From d91b419ecff2e4d70156b44c7b25841acca37792 Mon Sep 17 00:00:00 2001 From: Jeromy Date: Sun, 6 Dec 2015 23:00:10 -0800 Subject: [PATCH] WIP --- loggables/loggables.go | 4 +- p2p/crypto/key.go | 6 +- p2p/crypto/pb/crypto.pb.go | 2 +- p2p/crypto/rsa.go | 2 +- p2p/crypto/secio/al.go | 2 +- p2p/crypto/secio/interface.go | 4 +- p2p/crypto/secio/pb/spipe.pb.go | 2 +- p2p/crypto/secio/protocol.go | 8 +- p2p/crypto/secio/rw.go | 8 +- p2p/discovery/mdns.go | 8 +- p2p/host/basic/basic_host.go | 10 +- p2p/host/basic/basic_host_test.go | 2 +- p2p/host/basic/natmgr.go | 6 +- p2p/host/host.go | 8 +- p2p/host/routed/routed.go | 8 +- p2p/metrics/bw_stats.go | 2 +- p2p/metrics/stream/metered_test.go | 2 +- p2p/nat/nat.go | 14 +- p2p/net/conn/conn.go | 12 +- p2p/net/conn/conn_test.go | 4 +- p2p/net/conn/dial.go | 6 +- p2p/net/conn/dial_test.go | 4 +- p2p/net/conn/interface.go | 2 +- p2p/net/conn/listen.go | 10 +- p2p/net/conn/secure_conn.go | 4 +- p2p/net/conn/secure_conn_test.go | 2 +- p2p/net/filter/filter.go | 4 +- p2p/net/interface.go | 6 +- p2p/net/mock/interface.go | 2 +- p2p/net/mock/mock.go | 4 +- p2p/net/mock/mock_conn.go | 4 +- p2p/net/mock/mock_net.go | 8 +- p2p/net/mock/mock_notif_test.go | 4 +- p2p/net/mock/mock_peernet.go | 8 +- p2p/net/mock/mock_stream.go | 2 +- p2p/net/mock/mock_test.go | 4 +- p2p/net/swarm/addr/addr.go | 8 +- p2p/net/swarm/addr/addr_test.go | 4 +- p2p/net/swarm/dial_test.go | 6 +- p2p/net/swarm/peers_test.go | 4 +- p2p/net/swarm/simul_test.go | 4 +- p2p/net/swarm/swarm.go | 18 +- p2p/net/swarm/swarm_addr.go | 2 +- p2p/net/swarm/swarm_addr_test.go | 4 +- p2p/net/swarm/swarm_conn.go | 6 +- p2p/net/swarm/swarm_dial.go | 6 +- p2p/net/swarm/swarm_listen.go | 6 +- p2p/net/swarm/swarm_net.go | 6 +- p2p/net/swarm/swarm_net_test.go | 2 +- p2p/net/swarm/swarm_notif_test.go | 4 +- p2p/net/swarm/swarm_stream.go | 2 +- p2p/net/swarm/swarm_test.go | 4 +- p2p/net/transport/reuseport.go | 2 +- p2p/net/transport/tcp.go | 8 +- p2p/net/transport/transport.go | 6 +- p2p/peer/addr/addrsrcs.go | 2 +- p2p/peer/addr/addrsrcs_test.go | 2 +- p2p/peer/addr_manager.go | 2 +- p2p/peer/addr_manager_test.go | 2 +- p2p/peer/peer.go | 10 +- p2p/peer/peer_test.go | 4 +- p2p/peer/peerstore.go | 2 +- p2p/peer/queue/distance.go | 2 +- p2p/peer/queue/queue_test.go | 4 +- p2p/peer/queue/sync.go | 4 +- p2p/protocol/identify/id.go | 12 +- p2p/protocol/identify/id_test.go | 4 +- p2p/protocol/identify/obsaddr.go | 2 +- p2p/protocol/identify/obsaddr_test.go | 2 +- p2p/protocol/identify/pb/identify.pb.go | 2 +- p2p/protocol/ping/ping.go | 6 +- p2p/protocol/ping/ping_test.go | 2 +- p2p/protocol/relay/relay.go | 6 +- p2p/protocol/relay/relay_test.go | 6 +- p2p/test/backpressure/backpressure_test.go | 6 +- p2p/test/reconnects/reconnect_test.go | 8 +- p2p/test/util/key.go | 6 +- p2p/test/util/util.go | 4 +- package.json | 84 +- testutil/gen.go | 4 +- testutil/identity.go | 2 +- .../go-multiaddr-net/.gxignore | 1 - .../go-multiaddr-net/.travis.yml | 11 - .../go-multiaddr-net/LICENSE | 21 - .../go-multiaddr-net/Makefile | 19 - .../go-multiaddr-net/README.md | 11 - .../go-multiaddr-net/convert.go | 172 - .../go-multiaddr-net/convert_test.go | 157 - .../go-multiaddr-net/doc.go | 5 - .../go-multiaddr-net/ip.go | 85 - .../go-multiaddr-net/multiaddr/.gitignore | 1 - .../go-multiaddr-net/multiaddr/multiaddr.go | 96 - .../go-multiaddr-net/net.go | 298 - .../go-multiaddr-net/net_test.go | 507 - .../go-multiaddr-net/package.json | 22 - .../go-multiaddr-net/utp/utp_util.go | 105 - .../go-base58/LICENSE | 13 - .../go-base58/README.md | 66 - .../go-base58/base58.go | 90 - .../go-base58/base58_test.go | 130 - .../go-base58/doc.go | 20 - .../go-base58/package.json | 9 - .../websocket/.travis.yml | 6 - .../websocket/AUTHORS | 8 - .../websocket/LICENSE | 22 - .../websocket/README.md | 61 - .../websocket/bench_test.go | 19 - .../websocket/client.go | 334 - .../websocket/client_server_test.go | 392 - .../websocket/client_test.go | 64 - .../websocket/conn.go | 831 - .../websocket/conn_test.go | 272 - .../websocket/doc.go | 151 - .../websocket/examples/autobahn/README.md | 13 - .../examples/autobahn/fuzzingclient.json | 14 - .../websocket/examples/autobahn/server.go | 246 - .../websocket/examples/chat/README.md | 20 - .../websocket/examples/chat/conn.go | 102 - .../websocket/examples/chat/home.html | 92 - .../websocket/examples/chat/hub.go | 51 - .../websocket/examples/chat/main.go | 39 - .../websocket/examples/command/README.md | 19 - .../websocket/examples/command/home.html | 96 - .../websocket/examples/command/main.go | 188 - .../websocket/examples/echo/README.md | 17 - .../websocket/examples/echo/client.go | 55 - .../websocket/examples/echo/server.go | 132 - .../websocket/examples/filewatch/README.md | 9 - .../websocket/examples/filewatch/main.go | 193 - .../websocket/json.go | 55 - .../websocket/json_test.go | 119 - .../websocket/package.json | 9 - .../websocket/server.go | 250 - .../websocket/server_test.go | 33 - .../websocket/util.go | 44 - .../websocket/util_test.go | 34 - .../go.uuid/.gxignore | 1 - .../go.uuid/.travis.yml | 11 - .../go.uuid/LICENSE | 20 - .../go.uuid/README.md | 66 - .../go.uuid/benchmarks_test.go | 121 - .../go.uuid/package.json | 10 - .../go.uuid/uuid.go | 435 - .../go.uuid/uuid_test.go | 508 - .../go-ipfs-util/.gxignore | 1 - .../go-ipfs-util/file.go | 11 - .../go-ipfs-util/file_test.go | 10 - .../go-ipfs-util/package.json | 22 - .../go-ipfs-util/time.go | 17 - .../go-ipfs-util/time_test.go | 16 - .../go-ipfs-util/util.go | 148 - .../go-ipfs-util/util_test.go | 63 - .../go-detect-race/.gxignore | 1 - .../go-detect-race/LICENSE | 21 - .../go-detect-race/README.md | 33 - .../go-detect-race/package.json | 10 - .../go-detect-race/race.go | 7 - .../go-detect-race/race_test.go | 9 - .../go-detect-race/withoutrace.go | 5 - .../go-detect-race/withrace.go | 5 - .../go-peerstream/.gxignore | 1 - .../go-peerstream/.travis.yml | 11 - .../go-peerstream/LICENSE | 21 - .../go-peerstream/Makefile | 15 - .../go-peerstream/README.md | 148 - .../go-peerstream/conn.go | 291 - .../go-peerstream/doc.go | 12 - .../go-peerstream/example/.gitignore | 1 - .../example/blockhandler/blockhandler.go | 77 - .../go-peerstream/example/example.go | 140 - .../go-peerstream/group.go | 92 - .../go-peerstream/handlers.go | 29 - .../go-peerstream/listener.go | 163 - .../go-peerstream/muxtest/hack.go | 15 - .../go-peerstream/muxtest/mux_test.go | 31 - .../go-peerstream/muxtest/muxt.go | 422 - .../go-peerstream/package.json | 22 - .../go-peerstream/stream.go | 93 - .../go-peerstream/swarm.go | 404 - .../go-multiplex/.gxignore | 1 - .../go-multiplex/README.md | 18 - .../go-multiplex/multiplex.go | 393 - .../go-multiplex/multiplex_test.go | 118 - .../go-multiplex/package.json | 10 - .../go-logging/.gxignore | 1 - .../go-logging/.travis.yml | 6 - .../go-logging/CONTRIBUTORS | 5 - .../go-logging/LICENSE | 27 - .../go-logging/README.md | 89 - .../go-logging/backend.go | 39 - .../go-logging/example_test.go | 40 - .../go-logging/examples/example.go | 49 - .../go-logging/examples/example.png | Bin 17675 -> 0 bytes .../go-logging/format.go | 368 - .../go-logging/format_test.go | 184 - .../go-logging/level.go | 124 - .../go-logging/level_test.go | 76 - .../go-logging/log.go | 80 - .../go-logging/log_test.go | 118 - .../go-logging/logger.go | 277 - .../go-logging/logger_test.go | 53 - .../go-logging/memory.go | 217 - .../go-logging/memory_test.go | 117 - .../go-logging/multi.go | 65 - .../go-logging/multi_test.go | 51 - .../go-logging/package.json | 10 - .../go-logging/syslog.go | 52 - .../goupnp/.gxignore | 1 - .../goupnp/LICENSE | 23 - .../goupnp/README.md | 44 - .../example_httpu_serving.go | 20 - .../example_internetgateway1.go | 67 - .../example_ssdp_registry.go | 27 - .../goupnp/dcps/av1/av1.go | 8452 -- .../dcps/internetgateway1/internetgateway1.go | 3717 - .../dcps/internetgateway2/internetgateway2.go | 5378 -- .../goupnp/device.go | 184 - .../goupnp/example/example.go | 6 - .../goupnp/example/example_test.go | 93 - .../goupnp/gotasks/specgen_task.go | 603 - .../goupnp/goupnp.go | 131 - .../goupnp/httpu/httpu.go | 117 - .../goupnp/httpu/serve.go | 108 - .../goupnp/package.json | 17 - .../goupnp/scpd/scpd.go | 167 - .../goupnp/service_client.go | 88 - .../goupnp/soap/soap.go | 157 - .../goupnp/soap/soap_test.go | 85 - .../goupnp/soap/types.go | 519 - .../goupnp/soap/types_test.go | 497 - .../goupnp/ssdp/registry.go | 312 - .../goupnp/ssdp/ssdp.go | 83 - .../spdystream/.gxignore | 1 - .../spdystream/CONTRIBUTING.md | 13 - .../spdystream/LICENSE | 191 - .../spdystream/LICENSE.docs | 425 - .../spdystream/MAINTAINERS | 1 - .../spdystream/README.md | 77 - .../spdystream/connection.go | 932 - .../spdystream/handlers.go | 38 - .../spdystream/package.json | 17 - .../spdystream/priority.go | 98 - .../spdystream/priority_test.go | 108 - .../spdystream/spdy/dictionary.go | 187 - .../spdystream/spdy/read.go | 348 - .../spdystream/spdy/spdy_test.go | 644 - .../spdystream/spdy/types.go | 275 - .../spdystream/spdy/write.go | 318 - .../spdystream/spdy_bench_test.go | 113 - .../spdystream/spdy_test.go | 1003 - .../spdystream/stream.go | 327 - .../spdystream/utils.go | 16 - .../spdystream/ws/connection.go | 65 - .../spdystream/ws/ws_test.go | 175 - .../go-utp/.gxignore | 1 - .../go-utp/LICENSE | 362 - .../go-utp/README.md | 19 - .../go-utp/cmd/ucat/ucat.go | 76 - .../go-utp/package.json | 22 - .../go-utp/pingpong | 68 - .../go-utp/utp.go | 1443 - .../go-utp/utp_test.go | 484 - .../go-notifier/.gxignore | 1 - .../go-notifier/notifier.go | 146 - .../go-notifier/notifier_test.go | 291 - .../go-notifier/package.json | 17 - .../go-stream-muxer/.gxignore | 1 - .../go-stream-muxer/.travis.yml | 11 - .../go-stream-muxer/LICENSE | 21 - .../go-stream-muxer/Makefile | 15 - .../go-stream-muxer/README.md | 98 - .../go-stream-muxer/img/badge.png | Bin 7694 -> 0 bytes .../go-stream-muxer/multiplex/multiplex.go | 56 - .../multiplex/multiplex_test.go | 11 - .../multistream/multistream.go | 60 - .../multistream/multistream_test.go | 11 - .../go-stream-muxer/muxado/muxado.go | 105 - .../go-stream-muxer/muxado/muxado_test.go | 11 - .../go-stream-muxer/muxer.go | 46 - .../go-stream-muxer/package.json | 37 - .../go-stream-muxer/spdystream/spdystream.go | 123 - .../spdystream/spdystream_test.go | 11 - .../go-stream-muxer/test/ttest.go | 378 - .../go-stream-muxer/yamux/yamux.go | 100 - .../go-stream-muxer/yamux/yamux_test.go | 11 - .../crypto-sha3/doc.go | 66 - .../crypto-sha3/hashes.go | 65 - .../crypto-sha3/keccakf.go | 410 - .../crypto-sha3/package.json | 9 - .../crypto-sha3/register.go | 18 - .../crypto-sha3/sha3.go | 193 - .../crypto-sha3/sha3_test.go | 306 - .../crypto-sha3/shake.go | 60 - .../testdata/keccakKats.json.deflate | Bin 521342 -> 0 bytes .../crypto-sha3/xor.go | 16 - .../crypto-sha3/xor_generic.go | 28 - .../crypto-sha3/xor_unaligned.go | 58 - .../yamux/LICENSE | 362 - .../yamux/README.md | 86 - .../yamux/addr.go | 60 - .../yamux/bench_test.go | 81 - .../yamux/const.go | 150 - .../yamux/const_test.go | 72 - .../yamux/mux.go | 80 - .../yamux/package.json | 9 - .../yamux/session.go | 552 - .../yamux/session_test.go | 786 - .../yamux/spec.md | 141 - .../yamux/stream.go | 436 - .../yamux/util.go | 28 - .../yamux/util_test.go | 50 - .../go-keyspace/README.md | 6 - .../go-keyspace/keyspace.go | 97 - .../go-keyspace/package.json | 9 - .../go-keyspace/xor.go | 74 - .../go-keyspace/xor_test.go | 120 - .../multiaddr-filter/.gxignore | 1 - .../multiaddr-filter/LICENSE | 21 - .../multiaddr-filter/README.md | 15 - .../multiaddr-filter/mask.go | 47 - .../multiaddr-filter/mask_test.go | 132 - .../multiaddr-filter/package.json | 17 - .../go-multiaddr/.gxignore | 1 - .../go-multiaddr/.travis.yml | 9 - .../go-multiaddr/LICENSE | 21 - .../go-multiaddr/README.md | 58 - .../go-multiaddr/codec.go | 244 - .../go-multiaddr/doc.go | 36 - .../go-multiaddr/interface.go | 42 - .../go-multiaddr/multiaddr.go | 115 - .../go-multiaddr/multiaddr_test.go | 302 - .../go-multiaddr/package.json | 17 - .../go-multiaddr/protocols.csv | 13 - .../go-multiaddr/protocols.go | 118 - .../go-multiaddr/util.go | 56 - .../go-text/.gxignore | 1 - .../go-text/AUTHORS | 3 - .../go-text/CONTRIBUTING.md | 31 - .../go-text/CONTRIBUTORS | 3 - .../go-text/LICENSE | 27 - .../go-text/PATENTS | 22 - .../go-text/README | 3 - .../go-text/cases/cases.go | 127 - .../go-text/cases/context.go | 184 - .../go-text/cases/context_test.go | 378 - .../go-text/cases/example_test.go | 53 - .../go-text/cases/gen.go | 819 - .../go-text/cases/gen_trieval.go | 290 - .../go-text/cases/map.go | 669 - .../go-text/cases/map_test.go | 619 - .../go-text/cases/tables.go | 2086 - .../go-text/cases/tables_test.go | 923 - .../go-text/cases/trieval.go | 286 - .../go-text/cldr/base.go | 110 - .../go-text/cldr/cldr.go | 121 - .../go-text/cldr/cldr_test.go | 27 - .../go-text/cldr/collate.go | 359 - .../go-text/cldr/collate_test.go | 275 - .../go-text/cldr/data_test.go | 186 - .../go-text/cldr/decode.go | 169 - .../go-text/cldr/examples_test.go | 20 - .../go-text/cldr/makexml.go | 400 - .../go-text/cldr/resolve.go | 602 - .../go-text/cldr/resolve_test.go | 368 - .../go-text/cldr/slice.go | 144 - .../go-text/cldr/slice_test.go | 175 - .../go-text/cldr/xml.go | 1386 - .../go-text/codereview.cfg | 1 - .../go-text/collate/build/builder.go | 699 - .../go-text/collate/build/builder_test.go | 290 - .../go-text/collate/build/colelem.go | 294 - .../go-text/collate/build/colelem_test.go | 215 - .../go-text/collate/build/contract.go | 307 - .../go-text/collate/build/contract_test.go | 264 - .../go-text/collate/build/order.go | 393 - .../go-text/collate/build/order_test.go | 229 - .../go-text/collate/build/table.go | 120 - .../go-text/collate/build/trie.go | 290 - .../go-text/collate/build/trie_test.go | 107 - .../go-text/collate/collate.go | 405 - .../go-text/collate/collate_test.go | 479 - .../go-text/collate/colltab/collate_test.go | 121 - .../go-text/collate/colltab/collelem.go | 371 - .../go-text/collate/colltab/collelem_test.go | 183 - .../go-text/collate/colltab/colltab.go | 31 - .../go-text/collate/colltab/colltab_test.go | 42 - .../go-text/collate/colltab/contract.go | 145 - .../go-text/collate/colltab/contract_test.go | 132 - .../go-text/collate/colltab/export.go | 36 - .../go-text/collate/colltab/numeric.go | 236 - .../go-text/collate/colltab/numeric_test.go | 157 - .../go-text/collate/colltab/table.go | 275 - .../go-text/collate/colltab/trie.go | 159 - .../go-text/collate/colltab/trie_test.go | 106 - .../go-text/collate/export_test.go | 51 - .../go-text/collate/index.go | 44 - .../go-text/collate/maketables.go | 541 - .../go-text/collate/option.go | 239 - .../go-text/collate/option_test.go | 184 - .../go-text/collate/reg_test.go | 229 - .../go-text/collate/sort.go | 81 - .../go-text/collate/sort_test.go | 55 - .../go-text/collate/table_test.go | 291 - .../go-text/collate/tables.go | 73207 ---------------- .../go-text/collate/tools/colcmp/Makefile | 7 - .../go-text/collate/tools/colcmp/chars.go | 1156 - .../go-text/collate/tools/colcmp/col.go | 97 - .../go-text/collate/tools/colcmp/colcmp.go | 529 - .../go-text/collate/tools/colcmp/darwin.go | 111 - .../go-text/collate/tools/colcmp/gen.go | 183 - .../go-text/collate/tools/colcmp/icu.go | 209 - .../go-text/currency/common.go | 44 - .../go-text/currency/currency.go | 183 - .../go-text/currency/currency_test.go | 167 - .../go-text/currency/format.go | 193 - .../go-text/currency/format_test.go | 69 - .../go-text/currency/gen.go | 371 - .../go-text/currency/gen_common.go | 48 - .../go-text/currency/tables.go | 1664 - .../go-text/currency/tables_test.go | 78 - .../go-text/display/dict.go | 92 - .../go-text/display/dict_test.go | 39 - .../go-text/display/display.go | 343 - .../go-text/display/display_test.go | 621 - .../go-text/display/examples_test.go | 98 - .../go-text/display/lookup.go | 238 - .../go-text/display/maketables.go | 587 - .../go-text/display/tables.go | 43658 --------- .../go-text/doc.go | 12 - .../go-text/encoding/charmap/charmap.go | 209 - .../go-text/encoding/charmap/maketables.go | 489 - .../go-text/encoding/charmap/tables.go | 6000 -- .../go-text/encoding/encoding.go | 179 - .../go-text/encoding/encoding_test.go | 1036 - .../go-text/encoding/example_test.go | 40 - .../go-text/encoding/htmlindex/gen.go | 166 - .../go-text/encoding/htmlindex/htmlindex.go | 86 - .../encoding/htmlindex/htmlindex_test.go | 127 - .../go-text/encoding/htmlindex/map.go | 106 - .../go-text/encoding/htmlindex/tables.go | 350 - .../encoding/ianaindex/example_test.go | 26 - .../go-text/encoding/ianaindex/ianaindex.go | 64 - .../encoding/internal/identifier/gen.go | 137 - .../internal/identifier/identifier.go | 80 - .../encoding/internal/identifier/mib.go | 1621 - .../go-text/encoding/internal/internal.go | 60 - .../go-text/encoding/japanese/all.go | 12 - .../go-text/encoding/japanese/eucjp.go | 210 - .../go-text/encoding/japanese/iso2022jp.go | 284 - .../go-text/encoding/japanese/maketables.go | 161 - .../go-text/encoding/japanese/shiftjis.go | 188 - .../go-text/encoding/japanese/tables.go | 26971 ------ .../go-text/encoding/korean/euckr.go | 177 - .../go-text/encoding/korean/maketables.go | 143 - .../go-text/encoding/korean/tables.go | 34152 ------- .../go-text/encoding/simplifiedchinese/all.go | 12 - .../go-text/encoding/simplifiedchinese/gbk.go | 280 - .../encoding/simplifiedchinese/hzgb2312.go | 228 - .../encoding/simplifiedchinese/maketables.go | 161 - .../encoding/simplifiedchinese/tables.go | 43999 ---------- .../encoding/testdata/candide-gb18030.txt | 510 - .../encoding/testdata/candide-utf-16le.txt | Bin 51932 -> 0 bytes .../encoding/testdata/candide-utf-8.txt | 510 - .../testdata/candide-windows-1252.txt | 510 - .../encoding/testdata/rashomon-euc-jp.txt | 178 - .../testdata/rashomon-iso-2022-jp.txt | 178 - .../encoding/testdata/rashomon-shift-jis.txt | 178 - .../encoding/testdata/rashomon-utf-8.txt | 178 - ...nzi-bingfa-gb-levels-1-and-2-hz-gb2312.txt | 107 - .../sunzi-bingfa-gb-levels-1-and-2-utf-8.txt | 107 - .../testdata/sunzi-bingfa-simplified-gbk.txt | 107 - .../sunzi-bingfa-simplified-utf-8.txt | 107 - .../sunzi-bingfa-traditional-big5.txt | 106 - .../sunzi-bingfa-traditional-utf-8.txt | 106 - .../testdata/unsu-joh-eun-nal-euc-kr.txt | 175 - .../testdata/unsu-joh-eun-nal-utf-8.txt | 175 - .../encoding/traditionalchinese/big5.go | 198 - .../encoding/traditionalchinese/maketables.go | 140 - .../encoding/traditionalchinese/tables.go | 37142 -------- .../go-text/encoding/unicode/override.go | 82 - .../go-text/encoding/unicode/unicode.go | 333 - .../go-text/gen.go | 154 - .../go-text/internal/colltab/colltab.go | 105 - .../go-text/internal/colltab/colltab_test.go | 56 - .../go-text/internal/colltab/contract.go | 145 - .../go-text/internal/colltab/contract_test.go | 135 - .../go-text/internal/colltab/iter.go | 179 - .../go-text/internal/colltab/iter_test.go | 77 - .../go-text/internal/format/format.go | 31 - .../go-text/internal/gen.go | 52 - .../go-text/internal/gen/code.go | 332 - .../go-text/internal/gen/gen.go | 207 - .../go-text/internal/gen_test.go | 38 - .../go-text/internal/internal.go | 9 - .../go-text/internal/match.go | 65 - .../go-text/internal/match_test.go | 56 - .../go-text/internal/tables.go | 70 - .../go-text/internal/tag/tag.go | 100 - .../go-text/internal/tag/tag_test.go | 67 - .../go-text/internal/testtext/codesize.go | 53 - .../go-text/internal/testtext/text.go | 105 - .../go-text/internal/triegen/compact.go | 58 - .../go-text/internal/triegen/data_test.go | 875 - .../internal/triegen/example_compact_test.go | 71 - .../go-text/internal/triegen/example_test.go | 148 - .../go-text/internal/triegen/gen_test.go | 68 - .../go-text/internal/triegen/print.go | 251 - .../go-text/internal/triegen/triegen.go | 494 - .../go-text/internal/ucd/example_test.go | 81 - .../go-text/internal/ucd/ucd.go | 332 - .../go-text/internal/ucd/ucd_test.go | 105 - .../go-text/language/Makefile | 16 - .../go-text/language/common.go | 16 - .../go-text/language/coverage.go | 197 - .../go-text/language/coverage_test.go | 154 - .../go-text/language/data_test.go | 416 - .../go-text/language/examples_test.go | 415 - .../go-text/language/gen_common.go | 20 - .../go-text/language/gen_index.go | 147 - .../go-text/language/go1_1.go | 38 - .../go-text/language/go1_2.go | 11 - .../go-text/language/index.go | 425 - .../go-text/language/language.go | 975 - .../go-text/language/language_test.go | 871 - .../go-text/language/lookup.go | 396 - .../go-text/language/lookup_test.go | 457 - .../go-text/language/maketables.go | 1641 - .../go-text/language/match.go | 840 - .../go-text/language/match_test.go | 392 - .../go-text/language/parse.go | 859 - .../go-text/language/parse_test.go | 517 - .../go-text/language/tables.go | 2993 - .../go-text/language/tags.go | 143 - .../go-text/message/message.go | 91 - .../go-text/message/message_test.go | 49 - .../go-text/package.json | 10 - .../go-text/runes/cond.go | 126 - .../go-text/runes/cond_test.go | 233 - .../go-text/runes/example_test.go | 60 - .../go-text/runes/runes.go | 223 - .../go-text/runes/runes_test.go | 451 - .../go-text/search/index.go | 47 - .../go-text/search/pattern.go | 156 - .../go-text/search/pattern_test.go | 357 - .../go-text/search/search.go | 238 - .../go-text/search/tables.go | 12448 --- .../go-text/transform/examples_test.go | 37 - .../go-text/transform/transform.go | 616 - .../go-text/transform/transform_test.go | 1082 - .../go-text/unicode/norm/composition.go | 514 - .../go-text/unicode/norm/composition_test.go | 130 - .../go-text/unicode/norm/example_iter_test.go | 82 - .../go-text/unicode/norm/forminfo.go | 256 - .../go-text/unicode/norm/forminfo_test.go | 54 - .../go-text/unicode/norm/input.go | 105 - .../go-text/unicode/norm/iter.go | 450 - .../go-text/unicode/norm/iter_test.go | 98 - .../go-text/unicode/norm/maketables.go | 978 - .../go-text/unicode/norm/norm_test.go | 14 - .../go-text/unicode/norm/normalize.go | 527 - .../go-text/unicode/norm/normalize_test.go | 1142 - .../go-text/unicode/norm/readwriter.go | 126 - .../go-text/unicode/norm/readwriter_test.go | 56 - .../go-text/unicode/norm/tables.go | 7587 -- .../go-text/unicode/norm/transform.go | 88 - .../go-text/unicode/norm/transform_test.go | 101 - .../go-text/unicode/norm/trie.go | 54 - .../go-text/unicode/norm/triegen.go | 117 - .../go-text/unicode/norm/ucd_test.go | 279 - .../go-text/unicode/rangetable/gen.go | 126 - .../go-text/unicode/rangetable/merge.go | 260 - .../go-text/unicode/rangetable/merge_test.go | 184 - .../go-text/unicode/rangetable/rangetable.go | 70 - .../unicode/rangetable/rangetable_test.go | 55 - .../go-text/unicode/rangetable/tables.go | 5105 -- .../go-text/width/common_test.go | 106 - .../go-text/width/example_test.go | 52 - .../go-text/width/gen.go | 133 - .../go-text/width/gen_common.go | 110 - .../go-text/width/gen_trieval.go | 34 - .../go-text/width/kind_string.go | 16 - .../go-text/width/runes_test.go | 461 - .../go-text/width/tables.go | 1092 - .../go-text/width/tables_test.go | 64 - .../go-text/width/transform.go | 150 - .../go-text/width/transform_test.go | 467 - .../go-text/width/trieval.go | 30 - .../go-text/width/width.go | 201 - .../go-nat-pmp/.gxignore | 1 - .../go-nat-pmp/LICENSE | 13 - .../go-nat-pmp/README.md | 48 - .../go-nat-pmp/natpmp.go | 196 - .../go-nat-pmp/natpmp_test.go | 13 - .../go-nat-pmp/package.json | 17 - .../go-nat/.gxignore | 1 - .../go-nat/LICENSE | 191 - .../go-nat/README.md | 3 - .../go-nat/_examples/nat-tester.go | 67 - .../go-nat/nat.go | 54 - .../go-nat/natpmp.go | 115 - .../go-nat/package.json | 27 - .../go-nat/upnp.go | 239 - .../envpprof/envpprof.go | 92 - .../envpprof/package.json | 9 - .../go-temp-err-catcher/.travis.yml | 9 - .../go-temp-err-catcher/LICENSE | 21 - .../go-temp-err-catcher/README.md | 78 - .../go-temp-err-catcher/doc.go | 62 - .../go-temp-err-catcher/example/example.go | 47 - .../go-temp-err-catcher/package.json | 9 - .../go-temp-err-catcher/tec_test.go | 172 - .../go-temp-err-catcher/temp_err_catcher.go | 124 - .../go-msgio/.gxignore | 1 - .../go-msgio/.travis.yml | 9 - .../go-msgio/README.md | 78 - .../go-msgio/chan.go | 114 - .../go-msgio/chan_test.go | 108 - .../go-msgio/fuzz.go | 23 - .../go-msgio/fuzz_test.go | 24 - .../go-msgio/limit.go | 45 - .../go-msgio/mpool/pool.go | 125 - .../go-msgio/mpool/pool_test.go | 254 - .../go-msgio/msgio.go | 284 - .../go-msgio/msgio/.gitignore | 1 - .../go-msgio/msgio/README.md | 24 - .../go-msgio/msgio/msgio.go | 108 - .../go-msgio/msgio_test.go | 197 - .../go-msgio/num.go | 33 - .../go-msgio/package.json | 10 - .../go-msgio/varint.go | 188 - .../go-msgio/varint_test.go | 66 - .../dns/.gxignore | 1 - .../dns/.travis.yml | 7 - .../dns/AUTHORS | 1 - .../dns/CONTRIBUTORS | 9 - .../dns/COPYRIGHT | 9 - .../dns/LICENSE | 32 - .../dns/README.md | 153 - .../dns/client.go | 385 - .../dns/client_test.go | 383 - .../dns/clientconfig.go | 99 - .../dns/clientconfig_test.go | 55 - .../dns/defaults.go | 278 - .../dns/dns.go | 100 - .../dns/dns_test.go | 578 - .../dns/dnssec.go | 664 - .../dns/dnssec_keygen.go | 156 - .../dns/dnssec_keyscan.go | 249 - .../dns/dnssec_privkey.go | 85 - .../dns/dnssec_test.go | 733 - .../dns/doc.go | 251 - .../dns/dyn_test.go | 3 - .../dns/edns.go | 505 - .../dns/edns_test.go | 48 - .../dns/example_test.go | 146 - .../dns/format.go | 96 - .../dns/fuzz_test.go | 25 - .../dns/idn/code_points.go | 2346 - .../dns/idn/example_test.go | 18 - .../dns/idn/punycode.go | 373 - .../dns/idn/punycode_test.go | 116 - .../dns/labels.go | 162 - .../dns/labels_test.go | 199 - .../dns/msg.go | 1945 - .../dns/nsecx.go | 112 - .../dns/nsecx_test.go | 29 - .../dns/package.json | 10 - .../dns/parse_test.go | 1524 - .../dns/privaterr.go | 117 - .../dns/privaterr_test.go | 170 - .../dns/rawmsg.go | 95 - .../dns/remote_test.go | 19 - .../dns/sanitize.go | 84 - .../dns/sanitize_test.go | 85 - .../dns/scanner.go | 43 - .../dns/server.go | 687 - .../dns/server_test.go | 453 - .../dns/sig0.go | 216 - .../dns/sig0_test.go | 89 - .../dns/singleinflight.go | 57 - .../dns/tlsa.go | 86 - .../dns/tsig.go | 320 - .../dns/types.go | 1328 - .../dns/types_generate.go | 266 - .../dns/types_test.go | 42 - .../dns/udp.go | 58 - .../dns/udp_linux.go | 63 - .../dns/udp_other.go | 17 - .../dns/udp_windows.go | 34 - .../dns/update.go | 94 - .../dns/update_test.go | 85 - .../dns/xfr.go | 244 - .../dns/xfr_test.go | 161 - .../dns/zgenerate.go | 158 - .../dns/zscan.go | 974 - .../dns/zscan_rr.go | 2270 - .../dns/ztypes.go | 842 - .../go-crypto/.gxignore | 1 - .../go-crypto/AUTHORS | 3 - .../go-crypto/CONTRIBUTING.md | 31 - .../go-crypto/CONTRIBUTORS | 3 - .../go-crypto/LICENSE | 27 - .../go-crypto/PATENTS | 22 - .../go-crypto/README | 3 - .../go-crypto/bcrypt/base64.go | 35 - .../go-crypto/bcrypt/bcrypt.go | 294 - .../go-crypto/bcrypt/bcrypt_test.go | 226 - .../go-crypto/blowfish/block.go | 159 - .../go-crypto/blowfish/blowfish_test.go | 274 - .../go-crypto/blowfish/cipher.go | 91 - .../go-crypto/blowfish/const.go | 199 - .../go-crypto/bn256/bn256.go | 404 - .../go-crypto/bn256/bn256_test.go | 304 - .../go-crypto/bn256/constants.go | 44 - .../go-crypto/bn256/curve.go | 278 - .../go-crypto/bn256/example_test.go | 43 - .../go-crypto/bn256/gfp12.go | 200 - .../go-crypto/bn256/gfp2.go | 219 - .../go-crypto/bn256/gfp6.go | 296 - .../go-crypto/bn256/optate.go | 395 - .../go-crypto/bn256/twist.go | 249 - .../go-crypto/cast5/cast5.go | 526 - .../go-crypto/cast5/cast5_test.go | 106 - .../go-crypto/codereview.cfg | 1 - .../go-crypto/curve25519/const_amd64.s | 20 - .../go-crypto/curve25519/cswap_amd64.s | 88 - .../go-crypto/curve25519/curve25519.go | 841 - .../go-crypto/curve25519/curve25519_test.go | 29 - .../go-crypto/curve25519/doc.go | 23 - .../go-crypto/curve25519/freeze_amd64.s | 94 - .../go-crypto/curve25519/ladderstep_amd64.s | 1398 - .../go-crypto/curve25519/mont25519_amd64.go | 240 - .../go-crypto/curve25519/mul_amd64.s | 191 - .../go-crypto/curve25519/square_amd64.s | 153 - .../go-crypto/hkdf/example_test.go | 61 - .../go-crypto/hkdf/hkdf.go | 75 - .../go-crypto/hkdf/hkdf_test.go | 370 - .../go-crypto/md4/md4.go | 118 - .../go-crypto/md4/md4_test.go | 71 - .../go-crypto/md4/md4block.go | 89 - .../go-crypto/nacl/box/box.go | 85 - .../go-crypto/nacl/box/box_test.go | 78 - .../go-crypto/nacl/secretbox/secretbox.go | 149 - .../nacl/secretbox/secretbox_test.go | 91 - .../go-crypto/ocsp/ocsp.go | 608 - .../go-crypto/ocsp/ocsp_test.go | 453 - .../go-crypto/openpgp/armor/armor.go | 219 - .../go-crypto/openpgp/armor/armor_test.go | 95 - .../go-crypto/openpgp/armor/encode.go | 160 - .../go-crypto/openpgp/canonical_text.go | 59 - .../go-crypto/openpgp/canonical_text_test.go | 52 - .../go-crypto/openpgp/clearsign/clearsign.go | 372 - .../openpgp/clearsign/clearsign_test.go | 197 - .../go-crypto/openpgp/elgamal/elgamal.go | 122 - .../go-crypto/openpgp/elgamal/elgamal_test.go | 49 - .../go-crypto/openpgp/errors/errors.go | 72 - .../go-crypto/openpgp/keys.go | 633 - .../go-crypto/openpgp/keys_test.go | 370 - .../go-crypto/openpgp/packet/compressed.go | 123 - .../openpgp/packet/compressed_test.go | 41 - .../go-crypto/openpgp/packet/config.go | 91 - .../go-crypto/openpgp/packet/encrypted_key.go | 199 - .../openpgp/packet/encrypted_key_test.go | 146 - .../go-crypto/openpgp/packet/literal.go | 89 - .../go-crypto/openpgp/packet/ocfb.go | 143 - .../go-crypto/openpgp/packet/ocfb_test.go | 46 - .../openpgp/packet/one_pass_signature.go | 73 - .../go-crypto/openpgp/packet/opaque.go | 162 - .../go-crypto/openpgp/packet/opaque_test.go | 67 - .../go-crypto/openpgp/packet/packet.go | 539 - .../go-crypto/openpgp/packet/packet_test.go | 255 - .../go-crypto/openpgp/packet/private_key.go | 313 - .../openpgp/packet/private_key_test.go | 69 - .../go-crypto/openpgp/packet/public_key.go | 709 - .../openpgp/packet/public_key_test.go | 202 - .../go-crypto/openpgp/packet/public_key_v3.go | 280 - .../openpgp/packet/public_key_v3_test.go | 82 - .../go-crypto/openpgp/packet/reader.go | 76 - .../go-crypto/openpgp/packet/signature.go | 699 - .../openpgp/packet/signature_test.go | 42 - .../go-crypto/openpgp/packet/signature_v3.go | 146 - .../openpgp/packet/signature_v3_test.go | 92 - .../openpgp/packet/symmetric_key_encrypted.go | 155 - .../packet/symmetric_key_encrypted_test.go | 103 - .../openpgp/packet/symmetrically_encrypted.go | 290 - .../packet/symmetrically_encrypted_test.go | 123 - .../go-crypto/openpgp/packet/userattribute.go | 91 - .../openpgp/packet/userattribute_test.go | 109 - .../go-crypto/openpgp/packet/userid.go | 160 - .../go-crypto/openpgp/packet/userid_test.go | 87 - .../go-crypto/openpgp/read.go | 439 - .../go-crypto/openpgp/read_test.go | 512 - .../go-crypto/openpgp/s2k/s2k.go | 273 - .../go-crypto/openpgp/s2k/s2k_test.go | 137 - .../go-crypto/openpgp/write.go | 378 - .../go-crypto/openpgp/write_test.go | 259 - .../go-crypto/otr/libotr_test_helper.c | 171 - .../go-crypto/otr/otr.go | 1401 - .../go-crypto/otr/otr_test.go | 420 - .../go-crypto/otr/smp.go | 572 - .../go-crypto/package.json | 10 - .../go-crypto/pbkdf2/pbkdf2.go | 77 - .../go-crypto/pbkdf2/pbkdf2_test.go | 157 - .../go-crypto/pkcs12/bmp-string.go | 50 - .../go-crypto/pkcs12/bmp-string_test.go | 63 - .../go-crypto/pkcs12/crypto.go | 131 - .../go-crypto/pkcs12/crypto_test.go | 125 - .../go-crypto/pkcs12/errors.go | 23 - .../pkcs12/internal/rc2/bench_test.go | 27 - .../go-crypto/pkcs12/internal/rc2/rc2.go | 274 - .../go-crypto/pkcs12/internal/rc2/rc2_test.go | 93 - .../go-crypto/pkcs12/mac.go | 45 - .../go-crypto/pkcs12/mac_test.go | 42 - .../go-crypto/pkcs12/pbkdf.go | 170 - .../go-crypto/pkcs12/pbkdf_test.go | 34 - .../go-crypto/pkcs12/pkcs12.go | 342 - .../go-crypto/pkcs12/pkcs12_test.go | 138 - .../go-crypto/pkcs12/safebags.go | 57 - .../go-crypto/poly1305/const_amd64.s | 45 - .../go-crypto/poly1305/poly1305.go | 32 - .../go-crypto/poly1305/poly1305_amd64.s | 497 - .../go-crypto/poly1305/poly1305_arm.s | 379 - .../go-crypto/poly1305/poly1305_test.go | 86 - .../go-crypto/poly1305/sum_amd64.go | 24 - .../go-crypto/poly1305/sum_arm.go | 24 - .../go-crypto/poly1305/sum_ref.go | 1531 - .../go-crypto/ripemd160/ripemd160.go | 120 - .../go-crypto/ripemd160/ripemd160_test.go | 64 - .../go-crypto/ripemd160/ripemd160block.go | 161 - .../go-crypto/salsa20/salsa/hsalsa20.go | 144 - .../go-crypto/salsa20/salsa/salsa2020_amd64.s | 902 - .../go-crypto/salsa20/salsa/salsa208.go | 199 - .../go-crypto/salsa20/salsa/salsa20_amd64.go | 23 - .../go-crypto/salsa20/salsa/salsa20_ref.go | 234 - .../go-crypto/salsa20/salsa/salsa_test.go | 35 - .../go-crypto/salsa20/salsa20.go | 54 - .../go-crypto/salsa20/salsa20_test.go | 139 - .../go-crypto/scrypt/scrypt.go | 243 - .../go-crypto/scrypt/scrypt_test.go | 160 - .../go-crypto/sha3/doc.go | 66 - .../go-crypto/sha3/hashes.go | 65 - .../go-crypto/sha3/keccakf.go | 410 - .../go-crypto/sha3/register.go | 18 - .../go-crypto/sha3/sha3.go | 193 - .../go-crypto/sha3/sha3_test.go | 306 - .../go-crypto/sha3/shake.go | 60 - .../sha3/testdata/keccakKats.json.deflate | Bin 521342 -> 0 bytes .../go-crypto/sha3/xor.go | 16 - .../go-crypto/sha3/xor_generic.go | 28 - .../go-crypto/sha3/xor_unaligned.go | 58 - .../go-crypto/ssh/agent/client.go | 615 - .../go-crypto/ssh/agent/client_test.go | 287 - .../go-crypto/ssh/agent/forward.go | 103 - .../go-crypto/ssh/agent/keyring.go | 184 - .../go-crypto/ssh/agent/server.go | 209 - .../go-crypto/ssh/agent/server_test.go | 77 - .../go-crypto/ssh/agent/testdata_test.go | 64 - .../go-crypto/ssh/benchmark_test.go | 122 - .../go-crypto/ssh/buffer.go | 98 - .../go-crypto/ssh/buffer_test.go | 87 - .../go-crypto/ssh/certs.go | 501 - .../go-crypto/ssh/certs_test.go | 216 - .../go-crypto/ssh/channel.go | 631 - .../go-crypto/ssh/cipher.go | 549 - .../go-crypto/ssh/cipher_test.go | 127 - .../go-crypto/ssh/client.go | 213 - .../go-crypto/ssh/client_auth.go | 441 - .../go-crypto/ssh/client_auth_test.go | 393 - .../go-crypto/ssh/client_test.go | 39 - .../go-crypto/ssh/common.go | 354 - .../go-crypto/ssh/connection.go | 144 - .../go-crypto/ssh/doc.go | 18 - .../go-crypto/ssh/example_test.go | 211 - .../go-crypto/ssh/handshake.go | 412 - .../go-crypto/ssh/handshake_test.go | 415 - .../go-crypto/ssh/kex.go | 526 - .../go-crypto/ssh/kex_test.go | 50 - .../go-crypto/ssh/keys.go | 646 - .../go-crypto/ssh/keys_test.go | 306 - .../go-crypto/ssh/mac.go | 57 - .../go-crypto/ssh/mempipe_test.go | 110 - .../go-crypto/ssh/messages.go | 725 - .../go-crypto/ssh/messages_test.go | 254 - .../go-crypto/ssh/mux.go | 356 - .../go-crypto/ssh/mux_test.go | 525 - .../go-crypto/ssh/server.go | 495 - .../go-crypto/ssh/session.go | 605 - .../go-crypto/ssh/session_test.go | 774 - .../go-crypto/ssh/tcpip.go | 407 - .../go-crypto/ssh/tcpip_test.go | 20 - .../go-crypto/ssh/terminal/terminal.go | 892 - .../go-crypto/ssh/terminal/terminal_test.go | 269 - .../go-crypto/ssh/terminal/util.go | 128 - .../go-crypto/ssh/terminal/util_bsd.go | 12 - .../go-crypto/ssh/terminal/util_linux.go | 11 - .../go-crypto/ssh/terminal/util_windows.go | 174 - .../go-crypto/ssh/test/agent_unix_test.go | 59 - .../go-crypto/ssh/test/cert_test.go | 47 - .../go-crypto/ssh/test/doc.go | 7 - .../go-crypto/ssh/test/forward_unix_test.go | 160 - .../go-crypto/ssh/test/session_test.go | 340 - .../go-crypto/ssh/test/tcpip_test.go | 46 - .../go-crypto/ssh/test/test_unix_test.go | 261 - .../go-crypto/ssh/test/testdata_test.go | 64 - .../go-crypto/ssh/testdata/doc.go | 8 - .../go-crypto/ssh/testdata/keys.go | 43 - .../go-crypto/ssh/testdata_test.go | 63 - .../go-crypto/ssh/transport.go | 332 - .../go-crypto/ssh/transport_test.go | 109 - .../go-crypto/tea/cipher.go | 109 - .../go-crypto/tea/tea_test.go | 93 - .../go-crypto/twofish/twofish.go | 342 - .../go-crypto/twofish/twofish_test.go | 129 - .../go-crypto/xtea/block.go | 66 - .../go-crypto/xtea/cipher.go | 82 - .../go-crypto/xtea/xtea_test.go | 229 - .../go-crypto/xts/xts.go | 138 - .../go-crypto/xts/xts_test.go | 85 - .../gateway/.gxignore | 1 - .../gateway/LICENSE | 27 - .../gateway/README.md | 7 - .../gateway/gateway_darwin.go | 40 - .../gateway/gateway_linux.go | 75 - .../gateway/gateway_test.go | 10 - .../gateway/gateway_unimplemented.go | 14 - .../gateway/gateway_windows.go | 43 - .../gateway/package.json | 10 - .../go-net-resolve-addr/.gxignore | 1 - .../go-net-resolve-addr/README.md | 8 - .../go-net-resolve-addr/package.json | 10 - .../go-net-resolve-addr/parse.go | 142 - .../go-net-resolve-addr/resolve.go | 262 - .../go-multihash/.gxignore | 1 - .../go-multihash/.travis.yml | 11 - .../go-multihash/LICENSE | 21 - .../go-multihash/Makefile | 11 - .../go-multihash/README.md | 45 - .../go-multihash/io.go | 79 - .../go-multihash/io_test.go | 69 - .../go-multihash/multihash.go | 188 - .../go-multihash/multihash/.gitignore | 1 - .../go-multihash/multihash/.gobuilder.yml | 5 - .../go-multihash/multihash/LICENSE | 21 - .../go-multihash/multihash/README.md | 118 - .../go-multihash/multihash/install.dist.sh | 21 - .../go-multihash/multihash/main.go | 132 - .../go-multihash/multihash_test.go | 270 - .../go-multihash/opts/README.md | 9 - .../go-multihash/opts/coding.go | 40 - .../go-multihash/opts/opts.go | 131 - .../go-multihash/package.json | 22 - .../go-multihash/sum.go | 72 - .../go-multihash/sum_test.go | 66 - .../go-multihash/test/.gitignore | 1 - .../go-multihash/test/Makefile | 25 - .../go-multihash/test/sharness/.gitignore | 3 - .../go-multihash/test/sharness/Makefile | 37 - .../go-multihash/test/sharness/bin | 0 .../test/sharness/lib/install-sharness.sh | 26 - .../sharness/lib/test-aggregate-results.sh | 17 - .../test/sharness/lib/test-lib.sh | 43 - .../test/sharness/t0010-basics.sh | 25 - .../go-multihash/test/sharness/t0020-sha1.sh | 31 - .../context/context.go | 447 - .../context/context_test.go | 575 - .../context/ctxhttp/cancelreq.go | 18 - .../context/ctxhttp/cancelreq_go14.go | 23 - .../context/ctxhttp/ctxhttp.go | 79 - .../context/ctxhttp/ctxhttp_test.go | 72 - .../context/package.json | 9 - .../context/withtimeout_test.go | 26 - .../jitter/jitter.go | 12 - .../jitter/jitter_test.go | 9 - .../jitter/package.json | 9 - .../go-net/.gxignore | 1 - .../go-net/AUTHORS | 3 - .../go-net/CONTRIBUTING.md | 31 - .../go-net/CONTRIBUTORS | 3 - .../go-net/LICENSE | 27 - .../go-net/PATENTS | 22 - .../go-net/README | 3 - .../go-net/codereview.cfg | 1 - .../go-net/context/context.go | 447 - .../go-net/context/context_test.go | 575 - .../go-net/context/ctxhttp/cancelreq.go | 18 - .../go-net/context/ctxhttp/cancelreq_go14.go | 23 - .../go-net/context/ctxhttp/ctxhttp.go | 79 - .../go-net/context/ctxhttp/ctxhttp_test.go | 72 - .../go-net/context/withtimeout_test.go | 26 - .../go-net/dict/dict.go | 210 - .../go-net/html/atom/atom.go | 78 - .../go-net/html/atom/atom_test.go | 109 - .../go-net/html/atom/gen.go | 648 - .../go-net/html/atom/table.go | 713 - .../go-net/html/atom/table_test.go | 351 - .../go-net/html/charset/charset.go | 244 - .../go-net/html/charset/charset_test.go | 236 - .../go-net/html/charset/gen.go | 111 - .../go-net/html/charset/table.go | 235 - .../html/charset/testdata/HTTP-charset.html | 48 - .../charset/testdata/HTTP-vs-UTF-8-BOM.html | 48 - .../testdata/HTTP-vs-meta-charset.html | 49 - .../testdata/HTTP-vs-meta-content.html | 49 - .../testdata/No-encoding-declaration.html | 47 - .../go-net/html/charset/testdata/README | 9 - .../html/charset/testdata/UTF-16BE-BOM.html | Bin 2670 -> 0 bytes .../html/charset/testdata/UTF-16LE-BOM.html | Bin 2682 -> 0 bytes .../testdata/UTF-8-BOM-vs-meta-charset.html | 49 - .../testdata/UTF-8-BOM-vs-meta-content.html | 48 - .../testdata/meta-charset-attribute.html | 48 - .../testdata/meta-content-attribute.html | 48 - .../go-net/html/const.go | 102 - .../go-net/html/doc.go | 106 - .../go-net/html/doctype.go | 156 - .../go-net/html/entity.go | 2253 - .../go-net/html/entity_test.go | 29 - .../go-net/html/escape.go | 258 - .../go-net/html/escape_test.go | 97 - .../go-net/html/example_test.go | 40 - .../go-net/html/foreign.go | 226 - .../go-net/html/node.go | 193 - .../go-net/html/node_test.go | 146 - .../go-net/html/parse.go | 2094 - .../go-net/html/parse_test.go | 388 - .../go-net/html/render.go | 271 - .../go-net/html/render_test.go | 156 - .../go-net/html/testdata/go1.html | 2237 - .../go-net/html/testdata/webkit/README | 28 - .../html/testdata/webkit/adoption01.dat | 194 - .../html/testdata/webkit/adoption02.dat | 31 - .../html/testdata/webkit/comments01.dat | 135 - .../go-net/html/testdata/webkit/doctype01.dat | 370 - .../html/testdata/webkit/entities01.dat | 603 - .../html/testdata/webkit/entities02.dat | 249 - .../html/testdata/webkit/html5test-com.dat | 246 - .../go-net/html/testdata/webkit/inbody01.dat | 43 - .../go-net/html/testdata/webkit/isindex.dat | 40 - ...pending-spec-changes-plain-text-unsafe.dat | Bin 115 -> 0 bytes .../testdata/webkit/pending-spec-changes.dat | 52 - .../testdata/webkit/plain-text-unsafe.dat | Bin 4166 -> 0 bytes .../html/testdata/webkit/scriptdata01.dat | 308 - .../testdata/webkit/scripted/adoption01.dat | 15 - .../testdata/webkit/scripted/webkit01.dat | 28 - .../go-net/html/testdata/webkit/tables01.dat | 212 - .../go-net/html/testdata/webkit/tests1.dat | 1952 - .../go-net/html/testdata/webkit/tests10.dat | 799 - .../go-net/html/testdata/webkit/tests11.dat | 482 - .../go-net/html/testdata/webkit/tests12.dat | 62 - .../go-net/html/testdata/webkit/tests14.dat | 74 - .../go-net/html/testdata/webkit/tests15.dat | 208 - .../go-net/html/testdata/webkit/tests16.dat | 2299 - .../go-net/html/testdata/webkit/tests17.dat | 153 - .../go-net/html/testdata/webkit/tests18.dat | 269 - .../go-net/html/testdata/webkit/tests19.dat | 1237 - .../go-net/html/testdata/webkit/tests2.dat | 763 - .../go-net/html/testdata/webkit/tests20.dat | 455 - .../go-net/html/testdata/webkit/tests21.dat | 221 - .../go-net/html/testdata/webkit/tests22.dat | 157 - .../go-net/html/testdata/webkit/tests23.dat | 155 - .../go-net/html/testdata/webkit/tests24.dat | 79 - .../go-net/html/testdata/webkit/tests25.dat | 219 - .../go-net/html/testdata/webkit/tests26.dat | 313 - .../go-net/html/testdata/webkit/tests3.dat | 305 - .../go-net/html/testdata/webkit/tests4.dat | 59 - .../go-net/html/testdata/webkit/tests5.dat | 191 - .../go-net/html/testdata/webkit/tests6.dat | 663 - .../go-net/html/testdata/webkit/tests7.dat | 390 - .../go-net/html/testdata/webkit/tests8.dat | 148 - .../go-net/html/testdata/webkit/tests9.dat | 457 - .../testdata/webkit/tests_innerHTML_1.dat | 741 - .../go-net/html/testdata/webkit/tricky01.dat | 261 - .../go-net/html/testdata/webkit/webkit01.dat | 610 - .../go-net/html/testdata/webkit/webkit02.dat | 159 - .../go-net/html/token.go | 1219 - .../go-net/html/token_test.go | 748 - .../go-net/http2/.gitignore | 2 - .../go-net/http2/Dockerfile | 51 - .../go-net/http2/Makefile | 3 - .../go-net/http2/README | 20 - .../go-net/http2/client_conn_pool.go | 118 - .../go-net/http2/configure_transport.go | 78 - .../go-net/http2/errors.go | 77 - .../go-net/http2/errors_test.go | 24 - .../go-net/http2/fixed_buffer.go | 60 - .../go-net/http2/fixed_buffer_test.go | 128 - .../go-net/http2/flow.go | 50 - .../go-net/http2/flow_test.go | 53 - .../go-net/http2/frame.go | 1114 - .../go-net/http2/frame_test.go | 597 - .../go-net/http2/go15.go | 13 - .../go-net/http2/gotrack.go | 170 - .../go-net/http2/gotrack_test.go | 30 - .../go-net/http2/h2demo/.gitignore | 5 - .../go-net/http2/h2demo/Makefile | 5 - .../go-net/http2/h2demo/README | 16 - .../go-net/http2/h2demo/h2demo.go | 436 - .../go-net/http2/h2demo/launch.go | 302 - .../go-net/http2/h2demo/rootCA.key | 27 - .../go-net/http2/h2demo/rootCA.pem | 26 - .../go-net/http2/h2demo/rootCA.srl | 1 - .../go-net/http2/h2demo/server.crt | 20 - .../go-net/http2/h2demo/server.key | 27 - .../go-net/http2/h2i/README.md | 97 - .../go-net/http2/h2i/h2i.go | 499 - .../go-net/http2/headermap.go | 77 - .../go-net/http2/hpack/encode.go | 251 - .../go-net/http2/hpack/encode_test.go | 330 - .../go-net/http2/hpack/hpack.go | 518 - .../go-net/http2/hpack/hpack_test.go | 813 - .../go-net/http2/hpack/huffman.go | 190 - .../go-net/http2/hpack/tables.go | 352 - .../go-net/http2/http2.go | 253 - .../go-net/http2/http2_test.go | 168 - .../go-net/http2/pipe.go | 90 - .../go-net/http2/pipe_test.go | 24 - .../go-net/http2/priority_test.go | 118 - .../go-net/http2/server.go | 1894 - .../go-net/http2/server_test.go | 2622 - .../testdata/draft-ietf-httpbis-http2.xml | 5021 -- .../go-net/http2/transport.go | 1104 - .../go-net/http2/transport_test.go | 375 - .../go-net/http2/write.go | 206 - .../go-net/http2/writesched.go | 283 - .../go-net/http2/z_spec_test.go | 356 - .../go-net/icmp/dstunreach.go | 41 - .../go-net/icmp/echo.go | 43 - .../go-net/icmp/endpoint.go | 113 - .../go-net/icmp/example_test.go | 63 - .../go-net/icmp/extension.go | 87 - .../go-net/icmp/extension_test.go | 259 - .../go-net/icmp/helper_posix.go | 75 - .../go-net/icmp/interface.go | 235 - .../go-net/icmp/ipv4.go | 61 - .../go-net/icmp/ipv4_test.go | 71 - .../go-net/icmp/ipv6.go | 23 - .../go-net/icmp/listen_posix.go | 98 - .../go-net/icmp/listen_stub.go | 33 - .../go-net/icmp/message.go | 149 - .../go-net/icmp/message_test.go | 134 - .../go-net/icmp/messagebody.go | 41 - .../go-net/icmp/mpls.go | 75 - .../go-net/icmp/multipart.go | 109 - .../go-net/icmp/multipart_test.go | 315 - .../go-net/icmp/packettoobig.go | 41 - .../go-net/icmp/paramprob.go | 60 - .../go-net/icmp/ping_test.go | 166 - .../go-net/icmp/sys_freebsd.go | 11 - .../go-net/icmp/timeexceeded.go | 39 - .../go-net/idna/idna.go | 68 - .../go-net/idna/idna_test.go | 43 - .../go-net/idna/punycode.go | 200 - .../go-net/idna/punycode_test.go | 198 - .../go-net/internal/iana/const.go | 181 - .../go-net/internal/iana/gen.go | 293 - .../go-net/internal/nettest/error_posix.go | 31 - .../go-net/internal/nettest/error_stub.go | 11 - .../go-net/internal/nettest/interface.go | 94 - .../go-net/internal/nettest/rlimit.go | 11 - .../go-net/internal/nettest/rlimit_stub.go | 9 - .../go-net/internal/nettest/rlimit_unix.go | 17 - .../go-net/internal/nettest/rlimit_windows.go | 7 - .../go-net/internal/nettest/stack.go | 36 - .../go-net/internal/nettest/stack_stub.go | 18 - .../go-net/internal/nettest/stack_unix.go | 22 - .../go-net/internal/nettest/stack_windows.go | 32 - .../go-net/internal/timeseries/timeseries.go | 525 - .../internal/timeseries/timeseries_test.go | 170 - .../go-net/ipv4/control.go | 70 - .../go-net/ipv4/control_bsd.go | 40 - .../go-net/ipv4/control_pktinfo.go | 37 - .../go-net/ipv4/control_stub.go | 23 - .../go-net/ipv4/control_unix.go | 164 - .../go-net/ipv4/control_windows.go | 27 - .../go-net/ipv4/defs_darwin.go | 77 - .../go-net/ipv4/defs_dragonfly.go | 38 - .../go-net/ipv4/defs_freebsd.go | 75 - .../go-net/ipv4/defs_linux.go | 111 - .../go-net/ipv4/defs_netbsd.go | 37 - .../go-net/ipv4/defs_openbsd.go | 37 - .../go-net/ipv4/defs_solaris.go | 57 - .../go-net/ipv4/dgramopt_posix.go | 251 - .../go-net/ipv4/dgramopt_stub.go | 106 - .../go-net/ipv4/doc.go | 242 - .../go-net/ipv4/endpoint.go | 187 - .../go-net/ipv4/example_test.go | 222 - .../go-net/ipv4/gen.go | 208 - .../go-net/ipv4/genericopt_posix.go | 59 - .../go-net/ipv4/genericopt_stub.go | 29 - .../go-net/ipv4/header.go | 149 - .../go-net/ipv4/header_test.go | 114 - .../go-net/ipv4/helper.go | 37 - .../go-net/ipv4/helper_stub.go | 23 - .../go-net/ipv4/helper_unix.go | 50 - .../go-net/ipv4/helper_windows.go | 49 - .../go-net/ipv4/iana.go | 34 - .../go-net/ipv4/icmp.go | 57 - .../go-net/ipv4/icmp_linux.go | 25 - .../go-net/ipv4/icmp_stub.go | 25 - .../go-net/ipv4/icmp_test.go | 95 - .../go-net/ipv4/mocktransponder_test.go | 21 - .../go-net/ipv4/multicast_test.go | 334 - .../go-net/ipv4/multicastlistener_test.go | 249 - .../go-net/ipv4/multicastsockopt_test.go | 195 - .../go-net/ipv4/packet.go | 97 - .../go-net/ipv4/payload.go | 15 - .../go-net/ipv4/payload_cmsg.go | 81 - .../go-net/ipv4/payload_nocmsg.go | 42 - .../go-net/ipv4/readwrite_test.go | 170 - .../go-net/ipv4/sockopt.go | 46 - .../go-net/ipv4/sockopt_asmreq.go | 83 - .../go-net/ipv4/sockopt_asmreq_stub.go | 21 - .../go-net/ipv4/sockopt_asmreq_unix.go | 46 - .../go-net/ipv4/sockopt_asmreq_windows.go | 45 - .../go-net/ipv4/sockopt_asmreqn_stub.go | 17 - .../go-net/ipv4/sockopt_asmreqn_unix.go | 42 - .../go-net/ipv4/sockopt_ssmreq_stub.go | 17 - .../go-net/ipv4/sockopt_ssmreq_unix.go | 61 - .../go-net/ipv4/sockopt_stub.go | 11 - .../go-net/ipv4/sockopt_unix.go | 122 - .../go-net/ipv4/sockopt_windows.go | 68 - .../go-net/ipv4/sys_bsd.go | 36 - .../go-net/ipv4/sys_darwin.go | 98 - .../go-net/ipv4/sys_freebsd.go | 75 - .../go-net/ipv4/sys_linux.go | 57 - .../go-net/ipv4/sys_openbsd.go | 34 - .../go-net/ipv4/sys_stub.go | 15 - .../go-net/ipv4/sys_windows.go | 61 - .../go-net/ipv4/syscall_linux_386.go | 31 - .../go-net/ipv4/syscall_unix.go | 26 - .../go-net/ipv4/thunk_linux_386.s | 8 - .../go-net/ipv4/unicast_test.go | 250 - .../go-net/ipv4/unicastsockopt_test.go | 139 - .../go-net/ipv4/zsys_darwin.go | 99 - .../go-net/ipv4/zsys_dragonfly.go | 33 - .../go-net/ipv4/zsys_freebsd_386.go | 93 - .../go-net/ipv4/zsys_freebsd_amd64.go | 95 - .../go-net/ipv4/zsys_freebsd_arm.go | 95 - .../go-net/ipv4/zsys_linux_386.go | 130 - .../go-net/ipv4/zsys_linux_amd64.go | 132 - .../go-net/ipv4/zsys_linux_arm.go | 130 - .../go-net/ipv4/zsys_linux_arm64.go | 134 - .../go-net/ipv4/zsys_linux_ppc64.go | 134 - .../go-net/ipv4/zsys_linux_ppc64le.go | 134 - .../go-net/ipv4/zsys_netbsd.go | 30 - .../go-net/ipv4/zsys_openbsd.go | 30 - .../go-net/ipv4/zsys_solaris.go | 60 - .../go-net/ipv6/control.go | 92 - .../go-net/ipv6/control_rfc2292_unix.go | 56 - .../go-net/ipv6/control_rfc3542_unix.go | 103 - .../go-net/ipv6/control_stub.go | 23 - .../go-net/ipv6/control_unix.go | 166 - .../go-net/ipv6/control_windows.go | 27 - .../go-net/ipv6/defs_darwin.go | 112 - .../go-net/ipv6/defs_dragonfly.go | 84 - .../go-net/ipv6/defs_freebsd.go | 105 - .../go-net/ipv6/defs_linux.go | 136 - .../go-net/ipv6/defs_netbsd.go | 80 - .../go-net/ipv6/defs_openbsd.go | 89 - .../go-net/ipv6/defs_solaris.go | 96 - .../go-net/ipv6/dgramopt_posix.go | 288 - .../go-net/ipv6/dgramopt_stub.go | 119 - .../go-net/ipv6/doc.go | 240 - .../go-net/ipv6/endpoint.go | 123 - .../go-net/ipv6/example_test.go | 214 - .../go-net/ipv6/gen.go | 208 - .../go-net/ipv6/genericopt_posix.go | 60 - .../go-net/ipv6/genericopt_stub.go | 30 - .../go-net/ipv6/header.go | 55 - .../go-net/ipv6/header_test.go | 50 - .../go-net/ipv6/helper.go | 33 - .../go-net/ipv6/helper_stub.go | 19 - .../go-net/ipv6/helper_unix.go | 46 - .../go-net/ipv6/helper_windows.go | 45 - .../go-net/ipv6/iana.go | 82 - .../go-net/ipv6/icmp.go | 57 - .../go-net/ipv6/icmp_bsd.go | 29 - .../go-net/ipv6/icmp_linux.go | 27 - .../go-net/ipv6/icmp_solaris.go | 24 - .../go-net/ipv6/icmp_stub.go | 23 - .../go-net/ipv6/icmp_test.go | 96 - .../go-net/ipv6/icmp_windows.go | 26 - .../go-net/ipv6/mocktransponder_test.go | 32 - .../go-net/ipv6/multicast_test.go | 263 - .../go-net/ipv6/multicastlistener_test.go | 246 - .../go-net/ipv6/multicastsockopt_test.go | 157 - .../go-net/ipv6/payload.go | 15 - .../go-net/ipv6/payload_cmsg.go | 70 - .../go-net/ipv6/payload_nocmsg.go | 41 - .../go-net/ipv6/readwrite_test.go | 185 - .../go-net/ipv6/sockopt.go | 46 - .../go-net/ipv6/sockopt_asmreq_unix.go | 22 - .../go-net/ipv6/sockopt_asmreq_windows.go | 21 - .../go-net/ipv6/sockopt_ssmreq_stub.go | 17 - .../go-net/ipv6/sockopt_ssmreq_unix.go | 59 - .../go-net/ipv6/sockopt_stub.go | 13 - .../go-net/ipv6/sockopt_test.go | 133 - .../go-net/ipv6/sockopt_unix.go | 122 - .../go-net/ipv6/sockopt_windows.go | 86 - .../go-net/ipv6/sys_bsd.go | 58 - .../go-net/ipv6/sys_darwin.go | 135 - .../go-net/ipv6/sys_freebsd.go | 93 - .../go-net/ipv6/sys_linux.go | 74 - .../go-net/ipv6/sys_stub.go | 15 - .../go-net/ipv6/sys_windows.go | 63 - .../go-net/ipv6/syscall_linux_386.go | 31 - .../go-net/ipv6/syscall_unix.go | 26 - .../go-net/ipv6/thunk_linux_386.s | 8 - .../go-net/ipv6/unicast_test.go | 185 - .../go-net/ipv6/unicastsockopt_test.go | 111 - .../go-net/ipv6/zsys_darwin.go | 131 - .../go-net/ipv6/zsys_dragonfly.go | 90 - .../go-net/ipv6/zsys_freebsd_386.go | 122 - .../go-net/ipv6/zsys_freebsd_amd64.go | 124 - .../go-net/ipv6/zsys_freebsd_arm.go | 124 - .../go-net/ipv6/zsys_linux_386.go | 152 - .../go-net/ipv6/zsys_linux_amd64.go | 154 - .../go-net/ipv6/zsys_linux_arm.go | 152 - .../go-net/ipv6/zsys_linux_arm64.go | 156 - .../go-net/ipv6/zsys_linux_ppc64.go | 156 - .../go-net/ipv6/zsys_linux_ppc64le.go | 156 - .../go-net/ipv6/zsys_netbsd.go | 84 - .../go-net/ipv6/zsys_openbsd.go | 93 - .../go-net/ipv6/zsys_solaris.go | 105 - .../go-net/netutil/listen.go | 48 - .../go-net/netutil/listen_test.go | 106 - .../go-net/package.json | 22 - .../go-net/proxy/direct.go | 18 - .../go-net/proxy/per_host.go | 140 - .../go-net/proxy/per_host_test.go | 55 - .../go-net/proxy/proxy.go | 94 - .../go-net/proxy/proxy_test.go | 142 - .../go-net/proxy/socks5.go | 210 - .../go-net/publicsuffix/gen.go | 608 - .../go-net/publicsuffix/list.go | 133 - .../go-net/publicsuffix/list_test.go | 416 - .../go-net/publicsuffix/table.go | 8708 -- .../go-net/publicsuffix/table_test.go | 15615 ---- .../go-net/trace/events.go | 524 - .../go-net/trace/histogram.go | 356 - .../go-net/trace/histogram_test.go | 325 - .../go-net/trace/trace.go | 1057 - .../go-net/trace/trace_test.go | 46 - .../go-net/webdav/file.go | 795 - .../go-net/webdav/file_test.go | 1167 - .../go-net/webdav/if.go | 173 - .../go-net/webdav/if_test.go | 322 - .../go-net/webdav/internal/xml/README | 11 - .../go-net/webdav/internal/xml/atom_test.go | 56 - .../webdav/internal/xml/example_test.go | 151 - .../go-net/webdav/internal/xml/marshal.go | 1223 - .../webdav/internal/xml/marshal_test.go | 1939 - .../go-net/webdav/internal/xml/read.go | 692 - .../go-net/webdav/internal/xml/read_test.go | 744 - .../go-net/webdav/internal/xml/typeinfo.go | 371 - .../go-net/webdav/internal/xml/xml.go | 1998 - .../go-net/webdav/internal/xml/xml_test.go | 752 - .../go-net/webdav/litmus_test_server.go | 94 - .../go-net/webdav/lock.go | 445 - .../go-net/webdav/lock_test.go | 731 - .../go-net/webdav/prop.go | 385 - .../go-net/webdav/prop_test.go | 619 - .../go-net/webdav/webdav.go | 706 - .../go-net/webdav/webdav_test.go | 155 - .../go-net/webdav/xml.go | 469 - .../go-net/webdav/xml_test.go | 909 - .../go-net/websocket/client.go | 113 - .../go-net/websocket/exampledial_test.go | 31 - .../go-net/websocket/examplehandler_test.go | 26 - .../go-net/websocket/hybi.go | 586 - .../go-net/websocket/hybi_test.go | 608 - .../go-net/websocket/server.go | 113 - .../go-net/websocket/websocket.go | 412 - .../go-net/websocket/websocket_test.go | 587 - .../go-sockaddr/.gxignore | 1 - .../go-sockaddr/Makefile | 17 - .../go-sockaddr/README.md | 17 - .../go-sockaddr/net/net.go | 341 - .../go-sockaddr/net/net_bsd.go | 24 - .../go-sockaddr/net/net_linux.go | 22 - .../go-sockaddr/net/net_windows.go | 22 - .../go-sockaddr/package.json | 10 - .../go-sockaddr/sockaddr.go | 33 - .../go-sockaddr/sockaddr_bsd.go | 142 - .../go-sockaddr/sockaddr_linux.go | 156 - .../go-sockaddr/sockaddr_platform.go | 35 - .../go-sockaddr/sockaddr_windows.go | 80 - .../gogo-protobuf/.travis.yml | 19 - .../gogo-protobuf/CONTRIBUTORS | 14 - .../gogo-protobuf/LICENSE | 36 - .../gogo-protobuf/Makefile | 115 - .../gogo-protobuf/README | 175 - .../gogo-protobuf/Readme.md | 52 - .../gogo-protobuf/codec/codec.go | 73 - .../gogo-protobuf/gogoproto/Makefile | 36 - .../gogo-protobuf/gogoproto/doc.go | 166 - .../gogo-protobuf/gogoproto/gogo.pb.go | 494 - .../gogo-protobuf/gogoproto/gogo.pb.golden | 45 - .../gogo-protobuf/gogoproto/gogo.proto | 107 - .../gogo-protobuf/gogoproto/helper.go | 213 - .../gogo-protobuf/install-protobuf.sh | 27 - .../gogo-protobuf/io/full.go | 96 - .../gogo-protobuf/io/io.go | 57 - .../gogo-protobuf/io/uint32.go | 120 - .../gogo-protobuf/io/varint.go | 128 - .../gogo-protobuf/jsonpb/jsonpb.go | 540 - .../gogo-protobuf/jsonpb/jsonpb_test.go | 391 - .../jsonpb/jsonpb_test_proto/Makefile | 33 - .../jsonpb_test_proto/more_test_objects.pb.go | 92 - .../jsonpb_test_proto/more_test_objects.proto | 46 - .../jsonpb_test_proto/test_objects.pb.go | 510 - .../jsonpb_test_proto/test_objects.proto | 110 - .../gogo-protobuf/package.json | 9 - .../plugin/defaultcheck/defaultcheck.go | 131 - .../plugin/description/description.go | 148 - .../plugin/description/descriptiontest.go | 71 - .../plugin/embedcheck/embedcheck.go | 196 - .../plugin/enumstringer/enumstringer.go | 102 - .../gogo-protobuf/plugin/equal/equal.go | 571 - .../gogo-protobuf/plugin/equal/equaltest.go | 94 - .../gogo-protobuf/plugin/face/face.go | 244 - .../gogo-protobuf/plugin/face/facetest.go | 80 - .../gogo-protobuf/plugin/gostring/gostring.go | 356 - .../plugin/gostring/gostringtest.go | 88 - .../gogo-protobuf/plugin/grpc/grpc.go | 439 - .../plugin/marshalto/marshalto.go | 1257 - .../plugin/oneofcheck/oneofcheck.go | 91 - .../gogo-protobuf/plugin/populate/populate.go | 747 - .../gogo-protobuf/plugin/size/size.go | 575 - .../gogo-protobuf/plugin/size/sizetest.go | 127 - .../gogo-protobuf/plugin/stringer/stringer.go | 283 - .../plugin/stringer/stringertest.go | 81 - .../gogo-protobuf/plugin/testgen/testgen.go | 602 - .../gogo-protobuf/plugin/union/union.go | 207 - .../gogo-protobuf/plugin/union/uniontest.go | 84 - .../plugin/unmarshal/unmarshal.go | 1298 - .../gogo-protobuf/proto/Makefile | 43 - .../gogo-protobuf/proto/all_test.go | 2169 - .../gogo-protobuf/proto/clone.go | 228 - .../gogo-protobuf/proto/clone_test.go | 267 - .../gogo-protobuf/proto/decode.go | 872 - .../gogo-protobuf/proto/decode_gogo.go | 175 - .../gogo-protobuf/proto/encode.go | 1335 - .../gogo-protobuf/proto/encode_gogo.go | 354 - .../gogo-protobuf/proto/equal.go | 266 - .../gogo-protobuf/proto/equal_test.go | 209 - .../gogo-protobuf/proto/extensions.go | 519 - .../gogo-protobuf/proto/extensions_gogo.go | 221 - .../gogo-protobuf/proto/extensions_test.go | 292 - .../gogo-protobuf/proto/lib.go | 883 - .../gogo-protobuf/proto/lib_gogo.go | 40 - .../gogo-protobuf/proto/message_set.go | 280 - .../gogo-protobuf/proto/message_set_test.go | 66 - .../gogo-protobuf/proto/pointer_reflect.go | 479 - .../gogo-protobuf/proto/pointer_unsafe.go | 266 - .../proto/pointer_unsafe_gogo.go | 108 - .../gogo-protobuf/proto/properties.go | 915 - .../gogo-protobuf/proto/properties_gogo.go | 64 - .../proto/proto3_proto/proto3.pb.go | 129 - .../proto/proto3_proto/proto3.proto | 68 - .../gogo-protobuf/proto/proto3_test.go | 125 - .../gogo-protobuf/proto/size2_test.go | 63 - .../gogo-protobuf/proto/size_test.go | 147 - .../gogo-protobuf/proto/skip_gogo.go | 117 - .../gogo-protobuf/proto/testdata/Makefile | 37 - .../proto/testdata/golden_test.go | 86 - .../gogo-protobuf/proto/testdata/test.pb.go | 2985 - .../proto/testdata/test.pb.go.golden | 1737 - .../gogo-protobuf/proto/testdata/test.proto | 494 - .../gogo-protobuf/proto/text.go | 787 - .../gogo-protobuf/proto/text_gogo.go | 55 - .../gogo-protobuf/proto/text_parser.go | 841 - .../gogo-protobuf/proto/text_parser_test.go | 532 - .../gogo-protobuf/proto/text_test.go | 474 - .../google/protobuf/compiler/plugin.proto | 150 - .../protobuf/google/protobuf/descriptor.proto | 779 - .../gogo-protobuf/protoc-gen-combo/combo.go | 172 - .../gogo-protobuf/protoc-gen-gofast/main.go | 48 - .../gogo-protobuf/protoc-gen-gogo/Makefile | 33 - .../protoc-gen-gogo/descriptor/Makefile | 33 - .../descriptor/descriptor.pb.go | 1825 - .../protoc-gen-gogo/descriptor/gostring.go | 635 - .../protoc-gen-gogo/descriptor/helper.go | 342 - .../gogo-protobuf/protoc-gen-gogo/doc.go | 51 - .../protoc-gen-gogo/generator/generator.go | 2829 - .../protoc-gen-gogo/generator/helper.go | 361 - .../protoc-gen-gogo/generator/name_test.go | 56 - .../gogo-protobuf/protoc-gen-gogo/main.go | 57 - .../protoc-gen-gogo/plugin/Makefile | 37 - .../protoc-gen-gogo/plugin/plugin.pb.go | 194 - .../protoc-gen-gogo/testdata/Makefile | 68 - .../testdata/extension_base.proto | 46 - .../testdata/extension_extra.proto | 38 - .../testdata/extension_test.go | 210 - .../testdata/extension_user.proto | 100 - .../protoc-gen-gogo/testdata/golden_test.go | 86 - .../protoc-gen-gogo/testdata/grpc.proto | 59 - .../protoc-gen-gogo/testdata/imp.pb.go.golden | 113 - .../protoc-gen-gogo/testdata/imp.proto | 70 - .../protoc-gen-gogo/testdata/imp2.proto | 43 - .../protoc-gen-gogo/testdata/imp3.proto | 38 - .../protoc-gen-gogo/testdata/main_test.go | 46 - .../protoc-gen-gogo/testdata/multi/.gitignore | 1 - .../testdata/multi/multi1.proto | 44 - .../testdata/multi/multi2.proto | 46 - .../testdata/multi/multi3.proto | 43 - .../testdata/my_test/test.pb.go | 833 - .../testdata/my_test/test.pb.go.golden | 832 - .../testdata/my_test/test.proto | 156 - .../protoc-gen-gogo/testdata/proto3.proto | 52 - .../gogo-protobuf/protoc-gen-gogofast/main.go | 47 - .../protoc-gen-gogofaster/main.go | 50 - .../protoc-gen-gogoslick/main.go | 59 - .../protoc-min-version/minversion.go | 65 - .../gogo-protobuf/sortkeys/sortkeys.go | 99 - .../gogo-protobuf/vanity/command/command.go | 151 - .../gogo-protobuf/vanity/enum.go | 78 - .../gogo-protobuf/vanity/field.go | 83 - .../gogo-protobuf/vanity/file.go | 170 - .../gogo-protobuf/vanity/foreach.go | 125 - .../gogo-protobuf/vanity/msg.go | 138 - .../gogo-protobuf/vanity/test/Makefile | 18 - .../gogo-protobuf/vanity/test/doc.go | 1 - .../vanity/test/fast/gogovanity.pb.go | 385 - .../vanity/test/fast/proto3.pb.go | 294 - .../vanity/test/fast/vanity.pb.go | 355 - .../vanity/test/faster/gogovanity.pb.go | 372 - .../vanity/test/faster/proto3.pb.go | 294 - .../vanity/test/faster/vanity.pb.go | 334 - .../vanity/test/gofast/.gitignore | 1 - .../vanity/test/gogovanity.proto | 37 - .../gogo-protobuf/vanity/test/proto3.proto | 33 - .../vanity/test/slick/gogovanity.pb.go | 481 - .../vanity/test/slick/proto3.pb.go | 377 - .../vanity/test/slick/vanity.pb.go | 421 - .../gogo-protobuf/vanity/test/vanity.proto | 34 - .../gogo-protobuf/vanity/test/vanity_test.go | 93 - .../gogo-protobuf/version/version.go | 78 - .../randbo/README.markdown | 11 - .../randbo/package.json | 9 - .../randbo/randbo.go | 40 - .../randbo/randbo.png | Bin 247626 -> 0 bytes .../randbo/randbo_test.go | 37 - .../go-semver/.gxignore | 1 - .../go-semver/.travis.yml | 5 - .../go-semver/LICENSE | 202 - .../go-semver/README.md | 31 - .../go-semver/example.go | 20 - .../go-semver/package.json | 10 - .../go-semver/semver/semver.go | 244 - .../go-semver/semver/semver_test.go | 297 - .../go-semver/semver/sort.go | 38 - .../mdns/.gxignore | 1 - .../mdns/LICENSE | 20 - .../mdns/README.md | 37 - .../mdns/client.go | 362 - .../mdns/package.json | 22 - .../mdns/server.go | 286 - .../mdns/server_test.go | 58 - .../mdns/zone.go | 307 - .../mdns/zone_test.go | 275 - .../go-multistream/README.md | 43 - .../go-multistream/client.go | 75 - .../go-multistream/lazy.go | 124 - .../go-multistream/multistream.go | 201 - .../go-multistream/multistream_test.go | 259 - .../go-multistream/package.json | 9 - .../go-metrics/.gxignore | 1 - .../go-metrics/LICENSE | 29 - .../go-metrics/README.md | 104 - .../go-metrics/counter.go | 112 - .../go-metrics/counter_test.go | 77 - .../go-metrics/debug.go | 76 - .../go-metrics/debug_test.go | 48 - .../go-metrics/ewma.go | 123 - .../go-metrics/ewma_test.go | 225 - .../go-metrics/gauge.go | 84 - .../go-metrics/gauge_float64.go | 91 - .../go-metrics/gauge_float64_test.go | 38 - .../go-metrics/gauge_test.go | 37 - .../go-metrics/graphite.go | 111 - .../go-metrics/graphite_test.go | 22 - .../go-metrics/healthcheck.go | 61 - .../go-metrics/histogram.go | 202 - .../go-metrics/histogram_test.go | 95 - .../go-metrics/json.go | 83 - .../go-metrics/json_test.go | 28 - .../go-metrics/log.go | 70 - .../go-metrics/memory.md | 285 - .../go-metrics/meter.go | 255 - .../go-metrics/meter_test.go | 60 - .../go-metrics/metrics.go | 13 - .../go-metrics/metrics_test.go | 107 - .../go-metrics/opentsdb.go | 119 - .../go-metrics/opentsdb_test.go | 22 - .../go-metrics/package.json | 10 - .../go-metrics/registry.go | 180 - .../go-metrics/registry_test.go | 118 - .../go-metrics/runtime.go | 200 - .../go-metrics/runtime_cgo.go | 10 - .../go-metrics/runtime_no_cgo.go | 7 - .../go-metrics/runtime_test.go | 78 - .../go-metrics/sample.go | 602 - .../go-metrics/sample_test.go | 352 - .../go-metrics/syslog.go | 78 - .../go-metrics/timer.go | 311 - .../go-metrics/timer_test.go | 81 - .../go-metrics/writer.go | 100 - .../go-metrics/writer_test.go | 22 - .../go-reuseport/.gxignore | 1 - .../go-reuseport/.travis.yml | 10 - .../go-reuseport/LICENSE | 13 - .../go-reuseport/README.md | 42 - .../go-reuseport/addr.go | 20 - .../go-reuseport/available_unix.go | 91 - .../go-reuseport/const_bsd.go | 10 - .../go-reuseport/const_linux.go | 10 - .../go-reuseport/impl_unix.go | 360 - .../go-reuseport/impl_windows.go | 28 - .../go-reuseport/interface.go | 110 - .../go-reuseport/opts_posix.go | 35 - .../go-reuseport/package.json | 22 - .../go-reuseport/poll/error.go | 9 - .../go-reuseport/poll/poll_bsd.go | 59 - .../go-reuseport/poll/poll_darwin_386.go | 57 - .../go-reuseport/poll/poll_linux.go | 51 - .../go-reuseport/poll/poll_unsupported.go | 11 - .../go-reuseport/reuse_test.go | 579 - .../go-reuseport/test/.gitignore | 1 - .../go-reuseport/test/main.go | 71 - .../goprocess/.gxignore | 1 - .../goprocess/.travis.yml | 10 - .../goprocess/LICENSE | 21 - .../goprocess/README.md | 132 - .../goprocess/context/context.go | 110 - .../goprocess/context/derive.go | 59 - .../goprocess/example_test.go | 37 - .../goprocess/goprocess.go | 283 - .../goprocess/goprocess_test.go | 638 - .../goprocess/impl-mutex.go | 271 - .../goprocess/link.go | 121 - .../goprocess/package.json | 17 - .../goprocess/periodic/README.md | 4 - .../goprocess/periodic/examples_test.go | 85 - .../goprocess/periodic/periodic.go | 232 - .../goprocess/periodic/periodic_test.go | 260 - .../goprocess/ratelimit/README.md | 4 - .../goprocess/ratelimit/ratelimit.go | 68 - .../goprocess/ratelimit/ratelimit_test.go | 98 - .../muxado/LICENSE | 13 - .../muxado/README.md | 122 - .../muxado/TODO | 35 - .../muxado/adaptor.go | 54 - .../muxado/client.go | 32 - .../muxado/doc.go | 57 - .../muxado/interface.go | 115 - .../muxado/package.json | 9 - .../muxado/proto/buffer/circular.go | 87 - .../muxado/proto/buffer/circular_test.go | 234 - .../muxado/proto/buffer/inbound.go | 160 - .../muxado/proto/buffer/outbound.go | 59 - .../muxado/proto/buffer/shared.go | 10 - .../muxado/proto/ext/const.go | 9 - .../muxado/proto/ext/heartbeat.go | 125 - .../muxado/proto/frame/data.go | 68 - .../muxado/proto/frame/data_test.go | 134 - .../muxado/proto/frame/debug.go | 37 - .../muxado/proto/frame/error.go | 25 - .../muxado/proto/frame/goaway.go | 79 - .../muxado/proto/frame/header.go | 85 - .../muxado/proto/frame/header_test.go | 279 - .../muxado/proto/frame/interface.go | 25 - .../muxado/proto/frame/rst.go | 67 - .../muxado/proto/frame/rst_test.go | 101 - .../muxado/proto/frame/syn.go | 120 - .../muxado/proto/frame/transport.go | 79 - .../muxado/proto/frame/types.go | 61 - .../muxado/proto/frame/wndinc.go | 57 - .../muxado/proto/frame/wndinc_test.go | 101 - .../muxado/proto/interface.go | 36 - .../muxado/proto/session.go | 474 - .../muxado/proto/session_test.go | 340 - .../muxado/proto/stream.go | 319 - .../muxado/proto/stream_map.go | 59 - .../muxado/proto/stream_test.go | 283 - .../muxado/server.go | 71 - .../go-log/.gxignore | 1 - .../go-log/context.go | 38 - .../go-log/context_test.go | 44 - .../go-log/entry.go | 7 - .../go-log/example_test.go | 16 - .../go-log/log.go | 170 - .../go-log/loggable.go | 34 - .../go-log/metadata.go | 82 - .../go-log/metadata_test.go | 50 - .../go-log/oldlog.go | 105 - .../go-log/option.go | 52 - .../go-log/package.json | 27 - .../go-log/polite_json_formatter.go | 28 - .../go-log/writer.go | 251 - .../go-log/writer_test.go | 160 - 1700 files changed, 199 insertions(+), 657553 deletions(-) delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/.gxignore delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/.travis.yml delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/LICENSE delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/Makefile delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/README.md delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/convert.go delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/convert_test.go delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/doc.go delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/ip.go delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/multiaddr/.gitignore delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/multiaddr/multiaddr.go delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/net.go delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/net_test.go delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/package.json delete mode 100644 vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/utp/utp_util.go delete mode 100644 vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/LICENSE delete mode 100644 vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/README.md delete mode 100644 vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/base58.go delete mode 100644 vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/base58_test.go delete mode 100644 vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/doc.go delete mode 100644 vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/package.json delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/.travis.yml delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/AUTHORS delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/LICENSE delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/README.md delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/bench_test.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/client.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/client_server_test.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/client_test.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/conn.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/conn_test.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/doc.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/autobahn/README.md delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/autobahn/fuzzingclient.json delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/autobahn/server.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/README.md delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/conn.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/home.html delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/hub.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/main.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/command/README.md delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/command/home.html delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/command/main.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/echo/README.md delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/echo/client.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/echo/server.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/filewatch/README.md delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/filewatch/main.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/json.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/json_test.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/package.json delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/server.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/server_test.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/util.go delete mode 100644 vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/util_test.go delete mode 100644 vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/.gxignore delete mode 100644 vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/.travis.yml delete mode 100644 vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/LICENSE delete mode 100644 vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/README.md delete mode 100644 vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/benchmarks_test.go delete mode 100644 vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/package.json delete mode 100644 vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/uuid.go delete mode 100644 vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/uuid_test.go delete mode 100644 vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/.gxignore delete mode 100644 vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/file.go delete mode 100644 vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/file_test.go delete mode 100644 vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/package.json delete mode 100644 vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/time.go delete mode 100644 vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/time_test.go delete mode 100644 vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/util.go delete mode 100644 vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/util_test.go delete mode 100644 vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/.gxignore delete mode 100644 vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/LICENSE delete mode 100644 vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/README.md delete mode 100644 vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/package.json delete mode 100644 vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/race.go delete mode 100644 vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/race_test.go delete mode 100644 vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/withoutrace.go delete mode 100644 vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/withrace.go delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/.gxignore delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/.travis.yml delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/LICENSE delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/Makefile delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/README.md delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/conn.go delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/doc.go delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/example/.gitignore delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/example/blockhandler/blockhandler.go delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/example/example.go delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/group.go delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/handlers.go delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/listener.go delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/muxtest/hack.go delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/muxtest/mux_test.go delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/muxtest/muxt.go delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/package.json delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/stream.go delete mode 100644 vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/swarm.go delete mode 100644 vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/.gxignore delete mode 100644 vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/README.md delete mode 100644 vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/multiplex.go delete mode 100644 vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/multiplex_test.go delete mode 100644 vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/package.json delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/.gxignore delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/.travis.yml delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/CONTRIBUTORS delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/LICENSE delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/README.md delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/backend.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/example_test.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/examples/example.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/examples/example.png delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/format.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/format_test.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/level.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/level_test.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/log.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/log_test.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/logger.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/logger_test.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/memory.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/memory_test.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/multi.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/multi_test.go delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/package.json delete mode 100644 vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/syslog.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/.gxignore delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/LICENSE delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/README.md delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/cmd/example_httpu_serving/example_httpu_serving.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/cmd/example_internetgateway1/example_internetgateway1.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/cmd/example_ssdp_registry/example_ssdp_registry.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/av1/av1.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/internetgateway1/internetgateway1.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/internetgateway2/internetgateway2.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/device.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/example/example.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/example/example_test.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/gotasks/specgen_task.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/goupnp.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/httpu/httpu.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/httpu/serve.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/package.json delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/scpd/scpd.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/service_client.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/soap.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/soap_test.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/types.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/types_test.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/ssdp/registry.go delete mode 100644 vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/ssdp/ssdp.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/.gxignore delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/CONTRIBUTING.md delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/LICENSE delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/LICENSE.docs delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/MAINTAINERS delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/README.md delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/connection.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/handlers.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/package.json delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/priority.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/priority_test.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/dictionary.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/read.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/spdy_test.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/types.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/write.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy_bench_test.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy_test.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/stream.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/utils.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/ws/connection.go delete mode 100644 vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/ws/ws_test.go delete mode 100644 vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/.gxignore delete mode 100644 vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/LICENSE delete mode 100644 vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/README.md delete mode 100644 vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/cmd/ucat/ucat.go delete mode 100644 vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/package.json delete mode 100644 vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/pingpong delete mode 100644 vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/utp.go delete mode 100644 vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/utp_test.go delete mode 100644 vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/.gxignore delete mode 100644 vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/notifier.go delete mode 100644 vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/notifier_test.go delete mode 100644 vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/package.json delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/.gxignore delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/.travis.yml delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/LICENSE delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/Makefile delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/README.md delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/img/badge.png delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multiplex/multiplex.go delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multiplex/multiplex_test.go delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multistream/multistream.go delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multistream/multistream_test.go delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxado/muxado.go delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxado/muxado_test.go delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxer.go delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/package.json delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/spdystream/spdystream.go delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/spdystream/spdystream_test.go delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/test/ttest.go delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/yamux/yamux.go delete mode 100644 vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/yamux/yamux_test.go delete mode 100644 vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/doc.go delete mode 100644 vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/hashes.go delete mode 100644 vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/keccakf.go delete mode 100644 vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/package.json delete mode 100644 vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/register.go delete mode 100644 vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/sha3.go delete mode 100644 vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/sha3_test.go delete mode 100644 vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/shake.go delete mode 100644 vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/testdata/keccakKats.json.deflate delete mode 100644 vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/xor.go delete mode 100644 vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/xor_generic.go delete mode 100644 vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/xor_unaligned.go delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/LICENSE delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/README.md delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/addr.go delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/bench_test.go delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/const.go delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/const_test.go delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/mux.go delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/package.json delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/session.go delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/session_test.go delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/spec.md delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/stream.go delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/util.go delete mode 100644 vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/util_test.go delete mode 100644 vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/README.md delete mode 100644 vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/keyspace.go delete mode 100644 vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/package.json delete mode 100644 vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/xor.go delete mode 100644 vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/xor_test.go delete mode 100644 vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/.gxignore delete mode 100644 vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/LICENSE delete mode 100644 vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/README.md delete mode 100644 vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/mask.go delete mode 100644 vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/mask_test.go delete mode 100644 vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/package.json delete mode 100644 vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/.gxignore delete mode 100644 vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/.travis.yml delete mode 100644 vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/LICENSE delete mode 100644 vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/README.md delete mode 100644 vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/codec.go delete mode 100644 vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/doc.go delete mode 100644 vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/interface.go delete mode 100644 vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/multiaddr.go delete mode 100644 vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/multiaddr_test.go delete mode 100644 vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/package.json delete mode 100644 vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/protocols.csv delete mode 100644 vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/protocols.go delete mode 100644 vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/util.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/.gxignore delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/AUTHORS delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/CONTRIBUTING.md delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/CONTRIBUTORS delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/LICENSE delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/PATENTS delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/README delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/cases.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/context.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/context_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/example_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/gen.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/gen_trieval.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/map.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/map_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/tables_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/trieval.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/base.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/cldr.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/cldr_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/collate.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/collate_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/data_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/decode.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/examples_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/makexml.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/resolve.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/resolve_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/slice.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/slice_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/xml.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/codereview.cfg delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/builder.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/builder_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/colelem.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/colelem_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/contract.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/contract_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/order.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/order_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/table.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/trie.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/trie_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/collate.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/collate_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/collate_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/collelem.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/collelem_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/colltab.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/colltab_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/contract.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/contract_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/export.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/numeric.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/numeric_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/table.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/trie.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/trie_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/export_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/index.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/maketables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/option.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/option_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/reg_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/sort.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/sort_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/table_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/Makefile delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/chars.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/col.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/colcmp.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/darwin.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/gen.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/icu.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/common.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/currency.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/currency_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/format.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/format_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/gen.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/gen_common.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/tables_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/dict.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/dict_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/display.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/display_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/examples_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/lookup.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/maketables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/doc.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap/charmap.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap/maketables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/encoding.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/encoding_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/example_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/gen.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/htmlindex.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/htmlindex_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/map.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/ianaindex/example_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/ianaindex/ianaindex.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier/gen.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier/identifier.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier/mib.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/internal.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/all.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/eucjp.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/iso2022jp.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/maketables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/shiftjis.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean/euckr.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean/maketables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/all.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/gbk.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/hzgb2312.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/maketables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-gb18030.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-utf-16le.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-utf-8.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-windows-1252.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-euc-jp.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-iso-2022-jp.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-shift-jis.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-utf-8.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-hz-gb2312.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-utf-8.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-simplified-gbk.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-traditional-big5.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese/big5.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese/maketables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/unicode/override.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/unicode/unicode.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/gen.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/colltab.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/colltab_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/contract.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/contract_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/iter.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/iter_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/format/format.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen/code.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen/gen.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/internal.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/match.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/match_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag/tag.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag/tag_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/testtext/codesize.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/testtext/text.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/compact.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/data_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/example_compact_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/example_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/gen_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/print.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/triegen.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd/example_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd/ucd.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd/ucd_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/Makefile delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/common.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/coverage.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/coverage_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/data_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/examples_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/gen_common.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/gen_index.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/go1_1.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/go1_2.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/index.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/language.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/language_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/lookup.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/lookup_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/maketables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/match.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/match_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/parse.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/parse_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/tags.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/message/message.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/message/message_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/package.json delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/cond.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/cond_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/example_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/runes.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/runes_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/index.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/pattern.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/pattern_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/search.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform/examples_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform/transform.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform/transform_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/composition.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/composition_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/example_iter_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/forminfo.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/forminfo_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/input.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/iter.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/iter_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/maketables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/norm_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/normalize.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/normalize_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/readwriter.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/readwriter_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/transform.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/transform_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/trie.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/triegen.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/ucd_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/gen.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/merge.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/merge_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/rangetable.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/rangetable_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/common_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/example_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/gen.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/gen_common.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/gen_trieval.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/kind_string.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/runes_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/tables.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/tables_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/transform.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/transform_test.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/trieval.go delete mode 100644 vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/width.go delete mode 100644 vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/.gxignore delete mode 100644 vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/LICENSE delete mode 100644 vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/README.md delete mode 100644 vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/natpmp.go delete mode 100644 vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/natpmp_test.go delete mode 100644 vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/package.json delete mode 100644 vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/.gxignore delete mode 100644 vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/LICENSE delete mode 100644 vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/README.md delete mode 100644 vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/_examples/nat-tester.go delete mode 100644 vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/nat.go delete mode 100644 vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/natpmp.go delete mode 100644 vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/package.json delete mode 100644 vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/upnp.go delete mode 100644 vendor/gx/QmWsa476RGjb9scWzcRVts3QZsYjU5Kt6Y9qe8Q3vc5FHR/envpprof/envpprof.go delete mode 100644 vendor/gx/QmWsa476RGjb9scWzcRVts3QZsYjU5Kt6Y9qe8Q3vc5FHR/envpprof/package.json delete mode 100644 vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/.travis.yml delete mode 100644 vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/LICENSE delete mode 100644 vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/README.md delete mode 100644 vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/doc.go delete mode 100644 vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/example/example.go delete mode 100644 vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/package.json delete mode 100644 vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/tec_test.go delete mode 100644 vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/temp_err_catcher.go delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/.gxignore delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/.travis.yml delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/README.md delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/chan.go delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/chan_test.go delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/fuzz.go delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/fuzz_test.go delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/limit.go delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/mpool/pool.go delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/mpool/pool_test.go delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio.go delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio/.gitignore delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio/README.md delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio/msgio.go delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio_test.go delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/num.go delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/package.json delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/varint.go delete mode 100644 vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/varint_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/.gxignore delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/.travis.yml delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/AUTHORS delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/CONTRIBUTORS delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/COPYRIGHT delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/LICENSE delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/README.md delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/client.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/client_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/clientconfig.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/clientconfig_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/defaults.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dns.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dns_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_keygen.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_keyscan.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_privkey.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/doc.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dyn_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/edns.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/edns_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/example_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/format.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/fuzz_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/code_points.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/example_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/punycode.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/punycode_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/labels.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/labels_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/msg.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/nsecx.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/nsecx_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/package.json delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/parse_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/privaterr.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/privaterr_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/rawmsg.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/remote_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sanitize.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sanitize_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/scanner.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/server.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/server_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sig0.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sig0_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/singleinflight.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/tlsa.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/tsig.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/types.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/types_generate.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/types_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp_linux.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp_other.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp_windows.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/update.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/update_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/xfr.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/xfr_test.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/zgenerate.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/zscan.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/zscan_rr.go delete mode 100644 vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/ztypes.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/.gxignore delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/AUTHORS delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/CONTRIBUTING.md delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/CONTRIBUTORS delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/LICENSE delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/PATENTS delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/README delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bcrypt/base64.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bcrypt/bcrypt.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bcrypt/bcrypt_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/block.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/blowfish_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/cipher.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/const.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/bn256.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/bn256_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/constants.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/curve.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/example_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/gfp12.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/gfp2.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/gfp6.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/optate.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/twist.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/cast5/cast5.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/cast5/cast5_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/codereview.cfg delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/const_amd64.s delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/cswap_amd64.s delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/curve25519.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/curve25519_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/doc.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/freeze_amd64.s delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/ladderstep_amd64.s delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/mont25519_amd64.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/mul_amd64.s delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/square_amd64.s delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/hkdf/example_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/hkdf/hkdf.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/hkdf/hkdf_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/md4/md4.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/md4/md4_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/md4/md4block.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/box/box.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/box/box_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/secretbox/secretbox.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/secretbox/secretbox_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ocsp/ocsp.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ocsp/ocsp_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor/armor.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor/armor_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor/encode.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/canonical_text.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/canonical_text_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/clearsign/clearsign.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/clearsign/clearsign_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/elgamal/elgamal.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/elgamal/elgamal_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors/errors.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/keys.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/keys_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/compressed.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/compressed_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/config.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/encrypted_key.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/encrypted_key_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/literal.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/ocfb.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/ocfb_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/one_pass_signature.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/opaque.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/opaque_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/packet.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/packet_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/private_key.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/private_key_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key_v3.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key_v3_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/reader.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature_v3.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature_v3_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetric_key_encrypted.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetric_key_encrypted_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetrically_encrypted.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetrically_encrypted_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userattribute.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userattribute_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userid.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userid_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/read.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/read_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k/s2k.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k/s2k_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/write.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/write_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/libotr_test_helper.c delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/otr.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/otr_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/smp.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/package.json delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pbkdf2/pbkdf2.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pbkdf2/pbkdf2_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/bmp-string.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/bmp-string_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/crypto.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/crypto_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/errors.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/internal/rc2/bench_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/internal/rc2/rc2.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/internal/rc2/rc2_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/mac.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/mac_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pbkdf.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pbkdf_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pkcs12.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pkcs12_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/safebags.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/const_amd64.s delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305_amd64.s delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305_arm.s delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/sum_amd64.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/sum_arm.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/sum_ref.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ripemd160/ripemd160.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ripemd160/ripemd160_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ripemd160/ripemd160block.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/hsalsa20.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa2020_amd64.s delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa208.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa20_amd64.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa20_ref.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa20.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa20_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/scrypt/scrypt.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/scrypt/scrypt_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/doc.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/hashes.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/keccakf.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/register.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/sha3.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/sha3_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/shake.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/testdata/keccakKats.json.deflate delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/xor.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/xor_generic.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/xor_unaligned.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/client.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/client_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/forward.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/keyring.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/server.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/server_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/testdata_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/benchmark_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/buffer.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/buffer_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/certs.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/certs_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/channel.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/cipher.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/cipher_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client_auth.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client_auth_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/common.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/connection.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/doc.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/example_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/handshake.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/handshake_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/kex.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/kex_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/keys.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/keys_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mac.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mempipe_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/messages.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/messages_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mux.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mux_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/server.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/session.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/session_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/tcpip.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/tcpip_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/terminal.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/terminal_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util_bsd.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util_linux.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util_windows.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/agent_unix_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/cert_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/doc.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/forward_unix_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/session_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/tcpip_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/test_unix_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/testdata_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata/doc.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata/keys.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/transport.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/transport_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/tea/cipher.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/tea/tea_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/twofish/twofish.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/twofish/twofish_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xtea/block.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xtea/cipher.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xtea/xtea_test.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xts/xts.go delete mode 100644 vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xts/xts_test.go delete mode 100644 vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/.gxignore delete mode 100644 vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/LICENSE delete mode 100644 vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/README.md delete mode 100644 vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_darwin.go delete mode 100644 vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_linux.go delete mode 100644 vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_test.go delete mode 100644 vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_unimplemented.go delete mode 100644 vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_windows.go delete mode 100644 vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/package.json delete mode 100644 vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/.gxignore delete mode 100644 vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/README.md delete mode 100644 vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/package.json delete mode 100644 vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/parse.go delete mode 100644 vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/resolve.go delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/.gxignore delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/.travis.yml delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/LICENSE delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/Makefile delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/README.md delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/io.go delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/io_test.go delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash.go delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/.gitignore delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/.gobuilder.yml delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/LICENSE delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/README.md delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/install.dist.sh delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/main.go delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash_test.go delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/opts/README.md delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/opts/coding.go delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/opts/opts.go delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/package.json delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/sum.go delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/sum_test.go delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/.gitignore delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/Makefile delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/.gitignore delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/Makefile delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/bin delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/lib/install-sharness.sh delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/lib/test-aggregate-results.sh delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/lib/test-lib.sh delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/t0010-basics.sh delete mode 100644 vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/t0020-sha1.sh delete mode 100644 vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/context.go delete mode 100644 vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/context_test.go delete mode 100644 vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/cancelreq.go delete mode 100644 vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/cancelreq_go14.go delete mode 100644 vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/ctxhttp.go delete mode 100644 vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/ctxhttp_test.go delete mode 100644 vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/package.json delete mode 100644 vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/withtimeout_test.go delete mode 100644 vendor/gx/QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS/jitter/jitter.go delete mode 100644 vendor/gx/QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS/jitter/jitter_test.go delete mode 100644 vendor/gx/QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS/jitter/package.json delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/.gxignore delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/AUTHORS delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/CONTRIBUTING.md delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/CONTRIBUTORS delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/LICENSE delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/PATENTS delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/README delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/codereview.cfg delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/context.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/context_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/cancelreq.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/cancelreq_go14.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/ctxhttp.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/ctxhttp_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/withtimeout_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/dict/dict.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/atom.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/atom_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/gen.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/table.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/table_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/charset.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/charset_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/gen.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/table.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-charset.html delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-vs-UTF-8-BOM.html delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-vs-meta-charset.html delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-vs-meta-content.html delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/No-encoding-declaration.html delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/README delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/UTF-16BE-BOM.html delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/UTF-16LE-BOM.html delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/UTF-8-BOM-vs-meta-charset.html delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/UTF-8-BOM-vs-meta-content.html delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/meta-charset-attribute.html delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/meta-content-attribute.html delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/const.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/doc.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/doctype.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/entity.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/entity_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/escape.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/escape_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/example_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/foreign.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/node.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/node_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/parse.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/parse_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/render.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/render_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/go1.html delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/README delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/adoption01.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/adoption02.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/comments01.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/doctype01.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/entities01.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/entities02.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/html5test-com.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/inbody01.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/isindex.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/pending-spec-changes-plain-text-unsafe.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/pending-spec-changes.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/plain-text-unsafe.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/scriptdata01.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/scripted/adoption01.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/scripted/webkit01.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tables01.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests1.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests10.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests11.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests12.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests14.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests15.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests16.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests17.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests18.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests19.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests2.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests20.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests21.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests22.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests23.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests24.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests25.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests26.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests3.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests4.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests5.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests6.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests7.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests8.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests9.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests_innerHTML_1.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tricky01.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/webkit01.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/webkit02.dat delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/token.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/token_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/.gitignore delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/Dockerfile delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/Makefile delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/README delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/client_conn_pool.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/configure_transport.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/errors.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/errors_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/fixed_buffer.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/fixed_buffer_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/flow.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/flow_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/frame.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/frame_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/go15.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/gotrack.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/gotrack_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/.gitignore delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/Makefile delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/README delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/h2demo.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/launch.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/rootCA.key delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/rootCA.pem delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/rootCA.srl delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/server.crt delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/server.key delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2i/README.md delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2i/h2i.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/headermap.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/encode.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/encode_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/hpack.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/hpack_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/huffman.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/tables.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/http2.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/http2_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/pipe.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/pipe_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/priority_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/server.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/server_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/testdata/draft-ietf-httpbis-http2.xml delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/transport.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/transport_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/write.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/writesched.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/z_spec_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/dstunreach.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/echo.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/endpoint.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/example_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/extension.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/extension_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/helper_posix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/interface.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ipv4.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ipv4_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ipv6.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/listen_posix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/listen_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/message.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/message_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/messagebody.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/mpls.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/multipart.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/multipart_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/packettoobig.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/paramprob.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ping_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/sys_freebsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/timeexceeded.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/idna.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/idna_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/punycode.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/punycode_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana/const.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana/gen.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/error_posix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/error_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/interface.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit_windows.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack_windows.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/timeseries/timeseries.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/timeseries/timeseries_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_bsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_pktinfo.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_windows.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_darwin.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_dragonfly.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_freebsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_linux.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_netbsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_openbsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_solaris.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/dgramopt_posix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/dgramopt_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/doc.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/endpoint.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/example_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/gen.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/genericopt_posix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/genericopt_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/header.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/header_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper_windows.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/iana.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp_linux.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/mocktransponder_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/multicast_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/multicastlistener_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/multicastsockopt_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/packet.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/payload.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/payload_cmsg.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/payload_nocmsg.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/readwrite_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq_windows.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreqn_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreqn_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_ssmreq_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_ssmreq_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_windows.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_bsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_darwin.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_freebsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_linux.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_openbsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_windows.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/syscall_linux_386.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/syscall_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/thunk_linux_386.s delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/unicast_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/unicastsockopt_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_darwin.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_dragonfly.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_freebsd_386.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_freebsd_amd64.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_freebsd_arm.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_386.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_amd64.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_arm.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_arm64.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_ppc64.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_ppc64le.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_netbsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_openbsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_solaris.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_rfc2292_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_rfc3542_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_windows.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_darwin.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_dragonfly.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_freebsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_linux.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_netbsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_openbsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_solaris.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/dgramopt_posix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/dgramopt_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/doc.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/endpoint.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/example_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/gen.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/genericopt_posix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/genericopt_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/header.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/header_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper_windows.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/iana.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_bsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_linux.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_solaris.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_windows.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/mocktransponder_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/multicast_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/multicastlistener_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/multicastsockopt_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/payload.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/payload_cmsg.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/payload_nocmsg.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/readwrite_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_asmreq_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_asmreq_windows.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_ssmreq_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_ssmreq_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_windows.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_bsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_darwin.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_freebsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_linux.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_stub.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_windows.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/syscall_linux_386.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/syscall_unix.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/thunk_linux_386.s delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/unicast_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/unicastsockopt_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_darwin.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_dragonfly.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_freebsd_386.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_freebsd_amd64.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_freebsd_arm.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_386.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_amd64.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_arm.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_arm64.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_ppc64.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_ppc64le.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_netbsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_openbsd.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_solaris.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/netutil/listen.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/netutil/listen_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/package.json delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/direct.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/per_host.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/per_host_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/proxy.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/proxy_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/socks5.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/gen.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/list.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/list_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/table.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/table_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/events.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/histogram.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/histogram_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/trace.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/trace_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/file.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/file_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/if.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/if_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/README delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/atom_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/example_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/marshal.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/marshal_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/read.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/read_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/typeinfo.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/xml.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/xml_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/litmus_test_server.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/lock.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/lock_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/prop.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/prop_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/webdav.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/webdav_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/xml.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/xml_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/client.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/exampledial_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/examplehandler_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/hybi.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/hybi_test.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/server.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/websocket.go delete mode 100644 vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/websocket_test.go delete mode 100644 vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/.gxignore delete mode 100644 vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/Makefile delete mode 100644 vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/README.md delete mode 100644 vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net.go delete mode 100644 vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net_bsd.go delete mode 100644 vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net_linux.go delete mode 100644 vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net_windows.go delete mode 100644 vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/package.json delete mode 100644 vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr.go delete mode 100644 vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_bsd.go delete mode 100644 vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_linux.go delete mode 100644 vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_platform.go delete mode 100644 vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_windows.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/.travis.yml delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/CONTRIBUTORS delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/LICENSE delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/Makefile delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/README delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/Readme.md delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/codec/codec.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/Makefile delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/doc.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/gogo.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/gogo.pb.golden delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/gogo.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/helper.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/install-protobuf.sh delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/full.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/io.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/uint32.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/varint.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/Makefile delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/test_objects.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/package.json delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/defaultcheck/defaultcheck.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/description/description.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/description/descriptiontest.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/embedcheck/embedcheck.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/enumstringer/enumstringer.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/equal/equal.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/equal/equaltest.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/face/face.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/face/facetest.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/gostring/gostring.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/gostring/gostringtest.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/grpc/grpc.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/marshalto/marshalto.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/oneofcheck/oneofcheck.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/populate/populate.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/size/size.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/size/sizetest.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/stringer/stringer.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/stringer/stringertest.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/testgen/testgen.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/union/union.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/union/uniontest.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/unmarshal/unmarshal.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/Makefile delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/all_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/clone.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/clone_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/decode.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/decode_gogo.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/encode.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/encode_gogo.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/equal.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/equal_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/extensions.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/extensions_gogo.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/extensions_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/lib.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/lib_gogo.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/message_set.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/message_set_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/pointer_reflect.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/pointer_unsafe.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/pointer_unsafe_gogo.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/properties.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/properties_gogo.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto/proto3.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto/proto3.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/size2_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/size_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/skip_gogo.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/Makefile delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/golden_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/test.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/test.pb.go.golden delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/test.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_gogo.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_parser.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_parser_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protobuf/google/protobuf/compiler/plugin.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protobuf/google/protobuf/descriptor.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-combo/combo.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gofast/main.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/Makefile delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/Makefile delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/gostring.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/helper.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/doc.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator/generator.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator/helper.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator/name_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/main.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/plugin/Makefile delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/plugin/plugin.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/Makefile delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_base.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_extra.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_user.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/golden_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/grpc.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp.pb.go.golden delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp2.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp3.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/main_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/.gitignore delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/multi1.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/multi2.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/multi3.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go.golden delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/my_test/test.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/proto3.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogofast/main.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogofaster/main.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogoslick/main.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-min-version/minversion.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/sortkeys/sortkeys.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/command/command.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/enum.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/field.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/file.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/foreach.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/msg.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/Makefile delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/doc.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/fast/gogovanity.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/fast/proto3.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/fast/vanity.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/faster/gogovanity.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/faster/proto3.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/faster/vanity.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/gofast/.gitignore delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/gogovanity.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/proto3.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/slick/gogovanity.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/slick/proto3.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/slick/vanity.pb.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/vanity.proto delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/vanity_test.go delete mode 100644 vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/version/version.go delete mode 100644 vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/README.markdown delete mode 100644 vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/package.json delete mode 100644 vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/randbo.go delete mode 100644 vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/randbo.png delete mode 100644 vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/randbo_test.go delete mode 100644 vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/.gxignore delete mode 100644 vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/.travis.yml delete mode 100644 vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/LICENSE delete mode 100644 vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/README.md delete mode 100644 vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/example.go delete mode 100644 vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/package.json delete mode 100644 vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/semver/semver.go delete mode 100644 vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/semver/semver_test.go delete mode 100644 vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/semver/sort.go delete mode 100644 vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/.gxignore delete mode 100644 vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/LICENSE delete mode 100644 vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/README.md delete mode 100644 vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/client.go delete mode 100644 vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/package.json delete mode 100644 vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/server.go delete mode 100644 vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/server_test.go delete mode 100644 vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/zone.go delete mode 100644 vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/zone_test.go delete mode 100644 vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/README.md delete mode 100644 vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/client.go delete mode 100644 vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/lazy.go delete mode 100644 vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/multistream.go delete mode 100644 vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/multistream_test.go delete mode 100644 vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/package.json delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/.gxignore delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/LICENSE delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/README.md delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/counter.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/counter_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/debug.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/debug_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/ewma.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/ewma_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge_float64.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge_float64_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/graphite.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/graphite_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/healthcheck.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/histogram.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/histogram_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/json.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/json_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/log.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/memory.md delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/meter.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/meter_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/metrics.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/metrics_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/opentsdb.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/opentsdb_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/package.json delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/registry.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/registry_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime_cgo.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime_no_cgo.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/sample.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/sample_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/syslog.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/timer.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/timer_test.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/writer.go delete mode 100644 vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/writer_test.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/.gxignore delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/.travis.yml delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/LICENSE delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/README.md delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/addr.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/available_unix.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/const_bsd.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/const_linux.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/impl_unix.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/impl_windows.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/interface.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/opts_posix.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/package.json delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/error.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_bsd.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_darwin_386.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_linux.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_unsupported.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/reuse_test.go delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/test/.gitignore delete mode 100644 vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/test/main.go delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/.gxignore delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/.travis.yml delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/LICENSE delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/README.md delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/context/context.go delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/context/derive.go delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/example_test.go delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/goprocess.go delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/goprocess_test.go delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/impl-mutex.go delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/link.go delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/package.json delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/README.md delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/examples_test.go delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/periodic.go delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/periodic_test.go delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/ratelimit/README.md delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/ratelimit/ratelimit.go delete mode 100644 vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/ratelimit/ratelimit_test.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/LICENSE delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/README.md delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/TODO delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/adaptor.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/client.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/doc.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/interface.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/package.json delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/circular.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/circular_test.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/inbound.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/outbound.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/shared.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/ext/const.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/ext/heartbeat.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/data.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/data_test.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/debug.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/error.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/goaway.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/header.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/header_test.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/interface.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/rst.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/rst_test.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/syn.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/transport.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/types.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/wndinc.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/wndinc_test.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/interface.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/session.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/session_test.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/stream.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/stream_map.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/stream_test.go delete mode 100644 vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/server.go delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/.gxignore delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/context.go delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/context_test.go delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/entry.go delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/example_test.go delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/log.go delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/loggable.go delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/metadata.go delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/metadata_test.go delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/oldlog.go delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/option.go delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/package.json delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/polite_json_formatter.go delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/writer.go delete mode 100644 vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/writer_test.go diff --git a/loggables/loggables.go b/loggables/loggables.go index 3532644e..ea86cf34 100644 --- a/loggables/loggables.go +++ b/loggables/loggables.go @@ -9,9 +9,9 @@ package loggables import ( "net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" peer "github.com/ipfs/go-libp2p/p2p/peer" ) diff --git a/p2p/crypto/key.go b/p2p/crypto/key.go index ff00f4fd..2c539c76 100644 --- a/p2p/crypto/key.go +++ b/p2p/crypto/key.go @@ -21,10 +21,10 @@ import ( pb "github.com/ipfs/go-libp2p/p2p/crypto/pb" - proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" + proto "github.com/gogo/protobuf/proto" - u "gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + u "github.com/ipfs/go-ipfs-util" + logging "github.com/ipfs/go-log" ) var log = logging.Logger("crypto") diff --git a/p2p/crypto/pb/crypto.pb.go b/p2p/crypto/pb/crypto.pb.go index 911d5fe5..f6001ff9 100644 --- a/p2p/crypto/pb/crypto.pb.go +++ b/p2p/crypto/pb/crypto.pb.go @@ -14,7 +14,7 @@ It has these top-level messages: */ package crypto_pb -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" +import proto "github.com/gogo/protobuf/proto" import math "math" // Reference imports to suppress errors if they are not otherwise used. diff --git a/p2p/crypto/rsa.go b/p2p/crypto/rsa.go index a60c5a5d..32bbbfbd 100644 --- a/p2p/crypto/rsa.go +++ b/p2p/crypto/rsa.go @@ -8,7 +8,7 @@ import ( "crypto/x509" "errors" - proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" + proto "github.com/gogo/protobuf/proto" pb "github.com/ipfs/go-libp2p/p2p/crypto/pb" ) diff --git a/p2p/crypto/secio/al.go b/p2p/crypto/secio/al.go index dd73b7e1..5f764099 100644 --- a/p2p/crypto/secio/al.go +++ b/p2p/crypto/secio/al.go @@ -14,7 +14,7 @@ import ( "hash" ci "github.com/ipfs/go-libp2p/p2p/crypto" - bfish "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish" + bfish "golang.org/x/crypto/blowfish" ) // List of supported ECDH curves diff --git a/p2p/crypto/secio/interface.go b/p2p/crypto/secio/interface.go index 02f6ec11..ff2e919c 100644 --- a/p2p/crypto/secio/interface.go +++ b/p2p/crypto/secio/interface.go @@ -7,8 +7,8 @@ import ( ci "github.com/ipfs/go-libp2p/p2p/crypto" peer "github.com/ipfs/go-libp2p/p2p/peer" - msgio "gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + msgio "github.com/jbenet/go-msgio" + context "golang.org/x/net/context" ) // SessionGenerator constructs secure communication sessions for a peer. diff --git a/p2p/crypto/secio/pb/spipe.pb.go b/p2p/crypto/secio/pb/spipe.pb.go index 9ffc682f..0b4919b8 100644 --- a/p2p/crypto/secio/pb/spipe.pb.go +++ b/p2p/crypto/secio/pb/spipe.pb.go @@ -14,7 +14,7 @@ It has these top-level messages: */ package spipe_pb -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" +import proto "github.com/gogo/protobuf/proto" import math "math" // Reference imports to suppress errors if they are not otherwise used. diff --git a/p2p/crypto/secio/protocol.go b/p2p/crypto/secio/protocol.go index 8519b763..dff99c3d 100644 --- a/p2p/crypto/secio/protocol.go +++ b/p2p/crypto/secio/protocol.go @@ -9,13 +9,13 @@ import ( "sync" "time" + u "github.com/ipfs/go-ipfs-util" ci "github.com/ipfs/go-libp2p/p2p/crypto" pb "github.com/ipfs/go-libp2p/p2p/crypto/secio/pb" peer "github.com/ipfs/go-libp2p/p2p/peer" - u "gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util" - msgio "gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" + msgio "github.com/jbenet/go-msgio" + context "golang.org/x/net/context" ) var log = logging.Logger("secio") diff --git a/p2p/crypto/secio/rw.go b/p2p/crypto/secio/rw.go index 00593e07..f01d63e6 100644 --- a/p2p/crypto/secio/rw.go +++ b/p2p/crypto/secio/rw.go @@ -9,10 +9,10 @@ import ( "crypto/hmac" - msgio "gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio" - mpool "gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/mpool" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" + proto "github.com/gogo/protobuf/proto" + msgio "github.com/jbenet/go-msgio" + mpool "github.com/jbenet/go-msgio/mpool" + context "golang.org/x/net/context" ) const MaxMsgSize = 8 * 1024 * 1024 diff --git a/p2p/discovery/mdns.go b/p2p/discovery/mdns.go index 0819703e..57abd027 100644 --- a/p2p/discovery/mdns.go +++ b/p2p/discovery/mdns.go @@ -9,13 +9,13 @@ import ( "sync" "time" - manet "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - "gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns" + "github.com/cryptix/mdns" + ma "github.com/jbenet/go-multiaddr" + manet "github.com/jbenet/go-multiaddr-net" "github.com/ipfs/go-libp2p/p2p/host" "github.com/ipfs/go-libp2p/p2p/peer" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" ) var log = logging.Logger("mdns") diff --git a/p2p/host/basic/basic_host.go b/p2p/host/basic/basic_host.go index 73bbd4d7..e6ba22a0 100644 --- a/p2p/host/basic/basic_host.go +++ b/p2p/host/basic/basic_host.go @@ -5,10 +5,10 @@ import ( metrics "github.com/ipfs/go-libp2p/p2p/metrics" mstream "github.com/ipfs/go-libp2p/p2p/metrics/stream" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - goprocess "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" + ma "github.com/jbenet/go-multiaddr" + goprocess "github.com/jbenet/goprocess" + context "golang.org/x/net/context" inet "github.com/ipfs/go-libp2p/p2p/net" peer "github.com/ipfs/go-libp2p/p2p/peer" @@ -16,7 +16,7 @@ import ( identify "github.com/ipfs/go-libp2p/p2p/protocol/identify" relay "github.com/ipfs/go-libp2p/p2p/protocol/relay" - msmux "gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream" + msmux "github.com/whyrusleeping/go-multistream" ) var log = logging.Logger("github.com/ipfs/go-libp2p/p2p/host/basic") diff --git a/p2p/host/basic/basic_host_test.go b/p2p/host/basic/basic_host_test.go index 8a150001..3de87797 100644 --- a/p2p/host/basic/basic_host_test.go +++ b/p2p/host/basic/basic_host_test.go @@ -9,7 +9,7 @@ import ( protocol "github.com/ipfs/go-libp2p/p2p/protocol" testutil "github.com/ipfs/go-libp2p/p2p/test/util" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + context "golang.org/x/net/context" ) func TestHostSimple(t *testing.T) { diff --git a/p2p/host/basic/natmgr.go b/p2p/host/basic/natmgr.go index f0638f8f..b09324d9 100644 --- a/p2p/host/basic/natmgr.go +++ b/p2p/host/basic/natmgr.go @@ -3,9 +3,9 @@ package basichost import ( "sync" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - goprocess "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" + ma "github.com/jbenet/go-multiaddr" + goprocess "github.com/jbenet/goprocess" + context "golang.org/x/net/context" lgbl "github.com/ipfs/go-libp2p/loggables" inat "github.com/ipfs/go-libp2p/p2p/nat" diff --git a/p2p/host/host.go b/p2p/host/host.go index 6c8d25df..d3abe3ae 100644 --- a/p2p/host/host.go +++ b/p2p/host/host.go @@ -5,11 +5,11 @@ import ( inet "github.com/ipfs/go-libp2p/p2p/net" peer "github.com/ipfs/go-libp2p/p2p/peer" protocol "github.com/ipfs/go-libp2p/p2p/protocol" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" + ma "github.com/jbenet/go-multiaddr" + context "golang.org/x/net/context" - msmux "gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream" + msmux "github.com/whyrusleeping/go-multistream" ) var log = logging.Logger("github.com/ipfs/go-libp2p/p2p/host") diff --git a/p2p/host/routed/routed.go b/p2p/host/routed/routed.go index 421f6c03..34218ad5 100644 --- a/p2p/host/routed/routed.go +++ b/p2p/host/routed/routed.go @@ -5,9 +5,9 @@ import ( "time" lgbl "github.com/ipfs/go-libp2p/loggables" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" + ma "github.com/jbenet/go-multiaddr" + context "golang.org/x/net/context" host "github.com/ipfs/go-libp2p/p2p/host" metrics "github.com/ipfs/go-libp2p/p2p/metrics" @@ -15,7 +15,7 @@ import ( peer "github.com/ipfs/go-libp2p/p2p/peer" protocol "github.com/ipfs/go-libp2p/p2p/protocol" - msmux "gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream" + msmux "github.com/whyrusleeping/go-multistream" ) var log = logging.Logger("github.com/ipfs/go-libp2p/p2p/host/routed") diff --git a/p2p/metrics/bw_stats.go b/p2p/metrics/bw_stats.go index 50895f9a..80d45587 100644 --- a/p2p/metrics/bw_stats.go +++ b/p2p/metrics/bw_stats.go @@ -1,7 +1,7 @@ package metrics import ( - gm "gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics" + gm "github.com/whyrusleeping/go-metrics" "sync" peer "github.com/ipfs/go-libp2p/p2p/peer" diff --git a/p2p/metrics/stream/metered_test.go b/p2p/metrics/stream/metered_test.go index 6149d677..db2db602 100644 --- a/p2p/metrics/stream/metered_test.go +++ b/p2p/metrics/stream/metered_test.go @@ -5,7 +5,7 @@ import ( "io/ioutil" "testing" - randbo "gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo" + randbo "github.com/dustin/randbo" inet "github.com/ipfs/go-libp2p/p2p/net" peer "github.com/ipfs/go-libp2p/p2p/peer" protocol "github.com/ipfs/go-libp2p/p2p/protocol" diff --git a/p2p/nat/nat.go b/p2p/nat/nat.go index c549527c..6032ccd5 100644 --- a/p2p/nat/nat.go +++ b/p2p/nat/nat.go @@ -8,14 +8,14 @@ import ( "sync" "time" - manet "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" + manet "github.com/jbenet/go-multiaddr-net" - notifier "gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier" - nat "gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat" - goprocess "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" - periodic "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + nat "github.com/fd/go-nat" + logging "github.com/ipfs/go-log" + goprocess "github.com/jbenet/goprocess" + periodic "github.com/jbenet/goprocess/periodic" + notifier "github.com/whyrusleeping/go-notifier" ) var ( diff --git a/p2p/net/conn/conn.go b/p2p/net/conn/conn.go index abcf97f2..33d47b61 100644 --- a/p2p/net/conn/conn.go +++ b/p2p/net/conn/conn.go @@ -6,15 +6,15 @@ import ( "net" "time" + u "github.com/ipfs/go-ipfs-util" lgbl "github.com/ipfs/go-libp2p/loggables" ic "github.com/ipfs/go-libp2p/p2p/crypto" peer "github.com/ipfs/go-libp2p/p2p/peer" - manet "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net" - u "gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - mpool "gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/mpool" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" + mpool "github.com/jbenet/go-msgio/mpool" + ma "github.com/jbenet/go-multiaddr" + manet "github.com/jbenet/go-multiaddr-net" + context "golang.org/x/net/context" ) var log = logging.Logger("conn") diff --git a/p2p/net/conn/conn_test.go b/p2p/net/conn/conn_test.go index 1626ad5e..461a1314 100644 --- a/p2p/net/conn/conn_test.go +++ b/p2p/net/conn/conn_test.go @@ -9,8 +9,8 @@ import ( "time" travis "github.com/ipfs/go-libp2p/testutil/ci/travis" - msgio "gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + msgio "github.com/jbenet/go-msgio" + context "golang.org/x/net/context" ) func msgioWrap(c Conn) msgio.ReadWriter { diff --git a/p2p/net/conn/dial.go b/p2p/net/conn/dial.go index 4bb449f9..9c8a2fdb 100644 --- a/p2p/net/conn/dial.go +++ b/p2p/net/conn/dial.go @@ -6,9 +6,9 @@ import ( "strings" lgbl "github.com/ipfs/go-libp2p/loggables" - manet "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + manet "github.com/jbenet/go-multiaddr-net" + context "golang.org/x/net/context" ci "github.com/ipfs/go-libp2p/p2p/crypto" addrutil "github.com/ipfs/go-libp2p/p2p/net/swarm/addr" diff --git a/p2p/net/conn/dial_test.go b/p2p/net/conn/dial_test.go index 4ef07eba..e4a3cb6e 100644 --- a/p2p/net/conn/dial_test.go +++ b/p2p/net/conn/dial_test.go @@ -13,8 +13,8 @@ import ( peer "github.com/ipfs/go-libp2p/p2p/peer" tu "github.com/ipfs/go-libp2p/testutil" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + context "golang.org/x/net/context" ) func echoListen(ctx context.Context, listener Listener) { diff --git a/p2p/net/conn/interface.go b/p2p/net/conn/interface.go index 0795968d..a2ccb732 100644 --- a/p2p/net/conn/interface.go +++ b/p2p/net/conn/interface.go @@ -10,7 +10,7 @@ import ( transport "github.com/ipfs/go-libp2p/p2p/net/transport" peer "github.com/ipfs/go-libp2p/p2p/peer" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" ) type PeerConn interface { diff --git a/p2p/net/conn/listen.go b/p2p/net/conn/listen.go index 6752dc58..fcddc860 100644 --- a/p2p/net/conn/listen.go +++ b/p2p/net/conn/listen.go @@ -5,11 +5,11 @@ import ( "io" "net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - tec "gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" - goprocessctx "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/context" + ma "github.com/jbenet/go-multiaddr" + tec "github.com/jbenet/go-temp-err-catcher" + "github.com/jbenet/goprocess" + goprocessctx "github.com/jbenet/goprocess/context" + context "golang.org/x/net/context" ic "github.com/ipfs/go-libp2p/p2p/crypto" filter "github.com/ipfs/go-libp2p/p2p/net/filter" diff --git a/p2p/net/conn/secure_conn.go b/p2p/net/conn/secure_conn.go index d1112cb4..1f27c909 100644 --- a/p2p/net/conn/secure_conn.go +++ b/p2p/net/conn/secure_conn.go @@ -5,8 +5,8 @@ import ( "net" "time" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + context "golang.org/x/net/context" ic "github.com/ipfs/go-libp2p/p2p/crypto" secio "github.com/ipfs/go-libp2p/p2p/crypto/secio" diff --git a/p2p/net/conn/secure_conn_test.go b/p2p/net/conn/secure_conn_test.go index ee22b7d7..f4f19448 100644 --- a/p2p/net/conn/secure_conn_test.go +++ b/p2p/net/conn/secure_conn_test.go @@ -10,7 +10,7 @@ import ( ic "github.com/ipfs/go-libp2p/p2p/crypto" travis "github.com/ipfs/go-libp2p/testutil/ci/travis" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + context "golang.org/x/net/context" ) func upgradeToSecureConn(t *testing.T, ctx context.Context, sk ic.PrivKey, c Conn) (Conn, error) { diff --git a/p2p/net/filter/filter.go b/p2p/net/filter/filter.go index ab7bf34d..58154e21 100644 --- a/p2p/net/filter/filter.go +++ b/p2p/net/filter/filter.go @@ -5,8 +5,8 @@ import ( "strings" "sync" - manet "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" + manet "github.com/jbenet/go-multiaddr-net" ) type Filters struct { diff --git a/p2p/net/interface.go b/p2p/net/interface.go index 95a59b9c..5febb8f2 100644 --- a/p2p/net/interface.go +++ b/p2p/net/interface.go @@ -6,9 +6,9 @@ import ( conn "github.com/ipfs/go-libp2p/p2p/net/conn" peer "github.com/ipfs/go-libp2p/p2p/peer" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" + ma "github.com/jbenet/go-multiaddr" + "github.com/jbenet/goprocess" + context "golang.org/x/net/context" ) // MessageSizeMax is a soft (recommended) maximum for network messages. diff --git a/p2p/net/mock/interface.go b/p2p/net/mock/interface.go index 2acee423..a7fe45e7 100644 --- a/p2p/net/mock/interface.go +++ b/p2p/net/mock/interface.go @@ -14,7 +14,7 @@ import ( "io" "time" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" ) type Mocknet interface { diff --git a/p2p/net/mock/mock.go b/p2p/net/mock/mock.go index 0f6de3a0..114a0c6b 100644 --- a/p2p/net/mock/mock.go +++ b/p2p/net/mock/mock.go @@ -1,9 +1,9 @@ package mocknet import ( - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + context "golang.org/x/net/context" ) var log = logging.Logger("mocknet") diff --git a/p2p/net/mock/mock_conn.go b/p2p/net/mock/mock_conn.go index bfaa3004..84ea48fc 100644 --- a/p2p/net/mock/mock_conn.go +++ b/p2p/net/mock/mock_conn.go @@ -8,8 +8,8 @@ import ( inet "github.com/ipfs/go-libp2p/p2p/net" peer "github.com/ipfs/go-libp2p/p2p/peer" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - process "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" + ma "github.com/jbenet/go-multiaddr" + process "github.com/jbenet/goprocess" ) // conn represents one side's perspective of a diff --git a/p2p/net/mock/mock_net.go b/p2p/net/mock/mock_net.go index 732f2808..78b06603 100644 --- a/p2p/net/mock/mock_net.go +++ b/p2p/net/mock/mock_net.go @@ -13,10 +13,10 @@ import ( p2putil "github.com/ipfs/go-libp2p/p2p/test/util" testutil "github.com/ipfs/go-libp2p/testutil" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" - goprocessctx "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/context" + ma "github.com/jbenet/go-multiaddr" + "github.com/jbenet/goprocess" + goprocessctx "github.com/jbenet/goprocess/context" + context "golang.org/x/net/context" ) // mocknet implements mocknet.Mocknet diff --git a/p2p/net/mock/mock_notif_test.go b/p2p/net/mock/mock_notif_test.go index 37dfd048..35a44b6c 100644 --- a/p2p/net/mock/mock_notif_test.go +++ b/p2p/net/mock/mock_notif_test.go @@ -6,8 +6,8 @@ import ( inet "github.com/ipfs/go-libp2p/p2p/net" peer "github.com/ipfs/go-libp2p/p2p/peer" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + context "golang.org/x/net/context" ) func TestNotifications(t *testing.T) { diff --git a/p2p/net/mock/mock_peernet.go b/p2p/net/mock/mock_peernet.go index d78291fd..f234338e 100644 --- a/p2p/net/mock/mock_peernet.go +++ b/p2p/net/mock/mock_peernet.go @@ -8,10 +8,10 @@ import ( inet "github.com/ipfs/go-libp2p/p2p/net" peer "github.com/ipfs/go-libp2p/p2p/peer" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" - goprocessctx "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/context" + ma "github.com/jbenet/go-multiaddr" + "github.com/jbenet/goprocess" + goprocessctx "github.com/jbenet/goprocess/context" + context "golang.org/x/net/context" ) // peernet implements inet.Network diff --git a/p2p/net/mock/mock_stream.go b/p2p/net/mock/mock_stream.go index 35d04f9f..9b111fbe 100644 --- a/p2p/net/mock/mock_stream.go +++ b/p2p/net/mock/mock_stream.go @@ -5,7 +5,7 @@ import ( "io" "time" - process "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" + process "github.com/jbenet/goprocess" inet "github.com/ipfs/go-libp2p/p2p/net" ) diff --git a/p2p/net/mock/mock_test.go b/p2p/net/mock/mock_test.go index f57b4f62..574d8be4 100644 --- a/p2p/net/mock/mock_test.go +++ b/p2p/net/mock/mock_test.go @@ -14,8 +14,8 @@ import ( protocol "github.com/ipfs/go-libp2p/p2p/protocol" testutil "github.com/ipfs/go-libp2p/testutil" - detectrace "gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + detectrace "github.com/jbenet/go-detect-race" + context "golang.org/x/net/context" ) func randPeer(t *testing.T) peer.ID { diff --git a/p2p/net/swarm/addr/addr.go b/p2p/net/swarm/addr/addr.go index c7414752..39f00dba 100644 --- a/p2p/net/swarm/addr/addr.go +++ b/p2p/net/swarm/addr/addr.go @@ -3,11 +3,11 @@ package addrutil import ( "fmt" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" - manet "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + manet "github.com/jbenet/go-multiaddr-net" + context "golang.org/x/net/context" ) var log = logging.Logger("github.com/ipfs/go-libp2p/p2p/net/swarm/addr") diff --git a/p2p/net/swarm/addr/addr_test.go b/p2p/net/swarm/addr/addr_test.go index 120195a1..49eec135 100644 --- a/p2p/net/swarm/addr/addr_test.go +++ b/p2p/net/swarm/addr/addr_test.go @@ -3,8 +3,8 @@ package addrutil import ( "testing" - manet "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" + manet "github.com/jbenet/go-multiaddr-net" ) func newMultiaddr(t *testing.T, s string) ma.Multiaddr { diff --git a/p2p/net/swarm/dial_test.go b/p2p/net/swarm/dial_test.go index 0df87fd2..57a4d7f1 100644 --- a/p2p/net/swarm/dial_test.go +++ b/p2p/net/swarm/dial_test.go @@ -13,9 +13,9 @@ import ( testutil "github.com/ipfs/go-libp2p/testutil" ci "github.com/ipfs/go-libp2p/testutil/ci" - manet "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + manet "github.com/jbenet/go-multiaddr-net" + context "golang.org/x/net/context" ) func acceptAndHang(l net.Listener) { diff --git a/p2p/net/swarm/peers_test.go b/p2p/net/swarm/peers_test.go index ef9c22ff..b107fbfe 100644 --- a/p2p/net/swarm/peers_test.go +++ b/p2p/net/swarm/peers_test.go @@ -5,8 +5,8 @@ import ( peer "github.com/ipfs/go-libp2p/p2p/peer" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + context "golang.org/x/net/context" ) func TestPeers(t *testing.T) { diff --git a/p2p/net/swarm/simul_test.go b/p2p/net/swarm/simul_test.go index 408b39b2..bd753e76 100644 --- a/p2p/net/swarm/simul_test.go +++ b/p2p/net/swarm/simul_test.go @@ -9,8 +9,8 @@ import ( peer "github.com/ipfs/go-libp2p/p2p/peer" ci "github.com/ipfs/go-libp2p/testutil/ci" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + context "golang.org/x/net/context" ) func TestSimultOpen(t *testing.T) { diff --git a/p2p/net/swarm/swarm.go b/p2p/net/swarm/swarm.go index 41c2ca95..c71ef359 100644 --- a/p2p/net/swarm/swarm.go +++ b/p2p/net/swarm/swarm.go @@ -16,16 +16,16 @@ import ( transport "github.com/ipfs/go-libp2p/p2p/net/transport" peer "github.com/ipfs/go-libp2p/p2p/peer" - ps "gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream" - pst "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer" - psmss "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multistream" - mafilter "gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" - goprocessctx "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/context" + ma "github.com/jbenet/go-multiaddr" + ps "github.com/jbenet/go-peerstream" + pst "github.com/jbenet/go-stream-muxer" + psmss "github.com/jbenet/go-stream-muxer/multistream" + "github.com/jbenet/goprocess" + goprocessctx "github.com/jbenet/goprocess/context" + mafilter "github.com/whyrusleeping/multiaddr-filter" + context "golang.org/x/net/context" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" ) var log = logging.Logger("swarm2") diff --git a/p2p/net/swarm/swarm_addr.go b/p2p/net/swarm/swarm_addr.go index 81a77bb8..039683bf 100644 --- a/p2p/net/swarm/swarm_addr.go +++ b/p2p/net/swarm/swarm_addr.go @@ -4,7 +4,7 @@ import ( conn "github.com/ipfs/go-libp2p/p2p/net/conn" addrutil "github.com/ipfs/go-libp2p/p2p/net/swarm/addr" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" ) // ListenAddresses returns a list of addresses at which this swarm listens. diff --git a/p2p/net/swarm/swarm_addr_test.go b/p2p/net/swarm/swarm_addr_test.go index 7383beea..7db46d34 100644 --- a/p2p/net/swarm/swarm_addr_test.go +++ b/p2p/net/swarm/swarm_addr_test.go @@ -8,8 +8,8 @@ import ( peer "github.com/ipfs/go-libp2p/p2p/peer" testutil "github.com/ipfs/go-libp2p/testutil" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + context "golang.org/x/net/context" ) func TestFilterAddrs(t *testing.T) { diff --git a/p2p/net/swarm/swarm_conn.go b/p2p/net/swarm/swarm_conn.go index e7d1ec91..840a9b46 100644 --- a/p2p/net/swarm/swarm_conn.go +++ b/p2p/net/swarm/swarm_conn.go @@ -8,9 +8,9 @@ import ( conn "github.com/ipfs/go-libp2p/p2p/net/conn" peer "github.com/ipfs/go-libp2p/p2p/peer" - ps "gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + ps "github.com/jbenet/go-peerstream" + context "golang.org/x/net/context" ) // a Conn is a simple wrapper around a ps.Conn that also exposes diff --git a/p2p/net/swarm/swarm_dial.go b/p2p/net/swarm/swarm_dial.go index fa4fce1e..0cb28587 100644 --- a/p2p/net/swarm/swarm_dial.go +++ b/p2p/net/swarm/swarm_dial.go @@ -12,10 +12,10 @@ import ( conn "github.com/ipfs/go-libp2p/p2p/net/conn" addrutil "github.com/ipfs/go-libp2p/p2p/net/swarm/addr" peer "github.com/ipfs/go-libp2p/p2p/peer" - "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net" + "github.com/jbenet/go-multiaddr-net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + context "golang.org/x/net/context" ) // Diagram of dial sync: diff --git a/p2p/net/swarm/swarm_listen.go b/p2p/net/swarm/swarm_listen.go index bd1810b4..f1846406 100644 --- a/p2p/net/swarm/swarm_listen.go +++ b/p2p/net/swarm/swarm_listen.go @@ -9,9 +9,9 @@ import ( conn "github.com/ipfs/go-libp2p/p2p/net/conn" transport "github.com/ipfs/go-libp2p/p2p/net/transport" - ps "gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + ps "github.com/jbenet/go-peerstream" + context "golang.org/x/net/context" ) // Open listeners and reuse-dialers for the given addresses diff --git a/p2p/net/swarm/swarm_net.go b/p2p/net/swarm/swarm_net.go index e5a6e021..a8361fc5 100644 --- a/p2p/net/swarm/swarm_net.go +++ b/p2p/net/swarm/swarm_net.go @@ -8,9 +8,9 @@ import ( metrics "github.com/ipfs/go-libp2p/p2p/metrics" inet "github.com/ipfs/go-libp2p/p2p/net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" + ma "github.com/jbenet/go-multiaddr" + "github.com/jbenet/goprocess" + context "golang.org/x/net/context" ) // Network implements the inet.Network interface. diff --git a/p2p/net/swarm/swarm_net_test.go b/p2p/net/swarm/swarm_net_test.go index c40b89cc..14c590b9 100644 --- a/p2p/net/swarm/swarm_net_test.go +++ b/p2p/net/swarm/swarm_net_test.go @@ -5,9 +5,9 @@ import ( "testing" "time" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" inet "github.com/ipfs/go-libp2p/p2p/net" testutil "github.com/ipfs/go-libp2p/p2p/test/util" + context "golang.org/x/net/context" ) // TestConnectednessCorrect starts a few networks, connects a few diff --git a/p2p/net/swarm/swarm_notif_test.go b/p2p/net/swarm/swarm_notif_test.go index 9b59bb24..0d976e81 100644 --- a/p2p/net/swarm/swarm_notif_test.go +++ b/p2p/net/swarm/swarm_notif_test.go @@ -4,8 +4,8 @@ import ( "testing" "time" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + context "golang.org/x/net/context" inet "github.com/ipfs/go-libp2p/p2p/net" peer "github.com/ipfs/go-libp2p/p2p/peer" diff --git a/p2p/net/swarm/swarm_stream.go b/p2p/net/swarm/swarm_stream.go index f4ee3149..7965d274 100644 --- a/p2p/net/swarm/swarm_stream.go +++ b/p2p/net/swarm/swarm_stream.go @@ -3,7 +3,7 @@ package swarm import ( inet "github.com/ipfs/go-libp2p/p2p/net" - ps "gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream" + ps "github.com/jbenet/go-peerstream" ) // a Stream is a wrapper around a ps.Stream that exposes a way to get diff --git a/p2p/net/swarm/swarm_test.go b/p2p/net/swarm/swarm_test.go index b6aa692c..a1c35696 100644 --- a/p2p/net/swarm/swarm_test.go +++ b/p2p/net/swarm/swarm_test.go @@ -14,8 +14,8 @@ import ( peer "github.com/ipfs/go-libp2p/p2p/peer" testutil "github.com/ipfs/go-libp2p/testutil" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + context "golang.org/x/net/context" ) func EchoStreamHandler(stream inet.Stream) { diff --git a/p2p/net/transport/reuseport.go b/p2p/net/transport/reuseport.go index 76dbe634..dfb50e5f 100644 --- a/p2p/net/transport/reuseport.go +++ b/p2p/net/transport/reuseport.go @@ -6,7 +6,7 @@ import ( "strings" "syscall" - reuseport "gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport" + reuseport "github.com/jbenet/go-reuseport" ) // envReuseport is the env variable name used to turn off reuse port. diff --git a/p2p/net/transport/tcp.go b/p2p/net/transport/tcp.go index f7583cc7..21f6ffbb 100644 --- a/p2p/net/transport/tcp.go +++ b/p2p/net/transport/tcp.go @@ -7,10 +7,10 @@ import ( "time" lgbl "github.com/ipfs/go-libp2p/loggables" - manet "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - reuseport "gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport" + ma "github.com/jbenet/go-multiaddr" + manet "github.com/jbenet/go-multiaddr-net" + reuseport "github.com/jbenet/go-reuseport" + context "golang.org/x/net/context" ) type TcpTransport struct { diff --git a/p2p/net/transport/transport.go b/p2p/net/transport/transport.go index 7f15b5aa..8cfd72e7 100644 --- a/p2p/net/transport/transport.go +++ b/p2p/net/transport/transport.go @@ -4,9 +4,9 @@ import ( "net" "time" - manet "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" + ma "github.com/jbenet/go-multiaddr" + manet "github.com/jbenet/go-multiaddr-net" ) var log = logging.Logger("transport") diff --git a/p2p/peer/addr/addrsrcs.go b/p2p/peer/addr/addrsrcs.go index ae9073ac..a172373d 100644 --- a/p2p/peer/addr/addrsrcs.go +++ b/p2p/peer/addr/addrsrcs.go @@ -2,7 +2,7 @@ package addr import ( - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" ) // AddrSource is a source of addresses. It allows clients to retrieve diff --git a/p2p/peer/addr/addrsrcs_test.go b/p2p/peer/addr/addrsrcs_test.go index 173fbca0..46140641 100644 --- a/p2p/peer/addr/addrsrcs_test.go +++ b/p2p/peer/addr/addrsrcs_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" ) func newAddrOrFatal(t *testing.T, s string) ma.Multiaddr { diff --git a/p2p/peer/addr_manager.go b/p2p/peer/addr_manager.go index 1129b063..87b8206e 100644 --- a/p2p/peer/addr_manager.go +++ b/p2p/peer/addr_manager.go @@ -4,7 +4,7 @@ import ( "sync" "time" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" ) const ( diff --git a/p2p/peer/addr_manager_test.go b/p2p/peer/addr_manager_test.go index 59bcf190..0de0c6ab 100644 --- a/p2p/peer/addr_manager_test.go +++ b/p2p/peer/addr_manager_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" ) func IDS(t *testing.T, ids string) ID { diff --git a/p2p/peer/peer.go b/p2p/peer/peer.go index 0e7c009e..2f2a4868 100644 --- a/p2p/peer/peer.go +++ b/p2p/peer/peer.go @@ -7,13 +7,13 @@ import ( "fmt" "strings" - b58 "gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - mh "gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash" + b58 "github.com/jbenet/go-base58" + ma "github.com/jbenet/go-multiaddr" + mh "github.com/jbenet/go-multihash" + u "github.com/ipfs/go-ipfs-util" ic "github.com/ipfs/go-libp2p/p2p/crypto" - u "gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" ) var log = logging.Logger("peer") diff --git a/p2p/peer/peer_test.go b/p2p/peer/peer_test.go index 3ad9c23a..93cbfc86 100644 --- a/p2p/peer/peer_test.go +++ b/p2p/peer/peer_test.go @@ -6,12 +6,12 @@ import ( "strings" "testing" + u "github.com/ipfs/go-ipfs-util" ic "github.com/ipfs/go-libp2p/p2p/crypto" . "github.com/ipfs/go-libp2p/p2p/peer" tu "github.com/ipfs/go-libp2p/testutil" - u "gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util" - b58 "gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58" + b58 "github.com/jbenet/go-base58" ) var gen1 keyset // generated diff --git a/p2p/peer/peerstore.go b/p2p/peer/peerstore.go index ef861826..f8e88754 100644 --- a/p2p/peer/peerstore.go +++ b/p2p/peer/peerstore.go @@ -9,7 +9,7 @@ import ( //ds "github.com/jbenet/go-datastore" //dssync "github.com/jbenet/go-datastore/sync" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" ) const ( diff --git a/p2p/peer/queue/distance.go b/p2p/peer/queue/distance.go index beb7605b..09da0cb8 100644 --- a/p2p/peer/queue/distance.go +++ b/p2p/peer/queue/distance.go @@ -6,7 +6,7 @@ import ( "sync" peer "github.com/ipfs/go-libp2p/p2p/peer" - ks "gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace" + ks "github.com/whyrusleeping/go-keyspace" ) // peerMetric tracks a peer and its distance to something else. diff --git a/p2p/peer/queue/queue_test.go b/p2p/peer/queue/queue_test.go index ca449fe6..8d43bb69 100644 --- a/p2p/peer/queue/queue_test.go +++ b/p2p/peer/queue/queue_test.go @@ -6,10 +6,10 @@ import ( "testing" "time" + u "github.com/ipfs/go-ipfs-util" peer "github.com/ipfs/go-libp2p/p2p/peer" - u "gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + context "golang.org/x/net/context" ) func TestQueue(t *testing.T) { diff --git a/p2p/peer/queue/sync.go b/p2p/peer/queue/sync.go index ccece46a..fd49e005 100644 --- a/p2p/peer/queue/sync.go +++ b/p2p/peer/queue/sync.go @@ -2,8 +2,8 @@ package queue import ( peer "github.com/ipfs/go-libp2p/p2p/peer" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" + context "golang.org/x/net/context" ) var log = logging.Logger("peerqueue") diff --git a/p2p/protocol/identify/id.go b/p2p/protocol/identify/id.go index 3b63b8f1..7d465051 100644 --- a/p2p/protocol/identify/id.go +++ b/p2p/protocol/identify/id.go @@ -4,11 +4,11 @@ import ( "strings" "sync" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - ggio "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io" - semver "gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/semver" - msmux "gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream" + semver "github.com/coreos/go-semver/semver" + ggio "github.com/gogo/protobuf/io" + ma "github.com/jbenet/go-multiaddr" + msmux "github.com/whyrusleeping/go-multistream" + context "golang.org/x/net/context" host "github.com/ipfs/go-libp2p/p2p/host" mstream "github.com/ipfs/go-libp2p/p2p/metrics/stream" @@ -17,7 +17,7 @@ import ( pb "github.com/ipfs/go-libp2p/p2p/protocol/identify/pb" lgbl "github.com/ipfs/go-libp2p/loggables" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" ) var log = logging.Logger("net/identify") diff --git a/p2p/protocol/identify/id_test.go b/p2p/protocol/identify/id_test.go index 06559367..1057786d 100644 --- a/p2p/protocol/identify/id_test.go +++ b/p2p/protocol/identify/id_test.go @@ -9,8 +9,8 @@ import ( identify "github.com/ipfs/go-libp2p/p2p/protocol/identify" testutil "github.com/ipfs/go-libp2p/p2p/test/util" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + context "golang.org/x/net/context" ) func subtestIDService(t *testing.T, postDialWait time.Duration) { diff --git a/p2p/protocol/identify/obsaddr.go b/p2p/protocol/identify/obsaddr.go index 95eb716a..98c29b27 100644 --- a/p2p/protocol/identify/obsaddr.go +++ b/p2p/protocol/identify/obsaddr.go @@ -6,7 +6,7 @@ import ( peer "github.com/ipfs/go-libp2p/p2p/peer" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" ) // ObservedAddr is an entry for an address reported by our peers. diff --git a/p2p/protocol/identify/obsaddr_test.go b/p2p/protocol/identify/obsaddr_test.go index 80fd915b..81413c4f 100644 --- a/p2p/protocol/identify/obsaddr_test.go +++ b/p2p/protocol/identify/obsaddr_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" ) // TestObsAddrSet diff --git a/p2p/protocol/identify/pb/identify.pb.go b/p2p/protocol/identify/pb/identify.pb.go index 625693e1..cc4cba49 100644 --- a/p2p/protocol/identify/pb/identify.pb.go +++ b/p2p/protocol/identify/pb/identify.pb.go @@ -13,7 +13,7 @@ It has these top-level messages: */ package identify_pb -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" +import proto "github.com/gogo/protobuf/proto" import math "math" // Reference imports to suppress errors if they are not otherwise used. diff --git a/p2p/protocol/ping/ping.go b/p2p/protocol/ping/ping.go index 5878e769..b9d5832b 100644 --- a/p2p/protocol/ping/ping.go +++ b/p2p/protocol/ping/ping.go @@ -6,13 +6,13 @@ import ( "io" "time" - u "gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + u "github.com/ipfs/go-ipfs-util" + context "golang.org/x/net/context" host "github.com/ipfs/go-libp2p/p2p/host" inet "github.com/ipfs/go-libp2p/p2p/net" peer "github.com/ipfs/go-libp2p/p2p/peer" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" ) var log = logging.Logger("ping") diff --git a/p2p/protocol/ping/ping_test.go b/p2p/protocol/ping/ping_test.go index dfe707db..d88fbcac 100644 --- a/p2p/protocol/ping/ping_test.go +++ b/p2p/protocol/ping/ping_test.go @@ -4,9 +4,9 @@ import ( "testing" "time" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" peer "github.com/ipfs/go-libp2p/p2p/peer" netutil "github.com/ipfs/go-libp2p/p2p/test/util" + context "golang.org/x/net/context" ) func TestPing(t *testing.T) { diff --git a/p2p/protocol/relay/relay.go b/p2p/protocol/relay/relay.go index 96f58196..43ca7915 100644 --- a/p2p/protocol/relay/relay.go +++ b/p2p/protocol/relay/relay.go @@ -5,14 +5,14 @@ import ( "io" "time" - mh "gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash" + mh "github.com/jbenet/go-multihash" host "github.com/ipfs/go-libp2p/p2p/host" inet "github.com/ipfs/go-libp2p/p2p/net" peer "github.com/ipfs/go-libp2p/p2p/peer" protocol "github.com/ipfs/go-libp2p/p2p/protocol" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" + context "golang.org/x/net/context" ) var log = logging.Logger("github.com/ipfs/go-libp2p/p2p/protocol/relay") diff --git a/p2p/protocol/relay/relay_test.go b/p2p/protocol/relay/relay_test.go index a939a7bc..4e707496 100644 --- a/p2p/protocol/relay/relay_test.go +++ b/p2p/protocol/relay/relay_test.go @@ -8,10 +8,10 @@ import ( protocol "github.com/ipfs/go-libp2p/p2p/protocol" relay "github.com/ipfs/go-libp2p/p2p/protocol/relay" testutil "github.com/ipfs/go-libp2p/p2p/test/util" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - msmux "gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream" + msmux "github.com/whyrusleeping/go-multistream" + context "golang.org/x/net/context" ) var log = logging.Logger("relay_test") diff --git a/p2p/test/backpressure/backpressure_test.go b/p2p/test/backpressure/backpressure_test.go index 52e330a0..5018cbb6 100644 --- a/p2p/test/backpressure/backpressure_test.go +++ b/p2p/test/backpressure/backpressure_test.go @@ -11,10 +11,10 @@ import ( peer "github.com/ipfs/go-libp2p/p2p/peer" protocol "github.com/ipfs/go-libp2p/p2p/protocol" testutil "github.com/ipfs/go-libp2p/p2p/test/util" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" - u "gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + u "github.com/ipfs/go-ipfs-util" + context "golang.org/x/net/context" ) var log = logging.Logger("backpressure") diff --git a/p2p/test/reconnects/reconnect_test.go b/p2p/test/reconnects/reconnect_test.go index d00fcfe4..cc53a1e9 100644 --- a/p2p/test/reconnects/reconnect_test.go +++ b/p2p/test/reconnects/reconnect_test.go @@ -7,16 +7,16 @@ import ( "testing" "time" + u "github.com/ipfs/go-ipfs-util" host "github.com/ipfs/go-libp2p/p2p/host" inet "github.com/ipfs/go-libp2p/p2p/net" swarm "github.com/ipfs/go-libp2p/p2p/net/swarm" protocol "github.com/ipfs/go-libp2p/p2p/protocol" testutil "github.com/ipfs/go-libp2p/p2p/test/util" - u "gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" - ps "gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ps "github.com/jbenet/go-peerstream" + context "golang.org/x/net/context" ) func init() { diff --git a/p2p/test/util/key.go b/p2p/test/util/key.go index 90343f60..7ab17993 100644 --- a/p2p/test/util/key.go +++ b/p2p/test/util/key.go @@ -5,14 +5,14 @@ import ( "io" "testing" + u "github.com/ipfs/go-ipfs-util" testutil "github.com/ipfs/go-libp2p/testutil" - u "gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util" - logging "gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log" + logging "github.com/ipfs/go-log" ic "github.com/ipfs/go-libp2p/p2p/crypto" peer "github.com/ipfs/go-libp2p/p2p/peer" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" ) var log = logging.Logger("boguskey") diff --git a/p2p/test/util/util.go b/p2p/test/util/util.go index 1ff80f64..15abf042 100644 --- a/p2p/test/util/util.go +++ b/p2p/test/util/util.go @@ -10,8 +10,8 @@ import ( peer "github.com/ipfs/go-libp2p/p2p/peer" tu "github.com/ipfs/go-libp2p/testutil" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" + ma "github.com/jbenet/go-multiaddr" + context "golang.org/x/net/context" ) func GenSwarmNetwork(t *testing.T, ctx context.Context) *swarm.Network { diff --git a/package.json b/package.json index 8d665828..c36f5f61 100644 --- a/package.json +++ b/package.json @@ -2,91 +2,9 @@ "name": "go-libp2p", "author": "whyrusleeping", "version": "1.0.0", - "gxDependencies": [ - { - "name": "go-log", - "hash": "QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu", - "version": "1.0.0" - }, - { - "name": "go-keyspace", - "hash": "QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o", - "version": "1.0.0" - }, - { - "name": "go-multiaddr-net", - "hash": "QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2", - "version": "1.0.0" - }, - { - "name": "multiaddr-filter", - "hash": "QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC", - "version": "1.0.0" - }, - { - "name": "go-notifier", - "hash": "QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8", - "version": "1.0.0" - }, - { - "name": "go-ipfs-util", - "hash": "QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD", - "version": "1.0.0" - }, - { - "name": "go-peerstream", - "hash": "QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT", - "version": "1.0.0" - }, - { - "name": "go-msgio", - "hash": "QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr", - "version": "0.0.0" - }, - { - "name": "randbo", - "hash": "QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC", - "version": "1.0.0" - }, - { - "name": "mdns", - "hash": "QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi", - "version": "0.0.0" - }, - { - "name": "go-reuseport", - "hash": "QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1", - "version": "0.0.0" - }, - { - "name": "go-semver", - "hash": "QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa", - "version": "0.0.0" - }, - { - "name": "go-nat", - "hash": "QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt", - "version": "0.0.0" - }, - { - "name": "go-metrics", - "hash": "QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB", - "version": "0.0.0" - }, - { - "name": "go-detect-race", - "hash": "QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH", - "version": "0.0.0" - }, - { - "name": "gogo-protobuf", - "hash": "QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR", - "version": "0.0.0" - } - ], "language": "go", "issues_url": "", "gx": { "dvcsimport": "github.com/ipfs/go-libp2p" } -} \ No newline at end of file +} diff --git a/testutil/gen.go b/testutil/gen.go index c0877975..a931cc89 100644 --- a/testutil/gen.go +++ b/testutil/gen.go @@ -8,11 +8,11 @@ import ( "sync" "testing" + u "github.com/ipfs/go-ipfs-util" ci "github.com/ipfs/go-libp2p/p2p/crypto" peer "github.com/ipfs/go-libp2p/p2p/peer" - u "gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" ) // ZeroLocalTCPAddress is the "zero" tcp local multiaddr. This means: diff --git a/testutil/identity.go b/testutil/identity.go index 2930f19d..04a8ead8 100644 --- a/testutil/identity.go +++ b/testutil/identity.go @@ -5,7 +5,7 @@ import ( ci "github.com/ipfs/go-libp2p/p2p/crypto" peer "github.com/ipfs/go-libp2p/p2p/peer" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" + ma "github.com/jbenet/go-multiaddr" ) type Identity interface { diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/.gxignore b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/.travis.yml b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/.travis.yml deleted file mode 100644 index 7725b309..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: go - -go: - - 1.3 - - release - - tip - -script: - - make test - -env: TEST_VERBOSE=1 diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/LICENSE b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/LICENSE deleted file mode 100644 index c7386b3c..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Juan Batiz-Benet - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/Makefile b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/Makefile deleted file mode 100644 index ed03c80d..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -all: install - -godep: - go get github.com/tools/godep - -# saves/vendors third-party dependencies to Godeps/_workspace -# -r flag rewrites import paths to use the vendored path -# ./... performs operation on all packages in tree -vendor: godep - godep save -r ./... - -install: dep - cd multiaddr && go install - -test: - go test -race -cpu=5 -v ./... - -dep: - cd multiaddr && go get ./... diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/README.md b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/README.md deleted file mode 100644 index 1b500814..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# multiaddr/net - Multiaddr friendly net - -Package multiaddr/net provides [Multiaddr](http://github.com/jbenet/go-multiaddr) specific versions of common -functions in stdlib's net package. This means wrappers of -standard net symbols like net.Dial and net.Listen, as well -as conversion to/from net.Addr. - -Docs: - -- `multiaddr/net`: https://godoc.org/github.com/jbenet/go-multiaddr-net -- `multiaddr`: https://godoc.org/github.com/jbenet/go-multiaddr diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/convert.go b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/convert.go deleted file mode 100644 index d5a6dd2d..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/convert.go +++ /dev/null @@ -1,172 +0,0 @@ -package manet - -import ( - "fmt" - "net" - "strings" - - utp "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/utp" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" -) - -var errIncorrectNetAddr = fmt.Errorf("incorrect network addr conversion") - -// FromNetAddr converts a net.Addr type to a Multiaddr. -func FromNetAddr(a net.Addr) (ma.Multiaddr, error) { - if a == nil { - return nil, fmt.Errorf("nil multiaddr") - } - - switch a.Network() { - case "tcp", "tcp4", "tcp6": - ac, ok := a.(*net.TCPAddr) - if !ok { - return nil, errIncorrectNetAddr - } - - // Get IP Addr - ipm, err := FromIP(ac.IP) - if err != nil { - return nil, errIncorrectNetAddr - } - - // Get TCP Addr - tcpm, err := ma.NewMultiaddr(fmt.Sprintf("/tcp/%d", ac.Port)) - if err != nil { - return nil, errIncorrectNetAddr - } - - // Encapsulate - return ipm.Encapsulate(tcpm), nil - - case "udp", "upd4", "udp6": - ac, ok := a.(*net.UDPAddr) - if !ok { - return nil, errIncorrectNetAddr - } - - // Get IP Addr - ipm, err := FromIP(ac.IP) - if err != nil { - return nil, errIncorrectNetAddr - } - - // Get UDP Addr - udpm, err := ma.NewMultiaddr(fmt.Sprintf("/udp/%d", ac.Port)) - if err != nil { - return nil, errIncorrectNetAddr - } - - // Encapsulate - return ipm.Encapsulate(udpm), nil - - case "utp", "utp4", "utp6": - acc, ok := a.(*utp.Addr) - if !ok { - return nil, errIncorrectNetAddr - } - - // Get UDP Addr - ac, ok := acc.Child().(*net.UDPAddr) - if !ok { - return nil, errIncorrectNetAddr - } - - // Get IP Addr - ipm, err := FromIP(ac.IP) - if err != nil { - return nil, errIncorrectNetAddr - } - - // Get UDP Addr - utpm, err := ma.NewMultiaddr(fmt.Sprintf("/udp/%d/utp", ac.Port)) - if err != nil { - return nil, errIncorrectNetAddr - } - - // Encapsulate - return ipm.Encapsulate(utpm), nil - - case "ip", "ip4", "ip6": - ac, ok := a.(*net.IPAddr) - if !ok { - return nil, errIncorrectNetAddr - } - return FromIP(ac.IP) - - case "ip+net": - ac, ok := a.(*net.IPNet) - if !ok { - return nil, errIncorrectNetAddr - } - return FromIP(ac.IP) - - default: - return nil, fmt.Errorf("unknown network %v", a.Network()) - } -} - -// ToNetAddr converts a Multiaddr to a net.Addr -// Must be ThinWaist. acceptable protocol stacks are: -// /ip{4,6}/{tcp, udp} -func ToNetAddr(maddr ma.Multiaddr) (net.Addr, error) { - network, host, err := DialArgs(maddr) - if err != nil { - return nil, err - } - - switch network { - case "tcp", "tcp4", "tcp6": - return net.ResolveTCPAddr(network, host) - case "udp", "udp4", "udp6": - return net.ResolveUDPAddr(network, host) - case "utp", "utp4", "utp6": - return utp.ResolveAddr(network, host) - case "ip", "ip4", "ip6": - return net.ResolveIPAddr(network, host) - } - - return nil, fmt.Errorf("network not supported: %s", network) -} - -// FromIP converts a net.IP type to a Multiaddr. -func FromIP(ip net.IP) (ma.Multiaddr, error) { - switch { - case ip.To4() != nil: - return ma.NewMultiaddr("/ip4/" + ip.String()) - case ip.To16() != nil: - return ma.NewMultiaddr("/ip6/" + ip.String()) - default: - return nil, errIncorrectNetAddr - } -} - -// DialArgs is a convenience function returning arguments for use in net.Dial -func DialArgs(m ma.Multiaddr) (string, string, error) { - if !IsThinWaist(m) { - return "", "", fmt.Errorf("%s is not a 'thin waist' address", m) - } - - str := m.String() - parts := strings.Split(str, "/")[1:] - - if len(parts) == 2 { // only IP - return parts[0], parts[1], nil - } - - network := parts[2] - if parts[2] == "udp" && len(parts) > 4 && parts[4] == "utp" { - network = parts[4] - } - - var host string - switch parts[0] { - case "ip4": - network = network + "4" - host = strings.Join([]string{parts[1], parts[3]}, ":") - case "ip6": - network = network + "6" - host = fmt.Sprintf("[%s]:%s", parts[1], parts[3]) - } - return network, host, nil -} diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/convert_test.go b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/convert_test.go deleted file mode 100644 index 7c4b46b3..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/convert_test.go +++ /dev/null @@ -1,157 +0,0 @@ -package manet - -import ( - "net" - "testing" - - mautp "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/utp" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" -) - -type GenFunc func() (ma.Multiaddr, error) - -func testConvert(t *testing.T, s string, gen GenFunc) { - m, err := gen() - if err != nil { - t.Fatal("failed to generate.") - } - - if s2 := m.String(); err != nil || s2 != s { - t.Fatal("failed to convert: " + s + " != " + s2) - } -} - -func testToNetAddr(t *testing.T, maddr, ntwk, addr string) { - m, err := ma.NewMultiaddr(maddr) - if err != nil { - t.Fatal("failed to generate.") - } - - naddr, err := ToNetAddr(m) - if addr == "" { // should fail - if err == nil { - t.Fatalf("failed to error: %s", m) - } - return - } - - // shouldn't fail - if err != nil { - t.Fatalf("failed to convert to net addr: %s", m) - } - - if naddr.String() != addr { - t.Fatalf("naddr.Address() == %s != %s", naddr, addr) - } - - if naddr.Network() != ntwk { - t.Fatalf("naddr.Network() == %s != %s", naddr.Network(), ntwk) - } - - // should convert properly - switch ntwk { - case "tcp": - _ = naddr.(*net.TCPAddr) - case "udp": - _ = naddr.(*net.UDPAddr) - case "ip": - _ = naddr.(*net.IPAddr) - } -} - -func TestFromIP4(t *testing.T) { - testConvert(t, "/ip4/10.20.30.40", func() (ma.Multiaddr, error) { - return FromIP(net.ParseIP("10.20.30.40")) - }) -} - -func TestFromIP6(t *testing.T) { - testConvert(t, "/ip6/2001:4860:0:2001::68", func() (ma.Multiaddr, error) { - return FromIP(net.ParseIP("2001:4860:0:2001::68")) - }) -} - -func TestFromTCP(t *testing.T) { - testConvert(t, "/ip4/10.20.30.40/tcp/1234", func() (ma.Multiaddr, error) { - return FromNetAddr(&net.TCPAddr{ - IP: net.ParseIP("10.20.30.40"), - Port: 1234, - }) - }) -} - -func TestFromUDP(t *testing.T) { - testConvert(t, "/ip4/10.20.30.40/udp/1234", func() (ma.Multiaddr, error) { - return FromNetAddr(&net.UDPAddr{ - IP: net.ParseIP("10.20.30.40"), - Port: 1234, - }) - }) -} - -func TestFromUTP(t *testing.T) { - a := &net.UDPAddr{IP: net.ParseIP("10.20.30.40"), Port: 1234} - testConvert(t, "/ip4/10.20.30.40/udp/1234/utp", func() (ma.Multiaddr, error) { - return FromNetAddr(mautp.MakeAddr(a)) - }) -} - -func TestThinWaist(t *testing.T) { - addrs := map[string]bool{ - "/ip4/127.0.0.1/udp/1234": true, - "/ip4/127.0.0.1/tcp/1234": true, - "/ip4/127.0.0.1/udp/1234/utp": true, - "/ip4/127.0.0.1/udp/1234/tcp/1234": true, - "/ip4/127.0.0.1/tcp/12345/ip4/1.2.3.4": true, - "/ip6/::1/tcp/80": true, - "/ip6/::1/udp/80": true, - "/ip6/::1": true, - "/ip6/::1/utp": false, - "/tcp/1234/ip4/1.2.3.4": false, - "/tcp/1234": false, - "/tcp/1234/utp": false, - "/tcp/1234/udp/1234": false, - "/ip4/1.2.3.4/ip4/2.3.4.5": true, - "/ip6/::1/ip4/2.3.4.5": true, - } - - for a, res := range addrs { - m, err := ma.NewMultiaddr(a) - if err != nil { - t.Fatalf("failed to construct Multiaddr: %s", a) - } - - if IsThinWaist(m) != res { - t.Fatalf("IsThinWaist(%s) != %v", a, res) - } - } -} - -func TestDialArgs(t *testing.T) { - test := func(e_maddr, e_nw, e_host string) { - m, err := ma.NewMultiaddr(e_maddr) - if err != nil { - t.Fatal("failed to construct", "/ip4/127.0.0.1/udp/1234", e_maddr) - } - - nw, host, err := DialArgs(m) - if err != nil { - t.Fatal("failed to get dial args", e_maddr, m, err) - } - - if nw != e_nw { - t.Error("failed to get udp network Dial Arg", e_nw, nw) - } - - if host != e_host { - t.Error("failed to get host:port Dial Arg", e_host, host) - } - } - - test("/ip4/127.0.0.1/udp/1234", "udp4", "127.0.0.1:1234") - test("/ip4/127.0.0.1/tcp/4321", "tcp4", "127.0.0.1:4321") - test("/ip4/127.0.0.1/udp/1234/utp", "utp4", "127.0.0.1:1234") - test("/ip6/::1/udp/1234", "udp6", "[::1]:1234") - test("/ip6/::1/tcp/4321", "tcp6", "[::1]:4321") - test("/ip6/::1/udp/1234/utp", "utp6", "[::1]:1234") -} diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/doc.go b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/doc.go deleted file mode 100644 index 040ad3f0..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/doc.go +++ /dev/null @@ -1,5 +0,0 @@ -// Package manet provides Multiaddr specific versions of common -// functions in stdlib's net package. This means wrappers of -// standard net symbols like net.Dial and net.Listen, as well -// as conversion to/from net.Addr. -package manet diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/ip.go b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/ip.go deleted file mode 100644 index eaf23dc3..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/ip.go +++ /dev/null @@ -1,85 +0,0 @@ -package manet - -import ( - "bytes" - - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" -) - -// Loopback Addresses -var ( - // IP4Loopback is the ip4 loopback multiaddr - IP4Loopback = ma.StringCast("/ip4/127.0.0.1") - - // IP6Loopback is the ip6 loopback multiaddr - IP6Loopback = ma.StringCast("/ip6/::1") - - // IP6LinkLocalLoopback is the ip6 link-local loopback multiaddr - IP6LinkLocalLoopback = ma.StringCast("/ip6/fe80::1") -) - -// Unspecified Addresses (used for ) -var ( - IP4Unspecified = ma.StringCast("/ip4/0.0.0.0") - IP6Unspecified = ma.StringCast("/ip6/::") -) - -// IsThinWaist returns whether a Multiaddr starts with "Thin Waist" Protocols. -// This means: /{IP4, IP6}[/{TCP, UDP}] -func IsThinWaist(m ma.Multiaddr) bool { - p := m.Protocols() - - // nothing? not even a waist. - if len(p) == 0 { - return false - } - - if p[0].Code != ma.P_IP4 && p[0].Code != ma.P_IP6 { - return false - } - - // only IP? still counts. - if len(p) == 1 { - return true - } - - switch p[1].Code { - case ma.P_TCP, ma.P_UDP, ma.P_IP4, ma.P_IP6: - return true - default: - return false - } -} - -// IsIPLoopback returns whether a Multiaddr is a "Loopback" IP address -// This means either /ip4/127.0.0.1 or /ip6/::1 -// TODO: differentiate IsIPLoopback and OverIPLoopback -func IsIPLoopback(m ma.Multiaddr) bool { - b := m.Bytes() - - // /ip4/127 prefix (_entire_ /8 is loopback...) - if bytes.HasPrefix(b, []byte{ma.P_IP4, 127}) { - return true - } - - // /ip6/::1 - if IP6Loopback.Equal(m) || IP6LinkLocalLoopback.Equal(m) { - return true - } - - return false -} - -// IP6 Link Local addresses are non routable. The prefix is technically -// fe80::/10, but we test fe80::/16 for simplicity (no need to mask). -// So far, no hardware interfaces exist long enough to use those 2 bits. -// Send a PR if there is. -func IsIP6LinkLocal(m ma.Multiaddr) bool { - return bytes.HasPrefix(m.Bytes(), []byte{ma.P_IP6, 0xfe, 0x80}) -} - -// IsIPUnspecified returns whether a Multiaddr is am Unspecified IP address -// This means either /ip4/0.0.0.0 or /ip6/:: -func IsIPUnspecified(m ma.Multiaddr) bool { - return IP4Unspecified.Equal(m) || IP6Unspecified.Equal(m) -} diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/multiaddr/.gitignore b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/multiaddr/.gitignore deleted file mode 100644 index e4dcb09f..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/multiaddr/.gitignore +++ /dev/null @@ -1 +0,0 @@ -multiaddr diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/multiaddr/multiaddr.go b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/multiaddr/multiaddr.go deleted file mode 100644 index 637e640c..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/multiaddr/multiaddr.go +++ /dev/null @@ -1,96 +0,0 @@ -package main - -import ( - "encoding/hex" - "flag" - "fmt" - "os" - - manet "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" -) - -// flags -var formats = []string{"string", "bytes", "hex", "slice"} -var format string -var hideLoopback bool - -func init() { - flag.Usage = func() { - fmt.Fprintf(os.Stderr, "usage: %s []\n\nFlags:\n", os.Args[0]) - flag.PrintDefaults() - } - - usage := fmt.Sprintf("output format, one of: %v", formats) - flag.StringVar(&format, "format", "string", usage) - flag.StringVar(&format, "f", "string", usage+" (shorthand)") - flag.BoolVar(&hideLoopback, "hide-loopback", false, "do not display loopback addresses") -} - -func main() { - flag.Parse() - args := flag.Args() - if len(args) == 0 { - output(localAddresses()...) - } else { - output(address(args[0])) - } -} - -func localAddresses() []ma.Multiaddr { - maddrs, err := manet.InterfaceMultiaddrs() - if err != nil { - die(err) - } - - if !hideLoopback { - return maddrs - } - - var maddrs2 []ma.Multiaddr - for _, a := range maddrs { - if !manet.IsIPLoopback(a) { - maddrs2 = append(maddrs2, a) - } - } - - return maddrs2 -} - -func address(addr string) ma.Multiaddr { - m, err := ma.NewMultiaddr(addr) - if err != nil { - die(err) - } - - return m -} - -func output(ms ...ma.Multiaddr) { - for _, m := range ms { - fmt.Println(outfmt(m)) - } -} - -func outfmt(m ma.Multiaddr) string { - switch format { - case "string": - return m.String() - case "slice": - return fmt.Sprintf("%v", m.Bytes()) - case "bytes": - return string(m.Bytes()) - case "hex": - return "0x" + hex.EncodeToString(m.Bytes()) - } - - die("error: invalid format", format) - return "" -} - -func die(v ...interface{}) { - fmt.Fprint(os.Stderr, v...) - fmt.Fprint(os.Stderr, "\n") - flag.Usage() - os.Exit(-1) -} diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/net.go b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/net.go deleted file mode 100644 index 8e9ac602..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/net.go +++ /dev/null @@ -1,298 +0,0 @@ -package manet - -import ( - "fmt" - "net" - - mautp "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/utp" - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" -) - -// Conn is the equivalent of a net.Conn object. It is the -// result of calling the Dial or Listen functions in this -// package, with associated local and remote Multiaddrs. -type Conn interface { - net.Conn - - // LocalMultiaddr returns the local Multiaddr associated - // with this connection - LocalMultiaddr() ma.Multiaddr - - // RemoteMultiaddr returns the remote Multiaddr associated - // with this connection - RemoteMultiaddr() ma.Multiaddr -} - -// WrapNetConn wraps a net.Conn object with a Multiaddr -// friendly Conn. -func WrapNetConn(nconn net.Conn) (Conn, error) { - if nconn == nil { - return nil, fmt.Errorf("failed to convert nconn.LocalAddr: nil") - } - - laddr, err := FromNetAddr(nconn.LocalAddr()) - if err != nil { - return nil, fmt.Errorf("failed to convert nconn.LocalAddr: %s", err) - } - - raddr, err := FromNetAddr(nconn.RemoteAddr()) - if err != nil { - return nil, fmt.Errorf("failed to convert nconn.RemoteAddr: %s", err) - } - - return &maConn{ - Conn: nconn, - laddr: laddr, - raddr: raddr, - }, nil -} - -// maConn implements the Conn interface. It's a thin wrapper -// around a net.Conn -type maConn struct { - net.Conn - laddr ma.Multiaddr - raddr ma.Multiaddr -} - -// LocalMultiaddr returns the local address associated with -// this connection -func (c *maConn) LocalMultiaddr() ma.Multiaddr { - return c.laddr -} - -// RemoteMultiaddr returns the remote address associated with -// this connection -func (c *maConn) RemoteMultiaddr() ma.Multiaddr { - return c.raddr -} - -// Dialer contains options for connecting to an address. It -// is effectively the same as net.Dialer, but its LocalAddr -// and RemoteAddr options are Multiaddrs, instead of net.Addrs. -type Dialer struct { - - // Dialer is just an embedded net.Dialer, with all its options. - net.Dialer - - // LocalAddr is the local address to use when dialing an - // address. The address must be of a compatible type for the - // network being dialed. - // If nil, a local address is automatically chosen. - LocalAddr ma.Multiaddr -} - -// Dial connects to a remote address, using the options of the -// Dialer. Dialer uses an underlying net.Dialer to Dial a -// net.Conn, then wraps that in a Conn object (with local and -// remote Multiaddrs). -func (d *Dialer) Dial(remote ma.Multiaddr) (Conn, error) { - - // if a LocalAddr is specified, use it on the embedded dialer. - if d.LocalAddr != nil { - // convert our multiaddr to net.Addr friendly - naddr, err := ToNetAddr(d.LocalAddr) - if err != nil { - return nil, err - } - - // set the dialer's LocalAddr as naddr - d.Dialer.LocalAddr = naddr - } - - // get the net.Dial friendly arguments from the remote addr - rnet, rnaddr, err := DialArgs(remote) - if err != nil { - return nil, err - } - - // ok, Dial! - var nconn net.Conn - switch rnet { - case "tcp", "tcp4", "tcp6", "udp", "udp4", "udp6": - nconn, err = d.Dialer.Dial(rnet, rnaddr) - if err != nil { - return nil, err - } - case "utp", "utp4", "utp6": - utpd := mautp.Dialer{ - Timeout: d.Timeout, - LocalAddr: d.Dialer.LocalAddr, - } - // construct utp dialer, with options on our net.Dialer - nconn, err = utpd.Dial(rnet, rnaddr) - if err != nil { - return nil, err - } - } - - // get local address (pre-specified or assigned within net.Conn) - local := d.LocalAddr - if local == nil { - local, err = FromNetAddr(nconn.LocalAddr()) - if err != nil { - return nil, err - } - } - - return &maConn{ - Conn: nconn, - laddr: local, - raddr: remote, - }, nil -} - -// Dial connects to a remote address. It uses an underlying net.Conn, -// then wraps it in a Conn object (with local and remote Multiaddrs). -func Dial(remote ma.Multiaddr) (Conn, error) { - return (&Dialer{}).Dial(remote) -} - -// A Listener is a generic network listener for stream-oriented protocols. -// it uses an embedded net.Listener, overriding net.Listener.Accept to -// return a Conn and providing Multiaddr. -type Listener interface { - - // NetListener returns the embedded net.Listener. Use with caution. - NetListener() net.Listener - - // Accept waits for and returns the next connection to the listener. - // Returns a Multiaddr friendly Conn - Accept() (Conn, error) - - // Close closes the listener. - // Any blocked Accept operations will be unblocked and return errors. - Close() error - - // Multiaddr returns the listener's (local) Multiaddr. - Multiaddr() ma.Multiaddr - - // Addr returns the net.Listener's network address. - Addr() net.Addr -} - -// maListener implements Listener -type maListener struct { - net.Listener - laddr ma.Multiaddr -} - -// NetListener returns the embedded net.Listener. Use with caution. -func (l *maListener) NetListener() net.Listener { - return l.Listener -} - -// Accept waits for and returns the next connection to the listener. -// Returns a Multiaddr friendly Conn -func (l *maListener) Accept() (Conn, error) { - nconn, err := l.Listener.Accept() - if err != nil { - return nil, err - } - - raddr, err := FromNetAddr(nconn.RemoteAddr()) - if err != nil { - return nil, fmt.Errorf("failed to convert connn.RemoteAddr: %s", err) - } - - return &maConn{ - Conn: nconn, - laddr: l.laddr, - raddr: raddr, - }, nil -} - -// Multiaddr returns the listener's (local) Multiaddr. -func (l *maListener) Multiaddr() ma.Multiaddr { - return l.laddr -} - -// Addr returns the listener's network address. -func (l *maListener) Addr() net.Addr { - return l.Listener.Addr() -} - -// Listen announces on the local network address laddr. -// The Multiaddr must be a "ThinWaist" stream-oriented network: -// ip4/tcp, ip6/tcp, (TODO: unix, unixpacket) -// See Dial for the syntax of laddr. -func Listen(laddr ma.Multiaddr) (Listener, error) { - - // get the net.Listen friendly arguments from the remote addr - lnet, lnaddr, err := DialArgs(laddr) - if err != nil { - return nil, err - } - - var nl net.Listener - switch lnet { - case "utp", "utp4", "utp6": - nl, err = mautp.Listen(lnet, lnaddr) - default: - nl, err = net.Listen(lnet, lnaddr) - } - if err != nil { - return nil, err - } - - // we want to fetch the new multiaddr from the listener, as it may - // have resolved to some other value. WrapNetListener does it for us. - return WrapNetListener(nl) -} - -// WrapNetListener wraps a net.Listener with a manet.Listener. -func WrapNetListener(nl net.Listener) (Listener, error) { - laddr, err := FromNetAddr(nl.Addr()) - if err != nil { - return nil, err - } - - return &maListener{ - Listener: nl, - laddr: laddr, - }, nil -} - -// InterfaceMultiaddrs will return the addresses matching net.InterfaceAddrs -func InterfaceMultiaddrs() ([]ma.Multiaddr, error) { - addrs, err := net.InterfaceAddrs() - if err != nil { - return nil, err - } - - maddrs := make([]ma.Multiaddr, len(addrs)) - for i, a := range addrs { - maddrs[i], err = FromNetAddr(a) - if err != nil { - return nil, err - } - } - return maddrs, nil -} - -// AddrMatch returns the Multiaddrs that match the protocol stack on addr -func AddrMatch(match ma.Multiaddr, addrs []ma.Multiaddr) []ma.Multiaddr { - - // we should match transports entirely. - p1s := match.Protocols() - - out := make([]ma.Multiaddr, 0, len(addrs)) - for _, a := range addrs { - p2s := a.Protocols() - if len(p1s) != len(p2s) { - continue - } - - match := true - for i, p2 := range p2s { - if p1s[i].Code != p2.Code { - match = false - break - } - } - if match { - out = append(out, a) - } - } - return out -} diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/net_test.go b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/net_test.go deleted file mode 100644 index 4aa194f4..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/net_test.go +++ /dev/null @@ -1,507 +0,0 @@ -package manet - -import ( - "bytes" - "fmt" - "net" - "sync" - "testing" - - ma "gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr" -) - -func newMultiaddr(t *testing.T, m string) ma.Multiaddr { - maddr, err := ma.NewMultiaddr(m) - if err != nil { - t.Fatal("failed to construct multiaddr:", m, err) - } - return maddr -} - -func TestDial(t *testing.T) { - - listener, err := net.Listen("tcp", "127.0.0.1:4321") - if err != nil { - t.Fatal("failed to listen") - } - - var wg sync.WaitGroup - wg.Add(1) - go func() { - - cB, err := listener.Accept() - if err != nil { - t.Fatal("failed to accept") - } - - // echo out - buf := make([]byte, 1024) - for { - _, err := cB.Read(buf) - if err != nil { - break - } - cB.Write(buf) - } - - wg.Done() - }() - - maddr := newMultiaddr(t, "/ip4/127.0.0.1/tcp/4321") - cA, err := Dial(maddr) - if err != nil { - t.Fatal("failed to dial") - } - - buf := make([]byte, 1024) - if _, err := cA.Write([]byte("beep boop")); err != nil { - t.Fatal("failed to write:", err) - } - - if _, err := cA.Read(buf); err != nil { - t.Fatal("failed to read:", buf, err) - } - - if !bytes.Equal(buf[:9], []byte("beep boop")) { - t.Fatal("failed to echo:", buf) - } - - maddr2 := cA.RemoteMultiaddr() - if !maddr2.Equal(maddr) { - t.Fatal("remote multiaddr not equal:", maddr, maddr2) - } - - cA.Close() - wg.Wait() -} - -func TestListen(t *testing.T) { - - maddr := newMultiaddr(t, "/ip4/127.0.0.1/tcp/4322") - listener, err := Listen(maddr) - if err != nil { - t.Fatal("failed to listen") - } - - var wg sync.WaitGroup - wg.Add(1) - go func() { - - cB, err := listener.Accept() - if err != nil { - t.Fatal("failed to accept") - } - - if !cB.LocalMultiaddr().Equal(maddr) { - t.Fatal("local multiaddr not equal:", maddr, cB.LocalMultiaddr()) - } - - // echo out - buf := make([]byte, 1024) - for { - _, err := cB.Read(buf) - if err != nil { - break - } - cB.Write(buf) - } - - wg.Done() - }() - - cA, err := net.Dial("tcp", "127.0.0.1:4322") - if err != nil { - t.Fatal("failed to dial") - } - - buf := make([]byte, 1024) - if _, err := cA.Write([]byte("beep boop")); err != nil { - t.Fatal("failed to write:", err) - } - - if _, err := cA.Read(buf); err != nil { - t.Fatal("failed to read:", buf, err) - } - - if !bytes.Equal(buf[:9], []byte("beep boop")) { - t.Fatal("failed to echo:", buf) - } - - maddr2, err := FromNetAddr(cA.RemoteAddr()) - if err != nil { - t.Fatal("failed to convert", err) - } - if !maddr2.Equal(maddr) { - t.Fatal("remote multiaddr not equal:", maddr, maddr2) - } - - cA.Close() - wg.Wait() -} - -func TestListenAddrs(t *testing.T) { - - test := func(addr, resaddr string, succeed bool) { - if resaddr == "" { - resaddr = addr - } - - maddr := newMultiaddr(t, addr) - l, err := Listen(maddr) - if !succeed { - if err == nil { - t.Fatal("succeeded in listening", addr) - } - return - } - if succeed && err != nil { - t.Error("failed to listen", addr, err) - } - if l == nil { - t.Error("failed to listen", addr, succeed, err) - } - if l.Multiaddr().String() != resaddr { - t.Error("listen addr did not resolve properly", l.Multiaddr().String(), resaddr, succeed, err) - } - - if err = l.Close(); err != nil { - t.Fatal("failed to close listener", addr, err) - } - } - - test("/ip4/127.0.0.1/tcp/4324", "", true) - test("/ip4/127.0.0.1/udp/4325", "", false) - test("/ip4/127.0.0.1/udp/4326/udt", "", false) - test("/ip4/0.0.0.0/tcp/4324", "", true) - test("/ip4/0.0.0.0/udp/4325", "", false) - test("/ip4/0.0.0.0/udp/4326/udt", "", false) - test("/ip6/::1/tcp/4324", "", true) - test("/ip6/::1/udp/4325", "", false) - test("/ip6/::1/udp/4326/udt", "", false) - test("/ip6/::/tcp/4324", "", true) - test("/ip6/::/udp/4325", "", false) - test("/ip6/::/udp/4326/udt", "", false) - // test("/ip4/127.0.0.1/udp/4326/utp", true) -} - -func TestListenAndDial(t *testing.T) { - - maddr := newMultiaddr(t, "/ip4/127.0.0.1/tcp/4323") - listener, err := Listen(maddr) - if err != nil { - t.Fatal("failed to listen") - } - - var wg sync.WaitGroup - wg.Add(1) - go func() { - - cB, err := listener.Accept() - if err != nil { - t.Fatal("failed to accept") - } - - if !cB.LocalMultiaddr().Equal(maddr) { - t.Fatal("local multiaddr not equal:", maddr, cB.LocalMultiaddr()) - } - - // echo out - buf := make([]byte, 1024) - for { - _, err := cB.Read(buf) - if err != nil { - break - } - cB.Write(buf) - } - - wg.Done() - }() - - cA, err := Dial(newMultiaddr(t, "/ip4/127.0.0.1/tcp/4323")) - if err != nil { - t.Fatal("failed to dial") - } - - buf := make([]byte, 1024) - if _, err := cA.Write([]byte("beep boop")); err != nil { - t.Fatal("failed to write:", err) - } - - if _, err := cA.Read(buf); err != nil { - t.Fatal("failed to read:", buf, err) - } - - if !bytes.Equal(buf[:9], []byte("beep boop")) { - t.Fatal("failed to echo:", buf) - } - - maddr2 := cA.RemoteMultiaddr() - if !maddr2.Equal(maddr) { - t.Fatal("remote multiaddr not equal:", maddr, maddr2) - } - - cA.Close() - wg.Wait() -} - -func TestListenAndDialUTP(t *testing.T) { - maddr := newMultiaddr(t, "/ip4/127.0.0.1/udp/4323/utp") - listener, err := Listen(maddr) - if err != nil { - t.Fatal("failed to listen: ", err) - } - - var wg sync.WaitGroup - wg.Add(1) - go func() { - - cB, err := listener.Accept() - if err != nil { - t.Fatal("failed to accept") - } - - if !cB.LocalMultiaddr().Equal(maddr) { - t.Fatal("local multiaddr not equal:", maddr, cB.LocalMultiaddr()) - } - - defer cB.Close() - - // echo out - buf := make([]byte, 1024) - for { - _, err := cB.Read(buf) - if err != nil { - break - } - cB.Write(buf) - } - - wg.Done() - }() - - cA, err := Dial(newMultiaddr(t, "/ip4/127.0.0.1/udp/4323/utp")) - if err != nil { - t.Fatal("failed to dial", err) - } - - buf := make([]byte, 1024) - if _, err := cA.Write([]byte("beep boop")); err != nil { - t.Fatal("failed to write:", err) - } - - if _, err := cA.Read(buf); err != nil { - t.Fatal("failed to read:", buf, err) - } - - if !bytes.Equal(buf[:9], []byte("beep boop")) { - t.Fatal("failed to echo:", buf) - } - - maddr2 := cA.RemoteMultiaddr() - if !maddr2.Equal(maddr) { - t.Fatal("remote multiaddr not equal:", maddr, maddr2) - } - - cA.Close() - wg.Wait() -} - -func TestIPLoopback(t *testing.T) { - if IP4Loopback.String() != "/ip4/127.0.0.1" { - t.Error("IP4Loopback incorrect:", IP4Loopback) - } - - if IP6Loopback.String() != "/ip6/::1" { - t.Error("IP6Loopback incorrect:", IP6Loopback) - } - - if IP6LinkLocalLoopback.String() != "/ip6/fe80::1" { - t.Error("IP6LinkLocalLoopback incorrect:", IP6Loopback) - } - - if !IsIPLoopback(IP4Loopback) { - t.Error("IsIPLoopback failed (IP4Loopback)") - } - - if !IsIPLoopback(IP6Loopback) { - t.Error("IsIPLoopback failed (IP6Loopback)") - } - - if !IsIPLoopback(IP6LinkLocalLoopback) { - t.Error("IsIPLoopback failed (IP6LinkLocalLoopback)") - } -} - -func TestIPUnspecified(t *testing.T) { - if IP4Unspecified.String() != "/ip4/0.0.0.0" { - t.Error("IP4Unspecified incorrect:", IP4Unspecified) - } - - if IP6Unspecified.String() != "/ip6/::" { - t.Error("IP6Unspecified incorrect:", IP6Unspecified) - } - - if !IsIPUnspecified(IP4Unspecified) { - t.Error("IsIPUnspecified failed (IP4Unspecified)") - } - - if !IsIPUnspecified(IP6Unspecified) { - t.Error("IsIPUnspecified failed (IP6Unspecified)") - } -} - -func TestIP6LinkLocal(t *testing.T) { - if !IsIP6LinkLocal(IP6LinkLocalLoopback) { - t.Error("IsIP6LinkLocal failed (IP6LinkLocalLoopback)") - } - - for a := 0; a < 65536; a++ { - isLinkLocal := (a == 0xfe80) - m := newMultiaddr(t, fmt.Sprintf("/ip6/%x::1", a)) - if IsIP6LinkLocal(m) != isLinkLocal { - t.Error("IsIP6LinkLocal failed (%s != %v)", m, isLinkLocal) - } - } -} - -func TestConvertNetAddr(t *testing.T) { - m1 := newMultiaddr(t, "/ip4/1.2.3.4/tcp/4001") - - n1, err := ToNetAddr(m1) - if err != nil { - t.Fatal(err) - } - - m2, err := FromNetAddr(n1) - if err != nil { - t.Fatal(err) - } - - if m1.String() != m2.String() { - t.Fatal("ToNetAddr + FromNetAddr did not work") - } -} - -func TestWrapNetConn(t *testing.T) { - // test WrapNetConn nil - if _, err := WrapNetConn(nil); err == nil { - t.Error("WrapNetConn(nil) should return an error") - } - - checkErr := func(err error, s string) { - if err != nil { - t.Fatal(s, err) - } - } - - listener, err := net.Listen("tcp", "127.0.0.1:0") - checkErr(err, "failed to listen") - - var wg sync.WaitGroup - defer wg.Wait() - wg.Add(1) - go func() { - defer wg.Done() - cB, err := listener.Accept() - checkErr(err, "failed to accept") - cB.Close() - }() - - cA, err := net.Dial("tcp", listener.Addr().String()) - checkErr(err, "failed to dial") - defer cA.Close() - - lmaddr, err := FromNetAddr(cA.LocalAddr()) - checkErr(err, "failed to get local addr") - rmaddr, err := FromNetAddr(cA.RemoteAddr()) - checkErr(err, "failed to get remote addr") - - mcA, err := WrapNetConn(cA) - checkErr(err, "failed to wrap conn") - - if mcA.LocalAddr().String() != cA.LocalAddr().String() { - t.Error("wrapped conn local addr differs") - } - if mcA.RemoteAddr().String() != cA.RemoteAddr().String() { - t.Error("wrapped conn remote addr differs") - } - if mcA.LocalMultiaddr().String() != lmaddr.String() { - t.Error("wrapped conn local maddr differs") - } - if mcA.RemoteMultiaddr().String() != rmaddr.String() { - t.Error("wrapped conn remote maddr differs") - } -} - -func TestAddrMatch(t *testing.T) { - - test := func(m ma.Multiaddr, input, expect []ma.Multiaddr) { - actual := AddrMatch(m, input) - testSliceEqual(t, expect, actual) - } - - a := []ma.Multiaddr{ - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234"), - newMultiaddr(t, "/ip4/1.2.3.4/tcp/2345"), - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234/tcp/2345"), - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234/tcp/2345"), - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234/udp/1234"), - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234/udp/1234"), - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234/ip6/::1"), - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234/ip6/::1"), - newMultiaddr(t, "/ip6/::1/tcp/1234"), - newMultiaddr(t, "/ip6/::1/tcp/2345"), - newMultiaddr(t, "/ip6/::1/tcp/1234/tcp/2345"), - newMultiaddr(t, "/ip6/::1/tcp/1234/tcp/2345"), - newMultiaddr(t, "/ip6/::1/tcp/1234/udp/1234"), - newMultiaddr(t, "/ip6/::1/tcp/1234/udp/1234"), - newMultiaddr(t, "/ip6/::1/tcp/1234/ip6/::1"), - newMultiaddr(t, "/ip6/::1/tcp/1234/ip6/::1"), - } - - test(a[0], a, []ma.Multiaddr{ - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234"), - newMultiaddr(t, "/ip4/1.2.3.4/tcp/2345"), - }) - test(a[2], a, []ma.Multiaddr{ - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234/tcp/2345"), - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234/tcp/2345"), - }) - test(a[4], a, []ma.Multiaddr{ - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234/udp/1234"), - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234/udp/1234"), - }) - test(a[6], a, []ma.Multiaddr{ - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234/ip6/::1"), - newMultiaddr(t, "/ip4/1.2.3.4/tcp/1234/ip6/::1"), - }) - test(a[8], a, []ma.Multiaddr{ - newMultiaddr(t, "/ip6/::1/tcp/1234"), - newMultiaddr(t, "/ip6/::1/tcp/2345"), - }) - test(a[10], a, []ma.Multiaddr{ - newMultiaddr(t, "/ip6/::1/tcp/1234/tcp/2345"), - newMultiaddr(t, "/ip6/::1/tcp/1234/tcp/2345"), - }) - test(a[12], a, []ma.Multiaddr{ - newMultiaddr(t, "/ip6/::1/tcp/1234/udp/1234"), - newMultiaddr(t, "/ip6/::1/tcp/1234/udp/1234"), - }) - test(a[14], a, []ma.Multiaddr{ - newMultiaddr(t, "/ip6/::1/tcp/1234/ip6/::1"), - newMultiaddr(t, "/ip6/::1/tcp/1234/ip6/::1"), - }) - -} - -func testSliceEqual(t *testing.T, a, b []ma.Multiaddr) { - if len(a) != len(b) { - t.Error("differ", a, b) - } - for i, addrA := range a { - if !addrA.Equal(b[i]) { - t.Error("differ", a, b) - } - } -} diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/package.json b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/package.json deleted file mode 100644 index 3d41f6e7..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "go-multiaddr-net", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "go-multiaddr", - "hash": "QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj", - "version": "0.0.0" - }, - { - "name": "go-utp", - "hash": "QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m", - "version": "0.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/jbenet/go-multiaddr-net" - } -} \ No newline at end of file diff --git a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/utp/utp_util.go b/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/utp/utp_util.go deleted file mode 100644 index 971ac702..00000000 --- a/vendor/gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net/utp/utp_util.go +++ /dev/null @@ -1,105 +0,0 @@ -package utp - -import ( - "errors" - "net" - "time" - - utp "gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp" -) - -type Listener struct { - *utp.Socket -} - -type Conn struct { - net.Conn -} - -type Addr struct { - net string - child net.Addr -} - -func (ca *Addr) Network() string { - return ca.net -} - -func (ca *Addr) String() string { - return ca.child.String() -} - -func (ca *Addr) Child() net.Addr { - return ca.child -} - -func MakeAddr(a net.Addr) net.Addr { - return &Addr{ - net: "utp", - child: a, - } -} - -func ResolveAddr(network string, host string) (net.Addr, error) { - a, err := net.ResolveUDPAddr("udp"+network[3:], host) - if err != nil { - return nil, err - } - - return MakeAddr(a), nil -} - -func (u *Conn) LocalAddr() net.Addr { - return MakeAddr(u.Conn.LocalAddr()) -} - -func (u *Conn) RemoteAddr() net.Addr { - return MakeAddr(u.Conn.RemoteAddr()) -} - -func Listen(network string, laddr string) (net.Listener, error) { - switch network { - case "utp", "utp4", "utp6": - s, err := utp.NewSocket("udp"+network[3:], laddr) - if err != nil { - return nil, err - } - - return &Listener{s}, nil - - default: - return nil, errors.New("unrecognized network: " + network) - } -} - -func (u *Listener) Accept() (net.Conn, error) { - c, err := u.Socket.Accept() - if err != nil { - return nil, err - } - - return &Conn{c}, nil -} - -func (u *Listener) Addr() net.Addr { - return MakeAddr(u.Socket.Addr()) -} - -type Dialer struct { - Timeout time.Duration - LocalAddr net.Addr -} - -func (d *Dialer) Dial(rnet string, raddr string) (net.Conn, error) { - if d.LocalAddr != nil { - s, err := utp.NewSocket(d.LocalAddr.Network(), d.LocalAddr.String()) - if err != nil { - return nil, err - } - - // zero timeout is the same as calling s.Dial() - return s.DialTimeout(raddr, d.Timeout) - } - - return utp.DialTimeout(raddr, d.Timeout) -} diff --git a/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/LICENSE b/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/LICENSE deleted file mode 100644 index 0d760cbb..00000000 --- a/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2013 Conformal Systems LLC. - -Permission to use, copy, modify, and distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file diff --git a/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/README.md b/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/README.md deleted file mode 100644 index ece24334..00000000 --- a/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# go-base58 - -I extracted this package from https://github.com/conformal/btcutil to provide a simple base58 package that -- defaults to base58-check (btc) -- and allows using different alphabets. - -## Usage - -```go -package main - -import ( - "fmt" - b58 "github.com/jbenet/go-base58" -) - -func main() { - buf := []byte{255, 254, 253, 252} - fmt.Printf("buffer: %v\n", buf) - - str := b58.Encode(buf) - fmt.Printf("encoded: %s\n", str) - - buf2 := b58.Decode(str) - fmt.Printf("decoded: %v\n", buf2) -} -``` - -### Another alphabet - -```go -package main - -import ( - "fmt" - b58 "github.com/jbenet/go-base58" -) - -const BogusAlphabet = "ZYXWVUTSRQPNMLKJHGFEDCBAzyxwvutsrqponmkjihgfedcba987654321" - - -func encdec(alphabet string) { - fmt.Printf("using: %s\n", alphabet) - - buf := []byte{255, 254, 253, 252} - fmt.Printf("buffer: %v\n", buf) - - str := b58.EncodeAlphabet(buf, alphabet) - fmt.Printf("encoded: %s\n", str) - - buf2 := b58.DecodeAlphabet(str, alphabet) - fmt.Printf("decoded: %v\n\n", buf2) -} - - -func main() { - encdec(b58.BTCAlphabet) - encdec(b58.FlickrAlphabet) - encdec(BogusAlphabet) -} -``` - - -## License - -Package base58 (and the original btcutil) are licensed under the ISC License. diff --git a/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/base58.go b/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/base58.go deleted file mode 100644 index ad91df54..00000000 --- a/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/base58.go +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) 2013-2014 Conformal Systems LLC. -// Use of this source code is governed by an ISC -// license that can be found in the LICENSE file. -// Modified by Juan Benet (juan@benet.ai) - -package base58 - -import ( - "math/big" - "strings" -) - -// alphabet is the modified base58 alphabet used by Bitcoin. -const BTCAlphabet = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" -const FlickrAlphabet = "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ" - -var bigRadix = big.NewInt(58) -var bigZero = big.NewInt(0) - -// Decode decodes a modified base58 string to a byte slice, using BTCAlphabet -func Decode(b string) []byte { - return DecodeAlphabet(b, BTCAlphabet) -} - -// Encode encodes a byte slice to a modified base58 string, using BTCAlphabet -func Encode(b []byte) string { - return EncodeAlphabet(b, BTCAlphabet) -} - -// DecodeAlphabet decodes a modified base58 string to a byte slice, using alphabet. -func DecodeAlphabet(b, alphabet string) []byte { - answer := big.NewInt(0) - j := big.NewInt(1) - - for i := len(b) - 1; i >= 0; i-- { - tmp := strings.IndexAny(alphabet, string(b[i])) - if tmp == -1 { - return []byte("") - } - idx := big.NewInt(int64(tmp)) - tmp1 := big.NewInt(0) - tmp1.Mul(j, idx) - - answer.Add(answer, tmp1) - j.Mul(j, bigRadix) - } - - tmpval := answer.Bytes() - - var numZeros int - for numZeros = 0; numZeros < len(b); numZeros++ { - if b[numZeros] != alphabet[0] { - break - } - } - flen := numZeros + len(tmpval) - val := make([]byte, flen, flen) - copy(val[numZeros:], tmpval) - - return val -} - -// Encode encodes a byte slice to a modified base58 string, using alphabet -func EncodeAlphabet(b []byte, alphabet string) string { - x := new(big.Int) - x.SetBytes(b) - - answer := make([]byte, 0, len(b)*136/100) - for x.Cmp(bigZero) > 0 { - mod := new(big.Int) - x.DivMod(x, bigRadix, mod) - answer = append(answer, alphabet[mod.Int64()]) - } - - // leading zero bytes - for _, i := range b { - if i != 0 { - break - } - answer = append(answer, alphabet[0]) - } - - // reverse - alen := len(answer) - for i := 0; i < alen/2; i++ { - answer[i], answer[alen-1-i] = answer[alen-1-i], answer[i] - } - - return string(answer) -} diff --git a/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/base58_test.go b/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/base58_test.go deleted file mode 100644 index 3e945b29..00000000 --- a/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/base58_test.go +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright (c) 2013-2014 Conformal Systems LLC. -// Use of this source code is governed by an ISC -// license that can be found in the LICENSE file. - -package base58 - -import ( - "bytes" - "encoding/hex" - "testing" -) - -var stringTests = []struct { - in string - out string -}{ - {"", ""}, - {" ", "Z"}, - {"-", "n"}, - {"0", "q"}, - {"1", "r"}, - {"-1", "4SU"}, - {"11", "4k8"}, - {"abc", "ZiCa"}, - {"1234598760", "3mJr7AoUXx2Wqd"}, - {"abcdefghijklmnopqrstuvwxyz", "3yxU3u1igY8WkgtjK92fbJQCd4BZiiT1v25f"}, - {"00000000000000000000000000000000000000000000000000000000000000", "3sN2THZeE9Eh9eYrwkvZqNstbHGvrxSAM7gXUXvyFQP8XvQLUqNCS27icwUeDT7ckHm4FUHM2mTVh1vbLmk7y"}, -} - -var invalidStringTests = []struct { - in string - out string -}{ - {"0", ""}, - {"O", ""}, - {"I", ""}, - {"l", ""}, - {"3mJr0", ""}, - {"O3yxU", ""}, - {"3sNI", ""}, - {"4kl8", ""}, - {"0OIl", ""}, - {"!@#$%^&*()-_=+~`", ""}, -} - -var hexTests = []struct { - in string - out string -}{ - {"61", "2g"}, - {"626262", "a3gV"}, - {"636363", "aPEr"}, - {"73696d706c792061206c6f6e6720737472696e67", "2cFupjhnEsSn59qHXstmK2ffpLv2"}, - {"00eb15231dfceb60925886b67d065299925915aeb172c06647", "1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L"}, - {"516b6fcd0f", "ABnLTmg"}, - {"bf4f89001e670274dd", "3SEo3LWLoPntC"}, - {"572e4794", "3EFU7m"}, - {"ecac89cad93923c02321", "EJDM8drfXA6uyA"}, - {"10c8511e", "Rt5zm"}, - {"00000000000000000000", "1111111111"}, -} - -func TestBase58(t *testing.T) { - // Base58Encode tests - for x, test := range stringTests { - tmp := []byte(test.in) - if res := Encode(tmp); res != test.out { - t.Errorf("Base58Encode test #%d failed: got: %s want: %s", - x, res, test.out) - continue - } - } - - // Base58Decode tests - for x, test := range hexTests { - b, err := hex.DecodeString(test.in) - if err != nil { - t.Errorf("hex.DecodeString failed failed #%d: got: %s", x, test.in) - continue - } - if res := Decode(test.out); bytes.Equal(res, b) != true { - t.Errorf("Base58Decode test #%d failed: got: %q want: %q", - x, res, test.in) - continue - } - } - - // Base58Decode with invalid input - for x, test := range invalidStringTests { - if res := Decode(test.in); string(res) != test.out { - t.Errorf("Base58Decode invalidString test #%d failed: got: %q want: %q", - x, res, test.out) - continue - } - } -} - -func BenchmarkDecodeShort(b *testing.B) { - const in = "1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L" - b.ReportAllocs() - for i := 0; i < b.N; i++ { - _ = Decode(in) - } -} - -func BenchmarkEncodeShort(b *testing.B) { - var in = []byte("00eb15231dfceb60925886b67d065299925915aeb172c06647") - b.ReportAllocs() - for i := 0; i < b.N; i++ { - _ = Encode(in) - } -} - -func BenchmarkDecodeOneKilo(b *testing.B) { - const in = "3GimCffBLAHhXMCeNxX2nST6dBem9pbUi3KVKykW73LmewcFtMk9oh9eNPdNR2eSzNqp7Z3E21vrWUkGHzJ7w2yqDUDJ4LKo1w5D6aafZ4SUoNQyrSVxyVG3pwgoZkKXMZVixRyiPZVUpekrsTvZuUoW7mB6BQgDTXbDuMMSRoNR7yiUTKpgwTD61DLmhNZopNxfFjn4avpYPgzsTB94iWueq1yU3EoruWCUMvp6fc1CEbDrZY3pkx9oUbUaSMC37rruBKSSGHh1ZE3XK3kQXBCFraMmUQf8dagofMEg5aTnDiLAZjLyWJMdnQwW1FqKKztP8KAQS2JX8GCCfc68KB4VGf2CfEGXtaapnsNWFrHuWi7Wo5vqyuHd21zGm1u5rsiR6tKNCsFC4nzf3WUNxJNoZrDSdF9KERqhTWWmmcM4qdKRCtBWKTrs1DJD2oiK6BK9BgwoW2dfQdKuxojFyFvmxqPKDDAEZPPpJ51wHoFzBFMM1tUBBkN15cT2GpNwKzDcjHPKJAQ6FNRgppfQytzqpq76sSeZaWAB8hhULMJCQGU57ZUjvP7xYAQwtACBnYrjdxA91XwXFbq5AsQJwAmLw6euKVWNyv11BuHrejVmnNViWg5kuZBrtgL6NtzRWHtdxngHDMtuyky3brqGXaGQhUyXrkSpeknkkHL6NLThHH5NPnfFMVPwn2xf5UM5R51X2nTBzADSVcpi4cT7i44dT7o3yRKWtKfUzZiuNyTcSSrfH8KVdLap5ZKLmdPuXM65M2Z5wJVh3Uc4iv6iZKk44RKikM7zs1hqC4sBxRwLZjxhKvvMXDjDcYFkzyUkues4y7fjdCnVTxc4vTYUqcbY2k2WMssyj9SDseVc7dVrEvWCLQtYy79mJFoz1Hmsfk5ynE28ipznzQ3yTBugLHA6j6qW3S74eY4pJ6iynFEuXT4RqqkLGFcMh3goqS7CkphUMzP4wuJyGnzqa5tCno4U3dJ2jUL7Povg8voRqYAfiHyXC8zuhn225EdmRcSnu2pAuutQVV9hN3bkjfzAFUhUWKki8SwXtFSjy6NJyrYUiaze4p7ApsjHQBCgg2zAoBaGCwVN8991Jny31B5vPyYHy1oRSE4xTVZ7tTw9FyQ7w9p1NSEF4sziCxZHh5rFWZKAajc5c7KaMNDvHPNV6S62MTFGTyuKPQNbv9yHRGN4eH6SnZGW6snvEVdYCspWZ1U3Nbxo6vCmBK95UyYpcxHgg1CCGdU4s3edju2NDQkMifyPkJdkabzzHVDhJJbChAJc1ACQfNW74VXXwrBZmeZyA2R28MBctDyXuSuffiwueys2LVowLu9wiTHUox7KQjtHK2c9howk9czzx2mpnYzkVYH42CYsWa5514EM4CJEXPJSSbXSgJJ" - b.SetBytes(int64(len(in))) // 1024 - b.ReportAllocs() - for i := 0; i < b.N; i++ { - _ = Decode(in) - } -} - -func BenchmarkEncodeOneKilo(b *testing.B) { - var in = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x00\x00\x04\xff\xfb\x63\xc9\x7e\x5f\x97\x68\xe5\x10\x08\xe5\xa5\x9a\x7c\x24\x75\x35\xbe\xaf\x37\x0b\xc3\xf4\x18\x62\x4a\xb7\x18\xd0\x10\x0b\x6b\x62\xe1\x36\x0f\x62\xa6\xeb\x78\xa5\xf3\x33\x52\xbc\xdf\x04\xcb\x37\xcf\x3d\x97\x5c\xb8\x75\x09\x1f\x18\x9f\xfc\xa9\xda\x1e\x59\x77\x09\x9c\x5d\xb6\xf2\x9e\x45\xb7\x5e\x5d\x11\xf1\x20\x14\x85\xf8\x54\x87\x8c\x1e\x2c\x2e\x15\x57\x89\xe7\x5d\x49\xb6\xae\x24\x3a\x20\x50\x0e\xa7\x5b\x10\xbf\x0a\xb4\x01\x42\xed\xce\x2d\x45\x21\xb6\xe8\x64\x73\x4e\x7e\x0a\x36\x1d\x57\x0a\x5e\x1c\x21\xc2\xb8\xe7\x89\x82\xe4\x04\x7e\x50\xff\xda\x4f\xfe\x11\x95\xfb\x35\xf9\x6d\x32\xce\xef\x8f\x3d\x1b\xdb\x38\xfa\xcd\x26\x36\x12\x93\xa0\x96\xea\x42\xbe\xd6\x85\x86\xc1\xc1\xe2\x55\x41\xd1\x7f\x8d\x0e\x00\x81\x58\xb4\x10\xbb\x64\x92\x05\x07\xa9\xd5\xd9\x40\x28\x8b\x9b\x4c\x8d\x8e\x4e\x69\xf9\xc9\x35\xea\xda\x2f\x61\x87\x35\x2d\x6b\x25\x32\xf0\x7e\x89\x1a\xcb\xc0\xea\x66\x88\x99\x39\xe0\x3b\x24\x3b\x05\x74\xd3\x72\xf6\x48\x15\xdc\x02\x0a\xbf\xc8\x49\x42\x10\x22\xeb\xe9\x44\x71\x55\xaf\x67\x67\xe6\x2a\x40\x31\x81\xb9\x6f\x65\x86\x0f\x0f\x9d\x58\x4c\x51\xc1\x2e\x4e\x60\x7e\xe8\x93\x39\x90\xda\xe5\xbe\xec\xe4\xdd\xbc\x1d\xba\x40\xa6\x85\xd9\xb2\xec\xb4\x26\x74\xee\xc1\xec\xe3\x40\xb9\x49\xa3\xe1\x26\x76\x8a\xeb\x95\xc8\x72\xb0\x85\x36\x19\x3f\x55\x06\x7b\xcd\x3e\xd0\xdf\x7e\x8d\x2a\xea\xa6\x24\xc6\xf6\xfb\xda\xe0\x45\xcf\x32\x0e\xbc\xf4\x41\x7d\x71\x3d\x86\xf9\xb4\xaf\x07\xa0\xd1\x34\x8a\x02\x28\x56\xd4\xcc\x36\x44\x98\x44\xcb\x9d\xc5\xfc\x45\x2d\xc4\x5c\xfe\xce\xaa\x44\xda\x66\x52\x2d\x32\x6e\x13\x32\xac\xaf\x13\x72\x87\x79\xd2\x92\x54\x9f\xc7\xb9\xf3\x21\xae\xdd\x69\x44\xe9\x46\x94\x1c\x62\x84\x03\xe0\xbf\x66\xfb\xe0\x79\xf9\x57\x9e\x22\x9e\x23\x2d\x2a\x73\xeb\x74\x38\xf0\xea\x5d\xb3\x8f\x87\x26\x3e\x3c\x54\x11\xb7\x98\xbd\x7f\x78\x64\xa3\xf1\x8f\xa9\x5e\x4f\x18\x3f\xa7\x1f\x3a\x29\x27\x27\xb7\x49\x40\x16\x18\x1f\xd3\xed\x86\x61\xbd\xc3\x4e\x4a\x53\x37\x78\x5c\x00\xd3\x50\x45\x1c\x55\xc0\x9b\xd7\x62\x29\x88\x2e\xa4\x0d\x6a\x15\x6c\x33\x3c\xe7\x31\xfa\xc1\xaf\xdf\x7a\x3e\x37\x3e\xe5\xbc\xfd\xfb\x9b\x72\x10\x35\x90\x25\x6e\x87\x0d\x74\x1c\xfd\xe3\x0b\xee\xf5\x92\x28\x8d\x22\x8a\x49\x7b\xcd\xbb\xd8\x24\x6b\x5e\x58\x40\xec\x1b\x6c\xed\x8e\xcb\x56\x62\xa6\xb4\x42\x3d\x7d\xa2\xef\x27\x27\x46\x50\xbc\x5e\x37\x9b\x27\x72\xf0\xea\xa7\xe7\x4d\xf4\xae\x7e\x95\x8f\x91\x2e\x58\xc4\x6a\x06\xda\x7a\x06\x5c\x8d\xfe\xef\xf5\xb3\x0f\xb4\x0a\x20\x53\xd8\x35\x80\x02\xca\x97\x81\xb6\x1c\x4b\x8f\xb7\xee\xd0\xc3\x88\x6c\x76\x3e\xb0\x28\xce\xa1\x9f\x76\x5f\xaa\xc3\x53\x44\x09\x70\xa3\x95\xd9\x8c\x54\xba\x8a\x9a\x6b\xce\xc3\x07\xdf\x13\x6d\xea\x0f\x51\x9c\xe2\x81\x87\xf6\x82\x7a\x70\xd8\xfa\xe2\xa8\x32\xc1\x5e\x53\xc2\x85\xe9\x61\x8a\x17\x82\x12\xab\x92\x79\x2b\xed\x07\xca\x1e\x93\x23\x9c\x4b\xd2\x89\x86\xac\x55\xf9\x50\x23\x8f\x9e\xd3\xab\x22\x57\x91\x5a\x0b\x48\xd7\xa2\xb8\x06\xbb\x74\xae\xe9\xca\x06\x41\x8d\x6a\x00\x42\xc4\x40\xa9\xfe\xae\x88\x42\xc2\x83\xe0\x8a\xd8\x5c\xbb\x5a\xb5\x9c\x1d\xa5\xbe\x67\x50\xb1\x4e\xec\x96\x65\xaa\x87\x5b\xb0\x76\x88\xe3\x1b\xcb\x38\x21\x02\x8e\xc9\xe7\xf5\xc7\xe1\x1d\xe8\xeb\x54\x0e\x0b\xea\xd1\x2e\xad\xbb\xec\x22\x21\xb3\x64\x36\x29\x34\x5e\x3a\x22\xe8\x03\x4b\x86\xb1\x67\x7d\x4f\x48\x6d\xfb\x4b\xde\xe6\x4c\xb0\xaf\x40\x66\xab\xe9\x1a\x4e\xae\x1a\x7e\x05\xc5\x67\x2a\x95\x6d\xc2\x61\x35\x20\xfe\x33\xc3\x2c\x7f\x9b\xbe\x9f\x9a\xd5\xf0\x63\x28\xa1\x94\xb1\x5c\xc1\x18\x6b\x5b\x33\xb4\x4d\xcf\xbe\xf7\xb2\x94\x58\xaa\xcf\xad\xc8\x75\x93\x1a\x08\xf4\xd2\xd9\xf6\x95\x03\x3b\xf3\x4e\xfb\x15\xe4\x28\xed\xd5\x79\xd9\xbf\xb7\x8f\xb2\x70\x16\x4c\x2d\x65\xf6\xec\x33\x1e\xaf\xea\x46\x69\xc6\x9a\x6b\xdd\xf3\x57\xe0\x1d\x28\xcd\xf8\x83\x3d\x94\x4c\x2f\x6e\xfd\x51\x3d\xa8\xff\xcb\x33\xad\x32\x42\x0e\xd3\x00\x0a\xe5\x71\x76\x3b\x83\xc9\x2a\x67\x50\xc3\xa5\xeb\x4d\x8d\x67\xd6\xd9\x1b\x9a\x5a\xbe\xdd\xc5\x15\x00\xcf\x97\x0f\x47\x44\x34\x1d\x4e\xb6\x6f\x91\x31\xf3\x45\x0f\x59\x48\x10\x23\x53\x40\x49\x83\xe6\xc8\xdf\x51\x6c\xa8\x9f\x3a\x43\x3d\xb9\xd4\xea\x30\x4d\xe0\xd2\xb8\x44\xf3\x91\x20\x79\xdb\x7b\xe6\x50\xf9\x0f\xfb\x4c\xac\x79\x93\xf6\xf8\x96\x0d\x55\x7c\x41\x9b\x1a\x86\xad\x4b\xd1\xf9\x5d\xed\x3a\x4f\xc9\x64\x72\xd4\x22\x53\x59\x2f\x01\x00\x00\xff\xff\xc6\xfd\xa0\x37\x00\x04\x00\x00") - b.SetBytes(int64(len(in))) // 1024 - b.ReportAllocs() - for i := 0; i < b.N; i++ { - _ = Encode(in) - } -} diff --git a/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/doc.go b/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/doc.go deleted file mode 100644 index 315c6107..00000000 --- a/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) 2013-2014 Conformal Systems LLC. -// Use of this source code is governed by an ISC -// license that can be found in the LICENSE file. - -/* -Package base58 provides base58-check encoding. -The alphabet is modifyiable for - -Base58 Usage - -To decode a base58 string: - - rawData := base58.Base58Decode(encodedData) - -Similarly, to encode the same data: - - encodedData := base58.Base58Encode(rawData) - -*/ -package base58 diff --git a/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/package.json b/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/package.json deleted file mode 100644 index 3f99bd7d..00000000 --- a/vendor/gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "go-base58", - "author": "whyrusleeping", - "version": "1.0.0", - "language": "go", - "gx": { - "dvcsimport": "github.com/jbenet/go-base58" - } -} \ No newline at end of file diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/.travis.yml b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/.travis.yml deleted file mode 100644 index 8687342e..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -language: go - -go: - - 1.1 - - 1.2 - - tip diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/AUTHORS b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/AUTHORS deleted file mode 100644 index b003eca0..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/AUTHORS +++ /dev/null @@ -1,8 +0,0 @@ -# This is the official list of Gorilla WebSocket authors for copyright -# purposes. -# -# Please keep the list sorted. - -Gary Burd -Joachim Bauch - diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/LICENSE b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/LICENSE deleted file mode 100644 index 9171c972..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2013 The Gorilla WebSocket 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. - -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 HOLDER 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/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/README.md b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/README.md deleted file mode 100644 index 9d71959e..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# Gorilla WebSocket - -Gorilla WebSocket is a [Go](http://golang.org/) implementation of the -[WebSocket](http://www.rfc-editor.org/rfc/rfc6455.txt) protocol. - -### Documentation - -* [API Reference](http://godoc.org/github.com/gorilla/websocket) -* [Chat example](https://github.com/gorilla/websocket/tree/master/examples/chat) -* [Command example](https://github.com/gorilla/websocket/tree/master/examples/command) -* [Client and server example](https://github.com/gorilla/websocket/tree/master/examples/echo) -* [File watch example](https://github.com/gorilla/websocket/tree/master/examples/filewatch) - -### Status - -The Gorilla WebSocket package provides a complete and tested implementation of -the [WebSocket](http://www.rfc-editor.org/rfc/rfc6455.txt) protocol. The -package API is stable. - -### Installation - - go get github.com/gorilla/websocket - -### Protocol Compliance - -The Gorilla WebSocket package passes the server tests in the [Autobahn Test -Suite](http://autobahn.ws/testsuite) using the application in the [examples/autobahn -subdirectory](https://github.com/gorilla/websocket/tree/master/examples/autobahn). - -### Gorilla WebSocket compared with other packages - - - - - - - - - - - - - - - - - - -
github.com/gorillagolang.org/x/net
RFC 6455 Features
Passes Autobahn Test SuiteYesNo
Receive fragmented messageYesNo, see note 1
Send close messageYesNo
Send pings and receive pongsYesNo
Get the type of a received data messageYesYes, see note 2
Other Features
Limit size of received messageYesNo
Read message using io.ReaderYesNo, see note 3
Write message using io.WriteCloserYesNo, see note 3
- -Notes: - -1. Large messages are fragmented in [Chrome's new WebSocket implementation](http://www.ietf.org/mail-archive/web/hybi/current/msg10503.html). -2. The application can get the type of a received data message by implementing - a [Codec marshal](http://godoc.org/golang.org/x/net/websocket#Codec.Marshal) - function. -3. The go.net io.Reader and io.Writer operate across WebSocket frame boundaries. - Read returns when the input buffer is full or a frame boundary is - encountered. Each call to Write sends a single frame message. The Gorilla - io.Reader and io.WriteCloser operate on a single WebSocket message. - diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/bench_test.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/bench_test.go deleted file mode 100644 index f66fc36b..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/bench_test.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2014 The Gorilla WebSocket 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 websocket - -import ( - "testing" -) - -func BenchmarkMaskBytes(b *testing.B) { - var key [4]byte - data := make([]byte, 1024) - pos := 0 - for i := 0; i < b.N; i++ { - pos = maskBytes(key, pos, data) - } - b.SetBytes(int64(len(data))) -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/client.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/client.go deleted file mode 100644 index 3bf9b2e8..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/client.go +++ /dev/null @@ -1,334 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 websocket - -import ( - "bufio" - "bytes" - "crypto/tls" - "errors" - "io" - "io/ioutil" - "net" - "net/http" - "net/url" - "strings" - "time" -) - -// ErrBadHandshake is returned when the server response to opening handshake is -// invalid. -var ErrBadHandshake = errors.New("websocket: bad handshake") - -// NewClient creates a new client connection using the given net connection. -// The URL u specifies the host and request URI. Use requestHeader to specify -// the origin (Origin), subprotocols (Sec-WebSocket-Protocol) and cookies -// (Cookie). Use the response.Header to get the selected subprotocol -// (Sec-WebSocket-Protocol) and cookies (Set-Cookie). -// -// If the WebSocket handshake fails, ErrBadHandshake is returned along with a -// non-nil *http.Response so that callers can handle redirects, authentication, -// etc. -// -// Deprecated: Use Dialer instead. -func NewClient(netConn net.Conn, u *url.URL, requestHeader http.Header, readBufSize, writeBufSize int) (c *Conn, response *http.Response, err error) { - d := Dialer{ - ReadBufferSize: readBufSize, - WriteBufferSize: writeBufSize, - NetDial: func(net, addr string) (net.Conn, error) { - return netConn, nil - }, - } - return d.Dial(u.String(), requestHeader) -} - -// A Dialer contains options for connecting to WebSocket server. -type Dialer struct { - // NetDial specifies the dial function for creating TCP connections. If - // NetDial is nil, net.Dial is used. - NetDial func(network, addr string) (net.Conn, error) - - // Proxy specifies a function to return a proxy for a given - // Request. If the function returns a non-nil error, the - // request is aborted with the provided error. - // If Proxy is nil or returns a nil *URL, no proxy is used. - Proxy func(*http.Request) (*url.URL, error) - - // TLSClientConfig specifies the TLS configuration to use with tls.Client. - // If nil, the default configuration is used. - TLSClientConfig *tls.Config - - // HandshakeTimeout specifies the duration for the handshake to complete. - HandshakeTimeout time.Duration - - // Input and output buffer sizes. If the buffer size is zero, then a - // default value of 4096 is used. - ReadBufferSize, WriteBufferSize int - - // Subprotocols specifies the client's requested subprotocols. - Subprotocols []string -} - -var errMalformedURL = errors.New("malformed ws or wss URL") - -// parseURL parses the URL. -// -// This function is a replacement for the standard library url.Parse function. -// In Go 1.4 and earlier, url.Parse loses information from the path. -func parseURL(s string) (*url.URL, error) { - // From the RFC: - // - // ws-URI = "ws:" "//" host [ ":" port ] path [ "?" query ] - // wss-URI = "wss:" "//" host [ ":" port ] path [ "?" query ] - - var u url.URL - switch { - case strings.HasPrefix(s, "ws://"): - u.Scheme = "ws" - s = s[len("ws://"):] - case strings.HasPrefix(s, "wss://"): - u.Scheme = "wss" - s = s[len("wss://"):] - default: - return nil, errMalformedURL - } - - u.Host = s - u.Opaque = "/" - if i := strings.Index(s, "/"); i >= 0 { - u.Host = s[:i] - u.Opaque = s[i:] - } - - if strings.Contains(u.Host, "@") { - // Don't bother parsing user information because user information is - // not allowed in websocket URIs. - return nil, errMalformedURL - } - - return &u, nil -} - -func hostPortNoPort(u *url.URL) (hostPort, hostNoPort string) { - hostPort = u.Host - hostNoPort = u.Host - if i := strings.LastIndex(u.Host, ":"); i > strings.LastIndex(u.Host, "]") { - hostNoPort = hostNoPort[:i] - } else { - switch u.Scheme { - case "wss": - hostPort += ":443" - case "https": - hostPort += ":443" - default: - hostPort += ":80" - } - } - return hostPort, hostNoPort -} - -// DefaultDialer is a dialer with all fields set to the default zero values. -var DefaultDialer = &Dialer{ - Proxy: http.ProxyFromEnvironment, -} - -// Dial creates a new client connection. Use requestHeader to specify the -// origin (Origin), subprotocols (Sec-WebSocket-Protocol) and cookies (Cookie). -// Use the response.Header to get the selected subprotocol -// (Sec-WebSocket-Protocol) and cookies (Set-Cookie). -// -// If the WebSocket handshake fails, ErrBadHandshake is returned along with a -// non-nil *http.Response so that callers can handle redirects, authentication, -// etcetera. The response body may not contain the entire response and does not -// need to be closed by the application. -func (d *Dialer) Dial(urlStr string, requestHeader http.Header) (*Conn, *http.Response, error) { - - if d == nil { - d = &Dialer{ - Proxy: http.ProxyFromEnvironment, - } - } - - challengeKey, err := generateChallengeKey() - if err != nil { - return nil, nil, err - } - - u, err := parseURL(urlStr) - if err != nil { - return nil, nil, err - } - - switch u.Scheme { - case "ws": - u.Scheme = "http" - case "wss": - u.Scheme = "https" - default: - return nil, nil, errMalformedURL - } - - if u.User != nil { - // User name and password are not allowed in websocket URIs. - return nil, nil, errMalformedURL - } - - req := &http.Request{ - Method: "GET", - URL: u, - Proto: "HTTP/1.1", - ProtoMajor: 1, - ProtoMinor: 1, - Header: make(http.Header), - Host: u.Host, - } - - // Set the request headers using the capitalization for names and values in - // RFC examples. Although the capitalization shouldn't matter, there are - // servers that depend on it. The Header.Set method is not used because the - // method canonicalizes the header names. - req.Header["Upgrade"] = []string{"websocket"} - req.Header["Connection"] = []string{"Upgrade"} - req.Header["Sec-WebSocket-Key"] = []string{challengeKey} - req.Header["Sec-WebSocket-Version"] = []string{"13"} - if len(d.Subprotocols) > 0 { - req.Header["Sec-WebSocket-Protocol"] = []string{strings.Join(d.Subprotocols, ", ")} - } - for k, vs := range requestHeader { - switch { - case k == "Host": - if len(vs) > 0 { - req.Host = vs[0] - } - case k == "Upgrade" || - k == "Connection" || - k == "Sec-Websocket-Key" || - k == "Sec-Websocket-Version" || - (k == "Sec-Websocket-Protocol" && len(d.Subprotocols) > 0): - return nil, nil, errors.New("websocket: duplicate header not allowed: " + k) - default: - req.Header[k] = vs - } - } - - hostPort, hostNoPort := hostPortNoPort(u) - - var proxyURL *url.URL - // Check wether the proxy method has been configured - if d.Proxy != nil { - proxyURL, err = d.Proxy(req) - } - if err != nil { - return nil, nil, err - } - - var targetHostPort string - if proxyURL != nil { - targetHostPort, _ = hostPortNoPort(proxyURL) - } else { - targetHostPort = hostPort - } - - var deadline time.Time - if d.HandshakeTimeout != 0 { - deadline = time.Now().Add(d.HandshakeTimeout) - } - - netDial := d.NetDial - if netDial == nil { - netDialer := &net.Dialer{Deadline: deadline} - netDial = netDialer.Dial - } - - netConn, err := netDial("tcp", targetHostPort) - if err != nil { - return nil, nil, err - } - - defer func() { - if netConn != nil { - netConn.Close() - } - }() - - if err := netConn.SetDeadline(deadline); err != nil { - return nil, nil, err - } - - if proxyURL != nil { - connectReq := &http.Request{ - Method: "CONNECT", - URL: &url.URL{Opaque: hostPort}, - Host: hostPort, - Header: make(http.Header), - } - - connectReq.Write(netConn) - - // Read response. - // Okay to use and discard buffered reader here, because - // TLS server will not speak until spoken to. - br := bufio.NewReader(netConn) - resp, err := http.ReadResponse(br, connectReq) - if err != nil { - return nil, nil, err - } - if resp.StatusCode != 200 { - f := strings.SplitN(resp.Status, " ", 2) - return nil, nil, errors.New(f[1]) - } - } - - if u.Scheme == "https" { - cfg := d.TLSClientConfig - if cfg == nil { - cfg = &tls.Config{ServerName: hostNoPort} - } else if cfg.ServerName == "" { - shallowCopy := *cfg - cfg = &shallowCopy - cfg.ServerName = hostNoPort - } - tlsConn := tls.Client(netConn, cfg) - netConn = tlsConn - if err := tlsConn.Handshake(); err != nil { - return nil, nil, err - } - if !cfg.InsecureSkipVerify { - if err := tlsConn.VerifyHostname(cfg.ServerName); err != nil { - return nil, nil, err - } - } - } - - conn := newConn(netConn, false, d.ReadBufferSize, d.WriteBufferSize) - - if err := req.Write(netConn); err != nil { - return nil, nil, err - } - - resp, err := http.ReadResponse(conn.br, req) - if err != nil { - return nil, nil, err - } - if resp.StatusCode != 101 || - !strings.EqualFold(resp.Header.Get("Upgrade"), "websocket") || - !strings.EqualFold(resp.Header.Get("Connection"), "upgrade") || - resp.Header.Get("Sec-Websocket-Accept") != computeAcceptKey(challengeKey) { - // Before closing the network connection on return from this - // function, slurp up some of the response to aid application - // debugging. - buf := make([]byte, 1024) - n, _ := io.ReadFull(resp.Body, buf) - resp.Body = ioutil.NopCloser(bytes.NewReader(buf[:n])) - return nil, resp, ErrBadHandshake - } - - resp.Body = ioutil.NopCloser(bytes.NewReader([]byte{})) - conn.subprotocol = resp.Header.Get("Sec-Websocket-Protocol") - - netConn.SetDeadline(time.Time{}) - netConn = nil // to avoid close in defer. - return conn, resp, nil -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/client_server_test.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/client_server_test.go deleted file mode 100644 index 05a7888f..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/client_server_test.go +++ /dev/null @@ -1,392 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 websocket - -import ( - "crypto/tls" - "crypto/x509" - "io" - "io/ioutil" - "net" - "net/http" - "net/http/httptest" - "net/url" - "reflect" - "strings" - "testing" - "time" -) - -var cstUpgrader = Upgrader{ - Subprotocols: []string{"p0", "p1"}, - ReadBufferSize: 1024, - WriteBufferSize: 1024, - Error: func(w http.ResponseWriter, r *http.Request, status int, reason error) { - http.Error(w, reason.Error(), status) - }, -} - -var cstDialer = Dialer{ - Subprotocols: []string{"p1", "p2"}, - ReadBufferSize: 1024, - WriteBufferSize: 1024, -} - -type cstHandler struct{ *testing.T } - -type cstServer struct { - *httptest.Server - URL string -} - -func newServer(t *testing.T) *cstServer { - var s cstServer - s.Server = httptest.NewServer(cstHandler{t}) - s.URL = makeWsProto(s.Server.URL) - return &s -} - -func newTLSServer(t *testing.T) *cstServer { - var s cstServer - s.Server = httptest.NewTLSServer(cstHandler{t}) - s.URL = makeWsProto(s.Server.URL) - return &s -} - -func (t cstHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - subprotos := Subprotocols(r) - if !reflect.DeepEqual(subprotos, cstDialer.Subprotocols) { - t.Logf("subprotols=%v, want %v", subprotos, cstDialer.Subprotocols) - http.Error(w, "bad protocol", 400) - return - } - ws, err := cstUpgrader.Upgrade(w, r, http.Header{"Set-Cookie": {"sessionID=1234"}}) - if err != nil { - t.Logf("Upgrade: %v", err) - return - } - defer ws.Close() - - if ws.Subprotocol() != "p1" { - t.Logf("Subprotocol() = %s, want p1", ws.Subprotocol()) - ws.Close() - return - } - op, rd, err := ws.NextReader() - if err != nil { - t.Logf("NextReader: %v", err) - return - } - wr, err := ws.NextWriter(op) - if err != nil { - t.Logf("NextWriter: %v", err) - return - } - if _, err = io.Copy(wr, rd); err != nil { - t.Logf("NextWriter: %v", err) - return - } - if err := wr.Close(); err != nil { - t.Logf("Close: %v", err) - return - } -} - -func makeWsProto(s string) string { - return "ws" + strings.TrimPrefix(s, "http") -} - -func sendRecv(t *testing.T, ws *Conn) { - const message = "Hello World!" - if err := ws.SetWriteDeadline(time.Now().Add(time.Second)); err != nil { - t.Fatalf("SetWriteDeadline: %v", err) - } - if err := ws.WriteMessage(TextMessage, []byte(message)); err != nil { - t.Fatalf("WriteMessage: %v", err) - } - if err := ws.SetReadDeadline(time.Now().Add(time.Second)); err != nil { - t.Fatalf("SetReadDeadline: %v", err) - } - _, p, err := ws.ReadMessage() - if err != nil { - t.Fatalf("ReadMessage: %v", err) - } - if string(p) != message { - t.Fatalf("message=%s, want %s", p, message) - } -} - -func TestProxyDial(t *testing.T) { - - s := newServer(t) - defer s.Close() - - surl, _ := url.Parse(s.URL) - - cstDialer.Proxy = http.ProxyURL(surl) - - connect := false - origHandler := s.Server.Config.Handler - - // Capture the request Host header. - s.Server.Config.Handler = http.HandlerFunc( - func(w http.ResponseWriter, r *http.Request) { - if r.Method == "CONNECT" { - connect = true - w.WriteHeader(200) - return - } - - if !connect { - t.Log("connect not recieved") - http.Error(w, "connect not recieved", 405) - return - } - origHandler.ServeHTTP(w, r) - }) - - ws, _, err := cstDialer.Dial(s.URL, nil) - if err != nil { - t.Fatalf("Dial: %v", err) - } - defer ws.Close() - sendRecv(t, ws) - - cstDialer.Proxy = http.ProxyFromEnvironment -} - -func TestDial(t *testing.T) { - s := newServer(t) - defer s.Close() - - ws, _, err := cstDialer.Dial(s.URL, nil) - if err != nil { - t.Fatalf("Dial: %v", err) - } - defer ws.Close() - sendRecv(t, ws) -} - -func TestDialTLS(t *testing.T) { - s := newTLSServer(t) - defer s.Close() - - certs := x509.NewCertPool() - for _, c := range s.TLS.Certificates { - roots, err := x509.ParseCertificates(c.Certificate[len(c.Certificate)-1]) - if err != nil { - t.Fatalf("error parsing server's root cert: %v", err) - } - for _, root := range roots { - certs.AddCert(root) - } - } - - u, _ := url.Parse(s.URL) - d := cstDialer - d.NetDial = func(network, addr string) (net.Conn, error) { return net.Dial(network, u.Host) } - d.TLSClientConfig = &tls.Config{RootCAs: certs} - ws, _, err := d.Dial("wss://example.com/", nil) - if err != nil { - t.Fatalf("Dial: %v", err) - } - defer ws.Close() - sendRecv(t, ws) -} - -func xTestDialTLSBadCert(t *testing.T) { - // This test is deactivated because of noisy logging from the net/http package. - s := newTLSServer(t) - defer s.Close() - - ws, _, err := cstDialer.Dial(s.URL, nil) - if err == nil { - ws.Close() - t.Fatalf("Dial: nil") - } -} - -func xTestDialTLSNoVerify(t *testing.T) { - s := newTLSServer(t) - defer s.Close() - - d := cstDialer - d.TLSClientConfig = &tls.Config{InsecureSkipVerify: true} - ws, _, err := d.Dial(s.URL, nil) - if err != nil { - t.Fatalf("Dial: %v", err) - } - defer ws.Close() - sendRecv(t, ws) -} - -func TestDialTimeout(t *testing.T) { - s := newServer(t) - defer s.Close() - - d := cstDialer - d.HandshakeTimeout = -1 - ws, _, err := d.Dial(s.URL, nil) - if err == nil { - ws.Close() - t.Fatalf("Dial: nil") - } -} - -func TestDialBadScheme(t *testing.T) { - s := newServer(t) - defer s.Close() - - ws, _, err := cstDialer.Dial(s.Server.URL, nil) - if err == nil { - ws.Close() - t.Fatalf("Dial: nil") - } -} - -func TestDialBadOrigin(t *testing.T) { - s := newServer(t) - defer s.Close() - - ws, resp, err := cstDialer.Dial(s.URL, http.Header{"Origin": {"bad"}}) - if err == nil { - ws.Close() - t.Fatalf("Dial: nil") - } - if resp == nil { - t.Fatalf("resp=nil, err=%v", err) - } - if resp.StatusCode != http.StatusForbidden { - t.Fatalf("status=%d, want %d", resp.StatusCode, http.StatusForbidden) - } -} - -func TestDialBadHeader(t *testing.T) { - s := newServer(t) - defer s.Close() - - for _, k := range []string{"Upgrade", - "Connection", - "Sec-Websocket-Key", - "Sec-Websocket-Version", - "Sec-Websocket-Protocol"} { - h := http.Header{} - h.Set(k, "bad") - ws, _, err := cstDialer.Dial(s.URL, http.Header{"Origin": {"bad"}}) - if err == nil { - ws.Close() - t.Errorf("Dial with header %s returned nil", k) - } - } -} - -func TestBadMethod(t *testing.T) { - s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - ws, err := cstUpgrader.Upgrade(w, r, nil) - if err == nil { - t.Errorf("handshake succeeded, expect fail") - ws.Close() - } - })) - defer s.Close() - - resp, err := http.PostForm(s.URL, url.Values{}) - if err != nil { - t.Fatalf("PostForm returned error %v", err) - } - resp.Body.Close() - if resp.StatusCode != http.StatusMethodNotAllowed { - t.Errorf("Status = %d, want %d", resp.StatusCode, http.StatusMethodNotAllowed) - } -} - -func TestHandshake(t *testing.T) { - s := newServer(t) - defer s.Close() - - ws, resp, err := cstDialer.Dial(s.URL, http.Header{"Origin": {s.URL}}) - if err != nil { - t.Fatalf("Dial: %v", err) - } - defer ws.Close() - - var sessionID string - for _, c := range resp.Cookies() { - if c.Name == "sessionID" { - sessionID = c.Value - } - } - if sessionID != "1234" { - t.Error("Set-Cookie not received from the server.") - } - - if ws.Subprotocol() != "p1" { - t.Errorf("ws.Subprotocol() = %s, want p1", ws.Subprotocol()) - } - sendRecv(t, ws) -} - -func TestRespOnBadHandshake(t *testing.T) { - const expectedStatus = http.StatusGone - const expectedBody = "This is the response body." - - s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(expectedStatus) - io.WriteString(w, expectedBody) - })) - defer s.Close() - - ws, resp, err := cstDialer.Dial(makeWsProto(s.URL), nil) - if err == nil { - ws.Close() - t.Fatalf("Dial: nil") - } - - if resp == nil { - t.Fatalf("resp=nil, err=%v", err) - } - - if resp.StatusCode != expectedStatus { - t.Errorf("resp.StatusCode=%d, want %d", resp.StatusCode, expectedStatus) - } - - p, err := ioutil.ReadAll(resp.Body) - if err != nil { - t.Fatalf("ReadFull(resp.Body) returned error %v", err) - } - - if string(p) != expectedBody { - t.Errorf("resp.Body=%s, want %s", p, expectedBody) - } -} - -// TestHostHeader confirms that the host header provided in the call to Dial is -// sent to the server. -func TestHostHeader(t *testing.T) { - s := newServer(t) - defer s.Close() - - specifiedHost := make(chan string, 1) - origHandler := s.Server.Config.Handler - - // Capture the request Host header. - s.Server.Config.Handler = http.HandlerFunc( - func(w http.ResponseWriter, r *http.Request) { - specifiedHost <- r.Host - origHandler.ServeHTTP(w, r) - }) - - ws, _, err := cstDialer.Dial(s.URL, http.Header{"Host": {"testhost"}}) - if err != nil { - t.Fatalf("Dial: %v", err) - } - defer ws.Close() - - if gotHost := <-specifiedHost; gotHost != "testhost" { - t.Fatalf("gotHost = %q, want \"testhost\"", gotHost) - } - - sendRecv(t, ws) -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/client_test.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/client_test.go deleted file mode 100644 index 07a9cb45..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/client_test.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2014 The Gorilla WebSocket 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 websocket - -import ( - "net/url" - "reflect" - "testing" -) - -var parseURLTests = []struct { - s string - u *url.URL -}{ - {"ws://example.com/", &url.URL{Scheme: "ws", Host: "example.com", Opaque: "/"}}, - {"ws://example.com", &url.URL{Scheme: "ws", Host: "example.com", Opaque: "/"}}, - {"ws://example.com:7777/", &url.URL{Scheme: "ws", Host: "example.com:7777", Opaque: "/"}}, - {"wss://example.com/", &url.URL{Scheme: "wss", Host: "example.com", Opaque: "/"}}, - {"wss://example.com/a/b", &url.URL{Scheme: "wss", Host: "example.com", Opaque: "/a/b"}}, - {"ss://example.com/a/b", nil}, - {"ws://webmaster@example.com/", nil}, -} - -func TestParseURL(t *testing.T) { - for _, tt := range parseURLTests { - u, err := parseURL(tt.s) - if tt.u != nil && err != nil { - t.Errorf("parseURL(%q) returned error %v", tt.s, err) - continue - } - if tt.u == nil && err == nil { - t.Errorf("parseURL(%q) did not return error", tt.s) - continue - } - if !reflect.DeepEqual(u, tt.u) { - t.Errorf("parseURL(%q) returned %v, want %v", tt.s, u, tt.u) - continue - } - } -} - -var hostPortNoPortTests = []struct { - u *url.URL - hostPort, hostNoPort string -}{ - {&url.URL{Scheme: "ws", Host: "example.com"}, "example.com:80", "example.com"}, - {&url.URL{Scheme: "wss", Host: "example.com"}, "example.com:443", "example.com"}, - {&url.URL{Scheme: "ws", Host: "example.com:7777"}, "example.com:7777", "example.com"}, - {&url.URL{Scheme: "wss", Host: "example.com:7777"}, "example.com:7777", "example.com"}, -} - -func TestHostPortNoPort(t *testing.T) { - for _, tt := range hostPortNoPortTests { - hostPort, hostNoPort := hostPortNoPort(tt.u) - if hostPort != tt.hostPort { - t.Errorf("hostPortNoPort(%v) returned hostPort %q, want %q", tt.u, hostPort, tt.hostPort) - } - if hostNoPort != tt.hostNoPort { - t.Errorf("hostPortNoPort(%v) returned hostNoPort %q, want %q", tt.u, hostNoPort, tt.hostNoPort) - } - } -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/conn.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/conn.go deleted file mode 100644 index e8b6b3e0..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/conn.go +++ /dev/null @@ -1,831 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 websocket - -import ( - "bufio" - "encoding/binary" - "errors" - "io" - "io/ioutil" - "math/rand" - "net" - "strconv" - "time" -) - -const ( - maxFrameHeaderSize = 2 + 8 + 4 // Fixed header + length + mask - maxControlFramePayloadSize = 125 - finalBit = 1 << 7 - maskBit = 1 << 7 - writeWait = time.Second - - defaultReadBufferSize = 4096 - defaultWriteBufferSize = 4096 - - continuationFrame = 0 - noFrame = -1 -) - -// Close codes defined in RFC 6455, section 11.7. -const ( - CloseNormalClosure = 1000 - CloseGoingAway = 1001 - CloseProtocolError = 1002 - CloseUnsupportedData = 1003 - CloseNoStatusReceived = 1005 - CloseAbnormalClosure = 1006 - CloseInvalidFramePayloadData = 1007 - ClosePolicyViolation = 1008 - CloseMessageTooBig = 1009 - CloseMandatoryExtension = 1010 - CloseInternalServerErr = 1011 - CloseTLSHandshake = 1015 -) - -// The message types are defined in RFC 6455, section 11.8. -const ( - // TextMessage denotes a text data message. The text message payload is - // interpreted as UTF-8 encoded text data. - TextMessage = 1 - - // BinaryMessage denotes a binary data message. - BinaryMessage = 2 - - // CloseMessage denotes a close control message. The optional message - // payload contains a numeric code and text. Use the FormatCloseMessage - // function to format a close message payload. - CloseMessage = 8 - - // PingMessage denotes a ping control message. The optional message payload - // is UTF-8 encoded text. - PingMessage = 9 - - // PongMessage denotes a ping control message. The optional message payload - // is UTF-8 encoded text. - PongMessage = 10 -) - -// ErrCloseSent is returned when the application writes a message to the -// connection after sending a close message. -var ErrCloseSent = errors.New("websocket: close sent") - -// ErrReadLimit is returned when reading a message that is larger than the -// read limit set for the connection. -var ErrReadLimit = errors.New("websocket: read limit exceeded") - -// netError satisfies the net Error interface. -type netError struct { - msg string - temporary bool - timeout bool -} - -func (e *netError) Error() string { return e.msg } -func (e *netError) Temporary() bool { return e.temporary } -func (e *netError) Timeout() bool { return e.timeout } - -// CloseError represents close frame. -type CloseError struct { - - // Code is defined in RFC 6455, section 11.7. - Code int - - // Text is the optional text payload. - Text string -} - -func (e *CloseError) Error() string { - return "websocket: close " + strconv.Itoa(e.Code) + " " + e.Text -} - -var ( - errWriteTimeout = &netError{msg: "websocket: write timeout", timeout: true, temporary: true} - errUnexpectedEOF = &CloseError{Code: CloseAbnormalClosure, Text: io.ErrUnexpectedEOF.Error()} - errBadWriteOpCode = errors.New("websocket: bad write message type") - errWriteClosed = errors.New("websocket: write closed") - errInvalidControlFrame = errors.New("websocket: invalid control frame") -) - -func hideTempErr(err error) error { - if e, ok := err.(net.Error); ok && e.Temporary() { - err = &netError{msg: e.Error(), timeout: e.Timeout()} - } - return err -} - -func isControl(frameType int) bool { - return frameType == CloseMessage || frameType == PingMessage || frameType == PongMessage -} - -func isData(frameType int) bool { - return frameType == TextMessage || frameType == BinaryMessage -} - -func maskBytes(key [4]byte, pos int, b []byte) int { - for i := range b { - b[i] ^= key[pos&3] - pos++ - } - return pos & 3 -} - -func newMaskKey() [4]byte { - n := rand.Uint32() - return [4]byte{byte(n), byte(n >> 8), byte(n >> 16), byte(n >> 24)} -} - -// Conn represents a WebSocket connection. -type Conn struct { - conn net.Conn - isServer bool - subprotocol string - - // Write fields - mu chan bool // used as mutex to protect write to conn and closeSent - closeSent bool // true if close message was sent - - // Message writer fields. - writeErr error - writeBuf []byte // frame is constructed in this buffer. - writePos int // end of data in writeBuf. - writeFrameType int // type of the current frame. - writeSeq int // incremented to invalidate message writers. - writeDeadline time.Time - - // Read fields - readErr error - br *bufio.Reader - readRemaining int64 // bytes remaining in current frame. - readFinal bool // true the current message has more frames. - readSeq int // incremented to invalidate message readers. - readLength int64 // Message size. - readLimit int64 // Maximum message size. - readMaskPos int - readMaskKey [4]byte - handlePong func(string) error - handlePing func(string) error -} - -func newConn(conn net.Conn, isServer bool, readBufferSize, writeBufferSize int) *Conn { - mu := make(chan bool, 1) - mu <- true - - if readBufferSize == 0 { - readBufferSize = defaultReadBufferSize - } - if writeBufferSize == 0 { - writeBufferSize = defaultWriteBufferSize - } - - c := &Conn{ - isServer: isServer, - br: bufio.NewReaderSize(conn, readBufferSize), - conn: conn, - mu: mu, - readFinal: true, - writeBuf: make([]byte, writeBufferSize+maxFrameHeaderSize), - writeFrameType: noFrame, - writePos: maxFrameHeaderSize, - } - c.SetPingHandler(nil) - c.SetPongHandler(nil) - return c -} - -// Subprotocol returns the negotiated protocol for the connection. -func (c *Conn) Subprotocol() string { - return c.subprotocol -} - -// Close closes the underlying network connection without sending or waiting for a close frame. -func (c *Conn) Close() error { - return c.conn.Close() -} - -// LocalAddr returns the local network address. -func (c *Conn) LocalAddr() net.Addr { - return c.conn.LocalAddr() -} - -// RemoteAddr returns the remote network address. -func (c *Conn) RemoteAddr() net.Addr { - return c.conn.RemoteAddr() -} - -// Write methods - -func (c *Conn) write(frameType int, deadline time.Time, bufs ...[]byte) error { - <-c.mu - defer func() { c.mu <- true }() - - if c.closeSent { - return ErrCloseSent - } else if frameType == CloseMessage { - c.closeSent = true - } - - c.conn.SetWriteDeadline(deadline) - for _, buf := range bufs { - if len(buf) > 0 { - n, err := c.conn.Write(buf) - if n != len(buf) { - // Close on partial write. - c.conn.Close() - } - if err != nil { - return err - } - } - } - return nil -} - -// WriteControl writes a control message with the given deadline. The allowed -// message types are CloseMessage, PingMessage and PongMessage. -func (c *Conn) WriteControl(messageType int, data []byte, deadline time.Time) error { - if !isControl(messageType) { - return errBadWriteOpCode - } - if len(data) > maxControlFramePayloadSize { - return errInvalidControlFrame - } - - b0 := byte(messageType) | finalBit - b1 := byte(len(data)) - if !c.isServer { - b1 |= maskBit - } - - buf := make([]byte, 0, maxFrameHeaderSize+maxControlFramePayloadSize) - buf = append(buf, b0, b1) - - if c.isServer { - buf = append(buf, data...) - } else { - key := newMaskKey() - buf = append(buf, key[:]...) - buf = append(buf, data...) - maskBytes(key, 0, buf[6:]) - } - - d := time.Hour * 1000 - if !deadline.IsZero() { - d = deadline.Sub(time.Now()) - if d < 0 { - return errWriteTimeout - } - } - - timer := time.NewTimer(d) - select { - case <-c.mu: - timer.Stop() - case <-timer.C: - return errWriteTimeout - } - defer func() { c.mu <- true }() - - if c.closeSent { - return ErrCloseSent - } else if messageType == CloseMessage { - c.closeSent = true - } - - c.conn.SetWriteDeadline(deadline) - n, err := c.conn.Write(buf) - if n != 0 && n != len(buf) { - c.conn.Close() - } - return hideTempErr(err) -} - -// NextWriter returns a writer for the next message to send. The writer's -// Close method flushes the complete message to the network. -// -// There can be at most one open writer on a connection. NextWriter closes the -// previous writer if the application has not already done so. -// -// The NextWriter method and the writers returned from the method cannot be -// accessed by more than one goroutine at a time. -func (c *Conn) NextWriter(messageType int) (io.WriteCloser, error) { - if c.writeErr != nil { - return nil, c.writeErr - } - - if c.writeFrameType != noFrame { - if err := c.flushFrame(true, nil); err != nil { - return nil, err - } - } - - if !isControl(messageType) && !isData(messageType) { - return nil, errBadWriteOpCode - } - - c.writeFrameType = messageType - return messageWriter{c, c.writeSeq}, nil -} - -func (c *Conn) flushFrame(final bool, extra []byte) error { - length := c.writePos - maxFrameHeaderSize + len(extra) - - // Check for invalid control frames. - if isControl(c.writeFrameType) && - (!final || length > maxControlFramePayloadSize) { - c.writeSeq++ - c.writeFrameType = noFrame - c.writePos = maxFrameHeaderSize - return errInvalidControlFrame - } - - b0 := byte(c.writeFrameType) - if final { - b0 |= finalBit - } - b1 := byte(0) - if !c.isServer { - b1 |= maskBit - } - - // Assume that the frame starts at beginning of c.writeBuf. - framePos := 0 - if c.isServer { - // Adjust up if mask not included in the header. - framePos = 4 - } - - switch { - case length >= 65536: - c.writeBuf[framePos] = b0 - c.writeBuf[framePos+1] = b1 | 127 - binary.BigEndian.PutUint64(c.writeBuf[framePos+2:], uint64(length)) - case length > 125: - framePos += 6 - c.writeBuf[framePos] = b0 - c.writeBuf[framePos+1] = b1 | 126 - binary.BigEndian.PutUint16(c.writeBuf[framePos+2:], uint16(length)) - default: - framePos += 8 - c.writeBuf[framePos] = b0 - c.writeBuf[framePos+1] = b1 | byte(length) - } - - if !c.isServer { - key := newMaskKey() - copy(c.writeBuf[maxFrameHeaderSize-4:], key[:]) - maskBytes(key, 0, c.writeBuf[maxFrameHeaderSize:c.writePos]) - if len(extra) > 0 { - c.writeErr = errors.New("websocket: internal error, extra used in client mode") - return c.writeErr - } - } - - // Write the buffers to the connection. - c.writeErr = c.write(c.writeFrameType, c.writeDeadline, c.writeBuf[framePos:c.writePos], extra) - - // Setup for next frame. - c.writePos = maxFrameHeaderSize - c.writeFrameType = continuationFrame - if final { - c.writeSeq++ - c.writeFrameType = noFrame - } - return c.writeErr -} - -type messageWriter struct { - c *Conn - seq int -} - -func (w messageWriter) err() error { - c := w.c - if c.writeSeq != w.seq { - return errWriteClosed - } - if c.writeErr != nil { - return c.writeErr - } - return nil -} - -func (w messageWriter) ncopy(max int) (int, error) { - n := len(w.c.writeBuf) - w.c.writePos - if n <= 0 { - if err := w.c.flushFrame(false, nil); err != nil { - return 0, err - } - n = len(w.c.writeBuf) - w.c.writePos - } - if n > max { - n = max - } - return n, nil -} - -func (w messageWriter) write(final bool, p []byte) (int, error) { - if err := w.err(); err != nil { - return 0, err - } - - if len(p) > 2*len(w.c.writeBuf) && w.c.isServer { - // Don't buffer large messages. - err := w.c.flushFrame(final, p) - if err != nil { - return 0, err - } - return len(p), nil - } - - nn := len(p) - for len(p) > 0 { - n, err := w.ncopy(len(p)) - if err != nil { - return 0, err - } - copy(w.c.writeBuf[w.c.writePos:], p[:n]) - w.c.writePos += n - p = p[n:] - } - return nn, nil -} - -func (w messageWriter) Write(p []byte) (int, error) { - return w.write(false, p) -} - -func (w messageWriter) WriteString(p string) (int, error) { - if err := w.err(); err != nil { - return 0, err - } - - nn := len(p) - for len(p) > 0 { - n, err := w.ncopy(len(p)) - if err != nil { - return 0, err - } - copy(w.c.writeBuf[w.c.writePos:], p[:n]) - w.c.writePos += n - p = p[n:] - } - return nn, nil -} - -func (w messageWriter) ReadFrom(r io.Reader) (nn int64, err error) { - if err := w.err(); err != nil { - return 0, err - } - for { - if w.c.writePos == len(w.c.writeBuf) { - err = w.c.flushFrame(false, nil) - if err != nil { - break - } - } - var n int - n, err = r.Read(w.c.writeBuf[w.c.writePos:]) - w.c.writePos += n - nn += int64(n) - if err != nil { - if err == io.EOF { - err = nil - } - break - } - } - return nn, err -} - -func (w messageWriter) Close() error { - if err := w.err(); err != nil { - return err - } - return w.c.flushFrame(true, nil) -} - -// WriteMessage is a helper method for getting a writer using NextWriter, -// writing the message and closing the writer. -func (c *Conn) WriteMessage(messageType int, data []byte) error { - wr, err := c.NextWriter(messageType) - if err != nil { - return err - } - w := wr.(messageWriter) - if _, err := w.write(true, data); err != nil { - return err - } - if c.writeSeq == w.seq { - if err := c.flushFrame(true, nil); err != nil { - return err - } - } - return nil -} - -// SetWriteDeadline sets the write deadline on the underlying network -// connection. After a write has timed out, the websocket state is corrupt and -// all future writes will return an error. A zero value for t means writes will -// not time out. -func (c *Conn) SetWriteDeadline(t time.Time) error { - c.writeDeadline = t - return nil -} - -// Read methods - -// readFull is like io.ReadFull except that io.EOF is never returned. -func (c *Conn) readFull(p []byte) (err error) { - var n int - for n < len(p) && err == nil { - var nn int - nn, err = c.br.Read(p[n:]) - n += nn - } - if n == len(p) { - err = nil - } else if err == io.EOF { - err = errUnexpectedEOF - } - return -} - -func (c *Conn) advanceFrame() (int, error) { - - // 1. Skip remainder of previous frame. - - if c.readRemaining > 0 { - if _, err := io.CopyN(ioutil.Discard, c.br, c.readRemaining); err != nil { - return noFrame, err - } - } - - // 2. Read and parse first two bytes of frame header. - - var b [8]byte - if err := c.readFull(b[:2]); err != nil { - return noFrame, err - } - - final := b[0]&finalBit != 0 - frameType := int(b[0] & 0xf) - reserved := int((b[0] >> 4) & 0x7) - mask := b[1]&maskBit != 0 - c.readRemaining = int64(b[1] & 0x7f) - - if reserved != 0 { - return noFrame, c.handleProtocolError("unexpected reserved bits " + strconv.Itoa(reserved)) - } - - switch frameType { - case CloseMessage, PingMessage, PongMessage: - if c.readRemaining > maxControlFramePayloadSize { - return noFrame, c.handleProtocolError("control frame length > 125") - } - if !final { - return noFrame, c.handleProtocolError("control frame not final") - } - case TextMessage, BinaryMessage: - if !c.readFinal { - return noFrame, c.handleProtocolError("message start before final message frame") - } - c.readFinal = final - case continuationFrame: - if c.readFinal { - return noFrame, c.handleProtocolError("continuation after final message frame") - } - c.readFinal = final - default: - return noFrame, c.handleProtocolError("unknown opcode " + strconv.Itoa(frameType)) - } - - // 3. Read and parse frame length. - - switch c.readRemaining { - case 126: - if err := c.readFull(b[:2]); err != nil { - return noFrame, err - } - c.readRemaining = int64(binary.BigEndian.Uint16(b[:2])) - case 127: - if err := c.readFull(b[:8]); err != nil { - return noFrame, err - } - c.readRemaining = int64(binary.BigEndian.Uint64(b[:8])) - } - - // 4. Handle frame masking. - - if mask != c.isServer { - return noFrame, c.handleProtocolError("incorrect mask flag") - } - - if mask { - c.readMaskPos = 0 - if err := c.readFull(c.readMaskKey[:]); err != nil { - return noFrame, err - } - } - - // 5. For text and binary messages, enforce read limit and return. - - if frameType == continuationFrame || frameType == TextMessage || frameType == BinaryMessage { - - c.readLength += c.readRemaining - if c.readLimit > 0 && c.readLength > c.readLimit { - c.WriteControl(CloseMessage, FormatCloseMessage(CloseMessageTooBig, ""), time.Now().Add(writeWait)) - return noFrame, ErrReadLimit - } - - return frameType, nil - } - - // 6. Read control frame payload. - - var payload []byte - if c.readRemaining > 0 { - payload = make([]byte, c.readRemaining) - c.readRemaining = 0 - if err := c.readFull(payload); err != nil { - return noFrame, err - } - if c.isServer { - maskBytes(c.readMaskKey, 0, payload) - } - } - - // 7. Process control frame payload. - - switch frameType { - case PongMessage: - if err := c.handlePong(string(payload)); err != nil { - return noFrame, err - } - case PingMessage: - if err := c.handlePing(string(payload)); err != nil { - return noFrame, err - } - case CloseMessage: - c.WriteControl(CloseMessage, []byte{}, time.Now().Add(writeWait)) - closeCode := CloseNoStatusReceived - closeText := "" - if len(payload) >= 2 { - closeCode = int(binary.BigEndian.Uint16(payload)) - closeText = string(payload[2:]) - } - return noFrame, &CloseError{Code: closeCode, Text: closeText} - } - - return frameType, nil -} - -func (c *Conn) handleProtocolError(message string) error { - c.WriteControl(CloseMessage, FormatCloseMessage(CloseProtocolError, message), time.Now().Add(writeWait)) - return errors.New("websocket: " + message) -} - -// NextReader returns the next data message received from the peer. The -// returned messageType is either TextMessage or BinaryMessage. -// -// There can be at most one open reader on a connection. NextReader discards -// the previous message if the application has not already consumed it. -// -// The NextReader method and the readers returned from the method cannot be -// accessed by more than one goroutine at a time. -func (c *Conn) NextReader() (messageType int, r io.Reader, err error) { - - c.readSeq++ - c.readLength = 0 - - for c.readErr == nil { - frameType, err := c.advanceFrame() - if err != nil { - c.readErr = hideTempErr(err) - break - } - if frameType == TextMessage || frameType == BinaryMessage { - return frameType, messageReader{c, c.readSeq}, nil - } - } - return noFrame, nil, c.readErr -} - -type messageReader struct { - c *Conn - seq int -} - -func (r messageReader) Read(b []byte) (int, error) { - - if r.seq != r.c.readSeq { - return 0, io.EOF - } - - for r.c.readErr == nil { - - if r.c.readRemaining > 0 { - if int64(len(b)) > r.c.readRemaining { - b = b[:r.c.readRemaining] - } - n, err := r.c.br.Read(b) - r.c.readErr = hideTempErr(err) - if r.c.isServer { - r.c.readMaskPos = maskBytes(r.c.readMaskKey, r.c.readMaskPos, b[:n]) - } - r.c.readRemaining -= int64(n) - return n, r.c.readErr - } - - if r.c.readFinal { - r.c.readSeq++ - return 0, io.EOF - } - - frameType, err := r.c.advanceFrame() - switch { - case err != nil: - r.c.readErr = hideTempErr(err) - case frameType == TextMessage || frameType == BinaryMessage: - r.c.readErr = errors.New("websocket: internal error, unexpected text or binary in Reader") - } - } - - err := r.c.readErr - if err == io.EOF && r.seq == r.c.readSeq { - err = errUnexpectedEOF - } - return 0, err -} - -// ReadMessage is a helper method for getting a reader using NextReader and -// reading from that reader to a buffer. -func (c *Conn) ReadMessage() (messageType int, p []byte, err error) { - var r io.Reader - messageType, r, err = c.NextReader() - if err != nil { - return messageType, nil, err - } - p, err = ioutil.ReadAll(r) - return messageType, p, err -} - -// SetReadDeadline sets the read deadline on the underlying network connection. -// After a read has timed out, the websocket connection state is corrupt and -// all future reads will return an error. A zero value for t means reads will -// not time out. -func (c *Conn) SetReadDeadline(t time.Time) error { - return c.conn.SetReadDeadline(t) -} - -// SetReadLimit sets the maximum size for a message read from the peer. If a -// message exceeds the limit, the connection sends a close frame to the peer -// and returns ErrReadLimit to the application. -func (c *Conn) SetReadLimit(limit int64) { - c.readLimit = limit -} - -// SetPingHandler sets the handler for ping messages received from the peer. -// The appData argument to h is the PING frame application data. The default -// ping handler sends a pong to the peer. -func (c *Conn) SetPingHandler(h func(appData string) error) { - if h == nil { - h = func(message string) error { - err := c.WriteControl(PongMessage, []byte(message), time.Now().Add(writeWait)) - if err == ErrCloseSent { - return nil - } else if e, ok := err.(net.Error); ok && e.Temporary() { - return nil - } - return err - } - } - c.handlePing = h -} - -// SetPongHandler sets the handler for pong messages received from the peer. -// The appData argument to h is the PONG frame application data. The default -// pong handler does nothing. -func (c *Conn) SetPongHandler(h func(appData string) error) { - if h == nil { - h = func(string) error { return nil } - } - c.handlePong = h -} - -// UnderlyingConn returns the internal net.Conn. This can be used to further -// modifications to connection specific flags. -func (c *Conn) UnderlyingConn() net.Conn { - return c.conn -} - -// FormatCloseMessage formats closeCode and text as a WebSocket close message. -func FormatCloseMessage(closeCode int, text string) []byte { - buf := make([]byte, 2+len(text)) - binary.BigEndian.PutUint16(buf, uint16(closeCode)) - copy(buf[2:], text) - return buf -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/conn_test.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/conn_test.go deleted file mode 100644 index 02f2d4b5..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/conn_test.go +++ /dev/null @@ -1,272 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 websocket - -import ( - "bufio" - "bytes" - "fmt" - "io" - "io/ioutil" - "net" - "reflect" - "testing" - "testing/iotest" - "time" -) - -var _ net.Error = errWriteTimeout - -type fakeNetConn struct { - io.Reader - io.Writer -} - -func (c fakeNetConn) Close() error { return nil } -func (c fakeNetConn) LocalAddr() net.Addr { return nil } -func (c fakeNetConn) RemoteAddr() net.Addr { return nil } -func (c fakeNetConn) SetDeadline(t time.Time) error { return nil } -func (c fakeNetConn) SetReadDeadline(t time.Time) error { return nil } -func (c fakeNetConn) SetWriteDeadline(t time.Time) error { return nil } - -func TestFraming(t *testing.T) { - frameSizes := []int{0, 1, 2, 124, 125, 126, 127, 128, 129, 65534, 65535, 65536, 65537} - var readChunkers = []struct { - name string - f func(io.Reader) io.Reader - }{ - {"half", iotest.HalfReader}, - {"one", iotest.OneByteReader}, - {"asis", func(r io.Reader) io.Reader { return r }}, - } - - writeBuf := make([]byte, 65537) - for i := range writeBuf { - writeBuf[i] = byte(i) - } - - for _, isServer := range []bool{true, false} { - for _, chunker := range readChunkers { - - var connBuf bytes.Buffer - wc := newConn(fakeNetConn{Reader: nil, Writer: &connBuf}, isServer, 1024, 1024) - rc := newConn(fakeNetConn{Reader: chunker.f(&connBuf), Writer: nil}, !isServer, 1024, 1024) - - for _, n := range frameSizes { - for _, iocopy := range []bool{true, false} { - name := fmt.Sprintf("s:%v, r:%s, n:%d c:%v", isServer, chunker.name, n, iocopy) - - w, err := wc.NextWriter(TextMessage) - if err != nil { - t.Errorf("%s: wc.NextWriter() returned %v", name, err) - continue - } - var nn int - if iocopy { - var n64 int64 - n64, err = io.Copy(w, bytes.NewReader(writeBuf[:n])) - nn = int(n64) - } else { - nn, err = w.Write(writeBuf[:n]) - } - if err != nil || nn != n { - t.Errorf("%s: w.Write(writeBuf[:n]) returned %d, %v", name, nn, err) - continue - } - err = w.Close() - if err != nil { - t.Errorf("%s: w.Close() returned %v", name, err) - continue - } - - opCode, r, err := rc.NextReader() - if err != nil || opCode != TextMessage { - t.Errorf("%s: NextReader() returned %d, r, %v", name, opCode, err) - continue - } - rbuf, err := ioutil.ReadAll(r) - if err != nil { - t.Errorf("%s: ReadFull() returned rbuf, %v", name, err) - continue - } - - if len(rbuf) != n { - t.Errorf("%s: len(rbuf) is %d, want %d", name, len(rbuf), n) - continue - } - - for i, b := range rbuf { - if byte(i) != b { - t.Errorf("%s: bad byte at offset %d", name, i) - break - } - } - } - } - } - } -} - -func TestControl(t *testing.T) { - const message = "this is a ping/pong messsage" - for _, isServer := range []bool{true, false} { - for _, isWriteControl := range []bool{true, false} { - name := fmt.Sprintf("s:%v, wc:%v", isServer, isWriteControl) - var connBuf bytes.Buffer - wc := newConn(fakeNetConn{Reader: nil, Writer: &connBuf}, isServer, 1024, 1024) - rc := newConn(fakeNetConn{Reader: &connBuf, Writer: nil}, !isServer, 1024, 1024) - if isWriteControl { - wc.WriteControl(PongMessage, []byte(message), time.Now().Add(time.Second)) - } else { - w, err := wc.NextWriter(PongMessage) - if err != nil { - t.Errorf("%s: wc.NextWriter() returned %v", name, err) - continue - } - if _, err := w.Write([]byte(message)); err != nil { - t.Errorf("%s: w.Write() returned %v", name, err) - continue - } - if err := w.Close(); err != nil { - t.Errorf("%s: w.Close() returned %v", name, err) - continue - } - var actualMessage string - rc.SetPongHandler(func(s string) error { actualMessage = s; return nil }) - rc.NextReader() - if actualMessage != message { - t.Errorf("%s: pong=%q, want %q", name, actualMessage, message) - continue - } - } - } - } -} - -func TestCloseBeforeFinalFrame(t *testing.T) { - const bufSize = 512 - - expectedErr := &CloseError{Code: CloseNormalClosure, Text: "hello"} - - var b1, b2 bytes.Buffer - wc := newConn(fakeNetConn{Reader: nil, Writer: &b1}, false, 1024, bufSize) - rc := newConn(fakeNetConn{Reader: &b1, Writer: &b2}, true, 1024, 1024) - - w, _ := wc.NextWriter(BinaryMessage) - w.Write(make([]byte, bufSize+bufSize/2)) - wc.WriteControl(CloseMessage, FormatCloseMessage(expectedErr.Code, expectedErr.Text), time.Now().Add(10*time.Second)) - w.Close() - - op, r, err := rc.NextReader() - if op != BinaryMessage || err != nil { - t.Fatalf("NextReader() returned %d, %v", op, err) - } - _, err = io.Copy(ioutil.Discard, r) - if !reflect.DeepEqual(err, expectedErr) { - t.Fatalf("io.Copy() returned %v, want %v", err, expectedErr) - } - _, _, err = rc.NextReader() - if !reflect.DeepEqual(err, expectedErr) { - t.Fatalf("NextReader() returned %v, want %v", err, expectedErr) - } -} - -func TestEOFBeforeFinalFrame(t *testing.T) { - const bufSize = 512 - - var b1, b2 bytes.Buffer - wc := newConn(fakeNetConn{Reader: nil, Writer: &b1}, false, 1024, bufSize) - rc := newConn(fakeNetConn{Reader: &b1, Writer: &b2}, true, 1024, 1024) - - w, _ := wc.NextWriter(BinaryMessage) - w.Write(make([]byte, bufSize+bufSize/2)) - - op, r, err := rc.NextReader() - if op != BinaryMessage || err != nil { - t.Fatalf("NextReader() returned %d, %v", op, err) - } - _, err = io.Copy(ioutil.Discard, r) - if err != errUnexpectedEOF { - t.Fatalf("io.Copy() returned %v, want %v", err, errUnexpectedEOF) - } - _, _, err = rc.NextReader() - if err != errUnexpectedEOF { - t.Fatalf("NextReader() returned %v, want %v", err, errUnexpectedEOF) - } -} - -func TestReadLimit(t *testing.T) { - - const readLimit = 512 - message := make([]byte, readLimit+1) - - var b1, b2 bytes.Buffer - wc := newConn(fakeNetConn{Reader: nil, Writer: &b1}, false, 1024, readLimit-2) - rc := newConn(fakeNetConn{Reader: &b1, Writer: &b2}, true, 1024, 1024) - rc.SetReadLimit(readLimit) - - // Send message at the limit with interleaved pong. - w, _ := wc.NextWriter(BinaryMessage) - w.Write(message[:readLimit-1]) - wc.WriteControl(PongMessage, []byte("this is a pong"), time.Now().Add(10*time.Second)) - w.Write(message[:1]) - w.Close() - - // Send message larger than the limit. - wc.WriteMessage(BinaryMessage, message[:readLimit+1]) - - op, _, err := rc.NextReader() - if op != BinaryMessage || err != nil { - t.Fatalf("1: NextReader() returned %d, %v", op, err) - } - op, r, err := rc.NextReader() - if op != BinaryMessage || err != nil { - t.Fatalf("2: NextReader() returned %d, %v", op, err) - } - _, err = io.Copy(ioutil.Discard, r) - if err != ErrReadLimit { - t.Fatalf("io.Copy() returned %v", err) - } -} - -func TestUnderlyingConn(t *testing.T) { - var b1, b2 bytes.Buffer - fc := fakeNetConn{Reader: &b1, Writer: &b2} - c := newConn(fc, true, 1024, 1024) - ul := c.UnderlyingConn() - if ul != fc { - t.Fatalf("Underlying conn is not what it should be.") - } -} - -func TestBufioReadBytes(t *testing.T) { - - // Test calling bufio.ReadBytes for value longer than read buffer size. - - m := make([]byte, 512) - m[len(m)-1] = '\n' - - var b1, b2 bytes.Buffer - wc := newConn(fakeNetConn{Reader: nil, Writer: &b1}, false, len(m)+64, len(m)+64) - rc := newConn(fakeNetConn{Reader: &b1, Writer: &b2}, true, len(m)-64, len(m)-64) - - w, _ := wc.NextWriter(BinaryMessage) - w.Write(m) - w.Close() - - op, r, err := rc.NextReader() - if op != BinaryMessage || err != nil { - t.Fatalf("NextReader() returned %d, %v", op, err) - } - - br := bufio.NewReader(r) - p, err := br.ReadBytes('\n') - if err != nil { - t.Fatalf("ReadBytes() returned %v", err) - } - if len(p) != len(m) { - t.Fatalf("read returnd %d bytes, want %d bytes", len(p), len(m)) - } -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/doc.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/doc.go deleted file mode 100644 index 72286279..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/doc.go +++ /dev/null @@ -1,151 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 websocket implements the WebSocket protocol defined in RFC 6455. -// -// Overview -// -// The Conn type represents a WebSocket connection. A server application uses -// the Upgrade function from an Upgrader object with a HTTP request handler -// to get a pointer to a Conn: -// -// var upgrader = websocket.Upgrader{ -// ReadBufferSize: 1024, -// WriteBufferSize: 1024, -// } -// -// func handler(w http.ResponseWriter, r *http.Request) { -// conn, err := upgrader.Upgrade(w, r, nil) -// if err != nil { -// log.Println(err) -// return -// } -// ... Use conn to send and receive messages. -// } -// -// Call the connection's WriteMessage and ReadMessage methods to send and -// receive messages as a slice of bytes. This snippet of code shows how to echo -// messages using these methods: -// -// for { -// messageType, p, err := conn.ReadMessage() -// if err != nil { -// return -// } -// if err = conn.WriteMessage(messageType, p); err != nil { -// return err -// } -// } -// -// In above snippet of code, p is a []byte and messageType is an int with value -// websocket.BinaryMessage or websocket.TextMessage. -// -// An application can also send and receive messages using the io.WriteCloser -// and io.Reader interfaces. To send a message, call the connection NextWriter -// method to get an io.WriteCloser, write the message to the writer and close -// the writer when done. To receive a message, call the connection NextReader -// method to get an io.Reader and read until io.EOF is returned. This snippet -// snippet shows how to echo messages using the NextWriter and NextReader -// methods: -// -// for { -// messageType, r, err := conn.NextReader() -// if err != nil { -// return -// } -// w, err := conn.NextWriter(messageType) -// if err != nil { -// return err -// } -// if _, err := io.Copy(w, r); err != nil { -// return err -// } -// if err := w.Close(); err != nil { -// return err -// } -// } -// -// Data Messages -// -// The WebSocket protocol distinguishes between text and binary data messages. -// Text messages are interpreted as UTF-8 encoded text. The interpretation of -// binary messages is left to the application. -// -// This package uses the TextMessage and BinaryMessage integer constants to -// identify the two data message types. The ReadMessage and NextReader methods -// return the type of the received message. The messageType argument to the -// WriteMessage and NextWriter methods specifies the type of a sent message. -// -// It is the application's responsibility to ensure that text messages are -// valid UTF-8 encoded text. -// -// Control Messages -// -// The WebSocket protocol defines three types of control messages: close, ping -// and pong. Call the connection WriteControl, WriteMessage or NextWriter -// methods to send a control message to the peer. -// -// Connections handle received ping and pong messages by invoking a callback -// function set with SetPingHandler and SetPongHandler methods. These callback -// functions can be invoked from the ReadMessage method, the NextReader method -// or from a call to the data message reader returned from NextReader. -// -// Connections handle received close messages by returning an error from the -// ReadMessage method, the NextReader method or from a call to the data message -// reader returned from NextReader. -// -// Concurrency -// -// Connections support one concurrent reader and one concurrent writer. -// -// Applications are responsible for ensuring that no more than one goroutine -// calls the write methods (NextWriter, SetWriteDeadline, WriteMessage, -// WriteJSON) concurrently and that no more than one goroutine calls the read -// methods (NextReader, SetReadDeadline, ReadMessage, ReadJSON, SetPongHandler, -// SetPingHandler) concurrently. -// -// The Close and WriteControl methods can be called concurrently with all other -// methods. -// -// Read is Required -// -// The application must read the connection to process ping and close messages -// sent from the peer. If the application is not otherwise interested in -// messages from the peer, then the application should start a goroutine to read -// and discard messages from the peer. A simple example is: -// -// func readLoop(c *websocket.Conn) { -// for { -// if _, _, err := c.NextReader(); err != nil { -// c.Close() -// break -// } -// } -// } -// -// Origin Considerations -// -// Web browsers allow Javascript applications to open a WebSocket connection to -// any host. It's up to the server to enforce an origin policy using the Origin -// request header sent by the browser. -// -// The Upgrader calls the function specified in the CheckOrigin field to check -// the origin. If the CheckOrigin function returns false, then the Upgrade -// method fails the WebSocket handshake with HTTP status 403. -// -// If the CheckOrigin field is nil, then the Upgrader uses a safe default: fail -// the handshake if the Origin request header is present and not equal to the -// Host request header. -// -// An application can allow connections from any origin by specifying a -// function that always returns true: -// -// var upgrader = websocket.Upgrader{ -// CheckOrigin: func(r *http.Request) bool { return true }, -// } -// -// The deprecated Upgrade function does not enforce an origin policy. It's the -// application's responsibility to check the Origin header before calling -// Upgrade. -package websocket diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/autobahn/README.md b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/autobahn/README.md deleted file mode 100644 index 075ac153..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/autobahn/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Test Server - -This package contains a server for the [Autobahn WebSockets Test Suite](http://autobahn.ws/testsuite). - -To test the server, run - - go run server.go - -and start the client test driver - - wstest -m fuzzingclient -s fuzzingclient.json - -When the client completes, it writes a report to reports/clients/index.html. diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/autobahn/fuzzingclient.json b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/autobahn/fuzzingclient.json deleted file mode 100644 index 27d5a5b1..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/autobahn/fuzzingclient.json +++ /dev/null @@ -1,14 +0,0 @@ - -{ - "options": {"failByDrop": false}, - "outdir": "./reports/clients", - "servers": [ - {"agent": "ReadAllWriteMessage", "url": "ws://localhost:9000/m", "options": {"version": 18}}, - {"agent": "ReadAllWrite", "url": "ws://localhost:9000/r", "options": {"version": 18}}, - {"agent": "CopyFull", "url": "ws://localhost:9000/f", "options": {"version": 18}}, - {"agent": "CopyWriterOnly", "url": "ws://localhost:9000/c", "options": {"version": 18}} - ], - "cases": ["*"], - "exclude-cases": [], - "exclude-agent-cases": {} -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/autobahn/server.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/autobahn/server.go deleted file mode 100644 index 53156802..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/autobahn/server.go +++ /dev/null @@ -1,246 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Command server is a test server for the Autobahn WebSockets Test Suite. -package main - -import ( - "gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket" - "errors" - "flag" - "io" - "log" - "net/http" - "time" - "unicode/utf8" -) - -var upgrader = websocket.Upgrader{ - ReadBufferSize: 4096, - WriteBufferSize: 4096, - CheckOrigin: func(r *http.Request) bool { - return true - }, -} - -// echoCopy echoes messages from the client using io.Copy. -func echoCopy(w http.ResponseWriter, r *http.Request, writerOnly bool) { - conn, err := upgrader.Upgrade(w, r, nil) - if err != nil { - log.Println("Upgrade:", err) - return - } - defer conn.Close() - for { - mt, r, err := conn.NextReader() - if err != nil { - if err != io.EOF { - log.Println("NextReader:", err) - } - return - } - if mt == websocket.TextMessage { - r = &validator{r: r} - } - w, err := conn.NextWriter(mt) - if err != nil { - log.Println("NextWriter:", err) - return - } - if mt == websocket.TextMessage { - r = &validator{r: r} - } - if writerOnly { - _, err = io.Copy(struct{ io.Writer }{w}, r) - } else { - _, err = io.Copy(w, r) - } - if err != nil { - if err == errInvalidUTF8 { - conn.WriteControl(websocket.CloseMessage, - websocket.FormatCloseMessage(websocket.CloseInvalidFramePayloadData, ""), - time.Time{}) - } - log.Println("Copy:", err) - return - } - err = w.Close() - if err != nil { - log.Println("Close:", err) - return - } - } -} - -func echoCopyWriterOnly(w http.ResponseWriter, r *http.Request) { - echoCopy(w, r, true) -} - -func echoCopyFull(w http.ResponseWriter, r *http.Request) { - echoCopy(w, r, false) -} - -// echoReadAll echoes messages from the client by reading the entire message -// with ioutil.ReadAll. -func echoReadAll(w http.ResponseWriter, r *http.Request, writeMessage bool) { - conn, err := upgrader.Upgrade(w, r, nil) - if err != nil { - log.Println("Upgrade:", err) - return - } - defer conn.Close() - for { - mt, b, err := conn.ReadMessage() - if err != nil { - if err != io.EOF { - log.Println("NextReader:", err) - } - return - } - if mt == websocket.TextMessage { - if !utf8.Valid(b) { - conn.WriteControl(websocket.CloseMessage, - websocket.FormatCloseMessage(websocket.CloseInvalidFramePayloadData, ""), - time.Time{}) - log.Println("ReadAll: invalid utf8") - } - } - if writeMessage { - err = conn.WriteMessage(mt, b) - if err != nil { - log.Println("WriteMessage:", err) - } - } else { - w, err := conn.NextWriter(mt) - if err != nil { - log.Println("NextWriter:", err) - return - } - if _, err := w.Write(b); err != nil { - log.Println("Writer:", err) - return - } - if err := w.Close(); err != nil { - log.Println("Close:", err) - return - } - } - } -} - -func echoReadAllWriter(w http.ResponseWriter, r *http.Request) { - echoReadAll(w, r, false) -} - -func echoReadAllWriteMessage(w http.ResponseWriter, r *http.Request) { - echoReadAll(w, r, true) -} - -func serveHome(w http.ResponseWriter, r *http.Request) { - if r.URL.Path != "/" { - http.Error(w, "Not found.", 404) - return - } - if r.Method != "GET" { - http.Error(w, "Method not allowed", 405) - return - } - w.Header().Set("Content-Type", "text/html; charset=utf-8") - io.WriteString(w, "Echo Server") -} - -var addr = flag.String("addr", ":9000", "http service address") - -func main() { - flag.Parse() - http.HandleFunc("/", serveHome) - http.HandleFunc("/c", echoCopyWriterOnly) - http.HandleFunc("/f", echoCopyFull) - http.HandleFunc("/r", echoReadAllWriter) - http.HandleFunc("/m", echoReadAllWriteMessage) - err := http.ListenAndServe(*addr, nil) - if err != nil { - log.Fatal("ListenAndServe: ", err) - } -} - -type validator struct { - state int - x rune - r io.Reader -} - -var errInvalidUTF8 = errors.New("invalid utf8") - -func (r *validator) Read(p []byte) (int, error) { - n, err := r.r.Read(p) - state := r.state - x := r.x - for _, b := range p[:n] { - state, x = decode(state, x, b) - if state == utf8Reject { - break - } - } - r.state = state - r.x = x - if state == utf8Reject || (err == io.EOF && state != utf8Accept) { - return n, errInvalidUTF8 - } - return n, err -} - -// UTF-8 decoder from http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ -// -// Copyright (c) 2008-2009 Bjoern Hoehrmann -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -var utf8d = [...]byte{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 00..1f - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 20..3f - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 40..5f - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 60..7f - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, // 80..9f - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // a0..bf - 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // c0..df - 0xa, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x3, // e0..ef - 0xb, 0x6, 0x6, 0x6, 0x5, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, // f0..ff - 0x0, 0x1, 0x2, 0x3, 0x5, 0x8, 0x7, 0x1, 0x1, 0x1, 0x4, 0x6, 0x1, 0x1, 0x1, 0x1, // s0..s0 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, // s1..s2 - 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, // s3..s4 - 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, // s5..s6 - 1, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // s7..s8 -} - -const ( - utf8Accept = 0 - utf8Reject = 1 -) - -func decode(state int, x rune, b byte) (int, rune) { - t := utf8d[b] - if state != utf8Accept { - x = rune(b&0x3f) | (x << 6) - } else { - x = rune((0xff >> t) & b) - } - state = int(utf8d[256+state*16+int(t)]) - return state, x -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/README.md b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/README.md deleted file mode 100644 index 5df3cf1a..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Chat Example - -This application shows how to use use the -[websocket](https://github.com/gorilla/websocket) package and -[jQuery](http://jquery.com) to implement a simple web chat application. - -## Running the example - -The example requires a working Go development environment. The [Getting -Started](http://golang.org/doc/install) page describes how to install the -development environment. - -Once you have Go up and running, you can download, build and run the example -using the following commands. - - $ go get github.com/gorilla/websocket - $ cd `go list -f '{{.Dir}}' github.com/gorilla/websocket/examples/chat` - $ go run *.go - -To use the chat example, open http://localhost:8080/ in your browser. diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/conn.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/conn.go deleted file mode 100644 index 23ba5c93..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/conn.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 main - -import ( - "gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket" - "log" - "net/http" - "time" -) - -const ( - // Time allowed to write a message to the peer. - writeWait = 10 * time.Second - - // Time allowed to read the next pong message from the peer. - pongWait = 60 * time.Second - - // Send pings to peer with this period. Must be less than pongWait. - pingPeriod = (pongWait * 9) / 10 - - // Maximum message size allowed from peer. - maxMessageSize = 512 -) - -var upgrader = websocket.Upgrader{ - ReadBufferSize: 1024, - WriteBufferSize: 1024, -} - -// connection is an middleman between the websocket connection and the hub. -type connection struct { - // The websocket connection. - ws *websocket.Conn - - // Buffered channel of outbound messages. - send chan []byte -} - -// readPump pumps messages from the websocket connection to the hub. -func (c *connection) readPump() { - defer func() { - h.unregister <- c - c.ws.Close() - }() - c.ws.SetReadLimit(maxMessageSize) - c.ws.SetReadDeadline(time.Now().Add(pongWait)) - c.ws.SetPongHandler(func(string) error { c.ws.SetReadDeadline(time.Now().Add(pongWait)); return nil }) - for { - _, message, err := c.ws.ReadMessage() - if err != nil { - break - } - h.broadcast <- message - } -} - -// write writes a message with the given message type and payload. -func (c *connection) write(mt int, payload []byte) error { - c.ws.SetWriteDeadline(time.Now().Add(writeWait)) - return c.ws.WriteMessage(mt, payload) -} - -// writePump pumps messages from the hub to the websocket connection. -func (c *connection) writePump() { - ticker := time.NewTicker(pingPeriod) - defer func() { - ticker.Stop() - c.ws.Close() - }() - for { - select { - case message, ok := <-c.send: - if !ok { - c.write(websocket.CloseMessage, []byte{}) - return - } - if err := c.write(websocket.TextMessage, message); err != nil { - return - } - case <-ticker.C: - if err := c.write(websocket.PingMessage, []byte{}); err != nil { - return - } - } - } -} - -// serveWs handles websocket requests from the peer. -func serveWs(w http.ResponseWriter, r *http.Request) { - ws, err := upgrader.Upgrade(w, r, nil) - if err != nil { - log.Println(err) - return - } - c := &connection{send: make(chan []byte, 256), ws: ws} - h.register <- c - go c.writePump() - c.readPump() -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/home.html b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/home.html deleted file mode 100644 index 29599225..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/home.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -Chat Example - - - - - -
-
- - -
- - diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/hub.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/hub.go deleted file mode 100644 index 449ba753..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/hub.go +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 main - -// hub maintains the set of active connections and broadcasts messages to the -// connections. -type hub struct { - // Registered connections. - connections map[*connection]bool - - // Inbound messages from the connections. - broadcast chan []byte - - // Register requests from the connections. - register chan *connection - - // Unregister requests from connections. - unregister chan *connection -} - -var h = hub{ - broadcast: make(chan []byte), - register: make(chan *connection), - unregister: make(chan *connection), - connections: make(map[*connection]bool), -} - -func (h *hub) run() { - for { - select { - case c := <-h.register: - h.connections[c] = true - case c := <-h.unregister: - if _, ok := h.connections[c]; ok { - delete(h.connections, c) - close(c.send) - } - case m := <-h.broadcast: - for c := range h.connections { - select { - case c.send <- m: - default: - close(c.send) - delete(h.connections, c) - } - } - } - } -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/main.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/main.go deleted file mode 100644 index 3c4448d7..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/chat/main.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 main - -import ( - "flag" - "log" - "net/http" - "text/template" -) - -var addr = flag.String("addr", ":8080", "http service address") -var homeTempl = template.Must(template.ParseFiles("home.html")) - -func serveHome(w http.ResponseWriter, r *http.Request) { - if r.URL.Path != "/" { - http.Error(w, "Not found", 404) - return - } - if r.Method != "GET" { - http.Error(w, "Method not allowed", 405) - return - } - w.Header().Set("Content-Type", "text/html; charset=utf-8") - homeTempl.Execute(w, r.Host) -} - -func main() { - flag.Parse() - go h.run() - http.HandleFunc("/", serveHome) - http.HandleFunc("/ws", serveWs) - err := http.ListenAndServe(*addr, nil) - if err != nil { - log.Fatal("ListenAndServe: ", err) - } -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/command/README.md b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/command/README.md deleted file mode 100644 index c30d3979..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/command/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Command example - -This example connects a websocket connection to stdin and stdout of a command. -Received messages are written to stdin followed by a `\n`. Each line read from -from standard out is sent as a message to the client. - - $ go get github.com/gorilla/websocket - $ cd `go list -f '{{.Dir}}' github.com/gorilla/websocket/examples/command` - $ go run main.go - # Open http://localhost:8080/ . - -Try the following commands. - - # Echo sent messages to the output area. - $ go run main.go cat - - # Run a shell.Try sending "ls" and "cat main.go". - $ go run main.go sh - diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/command/home.html b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/command/home.html deleted file mode 100644 index 72fd02b2..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/command/home.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -Command Example - - - - - -
-
- - -
- - diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/command/main.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/command/main.go deleted file mode 100644 index 729a491b..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/command/main.go +++ /dev/null @@ -1,188 +0,0 @@ -// Copyright 2015 The Gorilla WebSocket 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 main - -import ( - "bufio" - "flag" - "io" - "log" - "net/http" - "os" - "os/exec" - "text/template" - "time" - - "gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket" -) - -var ( - addr = flag.String("addr", "127.0.0.1:8080", "http service address") - cmdPath string - homeTempl = template.Must(template.ParseFiles("home.html")) -) - -const ( - // Time allowed to write a message to the peer. - writeWait = 10 * time.Second - - // Maximum message size allowed from peer. - maxMessageSize = 8192 - - // Time allowed to read the next pong message from the peer. - pongWait = 60 * time.Second - - // Send pings to peer with this period. Must be less than pongWait. - pingPeriod = (pongWait * 9) / 10 -) - -func pumpStdin(ws *websocket.Conn, w io.Writer) { - defer ws.Close() - ws.SetReadLimit(maxMessageSize) - ws.SetReadDeadline(time.Now().Add(pongWait)) - ws.SetPongHandler(func(string) error { ws.SetReadDeadline(time.Now().Add(pongWait)); return nil }) - for { - _, message, err := ws.ReadMessage() - if err != nil { - break - } - message = append(message, '\n') - if _, err := w.Write(message); err != nil { - break - } - } -} - -func pumpStdout(ws *websocket.Conn, r io.Reader, done chan struct{}) { - defer func() { - ws.Close() - close(done) - }() - s := bufio.NewScanner(r) - for s.Scan() { - ws.SetWriteDeadline(time.Now().Add(writeWait)) - if err := ws.WriteMessage(websocket.TextMessage, s.Bytes()); err != nil { - break - } - } - if s.Err() != nil { - log.Println("scan:", s.Err()) - } -} - -func ping(ws *websocket.Conn, done chan struct{}) { - ticker := time.NewTicker(pingPeriod) - defer ticker.Stop() - for { - select { - case <-ticker.C: - if err := ws.WriteControl(websocket.PingMessage, []byte{}, time.Now().Add(writeWait)); err != nil { - log.Println("ping:", err) - } - case <-done: - return - } - } -} - -func internalError(ws *websocket.Conn, msg string, err error) { - log.Println(msg, err) - ws.WriteMessage(websocket.TextMessage, []byte("Internal server error.")) -} - -var upgrader = websocket.Upgrader{} - -func serveWs(w http.ResponseWriter, r *http.Request) { - ws, err := upgrader.Upgrade(w, r, nil) - if err != nil { - log.Println("upgrade:", err) - return - } - - defer ws.Close() - - outr, outw, err := os.Pipe() - if err != nil { - internalError(ws, "stdout:", err) - return - } - defer outr.Close() - defer outw.Close() - - inr, inw, err := os.Pipe() - if err != nil { - internalError(ws, "stdin:", err) - return - } - defer inr.Close() - defer inw.Close() - - proc, err := os.StartProcess(cmdPath, flag.Args(), &os.ProcAttr{ - Files: []*os.File{inr, outw, outw}, - }) - if err != nil { - internalError(ws, "start:", err) - return - } - - inr.Close() - outw.Close() - - stdoutDone := make(chan struct{}) - go pumpStdout(ws, outr, stdoutDone) - go ping(ws, stdoutDone) - - pumpStdin(ws, inw) - - // Some commands will exit when stdin is closed. - inw.Close() - - // Other commands need a bonk on the head. - if err := proc.Signal(os.Interrupt); err != nil { - log.Println("inter:", err) - } - - select { - case <-stdoutDone: - case <-time.After(time.Second): - // A bigger bonk on the head. - if err := proc.Signal(os.Kill); err != nil { - log.Println("term:", err) - } - <-stdoutDone - } - - if _, err := proc.Wait(); err != nil { - log.Println("wait:", err) - } -} - -func serveHome(w http.ResponseWriter, r *http.Request) { - if r.URL.Path != "/" { - http.Error(w, "Not found", 404) - return - } - if r.Method != "GET" { - http.Error(w, "Method not allowed", 405) - return - } - w.Header().Set("Content-Type", "text/html; charset=utf-8") - homeTempl.Execute(w, r.Host) -} - -func main() { - flag.Parse() - if len(flag.Args()) < 1 { - log.Fatal("must specify at least one argument") - } - var err error - cmdPath, err = exec.LookPath(flag.Args()[0]) - if err != nil { - log.Fatal(err) - } - http.HandleFunc("/", serveHome) - http.HandleFunc("/ws", serveWs) - log.Fatal(http.ListenAndServe(*addr, nil)) -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/echo/README.md b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/echo/README.md deleted file mode 100644 index 6ad79ed7..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/echo/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Client and server example - -This example shows a simple client and server. - -The server echoes messages sent to it. The client sends a message every second -and prints all messages received. - -To run the example, start the server: - - $ go run server.go - -Next, start the client: - - $ go run client.go - -The server includes a simple web client. To use the client, open -http://127.0.0.1:8080 in the browser and follow the instructions on the page. diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/echo/client.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/echo/client.go deleted file mode 100644 index 45a02317..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/echo/client.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2015 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "flag" - "log" - "net/url" - "time" - - "github.com/gorilla/websocket" -) - -var addr = flag.String("addr", "localhost:8080", "http service address") - -func main() { - flag.Parse() - log.SetFlags(0) - - u := url.URL{Scheme: "ws", Host: *addr, Path: "/echo"} - log.Printf("connecting to %s", u.String()) - - c, _, err := websocket.DefaultDialer.Dial(u.String(), nil) - if err != nil { - log.Fatal("dial:", err) - } - defer c.Close() - - go func() { - defer c.Close() - for { - _, message, err := c.ReadMessage() - if err != nil { - log.Println("read:", err) - break - } - log.Printf("recv: %s", message) - } - }() - - ticker := time.NewTicker(time.Second) - defer ticker.Stop() - - for t := range ticker.C { - err := c.WriteMessage(websocket.TextMessage, []byte(t.String())) - if err != nil { - log.Println("write:", err) - break - } - } -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/echo/server.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/echo/server.go deleted file mode 100644 index a685b097..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/echo/server.go +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright 2015 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "flag" - "html/template" - "log" - "net/http" - - "github.com/gorilla/websocket" -) - -var addr = flag.String("addr", "localhost:8080", "http service address") - -var upgrader = websocket.Upgrader{} // use default options - -func echo(w http.ResponseWriter, r *http.Request) { - c, err := upgrader.Upgrade(w, r, nil) - if err != nil { - log.Print("upgrade:", err) - return - } - defer c.Close() - for { - mt, message, err := c.ReadMessage() - if err != nil { - log.Println("read:", err) - break - } - log.Printf("recv: %s", message) - err = c.WriteMessage(mt, message) - if err != nil { - log.Println("write:", err) - break - } - } -} - -func home(w http.ResponseWriter, r *http.Request) { - homeTemplate.Execute(w, "ws://"+r.Host+"/echo") -} - -func main() { - flag.Parse() - log.SetFlags(0) - http.HandleFunc("/echo", echo) - http.HandleFunc("/", home) - log.Fatal(http.ListenAndServe(*addr, nil)) -} - -var homeTemplate = template.Must(template.New("").Parse(` - - - - - - - -
-

Click "Open" to create a connection to the server, -"Send" to send a message to the server and "Close" to close the connection. -You can change the message and send multiple times. -

-

- - -

- -

-
-
-
- - -`)) diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/filewatch/README.md b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/filewatch/README.md deleted file mode 100644 index ca4931f3..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/filewatch/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# File Watch example. - -This example sends a file to the browser client for display whenever the file is modified. - - $ go get github.com/gorilla/websocket - $ cd `go list -f '{{.Dir}}' github.com/gorilla/websocket/examples/filewatch` - $ go run main.go - # Open http://localhost:8080/ . - # Modify the file to see it update in the browser. diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/filewatch/main.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/filewatch/main.go deleted file mode 100644 index 0654849a..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/examples/filewatch/main.go +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 main - -import ( - "flag" - "io/ioutil" - "log" - "net/http" - "os" - "strconv" - "text/template" - "time" - - "gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket" -) - -const ( - // Time allowed to write the file to the client. - writeWait = 10 * time.Second - - // Time allowed to read the next pong message from the client. - pongWait = 60 * time.Second - - // Send pings to client with this period. Must be less than pongWait. - pingPeriod = (pongWait * 9) / 10 - - // Poll file for changes with this period. - filePeriod = 10 * time.Second -) - -var ( - addr = flag.String("addr", ":8080", "http service address") - homeTempl = template.Must(template.New("").Parse(homeHTML)) - filename string - upgrader = websocket.Upgrader{ - ReadBufferSize: 1024, - WriteBufferSize: 1024, - } -) - -func readFileIfModified(lastMod time.Time) ([]byte, time.Time, error) { - fi, err := os.Stat(filename) - if err != nil { - return nil, lastMod, err - } - if !fi.ModTime().After(lastMod) { - return nil, lastMod, nil - } - p, err := ioutil.ReadFile(filename) - if err != nil { - return nil, fi.ModTime(), err - } - return p, fi.ModTime(), nil -} - -func reader(ws *websocket.Conn) { - defer ws.Close() - ws.SetReadLimit(512) - ws.SetReadDeadline(time.Now().Add(pongWait)) - ws.SetPongHandler(func(string) error { ws.SetReadDeadline(time.Now().Add(pongWait)); return nil }) - for { - _, _, err := ws.ReadMessage() - if err != nil { - break - } - } -} - -func writer(ws *websocket.Conn, lastMod time.Time) { - lastError := "" - pingTicker := time.NewTicker(pingPeriod) - fileTicker := time.NewTicker(filePeriod) - defer func() { - pingTicker.Stop() - fileTicker.Stop() - ws.Close() - }() - for { - select { - case <-fileTicker.C: - var p []byte - var err error - - p, lastMod, err = readFileIfModified(lastMod) - - if err != nil { - if s := err.Error(); s != lastError { - lastError = s - p = []byte(lastError) - } - } else { - lastError = "" - } - - if p != nil { - ws.SetWriteDeadline(time.Now().Add(writeWait)) - if err := ws.WriteMessage(websocket.TextMessage, p); err != nil { - return - } - } - case <-pingTicker.C: - ws.SetWriteDeadline(time.Now().Add(writeWait)) - if err := ws.WriteMessage(websocket.PingMessage, []byte{}); err != nil { - return - } - } - } -} - -func serveWs(w http.ResponseWriter, r *http.Request) { - ws, err := upgrader.Upgrade(w, r, nil) - if err != nil { - if _, ok := err.(websocket.HandshakeError); !ok { - log.Println(err) - } - return - } - - var lastMod time.Time - if n, err := strconv.ParseInt(r.FormValue("lastMod"), 16, 64); err != nil { - lastMod = time.Unix(0, n) - } - - go writer(ws, lastMod) - reader(ws) -} - -func serveHome(w http.ResponseWriter, r *http.Request) { - if r.URL.Path != "/" { - http.Error(w, "Not found", 404) - return - } - if r.Method != "GET" { - http.Error(w, "Method not allowed", 405) - return - } - w.Header().Set("Content-Type", "text/html; charset=utf-8") - p, lastMod, err := readFileIfModified(time.Time{}) - if err != nil { - p = []byte(err.Error()) - lastMod = time.Unix(0, 0) - } - var v = struct { - Host string - Data string - LastMod string - }{ - r.Host, - string(p), - strconv.FormatInt(lastMod.UnixNano(), 16), - } - homeTempl.Execute(w, &v) -} - -func main() { - flag.Parse() - if flag.NArg() != 1 { - log.Fatal("filename not specified") - } - filename = flag.Args()[0] - http.HandleFunc("/", serveHome) - http.HandleFunc("/ws", serveWs) - if err := http.ListenAndServe(*addr, nil); err != nil { - log.Fatal(err) - } -} - -const homeHTML = ` - - - WebSocket Example - - -
{{.Data}}
- - - -` diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/json.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/json.go deleted file mode 100644 index 4f0e3687..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/json.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 websocket - -import ( - "encoding/json" - "io" -) - -// WriteJSON is deprecated, use c.WriteJSON instead. -func WriteJSON(c *Conn, v interface{}) error { - return c.WriteJSON(v) -} - -// WriteJSON writes the JSON encoding of v to the connection. -// -// See the documentation for encoding/json Marshal for details about the -// conversion of Go values to JSON. -func (c *Conn) WriteJSON(v interface{}) error { - w, err := c.NextWriter(TextMessage) - if err != nil { - return err - } - err1 := json.NewEncoder(w).Encode(v) - err2 := w.Close() - if err1 != nil { - return err1 - } - return err2 -} - -// ReadJSON is deprecated, use c.ReadJSON instead. -func ReadJSON(c *Conn, v interface{}) error { - return c.ReadJSON(v) -} - -// ReadJSON reads the next JSON-encoded message from the connection and stores -// it in the value pointed to by v. -// -// See the documentation for the encoding/json Unmarshal function for details -// about the conversion of JSON to a Go value. -func (c *Conn) ReadJSON(v interface{}) error { - _, r, err := c.NextReader() - if err != nil { - return err - } - err = json.NewDecoder(r).Decode(v) - if err == io.EOF { - // One value is expected in the message. - err = io.ErrUnexpectedEOF - } - return err -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/json_test.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/json_test.go deleted file mode 100644 index 61100e48..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/json_test.go +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 websocket - -import ( - "bytes" - "encoding/json" - "io" - "reflect" - "testing" -) - -func TestJSON(t *testing.T) { - var buf bytes.Buffer - c := fakeNetConn{&buf, &buf} - wc := newConn(c, true, 1024, 1024) - rc := newConn(c, false, 1024, 1024) - - var actual, expect struct { - A int - B string - } - expect.A = 1 - expect.B = "hello" - - if err := wc.WriteJSON(&expect); err != nil { - t.Fatal("write", err) - } - - if err := rc.ReadJSON(&actual); err != nil { - t.Fatal("read", err) - } - - if !reflect.DeepEqual(&actual, &expect) { - t.Fatal("equal", actual, expect) - } -} - -func TestPartialJSONRead(t *testing.T) { - var buf bytes.Buffer - c := fakeNetConn{&buf, &buf} - wc := newConn(c, true, 1024, 1024) - rc := newConn(c, false, 1024, 1024) - - var v struct { - A int - B string - } - v.A = 1 - v.B = "hello" - - messageCount := 0 - - // Partial JSON values. - - data, err := json.Marshal(v) - if err != nil { - t.Fatal(err) - } - for i := len(data) - 1; i >= 0; i-- { - if err := wc.WriteMessage(TextMessage, data[:i]); err != nil { - t.Fatal(err) - } - messageCount++ - } - - // Whitespace. - - if err := wc.WriteMessage(TextMessage, []byte(" ")); err != nil { - t.Fatal(err) - } - messageCount++ - - // Close. - - if err := wc.WriteMessage(CloseMessage, FormatCloseMessage(CloseNormalClosure, "")); err != nil { - t.Fatal(err) - } - - for i := 0; i < messageCount; i++ { - err := rc.ReadJSON(&v) - if err != io.ErrUnexpectedEOF { - t.Error("read", i, err) - } - } - - err = rc.ReadJSON(&v) - if _, ok := err.(*CloseError); !ok { - t.Error("final", err) - } -} - -func TestDeprecatedJSON(t *testing.T) { - var buf bytes.Buffer - c := fakeNetConn{&buf, &buf} - wc := newConn(c, true, 1024, 1024) - rc := newConn(c, false, 1024, 1024) - - var actual, expect struct { - A int - B string - } - expect.A = 1 - expect.B = "hello" - - if err := WriteJSON(wc, &expect); err != nil { - t.Fatal("write", err) - } - - if err := ReadJSON(rc, &actual); err != nil { - t.Fatal("read", err) - } - - if !reflect.DeepEqual(&actual, &expect) { - t.Fatal("equal", actual, expect) - } -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/package.json b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/package.json deleted file mode 100644 index 0411f5e0..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "websocket", - "author": "whyrusleeping", - "version": "1.0.0", - "language": "go", - "gx": { - "dvcsimport": "github.com/gorilla/websocket" - } -} \ No newline at end of file diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/server.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/server.go deleted file mode 100644 index 3a9805f0..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/server.go +++ /dev/null @@ -1,250 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 websocket - -import ( - "bufio" - "errors" - "net" - "net/http" - "net/url" - "strings" - "time" -) - -// HandshakeError describes an error with the handshake from the peer. -type HandshakeError struct { - message string -} - -func (e HandshakeError) Error() string { return e.message } - -// Upgrader specifies parameters for upgrading an HTTP connection to a -// WebSocket connection. -type Upgrader struct { - // HandshakeTimeout specifies the duration for the handshake to complete. - HandshakeTimeout time.Duration - - // ReadBufferSize and WriteBufferSize specify I/O buffer sizes. If a buffer - // size is zero, then a default value of 4096 is used. The I/O buffer sizes - // do not limit the size of the messages that can be sent or received. - ReadBufferSize, WriteBufferSize int - - // Subprotocols specifies the server's supported protocols in order of - // preference. If this field is set, then the Upgrade method negotiates a - // subprotocol by selecting the first match in this list with a protocol - // requested by the client. - Subprotocols []string - - // Error specifies the function for generating HTTP error responses. If Error - // is nil, then http.Error is used to generate the HTTP response. - Error func(w http.ResponseWriter, r *http.Request, status int, reason error) - - // CheckOrigin returns true if the request Origin header is acceptable. If - // CheckOrigin is nil, the host in the Origin header must not be set or - // must match the host of the request. - CheckOrigin func(r *http.Request) bool -} - -func (u *Upgrader) returnError(w http.ResponseWriter, r *http.Request, status int, reason string) (*Conn, error) { - err := HandshakeError{reason} - if u.Error != nil { - u.Error(w, r, status, err) - } else { - http.Error(w, http.StatusText(status), status) - } - return nil, err -} - -// checkSameOrigin returns true if the origin is not set or is equal to the request host. -func checkSameOrigin(r *http.Request) bool { - origin := r.Header["Origin"] - if len(origin) == 0 { - return true - } - u, err := url.Parse(origin[0]) - if err != nil { - return false - } - return u.Host == r.Host -} - -func (u *Upgrader) selectSubprotocol(r *http.Request, responseHeader http.Header) string { - if u.Subprotocols != nil { - clientProtocols := Subprotocols(r) - for _, serverProtocol := range u.Subprotocols { - for _, clientProtocol := range clientProtocols { - if clientProtocol == serverProtocol { - return clientProtocol - } - } - } - } else if responseHeader != nil { - return responseHeader.Get("Sec-Websocket-Protocol") - } - return "" -} - -// Upgrade upgrades the HTTP server connection to the WebSocket protocol. -// -// The responseHeader is included in the response to the client's upgrade -// request. Use the responseHeader to specify cookies (Set-Cookie) and the -// application negotiated subprotocol (Sec-Websocket-Protocol). -func (u *Upgrader) Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header) (*Conn, error) { - if r.Method != "GET" { - return u.returnError(w, r, http.StatusMethodNotAllowed, "websocket: method not GET") - } - if values := r.Header["Sec-Websocket-Version"]; len(values) == 0 || values[0] != "13" { - return u.returnError(w, r, http.StatusBadRequest, "websocket: version != 13") - } - - if !tokenListContainsValue(r.Header, "Connection", "upgrade") { - return u.returnError(w, r, http.StatusBadRequest, "websocket: could not find connection header with token 'upgrade'") - } - - if !tokenListContainsValue(r.Header, "Upgrade", "websocket") { - return u.returnError(w, r, http.StatusBadRequest, "websocket: could not find upgrade header with token 'websocket'") - } - - checkOrigin := u.CheckOrigin - if checkOrigin == nil { - checkOrigin = checkSameOrigin - } - if !checkOrigin(r) { - return u.returnError(w, r, http.StatusForbidden, "websocket: origin not allowed") - } - - challengeKey := r.Header.Get("Sec-Websocket-Key") - if challengeKey == "" { - return u.returnError(w, r, http.StatusBadRequest, "websocket: key missing or blank") - } - - subprotocol := u.selectSubprotocol(r, responseHeader) - - var ( - netConn net.Conn - br *bufio.Reader - err error - ) - - h, ok := w.(http.Hijacker) - if !ok { - return u.returnError(w, r, http.StatusInternalServerError, "websocket: response does not implement http.Hijacker") - } - var rw *bufio.ReadWriter - netConn, rw, err = h.Hijack() - if err != nil { - return u.returnError(w, r, http.StatusInternalServerError, err.Error()) - } - br = rw.Reader - - if br.Buffered() > 0 { - netConn.Close() - return nil, errors.New("websocket: client sent data before handshake is complete") - } - - c := newConn(netConn, true, u.ReadBufferSize, u.WriteBufferSize) - c.subprotocol = subprotocol - - p := c.writeBuf[:0] - p = append(p, "HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: "...) - p = append(p, computeAcceptKey(challengeKey)...) - p = append(p, "\r\n"...) - if c.subprotocol != "" { - p = append(p, "Sec-Websocket-Protocol: "...) - p = append(p, c.subprotocol...) - p = append(p, "\r\n"...) - } - for k, vs := range responseHeader { - if k == "Sec-Websocket-Protocol" { - continue - } - for _, v := range vs { - p = append(p, k...) - p = append(p, ": "...) - for i := 0; i < len(v); i++ { - b := v[i] - if b <= 31 { - // prevent response splitting. - b = ' ' - } - p = append(p, b) - } - p = append(p, "\r\n"...) - } - } - p = append(p, "\r\n"...) - - // Clear deadlines set by HTTP server. - netConn.SetDeadline(time.Time{}) - - if u.HandshakeTimeout > 0 { - netConn.SetWriteDeadline(time.Now().Add(u.HandshakeTimeout)) - } - if _, err = netConn.Write(p); err != nil { - netConn.Close() - return nil, err - } - if u.HandshakeTimeout > 0 { - netConn.SetWriteDeadline(time.Time{}) - } - - return c, nil -} - -// Upgrade upgrades the HTTP server connection to the WebSocket protocol. -// -// This function is deprecated, use websocket.Upgrader instead. -// -// The application is responsible for checking the request origin before -// calling Upgrade. An example implementation of the same origin policy is: -// -// if req.Header.Get("Origin") != "http://"+req.Host { -// http.Error(w, "Origin not allowed", 403) -// return -// } -// -// If the endpoint supports subprotocols, then the application is responsible -// for negotiating the protocol used on the connection. Use the Subprotocols() -// function to get the subprotocols requested by the client. Use the -// Sec-Websocket-Protocol response header to specify the subprotocol selected -// by the application. -// -// The responseHeader is included in the response to the client's upgrade -// request. Use the responseHeader to specify cookies (Set-Cookie) and the -// negotiated subprotocol (Sec-Websocket-Protocol). -// -// The connection buffers IO to the underlying network connection. The -// readBufSize and writeBufSize parameters specify the size of the buffers to -// use. Messages can be larger than the buffers. -// -// If the request is not a valid WebSocket handshake, then Upgrade returns an -// error of type HandshakeError. Applications should handle this error by -// replying to the client with an HTTP error response. -func Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header, readBufSize, writeBufSize int) (*Conn, error) { - u := Upgrader{ReadBufferSize: readBufSize, WriteBufferSize: writeBufSize} - u.Error = func(w http.ResponseWriter, r *http.Request, status int, reason error) { - // don't return errors to maintain backwards compatibility - } - u.CheckOrigin = func(r *http.Request) bool { - // allow all connections by default - return true - } - return u.Upgrade(w, r, responseHeader) -} - -// Subprotocols returns the subprotocols requested by the client in the -// Sec-Websocket-Protocol header. -func Subprotocols(r *http.Request) []string { - h := strings.TrimSpace(r.Header.Get("Sec-Websocket-Protocol")) - if h == "" { - return nil - } - protocols := strings.Split(h, ",") - for i := range protocols { - protocols[i] = strings.TrimSpace(protocols[i]) - } - return protocols -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/server_test.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/server_test.go deleted file mode 100644 index ead0776a..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/server_test.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 websocket - -import ( - "net/http" - "reflect" - "testing" -) - -var subprotocolTests = []struct { - h string - protocols []string -}{ - {"", nil}, - {"foo", []string{"foo"}}, - {"foo,bar", []string{"foo", "bar"}}, - {"foo, bar", []string{"foo", "bar"}}, - {" foo, bar", []string{"foo", "bar"}}, - {" foo, bar ", []string{"foo", "bar"}}, -} - -func TestSubprotocols(t *testing.T) { - for _, st := range subprotocolTests { - r := http.Request{Header: http.Header{"Sec-Websocket-Protocol": {st.h}}} - protocols := Subprotocols(&r) - if !reflect.DeepEqual(st.protocols, protocols) { - t.Errorf("SubProtocols(%q) returned %#v, want %#v", st.h, protocols, st.protocols) - } - } -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/util.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/util.go deleted file mode 100644 index ffdc265e..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/util.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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 websocket - -import ( - "crypto/rand" - "crypto/sha1" - "encoding/base64" - "io" - "net/http" - "strings" -) - -// tokenListContainsValue returns true if the 1#token header with the given -// name contains token. -func tokenListContainsValue(header http.Header, name string, value string) bool { - for _, v := range header[name] { - for _, s := range strings.Split(v, ",") { - if strings.EqualFold(value, strings.TrimSpace(s)) { - return true - } - } - } - return false -} - -var keyGUID = []byte("258EAFA5-E914-47DA-95CA-C5AB0DC85B11") - -func computeAcceptKey(challengeKey string) string { - h := sha1.New() - h.Write([]byte(challengeKey)) - h.Write(keyGUID) - return base64.StdEncoding.EncodeToString(h.Sum(nil)) -} - -func generateChallengeKey() (string, error) { - p := make([]byte, 16) - if _, err := io.ReadFull(rand.Reader, p); err != nil { - return "", err - } - return base64.StdEncoding.EncodeToString(p), nil -} diff --git a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/util_test.go b/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/util_test.go deleted file mode 100644 index 91f70ceb..00000000 --- a/vendor/gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket/util_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2014 The Gorilla WebSocket 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 websocket - -import ( - "net/http" - "testing" -) - -var tokenListContainsValueTests = []struct { - value string - ok bool -}{ - {"WebSocket", true}, - {"WEBSOCKET", true}, - {"websocket", true}, - {"websockets", false}, - {"x websocket", false}, - {"websocket x", false}, - {"other,websocket,more", true}, - {"other, websocket, more", true}, -} - -func TestTokenListContainsValue(t *testing.T) { - for _, tt := range tokenListContainsValueTests { - h := http.Header{"Upgrade": {tt.value}} - ok := tokenListContainsValue(h, "Upgrade", "websocket") - if ok != tt.ok { - t.Errorf("tokenListContainsValue(h, n, %q) = %v, want %v", tt.value, ok, tt.ok) - } - } -} diff --git a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/.gxignore b/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/.travis.yml b/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/.travis.yml deleted file mode 100644 index 2199ce90..00000000 --- a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: go -go: - - 1.0 - - 1.1 - - 1.2 - - 1.3 - - 1.4 - - 1.5 -sudo: false -notifications: - email: false diff --git a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/LICENSE b/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/LICENSE deleted file mode 100644 index 6a1fb910..00000000 --- a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (C) 2013-2015 by Maxim Bublis - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/README.md b/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/README.md deleted file mode 100644 index 48d4937f..00000000 --- a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# UUID package for Go language - -[![Build Status](https://travis-ci.org/satori/go.uuid.png?branch=master)](https://travis-ci.org/satori/go.uuid) -[![GoDoc](http://godoc.org/github.com/satori/go.uuid?status.png)](http://godoc.org/github.com/satori/go.uuid) - -This package provides pure Go implementation of Universally Unique Identifier (UUID). Supported both creation and parsing of UUIDs. - -With 100% test coverage and benchmarks out of box. - -Supported versions: -* Version 1, based on timestamp and MAC address (RFC 4122) -* Version 2, based on timestamp, MAC address and POSIX UID/GID (DCE 1.1) -* Version 3, based on MD5 hashing (RFC 4122) -* Version 4, based on random numbers (RFC 4122) -* Version 5, based on SHA-1 hashing (RFC 4122) - -## Installation - -Use the `go` command: - - $ go get github.com/satori/go.uuid - -## Requirements - -UUID package requires any stable version of Go Programming Language. - -It is tested against following versions of Go: 1.0-1.5 - -## Example - -```go -package main - -import ( - "fmt" - "github.com/satori/go.uuid" -) - -func main() { - // Creating UUID Version 4 - u1 := uuid.NewV4() - fmt.Printf("UUIDv4: %s\n", u1) - - // Parsing UUID from string input - u2, err := uuid.FromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8") - if err != nil { - fmt.Printf("Something gone wrong: %s", err) - } - fmt.Printf("Successfully parsed: %s", u2) -} -``` - -## Documentation - -[Documentation](http://godoc.org/github.com/satori/go.uuid) is hosted at GoDoc project. - -## Links -* [RFC 4122](http://tools.ietf.org/html/rfc4122) -* [DCE 1.1: Authentication and Security Services](http://pubs.opengroup.org/onlinepubs/9696989899/chap5.htm#tagcjh_08_02_01_01) - -## Copyright - -Copyright (C) 2013-2015 by Maxim Bublis . - -UUID package released under MIT License. -See [LICENSE](https://github.com/satori/go.uuid/blob/master/LICENSE) for details. diff --git a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/benchmarks_test.go b/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/benchmarks_test.go deleted file mode 100644 index 9a85f7c6..00000000 --- a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/benchmarks_test.go +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright (C) 2013-2014 by Maxim Bublis -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -package uuid - -import ( - "testing" -) - -func BenchmarkFromBytes(b *testing.B) { - bytes := []byte{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - for i := 0; i < b.N; i++ { - FromBytes(bytes) - } -} - -func BenchmarkFromString(b *testing.B) { - s := "6ba7b810-9dad-11d1-80b4-00c04fd430c8" - for i := 0; i < b.N; i++ { - FromString(s) - } -} - -func BenchmarkFromStringUrn(b *testing.B) { - s := "urn:uuid:6ba7b810-9dad-11d1-80b4-00c04fd430c8" - for i := 0; i < b.N; i++ { - FromString(s) - } -} - -func BenchmarkFromStringWithBrackets(b *testing.B) { - s := "{6ba7b810-9dad-11d1-80b4-00c04fd430c8}" - for i := 0; i < b.N; i++ { - FromString(s) - } -} - -func BenchmarkNewV1(b *testing.B) { - for i := 0; i < b.N; i++ { - NewV1() - } -} - -func BenchmarkNewV2(b *testing.B) { - for i := 0; i < b.N; i++ { - NewV2(DomainPerson) - } -} - -func BenchmarkNewV3(b *testing.B) { - for i := 0; i < b.N; i++ { - NewV3(NamespaceDNS, "www.example.com") - } -} - -func BenchmarkNewV4(b *testing.B) { - for i := 0; i < b.N; i++ { - NewV4() - } -} - -func BenchmarkNewV5(b *testing.B) { - for i := 0; i < b.N; i++ { - NewV5(NamespaceDNS, "www.example.com") - } -} - -func BenchmarkMarshalBinary(b *testing.B) { - u := NewV4() - for i := 0; i < b.N; i++ { - u.MarshalBinary() - } -} - -func BenchmarkMarshalText(b *testing.B) { - u := NewV4() - for i := 0; i < b.N; i++ { - u.MarshalText() - } -} - -func BenchmarkUnmarshalBinary(b *testing.B) { - bytes := []byte{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - u := UUID{} - for i := 0; i < b.N; i++ { - u.UnmarshalBinary(bytes) - } -} - -func BenchmarkUnmarshalText(b *testing.B) { - bytes := []byte("6ba7b810-9dad-11d1-80b4-00c04fd430c8") - u := UUID{} - for i := 0; i < b.N; i++ { - u.UnmarshalText(bytes) - } -} - -func BenchmarkMarshalToString(b *testing.B) { - u := NewV4() - for i := 0; i < b.N; i++ { - u.String() - } -} diff --git a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/package.json b/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/package.json deleted file mode 100644 index 95344352..00000000 --- a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "go.uuid", - "author": "whyrusleeping", - "version": "0.0.0", - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/satori/go.uuid" - } -} \ No newline at end of file diff --git a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/uuid.go b/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/uuid.go deleted file mode 100644 index 03841d86..00000000 --- a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/uuid.go +++ /dev/null @@ -1,435 +0,0 @@ -// Copyright (C) 2013-2015 by Maxim Bublis -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -// Package uuid provides implementation of Universally Unique Identifier (UUID). -// Supported versions are 1, 3, 4 and 5 (as specified in RFC 4122) and -// version 2 (as specified in DCE 1.1). -package uuid - -import ( - "bytes" - "crypto/md5" - "crypto/rand" - "crypto/sha1" - "database/sql/driver" - "encoding/binary" - "encoding/hex" - "fmt" - "hash" - "net" - "os" - "sync" - "time" -) - -// UUID layout variants. -const ( - VariantNCS = iota - VariantRFC4122 - VariantMicrosoft - VariantFuture -) - -// UUID DCE domains. -const ( - DomainPerson = iota - DomainGroup - DomainOrg -) - -// Difference in 100-nanosecond intervals between -// UUID epoch (October 15, 1582) and Unix epoch (January 1, 1970). -const epochStart = 122192928000000000 - -// Used in string method conversion -const dash byte = '-' - -// UUID v1/v2 storage. -var ( - storageMutex sync.Mutex - storageOnce sync.Once - epochFunc = unixTimeFunc - clockSequence uint16 - lastTime uint64 - hardwareAddr [6]byte - posixUID = uint32(os.Getuid()) - posixGID = uint32(os.Getgid()) -) - -// String parse helpers. -var ( - urnPrefix = []byte("urn:uuid:") - byteGroups = []int{8, 4, 4, 4, 12} -) - -func initClockSequence() { - buf := make([]byte, 2) - safeRandom(buf) - clockSequence = binary.BigEndian.Uint16(buf) -} - -func initHardwareAddr() { - interfaces, err := net.Interfaces() - if err == nil { - for _, iface := range interfaces { - if len(iface.HardwareAddr) >= 6 { - copy(hardwareAddr[:], iface.HardwareAddr) - return - } - } - } - - // Initialize hardwareAddr randomly in case - // of real network interfaces absence - safeRandom(hardwareAddr[:]) - - // Set multicast bit as recommended in RFC 4122 - hardwareAddr[0] |= 0x01 -} - -func initStorage() { - initClockSequence() - initHardwareAddr() -} - -func safeRandom(dest []byte) { - if _, err := rand.Read(dest); err != nil { - panic(err) - } -} - -// Returns difference in 100-nanosecond intervals between -// UUID epoch (October 15, 1582) and current time. -// This is default epoch calculation function. -func unixTimeFunc() uint64 { - return epochStart + uint64(time.Now().UnixNano()/100) -} - -// UUID representation compliant with specification -// described in RFC 4122. -type UUID [16]byte - -// The nil UUID is special form of UUID that is specified to have all -// 128 bits set to zero. -var Nil = UUID{} - -// Predefined namespace UUIDs. -var ( - NamespaceDNS, _ = FromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8") - NamespaceURL, _ = FromString("6ba7b811-9dad-11d1-80b4-00c04fd430c8") - NamespaceOID, _ = FromString("6ba7b812-9dad-11d1-80b4-00c04fd430c8") - NamespaceX500, _ = FromString("6ba7b814-9dad-11d1-80b4-00c04fd430c8") -) - -// And returns result of binary AND of two UUIDs. -func And(u1 UUID, u2 UUID) UUID { - u := UUID{} - for i := 0; i < 16; i++ { - u[i] = u1[i] & u2[i] - } - return u -} - -// Or returns result of binary OR of two UUIDs. -func Or(u1 UUID, u2 UUID) UUID { - u := UUID{} - for i := 0; i < 16; i++ { - u[i] = u1[i] | u2[i] - } - return u -} - -// Equal returns true if u1 and u2 equals, otherwise returns false. -func Equal(u1 UUID, u2 UUID) bool { - return bytes.Equal(u1[:], u2[:]) -} - -// Version returns algorithm version used to generate UUID. -func (u UUID) Version() uint { - return uint(u[6] >> 4) -} - -// Variant returns UUID layout variant. -func (u UUID) Variant() uint { - switch { - case (u[8] & 0x80) == 0x00: - return VariantNCS - case (u[8]&0xc0)|0x80 == 0x80: - return VariantRFC4122 - case (u[8]&0xe0)|0xc0 == 0xc0: - return VariantMicrosoft - } - return VariantFuture -} - -// Bytes returns bytes slice representation of UUID. -func (u UUID) Bytes() []byte { - return u[:] -} - -// Returns canonical string representation of UUID: -// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. -func (u UUID) String() string { - buf := make([]byte, 36) - - hex.Encode(buf[0:8], u[0:4]) - buf[8] = dash - hex.Encode(buf[9:13], u[4:6]) - buf[13] = dash - hex.Encode(buf[14:18], u[6:8]) - buf[18] = dash - hex.Encode(buf[19:23], u[8:10]) - buf[23] = dash - hex.Encode(buf[24:], u[10:]) - - return string(buf) -} - -// SetVersion sets version bits. -func (u *UUID) SetVersion(v byte) { - u[6] = (u[6] & 0x0f) | (v << 4) -} - -// SetVariant sets variant bits as described in RFC 4122. -func (u *UUID) SetVariant() { - u[8] = (u[8] & 0xbf) | 0x80 -} - -// MarshalText implements the encoding.TextMarshaler interface. -// The encoding is the same as returned by String. -func (u UUID) MarshalText() (text []byte, err error) { - text = []byte(u.String()) - return -} - -// UnmarshalText implements the encoding.TextUnmarshaler interface. -// Following formats are supported: -// "6ba7b810-9dad-11d1-80b4-00c04fd430c8", -// "{6ba7b810-9dad-11d1-80b4-00c04fd430c8}", -// "urn:uuid:6ba7b810-9dad-11d1-80b4-00c04fd430c8" -func (u *UUID) UnmarshalText(text []byte) (err error) { - if len(text) < 32 { - err = fmt.Errorf("uuid: invalid UUID string: %s", text) - return - } - - if bytes.Equal(text[:9], urnPrefix) { - text = text[9:] - } else if text[0] == '{' { - text = text[1:] - } - - b := u[:] - - for _, byteGroup := range byteGroups { - if text[0] == '-' { - text = text[1:] - } - - _, err = hex.Decode(b[:byteGroup/2], text[:byteGroup]) - - if err != nil { - return - } - - text = text[byteGroup:] - b = b[byteGroup/2:] - } - - return -} - -// MarshalBinary implements the encoding.BinaryMarshaler interface. -func (u UUID) MarshalBinary() (data []byte, err error) { - data = u.Bytes() - return -} - -// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface. -// It will return error if the slice isn't 16 bytes long. -func (u *UUID) UnmarshalBinary(data []byte) (err error) { - if len(data) != 16 { - err = fmt.Errorf("uuid: UUID must be exactly 16 bytes long, got %d bytes", len(data)) - return - } - copy(u[:], data) - - return -} - -// Value implements the driver.Valuer interface. -func (u UUID) Value() (driver.Value, error) { - return u.String(), nil -} - -// Scan implements the sql.Scanner interface. -// A 16-byte slice is handled by UnmarshalBinary, while -// a longer byte slice or a string is handled by UnmarshalText. -func (u *UUID) Scan(src interface{}) error { - switch src := src.(type) { - case []byte: - if len(src) == 16 { - return u.UnmarshalBinary(src) - } - return u.UnmarshalText(src) - - case string: - return u.UnmarshalText([]byte(src)) - } - - return fmt.Errorf("uuid: cannot convert %T to UUID", src) -} - -// FromBytes returns UUID converted from raw byte slice input. -// It will return error if the slice isn't 16 bytes long. -func FromBytes(input []byte) (u UUID, err error) { - err = u.UnmarshalBinary(input) - return -} - -// FromBytesOrNil returns UUID converted from raw byte slice input. -// Same behavior as FromBytes, but returns a Nil UUID on error. -func FromBytesOrNil(input []byte) UUID { - uuid, err := FromBytes(input) - if err != nil { - return Nil - } - return uuid -} - -// FromString returns UUID parsed from string input. -// Input is expected in a form accepted by UnmarshalText. -func FromString(input string) (u UUID, err error) { - err = u.UnmarshalText([]byte(input)) - return -} - -// FromStringOrNil returns UUID parsed from string input. -// Same behavior as FromString, but returns a Nil UUID on error. -func FromStringOrNil(input string) UUID { - uuid, err := FromString(input) - if err != nil { - return Nil - } - return uuid -} - -// Returns UUID v1/v2 storage state. -// Returns epoch timestamp, clock sequence, and hardware address. -func getStorage() (uint64, uint16, []byte) { - storageOnce.Do(initStorage) - - storageMutex.Lock() - defer storageMutex.Unlock() - - timeNow := epochFunc() - // Clock changed backwards since last UUID generation. - // Should increase clock sequence. - if timeNow <= lastTime { - clockSequence++ - } - lastTime = timeNow - - return timeNow, clockSequence, hardwareAddr[:] -} - -// NewV1 returns UUID based on current timestamp and MAC address. -func NewV1() UUID { - u := UUID{} - - timeNow, clockSeq, hardwareAddr := getStorage() - - binary.BigEndian.PutUint32(u[0:], uint32(timeNow)) - binary.BigEndian.PutUint16(u[4:], uint16(timeNow>>32)) - binary.BigEndian.PutUint16(u[6:], uint16(timeNow>>48)) - binary.BigEndian.PutUint16(u[8:], clockSeq) - - copy(u[10:], hardwareAddr) - - u.SetVersion(1) - u.SetVariant() - - return u -} - -// NewV2 returns DCE Security UUID based on POSIX UID/GID. -func NewV2(domain byte) UUID { - u := UUID{} - - timeNow, clockSeq, hardwareAddr := getStorage() - - switch domain { - case DomainPerson: - binary.BigEndian.PutUint32(u[0:], posixUID) - case DomainGroup: - binary.BigEndian.PutUint32(u[0:], posixGID) - } - - binary.BigEndian.PutUint16(u[4:], uint16(timeNow>>32)) - binary.BigEndian.PutUint16(u[6:], uint16(timeNow>>48)) - binary.BigEndian.PutUint16(u[8:], clockSeq) - u[9] = domain - - copy(u[10:], hardwareAddr) - - u.SetVersion(2) - u.SetVariant() - - return u -} - -// NewV3 returns UUID based on MD5 hash of namespace UUID and name. -func NewV3(ns UUID, name string) UUID { - u := newFromHash(md5.New(), ns, name) - u.SetVersion(3) - u.SetVariant() - - return u -} - -// NewV4 returns random generated UUID. -func NewV4() UUID { - u := UUID{} - safeRandom(u[:]) - u.SetVersion(4) - u.SetVariant() - - return u -} - -// NewV5 returns UUID based on SHA-1 hash of namespace UUID and name. -func NewV5(ns UUID, name string) UUID { - u := newFromHash(sha1.New(), ns, name) - u.SetVersion(5) - u.SetVariant() - - return u -} - -// Returns UUID based on hashing of namespace UUID and name. -func newFromHash(h hash.Hash, ns UUID, name string) UUID { - u := UUID{} - h.Write(ns[:]) - h.Write([]byte(name)) - copy(u[:], h.Sum(nil)) - - return u -} diff --git a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/uuid_test.go b/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/uuid_test.go deleted file mode 100644 index a5015031..00000000 --- a/vendor/gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid/uuid_test.go +++ /dev/null @@ -1,508 +0,0 @@ -// Copyright (C) 2013, 2015 by Maxim Bublis -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -package uuid - -import ( - "bytes" - "testing" -) - -func TestBytes(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - - bytes1 := []byte{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - - if !bytes.Equal(u.Bytes(), bytes1) { - t.Errorf("Incorrect bytes representation for UUID: %s", u) - } -} - -func TestString(t *testing.T) { - if NamespaceDNS.String() != "6ba7b810-9dad-11d1-80b4-00c04fd430c8" { - t.Errorf("Incorrect string representation for UUID: %s", NamespaceDNS.String()) - } -} - -func TestEqual(t *testing.T) { - if !Equal(NamespaceDNS, NamespaceDNS) { - t.Errorf("Incorrect comparison of %s and %s", NamespaceDNS, NamespaceDNS) - } - - if Equal(NamespaceDNS, NamespaceURL) { - t.Errorf("Incorrect comparison of %s and %s", NamespaceDNS, NamespaceURL) - } -} - -func TestOr(t *testing.T) { - u1 := UUID{0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff} - u2 := UUID{0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00} - - u := UUID{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} - - if !Equal(u, Or(u1, u2)) { - t.Errorf("Incorrect bitwise OR result %s", Or(u1, u2)) - } -} - -func TestAnd(t *testing.T) { - u1 := UUID{0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff} - u2 := UUID{0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00} - - u := UUID{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} - - if !Equal(u, And(u1, u2)) { - t.Errorf("Incorrect bitwise AND result %s", And(u1, u2)) - } -} - -func TestVersion(t *testing.T) { - u := UUID{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} - - if u.Version() != 1 { - t.Errorf("Incorrect version for UUID: %d", u.Version()) - } -} - -func TestSetVersion(t *testing.T) { - u := UUID{} - u.SetVersion(4) - - if u.Version() != 4 { - t.Errorf("Incorrect version for UUID after u.setVersion(4): %d", u.Version()) - } -} - -func TestVariant(t *testing.T) { - u1 := UUID{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} - - if u1.Variant() != VariantNCS { - t.Errorf("Incorrect variant for UUID variant %d: %d", VariantNCS, u1.Variant()) - } - - u2 := UUID{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} - - if u2.Variant() != VariantRFC4122 { - t.Errorf("Incorrect variant for UUID variant %d: %d", VariantRFC4122, u2.Variant()) - } - - u3 := UUID{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} - - if u3.Variant() != VariantMicrosoft { - t.Errorf("Incorrect variant for UUID variant %d: %d", VariantMicrosoft, u3.Variant()) - } - - u4 := UUID{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} - - if u4.Variant() != VariantFuture { - t.Errorf("Incorrect variant for UUID variant %d: %d", VariantFuture, u4.Variant()) - } -} - -func TestSetVariant(t *testing.T) { - u := new(UUID) - u.SetVariant() - - if u.Variant() != VariantRFC4122 { - t.Errorf("Incorrect variant for UUID after u.setVariant(): %d", u.Variant()) - } -} - -func TestFromBytes(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - b1 := []byte{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - - u1, err := FromBytes(b1) - if err != nil { - t.Errorf("Error parsing UUID from bytes: %s", err) - } - - if !Equal(u, u1) { - t.Errorf("UUIDs should be equal: %s and %s", u, u1) - } - - b2 := []byte{} - - _, err = FromBytes(b2) - if err == nil { - t.Errorf("Should return error parsing from empty byte slice, got %s", err) - } -} - -func TestMarshalBinary(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - b1 := []byte{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - - b2, err := u.MarshalBinary() - if err != nil { - t.Errorf("Error marshaling UUID: %s", err) - } - - if !bytes.Equal(b1, b2) { - t.Errorf("Marshaled UUID should be %s, got %s", b1, b2) - } -} - -func TestUnmarshalBinary(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - b1 := []byte{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - - u1 := UUID{} - err := u1.UnmarshalBinary(b1) - if err != nil { - t.Errorf("Error unmarshaling UUID: %s", err) - } - - if !Equal(u, u1) { - t.Errorf("UUIDs should be equal: %s and %s", u, u1) - } - - b2 := []byte{} - u2 := UUID{} - - err = u2.UnmarshalBinary(b2) - if err == nil { - t.Errorf("Should return error unmarshalling from empty byte slice, got %s", err) - } -} - -func TestFromString(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - - s1 := "6ba7b810-9dad-11d1-80b4-00c04fd430c8" - s2 := "{6ba7b810-9dad-11d1-80b4-00c04fd430c8}" - s3 := "urn:uuid:6ba7b810-9dad-11d1-80b4-00c04fd430c8" - - _, err := FromString("") - if err == nil { - t.Errorf("Should return error trying to parse empty string, got %s", err) - } - - u1, err := FromString(s1) - if err != nil { - t.Errorf("Error parsing UUID from string: %s", err) - } - - if !Equal(u, u1) { - t.Errorf("UUIDs should be equal: %s and %s", u, u1) - } - - u2, err := FromString(s2) - if err != nil { - t.Errorf("Error parsing UUID from string: %s", err) - } - - if !Equal(u, u2) { - t.Errorf("UUIDs should be equal: %s and %s", u, u2) - } - - u3, err := FromString(s3) - if err != nil { - t.Errorf("Error parsing UUID from string: %s", err) - } - - if !Equal(u, u3) { - t.Errorf("UUIDs should be equal: %s and %s", u, u3) - } -} - -func TestFromStringOrNil(t *testing.T) { - u := FromStringOrNil("") - if u != Nil { - t.Errorf("Should return Nil UUID on parse failure, got %s", u) - } -} - -func TestFromBytesOrNil(t *testing.T) { - b := []byte{} - u := FromBytesOrNil(b) - if u != Nil { - t.Errorf("Should return Nil UUID on parse failure, got %s", u) - } -} - -func TestMarshalText(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - b1 := []byte("6ba7b810-9dad-11d1-80b4-00c04fd430c8") - - b2, err := u.MarshalText() - if err != nil { - t.Errorf("Error marshaling UUID: %s", err) - } - - if !bytes.Equal(b1, b2) { - t.Errorf("Marshaled UUID should be %s, got %s", b1, b2) - } -} - -func TestUnmarshalText(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - b1 := []byte("6ba7b810-9dad-11d1-80b4-00c04fd430c8") - - u1 := UUID{} - err := u1.UnmarshalText(b1) - if err != nil { - t.Errorf("Error unmarshaling UUID: %s", err) - } - - if !Equal(u, u1) { - t.Errorf("UUIDs should be equal: %s and %s", u, u1) - } - - b2 := []byte("") - u2 := UUID{} - - err = u2.UnmarshalText(b2) - if err == nil { - t.Errorf("Should return error trying to unmarshal from empty string") - } -} - -func TestValue(t *testing.T) { - u, err := FromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8") - if err != nil { - t.Errorf("Error parsing UUID from string: %s", err) - } - - val, err := u.Value() - if err != nil { - t.Errorf("Error getting UUID value: %s", err) - } - - if val != u.String() { - t.Errorf("Wrong value returned, should be equal: %s and %s", val, u) - } -} - -func TestScanBinary(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - b1 := []byte{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - - u1 := UUID{} - err := u1.Scan(b1) - if err != nil { - t.Errorf("Error unmarshaling UUID: %s", err) - } - - if !Equal(u, u1) { - t.Errorf("UUIDs should be equal: %s and %s", u, u1) - } - - b2 := []byte{} - u2 := UUID{} - - err = u2.Scan(b2) - if err == nil { - t.Errorf("Should return error unmarshalling from empty byte slice, got %s", err) - } -} - -func TestScanString(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - s1 := "6ba7b810-9dad-11d1-80b4-00c04fd430c8" - - u1 := UUID{} - err := u1.Scan(s1) - if err != nil { - t.Errorf("Error unmarshaling UUID: %s", err) - } - - if !Equal(u, u1) { - t.Errorf("UUIDs should be equal: %s and %s", u, u1) - } - - s2 := "" - u2 := UUID{} - - err = u2.Scan(s2) - if err == nil { - t.Errorf("Should return error trying to unmarshal from empty string") - } -} - -func TestScanText(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - b1 := []byte("6ba7b810-9dad-11d1-80b4-00c04fd430c8") - - u1 := UUID{} - err := u1.Scan(b1) - if err != nil { - t.Errorf("Error unmarshaling UUID: %s", err) - } - - if !Equal(u, u1) { - t.Errorf("UUIDs should be equal: %s and %s", u, u1) - } - - b2 := []byte("") - u2 := UUID{} - - err = u2.Scan(b2) - if err == nil { - t.Errorf("Should return error trying to unmarshal from empty string") - } -} - -func TestScanUnsupported(t *testing.T) { - u := UUID{} - - err := u.Scan(true) - if err == nil { - t.Errorf("Should return error trying to unmarshal from bool") - } -} - -func TestNewV1(t *testing.T) { - u := NewV1() - - if u.Version() != 1 { - t.Errorf("UUIDv1 generated with incorrect version: %d", u.Version()) - } - - if u.Variant() != VariantRFC4122 { - t.Errorf("UUIDv1 generated with incorrect variant: %d", u.Variant()) - } - - u1 := NewV1() - u2 := NewV1() - - if Equal(u1, u2) { - t.Errorf("UUIDv1 generated two equal UUIDs: %s and %s", u1, u2) - } - - oldFunc := epochFunc - epochFunc = func() uint64 { return 0 } - - u3 := NewV1() - u4 := NewV1() - - if Equal(u3, u4) { - t.Errorf("UUIDv1 generated two equal UUIDs: %s and %s", u3, u4) - } - - epochFunc = oldFunc -} - -func TestNewV2(t *testing.T) { - u1 := NewV2(DomainPerson) - - if u1.Version() != 2 { - t.Errorf("UUIDv2 generated with incorrect version: %d", u1.Version()) - } - - if u1.Variant() != VariantRFC4122 { - t.Errorf("UUIDv2 generated with incorrect variant: %d", u1.Variant()) - } - - u2 := NewV2(DomainGroup) - - if u2.Version() != 2 { - t.Errorf("UUIDv2 generated with incorrect version: %d", u2.Version()) - } - - if u2.Variant() != VariantRFC4122 { - t.Errorf("UUIDv2 generated with incorrect variant: %d", u2.Variant()) - } -} - -func TestNewV3(t *testing.T) { - u := NewV3(NamespaceDNS, "www.example.com") - - if u.Version() != 3 { - t.Errorf("UUIDv3 generated with incorrect version: %d", u.Version()) - } - - if u.Variant() != VariantRFC4122 { - t.Errorf("UUIDv3 generated with incorrect variant: %d", u.Variant()) - } - - if u.String() != "5df41881-3aed-3515-88a7-2f4a814cf09e" { - t.Errorf("UUIDv3 generated incorrectly: %s", u.String()) - } - - u = NewV3(NamespaceDNS, "python.org") - - if u.String() != "6fa459ea-ee8a-3ca4-894e-db77e160355e" { - t.Errorf("UUIDv3 generated incorrectly: %s", u.String()) - } - - u1 := NewV3(NamespaceDNS, "golang.org") - u2 := NewV3(NamespaceDNS, "golang.org") - if !Equal(u1, u2) { - t.Errorf("UUIDv3 generated different UUIDs for same namespace and name: %s and %s", u1, u2) - } - - u3 := NewV3(NamespaceDNS, "example.com") - if Equal(u1, u3) { - t.Errorf("UUIDv3 generated same UUIDs for different names in same namespace: %s and %s", u1, u2) - } - - u4 := NewV3(NamespaceURL, "golang.org") - if Equal(u1, u4) { - t.Errorf("UUIDv3 generated same UUIDs for sane names in different namespaces: %s and %s", u1, u4) - } -} - -func TestNewV4(t *testing.T) { - u := NewV4() - - if u.Version() != 4 { - t.Errorf("UUIDv4 generated with incorrect version: %d", u.Version()) - } - - if u.Variant() != VariantRFC4122 { - t.Errorf("UUIDv4 generated with incorrect variant: %d", u.Variant()) - } -} - -func TestNewV5(t *testing.T) { - u := NewV5(NamespaceDNS, "www.example.com") - - if u.Version() != 5 { - t.Errorf("UUIDv5 generated with incorrect version: %d", u.Version()) - } - - if u.Variant() != VariantRFC4122 { - t.Errorf("UUIDv5 generated with incorrect variant: %d", u.Variant()) - } - - u = NewV5(NamespaceDNS, "python.org") - - if u.String() != "886313e1-3b8a-5372-9b90-0c9aee199e5d" { - t.Errorf("UUIDv5 generated incorrectly: %s", u.String()) - } - - u1 := NewV5(NamespaceDNS, "golang.org") - u2 := NewV5(NamespaceDNS, "golang.org") - if !Equal(u1, u2) { - t.Errorf("UUIDv5 generated different UUIDs for same namespace and name: %s and %s", u1, u2) - } - - u3 := NewV5(NamespaceDNS, "example.com") - if Equal(u1, u3) { - t.Errorf("UUIDv5 generated same UUIDs for different names in same namespace: %s and %s", u1, u2) - } - - u4 := NewV5(NamespaceURL, "golang.org") - if Equal(u1, u4) { - t.Errorf("UUIDv3 generated same UUIDs for sane names in different namespaces: %s and %s", u1, u4) - } -} diff --git a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/.gxignore b/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/file.go b/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/file.go deleted file mode 100644 index e3bd49d7..00000000 --- a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/file.go +++ /dev/null @@ -1,11 +0,0 @@ -package util - -import "os" - -func FileExists(filename string) bool { - fi, err := os.Lstat(filename) - if fi != nil || (err != nil && !os.IsNotExist(err)) { - return true - } - return false -} diff --git a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/file_test.go b/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/file_test.go deleted file mode 100644 index 040b2292..00000000 --- a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/file_test.go +++ /dev/null @@ -1,10 +0,0 @@ -package util - -import "testing" - -func TestFileDoesNotExist(t *testing.T) { - t.Parallel() - if FileExists("i would be surprised to discover that this file exists") { - t.Fail() - } -} diff --git a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/package.json b/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/package.json deleted file mode 100644 index 6a813405..00000000 --- a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "go-ipfs-util", - "author": "whyrusleeping", - "version": "1.0.0", - "gxDependencies": [ - { - "name": "go-base58", - "hash": "QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ", - "version": "1.0.0" - }, - { - "name": "go-multihash", - "hash": "Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a", - "version": "0.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/ipfs/go-ipfs-util" - } -} \ No newline at end of file diff --git a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/time.go b/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/time.go deleted file mode 100644 index 5fc6ec66..00000000 --- a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/time.go +++ /dev/null @@ -1,17 +0,0 @@ -package util - -import "time" - -var TimeFormatIpfs = time.RFC3339Nano - -func ParseRFC3339(s string) (time.Time, error) { - t, err := time.Parse(TimeFormatIpfs, s) - if err != nil { - return time.Time{}, err - } - return t.UTC(), nil -} - -func FormatRFC3339(t time.Time) string { - return t.UTC().Format(TimeFormatIpfs) -} diff --git a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/time_test.go b/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/time_test.go deleted file mode 100644 index b5a98caa..00000000 --- a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/time_test.go +++ /dev/null @@ -1,16 +0,0 @@ -package util - -import ( - "testing" - "time" -) - -func TestTimeFormatParseInversion(t *testing.T) { - v, err := ParseRFC3339(FormatRFC3339(time.Now())) - if err != nil { - t.Fatal(err) - } - if v.Location() != time.UTC { - t.Fatal("Time should be UTC") - } -} diff --git a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/util.go b/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/util.go deleted file mode 100644 index dd944bca..00000000 --- a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/util.go +++ /dev/null @@ -1,148 +0,0 @@ -// Package util implements various utility functions used within ipfs -// that do not currently have a better place to live. -package util - -import ( - "errors" - "io" - "math/rand" - "os" - "path/filepath" - "runtime/debug" - "strings" - "time" - - b58 "gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58" - mh "gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash" -) - -// Debug is a global flag for debugging. -var Debug bool - -// ErrNotImplemented signifies a function has not been implemented yet. -var ErrNotImplemented = errors.New("Error: not implemented yet.") - -// ErrTimeout implies that a timeout has been triggered -var ErrTimeout = errors.New("Error: Call timed out.") - -// ErrSeErrSearchIncomplete implies that a search type operation didnt -// find the expected node, but did find 'a' node. -var ErrSearchIncomplete = errors.New("Error: Search Incomplete.") - -// ErrCast is returned when a cast fails AND the program should not panic. -func ErrCast() error { - debug.PrintStack() - return errCast -} - -var errCast = errors.New("cast error") - -// ExpandPathnames takes a set of paths and turns them into absolute paths -func ExpandPathnames(paths []string) ([]string, error) { - var out []string - for _, p := range paths { - abspath, err := filepath.Abs(p) - if err != nil { - return nil, err - } - out = append(out, abspath) - } - return out, nil -} - -type randGen struct { - rand.Rand -} - -func NewTimeSeededRand() io.Reader { - src := rand.NewSource(time.Now().UnixNano()) - return &randGen{ - Rand: *rand.New(src), - } -} - -func NewSeededRand(seed int64) io.Reader { - src := rand.NewSource(seed) - return &randGen{ - Rand: *rand.New(src), - } -} - -func (r *randGen) Read(p []byte) (n int, err error) { - for i := 0; i < len(p); i++ { - p[i] = byte(r.Rand.Intn(255)) - } - return len(p), nil -} - -// GetenvBool is the way to check an env var as a boolean -func GetenvBool(name string) bool { - v := strings.ToLower(os.Getenv(name)) - return v == "true" || v == "t" || v == "1" -} - -// MultiErr is a util to return multiple errors -type MultiErr []error - -func (m MultiErr) Error() string { - if len(m) == 0 { - return "no errors" - } - - s := "Multiple errors: " - for i, e := range m { - if i != 0 { - s += ", " - } - s += e.Error() - } - return s -} - -func Partition(subject string, sep string) (string, string, string) { - if i := strings.Index(subject, sep); i != -1 { - return subject[:i], subject[i : i+len(sep)], subject[i+len(sep):] - } - return subject, "", "" -} - -func RPartition(subject string, sep string) (string, string, string) { - if i := strings.LastIndex(subject, sep); i != -1 { - return subject[:i], subject[i : i+len(sep)], subject[i+len(sep):] - } - return subject, "", "" -} - -// Hash is the global IPFS hash function. uses multihash SHA2_256, 256 bits -func Hash(data []byte) mh.Multihash { - h, err := mh.Sum(data, mh.SHA2_256, -1) - if err != nil { - // this error can be safely ignored (panic) because multihash only fails - // from the selection of hash function. If the fn + length are valid, it - // won't error. - panic("multihash failed to hash using SHA2_256.") - } - return h -} - -// IsValidHash checks whether a given hash is valid (b58 decodable, len > 0) -func IsValidHash(s string) bool { - out := b58.Decode(s) - if out == nil || len(out) == 0 { - return false - } - _, err := mh.Cast(out) - if err != nil { - return false - } - return true -} - -// XOR takes two byte slices, XORs them together, returns the resulting slice. -func XOR(a, b []byte) []byte { - c := make([]byte, len(a)) - for i := 0; i < len(a); i++ { - c[i] = a[i] ^ b[i] - } - return c -} diff --git a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/util_test.go b/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/util_test.go deleted file mode 100644 index 70747ad9..00000000 --- a/vendor/gx/QmQA79FfVsUnGkH3TgKDqcDkupfjqLSJ6EYwDuDDZK8nhD/go-ipfs-util/util_test.go +++ /dev/null @@ -1,63 +0,0 @@ -package util - -import ( - "bytes" - "testing" -) - -func TestXOR(t *testing.T) { - cases := [][3][]byte{ - { - {0xFF, 0xFF, 0xFF}, - {0xFF, 0xFF, 0xFF}, - {0x00, 0x00, 0x00}, - }, - { - {0x00, 0xFF, 0x00}, - {0xFF, 0xFF, 0xFF}, - {0xFF, 0x00, 0xFF}, - }, - { - {0x55, 0x55, 0x55}, - {0x55, 0xFF, 0xAA}, - {0x00, 0xAA, 0xFF}, - }, - } - - for _, c := range cases { - r := XOR(c[0], c[1]) - if !bytes.Equal(r, c[2]) { - t.Error("XOR failed") - } - } -} - -func BenchmarkHash256K(b *testing.B) { - buf := make([]byte, 256*1024) - NewTimeSeededRand().Read(buf) - b.SetBytes(int64(256 * 1024)) - b.ResetTimer() - for i := 0; i < b.N; i++ { - Hash(buf) - } -} - -func BenchmarkHash512K(b *testing.B) { - buf := make([]byte, 512*1024) - NewTimeSeededRand().Read(buf) - b.SetBytes(int64(512 * 1024)) - b.ResetTimer() - for i := 0; i < b.N; i++ { - Hash(buf) - } -} - -func BenchmarkHash1M(b *testing.B) { - buf := make([]byte, 1024*1024) - NewTimeSeededRand().Read(buf) - b.SetBytes(int64(1024 * 1024)) - b.ResetTimer() - for i := 0; i < b.N; i++ { - Hash(buf) - } -} diff --git a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/.gxignore b/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/LICENSE b/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/LICENSE deleted file mode 100644 index c7386b3c..00000000 --- a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Juan Batiz-Benet - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/README.md b/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/README.md deleted file mode 100644 index 0ba69b7b..00000000 --- a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# go-detect-race - -Check if the race detector is running. - -I didnt find a variable to check quickly enough so I made this. - - -## Usage - -```go -import ( - detectrace "github.com/jbenet/go-detect-race" -) - -func main() { - if detectrace.WithRace() { - // running with -race - } else { - // running without -race - } -} -``` - -## Why? - -Because the race detector doesnt like massive stress tests. Example: -https://groups.google.com/forum/#!topic/golang-nuts/XDPHUt2LE70 - -## Why didn't you just use... - -Please tell me about a better way of doing this. It wasn't -readily apparent to me, so I made this. But i would much prefer -an env var or some already existing var from the stdlib :) diff --git a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/package.json b/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/package.json deleted file mode 100644 index f225913a..00000000 --- a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "go-detect-race", - "author": "whyrusleeping", - "version": "0.0.0", - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/jbenet/go-detect-race" - } -} \ No newline at end of file diff --git a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/race.go b/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/race.go deleted file mode 100644 index 04639f4b..00000000 --- a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/race.go +++ /dev/null @@ -1,7 +0,0 @@ -package detectrace - -// WithRace returns whether the binary was compiled -// with the race flag on. -func WithRace() bool { - return withRace -} diff --git a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/race_test.go b/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/race_test.go deleted file mode 100644 index 2663ba39..00000000 --- a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/race_test.go +++ /dev/null @@ -1,9 +0,0 @@ -package detectrace - -import ( - "testing" -) - -func TestWithRace(t *testing.T) { - t.Logf("WithRace() is %v\n", WithRace()) -} diff --git a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/withoutrace.go b/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/withoutrace.go deleted file mode 100644 index 958498bb..00000000 --- a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/withoutrace.go +++ /dev/null @@ -1,5 +0,0 @@ -// +build !race - -package detectrace - -const withRace = false diff --git a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/withrace.go b/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/withrace.go deleted file mode 100644 index 59f0b03d..00000000 --- a/vendor/gx/QmQHGMVmrsgmqUG8ih3puNXUJneSpi13dkcZpzLKkskUkH/go-detect-race/withrace.go +++ /dev/null @@ -1,5 +0,0 @@ -// +build race - -package detectrace - -const withRace = true diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/.gxignore b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/.travis.yml b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/.travis.yml deleted file mode 100644 index 5828fd67..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: go - -go: - - 1.3 - - 1.4 - - release - - tip - -script: - - go test -v ./... - # - go test -race -cpu=5 ./... diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/LICENSE b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/LICENSE deleted file mode 100644 index c7386b3c..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Juan Batiz-Benet - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/Makefile b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/Makefile deleted file mode 100644 index f15fcaa6..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/Makefile +++ /dev/null @@ -1,15 +0,0 @@ - -godep: - go get github.com/tools/godep - -vendor: godep - godep save -r ./... - -build: - go build ./... - -test: - go test ./... - -test_race: - go test -race -cpu 5 ./... diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/README.md b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/README.md deleted file mode 100644 index 04ec1152..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/README.md +++ /dev/null @@ -1,148 +0,0 @@ -# go-peerstream p2p multi-multixplexing - -Package peerstream is a peer-to-peer networking library that multiplexes -connections to many hosts. It tried to simplify the complexity of: - -* accepting incoming connections over **multiple** listeners -* dialing outgoing connections over **multiple** transports -* multiplexing **multiple** connections per-peer -* multiplexing **multiple** different servers or protocols -* handling backpressure correctly -* handling stream multiplexing (we use SPDY, but maybe QUIC some day) -* providing a **simple** interface to the user - -### Godoc: https://godoc.org/github.com/jbenet/go-peerstream - ---- - -See this working [example/example.go](example/example): - -```Go -package main - -import ( - "fmt" - "io" - "net" - "os" - - ps "github.com/jbenet/go-peerstream" -) - -func main() { - // create a new Swarm - swarm := ps.NewSwarm() - defer swarm.Close() - - // tell swarm what to do with a new incoming streams. - // EchoHandler just echos back anything they write. - swarm.SetStreamHandler(ps.EchoHandler) - - // Okay, let's try listening on some transports - l1, err := net.Listen("tcp", "localhost:8001") - if err != nil { - panic(err) - } - - l2, err := net.Listen("tcp", "localhost:8002") - if err != nil { - panic(err) - } - - // tell swarm to accept incoming connections on these - // listeners. Swarm will start accepting new connections. - if err := swarm.AddListener(l1); err != nil { - panic(err) - } - if err := swarm.AddListener(l2); err != nil { - panic(err) - } - - // ok, let's try some outgoing connections - nc1, err := net.Dial("tcp", "localhost:8001") - if err != nil { - panic(err) - } - - nc2, err := net.Dial("tcp", "localhost:8002") - if err != nil { - panic(err) - } - - // add them to the swarm - c1, err := swarm.AddConn(nc1) - if err != nil { - panic(err) - } - c2, err := swarm.AddConn(nc2) - if err != nil { - panic(err) - } - - // Swarm treats listeners as sources of new connections and does - // not distinguish between outgoing or incoming connections. - // It provides the net.Conn to the StreamHandler so you can - // distinguish between them however you wish. - - // now let's try opening some streams! - // You can specify what connection you want to use - s1, err := swarm.NewStreamWithConn(c1) - if err != nil { - panic(err) - } - - // Or, you can specify a SelectConn function that picks between all - // (it calls NewStreamWithConn underneath the hood) - s2, err := swarm.NewStreamSelectConn(func(conns []*ps.Conn) *ps.Conn { - if len(conns) > 0 { - return conns[0] - } - return nil - }) - if err != nil { - panic(err) - } - - // Or, you can bind connections to ConnGroup ids. You can bind a conn to - // multiple groups. And, if conn wasn't in swarm, it calls swarm.AddConn. - // You can use any Go `KeyType` as a group A `KeyType` as in maps...) - swarm.AddConnToGroup(c2, 1) - - // And then use that group to select a connection. Swarm will use any - // connection it finds in that group, using a SelectConn you can rebind: - // swarm.SetGroupSelectConn(1, SelectConn) - // swarm.SetDegaultGroupSelectConn(SelectConn) - s3, err := swarm.NewStreamWithGroup(1) - if err != nil { - panic(err) - } - - // Why groups? It's because with many connections, and many transports, - // and many Servers (or Protocols), we can use the Swarm to associate - // a different StreamHandlers per group, and to let us create NewStreams - // on a given group. - - // Ok, we have streams. now what. Use them! Our Streams are basically - // streams from github.com/docker/spdystream, so they work the same - // way: - - for i, stream := range []ps.Stream{s1, s2, s3} { - stream.Wait() - str := "stream %d ready:" - fmt.Fprintf(stream, str, i) - - buf := make([]byte, len(str)) - stream.Read(buf) - fmt.Println(string(buf)) - } - - go io.Copy(os.Stdout, s1) - go io.Copy(os.Stdout, s2) - go io.Copy(os.Stdout, s3) - io.Copy(io.MultiWriter(s1, s2, s3), os.Stdin) -} - -func log(s string) { - fmt.Fprintf(os.Stderr, s+"\n") -} -``` diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/conn.go b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/conn.go deleted file mode 100644 index ef518f8f..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/conn.go +++ /dev/null @@ -1,291 +0,0 @@ -package peerstream - -import ( - "errors" - "fmt" - "net" - "sync" - - smux "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer" -) - -// ConnHandler is a function which receives a Conn. It allows -// clients to set a function to receive newly accepted -// connections. It works like StreamHandler, but is usually -// less useful than usual as most services will only use -// Streams. It is safe to pass or store the *Conn elsewhere. -// Note: the ConnHandler is called sequentially, so spawn -// goroutines or pass the Conn. See EchoHandler. -type ConnHandler func(s *Conn) - -// SelectConn selects a connection out of list. It allows -// delegation of decision making to clients. Clients can -// make SelectConn functons that check things connection -// qualities -- like latency andbandwidth -- or pick from -// a logical set of connections. -type SelectConn func([]*Conn) *Conn - -// ErrInvalidConnSelected signals that a connection selected -// with a SelectConn function is invalid. This may be due to -// the Conn not being part of the original set given to the -// function, or the value being nil. -var ErrInvalidConnSelected = errors.New("invalid selected connection") - -// ErrNoConnections signals that no connections are available -var ErrNoConnections = errors.New("no connections") - -// Conn is a Swarm-associated connection. -type Conn struct { - smuxConn smux.Conn - netConn net.Conn // underlying connection - - swarm *Swarm - groups groupSet - - streams map[*Stream]struct{} - streamLock sync.RWMutex - - closed bool - closeLock sync.Mutex -} - -func newConn(nconn net.Conn, tconn smux.Conn, s *Swarm) *Conn { - return &Conn{ - netConn: nconn, - smuxConn: tconn, - swarm: s, - groups: groupSet{m: make(map[Group]struct{})}, - streams: make(map[*Stream]struct{}), - } -} - -// String returns a string representation of the Conn -func (c *Conn) String() string { - c.streamLock.RLock() - ls := len(c.streams) - c.streamLock.RUnlock() - f := " %s>" - return fmt.Sprintf(f, ls, c.netConn.LocalAddr(), c.netConn.RemoteAddr()) -} - -// Swarm returns the Swarm associated with this Conn -func (c *Conn) Swarm() *Swarm { - return c.swarm -} - -// NetConn returns the underlying net.Conn -func (c *Conn) NetConn() net.Conn { - return c.netConn -} - -// Conn returns the underlying transport Connection we use -// Warning: modifying this object is undefined. -func (c *Conn) Conn() smux.Conn { - return c.smuxConn -} - -// Groups returns the Groups this Conn belongs to -func (c *Conn) Groups() []Group { - return c.groups.Groups() -} - -// InGroup returns whether this Conn belongs to a Group -func (c *Conn) InGroup(g Group) bool { - return c.groups.Has(g) -} - -// AddGroup assigns given Group to Conn -func (c *Conn) AddGroup(g Group) { - c.groups.Add(g) -} - -// Stream returns a stream associated with this Conn -func (c *Conn) NewStream() (*Stream, error) { - return c.swarm.NewStreamWithConn(c) -} - -func (c *Conn) Streams() []*Stream { - c.streamLock.RLock() - defer c.streamLock.RUnlock() - - streams := make([]*Stream, 0, len(c.streams)) - for s := range c.streams { - streams = append(streams, s) - } - return streams -} - -// Close closes this connection -func (c *Conn) Close() error { - c.closeLock.Lock() - defer c.closeLock.Unlock() - - if c.closed { - return nil - } - c.closed = true - - // close streams - streams := c.Streams() - for _, s := range streams { - s.Close() - } - - // close underlying connection - c.swarm.removeConn(c) - err := c.smuxConn.Close() - c.swarm.notifyAll(func(n Notifiee) { - n.Disconnected(c) - }) - return err -} - -// ConnsWithGroup narrows down a set of connections to those in a given group. -func ConnsWithGroup(g Group, conns []*Conn) []*Conn { - var out []*Conn - for _, c := range conns { - if c.InGroup(g) { - out = append(out, c) - } - } - return out -} - -func ConnInConns(c1 *Conn, conns []*Conn) bool { - for _, c2 := range conns { - if c2 == c1 { - return true - } - } - return false -} - -// ------------------------------------------------------------------ -// All the connection setup logic here, in one place. -// these are mostly *Swarm methods, but i wanted a less-crowded place -// for them. -// ------------------------------------------------------------------ - -// addConn is the internal version of AddConn. we need the server bool -// as spdystream requires it. -func (s *Swarm) addConn(netConn net.Conn, isServer bool) (*Conn, error) { - c, err := s.setupConn(netConn, isServer) - if err != nil { - return nil, err - } - - s.ConnHandler()(c) - - // go listen for incoming streams on this connection - go c.smuxConn.Serve(func(ss smux.Stream) { - // log.Printf("accepted stream %d from %s\n", ssS.Identifier(), netConn.RemoteAddr()) - stream := s.setupStream(ss, c) - s.StreamHandler()(stream) // call our handler - }) - - s.notifyAll(func(n Notifiee) { - n.Connected(c) - }) - return c, nil -} - -// setupConn adds the relevant connection to the map, first checking if it -// was already there. -func (s *Swarm) setupConn(netConn net.Conn, isServer bool) (*Conn, error) { - if netConn == nil { - return nil, errors.New("nil conn") - } - - // first, check if we already have it, to avoid constructing it - // if it is already there - s.connLock.Lock() - for c := range s.conns { - if c.netConn == netConn { - s.connLock.Unlock() - return c, nil - } - } - s.connLock.Unlock() - // construct the connection without hanging onto the lock - // (as there could be deadlock if so.) - - // create a new spdystream connection - ssConn, err := s.transport.NewConn(netConn, isServer) - if err != nil { - return nil, err - } - - // take the lock to add it to the map. - s.connLock.Lock() - defer s.connLock.Unlock() - - // check for it again as it may have been added already. (TOCTTOU) - for c := range s.conns { - if c.netConn == netConn { - return c, nil - } - } - - // add the connection - c := newConn(netConn, ssConn, s) - s.conns[c] = struct{}{} - return c, nil -} - -// createStream is the internal function that creates a new stream. assumes -// all validation has happened. -func (s *Swarm) createStream(c *Conn) (*Stream, error) { - - // Create a new smux.Stream - smuxStream, err := c.smuxConn.OpenStream() - if err != nil { - return nil, err - } - - return s.setupStream(smuxStream, c), nil -} - -// newStream is the internal function that creates a new stream. assumes -// all validation has happened. -func (s *Swarm) setupStream(smuxStream smux.Stream, c *Conn) *Stream { - - // create a new stream - stream := newStream(smuxStream, c) - - // add it to our streams maps - s.streamLock.Lock() - c.streamLock.Lock() - s.streams[stream] = struct{}{} - c.streams[stream] = struct{}{} - s.streamLock.Unlock() - c.streamLock.Unlock() - - s.notifyAll(func(n Notifiee) { - n.OpenedStream(stream) - }) - return stream -} - -func (s *Swarm) removeStream(stream *Stream) error { - - // remove from our maps - s.streamLock.Lock() - stream.conn.streamLock.Lock() - delete(s.streams, stream) - delete(stream.conn.streams, stream) - s.streamLock.Unlock() - stream.conn.streamLock.Unlock() - - err := stream.smuxStream.Close() - s.notifyAll(func(n Notifiee) { - n.ClosedStream(stream) - }) - return err -} - -func (s *Swarm) removeConn(conn *Conn) { - // remove from our maps - s.connLock.Lock() - delete(s.conns, conn) - s.connLock.Unlock() -} diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/doc.go b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/doc.go deleted file mode 100644 index 502a04d2..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/doc.go +++ /dev/null @@ -1,12 +0,0 @@ -// Package peerstream is a peer-to-peer networking library that multiplexes -// connections to many hosts. It tried to simplify the complexity of: -// -// * accepting incoming connections over **multiple** listeners -// * dialing outgoing connections over **multiple** transports -// * multiplexing **multiple** connections per-peer -// * multiplexing **multiple** different servers or protocols -// * handling backpressure correctly -// * handling stream multiplexing (we use SPDY, but maybe QUIC some day) -// * providing a **simple** interface to the user -// -package peerstream diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/example/.gitignore b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/example/.gitignore deleted file mode 100644 index 33a9488b..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/example/.gitignore +++ /dev/null @@ -1 +0,0 @@ -example diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/example/blockhandler/blockhandler.go b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/example/blockhandler/blockhandler.go deleted file mode 100644 index 05fd48a7..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/example/blockhandler/blockhandler.go +++ /dev/null @@ -1,77 +0,0 @@ -package main - -import ( - "bufio" - "fmt" - "net" - "os" - "time" - - ps "github.com/jbenet/go-peerstream" - spdy "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/spdystream" -) - -func die(err error) { - fmt.Fprintf(os.Stderr, "error: %s\n") - os.Exit(1) -} - -func main() { - // create a new Swarm - swarm := ps.NewSwarm(spdy.Transport) - defer swarm.Close() - - // tell swarm what to do with a new incoming streams. - // EchoHandler just echos back anything they write. - swarm.SetStreamHandler(ps.EchoHandler) - - l, err := net.Listen("tcp", "localhost:8001") - if err != nil { - die(err) - } - - if _, err := swarm.AddListener(l); err != nil { - die(err) - } - - nc, err := net.Dial("tcp", "localhost:8001") - if err != nil { - die(err) - } - - c, err := swarm.AddConn(nc) - if err != nil { - die(err) - } - - nRcvStream := 0 - bio := bufio.NewReader(os.Stdin) - swarm.SetStreamHandler(func(s *ps.Stream) { - log("handling new stream %d", nRcvStream) - nRcvStream++ - - line, err := bio.ReadString('\n') - if err != nil { - die(err) - } - _ = line - // line = "read: " + line - // s.Write([]byte(line)) - s.Close() - }) - - nSndStream := 0 - for { - <-time.After(200 * time.Millisecond) - _, err := swarm.NewStreamWithConn(c) - if err != nil { - die(err) - } - log("sender got new stream %d", nSndStream) - nSndStream++ - } -} - -func log(s string, ifs ...interface{}) { - fmt.Fprintf(os.Stderr, s+"\n", ifs...) -} diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/example/example.go b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/example/example.go deleted file mode 100644 index 30c1fcad..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/example/example.go +++ /dev/null @@ -1,140 +0,0 @@ -package main - -import ( - "fmt" - "io" - "net" - "os" - - ps "github.com/jbenet/go-peerstream" - spdy "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/spdystream" -) - -func main() { - - log("creating a new swarm with spdystream transport") // create a new Swarm - swarm := ps.NewSwarm(spdy.Transport) - defer swarm.Close() - - // tell swarm what to do with a new incoming streams. - // EchoHandler just echos back anything they write. - log("setup EchoHandler") - swarm.SetStreamHandler(ps.EchoHandler) - - // Okay, let's try listening on some transports - log("listening at localhost:8001") - l1, err := net.Listen("tcp", "localhost:8001") - if err != nil { - panic(err) - } - - log("listening at localhost:8002") - l2, err := net.Listen("tcp", "localhost:8002") - if err != nil { - panic(err) - } - - // tell swarm to accept incoming connections on these - // listeners. Swarm will start accepting new connections. - if _, err := swarm.AddListener(l1); err != nil { - panic(err) - } - if _, err := swarm.AddListener(l2); err != nil { - panic(err) - } - - // ok, let's try some outgoing connections - log("dialing localhost:8001") - nc1, err := net.Dial("tcp", "localhost:8001") - if err != nil { - panic(err) - } - - log("dialing localhost:8002") - nc2, err := net.Dial("tcp", "localhost:8002") - if err != nil { - panic(err) - } - - // add them to the swarm - c1, err := swarm.AddConn(nc1) - if err != nil { - panic(err) - } - c2, err := swarm.AddConn(nc2) - if err != nil { - panic(err) - } - - // Swarm treats listeners as sources of new connections and does - // not distinguish between outgoing or incoming connections. - // It provides the net.Conn to the StreamHandler so you can - // distinguish between them however you wish. - - // now let's try opening some streams! - // You can specify what connection you want to use - log("opening stream with NewStreamWithConn(c1)") - s1, err := swarm.NewStreamWithConn(c1) - if err != nil { - panic(err) - } - - // Or, you can specify a SelectConn function that picks between all - // (it calls NewStreamWithConn underneath the hood) - log("opening stream with NewStreamSelectConn(.)") - s2, err := swarm.NewStreamSelectConn(func(conns []*ps.Conn) *ps.Conn { - if len(conns) > 0 { - return conns[0] - } - return nil - }) - if err != nil { - panic(err) - } - - // Or, you can bind connections to ConnGroup ids. You can bind a conn to - // multiple groups. And, if conn wasn't in swarm, it calls swarm.AddConn. - // You can use any Go `KeyType` as a group A `KeyType` as in maps...) - swarm.AddConnToGroup(c2, 1) - - // And then use that group to select a connection. Swarm will use any - // connection it finds in that group, using a SelectConn you can rebind: - // swarm.SetGroupSelectConn(1, SelectConn) - // swarm.SetDegaultGroupSelectConn(SelectConn) - log("opening stream with NewStreamWithGroup(1)") - s3, err := swarm.NewStreamWithGroup(1) - if err != nil { - panic(err) - } - - // Why groups? It's because with many connections, and many transports, - // and many Servers (or Protocols), we can use the Swarm to associate - // a different StreamHandlers per group, and to let us create NewStreams - // on a given group. - - // Ok, we have streams. now what. Use them! Our Streams are basically - // streams from github.com/docker/spdystream, so they work the same - // way: - - log("preparing the streams") - for i, stream := range []*ps.Stream{s1, s2, s3} { - str := "stream %d ready:" - fmt.Fprintf(stream, str, i) - - buf := make([]byte, len(str)) - log(fmt.Sprintf("reading from stream %d", i)) - stream.Read(buf) - fmt.Println(string(buf)) - } - - log("let's test the streams") - log("enter some text below:\n") - go io.Copy(os.Stdout, s1) - go io.Copy(os.Stdout, s2) - go io.Copy(os.Stdout, s3) - io.Copy(io.MultiWriter(s1, s2, s3), os.Stdin) -} - -func log(s string) { - fmt.Fprintf(os.Stderr, s+"\n") -} diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/group.go b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/group.go deleted file mode 100644 index 8e08e7ab..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/group.go +++ /dev/null @@ -1,92 +0,0 @@ -package peerstream - -import ( - "errors" - "sync" - "unsafe" -) - -// ErrGroupNotFound signals no such group exists -var ErrGroupNotFound = errors.New("group not found") - -// Group is an object used to associate a group of -// Streams, Connections, and Listeners. It can be anything, -// it is meant to work like a KeyType in maps -type Group interface{} - -// Groupable is an interface for a set of objects that can -// be assigned groups: Streams, Connections, and Listeners. -// Objects inherit groups (e.g. a Stream inherits the groups -// of its parent Connection, and in turn that of its Listener). -type Groupable interface { - // Groups returns the groups this object belongs to - Groups() []Group - - // InGroup returns whether this object belongs to a Group - InGroup(g Group) bool - - // AddGroup adds this object to a group - AddGroup(g Group) -} - -// groupSet is a struct designed to be embedded and -// give things group memebership -type groupSet struct { - m map[Group]struct{} - sync.RWMutex -} - -func (gs *groupSet) Add(g Group) { - gs.Lock() - defer gs.Unlock() - gs.m[g] = struct{}{} -} - -func (gs *groupSet) Remove(g Group) { - gs.Lock() - defer gs.Unlock() - delete(gs.m, g) -} - -func (gs *groupSet) Has(g Group) bool { - gs.RLock() - defer gs.RUnlock() - _, ok := gs.m[g] - return ok -} - -func (gs *groupSet) Groups() []Group { - gs.RLock() - defer gs.RUnlock() - - out := make([]Group, 0, len(gs.m)) - for k := range gs.m { - out = append(out, k) - } - return out -} - -// AddSet adds all elements in another set. -func (gs *groupSet) AddSet(gs2 *groupSet) { - // acquire locks in order - p1 := uintptr(unsafe.Pointer(gs)) - p2 := uintptr(unsafe.Pointer(gs2)) - switch { - case p1 < p2: - gs.Lock() - gs2.RLock() - defer gs.Unlock() - defer gs2.RUnlock() - case p1 > p2: - gs2.Lock() - gs.Lock() - defer gs2.Unlock() - defer gs.Unlock() - default: - return // they're the same! - } - - for g := range gs2.m { - gs.m[g] = struct{}{} - } -} diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/handlers.go b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/handlers.go deleted file mode 100644 index 79290fd1..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/handlers.go +++ /dev/null @@ -1,29 +0,0 @@ -package peerstream - -import ( - "io" - "math/rand" -) - -var SelectRandomConn = func(conns []*Conn) *Conn { - if len(conns) == 0 { - return nil - } - - return conns[rand.Intn(len(conns))] -} - -func EchoHandler(s *Stream) { - go func() { - io.Copy(s, s) - s.Close() - }() -} - -func CloseHandler(s *Stream) { - s.Close() -} - -func NoOpStreamHandler(s *Stream) {} - -func NoOpConnHandler(c *Conn) {} diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/listener.go b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/listener.go deleted file mode 100644 index ab90a9c5..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/listener.go +++ /dev/null @@ -1,163 +0,0 @@ -package peerstream - -import ( - "errors" - "fmt" - "net" - "sync" - - tec "gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher" -) - -// AcceptConcurrency is how many connections can simultaneously be -// in process of being accepted. Handshakes can sometimes occur as -// part of this process, so it may take some time. It is imporant to -// rate limit lest a malicious influx of connections would cause our -// node to consume all its resources accepting new connections. -var AcceptConcurrency = 200 - -type Listener struct { - netList net.Listener - groups groupSet - swarm *Swarm - - acceptErr chan error -} - -func newListener(nl net.Listener, s *Swarm) *Listener { - return &Listener{ - netList: nl, - swarm: s, - acceptErr: make(chan error, 10), - } -} - -// String returns a string representation of the Listener -func (l *Listener) String() string { - f := "" - return fmt.Sprintf(f, l.netList.Addr()) -} - -// NetListener is the underlying net.Listener -func (l *Listener) NetListener() net.Listener { - return l.netList -} - -// Groups returns the groups this Listener belongs to -func (l *Listener) Groups() []Group { - return l.groups.Groups() -} - -// InGroup returns whether this Listener belongs to a Group -func (l *Listener) InGroup(g Group) bool { - return l.groups.Has(g) -} - -// AddGroup assigns given Group to Listener -func (l *Listener) AddGroup(g Group) { - l.groups.Add(g) -} - -// ListenersWithGroup narrows down a set of listeners to those in given group. -func ListenersWithGroup(g Group, ls []*Listener) []*Listener { - var out []*Listener - for _, l := range ls { - if l.InGroup(g) { - out = append(out, l) - } - } - return out -} - -// accept continously accepts incoming connections and -// adds them to the listener's Swarm. is is meant to be -// run in a goroutine. -// TODO: add rate limiting -func (l *Listener) accept() { - var wg sync.WaitGroup - defer func() { - wg.Wait() // must happen before teardown - l.teardown() - }() - - // catching the error here is odd. doing what net/http does: - // http://golang.org/src/net/http/server.go?s=51504:51550#L1728 - // Using the lib: https://godoc.org/github.com/jbenet/go-temp-err-catcher - var catcher tec.TempErrCatcher - - // rate limit concurrency - limit := make(chan struct{}, AcceptConcurrency) - - // loop forever accepting connections - for { - conn, err := l.netList.Accept() - if err != nil { - if catcher.IsTemporary(err) { - continue - } - l.acceptErr <- fmt.Errorf("peerstream listener failed: %s", err) - return // ok, problems. bail. - } - - // add conn to swarm and listen for incoming streams - // do this in a goroutine to avoid blocking the Accept loop. - // note that this does not rate limit accepts. - limit <- struct{}{} // sema down - wg.Add(1) - go func(conn net.Conn) { - defer func() { <-limit }() // sema up - defer wg.Done() - - conn2, err := l.swarm.addConn(conn, true) - if err != nil { - l.acceptErr <- err - return - } - conn2.groups.AddSet(&l.groups) // add out groups - }(conn) - } -} - -// AcceptError returns the error that we **might** on listener close -func (l *Listener) AcceptErrors() <-chan error { - return l.acceptErr -} - -func (l *Listener) teardown() { - // in case we exit from network errors (accept fails) but - // (a) client doesn't call Close, and (b) listener remains open) - l.netList.Close() - - close(l.acceptErr) - - // remove self from swarm - l.swarm.listenerLock.Lock() - delete(l.swarm.listeners, l) - l.swarm.listenerLock.Unlock() -} - -func (l *Listener) Close() error { - return l.netList.Close() -} - -// addListener is the internal version of AddListener. -func (s *Swarm) addListener(nl net.Listener) (*Listener, error) { - if nl == nil { - return nil, errors.New("nil listener") - } - - s.listenerLock.Lock() - defer s.listenerLock.Unlock() - - // first, check if we already have it... - for l := range s.listeners { - if l.netList == nl { - return l, nil - } - } - - l := newListener(nl, s) - s.listeners[l] = struct{}{} - go l.accept() - return l, nil -} diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/muxtest/hack.go b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/muxtest/hack.go deleted file mode 100644 index 151d1321..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/muxtest/hack.go +++ /dev/null @@ -1,15 +0,0 @@ -package muxtest - -import ( - multiplex "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multiplex" - multistream "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multistream" - muxado "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxado" - spdy "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/spdystream" - yamux "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/yamux" -) - -var _ = multiplex.DefaultTransport -var _ = multistream.NewTransport -var _ = muxado.Transport -var _ = spdy.Transport -var _ = yamux.DefaultTransport diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/muxtest/mux_test.go b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/muxtest/mux_test.go deleted file mode 100644 index 4ae224ed..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/muxtest/mux_test.go +++ /dev/null @@ -1,31 +0,0 @@ -package muxtest - -import ( - "testing" - - multiplex "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multiplex" - multistream "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multistream" - muxado "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxado" - spdy "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/spdystream" - yamux "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/yamux" -) - -func TestYamuxTransport(t *testing.T) { - SubtestAll(t, yamux.DefaultTransport) -} - -func TestSpdyStreamTransport(t *testing.T) { - SubtestAll(t, spdy.Transport) -} - -func TestMultiplexTransport(t *testing.T) { - SubtestAll(t, multiplex.DefaultTransport) -} - -func TestMuxadoTransport(t *testing.T) { - SubtestAll(t, muxado.Transport) -} - -func TestMultistreamTransport(t *testing.T) { - SubtestAll(t, multistream.NewTransport()) -} diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/muxtest/muxt.go b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/muxtest/muxt.go deleted file mode 100644 index db10988a..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/muxtest/muxt.go +++ /dev/null @@ -1,422 +0,0 @@ -package muxtest - -import ( - "bytes" - crand "crypto/rand" - "fmt" - "io" - mrand "math/rand" - "net" - "os" - "reflect" - "runtime" - "sync" - "testing" - - ps "github.com/jbenet/go-peerstream" - - smux "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer" -) - -var randomness []byte -var nextPort = 20000 -var verbose = false - -func init() { - // read 1MB of randomness - randomness = make([]byte, 1<<20) - if _, err := crand.Read(randomness); err != nil { - panic(err) - } -} - -func randBuf(size int) []byte { - n := len(randomness) - size - if size < 1 { - panic(fmt.Errorf("requested too large buffer (%d). max is %d", size, len(randomness))) - } - - start := mrand.Intn(n) - return randomness[start : start+size] -} - -func checkErr(t *testing.T, err error) { - if err != nil { - t.Fatal(err) - } -} - -func log(s string, v ...interface{}) { - if verbose { - fmt.Fprintf(os.Stderr, "> "+s+"\n", v...) - } -} - -type echoSetup struct { - swarm *ps.Swarm - conns []*ps.Conn -} - -func singleConn(t *testing.T, tr smux.Transport) echoSetup { - swarm := ps.NewSwarm(tr) - swarm.SetStreamHandler(func(s *ps.Stream) { - defer s.Close() - log("accepted stream") - io.Copy(s, s) // echo everything - log("closing stream") - }) - - log("listening at %s", "localhost:0") - l, err := net.Listen("tcp", "localhost:0") - checkErr(t, err) - - _, err = swarm.AddListener(l) - checkErr(t, err) - - log("dialing to %s", l.Addr()) - nc1, err := net.Dial("tcp", l.Addr().String()) - checkErr(t, err) - - c1, err := swarm.AddConn(nc1) - checkErr(t, err) - - return echoSetup{ - swarm: swarm, - conns: []*ps.Conn{c1}, - } -} - -func makeSwarm(t *testing.T, tr smux.Transport, nListeners int) *ps.Swarm { - swarm := ps.NewSwarm(tr) - swarm.SetStreamHandler(func(s *ps.Stream) { - defer s.Close() - log("accepted stream") - io.Copy(s, s) // echo everything - log("closing stream") - }) - - for i := 0; i < nListeners; i++ { - log("%p listening at %s", swarm, "localhost:0") - l, err := net.Listen("tcp", "localhost:0") - checkErr(t, err) - _, err = swarm.AddListener(l) - checkErr(t, err) - } - - return swarm -} - -func makeSwarms(t *testing.T, tr smux.Transport, nSwarms, nListeners int) []*ps.Swarm { - swarms := make([]*ps.Swarm, nSwarms) - for i := 0; i < nSwarms; i++ { - swarms[i] = makeSwarm(t, tr, nListeners) - } - return swarms -} - -func SubtestConstructSwarm(t *testing.T, tr smux.Transport) { - ps.NewSwarm(tr) -} - -func SubtestSimpleWrite(t *testing.T, tr smux.Transport) { - swarm := ps.NewSwarm(tr) - defer swarm.Close() - - piper, pipew := io.Pipe() - swarm.SetStreamHandler(func(s *ps.Stream) { - defer s.Close() - log("accepted stream") - w := io.MultiWriter(s, pipew) - io.Copy(w, s) // echo everything and write it to pipew - log("closing stream") - }) - - log("listening at %s", "localhost:0") - l, err := net.Listen("tcp", "localhost:0") - checkErr(t, err) - - _, err = swarm.AddListener(l) - checkErr(t, err) - - log("dialing to %s", l.Addr().String()) - nc1, err := net.Dial("tcp", l.Addr().String()) - checkErr(t, err) - - c1, err := swarm.AddConn(nc1) - checkErr(t, err) - defer c1.Close() - - log("creating stream") - s1, err := c1.NewStream() - checkErr(t, err) - defer s1.Close() - - buf1 := randBuf(4096) - log("writing %d bytes to stream", len(buf1)) - _, err = s1.Write(buf1) - checkErr(t, err) - - buf2 := make([]byte, len(buf1)) - log("reading %d bytes from stream (echoed)", len(buf2)) - _, err = s1.Read(buf2) - checkErr(t, err) - if string(buf2) != string(buf1) { - t.Error("buf1 and buf2 not equal: %s != %s", string(buf1), string(buf2)) - } - - buf3 := make([]byte, len(buf1)) - log("reading %d bytes from pipe (tee)", len(buf3)) - _, err = piper.Read(buf3) - checkErr(t, err) - if string(buf3) != string(buf1) { - t.Error("buf1 and buf3 not equal: %s != %s", string(buf1), string(buf3)) - } -} - -func SubtestSimpleWrite100msgs(t *testing.T, tr smux.Transport) { - - msgs := 100 - msgsize := 1 << 19 - es := singleConn(t, tr) - defer es.swarm.Close() - - log("creating stream") - stream, err := es.conns[0].NewStream() - checkErr(t, err) - - bufs := make(chan []byte, msgs) - var wg sync.WaitGroup - - wg.Add(1) - go func() { - defer wg.Done() - - for i := 0; i < msgs; i++ { - buf := randBuf(msgsize) - bufs <- buf - log("writing %d bytes (message %d/%d #%x)", len(buf), i, msgs, buf[:3]) - if _, err := stream.Write(buf); err != nil { - t.Error(fmt.Errorf("stream.Write(buf): %s", err)) - continue - } - } - close(bufs) - }() - - wg.Add(1) - go func() { - defer wg.Done() - - buf2 := make([]byte, msgsize) - i := 0 - for buf1 := range bufs { - log("reading %d bytes (message %d/%d #%x)", len(buf1), i, msgs, buf1[:3]) - i++ - - if _, err := io.ReadFull(stream, buf2); err != nil { - t.Error(fmt.Errorf("readFull(stream, buf2): %s", err)) - continue - } - if !bytes.Equal(buf1, buf2) { - t.Error(fmt.Errorf("buffers not equal (%x != %x)", buf1[:3], buf2[:3])) - } - } - }() - - wg.Wait() -} - -func SubtestStressNSwarmNConnNStreamNMsg(t *testing.T, tr smux.Transport, nSwarm, nConn, nStream, nMsg int) { - - msgsize := 1 << 11 - - rateLimitN := 5000 - rateLimitChan := make(chan struct{}, rateLimitN) // max of 5k funcs. - for i := 0; i < rateLimitN; i++ { - rateLimitChan <- struct{}{} - } - - rateLimit := func(f func()) { - <-rateLimitChan - f() - rateLimitChan <- struct{}{} - } - - writeStream := func(s *ps.Stream, bufs chan<- []byte) { - log("writeStream %p, %d nMsg", s, nMsg) - - for i := 0; i < nMsg; i++ { - buf := randBuf(msgsize) - bufs <- buf - log("%p writing %d bytes (message %d/%d #%x)", s, len(buf), i, nMsg, buf[:3]) - if _, err := s.Write(buf); err != nil { - t.Error(fmt.Errorf("s.Write(buf): %s", err)) - continue - } - } - } - - readStream := func(s *ps.Stream, bufs <-chan []byte) { - log("readStream %p, %d nMsg", s, nMsg) - - buf2 := make([]byte, msgsize) - i := 0 - for buf1 := range bufs { - i++ - log("%p reading %d bytes (message %d/%d #%x)", s, len(buf1), i-1, nMsg, buf1[:3]) - - if _, err := io.ReadFull(s, buf2); err != nil { - log("%p failed to read %d bytes (message %d/%d #%x)", s, len(buf1), i-1, nMsg, buf1[:3]) - t.Error(fmt.Errorf("io.ReadFull(s, buf2): %s", err)) - continue - } - if !bytes.Equal(buf1, buf2) { - t.Error(fmt.Errorf("buffers not equal (%x != %x)", buf1[:3], buf2[:3])) - } - } - } - - openStreamAndRW := func(c *ps.Conn) { - log("openStreamAndRW %p, %d nMsg", c, nMsg) - - s, err := c.NewStream() - if err != nil { - t.Error(fmt.Errorf("Failed to create NewStream: %s", err)) - return - } - - bufs := make(chan []byte, nMsg) - go func() { - writeStream(s, bufs) - close(bufs) - }() - - readStream(s, bufs) - s.Close() - } - - openConnAndRW := func(a, b *ps.Swarm) { - log("openConnAndRW %p -> %p, %d nStream", a, b, nConn) - - ls := b.Listeners() - l := ls[mrand.Intn(len(ls))] - nl := l.NetListener() - nla := nl.Addr() - - nc, err := net.Dial(nla.Network(), nla.String()) - if err != nil { - t.Fatal(fmt.Errorf("net.Dial(%s, %s): %s", nla.Network(), nla.String(), err)) - return - } - - c, err := a.AddConn(nc) - if err != nil { - t.Fatal(fmt.Errorf("a.AddConn(%s <--> %s): %s", nc.LocalAddr(), nc.RemoteAddr(), err)) - return - } - - var wg sync.WaitGroup - for i := 0; i < nStream; i++ { - wg.Add(1) - go rateLimit(func() { - defer wg.Done() - openStreamAndRW(c) - }) - } - wg.Wait() - c.Close() - } - - openConnsAndRW := func(a, b *ps.Swarm) { - log("openConnsAndRW %p -> %p, %d conns", a, b, nConn) - - var wg sync.WaitGroup - for i := 0; i < nConn; i++ { - wg.Add(1) - go rateLimit(func() { - defer wg.Done() - openConnAndRW(a, b) - }) - } - wg.Wait() - } - - connectSwarmsAndRW := func(swarms []*ps.Swarm) { - log("connectSwarmsAndRW %d swarms", len(swarms)) - - var wg sync.WaitGroup - for _, a := range swarms { - for _, b := range swarms { - wg.Add(1) - a := a // race - b := b // race - go rateLimit(func() { - defer wg.Done() - openConnsAndRW(a, b) - }) - } - } - wg.Wait() - } - - swarms := makeSwarms(t, tr, nSwarm, 3) // 3 listeners per swarm. - connectSwarmsAndRW(swarms) - for _, s := range swarms { - s.Close() - } - -} - -func SubtestStress1Swarm1Conn1Stream1Msg(t *testing.T, tr smux.Transport) { - SubtestStressNSwarmNConnNStreamNMsg(t, tr, 1, 1, 1, 1) -} - -func SubtestStress1Swarm1Conn1Stream100Msg(t *testing.T, tr smux.Transport) { - SubtestStressNSwarmNConnNStreamNMsg(t, tr, 1, 1, 1, 100) -} - -func SubtestStress1Swarm1Conn100Stream100Msg(t *testing.T, tr smux.Transport) { - SubtestStressNSwarmNConnNStreamNMsg(t, tr, 1, 1, 100, 100) -} - -func SubtestStress1Swarm10Conn50Stream50Msg(t *testing.T, tr smux.Transport) { - SubtestStressNSwarmNConnNStreamNMsg(t, tr, 1, 10, 50, 50) -} - -func SubtestStress5Swarm2Conn20Stream20Msg(t *testing.T, tr smux.Transport) { - SubtestStressNSwarmNConnNStreamNMsg(t, tr, 5, 2, 20, 20) -} - -func SubtestStress10Swarm2Conn100Stream100Msg(t *testing.T, tr smux.Transport) { - SubtestStressNSwarmNConnNStreamNMsg(t, tr, 10, 2, 100, 100) -} - -func SubtestAll(t *testing.T, tr smux.Transport) { - - tests := []TransportTest{ - SubtestConstructSwarm, - SubtestSimpleWrite, - SubtestSimpleWrite100msgs, - SubtestStress1Swarm1Conn1Stream1Msg, - SubtestStress1Swarm1Conn1Stream100Msg, - SubtestStress1Swarm1Conn100Stream100Msg, - SubtestStress1Swarm10Conn50Stream50Msg, - SubtestStress5Swarm2Conn20Stream20Msg, - // SubtestStress10Swarm2Conn100Stream100Msg, <-- this hoses the osx network stack... - } - - for _, f := range tests { - if testing.Verbose() { - fmt.Fprintf(os.Stderr, "==== RUN %s\n", GetFunctionName(f)) - } - f(t, tr) - } -} - -type TransportTest func(t *testing.T, tr smux.Transport) - -func TestNoOp(t *testing.T) {} - -func GetFunctionName(i interface{}) string { - return runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name() -} diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/package.json b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/package.json deleted file mode 100644 index 08ccdf2c..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "go-peerstream", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "go-temp-err-catcher", - "hash": "QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ", - "version": "1.0.0" - }, - { - "name": "go-stream-muxer", - "hash": "QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC", - "version": "0.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/jbenet/go-peerstream" - } -} \ No newline at end of file diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/stream.go b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/stream.go deleted file mode 100644 index f042d7aa..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/stream.go +++ /dev/null @@ -1,93 +0,0 @@ -package peerstream - -import ( - "fmt" - - smux "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer" -) - -// StreamHandler is a function which receives a Stream. It -// allows clients to set a function to receive newly created -// streams, and decide whether to continue adding them. -// It works sort of like a http.HandleFunc. -// Note: the StreamHandler is called sequentially, so spawn -// goroutines or pass the Stream. See EchoHandler. -type StreamHandler func(s *Stream) - -// Stream is an io.{Read,Write,Close}r to a remote counterpart. -// It wraps a spdystream.Stream, and links it to a Conn and groups -type Stream struct { - smuxStream smux.Stream - - conn *Conn - groups groupSet -} - -func newStream(ss smux.Stream, c *Conn) *Stream { - s := &Stream{ - conn: c, - smuxStream: ss, - groups: groupSet{m: make(map[Group]struct{})}, - } - s.groups.AddSet(&c.groups) // inherit groups - return s -} - -// String returns a string representation of the Stream -func (s *Stream) String() string { - f := " %s>" - return fmt.Sprintf(f, s.conn.NetConn().LocalAddr(), s.conn.NetConn().RemoteAddr()) -} - -// SPDYStream returns the underlying *spdystream.Stream -func (s *Stream) Stream() smux.Stream { - return s.smuxStream -} - -// Conn returns the Conn associated with this Stream -func (s *Stream) Conn() *Conn { - return s.conn -} - -// Swarm returns the Swarm asociated with this Stream -func (s *Stream) Swarm() *Swarm { - return s.conn.swarm -} - -// Groups returns the Groups this Stream belongs to -func (s *Stream) Groups() []Group { - return s.groups.Groups() -} - -// InGroup returns whether this stream belongs to a Group -func (s *Stream) InGroup(g Group) bool { - return s.groups.Has(g) -} - -// AddGroup assigns given Group to Stream -func (s *Stream) AddGroup(g Group) { - s.groups.Add(g) -} - -func (s *Stream) Read(p []byte) (n int, err error) { - return s.smuxStream.Read(p) -} - -func (s *Stream) Write(p []byte) (n int, err error) { - return s.smuxStream.Write(p) -} - -func (s *Stream) Close() error { - return s.conn.swarm.removeStream(s) -} - -// StreamsWithGroup narrows down a set of streams to those in given group. -func StreamsWithGroup(g Group, streams []*Stream) []*Stream { - var out []*Stream - for _, s := range streams { - if s.InGroup(g) { - out = append(out, s) - } - } - return out -} diff --git a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/swarm.go b/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/swarm.go deleted file mode 100644 index e1e94832..00000000 --- a/vendor/gx/QmQMkNFMuh1UJbdaggASZpLtCroTnAYcWNenYL5hrzLJrT/go-peerstream/swarm.go +++ /dev/null @@ -1,404 +0,0 @@ -package peerstream - -import ( - "errors" - "fmt" - "net" - "sync" - "time" - - smux "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer" -) - -// fd is a (file) descriptor, unix style -type fd uint32 - -// GarbageCollectTimeout governs the periodic connection closer. -var GarbageCollectTimeout = 5 * time.Second - -type Swarm struct { - // the transport we'll use. - transport smux.Transport - - // active streams. - streams map[*Stream]struct{} - streamLock sync.RWMutex - - // active connections. generate new Streams - conns map[*Conn]struct{} - connLock sync.RWMutex - - // active listeners. generate new Listeners - listeners map[*Listener]struct{} - listenerLock sync.RWMutex - - // these handlers should be accessed with their getter/setter - // as this pointer may be changed at any time. - handlerLock sync.RWMutex // protects the functions below - connHandler ConnHandler // receives Conns intiated remotely - streamHandler StreamHandler // receives Streams initiated remotely - selectConn SelectConn // default SelectConn function - - // notification listeners - notifiees map[Notifiee]struct{} - notifieeLock sync.RWMutex - - closed chan struct{} -} - -func NewSwarm(t smux.Transport) *Swarm { - s := &Swarm{ - transport: t, - streams: make(map[*Stream]struct{}), - conns: make(map[*Conn]struct{}), - listeners: make(map[*Listener]struct{}), - notifiees: make(map[Notifiee]struct{}), - selectConn: SelectRandomConn, - streamHandler: NoOpStreamHandler, - connHandler: NoOpConnHandler, - closed: make(chan struct{}), - } - go s.connGarbageCollect() - return s -} - -// String returns a string with various internal stats -func (s *Swarm) String() string { - s.listenerLock.Lock() - ls := len(s.listeners) - s.listenerLock.Unlock() - - s.connLock.Lock() - cs := len(s.conns) - s.connLock.Unlock() - - s.streamLock.Lock() - ss := len(s.streams) - s.streamLock.Unlock() - - str := "" - return fmt.Sprintf(str, ls, cs, ss) -} - -// Dump returns a string with all the internal state -func (s *Swarm) Dump() string { - str := s.String() + "\n" - - s.listenerLock.Lock() - for l, _ := range s.listeners { - str += fmt.Sprintf("\t%s %v\n", l, l.Groups()) - } - s.listenerLock.Unlock() - - s.connLock.Lock() - for c, _ := range s.conns { - str += fmt.Sprintf("\t%s %v\n", c, c.Groups()) - } - s.connLock.Unlock() - - s.streamLock.Lock() - for ss, _ := range s.streams { - str += fmt.Sprintf("\t%s %v\n", ss, ss.Groups()) - } - s.streamLock.Unlock() - - return str -} - -// SetStreamHandler assigns the stream handler in the swarm. -// The handler assumes responsibility for closing the stream. -// This need not happen at the end of the handler, leaving the -// stream open (to be used and closed later) is fine. -// It is also fine to keep a pointer to the Stream. -// This is a threadsafe (atomic) operation -func (s *Swarm) SetStreamHandler(sh StreamHandler) { - s.handlerLock.Lock() - defer s.handlerLock.Unlock() - s.streamHandler = sh -} - -// StreamHandler returns the Swarm's current StreamHandler. -// This is a threadsafe (atomic) operation -func (s *Swarm) StreamHandler() StreamHandler { - s.handlerLock.RLock() - defer s.handlerLock.RUnlock() - if s.streamHandler == nil { - return NoOpStreamHandler - } - return s.streamHandler -} - -// SetConnHandler assigns the conn handler in the swarm. -// Unlike the StreamHandler, the ConnHandler has less respon- -// ibility for the Connection. The Swarm is still its client. -// This handler is only a notification. -// This is a threadsafe (atomic) operation -func (s *Swarm) SetConnHandler(ch ConnHandler) { - s.handlerLock.Lock() - defer s.handlerLock.Unlock() - s.connHandler = ch -} - -// ConnHandler returns the Swarm's current ConnHandler. -// This is a threadsafe (atomic) operation -func (s *Swarm) ConnHandler() ConnHandler { - s.handlerLock.RLock() - defer s.handlerLock.RUnlock() - if s.connHandler == nil { - return NoOpConnHandler - } - return s.connHandler -} - -// SetConnSelect assigns the connection selector in the swarm. -// If cs is nil, will use SelectRandomConn -// This is a threadsafe (atomic) operation -func (s *Swarm) SetSelectConn(cs SelectConn) { - s.handlerLock.Lock() - defer s.handlerLock.Unlock() - s.selectConn = cs -} - -// ConnSelect returns the Swarm's current connection selector. -// ConnSelect is used in order to select the best of a set of -// possible connections. The default chooses one at random. -// This is a threadsafe (atomic) operation -func (s *Swarm) SelectConn() SelectConn { - s.handlerLock.RLock() - defer s.handlerLock.RUnlock() - if s.selectConn == nil { - return SelectRandomConn - } - return s.selectConn -} - -// Conns returns all the connections associated with this Swarm. -func (s *Swarm) Conns() []*Conn { - s.connLock.RLock() - conns := make([]*Conn, 0, len(s.conns)) - for c := range s.conns { - conns = append(conns, c) - } - s.connLock.RUnlock() - - open := make([]*Conn, 0, len(conns)) - for _, c := range conns { - if c.smuxConn.IsClosed() { - c.Close() - } else { - open = append(open, c) - } - } - return open -} - -// Listeners returns all the listeners associated with this Swarm. -func (s *Swarm) Listeners() []*Listener { - s.listenerLock.RLock() - out := make([]*Listener, 0, len(s.listeners)) - for c := range s.listeners { - out = append(out, c) - } - s.listenerLock.RUnlock() - return out -} - -// Streams returns all the streams associated with this Swarm. -func (s *Swarm) Streams() []*Stream { - s.streamLock.RLock() - out := make([]*Stream, 0, len(s.streams)) - for c := range s.streams { - out = append(out, c) - } - s.streamLock.RUnlock() - return out -} - -// AddListener adds net.Listener to the Swarm, and immediately begins -// accepting incoming connections. -func (s *Swarm) AddListener(l net.Listener) (*Listener, error) { - return s.addListener(l) -} - -// AddListenerWithRateLimit adds Listener to the Swarm, and immediately -// begins accepting incoming connections. The rate of connection acceptance -// depends on the RateLimit option -// func (s *Swarm) AddListenerWithRateLimit(net.Listner, RateLimit) // TODO - -// AddConn gives the Swarm ownership of net.Conn. The Swarm will open a -// SPDY session and begin listening for Streams. -// Returns the resulting Swarm-associated peerstream.Conn. -// Idempotent: if the Connection has already been added, this is a no-op. -func (s *Swarm) AddConn(netConn net.Conn) (*Conn, error) { - return s.addConn(netConn, false) -} - -// NewStream opens a new Stream on the best available connection, -// as selected by current swarm.SelectConn. -func (s *Swarm) NewStream() (*Stream, error) { - return s.NewStreamSelectConn(s.SelectConn()) -} - -func (s *Swarm) newStreamSelectConn(selConn SelectConn, conns []*Conn) (*Stream, error) { - if selConn == nil { - return nil, errors.New("nil SelectConn") - } - - best := selConn(conns) - if best == nil || !ConnInConns(best, conns) { - return nil, ErrInvalidConnSelected - } - return s.NewStreamWithConn(best) -} - -// NewStreamWithSelectConn opens a new Stream on a connection selected -// by selConn. -func (s *Swarm) NewStreamSelectConn(selConn SelectConn) (*Stream, error) { - if selConn == nil { - return nil, errors.New("nil SelectConn") - } - - conns := s.Conns() - if len(conns) == 0 { - return nil, ErrNoConnections - } - return s.newStreamSelectConn(selConn, conns) -} - -// NewStreamWithGroup opens a new Stream on an available connection in -// the given group. Uses the current swarm.SelectConn to pick between -// multiple connections. -func (s *Swarm) NewStreamWithGroup(group Group) (*Stream, error) { - conns := s.ConnsWithGroup(group) - return s.newStreamSelectConn(s.SelectConn(), conns) -} - -// NewStreamWithNetConn opens a new Stream on given net.Conn. -// Calls s.AddConn(netConn). -func (s *Swarm) NewStreamWithNetConn(netConn net.Conn) (*Stream, error) { - c, err := s.AddConn(netConn) - if err != nil { - return nil, err - } - return s.NewStreamWithConn(c) -} - -// NewStreamWithConnection opens a new Stream on given connection. -func (s *Swarm) NewStreamWithConn(conn *Conn) (*Stream, error) { - if conn == nil { - return nil, errors.New("nil Conn") - } - if conn.Swarm() != s { - return nil, errors.New("connection not associated with swarm") - } - - if conn.smuxConn.IsClosed() { - go conn.Close() - return nil, errors.New("conn is closed") - } - - s.connLock.RLock() - if _, found := s.conns[conn]; !found { - s.connLock.RUnlock() - return nil, errors.New("connection not associated with swarm") - } - s.connLock.RUnlock() - return s.createStream(conn) -} - -// AddConnToGroup assigns given Group to conn -func (s *Swarm) AddConnToGroup(conn *Conn, g Group) { - conn.groups.Add(g) -} - -// ConnsWithGroup returns all the connections with a given Group -func (s *Swarm) ConnsWithGroup(g Group) []*Conn { - return ConnsWithGroup(g, s.Conns()) -} - -// StreamsWithGroup returns all the streams with a given Group -func (s *Swarm) StreamsWithGroup(g Group) []*Stream { - return StreamsWithGroup(g, s.Streams()) -} - -// Close shuts down the Swarm, and it's listeners. -func (s *Swarm) Close() error { - defer close(s.closed) - - // automatically close everything new we get. - s.SetConnHandler(func(c *Conn) { c.Close() }) - s.SetStreamHandler(func(s *Stream) { s.Close() }) - - var wgl sync.WaitGroup - for _, l := range s.Listeners() { - wgl.Add(1) - go func(list *Listener) { - list.Close() - wgl.Done() - }(l) - } - wgl.Wait() - - var wgc sync.WaitGroup - for _, c := range s.Conns() { - wgc.Add(1) - go func(conn *Conn) { - conn.Close() - wgc.Done() - }(c) - } - wgc.Wait() - return nil -} - -// connGarbageCollect periodically sweeps conns to make sure -// they're still alive. if any are closed, remvoes them. -func (s *Swarm) connGarbageCollect() { - for { - select { - case <-s.closed: - return - case <-time.After(GarbageCollectTimeout): - } - - for _, c := range s.Conns() { - if c.smuxConn.IsClosed() { - go c.Close() - } - } - } -} - -// Notify signs up Notifiee to receive signals when events happen -func (s *Swarm) Notify(n Notifiee) { - s.notifieeLock.Lock() - s.notifiees[n] = struct{}{} - s.notifieeLock.Unlock() -} - -// StopNotify unregisters Notifiee fromr receiving signals -func (s *Swarm) StopNotify(n Notifiee) { - s.notifieeLock.Lock() - delete(s.notifiees, n) - s.notifieeLock.Unlock() -} - -// notifyAll runs the notification function on all Notifiees -func (s *Swarm) notifyAll(notification func(n Notifiee)) { - s.notifieeLock.RLock() - for n := range s.notifiees { - // make sure we dont block - // and they dont block each other. - go notification(n) - } - s.notifieeLock.RUnlock() -} - -// Notifiee is an interface for an object wishing to receive -// notifications from a Swarm -type Notifiee interface { - Connected(*Conn) // called when a connection opened - Disconnected(*Conn) // called when a connection closed - OpenedStream(*Stream) // called when a stream opened - ClosedStream(*Stream) // called when a stream closed -} diff --git a/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/.gxignore b/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/README.md b/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/README.md deleted file mode 100644 index 8b9cd950..00000000 --- a/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# go-multiplex - -A super simple stream muxing library compatible with [multiplex](http://github.com/maxogden/multiplex) - -## Usage - -```go -mplex := multiplex.NewMultiplex(mysocket) - -s := mplex.NewStream() -s.Write([]byte("Hello World!") -s.Close() - -mplex.Serve(func(s *multiplex.Stream) { - // echo back everything received - io.Copy(s, s) -}) -``` diff --git a/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/multiplex.go b/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/multiplex.go deleted file mode 100644 index 01b2dc1c..00000000 --- a/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/multiplex.go +++ /dev/null @@ -1,393 +0,0 @@ -package multiplex - -import ( - "bufio" - "encoding/binary" - "errors" - "fmt" - "io" - "io/ioutil" - "sync" -) - -const ( - NewStream = iota - Receiver - Initiator - Unknown - Close -) - -var _ = ioutil.ReadAll -var _ = bufio.NewReadWriter -var _ = binary.MaxVarintLen16 - -type msg struct { - header uint64 - data []byte - err chan<- error -} - -type Stream struct { - id uint64 - name string - header uint64 - closed chan struct{} - data_in chan []byte - data_out chan<- msg - extra []byte -} - -func newStream(id uint64, name string, initiator bool, send chan<- msg) *Stream { - var hfn uint64 - if initiator { - hfn = 2 - } else { - hfn = 1 - } - return &Stream{ - id: id, - name: name, - header: (id << 3) | hfn, - data_in: make(chan []byte, 8), - data_out: send, - closed: make(chan struct{}), - } -} - -func (s *Stream) Name() string { - return s.name -} - -func (s *Stream) receive(b []byte) { - select { - case s.data_in <- b: - case <-s.closed: - } -} - -func (m *Multiplex) Accept() (*Stream, error) { - select { - case s, ok := <-m.nstreams: - if !ok { - return nil, errors.New("multiplex closed") - } - return s, nil - case err := <-m.errs: - return nil, err - case <-m.closed: - return nil, errors.New("multiplex closed") - } -} - -func (s *Stream) Read(b []byte) (int, error) { - if s.extra == nil { - select { - case <-s.closed: - return 0, io.EOF - case read, ok := <-s.data_in: - if !ok { - return 0, io.EOF - } - s.extra = read - } - } - n := copy(b, s.extra) - if n < len(s.extra) { - s.extra = s.extra[n:] - } else { - s.extra = nil - } - return n, nil -} - -func (s *Stream) Write(b []byte) (int, error) { - errs := make(chan error, 1) - select { - case s.data_out <- msg{header: s.header, data: b, err: errs}: - select { - case err := <-errs: - return len(b), err - case <-s.closed: - return 0, errors.New("stream closed") - } - - case <-s.closed: - return 0, errors.New("stream closed") - } -} - -func (s *Stream) Close() error { - select { - case <-s.closed: - return nil - default: - close(s.closed) - select { - case s.data_out <- msg{ - header: (s.id << 3) | Close, - err: make(chan error, 1), //throw away error, whatever - }: - default: - } - close(s.data_in) - return nil - } -} - -type Multiplex struct { - con io.ReadWriteCloser - buf *bufio.Reader - nextID uint64 - outchan chan msg - closed chan struct{} - initiator bool - - nstreams chan *Stream - errs chan error - - channels map[uint64]*Stream - ch_lock sync.Mutex -} - -func NewMultiplex(con io.ReadWriteCloser, initiator bool) *Multiplex { - mp := &Multiplex{ - con: con, - initiator: initiator, - buf: bufio.NewReader(con), - channels: make(map[uint64]*Stream), - outchan: make(chan msg), - closed: make(chan struct{}), - nstreams: make(chan *Stream, 16), - errs: make(chan error), - } - - go mp.handleOutgoing() - go mp.handleIncoming() - - return mp -} - -func (mp *Multiplex) Close() error { - if mp.IsClosed() { - return nil - } - close(mp.closed) - mp.ch_lock.Lock() - defer mp.ch_lock.Unlock() - for _, s := range mp.channels { - err := s.Close() - if err != nil { - return err - } - } - return nil -} - -func (mp *Multiplex) IsClosed() bool { - select { - case <-mp.closed: - return true - default: - return false - } -} - -func (mp *Multiplex) handleOutgoing() { - for { - select { - case msg, ok := <-mp.outchan: - if !ok { - return - } - - buf := EncodeVarint(msg.header) - _, err := mp.con.Write(buf) - if err != nil { - msg.err <- err - continue - } - - buf = EncodeVarint(uint64(len(msg.data))) - _, err = mp.con.Write(buf) - if err != nil { - msg.err <- err - continue - } - - _, err = mp.con.Write(msg.data) - if err != nil { - msg.err <- err - continue - } - - msg.err <- nil - case <-mp.closed: - return - } - } -} - -func (mp *Multiplex) nextChanID() (out uint64) { - if mp.initiator { - out = mp.nextID + 1 - } else { - out = mp.nextID - } - mp.nextID += 2 - return -} - -func (mp *Multiplex) NewStream() *Stream { - return mp.NewNamedStream("") -} - -func (mp *Multiplex) NewNamedStream(name string) *Stream { - mp.ch_lock.Lock() - sid := mp.nextChanID() - header := (sid << 3) | NewStream - - if name == "" { - name = fmt.Sprint(sid) - } - s := newStream(sid, name, true, mp.outchan) - mp.channels[sid] = s - mp.ch_lock.Unlock() - - mp.outchan <- msg{ - header: header, - data: []byte(name), - err: make(chan error, 1), //throw away error - } - - return s -} - -func (mp *Multiplex) sendErr(err error) { - select { - case mp.errs <- err: - case <-mp.closed: - } -} - -func (mp *Multiplex) handleIncoming() { - defer mp.shutdown() - for { - ch, tag, err := mp.readNextHeader() - if err != nil { - mp.sendErr(err) - return - } - - b, err := mp.readNext() - if err != nil { - mp.sendErr(err) - return - } - - mp.ch_lock.Lock() - msch, ok := mp.channels[ch] - if !ok { - var name string - if tag == NewStream { - name = string(b) - } - msch = newStream(ch, name, false, mp.outchan) - mp.channels[ch] = msch - select { - case mp.nstreams <- msch: - case <-mp.closed: - return - } - if tag == NewStream { - mp.ch_lock.Unlock() - continue - } - } - mp.ch_lock.Unlock() - - if tag == Close { - msch.Close() - mp.ch_lock.Lock() - delete(mp.channels, ch) - mp.ch_lock.Unlock() - continue - } - - msch.receive(b) - } -} - -func (mp *Multiplex) shutdown() { - mp.ch_lock.Lock() - defer mp.ch_lock.Unlock() - for _, s := range mp.channels { - s.Close() - } -} - -func (mp *Multiplex) readNextHeader() (uint64, uint64, error) { - h, _, err := DecodeVarint(mp.buf) - if err != nil { - return 0, 0, err - } - - // get channel ID - ch := h >> 3 - - rem := h & 7 - - return ch, rem, nil -} - -func (mp *Multiplex) readNext() ([]byte, error) { - // get length - l, _, err := DecodeVarint(mp.buf) - if err != nil { - return nil, err - } - - buf := make([]byte, l) - n, err := io.ReadFull(mp.buf, buf) - if err != nil { - return nil, err - } - - if n != int(l) { - panic("NOT THE SAME") - } - - return buf, nil -} - -func EncodeVarint(x uint64) []byte { - var buf [10]byte - var n int - for n = 0; x > 127; n++ { - buf[n] = 0x80 | uint8(x&0x7F) - x >>= 7 - } - buf[n] = uint8(x) - n++ - return buf[0:n] -} - -func DecodeVarint(r *bufio.Reader) (x uint64, n int, err error) { - // x, n already 0 - for shift := uint(0); shift < 64; shift += 7 { - val, err := r.ReadByte() - if err != nil { - return 0, 0, err - } - - b := uint64(val) - n++ - x |= (b & 0x7F) << shift - if (b & 0x80) == 0 { - return x, n, nil - } - } - - // The number is too large to represent in a 64-bit value. - return 0, 0, errors.New("Too large of a number!") -} diff --git a/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/multiplex_test.go b/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/multiplex_test.go deleted file mode 100644 index 5d713eff..00000000 --- a/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/multiplex_test.go +++ /dev/null @@ -1,118 +0,0 @@ -package multiplex - -import ( - "fmt" - "io" - "net" - "testing" - - rand "github.com/dustin/randbo" -) - -func TestBasicStreams(t *testing.T) { - a, b := net.Pipe() - - mpa := NewMultiplex(a, false) - mpb := NewMultiplex(b, true) - - mes := []byte("Hello world") - go func() { - s, err := mpb.Accept() - if err != nil { - t.Fatal(err) - } - - _, err = s.Write(mes) - if err != nil { - t.Fatal(err) - } - - err = s.Close() - if err != nil { - t.Fatal(err) - } - }() - - s := mpa.NewStream() - - buf := make([]byte, len(mes)) - n, err := s.Read(buf) - if err != nil { - t.Fatal(err) - } - - if n != len(mes) { - t.Fatal("read wrong amount") - } - - if string(buf) != string(mes) { - t.Fatal("got bad data") - } - - s.Close() - - mpa.Close() - mpb.Close() -} - -func TestEcho(t *testing.T) { - a, b := net.Pipe() - - mpa := NewMultiplex(a, false) - mpb := NewMultiplex(b, true) - - mes := make([]byte, 40960) - rand.New().Read(mes) - go func() { - s, err := mpb.Accept() - if err != nil { - t.Fatal(err) - } - - defer s.Close() - io.Copy(s, s) - }() - - s := mpa.NewStream() - - _, err := s.Write(mes) - if err != nil { - t.Fatal(err) - } - - buf := make([]byte, len(mes)) - n, err := io.ReadFull(s, buf) - if err != nil { - t.Fatal(err) - } - - if n != len(mes) { - t.Fatal("read wrong amount") - } - - if err := arrComp(buf, mes); err != nil { - t.Fatal(err) - } - s.Close() - - mpa.Close() - mpb.Close() -} - -func arrComp(a, b []byte) error { - msg := "" - if len(a) != len(b) { - msg += fmt.Sprintf("arrays differ in length: %d %d\n", len(a), len(b)) - } - - for i := 0; i < len(a) && i < len(b); i++ { - if a[i] != b[i] { - msg += fmt.Sprintf("content differs at index %d [%d != %d]", i, a[i], b[i]) - return fmt.Errorf(msg) - } - } - if len(msg) > 0 { - return fmt.Errorf(msg) - } - return nil -} diff --git a/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/package.json b/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/package.json deleted file mode 100644 index 9d9631d2..00000000 --- a/vendor/gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "go-multiplex", - "author": "whyrusleeping", - "version": "0.0.0", - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/whyrusleeping/go-multiplex" - } -} \ No newline at end of file diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/.gxignore b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/.travis.yml b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/.travis.yml deleted file mode 100644 index 70e012b8..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -language: go - -go: - - 1.0 - - 1.1 - - tip diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/CONTRIBUTORS b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/CONTRIBUTORS deleted file mode 100644 index 958416ef..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/CONTRIBUTORS +++ /dev/null @@ -1,5 +0,0 @@ -Alec Thomas -Guilhem Lettron -Ivan Daniluk -Nimi Wariboko Jr -Róbert Selvek diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/LICENSE b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/LICENSE deleted file mode 100644 index f1f6cfce..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2013 Örjan Persson. 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/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/README.md b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/README.md deleted file mode 100644 index 56695508..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/README.md +++ /dev/null @@ -1,89 +0,0 @@ -## Golang logging library - -[![godoc](http://img.shields.io/badge/godoc-reference-blue.svg?style=flat)](https://godoc.org/github.com/op/go-logging) [![build](https://img.shields.io/travis/op/go-logging.svg?style=flat)](https://travis-ci.org/op/go-logging) - -Package logging implements a logging infrastructure for Go. Its output format -is customizable and supports different logging backends like syslog, file and -memory. Multiple backends can be utilized with different log levels per backend -and logger. - -## Example - -Let's have a look at an [example](examples/example.go) which demonstrates most -of the features found in this library. - -[![Example Output](examples/example.png)](examples/example.go) - -```go -package main - -import ( - "os" - - "github.com/op/go-logging" -) - -var log = logging.MustGetLogger("example") - -// Example format string. Everything except the message has a custom color -// which is dependent on the log level. Many fields have a custom output -// formatting too, eg. the time returns the hour down to the milli second. -var format = logging.MustStringFormatter( - "%{color}%{time:15:04:05.000} %{shortfunc} â–¶ %{level:.4s} %{id:03x}%{color:reset} %{message}", -) - -// Password is just an example type implementing the Redactor interface. Any -// time this is logged, the Redacted() function will be called. -type Password string - -func (p Password) Redacted() interface{} { - return logging.Redact(string(p)) -} - -func main() { - // For demo purposes, create two backend for os.Stderr. - backend1 := logging.NewLogBackend(os.Stderr, "", 0) - backend2 := logging.NewLogBackend(os.Stderr, "", 0) - - // For messages written to backend2 we want to add some additional - // information to the output, including the used log level and the name of - // the function. - backend2Formatter := logging.NewBackendFormatter(backend2, format) - - // Only errors and more severe messages should be sent to backend1 - backend1Leveled := logging.AddModuleLevel(backend1) - backend1Leveled.SetLevel(logging.ERROR, "") - - // Set the backends to be used. - logging.SetBackend(backend1Leveled, backend2Formatter) - - log.Debug("debug %s", Password("secret")) - log.Info("info") - log.Notice("notice") - log.Warning("warning") - log.Error("err") - log.Critical("crit") -} -``` - -## Installing - -### Using *go get* - - $ go get github.com/op/go-logging - -After this command *go-logging* is ready to use. Its source will be in: - - $GOROOT/src/pkg/github.com/op/go-logging - -You can use `go get -u` to update the package. - -## Documentation - -For docs, see http://godoc.org/github.com/op/go-logging or run: - - $ godoc github.com/op/go-logging - -## Additional resources - -* [wslog](https://godoc.org/github.com/cryptix/go/logging/wslog) -- exposes log messages through a WebSocket. diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/backend.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/backend.go deleted file mode 100644 index 6cd589ca..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/backend.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package logging - -// defaultBackend is the backend used for all logging calls. -var defaultBackend LeveledBackend - -// Backend is the interface which a log backend need to implement to be able to -// be used as a logging backend. -type Backend interface { - Log(Level, int, *Record) error -} - -// Set backend replaces the backend currently set with the given new logging -// backend. -func SetBackend(backends ...Backend) LeveledBackend { - var backend Backend - if len(backends) == 1 { - backend = backends[0] - } else { - backend = MultiLogger(backends...) - } - - defaultBackend = AddModuleLevel(backend) - return defaultBackend -} - -// SetLevel sets the logging level for the specified module. The module -// corresponds to the string specified in GetLogger. -func SetLevel(level Level, module string) { - defaultBackend.SetLevel(level, module) -} - -// GetLevel returns the logging level for the specified module. -func GetLevel(module string) Level { - return defaultBackend.GetLevel(module) -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/example_test.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/example_test.go deleted file mode 100644 index deb8900e..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/example_test.go +++ /dev/null @@ -1,40 +0,0 @@ -package logging - -import "os" - -func Example() { - // This call is for testing purposes and will set the time to unix epoch. - InitForTesting(DEBUG) - - var log = MustGetLogger("example") - - // For demo purposes, create two backend for os.Stdout. - // - // os.Stderr should most likely be used in the real world but then the - // "Output:" check in this example would not work. - backend1 := NewLogBackend(os.Stdout, "", 0) - backend2 := NewLogBackend(os.Stdout, "", 0) - - // For messages written to backend2 we want to add some additional - // information to the output, including the used log level and the name of - // the function. - var format = MustStringFormatter( - "%{time:15:04:05.000} %{shortfunc} %{level:.1s} %{message}", - ) - backend2Formatter := NewBackendFormatter(backend2, format) - - // Only errors and more severe messages should be sent to backend2 - backend2Leveled := AddModuleLevel(backend2Formatter) - backend2Leveled.SetLevel(ERROR, "") - - // Set the backends to be used and the default level. - SetBackend(backend1, backend2Leveled) - - log.Debug("debug %s", "arg") - log.Error("error") - - // Output: - // debug arg - // error - // 00:00:00.000 Example E error -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/examples/example.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/examples/example.go deleted file mode 100644 index 7ea3ad19..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/examples/example.go +++ /dev/null @@ -1,49 +0,0 @@ -package main - -import ( - "os" - - "gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging" -) - -var log = logging.MustGetLogger("example") - -// Example format string. Everything except the message has a custom color -// which is dependent on the log level. Many fields have a custom output -// formatting too, eg. the time returns the hour down to the milli second. -var format = logging.MustStringFormatter( - "%{color}%{time:15:04:05.000} %{shortfunc} â–¶ %{level:.4s} %{id:03x}%{color:reset} %{message}", -) - -// Password is just an example type implementing the Redactor interface. Any -// time this is logged, the Redacted() function will be called. -type Password string - -func (p Password) Redacted() interface{} { - return logging.Redact(string(p)) -} - -func main() { - // For demo purposes, create two backend for os.Stderr. - backend1 := logging.NewLogBackend(os.Stderr, "", 0) - backend2 := logging.NewLogBackend(os.Stderr, "", 0) - - // For messages written to backend2 we want to add some additional - // information to the output, including the used log level and the name of - // the function. - backend2Formatter := logging.NewBackendFormatter(backend2, format) - - // Only errors and more severe messages should be sent to backend1 - backend1Leveled := logging.AddModuleLevel(backend1) - backend1Leveled.SetLevel(logging.ERROR, "") - - // Set the backends to be used. - logging.SetBackend(backend1Leveled, backend2Formatter) - - log.Debug("debug %s", Password("secret")) - log.Info("info") - log.Notice("notice") - log.Warning("warning") - log.Error("err") - log.Critical("crit") -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/examples/example.png b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/examples/example.png deleted file mode 100644 index ff3392b7a5b37a09d44db6a8f5ef293c5c610791..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17675 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 diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/format.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/format.go deleted file mode 100644 index 99b1ddb7..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/format.go +++ /dev/null @@ -1,368 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package logging - -import ( - "bytes" - "errors" - "fmt" - "io" - "os" - "path" - "path/filepath" - "regexp" - "runtime" - "strings" - "sync" - "time" -) - -// TODO see Formatter interface in fmt/print.go -// TODO try text/template, maybe it have enough performance -// TODO other template systems? -// TODO make it possible to specify formats per backend? -type fmtVerb int - -const ( - fmtVerbTime fmtVerb = iota - fmtVerbLevel - fmtVerbId - fmtVerbPid - fmtVerbProgram - fmtVerbModule - fmtVerbMessage - fmtVerbLongfile - fmtVerbShortfile - fmtVerbLongpkg - fmtVerbShortpkg - fmtVerbLongfunc - fmtVerbShortfunc - fmtVerbLevelColor - - // Keep last, there are no match for these below. - fmtVerbUnknown - fmtVerbStatic -) - -var fmtVerbs = []string{ - "time", - "level", - "id", - "pid", - "program", - "module", - "message", - "longfile", - "shortfile", - "longpkg", - "shortpkg", - "longfunc", - "shortfunc", - "color", -} - -const rfc3339Milli = "2006-01-02T15:04:05.999Z07:00" - -var defaultVerbsLayout = []string{ - rfc3339Milli, - "s", - "d", - "d", - "s", - "s", - "s", - "s", - "s", - "s", - "s", - "s", - "s", - "", -} - -var ( - pid = os.Getpid() - program = filepath.Base(os.Args[0]) -) - -func getFmtVerbByName(name string) fmtVerb { - for i, verb := range fmtVerbs { - if name == verb { - return fmtVerb(i) - } - } - return fmtVerbUnknown -} - -// Formatter is the required interface for a custom log record formatter. -type Formatter interface { - Format(calldepth int, r *Record, w io.Writer) error -} - -// formatter is used by all backends unless otherwise overriden. -var formatter struct { - sync.RWMutex - def Formatter -} - -func getFormatter() Formatter { - formatter.RLock() - defer formatter.RUnlock() - return formatter.def -} - -var ( - // DefaultFormatter is the default formatter used and is only the message. - DefaultFormatter Formatter = MustStringFormatter("%{message}") - - // Glog format - GlogFormatter Formatter = MustStringFormatter("%{level:.1s}%{time:0102 15:04:05.999999} %{pid} %{shortfile}] %{message}") -) - -// SetFormatter sets the default formatter for all new backends. A backend will -// fetch this value once it is needed to format a record. Note that backends -// will cache the formatter after the first point. For now, make sure to set -// the formatter before logging. -func SetFormatter(f Formatter) { - formatter.Lock() - defer formatter.Unlock() - formatter.def = f -} - -var formatRe *regexp.Regexp = regexp.MustCompile(`%{([a-z]+)(?::(.*?[^\\]))?}`) - -type part struct { - verb fmtVerb - layout string -} - -// stringFormatter contains a list of parts which explains how to build the -// formatted string passed on to the logging backend. -type stringFormatter struct { - parts []part -} - -// NewStringFormatter returns a new Formatter which outputs the log record as a -// string based on the 'verbs' specified in the format string. -// -// The verbs: -// -// General: -// %{id} Sequence number for log message (uint64). -// %{pid} Process id (int) -// %{time} Time when log occurred (time.Time) -// %{level} Log level (Level) -// %{module} Module (string) -// %{program} Basename of os.Args[0] (string) -// %{message} Message (string) -// %{longfile} Full file name and line number: /a/b/c/d.go:23 -// %{shortfile} Final file name element and line number: d.go:23 -// %{color} ANSI color based on log level -// -// For normal types, the output can be customized by using the 'verbs' defined -// in the fmt package, eg. '%{id:04d}' to make the id output be '%04d' as the -// format string. -// -// For time.Time, use the same layout as time.Format to change the time format -// when output, eg "2006-01-02T15:04:05.999Z-07:00". -// -// For the 'color' verb, the output can be adjusted to either use bold colors, -// i.e., '%{color:bold}' or to reset the ANSI attributes, i.e., -// '%{color:reset}' Note that if you use the color verb explicitly, be sure to -// reset it or else the color state will persist past your log message. e.g., -// "%{color:bold}%{time:15:04:05} %{level:-8s}%{color:reset} %{message}" will -// just colorize the time and level, leaving the message uncolored. -// -// There's also a couple of experimental 'verbs'. These are exposed to get -// feedback and needs a bit of tinkering. Hence, they might change in the -// future. -// -// Experimental: -// %{longpkg} Full package path, eg. github.com/go-logging -// %{shortpkg} Base package path, eg. go-logging -// %{longfunc} Full function name, eg. littleEndian.PutUint32 -// %{shortfunc} Base function name, eg. PutUint32 -func NewStringFormatter(format string) (*stringFormatter, error) { - var fmter = &stringFormatter{} - - // Find the boundaries of all %{vars} - matches := formatRe.FindAllStringSubmatchIndex(format, -1) - if matches == nil { - return nil, errors.New("logger: invalid log format: " + format) - } - - // Collect all variables and static text for the format - prev := 0 - for _, m := range matches { - start, end := m[0], m[1] - if start > prev { - fmter.add(fmtVerbStatic, format[prev:start]) - } - - name := format[m[2]:m[3]] - verb := getFmtVerbByName(name) - if verb == fmtVerbUnknown { - return nil, errors.New("logger: unknown variable: " + name) - } - - // Handle layout customizations or use the default. If this is not for the - // time or color formatting, we need to prefix with %. - layout := defaultVerbsLayout[verb] - if m[4] != -1 { - layout = format[m[4]:m[5]] - } - if verb != fmtVerbTime && verb != fmtVerbLevelColor { - layout = "%" + layout - } - - fmter.add(verb, layout) - prev = end - } - end := format[prev:] - if end != "" { - fmter.add(fmtVerbStatic, end) - } - - // Make a test run to make sure we can format it correctly. - t, err := time.Parse(time.RFC3339, "2010-02-04T21:00:57-08:00") - if err != nil { - panic(err) - } - r := &Record{ - Id: 12345, - Time: t, - Module: "logger", - fmt: "hello %s", - args: []interface{}{"go"}, - } - if err := fmter.Format(0, r, &bytes.Buffer{}); err != nil { - return nil, err - } - - return fmter, nil -} - -// MustStringFormatter is equivalent to NewStringFormatter with a call to panic -// on error. -func MustStringFormatter(format string) *stringFormatter { - f, err := NewStringFormatter(format) - if err != nil { - panic("Failed to initialized string formatter: " + err.Error()) - } - return f -} - -func (f *stringFormatter) add(verb fmtVerb, layout string) { - f.parts = append(f.parts, part{verb, layout}) -} - -func (f *stringFormatter) Format(calldepth int, r *Record, output io.Writer) error { - for _, part := range f.parts { - if part.verb == fmtVerbStatic { - output.Write([]byte(part.layout)) - } else if part.verb == fmtVerbTime { - output.Write([]byte(r.Time.Format(part.layout))) - } else if part.verb == fmtVerbLevelColor { - if part.layout == "bold" { - output.Write([]byte(boldcolors[r.Level])) - } else if part.layout == "reset" { - output.Write([]byte("\033[0m")) - } else { - output.Write([]byte(colors[r.Level])) - } - } else { - var v interface{} - switch part.verb { - case fmtVerbLevel: - v = r.Level - break - case fmtVerbId: - v = r.Id - break - case fmtVerbPid: - v = pid - break - case fmtVerbProgram: - v = program - break - case fmtVerbModule: - v = r.Module - break - case fmtVerbMessage: - v = r.Message() - break - case fmtVerbLongfile, fmtVerbShortfile: - _, file, line, ok := runtime.Caller(calldepth + 1) - if !ok { - file = "???" - line = 0 - } else if part.verb == fmtVerbShortfile { - file = filepath.Base(file) - } - v = fmt.Sprintf("%s:%d", file, line) - case fmtVerbLongfunc, fmtVerbShortfunc, - fmtVerbLongpkg, fmtVerbShortpkg: - // TODO cache pc - v = "???" - if pc, _, _, ok := runtime.Caller(calldepth + 1); ok { - if f := runtime.FuncForPC(pc); f != nil { - v = formatFuncName(part.verb, f.Name()) - } - } - default: - panic("unhandled format part") - } - fmt.Fprintf(output, part.layout, v) - } - } - return nil -} - -// formatFuncName tries to extract certain part of the runtime formatted -// function name to some pre-defined variation. -// -// This function is known to not work properly if the package path or name -// contains a dot. -func formatFuncName(v fmtVerb, f string) string { - i := strings.LastIndex(f, "/") - j := strings.Index(f[i+1:], ".") - if j < 1 { - return "???" - } - pkg, fun := f[:i+j+1], f[i+j+2:] - switch v { - case fmtVerbLongpkg: - return pkg - case fmtVerbShortpkg: - return path.Base(pkg) - case fmtVerbLongfunc: - return fun - case fmtVerbShortfunc: - i = strings.LastIndex(fun, ".") - return fun[i+1:] - } - panic("unexpected func formatter") -} - -// backendFormatter combines a backend with a specific formatter making it -// possible to have different log formats for different backends. -type backendFormatter struct { - b Backend - f Formatter -} - -// NewBackendFormatter creates a new backend which makes all records that -// passes through it beeing formatted by the specific formatter. -func NewBackendFormatter(b Backend, f Formatter) *backendFormatter { - return &backendFormatter{b, f} -} - -// Log implements the Log function required by the Backend interface. -func (bf *backendFormatter) Log(level Level, calldepth int, r *Record) error { - // Make a shallow copy of the record and replace any formatter - r2 := *r - r2.formatter = bf.f - return bf.b.Log(level, calldepth+1, &r2) -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/format_test.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/format_test.go deleted file mode 100644 index c008e9e8..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/format_test.go +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package logging - -import ( - "bytes" - "testing" -) - -func TestFormat(t *testing.T) { - backend := InitForTesting(DEBUG) - - f, err := NewStringFormatter("%{shortfile} %{time:2006-01-02T15:04:05} %{level:.1s} %{id:04d} %{module} %{message}") - if err != nil { - t.Fatalf("failed to set format: %s", err) - } - SetFormatter(f) - - log := MustGetLogger("module") - log.Debug("hello") - - line := MemoryRecordN(backend, 0).Formatted(0) - if "format_test.go:24 1970-01-01T00:00:00 D 0001 module hello" != line { - t.Errorf("Unexpected format: %s", line) - } -} - -func logAndGetLine(backend *MemoryBackend) string { - MustGetLogger("foo").Debug("hello") - return MemoryRecordN(backend, 0).Formatted(1) -} - -func getLastLine(backend *MemoryBackend) string { - return MemoryRecordN(backend, 0).Formatted(1) -} - -func realFunc(backend *MemoryBackend) string { - return logAndGetLine(backend) -} - -type structFunc struct{} - -func (structFunc) Log(backend *MemoryBackend) string { - return logAndGetLine(backend) -} - -func TestRealFuncFormat(t *testing.T) { - backend := InitForTesting(DEBUG) - SetFormatter(MustStringFormatter("%{shortfunc}")) - - line := realFunc(backend) - if "realFunc" != line { - t.Errorf("Unexpected format: %s", line) - } -} - -func TestStructFuncFormat(t *testing.T) { - backend := InitForTesting(DEBUG) - SetFormatter(MustStringFormatter("%{longfunc}")) - - var x structFunc - line := x.Log(backend) - if "structFunc.Log" != line { - t.Errorf("Unexpected format: %s", line) - } -} - -func TestVarFuncFormat(t *testing.T) { - backend := InitForTesting(DEBUG) - SetFormatter(MustStringFormatter("%{shortfunc}")) - - var varFunc = func() string { - return logAndGetLine(backend) - } - - line := varFunc() - if "???" == line || "TestVarFuncFormat" == line || "varFunc" == line { - t.Errorf("Unexpected format: %s", line) - } -} - -func TestFormatFuncName(t *testing.T) { - var tests = []struct { - filename string - longpkg string - shortpkg string - longfunc string - shortfunc string - }{ - {"", - "???", - "???", - "???", - "???"}, - {"main", - "???", - "???", - "???", - "???"}, - {"main.", - "main", - "main", - "", - ""}, - {"main.main", - "main", - "main", - "main", - "main"}, - {"github.com/op/go-logging.func·001", - "github.com/op/go-logging", - "go-logging", - "func·001", - "func·001"}, - {"github.com/op/go-logging.stringFormatter.Format", - "github.com/op/go-logging", - "go-logging", - "stringFormatter.Format", - "Format"}, - } - - var v string - for _, test := range tests { - v = formatFuncName(fmtVerbLongpkg, test.filename) - if test.longpkg != v { - t.Errorf("%s != %s", test.longpkg, v) - } - v = formatFuncName(fmtVerbShortpkg, test.filename) - if test.shortpkg != v { - t.Errorf("%s != %s", test.shortpkg, v) - } - v = formatFuncName(fmtVerbLongfunc, test.filename) - if test.longfunc != v { - t.Errorf("%s != %s", test.longfunc, v) - } - v = formatFuncName(fmtVerbShortfunc, test.filename) - if test.shortfunc != v { - t.Errorf("%s != %s", test.shortfunc, v) - } - } -} - -func TestBackendFormatter(t *testing.T) { - InitForTesting(DEBUG) - - // Create two backends and wrap one of the with a backend formatter - b1 := NewMemoryBackend(1) - b2 := NewMemoryBackend(1) - - f := MustStringFormatter("%{level} %{message}") - bf := NewBackendFormatter(b2, f) - - SetBackend(b1, bf) - - log := MustGetLogger("module") - log.Info("foo") - if "foo" != getLastLine(b1) { - t.Errorf("Unexpected line: %s", getLastLine(b1)) - } - if "INFO foo" != getLastLine(b2) { - t.Errorf("Unexpected line: %s", getLastLine(b2)) - } -} - -func BenchmarkStringFormatter(b *testing.B) { - fmt := "%{time:2006-01-02T15:04:05} %{level:.1s} %{id:04d} %{module} %{message}" - f := MustStringFormatter(fmt) - - backend := InitForTesting(DEBUG) - buf := &bytes.Buffer{} - log := MustGetLogger("module") - log.Debug("") - record := MemoryRecordN(backend, 0) - - b.ResetTimer() - for i := 0; i < b.N; i++ { - if err := f.Format(1, record, buf); err != nil { - b.Fatal(err) - buf.Truncate(0) - } - } -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/level.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/level.go deleted file mode 100644 index 1ef03917..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/level.go +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package logging - -import ( - "errors" - "strings" - "sync" -) - -var ErrInvalidLogLevel = errors.New("logger: invalid log level") - -// Level defines all available log levels for log messages. -type Level int - -const ( - CRITICAL Level = iota - ERROR - WARNING - NOTICE - INFO - DEBUG -) - -var levelNames = []string{ - "CRITICAL", - "ERROR", - "WARNING", - "NOTICE", - "INFO", - "DEBUG", -} - -// String returns the string representation of a logging level. -func (p Level) String() string { - return levelNames[p] -} - -// LogLevel returns the log level from a string representation. -func LogLevel(level string) (Level, error) { - for i, name := range levelNames { - if strings.EqualFold(name, level) { - return Level(i), nil - } - } - return ERROR, ErrInvalidLogLevel -} - -type Leveled interface { - GetLevel(string) Level - SetLevel(Level, string) - IsEnabledFor(Level, string) bool -} - -// LeveledBackend is a log backend with additional knobs for setting levels on -// individual modules to different levels. -type LeveledBackend interface { - Backend - Leveled -} - -type moduleLeveled struct { - levels map[string]Level - backend Backend - formatter Formatter - once sync.Once -} - -// AddModuleLevel wraps a log backend with knobs to have different log levels -// for different modules. -func AddModuleLevel(backend Backend) LeveledBackend { - var leveled LeveledBackend - var ok bool - if leveled, ok = backend.(LeveledBackend); !ok { - leveled = &moduleLeveled{ - levels: make(map[string]Level), - backend: backend, - } - } - return leveled -} - -// GetLevel returns the log level for the given module. -func (l *moduleLeveled) GetLevel(module string) Level { - level, exists := l.levels[module] - if exists == false { - level, exists = l.levels[""] - // no configuration exists, default to debug - if exists == false { - level = DEBUG - } - } - return level -} - -// SetLevel sets the log level for the given module. -func (l *moduleLeveled) SetLevel(level Level, module string) { - l.levels[module] = level -} - -// IsEnabledFor will return true if logging is enabled for the given module. -func (l *moduleLeveled) IsEnabledFor(level Level, module string) bool { - return level <= l.GetLevel(module) -} - -func (l *moduleLeveled) Log(level Level, calldepth int, rec *Record) (err error) { - if l.IsEnabledFor(level, rec.Module) { - // TODO get rid of traces of formatter here. BackendFormatter should be used. - rec.formatter = l.getFormatterAndCacheCurrent() - err = l.backend.Log(level, calldepth+1, rec) - } - return -} - -func (l *moduleLeveled) getFormatterAndCacheCurrent() Formatter { - l.once.Do(func() { - if l.formatter == nil { - l.formatter = getFormatter() - } - }) - return l.formatter -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/level_test.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/level_test.go deleted file mode 100644 index c8f9a373..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/level_test.go +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package logging - -import "testing" - -func TestLevelString(t *testing.T) { - // Make sure all levels can be converted from string -> constant -> string - for _, name := range levelNames { - level, err := LogLevel(name) - if err != nil { - t.Errorf("failed to get level: %v", err) - continue - } - - if level.String() != name { - t.Errorf("invalid level conversion: %v != %v", level, name) - } - } -} - -func TestLevelLogLevel(t *testing.T) { - tests := []struct { - expected Level - level string - }{ - {-1, "bla"}, - {INFO, "iNfO"}, - {ERROR, "error"}, - {WARNING, "warninG"}, - } - - for _, test := range tests { - level, err := LogLevel(test.level) - if err != nil { - if test.expected == -1 { - continue - } else { - t.Errorf("failed to convert %s: %s", test.level, err) - } - } - if test.expected != level { - t.Errorf("failed to convert %s to level: %s != %s", test.level, test.expected, level) - } - } -} - -func TestLevelModuleLevel(t *testing.T) { - backend := NewMemoryBackend(128) - - leveled := AddModuleLevel(backend) - leveled.SetLevel(NOTICE, "") - leveled.SetLevel(ERROR, "foo") - leveled.SetLevel(INFO, "foo.bar") - leveled.SetLevel(WARNING, "bar") - - expected := []struct { - level Level - module string - }{ - {NOTICE, ""}, - {NOTICE, "something"}, - {ERROR, "foo"}, - {INFO, "foo.bar"}, - {WARNING, "bar"}, - } - - for _, e := range expected { - actual := leveled.GetLevel(e.module) - if e.level != actual { - t.Errorf("unexpected level in %s: %s != %s", e.module, e.level, actual) - } - } -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/log.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/log.go deleted file mode 100644 index f009f8af..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/log.go +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package logging - -import ( - "bytes" - "fmt" - "io" - "log" -) - -// TODO initialize here -var colors []string -var boldcolors []string - -type color int - -const ( - colorBlack = (iota + 30) - colorRed - colorGreen - colorYellow - colorBlue - colorMagenta - colorCyan - colorWhite -) - -// LogBackend utilizes the standard log module. -type LogBackend struct { - Logger *log.Logger - Color bool -} - -// NewLogBackend creates a new LogBackend. -func NewLogBackend(out io.Writer, prefix string, flag int) *LogBackend { - return &LogBackend{Logger: log.New(out, prefix, flag)} -} - -func (b *LogBackend) Log(level Level, calldepth int, rec *Record) error { - if b.Color { - buf := &bytes.Buffer{} - buf.Write([]byte(colors[level])) - buf.Write([]byte(rec.Formatted(calldepth + 1))) - buf.Write([]byte("\033[0m")) - // For some reason, the Go logger arbitrarily decided "2" was the correct - // call depth... - return b.Logger.Output(calldepth+2, buf.String()) - } else { - return b.Logger.Output(calldepth+2, rec.Formatted(calldepth+1)) - } - panic("should not be reached") -} - -func colorSeq(color color) string { - return fmt.Sprintf("\033[%dm", int(color)) -} - -func colorSeqBold(color color) string { - return fmt.Sprintf("\033[%d;1m", int(color)) -} - -func init() { - colors = []string{ - CRITICAL: colorSeq(colorMagenta), - ERROR: colorSeq(colorRed), - WARNING: colorSeq(colorYellow), - NOTICE: colorSeq(colorGreen), - DEBUG: colorSeq(colorCyan), - } - boldcolors = []string{ - CRITICAL: colorSeqBold(colorMagenta), - ERROR: colorSeqBold(colorRed), - WARNING: colorSeqBold(colorYellow), - NOTICE: colorSeqBold(colorGreen), - DEBUG: colorSeqBold(colorCyan), - } -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/log_test.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/log_test.go deleted file mode 100644 index 0ddcdf37..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/log_test.go +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package logging - -import ( - "bytes" - "io/ioutil" - "log" - "strings" - "testing" -) - -func TestLogCalldepth(t *testing.T) { - buf := &bytes.Buffer{} - SetBackend(NewLogBackend(buf, "", log.Lshortfile)) - SetFormatter(MustStringFormatter("%{shortfile} %{level} %{message}")) - - log := MustGetLogger("test") - log.Info("test filename") - - parts := strings.SplitN(buf.String(), " ", 2) - - // Verify that the correct filename is registered by the stdlib logger - if !strings.HasPrefix(parts[0], "log_test.go:") { - t.Errorf("incorrect filename: %s", parts[0]) - } - // Verify that the correct filename is registered by go-logging - if !strings.HasPrefix(parts[1], "log_test.go:") { - t.Errorf("incorrect filename: %s", parts[1]) - } -} - -func BenchmarkLogMemoryBackendIgnored(b *testing.B) { - backend := SetBackend(NewMemoryBackend(1024)) - backend.SetLevel(INFO, "") - RunLogBenchmark(b) -} - -func BenchmarkLogMemoryBackend(b *testing.B) { - backend := SetBackend(NewMemoryBackend(1024)) - backend.SetLevel(DEBUG, "") - RunLogBenchmark(b) -} - -func BenchmarkLogChannelMemoryBackend(b *testing.B) { - channelBackend := NewChannelMemoryBackend(1024) - backend := SetBackend(channelBackend) - backend.SetLevel(DEBUG, "") - RunLogBenchmark(b) - channelBackend.Flush() -} - -func BenchmarkLogLeveled(b *testing.B) { - backend := SetBackend(NewLogBackend(ioutil.Discard, "", 0)) - backend.SetLevel(INFO, "") - - RunLogBenchmark(b) -} - -func BenchmarkLogLogBackend(b *testing.B) { - backend := SetBackend(NewLogBackend(ioutil.Discard, "", 0)) - backend.SetLevel(DEBUG, "") - RunLogBenchmark(b) -} - -func BenchmarkLogLogBackendColor(b *testing.B) { - colorizer := NewLogBackend(ioutil.Discard, "", 0) - colorizer.Color = true - backend := SetBackend(colorizer) - backend.SetLevel(DEBUG, "") - RunLogBenchmark(b) -} - -func BenchmarkLogLogBackendStdFlags(b *testing.B) { - backend := SetBackend(NewLogBackend(ioutil.Discard, "", log.LstdFlags)) - backend.SetLevel(DEBUG, "") - RunLogBenchmark(b) -} - -func BenchmarkLogLogBackendLongFileFlag(b *testing.B) { - backend := SetBackend(NewLogBackend(ioutil.Discard, "", log.Llongfile)) - backend.SetLevel(DEBUG, "") - RunLogBenchmark(b) -} - -func RunLogBenchmark(b *testing.B) { - password := Password("foo") - log := MustGetLogger("test") - - b.ResetTimer() - for i := 0; i < b.N; i++ { - log.Debug("log line for %d and this is rectified: %s", i, password) - } -} - -func BenchmarkLogFixed(b *testing.B) { - backend := SetBackend(NewLogBackend(ioutil.Discard, "", 0)) - backend.SetLevel(DEBUG, "") - - RunLogBenchmarkFixedString(b) -} - -func BenchmarkLogFixedIgnored(b *testing.B) { - backend := SetBackend(NewLogBackend(ioutil.Discard, "", 0)) - backend.SetLevel(INFO, "") - RunLogBenchmarkFixedString(b) -} - -func RunLogBenchmarkFixedString(b *testing.B) { - log := MustGetLogger("test") - - b.ResetTimer() - for i := 0; i < b.N; i++ { - log.Debug("some random fixed text") - } -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/logger.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/logger.go deleted file mode 100644 index 858c382e..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/logger.go +++ /dev/null @@ -1,277 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package logging implements a logging infrastructure for Go. It supports -// different logging backends like syslog, file and memory. Multiple backends -// can be utilized with different log levels per backend and logger. -package logging - -import ( - "bytes" - "fmt" - "log" - "os" - "strings" - "sync/atomic" - "time" -) - -// Redactor is an interface for types that may contain sensitive information -// (like passwords), which shouldn't be printed to the log. The idea was found -// in relog as part of the vitness project. -type Redactor interface { - Redacted() interface{} -} - -// Redact returns a string of * having the same length as s. -func Redact(s string) string { - return strings.Repeat("*", len(s)) -} - -var ( - // Sequence number is incremented and utilized for all log records created. - sequenceNo uint64 - - // timeNow is a customizable for testing purposes. - timeNow = time.Now -) - -// Record represents a log record and contains the timestamp when the record -// was created, an increasing id, filename and line and finally the actual -// formatted log line. -type Record struct { - Id uint64 - Time time.Time - Module string - Level Level - - // message is kept as a pointer to have shallow copies update this once - // needed. - message *string - args []interface{} - fmt string - formatter Formatter - formatted string -} - -// Formatted returns the string-formatted version of a record. -func (r *Record) Formatted(calldepth int) string { - if r.formatted == "" { - var buf bytes.Buffer - r.formatter.Format(calldepth+1, r, &buf) - r.formatted = buf.String() - } - return r.formatted -} - -// Message returns a string message for outputting. Redacts any record args -// that implement the Redactor interface -func (r *Record) Message() string { - if r.message == nil { - // Redact the arguments that implements the Redactor interface - for i, arg := range r.args { - if redactor, ok := arg.(Redactor); ok == true { - r.args[i] = redactor.Redacted() - } - } - msg := fmt.Sprintf(r.fmt, r.args...) - r.message = &msg - } - return *r.message -} - -// Logger is a logging unit. It controls the flow of messages to a given -// (swappable) backend. -type Logger struct { - Module string - backend LeveledBackend - haveBackend bool - - // ExtraCallDepth can be used to add additional call depth when getting the - // calling function. This is normally used when wrapping a logger. - ExtraCalldepth int -} - -// SetBackend changes the backend of the logger. -func (l *Logger) SetBackend(backend LeveledBackend) { - l.backend = backend - l.haveBackend = true -} - -// GetLogger creates and returns a Logger object based on the module name. -// TODO call NewLogger and remove MustGetLogger? -func GetLogger(module string) (*Logger, error) { - return &Logger{Module: module}, nil -} - -// MustGetLogger is like GetLogger but panics if the logger can't be created. -// It simplifies safe initialization of a global logger for eg. a package. -func MustGetLogger(module string) *Logger { - logger, err := GetLogger(module) - if err != nil { - panic("logger: " + module + ": " + err.Error()) - } - return logger -} - -// Reset restores the internal state of the logging library. -func Reset() { - // TODO make a global Init() method to be less magic? or make it such that - // if there's no backends at all configured, we could use some tricks to - // automatically setup backends based if we have a TTY or not. - sequenceNo = 0 - b := SetBackend(NewLogBackend(os.Stderr, "", log.LstdFlags)) - b.SetLevel(DEBUG, "") - SetFormatter(DefaultFormatter) - timeNow = time.Now -} - -// InitForTesting is a convenient method when using logging in a test. Once -// called, the time will be frozen to January 1, 1970 UTC. -func InitForTesting(level Level) *MemoryBackend { - Reset() - - memoryBackend := NewMemoryBackend(10240) - - leveledBackend := AddModuleLevel(memoryBackend) - leveledBackend.SetLevel(level, "") - SetBackend(leveledBackend) - - timeNow = func() time.Time { - return time.Unix(0, 0).UTC() - } - return memoryBackend -} - -// IsEnabledFor returns true if the logger is enabled for the given level. -func (l *Logger) IsEnabledFor(level Level) bool { - return defaultBackend.IsEnabledFor(level, l.Module) -} - -func (l *Logger) log(lvl Level, format string, args ...interface{}) { - if !l.IsEnabledFor(lvl) { - return - } - - // Create the logging record and pass it in to the backend - record := &Record{ - Id: atomic.AddUint64(&sequenceNo, 1), - Time: timeNow(), - Module: l.Module, - Level: lvl, - fmt: format, - args: args, - } - - // TODO use channels to fan out the records to all backends? - // TODO in case of errors, do something (tricky) - - // calldepth=2 brings the stack up to the caller of the level - // methods, Info(), Fatal(), etc. - // ExtraCallDepth allows this to be extended further up the stack in case we - // are wrapping these methods, eg. to expose them package level - if l.haveBackend { - l.backend.Log(lvl, 2+l.ExtraCalldepth, record) - return - } - - defaultBackend.Log(lvl, 2+l.ExtraCalldepth, record) -} - -// Fatal is equivalent to l.Critical(fmt.Sprint()) followed by a call to os.Exit(1). -func (l *Logger) Fatal(args ...interface{}) { - s := fmt.Sprint(args...) - l.log(CRITICAL, "%s", s) - os.Exit(1) -} - -// Fatalf is equivalent to l.Critical followed by a call to os.Exit(1). -func (l *Logger) Fatalf(format string, args ...interface{}) { - l.log(CRITICAL, format, args...) - os.Exit(1) -} - -// Panic is equivalent to l.Critical(fmt.Sprint()) followed by a call to panic(). -func (l *Logger) Panic(args ...interface{}) { - s := fmt.Sprint(args...) - l.log(CRITICAL, "%s", s) - panic(s) -} - -// Panicf is equivalent to l.Critical followed by a call to panic(). -func (l *Logger) Panicf(format string, args ...interface{}) { - s := fmt.Sprintf(format, args...) - l.log(CRITICAL, "%s", s) - panic(s) -} - -// Critical logs a message using CRITICAL as log level. (fmt.Sprint()) -func (l *Logger) Critical(args ...interface{}) { - s := fmt.Sprint(args...) - l.log(CRITICAL, "%s", s) -} - -// Criticalf logs a message using CRITICAL as log level. -func (l *Logger) Criticalf(format string, args ...interface{}) { - l.log(CRITICAL, format, args...) -} - -// Error logs a message using ERROR as log level. (fmt.Sprint()) -func (l *Logger) Error(args ...interface{}) { - s := fmt.Sprint(args...) - l.log(ERROR, "%s", s) -} - -// Errorf logs a message using ERROR as log level. -func (l *Logger) Errorf(format string, args ...interface{}) { - l.log(ERROR, format, args...) -} - -// Warning logs a message using WARNING as log level. -func (l *Logger) Warning(args ...interface{}) { - s := fmt.Sprint(args...) - l.log(WARNING, "%s", s) -} - -// Warningf logs a message using WARNING as log level. -func (l *Logger) Warningf(format string, args ...interface{}) { - l.log(WARNING, format, args...) -} - -// Notice logs a message using NOTICE as log level. -func (l *Logger) Notice(args ...interface{}) { - s := fmt.Sprint(args...) - l.log(NOTICE, "%s", s) -} - -// Noticef logs a message using NOTICE as log level. -func (l *Logger) Noticef(format string, args ...interface{}) { - l.log(NOTICE, format, args...) -} - -// Info logs a message using INFO as log level. -func (l *Logger) Info(args ...interface{}) { - s := fmt.Sprint(args...) - l.log(INFO, "%s", s) -} - -// Infof logs a message using INFO as log level. -func (l *Logger) Infof(format string, args ...interface{}) { - l.log(INFO, format, args...) -} - -// Debug logs a message using DEBUG as log level. -func (l *Logger) Debug(args ...interface{}) { - s := fmt.Sprint(args...) - l.log(DEBUG, "%s", s) -} - -// Debugf logs a message using DEBUG as log level. -func (l *Logger) Debugf(format string, args ...interface{}) { - l.log(DEBUG, format, args...) -} - -func init() { - Reset() -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/logger_test.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/logger_test.go deleted file mode 100644 index 2de58a6a..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/logger_test.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package logging - -import "testing" - -type Password string - -func (p Password) Redacted() interface{} { - return Redact(string(p)) -} - -func TestSequenceNoOverflow(t *testing.T) { - // Forcefully set the next sequence number to the maximum - backend := InitForTesting(DEBUG) - sequenceNo = ^uint64(0) - - log := MustGetLogger("test") - log.Debug("test") - - if MemoryRecordN(backend, 0).Id != 0 { - t.Errorf("Unexpected sequence no: %v", MemoryRecordN(backend, 0).Id) - } -} - -func TestRedact(t *testing.T) { - backend := InitForTesting(DEBUG) - password := Password("123456") - log := MustGetLogger("test") - log.Debugf("foo %s", password) - if "foo ******" != MemoryRecordN(backend, 0).Formatted(0) { - t.Errorf("redacted line: %v", MemoryRecordN(backend, 0)) - } -} - -func TestPrivateBackend(t *testing.T) { - stdBackend := InitForTesting(DEBUG) - log := MustGetLogger("test") - privateBackend := NewMemoryBackend(10240) - lvlBackend := AddModuleLevel(privateBackend) - lvlBackend.SetLevel(DEBUG, "") - log.SetBackend(lvlBackend) - log.Debug("to private backend") - if stdBackend.size > 0 { - t.Errorf("something in stdBackend, size of backend: %d", stdBackend.size) - } - if "to private baÑkend" == MemoryRecordN(privateBackend, 0).Formatted(0) { - t.Errorf("logged to defaultBackend: %s", MemoryRecordN(privateBackend, 0)) - } - -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/memory.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/memory.go deleted file mode 100644 index c59b92dd..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/memory.go +++ /dev/null @@ -1,217 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package logging - -import ( - "sync" - "sync/atomic" - "unsafe" -) - -// TODO pick one of the memory backends and stick with it or share interface. - -// Node is a record node pointing to an optional next node. -type node struct { - next *node - Record *Record -} - -// Next returns the next record node. If there's no node available, it will -// return nil. -func (n *node) Next() *node { - return n.next -} - -// MemoryBackend is a simple memory based logging backend that will not produce -// any output but merly keep records, up to the given size, in memory. -type MemoryBackend struct { - size int32 - maxSize int32 - head, tail unsafe.Pointer -} - -// NewMemoryBackend creates a simple in-memory logging backend. -func NewMemoryBackend(size int) *MemoryBackend { - return &MemoryBackend{maxSize: int32(size)} -} - -// Log implements the Log method required by Backend. -func (b *MemoryBackend) Log(level Level, calldepth int, rec *Record) error { - var size int32 - - n := &node{Record: rec} - np := unsafe.Pointer(n) - - // Add the record to the tail. If there's no records available, tail and - // head will both be nil. When we successfully set the tail and the previous - // value was nil, it's safe to set the head to the current value too. - for { - tailp := b.tail - swapped := atomic.CompareAndSwapPointer( - &b.tail, - tailp, - np, - ) - if swapped == true { - if tailp == nil { - b.head = np - } else { - (*node)(tailp).next = n - } - size = atomic.AddInt32(&b.size, 1) - break - } - } - - // Since one record was added, we might have overflowed the list. Remove - // a record if that is the case. The size will fluctate a bit, but - // eventual consistent. - if b.maxSize > 0 && size > b.maxSize { - for { - headp := b.head - head := (*node)(b.head) - if head.next == nil { - break - } - swapped := atomic.CompareAndSwapPointer( - &b.head, - headp, - unsafe.Pointer(head.next), - ) - if swapped == true { - atomic.AddInt32(&b.size, -1) - break - } - } - } - return nil -} - -// Head returns the oldest record node kept in memory. It can be used to -// iterate over records, one by one, up to the last record. -// -// Note: new records can get added while iterating. Hence the number of records -// iterated over might be larger than the maximum size. -func (b *MemoryBackend) Head() *node { - return (*node)(b.head) -} - -type event int - -const ( - eventFlush event = iota - eventStop -) - -// ChannelMemoryBackend is very similar to the MemoryBackend, except that it -// internally utilizes a channel. -type ChannelMemoryBackend struct { - maxSize int - size int - incoming chan *Record - events chan event - mu sync.Mutex - running bool - flushWg sync.WaitGroup - stopWg sync.WaitGroup - head, tail *node -} - -// NewChannelMemoryBackend creates a simple in-memory logging backend which -// utilizes a go channel for communication. -// -// Start will automatically be called by this function. -func NewChannelMemoryBackend(size int) *ChannelMemoryBackend { - backend := &ChannelMemoryBackend{ - maxSize: size, - incoming: make(chan *Record, 1024), - events: make(chan event), - } - backend.Start() - return backend -} - -// Start launches the internal goroutine which starts processing data from the -// input channel. -func (b *ChannelMemoryBackend) Start() { - b.mu.Lock() - defer b.mu.Unlock() - - // Launch the goroutine unless it's already running. - if b.running != true { - b.running = true - b.stopWg.Add(1) - go b.process() - } -} - -func (b *ChannelMemoryBackend) process() { - defer b.stopWg.Done() - for { - select { - case rec := <-b.incoming: - b.insertRecord(rec) - case e := <-b.events: - switch e { - case eventStop: - return - case eventFlush: - for len(b.incoming) > 0 { - b.insertRecord(<-b.incoming) - } - b.flushWg.Done() - } - } - } -} - -func (b *ChannelMemoryBackend) insertRecord(rec *Record) { - prev := b.tail - b.tail = &node{Record: rec} - if prev == nil { - b.head = b.tail - } else { - prev.next = b.tail - } - - if b.maxSize > 0 && b.size >= b.maxSize { - b.head = b.head.next - } else { - b.size += 1 - } -} - -// Flush waits until all records in the buffered channel have been processed. -func (b *ChannelMemoryBackend) Flush() { - b.flushWg.Add(1) - b.events <- eventFlush - b.flushWg.Wait() -} - -// Stop signals the internal goroutine to exit and waits until it have. -func (b *ChannelMemoryBackend) Stop() { - b.mu.Lock() - if b.running == true { - b.running = false - b.events <- eventStop - } - b.mu.Unlock() - b.stopWg.Wait() -} - -// Log implements the Log method required by Backend. -func (b *ChannelMemoryBackend) Log(level Level, calldepth int, rec *Record) error { - b.incoming <- rec - return nil -} - -// Head returns the oldest record node kept in memory. It can be used to -// iterate over records, one by one, up to the last record. -// -// Note: new records can get added while iterating. Hence the number of records -// iterated over might be larger than the maximum size. -func (b *ChannelMemoryBackend) Head() *node { - return b.head -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/memory_test.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/memory_test.go deleted file mode 100644 index c2fe6c82..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/memory_test.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package logging - -import ( - "strconv" - "testing" -) - -// TODO share more code between these tests -func MemoryRecordN(b *MemoryBackend, n int) *Record { - node := b.Head() - for i := 0; i < n; i++ { - if node == nil { - break - } - node = node.Next() - } - if node == nil { - return nil - } - return node.Record -} - -func ChannelMemoryRecordN(b *ChannelMemoryBackend, n int) *Record { - b.Flush() - node := b.Head() - for i := 0; i < n; i++ { - if node == nil { - break - } - node = node.Next() - } - if node == nil { - return nil - } - return node.Record -} - -func TestMemoryBackend(t *testing.T) { - backend := NewMemoryBackend(8) - SetBackend(backend) - - log := MustGetLogger("test") - - if nil != MemoryRecordN(backend, 0) || 0 != backend.size { - t.Errorf("memory level: %d", backend.size) - } - - // Run 13 times, the resulting vector should be [5..12] - for i := 0; i < 13; i++ { - log.Infof("%d", i) - } - - if 8 != backend.size { - t.Errorf("record length: %d", backend.size) - } - record := MemoryRecordN(backend, 0) - if "5" != record.Formatted(0) { - t.Errorf("unexpected start: %s", record.Formatted(0)) - } - for i := 0; i < 8; i++ { - record = MemoryRecordN(backend, i) - if strconv.Itoa(i+5) != record.Formatted(0) { - t.Errorf("unexpected record: %v", record.Formatted(0)) - } - } - record = MemoryRecordN(backend, 7) - if "12" != record.Formatted(0) { - t.Errorf("unexpected end: %s", record.Formatted(0)) - } - record = MemoryRecordN(backend, 8) - if nil != record { - t.Errorf("unexpected eof: %s", record.Formatted(0)) - } -} - -func TestChannelMemoryBackend(t *testing.T) { - backend := NewChannelMemoryBackend(8) - SetBackend(backend) - - log := MustGetLogger("test") - - if nil != ChannelMemoryRecordN(backend, 0) || 0 != backend.size { - t.Errorf("memory level: %d", backend.size) - } - - // Run 13 times, the resulting vector should be [5..12] - for i := 0; i < 13; i++ { - log.Infof("%d", i) - } - backend.Flush() - - if 8 != backend.size { - t.Errorf("record length: %d", backend.size) - } - record := ChannelMemoryRecordN(backend, 0) - if "5" != record.Formatted(0) { - t.Errorf("unexpected start: %s", record.Formatted(0)) - } - for i := 0; i < 8; i++ { - record = ChannelMemoryRecordN(backend, i) - if strconv.Itoa(i+5) != record.Formatted(0) { - t.Errorf("unexpected record: %v", record.Formatted(0)) - } - } - record = ChannelMemoryRecordN(backend, 7) - if "12" != record.Formatted(0) { - t.Errorf("unexpected end: %s", record.Formatted(0)) - } - record = ChannelMemoryRecordN(backend, 8) - if nil != record { - t.Errorf("unexpected eof: %s", record.Formatted(0)) - } -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/multi.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/multi.go deleted file mode 100644 index 3731653e..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/multi.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package logging - -// TODO remove Level stuff from the multi logger. Do one thing. - -// multiLogger is a log multiplexer which can be used to utilize multiple log -// backends at once. -type multiLogger struct { - backends []LeveledBackend -} - -// MultiLogger creates a logger which contain multiple loggers. -func MultiLogger(backends ...Backend) LeveledBackend { - var leveledBackends []LeveledBackend - for _, backend := range backends { - leveledBackends = append(leveledBackends, AddModuleLevel(backend)) - } - return &multiLogger{leveledBackends} -} - -// Log passes the log record to all backends. -func (b *multiLogger) Log(level Level, calldepth int, rec *Record) (err error) { - for _, backend := range b.backends { - if backend.IsEnabledFor(level, rec.Module) { - // Shallow copy of the record for the formatted cache on Record and get the - // record formatter from the backend. - r2 := *rec - if e := backend.Log(level, calldepth+1, &r2); e != nil { - err = e - } - } - } - return -} - -// GetLevel returns the highest level enabled by all backends. -func (b *multiLogger) GetLevel(module string) Level { - var level Level - for _, backend := range b.backends { - if backendLevel := backend.GetLevel(module); backendLevel > level { - level = backendLevel - } - } - return level -} - -// SetLevel propagates the same level to all backends. -func (b *multiLogger) SetLevel(level Level, module string) { - for _, backend := range b.backends { - backend.SetLevel(level, module) - } -} - -// IsEnabledFor returns true if any of the backends are enabled for it. -func (b *multiLogger) IsEnabledFor(level Level, module string) bool { - for _, backend := range b.backends { - if backend.IsEnabledFor(level, module) { - return true - } - } - return false -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/multi_test.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/multi_test.go deleted file mode 100644 index e1da5e3d..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/multi_test.go +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package logging - -import "testing" - -func TestMultiLogger(t *testing.T) { - log1 := NewMemoryBackend(8) - log2 := NewMemoryBackend(8) - SetBackend(MultiLogger(log1, log2)) - - log := MustGetLogger("test") - log.Debug("log") - - if "log" != MemoryRecordN(log1, 0).Formatted(0) { - t.Errorf("log1: %v", MemoryRecordN(log1, 0).Formatted(0)) - } - if "log" != MemoryRecordN(log2, 0).Formatted(0) { - t.Errorf("log2: %v", MemoryRecordN(log2, 0).Formatted(0)) - } -} - -func TestMultiLoggerLevel(t *testing.T) { - log1 := NewMemoryBackend(8) - log2 := NewMemoryBackend(8) - - leveled1 := AddModuleLevel(log1) - leveled2 := AddModuleLevel(log2) - - multi := MultiLogger(leveled1, leveled2) - multi.SetLevel(ERROR, "test") - SetBackend(multi) - - log := MustGetLogger("test") - log.Notice("log") - - if nil != MemoryRecordN(log1, 0) || nil != MemoryRecordN(log2, 0) { - t.Errorf("unexpected log record") - } - - leveled1.SetLevel(DEBUG, "test") - log.Notice("log") - if "log" != MemoryRecordN(log1, 0).Formatted(0) { - t.Errorf("log1 not received") - } - if nil != MemoryRecordN(log2, 0) { - t.Errorf("log2 received") - } -} diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/package.json b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/package.json deleted file mode 100644 index 8c3367c5..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "go-logging", - "author": "whyrusleeping", - "version": "0.0.0", - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/whyrusleeping/go-logging" - } -} \ No newline at end of file diff --git a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/syslog.go b/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/syslog.go deleted file mode 100644 index 9a5c8f5d..00000000 --- a/vendor/gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging/syslog.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2013, Örjan Persson. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//+build !windows,!plan9 - -package logging - -import "log/syslog" - -// SyslogBackend is a simple logger to syslog backend. It automatically maps -// the internal log levels to appropriate syslog log levels. -type SyslogBackend struct { - Writer *syslog.Writer -} - -// NewSyslogBackend connects to the syslog daemon using UNIX sockets with the -// given prefix. If prefix is not given, the prefix will be derived from the -// launched command. -func NewSyslogBackend(prefix string) (b *SyslogBackend, err error) { - var w *syslog.Writer - w, err = syslog.New(syslog.LOG_CRIT, prefix) - return &SyslogBackend{w}, err -} - -// NewSyslogBackendPriority is the same as NewSyslogBackend, but with custom -// syslog priority, like syslog.LOG_LOCAL3|syslog.LOG_DEBUG etc. -func NewSyslogBackendPriority(prefix string, priority syslog.Priority) (b *SyslogBackend, err error) { - var w *syslog.Writer - w, err = syslog.New(priority, prefix) - return &SyslogBackend{w}, err -} - -func (b *SyslogBackend) Log(level Level, calldepth int, rec *Record) error { - line := rec.Formatted(calldepth + 1) - switch level { - case CRITICAL: - return b.Writer.Crit(line) - case ERROR: - return b.Writer.Err(line) - case WARNING: - return b.Writer.Warning(line) - case NOTICE: - return b.Writer.Notice(line) - case INFO: - return b.Writer.Info(line) - case DEBUG: - return b.Writer.Debug(line) - default: - } - panic("unhandled log level") -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/.gxignore b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/LICENSE b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/LICENSE deleted file mode 100644 index 252e3d63..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2013, John Beisley -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. - -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 HOLDER 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/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/README.md b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/README.md deleted file mode 100644 index a228ccea..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/README.md +++ /dev/null @@ -1,44 +0,0 @@ -goupnp is a UPnP client library for Go - -Installation ------------- - -Run `go get -u github.com/huin/goupnp`. - -Documentation -------------- - -All doc links below are for ![GoDoc](https://godoc.org/github.com/huin/goupnp?status.svg). - -Supported DCPs (you probably want to start with one of these): -* [av1](https://godoc.org/github.com/huin/goupnp/dcps/av1) - Client for UPnP Device Control Protocol MediaServer v1 and MediaRenderer v1. -* [internetgateway1](https://godoc.org/github.com/huin/goupnp/dcps/internetgateway1) - Client for UPnP Device Control Protocol Internet Gateway Device v1. -* [internetgateway2](https://godoc.org/github.com/huin/goupnp/dcps/internetgateway2) - Client for UPnP Device Control Protocol Internet Gateway Device v2. - -Core components: -* [(goupnp)](https://godoc.org/github.com/huin/goupnp) core library - contains datastructures and utilities typically used by the implemented DCPs. -* [httpu](https://godoc.org/github.com/huin/goupnp/httpu) HTTPU implementation, underlies SSDP. -* [ssdp](https://godoc.org/github.com/huin/goupnp/ssdp) SSDP client implementation (simple service discovery protocol) - used to discover UPnP services on a network. -* [soap](https://godoc.org/github.com/huin/goupnp/soap) SOAP client implementation (simple object access protocol) - used to communicate with discovered services. - - -Regenerating dcps generated source code: ----------------------------------------- - -1. Install gotasks: `go get -u github.com/jingweno/gotask` -2. Change to the gotasks directory: `cd gotasks` -3. Run specgen task: `gotask specgen` - -Supporting additional UPnP devices and services: ------------------------------------------------- - -Supporting additional services is, in the trivial case, simply a matter of -adding the service to the `dcpMetadata` whitelist in `gotasks/specgen_task.go`, -regenerating the source code (see above), and committing that source code. - -However, it would be helpful if anyone needing such a service could test the -service against the service they have, and then reporting any trouble -encountered as an [issue on this -project](https://github.com/huin/goupnp/issues/new). If it just works, then -please report at least minimal working functionality as an issue, and -optionally contribute the metadata upstream. diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/cmd/example_httpu_serving/example_httpu_serving.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/cmd/example_httpu_serving/example_httpu_serving.go deleted file mode 100644 index 2adae82a..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/cmd/example_httpu_serving/example_httpu_serving.go +++ /dev/null @@ -1,20 +0,0 @@ -package main - -import ( - "log" - "net/http" - - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/httpu" -) - -func main() { - srv := httpu.Server{ - Addr: "239.255.255.250:1900", - Multicast: true, - Handler: httpu.HandlerFunc(func(r *http.Request) { - log.Printf("Got %s %s message from %v: %v", r.Method, r.URL.Path, r.RemoteAddr, r.Header) - }), - } - err := srv.ListenAndServe() - log.Printf("Serving failed with error: %v", err) -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/cmd/example_internetgateway1/example_internetgateway1.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/cmd/example_internetgateway1/example_internetgateway1.go deleted file mode 100644 index 9128275f..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/cmd/example_internetgateway1/example_internetgateway1.go +++ /dev/null @@ -1,67 +0,0 @@ -package main - -import ( - "fmt" - "log" - - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/internetgateway1" -) - -func main() { - clients, errors, err := internetgateway1.NewWANPPPConnection1Clients() - if err != nil { - log.Fatal(err) - } - - fmt.Printf("Got %d errors finding servers and %d successfully discovered.\n", - len(errors), len(clients)) - for i, e := range errors { - fmt.Printf("Error finding server #%d: %v\n", i+1, e) - } - - for _, c := range clients { - dev := &c.ServiceClient.RootDevice.Device - srv := c.ServiceClient.Service - fmt.Println(dev.FriendlyName, " :: ", srv.String()) - scpd, err := srv.RequestSCDP() - if err != nil { - fmt.Printf(" Error requesting service SCPD: %v\n", err) - } else { - fmt.Println(" Available actions:") - for _, action := range scpd.Actions { - fmt.Printf(" * %s\n", action.Name) - for _, arg := range action.Arguments { - var varDesc string - if stateVar := scpd.GetStateVariable(arg.RelatedStateVariable); stateVar != nil { - varDesc = fmt.Sprintf(" (%s)", stateVar.DataType.Name) - } - fmt.Printf(" * [%s] %s%s\n", arg.Direction, arg.Name, varDesc) - } - } - } - - if scpd == nil || scpd.GetAction("GetExternalIPAddress") != nil { - ip, err := c.GetExternalIPAddress() - fmt.Println("GetExternalIPAddress: ", ip, err) - } - - if scpd == nil || scpd.GetAction("GetStatusInfo") != nil { - status, lastErr, uptime, err := c.GetStatusInfo() - fmt.Println("GetStatusInfo: ", status, lastErr, uptime, err) - } - - if scpd == nil || scpd.GetAction("GetIdleDisconnectTime") != nil { - idleTime, err := c.GetIdleDisconnectTime() - fmt.Println("GetIdleDisconnectTime: ", idleTime, err) - } - - if scpd == nil || scpd.GetAction("AddPortMapping") != nil { - err := c.AddPortMapping("", 5000, "TCP", 5001, "192.168.1.2", true, "Test port mapping", 0) - fmt.Println("AddPortMapping: ", err) - } - if scpd == nil || scpd.GetAction("DeletePortMapping") != nil { - err := c.DeletePortMapping("", 5000, "TCP") - fmt.Println("DeletePortMapping: ", err) - } - } -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/cmd/example_ssdp_registry/example_ssdp_registry.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/cmd/example_ssdp_registry/example_ssdp_registry.go deleted file mode 100644 index 1163ea1c..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/cmd/example_ssdp_registry/example_ssdp_registry.go +++ /dev/null @@ -1,27 +0,0 @@ -package main - -import ( - "log" - - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/ssdp" -) - -func main() { - c := make(chan ssdp.Update) - srv, reg := ssdp.NewServerAndRegistry() - reg.AddListener(c) - go listener(c) - if err := srv.ListenAndServe(); err != nil { - log.Print("ListenAndServe failed: ", err) - } -} - -func listener(c <-chan ssdp.Update) { - for u := range c { - if u.Entry != nil { - log.Printf("Event: %v USN: %s Entry: %#v", u.EventType, u.USN, *u.Entry) - } else { - log.Printf("Event: %v USN: %s Entry: ", u.EventType, u.USN) - } - } -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/av1/av1.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/av1/av1.go deleted file mode 100644 index c111ec8f..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/av1/av1.go +++ /dev/null @@ -1,8452 +0,0 @@ -// Client for UPnP Device Control Protocol MediaServer v1 and MediaRenderer v1. -// -// This DCP is documented in detail at: http://upnp.org/specs/av/av1/ -// -// Typically, use one of the New* functions to create clients for services. -package av1 - -// Generated file - do not edit by hand. See README.md - -import ( - "net/url" - "time" - - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp" - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap" -) - -// Hack to avoid Go complaining if time isn't used. -var _ time.Time - -// Device URNs: -const () - -// Service URNs: -const ( - URN_AVTransport_1 = "urn:schemas-upnp-org:service:AVTransport:1" - URN_AVTransport_2 = "urn:schemas-upnp-org:service:AVTransport:2" - URN_ConnectionManager_1 = "urn:schemas-upnp-org:service:ConnectionManager:1" - URN_ConnectionManager_2 = "urn:schemas-upnp-org:service:ConnectionManager:2" - URN_ContentDirectory_1 = "urn:schemas-upnp-org:service:ContentDirectory:1" - URN_ContentDirectory_2 = "urn:schemas-upnp-org:service:ContentDirectory:2" - URN_ContentDirectory_3 = "urn:schemas-upnp-org:service:ContentDirectory:3" - URN_RenderingControl_1 = "urn:schemas-upnp-org:service:RenderingControl:1" - URN_RenderingControl_2 = "urn:schemas-upnp-org:service:RenderingControl:2" - URN_ScheduledRecording_1 = "urn:schemas-upnp-org:service:ScheduledRecording:1" - URN_ScheduledRecording_2 = "urn:schemas-upnp-org:service:ScheduledRecording:2" -) - -// AVTransport1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:AVTransport:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type AVTransport1 struct { - goupnp.ServiceClient -} - -// NewAVTransport1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewAVTransport1Clients() (clients []*AVTransport1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_AVTransport_1); err != nil { - return - } - clients = newAVTransport1ClientsFromGenericClients(genericClients) - return -} - -// NewAVTransport1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewAVTransport1ClientsByURL(loc *url.URL) ([]*AVTransport1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_AVTransport_1) - if err != nil { - return nil, err - } - return newAVTransport1ClientsFromGenericClients(genericClients), nil -} - -// NewAVTransport1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewAVTransport1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*AVTransport1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_AVTransport_1) - if err != nil { - return nil, err - } - return newAVTransport1ClientsFromGenericClients(genericClients), nil -} - -func newAVTransport1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*AVTransport1 { - clients := make([]*AVTransport1, len(genericClients)) - for i := range genericClients { - clients[i] = &AVTransport1{genericClients[i]} - } - return clients -} - -func (client *AVTransport1) SetAVTransportURI(InstanceID uint32, CurrentURI string, CurrentURIMetaData string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - CurrentURI string - - CurrentURIMetaData string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.CurrentURI, err = soap.MarshalString(CurrentURI); err != nil { - return - } - if request.CurrentURIMetaData, err = soap.MarshalString(CurrentURIMetaData); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "SetAVTransportURI", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport1) SetNextAVTransportURI(InstanceID uint32, NextURI string, NextURIMetaData string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - NextURI string - - NextURIMetaData string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.NextURI, err = soap.MarshalString(NextURI); err != nil { - return - } - if request.NextURIMetaData, err = soap.MarshalString(NextURIMetaData); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "SetNextAVTransportURI", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NrTracks: allowed value range: minimum=0 -func (client *AVTransport1) GetMediaInfo(InstanceID uint32) (NrTracks uint32, MediaDuration string, CurrentURI string, CurrentURIMetaData string, NextURI string, NextURIMetaData string, PlayMedium string, RecordMedium string, WriteStatus string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NrTracks string - - MediaDuration string - - CurrentURI string - - CurrentURIMetaData string - - NextURI string - - NextURIMetaData string - - PlayMedium string - - RecordMedium string - - WriteStatus string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "GetMediaInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NrTracks, err = soap.UnmarshalUi4(response.NrTracks); err != nil { - return - } - if MediaDuration, err = soap.UnmarshalString(response.MediaDuration); err != nil { - return - } - if CurrentURI, err = soap.UnmarshalString(response.CurrentURI); err != nil { - return - } - if CurrentURIMetaData, err = soap.UnmarshalString(response.CurrentURIMetaData); err != nil { - return - } - if NextURI, err = soap.UnmarshalString(response.NextURI); err != nil { - return - } - if NextURIMetaData, err = soap.UnmarshalString(response.NextURIMetaData); err != nil { - return - } - if PlayMedium, err = soap.UnmarshalString(response.PlayMedium); err != nil { - return - } - if RecordMedium, err = soap.UnmarshalString(response.RecordMedium); err != nil { - return - } - if WriteStatus, err = soap.UnmarshalString(response.WriteStatus); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentTransportState: allowed values: STOPPED, PLAYING -// -// * CurrentTransportStatus: allowed values: OK, ERROR_OCCURRED -// -// * CurrentSpeed: allowed values: 1 -func (client *AVTransport1) GetTransportInfo(InstanceID uint32) (CurrentTransportState string, CurrentTransportStatus string, CurrentSpeed string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentTransportState string - - CurrentTransportStatus string - - CurrentSpeed string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "GetTransportInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentTransportState, err = soap.UnmarshalString(response.CurrentTransportState); err != nil { - return - } - if CurrentTransportStatus, err = soap.UnmarshalString(response.CurrentTransportStatus); err != nil { - return - } - if CurrentSpeed, err = soap.UnmarshalString(response.CurrentSpeed); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * Track: allowed value range: minimum=0, step=1 -func (client *AVTransport1) GetPositionInfo(InstanceID uint32) (Track uint32, TrackDuration string, TrackMetaData string, TrackURI string, RelTime string, AbsTime string, RelCount int32, AbsCount int32, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Track string - - TrackDuration string - - TrackMetaData string - - TrackURI string - - RelTime string - - AbsTime string - - RelCount string - - AbsCount string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "GetPositionInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Track, err = soap.UnmarshalUi4(response.Track); err != nil { - return - } - if TrackDuration, err = soap.UnmarshalString(response.TrackDuration); err != nil { - return - } - if TrackMetaData, err = soap.UnmarshalString(response.TrackMetaData); err != nil { - return - } - if TrackURI, err = soap.UnmarshalString(response.TrackURI); err != nil { - return - } - if RelTime, err = soap.UnmarshalString(response.RelTime); err != nil { - return - } - if AbsTime, err = soap.UnmarshalString(response.AbsTime); err != nil { - return - } - if RelCount, err = soap.UnmarshalI4(response.RelCount); err != nil { - return - } - if AbsCount, err = soap.UnmarshalI4(response.AbsCount); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport1) GetDeviceCapabilities(InstanceID uint32) (PlayMedia string, RecMedia string, RecQualityModes string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - PlayMedia string - - RecMedia string - - RecQualityModes string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "GetDeviceCapabilities", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if PlayMedia, err = soap.UnmarshalString(response.PlayMedia); err != nil { - return - } - if RecMedia, err = soap.UnmarshalString(response.RecMedia); err != nil { - return - } - if RecQualityModes, err = soap.UnmarshalString(response.RecQualityModes); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * PlayMode: allowed values: NORMAL -func (client *AVTransport1) GetTransportSettings(InstanceID uint32) (PlayMode string, RecQualityMode string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - PlayMode string - - RecQualityMode string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "GetTransportSettings", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if PlayMode, err = soap.UnmarshalString(response.PlayMode); err != nil { - return - } - if RecQualityMode, err = soap.UnmarshalString(response.RecQualityMode); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport1) Stop(InstanceID uint32) (err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "Stop", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Speed: allowed values: 1 - -func (client *AVTransport1) Play(InstanceID uint32, Speed string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - Speed string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Speed, err = soap.MarshalString(Speed); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "Play", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport1) Pause(InstanceID uint32) (err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "Pause", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport1) Record(InstanceID uint32) (err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "Record", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Unit: allowed values: TRACK_NR - -func (client *AVTransport1) Seek(InstanceID uint32, Unit string, Target string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - Unit string - - Target string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Unit, err = soap.MarshalString(Unit); err != nil { - return - } - if request.Target, err = soap.MarshalString(Target); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "Seek", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport1) Next(InstanceID uint32) (err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "Next", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport1) Previous(InstanceID uint32) (err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "Previous", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewPlayMode: allowed values: NORMAL - -func (client *AVTransport1) SetPlayMode(InstanceID uint32, NewPlayMode string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - NewPlayMode string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.NewPlayMode, err = soap.MarshalString(NewPlayMode); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "SetPlayMode", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport1) SetRecordQualityMode(InstanceID uint32, NewRecordQualityMode string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - NewRecordQualityMode string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.NewRecordQualityMode, err = soap.MarshalString(NewRecordQualityMode); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "SetRecordQualityMode", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport1) GetCurrentTransportActions(InstanceID uint32) (Actions string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Actions string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_1, "GetCurrentTransportActions", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Actions, err = soap.UnmarshalString(response.Actions); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// AVTransport2 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:AVTransport:2". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type AVTransport2 struct { - goupnp.ServiceClient -} - -// NewAVTransport2Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewAVTransport2Clients() (clients []*AVTransport2, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_AVTransport_2); err != nil { - return - } - clients = newAVTransport2ClientsFromGenericClients(genericClients) - return -} - -// NewAVTransport2ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewAVTransport2ClientsByURL(loc *url.URL) ([]*AVTransport2, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_AVTransport_2) - if err != nil { - return nil, err - } - return newAVTransport2ClientsFromGenericClients(genericClients), nil -} - -// NewAVTransport2ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewAVTransport2ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*AVTransport2, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_AVTransport_2) - if err != nil { - return nil, err - } - return newAVTransport2ClientsFromGenericClients(genericClients), nil -} - -func newAVTransport2ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*AVTransport2 { - clients := make([]*AVTransport2, len(genericClients)) - for i := range genericClients { - clients[i] = &AVTransport2{genericClients[i]} - } - return clients -} - -func (client *AVTransport2) SetAVTransportURI(InstanceID uint32, CurrentURI string, CurrentURIMetaData string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - CurrentURI string - - CurrentURIMetaData string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.CurrentURI, err = soap.MarshalString(CurrentURI); err != nil { - return - } - if request.CurrentURIMetaData, err = soap.MarshalString(CurrentURIMetaData); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "SetAVTransportURI", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport2) SetNextAVTransportURI(InstanceID uint32, NextURI string, NextURIMetaData string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - NextURI string - - NextURIMetaData string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.NextURI, err = soap.MarshalString(NextURI); err != nil { - return - } - if request.NextURIMetaData, err = soap.MarshalString(NextURIMetaData); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "SetNextAVTransportURI", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NrTracks: allowed value range: minimum=0 -func (client *AVTransport2) GetMediaInfo(InstanceID uint32) (NrTracks uint32, MediaDuration string, CurrentURI string, CurrentURIMetaData string, NextURI string, NextURIMetaData string, PlayMedium string, RecordMedium string, WriteStatus string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NrTracks string - - MediaDuration string - - CurrentURI string - - CurrentURIMetaData string - - NextURI string - - NextURIMetaData string - - PlayMedium string - - RecordMedium string - - WriteStatus string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "GetMediaInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NrTracks, err = soap.UnmarshalUi4(response.NrTracks); err != nil { - return - } - if MediaDuration, err = soap.UnmarshalString(response.MediaDuration); err != nil { - return - } - if CurrentURI, err = soap.UnmarshalString(response.CurrentURI); err != nil { - return - } - if CurrentURIMetaData, err = soap.UnmarshalString(response.CurrentURIMetaData); err != nil { - return - } - if NextURI, err = soap.UnmarshalString(response.NextURI); err != nil { - return - } - if NextURIMetaData, err = soap.UnmarshalString(response.NextURIMetaData); err != nil { - return - } - if PlayMedium, err = soap.UnmarshalString(response.PlayMedium); err != nil { - return - } - if RecordMedium, err = soap.UnmarshalString(response.RecordMedium); err != nil { - return - } - if WriteStatus, err = soap.UnmarshalString(response.WriteStatus); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentType: allowed values: NO_MEDIA, TRACK_AWARE, TRACK_UNAWARE -// -// * NrTracks: allowed value range: minimum=0 -func (client *AVTransport2) GetMediaInfo_Ext(InstanceID uint32) (CurrentType string, NrTracks uint32, MediaDuration string, CurrentURI string, CurrentURIMetaData string, NextURI string, NextURIMetaData string, PlayMedium string, RecordMedium string, WriteStatus string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentType string - - NrTracks string - - MediaDuration string - - CurrentURI string - - CurrentURIMetaData string - - NextURI string - - NextURIMetaData string - - PlayMedium string - - RecordMedium string - - WriteStatus string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "GetMediaInfo_Ext", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentType, err = soap.UnmarshalString(response.CurrentType); err != nil { - return - } - if NrTracks, err = soap.UnmarshalUi4(response.NrTracks); err != nil { - return - } - if MediaDuration, err = soap.UnmarshalString(response.MediaDuration); err != nil { - return - } - if CurrentURI, err = soap.UnmarshalString(response.CurrentURI); err != nil { - return - } - if CurrentURIMetaData, err = soap.UnmarshalString(response.CurrentURIMetaData); err != nil { - return - } - if NextURI, err = soap.UnmarshalString(response.NextURI); err != nil { - return - } - if NextURIMetaData, err = soap.UnmarshalString(response.NextURIMetaData); err != nil { - return - } - if PlayMedium, err = soap.UnmarshalString(response.PlayMedium); err != nil { - return - } - if RecordMedium, err = soap.UnmarshalString(response.RecordMedium); err != nil { - return - } - if WriteStatus, err = soap.UnmarshalString(response.WriteStatus); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentTransportState: allowed values: STOPPED, PLAYING -// -// * CurrentTransportStatus: allowed values: OK, ERROR_OCCURRED -// -// * CurrentSpeed: allowed values: 1 -func (client *AVTransport2) GetTransportInfo(InstanceID uint32) (CurrentTransportState string, CurrentTransportStatus string, CurrentSpeed string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentTransportState string - - CurrentTransportStatus string - - CurrentSpeed string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "GetTransportInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentTransportState, err = soap.UnmarshalString(response.CurrentTransportState); err != nil { - return - } - if CurrentTransportStatus, err = soap.UnmarshalString(response.CurrentTransportStatus); err != nil { - return - } - if CurrentSpeed, err = soap.UnmarshalString(response.CurrentSpeed); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * Track: allowed value range: minimum=0, step=1 -func (client *AVTransport2) GetPositionInfo(InstanceID uint32) (Track uint32, TrackDuration string, TrackMetaData string, TrackURI string, RelTime string, AbsTime string, RelCount int32, AbsCount int32, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Track string - - TrackDuration string - - TrackMetaData string - - TrackURI string - - RelTime string - - AbsTime string - - RelCount string - - AbsCount string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "GetPositionInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Track, err = soap.UnmarshalUi4(response.Track); err != nil { - return - } - if TrackDuration, err = soap.UnmarshalString(response.TrackDuration); err != nil { - return - } - if TrackMetaData, err = soap.UnmarshalString(response.TrackMetaData); err != nil { - return - } - if TrackURI, err = soap.UnmarshalString(response.TrackURI); err != nil { - return - } - if RelTime, err = soap.UnmarshalString(response.RelTime); err != nil { - return - } - if AbsTime, err = soap.UnmarshalString(response.AbsTime); err != nil { - return - } - if RelCount, err = soap.UnmarshalI4(response.RelCount); err != nil { - return - } - if AbsCount, err = soap.UnmarshalI4(response.AbsCount); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport2) GetDeviceCapabilities(InstanceID uint32) (PlayMedia string, RecMedia string, RecQualityModes string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - PlayMedia string - - RecMedia string - - RecQualityModes string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "GetDeviceCapabilities", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if PlayMedia, err = soap.UnmarshalString(response.PlayMedia); err != nil { - return - } - if RecMedia, err = soap.UnmarshalString(response.RecMedia); err != nil { - return - } - if RecQualityModes, err = soap.UnmarshalString(response.RecQualityModes); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * PlayMode: allowed values: NORMAL -func (client *AVTransport2) GetTransportSettings(InstanceID uint32) (PlayMode string, RecQualityMode string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - PlayMode string - - RecQualityMode string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "GetTransportSettings", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if PlayMode, err = soap.UnmarshalString(response.PlayMode); err != nil { - return - } - if RecQualityMode, err = soap.UnmarshalString(response.RecQualityMode); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport2) Stop(InstanceID uint32) (err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "Stop", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Speed: allowed values: 1 - -func (client *AVTransport2) Play(InstanceID uint32, Speed string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - Speed string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Speed, err = soap.MarshalString(Speed); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "Play", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport2) Pause(InstanceID uint32) (err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "Pause", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport2) Record(InstanceID uint32) (err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "Record", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Unit: allowed values: TRACK_NR - -func (client *AVTransport2) Seek(InstanceID uint32, Unit string, Target string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - Unit string - - Target string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Unit, err = soap.MarshalString(Unit); err != nil { - return - } - if request.Target, err = soap.MarshalString(Target); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "Seek", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport2) Next(InstanceID uint32) (err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "Next", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport2) Previous(InstanceID uint32) (err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "Previous", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewPlayMode: allowed values: NORMAL - -func (client *AVTransport2) SetPlayMode(InstanceID uint32, NewPlayMode string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - NewPlayMode string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.NewPlayMode, err = soap.MarshalString(NewPlayMode); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "SetPlayMode", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport2) SetRecordQualityMode(InstanceID uint32, NewRecordQualityMode string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - NewRecordQualityMode string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.NewRecordQualityMode, err = soap.MarshalString(NewRecordQualityMode); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "SetRecordQualityMode", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport2) GetCurrentTransportActions(InstanceID uint32) (Actions string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Actions string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "GetCurrentTransportActions", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Actions, err = soap.UnmarshalString(response.Actions); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentDRMState: allowed values: OK -func (client *AVTransport2) GetDRMState(InstanceID uint32) (CurrentDRMState string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentDRMState string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "GetDRMState", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentDRMState, err = soap.UnmarshalString(response.CurrentDRMState); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport2) GetStateVariables(InstanceID uint32, StateVariableList string) (StateVariableValuePairs string, err error) { - // Request structure. - request := &struct { - InstanceID string - - StateVariableList string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.StateVariableList, err = soap.MarshalString(StateVariableList); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - StateVariableValuePairs string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "GetStateVariables", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if StateVariableValuePairs, err = soap.UnmarshalString(response.StateVariableValuePairs); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *AVTransport2) SetStateVariables(InstanceID uint32, AVTransportUDN string, ServiceType string, ServiceId string, StateVariableValuePairs string) (StateVariableList string, err error) { - // Request structure. - request := &struct { - InstanceID string - - AVTransportUDN string - - ServiceType string - - ServiceId string - - StateVariableValuePairs string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.AVTransportUDN, err = soap.MarshalString(AVTransportUDN); err != nil { - return - } - if request.ServiceType, err = soap.MarshalString(ServiceType); err != nil { - return - } - if request.ServiceId, err = soap.MarshalString(ServiceId); err != nil { - return - } - if request.StateVariableValuePairs, err = soap.MarshalString(StateVariableValuePairs); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - StateVariableList string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_AVTransport_2, "SetStateVariables", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if StateVariableList, err = soap.UnmarshalString(response.StateVariableList); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// ConnectionManager1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:ConnectionManager:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type ConnectionManager1 struct { - goupnp.ServiceClient -} - -// NewConnectionManager1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewConnectionManager1Clients() (clients []*ConnectionManager1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_ConnectionManager_1); err != nil { - return - } - clients = newConnectionManager1ClientsFromGenericClients(genericClients) - return -} - -// NewConnectionManager1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewConnectionManager1ClientsByURL(loc *url.URL) ([]*ConnectionManager1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_ConnectionManager_1) - if err != nil { - return nil, err - } - return newConnectionManager1ClientsFromGenericClients(genericClients), nil -} - -// NewConnectionManager1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewConnectionManager1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*ConnectionManager1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_ConnectionManager_1) - if err != nil { - return nil, err - } - return newConnectionManager1ClientsFromGenericClients(genericClients), nil -} - -func newConnectionManager1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*ConnectionManager1 { - clients := make([]*ConnectionManager1, len(genericClients)) - for i := range genericClients { - clients[i] = &ConnectionManager1{genericClients[i]} - } - return clients -} - -func (client *ConnectionManager1) GetProtocolInfo() (Source string, Sink string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Source string - - Sink string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ConnectionManager_1, "GetProtocolInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Source, err = soap.UnmarshalString(response.Source); err != nil { - return - } - if Sink, err = soap.UnmarshalString(response.Sink); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Direction: allowed values: Input, Output - -func (client *ConnectionManager1) PrepareForConnection(RemoteProtocolInfo string, PeerConnectionManager string, PeerConnectionID int32, Direction string) (ConnectionID int32, AVTransportID int32, RcsID int32, err error) { - // Request structure. - request := &struct { - RemoteProtocolInfo string - - PeerConnectionManager string - - PeerConnectionID string - - Direction string - }{} - // BEGIN Marshal arguments into request. - - if request.RemoteProtocolInfo, err = soap.MarshalString(RemoteProtocolInfo); err != nil { - return - } - if request.PeerConnectionManager, err = soap.MarshalString(PeerConnectionManager); err != nil { - return - } - if request.PeerConnectionID, err = soap.MarshalI4(PeerConnectionID); err != nil { - return - } - if request.Direction, err = soap.MarshalString(Direction); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - ConnectionID string - - AVTransportID string - - RcsID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ConnectionManager_1, "PrepareForConnection", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if ConnectionID, err = soap.UnmarshalI4(response.ConnectionID); err != nil { - return - } - if AVTransportID, err = soap.UnmarshalI4(response.AVTransportID); err != nil { - return - } - if RcsID, err = soap.UnmarshalI4(response.RcsID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ConnectionManager1) ConnectionComplete(ConnectionID int32) (err error) { - // Request structure. - request := &struct { - ConnectionID string - }{} - // BEGIN Marshal arguments into request. - - if request.ConnectionID, err = soap.MarshalI4(ConnectionID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ConnectionManager_1, "ConnectionComplete", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ConnectionManager1) GetCurrentConnectionIDs() (ConnectionIDs string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - ConnectionIDs string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ConnectionManager_1, "GetCurrentConnectionIDs", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if ConnectionIDs, err = soap.UnmarshalString(response.ConnectionIDs); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * Direction: allowed values: Input, Output -// -// * Status: allowed values: OK, ContentFormatMismatch, InsufficientBandwidth, UnreliableChannel, Unknown -func (client *ConnectionManager1) GetCurrentConnectionInfo(ConnectionID int32) (RcsID int32, AVTransportID int32, ProtocolInfo string, PeerConnectionManager string, PeerConnectionID int32, Direction string, Status string, err error) { - // Request structure. - request := &struct { - ConnectionID string - }{} - // BEGIN Marshal arguments into request. - - if request.ConnectionID, err = soap.MarshalI4(ConnectionID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - RcsID string - - AVTransportID string - - ProtocolInfo string - - PeerConnectionManager string - - PeerConnectionID string - - Direction string - - Status string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ConnectionManager_1, "GetCurrentConnectionInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if RcsID, err = soap.UnmarshalI4(response.RcsID); err != nil { - return - } - if AVTransportID, err = soap.UnmarshalI4(response.AVTransportID); err != nil { - return - } - if ProtocolInfo, err = soap.UnmarshalString(response.ProtocolInfo); err != nil { - return - } - if PeerConnectionManager, err = soap.UnmarshalString(response.PeerConnectionManager); err != nil { - return - } - if PeerConnectionID, err = soap.UnmarshalI4(response.PeerConnectionID); err != nil { - return - } - if Direction, err = soap.UnmarshalString(response.Direction); err != nil { - return - } - if Status, err = soap.UnmarshalString(response.Status); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// ConnectionManager2 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:ConnectionManager:2". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type ConnectionManager2 struct { - goupnp.ServiceClient -} - -// NewConnectionManager2Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewConnectionManager2Clients() (clients []*ConnectionManager2, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_ConnectionManager_2); err != nil { - return - } - clients = newConnectionManager2ClientsFromGenericClients(genericClients) - return -} - -// NewConnectionManager2ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewConnectionManager2ClientsByURL(loc *url.URL) ([]*ConnectionManager2, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_ConnectionManager_2) - if err != nil { - return nil, err - } - return newConnectionManager2ClientsFromGenericClients(genericClients), nil -} - -// NewConnectionManager2ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewConnectionManager2ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*ConnectionManager2, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_ConnectionManager_2) - if err != nil { - return nil, err - } - return newConnectionManager2ClientsFromGenericClients(genericClients), nil -} - -func newConnectionManager2ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*ConnectionManager2 { - clients := make([]*ConnectionManager2, len(genericClients)) - for i := range genericClients { - clients[i] = &ConnectionManager2{genericClients[i]} - } - return clients -} - -func (client *ConnectionManager2) GetProtocolInfo() (Source string, Sink string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Source string - - Sink string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ConnectionManager_2, "GetProtocolInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Source, err = soap.UnmarshalString(response.Source); err != nil { - return - } - if Sink, err = soap.UnmarshalString(response.Sink); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Direction: allowed values: Input, Output - -func (client *ConnectionManager2) PrepareForConnection(RemoteProtocolInfo string, PeerConnectionManager string, PeerConnectionID int32, Direction string) (ConnectionID int32, AVTransportID int32, RcsID int32, err error) { - // Request structure. - request := &struct { - RemoteProtocolInfo string - - PeerConnectionManager string - - PeerConnectionID string - - Direction string - }{} - // BEGIN Marshal arguments into request. - - if request.RemoteProtocolInfo, err = soap.MarshalString(RemoteProtocolInfo); err != nil { - return - } - if request.PeerConnectionManager, err = soap.MarshalString(PeerConnectionManager); err != nil { - return - } - if request.PeerConnectionID, err = soap.MarshalI4(PeerConnectionID); err != nil { - return - } - if request.Direction, err = soap.MarshalString(Direction); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - ConnectionID string - - AVTransportID string - - RcsID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ConnectionManager_2, "PrepareForConnection", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if ConnectionID, err = soap.UnmarshalI4(response.ConnectionID); err != nil { - return - } - if AVTransportID, err = soap.UnmarshalI4(response.AVTransportID); err != nil { - return - } - if RcsID, err = soap.UnmarshalI4(response.RcsID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ConnectionManager2) ConnectionComplete(ConnectionID int32) (err error) { - // Request structure. - request := &struct { - ConnectionID string - }{} - // BEGIN Marshal arguments into request. - - if request.ConnectionID, err = soap.MarshalI4(ConnectionID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ConnectionManager_2, "ConnectionComplete", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ConnectionManager2) GetCurrentConnectionIDs() (ConnectionIDs string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - ConnectionIDs string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ConnectionManager_2, "GetCurrentConnectionIDs", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if ConnectionIDs, err = soap.UnmarshalString(response.ConnectionIDs); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * Direction: allowed values: Input, Output -// -// * Status: allowed values: OK, ContentFormatMismatch, InsufficientBandwidth, UnreliableChannel, Unknown -func (client *ConnectionManager2) GetCurrentConnectionInfo(ConnectionID int32) (RcsID int32, AVTransportID int32, ProtocolInfo string, PeerConnectionManager string, PeerConnectionID int32, Direction string, Status string, err error) { - // Request structure. - request := &struct { - ConnectionID string - }{} - // BEGIN Marshal arguments into request. - - if request.ConnectionID, err = soap.MarshalI4(ConnectionID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - RcsID string - - AVTransportID string - - ProtocolInfo string - - PeerConnectionManager string - - PeerConnectionID string - - Direction string - - Status string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ConnectionManager_2, "GetCurrentConnectionInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if RcsID, err = soap.UnmarshalI4(response.RcsID); err != nil { - return - } - if AVTransportID, err = soap.UnmarshalI4(response.AVTransportID); err != nil { - return - } - if ProtocolInfo, err = soap.UnmarshalString(response.ProtocolInfo); err != nil { - return - } - if PeerConnectionManager, err = soap.UnmarshalString(response.PeerConnectionManager); err != nil { - return - } - if PeerConnectionID, err = soap.UnmarshalI4(response.PeerConnectionID); err != nil { - return - } - if Direction, err = soap.UnmarshalString(response.Direction); err != nil { - return - } - if Status, err = soap.UnmarshalString(response.Status); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// ContentDirectory1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:ContentDirectory:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type ContentDirectory1 struct { - goupnp.ServiceClient -} - -// NewContentDirectory1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewContentDirectory1Clients() (clients []*ContentDirectory1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_ContentDirectory_1); err != nil { - return - } - clients = newContentDirectory1ClientsFromGenericClients(genericClients) - return -} - -// NewContentDirectory1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewContentDirectory1ClientsByURL(loc *url.URL) ([]*ContentDirectory1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_ContentDirectory_1) - if err != nil { - return nil, err - } - return newContentDirectory1ClientsFromGenericClients(genericClients), nil -} - -// NewContentDirectory1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewContentDirectory1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*ContentDirectory1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_ContentDirectory_1) - if err != nil { - return nil, err - } - return newContentDirectory1ClientsFromGenericClients(genericClients), nil -} - -func newContentDirectory1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*ContentDirectory1 { - clients := make([]*ContentDirectory1, len(genericClients)) - for i := range genericClients { - clients[i] = &ContentDirectory1{genericClients[i]} - } - return clients -} - -func (client *ContentDirectory1) GetSearchCapabilities() (SearchCaps string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - SearchCaps string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "GetSearchCapabilities", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if SearchCaps, err = soap.UnmarshalString(response.SearchCaps); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory1) GetSortCapabilities() (SortCaps string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - SortCaps string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "GetSortCapabilities", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if SortCaps, err = soap.UnmarshalString(response.SortCaps); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory1) GetSystemUpdateID() (Id uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Id string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "GetSystemUpdateID", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Id, err = soap.UnmarshalUi4(response.Id); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * BrowseFlag: allowed values: BrowseMetadata, BrowseDirectChildren - -func (client *ContentDirectory1) Browse(ObjectID string, BrowseFlag string, Filter string, StartingIndex uint32, RequestedCount uint32, SortCriteria string) (Result string, NumberReturned uint32, TotalMatches uint32, UpdateID uint32, err error) { - // Request structure. - request := &struct { - ObjectID string - - BrowseFlag string - - Filter string - - StartingIndex string - - RequestedCount string - - SortCriteria string - }{} - // BEGIN Marshal arguments into request. - - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - if request.BrowseFlag, err = soap.MarshalString(BrowseFlag); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - if request.StartingIndex, err = soap.MarshalUi4(StartingIndex); err != nil { - return - } - if request.RequestedCount, err = soap.MarshalUi4(RequestedCount); err != nil { - return - } - if request.SortCriteria, err = soap.MarshalString(SortCriteria); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - NumberReturned string - - TotalMatches string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "Browse", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if NumberReturned, err = soap.UnmarshalUi4(response.NumberReturned); err != nil { - return - } - if TotalMatches, err = soap.UnmarshalUi4(response.TotalMatches); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory1) Search(ContainerID string, SearchCriteria string, Filter string, StartingIndex uint32, RequestedCount uint32, SortCriteria string) (Result string, NumberReturned uint32, TotalMatches uint32, UpdateID uint32, err error) { - // Request structure. - request := &struct { - ContainerID string - - SearchCriteria string - - Filter string - - StartingIndex string - - RequestedCount string - - SortCriteria string - }{} - // BEGIN Marshal arguments into request. - - if request.ContainerID, err = soap.MarshalString(ContainerID); err != nil { - return - } - if request.SearchCriteria, err = soap.MarshalString(SearchCriteria); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - if request.StartingIndex, err = soap.MarshalUi4(StartingIndex); err != nil { - return - } - if request.RequestedCount, err = soap.MarshalUi4(RequestedCount); err != nil { - return - } - if request.SortCriteria, err = soap.MarshalString(SortCriteria); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - NumberReturned string - - TotalMatches string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "Search", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if NumberReturned, err = soap.UnmarshalUi4(response.NumberReturned); err != nil { - return - } - if TotalMatches, err = soap.UnmarshalUi4(response.TotalMatches); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory1) CreateObject(ContainerID string, Elements string) (ObjectID string, Result string, err error) { - // Request structure. - request := &struct { - ContainerID string - - Elements string - }{} - // BEGIN Marshal arguments into request. - - if request.ContainerID, err = soap.MarshalString(ContainerID); err != nil { - return - } - if request.Elements, err = soap.MarshalString(Elements); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - ObjectID string - - Result string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "CreateObject", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if ObjectID, err = soap.UnmarshalString(response.ObjectID); err != nil { - return - } - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory1) DestroyObject(ObjectID string) (err error) { - // Request structure. - request := &struct { - ObjectID string - }{} - // BEGIN Marshal arguments into request. - - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "DestroyObject", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory1) UpdateObject(ObjectID string, CurrentTagValue string, NewTagValue string) (err error) { - // Request structure. - request := &struct { - ObjectID string - - CurrentTagValue string - - NewTagValue string - }{} - // BEGIN Marshal arguments into request. - - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - if request.CurrentTagValue, err = soap.MarshalString(CurrentTagValue); err != nil { - return - } - if request.NewTagValue, err = soap.MarshalString(NewTagValue); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "UpdateObject", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory1) ImportResource(SourceURI *url.URL, DestinationURI *url.URL) (TransferID uint32, err error) { - // Request structure. - request := &struct { - SourceURI string - - DestinationURI string - }{} - // BEGIN Marshal arguments into request. - - if request.SourceURI, err = soap.MarshalURI(SourceURI); err != nil { - return - } - if request.DestinationURI, err = soap.MarshalURI(DestinationURI); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - TransferID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "ImportResource", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if TransferID, err = soap.UnmarshalUi4(response.TransferID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory1) ExportResource(SourceURI *url.URL, DestinationURI *url.URL) (TransferID uint32, err error) { - // Request structure. - request := &struct { - SourceURI string - - DestinationURI string - }{} - // BEGIN Marshal arguments into request. - - if request.SourceURI, err = soap.MarshalURI(SourceURI); err != nil { - return - } - if request.DestinationURI, err = soap.MarshalURI(DestinationURI); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - TransferID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "ExportResource", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if TransferID, err = soap.UnmarshalUi4(response.TransferID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory1) StopTransferResource(TransferID uint32) (err error) { - // Request structure. - request := &struct { - TransferID string - }{} - // BEGIN Marshal arguments into request. - - if request.TransferID, err = soap.MarshalUi4(TransferID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "StopTransferResource", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * TransferStatus: allowed values: COMPLETED, ERROR, IN_PROGRESS, STOPPED -func (client *ContentDirectory1) GetTransferProgress(TransferID uint32) (TransferStatus string, TransferLength string, TransferTotal string, err error) { - // Request structure. - request := &struct { - TransferID string - }{} - // BEGIN Marshal arguments into request. - - if request.TransferID, err = soap.MarshalUi4(TransferID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - TransferStatus string - - TransferLength string - - TransferTotal string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "GetTransferProgress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if TransferStatus, err = soap.UnmarshalString(response.TransferStatus); err != nil { - return - } - if TransferLength, err = soap.UnmarshalString(response.TransferLength); err != nil { - return - } - if TransferTotal, err = soap.UnmarshalString(response.TransferTotal); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory1) DeleteResource(ResourceURI *url.URL) (err error) { - // Request structure. - request := &struct { - ResourceURI string - }{} - // BEGIN Marshal arguments into request. - - if request.ResourceURI, err = soap.MarshalURI(ResourceURI); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "DeleteResource", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory1) CreateReference(ContainerID string, ObjectID string) (NewID string, err error) { - // Request structure. - request := &struct { - ContainerID string - - ObjectID string - }{} - // BEGIN Marshal arguments into request. - - if request.ContainerID, err = soap.MarshalString(ContainerID); err != nil { - return - } - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_1, "CreateReference", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewID, err = soap.UnmarshalString(response.NewID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// ContentDirectory2 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:ContentDirectory:2". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type ContentDirectory2 struct { - goupnp.ServiceClient -} - -// NewContentDirectory2Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewContentDirectory2Clients() (clients []*ContentDirectory2, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_ContentDirectory_2); err != nil { - return - } - clients = newContentDirectory2ClientsFromGenericClients(genericClients) - return -} - -// NewContentDirectory2ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewContentDirectory2ClientsByURL(loc *url.URL) ([]*ContentDirectory2, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_ContentDirectory_2) - if err != nil { - return nil, err - } - return newContentDirectory2ClientsFromGenericClients(genericClients), nil -} - -// NewContentDirectory2ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewContentDirectory2ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*ContentDirectory2, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_ContentDirectory_2) - if err != nil { - return nil, err - } - return newContentDirectory2ClientsFromGenericClients(genericClients), nil -} - -func newContentDirectory2ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*ContentDirectory2 { - clients := make([]*ContentDirectory2, len(genericClients)) - for i := range genericClients { - clients[i] = &ContentDirectory2{genericClients[i]} - } - return clients -} - -func (client *ContentDirectory2) GetSearchCapabilities() (SearchCaps string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - SearchCaps string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "GetSearchCapabilities", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if SearchCaps, err = soap.UnmarshalString(response.SearchCaps); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) GetSortCapabilities() (SortCaps string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - SortCaps string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "GetSortCapabilities", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if SortCaps, err = soap.UnmarshalString(response.SortCaps); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) GetSortExtensionCapabilities() (SortExtensionCaps string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - SortExtensionCaps string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "GetSortExtensionCapabilities", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if SortExtensionCaps, err = soap.UnmarshalString(response.SortExtensionCaps); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) GetFeatureList() (FeatureList string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - FeatureList string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "GetFeatureList", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if FeatureList, err = soap.UnmarshalString(response.FeatureList); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) GetSystemUpdateID() (Id uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Id string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "GetSystemUpdateID", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Id, err = soap.UnmarshalUi4(response.Id); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * BrowseFlag: allowed values: BrowseMetadata, BrowseDirectChildren - -func (client *ContentDirectory2) Browse(ObjectID string, BrowseFlag string, Filter string, StartingIndex uint32, RequestedCount uint32, SortCriteria string) (Result string, NumberReturned uint32, TotalMatches uint32, UpdateID uint32, err error) { - // Request structure. - request := &struct { - ObjectID string - - BrowseFlag string - - Filter string - - StartingIndex string - - RequestedCount string - - SortCriteria string - }{} - // BEGIN Marshal arguments into request. - - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - if request.BrowseFlag, err = soap.MarshalString(BrowseFlag); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - if request.StartingIndex, err = soap.MarshalUi4(StartingIndex); err != nil { - return - } - if request.RequestedCount, err = soap.MarshalUi4(RequestedCount); err != nil { - return - } - if request.SortCriteria, err = soap.MarshalString(SortCriteria); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - NumberReturned string - - TotalMatches string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "Browse", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if NumberReturned, err = soap.UnmarshalUi4(response.NumberReturned); err != nil { - return - } - if TotalMatches, err = soap.UnmarshalUi4(response.TotalMatches); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) Search(ContainerID string, SearchCriteria string, Filter string, StartingIndex uint32, RequestedCount uint32, SortCriteria string) (Result string, NumberReturned uint32, TotalMatches uint32, UpdateID uint32, err error) { - // Request structure. - request := &struct { - ContainerID string - - SearchCriteria string - - Filter string - - StartingIndex string - - RequestedCount string - - SortCriteria string - }{} - // BEGIN Marshal arguments into request. - - if request.ContainerID, err = soap.MarshalString(ContainerID); err != nil { - return - } - if request.SearchCriteria, err = soap.MarshalString(SearchCriteria); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - if request.StartingIndex, err = soap.MarshalUi4(StartingIndex); err != nil { - return - } - if request.RequestedCount, err = soap.MarshalUi4(RequestedCount); err != nil { - return - } - if request.SortCriteria, err = soap.MarshalString(SortCriteria); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - NumberReturned string - - TotalMatches string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "Search", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if NumberReturned, err = soap.UnmarshalUi4(response.NumberReturned); err != nil { - return - } - if TotalMatches, err = soap.UnmarshalUi4(response.TotalMatches); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) CreateObject(ContainerID string, Elements string) (ObjectID string, Result string, err error) { - // Request structure. - request := &struct { - ContainerID string - - Elements string - }{} - // BEGIN Marshal arguments into request. - - if request.ContainerID, err = soap.MarshalString(ContainerID); err != nil { - return - } - if request.Elements, err = soap.MarshalString(Elements); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - ObjectID string - - Result string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "CreateObject", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if ObjectID, err = soap.UnmarshalString(response.ObjectID); err != nil { - return - } - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) DestroyObject(ObjectID string) (err error) { - // Request structure. - request := &struct { - ObjectID string - }{} - // BEGIN Marshal arguments into request. - - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "DestroyObject", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) UpdateObject(ObjectID string, CurrentTagValue string, NewTagValue string) (err error) { - // Request structure. - request := &struct { - ObjectID string - - CurrentTagValue string - - NewTagValue string - }{} - // BEGIN Marshal arguments into request. - - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - if request.CurrentTagValue, err = soap.MarshalString(CurrentTagValue); err != nil { - return - } - if request.NewTagValue, err = soap.MarshalString(NewTagValue); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "UpdateObject", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) MoveObject(ObjectID string, NewParentID string) (NewObjectID string, err error) { - // Request structure. - request := &struct { - ObjectID string - - NewParentID string - }{} - // BEGIN Marshal arguments into request. - - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - if request.NewParentID, err = soap.MarshalString(NewParentID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewObjectID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "MoveObject", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewObjectID, err = soap.UnmarshalString(response.NewObjectID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) ImportResource(SourceURI *url.URL, DestinationURI *url.URL) (TransferID uint32, err error) { - // Request structure. - request := &struct { - SourceURI string - - DestinationURI string - }{} - // BEGIN Marshal arguments into request. - - if request.SourceURI, err = soap.MarshalURI(SourceURI); err != nil { - return - } - if request.DestinationURI, err = soap.MarshalURI(DestinationURI); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - TransferID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "ImportResource", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if TransferID, err = soap.UnmarshalUi4(response.TransferID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) ExportResource(SourceURI *url.URL, DestinationURI *url.URL) (TransferID uint32, err error) { - // Request structure. - request := &struct { - SourceURI string - - DestinationURI string - }{} - // BEGIN Marshal arguments into request. - - if request.SourceURI, err = soap.MarshalURI(SourceURI); err != nil { - return - } - if request.DestinationURI, err = soap.MarshalURI(DestinationURI); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - TransferID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "ExportResource", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if TransferID, err = soap.UnmarshalUi4(response.TransferID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) DeleteResource(ResourceURI *url.URL) (err error) { - // Request structure. - request := &struct { - ResourceURI string - }{} - // BEGIN Marshal arguments into request. - - if request.ResourceURI, err = soap.MarshalURI(ResourceURI); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "DeleteResource", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) StopTransferResource(TransferID uint32) (err error) { - // Request structure. - request := &struct { - TransferID string - }{} - // BEGIN Marshal arguments into request. - - if request.TransferID, err = soap.MarshalUi4(TransferID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "StopTransferResource", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * TransferStatus: allowed values: COMPLETED, ERROR, IN_PROGRESS, STOPPED -func (client *ContentDirectory2) GetTransferProgress(TransferID uint32) (TransferStatus string, TransferLength string, TransferTotal string, err error) { - // Request structure. - request := &struct { - TransferID string - }{} - // BEGIN Marshal arguments into request. - - if request.TransferID, err = soap.MarshalUi4(TransferID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - TransferStatus string - - TransferLength string - - TransferTotal string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "GetTransferProgress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if TransferStatus, err = soap.UnmarshalString(response.TransferStatus); err != nil { - return - } - if TransferLength, err = soap.UnmarshalString(response.TransferLength); err != nil { - return - } - if TransferTotal, err = soap.UnmarshalString(response.TransferTotal); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory2) CreateReference(ContainerID string, ObjectID string) (NewID string, err error) { - // Request structure. - request := &struct { - ContainerID string - - ObjectID string - }{} - // BEGIN Marshal arguments into request. - - if request.ContainerID, err = soap.MarshalString(ContainerID); err != nil { - return - } - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_2, "CreateReference", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewID, err = soap.UnmarshalString(response.NewID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// ContentDirectory3 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:ContentDirectory:3". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type ContentDirectory3 struct { - goupnp.ServiceClient -} - -// NewContentDirectory3Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewContentDirectory3Clients() (clients []*ContentDirectory3, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_ContentDirectory_3); err != nil { - return - } - clients = newContentDirectory3ClientsFromGenericClients(genericClients) - return -} - -// NewContentDirectory3ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewContentDirectory3ClientsByURL(loc *url.URL) ([]*ContentDirectory3, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_ContentDirectory_3) - if err != nil { - return nil, err - } - return newContentDirectory3ClientsFromGenericClients(genericClients), nil -} - -// NewContentDirectory3ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewContentDirectory3ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*ContentDirectory3, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_ContentDirectory_3) - if err != nil { - return nil, err - } - return newContentDirectory3ClientsFromGenericClients(genericClients), nil -} - -func newContentDirectory3ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*ContentDirectory3 { - clients := make([]*ContentDirectory3, len(genericClients)) - for i := range genericClients { - clients[i] = &ContentDirectory3{genericClients[i]} - } - return clients -} - -func (client *ContentDirectory3) GetSearchCapabilities() (SearchCaps string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - SearchCaps string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "GetSearchCapabilities", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if SearchCaps, err = soap.UnmarshalString(response.SearchCaps); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) GetSortCapabilities() (SortCaps string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - SortCaps string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "GetSortCapabilities", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if SortCaps, err = soap.UnmarshalString(response.SortCaps); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) GetSortExtensionCapabilities() (SortExtensionCaps string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - SortExtensionCaps string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "GetSortExtensionCapabilities", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if SortExtensionCaps, err = soap.UnmarshalString(response.SortExtensionCaps); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) GetFeatureList() (FeatureList string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - FeatureList string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "GetFeatureList", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if FeatureList, err = soap.UnmarshalString(response.FeatureList); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) GetSystemUpdateID() (Id uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Id string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "GetSystemUpdateID", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Id, err = soap.UnmarshalUi4(response.Id); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) GetServiceResetToken() (ResetToken string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - ResetToken string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "GetServiceResetToken", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if ResetToken, err = soap.UnmarshalString(response.ResetToken); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * BrowseFlag: allowed values: BrowseMetadata, BrowseDirectChildren - -func (client *ContentDirectory3) Browse(ObjectID string, BrowseFlag string, Filter string, StartingIndex uint32, RequestedCount uint32, SortCriteria string) (Result string, NumberReturned uint32, TotalMatches uint32, UpdateID uint32, err error) { - // Request structure. - request := &struct { - ObjectID string - - BrowseFlag string - - Filter string - - StartingIndex string - - RequestedCount string - - SortCriteria string - }{} - // BEGIN Marshal arguments into request. - - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - if request.BrowseFlag, err = soap.MarshalString(BrowseFlag); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - if request.StartingIndex, err = soap.MarshalUi4(StartingIndex); err != nil { - return - } - if request.RequestedCount, err = soap.MarshalUi4(RequestedCount); err != nil { - return - } - if request.SortCriteria, err = soap.MarshalString(SortCriteria); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - NumberReturned string - - TotalMatches string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "Browse", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if NumberReturned, err = soap.UnmarshalUi4(response.NumberReturned); err != nil { - return - } - if TotalMatches, err = soap.UnmarshalUi4(response.TotalMatches); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) Search(ContainerID string, SearchCriteria string, Filter string, StartingIndex uint32, RequestedCount uint32, SortCriteria string) (Result string, NumberReturned uint32, TotalMatches uint32, UpdateID uint32, err error) { - // Request structure. - request := &struct { - ContainerID string - - SearchCriteria string - - Filter string - - StartingIndex string - - RequestedCount string - - SortCriteria string - }{} - // BEGIN Marshal arguments into request. - - if request.ContainerID, err = soap.MarshalString(ContainerID); err != nil { - return - } - if request.SearchCriteria, err = soap.MarshalString(SearchCriteria); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - if request.StartingIndex, err = soap.MarshalUi4(StartingIndex); err != nil { - return - } - if request.RequestedCount, err = soap.MarshalUi4(RequestedCount); err != nil { - return - } - if request.SortCriteria, err = soap.MarshalString(SortCriteria); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - NumberReturned string - - TotalMatches string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "Search", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if NumberReturned, err = soap.UnmarshalUi4(response.NumberReturned); err != nil { - return - } - if TotalMatches, err = soap.UnmarshalUi4(response.TotalMatches); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) CreateObject(ContainerID string, Elements string) (ObjectID string, Result string, err error) { - // Request structure. - request := &struct { - ContainerID string - - Elements string - }{} - // BEGIN Marshal arguments into request. - - if request.ContainerID, err = soap.MarshalString(ContainerID); err != nil { - return - } - if request.Elements, err = soap.MarshalString(Elements); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - ObjectID string - - Result string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "CreateObject", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if ObjectID, err = soap.UnmarshalString(response.ObjectID); err != nil { - return - } - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) DestroyObject(ObjectID string) (err error) { - // Request structure. - request := &struct { - ObjectID string - }{} - // BEGIN Marshal arguments into request. - - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "DestroyObject", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) UpdateObject(ObjectID string, CurrentTagValue string, NewTagValue string) (err error) { - // Request structure. - request := &struct { - ObjectID string - - CurrentTagValue string - - NewTagValue string - }{} - // BEGIN Marshal arguments into request. - - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - if request.CurrentTagValue, err = soap.MarshalString(CurrentTagValue); err != nil { - return - } - if request.NewTagValue, err = soap.MarshalString(NewTagValue); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "UpdateObject", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) MoveObject(ObjectID string, NewParentID string) (NewObjectID string, err error) { - // Request structure. - request := &struct { - ObjectID string - - NewParentID string - }{} - // BEGIN Marshal arguments into request. - - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - if request.NewParentID, err = soap.MarshalString(NewParentID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewObjectID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "MoveObject", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewObjectID, err = soap.UnmarshalString(response.NewObjectID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) ImportResource(SourceURI *url.URL, DestinationURI *url.URL) (TransferID uint32, err error) { - // Request structure. - request := &struct { - SourceURI string - - DestinationURI string - }{} - // BEGIN Marshal arguments into request. - - if request.SourceURI, err = soap.MarshalURI(SourceURI); err != nil { - return - } - if request.DestinationURI, err = soap.MarshalURI(DestinationURI); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - TransferID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "ImportResource", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if TransferID, err = soap.UnmarshalUi4(response.TransferID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) ExportResource(SourceURI *url.URL, DestinationURI *url.URL) (TransferID uint32, err error) { - // Request structure. - request := &struct { - SourceURI string - - DestinationURI string - }{} - // BEGIN Marshal arguments into request. - - if request.SourceURI, err = soap.MarshalURI(SourceURI); err != nil { - return - } - if request.DestinationURI, err = soap.MarshalURI(DestinationURI); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - TransferID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "ExportResource", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if TransferID, err = soap.UnmarshalUi4(response.TransferID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) DeleteResource(ResourceURI *url.URL) (err error) { - // Request structure. - request := &struct { - ResourceURI string - }{} - // BEGIN Marshal arguments into request. - - if request.ResourceURI, err = soap.MarshalURI(ResourceURI); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "DeleteResource", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) StopTransferResource(TransferID uint32) (err error) { - // Request structure. - request := &struct { - TransferID string - }{} - // BEGIN Marshal arguments into request. - - if request.TransferID, err = soap.MarshalUi4(TransferID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "StopTransferResource", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * TransferStatus: allowed values: COMPLETED, ERROR, IN_PROGRESS, STOPPED -func (client *ContentDirectory3) GetTransferProgress(TransferID uint32) (TransferStatus string, TransferLength string, TransferTotal string, err error) { - // Request structure. - request := &struct { - TransferID string - }{} - // BEGIN Marshal arguments into request. - - if request.TransferID, err = soap.MarshalUi4(TransferID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - TransferStatus string - - TransferLength string - - TransferTotal string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "GetTransferProgress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if TransferStatus, err = soap.UnmarshalString(response.TransferStatus); err != nil { - return - } - if TransferLength, err = soap.UnmarshalString(response.TransferLength); err != nil { - return - } - if TransferTotal, err = soap.UnmarshalString(response.TransferTotal); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) CreateReference(ContainerID string, ObjectID string) (NewID string, err error) { - // Request structure. - request := &struct { - ContainerID string - - ObjectID string - }{} - // BEGIN Marshal arguments into request. - - if request.ContainerID, err = soap.MarshalString(ContainerID); err != nil { - return - } - if request.ObjectID, err = soap.MarshalString(ObjectID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "CreateReference", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewID, err = soap.UnmarshalString(response.NewID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) FreeFormQuery(ContainerID string, CDSView uint32, QueryRequest string) (QueryResult string, UpdateID uint32, err error) { - // Request structure. - request := &struct { - ContainerID string - - CDSView string - - QueryRequest string - }{} - // BEGIN Marshal arguments into request. - - if request.ContainerID, err = soap.MarshalString(ContainerID); err != nil { - return - } - if request.CDSView, err = soap.MarshalUi4(CDSView); err != nil { - return - } - if request.QueryRequest, err = soap.MarshalString(QueryRequest); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - QueryResult string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "FreeFormQuery", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if QueryResult, err = soap.UnmarshalString(response.QueryResult); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ContentDirectory3) GetFreeFormQueryCapabilities() (FFQCapabilities string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - FFQCapabilities string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ContentDirectory_3, "GetFreeFormQueryCapabilities", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if FFQCapabilities, err = soap.UnmarshalString(response.FFQCapabilities); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// RenderingControl1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:RenderingControl:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type RenderingControl1 struct { - goupnp.ServiceClient -} - -// NewRenderingControl1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewRenderingControl1Clients() (clients []*RenderingControl1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_RenderingControl_1); err != nil { - return - } - clients = newRenderingControl1ClientsFromGenericClients(genericClients) - return -} - -// NewRenderingControl1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewRenderingControl1ClientsByURL(loc *url.URL) ([]*RenderingControl1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_RenderingControl_1) - if err != nil { - return nil, err - } - return newRenderingControl1ClientsFromGenericClients(genericClients), nil -} - -// NewRenderingControl1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewRenderingControl1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*RenderingControl1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_RenderingControl_1) - if err != nil { - return nil, err - } - return newRenderingControl1ClientsFromGenericClients(genericClients), nil -} - -func newRenderingControl1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*RenderingControl1 { - clients := make([]*RenderingControl1, len(genericClients)) - for i := range genericClients { - clients[i] = &RenderingControl1{genericClients[i]} - } - return clients -} - -func (client *RenderingControl1) ListPresets(InstanceID uint32) (CurrentPresetNameList string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentPresetNameList string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "ListPresets", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentPresetNameList, err = soap.UnmarshalString(response.CurrentPresetNameList); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * PresetName: allowed values: FactoryDefaults - -func (client *RenderingControl1) SelectPreset(InstanceID uint32, PresetName string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - PresetName string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.PresetName, err = soap.MarshalString(PresetName); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SelectPreset", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentBrightness: allowed value range: minimum=0, step=1 -func (client *RenderingControl1) GetBrightness(InstanceID uint32) (CurrentBrightness uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentBrightness string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetBrightness", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentBrightness, err = soap.UnmarshalUi2(response.CurrentBrightness); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredBrightness: allowed value range: minimum=0, step=1 - -func (client *RenderingControl1) SetBrightness(InstanceID uint32, DesiredBrightness uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredBrightness string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredBrightness, err = soap.MarshalUi2(DesiredBrightness); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetBrightness", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentContrast: allowed value range: minimum=0, step=1 -func (client *RenderingControl1) GetContrast(InstanceID uint32) (CurrentContrast uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentContrast string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetContrast", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentContrast, err = soap.UnmarshalUi2(response.CurrentContrast); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredContrast: allowed value range: minimum=0, step=1 - -func (client *RenderingControl1) SetContrast(InstanceID uint32, DesiredContrast uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredContrast string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredContrast, err = soap.MarshalUi2(DesiredContrast); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetContrast", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentSharpness: allowed value range: minimum=0, step=1 -func (client *RenderingControl1) GetSharpness(InstanceID uint32) (CurrentSharpness uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentSharpness string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetSharpness", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentSharpness, err = soap.UnmarshalUi2(response.CurrentSharpness); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredSharpness: allowed value range: minimum=0, step=1 - -func (client *RenderingControl1) SetSharpness(InstanceID uint32, DesiredSharpness uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredSharpness string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredSharpness, err = soap.MarshalUi2(DesiredSharpness); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetSharpness", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *RenderingControl1) GetRedVideoGain(InstanceID uint32) (CurrentRedVideoGain uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentRedVideoGain string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetRedVideoGain", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentRedVideoGain, err = soap.UnmarshalUi2(response.CurrentRedVideoGain); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *RenderingControl1) SetRedVideoGain(InstanceID uint32, DesiredRedVideoGain uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredRedVideoGain string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredRedVideoGain, err = soap.MarshalUi2(DesiredRedVideoGain); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetRedVideoGain", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentGreenVideoGain: allowed value range: minimum=0, step=1 -func (client *RenderingControl1) GetGreenVideoGain(InstanceID uint32) (CurrentGreenVideoGain uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentGreenVideoGain string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetGreenVideoGain", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentGreenVideoGain, err = soap.UnmarshalUi2(response.CurrentGreenVideoGain); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredGreenVideoGain: allowed value range: minimum=0, step=1 - -func (client *RenderingControl1) SetGreenVideoGain(InstanceID uint32, DesiredGreenVideoGain uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredGreenVideoGain string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredGreenVideoGain, err = soap.MarshalUi2(DesiredGreenVideoGain); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetGreenVideoGain", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentBlueVideoGain: allowed value range: minimum=0, step=1 -func (client *RenderingControl1) GetBlueVideoGain(InstanceID uint32) (CurrentBlueVideoGain uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentBlueVideoGain string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetBlueVideoGain", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentBlueVideoGain, err = soap.UnmarshalUi2(response.CurrentBlueVideoGain); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredBlueVideoGain: allowed value range: minimum=0, step=1 - -func (client *RenderingControl1) SetBlueVideoGain(InstanceID uint32, DesiredBlueVideoGain uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredBlueVideoGain string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredBlueVideoGain, err = soap.MarshalUi2(DesiredBlueVideoGain); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetBlueVideoGain", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentRedVideoBlackLevel: allowed value range: minimum=0, step=1 -func (client *RenderingControl1) GetRedVideoBlackLevel(InstanceID uint32) (CurrentRedVideoBlackLevel uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentRedVideoBlackLevel string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetRedVideoBlackLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentRedVideoBlackLevel, err = soap.UnmarshalUi2(response.CurrentRedVideoBlackLevel); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredRedVideoBlackLevel: allowed value range: minimum=0, step=1 - -func (client *RenderingControl1) SetRedVideoBlackLevel(InstanceID uint32, DesiredRedVideoBlackLevel uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredRedVideoBlackLevel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredRedVideoBlackLevel, err = soap.MarshalUi2(DesiredRedVideoBlackLevel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetRedVideoBlackLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentGreenVideoBlackLevel: allowed value range: minimum=0, step=1 -func (client *RenderingControl1) GetGreenVideoBlackLevel(InstanceID uint32) (CurrentGreenVideoBlackLevel uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentGreenVideoBlackLevel string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetGreenVideoBlackLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentGreenVideoBlackLevel, err = soap.UnmarshalUi2(response.CurrentGreenVideoBlackLevel); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredGreenVideoBlackLevel: allowed value range: minimum=0, step=1 - -func (client *RenderingControl1) SetGreenVideoBlackLevel(InstanceID uint32, DesiredGreenVideoBlackLevel uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredGreenVideoBlackLevel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredGreenVideoBlackLevel, err = soap.MarshalUi2(DesiredGreenVideoBlackLevel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetGreenVideoBlackLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentBlueVideoBlackLevel: allowed value range: minimum=0, step=1 -func (client *RenderingControl1) GetBlueVideoBlackLevel(InstanceID uint32) (CurrentBlueVideoBlackLevel uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentBlueVideoBlackLevel string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetBlueVideoBlackLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentBlueVideoBlackLevel, err = soap.UnmarshalUi2(response.CurrentBlueVideoBlackLevel); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredBlueVideoBlackLevel: allowed value range: minimum=0, step=1 - -func (client *RenderingControl1) SetBlueVideoBlackLevel(InstanceID uint32, DesiredBlueVideoBlackLevel uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredBlueVideoBlackLevel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredBlueVideoBlackLevel, err = soap.MarshalUi2(DesiredBlueVideoBlackLevel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetBlueVideoBlackLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentColorTemperature: allowed value range: minimum=0, step=1 -func (client *RenderingControl1) GetColorTemperature(InstanceID uint32) (CurrentColorTemperature uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentColorTemperature string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetColorTemperature", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentColorTemperature, err = soap.UnmarshalUi2(response.CurrentColorTemperature); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredColorTemperature: allowed value range: minimum=0, step=1 - -func (client *RenderingControl1) SetColorTemperature(InstanceID uint32, DesiredColorTemperature uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredColorTemperature string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredColorTemperature, err = soap.MarshalUi2(DesiredColorTemperature); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetColorTemperature", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentHorizontalKeystone: allowed value range: step=1 -func (client *RenderingControl1) GetHorizontalKeystone(InstanceID uint32) (CurrentHorizontalKeystone int16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentHorizontalKeystone string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetHorizontalKeystone", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentHorizontalKeystone, err = soap.UnmarshalI2(response.CurrentHorizontalKeystone); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredHorizontalKeystone: allowed value range: step=1 - -func (client *RenderingControl1) SetHorizontalKeystone(InstanceID uint32, DesiredHorizontalKeystone int16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredHorizontalKeystone string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredHorizontalKeystone, err = soap.MarshalI2(DesiredHorizontalKeystone); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetHorizontalKeystone", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentVerticalKeystone: allowed value range: step=1 -func (client *RenderingControl1) GetVerticalKeystone(InstanceID uint32) (CurrentVerticalKeystone int16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentVerticalKeystone string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetVerticalKeystone", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentVerticalKeystone, err = soap.UnmarshalI2(response.CurrentVerticalKeystone); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredVerticalKeystone: allowed value range: step=1 - -func (client *RenderingControl1) SetVerticalKeystone(InstanceID uint32, DesiredVerticalKeystone int16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredVerticalKeystone string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredVerticalKeystone, err = soap.MarshalI2(DesiredVerticalKeystone); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetVerticalKeystone", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl1) GetMute(InstanceID uint32, Channel string) (CurrentMute bool, err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentMute string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetMute", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentMute, err = soap.UnmarshalBoolean(response.CurrentMute); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl1) SetMute(InstanceID uint32, Channel string, DesiredMute bool) (err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - - DesiredMute string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - if request.DesiredMute, err = soap.MarshalBoolean(DesiredMute); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetMute", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -// -// Return values: -// -// * CurrentVolume: allowed value range: minimum=0, step=1 -func (client *RenderingControl1) GetVolume(InstanceID uint32, Channel string) (CurrentVolume uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentVolume string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetVolume", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentVolume, err = soap.UnmarshalUi2(response.CurrentVolume); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master -// -// * DesiredVolume: allowed value range: minimum=0, step=1 - -func (client *RenderingControl1) SetVolume(InstanceID uint32, Channel string, DesiredVolume uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - - DesiredVolume string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - if request.DesiredVolume, err = soap.MarshalUi2(DesiredVolume); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetVolume", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl1) GetVolumeDB(InstanceID uint32, Channel string) (CurrentVolume int16, err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentVolume string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetVolumeDB", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentVolume, err = soap.UnmarshalI2(response.CurrentVolume); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl1) SetVolumeDB(InstanceID uint32, Channel string, DesiredVolume int16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - - DesiredVolume string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - if request.DesiredVolume, err = soap.MarshalI2(DesiredVolume); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetVolumeDB", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl1) GetVolumeDBRange(InstanceID uint32, Channel string) (MinValue int16, MaxValue int16, err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - MinValue string - - MaxValue string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetVolumeDBRange", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if MinValue, err = soap.UnmarshalI2(response.MinValue); err != nil { - return - } - if MaxValue, err = soap.UnmarshalI2(response.MaxValue); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl1) GetLoudness(InstanceID uint32, Channel string) (CurrentLoudness bool, err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentLoudness string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "GetLoudness", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentLoudness, err = soap.UnmarshalBoolean(response.CurrentLoudness); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl1) SetLoudness(InstanceID uint32, Channel string, DesiredLoudness bool) (err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - - DesiredLoudness string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - if request.DesiredLoudness, err = soap.MarshalBoolean(DesiredLoudness); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_1, "SetLoudness", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// RenderingControl2 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:RenderingControl:2". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type RenderingControl2 struct { - goupnp.ServiceClient -} - -// NewRenderingControl2Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewRenderingControl2Clients() (clients []*RenderingControl2, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_RenderingControl_2); err != nil { - return - } - clients = newRenderingControl2ClientsFromGenericClients(genericClients) - return -} - -// NewRenderingControl2ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewRenderingControl2ClientsByURL(loc *url.URL) ([]*RenderingControl2, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_RenderingControl_2) - if err != nil { - return nil, err - } - return newRenderingControl2ClientsFromGenericClients(genericClients), nil -} - -// NewRenderingControl2ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewRenderingControl2ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*RenderingControl2, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_RenderingControl_2) - if err != nil { - return nil, err - } - return newRenderingControl2ClientsFromGenericClients(genericClients), nil -} - -func newRenderingControl2ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*RenderingControl2 { - clients := make([]*RenderingControl2, len(genericClients)) - for i := range genericClients { - clients[i] = &RenderingControl2{genericClients[i]} - } - return clients -} - -func (client *RenderingControl2) ListPresets(InstanceID uint32) (CurrentPresetNameList string, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentPresetNameList string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "ListPresets", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentPresetNameList, err = soap.UnmarshalString(response.CurrentPresetNameList); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * PresetName: allowed values: FactoryDefaults - -func (client *RenderingControl2) SelectPreset(InstanceID uint32, PresetName string) (err error) { - // Request structure. - request := &struct { - InstanceID string - - PresetName string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.PresetName, err = soap.MarshalString(PresetName); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SelectPreset", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentBrightness: allowed value range: minimum=0, step=1 -func (client *RenderingControl2) GetBrightness(InstanceID uint32) (CurrentBrightness uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentBrightness string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetBrightness", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentBrightness, err = soap.UnmarshalUi2(response.CurrentBrightness); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredBrightness: allowed value range: minimum=0, step=1 - -func (client *RenderingControl2) SetBrightness(InstanceID uint32, DesiredBrightness uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredBrightness string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredBrightness, err = soap.MarshalUi2(DesiredBrightness); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetBrightness", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentContrast: allowed value range: minimum=0, step=1 -func (client *RenderingControl2) GetContrast(InstanceID uint32) (CurrentContrast uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentContrast string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetContrast", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentContrast, err = soap.UnmarshalUi2(response.CurrentContrast); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredContrast: allowed value range: minimum=0, step=1 - -func (client *RenderingControl2) SetContrast(InstanceID uint32, DesiredContrast uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredContrast string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredContrast, err = soap.MarshalUi2(DesiredContrast); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetContrast", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentSharpness: allowed value range: minimum=0, step=1 -func (client *RenderingControl2) GetSharpness(InstanceID uint32) (CurrentSharpness uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentSharpness string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetSharpness", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentSharpness, err = soap.UnmarshalUi2(response.CurrentSharpness); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredSharpness: allowed value range: minimum=0, step=1 - -func (client *RenderingControl2) SetSharpness(InstanceID uint32, DesiredSharpness uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredSharpness string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredSharpness, err = soap.MarshalUi2(DesiredSharpness); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetSharpness", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentRedVideoGain: allowed value range: minimum=0, step=1 -func (client *RenderingControl2) GetRedVideoGain(InstanceID uint32) (CurrentRedVideoGain uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentRedVideoGain string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetRedVideoGain", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentRedVideoGain, err = soap.UnmarshalUi2(response.CurrentRedVideoGain); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredRedVideoGain: allowed value range: minimum=0, step=1 - -func (client *RenderingControl2) SetRedVideoGain(InstanceID uint32, DesiredRedVideoGain uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredRedVideoGain string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredRedVideoGain, err = soap.MarshalUi2(DesiredRedVideoGain); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetRedVideoGain", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentGreenVideoGain: allowed value range: minimum=0, step=1 -func (client *RenderingControl2) GetGreenVideoGain(InstanceID uint32) (CurrentGreenVideoGain uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentGreenVideoGain string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetGreenVideoGain", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentGreenVideoGain, err = soap.UnmarshalUi2(response.CurrentGreenVideoGain); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredGreenVideoGain: allowed value range: minimum=0, step=1 - -func (client *RenderingControl2) SetGreenVideoGain(InstanceID uint32, DesiredGreenVideoGain uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredGreenVideoGain string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredGreenVideoGain, err = soap.MarshalUi2(DesiredGreenVideoGain); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetGreenVideoGain", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentBlueVideoGain: allowed value range: minimum=0, step=1 -func (client *RenderingControl2) GetBlueVideoGain(InstanceID uint32) (CurrentBlueVideoGain uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentBlueVideoGain string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetBlueVideoGain", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentBlueVideoGain, err = soap.UnmarshalUi2(response.CurrentBlueVideoGain); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredBlueVideoGain: allowed value range: minimum=0, step=1 - -func (client *RenderingControl2) SetBlueVideoGain(InstanceID uint32, DesiredBlueVideoGain uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredBlueVideoGain string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredBlueVideoGain, err = soap.MarshalUi2(DesiredBlueVideoGain); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetBlueVideoGain", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentRedVideoBlackLevel: allowed value range: minimum=0, step=1 -func (client *RenderingControl2) GetRedVideoBlackLevel(InstanceID uint32) (CurrentRedVideoBlackLevel uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentRedVideoBlackLevel string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetRedVideoBlackLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentRedVideoBlackLevel, err = soap.UnmarshalUi2(response.CurrentRedVideoBlackLevel); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredRedVideoBlackLevel: allowed value range: minimum=0, step=1 - -func (client *RenderingControl2) SetRedVideoBlackLevel(InstanceID uint32, DesiredRedVideoBlackLevel uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredRedVideoBlackLevel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredRedVideoBlackLevel, err = soap.MarshalUi2(DesiredRedVideoBlackLevel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetRedVideoBlackLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentGreenVideoBlackLevel: allowed value range: minimum=0, step=1 -func (client *RenderingControl2) GetGreenVideoBlackLevel(InstanceID uint32) (CurrentGreenVideoBlackLevel uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentGreenVideoBlackLevel string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetGreenVideoBlackLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentGreenVideoBlackLevel, err = soap.UnmarshalUi2(response.CurrentGreenVideoBlackLevel); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredGreenVideoBlackLevel: allowed value range: minimum=0, step=1 - -func (client *RenderingControl2) SetGreenVideoBlackLevel(InstanceID uint32, DesiredGreenVideoBlackLevel uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredGreenVideoBlackLevel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredGreenVideoBlackLevel, err = soap.MarshalUi2(DesiredGreenVideoBlackLevel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetGreenVideoBlackLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentBlueVideoBlackLevel: allowed value range: minimum=0, step=1 -func (client *RenderingControl2) GetBlueVideoBlackLevel(InstanceID uint32) (CurrentBlueVideoBlackLevel uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentBlueVideoBlackLevel string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetBlueVideoBlackLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentBlueVideoBlackLevel, err = soap.UnmarshalUi2(response.CurrentBlueVideoBlackLevel); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredBlueVideoBlackLevel: allowed value range: minimum=0, step=1 - -func (client *RenderingControl2) SetBlueVideoBlackLevel(InstanceID uint32, DesiredBlueVideoBlackLevel uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredBlueVideoBlackLevel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredBlueVideoBlackLevel, err = soap.MarshalUi2(DesiredBlueVideoBlackLevel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetBlueVideoBlackLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentColorTemperature: allowed value range: minimum=0, step=1 -func (client *RenderingControl2) GetColorTemperature(InstanceID uint32) (CurrentColorTemperature uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentColorTemperature string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetColorTemperature", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentColorTemperature, err = soap.UnmarshalUi2(response.CurrentColorTemperature); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredColorTemperature: allowed value range: minimum=0, step=1 - -func (client *RenderingControl2) SetColorTemperature(InstanceID uint32, DesiredColorTemperature uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredColorTemperature string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredColorTemperature, err = soap.MarshalUi2(DesiredColorTemperature); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetColorTemperature", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentHorizontalKeystone: allowed value range: step=1 -func (client *RenderingControl2) GetHorizontalKeystone(InstanceID uint32) (CurrentHorizontalKeystone int16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentHorizontalKeystone string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetHorizontalKeystone", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentHorizontalKeystone, err = soap.UnmarshalI2(response.CurrentHorizontalKeystone); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredHorizontalKeystone: allowed value range: step=1 - -func (client *RenderingControl2) SetHorizontalKeystone(InstanceID uint32, DesiredHorizontalKeystone int16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredHorizontalKeystone string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredHorizontalKeystone, err = soap.MarshalI2(DesiredHorizontalKeystone); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetHorizontalKeystone", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * CurrentVerticalKeystone: allowed value range: step=1 -func (client *RenderingControl2) GetVerticalKeystone(InstanceID uint32) (CurrentVerticalKeystone int16, err error) { - // Request structure. - request := &struct { - InstanceID string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentVerticalKeystone string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetVerticalKeystone", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentVerticalKeystone, err = soap.UnmarshalI2(response.CurrentVerticalKeystone); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DesiredVerticalKeystone: allowed value range: step=1 - -func (client *RenderingControl2) SetVerticalKeystone(InstanceID uint32, DesiredVerticalKeystone int16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - DesiredVerticalKeystone string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.DesiredVerticalKeystone, err = soap.MarshalI2(DesiredVerticalKeystone); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetVerticalKeystone", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl2) GetMute(InstanceID uint32, Channel string) (CurrentMute bool, err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentMute string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetMute", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentMute, err = soap.UnmarshalBoolean(response.CurrentMute); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl2) SetMute(InstanceID uint32, Channel string, DesiredMute bool) (err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - - DesiredMute string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - if request.DesiredMute, err = soap.MarshalBoolean(DesiredMute); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetMute", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -// -// Return values: -// -// * CurrentVolume: allowed value range: minimum=0, step=1 -func (client *RenderingControl2) GetVolume(InstanceID uint32, Channel string) (CurrentVolume uint16, err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentVolume string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetVolume", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentVolume, err = soap.UnmarshalUi2(response.CurrentVolume); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master -// -// * DesiredVolume: allowed value range: minimum=0, step=1 - -func (client *RenderingControl2) SetVolume(InstanceID uint32, Channel string, DesiredVolume uint16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - - DesiredVolume string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - if request.DesiredVolume, err = soap.MarshalUi2(DesiredVolume); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetVolume", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl2) GetVolumeDB(InstanceID uint32, Channel string) (CurrentVolume int16, err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentVolume string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetVolumeDB", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentVolume, err = soap.UnmarshalI2(response.CurrentVolume); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl2) SetVolumeDB(InstanceID uint32, Channel string, DesiredVolume int16) (err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - - DesiredVolume string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - if request.DesiredVolume, err = soap.MarshalI2(DesiredVolume); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetVolumeDB", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl2) GetVolumeDBRange(InstanceID uint32, Channel string) (MinValue int16, MaxValue int16, err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - MinValue string - - MaxValue string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetVolumeDBRange", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if MinValue, err = soap.UnmarshalI2(response.MinValue); err != nil { - return - } - if MaxValue, err = soap.UnmarshalI2(response.MaxValue); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl2) GetLoudness(InstanceID uint32, Channel string) (CurrentLoudness bool, err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - CurrentLoudness string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetLoudness", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if CurrentLoudness, err = soap.UnmarshalBoolean(response.CurrentLoudness); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * Channel: allowed values: Master - -func (client *RenderingControl2) SetLoudness(InstanceID uint32, Channel string, DesiredLoudness bool) (err error) { - // Request structure. - request := &struct { - InstanceID string - - Channel string - - DesiredLoudness string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.Channel, err = soap.MarshalString(Channel); err != nil { - return - } - if request.DesiredLoudness, err = soap.MarshalBoolean(DesiredLoudness); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetLoudness", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *RenderingControl2) GetStateVariables(InstanceID uint32, StateVariableList string) (StateVariableValuePairs string, err error) { - // Request structure. - request := &struct { - InstanceID string - - StateVariableList string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.StateVariableList, err = soap.MarshalString(StateVariableList); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - StateVariableValuePairs string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "GetStateVariables", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if StateVariableValuePairs, err = soap.UnmarshalString(response.StateVariableValuePairs); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *RenderingControl2) SetStateVariables(InstanceID uint32, RenderingControlUDN string, ServiceType string, ServiceId string, StateVariableValuePairs string) (StateVariableList string, err error) { - // Request structure. - request := &struct { - InstanceID string - - RenderingControlUDN string - - ServiceType string - - ServiceId string - - StateVariableValuePairs string - }{} - // BEGIN Marshal arguments into request. - - if request.InstanceID, err = soap.MarshalUi4(InstanceID); err != nil { - return - } - if request.RenderingControlUDN, err = soap.MarshalString(RenderingControlUDN); err != nil { - return - } - if request.ServiceType, err = soap.MarshalString(ServiceType); err != nil { - return - } - if request.ServiceId, err = soap.MarshalString(ServiceId); err != nil { - return - } - if request.StateVariableValuePairs, err = soap.MarshalString(StateVariableValuePairs); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - StateVariableList string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_RenderingControl_2, "SetStateVariables", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if StateVariableList, err = soap.UnmarshalString(response.StateVariableList); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// ScheduledRecording1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:ScheduledRecording:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type ScheduledRecording1 struct { - goupnp.ServiceClient -} - -// NewScheduledRecording1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewScheduledRecording1Clients() (clients []*ScheduledRecording1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_ScheduledRecording_1); err != nil { - return - } - clients = newScheduledRecording1ClientsFromGenericClients(genericClients) - return -} - -// NewScheduledRecording1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewScheduledRecording1ClientsByURL(loc *url.URL) ([]*ScheduledRecording1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_ScheduledRecording_1) - if err != nil { - return nil, err - } - return newScheduledRecording1ClientsFromGenericClients(genericClients), nil -} - -// NewScheduledRecording1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewScheduledRecording1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*ScheduledRecording1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_ScheduledRecording_1) - if err != nil { - return nil, err - } - return newScheduledRecording1ClientsFromGenericClients(genericClients), nil -} - -func newScheduledRecording1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*ScheduledRecording1 { - clients := make([]*ScheduledRecording1, len(genericClients)) - for i := range genericClients { - clients[i] = &ScheduledRecording1{genericClients[i]} - } - return clients -} - -func (client *ScheduledRecording1) GetSortCapabilities() (SortCaps string, SortLevelCap uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - SortCaps string - - SortLevelCap string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "GetSortCapabilities", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if SortCaps, err = soap.UnmarshalString(response.SortCaps); err != nil { - return - } - if SortLevelCap, err = soap.UnmarshalUi4(response.SortLevelCap); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DataTypeID: allowed values: A_ARG_TYPE_RecordSchedule, A_ARG_TYPE_RecordTask, A_ARG_TYPE_RecordScheduleParts - -func (client *ScheduledRecording1) GetPropertyList(DataTypeID string) (PropertyList string, err error) { - // Request structure. - request := &struct { - DataTypeID string - }{} - // BEGIN Marshal arguments into request. - - if request.DataTypeID, err = soap.MarshalString(DataTypeID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - PropertyList string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "GetPropertyList", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if PropertyList, err = soap.UnmarshalString(response.PropertyList); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DataTypeID: allowed values: A_ARG_TYPE_RecordSchedule, A_ARG_TYPE_RecordTask, A_ARG_TYPE_RecordScheduleParts - -func (client *ScheduledRecording1) GetAllowedValues(DataTypeID string, Filter string) (PropertyInfo string, err error) { - // Request structure. - request := &struct { - DataTypeID string - - Filter string - }{} - // BEGIN Marshal arguments into request. - - if request.DataTypeID, err = soap.MarshalString(DataTypeID); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - PropertyInfo string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "GetAllowedValues", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if PropertyInfo, err = soap.UnmarshalString(response.PropertyInfo); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) GetStateUpdateID() (Id uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Id string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "GetStateUpdateID", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Id, err = soap.UnmarshalUi4(response.Id); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) BrowseRecordSchedules(Filter string, StartingIndex uint32, RequestedCount uint32, SortCriteria string) (Result string, NumberReturned uint32, TotalMatches uint32, UpdateID uint32, err error) { - // Request structure. - request := &struct { - Filter string - - StartingIndex string - - RequestedCount string - - SortCriteria string - }{} - // BEGIN Marshal arguments into request. - - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - if request.StartingIndex, err = soap.MarshalUi4(StartingIndex); err != nil { - return - } - if request.RequestedCount, err = soap.MarshalUi4(RequestedCount); err != nil { - return - } - if request.SortCriteria, err = soap.MarshalString(SortCriteria); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - NumberReturned string - - TotalMatches string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "BrowseRecordSchedules", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if NumberReturned, err = soap.UnmarshalUi4(response.NumberReturned); err != nil { - return - } - if TotalMatches, err = soap.UnmarshalUi4(response.TotalMatches); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) BrowseRecordTasks(RecordScheduleID string, Filter string, StartingIndex uint32, RequestedCount uint32, SortCriteria string) (Result string, NumberReturned uint32, TotalMatches uint32, UpdateID uint32, err error) { - // Request structure. - request := &struct { - RecordScheduleID string - - Filter string - - StartingIndex string - - RequestedCount string - - SortCriteria string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordScheduleID, err = soap.MarshalString(RecordScheduleID); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - if request.StartingIndex, err = soap.MarshalUi4(StartingIndex); err != nil { - return - } - if request.RequestedCount, err = soap.MarshalUi4(RequestedCount); err != nil { - return - } - if request.SortCriteria, err = soap.MarshalString(SortCriteria); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - NumberReturned string - - TotalMatches string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "BrowseRecordTasks", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if NumberReturned, err = soap.UnmarshalUi4(response.NumberReturned); err != nil { - return - } - if TotalMatches, err = soap.UnmarshalUi4(response.TotalMatches); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) CreateRecordSchedule(Elements string) (RecordScheduleID string, Result string, UpdateID uint32, err error) { - // Request structure. - request := &struct { - Elements string - }{} - // BEGIN Marshal arguments into request. - - if request.Elements, err = soap.MarshalString(Elements); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - RecordScheduleID string - - Result string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "CreateRecordSchedule", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if RecordScheduleID, err = soap.UnmarshalString(response.RecordScheduleID); err != nil { - return - } - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) DeleteRecordSchedule(RecordScheduleID string) (err error) { - // Request structure. - request := &struct { - RecordScheduleID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordScheduleID, err = soap.MarshalString(RecordScheduleID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "DeleteRecordSchedule", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) GetRecordSchedule(RecordScheduleID string, Filter string) (Result string, UpdateID uint32, err error) { - // Request structure. - request := &struct { - RecordScheduleID string - - Filter string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordScheduleID, err = soap.MarshalString(RecordScheduleID); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "GetRecordSchedule", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) EnableRecordSchedule(RecordScheduleID string) (err error) { - // Request structure. - request := &struct { - RecordScheduleID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordScheduleID, err = soap.MarshalString(RecordScheduleID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "EnableRecordSchedule", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) DisableRecordSchedule(RecordScheduleID string) (err error) { - // Request structure. - request := &struct { - RecordScheduleID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordScheduleID, err = soap.MarshalString(RecordScheduleID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "DisableRecordSchedule", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) DeleteRecordTask(RecordTaskID string) (err error) { - // Request structure. - request := &struct { - RecordTaskID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordTaskID, err = soap.MarshalString(RecordTaskID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "DeleteRecordTask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) GetRecordTask(RecordTaskID string, Filter string) (Result string, UpdateID uint32, err error) { - // Request structure. - request := &struct { - RecordTaskID string - - Filter string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordTaskID, err = soap.MarshalString(RecordTaskID); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "GetRecordTask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) EnableRecordTask(RecordTaskID string) (err error) { - // Request structure. - request := &struct { - RecordTaskID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordTaskID, err = soap.MarshalString(RecordTaskID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "EnableRecordTask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) DisableRecordTask(RecordTaskID string) (err error) { - // Request structure. - request := &struct { - RecordTaskID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordTaskID, err = soap.MarshalString(RecordTaskID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "DisableRecordTask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) ResetRecordTask(RecordTaskID string) (err error) { - // Request structure. - request := &struct { - RecordTaskID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordTaskID, err = soap.MarshalString(RecordTaskID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "ResetRecordTask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) GetRecordScheduleConflicts(RecordScheduleID string) (RecordScheduleConflictIDList string, UpdateID uint32, err error) { - // Request structure. - request := &struct { - RecordScheduleID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordScheduleID, err = soap.MarshalString(RecordScheduleID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - RecordScheduleConflictIDList string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "GetRecordScheduleConflicts", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if RecordScheduleConflictIDList, err = soap.UnmarshalString(response.RecordScheduleConflictIDList); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording1) GetRecordTaskConflicts(RecordTaskID string) (RecordTaskConflictIDList string, UpdateID uint32, err error) { - // Request structure. - request := &struct { - RecordTaskID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordTaskID, err = soap.MarshalString(RecordTaskID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - RecordTaskConflictIDList string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_1, "GetRecordTaskConflicts", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if RecordTaskConflictIDList, err = soap.UnmarshalString(response.RecordTaskConflictIDList); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// ScheduledRecording2 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:ScheduledRecording:2". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type ScheduledRecording2 struct { - goupnp.ServiceClient -} - -// NewScheduledRecording2Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewScheduledRecording2Clients() (clients []*ScheduledRecording2, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_ScheduledRecording_2); err != nil { - return - } - clients = newScheduledRecording2ClientsFromGenericClients(genericClients) - return -} - -// NewScheduledRecording2ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewScheduledRecording2ClientsByURL(loc *url.URL) ([]*ScheduledRecording2, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_ScheduledRecording_2) - if err != nil { - return nil, err - } - return newScheduledRecording2ClientsFromGenericClients(genericClients), nil -} - -// NewScheduledRecording2ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewScheduledRecording2ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*ScheduledRecording2, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_ScheduledRecording_2) - if err != nil { - return nil, err - } - return newScheduledRecording2ClientsFromGenericClients(genericClients), nil -} - -func newScheduledRecording2ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*ScheduledRecording2 { - clients := make([]*ScheduledRecording2, len(genericClients)) - for i := range genericClients { - clients[i] = &ScheduledRecording2{genericClients[i]} - } - return clients -} - -func (client *ScheduledRecording2) GetSortCapabilities() (SortCaps string, SortLevelCap uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - SortCaps string - - SortLevelCap string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "GetSortCapabilities", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if SortCaps, err = soap.UnmarshalString(response.SortCaps); err != nil { - return - } - if SortLevelCap, err = soap.UnmarshalUi4(response.SortLevelCap); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DataTypeID: allowed values: A_ARG_TYPE_RecordSchedule, A_ARG_TYPE_RecordTask, A_ARG_TYPE_RecordScheduleParts - -func (client *ScheduledRecording2) GetPropertyList(DataTypeID string) (PropertyList string, err error) { - // Request structure. - request := &struct { - DataTypeID string - }{} - // BEGIN Marshal arguments into request. - - if request.DataTypeID, err = soap.MarshalString(DataTypeID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - PropertyList string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "GetPropertyList", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if PropertyList, err = soap.UnmarshalString(response.PropertyList); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * DataTypeID: allowed values: A_ARG_TYPE_RecordSchedule, A_ARG_TYPE_RecordTask, A_ARG_TYPE_RecordScheduleParts - -func (client *ScheduledRecording2) GetAllowedValues(DataTypeID string, Filter string) (PropertyInfo string, err error) { - // Request structure. - request := &struct { - DataTypeID string - - Filter string - }{} - // BEGIN Marshal arguments into request. - - if request.DataTypeID, err = soap.MarshalString(DataTypeID); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - PropertyInfo string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "GetAllowedValues", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if PropertyInfo, err = soap.UnmarshalString(response.PropertyInfo); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) GetStateUpdateID() (Id uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Id string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "GetStateUpdateID", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Id, err = soap.UnmarshalUi4(response.Id); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) BrowseRecordSchedules(Filter string, StartingIndex uint32, RequestedCount uint32, SortCriteria string) (Result string, NumberReturned uint32, TotalMatches uint32, UpdateID uint32, err error) { - // Request structure. - request := &struct { - Filter string - - StartingIndex string - - RequestedCount string - - SortCriteria string - }{} - // BEGIN Marshal arguments into request. - - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - if request.StartingIndex, err = soap.MarshalUi4(StartingIndex); err != nil { - return - } - if request.RequestedCount, err = soap.MarshalUi4(RequestedCount); err != nil { - return - } - if request.SortCriteria, err = soap.MarshalString(SortCriteria); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - NumberReturned string - - TotalMatches string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "BrowseRecordSchedules", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if NumberReturned, err = soap.UnmarshalUi4(response.NumberReturned); err != nil { - return - } - if TotalMatches, err = soap.UnmarshalUi4(response.TotalMatches); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) BrowseRecordTasks(RecordScheduleID string, Filter string, StartingIndex uint32, RequestedCount uint32, SortCriteria string) (Result string, NumberReturned uint32, TotalMatches uint32, UpdateID uint32, err error) { - // Request structure. - request := &struct { - RecordScheduleID string - - Filter string - - StartingIndex string - - RequestedCount string - - SortCriteria string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordScheduleID, err = soap.MarshalString(RecordScheduleID); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - if request.StartingIndex, err = soap.MarshalUi4(StartingIndex); err != nil { - return - } - if request.RequestedCount, err = soap.MarshalUi4(RequestedCount); err != nil { - return - } - if request.SortCriteria, err = soap.MarshalString(SortCriteria); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - NumberReturned string - - TotalMatches string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "BrowseRecordTasks", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if NumberReturned, err = soap.UnmarshalUi4(response.NumberReturned); err != nil { - return - } - if TotalMatches, err = soap.UnmarshalUi4(response.TotalMatches); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) CreateRecordSchedule(Elements string) (RecordScheduleID string, Result string, UpdateID uint32, err error) { - // Request structure. - request := &struct { - Elements string - }{} - // BEGIN Marshal arguments into request. - - if request.Elements, err = soap.MarshalString(Elements); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - RecordScheduleID string - - Result string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "CreateRecordSchedule", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if RecordScheduleID, err = soap.UnmarshalString(response.RecordScheduleID); err != nil { - return - } - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) DeleteRecordSchedule(RecordScheduleID string) (err error) { - // Request structure. - request := &struct { - RecordScheduleID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordScheduleID, err = soap.MarshalString(RecordScheduleID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "DeleteRecordSchedule", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) GetRecordSchedule(RecordScheduleID string, Filter string) (Result string, UpdateID uint32, err error) { - // Request structure. - request := &struct { - RecordScheduleID string - - Filter string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordScheduleID, err = soap.MarshalString(RecordScheduleID); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "GetRecordSchedule", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) EnableRecordSchedule(RecordScheduleID string) (err error) { - // Request structure. - request := &struct { - RecordScheduleID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordScheduleID, err = soap.MarshalString(RecordScheduleID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "EnableRecordSchedule", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) DisableRecordSchedule(RecordScheduleID string) (err error) { - // Request structure. - request := &struct { - RecordScheduleID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordScheduleID, err = soap.MarshalString(RecordScheduleID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "DisableRecordSchedule", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) DeleteRecordTask(RecordTaskID string) (err error) { - // Request structure. - request := &struct { - RecordTaskID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordTaskID, err = soap.MarshalString(RecordTaskID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "DeleteRecordTask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) GetRecordTask(RecordTaskID string, Filter string) (Result string, UpdateID uint32, err error) { - // Request structure. - request := &struct { - RecordTaskID string - - Filter string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordTaskID, err = soap.MarshalString(RecordTaskID); err != nil { - return - } - if request.Filter, err = soap.MarshalString(Filter); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Result string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "GetRecordTask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Result, err = soap.UnmarshalString(response.Result); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) EnableRecordTask(RecordTaskID string) (err error) { - // Request structure. - request := &struct { - RecordTaskID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordTaskID, err = soap.MarshalString(RecordTaskID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "EnableRecordTask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) DisableRecordTask(RecordTaskID string) (err error) { - // Request structure. - request := &struct { - RecordTaskID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordTaskID, err = soap.MarshalString(RecordTaskID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "DisableRecordTask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) ResetRecordTask(RecordTaskID string) (err error) { - // Request structure. - request := &struct { - RecordTaskID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordTaskID, err = soap.MarshalString(RecordTaskID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "ResetRecordTask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) GetRecordScheduleConflicts(RecordScheduleID string) (RecordScheduleConflictIDList string, UpdateID uint32, err error) { - // Request structure. - request := &struct { - RecordScheduleID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordScheduleID, err = soap.MarshalString(RecordScheduleID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - RecordScheduleConflictIDList string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "GetRecordScheduleConflicts", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if RecordScheduleConflictIDList, err = soap.UnmarshalString(response.RecordScheduleConflictIDList); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *ScheduledRecording2) GetRecordTaskConflicts(RecordTaskID string) (RecordTaskConflictIDList string, UpdateID uint32, err error) { - // Request structure. - request := &struct { - RecordTaskID string - }{} - // BEGIN Marshal arguments into request. - - if request.RecordTaskID, err = soap.MarshalString(RecordTaskID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - RecordTaskConflictIDList string - - UpdateID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_ScheduledRecording_2, "GetRecordTaskConflicts", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if RecordTaskConflictIDList, err = soap.UnmarshalString(response.RecordTaskConflictIDList); err != nil { - return - } - if UpdateID, err = soap.UnmarshalUi4(response.UpdateID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/internetgateway1/internetgateway1.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/internetgateway1/internetgateway1.go deleted file mode 100644 index 75af4471..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/internetgateway1/internetgateway1.go +++ /dev/null @@ -1,3717 +0,0 @@ -// Client for UPnP Device Control Protocol Internet Gateway Device v1. -// -// This DCP is documented in detail at: http://upnp.org/specs/gw/UPnP-gw-InternetGatewayDevice-v1-Device.pdf -// -// Typically, use one of the New* functions to create clients for services. -package internetgateway1 - -// Generated file - do not edit by hand. See README.md - -import ( - "net/url" - "time" - - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp" - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap" -) - -// Hack to avoid Go complaining if time isn't used. -var _ time.Time - -// Device URNs: -const ( - URN_LANDevice_1 = "urn:schemas-upnp-org:device:LANDevice:1" - URN_WANConnectionDevice_1 = "urn:schemas-upnp-org:device:WANConnectionDevice:1" - URN_WANDevice_1 = "urn:schemas-upnp-org:device:WANDevice:1" -) - -// Service URNs: -const ( - URN_LANHostConfigManagement_1 = "urn:schemas-upnp-org:service:LANHostConfigManagement:1" - URN_Layer3Forwarding_1 = "urn:schemas-upnp-org:service:Layer3Forwarding:1" - URN_WANCableLinkConfig_1 = "urn:schemas-upnp-org:service:WANCableLinkConfig:1" - URN_WANCommonInterfaceConfig_1 = "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1" - URN_WANDSLLinkConfig_1 = "urn:schemas-upnp-org:service:WANDSLLinkConfig:1" - URN_WANEthernetLinkConfig_1 = "urn:schemas-upnp-org:service:WANEthernetLinkConfig:1" - URN_WANIPConnection_1 = "urn:schemas-upnp-org:service:WANIPConnection:1" - URN_WANPOTSLinkConfig_1 = "urn:schemas-upnp-org:service:WANPOTSLinkConfig:1" - URN_WANPPPConnection_1 = "urn:schemas-upnp-org:service:WANPPPConnection:1" -) - -// LANHostConfigManagement1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:LANHostConfigManagement:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type LANHostConfigManagement1 struct { - goupnp.ServiceClient -} - -// NewLANHostConfigManagement1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewLANHostConfigManagement1Clients() (clients []*LANHostConfigManagement1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_LANHostConfigManagement_1); err != nil { - return - } - clients = newLANHostConfigManagement1ClientsFromGenericClients(genericClients) - return -} - -// NewLANHostConfigManagement1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewLANHostConfigManagement1ClientsByURL(loc *url.URL) ([]*LANHostConfigManagement1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_LANHostConfigManagement_1) - if err != nil { - return nil, err - } - return newLANHostConfigManagement1ClientsFromGenericClients(genericClients), nil -} - -// NewLANHostConfigManagement1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewLANHostConfigManagement1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*LANHostConfigManagement1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_LANHostConfigManagement_1) - if err != nil { - return nil, err - } - return newLANHostConfigManagement1ClientsFromGenericClients(genericClients), nil -} - -func newLANHostConfigManagement1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*LANHostConfigManagement1 { - clients := make([]*LANHostConfigManagement1, len(genericClients)) - for i := range genericClients { - clients[i] = &LANHostConfigManagement1{genericClients[i]} - } - return clients -} - -func (client *LANHostConfigManagement1) SetDHCPServerConfigurable(NewDHCPServerConfigurable bool) (err error) { - // Request structure. - request := &struct { - NewDHCPServerConfigurable string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDHCPServerConfigurable, err = soap.MarshalBoolean(NewDHCPServerConfigurable); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDHCPServerConfigurable", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetDHCPServerConfigurable() (NewDHCPServerConfigurable bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDHCPServerConfigurable string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDHCPServerConfigurable", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDHCPServerConfigurable, err = soap.UnmarshalBoolean(response.NewDHCPServerConfigurable); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetDHCPRelay(NewDHCPRelay bool) (err error) { - // Request structure. - request := &struct { - NewDHCPRelay string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDHCPRelay, err = soap.MarshalBoolean(NewDHCPRelay); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDHCPRelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetDHCPRelay() (NewDHCPRelay bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDHCPRelay string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDHCPRelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDHCPRelay, err = soap.UnmarshalBoolean(response.NewDHCPRelay); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetSubnetMask(NewSubnetMask string) (err error) { - // Request structure. - request := &struct { - NewSubnetMask string - }{} - // BEGIN Marshal arguments into request. - - if request.NewSubnetMask, err = soap.MarshalString(NewSubnetMask); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetSubnetMask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetSubnetMask() (NewSubnetMask string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewSubnetMask string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetSubnetMask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewSubnetMask, err = soap.UnmarshalString(response.NewSubnetMask); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetIPRouter(NewIPRouters string) (err error) { - // Request structure. - request := &struct { - NewIPRouters string - }{} - // BEGIN Marshal arguments into request. - - if request.NewIPRouters, err = soap.MarshalString(NewIPRouters); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetIPRouter", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) DeleteIPRouter(NewIPRouters string) (err error) { - // Request structure. - request := &struct { - NewIPRouters string - }{} - // BEGIN Marshal arguments into request. - - if request.NewIPRouters, err = soap.MarshalString(NewIPRouters); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "DeleteIPRouter", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetIPRoutersList() (NewIPRouters string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewIPRouters string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetIPRoutersList", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewIPRouters, err = soap.UnmarshalString(response.NewIPRouters); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetDomainName(NewDomainName string) (err error) { - // Request structure. - request := &struct { - NewDomainName string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDomainName, err = soap.MarshalString(NewDomainName); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDomainName", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetDomainName() (NewDomainName string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDomainName string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDomainName", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDomainName, err = soap.UnmarshalString(response.NewDomainName); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetAddressRange(NewMinAddress string, NewMaxAddress string) (err error) { - // Request structure. - request := &struct { - NewMinAddress string - - NewMaxAddress string - }{} - // BEGIN Marshal arguments into request. - - if request.NewMinAddress, err = soap.MarshalString(NewMinAddress); err != nil { - return - } - if request.NewMaxAddress, err = soap.MarshalString(NewMaxAddress); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetAddressRange", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetAddressRange() (NewMinAddress string, NewMaxAddress string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewMinAddress string - - NewMaxAddress string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetAddressRange", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewMinAddress, err = soap.UnmarshalString(response.NewMinAddress); err != nil { - return - } - if NewMaxAddress, err = soap.UnmarshalString(response.NewMaxAddress); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetReservedAddress(NewReservedAddresses string) (err error) { - // Request structure. - request := &struct { - NewReservedAddresses string - }{} - // BEGIN Marshal arguments into request. - - if request.NewReservedAddresses, err = soap.MarshalString(NewReservedAddresses); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetReservedAddress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) DeleteReservedAddress(NewReservedAddresses string) (err error) { - // Request structure. - request := &struct { - NewReservedAddresses string - }{} - // BEGIN Marshal arguments into request. - - if request.NewReservedAddresses, err = soap.MarshalString(NewReservedAddresses); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "DeleteReservedAddress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetReservedAddresses() (NewReservedAddresses string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewReservedAddresses string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetReservedAddresses", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewReservedAddresses, err = soap.UnmarshalString(response.NewReservedAddresses); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetDNSServer(NewDNSServers string) (err error) { - // Request structure. - request := &struct { - NewDNSServers string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDNSServers, err = soap.MarshalString(NewDNSServers); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDNSServer", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) DeleteDNSServer(NewDNSServers string) (err error) { - // Request structure. - request := &struct { - NewDNSServers string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDNSServers, err = soap.MarshalString(NewDNSServers); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "DeleteDNSServer", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetDNSServers() (NewDNSServers string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDNSServers string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDNSServers", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDNSServers, err = soap.UnmarshalString(response.NewDNSServers); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// Layer3Forwarding1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:Layer3Forwarding:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type Layer3Forwarding1 struct { - goupnp.ServiceClient -} - -// NewLayer3Forwarding1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewLayer3Forwarding1Clients() (clients []*Layer3Forwarding1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_Layer3Forwarding_1); err != nil { - return - } - clients = newLayer3Forwarding1ClientsFromGenericClients(genericClients) - return -} - -// NewLayer3Forwarding1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewLayer3Forwarding1ClientsByURL(loc *url.URL) ([]*Layer3Forwarding1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_Layer3Forwarding_1) - if err != nil { - return nil, err - } - return newLayer3Forwarding1ClientsFromGenericClients(genericClients), nil -} - -// NewLayer3Forwarding1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewLayer3Forwarding1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*Layer3Forwarding1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_Layer3Forwarding_1) - if err != nil { - return nil, err - } - return newLayer3Forwarding1ClientsFromGenericClients(genericClients), nil -} - -func newLayer3Forwarding1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*Layer3Forwarding1 { - clients := make([]*Layer3Forwarding1, len(genericClients)) - for i := range genericClients { - clients[i] = &Layer3Forwarding1{genericClients[i]} - } - return clients -} - -func (client *Layer3Forwarding1) SetDefaultConnectionService(NewDefaultConnectionService string) (err error) { - // Request structure. - request := &struct { - NewDefaultConnectionService string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDefaultConnectionService, err = soap.MarshalString(NewDefaultConnectionService); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_Layer3Forwarding_1, "SetDefaultConnectionService", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *Layer3Forwarding1) GetDefaultConnectionService() (NewDefaultConnectionService string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDefaultConnectionService string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_Layer3Forwarding_1, "GetDefaultConnectionService", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDefaultConnectionService, err = soap.UnmarshalString(response.NewDefaultConnectionService); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANCableLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANCableLinkConfig:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANCableLinkConfig1 struct { - goupnp.ServiceClient -} - -// NewWANCableLinkConfig1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANCableLinkConfig1Clients() (clients []*WANCableLinkConfig1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANCableLinkConfig_1); err != nil { - return - } - clients = newWANCableLinkConfig1ClientsFromGenericClients(genericClients) - return -} - -// NewWANCableLinkConfig1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANCableLinkConfig1ClientsByURL(loc *url.URL) ([]*WANCableLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANCableLinkConfig_1) - if err != nil { - return nil, err - } - return newWANCableLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -// NewWANCableLinkConfig1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANCableLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANCableLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANCableLinkConfig_1) - if err != nil { - return nil, err - } - return newWANCableLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -func newWANCableLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANCableLinkConfig1 { - clients := make([]*WANCableLinkConfig1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANCableLinkConfig1{genericClients[i]} - } - return clients -} - -// -// Return values: -// -// * NewCableLinkConfigState: allowed values: notReady, dsSyncComplete, usParamAcquired, rangingComplete, ipComplete, todEstablished, paramTransferComplete, registrationComplete, operational, accessDenied -// -// * NewLinkType: allowed values: Ethernet -func (client *WANCableLinkConfig1) GetCableLinkConfigInfo() (NewCableLinkConfigState string, NewLinkType string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewCableLinkConfigState string - - NewLinkType string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetCableLinkConfigInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewCableLinkConfigState, err = soap.UnmarshalString(response.NewCableLinkConfigState); err != nil { - return - } - if NewLinkType, err = soap.UnmarshalString(response.NewLinkType); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetDownstreamFrequency() (NewDownstreamFrequency uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDownstreamFrequency string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetDownstreamFrequency", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDownstreamFrequency, err = soap.UnmarshalUi4(response.NewDownstreamFrequency); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewDownstreamModulation: allowed values: 64QAM, 256QAM -func (client *WANCableLinkConfig1) GetDownstreamModulation() (NewDownstreamModulation string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDownstreamModulation string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetDownstreamModulation", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDownstreamModulation, err = soap.UnmarshalString(response.NewDownstreamModulation); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetUpstreamFrequency() (NewUpstreamFrequency uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewUpstreamFrequency string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamFrequency", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewUpstreamFrequency, err = soap.UnmarshalUi4(response.NewUpstreamFrequency); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewUpstreamModulation: allowed values: QPSK, 16QAM -func (client *WANCableLinkConfig1) GetUpstreamModulation() (NewUpstreamModulation string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewUpstreamModulation string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamModulation", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewUpstreamModulation, err = soap.UnmarshalString(response.NewUpstreamModulation); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetUpstreamChannelID() (NewUpstreamChannelID uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewUpstreamChannelID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamChannelID", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewUpstreamChannelID, err = soap.UnmarshalUi4(response.NewUpstreamChannelID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetUpstreamPowerLevel() (NewUpstreamPowerLevel uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewUpstreamPowerLevel string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamPowerLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewUpstreamPowerLevel, err = soap.UnmarshalUi4(response.NewUpstreamPowerLevel); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetBPIEncryptionEnabled() (NewBPIEncryptionEnabled bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewBPIEncryptionEnabled string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetBPIEncryptionEnabled", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewBPIEncryptionEnabled, err = soap.UnmarshalBoolean(response.NewBPIEncryptionEnabled); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetConfigFile() (NewConfigFile string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewConfigFile string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetConfigFile", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewConfigFile, err = soap.UnmarshalString(response.NewConfigFile); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetTFTPServer() (NewTFTPServer string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewTFTPServer string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetTFTPServer", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewTFTPServer, err = soap.UnmarshalString(response.NewTFTPServer); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANCommonInterfaceConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANCommonInterfaceConfig1 struct { - goupnp.ServiceClient -} - -// NewWANCommonInterfaceConfig1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANCommonInterfaceConfig1Clients() (clients []*WANCommonInterfaceConfig1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANCommonInterfaceConfig_1); err != nil { - return - } - clients = newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients) - return -} - -// NewWANCommonInterfaceConfig1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANCommonInterfaceConfig1ClientsByURL(loc *url.URL) ([]*WANCommonInterfaceConfig1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANCommonInterfaceConfig_1) - if err != nil { - return nil, err - } - return newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients), nil -} - -// NewWANCommonInterfaceConfig1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANCommonInterfaceConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANCommonInterfaceConfig1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANCommonInterfaceConfig_1) - if err != nil { - return nil, err - } - return newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients), nil -} - -func newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANCommonInterfaceConfig1 { - clients := make([]*WANCommonInterfaceConfig1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANCommonInterfaceConfig1{genericClients[i]} - } - return clients -} - -func (client *WANCommonInterfaceConfig1) SetEnabledForInternet(NewEnabledForInternet bool) (err error) { - // Request structure. - request := &struct { - NewEnabledForInternet string - }{} - // BEGIN Marshal arguments into request. - - if request.NewEnabledForInternet, err = soap.MarshalBoolean(NewEnabledForInternet); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "SetEnabledForInternet", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetEnabledForInternet() (NewEnabledForInternet bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewEnabledForInternet string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetEnabledForInternet", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewEnabledForInternet, err = soap.UnmarshalBoolean(response.NewEnabledForInternet); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewWANAccessType: allowed values: DSL, POTS, Cable, Ethernet -// -// * NewPhysicalLinkStatus: allowed values: Up, Down -func (client *WANCommonInterfaceConfig1) GetCommonLinkProperties() (NewWANAccessType string, NewLayer1UpstreamMaxBitRate uint32, NewLayer1DownstreamMaxBitRate uint32, NewPhysicalLinkStatus string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewWANAccessType string - - NewLayer1UpstreamMaxBitRate string - - NewLayer1DownstreamMaxBitRate string - - NewPhysicalLinkStatus string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetCommonLinkProperties", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewWANAccessType, err = soap.UnmarshalString(response.NewWANAccessType); err != nil { - return - } - if NewLayer1UpstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewLayer1UpstreamMaxBitRate); err != nil { - return - } - if NewLayer1DownstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewLayer1DownstreamMaxBitRate); err != nil { - return - } - if NewPhysicalLinkStatus, err = soap.UnmarshalString(response.NewPhysicalLinkStatus); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetWANAccessProvider() (NewWANAccessProvider string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewWANAccessProvider string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetWANAccessProvider", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewWANAccessProvider, err = soap.UnmarshalString(response.NewWANAccessProvider); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewMaximumActiveConnections: allowed value range: minimum=1, step=1 -func (client *WANCommonInterfaceConfig1) GetMaximumActiveConnections() (NewMaximumActiveConnections uint16, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewMaximumActiveConnections string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetMaximumActiveConnections", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewMaximumActiveConnections, err = soap.UnmarshalUi2(response.NewMaximumActiveConnections); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetTotalBytesSent() (NewTotalBytesSent uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewTotalBytesSent string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalBytesSent", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewTotalBytesSent, err = soap.UnmarshalUi4(response.NewTotalBytesSent); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetTotalBytesReceived() (NewTotalBytesReceived uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewTotalBytesReceived string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalBytesReceived", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewTotalBytesReceived, err = soap.UnmarshalUi4(response.NewTotalBytesReceived); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetTotalPacketsSent() (NewTotalPacketsSent uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewTotalPacketsSent string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalPacketsSent", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewTotalPacketsSent, err = soap.UnmarshalUi4(response.NewTotalPacketsSent); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetTotalPacketsReceived() (NewTotalPacketsReceived uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewTotalPacketsReceived string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalPacketsReceived", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewTotalPacketsReceived, err = soap.UnmarshalUi4(response.NewTotalPacketsReceived); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetActiveConnection(NewActiveConnectionIndex uint16) (NewActiveConnDeviceContainer string, NewActiveConnectionServiceID string, err error) { - // Request structure. - request := &struct { - NewActiveConnectionIndex string - }{} - // BEGIN Marshal arguments into request. - - if request.NewActiveConnectionIndex, err = soap.MarshalUi2(NewActiveConnectionIndex); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewActiveConnDeviceContainer string - - NewActiveConnectionServiceID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetActiveConnection", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewActiveConnDeviceContainer, err = soap.UnmarshalString(response.NewActiveConnDeviceContainer); err != nil { - return - } - if NewActiveConnectionServiceID, err = soap.UnmarshalString(response.NewActiveConnectionServiceID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANDSLLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANDSLLinkConfig:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANDSLLinkConfig1 struct { - goupnp.ServiceClient -} - -// NewWANDSLLinkConfig1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANDSLLinkConfig1Clients() (clients []*WANDSLLinkConfig1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANDSLLinkConfig_1); err != nil { - return - } - clients = newWANDSLLinkConfig1ClientsFromGenericClients(genericClients) - return -} - -// NewWANDSLLinkConfig1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANDSLLinkConfig1ClientsByURL(loc *url.URL) ([]*WANDSLLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANDSLLinkConfig_1) - if err != nil { - return nil, err - } - return newWANDSLLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -// NewWANDSLLinkConfig1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANDSLLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANDSLLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANDSLLinkConfig_1) - if err != nil { - return nil, err - } - return newWANDSLLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -func newWANDSLLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANDSLLinkConfig1 { - clients := make([]*WANDSLLinkConfig1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANDSLLinkConfig1{genericClients[i]} - } - return clients -} - -func (client *WANDSLLinkConfig1) SetDSLLinkType(NewLinkType string) (err error) { - // Request structure. - request := &struct { - NewLinkType string - }{} - // BEGIN Marshal arguments into request. - - if request.NewLinkType, err = soap.MarshalString(NewLinkType); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetDSLLinkType", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewLinkStatus: allowed values: Up, Down -func (client *WANDSLLinkConfig1) GetDSLLinkInfo() (NewLinkType string, NewLinkStatus string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewLinkType string - - NewLinkStatus string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetDSLLinkInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewLinkType, err = soap.UnmarshalString(response.NewLinkType); err != nil { - return - } - if NewLinkStatus, err = soap.UnmarshalString(response.NewLinkStatus); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) GetAutoConfig() (NewAutoConfig bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewAutoConfig string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetAutoConfig", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewAutoConfig, err = soap.UnmarshalBoolean(response.NewAutoConfig); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) GetModulationType() (NewModulationType string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewModulationType string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetModulationType", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewModulationType, err = soap.UnmarshalString(response.NewModulationType); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) SetDestinationAddress(NewDestinationAddress string) (err error) { - // Request structure. - request := &struct { - NewDestinationAddress string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDestinationAddress, err = soap.MarshalString(NewDestinationAddress); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetDestinationAddress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) GetDestinationAddress() (NewDestinationAddress string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDestinationAddress string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetDestinationAddress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDestinationAddress, err = soap.UnmarshalString(response.NewDestinationAddress); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) SetATMEncapsulation(NewATMEncapsulation string) (err error) { - // Request structure. - request := &struct { - NewATMEncapsulation string - }{} - // BEGIN Marshal arguments into request. - - if request.NewATMEncapsulation, err = soap.MarshalString(NewATMEncapsulation); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetATMEncapsulation", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) GetATMEncapsulation() (NewATMEncapsulation string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewATMEncapsulation string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetATMEncapsulation", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewATMEncapsulation, err = soap.UnmarshalString(response.NewATMEncapsulation); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) SetFCSPreserved(NewFCSPreserved bool) (err error) { - // Request structure. - request := &struct { - NewFCSPreserved string - }{} - // BEGIN Marshal arguments into request. - - if request.NewFCSPreserved, err = soap.MarshalBoolean(NewFCSPreserved); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetFCSPreserved", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) GetFCSPreserved() (NewFCSPreserved bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewFCSPreserved string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetFCSPreserved", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewFCSPreserved, err = soap.UnmarshalBoolean(response.NewFCSPreserved); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANEthernetLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANEthernetLinkConfig:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANEthernetLinkConfig1 struct { - goupnp.ServiceClient -} - -// NewWANEthernetLinkConfig1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANEthernetLinkConfig1Clients() (clients []*WANEthernetLinkConfig1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANEthernetLinkConfig_1); err != nil { - return - } - clients = newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients) - return -} - -// NewWANEthernetLinkConfig1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANEthernetLinkConfig1ClientsByURL(loc *url.URL) ([]*WANEthernetLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANEthernetLinkConfig_1) - if err != nil { - return nil, err - } - return newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -// NewWANEthernetLinkConfig1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANEthernetLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANEthernetLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANEthernetLinkConfig_1) - if err != nil { - return nil, err - } - return newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -func newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANEthernetLinkConfig1 { - clients := make([]*WANEthernetLinkConfig1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANEthernetLinkConfig1{genericClients[i]} - } - return clients -} - -// -// Return values: -// -// * NewEthernetLinkStatus: allowed values: Up, Down -func (client *WANEthernetLinkConfig1) GetEthernetLinkStatus() (NewEthernetLinkStatus string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewEthernetLinkStatus string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANEthernetLinkConfig_1, "GetEthernetLinkStatus", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewEthernetLinkStatus, err = soap.UnmarshalString(response.NewEthernetLinkStatus); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANIPConnection1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANIPConnection:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANIPConnection1 struct { - goupnp.ServiceClient -} - -// NewWANIPConnection1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANIPConnection1Clients() (clients []*WANIPConnection1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANIPConnection_1); err != nil { - return - } - clients = newWANIPConnection1ClientsFromGenericClients(genericClients) - return -} - -// NewWANIPConnection1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANIPConnection1ClientsByURL(loc *url.URL) ([]*WANIPConnection1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANIPConnection_1) - if err != nil { - return nil, err - } - return newWANIPConnection1ClientsFromGenericClients(genericClients), nil -} - -// NewWANIPConnection1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANIPConnection1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANIPConnection1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANIPConnection_1) - if err != nil { - return nil, err - } - return newWANIPConnection1ClientsFromGenericClients(genericClients), nil -} - -func newWANIPConnection1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANIPConnection1 { - clients := make([]*WANIPConnection1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANIPConnection1{genericClients[i]} - } - return clients -} - -func (client *WANIPConnection1) SetConnectionType(NewConnectionType string) (err error) { - // Request structure. - request := &struct { - NewConnectionType string - }{} - // BEGIN Marshal arguments into request. - - if request.NewConnectionType, err = soap.MarshalString(NewConnectionType); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetConnectionType", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewPossibleConnectionTypes: allowed values: Unconfigured, IP_Routed, IP_Bridged -func (client *WANIPConnection1) GetConnectionTypeInfo() (NewConnectionType string, NewPossibleConnectionTypes string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewConnectionType string - - NewPossibleConnectionTypes string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetConnectionTypeInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewConnectionType, err = soap.UnmarshalString(response.NewConnectionType); err != nil { - return - } - if NewPossibleConnectionTypes, err = soap.UnmarshalString(response.NewPossibleConnectionTypes); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) RequestConnection() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "RequestConnection", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) RequestTermination() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "RequestTermination", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) ForceTermination() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "ForceTermination", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) SetAutoDisconnectTime(NewAutoDisconnectTime uint32) (err error) { - // Request structure. - request := &struct { - NewAutoDisconnectTime string - }{} - // BEGIN Marshal arguments into request. - - if request.NewAutoDisconnectTime, err = soap.MarshalUi4(NewAutoDisconnectTime); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetAutoDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) SetIdleDisconnectTime(NewIdleDisconnectTime uint32) (err error) { - // Request structure. - request := &struct { - NewIdleDisconnectTime string - }{} - // BEGIN Marshal arguments into request. - - if request.NewIdleDisconnectTime, err = soap.MarshalUi4(NewIdleDisconnectTime); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetIdleDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) SetWarnDisconnectDelay(NewWarnDisconnectDelay uint32) (err error) { - // Request structure. - request := &struct { - NewWarnDisconnectDelay string - }{} - // BEGIN Marshal arguments into request. - - if request.NewWarnDisconnectDelay, err = soap.MarshalUi4(NewWarnDisconnectDelay); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetWarnDisconnectDelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewConnectionStatus: allowed values: Unconfigured, Connected, Disconnected -// -// * NewLastConnectionError: allowed values: ERROR_NONE -func (client *WANIPConnection1) GetStatusInfo() (NewConnectionStatus string, NewLastConnectionError string, NewUptime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewConnectionStatus string - - NewLastConnectionError string - - NewUptime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetStatusInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewConnectionStatus, err = soap.UnmarshalString(response.NewConnectionStatus); err != nil { - return - } - if NewLastConnectionError, err = soap.UnmarshalString(response.NewLastConnectionError); err != nil { - return - } - if NewUptime, err = soap.UnmarshalUi4(response.NewUptime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) GetAutoDisconnectTime() (NewAutoDisconnectTime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewAutoDisconnectTime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetAutoDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewAutoDisconnectTime, err = soap.UnmarshalUi4(response.NewAutoDisconnectTime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) GetIdleDisconnectTime() (NewIdleDisconnectTime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewIdleDisconnectTime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetIdleDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewIdleDisconnectTime, err = soap.UnmarshalUi4(response.NewIdleDisconnectTime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) GetWarnDisconnectDelay() (NewWarnDisconnectDelay uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewWarnDisconnectDelay string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetWarnDisconnectDelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewWarnDisconnectDelay, err = soap.UnmarshalUi4(response.NewWarnDisconnectDelay); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) GetNATRSIPStatus() (NewRSIPAvailable bool, NewNATEnabled bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewRSIPAvailable string - - NewNATEnabled string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetNATRSIPStatus", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewRSIPAvailable, err = soap.UnmarshalBoolean(response.NewRSIPAvailable); err != nil { - return - } - if NewNATEnabled, err = soap.UnmarshalBoolean(response.NewNATEnabled); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewProtocol: allowed values: TCP, UDP -func (client *WANIPConnection1) GetGenericPortMappingEntry(NewPortMappingIndex uint16) (NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) { - // Request structure. - request := &struct { - NewPortMappingIndex string - }{} - // BEGIN Marshal arguments into request. - - if request.NewPortMappingIndex, err = soap.MarshalUi2(NewPortMappingIndex); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetGenericPortMappingEntry", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewRemoteHost, err = soap.UnmarshalString(response.NewRemoteHost); err != nil { - return - } - if NewExternalPort, err = soap.UnmarshalUi2(response.NewExternalPort); err != nil { - return - } - if NewProtocol, err = soap.UnmarshalString(response.NewProtocol); err != nil { - return - } - if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil { - return - } - if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil { - return - } - if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil { - return - } - if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil { - return - } - if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANIPConnection1) GetSpecificPortMappingEntry(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetSpecificPortMappingEntry", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil { - return - } - if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil { - return - } - if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil { - return - } - if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil { - return - } - if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANIPConnection1) AddPortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32) (err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - if request.NewInternalPort, err = soap.MarshalUi2(NewInternalPort); err != nil { - return - } - if request.NewInternalClient, err = soap.MarshalString(NewInternalClient); err != nil { - return - } - if request.NewEnabled, err = soap.MarshalBoolean(NewEnabled); err != nil { - return - } - if request.NewPortMappingDescription, err = soap.MarshalString(NewPortMappingDescription); err != nil { - return - } - if request.NewLeaseDuration, err = soap.MarshalUi4(NewLeaseDuration); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "AddPortMapping", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANIPConnection1) DeletePortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "DeletePortMapping", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) GetExternalIPAddress() (NewExternalIPAddress string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewExternalIPAddress string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetExternalIPAddress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewExternalIPAddress, err = soap.UnmarshalString(response.NewExternalIPAddress); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANPOTSLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANPOTSLinkConfig:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANPOTSLinkConfig1 struct { - goupnp.ServiceClient -} - -// NewWANPOTSLinkConfig1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANPOTSLinkConfig1Clients() (clients []*WANPOTSLinkConfig1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANPOTSLinkConfig_1); err != nil { - return - } - clients = newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients) - return -} - -// NewWANPOTSLinkConfig1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANPOTSLinkConfig1ClientsByURL(loc *url.URL) ([]*WANPOTSLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANPOTSLinkConfig_1) - if err != nil { - return nil, err - } - return newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -// NewWANPOTSLinkConfig1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANPOTSLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANPOTSLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANPOTSLinkConfig_1) - if err != nil { - return nil, err - } - return newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -func newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANPOTSLinkConfig1 { - clients := make([]*WANPOTSLinkConfig1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANPOTSLinkConfig1{genericClients[i]} - } - return clients -} - -// -// Arguments: -// -// * NewLinkType: allowed values: PPP_Dialup - -func (client *WANPOTSLinkConfig1) SetISPInfo(NewISPPhoneNumber string, NewISPInfo string, NewLinkType string) (err error) { - // Request structure. - request := &struct { - NewISPPhoneNumber string - - NewISPInfo string - - NewLinkType string - }{} - // BEGIN Marshal arguments into request. - - if request.NewISPPhoneNumber, err = soap.MarshalString(NewISPPhoneNumber); err != nil { - return - } - if request.NewISPInfo, err = soap.MarshalString(NewISPInfo); err != nil { - return - } - if request.NewLinkType, err = soap.MarshalString(NewLinkType); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "SetISPInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) SetCallRetryInfo(NewNumberOfRetries uint32, NewDelayBetweenRetries uint32) (err error) { - // Request structure. - request := &struct { - NewNumberOfRetries string - - NewDelayBetweenRetries string - }{} - // BEGIN Marshal arguments into request. - - if request.NewNumberOfRetries, err = soap.MarshalUi4(NewNumberOfRetries); err != nil { - return - } - if request.NewDelayBetweenRetries, err = soap.MarshalUi4(NewDelayBetweenRetries); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "SetCallRetryInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewLinkType: allowed values: PPP_Dialup -func (client *WANPOTSLinkConfig1) GetISPInfo() (NewISPPhoneNumber string, NewISPInfo string, NewLinkType string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewISPPhoneNumber string - - NewISPInfo string - - NewLinkType string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetISPInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewISPPhoneNumber, err = soap.UnmarshalString(response.NewISPPhoneNumber); err != nil { - return - } - if NewISPInfo, err = soap.UnmarshalString(response.NewISPInfo); err != nil { - return - } - if NewLinkType, err = soap.UnmarshalString(response.NewLinkType); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) GetCallRetryInfo() (NewNumberOfRetries uint32, NewDelayBetweenRetries uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewNumberOfRetries string - - NewDelayBetweenRetries string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetCallRetryInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewNumberOfRetries, err = soap.UnmarshalUi4(response.NewNumberOfRetries); err != nil { - return - } - if NewDelayBetweenRetries, err = soap.UnmarshalUi4(response.NewDelayBetweenRetries); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) GetFclass() (NewFclass string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewFclass string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetFclass", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewFclass, err = soap.UnmarshalString(response.NewFclass); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) GetDataModulationSupported() (NewDataModulationSupported string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDataModulationSupported string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetDataModulationSupported", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDataModulationSupported, err = soap.UnmarshalString(response.NewDataModulationSupported); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) GetDataProtocol() (NewDataProtocol string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDataProtocol string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetDataProtocol", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDataProtocol, err = soap.UnmarshalString(response.NewDataProtocol); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) GetDataCompression() (NewDataCompression string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDataCompression string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetDataCompression", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDataCompression, err = soap.UnmarshalString(response.NewDataCompression); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) GetPlusVTRCommandSupported() (NewPlusVTRCommandSupported bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewPlusVTRCommandSupported string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetPlusVTRCommandSupported", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewPlusVTRCommandSupported, err = soap.UnmarshalBoolean(response.NewPlusVTRCommandSupported); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANPPPConnection1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANPPPConnection:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANPPPConnection1 struct { - goupnp.ServiceClient -} - -// NewWANPPPConnection1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANPPPConnection1Clients() (clients []*WANPPPConnection1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANPPPConnection_1); err != nil { - return - } - clients = newWANPPPConnection1ClientsFromGenericClients(genericClients) - return -} - -// NewWANPPPConnection1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANPPPConnection1ClientsByURL(loc *url.URL) ([]*WANPPPConnection1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANPPPConnection_1) - if err != nil { - return nil, err - } - return newWANPPPConnection1ClientsFromGenericClients(genericClients), nil -} - -// NewWANPPPConnection1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANPPPConnection1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANPPPConnection1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANPPPConnection_1) - if err != nil { - return nil, err - } - return newWANPPPConnection1ClientsFromGenericClients(genericClients), nil -} - -func newWANPPPConnection1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANPPPConnection1 { - clients := make([]*WANPPPConnection1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANPPPConnection1{genericClients[i]} - } - return clients -} - -func (client *WANPPPConnection1) SetConnectionType(NewConnectionType string) (err error) { - // Request structure. - request := &struct { - NewConnectionType string - }{} - // BEGIN Marshal arguments into request. - - if request.NewConnectionType, err = soap.MarshalString(NewConnectionType); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetConnectionType", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewPossibleConnectionTypes: allowed values: Unconfigured, IP_Routed, DHCP_Spoofed, PPPoE_Bridged, PPTP_Relay, L2TP_Relay, PPPoE_Relay -func (client *WANPPPConnection1) GetConnectionTypeInfo() (NewConnectionType string, NewPossibleConnectionTypes string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewConnectionType string - - NewPossibleConnectionTypes string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetConnectionTypeInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewConnectionType, err = soap.UnmarshalString(response.NewConnectionType); err != nil { - return - } - if NewPossibleConnectionTypes, err = soap.UnmarshalString(response.NewPossibleConnectionTypes); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) ConfigureConnection(NewUserName string, NewPassword string) (err error) { - // Request structure. - request := &struct { - NewUserName string - - NewPassword string - }{} - // BEGIN Marshal arguments into request. - - if request.NewUserName, err = soap.MarshalString(NewUserName); err != nil { - return - } - if request.NewPassword, err = soap.MarshalString(NewPassword); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "ConfigureConnection", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) RequestConnection() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "RequestConnection", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) RequestTermination() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "RequestTermination", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) ForceTermination() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "ForceTermination", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) SetAutoDisconnectTime(NewAutoDisconnectTime uint32) (err error) { - // Request structure. - request := &struct { - NewAutoDisconnectTime string - }{} - // BEGIN Marshal arguments into request. - - if request.NewAutoDisconnectTime, err = soap.MarshalUi4(NewAutoDisconnectTime); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetAutoDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) SetIdleDisconnectTime(NewIdleDisconnectTime uint32) (err error) { - // Request structure. - request := &struct { - NewIdleDisconnectTime string - }{} - // BEGIN Marshal arguments into request. - - if request.NewIdleDisconnectTime, err = soap.MarshalUi4(NewIdleDisconnectTime); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetIdleDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) SetWarnDisconnectDelay(NewWarnDisconnectDelay uint32) (err error) { - // Request structure. - request := &struct { - NewWarnDisconnectDelay string - }{} - // BEGIN Marshal arguments into request. - - if request.NewWarnDisconnectDelay, err = soap.MarshalUi4(NewWarnDisconnectDelay); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetWarnDisconnectDelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewConnectionStatus: allowed values: Unconfigured, Connected, Disconnected -// -// * NewLastConnectionError: allowed values: ERROR_NONE -func (client *WANPPPConnection1) GetStatusInfo() (NewConnectionStatus string, NewLastConnectionError string, NewUptime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewConnectionStatus string - - NewLastConnectionError string - - NewUptime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetStatusInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewConnectionStatus, err = soap.UnmarshalString(response.NewConnectionStatus); err != nil { - return - } - if NewLastConnectionError, err = soap.UnmarshalString(response.NewLastConnectionError); err != nil { - return - } - if NewUptime, err = soap.UnmarshalUi4(response.NewUptime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetLinkLayerMaxBitRates() (NewUpstreamMaxBitRate uint32, NewDownstreamMaxBitRate uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewUpstreamMaxBitRate string - - NewDownstreamMaxBitRate string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetLinkLayerMaxBitRates", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewUpstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewUpstreamMaxBitRate); err != nil { - return - } - if NewDownstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewDownstreamMaxBitRate); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetPPPEncryptionProtocol() (NewPPPEncryptionProtocol string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewPPPEncryptionProtocol string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPPPEncryptionProtocol", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewPPPEncryptionProtocol, err = soap.UnmarshalString(response.NewPPPEncryptionProtocol); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetPPPCompressionProtocol() (NewPPPCompressionProtocol string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewPPPCompressionProtocol string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPPPCompressionProtocol", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewPPPCompressionProtocol, err = soap.UnmarshalString(response.NewPPPCompressionProtocol); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetPPPAuthenticationProtocol() (NewPPPAuthenticationProtocol string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewPPPAuthenticationProtocol string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPPPAuthenticationProtocol", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewPPPAuthenticationProtocol, err = soap.UnmarshalString(response.NewPPPAuthenticationProtocol); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetUserName() (NewUserName string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewUserName string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetUserName", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewUserName, err = soap.UnmarshalString(response.NewUserName); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetPassword() (NewPassword string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewPassword string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPassword", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewPassword, err = soap.UnmarshalString(response.NewPassword); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetAutoDisconnectTime() (NewAutoDisconnectTime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewAutoDisconnectTime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetAutoDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewAutoDisconnectTime, err = soap.UnmarshalUi4(response.NewAutoDisconnectTime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetIdleDisconnectTime() (NewIdleDisconnectTime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewIdleDisconnectTime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetIdleDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewIdleDisconnectTime, err = soap.UnmarshalUi4(response.NewIdleDisconnectTime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetWarnDisconnectDelay() (NewWarnDisconnectDelay uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewWarnDisconnectDelay string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetWarnDisconnectDelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewWarnDisconnectDelay, err = soap.UnmarshalUi4(response.NewWarnDisconnectDelay); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetNATRSIPStatus() (NewRSIPAvailable bool, NewNATEnabled bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewRSIPAvailable string - - NewNATEnabled string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetNATRSIPStatus", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewRSIPAvailable, err = soap.UnmarshalBoolean(response.NewRSIPAvailable); err != nil { - return - } - if NewNATEnabled, err = soap.UnmarshalBoolean(response.NewNATEnabled); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewProtocol: allowed values: TCP, UDP -func (client *WANPPPConnection1) GetGenericPortMappingEntry(NewPortMappingIndex uint16) (NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) { - // Request structure. - request := &struct { - NewPortMappingIndex string - }{} - // BEGIN Marshal arguments into request. - - if request.NewPortMappingIndex, err = soap.MarshalUi2(NewPortMappingIndex); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetGenericPortMappingEntry", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewRemoteHost, err = soap.UnmarshalString(response.NewRemoteHost); err != nil { - return - } - if NewExternalPort, err = soap.UnmarshalUi2(response.NewExternalPort); err != nil { - return - } - if NewProtocol, err = soap.UnmarshalString(response.NewProtocol); err != nil { - return - } - if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil { - return - } - if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil { - return - } - if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil { - return - } - if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil { - return - } - if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANPPPConnection1) GetSpecificPortMappingEntry(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetSpecificPortMappingEntry", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil { - return - } - if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil { - return - } - if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil { - return - } - if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil { - return - } - if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANPPPConnection1) AddPortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32) (err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - if request.NewInternalPort, err = soap.MarshalUi2(NewInternalPort); err != nil { - return - } - if request.NewInternalClient, err = soap.MarshalString(NewInternalClient); err != nil { - return - } - if request.NewEnabled, err = soap.MarshalBoolean(NewEnabled); err != nil { - return - } - if request.NewPortMappingDescription, err = soap.MarshalString(NewPortMappingDescription); err != nil { - return - } - if request.NewLeaseDuration, err = soap.MarshalUi4(NewLeaseDuration); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "AddPortMapping", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANPPPConnection1) DeletePortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "DeletePortMapping", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetExternalIPAddress() (NewExternalIPAddress string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewExternalIPAddress string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetExternalIPAddress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewExternalIPAddress, err = soap.UnmarshalString(response.NewExternalIPAddress); err != nil { - return - } - // END Unmarshal arguments from response. - return -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/internetgateway2/internetgateway2.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/internetgateway2/internetgateway2.go deleted file mode 100644 index 711e6936..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/internetgateway2/internetgateway2.go +++ /dev/null @@ -1,5378 +0,0 @@ -// Client for UPnP Device Control Protocol Internet Gateway Device v2. -// -// This DCP is documented in detail at: http://upnp.org/specs/gw/UPnP-gw-InternetGatewayDevice-v2-Device.pdf -// -// Typically, use one of the New* functions to create clients for services. -package internetgateway2 - -// Generated file - do not edit by hand. See README.md - -import ( - "net/url" - "time" - - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp" - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap" -) - -// Hack to avoid Go complaining if time isn't used. -var _ time.Time - -// Device URNs: -const ( - URN_LANDevice_1 = "urn:schemas-upnp-org:device:LANDevice:1" - URN_WANConnectionDevice_1 = "urn:schemas-upnp-org:device:WANConnectionDevice:1" - URN_WANConnectionDevice_2 = "urn:schemas-upnp-org:device:WANConnectionDevice:2" - URN_WANDevice_1 = "urn:schemas-upnp-org:device:WANDevice:1" - URN_WANDevice_2 = "urn:schemas-upnp-org:device:WANDevice:2" -) - -// Service URNs: -const ( - URN_DeviceProtection_1 = "urn:schemas-upnp-org:service:DeviceProtection:1" - URN_LANHostConfigManagement_1 = "urn:schemas-upnp-org:service:LANHostConfigManagement:1" - URN_Layer3Forwarding_1 = "urn:schemas-upnp-org:service:Layer3Forwarding:1" - URN_WANCableLinkConfig_1 = "urn:schemas-upnp-org:service:WANCableLinkConfig:1" - URN_WANCommonInterfaceConfig_1 = "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1" - URN_WANDSLLinkConfig_1 = "urn:schemas-upnp-org:service:WANDSLLinkConfig:1" - URN_WANEthernetLinkConfig_1 = "urn:schemas-upnp-org:service:WANEthernetLinkConfig:1" - URN_WANIPConnection_1 = "urn:schemas-upnp-org:service:WANIPConnection:1" - URN_WANIPConnection_2 = "urn:schemas-upnp-org:service:WANIPConnection:2" - URN_WANIPv6FirewallControl_1 = "urn:schemas-upnp-org:service:WANIPv6FirewallControl:1" - URN_WANPOTSLinkConfig_1 = "urn:schemas-upnp-org:service:WANPOTSLinkConfig:1" - URN_WANPPPConnection_1 = "urn:schemas-upnp-org:service:WANPPPConnection:1" -) - -// DeviceProtection1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:DeviceProtection:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type DeviceProtection1 struct { - goupnp.ServiceClient -} - -// NewDeviceProtection1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewDeviceProtection1Clients() (clients []*DeviceProtection1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_DeviceProtection_1); err != nil { - return - } - clients = newDeviceProtection1ClientsFromGenericClients(genericClients) - return -} - -// NewDeviceProtection1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewDeviceProtection1ClientsByURL(loc *url.URL) ([]*DeviceProtection1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_DeviceProtection_1) - if err != nil { - return nil, err - } - return newDeviceProtection1ClientsFromGenericClients(genericClients), nil -} - -// NewDeviceProtection1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewDeviceProtection1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*DeviceProtection1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_DeviceProtection_1) - if err != nil { - return nil, err - } - return newDeviceProtection1ClientsFromGenericClients(genericClients), nil -} - -func newDeviceProtection1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*DeviceProtection1 { - clients := make([]*DeviceProtection1, len(genericClients)) - for i := range genericClients { - clients[i] = &DeviceProtection1{genericClients[i]} - } - return clients -} - -func (client *DeviceProtection1) SendSetupMessage(ProtocolType string, InMessage []byte) (OutMessage []byte, err error) { - // Request structure. - request := &struct { - ProtocolType string - - InMessage string - }{} - // BEGIN Marshal arguments into request. - - if request.ProtocolType, err = soap.MarshalString(ProtocolType); err != nil { - return - } - if request.InMessage, err = soap.MarshalBinBase64(InMessage); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - OutMessage string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "SendSetupMessage", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if OutMessage, err = soap.UnmarshalBinBase64(response.OutMessage); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *DeviceProtection1) GetSupportedProtocols() (ProtocolList string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - ProtocolList string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "GetSupportedProtocols", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if ProtocolList, err = soap.UnmarshalString(response.ProtocolList); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *DeviceProtection1) GetAssignedRoles() (RoleList string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - RoleList string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "GetAssignedRoles", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if RoleList, err = soap.UnmarshalString(response.RoleList); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *DeviceProtection1) GetRolesForAction(DeviceUDN string, ServiceId string, ActionName string) (RoleList string, RestrictedRoleList string, err error) { - // Request structure. - request := &struct { - DeviceUDN string - - ServiceId string - - ActionName string - }{} - // BEGIN Marshal arguments into request. - - if request.DeviceUDN, err = soap.MarshalString(DeviceUDN); err != nil { - return - } - if request.ServiceId, err = soap.MarshalString(ServiceId); err != nil { - return - } - if request.ActionName, err = soap.MarshalString(ActionName); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - RoleList string - - RestrictedRoleList string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "GetRolesForAction", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if RoleList, err = soap.UnmarshalString(response.RoleList); err != nil { - return - } - if RestrictedRoleList, err = soap.UnmarshalString(response.RestrictedRoleList); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *DeviceProtection1) GetUserLoginChallenge(ProtocolType string, Name string) (Salt []byte, Challenge []byte, err error) { - // Request structure. - request := &struct { - ProtocolType string - - Name string - }{} - // BEGIN Marshal arguments into request. - - if request.ProtocolType, err = soap.MarshalString(ProtocolType); err != nil { - return - } - if request.Name, err = soap.MarshalString(Name); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - Salt string - - Challenge string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "GetUserLoginChallenge", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if Salt, err = soap.UnmarshalBinBase64(response.Salt); err != nil { - return - } - if Challenge, err = soap.UnmarshalBinBase64(response.Challenge); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *DeviceProtection1) UserLogin(ProtocolType string, Challenge []byte, Authenticator []byte) (err error) { - // Request structure. - request := &struct { - ProtocolType string - - Challenge string - - Authenticator string - }{} - // BEGIN Marshal arguments into request. - - if request.ProtocolType, err = soap.MarshalString(ProtocolType); err != nil { - return - } - if request.Challenge, err = soap.MarshalBinBase64(Challenge); err != nil { - return - } - if request.Authenticator, err = soap.MarshalBinBase64(Authenticator); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "UserLogin", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *DeviceProtection1) UserLogout() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "UserLogout", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *DeviceProtection1) GetACLData() (ACL string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - ACL string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "GetACLData", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if ACL, err = soap.UnmarshalString(response.ACL); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *DeviceProtection1) AddIdentityList(IdentityList string) (IdentityListResult string, err error) { - // Request structure. - request := &struct { - IdentityList string - }{} - // BEGIN Marshal arguments into request. - - if request.IdentityList, err = soap.MarshalString(IdentityList); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - IdentityListResult string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "AddIdentityList", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if IdentityListResult, err = soap.UnmarshalString(response.IdentityListResult); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *DeviceProtection1) RemoveIdentity(Identity string) (err error) { - // Request structure. - request := &struct { - Identity string - }{} - // BEGIN Marshal arguments into request. - - if request.Identity, err = soap.MarshalString(Identity); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "RemoveIdentity", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *DeviceProtection1) SetUserLoginPassword(ProtocolType string, Name string, Stored []byte, Salt []byte) (err error) { - // Request structure. - request := &struct { - ProtocolType string - - Name string - - Stored string - - Salt string - }{} - // BEGIN Marshal arguments into request. - - if request.ProtocolType, err = soap.MarshalString(ProtocolType); err != nil { - return - } - if request.Name, err = soap.MarshalString(Name); err != nil { - return - } - if request.Stored, err = soap.MarshalBinBase64(Stored); err != nil { - return - } - if request.Salt, err = soap.MarshalBinBase64(Salt); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "SetUserLoginPassword", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *DeviceProtection1) AddRolesForIdentity(Identity string, RoleList string) (err error) { - // Request structure. - request := &struct { - Identity string - - RoleList string - }{} - // BEGIN Marshal arguments into request. - - if request.Identity, err = soap.MarshalString(Identity); err != nil { - return - } - if request.RoleList, err = soap.MarshalString(RoleList); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "AddRolesForIdentity", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *DeviceProtection1) RemoveRolesForIdentity(Identity string, RoleList string) (err error) { - // Request structure. - request := &struct { - Identity string - - RoleList string - }{} - // BEGIN Marshal arguments into request. - - if request.Identity, err = soap.MarshalString(Identity); err != nil { - return - } - if request.RoleList, err = soap.MarshalString(RoleList); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "RemoveRolesForIdentity", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// LANHostConfigManagement1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:LANHostConfigManagement:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type LANHostConfigManagement1 struct { - goupnp.ServiceClient -} - -// NewLANHostConfigManagement1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewLANHostConfigManagement1Clients() (clients []*LANHostConfigManagement1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_LANHostConfigManagement_1); err != nil { - return - } - clients = newLANHostConfigManagement1ClientsFromGenericClients(genericClients) - return -} - -// NewLANHostConfigManagement1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewLANHostConfigManagement1ClientsByURL(loc *url.URL) ([]*LANHostConfigManagement1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_LANHostConfigManagement_1) - if err != nil { - return nil, err - } - return newLANHostConfigManagement1ClientsFromGenericClients(genericClients), nil -} - -// NewLANHostConfigManagement1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewLANHostConfigManagement1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*LANHostConfigManagement1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_LANHostConfigManagement_1) - if err != nil { - return nil, err - } - return newLANHostConfigManagement1ClientsFromGenericClients(genericClients), nil -} - -func newLANHostConfigManagement1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*LANHostConfigManagement1 { - clients := make([]*LANHostConfigManagement1, len(genericClients)) - for i := range genericClients { - clients[i] = &LANHostConfigManagement1{genericClients[i]} - } - return clients -} - -func (client *LANHostConfigManagement1) SetDHCPServerConfigurable(NewDHCPServerConfigurable bool) (err error) { - // Request structure. - request := &struct { - NewDHCPServerConfigurable string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDHCPServerConfigurable, err = soap.MarshalBoolean(NewDHCPServerConfigurable); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDHCPServerConfigurable", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetDHCPServerConfigurable() (NewDHCPServerConfigurable bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDHCPServerConfigurable string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDHCPServerConfigurable", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDHCPServerConfigurable, err = soap.UnmarshalBoolean(response.NewDHCPServerConfigurable); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetDHCPRelay(NewDHCPRelay bool) (err error) { - // Request structure. - request := &struct { - NewDHCPRelay string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDHCPRelay, err = soap.MarshalBoolean(NewDHCPRelay); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDHCPRelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetDHCPRelay() (NewDHCPRelay bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDHCPRelay string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDHCPRelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDHCPRelay, err = soap.UnmarshalBoolean(response.NewDHCPRelay); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetSubnetMask(NewSubnetMask string) (err error) { - // Request structure. - request := &struct { - NewSubnetMask string - }{} - // BEGIN Marshal arguments into request. - - if request.NewSubnetMask, err = soap.MarshalString(NewSubnetMask); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetSubnetMask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetSubnetMask() (NewSubnetMask string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewSubnetMask string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetSubnetMask", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewSubnetMask, err = soap.UnmarshalString(response.NewSubnetMask); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetIPRouter(NewIPRouters string) (err error) { - // Request structure. - request := &struct { - NewIPRouters string - }{} - // BEGIN Marshal arguments into request. - - if request.NewIPRouters, err = soap.MarshalString(NewIPRouters); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetIPRouter", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) DeleteIPRouter(NewIPRouters string) (err error) { - // Request structure. - request := &struct { - NewIPRouters string - }{} - // BEGIN Marshal arguments into request. - - if request.NewIPRouters, err = soap.MarshalString(NewIPRouters); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "DeleteIPRouter", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetIPRoutersList() (NewIPRouters string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewIPRouters string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetIPRoutersList", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewIPRouters, err = soap.UnmarshalString(response.NewIPRouters); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetDomainName(NewDomainName string) (err error) { - // Request structure. - request := &struct { - NewDomainName string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDomainName, err = soap.MarshalString(NewDomainName); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDomainName", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetDomainName() (NewDomainName string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDomainName string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDomainName", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDomainName, err = soap.UnmarshalString(response.NewDomainName); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetAddressRange(NewMinAddress string, NewMaxAddress string) (err error) { - // Request structure. - request := &struct { - NewMinAddress string - - NewMaxAddress string - }{} - // BEGIN Marshal arguments into request. - - if request.NewMinAddress, err = soap.MarshalString(NewMinAddress); err != nil { - return - } - if request.NewMaxAddress, err = soap.MarshalString(NewMaxAddress); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetAddressRange", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetAddressRange() (NewMinAddress string, NewMaxAddress string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewMinAddress string - - NewMaxAddress string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetAddressRange", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewMinAddress, err = soap.UnmarshalString(response.NewMinAddress); err != nil { - return - } - if NewMaxAddress, err = soap.UnmarshalString(response.NewMaxAddress); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetReservedAddress(NewReservedAddresses string) (err error) { - // Request structure. - request := &struct { - NewReservedAddresses string - }{} - // BEGIN Marshal arguments into request. - - if request.NewReservedAddresses, err = soap.MarshalString(NewReservedAddresses); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetReservedAddress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) DeleteReservedAddress(NewReservedAddresses string) (err error) { - // Request structure. - request := &struct { - NewReservedAddresses string - }{} - // BEGIN Marshal arguments into request. - - if request.NewReservedAddresses, err = soap.MarshalString(NewReservedAddresses); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "DeleteReservedAddress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetReservedAddresses() (NewReservedAddresses string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewReservedAddresses string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetReservedAddresses", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewReservedAddresses, err = soap.UnmarshalString(response.NewReservedAddresses); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) SetDNSServer(NewDNSServers string) (err error) { - // Request structure. - request := &struct { - NewDNSServers string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDNSServers, err = soap.MarshalString(NewDNSServers); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDNSServer", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) DeleteDNSServer(NewDNSServers string) (err error) { - // Request structure. - request := &struct { - NewDNSServers string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDNSServers, err = soap.MarshalString(NewDNSServers); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "DeleteDNSServer", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *LANHostConfigManagement1) GetDNSServers() (NewDNSServers string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDNSServers string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDNSServers", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDNSServers, err = soap.UnmarshalString(response.NewDNSServers); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// Layer3Forwarding1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:Layer3Forwarding:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type Layer3Forwarding1 struct { - goupnp.ServiceClient -} - -// NewLayer3Forwarding1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewLayer3Forwarding1Clients() (clients []*Layer3Forwarding1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_Layer3Forwarding_1); err != nil { - return - } - clients = newLayer3Forwarding1ClientsFromGenericClients(genericClients) - return -} - -// NewLayer3Forwarding1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewLayer3Forwarding1ClientsByURL(loc *url.URL) ([]*Layer3Forwarding1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_Layer3Forwarding_1) - if err != nil { - return nil, err - } - return newLayer3Forwarding1ClientsFromGenericClients(genericClients), nil -} - -// NewLayer3Forwarding1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewLayer3Forwarding1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*Layer3Forwarding1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_Layer3Forwarding_1) - if err != nil { - return nil, err - } - return newLayer3Forwarding1ClientsFromGenericClients(genericClients), nil -} - -func newLayer3Forwarding1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*Layer3Forwarding1 { - clients := make([]*Layer3Forwarding1, len(genericClients)) - for i := range genericClients { - clients[i] = &Layer3Forwarding1{genericClients[i]} - } - return clients -} - -func (client *Layer3Forwarding1) SetDefaultConnectionService(NewDefaultConnectionService string) (err error) { - // Request structure. - request := &struct { - NewDefaultConnectionService string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDefaultConnectionService, err = soap.MarshalString(NewDefaultConnectionService); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_Layer3Forwarding_1, "SetDefaultConnectionService", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *Layer3Forwarding1) GetDefaultConnectionService() (NewDefaultConnectionService string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDefaultConnectionService string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_Layer3Forwarding_1, "GetDefaultConnectionService", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDefaultConnectionService, err = soap.UnmarshalString(response.NewDefaultConnectionService); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANCableLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANCableLinkConfig:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANCableLinkConfig1 struct { - goupnp.ServiceClient -} - -// NewWANCableLinkConfig1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANCableLinkConfig1Clients() (clients []*WANCableLinkConfig1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANCableLinkConfig_1); err != nil { - return - } - clients = newWANCableLinkConfig1ClientsFromGenericClients(genericClients) - return -} - -// NewWANCableLinkConfig1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANCableLinkConfig1ClientsByURL(loc *url.URL) ([]*WANCableLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANCableLinkConfig_1) - if err != nil { - return nil, err - } - return newWANCableLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -// NewWANCableLinkConfig1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANCableLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANCableLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANCableLinkConfig_1) - if err != nil { - return nil, err - } - return newWANCableLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -func newWANCableLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANCableLinkConfig1 { - clients := make([]*WANCableLinkConfig1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANCableLinkConfig1{genericClients[i]} - } - return clients -} - -// -// Return values: -// -// * NewCableLinkConfigState: allowed values: notReady, dsSyncComplete, usParamAcquired, rangingComplete, ipComplete, todEstablished, paramTransferComplete, registrationComplete, operational, accessDenied -// -// * NewLinkType: allowed values: Ethernet -func (client *WANCableLinkConfig1) GetCableLinkConfigInfo() (NewCableLinkConfigState string, NewLinkType string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewCableLinkConfigState string - - NewLinkType string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetCableLinkConfigInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewCableLinkConfigState, err = soap.UnmarshalString(response.NewCableLinkConfigState); err != nil { - return - } - if NewLinkType, err = soap.UnmarshalString(response.NewLinkType); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetDownstreamFrequency() (NewDownstreamFrequency uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDownstreamFrequency string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetDownstreamFrequency", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDownstreamFrequency, err = soap.UnmarshalUi4(response.NewDownstreamFrequency); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewDownstreamModulation: allowed values: 64QAM, 256QAM -func (client *WANCableLinkConfig1) GetDownstreamModulation() (NewDownstreamModulation string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDownstreamModulation string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetDownstreamModulation", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDownstreamModulation, err = soap.UnmarshalString(response.NewDownstreamModulation); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetUpstreamFrequency() (NewUpstreamFrequency uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewUpstreamFrequency string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamFrequency", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewUpstreamFrequency, err = soap.UnmarshalUi4(response.NewUpstreamFrequency); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewUpstreamModulation: allowed values: QPSK, 16QAM -func (client *WANCableLinkConfig1) GetUpstreamModulation() (NewUpstreamModulation string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewUpstreamModulation string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamModulation", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewUpstreamModulation, err = soap.UnmarshalString(response.NewUpstreamModulation); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetUpstreamChannelID() (NewUpstreamChannelID uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewUpstreamChannelID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamChannelID", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewUpstreamChannelID, err = soap.UnmarshalUi4(response.NewUpstreamChannelID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetUpstreamPowerLevel() (NewUpstreamPowerLevel uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewUpstreamPowerLevel string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamPowerLevel", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewUpstreamPowerLevel, err = soap.UnmarshalUi4(response.NewUpstreamPowerLevel); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetBPIEncryptionEnabled() (NewBPIEncryptionEnabled bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewBPIEncryptionEnabled string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetBPIEncryptionEnabled", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewBPIEncryptionEnabled, err = soap.UnmarshalBoolean(response.NewBPIEncryptionEnabled); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetConfigFile() (NewConfigFile string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewConfigFile string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetConfigFile", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewConfigFile, err = soap.UnmarshalString(response.NewConfigFile); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCableLinkConfig1) GetTFTPServer() (NewTFTPServer string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewTFTPServer string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetTFTPServer", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewTFTPServer, err = soap.UnmarshalString(response.NewTFTPServer); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANCommonInterfaceConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANCommonInterfaceConfig1 struct { - goupnp.ServiceClient -} - -// NewWANCommonInterfaceConfig1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANCommonInterfaceConfig1Clients() (clients []*WANCommonInterfaceConfig1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANCommonInterfaceConfig_1); err != nil { - return - } - clients = newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients) - return -} - -// NewWANCommonInterfaceConfig1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANCommonInterfaceConfig1ClientsByURL(loc *url.URL) ([]*WANCommonInterfaceConfig1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANCommonInterfaceConfig_1) - if err != nil { - return nil, err - } - return newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients), nil -} - -// NewWANCommonInterfaceConfig1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANCommonInterfaceConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANCommonInterfaceConfig1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANCommonInterfaceConfig_1) - if err != nil { - return nil, err - } - return newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients), nil -} - -func newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANCommonInterfaceConfig1 { - clients := make([]*WANCommonInterfaceConfig1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANCommonInterfaceConfig1{genericClients[i]} - } - return clients -} - -func (client *WANCommonInterfaceConfig1) SetEnabledForInternet(NewEnabledForInternet bool) (err error) { - // Request structure. - request := &struct { - NewEnabledForInternet string - }{} - // BEGIN Marshal arguments into request. - - if request.NewEnabledForInternet, err = soap.MarshalBoolean(NewEnabledForInternet); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "SetEnabledForInternet", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetEnabledForInternet() (NewEnabledForInternet bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewEnabledForInternet string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetEnabledForInternet", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewEnabledForInternet, err = soap.UnmarshalBoolean(response.NewEnabledForInternet); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewWANAccessType: allowed values: DSL, POTS, Cable, Ethernet -// -// * NewPhysicalLinkStatus: allowed values: Up, Down -func (client *WANCommonInterfaceConfig1) GetCommonLinkProperties() (NewWANAccessType string, NewLayer1UpstreamMaxBitRate uint32, NewLayer1DownstreamMaxBitRate uint32, NewPhysicalLinkStatus string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewWANAccessType string - - NewLayer1UpstreamMaxBitRate string - - NewLayer1DownstreamMaxBitRate string - - NewPhysicalLinkStatus string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetCommonLinkProperties", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewWANAccessType, err = soap.UnmarshalString(response.NewWANAccessType); err != nil { - return - } - if NewLayer1UpstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewLayer1UpstreamMaxBitRate); err != nil { - return - } - if NewLayer1DownstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewLayer1DownstreamMaxBitRate); err != nil { - return - } - if NewPhysicalLinkStatus, err = soap.UnmarshalString(response.NewPhysicalLinkStatus); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetWANAccessProvider() (NewWANAccessProvider string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewWANAccessProvider string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetWANAccessProvider", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewWANAccessProvider, err = soap.UnmarshalString(response.NewWANAccessProvider); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewMaximumActiveConnections: allowed value range: minimum=1, step=1 -func (client *WANCommonInterfaceConfig1) GetMaximumActiveConnections() (NewMaximumActiveConnections uint16, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewMaximumActiveConnections string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetMaximumActiveConnections", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewMaximumActiveConnections, err = soap.UnmarshalUi2(response.NewMaximumActiveConnections); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetTotalBytesSent() (NewTotalBytesSent uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewTotalBytesSent string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalBytesSent", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewTotalBytesSent, err = soap.UnmarshalUi4(response.NewTotalBytesSent); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetTotalBytesReceived() (NewTotalBytesReceived uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewTotalBytesReceived string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalBytesReceived", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewTotalBytesReceived, err = soap.UnmarshalUi4(response.NewTotalBytesReceived); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetTotalPacketsSent() (NewTotalPacketsSent uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewTotalPacketsSent string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalPacketsSent", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewTotalPacketsSent, err = soap.UnmarshalUi4(response.NewTotalPacketsSent); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetTotalPacketsReceived() (NewTotalPacketsReceived uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewTotalPacketsReceived string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalPacketsReceived", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewTotalPacketsReceived, err = soap.UnmarshalUi4(response.NewTotalPacketsReceived); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANCommonInterfaceConfig1) GetActiveConnection(NewActiveConnectionIndex uint16) (NewActiveConnDeviceContainer string, NewActiveConnectionServiceID string, err error) { - // Request structure. - request := &struct { - NewActiveConnectionIndex string - }{} - // BEGIN Marshal arguments into request. - - if request.NewActiveConnectionIndex, err = soap.MarshalUi2(NewActiveConnectionIndex); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewActiveConnDeviceContainer string - - NewActiveConnectionServiceID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetActiveConnection", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewActiveConnDeviceContainer, err = soap.UnmarshalString(response.NewActiveConnDeviceContainer); err != nil { - return - } - if NewActiveConnectionServiceID, err = soap.UnmarshalString(response.NewActiveConnectionServiceID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANDSLLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANDSLLinkConfig:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANDSLLinkConfig1 struct { - goupnp.ServiceClient -} - -// NewWANDSLLinkConfig1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANDSLLinkConfig1Clients() (clients []*WANDSLLinkConfig1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANDSLLinkConfig_1); err != nil { - return - } - clients = newWANDSLLinkConfig1ClientsFromGenericClients(genericClients) - return -} - -// NewWANDSLLinkConfig1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANDSLLinkConfig1ClientsByURL(loc *url.URL) ([]*WANDSLLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANDSLLinkConfig_1) - if err != nil { - return nil, err - } - return newWANDSLLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -// NewWANDSLLinkConfig1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANDSLLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANDSLLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANDSLLinkConfig_1) - if err != nil { - return nil, err - } - return newWANDSLLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -func newWANDSLLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANDSLLinkConfig1 { - clients := make([]*WANDSLLinkConfig1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANDSLLinkConfig1{genericClients[i]} - } - return clients -} - -func (client *WANDSLLinkConfig1) SetDSLLinkType(NewLinkType string) (err error) { - // Request structure. - request := &struct { - NewLinkType string - }{} - // BEGIN Marshal arguments into request. - - if request.NewLinkType, err = soap.MarshalString(NewLinkType); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetDSLLinkType", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewLinkStatus: allowed values: Up, Down -func (client *WANDSLLinkConfig1) GetDSLLinkInfo() (NewLinkType string, NewLinkStatus string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewLinkType string - - NewLinkStatus string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetDSLLinkInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewLinkType, err = soap.UnmarshalString(response.NewLinkType); err != nil { - return - } - if NewLinkStatus, err = soap.UnmarshalString(response.NewLinkStatus); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) GetAutoConfig() (NewAutoConfig bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewAutoConfig string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetAutoConfig", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewAutoConfig, err = soap.UnmarshalBoolean(response.NewAutoConfig); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) GetModulationType() (NewModulationType string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewModulationType string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetModulationType", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewModulationType, err = soap.UnmarshalString(response.NewModulationType); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) SetDestinationAddress(NewDestinationAddress string) (err error) { - // Request structure. - request := &struct { - NewDestinationAddress string - }{} - // BEGIN Marshal arguments into request. - - if request.NewDestinationAddress, err = soap.MarshalString(NewDestinationAddress); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetDestinationAddress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) GetDestinationAddress() (NewDestinationAddress string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDestinationAddress string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetDestinationAddress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDestinationAddress, err = soap.UnmarshalString(response.NewDestinationAddress); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) SetATMEncapsulation(NewATMEncapsulation string) (err error) { - // Request structure. - request := &struct { - NewATMEncapsulation string - }{} - // BEGIN Marshal arguments into request. - - if request.NewATMEncapsulation, err = soap.MarshalString(NewATMEncapsulation); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetATMEncapsulation", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) GetATMEncapsulation() (NewATMEncapsulation string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewATMEncapsulation string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetATMEncapsulation", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewATMEncapsulation, err = soap.UnmarshalString(response.NewATMEncapsulation); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) SetFCSPreserved(NewFCSPreserved bool) (err error) { - // Request structure. - request := &struct { - NewFCSPreserved string - }{} - // BEGIN Marshal arguments into request. - - if request.NewFCSPreserved, err = soap.MarshalBoolean(NewFCSPreserved); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetFCSPreserved", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANDSLLinkConfig1) GetFCSPreserved() (NewFCSPreserved bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewFCSPreserved string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetFCSPreserved", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewFCSPreserved, err = soap.UnmarshalBoolean(response.NewFCSPreserved); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANEthernetLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANEthernetLinkConfig:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANEthernetLinkConfig1 struct { - goupnp.ServiceClient -} - -// NewWANEthernetLinkConfig1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANEthernetLinkConfig1Clients() (clients []*WANEthernetLinkConfig1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANEthernetLinkConfig_1); err != nil { - return - } - clients = newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients) - return -} - -// NewWANEthernetLinkConfig1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANEthernetLinkConfig1ClientsByURL(loc *url.URL) ([]*WANEthernetLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANEthernetLinkConfig_1) - if err != nil { - return nil, err - } - return newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -// NewWANEthernetLinkConfig1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANEthernetLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANEthernetLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANEthernetLinkConfig_1) - if err != nil { - return nil, err - } - return newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -func newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANEthernetLinkConfig1 { - clients := make([]*WANEthernetLinkConfig1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANEthernetLinkConfig1{genericClients[i]} - } - return clients -} - -// -// Return values: -// -// * NewEthernetLinkStatus: allowed values: Up, Down -func (client *WANEthernetLinkConfig1) GetEthernetLinkStatus() (NewEthernetLinkStatus string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewEthernetLinkStatus string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANEthernetLinkConfig_1, "GetEthernetLinkStatus", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewEthernetLinkStatus, err = soap.UnmarshalString(response.NewEthernetLinkStatus); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANIPConnection1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANIPConnection:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANIPConnection1 struct { - goupnp.ServiceClient -} - -// NewWANIPConnection1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANIPConnection1Clients() (clients []*WANIPConnection1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANIPConnection_1); err != nil { - return - } - clients = newWANIPConnection1ClientsFromGenericClients(genericClients) - return -} - -// NewWANIPConnection1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANIPConnection1ClientsByURL(loc *url.URL) ([]*WANIPConnection1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANIPConnection_1) - if err != nil { - return nil, err - } - return newWANIPConnection1ClientsFromGenericClients(genericClients), nil -} - -// NewWANIPConnection1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANIPConnection1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANIPConnection1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANIPConnection_1) - if err != nil { - return nil, err - } - return newWANIPConnection1ClientsFromGenericClients(genericClients), nil -} - -func newWANIPConnection1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANIPConnection1 { - clients := make([]*WANIPConnection1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANIPConnection1{genericClients[i]} - } - return clients -} - -func (client *WANIPConnection1) SetConnectionType(NewConnectionType string) (err error) { - // Request structure. - request := &struct { - NewConnectionType string - }{} - // BEGIN Marshal arguments into request. - - if request.NewConnectionType, err = soap.MarshalString(NewConnectionType); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetConnectionType", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewPossibleConnectionTypes: allowed values: Unconfigured, IP_Routed, IP_Bridged -func (client *WANIPConnection1) GetConnectionTypeInfo() (NewConnectionType string, NewPossibleConnectionTypes string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewConnectionType string - - NewPossibleConnectionTypes string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetConnectionTypeInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewConnectionType, err = soap.UnmarshalString(response.NewConnectionType); err != nil { - return - } - if NewPossibleConnectionTypes, err = soap.UnmarshalString(response.NewPossibleConnectionTypes); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) RequestConnection() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "RequestConnection", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) RequestTermination() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "RequestTermination", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) ForceTermination() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "ForceTermination", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) SetAutoDisconnectTime(NewAutoDisconnectTime uint32) (err error) { - // Request structure. - request := &struct { - NewAutoDisconnectTime string - }{} - // BEGIN Marshal arguments into request. - - if request.NewAutoDisconnectTime, err = soap.MarshalUi4(NewAutoDisconnectTime); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetAutoDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) SetIdleDisconnectTime(NewIdleDisconnectTime uint32) (err error) { - // Request structure. - request := &struct { - NewIdleDisconnectTime string - }{} - // BEGIN Marshal arguments into request. - - if request.NewIdleDisconnectTime, err = soap.MarshalUi4(NewIdleDisconnectTime); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetIdleDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) SetWarnDisconnectDelay(NewWarnDisconnectDelay uint32) (err error) { - // Request structure. - request := &struct { - NewWarnDisconnectDelay string - }{} - // BEGIN Marshal arguments into request. - - if request.NewWarnDisconnectDelay, err = soap.MarshalUi4(NewWarnDisconnectDelay); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetWarnDisconnectDelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewConnectionStatus: allowed values: Unconfigured, Connected, Disconnected -// -// * NewLastConnectionError: allowed values: ERROR_NONE -func (client *WANIPConnection1) GetStatusInfo() (NewConnectionStatus string, NewLastConnectionError string, NewUptime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewConnectionStatus string - - NewLastConnectionError string - - NewUptime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetStatusInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewConnectionStatus, err = soap.UnmarshalString(response.NewConnectionStatus); err != nil { - return - } - if NewLastConnectionError, err = soap.UnmarshalString(response.NewLastConnectionError); err != nil { - return - } - if NewUptime, err = soap.UnmarshalUi4(response.NewUptime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) GetAutoDisconnectTime() (NewAutoDisconnectTime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewAutoDisconnectTime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetAutoDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewAutoDisconnectTime, err = soap.UnmarshalUi4(response.NewAutoDisconnectTime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) GetIdleDisconnectTime() (NewIdleDisconnectTime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewIdleDisconnectTime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetIdleDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewIdleDisconnectTime, err = soap.UnmarshalUi4(response.NewIdleDisconnectTime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) GetWarnDisconnectDelay() (NewWarnDisconnectDelay uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewWarnDisconnectDelay string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetWarnDisconnectDelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewWarnDisconnectDelay, err = soap.UnmarshalUi4(response.NewWarnDisconnectDelay); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) GetNATRSIPStatus() (NewRSIPAvailable bool, NewNATEnabled bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewRSIPAvailable string - - NewNATEnabled string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetNATRSIPStatus", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewRSIPAvailable, err = soap.UnmarshalBoolean(response.NewRSIPAvailable); err != nil { - return - } - if NewNATEnabled, err = soap.UnmarshalBoolean(response.NewNATEnabled); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewProtocol: allowed values: TCP, UDP -func (client *WANIPConnection1) GetGenericPortMappingEntry(NewPortMappingIndex uint16) (NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) { - // Request structure. - request := &struct { - NewPortMappingIndex string - }{} - // BEGIN Marshal arguments into request. - - if request.NewPortMappingIndex, err = soap.MarshalUi2(NewPortMappingIndex); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetGenericPortMappingEntry", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewRemoteHost, err = soap.UnmarshalString(response.NewRemoteHost); err != nil { - return - } - if NewExternalPort, err = soap.UnmarshalUi2(response.NewExternalPort); err != nil { - return - } - if NewProtocol, err = soap.UnmarshalString(response.NewProtocol); err != nil { - return - } - if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil { - return - } - if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil { - return - } - if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil { - return - } - if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil { - return - } - if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANIPConnection1) GetSpecificPortMappingEntry(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetSpecificPortMappingEntry", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil { - return - } - if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil { - return - } - if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil { - return - } - if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil { - return - } - if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANIPConnection1) AddPortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32) (err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - if request.NewInternalPort, err = soap.MarshalUi2(NewInternalPort); err != nil { - return - } - if request.NewInternalClient, err = soap.MarshalString(NewInternalClient); err != nil { - return - } - if request.NewEnabled, err = soap.MarshalBoolean(NewEnabled); err != nil { - return - } - if request.NewPortMappingDescription, err = soap.MarshalString(NewPortMappingDescription); err != nil { - return - } - if request.NewLeaseDuration, err = soap.MarshalUi4(NewLeaseDuration); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "AddPortMapping", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANIPConnection1) DeletePortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "DeletePortMapping", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection1) GetExternalIPAddress() (NewExternalIPAddress string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewExternalIPAddress string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetExternalIPAddress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewExternalIPAddress, err = soap.UnmarshalString(response.NewExternalIPAddress); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANIPConnection2 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANIPConnection:2". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANIPConnection2 struct { - goupnp.ServiceClient -} - -// NewWANIPConnection2Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANIPConnection2Clients() (clients []*WANIPConnection2, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANIPConnection_2); err != nil { - return - } - clients = newWANIPConnection2ClientsFromGenericClients(genericClients) - return -} - -// NewWANIPConnection2ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANIPConnection2ClientsByURL(loc *url.URL) ([]*WANIPConnection2, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANIPConnection_2) - if err != nil { - return nil, err - } - return newWANIPConnection2ClientsFromGenericClients(genericClients), nil -} - -// NewWANIPConnection2ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANIPConnection2ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANIPConnection2, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANIPConnection_2) - if err != nil { - return nil, err - } - return newWANIPConnection2ClientsFromGenericClients(genericClients), nil -} - -func newWANIPConnection2ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANIPConnection2 { - clients := make([]*WANIPConnection2, len(genericClients)) - for i := range genericClients { - clients[i] = &WANIPConnection2{genericClients[i]} - } - return clients -} - -func (client *WANIPConnection2) SetConnectionType(NewConnectionType string) (err error) { - // Request structure. - request := &struct { - NewConnectionType string - }{} - // BEGIN Marshal arguments into request. - - if request.NewConnectionType, err = soap.MarshalString(NewConnectionType); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "SetConnectionType", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection2) GetConnectionTypeInfo() (NewConnectionType string, NewPossibleConnectionTypes string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewConnectionType string - - NewPossibleConnectionTypes string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetConnectionTypeInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewConnectionType, err = soap.UnmarshalString(response.NewConnectionType); err != nil { - return - } - if NewPossibleConnectionTypes, err = soap.UnmarshalString(response.NewPossibleConnectionTypes); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection2) RequestConnection() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "RequestConnection", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection2) RequestTermination() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "RequestTermination", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection2) ForceTermination() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "ForceTermination", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection2) SetAutoDisconnectTime(NewAutoDisconnectTime uint32) (err error) { - // Request structure. - request := &struct { - NewAutoDisconnectTime string - }{} - // BEGIN Marshal arguments into request. - - if request.NewAutoDisconnectTime, err = soap.MarshalUi4(NewAutoDisconnectTime); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "SetAutoDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection2) SetIdleDisconnectTime(NewIdleDisconnectTime uint32) (err error) { - // Request structure. - request := &struct { - NewIdleDisconnectTime string - }{} - // BEGIN Marshal arguments into request. - - if request.NewIdleDisconnectTime, err = soap.MarshalUi4(NewIdleDisconnectTime); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "SetIdleDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection2) SetWarnDisconnectDelay(NewWarnDisconnectDelay uint32) (err error) { - // Request structure. - request := &struct { - NewWarnDisconnectDelay string - }{} - // BEGIN Marshal arguments into request. - - if request.NewWarnDisconnectDelay, err = soap.MarshalUi4(NewWarnDisconnectDelay); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "SetWarnDisconnectDelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewConnectionStatus: allowed values: Unconfigured, Connecting, Connected, PendingDisconnect, Disconnecting, Disconnected -// -// * NewLastConnectionError: allowed values: ERROR_NONE, ERROR_COMMAND_ABORTED, ERROR_NOT_ENABLED_FOR_INTERNET, ERROR_USER_DISCONNECT, ERROR_ISP_DISCONNECT, ERROR_IDLE_DISCONNECT, ERROR_FORCED_DISCONNECT, ERROR_NO_CARRIER, ERROR_IP_CONFIGURATION, ERROR_UNKNOWN -func (client *WANIPConnection2) GetStatusInfo() (NewConnectionStatus string, NewLastConnectionError string, NewUptime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewConnectionStatus string - - NewLastConnectionError string - - NewUptime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetStatusInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewConnectionStatus, err = soap.UnmarshalString(response.NewConnectionStatus); err != nil { - return - } - if NewLastConnectionError, err = soap.UnmarshalString(response.NewLastConnectionError); err != nil { - return - } - if NewUptime, err = soap.UnmarshalUi4(response.NewUptime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection2) GetAutoDisconnectTime() (NewAutoDisconnectTime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewAutoDisconnectTime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetAutoDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewAutoDisconnectTime, err = soap.UnmarshalUi4(response.NewAutoDisconnectTime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection2) GetIdleDisconnectTime() (NewIdleDisconnectTime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewIdleDisconnectTime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetIdleDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewIdleDisconnectTime, err = soap.UnmarshalUi4(response.NewIdleDisconnectTime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection2) GetWarnDisconnectDelay() (NewWarnDisconnectDelay uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewWarnDisconnectDelay string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetWarnDisconnectDelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewWarnDisconnectDelay, err = soap.UnmarshalUi4(response.NewWarnDisconnectDelay); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection2) GetNATRSIPStatus() (NewRSIPAvailable bool, NewNATEnabled bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewRSIPAvailable string - - NewNATEnabled string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetNATRSIPStatus", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewRSIPAvailable, err = soap.UnmarshalBoolean(response.NewRSIPAvailable); err != nil { - return - } - if NewNATEnabled, err = soap.UnmarshalBoolean(response.NewNATEnabled); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewProtocol: allowed values: TCP, UDP -func (client *WANIPConnection2) GetGenericPortMappingEntry(NewPortMappingIndex uint16) (NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) { - // Request structure. - request := &struct { - NewPortMappingIndex string - }{} - // BEGIN Marshal arguments into request. - - if request.NewPortMappingIndex, err = soap.MarshalUi2(NewPortMappingIndex); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetGenericPortMappingEntry", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewRemoteHost, err = soap.UnmarshalString(response.NewRemoteHost); err != nil { - return - } - if NewExternalPort, err = soap.UnmarshalUi2(response.NewExternalPort); err != nil { - return - } - if NewProtocol, err = soap.UnmarshalString(response.NewProtocol); err != nil { - return - } - if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil { - return - } - if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil { - return - } - if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil { - return - } - if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil { - return - } - if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANIPConnection2) GetSpecificPortMappingEntry(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetSpecificPortMappingEntry", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil { - return - } - if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil { - return - } - if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil { - return - } - if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil { - return - } - if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANIPConnection2) AddPortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32) (err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - if request.NewInternalPort, err = soap.MarshalUi2(NewInternalPort); err != nil { - return - } - if request.NewInternalClient, err = soap.MarshalString(NewInternalClient); err != nil { - return - } - if request.NewEnabled, err = soap.MarshalBoolean(NewEnabled); err != nil { - return - } - if request.NewPortMappingDescription, err = soap.MarshalString(NewPortMappingDescription); err != nil { - return - } - if request.NewLeaseDuration, err = soap.MarshalUi4(NewLeaseDuration); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "AddPortMapping", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANIPConnection2) DeletePortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "DeletePortMapping", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANIPConnection2) DeletePortMappingRange(NewStartPort uint16, NewEndPort uint16, NewProtocol string, NewManage bool) (err error) { - // Request structure. - request := &struct { - NewStartPort string - - NewEndPort string - - NewProtocol string - - NewManage string - }{} - // BEGIN Marshal arguments into request. - - if request.NewStartPort, err = soap.MarshalUi2(NewStartPort); err != nil { - return - } - if request.NewEndPort, err = soap.MarshalUi2(NewEndPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - if request.NewManage, err = soap.MarshalBoolean(NewManage); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "DeletePortMappingRange", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPConnection2) GetExternalIPAddress() (NewExternalIPAddress string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewExternalIPAddress string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetExternalIPAddress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewExternalIPAddress, err = soap.UnmarshalString(response.NewExternalIPAddress); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANIPConnection2) GetListOfPortMappings(NewStartPort uint16, NewEndPort uint16, NewProtocol string, NewManage bool, NewNumberOfPorts uint16) (NewPortListing string, err error) { - // Request structure. - request := &struct { - NewStartPort string - - NewEndPort string - - NewProtocol string - - NewManage string - - NewNumberOfPorts string - }{} - // BEGIN Marshal arguments into request. - - if request.NewStartPort, err = soap.MarshalUi2(NewStartPort); err != nil { - return - } - if request.NewEndPort, err = soap.MarshalUi2(NewEndPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - if request.NewManage, err = soap.MarshalBoolean(NewManage); err != nil { - return - } - if request.NewNumberOfPorts, err = soap.MarshalUi2(NewNumberOfPorts); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewPortListing string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetListOfPortMappings", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewPortListing, err = soap.UnmarshalString(response.NewPortListing); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANIPConnection2) AddAnyPortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32) (NewReservedPort uint16, err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - if request.NewInternalPort, err = soap.MarshalUi2(NewInternalPort); err != nil { - return - } - if request.NewInternalClient, err = soap.MarshalString(NewInternalClient); err != nil { - return - } - if request.NewEnabled, err = soap.MarshalBoolean(NewEnabled); err != nil { - return - } - if request.NewPortMappingDescription, err = soap.MarshalString(NewPortMappingDescription); err != nil { - return - } - if request.NewLeaseDuration, err = soap.MarshalUi4(NewLeaseDuration); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewReservedPort string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "AddAnyPortMapping", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewReservedPort, err = soap.UnmarshalUi2(response.NewReservedPort); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANIPv6FirewallControl1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANIPv6FirewallControl:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANIPv6FirewallControl1 struct { - goupnp.ServiceClient -} - -// NewWANIPv6FirewallControl1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANIPv6FirewallControl1Clients() (clients []*WANIPv6FirewallControl1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANIPv6FirewallControl_1); err != nil { - return - } - clients = newWANIPv6FirewallControl1ClientsFromGenericClients(genericClients) - return -} - -// NewWANIPv6FirewallControl1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANIPv6FirewallControl1ClientsByURL(loc *url.URL) ([]*WANIPv6FirewallControl1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANIPv6FirewallControl_1) - if err != nil { - return nil, err - } - return newWANIPv6FirewallControl1ClientsFromGenericClients(genericClients), nil -} - -// NewWANIPv6FirewallControl1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANIPv6FirewallControl1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANIPv6FirewallControl1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANIPv6FirewallControl_1) - if err != nil { - return nil, err - } - return newWANIPv6FirewallControl1ClientsFromGenericClients(genericClients), nil -} - -func newWANIPv6FirewallControl1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANIPv6FirewallControl1 { - clients := make([]*WANIPv6FirewallControl1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANIPv6FirewallControl1{genericClients[i]} - } - return clients -} - -func (client *WANIPv6FirewallControl1) GetFirewallStatus() (FirewallEnabled bool, InboundPinholeAllowed bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - FirewallEnabled string - - InboundPinholeAllowed string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "GetFirewallStatus", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if FirewallEnabled, err = soap.UnmarshalBoolean(response.FirewallEnabled); err != nil { - return - } - if InboundPinholeAllowed, err = soap.UnmarshalBoolean(response.InboundPinholeAllowed); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPv6FirewallControl1) GetOutboundPinholeTimeout(RemoteHost string, RemotePort uint16, InternalClient string, InternalPort uint16, Protocol uint16) (OutboundPinholeTimeout uint32, err error) { - // Request structure. - request := &struct { - RemoteHost string - - RemotePort string - - InternalClient string - - InternalPort string - - Protocol string - }{} - // BEGIN Marshal arguments into request. - - if request.RemoteHost, err = soap.MarshalString(RemoteHost); err != nil { - return - } - if request.RemotePort, err = soap.MarshalUi2(RemotePort); err != nil { - return - } - if request.InternalClient, err = soap.MarshalString(InternalClient); err != nil { - return - } - if request.InternalPort, err = soap.MarshalUi2(InternalPort); err != nil { - return - } - if request.Protocol, err = soap.MarshalUi2(Protocol); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - OutboundPinholeTimeout string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "GetOutboundPinholeTimeout", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if OutboundPinholeTimeout, err = soap.UnmarshalUi4(response.OutboundPinholeTimeout); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * LeaseTime: allowed value range: minimum=1, maximum=86400 - -func (client *WANIPv6FirewallControl1) AddPinhole(RemoteHost string, RemotePort uint16, InternalClient string, InternalPort uint16, Protocol uint16, LeaseTime uint32) (UniqueID uint16, err error) { - // Request structure. - request := &struct { - RemoteHost string - - RemotePort string - - InternalClient string - - InternalPort string - - Protocol string - - LeaseTime string - }{} - // BEGIN Marshal arguments into request. - - if request.RemoteHost, err = soap.MarshalString(RemoteHost); err != nil { - return - } - if request.RemotePort, err = soap.MarshalUi2(RemotePort); err != nil { - return - } - if request.InternalClient, err = soap.MarshalString(InternalClient); err != nil { - return - } - if request.InternalPort, err = soap.MarshalUi2(InternalPort); err != nil { - return - } - if request.Protocol, err = soap.MarshalUi2(Protocol); err != nil { - return - } - if request.LeaseTime, err = soap.MarshalUi4(LeaseTime); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - UniqueID string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "AddPinhole", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if UniqueID, err = soap.UnmarshalUi2(response.UniqueID); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewLeaseTime: allowed value range: minimum=1, maximum=86400 - -func (client *WANIPv6FirewallControl1) UpdatePinhole(UniqueID uint16, NewLeaseTime uint32) (err error) { - // Request structure. - request := &struct { - UniqueID string - - NewLeaseTime string - }{} - // BEGIN Marshal arguments into request. - - if request.UniqueID, err = soap.MarshalUi2(UniqueID); err != nil { - return - } - if request.NewLeaseTime, err = soap.MarshalUi4(NewLeaseTime); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "UpdatePinhole", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPv6FirewallControl1) DeletePinhole(UniqueID uint16) (err error) { - // Request structure. - request := &struct { - UniqueID string - }{} - // BEGIN Marshal arguments into request. - - if request.UniqueID, err = soap.MarshalUi2(UniqueID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "DeletePinhole", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANIPv6FirewallControl1) GetPinholePackets(UniqueID uint16) (PinholePackets uint32, err error) { - // Request structure. - request := &struct { - UniqueID string - }{} - // BEGIN Marshal arguments into request. - - if request.UniqueID, err = soap.MarshalUi2(UniqueID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - PinholePackets string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "GetPinholePackets", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if PinholePackets, err = soap.UnmarshalUi4(response.PinholePackets); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANIPv6FirewallControl1) CheckPinholeWorking(UniqueID uint16) (IsWorking bool, err error) { - // Request structure. - request := &struct { - UniqueID string - }{} - // BEGIN Marshal arguments into request. - - if request.UniqueID, err = soap.MarshalUi2(UniqueID); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - IsWorking string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "CheckPinholeWorking", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if IsWorking, err = soap.UnmarshalBoolean(response.IsWorking); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANPOTSLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANPOTSLinkConfig:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANPOTSLinkConfig1 struct { - goupnp.ServiceClient -} - -// NewWANPOTSLinkConfig1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANPOTSLinkConfig1Clients() (clients []*WANPOTSLinkConfig1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANPOTSLinkConfig_1); err != nil { - return - } - clients = newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients) - return -} - -// NewWANPOTSLinkConfig1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANPOTSLinkConfig1ClientsByURL(loc *url.URL) ([]*WANPOTSLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANPOTSLinkConfig_1) - if err != nil { - return nil, err - } - return newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -// NewWANPOTSLinkConfig1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANPOTSLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANPOTSLinkConfig1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANPOTSLinkConfig_1) - if err != nil { - return nil, err - } - return newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients), nil -} - -func newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANPOTSLinkConfig1 { - clients := make([]*WANPOTSLinkConfig1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANPOTSLinkConfig1{genericClients[i]} - } - return clients -} - -// -// Arguments: -// -// * NewLinkType: allowed values: PPP_Dialup - -func (client *WANPOTSLinkConfig1) SetISPInfo(NewISPPhoneNumber string, NewISPInfo string, NewLinkType string) (err error) { - // Request structure. - request := &struct { - NewISPPhoneNumber string - - NewISPInfo string - - NewLinkType string - }{} - // BEGIN Marshal arguments into request. - - if request.NewISPPhoneNumber, err = soap.MarshalString(NewISPPhoneNumber); err != nil { - return - } - if request.NewISPInfo, err = soap.MarshalString(NewISPInfo); err != nil { - return - } - if request.NewLinkType, err = soap.MarshalString(NewLinkType); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "SetISPInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) SetCallRetryInfo(NewNumberOfRetries uint32, NewDelayBetweenRetries uint32) (err error) { - // Request structure. - request := &struct { - NewNumberOfRetries string - - NewDelayBetweenRetries string - }{} - // BEGIN Marshal arguments into request. - - if request.NewNumberOfRetries, err = soap.MarshalUi4(NewNumberOfRetries); err != nil { - return - } - if request.NewDelayBetweenRetries, err = soap.MarshalUi4(NewDelayBetweenRetries); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "SetCallRetryInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewLinkType: allowed values: PPP_Dialup -func (client *WANPOTSLinkConfig1) GetISPInfo() (NewISPPhoneNumber string, NewISPInfo string, NewLinkType string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewISPPhoneNumber string - - NewISPInfo string - - NewLinkType string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetISPInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewISPPhoneNumber, err = soap.UnmarshalString(response.NewISPPhoneNumber); err != nil { - return - } - if NewISPInfo, err = soap.UnmarshalString(response.NewISPInfo); err != nil { - return - } - if NewLinkType, err = soap.UnmarshalString(response.NewLinkType); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) GetCallRetryInfo() (NewNumberOfRetries uint32, NewDelayBetweenRetries uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewNumberOfRetries string - - NewDelayBetweenRetries string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetCallRetryInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewNumberOfRetries, err = soap.UnmarshalUi4(response.NewNumberOfRetries); err != nil { - return - } - if NewDelayBetweenRetries, err = soap.UnmarshalUi4(response.NewDelayBetweenRetries); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) GetFclass() (NewFclass string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewFclass string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetFclass", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewFclass, err = soap.UnmarshalString(response.NewFclass); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) GetDataModulationSupported() (NewDataModulationSupported string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDataModulationSupported string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetDataModulationSupported", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDataModulationSupported, err = soap.UnmarshalString(response.NewDataModulationSupported); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) GetDataProtocol() (NewDataProtocol string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDataProtocol string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetDataProtocol", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDataProtocol, err = soap.UnmarshalString(response.NewDataProtocol); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) GetDataCompression() (NewDataCompression string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewDataCompression string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetDataCompression", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewDataCompression, err = soap.UnmarshalString(response.NewDataCompression); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPOTSLinkConfig1) GetPlusVTRCommandSupported() (NewPlusVTRCommandSupported bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewPlusVTRCommandSupported string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetPlusVTRCommandSupported", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewPlusVTRCommandSupported, err = soap.UnmarshalBoolean(response.NewPlusVTRCommandSupported); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// WANPPPConnection1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANPPPConnection:1". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type WANPPPConnection1 struct { - goupnp.ServiceClient -} - -// NewWANPPPConnection1Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func NewWANPPPConnection1Clients() (clients []*WANPPPConnection1, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients(URN_WANPPPConnection_1); err != nil { - return - } - clients = newWANPPPConnection1ClientsFromGenericClients(genericClients) - return -} - -// NewWANPPPConnection1ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func NewWANPPPConnection1ClientsByURL(loc *url.URL) ([]*WANPPPConnection1, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANPPPConnection_1) - if err != nil { - return nil, err - } - return newWANPPPConnection1ClientsFromGenericClients(genericClients), nil -} - -// NewWANPPPConnection1ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func NewWANPPPConnection1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANPPPConnection1, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANPPPConnection_1) - if err != nil { - return nil, err - } - return newWANPPPConnection1ClientsFromGenericClients(genericClients), nil -} - -func newWANPPPConnection1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANPPPConnection1 { - clients := make([]*WANPPPConnection1, len(genericClients)) - for i := range genericClients { - clients[i] = &WANPPPConnection1{genericClients[i]} - } - return clients -} - -func (client *WANPPPConnection1) SetConnectionType(NewConnectionType string) (err error) { - // Request structure. - request := &struct { - NewConnectionType string - }{} - // BEGIN Marshal arguments into request. - - if request.NewConnectionType, err = soap.MarshalString(NewConnectionType); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetConnectionType", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewPossibleConnectionTypes: allowed values: Unconfigured, IP_Routed, DHCP_Spoofed, PPPoE_Bridged, PPTP_Relay, L2TP_Relay, PPPoE_Relay -func (client *WANPPPConnection1) GetConnectionTypeInfo() (NewConnectionType string, NewPossibleConnectionTypes string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewConnectionType string - - NewPossibleConnectionTypes string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetConnectionTypeInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewConnectionType, err = soap.UnmarshalString(response.NewConnectionType); err != nil { - return - } - if NewPossibleConnectionTypes, err = soap.UnmarshalString(response.NewPossibleConnectionTypes); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) ConfigureConnection(NewUserName string, NewPassword string) (err error) { - // Request structure. - request := &struct { - NewUserName string - - NewPassword string - }{} - // BEGIN Marshal arguments into request. - - if request.NewUserName, err = soap.MarshalString(NewUserName); err != nil { - return - } - if request.NewPassword, err = soap.MarshalString(NewPassword); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "ConfigureConnection", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) RequestConnection() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "RequestConnection", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) RequestTermination() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "RequestTermination", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) ForceTermination() (err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "ForceTermination", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) SetAutoDisconnectTime(NewAutoDisconnectTime uint32) (err error) { - // Request structure. - request := &struct { - NewAutoDisconnectTime string - }{} - // BEGIN Marshal arguments into request. - - if request.NewAutoDisconnectTime, err = soap.MarshalUi4(NewAutoDisconnectTime); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetAutoDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) SetIdleDisconnectTime(NewIdleDisconnectTime uint32) (err error) { - // Request structure. - request := &struct { - NewIdleDisconnectTime string - }{} - // BEGIN Marshal arguments into request. - - if request.NewIdleDisconnectTime, err = soap.MarshalUi4(NewIdleDisconnectTime); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetIdleDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) SetWarnDisconnectDelay(NewWarnDisconnectDelay uint32) (err error) { - // Request structure. - request := &struct { - NewWarnDisconnectDelay string - }{} - // BEGIN Marshal arguments into request. - - if request.NewWarnDisconnectDelay, err = soap.MarshalUi4(NewWarnDisconnectDelay); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetWarnDisconnectDelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewConnectionStatus: allowed values: Unconfigured, Connected, Disconnected -// -// * NewLastConnectionError: allowed values: ERROR_NONE -func (client *WANPPPConnection1) GetStatusInfo() (NewConnectionStatus string, NewLastConnectionError string, NewUptime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewConnectionStatus string - - NewLastConnectionError string - - NewUptime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetStatusInfo", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewConnectionStatus, err = soap.UnmarshalString(response.NewConnectionStatus); err != nil { - return - } - if NewLastConnectionError, err = soap.UnmarshalString(response.NewLastConnectionError); err != nil { - return - } - if NewUptime, err = soap.UnmarshalUi4(response.NewUptime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetLinkLayerMaxBitRates() (NewUpstreamMaxBitRate uint32, NewDownstreamMaxBitRate uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewUpstreamMaxBitRate string - - NewDownstreamMaxBitRate string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetLinkLayerMaxBitRates", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewUpstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewUpstreamMaxBitRate); err != nil { - return - } - if NewDownstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewDownstreamMaxBitRate); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetPPPEncryptionProtocol() (NewPPPEncryptionProtocol string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewPPPEncryptionProtocol string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPPPEncryptionProtocol", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewPPPEncryptionProtocol, err = soap.UnmarshalString(response.NewPPPEncryptionProtocol); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetPPPCompressionProtocol() (NewPPPCompressionProtocol string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewPPPCompressionProtocol string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPPPCompressionProtocol", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewPPPCompressionProtocol, err = soap.UnmarshalString(response.NewPPPCompressionProtocol); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetPPPAuthenticationProtocol() (NewPPPAuthenticationProtocol string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewPPPAuthenticationProtocol string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPPPAuthenticationProtocol", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewPPPAuthenticationProtocol, err = soap.UnmarshalString(response.NewPPPAuthenticationProtocol); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetUserName() (NewUserName string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewUserName string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetUserName", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewUserName, err = soap.UnmarshalString(response.NewUserName); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetPassword() (NewPassword string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewPassword string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPassword", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewPassword, err = soap.UnmarshalString(response.NewPassword); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetAutoDisconnectTime() (NewAutoDisconnectTime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewAutoDisconnectTime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetAutoDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewAutoDisconnectTime, err = soap.UnmarshalUi4(response.NewAutoDisconnectTime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetIdleDisconnectTime() (NewIdleDisconnectTime uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewIdleDisconnectTime string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetIdleDisconnectTime", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewIdleDisconnectTime, err = soap.UnmarshalUi4(response.NewIdleDisconnectTime); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetWarnDisconnectDelay() (NewWarnDisconnectDelay uint32, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewWarnDisconnectDelay string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetWarnDisconnectDelay", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewWarnDisconnectDelay, err = soap.UnmarshalUi4(response.NewWarnDisconnectDelay); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetNATRSIPStatus() (NewRSIPAvailable bool, NewNATEnabled bool, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewRSIPAvailable string - - NewNATEnabled string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetNATRSIPStatus", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewRSIPAvailable, err = soap.UnmarshalBoolean(response.NewRSIPAvailable); err != nil { - return - } - if NewNATEnabled, err = soap.UnmarshalBoolean(response.NewNATEnabled); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Return values: -// -// * NewProtocol: allowed values: TCP, UDP -func (client *WANPPPConnection1) GetGenericPortMappingEntry(NewPortMappingIndex uint16) (NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) { - // Request structure. - request := &struct { - NewPortMappingIndex string - }{} - // BEGIN Marshal arguments into request. - - if request.NewPortMappingIndex, err = soap.MarshalUi2(NewPortMappingIndex); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetGenericPortMappingEntry", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewRemoteHost, err = soap.UnmarshalString(response.NewRemoteHost); err != nil { - return - } - if NewExternalPort, err = soap.UnmarshalUi2(response.NewExternalPort); err != nil { - return - } - if NewProtocol, err = soap.UnmarshalString(response.NewProtocol); err != nil { - return - } - if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil { - return - } - if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil { - return - } - if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil { - return - } - if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil { - return - } - if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANPPPConnection1) GetSpecificPortMappingEntry(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetSpecificPortMappingEntry", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil { - return - } - if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil { - return - } - if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil { - return - } - if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil { - return - } - if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil { - return - } - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANPPPConnection1) AddPortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32) (err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - - NewInternalPort string - - NewInternalClient string - - NewEnabled string - - NewPortMappingDescription string - - NewLeaseDuration string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - if request.NewInternalPort, err = soap.MarshalUi2(NewInternalPort); err != nil { - return - } - if request.NewInternalClient, err = soap.MarshalString(NewInternalClient); err != nil { - return - } - if request.NewEnabled, err = soap.MarshalBoolean(NewEnabled); err != nil { - return - } - if request.NewPortMappingDescription, err = soap.MarshalString(NewPortMappingDescription); err != nil { - return - } - if request.NewLeaseDuration, err = soap.MarshalUi4(NewLeaseDuration); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "AddPortMapping", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -// -// Arguments: -// -// * NewProtocol: allowed values: TCP, UDP - -func (client *WANPPPConnection1) DeletePortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (err error) { - // Request structure. - request := &struct { - NewRemoteHost string - - NewExternalPort string - - NewProtocol string - }{} - // BEGIN Marshal arguments into request. - - if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil { - return - } - if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil { - return - } - if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil { - return - } - // END Marshal arguments into request. - - // Response structure. - response := interface{}(nil) - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "DeletePortMapping", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - // END Unmarshal arguments from response. - return -} - -func (client *WANPPPConnection1) GetExternalIPAddress() (NewExternalIPAddress string, err error) { - // Request structure. - request := interface{}(nil) - // BEGIN Marshal arguments into request. - - // END Marshal arguments into request. - - // Response structure. - response := &struct { - NewExternalIPAddress string - }{} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetExternalIPAddress", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. - - if NewExternalIPAddress, err = soap.UnmarshalString(response.NewExternalIPAddress); err != nil { - return - } - // END Unmarshal arguments from response. - return -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/device.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/device.go deleted file mode 100644 index dffaa030..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/device.go +++ /dev/null @@ -1,184 +0,0 @@ -// This file contains XML structures for communicating with UPnP devices. - -package goupnp - -import ( - "encoding/xml" - "errors" - "fmt" - "net/url" - - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/scpd" - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap" -) - -const ( - DeviceXMLNamespace = "urn:schemas-upnp-org:device-1-0" -) - -// RootDevice is the device description as described by section 2.3 "Device -// description" in -// http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf -type RootDevice struct { - XMLName xml.Name `xml:"root"` - SpecVersion SpecVersion `xml:"specVersion"` - URLBase url.URL `xml:"-"` - URLBaseStr string `xml:"URLBase"` - Device Device `xml:"device"` -} - -// SetURLBase sets the URLBase for the RootDevice and its underlying components. -func (root *RootDevice) SetURLBase(urlBase *url.URL) { - root.URLBase = *urlBase - root.URLBaseStr = urlBase.String() - root.Device.SetURLBase(urlBase) -} - -// SpecVersion is part of a RootDevice, describes the version of the -// specification that the data adheres to. -type SpecVersion struct { - Major int32 `xml:"major"` - Minor int32 `xml:"minor"` -} - -// Device is a UPnP device. It can have child devices. -type Device struct { - DeviceType string `xml:"deviceType"` - FriendlyName string `xml:"friendlyName"` - Manufacturer string `xml:"manufacturer"` - ManufacturerURL URLField `xml:"manufacturerURL"` - ModelDescription string `xml:"modelDescription"` - ModelName string `xml:"modelName"` - ModelNumber string `xml:"modelNumber"` - ModelURL URLField `xml:"modelURL"` - SerialNumber string `xml:"serialNumber"` - UDN string `xml:"UDN"` - UPC string `xml:"UPC,omitempty"` - Icons []Icon `xml:"iconList>icon,omitempty"` - Services []Service `xml:"serviceList>service,omitempty"` - Devices []Device `xml:"deviceList>device,omitempty"` - - // Extra observed elements: - PresentationURL URLField `xml:"presentationURL"` -} - -// VisitDevices calls visitor for the device, and all its descendent devices. -func (device *Device) VisitDevices(visitor func(*Device)) { - visitor(device) - for i := range device.Devices { - device.Devices[i].VisitDevices(visitor) - } -} - -// VisitServices calls visitor for all Services under the device and all its -// descendent devices. -func (device *Device) VisitServices(visitor func(*Service)) { - device.VisitDevices(func(d *Device) { - for i := range d.Services { - visitor(&d.Services[i]) - } - }) -} - -// FindService finds all (if any) Services under the device and its descendents -// that have the given ServiceType. -func (device *Device) FindService(serviceType string) []*Service { - var services []*Service - device.VisitServices(func(s *Service) { - if s.ServiceType == serviceType { - services = append(services, s) - } - }) - return services -} - -// SetURLBase sets the URLBase for the Device and its underlying components. -func (device *Device) SetURLBase(urlBase *url.URL) { - device.ManufacturerURL.SetURLBase(urlBase) - device.ModelURL.SetURLBase(urlBase) - device.PresentationURL.SetURLBase(urlBase) - for i := range device.Icons { - device.Icons[i].SetURLBase(urlBase) - } - for i := range device.Services { - device.Services[i].SetURLBase(urlBase) - } - for i := range device.Devices { - device.Devices[i].SetURLBase(urlBase) - } -} - -func (device *Device) String() string { - return fmt.Sprintf("Device ID %s : %s (%s)", device.UDN, device.DeviceType, device.FriendlyName) -} - -// Icon is a representative image that a device might include in its -// description. -type Icon struct { - Mimetype string `xml:"mimetype"` - Width int32 `xml:"width"` - Height int32 `xml:"height"` - Depth int32 `xml:"depth"` - URL URLField `xml:"url"` -} - -// SetURLBase sets the URLBase for the Icon. -func (icon *Icon) SetURLBase(url *url.URL) { - icon.URL.SetURLBase(url) -} - -// Service is a service provided by a UPnP Device. -type Service struct { - ServiceType string `xml:"serviceType"` - ServiceId string `xml:"serviceId"` - SCPDURL URLField `xml:"SCPDURL"` - ControlURL URLField `xml:"controlURL"` - EventSubURL URLField `xml:"eventSubURL"` -} - -// SetURLBase sets the URLBase for the Service. -func (srv *Service) SetURLBase(urlBase *url.URL) { - srv.SCPDURL.SetURLBase(urlBase) - srv.ControlURL.SetURLBase(urlBase) - srv.EventSubURL.SetURLBase(urlBase) -} - -func (srv *Service) String() string { - return fmt.Sprintf("Service ID %s : %s", srv.ServiceId, srv.ServiceType) -} - -// RequestSCDP requests the SCPD (soap actions and state variables description) -// for the service. -func (srv *Service) RequestSCDP() (*scpd.SCPD, error) { - if !srv.SCPDURL.Ok { - return nil, errors.New("bad/missing SCPD URL, or no URLBase has been set") - } - s := new(scpd.SCPD) - if err := requestXml(srv.SCPDURL.URL.String(), scpd.SCPDXMLNamespace, s); err != nil { - return nil, err - } - return s, nil -} - -func (srv *Service) NewSOAPClient() *soap.SOAPClient { - return soap.NewSOAPClient(srv.ControlURL.URL) -} - -// URLField is a URL that is part of a device description. -type URLField struct { - URL url.URL `xml:"-"` - Ok bool `xml:"-"` - Str string `xml:",chardata"` -} - -func (uf *URLField) SetURLBase(urlBase *url.URL) { - refUrl, err := url.Parse(uf.Str) - if err != nil { - uf.URL = url.URL{} - uf.Ok = false - return - } - - uf.URL = *urlBase.ResolveReference(refUrl) - uf.Ok = true -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/example/example.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/example/example.go deleted file mode 100644 index df742022..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/example/example.go +++ /dev/null @@ -1,6 +0,0 @@ -// Serves as examples of using the goupnp library. -// -// To run examples and see the output for your local network, run the following -// command (specifically including the -v flag): -// go test -v github.com/huin/goupnp/example -package example diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/example/example_test.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/example/example_test.go deleted file mode 100644 index e45d236e..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/example/example_test.go +++ /dev/null @@ -1,93 +0,0 @@ -package example_test - -import ( - "fmt" - "net/url" - "os" - - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp" - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/internetgateway1" -) - -// Use discovered WANPPPConnection1 services to find external IP addresses. -func Example_WANPPPConnection1_GetExternalIPAddress() { - clients, errors, err := internetgateway1.NewWANPPPConnection1Clients() - extIPClients := make([]GetExternalIPAddresser, len(clients)) - for i, client := range clients { - extIPClients[i] = client - } - DisplayExternalIPResults(extIPClients, errors, err) - // Output: -} - -// Use discovered WANIPConnection services to find external IP addresses. -func Example_WANIPConnection_GetExternalIPAddress() { - clients, errors, err := internetgateway1.NewWANIPConnection1Clients() - extIPClients := make([]GetExternalIPAddresser, len(clients)) - for i, client := range clients { - extIPClients[i] = client - } - DisplayExternalIPResults(extIPClients, errors, err) - // Output: -} - -type GetExternalIPAddresser interface { - GetExternalIPAddress() (NewExternalIPAddress string, err error) - GetServiceClient() *goupnp.ServiceClient -} - -func DisplayExternalIPResults(clients []GetExternalIPAddresser, errors []error, err error) { - if err != nil { - fmt.Fprintln(os.Stderr, "Error discovering service with UPnP: ", err) - return - } - - if len(errors) > 0 { - fmt.Fprintf(os.Stderr, "Error discovering %d services:\n", len(errors)) - for _, err := range errors { - fmt.Println(" ", err) - } - } - - fmt.Fprintf(os.Stderr, "Successfully discovered %d services:\n", len(clients)) - for _, client := range clients { - device := &client.GetServiceClient().RootDevice.Device - - fmt.Fprintln(os.Stderr, " Device:", device.FriendlyName) - if addr, err := client.GetExternalIPAddress(); err != nil { - fmt.Fprintf(os.Stderr, " Failed to get external IP address: %v\n", err) - } else { - fmt.Fprintf(os.Stderr, " External IP address: %v\n", addr) - } - } -} - -func Example_ReuseDiscoveredDevice() { - var allMaybeRootDevices []goupnp.MaybeRootDevice - for _, urn := range []string{internetgateway1.URN_WANPPPConnection_1, internetgateway1.URN_WANIPConnection_1} { - maybeRootDevices, err := goupnp.DiscoverDevices(internetgateway1.URN_WANPPPConnection_1) - if err != nil { - fmt.Fprintf(os.Stderr, "Could not discover %s devices: %v\n", urn, err) - } - allMaybeRootDevices = append(allMaybeRootDevices, maybeRootDevices...) - } - locations := make([]*url.URL, 0, len(allMaybeRootDevices)) - fmt.Fprintf(os.Stderr, "Found %d devices:\n", len(allMaybeRootDevices)) - for _, maybeRootDevice := range allMaybeRootDevices { - if maybeRootDevice.Err != nil { - fmt.Fprintln(os.Stderr, " Failed to probe device at ", maybeRootDevice.Location.String()) - } else { - locations = append(locations, maybeRootDevice.Location) - fmt.Fprintln(os.Stderr, " Successfully probed device at ", maybeRootDevice.Location.String()) - } - } - fmt.Fprintf(os.Stderr, "Attempt to re-acquire %d devices:\n", len(locations)) - for _, location := range locations { - if _, err := goupnp.DeviceByURL(location); err != nil { - fmt.Fprintf(os.Stderr, " Failed to reacquire device at %s: %v\n", location.String(), err) - } else { - fmt.Fprintf(os.Stderr, " Successfully reacquired device at %s\n", location.String()) - } - } - // Output: -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/gotasks/specgen_task.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/gotasks/specgen_task.go deleted file mode 100644 index 921e8c85..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/gotasks/specgen_task.go +++ /dev/null @@ -1,603 +0,0 @@ -// +build gotask - -package gotasks - -import ( - "archive/zip" - "encoding/xml" - "fmt" - "io" - "log" - "net/http" - "os" - "path" - "path/filepath" - "regexp" - "strings" - "text/template" - - "github.com/huin/goupnp" - "github.com/huin/goupnp/scpd" - "github.com/huin/goutil/codegen" - "github.com/jingweno/gotask/tasking" -) - -var ( - deviceURNPrefix = "urn:schemas-upnp-org:device:" - serviceURNPrefix = "urn:schemas-upnp-org:service:" -) - -// DCP contains extra metadata to use when generating DCP source files. -type DCPMetadata struct { - Name string // What to name the Go DCP package. - OfficialName string // Official name for the DCP. - DocURL string // Optional - URL for futher documentation about the DCP. - XMLSpecURL string // Where to download the XML spec from. - // Any special-case functions to run against the DCP before writing it out. - Hacks []DCPHackFn -} - -var dcpMetadata = []DCPMetadata{ - { - Name: "internetgateway1", - OfficialName: "Internet Gateway Device v1", - DocURL: "http://upnp.org/specs/gw/UPnP-gw-InternetGatewayDevice-v1-Device.pdf", - XMLSpecURL: "http://upnp.org/specs/gw/UPnP-gw-IGD-TestFiles-20010921.zip", - }, - { - Name: "internetgateway2", - OfficialName: "Internet Gateway Device v2", - DocURL: "http://upnp.org/specs/gw/UPnP-gw-InternetGatewayDevice-v2-Device.pdf", - XMLSpecURL: "http://upnp.org/specs/gw/UPnP-gw-IGD-Testfiles-20110224.zip", - Hacks: []DCPHackFn{ - func(dcp *DCP) error { - missingURN := "urn:schemas-upnp-org:service:WANIPv6FirewallControl:1" - if _, ok := dcp.ServiceTypes[missingURN]; ok { - return nil - } - urnParts, err := extractURNParts(missingURN, serviceURNPrefix) - if err != nil { - return err - } - dcp.ServiceTypes[missingURN] = urnParts - return nil - }, - }, - }, - { - Name: "av1", - OfficialName: "MediaServer v1 and MediaRenderer v1", - DocURL: "http://upnp.org/specs/av/av1/", - XMLSpecURL: "http://upnp.org/specs/av/UPnP-av-TestFiles-20070927.zip", - }, -} - -type DCPHackFn func(*DCP) error - -// NAME -// specgen - generates Go code from the UPnP specification files. -// -// DESCRIPTION -// The specification is available for download from: -// -// OPTIONS -// -s, --specs_dir= -// Path to the specification storage directory. This is used to find (and download if not present) the specification ZIP files. Defaults to 'specs' -// -o, --out_dir= -// Path to the output directory. This is is where the DCP source files will be placed. Should normally correspond to the directory for github.com/huin/goupnp/dcps. Defaults to '../dcps' -// --nogofmt -// Disable passing the output through gofmt. Do this if debugging code output problems and needing to see the generated code prior to being passed through gofmt. -func TaskSpecgen(t *tasking.T) { - specsDir := fallbackStrValue("specs", t.Flags.String("specs_dir"), t.Flags.String("s")) - if err := os.MkdirAll(specsDir, os.ModePerm); err != nil { - t.Fatalf("Could not create specs-dir %q: %v\n", specsDir, err) - } - outDir := fallbackStrValue("../dcps", t.Flags.String("out_dir"), t.Flags.String("o")) - useGofmt := !t.Flags.Bool("nogofmt") - -NEXT_DCP: - for _, d := range dcpMetadata { - specFilename := filepath.Join(specsDir, d.Name+".zip") - err := acquireFile(specFilename, d.XMLSpecURL) - if err != nil { - t.Logf("Could not acquire spec for %s, skipping: %v\n", d.Name, err) - continue NEXT_DCP - } - dcp := newDCP(d) - if err := dcp.processZipFile(specFilename); err != nil { - log.Printf("Error processing spec for %s in file %q: %v", d.Name, specFilename, err) - continue NEXT_DCP - } - for i, hack := range d.Hacks { - if err := hack(dcp); err != nil { - log.Printf("Error with Hack[%d] for %s: %v", i, d.Name, err) - continue NEXT_DCP - } - } - dcp.writePackage(outDir, useGofmt) - if err := dcp.writePackage(outDir, useGofmt); err != nil { - log.Printf("Error writing package %q: %v", dcp.Metadata.Name, err) - continue NEXT_DCP - } - } -} - -func fallbackStrValue(defaultValue string, values ...string) string { - for _, v := range values { - if v != "" { - return v - } - } - return defaultValue -} - -func acquireFile(specFilename string, xmlSpecURL string) error { - if f, err := os.Open(specFilename); err != nil { - if !os.IsNotExist(err) { - return err - } - } else { - f.Close() - return nil - } - - resp, err := http.Get(xmlSpecURL) - if err != nil { - return err - } - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - return fmt.Errorf("could not download spec %q from %q: ", - specFilename, xmlSpecURL, resp.Status) - } - - tmpFilename := specFilename + ".download" - w, err := os.Create(tmpFilename) - if err != nil { - return err - } - defer w.Close() - - _, err = io.Copy(w, resp.Body) - if err != nil { - return err - } - - return os.Rename(tmpFilename, specFilename) -} - -// DCP collects together information about a UPnP Device Control Protocol. -type DCP struct { - Metadata DCPMetadata - DeviceTypes map[string]*URNParts - ServiceTypes map[string]*URNParts - Services []SCPDWithURN -} - -func newDCP(metadata DCPMetadata) *DCP { - return &DCP{ - Metadata: metadata, - DeviceTypes: make(map[string]*URNParts), - ServiceTypes: make(map[string]*URNParts), - } -} - -func (dcp *DCP) processZipFile(filename string) error { - archive, err := zip.OpenReader(filename) - if err != nil { - return fmt.Errorf("error reading zip file %q: %v", filename, err) - } - defer archive.Close() - for _, deviceFile := range globFiles("*/device/*.xml", archive) { - if err := dcp.processDeviceFile(deviceFile); err != nil { - return err - } - } - for _, scpdFile := range globFiles("*/service/*.xml", archive) { - if err := dcp.processSCPDFile(scpdFile); err != nil { - return err - } - } - return nil -} - -func (dcp *DCP) processDeviceFile(file *zip.File) error { - var device goupnp.Device - if err := unmarshalXmlFile(file, &device); err != nil { - return fmt.Errorf("error decoding device XML from file %q: %v", file.Name, err) - } - var mainErr error - device.VisitDevices(func(d *goupnp.Device) { - t := strings.TrimSpace(d.DeviceType) - if t != "" { - u, err := extractURNParts(t, deviceURNPrefix) - if err != nil { - mainErr = err - } - dcp.DeviceTypes[t] = u - } - }) - device.VisitServices(func(s *goupnp.Service) { - u, err := extractURNParts(s.ServiceType, serviceURNPrefix) - if err != nil { - mainErr = err - } - dcp.ServiceTypes[s.ServiceType] = u - }) - return mainErr -} - -func (dcp *DCP) writePackage(outDir string, useGofmt bool) error { - packageDirname := filepath.Join(outDir, dcp.Metadata.Name) - err := os.MkdirAll(packageDirname, os.ModePerm) - if err != nil && !os.IsExist(err) { - return err - } - packageFilename := filepath.Join(packageDirname, dcp.Metadata.Name+".go") - packageFile, err := os.Create(packageFilename) - if err != nil { - return err - } - var output io.WriteCloser = packageFile - if useGofmt { - if output, err = codegen.NewGofmtWriteCloser(output); err != nil { - packageFile.Close() - return err - } - } - if err = packageTmpl.Execute(output, dcp); err != nil { - output.Close() - return err - } - return output.Close() -} - -func (dcp *DCP) processSCPDFile(file *zip.File) error { - scpd := new(scpd.SCPD) - if err := unmarshalXmlFile(file, scpd); err != nil { - return fmt.Errorf("error decoding SCPD XML from file %q: %v", file.Name, err) - } - scpd.Clean() - urnParts, err := urnPartsFromSCPDFilename(file.Name) - if err != nil { - return fmt.Errorf("could not recognize SCPD filename %q: %v", file.Name, err) - } - dcp.Services = append(dcp.Services, SCPDWithURN{ - URNParts: urnParts, - SCPD: scpd, - }) - return nil -} - -type SCPDWithURN struct { - *URNParts - SCPD *scpd.SCPD -} - -func (s *SCPDWithURN) WrapArguments(args []*scpd.Argument) (argumentWrapperList, error) { - wrappedArgs := make(argumentWrapperList, len(args)) - for i, arg := range args { - wa, err := s.wrapArgument(arg) - if err != nil { - return nil, err - } - wrappedArgs[i] = wa - } - return wrappedArgs, nil -} - -func (s *SCPDWithURN) wrapArgument(arg *scpd.Argument) (*argumentWrapper, error) { - relVar := s.SCPD.GetStateVariable(arg.RelatedStateVariable) - if relVar == nil { - return nil, fmt.Errorf("no such state variable: %q, for argument %q", arg.RelatedStateVariable, arg.Name) - } - cnv, ok := typeConvs[relVar.DataType.Name] - if !ok { - return nil, fmt.Errorf("unknown data type: %q, for state variable %q, for argument %q", relVar.DataType.Type, arg.RelatedStateVariable, arg.Name) - } - return &argumentWrapper{ - Argument: *arg, - relVar: relVar, - conv: cnv, - }, nil -} - -type argumentWrapper struct { - scpd.Argument - relVar *scpd.StateVariable - conv conv -} - -func (arg *argumentWrapper) AsParameter() string { - return fmt.Sprintf("%s %s", arg.Name, arg.conv.ExtType) -} - -func (arg *argumentWrapper) HasDoc() bool { - rng := arg.relVar.AllowedValueRange - return ((rng != nil && (rng.Minimum != "" || rng.Maximum != "" || rng.Step != "")) || - len(arg.relVar.AllowedValues) > 0) -} - -func (arg *argumentWrapper) Document() string { - relVar := arg.relVar - if rng := relVar.AllowedValueRange; rng != nil { - var parts []string - if rng.Minimum != "" { - parts = append(parts, fmt.Sprintf("minimum=%s", rng.Minimum)) - } - if rng.Maximum != "" { - parts = append(parts, fmt.Sprintf("maximum=%s", rng.Maximum)) - } - if rng.Step != "" { - parts = append(parts, fmt.Sprintf("step=%s", rng.Step)) - } - return "allowed value range: " + strings.Join(parts, ", ") - } - if len(relVar.AllowedValues) != 0 { - return "allowed values: " + strings.Join(relVar.AllowedValues, ", ") - } - return "" -} - -func (arg *argumentWrapper) Marshal() string { - return fmt.Sprintf("soap.Marshal%s(%s)", arg.conv.FuncSuffix, arg.Name) -} - -func (arg *argumentWrapper) Unmarshal(objVar string) string { - return fmt.Sprintf("soap.Unmarshal%s(%s.%s)", arg.conv.FuncSuffix, objVar, arg.Name) -} - -type argumentWrapperList []*argumentWrapper - -func (args argumentWrapperList) HasDoc() bool { - for _, arg := range args { - if arg.HasDoc() { - return true - } - } - return false -} - -type conv struct { - FuncSuffix string - ExtType string -} - -// typeConvs maps from a SOAP type (e.g "fixed.14.4") to the function name -// suffix inside the soap module (e.g "Fixed14_4") and the Go type. -var typeConvs = map[string]conv{ - "ui1": conv{"Ui1", "uint8"}, - "ui2": conv{"Ui2", "uint16"}, - "ui4": conv{"Ui4", "uint32"}, - "i1": conv{"I1", "int8"}, - "i2": conv{"I2", "int16"}, - "i4": conv{"I4", "int32"}, - "int": conv{"Int", "int64"}, - "r4": conv{"R4", "float32"}, - "r8": conv{"R8", "float64"}, - "number": conv{"R8", "float64"}, // Alias for r8. - "fixed.14.4": conv{"Fixed14_4", "float64"}, - "float": conv{"R8", "float64"}, - "char": conv{"Char", "rune"}, - "string": conv{"String", "string"}, - "date": conv{"Date", "time.Time"}, - "dateTime": conv{"DateTime", "time.Time"}, - "dateTime.tz": conv{"DateTimeTz", "time.Time"}, - "time": conv{"TimeOfDay", "soap.TimeOfDay"}, - "time.tz": conv{"TimeOfDayTz", "soap.TimeOfDay"}, - "boolean": conv{"Boolean", "bool"}, - "bin.base64": conv{"BinBase64", "[]byte"}, - "bin.hex": conv{"BinHex", "[]byte"}, - "uri": conv{"URI", "*url.URL"}, -} - -func globFiles(pattern string, archive *zip.ReadCloser) []*zip.File { - var files []*zip.File - for _, f := range archive.File { - if matched, err := path.Match(pattern, f.Name); err != nil { - // This shouldn't happen - all patterns are hard-coded, errors in them - // are a programming error. - panic(err) - } else if matched { - files = append(files, f) - } - } - return files -} - -func unmarshalXmlFile(file *zip.File, data interface{}) error { - r, err := file.Open() - if err != nil { - return err - } - decoder := xml.NewDecoder(r) - r.Close() - return decoder.Decode(data) -} - -type URNParts struct { - URN string - Name string - Version string -} - -func (u *URNParts) Const() string { - return fmt.Sprintf("URN_%s_%s", u.Name, u.Version) -} - -// extractURNParts extracts the name and version from a URN string. -func extractURNParts(urn, expectedPrefix string) (*URNParts, error) { - if !strings.HasPrefix(urn, expectedPrefix) { - return nil, fmt.Errorf("%q does not have expected prefix %q", urn, expectedPrefix) - } - parts := strings.SplitN(strings.TrimPrefix(urn, expectedPrefix), ":", 2) - if len(parts) != 2 { - return nil, fmt.Errorf("%q does not have a name and version", urn) - } - name, version := parts[0], parts[1] - return &URNParts{urn, name, version}, nil -} - -var scpdFilenameRe = regexp.MustCompile( - `.*/([a-zA-Z0-9]+)([0-9]+)\.xml`) - -func urnPartsFromSCPDFilename(filename string) (*URNParts, error) { - parts := scpdFilenameRe.FindStringSubmatch(filename) - if len(parts) != 3 { - return nil, fmt.Errorf("SCPD filename %q does not have expected number of parts", filename) - } - name, version := parts[1], parts[2] - return &URNParts{ - URN: serviceURNPrefix + name + ":" + version, - Name: name, - Version: version, - }, nil -} - -var packageTmpl = template.Must(template.New("package").Parse(`{{$name := .Metadata.Name}} -// Client for UPnP Device Control Protocol {{.Metadata.OfficialName}}. -// {{if .Metadata.DocURL}} -// This DCP is documented in detail at: {{.Metadata.DocURL}}{{end}} -// -// Typically, use one of the New* functions to create clients for services. -package {{$name}} - -// Generated file - do not edit by hand. See README.md - - -import ( - "net/url" - "time" - - "github.com/huin/goupnp" - "github.com/huin/goupnp/soap" -) - -// Hack to avoid Go complaining if time isn't used. -var _ time.Time - -// Device URNs: -const ({{range .DeviceTypes}} - {{.Const}} = "{{.URN}}"{{end}} -) - -// Service URNs: -const ({{range .ServiceTypes}} - {{.Const}} = "{{.URN}}"{{end}} -) - -{{range .Services}} -{{$srv := .}} -{{$srvIdent := printf "%s%s" .Name .Version}} - -// {{$srvIdent}} is a client for UPnP SOAP service with URN "{{.URN}}". See -// goupnp.ServiceClient, which contains RootDevice and Service attributes which -// are provided for informational value. -type {{$srvIdent}} struct { - goupnp.ServiceClient -} - -// New{{$srvIdent}}Clients discovers instances of the service on the network, -// and returns clients to any that are found. errors will contain an error for -// any devices that replied but which could not be queried, and err will be set -// if the discovery process failed outright. -// -// This is a typical entry calling point into this package. -func New{{$srvIdent}}Clients() (clients []*{{$srvIdent}}, errors []error, err error) { - var genericClients []goupnp.ServiceClient - if genericClients, errors, err = goupnp.NewServiceClients({{$srv.Const}}); err != nil { - return - } - clients = new{{$srvIdent}}ClientsFromGenericClients(genericClients) - return -} - -// New{{$srvIdent}}ClientsByURL discovers instances of the service at the given -// URL, and returns clients to any that are found. An error is returned if -// there was an error probing the service. -// -// This is a typical entry calling point into this package when reusing an -// previously discovered service URL. -func New{{$srvIdent}}ClientsByURL(loc *url.URL) ([]*{{$srvIdent}}, error) { - genericClients, err := goupnp.NewServiceClientsByURL(loc, {{$srv.Const}}) - if err != nil { - return nil, err - } - return new{{$srvIdent}}ClientsFromGenericClients(genericClients), nil -} - -// New{{$srvIdent}}ClientsFromRootDevice discovers instances of the service in -// a given root device, and returns clients to any that are found. An error is -// returned if there was not at least one instance of the service within the -// device. The location parameter is simply assigned to the Location attribute -// of the wrapped ServiceClient(s). -// -// This is a typical entry calling point into this package when reusing an -// previously discovered root device. -func New{{$srvIdent}}ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*{{$srvIdent}}, error) { - genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, {{$srv.Const}}) - if err != nil { - return nil, err - } - return new{{$srvIdent}}ClientsFromGenericClients(genericClients), nil -} - -func new{{$srvIdent}}ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*{{$srvIdent}} { - clients := make([]*{{$srvIdent}}, len(genericClients)) - for i := range genericClients { - clients[i] = &{{$srvIdent}}{genericClients[i]} - } - return clients -} - -{{range .SCPD.Actions}}{{/* loops over *SCPDWithURN values */}} - -{{$winargs := $srv.WrapArguments .InputArguments}} -{{$woutargs := $srv.WrapArguments .OutputArguments}} -{{if $winargs.HasDoc}} -// -// Arguments:{{range $winargs}}{{if .HasDoc}} -// -// * {{.Name}}: {{.Document}}{{end}}{{end}}{{end}} -{{if $woutargs.HasDoc}} -// -// Return values:{{range $woutargs}}{{if .HasDoc}} -// -// * {{.Name}}: {{.Document}}{{end}}{{end}}{{end}} -func (client *{{$srvIdent}}) {{.Name}}({{range $winargs}}{{/* -*/}}{{.AsParameter}}, {{end}}{{/* -*/}}) ({{range $woutargs}}{{/* -*/}}{{.AsParameter}}, {{end}} err error) { - // Request structure. - request := {{if $winargs}}&{{template "argstruct" $winargs}}{{"{}"}}{{else}}{{"interface{}(nil)"}}{{end}} - // BEGIN Marshal arguments into request. -{{range $winargs}} - if request.{{.Name}}, err = {{.Marshal}}; err != nil { - return - }{{end}} - // END Marshal arguments into request. - - // Response structure. - response := {{if $woutargs}}&{{template "argstruct" $woutargs}}{{"{}"}}{{else}}{{"interface{}(nil)"}}{{end}} - - // Perform the SOAP call. - if err = client.SOAPClient.PerformAction({{$srv.URNParts.Const}}, "{{.Name}}", request, response); err != nil { - return - } - - // BEGIN Unmarshal arguments from response. -{{range $woutargs}} - if {{.Name}}, err = {{.Unmarshal "response"}}; err != nil { - return - }{{end}} - // END Unmarshal arguments from response. - return -} -{{end}}{{/* range .SCPD.Actions */}} -{{end}}{{/* range .Services */}} - -{{define "argstruct"}}struct {{"{"}}{{range .}} -{{.Name}} string -{{end}}{{"}"}}{{end}} -`)) diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/goupnp.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/goupnp.go deleted file mode 100644 index c5d6c4f6..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/goupnp.go +++ /dev/null @@ -1,131 +0,0 @@ -// goupnp is an implementation of a client for various UPnP services. -// -// For most uses, it is recommended to use the code-generated packages under -// github.com/huin/goupnp/dcps. Example use is shown at -// http://godoc.org/github.com/huin/goupnp/example -// -// A commonly used client is internetgateway1.WANPPPConnection1: -// http://godoc.org/github.com/huin/goupnp/dcps/internetgateway1#WANPPPConnection1 -// -// Currently only a couple of schemas have code generated for them from the -// UPnP example XML specifications. Not all methods will work on these clients, -// because the generated stubs contain the full set of specified methods from -// the XML specifications, and the discovered services will likely support a -// subset of those methods. -package goupnp - -import ( - "encoding/xml" - "fmt" - "net/http" - "net/url" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset" - - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/httpu" - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/ssdp" -) - -// ContextError is an error that wraps an error with some context information. -type ContextError struct { - Context string - Err error -} - -func (err ContextError) Error() string { - return fmt.Sprintf("%s: %v", err.Context, err.Err) -} - -// MaybeRootDevice contains either a RootDevice or an error. -type MaybeRootDevice struct { - // Set iff Err == nil. - Root *RootDevice - - // The location the device was discovered at. This can be used with - // DeviceByURL, assuming the device is still present. A location represents - // the discovery of a device, regardless of if there was an error probing it. - Location *url.URL - - // Any error encountered probing a discovered device. - Err error -} - -// DiscoverDevices attempts to find targets of the given type. This is -// typically the entry-point for this package. searchTarget is typically a URN -// in the form "urn:schemas-upnp-org:device:..." or -// "urn:schemas-upnp-org:service:...". A single error is returned for errors -// while attempting to send the query. An error or RootDevice is returned for -// each discovered RootDevice. -func DiscoverDevices(searchTarget string) ([]MaybeRootDevice, error) { - httpu, err := httpu.NewHTTPUClient() - if err != nil { - return nil, err - } - defer httpu.Close() - responses, err := ssdp.SSDPRawSearch(httpu, string(searchTarget), 2, 3) - if err != nil { - return nil, err - } - - results := make([]MaybeRootDevice, len(responses)) - for i, response := range responses { - maybe := &results[i] - loc, err := response.Location() - if err != nil { - maybe.Err = ContextError{"unexpected bad location from search", err} - continue - } - maybe.Location = loc - if root, err := DeviceByURL(loc); err != nil { - maybe.Err = err - } else { - maybe.Root = root - } - } - - return results, nil -} - -func DeviceByURL(loc *url.URL) (*RootDevice, error) { - locStr := loc.String() - root := new(RootDevice) - if err := requestXml(locStr, DeviceXMLNamespace, root); err != nil { - return nil, ContextError{fmt.Sprintf("error requesting root device details from %q", locStr), err} - } - var urlBaseStr string - if root.URLBaseStr != "" { - urlBaseStr = root.URLBaseStr - } else { - urlBaseStr = locStr - } - urlBase, err := url.Parse(urlBaseStr) - if err != nil { - return nil, ContextError{fmt.Sprintf("error parsing location URL %q", locStr), err} - } - root.SetURLBase(urlBase) - return root, nil -} - -func requestXml(url string, defaultSpace string, doc interface{}) error { - timeout := time.Duration(3 * time.Second) - client := http.Client{ - Timeout: timeout, - } - resp, err := client.Get(url) - if err != nil { - return err - } - defer resp.Body.Close() - - if resp.StatusCode != 200 { - return fmt.Errorf("goupnp: got response status %s from %q", - resp.Status, url) - } - - decoder := xml.NewDecoder(resp.Body) - decoder.DefaultSpace = defaultSpace - decoder.CharsetReader = charset.NewReaderLabel - - return decoder.Decode(doc) -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/httpu/httpu.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/httpu/httpu.go deleted file mode 100644 index 862c3def..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/httpu/httpu.go +++ /dev/null @@ -1,117 +0,0 @@ -package httpu - -import ( - "bufio" - "bytes" - "fmt" - "log" - "net" - "net/http" - "sync" - "time" -) - -// HTTPUClient is a client for dealing with HTTPU (HTTP over UDP). Its typical -// function is for HTTPMU, and particularly SSDP. -type HTTPUClient struct { - connLock sync.Mutex // Protects use of conn. - conn net.PacketConn -} - -// NewHTTPUClient creates a new HTTPUClient, opening up a new UDP socket for the -// purpose. -func NewHTTPUClient() (*HTTPUClient, error) { - conn, err := net.ListenPacket("udp", ":0") - if err != nil { - return nil, err - } - return &HTTPUClient{conn: conn}, nil -} - -// Close shuts down the client. The client will no longer be useful following -// this. -func (httpu *HTTPUClient) Close() error { - httpu.connLock.Lock() - defer httpu.connLock.Unlock() - return httpu.conn.Close() -} - -// Do performs a request. The timeout is how long to wait for before returning -// the responses that were received. An error is only returned for failing to -// send the request. Failures in receipt simply do not add to the resulting -// responses. -// -// Note that at present only one concurrent connection will happen per -// HTTPUClient. -func (httpu *HTTPUClient) Do(req *http.Request, timeout time.Duration, numSends int) ([]*http.Response, error) { - httpu.connLock.Lock() - defer httpu.connLock.Unlock() - - // Create the request. This is a subset of what http.Request.Write does - // deliberately to avoid creating extra fields which may confuse some - // devices. - var requestBuf bytes.Buffer - method := req.Method - if method == "" { - method = "GET" - } - if _, err := fmt.Fprintf(&requestBuf, "%s %s HTTP/1.1\r\n", method, req.URL.RequestURI()); err != nil { - return nil, err - } - if err := req.Header.Write(&requestBuf); err != nil { - return nil, err - } - if _, err := requestBuf.Write([]byte{'\r', '\n'}); err != nil { - return nil, err - } - - destAddr, err := net.ResolveUDPAddr("udp", req.Host) - if err != nil { - return nil, err - } - if err = httpu.conn.SetDeadline(time.Now().Add(timeout)); err != nil { - return nil, err - } - - // Send request. - for i := 0; i < numSends; i++ { - if n, err := httpu.conn.WriteTo(requestBuf.Bytes(), destAddr); err != nil { - return nil, err - } else if n < len(requestBuf.Bytes()) { - return nil, fmt.Errorf("httpu: wrote %d bytes rather than full %d in request", - n, len(requestBuf.Bytes())) - } - time.Sleep(5 * time.Millisecond) - } - - // Await responses until timeout. - var responses []*http.Response - responseBytes := make([]byte, 2048) - for { - // 2048 bytes should be sufficient for most networks. - n, _, err := httpu.conn.ReadFrom(responseBytes) - if err != nil { - if err, ok := err.(net.Error); ok { - if err.Timeout() { - break - } - if err.Temporary() { - // Sleep in case this is a persistent error to avoid pegging CPU until deadline. - time.Sleep(10 * time.Millisecond) - continue - } - } - return nil, err - } - - // Parse response. - response, err := http.ReadResponse(bufio.NewReader(bytes.NewBuffer(responseBytes[:n])), req) - if err != nil { - log.Print("httpu: error while parsing response: %v", err) - continue - } - - responses = append(responses, response) - } - return responses, err -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/httpu/serve.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/httpu/serve.go deleted file mode 100644 index 9f67af85..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/httpu/serve.go +++ /dev/null @@ -1,108 +0,0 @@ -package httpu - -import ( - "bufio" - "bytes" - "log" - "net" - "net/http" - "regexp" -) - -const ( - DefaultMaxMessageBytes = 2048 -) - -var ( - trailingWhitespaceRx = regexp.MustCompile(" +\r\n") - crlf = []byte("\r\n") -) - -// Handler is the interface by which received HTTPU messages are passed to -// handling code. -type Handler interface { - // ServeMessage is called for each HTTPU message received. peerAddr contains - // the address that the message was received from. - ServeMessage(r *http.Request) -} - -// HandlerFunc is a function-to-Handler adapter. -type HandlerFunc func(r *http.Request) - -func (f HandlerFunc) ServeMessage(r *http.Request) { - f(r) -} - -// A Server defines parameters for running an HTTPU server. -type Server struct { - Addr string // UDP address to listen on - Multicast bool // Should listen for multicast? - Interface *net.Interface // Network interface to listen on for multicast, nil for default multicast interface - Handler Handler // handler to invoke - MaxMessageBytes int // maximum number of bytes to read from a packet, DefaultMaxMessageBytes if 0 -} - -// ListenAndServe listens on the UDP network address srv.Addr. If srv.Multicast -// is true, then a multicast UDP listener will be used on srv.Interface (or -// default interface if nil). -func (srv *Server) ListenAndServe() error { - var err error - - var addr *net.UDPAddr - if addr, err = net.ResolveUDPAddr("udp", srv.Addr); err != nil { - log.Fatal(err) - } - - var conn net.PacketConn - if srv.Multicast { - if conn, err = net.ListenMulticastUDP("udp", srv.Interface, addr); err != nil { - return err - } - } else { - if conn, err = net.ListenUDP("udp", addr); err != nil { - return err - } - } - - return srv.Serve(conn) -} - -// Serve messages received on the given packet listener to the srv.Handler. -func (srv *Server) Serve(l net.PacketConn) error { - maxMessageBytes := DefaultMaxMessageBytes - if srv.MaxMessageBytes != 0 { - maxMessageBytes = srv.MaxMessageBytes - } - for { - buf := make([]byte, maxMessageBytes) - n, peerAddr, err := l.ReadFrom(buf) - if err != nil { - return err - } - buf = buf[:n] - - go func(buf []byte, peerAddr net.Addr) { - // At least one router's UPnP implementation has added a trailing space - // after "HTTP/1.1" - trim it. - buf = trailingWhitespaceRx.ReplaceAllLiteral(buf, crlf) - - req, err := http.ReadRequest(bufio.NewReader(bytes.NewBuffer(buf))) - if err != nil { - log.Printf("httpu: Failed to parse request: %v", err) - return - } - req.RemoteAddr = peerAddr.String() - srv.Handler.ServeMessage(req) - // No need to call req.Body.Close - underlying reader is bytes.Buffer. - }(buf, peerAddr) - } -} - -// Serve messages received on the given packet listener to the given handler. -func Serve(l net.PacketConn, handler Handler) error { - srv := Server{ - Handler: handler, - MaxMessageBytes: DefaultMaxMessageBytes, - } - return srv.Serve(l) -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/package.json b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/package.json deleted file mode 100644 index 36f1206e..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "goupnp", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "go-net", - "hash": "Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh", - "version": "0.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/huin/goupnp" - } -} \ No newline at end of file diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/scpd/scpd.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/scpd/scpd.go deleted file mode 100644 index c9d2e69e..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/scpd/scpd.go +++ /dev/null @@ -1,167 +0,0 @@ -package scpd - -import ( - "encoding/xml" - "strings" -) - -const ( - SCPDXMLNamespace = "urn:schemas-upnp-org:service-1-0" -) - -func cleanWhitespace(s *string) { - *s = strings.TrimSpace(*s) -} - -// SCPD is the service description as described by section 2.5 "Service -// description" in -// http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf -type SCPD struct { - XMLName xml.Name `xml:"scpd"` - ConfigId string `xml:"configId,attr"` - SpecVersion SpecVersion `xml:"specVersion"` - Actions []Action `xml:"actionList>action"` - StateVariables []StateVariable `xml:"serviceStateTable>stateVariable"` -} - -// Clean attempts to remove stray whitespace etc. in the structure. It seems -// unfortunately common for stray whitespace to be present in SCPD documents, -// this method attempts to make it easy to clean them out. -func (scpd *SCPD) Clean() { - cleanWhitespace(&scpd.ConfigId) - for i := range scpd.Actions { - scpd.Actions[i].clean() - } - for i := range scpd.StateVariables { - scpd.StateVariables[i].clean() - } -} - -func (scpd *SCPD) GetStateVariable(variable string) *StateVariable { - for i := range scpd.StateVariables { - v := &scpd.StateVariables[i] - if v.Name == variable { - return v - } - } - return nil -} - -func (scpd *SCPD) GetAction(action string) *Action { - for i := range scpd.Actions { - a := &scpd.Actions[i] - if a.Name == action { - return a - } - } - return nil -} - -// SpecVersion is part of a SCPD document, describes the version of the -// specification that the data adheres to. -type SpecVersion struct { - Major int32 `xml:"major"` - Minor int32 `xml:"minor"` -} - -type Action struct { - Name string `xml:"name"` - Arguments []Argument `xml:"argumentList>argument"` -} - -func (action *Action) clean() { - cleanWhitespace(&action.Name) - for i := range action.Arguments { - action.Arguments[i].clean() - } -} - -func (action *Action) InputArguments() []*Argument { - var result []*Argument - for i := range action.Arguments { - arg := &action.Arguments[i] - if arg.IsInput() { - result = append(result, arg) - } - } - return result -} - -func (action *Action) OutputArguments() []*Argument { - var result []*Argument - for i := range action.Arguments { - arg := &action.Arguments[i] - if arg.IsOutput() { - result = append(result, arg) - } - } - return result -} - -type Argument struct { - Name string `xml:"name"` - Direction string `xml:"direction"` // in|out - RelatedStateVariable string `xml:"relatedStateVariable"` // ? - Retval string `xml:"retval"` // ? -} - -func (arg *Argument) clean() { - cleanWhitespace(&arg.Name) - cleanWhitespace(&arg.Direction) - cleanWhitespace(&arg.RelatedStateVariable) - cleanWhitespace(&arg.Retval) -} - -func (arg *Argument) IsInput() bool { - return arg.Direction == "in" -} - -func (arg *Argument) IsOutput() bool { - return arg.Direction == "out" -} - -type StateVariable struct { - Name string `xml:"name"` - SendEvents string `xml:"sendEvents,attr"` // yes|no - Multicast string `xml:"multicast,attr"` // yes|no - DataType DataType `xml:"dataType"` - DefaultValue string `xml:"defaultValue"` - AllowedValueRange *AllowedValueRange `xml:"allowedValueRange"` - AllowedValues []string `xml:"allowedValueList>allowedValue"` -} - -func (v *StateVariable) clean() { - cleanWhitespace(&v.Name) - cleanWhitespace(&v.SendEvents) - cleanWhitespace(&v.Multicast) - v.DataType.clean() - cleanWhitespace(&v.DefaultValue) - if v.AllowedValueRange != nil { - v.AllowedValueRange.clean() - } - for i := range v.AllowedValues { - cleanWhitespace(&v.AllowedValues[i]) - } -} - -type AllowedValueRange struct { - Minimum string `xml:"minimum"` - Maximum string `xml:"maximum"` - Step string `xml:"step"` -} - -func (r *AllowedValueRange) clean() { - cleanWhitespace(&r.Minimum) - cleanWhitespace(&r.Maximum) - cleanWhitespace(&r.Step) -} - -type DataType struct { - Name string `xml:",chardata"` - Type string `xml:"type,attr"` -} - -func (dt *DataType) clean() { - cleanWhitespace(&dt.Name) - cleanWhitespace(&dt.Type) -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/service_client.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/service_client.go deleted file mode 100644 index b8ad4d31..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/service_client.go +++ /dev/null @@ -1,88 +0,0 @@ -package goupnp - -import ( - "fmt" - "net/url" - - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap" -) - -// ServiceClient is a SOAP client, root device and the service for the SOAP -// client rolled into one value. The root device, location, and service are -// intended to be informational. Location can be used to later recreate a -// ServiceClient with NewServiceClientByURL if the service is still present; -// bypassing the discovery process. -type ServiceClient struct { - SOAPClient *soap.SOAPClient - RootDevice *RootDevice - Location *url.URL - Service *Service -} - -// NewServiceClients discovers services, and returns clients for them. err will -// report any error with the discovery process (blocking any device/service -// discovery), errors reports errors on a per-root-device basis. -func NewServiceClients(searchTarget string) (clients []ServiceClient, errors []error, err error) { - var maybeRootDevices []MaybeRootDevice - if maybeRootDevices, err = DiscoverDevices(searchTarget); err != nil { - return - } - - clients = make([]ServiceClient, 0, len(maybeRootDevices)) - - for _, maybeRootDevice := range maybeRootDevices { - if maybeRootDevice.Err != nil { - errors = append(errors, maybeRootDevice.Err) - continue - } - - deviceClients, err := NewServiceClientsFromRootDevice(maybeRootDevice.Root, maybeRootDevice.Location, searchTarget) - if err != nil { - errors = append(errors, err) - continue - } - clients = append(clients, deviceClients...) - } - - return -} - -// NewServiceClientsByURL creates client(s) for the given service URN, for a -// root device at the given URL. -func NewServiceClientsByURL(loc *url.URL, searchTarget string) ([]ServiceClient, error) { - rootDevice, err := DeviceByURL(loc) - if err != nil { - return nil, err - } - return NewServiceClientsFromRootDevice(rootDevice, loc, searchTarget) -} - -// NewServiceClientsFromDevice creates client(s) for the given service URN, in -// a given root device. The loc parameter is simply assigned to the -// Location attribute of the returned ServiceClient(s). -func NewServiceClientsFromRootDevice(rootDevice *RootDevice, loc *url.URL, searchTarget string) ([]ServiceClient, error) { - device := &rootDevice.Device - srvs := device.FindService(searchTarget) - if len(srvs) == 0 { - return nil, fmt.Errorf("goupnp: service %q not found within device %q (UDN=%q)", - searchTarget, device.FriendlyName, device.UDN) - } - - clients := make([]ServiceClient, 0, len(srvs)) - for _, srv := range srvs { - clients = append(clients, ServiceClient{ - SOAPClient: srv.NewSOAPClient(), - RootDevice: rootDevice, - Location: loc, - Service: srv, - }) - } - return clients, nil -} - -// GetServiceClient returns the ServiceClient itself. This is provided so that the -// service client attributes can be accessed via an interface method on a -// wrapping type. -func (client *ServiceClient) GetServiceClient() *ServiceClient { - return client -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/soap.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/soap.go deleted file mode 100644 index 81561073..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/soap.go +++ /dev/null @@ -1,157 +0,0 @@ -// Definition for the SOAP structure required for UPnP's SOAP usage. - -package soap - -import ( - "bytes" - "encoding/xml" - "fmt" - "io/ioutil" - "net/http" - "net/url" - "reflect" -) - -const ( - soapEncodingStyle = "http://schemas.xmlsoap.org/soap/encoding/" - soapPrefix = xml.Header + `` - soapSuffix = `` -) - -type SOAPClient struct { - EndpointURL url.URL - HTTPClient http.Client -} - -func NewSOAPClient(endpointURL url.URL) *SOAPClient { - return &SOAPClient{ - EndpointURL: endpointURL, - } -} - -// PerformSOAPAction makes a SOAP request, with the given action. -// inAction and outAction must both be pointers to structs with string fields -// only. -func (client *SOAPClient) PerformAction(actionNamespace, actionName string, inAction interface{}, outAction interface{}) error { - requestBytes, err := encodeRequestAction(actionNamespace, actionName, inAction) - if err != nil { - return err - } - - response, err := client.HTTPClient.Do(&http.Request{ - Method: "POST", - URL: &client.EndpointURL, - Header: http.Header{ - "SOAPACTION": []string{`"` + actionNamespace + "#" + actionName + `"`}, - "CONTENT-TYPE": []string{"text/xml; charset=\"utf-8\""}, - }, - Body: ioutil.NopCloser(bytes.NewBuffer(requestBytes)), - // Set ContentLength to avoid chunked encoding - some servers might not support it. - ContentLength: int64(len(requestBytes)), - }) - if err != nil { - return fmt.Errorf("goupnp: error performing SOAP HTTP request: %v", err) - } - defer response.Body.Close() - if response.StatusCode != 200 { - return fmt.Errorf("goupnp: SOAP request got HTTP %s", response.Status) - } - - responseEnv := newSOAPEnvelope() - decoder := xml.NewDecoder(response.Body) - if err := decoder.Decode(responseEnv); err != nil { - return fmt.Errorf("goupnp: error decoding response body: %v", err) - } - - if responseEnv.Body.Fault != nil { - return responseEnv.Body.Fault - } - - if outAction != nil { - if err := xml.Unmarshal(responseEnv.Body.RawAction, outAction); err != nil { - return fmt.Errorf("goupnp: error unmarshalling out action: %v, %v", err, responseEnv.Body.RawAction) - } - } - - return nil -} - -// newSOAPAction creates a soapEnvelope with the given action and arguments. -func newSOAPEnvelope() *soapEnvelope { - return &soapEnvelope{ - EncodingStyle: soapEncodingStyle, - } -} - -// encodeRequestAction is a hacky way to create an encoded SOAP envelope -// containing the given action. Experiments with one router have shown that it -// 500s for requests where the outer default xmlns is set to the SOAP -// namespace, and then reassigning the default namespace within that to the -// service namespace. Hand-coding the outer XML to work-around this. -func encodeRequestAction(actionNamespace, actionName string, inAction interface{}) ([]byte, error) { - requestBuf := new(bytes.Buffer) - requestBuf.WriteString(soapPrefix) - requestBuf.WriteString(``) - if inAction != nil { - if err := encodeRequestArgs(requestBuf, inAction); err != nil { - return nil, err - } - } - requestBuf.WriteString(``) - requestBuf.WriteString(soapSuffix) - return requestBuf.Bytes(), nil -} - -func encodeRequestArgs(w *bytes.Buffer, inAction interface{}) error { - in := reflect.Indirect(reflect.ValueOf(inAction)) - if in.Kind() != reflect.Struct { - return fmt.Errorf("goupnp: SOAP inAction is not a struct but of type %v", in.Type()) - } - enc := xml.NewEncoder(w) - nFields := in.NumField() - inType := in.Type() - for i := 0; i < nFields; i++ { - field := inType.Field(i) - argName := field.Name - if nameOverride := field.Tag.Get("soap"); nameOverride != "" { - argName = nameOverride - } - value := in.Field(i) - if value.Kind() != reflect.String { - return fmt.Errorf("goupnp: SOAP arg %q is not of type string, but of type %v", argName, value.Type()) - } - if err := enc.EncodeElement(value.Interface(), xml.StartElement{xml.Name{"", argName}, nil}); err != nil { - return fmt.Errorf("goupnp: error encoding SOAP arg %q: %v", argName, err) - } - } - enc.Flush() - return nil -} - -type soapEnvelope struct { - XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Envelope"` - EncodingStyle string `xml:"http://schemas.xmlsoap.org/soap/envelope/ encodingStyle,attr"` - Body soapBody `xml:"http://schemas.xmlsoap.org/soap/envelope/ Body"` -} - -type soapBody struct { - Fault *SOAPFaultError `xml:"Fault"` - RawAction []byte `xml:",innerxml"` -} - -// SOAPFaultError implements error, and contains SOAP fault information. -type SOAPFaultError struct { - FaultCode string `xml:"faultcode"` - FaultString string `xml:"faultstring"` - Detail string `xml:"detail"` -} - -func (err *SOAPFaultError) Error() string { - return fmt.Sprintf("SOAP fault: %s", err.FaultString) -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/soap_test.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/soap_test.go deleted file mode 100644 index 75dbbdbf..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/soap_test.go +++ /dev/null @@ -1,85 +0,0 @@ -package soap - -import ( - "bytes" - "io/ioutil" - "net/http" - "net/url" - "reflect" - "testing" -) - -type capturingRoundTripper struct { - err error - resp *http.Response - capturedReq *http.Request -} - -func (rt *capturingRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { - rt.capturedReq = req - return rt.resp, rt.err -} - -func TestActionInputs(t *testing.T) { - url, err := url.Parse("http://example.com/soap") - if err != nil { - t.Fatal(err) - } - rt := &capturingRoundTripper{ - err: nil, - resp: &http.Response{ - StatusCode: 200, - Body: ioutil.NopCloser(bytes.NewBufferString(` - - - - valueA - valueB - - - - `)), - }, - } - client := SOAPClient{ - EndpointURL: *url, - HTTPClient: http.Client{ - Transport: rt, - }, - } - - type In struct { - Foo string - Bar string `soap:"bar"` - } - type Out struct { - A string - B string - } - in := In{"foo", "bar"} - gotOut := Out{} - err = client.PerformAction("mynamespace", "myaction", &in, &gotOut) - if err != nil { - t.Fatal(err) - } - - wantBody := (soapPrefix + - `` + - `foo` + - `bar` + - `` + - soapSuffix) - body, err := ioutil.ReadAll(rt.capturedReq.Body) - if err != nil { - t.Fatal(err) - } - gotBody := string(body) - if wantBody != gotBody { - t.Errorf("Bad request body\nwant: %q\n got: %q", wantBody, gotBody) - } - - wantOut := Out{"valueA", "valueB"} - if !reflect.DeepEqual(wantOut, gotOut) { - t.Errorf("Bad output\nwant: %+v\n got: %+v", wantOut, gotOut) - } -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/types.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/types.go deleted file mode 100644 index fdbeec8d..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/types.go +++ /dev/null @@ -1,519 +0,0 @@ -package soap - -import ( - "encoding/base64" - "encoding/hex" - "errors" - "fmt" - "net/url" - "regexp" - "strconv" - "strings" - "time" - "unicode/utf8" -) - -var ( - // localLoc acts like time.Local for this package, but is faked out by the - // unit tests to ensure that things stay constant (especially when running - // this test in a place where local time is UTC which might mask bugs). - localLoc = time.Local -) - -func MarshalUi1(v uint8) (string, error) { - return strconv.FormatUint(uint64(v), 10), nil -} - -func UnmarshalUi1(s string) (uint8, error) { - v, err := strconv.ParseUint(s, 10, 8) - return uint8(v), err -} - -func MarshalUi2(v uint16) (string, error) { - return strconv.FormatUint(uint64(v), 10), nil -} - -func UnmarshalUi2(s string) (uint16, error) { - v, err := strconv.ParseUint(s, 10, 16) - return uint16(v), err -} - -func MarshalUi4(v uint32) (string, error) { - return strconv.FormatUint(uint64(v), 10), nil -} - -func UnmarshalUi4(s string) (uint32, error) { - v, err := strconv.ParseUint(s, 10, 32) - return uint32(v), err -} - -func MarshalI1(v int8) (string, error) { - return strconv.FormatInt(int64(v), 10), nil -} - -func UnmarshalI1(s string) (int8, error) { - v, err := strconv.ParseInt(s, 10, 8) - return int8(v), err -} - -func MarshalI2(v int16) (string, error) { - return strconv.FormatInt(int64(v), 10), nil -} - -func UnmarshalI2(s string) (int16, error) { - v, err := strconv.ParseInt(s, 10, 16) - return int16(v), err -} - -func MarshalI4(v int32) (string, error) { - return strconv.FormatInt(int64(v), 10), nil -} - -func UnmarshalI4(s string) (int32, error) { - v, err := strconv.ParseInt(s, 10, 32) - return int32(v), err -} - -func MarshalInt(v int64) (string, error) { - return strconv.FormatInt(v, 10), nil -} - -func UnmarshalInt(s string) (int64, error) { - return strconv.ParseInt(s, 10, 64) -} - -func MarshalR4(v float32) (string, error) { - return strconv.FormatFloat(float64(v), 'G', -1, 32), nil -} - -func UnmarshalR4(s string) (float32, error) { - v, err := strconv.ParseFloat(s, 32) - return float32(v), err -} - -func MarshalR8(v float64) (string, error) { - return strconv.FormatFloat(v, 'G', -1, 64), nil -} - -func UnmarshalR8(s string) (float64, error) { - v, err := strconv.ParseFloat(s, 64) - return float64(v), err -} - -// MarshalFixed14_4 marshals float64 to SOAP "fixed.14.4" type. -func MarshalFixed14_4(v float64) (string, error) { - if v >= 1e14 || v <= -1e14 { - return "", fmt.Errorf("soap fixed14.4: value %v out of bounds", v) - } - return strconv.FormatFloat(v, 'f', 4, 64), nil -} - -// UnmarshalFixed14_4 unmarshals float64 from SOAP "fixed.14.4" type. -func UnmarshalFixed14_4(s string) (float64, error) { - v, err := strconv.ParseFloat(s, 64) - if err != nil { - return 0, err - } - if v >= 1e14 || v <= -1e14 { - return 0, fmt.Errorf("soap fixed14.4: value %q out of bounds", s) - } - return v, nil -} - -// MarshalChar marshals rune to SOAP "char" type. -func MarshalChar(v rune) (string, error) { - if v == 0 { - return "", errors.New("soap char: rune 0 is not allowed") - } - return string(v), nil -} - -// UnmarshalChar unmarshals rune from SOAP "char" type. -func UnmarshalChar(s string) (rune, error) { - if len(s) == 0 { - return 0, errors.New("soap char: got empty string") - } - r, n := utf8.DecodeRune([]byte(s)) - if n != len(s) { - return 0, fmt.Errorf("soap char: value %q is not a single rune", s) - } - return r, nil -} - -func MarshalString(v string) (string, error) { - return v, nil -} - -func UnmarshalString(v string) (string, error) { - return v, nil -} - -func parseInt(s string, err *error) int { - v, parseErr := strconv.ParseInt(s, 10, 64) - if parseErr != nil { - *err = parseErr - } - return int(v) -} - -var dateRegexps = []*regexp.Regexp{ - // yyyy[-mm[-dd]] - regexp.MustCompile(`^(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?$`), - // yyyy[mm[dd]] - regexp.MustCompile(`^(\d{4})(?:(\d{2})(?:(\d{2}))?)?$`), -} - -func parseDateParts(s string) (year, month, day int, err error) { - var parts []string - for _, re := range dateRegexps { - parts = re.FindStringSubmatch(s) - if parts != nil { - break - } - } - if parts == nil { - err = fmt.Errorf("soap date: value %q is not in a recognized ISO8601 date format", s) - return - } - - year = parseInt(parts[1], &err) - month = 1 - day = 1 - if len(parts[2]) != 0 { - month = parseInt(parts[2], &err) - if len(parts[3]) != 0 { - day = parseInt(parts[3], &err) - } - } - - if err != nil { - err = fmt.Errorf("soap date: %q: %v", s, err) - } - - return -} - -var timeRegexps = []*regexp.Regexp{ - // hh[:mm[:ss]] - regexp.MustCompile(`^(\d{2})(?::(\d{2})(?::(\d{2}))?)?$`), - // hh[mm[ss]] - regexp.MustCompile(`^(\d{2})(?:(\d{2})(?:(\d{2}))?)?$`), -} - -func parseTimeParts(s string) (hour, minute, second int, err error) { - var parts []string - for _, re := range timeRegexps { - parts = re.FindStringSubmatch(s) - if parts != nil { - break - } - } - if parts == nil { - err = fmt.Errorf("soap time: value %q is not in ISO8601 time format", s) - return - } - - hour = parseInt(parts[1], &err) - if len(parts[2]) != 0 { - minute = parseInt(parts[2], &err) - if len(parts[3]) != 0 { - second = parseInt(parts[3], &err) - } - } - - if err != nil { - err = fmt.Errorf("soap time: %q: %v", s, err) - } - - return -} - -// (+|-)hh[[:]mm] -var timezoneRegexp = regexp.MustCompile(`^([+-])(\d{2})(?::?(\d{2}))?$`) - -func parseTimezone(s string) (offset int, err error) { - if s == "Z" { - return 0, nil - } - parts := timezoneRegexp.FindStringSubmatch(s) - if parts == nil { - err = fmt.Errorf("soap timezone: value %q is not in ISO8601 timezone format", s) - return - } - - offset = parseInt(parts[2], &err) * 3600 - if len(parts[3]) != 0 { - offset += parseInt(parts[3], &err) * 60 - } - if parts[1] == "-" { - offset = -offset - } - - if err != nil { - err = fmt.Errorf("soap timezone: %q: %v", s, err) - } - - return -} - -var completeDateTimeZoneRegexp = regexp.MustCompile(`^([^T]+)(?:T([^-+Z]+)(.+)?)?$`) - -// splitCompleteDateTimeZone splits date, time and timezone apart from an -// ISO8601 string. It does not ensure that the contents of each part are -// correct, it merely splits on certain delimiters. -// e.g "2010-09-08T12:15:10+0700" => "2010-09-08", "12:15:10", "+0700". -// Timezone can only be present if time is also present. -func splitCompleteDateTimeZone(s string) (dateStr, timeStr, zoneStr string, err error) { - parts := completeDateTimeZoneRegexp.FindStringSubmatch(s) - if parts == nil { - err = fmt.Errorf("soap date/time/zone: value %q is not in ISO8601 datetime format", s) - return - } - dateStr = parts[1] - timeStr = parts[2] - zoneStr = parts[3] - return -} - -// MarshalDate marshals time.Time to SOAP "date" type. Note that this converts -// to local time, and discards the time-of-day components. -func MarshalDate(v time.Time) (string, error) { - return v.In(localLoc).Format("2006-01-02"), nil -} - -var dateFmts = []string{"2006-01-02", "20060102"} - -// UnmarshalDate unmarshals time.Time from SOAP "date" type. This outputs the -// date as midnight in the local time zone. -func UnmarshalDate(s string) (time.Time, error) { - year, month, day, err := parseDateParts(s) - if err != nil { - return time.Time{}, err - } - return time.Date(year, time.Month(month), day, 0, 0, 0, 0, localLoc), nil -} - -// TimeOfDay is used in cases where SOAP "time" or "time.tz" is used. -type TimeOfDay struct { - // Duration of time since midnight. - FromMidnight time.Duration - - // Set to true if Offset is specified. If false, then the timezone is - // unspecified (and by ISO8601 - implies some "local" time). - HasOffset bool - - // Offset is non-zero only if time.tz is used. It is otherwise ignored. If - // non-zero, then it is regarded as a UTC offset in seconds. Note that the - // sub-minutes is ignored by the marshal function. - Offset int -} - -// MarshalTimeOfDay marshals TimeOfDay to the "time" type. -func MarshalTimeOfDay(v TimeOfDay) (string, error) { - d := int64(v.FromMidnight / time.Second) - hour := d / 3600 - d = d % 3600 - minute := d / 60 - second := d % 60 - - return fmt.Sprintf("%02d:%02d:%02d", hour, minute, second), nil -} - -// UnmarshalTimeOfDay unmarshals TimeOfDay from the "time" type. -func UnmarshalTimeOfDay(s string) (TimeOfDay, error) { - t, err := UnmarshalTimeOfDayTz(s) - if err != nil { - return TimeOfDay{}, err - } else if t.HasOffset { - return TimeOfDay{}, fmt.Errorf("soap time: value %q contains unexpected timezone") - } - return t, nil -} - -// MarshalTimeOfDayTz marshals TimeOfDay to the "time.tz" type. -func MarshalTimeOfDayTz(v TimeOfDay) (string, error) { - d := int64(v.FromMidnight / time.Second) - hour := d / 3600 - d = d % 3600 - minute := d / 60 - second := d % 60 - - tz := "" - if v.HasOffset { - if v.Offset == 0 { - tz = "Z" - } else { - offsetMins := v.Offset / 60 - sign := '+' - if offsetMins < 1 { - offsetMins = -offsetMins - sign = '-' - } - tz = fmt.Sprintf("%c%02d:%02d", sign, offsetMins/60, offsetMins%60) - } - } - - return fmt.Sprintf("%02d:%02d:%02d%s", hour, minute, second, tz), nil -} - -// UnmarshalTimeOfDayTz unmarshals TimeOfDay from the "time.tz" type. -func UnmarshalTimeOfDayTz(s string) (tod TimeOfDay, err error) { - zoneIndex := strings.IndexAny(s, "Z+-") - var timePart string - var hasOffset bool - var offset int - if zoneIndex == -1 { - hasOffset = false - timePart = s - } else { - hasOffset = true - timePart = s[:zoneIndex] - if offset, err = parseTimezone(s[zoneIndex:]); err != nil { - return - } - } - - hour, minute, second, err := parseTimeParts(timePart) - if err != nil { - return - } - - fromMidnight := time.Duration(hour*3600+minute*60+second) * time.Second - - // ISO8601 special case - values up to 24:00:00 are allowed, so using - // strictly greater-than for the maximum value. - if fromMidnight > 24*time.Hour || minute >= 60 || second >= 60 { - return TimeOfDay{}, fmt.Errorf("soap time.tz: value %q has value(s) out of range", s) - } - - return TimeOfDay{ - FromMidnight: time.Duration(hour*3600+minute*60+second) * time.Second, - HasOffset: hasOffset, - Offset: offset, - }, nil -} - -// MarshalDateTime marshals time.Time to SOAP "dateTime" type. Note that this -// converts to local time. -func MarshalDateTime(v time.Time) (string, error) { - return v.In(localLoc).Format("2006-01-02T15:04:05"), nil -} - -// UnmarshalDateTime unmarshals time.Time from the SOAP "dateTime" type. This -// returns a value in the local timezone. -func UnmarshalDateTime(s string) (result time.Time, err error) { - dateStr, timeStr, zoneStr, err := splitCompleteDateTimeZone(s) - if err != nil { - return - } - - if len(zoneStr) != 0 { - err = fmt.Errorf("soap datetime: unexpected timezone in %q", s) - return - } - - year, month, day, err := parseDateParts(dateStr) - if err != nil { - return - } - - var hour, minute, second int - if len(timeStr) != 0 { - hour, minute, second, err = parseTimeParts(timeStr) - if err != nil { - return - } - } - - result = time.Date(year, time.Month(month), day, hour, minute, second, 0, localLoc) - return -} - -// MarshalDateTimeTz marshals time.Time to SOAP "dateTime.tz" type. -func MarshalDateTimeTz(v time.Time) (string, error) { - return v.Format("2006-01-02T15:04:05-07:00"), nil -} - -// UnmarshalDateTimeTz unmarshals time.Time from the SOAP "dateTime.tz" type. -// This returns a value in the local timezone when the timezone is unspecified. -func UnmarshalDateTimeTz(s string) (result time.Time, err error) { - dateStr, timeStr, zoneStr, err := splitCompleteDateTimeZone(s) - if err != nil { - return - } - - year, month, day, err := parseDateParts(dateStr) - if err != nil { - return - } - - var hour, minute, second int - var location *time.Location = localLoc - if len(timeStr) != 0 { - hour, minute, second, err = parseTimeParts(timeStr) - if err != nil { - return - } - if len(zoneStr) != 0 { - var offset int - offset, err = parseTimezone(zoneStr) - if offset == 0 { - location = time.UTC - } else { - location = time.FixedZone("", offset) - } - } - } - - result = time.Date(year, time.Month(month), day, hour, minute, second, 0, location) - return -} - -// MarshalBoolean marshals bool to SOAP "boolean" type. -func MarshalBoolean(v bool) (string, error) { - if v { - return "1", nil - } - return "0", nil -} - -// UnmarshalBoolean unmarshals bool from the SOAP "boolean" type. -func UnmarshalBoolean(s string) (bool, error) { - switch s { - case "0", "false", "no": - return false, nil - case "1", "true", "yes": - return true, nil - } - return false, fmt.Errorf("soap boolean: %q is not a valid boolean value", s) -} - -// MarshalBinBase64 marshals []byte to SOAP "bin.base64" type. -func MarshalBinBase64(v []byte) (string, error) { - return base64.StdEncoding.EncodeToString(v), nil -} - -// UnmarshalBinBase64 unmarshals []byte from the SOAP "bin.base64" type. -func UnmarshalBinBase64(s string) ([]byte, error) { - return base64.StdEncoding.DecodeString(s) -} - -// MarshalBinHex marshals []byte to SOAP "bin.hex" type. -func MarshalBinHex(v []byte) (string, error) { - return hex.EncodeToString(v), nil -} - -// UnmarshalBinHex unmarshals []byte from the SOAP "bin.hex" type. -func UnmarshalBinHex(s string) ([]byte, error) { - return hex.DecodeString(s) -} - -// MarshalURI marshals *url.URL to SOAP "uri" type. -func MarshalURI(v *url.URL) (string, error) { - return v.String(), nil -} - -// UnmarshalURI unmarshals *url.URL from the SOAP "uri" type. -func UnmarshalURI(s string) (*url.URL, error) { - return url.Parse(s) -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/types_test.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/types_test.go deleted file mode 100644 index 43dcdcb2..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/soap/types_test.go +++ /dev/null @@ -1,497 +0,0 @@ -package soap - -import ( - "bytes" - "math" - "net/url" - "testing" - "time" -) - -type convTest interface { - Marshal() (string, error) - Unmarshal(string) (interface{}, error) - Equal(result interface{}) bool -} - -// duper is an interface that convTest values may optionally also implement to -// generate another convTest for a value in an otherwise identical testCase. -type duper interface { - Dupe(tag string) []convTest -} - -type testCase struct { - value convTest - str string - wantMarshalErr bool - wantUnmarshalErr bool - noMarshal bool - noUnMarshal bool - tag string -} - -type Ui1Test uint8 - -func (v Ui1Test) Marshal() (string, error) { - return MarshalUi1(uint8(v)) -} -func (v Ui1Test) Unmarshal(s string) (interface{}, error) { - return UnmarshalUi1(s) -} -func (v Ui1Test) Equal(result interface{}) bool { - return uint8(v) == result.(uint8) -} -func (v Ui1Test) Dupe(tag string) []convTest { - if tag == "dupe" { - return []convTest{ - Ui2Test(v), - Ui4Test(v), - } - } - return nil -} - -type Ui2Test uint16 - -func (v Ui2Test) Marshal() (string, error) { - return MarshalUi2(uint16(v)) -} -func (v Ui2Test) Unmarshal(s string) (interface{}, error) { - return UnmarshalUi2(s) -} -func (v Ui2Test) Equal(result interface{}) bool { - return uint16(v) == result.(uint16) -} - -type Ui4Test uint32 - -func (v Ui4Test) Marshal() (string, error) { - return MarshalUi4(uint32(v)) -} -func (v Ui4Test) Unmarshal(s string) (interface{}, error) { - return UnmarshalUi4(s) -} -func (v Ui4Test) Equal(result interface{}) bool { - return uint32(v) == result.(uint32) -} - -type I1Test int8 - -func (v I1Test) Marshal() (string, error) { - return MarshalI1(int8(v)) -} -func (v I1Test) Unmarshal(s string) (interface{}, error) { - return UnmarshalI1(s) -} -func (v I1Test) Equal(result interface{}) bool { - return int8(v) == result.(int8) -} -func (v I1Test) Dupe(tag string) []convTest { - if tag == "dupe" { - return []convTest{ - I2Test(v), - I4Test(v), - } - } - return nil -} - -type I2Test int16 - -func (v I2Test) Marshal() (string, error) { - return MarshalI2(int16(v)) -} -func (v I2Test) Unmarshal(s string) (interface{}, error) { - return UnmarshalI2(s) -} -func (v I2Test) Equal(result interface{}) bool { - return int16(v) == result.(int16) -} - -type I4Test int32 - -func (v I4Test) Marshal() (string, error) { - return MarshalI4(int32(v)) -} -func (v I4Test) Unmarshal(s string) (interface{}, error) { - return UnmarshalI4(s) -} -func (v I4Test) Equal(result interface{}) bool { - return int32(v) == result.(int32) -} - -type IntTest int64 - -func (v IntTest) Marshal() (string, error) { - return MarshalInt(int64(v)) -} -func (v IntTest) Unmarshal(s string) (interface{}, error) { - return UnmarshalInt(s) -} -func (v IntTest) Equal(result interface{}) bool { - return int64(v) == result.(int64) -} - -type Fixed14_4Test float64 - -func (v Fixed14_4Test) Marshal() (string, error) { - return MarshalFixed14_4(float64(v)) -} -func (v Fixed14_4Test) Unmarshal(s string) (interface{}, error) { - return UnmarshalFixed14_4(s) -} -func (v Fixed14_4Test) Equal(result interface{}) bool { - return math.Abs(float64(v)-result.(float64)) < 0.001 -} - -type CharTest rune - -func (v CharTest) Marshal() (string, error) { - return MarshalChar(rune(v)) -} -func (v CharTest) Unmarshal(s string) (interface{}, error) { - return UnmarshalChar(s) -} -func (v CharTest) Equal(result interface{}) bool { - return rune(v) == result.(rune) -} - -type DateTest struct{ time.Time } - -func (v DateTest) Marshal() (string, error) { - return MarshalDate(time.Time(v.Time)) -} -func (v DateTest) Unmarshal(s string) (interface{}, error) { - return UnmarshalDate(s) -} -func (v DateTest) Equal(result interface{}) bool { - return v.Time.Equal(result.(time.Time)) -} -func (v DateTest) Dupe(tag string) []convTest { - if tag != "no:dateTime" { - return []convTest{DateTimeTest{v.Time}} - } - return nil -} - -type TimeOfDayTest struct { - TimeOfDay -} - -func (v TimeOfDayTest) Marshal() (string, error) { - return MarshalTimeOfDay(v.TimeOfDay) -} -func (v TimeOfDayTest) Unmarshal(s string) (interface{}, error) { - return UnmarshalTimeOfDay(s) -} -func (v TimeOfDayTest) Equal(result interface{}) bool { - return v.TimeOfDay == result.(TimeOfDay) -} -func (v TimeOfDayTest) Dupe(tag string) []convTest { - if tag != "no:time.tz" { - return []convTest{TimeOfDayTzTest{v.TimeOfDay}} - } - return nil -} - -type TimeOfDayTzTest struct { - TimeOfDay -} - -func (v TimeOfDayTzTest) Marshal() (string, error) { - return MarshalTimeOfDayTz(v.TimeOfDay) -} -func (v TimeOfDayTzTest) Unmarshal(s string) (interface{}, error) { - return UnmarshalTimeOfDayTz(s) -} -func (v TimeOfDayTzTest) Equal(result interface{}) bool { - return v.TimeOfDay == result.(TimeOfDay) -} - -type DateTimeTest struct{ time.Time } - -func (v DateTimeTest) Marshal() (string, error) { - return MarshalDateTime(time.Time(v.Time)) -} -func (v DateTimeTest) Unmarshal(s string) (interface{}, error) { - return UnmarshalDateTime(s) -} -func (v DateTimeTest) Equal(result interface{}) bool { - return v.Time.Equal(result.(time.Time)) -} -func (v DateTimeTest) Dupe(tag string) []convTest { - if tag != "no:dateTime.tz" { - return []convTest{DateTimeTzTest{v.Time}} - } - return nil -} - -type DateTimeTzTest struct{ time.Time } - -func (v DateTimeTzTest) Marshal() (string, error) { - return MarshalDateTimeTz(time.Time(v.Time)) -} -func (v DateTimeTzTest) Unmarshal(s string) (interface{}, error) { - return UnmarshalDateTimeTz(s) -} -func (v DateTimeTzTest) Equal(result interface{}) bool { - return v.Time.Equal(result.(time.Time)) -} - -type BooleanTest bool - -func (v BooleanTest) Marshal() (string, error) { - return MarshalBoolean(bool(v)) -} -func (v BooleanTest) Unmarshal(s string) (interface{}, error) { - return UnmarshalBoolean(s) -} -func (v BooleanTest) Equal(result interface{}) bool { - return bool(v) == result.(bool) -} - -type BinBase64Test []byte - -func (v BinBase64Test) Marshal() (string, error) { - return MarshalBinBase64([]byte(v)) -} -func (v BinBase64Test) Unmarshal(s string) (interface{}, error) { - return UnmarshalBinBase64(s) -} -func (v BinBase64Test) Equal(result interface{}) bool { - return bytes.Equal([]byte(v), result.([]byte)) -} - -type BinHexTest []byte - -func (v BinHexTest) Marshal() (string, error) { - return MarshalBinHex([]byte(v)) -} -func (v BinHexTest) Unmarshal(s string) (interface{}, error) { - return UnmarshalBinHex(s) -} -func (v BinHexTest) Equal(result interface{}) bool { - return bytes.Equal([]byte(v), result.([]byte)) -} - -type URITest struct{ URL *url.URL } - -func (v URITest) Marshal() (string, error) { - return MarshalURI(v.URL) -} -func (v URITest) Unmarshal(s string) (interface{}, error) { - return UnmarshalURI(s) -} -func (v URITest) Equal(result interface{}) bool { - return v.URL.String() == result.(*url.URL).String() -} - -func Test(t *testing.T) { - const time010203 time.Duration = (1*3600 + 2*60 + 3) * time.Second - const time0102 time.Duration = (1*3600 + 2*60) * time.Second - const time01 time.Duration = (1 * 3600) * time.Second - const time235959 time.Duration = (23*3600 + 59*60 + 59) * time.Second - - // Fake out the local time for the implementation. - localLoc = time.FixedZone("Fake/Local", 6*3600) - defer func() { - localLoc = time.Local - }() - - tests := []testCase{ - // ui1 - {str: "", value: Ui1Test(0), wantUnmarshalErr: true, noMarshal: true, tag: "dupe"}, - {str: " ", value: Ui1Test(0), wantUnmarshalErr: true, noMarshal: true, tag: "dupe"}, - {str: "abc", value: Ui1Test(0), wantUnmarshalErr: true, noMarshal: true, tag: "dupe"}, - {str: "-1", value: Ui1Test(0), wantUnmarshalErr: true, noMarshal: true, tag: "dupe"}, - {str: "0", value: Ui1Test(0), tag: "dupe"}, - {str: "1", value: Ui1Test(1), tag: "dupe"}, - {str: "255", value: Ui1Test(255), tag: "dupe"}, - {str: "256", value: Ui1Test(0), wantUnmarshalErr: true, noMarshal: true}, - - // ui2 - {str: "65535", value: Ui2Test(65535)}, - {str: "65536", value: Ui2Test(0), wantUnmarshalErr: true, noMarshal: true}, - - // ui4 - {str: "4294967295", value: Ui4Test(4294967295)}, - {str: "4294967296", value: Ui4Test(0), wantUnmarshalErr: true, noMarshal: true}, - - // i1 - {str: "", value: I1Test(0), wantUnmarshalErr: true, noMarshal: true, tag: "dupe"}, - {str: " ", value: I1Test(0), wantUnmarshalErr: true, noMarshal: true, tag: "dupe"}, - {str: "abc", value: I1Test(0), wantUnmarshalErr: true, noMarshal: true, tag: "dupe"}, - {str: "0", value: I1Test(0), tag: "dupe"}, - {str: "-1", value: I1Test(-1), tag: "dupe"}, - {str: "127", value: I1Test(127), tag: "dupe"}, - {str: "-128", value: I1Test(-128), tag: "dupe"}, - {str: "128", value: I1Test(0), wantUnmarshalErr: true, noMarshal: true}, - {str: "-129", value: I1Test(0), wantUnmarshalErr: true, noMarshal: true}, - - // i2 - {str: "32767", value: I2Test(32767)}, - {str: "-32768", value: I2Test(-32768)}, - {str: "32768", value: I2Test(0), wantUnmarshalErr: true, noMarshal: true}, - {str: "-32769", value: I2Test(0), wantUnmarshalErr: true, noMarshal: true}, - - // i4 - {str: "2147483647", value: I4Test(2147483647)}, - {str: "-2147483648", value: I4Test(-2147483648)}, - {str: "2147483648", value: I4Test(0), wantUnmarshalErr: true, noMarshal: true}, - {str: "-2147483649", value: I4Test(0), wantUnmarshalErr: true, noMarshal: true}, - - // int - {str: "9223372036854775807", value: IntTest(9223372036854775807)}, - {str: "-9223372036854775808", value: IntTest(-9223372036854775808)}, - {str: "9223372036854775808", value: IntTest(0), wantUnmarshalErr: true, noMarshal: true}, - {str: "-9223372036854775809", value: IntTest(0), wantUnmarshalErr: true, noMarshal: true}, - - // fixed.14.4 - {str: "0.0000", value: Fixed14_4Test(0)}, - {str: "1.0000", value: Fixed14_4Test(1)}, - {str: "1.2346", value: Fixed14_4Test(1.23456)}, - {str: "-1.0000", value: Fixed14_4Test(-1)}, - {str: "-1.2346", value: Fixed14_4Test(-1.23456)}, - {str: "10000000000000.0000", value: Fixed14_4Test(1e13)}, - {str: "100000000000000.0000", value: Fixed14_4Test(1e14), wantMarshalErr: true, wantUnmarshalErr: true}, - {str: "-10000000000000.0000", value: Fixed14_4Test(-1e13)}, - {str: "-100000000000000.0000", value: Fixed14_4Test(-1e14), wantMarshalErr: true, wantUnmarshalErr: true}, - - // char - {str: "a", value: CharTest('a')}, - {str: "z", value: CharTest('z')}, - {str: "\u1234", value: CharTest(0x1234)}, - {str: "aa", value: CharTest(0), wantMarshalErr: true, wantUnmarshalErr: true}, - {str: "", value: CharTest(0), wantMarshalErr: true, wantUnmarshalErr: true}, - - // date - {str: "2013-10-08", value: DateTest{time.Date(2013, 10, 8, 0, 0, 0, 0, localLoc)}, tag: "no:dateTime"}, - {str: "20131008", value: DateTest{time.Date(2013, 10, 8, 0, 0, 0, 0, localLoc)}, noMarshal: true, tag: "no:dateTime"}, - {str: "2013-10-08T10:30:50", value: DateTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:dateTime"}, - {str: "2013-10-08T10:30:50Z", value: DateTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:dateTime"}, - {str: "", value: DateTest{}, wantMarshalErr: true, wantUnmarshalErr: true, noMarshal: true}, - {str: "-1", value: DateTest{}, wantUnmarshalErr: true, noMarshal: true}, - - // time - {str: "00:00:00", value: TimeOfDayTest{TimeOfDay{FromMidnight: 0}}}, - {str: "000000", value: TimeOfDayTest{TimeOfDay{FromMidnight: 0}}, noMarshal: true}, - {str: "24:00:00", value: TimeOfDayTest{TimeOfDay{FromMidnight: 24 * time.Hour}}, noMarshal: true}, // ISO8601 special case - {str: "24:01:00", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true}, - {str: "24:00:01", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true}, - {str: "25:00:00", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true}, - {str: "00:60:00", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true}, - {str: "00:00:60", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true}, - {str: "01:02:03", value: TimeOfDayTest{TimeOfDay{FromMidnight: time010203}}}, - {str: "010203", value: TimeOfDayTest{TimeOfDay{FromMidnight: time010203}}, noMarshal: true}, - {str: "23:59:59", value: TimeOfDayTest{TimeOfDay{FromMidnight: time235959}}}, - {str: "235959", value: TimeOfDayTest{TimeOfDay{FromMidnight: time235959}}, noMarshal: true}, - {str: "01:02", value: TimeOfDayTest{TimeOfDay{FromMidnight: time0102}}, noMarshal: true}, - {str: "0102", value: TimeOfDayTest{TimeOfDay{FromMidnight: time0102}}, noMarshal: true}, - {str: "01", value: TimeOfDayTest{TimeOfDay{FromMidnight: time01}}, noMarshal: true}, - {str: "foo 01:02:03", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:time.tz"}, - {str: "foo\n01:02:03", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:time.tz"}, - {str: "01:02:03 foo", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:time.tz"}, - {str: "01:02:03\nfoo", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:time.tz"}, - {str: "01:02:03Z", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:time.tz"}, - {str: "01:02:03+01", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:time.tz"}, - {str: "01:02:03+01:23", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:time.tz"}, - {str: "01:02:03+0123", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:time.tz"}, - {str: "01:02:03-01", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:time.tz"}, - {str: "01:02:03-01:23", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:time.tz"}, - {str: "01:02:03-0123", value: TimeOfDayTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:time.tz"}, - - // time.tz - {str: "24:00:01", value: TimeOfDayTzTest{}, wantUnmarshalErr: true, noMarshal: true}, - {str: "01Z", value: TimeOfDayTzTest{TimeOfDay{time01, true, 0}}, noMarshal: true}, - {str: "01:02:03Z", value: TimeOfDayTzTest{TimeOfDay{time010203, true, 0}}}, - {str: "01+01", value: TimeOfDayTzTest{TimeOfDay{time01, true, 3600}}, noMarshal: true}, - {str: "01:02:03+01", value: TimeOfDayTzTest{TimeOfDay{time010203, true, 3600}}, noMarshal: true}, - {str: "01:02:03+01:23", value: TimeOfDayTzTest{TimeOfDay{time010203, true, 3600 + 23*60}}}, - {str: "01:02:03+0123", value: TimeOfDayTzTest{TimeOfDay{time010203, true, 3600 + 23*60}}, noMarshal: true}, - {str: "01:02:03-01", value: TimeOfDayTzTest{TimeOfDay{time010203, true, -3600}}, noMarshal: true}, - {str: "01:02:03-01:23", value: TimeOfDayTzTest{TimeOfDay{time010203, true, -(3600 + 23*60)}}}, - {str: "01:02:03-0123", value: TimeOfDayTzTest{TimeOfDay{time010203, true, -(3600 + 23*60)}}, noMarshal: true}, - - // dateTime - {str: "2013-10-08T00:00:00", value: DateTimeTest{time.Date(2013, 10, 8, 0, 0, 0, 0, localLoc)}, tag: "no:dateTime.tz"}, - {str: "20131008", value: DateTimeTest{time.Date(2013, 10, 8, 0, 0, 0, 0, localLoc)}, noMarshal: true}, - {str: "2013-10-08T10:30:50", value: DateTimeTest{time.Date(2013, 10, 8, 10, 30, 50, 0, localLoc)}, tag: "no:dateTime.tz"}, - {str: "2013-10-08T10:30:50T", value: DateTimeTest{}, wantUnmarshalErr: true, noMarshal: true}, - {str: "2013-10-08T10:30:50+01", value: DateTimeTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:dateTime.tz"}, - {str: "2013-10-08T10:30:50+01:23", value: DateTimeTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:dateTime.tz"}, - {str: "2013-10-08T10:30:50+0123", value: DateTimeTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:dateTime.tz"}, - {str: "2013-10-08T10:30:50-01", value: DateTimeTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:dateTime.tz"}, - {str: "2013-10-08T10:30:50-01:23", value: DateTimeTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:dateTime.tz"}, - {str: "2013-10-08T10:30:50-0123", value: DateTimeTest{}, wantUnmarshalErr: true, noMarshal: true, tag: "no:dateTime.tz"}, - - // dateTime.tz - {str: "2013-10-08T10:30:50", value: DateTimeTzTest{time.Date(2013, 10, 8, 10, 30, 50, 0, localLoc)}, noMarshal: true}, - {str: "2013-10-08T10:30:50+01", value: DateTimeTzTest{time.Date(2013, 10, 8, 10, 30, 50, 0, time.FixedZone("+01:00", 3600))}, noMarshal: true}, - {str: "2013-10-08T10:30:50+01:23", value: DateTimeTzTest{time.Date(2013, 10, 8, 10, 30, 50, 0, time.FixedZone("+01:23", 3600+23*60))}}, - {str: "2013-10-08T10:30:50+0123", value: DateTimeTzTest{time.Date(2013, 10, 8, 10, 30, 50, 0, time.FixedZone("+01:23", 3600+23*60))}, noMarshal: true}, - {str: "2013-10-08T10:30:50-01", value: DateTimeTzTest{time.Date(2013, 10, 8, 10, 30, 50, 0, time.FixedZone("-01:00", -3600))}, noMarshal: true}, - {str: "2013-10-08T10:30:50-01:23", value: DateTimeTzTest{time.Date(2013, 10, 8, 10, 30, 50, 0, time.FixedZone("-01:23", -(3600+23*60)))}}, - {str: "2013-10-08T10:30:50-0123", value: DateTimeTzTest{time.Date(2013, 10, 8, 10, 30, 50, 0, time.FixedZone("-01:23", -(3600+23*60)))}, noMarshal: true}, - - // boolean - {str: "0", value: BooleanTest(false)}, - {str: "1", value: BooleanTest(true)}, - {str: "false", value: BooleanTest(false), noMarshal: true}, - {str: "true", value: BooleanTest(true), noMarshal: true}, - {str: "no", value: BooleanTest(false), noMarshal: true}, - {str: "yes", value: BooleanTest(true), noMarshal: true}, - {str: "", value: BooleanTest(false), noMarshal: true, wantUnmarshalErr: true}, - {str: "other", value: BooleanTest(false), noMarshal: true, wantUnmarshalErr: true}, - {str: "2", value: BooleanTest(false), noMarshal: true, wantUnmarshalErr: true}, - {str: "-1", value: BooleanTest(false), noMarshal: true, wantUnmarshalErr: true}, - - // bin.base64 - {str: "", value: BinBase64Test{}}, - {str: "YQ==", value: BinBase64Test("a")}, - {str: "TG9uZ2VyIFN0cmluZy4=", value: BinBase64Test("Longer String.")}, - {str: "TG9uZ2VyIEFsaWduZWQu", value: BinBase64Test("Longer Aligned.")}, - - // bin.hex - {str: "", value: BinHexTest{}}, - {str: "61", value: BinHexTest("a")}, - {str: "4c6f6e67657220537472696e672e", value: BinHexTest("Longer String.")}, - {str: "4C6F6E67657220537472696E672E", value: BinHexTest("Longer String."), noMarshal: true}, - - // uri - {str: "http://example.com/path", value: URITest{&url.URL{Scheme: "http", Host: "example.com", Path: "/path"}}}, - } - - // Generate extra test cases from convTests that implement duper. - var extras []testCase - for i := range tests { - if duper, ok := tests[i].value.(duper); ok { - dupes := duper.Dupe(tests[i].tag) - for _, duped := range dupes { - dupedCase := testCase(tests[i]) - dupedCase.value = duped - extras = append(extras, dupedCase) - } - } - } - tests = append(tests, extras...) - - for _, test := range tests { - if test.noMarshal { - } else if resultStr, err := test.value.Marshal(); err != nil && !test.wantMarshalErr { - t.Errorf("For %T marshal %v, want %q, got error: %v", test.value, test.value, test.str, err) - } else if err == nil && test.wantMarshalErr { - t.Errorf("For %T marshal %v, want error, got %q", test.value, test.value, resultStr) - } else if err == nil && resultStr != test.str { - t.Errorf("For %T marshal %v, want %q, got %q", test.value, test.value, test.str, resultStr) - } - - if test.noUnMarshal { - } else if resultValue, err := test.value.Unmarshal(test.str); err != nil && !test.wantUnmarshalErr { - t.Errorf("For %T unmarshal %q, want %v, got error: %v", test.value, test.str, test.value, err) - } else if err == nil && test.wantUnmarshalErr { - t.Errorf("For %T unmarshal %q, want error, got %v", test.value, test.str, resultValue) - } else if err == nil && !test.value.Equal(resultValue) { - t.Errorf("For %T unmarshal %q, want %v, got %v", test.value, test.str, test.value, resultValue) - } - } -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/ssdp/registry.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/ssdp/registry.go deleted file mode 100644 index 7ec32b01..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/ssdp/registry.go +++ /dev/null @@ -1,312 +0,0 @@ -package ssdp - -import ( - "fmt" - "log" - "net/http" - "net/url" - "regexp" - "strconv" - "sync" - "time" - - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/httpu" -) - -const ( - maxExpiryTimeSeconds = 24 * 60 * 60 -) - -var ( - maxAgeRx = regexp.MustCompile("max-age=([0-9]+)") -) - -const ( - EventAlive = EventType(iota) - EventUpdate - EventByeBye -) - -type EventType int8 - -func (et EventType) String() string { - switch et { - case EventAlive: - return "EventAlive" - case EventUpdate: - return "EventUpdate" - case EventByeBye: - return "EventByeBye" - default: - return fmt.Sprintf("EventUnknown(%d)", int8(et)) - } -} - -type Update struct { - // The USN of the service. - USN string - // What happened. - EventType EventType - // The entry, which is nil if the service was not known and - // EventType==EventByeBye. The contents of this must not be modified as it is - // shared with the registry and other listeners. Once created, the Registry - // does not modify the Entry value - any updates are replaced with a new - // Entry value. - Entry *Entry -} - -type Entry struct { - // The address that the entry data was actually received from. - RemoteAddr string - // Unique Service Name. Identifies a unique instance of a device or service. - USN string - // Notfication Type. The type of device or service being announced. - NT string - // Server's self-identifying string. - Server string - Host string - // Location of the UPnP root device description. - Location url.URL - - // Despite BOOTID,CONFIGID being required fields, apparently they are not - // always set by devices. Set to -1 if not present. - - BootID int32 - ConfigID int32 - - SearchPort uint16 - - // When the last update was received for this entry identified by this USN. - LastUpdate time.Time - // When the last update's cached values are advised to expire. - CacheExpiry time.Time -} - -func newEntryFromRequest(r *http.Request) (*Entry, error) { - now := time.Now() - expiryDuration, err := parseCacheControlMaxAge(r.Header.Get("CACHE-CONTROL")) - if err != nil { - return nil, fmt.Errorf("ssdp: error parsing CACHE-CONTROL max age: %v", err) - } - - loc, err := url.Parse(r.Header.Get("LOCATION")) - if err != nil { - return nil, fmt.Errorf("ssdp: error parsing entry Location URL: %v", err) - } - - bootID, err := parseUpnpIntHeader(r.Header, "BOOTID.UPNP.ORG", -1) - if err != nil { - return nil, err - } - configID, err := parseUpnpIntHeader(r.Header, "CONFIGID.UPNP.ORG", -1) - if err != nil { - return nil, err - } - searchPort, err := parseUpnpIntHeader(r.Header, "SEARCHPORT.UPNP.ORG", ssdpSearchPort) - if err != nil { - return nil, err - } - - if searchPort < 1 || searchPort > 65535 { - return nil, fmt.Errorf("ssdp: search port %d is out of range", searchPort) - } - - return &Entry{ - RemoteAddr: r.RemoteAddr, - USN: r.Header.Get("USN"), - NT: r.Header.Get("NT"), - Server: r.Header.Get("SERVER"), - Host: r.Header.Get("HOST"), - Location: *loc, - BootID: bootID, - ConfigID: configID, - SearchPort: uint16(searchPort), - LastUpdate: now, - CacheExpiry: now.Add(expiryDuration), - }, nil -} - -func parseCacheControlMaxAge(cc string) (time.Duration, error) { - matches := maxAgeRx.FindStringSubmatch(cc) - if len(matches) != 2 { - return 0, fmt.Errorf("did not find exactly one max-age in cache control header: %q", cc) - } - expirySeconds, err := strconv.ParseInt(matches[1], 10, 16) - if err != nil { - return 0, err - } - if expirySeconds < 1 || expirySeconds > maxExpiryTimeSeconds { - return 0, fmt.Errorf("rejecting bad expiry time of %d seconds", expirySeconds) - } - return time.Duration(expirySeconds) * time.Second, nil -} - -// parseUpnpIntHeader is intended to parse the -// {BOOT,CONFIGID,SEARCHPORT}.UPNP.ORG header fields. It returns the def if -// the head is empty or missing. -func parseUpnpIntHeader(headers http.Header, headerName string, def int32) (int32, error) { - s := headers.Get(headerName) - if s == "" { - return def, nil - } - v, err := strconv.ParseInt(s, 10, 32) - if err != nil { - return 0, fmt.Errorf("ssdp: could not parse header %s: %v", headerName, err) - } - return int32(v), nil -} - -var _ httpu.Handler = new(Registry) - -// Registry maintains knowledge of discovered devices and services. -// -// NOTE: the interface for this is experimental and may change, or go away -// entirely. -type Registry struct { - lock sync.Mutex - byUSN map[string]*Entry - - listenersLock sync.RWMutex - listeners map[chan<- Update]struct{} -} - -func NewRegistry() *Registry { - return &Registry{ - byUSN: make(map[string]*Entry), - listeners: make(map[chan<- Update]struct{}), - } -} - -// NewServerAndRegistry is a convenience function to create a registry, and an -// httpu server to pass it messages. Call ListenAndServe on the server for -// messages to be processed. -func NewServerAndRegistry() (*httpu.Server, *Registry) { - reg := NewRegistry() - srv := &httpu.Server{ - Addr: ssdpUDP4Addr, - Multicast: true, - Handler: reg, - } - return srv, reg -} - -func (reg *Registry) AddListener(c chan<- Update) { - reg.listenersLock.Lock() - defer reg.listenersLock.Unlock() - reg.listeners[c] = struct{}{} -} - -func (reg *Registry) RemoveListener(c chan<- Update) { - reg.listenersLock.Lock() - defer reg.listenersLock.Unlock() - delete(reg.listeners, c) -} - -func (reg *Registry) sendUpdate(u Update) { - reg.listenersLock.RLock() - defer reg.listenersLock.RUnlock() - for c := range reg.listeners { - c <- u - } -} - -// GetService returns known service (or device) entries for the given service -// URN. -func (reg *Registry) GetService(serviceURN string) []*Entry { - // Currently assumes that the map is small, so we do a linear search rather - // than indexed to avoid maintaining two maps. - var results []*Entry - reg.lock.Lock() - defer reg.lock.Unlock() - for _, entry := range reg.byUSN { - if entry.NT == serviceURN { - results = append(results, entry) - } - } - return results -} - -// ServeMessage implements httpu.Handler, and uses SSDP NOTIFY requests to -// maintain the registry of devices and services. -func (reg *Registry) ServeMessage(r *http.Request) { - if r.Method != methodNotify { - return - } - - nts := r.Header.Get("nts") - - var err error - switch nts { - case ntsAlive: - err = reg.handleNTSAlive(r) - case ntsUpdate: - err = reg.handleNTSUpdate(r) - case ntsByebye: - err = reg.handleNTSByebye(r) - default: - err = fmt.Errorf("unknown NTS value: %q", nts) - } - if err != nil { - log.Printf("goupnp/ssdp: failed to handle %s message from %s: %v", nts, r.RemoteAddr, err) - } -} - -func (reg *Registry) handleNTSAlive(r *http.Request) error { - entry, err := newEntryFromRequest(r) - if err != nil { - return err - } - - reg.lock.Lock() - reg.byUSN[entry.USN] = entry - reg.lock.Unlock() - - reg.sendUpdate(Update{ - USN: entry.USN, - EventType: EventAlive, - Entry: entry, - }) - - return nil -} - -func (reg *Registry) handleNTSUpdate(r *http.Request) error { - entry, err := newEntryFromRequest(r) - if err != nil { - return err - } - nextBootID, err := parseUpnpIntHeader(r.Header, "NEXTBOOTID.UPNP.ORG", -1) - if err != nil { - return err - } - entry.BootID = nextBootID - - reg.lock.Lock() - reg.byUSN[entry.USN] = entry - reg.lock.Unlock() - - reg.sendUpdate(Update{ - USN: entry.USN, - EventType: EventUpdate, - Entry: entry, - }) - - return nil -} - -func (reg *Registry) handleNTSByebye(r *http.Request) error { - usn := r.Header.Get("USN") - - reg.lock.Lock() - entry := reg.byUSN[usn] - delete(reg.byUSN, usn) - reg.lock.Unlock() - - reg.sendUpdate(Update{ - USN: usn, - EventType: EventByeBye, - Entry: entry, - }) - - return nil -} diff --git a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/ssdp/ssdp.go b/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/ssdp/ssdp.go deleted file mode 100644 index ec346b8a..00000000 --- a/vendor/gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/ssdp/ssdp.go +++ /dev/null @@ -1,83 +0,0 @@ -package ssdp - -import ( - "errors" - "log" - "net/http" - "net/url" - "strconv" - "time" - - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/httpu" -) - -const ( - ssdpDiscover = `"ssdp:discover"` - ntsAlive = `ssdp:alive` - ntsByebye = `ssdp:byebye` - ntsUpdate = `ssdp:update` - ssdpUDP4Addr = "239.255.255.250:1900" - ssdpSearchPort = 1900 - methodSearch = "M-SEARCH" - methodNotify = "NOTIFY" -) - -// SSDPRawSearch performs a fairly raw SSDP search request, and returns the -// unique response(s) that it receives. Each response has the requested -// searchTarget, a USN, and a valid location. maxWaitSeconds states how long to -// wait for responses in seconds, and must be a minimum of 1 (the -// implementation waits an additional 100ms for responses to arrive), 2 is a -// reasonable value for this. numSends is the number of requests to send - 3 is -// a reasonable value for this. -func SSDPRawSearch(httpu *httpu.HTTPUClient, searchTarget string, maxWaitSeconds int, numSends int) ([]*http.Response, error) { - if maxWaitSeconds < 1 { - return nil, errors.New("ssdp: maxWaitSeconds must be >= 1") - } - - seenUsns := make(map[string]bool) - var responses []*http.Response - req := http.Request{ - Method: methodSearch, - // TODO: Support both IPv4 and IPv6. - Host: ssdpUDP4Addr, - URL: &url.URL{Opaque: "*"}, - Header: http.Header{ - // Putting headers in here avoids them being title-cased. - // (The UPnP discovery protocol uses case-sensitive headers) - "HOST": []string{ssdpUDP4Addr}, - "MX": []string{strconv.FormatInt(int64(maxWaitSeconds), 10)}, - "MAN": []string{ssdpDiscover}, - "ST": []string{searchTarget}, - }, - } - allResponses, err := httpu.Do(&req, time.Duration(maxWaitSeconds)*time.Second+100*time.Millisecond, numSends) - if err != nil { - return nil, err - } - for _, response := range allResponses { - if response.StatusCode != 200 { - log.Printf("ssdp: got response status code %q in search response", response.Status) - continue - } - if st := response.Header.Get("ST"); st != searchTarget { - log.Printf("ssdp: got unexpected search target result %q", st) - continue - } - location, err := response.Location() - if err != nil { - log.Printf("ssdp: no usable location in search response (discarding): %v", err) - continue - } - usn := response.Header.Get("USN") - if usn == "" { - log.Printf("ssdp: empty/missing USN in search response (using location instead): %v", err) - usn = location.String() - } - if _, alreadySeen := seenUsns[usn]; !alreadySeen { - seenUsns[usn] = true - responses = append(responses, response) - } - } - - return responses, nil -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/.gxignore b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/CONTRIBUTING.md b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/CONTRIBUTING.md deleted file mode 100644 index d4eddcc5..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/CONTRIBUTING.md +++ /dev/null @@ -1,13 +0,0 @@ -# Contributing to SpdyStream - -Want to hack on spdystream? Awesome! Here are instructions to get you -started. - -SpdyStream is a part of the [Docker](https://docker.io) project, and follows -the same rules and principles. If you're already familiar with the way -Docker does things, you'll feel right at home. - -Otherwise, go read -[Docker's contributions guidelines](https://github.com/dotcloud/docker/blob/master/CONTRIBUTING.md). - -Happy hacking! diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/LICENSE b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/LICENSE deleted file mode 100644 index 9e4bd4db..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor 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, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2014-2015 Docker, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/LICENSE.docs b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/LICENSE.docs deleted file mode 100644 index e26cd4fc..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/LICENSE.docs +++ /dev/null @@ -1,425 +0,0 @@ -Attribution-ShareAlike 4.0 International - -======================================================================= - -Creative Commons Corporation ("Creative Commons") is not a law firm and -does not provide legal services or legal advice. Distribution of -Creative Commons public licenses does not create a lawyer-client or -other relationship. Creative Commons makes its licenses and related -information available on an "as-is" basis. Creative Commons gives no -warranties regarding its licenses, any material licensed under their -terms and conditions, or any related information. Creative Commons -disclaims all liability for damages resulting from their use to the -fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and -conditions that creators and other rights holders may use to share -original works of authorship and other material subject to copyright -and certain other rights specified in the public license below. The -following considerations are for informational purposes only, are not -exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees - -======================================================================= - -Creative Commons Attribution-ShareAlike 4.0 International Public -License - -By exercising the Licensed Rights (defined below), You accept and agree -to be bound by the terms and conditions of this Creative Commons -Attribution-ShareAlike 4.0 International Public License ("Public -License"). To the extent this Public License may be interpreted as a -contract, You are granted the Licensed Rights in consideration of Your -acceptance of these terms and conditions, and the Licensor grants You -such rights in consideration of benefits the Licensor receives from -making the Licensed Material available under these terms and -conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - - c. BY-SA Compatible License means a license listed at - creativecommons.org/compatiblelicenses, approved by Creative - Commons as essentially the equivalent of this Public License. - - d. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - - e. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - - f. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - - g. License Elements means the license attributes listed in the name - of a Creative Commons Public License. The License Elements of this - Public License are Attribution and ShareAlike. - - h. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - - i. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - - j. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - - k. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - - l. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - - m. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - - -Section 2 -- Scope. - - a. License grant. - - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - - a. reproduce and Share the Licensed Material, in whole or - in part; and - - b. produce, reproduce, and Share Adapted Material. - - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - - 3. Term. The term of this Public License is specified in Section - 6(a). - - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - - 5. Downstream recipients. - - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - - b. Additional offer from the Licensor -- Adapted Material. - Every recipient of Adapted Material from You - automatically receives an offer from the Licensor to - exercise the Licensed Rights in the Adapted Material - under the conditions of the Adapter's License You apply. - - c. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - - b. Other rights. - - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - - 2. Patent and trademark rights are not licensed under this - Public License. - - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the -following conditions. - - a. Attribution. - - 1. If You Share the Licensed Material (including in modified - form), You must: - - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - - ii. a copyright notice; - - iii. a notice that refers to this Public License; - - iv. a notice that refers to the disclaimer of - warranties; - - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - - b. ShareAlike. - - In addition to the conditions in Section 3(a), if You Share - Adapted Material You produce, the following conditions also apply. - - 1. The Adapter's License You apply must be a Creative Commons - license with the same License Elements, this version or - later, or a BY-SA Compatible License. - - 2. You must include the text of, or the URI or hyperlink to, the - Adapter's License You apply. You may satisfy this condition - in any reasonable manner based on the medium, means, and - context in which You Share Adapted Material. - - 3. You may not offer or impose any additional or different terms - or conditions on, or apply any Effective Technological - Measures to, Adapted Material that restrict exercise of the - rights granted under the Adapter's License You apply. - - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that -apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material, - - including for purposes of Section 3(b); and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. - -For the avoidance of doubt, this Section 4 supplements and does not -replace Your obligations under this Public License where the Licensed -Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - - 2. upon express reinstatement by the Licensor. - - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. - - -======================================================================= - -Creative Commons is not a party to its public licenses. -Notwithstanding, Creative Commons may elect to apply one of its public -licenses to material it publishes and in those instances will be -considered the "Licensor." Except for the limited purpose of indicating -that material is shared under a Creative Commons public license or as -otherwise permitted by the Creative Commons policies published at -creativecommons.org/policies, Creative Commons does not authorize the -use of the trademark "Creative Commons" or any other trademark or logo -of Creative Commons without its prior written consent including, -without limitation, in connection with any unauthorized modifications -to any of its public licenses or any other arrangements, -understandings, or agreements concerning use of licensed material. For -the avoidance of doubt, this paragraph does not form part of the public -licenses. - -Creative Commons may be contacted at creativecommons.org. diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/MAINTAINERS b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/MAINTAINERS deleted file mode 100644 index 4eb44dcf..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/MAINTAINERS +++ /dev/null @@ -1 +0,0 @@ -Derek McGowan (@dmcg) diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/README.md b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/README.md deleted file mode 100644 index 11cccd0a..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/README.md +++ /dev/null @@ -1,77 +0,0 @@ -# SpdyStream - -A multiplexed stream library using spdy - -## Usage - -Client example (connecting to mirroring server without auth) - -```go -package main - -import ( - "fmt" - "github.com/docker/spdystream" - "net" - "net/http" -) - -func main() { - conn, err := net.Dial("tcp", "localhost:8080") - if err != nil { - panic(err) - } - spdyConn, err := spdystream.NewConnection(conn, false) - if err != nil { - panic(err) - } - go spdyConn.Serve(spdystream.NoOpStreamHandler) - stream, err := spdyConn.CreateStream(http.Header{}, nil, false) - if err != nil { - panic(err) - } - - stream.Wait() - - fmt.Fprint(stream, "Writing to stream") - - buf := make([]byte, 25) - stream.Read(buf) - fmt.Println(string(buf)) - - stream.Close() -} -``` - -Server example (mirroring server without auth) - -```go -package main - -import ( - "github.com/docker/spdystream" - "net" -) - -func main() { - listener, err := net.Listen("tcp", "localhost:8080") - if err != nil { - panic(err) - } - for { - conn, err := listener.Accept() - if err != nil { - panic(err) - } - spdyConn, err := spdystream.NewConnection(conn, true) - if err != nil { - panic(err) - } - go spdyConn.Serve(spdystream.MirrorStreamHandler) - } -} -``` - -## Copyright and license - -Copyright © 2014-2015 Docker, Inc. All rights reserved, except as follows. Code is released under the Apache 2.0 license. The README.md file, and files in the "docs" folder are licensed under the Creative Commons Attribution 4.0 International License under the terms and conditions set forth in the file "LICENSE.docs". You may obtain a duplicate copy of the same license, titled CC-BY-SA-4.0, at http://creativecommons.org/licenses/by/4.0/. diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/connection.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/connection.go deleted file mode 100644 index c5604c6d..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/connection.go +++ /dev/null @@ -1,932 +0,0 @@ -package spdystream - -import ( - "errors" - "fmt" - "io" - "net" - "net/http" - "sync" - "time" - - "gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy" -) - -var ( - ErrInvalidStreamId = errors.New("Invalid stream id") - ErrTimeout = errors.New("Timeout occured") - ErrReset = errors.New("Stream reset") - ErrWriteClosedStream = errors.New("Write on closed stream") -) - -const ( - FRAME_WORKERS = 5 - QUEUE_SIZE = 50 -) - -type StreamHandler func(stream *Stream) - -type AuthHandler func(header http.Header, slot uint8, parent uint32) bool - -type idleAwareFramer struct { - f *spdy.Framer - conn *Connection - writeLock sync.Mutex - resetChan chan struct{} - setTimeoutChan chan time.Duration - timeout time.Duration -} - -func newIdleAwareFramer(framer *spdy.Framer) *idleAwareFramer { - iaf := &idleAwareFramer{ - f: framer, - resetChan: make(chan struct{}, 2), - setTimeoutChan: make(chan time.Duration), - } - return iaf -} - -func (i *idleAwareFramer) monitor() { - var ( - timer *time.Timer - expired <-chan time.Time - resetChan = i.resetChan - ) -Loop: - for { - select { - case timeout := <-i.setTimeoutChan: - i.timeout = timeout - if timeout == 0 { - if timer != nil { - timer.Stop() - } - } else { - if timer == nil { - timer = time.NewTimer(timeout) - expired = timer.C - } else { - timer.Reset(timeout) - } - } - case <-resetChan: - if timer != nil && i.timeout > 0 { - timer.Reset(i.timeout) - } - case <-expired: - i.conn.streamCond.L.Lock() - streams := i.conn.streams - i.conn.streams = make(map[spdy.StreamId]*Stream) - i.conn.streamCond.Broadcast() - i.conn.streamCond.L.Unlock() - go func() { - for _, stream := range streams { - stream.resetStream() - } - i.conn.Close() - }() - case <-i.conn.closeChan: - if timer != nil { - timer.Stop() - } - - // Start a goroutine to drain resetChan. This is needed because we've seen - // some unit tests with large numbers of goroutines get into a situation - // where resetChan fills up, at least 1 call to Write() is still trying to - // send to resetChan, the connection gets closed, and this case statement - // attempts to grab the write lock that Write() already has, causing a - // deadlock. - // - // See https://github.com/docker/spdystream/issues/49 for more details. - go func() { - for _ = range resetChan { - } - }() - - i.writeLock.Lock() - close(resetChan) - i.resetChan = nil - i.writeLock.Unlock() - - break Loop - } - } - - // Drain resetChan - for _ = range resetChan { - } -} - -func (i *idleAwareFramer) WriteFrame(frame spdy.Frame) error { - i.writeLock.Lock() - defer i.writeLock.Unlock() - if i.resetChan == nil { - return io.EOF - } - err := i.f.WriteFrame(frame) - if err != nil { - return err - } - - i.resetChan <- struct{}{} - - return nil -} - -func (i *idleAwareFramer) ReadFrame() (spdy.Frame, error) { - frame, err := i.f.ReadFrame() - if err != nil { - return nil, err - } - - // resetChan should never be closed since it is only closed - // when the connection has closed its closeChan. This closure - // only occurs after all Reads have finished - // TODO (dmcgowan): refactor relationship into connection - i.resetChan <- struct{}{} - - return frame, nil -} - -type Connection struct { - conn net.Conn - framer *idleAwareFramer - - closeChan chan bool - goneAway bool - lastStreamChan chan<- *Stream - goAwayTimeout time.Duration - closeTimeout time.Duration - - streamLock *sync.RWMutex - streamCond *sync.Cond - streams map[spdy.StreamId]*Stream - - nextIdLock sync.Mutex - receiveIdLock sync.Mutex - nextStreamId spdy.StreamId - receivedStreamId spdy.StreamId - - pingIdLock sync.Mutex - pingId uint32 - pingChans map[uint32]chan error - - shutdownLock sync.Mutex - shutdownChan chan error - hasShutdown bool - - // for testing https://github.com/docker/spdystream/pull/56 - dataFrameHandler func(*spdy.DataFrame) error -} - -// NewConnection creates a new spdy connection from an existing -// network connection. -func NewConnection(conn net.Conn, server bool) (*Connection, error) { - framer, framerErr := spdy.NewFramer(conn, conn) - if framerErr != nil { - return nil, framerErr - } - idleAwareFramer := newIdleAwareFramer(framer) - var sid spdy.StreamId - var rid spdy.StreamId - var pid uint32 - if server { - sid = 2 - rid = 1 - pid = 2 - } else { - sid = 1 - rid = 2 - pid = 1 - } - - streamLock := new(sync.RWMutex) - streamCond := sync.NewCond(streamLock) - - session := &Connection{ - conn: conn, - framer: idleAwareFramer, - - closeChan: make(chan bool), - goAwayTimeout: time.Duration(0), - closeTimeout: time.Duration(0), - - streamLock: streamLock, - streamCond: streamCond, - streams: make(map[spdy.StreamId]*Stream), - nextStreamId: sid, - receivedStreamId: rid, - - pingId: pid, - pingChans: make(map[uint32]chan error), - - shutdownChan: make(chan error), - } - session.dataFrameHandler = session.handleDataFrame - idleAwareFramer.conn = session - go idleAwareFramer.monitor() - - return session, nil -} - -// Ping sends a ping frame across the connection and -// returns the response time -func (s *Connection) Ping() (time.Duration, error) { - pid := s.pingId - s.pingIdLock.Lock() - if s.pingId > 0x7ffffffe { - s.pingId = s.pingId - 0x7ffffffe - } else { - s.pingId = s.pingId + 2 - } - s.pingIdLock.Unlock() - pingChan := make(chan error) - s.pingChans[pid] = pingChan - defer delete(s.pingChans, pid) - - frame := &spdy.PingFrame{Id: pid} - startTime := time.Now() - writeErr := s.framer.WriteFrame(frame) - if writeErr != nil { - return time.Duration(0), writeErr - } - select { - case <-s.closeChan: - return time.Duration(0), errors.New("connection closed") - case err, ok := <-pingChan: - if ok && err != nil { - return time.Duration(0), err - } - break - } - return time.Now().Sub(startTime), nil -} - -// Serve handles frames sent from the server, including reply frames -// which are needed to fully initiate connections. Both clients and servers -// should call Serve in a separate goroutine before creating streams. -func (s *Connection) Serve(newHandler StreamHandler) { - // use a WaitGroup to wait for all frames to be drained after receiving - // go-away. - var wg sync.WaitGroup - - // Parition queues to ensure stream frames are handled - // by the same worker, ensuring order is maintained - frameQueues := make([]*PriorityFrameQueue, FRAME_WORKERS) - for i := 0; i < FRAME_WORKERS; i++ { - frameQueues[i] = NewPriorityFrameQueue(QUEUE_SIZE) - - // Ensure frame queue is drained when connection is closed - go func(frameQueue *PriorityFrameQueue) { - <-s.closeChan - frameQueue.Drain() - }(frameQueues[i]) - - wg.Add(1) - go func(frameQueue *PriorityFrameQueue) { - // let the WaitGroup know this worker is done - defer wg.Done() - - s.frameHandler(frameQueue, newHandler) - }(frameQueues[i]) - } - - var ( - partitionRoundRobin int - goAwayFrame *spdy.GoAwayFrame - ) - for { - readFrame, err := s.framer.ReadFrame() - if err != nil { - if err != io.EOF { - fmt.Errorf("frame read error: %s", err) - } else { - debugMessage("(%p) EOF received", s) - } - break - } - var priority uint8 - var partition int - switch frame := readFrame.(type) { - case *spdy.SynStreamFrame: - if s.checkStreamFrame(frame) { - priority = frame.Priority - partition = int(frame.StreamId % FRAME_WORKERS) - debugMessage("(%p) Add stream frame: %d ", s, frame.StreamId) - s.addStreamFrame(frame) - } else { - debugMessage("(%p) Rejected stream frame: %d ", s, frame.StreamId) - continue - } - case *spdy.SynReplyFrame: - priority = s.getStreamPriority(frame.StreamId) - partition = int(frame.StreamId % FRAME_WORKERS) - case *spdy.DataFrame: - priority = s.getStreamPriority(frame.StreamId) - partition = int(frame.StreamId % FRAME_WORKERS) - case *spdy.RstStreamFrame: - priority = s.getStreamPriority(frame.StreamId) - partition = int(frame.StreamId % FRAME_WORKERS) - case *spdy.HeadersFrame: - priority = s.getStreamPriority(frame.StreamId) - partition = int(frame.StreamId % FRAME_WORKERS) - case *spdy.PingFrame: - priority = 0 - partition = partitionRoundRobin - partitionRoundRobin = (partitionRoundRobin + 1) % FRAME_WORKERS - case *spdy.GoAwayFrame: - // hold on to the go away frame and exit the loop - goAwayFrame = frame - break - default: - priority = 7 - partition = partitionRoundRobin - partitionRoundRobin = (partitionRoundRobin + 1) % FRAME_WORKERS - } - frameQueues[partition].Push(readFrame, priority) - } - close(s.closeChan) - - // wait for all frame handler workers to indicate they've drained their queues - // before handling the go away frame - wg.Wait() - - if goAwayFrame != nil { - s.handleGoAwayFrame(goAwayFrame) - } - - // now it's safe to close remote channels and empty s.streams - s.streamCond.L.Lock() - // notify streams that they're now closed, which will - // unblock any stream Read() calls - for _, stream := range s.streams { - stream.closeRemoteChannels() - } - s.streams = make(map[spdy.StreamId]*Stream) - s.streamCond.Broadcast() - s.streamCond.L.Unlock() -} - -func (s *Connection) frameHandler(frameQueue *PriorityFrameQueue, newHandler StreamHandler) { - for { - popFrame := frameQueue.Pop() - if popFrame == nil { - return - } - - var frameErr error - switch frame := popFrame.(type) { - case *spdy.SynStreamFrame: - frameErr = s.handleStreamFrame(frame, newHandler) - case *spdy.SynReplyFrame: - frameErr = s.handleReplyFrame(frame) - case *spdy.DataFrame: - frameErr = s.dataFrameHandler(frame) - case *spdy.RstStreamFrame: - frameErr = s.handleResetFrame(frame) - case *spdy.HeadersFrame: - frameErr = s.handleHeaderFrame(frame) - case *spdy.PingFrame: - frameErr = s.handlePingFrame(frame) - case *spdy.GoAwayFrame: - frameErr = s.handleGoAwayFrame(frame) - default: - frameErr = fmt.Errorf("unhandled frame type: %T", frame) - } - - if frameErr != nil { - fmt.Errorf("frame handling error: %s", frameErr) - } - } -} - -func (s *Connection) getStreamPriority(streamId spdy.StreamId) uint8 { - stream, streamOk := s.getStream(streamId) - if !streamOk { - return 7 - } - return stream.priority -} - -func (s *Connection) addStreamFrame(frame *spdy.SynStreamFrame) { - var parent *Stream - if frame.AssociatedToStreamId != spdy.StreamId(0) { - parent, _ = s.getStream(frame.AssociatedToStreamId) - } - - stream := &Stream{ - streamId: frame.StreamId, - parent: parent, - conn: s, - startChan: make(chan error), - headers: frame.Headers, - finished: (frame.CFHeader.Flags & spdy.ControlFlagUnidirectional) != 0x00, - replyCond: sync.NewCond(new(sync.Mutex)), - dataChan: make(chan []byte), - headerChan: make(chan http.Header), - closeChan: make(chan bool), - } - if frame.CFHeader.Flags&spdy.ControlFlagFin != 0x00 { - stream.closeRemoteChannels() - } - - s.addStream(stream) -} - -// checkStreamFrame checks to see if a stream frame is allowed. -// If the stream is invalid, then a reset frame with protocol error -// will be returned. -func (s *Connection) checkStreamFrame(frame *spdy.SynStreamFrame) bool { - s.receiveIdLock.Lock() - defer s.receiveIdLock.Unlock() - if s.goneAway { - return false - } - validationErr := s.validateStreamId(frame.StreamId) - if validationErr != nil { - go func() { - resetErr := s.sendResetFrame(spdy.ProtocolError, frame.StreamId) - if resetErr != nil { - fmt.Errorf("reset error: %s", resetErr) - } - }() - return false - } - return true -} - -func (s *Connection) handleStreamFrame(frame *spdy.SynStreamFrame, newHandler StreamHandler) error { - stream, ok := s.getStream(frame.StreamId) - if !ok { - return fmt.Errorf("Missing stream: %d", frame.StreamId) - } - - newHandler(stream) - - return nil -} - -func (s *Connection) handleReplyFrame(frame *spdy.SynReplyFrame) error { - debugMessage("(%p) Reply frame received for %d", s, frame.StreamId) - stream, streamOk := s.getStream(frame.StreamId) - if !streamOk { - debugMessage("Reply frame gone away for %d", frame.StreamId) - // Stream has already gone away - return nil - } - if stream.replied { - // Stream has already received reply - return nil - } - stream.replied = true - - // TODO Check for error - if (frame.CFHeader.Flags & spdy.ControlFlagFin) != 0x00 { - s.remoteStreamFinish(stream) - } - - close(stream.startChan) - - return nil -} - -func (s *Connection) handleResetFrame(frame *spdy.RstStreamFrame) error { - stream, streamOk := s.getStream(frame.StreamId) - if !streamOk { - // Stream has already been removed - return nil - } - s.removeStream(stream) - stream.closeRemoteChannels() - - if !stream.replied { - stream.replied = true - stream.startChan <- ErrReset - close(stream.startChan) - } - - stream.finishLock.Lock() - stream.finished = true - stream.finishLock.Unlock() - - return nil -} - -func (s *Connection) handleHeaderFrame(frame *spdy.HeadersFrame) error { - stream, streamOk := s.getStream(frame.StreamId) - if !streamOk { - // Stream has already gone away - return nil - } - if !stream.replied { - // No reply received...Protocol error? - return nil - } - - // TODO limit headers while not blocking (use buffered chan or goroutine?) - select { - case <-stream.closeChan: - return nil - case stream.headerChan <- frame.Headers: - } - - if (frame.CFHeader.Flags & spdy.ControlFlagFin) != 0x00 { - s.remoteStreamFinish(stream) - } - - return nil -} - -func (s *Connection) handleDataFrame(frame *spdy.DataFrame) error { - debugMessage("(%p) Data frame received for %d", s, frame.StreamId) - stream, streamOk := s.getStream(frame.StreamId) - if !streamOk { - debugMessage("(%p) Data frame gone away for %d", s, frame.StreamId) - // Stream has already gone away - return nil - } - if !stream.replied { - debugMessage("(%p) Data frame not replied %d", s, frame.StreamId) - // No reply received...Protocol error? - return nil - } - - debugMessage("(%p) (%d) Data frame handling", stream, stream.streamId) - if len(frame.Data) > 0 { - stream.dataLock.RLock() - select { - case <-stream.closeChan: - debugMessage("(%p) (%d) Data frame not sent (stream shut down)", stream, stream.streamId) - case stream.dataChan <- frame.Data: - debugMessage("(%p) (%d) Data frame sent", stream, stream.streamId) - } - stream.dataLock.RUnlock() - } - if (frame.Flags & spdy.DataFlagFin) != 0x00 { - s.remoteStreamFinish(stream) - } - return nil -} - -func (s *Connection) handlePingFrame(frame *spdy.PingFrame) error { - if s.pingId&0x01 != frame.Id&0x01 { - return s.framer.WriteFrame(frame) - } - pingChan, pingOk := s.pingChans[frame.Id] - if pingOk { - close(pingChan) - } - return nil -} - -func (s *Connection) handleGoAwayFrame(frame *spdy.GoAwayFrame) error { - debugMessage("(%p) Go away received", s) - s.receiveIdLock.Lock() - if s.goneAway { - s.receiveIdLock.Unlock() - return nil - } - s.goneAway = true - s.receiveIdLock.Unlock() - - if s.lastStreamChan != nil { - stream, _ := s.getStream(frame.LastGoodStreamId) - go func() { - s.lastStreamChan <- stream - }() - } - - // Do not block frame handler waiting for closure - go s.shutdown(s.goAwayTimeout) - - return nil -} - -func (s *Connection) remoteStreamFinish(stream *Stream) { - stream.closeRemoteChannels() - - stream.finishLock.Lock() - if stream.finished { - // Stream is fully closed, cleanup - s.removeStream(stream) - } - stream.finishLock.Unlock() -} - -// CreateStream creates a new spdy stream using the parameters for -// creating the stream frame. The stream frame will be sent upon -// calling this function, however this function does not wait for -// the reply frame. If waiting for the reply is desired, use -// the stream Wait or WaitTimeout function on the stream returned -// by this function. -func (s *Connection) CreateStream(headers http.Header, parent *Stream, fin bool) (*Stream, error) { - // MUST synchronize stream creation (all the way to writing the frame) - // as stream IDs **MUST** increase monotonically. - s.nextIdLock.Lock() - defer s.nextIdLock.Unlock() - - streamId := s.getNextStreamId() - if streamId == 0 { - return nil, fmt.Errorf("Unable to get new stream id") - } - - stream := &Stream{ - streamId: streamId, - parent: parent, - conn: s, - startChan: make(chan error), - headers: headers, - dataChan: make(chan []byte), - headerChan: make(chan http.Header), - closeChan: make(chan bool), - } - - debugMessage("(%p) (%p) Create stream", s, stream) - - s.addStream(stream) - - return stream, s.sendStream(stream, fin) -} - -func (s *Connection) shutdown(closeTimeout time.Duration) { - // TODO Ensure this isn't called multiple times - s.shutdownLock.Lock() - if s.hasShutdown { - s.shutdownLock.Unlock() - return - } - s.hasShutdown = true - s.shutdownLock.Unlock() - - var timeout <-chan time.Time - if closeTimeout > time.Duration(0) { - timeout = time.After(closeTimeout) - } - streamsClosed := make(chan bool) - - go func() { - s.streamCond.L.Lock() - for len(s.streams) > 0 { - debugMessage("Streams opened: %d, %#v", len(s.streams), s.streams) - s.streamCond.Wait() - } - s.streamCond.L.Unlock() - close(streamsClosed) - }() - - var err error - select { - case <-streamsClosed: - // No active streams, close should be safe - err = s.conn.Close() - case <-timeout: - // Force ungraceful close - err = s.conn.Close() - // Wait for cleanup to clear active streams - <-streamsClosed - } - - if err != nil { - duration := 10 * time.Minute - time.AfterFunc(duration, func() { - select { - case err, ok := <-s.shutdownChan: - if ok { - fmt.Errorf("Unhandled close error after %s: %s", duration, err) - } - default: - } - }) - s.shutdownChan <- err - } - close(s.shutdownChan) - - return -} - -// Closes spdy connection by sending GoAway frame and initiating shutdown -func (s *Connection) Close() error { - s.receiveIdLock.Lock() - if s.goneAway { - s.receiveIdLock.Unlock() - return nil - } - s.goneAway = true - s.receiveIdLock.Unlock() - - var lastStreamId spdy.StreamId - if s.receivedStreamId > 2 { - lastStreamId = s.receivedStreamId - 2 - } - - goAwayFrame := &spdy.GoAwayFrame{ - LastGoodStreamId: lastStreamId, - Status: spdy.GoAwayOK, - } - - err := s.framer.WriteFrame(goAwayFrame) - if err != nil { - return err - } - - go s.shutdown(s.closeTimeout) - - return nil -} - -// CloseWait closes the connection and waits for shutdown -// to finish. Note the underlying network Connection -// is not closed until the end of shutdown. -func (s *Connection) CloseWait() error { - closeErr := s.Close() - if closeErr != nil { - return closeErr - } - shutdownErr, ok := <-s.shutdownChan - if ok { - return shutdownErr - } - return nil -} - -// Wait waits for the connection to finish shutdown or for -// the wait timeout duration to expire. This needs to be -// called either after Close has been called or the GOAWAYFRAME -// has been received. If the wait timeout is 0, this function -// will block until shutdown finishes. If wait is never called -// and a shutdown error occurs, that error will be logged as an -// unhandled error. -func (s *Connection) Wait(waitTimeout time.Duration) error { - var timeout <-chan time.Time - if waitTimeout > time.Duration(0) { - timeout = time.After(waitTimeout) - } - - select { - case err, ok := <-s.shutdownChan: - if ok { - return err - } - case <-timeout: - return ErrTimeout - } - return nil -} - -// NotifyClose registers a channel to be called when the remote -// peer inidicates connection closure. The last stream to be -// received by the remote will be sent on the channel. The notify -// timeout will determine the duration between go away received -// and the connection being closed. -func (s *Connection) NotifyClose(c chan<- *Stream, timeout time.Duration) { - s.goAwayTimeout = timeout - s.lastStreamChan = c -} - -// SetCloseTimeout sets the amount of time close will wait for -// streams to finish before terminating the underlying network -// connection. Setting the timeout to 0 will cause close to -// wait forever, which is the default. -func (s *Connection) SetCloseTimeout(timeout time.Duration) { - s.closeTimeout = timeout -} - -// SetIdleTimeout sets the amount of time the connection may sit idle before -// it is forcefully terminated. -func (s *Connection) SetIdleTimeout(timeout time.Duration) { - s.framer.setTimeoutChan <- timeout -} - -func (s *Connection) sendHeaders(headers http.Header, stream *Stream, fin bool) error { - var flags spdy.ControlFlags - if fin { - flags = spdy.ControlFlagFin - } - - headerFrame := &spdy.HeadersFrame{ - StreamId: stream.streamId, - Headers: headers, - CFHeader: spdy.ControlFrameHeader{Flags: flags}, - } - - return s.framer.WriteFrame(headerFrame) -} - -func (s *Connection) sendReply(headers http.Header, stream *Stream, fin bool) error { - var flags spdy.ControlFlags - if fin { - flags = spdy.ControlFlagFin - } - - replyFrame := &spdy.SynReplyFrame{ - StreamId: stream.streamId, - Headers: headers, - CFHeader: spdy.ControlFrameHeader{Flags: flags}, - } - - return s.framer.WriteFrame(replyFrame) -} - -func (s *Connection) sendResetFrame(status spdy.RstStreamStatus, streamId spdy.StreamId) error { - resetFrame := &spdy.RstStreamFrame{ - StreamId: streamId, - Status: status, - } - - return s.framer.WriteFrame(resetFrame) -} - -func (s *Connection) sendReset(status spdy.RstStreamStatus, stream *Stream) error { - return s.sendResetFrame(status, stream.streamId) -} - -func (s *Connection) sendStream(stream *Stream, fin bool) error { - var flags spdy.ControlFlags - if fin { - flags = spdy.ControlFlagFin - stream.finished = true - } - - var parentId spdy.StreamId - if stream.parent != nil { - parentId = stream.parent.streamId - } - - streamFrame := &spdy.SynStreamFrame{ - StreamId: spdy.StreamId(stream.streamId), - AssociatedToStreamId: spdy.StreamId(parentId), - Headers: stream.headers, - CFHeader: spdy.ControlFrameHeader{Flags: flags}, - } - - return s.framer.WriteFrame(streamFrame) -} - -// getNextStreamId returns the next sequential id -// every call should produce a unique value or an error -func (s *Connection) getNextStreamId() spdy.StreamId { - sid := s.nextStreamId - if sid > 0x7fffffff { - return 0 - } - s.nextStreamId = s.nextStreamId + 2 - return sid -} - -// PeekNextStreamId returns the next sequential id and keeps the next id untouched -func (s *Connection) PeekNextStreamId() spdy.StreamId { - sid := s.nextStreamId - return sid -} - -func (s *Connection) validateStreamId(rid spdy.StreamId) error { - if rid > 0x7fffffff || rid < s.receivedStreamId { - return ErrInvalidStreamId - } - s.receivedStreamId = rid + 2 - return nil -} - -func (s *Connection) addStream(stream *Stream) { - s.streamCond.L.Lock() - s.streams[stream.streamId] = stream - debugMessage("(%p) (%p) Stream added, broadcasting: %d", s, stream, stream.streamId) - s.streamCond.Broadcast() - s.streamCond.L.Unlock() -} - -func (s *Connection) removeStream(stream *Stream) { - s.streamCond.L.Lock() - delete(s.streams, stream.streamId) - debugMessage("(%p) (%p) Stream removed, broadcasting: %d", s, stream, stream.streamId) - s.streamCond.Broadcast() - s.streamCond.L.Unlock() -} - -func (s *Connection) getStream(streamId spdy.StreamId) (stream *Stream, ok bool) { - s.streamLock.RLock() - stream, ok = s.streams[streamId] - s.streamLock.RUnlock() - return -} - -// FindStream looks up the given stream id and either waits for the -// stream to be found or returns nil if the stream id is no longer -// valid. -func (s *Connection) FindStream(streamId uint32) *Stream { - var stream *Stream - var ok bool - s.streamCond.L.Lock() - stream, ok = s.streams[spdy.StreamId(streamId)] - debugMessage("(%p) Found stream %d? %t", s, spdy.StreamId(streamId), ok) - for !ok && streamId >= uint32(s.receivedStreamId) { - s.streamCond.Wait() - stream, ok = s.streams[spdy.StreamId(streamId)] - } - s.streamCond.L.Unlock() - return stream -} - -func (s *Connection) CloseChan() <-chan bool { - return s.closeChan -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/handlers.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/handlers.go deleted file mode 100644 index b59fa5fd..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/handlers.go +++ /dev/null @@ -1,38 +0,0 @@ -package spdystream - -import ( - "io" - "net/http" -) - -// MirrorStreamHandler mirrors all streams. -func MirrorStreamHandler(stream *Stream) { - replyErr := stream.SendReply(http.Header{}, false) - if replyErr != nil { - return - } - - go func() { - io.Copy(stream, stream) - stream.Close() - }() - go func() { - for { - header, receiveErr := stream.ReceiveHeader() - if receiveErr != nil { - return - } - sendErr := stream.SendHeader(header, false) - if sendErr != nil { - return - } - } - }() -} - -// NoopStreamHandler does nothing when stream connects, most -// likely used with RejectAuthHandler which will not allow any -// streams to make it to the stream handler. -func NoOpStreamHandler(stream *Stream) { - stream.SendReply(http.Header{}, false) -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/package.json b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/package.json deleted file mode 100644 index b6cf92bf..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "spdystream", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "websocket", - "hash": "QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p", - "version": "1.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/docker/spdystream" - } -} \ No newline at end of file diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/priority.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/priority.go deleted file mode 100644 index a3231144..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/priority.go +++ /dev/null @@ -1,98 +0,0 @@ -package spdystream - -import ( - "container/heap" - "sync" - - "gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy" -) - -type prioritizedFrame struct { - frame spdy.Frame - priority uint8 - insertId uint64 -} - -type frameQueue []*prioritizedFrame - -func (fq frameQueue) Len() int { - return len(fq) -} - -func (fq frameQueue) Less(i, j int) bool { - if fq[i].priority == fq[j].priority { - return fq[i].insertId < fq[j].insertId - } - return fq[i].priority < fq[j].priority -} - -func (fq frameQueue) Swap(i, j int) { - fq[i], fq[j] = fq[j], fq[i] -} - -func (fq *frameQueue) Push(x interface{}) { - *fq = append(*fq, x.(*prioritizedFrame)) -} - -func (fq *frameQueue) Pop() interface{} { - old := *fq - n := len(old) - *fq = old[0 : n-1] - return old[n-1] -} - -type PriorityFrameQueue struct { - queue *frameQueue - c *sync.Cond - size int - nextInsertId uint64 - drain bool -} - -func NewPriorityFrameQueue(size int) *PriorityFrameQueue { - queue := make(frameQueue, 0, size) - heap.Init(&queue) - - return &PriorityFrameQueue{ - queue: &queue, - size: size, - c: sync.NewCond(&sync.Mutex{}), - } -} - -func (q *PriorityFrameQueue) Push(frame spdy.Frame, priority uint8) { - q.c.L.Lock() - defer q.c.L.Unlock() - for q.queue.Len() >= q.size { - q.c.Wait() - } - pFrame := &prioritizedFrame{ - frame: frame, - priority: priority, - insertId: q.nextInsertId, - } - q.nextInsertId = q.nextInsertId + 1 - heap.Push(q.queue, pFrame) - q.c.Signal() -} - -func (q *PriorityFrameQueue) Pop() spdy.Frame { - q.c.L.Lock() - defer q.c.L.Unlock() - for q.queue.Len() == 0 { - if q.drain { - return nil - } - q.c.Wait() - } - frame := heap.Pop(q.queue).(*prioritizedFrame).frame - q.c.Signal() - return frame -} - -func (q *PriorityFrameQueue) Drain() { - q.c.L.Lock() - defer q.c.L.Unlock() - q.drain = true - q.c.Broadcast() -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/priority_test.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/priority_test.go deleted file mode 100644 index a7bd7dc1..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/priority_test.go +++ /dev/null @@ -1,108 +0,0 @@ -package spdystream - -import ( - "sync" - "testing" - "time" - - "gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy" -) - -func TestPriorityQueueOrdering(t *testing.T) { - queue := NewPriorityFrameQueue(150) - data1 := &spdy.DataFrame{} - data2 := &spdy.DataFrame{} - data3 := &spdy.DataFrame{} - data4 := &spdy.DataFrame{} - queue.Push(data1, 2) - queue.Push(data2, 1) - queue.Push(data3, 1) - queue.Push(data4, 0) - - if queue.Pop() != data4 { - t.Fatalf("Wrong order, expected data4 first") - } - if queue.Pop() != data2 { - t.Fatalf("Wrong order, expected data2 second") - } - if queue.Pop() != data3 { - t.Fatalf("Wrong order, expected data3 third") - } - if queue.Pop() != data1 { - t.Fatalf("Wrong order, expected data1 fourth") - } - - // Insert 50 Medium priority frames - for i := spdy.StreamId(50); i < 100; i++ { - queue.Push(&spdy.DataFrame{StreamId: i}, 1) - } - // Insert 50 low priority frames - for i := spdy.StreamId(100); i < 150; i++ { - queue.Push(&spdy.DataFrame{StreamId: i}, 2) - } - // Insert 50 high priority frames - for i := spdy.StreamId(0); i < 50; i++ { - queue.Push(&spdy.DataFrame{StreamId: i}, 0) - } - - for i := spdy.StreamId(0); i < 150; i++ { - frame := queue.Pop() - if frame.(*spdy.DataFrame).StreamId != i { - t.Fatalf("Wrong frame\nActual: %d\nExpecting: %d", frame.(*spdy.DataFrame).StreamId, i) - } - } -} - -func TestPriorityQueueSync(t *testing.T) { - queue := NewPriorityFrameQueue(150) - var wg sync.WaitGroup - insertRange := func(start, stop spdy.StreamId, priority uint8) { - for i := start; i < stop; i++ { - queue.Push(&spdy.DataFrame{StreamId: i}, priority) - } - wg.Done() - } - wg.Add(3) - go insertRange(spdy.StreamId(100), spdy.StreamId(150), 2) - go insertRange(spdy.StreamId(0), spdy.StreamId(50), 0) - go insertRange(spdy.StreamId(50), spdy.StreamId(100), 1) - - wg.Wait() - for i := spdy.StreamId(0); i < 150; i++ { - frame := queue.Pop() - if frame.(*spdy.DataFrame).StreamId != i { - t.Fatalf("Wrong frame\nActual: %d\nExpecting: %d", frame.(*spdy.DataFrame).StreamId, i) - } - } -} - -func TestPriorityQueueBlocking(t *testing.T) { - queue := NewPriorityFrameQueue(15) - for i := 0; i < 15; i++ { - queue.Push(&spdy.DataFrame{}, 2) - } - doneChan := make(chan bool) - go func() { - queue.Push(&spdy.DataFrame{}, 2) - close(doneChan) - }() - select { - case <-doneChan: - t.Fatalf("Push succeeded, expected to block") - case <-time.After(time.Millisecond): - break - } - - queue.Pop() - - select { - case <-doneChan: - break - case <-time.After(time.Millisecond): - t.Fatalf("Push should have succeeded, but timeout reached") - } - - for i := 0; i < 15; i++ { - queue.Pop() - } -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/dictionary.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/dictionary.go deleted file mode 100644 index 5a5ff0e1..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/dictionary.go +++ /dev/null @@ -1,187 +0,0 @@ -// 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 spdy - -// headerDictionary is the dictionary sent to the zlib compressor/decompressor. -var headerDictionary = []byte{ - 0x00, 0x00, 0x00, 0x07, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x00, 0x00, 0x00, 0x04, 0x68, - 0x65, 0x61, 0x64, 0x00, 0x00, 0x00, 0x04, 0x70, - 0x6f, 0x73, 0x74, 0x00, 0x00, 0x00, 0x03, 0x70, - 0x75, 0x74, 0x00, 0x00, 0x00, 0x06, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x00, 0x00, 0x00, 0x05, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x00, 0x00, - 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x00, - 0x00, 0x00, 0x0e, 0x61, 0x63, 0x63, 0x65, 0x70, - 0x74, 0x2d, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, - 0x74, 0x00, 0x00, 0x00, 0x0f, 0x61, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x2d, 0x65, 0x6e, 0x63, 0x6f, - 0x64, 0x69, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x0f, - 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2d, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x00, - 0x00, 0x00, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x70, - 0x74, 0x2d, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x00, 0x00, 0x00, 0x03, 0x61, 0x67, 0x65, 0x00, - 0x00, 0x00, 0x05, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x00, 0x00, 0x00, 0x0d, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x00, 0x00, 0x00, 0x0d, 0x63, 0x61, 0x63, - 0x68, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x00, 0x00, 0x00, 0x0a, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x00, 0x00, 0x00, 0x0c, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x2d, 0x62, 0x61, 0x73, 0x65, - 0x00, 0x00, 0x00, 0x10, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x2d, 0x65, 0x6e, 0x63, 0x6f, - 0x64, 0x69, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x10, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, - 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x00, 0x00, 0x00, 0x0e, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x2d, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x00, 0x00, 0x00, 0x10, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, - 0x00, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x2d, 0x6d, 0x64, 0x35, 0x00, 0x00, 0x00, - 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x2d, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x00, - 0x00, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x00, 0x00, - 0x00, 0x04, 0x64, 0x61, 0x74, 0x65, 0x00, 0x00, - 0x00, 0x04, 0x65, 0x74, 0x61, 0x67, 0x00, 0x00, - 0x00, 0x06, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, - 0x00, 0x00, 0x00, 0x07, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x73, 0x00, 0x00, 0x00, 0x04, 0x66, - 0x72, 0x6f, 0x6d, 0x00, 0x00, 0x00, 0x04, 0x68, - 0x6f, 0x73, 0x74, 0x00, 0x00, 0x00, 0x08, 0x69, - 0x66, 0x2d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x00, - 0x00, 0x00, 0x11, 0x69, 0x66, 0x2d, 0x6d, 0x6f, - 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2d, 0x73, - 0x69, 0x6e, 0x63, 0x65, 0x00, 0x00, 0x00, 0x0d, - 0x69, 0x66, 0x2d, 0x6e, 0x6f, 0x6e, 0x65, 0x2d, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x00, 0x00, 0x00, - 0x08, 0x69, 0x66, 0x2d, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x00, 0x00, 0x00, 0x13, 0x69, 0x66, 0x2d, - 0x75, 0x6e, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x2d, 0x73, 0x69, 0x6e, 0x63, 0x65, - 0x00, 0x00, 0x00, 0x0d, 0x6c, 0x61, 0x73, 0x74, - 0x2d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x00, 0x00, 0x00, 0x08, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, - 0x0c, 0x6d, 0x61, 0x78, 0x2d, 0x66, 0x6f, 0x72, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x00, 0x00, 0x00, - 0x06, 0x70, 0x72, 0x61, 0x67, 0x6d, 0x61, 0x00, - 0x00, 0x00, 0x12, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x00, 0x00, 0x00, - 0x13, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2d, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x05, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x00, 0x00, - 0x07, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x72, - 0x00, 0x00, 0x00, 0x0b, 0x72, 0x65, 0x74, 0x72, - 0x79, 0x2d, 0x61, 0x66, 0x74, 0x65, 0x72, 0x00, - 0x00, 0x00, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x00, 0x00, 0x00, 0x02, 0x74, 0x65, 0x00, - 0x00, 0x00, 0x07, 0x74, 0x72, 0x61, 0x69, 0x6c, - 0x65, 0x72, 0x00, 0x00, 0x00, 0x11, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2d, 0x65, - 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x00, - 0x00, 0x00, 0x07, 0x75, 0x70, 0x67, 0x72, 0x61, - 0x64, 0x65, 0x00, 0x00, 0x00, 0x0a, 0x75, 0x73, - 0x65, 0x72, 0x2d, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x00, 0x00, 0x00, 0x04, 0x76, 0x61, 0x72, 0x79, - 0x00, 0x00, 0x00, 0x03, 0x76, 0x69, 0x61, 0x00, - 0x00, 0x00, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, - 0x6e, 0x67, 0x00, 0x00, 0x00, 0x10, 0x77, 0x77, - 0x77, 0x2d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x00, 0x00, - 0x00, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x00, 0x00, 0x00, 0x03, 0x67, 0x65, 0x74, 0x00, - 0x00, 0x00, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x00, 0x00, 0x00, 0x06, 0x32, 0x30, 0x30, - 0x20, 0x4f, 0x4b, 0x00, 0x00, 0x00, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x00, 0x00, - 0x00, 0x08, 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, - 0x2e, 0x31, 0x00, 0x00, 0x00, 0x03, 0x75, 0x72, - 0x6c, 0x00, 0x00, 0x00, 0x06, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x00, 0x00, 0x00, 0x0a, 0x73, - 0x65, 0x74, 0x2d, 0x63, 0x6f, 0x6f, 0x6b, 0x69, - 0x65, 0x00, 0x00, 0x00, 0x0a, 0x6b, 0x65, 0x65, - 0x70, 0x2d, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x00, - 0x00, 0x00, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x31, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, - 0x30, 0x31, 0x32, 0x30, 0x32, 0x32, 0x30, 0x35, - 0x32, 0x30, 0x36, 0x33, 0x30, 0x30, 0x33, 0x30, - 0x32, 0x33, 0x30, 0x33, 0x33, 0x30, 0x34, 0x33, - 0x30, 0x35, 0x33, 0x30, 0x36, 0x33, 0x30, 0x37, - 0x34, 0x30, 0x32, 0x34, 0x30, 0x35, 0x34, 0x30, - 0x36, 0x34, 0x30, 0x37, 0x34, 0x30, 0x38, 0x34, - 0x30, 0x39, 0x34, 0x31, 0x30, 0x34, 0x31, 0x31, - 0x34, 0x31, 0x32, 0x34, 0x31, 0x33, 0x34, 0x31, - 0x34, 0x34, 0x31, 0x35, 0x34, 0x31, 0x36, 0x34, - 0x31, 0x37, 0x35, 0x30, 0x32, 0x35, 0x30, 0x34, - 0x35, 0x30, 0x35, 0x32, 0x30, 0x33, 0x20, 0x4e, - 0x6f, 0x6e, 0x2d, 0x41, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x30, 0x34, 0x20, - 0x4e, 0x6f, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x33, 0x30, 0x31, 0x20, 0x4d, 0x6f, - 0x76, 0x65, 0x64, 0x20, 0x50, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x34, - 0x30, 0x30, 0x20, 0x42, 0x61, 0x64, 0x20, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x34, 0x30, - 0x31, 0x20, 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x34, 0x30, - 0x33, 0x20, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, - 0x64, 0x65, 0x6e, 0x34, 0x30, 0x34, 0x20, 0x4e, - 0x6f, 0x74, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x35, 0x30, 0x30, 0x20, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x20, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x35, 0x30, 0x31, 0x20, 0x4e, 0x6f, 0x74, - 0x20, 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x65, 0x64, 0x35, 0x30, 0x33, 0x20, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, - 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x4a, 0x61, 0x6e, 0x20, 0x46, - 0x65, 0x62, 0x20, 0x4d, 0x61, 0x72, 0x20, 0x41, - 0x70, 0x72, 0x20, 0x4d, 0x61, 0x79, 0x20, 0x4a, - 0x75, 0x6e, 0x20, 0x4a, 0x75, 0x6c, 0x20, 0x41, - 0x75, 0x67, 0x20, 0x53, 0x65, 0x70, 0x74, 0x20, - 0x4f, 0x63, 0x74, 0x20, 0x4e, 0x6f, 0x76, 0x20, - 0x44, 0x65, 0x63, 0x20, 0x30, 0x30, 0x3a, 0x30, - 0x30, 0x3a, 0x30, 0x30, 0x20, 0x4d, 0x6f, 0x6e, - 0x2c, 0x20, 0x54, 0x75, 0x65, 0x2c, 0x20, 0x57, - 0x65, 0x64, 0x2c, 0x20, 0x54, 0x68, 0x75, 0x2c, - 0x20, 0x46, 0x72, 0x69, 0x2c, 0x20, 0x53, 0x61, - 0x74, 0x2c, 0x20, 0x53, 0x75, 0x6e, 0x2c, 0x20, - 0x47, 0x4d, 0x54, 0x63, 0x68, 0x75, 0x6e, 0x6b, - 0x65, 0x64, 0x2c, 0x74, 0x65, 0x78, 0x74, 0x2f, - 0x68, 0x74, 0x6d, 0x6c, 0x2c, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x2f, 0x70, 0x6e, 0x67, 0x2c, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6a, 0x70, 0x67, - 0x2c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, - 0x69, 0x66, 0x2c, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, - 0x6d, 0x6c, 0x2c, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, - 0x68, 0x74, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, - 0x2c, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x70, 0x6c, - 0x61, 0x69, 0x6e, 0x2c, 0x74, 0x65, 0x78, 0x74, - 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x2c, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x6d, 0x61, 0x78, 0x2d, 0x61, 0x67, 0x65, - 0x3d, 0x67, 0x7a, 0x69, 0x70, 0x2c, 0x64, 0x65, - 0x66, 0x6c, 0x61, 0x74, 0x65, 0x2c, 0x73, 0x64, - 0x63, 0x68, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, - 0x74, 0x3d, 0x75, 0x74, 0x66, 0x2d, 0x38, 0x63, - 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x69, - 0x73, 0x6f, 0x2d, 0x38, 0x38, 0x35, 0x39, 0x2d, - 0x31, 0x2c, 0x75, 0x74, 0x66, 0x2d, 0x2c, 0x2a, - 0x2c, 0x65, 0x6e, 0x71, 0x3d, 0x30, 0x2e, -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/read.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/read.go deleted file mode 100644 index 9359a950..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/read.go +++ /dev/null @@ -1,348 +0,0 @@ -// 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 spdy - -import ( - "compress/zlib" - "encoding/binary" - "io" - "net/http" - "strings" -) - -func (frame *SynStreamFrame) read(h ControlFrameHeader, f *Framer) error { - return f.readSynStreamFrame(h, frame) -} - -func (frame *SynReplyFrame) read(h ControlFrameHeader, f *Framer) error { - return f.readSynReplyFrame(h, frame) -} - -func (frame *RstStreamFrame) read(h ControlFrameHeader, f *Framer) error { - frame.CFHeader = h - if err := binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil { - return err - } - if err := binary.Read(f.r, binary.BigEndian, &frame.Status); err != nil { - return err - } - if frame.Status == 0 { - return &Error{InvalidControlFrame, frame.StreamId} - } - if frame.StreamId == 0 { - return &Error{ZeroStreamId, 0} - } - return nil -} - -func (frame *SettingsFrame) read(h ControlFrameHeader, f *Framer) error { - frame.CFHeader = h - var numSettings uint32 - if err := binary.Read(f.r, binary.BigEndian, &numSettings); err != nil { - return err - } - frame.FlagIdValues = make([]SettingsFlagIdValue, numSettings) - for i := uint32(0); i < numSettings; i++ { - if err := binary.Read(f.r, binary.BigEndian, &frame.FlagIdValues[i].Id); err != nil { - return err - } - frame.FlagIdValues[i].Flag = SettingsFlag((frame.FlagIdValues[i].Id & 0xff000000) >> 24) - frame.FlagIdValues[i].Id &= 0xffffff - if err := binary.Read(f.r, binary.BigEndian, &frame.FlagIdValues[i].Value); err != nil { - return err - } - } - return nil -} - -func (frame *PingFrame) read(h ControlFrameHeader, f *Framer) error { - frame.CFHeader = h - if err := binary.Read(f.r, binary.BigEndian, &frame.Id); err != nil { - return err - } - if frame.Id == 0 { - return &Error{ZeroStreamId, 0} - } - if frame.CFHeader.Flags != 0 { - return &Error{InvalidControlFrame, StreamId(frame.Id)} - } - return nil -} - -func (frame *GoAwayFrame) read(h ControlFrameHeader, f *Framer) error { - frame.CFHeader = h - if err := binary.Read(f.r, binary.BigEndian, &frame.LastGoodStreamId); err != nil { - return err - } - if frame.CFHeader.Flags != 0 { - return &Error{InvalidControlFrame, frame.LastGoodStreamId} - } - if frame.CFHeader.length != 8 { - return &Error{InvalidControlFrame, frame.LastGoodStreamId} - } - if err := binary.Read(f.r, binary.BigEndian, &frame.Status); err != nil { - return err - } - return nil -} - -func (frame *HeadersFrame) read(h ControlFrameHeader, f *Framer) error { - return f.readHeadersFrame(h, frame) -} - -func (frame *WindowUpdateFrame) read(h ControlFrameHeader, f *Framer) error { - frame.CFHeader = h - if err := binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil { - return err - } - if frame.CFHeader.Flags != 0 { - return &Error{InvalidControlFrame, frame.StreamId} - } - if frame.CFHeader.length != 8 { - return &Error{InvalidControlFrame, frame.StreamId} - } - if err := binary.Read(f.r, binary.BigEndian, &frame.DeltaWindowSize); err != nil { - return err - } - return nil -} - -func newControlFrame(frameType ControlFrameType) (controlFrame, error) { - ctor, ok := cframeCtor[frameType] - if !ok { - return nil, &Error{Err: InvalidControlFrame} - } - return ctor(), nil -} - -var cframeCtor = map[ControlFrameType]func() controlFrame{ - TypeSynStream: func() controlFrame { return new(SynStreamFrame) }, - TypeSynReply: func() controlFrame { return new(SynReplyFrame) }, - TypeRstStream: func() controlFrame { return new(RstStreamFrame) }, - TypeSettings: func() controlFrame { return new(SettingsFrame) }, - TypePing: func() controlFrame { return new(PingFrame) }, - TypeGoAway: func() controlFrame { return new(GoAwayFrame) }, - TypeHeaders: func() controlFrame { return new(HeadersFrame) }, - TypeWindowUpdate: func() controlFrame { return new(WindowUpdateFrame) }, -} - -func (f *Framer) uncorkHeaderDecompressor(payloadSize int64) error { - if f.headerDecompressor != nil { - f.headerReader.N = payloadSize - return nil - } - f.headerReader = io.LimitedReader{R: f.r, N: payloadSize} - decompressor, err := zlib.NewReaderDict(&f.headerReader, []byte(headerDictionary)) - if err != nil { - return err - } - f.headerDecompressor = decompressor - return nil -} - -// ReadFrame reads SPDY encoded data and returns a decompressed Frame. -func (f *Framer) ReadFrame() (Frame, error) { - var firstWord uint32 - if err := binary.Read(f.r, binary.BigEndian, &firstWord); err != nil { - return nil, err - } - if firstWord&0x80000000 != 0 { - frameType := ControlFrameType(firstWord & 0xffff) - version := uint16(firstWord >> 16 & 0x7fff) - return f.parseControlFrame(version, frameType) - } - return f.parseDataFrame(StreamId(firstWord & 0x7fffffff)) -} - -func (f *Framer) parseControlFrame(version uint16, frameType ControlFrameType) (Frame, error) { - var length uint32 - if err := binary.Read(f.r, binary.BigEndian, &length); err != nil { - return nil, err - } - flags := ControlFlags((length & 0xff000000) >> 24) - length &= 0xffffff - header := ControlFrameHeader{version, frameType, flags, length} - cframe, err := newControlFrame(frameType) - if err != nil { - return nil, err - } - if err = cframe.read(header, f); err != nil { - return nil, err - } - return cframe, nil -} - -func parseHeaderValueBlock(r io.Reader, streamId StreamId) (http.Header, error) { - var numHeaders uint32 - if err := binary.Read(r, binary.BigEndian, &numHeaders); err != nil { - return nil, err - } - var e error - h := make(http.Header, int(numHeaders)) - for i := 0; i < int(numHeaders); i++ { - var length uint32 - if err := binary.Read(r, binary.BigEndian, &length); err != nil { - return nil, err - } - nameBytes := make([]byte, length) - if _, err := io.ReadFull(r, nameBytes); err != nil { - return nil, err - } - name := string(nameBytes) - if name != strings.ToLower(name) { - e = &Error{UnlowercasedHeaderName, streamId} - name = strings.ToLower(name) - } - if h[name] != nil { - e = &Error{DuplicateHeaders, streamId} - } - if err := binary.Read(r, binary.BigEndian, &length); err != nil { - return nil, err - } - value := make([]byte, length) - if _, err := io.ReadFull(r, value); err != nil { - return nil, err - } - valueList := strings.Split(string(value), headerValueSeparator) - for _, v := range valueList { - h.Add(name, v) - } - } - if e != nil { - return h, e - } - return h, nil -} - -func (f *Framer) readSynStreamFrame(h ControlFrameHeader, frame *SynStreamFrame) error { - frame.CFHeader = h - var err error - if err = binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil { - return err - } - if err = binary.Read(f.r, binary.BigEndian, &frame.AssociatedToStreamId); err != nil { - return err - } - if err = binary.Read(f.r, binary.BigEndian, &frame.Priority); err != nil { - return err - } - frame.Priority >>= 5 - if err = binary.Read(f.r, binary.BigEndian, &frame.Slot); err != nil { - return err - } - reader := f.r - if !f.headerCompressionDisabled { - err := f.uncorkHeaderDecompressor(int64(h.length - 10)) - if err != nil { - return err - } - reader = f.headerDecompressor - } - frame.Headers, err = parseHeaderValueBlock(reader, frame.StreamId) - if !f.headerCompressionDisabled && (err == io.EOF && f.headerReader.N == 0 || f.headerReader.N != 0) { - err = &Error{WrongCompressedPayloadSize, 0} - } - if err != nil { - return err - } - for h := range frame.Headers { - if invalidReqHeaders[h] { - return &Error{InvalidHeaderPresent, frame.StreamId} - } - } - if frame.StreamId == 0 { - return &Error{ZeroStreamId, 0} - } - return nil -} - -func (f *Framer) readSynReplyFrame(h ControlFrameHeader, frame *SynReplyFrame) error { - frame.CFHeader = h - var err error - if err = binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil { - return err - } - reader := f.r - if !f.headerCompressionDisabled { - err := f.uncorkHeaderDecompressor(int64(h.length - 4)) - if err != nil { - return err - } - reader = f.headerDecompressor - } - frame.Headers, err = parseHeaderValueBlock(reader, frame.StreamId) - if !f.headerCompressionDisabled && (err == io.EOF && f.headerReader.N == 0 || f.headerReader.N != 0) { - err = &Error{WrongCompressedPayloadSize, 0} - } - if err != nil { - return err - } - for h := range frame.Headers { - if invalidRespHeaders[h] { - return &Error{InvalidHeaderPresent, frame.StreamId} - } - } - if frame.StreamId == 0 { - return &Error{ZeroStreamId, 0} - } - return nil -} - -func (f *Framer) readHeadersFrame(h ControlFrameHeader, frame *HeadersFrame) error { - frame.CFHeader = h - var err error - if err = binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil { - return err - } - reader := f.r - if !f.headerCompressionDisabled { - err := f.uncorkHeaderDecompressor(int64(h.length - 4)) - if err != nil { - return err - } - reader = f.headerDecompressor - } - frame.Headers, err = parseHeaderValueBlock(reader, frame.StreamId) - if !f.headerCompressionDisabled && (err == io.EOF && f.headerReader.N == 0 || f.headerReader.N != 0) { - err = &Error{WrongCompressedPayloadSize, 0} - } - if err != nil { - return err - } - var invalidHeaders map[string]bool - if frame.StreamId%2 == 0 { - invalidHeaders = invalidReqHeaders - } else { - invalidHeaders = invalidRespHeaders - } - for h := range frame.Headers { - if invalidHeaders[h] { - return &Error{InvalidHeaderPresent, frame.StreamId} - } - } - if frame.StreamId == 0 { - return &Error{ZeroStreamId, 0} - } - return nil -} - -func (f *Framer) parseDataFrame(streamId StreamId) (*DataFrame, error) { - var length uint32 - if err := binary.Read(f.r, binary.BigEndian, &length); err != nil { - return nil, err - } - var frame DataFrame - frame.StreamId = streamId - frame.Flags = DataFlags(length >> 24) - length &= 0xffffff - frame.Data = make([]byte, length) - if _, err := io.ReadFull(f.r, frame.Data); err != nil { - return nil, err - } - if frame.StreamId == 0 { - return nil, &Error{ZeroStreamId, 0} - } - return &frame, nil -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/spdy_test.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/spdy_test.go deleted file mode 100644 index ce581f1d..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/spdy_test.go +++ /dev/null @@ -1,644 +0,0 @@ -// 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 spdy - -import ( - "bytes" - "compress/zlib" - "encoding/base64" - "io" - "io/ioutil" - "net/http" - "reflect" - "testing" -) - -var HeadersFixture = http.Header{ - "Url": []string{"http://www.google.com/"}, - "Method": []string{"get"}, - "Version": []string{"http/1.1"}, -} - -func TestHeaderParsing(t *testing.T) { - var headerValueBlockBuf bytes.Buffer - writeHeaderValueBlock(&headerValueBlockBuf, HeadersFixture) - const bogusStreamId = 1 - newHeaders, err := parseHeaderValueBlock(&headerValueBlockBuf, bogusStreamId) - if err != nil { - t.Fatal("parseHeaderValueBlock:", err) - } - if !reflect.DeepEqual(HeadersFixture, newHeaders) { - t.Fatal("got: ", newHeaders, "\nwant: ", HeadersFixture) - } -} - -func TestCreateParseSynStreamFrameCompressionDisable(t *testing.T) { - buffer := new(bytes.Buffer) - // Fixture framer for no compression test. - framer := &Framer{ - headerCompressionDisabled: true, - w: buffer, - headerBuf: new(bytes.Buffer), - r: buffer, - } - synStreamFrame := SynStreamFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypeSynStream, - }, - StreamId: 2, - Headers: HeadersFixture, - } - if err := framer.WriteFrame(&synStreamFrame); err != nil { - t.Fatal("WriteFrame without compression:", err) - } - frame, err := framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame without compression:", err) - } - parsedSynStreamFrame, ok := frame.(*SynStreamFrame) - if !ok { - t.Fatal("Parsed incorrect frame type:", frame) - } - if !reflect.DeepEqual(synStreamFrame, *parsedSynStreamFrame) { - t.Fatal("got: ", *parsedSynStreamFrame, "\nwant: ", synStreamFrame) - } -} - -func TestCreateParseSynStreamFrameCompressionEnable(t *testing.T) { - buffer := new(bytes.Buffer) - framer, err := NewFramer(buffer, buffer) - synStreamFrame := SynStreamFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypeSynStream, - }, - StreamId: 2, - Headers: HeadersFixture, - } - if err != nil { - t.Fatal("Failed to create new framer:", err) - } - if err := framer.WriteFrame(&synStreamFrame); err != nil { - t.Fatal("WriteFrame with compression:", err) - } - frame, err := framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame with compression:", err) - } - parsedSynStreamFrame, ok := frame.(*SynStreamFrame) - if !ok { - t.Fatal("Parsed incorrect frame type:", frame) - } - if !reflect.DeepEqual(synStreamFrame, *parsedSynStreamFrame) { - t.Fatal("got: ", *parsedSynStreamFrame, "\nwant: ", synStreamFrame) - } -} - -func TestCreateParseSynReplyFrameCompressionDisable(t *testing.T) { - buffer := new(bytes.Buffer) - framer := &Framer{ - headerCompressionDisabled: true, - w: buffer, - headerBuf: new(bytes.Buffer), - r: buffer, - } - synReplyFrame := SynReplyFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypeSynReply, - }, - StreamId: 2, - Headers: HeadersFixture, - } - if err := framer.WriteFrame(&synReplyFrame); err != nil { - t.Fatal("WriteFrame without compression:", err) - } - frame, err := framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame without compression:", err) - } - parsedSynReplyFrame, ok := frame.(*SynReplyFrame) - if !ok { - t.Fatal("Parsed incorrect frame type:", frame) - } - if !reflect.DeepEqual(synReplyFrame, *parsedSynReplyFrame) { - t.Fatal("got: ", *parsedSynReplyFrame, "\nwant: ", synReplyFrame) - } -} - -func TestCreateParseSynReplyFrameCompressionEnable(t *testing.T) { - buffer := new(bytes.Buffer) - framer, err := NewFramer(buffer, buffer) - synReplyFrame := SynReplyFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypeSynReply, - }, - StreamId: 2, - Headers: HeadersFixture, - } - if err != nil { - t.Fatal("Failed to create new framer:", err) - } - if err := framer.WriteFrame(&synReplyFrame); err != nil { - t.Fatal("WriteFrame with compression:", err) - } - frame, err := framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame with compression:", err) - } - parsedSynReplyFrame, ok := frame.(*SynReplyFrame) - if !ok { - t.Fatal("Parsed incorrect frame type:", frame) - } - if !reflect.DeepEqual(synReplyFrame, *parsedSynReplyFrame) { - t.Fatal("got: ", *parsedSynReplyFrame, "\nwant: ", synReplyFrame) - } -} - -func TestCreateParseRstStream(t *testing.T) { - buffer := new(bytes.Buffer) - framer, err := NewFramer(buffer, buffer) - if err != nil { - t.Fatal("Failed to create new framer:", err) - } - rstStreamFrame := RstStreamFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypeRstStream, - }, - StreamId: 1, - Status: InvalidStream, - } - if err := framer.WriteFrame(&rstStreamFrame); err != nil { - t.Fatal("WriteFrame:", err) - } - frame, err := framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame:", err) - } - parsedRstStreamFrame, ok := frame.(*RstStreamFrame) - if !ok { - t.Fatal("Parsed incorrect frame type:", frame) - } - if !reflect.DeepEqual(rstStreamFrame, *parsedRstStreamFrame) { - t.Fatal("got: ", *parsedRstStreamFrame, "\nwant: ", rstStreamFrame) - } -} - -func TestCreateParseSettings(t *testing.T) { - buffer := new(bytes.Buffer) - framer, err := NewFramer(buffer, buffer) - if err != nil { - t.Fatal("Failed to create new framer:", err) - } - settingsFrame := SettingsFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypeSettings, - }, - FlagIdValues: []SettingsFlagIdValue{ - {FlagSettingsPersistValue, SettingsCurrentCwnd, 10}, - {FlagSettingsPersisted, SettingsUploadBandwidth, 1}, - }, - } - if err := framer.WriteFrame(&settingsFrame); err != nil { - t.Fatal("WriteFrame:", err) - } - frame, err := framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame:", err) - } - parsedSettingsFrame, ok := frame.(*SettingsFrame) - if !ok { - t.Fatal("Parsed incorrect frame type:", frame) - } - if !reflect.DeepEqual(settingsFrame, *parsedSettingsFrame) { - t.Fatal("got: ", *parsedSettingsFrame, "\nwant: ", settingsFrame) - } -} - -func TestCreateParsePing(t *testing.T) { - buffer := new(bytes.Buffer) - framer, err := NewFramer(buffer, buffer) - if err != nil { - t.Fatal("Failed to create new framer:", err) - } - pingFrame := PingFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypePing, - }, - Id: 31337, - } - if err := framer.WriteFrame(&pingFrame); err != nil { - t.Fatal("WriteFrame:", err) - } - if pingFrame.CFHeader.Flags != 0 { - t.Fatal("Incorrect frame type:", pingFrame) - } - frame, err := framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame:", err) - } - parsedPingFrame, ok := frame.(*PingFrame) - if !ok { - t.Fatal("Parsed incorrect frame type:", frame) - } - if parsedPingFrame.CFHeader.Flags != 0 { - t.Fatal("Parsed incorrect frame type:", parsedPingFrame) - } - if !reflect.DeepEqual(pingFrame, *parsedPingFrame) { - t.Fatal("got: ", *parsedPingFrame, "\nwant: ", pingFrame) - } -} - -func TestCreateParseGoAway(t *testing.T) { - buffer := new(bytes.Buffer) - framer, err := NewFramer(buffer, buffer) - if err != nil { - t.Fatal("Failed to create new framer:", err) - } - goAwayFrame := GoAwayFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypeGoAway, - }, - LastGoodStreamId: 31337, - Status: 1, - } - if err := framer.WriteFrame(&goAwayFrame); err != nil { - t.Fatal("WriteFrame:", err) - } - if goAwayFrame.CFHeader.Flags != 0 { - t.Fatal("Incorrect frame type:", goAwayFrame) - } - if goAwayFrame.CFHeader.length != 8 { - t.Fatal("Incorrect frame type:", goAwayFrame) - } - frame, err := framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame:", err) - } - parsedGoAwayFrame, ok := frame.(*GoAwayFrame) - if !ok { - t.Fatal("Parsed incorrect frame type:", frame) - } - if parsedGoAwayFrame.CFHeader.Flags != 0 { - t.Fatal("Incorrect frame type:", parsedGoAwayFrame) - } - if parsedGoAwayFrame.CFHeader.length != 8 { - t.Fatal("Incorrect frame type:", parsedGoAwayFrame) - } - if !reflect.DeepEqual(goAwayFrame, *parsedGoAwayFrame) { - t.Fatal("got: ", *parsedGoAwayFrame, "\nwant: ", goAwayFrame) - } -} - -func TestCreateParseHeadersFrame(t *testing.T) { - buffer := new(bytes.Buffer) - framer := &Framer{ - headerCompressionDisabled: true, - w: buffer, - headerBuf: new(bytes.Buffer), - r: buffer, - } - headersFrame := HeadersFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypeHeaders, - }, - StreamId: 2, - } - headersFrame.Headers = HeadersFixture - if err := framer.WriteFrame(&headersFrame); err != nil { - t.Fatal("WriteFrame without compression:", err) - } - frame, err := framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame without compression:", err) - } - parsedHeadersFrame, ok := frame.(*HeadersFrame) - if !ok { - t.Fatal("Parsed incorrect frame type:", frame) - } - if !reflect.DeepEqual(headersFrame, *parsedHeadersFrame) { - t.Fatal("got: ", *parsedHeadersFrame, "\nwant: ", headersFrame) - } -} - -func TestCreateParseHeadersFrameCompressionEnable(t *testing.T) { - buffer := new(bytes.Buffer) - headersFrame := HeadersFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypeHeaders, - }, - StreamId: 2, - } - headersFrame.Headers = HeadersFixture - - framer, err := NewFramer(buffer, buffer) - if err := framer.WriteFrame(&headersFrame); err != nil { - t.Fatal("WriteFrame with compression:", err) - } - frame, err := framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame with compression:", err) - } - parsedHeadersFrame, ok := frame.(*HeadersFrame) - if !ok { - t.Fatal("Parsed incorrect frame type:", frame) - } - if !reflect.DeepEqual(headersFrame, *parsedHeadersFrame) { - t.Fatal("got: ", *parsedHeadersFrame, "\nwant: ", headersFrame) - } -} - -func TestCreateParseWindowUpdateFrame(t *testing.T) { - buffer := new(bytes.Buffer) - framer, err := NewFramer(buffer, buffer) - if err != nil { - t.Fatal("Failed to create new framer:", err) - } - windowUpdateFrame := WindowUpdateFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypeWindowUpdate, - }, - StreamId: 31337, - DeltaWindowSize: 1, - } - if err := framer.WriteFrame(&windowUpdateFrame); err != nil { - t.Fatal("WriteFrame:", err) - } - if windowUpdateFrame.CFHeader.Flags != 0 { - t.Fatal("Incorrect frame type:", windowUpdateFrame) - } - if windowUpdateFrame.CFHeader.length != 8 { - t.Fatal("Incorrect frame type:", windowUpdateFrame) - } - frame, err := framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame:", err) - } - parsedWindowUpdateFrame, ok := frame.(*WindowUpdateFrame) - if !ok { - t.Fatal("Parsed incorrect frame type:", frame) - } - if parsedWindowUpdateFrame.CFHeader.Flags != 0 { - t.Fatal("Incorrect frame type:", parsedWindowUpdateFrame) - } - if parsedWindowUpdateFrame.CFHeader.length != 8 { - t.Fatal("Incorrect frame type:", parsedWindowUpdateFrame) - } - if !reflect.DeepEqual(windowUpdateFrame, *parsedWindowUpdateFrame) { - t.Fatal("got: ", *parsedWindowUpdateFrame, "\nwant: ", windowUpdateFrame) - } -} - -func TestCreateParseDataFrame(t *testing.T) { - buffer := new(bytes.Buffer) - framer, err := NewFramer(buffer, buffer) - if err != nil { - t.Fatal("Failed to create new framer:", err) - } - dataFrame := DataFrame{ - StreamId: 1, - Data: []byte{'h', 'e', 'l', 'l', 'o'}, - } - if err := framer.WriteFrame(&dataFrame); err != nil { - t.Fatal("WriteFrame:", err) - } - frame, err := framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame:", err) - } - parsedDataFrame, ok := frame.(*DataFrame) - if !ok { - t.Fatal("Parsed incorrect frame type:", frame) - } - if !reflect.DeepEqual(dataFrame, *parsedDataFrame) { - t.Fatal("got: ", *parsedDataFrame, "\nwant: ", dataFrame) - } -} - -func TestCompressionContextAcrossFrames(t *testing.T) { - buffer := new(bytes.Buffer) - framer, err := NewFramer(buffer, buffer) - if err != nil { - t.Fatal("Failed to create new framer:", err) - } - headersFrame := HeadersFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypeHeaders, - }, - StreamId: 2, - Headers: HeadersFixture, - } - if err := framer.WriteFrame(&headersFrame); err != nil { - t.Fatal("WriteFrame (HEADERS):", err) - } - synStreamFrame := SynStreamFrame{ - ControlFrameHeader{ - Version, - TypeSynStream, - 0, // Flags - 0, // length - }, - 2, // StreamId - 0, // AssociatedTOStreamID - 0, // Priority - 1, // Slot - nil, // Headers - } - synStreamFrame.Headers = HeadersFixture - - if err := framer.WriteFrame(&synStreamFrame); err != nil { - t.Fatal("WriteFrame (SYN_STREAM):", err) - } - frame, err := framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame (HEADERS):", err, buffer.Bytes()) - } - parsedHeadersFrame, ok := frame.(*HeadersFrame) - if !ok { - t.Fatalf("expected HeadersFrame; got %T %v", frame, frame) - } - if !reflect.DeepEqual(headersFrame, *parsedHeadersFrame) { - t.Fatal("got: ", *parsedHeadersFrame, "\nwant: ", headersFrame) - } - frame, err = framer.ReadFrame() - if err != nil { - t.Fatal("ReadFrame (SYN_STREAM):", err, buffer.Bytes()) - } - parsedSynStreamFrame, ok := frame.(*SynStreamFrame) - if !ok { - t.Fatalf("expected SynStreamFrame; got %T %v", frame, frame) - } - if !reflect.DeepEqual(synStreamFrame, *parsedSynStreamFrame) { - t.Fatal("got: ", *parsedSynStreamFrame, "\nwant: ", synStreamFrame) - } -} - -func TestMultipleSPDYFrames(t *testing.T) { - // Initialize the framers. - pr1, pw1 := io.Pipe() - pr2, pw2 := io.Pipe() - writer, err := NewFramer(pw1, pr2) - if err != nil { - t.Fatal("Failed to create writer:", err) - } - reader, err := NewFramer(pw2, pr1) - if err != nil { - t.Fatal("Failed to create reader:", err) - } - - // Set up the frames we're actually transferring. - headersFrame := HeadersFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypeHeaders, - }, - StreamId: 2, - Headers: HeadersFixture, - } - synStreamFrame := SynStreamFrame{ - CFHeader: ControlFrameHeader{ - version: Version, - frameType: TypeSynStream, - }, - StreamId: 2, - Headers: HeadersFixture, - } - - // Start the goroutines to write the frames. - go func() { - if err := writer.WriteFrame(&headersFrame); err != nil { - t.Fatal("WriteFrame (HEADERS): ", err) - } - if err := writer.WriteFrame(&synStreamFrame); err != nil { - t.Fatal("WriteFrame (SYN_STREAM): ", err) - } - }() - - // Read the frames and verify they look as expected. - frame, err := reader.ReadFrame() - if err != nil { - t.Fatal("ReadFrame (HEADERS): ", err) - } - parsedHeadersFrame, ok := frame.(*HeadersFrame) - if !ok { - t.Fatal("Parsed incorrect frame type:", frame) - } - if !reflect.DeepEqual(headersFrame, *parsedHeadersFrame) { - t.Fatal("got: ", *parsedHeadersFrame, "\nwant: ", headersFrame) - } - frame, err = reader.ReadFrame() - if err != nil { - t.Fatal("ReadFrame (SYN_STREAM):", err) - } - parsedSynStreamFrame, ok := frame.(*SynStreamFrame) - if !ok { - t.Fatal("Parsed incorrect frame type.") - } - if !reflect.DeepEqual(synStreamFrame, *parsedSynStreamFrame) { - t.Fatal("got: ", *parsedSynStreamFrame, "\nwant: ", synStreamFrame) - } -} - -func TestReadMalformedZlibHeader(t *testing.T) { - // These were constructed by corrupting the first byte of the zlib - // header after writing. - malformedStructs := map[string]string{ - "SynStreamFrame": "gAIAAQAAABgAAAACAAAAAAAAF/nfolGyYmAAAAAA//8=", - "SynReplyFrame": "gAIAAgAAABQAAAACAAAX+d+iUbJiYAAAAAD//w==", - "HeadersFrame": "gAIACAAAABQAAAACAAAX+d+iUbJiYAAAAAD//w==", - } - for name, bad := range malformedStructs { - b, err := base64.StdEncoding.DecodeString(bad) - if err != nil { - t.Errorf("Unable to decode base64 encoded frame %s: %v", name, err) - } - buf := bytes.NewBuffer(b) - reader, err := NewFramer(buf, buf) - if err != nil { - t.Fatalf("NewFramer: %v", err) - } - _, err = reader.ReadFrame() - if err != zlib.ErrHeader { - t.Errorf("Frame %s, expected: %#v, actual: %#v", name, zlib.ErrHeader, err) - } - } -} - -// TODO: these tests are too weak for updating SPDY spec. Fix me. - -type zeroStream struct { - frame Frame - encoded string -} - -var streamIdZeroFrames = map[string]zeroStream{ - "SynStreamFrame": { - &SynStreamFrame{StreamId: 0}, - "gAIAAQAAABgAAAAAAAAAAAAAePnfolGyYmAAAAAA//8=", - }, - "SynReplyFrame": { - &SynReplyFrame{StreamId: 0}, - "gAIAAgAAABQAAAAAAAB4+d+iUbJiYAAAAAD//w==", - }, - "RstStreamFrame": { - &RstStreamFrame{StreamId: 0}, - "gAIAAwAAAAgAAAAAAAAAAA==", - }, - "HeadersFrame": { - &HeadersFrame{StreamId: 0}, - "gAIACAAAABQAAAAAAAB4+d+iUbJiYAAAAAD//w==", - }, - "DataFrame": { - &DataFrame{StreamId: 0}, - "AAAAAAAAAAA=", - }, - "PingFrame": { - &PingFrame{Id: 0}, - "gAIABgAAAAQAAAAA", - }, -} - -func TestNoZeroStreamId(t *testing.T) { - t.Log("skipping") // TODO: update to work with SPDY3 - return - - for name, f := range streamIdZeroFrames { - b, err := base64.StdEncoding.DecodeString(f.encoded) - if err != nil { - t.Errorf("Unable to decode base64 encoded frame %s: %v", f, err) - continue - } - framer, err := NewFramer(ioutil.Discard, bytes.NewReader(b)) - if err != nil { - t.Fatalf("NewFramer: %v", err) - } - err = framer.WriteFrame(f.frame) - checkZeroStreamId(t, name, "WriteFrame", err) - - _, err = framer.ReadFrame() - checkZeroStreamId(t, name, "ReadFrame", err) - } -} - -func checkZeroStreamId(t *testing.T, frame string, method string, err error) { - if err == nil { - t.Errorf("%s ZeroStreamId, no error on %s", method, frame) - return - } - eerr, ok := err.(*Error) - if !ok || eerr.Err != ZeroStreamId { - t.Errorf("%s ZeroStreamId, incorrect error %#v, frame %s", method, eerr, frame) - } -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/types.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/types.go deleted file mode 100644 index 7b6ee9c6..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/types.go +++ /dev/null @@ -1,275 +0,0 @@ -// 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 spdy implements the SPDY protocol (currently SPDY/3), described in -// http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3. -package spdy - -import ( - "bytes" - "compress/zlib" - "io" - "net/http" -) - -// Version is the protocol version number that this package implements. -const Version = 3 - -// ControlFrameType stores the type field in a control frame header. -type ControlFrameType uint16 - -const ( - TypeSynStream ControlFrameType = 0x0001 - TypeSynReply = 0x0002 - TypeRstStream = 0x0003 - TypeSettings = 0x0004 - TypePing = 0x0006 - TypeGoAway = 0x0007 - TypeHeaders = 0x0008 - TypeWindowUpdate = 0x0009 -) - -// ControlFlags are the flags that can be set on a control frame. -type ControlFlags uint8 - -const ( - ControlFlagFin ControlFlags = 0x01 - ControlFlagUnidirectional = 0x02 - ControlFlagSettingsClearSettings = 0x01 -) - -// DataFlags are the flags that can be set on a data frame. -type DataFlags uint8 - -const ( - DataFlagFin DataFlags = 0x01 -) - -// MaxDataLength is the maximum number of bytes that can be stored in one frame. -const MaxDataLength = 1<<24 - 1 - -// headerValueSepator separates multiple header values. -const headerValueSeparator = "\x00" - -// Frame is a single SPDY frame in its unpacked in-memory representation. Use -// Framer to read and write it. -type Frame interface { - write(f *Framer) error -} - -// ControlFrameHeader contains all the fields in a control frame header, -// in its unpacked in-memory representation. -type ControlFrameHeader struct { - // Note, high bit is the "Control" bit. - version uint16 // spdy version number - frameType ControlFrameType - Flags ControlFlags - length uint32 // length of data field -} - -type controlFrame interface { - Frame - read(h ControlFrameHeader, f *Framer) error -} - -// StreamId represents a 31-bit value identifying the stream. -type StreamId uint32 - -// SynStreamFrame is the unpacked, in-memory representation of a SYN_STREAM -// frame. -type SynStreamFrame struct { - CFHeader ControlFrameHeader - StreamId StreamId - AssociatedToStreamId StreamId // stream id for a stream which this stream is associated to - Priority uint8 // priority of this frame (3-bit) - Slot uint8 // index in the server's credential vector of the client certificate - Headers http.Header -} - -// SynReplyFrame is the unpacked, in-memory representation of a SYN_REPLY frame. -type SynReplyFrame struct { - CFHeader ControlFrameHeader - StreamId StreamId - Headers http.Header -} - -// RstStreamStatus represents the status that led to a RST_STREAM. -type RstStreamStatus uint32 - -const ( - ProtocolError RstStreamStatus = iota + 1 - InvalidStream - RefusedStream - UnsupportedVersion - Cancel - InternalError - FlowControlError - StreamInUse - StreamAlreadyClosed - InvalidCredentials - FrameTooLarge -) - -// RstStreamFrame is the unpacked, in-memory representation of a RST_STREAM -// frame. -type RstStreamFrame struct { - CFHeader ControlFrameHeader - StreamId StreamId - Status RstStreamStatus -} - -// SettingsFlag represents a flag in a SETTINGS frame. -type SettingsFlag uint8 - -const ( - FlagSettingsPersistValue SettingsFlag = 0x1 - FlagSettingsPersisted = 0x2 -) - -// SettingsFlag represents the id of an id/value pair in a SETTINGS frame. -type SettingsId uint32 - -const ( - SettingsUploadBandwidth SettingsId = iota + 1 - SettingsDownloadBandwidth - SettingsRoundTripTime - SettingsMaxConcurrentStreams - SettingsCurrentCwnd - SettingsDownloadRetransRate - SettingsInitialWindowSize - SettingsClientCretificateVectorSize -) - -// SettingsFlagIdValue is the unpacked, in-memory representation of the -// combined flag/id/value for a setting in a SETTINGS frame. -type SettingsFlagIdValue struct { - Flag SettingsFlag - Id SettingsId - Value uint32 -} - -// SettingsFrame is the unpacked, in-memory representation of a SPDY -// SETTINGS frame. -type SettingsFrame struct { - CFHeader ControlFrameHeader - FlagIdValues []SettingsFlagIdValue -} - -// PingFrame is the unpacked, in-memory representation of a PING frame. -type PingFrame struct { - CFHeader ControlFrameHeader - Id uint32 // unique id for this ping, from server is even, from client is odd. -} - -// GoAwayStatus represents the status in a GoAwayFrame. -type GoAwayStatus uint32 - -const ( - GoAwayOK GoAwayStatus = iota - GoAwayProtocolError - GoAwayInternalError -) - -// GoAwayFrame is the unpacked, in-memory representation of a GOAWAY frame. -type GoAwayFrame struct { - CFHeader ControlFrameHeader - LastGoodStreamId StreamId // last stream id which was accepted by sender - Status GoAwayStatus -} - -// HeadersFrame is the unpacked, in-memory representation of a HEADERS frame. -type HeadersFrame struct { - CFHeader ControlFrameHeader - StreamId StreamId - Headers http.Header -} - -// WindowUpdateFrame is the unpacked, in-memory representation of a -// WINDOW_UPDATE frame. -type WindowUpdateFrame struct { - CFHeader ControlFrameHeader - StreamId StreamId - DeltaWindowSize uint32 // additional number of bytes to existing window size -} - -// TODO: Implement credential frame and related methods. - -// DataFrame is the unpacked, in-memory representation of a DATA frame. -type DataFrame struct { - // Note, high bit is the "Control" bit. Should be 0 for data frames. - StreamId StreamId - Flags DataFlags - Data []byte // payload data of this frame -} - -// A SPDY specific error. -type ErrorCode string - -const ( - UnlowercasedHeaderName ErrorCode = "header was not lowercased" - DuplicateHeaders = "multiple headers with same name" - WrongCompressedPayloadSize = "compressed payload size was incorrect" - UnknownFrameType = "unknown frame type" - InvalidControlFrame = "invalid control frame" - InvalidDataFrame = "invalid data frame" - InvalidHeaderPresent = "frame contained invalid header" - ZeroStreamId = "stream id zero is disallowed" -) - -// Error contains both the type of error and additional values. StreamId is 0 -// if Error is not associated with a stream. -type Error struct { - Err ErrorCode - StreamId StreamId -} - -func (e *Error) Error() string { - return string(e.Err) -} - -var invalidReqHeaders = map[string]bool{ - "Connection": true, - "Host": true, - "Keep-Alive": true, - "Proxy-Connection": true, - "Transfer-Encoding": true, -} - -var invalidRespHeaders = map[string]bool{ - "Connection": true, - "Keep-Alive": true, - "Proxy-Connection": true, - "Transfer-Encoding": true, -} - -// Framer handles serializing/deserializing SPDY frames, including compressing/ -// decompressing payloads. -type Framer struct { - headerCompressionDisabled bool - w io.Writer - headerBuf *bytes.Buffer - headerCompressor *zlib.Writer - r io.Reader - headerReader io.LimitedReader - headerDecompressor io.ReadCloser -} - -// NewFramer allocates a new Framer for a given SPDY connection, represented by -// a io.Writer and io.Reader. Note that Framer will read and write individual fields -// from/to the Reader and Writer, so the caller should pass in an appropriately -// buffered implementation to optimize performance. -func NewFramer(w io.Writer, r io.Reader) (*Framer, error) { - compressBuf := new(bytes.Buffer) - compressor, err := zlib.NewWriterLevelDict(compressBuf, zlib.BestCompression, []byte(headerDictionary)) - if err != nil { - return nil, err - } - framer := &Framer{ - w: w, - headerBuf: compressBuf, - headerCompressor: compressor, - r: r, - } - return framer, nil -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/write.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/write.go deleted file mode 100644 index b212f66a..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy/write.go +++ /dev/null @@ -1,318 +0,0 @@ -// 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 spdy - -import ( - "encoding/binary" - "io" - "net/http" - "strings" -) - -func (frame *SynStreamFrame) write(f *Framer) error { - return f.writeSynStreamFrame(frame) -} - -func (frame *SynReplyFrame) write(f *Framer) error { - return f.writeSynReplyFrame(frame) -} - -func (frame *RstStreamFrame) write(f *Framer) (err error) { - if frame.StreamId == 0 { - return &Error{ZeroStreamId, 0} - } - frame.CFHeader.version = Version - frame.CFHeader.frameType = TypeRstStream - frame.CFHeader.Flags = 0 - frame.CFHeader.length = 8 - - // Serialize frame to Writer. - if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil { - return - } - if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil { - return - } - if frame.Status == 0 { - return &Error{InvalidControlFrame, frame.StreamId} - } - if err = binary.Write(f.w, binary.BigEndian, frame.Status); err != nil { - return - } - return -} - -func (frame *SettingsFrame) write(f *Framer) (err error) { - frame.CFHeader.version = Version - frame.CFHeader.frameType = TypeSettings - frame.CFHeader.length = uint32(len(frame.FlagIdValues)*8 + 4) - - // Serialize frame to Writer. - if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil { - return - } - if err = binary.Write(f.w, binary.BigEndian, uint32(len(frame.FlagIdValues))); err != nil { - return - } - for _, flagIdValue := range frame.FlagIdValues { - flagId := uint32(flagIdValue.Flag)<<24 | uint32(flagIdValue.Id) - if err = binary.Write(f.w, binary.BigEndian, flagId); err != nil { - return - } - if err = binary.Write(f.w, binary.BigEndian, flagIdValue.Value); err != nil { - return - } - } - return -} - -func (frame *PingFrame) write(f *Framer) (err error) { - if frame.Id == 0 { - return &Error{ZeroStreamId, 0} - } - frame.CFHeader.version = Version - frame.CFHeader.frameType = TypePing - frame.CFHeader.Flags = 0 - frame.CFHeader.length = 4 - - // Serialize frame to Writer. - if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil { - return - } - if err = binary.Write(f.w, binary.BigEndian, frame.Id); err != nil { - return - } - return -} - -func (frame *GoAwayFrame) write(f *Framer) (err error) { - frame.CFHeader.version = Version - frame.CFHeader.frameType = TypeGoAway - frame.CFHeader.Flags = 0 - frame.CFHeader.length = 8 - - // Serialize frame to Writer. - if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil { - return - } - if err = binary.Write(f.w, binary.BigEndian, frame.LastGoodStreamId); err != nil { - return - } - if err = binary.Write(f.w, binary.BigEndian, frame.Status); err != nil { - return - } - return nil -} - -func (frame *HeadersFrame) write(f *Framer) error { - return f.writeHeadersFrame(frame) -} - -func (frame *WindowUpdateFrame) write(f *Framer) (err error) { - frame.CFHeader.version = Version - frame.CFHeader.frameType = TypeWindowUpdate - frame.CFHeader.Flags = 0 - frame.CFHeader.length = 8 - - // Serialize frame to Writer. - if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil { - return - } - if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil { - return - } - if err = binary.Write(f.w, binary.BigEndian, frame.DeltaWindowSize); err != nil { - return - } - return nil -} - -func (frame *DataFrame) write(f *Framer) error { - return f.writeDataFrame(frame) -} - -// WriteFrame writes a frame. -func (f *Framer) WriteFrame(frame Frame) error { - return frame.write(f) -} - -func writeControlFrameHeader(w io.Writer, h ControlFrameHeader) error { - if err := binary.Write(w, binary.BigEndian, 0x8000|h.version); err != nil { - return err - } - if err := binary.Write(w, binary.BigEndian, h.frameType); err != nil { - return err - } - flagsAndLength := uint32(h.Flags)<<24 | h.length - if err := binary.Write(w, binary.BigEndian, flagsAndLength); err != nil { - return err - } - return nil -} - -func writeHeaderValueBlock(w io.Writer, h http.Header) (n int, err error) { - n = 0 - if err = binary.Write(w, binary.BigEndian, uint32(len(h))); err != nil { - return - } - n += 2 - for name, values := range h { - if err = binary.Write(w, binary.BigEndian, uint32(len(name))); err != nil { - return - } - n += 2 - name = strings.ToLower(name) - if _, err = io.WriteString(w, name); err != nil { - return - } - n += len(name) - v := strings.Join(values, headerValueSeparator) - if err = binary.Write(w, binary.BigEndian, uint32(len(v))); err != nil { - return - } - n += 2 - if _, err = io.WriteString(w, v); err != nil { - return - } - n += len(v) - } - return -} - -func (f *Framer) writeSynStreamFrame(frame *SynStreamFrame) (err error) { - if frame.StreamId == 0 { - return &Error{ZeroStreamId, 0} - } - // Marshal the headers. - var writer io.Writer = f.headerBuf - if !f.headerCompressionDisabled { - writer = f.headerCompressor - } - if _, err = writeHeaderValueBlock(writer, frame.Headers); err != nil { - return - } - if !f.headerCompressionDisabled { - f.headerCompressor.Flush() - } - - // Set ControlFrameHeader. - frame.CFHeader.version = Version - frame.CFHeader.frameType = TypeSynStream - frame.CFHeader.length = uint32(len(f.headerBuf.Bytes()) + 10) - - // Serialize frame to Writer. - if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil { - return err - } - if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil { - return err - } - if err = binary.Write(f.w, binary.BigEndian, frame.AssociatedToStreamId); err != nil { - return err - } - if err = binary.Write(f.w, binary.BigEndian, frame.Priority<<5); err != nil { - return err - } - if err = binary.Write(f.w, binary.BigEndian, frame.Slot); err != nil { - return err - } - if _, err = f.w.Write(f.headerBuf.Bytes()); err != nil { - return err - } - f.headerBuf.Reset() - return nil -} - -func (f *Framer) writeSynReplyFrame(frame *SynReplyFrame) (err error) { - if frame.StreamId == 0 { - return &Error{ZeroStreamId, 0} - } - // Marshal the headers. - var writer io.Writer = f.headerBuf - if !f.headerCompressionDisabled { - writer = f.headerCompressor - } - if _, err = writeHeaderValueBlock(writer, frame.Headers); err != nil { - return - } - if !f.headerCompressionDisabled { - f.headerCompressor.Flush() - } - - // Set ControlFrameHeader. - frame.CFHeader.version = Version - frame.CFHeader.frameType = TypeSynReply - frame.CFHeader.length = uint32(len(f.headerBuf.Bytes()) + 4) - - // Serialize frame to Writer. - if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil { - return - } - if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil { - return - } - if _, err = f.w.Write(f.headerBuf.Bytes()); err != nil { - return - } - f.headerBuf.Reset() - return -} - -func (f *Framer) writeHeadersFrame(frame *HeadersFrame) (err error) { - if frame.StreamId == 0 { - return &Error{ZeroStreamId, 0} - } - // Marshal the headers. - var writer io.Writer = f.headerBuf - if !f.headerCompressionDisabled { - writer = f.headerCompressor - } - if _, err = writeHeaderValueBlock(writer, frame.Headers); err != nil { - return - } - if !f.headerCompressionDisabled { - f.headerCompressor.Flush() - } - - // Set ControlFrameHeader. - frame.CFHeader.version = Version - frame.CFHeader.frameType = TypeHeaders - frame.CFHeader.length = uint32(len(f.headerBuf.Bytes()) + 4) - - // Serialize frame to Writer. - if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil { - return - } - if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil { - return - } - if _, err = f.w.Write(f.headerBuf.Bytes()); err != nil { - return - } - f.headerBuf.Reset() - return -} - -func (f *Framer) writeDataFrame(frame *DataFrame) (err error) { - if frame.StreamId == 0 { - return &Error{ZeroStreamId, 0} - } - if frame.StreamId&0x80000000 != 0 || len(frame.Data) > MaxDataLength { - return &Error{InvalidDataFrame, frame.StreamId} - } - - // Serialize frame to Writer. - if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil { - return - } - flagsAndLength := uint32(frame.Flags)<<24 | uint32(len(frame.Data)) - if err = binary.Write(f.w, binary.BigEndian, flagsAndLength); err != nil { - return - } - if _, err = f.w.Write(frame.Data); err != nil { - return - } - return nil -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy_bench_test.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy_bench_test.go deleted file mode 100644 index 6f9e4910..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy_bench_test.go +++ /dev/null @@ -1,113 +0,0 @@ -package spdystream - -import ( - "fmt" - "io" - "net" - "net/http" - "sync" - "testing" -) - -func configureServer() (io.Closer, string, *sync.WaitGroup) { - authenticated = true - wg := &sync.WaitGroup{} - server, listen, serverErr := runServer(wg) - - if serverErr != nil { - panic(serverErr) - } - - return server, listen, wg -} - -func BenchmarkDial10000(b *testing.B) { - server, addr, wg := configureServer() - - defer func() { - server.Close() - wg.Wait() - }() - - for i := 0; i < b.N; i++ { - conn, dialErr := net.Dial("tcp", addr) - if dialErr != nil { - panic(fmt.Sprintf("Error dialing server: %s", dialErr)) - } - conn.Close() - } -} - -func BenchmarkDialWithSPDYStream10000(b *testing.B) { - server, addr, wg := configureServer() - - defer func() { - server.Close() - wg.Wait() - }() - - for i := 0; i < b.N; i++ { - conn, dialErr := net.Dial("tcp", addr) - if dialErr != nil { - b.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - b.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - closeErr := spdyConn.Close() - if closeErr != nil { - b.Fatalf("Error closing connection: %s, closeErr") - } - } -} - -func benchmarkStreamWithDataAndSize(size uint64, b *testing.B) { - server, addr, wg := configureServer() - - defer func() { - server.Close() - wg.Wait() - }() - - for i := 0; i < b.N; i++ { - conn, dialErr := net.Dial("tcp", addr) - if dialErr != nil { - b.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - b.Fatalf("Error creating spdy connection: %s", spdyErr) - } - - go spdyConn.Serve(MirrorStreamHandler) - - stream, err := spdyConn.CreateStream(http.Header{}, nil, false) - - writer := make([]byte, size) - - stream.Write(writer) - - if err != nil { - panic(err) - } - - reader := make([]byte, size) - stream.Read(reader) - - stream.Close() - - closeErr := spdyConn.Close() - if closeErr != nil { - b.Fatalf("Error closing connection: %s, closeErr") - } - } -} - -func BenchmarkStreamWith1Byte10000(b *testing.B) { benchmarkStreamWithDataAndSize(1, b) } -func BenchmarkStreamWith1KiloByte10000(b *testing.B) { benchmarkStreamWithDataAndSize(1024, b) } -func BenchmarkStreamWith1Megabyte10000(b *testing.B) { benchmarkStreamWithDataAndSize(1024*1024, b) } diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy_test.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy_test.go deleted file mode 100644 index b9ca7acd..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy_test.go +++ /dev/null @@ -1,1003 +0,0 @@ -package spdystream - -import ( - "bufio" - "bytes" - "fmt" - "io" - "io/ioutil" - "net" - "net/http" - "net/http/httptest" - "sync" - "testing" - "time" - - "gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy" -) - -func TestSpdyStreams(t *testing.T) { - var wg sync.WaitGroup - server, listen, serverErr := runServer(&wg) - if serverErr != nil { - t.Fatalf("Error initializing server: %s", serverErr) - } - - conn, dialErr := net.Dial("tcp", listen) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - authenticated = true - stream, streamErr := spdyConn.CreateStream(http.Header{}, nil, false) - if streamErr != nil { - t.Fatalf("Error creating stream: %s", streamErr) - } - - waitErr := stream.Wait() - if waitErr != nil { - t.Fatalf("Error waiting for stream: %s", waitErr) - } - - message := []byte("hello") - writeErr := stream.WriteData(message, false) - if writeErr != nil { - t.Fatalf("Error writing data") - } - - buf := make([]byte, 10) - n, readErr := stream.Read(buf) - if readErr != nil { - t.Fatalf("Error reading data from stream: %s", readErr) - } - if n != 5 { - t.Fatalf("Unexpected number of bytes read:\nActual: %d\nExpected: 5", n) - } - if bytes.Compare(buf[:n], message) != 0 { - t.Fatalf("Did not receive expected message:\nActual: %s\nExpectd: %s", buf, message) - } - - headers := http.Header{ - "TestKey": []string{"TestVal"}, - } - sendErr := stream.SendHeader(headers, false) - if sendErr != nil { - t.Fatalf("Error sending headers: %s", sendErr) - } - receiveHeaders, receiveErr := stream.ReceiveHeader() - if receiveErr != nil { - t.Fatalf("Error receiving headers: %s", receiveErr) - } - if len(receiveHeaders) != 1 { - t.Fatalf("Unexpected number of headers:\nActual: %d\nExpecting:%d", len(receiveHeaders), 1) - } - testVal := receiveHeaders.Get("TestKey") - if testVal != "TestVal" { - t.Fatalf("Wrong test value:\nActual: %q\nExpecting: %q", testVal, "TestVal") - } - - writeErr = stream.WriteData(message, true) - if writeErr != nil { - t.Fatalf("Error writing data") - } - - smallBuf := make([]byte, 3) - n, readErr = stream.Read(smallBuf) - if readErr != nil { - t.Fatalf("Error reading data from stream: %s", readErr) - } - if n != 3 { - t.Fatalf("Unexpected number of bytes read:\nActual: %d\nExpected: 3", n) - } - if bytes.Compare(smallBuf[:n], []byte("hel")) != 0 { - t.Fatalf("Did not receive expected message:\nActual: %s\nExpectd: %s", smallBuf[:n], message) - } - n, readErr = stream.Read(smallBuf) - if readErr != nil { - t.Fatalf("Error reading data from stream: %s", readErr) - } - if n != 2 { - t.Fatalf("Unexpected number of bytes read:\nActual: %d\nExpected: 2", n) - } - if bytes.Compare(smallBuf[:n], []byte("lo")) != 0 { - t.Fatalf("Did not receive expected message:\nActual: %s\nExpected: lo", smallBuf[:n]) - } - - n, readErr = stream.Read(buf) - if readErr != io.EOF { - t.Fatalf("Expected EOF reading from finished stream, read %d bytes", n) - } - - // Closing again should return error since stream is already closed - streamCloseErr := stream.Close() - if streamCloseErr == nil { - t.Fatalf("No error closing finished stream") - } - if streamCloseErr != ErrWriteClosedStream { - t.Fatalf("Unexpected error closing stream: %s", streamCloseErr) - } - - streamResetErr := stream.Reset() - if streamResetErr != nil { - t.Fatalf("Error reseting stream: %s", streamResetErr) - } - - authenticated = false - badStream, badStreamErr := spdyConn.CreateStream(http.Header{}, nil, false) - if badStreamErr != nil { - t.Fatalf("Error creating stream: %s", badStreamErr) - } - - waitErr = badStream.Wait() - if waitErr == nil { - t.Fatalf("Did not receive error creating stream") - } - if waitErr != ErrReset { - t.Fatalf("Unexpected error creating stream: %s", waitErr) - } - streamCloseErr = badStream.Close() - if streamCloseErr == nil { - t.Fatalf("No error closing bad stream") - } - - spdyCloseErr := spdyConn.Close() - if spdyCloseErr != nil { - t.Fatalf("Error closing spdy connection: %s", spdyCloseErr) - } - - closeErr := server.Close() - if closeErr != nil { - t.Fatalf("Error shutting down server: %s", closeErr) - } - wg.Wait() -} - -func TestPing(t *testing.T) { - var wg sync.WaitGroup - server, listen, serverErr := runServer(&wg) - if serverErr != nil { - t.Fatalf("Error initializing server: %s", serverErr) - } - - conn, dialErr := net.Dial("tcp", listen) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - pingTime, pingErr := spdyConn.Ping() - if pingErr != nil { - t.Fatalf("Error pinging server: %s", pingErr) - } - if pingTime == time.Duration(0) { - t.Fatalf("Expecting non-zero ping time") - } - - closeErr := server.Close() - if closeErr != nil { - t.Fatalf("Error shutting down server: %s", closeErr) - } - wg.Wait() -} - -func TestHalfClose(t *testing.T) { - var wg sync.WaitGroup - server, listen, serverErr := runServer(&wg) - if serverErr != nil { - t.Fatalf("Error initializing server: %s", serverErr) - } - - conn, dialErr := net.Dial("tcp", listen) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - authenticated = true - stream, streamErr := spdyConn.CreateStream(http.Header{}, nil, false) - if streamErr != nil { - t.Fatalf("Error creating stream: %s", streamErr) - } - - waitErr := stream.Wait() - if waitErr != nil { - t.Fatalf("Error waiting for stream: %s", waitErr) - } - - message := []byte("hello and will read after close") - writeErr := stream.WriteData(message, false) - if writeErr != nil { - t.Fatalf("Error writing data") - } - - streamCloseErr := stream.Close() - if streamCloseErr != nil { - t.Fatalf("Error closing stream: %s", streamCloseErr) - } - - buf := make([]byte, 40) - n, readErr := stream.Read(buf) - if readErr != nil { - t.Fatalf("Error reading data from stream: %s", readErr) - } - if n != 31 { - t.Fatalf("Unexpected number of bytes read:\nActual: %d\nExpected: 5", n) - } - if bytes.Compare(buf[:n], message) != 0 { - t.Fatalf("Did not receive expected message:\nActual: %s\nExpectd: %s", buf, message) - } - - spdyCloseErr := spdyConn.Close() - if spdyCloseErr != nil { - t.Fatalf("Error closing spdy connection: %s", spdyCloseErr) - } - - closeErr := server.Close() - if closeErr != nil { - t.Fatalf("Error shutting down server: %s", closeErr) - } - wg.Wait() -} - -func TestUnexpectedRemoteConnectionClosed(t *testing.T) { - tt := []struct { - closeReceiver bool - closeSender bool - }{ - {closeReceiver: true, closeSender: false}, - {closeReceiver: false, closeSender: true}, - {closeReceiver: false, closeSender: false}, - } - for tix, tc := range tt { - listener, listenErr := net.Listen("tcp", "localhost:0") - if listenErr != nil { - t.Fatalf("Error listening: %v", listenErr) - } - - var serverConn net.Conn - var connErr error - go func() { - serverConn, connErr = listener.Accept() - if connErr != nil { - t.Fatalf("Error accepting: %v", connErr) - } - - serverSpdyConn, _ := NewConnection(serverConn, true) - go serverSpdyConn.Serve(func(stream *Stream) { - stream.SendReply(http.Header{}, tc.closeSender) - }) - }() - - conn, dialErr := net.Dial("tcp", listener.Addr().String()) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - authenticated = true - stream, streamErr := spdyConn.CreateStream(http.Header{}, nil, false) - if streamErr != nil { - t.Fatalf("Error creating stream: %s", streamErr) - } - - waitErr := stream.Wait() - if waitErr != nil { - t.Fatalf("Error waiting for stream: %s", waitErr) - } - - if tc.closeReceiver { - // make stream half closed, receive only - stream.Close() - } - - streamch := make(chan error, 1) - go func() { - b := make([]byte, 1) - _, err := stream.Read(b) - streamch <- err - }() - - closeErr := serverConn.Close() - if closeErr != nil { - t.Fatalf("Error shutting down server: %s", closeErr) - } - - select { - case e := <-streamch: - if e == nil || e != io.EOF { - t.Fatalf("(%d) Expected to get an EOF stream error", tix) - } - } - - closeErr = conn.Close() - if closeErr != nil { - t.Fatalf("Error closing client connection: %s", closeErr) - } - - listenErr = listener.Close() - if listenErr != nil { - t.Fatalf("Error closing listener: %s", listenErr) - } - } -} - -func TestCloseNotification(t *testing.T) { - listener, listenErr := net.Listen("tcp", "localhost:0") - if listenErr != nil { - t.Fatalf("Error listening: %v", listenErr) - } - listen := listener.Addr().String() - - serverConnChan := make(chan net.Conn) - go func() { - serverConn, err := listener.Accept() - if err != nil { - t.Fatalf("Error accepting: %v", err) - } - - serverSpdyConn, err := NewConnection(serverConn, true) - if err != nil { - t.Fatalf("Error creating server connection: %v", err) - } - go serverSpdyConn.Serve(NoOpStreamHandler) - <-serverSpdyConn.CloseChan() - serverConnChan <- serverConn - }() - - conn, dialErr := net.Dial("tcp", listen) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - // close client conn - err := conn.Close() - if err != nil { - t.Fatalf("Error closing client connection: %v", err) - } - - var serverConn net.Conn - select { - case serverConn = <-serverConnChan: - } - - err = serverConn.Close() - if err != nil { - t.Fatalf("Error closing serverConn: %v", err) - } - - listenErr = listener.Close() - if listenErr != nil { - t.Fatalf("Error closing listener: %s", listenErr) - } -} - -func TestIdleShutdownRace(t *testing.T) { - var wg sync.WaitGroup - server, listen, serverErr := runServer(&wg) - if serverErr != nil { - t.Fatalf("Error initializing server: %s", serverErr) - } - - conn, dialErr := net.Dial("tcp", listen) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - authenticated = true - stream, err := spdyConn.CreateStream(http.Header{}, nil, false) - if err != nil { - t.Fatalf("Error creating stream: %v", err) - } - - spdyConn.SetIdleTimeout(5 * time.Millisecond) - go func() { - time.Sleep(5 * time.Millisecond) - stream.Reset() - }() - - select { - case <-spdyConn.CloseChan(): - case <-time.After(20 * time.Millisecond): - t.Fatal("Timed out waiting for idle connection closure") - } - - closeErr := server.Close() - if closeErr != nil { - t.Fatalf("Error shutting down server: %s", closeErr) - } - wg.Wait() -} - -func TestIdleNoTimeoutSet(t *testing.T) { - var wg sync.WaitGroup - server, listen, serverErr := runServer(&wg) - if serverErr != nil { - t.Fatalf("Error initializing server: %s", serverErr) - } - - conn, dialErr := net.Dial("tcp", listen) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - select { - case <-spdyConn.CloseChan(): - t.Fatal("Unexpected connection closure") - case <-time.After(10 * time.Millisecond): - } - - closeErr := server.Close() - if closeErr != nil { - t.Fatalf("Error shutting down server: %s", closeErr) - } - wg.Wait() -} - -func TestIdleClearTimeout(t *testing.T) { - var wg sync.WaitGroup - server, listen, serverErr := runServer(&wg) - if serverErr != nil { - t.Fatalf("Error initializing server: %s", serverErr) - } - - conn, dialErr := net.Dial("tcp", listen) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - spdyConn.SetIdleTimeout(10 * time.Millisecond) - spdyConn.SetIdleTimeout(0) - select { - case <-spdyConn.CloseChan(): - t.Fatal("Unexpected connection closure") - case <-time.After(20 * time.Millisecond): - } - - closeErr := server.Close() - if closeErr != nil { - t.Fatalf("Error shutting down server: %s", closeErr) - } - wg.Wait() -} - -func TestIdleNoData(t *testing.T) { - var wg sync.WaitGroup - server, listen, serverErr := runServer(&wg) - if serverErr != nil { - t.Fatalf("Error initializing server: %s", serverErr) - } - - conn, dialErr := net.Dial("tcp", listen) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - spdyConn.SetIdleTimeout(10 * time.Millisecond) - <-spdyConn.CloseChan() - - closeErr := server.Close() - if closeErr != nil { - t.Fatalf("Error shutting down server: %s", closeErr) - } - wg.Wait() -} - -func TestIdleWithData(t *testing.T) { - var wg sync.WaitGroup - server, listen, serverErr := runServer(&wg) - if serverErr != nil { - t.Fatalf("Error initializing server: %s", serverErr) - } - - conn, dialErr := net.Dial("tcp", listen) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - spdyConn.SetIdleTimeout(25 * time.Millisecond) - - authenticated = true - stream, err := spdyConn.CreateStream(http.Header{}, nil, false) - if err != nil { - t.Fatalf("Error creating stream: %v", err) - } - - writeCh := make(chan struct{}) - - go func() { - b := []byte{1, 2, 3, 4, 5} - for i := 0; i < 10; i++ { - _, err = stream.Write(b) - if err != nil { - t.Fatalf("Error writing to stream: %v", err) - } - time.Sleep(10 * time.Millisecond) - } - close(writeCh) - }() - - writesFinished := false - -Loop: - for { - select { - case <-writeCh: - writesFinished = true - case <-spdyConn.CloseChan(): - if !writesFinished { - t.Fatal("Connection closed before all writes finished") - } - break Loop - } - } - - closeErr := server.Close() - if closeErr != nil { - t.Fatalf("Error shutting down server: %s", closeErr) - } - wg.Wait() -} - -func TestIdleRace(t *testing.T) { - var wg sync.WaitGroup - server, listen, serverErr := runServer(&wg) - if serverErr != nil { - t.Fatalf("Error initializing server: %s", serverErr) - } - - conn, dialErr := net.Dial("tcp", listen) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - spdyConn.SetIdleTimeout(10 * time.Millisecond) - - authenticated = true - - for i := 0; i < 10; i++ { - _, err := spdyConn.CreateStream(http.Header{}, nil, false) - if err != nil { - t.Fatalf("Error creating stream: %v", err) - } - } - - <-spdyConn.CloseChan() - - closeErr := server.Close() - if closeErr != nil { - t.Fatalf("Error shutting down server: %s", closeErr) - } - wg.Wait() -} - -func TestHalfClosedIdleTimeout(t *testing.T) { - listener, listenErr := net.Listen("tcp", "localhost:0") - if listenErr != nil { - t.Fatalf("Error listening: %v", listenErr) - } - listen := listener.Addr().String() - - go func() { - serverConn, err := listener.Accept() - if err != nil { - t.Fatalf("Error accepting: %v", err) - } - - serverSpdyConn, err := NewConnection(serverConn, true) - if err != nil { - t.Fatalf("Error creating server connection: %v", err) - } - go serverSpdyConn.Serve(func(s *Stream) { - s.SendReply(http.Header{}, true) - }) - serverSpdyConn.SetIdleTimeout(10 * time.Millisecond) - }() - - conn, dialErr := net.Dial("tcp", listen) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - stream, err := spdyConn.CreateStream(http.Header{}, nil, false) - if err != nil { - t.Fatalf("Error creating stream: %v", err) - } - - time.Sleep(20 * time.Millisecond) - - stream.Reset() - - err = spdyConn.Close() - if err != nil { - t.Fatalf("Error closing client spdy conn: %v", err) - } -} - -func TestStreamReset(t *testing.T) { - var wg sync.WaitGroup - server, listen, serverErr := runServer(&wg) - if serverErr != nil { - t.Fatalf("Error initializing server: %s", serverErr) - } - - conn, dialErr := net.Dial("tcp", listen) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - authenticated = true - stream, streamErr := spdyConn.CreateStream(http.Header{}, nil, false) - if streamErr != nil { - t.Fatalf("Error creating stream: %s", streamErr) - } - - buf := []byte("dskjahfkdusahfkdsahfkdsafdkas") - for i := 0; i < 10; i++ { - if _, err := stream.Write(buf); err != nil { - t.Fatalf("Error writing to stream: %s", err) - } - } - for i := 0; i < 10; i++ { - if _, err := stream.Read(buf); err != nil { - t.Fatalf("Error reading from stream: %s", err) - } - } - - // fmt.Printf("Resetting...\n") - if err := stream.Reset(); err != nil { - t.Fatalf("Error reseting stream: %s", err) - } - - closeErr := server.Close() - if closeErr != nil { - t.Fatalf("Error shutting down server: %s", closeErr) - } - wg.Wait() -} - -func TestStreamResetWithDataRemaining(t *testing.T) { - var wg sync.WaitGroup - server, listen, serverErr := runServer(&wg) - if serverErr != nil { - t.Fatalf("Error initializing server: %s", serverErr) - } - - conn, dialErr := net.Dial("tcp", listen) - if dialErr != nil { - t.Fatalf("Error dialing server: %s", dialErr) - } - - spdyConn, spdyErr := NewConnection(conn, false) - if spdyErr != nil { - t.Fatalf("Error creating spdy connection: %s", spdyErr) - } - go spdyConn.Serve(NoOpStreamHandler) - - authenticated = true - stream, streamErr := spdyConn.CreateStream(http.Header{}, nil, false) - if streamErr != nil { - t.Fatalf("Error creating stream: %s", streamErr) - } - - buf := []byte("dskjahfkdusahfkdsahfkdsafdkas") - for i := 0; i < 10; i++ { - if _, err := stream.Write(buf); err != nil { - t.Fatalf("Error writing to stream: %s", err) - } - } - - // read a bit to make sure a goroutine gets to <-dataChan - if _, err := stream.Read(buf); err != nil { - t.Fatalf("Error reading from stream: %s", err) - } - - // fmt.Printf("Resetting...\n") - if err := stream.Reset(); err != nil { - t.Fatalf("Error reseting stream: %s", err) - } - - closeErr := server.Close() - if closeErr != nil { - t.Fatalf("Error shutting down server: %s", closeErr) - } - wg.Wait() -} - -type roundTripper struct { - conn net.Conn -} - -func (s *roundTripper) RoundTrip(req *http.Request) (*http.Response, error) { - r := *req - req = &r - - conn, err := net.Dial("tcp", req.URL.Host) - if err != nil { - return nil, err - } - - err = req.Write(conn) - if err != nil { - return nil, err - } - - resp, err := http.ReadResponse(bufio.NewReader(conn), req) - if err != nil { - return nil, err - } - - s.conn = conn - - return resp, nil -} - -// see https://github.com/GoogleCloudPlatform/kubernetes/issues/4882 -func TestFramingAfterRemoteConnectionClosed(t *testing.T) { - server := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - streamCh := make(chan *Stream) - - w.WriteHeader(http.StatusSwitchingProtocols) - - netconn, _, _ := w.(http.Hijacker).Hijack() - conn, _ := NewConnection(netconn, true) - go conn.Serve(func(s *Stream) { - s.SendReply(http.Header{}, false) - streamCh <- s - }) - - stream := <-streamCh - io.Copy(stream, stream) - - closeChan := make(chan struct{}) - go func() { - stream.Reset() - conn.Close() - close(closeChan) - }() - - <-closeChan - })) - - server.Start() - defer server.Close() - - req, err := http.NewRequest("GET", server.URL, nil) - if err != nil { - t.Fatalf("Error creating request: %s", err) - } - - rt := &roundTripper{} - client := &http.Client{Transport: rt} - - _, err = client.Do(req) - if err != nil { - t.Fatalf("unexpected error from client.Do: %s", err) - } - - conn, err := NewConnection(rt.conn, false) - go conn.Serve(NoOpStreamHandler) - - stream, err := conn.CreateStream(http.Header{}, nil, false) - if err != nil { - t.Fatalf("error creating client stream: %s", err) - } - - n, err := stream.Write([]byte("hello")) - if err != nil { - t.Fatalf("error writing to stream: %s", err) - } - if n != 5 { - t.Fatalf("Expected to write 5 bytes, but actually wrote %d", n) - } - - b := make([]byte, 5) - n, err = stream.Read(b) - if err != nil { - t.Fatalf("error reading from stream: %s", err) - } - if n != 5 { - t.Fatalf("Expected to read 5 bytes, but actually read %d", n) - } - if e, a := "hello", string(b[0:n]); e != a { - t.Fatalf("expected '%s', got '%s'", e, a) - } - - stream.Reset() - conn.Close() -} - -func TestGoAwayRace(t *testing.T) { - var done sync.WaitGroup - listener, err := net.Listen("tcp", "localhost:0") - if err != nil { - t.Fatalf("Error listening: %v", err) - } - listen := listener.Addr().String() - - processDataFrame := make(chan struct{}) - serverClosed := make(chan struct{}) - - done.Add(1) - go func() { - defer done.Done() - serverConn, err := listener.Accept() - if err != nil { - t.Fatalf("Error accepting: %v", err) - } - - serverSpdyConn, err := NewConnection(serverConn, true) - if err != nil { - t.Fatalf("Error creating server connection: %v", err) - } - go func() { - <-serverSpdyConn.CloseChan() - close(serverClosed) - }() - - // force the data frame handler to sleep before delivering the frame - serverSpdyConn.dataFrameHandler = func(frame *spdy.DataFrame) error { - <-processDataFrame - return serverSpdyConn.handleDataFrame(frame) - } - - streamCh := make(chan *Stream) - go serverSpdyConn.Serve(func(s *Stream) { - s.SendReply(http.Header{}, false) - streamCh <- s - }) - - stream, ok := <-streamCh - if !ok { - t.Fatalf("didn't get a stream") - } - stream.Close() - data, err := ioutil.ReadAll(stream) - if err != nil { - t.Error(err) - } - if e, a := "hello1hello2hello3hello4hello5", string(data); e != a { - t.Errorf("Expected %q, got %q", e, a) - } - }() - - dialConn, err := net.Dial("tcp", listen) - if err != nil { - t.Fatalf("Error dialing server: %s", err) - } - conn, err := NewConnection(dialConn, false) - if err != nil { - t.Fatalf("Error creating client connectin: %v", err) - } - go conn.Serve(NoOpStreamHandler) - - stream, err := conn.CreateStream(http.Header{}, nil, false) - if err != nil { - t.Fatalf("error creating client stream: %s", err) - } - if err := stream.Wait(); err != nil { - t.Fatalf("error waiting for stream creation: %v", err) - } - - fmt.Fprint(stream, "hello1") - fmt.Fprint(stream, "hello2") - fmt.Fprint(stream, "hello3") - fmt.Fprint(stream, "hello4") - fmt.Fprint(stream, "hello5") - - stream.Close() - conn.Close() - - // wait for the server to get the go away frame - <-serverClosed - - // allow the data frames to be delivered to the server's stream - close(processDataFrame) - - done.Wait() -} - -var authenticated bool - -func authStreamHandler(stream *Stream) { - if !authenticated { - stream.Refuse() - } - MirrorStreamHandler(stream) -} - -func runServer(wg *sync.WaitGroup) (io.Closer, string, error) { - listener, listenErr := net.Listen("tcp", "localhost:0") - if listenErr != nil { - return nil, "", listenErr - } - wg.Add(1) - go func() { - for { - conn, connErr := listener.Accept() - if connErr != nil { - break - } - - spdyConn, _ := NewConnection(conn, true) - go spdyConn.Serve(authStreamHandler) - - } - wg.Done() - }() - return listener, listener.Addr().String(), nil -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/stream.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/stream.go deleted file mode 100644 index 1710a35f..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/stream.go +++ /dev/null @@ -1,327 +0,0 @@ -package spdystream - -import ( - "errors" - "fmt" - "io" - "net" - "net/http" - "sync" - "time" - - "gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/spdy" -) - -var ( - ErrUnreadPartialData = errors.New("unread partial data") -) - -type Stream struct { - streamId spdy.StreamId - parent *Stream - conn *Connection - startChan chan error - - dataLock sync.RWMutex - dataChan chan []byte - unread []byte - - priority uint8 - headers http.Header - headerChan chan http.Header - finishLock sync.Mutex - finished bool - replyCond *sync.Cond - replied bool - closeLock sync.Mutex - closeChan chan bool -} - -// WriteData writes data to stream, sending a dataframe per call -func (s *Stream) WriteData(data []byte, fin bool) error { - s.waitWriteReply() - var flags spdy.DataFlags - - if fin { - flags = spdy.DataFlagFin - s.finishLock.Lock() - if s.finished { - s.finishLock.Unlock() - return ErrWriteClosedStream - } - s.finished = true - s.finishLock.Unlock() - } - - dataFrame := &spdy.DataFrame{ - StreamId: s.streamId, - Flags: flags, - Data: data, - } - - debugMessage("(%p) (%d) Writing data frame", s, s.streamId) - return s.conn.framer.WriteFrame(dataFrame) -} - -// Write writes bytes to a stream, calling write data for each call. -func (s *Stream) Write(data []byte) (n int, err error) { - err = s.WriteData(data, false) - if err == nil { - n = len(data) - } - return -} - -// Read reads bytes from a stream, a single read will never get more -// than what is sent on a single data frame, but a multiple calls to -// read may get data from the same data frame. -func (s *Stream) Read(p []byte) (n int, err error) { - if s.unread == nil { - select { - case <-s.closeChan: - return 0, io.EOF - case read, ok := <-s.dataChan: - if !ok { - return 0, io.EOF - } - s.unread = read - } - } - n = copy(p, s.unread) - if n < len(s.unread) { - s.unread = s.unread[n:] - } else { - s.unread = nil - } - return -} - -// ReadData reads an entire data frame and returns the byte array -// from the data frame. If there is unread data from the result -// of a Read call, this function will return an ErrUnreadPartialData. -func (s *Stream) ReadData() ([]byte, error) { - debugMessage("(%p) Reading data from %d", s, s.streamId) - if s.unread != nil { - return nil, ErrUnreadPartialData - } - select { - case <-s.closeChan: - return nil, io.EOF - case read, ok := <-s.dataChan: - if !ok { - return nil, io.EOF - } - return read, nil - } -} - -func (s *Stream) waitWriteReply() { - if s.replyCond != nil { - s.replyCond.L.Lock() - for !s.replied { - s.replyCond.Wait() - } - s.replyCond.L.Unlock() - } -} - -// Wait waits for the stream to receive a reply. -func (s *Stream) Wait() error { - return s.WaitTimeout(time.Duration(0)) -} - -// WaitTimeout waits for the stream to receive a reply or for timeout. -// When the timeout is reached, ErrTimeout will be returned. -func (s *Stream) WaitTimeout(timeout time.Duration) error { - var timeoutChan <-chan time.Time - if timeout > time.Duration(0) { - timeoutChan = time.After(timeout) - } - - select { - case err := <-s.startChan: - if err != nil { - return err - } - break - case <-timeoutChan: - return ErrTimeout - } - return nil -} - -// Close closes the stream by sending an empty data frame with the -// finish flag set, indicating this side is finished with the stream. -func (s *Stream) Close() error { - select { - case <-s.closeChan: - // Stream is now fully closed - s.conn.removeStream(s) - default: - break - } - return s.WriteData([]byte{}, true) -} - -// Reset sends a reset frame, putting the stream into the fully closed state. -func (s *Stream) Reset() error { - s.conn.removeStream(s) - return s.resetStream() -} - -func (s *Stream) resetStream() error { - s.finishLock.Lock() - if s.finished { - s.finishLock.Unlock() - return nil - } - s.finished = true - s.finishLock.Unlock() - - s.closeRemoteChannels() - - resetFrame := &spdy.RstStreamFrame{ - StreamId: s.streamId, - Status: spdy.Cancel, - } - return s.conn.framer.WriteFrame(resetFrame) -} - -// CreateSubStream creates a stream using the current as the parent -func (s *Stream) CreateSubStream(headers http.Header, fin bool) (*Stream, error) { - return s.conn.CreateStream(headers, s, fin) -} - -// SetPriority sets the stream priority, does not affect the -// remote priority of this stream after Open has been called. -// Valid values are 0 through 7, 0 being the highest priority -// and 7 the lowest. -func (s *Stream) SetPriority(priority uint8) { - s.priority = priority -} - -// SendHeader sends a header frame across the stream -func (s *Stream) SendHeader(headers http.Header, fin bool) error { - return s.conn.sendHeaders(headers, s, fin) -} - -// SendReply sends a reply on a stream, only valid to be called once -// when handling a new stream -func (s *Stream) SendReply(headers http.Header, fin bool) error { - if s.replyCond == nil { - return errors.New("cannot reply on initiated stream") - } - s.replyCond.L.Lock() - defer s.replyCond.L.Unlock() - if s.replied { - return nil - } - - err := s.conn.sendReply(headers, s, fin) - if err != nil { - return err - } - - s.replied = true - s.replyCond.Broadcast() - return nil -} - -// Refuse sends a reset frame with the status refuse, only -// valid to be called once when handling a new stream. This -// may be used to indicate that a stream is not allowed -// when http status codes are not being used. -func (s *Stream) Refuse() error { - if s.replied { - return nil - } - s.replied = true - return s.conn.sendReset(spdy.RefusedStream, s) -} - -// Cancel sends a reset frame with the status canceled. This -// can be used at any time by the creator of the Stream to -// indicate the stream is no longer needed. -func (s *Stream) Cancel() error { - return s.conn.sendReset(spdy.Cancel, s) -} - -// ReceiveHeader receives a header sent on the other side -// of the stream. This function will block until a header -// is received or stream is closed. -func (s *Stream) ReceiveHeader() (http.Header, error) { - select { - case <-s.closeChan: - break - case header, ok := <-s.headerChan: - if !ok { - return nil, fmt.Errorf("header chan closed") - } - return header, nil - } - return nil, fmt.Errorf("stream closed") -} - -// Parent returns the parent stream -func (s *Stream) Parent() *Stream { - return s.parent -} - -// Headers returns the headers used to create the stream -func (s *Stream) Headers() http.Header { - return s.headers -} - -// String returns the string version of stream using the -// streamId to uniquely identify the stream -func (s *Stream) String() string { - return fmt.Sprintf("stream:%d", s.streamId) -} - -// Identifier returns a 32 bit identifier for the stream -func (s *Stream) Identifier() uint32 { - return uint32(s.streamId) -} - -// IsFinished returns whether the stream has finished -// sending data -func (s *Stream) IsFinished() bool { - return s.finished -} - -// Implement net.Conn interface - -func (s *Stream) LocalAddr() net.Addr { - return s.conn.conn.LocalAddr() -} - -func (s *Stream) RemoteAddr() net.Addr { - return s.conn.conn.RemoteAddr() -} - -// TODO set per stream values instead of connection-wide - -func (s *Stream) SetDeadline(t time.Time) error { - return s.conn.conn.SetDeadline(t) -} - -func (s *Stream) SetReadDeadline(t time.Time) error { - return s.conn.conn.SetReadDeadline(t) -} - -func (s *Stream) SetWriteDeadline(t time.Time) error { - return s.conn.conn.SetWriteDeadline(t) -} - -func (s *Stream) closeRemoteChannels() { - s.closeLock.Lock() - defer s.closeLock.Unlock() - select { - case <-s.closeChan: - default: - close(s.closeChan) - s.dataLock.Lock() - defer s.dataLock.Unlock() - close(s.dataChan) - } -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/utils.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/utils.go deleted file mode 100644 index 1b2c199a..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/utils.go +++ /dev/null @@ -1,16 +0,0 @@ -package spdystream - -import ( - "log" - "os" -) - -var ( - DEBUG = os.Getenv("DEBUG") -) - -func debugMessage(fmt string, args ...interface{}) { - if DEBUG != "" { - log.Printf(fmt, args...) - } -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/ws/connection.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/ws/connection.go deleted file mode 100644 index 48425a49..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/ws/connection.go +++ /dev/null @@ -1,65 +0,0 @@ -package ws - -import ( - "gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket" - "io" - "log" - "time" -) - -// Wrap an HTTP2 connection over WebSockets and -// use the underlying WebSocket framing for proxy -// compatibility. -type Conn struct { - *websocket.Conn - reader io.Reader -} - -func NewConnection(w *websocket.Conn) *Conn { - return &Conn{Conn: w} -} - -func (c Conn) Write(b []byte) (int, error) { - err := c.WriteMessage(websocket.BinaryMessage, b) - if err != nil { - return 0, err - } - return len(b), nil -} - -func (c Conn) Read(b []byte) (int, error) { - if c.reader == nil { - t, r, err := c.NextReader() - if err != nil { - return 0, err - } - if t != websocket.BinaryMessage { - log.Printf("ws: ignored non-binary message in stream") - return 0, nil - } - c.reader = r - } - n, err := c.reader.Read(b) - if err != nil { - if err == io.EOF { - c.reader = nil - } - return n, err - } - return n, nil -} - -func (c Conn) SetDeadline(t time.Time) error { - if err := c.Conn.SetReadDeadline(t); err != nil { - return err - } - if err := c.Conn.SetWriteDeadline(t); err != nil { - return err - } - return nil -} - -func (c Conn) Close() error { - err := c.Conn.Close() - return err -} diff --git a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/ws/ws_test.go b/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/ws/ws_test.go deleted file mode 100644 index 37d1867b..00000000 --- a/vendor/gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream/ws/ws_test.go +++ /dev/null @@ -1,175 +0,0 @@ -package ws - -import ( - "gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream" - "bytes" - "gx/QmNvACkuNdmJwK4SBHLrxDjEerWqSFnd2qy7CKcn4ouZ3p/websocket" - "io" - "log" - "net/http" - "net/http/httptest" - "strings" - "testing" -) - -var upgrader = websocket.Upgrader{ - ReadBufferSize: 1024, - WriteBufferSize: 1024, -} - -var serverSpdyConn *spdystream.Connection - -// Connect to the Websocket endpoint at ws://localhost -// using SPDY over Websockets framing. -func ExampleConn() { - wsconn, _, _ := websocket.DefaultDialer.Dial("ws://localhost/", http.Header{"Origin": {"http://localhost/"}}) - conn, _ := spdystream.NewConnection(NewConnection(wsconn), false) - go conn.Serve(spdystream.NoOpStreamHandler, spdystream.NoAuthHandler) - stream, _ := conn.CreateStream(http.Header{}, nil, false) - stream.Wait() -} - -func serveWs(w http.ResponseWriter, r *http.Request) { - if r.Method != "GET" { - http.Error(w, "Method not allowed", 405) - return - } - - ws, err := upgrader.Upgrade(w, r, nil) - if err != nil { - if _, ok := err.(websocket.HandshakeError); !ok { - log.Println(err) - } - return - } - - wrap := NewConnection(ws) - spdyConn, err := spdystream.NewConnection(wrap, true) - if err != nil { - log.Fatal(err) - return - } - serverSpdyConn = spdyConn - go spdyConn.Serve(spdystream.MirrorStreamHandler, authStreamHandler) -} - -func TestSpdyStreamOverWs(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(serveWs)) - defer server.Close() - defer func() { - if serverSpdyConn != nil { - serverSpdyConn.Close() - } - }() - - wsconn, _, err := websocket.DefaultDialer.Dial(strings.Replace(server.URL, "http://", "ws://", 1), http.Header{"Origin": {server.URL}}) - if err != nil { - t.Fatal(err) - } - - wrap := NewConnection(wsconn) - spdyConn, err := spdystream.NewConnection(wrap, false) - if err != nil { - defer wsconn.Close() - t.Fatal(err) - } - defer spdyConn.Close() - authenticated = true - go spdyConn.Serve(spdystream.NoOpStreamHandler, spdystream.RejectAuthHandler) - - stream, streamErr := spdyConn.CreateStream(http.Header{}, nil, false) - if streamErr != nil { - t.Fatalf("Error creating stream: %s", streamErr) - } - - waitErr := stream.Wait() - if waitErr != nil { - t.Fatalf("Error waiting for stream: %s", waitErr) - } - - message := []byte("hello") - writeErr := stream.WriteData(message, false) - if writeErr != nil { - t.Fatalf("Error writing data") - } - - buf := make([]byte, 10) - n, readErr := stream.Read(buf) - if readErr != nil { - t.Fatalf("Error reading data from stream: %s", readErr) - } - if n != 5 { - t.Fatalf("Unexpected number of bytes read:\nActual: %d\nExpected: 5", n) - } - if bytes.Compare(buf[:n], message) != 0 { - t.Fatalf("Did not receive expected message:\nActual: %s\nExpectd: %s", buf, message) - } - - writeErr = stream.WriteData(message, true) - if writeErr != nil { - t.Fatalf("Error writing data") - } - - smallBuf := make([]byte, 3) - n, readErr = stream.Read(smallBuf) - if readErr != nil { - t.Fatalf("Error reading data from stream: %s", readErr) - } - if n != 3 { - t.Fatalf("Unexpected number of bytes read:\nActual: %d\nExpected: 3", n) - } - if bytes.Compare(smallBuf[:n], []byte("hel")) != 0 { - t.Fatalf("Did not receive expected message:\nActual: %s\nExpectd: %s", smallBuf[:n], message) - } - n, readErr = stream.Read(smallBuf) - if readErr != nil { - t.Fatalf("Error reading data from stream: %s", readErr) - } - if n != 2 { - t.Fatalf("Unexpected number of bytes read:\nActual: %d\nExpected: 2", n) - } - if bytes.Compare(smallBuf[:n], []byte("lo")) != 0 { - t.Fatalf("Did not receive expected message:\nActual: %s\nExpected: lo", smallBuf[:n]) - } - - n, readErr = stream.Read(buf) - if readErr != io.EOF { - t.Fatalf("Expected EOF reading from finished stream, read %d bytes", n) - } - - streamCloseErr := stream.Close() - if streamCloseErr != nil { - t.Fatalf("Error closing stream: %s", streamCloseErr) - } - - // Closing again should return nil - streamCloseErr = stream.Close() - if streamCloseErr != nil { - t.Fatalf("Error closing stream: %s", streamCloseErr) - } - - authenticated = false - badStream, badStreamErr := spdyConn.CreateStream(http.Header{}, nil, false) - if badStreamErr != nil { - t.Fatalf("Error creating stream: %s", badStreamErr) - } - - waitErr = badStream.Wait() - if waitErr == nil { - t.Fatalf("Did not receive error creating stream") - } - if waitErr != spdystream.ErrReset { - t.Fatalf("Unexpected error creating stream: %s", waitErr) - } - - spdyCloseErr := spdyConn.Close() - if spdyCloseErr != nil { - t.Fatalf("Error closing spdy connection: %s", spdyCloseErr) - } -} - -var authenticated bool - -func authStreamHandler(header http.Header, slot uint8, parent uint32) bool { - return authenticated -} diff --git a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/.gxignore b/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/LICENSE b/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/LICENSE deleted file mode 100644 index be2cc4df..00000000 --- a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/LICENSE +++ /dev/null @@ -1,362 +0,0 @@ -Mozilla Public License, version 2.0 - -1. Definitions - -1.1. "Contributor" - - means each individual or legal entity that creates, contributes to the - creation of, or owns Covered Software. - -1.2. "Contributor Version" - - means the combination of the Contributions of others (if any) used by a - Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - - means Source Code Form to which the initial Contributor has attached the - notice in Exhibit A, the Executable Form of such Source Code Form, and - Modifications of such Source Code Form, in each case including portions - thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - a. that the initial Contributor has attached the notice described in - Exhibit B to the Covered Software; or - - b. that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the terms of - a Secondary License. - -1.6. "Executable Form" - - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - - means a work that combines Covered Software with other material, in a - separate file or files, that is not Covered Software. - -1.8. "License" - - means this document. - -1.9. "Licensable" - - means having the right to grant, to the maximum extent possible, whether - at the time of the initial grant or subsequently, any and all of the - rights conveyed by this License. - -1.10. "Modifications" - - means any of the following: - - a. any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered Software; or - - b. any new file in Source Code Form that contains any Covered Software. - -1.11. "Patent Claims" of a Contributor - - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the License, - by the making, using, selling, offering for sale, having made, import, - or transfer of either its Contributions or its Contributor Version. - -1.12. "Secondary License" - - means either the GNU General Public License, Version 2.0, the GNU Lesser - General Public License, Version 2.1, the GNU Affero General Public - License, Version 3.0, or any later versions of those licenses. - -1.13. "Source Code Form" - - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that controls, is - controlled by, or is under common control with You. For purposes of this - definition, "control" means (a) the power, direct or indirect, to cause - the direction or management of such entity, whether by contract or - otherwise, or (b) ownership of more than fifty percent (50%) of the - outstanding shares or beneficial ownership of such entity. - - -2. License Grants and Conditions - -2.1. Grants - - Each Contributor hereby grants You a world-wide, royalty-free, - non-exclusive license: - - a. under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - - b. under Patent Claims of such Contributor to make, use, sell, offer for - sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - - The licenses granted in Section 2.1 with respect to any Contribution - become effective for each Contribution on the date the Contributor first - distributes such Contribution. - -2.3. Limitations on Grant Scope - - The licenses granted in this Section 2 are the only rights granted under - this License. No additional rights or licenses will be implied from the - distribution or licensing of Covered Software under this License. - Notwithstanding Section 2.1(b) above, no patent license is granted by a - Contributor: - - a. for any code that a Contributor has removed from Covered Software; or - - b. for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - - c. under Patent Claims infringed by Covered Software in the absence of - its Contributions. - - This License does not grant any rights in the trademarks, service marks, - or logos of any Contributor (except as may be necessary to comply with - the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - - No Contributor makes additional grants as a result of Your choice to - distribute the Covered Software under a subsequent version of this - License (see Section 10.2) or under the terms of a Secondary License (if - permitted under the terms of Section 3.3). - -2.5. Representation - - Each Contributor represents that the Contributor believes its - Contributions are its original creation(s) or it has sufficient rights to - grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - - This License is not intended to limit any rights You have under - applicable copyright doctrines of fair use, fair dealing, or other - equivalents. - -2.7. Conditions - - Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in - Section 2.1. - - -3. Responsibilities - -3.1. Distribution of Source Form - - All distribution of Covered Software in Source Code Form, including any - Modifications that You create or to which You contribute, must be under - the terms of this License. You must inform recipients that the Source - Code Form of the Covered Software is governed by the terms of this - License, and how they can obtain a copy of this License. You may not - attempt to alter or restrict the recipients' rights in the Source Code - Form. - -3.2. Distribution of Executable Form - - If You distribute Covered Software in Executable Form then: - - a. such Covered Software must also be made available in Source Code Form, - as described in Section 3.1, and You must inform recipients of the - Executable Form how they can obtain a copy of such Source Code Form by - reasonable means in a timely manner, at a charge no more than the cost - of distribution to the recipient; and - - b. You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter the - recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - - You may create and distribute a Larger Work under terms of Your choice, - provided that You also comply with the requirements of this License for - the Covered Software. If the Larger Work is a combination of Covered - Software with a work governed by one or more Secondary Licenses, and the - Covered Software is not Incompatible With Secondary Licenses, this - License permits You to additionally distribute such Covered Software - under the terms of such Secondary License(s), so that the recipient of - the Larger Work may, at their option, further distribute the Covered - Software under the terms of either this License or such Secondary - License(s). - -3.4. Notices - - You may not remove or alter the substance of any license notices - (including copyright notices, patent notices, disclaimers of warranty, or - limitations of liability) contained within the Source Code Form of the - Covered Software, except that You may alter any license notices to the - extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - - You may choose to offer, and to charge a fee for, warranty, support, - indemnity or liability obligations to one or more recipients of Covered - Software. However, You may do so only on Your own behalf, and not on - behalf of any Contributor. You must make it absolutely clear that any - such warranty, support, indemnity, or liability obligation is offered by - You alone, and You hereby agree to indemnify every Contributor for any - liability incurred by such Contributor as a result of warranty, support, - indemnity or liability terms You offer. You may include additional - disclaimers of warranty and limitations of liability specific to any - jurisdiction. - -4. Inability to Comply Due to Statute or Regulation - - If it is impossible for You to comply with any of the terms of this License - with respect to some or all of the Covered Software due to statute, - judicial order, or regulation then You must: (a) comply with the terms of - this License to the maximum extent possible; and (b) describe the - limitations and the code they affect. Such description must be placed in a - text file included with all distributions of the Covered Software under - this License. Except to the extent prohibited by statute or regulation, - such description must be sufficiently detailed for a recipient of ordinary - skill to be able to understand it. - -5. Termination - -5.1. The rights granted under this License will terminate automatically if You - fail to comply with any of its terms. However, if You become compliant, - then the rights granted under this License from a particular Contributor - are reinstated (a) provisionally, unless and until such Contributor - explicitly and finally terminates Your grants, and (b) on an ongoing - basis, if such Contributor fails to notify You of the non-compliance by - some reasonable means prior to 60 days after You have come back into - compliance. Moreover, Your grants from a particular Contributor are - reinstated on an ongoing basis if such Contributor notifies You of the - non-compliance by some reasonable means, this is the first time You have - received notice of non-compliance with this License from such - Contributor, and You become compliant prior to 30 days after Your receipt - of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent - infringement claim (excluding declaratory judgment actions, - counter-claims, and cross-claims) alleging that a Contributor Version - directly or indirectly infringes any patent, then the rights granted to - You by any and all Contributors for the Covered Software under Section - 2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user - license agreements (excluding distributors and resellers) which have been - validly granted by You or Your distributors under this License prior to - termination shall survive termination. - -6. Disclaimer of Warranty - - Covered Software is provided under this License on an "as is" basis, - without warranty of any kind, either expressed, implied, or statutory, - including, without limitation, warranties that the Covered Software is free - of defects, merchantable, fit for a particular purpose or non-infringing. - The entire risk as to the quality and performance of the Covered Software - is with You. Should any Covered Software prove defective in any respect, - You (not any Contributor) assume the cost of any necessary servicing, - repair, or correction. This disclaimer of warranty constitutes an essential - part of this License. No use of any Covered Software is authorized under - this License except under this disclaimer. - -7. Limitation of Liability - - Under no circumstances and under no legal theory, whether tort (including - negligence), contract, or otherwise, shall any Contributor, or anyone who - distributes Covered Software as permitted above, be liable to You for any - direct, indirect, special, incidental, or consequential damages of any - character including, without limitation, damages for lost profits, loss of - goodwill, work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses, even if such party shall have been - informed of the possibility of such damages. This limitation of liability - shall not apply to liability for death or personal injury resulting from - such party's negligence to the extent applicable law prohibits such - limitation. Some jurisdictions do not allow the exclusion or limitation of - incidental or consequential damages, so this exclusion and limitation may - not apply to You. - -8. Litigation - - Any litigation relating to this License may be brought only in the courts - of a jurisdiction where the defendant maintains its principal place of - business and such litigation shall be governed by laws of that - jurisdiction, without reference to its conflict-of-law provisions. Nothing - in this Section shall prevent a party's ability to bring cross-claims or - counter-claims. - -9. Miscellaneous - - This License represents the complete agreement concerning the subject - matter hereof. If any provision of this License is held to be - unenforceable, such provision shall be reformed only to the extent - necessary to make it enforceable. Any law or regulation which provides that - the language of a contract shall be construed against the drafter shall not - be used to construe this License against a Contributor. - - -10. Versions of the License - -10.1. New Versions - - Mozilla Foundation is the license steward. Except as provided in Section - 10.3, no one other than the license steward has the right to modify or - publish new versions of this License. Each version will be given a - distinguishing version number. - -10.2. Effect of New Versions - - You may distribute the Covered Software under the terms of the version - of the License under which You originally received the Covered Software, - or under the terms of any subsequent version published by the license - steward. - -10.3. Modified Versions - - If you create software not governed by this License, and you want to - create a new license for such software, you may create and use a - modified version of this License if you rename the license and remove - any references to the name of the license steward (except to note that - such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary - Licenses If You choose to distribute Source Code Form that is - Incompatible With Secondary Licenses under the terms of this version of - the License, the notice described in Exhibit B of this License must be - attached. - -Exhibit A - Source Code Form License Notice - - This Source Code Form is subject to the - terms of the Mozilla Public License, v. - 2.0. If a copy of the MPL was not - distributed with this file, You can - obtain one at - http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular file, -then You may include the notice in a location (such as a LICENSE file in a -relevant directory) where a recipient would be likely to look for such a -notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice - - This Source Code Form is "Incompatible - With Secondary Licenses", as defined by - the Mozilla Public License, v. 2.0. diff --git a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/README.md b/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/README.md deleted file mode 100644 index 01c049e3..00000000 --- a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# utp -[![GoDoc](https://godoc.org/github.com/anacrolix/utp?status.svg)](https://godoc.org/github.com/anacrolix/utp) -[![Build Status](https://drone.io/github.com/anacrolix/utp/status.png)](https://drone.io/github.com/anacrolix/utp/latest) - -Package utp implements uTP, the micro transport protocol as used with Bittorrent. It opts for simplicity and reliability over strict adherence to the (poor) spec. - -## Supported - - * Multiple uTP connections switched on a single PacketConn, including those initiated locally. - * Raw access to the PacketConn for non-uTP purposes, like sharing the PacketConn with a DHT implementation. - -## Implementation characteristics - - * Receive window size is used to limit out of order packets received. - * There is no MTU path discovery. The minimum size is always used. - * A fixed 64 slot selective ack window is used in both sending and receiving. - * All received non-ACK packets are ACKed in response. - -Patches welcomed. diff --git a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/cmd/ucat/ucat.go b/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/cmd/ucat/ucat.go deleted file mode 100644 index decaebef..00000000 --- a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/cmd/ucat/ucat.go +++ /dev/null @@ -1,76 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "io" - "log" - "net" - "os" - "os/signal" - - "gx/QmWsa476RGjb9scWzcRVts3QZsYjU5Kt6Y9qe8Q3vc5FHR/envpprof" - - "gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp" -) - -func main() { - defer envpprof.Stop() - listen := flag.Bool("l", false, "listen") - port := flag.Int("p", 0, "port to listen on") - flag.Parse() - var ( - conn net.Conn - err error - ) - if *listen { - s, err := utp.NewSocket("udp", fmt.Sprintf(":%d", *port)) - if err != nil { - log.Fatal(err) - } - defer s.Close() - conn, err = s.Accept() - if err != nil { - log.Fatal(err) - } - } else { - conn, err = utp.Dial(net.JoinHostPort(flag.Arg(0), flag.Arg(1))) - if err != nil { - log.Fatal(err) - } - } - defer conn.Close() - go func() { - sig := make(chan os.Signal, 1) - signal.Notify(sig, os.Interrupt) - <-sig - conn.Close() - }() - writerDone := make(chan struct{}) - readerDone := make(chan struct{}) - go func() { - defer close(writerDone) - written, err := io.Copy(conn, os.Stdin) - if err != nil { - conn.Close() - log.Fatalf("error after writing %d bytes: %s", written, err) - } - log.Printf("wrote %d bytes", written) - conn.Close() - }() - go func() { - defer close(readerDone) - n, err := io.Copy(os.Stdout, conn) - if err != nil { - log.Fatal(err) - } - log.Printf("received %d bytes", n) - }() - // Technically we should wait until both reading and writing are done. But - // ucat-style binaries terminate abrubtly when read or write is completed, - // and no state remains to clean-up the peer neatly. - select { - case <-writerDone: - case <-readerDone: - } -} diff --git a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/package.json b/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/package.json deleted file mode 100644 index 8d11ed76..00000000 --- a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "go-utp", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "jitter", - "hash": "QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS", - "version": "1.0.0" - }, - { - "name": "envpprof", - "hash": "QmWsa476RGjb9scWzcRVts3QZsYjU5Kt6Y9qe8Q3vc5FHR", - "version": "1.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/anacrolix/utp" - } -} \ No newline at end of file diff --git a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/pingpong b/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/pingpong deleted file mode 100644 index 8fca68cf..00000000 --- a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/pingpong +++ /dev/null @@ -1,68 +0,0 @@ -# This shell script uses nc-like executables to send and receive the file at -# $1, and prints the checksums. 3 such executables are -# github.com/h2so5/utp/ucat, invoked as h2so5-ucat, libutp-ucat, which is the -# ucat or ucat-static generated by the C++ libutp, and lastly, ./cmd/ucat from -# this repository. A good file in my experiments is no more than a few 100MB, -# or you'll be waiting a while. - -set -eu -# set -x - -# Passed to invocations of godo for package ./cmd/ucat. -#GODOFLAGS=-race - -#export GO_UTP_PACKET_DROP=0.1 -export GOPPROF= - -# Invokes the implementation to test against. If there's an arg, then it's -# expected to listen. -function other_ucat() { - if [[ $# != 0 ]]; then - libutp-ucat -l -p "$port" - # h2so5-ucat -l :"$port" - else - libutp-ucat localhost "$port" - # h2so5-ucat localhost:"$port" - fi -} - -function md5cmd() { - (which md5sum > /dev/null && md5sum "$@") || (which md5 > /dev/null && md5 "$@") || md5sum "$@" -} - -# Check what the correct result is. -md5cmd "$1" - -rate() { - pv -a -W -b -} - -port=4000 - -echo 'utp->other_ucat' -# Send from this uTP implementation to another client. -other_ucat -l | rate | md5cmd & -# sleep 1 -godo ${GODOFLAGS-} ./cmd/ucat localhost "$port" < "$1" -wait - -echo 'other_ucat->utp' -# Send from the other implementation, to this one. -GO_UTP_LOGGING=0 godo ${GODOFLAGS-} ./cmd/ucat -l -p "$port" | rate | md5cmd & -# Never receive from h2so5's ucat without a small sleep first. Don't know why. -sleep 1 -other_ucat < "$1" -wait - -echo 'libutp->libutp' -libutp-ucat -l -p "$port" | rate | md5cmd & -libutp-ucat localhost "$port" < "$1" -wait - -echo 'utp->utp' -godo ./cmd/ucat -l -p "$port" | rate | md5cmd & -sleep 1 -godo ./cmd/ucat localhost "$port" < "$1" -wait - -# Now check the hashes match (yes you). diff --git a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/utp.go b/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/utp.go deleted file mode 100644 index afa67995..00000000 --- a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/utp.go +++ /dev/null @@ -1,1443 +0,0 @@ -// Package utp implements uTP, the micro transport protocol as used with -// Bittorrent. It opts for simplicity and reliability over strict adherence to -// the (poor) spec. It allows using the underlying OS-level transport despite -// dispatching uTP on top to allow for example, shared socket use with DHT. -// Additionally, multiple uTP connections can share the same OS socket, to -// truly realize uTP's claim to be light on system and network switching -// resources. -// -// Socket is a wrapper of net.UDPConn, and performs dispatching of uTP packets -// to attached uTP Conns. Dial and Accept is done via Socket. Conn implements -// net.Conn over uTP, via aforementioned Socket. -package utp - -import ( - "encoding/binary" - "errors" - "expvar" - "fmt" - "io" - "log" - "math" - "math/rand" - "net" - "os" - "strconv" - "sync" - "time" - - "gx/QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS/jitter" -) - -const ( - // Maximum received SYNs that haven't been accepted. If more SYNs are - // received, a pseudo randomly selected SYN is replied to with a reset to - // make room. - backlog = 50 - - // IPv6 min MTU is 1280, -40 for IPv6 header, and ~8 for fragment header? - minMTU = 1232 - recvWindow = 1 << 18 // 256KiB - // uTP header of 20, +2 for the next extension, and 8 bytes of selective - // ACK. - maxHeaderSize = 30 - maxPayloadSize = minMTU - maxHeaderSize - maxRecvSize = 0x2000 - - // Maximum out-of-order packets to buffer. - maxUnackedInbound = 256 - maxUnackedSends = 256 -) - -var ( - ackSkippedResends = expvar.NewInt("utpAckSkippedResends") - // Inbound packets processed by a Conn. - deliveriesProcessed = expvar.NewInt("utpDeliveriesProcessed") - sentStatePackets = expvar.NewInt("utpSentStatePackets") - unusedReads = expvar.NewInt("utpUnusedReads") - sendBufferPool = sync.Pool{ - New: func() interface{} { return make([]byte, minMTU) }, - } - // This is the latency we assume on new connections. It should be higher - // than the latency we expect on most connections to prevent excessive - // resending to peers that take a long time to respond, before we've got a - // better idea of their actual latency. - initialLatency = 400 * time.Millisecond - // If a write isn't acked within this period, destroy the connection. - writeTimeout = 15 * time.Second - packetReadTimeout = 2 * time.Minute -) - -type deadlineCallback struct { - deadline time.Time - timer *time.Timer - callback func() -} - -func (me *deadlineCallback) deadlineExceeded() bool { - return !me.deadline.IsZero() && !time.Now().Before(me.deadline) -} - -func (me *deadlineCallback) updateTimer() { - if me.timer != nil { - me.timer.Stop() - } - if me.deadline.IsZero() { - return - } - if me.callback == nil { - panic("deadline callback is nil") - } - me.timer = time.AfterFunc(me.deadline.Sub(time.Now()), me.callback) -} - -func (me *deadlineCallback) setDeadline(t time.Time) { - me.deadline = t - me.updateTimer() -} - -func (me *deadlineCallback) setCallback(f func()) { - me.callback = f - me.updateTimer() -} - -type connDeadlines struct { - // mu sync.Mutex - read, write deadlineCallback -} - -func (c *connDeadlines) SetDeadline(t time.Time) error { - c.read.setDeadline(t) - c.write.setDeadline(t) - return nil -} - -func (c *connDeadlines) SetReadDeadline(t time.Time) error { - c.read.setDeadline(t) - return nil -} - -func (c *connDeadlines) SetWriteDeadline(t time.Time) error { - c.write.setDeadline(t) - return nil -} - -// Strongly-type guarantee of resolved network address. -type resolvedAddrStr string - -// Uniquely identifies any uTP connection on top of the underlying packet -// stream. -type connKey struct { - remoteAddr resolvedAddrStr - connID uint16 -} - -// A Socket wraps a net.PacketConn, diverting uTP packets to its child uTP -// Conns. -type Socket struct { - mu sync.RWMutex - event sync.Cond - pc net.PacketConn - conns map[connKey]*Conn - backlog map[syn]struct{} - reads chan read - closing bool - - unusedReads chan read - connDeadlines - // If a read error occurs on the underlying net.PacketConn, it is put - // here. This is because reading is done in its own goroutine to dispatch - // to uTP Conns. - ReadErr error -} - -type read struct { - data []byte - from net.Addr -} - -type syn struct { - seq_nr, conn_id uint16 - addr string -} - -const ( - extensionTypeSelectiveAck = 1 -) - -type extensionField struct { - Type byte - Bytes []byte -} - -type header struct { - Type st - Version int - ConnID uint16 - Timestamp uint32 - TimestampDiff uint32 - WndSize uint32 - SeqNr uint16 - AckNr uint16 - Extensions []extensionField -} - -var ( - mu sync.RWMutex - logLevel = 0 - artificialPacketDropChance = 0.0 -) - -func init() { - logLevel, _ = strconv.Atoi(os.Getenv("GO_UTP_LOGGING")) - fmt.Sscanf(os.Getenv("GO_UTP_PACKET_DROP"), "%f", &artificialPacketDropChance) -} - -var ( - errClosed = errors.New("closed") - errNotImplemented = errors.New("not implemented") - errTimeout net.Error = timeoutError{"i/o timeout"} - errAckTimeout = timeoutError{"timed out waiting for ack"} -) - -type timeoutError struct { - msg string -} - -func (me timeoutError) Timeout() bool { return true } -func (me timeoutError) Error() string { return me.msg } -func (me timeoutError) Temporary() bool { return false } - -func unmarshalExtensions(_type byte, b []byte) (n int, ef []extensionField, err error) { - for _type != 0 { - if _type != extensionTypeSelectiveAck { - // An extension type that is not known to us. Generally we're - // unmarshalling an packet that isn't actually uTP but we don't - // yet know for sure until we try to deliver it. - - // logonce.Stderr.Printf("utp extension %d", _type) - } - if len(b) < 2 || len(b) < int(b[1])+2 { - err = fmt.Errorf("buffer ends prematurely: %x", b) - return - } - ef = append(ef, extensionField{ - Type: _type, - Bytes: append([]byte{}, b[2:int(b[1])+2]...), - }) - _type = b[0] - n += 2 + int(b[1]) - b = b[2+int(b[1]):] - } - return -} - -var errInvalidHeader = errors.New("invalid header") - -func (h *header) Unmarshal(b []byte) (n int, err error) { - h.Type = st(b[0] >> 4) - h.Version = int(b[0] & 0xf) - if h.Type > stMax || h.Version != 1 { - err = errInvalidHeader - return - } - n, h.Extensions, err = unmarshalExtensions(b[1], b[20:]) - if err != nil { - return - } - h.ConnID = binary.BigEndian.Uint16(b[2:4]) - h.Timestamp = binary.BigEndian.Uint32(b[4:8]) - h.TimestampDiff = binary.BigEndian.Uint32(b[8:12]) - h.WndSize = binary.BigEndian.Uint32(b[12:16]) - h.SeqNr = binary.BigEndian.Uint16(b[16:18]) - h.AckNr = binary.BigEndian.Uint16(b[18:20]) - n += 20 - return -} - -func (h *header) Marshal() (ret []byte) { - hLen := 20 + func() (ret int) { - for _, ext := range h.Extensions { - ret += 2 + len(ext.Bytes) - } - return - }() - ret = sendBufferPool.Get().([]byte)[:hLen:minMTU] - // ret = make([]byte, hLen, minMTU) - p := ret // Used for manipulating ret. - p[0] = byte(h.Type<<4 | 1) - binary.BigEndian.PutUint16(p[2:4], h.ConnID) - binary.BigEndian.PutUint32(p[4:8], h.Timestamp) - binary.BigEndian.PutUint32(p[8:12], h.TimestampDiff) - binary.BigEndian.PutUint32(p[12:16], h.WndSize) - binary.BigEndian.PutUint16(p[16:18], h.SeqNr) - binary.BigEndian.PutUint16(p[18:20], h.AckNr) - // Pointer to the last type field so the next extension can set it. - _type := &p[1] - // We're done with the basic header. - p = p[20:] - for _, ext := range h.Extensions { - *_type = ext.Type - // The next extension's type will go here. - _type = &p[0] - p[1] = uint8(len(ext.Bytes)) - if int(p[1]) != copy(p[2:], ext.Bytes) { - panic("unexpected extension length") - } - p = p[2+len(ext.Bytes):] - } - if len(p) != 0 { - panic("header length changed") - } - return -} - -var ( - _ net.Listener = &Socket{} - _ net.PacketConn = &Socket{} -) - -type st int - -func (me st) String() string { - switch me { - case stData: - return "stData" - case stFin: - return "stFin" - case stState: - return "stState" - case stReset: - return "stReset" - case stSyn: - return "stSyn" - default: - panic(fmt.Sprintf("%d", me)) - } -} - -const ( - stData st = 0 - stFin = 1 - stState = 2 - stReset = 3 - stSyn = 4 - - // Used for validating packet headers. - stMax = stSyn -) - -// Conn is a uTP stream and implements net.Conn. It owned by a Socket, which -// handles dispatching packets to and from Conns. -type Conn struct { - mu sync.Mutex - event sync.Cond - - recv_id, send_id uint16 - seq_nr, ack_nr uint16 - lastAck uint16 - lastTimeDiff uint32 - peerWndSize uint32 - cur_window uint32 - - // Data waiting to be Read. - readBuf []byte - - socket *Socket - remoteAddr net.Addr - // The uTP timestamp. - startTimestamp uint32 - // When the conn was allocated. - created time.Time - - sentSyn bool - synAcked bool - gotFin bool - wroteFin bool - finAcked bool - err error - closing bool - closed bool - - unackedSends []*send - // Inbound payloads, the first is ack_nr+1. - inbound []recv - inboundWnd uint32 - packetsIn chan packet - connDeadlines - latencies []time.Duration - pendingSendState bool -} - -type send struct { - acked bool // Closed with Conn lock. - payloadSize uint32 - started time.Time - // This send was skipped in a selective ack. - resend func() - timedOut func() - conn *Conn - - acksSkipped int - resendTimer *time.Timer - numResends int -} - -func (s *send) Ack() (latency time.Duration, first bool) { - s.resendTimer.Stop() - if s.acked { - return - } - s.acked = true - s.conn.event.Broadcast() - first = true - latency = time.Since(s.started) - return -} - -type recv struct { - seen bool - data []byte - Type st -} - -var ( - _ net.Conn = &Conn{} -) - -func (c *Conn) age() time.Duration { - return time.Since(c.created) -} - -func (c *Conn) timestamp() uint32 { - return nowTimestamp() - c.startTimestamp -} - -// Create a Socket, using the provided net.PacketConn. If you want to retain -// use of the net.PacketConn after the Socket closes it, override your -// net.PacketConn's Close method. -func NewSocketFromPacketConn(pc net.PacketConn) (s *Socket, err error) { - s = &Socket{ - backlog: make(map[syn]struct{}, backlog), - reads: make(chan read, 100), - pc: pc, - - unusedReads: make(chan read, 100), - } - s.event.L = &s.mu - go s.reader() - go s.dispatcher() - return -} - -// addr is used to create a listening UDP conn which becomes the underlying -// net.PacketConn for the Socket. -func NewSocket(network, addr string) (s *Socket, err error) { - pc, err := net.ListenPacket(network, addr) - if err != nil { - return - } - return NewSocketFromPacketConn(pc) -} - -func packetDebugString(h *header, payload []byte) string { - return fmt.Sprintf("%s->%d: %q", h.Type, h.ConnID, payload) -} - -func (s *Socket) reader() { - defer close(s.reads) - var b [maxRecvSize]byte - for { - if s.pc == nil { - break - } - n, addr, err := s.pc.ReadFrom(b[:]) - if err != nil { - s.mu.Lock() - if !s.closing { - s.ReadErr = err - } - s.mu.Unlock() - return - } - var nilB []byte - s.reads <- read{append(nilB, b[:n:n]...), addr} - } -} - -func (s *Socket) unusedRead(read read) { - unusedReads.Add(1) - select { - case s.unusedReads <- read: - default: - // Drop the packet. - } -} - -func stringAddr(s string) net.Addr { - addr, err := net.ResolveUDPAddr("udp", s) - if err != nil { - panic(err) - } - return addr -} - -func (s *Socket) pushBacklog(syn syn) { - if _, ok := s.backlog[syn]; ok { - return - } - for k := range s.backlog { - if len(s.backlog) < backlog { - break - } - delete(s.backlog, k) - // A syn is sent on the remote's recv_id, so this is where we can send - // the reset. - s.reset(stringAddr(k.addr), k.seq_nr, k.conn_id) - } - s.backlog[syn] = struct{}{} - s.event.Broadcast() -} - -func (s *Socket) dispatcher() { - for { - select { - case read, ok := <-s.reads: - if !ok { - return - } - if len(read.data) < 20 { - s.unusedRead(read) - continue - } - s.dispatch(read) - } - } -} - -func (s *Socket) dispatch(read read) { - b := read.data - addr := read.from - var h header - hEnd, err := h.Unmarshal(b) - if logLevel >= 1 { - log.Printf("recvd utp msg: %s", packetDebugString(&h, b[hEnd:])) - } - if err != nil || h.Type > stMax || h.Version != 1 { - s.unusedRead(read) - return - } - s.mu.Lock() - defer s.mu.Unlock() - c, ok := s.conns[connKey{resolvedAddrStr(addr.String()), func() (recvID uint16) { - recvID = h.ConnID - // If a SYN is resent, its connection ID field will be one lower - // than we expect. - if h.Type == stSyn { - recvID++ - } - return - }()}] - if ok { - if h.Type == stSyn { - if h.ConnID == c.send_id-2 { - // This is a SYN for connection that cannot exist locally. The - // connection the remote wants to establish here with the proposed - // recv_id, already has an existing connection that was dialled - // *out* from this socket, which is why the send_id is 1 higher, - // rather than 1 lower than the recv_id. - log.Print("resetting conflicting syn") - s.reset(addr, h.SeqNr, h.ConnID) - return - } else if h.ConnID != c.send_id { - panic("bad assumption") - } - } - c.deliver(h, b[hEnd:]) - return - } - if h.Type == stSyn { - if logLevel >= 1 { - log.Printf("adding SYN to backlog") - } - syn := syn{ - seq_nr: h.SeqNr, - conn_id: h.ConnID, - addr: addr.String(), - } - s.pushBacklog(syn) - return - } else if h.Type != stReset { - // This is an unexpected packet. We'll send a reset, but also pass - // it on. - // log.Print("resetting unexpected packet") - // I don't think you can reset on the received packets ConnID if it isn't a SYN, as the send_id will differ in this case. - s.reset(addr, h.SeqNr, h.ConnID) - s.reset(addr, h.SeqNr, h.ConnID-1) - s.reset(addr, h.SeqNr, h.ConnID+1) - } - s.unusedRead(read) -} - -// Send a reset in response to a packet with the given header. -func (s *Socket) reset(addr net.Addr, ackNr, connId uint16) { - go s.writeTo((&header{ - Type: stReset, - Version: 1, - ConnID: connId, - AckNr: ackNr, - }).Marshal(), addr) -} - -// Attempt to connect to a remote uTP listener, creating a Socket just for -// this connection. -func Dial(addr string) (net.Conn, error) { - return DialTimeout(addr, 0) -} - -// Same as Dial with a timeout parameter. -func DialTimeout(addr string, timeout time.Duration) (nc net.Conn, err error) { - s, err := NewSocket("udp", ":0") - if err != nil { - return - } - return s.DialTimeout(addr, timeout) - -} - -// Return a recv_id that should be free. Handling the case where it isn't is -// deferred to a more appropriate function. -func (s *Socket) newConnID(remoteAddr resolvedAddrStr) (id uint16) { - // Rather than use math.Rand, which requires generating all the IDs up - // front and allocating a slice, we do it on the stack, generating the IDs - // only as required. To do this, we use the fact that the array is - // default-initialized. IDs that are 0, are actually their index in the - // array. IDs that are non-zero, are +1 from their intended ID. - var idsBack [0x10000]int - ids := idsBack[:] - for len(ids) != 0 { - // Pick the next ID from the untried ids. - i := rand.Intn(len(ids)) - id = uint16(ids[i]) - // If it's zero, then treat it as though the index i was the ID. - // Otherwise the value we get is the ID+1. - if id == 0 { - id = uint16(i) - } else { - id-- - } - // Check there's no connection using this ID for its recv_id... - _, ok1 := s.conns[connKey{remoteAddr, id}] - // and if we're connecting to our own Socket, that there isn't a Conn - // already receiving on what will correspond to our send_id. Note that - // we just assume that we could be connecting to our own Socket. This - // will halve the available connection IDs to each distinct remote - // address. Presumably that's ~0x8000, down from ~0x10000. - _, ok2 := s.conns[connKey{remoteAddr, id + 1}] - _, ok4 := s.conns[connKey{remoteAddr, id - 1}] - if !ok1 && !ok2 && !ok4 { - return - } - // The set of possible IDs is shrinking. The highest one will be lost, so - // it's moved to the location of the one we just tried. - ids[i] = len(ids) // Conveniently already +1. - // And shrink. - ids = ids[:len(ids)-1] - } - return -} - -func (c *Conn) sendPendingState() { - if !c.pendingSendState { - return - } - if c.closed { - c.sendReset() - } else { - c.sendState() - } -} - -func (s *Socket) newConn(addr net.Addr) (c *Conn) { - c = &Conn{ - socket: s, - remoteAddr: addr, - created: time.Now(), - packetsIn: make(chan packet, 100), - } - c.event.L = &c.mu - c.mu.Lock() - c.connDeadlines.read.setCallback(func() { - c.mu.Lock() - c.event.Broadcast() - c.mu.Unlock() - }) - c.connDeadlines.write.setCallback(func() { - c.mu.Lock() - c.event.Broadcast() - c.mu.Unlock() - }) - c.mu.Unlock() - go c.deliveryProcessor() - return -} - -func (s *Socket) Dial(addr string) (net.Conn, error) { - return s.DialTimeout(addr, 0) -} - -func (s *Socket) DialTimeout(addr string, timeout time.Duration) (nc net.Conn, err error) { - netAddr, err := net.ResolveUDPAddr("udp", addr) - if err != nil { - return - } - - s.mu.Lock() - c := s.newConn(netAddr) - c.recv_id = s.newConnID(resolvedAddrStr(netAddr.String())) - c.send_id = c.recv_id + 1 - if logLevel >= 1 { - log.Printf("dial registering addr: %s", netAddr.String()) - } - if !s.registerConn(c.recv_id, resolvedAddrStr(netAddr.String()), c) { - err = errors.New("couldn't register new connection") - log.Println(c.recv_id, netAddr.String()) - for k, c := range s.conns { - log.Println(k, c, c.age()) - } - log.Printf("that's %d connections", len(s.conns)) - } - s.mu.Unlock() - if err != nil { - return - } - - connErr := make(chan error, 1) - go func() { - connErr <- c.connect() - }() - var timeoutCh <-chan time.Time - if timeout != 0 { - timeoutCh = time.After(timeout) - } - select { - case err = <-connErr: - case <-timeoutCh: - err = errTimeout - } - if err == nil { - nc = c - } else { - c.Close() - } - return -} - -func (c *Conn) wndSize() uint32 { - if len(c.inbound) > maxUnackedInbound/2 { - return 0 - } - buffered := uint32(len(c.readBuf)) + c.inboundWnd - if buffered > recvWindow { - return 0 - } - return recvWindow - buffered -} - -func nowTimestamp() uint32 { - return uint32(time.Now().UnixNano() / int64(time.Microsecond)) -} - -// Send the given payload with an up to date header. -func (c *Conn) send(_type st, connID uint16, payload []byte, seqNr uint16) (err error) { - // Always selectively ack the first 64 packets. Don't bother with rest for - // now. - selAck := selectiveAckBitmask(make([]byte, 8)) - for i := 1; i < 65; i++ { - if len(c.inbound) <= i { - break - } - if c.inbound[i].seen { - selAck.SetBit(i - 1) - } - } - h := header{ - Type: _type, - Version: 1, - ConnID: connID, - SeqNr: seqNr, - AckNr: c.ack_nr, - WndSize: c.wndSize(), - Timestamp: c.timestamp(), - TimestampDiff: c.lastTimeDiff, - // Currently always send an 8 byte selective ack. - Extensions: []extensionField{{ - Type: extensionTypeSelectiveAck, - Bytes: selAck, - }}, - } - p := h.Marshal() - // Extension headers are currently fixed in size. - if len(p) != maxHeaderSize { - panic("header has unexpected size") - } - p = append(p, payload...) - if logLevel >= 1 { - log.Printf("writing utp msg to %s: %s", c.remoteAddr, packetDebugString(&h, payload)) - } - n1, err := c.socket.writeTo(p, c.remoteAddr) - if err != nil { - return - } - if n1 != len(p) { - panic(n1) - } - c.unpendSendState() - return -} - -func (me *Conn) unpendSendState() { - me.pendingSendState = false -} - -func (c *Conn) pendSendState() { - c.pendingSendState = true -} - -func (me *Socket) writeTo(b []byte, addr net.Addr) (n int, err error) { - mu.RLock() - apdc := artificialPacketDropChance - mu.RUnlock() - if apdc != 0 { - if rand.Float64() < apdc { - n = len(b) - return - } - } - n, err = me.pc.WriteTo(b, addr) - return -} - -func (s *send) timeoutResend() { - if time.Since(s.started) >= writeTimeout { - s.timedOut() - return - } - s.conn.mu.Lock() - defer s.conn.mu.Unlock() - if s.acked || s.conn.closed { - return - } - rt := s.conn.resendTimeout() - go s.resend() - s.numResends++ - s.resendTimer.Reset(rt * time.Duration(s.numResends)) -} - -func (me *Conn) writeSyn() { - if me.sentSyn { - panic("already sent syn") - } - me.write(stSyn, me.recv_id, nil, me.seq_nr) - return -} - -func (c *Conn) write(_type st, connID uint16, payload []byte, seqNr uint16) (n int) { - switch _type { - case stSyn, stFin, stData: - default: - panic(_type) - } - if c.wroteFin { - panic("can't write after fin") - } - if len(payload) > maxPayloadSize { - payload = payload[:maxPayloadSize] - } - err := c.send(_type, connID, payload, seqNr) - if err != nil { - c.destroy(fmt.Errorf("error sending packet: %s", err)) - return - } - n = len(payload) - // Copy payload so caller to write can continue to use the buffer. - if payload != nil { - payload = append(sendBufferPool.Get().([]byte)[:0:minMTU], payload...) - } - send := &send{ - payloadSize: uint32(len(payload)), - started: time.Now(), - resend: func() { - c.mu.Lock() - err := c.send(_type, connID, payload, seqNr) - if err != nil { - log.Printf("error resending packet: %s", err) - } - c.mu.Unlock() - }, - timedOut: func() { - c.mu.Lock() - c.destroy(errAckTimeout) - c.mu.Unlock() - }, - conn: c, - } - send.resendTimer = time.AfterFunc(c.resendTimeout(), send.timeoutResend) - c.unackedSends = append(c.unackedSends, send) - c.cur_window += send.payloadSize - c.seq_nr++ - return -} - -func (c *Conn) latency() (ret time.Duration) { - if len(c.latencies) == 0 { - return initialLatency - } - for _, l := range c.latencies { - ret += l - } - ret = (ret + time.Duration(len(c.latencies)) - 1) / time.Duration(len(c.latencies)) - return -} - -func (c *Conn) numUnackedSends() (num int) { - for _, s := range c.unackedSends { - if !s.acked { - num++ - } - } - return -} - -func (c *Conn) sendState() { - c.send(stState, c.send_id, nil, c.seq_nr) - sentStatePackets.Add(1) -} - -func (c *Conn) sendReset() { - c.send(stReset, c.send_id, nil, c.seq_nr) -} - -func seqLess(a, b uint16) bool { - if b < 0x8000 { - return a < b || a >= b-0x8000 - } else { - return a < b && a >= b-0x8000 - } -} - -// Ack our send with the given sequence number. -func (c *Conn) ack(nr uint16) { - if !seqLess(c.lastAck, nr) { - // Already acked. - return - } - i := nr - c.lastAck - 1 - if int(i) >= len(c.unackedSends) { - log.Printf("got ack ahead of syn (%x > %x)", nr, c.seq_nr-1) - return - } - s := c.unackedSends[i] - latency, first := s.Ack() - if first { - c.cur_window -= s.payloadSize - c.latencies = append(c.latencies, latency) - if len(c.latencies) > 10 { - c.latencies = c.latencies[len(c.latencies)-10:] - } - } - for { - if len(c.unackedSends) == 0 { - break - } - if !c.unackedSends[0].acked { - // Can't trim unacked sends any further. - return - } - // Trim the front of the unacked sends. - c.unackedSends = c.unackedSends[1:] - c.lastAck++ - } - c.event.Broadcast() -} - -func (c *Conn) ackTo(nr uint16) { - if !seqLess(nr, c.seq_nr) { - return - } - for seqLess(c.lastAck, nr) { - c.ack(c.lastAck + 1) - } -} - -type selectiveAckBitmask []byte - -func (me selectiveAckBitmask) NumBits() int { - return len(me) * 8 -} - -func (me selectiveAckBitmask) SetBit(index int) { - me[index/8] |= 1 << uint(index%8) -} - -func (me selectiveAckBitmask) BitIsSet(index int) bool { - return me[index/8]>>uint(index%8)&1 == 1 -} - -// Return the send state for the sequence number. Returns nil if there's no -// outstanding send for that sequence number. -func (c *Conn) seqSend(seqNr uint16) *send { - if !seqLess(c.lastAck, seqNr) { - // Presumably already acked. - return nil - } - i := int(seqNr - c.lastAck - 1) - if i >= len(c.unackedSends) { - // No such send. - return nil - } - return c.unackedSends[i] -} - -func (c *Conn) resendTimeout() time.Duration { - l := c.latency() - ret := jitter.Duration(3*l, l) - return ret -} - -func (c *Conn) ackSkipped(seqNr uint16) { - send := c.seqSend(seqNr) - if send == nil { - return - } - send.acksSkipped++ - switch send.acksSkipped { - case 3, 60: - ackSkippedResends.Add(1) - go send.resend() - send.resendTimer.Reset(c.resendTimeout() * time.Duration(send.numResends)) - default: - } -} - -type packet struct { - h header - payload []byte -} - -func (c *Conn) deliver(h header, payload []byte) { - c.packetsIn <- packet{h, payload} -} - -func (c *Conn) deliveryProcessor() { - timeout := time.NewTimer(math.MaxInt64) - for { - timeout.Reset(packetReadTimeout) - select { - case p, ok := <-c.packetsIn: - if !ok { - return - } - c.processDelivery(p.h, p.payload) - timeout := time.After(500 * time.Microsecond) - batched: - for { - select { - case p, ok := <-c.packetsIn: - if !ok { - break batched - } - c.processDelivery(p.h, p.payload) - case <-timeout: - break batched - } - } - c.mu.Lock() - c.sendPendingState() - c.mu.Unlock() - case <-timeout.C: - c.mu.Lock() - c.destroy(errors.New("no packet read timeout")) - c.mu.Unlock() - } - } -} - -func (c *Conn) updateStates() { - if c.wroteFin && len(c.unackedSends) <= 1 && c.gotFin { - c.closed = true - c.event.Broadcast() - } -} - -func (c *Conn) processDelivery(h header, payload []byte) { - deliveriesProcessed.Add(1) - c.mu.Lock() - defer c.mu.Unlock() - defer c.updateStates() - defer c.event.Broadcast() - c.assertHeader(h) - c.peerWndSize = h.WndSize - c.applyAcks(h) - if h.Timestamp == 0 { - c.lastTimeDiff = 0 - } else { - c.lastTimeDiff = c.timestamp() - h.Timestamp - } - - if h.Type == stReset { - c.destroy(errors.New("peer reset")) - return - } - if !c.synAcked { - if h.Type != stState { - return - } - c.synAcked = true - c.ack_nr = h.SeqNr - 1 - return - } - if h.Type == stState { - return - } - c.pendSendState() - if !seqLess(c.ack_nr, h.SeqNr) { - // Already received this packet. - return - } - inboundIndex := int(h.SeqNr - c.ack_nr - 1) - if inboundIndex < len(c.inbound) && c.inbound[inboundIndex].seen { - // Already received this packet. - return - } - // Derived from running in production: - // grep -oP '(?<=packet out of order, index=)\d+' log | sort -n | uniq -c - // 64 should correspond to 8 bytes of selective ack. - if inboundIndex >= maxUnackedInbound { - // Discard packet too far ahead. - if logLevel >= 1 { - log.Printf("received packet from %s %d ahead of next seqnr (%x > %x)", c.remoteAddr, inboundIndex, h.SeqNr, c.ack_nr+1) - } - return - } - // Extend inbound so the new packet has a place. - for inboundIndex >= len(c.inbound) { - c.inbound = append(c.inbound, recv{}) - } - c.inbound[inboundIndex] = recv{true, payload, h.Type} - c.inboundWnd += uint32(len(payload)) - c.processInbound() -} - -func (c *Conn) applyAcks(h header) { - c.ackTo(h.AckNr) - for _, ext := range h.Extensions { - switch ext.Type { - case extensionTypeSelectiveAck: - c.ackSkipped(h.AckNr + 1) - bitmask := selectiveAckBitmask(ext.Bytes) - for i := 0; i < bitmask.NumBits(); i++ { - if bitmask.BitIsSet(i) { - nr := h.AckNr + 2 + uint16(i) - // log.Printf("selectively acked %d", nr) - c.ack(nr) - } else { - c.ackSkipped(h.AckNr + 2 + uint16(i)) - } - } - } - } -} - -func (c *Conn) assertHeader(h header) { - if h.Type == stSyn { - if h.ConnID != c.send_id { - panic(fmt.Sprintf("%d != %d", h.ConnID, c.send_id)) - } - } else { - if h.ConnID != c.recv_id { - panic("erroneous delivery") - } - } -} - -func (c *Conn) processInbound() { - // Consume consecutive next packets. - for !c.gotFin && len(c.inbound) > 0 && c.inbound[0].seen { - c.ack_nr++ - p := c.inbound[0] - c.inbound = c.inbound[1:] - c.inboundWnd -= uint32(len(p.data)) - c.readBuf = append(c.readBuf, p.data...) - if p.Type == stFin { - c.gotFin = true - } - } -} - -func (c *Conn) waitAck(seq uint16) { - send := c.seqSend(seq) - if send == nil { - return - } - for !send.acked && !c.closed { - c.event.Wait() - } - return -} - -func (c *Conn) connect() (err error) { - c.mu.Lock() - defer c.mu.Unlock() - c.seq_nr = 1 - c.writeSyn() - c.sentSyn = true - if logLevel >= 2 { - log.Printf("sent syn") - } - // c.seq_nr++ - c.waitAck(1) - if c.err != nil { - err = c.err - } - c.synAcked = true - c.event.Broadcast() - return err -} - -func (s *Socket) detacher(c *Conn, key connKey) { - c.mu.Lock() - for !c.closed { - c.event.Wait() - } - c.mu.Unlock() - s.mu.Lock() - defer s.mu.Unlock() - if s.conns[key] != c { - panic("conn changed") - } - delete(s.conns, key) - close(c.packetsIn) - s.event.Broadcast() - if s.closing { - s.teardown() - } -} - -// Returns true if the connection was newly registered, false otherwise. -func (s *Socket) registerConn(recvID uint16, remoteAddr resolvedAddrStr, c *Conn) bool { - if s.conns == nil { - s.conns = make(map[connKey]*Conn) - } - key := connKey{remoteAddr, recvID} - if _, ok := s.conns[key]; ok { - return false - } - s.conns[key] = c - go s.detacher(c, key) - return true -} - -func (s *Socket) nextSyn() (syn syn, ok bool) { - s.mu.Lock() - defer s.mu.Unlock() - for { - if s.closing { - return - } - for k := range s.backlog { - syn = k - delete(s.backlog, k) - ok = true - return - } - s.event.Wait() - } -} - -// Accept and return a new uTP connection. -func (s *Socket) Accept() (c net.Conn, err error) { - for { - syn, ok := s.nextSyn() - if !ok { - err = errClosed - return - } - s.mu.Lock() - _c := s.newConn(stringAddr(syn.addr)) - _c.send_id = syn.conn_id - _c.recv_id = _c.send_id + 1 - _c.seq_nr = uint16(rand.Int()) - _c.lastAck = _c.seq_nr - 1 - _c.ack_nr = syn.seq_nr - _c.sentSyn = true - _c.synAcked = true - if !s.registerConn(_c.recv_id, resolvedAddrStr(syn.addr), _c) { - // SYN that triggered this accept duplicates existing connection. - // Ack again in case the SYN was a resend. - _c = s.conns[connKey{resolvedAddrStr(syn.addr), _c.recv_id}] - if _c.send_id != syn.conn_id { - panic(":|") - } - _c.sendState() - s.mu.Unlock() - continue - } - _c.sendState() - // _c.seq_nr++ - c = _c - s.mu.Unlock() - return - } -} - -// The address we're listening on for new uTP connections. -func (s *Socket) Addr() net.Addr { - return s.pc.LocalAddr() -} - -func (s *Socket) Close() error { - s.mu.Lock() - defer s.mu.Unlock() - s.closing = true - s.event.Broadcast() - return s.teardown() -} - -func (s *Socket) teardown() (err error) { - if len(s.conns) == 0 { - s.event.Broadcast() - err = s.pc.Close() - } - return -} - -func (s *Socket) LocalAddr() net.Addr { - return s.pc.LocalAddr() -} - -func (s *Socket) ReadFrom(p []byte) (n int, addr net.Addr, err error) { - read, ok := <-s.unusedReads - if !ok { - err = io.EOF - } - n = copy(p, read.data) - addr = read.from - return -} - -func (s *Socket) WriteTo(b []byte, addr net.Addr) (int, error) { - return s.pc.WriteTo(b, addr) -} - -func (c *Conn) writeFin() { - if c.wroteFin { - return - } - c.write(stFin, c.send_id, nil, c.seq_nr) - c.wroteFin = true - c.event.Broadcast() - return -} - -func (c *Conn) destroy(reason error) { - if c.closed { - return - } - c.closed = true - c.event.Broadcast() - c.err = reason -} - -func (c *Conn) Close() (err error) { - c.mu.Lock() - defer c.mu.Unlock() - c.closing = true - c.event.Broadcast() - c.writeFin() - for { - if c.wroteFin && len(c.unackedSends) <= 1 { - // Sent FIN and it's the only thing unacked. - break - } - if c.closed { - err = c.err - break - } - c.event.Wait() - } - return -} - -func (c *Conn) LocalAddr() net.Addr { - return c.socket.Addr() -} - -func (c *Conn) Read(b []byte) (n int, err error) { - c.mu.Lock() - defer c.mu.Unlock() - for { - if len(c.readBuf) != 0 { - break - } - if c.gotFin { - err = io.EOF - return - } - if c.closed { - if c.err == nil { - panic("closed without receiving fin, and no error") - } - err = c.err - return - } - if c.connDeadlines.read.deadlineExceeded() { - err = errTimeout - return - } - c.event.Wait() - } - n = copy(b, c.readBuf) - c.readBuf = c.readBuf[n:] - - return -} - -func (c *Conn) RemoteAddr() net.Addr { - return c.remoteAddr -} - -func (c *Conn) String() string { - return fmt.Sprintf("", c.LocalAddr(), c.RemoteAddr(), c.recv_id) -} - -func (c *Conn) Write(p []byte) (n int, err error) { - c.mu.Lock() - defer c.mu.Unlock() - for len(p) != 0 { - for { - if c.wroteFin || c.gotFin { - err = io.ErrClosedPipe - return - } - if c.connDeadlines.write.deadlineExceeded() { - err = errTimeout - return - } - // If peerWndSize is 0, we still want to send something, so don't - // block until we exceed it. - if c.synAcked && - len(c.unackedSends) < maxUnackedSends && - c.cur_window <= c.peerWndSize { - break - } - c.event.Wait() - } - var n1 int - n1 = c.write(stData, c.send_id, p, c.seq_nr) - // c.seq_nr++ - n += n1 - p = p[n1:] - } - return -} diff --git a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/utp_test.go b/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/utp_test.go deleted file mode 100644 index 77a3f10f..00000000 --- a/vendor/gx/QmRTXGMiKMNuptgBt6vRhAsYEP8J982NN4cmNi23xwQ69m/go-utp/utp_test.go +++ /dev/null @@ -1,484 +0,0 @@ -package utp - -import ( - "fmt" - "io" - "io/ioutil" - "log" - "net" - "runtime" - "sync" - "testing" - "time" - - "github.com/anacrolix/missinggo" - "github.com/bradfitz/iter" - "github.com/stretchr/testify/require" - _ "gx/QmWsa476RGjb9scWzcRVts3QZsYjU5Kt6Y9qe8Q3vc5FHR/envpprof" -) - -func init() { - log.SetFlags(log.Flags() | log.Lshortfile) - writeTimeout = 1 * time.Second - initialLatency = 10 * time.Millisecond - packetReadTimeout = 2 * time.Second -} - -func TestUTPPingPong(t *testing.T) { - defer goroutineLeakCheck(t)() - s, err := NewSocket("udp", "localhost:0") - require.NoError(t, err) - defer s.Close() - pingerClosed := make(chan struct{}) - go func() { - defer close(pingerClosed) - b, err := Dial(s.Addr().String()) - require.NoError(t, err) - defer b.Close() - n, err := b.Write([]byte("ping")) - require.NoError(t, err) - require.EqualValues(t, 4, n) - buf := make([]byte, 4) - b.Read(buf) - require.EqualValues(t, "pong", buf) - log.Printf("got pong") - }() - a, err := s.Accept() - require.NoError(t, err) - defer a.Close() - log.Printf("accepted %s", a) - buf := make([]byte, 42) - n, err := a.Read(buf) - require.NoError(t, err) - require.EqualValues(t, "ping", buf[:n]) - log.Print("got ping") - n, err = a.Write([]byte("pong")) - require.NoError(t, err) - require.Equal(t, 4, n) - log.Print("waiting for pinger to close") - <-pingerClosed -} - -func goroutineLeakCheck(t testing.TB) func() { - if !testing.Verbose() { - return func() {} - } - numStart := runtime.NumGoroutine() - return func() { - var numNow int - for range iter.N(1) { - numNow = runtime.NumGoroutine() - if numNow == numStart { - return - } - time.Sleep(10 * time.Millisecond) - } - // I'd print stacks, or treat this as fatal, but I think - // runtime.NumGoroutine is including system routines for which we are - // not provided the stacks, and are spawned unpredictably. - t.Logf("have %d goroutines, started with %d", numNow, numStart) - } -} - -func TestDialTimeout(t *testing.T) { - defer goroutineLeakCheck(t)() - s, _ := NewSocket("udp", "localhost:0") - defer s.Close() - conn, err := DialTimeout(s.Addr().String(), 10*time.Millisecond) - if err == nil { - conn.Close() - t.Fatal("expected timeout") - } - t.Log(err) -} - -func TestMinMaxHeaderType(t *testing.T) { - require.Equal(t, stSyn, stMax) -} - -func TestUTPRawConn(t *testing.T) { - l, err := NewSocket("udp", "") - require.NoError(t, err) - defer l.Close() - go func() { - for { - _, err := l.Accept() - if err != nil { - break - } - } - }() - // Connect a UTP peer to see if the RawConn will still work. - log.Print("dialing") - utpPeer := func() net.Conn { - s, _ := NewSocket("udp", "") - defer s.Close() - ret, err := s.Dial(fmt.Sprintf("localhost:%d", missinggo.AddrPort(l.Addr()))) - require.NoError(t, err) - return ret - }() - log.Print("dial returned") - if err != nil { - t.Fatalf("error dialing utp listener: %s", err) - } - defer utpPeer.Close() - peer, err := net.ListenPacket("udp", ":0") - if err != nil { - t.Fatal(err) - } - defer peer.Close() - - msgsReceived := 0 - const N = 5000 // How many messages to send. - readerStopped := make(chan struct{}) - // The reader goroutine. - go func() { - defer close(readerStopped) - b := make([]byte, 500) - for i := 0; i < N; i++ { - n, _, err := l.ReadFrom(b) - if err != nil { - t.Fatalf("error reading from raw conn: %s", err) - } - msgsReceived++ - var d int - fmt.Sscan(string(b[:n]), &d) - if d != i { - log.Printf("got wrong number: expected %d, got %d", i, d) - } - } - }() - udpAddr, err := net.ResolveUDPAddr("udp", fmt.Sprintf("localhost:%d", missinggo.AddrPort(l.Addr()))) - if err != nil { - t.Fatal(err) - } - for i := 0; i < N; i++ { - _, err := peer.WriteTo([]byte(fmt.Sprintf("%d", i)), udpAddr) - if err != nil { - t.Fatal(err) - } - time.Sleep(10 * time.Microsecond) - } - select { - case <-readerStopped: - case <-time.After(time.Second): - t.Fatal("reader timed out") - } - if msgsReceived != N { - t.Fatalf("messages received: %d", msgsReceived) - } -} - -func TestConnReadDeadline(t *testing.T) { - t.Parallel() - ls, _ := NewSocket("udp", "localhost:0") - ds, _ := NewSocket("udp", "localhost:0") - dcReadErr := make(chan error) - go func() { - c, _ := ds.Dial(ls.Addr().String()) - defer c.Close() - _, err := c.Read(nil) - dcReadErr <- err - }() - c, _ := ls.Accept() - dl := time.Now().Add(time.Millisecond) - c.SetReadDeadline(dl) - _, err := c.Read(nil) - require.Equal(t, errTimeout, err) - // The deadline has passed. - if !time.Now().After(dl) { - t.FailNow() - } - // Returns timeout on subsequent read. - _, err = c.Read(nil) - require.Equal(t, errTimeout, err) - // Disable the deadline. - c.SetReadDeadline(time.Time{}) - readReturned := make(chan struct{}) - go func() { - c.Read(nil) - close(readReturned) - }() - select { - case <-readReturned: - // Read returned but shouldn't have. - t.FailNow() - case <-time.After(time.Millisecond): - } - c.Close() - if err := <-dcReadErr; err != io.EOF { - t.Fatalf("dial conn read returned %s", err) - } - select { - case <-readReturned: - case <-time.After(time.Millisecond): - t.Fatal("read should return after Conn is closed") - } -} - -func connectSelfLots(n int, t testing.TB) { - defer goroutineLeakCheck(t)() - s, err := NewSocket("udp", "localhost:0") - if err != nil { - t.Fatal(err) - } - go func() { - for range iter.N(n) { - c, err := s.Accept() - if err != nil { - log.Fatal(err) - } - defer c.Close() - } - }() - dialErr := make(chan error) - connCh := make(chan net.Conn) - dialSema := make(chan struct{}, backlog) - for range iter.N(n) { - go func() { - dialSema <- struct{}{} - c, err := s.Dial(s.Addr().String()) - <-dialSema - if err != nil { - dialErr <- err - return - } - connCh <- c - }() - } - conns := make([]net.Conn, 0, n) - for range iter.N(n) { - select { - case c := <-connCh: - conns = append(conns, c) - case err := <-dialErr: - t.Fatal(err) - } - } - for _, c := range conns { - if c != nil { - c.Close() - } - } - s.mu.Lock() - for len(s.conns) != 0 { - // log.Print(len(s.conns)) - s.event.Wait() - } - s.mu.Unlock() - s.Close() -} - -// Connect to ourself heaps. -func TestConnectSelf(t *testing.T) { - t.Parallel() - // A rough guess says that at worst, I can only have 0x10000/3 connections - // to the same socket, due to fragmentation in the assigned connection - // IDs. - connectSelfLots(0x1000, t) -} - -func BenchmarkConnectSelf(b *testing.B) { - for range iter.N(b.N) { - connectSelfLots(2, b) - } -} - -func BenchmarkNewCloseSocket(b *testing.B) { - for range iter.N(b.N) { - s, err := NewSocket("udp", "localhost:0") - if err != nil { - b.Fatal(err) - } - err = s.Close() - if err != nil { - b.Fatal(err) - } - } -} - -func TestRejectDialBacklogFilled(t *testing.T) { - s, err := NewSocket("udp", "localhost:0") - if err != nil { - t.Fatal(err) - } - errChan := make(chan error, 1) - dial := func() { - _, err := s.Dial(s.Addr().String()) - if err != nil { - errChan <- err - } - } - // Fill the backlog. - for range iter.N(backlog + 1) { - go dial() - } - s.mu.Lock() - for len(s.backlog) < backlog { - s.event.Wait() - } - s.mu.Unlock() - select { - case <-errChan: - t.FailNow() - default: - } - // One more connection should cause a dial attempt to get reset. - go dial() - err = <-errChan - if err.Error() != "peer reset" { - t.FailNow() - } - s.Close() -} - -// Make sure that we can reset AfterFunc timers, so we don't have to create -// brand new ones everytime they fire. Specifically for the Conn resend timer. -func TestResetAfterFuncTimer(t *testing.T) { - t.Parallel() - fired := make(chan struct{}) - timer := time.AfterFunc(time.Millisecond, func() { - fired <- struct{}{} - }) - <-fired - if timer.Reset(time.Millisecond) { - // The timer should have expired - t.FailNow() - } - <-fired -} - -func connPair() (initer, accepted net.Conn) { - s, err := NewSocket("udp", "localhost:0") - if err != nil { - panic(err) - } - defer s.Close() - var wg sync.WaitGroup - wg.Add(1) - go func() { - defer wg.Done() - var err error - initer, err = Dial(s.Addr().String()) - if err != nil { - panic(err) - } - }() - accepted, err = s.Accept() - if err != nil { - panic(err) - } - wg.Wait() - return -} - -// Check that peer sending FIN doesn't cause unread data to be dropped in a -// receiver. -func TestReadFinishedConn(t *testing.T) { - a, b := connPair() - defer a.Close() - defer b.Close() - mu.Lock() - originalAPDC := artificialPacketDropChance - artificialPacketDropChance = 1 - mu.Unlock() - n, err := a.Write([]byte("hello")) - require.Equal(t, 5, n) - require.NoError(t, err) - n, err = a.Write([]byte("world")) - require.Equal(t, 5, n) - require.NoError(t, err) - mu.Lock() - artificialPacketDropChance = originalAPDC - mu.Unlock() - a.Close() - all, err := ioutil.ReadAll(b) - require.NoError(t, err) - require.EqualValues(t, "helloworld", all) -} - -func TestCloseDetachesQuickly(t *testing.T) { - t.Parallel() - s, _ := NewSocket("udp", "localhost:0") - defer s.Close() - go func() { - a, _ := s.Dial(s.Addr().String()) - log.Print("close a") - a.Close() - log.Print("closed a") - }() - b, _ := s.Accept() - b.Close() - s.mu.Lock() - for len(s.conns) != 0 { - log.Print(len(s.conns)) - s.event.Wait() - } - s.mu.Unlock() -} - -// Check that closing, and resulting detach of a Conn doesn't close the parent -// Socket. We Accept, then close the connection and ensure it's detached. Then -// Accept again to check the Socket is still functional and unclosed. -func TestConnCloseUnclosedSocket(t *testing.T) { - t.Parallel() - s, err := NewSocket("udp", "localhost:0") - require.NoError(t, err) - defer func() { - require.NoError(t, s.Close()) - }() - // Prevents the dialing goroutine from closing its end of the Conn before - // we can check that it has been registered in the listener. - dialerSync := make(chan struct{}) - - go func() { - for range iter.N(2) { - c, err := Dial(s.Addr().String()) - require.NoError(t, err) - <-dialerSync - err = c.Close() - require.NoError(t, err) - } - }() - for range iter.N(2) { - a, err := s.Accept() - require.NoError(t, err) - // We do this in a closure because we need to unlock Server.mu if the - // test failure exception is thrown. "Do as we say, not as we do" -Go - // team. - func() { - s.mu.Lock() - defer s.mu.Unlock() - require.Len(t, s.conns, 1) - }() - dialerSync <- struct{}{} - require.NoError(t, a.Close()) - func() { - s.mu.Lock() - defer s.mu.Unlock() - for len(s.conns) != 0 { - s.event.Wait() - } - }() - } -} - -func TestAcceptGone(t *testing.T) { - s, _ := NewSocket("udp", "localhost:0") - _, err := DialTimeout(s.Addr().String(), time.Millisecond) - require.Error(t, err) - c, _ := s.Accept() - c.SetReadDeadline(time.Now().Add(time.Millisecond)) - c.Read(nil) - // select {} -} - -func TestPacketReadTimeout(t *testing.T) { - t.Parallel() - a, b := connPair() - _, err := a.Read(nil) - require.Contains(t, err.Error(), "timeout") - t.Log(err) - t.Log(a.Close()) - t.Log(b.Close()) -} diff --git a/vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/.gxignore b/vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/notifier.go b/vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/notifier.go deleted file mode 100644 index 501a705b..00000000 --- a/vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/notifier.go +++ /dev/null @@ -1,146 +0,0 @@ -// Package notifier provides a simple notification dispatcher -// meant to be embedded in larger structres who wish to allow -// clients to sign up for event notifications. -package notifier - -import ( - "sync" - - process "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" - ratelimit "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/ratelimit" -) - -// Notifiee is a generic interface. Clients implement -// their own Notifiee interfaces to ensure type-safety -// of notifications: -// -// type RocketNotifiee interface{ -// Countdown(r Rocket, countdown time.Duration) -// LiftedOff(Rocket) -// ReachedOrbit(Rocket) -// Detached(Rocket, Capsule) -// Landed(Rocket) -// } -// -type Notifiee interface{} - -// Notifier is a notification dispatcher. It's meant -// to be composed, and its zero-value is ready to be used. -// -// type Rocket struct { -// notifier notifier.Notifier -// } -// -type Notifier struct { - mu sync.RWMutex // guards notifiees - nots map[Notifiee]struct{} - lim *ratelimit.RateLimiter -} - -// RateLimited returns a rate limited Notifier. only limit goroutines -// will be spawned. If limit is zero, no rate limiting happens. This -// is the same as `Notifier{}`. -func RateLimited(limit int) Notifier { - n := Notifier{} - if limit > 0 { - n.lim = ratelimit.NewRateLimiter(process.Background(), limit) - } - return n -} - -// Notify signs up Notifiee e for notifications. This function -// is meant to be called behind your own type-safe function(s): -// -// // generic function for pattern-following -// func (r *Rocket) Notify(n Notifiee) { -// r.notifier.Notify(n) -// } -// -// // or as part of other functions -// func (r *Rocket) Onboard(a Astronaut) { -// r.astronauts = append(r.austronauts, a) -// r.notifier.Notify(a) -// } -// -func (n *Notifier) Notify(e Notifiee) { - n.mu.Lock() - if n.nots == nil { // so that zero-value is ready to be used. - n.nots = make(map[Notifiee]struct{}) - } - n.nots[e] = struct{}{} - n.mu.Unlock() -} - -// StopNotify stops notifying Notifiee e. This function -// is meant to be called behind your own type-safe function(s): -// -// // generic function for pattern-following -// func (r *Rocket) StopNotify(n Notifiee) { -// r.notifier.StopNotify(n) -// } -// -// // or as part of other functions -// func (r *Rocket) Detach(c Capsule) { -// r.notifier.StopNotify(c) -// r.capsule = nil -// } -// -func (n *Notifier) StopNotify(e Notifiee) { - n.mu.Lock() - if n.nots != nil { // so that zero-value is ready to be used. - delete(n.nots, e) - } - n.mu.Unlock() -} - -// NotifyAll messages the notifier's notifiees with a given notification. -// This is done by calling the given function with each notifiee. It is -// meant to be called with your own type-safe notification functions: -// -// func (r *Rocket) Launch() { -// r.notifyAll(func(n Notifiee) { -// n.Launched(r) -// }) -// } -// -// // make it private so only you can use it. This function is necessary -// // to make sure you only up-cast in one place. You control who you added -// // to be a notifiee. If Go adds generics, maybe we can get rid of this -// // method but for now it is like wrapping a type-less container with -// // a type safe interface. -// func (r *Rocket) notifyAll(notify func(Notifiee)) { -// r.notifier.NotifyAll(func(n notifier.Notifiee) { -// notify(n.(Notifiee)) -// }) -// } -// -// Note well: each notification is launched in its own goroutine, so they -// can be processed concurrently, and so that whatever the notification does -// it _never_ blocks out the client. This is so that consumers _cannot_ add -// hooks into your object that block you accidentally. -func (n *Notifier) NotifyAll(notify func(Notifiee)) { - n.mu.Lock() - defer n.mu.Unlock() - - if n.nots == nil { // so that zero-value is ready to be used. - return - } - - // no rate limiting. - if n.lim == nil { - for notifiee := range n.nots { - go notify(notifiee) - } - return - } - - // with rate limiting. - n.lim.Go(func(worker process.Process) { - for notifiee := range n.nots { - notifiee := notifiee // rebind for loop data races - n.lim.LimitedGo(func(worker process.Process) { - notify(notifiee) - }) - } - }) -} diff --git a/vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/notifier_test.go b/vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/notifier_test.go deleted file mode 100644 index 9b9692ef..00000000 --- a/vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/notifier_test.go +++ /dev/null @@ -1,291 +0,0 @@ -package notifier - -import ( - "fmt" - "sync" - "testing" - "time" -) - -// test data structures -type Router struct { - queue chan Packet - notifier Notifier -} - -type Packet struct{} - -type RouterNotifiee interface { - Enqueued(*Router, Packet) - Forwarded(*Router, Packet) - Dropped(*Router, Packet) -} - -func (r *Router) Notify(n RouterNotifiee) { - r.notifier.Notify(n) -} - -func (r *Router) StopNotify(n RouterNotifiee) { - r.notifier.StopNotify(n) -} - -func (r *Router) notifyAll(notify func(n RouterNotifiee)) { - r.notifier.NotifyAll(func(n Notifiee) { - notify(n.(RouterNotifiee)) - }) -} - -func (r *Router) Receive(p Packet) { - - select { - case r.queue <- p: // enqueued - r.notifyAll(func(n RouterNotifiee) { - n.Enqueued(r, p) - }) - - default: // drop - r.notifyAll(func(n RouterNotifiee) { - n.Dropped(r, p) - }) - } -} - -func (r *Router) Forward() { - p := <-r.queue - r.notifyAll(func(n RouterNotifiee) { - n.Forwarded(r, p) - }) -} - -type Metrics struct { - enqueued int - forwarded int - dropped int - received chan struct{} - sync.Mutex -} - -func (m *Metrics) Enqueued(*Router, Packet) { - m.Lock() - m.enqueued++ - m.Unlock() - if m.received != nil { - m.received <- struct{}{} - } -} - -func (m *Metrics) Forwarded(*Router, Packet) { - m.Lock() - m.forwarded++ - m.Unlock() - if m.received != nil { - m.received <- struct{}{} - } -} - -func (m *Metrics) Dropped(*Router, Packet) { - m.Lock() - m.dropped++ - m.Unlock() - if m.received != nil { - m.received <- struct{}{} - } -} - -func (m *Metrics) String() string { - m.Lock() - defer m.Unlock() - return fmt.Sprintf("%d enqueued, %d forwarded, %d in queue, %d dropped", - m.enqueued, m.forwarded, m.enqueued-m.forwarded, m.dropped) -} - -func TestNotifies(t *testing.T) { - - m := Metrics{received: make(chan struct{})} - r := Router{queue: make(chan Packet, 10)} - r.Notify(&m) - - for i := 0; i < 10; i++ { - r.Receive(Packet{}) - <-m.received - if m.enqueued != (1 + i) { - t.Error("not notifying correctly", m.enqueued, 1+i) - } - - } - - for i := 0; i < 10; i++ { - r.Receive(Packet{}) - <-m.received - if m.enqueued != 10 { - t.Error("not notifying correctly", m.enqueued, 10) - } - if m.dropped != (1 + i) { - t.Error("not notifying correctly", m.dropped, 1+i) - } - } -} - -func TestStopsNotifying(t *testing.T) { - m := Metrics{received: make(chan struct{})} - r := Router{queue: make(chan Packet, 10)} - r.Notify(&m) - - for i := 0; i < 5; i++ { - r.Receive(Packet{}) - <-m.received - if m.enqueued != (1 + i) { - t.Error("not notifying correctly") - } - } - - r.StopNotify(&m) - - for i := 0; i < 5; i++ { - r.Receive(Packet{}) - select { - case <-m.received: - t.Error("did not stop notifying") - default: - } - if m.enqueued != 5 { - t.Error("did not stop notifying") - } - } -} - -func TestThreadsafe(t *testing.T) { - N := 1000 - r := Router{queue: make(chan Packet, 10)} - m1 := Metrics{received: make(chan struct{})} - m2 := Metrics{received: make(chan struct{})} - m3 := Metrics{received: make(chan struct{})} - r.Notify(&m1) - r.Notify(&m2) - r.Notify(&m3) - - var n int - var wg sync.WaitGroup - for i := 0; i < N; i++ { - n++ - wg.Add(1) - go func() { - defer wg.Done() - r.Receive(Packet{}) - }() - - if i%3 == 0 { - n++ - wg.Add(1) - go func() { - defer wg.Done() - r.Forward() - }() - } - } - - // drain queues - for i := 0; i < (n * 3); i++ { - select { - case <-m1.received: - case <-m2.received: - case <-m3.received: - } - } - - wg.Wait() - - // counts should be correct and all agree. and this should - // run fine under `go test -race -cpu=5` - - t.Log("m1", m1.String()) - t.Log("m2", m2.String()) - t.Log("m3", m3.String()) - - if m1.String() != m2.String() || m2.String() != m3.String() { - t.Error("counts disagree") - } -} - -type highwatermark struct { - mu sync.Mutex - mark int - limit int - errs chan error -} - -func (m *highwatermark) incr() { - m.mu.Lock() - m.mark++ - // fmt.Println("incr", m.mark) - if m.mark > m.limit { - m.errs <- fmt.Errorf("went over limit: %d/%d", m.mark, m.limit) - } - m.mu.Unlock() -} - -func (m *highwatermark) decr() { - m.mu.Lock() - m.mark-- - // fmt.Println("decr", m.mark) - if m.mark < 0 { - m.errs <- fmt.Errorf("went under zero: %d/%d", m.mark, m.limit) - } - m.mu.Unlock() -} - -func TestLimited(t *testing.T) { - timeout := 10 * time.Second // huge timeout. - limit := 9 - - hwm := highwatermark{limit: limit, errs: make(chan error, 100)} - n := RateLimited(limit) // will stop after 3 rounds - n.Notify(1) - n.Notify(2) - n.Notify(3) - - entr := make(chan struct{}) - exit := make(chan struct{}) - done := make(chan struct{}) - go func() { - for i := 0; i < 10; i++ { - // fmt.Printf("round: %d\n", i) - n.NotifyAll(func(e Notifiee) { - hwm.incr() - entr <- struct{}{} - <-exit // wait - hwm.decr() - }) - } - done <- struct{}{} - }() - - for i := 0; i < 30; { - select { - case <-entr: - continue // let as many enter as possible - case <-time.After(1 * time.Millisecond): - } - - // let one exit - select { - case <-entr: - continue // in case of timing issues. - case exit <- struct{}{}: - case <-time.After(timeout): - t.Error("got stuck") - } - i++ - } - - select { - case <-done: // two parts done - case <-time.After(timeout): - t.Error("did not finish") - } - - close(hwm.errs) - for err := range hwm.errs { - t.Error(err) - } -} diff --git a/vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/package.json b/vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/package.json deleted file mode 100644 index c27d163d..00000000 --- a/vendor/gx/QmRV5aE4LZ4Kw9g2VAMpbEcaT7uz3Z3WxgdW8mzRPLL7g8/go-notifier/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "go-notifier", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "goprocess", - "hash": "QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b", - "version": "0.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/whyrusleeping/go-notifier" - } -} \ No newline at end of file diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/.gxignore b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/.travis.yml b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/.travis.yml deleted file mode 100644 index 415030aa..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: go - -go: - - 1.3 - - 1.4 - - release - - tip - -script: - - go test ./... - # - go test -race -cpu=5 ./... diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/LICENSE b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/LICENSE deleted file mode 100644 index c7386b3c..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Juan Batiz-Benet - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/Makefile b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/Makefile deleted file mode 100644 index f15fcaa6..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/Makefile +++ /dev/null @@ -1,15 +0,0 @@ - -godep: - go get github.com/tools/godep - -vendor: godep - godep save -r ./... - -build: - go build ./... - -test: - go test ./... - -test_race: - go test -race -cpu 5 ./... diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/README.md b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/README.md deleted file mode 100644 index a0a08869..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/README.md +++ /dev/null @@ -1,98 +0,0 @@ -# go-stream-muxer - generalized stream multiplexing - - -go-stream-muxer is a common interface for stream muxers, with common tests. It wraps other stream muxers (like [muxado](https://github.com/inconshreveable/muxado), [spdystream](https://github.com/docker/spdystream) and [yamux](https://github.com/hashicorp/yamux)). - -[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) [![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) - -> A test suite and interface you can use to implement a stream muxer. - -### Godoc: https://godoc.org/github.com/jbenet/go-stream-muxer - -## Implementations - -* [yamux](yamux) -* [muxado](muxado) -* [multiplex](multiplex) -* [spdystream](spdystream) - -## Badge - -Include this badge in your readme if you make a new module that uses abstract-stream-muxer API. - -![](img/badge.png) - -## Client example - -```go -import ( - "net" - "fmt" - "io" - ymux "github.com/jbenet/go-stream-muxer/yamux" - smux "github.com/jbenet/go-stream-muxer" -) - -func dial() { - nconn, _ := net.Dial("tcp", "localhost:1234") - sconn, _ := ymux.DefaultTransport.NewConn(nconn, false) // false == client - - go sconn.Serve(func(smux.Stream) {}) // no-op - - s1, _ := sconn.OpenStream() - s1.Write([]byte("hello")) - - s2, _ := sconn.OpenStream() - s2.Write([]byte("world")) - - length := 20 - buf2 := make([]byte, length) - fmt.Printf("reading %d bytes from stream (echoed)\n", length) - - s1.Read(buf2) - - fmt.Printf("received %s as a response\n", string(buf2)) - - s3, _ := sconn.OpenStream() - io.Copy(s3, os.Stdin) -} -``` - -## Server example - -```go -import ( - "net" - "fmt" - "io" - ymux "github.com/jbenet/go-stream-muxer/yamux" - smux "github.com/jbenet/go-stream-muxer" -) - -func listen() { - tr := ymux.DefaultTransport - l, _ := net.Listen("tcp", "localhost:1234") - - go func() { - for { - c, _ := l.Accept() - - fmt.Println("accepted connection") - sc, _ := tr.NewConn(c, true) - - go sc.Serve(func(s smux.Stream) { - fmt.Println("serving connection") - echoStream(s) - }) - } - }() -} - -func echoStream(s smux.Stream) { - defer s.Close() - - fmt.Println("accepted stream") - io.Copy(s, s) // echo everything - fmt.Println("closing stream") -} -``` diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/img/badge.png b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/img/badge.png deleted file mode 100644 index 738bcf4a2f5d9383b844ebc9d0f2ce6d2aa1f642..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7694 zcmV+p9`WIcP)Py7$Vo&&RCodHT@O@L*O~vJpn!scf(A^$K#V3jB)AsZZd5SoO4H-etl8{Q=+B1K z_TAg_;W`4ojt#e3y#m*9JiOPp&j|SV=%fJfO4{4!y?9&V;Rtv^>)}9ov)w);;05jN z^DewC@o)sZp!IN|yxDG_5pYt(`fb)Oxgj6(&xch)z={CWKDFz4zYRZ&P9C z>;32PrVQ&5&|k5FWxv*gzYu7)zz8^44{l#Otq$0cBSs=9C`bX84UdeB#Q5>!5i~Xk!9l^W zT(`h%Hs1lS#oGl>N5C_B;Aw5QC?5e^Syc(&k-nH1HW58NJ+N3T@b&dYkEI6z0Rigp z8|5c#zz58K{rYu`9656E7Ff*a=x9ghRUj}l6k$RBgO~Bw!~ z4J#&0n1IovMk^^xN^t4YC6MEi4*2@{D!^J{#Yo?g0>lov8i>cVp=f;ueEb3s8Xk%0 z=tzVI2OutW9rialN@^3DYHLwj-v-NV^{NJGjJX!8WhUZm#3TQh$+dv_7&3bEq@&7B z7S}?zU(9Ui9z|YrD(E&;gN>`>+>XI5TPEiH{ z>y;~4(B9sT3+FFj#E5>nV>*F%Y;SAr&Kg*cmf_v9qv)(Fg;5PhG5%wFwYm!Mvnh2` zgAw2~RJZw!9}wiw#Oje||MQ-j?!&^u)YMP@ zN^p`c=zt9h4pKm-lqH9y0!B$Z`L4+b2?;@6U0pv7mp7_{0r7KUd-DXvJc<=-lhl3O z#6Z-StjFT#U(wQwm*Ly#t5I~UL&c}3r(=E5e(cU)t=g5EUnTi0I99R|smXCF&L=Jz z*<1EI$*{Jn60A;7MO>UVZO0|2V`E7bbUg8ytUEiu2-}3d#Hr~!4jCJFqphPB8#9s- zmn`KaK0SLIT0G_~n^AJKqqnaxS7YY}?T2ZP4McrLVcZ1R1I6SeL&a zr*^MLs-$Pgc$D=vpauD>87JeiyUAANAmbqvX1$EXx^0J0e`p(0)tKBoP2s#MSm-C* zka&mVvgxw*;K75|0|yRRFI~Lkl;)Vvlk3jTPV2U9+pKSIe_Pe}@y8!qKmFuWYhz=h z_2kKu*5k*ITN@i1trss|v|hPekw6&+AyuxT(^)(fVCirM-^^TUlv`-o@5ES=zG=2CG(|(OTKb!kyMlNm~BA z%67drY5OKEe^Q>c-P&l)((9Ca7OTkB$I58k*Qz~bu<@{VR$66d>m38FpGIpn2Wybv zFeXEHnECkV$9R72^Z5DCe~w@L;upxt$w5P7gVZ_nK;^2WxI}6Hl(3`(>Do35I9j5bQzEDB0I|(~$+NGWzl-i`f6vUp! zE-5E*S=x+HyyGw&q3$uo3z!?%f zIR5A3$j!|~TWcGFgM-!a`Pt9$v!DJ9OdCqLa`g&+`@7$Q%2#-JxKg@k1z=zt0XcTe zSPig@m*3}&8#mC_)`qKBuBwFv0=%QW1Lw}3Lv?jE{Qdjyeaxbl(bX(dc9{lT|3Dk34IT}DF$fAvu?IsIO7k-i9}|U3mH(~9CoROR37t50>=@bu z?nkPK5{A<9lZgM9Vzf3lqVA<{p{uDDhssLu+g%k}hCY7{YyTaKr-w+aFAQ@vfWo){ z--u$Ld@(=uDXoM6%&|#*s*&4j1mB;8zmus2D8#PA0&&X;6e>=?9I5l}cP-*UjBmt3 z5ir^hzq(ihtTC?w&nB?VK+StQwOR%k4=scCcWd42Se!5&5n=j|)-iS9YmY%obJK5r z{TrnSg-!_7KqjD}Vnoe;{rdIz;DZkaewrFO=(Q)LHD(8{Q1P6708p4Y%jY{E6g1&sIRXVP|d*NjOXyy zyGPN}*^25tTSb;>A@ijoX9?EXrxLj}KK(c%^yqHeMfn;SqGMq&7!Vt6z)A{V2@U2R zn43SwD?eN$@sWs(o`J*#My%Pay>Km;{qNMM@x3>pk>Tpvm~4RlGwjh*-Ly+j($C#~ zlknJ54PcqS-;er(?}N=Uta=Kw1Y^34*YmqO`@vzA(Uu`<(bK)-#i+E!oP}(`gYnR_ z0?QGvevI~*p_0QJ`h zDphY4z6DBXMG0hqfPm%HPddOw1g>~dvEt$a!wu^VoIQIM9Tz*G78FMKs5mNV!hbPB z7WU@OovYg5?ztykPeE*KEF$N>)~h7>28Cf(@)8tOZ_+4*>?8GJ&3MTV|R1 zYZ~iNQ&XcIBJnFLDzPK&9=yGBE^>;iVK9n>uB=95YbTm@`q8(c`b(GiUV!$^J7Bk3dV4Qr*cq+OEiE{I{=5PuSHNhGC15}K zT6n>VGgD`&QzV<11>I1O-RZy1lqm(_9_RJP+9h*Qlt)XR3UJwD3Km8Py$nWHn%h*_b0hZS*xh1 zP>R#3hEv#_zZp%9O`3!i=NBJJOrZpnu!2oYoG=lgA)&qYSpt>-r<5h%B_*ID#{9Li zYDLhK5>SB~C`2rL2BQ6{kSTmNz$Xr=sbWU*i^Q_cni**Mnr}g7PJ56S5-KLF{QVl& zwI^s-Aqk6-tLog0#Lzgb&dx@9axj*v`qJ>|*B(Z^jjgOOBp_qmI!O z%OPD(^{sv2d$(3E!Kqz>GKVkbrRDZkl$84fV%$o%Ak0bD8k%E_M*6yJWF&`TnS)5R zh^Z>muuRouSX+u0GM>fHcCJ$Q#VclGizuCgj>kh`y>0oT7aoDOtgK7{jgBko5UEPZ zN{L8c0D_h)RRkbCuLy1en930;!;3Gzhz+l7!09umm4xLY0jG2&F{%BF&6Pg@a%BZh z0W(2-`m@tGbNY)ANvJ8=AtLOl&SU%4}(4`;kHTX!G;fpbD-+Vdg@0 z6|*=K1*-4Bvb0|bO&DxE>`(rpSAq@|1R{bHnV#K+AN=44Sg>G$;;+oZgCL@of28t= z0uw0$l_qNRx>O{{R9=ygbSos_Nht#S15{n)s;q}jF*6^WsnV2!CH1#_-lE(PX%S$4 zE+TNb_SC6Uitna;JHFM!9Ab)rvvS8sRuSFbdEEZq+akxu$ zE?_owpxtCafb=iK#R10xllVnQGJ-wX39^ql(_|A8}qvG^l zIGua@<`nC_8RjD}WYAI(qJ5Tpl{*JW2R=LfnR3QffR(A9PAmjyuf(O)wH*YV0q6%i4ES%z7dF=GbCj~kDZbtkc7#}0%|48xeQW0b{#lzjygMnc5v0$P1h+!?~A=p9eOgCUg@+#kdl`&PitE%{`ki~D)SZh zcF{^e3j(KqO5AsLyrY@R#P+I!&=6&}y?h0A^>vszb0*T34gs)wW4z}(dIW9?wC+ZP z(>V{?XBj^F=p!6Hd{{ZX&~8h+F1N{00+Rw9K5`h%&CP0~BI5{FE*#KNMqCnMh%;c> z_m}l=C2-dWZ`@a61a28<_0bX^SG5Cy762|5Z~;OAmV3QKu_9ne9}fTNu%^6;MS-?l zN@sFjS}I5(mjBc8F9)!u799HUe{ty3Q_|#cOiOqK^Alov9aHpveAUiPRfk}iIvX(| z&XDM+ufnI8ii8-a^}>FKXQ=u6t!RJ*k5=+)Us{B48B{XhO|$-m9j*~a4v zJjm$$v+|&TyDanrpanqx0t_8zNE5h<#Xw+kp@60{x)#!zhIUzcaxsp8W#B@^!w)~K z79do_E&S6`mW|kyOyupU!?VdTy){4gqt#d!Fas+K7vbISYfHJkiFeS&QE`9?O384$ z`Ul@w6o{8v=ycr?Qtx;hj>!6LUX6o?mY(GH+<}AQXOmSi&28$fiu^*7mJ;)wo$si1 zd@5qPbfv2z&0L)J$yaF&p!UaQUs@eV59r`csY}}}Ed>NF^ONV^@*t9A&4Ns1j28-l!rVnzz3o_^96-zd*RWylRR?bbTNcwP?3T+*@BL?Qo02m&qTcSA<6M`y zLGl~$&1r6^gm~0#%TBkAgAbBdZ-LX!edn46yt^sTazi1vdcX0;8_KCAOxDo3#7hq? z+H46%N>ILNQUKBeI=Y-`KBG1xF8rH?Djz|r6fmI&qzL4@vL{UW91Pg%Attu$dsF;C zm*bg5QEp34|Ngt^dGBeLmv(GRI%cG-K+2wK+40+oimeY|#e!&TbLVDfX-0X@W~_Yj zNlbpW2JMaekXX0^(LzTG$NvD$Qhwj2V62$C!`a!~)*?&uab#}J!O|zou&T07c0AN! zYg`%TMrOgCpV|KG`7o|Lk8I{`ZA9t9qez+Yx=Y>ukqhvz{}?CkIR+HuzKZmODK2AB zU%C=ymt3O7iM!gDJT`@7 zQM_nTAm62e#v^56it^|(cbk=$*Ny8p)FJ{wOXnEoeS62-s*YRr=j`!az}lx^Ck3uG zlXE+Tj{QhmR)|fNo#LuDOQ=j35|(6Pt9V1@?sD}NwzQs9o=~~_T1A>qM@ZB|c#sZY z#sa+c+#*Cs`8nVChD7+gouXT7s+bx3+TX>Z_!xvm#9&EIfk15+PP<4pGtRY7l_|YI z%NrJjM^jRrn%{flAA&ivrpoQp_}hh#$X21gQc#=Hm(F7z=g?TSM(F zA|B7Zwo^oQF>2gQ0L@hgWK%+-sJG6czUW1)sm?{~QK=^;3}I0Tc)6rN_RE5S_{#ogL4&TTVl_vOHlSBXa)F(ot# znBXSAKT@;uaIpLxp>+0BAz2M36cLjSdx=n*^O8{=BykY4d*E=SOM6{?|53<~00nOFp{Axn8zX0%rb5PvVs6 z1^G0UTn-_4ENL%wUc#~C$CO2YRsh;mxtP#-sZ%Lc*SfC>?zDgOHK1QD{bjlIOULhN z_f5lt4?d`xM!y0|Rr1(gdcgYRC9xbW4!`{6FV%|J5c)De)(fcab_JR$AQCm%$93=h zRg-Y*#~vF7`Guh=?rw$egLcawavXE~U6p5UiKhuuFQy)mo(m8$VWK|tF zA_~mngg(;Fd_~}K!R1-?yR+dJ9F6}dugB<#_u|nfo-rt4GUO=#yacujBj5S=-Kt<+GG~Fm3hnAA+aM z!`9-TB5sI)^%S2YzS5q0DM5uIK|ymM}Ho zf93SRwcg_DqH6m~;#B@aJmAze6LyIeWO->b@)t(f3e=-Ou2LR!2AE0|uD!Pycr4Eq zOiWi(dYaK?N=HXM$|QY`)20v$KKRW_p#Y_r-WNIYBh3*RTp8`uSk;8?a``>~^jUmA z-Y%M}wyeYZqrT}ZtX1y8|JczoNM7aKEubXec+Eht5v1I5LqPLd#fkDokkcQ5pDUsR zIm_vR`RHT7Je0Khq3?d+J>4L=FYKk4UQ(Yu(#zh=Icm`=VP=Iee0v=ZHFe03%q))C zO(@Ddi z4~yQt>aXmQ*L)H(N#mRM+9j|4M6+yd7hEByuoT)S#Vn{T$;RxJ<=Fb#Ke&<1GO;$D z)ryqggkR0xtyZ}s{`$EQc+G8I!@nh=0#t3;XmH?cY>9xQ&*W$Q6}Sq`Sph}4S@ z>FhCRx#NIRmVhNapmR2rFMazBr}S~-$En>11RcL?aQgIVJoL~*h`7rc5|qN+9!}6w z(oz{yXHnu9M`v&z+~i0u{FB_DsC{Nb>X}pKD7@TWjoipxNQ|b1BLKmn(Rea52sR+X zZmt!Hz80c~xP)dZJZX8@6qt)}`GAOzj~`|j1+bN^SmI(k4Z`9*c_^2?S;`C-5RSc5 z)(R|(k(gQHs*MLslnssLm>V8|?EP(hp528{D}ZFt?E8ks17$Gg6=Un&Z`#@vfW&1d zRht$?>HV~qI&(;jU0Dgv`|MP*FBWFWEQB?P4bb`)yI>9SO6%aR9(#@bU-{UQtUT+= zluLG%3cUaR`^s#^FLRTx>QYtXDcZ;3SoZAaXO+E`^kM1JrE2-MZ=J7fcm>v-uL}aKl5@E!GDvN)XUfr%pxY3z_Oi(zh~?{S+3YOkbqh+SVsUbY>Ds1KnGlHDnp*suj3_kGlp`<%I2 z#Vs!cDZj)`V3Eg?pK|8{D<+t^9h{#oq7Q6;J7uYuDd}pX2b9#Ti>qRk)a1$pJp-Rd zQ(NsPwV3l)bNaMuXt%xszM*KV1gqftOAKP)-7I|c8I5y#{5;JD>ld(WI`_KW zd>1@!(;$xs5z2Qfg2(iL594$_YvwG-2jP?iBsB;e6R1p8l$5lwUc7WsEe;rF8PqnK z{u;^e1kgp1UR{*7{FsK?_$Vu71Sw5s{86x8-6xk^_>Kz}Kg`M9gh%gl0N@?h$y?i@ zAxT<3Iw2uJZMot08v>X>A`d072tahnA z!6l#L#P|N;drDdk)F*XoeY3i~=LhK4JikUsY+4iKySGa6GM?Z1 z;{Se$`@=HjLm2l@yWedcE|GeVToSwy!+8W86*2u4-xO$X#UOkjOSbgEjgF31<}!Y| zv$3gBN$upMWc8J7a$S#u-Xo6-cry-%5xA{D%K_tOIP>!Ilw&w82mBbvcfb2xJEUn=iU+Uj(~RrzWfpRKkk=Q@VaJAMgRZ+07*qo IM6N<$f@W_bMF0Q* diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multiplex/multiplex.go b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multiplex/multiplex.go deleted file mode 100644 index 5ea2e61b..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multiplex/multiplex.go +++ /dev/null @@ -1,56 +0,0 @@ -package peerstream_multiplex - -import ( - "errors" - "net" - - smux "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer" - mp "gx/QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB/go-multiplex" // Conn is a connection to a remote peer. -) - -var ErrUseServe = errors.New("not implemented, use Serve") - -type conn struct { - *mp.Multiplex -} - -func (c *conn) Close() error { - return c.Multiplex.Close() -} - -func (c *conn) IsClosed() bool { - return c.Multiplex.IsClosed() -} - -// OpenStream creates a new stream. -func (c *conn) OpenStream() (smux.Stream, error) { - return c.Multiplex.NewStream(), nil -} - -// AcceptStream accepts a stream opened by the other side. -func (c *conn) AcceptStream() (smux.Stream, error) { - return c.Multiplex.Accept() -} - -// Serve starts listening for incoming requests and handles them -// using given StreamHandler -func (c *conn) Serve(handler smux.StreamHandler) { - for { - s, err := c.AcceptStream() - if err != nil { - return - } - go handler(s) - } -} - -// Transport is a go-peerstream transport that constructs -// multiplex-backed connections. -type Transport struct{} - -// DefaultTransport has default settings for multiplex -var DefaultTransport = &Transport{} - -func (t *Transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { - return &conn{mp.NewMultiplex(nc, isServer)}, nil -} diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multiplex/multiplex_test.go b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multiplex/multiplex_test.go deleted file mode 100644 index 6e5fa653..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multiplex/multiplex_test.go +++ /dev/null @@ -1,11 +0,0 @@ -package peerstream_multiplex - -import ( - "testing" - - test "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/test" -) - -func TestMultiplexTransport(t *testing.T) { - test.SubtestAll(t, DefaultTransport) -} diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multistream/multistream.go b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multistream/multistream.go deleted file mode 100644 index 41cb9030..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multistream/multistream.go +++ /dev/null @@ -1,60 +0,0 @@ -// package multistream implements a peerstream transport using -// go-multistream to select the underlying stream muxer -package multistream - -import ( - "net" - - mss "gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream" - - smux "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer" - multiplex "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multiplex" - spdy "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/spdystream" - yamux "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/yamux" -) - -type transport struct { - mux *mss.MultistreamMuxer - - tpts map[string]smux.Transport -} - -func NewTransport() smux.Transport { - mux := mss.NewMultistreamMuxer() - mux.AddHandler("/multiplex", nil) - mux.AddHandler("/spdystream", nil) - mux.AddHandler("/yamux", nil) - - tpts := map[string]smux.Transport{ - "/multiplex": multiplex.DefaultTransport, - "/spdystream": spdy.Transport, - "/yamux": yamux.DefaultTransport, - } - - return &transport{ - mux: mux, - tpts: tpts, - } -} - -func (t *transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { - var proto string - if isServer { - selected, _, err := t.mux.Negotiate(nc) - if err != nil { - return nil, err - } - proto = selected - } else { - // prefer yamux - selected, err := mss.SelectOneOf([]string{"/yamux", "/spdystream", "/multiplex"}, nc) - if err != nil { - return nil, err - } - proto = selected - } - - tpt := t.tpts[proto] - - return tpt.NewConn(nc, isServer) -} diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multistream/multistream_test.go b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multistream/multistream_test.go deleted file mode 100644 index 02233816..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/multistream/multistream_test.go +++ /dev/null @@ -1,11 +0,0 @@ -package multistream - -import ( - "testing" - - test "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/test" -) - -func TestMultiStreamTransport(t *testing.T) { - test.SubtestAll(t, NewTransport()) -} diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxado/muxado.go b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxado/muxado.go deleted file mode 100644 index 1c90bdba..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxado/muxado.go +++ /dev/null @@ -1,105 +0,0 @@ -package peerstream_muxado - -import ( - "net" - - smux "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer" - muxado "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado" -) - -// stream implements smux.Stream using a ss.Stream -type stream struct { - ms muxado.Stream -} - -func (s *stream) muxadoStream() muxado.Stream { - return s.ms -} - -func (s *stream) Read(buf []byte) (int, error) { - return s.ms.Read(buf) -} - -func (s *stream) Write(buf []byte) (int, error) { - return s.ms.Write(buf) -} - -func (s *stream) Close() error { - return s.ms.Close() -} - -// Conn is a connection to a remote peer. -type conn struct { - ms muxado.Session - - closed chan struct{} -} - -func (c *conn) muxadoSession() muxado.Session { - return c.ms -} - -func (c *conn) Close() error { - return c.ms.Close() -} - -func (c *conn) IsClosed() bool { - select { - case <-c.closed: - return true - default: - return false - } -} - -// OpenStream creates a new stream. -func (c *conn) OpenStream() (smux.Stream, error) { - s, err := c.ms.Open() - if err != nil { - return nil, err - } - - return &stream{ms: s}, nil -} - -// AcceptStream accepts a stream opened by the other side. -func (c *conn) AcceptStream() (smux.Stream, error) { - s, err := c.ms.Accept() - if err != nil { - return nil, err - } - return &stream{ms: s}, nil -} - -// Serve starts listening for incoming requests and handles them -// using given StreamHandler -func (c *conn) Serve(handler smux.StreamHandler) { - for { // accept loop - s, err := c.AcceptStream() - if err != nil { - return // err always means closed. - } - go handler(s) - } -} - -type transport struct{} - -// Transport is a go-peerstream transport that constructs -// spdystream-backed connections. -var Transport = transport{} - -func (t transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { - var s muxado.Session - if isServer { - s = muxado.Server(nc) - } else { - s = muxado.Client(nc) - } - cl := make(chan struct{}) - go func() { - s.Wait() - close(cl) - }() - return &conn{ms: s, closed: cl}, nil -} diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxado/muxado_test.go b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxado/muxado_test.go deleted file mode 100644 index f3358456..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxado/muxado_test.go +++ /dev/null @@ -1,11 +0,0 @@ -package peerstream_muxado - -import ( - "testing" - - test "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/test" -) - -func TestMuxadoTransport(t *testing.T) { - test.SubtestAll(t, Transport) -} diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxer.go b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxer.go deleted file mode 100644 index e9531750..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/muxer.go +++ /dev/null @@ -1,46 +0,0 @@ -package streammux - -import ( - "io" - "net" -) - -// Stream is a bidirectional io pipe within a connection -type Stream interface { - io.Reader - io.Writer - io.Closer -} - -// StreamHandler is a function that handles streams -// (usually those opened by the remote side) -type StreamHandler func(Stream) - -// NoOpHandler do nothing. close streams as soon as they are opened. -var NoOpHandler = func(s Stream) { s.Close() } - -// Conn is a stream-multiplexing connection to a remote peer. -type Conn interface { - io.Closer - - // IsClosed returns whether a connection is fully closed, so it can - // be garbage collected. - IsClosed() bool - - // OpenStream creates a new stream. - OpenStream() (Stream, error) - - // AcceptStream accepts a stream opened by the other side. - AcceptStream() (Stream, error) - - // Serve starts a loop, accepting incoming requests and calling - // `StreamHandler with them. (Use _instead of_ accept. not both.) - Serve(StreamHandler) -} - -// Transport constructs go-stream-muxer compatible connections. -type Transport interface { - - // NewConn constructs a new connection - NewConn(c net.Conn, isServer bool) (Conn, error) -} diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/package.json b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/package.json deleted file mode 100644 index 2e9b6f26..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "go-stream-muxer", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "go-multiplex", - "hash": "QmQcFRqZsPJPuQ3V8j5d2cuid8CWHyxNNCFwfhoXSguZCB", - "version": "0.0.0" - }, - { - "name": "go-multistream", - "hash": "QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD", - "version": "1.0.0" - }, - { - "name": "muxado", - "hash": "QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ", - "version": "1.0.0" - }, - { - "name": "spdystream", - "hash": "QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2", - "version": "0.0.0" - }, - { - "name": "yamux", - "hash": "QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1", - "version": "1.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/jbenet/go-stream-muxer" - } -} \ No newline at end of file diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/spdystream/spdystream.go b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/spdystream/spdystream.go deleted file mode 100644 index ae3e34ff..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/spdystream/spdystream.go +++ /dev/null @@ -1,123 +0,0 @@ -package peerstream_spdystream - -import ( - "errors" - "net" - "net/http" - - smux "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer" - ss "gx/QmRCCpiiYnh621p5Qntvem8pR3Wks8WPMTnEMaAi2oddW2/spdystream" -) - -var ErrUseServe = errors.New("not implemented, use Serve") - -// stream implements smux.Stream using a ss.Stream -type stream ss.Stream - -func (s *stream) spdyStream() *ss.Stream { - return (*ss.Stream)(s) -} - -func (s *stream) Read(buf []byte) (int, error) { - return s.spdyStream().Read(buf) -} - -func (s *stream) Write(buf []byte) (int, error) { - return s.spdyStream().Write(buf) -} - -func (s *stream) Close() error { - // Reset is spdystream's full bidirectional close. - // We expose bidirectional close as our `Close`. - // To close only half of the connection, and use other - // spdystream options, just get the stream with: - // ssStream := (*ss.Stream)(stream) - return s.spdyStream().Reset() -} - -// Conn is a connection to a remote peer. -type conn struct { - sc *ss.Connection - - closed chan struct{} -} - -func (c *conn) spdyConn() *ss.Connection { - return c.sc -} - -func (c *conn) Close() error { - err := c.spdyConn().CloseWait() - if !c.IsClosed() { - close(c.closed) - } - return err -} - -func (c *conn) IsClosed() bool { - select { - case <-c.closed: - return true - case <-c.sc.CloseChan(): - return true - default: - return false - } -} - -// OpenStream creates a new stream. -func (c *conn) OpenStream() (smux.Stream, error) { - s, err := c.spdyConn().CreateStream(http.Header{ - ":method": []string{"GET"}, // this is here for HTTP/SPDY interop - ":path": []string{"/"}, // this is here for HTTP/SPDY interop - }, nil, false) - if err != nil { - return nil, err - } - - // wait for a response before writing. for some reason - // spdystream does not make forward progress unless you do this. - s.Wait() - return (*stream)(s), nil -} - -// AcceptStream accepts a stream opened by the other side. -func (c *conn) AcceptStream() (smux.Stream, error) { - return nil, ErrUseServe -} - -// Serve starts listening for incoming requests and handles them -// using given StreamHandler -func (c *conn) Serve(handler smux.StreamHandler) { - c.spdyConn().Serve(func(s *ss.Stream) { - - // Flow control and backpressure of Opening streams is broken. - // I believe that spdystream has one set of workers that both send - // data AND accept new streams (as it's just more data). there - // is a problem where if the new stream handlers want to throttle, - // they also eliminate the ability to read/write data, which makes - // forward-progress impossible. Thus, throttling this function is - // -- at this moment -- not the solution. Either spdystream must - // change, or we must throttle another way. go-peerstream handles - // every new stream in its own goroutine. - err := s.SendReply(http.Header{}, false) - if err != nil { - // this _could_ error out. not sure how to handle this failure. - // don't return, and let the caller handle a broken stream. - // better than _hiding_ an error. - // return - } - go handler((*stream)(s)) - }) -} - -type transport struct{} - -// Transport is a go-peerstream transport that constructs -// spdystream-backed connections. -var Transport = transport{} - -func (t transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { - sc, err := ss.NewConnection(nc, isServer) - return &conn{sc: sc, closed: make(chan struct{})}, err -} diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/spdystream/spdystream_test.go b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/spdystream/spdystream_test.go deleted file mode 100644 index 85664212..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/spdystream/spdystream_test.go +++ /dev/null @@ -1,11 +0,0 @@ -package peerstream_spdystream - -import ( - "testing" - - test "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/test" -) - -func TestSpdyStreamTransport(t *testing.T) { - test.SubtestAll(t, Transport) -} diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/test/ttest.go b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/test/ttest.go deleted file mode 100644 index 9aef57ee..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/test/ttest.go +++ /dev/null @@ -1,378 +0,0 @@ -package sm_test - -import ( - "bytes" - crand "crypto/rand" - "fmt" - "io" - mrand "math/rand" - "net" - "os" - "reflect" - "runtime" - "runtime/debug" - "sync" - "testing" - - smux "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer" -) - -var randomness []byte - -func init() { - // read 1MB of randomness - randomness = make([]byte, 1<<20) - if _, err := crand.Read(randomness); err != nil { - panic(err) - } -} - -type Options struct { - tr smux.Transport - connNum int - streamNum int - msgNum int - msgMin int - msgMax int -} - -func randBuf(size int) []byte { - n := len(randomness) - size - if size < 1 { - panic(fmt.Errorf("requested too large buffer (%d). max is %d", size, len(randomness))) - } - - start := mrand.Intn(n) - return randomness[start : start+size] -} - -func checkErr(t *testing.T, err error) { - if err != nil { - debug.PrintStack() - t.Fatal(err) - } -} - -func log(s string, v ...interface{}) { - if testing.Verbose() { - fmt.Fprintf(os.Stderr, "> "+s+"\n", v...) - } -} - -func echoStream(s smux.Stream) { - defer s.Close() - log("accepted stream") - io.Copy(&LogWriter{s}, s) // echo everything - log("closing stream") -} - -type LogWriter struct { - W io.Writer -} - -func (lw *LogWriter) Write(buf []byte) (int, error) { - if testing.Verbose() { - log("logwriter: writing %d bytes", len(buf)) - } - return lw.W.Write(buf) -} - -func GoServe(t *testing.T, tr smux.Transport, l net.Listener) (done func()) { - closed := make(chan struct{}, 1) - - go func() { - for { - c1, err := l.Accept() - if err != nil { - select { - case <-closed: - return // closed naturally. - default: - checkErr(t, err) - } - } - - log("accepted connection") - sc1, err := tr.NewConn(c1, true) - checkErr(t, err) - go sc1.Serve(echoStream) - } - }() - - return func() { - closed <- struct{}{} - } -} - -func SubtestSimpleWrite(t *testing.T, tr smux.Transport) { - l, err := net.Listen("tcp", "localhost:0") - checkErr(t, err) - log("listening at %s", l.Addr().String()) - done := GoServe(t, tr, l) - defer done() - - log("dialing to %s", l.Addr().String()) - nc1, err := net.Dial("tcp", l.Addr().String()) - checkErr(t, err) - defer nc1.Close() - - log("wrapping conn") - c1, err := tr.NewConn(nc1, false) - checkErr(t, err) - defer c1.Close() - - // serve the outgoing conn, because some muxers assume - // that we _always_ call serve. (this is an error?) - go c1.Serve(smux.NoOpHandler) - - log("creating stream") - s1, err := c1.OpenStream() - checkErr(t, err) - defer s1.Close() - - buf1 := randBuf(4096) - log("writing %d bytes to stream", len(buf1)) - _, err = s1.Write(buf1) - checkErr(t, err) - - buf2 := make([]byte, len(buf1)) - log("reading %d bytes from stream (echoed)", len(buf2)) - _, err = s1.Read(buf2) - checkErr(t, err) - - if string(buf2) != string(buf1) { - t.Error("buf1 and buf2 not equal: %s != %s", string(buf1), string(buf2)) - } - log("done") -} - -func SubtestStress(t *testing.T, opt Options) { - - msgsize := 1 << 11 - errs := make(chan error, 0) // dont block anything. - - rateLimitN := 5000 // max of 5k funcs, because -race has 8k max. - rateLimitChan := make(chan struct{}, rateLimitN) - for i := 0; i < rateLimitN; i++ { - rateLimitChan <- struct{}{} - } - - rateLimit := func(f func()) { - <-rateLimitChan - f() - rateLimitChan <- struct{}{} - } - - writeStream := func(s smux.Stream, bufs chan<- []byte) { - log("writeStream %p, %d msgNum", s, opt.msgNum) - - for i := 0; i < opt.msgNum; i++ { - buf := randBuf(msgsize) - bufs <- buf - log("%p writing %d bytes (message %d/%d #%x)", s, len(buf), i, opt.msgNum, buf[:3]) - if _, err := s.Write(buf); err != nil { - errs <- fmt.Errorf("s.Write(buf): %s", err) - continue - } - } - } - - readStream := func(s smux.Stream, bufs <-chan []byte) { - log("readStream %p, %d msgNum", s, opt.msgNum) - - buf2 := make([]byte, msgsize) - i := 0 - for buf1 := range bufs { - i++ - log("%p reading %d bytes (message %d/%d #%x)", s, len(buf1), i-1, opt.msgNum, buf1[:3]) - - if _, err := io.ReadFull(s, buf2); err != nil { - errs <- fmt.Errorf("io.ReadFull(s, buf2): %s", err) - log("%p failed to read %d bytes (message %d/%d #%x)", s, len(buf1), i-1, opt.msgNum, buf1[:3]) - continue - } - if !bytes.Equal(buf1, buf2) { - errs <- fmt.Errorf("buffers not equal (%x != %x)", buf1[:3], buf2[:3]) - } - } - } - - openStreamAndRW := func(c smux.Conn) { - log("openStreamAndRW %p, %d opt.msgNum", c, opt.msgNum) - - s, err := c.OpenStream() - if err != nil { - errs <- fmt.Errorf("Failed to create NewStream: %s", err) - return - } - - bufs := make(chan []byte, opt.msgNum) - go func() { - writeStream(s, bufs) - close(bufs) - }() - - readStream(s, bufs) - s.Close() - } - - openConnAndRW := func() { - log("openConnAndRW") - - l, err := net.Listen("tcp", "localhost:0") - checkErr(t, err) - done := GoServe(t, opt.tr, l) - defer done() - - nla := l.Addr() - nc, err := net.Dial(nla.Network(), nla.String()) - checkErr(t, err) - if err != nil { - t.Fatal(fmt.Errorf("net.Dial(%s, %s): %s", nla.Network(), nla.String(), err)) - return - } - - c, err := opt.tr.NewConn(nc, false) - if err != nil { - t.Fatal(fmt.Errorf("a.AddConn(%s <--> %s): %s", nc.LocalAddr(), nc.RemoteAddr(), err)) - return - } - - // serve the outgoing conn, because some muxers assume - // that we _always_ call serve. (this is an error?) - go c.Serve(func(s smux.Stream) { - log("serving connection") - echoStream(s) - s.Close() - }) - - var wg sync.WaitGroup - for i := 0; i < opt.streamNum; i++ { - wg.Add(1) - go rateLimit(func() { - defer wg.Done() - openStreamAndRW(c) - }) - } - wg.Wait() - c.Close() - } - - openConnsAndRW := func() { - log("openConnsAndRW, %d conns", opt.connNum) - - var wg sync.WaitGroup - for i := 0; i < opt.connNum; i++ { - wg.Add(1) - go rateLimit(func() { - defer wg.Done() - openConnAndRW() - }) - } - wg.Wait() - } - - go func() { - openConnsAndRW() - close(errs) // done - }() - - for err := range errs { - t.Error(err) - } - -} - -func SubtestStress1Conn1Stream1Msg(t *testing.T, tr smux.Transport) { - SubtestStress(t, Options{ - tr: tr, - connNum: 1, - streamNum: 1, - msgNum: 1, - msgMax: 100, - msgMin: 100, - }) -} - -func SubtestStress1Conn1Stream100Msg(t *testing.T, tr smux.Transport) { - SubtestStress(t, Options{ - tr: tr, - connNum: 1, - streamNum: 1, - msgNum: 100, - msgMax: 100, - msgMin: 100, - }) -} - -func SubtestStress1Conn100Stream100Msg(t *testing.T, tr smux.Transport) { - SubtestStress(t, Options{ - tr: tr, - connNum: 1, - streamNum: 100, - msgNum: 100, - msgMax: 100, - msgMin: 100, - }) -} - -func SubtestStress50Conn10Stream50Msg(t *testing.T, tr smux.Transport) { - SubtestStress(t, Options{ - tr: tr, - connNum: 50, - streamNum: 10, - msgNum: 50, - msgMax: 100, - msgMin: 100, - }) -} - -func SubtestStress1Conn1000Stream10Msg(t *testing.T, tr smux.Transport) { - SubtestStress(t, Options{ - tr: tr, - connNum: 1, - streamNum: 1000, - msgNum: 10, - msgMax: 100, - msgMin: 100, - }) -} - -func SubtestStress1Conn100Stream100Msg10MB(t *testing.T, tr smux.Transport) { - SubtestStress(t, Options{ - tr: tr, - connNum: 1, - streamNum: 100, - msgNum: 100, - msgMax: 10000, - msgMin: 1000, - }) -} - -func SubtestAll(t *testing.T, tr smux.Transport) { - - tests := []TransportTest{ - SubtestSimpleWrite, - SubtestStress1Conn1Stream1Msg, - SubtestStress1Conn1Stream100Msg, - SubtestStress1Conn100Stream100Msg, - SubtestStress50Conn10Stream50Msg, - SubtestStress1Conn1000Stream10Msg, - SubtestStress1Conn100Stream100Msg10MB, - } - - for _, f := range tests { - if testing.Verbose() { - fmt.Fprintf(os.Stderr, "==== RUN %s\n", GetFunctionName(f)) - } - f(t, tr) - } -} - -type TransportTest func(t *testing.T, tr smux.Transport) - -func TestNoOp(t *testing.T) {} - -func GetFunctionName(i interface{}) string { - return runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name() -} diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/yamux/yamux.go b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/yamux/yamux.go deleted file mode 100644 index 2a324890..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/yamux/yamux.go +++ /dev/null @@ -1,100 +0,0 @@ -package sm_yamux - -import ( - "io/ioutil" - "net" - "time" - - smux "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer" - yamux "gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux" -) - -// stream implements smux.Stream using a ss.Stream -type stream yamux.Stream - -func (s *stream) yamuxStream() *yamux.Stream { - return (*yamux.Stream)(s) -} - -func (s *stream) Read(buf []byte) (int, error) { - return s.yamuxStream().Read(buf) -} - -func (s *stream) Write(buf []byte) (int, error) { - return s.yamuxStream().Write(buf) -} - -func (s *stream) Close() error { - return s.yamuxStream().Close() -} - -// Conn is a connection to a remote peer. -type conn yamux.Session - -func (c *conn) yamuxSession() *yamux.Session { - return (*yamux.Session)(c) -} - -func (c *conn) Close() error { - return c.yamuxSession().Close() -} - -func (c *conn) IsClosed() bool { - return c.yamuxSession().IsClosed() -} - -// OpenStream creates a new stream. -func (c *conn) OpenStream() (smux.Stream, error) { - s, err := c.yamuxSession().OpenStream() - if err != nil { - return nil, err - } - - return (*stream)(s), nil -} - -// AcceptStream accepts a stream opened by the other side. -func (c *conn) AcceptStream() (smux.Stream, error) { - s, err := c.yamuxSession().AcceptStream() - return (*stream)(s), err -} - -// Serve starts listening for incoming requests and handles them -// using given StreamHandler -func (c *conn) Serve(handler smux.StreamHandler) { - for { // accept loop - s, err := c.AcceptStream() - if err != nil { - return // err always means closed. - } - go handler(s) - } -} - -// Transport is a go-peerstream transport that constructs -// yamux-backed connections. -type Transport yamux.Config - -// DefaultTransport has default settings for yamux -var DefaultTransport = (*Transport)(&yamux.Config{ - AcceptBacklog: 256, // from yamux.DefaultConfig - EnableKeepAlive: true, // from yamux.DefaultConfig - KeepAliveInterval: 30 * time.Second, // from yamux.DefaultConfig - MaxStreamWindowSize: uint32(256 * 1024), // from yamux.DefaultConfig - LogOutput: ioutil.Discard, -}) - -func (t *Transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { - var s *yamux.Session - var err error - if isServer { - s, err = yamux.Server(nc, t.Config()) - } else { - s, err = yamux.Client(nc, t.Config()) - } - return (*conn)(s), err -} - -func (t *Transport) Config() *yamux.Config { - return (*yamux.Config)(t) -} diff --git a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/yamux/yamux_test.go b/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/yamux/yamux_test.go deleted file mode 100644 index 90e27be6..00000000 --- a/vendor/gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/yamux/yamux_test.go +++ /dev/null @@ -1,11 +0,0 @@ -package sm_yamux - -import ( - "testing" - - test "gx/QmRmT6MSnfhRDW1PTUGSd3z4fqXK48GUequQAZzeT4c5iC/go-stream-muxer/test" -) - -func TestYamuxTransport(t *testing.T) { - test.SubtestAll(t, DefaultTransport) -} diff --git a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/doc.go b/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/doc.go deleted file mode 100644 index 3dab530f..00000000 --- a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/doc.go +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package sha3 implements the SHA-3 fixed-output-length hash functions and -// the SHAKE variable-output-length hash functions defined by FIPS-202. -// -// Both types of hash function use the "sponge" construction and the Keccak -// permutation. For a detailed specification see http://keccak.noekeon.org/ -// -// -// Guidance -// -// If you aren't sure what function you need, use SHAKE256 with at least 64 -// bytes of output. The SHAKE instances are faster than the SHA3 instances; -// the latter have to allocate memory to conform to the hash.Hash interface. -// -// If you need a secret-key MAC (message authentication code), prepend the -// secret key to the input, hash with SHAKE256 and read at least 32 bytes of -// output. -// -// -// Security strengths -// -// The SHA3-x (x equals 224, 256, 384, or 512) functions have a security -// strength against preimage attacks of x bits. Since they only produce "x" -// bits of output, their collision-resistance is only "x/2" bits. -// -// The SHAKE-256 and -128 functions have a generic security strength of 256 and -// 128 bits against all attacks, provided that at least 2x bits of their output -// is used. Requesting more than 64 or 32 bytes of output, respectively, does -// not increase the collision-resistance of the SHAKE functions. -// -// -// The sponge construction -// -// A sponge builds a pseudo-random function from a public pseudo-random -// permutation, by applying the permutation to a state of "rate + capacity" -// bytes, but hiding "capacity" of the bytes. -// -// A sponge starts out with a zero state. To hash an input using a sponge, up -// to "rate" bytes of the input are XORed into the sponge's state. The sponge -// is then "full" and the permutation is applied to "empty" it. This process is -// repeated until all the input has been "absorbed". The input is then padded. -// The digest is "squeezed" from the sponge in the same way, except that output -// output is copied out instead of input being XORed in. -// -// A sponge is parameterized by its generic security strength, which is equal -// to half its capacity; capacity + rate is equal to the permutation's width. -// Since the KeccakF-1600 permutation is 1600 bits (200 bytes) wide, this means -// that the security strength of a sponge instance is equal to (1600 - bitrate) / 2. -// -// -// Recommendations -// -// The SHAKE functions are recommended for most new uses. They can produce -// output of arbitrary length. SHAKE256, with an output length of at least -// 64 bytes, provides 256-bit security against all attacks. The Keccak team -// recommends it for most applications upgrading from SHA2-512. (NIST chose a -// much stronger, but much slower, sponge instance for SHA3-512.) -// -// The SHA-3 functions are "drop-in" replacements for the SHA-2 functions. -// They produce output of the same length, with the same security strengths -// against all attacks. This means, in particular, that SHA3-256 only has -// 128-bit collision resistance, because its output length is 32 bytes. -package sha3 diff --git a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/hashes.go b/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/hashes.go deleted file mode 100644 index 2b51cf4e..00000000 --- a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/hashes.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// This file provides functions for creating instances of the SHA-3 -// and SHAKE hash functions, as well as utility functions for hashing -// bytes. - -import ( - "hash" -) - -// New224 creates a new SHA3-224 hash. -// Its generic security strength is 224 bits against preimage attacks, -// and 112 bits against collision attacks. -func New224() hash.Hash { return &state{rate: 144, outputLen: 28, dsbyte: 0x06} } - -// New256 creates a new SHA3-256 hash. -// Its generic security strength is 256 bits against preimage attacks, -// and 128 bits against collision attacks. -func New256() hash.Hash { return &state{rate: 136, outputLen: 32, dsbyte: 0x06} } - -// New384 creates a new SHA3-384 hash. -// Its generic security strength is 384 bits against preimage attacks, -// and 192 bits against collision attacks. -func New384() hash.Hash { return &state{rate: 104, outputLen: 48, dsbyte: 0x06} } - -// New512 creates a new SHA3-512 hash. -// Its generic security strength is 512 bits against preimage attacks, -// and 256 bits against collision attacks. -func New512() hash.Hash { return &state{rate: 72, outputLen: 64, dsbyte: 0x06} } - -// Sum224 returns the SHA3-224 digest of the data. -func Sum224(data []byte) (digest [28]byte) { - h := New224() - h.Write(data) - h.Sum(digest[:0]) - return -} - -// Sum256 returns the SHA3-256 digest of the data. -func Sum256(data []byte) (digest [32]byte) { - h := New256() - h.Write(data) - h.Sum(digest[:0]) - return -} - -// Sum384 returns the SHA3-384 digest of the data. -func Sum384(data []byte) (digest [48]byte) { - h := New384() - h.Write(data) - h.Sum(digest[:0]) - return -} - -// Sum512 returns the SHA3-512 digest of the data. -func Sum512(data []byte) (digest [64]byte) { - h := New512() - h.Write(data) - h.Sum(digest[:0]) - return -} diff --git a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/keccakf.go b/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/keccakf.go deleted file mode 100644 index 13e7058f..00000000 --- a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/keccakf.go +++ /dev/null @@ -1,410 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// rc stores the round constants for use in the ι step. -var rc = [24]uint64{ - 0x0000000000000001, - 0x0000000000008082, - 0x800000000000808A, - 0x8000000080008000, - 0x000000000000808B, - 0x0000000080000001, - 0x8000000080008081, - 0x8000000000008009, - 0x000000000000008A, - 0x0000000000000088, - 0x0000000080008009, - 0x000000008000000A, - 0x000000008000808B, - 0x800000000000008B, - 0x8000000000008089, - 0x8000000000008003, - 0x8000000000008002, - 0x8000000000000080, - 0x000000000000800A, - 0x800000008000000A, - 0x8000000080008081, - 0x8000000000008080, - 0x0000000080000001, - 0x8000000080008008, -} - -// keccakF1600 applies the Keccak permutation to a 1600b-wide -// state represented as a slice of 25 uint64s. -func keccakF1600(a *[25]uint64) { - // Implementation translated from Keccak-inplace.c - // in the keccak reference code. - var t, bc0, bc1, bc2, bc3, bc4, d0, d1, d2, d3, d4 uint64 - - for i := 0; i < 24; i += 4 { - // Combines the 5 steps in each round into 2 steps. - // Unrolls 4 rounds per loop and spreads some steps across rounds. - - // Round 1 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[6] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[12] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[18] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[24] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i] - a[6] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[16] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[22] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[3] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[10] = bc0 ^ (bc2 &^ bc1) - a[16] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[1] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[7] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[19] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[20] = bc0 ^ (bc2 &^ bc1) - a[1] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[11] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[23] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[4] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[5] = bc0 ^ (bc2 &^ bc1) - a[11] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[2] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[8] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[14] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[15] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - // Round 2 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[16] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[7] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[23] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[14] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+1] - a[16] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[11] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[2] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[18] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[20] = bc0 ^ (bc2 &^ bc1) - a[11] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[6] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[22] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[4] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[15] = bc0 ^ (bc2 &^ bc1) - a[6] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[1] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[8] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[24] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[10] = bc0 ^ (bc2 &^ bc1) - a[1] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[12] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[3] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[19] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[5] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - // Round 3 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[11] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[22] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[8] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[19] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+2] - a[11] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[1] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[12] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[23] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[15] = bc0 ^ (bc2 &^ bc1) - a[1] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[16] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[2] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[24] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[5] = bc0 ^ (bc2 &^ bc1) - a[16] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[6] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[3] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[14] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[20] = bc0 ^ (bc2 &^ bc1) - a[6] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[7] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[18] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[4] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[10] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - // Round 4 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[1] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[2] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[3] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[4] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+3] - a[1] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[6] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[7] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[8] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[5] = bc0 ^ (bc2 &^ bc1) - a[6] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[11] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[12] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[14] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[10] = bc0 ^ (bc2 &^ bc1) - a[11] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[16] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[18] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[19] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[15] = bc0 ^ (bc2 &^ bc1) - a[16] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[22] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[23] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[24] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[20] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - } -} diff --git a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/package.json b/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/package.json deleted file mode 100644 index 22ab87b7..00000000 --- a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "crypto-sha3", - "author": "whyrusleeping", - "version": "1.0.0", - "language": "go", - "gx": { - "dvcsimport": "golang.org/x/crypto/sha3" - } -} \ No newline at end of file diff --git a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/register.go b/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/register.go deleted file mode 100644 index 3cf6a22e..00000000 --- a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/register.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.4 - -package sha3 - -import ( - "crypto" -) - -func init() { - crypto.RegisterHash(crypto.SHA3_224, New224) - crypto.RegisterHash(crypto.SHA3_256, New256) - crypto.RegisterHash(crypto.SHA3_384, New384) - crypto.RegisterHash(crypto.SHA3_512, New512) -} diff --git a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/sha3.go b/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/sha3.go deleted file mode 100644 index c8fd31cb..00000000 --- a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/sha3.go +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// spongeDirection indicates the direction bytes are flowing through the sponge. -type spongeDirection int - -const ( - // spongeAbsorbing indicates that the sponge is absorbing input. - spongeAbsorbing spongeDirection = iota - // spongeSqueezing indicates that the sponge is being squeezed. - spongeSqueezing -) - -const ( - // maxRate is the maximum size of the internal buffer. SHAKE-256 - // currently needs the largest buffer. - maxRate = 168 -) - -type state struct { - // Generic sponge components. - a [25]uint64 // main state of the hash - buf []byte // points into storage - rate int // the number of bytes of state to use - - // dsbyte contains the "domain separation" bits and the first bit of - // the padding. Sections 6.1 and 6.2 of [1] separate the outputs of the - // SHA-3 and SHAKE functions by appending bitstrings to the message. - // Using a little-endian bit-ordering convention, these are "01" for SHA-3 - // and "1111" for SHAKE, or 00000010b and 00001111b, respectively. Then the - // padding rule from section 5.1 is applied to pad the message to a multiple - // of the rate, which involves adding a "1" bit, zero or more "0" bits, and - // a final "1" bit. We merge the first "1" bit from the padding into dsbyte, - // giving 00000110b (0x06) and 00011111b (0x1f). - // [1] http://csrc.nist.gov/publications/drafts/fips-202/fips_202_draft.pdf - // "Draft FIPS 202: SHA-3 Standard: Permutation-Based Hash and - // Extendable-Output Functions (May 2014)" - dsbyte byte - storage [maxRate]byte - - // Specific to SHA-3 and SHAKE. - fixedOutput bool // whether this is a fixed-ouput-length instance - outputLen int // the default output size in bytes - state spongeDirection // whether the sponge is absorbing or squeezing -} - -// BlockSize returns the rate of sponge underlying this hash function. -func (d *state) BlockSize() int { return d.rate } - -// Size returns the output size of the hash function in bytes. -func (d *state) Size() int { return d.outputLen } - -// Reset clears the internal state by zeroing the sponge state and -// the byte buffer, and setting Sponge.state to absorbing. -func (d *state) Reset() { - // Zero the permutation's state. - for i := range d.a { - d.a[i] = 0 - } - d.state = spongeAbsorbing - d.buf = d.storage[:0] -} - -func (d *state) clone() *state { - ret := *d - if ret.state == spongeAbsorbing { - ret.buf = ret.storage[:len(ret.buf)] - } else { - ret.buf = ret.storage[d.rate-cap(d.buf) : d.rate] - } - - return &ret -} - -// permute applies the KeccakF-1600 permutation. It handles -// any input-output buffering. -func (d *state) permute() { - switch d.state { - case spongeAbsorbing: - // If we're absorbing, we need to xor the input into the state - // before applying the permutation. - xorIn(d, d.buf) - d.buf = d.storage[:0] - keccakF1600(&d.a) - case spongeSqueezing: - // If we're squeezing, we need to apply the permutatin before - // copying more output. - keccakF1600(&d.a) - d.buf = d.storage[:d.rate] - copyOut(d, d.buf) - } -} - -// pads appends the domain separation bits in dsbyte, applies -// the multi-bitrate 10..1 padding rule, and permutes the state. -func (d *state) padAndPermute(dsbyte byte) { - if d.buf == nil { - d.buf = d.storage[:0] - } - // Pad with this instance's domain-separator bits. We know that there's - // at least one byte of space in d.buf because, if it were full, - // permute would have been called to empty it. dsbyte also contains the - // first one bit for the padding. See the comment in the state struct. - d.buf = append(d.buf, dsbyte) - zerosStart := len(d.buf) - d.buf = d.storage[:d.rate] - for i := zerosStart; i < d.rate; i++ { - d.buf[i] = 0 - } - // This adds the final one bit for the padding. Because of the way that - // bits are numbered from the LSB upwards, the final bit is the MSB of - // the last byte. - d.buf[d.rate-1] ^= 0x80 - // Apply the permutation - d.permute() - d.state = spongeSqueezing - d.buf = d.storage[:d.rate] - copyOut(d, d.buf) -} - -// Write absorbs more data into the hash's state. It produces an error -// if more data is written to the ShakeHash after writing -func (d *state) Write(p []byte) (written int, err error) { - if d.state != spongeAbsorbing { - panic("sha3: write to sponge after read") - } - if d.buf == nil { - d.buf = d.storage[:0] - } - written = len(p) - - for len(p) > 0 { - if len(d.buf) == 0 && len(p) >= d.rate { - // The fast path; absorb a full "rate" bytes of input and apply the permutation. - xorIn(d, p[:d.rate]) - p = p[d.rate:] - keccakF1600(&d.a) - } else { - // The slow path; buffer the input until we can fill the sponge, and then xor it in. - todo := d.rate - len(d.buf) - if todo > len(p) { - todo = len(p) - } - d.buf = append(d.buf, p[:todo]...) - p = p[todo:] - - // If the sponge is full, apply the permutation. - if len(d.buf) == d.rate { - d.permute() - } - } - } - - return -} - -// Read squeezes an arbitrary number of bytes from the sponge. -func (d *state) Read(out []byte) (n int, err error) { - // If we're still absorbing, pad and apply the permutation. - if d.state == spongeAbsorbing { - d.padAndPermute(d.dsbyte) - } - - n = len(out) - - // Now, do the squeezing. - for len(out) > 0 { - n := copy(out, d.buf) - d.buf = d.buf[n:] - out = out[n:] - - // Apply the permutation if we've squeezed the sponge dry. - if len(d.buf) == 0 { - d.permute() - } - } - - return -} - -// Sum applies padding to the hash state and then squeezes out the desired -// number of output bytes. -func (d *state) Sum(in []byte) []byte { - // Make a copy of the original hash so that caller can keep writing - // and summing. - dup := d.clone() - hash := make([]byte, dup.outputLen) - dup.Read(hash) - return append(in, hash...) -} diff --git a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/sha3_test.go b/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/sha3_test.go deleted file mode 100644 index caf72f27..00000000 --- a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/sha3_test.go +++ /dev/null @@ -1,306 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// Tests include all the ShortMsgKATs provided by the Keccak team at -// https://github.com/gvanas/KeccakCodePackage -// -// They only include the zero-bit case of the bitwise testvectors -// published by NIST in the draft of FIPS-202. - -import ( - "bytes" - "compress/flate" - "encoding/hex" - "encoding/json" - "hash" - "os" - "strings" - "testing" -) - -const ( - testString = "brekeccakkeccak koax koax" - katFilename = "testdata/keccakKats.json.deflate" -) - -// Internal-use instances of SHAKE used to test against KATs. -func newHashShake128() hash.Hash { - return &state{rate: 168, dsbyte: 0x1f, outputLen: 512} -} -func newHashShake256() hash.Hash { - return &state{rate: 136, dsbyte: 0x1f, outputLen: 512} -} - -// testDigests contains functions returning hash.Hash instances -// with output-length equal to the KAT length for both SHA-3 and -// SHAKE instances. -var testDigests = map[string]func() hash.Hash{ - "SHA3-224": New224, - "SHA3-256": New256, - "SHA3-384": New384, - "SHA3-512": New512, - "SHAKE128": newHashShake128, - "SHAKE256": newHashShake256, -} - -// testShakes contains functions that return ShakeHash instances for -// testing the ShakeHash-specific interface. -var testShakes = map[string]func() ShakeHash{ - "SHAKE128": NewShake128, - "SHAKE256": NewShake256, -} - -// decodeHex converts a hex-encoded string into a raw byte string. -func decodeHex(s string) []byte { - b, err := hex.DecodeString(s) - if err != nil { - panic(err) - } - return b -} - -// structs used to marshal JSON test-cases. -type KeccakKats struct { - Kats map[string][]struct { - Digest string `json:"digest"` - Length int64 `json:"length"` - Message string `json:"message"` - } -} - -func testUnalignedAndGeneric(t *testing.T, testf func(impl string)) { - xorInOrig, copyOutOrig := xorIn, copyOut - xorIn, copyOut = xorInGeneric, copyOutGeneric - testf("generic") - if xorImplementationUnaligned != "generic" { - xorIn, copyOut = xorInUnaligned, copyOutUnaligned - testf("unaligned") - } - xorIn, copyOut = xorInOrig, copyOutOrig -} - -// TestKeccakKats tests the SHA-3 and Shake implementations against all the -// ShortMsgKATs from https://github.com/gvanas/KeccakCodePackage -// (The testvectors are stored in keccakKats.json.deflate due to their length.) -func TestKeccakKats(t *testing.T) { - testUnalignedAndGeneric(t, func(impl string) { - // Read the KATs. - deflated, err := os.Open(katFilename) - if err != nil { - t.Errorf("error opening %s: %s", katFilename, err) - } - file := flate.NewReader(deflated) - dec := json.NewDecoder(file) - var katSet KeccakKats - err = dec.Decode(&katSet) - if err != nil { - t.Errorf("error decoding KATs: %s", err) - } - - // Do the KATs. - for functionName, kats := range katSet.Kats { - d := testDigests[functionName]() - for _, kat := range kats { - d.Reset() - in, err := hex.DecodeString(kat.Message) - if err != nil { - t.Errorf("error decoding KAT: %s", err) - } - d.Write(in[:kat.Length/8]) - got := strings.ToUpper(hex.EncodeToString(d.Sum(nil))) - if got != kat.Digest { - t.Errorf("function=%s, implementation=%s, length=%d\nmessage:\n %s\ngot:\n %s\nwanted:\n %s", - functionName, impl, kat.Length, kat.Message, got, kat.Digest) - t.Logf("wanted %+v", kat) - t.FailNow() - } - continue - } - } - }) -} - -// TestUnalignedWrite tests that writing data in an arbitrary pattern with -// small input buffers. -func testUnalignedWrite(t *testing.T) { - testUnalignedAndGeneric(t, func(impl string) { - buf := sequentialBytes(0x10000) - for alg, df := range testDigests { - d := df() - d.Reset() - d.Write(buf) - want := d.Sum(nil) - d.Reset() - for i := 0; i < len(buf); { - // Cycle through offsets which make a 137 byte sequence. - // Because 137 is prime this sequence should exercise all corner cases. - offsets := [17]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1} - for _, j := range offsets { - if v := len(buf) - i; v < j { - j = v - } - d.Write(buf[i : i+j]) - i += j - } - } - got := d.Sum(nil) - if !bytes.Equal(got, want) { - t.Errorf("Unaligned writes, implementation=%s, alg=%s\ngot %q, want %q", impl, alg, got, want) - } - } - }) -} - -// TestAppend checks that appending works when reallocation is necessary. -func TestAppend(t *testing.T) { - testUnalignedAndGeneric(t, func(impl string) { - d := New224() - - for capacity := 2; capacity <= 66; capacity += 64 { - // The first time around the loop, Sum will have to reallocate. - // The second time, it will not. - buf := make([]byte, 2, capacity) - d.Reset() - d.Write([]byte{0xcc}) - buf = d.Sum(buf) - expected := "0000DF70ADC49B2E76EEE3A6931B93FA41841C3AF2CDF5B32A18B5478C39" - if got := strings.ToUpper(hex.EncodeToString(buf)); got != expected { - t.Errorf("got %s, want %s", got, expected) - } - } - }) -} - -// TestAppendNoRealloc tests that appending works when no reallocation is necessary. -func TestAppendNoRealloc(t *testing.T) { - testUnalignedAndGeneric(t, func(impl string) { - buf := make([]byte, 1, 200) - d := New224() - d.Write([]byte{0xcc}) - buf = d.Sum(buf) - expected := "00DF70ADC49B2E76EEE3A6931B93FA41841C3AF2CDF5B32A18B5478C39" - if got := strings.ToUpper(hex.EncodeToString(buf)); got != expected { - t.Errorf("%s: got %s, want %s", impl, got, expected) - } - }) -} - -// TestSqueezing checks that squeezing the full output a single time produces -// the same output as repeatedly squeezing the instance. -func TestSqueezing(t *testing.T) { - testUnalignedAndGeneric(t, func(impl string) { - for functionName, newShakeHash := range testShakes { - d0 := newShakeHash() - d0.Write([]byte(testString)) - ref := make([]byte, 32) - d0.Read(ref) - - d1 := newShakeHash() - d1.Write([]byte(testString)) - var multiple []byte - for _ = range ref { - one := make([]byte, 1) - d1.Read(one) - multiple = append(multiple, one...) - } - if !bytes.Equal(ref, multiple) { - t.Errorf("%s (%s): squeezing %d bytes one at a time failed", functionName, impl, len(ref)) - } - } - }) -} - -// sequentialBytes produces a buffer of size consecutive bytes 0x00, 0x01, ..., used for testing. -func sequentialBytes(size int) []byte { - result := make([]byte, size) - for i := range result { - result[i] = byte(i) - } - return result -} - -// BenchmarkPermutationFunction measures the speed of the permutation function -// with no input data. -func BenchmarkPermutationFunction(b *testing.B) { - b.SetBytes(int64(200)) - var lanes [25]uint64 - for i := 0; i < b.N; i++ { - keccakF1600(&lanes) - } -} - -// benchmarkHash tests the speed to hash num buffers of buflen each. -func benchmarkHash(b *testing.B, h hash.Hash, size, num int) { - b.StopTimer() - h.Reset() - data := sequentialBytes(size) - b.SetBytes(int64(size * num)) - b.StartTimer() - - var state []byte - for i := 0; i < b.N; i++ { - for j := 0; j < num; j++ { - h.Write(data) - } - state = h.Sum(state[:0]) - } - b.StopTimer() - h.Reset() -} - -// benchmarkShake is specialized to the Shake instances, which don't -// require a copy on reading output. -func benchmarkShake(b *testing.B, h ShakeHash, size, num int) { - b.StopTimer() - h.Reset() - data := sequentialBytes(size) - d := make([]byte, 32) - - b.SetBytes(int64(size * num)) - b.StartTimer() - - for i := 0; i < b.N; i++ { - h.Reset() - for j := 0; j < num; j++ { - h.Write(data) - } - h.Read(d) - } -} - -func BenchmarkSha3_512_MTU(b *testing.B) { benchmarkHash(b, New512(), 1350, 1) } -func BenchmarkSha3_384_MTU(b *testing.B) { benchmarkHash(b, New384(), 1350, 1) } -func BenchmarkSha3_256_MTU(b *testing.B) { benchmarkHash(b, New256(), 1350, 1) } -func BenchmarkSha3_224_MTU(b *testing.B) { benchmarkHash(b, New224(), 1350, 1) } - -func BenchmarkShake128_MTU(b *testing.B) { benchmarkShake(b, NewShake128(), 1350, 1) } -func BenchmarkShake256_MTU(b *testing.B) { benchmarkShake(b, NewShake256(), 1350, 1) } -func BenchmarkShake256_16x(b *testing.B) { benchmarkShake(b, NewShake256(), 16, 1024) } -func BenchmarkShake256_1MiB(b *testing.B) { benchmarkShake(b, NewShake256(), 1024, 1024) } - -func BenchmarkSha3_512_1MiB(b *testing.B) { benchmarkHash(b, New512(), 1024, 1024) } - -func Example_sum() { - buf := []byte("some data to hash") - // A hash needs to be 64 bytes long to have 256-bit collision resistance. - h := make([]byte, 64) - // Compute a 64-byte hash of buf and put it in h. - ShakeSum256(h, buf) -} - -func Example_mac() { - k := []byte("this is a secret key; you should generate a strong random key that's at least 32 bytes long") - buf := []byte("and this is some data to authenticate") - // A MAC with 32 bytes of output has 256-bit security strength -- if you use at least a 32-byte-long key. - h := make([]byte, 32) - d := NewShake256() - // Write the key into the hash. - d.Write(k) - // Now write the data. - d.Write(buf) - // Read 32 bytes of output from the hash into h. - d.Read(h) -} diff --git a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/shake.go b/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/shake.go deleted file mode 100644 index 841f9860..00000000 --- a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/shake.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// This file defines the ShakeHash interface, and provides -// functions for creating SHAKE instances, as well as utility -// functions for hashing bytes to arbitrary-length output. - -import ( - "io" -) - -// ShakeHash defines the interface to hash functions that -// support arbitrary-length output. -type ShakeHash interface { - // Write absorbs more data into the hash's state. It panics if input is - // written to it after output has been read from it. - io.Writer - - // Read reads more output from the hash; reading affects the hash's - // state. (ShakeHash.Read is thus very different from Hash.Sum) - // It never returns an error. - io.Reader - - // Clone returns a copy of the ShakeHash in its current state. - Clone() ShakeHash - - // Reset resets the ShakeHash to its initial state. - Reset() -} - -func (d *state) Clone() ShakeHash { - return d.clone() -} - -// NewShake128 creates a new SHAKE128 variable-output-length ShakeHash. -// Its generic security strength is 128 bits against all attacks if at -// least 32 bytes of its output are used. -func NewShake128() ShakeHash { return &state{rate: 168, dsbyte: 0x1f} } - -// NewShake256 creates a new SHAKE128 variable-output-length ShakeHash. -// Its generic security strength is 256 bits against all attacks if -// at least 64 bytes of its output are used. -func NewShake256() ShakeHash { return &state{rate: 136, dsbyte: 0x1f} } - -// ShakeSum128 writes an arbitrary-length digest of data into hash. -func ShakeSum128(hash, data []byte) { - h := NewShake128() - h.Write(data) - h.Read(hash) -} - -// ShakeSum256 writes an arbitrary-length digest of data into hash. -func ShakeSum256(hash, data []byte) { - h := NewShake256() - h.Write(data) - h.Read(hash) -} diff --git a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/testdata/keccakKats.json.deflate b/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/testdata/keccakKats.json.deflate deleted file mode 100644 index 62e85ae24236b46c09e5cfa84c71c69f5cc33cf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521342 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%0DdSPIES;LF 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

;TQ8)#7l>4Snz*J)FMZ0Q-2>;ACWq)?04 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 z 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

nJLYnt<$PQi86UnxvK+ceSbB#mC5$ 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 diff --git a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/xor.go b/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/xor.go deleted file mode 100644 index d622979c..00000000 --- a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/xor.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !amd64,!386 appengine - -package sha3 - -var ( - xorIn = xorInGeneric - copyOut = copyOutGeneric - xorInUnaligned = xorInGeneric - copyOutUnaligned = copyOutGeneric -) - -const xorImplementationUnaligned = "generic" diff --git a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/xor_generic.go b/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/xor_generic.go deleted file mode 100644 index fd35f02e..00000000 --- a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/xor_generic.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -import "encoding/binary" - -// xorInGeneric xors the bytes in buf into the state; it -// makes no non-portable assumptions about memory layout -// or alignment. -func xorInGeneric(d *state, buf []byte) { - n := len(buf) / 8 - - for i := 0; i < n; i++ { - a := binary.LittleEndian.Uint64(buf) - d.a[i] ^= a - buf = buf[8:] - } -} - -// copyOutGeneric copies ulint64s to a byte buffer. -func copyOutGeneric(d *state, b []byte) { - for i := 0; len(b) >= 8; i++ { - binary.LittleEndian.PutUint64(b, d.a[i]) - b = b[8:] - } -} diff --git a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/xor_unaligned.go b/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/xor_unaligned.go deleted file mode 100644 index c7851a1d..00000000 --- a/vendor/gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3/xor_unaligned.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build amd64 386 -// +build !appengine - -package sha3 - -import "unsafe" - -func xorInUnaligned(d *state, buf []byte) { - bw := (*[maxRate / 8]uint64)(unsafe.Pointer(&buf[0])) - n := len(buf) - if n >= 72 { - d.a[0] ^= bw[0] - d.a[1] ^= bw[1] - d.a[2] ^= bw[2] - d.a[3] ^= bw[3] - d.a[4] ^= bw[4] - d.a[5] ^= bw[5] - d.a[6] ^= bw[6] - d.a[7] ^= bw[7] - d.a[8] ^= bw[8] - } - if n >= 104 { - d.a[9] ^= bw[9] - d.a[10] ^= bw[10] - d.a[11] ^= bw[11] - d.a[12] ^= bw[12] - } - if n >= 136 { - d.a[13] ^= bw[13] - d.a[14] ^= bw[14] - d.a[15] ^= bw[15] - d.a[16] ^= bw[16] - } - if n >= 144 { - d.a[17] ^= bw[17] - } - if n >= 168 { - d.a[18] ^= bw[18] - d.a[19] ^= bw[19] - d.a[20] ^= bw[20] - } -} - -func copyOutUnaligned(d *state, buf []byte) { - ab := (*[maxRate]uint8)(unsafe.Pointer(&d.a[0])) - copy(buf, ab[:]) -} - -var ( - xorIn = xorInUnaligned - copyOut = copyOutUnaligned -) - -const xorImplementationUnaligned = "unaligned" diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/LICENSE b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/LICENSE deleted file mode 100644 index f0e5c79e..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/LICENSE +++ /dev/null @@ -1,362 +0,0 @@ -Mozilla Public License, version 2.0 - -1. Definitions - -1.1. "Contributor" - - means each individual or legal entity that creates, contributes to the - creation of, or owns Covered Software. - -1.2. "Contributor Version" - - means the combination of the Contributions of others (if any) used by a - Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - - means Source Code Form to which the initial Contributor has attached the - notice in Exhibit A, the Executable Form of such Source Code Form, and - Modifications of such Source Code Form, in each case including portions - thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - a. that the initial Contributor has attached the notice described in - Exhibit B to the Covered Software; or - - b. that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the terms of - a Secondary License. - -1.6. "Executable Form" - - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - - means a work that combines Covered Software with other material, in a - separate file or files, that is not Covered Software. - -1.8. "License" - - means this document. - -1.9. "Licensable" - - means having the right to grant, to the maximum extent possible, whether - at the time of the initial grant or subsequently, any and all of the - rights conveyed by this License. - -1.10. "Modifications" - - means any of the following: - - a. any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered Software; or - - b. any new file in Source Code Form that contains any Covered Software. - -1.11. "Patent Claims" of a Contributor - - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the License, - by the making, using, selling, offering for sale, having made, import, - or transfer of either its Contributions or its Contributor Version. - -1.12. "Secondary License" - - means either the GNU General Public License, Version 2.0, the GNU Lesser - General Public License, Version 2.1, the GNU Affero General Public - License, Version 3.0, or any later versions of those licenses. - -1.13. "Source Code Form" - - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that controls, is - controlled by, or is under common control with You. For purposes of this - definition, "control" means (a) the power, direct or indirect, to cause - the direction or management of such entity, whether by contract or - otherwise, or (b) ownership of more than fifty percent (50%) of the - outstanding shares or beneficial ownership of such entity. - - -2. License Grants and Conditions - -2.1. Grants - - Each Contributor hereby grants You a world-wide, royalty-free, - non-exclusive license: - - a. under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - - b. under Patent Claims of such Contributor to make, use, sell, offer for - sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - - The licenses granted in Section 2.1 with respect to any Contribution - become effective for each Contribution on the date the Contributor first - distributes such Contribution. - -2.3. Limitations on Grant Scope - - The licenses granted in this Section 2 are the only rights granted under - this License. No additional rights or licenses will be implied from the - distribution or licensing of Covered Software under this License. - Notwithstanding Section 2.1(b) above, no patent license is granted by a - Contributor: - - a. for any code that a Contributor has removed from Covered Software; or - - b. for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - - c. under Patent Claims infringed by Covered Software in the absence of - its Contributions. - - This License does not grant any rights in the trademarks, service marks, - or logos of any Contributor (except as may be necessary to comply with - the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - - No Contributor makes additional grants as a result of Your choice to - distribute the Covered Software under a subsequent version of this - License (see Section 10.2) or under the terms of a Secondary License (if - permitted under the terms of Section 3.3). - -2.5. Representation - - Each Contributor represents that the Contributor believes its - Contributions are its original creation(s) or it has sufficient rights to - grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - - This License is not intended to limit any rights You have under - applicable copyright doctrines of fair use, fair dealing, or other - equivalents. - -2.7. Conditions - - Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in - Section 2.1. - - -3. Responsibilities - -3.1. Distribution of Source Form - - All distribution of Covered Software in Source Code Form, including any - Modifications that You create or to which You contribute, must be under - the terms of this License. You must inform recipients that the Source - Code Form of the Covered Software is governed by the terms of this - License, and how they can obtain a copy of this License. You may not - attempt to alter or restrict the recipients' rights in the Source Code - Form. - -3.2. Distribution of Executable Form - - If You distribute Covered Software in Executable Form then: - - a. such Covered Software must also be made available in Source Code Form, - as described in Section 3.1, and You must inform recipients of the - Executable Form how they can obtain a copy of such Source Code Form by - reasonable means in a timely manner, at a charge no more than the cost - of distribution to the recipient; and - - b. You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter the - recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - - You may create and distribute a Larger Work under terms of Your choice, - provided that You also comply with the requirements of this License for - the Covered Software. If the Larger Work is a combination of Covered - Software with a work governed by one or more Secondary Licenses, and the - Covered Software is not Incompatible With Secondary Licenses, this - License permits You to additionally distribute such Covered Software - under the terms of such Secondary License(s), so that the recipient of - the Larger Work may, at their option, further distribute the Covered - Software under the terms of either this License or such Secondary - License(s). - -3.4. Notices - - You may not remove or alter the substance of any license notices - (including copyright notices, patent notices, disclaimers of warranty, or - limitations of liability) contained within the Source Code Form of the - Covered Software, except that You may alter any license notices to the - extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - - You may choose to offer, and to charge a fee for, warranty, support, - indemnity or liability obligations to one or more recipients of Covered - Software. However, You may do so only on Your own behalf, and not on - behalf of any Contributor. You must make it absolutely clear that any - such warranty, support, indemnity, or liability obligation is offered by - You alone, and You hereby agree to indemnify every Contributor for any - liability incurred by such Contributor as a result of warranty, support, - indemnity or liability terms You offer. You may include additional - disclaimers of warranty and limitations of liability specific to any - jurisdiction. - -4. Inability to Comply Due to Statute or Regulation - - If it is impossible for You to comply with any of the terms of this License - with respect to some or all of the Covered Software due to statute, - judicial order, or regulation then You must: (a) comply with the terms of - this License to the maximum extent possible; and (b) describe the - limitations and the code they affect. Such description must be placed in a - text file included with all distributions of the Covered Software under - this License. Except to the extent prohibited by statute or regulation, - such description must be sufficiently detailed for a recipient of ordinary - skill to be able to understand it. - -5. Termination - -5.1. The rights granted under this License will terminate automatically if You - fail to comply with any of its terms. However, if You become compliant, - then the rights granted under this License from a particular Contributor - are reinstated (a) provisionally, unless and until such Contributor - explicitly and finally terminates Your grants, and (b) on an ongoing - basis, if such Contributor fails to notify You of the non-compliance by - some reasonable means prior to 60 days after You have come back into - compliance. Moreover, Your grants from a particular Contributor are - reinstated on an ongoing basis if such Contributor notifies You of the - non-compliance by some reasonable means, this is the first time You have - received notice of non-compliance with this License from such - Contributor, and You become compliant prior to 30 days after Your receipt - of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent - infringement claim (excluding declaratory judgment actions, - counter-claims, and cross-claims) alleging that a Contributor Version - directly or indirectly infringes any patent, then the rights granted to - You by any and all Contributors for the Covered Software under Section - 2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user - license agreements (excluding distributors and resellers) which have been - validly granted by You or Your distributors under this License prior to - termination shall survive termination. - -6. Disclaimer of Warranty - - Covered Software is provided under this License on an "as is" basis, - without warranty of any kind, either expressed, implied, or statutory, - including, without limitation, warranties that the Covered Software is free - of defects, merchantable, fit for a particular purpose or non-infringing. - The entire risk as to the quality and performance of the Covered Software - is with You. Should any Covered Software prove defective in any respect, - You (not any Contributor) assume the cost of any necessary servicing, - repair, or correction. This disclaimer of warranty constitutes an essential - part of this License. No use of any Covered Software is authorized under - this License except under this disclaimer. - -7. Limitation of Liability - - Under no circumstances and under no legal theory, whether tort (including - negligence), contract, or otherwise, shall any Contributor, or anyone who - distributes Covered Software as permitted above, be liable to You for any - direct, indirect, special, incidental, or consequential damages of any - character including, without limitation, damages for lost profits, loss of - goodwill, work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses, even if such party shall have been - informed of the possibility of such damages. This limitation of liability - shall not apply to liability for death or personal injury resulting from - such party's negligence to the extent applicable law prohibits such - limitation. Some jurisdictions do not allow the exclusion or limitation of - incidental or consequential damages, so this exclusion and limitation may - not apply to You. - -8. Litigation - - Any litigation relating to this License may be brought only in the courts - of a jurisdiction where the defendant maintains its principal place of - business and such litigation shall be governed by laws of that - jurisdiction, without reference to its conflict-of-law provisions. Nothing - in this Section shall prevent a party's ability to bring cross-claims or - counter-claims. - -9. Miscellaneous - - This License represents the complete agreement concerning the subject - matter hereof. If any provision of this License is held to be - unenforceable, such provision shall be reformed only to the extent - necessary to make it enforceable. Any law or regulation which provides that - the language of a contract shall be construed against the drafter shall not - be used to construe this License against a Contributor. - - -10. Versions of the License - -10.1. New Versions - - Mozilla Foundation is the license steward. Except as provided in Section - 10.3, no one other than the license steward has the right to modify or - publish new versions of this License. Each version will be given a - distinguishing version number. - -10.2. Effect of New Versions - - You may distribute the Covered Software under the terms of the version - of the License under which You originally received the Covered Software, - or under the terms of any subsequent version published by the license - steward. - -10.3. Modified Versions - - If you create software not governed by this License, and you want to - create a new license for such software, you may create and use a - modified version of this License if you rename the license and remove - any references to the name of the license steward (except to note that - such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary - Licenses If You choose to distribute Source Code Form that is - Incompatible With Secondary Licenses under the terms of this version of - the License, the notice described in Exhibit B of this License must be - attached. - -Exhibit A - Source Code Form License Notice - - This Source Code Form is subject to the - terms of the Mozilla Public License, v. - 2.0. If a copy of the MPL was not - distributed with this file, You can - obtain one at - http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular file, -then You may include the notice in a location (such as a LICENSE file in a -relevant directory) where a recipient would be likely to look for such a -notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice - - This Source Code Form is "Incompatible - With Secondary Licenses", as defined by - the Mozilla Public License, v. 2.0. \ No newline at end of file diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/README.md b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/README.md deleted file mode 100644 index d4db7fc9..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/README.md +++ /dev/null @@ -1,86 +0,0 @@ -# Yamux - -Yamux (Yet another Multiplexer) is a multiplexing library for Golang. -It relies on an underlying connection to provide reliability -and ordering, such as TCP or Unix domain sockets, and provides -stream-oriented multiplexing. It is inspired by SPDY but is not -interoperable with it. - -Yamux features include: - -* Bi-directional streams - * Streams can be opened by either client or server - * Useful for NAT traversal - * Server-side push support -* Flow control - * Avoid starvation - * Back-pressure to prevent overwhelming a receiver -* Keep Alives - * Enables persistent connections over a load balancer -* Efficient - * Enables thousands of logical streams with low overhead - -## Documentation - -For complete documentation, see the associated [Godoc](http://godoc.org/github.com/hashicorp/yamux). - -## Specification - -The full specification for Yamux is provided in the `spec.md` file. -It can be used as a guide to implementors of interoperable libraries. - -## Usage - -Using Yamux is remarkably simple: - -```go - -func client() { - // Get a TCP connection - conn, err := net.Dial(...) - if err != nil { - panic(err) - } - - // Setup client side of yamux - session, err := yamux.Client(conn, nil) - if err != nil { - panic(err) - } - - // Open a new stream - stream, err := session.Open() - if err != nil { - panic(err) - } - - // Stream implements net.Conn - stream.Write([]byte("ping")) -} - -func server() { - // Accept a TCP connection - conn, err := listener.Accept() - if err != nil { - panic(err) - } - - // Setup server side of yamux - session, err := yamux.Server(conn, nil) - if err != nil { - panic(err) - } - - // Accept a stream - stream, err := session.Accept() - if err != nil { - panic(err) - } - - // Listen for a message - buf := make([]byte, 4) - stream.Read(buf) -} - -``` - diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/addr.go b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/addr.go deleted file mode 100644 index be6ebca9..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/addr.go +++ /dev/null @@ -1,60 +0,0 @@ -package yamux - -import ( - "fmt" - "net" -) - -// hasAddr is used to get the address from the underlying connection -type hasAddr interface { - LocalAddr() net.Addr - RemoteAddr() net.Addr -} - -// yamuxAddr is used when we cannot get the underlying address -type yamuxAddr struct { - Addr string -} - -func (*yamuxAddr) Network() string { - return "yamux" -} - -func (y *yamuxAddr) String() string { - return fmt.Sprintf("yamux:%s", y.Addr) -} - -// Addr is used to get the address of the listener. -func (s *Session) Addr() net.Addr { - return s.LocalAddr() -} - -// LocalAddr is used to get the local address of the -// underlying connection. -func (s *Session) LocalAddr() net.Addr { - addr, ok := s.conn.(hasAddr) - if !ok { - return &yamuxAddr{"local"} - } - return addr.LocalAddr() -} - -// RemoteAddr is used to get the address of remote end -// of the underlying connection -func (s *Session) RemoteAddr() net.Addr { - addr, ok := s.conn.(hasAddr) - if !ok { - return &yamuxAddr{"remote"} - } - return addr.RemoteAddr() -} - -// LocalAddr returns the local address -func (s *Stream) LocalAddr() net.Addr { - return s.session.LocalAddr() -} - -// LocalAddr returns the remote address -func (s *Stream) RemoteAddr() net.Addr { - return s.session.RemoteAddr() -} diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/bench_test.go b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/bench_test.go deleted file mode 100644 index 4377b839..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/bench_test.go +++ /dev/null @@ -1,81 +0,0 @@ -package yamux - -import ( - "testing" -) - -func BenchmarkPing(b *testing.B) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - for i := 0; i < b.N; i++ { - rtt, err := client.Ping() - if err != nil { - b.Fatalf("err: %v", err) - } - if rtt == 0 { - b.Fatalf("bad: %v", rtt) - } - } -} - -func BenchmarkAccept(b *testing.B) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - go func() { - for i := 0; i < b.N; i++ { - stream, err := server.AcceptStream() - if err != nil { - return - } - stream.Close() - } - }() - - for i := 0; i < b.N; i++ { - stream, err := client.Open() - if err != nil { - b.Fatalf("err: %v", err) - } - stream.Close() - } -} - -func BenchmarkSendRecv(b *testing.B) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - sendBuf := make([]byte, 512) - recvBuf := make([]byte, 512) - - doneCh := make(chan struct{}) - go func() { - stream, err := server.AcceptStream() - if err != nil { - return - } - defer stream.Close() - for i := 0; i < b.N; i++ { - if _, err := stream.Read(recvBuf); err != nil { - b.Fatalf("err: %v", err) - } - } - close(doneCh) - }() - - stream, err := client.Open() - if err != nil { - b.Fatalf("err: %v", err) - } - defer stream.Close() - for i := 0; i < b.N; i++ { - if _, err := stream.Write(sendBuf); err != nil { - b.Fatalf("err: %v", err) - } - } - <-doneCh -} diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/const.go b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/const.go deleted file mode 100644 index 86dd4d1b..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/const.go +++ /dev/null @@ -1,150 +0,0 @@ -package yamux - -import ( - "encoding/binary" - "fmt" -) - -var ( - // ErrInvalidVersion means we received a frame with an - // invalid version - ErrInvalidVersion = fmt.Errorf("invalid protocol version") - - // ErrInvalidMsgType means we received a frame with an - // invalid message type - ErrInvalidMsgType = fmt.Errorf("invalid msg type") - - // ErrSessionShutdown is used if there is a shutdown during - // an operation - ErrSessionShutdown = fmt.Errorf("session shutdown") - - // ErrStreamsExhausted is returned if we have no more - // stream ids to issue - ErrStreamsExhausted = fmt.Errorf("streams exhausted") - - // ErrDuplicateStream is used if a duplicate stream is - // opened inbound - ErrDuplicateStream = fmt.Errorf("duplicate stream initiated") - - // ErrReceiveWindowExceeded indicates the window was exceeded - ErrRecvWindowExceeded = fmt.Errorf("recv window exceeded") - - // ErrTimeout is used when we reach an IO deadline - ErrTimeout = fmt.Errorf("i/o deadline reached") - - // ErrStreamClosed is returned when using a closed stream - ErrStreamClosed = fmt.Errorf("stream closed") - - // ErrUnexpectedFlag is set when we get an unexpected flag - ErrUnexpectedFlag = fmt.Errorf("unexpected flag") - - // ErrRemoteGoAway is used when we get a go away from the other side - ErrRemoteGoAway = fmt.Errorf("remote end is not accepting connections") - - // ErrConnectionReset is sent if a stream is reset. This can happen - // if the backlog is exceeded, or if there was a remote GoAway. - ErrConnectionReset = fmt.Errorf("connection reset") -) - -const ( - // protoVersion is the only version we support - protoVersion uint8 = 0 -) - -const ( - // Data is used for data frames. They are followed - // by length bytes worth of payload. - typeData uint8 = iota - - // WindowUpdate is used to change the window of - // a given stream. The length indicates the delta - // update to the window. - typeWindowUpdate - - // Ping is sent as a keep-alive or to measure - // the RTT. The StreamID and Length value are echoed - // back in the response. - typePing - - // GoAway is sent to terminate a session. The StreamID - // should be 0 and the length is an error code. - typeGoAway -) - -const ( - // SYN is sent to signal a new stream. May - // be sent with a data payload - flagSYN uint16 = 1 << iota - - // ACK is sent to acknowledge a new stream. May - // be sent with a data payload - flagACK - - // FIN is sent to half-close the given stream. - // May be sent with a data payload. - flagFIN - - // RST is used to hard close a given stream. - flagRST -) - -const ( - // initialStreamWindow is the initial stream window size - initialStreamWindow uint32 = 256 * 1024 -) - -const ( - // goAwayNormal is sent on a normal termination - goAwayNormal uint32 = iota - - // goAwayProtoErr sent on a protocol error - goAwayProtoErr - - // goAwayInternalErr sent on an internal error - goAwayInternalErr -) - -const ( - sizeOfVersion = 1 - sizeOfType = 1 - sizeOfFlags = 2 - sizeOfStreamID = 4 - sizeOfLength = 4 - headerSize = sizeOfVersion + sizeOfType + sizeOfFlags + - sizeOfStreamID + sizeOfLength -) - -type header []byte - -func (h header) Version() uint8 { - return h[0] -} - -func (h header) MsgType() uint8 { - return h[1] -} - -func (h header) Flags() uint16 { - return binary.BigEndian.Uint16(h[2:4]) -} - -func (h header) StreamID() uint32 { - return binary.BigEndian.Uint32(h[4:8]) -} - -func (h header) Length() uint32 { - return binary.BigEndian.Uint32(h[8:12]) -} - -func (h header) String() string { - return fmt.Sprintf("Vsn:%d Type:%d Flags:%d StreamID:%d Length:%d", - h.Version(), h.MsgType(), h.Flags(), h.StreamID(), h.Length()) -} - -func (h header) encode(msgType uint8, flags uint16, streamID uint32, length uint32) { - h[0] = protoVersion - h[1] = msgType - binary.BigEndian.PutUint16(h[2:4], flags) - binary.BigEndian.PutUint32(h[4:8], streamID) - binary.BigEndian.PutUint32(h[8:12], length) -} diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/const_test.go b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/const_test.go deleted file mode 100644 index 153da18b..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/const_test.go +++ /dev/null @@ -1,72 +0,0 @@ -package yamux - -import ( - "testing" -) - -func TestConst(t *testing.T) { - if protoVersion != 0 { - t.Fatalf("bad: %v", protoVersion) - } - - if typeData != 0 { - t.Fatalf("bad: %v", typeData) - } - if typeWindowUpdate != 1 { - t.Fatalf("bad: %v", typeWindowUpdate) - } - if typePing != 2 { - t.Fatalf("bad: %v", typePing) - } - if typeGoAway != 3 { - t.Fatalf("bad: %v", typeGoAway) - } - - if flagSYN != 1 { - t.Fatalf("bad: %v", flagSYN) - } - if flagACK != 2 { - t.Fatalf("bad: %v", flagACK) - } - if flagFIN != 4 { - t.Fatalf("bad: %v", flagFIN) - } - if flagRST != 8 { - t.Fatalf("bad: %v", flagRST) - } - - if goAwayNormal != 0 { - t.Fatalf("bad: %v", goAwayNormal) - } - if goAwayProtoErr != 1 { - t.Fatalf("bad: %v", goAwayProtoErr) - } - if goAwayInternalErr != 2 { - t.Fatalf("bad: %v", goAwayInternalErr) - } - - if headerSize != 12 { - t.Fatalf("bad header size") - } -} - -func TestEncodeDecode(t *testing.T) { - hdr := header(make([]byte, headerSize)) - hdr.encode(typeWindowUpdate, flagACK|flagRST, 1234, 4321) - - if hdr.Version() != protoVersion { - t.Fatalf("bad: %v", hdr) - } - if hdr.MsgType() != typeWindowUpdate { - t.Fatalf("bad: %v", hdr) - } - if hdr.Flags() != flagACK|flagRST { - t.Fatalf("bad: %v", hdr) - } - if hdr.StreamID() != 1234 { - t.Fatalf("bad: %v", hdr) - } - if hdr.Length() != 4321 { - t.Fatalf("bad: %v", hdr) - } -} diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/mux.go b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/mux.go deleted file mode 100644 index daec1d19..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/mux.go +++ /dev/null @@ -1,80 +0,0 @@ -package yamux - -import ( - "fmt" - "io" - "os" - "time" -) - -// Config is used to tune the Yamux session -type Config struct { - // AcceptBacklog is used to limit how many streams may be - // waiting an accept. - AcceptBacklog int - - // EnableKeepalive is used to do a period keep alive - // messages using a ping. - EnableKeepAlive bool - - // KeepAliveInterval is how often to perform the keep alive - KeepAliveInterval time.Duration - - // MaxStreamWindowSize is used to control the maximum - // window size that we allow for a stream. - MaxStreamWindowSize uint32 - - // LogOutput is used to control the log destination - LogOutput io.Writer -} - -// DefaultConfig is used to return a default configuration -func DefaultConfig() *Config { - return &Config{ - AcceptBacklog: 256, - EnableKeepAlive: true, - KeepAliveInterval: 30 * time.Second, - MaxStreamWindowSize: initialStreamWindow, - LogOutput: os.Stderr, - } -} - -// VerifyConfig is used to verify the sanity of configuration -func VerifyConfig(config *Config) error { - if config.AcceptBacklog <= 0 { - return fmt.Errorf("backlog must be positive") - } - if config.KeepAliveInterval == 0 { - return fmt.Errorf("keep-alive interval must be positive") - } - if config.MaxStreamWindowSize < initialStreamWindow { - return fmt.Errorf("MaxStreamWindowSize must be larger than %d", initialStreamWindow) - } - return nil -} - -// Server is used to initialize a new server-side connection. -// There must be at most one server-side connection. If a nil config is -// provided, the DefaultConfiguration will be used. -func Server(conn io.ReadWriteCloser, config *Config) (*Session, error) { - if config == nil { - config = DefaultConfig() - } - if err := VerifyConfig(config); err != nil { - return nil, err - } - return newSession(config, conn, false), nil -} - -// Client is used to initialize a new client-side connection. -// There must be at most one client-side connection. -func Client(conn io.ReadWriteCloser, config *Config) (*Session, error) { - if config == nil { - config = DefaultConfig() - } - - if err := VerifyConfig(config); err != nil { - return nil, err - } - return newSession(config, conn, true), nil -} diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/package.json b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/package.json deleted file mode 100644 index ae5db421..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "yamux", - "author": "whyrusleeping", - "version": "1.0.0", - "language": "go", - "gx": { - "dvcsimport": "github.com/hashicorp/yamux" - } -} \ No newline at end of file diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/session.go b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/session.go deleted file mode 100644 index 56ff9129..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/session.go +++ /dev/null @@ -1,552 +0,0 @@ -package yamux - -import ( - "bufio" - "fmt" - "io" - "io/ioutil" - "log" - "math" - "net" - "strings" - "sync" - "sync/atomic" - "time" -) - -// Session is used to wrap a reliable ordered connection and to -// multiplex it into multiple streams. -type Session struct { - // remoteGoAway indicates the remote side does - // not want futher connections. Must be first for alignment. - remoteGoAway int32 - - // localGoAway indicates that we should stop - // accepting futher connections. Must be first for alignment. - localGoAway int32 - - // nextStreamID is the next stream we should - // send. This depends if we are a client/server. - nextStreamID uint32 - - // config holds our configuration - config *Config - - // logger is used for our logs - logger *log.Logger - - // conn is the underlying connection - conn io.ReadWriteCloser - - // bufRead is a buffered reader - bufRead *bufio.Reader - - // pings is used to track inflight pings - pings map[uint32]chan struct{} - pingID uint32 - pingLock sync.Mutex - - // streams maps a stream id to a stream - streams map[uint32]*Stream - streamLock sync.Mutex - - // synCh acts like a semaphore. It is sized to the AcceptBacklog which - // is assumed to be symmetric between the client and server. This allows - // the client to avoid exceeding the backlog and instead blocks the open. - synCh chan struct{} - - // acceptCh is used to pass ready streams to the client - acceptCh chan *Stream - - // sendCh is used to mark a stream as ready to send, - // or to send a header out directly. - sendCh chan sendReady - - // recvDoneCh is closed when recv() exits to avoid a race - // between stream registration and stream shutdown - recvDoneCh chan struct{} - - // shutdown is used to safely close a session - shutdown bool - shutdownErr error - shutdownCh chan struct{} - shutdownLock sync.Mutex -} - -// sendReady is used to either mark a stream as ready -// or to directly send a header -type sendReady struct { - Hdr []byte - Body io.Reader - Err chan error -} - -// newSession is used to construct a new session -func newSession(config *Config, conn io.ReadWriteCloser, client bool) *Session { - s := &Session{ - config: config, - logger: log.New(config.LogOutput, "", log.LstdFlags), - conn: conn, - bufRead: bufio.NewReader(conn), - pings: make(map[uint32]chan struct{}), - streams: make(map[uint32]*Stream), - synCh: make(chan struct{}, config.AcceptBacklog), - acceptCh: make(chan *Stream, config.AcceptBacklog), - sendCh: make(chan sendReady, 64), - recvDoneCh: make(chan struct{}), - shutdownCh: make(chan struct{}), - } - if client { - s.nextStreamID = 1 - } else { - s.nextStreamID = 2 - } - go s.recv() - go s.send() - if config.EnableKeepAlive { - go s.keepalive() - } - return s -} - -// IsClosed does a safe check to see if we have shutdown -func (s *Session) IsClosed() bool { - select { - case <-s.shutdownCh: - return true - default: - return false - } -} - -// NumStreams returns the number of currently open streams -func (s *Session) NumStreams() int { - s.streamLock.Lock() - num := len(s.streams) - s.streamLock.Unlock() - return num -} - -// Open is used to create a new stream as a net.Conn -func (s *Session) Open() (net.Conn, error) { - return s.OpenStream() -} - -// OpenStream is used to create a new stream -func (s *Session) OpenStream() (*Stream, error) { - if s.IsClosed() { - return nil, ErrSessionShutdown - } - if atomic.LoadInt32(&s.remoteGoAway) == 1 { - return nil, ErrRemoteGoAway - } - - // Block if we have too many inflight SYNs - select { - case s.synCh <- struct{}{}: - case <-s.shutdownCh: - return nil, ErrSessionShutdown - } - -GET_ID: - // Get and ID, and check for stream exhaustion - id := atomic.LoadUint32(&s.nextStreamID) - if id >= math.MaxUint32-1 { - return nil, ErrStreamsExhausted - } - if !atomic.CompareAndSwapUint32(&s.nextStreamID, id, id+2) { - goto GET_ID - } - - // Register the stream - stream := newStream(s, id, streamInit) - s.streamLock.Lock() - s.streams[id] = stream - s.streamLock.Unlock() - - // Send the window update to create - if err := stream.sendWindowUpdate(); err != nil { - return nil, err - } - return stream, nil -} - -// Accept is used to block until the next available stream -// is ready to be accepted. -func (s *Session) Accept() (net.Conn, error) { - return s.AcceptStream() -} - -// AcceptStream is used to block until the next available stream -// is ready to be accepted. -func (s *Session) AcceptStream() (*Stream, error) { - select { - case stream := <-s.acceptCh: - if err := stream.sendWindowUpdate(); err != nil { - return nil, err - } - return stream, nil - case <-s.shutdownCh: - return nil, s.shutdownErr - } -} - -// Close is used to close the session and all streams. -// Attempts to send a GoAway before closing the connection. -func (s *Session) Close() error { - s.shutdownLock.Lock() - defer s.shutdownLock.Unlock() - - if s.shutdown { - return nil - } - s.shutdown = true - if s.shutdownErr == nil { - s.shutdownErr = ErrSessionShutdown - } - close(s.shutdownCh) - s.conn.Close() - <-s.recvDoneCh - - s.streamLock.Lock() - defer s.streamLock.Unlock() - for _, stream := range s.streams { - stream.forceClose() - } - return nil -} - -// exitErr is used to handle an error that is causing the -// session to terminate. -func (s *Session) exitErr(err error) { - s.shutdownLock.Lock() - if s.shutdownErr == nil { - s.shutdownErr = err - } - s.shutdownLock.Unlock() - s.Close() -} - -// GoAway can be used to prevent accepting further -// connections. It does not close the underlying conn. -func (s *Session) GoAway() error { - return s.waitForSend(s.goAway(goAwayNormal), nil) -} - -// goAway is used to send a goAway message -func (s *Session) goAway(reason uint32) header { - atomic.SwapInt32(&s.localGoAway, 1) - hdr := header(make([]byte, headerSize)) - hdr.encode(typeGoAway, 0, 0, reason) - return hdr -} - -// Ping is used to measure the RTT response time -func (s *Session) Ping() (time.Duration, error) { - // Get a channel for the ping - ch := make(chan struct{}) - - // Get a new ping id, mark as pending - s.pingLock.Lock() - id := s.pingID - s.pingID++ - s.pings[id] = ch - s.pingLock.Unlock() - - // Send the ping request - hdr := header(make([]byte, headerSize)) - hdr.encode(typePing, flagSYN, 0, id) - if err := s.waitForSend(hdr, nil); err != nil { - return 0, err - } - - // Wait for a response - start := time.Now() - select { - case <-ch: - case <-s.shutdownCh: - return 0, ErrSessionShutdown - } - - // Compute the RTT - return time.Now().Sub(start), nil -} - -// keepalive is a long running goroutine that periodically does -// a ping to keep the connection alive. -func (s *Session) keepalive() { - for { - select { - case <-time.After(s.config.KeepAliveInterval): - s.Ping() - case <-s.shutdownCh: - return - } - } -} - -// waitForSendErr waits to send a header, checking for a potential shutdown -func (s *Session) waitForSend(hdr header, body io.Reader) error { - errCh := make(chan error, 1) - return s.waitForSendErr(hdr, body, errCh) -} - -// waitForSendErr waits to send a header, checking for a potential shutdown -func (s *Session) waitForSendErr(hdr header, body io.Reader, errCh chan error) error { - ready := sendReady{Hdr: hdr, Body: body, Err: errCh} - select { - case s.sendCh <- ready: - case <-s.shutdownCh: - return ErrSessionShutdown - } - select { - case err := <-errCh: - return err - case <-s.shutdownCh: - return ErrSessionShutdown - } -} - -// sendNoWait does a send without waiting -func (s *Session) sendNoWait(hdr header) error { - select { - case s.sendCh <- sendReady{Hdr: hdr}: - return nil - case <-s.shutdownCh: - return ErrSessionShutdown - } -} - -// send is a long running goroutine that sends data -func (s *Session) send() { - for { - select { - case ready := <-s.sendCh: - // Send a header if ready - if ready.Hdr != nil { - sent := 0 - for sent < len(ready.Hdr) { - n, err := s.conn.Write(ready.Hdr[sent:]) - if err != nil { - s.logger.Printf("[ERR] yamux: Failed to write header: %v", err) - asyncSendErr(ready.Err, err) - s.exitErr(err) - return - } - sent += n - } - } - - // Send data from a body if given - if ready.Body != nil { - _, err := io.Copy(s.conn, ready.Body) - if err != nil { - s.logger.Printf("[ERR] yamux: Failed to write body: %v", err) - asyncSendErr(ready.Err, err) - s.exitErr(err) - return - } - } - - // No error, successful send - asyncSendErr(ready.Err, nil) - case <-s.shutdownCh: - return - } - } -} - -// recv is a long running goroutine that accepts new data -func (s *Session) recv() { - if err := s.recvLoop(); err != nil { - s.exitErr(err) - } -} - -// recvLoop continues to receive data until a fatal error is encountered -func (s *Session) recvLoop() error { - defer close(s.recvDoneCh) - hdr := header(make([]byte, headerSize)) - var handler func(header) error - for { - // Read the header - if _, err := io.ReadFull(s.bufRead, hdr); err != nil { - if err != io.EOF && !strings.Contains(err.Error(), "closed") && !strings.Contains(err.Error(), "reset by peer") { - s.logger.Printf("[ERR] yamux: Failed to read header: %v", err) - } - return err - } - - // Verify the version - if hdr.Version() != protoVersion { - s.logger.Printf("[ERR] yamux: Invalid protocol version: %d", hdr.Version()) - return ErrInvalidVersion - } - - // Switch on the type - switch hdr.MsgType() { - case typeData: - handler = s.handleStreamMessage - case typeWindowUpdate: - handler = s.handleStreamMessage - case typeGoAway: - handler = s.handleGoAway - case typePing: - handler = s.handlePing - default: - return ErrInvalidMsgType - } - - // Invoke the handler - if err := handler(hdr); err != nil { - return err - } - } -} - -// handleStreamMessage handles either a data or window update frame -func (s *Session) handleStreamMessage(hdr header) error { - // Check for a new stream creation - id := hdr.StreamID() - flags := hdr.Flags() - if flags&flagSYN == flagSYN { - if err := s.incomingStream(id); err != nil { - return err - } - } - - // Get the stream - s.streamLock.Lock() - stream := s.streams[id] - s.streamLock.Unlock() - - // If we do not have a stream, likely we sent a RST - if stream == nil { - // Drain any data on the wire - if hdr.MsgType() == typeData && hdr.Length() > 0 { - s.logger.Printf("[WARN] yamux: Discarding data for stream: %d", id) - if _, err := io.CopyN(ioutil.Discard, s.bufRead, int64(hdr.Length())); err != nil { - s.logger.Printf("[ERR] yamux: Failed to discard data: %v", err) - return nil - } - } else { - s.logger.Printf("[WARN] yamux: frame for missing stream: %v", hdr) - } - return nil - } - - // Check if this is a window update - if hdr.MsgType() == typeWindowUpdate { - if err := stream.incrSendWindow(hdr, flags); err != nil { - s.sendNoWait(s.goAway(goAwayProtoErr)) - return err - } - return nil - } - - // Read the new data - if err := stream.readData(hdr, flags, s.bufRead); err != nil { - s.sendNoWait(s.goAway(goAwayProtoErr)) - return err - } - return nil -} - -// handlePing is invokde for a typePing frame -func (s *Session) handlePing(hdr header) error { - flags := hdr.Flags() - pingID := hdr.Length() - - // Check if this is a query, respond back - if flags&flagSYN == flagSYN { - hdr := header(make([]byte, headerSize)) - hdr.encode(typePing, flagACK, 0, pingID) - s.sendNoWait(hdr) - return nil - } - - // Handle a response - s.pingLock.Lock() - ch := s.pings[pingID] - if ch != nil { - delete(s.pings, pingID) - close(ch) - } - s.pingLock.Unlock() - return nil -} - -// handleGoAway is invokde for a typeGoAway frame -func (s *Session) handleGoAway(hdr header) error { - code := hdr.Length() - switch code { - case goAwayNormal: - atomic.SwapInt32(&s.remoteGoAway, 1) - case goAwayProtoErr: - s.logger.Printf("[ERR] yamux: received protocol error go away") - return fmt.Errorf("yamux protocol error") - case goAwayInternalErr: - s.logger.Printf("[ERR] yamux: received internal error go away") - return fmt.Errorf("remote yamux internal error") - default: - s.logger.Printf("[ERR] yamux: received unexpected go away") - return fmt.Errorf("unexpected go away received") - } - return nil -} - -// incomingStream is used to create a new incoming stream -func (s *Session) incomingStream(id uint32) error { - // Reject immediately if we are doing a go away - if atomic.LoadInt32(&s.localGoAway) == 1 { - hdr := header(make([]byte, headerSize)) - hdr.encode(typeWindowUpdate, flagRST, id, 0) - return s.sendNoWait(hdr) - } - - // Allocate a new stream - stream := newStream(s, id, streamSYNReceived) - - s.streamLock.Lock() - defer s.streamLock.Unlock() - - // Check if stream already exists - if _, ok := s.streams[id]; ok { - s.logger.Printf("[ERR] yamux: duplicate stream declared") - s.sendNoWait(s.goAway(goAwayProtoErr)) - return ErrDuplicateStream - } - - // Register the stream - s.streams[id] = stream - - // Check if we've exceeded the backlog - select { - case s.acceptCh <- stream: - return nil - default: - // Backlog exceeded! RST the stream - s.logger.Printf("[WARN] yamux: backlog exceeded, forcing connection reset") - delete(s.streams, id) - stream.sendHdr.encode(typeWindowUpdate, flagRST, id, 0) - return s.sendNoWait(stream.sendHdr) - } -} - -// closeStream is used to close a stream once both sides have -// issued a close. -func (s *Session) closeStream(id uint32) { - s.streamLock.Lock() - delete(s.streams, id) - s.streamLock.Unlock() -} - -// establishStream is used to mark a stream that was in the -// SYN Sent state as established. -func (s *Session) establishStream() { - select { - case <-s.synCh: - default: - panic("established stream without inflight syn") - } -} diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/session_test.go b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/session_test.go deleted file mode 100644 index 85d0ffab..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/session_test.go +++ /dev/null @@ -1,786 +0,0 @@ -package yamux - -import ( - "bytes" - "fmt" - "io" - "io/ioutil" - "runtime" - "sync" - "testing" - "time" -) - -type pipeConn struct { - reader *io.PipeReader - writer *io.PipeWriter -} - -func (p *pipeConn) Read(b []byte) (int, error) { - return p.reader.Read(b) -} - -func (p *pipeConn) Write(b []byte) (int, error) { - return p.writer.Write(b) -} - -func (p *pipeConn) Close() error { - p.reader.Close() - return p.writer.Close() -} - -func testConn() (io.ReadWriteCloser, io.ReadWriteCloser) { - read1, write1 := io.Pipe() - read2, write2 := io.Pipe() - return &pipeConn{read1, write2}, &pipeConn{read2, write1} -} - -func testClientServer() (*Session, *Session) { - conf := DefaultConfig() - conf.AcceptBacklog = 64 - conf.KeepAliveInterval = 100 * time.Millisecond - return testClientServerConfig(conf) -} - -func testClientServerConfig(conf *Config) (*Session, *Session) { - conn1, conn2 := testConn() - client, _ := Client(conn1, conf) - server, _ := Server(conn2, conf) - return client, server -} - -func TestPing(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - rtt, err := client.Ping() - if err != nil { - t.Fatalf("err: %v", err) - } - if rtt == 0 { - t.Fatalf("bad: %v", rtt) - } - - rtt, err = server.Ping() - if err != nil { - t.Fatalf("err: %v", err) - } - if rtt == 0 { - t.Fatalf("bad: %v", rtt) - } -} - -func TestAccept(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - if client.NumStreams() != 0 { - t.Fatalf("bad") - } - if server.NumStreams() != 0 { - t.Fatalf("bad") - } - - wg := &sync.WaitGroup{} - wg.Add(4) - - go func() { - defer wg.Done() - stream, err := server.AcceptStream() - if err != nil { - t.Fatalf("err: %v", err) - } - if id := stream.StreamID(); id != 1 { - t.Fatalf("bad: %v", id) - } - if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) - } - }() - - go func() { - defer wg.Done() - stream, err := client.AcceptStream() - if err != nil { - t.Fatalf("err: %v", err) - } - if id := stream.StreamID(); id != 2 { - t.Fatalf("bad: %v", id) - } - if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) - } - }() - - go func() { - defer wg.Done() - stream, err := server.OpenStream() - if err != nil { - t.Fatalf("err: %v", err) - } - if id := stream.StreamID(); id != 2 { - t.Fatalf("bad: %v", id) - } - if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) - } - }() - - go func() { - defer wg.Done() - stream, err := client.OpenStream() - if err != nil { - t.Fatalf("err: %v", err) - } - if id := stream.StreamID(); id != 1 { - t.Fatalf("bad: %v", id) - } - if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) - } - }() - - doneCh := make(chan struct{}) - go func() { - wg.Wait() - close(doneCh) - }() - - select { - case <-doneCh: - case <-time.After(time.Second): - panic("timeout") - } -} - -func TestSendData_Small(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - wg := &sync.WaitGroup{} - wg.Add(2) - - go func() { - defer wg.Done() - stream, err := server.AcceptStream() - if err != nil { - t.Fatalf("err: %v", err) - } - - if server.NumStreams() != 1 { - t.Fatalf("bad") - } - - buf := make([]byte, 4) - for i := 0; i < 1000; i++ { - n, err := stream.Read(buf) - if err != nil { - t.Fatalf("err: %v", err) - } - if n != 4 { - t.Fatalf("short read: %d", n) - } - if string(buf) != "test" { - t.Fatalf("bad: %s", buf) - } - } - - if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) - } - }() - - go func() { - defer wg.Done() - stream, err := client.Open() - if err != nil { - t.Fatalf("err: %v", err) - } - - if client.NumStreams() != 1 { - t.Fatalf("bad") - } - - for i := 0; i < 1000; i++ { - n, err := stream.Write([]byte("test")) - if err != nil { - t.Fatalf("err: %v", err) - } - if n != 4 { - t.Fatalf("short write %d", n) - } - } - - if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) - } - }() - - doneCh := make(chan struct{}) - go func() { - wg.Wait() - close(doneCh) - }() - select { - case <-doneCh: - case <-time.After(time.Second): - panic("timeout") - } - - if client.NumStreams() != 0 { - t.Fatalf("bad") - } - if server.NumStreams() != 0 { - t.Fatalf("bad") - } -} - -func TestSendData_Large(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - data := make([]byte, 512*1024) - for idx := range data { - data[idx] = byte(idx % 256) - } - - wg := &sync.WaitGroup{} - wg.Add(2) - - go func() { - defer wg.Done() - stream, err := server.AcceptStream() - if err != nil { - t.Fatalf("err: %v", err) - } - - buf := make([]byte, 4*1024) - for i := 0; i < 128; i++ { - n, err := stream.Read(buf) - if err != nil { - t.Fatalf("err: %v", err) - } - if n != 4*1024 { - t.Fatalf("short read: %d", n) - } - for idx := range buf { - if buf[idx] != byte(idx%256) { - t.Fatalf("bad: %v %v %v", i, idx, buf[idx]) - } - } - } - - if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) - } - }() - - go func() { - defer wg.Done() - stream, err := client.Open() - if err != nil { - t.Fatalf("err: %v", err) - } - - n, err := stream.Write(data) - if err != nil { - t.Fatalf("err: %v", err) - } - if n != len(data) { - t.Fatalf("short write %d", n) - } - - if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) - } - }() - - doneCh := make(chan struct{}) - go func() { - wg.Wait() - close(doneCh) - }() - select { - case <-doneCh: - case <-time.After(time.Second): - panic("timeout") - } -} - -func TestGoAway(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - if err := server.GoAway(); err != nil { - t.Fatalf("err: %v", err) - } - - _, err := client.Open() - if err != ErrRemoteGoAway { - t.Fatalf("err: %v", err) - } -} - -func TestManyStreams(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - wg := &sync.WaitGroup{} - - acceptor := func(i int) { - defer wg.Done() - stream, err := server.AcceptStream() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream.Close() - - buf := make([]byte, 512) - for { - n, err := stream.Read(buf) - if err == io.EOF { - return - } - if err != nil { - t.Fatalf("err: %v", err) - } - if n == 0 { - t.Fatalf("err: %v", err) - } - } - } - sender := func(i int) { - defer wg.Done() - stream, err := client.Open() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream.Close() - - msg := fmt.Sprintf("%08d", i) - for i := 0; i < 1000; i++ { - n, err := stream.Write([]byte(msg)) - if err != nil { - t.Fatalf("err: %v", err) - } - if n != len(msg) { - t.Fatalf("short write %d", n) - } - } - } - - for i := 0; i < 50; i++ { - wg.Add(2) - go acceptor(i) - go sender(i) - } - - wg.Wait() -} - -func TestManyStreams_PingPong(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - wg := &sync.WaitGroup{} - - ping := []byte("ping") - pong := []byte("pong") - - acceptor := func(i int) { - defer wg.Done() - stream, err := server.AcceptStream() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream.Close() - - buf := make([]byte, 4) - for { - n, err := stream.Read(buf) - if err == io.EOF { - return - } - if err != nil { - t.Fatalf("err: %v", err) - } - if n != 4 { - t.Fatalf("err: %v", err) - } - if !bytes.Equal(buf, ping) { - t.Fatalf("bad: %s", buf) - } - n, err = stream.Write(pong) - if err != nil { - t.Fatalf("err: %v", err) - } - if n != 4 { - t.Fatalf("err: %v", err) - } - } - } - sender := func(i int) { - defer wg.Done() - stream, err := client.Open() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream.Close() - - buf := make([]byte, 4) - for i := 0; i < 1000; i++ { - n, err := stream.Write(ping) - if err != nil { - t.Fatalf("err: %v", err) - } - if n != 4 { - t.Fatalf("short write %d", n) - } - - n, err = stream.Read(buf) - if err != nil { - t.Fatalf("err: %v", err) - } - if n != 4 { - t.Fatalf("err: %v", err) - } - if !bytes.Equal(buf, pong) { - t.Fatalf("bad: %s", buf) - } - } - } - - for i := 0; i < 50; i++ { - wg.Add(2) - go acceptor(i) - go sender(i) - } - - wg.Wait() -} - -func TestHalfClose(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - stream, err := client.Open() - if err != nil { - t.Fatalf("err: %v", err) - } - if _, err := stream.Write([]byte("a")); err != nil { - t.Fatalf("err: %v", err) - } - - stream2, err := server.Accept() - if err != nil { - t.Fatalf("err: %v", err) - } - stream2.Close() // Half close - - buf := make([]byte, 4) - n, err := stream2.Read(buf) - if err != nil { - t.Fatalf("err: %v", err) - } - if n != 1 { - t.Fatalf("bad: %v", n) - } - - // Send more - if _, err := stream.Write([]byte("bcd")); err != nil { - t.Fatalf("err: %v", err) - } - stream.Close() - - // Read after close - n, err = stream2.Read(buf) - if err != nil { - t.Fatalf("err: %v", err) - } - if n != 3 { - t.Fatalf("bad: %v", n) - } - - // EOF after close - n, err = stream2.Read(buf) - if err != io.EOF { - t.Fatalf("err: %v", err) - } - if n != 0 { - t.Fatalf("bad: %v", n) - } -} - -func TestReadDeadline(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - stream, err := client.Open() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream.Close() - - stream2, err := server.Accept() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream2.Close() - - if err := stream.SetReadDeadline(time.Now().Add(5 * time.Millisecond)); err != nil { - t.Fatalf("err: %v", err) - } - - buf := make([]byte, 4) - if _, err := stream.Read(buf); err != ErrTimeout { - t.Fatalf("err: %v", err) - } -} - -func TestWriteDeadline(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - stream, err := client.Open() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream.Close() - - stream2, err := server.Accept() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream2.Close() - - if err := stream.SetWriteDeadline(time.Now().Add(50 * time.Millisecond)); err != nil { - t.Fatalf("err: %v", err) - } - - buf := make([]byte, 512) - for i := 0; i < int(initialStreamWindow); i++ { - _, err := stream.Write(buf) - if err != nil && err == ErrTimeout { - return - } else if err != nil { - t.Fatalf("err: %v", err) - } - } - t.Fatalf("Expected timeout") -} - -func TestBacklogExceeded(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - // Fill the backlog - max := client.config.AcceptBacklog - for i := 0; i < max; i++ { - stream, err := client.Open() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream.Close() - - if _, err := stream.Write([]byte("foo")); err != nil { - t.Fatalf("err: %v", err) - } - } - - // Attempt to open a new stream - errCh := make(chan error, 1) - go func() { - _, err := client.Open() - errCh <- err - }() - - // Shutdown the server - go func() { - time.Sleep(10 * time.Millisecond) - server.Close() - }() - - select { - case err := <-errCh: - if err == nil { - t.Fatalf("open should fail") - } - case <-time.After(time.Second): - t.Fatalf("timeout") - } -} - -func TestKeepAlive(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - time.Sleep(200 * time.Millisecond) - - // Ping value should increase - client.pingLock.Lock() - defer client.pingLock.Unlock() - if client.pingID == 0 { - t.Fatalf("should ping") - } - - server.pingLock.Lock() - defer server.pingLock.Unlock() - if server.pingID == 0 { - t.Fatalf("should ping") - } -} - -func TestLargeWindow(t *testing.T) { - conf := DefaultConfig() - conf.MaxStreamWindowSize *= 2 - - client, server := testClientServerConfig(conf) - defer client.Close() - defer server.Close() - - stream, err := client.Open() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream.Close() - - stream2, err := server.Accept() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream2.Close() - - stream.SetWriteDeadline(time.Now().Add(10 * time.Millisecond)) - buf := make([]byte, conf.MaxStreamWindowSize) - n, err := stream.Write(buf) - if err != nil { - t.Fatalf("err: %v", err) - } - if n != len(buf) { - t.Fatalf("short write: %d", n) - } -} - -type UnlimitedReader struct{} - -func (u *UnlimitedReader) Read(p []byte) (int, error) { - runtime.Gosched() - return len(p), nil -} - -func TestSendData_VeryLarge(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - var n int64 = 1 * 1024 * 1024 * 1024 - var workers int = 16 - - wg := &sync.WaitGroup{} - wg.Add(workers * 2) - - for i := 0; i < workers; i++ { - go func() { - defer wg.Done() - stream, err := server.AcceptStream() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream.Close() - - buf := make([]byte, 4) - _, err = stream.Read(buf) - if err != nil { - t.Fatalf("err: %v", err) - } - if !bytes.Equal(buf, []byte{0, 1, 2, 3}) { - t.Fatalf("bad header") - } - - recv, err := io.Copy(ioutil.Discard, stream) - if err != nil { - t.Fatalf("err: %v", err) - } - if recv != n { - t.Fatalf("bad: %v", recv) - } - }() - } - for i := 0; i < workers; i++ { - go func() { - defer wg.Done() - stream, err := client.Open() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream.Close() - - _, err = stream.Write([]byte{0, 1, 2, 3}) - if err != nil { - t.Fatalf("err: %v", err) - } - - unlimited := &UnlimitedReader{} - sent, err := io.Copy(stream, io.LimitReader(unlimited, n)) - if err != nil { - t.Fatalf("err: %v", err) - } - if sent != n { - t.Fatalf("bad: %v", sent) - } - }() - } - - doneCh := make(chan struct{}) - go func() { - wg.Wait() - close(doneCh) - }() - select { - case <-doneCh: - case <-time.After(20 * time.Second): - panic("timeout") - } -} - -func TestBacklogExceeded_Accept(t *testing.T) { - client, server := testClientServer() - defer client.Close() - defer server.Close() - - max := 5 * client.config.AcceptBacklog - go func() { - for i := 0; i < max; i++ { - stream, err := server.Accept() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream.Close() - } - }() - - // Fill the backlog - for i := 0; i < max; i++ { - stream, err := client.Open() - if err != nil { - t.Fatalf("err: %v", err) - } - defer stream.Close() - - if _, err := stream.Write([]byte("foo")); err != nil { - t.Fatalf("err: %v", err) - } - } -} diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/spec.md b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/spec.md deleted file mode 100644 index 419470b7..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/spec.md +++ /dev/null @@ -1,141 +0,0 @@ -# Specification - -We use this document to detail the internal specification of Yamux. -This is used both as a guide for implementing Yamux, but also for -alternative interoperable libraries to be built. - -# Framing - -Yamux uses a streaming connection underneath, but imposes a message -framing so that it can be shared between many logical streams. Each -frame contains a header like: - -* Version (8 bits) -* Type (8 bits) -* Flags (16 bits) -* StreamID (32 bits) -* Length (32 bits) - -This means that each header has a 12 byte overhead. -All fields are encoded in network order (big endian). -Each field is described below: - -## Version Field - -The version field is used for future backwards compatibily. At the -current time, the field is always set to 0, to indicate the initial -version. - -## Type Field - -The type field is used to switch the frame message type. The following -message types are supported: - -* 0x0 Data - Used to transmit data. May transmit zero length payloads - depending on the flags. - -* 0x1 Window Update - Used to updated the senders receive window size. - This is used to implement per-session flow control. - -* 0x2 Ping - Used to measure RTT. It can also be used to heart-beat - and do keep-alives over TCP. - -* 0x3 Go Away - Used to close a session. - -## Flag Field - -The flags field is used to provide additional information related -to the message type. The following flags are supported: - -* 0x1 SYN - Signals the start of a new stream. May be sent with a data or - window update message. Also sent with a ping to indicate outbound. - -* 0x2 ACK - Acknowledges the start of a new stream. May be sent with a data - or window update message. Also sent with a ping to indicate response. - -* 0x4 FIN - Performs a half-close of a stream. May be sent with a data - message or window update. - -* 0x8 RST - Reset a stream immediately. May be sent with a data or - window update message. - -## StreamID Field - -The StreamID field is used to identify the logical stream the frame -is addressing. The client side should use odd ID's, and the server even. -This prevents any collisions. Additionally, the 0 ID is reserved to represent -the session. - -Both Ping and Go Away messages should always use the 0 StreamID. - -## Length Field - -The meaning of the length field depends on the message type: - -* Data - provides the length of bytes following the header -* Window update - provides a delta update to the window size -* Ping - Contains an opaque value, echoed back -* Go Away - Contains an error code - -# Message Flow - -There is no explicit connection setup, as Yamux relies on an underlying -transport to be provided. However, there is a distinction between client -and server side of the connection. - -## Opening a stream - -To open a stream, an initial data or window update frame is sent -with a new StreamID. The SYN flag should be set to signal a new stream. - -The receiver must then reply with either a data or window update frame -with the StreamID along with the ACK flag to accept the stream or with -the RST flag to reject the stream. - -Because we are relying on the reliable stream underneath, a connection -can begin sending data once the SYN flag is sent. The corresponding -ACK does not need to be received. This is particularly well suited -for an RPC system where a client wants to open a stream and immediately -fire a request without wiating for the RTT of the ACK. - -This does introduce the possibility of a connection being rejected -after data has been sent already. This is a slight semantic difference -from TCP, where the conection cannot be refused after it is opened. -Clients should be prepared to handle this by checking for an error -that indicates a RST was received. - -## Closing a stream - -To close a stream, either side sends a data or window update frame -along with the FIN flag. This does a half-close indicating the sender -will send no further data. - -Once both sides have closed the connection, the stream is closed. - -Alternatively, if an error occurs, the RST flag can be used to -hard close a stream immediately. - -## Flow Control - -When Yamux is initially starts each stream with a 256KB window size. -There is no window size for the session. - -To prevent the streams from stalling, window update frames should be -sent regularly. Yamux can be configured to provide a larger limit for -windows sizes. Both sides assume the initial 256KB window, but can -immediately send a window update as part of the SYN/ACK indicating a -larger window. - -Both sides should track the number of bytes sent in Data frames -only, as only they are tracked as part of the window size. - -## Session termination - -When a session is being terminated, the Go Away message should -be sent. The Length should be set to one of the following to -provide an error code: - -* 0x0 Normal termination -* 0x1 Protocol error -* 0x2 Internal error - diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/stream.go b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/stream.go deleted file mode 100644 index ad5b0eb1..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/stream.go +++ /dev/null @@ -1,436 +0,0 @@ -package yamux - -import ( - "bytes" - "io" - "sync" - "sync/atomic" - "time" -) - -type streamState int - -const ( - streamInit streamState = iota - streamSYNSent - streamSYNReceived - streamEstablished - streamLocalClose - streamRemoteClose - streamClosed - streamReset -) - -// Stream is used to represent a logical stream -// within a session. -type Stream struct { - recvWindow uint32 - sendWindow uint32 - - id uint32 - session *Session - - state streamState - stateLock sync.Mutex - - recvBuf bytes.Buffer - recvLock sync.Mutex - - controlHdr header - controlErr chan error - controlHdrLock sync.Mutex - - sendHdr header - sendErr chan error - sendLock sync.Mutex - - recvNotifyCh chan struct{} - sendNotifyCh chan struct{} - - readDeadline time.Time - writeDeadline time.Time -} - -// newStream is used to construct a new stream within -// a given session for an ID -func newStream(session *Session, id uint32, state streamState) *Stream { - s := &Stream{ - id: id, - session: session, - state: state, - controlHdr: header(make([]byte, headerSize)), - controlErr: make(chan error, 1), - sendHdr: header(make([]byte, headerSize)), - sendErr: make(chan error, 1), - recvWindow: initialStreamWindow, - sendWindow: initialStreamWindow, - recvNotifyCh: make(chan struct{}, 1), - sendNotifyCh: make(chan struct{}, 1), - } - return s -} - -// Session returns the associated stream session -func (s *Stream) Session() *Session { - return s.session -} - -// StreamID returns the ID of this stream -func (s *Stream) StreamID() uint32 { - return s.id -} - -// Read is used to read from the stream -func (s *Stream) Read(b []byte) (n int, err error) { - defer asyncNotify(s.recvNotifyCh) -START: - s.stateLock.Lock() - switch s.state { - case streamLocalClose: - fallthrough - case streamRemoteClose: - fallthrough - case streamClosed: - if s.recvBuf.Len() == 0 { - s.stateLock.Unlock() - return 0, io.EOF - } - case streamReset: - s.stateLock.Unlock() - return 0, ErrConnectionReset - } - s.stateLock.Unlock() - - // If there is no data available, block - s.recvLock.Lock() - if s.recvBuf.Len() == 0 { - s.recvLock.Unlock() - goto WAIT - } - - // Read any bytes - n, _ = s.recvBuf.Read(b) - s.recvLock.Unlock() - - // Send a window update potentially - err = s.sendWindowUpdate() - return n, err - -WAIT: - var timeout <-chan time.Time - if !s.readDeadline.IsZero() { - delay := s.readDeadline.Sub(time.Now()) - timeout = time.After(delay) - } - select { - case <-s.recvNotifyCh: - goto START - case <-timeout: - return 0, ErrTimeout - } -} - -// Write is used to write to the stream -func (s *Stream) Write(b []byte) (n int, err error) { - s.sendLock.Lock() - defer s.sendLock.Unlock() - total := 0 - for total < len(b) { - n, err := s.write(b[total:]) - total += n - if err != nil { - return total, err - } - } - return total, nil -} - -// write is used to write to the stream, may return on -// a short write. -func (s *Stream) write(b []byte) (n int, err error) { - var flags uint16 - var max uint32 - var body io.Reader -START: - s.stateLock.Lock() - switch s.state { - case streamLocalClose: - fallthrough - case streamClosed: - s.stateLock.Unlock() - return 0, ErrStreamClosed - case streamReset: - s.stateLock.Unlock() - return 0, ErrConnectionReset - } - s.stateLock.Unlock() - - // If there is no data available, block - window := atomic.LoadUint32(&s.sendWindow) - if window == 0 { - goto WAIT - } - - // Determine the flags if any - flags = s.sendFlags() - - // Send up to our send window - max = min(window, uint32(len(b))) - body = bytes.NewReader(b[:max]) - - // Send the header - s.sendHdr.encode(typeData, flags, s.id, max) - if err := s.session.waitForSendErr(s.sendHdr, body, s.sendErr); err != nil { - return 0, err - } - - // Reduce our send window - atomic.AddUint32(&s.sendWindow, ^uint32(max-1)) - - // Unlock - return int(max), err - -WAIT: - var timeout <-chan time.Time - if !s.writeDeadline.IsZero() { - delay := s.writeDeadline.Sub(time.Now()) - timeout = time.After(delay) - } - select { - case <-s.sendNotifyCh: - goto START - case <-timeout: - return 0, ErrTimeout - } - return 0, nil -} - -// sendFlags determines any flags that are appropriate -// based on the current stream state -func (s *Stream) sendFlags() uint16 { - s.stateLock.Lock() - defer s.stateLock.Unlock() - var flags uint16 - switch s.state { - case streamInit: - flags |= flagSYN - s.state = streamSYNSent - case streamSYNReceived: - flags |= flagACK - s.state = streamEstablished - } - return flags -} - -// sendWindowUpdate potentially sends a window update enabling -// further writes to take place. Must be invoked with the lock. -func (s *Stream) sendWindowUpdate() error { - s.controlHdrLock.Lock() - defer s.controlHdrLock.Unlock() - - // Determine the delta update - max := s.session.config.MaxStreamWindowSize - delta := max - atomic.LoadUint32(&s.recvWindow) - - // Determine the flags if any - flags := s.sendFlags() - - // Check if we can omit the update - if delta < (max/2) && flags == 0 { - return nil - } - - // Update our window - atomic.AddUint32(&s.recvWindow, delta) - - // Send the header - s.controlHdr.encode(typeWindowUpdate, flags, s.id, delta) - if err := s.session.waitForSendErr(s.controlHdr, nil, s.controlErr); err != nil { - return err - } - return nil -} - -// sendClose is used to send a FIN -func (s *Stream) sendClose() error { - s.controlHdrLock.Lock() - defer s.controlHdrLock.Unlock() - - flags := s.sendFlags() - flags |= flagFIN - s.controlHdr.encode(typeWindowUpdate, flags, s.id, 0) - if err := s.session.waitForSendErr(s.controlHdr, nil, s.controlErr); err != nil { - return err - } - return nil -} - -// Close is used to close the stream -func (s *Stream) Close() error { - closeStream := false - s.stateLock.Lock() - switch s.state { - // Opened means we need to signal a close - case streamSYNSent: - fallthrough - case streamSYNReceived: - fallthrough - case streamEstablished: - s.state = streamLocalClose - goto SEND_CLOSE - - case streamLocalClose: - case streamRemoteClose: - s.state = streamClosed - closeStream = true - goto SEND_CLOSE - - case streamClosed: - case streamReset: - default: - panic("unhandled state") - } - s.stateLock.Unlock() - return nil -SEND_CLOSE: - s.stateLock.Unlock() - s.sendClose() - s.notifyWaiting() - if closeStream { - s.session.closeStream(s.id) - } - return nil -} - -// forceClose is used for when the session is exiting -func (s *Stream) forceClose() { - s.stateLock.Lock() - s.state = streamClosed - s.stateLock.Unlock() - s.notifyWaiting() -} - -// processFlags is used to update the state of the stream -// based on set flags, if any. Lock must be held -func (s *Stream) processFlags(flags uint16) error { - // Close the stream without holding the state lock - closeStream := false - defer func() { - if closeStream { - s.session.closeStream(s.id) - } - }() - - s.stateLock.Lock() - defer s.stateLock.Unlock() - if flags&flagACK == flagACK { - if s.state == streamSYNSent { - s.state = streamEstablished - } - s.session.establishStream() - } - if flags&flagFIN == flagFIN { - switch s.state { - case streamSYNSent: - fallthrough - case streamSYNReceived: - fallthrough - case streamEstablished: - s.state = streamRemoteClose - s.notifyWaiting() - case streamLocalClose: - s.state = streamClosed - closeStream = true - s.notifyWaiting() - default: - s.session.logger.Printf("[ERR] yamux: unexpected FIN flag in state %d", s.state) - return ErrUnexpectedFlag - } - } - if flags&flagRST == flagRST { - if s.state == streamSYNSent { - s.session.establishStream() - } - s.state = streamReset - closeStream = true - s.notifyWaiting() - } - return nil -} - -// notifyWaiting notifies all the waiting channels -func (s *Stream) notifyWaiting() { - asyncNotify(s.recvNotifyCh) - asyncNotify(s.sendNotifyCh) -} - -// incrSendWindow updates the size of our send window -func (s *Stream) incrSendWindow(hdr header, flags uint16) error { - if err := s.processFlags(flags); err != nil { - return err - } - - // Increase window, unblock a sender - atomic.AddUint32(&s.sendWindow, hdr.Length()) - asyncNotify(s.sendNotifyCh) - return nil -} - -// readData is used to handle a data frame -func (s *Stream) readData(hdr header, flags uint16, conn io.Reader) error { - if err := s.processFlags(flags); err != nil { - return err - } - - // Check that our recv window is not exceeded - length := hdr.Length() - if length == 0 { - return nil - } - if remain := atomic.LoadUint32(&s.recvWindow); length > remain { - s.session.logger.Printf("[ERR] yamux: receive window exceeded (stream: %d, remain: %d, recv: %d)", s.id, remain, length) - return ErrRecvWindowExceeded - } - - // Wrap in a limited reader - conn = &io.LimitedReader{R: conn, N: int64(length)} - - // Copy into buffer - s.recvLock.Lock() - if _, err := io.Copy(&s.recvBuf, conn); err != nil { - s.session.logger.Printf("[ERR] yamux: Failed to read stream data: %v", err) - s.recvLock.Unlock() - return err - } - - // Decrement the receive window - atomic.AddUint32(&s.recvWindow, ^uint32(length-1)) - s.recvLock.Unlock() - - // Unblock any readers - asyncNotify(s.recvNotifyCh) - return nil -} - -// SetDeadline sets the read and write deadlines -func (s *Stream) SetDeadline(t time.Time) error { - if err := s.SetReadDeadline(t); err != nil { - return err - } - if err := s.SetWriteDeadline(t); err != nil { - return err - } - return nil -} - -// SetReadDeadline sets the deadline for future Read calls. -func (s *Stream) SetReadDeadline(t time.Time) error { - s.readDeadline = t - return nil -} - -// SetWriteDeadline sets the deadline for future Write calls -func (s *Stream) SetWriteDeadline(t time.Time) error { - s.writeDeadline = t - return nil -} diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/util.go b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/util.go deleted file mode 100644 index 5fe45afc..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/util.go +++ /dev/null @@ -1,28 +0,0 @@ -package yamux - -// asyncSendErr is used to try an async send of an error -func asyncSendErr(ch chan error, err error) { - if ch == nil { - return - } - select { - case ch <- err: - default: - } -} - -// asyncNotify is used to signal a waiting goroutine -func asyncNotify(ch chan struct{}) { - select { - case ch <- struct{}{}: - default: - } -} - -// min computes the minimum of two values -func min(a, b uint32) uint32 { - if a < b { - return a - } - return b -} diff --git a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/util_test.go b/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/util_test.go deleted file mode 100644 index dd14623a..00000000 --- a/vendor/gx/QmT98GixWnJUj3vHfoURNQa5uk8FxxmZVF5nv3AicXp2R1/yamux/util_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package yamux - -import ( - "testing" -) - -func TestAsyncSendErr(t *testing.T) { - ch := make(chan error) - asyncSendErr(ch, ErrTimeout) - select { - case <-ch: - t.Fatalf("should not get") - default: - } - - ch = make(chan error, 1) - asyncSendErr(ch, ErrTimeout) - select { - case <-ch: - default: - t.Fatalf("should get") - } -} - -func TestAsyncNotify(t *testing.T) { - ch := make(chan struct{}) - asyncNotify(ch) - select { - case <-ch: - t.Fatalf("should not get") - default: - } - - ch = make(chan struct{}, 1) - asyncNotify(ch) - select { - case <-ch: - default: - t.Fatalf("should get") - } -} - -func TestMin(t *testing.T) { - if min(1, 2) != 1 { - t.Fatalf("bad") - } - if min(2, 1) != 1 { - t.Fatalf("bad") - } -} diff --git a/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/README.md b/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/README.md deleted file mode 100644 index d223061f..00000000 --- a/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# go-keyspace -This is a package extracted from go-ipfs. - -Its purpose it to be used to compare a set of keys based on a given -metric. The primary metric used is XOR, as in kademlia. - diff --git a/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/keyspace.go b/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/keyspace.go deleted file mode 100644 index e26a0e6d..00000000 --- a/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/keyspace.go +++ /dev/null @@ -1,97 +0,0 @@ -package keyspace - -import ( - "sort" - - "math/big" -) - -// Key represents an identifier in a KeySpace. It holds a reference to the -// associated KeySpace, as well references to both the Original identifier, -// as well as the new, KeySpace Bytes one. -type Key struct { - - // Space is the KeySpace this Key is related to. - Space KeySpace - - // Original is the original value of the identifier - Original []byte - - // Bytes is the new value of the identifier, in the KeySpace. - Bytes []byte -} - -// Equal returns whether this key is equal to another. -func (k1 Key) Equal(k2 Key) bool { - if k1.Space != k2.Space { - panic("k1 and k2 not in same key space.") - } - return k1.Space.Equal(k1, k2) -} - -// Less returns whether this key comes before another. -func (k1 Key) Less(k2 Key) bool { - if k1.Space != k2.Space { - panic("k1 and k2 not in same key space.") - } - return k1.Space.Less(k1, k2) -} - -// Distance returns this key's distance to another -func (k1 Key) Distance(k2 Key) *big.Int { - if k1.Space != k2.Space { - panic("k1 and k2 not in same key space.") - } - return k1.Space.Distance(k1, k2) -} - -// KeySpace is an object used to do math on identifiers. Each keyspace has its -// own properties and rules. See XorKeySpace. -type KeySpace interface { - - // Key converts an identifier into a Key in this space. - Key([]byte) Key - - // Equal returns whether keys are equal in this key space - Equal(Key, Key) bool - - // Distance returns the distance metric in this key space - Distance(Key, Key) *big.Int - - // Less returns whether the first key is smaller than the second. - Less(Key, Key) bool -} - -// byDistanceToCenter is a type used to sort Keys by proximity to a center. -type byDistanceToCenter struct { - Center Key - Keys []Key -} - -func (s byDistanceToCenter) Len() int { - return len(s.Keys) -} - -func (s byDistanceToCenter) Swap(i, j int) { - s.Keys[i], s.Keys[j] = s.Keys[j], s.Keys[i] -} - -func (s byDistanceToCenter) Less(i, j int) bool { - a := s.Center.Distance(s.Keys[i]) - b := s.Center.Distance(s.Keys[j]) - return a.Cmp(b) == -1 -} - -// SortByDistance takes a KeySpace, a center Key, and a list of Keys toSort. -// It returns a new list, where the Keys toSort have been sorted by their -// distance to the center Key. -func SortByDistance(sp KeySpace, center Key, toSort []Key) []Key { - toSortCopy := make([]Key, len(toSort)) - copy(toSortCopy, toSort) - bdtc := &byDistanceToCenter{ - Center: center, - Keys: toSortCopy, // copy - } - sort.Sort(bdtc) - return bdtc.Keys -} diff --git a/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/package.json b/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/package.json deleted file mode 100644 index 46019a7b..00000000 --- a/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "go-keyspace", - "author": "joe", - "version": "1.0.0", - "language": "go", - "gx":{ - "dvcsimport":"github.com/whyrusleeping/go-keyspace" - } -} diff --git a/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/xor.go b/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/xor.go deleted file mode 100644 index 24a542f7..00000000 --- a/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/xor.go +++ /dev/null @@ -1,74 +0,0 @@ -package keyspace - -import ( - "bytes" - "crypto/sha256" - "math/big" -) - -// XORKeySpace is a KeySpace which: -// - normalizes identifiers using a cryptographic hash (sha256) -// - measures distance by XORing keys together -var XORKeySpace = &xorKeySpace{} -var _ KeySpace = XORKeySpace // ensure it conforms - -type xorKeySpace struct{} - -// Key converts an identifier into a Key in this space. -func (s *xorKeySpace) Key(id []byte) Key { - hash := sha256.Sum256(id) - key := hash[:] - return Key{ - Space: s, - Original: id, - Bytes: key, - } -} - -// Equal returns whether keys are equal in this key space -func (s *xorKeySpace) Equal(k1, k2 Key) bool { - return bytes.Equal(k1.Bytes, k2.Bytes) -} - -// Distance returns the distance metric in this key space -func (s *xorKeySpace) Distance(k1, k2 Key) *big.Int { - // XOR the keys - k3 := XOR(k1.Bytes, k2.Bytes) - - // interpret it as an integer - dist := big.NewInt(0).SetBytes(k3) - return dist -} - -// Less returns whether the first key is smaller than the second. -func (s *xorKeySpace) Less(k1, k2 Key) bool { - a := k1.Bytes - b := k2.Bytes - for i := 0; i < len(a); i++ { - if a[i] != b[i] { - return a[i] < b[i] - } - } - return true -} - -// ZeroPrefixLen returns the number of consecutive zeroes in a byte slice. -func ZeroPrefixLen(id []byte) int { - for i := 0; i < len(id); i++ { - for j := 0; j < 8; j++ { - if (id[i]>>uint8(7-j))&0x1 != 0 { - return i*8 + j - } - } - } - return len(id) * 8 -} - -// XOR takes two byte slices, XORs them together, returns the resulting slice. -func XOR(a, b []byte) []byte { - c := make([]byte, len(a)) - for i := 0; i < len(a); i++ { - c[i] = a[i] ^ b[i] - } - return c -} diff --git a/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/xor_test.go b/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/xor_test.go deleted file mode 100644 index fb1b7b7f..00000000 --- a/vendor/gx/QmThbzo9oBE7FAVmgjp3xYv5Yra81uB7KXbrTei47gWT6o/go-keyspace/xor_test.go +++ /dev/null @@ -1,120 +0,0 @@ -package keyspace - -import ( - "bytes" - "math/big" - "testing" -) - -func TestPrefixLen(t *testing.T) { - cases := [][]byte{ - {0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x58, 0xFF, 0x80, 0x00, 0x00, 0xF0}, - } - lens := []int{24, 56, 9} - - for i, c := range cases { - r := ZeroPrefixLen(c) - if r != lens[i] { - t.Errorf("ZeroPrefixLen failed: %v != %v", r, lens[i]) - } - } - -} - -func TestXorKeySpace(t *testing.T) { - - ids := [][]byte{ - {0xFF, 0xFF, 0xFF, 0xFF}, - {0x00, 0x00, 0x00, 0x00}, - {0xFF, 0xFF, 0xFF, 0xF0}, - } - - ks := [][2]Key{ - {XORKeySpace.Key(ids[0]), XORKeySpace.Key(ids[0])}, - {XORKeySpace.Key(ids[1]), XORKeySpace.Key(ids[1])}, - {XORKeySpace.Key(ids[2]), XORKeySpace.Key(ids[2])}, - } - - for i, set := range ks { - if !set[0].Equal(set[1]) { - t.Errorf("Key not eq. %v != %v", set[0], set[1]) - } - - if !bytes.Equal(set[0].Bytes, set[1].Bytes) { - t.Errorf("Key gen failed. %v != %v", set[0].Bytes, set[1].Bytes) - } - - if !bytes.Equal(set[0].Original, ids[i]) { - t.Errorf("ptrs to original. %v != %v", set[0].Original, ids[i]) - } - - if len(set[0].Bytes) != 32 { - t.Errorf("key length incorrect. 32 != %d", len(set[0].Bytes)) - } - } - - for i := 1; i < len(ks); i++ { - if ks[i][0].Less(ks[i-1][0]) == ks[i-1][0].Less(ks[i][0]) { - t.Errorf("less should be different.") - } - - if ks[i][0].Distance(ks[i-1][0]).Cmp(ks[i-1][0].Distance(ks[i][0])) != 0 { - t.Errorf("distance should be the same.") - } - - if ks[i][0].Equal(ks[i-1][0]) { - t.Errorf("Keys should not be eq. %v != %v", ks[i][0], ks[i-1][0]) - } - } -} - -func TestDistancesAndCenterSorting(t *testing.T) { - - adjs := [][]byte{ - {173, 149, 19, 27, 192, 183, 153, 192, 177, 175, 71, 127, 177, 79, 207, 38, 166, 169, 247, 96, 121, 228, 139, 240, 144, 172, 183, 232, 54, 123, 253, 14}, - {223, 63, 97, 152, 4, 169, 47, 219, 64, 87, 25, 45, 196, 61, 215, 72, 234, 119, 138, 220, 82, 188, 73, 140, 232, 5, 36, 192, 20, 184, 17, 25}, - {73, 176, 221, 176, 149, 143, 22, 42, 129, 124, 213, 114, 232, 95, 189, 154, 18, 3, 122, 132, 32, 199, 53, 185, 58, 157, 117, 78, 52, 146, 157, 127}, - {73, 176, 221, 176, 149, 143, 22, 42, 129, 124, 213, 114, 232, 95, 189, 154, 18, 3, 122, 132, 32, 199, 53, 185, 58, 157, 117, 78, 52, 146, 157, 127}, - {73, 176, 221, 176, 149, 143, 22, 42, 129, 124, 213, 114, 232, 95, 189, 154, 18, 3, 122, 132, 32, 199, 53, 185, 58, 157, 117, 78, 52, 146, 157, 126}, - {73, 0, 221, 176, 149, 143, 22, 42, 129, 124, 213, 114, 232, 95, 189, 154, 18, 3, 122, 132, 32, 199, 53, 185, 58, 157, 117, 78, 52, 146, 157, 127}, - } - - keys := make([]Key, len(adjs)) - for i, a := range adjs { - keys[i] = Key{Space: XORKeySpace, Bytes: a} - } - - cmp := func(a int64, b *big.Int) int { - return big.NewInt(a).Cmp(b) - } - - if 0 != cmp(0, keys[2].Distance(keys[3])) { - t.Errorf("distance calculation wrong: %v", keys[2].Distance(keys[3])) - } - - if 0 != cmp(1, keys[2].Distance(keys[4])) { - t.Errorf("distance calculation wrong: %v", keys[2].Distance(keys[4])) - } - - d1 := keys[2].Distance(keys[5]) - d2 := XOR(keys[2].Bytes, keys[5].Bytes) - d2 = d2[len(keys[2].Bytes)-len(d1.Bytes()):] // skip empty space for big - if !bytes.Equal(d1.Bytes(), d2) { - t.Errorf("bytes should be the same. %v == %v", d1.Bytes(), d2) - } - - if -1 != cmp(2<<32, keys[2].Distance(keys[5])) { - t.Errorf("2<<32 should be smaller") - } - - keys2 := SortByDistance(XORKeySpace, keys[2], keys) - order := []int{2, 3, 4, 5, 1, 0} - for i, o := range order { - if !bytes.Equal(keys[o].Bytes, keys2[i].Bytes) { - t.Errorf("order is wrong. %d?? %v == %v", o, keys[o], keys2[i]) - } - } - -} diff --git a/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/.gxignore b/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/LICENSE b/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/LICENSE deleted file mode 100644 index 1a976e72..00000000 --- a/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Jeromy Johnson - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/README.md b/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/README.md deleted file mode 100644 index 6a3ca8f8..00000000 --- a/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# go-multiaddr-filter -- CIDR netmasks with multiaddr - -This module creates very simple [multiaddr](https://github.com/jbenet/go-multiaddr) formatted cidr netmasks. - -It doesn't do full multiaddr parsing to save on vendoring things and perf. The `net` package will take care of verifying the validity of the network part anyway. - -## Usage - -```go - -import filter "github.com/whyrusleeping/multiaddr-filter" - -filter.NewMask("/ip4/192.168.0.0/24") // ipv4 -filter.NewMask("/ip6/fe80::/64") // ipv6 -``` diff --git a/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/mask.go b/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/mask.go deleted file mode 100644 index e0c40e51..00000000 --- a/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/mask.go +++ /dev/null @@ -1,47 +0,0 @@ -package mask - -import ( - "errors" - "fmt" - "net" - "strings" - - manet "gx/QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2/go-multiaddr-net" -) - -var ErrInvalidFormat = errors.New("invalid multiaddr-filter format") - -func NewMask(a string) (*net.IPNet, error) { - parts := strings.Split(a, "/") - - if parts[0] != "" { - return nil, ErrInvalidFormat - } - - if len(parts) != 5 { - return nil, ErrInvalidFormat - } - - // check it's a valid filter address. ip + cidr - isip := parts[1] == "ip4" || parts[1] == "ip6" - iscidr := parts[3] == "ipcidr" - if !isip || !iscidr { - return nil, ErrInvalidFormat - } - - _, ipn, err := net.ParseCIDR(parts[2] + "/" + parts[4]) - if err != nil { - return nil, err - } - return ipn, nil -} - -func ConvertIPNet(n *net.IPNet) (string, error) { - addr, err := manet.FromIP(n.IP) - if err != nil { - return "", err - } - - b, _ := n.Mask.Size() - return fmt.Sprintf("%s/ipcidr/%d", addr, b), nil -} diff --git a/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/mask_test.go b/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/mask_test.go deleted file mode 100644 index 2dcc016b..00000000 --- a/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/mask_test.go +++ /dev/null @@ -1,132 +0,0 @@ -package mask - -import ( - "net" - "testing" -) - -func TestValidMasks(t *testing.T) { - - cidrOrFatal := func(s string) *net.IPNet { - _, ipn, err := net.ParseCIDR(s) - if err != nil { - t.Fatal(err) - } - return ipn - } - - testCases := map[string]*net.IPNet{ - "/ip4/1.2.3.4/ipcidr/0": cidrOrFatal("1.2.3.4/0"), - "/ip4/1.2.3.4/ipcidr/32": cidrOrFatal("1.2.3.4/32"), - "/ip4/1.2.3.4/ipcidr/24": cidrOrFatal("1.2.3.4/24"), - "/ip4/192.168.0.0/ipcidr/28": cidrOrFatal("192.168.0.0/28"), - "/ip6/fe80::/ipcidr/0": cidrOrFatal("fe80::/0"), - "/ip6/fe80::/ipcidr/64": cidrOrFatal("fe80::/64"), - "/ip6/fe80::/ipcidr/128": cidrOrFatal("fe80::/128"), - } - - for s, m1 := range testCases { - m2, err := NewMask(s) - if err != nil { - t.Error("should be invalid:", s) - continue - } - - if m1.String() != m2.String() { - t.Error("masks not equal:", m1, m2) - } - } - -} - -func TestInvalidMasks(t *testing.T) { - - testCases := []string{ - "/", - "/ip4/10.1.2.3", - "/ip6/::", - "/ip4/1.2.3.4/cidr/24", - "/ip6/fe80::/cidr/24", - "/eth/aa:aa:aa:aa:aa/ipcidr/24", - "foobar/ip4/1.2.3.4/ipcidr/32", - } - - for _, s := range testCases { - _, err := NewMask(s) - if err != ErrInvalidFormat { - t.Error("should be invalid:", s) - } - } - - testCases2 := []string{ - "/ip4/1.2.3.4/ipcidr/33", - "/ip4/192.168.0.0/ipcidr/-1", - "/ip6/fe80::/ipcidr/129", - } - - for _, s := range testCases2 { - _, err := NewMask(s) - if err == nil { - t.Error("should be invalid:", s) - } - } - -} - -func TestFiltered(t *testing.T) { - var tests = map[string]map[string]bool{ - "/ip4/10.0.0.0/ipcidr/8": map[string]bool{ - "10.3.3.4": true, - "10.3.4.4": true, - "10.4.4.4": true, - "15.52.34.3": false, - }, - "/ip4/192.168.0.0/ipcidr/16": map[string]bool{ - "192.168.0.0": true, - "192.168.1.0": true, - "192.1.0.0": false, - "10.4.4.4": false, - }, - } - - for mask, set := range tests { - m, err := NewMask(mask) - if err != nil { - t.Fatal(err) - } - for addr, val := range set { - ip := net.ParseIP(addr) - if m.Contains(ip) != val { - t.Fatalf("expected contains(%s, %s) == %s", mask, addr, val) - } - } - } -} - -func TestParsing(t *testing.T) { - var addrs = map[string]string{ - "/ip4/192.168.0.0/ipcidr/16": "192.168.0.0/16", - "/ip4/192.0.0.0/ipcidr/8": "192.0.0.0/8", - "/ip6/2001:db8::/ipcidr/32": "2001:db8::/32", - } - - for k, v := range addrs { - m, err := NewMask(k) - if err != nil { - t.Fatal(err) - } - - if m.String() != v { - t.Fatalf("mask is wrong: ", m, v) - } - - orig, err := ConvertIPNet(m) - if err != nil { - t.Fatal(err) - } - - if orig != k { - t.Fatal("backwards conversion failed: ", orig, k) - } - } -} diff --git a/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/package.json b/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/package.json deleted file mode 100644 index 46649171..00000000 --- a/vendor/gx/QmVCmuhgDFer5MW5737Z8GtBEGpUyEkFnLUv4ASDWnLZdC/multiaddr-filter/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "multiaddr-filter", - "author": "whyrusleeping", - "version": "1.0.0", - "gxDependencies": [ - { - "name": "go-multiaddr-net", - "hash": "QmNT7d1e4Xcp3KcsvxyzUHVtqrR43uypoxLLzdKj6YZga2", - "version": "0.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/whyrusleeping/multiaddr-filter" - } -} diff --git a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/.gxignore b/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/.travis.yml b/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/.travis.yml deleted file mode 100644 index 7b571f40..00000000 --- a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: go - -go: - - 1.3 - - release - - tip - -script: - - go test -race -cpu=5 -v ./... diff --git a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/LICENSE b/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/LICENSE deleted file mode 100644 index c7386b3c..00000000 --- a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Juan Batiz-Benet - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/README.md b/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/README.md deleted file mode 100644 index 42c23fff..00000000 --- a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# go-multiaddr - -[multiaddr](https://github.com/jbenet/multiaddr) implementation in Go. - -## Example - -### Simple - -```go -import ma "github.com/jbenet/go-multiaddr" - -// construct from a string (err signals parse failure) -m1, err := ma.NewMultiaddr("/ip4/127.0.0.1/udp/1234") - -// construct from bytes (err signals parse failure) -m2, err := ma.NewMultiaddrBytes(m1.Bytes()) - -// true -strings.Equal(m1.String(), "/ip4/127.0.0.1/udp/1234") -strings.Equal(m1.String(), m2.String()) -bytes.Equal(m1.Bytes(), m2.Bytes()) -m1.Equal(m2) -m2.Equal(m1) -``` - -### Protocols - -```go -// get the multiaddr protocol description objects -addr.Protocols() -// []Protocol{ -// Protocol{ Code: 4, Name: 'ip4', Size: 32}, -// Protocol{ Code: 17, Name: 'udp', Size: 16}, -// } -``` - -### En/decapsulate - -```go -m.Encapsulate(ma.NewMultiaddr("/sctp/5678")) -// -m.Decapsulate(ma.NewMultiaddr("/udp")) // up to + inc last occurrence of subaddr -// -``` - -### Tunneling - -Multiaddr allows expressing tunnels very nicely. - -```js -printer, _ := ma.NewMultiaddr("/ip4/192.168.0.13/tcp/80") -proxy, _ := ma.NewMultiaddr("/ip4/10.20.30.40/tcp/443") -printerOverProxy := proxy.Encapsulate(printer) -// /ip4/10.20.30.40/tcp/443/ip4/192.168.0.13/tcp/80 - -proxyAgain := printerOverProxy.Decapsulate(printer) -// /ip4/10.20.30.40/tcp/443 -``` diff --git a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/codec.go b/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/codec.go deleted file mode 100644 index 7dc94727..00000000 --- a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/codec.go +++ /dev/null @@ -1,244 +0,0 @@ -package multiaddr - -import ( - "encoding/base32" - "encoding/binary" - "errors" - "fmt" - "net" - "strconv" - "strings" - - mh "gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash" -) - -func stringToBytes(s string) ([]byte, error) { - - // consume trailing slashes - s = strings.TrimRight(s, "/") - - b := []byte{} - sp := strings.Split(s, "/") - - if sp[0] != "" { - return nil, fmt.Errorf("invalid multiaddr, must begin with /") - } - - // consume first empty elem - sp = sp[1:] - - for len(sp) > 0 { - p := ProtocolWithName(sp[0]) - if p.Code == 0 { - return nil, fmt.Errorf("no protocol with name %s", sp[0]) - } - b = append(b, CodeToVarint(p.Code)...) - sp = sp[1:] - - if p.Size == 0 { // no length. - continue - } - - if len(sp) < 1 { - return nil, fmt.Errorf("protocol requires address, none given: %s", p.Name) - } - a, err := addressStringToBytes(p, sp[0]) - if err != nil { - return nil, fmt.Errorf("failed to parse %s: %s %s", p.Name, sp[0], err) - } - b = append(b, a...) - sp = sp[1:] - } - return b, nil -} - -func bytesToString(b []byte) (ret string, err error) { - // panic handler, in case we try accessing bytes incorrectly. - defer func() { - if e := recover(); e != nil { - ret = "" - switch e := e.(type) { - case error: - err = e - case string: - err = errors.New(e) - default: - err = fmt.Errorf("%v", e) - } - } - }() - - s := "" - - for len(b) > 0 { - - code, n := ReadVarintCode(b) - b = b[n:] - p := ProtocolWithCode(code) - if p.Code == 0 { - return "", fmt.Errorf("no protocol with code %d", code) - } - s += "/" + p.Name - - if p.Size == 0 { - continue - } - - size := sizeForAddr(p, b) - a, err := addressBytesToString(p, b[:size]) - if err != nil { - return "", err - } - if len(a) > 0 { - s += "/" + a - } - b = b[size:] - } - - return s, nil -} - -func sizeForAddr(p Protocol, b []byte) int { - switch { - case p.Size > 0: - return (p.Size / 8) - case p.Size == 0: - return 0 - default: - size, n := ReadVarintCode(b) - return size + n - } -} - -func bytesSplit(b []byte) (ret [][]byte, err error) { - // panic handler, in case we try accessing bytes incorrectly. - defer func() { - if e := recover(); e != nil { - ret = [][]byte{} - err = e.(error) - } - }() - - ret = [][]byte{} - for len(b) > 0 { - code, n := ReadVarintCode(b) - p := ProtocolWithCode(code) - if p.Code == 0 { - return [][]byte{}, fmt.Errorf("no protocol with code %d", b[0]) - } - - size := sizeForAddr(p, b[n:]) - length := n + size - ret = append(ret, b[:length]) - b = b[length:] - } - - return ret, nil -} - -func addressStringToBytes(p Protocol, s string) ([]byte, error) { - switch p.Code { - - case P_IP4: // ipv4 - i := net.ParseIP(s).To4() - if i == nil { - return nil, fmt.Errorf("failed to parse ip4 addr: %s", s) - } - return i, nil - - case P_IP6: // ipv6 - i := net.ParseIP(s).To16() - if i == nil { - return nil, fmt.Errorf("failed to parse ip6 addr: %s", s) - } - return i, nil - - // tcp udp dccp sctp - case P_TCP, P_UDP, P_DCCP, P_SCTP: - i, err := strconv.Atoi(s) - if err != nil { - return nil, fmt.Errorf("failed to parse %s addr: %s", p.Name, err) - } - if i >= 65536 { - return nil, fmt.Errorf("failed to parse %s addr: %s", p.Name, "greater than 65536") - } - b := make([]byte, 2) - binary.BigEndian.PutUint16(b, uint16(i)) - return b, nil - - case P_ONION: - addr := strings.Split(s, ":") - if len(addr) != 2 { - return nil, fmt.Errorf("failed to parse %s addr: %s does not contain a port number.", p.Name, s) - } - - // onion address without the ".onion" substring - if len(addr[0]) != 16 { - return nil, fmt.Errorf("failed to parse %s addr: %s not a Tor onion address.", p.Name, s) - } - onionHostBytes, err := base32.StdEncoding.DecodeString(strings.ToUpper(addr[0])) - if err != nil { - return nil, fmt.Errorf("failed to decode base32 %s addr: %s %s", p.Name, s, err) - } - - // onion port number - i, err := strconv.Atoi(addr[1]) - if err != nil { - return nil, fmt.Errorf("failed to parse %s addr: %s", p.Name, err) - } - if i >= 65536 { - return nil, fmt.Errorf("failed to parse %s addr: %s", p.Name, "port greater than 65536") - } - if i < 1 { - return nil, fmt.Errorf("failed to parse %s addr: %s", p.Name, "port less than 1") - } - - onionPortBytes := make([]byte, 2) - binary.BigEndian.PutUint16(onionPortBytes, uint16(i)) - bytes := []byte{} - bytes = append(bytes, onionHostBytes...) - bytes = append(bytes, onionPortBytes...) - return bytes, nil - - case P_IPFS: // ipfs - // the address is a varint prefixed multihash string representation - m, err := mh.FromB58String(s) - if err != nil { - return nil, fmt.Errorf("failed to parse ipfs addr: %s %s", s, err) - } - size := CodeToVarint(len(m)) - b := append(size, m...) - return b, nil - } - - return []byte{}, fmt.Errorf("failed to parse %s addr: unknown", p.Name) -} - -func addressBytesToString(p Protocol, b []byte) (string, error) { - switch p.Code { - - // ipv4,6 - case P_IP4, P_IP6: - return net.IP(b).String(), nil - - // tcp udp dccp sctp - case P_TCP, P_UDP, P_DCCP, P_SCTP: - i := binary.BigEndian.Uint16(b) - return strconv.Itoa(int(i)), nil - - case P_IPFS: // ipfs - // the address is a varint-prefixed multihash string representation - size, n := ReadVarintCode(b) - b = b[n:] - if len(b) != size { - panic("inconsistent lengths") - } - m, err := mh.Cast(b) - if err != nil { - return "", err - } - return m.B58String(), nil - } - - return "", fmt.Errorf("unknown protocol") -} diff --git a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/doc.go b/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/doc.go deleted file mode 100644 index c26e443c..00000000 --- a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/doc.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Package multiaddr provides an implementation of the Multiaddr network -address format. Multiaddr emphasizes explicitness, self-description, and -portability. It allows applications to treat addresses as opaque tokens, -and to avoid making assumptions about the address representation (e.g. length). -Learn more at https://github.com/jbenet/multiaddr - -Basic Use: - - import ( - "bytes" - "strings" - ma "github.com/jbenet/go-multiaddr" - ) - - // construct from a string (err signals parse failure) - m1, err := ma.NewMultiaddr("/ip4/127.0.0.1/udp/1234") - - // construct from bytes (err signals parse failure) - m2, err := ma.NewMultiaddrBytes(m1.Bytes()) - - // true - strings.Equal(m1.String(), "/ip4/127.0.0.1/udp/1234") - strings.Equal(m1.String(), m2.String()) - bytes.Equal(m1.Bytes(), m2.Bytes()) - m1.Equal(m2) - m2.Equal(m1) - - // tunneling (en/decap) - printer, _ := ma.NewMultiaddr("/ip4/192.168.0.13/tcp/80") - proxy, _ := ma.NewMultiaddr("/ip4/10.20.30.40/tcp/443") - printerOverProxy := proxy.Encapsulate(printer) - proxyAgain := printerOverProxy.Decapsulate(printer) - -*/ -package multiaddr diff --git a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/interface.go b/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/interface.go deleted file mode 100644 index 512cb623..00000000 --- a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/interface.go +++ /dev/null @@ -1,42 +0,0 @@ -package multiaddr - -/* -Multiaddr is a cross-protocol, cross-platform format for representing -internet addresses. It emphasizes explicitness and self-description. -Learn more here: https://github.com/jbenet/multiaddr - -Multiaddrs have both a binary and string representation. - - import ma "github.com/jbenet/go-multiaddr" - - addr, err := ma.NewMultiaddr("/ip4/1.2.3.4/tcp/80") - // err non-nil when parsing failed. - -*/ -type Multiaddr interface { - // Equal returns whether two Multiaddrs are exactly equal - Equal(Multiaddr) bool - - // Bytes returns the []byte representation of this Multiaddr - Bytes() []byte - - // String returns the string representation of this Multiaddr - // (may panic if internal state is corrupted) - String() string - - // Protocols returns the list of Protocols this Multiaddr includes - // will panic if protocol code incorrect (and bytes accessed incorrectly) - Protocols() []Protocol - - // Encapsulate wraps this Multiaddr around another. For example: - // - // /ip4/1.2.3.4 encapsulate /tcp/80 = /ip4/1.2.3.4/tcp/80 - // - Encapsulate(Multiaddr) Multiaddr - - // Decapsultate removes a Multiaddr wrapping. For example: - // - // /ip4/1.2.3.4/tcp/80 decapsulate /ip4/1.2.3.4 = /tcp/80 - // - Decapsulate(Multiaddr) Multiaddr -} diff --git a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/multiaddr.go b/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/multiaddr.go deleted file mode 100644 index 1cb7ad4e..00000000 --- a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/multiaddr.go +++ /dev/null @@ -1,115 +0,0 @@ -package multiaddr - -import ( - "bytes" - "fmt" - "strings" -) - -// multiaddr is the data structure representing a Multiaddr -type multiaddr struct { - bytes []byte -} - -// NewMultiaddr parses and validates an input string, returning a *Multiaddr -func NewMultiaddr(s string) (Multiaddr, error) { - b, err := stringToBytes(s) - if err != nil { - return nil, err - } - return &multiaddr{bytes: b}, nil -} - -// NewMultiaddrBytes initializes a Multiaddr from a byte representation. -// It validates it as an input string. -func NewMultiaddrBytes(b []byte) (Multiaddr, error) { - s, err := bytesToString(b) - if err != nil { - return nil, err - } - return NewMultiaddr(s) -} - -// Equal tests whether two multiaddrs are equal -func (m *multiaddr) Equal(m2 Multiaddr) bool { - return bytes.Equal(m.bytes, m2.Bytes()) -} - -// Bytes returns the []byte representation of this Multiaddr -func (m *multiaddr) Bytes() []byte { - // consider returning copy to prevent changing underneath us? - cpy := make([]byte, len(m.bytes)) - copy(cpy, m.bytes) - return cpy -} - -// String returns the string representation of a Multiaddr -func (m *multiaddr) String() string { - s, err := bytesToString(m.bytes) - if err != nil { - panic("multiaddr failed to convert back to string. corrupted?") - } - return s -} - -// Protocols returns the list of protocols this Multiaddr has. -// will panic in case we access bytes incorrectly. -func (m *multiaddr) Protocols() []Protocol { - - // panic handler, in case we try accessing bytes incorrectly. - defer func() { - if e := recover(); e != nil { - err := e.(error) - panic("Multiaddr.Protocols error: " + err.Error()) - } - }() - - size := 0 - ps := []Protocol{} - b := m.bytes[:] - for len(b) > 0 { - code, n := ReadVarintCode(b) - p := ProtocolWithCode(code) - if p.Code == 0 { - // this is a panic (and not returning err) because this should've been - // caught on constructing the Multiaddr - panic(fmt.Errorf("no protocol with code %d", b[0])) - } - ps = append(ps, p) - b = b[n:] - - size = sizeForAddr(p, b) - b = b[size:] - } - return ps -} - -// Encapsulate wraps a given Multiaddr, returning the resulting joined Multiaddr -func (m *multiaddr) Encapsulate(o Multiaddr) Multiaddr { - mb := m.bytes - ob := o.Bytes() - - b := make([]byte, len(mb)+len(ob)) - copy(b, mb) - copy(b[len(mb):], ob) - return &multiaddr{bytes: b} -} - -// Decapsulate unwraps Multiaddr up until the given Multiaddr is found. -func (m *multiaddr) Decapsulate(o Multiaddr) Multiaddr { - s1 := m.String() - s2 := o.String() - i := strings.LastIndex(s1, s2) - if i < 0 { - // if multiaddr not contained, returns a copy. - cpy := make([]byte, len(m.bytes)) - copy(cpy, m.bytes) - return &multiaddr{bytes: cpy} - } - - ma, err := NewMultiaddr(s1[:i]) - if err != nil { - panic("Multiaddr.Decapsulate incorrect byte boundaries.") - } - return ma -} diff --git a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/multiaddr_test.go b/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/multiaddr_test.go deleted file mode 100644 index 3a60751f..00000000 --- a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/multiaddr_test.go +++ /dev/null @@ -1,302 +0,0 @@ -package multiaddr - -import ( - "bytes" - "encoding/hex" - "testing" -) - -func newMultiaddr(t *testing.T, a string) Multiaddr { - m, err := NewMultiaddr(a) - if err != nil { - t.Error(err) - } - return m -} - -func TestConstructFails(t *testing.T) { - cases := []string{ - "/ip4", - "/ip4/::1", - "/ip4/fdpsofodsajfdoisa", - "/ip6", - "/udp", - "/tcp", - "/sctp", - "/udp/65536", - "/tcp/65536", - "/onion/9imaq4ygg2iegci7:80", - "/onion/aaimaq4ygg2iegci7:80", - "/onion/timaq4ygg2iegci7:0", - "/onion/timaq4ygg2iegci7:-1", - "/onion/timaq4ygg2iegci7", - "/onion/timaq4ygg2iegci@:666", - "/udp/1234/sctp", - "/udp/1234/udt/1234", - "/udp/1234/utp/1234", - "/ip4/127.0.0.1/udp/jfodsajfidosajfoidsa", - "/ip4/127.0.0.1/udp", - "/ip4/127.0.0.1/tcp/jfodsajfidosajfoidsa", - "/ip4/127.0.0.1/tcp", - "/ip4/127.0.0.1/ipfs", - "/ip4/127.0.0.1/ipfs/tcp", - } - - for _, a := range cases { - if _, err := NewMultiaddr(a); err == nil { - t.Errorf("should have failed: %s - %s", a, err) - } - } -} - -func TestConstructSucceeds(t *testing.T) { - cases := []string{ - "/ip4/1.2.3.4", - "/ip4/0.0.0.0", - "/ip6/::1", - "/ip6/2601:9:4f81:9700:803e:ca65:66e8:c21", - "/onion/timaq4ygg2iegci7:1234", - "/onion/timaq4ygg2iegci7:80/http", - "/udp/0", - "/tcp/0", - "/sctp/0", - "/udp/1234", - "/tcp/1234", - "/sctp/1234", - "/udp/65535", - "/tcp/65535", - "/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC", - "/udp/1234/sctp/1234", - "/udp/1234/udt", - "/udp/1234/utp", - "/tcp/1234/http", - "/tcp/1234/https", - "/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC/tcp/1234", - "/ip4/127.0.0.1/udp/1234", - "/ip4/127.0.0.1/udp/0", - "/ip4/127.0.0.1/tcp/1234", - "/ip4/127.0.0.1/tcp/1234/", - "/ip4/127.0.0.1/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC", - "/ip4/127.0.0.1/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC/tcp/1234", - } - - for _, a := range cases { - if _, err := NewMultiaddr(a); err != nil { - t.Errorf("should have succeeded: %s -- %s", a, err) - } - } -} - -func TestEqual(t *testing.T) { - m1 := newMultiaddr(t, "/ip4/127.0.0.1/udp/1234") - m2 := newMultiaddr(t, "/ip4/127.0.0.1/tcp/1234") - m3 := newMultiaddr(t, "/ip4/127.0.0.1/tcp/1234") - m4 := newMultiaddr(t, "/ip4/127.0.0.1/tcp/1234/") - - if m1.Equal(m2) { - t.Error("should not be equal") - } - - if m2.Equal(m1) { - t.Error("should not be equal") - } - - if !m2.Equal(m3) { - t.Error("should be equal") - } - - if !m3.Equal(m2) { - t.Error("should be equal") - } - - if !m1.Equal(m1) { - t.Error("should be equal") - } - - if !m2.Equal(m4) { - t.Error("should be equal") - } - - if !m4.Equal(m3) { - t.Error("should be equal") - } -} - -func TestStringToBytes(t *testing.T) { - - testString := func(s string, h string) { - b1, err := hex.DecodeString(h) - if err != nil { - t.Error("failed to decode hex", h) - } - - b2, err := stringToBytes(s) - if err != nil { - t.Error("failed to convert", s) - } - - if !bytes.Equal(b1, b2) { - t.Error("failed to convert", s, "to", b1, "got", b2) - } - } - - testString("/ip4/127.0.0.1/udp/1234", "047f0000011104d2") - testString("/ip4/127.0.0.1/tcp/4321", "047f0000010610e1") - testString("/ip4/127.0.0.1/udp/1234/ip4/127.0.0.1/tcp/4321", "047f0000011104d2047f0000010610e1") -} - -func TestBytesToString(t *testing.T) { - - testString := func(s1 string, h string) { - b, err := hex.DecodeString(h) - if err != nil { - t.Error("failed to decode hex", h) - } - - s2, err := bytesToString(b) - if err != nil { - t.Error("failed to convert", b) - } - - if s1 != s2 { - t.Error("failed to convert", b, "to", s1, "got", s2) - } - } - - testString("/ip4/127.0.0.1/udp/1234", "047f0000011104d2") - testString("/ip4/127.0.0.1/tcp/4321", "047f0000010610e1") - testString("/ip4/127.0.0.1/udp/1234/ip4/127.0.0.1/tcp/4321", "047f0000011104d2047f0000010610e1") -} - -func TestBytesSplitAndJoin(t *testing.T) { - - testString := func(s string, res []string) { - m, err := NewMultiaddr(s) - if err != nil { - t.Fatal("failed to convert", s, err) - } - - split := Split(m) - if len(split) != len(res) { - t.Error("not enough split components", split) - return - } - - for i, a := range split { - if a.String() != res[i] { - t.Errorf("split component failed: %s != %s", a, res[i]) - } - } - - joined := Join(split...) - if !m.Equal(joined) { - t.Errorf("joined components failed: %s != %s", m, joined) - } - - // modifying underlying bytes is fine. - m2 := m.(*multiaddr) - for i := range m2.bytes { - m2.bytes[i] = 0 - } - - for i, a := range split { - if a.String() != res[i] { - t.Errorf("split component failed: %s != %s", a, res[i]) - } - } - } - - testString("/ip4/1.2.3.4/udp/1234", []string{"/ip4/1.2.3.4", "/udp/1234"}) - testString("/ip4/1.2.3.4/tcp/1/ip4/2.3.4.5/udp/2", - []string{"/ip4/1.2.3.4", "/tcp/1", "/ip4/2.3.4.5", "/udp/2"}) - testString("/ip4/1.2.3.4/utp/ip4/2.3.4.5/udp/2/udt", - []string{"/ip4/1.2.3.4", "/utp", "/ip4/2.3.4.5", "/udp/2", "/udt"}) -} - -func TestProtocols(t *testing.T) { - m, err := NewMultiaddr("/ip4/127.0.0.1/udp/1234") - if err != nil { - t.Error("failed to construct", "/ip4/127.0.0.1/udp/1234") - } - - ps := m.Protocols() - if ps[0].Code != ProtocolWithName("ip4").Code { - t.Error(ps[0], ProtocolWithName("ip4")) - t.Error("failed to get ip4 protocol") - } - - if ps[1].Code != ProtocolWithName("udp").Code { - t.Error(ps[1], ProtocolWithName("udp")) - t.Error("failed to get udp protocol") - } - -} - -func TestProtocolsWithString(t *testing.T) { - pwn := ProtocolWithName - good := map[string][]Protocol{ - "/ip4": []Protocol{pwn("ip4")}, - "/ip4/tcp": []Protocol{pwn("ip4"), pwn("tcp")}, - "ip4/tcp/udp/ip6": []Protocol{pwn("ip4"), pwn("tcp"), pwn("udp"), pwn("ip6")}, - "////////ip4/tcp": []Protocol{pwn("ip4"), pwn("tcp")}, - "ip4/udp/////////": []Protocol{pwn("ip4"), pwn("udp")}, - "////////ip4/tcp////////": []Protocol{pwn("ip4"), pwn("tcp")}, - } - - for s, ps1 := range good { - ps2, err := ProtocolsWithString(s) - if err != nil { - t.Error("ProtocolsWithString(%s) should have succeeded", s) - } - - for i, ps1p := range ps1 { - ps2p := ps2[i] - if ps1p.Code != ps2p.Code { - t.Errorf("mismatch: %s != %s, %s", ps1p.Name, ps2p.Name, s) - } - } - } - - bad := []string{ - "dsijafd", // bogus proto - "/ip4/tcp/fidosafoidsa", // bogus proto - "////////ip4/tcp/21432141/////////", // bogus proto - "////////ip4///////tcp/////////", // empty protos in between - } - - for _, s := range bad { - if _, err := ProtocolsWithString(s); err == nil { - t.Error("ProtocolsWithString(%s) should have failed", s) - } - } - -} - -func TestEncapsulate(t *testing.T) { - m, err := NewMultiaddr("/ip4/127.0.0.1/udp/1234") - if err != nil { - t.Error(err) - } - - m2, err := NewMultiaddr("/udp/5678") - if err != nil { - t.Error(err) - } - - b := m.Encapsulate(m2) - if s := b.String(); s != "/ip4/127.0.0.1/udp/1234/udp/5678" { - t.Error("encapsulate /ip4/127.0.0.1/udp/1234/udp/5678 failed.", s) - } - - m3, _ := NewMultiaddr("/udp/5678") - c := b.Decapsulate(m3) - if s := c.String(); s != "/ip4/127.0.0.1/udp/1234" { - t.Error("decapsulate /udp failed.", "/ip4/127.0.0.1/udp/1234", s) - } - - m4, _ := NewMultiaddr("/ip4/127.0.0.1") - d := c.Decapsulate(m4) - if s := d.String(); s != "" { - t.Error("decapsulate /ip4 failed.", "/", s) - } -} diff --git a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/package.json b/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/package.json deleted file mode 100644 index feacb25f..00000000 --- a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "go-multiaddr", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "go-multihash", - "hash": "Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a", - "version": "0.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/jbenet/go-multiaddr" - } -} \ No newline at end of file diff --git a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/protocols.csv b/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/protocols.csv deleted file mode 100644 index fa27ba34..00000000 --- a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/protocols.csv +++ /dev/null @@ -1,13 +0,0 @@ -code size name -4 32 ip4 -6 16 tcp -17 16 udp -33 16 dccp -41 128 ip6 -132 16 sctp -301 0 udt -302 0 utp -421 V ipfs -480 0 http -443 0 https -444 10 onion \ No newline at end of file diff --git a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/protocols.go b/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/protocols.go deleted file mode 100644 index c233cef1..00000000 --- a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/protocols.go +++ /dev/null @@ -1,118 +0,0 @@ -package multiaddr - -import ( - "encoding/binary" - "fmt" - "strings" -) - -// Protocol is a Multiaddr protocol description structure. -type Protocol struct { - Code int - Size int // a size of -1 indicates a length-prefixed variable size - Name string - VCode []byte -} - -// replicating table here to: -// 1. avoid parsing the csv -// 2. ensuring errors in the csv don't screw up code. -// 3. changing a number has to happen in two places. -const ( - P_IP4 = 4 - P_TCP = 6 - P_UDP = 17 - P_DCCP = 33 - P_IP6 = 41 - P_SCTP = 132 - P_UTP = 301 - P_UDT = 302 - P_IPFS = 421 - P_HTTP = 480 - P_HTTPS = 443 - P_ONION = 444 -) - -// These are special sizes -const ( - LengthPrefixedVarSize = -1 -) - -// Protocols is the list of multiaddr protocols supported by this module. -var Protocols = []Protocol{ - Protocol{P_IP4, 32, "ip4", CodeToVarint(P_IP4)}, - Protocol{P_TCP, 16, "tcp", CodeToVarint(P_TCP)}, - Protocol{P_UDP, 16, "udp", CodeToVarint(P_UDP)}, - Protocol{P_DCCP, 16, "dccp", CodeToVarint(P_DCCP)}, - Protocol{P_IP6, 128, "ip6", CodeToVarint(P_IP6)}, - // these require varint: - Protocol{P_SCTP, 16, "sctp", CodeToVarint(P_SCTP)}, - Protocol{P_ONION, 80, "onion", CodeToVarint(P_ONION)}, - Protocol{P_UTP, 0, "utp", CodeToVarint(P_UTP)}, - Protocol{P_UDT, 0, "udt", CodeToVarint(P_UDT)}, - Protocol{P_HTTP, 0, "http", CodeToVarint(P_HTTP)}, - Protocol{P_HTTPS, 0, "https", CodeToVarint(P_HTTPS)}, - Protocol{P_IPFS, LengthPrefixedVarSize, "ipfs", CodeToVarint(P_IPFS)}, -} - -// ProtocolWithName returns the Protocol description with given string name. -func ProtocolWithName(s string) Protocol { - for _, p := range Protocols { - if p.Name == s { - return p - } - } - return Protocol{} -} - -// ProtocolWithCode returns the Protocol description with given protocol code. -func ProtocolWithCode(c int) Protocol { - for _, p := range Protocols { - if p.Code == c { - return p - } - } - return Protocol{} -} - -// ProtocolsWithString returns a slice of protocols matching given string. -func ProtocolsWithString(s string) ([]Protocol, error) { - s = strings.Trim(s, "/") - sp := strings.Split(s, "/") - if len(sp) == 0 { - return nil, nil - } - - t := make([]Protocol, len(sp)) - for i, name := range sp { - p := ProtocolWithName(name) - if p.Code == 0 { - return nil, fmt.Errorf("no protocol with name: %s", name) - } - t[i] = p - } - return t, nil -} - -// CodeToVarint converts an integer to a varint-encoded []byte -func CodeToVarint(num int) []byte { - buf := make([]byte, (num/7)+1) // varint package is uint64 - n := binary.PutUvarint(buf, uint64(num)) - return buf[:n] -} - -// VarintToCode converts a varint-encoded []byte to an integer protocol code -func VarintToCode(buf []byte) int { - num, _ := ReadVarintCode(buf) - return num -} - -// ReadVarintCode reads a varint code from the beginning of buf. -// returns the code, and the number of bytes read. -func ReadVarintCode(buf []byte) (int, int) { - num, n := binary.Uvarint(buf) - if n < 0 { - panic("varints larger than uint64 not yet supported") - } - return int(num), n -} diff --git a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/util.go b/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/util.go deleted file mode 100644 index d1b54afb..00000000 --- a/vendor/gx/QmVUi2ncqnU48zsPgR1rQosDGwY3SSZ1Ndp33j33YjXdsj/go-multiaddr/util.go +++ /dev/null @@ -1,56 +0,0 @@ -package multiaddr - -import "fmt" - -// Split returns the sub-address portions of a multiaddr. -func Split(m Multiaddr) []Multiaddr { - split, err := bytesSplit(m.Bytes()) - if err != nil { - panic(fmt.Errorf("invalid multiaddr %s", m.String())) - } - - addrs := make([]Multiaddr, len(split)) - for i, addr := range split { - addrs[i] = &multiaddr{bytes: addr} - } - return addrs -} - -// Join returns a combination of addresses. -func Join(ms ...Multiaddr) Multiaddr { - - length := 0 - bs := make([][]byte, len(ms)) - for i, m := range ms { - bs[i] = m.Bytes() - length += len(bs[i]) - } - - bidx := 0 - b := make([]byte, length) - for _, mb := range bs { - for i := range mb { - b[bidx] = mb[i] - bidx++ - } - } - return &multiaddr{bytes: b} -} - -// Cast re-casts a byte slice as a multiaddr. will panic if it fails to parse. -func Cast(b []byte) Multiaddr { - _, err := bytesToString(b) - if err != nil { - panic(fmt.Errorf("multiaddr failed to parse: %s", err)) - } - return &multiaddr{bytes: b} -} - -// StringCast like Cast, but parses a string. Will also panic if it fails to parse. -func StringCast(s string) Multiaddr { - m, err := NewMultiaddr(s) - if err != nil { - panic(fmt.Errorf("multiaddr failed to parse: %s", err)) - } - return m -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/.gxignore b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/AUTHORS b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/AUTHORS deleted file mode 100644 index 15167cd7..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# 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/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/CONTRIBUTING.md b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/CONTRIBUTING.md deleted file mode 100644 index 88dff59b..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/CONTRIBUTING.md +++ /dev/null @@ -1,31 +0,0 @@ -# Contributing to Go - -Go is an open source project. - -It is the work of hundreds of contributors. We appreciate your help! - - -## Filing issues - -When [filing an issue](https://golang.org/issue/new), make sure to answer these five questions: - -1. What version of Go are you using (`go version`)? -2. What operating system and processor architecture are you using? -3. What did you do? -4. What did you expect to see? -5. What did you see instead? - -General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker. -The gophers there will answer or ask you to file an issue if you've tripped over a bug. - -## Contributing code - -Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) -before sending patches. - -**We do not accept GitHub pull requests** -(we use [Gerrit](https://code.google.com/p/gerrit/) instead for code review). - -Unless otherwise noted, the Go source files are distributed under -the BSD-style license found in the LICENSE file. - diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/CONTRIBUTORS b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/CONTRIBUTORS deleted file mode 100644 index 1c4577e9..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# 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/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/LICENSE b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/LICENSE deleted file mode 100644 index 6a66aea5..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -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/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/PATENTS b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -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/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/README b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/README deleted file mode 100644 index 9ec24ea4..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/README +++ /dev/null @@ -1,3 +0,0 @@ -This repository holds supplementary Go libraries for text processing, many involving Unicode. - -To submit changes to this repository, see http://golang.org/doc/contribute.html. diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/cases.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/cases.go deleted file mode 100644 index e6794b2c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/cases.go +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go gen_trieval.go - -// Package cases provides general and language-specific case mappers. -package cases - -import ( - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// References: -// - Unicode Reference Manual Chapter 3.13, 4.2, and 5.18. -// - http://www.unicode.org/reports/tr29/ -// - http://www.unicode.org/Public/6.3.0/ucd/CaseFolding.txt -// - http://www.unicode.org/Public/6.3.0/ucd/SpecialCasing.txt -// - http://www.unicode.org/Public/6.3.0/ucd/DerivedCoreProperties.txt -// - http://www.unicode.org/Public/6.3.0/ucd/auxiliary/WordBreakProperty.txt -// - http://www.unicode.org/Public/6.3.0/ucd/auxiliary/WordBreakTest.txt -// - http://userguide.icu-project.org/transforms/casemappings - -// TODO: -// - Case folding -// - Wide and Narrow? -// - Segmenter option for title casing. -// - ASCII fast paths -// - Encode Soft-Dotted property within trie somehow. - -// A Caser transforms given input to a certain case. It implements -// transform.Transformer. -// -// A Caser may be stateful and should therefore not be shared between -// goroutines. -type Caser struct { - t transform.Transformer -} - -// Bytes returns a new byte slice with the result of converting b to the case -// form implemented by c. -func (c Caser) Bytes(b []byte) []byte { - b, _, _ = transform.Bytes(c.t, b) - return b -} - -// String returns a string with the result of transforming s to the case form -// implemented by c. -func (c Caser) String(s string) string { - s, _, _ = transform.String(c.t, s) - return s -} - -// Reset resets the Caser to be reused for new input after a previous call to -// Transform. -func (c Caser) Reset() { c.t.Reset() } - -// Transform implements the Transformer interface and transforms the given input -// to the case form implemented by c. -func (c Caser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - return c.t.Transform(dst, src, atEOF) -} - -// Upper returns a Caser for language-specific uppercasing. -func Upper(t language.Tag, opts ...Option) Caser { - return Caser{makeUpper(t, getOpts(opts...))} -} - -// Lower returns a Caser for language-specific lowercasing. -func Lower(t language.Tag, opts ...Option) Caser { - return Caser{makeLower(t, getOpts(opts...))} -} - -// Title returns a Caser for language-specific title casing. It uses an -// approximation of the default Unicode Word Break algorithm. -func Title(t language.Tag, opts ...Option) Caser { - return Caser{makeTitle(t, getOpts(opts...))} -} - -// Fold returns a Caser that implements Unicode case folding. -// -// Folding is like mapping to lowercase without context-dependent mappings. Its -// primary use is for caseless matching. Note that case folding does not -// normalize the input and may not preserve a normal form. -func Fold(t language.Tag, opts ...Option) Caser { - panic("TODO: implement") -} - -// An Option is used to modify the behavior of a Caser. -type Option func(o *options) - -var ( - // NoLower disables the lowercasing of non-leading letters for a title - // caser. - NoLower Option = noLower - - // Compact omits mappings in case folding for characters that would grow the - // input. - Compact Option = compact -) - -// TODO: option to preserve a normal form, if applicable? - -type options struct { - noLower bool - simple bool - - // TODO: segmenter, max ignorable, alternative versions, etc. - - noFinalSigma bool // Only used for testing. -} - -func getOpts(o ...Option) (res options) { - for _, f := range o { - f(&res) - } - return -} - -func noLower(o *options) { - o.noLower = true -} - -func compact(o *options) { - o.simple = true -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/context.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/context.go deleted file mode 100644 index d315f64f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/context.go +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cases - -import ( - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// A context is used for iterating over source bytes, fetching case info and -// writing to a destination buffer. -// -// Casing operations may need more than one rune of context to decide how a rune -// should be cased. Casing implementations should call checkpoint on context -// whenever it is known to be safe to return the runes processed so far. -// -// It is recommended for implementations to not allow for more than 30 case -// ignorables as lookahead (analogous to the limit in norm) and to use state if -// unbounded lookahead is needed for cased runes. -type context struct { - dst, src []byte - atEOF bool - - pDst int // pDst points past the last written rune in dst. - pSrc int // pSrc points to the start of the currently scanned rune. - - // checkpoints safe to return in Transform, where nDst <= pDst and nSrc <= pSrc. - nDst, nSrc int - err error - - sz int // size of current rune - info info // case information of currently scanned rune - - // State preserved across calls to Transform. - isMidWord bool // false if next cased letter needs to be title-cased. -} - -func (c *context) Reset() { - c.isMidWord = false -} - -// ret returns the return values for the Transform method. It checks whether -// there were insufficient bytes in src to complete and introduces an error -// accordingly, if necessary. -func (c *context) ret() (nDst, nSrc int, err error) { - if c.err != nil || c.nSrc == len(c.src) { - return c.nDst, c.nSrc, c.err - } - // This point is only reached by mappers if there was no short destination - // buffer. This means that the source buffer was exhausted and that c.sz was - // set to 0 by next. - if c.atEOF && c.pSrc == len(c.src) { - return c.pDst, c.pSrc, nil - } - return c.nDst, c.nSrc, transform.ErrShortSrc -} - -// checkpoint sets the return value buffer points for Transform to the current -// positions. -func (c *context) checkpoint() { - if c.err == nil { - c.nDst, c.nSrc = c.pDst, c.pSrc+c.sz - } -} - -// unreadRune causes the last rune read by next to be reread on the next -// invocation of next. Only one unreadRune may be called after a call to next. -func (c *context) unreadRune() { - c.sz = 0 -} - -func (c *context) next() bool { - c.pSrc += c.sz - if c.pSrc == len(c.src) || c.err != nil { - c.info, c.sz = 0, 0 - return false - } - v, sz := trie.lookup(c.src[c.pSrc:]) - c.info, c.sz = info(v), sz - if c.sz == 0 { - if c.atEOF { - // A zero size means we have an incomplete rune. If we are atEOF, - // this means it is an illegal rune, which we will consume one - // byte at a time. - c.sz = 1 - } else { - c.err = transform.ErrShortSrc - return false - } - } - return true -} - -// writeBytes adds bytes to dst. -func (c *context) writeBytes(b []byte) bool { - if len(c.dst)-c.pDst < len(b) { - c.err = transform.ErrShortDst - return false - } - // This loop is faster than using copy. - for _, ch := range b { - c.dst[c.pDst] = ch - c.pDst++ - } - return true -} - -// writeString writes the given string to dst. -func (c *context) writeString(s string) bool { - if len(c.dst)-c.pDst < len(s) { - c.err = transform.ErrShortDst - return false - } - // This loop is faster than using copy. - for i := 0; i < len(s); i++ { - c.dst[c.pDst] = s[i] - c.pDst++ - } - return true -} - -// copy writes the current rune to dst. -func (c *context) copy() bool { - return c.writeBytes(c.src[c.pSrc : c.pSrc+c.sz]) -} - -// copyXOR copies the current rune to dst and modifies it by applying the XOR -// pattern of the case info. It is the responsibility of the caller to ensure -// that this is a rune with a XOR pattern defined. -func (c *context) copyXOR() bool { - if !c.copy() { - return false - } - if c.info&xorIndexBit == 0 { - // Fast path for 6-bit XOR pattern, which covers most cases. - c.dst[c.pDst-1] ^= byte(c.info >> xorShift) - } else { - // Interpret XOR bits as an index. - // TODO: test performance for unrolling this loop. Verify that we have - // at least two bytes and at most three. - idx := c.info >> xorShift - for p := c.pDst - 1; ; p-- { - c.dst[p] ^= xorData[idx] - idx-- - if xorData[idx] == 0 { - break - } - } - } - return true -} - -// hasPrefix returns true if src[pSrc:] starts with the given string. -func (c *context) hasPrefix(s string) bool { - b := c.src[c.pSrc:] - if len(b) < len(s) { - return false - } - for i, c := range b[:len(s)] { - if c != s[i] { - return false - } - } - return true -} - -// caseType returns an info with only the case bits, normalized to either -// cLower, cUpper, cTitle or cUncased. -func (c *context) caseType() info { - cm := c.info & 0x7 - if cm < 4 { - return cm - } - if cm >= cXORCase { - // xor the last bit of the rune with the case type bits. - b := c.src[c.pSrc+c.sz-1] - return info(b&1) ^ cm&0x3 - } - if cm == cIgnorableCased { - return cLower - } - return cUncased -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/context_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/context_test.go deleted file mode 100644 index 36b7cc2a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/context_test.go +++ /dev/null @@ -1,378 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cases - -import ( - "strings" - "testing" - "unicode" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable" -) - -// The following definitions are taken directly from Chapter 3 of The Unicode -// Standard. - -func propCased(r rune) bool { - return propLower(r) || propUpper(r) || unicode.IsTitle(r) -} - -func propLower(r rune) bool { - return unicode.IsLower(r) || unicode.Is(unicode.Other_Lowercase, r) -} - -func propUpper(r rune) bool { - return unicode.IsUpper(r) || unicode.Is(unicode.Other_Uppercase, r) -} - -func propIgnore(r rune) bool { - if unicode.In(r, unicode.Mn, unicode.Me, unicode.Cf, unicode.Lm, unicode.Sk) { - return true - } - return caseIgnorable[r] -} - -func hasBreakProp(r rune) bool { - // binary search over ranges - lo := 0 - hi := len(breakProp) - for lo < hi { - m := lo + (hi-lo)/2 - bp := &breakProp[m] - if bp.lo <= r && r <= bp.hi { - return true - } - if r < bp.lo { - hi = m - } else { - lo = m + 1 - } - } - return false -} - -func contextFromRune(r rune) *context { - c := context{dst: make([]byte, 128), src: []byte(string(r)), atEOF: true} - c.next() - return &c -} - -func TestCaseProperties(t *testing.T) { - assigned := rangetable.Assigned(UnicodeVersion) - coreVersion := rangetable.Assigned(unicode.Version) - for r := rune(0); r <= lastRuneForTesting; r++ { - if !unicode.In(r, assigned) || !unicode.In(r, coreVersion) { - continue - } - c := contextFromRune(r) - if got, want := c.info.isCaseIgnorable(), propIgnore(r); got != want { - t.Errorf("caseIgnorable(%U): got %v; want %v (%x)", r, got, want, c.info) - } - // New letters may change case types, but existing case pairings should - // not change. See Case Pair Stability in - // http://unicode.org/policies/stability_policy.html. - if rf := unicode.SimpleFold(r); rf != r && unicode.In(rf, assigned) { - if got, want := c.info.isCased(), propCased(r); got != want { - t.Errorf("cased(%U): got %v; want %v (%x)", r, got, want, c.info) - } - if got, want := c.caseType() == cUpper, propUpper(r); got != want { - t.Errorf("upper(%U): got %v; want %v (%x)", r, got, want, c.info) - } - if got, want := c.caseType() == cLower, propLower(r); got != want { - t.Errorf("lower(%U): got %v; want %v (%x)", r, got, want, c.info) - } - } - if got, want := c.info.isBreak(), hasBreakProp(r); got != want { - t.Errorf("isBreak(%U): got %v; want %v (%x)", r, got, want, c.info) - } - } - // TODO: get title case from unicode file. -} - -func TestMapping(t *testing.T) { - assigned := rangetable.Assigned(UnicodeVersion) - coreVersion := rangetable.Assigned(unicode.Version) - apply := func(r rune, f func(c *context) bool) string { - c := contextFromRune(r) - f(c) - return string(c.dst[:c.pDst]) - } - - for r, tt := range special { - if got, want := apply(r, lower), tt.toLower; got != want { - t.Errorf("lowerSpecial:(%U): got %+q; want %+q", r, got, want) - } - if got, want := apply(r, title), tt.toTitle; got != want { - t.Errorf("titleSpecial:(%U): got %+q; want %+q", r, got, want) - } - if got, want := apply(r, upper), tt.toUpper; got != want { - t.Errorf("upperSpecial:(%U): got %+q; want %+q", r, got, want) - } - } - - for r := rune(0); r <= lastRuneForTesting; r++ { - if !unicode.In(r, assigned) || !unicode.In(r, coreVersion) { - continue - } - if rf := unicode.SimpleFold(r); rf == r || !unicode.In(rf, assigned) { - continue - } - if _, ok := special[r]; ok { - continue - } - want := string(unicode.ToLower(r)) - if got := apply(r, lower); got != want { - t.Errorf("lower:%q (%U): got %q %U; want %q %U", r, r, got, []rune(got), want, []rune(want)) - } - - want = string(unicode.ToUpper(r)) - if got := apply(r, upper); got != want { - t.Errorf("upper:%q (%U): got %q %U; want %q %U", r, r, got, []rune(got), want, []rune(want)) - } - - want = string(unicode.ToTitle(r)) - if got := apply(r, title); got != want { - t.Errorf("title:%q (%U): got %q %U; want %q %U", r, r, got, []rune(got), want, []rune(want)) - } - } -} - -func TestCCC(t *testing.T) { - assigned := rangetable.Assigned(UnicodeVersion) - normVersion := rangetable.Assigned(norm.Version) - for r := rune(0); r <= lastRuneForTesting; r++ { - if !unicode.In(r, assigned) || !unicode.In(r, normVersion) { - continue - } - c := contextFromRune(r) - - p := norm.NFC.PropertiesString(string(r)) - want := cccOther - switch p.CCC() { - case 0: - want = cccZero - case above: - want = cccAbove - } - if got := c.info.cccType(); got != want { - t.Errorf("%U: got %x; want %x", r, got, want) - } - } -} - -func TestWordBreaks(t *testing.T) { - for i, tt := range breakTest { - parts := strings.Split(tt, "|") - want := "" - for _, s := range parts { - want += Title(language.Und).String(s) - } - src := strings.Join(parts, "") - got := Title(language.Und).String(src) - if got != want { - t.Errorf("%d: title(%q) = %q; want %q", i, src, got, want) - } - } -} - -func TestContext(t *testing.T) { - tests := []struct { - desc string - dstSize int - atEOF bool - src string - out string - nSrc int - err error - ops string - prefixArg string - prefixWant bool - }{{ - desc: "next: past end, atEOF, no checkpoint", - dstSize: 10, - atEOF: true, - src: "12", - out: "", - nSrc: 2, - ops: "next;next;next", - // Test that calling prefix with a non-empty argument when the buffer - // is depleted returns false. - prefixArg: "x", - prefixWant: false, - }, { - desc: "next: not at end, atEOF, no checkpoint", - dstSize: 10, - atEOF: false, - src: "12", - out: "", - nSrc: 0, - err: transform.ErrShortSrc, - ops: "next;next", - prefixArg: "", - prefixWant: true, - }, { - desc: "next: past end, !atEOF, no checkpoint", - dstSize: 10, - atEOF: false, - src: "12", - out: "", - nSrc: 0, - err: transform.ErrShortSrc, - ops: "next;next;next", - prefixArg: "", - prefixWant: true, - }, { - desc: "next: past end, !atEOF, checkpoint", - dstSize: 10, - atEOF: false, - src: "12", - out: "", - nSrc: 2, - ops: "next;next;checkpoint;next", - prefixArg: "", - prefixWant: true, - }, { - desc: "copy: exact count, atEOF, no checkpoint", - dstSize: 2, - atEOF: true, - src: "12", - out: "12", - nSrc: 2, - ops: "next;copy;next;copy;next", - prefixArg: "", - prefixWant: true, - }, { - desc: "copy: past end, !atEOF, no checkpoint", - dstSize: 2, - atEOF: false, - src: "12", - out: "", - nSrc: 0, - err: transform.ErrShortSrc, - ops: "next;copy;next;copy;next", - prefixArg: "", - prefixWant: true, - }, { - desc: "copy: past end, !atEOF, checkpoint", - dstSize: 2, - atEOF: false, - src: "12", - out: "12", - nSrc: 2, - ops: "next;copy;next;copy;checkpoint;next", - prefixArg: "", - prefixWant: true, - }, { - desc: "copy: short dst", - dstSize: 1, - atEOF: false, - src: "12", - out: "", - nSrc: 0, - err: transform.ErrShortDst, - ops: "next;copy;next;copy;checkpoint;next", - prefixArg: "12", - prefixWant: false, - }, { - desc: "copy: short dst, checkpointed", - dstSize: 1, - atEOF: false, - src: "12", - out: "1", - nSrc: 1, - err: transform.ErrShortDst, - ops: "next;copy;checkpoint;next;copy;next", - prefixArg: "", - prefixWant: true, - }, { - desc: "writeString: simple", - dstSize: 3, - atEOF: true, - src: "1", - out: "1ab", - nSrc: 1, - ops: "next;copy;writeab;next", - prefixArg: "", - prefixWant: true, - }, { - desc: "writeString: short dst", - dstSize: 2, - atEOF: true, - src: "12", - out: "", - nSrc: 0, - err: transform.ErrShortDst, - ops: "next;copy;writeab;next", - prefixArg: "2", - prefixWant: true, - }, { - desc: "writeString: simple", - dstSize: 3, - atEOF: true, - src: "12", - out: "1ab", - nSrc: 2, - ops: "next;copy;next;writeab;next", - prefixArg: "", - prefixWant: true, - }, { - desc: "writeString: short dst", - dstSize: 2, - atEOF: true, - src: "12", - out: "", - nSrc: 0, - err: transform.ErrShortDst, - ops: "next;copy;next;writeab;next", - prefixArg: "1", - prefixWant: false, - }, { - desc: "prefix", - dstSize: 2, - atEOF: true, - src: "12", - out: "", - nSrc: 0, - // Context will assign an ErrShortSrc if the input wasn't exhausted. - err: transform.ErrShortSrc, - prefixArg: "12", - prefixWant: true, - }} - for _, tt := range tests { - c := context{dst: make([]byte, tt.dstSize), src: []byte(tt.src), atEOF: tt.atEOF} - - for _, op := range strings.Split(tt.ops, ";") { - switch op { - case "next": - c.next() - case "checkpoint": - c.checkpoint() - case "writeab": - c.writeString("ab") - case "copy": - c.copy() - case "": - default: - t.Fatalf("unknown op %q", op) - } - } - if got := c.hasPrefix(tt.prefixArg); got != tt.prefixWant { - t.Errorf("%s:\nprefix was %v; want %v", tt.desc, got, tt.prefixWant) - } - nDst, nSrc, err := c.ret() - if err != tt.err { - t.Errorf("%s:\nerror was %v; want %v", tt.desc, err, tt.err) - } - if out := string(c.dst[:nDst]); out != tt.out { - t.Errorf("%s:\nout was %q; want %q", tt.desc, out, tt.out) - } - if nSrc != tt.nSrc { - t.Errorf("%s:\nnSrc was %d; want %d", tt.desc, nSrc, tt.nSrc) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/example_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/example_test.go deleted file mode 100644 index 6cb2a60b..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/example_test.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cases_test - -import ( - "fmt" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -func Example() { - src := []string{ - "hello world!", - "i with dot", - "'n ijsberg", - "here comes O'Brian", - } - for _, c := range []cases.Caser{ - cases.Lower(language.Und), - cases.Upper(language.Turkish), - cases.Title(language.Dutch), - cases.Title(language.Und, cases.NoLower), - } { - fmt.Println() - for _, s := range src { - fmt.Println(c.String(s)) - } - } - - // Output: - // hello world! - // i with dot - // 'n ijsberg - // here comes o'brian - // - // HELLO WORLD! - // Ä° WÄ°TH DOT - // 'N Ä°JSBERG - // HERE COMES O'BRÄ°AN - // - // Hello World! - // I With Dot - // 'n IJsberg - // Here Comes O'brian - // - // Hello World! - // I With Dot - // 'N Ijsberg - // Here Comes O'Brian -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/gen.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/gen.go deleted file mode 100644 index be00c0ca..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/gen.go +++ /dev/null @@ -1,819 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// This program generates the trie for casing operations. The Unicode casing -// algorithm requires the lookup of various properties and mappings for each -// rune. The table generated by this generator combines several of the most -// frequently used of these into a single trie so that they can be accessed -// with a single lookup. -package main - -import ( - "bytes" - "fmt" - "io" - "io/ioutil" - "log" - "reflect" - "strconv" - "strings" - "unicode" - - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/triegen" - "golang.org/x/text/internal/ucd" - "golang.org/x/text/unicode/norm" -) - -func main() { - gen.Init() - genTables() - genTablesTest() - genTrieval() -} - -// runeInfo contains all information for a rune that we care about for casing -// operations. -type runeInfo struct { - Rune rune - - entry info // trie value for this rune. - - CaseMode info - - // Simple case mappings. - Simple [1 + maxCaseMode][]rune - - // Special casing - HasSpecial bool - Conditional bool - Special [1 + maxCaseMode][]rune - - // Folding (TODO) - FoldSimple rune - FoldSpecial rune - FoldFull []rune - - // TODO: FC_NFKC, or equivalent data. - - // Properties - SoftDotted bool - CaseIgnorable bool - Cased bool - DecomposeGreek bool - BreakType string - BreakCat breakCategory - - // We care mostly about 0, Above, and IotaSubscript. - CCC byte -} - -type breakCategory int - -const ( - breakBreak breakCategory = iota - breakLetter - breakIgnored -) - -// mapping returns the case mapping for the given case type. -func (r *runeInfo) mapping(c info) string { - if r.HasSpecial { - return string(r.Special[c]) - } - if len(r.Simple[c]) != 0 { - return string(r.Simple[c]) - } - return string(r.Rune) -} - -// ucdParser is a parser for UCD files. -type ucdParser []ucd.Option - -func parser(opts ...ucd.Option) ucdParser { return ucdParser(opts) } - -// parse calls f for each entry in the given UCD file. -func (opts ucdParser) parse(filename string, f func(p *ucd.Parser)) { - r := gen.OpenUCDFile(filename) - defer r.Close() - p := ucd.New(r, opts...) - for p.Next() { - f(p) - } - if err := p.Err(); err != nil { - log.Fatal(err) - } -} - -func parseUCD() []runeInfo { - chars := make([]runeInfo, unicode.MaxRune) - - get := func(r rune) *runeInfo { - c := &chars[r] - c.Rune = r - return c - } - - parser().parse("UnicodeData.txt", func(p *ucd.Parser) { - ri := get(p.Rune(0)) - ri.CCC = byte(p.Int(ucd.CanonicalCombiningClass)) - ri.Simple[cLower] = p.Runes(ucd.SimpleLowercaseMapping) - ri.Simple[cUpper] = p.Runes(ucd.SimpleUppercaseMapping) - ri.Simple[cTitle] = p.Runes(ucd.SimpleTitlecaseMapping) - if p.String(ucd.GeneralCategory) == "Lt" { - ri.CaseMode = cTitle - } - }) - - // ; - parser().parse("PropList.txt", func(p *ucd.Parser) { - if p.String(1) == "Soft_Dotted" { - chars[p.Rune(0)].SoftDotted = true - } - }) - - // ; - parser().parse("DerivedCoreProperties.txt", func(p *ucd.Parser) { - ri := get(p.Rune(0)) - switch p.String(1) { - case "Case_Ignorable": - ri.CaseIgnorable = true - case "Cased": - ri.Cased = true - case "Lowercase": - ri.CaseMode = cLower - case "Uppercase": - ri.CaseMode = cUpper - } - }) - - // ; ; ; <upper> ; (<condition_list> ;)? - parser().parse("SpecialCasing.txt", func(p *ucd.Parser) { - // We drop all conditional special casing and deal with them manually in - // the language-specific case mappers. Rune 0x03A3 is the only one with - // a conditional formatting that is not language-specific. However, - // dealing with this letter is tricky, especially in a streaming - // context, so we deal with it in the Caser for Greek specifically. - ri := get(p.Rune(0)) - if p.String(4) == "" { - ri.HasSpecial = true - ri.Special[cLower] = p.Runes(1) - ri.Special[cTitle] = p.Runes(2) - ri.Special[cUpper] = p.Runes(3) - } else { - ri.Conditional = true - } - }) - - // TODO: Use text breaking according to UAX #29. - // <code>; <word break type> - parser().parse("auxiliary/WordBreakProperty.txt", func(p *ucd.Parser) { - ri := get(p.Rune(0)) - ri.BreakType = p.String(1) - - // We collapse the word breaking properties onto the categories we need. - switch p.String(1) { // TODO: officially we need to canonicalize. - case "Format", "MidLetter", "MidNumLet", "Single_Quote": - ri.BreakCat = breakIgnored - case "ALetter", "Hebrew_Letter", "Numeric", "Extend", "ExtendNumLet": - ri.BreakCat = breakLetter - } - }) - - // TODO: Support case folding. - // // <code>; <status>; <mapping>; - // parser().parse("CaseFolding.txt", func (p *ucd.Parser) { - // ri := get(p.Rune(0)) - // switch p.String(1) { - // case "C": - // ri.FoldSimple = p.Rune(2) - // ri.FoldFull = p.Runes(2) - // case "S": - // ri.FoldSimple = p.Rune(2) - // case "T": - // ri.FoldSpecial = p.Rune(2) - // case "F": - // ri.FoldFull = p.Runes(2) - // } - // }) - - return chars -} - -func genTables() { - chars := parseUCD() - verifyProperties(chars) - - t := triegen.NewTrie("case") - for i := range chars { - c := &chars[i] - makeEntry(c) - t.Insert(rune(i), uint64(c.entry)) - } - - w := &bytes.Buffer{} - - sz, err := t.Gen(w, triegen.Compact(&sparseCompacter{})) - if err != nil { - log.Fatal(err) - } - - gen.WriteUnicodeVersion(w) - // TODO: write CLDR version after adding a mechanism to detect that the - // tables on which the manually created locale-sensitive casing code is - // based hasn't changed. - - fmt.Fprintf(w, "// xorData: %d bytes\n", len(xorData)) - fmt.Fprintf(w, "var xorData = %+q\n\n", string(xorData)) - - fmt.Fprintf(w, "// exceptions: %d bytes\n", len(exceptionData)) - fmt.Fprintf(w, "var exceptions = %q\n\n", string(exceptionData)) - - sz += len(exceptionData) - fmt.Fprintf(w, "// Total table size %d bytes (%dKiB)\n", sz, sz/1024) - - gen.WriteGoFile("tables.go", "cases", w.Bytes()) -} - -func makeEntry(ri *runeInfo) { - if ri.CaseIgnorable { - if ri.Cased { - ri.entry = cIgnorableCased - } else { - ri.entry = cIgnorableUncased - } - } else { - ri.entry = ri.CaseMode - } - - // TODO: handle soft-dotted. - - ccc := cccOther - switch ri.CCC { - case 0: // Not_Reordered - ccc = cccZero - case above: // Above - ccc = cccAbove - } - if ri.BreakCat == breakBreak { - ccc = cccBreak - } - - ri.entry |= ccc - - if ri.CaseMode == cUncased { - return - } - - // Need to do something special. - if ri.CaseMode == cTitle || ri.HasSpecial || ri.mapping(cTitle) != ri.mapping(cUpper) { - makeException(ri) - return - } - - // Rune is either lowercase or uppercase. - - orig := string(ri.Rune) - mapped := "" - if ri.CaseMode == cUpper { - mapped = ri.mapping(cLower) - } else { - mapped = ri.mapping(cUpper) - } - - if len(orig) != len(mapped) { - makeException(ri) - return - } - - n := len(orig) - - // Create per-byte XOR mask. - var b []byte - for i := 0; i < n; i++ { - b = append(b, orig[i]^mapped[i]) - } - - // Remove leading 0 bytes, but keep at least one byte. - for ; len(b) > 1 && b[0] == 0; b = b[1:] { - } - - if len(b) == 1 && b[0]&0xc0 == 0 { - ri.entry |= info(b[0]) << xorShift - return - } - - key := string(b) - x, ok := xorCache[key] - if !ok { - xorData = append(xorData, 0) // for detecting start of sequence - xorData = append(xorData, b...) - - x = len(xorData) - 1 - xorCache[key] = x - } - ri.entry |= info(x<<xorShift) | xorIndexBit -} - -var xorCache = map[string]int{} - -// xorData contains byte-wise XOR data for the least significant bytes of a -// UTF-8 encoded rune. An index points to the last byte. The sequence starts -// with a zero terminator. -var xorData = []byte{} - -// See the comments in gen_trieval.go re "the exceptions slice". -var exceptionData = []byte{0} - -// makeException encodes case mappings that cannot be expressed in a simple -// XOR diff. -func makeException(ri *runeInfo) { - ri.entry |= exceptionBit - - if ccc := ri.entry & cccMask; ccc != cccZero { - log.Fatalf("%U:CCC type was %d; want %d", ri.Rune, ccc, cccZero) - } - - if len(exceptionData) >= 1<<numExceptionBits { - log.Fatalf("%U:exceptionData too large %x > %d bits", ri.Rune, len(exceptionData), numExceptionBits) - } - - // Set the offset in the exceptionData array. - ri.entry |= info(len(exceptionData) << exceptionShift) - - orig := string(ri.Rune) - tc := ri.mapping(cTitle) - uc := ri.mapping(cUpper) - lc := ri.mapping(cLower) - - // addString sets the length of a string and adds it to the expansions array. - addString := func(s string, b *byte) { - if len(s) == 0 { - // Zero-length mappings exist, but only for conditional casing, - // which we are representing outside of this table. - log.Fatalf("%U: has zero-length mapping.", ri.Rune) - } - *b <<= 3 - if s != orig { - n := len(s) - if n > 7 { - log.Fatalf("%U: mapping larger than 7 (%d)", ri.Rune, n) - } - *b |= byte(n) - exceptionData = append(exceptionData, s...) - } - } - - // byte 0: - exceptionData = append(exceptionData, 0) - - // byte 1: - p := len(exceptionData) - exceptionData = append(exceptionData, 0) - - ct := ri.CaseMode - if ct != cLower { - addString(lc, &exceptionData[p]) - } - if ct != cUpper { - addString(uc, &exceptionData[p]) - } - if ct != cTitle { - // If title is the same as upper, we set it to the original string so - // that it will be marked as not present. This implies title case is - // the same as upper case. - if tc == uc { - tc = orig - } - addString(tc, &exceptionData[p]) - } -} - -// sparseCompacter is a trie value block Compacter. There are many cases where -// successive runes alternate between lower- and upper-case. This Compacter -// exploits this by adding a special case type where the case value is obtained -// from or-ing it with the least-significant bit of the rune, creating large -// ranges of equal case values that compress well. -type sparseCompacter struct { - sparseBlocks [][]uint16 - sparseOffsets []uint16 - sparseCount int -} - -// makeSparse returns the number of elements that compact block would contain -// as well as the modified values. -func makeSparse(vals []uint64) ([]uint16, int) { - // Copy the values. - values := make([]uint16, len(vals)) - for i, v := range vals { - values[i] = uint16(v) - } - - alt := func(i int, v uint16) uint16 { - if cm := info(v & fullCasedMask); cm == cUpper || cm == cLower { - // Convert cLower or cUpper to cXORCase value, which has the form 11x. - xor := v - xor &^= 1 - xor |= uint16(i&1) ^ (v & 1) - xor |= 0x4 - return xor - } - return v - } - - var count int - var previous uint16 - for i, v := range values { - if v != 0 { - // Try if the unmodified value is equal to the previous. - if v == previous { - continue - } - - // Try if the xor-ed value is equal to the previous value. - a := alt(i, v) - if a == previous { - values[i] = a - continue - } - - // This is a new value. - count++ - - // Use the xor-ed value if it will be identical to the next value. - if p := i + 1; p < len(values) && alt(p, values[p]) == a { - values[i] = a - v = a - } - } - previous = v - } - return values, count -} - -func (s *sparseCompacter) Size(v []uint64) (int, bool) { - _, n := makeSparse(v) - - // We limit using this method to having 16 entries. - if n > 16 { - return 0, false - } - - return 2 + int(reflect.TypeOf(valueRange{}).Size())*n, true -} - -func (s *sparseCompacter) Store(v []uint64) uint32 { - h := uint32(len(s.sparseOffsets)) - values, sz := makeSparse(v) - s.sparseBlocks = append(s.sparseBlocks, values) - s.sparseOffsets = append(s.sparseOffsets, uint16(s.sparseCount)) - s.sparseCount += sz - return h -} - -func (s *sparseCompacter) Handler() string { - // The sparse global variable and its lookup method is defined in gen_trieval.go. - return "sparse.lookup" -} - -func (s *sparseCompacter) Print(w io.Writer) (retErr error) { - p := func(format string, args ...interface{}) { - _, err := fmt.Fprintf(w, format, args...) - if retErr == nil && err != nil { - retErr = err - } - } - - ls := len(s.sparseBlocks) - if ls == len(s.sparseOffsets) { - s.sparseOffsets = append(s.sparseOffsets, uint16(s.sparseCount)) - } - p("// sparseOffsets: %d entries, %d bytes\n", ls+1, (ls+1)*2) - p("var sparseOffsets = %#v\n\n", s.sparseOffsets) - - ns := s.sparseCount - p("// sparseValues: %d entries, %d bytes\n", ns, ns*4) - p("var sparseValues = [%d]valueRange {", ns) - for i, values := range s.sparseBlocks { - p("\n// Block %#x, offset %#x", i, s.sparseOffsets[i]) - var v uint16 - for i, nv := range values { - if nv != v { - if v != 0 { - p(",hi:%#02x},", 0x80+i-1) - } - if nv != 0 { - p("\n{value:%#04x,lo:%#02x", nv, 0x80+i) - } - } - v = nv - } - if v != 0 { - p(",hi:%#02x},", 0x80+len(values)-1) - } - } - p("\n}\n\n") - return -} - -// verifyProperties that properties of the runes that are relied upon in the -// implementation. Each property is marked with an identifier that is referred -// to in the places where it is used. -func verifyProperties(chars []runeInfo) { - for i, c := range chars { - r := rune(i) - - // Rune properties. - - // A.1: modifier never changes on lowercase. [ltLower] - if c.CCC > 0 && unicode.ToLower(r) != r { - log.Fatalf("%U: non-starter changes when lowercased", r) - } - - // A.2: properties of decompositions starting with I or J. [ltLower] - d := norm.NFD.PropertiesString(string(r)).Decomposition() - if len(d) > 0 { - if d[0] == 'I' || d[0] == 'J' { - // A.2.1: we expect at least an ASCII character and a modifier. - if len(d) < 3 { - log.Fatalf("%U: length of decomposition was %d; want >= 3", r, len(d)) - } - - // All subsequent runes are modifiers and all have the same CCC. - runes := []rune(string(d[1:])) - ccc := chars[runes[0]].CCC - - for _, mr := range runes[1:] { - mc := chars[mr] - - // A.2.2: all modifiers have a CCC of Above or less. - if ccc == 0 || ccc > above { - log.Fatalf("%U: CCC of successive rune (%U) was %d; want (0,230]", r, mr, ccc) - } - - // A.2.3: a sequence of modifiers all have the same CCC. - if mc.CCC != ccc { - log.Fatalf("%U: CCC of follow-up modifier (%U) was %d; want %d", r, mr, mc.CCC, ccc) - } - - // A.2.4: for each trailing r, r in [0x300, 0x311] <=> CCC == Above. - if (ccc == above) != (0x300 <= mr && mr <= 0x311) { - log.Fatalf("%U: modifier %U in [U+0300, U+0311] != ccc(%U) == 230", r, mr, mr) - } - - if i += len(string(mr)); i >= len(d) { - break - } - } - } - } - - // A.3: no U+0307 in decomposition of Soft-Dotted rune. [ltUpper] - if unicode.Is(unicode.Soft_Dotted, r) && strings.Contains(string(d), "\u0307") { - log.Fatalf("%U: decomposition of soft-dotted rune may not contain U+0307", r) - } - - // A.4: only rune U+0345 may be of CCC Iota_Subscript. [elUpper] - if c.CCC == iotaSubscript && r != 0x0345 { - log.Fatalf("%U: only rune U+0345 may have CCC Iota_Subscript", r) - } - - // A.5: soft-dotted runes do not have exceptions. - if c.SoftDotted && c.entry&exceptionBit != 0 { - log.Fatalf("%U: soft-dotted has exception", r) - } - - // A.6: Greek decomposition. [elUpper] - if unicode.Is(unicode.Greek, r) { - if b := norm.NFD.PropertiesString(string(r)).Decomposition(); b != nil { - runes := []rune(string(b)) - // A.6.1: If a Greek rune decomposes and the first rune of the - // decomposition is greater than U+00FF, the rune is always - // great and not a modifier. - if f := runes[0]; unicode.IsMark(f) || f > 0xFF && !unicode.Is(unicode.Greek, f) { - log.Fatalf("%U: expeced first rune of Greek decomposition to be letter, found %U", r, f) - } - // A.6.2: Any follow-up rune in a Greek decomposition is a - // modifier of which the first should be gobbled in - // decomposition. - for _, m := range runes[1:] { - switch m { - case 0x0313, 0x0314, 0x0301, 0x0300, 0x0306, 0x0342, 0x0308, 0x0304, 0x345: - default: - log.Fatalf("%U: modifier %U is outside of expeced Greek modifier set", r, m) - } - } - } - } - - // Breaking properties. - - // B.1: all runes with CCC > 0 are of break type Extend. - if c.CCC > 0 && c.BreakType != "Extend" { - log.Fatalf("%U: CCC == %d, but got break type %s; want Extend", r, c.CCC, c.BreakType) - } - - // B.2: all cased runes with c.CCC == 0 are of break type ALetter. - if c.CCC == 0 && c.Cased && c.BreakType != "ALetter" { - log.Fatalf("%U: cased, but got break type %s; want ALetter", r, c.BreakType) - } - - // B.3: letter category. - if c.CCC == 0 && c.BreakCat != breakBreak && !c.CaseIgnorable { - if c.BreakCat != breakLetter { - log.Fatalf("%U: check for letter break type gave %d; want %d", r, c.BreakCat, breakLetter) - } - } - } -} - -func genTablesTest() { - w := &bytes.Buffer{} - - fmt.Fprintln(w, "var (") - printProperties(w, "DerivedCoreProperties.txt", "Case_Ignorable", verifyIgnore) - - // We discard the output as we know we have perfect functions. We run them - // just to verify the properties are correct. - n := printProperties(ioutil.Discard, "DerivedCoreProperties.txt", "Cased", verifyCased) - n += printProperties(ioutil.Discard, "DerivedCoreProperties.txt", "Lowercase", verifyLower) - n += printProperties(ioutil.Discard, "DerivedCoreProperties.txt", "Uppercase", verifyUpper) - if n > 0 { - log.Fatalf("One of the discarded properties does not have a perfect filter.") - } - - // <code>; <lower> ; <title> ; <upper> ; (<condition_list> ;)? - fmt.Fprintln(w, "\tspecial = map[rune]struct{ toLower, toTitle, toUpper string }{") - parser().parse("SpecialCasing.txt", func(p *ucd.Parser) { - // Skip conditional entries. - if p.String(4) != "" { - return - } - r := p.Rune(0) - fmt.Fprintf(w, "\t\t0x%04x: {%q, %q, %q},\n", - r, string(p.Runes(1)), string(p.Runes(2)), string(p.Runes(3))) - }) - fmt.Fprint(w, "\t}\n\n") - - // Break property - notBreak := map[rune]bool{} - parser().parse("auxiliary/WordBreakProperty.txt", func(p *ucd.Parser) { - switch p.String(1) { - case "Extend", "Format", "MidLetter", "MidNumLet", "Single_Quote", - "ALetter", "Hebrew_Letter", "Numeric", "ExtendNumLet": - notBreak[p.Rune(0)] = true - } - }) - - fmt.Fprintln(w, "\tbreakProp = []struct{ lo, hi rune }{") - inBreak := false - for r := rune(0); r <= lastRuneForTesting; r++ { - if isBreak := !notBreak[r]; isBreak != inBreak { - if isBreak { - fmt.Fprintf(w, "\t\t{0x%x, ", r) - } else { - fmt.Fprintf(w, "0x%x},\n", r-1) - } - inBreak = isBreak - } - } - if inBreak { - fmt.Fprintf(w, "0x%x},\n", lastRuneForTesting) - } - fmt.Fprint(w, "\t}\n\n") - - // Word break test - // Filter out all samples that do not contain cased characters. - cased := map[rune]bool{} - parser().parse("DerivedCoreProperties.txt", func(p *ucd.Parser) { - if p.String(1) == "Cased" { - cased[p.Rune(0)] = true - } - }) - - fmt.Fprintln(w, "\tbreakTest = []string{") - parser(ucd.KeepRanges).parse("auxiliary/WordBreakTest.txt", func(p *ucd.Parser) { - c := strings.Split(p.String(0), " ") - - const sep = '|' - numCased := 0 - test := "" - for ; len(c) >= 2; c = c[2:] { - if c[0] == "÷" && test != "" { - test += string(sep) - } - i, err := strconv.ParseUint(c[1], 16, 32) - r := rune(i) - if err != nil { - log.Fatalf("Invalid rune %q.", c[1]) - } - if r == sep { - log.Fatalf("Separator %q not allowed in test data. Pick another one.", sep) - } - if cased[r] { - numCased++ - } - test += string(r) - } - if numCased > 1 { - fmt.Fprintf(w, "\t\t%q,\n", test) - } - }) - fmt.Fprintln(w, "\t}") - - fmt.Fprintln(w, ")") - - gen.WriteGoFile("tables_test.go", "cases", w.Bytes()) -} - -// These functions are just used for verification that their definition have not -// changed in the Unicode Standard. - -func verifyCased(r rune) bool { - return verifyLower(r) || verifyUpper(r) || unicode.IsTitle(r) -} - -func verifyLower(r rune) bool { - return unicode.IsLower(r) || unicode.Is(unicode.Other_Lowercase, r) -} - -func verifyUpper(r rune) bool { - return unicode.IsUpper(r) || unicode.Is(unicode.Other_Uppercase, r) -} - -// verifyIgnore is an approximation of the Case_Ignorable property using the -// core unicode package. It is used to reduce the size of the test data. -func verifyIgnore(r rune) bool { - props := []*unicode.RangeTable{ - unicode.Mn, - unicode.Me, - unicode.Cf, - unicode.Lm, - unicode.Sk, - } - for _, p := range props { - if unicode.Is(p, r) { - return true - } - } - return false -} - -// printProperties prints tables of rune properties from the given UCD file. -// A filter func f can be given to exclude certain values. A rune r will have -// the indicated property if it is in the generated table or if f(r). -func printProperties(w io.Writer, file, property string, f func(r rune) bool) int { - verify := map[rune]bool{} - n := 0 - varNameParts := strings.Split(property, "_") - varNameParts[0] = strings.ToLower(varNameParts[0]) - fmt.Fprintf(w, "\t%s = map[rune]bool{\n", strings.Join(varNameParts, "")) - parser().parse(file, func(p *ucd.Parser) { - if p.String(1) == property { - r := p.Rune(0) - verify[r] = true - if !f(r) { - n++ - fmt.Fprintf(w, "\t\t0x%.4x: true,\n", r) - } - } - }) - fmt.Fprint(w, "\t}\n\n") - - // Verify that f is correct, that is, it represents a subset of the property. - for r := rune(0); r <= lastRuneForTesting; r++ { - if !verify[r] && f(r) { - log.Fatalf("Incorrect filter func for property %q.", property) - } - } - return n -} - -func genTrieval() { - src, err := ioutil.ReadFile("gen_trieval.go") - if err != nil { - log.Fatalf("reading gen_trieval.go: %v", err) - } - const toDelete = "// +build ignore\n\npackage main\n\n" - i := bytes.Index(src, []byte(toDelete)) - if i < 0 { - log.Fatalf("could not find %q in gen_trieval.go", toDelete) - } - w := &bytes.Buffer{} - w.Write(src[i+len(toDelete):]) - gen.WriteGoFile("trieval.go", "cases", w.Bytes()) -} - -// The newCaseTrie, sparseValues and sparseOffsets definitions below are -// placeholders referred to by gen_trieval.go. The real definitions are -// generated by this program and written to tables.go. - -func newCaseTrie(int) int { return 0 } - -var ( - sparseValues [0]valueRange - sparseOffsets [0]uint16 -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/gen_trieval.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/gen_trieval.go deleted file mode 100644 index 361e476f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/gen_trieval.go +++ /dev/null @@ -1,290 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This file contains definitions for interpreting the trie value of the case -// trie generated by "go run gen*.go". It is shared by both the generator -// program and the resultant package. Sharing is achieved by the generator -// copying gen_trieval.go to trieval.go and changing what's above this comment. - -// info holds case information for a single rune. It is the value returned -// by a trie lookup. Most mapping information can be stored in a single 16-bit -// value. If not, for example when a rune is mapped to multiple runes, the value -// stores some basic case data and an index into an array with additional data. -// -// The per-rune values have the following format: -// -// if (exception) { -// 15..5 unsigned exception index -// 4 unused -// } else { -// 15..7 XOR pattern or index to XOR pattern for case mapping -// 6 index: interpret the XOR pattern as an index -// 5..4 CCC: zero (normal or break), above or other -// } -// 3 exception: interpret this value as an exception index -// 2..0 case mode -// -// For the non-exceptional cases, a rune must be either uncased, lowercase or -// uppercase. If the rune is cased, the XOR pattern maps either a lowercase -// rune to uppercase or an uppercase rune to lowercase (applied to the 10 -// least-significant bits of the rune). -// -// See the definitions below for a more detailed description of the various -// bits. -type info uint16 - -const ( - casedMask = 0x0003 - fullCasedMask = 0x0007 - ignorableMask = 0x0006 - ignorableValue = 0x0004 - - exceptionBit = 1 << 3 - exceptionShift = 5 - numExceptionBits = 11 - - xorIndexBit = 1 << 6 - xorShift = 7 - - // There is no mapping if all xor bits and the exception bit are zero. - hasMappingMask = 0xffc0 | exceptionBit -) - -// The case mode bits encodes the case type of a rune. This includes uncased, -// title, upper and lower case and case ignorable. (For a definition of these -// terms see Chapter 3 of The Unicode Standard Core Specification.) In some rare -// cases, a rune can be both cased and case-ignorable. This is encoded by -// cIgnorableCased. A rune of this type is always lower case. Some runes are -// cased while not having a mapping. -// -// A common pattern for scripts in the Unicode standard is for upper and lower -// case runes to alternate for increasing rune values (e.g. the accented Latin -// ranges starting from U+0100 and U+1E00 among others andsome Cyrillic -// characters). We use this property by defining a cXORCase mode, where the case -// mode (always upper or lower case) is derived from the rune value. As the XOR -// pattern for case mappings is often identical for successive runes, using -// cXORCase can result in large series of identical trie values. This, in turn, -// allows us to better compress the trie blocks. -const ( - cUncased info = iota // 000 - cTitle // 001 - cLower // 010 - cUpper // 011 - cIgnorableUncased // 100 - cIgnorableCased // 101 // lower case if mappings exist - cXORCase // 11x // case is cLower | ((rune&1) ^ x) - - maxCaseMode = cUpper -) - -func (c info) isCased() bool { - return c&casedMask != 0 -} - -func (c info) isCaseIgnorable() bool { - return c&ignorableMask == ignorableValue -} - -func (c info) isCaseIgnorableAndNonBreakStarter() bool { - return c&(fullCasedMask|cccMask) == (ignorableValue | cccZero) -} - -func (c info) isNotCasedAndNotCaseIgnorable() bool { - return c&fullCasedMask == 0 -} - -func (c info) isCaseIgnorableAndNotCased() bool { - return c&fullCasedMask == cIgnorableUncased -} - -// The case mapping implementation will need to know about various Canonical -// Combining Class (CCC) values. We encode two of these in the trie value: -// cccZero (0) and cccAbove (230). If the value is cccOther, it means that -// CCC(r) > 0, but not 230. A value of cccBreak means that CCC(r) == 0 and that -// the rune also has the break category Break (see below). -const ( - cccBreak info = iota << 4 - cccZero - cccAbove - cccOther - - cccMask = cccBreak | cccZero | cccAbove | cccOther -) - -func (c info) cccVal() info { - if c&exceptionBit != 0 { - return cccZero - } - return c & cccMask -} - -func (c info) cccType() info { - ccc := c.cccVal() - if ccc <= cccZero { - return cccZero - } - return ccc -} - -const ( - starter = 0 - above = 230 - iotaSubscript = 240 -) - -// TODO: Implement full Unicode breaking algorithm: -// 1) Implement breaking in separate package. -// 2) Use the breaker here. -// 3) Compare table size and performance of using the more generic breaker. -// -// Note that we can extend the current algorithm to be much more accurate. This -// only makes sense, though, if the performance and/or space penalty of using -// the generic breaker is big. Extra data will only be needed for non-cased -// runes, which means there are sufficient bits left in the caseType. -// Also note that the standard breaking algorithm doesn't always make sense -// for title casing. For example, a4a -> A4a, but a"4a -> A"4A (where " stands -// for modifier \u0308). -// ICU prohibits breaking in such cases as well. - -// For the purpose of title casing we use an approximation of the Unicode Word -// Breaking algorithm defined in Annex #29: -// http://www.unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table. -// -// For our approximation, we group the Word Break types into the following -// categories, with associated rules: -// -// 1) Letter: -// ALetter, Hebrew_Letter, Numeric, ExtendNumLet, Extend. -// Rule: Never break between consecutive runes of this category. -// -// 2) Mid: -// Format, MidLetter, MidNumLet, Single_Quote. -// (Cf. case-ignorable: MidLetter, MidNumLet or cat is Mn, Me, Cf, Lm or Sk). -// Rule: Don't break between Letter and Mid, but break between two Mids. -// -// 3) Break: -// Any other category, including NewLine, CR, LF and Double_Quote. These -// categories should always result in a break between two cased letters. -// Rule: Always break. -// -// Note 1: the Katakana and MidNum categories can, in esoteric cases, result in -// preventing a break between two cased letters. For now we will ignore this -// (e.g. [ALetter] [ExtendNumLet] [Katakana] [ExtendNumLet] [ALetter] and -// [ALetter] [Numeric] [MidNum] [Numeric] [ALetter].) -// -// Note 2: the rule for Mid is very approximate, but works in most cases. To -// improve, we could store the categories in the trie value and use a FA to -// manage breaks. See TODO comment above. -// -// Note 3: according to the spec, it is possible for the Extend category to -// introduce breaks between other categories grouped in Letter. However, this -// is undesirable for our purposes. ICU prevents breaks in such cases as well. - -// isBreak returns whether this rune should introduce a break. -func (c info) isBreak() bool { - return c.cccVal() == cccBreak -} - -// isLetter returns whether the rune is of break type ALetter, Hebrew_Letter, -// Numeric, ExtendNumLet, or Extend. -func (c info) isLetter() bool { - ccc := c.cccVal() - if ccc == cccZero { - return !c.isCaseIgnorable() - } - return ccc != cccBreak -} - -// The exceptions slice holds data that does not fit in a normal info entry. -// The entry is pointed to by the exception index in an entry. It has the -// following format: -// -// Header: -// byte 0: // TODO: case folding not implemented yet. -// 7 conditional case folding -// 6 conditional special casing -// 6..3 length of case folding -// 2..0 length of closure mapping (up to 7). -// -// byte 1: -// 7..6 unused -// 5..3 length of 1st mapping of case type -// 2..0 length of 2nd mapping of case type -// -// case 1st 2nd -// lower -> upper, title -// upper -> lower, title -// title -> lower, upper -// -// Lengths with the value 0x7 indicate no value and implies no change. -// A length of 0 indicates a mapping to zero-length string. -// -// Body bytes: -// lowercase mapping bytes -// uppercase mapping bytes -// titlecase mapping bytes -// case folding bytes -// closure mapping bytes -// -// Fallbacks: -// missing fold -> lower -// missing title -> upper -// all missing -> original rune -// -// exceptions starts with a dummy byte to enforce that there is no zero index -// value. -const ( - lengthMask = 0x07 - lengthBits = 3 - noChange = 0 -) - -// References to generated trie. - -var trie = newCaseTrie(0) - -var sparse = sparseBlocks{ - values: sparseValues[:], - offsets: sparseOffsets[:], -} - -// Sparse block lookup code. - -// valueRange is an entry in a sparse block. -type valueRange struct { - value uint16 - lo, hi byte -} - -type sparseBlocks struct { - values []valueRange - offsets []uint16 -} - -// lookup returns the value from values block n for byte b using binary search. -func (s *sparseBlocks) lookup(n uint32, b byte) uint16 { - lo := s.offsets[n] - hi := s.offsets[n+1] - for lo < hi { - m := lo + (hi-lo)/2 - r := s.values[m] - if r.lo <= b && b <= r.hi { - return r.value - } - if b < r.lo { - hi = m - } else { - lo = m + 1 - } - } - return 0 -} - -// lastRuneForTesting is the last rune used for testing. Everything after this -// is boring. -const lastRuneForTesting = rune(0x1FFFF) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/map.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/map.go deleted file mode 100644 index 3dd51230..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/map.go +++ /dev/null @@ -1,669 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cases - -// This file contains the definitions of case mappings for all supported -// languages. The rules for the language-specific tailorings were taken and -// modified from the CLDR transform definitions in common/transforms. - -import ( - "strings" - "unicode" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm" -) - -// A mapFunc takes a context set to the current rune and writes the mapped -// version to the same context. It may advance the context to the next rune. It -// returns whether a checkpoint is possible: whether the pDst bytes written to -// dst so far won't need changing as we see more source bytes. -type mapFunc func(*context) bool - -// maxIgnorable defines the maximum number of ignorables to consider for -// lookahead operations. -const maxIgnorable = 30 - -// supported lists the language tags for which we have tailorings. -const supported = "und af az el lt nl tr" - -func init() { - tags := []language.Tag{} - for _, s := range strings.Split(supported, " ") { - tags = append(tags, language.MustParse(s)) - } - matcher = language.NewMatcher(tags) - Supported = language.NewCoverage(tags) -} - -var ( - matcher language.Matcher - - Supported language.Coverage - - // We keep the following lists separate, instead of having a single per- - // language struct, to give the compiler a chance to remove unused code. - - // Some uppercase mappers are stateless, so we can precompute the - // Transformers and save a bit on runtime allocations. - upperFunc = []mapFunc{ - nil, // und - nil, // af - aztrUpper(upper), // az - elUpper, // el - ltUpper(upper), // lt - nil, // nl - aztrUpper(upper), // tr - } - - undUpper transform.Transformer = &undUpperCaser{} - - lowerFunc = []mapFunc{ - lower, // und - lower, // af - aztrLower, // az - lower, // el - ltLower, // lt - lower, // nl - aztrLower, // tr - } - - titleInfos = []struct { - title, lower mapFunc - rewrite func(*context) - }{ - {title, lower, nil}, // und - {title, lower, afnlRewrite}, // af - {aztrUpper(title), aztrLower, nil}, // az - {title, lower, nil}, // el - {ltUpper(title), ltLower, nil}, // lt - {nlTitle, lower, afnlRewrite}, // nl - {aztrUpper(title), aztrLower, nil}, // tr - } -) - -func makeUpper(t language.Tag, o options) transform.Transformer { - _, i, _ := matcher.Match(t) - f := upperFunc[i] - if f == nil { - return undUpper - } - return &simpleCaser{f: f} -} - -func makeLower(t language.Tag, o options) transform.Transformer { - _, i, _ := matcher.Match(t) - f := lowerFunc[i] - if o.noFinalSigma { - return &simpleCaser{f: f} - } - return &lowerCaser{ - first: f, - midWord: finalSigma(f), - } -} - -func makeTitle(t language.Tag, o options) transform.Transformer { - _, i, _ := matcher.Match(t) - x := &titleInfos[i] - lower := x.lower - if o.noLower { - lower = (*context).copy - } else if !o.noFinalSigma { - lower = finalSigma(lower) - } - return &titleCaser{ - title: x.title, - lower: lower, - rewrite: x.rewrite, - } -} - -// TODO: consider a similar special case for the fast majority lower case. This -// is a bit more involved so will require some more precise benchmarking to -// justify it. - -type undUpperCaser struct{ transform.NopResetter } - -// undUpperCaser implements the Transformer interface for doing an upper case -// mapping for the root locale (und). It eliminates the need for an allocation -// as it prevents escaping by not using function pointers. -func (t *undUpperCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - c := context{dst: dst, src: src, atEOF: atEOF} - for c.next() { - upper(&c) - c.checkpoint() - } - return c.ret() -} - -type simpleCaser struct { - context - f mapFunc -} - -// simpleCaser implements the Transformer interface for doing a case operation -// on a rune-by-rune basis. -func (t *simpleCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - t.context = context{dst: dst, src: src, atEOF: atEOF} - c := &t.context - for c.next() && t.f(c) { - c.checkpoint() - } - return c.ret() -} - -// lowerCaser implements the Transformer interface. The default Unicode lower -// casing requires different treatment for the first and subsequent characters -// of a word, most notably to handle the Greek final Sigma. -type lowerCaser struct { - context - - first, midWord mapFunc -} - -func (t *lowerCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - t.context = context{dst: dst, src: src, atEOF: atEOF} - c := &t.context - - for isInterWord := true; c.next(); { - if isInterWord { - if c.info.isCased() { - if !t.first(c) { - break - } - isInterWord = false - } else if !c.copy() { - break - } - } else { - if c.info.isNotCasedAndNotCaseIgnorable() { - if !c.copy() { - break - } - isInterWord = true - } else if !t.midWord(c) { - break - } - } - c.checkpoint() - } - return c.ret() -} - -// titleCaser implements the Transformer interface. Title casing algorithms -// distinguish between the first letter of a word and subsequent letters of the -// same word. It uses state to avoid requiring a potentially infinite lookahead. -type titleCaser struct { - context - - // rune mappings used by the actual casing algorithms. - title, lower mapFunc - - rewrite func(*context) -} - -// Transform implements the standard Unicode title case algorithm as defined in -// Chapter 3 of The Unicode Standard: -// toTitlecase(X): Find the word boundaries in X according to Unicode Standard -// Annex #29, "Unicode Text Segmentation." For each word boundary, find the -// first cased character F following the word boundary. If F exists, map F to -// Titlecase_Mapping(F); then map all characters C between F and the following -// word boundary to Lowercase_Mapping(C). -func (t *titleCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - t.context = context{dst: dst, src: src, atEOF: atEOF, isMidWord: t.isMidWord} - c := &t.context - - if !c.next() { - return c.ret() - } - - for { - p := c.info - if t.rewrite != nil { - t.rewrite(c) - } - - wasMid := p.isCaseIgnorableAndNonBreakStarter() - // Break out of this loop on failure to ensure we do not modify the - // state incorrectly. - if p.isCased() && !p.isCaseIgnorableAndNotCased() { - if !c.isMidWord { - if !t.title(c) { - break - } - c.isMidWord = true - } else if !t.lower(c) { - break - } - } else if !c.copy() { - break - } - - // TODO: make this an "else if" if we can prove that no rune that does - // not match the first condition of the if statement can be a break. - if p.isBreak() { - c.isMidWord = false - } - - // As we save the state of the transformer, it is safe to call - // checkpoint after any successful write. - c.checkpoint() - - if !c.next() { - break - } - if wasMid && c.info.isCaseIgnorableAndNonBreakStarter() { - c.isMidWord = false - } - } - return c.ret() -} - -// lower writes the lowercase version of the current rune to dst. -func lower(c *context) bool { - if c.info&hasMappingMask == 0 || c.caseType() == cLower { - return c.copy() - } - if c.info&exceptionBit == 0 { - return c.copyXOR() - } - e := exceptions[c.info>>exceptionShift+1:] - if nLower := (e[0] >> lengthBits) & lengthMask; nLower != noChange { - return c.writeString(e[1 : 1+nLower]) - } - return c.copy() -} - -// upper writes the uppercase version of the current rune to dst. -func upper(c *context) bool { - ct := c.caseType() - if c.info&hasMappingMask == 0 || ct == cUpper { - return c.copy() - } - if c.info&exceptionBit == 0 { - return c.copyXOR() - } - e := exceptions[c.info>>exceptionShift+1:] - // Get length of first special case mapping. - n := (e[0] >> lengthBits) & lengthMask - if ct == cTitle { - // The first special case mapping is for lower. Set n to the second. - if n == noChange { - n = 0 - } - n, e = e[0]&lengthMask, e[n:] - } - if n != noChange { - return c.writeString(e[1 : 1+n]) - } - return c.copy() -} - -// title writes the title case version of the current rune to dst. -func title(c *context) bool { - ct := c.caseType() - if c.info&hasMappingMask == 0 || ct == cTitle { - return c.copy() - } - if c.info&exceptionBit == 0 { - if ct == cLower { - return c.copyXOR() - } - return c.copy() - } - // Get the exception data. - e := exceptions[c.info>>exceptionShift+1:] - - nFirst := (e[0] >> lengthBits) & lengthMask - if nTitle := e[0] & lengthMask; nTitle != noChange { - if nFirst != noChange { - e = e[nFirst:] - } - return c.writeString(e[1 : 1+nTitle]) - } - if ct == cLower && nFirst != noChange { - // Use the uppercase version instead. - return c.writeString(e[1 : 1+nFirst]) - } - // Already in correct case. - return c.copy() -} - -// finalSigma adds Greek final Sigma handing to another casing function. It -// determines whether a lowercased sigma should be σ or Ï‚, by looking ahead for -// case-ignorables and a cased letters. -func finalSigma(f mapFunc) mapFunc { - return func(c *context) bool { - // ::NFD(); - // # 03A3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK CAPITAL LETTER SIGMA - // Σ } [:case-ignorable:]* [:cased:] → σ; - // [:cased:] [:case-ignorable:]* { Σ → Ï‚; - // ::Any-Lower; - // ::NFC(); - - if !c.hasPrefix("Σ") { - return f(c) - } - - p := c.pDst - c.writeString("Ï‚") - // We need to do one more iteration after maxIgnorable, as a cased - // letter is not an ignorable and may modify the result. - for i := 0; i < maxIgnorable+1; i++ { - if !c.next() { - return false - } - if !c.info.isCaseIgnorable() { - if c.info.isCased() { - // p+1 is guaranteed to be in bounds: if writing Ï‚ was - // successful, p+1 will contain the second byte of Ï‚. If not, - // this function will have returned after c.next returned false. - c.dst[p+1]++ // Ï‚ → σ - } - c.unreadRune() - return true - } - // A case ignorable may also introduce a word break, so we may need - // to continue searching even after detecting a break. - c.isMidWord = c.isMidWord && !c.info.isBreak() - c.copy() - } - return true - } -} - -// elUpper implements Greek upper casing, which entails removing a predefined -// set of non-blocked modifiers. Note that these accents should not be removed -// for title casing! -// Example: "Οδός" -> "ΟΔΟΣ". -func elUpper(c *context) bool { - // From CLDR: - // [:Greek:] [^[:ccc=Not_Reordered:][:ccc=Above:]]*? { [\u0313\u0314\u0301\u0300\u0306\u0342\u0308\u0304] → ; - // [:Greek:] [^[:ccc=Not_Reordered:][:ccc=Iota_Subscript:]]*? { \u0345 → ; - - r, _ := utf8.DecodeRune(c.src[c.pSrc:]) - oldPDst := c.pDst - if !upper(c) { - return false - } - if !unicode.Is(unicode.Greek, r) { - return true - } - i := 0 - // Take the properties of the uppercased rune that is already written to the - // destination. This saves us the trouble of having to uppercase the - // decomposed rune again. - if b := norm.NFD.Properties(c.dst[oldPDst:]).Decomposition(); b != nil { - // Restore the destination position and process the decomposed rune. - r, sz := utf8.DecodeRune(b) - if r <= 0xFF { // See A.6.1 - return true - } - c.pDst = oldPDst - // Insert the first rune and ignore the modifiers. See A.6.2. - c.writeBytes(b[:sz]) - i = len(b[sz:]) / 2 // Greek modifiers are always of length 2. - } - - for ; i < maxIgnorable && c.next(); i++ { - switch r, _ := utf8.DecodeRune(c.src[c.pSrc:]); r { - // Above and Iota Subscript - case 0x0300, // U+0300 COMBINING GRAVE ACCENT - 0x0301, // U+0301 COMBINING ACUTE ACCENT - 0x0304, // U+0304 COMBINING MACRON - 0x0306, // U+0306 COMBINING BREVE - 0x0308, // U+0308 COMBINING DIAERESIS - 0x0313, // U+0313 COMBINING COMMA ABOVE - 0x0314, // U+0314 COMBINING REVERSED COMMA ABOVE - 0x0342, // U+0342 COMBINING GREEK PERISPOMENI - 0x0345: // U+0345 COMBINING GREEK YPOGEGRAMMENI - // No-op. Gobble the modifier. - - default: - switch v, _ := trie.lookup(c.src[c.pSrc:]); info(v).cccType() { - case cccZero: - c.unreadRune() - return true - - // We don't need to test for IotaSubscript as the only rune that - // qualifies (U+0345) was already excluded in the switch statement - // above. See A.4. - - case cccAbove: - return c.copy() - default: - // Some other modifier. We're still allowed to gobble Greek - // modifiers after this. - c.copy() - } - } - } - return i == maxIgnorable -} - -func ltLower(c *context) bool { - // From CLDR: - // # Introduce an explicit dot above when lowercasing capital I's and J's - // # whenever there are more accents above. - // # (of the accents used in Lithuanian: grave, acute, tilde above, and ogonek) - // # 0049; 0069 0307; 0049; 0049; lt More_Above; # LATIN CAPITAL LETTER I - // # 004A; 006A 0307; 004A; 004A; lt More_Above; # LATIN CAPITAL LETTER J - // # 012E; 012F 0307; 012E; 012E; lt More_Above; # LATIN CAPITAL LETTER I WITH OGONEK - // # 00CC; 0069 0307 0300; 00CC; 00CC; lt; # LATIN CAPITAL LETTER I WITH GRAVE - // # 00CD; 0069 0307 0301; 00CD; 00CD; lt; # LATIN CAPITAL LETTER I WITH ACUTE - // # 0128; 0069 0307 0303; 0128; 0128; lt; # LATIN CAPITAL LETTER I WITH TILDE - // ::NFD(); - // I } [^[:ccc=Not_Reordered:][:ccc=Above:]]* [:ccc=Above:] → i \u0307; - // J } [^[:ccc=Not_Reordered:][:ccc=Above:]]* [:ccc=Above:] → j \u0307; - // Ä® } [^[:ccc=Not_Reordered:][:ccc=Above:]]* [:ccc=Above:] → į \u0307; - // ÃŒ → i \u0307 \u0300; - // à → i \u0307 \u0301; - // Ĩ → i \u0307 \u0303; - // ::Any-Lower(); - // ::NFC(); - - i := 0 - if r := c.src[c.pSrc]; r < utf8.RuneSelf { - lower(c) - if r != 'I' && r != 'J' { - return true - } - } else { - p := norm.NFD.Properties(c.src[c.pSrc:]) - if d := p.Decomposition(); len(d) >= 3 && (d[0] == 'I' || d[0] == 'J') { - // UTF-8 optimization: the decomposition will only have an above - // modifier if the last rune of the decomposition is in [U+300-U+311]. - // In all other cases, a decomposition starting with I is always - // an I followed by modifiers that are not cased themselves. See A.2. - if d[1] == 0xCC && d[2] <= 0x91 { // A.2.4. - if !c.writeBytes(d[:1]) { - return false - } - c.dst[c.pDst-1] += 'a' - 'A' // lower - - // Assumption: modifier never changes on lowercase. See A.1. - // Assumption: all modifiers added have CCC = Above. See A.2.3. - return c.writeString("\u0307") && c.writeBytes(d[1:]) - } - // In all other cases the additional modifiers will have a CCC - // that is less than 230 (Above). We will insert the U+0307, if - // needed, after these modifiers so that a string in FCD form - // will remain so. See A.2.2. - lower(c) - i = 1 - } else { - return lower(c) - } - } - - for ; i < maxIgnorable && c.next(); i++ { - switch c.info.cccType() { - case cccZero: - c.unreadRune() - return true - case cccAbove: - return c.writeString("\u0307") && c.copy() // See A.1. - default: - c.copy() // See A.1. - } - } - return i == maxIgnorable -} - -func ltUpper(f mapFunc) mapFunc { - return func(c *context) bool { - // From CLDR: - // ::NFD(); - // [:Soft_Dotted:] [^[:ccc=Not_Reordered:][:ccc=Above:]]* { \u0307 → ; - // ::Any-Upper(); - // ::NFC(); - - // TODO: See A.5. A soft-dotted rune never has an exception. This would - // allow us to overload the exception bit and encode this property in - // info. Need to measure performance impact of this. - r, _ := utf8.DecodeRune(c.src[c.pSrc:]) - oldPDst := c.pDst - if !f(c) { - return false - } - if !unicode.Is(unicode.Soft_Dotted, r) { - return true - } - - // We don't need to do an NFD normalization, as a soft-dotted rune never - // contains U+0307. See A.3. - - i := 0 - for ; i < maxIgnorable && c.next(); i++ { - switch c.info.cccType() { - case cccZero: - c.unreadRune() - return true - case cccAbove: - if c.hasPrefix("\u0307") { - // We don't do a full NFC, but rather combine runes for - // some of the common cases. (Returning NFC or - // preserving normal form is neither a requirement nor - // a possibility anyway). - if !c.next() { - return false - } - if c.dst[oldPDst] == 'I' && c.pDst == oldPDst+1 && c.src[c.pSrc] == 0xcc { - s := "" - switch c.src[c.pSrc+1] { - case 0x80: // U+0300 COMBINING GRAVE ACCENT - s = "\u00cc" // U+00CC LATIN CAPITAL LETTER I WITH GRAVE - case 0x81: // U+0301 COMBINING ACUTE ACCENT - s = "\u00cd" // U+00CD LATIN CAPITAL LETTER I WITH ACUTE - case 0x83: // U+0303 COMBINING TILDE - s = "\u0128" // U+0128 LATIN CAPITAL LETTER I WITH TILDE - case 0x88: // U+0308 COMBINING DIAERESIS - s = "\u00cf" // U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS - default: - } - if s != "" { - c.pDst = oldPDst - return c.writeString(s) - } - } - } - return c.copy() - default: - c.copy() - } - } - return i == maxIgnorable - } -} - -func aztrUpper(f mapFunc) mapFunc { - return func(c *context) bool { - // i→İ; - if c.src[c.pSrc] == 'i' { - return c.writeString("Ä°") - } - return f(c) - } -} - -func aztrLower(c *context) (done bool) { - // From CLDR: - // # I and i-dotless; I-dot and i are case pairs in Turkish and Azeri - // # 0130; 0069; 0130; 0130; tr; # LATIN CAPITAL LETTER I WITH DOT ABOVE - // İ→i; - // # When lowercasing, remove dot_above in the sequence I + dot_above, which will turn into i. - // # This matches the behavior of the canonically equivalent I-dot_above - // # 0307; ; 0307; 0307; tr After_I; # COMBINING DOT ABOVE - // # When lowercasing, unless an I is before a dot_above, it turns into a dotless i. - // # 0049; 0131; 0049; 0049; tr Not_Before_Dot; # LATIN CAPITAL LETTER I - // I([^[:ccc=Not_Reordered:][:ccc=Above:]]*)\u0307 → i$1 ; - // I→ı ; - // ::Any-Lower(); - if c.hasPrefix("\u0130") { // Ä° - return c.writeString("i") - } - if c.src[c.pSrc] != 'I' { - return lower(c) - } - - // We ignore the lower-case I for now, but insert it later when we know - // which form we need. - start := c.pSrc + c.sz - - i := 0 -Loop: - // We check for up to n ignorables before \u0307. As \u0307 is an - // ignorable as well, n is maxIgnorable-1. - for ; i < maxIgnorable && c.next(); i++ { - switch c.info.cccType() { - case cccAbove: - if c.hasPrefix("\u0307") { - return c.writeString("i") && c.writeBytes(c.src[start:c.pSrc]) // ignore U+0307 - } - done = true - break Loop - case cccZero: - c.unreadRune() - done = true - break Loop - default: - // We'll write this rune after we know which starter to use. - } - } - if i == maxIgnorable { - done = true - } - return c.writeString("ı") && c.writeBytes(c.src[start:c.pSrc+c.sz]) && done -} - -func nlTitle(c *context) bool { - // From CLDR: - // # Special titlecasing for Dutch initial "ij". - // ::Any-Title(); - // # Fix up Ij at the beginning of a "word" (per Any-Title, notUAX #29) - // [:^WB=ALetter:] [:WB=Extend:]* [[:WB=MidLetter:][:WB=MidNumLet:]]? { Ij } → IJ ; - if c.src[c.pSrc] != 'I' && c.src[c.pSrc] != 'i' { - return title(c) - } - - if !c.writeString("I") || !c.next() { - return false - } - if c.src[c.pSrc] == 'j' || c.src[c.pSrc] == 'J' { - return c.writeString("J") - } - c.unreadRune() - return true -} - -// Not part of CLDR, but see http://unicode.org/cldr/trac/ticket/7078. -func afnlRewrite(c *context) { - if c.hasPrefix("'") || c.hasPrefix("’") { - c.isMidWord = true - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/map_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/map_test.go deleted file mode 100644 index f1c8547e..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/map_test.go +++ /dev/null @@ -1,619 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cases - -import ( - "bytes" - "strings" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm" -) - -type testCase struct { - lang string - src interface{} // string, []string, or nil to skip test - title interface{} // string, []string, or nil to skip test - lower interface{} // string, []string, or nil to skip test - upper interface{} // string, []string, or nil to skip test - opts options -} - -// We don't support the NoFinalSigma option, but we use it to test the -// underlying lower casers and to be able to compare differences in performance. -func noFinalSigma(o *options) { - o.noFinalSigma = true -} - -var testCases = []testCase{ - 0: { - lang: "und", - src: "abc aBc ABC abC Ä°sıI ΕΣΆΣ", - title: "Abc Abc Abc Abc Ä°sıi Εσάσ", - lower: "abc abc abc abc i\u0307sıi εσάσ", - upper: "ABC ABC ABC ABC Ä°SII ΕΣΆΣ", - opts: getOpts(noFinalSigma), - }, - - 1: { - lang: "und", - src: "abc aBc ABC abC Ä°sıI ΕΣΆΣ Σ _Σ -Σ", - title: "Abc Abc Abc Abc Ä°sıi Εσάς Σ _Σ -Σ", - lower: "abc abc abc abc i\u0307sıi εσάς σ _σ -σ", - upper: "ABC ABC ABC ABC Ä°SII ΕΣΆΣ Σ _Σ -Σ", - }, - - 2: { // Title cased runes. - lang: supported, - src: "Ç…A", - title: "Ç…a", - lower: "dža", - upper: "Ç„A", - }, - - 3: { - // Title breaking. - lang: supported, - src: []string{ - "FOO CASE TEST", - "DON'T DO THiS", - "χωΡΊΣ χωΡΊΣ^a χωΡΊΣ:a χωΡΊΣ:^a χωΡΊΣ^ όμΩΣ Σ", - "with-hyphens", - "49ers 49ers", - `"capitalize a^a -hyphen 0X _u a_u:a`, - "MidNumLet a.b\u2018c\u2019d\u2024e\ufe52f\uff07f\uff0eg", - "MidNum a,b;c\u037ed\u0589e\u060cf\u2044g\ufe50h", - "\u0345 x\u3031x x\u05d0x \u05d0x a'.a a.a a4,a", - }, - title: []string{ - "Foo Case Test", - "Don't Do This", - "ΧωÏίς ΧωÏίσ^A ΧωÏίσ:a ΧωÏίσ:^A ΧωÏίς^ Όμως Σ", - "With-Hyphens", - // Note that 49Ers is correct according to the spec. - // TODO: provide some option to the user to treat different - // characters as cased. - "49Ers 49Ers", - `"Capitalize A^A -Hyphen 0X _U A_u:a`, - "Midnumlet A.b\u2018c\u2019d\u2024e\ufe52f\uff07f\uff0eg", - "Midnum A,B;C\u037eD\u0589E\u060cF\u2044G\ufe50H", - "\u0399 X\u3031X X\u05d0x \u05d0X A'.A A.a A4,A", - }, - }, - - // TODO: These are known deviations from the options{} Unicode Word Breaking - // Algorithm. - // { - // "und", - // "x_\u3031_x a4,4a", - // "X_\u3031_x A4,4a", // Currently is "X_\U3031_X A4,4A". - // "x_\u3031_x a4,4a", - // "X_\u3031_X A4,4A", - // options{}, - // }, - - 4: { - // Tests title options - lang: "und", - src: "abc aBc ABC abC Ä°sıI o'Brien", - title: "Abc ABc ABC AbC Ä°sıI O'Brien", - opts: getOpts(NoLower), - }, - - 5: { - lang: "el", - src: "aBc ΟΔΌΣ Οδός Σο ΣΟ Σ oΣ ΟΣ σ ἕξ \u03ac", - title: "Abc Οδός Οδός Σο Σο Σ OÏ‚ Ος Σ á¼Î¾ \u0386", - lower: "abc οδός οδός σο σο σ oÏ‚ ος σ ἕξ \u03ac", - upper: "ABC ΟΔΟΣ ΟΔΟΣ ΣΟ ΣΟ Σ OΣ ΟΣ Σ ΕΞ \u0391", // Uppercase removes accents - }, - - 6: { - lang: "tr az", - src: "IsiÄ° Ä°sıI I\u0307sIiÄ° Ä°sıI\u0307 I\u0300\u0307", - title: "Isii Ä°sıı I\u0307sıii Ä°sıi I\u0300\u0307", - lower: "ısii isıı isıii isıi \u0131\u0300\u0307", - upper: "ISÄ°Ä° Ä°SII I\u0307SIÄ°Ä° Ä°SII\u0307 I\u0300\u0307", - }, - - 7: { - lang: "lt", - src: "I à J J̈ Ä® Į̈ ÃŒ à Ĩ xi̇̈ xj̇̈ xį̇̈ xi̇̀ xiÌ‡Ì xi̇̃ XI Xà XJ XJ̈ XÄ® XĮ̈ XI̟̤", - title: "I à J J̈ Ä® Į̈ ÃŒ à Ĩ Xi̇̈ Xj̇̈ Xį̇̈ Xi̇̀ XiÌ‡Ì Xi̇̃ Xi Xi̇̈ Xj Xj̇̈ Xį Xį̇̈ Xi̟̤", - lower: "i i̇̈ j j̇̈ į į̇̈ i̇̀ iÌ‡Ì i̇̃ xi̇̈ xj̇̈ xį̇̈ xi̇̀ xiÌ‡Ì xi̇̃ xi xi̇̈ xj xj̇̈ xį xį̇̈ xi̟̤", - upper: "I à J J̈ Ä® Į̈ ÃŒ à Ĩ Xà XJ̈ XĮ̈ XÃŒ Xà XĨ XI Xà XJ XJ̈ XÄ® XĮ̈ XI̟̤", - }, - - 8: { - lang: "lt", - src: "\u012e\u0300 \u00cc i\u0307\u0300 i\u0307\u0301 i\u0307\u0303 i\u0307\u0308 i\u0300\u0307", - title: "\u012e\u0300 \u00cc \u00cc \u00cd \u0128 \u00cf I\u0300\u0307", - lower: "\u012f\u0307\u0300 i\u0307\u0300 i\u0307\u0300 i\u0307\u0301 i\u0307\u0303 i\u0307\u0308 i\u0300\u0307", - upper: "\u012e\u0300 \u00cc \u00cc \u00cd \u0128 \u00cf I\u0300\u0307", - }, - - 9: { - lang: "nl", - src: "ijs IJs Ij Ijs Ä°J Ä°Js aa aA 'ns 'S", - title: "IJs IJs IJ IJs Ä°j Ä°js Aa Aa 'ns 's", - }, - - // Note: this specification is not currently part of CLDR. The same holds - // for the leading apostrophe handling for Dutch. - // See http://unicode.org/cldr/trac/ticket/7078. - 10: { - lang: "af", - src: "wag 'n bietjie", - title: "Wag 'n Bietjie", - lower: "wag 'n bietjie", - upper: "WAG 'N BIETJIE", - }, -} - -func TestCaseMappings(t *testing.T) { - for i, tt := range testCases { - src, ok := tt.src.([]string) - if !ok { - src = strings.Split(tt.src.(string), " ") - } - - for _, lang := range strings.Split(tt.lang, " ") { - tag := language.MustParse(lang) - testEntry := func(name string, mk func(language.Tag, options) transform.Transformer, gold interface{}) { - c := Caser{mk(tag, tt.opts)} - if gold != nil { - wants, ok := gold.([]string) - if !ok { - wants = strings.Split(gold.(string), " ") - } - for j, want := range wants { - if got := c.String(src[j]); got != want { - t.Errorf("%d:%s:\n%s.String(%+q):\ngot %+q;\nwant %+q", i, lang, name, src[j], got, want) - } - } - } - dst := make([]byte, 256) // big enough to hold any result - src := []byte(strings.Join(src, " ")) - v := testing.AllocsPerRun(20, func() { - c.Transform(dst, src, true) - }) - if v > 1.1 { - t.Errorf("%d:%s:\n%s: number of allocs was %f; want 0", i, lang, name, v) - } - } - testEntry("Upper", makeUpper, tt.upper) - testEntry("Lower", makeLower, tt.lower) - testEntry("Title", makeTitle, tt.title) - } - } -} - -// TestAlloc tests that some mapping methods should not cause any allocation. -func TestAlloc(t *testing.T) { - dst := make([]byte, 256) // big enough to hold any result - src := []byte(txtNonASCII) - - for i, f := range []func() Caser{ - func() Caser { return Upper(language.Und) }, - func() Caser { return Lower(language.Und) }, - func() Caser { return Title(language.Und) }, - } { - var c Caser - v := testing.AllocsPerRun(2, func() { - c = f() - }) - if v > 1 { - // TODO: Right now only Upper has 1 allocation. Special-case Lower - // and Title as well to have less allocations for the root locale. - t.Skipf("%d:init: number of allocs was %f; want 0", i, v) - } - v = testing.AllocsPerRun(2, func() { - c.Transform(dst, src, true) - }) - if v > 0 { - t.Errorf("%d:transform: number of allocs was %f; want 0", i, v) - } - } -} - -func TestShortBuffersAndOverflow(t *testing.T) { - // minBufSize is the size of the buffer by which the casing operation in - // this package are guaranteed to make progress. - const minBufSize = norm.MaxSegmentSize - - for i, tt := range []struct { - desc, src, want string - firstErr error - dstSize, srcSize int - t transform.Transformer - }{{ - desc: "und upper: short dst", - src: "abcdefg", - want: "ABCDEFG", - firstErr: transform.ErrShortDst, - dstSize: 3, - srcSize: minBufSize, - t: Upper(language.Und), - }, { - desc: "und upper: short src", - src: "123é56", - want: "123É56", - firstErr: transform.ErrShortSrc, - dstSize: 4, - srcSize: 4, - t: Upper(language.Und), - }, { - desc: "und upper: no error on short", - src: "12", - want: "12", - firstErr: nil, - dstSize: 1, - srcSize: 1, - t: Upper(language.Und), - }, { - desc: "und lower: short dst", - src: "ABCDEFG", - want: "abcdefg", - firstErr: transform.ErrShortDst, - dstSize: 3, - srcSize: minBufSize, - t: Lower(language.Und), - }, { - desc: "und lower: short src", - src: "123É56", - want: "123é56", - firstErr: transform.ErrShortSrc, - dstSize: 4, - srcSize: 4, - t: Lower(language.Und), - }, { - desc: "und lower: no error on short", - src: "12", - want: "12", - firstErr: nil, - dstSize: 1, - srcSize: 1, - t: Lower(language.Und), - }, { - desc: "final sigma: no error", - src: "ΟΣ", - want: "Ος", - dstSize: minBufSize, - srcSize: minBufSize, - t: Title(language.Und), - }, { - desc: "final sigma: short source", - src: "ΟΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣ", - want: "Οσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσς", - firstErr: transform.ErrShortSrc, - dstSize: minBufSize, - srcSize: 10, - t: Title(language.Und), - }, { - desc: "final sigma: short destination 1", - src: "ΟΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣ", - want: "Οσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσς", - firstErr: transform.ErrShortDst, - dstSize: 10, - srcSize: minBufSize, - t: Title(language.Und), - }, { - desc: "final sigma: short destination 2", - src: "ΟΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣ", - want: "Οσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσς", - firstErr: transform.ErrShortDst, - dstSize: 9, - srcSize: minBufSize, - t: Title(language.Und), - }, { - desc: "final sigma: short destination 3", - src: "ΟΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣ", - want: "Οσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσς", - firstErr: transform.ErrShortDst, - dstSize: 8, - srcSize: minBufSize, - t: Title(language.Und), - }, { - desc: "clipped UTF-8 rune", - src: "σσσσσσσσσσσ", - want: "Σσσσσσσσσσσ", - firstErr: transform.ErrShortSrc, - dstSize: minBufSize, - srcSize: 5, - t: Title(language.Und), - }, { - desc: "clipped UTF-8 rune atEOF", - src: "σσσ" + string([]byte{0xC0}), - want: "Σσσ" + string([]byte{0xC0}), - dstSize: minBufSize, - srcSize: minBufSize, - t: Title(language.Und), - }, { - // Note: the choice to change the final sigma at the end in case of - // too many case ignorables is arbitrary. The main reason for this - // choice is that it results in simpler code. - desc: "final sigma: max ignorables", - src: "ΟΣ" + strings.Repeat(".", maxIgnorable) + "a", - want: "Οσ" + strings.Repeat(".", maxIgnorable) + "a", - dstSize: minBufSize, - srcSize: minBufSize, - t: Title(language.Und), - }, { - // Note: the choice to change the final sigma at the end in case of - // too many case ignorables is arbitrary. The main reason for this - // choice is that it results in simpler code. - desc: "final sigma: too many ignorables", - src: "ΟΣ" + strings.Repeat(".", maxIgnorable+1) + "a", - want: "Ος" + strings.Repeat(".", maxIgnorable+1) + "a", - dstSize: minBufSize, - srcSize: len("ΟΣ" + strings.Repeat(".", maxIgnorable+1)), - t: Title(language.Und), - }, { - desc: "el upper: max ignorables", - src: "ο" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0313", - want: "Ο" + strings.Repeat("\u0321", maxIgnorable-1), - dstSize: minBufSize, - srcSize: minBufSize, - t: Upper(language.Greek), - }, { - desc: "el upper: too many ignorables", - src: "ο" + strings.Repeat("\u0321", maxIgnorable) + "\u0313", - want: "Ο" + strings.Repeat("\u0321", maxIgnorable) + "\u0313", - dstSize: minBufSize, - srcSize: len("ο" + strings.Repeat("\u0321", maxIgnorable)), - t: Upper(language.Greek), - }, { - desc: "el upper: short dst", - src: "123ο", - want: "123Ο", - firstErr: transform.ErrShortDst, - dstSize: 3, - srcSize: minBufSize, - t: Upper(language.Greek), - }, { - desc: "lt lower: max ignorables", - src: "I" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0300", - want: "i" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0307\u0300", - dstSize: minBufSize, - srcSize: minBufSize, - t: Lower(language.Lithuanian), - }, { - desc: "lt lower: too many ignorables", - src: "I" + strings.Repeat("\u0321", maxIgnorable) + "\u0300", - want: "i" + strings.Repeat("\u0321", maxIgnorable) + "\u0300", - dstSize: minBufSize, - srcSize: len("I" + strings.Repeat("\u0321", maxIgnorable)), - t: Lower(language.Lithuanian), - }, { - desc: "lt lower: decomposition with short dst buffer 1", - src: "aaaaa\u00cc", // U+00CC LATIN CAPITAL LETTER I GRAVE - firstErr: transform.ErrShortDst, - want: "aaaaai\u0307\u0300", - dstSize: 5, - srcSize: minBufSize, - t: Lower(language.Lithuanian), - }, { - desc: "lt lower: decomposition with short dst buffer 2", - src: "aaaa\u00cc", // U+00CC LATIN CAPITAL LETTER I GRAVE - firstErr: transform.ErrShortDst, - want: "aaaai\u0307\u0300", - dstSize: 5, - srcSize: minBufSize, - t: Lower(language.Lithuanian), - }, { - desc: "lt upper: max ignorables", - src: "i" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0307\u0300", - want: "I" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0300", - dstSize: minBufSize, - srcSize: minBufSize, - t: Upper(language.Lithuanian), - }, { - desc: "lt upper: too many ignorables", - src: "i" + strings.Repeat("\u0321", maxIgnorable) + "\u0307\u0300", - want: "I" + strings.Repeat("\u0321", maxIgnorable) + "\u0307\u0300", - dstSize: minBufSize, - srcSize: len("i" + strings.Repeat("\u0321", maxIgnorable)), - t: Upper(language.Lithuanian), - }, { - desc: "lt upper: short dst", - src: "12i\u0307\u0300", - want: "12\u00cc", - firstErr: transform.ErrShortDst, - dstSize: 3, - srcSize: minBufSize, - t: Upper(language.Lithuanian), - }, { - desc: "aztr lower: max ignorables", - src: "I" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0307\u0300", - want: "i" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0300", - dstSize: minBufSize, - srcSize: minBufSize, - t: Lower(language.Turkish), - }, { - desc: "aztr lower: too many ignorables", - src: "I" + strings.Repeat("\u0321", maxIgnorable) + "\u0307\u0300", - want: "\u0131" + strings.Repeat("\u0321", maxIgnorable) + "\u0307\u0300", - dstSize: minBufSize, - srcSize: len("I" + strings.Repeat("\u0321", maxIgnorable)), - t: Lower(language.Turkish), - }, { - desc: "nl title: pre-IJ cutoff", - src: " ij", - want: " IJ", - firstErr: transform.ErrShortDst, - dstSize: 2, - srcSize: minBufSize, - t: Title(language.Dutch), - }, { - desc: "nl title: mid-IJ cutoff", - src: " ij", - want: " IJ", - firstErr: transform.ErrShortDst, - dstSize: 3, - srcSize: minBufSize, - t: Title(language.Dutch), - }} { - buf := make([]byte, tt.dstSize) - got := []byte{} - var nSrc, nDst int - var err error - for p := 0; p < len(tt.src); p += nSrc { - q := p + tt.srcSize - if q > len(tt.src) { - q = len(tt.src) - } - nDst, nSrc, err = tt.t.Transform(buf, []byte(tt.src[p:q]), q == len(tt.src)) - got = append(got, buf[:nDst]...) - - if p == 0 && err != tt.firstErr { - t.Errorf("%d:%s:\n error was %v; want %v", i, tt.desc, err, tt.firstErr) - break - } - } - if string(got) != tt.want { - t.Errorf("%d:%s:\ngot %+q;\nwant %+q", i, tt.desc, got, tt.want) - } - } -} - -var txtASCII = strings.Repeat("The quick brown fox jumps over the lazy dog. ", 50) - -// Taken from http://creativecommons.org/licenses/by-sa/3.0/vn/ -const txt_vn = `Vá»›i các Ä‘iá»u kiện sau: Ghi nhận công của tác giả. Nếu bạn sá»­ -dụng, chuyển đổi, hoặc xây dá»±ng dá»± án từ ná»™i dung được chia sẻ này, bạn phải áp -dụng giấy phép này hoặc má»™t giấy phép khác có các Ä‘iá»u khoản tÆ°Æ¡ng tá»± nhÆ° giấy -phép này cho dá»± án của bạn. Hiểu rằng: Miá»…n — Bất kỳ các Ä‘iá»u kiện nào trên đây -cÅ©ng có thể được miá»…n bá» nếu bạn được sá»± cho phép của ngÆ°á»i sở hữu bản quyá»n. -Phạm vi công chúng — Khi tác phẩm hoặc bất kỳ chÆ°Æ¡ng nào của tác phẩm đã trong -vùng dành cho công chúng theo quy định của pháp luật thì tình trạng của nó không -bị ảnh hưởng bởi giấy phép trong bất kỳ trÆ°á»ng hợp nào.` - -// http://creativecommons.org/licenses/by-sa/2.5/cn/ -const txt_cn = `您å¯ä»¥è‡ªç”±ï¼š å¤åˆ¶ã€å‘è¡Œã€å±•è§ˆã€è¡¨æ¼”ã€æ”¾æ˜ ã€ -广播或通过信æ¯ç½‘ç»œä¼ æ’­æœ¬ä½œå“ åˆ›ä½œæ¼”ç»Žä½œå“ -对本作å“进行商业性使用 惟须éµå®ˆä¸‹åˆ—æ¡ä»¶ï¼š -ç½²å — 您必须按照作者或者许å¯äººæŒ‡å®šçš„æ–¹å¼å¯¹ä½œå“进行署å。 -相åŒæ–¹å¼å…±äº« — 如果您改å˜ã€è½¬æ¢æœ¬ä½œå“或者以本作å“为基础进行创作, -您åªèƒ½é‡‡ç”¨ä¸Žæœ¬å议相åŒçš„许å¯åè®®å‘布基于本作å“的演绎作å“。` - -// Taken from http://creativecommons.org/licenses/by-sa/1.0/deed.ru -const txt_ru = `При обÑзательном Ñоблюдении Ñледующих уÑловий: Attribution — Ð’Ñ‹ -должны атрибутировать произведение (указывать автора и иÑточник) в порÑдке, -предуÑмотренном автором или лицензиаром (но только так, чтобы никоим образом не -подразумевалоÑÑŒ, что они поддерживают Ð²Ð°Ñ Ð¸Ð»Ð¸ иÑпользование вами данного -произведениÑ). Υπό τις ακόλουθες Ï€Ïοϋποθέσεις:` - -// Taken from http://creativecommons.org/licenses/by-sa/3.0/gr/ -const txt_gr = `ΑναφοÏά ΔημιουÏÎ³Î¿Ï â€” Θα Ï€Ïέπει να κάνετε την αναφοÏά στο έÏγο με -τον Ï„Ïόπο που έχει οÏιστεί από το δημιουÏγό ή το χοÏηγοÏντο την άδεια (χωÏίς -όμως να εννοείται με οποιονδήποτε Ï„Ïόπο ότι εγκÏίνουν εσάς ή τη χÏήση του έÏγου -από εσάς). ΠαÏόμοια Διανομή — Εάν αλλοιώσετε, Ï„Ïοποποιήσετε ή δημιουÏγήσετε -πεÏαιτέÏω βασισμένοι στο έÏγο θα μποÏείτε να διανέμετε το έÏγο που θα Ï€ÏοκÏψει -μόνο με την ίδια ή παÏόμοια άδεια.` - -const txtNonASCII = txt_vn + txt_cn + txt_ru + txt_gr - -// TODO: Improve ASCII performance. - -func benchFunc(b *testing.B, f func(b []byte) []byte, s string) { - src := []byte(s) - b.SetBytes(int64(len(src))) - for i := 0; i < b.N; i++ { - f(src) - } -} - -func benchTransformer(b *testing.B, t transform.Transformer, s string) { - src := []byte(s) - dst := make([]byte, len(src)) - b.SetBytes(int64(len(src))) - - for i := 0; i < b.N; i++ { - t.Reset() - t.Transform(dst, src, true) - } -} - -var ( - noSigma = options{noFinalSigma: true} -) - -func BenchmarkBytesToLower(b *testing.B) { - benchFunc(b, bytes.ToLower, txtNonASCII) -} - -func BenchmarkSigmaLower(b *testing.B) { - benchTransformer(b, makeLower(language.Und, options{}), txtNonASCII) -} - -func BenchmarkSimpleLower(b *testing.B) { - benchTransformer(b, makeLower(language.Und, noSigma), txtNonASCII) -} - -func BenchmarkBytesToLowerASCII(b *testing.B) { - benchFunc(b, bytes.ToLower, txtASCII) -} - -func BenchmarkSigmaLowerASCII(b *testing.B) { - benchTransformer(b, makeLower(language.Und, options{}), txtASCII) -} - -func BenchmarkSimpleLowerASCII(b *testing.B) { - benchTransformer(b, makeLower(language.Und, noSigma), txtASCII) -} - -func BenchmarkBytesToTitle(b *testing.B) { - benchFunc(b, bytes.ToTitle, txtNonASCII) -} - -func BenchmarkSigmaTitle(b *testing.B) { - benchTransformer(b, makeTitle(language.Und, options{}), txtNonASCII) -} - -func BenchmarkSimpleTitle(b *testing.B) { - benchTransformer(b, makeTitle(language.Und, noSigma), txtNonASCII) -} - -func BenchmarkBytesToTitleASCII(b *testing.B) { - benchFunc(b, bytes.ToTitle, txtASCII) -} - -func BenchmarkSigmaTitleASCII(b *testing.B) { - benchTransformer(b, makeTitle(language.Und, options{}), txtASCII) -} - -func BenchmarkSimpleTitleASCII(b *testing.B) { - benchTransformer(b, makeTitle(language.Und, noSigma), txtASCII) -} - -func BenchmarkBytesUpper(b *testing.B) { - benchFunc(b, bytes.ToUpper, txtNonASCII) -} - -func BenchmarkUpper(b *testing.B) { - benchTransformer(b, Upper(language.Und), txtNonASCII) -} - -func BenchmarkBytesUpperASCII(b *testing.B) { - benchFunc(b, bytes.ToUpper, txtASCII) -} - -func BenchmarkUpperASCII(b *testing.B) { - benchTransformer(b, Upper(language.Und), txtASCII) -} - -func BenchmarkUpperSmall(b *testing.B) { - benchTransformer(b, Upper(language.Und), "При") -} - -func BenchmarkLowerSmall(b *testing.B) { - benchTransformer(b, Lower(language.Und), "При") -} - -func BenchmarkTitleSmall(b *testing.B) { - benchTransformer(b, Title(language.Und), "при") -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/tables.go deleted file mode 100644 index 475ed0ad..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/tables.go +++ /dev/null @@ -1,2086 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package cases - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *caseTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return caseValues[c0], 1 - case c0 < 0xC0: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = caseIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *caseTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return caseValues[c0] - } - i := caseIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = caseIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = caseIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *caseTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return caseValues[c0], 1 - case c0 < 0xC0: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := caseIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = caseIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = caseIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *caseTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return caseValues[c0] - } - i := caseIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = caseIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = caseIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// caseTrie. Total size: 11330 bytes (11.06 KiB). Checksum: f22dcf6778cb9014. -type caseTrie struct{} - -func newCaseTrie(i int) *caseTrie { - return &caseTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *caseTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 17: - return uint16(caseValues[n<<6+uint32(b)]) - default: - n -= 17 - return uint16(sparse.lookup(n, b)) - } -} - -// caseValues: 19 blocks, 1216 entries, 2432 bytes -// The third block is the zero block. -var caseValues = [1216]uint16{ - // Block 0x0, offset 0x0 - 0x27: 0x0014, - 0x2e: 0x0014, - 0x30: 0x0010, 0x31: 0x0010, 0x32: 0x0010, 0x33: 0x0010, 0x34: 0x0010, 0x35: 0x0010, - 0x36: 0x0010, 0x37: 0x0010, 0x38: 0x0010, 0x39: 0x0010, 0x3a: 0x0014, - // Block 0x1, offset 0x40 - 0x41: 0x1013, 0x42: 0x1013, 0x43: 0x1013, 0x44: 0x1013, 0x45: 0x1013, - 0x46: 0x1013, 0x47: 0x1013, 0x48: 0x1013, 0x49: 0x1013, 0x4a: 0x1013, 0x4b: 0x1013, - 0x4c: 0x1013, 0x4d: 0x1013, 0x4e: 0x1013, 0x4f: 0x1013, 0x50: 0x1013, 0x51: 0x1013, - 0x52: 0x1013, 0x53: 0x1013, 0x54: 0x1013, 0x55: 0x1013, 0x56: 0x1013, 0x57: 0x1013, - 0x58: 0x1013, 0x59: 0x1013, 0x5a: 0x1013, - 0x5e: 0x0004, 0x5f: 0x0010, 0x60: 0x0004, 0x61: 0x1012, 0x62: 0x1012, 0x63: 0x1012, - 0x64: 0x1012, 0x65: 0x1012, 0x66: 0x1012, 0x67: 0x1012, 0x68: 0x1012, 0x69: 0x1012, - 0x6a: 0x1012, 0x6b: 0x1012, 0x6c: 0x1012, 0x6d: 0x1012, 0x6e: 0x1012, 0x6f: 0x1012, - 0x70: 0x1012, 0x71: 0x1012, 0x72: 0x1012, 0x73: 0x1012, 0x74: 0x1012, 0x75: 0x1012, - 0x76: 0x1012, 0x77: 0x1012, 0x78: 0x1012, 0x79: 0x1012, 0x7a: 0x1012, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x05d2, 0xc1: 0x0753, 0xc2: 0x0093, 0xc3: 0x0092, 0xc4: 0x0093, 0xc5: 0x0092, - 0xc6: 0x0753, 0xc7: 0x0793, 0xc8: 0x0792, 0xc9: 0x08d3, 0xca: 0x0a53, 0xcb: 0x0393, - 0xcc: 0x0392, 0xcd: 0x0012, 0xce: 0x0bd3, 0xcf: 0x0d53, 0xd0: 0x0ed3, 0xd1: 0x0193, - 0xd2: 0x0192, 0xd3: 0x1053, 0xd4: 0x11d3, 0xd5: 0x1352, 0xd6: 0x14d3, 0xd7: 0x14d3, - 0xd8: 0x0093, 0xd9: 0x0092, 0xda: 0x1652, 0xdb: 0x0012, 0xdc: 0x1053, 0xdd: 0x17d3, - 0xde: 0x1952, 0xdf: 0x1ad3, 0xe0: 0x0093, 0xe1: 0x0092, 0xe2: 0x0093, 0xe3: 0x0092, - 0xe4: 0x0093, 0xe5: 0x0092, 0xe6: 0x1c53, 0xe7: 0x0793, 0xe8: 0x0792, 0xe9: 0x1dd3, - 0xea: 0x0012, 0xeb: 0x0012, 0xec: 0x0093, 0xed: 0x0092, 0xee: 0x1c53, 0xef: 0x0f93, - 0xf0: 0x0f92, 0xf1: 0x1f53, 0xf2: 0x20d3, 0xf3: 0x0393, 0xf4: 0x0392, 0xf5: 0x0193, - 0xf6: 0x0192, 0xf7: 0x2253, 0xf8: 0x0093, 0xf9: 0x0092, 0xfa: 0x0012, 0xfb: 0x0010, - 0xfc: 0x0093, 0xfd: 0x0092, 0xfe: 0x0012, 0xff: 0x23d2, - // Block 0x4, offset 0x100 - 0x100: 0x0010, 0x101: 0x0010, 0x102: 0x0010, 0x103: 0x0010, 0x104: 0x02fb, 0x105: 0x03b9, - 0x106: 0x047a, 0x107: 0x053b, 0x108: 0x05f9, 0x109: 0x06ba, 0x10a: 0x077b, 0x10b: 0x0839, - 0x10c: 0x08fa, 0x10d: 0x0193, 0x10e: 0x0192, 0x10f: 0x0f93, 0x110: 0x0f92, 0x111: 0x0193, - 0x112: 0x0192, 0x113: 0x0393, 0x114: 0x0392, 0x115: 0x0193, 0x116: 0x0192, 0x117: 0x0793, - 0x118: 0x0792, 0x119: 0x0193, 0x11a: 0x0192, 0x11b: 0x0393, 0x11c: 0x0392, 0x11d: 0x0bd2, - 0x11e: 0x0093, 0x11f: 0x0092, 0x120: 0x0093, 0x121: 0x0092, 0x122: 0x0093, 0x123: 0x0092, - 0x124: 0x0093, 0x125: 0x0092, 0x126: 0x0093, 0x127: 0x0092, 0x128: 0x0093, 0x129: 0x0092, - 0x12a: 0x0093, 0x12b: 0x0092, 0x12c: 0x0093, 0x12d: 0x0092, 0x12e: 0x0093, 0x12f: 0x0092, - 0x130: 0x09ba, 0x131: 0x0a5b, 0x132: 0x0b19, 0x133: 0x0bda, 0x134: 0x0093, 0x135: 0x0092, - 0x136: 0x1353, 0x137: 0x23d3, 0x138: 0x0093, 0x139: 0x0092, 0x13a: 0x0093, 0x13b: 0x0092, - 0x13c: 0x0093, 0x13d: 0x0092, 0x13e: 0x0093, 0x13f: 0x0092, - // Block 0x5, offset 0x140 - 0x140: 0x0e7a, 0x141: 0x0193, 0x142: 0x0192, 0x143: 0x05d3, 0x144: 0x2553, 0x145: 0x26d3, - 0x146: 0x0093, 0x147: 0x0092, 0x148: 0x0093, 0x149: 0x0092, 0x14a: 0x0093, 0x14b: 0x0092, - 0x14c: 0x0093, 0x14d: 0x0092, 0x14e: 0x0093, 0x14f: 0x0092, 0x150: 0x0f1a, 0x151: 0x0fba, - 0x152: 0x105a, 0x153: 0x0752, 0x154: 0x0752, 0x155: 0x0012, 0x156: 0x08d2, 0x157: 0x0a52, - 0x158: 0x0012, 0x159: 0x0d52, 0x15a: 0x0012, 0x15b: 0x0ed2, 0x15c: 0x10fa, 0x15d: 0x0012, - 0x15e: 0x0012, 0x15f: 0x0012, 0x160: 0x1052, 0x161: 0x119a, 0x162: 0x0012, 0x163: 0x11d2, - 0x164: 0x0012, 0x165: 0x123a, 0x166: 0x12da, 0x167: 0x0012, 0x168: 0x14d2, 0x169: 0x14d2, - 0x16a: 0x0012, 0x16b: 0x137a, 0x16c: 0x141a, 0x16d: 0x0012, 0x16e: 0x0012, 0x16f: 0x1052, - 0x170: 0x0012, 0x171: 0x14ba, 0x172: 0x17d2, 0x173: 0x0012, 0x174: 0x0012, 0x175: 0x1ad2, - 0x176: 0x0012, 0x177: 0x0012, 0x178: 0x0012, 0x179: 0x0012, 0x17a: 0x0012, 0x17b: 0x0012, - 0x17c: 0x0012, 0x17d: 0x155a, 0x17e: 0x0012, 0x17f: 0x0012, - // Block 0x6, offset 0x180 - 0x180: 0x1c52, 0x181: 0x0012, 0x182: 0x0012, 0x183: 0x1dd2, 0x184: 0x0012, 0x185: 0x0012, - 0x186: 0x0012, 0x187: 0x15fa, 0x188: 0x1c52, 0x189: 0x2552, 0x18a: 0x1f52, 0x18b: 0x20d2, - 0x18c: 0x26d2, 0x18d: 0x0012, 0x18e: 0x0012, 0x18f: 0x0012, 0x190: 0x0012, 0x191: 0x0012, - 0x192: 0x2252, 0x193: 0x0012, 0x194: 0x0010, 0x195: 0x0012, 0x196: 0x0012, 0x197: 0x0012, - 0x198: 0x0012, 0x199: 0x0012, 0x19a: 0x0012, 0x19b: 0x0012, 0x19c: 0x0012, 0x19d: 0x169a, - 0x19e: 0x173a, 0x19f: 0x0012, 0x1a0: 0x0012, 0x1a1: 0x0012, 0x1a2: 0x0012, 0x1a3: 0x0012, - 0x1a4: 0x0012, 0x1a5: 0x0012, 0x1a6: 0x0012, 0x1a7: 0x0012, 0x1a8: 0x0012, 0x1a9: 0x0012, - 0x1aa: 0x0012, 0x1ab: 0x0012, 0x1ac: 0x0012, 0x1ad: 0x0012, 0x1ae: 0x0012, 0x1af: 0x0012, - 0x1b0: 0x0015, 0x1b1: 0x0015, 0x1b2: 0x0015, 0x1b3: 0x0015, 0x1b4: 0x0015, 0x1b5: 0x0015, - 0x1b6: 0x0015, 0x1b7: 0x0015, 0x1b8: 0x0015, 0x1b9: 0x0014, 0x1ba: 0x0014, 0x1bb: 0x0014, - 0x1bc: 0x0014, 0x1bd: 0x0014, 0x1be: 0x0014, 0x1bf: 0x0014, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x0024, 0x1c1: 0x0024, 0x1c2: 0x0024, 0x1c3: 0x0024, 0x1c4: 0x0024, 0x1c5: 0x2875, - 0x1c6: 0x0024, 0x1c7: 0x0034, 0x1c8: 0x0034, 0x1c9: 0x0034, 0x1ca: 0x0024, 0x1cb: 0x0024, - 0x1cc: 0x0024, 0x1cd: 0x0034, 0x1ce: 0x0034, 0x1cf: 0x0014, 0x1d0: 0x0024, 0x1d1: 0x0024, - 0x1d2: 0x0024, 0x1d3: 0x0034, 0x1d4: 0x0034, 0x1d5: 0x0034, 0x1d6: 0x0034, 0x1d7: 0x0024, - 0x1d8: 0x0034, 0x1d9: 0x0034, 0x1da: 0x0034, 0x1db: 0x0024, 0x1dc: 0x0034, 0x1dd: 0x0034, - 0x1de: 0x0034, 0x1df: 0x0034, 0x1e0: 0x0034, 0x1e1: 0x0034, 0x1e2: 0x0034, 0x1e3: 0x0024, - 0x1e4: 0x0024, 0x1e5: 0x0024, 0x1e6: 0x0024, 0x1e7: 0x0024, 0x1e8: 0x0024, 0x1e9: 0x0024, - 0x1ea: 0x0024, 0x1eb: 0x0024, 0x1ec: 0x0024, 0x1ed: 0x0024, 0x1ee: 0x0024, 0x1ef: 0x0024, - 0x1f0: 0x0093, 0x1f1: 0x0092, 0x1f2: 0x0093, 0x1f3: 0x0092, 0x1f4: 0x0014, 0x1f5: 0x0004, - 0x1f6: 0x0093, 0x1f7: 0x0092, 0x1fa: 0x0015, 0x1fb: 0x29d2, - 0x1fc: 0x2b52, 0x1fd: 0x2b52, 0x1ff: 0x2cd3, - // Block 0x8, offset 0x200 - 0x204: 0x0004, 0x205: 0x0004, - 0x206: 0x1513, 0x207: 0x0014, 0x208: 0x1293, 0x209: 0x1393, 0x20a: 0x1293, - 0x20c: 0x2e53, 0x20e: 0x2fd3, 0x20f: 0x3153, 0x210: 0x17da, 0x211: 0x1013, - 0x212: 0x1013, 0x213: 0x1013, 0x214: 0x1013, 0x215: 0x1013, 0x216: 0x1013, 0x217: 0x1013, - 0x218: 0x1013, 0x219: 0x1013, 0x21a: 0x1013, 0x21b: 0x1013, 0x21c: 0x1013, 0x21d: 0x1013, - 0x21e: 0x1013, 0x21f: 0x1013, 0x220: 0x32d3, 0x221: 0x32d3, 0x223: 0x32d3, - 0x224: 0x32d3, 0x225: 0x32d3, 0x226: 0x32d3, 0x227: 0x32d3, 0x228: 0x32d3, 0x229: 0x32d3, - 0x22a: 0x32d3, 0x22b: 0x32d3, 0x22c: 0x1512, 0x22d: 0x1292, 0x22e: 0x1392, 0x22f: 0x1292, - 0x230: 0x18da, 0x231: 0x1012, 0x232: 0x1012, 0x233: 0x1012, 0x234: 0x1012, 0x235: 0x1012, - 0x236: 0x1012, 0x237: 0x1012, 0x238: 0x1012, 0x239: 0x1012, 0x23a: 0x1012, 0x23b: 0x1012, - 0x23c: 0x1012, 0x23d: 0x1012, 0x23e: 0x1012, 0x23f: 0x1012, - // Block 0x9, offset 0x240 - 0x240: 0x32d2, 0x241: 0x32d2, 0x242: 0x3452, 0x243: 0x32d2, 0x244: 0x32d2, 0x245: 0x32d2, - 0x246: 0x32d2, 0x247: 0x32d2, 0x248: 0x32d2, 0x249: 0x32d2, 0x24a: 0x32d2, 0x24b: 0x32d2, - 0x24c: 0x2e52, 0x24d: 0x2fd2, 0x24e: 0x3152, 0x24f: 0x0c13, 0x250: 0x35d2, 0x251: 0x3752, - 0x252: 0x0013, 0x253: 0x0013, 0x254: 0x0013, 0x255: 0x38d2, 0x256: 0x3a52, 0x257: 0x0c12, - 0x258: 0x0093, 0x259: 0x0092, 0x25a: 0x0093, 0x25b: 0x0092, 0x25c: 0x0093, 0x25d: 0x0092, - 0x25e: 0x0093, 0x25f: 0x0092, 0x260: 0x0093, 0x261: 0x0092, 0x262: 0x0093, 0x263: 0x0092, - 0x264: 0x0093, 0x265: 0x0092, 0x266: 0x0093, 0x267: 0x0092, 0x268: 0x0093, 0x269: 0x0092, - 0x26a: 0x0093, 0x26b: 0x0092, 0x26c: 0x0093, 0x26d: 0x0092, 0x26e: 0x0093, 0x26f: 0x0092, - 0x270: 0x3bd2, 0x271: 0x3d52, 0x272: 0x0592, 0x273: 0x2cd2, 0x274: 0x3ed3, 0x275: 0x32d2, - 0x277: 0x0793, 0x278: 0x0792, 0x279: 0x0593, 0x27a: 0x0093, 0x27b: 0x0092, - 0x27c: 0x0012, 0x27d: 0x29d3, 0x27e: 0x2b53, 0x27f: 0x2b53, - // Block 0xa, offset 0x280 - 0x280: 0x0412, 0x281: 0x0412, 0x282: 0x0412, 0x283: 0x0412, 0x284: 0x0412, 0x285: 0x0412, - 0x288: 0x0413, 0x289: 0x0413, 0x28a: 0x0413, 0x28b: 0x0413, - 0x28c: 0x0413, 0x28d: 0x0413, 0x290: 0x1eba, 0x291: 0x0412, - 0x292: 0x1f7a, 0x293: 0x0412, 0x294: 0x207a, 0x295: 0x0412, 0x296: 0x217a, 0x297: 0x0412, - 0x299: 0x0413, 0x29b: 0x0413, 0x29d: 0x0413, - 0x29f: 0x0413, 0x2a0: 0x0412, 0x2a1: 0x0412, 0x2a2: 0x0412, 0x2a3: 0x0412, - 0x2a4: 0x0412, 0x2a5: 0x0412, 0x2a6: 0x0412, 0x2a7: 0x0412, 0x2a8: 0x0413, 0x2a9: 0x0413, - 0x2aa: 0x0413, 0x2ab: 0x0413, 0x2ac: 0x0413, 0x2ad: 0x0413, 0x2ae: 0x0413, 0x2af: 0x0413, - 0x2b0: 0x5352, 0x2b1: 0x5352, 0x2b2: 0x54d2, 0x2b3: 0x54d2, 0x2b4: 0x5652, 0x2b5: 0x5652, - 0x2b6: 0x57d2, 0x2b7: 0x57d2, 0x2b8: 0x5952, 0x2b9: 0x5952, 0x2ba: 0x5ad2, 0x2bb: 0x5ad2, - 0x2bc: 0x29d2, 0x2bd: 0x29d2, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x227a, 0x2c1: 0x23ba, 0x2c2: 0x24fa, 0x2c3: 0x263a, 0x2c4: 0x277a, 0x2c5: 0x28ba, - 0x2c6: 0x29fa, 0x2c7: 0x2b3a, 0x2c8: 0x2c79, 0x2c9: 0x2db9, 0x2ca: 0x2ef9, 0x2cb: 0x3039, - 0x2cc: 0x3179, 0x2cd: 0x32b9, 0x2ce: 0x33f9, 0x2cf: 0x3539, 0x2d0: 0x367a, 0x2d1: 0x37ba, - 0x2d2: 0x38fa, 0x2d3: 0x3a3a, 0x2d4: 0x3b7a, 0x2d5: 0x3cba, 0x2d6: 0x3dfa, 0x2d7: 0x3f3a, - 0x2d8: 0x4079, 0x2d9: 0x41b9, 0x2da: 0x42f9, 0x2db: 0x4439, 0x2dc: 0x4579, 0x2dd: 0x46b9, - 0x2de: 0x47f9, 0x2df: 0x4939, 0x2e0: 0x4a7a, 0x2e1: 0x4bba, 0x2e2: 0x4cfa, 0x2e3: 0x4e3a, - 0x2e4: 0x4f7a, 0x2e5: 0x50ba, 0x2e6: 0x51fa, 0x2e7: 0x533a, 0x2e8: 0x5479, 0x2e9: 0x55b9, - 0x2ea: 0x56f9, 0x2eb: 0x5839, 0x2ec: 0x5979, 0x2ed: 0x5ab9, 0x2ee: 0x5bf9, 0x2ef: 0x5d39, - 0x2f0: 0x0412, 0x2f1: 0x0412, 0x2f2: 0x5e7a, 0x2f3: 0x5ffa, 0x2f4: 0x611a, - 0x2f6: 0x625a, 0x2f7: 0x631a, 0x2f8: 0x0413, 0x2f9: 0x0413, 0x2fa: 0x5353, 0x2fb: 0x5353, - 0x2fc: 0x64d9, 0x2fd: 0x0004, 0x2fe: 0x65fa, 0x2ff: 0x0004, - // Block 0xc, offset 0x300 - 0x300: 0x0004, 0x301: 0x0004, 0x302: 0x667a, 0x303: 0x67fa, 0x304: 0x691a, - 0x306: 0x6a5a, 0x307: 0x6b1a, 0x308: 0x54d3, 0x309: 0x54d3, 0x30a: 0x5653, 0x30b: 0x5653, - 0x30c: 0x6cd9, 0x30d: 0x0004, 0x30e: 0x0004, 0x30f: 0x0004, 0x310: 0x0412, 0x311: 0x0412, - 0x312: 0x6dfa, 0x313: 0x6efa, 0x316: 0x6ffa, 0x317: 0x70ba, - 0x318: 0x0413, 0x319: 0x0413, 0x31a: 0x57d3, 0x31b: 0x57d3, 0x31d: 0x0004, - 0x31e: 0x0004, 0x31f: 0x0004, 0x320: 0x0412, 0x321: 0x0412, 0x322: 0x71ba, 0x323: 0x72ba, - 0x324: 0x73ba, 0x325: 0x0492, 0x326: 0x747a, 0x327: 0x753a, 0x328: 0x0413, 0x329: 0x0413, - 0x32a: 0x5ad3, 0x32b: 0x5ad3, 0x32c: 0x0493, 0x32d: 0x0004, 0x32e: 0x0004, 0x32f: 0x0004, - 0x332: 0x763a, 0x333: 0x77ba, 0x334: 0x78da, - 0x336: 0x7a1a, 0x337: 0x7ada, 0x338: 0x5953, 0x339: 0x5953, 0x33a: 0x29d3, 0x33b: 0x29d3, - 0x33c: 0x7c99, 0x33d: 0x0004, 0x33e: 0x0004, - // Block 0xd, offset 0x340 - 0x342: 0x0013, - 0x347: 0x0013, 0x34a: 0x0012, 0x34b: 0x0013, - 0x34c: 0x0013, 0x34d: 0x0013, 0x34e: 0x0012, 0x34f: 0x0012, 0x350: 0x0013, 0x351: 0x0013, - 0x352: 0x0013, 0x353: 0x0012, 0x355: 0x0013, - 0x359: 0x0013, 0x35a: 0x0013, 0x35b: 0x0013, 0x35c: 0x0013, 0x35d: 0x0013, - 0x364: 0x0013, 0x366: 0x7dbb, 0x368: 0x0013, - 0x36a: 0x7e3b, 0x36b: 0x7e9b, 0x36c: 0x0013, 0x36d: 0x0013, 0x36f: 0x0012, - 0x370: 0x0013, 0x371: 0x0013, 0x372: 0x5c53, 0x373: 0x0013, 0x374: 0x0012, 0x375: 0x0010, - 0x376: 0x0010, 0x377: 0x0010, 0x378: 0x0010, 0x379: 0x0012, - 0x37c: 0x0012, 0x37d: 0x0012, 0x37e: 0x0013, 0x37f: 0x0013, - // Block 0xe, offset 0x380 - 0x380: 0x0d13, 0x381: 0x0d13, 0x382: 0x0f13, 0x383: 0x0f13, 0x384: 0x0d13, 0x385: 0x0d13, - 0x386: 0x1313, 0x387: 0x1313, 0x388: 0x1513, 0x389: 0x1513, 0x38a: 0x1713, 0x38b: 0x1713, - 0x38c: 0x1513, 0x38d: 0x1513, 0x38e: 0x1313, 0x38f: 0x1313, 0x390: 0x5dd2, 0x391: 0x5dd2, - 0x392: 0x3bd2, 0x393: 0x3bd2, 0x394: 0x5f52, 0x395: 0x5f52, 0x396: 0x3bd2, 0x397: 0x3bd2, - 0x398: 0x5dd2, 0x399: 0x5dd2, 0x39a: 0x0d12, 0x39b: 0x0d12, 0x39c: 0x0f12, 0x39d: 0x0f12, - 0x39e: 0x0d12, 0x39f: 0x0d12, 0x3a0: 0x1312, 0x3a1: 0x1312, 0x3a2: 0x1512, 0x3a3: 0x1512, - 0x3a4: 0x1712, 0x3a5: 0x1712, 0x3a6: 0x1512, 0x3a7: 0x1512, 0x3a8: 0x1312, 0x3a9: 0x1312, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x3d52, 0x3c1: 0x3d52, 0x3c2: 0x3d52, 0x3c3: 0x3d52, 0x3c4: 0x3d52, 0x3c5: 0x3d52, - 0x3c6: 0x3d52, 0x3c7: 0x3d52, 0x3c8: 0x3d52, 0x3c9: 0x3d52, 0x3ca: 0x3d52, 0x3cb: 0x3d52, - 0x3cc: 0x3d52, 0x3cd: 0x3d52, 0x3ce: 0x3d52, 0x3cf: 0x3d52, 0x3d0: 0x60d2, 0x3d1: 0x60d2, - 0x3d2: 0x60d2, 0x3d3: 0x60d2, 0x3d4: 0x60d2, 0x3d5: 0x60d2, 0x3d6: 0x60d2, 0x3d7: 0x60d2, - 0x3d8: 0x60d2, 0x3d9: 0x60d2, 0x3da: 0x60d2, 0x3db: 0x60d2, 0x3dc: 0x60d2, 0x3dd: 0x60d2, - 0x3de: 0x60d2, 0x3e0: 0x0093, 0x3e1: 0x0092, 0x3e2: 0x7f1b, 0x3e3: 0x5053, - 0x3e4: 0x7f9b, 0x3e5: 0x801a, 0x3e6: 0x809a, 0x3e7: 0x0793, 0x3e8: 0x0792, 0x3e9: 0x0193, - 0x3ea: 0x0192, 0x3eb: 0x0393, 0x3ec: 0x0392, 0x3ed: 0x811b, 0x3ee: 0x819b, 0x3ef: 0x821b, - 0x3f0: 0x829b, 0x3f1: 0x0012, 0x3f2: 0x0093, 0x3f3: 0x0092, 0x3f4: 0x0012, 0x3f5: 0x0193, - 0x3f6: 0x0192, 0x3f7: 0x0012, 0x3f8: 0x0012, 0x3f9: 0x0012, 0x3fa: 0x0012, 0x3fb: 0x0012, - 0x3fc: 0x0015, 0x3fd: 0x0015, 0x3fe: 0x831b, 0x3ff: 0x839b, - // Block 0x10, offset 0x400 - 0x400: 0x0093, 0x401: 0x0092, 0x402: 0x0093, 0x403: 0x0092, 0x404: 0x0093, 0x405: 0x0092, - 0x406: 0x0093, 0x407: 0x0092, 0x408: 0x0014, 0x409: 0x0004, 0x40a: 0x0004, 0x40b: 0x0393, - 0x40c: 0x0392, 0x40d: 0x841b, 0x40e: 0x0012, 0x40f: 0x0010, 0x410: 0x0093, 0x411: 0x0092, - 0x412: 0x0093, 0x413: 0x0092, 0x414: 0x0012, 0x415: 0x0012, 0x416: 0x0093, 0x417: 0x0092, - 0x418: 0x0093, 0x419: 0x0092, 0x41a: 0x0093, 0x41b: 0x0092, 0x41c: 0x0093, 0x41d: 0x0092, - 0x41e: 0x0093, 0x41f: 0x0092, 0x420: 0x0093, 0x421: 0x0092, 0x422: 0x0093, 0x423: 0x0092, - 0x424: 0x0093, 0x425: 0x0092, 0x426: 0x0093, 0x427: 0x0092, 0x428: 0x0093, 0x429: 0x0092, - 0x42a: 0x849b, 0x42b: 0x851b, 0x42c: 0x859b, 0x42d: 0x861b, - 0x430: 0x869b, 0x431: 0x871b, 0x432: 0x879b, 0x433: 0x6253, 0x434: 0x0093, 0x435: 0x0092, - 0x436: 0x0093, 0x437: 0x0092, - // Block 0x11, offset 0x440 - 0x440: 0x881a, 0x441: 0x88da, 0x442: 0x899a, 0x443: 0x8a5a, 0x444: 0x8b5a, 0x445: 0x8c5a, - 0x446: 0x8d1a, - 0x453: 0x8dda, 0x454: 0x8f1a, 0x455: 0x905a, 0x456: 0x919a, 0x457: 0x92da, - 0x45d: 0x0010, - 0x45e: 0x0034, 0x45f: 0x0010, 0x460: 0x0010, 0x461: 0x0010, 0x462: 0x0010, 0x463: 0x0010, - 0x464: 0x0010, 0x465: 0x0010, 0x466: 0x0010, 0x467: 0x0010, 0x468: 0x0010, - 0x46a: 0x0010, 0x46b: 0x0010, 0x46c: 0x0010, 0x46d: 0x0010, 0x46e: 0x0010, 0x46f: 0x0010, - 0x470: 0x0010, 0x471: 0x0010, 0x472: 0x0010, 0x473: 0x0010, 0x474: 0x0010, 0x475: 0x0010, - 0x476: 0x0010, 0x478: 0x0010, 0x479: 0x0010, 0x47a: 0x0010, 0x47b: 0x0010, - 0x47c: 0x0010, 0x47e: 0x0010, - // Block 0x12, offset 0x480 - 0x482: 0x0010, - 0x487: 0x0010, 0x489: 0x0010, 0x48b: 0x0010, - 0x48d: 0x0010, 0x48e: 0x0010, 0x48f: 0x0010, 0x491: 0x0010, - 0x492: 0x0010, 0x494: 0x0010, 0x497: 0x0010, - 0x499: 0x0010, 0x49b: 0x0010, 0x49d: 0x0010, - 0x49f: 0x0010, 0x4a1: 0x0010, 0x4a2: 0x0010, - 0x4a4: 0x0010, 0x4a7: 0x0010, 0x4a8: 0x0010, 0x4a9: 0x0010, - 0x4aa: 0x0010, 0x4ac: 0x0010, 0x4ad: 0x0010, 0x4ae: 0x0010, 0x4af: 0x0010, - 0x4b0: 0x0010, 0x4b1: 0x0010, 0x4b2: 0x0010, 0x4b4: 0x0010, 0x4b5: 0x0010, - 0x4b6: 0x0010, 0x4b7: 0x0010, 0x4b9: 0x0010, 0x4ba: 0x0010, 0x4bb: 0x0010, - 0x4bc: 0x0010, 0x4be: 0x0010, -} - -// caseIndex: 25 blocks, 1600 entries, 3200 bytes -// Block 0 is the zero block. -var caseIndex = [1600]uint16{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x11, 0xc3: 0x12, 0xc4: 0x13, 0xc5: 0x14, 0xc6: 0x01, 0xc7: 0x02, - 0xc8: 0x15, 0xc9: 0x03, 0xca: 0x04, 0xcb: 0x16, 0xcc: 0x17, 0xcd: 0x05, 0xce: 0x06, 0xcf: 0x07, - 0xd0: 0x18, 0xd1: 0x19, 0xd2: 0x1a, 0xd3: 0x1b, 0xd4: 0x1c, 0xd5: 0x1d, 0xd6: 0x1e, 0xd7: 0x1f, - 0xd8: 0x20, 0xd9: 0x21, 0xda: 0x22, 0xdb: 0x23, 0xdc: 0x24, 0xdd: 0x25, 0xde: 0x26, 0xdf: 0x27, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x08, 0xef: 0x09, - 0xf0: 0x14, 0xf3: 0x16, - // Block 0x4, offset 0x100 - 0x120: 0x28, 0x121: 0x29, 0x122: 0x2a, 0x123: 0x2b, 0x124: 0x2c, 0x125: 0x2d, 0x126: 0x2e, 0x127: 0x2f, - 0x128: 0x30, 0x129: 0x31, 0x12a: 0x32, 0x12b: 0x33, 0x12c: 0x34, 0x12d: 0x35, 0x12e: 0x36, 0x12f: 0x37, - 0x130: 0x38, 0x131: 0x39, 0x132: 0x3a, 0x133: 0x3b, 0x134: 0x3c, 0x135: 0x3d, 0x136: 0x3e, 0x137: 0x3f, - 0x138: 0x40, 0x139: 0x41, 0x13a: 0x42, 0x13b: 0x43, 0x13c: 0x44, 0x13d: 0x45, 0x13e: 0x46, 0x13f: 0x47, - // Block 0x5, offset 0x140 - 0x140: 0x48, 0x141: 0x49, 0x142: 0x4a, 0x143: 0x4b, 0x144: 0x22, 0x145: 0x22, 0x146: 0x22, 0x147: 0x22, - 0x148: 0x22, 0x149: 0x4c, 0x14a: 0x4d, 0x14b: 0x4e, 0x14c: 0x4f, 0x14d: 0x50, 0x14e: 0x51, 0x14f: 0x52, - 0x150: 0x53, 0x151: 0x22, 0x152: 0x22, 0x153: 0x22, 0x154: 0x22, 0x155: 0x22, 0x156: 0x22, 0x157: 0x22, - 0x158: 0x22, 0x159: 0x54, 0x15a: 0x55, 0x15b: 0x56, 0x15c: 0x57, 0x15d: 0x58, 0x15e: 0x59, 0x15f: 0x5a, - 0x160: 0x5b, 0x161: 0x5c, 0x162: 0x5d, 0x163: 0x5e, 0x164: 0x5f, 0x165: 0x60, 0x167: 0x61, - 0x168: 0x62, 0x169: 0x63, 0x16a: 0x64, 0x16c: 0x65, 0x16d: 0x66, 0x16e: 0x67, 0x16f: 0x68, - 0x170: 0x69, 0x171: 0x6a, 0x173: 0x6b, 0x174: 0x6c, 0x175: 0x6d, 0x176: 0x6e, 0x177: 0x6f, - 0x178: 0x70, 0x179: 0x70, 0x17a: 0x71, 0x17b: 0x70, 0x17c: 0x72, 0x17d: 0x08, 0x17e: 0x09, 0x17f: 0x0a, - // Block 0x6, offset 0x180 - 0x180: 0x73, 0x181: 0x74, 0x182: 0x75, 0x183: 0x76, 0x184: 0x0b, 0x185: 0x77, 0x186: 0x78, - 0x192: 0x79, 0x193: 0x0c, - 0x1b0: 0x7a, 0x1b1: 0x0d, 0x1b2: 0x70, 0x1b3: 0x7b, 0x1b4: 0x7c, 0x1b5: 0x7d, 0x1b6: 0x7e, 0x1b7: 0x7f, - 0x1b8: 0x80, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x81, 0x1c2: 0x82, 0x1c3: 0x83, 0x1c4: 0x84, 0x1c5: 0x22, 0x1c6: 0x85, - // Block 0x8, offset 0x200 - 0x200: 0x86, 0x201: 0x22, 0x202: 0x22, 0x203: 0x22, 0x204: 0x22, 0x205: 0x22, 0x206: 0x22, 0x207: 0x22, - 0x208: 0x22, 0x209: 0x22, 0x20a: 0x22, 0x20b: 0x22, 0x20c: 0x22, 0x20d: 0x22, 0x20e: 0x22, 0x20f: 0x22, - 0x210: 0x22, 0x211: 0x22, 0x212: 0x87, 0x213: 0x88, 0x214: 0x22, 0x215: 0x22, 0x216: 0x22, 0x217: 0x22, - 0x218: 0x89, 0x219: 0x8a, 0x21a: 0x8b, 0x21b: 0x8c, 0x21c: 0x8d, 0x21d: 0x8e, 0x21e: 0x0e, 0x21f: 0x8f, - 0x220: 0x90, 0x221: 0x91, 0x222: 0x22, 0x223: 0x92, 0x224: 0x93, 0x225: 0x94, 0x226: 0x95, 0x227: 0x96, - 0x228: 0x97, 0x229: 0x98, 0x22a: 0x99, 0x22b: 0x9a, 0x22c: 0x9b, 0x22d: 0x9c, 0x22e: 0x9d, 0x22f: 0x9e, - 0x230: 0x22, 0x231: 0x22, 0x232: 0x22, 0x233: 0x22, 0x234: 0x22, 0x235: 0x22, 0x236: 0x22, 0x237: 0x22, - 0x238: 0x22, 0x239: 0x22, 0x23a: 0x22, 0x23b: 0x22, 0x23c: 0x22, 0x23d: 0x22, 0x23e: 0x22, 0x23f: 0x22, - // Block 0x9, offset 0x240 - 0x240: 0x22, 0x241: 0x22, 0x242: 0x22, 0x243: 0x22, 0x244: 0x22, 0x245: 0x22, 0x246: 0x22, 0x247: 0x22, - 0x248: 0x22, 0x249: 0x22, 0x24a: 0x22, 0x24b: 0x22, 0x24c: 0x22, 0x24d: 0x22, 0x24e: 0x22, 0x24f: 0x22, - 0x250: 0x22, 0x251: 0x22, 0x252: 0x22, 0x253: 0x22, 0x254: 0x22, 0x255: 0x22, 0x256: 0x22, 0x257: 0x22, - 0x258: 0x22, 0x259: 0x22, 0x25a: 0x22, 0x25b: 0x22, 0x25c: 0x22, 0x25d: 0x22, 0x25e: 0x22, 0x25f: 0x22, - 0x260: 0x22, 0x261: 0x22, 0x262: 0x22, 0x263: 0x22, 0x264: 0x22, 0x265: 0x22, 0x266: 0x22, 0x267: 0x22, - 0x268: 0x22, 0x269: 0x22, 0x26a: 0x22, 0x26b: 0x22, 0x26c: 0x22, 0x26d: 0x22, 0x26e: 0x22, 0x26f: 0x22, - 0x270: 0x22, 0x271: 0x22, 0x272: 0x22, 0x273: 0x22, 0x274: 0x22, 0x275: 0x22, 0x276: 0x22, 0x277: 0x22, - 0x278: 0x22, 0x279: 0x22, 0x27a: 0x22, 0x27b: 0x22, 0x27c: 0x22, 0x27d: 0x22, 0x27e: 0x22, 0x27f: 0x22, - // Block 0xa, offset 0x280 - 0x280: 0x22, 0x281: 0x22, 0x282: 0x22, 0x283: 0x22, 0x284: 0x22, 0x285: 0x22, 0x286: 0x22, 0x287: 0x22, - 0x288: 0x22, 0x289: 0x22, 0x28a: 0x22, 0x28b: 0x22, 0x28c: 0x22, 0x28d: 0x22, 0x28e: 0x22, 0x28f: 0x22, - 0x290: 0x22, 0x291: 0x22, 0x292: 0x22, 0x293: 0x22, 0x294: 0x22, 0x295: 0x22, 0x296: 0x22, 0x297: 0x22, - 0x298: 0x22, 0x299: 0x22, 0x29a: 0x22, 0x29b: 0x22, 0x29c: 0x22, 0x29d: 0x22, 0x29e: 0x9f, 0x29f: 0xa0, - // Block 0xb, offset 0x2c0 - 0x2ec: 0x0f, 0x2ed: 0xa1, 0x2ee: 0xa2, 0x2ef: 0xa3, - 0x2f0: 0x22, 0x2f1: 0x22, 0x2f2: 0x22, 0x2f3: 0x22, 0x2f4: 0xa4, 0x2f5: 0xa5, 0x2f6: 0xa6, 0x2f7: 0xa7, - 0x2f8: 0xa8, 0x2f9: 0xa9, 0x2fa: 0x22, 0x2fb: 0xaa, 0x2fc: 0xab, 0x2fd: 0xac, 0x2fe: 0xad, 0x2ff: 0xae, - // Block 0xc, offset 0x300 - 0x300: 0xaf, 0x301: 0xb0, 0x302: 0x22, 0x303: 0xb1, 0x305: 0xb2, 0x307: 0xb3, - 0x30a: 0xb4, 0x30b: 0xb5, 0x30c: 0xb6, 0x30d: 0xb7, 0x30e: 0xb8, 0x30f: 0xb9, - 0x310: 0xba, 0x311: 0xbb, 0x312: 0xbc, 0x314: 0xbd, 0x315: 0xbe, - 0x318: 0x22, 0x319: 0x22, 0x31a: 0x22, 0x31b: 0x22, 0x31c: 0xbf, 0x31d: 0xc0, - 0x320: 0xc1, 0x321: 0xc2, 0x322: 0xc3, 0x323: 0xc4, 0x324: 0xc5, 0x326: 0xc6, - 0x328: 0xc7, 0x329: 0xc8, 0x32a: 0xc9, 0x32b: 0xca, 0x32c: 0x5e, 0x32d: 0xcb, 0x32e: 0xcc, - 0x330: 0x22, 0x331: 0xcd, 0x332: 0xce, 0x333: 0xcf, - // Block 0xd, offset 0x340 - 0x340: 0xd0, 0x341: 0xd1, 0x342: 0xd2, 0x343: 0xd3, 0x344: 0xd4, 0x345: 0xd5, 0x346: 0xd6, 0x347: 0xd7, - 0x348: 0xd8, 0x34a: 0xd9, 0x34b: 0xda, 0x34c: 0xdb, 0x34d: 0xdc, - 0x352: 0xdd, 0x353: 0xde, 0x356: 0xdf, 0x357: 0xe0, - 0x358: 0xe1, 0x359: 0xe2, 0x35a: 0xe3, 0x35b: 0xe4, 0x35c: 0xe5, - 0x362: 0xe6, 0x363: 0xe7, - 0x36b: 0xe8, - // Block 0xe, offset 0x380 - 0x380: 0x22, 0x381: 0x22, 0x382: 0x22, 0x383: 0x22, 0x384: 0x22, 0x385: 0x22, 0x386: 0x22, 0x387: 0x22, - 0x388: 0x22, 0x389: 0x22, 0x38a: 0x22, 0x38b: 0x22, 0x38c: 0x22, 0x38d: 0x22, 0x38e: 0xe9, - 0x390: 0x22, 0x391: 0xea, 0x392: 0x22, 0x393: 0x22, 0x394: 0x22, 0x395: 0xeb, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x22, 0x3c1: 0x22, 0x3c2: 0x22, 0x3c3: 0x22, 0x3c4: 0x22, 0x3c5: 0x22, 0x3c6: 0x22, 0x3c7: 0x22, - 0x3c8: 0x22, 0x3c9: 0x22, 0x3ca: 0x22, 0x3cb: 0x22, 0x3cc: 0x22, 0x3cd: 0x22, 0x3ce: 0x22, 0x3cf: 0x22, - 0x3d0: 0xea, - // Block 0x10, offset 0x400 - 0x410: 0x22, 0x411: 0x22, 0x412: 0x22, 0x413: 0x22, 0x414: 0x22, 0x415: 0x22, 0x416: 0x22, 0x417: 0x22, - 0x418: 0x22, 0x419: 0xec, - // Block 0x11, offset 0x440 - 0x460: 0x22, 0x461: 0x22, 0x462: 0x22, 0x463: 0x22, 0x464: 0x22, 0x465: 0x22, 0x466: 0x22, 0x467: 0x22, - 0x468: 0xe8, 0x469: 0xed, 0x46b: 0xee, 0x46c: 0xef, 0x46d: 0xf0, 0x46e: 0xf1, - 0x47c: 0x22, 0x47d: 0xf2, 0x47e: 0xf3, - // Block 0x12, offset 0x480 - 0x4b0: 0x22, 0x4b1: 0xf4, 0x4b2: 0xf5, - // Block 0x13, offset 0x4c0 - 0x4c5: 0xf6, 0x4c6: 0xf7, - 0x4c9: 0xf8, - 0x4d0: 0xf9, 0x4d1: 0xfa, 0x4d2: 0xfb, 0x4d3: 0xfc, 0x4d4: 0xfd, 0x4d5: 0xfe, 0x4d6: 0xff, 0x4d7: 0x100, - 0x4d8: 0x101, 0x4d9: 0x102, 0x4da: 0x103, 0x4db: 0x104, 0x4dc: 0x105, 0x4dd: 0x106, 0x4de: 0x107, 0x4df: 0x108, - 0x4e8: 0x109, 0x4e9: 0x10a, 0x4ea: 0x10b, - // Block 0x14, offset 0x500 - 0x520: 0x22, 0x521: 0x22, 0x522: 0x22, 0x523: 0x10c, - 0x538: 0x10d, 0x539: 0x10, 0x53a: 0x10e, - // Block 0x15, offset 0x540 - 0x544: 0x10f, 0x545: 0x110, 0x546: 0x111, - 0x54f: 0x112, - // Block 0x16, offset 0x580 - 0x590: 0x0a, 0x591: 0x0b, 0x592: 0x0c, 0x593: 0x0d, 0x594: 0x0e, 0x596: 0x0f, - 0x59b: 0x10, 0x59d: 0x11, 0x59e: 0x12, 0x59f: 0x13, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x113, 0x5c1: 0x114, 0x5c4: 0x114, 0x5c5: 0x114, 0x5c6: 0x114, 0x5c7: 0x115, - // Block 0x18, offset 0x600 - 0x620: 0x15, -} - -// sparseOffsets: 262 entries, 524 bytes -var sparseOffsets = []uint16{0x0, 0x9, 0xf, 0x18, 0x24, 0x2e, 0x3a, 0x3d, 0x41, 0x44, 0x48, 0x52, 0x54, 0x59, 0x69, 0x70, 0x75, 0x83, 0x84, 0x92, 0xa1, 0xab, 0xae, 0xb4, 0xbc, 0xbe, 0xbf, 0xcb, 0xd1, 0xdf, 0xea, 0xf5, 0x100, 0x10c, 0x116, 0x121, 0x12c, 0x138, 0x144, 0x14c, 0x154, 0x15e, 0x168, 0x174, 0x17a, 0x185, 0x18a, 0x192, 0x195, 0x19a, 0x19e, 0x1a2, 0x1a9, 0x1b2, 0x1ba, 0x1bb, 0x1c4, 0x1cb, 0x1d3, 0x1d9, 0x1df, 0x1e4, 0x1e8, 0x1eb, 0x1ed, 0x1f0, 0x1f5, 0x1f6, 0x1f8, 0x1fa, 0x1fc, 0x203, 0x208, 0x20c, 0x215, 0x218, 0x21b, 0x21f, 0x220, 0x22b, 0x22c, 0x22d, 0x232, 0x23f, 0x247, 0x24f, 0x258, 0x261, 0x26a, 0x26f, 0x272, 0x27f, 0x281, 0x288, 0x28a, 0x294, 0x295, 0x2a0, 0x2a8, 0x2af, 0x2b5, 0x2b6, 0x2c4, 0x2c9, 0x2cc, 0x2d1, 0x2d5, 0x2db, 0x2e0, 0x2e3, 0x2e8, 0x2ed, 0x2ee, 0x2f4, 0x2f6, 0x2f7, 0x2f9, 0x2fb, 0x2fe, 0x2ff, 0x301, 0x304, 0x30a, 0x30e, 0x310, 0x316, 0x31d, 0x321, 0x32a, 0x32b, 0x332, 0x336, 0x33b, 0x343, 0x349, 0x34f, 0x359, 0x35e, 0x367, 0x36d, 0x374, 0x378, 0x380, 0x382, 0x384, 0x387, 0x389, 0x38b, 0x38c, 0x38d, 0x38f, 0x391, 0x397, 0x39c, 0x39e, 0x3a4, 0x3a7, 0x3a9, 0x3af, 0x3b4, 0x3b6, 0x3b7, 0x3b8, 0x3b9, 0x3bb, 0x3bd, 0x3bf, 0x3c2, 0x3c4, 0x3c7, 0x3cf, 0x3d2, 0x3d4, 0x3d6, 0x3d7, 0x3d8, 0x3da, 0x3e0, 0x3e2, 0x3e3, 0x3e5, 0x3e7, 0x3e9, 0x3f6, 0x3f7, 0x3f8, 0x3fc, 0x3fe, 0x3ff, 0x400, 0x401, 0x402, 0x406, 0x40a, 0x410, 0x412, 0x419, 0x41c, 0x420, 0x426, 0x42e, 0x434, 0x43a, 0x444, 0x44e, 0x454, 0x45a, 0x460, 0x463, 0x469, 0x46c, 0x474, 0x475, 0x47c, 0x47d, 0x480, 0x481, 0x482, 0x483, 0x484, 0x485, 0x487, 0x489, 0x48b, 0x48f, 0x490, 0x492, 0x493, 0x495, 0x49a, 0x49f, 0x4a3, 0x4a4, 0x4a7, 0x4ab, 0x4b6, 0x4ba, 0x4c2, 0x4c7, 0x4cb, 0x4ce, 0x4d2, 0x4d5, 0x4d8, 0x4dd, 0x4e1, 0x4e5, 0x4e9, 0x4ed, 0x4ef, 0x4f1, 0x4f4, 0x4f6, 0x4ff, 0x504, 0x505, 0x508, 0x509, 0x50a, 0x50c, 0x50d, 0x50e} - -// sparseValues: 1294 entries, 5176 bytes -var sparseValues = [1294]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0004, lo: 0xa8, hi: 0xa8}, - {value: 0x0012, lo: 0xaa, hi: 0xaa}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0004, lo: 0xaf, hi: 0xaf}, - {value: 0x0004, lo: 0xb4, hi: 0xb4}, - {value: 0x0152, lo: 0xb5, hi: 0xb5}, - {value: 0x0014, lo: 0xb7, hi: 0xb7}, - {value: 0x0004, lo: 0xb8, hi: 0xb8}, - {value: 0x0012, lo: 0xba, hi: 0xba}, - // Block 0x1, offset 0x9 - {value: 0x1013, lo: 0x80, hi: 0x96}, - {value: 0x1013, lo: 0x98, hi: 0x9e}, - {value: 0x003a, lo: 0x9f, hi: 0x9f}, - {value: 0x1012, lo: 0xa0, hi: 0xb6}, - {value: 0x1012, lo: 0xb8, hi: 0xbe}, - {value: 0x02d2, lo: 0xbf, hi: 0xbf}, - // Block 0x2, offset 0xf - {value: 0x0097, lo: 0x80, hi: 0xaf}, - {value: 0x00fb, lo: 0xb0, hi: 0xb0}, - {value: 0x019a, lo: 0xb1, hi: 0xb1}, - {value: 0x0097, lo: 0xb2, hi: 0xb7}, - {value: 0x0012, lo: 0xb8, hi: 0xb8}, - {value: 0x0196, lo: 0xb9, hi: 0xba}, - {value: 0x0396, lo: 0xbb, hi: 0xbc}, - {value: 0x0196, lo: 0xbd, hi: 0xbe}, - {value: 0x0453, lo: 0xbf, hi: 0xbf}, - // Block 0x3, offset 0x18 - {value: 0x0452, lo: 0x80, hi: 0x80}, - {value: 0x0196, lo: 0x81, hi: 0x82}, - {value: 0x0396, lo: 0x83, hi: 0x84}, - {value: 0x0196, lo: 0x85, hi: 0x86}, - {value: 0x0796, lo: 0x87, hi: 0x88}, - {value: 0x01fa, lo: 0x89, hi: 0x89}, - {value: 0x0097, lo: 0x8a, hi: 0xb7}, - {value: 0x02d3, lo: 0xb8, hi: 0xb8}, - {value: 0x0196, lo: 0xb9, hi: 0xba}, - {value: 0x0396, lo: 0xbb, hi: 0xbc}, - {value: 0x0196, lo: 0xbd, hi: 0xbe}, - {value: 0x029a, lo: 0xbf, hi: 0xbf}, - // Block 0x4, offset 0x24 - {value: 0x0097, lo: 0x80, hi: 0x9f}, - {value: 0x1953, lo: 0xa0, hi: 0xa0}, - {value: 0x0012, lo: 0xa1, hi: 0xa1}, - {value: 0x0097, lo: 0xa2, hi: 0xb3}, - {value: 0x0012, lo: 0xb4, hi: 0xb9}, - {value: 0x0c9b, lo: 0xba, hi: 0xba}, - {value: 0x0396, lo: 0xbb, hi: 0xbc}, - {value: 0x1653, lo: 0xbd, hi: 0xbd}, - {value: 0x0d3b, lo: 0xbe, hi: 0xbe}, - {value: 0x0dda, lo: 0xbf, hi: 0xbf}, - // Block 0x5, offset 0x2e - {value: 0x0015, lo: 0x80, hi: 0x81}, - {value: 0x0004, lo: 0x82, hi: 0x85}, - {value: 0x0014, lo: 0x86, hi: 0x91}, - {value: 0x0004, lo: 0x92, hi: 0x96}, - {value: 0x0014, lo: 0x97, hi: 0x97}, - {value: 0x0004, lo: 0x98, hi: 0x9f}, - {value: 0x0015, lo: 0xa0, hi: 0xa4}, - {value: 0x0004, lo: 0xa5, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xac}, - {value: 0x0004, lo: 0xad, hi: 0xad}, - {value: 0x0014, lo: 0xae, hi: 0xae}, - {value: 0x0004, lo: 0xaf, hi: 0xbf}, - // Block 0x6, offset 0x3a - {value: 0x0024, lo: 0x80, hi: 0x94}, - {value: 0x0034, lo: 0x95, hi: 0xbc}, - {value: 0x0024, lo: 0xbd, hi: 0xbf}, - // Block 0x7, offset 0x3d - {value: 0x3d53, lo: 0x80, hi: 0x8f}, - {value: 0x1013, lo: 0x90, hi: 0x9f}, - {value: 0x32d3, lo: 0xa0, hi: 0xaf}, - {value: 0x1012, lo: 0xb0, hi: 0xbf}, - // Block 0x8, offset 0x41 - {value: 0x32d2, lo: 0x80, hi: 0x8f}, - {value: 0x3d52, lo: 0x90, hi: 0x9f}, - {value: 0x0097, lo: 0xa0, hi: 0xbf}, - // Block 0x9, offset 0x44 - {value: 0x0097, lo: 0x80, hi: 0x81}, - {value: 0x0024, lo: 0x83, hi: 0x87}, - {value: 0x0014, lo: 0x88, hi: 0x89}, - {value: 0x0097, lo: 0x8a, hi: 0xbf}, - // Block 0xa, offset 0x48 - {value: 0x0793, lo: 0x80, hi: 0x80}, - {value: 0x0196, lo: 0x81, hi: 0x82}, - {value: 0x0396, lo: 0x83, hi: 0x84}, - {value: 0x0196, lo: 0x85, hi: 0x86}, - {value: 0x0796, lo: 0x87, hi: 0x88}, - {value: 0x0196, lo: 0x89, hi: 0x8a}, - {value: 0x0396, lo: 0x8b, hi: 0x8c}, - {value: 0x0196, lo: 0x8d, hi: 0x8e}, - {value: 0x0792, lo: 0x8f, hi: 0x8f}, - {value: 0x0097, lo: 0x90, hi: 0xbf}, - // Block 0xb, offset 0x52 - {value: 0x0097, lo: 0x80, hi: 0xaf}, - {value: 0x3d53, lo: 0xb1, hi: 0xbf}, - // Block 0xc, offset 0x54 - {value: 0x1813, lo: 0x80, hi: 0x8f}, - {value: 0x4053, lo: 0x90, hi: 0x96}, - {value: 0x0014, lo: 0x99, hi: 0x99}, - {value: 0x3d52, lo: 0xa1, hi: 0xaf}, - {value: 0x1812, lo: 0xb0, hi: 0xbf}, - // Block 0xd, offset 0x59 - {value: 0x4052, lo: 0x80, hi: 0x86}, - {value: 0x19da, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x91, hi: 0x91}, - {value: 0x0024, lo: 0x92, hi: 0x95}, - {value: 0x0034, lo: 0x96, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x99}, - {value: 0x0034, lo: 0x9a, hi: 0x9b}, - {value: 0x0024, lo: 0x9c, hi: 0xa1}, - {value: 0x0034, lo: 0xa2, hi: 0xa7}, - {value: 0x0024, lo: 0xa8, hi: 0xa9}, - {value: 0x0034, lo: 0xaa, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xaf}, - {value: 0x0034, lo: 0xb0, hi: 0xbd}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xe, offset 0x69 - {value: 0x0034, lo: 0x81, hi: 0x82}, - {value: 0x0024, lo: 0x84, hi: 0x84}, - {value: 0x0034, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xb3}, - {value: 0x0014, lo: 0xb4, hi: 0xb4}, - // Block 0xf, offset 0x70 - {value: 0x0014, lo: 0x80, hi: 0x85}, - {value: 0x0024, lo: 0x90, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x9a}, - {value: 0x0014, lo: 0x9c, hi: 0x9c}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x10, offset 0x75 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x8a}, - {value: 0x0034, lo: 0x8b, hi: 0x92}, - {value: 0x0024, lo: 0x93, hi: 0x94}, - {value: 0x0034, lo: 0x95, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x9b}, - {value: 0x0034, lo: 0x9c, hi: 0x9c}, - {value: 0x0024, lo: 0x9d, hi: 0x9e}, - {value: 0x0034, lo: 0x9f, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0010, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0034, lo: 0xb0, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xbf}, - // Block 0x11, offset 0x83 - {value: 0x0010, lo: 0x80, hi: 0xbf}, - // Block 0x12, offset 0x84 - {value: 0x0010, lo: 0x80, hi: 0x93}, - {value: 0x0010, lo: 0x95, hi: 0x95}, - {value: 0x0024, lo: 0x96, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x0024, lo: 0x9f, hi: 0xa2}, - {value: 0x0034, lo: 0xa3, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa8}, - {value: 0x0034, lo: 0xaa, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xbc}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x13, offset 0x92 - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0034, lo: 0x91, hi: 0x91}, - {value: 0x0010, lo: 0x92, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - {value: 0x0034, lo: 0xb1, hi: 0xb1}, - {value: 0x0024, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0024, lo: 0xb5, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb9}, - {value: 0x0024, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbc}, - {value: 0x0024, lo: 0xbd, hi: 0xbd}, - {value: 0x0034, lo: 0xbe, hi: 0xbe}, - {value: 0x0024, lo: 0xbf, hi: 0xbf}, - // Block 0x14, offset 0xa1 - {value: 0x0024, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0024, lo: 0x83, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0024, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0024, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x88, hi: 0x88}, - {value: 0x0024, lo: 0x89, hi: 0x8a}, - {value: 0x0010, lo: 0x8d, hi: 0xbf}, - // Block 0x15, offset 0xab - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0014, lo: 0xa6, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - // Block 0x16, offset 0xae - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0024, lo: 0xab, hi: 0xb1}, - {value: 0x0034, lo: 0xb2, hi: 0xb2}, - {value: 0x0024, lo: 0xb3, hi: 0xb3}, - {value: 0x0014, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - // Block 0x17, offset 0xb4 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0024, lo: 0x96, hi: 0x99}, - {value: 0x0014, lo: 0x9a, hi: 0x9a}, - {value: 0x0024, lo: 0x9b, hi: 0xa3}, - {value: 0x0014, lo: 0xa4, hi: 0xa4}, - {value: 0x0024, lo: 0xa5, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa8}, - {value: 0x0024, lo: 0xa9, hi: 0xad}, - // Block 0x18, offset 0xbc - {value: 0x0010, lo: 0x80, hi: 0x98}, - {value: 0x0034, lo: 0x99, hi: 0x9b}, - // Block 0x19, offset 0xbe - {value: 0x0010, lo: 0xa0, hi: 0xb4}, - // Block 0x1a, offset 0xbf - {value: 0x0034, lo: 0xa3, hi: 0xa3}, - {value: 0x0024, lo: 0xa4, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xa9}, - {value: 0x0024, lo: 0xaa, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xb2}, - {value: 0x0024, lo: 0xb3, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - {value: 0x0024, lo: 0xb7, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0024, lo: 0xbb, hi: 0xbf}, - // Block 0x1b, offset 0xcb - {value: 0x0014, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x1c, offset 0xd1 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x88}, - {value: 0x0010, lo: 0x89, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0024, lo: 0x91, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x92}, - {value: 0x0024, lo: 0x93, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x97}, - {value: 0x0010, lo: 0x98, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xbf}, - // Block 0x1d, offset 0xdf - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb2}, - {value: 0x0010, lo: 0xb6, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x1e, offset 0xea - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9c, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xb1}, - // Block 0x1f, offset 0xf5 - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8a}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb6}, - {value: 0x0010, lo: 0xb8, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x20, offset 0x100 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0014, lo: 0x87, hi: 0x88}, - {value: 0x0014, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x91, hi: 0x91}, - {value: 0x0010, lo: 0x99, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb5}, - // Block 0x21, offset 0x10c - {value: 0x0014, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x22, offset 0x116 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x85}, - {value: 0x0014, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x89, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - // Block 0x23, offset 0x121 - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x24, offset 0x12c - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9c, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - // Block 0x25, offset 0x138 - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8a}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0x95}, - {value: 0x0010, lo: 0x99, hi: 0x9a}, - {value: 0x0010, lo: 0x9c, hi: 0x9c}, - {value: 0x0010, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - {value: 0x0010, lo: 0xa8, hi: 0xaa}, - {value: 0x0010, lo: 0xae, hi: 0xb9}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x26, offset 0x144 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x82}, - {value: 0x0010, lo: 0x86, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - // Block 0x27, offset 0x14c - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb9}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbf}, - // Block 0x28, offset 0x154 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0014, lo: 0x86, hi: 0x88}, - {value: 0x0014, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0034, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9a}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - // Block 0x29, offset 0x15e - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x2a, offset 0x168 - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0014, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x95, hi: 0x96}, - {value: 0x0010, lo: 0x9e, hi: 0x9e}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb1, hi: 0xb2}, - // Block 0x2b, offset 0x174 - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0xba}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x2c, offset 0x17a - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x86, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8e, hi: 0x8e}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9f, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa3}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xba, hi: 0xbf}, - // Block 0x2d, offset 0x185 - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x96}, - {value: 0x0010, lo: 0x9a, hi: 0xb1}, - {value: 0x0010, lo: 0xb3, hi: 0xbb}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x2e, offset 0x18a - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0010, lo: 0x8f, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x94}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9f}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - // Block 0x2f, offset 0x192 - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb4, hi: 0xb7}, - {value: 0x0034, lo: 0xb8, hi: 0xba}, - // Block 0x30, offset 0x195 - {value: 0x0004, lo: 0x86, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x87}, - {value: 0x0034, lo: 0x88, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x31, offset 0x19a - {value: 0x0014, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb4, hi: 0xb7}, - {value: 0x0034, lo: 0xb8, hi: 0xb9}, - {value: 0x0014, lo: 0xbb, hi: 0xbc}, - // Block 0x32, offset 0x19e - {value: 0x0004, lo: 0x86, hi: 0x86}, - {value: 0x0034, lo: 0x88, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x33, offset 0x1a2 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0034, lo: 0x98, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0034, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0034, lo: 0xb9, hi: 0xb9}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x34, offset 0x1a9 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0x89, hi: 0xac}, - {value: 0x0034, lo: 0xb1, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xba, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x35, offset 0x1b2 - {value: 0x0034, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0024, lo: 0x82, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0024, lo: 0x86, hi: 0x87}, - {value: 0x0010, lo: 0x88, hi: 0x8c}, - {value: 0x0014, lo: 0x8d, hi: 0x97}, - {value: 0x0014, lo: 0x99, hi: 0xbc}, - // Block 0x36, offset 0x1ba - {value: 0x0034, lo: 0x86, hi: 0x86}, - // Block 0x37, offset 0x1bb - {value: 0x0010, lo: 0xab, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xb0}, - {value: 0x0010, lo: 0xb1, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - {value: 0x0010, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbc}, - {value: 0x0014, lo: 0xbd, hi: 0xbe}, - // Block 0x38, offset 0x1c4 - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x96, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x99}, - {value: 0x0014, lo: 0x9e, hi: 0xa0}, - {value: 0x0010, lo: 0xa2, hi: 0xa4}, - {value: 0x0010, lo: 0xa7, hi: 0xad}, - {value: 0x0014, lo: 0xb1, hi: 0xb4}, - // Block 0x39, offset 0x1cb - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x84}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x4253, lo: 0xa0, hi: 0xbf}, - // Block 0x3a, offset 0x1d3 - {value: 0x4453, lo: 0x80, hi: 0x85}, - {value: 0x4453, lo: 0x87, hi: 0x87}, - {value: 0x4453, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0xba}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x3b, offset 0x1d9 - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0x9a, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x3c, offset 0x1df - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb5}, - {value: 0x0010, lo: 0xb8, hi: 0xbe}, - // Block 0x3d, offset 0x1e4 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x82, hi: 0x85}, - {value: 0x0010, lo: 0x88, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0xbf}, - // Block 0x3e, offset 0x1e8 - {value: 0x0010, lo: 0x80, hi: 0x90}, - {value: 0x0010, lo: 0x92, hi: 0x95}, - {value: 0x0010, lo: 0x98, hi: 0xbf}, - // Block 0x3f, offset 0x1eb - {value: 0x0010, lo: 0x80, hi: 0x9a}, - {value: 0x0024, lo: 0x9d, hi: 0x9f}, - // Block 0x40, offset 0x1ed - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x4653, lo: 0xa0, hi: 0xaf}, - {value: 0x4853, lo: 0xb0, hi: 0xbf}, - // Block 0x41, offset 0x1f0 - {value: 0x4a53, lo: 0x80, hi: 0x8f}, - {value: 0x4c53, lo: 0x90, hi: 0x9f}, - {value: 0x4a53, lo: 0xa0, hi: 0xaf}, - {value: 0x0413, lo: 0xb0, hi: 0xb5}, - {value: 0x0412, lo: 0xb8, hi: 0xbd}, - // Block 0x42, offset 0x1f5 - {value: 0x0010, lo: 0x81, hi: 0xbf}, - // Block 0x43, offset 0x1f6 - {value: 0x0010, lo: 0x80, hi: 0xac}, - {value: 0x0010, lo: 0xaf, hi: 0xbf}, - // Block 0x44, offset 0x1f8 - {value: 0x0010, lo: 0x81, hi: 0x9a}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x45, offset 0x1fa - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0010, lo: 0xae, hi: 0xb8}, - // Block 0x46, offset 0x1fc - {value: 0x0010, lo: 0x80, hi: 0x8c}, - {value: 0x0010, lo: 0x8e, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x93}, - {value: 0x0034, lo: 0x94, hi: 0x94}, - {value: 0x0010, lo: 0xa0, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - // Block 0x47, offset 0x203 - {value: 0x0010, lo: 0x80, hi: 0x91}, - {value: 0x0014, lo: 0x92, hi: 0x93}, - {value: 0x0010, lo: 0xa0, hi: 0xac}, - {value: 0x0010, lo: 0xae, hi: 0xb0}, - {value: 0x0014, lo: 0xb2, hi: 0xb3}, - // Block 0x48, offset 0x208 - {value: 0x0014, lo: 0xb4, hi: 0xb5}, - {value: 0x0010, lo: 0xb6, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0x49, offset 0x20c - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0014, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0014, lo: 0x89, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x92}, - {value: 0x0014, lo: 0x93, hi: 0x93}, - {value: 0x0004, lo: 0x97, hi: 0x97}, - {value: 0x0024, lo: 0x9d, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0x4a, offset 0x215 - {value: 0x0014, lo: 0x8b, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x4b, offset 0x218 - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0xb7}, - // Block 0x4c, offset 0x21b - {value: 0x0010, lo: 0x80, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xa9}, - {value: 0x0010, lo: 0xaa, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x4d, offset 0x21f - {value: 0x0010, lo: 0x80, hi: 0xb5}, - // Block 0x4e, offset 0x220 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0014, lo: 0xa0, hi: 0xa2}, - {value: 0x0010, lo: 0xa3, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xab}, - {value: 0x0010, lo: 0xb0, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb2}, - {value: 0x0010, lo: 0xb3, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xb9}, - {value: 0x0024, lo: 0xba, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbb}, - // Block 0x4f, offset 0x22b - {value: 0x0010, lo: 0x86, hi: 0x8f}, - // Block 0x50, offset 0x22c - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0x51, offset 0x22d - {value: 0x0010, lo: 0x80, hi: 0x96}, - {value: 0x0024, lo: 0x97, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x98}, - {value: 0x0010, lo: 0x99, hi: 0x9a}, - {value: 0x0014, lo: 0x9b, hi: 0x9b}, - // Block 0x52, offset 0x232 - {value: 0x0010, lo: 0x95, hi: 0x95}, - {value: 0x0014, lo: 0x96, hi: 0x96}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0014, lo: 0x98, hi: 0x9e}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa2}, - {value: 0x0010, lo: 0xa3, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xac}, - {value: 0x0010, lo: 0xad, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0024, lo: 0xb5, hi: 0xbc}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x53, offset 0x23f - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0004, lo: 0xa7, hi: 0xa7}, - {value: 0x0024, lo: 0xb0, hi: 0xb4}, - {value: 0x0034, lo: 0xb5, hi: 0xba}, - {value: 0x0024, lo: 0xbb, hi: 0xbc}, - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - {value: 0x0014, lo: 0xbe, hi: 0xbe}, - // Block 0x54, offset 0x247 - {value: 0x0014, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x55, offset 0x24f - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x83}, - {value: 0x0030, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x8b}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0xab, hi: 0xab}, - {value: 0x0034, lo: 0xac, hi: 0xac}, - {value: 0x0024, lo: 0xad, hi: 0xb3}, - // Block 0x56, offset 0x258 - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa9}, - {value: 0x0030, lo: 0xaa, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xbf}, - // Block 0x57, offset 0x261 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa9}, - {value: 0x0010, lo: 0xaa, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb1}, - {value: 0x0030, lo: 0xb2, hi: 0xb3}, - // Block 0x58, offset 0x26a - {value: 0x0010, lo: 0x80, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - // Block 0x59, offset 0x26f - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8d, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - // Block 0x5a, offset 0x272 - {value: 0x0024, lo: 0x90, hi: 0x92}, - {value: 0x0034, lo: 0x94, hi: 0x99}, - {value: 0x0024, lo: 0x9a, hi: 0x9b}, - {value: 0x0034, lo: 0x9c, hi: 0x9f}, - {value: 0x0024, lo: 0xa0, hi: 0xa0}, - {value: 0x0010, lo: 0xa1, hi: 0xa1}, - {value: 0x0034, lo: 0xa2, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xb3}, - {value: 0x0024, lo: 0xb4, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb6}, - {value: 0x0024, lo: 0xb8, hi: 0xb9}, - // Block 0x5b, offset 0x27f - {value: 0x0012, lo: 0x80, hi: 0xab}, - {value: 0x0015, lo: 0xac, hi: 0xbf}, - // Block 0x5c, offset 0x281 - {value: 0x0015, lo: 0x80, hi: 0xaa}, - {value: 0x0012, lo: 0xab, hi: 0xb7}, - {value: 0x0015, lo: 0xb8, hi: 0xb8}, - {value: 0x4e52, lo: 0xb9, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xbc}, - {value: 0x5052, lo: 0xbd, hi: 0xbd}, - {value: 0x0012, lo: 0xbe, hi: 0xbf}, - // Block 0x5d, offset 0x288 - {value: 0x0012, lo: 0x80, hi: 0x9a}, - {value: 0x0015, lo: 0x9b, hi: 0xbf}, - // Block 0x5e, offset 0x28a - {value: 0x0024, lo: 0x80, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x82}, - {value: 0x0024, lo: 0x83, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0024, lo: 0x8b, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x90}, - {value: 0x0024, lo: 0x91, hi: 0xb5}, - {value: 0x0034, lo: 0xbc, hi: 0xbd}, - {value: 0x0024, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x5f, offset 0x294 - {value: 0x0097, lo: 0x80, hi: 0xbf}, - // Block 0x60, offset 0x295 - {value: 0x0097, lo: 0x80, hi: 0x95}, - {value: 0x1b1a, lo: 0x96, hi: 0x96}, - {value: 0x1bba, lo: 0x97, hi: 0x97}, - {value: 0x1c5a, lo: 0x98, hi: 0x98}, - {value: 0x1cfa, lo: 0x99, hi: 0x99}, - {value: 0x1d9a, lo: 0x9a, hi: 0x9a}, - {value: 0x51d2, lo: 0x9b, hi: 0x9b}, - {value: 0x0012, lo: 0x9c, hi: 0x9d}, - {value: 0x1e3b, lo: 0x9e, hi: 0x9e}, - {value: 0x0012, lo: 0x9f, hi: 0x9f}, - {value: 0x0097, lo: 0xa0, hi: 0xbf}, - // Block 0x61, offset 0x2a0 - {value: 0x0412, lo: 0x80, hi: 0x87}, - {value: 0x0413, lo: 0x88, hi: 0x8f}, - {value: 0x0412, lo: 0x90, hi: 0x95}, - {value: 0x0413, lo: 0x98, hi: 0x9d}, - {value: 0x0412, lo: 0xa0, hi: 0xa7}, - {value: 0x0413, lo: 0xa8, hi: 0xaf}, - {value: 0x0412, lo: 0xb0, hi: 0xb7}, - {value: 0x0413, lo: 0xb8, hi: 0xbf}, - // Block 0x62, offset 0x2a8 - {value: 0x0004, lo: 0x8b, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8f}, - {value: 0x0014, lo: 0x98, hi: 0x99}, - {value: 0x0014, lo: 0xa4, hi: 0xa4}, - {value: 0x0014, lo: 0xa7, hi: 0xa7}, - {value: 0x0014, lo: 0xaa, hi: 0xae}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x63, offset 0x2af - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x94, hi: 0x94}, - {value: 0x0014, lo: 0xa0, hi: 0xa4}, - {value: 0x0014, lo: 0xa6, hi: 0xaf}, - {value: 0x0015, lo: 0xb1, hi: 0xb1}, - {value: 0x0015, lo: 0xbf, hi: 0xbf}, - // Block 0x64, offset 0x2b5 - {value: 0x0015, lo: 0x90, hi: 0x9c}, - // Block 0x65, offset 0x2b6 - {value: 0x0024, lo: 0x90, hi: 0x91}, - {value: 0x0034, lo: 0x92, hi: 0x93}, - {value: 0x0024, lo: 0x94, hi: 0x97}, - {value: 0x0034, lo: 0x98, hi: 0x9a}, - {value: 0x0024, lo: 0x9b, hi: 0x9c}, - {value: 0x0014, lo: 0x9d, hi: 0xa0}, - {value: 0x0024, lo: 0xa1, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa4}, - {value: 0x0034, lo: 0xa5, hi: 0xa6}, - {value: 0x0024, lo: 0xa7, hi: 0xa7}, - {value: 0x0034, lo: 0xa8, hi: 0xa8}, - {value: 0x0024, lo: 0xa9, hi: 0xa9}, - {value: 0x0034, lo: 0xaa, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - // Block 0x66, offset 0x2c4 - {value: 0x0016, lo: 0x85, hi: 0x86}, - {value: 0x0012, lo: 0x87, hi: 0x89}, - {value: 0x5c52, lo: 0x8e, hi: 0x8e}, - {value: 0x0813, lo: 0xa0, hi: 0xaf}, - {value: 0x0812, lo: 0xb0, hi: 0xbf}, - // Block 0x67, offset 0x2c9 - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0396, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x85, hi: 0x88}, - // Block 0x68, offset 0x2cc - {value: 0x5dd3, lo: 0xb6, hi: 0xb7}, - {value: 0x3bd3, lo: 0xb8, hi: 0xb9}, - {value: 0x5f53, lo: 0xba, hi: 0xbb}, - {value: 0x3bd3, lo: 0xbc, hi: 0xbd}, - {value: 0x5dd3, lo: 0xbe, hi: 0xbf}, - // Block 0x69, offset 0x2d1 - {value: 0x1813, lo: 0x80, hi: 0x8f}, - {value: 0x3d53, lo: 0x90, hi: 0x9f}, - {value: 0x60d3, lo: 0xa0, hi: 0xae}, - {value: 0x1812, lo: 0xb0, hi: 0xbf}, - // Block 0x6a, offset 0x2d5 - {value: 0x0097, lo: 0x80, hi: 0xa3}, - {value: 0x0012, lo: 0xa4, hi: 0xa4}, - {value: 0x0396, lo: 0xab, hi: 0xac}, - {value: 0x0196, lo: 0xad, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xb1}, - {value: 0x0097, lo: 0xb2, hi: 0xb3}, - // Block 0x6b, offset 0x2db - {value: 0x4252, lo: 0x80, hi: 0x9f}, - {value: 0x4452, lo: 0xa0, hi: 0xa5}, - {value: 0x4452, lo: 0xa7, hi: 0xa7}, - {value: 0x4452, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x6c, offset 0x2e0 - {value: 0x0010, lo: 0x80, hi: 0xa7}, - {value: 0x0014, lo: 0xaf, hi: 0xaf}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0x6d, offset 0x2e3 - {value: 0x0010, lo: 0x80, hi: 0x96}, - {value: 0x0010, lo: 0xa0, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xae}, - {value: 0x0010, lo: 0xb0, hi: 0xb6}, - {value: 0x0010, lo: 0xb8, hi: 0xbe}, - // Block 0x6e, offset 0x2e8 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x8e}, - {value: 0x0010, lo: 0x90, hi: 0x96}, - {value: 0x0010, lo: 0x98, hi: 0x9e}, - {value: 0x0024, lo: 0xa0, hi: 0xbf}, - // Block 0x6f, offset 0x2ed - {value: 0x0014, lo: 0xaf, hi: 0xaf}, - // Block 0x70, offset 0x2ee - {value: 0x0014, lo: 0x85, hi: 0x85}, - {value: 0x0034, lo: 0xaa, hi: 0xad}, - {value: 0x0030, lo: 0xae, hi: 0xaf}, - {value: 0x0004, lo: 0xb1, hi: 0xb5}, - {value: 0x0014, lo: 0xbb, hi: 0xbb}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - // Block 0x71, offset 0x2f4 - {value: 0x0034, lo: 0x99, hi: 0x9a}, - {value: 0x0004, lo: 0x9b, hi: 0x9e}, - // Block 0x72, offset 0x2f6 - {value: 0x0004, lo: 0xbc, hi: 0xbe}, - // Block 0x73, offset 0x2f7 - {value: 0x0010, lo: 0x85, hi: 0xad}, - {value: 0x0010, lo: 0xb1, hi: 0xbf}, - // Block 0x74, offset 0x2f9 - {value: 0x0010, lo: 0x80, hi: 0x8e}, - {value: 0x0010, lo: 0xa0, hi: 0xba}, - // Block 0x75, offset 0x2fb - {value: 0x0010, lo: 0x80, hi: 0x94}, - {value: 0x0014, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0x96, hi: 0xbf}, - // Block 0x76, offset 0x2fe - {value: 0x0010, lo: 0x80, hi: 0x8c}, - // Block 0x77, offset 0x2ff - {value: 0x0010, lo: 0x90, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbd}, - // Block 0x78, offset 0x301 - {value: 0x0010, lo: 0x80, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0010, lo: 0x90, hi: 0xab}, - // Block 0x79, offset 0x304 - {value: 0x0097, lo: 0x80, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xae}, - {value: 0x0024, lo: 0xaf, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb2}, - {value: 0x0024, lo: 0xb4, hi: 0xbd}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x7a, offset 0x30a - {value: 0x0097, lo: 0x80, hi: 0x9b}, - {value: 0x0015, lo: 0x9c, hi: 0x9d}, - {value: 0x0024, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0x7b, offset 0x30e - {value: 0x0010, lo: 0x80, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb1}, - // Block 0x7c, offset 0x310 - {value: 0x0004, lo: 0x80, hi: 0x96}, - {value: 0x0014, lo: 0x97, hi: 0x9f}, - {value: 0x0004, lo: 0xa0, hi: 0xa1}, - {value: 0x0097, lo: 0xa2, hi: 0xaf}, - {value: 0x0012, lo: 0xb0, hi: 0xb1}, - {value: 0x0097, lo: 0xb2, hi: 0xbf}, - // Block 0x7d, offset 0x316 - {value: 0x0097, lo: 0x80, hi: 0xaf}, - {value: 0x0015, lo: 0xb0, hi: 0xb0}, - {value: 0x0012, lo: 0xb1, hi: 0xb8}, - {value: 0x0196, lo: 0xb9, hi: 0xba}, - {value: 0x0396, lo: 0xbb, hi: 0xbc}, - {value: 0x4e53, lo: 0xbd, hi: 0xbd}, - {value: 0x0097, lo: 0xbe, hi: 0xbf}, - // Block 0x7e, offset 0x31d - {value: 0x0010, lo: 0xb7, hi: 0xb7}, - {value: 0x0015, lo: 0xb8, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbf}, - // Block 0x7f, offset 0x321 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0014, lo: 0x82, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0x87, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8b}, - {value: 0x0010, lo: 0x8c, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa6}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - // Block 0x80, offset 0x32a - {value: 0x0010, lo: 0x80, hi: 0xb3}, - // Block 0x81, offset 0x32b - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0034, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0024, lo: 0xa0, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb7}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x82, offset 0x332 - {value: 0x0010, lo: 0x80, hi: 0xa5}, - {value: 0x0014, lo: 0xa6, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x83, offset 0x336 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0014, lo: 0x87, hi: 0x91}, - {value: 0x0010, lo: 0x92, hi: 0x92}, - {value: 0x0030, lo: 0x93, hi: 0x93}, - {value: 0x0010, lo: 0xa0, hi: 0xbc}, - // Block 0x84, offset 0x33b - {value: 0x0014, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb3}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xb9}, - {value: 0x0010, lo: 0xba, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0x85, offset 0x343 - {value: 0x0030, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0014, lo: 0xa5, hi: 0xa5}, - {value: 0x0004, lo: 0xa6, hi: 0xa6}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x86, offset 0x349 - {value: 0x0010, lo: 0x80, hi: 0xa8}, - {value: 0x0014, lo: 0xa9, hi: 0xae}, - {value: 0x0010, lo: 0xaf, hi: 0xb0}, - {value: 0x0014, lo: 0xb1, hi: 0xb2}, - {value: 0x0010, lo: 0xb3, hi: 0xb4}, - {value: 0x0014, lo: 0xb5, hi: 0xb6}, - // Block 0x87, offset 0x34f - {value: 0x0010, lo: 0x80, hi: 0x82}, - {value: 0x0014, lo: 0x83, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0x8b}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0010, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0004, lo: 0xb0, hi: 0xb0}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbd}, - // Block 0x88, offset 0x359 - {value: 0x0024, lo: 0xb0, hi: 0xb0}, - {value: 0x0024, lo: 0xb2, hi: 0xb3}, - {value: 0x0034, lo: 0xb4, hi: 0xb4}, - {value: 0x0024, lo: 0xb7, hi: 0xb8}, - {value: 0x0024, lo: 0xbe, hi: 0xbf}, - // Block 0x89, offset 0x35e - {value: 0x0024, lo: 0x81, hi: 0x81}, - {value: 0x0004, lo: 0x9d, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xab}, - {value: 0x0014, lo: 0xac, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0010, lo: 0xb2, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - // Block 0x8a, offset 0x367 - {value: 0x0010, lo: 0x81, hi: 0x86}, - {value: 0x0010, lo: 0x89, hi: 0x8e}, - {value: 0x0010, lo: 0x91, hi: 0x96}, - {value: 0x0010, lo: 0xa0, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xae}, - {value: 0x0012, lo: 0xb0, hi: 0xbf}, - // Block 0x8b, offset 0x36d - {value: 0x0012, lo: 0x80, hi: 0x92}, - {value: 0x6252, lo: 0x93, hi: 0x93}, - {value: 0x0012, lo: 0x94, hi: 0x9a}, - {value: 0x0004, lo: 0x9b, hi: 0x9b}, - {value: 0x0015, lo: 0x9c, hi: 0x9f}, - {value: 0x0012, lo: 0xa0, hi: 0xa5}, - {value: 0x4652, lo: 0xb0, hi: 0xbf}, - // Block 0x8c, offset 0x374 - {value: 0x4852, lo: 0x80, hi: 0x8f}, - {value: 0x4a52, lo: 0x90, hi: 0x9f}, - {value: 0x4c52, lo: 0xa0, hi: 0xaf}, - {value: 0x4a52, lo: 0xb0, hi: 0xbf}, - // Block 0x8d, offset 0x378 - {value: 0x0010, lo: 0x80, hi: 0xa4}, - {value: 0x0014, lo: 0xa5, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa7}, - {value: 0x0014, lo: 0xa8, hi: 0xa8}, - {value: 0x0010, lo: 0xa9, hi: 0xaa}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0034, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0x8e, offset 0x380 - {value: 0x0010, lo: 0x80, hi: 0xa3}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0x8f, offset 0x382 - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x8b, hi: 0xbb}, - // Block 0x90, offset 0x384 - {value: 0x0010, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x83, hi: 0x84}, - {value: 0x0010, lo: 0x86, hi: 0xbf}, - // Block 0x91, offset 0x387 - {value: 0x0010, lo: 0x80, hi: 0xb1}, - {value: 0x0004, lo: 0xb2, hi: 0xbf}, - // Block 0x92, offset 0x389 - {value: 0x0004, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x93, hi: 0xbf}, - // Block 0x93, offset 0x38b - {value: 0x0010, lo: 0x80, hi: 0xbd}, - // Block 0x94, offset 0x38c - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0x95, offset 0x38d - {value: 0x0010, lo: 0x80, hi: 0x8f}, - {value: 0x0010, lo: 0x92, hi: 0xbf}, - // Block 0x96, offset 0x38f - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0xb0, hi: 0xbb}, - // Block 0x97, offset 0x391 - {value: 0x0014, lo: 0x80, hi: 0x8f}, - {value: 0x0014, lo: 0x93, hi: 0x93}, - {value: 0x0024, lo: 0xa0, hi: 0xa6}, - {value: 0x0034, lo: 0xa7, hi: 0xad}, - {value: 0x0024, lo: 0xae, hi: 0xaf}, - {value: 0x0010, lo: 0xb3, hi: 0xb4}, - // Block 0x98, offset 0x397 - {value: 0x0010, lo: 0x8d, hi: 0x8f}, - {value: 0x0014, lo: 0x92, hi: 0x92}, - {value: 0x0014, lo: 0x95, hi: 0x95}, - {value: 0x0010, lo: 0xb0, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbf}, - // Block 0x99, offset 0x39c - {value: 0x0010, lo: 0x80, hi: 0xbc}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0x9a, offset 0x39e - {value: 0x0014, lo: 0x87, hi: 0x87}, - {value: 0x0014, lo: 0x8e, hi: 0x8e}, - {value: 0x0014, lo: 0x9a, hi: 0x9a}, - {value: 0x32d3, lo: 0xa1, hi: 0xba}, - {value: 0x0004, lo: 0xbe, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x9b, offset 0x3a4 - {value: 0x0004, lo: 0x80, hi: 0x80}, - {value: 0x32d2, lo: 0x81, hi: 0x9a}, - {value: 0x0004, lo: 0xb0, hi: 0xb0}, - // Block 0x9c, offset 0x3a7 - {value: 0x0014, lo: 0x9e, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xbe}, - // Block 0x9d, offset 0x3a9 - {value: 0x0010, lo: 0x82, hi: 0x87}, - {value: 0x0010, lo: 0x8a, hi: 0x8f}, - {value: 0x0010, lo: 0x92, hi: 0x97}, - {value: 0x0010, lo: 0x9a, hi: 0x9c}, - {value: 0x0004, lo: 0xa3, hi: 0xa3}, - {value: 0x0014, lo: 0xb9, hi: 0xbb}, - // Block 0x9e, offset 0x3af - {value: 0x0010, lo: 0x80, hi: 0x8b}, - {value: 0x0010, lo: 0x8d, hi: 0xa6}, - {value: 0x0010, lo: 0xa8, hi: 0xba}, - {value: 0x0010, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0x9f, offset 0x3b4 - {value: 0x0010, lo: 0x80, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x9d}, - // Block 0xa0, offset 0x3b6 - {value: 0x0010, lo: 0x80, hi: 0xba}, - // Block 0xa1, offset 0x3b7 - {value: 0x0010, lo: 0x80, hi: 0xb4}, - // Block 0xa2, offset 0x3b8 - {value: 0x0034, lo: 0xbd, hi: 0xbd}, - // Block 0xa3, offset 0x3b9 - {value: 0x0010, lo: 0x80, hi: 0x9c}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xa4, offset 0x3bb - {value: 0x0010, lo: 0x80, hi: 0x90}, - {value: 0x0034, lo: 0xa0, hi: 0xa0}, - // Block 0xa5, offset 0x3bd - {value: 0x0010, lo: 0x80, hi: 0x9f}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xa6, offset 0x3bf - {value: 0x0010, lo: 0x80, hi: 0x8a}, - {value: 0x0010, lo: 0x90, hi: 0xb5}, - {value: 0x0024, lo: 0xb6, hi: 0xba}, - // Block 0xa7, offset 0x3c2 - {value: 0x0010, lo: 0x80, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xbf}, - // Block 0xa8, offset 0x3c4 - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x88, hi: 0x8f}, - {value: 0x0010, lo: 0x91, hi: 0x95}, - // Block 0xa9, offset 0x3c7 - {value: 0x1413, lo: 0x80, hi: 0x87}, - {value: 0x1c13, lo: 0x88, hi: 0x8f}, - {value: 0x1413, lo: 0x90, hi: 0x97}, - {value: 0x63d3, lo: 0x98, hi: 0x9f}, - {value: 0x6553, lo: 0xa0, hi: 0xa7}, - {value: 0x1412, lo: 0xa8, hi: 0xaf}, - {value: 0x1c12, lo: 0xb0, hi: 0xb7}, - {value: 0x1412, lo: 0xb8, hi: 0xbf}, - // Block 0xaa, offset 0x3cf - {value: 0x63d2, lo: 0x80, hi: 0x87}, - {value: 0x6552, lo: 0x88, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0xbf}, - // Block 0xab, offset 0x3d2 - {value: 0x0010, lo: 0x80, hi: 0x9d}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0xac, offset 0x3d4 - {value: 0x0010, lo: 0x80, hi: 0xa7}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xad, offset 0x3d6 - {value: 0x0010, lo: 0x80, hi: 0xa3}, - // Block 0xae, offset 0x3d7 - {value: 0x0010, lo: 0x80, hi: 0xb6}, - // Block 0xaf, offset 0x3d8 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xa7}, - // Block 0xb0, offset 0x3da - {value: 0x0010, lo: 0x80, hi: 0x85}, - {value: 0x0010, lo: 0x88, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0xb5}, - {value: 0x0010, lo: 0xb7, hi: 0xb8}, - {value: 0x0010, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xb1, offset 0x3e0 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb6}, - // Block 0xb2, offset 0x3e2 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - // Block 0xb3, offset 0x3e3 - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - {value: 0x0010, lo: 0xb4, hi: 0xb5}, - // Block 0xb4, offset 0x3e5 - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb9}, - // Block 0xb5, offset 0x3e7 - {value: 0x0010, lo: 0x80, hi: 0xb7}, - {value: 0x0010, lo: 0xbe, hi: 0xbf}, - // Block 0xb6, offset 0x3e9 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x83}, - {value: 0x0014, lo: 0x85, hi: 0x86}, - {value: 0x0014, lo: 0x8c, hi: 0x8c}, - {value: 0x0034, lo: 0x8d, hi: 0x8d}, - {value: 0x0014, lo: 0x8e, hi: 0x8e}, - {value: 0x0024, lo: 0x8f, hi: 0x8f}, - {value: 0x0010, lo: 0x90, hi: 0x93}, - {value: 0x0010, lo: 0x95, hi: 0x97}, - {value: 0x0010, lo: 0x99, hi: 0xb3}, - {value: 0x0024, lo: 0xb8, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xb7, offset 0x3f6 - {value: 0x0010, lo: 0xa0, hi: 0xbc}, - // Block 0xb8, offset 0x3f7 - {value: 0x0010, lo: 0x80, hi: 0x9c}, - // Block 0xb9, offset 0x3f8 - {value: 0x0010, lo: 0x80, hi: 0x87}, - {value: 0x0010, lo: 0x89, hi: 0xa4}, - {value: 0x0024, lo: 0xa5, hi: 0xa5}, - {value: 0x0034, lo: 0xa6, hi: 0xa6}, - // Block 0xba, offset 0x3fc - {value: 0x0010, lo: 0x80, hi: 0x95}, - {value: 0x0010, lo: 0xa0, hi: 0xb2}, - // Block 0xbb, offset 0x3fe - {value: 0x0010, lo: 0x80, hi: 0x91}, - // Block 0xbc, offset 0x3ff - {value: 0x0010, lo: 0x80, hi: 0x88}, - // Block 0xbd, offset 0x400 - {value: 0x2e53, lo: 0x80, hi: 0xb2}, - // Block 0xbe, offset 0x401 - {value: 0x2e52, lo: 0x80, hi: 0xb2}, - // Block 0xbf, offset 0x402 - {value: 0x0010, lo: 0x80, hi: 0x80}, - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb7}, - {value: 0x0014, lo: 0xb8, hi: 0xbf}, - // Block 0xc0, offset 0x406 - {value: 0x0014, lo: 0x80, hi: 0x85}, - {value: 0x0034, lo: 0x86, hi: 0x86}, - {value: 0x0010, lo: 0xa6, hi: 0xaf}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xc1, offset 0x40a - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb6}, - {value: 0x0010, lo: 0xb7, hi: 0xb8}, - {value: 0x0034, lo: 0xb9, hi: 0xba}, - {value: 0x0014, lo: 0xbd, hi: 0xbd}, - // Block 0xc2, offset 0x410 - {value: 0x0010, lo: 0x90, hi: 0xa8}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xc3, offset 0x412 - {value: 0x0024, lo: 0x80, hi: 0x82}, - {value: 0x0010, lo: 0x83, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xab}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb4}, - {value: 0x0010, lo: 0xb6, hi: 0xbf}, - // Block 0xc4, offset 0x419 - {value: 0x0010, lo: 0x90, hi: 0xb2}, - {value: 0x0034, lo: 0xb3, hi: 0xb3}, - {value: 0x0010, lo: 0xb6, hi: 0xb6}, - // Block 0xc5, offset 0x41c - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0xb5}, - {value: 0x0014, lo: 0xb6, hi: 0xbe}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xc6, offset 0x420 - {value: 0x0030, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0034, lo: 0x8a, hi: 0x8a}, - {value: 0x0014, lo: 0x8b, hi: 0x8c}, - {value: 0x0010, lo: 0x90, hi: 0x9a}, - {value: 0x0010, lo: 0x9c, hi: 0x9c}, - // Block 0xc7, offset 0x426 - {value: 0x0010, lo: 0x80, hi: 0x91}, - {value: 0x0010, lo: 0x93, hi: 0xae}, - {value: 0x0014, lo: 0xaf, hi: 0xb1}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0014, lo: 0xb4, hi: 0xb4}, - {value: 0x0030, lo: 0xb5, hi: 0xb5}, - {value: 0x0034, lo: 0xb6, hi: 0xb6}, - {value: 0x0014, lo: 0xb7, hi: 0xb7}, - // Block 0xc8, offset 0x42e - {value: 0x0010, lo: 0x80, hi: 0x86}, - {value: 0x0010, lo: 0x88, hi: 0x88}, - {value: 0x0010, lo: 0x8a, hi: 0x8d}, - {value: 0x0010, lo: 0x8f, hi: 0x9d}, - {value: 0x0010, lo: 0x9f, hi: 0xa8}, - {value: 0x0010, lo: 0xb0, hi: 0xbf}, - // Block 0xc9, offset 0x434 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0014, lo: 0x9f, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa2}, - {value: 0x0014, lo: 0xa3, hi: 0xa8}, - {value: 0x0034, lo: 0xa9, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xca, offset 0x43a - {value: 0x0014, lo: 0x80, hi: 0x81}, - {value: 0x0010, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x8c}, - {value: 0x0010, lo: 0x8f, hi: 0x90}, - {value: 0x0010, lo: 0x93, hi: 0xa8}, - {value: 0x0010, lo: 0xaa, hi: 0xb0}, - {value: 0x0010, lo: 0xb2, hi: 0xb3}, - {value: 0x0010, lo: 0xb5, hi: 0xb9}, - {value: 0x0034, lo: 0xbc, hi: 0xbc}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0xcb, offset 0x444 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x84}, - {value: 0x0010, lo: 0x87, hi: 0x88}, - {value: 0x0010, lo: 0x8b, hi: 0x8c}, - {value: 0x0030, lo: 0x8d, hi: 0x8d}, - {value: 0x0010, lo: 0x90, hi: 0x90}, - {value: 0x0010, lo: 0x97, hi: 0x97}, - {value: 0x0010, lo: 0x9d, hi: 0xa3}, - {value: 0x0024, lo: 0xa6, hi: 0xac}, - {value: 0x0024, lo: 0xb0, hi: 0xb4}, - // Block 0xcc, offset 0x44e - {value: 0x0010, lo: 0x80, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xb8}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0014, lo: 0xba, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbe}, - {value: 0x0014, lo: 0xbf, hi: 0xbf}, - // Block 0xcd, offset 0x454 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x81, hi: 0x81}, - {value: 0x0034, lo: 0x82, hi: 0x83}, - {value: 0x0010, lo: 0x84, hi: 0x85}, - {value: 0x0010, lo: 0x87, hi: 0x87}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xce, offset 0x45a - {value: 0x0010, lo: 0x80, hi: 0xb1}, - {value: 0x0014, lo: 0xb2, hi: 0xb5}, - {value: 0x0010, lo: 0xb8, hi: 0xbb}, - {value: 0x0014, lo: 0xbc, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xcf, offset 0x460 - {value: 0x0034, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x98, hi: 0x9b}, - {value: 0x0014, lo: 0x9c, hi: 0x9d}, - // Block 0xd0, offset 0x463 - {value: 0x0010, lo: 0x80, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xba}, - {value: 0x0010, lo: 0xbb, hi: 0xbc}, - {value: 0x0014, lo: 0xbd, hi: 0xbd}, - {value: 0x0010, lo: 0xbe, hi: 0xbe}, - {value: 0x0034, lo: 0xbf, hi: 0xbf}, - // Block 0xd1, offset 0x469 - {value: 0x0014, lo: 0x80, hi: 0x80}, - {value: 0x0010, lo: 0x84, hi: 0x84}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - // Block 0xd2, offset 0x46c - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0014, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xac, hi: 0xac}, - {value: 0x0014, lo: 0xad, hi: 0xad}, - {value: 0x0010, lo: 0xae, hi: 0xaf}, - {value: 0x0014, lo: 0xb0, hi: 0xb5}, - {value: 0x0030, lo: 0xb6, hi: 0xb6}, - {value: 0x0034, lo: 0xb7, hi: 0xb7}, - // Block 0xd3, offset 0x474 - {value: 0x0010, lo: 0x80, hi: 0x89}, - // Block 0xd4, offset 0x475 - {value: 0x0014, lo: 0x9d, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa1}, - {value: 0x0014, lo: 0xa2, hi: 0xa5}, - {value: 0x0010, lo: 0xa6, hi: 0xa6}, - {value: 0x0014, lo: 0xa7, hi: 0xaa}, - {value: 0x0034, lo: 0xab, hi: 0xab}, - {value: 0x0010, lo: 0xb0, hi: 0xb9}, - // Block 0xd5, offset 0x47c - {value: 0x32d3, lo: 0xa0, hi: 0xbf}, - // Block 0xd6, offset 0x47d - {value: 0x32d2, lo: 0x80, hi: 0x9f}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - {value: 0x0010, lo: 0xbf, hi: 0xbf}, - // Block 0xd7, offset 0x480 - {value: 0x0010, lo: 0x80, hi: 0xb8}, - // Block 0xd8, offset 0x481 - {value: 0x0010, lo: 0x80, hi: 0x99}, - // Block 0xd9, offset 0x482 - {value: 0x0010, lo: 0x80, hi: 0xae}, - // Block 0xda, offset 0x483 - {value: 0x0010, lo: 0x80, hi: 0x83}, - // Block 0xdb, offset 0x484 - {value: 0x0010, lo: 0x80, hi: 0x86}, - // Block 0xdc, offset 0x485 - {value: 0x0010, lo: 0x80, hi: 0x9e}, - {value: 0x0010, lo: 0xa0, hi: 0xa9}, - // Block 0xdd, offset 0x487 - {value: 0x0010, lo: 0x90, hi: 0xad}, - {value: 0x0034, lo: 0xb0, hi: 0xb4}, - // Block 0xde, offset 0x489 - {value: 0x0010, lo: 0x80, hi: 0xaf}, - {value: 0x0024, lo: 0xb0, hi: 0xb6}, - // Block 0xdf, offset 0x48b - {value: 0x0014, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0010, lo: 0xa3, hi: 0xb7}, - {value: 0x0010, lo: 0xbd, hi: 0xbf}, - // Block 0xe0, offset 0x48f - {value: 0x0010, lo: 0x80, hi: 0x8f}, - // Block 0xe1, offset 0x490 - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0010, lo: 0x90, hi: 0xbe}, - // Block 0xe2, offset 0x492 - {value: 0x0014, lo: 0x8f, hi: 0x9f}, - // Block 0xe3, offset 0x493 - {value: 0x0010, lo: 0x80, hi: 0xaa}, - {value: 0x0010, lo: 0xb0, hi: 0xbc}, - // Block 0xe4, offset 0x495 - {value: 0x0010, lo: 0x80, hi: 0x88}, - {value: 0x0010, lo: 0x90, hi: 0x99}, - {value: 0x0014, lo: 0x9d, hi: 0x9d}, - {value: 0x0034, lo: 0x9e, hi: 0x9e}, - {value: 0x0014, lo: 0xa0, hi: 0xa3}, - // Block 0xe5, offset 0x49a - {value: 0x0030, lo: 0xa5, hi: 0xa6}, - {value: 0x0034, lo: 0xa7, hi: 0xa9}, - {value: 0x0030, lo: 0xad, hi: 0xb2}, - {value: 0x0014, lo: 0xb3, hi: 0xba}, - {value: 0x0034, lo: 0xbb, hi: 0xbf}, - // Block 0xe6, offset 0x49f - {value: 0x0034, lo: 0x80, hi: 0x82}, - {value: 0x0024, lo: 0x85, hi: 0x89}, - {value: 0x0034, lo: 0x8a, hi: 0x8b}, - {value: 0x0024, lo: 0xaa, hi: 0xad}, - // Block 0xe7, offset 0x4a3 - {value: 0x0024, lo: 0x82, hi: 0x84}, - // Block 0xe8, offset 0x4a4 - {value: 0x0013, lo: 0x80, hi: 0x99}, - {value: 0x0012, lo: 0x9a, hi: 0xb3}, - {value: 0x0013, lo: 0xb4, hi: 0xbf}, - // Block 0xe9, offset 0x4a7 - {value: 0x0013, lo: 0x80, hi: 0x8d}, - {value: 0x0012, lo: 0x8e, hi: 0x94}, - {value: 0x0012, lo: 0x96, hi: 0xa7}, - {value: 0x0013, lo: 0xa8, hi: 0xbf}, - // Block 0xea, offset 0x4ab - {value: 0x0013, lo: 0x80, hi: 0x81}, - {value: 0x0012, lo: 0x82, hi: 0x9b}, - {value: 0x0013, lo: 0x9c, hi: 0x9c}, - {value: 0x0013, lo: 0x9e, hi: 0x9f}, - {value: 0x0013, lo: 0xa2, hi: 0xa2}, - {value: 0x0013, lo: 0xa5, hi: 0xa6}, - {value: 0x0013, lo: 0xa9, hi: 0xac}, - {value: 0x0013, lo: 0xae, hi: 0xb5}, - {value: 0x0012, lo: 0xb6, hi: 0xb9}, - {value: 0x0012, lo: 0xbb, hi: 0xbb}, - {value: 0x0012, lo: 0xbd, hi: 0xbf}, - // Block 0xeb, offset 0x4b6 - {value: 0x0012, lo: 0x80, hi: 0x83}, - {value: 0x0012, lo: 0x85, hi: 0x8f}, - {value: 0x0013, lo: 0x90, hi: 0xa9}, - {value: 0x0012, lo: 0xaa, hi: 0xbf}, - // Block 0xec, offset 0x4ba - {value: 0x0012, lo: 0x80, hi: 0x83}, - {value: 0x0013, lo: 0x84, hi: 0x85}, - {value: 0x0013, lo: 0x87, hi: 0x8a}, - {value: 0x0013, lo: 0x8d, hi: 0x94}, - {value: 0x0013, lo: 0x96, hi: 0x9c}, - {value: 0x0012, lo: 0x9e, hi: 0xb7}, - {value: 0x0013, lo: 0xb8, hi: 0xb9}, - {value: 0x0013, lo: 0xbb, hi: 0xbe}, - // Block 0xed, offset 0x4c2 - {value: 0x0013, lo: 0x80, hi: 0x84}, - {value: 0x0013, lo: 0x86, hi: 0x86}, - {value: 0x0013, lo: 0x8a, hi: 0x90}, - {value: 0x0012, lo: 0x92, hi: 0xab}, - {value: 0x0013, lo: 0xac, hi: 0xbf}, - // Block 0xee, offset 0x4c7 - {value: 0x0013, lo: 0x80, hi: 0x85}, - {value: 0x0012, lo: 0x86, hi: 0x9f}, - {value: 0x0013, lo: 0xa0, hi: 0xb9}, - {value: 0x0012, lo: 0xba, hi: 0xbf}, - // Block 0xef, offset 0x4cb - {value: 0x0012, lo: 0x80, hi: 0x93}, - {value: 0x0013, lo: 0x94, hi: 0xad}, - {value: 0x0012, lo: 0xae, hi: 0xbf}, - // Block 0xf0, offset 0x4ce - {value: 0x0012, lo: 0x80, hi: 0x87}, - {value: 0x0013, lo: 0x88, hi: 0xa1}, - {value: 0x0012, lo: 0xa2, hi: 0xbb}, - {value: 0x0013, lo: 0xbc, hi: 0xbf}, - // Block 0xf1, offset 0x4d2 - {value: 0x0013, lo: 0x80, hi: 0x95}, - {value: 0x0012, lo: 0x96, hi: 0xaf}, - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0xf2, offset 0x4d5 - {value: 0x0013, lo: 0x80, hi: 0x89}, - {value: 0x0012, lo: 0x8a, hi: 0xa5}, - {value: 0x0013, lo: 0xa8, hi: 0xbf}, - // Block 0xf3, offset 0x4d8 - {value: 0x0013, lo: 0x80, hi: 0x80}, - {value: 0x0012, lo: 0x82, hi: 0x9a}, - {value: 0x0012, lo: 0x9c, hi: 0xa1}, - {value: 0x0013, lo: 0xa2, hi: 0xba}, - {value: 0x0012, lo: 0xbc, hi: 0xbf}, - // Block 0xf4, offset 0x4dd - {value: 0x0012, lo: 0x80, hi: 0x94}, - {value: 0x0012, lo: 0x96, hi: 0x9b}, - {value: 0x0013, lo: 0x9c, hi: 0xb4}, - {value: 0x0012, lo: 0xb6, hi: 0xbf}, - // Block 0xf5, offset 0x4e1 - {value: 0x0012, lo: 0x80, hi: 0x8e}, - {value: 0x0012, lo: 0x90, hi: 0x95}, - {value: 0x0013, lo: 0x96, hi: 0xae}, - {value: 0x0012, lo: 0xb0, hi: 0xbf}, - // Block 0xf6, offset 0x4e5 - {value: 0x0012, lo: 0x80, hi: 0x88}, - {value: 0x0012, lo: 0x8a, hi: 0x8f}, - {value: 0x0013, lo: 0x90, hi: 0xa8}, - {value: 0x0012, lo: 0xaa, hi: 0xbf}, - // Block 0xf7, offset 0x4e9 - {value: 0x0012, lo: 0x80, hi: 0x82}, - {value: 0x0012, lo: 0x84, hi: 0x89}, - {value: 0x0017, lo: 0x8a, hi: 0x8b}, - {value: 0x0010, lo: 0x8e, hi: 0xbf}, - // Block 0xf8, offset 0x4ed - {value: 0x0014, lo: 0x80, hi: 0xb6}, - {value: 0x0014, lo: 0xbb, hi: 0xbf}, - // Block 0xf9, offset 0x4ef - {value: 0x0014, lo: 0x80, hi: 0xac}, - {value: 0x0014, lo: 0xb5, hi: 0xb5}, - // Block 0xfa, offset 0x4f1 - {value: 0x0014, lo: 0x84, hi: 0x84}, - {value: 0x0014, lo: 0x9b, hi: 0x9f}, - {value: 0x0014, lo: 0xa1, hi: 0xaf}, - // Block 0xfb, offset 0x4f4 - {value: 0x0010, lo: 0x80, hi: 0x84}, - {value: 0x0034, lo: 0x90, hi: 0x96}, - // Block 0xfc, offset 0x4f6 - {value: 0x0010, lo: 0x80, hi: 0x83}, - {value: 0x0010, lo: 0x85, hi: 0x9f}, - {value: 0x0010, lo: 0xa1, hi: 0xa2}, - {value: 0x0010, lo: 0xa4, hi: 0xa4}, - {value: 0x0010, lo: 0xa7, hi: 0xa7}, - {value: 0x0010, lo: 0xa9, hi: 0xb2}, - {value: 0x0010, lo: 0xb4, hi: 0xb7}, - {value: 0x0010, lo: 0xb9, hi: 0xb9}, - {value: 0x0010, lo: 0xbb, hi: 0xbb}, - // Block 0xfd, offset 0x4ff - {value: 0x0010, lo: 0x80, hi: 0x89}, - {value: 0x0010, lo: 0x8b, hi: 0x9b}, - {value: 0x0010, lo: 0xa1, hi: 0xa3}, - {value: 0x0010, lo: 0xa5, hi: 0xa9}, - {value: 0x0010, lo: 0xab, hi: 0xbb}, - // Block 0xfe, offset 0x504 - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0xff, offset 0x505 - {value: 0x0013, lo: 0x80, hi: 0x89}, - {value: 0x0013, lo: 0x90, hi: 0xa9}, - {value: 0x0013, lo: 0xb0, hi: 0xbf}, - // Block 0x100, offset 0x508 - {value: 0x0013, lo: 0x80, hi: 0x89}, - // Block 0x101, offset 0x509 - {value: 0x0004, lo: 0xbb, hi: 0xbf}, - // Block 0x102, offset 0x50a - {value: 0x0014, lo: 0x81, hi: 0x81}, - {value: 0x0014, lo: 0xa0, hi: 0xbf}, - // Block 0x103, offset 0x50c - {value: 0x0014, lo: 0x80, hi: 0xbf}, - // Block 0x104, offset 0x50d - {value: 0x0014, lo: 0x80, hi: 0xaf}, -} - -// UnicodeVersion is the Unicode version from which the tables in this package are derived. -const UnicodeVersion = "8.0.0" - -// xorData: 203 bytes -var xorData = "\x00\f)\x00\x06\a\x00\x01?\x00\x0f\x03\x00\x0f\x12\x00\x0f\x1f\x00\x0f\x1d\x00\x01\x13\x00\x0f\x16\x00\x0f\v\x00\x0f3\x00\x0f7\x00\x01#\x00\x0f?\x00\x0e'\x00\x0f/\x00\x0e>\x00\x0f*\x00\f&\x00\f*\x00\f;\x00\f9\x00\f%\x00\x01\b\x00\x03\r\x00\x03\t\x00\x03\x1c\x00\x02\x06\x00\x02\x02\x00\x02\f\x00\x01\x00\x00\x01\x03\x00\x01\x01\x00\x01 \x00\x01!\x00\x01\x02\x00\x01\t\x00\x013\x00\x016\x00\x01*\x00\x01\x10\x00\x01\f\x00\x03\x10\x00\x036 \x00\x037 \x00\v#\x10\x00\v 0\x00\v!\x10\x00\v!0\x00\v(\x04\x00\x03\x04\x1e\x00\x03;\x00\x03\n\x00\x02:\x00\x02>\x00\x02,\x00\x02\x00\x00\x02\x10\x00\x01<\x00\x01&\x00\x01.\x00\x010\x003 \x00\x01\x18\x00\x01(" - -// exceptions: 1184 bytes -var exceptions = "\x00\x00\x12SSSs\x00\x18i̇\x00\bI\x00\x18ʼN\x00\bS\x00\x12džDž\x00\x12džDŽ\x00\x12Ç„Ç…\x00\x12ljLj\x00\x12ljLJ\x00\x12LJLj\x00\x12njNj\x00\x12njNJ\x00\x12ÇŠÇ‹\x00\x18JÌŒ\x00\x12dzDz\x00\x12dzDZ\x00\x12DZDz\x00\x18â±¥\x00\x18ⱦ\x00\x18â±¾\x00\x18Ɀ\x00\x18Ɐ\x00\x18â±­\x00\x18â±°\x00\x18êž«\x00\x18Ɡ\x00\x18êž\x00\x18Ɦ\x00\x18â±¢\x00\x18êž­\x00\x18â±®\x00\x18Ɽ\x00\x18êž±\x00\x18êž²\x00\x18êž°\x000ΪÌ\x000ΫÌ\x00$ÔµÕ’ÔµÖ‚\x00\x18H̱\x00\x18T̈\x00\x18WÌŠ\x00\x18YÌŠ\x00\x18Aʾ\x00\x10ß\x00 Υ̓\x000Υ̓̀\x000Υ̓Ì\x000Υ̓͂\x00+ἈΙᾈ\x00+ἉΙᾉ\x00+ἊΙᾊ\x00+ἋΙᾋ\x00+ἌΙᾌ\x00+á¼Î™á¾\x00+ἎΙᾎ\x00+á¼Î™á¾\x00\x1dᾀἈΙ\x00\x1dá¾á¼‰Î™\x00\x1dᾂἊΙ\x00\x1dᾃἋΙ\x00\x1dᾄἌΙ\x00\x1dá¾…á¼Î™\x00\x1dᾆἎΙ\x00\x1dᾇá¼Î™\x00+ἨΙᾘ\x00+ἩΙᾙ\x00+ἪΙᾚ\x00+ἫΙᾛ\x00+ἬΙᾜ\x00+ἭΙá¾\x00+ἮΙᾞ\x00+ἯΙᾟ\x00\x1dá¾á¼¨Î™\x00\x1dᾑἩΙ\x00\x1dᾒἪΙ\x00\x1dᾓἫΙ\x00\x1dᾔἬΙ\x00\x1dᾕἭΙ\x00\x1dᾖἮΙ\x00\x1dᾗἯΙ\x00+ὨΙᾨ\x00+ὩΙᾩ\x00+ὪΙᾪ\x00+ὫΙᾫ\x00+ὬΙᾬ\x00+ὭΙᾭ\x00+ὮΙᾮ\x00+ὯΙᾯ\x00\x1dᾠὨΙ\x00\x1dᾡὩΙ\x00\x1dᾢὪΙ\x00\x1dᾣὫΙ\x00\x1dᾤὬΙ\x00\x1dᾥὭΙ\x00\x1dᾦὮΙ\x00\x1dᾧὯΙ\x00-ᾺΙᾺͅ\x00#ΑΙᾼ\x00$ΆΙΆͅ\x00 Α͂\x006Α͂Ιᾼ͂\x00\x1cᾳΑΙ\x00\x10Ι\x00-ῊΙῊͅ\x00#ΗΙῌ\x00$ΉΙΉͅ\x00 Η͂\x006Η͂Ιῌ͂\x00\x1cῃΗΙ\x000Ϊ̀\x000ΪÌ\x00 Ι͂\x000Ϊ͂\x000Ϋ̀\x000ΫÌ\x00 Ρ̓\x00 Υ͂\x000Ϋ͂\x00-ῺΙῺͅ\x00#ΩΙῼ\x00$ÎΙÎÍ…\x00 Ω͂\x006Ω͂Ιῼ͂\x00\x1cῳΩΙ\x00\x10ω\x00\bk\x00\x10Ã¥\x00\x10É«\x00\x10ɽ\x00\x10Ⱥ\x00\x10Ⱦ\x00\x10É‘\x00\x10ɱ\x00\x10É\x00\x10É’\x00\x10È¿\x00\x10É€\x00\x10É¥\x00\x10ɦ\x00\x10Éœ\x00\x10É¡\x00\x10ɬ\x00\x10Êž\x00\x10ʇ\x00\x10Ê\x00\x12FFFf\x00\x12FIFi\x00\x12FLFl\x00\x1bFFIFfi\x00\x1bFFLFfl\x00\x12STSt\x00\x12STSt\x00$Õ„Õ†Õ„Õ¶\x00$Õ„ÔµÕ„Õ¥\x00$Õ„Ô»Õ„Õ«\x00$ÕŽÕ†ÕŽÕ¶\x00$Õ„Ô½Õ„Õ­" - -// Total table size 12514 bytes (12KiB) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/tables_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/tables_test.go deleted file mode 100644 index ba8bb089..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/tables_test.go +++ /dev/null @@ -1,923 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package cases - -var ( - caseIgnorable = map[rune]bool{ - 0x0027: true, - 0x002e: true, - 0x003a: true, - 0x00b7: true, - 0x0387: true, - 0x05f4: true, - 0x2018: true, - 0x2019: true, - 0x2024: true, - 0x2027: true, - 0xfe13: true, - 0xfe52: true, - 0xfe55: true, - 0xff07: true, - 0xff0e: true, - 0xff1a: true, - } - - special = map[rune]struct{ toLower, toTitle, toUpper string }{ - 0x00df: {"ß", "Ss", "SS"}, - 0x0130: {"i̇", "Ä°", "Ä°"}, - 0xfb00: {"ff", "Ff", "FF"}, - 0xfb01: {"ï¬", "Fi", "FI"}, - 0xfb02: {"fl", "Fl", "FL"}, - 0xfb03: {"ffi", "Ffi", "FFI"}, - 0xfb04: {"ffl", "Ffl", "FFL"}, - 0xfb05: {"ſt", "St", "ST"}, - 0xfb06: {"st", "St", "ST"}, - 0x0587: {"Ö‡", "ÔµÖ‚", "ÔµÕ’"}, - 0xfb13: {"ﬓ", "Õ„Õ¶", "Õ„Õ†"}, - 0xfb14: {"ﬔ", "Õ„Õ¥", "Õ„Ôµ"}, - 0xfb15: {"ﬕ", "Õ„Õ«", "Õ„Ô»"}, - 0xfb16: {"ﬖ", "ÕŽÕ¶", "ÕŽÕ†"}, - 0xfb17: {"ﬗ", "Õ„Õ­", "Õ„Ô½"}, - 0x0149: {"ʼn", "ʼN", "ʼN"}, - 0x0390: {"Î", "ΪÌ", "ΪÌ"}, - 0x03b0: {"ΰ", "ΫÌ", "ΫÌ"}, - 0x01f0: {"Ç°", "JÌŒ", "JÌŒ"}, - 0x1e96: {"ẖ", "H̱", "H̱"}, - 0x1e97: {"ẗ", "T̈", "T̈"}, - 0x1e98: {"ẘ", "WÌŠ", "WÌŠ"}, - 0x1e99: {"ẙ", "YÌŠ", "YÌŠ"}, - 0x1e9a: {"ẚ", "Aʾ", "Aʾ"}, - 0x1f50: {"á½", "Υ̓", "Υ̓"}, - 0x1f52: {"á½’", "Υ̓̀", "Υ̓̀"}, - 0x1f54: {"á½”", "Υ̓Ì", "Υ̓Ì"}, - 0x1f56: {"á½–", "Υ̓͂", "Υ̓͂"}, - 0x1fb6: {"ᾶ", "Α͂", "Α͂"}, - 0x1fc6: {"ῆ", "Η͂", "Η͂"}, - 0x1fd2: {"á¿’", "Ϊ̀", "Ϊ̀"}, - 0x1fd3: {"á¿“", "ΪÌ", "ΪÌ"}, - 0x1fd6: {"á¿–", "Ι͂", "Ι͂"}, - 0x1fd7: {"á¿—", "Ϊ͂", "Ϊ͂"}, - 0x1fe2: {"á¿¢", "Ϋ̀", "Ϋ̀"}, - 0x1fe3: {"á¿£", "ΫÌ", "ΫÌ"}, - 0x1fe4: {"ῤ", "Ρ̓", "Ρ̓"}, - 0x1fe6: {"ῦ", "Υ͂", "Υ͂"}, - 0x1fe7: {"ῧ", "Ϋ͂", "Ϋ͂"}, - 0x1ff6: {"ῶ", "Ω͂", "Ω͂"}, - 0x1f80: {"á¾€", "ᾈ", "ἈΙ"}, - 0x1f81: {"á¾", "ᾉ", "ἉΙ"}, - 0x1f82: {"ᾂ", "ᾊ", "ἊΙ"}, - 0x1f83: {"ᾃ", "ᾋ", "ἋΙ"}, - 0x1f84: {"ᾄ", "ᾌ", "ἌΙ"}, - 0x1f85: {"á¾…", "á¾", "á¼Î™"}, - 0x1f86: {"ᾆ", "ᾎ", "ἎΙ"}, - 0x1f87: {"ᾇ", "á¾", "á¼Î™"}, - 0x1f88: {"á¾€", "ᾈ", "ἈΙ"}, - 0x1f89: {"á¾", "ᾉ", "ἉΙ"}, - 0x1f8a: {"ᾂ", "ᾊ", "ἊΙ"}, - 0x1f8b: {"ᾃ", "ᾋ", "ἋΙ"}, - 0x1f8c: {"ᾄ", "ᾌ", "ἌΙ"}, - 0x1f8d: {"á¾…", "á¾", "á¼Î™"}, - 0x1f8e: {"ᾆ", "ᾎ", "ἎΙ"}, - 0x1f8f: {"ᾇ", "á¾", "á¼Î™"}, - 0x1f90: {"á¾", "ᾘ", "ἨΙ"}, - 0x1f91: {"ᾑ", "á¾™", "ἩΙ"}, - 0x1f92: {"á¾’", "ᾚ", "ἪΙ"}, - 0x1f93: {"ᾓ", "á¾›", "ἫΙ"}, - 0x1f94: {"á¾”", "ᾜ", "ἬΙ"}, - 0x1f95: {"ᾕ", "á¾", "ἭΙ"}, - 0x1f96: {"á¾–", "ᾞ", "ἮΙ"}, - 0x1f97: {"á¾—", "ᾟ", "ἯΙ"}, - 0x1f98: {"á¾", "ᾘ", "ἨΙ"}, - 0x1f99: {"ᾑ", "á¾™", "ἩΙ"}, - 0x1f9a: {"á¾’", "ᾚ", "ἪΙ"}, - 0x1f9b: {"ᾓ", "á¾›", "ἫΙ"}, - 0x1f9c: {"á¾”", "ᾜ", "ἬΙ"}, - 0x1f9d: {"ᾕ", "á¾", "ἭΙ"}, - 0x1f9e: {"á¾–", "ᾞ", "ἮΙ"}, - 0x1f9f: {"á¾—", "ᾟ", "ἯΙ"}, - 0x1fa0: {"á¾ ", "ᾨ", "ὨΙ"}, - 0x1fa1: {"ᾡ", "ᾩ", "ὩΙ"}, - 0x1fa2: {"á¾¢", "ᾪ", "ὪΙ"}, - 0x1fa3: {"á¾£", "ᾫ", "ὫΙ"}, - 0x1fa4: {"ᾤ", "ᾬ", "ὬΙ"}, - 0x1fa5: {"á¾¥", "á¾­", "ὭΙ"}, - 0x1fa6: {"ᾦ", "á¾®", "ὮΙ"}, - 0x1fa7: {"ᾧ", "ᾯ", "ὯΙ"}, - 0x1fa8: {"á¾ ", "ᾨ", "ὨΙ"}, - 0x1fa9: {"ᾡ", "ᾩ", "ὩΙ"}, - 0x1faa: {"á¾¢", "ᾪ", "ὪΙ"}, - 0x1fab: {"á¾£", "ᾫ", "ὫΙ"}, - 0x1fac: {"ᾤ", "ᾬ", "ὬΙ"}, - 0x1fad: {"á¾¥", "á¾­", "ὭΙ"}, - 0x1fae: {"ᾦ", "á¾®", "ὮΙ"}, - 0x1faf: {"ᾧ", "ᾯ", "ὯΙ"}, - 0x1fb3: {"á¾³", "á¾¼", "ΑΙ"}, - 0x1fbc: {"á¾³", "á¾¼", "ΑΙ"}, - 0x1fc3: {"ῃ", "á¿Œ", "ΗΙ"}, - 0x1fcc: {"ῃ", "á¿Œ", "ΗΙ"}, - 0x1ff3: {"ῳ", "ῼ", "ΩΙ"}, - 0x1ffc: {"ῳ", "ῼ", "ΩΙ"}, - 0x1fb2: {"á¾²", "Ὰͅ", "ᾺΙ"}, - 0x1fb4: {"á¾´", "Άͅ", "ΆΙ"}, - 0x1fc2: {"á¿‚", "á¿ŠÍ…", "ῊΙ"}, - 0x1fc4: {"á¿„", "Ήͅ", "ΉΙ"}, - 0x1ff2: {"ῲ", "Ὼͅ", "ῺΙ"}, - 0x1ff4: {"á¿´", "ÎÍ…", "ÎΙ"}, - 0x1fb7: {"á¾·", "ᾼ͂", "Α͂Ι"}, - 0x1fc7: {"ῇ", "ῌ͂", "Η͂Ι"}, - 0x1ff7: {"á¿·", "ῼ͂", "Ω͂Ι"}, - } - - breakProp = []struct{ lo, hi rune }{ - {0x0, 0x26}, - {0x28, 0x2d}, - {0x2f, 0x2f}, - {0x3b, 0x40}, - {0x5b, 0x5e}, - {0x60, 0x60}, - {0x7b, 0xa9}, - {0xab, 0xac}, - {0xae, 0xb4}, - {0xb6, 0xb6}, - {0xb8, 0xb9}, - {0xbb, 0xbf}, - {0xd7, 0xd7}, - {0xf7, 0xf7}, - {0x2c2, 0x2c5}, - {0x2d2, 0x2d6}, - {0x2d8, 0x2df}, - {0x2e5, 0x2eb}, - {0x2ed, 0x2ed}, - {0x2ef, 0x2ff}, - {0x375, 0x375}, - {0x378, 0x379}, - {0x37e, 0x37e}, - {0x380, 0x385}, - {0x38b, 0x38b}, - {0x38d, 0x38d}, - {0x3a2, 0x3a2}, - {0x3f6, 0x3f6}, - {0x482, 0x482}, - {0x530, 0x530}, - {0x557, 0x558}, - {0x55a, 0x560}, - {0x588, 0x590}, - {0x5be, 0x5be}, - {0x5c0, 0x5c0}, - {0x5c3, 0x5c3}, - {0x5c6, 0x5c6}, - {0x5c8, 0x5cf}, - {0x5eb, 0x5ef}, - {0x5f5, 0x5ff}, - {0x606, 0x60f}, - {0x61b, 0x61b}, - {0x61d, 0x61f}, - {0x66a, 0x66a}, - {0x66c, 0x66d}, - {0x6d4, 0x6d4}, - {0x6de, 0x6de}, - {0x6e9, 0x6e9}, - {0x6fd, 0x6fe}, - {0x700, 0x70e}, - {0x74b, 0x74c}, - {0x7b2, 0x7bf}, - {0x7f6, 0x7f9}, - {0x7fb, 0x7ff}, - {0x82e, 0x83f}, - {0x85c, 0x89f}, - {0x8b5, 0x8e2}, - {0x964, 0x965}, - {0x970, 0x970}, - {0x984, 0x984}, - {0x98d, 0x98e}, - {0x991, 0x992}, - {0x9a9, 0x9a9}, - {0x9b1, 0x9b1}, - {0x9b3, 0x9b5}, - {0x9ba, 0x9bb}, - {0x9c5, 0x9c6}, - {0x9c9, 0x9ca}, - {0x9cf, 0x9d6}, - {0x9d8, 0x9db}, - {0x9de, 0x9de}, - {0x9e4, 0x9e5}, - {0x9f2, 0xa00}, - {0xa04, 0xa04}, - {0xa0b, 0xa0e}, - {0xa11, 0xa12}, - {0xa29, 0xa29}, - {0xa31, 0xa31}, - {0xa34, 0xa34}, - {0xa37, 0xa37}, - {0xa3a, 0xa3b}, - {0xa3d, 0xa3d}, - {0xa43, 0xa46}, - {0xa49, 0xa4a}, - {0xa4e, 0xa50}, - {0xa52, 0xa58}, - {0xa5d, 0xa5d}, - {0xa5f, 0xa65}, - {0xa76, 0xa80}, - {0xa84, 0xa84}, - {0xa8e, 0xa8e}, - {0xa92, 0xa92}, - {0xaa9, 0xaa9}, - {0xab1, 0xab1}, - {0xab4, 0xab4}, - {0xaba, 0xabb}, - {0xac6, 0xac6}, - {0xaca, 0xaca}, - {0xace, 0xacf}, - {0xad1, 0xadf}, - {0xae4, 0xae5}, - {0xaf0, 0xaf8}, - {0xafa, 0xb00}, - {0xb04, 0xb04}, - {0xb0d, 0xb0e}, - {0xb11, 0xb12}, - {0xb29, 0xb29}, - {0xb31, 0xb31}, - {0xb34, 0xb34}, - {0xb3a, 0xb3b}, - {0xb45, 0xb46}, - {0xb49, 0xb4a}, - {0xb4e, 0xb55}, - {0xb58, 0xb5b}, - {0xb5e, 0xb5e}, - {0xb64, 0xb65}, - {0xb70, 0xb70}, - {0xb72, 0xb81}, - {0xb84, 0xb84}, - {0xb8b, 0xb8d}, - {0xb91, 0xb91}, - {0xb96, 0xb98}, - {0xb9b, 0xb9b}, - {0xb9d, 0xb9d}, - {0xba0, 0xba2}, - {0xba5, 0xba7}, - {0xbab, 0xbad}, - {0xbba, 0xbbd}, - {0xbc3, 0xbc5}, - {0xbc9, 0xbc9}, - {0xbce, 0xbcf}, - {0xbd1, 0xbd6}, - {0xbd8, 0xbe5}, - {0xbf0, 0xbff}, - {0xc04, 0xc04}, - {0xc0d, 0xc0d}, - {0xc11, 0xc11}, - {0xc29, 0xc29}, - {0xc3a, 0xc3c}, - {0xc45, 0xc45}, - {0xc49, 0xc49}, - {0xc4e, 0xc54}, - {0xc57, 0xc57}, - {0xc5b, 0xc5f}, - {0xc64, 0xc65}, - {0xc70, 0xc80}, - {0xc84, 0xc84}, - {0xc8d, 0xc8d}, - {0xc91, 0xc91}, - {0xca9, 0xca9}, - {0xcb4, 0xcb4}, - {0xcba, 0xcbb}, - {0xcc5, 0xcc5}, - {0xcc9, 0xcc9}, - {0xcce, 0xcd4}, - {0xcd7, 0xcdd}, - {0xcdf, 0xcdf}, - {0xce4, 0xce5}, - {0xcf0, 0xcf0}, - {0xcf3, 0xd00}, - {0xd04, 0xd04}, - {0xd0d, 0xd0d}, - {0xd11, 0xd11}, - {0xd3b, 0xd3c}, - {0xd45, 0xd45}, - {0xd49, 0xd49}, - {0xd4f, 0xd56}, - {0xd58, 0xd5e}, - {0xd64, 0xd65}, - {0xd70, 0xd79}, - {0xd80, 0xd81}, - {0xd84, 0xd84}, - {0xd97, 0xd99}, - {0xdb2, 0xdb2}, - {0xdbc, 0xdbc}, - {0xdbe, 0xdbf}, - {0xdc7, 0xdc9}, - {0xdcb, 0xdce}, - {0xdd5, 0xdd5}, - {0xdd7, 0xdd7}, - {0xde0, 0xde5}, - {0xdf0, 0xdf1}, - {0xdf4, 0xe30}, - {0xe32, 0xe33}, - {0xe3b, 0xe46}, - {0xe4f, 0xe4f}, - {0xe5a, 0xeb0}, - {0xeb2, 0xeb3}, - {0xeba, 0xeba}, - {0xebd, 0xec7}, - {0xece, 0xecf}, - {0xeda, 0xeff}, - {0xf01, 0xf17}, - {0xf1a, 0xf1f}, - {0xf2a, 0xf34}, - {0xf36, 0xf36}, - {0xf38, 0xf38}, - {0xf3a, 0xf3d}, - {0xf48, 0xf48}, - {0xf6d, 0xf70}, - {0xf85, 0xf85}, - {0xf98, 0xf98}, - {0xfbd, 0xfc5}, - {0xfc7, 0x102a}, - {0x103f, 0x103f}, - {0x104a, 0x1055}, - {0x105a, 0x105d}, - {0x1061, 0x1061}, - {0x1065, 0x1066}, - {0x106e, 0x1070}, - {0x1075, 0x1081}, - {0x108e, 0x108e}, - {0x109e, 0x109f}, - {0x10c6, 0x10c6}, - {0x10c8, 0x10cc}, - {0x10ce, 0x10cf}, - {0x10fb, 0x10fb}, - {0x1249, 0x1249}, - {0x124e, 0x124f}, - {0x1257, 0x1257}, - {0x1259, 0x1259}, - {0x125e, 0x125f}, - {0x1289, 0x1289}, - {0x128e, 0x128f}, - {0x12b1, 0x12b1}, - {0x12b6, 0x12b7}, - {0x12bf, 0x12bf}, - {0x12c1, 0x12c1}, - {0x12c6, 0x12c7}, - {0x12d7, 0x12d7}, - {0x1311, 0x1311}, - {0x1316, 0x1317}, - {0x135b, 0x135c}, - {0x1360, 0x137f}, - {0x1390, 0x139f}, - {0x13f6, 0x13f7}, - {0x13fe, 0x1400}, - {0x166d, 0x166e}, - {0x1680, 0x1680}, - {0x169b, 0x169f}, - {0x16eb, 0x16ed}, - {0x16f9, 0x16ff}, - {0x170d, 0x170d}, - {0x1715, 0x171f}, - {0x1735, 0x173f}, - {0x1754, 0x175f}, - {0x176d, 0x176d}, - {0x1771, 0x1771}, - {0x1774, 0x17b3}, - {0x17d4, 0x17dc}, - {0x17de, 0x17df}, - {0x17ea, 0x180a}, - {0x180f, 0x180f}, - {0x181a, 0x181f}, - {0x1878, 0x187f}, - {0x18ab, 0x18af}, - {0x18f6, 0x18ff}, - {0x191f, 0x191f}, - {0x192c, 0x192f}, - {0x193c, 0x1945}, - {0x1950, 0x19cf}, - {0x19da, 0x19ff}, - {0x1a1c, 0x1a54}, - {0x1a5f, 0x1a5f}, - {0x1a7d, 0x1a7e}, - {0x1a8a, 0x1a8f}, - {0x1a9a, 0x1aaf}, - {0x1abf, 0x1aff}, - {0x1b4c, 0x1b4f}, - {0x1b5a, 0x1b6a}, - {0x1b74, 0x1b7f}, - {0x1bf4, 0x1bff}, - {0x1c38, 0x1c3f}, - {0x1c4a, 0x1c4c}, - {0x1c7e, 0x1ccf}, - {0x1cd3, 0x1cd3}, - {0x1cf7, 0x1cf7}, - {0x1cfa, 0x1cff}, - {0x1df6, 0x1dfb}, - {0x1f16, 0x1f17}, - {0x1f1e, 0x1f1f}, - {0x1f46, 0x1f47}, - {0x1f4e, 0x1f4f}, - {0x1f58, 0x1f58}, - {0x1f5a, 0x1f5a}, - {0x1f5c, 0x1f5c}, - {0x1f5e, 0x1f5e}, - {0x1f7e, 0x1f7f}, - {0x1fb5, 0x1fb5}, - {0x1fbd, 0x1fbd}, - {0x1fbf, 0x1fc1}, - {0x1fc5, 0x1fc5}, - {0x1fcd, 0x1fcf}, - {0x1fd4, 0x1fd5}, - {0x1fdc, 0x1fdf}, - {0x1fed, 0x1ff1}, - {0x1ff5, 0x1ff5}, - {0x1ffd, 0x200b}, - {0x2010, 0x2017}, - {0x201a, 0x2023}, - {0x2025, 0x2026}, - {0x2028, 0x2029}, - {0x202f, 0x203e}, - {0x2041, 0x2053}, - {0x2055, 0x205f}, - {0x2065, 0x2065}, - {0x2070, 0x2070}, - {0x2072, 0x207e}, - {0x2080, 0x208f}, - {0x209d, 0x20cf}, - {0x20f1, 0x2101}, - {0x2103, 0x2106}, - {0x2108, 0x2109}, - {0x2114, 0x2114}, - {0x2116, 0x2118}, - {0x211e, 0x2123}, - {0x2125, 0x2125}, - {0x2127, 0x2127}, - {0x2129, 0x2129}, - {0x212e, 0x212e}, - {0x213a, 0x213b}, - {0x2140, 0x2144}, - {0x214a, 0x214d}, - {0x214f, 0x215f}, - {0x2189, 0x24b5}, - {0x24ea, 0x2bff}, - {0x2c2f, 0x2c2f}, - {0x2c5f, 0x2c5f}, - {0x2ce5, 0x2cea}, - {0x2cf4, 0x2cff}, - {0x2d26, 0x2d26}, - {0x2d28, 0x2d2c}, - {0x2d2e, 0x2d2f}, - {0x2d68, 0x2d6e}, - {0x2d70, 0x2d7e}, - {0x2d97, 0x2d9f}, - {0x2da7, 0x2da7}, - {0x2daf, 0x2daf}, - {0x2db7, 0x2db7}, - {0x2dbf, 0x2dbf}, - {0x2dc7, 0x2dc7}, - {0x2dcf, 0x2dcf}, - {0x2dd7, 0x2dd7}, - {0x2ddf, 0x2ddf}, - {0x2e00, 0x2e2e}, - {0x2e30, 0x3004}, - {0x3006, 0x3029}, - {0x3030, 0x303a}, - {0x303d, 0x3098}, - {0x309b, 0x3104}, - {0x312e, 0x3130}, - {0x318f, 0x319f}, - {0x31bb, 0x9fff}, - {0xa48d, 0xa4cf}, - {0xa4fe, 0xa4ff}, - {0xa60d, 0xa60f}, - {0xa62c, 0xa63f}, - {0xa673, 0xa673}, - {0xa67e, 0xa67e}, - {0xa6f2, 0xa716}, - {0xa720, 0xa721}, - {0xa789, 0xa78a}, - {0xa7ae, 0xa7af}, - {0xa7b8, 0xa7f6}, - {0xa828, 0xa83f}, - {0xa874, 0xa87f}, - {0xa8c5, 0xa8cf}, - {0xa8da, 0xa8df}, - {0xa8f8, 0xa8fa}, - {0xa8fc, 0xa8fc}, - {0xa8fe, 0xa8ff}, - {0xa92e, 0xa92f}, - {0xa954, 0xa95f}, - {0xa97d, 0xa97f}, - {0xa9c1, 0xa9ce}, - {0xa9da, 0xa9e4}, - {0xa9e6, 0xa9ef}, - {0xa9fa, 0xa9ff}, - {0xaa37, 0xaa3f}, - {0xaa4e, 0xaa4f}, - {0xaa5a, 0xaa7a}, - {0xaa7e, 0xaaaf}, - {0xaab1, 0xaab1}, - {0xaab5, 0xaab6}, - {0xaab9, 0xaabd}, - {0xaac0, 0xaac0}, - {0xaac2, 0xaadf}, - {0xaaf0, 0xaaf1}, - {0xaaf7, 0xab00}, - {0xab07, 0xab08}, - {0xab0f, 0xab10}, - {0xab17, 0xab1f}, - {0xab27, 0xab27}, - {0xab2f, 0xab2f}, - {0xab5b, 0xab5b}, - {0xab66, 0xab6f}, - {0xabeb, 0xabeb}, - {0xabee, 0xabef}, - {0xabfa, 0xabff}, - {0xd7a4, 0xd7af}, - {0xd7c7, 0xd7ca}, - {0xd7fc, 0xfaff}, - {0xfb07, 0xfb12}, - {0xfb18, 0xfb1c}, - {0xfb29, 0xfb29}, - {0xfb37, 0xfb37}, - {0xfb3d, 0xfb3d}, - {0xfb3f, 0xfb3f}, - {0xfb42, 0xfb42}, - {0xfb45, 0xfb45}, - {0xfbb2, 0xfbd2}, - {0xfd3e, 0xfd4f}, - {0xfd90, 0xfd91}, - {0xfdc8, 0xfdef}, - {0xfdfc, 0xfdff}, - {0xfe10, 0xfe12}, - {0xfe14, 0xfe1f}, - {0xfe30, 0xfe32}, - {0xfe35, 0xfe4c}, - {0xfe50, 0xfe51}, - {0xfe53, 0xfe54}, - {0xfe56, 0xfe6f}, - {0xfe75, 0xfe75}, - {0xfefd, 0xfefe}, - {0xff00, 0xff06}, - {0xff08, 0xff0d}, - {0xff0f, 0xff19}, - {0xff1b, 0xff20}, - {0xff3b, 0xff3e}, - {0xff40, 0xff40}, - {0xff5b, 0xff9d}, - {0xffbf, 0xffc1}, - {0xffc8, 0xffc9}, - {0xffd0, 0xffd1}, - {0xffd8, 0xffd9}, - {0xffdd, 0xfff8}, - {0xfffc, 0xffff}, - {0x1000c, 0x1000c}, - {0x10027, 0x10027}, - {0x1003b, 0x1003b}, - {0x1003e, 0x1003e}, - {0x1004e, 0x1004f}, - {0x1005e, 0x1007f}, - {0x100fb, 0x1013f}, - {0x10175, 0x101fc}, - {0x101fe, 0x1027f}, - {0x1029d, 0x1029f}, - {0x102d1, 0x102df}, - {0x102e1, 0x102ff}, - {0x10320, 0x1032f}, - {0x1034b, 0x1034f}, - {0x1037b, 0x1037f}, - {0x1039e, 0x1039f}, - {0x103c4, 0x103c7}, - {0x103d0, 0x103d0}, - {0x103d6, 0x103ff}, - {0x1049e, 0x1049f}, - {0x104aa, 0x104ff}, - {0x10528, 0x1052f}, - {0x10564, 0x105ff}, - {0x10737, 0x1073f}, - {0x10756, 0x1075f}, - {0x10768, 0x107ff}, - {0x10806, 0x10807}, - {0x10809, 0x10809}, - {0x10836, 0x10836}, - {0x10839, 0x1083b}, - {0x1083d, 0x1083e}, - {0x10856, 0x1085f}, - {0x10877, 0x1087f}, - {0x1089f, 0x108df}, - {0x108f3, 0x108f3}, - {0x108f6, 0x108ff}, - {0x10916, 0x1091f}, - {0x1093a, 0x1097f}, - {0x109b8, 0x109bd}, - {0x109c0, 0x109ff}, - {0x10a04, 0x10a04}, - {0x10a07, 0x10a0b}, - {0x10a14, 0x10a14}, - {0x10a18, 0x10a18}, - {0x10a34, 0x10a37}, - {0x10a3b, 0x10a3e}, - {0x10a40, 0x10a5f}, - {0x10a7d, 0x10a7f}, - {0x10a9d, 0x10abf}, - {0x10ac8, 0x10ac8}, - {0x10ae7, 0x10aff}, - {0x10b36, 0x10b3f}, - {0x10b56, 0x10b5f}, - {0x10b73, 0x10b7f}, - {0x10b92, 0x10bff}, - {0x10c49, 0x10c7f}, - {0x10cb3, 0x10cbf}, - {0x10cf3, 0x10fff}, - {0x11047, 0x11065}, - {0x11070, 0x1107e}, - {0x110bb, 0x110bc}, - {0x110be, 0x110cf}, - {0x110e9, 0x110ef}, - {0x110fa, 0x110ff}, - {0x11135, 0x11135}, - {0x11140, 0x1114f}, - {0x11174, 0x11175}, - {0x11177, 0x1117f}, - {0x111c5, 0x111c9}, - {0x111cd, 0x111cf}, - {0x111db, 0x111db}, - {0x111dd, 0x111ff}, - {0x11212, 0x11212}, - {0x11238, 0x1127f}, - {0x11287, 0x11287}, - {0x11289, 0x11289}, - {0x1128e, 0x1128e}, - {0x1129e, 0x1129e}, - {0x112a9, 0x112af}, - {0x112eb, 0x112ef}, - {0x112fa, 0x112ff}, - {0x11304, 0x11304}, - {0x1130d, 0x1130e}, - {0x11311, 0x11312}, - {0x11329, 0x11329}, - {0x11331, 0x11331}, - {0x11334, 0x11334}, - {0x1133a, 0x1133b}, - {0x11345, 0x11346}, - {0x11349, 0x1134a}, - {0x1134e, 0x1134f}, - {0x11351, 0x11356}, - {0x11358, 0x1135c}, - {0x11364, 0x11365}, - {0x1136d, 0x1136f}, - {0x11375, 0x1147f}, - {0x114c6, 0x114c6}, - {0x114c8, 0x114cf}, - {0x114da, 0x1157f}, - {0x115b6, 0x115b7}, - {0x115c1, 0x115d7}, - {0x115de, 0x115ff}, - {0x11641, 0x11643}, - {0x11645, 0x1164f}, - {0x1165a, 0x1167f}, - {0x116b8, 0x116bf}, - {0x116ca, 0x1171c}, - {0x1172c, 0x1172f}, - {0x1173a, 0x1189f}, - {0x118ea, 0x118fe}, - {0x11900, 0x11abf}, - {0x11af9, 0x11fff}, - {0x1239a, 0x123ff}, - {0x1246f, 0x1247f}, - {0x12544, 0x12fff}, - {0x1342f, 0x143ff}, - {0x14647, 0x167ff}, - {0x16a39, 0x16a3f}, - {0x16a5f, 0x16a5f}, - {0x16a6a, 0x16acf}, - {0x16aee, 0x16aef}, - {0x16af5, 0x16aff}, - {0x16b37, 0x16b3f}, - {0x16b44, 0x16b4f}, - {0x16b5a, 0x16b62}, - {0x16b78, 0x16b7c}, - {0x16b90, 0x16eff}, - {0x16f45, 0x16f4f}, - {0x16f7f, 0x16f8e}, - {0x16fa0, 0x1bbff}, - {0x1bc6b, 0x1bc6f}, - {0x1bc7d, 0x1bc7f}, - {0x1bc89, 0x1bc8f}, - {0x1bc9a, 0x1bc9c}, - {0x1bc9f, 0x1bc9f}, - {0x1bca4, 0x1d164}, - {0x1d16a, 0x1d16c}, - {0x1d183, 0x1d184}, - {0x1d18c, 0x1d1a9}, - {0x1d1ae, 0x1d241}, - {0x1d245, 0x1d3ff}, - {0x1d455, 0x1d455}, - {0x1d49d, 0x1d49d}, - {0x1d4a0, 0x1d4a1}, - {0x1d4a3, 0x1d4a4}, - {0x1d4a7, 0x1d4a8}, - {0x1d4ad, 0x1d4ad}, - {0x1d4ba, 0x1d4ba}, - {0x1d4bc, 0x1d4bc}, - {0x1d4c4, 0x1d4c4}, - {0x1d506, 0x1d506}, - {0x1d50b, 0x1d50c}, - {0x1d515, 0x1d515}, - {0x1d51d, 0x1d51d}, - {0x1d53a, 0x1d53a}, - {0x1d53f, 0x1d53f}, - {0x1d545, 0x1d545}, - {0x1d547, 0x1d549}, - {0x1d551, 0x1d551}, - {0x1d6a6, 0x1d6a7}, - {0x1d6c1, 0x1d6c1}, - {0x1d6db, 0x1d6db}, - {0x1d6fb, 0x1d6fb}, - {0x1d715, 0x1d715}, - {0x1d735, 0x1d735}, - {0x1d74f, 0x1d74f}, - {0x1d76f, 0x1d76f}, - {0x1d789, 0x1d789}, - {0x1d7a9, 0x1d7a9}, - {0x1d7c3, 0x1d7c3}, - {0x1d7cc, 0x1d7cd}, - {0x1d800, 0x1d9ff}, - {0x1da37, 0x1da3a}, - {0x1da6d, 0x1da74}, - {0x1da76, 0x1da83}, - {0x1da85, 0x1da9a}, - {0x1daa0, 0x1daa0}, - {0x1dab0, 0x1e7ff}, - {0x1e8c5, 0x1e8cf}, - {0x1e8d7, 0x1edff}, - {0x1ee04, 0x1ee04}, - {0x1ee20, 0x1ee20}, - {0x1ee23, 0x1ee23}, - {0x1ee25, 0x1ee26}, - {0x1ee28, 0x1ee28}, - {0x1ee33, 0x1ee33}, - {0x1ee38, 0x1ee38}, - {0x1ee3a, 0x1ee3a}, - {0x1ee3c, 0x1ee41}, - {0x1ee43, 0x1ee46}, - {0x1ee48, 0x1ee48}, - {0x1ee4a, 0x1ee4a}, - {0x1ee4c, 0x1ee4c}, - {0x1ee50, 0x1ee50}, - {0x1ee53, 0x1ee53}, - {0x1ee55, 0x1ee56}, - {0x1ee58, 0x1ee58}, - {0x1ee5a, 0x1ee5a}, - {0x1ee5c, 0x1ee5c}, - {0x1ee5e, 0x1ee5e}, - {0x1ee60, 0x1ee60}, - {0x1ee63, 0x1ee63}, - {0x1ee65, 0x1ee66}, - {0x1ee6b, 0x1ee6b}, - {0x1ee73, 0x1ee73}, - {0x1ee78, 0x1ee78}, - {0x1ee7d, 0x1ee7d}, - {0x1ee7f, 0x1ee7f}, - {0x1ee8a, 0x1ee8a}, - {0x1ee9c, 0x1eea0}, - {0x1eea4, 0x1eea4}, - {0x1eeaa, 0x1eeaa}, - {0x1eebc, 0x1f12f}, - {0x1f14a, 0x1f14f}, - {0x1f16a, 0x1f16f}, - {0x1f18a, 0x1ffff}, - } - - breakTest = []string{ - "AA", - "ÄA", - "Aa\u2060", - "Äa\u2060", - "Aa|:", - "Äa|:", - "Aa|'", - "Äa|'", - "Aa|'\u2060", - "Äa|'\u2060", - "Aa|,", - "Äa|,", - "a\u2060A", - "a\u2060̈A", - "a\u2060a\u2060", - "a\u2060̈a\u2060", - "a\u2060a|:", - "a\u2060̈a|:", - "a\u2060a|'", - "a\u2060̈a|'", - "a\u2060a|'\u2060", - "a\u2060̈a|'\u2060", - "a\u2060a|,", - "a\u2060̈a|,", - "a:A", - "a:̈A", - "a:a\u2060", - "a:̈a\u2060", - "a:a|:", - "a:̈a|:", - "a:a|'", - "a:̈a|'", - "a:a|'\u2060", - "a:̈a|'\u2060", - "a:a|,", - "a:̈a|,", - "a'A", - "a'̈A", - "a'a\u2060", - "a'̈a\u2060", - "a'a|:", - "a'̈a|:", - "a'a|'", - "a'̈a|'", - "a'a|'\u2060", - "a'̈a|'\u2060", - "a'a|,", - "a'̈a|,", - "a'\u2060A", - "a'\u2060̈A", - "a'\u2060a\u2060", - "a'\u2060̈a\u2060", - "a'\u2060a|:", - "a'\u2060̈a|:", - "a'\u2060a|'", - "a'\u2060̈a|'", - "a'\u2060a|'\u2060", - "a'\u2060̈a|'\u2060", - "a'\u2060a|,", - "a'\u2060̈a|,", - "a|,|A", - "a|,̈|A", - "a|,|a\u2060", - "a|,̈|a\u2060", - "a|,|a|:", - "a|,̈|a|:", - "a|,|a|'", - "a|,̈|a|'", - "a|,|a|'\u2060", - "a|,̈|a|'\u2060", - "a|,|a|,", - "a|,̈|a|,", - "can't", - "can’t", - "ab\u00adby", - "a|$|-|34,567.14|%|b", - "c.d", - "C.d", - "c.D", - "C.D", - "\u2060|c\u2060a\u2060n\u2060'\u2060t\u2060\u2060", - "\u2060|c\u2060a\u2060n\u2060’\u2060t\u2060\u2060", - "\u2060|a\u2060b\u2060\u00ad\u2060b\u2060y\u2060\u2060", - "\u2060|a\u2060|$\u2060|-\u2060|3\u20604\u2060,\u20605\u20606\u20607\u2060.\u20601\u20604\u2060|%\u2060|b\u2060\u2060", - "\u2060|c\u2060.\u2060d\u2060\u2060", - "\u2060|C\u2060.\u2060d\u2060\u2060", - "\u2060|c\u2060.\u2060D\u2060\u2060", - "\u2060|C\u2060.\u2060D\u2060\u2060", - "a|🇦|b", - "1_a|:|:|a", - "1_a|:|.|a", - "1_a|:|,|a", - "1_a|.|:|a", - "1_a|.|.|a", - "1_a|.|,|a", - "1_a|,|:|a", - "1_a|,|.|a", - "1_a|,|,|a", - "a_a|:|:|1", - "a|:|:|a", - "a_1|:|:|a", - "a_a|:|:|a", - "a_a|:|.|1", - "a|:|.|a", - "a_1|:|.|a", - "a_a|:|.|a", - "a_a|:|,|1", - "a|:|,|a", - "a_1|:|,|a", - "a_a|:|,|a", - "a_a|.|:|1", - "a|.|:|a", - "a_1|.|:|a", - "a_a|.|:|a", - "a_a|.|.|1", - "a|.|.|a", - "a_1|.|.|a", - "a_a|.|.|a", - "a_a|.|,|1", - "a|.|,|a", - "a_1|.|,|a", - "a_a|.|,|a", - "a_a|,|:|1", - "a|,|:|a", - "a_1|,|:|a", - "a_a|,|:|a", - "a_a|,|.|1", - "a|,|.|a", - "a_1|,|.|a", - "a_a|,|.|a", - "a_a|,|,|1", - "a|,|,|a", - "a_1|,|,|a", - "a_a|,|,|a", - } -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/trieval.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/trieval.go deleted file mode 100644 index 988fcb9f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases/trieval.go +++ /dev/null @@ -1,286 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package cases - -// This file contains definitions for interpreting the trie value of the case -// trie generated by "go run gen*.go". It is shared by both the generator -// program and the resultant package. Sharing is achieved by the generator -// copying gen_trieval.go to trieval.go and changing what's above this comment. - -// info holds case information for a single rune. It is the value returned -// by a trie lookup. Most mapping information can be stored in a single 16-bit -// value. If not, for example when a rune is mapped to multiple runes, the value -// stores some basic case data and an index into an array with additional data. -// -// The per-rune values have the following format: -// -// if (exception) { -// 15..5 unsigned exception index -// 4 unused -// } else { -// 15..7 XOR pattern or index to XOR pattern for case mapping -// 6 index: interpret the XOR pattern as an index -// 5..4 CCC: zero (normal or break), above or other -// } -// 3 exception: interpret this value as an exception index -// 2..0 case mode -// -// For the non-exceptional cases, a rune must be either uncased, lowercase or -// uppercase. If the rune is cased, the XOR pattern maps either a lowercase -// rune to uppercase or an uppercase rune to lowercase (applied to the 10 -// least-significant bits of the rune). -// -// See the definitions below for a more detailed description of the various -// bits. -type info uint16 - -const ( - casedMask = 0x0003 - fullCasedMask = 0x0007 - ignorableMask = 0x0006 - ignorableValue = 0x0004 - - exceptionBit = 1 << 3 - exceptionShift = 5 - numExceptionBits = 11 - - xorIndexBit = 1 << 6 - xorShift = 7 - - // There is no mapping if all xor bits and the exception bit are zero. - hasMappingMask = 0xffc0 | exceptionBit -) - -// The case mode bits encodes the case type of a rune. This includes uncased, -// title, upper and lower case and case ignorable. (For a definition of these -// terms see Chapter 3 of The Unicode Standard Core Specification.) In some rare -// cases, a rune can be both cased and case-ignorable. This is encoded by -// cIgnorableCased. A rune of this type is always lower case. Some runes are -// cased while not having a mapping. -// -// A common pattern for scripts in the Unicode standard is for upper and lower -// case runes to alternate for increasing rune values (e.g. the accented Latin -// ranges starting from U+0100 and U+1E00 among others andsome Cyrillic -// characters). We use this property by defining a cXORCase mode, where the case -// mode (always upper or lower case) is derived from the rune value. As the XOR -// pattern for case mappings is often identical for successive runes, using -// cXORCase can result in large series of identical trie values. This, in turn, -// allows us to better compress the trie blocks. -const ( - cUncased info = iota // 000 - cTitle // 001 - cLower // 010 - cUpper // 011 - cIgnorableUncased // 100 - cIgnorableCased // 101 // lower case if mappings exist - cXORCase // 11x // case is cLower | ((rune&1) ^ x) - - maxCaseMode = cUpper -) - -func (c info) isCased() bool { - return c&casedMask != 0 -} - -func (c info) isCaseIgnorable() bool { - return c&ignorableMask == ignorableValue -} - -func (c info) isCaseIgnorableAndNonBreakStarter() bool { - return c&(fullCasedMask|cccMask) == (ignorableValue | cccZero) -} - -func (c info) isNotCasedAndNotCaseIgnorable() bool { - return c&fullCasedMask == 0 -} - -func (c info) isCaseIgnorableAndNotCased() bool { - return c&fullCasedMask == cIgnorableUncased -} - -// The case mapping implementation will need to know about various Canonical -// Combining Class (CCC) values. We encode two of these in the trie value: -// cccZero (0) and cccAbove (230). If the value is cccOther, it means that -// CCC(r) > 0, but not 230. A value of cccBreak means that CCC(r) == 0 and that -// the rune also has the break category Break (see below). -const ( - cccBreak info = iota << 4 - cccZero - cccAbove - cccOther - - cccMask = cccBreak | cccZero | cccAbove | cccOther -) - -func (c info) cccVal() info { - if c&exceptionBit != 0 { - return cccZero - } - return c & cccMask -} - -func (c info) cccType() info { - ccc := c.cccVal() - if ccc <= cccZero { - return cccZero - } - return ccc -} - -const ( - starter = 0 - above = 230 - iotaSubscript = 240 -) - -// TODO: Implement full Unicode breaking algorithm: -// 1) Implement breaking in separate package. -// 2) Use the breaker here. -// 3) Compare table size and performance of using the more generic breaker. -// -// Note that we can extend the current algorithm to be much more accurate. This -// only makes sense, though, if the performance and/or space penalty of using -// the generic breaker is big. Extra data will only be needed for non-cased -// runes, which means there are sufficient bits left in the caseType. -// Also note that the standard breaking algorithm doesn't always make sense -// for title casing. For example, a4a -> A4a, but a"4a -> A"4A (where " stands -// for modifier \u0308). -// ICU prohibits breaking in such cases as well. - -// For the purpose of title casing we use an approximation of the Unicode Word -// Breaking algorithm defined in Annex #29: -// http://www.unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table. -// -// For our approximation, we group the Word Break types into the following -// categories, with associated rules: -// -// 1) Letter: -// ALetter, Hebrew_Letter, Numeric, ExtendNumLet, Extend. -// Rule: Never break between consecutive runes of this category. -// -// 2) Mid: -// Format, MidLetter, MidNumLet, Single_Quote. -// (Cf. case-ignorable: MidLetter, MidNumLet or cat is Mn, Me, Cf, Lm or Sk). -// Rule: Don't break between Letter and Mid, but break between two Mids. -// -// 3) Break: -// Any other category, including NewLine, CR, LF and Double_Quote. These -// categories should always result in a break between two cased letters. -// Rule: Always break. -// -// Note 1: the Katakana and MidNum categories can, in esoteric cases, result in -// preventing a break between two cased letters. For now we will ignore this -// (e.g. [ALetter] [ExtendNumLet] [Katakana] [ExtendNumLet] [ALetter] and -// [ALetter] [Numeric] [MidNum] [Numeric] [ALetter].) -// -// Note 2: the rule for Mid is very approximate, but works in most cases. To -// improve, we could store the categories in the trie value and use a FA to -// manage breaks. See TODO comment above. -// -// Note 3: according to the spec, it is possible for the Extend category to -// introduce breaks between other categories grouped in Letter. However, this -// is undesirable for our purposes. ICU prevents breaks in such cases as well. - -// isBreak returns whether this rune should introduce a break. -func (c info) isBreak() bool { - return c.cccVal() == cccBreak -} - -// isLetter returns whether the rune is of break type ALetter, Hebrew_Letter, -// Numeric, ExtendNumLet, or Extend. -func (c info) isLetter() bool { - ccc := c.cccVal() - if ccc == cccZero { - return !c.isCaseIgnorable() - } - return ccc != cccBreak -} - -// The exceptions slice holds data that does not fit in a normal info entry. -// The entry is pointed to by the exception index in an entry. It has the -// following format: -// -// Header: -// byte 0: // TODO: case folding not implemented yet. -// 7 conditional case folding -// 6 conditional special casing -// 6..3 length of case folding -// 2..0 length of closure mapping (up to 7). -// -// byte 1: -// 7..6 unused -// 5..3 length of 1st mapping of case type -// 2..0 length of 2nd mapping of case type -// -// case 1st 2nd -// lower -> upper, title -// upper -> lower, title -// title -> lower, upper -// -// Lengths with the value 0x7 indicate no value and implies no change. -// A length of 0 indicates a mapping to zero-length string. -// -// Body bytes: -// lowercase mapping bytes -// uppercase mapping bytes -// titlecase mapping bytes -// case folding bytes -// closure mapping bytes -// -// Fallbacks: -// missing fold -> lower -// missing title -> upper -// all missing -> original rune -// -// exceptions starts with a dummy byte to enforce that there is no zero index -// value. -const ( - lengthMask = 0x07 - lengthBits = 3 - noChange = 0 -) - -// References to generated trie. - -var trie = newCaseTrie(0) - -var sparse = sparseBlocks{ - values: sparseValues[:], - offsets: sparseOffsets[:], -} - -// Sparse block lookup code. - -// valueRange is an entry in a sparse block. -type valueRange struct { - value uint16 - lo, hi byte -} - -type sparseBlocks struct { - values []valueRange - offsets []uint16 -} - -// lookup returns the value from values block n for byte b using binary search. -func (s *sparseBlocks) lookup(n uint32, b byte) uint16 { - lo := s.offsets[n] - hi := s.offsets[n+1] - for lo < hi { - m := lo + (hi-lo)/2 - r := s.values[m] - if r.lo <= b && b <= r.hi { - return r.value - } - if b < r.lo { - hi = m - } else { - lo = m + 1 - } - } - return 0 -} - -// lastRuneForTesting is the last rune used for testing. Everything after this -// is boring. -const lastRuneForTesting = rune(0x1FFFF) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/base.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/base.go deleted file mode 100644 index 21821791..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/base.go +++ /dev/null @@ -1,110 +0,0 @@ -// 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 cldr provides a parser for LDML and related XML formats. -// This package is inteded to be used by the table generation tools -// for the various internationalization-related packages. -// As the XML types are generated from the CLDR DTD, and as the CLDR standard -// is periodically amended, this package may change considerably over time. -// This mostly means that data may appear and disappear between versions. -// That is, old code should keep compiling for newer versions, but data -// may have moved or changed. -// CLDR version 22 is the first version supported by this package. -// Older versions may not work. -package cldr - -import ( - "encoding/xml" - "regexp" - "strconv" -) - -// Elem is implemented by every XML element. -type Elem interface { - setEnclosing(Elem) - setName(string) - enclosing() Elem - - GetCommon() *Common -} - -type hidden struct { - CharData string `xml:",chardata"` - Alias *struct { - Common - Source string `xml:"source,attr"` - Path string `xml:"path,attr"` - } `xml:"alias"` - Def *struct { - Common - Choice string `xml:"choice,attr,omitempty"` - Type string `xml:"type,attr,omitempty"` - } `xml:"default"` -} - -// Common holds several of the most common attributes and sub elements -// of an XML element. -type Common struct { - XMLName xml.Name - name string - enclElem Elem - Type string `xml:"type,attr,omitempty"` - Reference string `xml:"reference,attr,omitempty"` - Alt string `xml:"alt,attr,omitempty"` - ValidSubLocales string `xml:"validSubLocales,attr,omitempty"` - Draft string `xml:"draft,attr,omitempty"` - hidden -} - -// Default returns the default type to select from the enclosed list -// or "" if no default value is specified. -func (e *Common) Default() string { - if e.Def == nil { - return "" - } - if e.Def.Choice != "" { - return e.Def.Choice - } else if e.Def.Type != "" { - // Type is still used by the default element in collation. - return e.Def.Type - } - return "" -} - -// GetCommon returns e. It is provided such that Common implements Elem. -func (e *Common) GetCommon() *Common { - return e -} - -// Data returns the character data accumulated for this element. -func (e *Common) Data() string { - e.CharData = charRe.ReplaceAllStringFunc(e.CharData, replaceUnicode) - return e.CharData -} - -func (e *Common) setName(s string) { - e.name = s -} - -func (e *Common) enclosing() Elem { - return e.enclElem -} - -func (e *Common) setEnclosing(en Elem) { - e.enclElem = en -} - -// Escape characters that can be escaped without further escaping the string. -var charRe = regexp.MustCompile(`&#x[0-9a-fA-F]*;|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|\\x[0-9a-fA-F]{2}|\\[0-7]{3}|\\[abtnvfr]`) - -// replaceUnicode converts hexadecimal Unicode codepoint notations to a one-rune string. -// It assumes the input string is correctly formatted. -func replaceUnicode(s string) string { - if s[1] == '#' { - r, _ := strconv.ParseInt(s[3:len(s)-1], 16, 32) - return string(r) - } - r, _, _, _ := strconv.UnquoteChar(s, 0) - return string(r) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/cldr.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/cldr.go deleted file mode 100644 index 4ed4d61e..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/cldr.go +++ /dev/null @@ -1,121 +0,0 @@ -// 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. - -//go:generate go run makexml.go -output xml.go - -// Package cldr provides a parser for LDML and related XML formats. -// This package is inteded to be used by the table generation tools -// for the various internationalization-related packages. -// As the XML types are generated from the CLDR DTD, and as the CLDR standard -// is periodically amended, this package may change considerably over time. -// This mostly means that data may appear and disappear between versions. -// That is, old code should keep compiling for newer versions, but data -// may have moved or changed. -// CLDR version 22 is the first version supported by this package. -// Older versions may not work. -package cldr - -import ( - "fmt" - "sort" -) - -// CLDR provides access to parsed data of the Unicode Common Locale Data Repository. -type CLDR struct { - parent map[string][]string - locale map[string]*LDML - resolved map[string]*LDML - bcp47 *LDMLBCP47 - supp *SupplementalData -} - -func makeCLDR() *CLDR { - return &CLDR{ - parent: make(map[string][]string), - locale: make(map[string]*LDML), - resolved: make(map[string]*LDML), - bcp47: &LDMLBCP47{}, - supp: &SupplementalData{}, - } -} - -// BCP47 returns the parsed BCP47 LDML data. If no such data was parsed, nil is returned. -func (cldr *CLDR) BCP47() *LDMLBCP47 { - return nil -} - -// Draft indicates the draft level of an element. -type Draft int - -const ( - Approved Draft = iota - Contributed - Provisional - Unconfirmed -) - -var drafts = []string{"unconfirmed", "provisional", "contributed", "approved", ""} - -// ParseDraft returns the Draft value corresponding to the given string. The -// empty string corresponds to Approved. -func ParseDraft(level string) (Draft, error) { - if level == "" { - return Approved, nil - } - for i, s := range drafts { - if level == s { - return Unconfirmed - Draft(i), nil - } - } - return Approved, fmt.Errorf("cldr: unknown draft level %q", level) -} - -func (d Draft) String() string { - return drafts[len(drafts)-1-int(d)] -} - -// SetDraftLevel sets which draft levels to include in the evaluated LDML. -// Any draft element for which the draft level is higher than lev will be excluded. -// If multiple draft levels are available for a single element, the one with the -// lowest draft level will be selected, unless preferDraft is true, in which case -// the highest draft will be chosen. -// It is assumed that the underlying LDML is canonicalized. -func (cldr *CLDR) SetDraftLevel(lev Draft, preferDraft bool) { - // TODO: implement - cldr.resolved = make(map[string]*LDML) -} - -// RawLDML returns the LDML XML for id in unresolved form. -// id must be one of the strings returned by Locales. -func (cldr *CLDR) RawLDML(loc string) *LDML { - return cldr.locale[loc] -} - -// LDML returns the fully resolved LDML XML for loc, which must be one of -// the strings returned by Locales. -func (cldr *CLDR) LDML(loc string) (*LDML, error) { - return cldr.resolve(loc) -} - -// Supplemental returns the parsed supplemental data. If no such data was parsed, -// nil is returned. -func (cldr *CLDR) Supplemental() *SupplementalData { - return cldr.supp -} - -// Locales returns the locales for which there exist files. -// Valid sublocales for which there is no file are not included. -func (cldr *CLDR) Locales() []string { - loc := []string{} - for l, _ := range cldr.locale { - loc = append(loc, l) - } - sort.Strings(loc) - return loc -} - -// Get fills in the fields of x based on the XPath path. -func Get(e Elem, path string) (res Elem, err error) { - return walkXPath(e, path) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/cldr_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/cldr_test.go deleted file mode 100644 index 951028d7..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/cldr_test.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cldr - -import "testing" - -func TestParseDraft(t *testing.T) { - tests := []struct { - in string - draft Draft - err bool - }{ - {"unconfirmed", Unconfirmed, false}, - {"provisional", Provisional, false}, - {"contributed", Contributed, false}, - {"approved", Approved, false}, - {"", Approved, false}, - {"foo", Approved, true}, - } - for _, tt := range tests { - if d, err := ParseDraft(tt.in); d != tt.draft || (err != nil) != tt.err { - t.Errorf("%q: was %v, %v; want %v, %v", tt.in, d, err != nil, tt.draft, tt.err) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/collate.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/collate.go deleted file mode 100644 index 80ee28d7..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/collate.go +++ /dev/null @@ -1,359 +0,0 @@ -// 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 cldr - -import ( - "bufio" - "encoding/xml" - "errors" - "fmt" - "strconv" - "strings" - "unicode" - "unicode/utf8" -) - -// RuleProcessor can be passed to Collator's Process method, which -// parses the rules and calls the respective method for each rule found. -type RuleProcessor interface { - Reset(anchor string, before int) error - Insert(level int, str, context, extend string) error - Index(id string) -} - -const ( - // cldrIndex is a Unicode-reserved sentinel value used to mark the start - // of a grouping within an index. - // We ignore any rule that starts with this rune. - // See http://unicode.org/reports/tr35/#Collation_Elements for details. - cldrIndex = "\uFDD0" - - // specialAnchor is the format in which to represent logical reset positions, - // such as "first tertiary ignorable". - specialAnchor = "<%s/>" -) - -// Process parses the rules for the tailorings of this collation -// and calls the respective methods of p for each rule found. -func (c Collation) Process(p RuleProcessor) (err error) { - if len(c.Cr) > 0 { - if len(c.Cr) > 1 { - return fmt.Errorf("multiple cr elements, want 0 or 1") - } - return processRules(p, c.Cr[0].Data()) - } - if c.Rules.Any != nil { - return c.processXML(p) - } - return errors.New("no tailoring data") -} - -// processRules parses rules in the Collation Rule Syntax defined in -// http://www.unicode.org/reports/tr35/tr35-collation.html#Collation_Tailorings. -func processRules(p RuleProcessor, s string) (err error) { - chk := func(s string, e error) string { - if err == nil { - err = e - } - return s - } - i := 0 // Save the line number for use after the loop. - scanner := bufio.NewScanner(strings.NewReader(s)) - for ; scanner.Scan() && err == nil; i++ { - for s := skipSpace(scanner.Text()); s != "" && s[0] != '#'; s = skipSpace(s) { - level := 5 - var ch byte - switch ch, s = s[0], s[1:]; ch { - case '&': // followed by <anchor> or '[' <key> ']' - if s = skipSpace(s); consume(&s, '[') { - s = chk(parseSpecialAnchor(p, s)) - } else { - s = chk(parseAnchor(p, 0, s)) - } - case '<': // sort relation '<'{1,4}, optionally followed by '*'. - for level = 1; consume(&s, '<'); level++ { - } - if level > 4 { - err = fmt.Errorf("level %d > 4", level) - } - fallthrough - case '=': // identity relation, optionally followed by *. - if consume(&s, '*') { - s = chk(parseSequence(p, level, s)) - } else { - s = chk(parseOrder(p, level, s)) - } - default: - chk("", fmt.Errorf("illegal operator %q", ch)) - break - } - } - } - if chk("", scanner.Err()); err != nil { - return fmt.Errorf("%d: %v", i, err) - } - return nil -} - -// parseSpecialAnchor parses the anchor syntax which is either of the form -// ['before' <level>] <anchor> -// or -// [<label>] -// The starting should already be consumed. -func parseSpecialAnchor(p RuleProcessor, s string) (tail string, err error) { - i := strings.IndexByte(s, ']') - if i == -1 { - return "", errors.New("unmatched bracket") - } - a := strings.TrimSpace(s[:i]) - s = s[i+1:] - if strings.HasPrefix(a, "before ") { - l, err := strconv.ParseUint(skipSpace(a[len("before "):]), 10, 3) - if err != nil { - return s, err - } - return parseAnchor(p, int(l), s) - } - return s, p.Reset(fmt.Sprintf(specialAnchor, a), 0) -} - -func parseAnchor(p RuleProcessor, level int, s string) (tail string, err error) { - anchor, s, err := scanString(s) - if err != nil { - return s, err - } - return s, p.Reset(anchor, level) -} - -func parseOrder(p RuleProcessor, level int, s string) (tail string, err error) { - var value, context, extend string - if value, s, err = scanString(s); err != nil { - return s, err - } - if strings.HasPrefix(value, cldrIndex) { - p.Index(value[len(cldrIndex):]) - return - } - if consume(&s, '|') { - if context, s, err = scanString(s); err != nil { - return s, errors.New("missing string after context") - } - } - if consume(&s, '/') { - if extend, s, err = scanString(s); err != nil { - return s, errors.New("missing string after extension") - } - } - return s, p.Insert(level, value, context, extend) -} - -// scanString scans a single input string. -func scanString(s string) (str, tail string, err error) { - if s = skipSpace(s); s == "" { - return s, s, errors.New("missing string") - } - buf := [16]byte{} // small but enough to hold most cases. - value := buf[:0] - for s != "" { - if consume(&s, '\'') { - i := strings.IndexByte(s, '\'') - if i == -1 { - return "", "", errors.New(`unmatched single quote`) - } - if i == 0 { - value = append(value, '\'') - } else { - value = append(value, s[:i]...) - } - s = s[i+1:] - continue - } - r, sz := utf8.DecodeRuneInString(s) - if unicode.IsSpace(r) || strings.ContainsRune("&<=#", r) { - break - } - value = append(value, s[:sz]...) - s = s[sz:] - } - return string(value), skipSpace(s), nil -} - -func parseSequence(p RuleProcessor, level int, s string) (tail string, err error) { - if s = skipSpace(s); s == "" { - return s, errors.New("empty sequence") - } - last := rune(0) - for s != "" { - r, sz := utf8.DecodeRuneInString(s) - s = s[sz:] - - if r == '-' { - // We have a range. The first element was already written. - if last == 0 { - return s, errors.New("range without starter value") - } - r, sz = utf8.DecodeRuneInString(s) - s = s[sz:] - if r == utf8.RuneError || r < last { - return s, fmt.Errorf("invalid range %q-%q", last, r) - } - for i := last + 1; i <= r; i++ { - if err := p.Insert(level, string(i), "", ""); err != nil { - return s, err - } - } - last = 0 - continue - } - - if unicode.IsSpace(r) || unicode.IsPunct(r) { - break - } - - // normal case - if err := p.Insert(level, string(r), "", ""); err != nil { - return s, err - } - last = r - } - return s, nil -} - -func skipSpace(s string) string { - return strings.TrimLeftFunc(s, unicode.IsSpace) -} - -// consumes returns whether the next byte is ch. If so, it gobbles it by -// updating s. -func consume(s *string, ch byte) (ok bool) { - if *s == "" || (*s)[0] != ch { - return false - } - *s = (*s)[1:] - return true -} - -// The following code parses Collation rules of CLDR version 24 and before. - -var lmap = map[byte]int{ - 'p': 1, - 's': 2, - 't': 3, - 'i': 5, -} - -type rulesElem struct { - Rules struct { - Common - Any []*struct { - XMLName xml.Name - rule - } `xml:",any"` - } `xml:"rules"` -} - -type rule struct { - Value string `xml:",chardata"` - Before string `xml:"before,attr"` - Any []*struct { - XMLName xml.Name - rule - } `xml:",any"` -} - -var emptyValueError = errors.New("cldr: empty rule value") - -func (r *rule) value() (string, error) { - // Convert hexadecimal Unicode codepoint notation to a string. - s := charRe.ReplaceAllStringFunc(r.Value, replaceUnicode) - r.Value = s - if s == "" { - if len(r.Any) != 1 { - return "", emptyValueError - } - r.Value = fmt.Sprintf(specialAnchor, r.Any[0].XMLName.Local) - r.Any = nil - } else if len(r.Any) != 0 { - return "", fmt.Errorf("cldr: XML elements found in collation rule: %v", r.Any) - } - return r.Value, nil -} - -func (r rule) process(p RuleProcessor, name, context, extend string) error { - v, err := r.value() - if err != nil { - return err - } - switch name { - case "p", "s", "t", "i": - if strings.HasPrefix(v, cldrIndex) { - p.Index(v[len(cldrIndex):]) - return nil - } - if err := p.Insert(lmap[name[0]], v, context, extend); err != nil { - return err - } - case "pc", "sc", "tc", "ic": - level := lmap[name[0]] - for _, s := range v { - if err := p.Insert(level, string(s), context, extend); err != nil { - return err - } - } - default: - return fmt.Errorf("cldr: unsupported tag: %q", name) - } - return nil -} - -// processXML parses the format of CLDR versions 24 and older. -func (c Collation) processXML(p RuleProcessor) (err error) { - // Collation is generated and defined in xml.go. - var v string - for _, r := range c.Rules.Any { - switch r.XMLName.Local { - case "reset": - level := 0 - switch r.Before { - case "primary", "1": - level = 1 - case "secondary", "2": - level = 2 - case "tertiary", "3": - level = 3 - case "": - default: - return fmt.Errorf("cldr: unknown level %q", r.Before) - } - v, err = r.value() - if err == nil { - err = p.Reset(v, level) - } - case "x": - var context, extend string - for _, r1 := range r.Any { - v, err = r1.value() - switch r1.XMLName.Local { - case "context": - context = v - case "extend": - extend = v - } - } - for _, r1 := range r.Any { - if t := r1.XMLName.Local; t == "context" || t == "extend" { - continue - } - r1.rule.process(p, r1.XMLName.Local, context, extend) - } - default: - err = r.rule.process(p, r.XMLName.Local, "", "") - } - if err != nil { - return err - } - } - return nil -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/collate_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/collate_test.go deleted file mode 100644 index f6721639..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/collate_test.go +++ /dev/null @@ -1,275 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cldr - -import ( - "fmt" - "strings" - "testing" -) - -// A recorder implements the RuleProcessor interface, whereby its methods -// simply record the invocations. -type recorder struct { - calls []string -} - -func (r *recorder) Reset(anchor string, before int) error { - if before > 5 { - return fmt.Errorf("before %d > 5", before) - } - r.calls = append(r.calls, fmt.Sprintf("R:%s-%d", anchor, before)) - return nil -} - -func (r *recorder) Insert(level int, str, context, extend string) error { - s := fmt.Sprintf("O:%d:%s", level, str) - if context != "" { - s += "|" + context - } - if extend != "" { - s += "/" + extend - } - r.calls = append(r.calls, s) - return nil -} - -func (r *recorder) Index(id string) { - r.calls = append(r.calls, fmt.Sprintf("I:%s", id)) -} - -func (r *recorder) Error(err error) { - r.calls = append(r.calls, fmt.Sprintf("E:%v", err)) -} - -func TestRuleProcessor(t *testing.T) { - for _, tt := range []struct { - desc string - in string - out string - }{ - {desc: "empty"}, - {desc: "whitespace and comments only", - in: ` - - - # adsfads -# adfadf - `, - }, - { - desc: "reset anchor", - in: ` - & a - &b # - & [ before 3 ] c - & [before 4] d & ee - & [first tertiary ignorable] - &'g' - & 'h''h'h'h' - &'\u0069' # LATIN SMALL LETTER I - `, - out: ` - R:a-0 - R:b-0 - R:c-3 - R:d-4 - R:ee-0 - R:<first tertiary ignorable/>-0 - R:g-0 - R:hhhh-0 - R:i-0 - `, - }, - { - desc: "ordering", - in: ` - & 0 - < 1 <<''2# -<<< 3'3''33'3# - <<<<4 - = 5 << 6 | s - <<<< 7 / z - << 8'' | s / ch - `, - out: ` - R:0-0 - O:1:1 - O:2:'2 - O:3:33333 - O:4:4 - O:5:5 - O:2:6|s - O:4:7/z - O:2:8'|s/ch - `, - }, - { - desc: "index", - in: "< '\ufdd0'A", - out: "I:A", - }, - { - desc: "sequence", - in: ` - & 0 - <<* 1234 - <* a-cde-f - =* q-q - `, - out: ` - R:0-0 - O:2:1 - O:2:2 - O:2:3 - O:2:4 - O:1:a - O:1:b - O:1:c - O:1:d - O:1:e - O:1:f - O:5:q - `, - }, - { - desc: "compact", - in: "&B<t<<<T<s<<<S<e<<<E", - out: ` - R:B-0 - O:1:t - O:3:T - O:1:s - O:3:S - O:1:e - O:3:E - `, - }, - { - desc: "err operator", - in: "a", - out: "E:1: illegal operator 'a'", - }, - { - desc: "err line number", - in: `& a - << b - a`, - out: ` - R:a-0 - O:2:b - E:3: illegal operator 'a'`, - }, - { - desc: "err empty anchor", - in: " & ", - out: "E:1: missing string", - }, - { - desc: "err anchor invalid special 1", - in: " & [ foo ", - out: "E:1: unmatched bracket", - }, - { - desc: "err anchor invalid special 2", - in: "&[", - out: "E:1: unmatched bracket", - }, - { - desc: "err anchor invalid before 1", - in: "&[before a]", - out: `E:1: strconv.ParseUint: parsing "a": invalid syntax`, - }, - { - desc: "err anchor invalid before 2", - in: "&[before 12]", - out: `E:1: strconv.ParseUint: parsing "12": value out of range`, - }, - { - desc: "err anchor invalid before 3", - in: "&[before 2]", - out: "E:1: missing string", - }, - { - desc: "err anchor invalid before 4", - in: "&[before 6] a", - out: "E:1: before 6 > 5", - }, - { - desc: "err empty order", - in: " < ", - out: "E:1: missing string", - }, - { - desc: "err empty identity", - in: " = ", - out: "E:1: missing string", - }, - { - desc: "err empty context", - in: " < a | ", - out: "E:1: missing string after context", - }, - { - desc: "err empty extend", - in: " < a / ", - out: "E:1: missing string after extension", - }, - { - desc: "err empty sequence", - in: " <* ", - out: "E:1: empty sequence", - }, - { - desc: "err sequence 1", - in: " <* -a", - out: "E:1: range without starter value", - }, - { - desc: "err sequence 3", - in: " <* a-a-b", - out: `O:1:a - E:1: range without starter value - `, - }, - { - desc: "err sequence 3", - in: " <* b-a", - out: `O:1:b - E:1: invalid range 'b'-'a' - `, - }, - { - desc: "err unmatched quote", - in: " < 'b", - out: ` E:1: unmatched single quote - `, - }, - } { - rec := &recorder{} - err := Collation{ - Cr: []*Common{ - {hidden: hidden{CharData: tt.in}}, - }, - }.Process(rec) - if err != nil { - rec.Error(err) - } - got := rec.calls - want := strings.Split(strings.TrimSpace(tt.out), "\n") - if tt.out == "" { - want = nil - } - if len(got) != len(want) { - t.Errorf("%s: nResults: got %d; want %d", tt.desc, len(got), len(want)) - continue - } - for i, g := range got { - if want := strings.TrimSpace(want[i]); g != want { - t.Errorf("%s:%d: got %q; want %q", tt.desc, i, g, want) - } - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/data_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/data_test.go deleted file mode 100644 index 16621896..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/data_test.go +++ /dev/null @@ -1,186 +0,0 @@ -// 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 cldr - -// This file contains test data. - -import ( - "io" - "strings" -) - -type testLoader struct { -} - -func (t testLoader) Len() int { - return len(testFiles) -} - -func (t testLoader) Path(i int) string { - return testPaths[i] -} - -func (t testLoader) Reader(i int) (io.ReadCloser, error) { - return &reader{*strings.NewReader(testFiles[i])}, nil -} - -// reader adds a dummy Close method to strings.Reader so that it -// satisfies the io.ReadCloser interface. -type reader struct { - strings.Reader -} - -func (r reader) Close() error { - return nil -} - -var ( - testFiles = []string{de_xml, gsw_xml, root_xml} - testPaths = []string{ - "common/main/de.xml", - "common/main/gsw.xml", - "common/main/root.xml", - } -) - -var root_xml = `<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd"> -<ldml> - <identity> - <language type="root"/> - <generation date="now"/> - </identity> - <characters> - <exemplarCharacters>[]</exemplarCharacters> - <exemplarCharacters type="auxiliary">[]</exemplarCharacters> - <exemplarCharacters type="punctuation">[\- †– — … ' ‘ ‚ " “ „ \& #]</exemplarCharacters> - <ellipsis type="final">{0}…</ellipsis> - <ellipsis type="initial">…{0}</ellipsis> - <moreInformation>?</moreInformation> - </characters> - <dates> - <calendars> - <default choice="gregorian"/> - <calendar type="buddhist"> - <months> - <alias source="locale" path="../../calendar[@type='gregorian']/months"/> - </months> - </calendar> - <calendar type="chinese"> - <months> - <alias source="locale" path="../../calendar[@type='gregorian']/months"/> - </months> - </calendar> - <calendar type="gregorian"> - <months> - <default choice="format"/> - <monthContext type="format"> - <default choice="wide"/> - <monthWidth type="narrow"> - <alias source="locale" path="../../monthContext[@type='stand-alone']/monthWidth[@type='narrow']"/> - </monthWidth> - <monthWidth type="wide"> - <month type="1">11</month> - <month type="2">22</month> - <month type="3">33</month> - <month type="4">44</month> - </monthWidth> - </monthContext> - <monthContext type="stand-alone"> - <monthWidth type="narrow"> - <month type="1">1</month> - <month type="2">2</month> - <month type="3">3</month> - <month type="4">4</month> - </monthWidth> - <monthWidth type="wide"> - <alias source="locale" path="../../monthContext[@type='format']/monthWidth[@type='wide']"/> - </monthWidth> - </monthContext> - </months> - </calendar> - </calendars> - </dates> -</ldml> -` - -var de_xml = `<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd"> -<ldml> - <identity> - <language type="de"/> - </identity> - <characters> - <exemplarCharacters>[a ä b c d e ö p q r s ß t u ü v w x y z]</exemplarCharacters> - <exemplarCharacters type="auxiliary">[á à ă]</exemplarCharacters> - <exemplarCharacters type="index">[A B C D E F G H Z]</exemplarCharacters> - <ellipsis type="final">{0} …</ellipsis> - <ellipsis type="initial">… {0}</ellipsis> - <moreInformation>?</moreInformation> - <stopwords> - <stopwordList type="collation" draft="provisional">der die das</stopwordList> - </stopwords> - </characters> - <dates> - <calendars> - <calendar type="buddhist"> - <months> - <monthContext type="format"> - <monthWidth type="narrow"> - <month type="3">BBB</month> - </monthWidth> - <monthWidth type="wide"> - <month type="3">bbb</month> - </monthWidth> - </monthContext> - </months> - </calendar> - <calendar type="gregorian"> - <months> - <monthContext type="format"> - <monthWidth type="narrow"> - <month type="3">M</month> - <month type="4">A</month> - </monthWidth> - <monthWidth type="wide"> - <month type="3">Maerz</month> - <month type="4">April</month> - <month type="5">Mai</month> - </monthWidth> - </monthContext> - <monthContext type="stand-alone"> - <monthWidth type="narrow"> - <month type="3">m</month> - <month type="5">m</month> - </monthWidth> - <monthWidth type="wide"> - <month type="4">april</month> - <month type="5">mai</month> - </monthWidth> - </monthContext> - </months> - </calendar> - </calendars> - </dates> - <posix> - <messages> - <yesstr>yes:y</yesstr> - <nostr>no:n</nostr> - </messages> - </posix> -</ldml> -` - -var gsw_xml = `<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd"> -<ldml> - <identity> - <language type="gsw"/> - </identity> - <posix> - <alias source="de" path="//ldml/posix"/> - </posix> -</ldml> -` diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/decode.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/decode.go deleted file mode 100644 index 0e384e0c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/decode.go +++ /dev/null @@ -1,169 +0,0 @@ -// 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 cldr - -import ( - "archive/zip" - "bytes" - "encoding/xml" - "fmt" - "io" - "io/ioutil" - "log" - "os" - "path/filepath" - "regexp" -) - -// A Decoder loads an archive of CLDR data. -type Decoder struct { - dirFilter []string - sectionFilter []string - loader Loader - cldr *CLDR - curLocale string -} - -// SetSectionFilter takes a list top-level LDML element names to which -// evaluation of LDML should be limited. It automatically calls SetDirFilter. -func (d *Decoder) SetSectionFilter(filter ...string) { - d.sectionFilter = filter - // TODO: automatically set dir filter -} - -// SetDirFilter limits the loading of LDML XML files of the specied directories. -// Note that sections may be split across directories differently for different CLDR versions. -// For more robust code, use SetSectionFilter. -func (d *Decoder) SetDirFilter(dir ...string) { - d.dirFilter = dir -} - -// A Loader provides access to the files of a CLDR archive. -type Loader interface { - Len() int - Path(i int) string - Reader(i int) (io.ReadCloser, error) -} - -var fileRe = regexp.MustCompile(".*/(.*)/(.*)\\.xml") - -// Decode loads and decodes the files represented by l. -func (d *Decoder) Decode(l Loader) (cldr *CLDR, err error) { - d.cldr = makeCLDR() - for i := 0; i < l.Len(); i++ { - fname := l.Path(i) - if m := fileRe.FindStringSubmatch(fname); m != nil { - if len(d.dirFilter) > 0 && !in(d.dirFilter, m[1]) { - continue - } - var r io.Reader - if r, err = l.Reader(i); err == nil { - err = d.decode(m[1], m[2], r) - } - if err != nil { - return nil, err - } - } - } - d.cldr.finalize(d.sectionFilter) - return d.cldr, nil -} - -func (d *Decoder) decode(dir, id string, r io.Reader) error { - var v interface{} - var l *LDML - cldr := d.cldr - switch { - case dir == "supplemental": - v = cldr.supp - case dir == "transforms": - return nil - case dir == "bcp47": - v = cldr.bcp47 - default: - ok := false - if v, ok = cldr.locale[id]; !ok { - l = &LDML{} - v, cldr.locale[id] = l, l - } - } - x := xml.NewDecoder(r) - if err := x.Decode(v); err != nil { - log.Printf("%s/%s: %v", dir, id, err) - return err - } - if l != nil { - if l.Identity == nil { - return fmt.Errorf("%s/%s: missing identity element", dir, id) - } - // TODO: verify when CLDR bug http://unicode.org/cldr/trac/ticket/8970 - // is resolved. - // path := strings.Split(id, "_") - // if lang := l.Identity.Language.Type; lang != path[0] { - // return fmt.Errorf("%s/%s: language was %s; want %s", dir, id, lang, path[0]) - // } - } - return nil -} - -type pathLoader []string - -func makePathLoader(path string) (pl pathLoader, err error) { - err = filepath.Walk(path, func(path string, _ os.FileInfo, err error) error { - pl = append(pl, path) - return err - }) - return pl, err -} - -func (pl pathLoader) Len() int { - return len(pl) -} - -func (pl pathLoader) Path(i int) string { - return pl[i] -} - -func (pl pathLoader) Reader(i int) (io.ReadCloser, error) { - return os.Open(pl[i]) -} - -// DecodePath loads CLDR data from the given path. -func (d *Decoder) DecodePath(path string) (cldr *CLDR, err error) { - loader, err := makePathLoader(path) - if err != nil { - return nil, err - } - return d.Decode(loader) -} - -type zipLoader struct { - r *zip.Reader -} - -func (zl zipLoader) Len() int { - return len(zl.r.File) -} - -func (zl zipLoader) Path(i int) string { - return zl.r.File[i].Name -} - -func (zl zipLoader) Reader(i int) (io.ReadCloser, error) { - return zl.r.File[i].Open() -} - -// DecodeZip loads CLDR data from the zip archive for which r is the source. -func (d *Decoder) DecodeZip(r io.Reader) (cldr *CLDR, err error) { - buffer, err := ioutil.ReadAll(r) - if err != nil { - return nil, err - } - archive, err := zip.NewReader(bytes.NewReader(buffer), int64(len(buffer))) - if err != nil { - return nil, err - } - return d.Decode(zipLoader{archive}) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/examples_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/examples_test.go deleted file mode 100644 index b5538e41..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/examples_test.go +++ /dev/null @@ -1,20 +0,0 @@ -package cldr_test - -import ( - "fmt" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr" -) - -func ExampleSlice() { - var dr *cldr.CLDR // assume this is initalized - - x, _ := dr.LDML("en") - cs := x.Collations.Collation - // remove all but the default - cldr.MakeSlice(&cs).Filter(func(e cldr.Elem) bool { - return e.GetCommon().Type != x.Collations.Default() - }) - for i, c := range cs { - fmt.Println(i, c.Type) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/makexml.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/makexml.go deleted file mode 100644 index 6114d01c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/makexml.go +++ /dev/null @@ -1,400 +0,0 @@ -// 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. - -// +build ignore - -// This tool generates types for the various XML formats of CLDR. -package main - -import ( - "archive/zip" - "bytes" - "encoding/xml" - "flag" - "fmt" - "io" - "io/ioutil" - "log" - "os" - "regexp" - "strings" - - "golang.org/x/text/internal/gen" -) - -var outputFile = flag.String("output", "xml.go", "output file name") - -func main() { - flag.Parse() - - r := gen.OpenCLDRCoreZip() - buffer, err := ioutil.ReadAll(r) - if err != nil { - log.Fatal("Could not read zip file") - } - r.Close() - z, err := zip.NewReader(bytes.NewReader(buffer), int64(len(buffer))) - if err != nil { - log.Fatalf("Could not read zip archive: %v", err) - } - - var buf bytes.Buffer - - version := gen.CLDRVersion() - - for _, dtd := range files { - for _, f := range z.File { - if strings.HasSuffix(f.Name, dtd.file+".dtd") { - r, err := f.Open() - failOnError(err) - - b := makeBuilder(&buf, dtd) - b.parseDTD(r) - b.resolve(b.index[dtd.top[0]]) - b.write() - if b.version != "" && version != b.version { - println(f.Name) - log.Fatalf("main: inconsistent versions: found %s; want %s", b.version, version) - } - break - } - } - } - fmt.Fprintln(&buf, "// Version is the version of CLDR from which the XML definitions are generated.") - fmt.Fprintf(&buf, "const Version = %q\n", version) - - gen.WriteGoFile(*outputFile, "cldr", buf.Bytes()) -} - -func failOnError(err error) { - if err != nil { - log.New(os.Stderr, "", log.Lshortfile).Output(2, err.Error()) - os.Exit(1) - } -} - -// configuration data per DTD type -type dtd struct { - file string // base file name - root string // Go name of the root XML element - top []string // create a different type for this section - - skipElem []string // hard-coded or deprecated elements - skipAttr []string // attributes to exclude - predefined []string // hard-coded elements exist of the form <name>Elem - forceRepeat []string // elements to make slices despite DTD -} - -var files = []dtd{ - { - file: "ldmlBCP47", - root: "LDMLBCP47", - top: []string{"ldmlBCP47"}, - skipElem: []string{ - "cldrVersion", // deprecated, not used - }, - }, - { - file: "ldmlSupplemental", - root: "SupplementalData", - top: []string{"supplementalData"}, - skipElem: []string{ - "cldrVersion", // deprecated, not used - }, - forceRepeat: []string{ - "plurals", // data defined in plurals.xml and ordinals.xml - }, - }, - { - file: "ldml", - root: "LDML", - top: []string{ - "ldml", "collation", "calendar", "timeZoneNames", "localeDisplayNames", "numbers", - }, - skipElem: []string{ - "cp", // not used anywhere - "special", // not used anywhere - "fallback", // deprecated, not used - "alias", // in Common - "default", // in Common - }, - skipAttr: []string{ - "hiraganaQuarternary", // typo in DTD, correct version included as well - }, - predefined: []string{"rules"}, - }, -} - -var comments = map[string]string{ - "ldmlBCP47": ` -// LDMLBCP47 holds information on allowable values for various variables in LDML. -`, - "supplementalData": ` -// SupplementalData holds information relevant for internationalization -// and proper use of CLDR, but that is not contained in the locale hierarchy. -`, - "ldml": ` -// LDML is the top-level type for locale-specific data. -`, - "collation": ` -// Collation contains rules that specify a certain sort-order, -// as a tailoring of the root order. -// The parsed rules are obtained by passing a RuleProcessor to Collation's -// Process method. -`, - "calendar": ` -// Calendar specifies the fields used for formatting and parsing dates and times. -// The month and quarter names are identified numerically, starting at 1. -// The day (of the week) names are identified with short strings, since there is -// no universally-accepted numeric designation. -`, - "dates": ` -// Dates contains information regarding the format and parsing of dates and times. -`, - "localeDisplayNames": ` -// LocaleDisplayNames specifies localized display names for for scripts, languages, -// countries, currencies, and variants. -`, - "numbers": ` -// Numbers supplies information for formatting and parsing numbers and currencies. -`, -} - -type element struct { - name string // XML element name - category string // elements contained by this element - signature string // category + attrKey* - - attr []*attribute // attributes supported by this element. - sub []struct { // parsed and evaluated sub elements of this element. - e *element - repeat bool // true if the element needs to be a slice - } - - resolved bool // prevent multiple resolutions of this element. -} - -type attribute struct { - name string - key string - list []string - - tag string // Go tag -} - -var ( - reHead = regexp.MustCompile(` *(\w+) +([\w\-]+)`) - reAttr = regexp.MustCompile(` *(\w+) *(?:(\w+)|\(([\w\- \|]+)\)) *(?:#([A-Z]*) *(?:\"([\.\d+])\")?)? *("[\w\-:]*")?`) - reElem = regexp.MustCompile(`^ *(EMPTY|ANY|\(.*\)[\*\+\?]?) *$`) - reToken = regexp.MustCompile(`\w\-`) -) - -// builder is used to read in the DTD files from CLDR and generate Go code -// to be used with the encoding/xml package. -type builder struct { - w io.Writer - index map[string]*element - elem []*element - info dtd - version string -} - -func makeBuilder(w io.Writer, d dtd) builder { - return builder{ - w: w, - index: make(map[string]*element), - elem: []*element{}, - info: d, - } -} - -// parseDTD parses a DTD file. -func (b *builder) parseDTD(r io.Reader) { - for d := xml.NewDecoder(r); ; { - t, err := d.Token() - if t == nil { - break - } - failOnError(err) - dir, ok := t.(xml.Directive) - if !ok { - continue - } - m := reHead.FindSubmatch(dir) - dir = dir[len(m[0]):] - ename := string(m[2]) - el, elementFound := b.index[ename] - switch string(m[1]) { - case "ELEMENT": - if elementFound { - log.Fatal("parseDTD: duplicate entry for element %q", ename) - } - m := reElem.FindSubmatch(dir) - if m == nil { - log.Fatalf("parseDTD: invalid element %q", string(dir)) - } - if len(m[0]) != len(dir) { - log.Fatal("parseDTD: invalid element %q", string(dir), len(dir), len(m[0]), string(m[0])) - } - s := string(m[1]) - el = &element{ - name: ename, - category: s, - } - b.index[ename] = el - case "ATTLIST": - if !elementFound { - log.Fatalf("parseDTD: unknown element %q", ename) - } - s := string(dir) - m := reAttr.FindStringSubmatch(s) - if m == nil { - log.Fatal(fmt.Errorf("parseDTD: invalid attribute %q", string(dir))) - } - if m[4] == "FIXED" { - b.version = m[5] - } else { - switch m[1] { - case "draft", "references", "alt", "validSubLocales", "standard" /* in Common */ : - case "type", "choice": - default: - el.attr = append(el.attr, &attribute{ - name: m[1], - key: s, - list: reToken.FindAllString(m[3], -1), - }) - el.signature = fmt.Sprintf("%s=%s+%s", el.signature, m[1], m[2]) - } - } - } - } -} - -var reCat = regexp.MustCompile(`[ ,\|]*(?:(\(|\)|\#?[\w_-]+)([\*\+\?]?))?`) - -// resolve takes a parsed element and converts it into structured data -// that can be used to generate the XML code. -func (b *builder) resolve(e *element) { - if e.resolved { - return - } - b.elem = append(b.elem, e) - e.resolved = true - s := e.category - found := make(map[string]bool) - sequenceStart := []int{} - for len(s) > 0 { - m := reCat.FindStringSubmatch(s) - if m == nil { - log.Fatalf("%s: invalid category string %q", e.name, s) - } - repeat := m[2] == "*" || m[2] == "+" || in(b.info.forceRepeat, m[1]) - switch m[1] { - case "": - case "(": - sequenceStart = append(sequenceStart, len(e.sub)) - case ")": - if len(sequenceStart) == 0 { - log.Fatalf("%s: unmatched closing parenthesis", e.name) - } - for i := sequenceStart[len(sequenceStart)-1]; i < len(e.sub); i++ { - e.sub[i].repeat = e.sub[i].repeat || repeat - } - sequenceStart = sequenceStart[:len(sequenceStart)-1] - default: - if in(b.info.skipElem, m[1]) { - } else if sub, ok := b.index[m[1]]; ok { - if !found[sub.name] { - e.sub = append(e.sub, struct { - e *element - repeat bool - }{sub, repeat}) - found[sub.name] = true - b.resolve(sub) - } - } else if m[1] == "#PCDATA" || m[1] == "ANY" { - } else if m[1] != "EMPTY" { - log.Fatalf("resolve:%s: element %q not found", e.name, m[1]) - } - } - s = s[len(m[0]):] - } -} - -// return true if s is contained in set. -func in(set []string, s string) bool { - for _, v := range set { - if v == s { - return true - } - } - return false -} - -var repl = strings.NewReplacer("-", " ", "_", " ") - -// title puts the first character or each character following '_' in title case and -// removes all occurrences of '_'. -func title(s string) string { - return strings.Replace(strings.Title(repl.Replace(s)), " ", "", -1) -} - -// writeElem generates Go code for a single element, recursively. -func (b *builder) writeElem(tab int, e *element) { - p := func(f string, x ...interface{}) { - f = strings.Replace(f, "\n", "\n"+strings.Repeat("\t", tab), -1) - fmt.Fprintf(b.w, f, x...) - } - if len(e.sub) == 0 && len(e.attr) == 0 { - p("Common") - return - } - p("struct {") - tab++ - p("\nCommon") - for _, attr := range e.attr { - if !in(b.info.skipAttr, attr.name) { - p("\n%s string `xml:\"%s,attr\"`", title(attr.name), attr.name) - } - } - for _, sub := range e.sub { - if in(b.info.predefined, sub.e.name) { - p("\n%sElem", sub.e.name) - continue - } - if in(b.info.skipElem, sub.e.name) { - continue - } - p("\n%s ", title(sub.e.name)) - if sub.repeat { - p("[]") - } - p("*") - if in(b.info.top, sub.e.name) { - p(title(sub.e.name)) - } else { - b.writeElem(tab, sub.e) - } - p(" `xml:\"%s\"`", sub.e.name) - } - tab-- - p("\n}") -} - -// write generates the Go XML code. -func (b *builder) write() { - for i, name := range b.info.top { - e := b.index[name] - if e != nil { - fmt.Fprintf(b.w, comments[name]) - name := title(e.name) - if i == 0 { - name = b.info.root - } - fmt.Fprintf(b.w, "type %s ", name) - b.writeElem(0, e) - fmt.Fprint(b.w, "\n") - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/resolve.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/resolve.go deleted file mode 100644 index 691b5903..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/resolve.go +++ /dev/null @@ -1,602 +0,0 @@ -// 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 cldr - -// This file implements the various inheritance constructs defined by LDML. -// See http://www.unicode.org/reports/tr35/#Inheritance_and_Validity -// for more details. - -import ( - "fmt" - "log" - "reflect" - "regexp" - "sort" - "strings" -) - -// fieldIter iterates over fields in a struct. It includes -// fields of embedded structs. -type fieldIter struct { - v reflect.Value - index, n []int -} - -func iter(v reflect.Value) fieldIter { - if v.Kind() != reflect.Struct { - log.Panicf("value %v must be a struct", v) - } - i := fieldIter{ - v: v, - index: []int{0}, - n: []int{v.NumField()}, - } - i.descent() - return i -} - -func (i *fieldIter) descent() { - for f := i.field(); f.Anonymous && f.Type.NumField() > 0; f = i.field() { - i.index = append(i.index, 0) - i.n = append(i.n, f.Type.NumField()) - } -} - -func (i *fieldIter) done() bool { - return len(i.index) == 1 && i.index[0] >= i.n[0] -} - -func skip(f reflect.StructField) bool { - return !f.Anonymous && (f.Name[0] < 'A' || f.Name[0] > 'Z') -} - -func (i *fieldIter) next() { - for { - k := len(i.index) - 1 - i.index[k]++ - if i.index[k] < i.n[k] { - if !skip(i.field()) { - break - } - } else { - if k == 0 { - return - } - i.index = i.index[:k] - i.n = i.n[:k] - } - } - i.descent() -} - -func (i *fieldIter) value() reflect.Value { - return i.v.FieldByIndex(i.index) -} - -func (i *fieldIter) field() reflect.StructField { - return i.v.Type().FieldByIndex(i.index) -} - -type visitor func(v reflect.Value) error - -var stopDescent = fmt.Errorf("do not recurse") - -func (f visitor) visit(x interface{}) error { - return f.visitRec(reflect.ValueOf(x)) -} - -// visit recursively calls f on all nodes in v. -func (f visitor) visitRec(v reflect.Value) error { - if v.Kind() == reflect.Ptr { - if v.IsNil() { - return nil - } - return f.visitRec(v.Elem()) - } - if err := f(v); err != nil { - if err == stopDescent { - return nil - } - return err - } - switch v.Kind() { - case reflect.Struct: - for i := iter(v); !i.done(); i.next() { - if err := f.visitRec(i.value()); err != nil { - return err - } - } - case reflect.Slice: - for i := 0; i < v.Len(); i++ { - if err := f.visitRec(v.Index(i)); err != nil { - return err - } - } - } - return nil -} - -// getPath is used for error reporting purposes only. -func getPath(e Elem) string { - if e == nil { - return "<nil>" - } - if e.enclosing() == nil { - return e.GetCommon().name - } - if e.GetCommon().Type == "" { - return fmt.Sprintf("%s.%s", getPath(e.enclosing()), e.GetCommon().name) - } - return fmt.Sprintf("%s.%s[type=%s]", getPath(e.enclosing()), e.GetCommon().name, e.GetCommon().Type) -} - -// xmlName returns the xml name of the element or attribute -func xmlName(f reflect.StructField) (name string, attr bool) { - tags := strings.Split(f.Tag.Get("xml"), ",") - for _, s := range tags { - attr = attr || s == "attr" - } - return tags[0], attr -} - -func findField(v reflect.Value, key string) (reflect.Value, error) { - v = reflect.Indirect(v) - for i := iter(v); !i.done(); i.next() { - if n, _ := xmlName(i.field()); n == key { - return i.value(), nil - } - } - return reflect.Value{}, fmt.Errorf("cldr: no field %q in element %#v", key, v.Interface()) -} - -var xpathPart = regexp.MustCompile(`(\pL+)(?:\[@(\pL+)='([\w-]+)'\])?`) - -func walkXPath(e Elem, path string) (res Elem, err error) { - for _, c := range strings.Split(path, "/") { - if c == ".." { - if e = e.enclosing(); e == nil { - panic("path ..") - return nil, fmt.Errorf(`cldr: ".." moves past root in path %q`, path) - } - continue - } else if c == "" { - continue - } - m := xpathPart.FindStringSubmatch(c) - if len(m) == 0 || len(m[0]) != len(c) { - return nil, fmt.Errorf("cldr: syntax error in path component %q", c) - } - v, err := findField(reflect.ValueOf(e), m[1]) - if err != nil { - return nil, err - } - switch v.Kind() { - case reflect.Slice: - i := 0 - if m[2] != "" || v.Len() > 1 { - if m[2] == "" { - m[2] = "type" - if m[3] = e.GetCommon().Default(); m[3] == "" { - return nil, fmt.Errorf("cldr: type selector or default value needed for element %s", m[1]) - } - } - for ; i < v.Len(); i++ { - vi := v.Index(i) - key, err := findField(vi.Elem(), m[2]) - if err != nil { - return nil, err - } - key = reflect.Indirect(key) - if key.Kind() == reflect.String && key.String() == m[3] { - break - } - } - } - if i == v.Len() || v.Index(i).IsNil() { - return nil, fmt.Errorf("no %s found with %s==%s", m[1], m[2], m[3]) - } - e = v.Index(i).Interface().(Elem) - case reflect.Ptr: - if v.IsNil() { - return nil, fmt.Errorf("cldr: element %q not found within element %q", m[1], e.GetCommon().name) - } - var ok bool - if e, ok = v.Interface().(Elem); !ok { - return nil, fmt.Errorf("cldr: %q is not an XML element", m[1]) - } else if m[2] != "" || m[3] != "" { - return nil, fmt.Errorf("cldr: no type selector allowed for element %s", m[1]) - } - default: - return nil, fmt.Errorf("cldr: %q is not an XML element", m[1]) - } - } - return e, nil -} - -const absPrefix = "//ldml/" - -func (cldr *CLDR) resolveAlias(e Elem, src, path string) (res Elem, err error) { - if src != "locale" { - if !strings.HasPrefix(path, absPrefix) { - return nil, fmt.Errorf("cldr: expected absolute path, found %q", path) - } - path = path[len(absPrefix):] - if e, err = cldr.resolve(src); err != nil { - return nil, err - } - } - return walkXPath(e, path) -} - -func (cldr *CLDR) resolveAndMergeAlias(e Elem) error { - alias := e.GetCommon().Alias - if alias == nil { - return nil - } - a, err := cldr.resolveAlias(e, alias.Source, alias.Path) - if err != nil { - return fmt.Errorf("%v: error evaluating path %q: %v", getPath(e), alias.Path, err) - } - // Ensure alias node was already evaluated. TODO: avoid double evaluation. - err = cldr.resolveAndMergeAlias(a) - v := reflect.ValueOf(e).Elem() - for i := iter(reflect.ValueOf(a).Elem()); !i.done(); i.next() { - if vv := i.value(); vv.Kind() != reflect.Ptr || !vv.IsNil() { - if _, attr := xmlName(i.field()); !attr { - v.FieldByIndex(i.index).Set(vv) - } - } - } - return err -} - -func (cldr *CLDR) aliasResolver() visitor { - return func(v reflect.Value) (err error) { - if e, ok := v.Addr().Interface().(Elem); ok { - err = cldr.resolveAndMergeAlias(e) - if err == nil && blocking[e.GetCommon().name] { - return stopDescent - } - } - return err - } -} - -// elements within blocking elements do not inherit. -// Taken from CLDR's supplementalMetaData.xml. -var blocking = map[string]bool{ - "identity": true, - "supplementalData": true, - "cldrTest": true, - "collation": true, - "transform": true, -} - -// Distinguishing attributes affect inheritance; two elements with different -// distinguishing attributes are treated as different for purposes of inheritance, -// except when such attributes occur in the indicated elements. -// Taken from CLDR's supplementalMetaData.xml. -var distinguishing = map[string][]string{ - "key": nil, - "request_id": nil, - "id": nil, - "registry": nil, - "alt": nil, - "iso4217": nil, - "iso3166": nil, - "mzone": nil, - "from": nil, - "to": nil, - "type": []string{ - "abbreviationFallback", - "default", - "mapping", - "measurementSystem", - "preferenceOrdering", - }, - "numberSystem": nil, -} - -func in(set []string, s string) bool { - for _, v := range set { - if v == s { - return true - } - } - return false -} - -// attrKey computes a key based on the distinguishable attributes of -// an element and it's values. -func attrKey(v reflect.Value, exclude ...string) string { - parts := []string{} - ename := v.Interface().(Elem).GetCommon().name - v = v.Elem() - for i := iter(v); !i.done(); i.next() { - if name, attr := xmlName(i.field()); attr { - if except, ok := distinguishing[name]; ok && !in(exclude, name) && !in(except, ename) { - v := i.value() - if v.Kind() == reflect.Ptr { - v = v.Elem() - } - if v.IsValid() { - parts = append(parts, fmt.Sprintf("%s=%s", name, v.String())) - } - } - } - } - sort.Strings(parts) - return strings.Join(parts, ";") -} - -// Key returns a key for e derived from all distinguishing attributes -// except those specified by exclude. -func Key(e Elem, exclude ...string) string { - return attrKey(reflect.ValueOf(e), exclude...) -} - -// linkEnclosing sets the enclosing element as well as the name -// for all sub-elements of child, recursively. -func linkEnclosing(parent, child Elem) { - child.setEnclosing(parent) - v := reflect.ValueOf(child).Elem() - for i := iter(v); !i.done(); i.next() { - vf := i.value() - if vf.Kind() == reflect.Slice { - for j := 0; j < vf.Len(); j++ { - linkEnclosing(child, vf.Index(j).Interface().(Elem)) - } - } else if vf.Kind() == reflect.Ptr && !vf.IsNil() && vf.Elem().Kind() == reflect.Struct { - linkEnclosing(child, vf.Interface().(Elem)) - } - } -} - -func setNames(e Elem, name string) { - e.setName(name) - v := reflect.ValueOf(e).Elem() - for i := iter(v); !i.done(); i.next() { - vf := i.value() - name, _ = xmlName(i.field()) - if vf.Kind() == reflect.Slice { - for j := 0; j < vf.Len(); j++ { - setNames(vf.Index(j).Interface().(Elem), name) - } - } else if vf.Kind() == reflect.Ptr && !vf.IsNil() && vf.Elem().Kind() == reflect.Struct { - setNames(vf.Interface().(Elem), name) - } - } -} - -// deepCopy copies elements of v recursively. All elements of v that may -// be modified by inheritance are explicitly copied. -func deepCopy(v reflect.Value) reflect.Value { - switch v.Kind() { - case reflect.Ptr: - if v.IsNil() || v.Elem().Kind() != reflect.Struct { - return v - } - nv := reflect.New(v.Elem().Type()) - nv.Elem().Set(v.Elem()) - deepCopyRec(nv.Elem(), v.Elem()) - return nv - case reflect.Slice: - nv := reflect.MakeSlice(v.Type(), v.Len(), v.Len()) - for i := 0; i < v.Len(); i++ { - deepCopyRec(nv.Index(i), v.Index(i)) - } - return nv - } - panic("deepCopy: must be called with pointer or slice") -} - -// deepCopyRec is only called by deepCopy. -func deepCopyRec(nv, v reflect.Value) { - if v.Kind() == reflect.Struct { - t := v.Type() - for i := 0; i < v.NumField(); i++ { - if name, attr := xmlName(t.Field(i)); name != "" && !attr { - deepCopyRec(nv.Field(i), v.Field(i)) - } - } - } else { - nv.Set(deepCopy(v)) - } -} - -// newNode is used to insert a missing node during inheritance. -func (cldr *CLDR) newNode(v, enc reflect.Value) reflect.Value { - n := reflect.New(v.Type()) - for i := iter(v); !i.done(); i.next() { - if name, attr := xmlName(i.field()); name == "" || attr { - n.Elem().FieldByIndex(i.index).Set(i.value()) - } - } - n.Interface().(Elem).GetCommon().setEnclosing(enc.Addr().Interface().(Elem)) - return n -} - -// v, parent must be pointers to struct -func (cldr *CLDR) inheritFields(v, parent reflect.Value) (res reflect.Value, err error) { - t := v.Type() - nv := reflect.New(t) - nv.Elem().Set(v) - for i := iter(v); !i.done(); i.next() { - vf := i.value() - f := i.field() - name, attr := xmlName(f) - if name == "" || attr { - continue - } - pf := parent.FieldByIndex(i.index) - if blocking[name] { - if vf.IsNil() { - vf = pf - } - nv.Elem().FieldByIndex(i.index).Set(deepCopy(vf)) - continue - } - switch f.Type.Kind() { - case reflect.Ptr: - if f.Type.Elem().Kind() == reflect.Struct { - if !vf.IsNil() { - if vf, err = cldr.inheritStructPtr(vf, pf); err != nil { - return reflect.Value{}, err - } - vf.Interface().(Elem).setEnclosing(nv.Interface().(Elem)) - nv.Elem().FieldByIndex(i.index).Set(vf) - } else if !pf.IsNil() { - n := cldr.newNode(pf.Elem(), v) - if vf, err = cldr.inheritStructPtr(n, pf); err != nil { - return reflect.Value{}, err - } - vf.Interface().(Elem).setEnclosing(nv.Interface().(Elem)) - nv.Elem().FieldByIndex(i.index).Set(vf) - } - } - case reflect.Slice: - vf, err := cldr.inheritSlice(nv.Elem(), vf, pf) - if err != nil { - return reflect.Zero(t), err - } - nv.Elem().FieldByIndex(i.index).Set(vf) - } - } - return nv, nil -} - -func root(e Elem) *LDML { - for ; e.enclosing() != nil; e = e.enclosing() { - } - return e.(*LDML) -} - -// inheritStructPtr first merges possible aliases in with v and then inherits -// any underspecified elements from parent. -func (cldr *CLDR) inheritStructPtr(v, parent reflect.Value) (r reflect.Value, err error) { - if !v.IsNil() { - e := v.Interface().(Elem).GetCommon() - alias := e.Alias - if alias == nil && !parent.IsNil() { - alias = parent.Interface().(Elem).GetCommon().Alias - } - if alias != nil { - a, err := cldr.resolveAlias(v.Interface().(Elem), alias.Source, alias.Path) - if a != nil { - if v, err = cldr.inheritFields(v.Elem(), reflect.ValueOf(a).Elem()); err != nil { - return reflect.Value{}, err - } - } - } - if !parent.IsNil() { - return cldr.inheritFields(v.Elem(), parent.Elem()) - } - } else if parent.IsNil() { - panic("should not reach here") - } - return v, nil -} - -// Must be slice of struct pointers. -func (cldr *CLDR) inheritSlice(enc, v, parent reflect.Value) (res reflect.Value, err error) { - t := v.Type() - index := make(map[string]reflect.Value) - if !v.IsNil() { - for i := 0; i < v.Len(); i++ { - vi := v.Index(i) - key := attrKey(vi) - index[key] = vi - } - } - if !parent.IsNil() { - for i := 0; i < parent.Len(); i++ { - vi := parent.Index(i) - key := attrKey(vi) - if w, ok := index[key]; ok { - index[key], err = cldr.inheritStructPtr(w, vi) - } else { - n := cldr.newNode(vi.Elem(), enc) - index[key], err = cldr.inheritStructPtr(n, vi) - } - index[key].Interface().(Elem).setEnclosing(enc.Addr().Interface().(Elem)) - if err != nil { - return v, err - } - } - } - keys := make([]string, 0, len(index)) - for k, _ := range index { - keys = append(keys, k) - } - sort.Strings(keys) - sl := reflect.MakeSlice(t, len(index), len(index)) - for i, k := range keys { - sl.Index(i).Set(index[k]) - } - return sl, nil -} - -func parentLocale(loc string) string { - parts := strings.Split(loc, "_") - if len(parts) == 1 { - return "root" - } - parts = parts[:len(parts)-1] - key := strings.Join(parts, "_") - return key -} - -func (cldr *CLDR) resolve(loc string) (res *LDML, err error) { - if r := cldr.resolved[loc]; r != nil { - return r, nil - } - x := cldr.RawLDML(loc) - if x == nil { - return nil, fmt.Errorf("cldr: unknown locale %q", loc) - } - var v reflect.Value - if loc == "root" { - x = deepCopy(reflect.ValueOf(x)).Interface().(*LDML) - linkEnclosing(nil, x) - err = cldr.aliasResolver().visit(x) - } else { - key := parentLocale(loc) - var parent *LDML - for ; cldr.locale[key] == nil; key = parentLocale(key) { - } - if parent, err = cldr.resolve(key); err != nil { - return nil, err - } - v, err = cldr.inheritFields(reflect.ValueOf(x).Elem(), reflect.ValueOf(parent).Elem()) - x = v.Interface().(*LDML) - linkEnclosing(nil, x) - } - if err != nil { - return nil, err - } - cldr.resolved[loc] = x - return x, err -} - -// finalize finalizes the initialization of the raw LDML structs. It also -// removed unwanted fields, as specified by filter, so that they will not -// be unnecessarily evaluated. -func (cldr *CLDR) finalize(filter []string) { - for _, x := range cldr.locale { - if filter != nil { - v := reflect.ValueOf(x).Elem() - t := v.Type() - for i := 0; i < v.NumField(); i++ { - f := t.Field(i) - name, _ := xmlName(f) - if name != "" && name != "identity" && !in(filter, name) { - v.Field(i).Set(reflect.Zero(f.Type)) - } - } - } - linkEnclosing(nil, x) // for resolving aliases and paths - setNames(x, "ldml") - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/resolve_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/resolve_test.go deleted file mode 100644 index 7b19cef8..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/resolve_test.go +++ /dev/null @@ -1,368 +0,0 @@ -package cldr - -import ( - "fmt" - "log" - "reflect" - "testing" -) - -func failOnError(err error) { - if err != nil { - log.Panic(err) - } -} - -func data() *CLDR { - d := Decoder{} - data, err := d.Decode(testLoader{}) - failOnError(err) - return data -} - -type h struct { - A string `xml:"ha,attr"` - E string `xml:"he"` - D string `xml:",chardata"` - X string -} - -type fieldTest struct { - Common - To string `xml:"to,attr"` - Key string `xml:"key,attr"` - E string `xml:"e"` - D string `xml:",chardata"` - X string - h -} - -var testStruct = fieldTest{ - Common: Common{ - name: "mapping", // exclude "type" as distinguising attribute - Type: "foo", - Alt: "foo", - }, - To: "nyc", - Key: "k", - E: "E", - D: "D", - h: h{ - A: "A", - E: "E", - D: "D", - }, -} - -func TestIter(t *testing.T) { - tests := map[string]string{ - "Type": "foo", - "Alt": "foo", - "To": "nyc", - "A": "A", - "Alias": "<nil>", - } - k := 0 - for i := iter(reflect.ValueOf(testStruct)); !i.done(); i.next() { - v := i.value() - if v.Kind() == reflect.Ptr && v.Elem().Kind() == reflect.String { - v = v.Elem() - } - name := i.field().Name - if w, ok := tests[name]; ok { - s := fmt.Sprint(v.Interface()) - if w != s { - t.Errorf("value: found %q; want %q", w, s) - } - delete(tests, name) - } - k++ - } - if len(tests) != 0 { - t.Errorf("missing fields: %v", tests) - } -} - -func TestFindField(t *testing.T) { - tests := []struct { - name, val string - exist bool - }{ - {"type", "foo", true}, - {"alt", "foo", true}, - {"to", "nyc", true}, - {"he", "E", true}, - {"q", "", false}, - } - vf := reflect.ValueOf(testStruct) - for i, tt := range tests { - v, err := findField(vf, tt.name) - if (err == nil) != tt.exist { - t.Errorf("%d: field %q present is %v; want %v", i, tt.name, err == nil, tt.exist) - } else if tt.exist { - if v.Kind() == reflect.Ptr { - if v.IsNil() { - continue - } - v = v.Elem() - } - if v.String() != tt.val { - t.Errorf("%d: found value %q; want %q", i, v.String(), tt.val) - } - } - } -} - -var keyTests = []struct { - exclude []string - key string -}{ - {[]string{}, "alt=foo;key=k;to=nyc"}, - {[]string{"type"}, "alt=foo;key=k;to=nyc"}, - {[]string{"choice"}, "alt=foo;key=k;to=nyc"}, - {[]string{"alt"}, "key=k;to=nyc"}, - {[]string{"a"}, "alt=foo;key=k;to=nyc"}, - {[]string{"to"}, "alt=foo;key=k"}, - {[]string{"alt", "to"}, "key=k"}, - {[]string{"alt", "to", "key"}, ""}, -} - -func TestAttrKey(t *testing.T) { - v := reflect.ValueOf(&testStruct) - for i, tt := range keyTests { - key := attrKey(v, tt.exclude...) - if key != tt.key { - t.Errorf("%d: found %q, want %q", i, key, tt.key) - } - } -} - -func TestKey(t *testing.T) { - for i, tt := range keyTests { - key := Key(&testStruct, tt.exclude...) - if key != tt.key { - t.Errorf("%d: found %q, want %q", i, key, tt.key) - } - } -} - -func testEnclosing(t *testing.T, x *LDML, name string) { - eq := func(a, b Elem, i int) { - for ; i > 0; i-- { - b = b.enclosing() - } - if a != b { - t.Errorf("%s: found path %q, want %q", name, getPath(a), getPath(b)) - } - } - eq(x, x, 0) - eq(x, x.Identity, 1) - eq(x, x.Dates.Calendars, 2) - eq(x, x.Dates.Calendars.Calendar[0], 3) - eq(x, x.Dates.Calendars.Calendar[1], 3) - //eq(x, x.Dates.Calendars.Calendar[0].Months, 4) - eq(x, x.Dates.Calendars.Calendar[1].Months, 4) -} - -func TestEnclosing(t *testing.T) { - testEnclosing(t, data().RawLDML("de"), "enclosing-raw") - de, _ := data().LDML("de") - testEnclosing(t, de, "enclosing") -} - -func TestDeepCopy(t *testing.T) { - eq := func(have, want string) { - if have != want { - t.Errorf("found %q; want %q", have, want) - } - } - x, _ := data().LDML("de") - vc := deepCopy(reflect.ValueOf(x)) - c := vc.Interface().(*LDML) - linkEnclosing(nil, c) - if x == c { - t.Errorf("did not copy") - } - - eq(c.name, "ldml") - eq(c.Dates.name, "dates") - testEnclosing(t, c, "deepCopy") -} - -type getTest struct { - loc string - path string - field string // used in combination with length - data string - altData string // used for buddhist calendar if value != "" - typ string - length int - missing bool -} - -const ( - budMon = "dates/calendars/calendar[@type='buddhist']/months/" - chnMon = "dates/calendars/calendar[@type='chinese']/months/" - greMon = "dates/calendars/calendar[@type='gregorian']/months/" -) - -func monthVal(path, context, width string, month int) string { - const format = "%s/monthContext[@type='%s']/monthWidth[@type='%s']/month[@type='%d']" - return fmt.Sprintf(format, path, context, width, month) -} - -var rootGetTests = []getTest{ - {loc: "root", path: "identity/language", typ: "root"}, - {loc: "root", path: "characters/moreInformation", data: "?"}, - {loc: "root", path: "characters", field: "exemplarCharacters", length: 3}, - {loc: "root", path: greMon, field: "monthContext", length: 2}, - {loc: "root", path: greMon + "monthContext[@type='format']/monthWidth[@type='narrow']", field: "month", length: 4}, - {loc: "root", path: greMon + "monthContext[@type='stand-alone']/monthWidth[@type='wide']", field: "month", length: 4}, - // unescaping character data - {loc: "root", path: "characters/exemplarCharacters[@type='punctuation']", data: `[\- †– — … ' ‘ ‚ " “ „ \& #]`}, - // default resolution - {loc: "root", path: "dates/calendars/calendar", typ: "gregorian"}, - // alias resolution - {loc: "root", path: budMon, field: "monthContext", length: 2}, - // crossing but non-circular alias resolution - {loc: "root", path: budMon + "monthContext[@type='format']/monthWidth[@type='narrow']", field: "month", length: 4}, - {loc: "root", path: budMon + "monthContext[@type='stand-alone']/monthWidth[@type='wide']", field: "month", length: 4}, - {loc: "root", path: monthVal(greMon, "format", "wide", 1), data: "11"}, - {loc: "root", path: monthVal(greMon, "format", "narrow", 2), data: "2"}, - {loc: "root", path: monthVal(greMon, "stand-alone", "wide", 3), data: "33"}, - {loc: "root", path: monthVal(greMon, "stand-alone", "narrow", 4), data: "4"}, - {loc: "root", path: monthVal(budMon, "format", "wide", 1), data: "11"}, - {loc: "root", path: monthVal(budMon, "format", "narrow", 2), data: "2"}, - {loc: "root", path: monthVal(budMon, "stand-alone", "wide", 3), data: "33"}, - {loc: "root", path: monthVal(budMon, "stand-alone", "narrow", 4), data: "4"}, -} - -// 19 -var deGetTests = []getTest{ - {loc: "de", path: "identity/language", typ: "de"}, - {loc: "de", path: "posix", length: 2}, - {loc: "de", path: "characters", field: "exemplarCharacters", length: 4}, - {loc: "de", path: "characters/exemplarCharacters[@type='auxiliary']", data: `[á à ă]`}, - // identity is a blocking element, so de should not inherit generation from root. - {loc: "de", path: "identity/generation", missing: true}, - // default resolution - {loc: "root", path: "dates/calendars/calendar", typ: "gregorian"}, - - // absolute path alias resolution - {loc: "gsw", path: "posix", field: "messages", length: 1}, - {loc: "gsw", path: "posix/messages/yesstr", data: "yes:y"}, -} - -// 27(greMon) - 52(budMon) - 77(chnMon) -func calGetTests(s string) []getTest { - tests := []getTest{ - {loc: "de", path: s, length: 2}, - {loc: "de", path: s + "monthContext[@type='format']/monthWidth[@type='wide']", field: "month", length: 5}, - {loc: "de", path: monthVal(s, "format", "wide", 1), data: "11"}, - {loc: "de", path: monthVal(s, "format", "wide", 2), data: "22"}, - {loc: "de", path: monthVal(s, "format", "wide", 3), data: "Maerz", altData: "bbb"}, - {loc: "de", path: monthVal(s, "format", "wide", 4), data: "April"}, - {loc: "de", path: monthVal(s, "format", "wide", 5), data: "Mai"}, - - {loc: "de", path: s + "monthContext[@type='format']/monthWidth[@type='narrow']", field: "month", length: 5}, - {loc: "de", path: monthVal(s, "format", "narrow", 1), data: "1"}, - {loc: "de", path: monthVal(s, "format", "narrow", 2), data: "2"}, - {loc: "de", path: monthVal(s, "format", "narrow", 3), data: "M", altData: "BBB"}, - {loc: "de", path: monthVal(s, "format", "narrow", 4), data: "A"}, - {loc: "de", path: monthVal(s, "format", "narrow", 5), data: "m"}, - - {loc: "de", path: s + "monthContext[@type='stand-alone']/monthWidth[@type='wide']", field: "month", length: 5}, - {loc: "de", path: monthVal(s, "stand-alone", "wide", 1), data: "11"}, - {loc: "de", path: monthVal(s, "stand-alone", "wide", 2), data: "22"}, - {loc: "de", path: monthVal(s, "stand-alone", "wide", 3), data: "Maerz", altData: "bbb"}, - {loc: "de", path: monthVal(s, "stand-alone", "wide", 4), data: "april"}, - {loc: "de", path: monthVal(s, "stand-alone", "wide", 5), data: "mai"}, - - {loc: "de", path: s + "monthContext[@type='stand-alone']/monthWidth[@type='narrow']", field: "month", length: 5}, - {loc: "de", path: monthVal(s, "stand-alone", "narrow", 1), data: "1"}, - {loc: "de", path: monthVal(s, "stand-alone", "narrow", 2), data: "2"}, - {loc: "de", path: monthVal(s, "stand-alone", "narrow", 3), data: "m"}, - {loc: "de", path: monthVal(s, "stand-alone", "narrow", 4), data: "4"}, - {loc: "de", path: monthVal(s, "stand-alone", "narrow", 5), data: "m"}, - } - if s == budMon { - for i, t := range tests { - if t.altData != "" { - tests[i].data = t.altData - } - } - } - return tests -} - -var getTests = append(rootGetTests, - append(deGetTests, - append(calGetTests(greMon), - append(calGetTests(budMon), - calGetTests(chnMon)...)...)...)...) - -func TestPath(t *testing.T) { - d := data() - for i, tt := range getTests { - x, _ := d.LDML(tt.loc) - e, err := walkXPath(x, tt.path) - if err != nil { - if !tt.missing { - t.Errorf("%d:error: %v %v", i, err, tt.missing) - } - continue - } - if tt.missing { - t.Errorf("%d: missing is %v; want %v", i, e == nil, tt.missing) - continue - } - if tt.data != "" && e.GetCommon().Data() != tt.data { - t.Errorf("%d: data is %v; want %v", i, e.GetCommon().Data(), tt.data) - continue - } - if tt.typ != "" && e.GetCommon().Type != tt.typ { - t.Errorf("%d: type is %v; want %v", i, e.GetCommon().Type, tt.typ) - continue - } - if tt.field != "" { - slice, _ := findField(reflect.ValueOf(e), tt.field) - if slice.Len() != tt.length { - t.Errorf("%d: length is %v; want %v", i, slice.Len(), tt.length) - continue - } - } - } -} - -func TestGet(t *testing.T) { - d := data() - for i, tt := range getTests { - x, _ := d.LDML(tt.loc) - e, err := Get(x, tt.path) - if err != nil { - if !tt.missing { - t.Errorf("%d:error: %v %v", i, err, tt.missing) - } - continue - } - if tt.missing { - t.Errorf("%d: missing is %v; want %v", i, e == nil, tt.missing) - continue - } - if tt.data != "" && e.GetCommon().Data() != tt.data { - t.Errorf("%d: data is %v; want %v", i, e.GetCommon().Data(), tt.data) - continue - } - if tt.typ != "" && e.GetCommon().Type != tt.typ { - t.Errorf("%d: type is %v; want %v", i, e.GetCommon().Type, tt.typ) - continue - } - if tt.field != "" { - slice, _ := findField(reflect.ValueOf(e), tt.field) - if slice.Len() != tt.length { - t.Errorf("%d: length is %v; want %v", i, slice.Len(), tt.length) - continue - } - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/slice.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/slice.go deleted file mode 100644 index 388c983f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/slice.go +++ /dev/null @@ -1,144 +0,0 @@ -// 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 cldr - -import ( - "fmt" - "reflect" - "sort" -) - -// Slice provides utilities for modifying slices of elements. -// It can be wrapped around any slice of which the element type implements -// interface Elem. -type Slice struct { - ptr reflect.Value - typ reflect.Type -} - -// Value returns the reflect.Value of the underlying slice. -func (s *Slice) Value() reflect.Value { - return s.ptr.Elem() -} - -// MakeSlice wraps a pointer to a slice of Elems. -// It replaces the array pointed to by the slice so that subsequent modifications -// do not alter the data in a CLDR type. -// It panics if an incorrect type is passed. -func MakeSlice(slicePtr interface{}) Slice { - ptr := reflect.ValueOf(slicePtr) - if ptr.Kind() != reflect.Ptr { - panic(fmt.Sprintf("MakeSlice: argument must be pointer to slice, found %v", ptr.Type())) - } - sl := ptr.Elem() - if sl.Kind() != reflect.Slice { - panic(fmt.Sprintf("MakeSlice: argument must point to a slice, found %v", sl.Type())) - } - intf := reflect.TypeOf((*Elem)(nil)).Elem() - if !sl.Type().Elem().Implements(intf) { - panic(fmt.Sprintf("MakeSlice: element type of slice (%v) does not implement Elem", sl.Type().Elem())) - } - nsl := reflect.MakeSlice(sl.Type(), sl.Len(), sl.Len()) - reflect.Copy(nsl, sl) - sl.Set(nsl) - return Slice{ - ptr: ptr, - typ: sl.Type().Elem().Elem(), - } -} - -func (s Slice) indexForAttr(a string) []int { - for i := iter(reflect.Zero(s.typ)); !i.done(); i.next() { - if n, _ := xmlName(i.field()); n == a { - return i.index - } - } - panic(fmt.Sprintf("MakeSlice: no attribute %q for type %v", a, s.typ)) -} - -// Filter filters s to only include elements for which fn returns true. -func (s Slice) Filter(fn func(e Elem) bool) { - k := 0 - sl := s.Value() - for i := 0; i < sl.Len(); i++ { - vi := sl.Index(i) - if fn(vi.Interface().(Elem)) { - sl.Index(k).Set(vi) - k++ - } - } - sl.Set(sl.Slice(0, k)) -} - -// Group finds elements in s for which fn returns the same value and groups -// them in a new Slice. -func (s Slice) Group(fn func(e Elem) string) []Slice { - m := make(map[string][]reflect.Value) - sl := s.Value() - for i := 0; i < sl.Len(); i++ { - vi := sl.Index(i) - key := fn(vi.Interface().(Elem)) - m[key] = append(m[key], vi) - } - keys := []string{} - for k, _ := range m { - keys = append(keys, k) - } - sort.Strings(keys) - res := []Slice{} - for _, k := range keys { - nsl := reflect.New(sl.Type()) - nsl.Elem().Set(reflect.Append(nsl.Elem(), m[k]...)) - res = append(res, MakeSlice(nsl.Interface())) - } - return res -} - -// SelectAnyOf filters s to contain only elements for which attr matches -// any of the values. -func (s Slice) SelectAnyOf(attr string, values ...string) { - index := s.indexForAttr(attr) - s.Filter(func(e Elem) bool { - vf := reflect.ValueOf(e).Elem().FieldByIndex(index) - return in(values, vf.String()) - }) -} - -// SelectOnePerGroup filters s to include at most one element e per group of -// elements matching Key(attr), where e has an attribute a that matches any -// the values in v. -// If more than one element in a group matches a value in v preference -// is given to the element that matches the first value in v. -func (s Slice) SelectOnePerGroup(a string, v []string) { - index := s.indexForAttr(a) - grouped := s.Group(func(e Elem) string { return Key(e, a) }) - sl := s.Value() - sl.Set(sl.Slice(0, 0)) - for _, g := range grouped { - e := reflect.Value{} - found := len(v) - gsl := g.Value() - for i := 0; i < gsl.Len(); i++ { - vi := gsl.Index(i).Elem().FieldByIndex(index) - j := 0 - for ; j < len(v) && v[j] != vi.String(); j++ { - } - if j < found { - found = j - e = gsl.Index(i) - } - } - if found < len(v) { - sl.Set(reflect.Append(sl, e)) - } - } -} - -// SelectDraft drops all elements from the list with a draft level smaller than d -// and selects the highest draft level of the remaining. -// This method assumes that the input CLDR is canonicalized. -func (s Slice) SelectDraft(d Draft) { - s.SelectOnePerGroup("draft", drafts[len(drafts)-2-int(d):]) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/slice_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/slice_test.go deleted file mode 100644 index f354329e..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/slice_test.go +++ /dev/null @@ -1,175 +0,0 @@ -// 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 cldr - -import ( - "reflect" - "testing" -) - -type testSlice []*Common - -func mkElem(alt, typ, ref string) *Common { - return &Common{ - Type: typ, - Reference: ref, - Alt: alt, - } -} - -var ( - testSlice1 = testSlice{ - mkElem("1", "a", "i.a"), - mkElem("1", "b", "i.b"), - mkElem("1", "c", "i.c"), - mkElem("2", "b", "ii"), - mkElem("3", "c", "iii"), - mkElem("4", "a", "iv.a"), - mkElem("4", "d", "iv.d"), - } - testSliceE = testSlice{} -) - -func panics(f func()) (panics bool) { - defer func() { - if err := recover(); err != nil { - panics = true - } - }() - f() - return panics -} - -func TestMakeSlice(t *testing.T) { - foo := 1 - bar := []int{} - tests := []struct { - i interface{} - panics bool - err string - }{ - {&foo, true, "should panic when passed a pointer to the wrong type"}, - {&bar, true, "should panic when slice element of the wrong type"}, - {testSlice1, true, "should panic when passed a slice"}, - {&testSlice1, false, "should not panic"}, - } - for i, tt := range tests { - if panics(func() { MakeSlice(tt.i) }) != tt.panics { - t.Errorf("%d: %s", i, tt.err) - } - } -} - -var anyOfTests = []struct { - sl testSlice - values []string - n int -}{ - {testSliceE, []string{}, 0}, - {testSliceE, []string{"1", "2", "3"}, 0}, - {testSlice1, []string{}, 0}, - {testSlice1, []string{"1"}, 3}, - {testSlice1, []string{"2"}, 1}, - {testSlice1, []string{"5"}, 0}, - {testSlice1, []string{"1", "2", "3"}, 5}, -} - -func TestSelectAnyOf(t *testing.T) { - for i, tt := range anyOfTests { - sl := tt.sl - s := MakeSlice(&sl) - s.SelectAnyOf("alt", tt.values...) - if len(sl) != tt.n { - t.Errorf("%d: found len == %d; want %d", i, len(sl), tt.n) - } - } - sl := testSlice1 - s := MakeSlice(&sl) - if !panics(func() { s.SelectAnyOf("foo") }) { - t.Errorf("should panic on non-existing attribute") - } -} - -func TestFilter(t *testing.T) { - for i, tt := range anyOfTests { - sl := tt.sl - s := MakeSlice(&sl) - s.Filter(func(e Elem) bool { - v, _ := findField(reflect.ValueOf(e), "alt") - return in(tt.values, v.String()) - }) - if len(sl) != tt.n { - t.Errorf("%d: found len == %d; want %d", i, len(sl), tt.n) - } - } -} - -func TestGroup(t *testing.T) { - f := func(excl ...string) func(Elem) string { - return func(e Elem) string { - return Key(e, excl...) - } - } - tests := []struct { - sl testSlice - f func(Elem) string - lens []int - }{ - {testSliceE, f(), []int{}}, - {testSlice1, f(), []int{1, 1, 1, 1, 1, 1, 1}}, - {testSlice1, f("type"), []int{3, 1, 1, 2}}, - {testSlice1, f("alt"), []int{2, 2, 2, 1}}, - {testSlice1, f("alt", "type"), []int{7}}, - {testSlice1, f("alt", "type"), []int{7}}, - } - for i, tt := range tests { - sl := tt.sl - s := MakeSlice(&sl) - g := s.Group(tt.f) - if len(tt.lens) != len(g) { - t.Errorf("%d: found %d; want %d", i, len(g), len(tt.lens)) - continue - } - for j, v := range tt.lens { - if n := g[j].Value().Len(); n != v { - t.Errorf("%d: found %d for length of group %d; want %d", i, n, j, v) - } - } - } -} - -func TestSelectOnePerGroup(t *testing.T) { - tests := []struct { - sl testSlice - attr string - values []string - refs []string - }{ - {testSliceE, "alt", []string{"1"}, []string{}}, - {testSliceE, "type", []string{"a"}, []string{}}, - {testSlice1, "alt", []string{"2", "3", "1"}, []string{"i.a", "ii", "iii"}}, - {testSlice1, "alt", []string{"1", "4"}, []string{"i.a", "i.b", "i.c", "iv.d"}}, - {testSlice1, "type", []string{"c", "d"}, []string{"i.c", "iii", "iv.d"}}, - } - for i, tt := range tests { - sl := tt.sl - s := MakeSlice(&sl) - s.SelectOnePerGroup(tt.attr, tt.values) - if len(sl) != len(tt.refs) { - t.Errorf("%d: found result lenght %d; want %d", i, len(sl), len(tt.refs)) - continue - } - for j, e := range sl { - if tt.refs[j] != e.Reference { - t.Errorf("%d:%d found %s; want %s", i, j, e.Reference, tt.refs[i]) - } - } - } - sl := testSlice1 - s := MakeSlice(&sl) - if !panics(func() { s.SelectOnePerGroup("foo", nil) }) { - t.Errorf("should panic on non-existing attribute") - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/xml.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/xml.go deleted file mode 100644 index e5edaa7e..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr/xml.go +++ /dev/null @@ -1,1386 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package cldr - -// LDMLBCP47 holds information on allowable values for various variables in LDML. -type LDMLBCP47 struct { - Common - Version *struct { - Common - Number string `xml:"number,attr"` - } `xml:"version"` - Generation *struct { - Common - Date string `xml:"date,attr"` - } `xml:"generation"` - Keyword []*struct { - Common - Key []*struct { - Common - Extension string `xml:"extension,attr"` - Name string `xml:"name,attr"` - Description string `xml:"description,attr"` - Deprecated string `xml:"deprecated,attr"` - Preferred string `xml:"preferred,attr"` - Alias string `xml:"alias,attr"` - Since string `xml:"since,attr"` - Type []*struct { - Common - Name string `xml:"name,attr"` - Description string `xml:"description,attr"` - Deprecated string `xml:"deprecated,attr"` - Preferred string `xml:"preferred,attr"` - Alias string `xml:"alias,attr"` - Since string `xml:"since,attr"` - } `xml:"type"` - } `xml:"key"` - } `xml:"keyword"` - Attribute []*struct { - Common - Name string `xml:"name,attr"` - Description string `xml:"description,attr"` - Deprecated string `xml:"deprecated,attr"` - Preferred string `xml:"preferred,attr"` - Since string `xml:"since,attr"` - } `xml:"attribute"` -} - -// SupplementalData holds information relevant for internationalization -// and proper use of CLDR, but that is not contained in the locale hierarchy. -type SupplementalData struct { - Common - Version *struct { - Common - Number string `xml:"number,attr"` - } `xml:"version"` - Generation *struct { - Common - Date string `xml:"date,attr"` - } `xml:"generation"` - CurrencyData *struct { - Common - Fractions []*struct { - Common - Info []*struct { - Common - Iso4217 string `xml:"iso4217,attr"` - Digits string `xml:"digits,attr"` - Rounding string `xml:"rounding,attr"` - CashDigits string `xml:"cashDigits,attr"` - CashRounding string `xml:"cashRounding,attr"` - } `xml:"info"` - } `xml:"fractions"` - Region []*struct { - Common - Iso3166 string `xml:"iso3166,attr"` - Currency []*struct { - Common - Before string `xml:"before,attr"` - From string `xml:"from,attr"` - To string `xml:"to,attr"` - Iso4217 string `xml:"iso4217,attr"` - Digits string `xml:"digits,attr"` - Rounding string `xml:"rounding,attr"` - CashRounding string `xml:"cashRounding,attr"` - Tender string `xml:"tender,attr"` - Alternate []*struct { - Common - Iso4217 string `xml:"iso4217,attr"` - } `xml:"alternate"` - } `xml:"currency"` - } `xml:"region"` - } `xml:"currencyData"` - TerritoryContainment *struct { - Common - Group []*struct { - Common - Contains string `xml:"contains,attr"` - Grouping string `xml:"grouping,attr"` - Status string `xml:"status,attr"` - } `xml:"group"` - } `xml:"territoryContainment"` - LanguageData *struct { - Common - Language []*struct { - Common - Scripts string `xml:"scripts,attr"` - Territories string `xml:"territories,attr"` - Variants string `xml:"variants,attr"` - } `xml:"language"` - } `xml:"languageData"` - TerritoryInfo *struct { - Common - Territory []*struct { - Common - Gdp string `xml:"gdp,attr"` - LiteracyPercent string `xml:"literacyPercent,attr"` - Population string `xml:"population,attr"` - LanguagePopulation []*struct { - Common - WritingPercent string `xml:"writingPercent,attr"` - PopulationPercent string `xml:"populationPercent,attr"` - OfficialStatus string `xml:"officialStatus,attr"` - } `xml:"languagePopulation"` - } `xml:"territory"` - } `xml:"territoryInfo"` - PostalCodeData *struct { - Common - PostCodeRegex []*struct { - Common - TerritoryId string `xml:"territoryId,attr"` - } `xml:"postCodeRegex"` - } `xml:"postalCodeData"` - CalendarData *struct { - Common - Calendar []*struct { - Common - Territories string `xml:"territories,attr"` - CalendarSystem *Common `xml:"calendarSystem"` - Eras *struct { - Common - Era []*struct { - Common - Start string `xml:"start,attr"` - End string `xml:"end,attr"` - } `xml:"era"` - } `xml:"eras"` - } `xml:"calendar"` - } `xml:"calendarData"` - CalendarPreferenceData *struct { - Common - CalendarPreference []*struct { - Common - Territories string `xml:"territories,attr"` - Ordering string `xml:"ordering,attr"` - } `xml:"calendarPreference"` - } `xml:"calendarPreferenceData"` - WeekData *struct { - Common - MinDays []*struct { - Common - Count string `xml:"count,attr"` - Territories string `xml:"territories,attr"` - } `xml:"minDays"` - FirstDay []*struct { - Common - Day string `xml:"day,attr"` - Territories string `xml:"territories,attr"` - } `xml:"firstDay"` - WeekendStart []*struct { - Common - Day string `xml:"day,attr"` - Territories string `xml:"territories,attr"` - } `xml:"weekendStart"` - WeekendEnd []*struct { - Common - Day string `xml:"day,attr"` - Territories string `xml:"territories,attr"` - } `xml:"weekendEnd"` - } `xml:"weekData"` - TimeData *struct { - Common - Hours []*struct { - Common - Allowed string `xml:"allowed,attr"` - Preferred string `xml:"preferred,attr"` - Regions string `xml:"regions,attr"` - } `xml:"hours"` - } `xml:"timeData"` - MeasurementData *struct { - Common - MeasurementSystem []*struct { - Common - Category string `xml:"category,attr"` - Territories string `xml:"territories,attr"` - } `xml:"measurementSystem"` - PaperSize []*struct { - Common - Territories string `xml:"territories,attr"` - } `xml:"paperSize"` - } `xml:"measurementData"` - TimezoneData *struct { - Common - MapTimezones []*struct { - Common - OtherVersion string `xml:"otherVersion,attr"` - TypeVersion string `xml:"typeVersion,attr"` - MapZone []*struct { - Common - Other string `xml:"other,attr"` - Territory string `xml:"territory,attr"` - } `xml:"mapZone"` - } `xml:"mapTimezones"` - ZoneFormatting []*struct { - Common - Multizone string `xml:"multizone,attr"` - TzidVersion string `xml:"tzidVersion,attr"` - ZoneItem []*struct { - Common - Territory string `xml:"territory,attr"` - Aliases string `xml:"aliases,attr"` - } `xml:"zoneItem"` - } `xml:"zoneFormatting"` - } `xml:"timezoneData"` - Characters *struct { - Common - CharacterFallback []*struct { - Common - Character []*struct { - Common - Value string `xml:"value,attr"` - Substitute []*Common `xml:"substitute"` - } `xml:"character"` - } `xml:"character-fallback"` - } `xml:"characters"` - Transforms *struct { - Common - Transform []*struct { - Common - Source string `xml:"source,attr"` - Target string `xml:"target,attr"` - Variant string `xml:"variant,attr"` - Direction string `xml:"direction,attr"` - Visibility string `xml:"visibility,attr"` - Comment []*Common `xml:"comment"` - TRule []*Common `xml:"tRule"` - } `xml:"transform"` - } `xml:"transforms"` - Metadata *struct { - Common - AttributeOrder *Common `xml:"attributeOrder"` - ElementOrder *Common `xml:"elementOrder"` - SerialElements *Common `xml:"serialElements"` - Suppress *struct { - Common - Attributes []*struct { - Common - Element string `xml:"element,attr"` - Attribute string `xml:"attribute,attr"` - AttributeValue string `xml:"attributeValue,attr"` - } `xml:"attributes"` - } `xml:"suppress"` - Validity *struct { - Common - Variable []*struct { - Common - Id string `xml:"id,attr"` - } `xml:"variable"` - AttributeValues []*struct { - Common - Elements string `xml:"elements,attr"` - Attributes string `xml:"attributes,attr"` - Order string `xml:"order,attr"` - } `xml:"attributeValues"` - } `xml:"validity"` - Alias *struct { - Common - LanguageAlias []*struct { - Common - Replacement string `xml:"replacement,attr"` - Reason string `xml:"reason,attr"` - } `xml:"languageAlias"` - ScriptAlias []*struct { - Common - Replacement string `xml:"replacement,attr"` - Reason string `xml:"reason,attr"` - } `xml:"scriptAlias"` - TerritoryAlias []*struct { - Common - Replacement string `xml:"replacement,attr"` - Reason string `xml:"reason,attr"` - } `xml:"territoryAlias"` - VariantAlias []*struct { - Common - Replacement string `xml:"replacement,attr"` - Reason string `xml:"reason,attr"` - } `xml:"variantAlias"` - ZoneAlias []*struct { - Common - Replacement string `xml:"replacement,attr"` - Reason string `xml:"reason,attr"` - } `xml:"zoneAlias"` - } `xml:"alias"` - Deprecated *struct { - Common - DeprecatedItems []*struct { - Common - Elements string `xml:"elements,attr"` - Attributes string `xml:"attributes,attr"` - Values string `xml:"values,attr"` - } `xml:"deprecatedItems"` - } `xml:"deprecated"` - Distinguishing *struct { - Common - DistinguishingItems []*struct { - Common - Exclude string `xml:"exclude,attr"` - Elements string `xml:"elements,attr"` - Attributes string `xml:"attributes,attr"` - } `xml:"distinguishingItems"` - } `xml:"distinguishing"` - Blocking *struct { - Common - BlockingItems []*struct { - Common - Elements string `xml:"elements,attr"` - } `xml:"blockingItems"` - } `xml:"blocking"` - CoverageAdditions *struct { - Common - LanguageCoverage []*struct { - Common - Values string `xml:"values,attr"` - } `xml:"languageCoverage"` - ScriptCoverage []*struct { - Common - Values string `xml:"values,attr"` - } `xml:"scriptCoverage"` - TerritoryCoverage []*struct { - Common - Values string `xml:"values,attr"` - } `xml:"territoryCoverage"` - CurrencyCoverage []*struct { - Common - Values string `xml:"values,attr"` - } `xml:"currencyCoverage"` - TimezoneCoverage []*struct { - Common - Values string `xml:"values,attr"` - } `xml:"timezoneCoverage"` - } `xml:"coverageAdditions"` - SkipDefaultLocale *struct { - Common - Services string `xml:"services,attr"` - } `xml:"skipDefaultLocale"` - DefaultContent *struct { - Common - Locales string `xml:"locales,attr"` - } `xml:"defaultContent"` - } `xml:"metadata"` - CodeMappings *struct { - Common - LanguageCodes []*struct { - Common - Alpha3 string `xml:"alpha3,attr"` - } `xml:"languageCodes"` - TerritoryCodes []*struct { - Common - Numeric string `xml:"numeric,attr"` - Alpha3 string `xml:"alpha3,attr"` - Fips10 string `xml:"fips10,attr"` - Internet string `xml:"internet,attr"` - } `xml:"territoryCodes"` - CurrencyCodes []*struct { - Common - Numeric string `xml:"numeric,attr"` - } `xml:"currencyCodes"` - } `xml:"codeMappings"` - ParentLocales *struct { - Common - ParentLocale []*struct { - Common - Parent string `xml:"parent,attr"` - Locales string `xml:"locales,attr"` - } `xml:"parentLocale"` - } `xml:"parentLocales"` - LikelySubtags *struct { - Common - LikelySubtag []*struct { - Common - From string `xml:"from,attr"` - To string `xml:"to,attr"` - } `xml:"likelySubtag"` - } `xml:"likelySubtags"` - MetazoneInfo *struct { - Common - Timezone []*struct { - Common - UsesMetazone []*struct { - Common - From string `xml:"from,attr"` - To string `xml:"to,attr"` - Mzone string `xml:"mzone,attr"` - } `xml:"usesMetazone"` - } `xml:"timezone"` - } `xml:"metazoneInfo"` - Plurals []*struct { - Common - PluralRules []*struct { - Common - Locales string `xml:"locales,attr"` - PluralRule []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"pluralRule"` - } `xml:"pluralRules"` - PluralRanges []*struct { - Common - Locales string `xml:"locales,attr"` - PluralRange []*struct { - Common - Start string `xml:"start,attr"` - End string `xml:"end,attr"` - Result string `xml:"result,attr"` - } `xml:"pluralRange"` - } `xml:"pluralRanges"` - } `xml:"plurals"` - TelephoneCodeData *struct { - Common - CodesByTerritory []*struct { - Common - Territory string `xml:"territory,attr"` - TelephoneCountryCode []*struct { - Common - Code string `xml:"code,attr"` - From string `xml:"from,attr"` - To string `xml:"to,attr"` - } `xml:"telephoneCountryCode"` - } `xml:"codesByTerritory"` - } `xml:"telephoneCodeData"` - NumberingSystems *struct { - Common - NumberingSystem []*struct { - Common - Id string `xml:"id,attr"` - Radix string `xml:"radix,attr"` - Digits string `xml:"digits,attr"` - Rules string `xml:"rules,attr"` - } `xml:"numberingSystem"` - } `xml:"numberingSystems"` - Bcp47KeywordMappings *struct { - Common - MapKeys *struct { - Common - KeyMap []*struct { - Common - Bcp47 string `xml:"bcp47,attr"` - } `xml:"keyMap"` - } `xml:"mapKeys"` - MapTypes []*struct { - Common - TypeMap []*struct { - Common - Bcp47 string `xml:"bcp47,attr"` - } `xml:"typeMap"` - } `xml:"mapTypes"` - } `xml:"bcp47KeywordMappings"` - Gender *struct { - Common - PersonList []*struct { - Common - Locales string `xml:"locales,attr"` - } `xml:"personList"` - } `xml:"gender"` - References *struct { - Common - Reference []*struct { - Common - Uri string `xml:"uri,attr"` - } `xml:"reference"` - } `xml:"references"` - LanguageMatching *struct { - Common - LanguageMatches []*struct { - Common - LanguageMatch []*struct { - Common - Desired string `xml:"desired,attr"` - Oneway string `xml:"oneway,attr"` - Percent string `xml:"percent,attr"` - Supported string `xml:"supported,attr"` - } `xml:"languageMatch"` - } `xml:"languageMatches"` - } `xml:"languageMatching"` - DayPeriodRuleSet []*struct { - Common - DayPeriodRules []*struct { - Common - Locales string `xml:"locales,attr"` - DayPeriodRule []*struct { - Common - At string `xml:"at,attr"` - After string `xml:"after,attr"` - Before string `xml:"before,attr"` - From string `xml:"from,attr"` - To string `xml:"to,attr"` - } `xml:"dayPeriodRule"` - } `xml:"dayPeriodRules"` - } `xml:"dayPeriodRuleSet"` - MetaZones *struct { - Common - MetazoneInfo *struct { - Common - Timezone []*struct { - Common - UsesMetazone []*struct { - Common - From string `xml:"from,attr"` - To string `xml:"to,attr"` - Mzone string `xml:"mzone,attr"` - } `xml:"usesMetazone"` - } `xml:"timezone"` - } `xml:"metazoneInfo"` - MapTimezones *struct { - Common - OtherVersion string `xml:"otherVersion,attr"` - TypeVersion string `xml:"typeVersion,attr"` - MapZone []*struct { - Common - Other string `xml:"other,attr"` - Territory string `xml:"territory,attr"` - } `xml:"mapZone"` - } `xml:"mapTimezones"` - } `xml:"metaZones"` - PrimaryZones *struct { - Common - PrimaryZone []*struct { - Common - Iso3166 string `xml:"iso3166,attr"` - } `xml:"primaryZone"` - } `xml:"primaryZones"` - WindowsZones *struct { - Common - MapTimezones *struct { - Common - OtherVersion string `xml:"otherVersion,attr"` - TypeVersion string `xml:"typeVersion,attr"` - MapZone []*struct { - Common - Other string `xml:"other,attr"` - Territory string `xml:"territory,attr"` - } `xml:"mapZone"` - } `xml:"mapTimezones"` - } `xml:"windowsZones"` - CoverageLevels *struct { - Common - ApprovalRequirements *struct { - Common - ApprovalRequirement []*struct { - Common - Votes string `xml:"votes,attr"` - Locales string `xml:"locales,attr"` - Paths string `xml:"paths,attr"` - } `xml:"approvalRequirement"` - } `xml:"approvalRequirements"` - CoverageVariable []*struct { - Common - Key string `xml:"key,attr"` - Value string `xml:"value,attr"` - } `xml:"coverageVariable"` - CoverageLevel []*struct { - Common - InLanguage string `xml:"inLanguage,attr"` - InScript string `xml:"inScript,attr"` - InTerritory string `xml:"inTerritory,attr"` - Value string `xml:"value,attr"` - Match string `xml:"match,attr"` - } `xml:"coverageLevel"` - } `xml:"coverageLevels"` -} - -// LDML is the top-level type for locale-specific data. -type LDML struct { - Common - Identity *struct { - Common - Version *struct { - Common - Number string `xml:"number,attr"` - } `xml:"version"` - Generation *struct { - Common - Date string `xml:"date,attr"` - } `xml:"generation"` - Language *Common `xml:"language"` - Script *Common `xml:"script"` - Territory *Common `xml:"territory"` - Variant *Common `xml:"variant"` - } `xml:"identity"` - LocaleDisplayNames *LocaleDisplayNames `xml:"localeDisplayNames"` - Layout *struct { - Common - Orientation []*struct { - Common - Characters string `xml:"characters,attr"` - Lines string `xml:"lines,attr"` - CharacterOrder []*Common `xml:"characterOrder"` - LineOrder []*Common `xml:"lineOrder"` - } `xml:"orientation"` - InList []*struct { - Common - Casing string `xml:"casing,attr"` - } `xml:"inList"` - InText []*Common `xml:"inText"` - } `xml:"layout"` - ContextTransforms *struct { - Common - ContextTransformUsage []*struct { - Common - ContextTransform []*Common `xml:"contextTransform"` - } `xml:"contextTransformUsage"` - } `xml:"contextTransforms"` - Characters *struct { - Common - ExemplarCharacters []*Common `xml:"exemplarCharacters"` - Ellipsis []*Common `xml:"ellipsis"` - MoreInformation []*Common `xml:"moreInformation"` - Stopwords []*struct { - Common - StopwordList []*Common `xml:"stopwordList"` - } `xml:"stopwords"` - IndexLabels []*struct { - Common - IndexSeparator []*Common `xml:"indexSeparator"` - CompressedIndexSeparator []*Common `xml:"compressedIndexSeparator"` - IndexRangePattern []*Common `xml:"indexRangePattern"` - IndexLabelBefore []*Common `xml:"indexLabelBefore"` - IndexLabelAfter []*Common `xml:"indexLabelAfter"` - IndexLabel []*struct { - Common - IndexSource string `xml:"indexSource,attr"` - Priority string `xml:"priority,attr"` - } `xml:"indexLabel"` - } `xml:"indexLabels"` - Mapping []*struct { - Common - Registry string `xml:"registry,attr"` - } `xml:"mapping"` - } `xml:"characters"` - Delimiters *struct { - Common - QuotationStart []*Common `xml:"quotationStart"` - QuotationEnd []*Common `xml:"quotationEnd"` - AlternateQuotationStart []*Common `xml:"alternateQuotationStart"` - AlternateQuotationEnd []*Common `xml:"alternateQuotationEnd"` - } `xml:"delimiters"` - Measurement *struct { - Common - MeasurementSystem []*Common `xml:"measurementSystem"` - PaperSize []*struct { - Common - Height []*Common `xml:"height"` - Width []*Common `xml:"width"` - } `xml:"paperSize"` - } `xml:"measurement"` - Dates *struct { - Common - LocalizedPatternChars []*Common `xml:"localizedPatternChars"` - DateRangePattern []*Common `xml:"dateRangePattern"` - Calendars *struct { - Common - Calendar []*Calendar `xml:"calendar"` - } `xml:"calendars"` - Fields *struct { - Common - Field []*struct { - Common - DisplayName []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"displayName"` - Relative []*Common `xml:"relative"` - RelativeTime []*struct { - Common - RelativeTimePattern []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"relativeTimePattern"` - } `xml:"relativeTime"` - } `xml:"field"` - } `xml:"fields"` - TimeZoneNames *TimeZoneNames `xml:"timeZoneNames"` - } `xml:"dates"` - Numbers *Numbers `xml:"numbers"` - Units *struct { - Common - Unit []*struct { - Common - DisplayName []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"displayName"` - UnitPattern []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"unitPattern"` - PerUnitPattern []*Common `xml:"perUnitPattern"` - } `xml:"unit"` - UnitLength []*struct { - Common - CompoundUnit []*struct { - Common - CompoundUnitPattern []*Common `xml:"compoundUnitPattern"` - } `xml:"compoundUnit"` - Unit []*struct { - Common - DisplayName []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"displayName"` - UnitPattern []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"unitPattern"` - PerUnitPattern []*Common `xml:"perUnitPattern"` - } `xml:"unit"` - } `xml:"unitLength"` - DurationUnit []*struct { - Common - DurationUnitPattern []*Common `xml:"durationUnitPattern"` - } `xml:"durationUnit"` - } `xml:"units"` - ListPatterns *struct { - Common - ListPattern []*struct { - Common - ListPatternPart []*Common `xml:"listPatternPart"` - } `xml:"listPattern"` - } `xml:"listPatterns"` - Collations *struct { - Common - Version string `xml:"version,attr"` - DefaultCollation *Common `xml:"defaultCollation"` - Collation []*Collation `xml:"collation"` - } `xml:"collations"` - Posix *struct { - Common - Messages []*struct { - Common - Yesstr []*Common `xml:"yesstr"` - Nostr []*Common `xml:"nostr"` - Yesexpr []*Common `xml:"yesexpr"` - Noexpr []*Common `xml:"noexpr"` - } `xml:"messages"` - } `xml:"posix"` - Segmentations *struct { - Common - Segmentation []*struct { - Common - Variables *struct { - Common - Variable []*struct { - Common - Id string `xml:"id,attr"` - } `xml:"variable"` - } `xml:"variables"` - SegmentRules *struct { - Common - Rule []*struct { - Common - Id string `xml:"id,attr"` - } `xml:"rule"` - } `xml:"segmentRules"` - Exceptions *struct { - Common - Exception []*Common `xml:"exception"` - } `xml:"exceptions"` - Suppressions *struct { - Common - Suppression []*Common `xml:"suppression"` - } `xml:"suppressions"` - } `xml:"segmentation"` - } `xml:"segmentations"` - Rbnf *struct { - Common - RulesetGrouping []*struct { - Common - Ruleset []*struct { - Common - Access string `xml:"access,attr"` - AllowsParsing string `xml:"allowsParsing,attr"` - Rbnfrule []*struct { - Common - Value string `xml:"value,attr"` - Radix string `xml:"radix,attr"` - Decexp string `xml:"decexp,attr"` - } `xml:"rbnfrule"` - } `xml:"ruleset"` - } `xml:"rulesetGrouping"` - } `xml:"rbnf"` - Annotations *struct { - Common - Annotation []*struct { - Common - Cp string `xml:"cp,attr"` - Tts string `xml:"tts,attr"` - } `xml:"annotation"` - } `xml:"annotations"` - Metadata *struct { - Common - CasingData *struct { - Common - CasingItem []*struct { - Common - Override string `xml:"override,attr"` - } `xml:"casingItem"` - } `xml:"casingData"` - } `xml:"metadata"` - References *struct { - Common - Reference []*struct { - Common - Uri string `xml:"uri,attr"` - } `xml:"reference"` - } `xml:"references"` -} - -// Collation contains rules that specify a certain sort-order, -// as a tailoring of the root order. -// The parsed rules are obtained by passing a RuleProcessor to Collation's -// Process method. -type Collation struct { - Common - Visibility string `xml:"visibility,attr"` - Base *Common `xml:"base"` - Import []*struct { - Common - Source string `xml:"source,attr"` - } `xml:"import"` - Settings *struct { - Common - Strength string `xml:"strength,attr"` - Alternate string `xml:"alternate,attr"` - Backwards string `xml:"backwards,attr"` - Normalization string `xml:"normalization,attr"` - CaseLevel string `xml:"caseLevel,attr"` - CaseFirst string `xml:"caseFirst,attr"` - HiraganaQuaternary string `xml:"hiraganaQuaternary,attr"` - MaxVariable string `xml:"maxVariable,attr"` - Numeric string `xml:"numeric,attr"` - Private string `xml:"private,attr"` - VariableTop string `xml:"variableTop,attr"` - Reorder string `xml:"reorder,attr"` - } `xml:"settings"` - SuppressContractions *Common `xml:"suppress_contractions"` - Optimize *Common `xml:"optimize"` - Cr []*Common `xml:"cr"` - rulesElem -} - -// Calendar specifies the fields used for formatting and parsing dates and times. -// The month and quarter names are identified numerically, starting at 1. -// The day (of the week) names are identified with short strings, since there is -// no universally-accepted numeric designation. -type Calendar struct { - Common - Months *struct { - Common - MonthContext []*struct { - Common - MonthWidth []*struct { - Common - Month []*struct { - Common - Yeartype string `xml:"yeartype,attr"` - } `xml:"month"` - } `xml:"monthWidth"` - } `xml:"monthContext"` - } `xml:"months"` - MonthNames *struct { - Common - Month []*struct { - Common - Yeartype string `xml:"yeartype,attr"` - } `xml:"month"` - } `xml:"monthNames"` - MonthAbbr *struct { - Common - Month []*struct { - Common - Yeartype string `xml:"yeartype,attr"` - } `xml:"month"` - } `xml:"monthAbbr"` - MonthPatterns *struct { - Common - MonthPatternContext []*struct { - Common - MonthPatternWidth []*struct { - Common - MonthPattern []*Common `xml:"monthPattern"` - } `xml:"monthPatternWidth"` - } `xml:"monthPatternContext"` - } `xml:"monthPatterns"` - Days *struct { - Common - DayContext []*struct { - Common - DayWidth []*struct { - Common - Day []*Common `xml:"day"` - } `xml:"dayWidth"` - } `xml:"dayContext"` - } `xml:"days"` - DayNames *struct { - Common - Day []*Common `xml:"day"` - } `xml:"dayNames"` - DayAbbr *struct { - Common - Day []*Common `xml:"day"` - } `xml:"dayAbbr"` - Quarters *struct { - Common - QuarterContext []*struct { - Common - QuarterWidth []*struct { - Common - Quarter []*Common `xml:"quarter"` - } `xml:"quarterWidth"` - } `xml:"quarterContext"` - } `xml:"quarters"` - Week *struct { - Common - MinDays []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"minDays"` - FirstDay []*struct { - Common - Day string `xml:"day,attr"` - } `xml:"firstDay"` - WeekendStart []*struct { - Common - Day string `xml:"day,attr"` - Time string `xml:"time,attr"` - } `xml:"weekendStart"` - WeekendEnd []*struct { - Common - Day string `xml:"day,attr"` - Time string `xml:"time,attr"` - } `xml:"weekendEnd"` - } `xml:"week"` - Am []*Common `xml:"am"` - Pm []*Common `xml:"pm"` - DayPeriods *struct { - Common - DayPeriodContext []*struct { - Common - DayPeriodWidth []*struct { - Common - DayPeriod []*Common `xml:"dayPeriod"` - } `xml:"dayPeriodWidth"` - } `xml:"dayPeriodContext"` - } `xml:"dayPeriods"` - Eras *struct { - Common - EraNames *struct { - Common - Era []*Common `xml:"era"` - } `xml:"eraNames"` - EraAbbr *struct { - Common - Era []*Common `xml:"era"` - } `xml:"eraAbbr"` - EraNarrow *struct { - Common - Era []*Common `xml:"era"` - } `xml:"eraNarrow"` - } `xml:"eras"` - CyclicNameSets *struct { - Common - CyclicNameSet []*struct { - Common - CyclicNameContext []*struct { - Common - CyclicNameWidth []*struct { - Common - CyclicName []*Common `xml:"cyclicName"` - } `xml:"cyclicNameWidth"` - } `xml:"cyclicNameContext"` - } `xml:"cyclicNameSet"` - } `xml:"cyclicNameSets"` - DateFormats *struct { - Common - DateFormatLength []*struct { - Common - DateFormat []*struct { - Common - Pattern []*struct { - Common - Numbers string `xml:"numbers,attr"` - Count string `xml:"count,attr"` - } `xml:"pattern"` - DisplayName []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"displayName"` - } `xml:"dateFormat"` - } `xml:"dateFormatLength"` - } `xml:"dateFormats"` - TimeFormats *struct { - Common - TimeFormatLength []*struct { - Common - TimeFormat []*struct { - Common - Pattern []*struct { - Common - Numbers string `xml:"numbers,attr"` - Count string `xml:"count,attr"` - } `xml:"pattern"` - DisplayName []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"displayName"` - } `xml:"timeFormat"` - } `xml:"timeFormatLength"` - } `xml:"timeFormats"` - DateTimeFormats *struct { - Common - DateTimeFormatLength []*struct { - Common - DateTimeFormat []*struct { - Common - Pattern []*struct { - Common - Numbers string `xml:"numbers,attr"` - Count string `xml:"count,attr"` - } `xml:"pattern"` - DisplayName []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"displayName"` - } `xml:"dateTimeFormat"` - } `xml:"dateTimeFormatLength"` - AvailableFormats []*struct { - Common - DateFormatItem []*struct { - Common - Id string `xml:"id,attr"` - } `xml:"dateFormatItem"` - } `xml:"availableFormats"` - AppendItems []*struct { - Common - AppendItem []*struct { - Common - Request string `xml:"request,attr"` - } `xml:"appendItem"` - } `xml:"appendItems"` - IntervalFormats []*struct { - Common - IntervalFormatFallback []*Common `xml:"intervalFormatFallback"` - IntervalFormatItem []*struct { - Common - Id string `xml:"id,attr"` - GreatestDifference []*struct { - Common - Id string `xml:"id,attr"` - } `xml:"greatestDifference"` - } `xml:"intervalFormatItem"` - } `xml:"intervalFormats"` - } `xml:"dateTimeFormats"` - Fields []*struct { - Common - Field []*struct { - Common - DisplayName []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"displayName"` - Relative []*Common `xml:"relative"` - RelativeTime []*struct { - Common - RelativeTimePattern []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"relativeTimePattern"` - } `xml:"relativeTime"` - } `xml:"field"` - } `xml:"fields"` -} -type TimeZoneNames struct { - Common - HourFormat []*Common `xml:"hourFormat"` - HoursFormat []*Common `xml:"hoursFormat"` - GmtFormat []*Common `xml:"gmtFormat"` - GmtZeroFormat []*Common `xml:"gmtZeroFormat"` - RegionFormat []*Common `xml:"regionFormat"` - FallbackFormat []*Common `xml:"fallbackFormat"` - FallbackRegionFormat []*Common `xml:"fallbackRegionFormat"` - AbbreviationFallback []*Common `xml:"abbreviationFallback"` - PreferenceOrdering []*Common `xml:"preferenceOrdering"` - SingleCountries []*struct { - Common - List string `xml:"list,attr"` - } `xml:"singleCountries"` - Zone []*struct { - Common - Long []*struct { - Common - Generic []*Common `xml:"generic"` - Standard []*Common `xml:"standard"` - Daylight []*Common `xml:"daylight"` - } `xml:"long"` - Short []*struct { - Common - Generic []*Common `xml:"generic"` - Standard []*Common `xml:"standard"` - Daylight []*Common `xml:"daylight"` - } `xml:"short"` - CommonlyUsed []*struct { - Common - Used string `xml:"used,attr"` - } `xml:"commonlyUsed"` - ExemplarCity []*Common `xml:"exemplarCity"` - } `xml:"zone"` - Metazone []*struct { - Common - Long []*struct { - Common - Generic []*Common `xml:"generic"` - Standard []*Common `xml:"standard"` - Daylight []*Common `xml:"daylight"` - } `xml:"long"` - Short []*struct { - Common - Generic []*Common `xml:"generic"` - Standard []*Common `xml:"standard"` - Daylight []*Common `xml:"daylight"` - } `xml:"short"` - CommonlyUsed []*struct { - Common - Used string `xml:"used,attr"` - } `xml:"commonlyUsed"` - } `xml:"metazone"` -} - -// LocaleDisplayNames specifies localized display names for for scripts, languages, -// countries, currencies, and variants. -type LocaleDisplayNames struct { - Common - LocaleDisplayPattern *struct { - Common - LocalePattern []*Common `xml:"localePattern"` - LocaleSeparator []*Common `xml:"localeSeparator"` - LocaleKeyTypePattern []*Common `xml:"localeKeyTypePattern"` - } `xml:"localeDisplayPattern"` - Languages *struct { - Common - Language []*Common `xml:"language"` - } `xml:"languages"` - Scripts *struct { - Common - Script []*Common `xml:"script"` - } `xml:"scripts"` - Territories *struct { - Common - Territory []*Common `xml:"territory"` - } `xml:"territories"` - Variants *struct { - Common - Variant []*Common `xml:"variant"` - } `xml:"variants"` - Keys *struct { - Common - Key []*Common `xml:"key"` - } `xml:"keys"` - Types *struct { - Common - Type []*struct { - Common - Key string `xml:"key,attr"` - } `xml:"type"` - } `xml:"types"` - TransformNames *struct { - Common - TransformName []*Common `xml:"transformName"` - } `xml:"transformNames"` - MeasurementSystemNames *struct { - Common - MeasurementSystemName []*Common `xml:"measurementSystemName"` - } `xml:"measurementSystemNames"` - CodePatterns *struct { - Common - CodePattern []*Common `xml:"codePattern"` - } `xml:"codePatterns"` -} - -// Numbers supplies information for formatting and parsing numbers and currencies. -type Numbers struct { - Common - DefaultNumberingSystem []*Common `xml:"defaultNumberingSystem"` - OtherNumberingSystems []*struct { - Common - Native []*Common `xml:"native"` - Traditional []*Common `xml:"traditional"` - Finance []*Common `xml:"finance"` - } `xml:"otherNumberingSystems"` - MinimumGroupingDigits []*Common `xml:"minimumGroupingDigits"` - Symbols []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - Decimal []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"decimal"` - Group []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"group"` - List []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"list"` - PercentSign []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"percentSign"` - NativeZeroDigit []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"nativeZeroDigit"` - PatternDigit []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"patternDigit"` - PlusSign []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"plusSign"` - MinusSign []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"minusSign"` - Exponential []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"exponential"` - SuperscriptingExponent []*Common `xml:"superscriptingExponent"` - PerMille []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"perMille"` - Infinity []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"infinity"` - Nan []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"nan"` - CurrencyDecimal []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"currencyDecimal"` - CurrencyGroup []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"currencyGroup"` - TimeSeparator []*Common `xml:"timeSeparator"` - } `xml:"symbols"` - DecimalFormats []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - DecimalFormatLength []*struct { - Common - DecimalFormat []*struct { - Common - Pattern []*struct { - Common - Numbers string `xml:"numbers,attr"` - Count string `xml:"count,attr"` - } `xml:"pattern"` - } `xml:"decimalFormat"` - } `xml:"decimalFormatLength"` - } `xml:"decimalFormats"` - ScientificFormats []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - ScientificFormatLength []*struct { - Common - ScientificFormat []*struct { - Common - Pattern []*struct { - Common - Numbers string `xml:"numbers,attr"` - Count string `xml:"count,attr"` - } `xml:"pattern"` - } `xml:"scientificFormat"` - } `xml:"scientificFormatLength"` - } `xml:"scientificFormats"` - PercentFormats []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - PercentFormatLength []*struct { - Common - PercentFormat []*struct { - Common - Pattern []*struct { - Common - Numbers string `xml:"numbers,attr"` - Count string `xml:"count,attr"` - } `xml:"pattern"` - } `xml:"percentFormat"` - } `xml:"percentFormatLength"` - } `xml:"percentFormats"` - CurrencyFormats []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - CurrencySpacing []*struct { - Common - BeforeCurrency []*struct { - Common - CurrencyMatch []*Common `xml:"currencyMatch"` - SurroundingMatch []*Common `xml:"surroundingMatch"` - InsertBetween []*Common `xml:"insertBetween"` - } `xml:"beforeCurrency"` - AfterCurrency []*struct { - Common - CurrencyMatch []*Common `xml:"currencyMatch"` - SurroundingMatch []*Common `xml:"surroundingMatch"` - InsertBetween []*Common `xml:"insertBetween"` - } `xml:"afterCurrency"` - } `xml:"currencySpacing"` - CurrencyFormatLength []*struct { - Common - CurrencyFormat []*struct { - Common - Pattern []*struct { - Common - Numbers string `xml:"numbers,attr"` - Count string `xml:"count,attr"` - } `xml:"pattern"` - } `xml:"currencyFormat"` - } `xml:"currencyFormatLength"` - UnitPattern []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"unitPattern"` - } `xml:"currencyFormats"` - Currencies *struct { - Common - Currency []*struct { - Common - Pattern []*struct { - Common - Numbers string `xml:"numbers,attr"` - Count string `xml:"count,attr"` - } `xml:"pattern"` - DisplayName []*struct { - Common - Count string `xml:"count,attr"` - } `xml:"displayName"` - Symbol []*Common `xml:"symbol"` - Decimal []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"decimal"` - Group []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - } `xml:"group"` - } `xml:"currency"` - } `xml:"currencies"` - MiscPatterns []*struct { - Common - NumberSystem string `xml:"numberSystem,attr"` - Pattern []*struct { - Common - Numbers string `xml:"numbers,attr"` - Count string `xml:"count,attr"` - } `xml:"pattern"` - } `xml:"miscPatterns"` -} - -// Version is the version of CLDR from which the XML definitions are generated. -const Version = "27.0.1" diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/codereview.cfg b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/codereview.cfg deleted file mode 100644 index 3f8b14b6..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/codereview.cfg +++ /dev/null @@ -1 +0,0 @@ -issuerepo: golang/go diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/builder.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/builder.go deleted file mode 100644 index 6032a8ee..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/builder.go +++ /dev/null @@ -1,699 +0,0 @@ -// Copyright 2012 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 build - -import ( - "fmt" - "io" - "log" - "sort" - "strings" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm" -) - -// TODO: optimizations: -// - expandElem is currently 20K. By putting unique colElems in a separate -// table and having a byte array of indexes into this table, we can reduce -// the total size to about 7K. By also factoring out the length bytes, we -// can reduce this to about 6K. -// - trie valueBlocks are currently 100K. There are a lot of sparse blocks -// and many consecutive values with the same stride. This can be further -// compacted. -// - Compress secondary weights into 8 bits. -// - Some LDML specs specify a context element. Currently we simply concatenate -// those. Context can be implemented using the contraction trie. If Builder -// could analyze and detect when using a context makes sense, there is no -// need to expose this construct in the API. - -// A Builder builds a root collation table. The user must specify the -// collation elements for each entry. A common use will be to base the weights -// on those specified in the allkeys* file as provided by the UCA or CLDR. -type Builder struct { - index *trieBuilder - root ordering - locale []*Tailoring - t *table - err error - built bool - - minNonVar int // lowest primary recorded for a variable - varTop int // highest primary recorded for a non-variable - - // indexes used for reusing expansions and contractions - expIndex map[string]int // positions of expansions keyed by their string representation - ctHandle map[string]ctHandle // contraction handles keyed by a concatenation of the suffixes - ctElem map[string]int // contraction elements keyed by their string representation -} - -// A Tailoring builds a collation table based on another collation table. -// The table is defined by specifying tailorings to the underlying table. -// See http://unicode.org/reports/tr35/ for an overview of tailoring -// collation tables. The CLDR contains pre-defined tailorings for a variety -// of languages (See http://www.unicode.org/Public/cldr/<version>/core.zip.) -type Tailoring struct { - id string - builder *Builder - index *ordering - - anchor *entry - before bool -} - -// NewBuilder returns a new Builder. -func NewBuilder() *Builder { - return &Builder{ - index: newTrieBuilder(), - root: makeRootOrdering(), - expIndex: make(map[string]int), - ctHandle: make(map[string]ctHandle), - ctElem: make(map[string]int), - } -} - -// Tailoring returns a Tailoring for the given locale. One should -// have completed all calls to Add before calling Tailoring. -func (b *Builder) Tailoring(loc language.Tag) *Tailoring { - t := &Tailoring{ - id: loc.String(), - builder: b, - index: b.root.clone(), - } - t.index.id = t.id - b.locale = append(b.locale, t) - return t -} - -// Add adds an entry to the collation element table, mapping -// a slice of runes to a sequence of collation elements. -// A collation element is specified as list of weights: []int{primary, secondary, ...}. -// The entries are typically obtained from a collation element table -// as defined in http://www.unicode.org/reports/tr10/#Data_Table_Format. -// Note that the collation elements specified by colelems are only used -// as a guide. The actual weights generated by Builder may differ. -// The argument variables is a list of indices into colelems that should contain -// a value for each colelem that is a variable. (See the reference above.) -func (b *Builder) Add(runes []rune, colelems [][]int, variables []int) error { - str := string(runes) - elems := make([]rawCE, len(colelems)) - for i, ce := range colelems { - if len(ce) == 0 { - break - } - elems[i] = makeRawCE(ce, 0) - if len(ce) == 1 { - elems[i].w[1] = defaultSecondary - } - if len(ce) <= 2 { - elems[i].w[2] = defaultTertiary - } - if len(ce) <= 3 { - elems[i].w[3] = ce[0] - } - } - for i, ce := range elems { - p := ce.w[0] - isvar := false - for _, j := range variables { - if i == j { - isvar = true - } - } - if isvar { - if p >= b.minNonVar && b.minNonVar > 0 { - return fmt.Errorf("primary value %X of variable is larger than the smallest non-variable %X", p, b.minNonVar) - } - if p > b.varTop { - b.varTop = p - } - } else if p > 1 { // 1 is a special primary value reserved for FFFE - if p <= b.varTop { - return fmt.Errorf("primary value %X of non-variable is smaller than the highest variable %X", p, b.varTop) - } - if b.minNonVar == 0 || p < b.minNonVar { - b.minNonVar = p - } - } - } - elems, err := convertLargeWeights(elems) - if err != nil { - return err - } - cccs := []uint8{} - nfd := norm.NFD.String(str) - for i := range nfd { - cccs = append(cccs, norm.NFD.PropertiesString(nfd[i:]).CCC()) - } - if len(cccs) < len(elems) { - if len(cccs) > 2 { - return fmt.Errorf("number of decomposed characters should be greater or equal to the number of collation elements for len(colelems) > 3 (%d < %d)", len(cccs), len(elems)) - } - p := len(elems) - 1 - for ; p > 0 && elems[p].w[0] == 0; p-- { - elems[p].ccc = cccs[len(cccs)-1] - } - for ; p >= 0; p-- { - elems[p].ccc = cccs[0] - } - } else { - for i := range elems { - elems[i].ccc = cccs[i] - } - } - // doNorm in collate.go assumes that the following conditions hold. - if len(elems) > 1 && len(cccs) > 1 && cccs[0] != 0 && cccs[0] != cccs[len(cccs)-1] { - return fmt.Errorf("incompatible CCC values for expansion %X (%d)", runes, cccs) - } - b.root.newEntry(str, elems) - return nil -} - -func (t *Tailoring) setAnchor(anchor string) error { - anchor = norm.NFC.String(anchor) - a := t.index.find(anchor) - if a == nil { - a = t.index.newEntry(anchor, nil) - a.implicit = true - a.modified = true - for _, r := range []rune(anchor) { - e := t.index.find(string(r)) - e.lock = true - } - } - t.anchor = a - return nil -} - -// SetAnchor sets the point after which elements passed in subsequent calls to -// Insert will be inserted. It is equivalent to the reset directive in an LDML -// specification. See Insert for an example. -// SetAnchor supports the following logical reset positions: -// <first_tertiary_ignorable/>, <last_teriary_ignorable/>, <first_primary_ignorable/>, -// and <last_non_ignorable/>. -func (t *Tailoring) SetAnchor(anchor string) error { - if err := t.setAnchor(anchor); err != nil { - return err - } - t.before = false - return nil -} - -// SetAnchorBefore is similar to SetAnchor, except that subsequent calls to -// Insert will insert entries before the anchor. -func (t *Tailoring) SetAnchorBefore(anchor string) error { - if err := t.setAnchor(anchor); err != nil { - return err - } - t.before = true - return nil -} - -// Insert sets the ordering of str relative to the entry set by the previous -// call to SetAnchor or Insert. The argument extend corresponds -// to the extend elements as defined in LDML. A non-empty value for extend -// will cause the collation elements corresponding to extend to be appended -// to the collation elements generated for the entry added by Insert. -// This has the same net effect as sorting str after the string anchor+extend. -// See http://www.unicode.org/reports/tr10/#Tailoring_Example for details -// on parametric tailoring and http://unicode.org/reports/tr35/#Collation_Elements -// for full details on LDML. -// -// Examples: create a tailoring for Swedish, where "ä" is ordered after "z" -// at the primary sorting level: -// t := b.Tailoring("se") -// t.SetAnchor("z") -// t.Insert(colltab.Primary, "ä", "") -// Order "ü" after "ue" at the secondary sorting level: -// t.SetAnchor("ue") -// t.Insert(colltab.Secondary, "ü","") -// or -// t.SetAnchor("u") -// t.Insert(colltab.Secondary, "ü", "e") -// Order "q" afer "ab" at the secondary level and "Q" after "q" -// at the tertiary level: -// t.SetAnchor("ab") -// t.Insert(colltab.Secondary, "q", "") -// t.Insert(colltab.Tertiary, "Q", "") -// Order "b" before "a": -// t.SetAnchorBefore("a") -// t.Insert(colltab.Primary, "b", "") -// Order "0" after the last primary ignorable: -// t.SetAnchor("<last_primary_ignorable/>") -// t.Insert(colltab.Primary, "0", "") -func (t *Tailoring) Insert(level colltab.Level, str, extend string) error { - if t.anchor == nil { - return fmt.Errorf("%s:Insert: no anchor point set for tailoring of %s", t.id, str) - } - str = norm.NFC.String(str) - e := t.index.find(str) - if e == nil { - e = t.index.newEntry(str, nil) - } else if e.logical != noAnchor { - return fmt.Errorf("%s:Insert: cannot reinsert logical reset position %q", t.id, e.str) - } - if e.lock { - return fmt.Errorf("%s:Insert: cannot reinsert element %q", t.id, e.str) - } - a := t.anchor - // Find the first element after the anchor which differs at a level smaller or - // equal to the given level. Then insert at this position. - // See http://unicode.org/reports/tr35/#Collation_Elements, Section 5.14.5 for details. - e.before = t.before - if t.before { - t.before = false - if a.prev == nil { - a.insertBefore(e) - } else { - for a = a.prev; a.level > level; a = a.prev { - } - a.insertAfter(e) - } - e.level = level - } else { - for ; a.level > level; a = a.next { - } - e.level = a.level - if a != e { - a.insertAfter(e) - a.level = level - } else { - // We don't set a to prev itself. This has the effect of the entry - // getting new collation elements that are an increment of itself. - // This is intentional. - a.prev.level = level - } - } - e.extend = norm.NFD.String(extend) - e.exclude = false - e.modified = true - e.elems = nil - t.anchor = e - return nil -} - -func (o *ordering) getWeight(e *entry) []rawCE { - if len(e.elems) == 0 && e.logical == noAnchor { - if e.implicit { - for _, r := range e.runes { - e.elems = append(e.elems, o.getWeight(o.find(string(r)))...) - } - } else if e.before { - count := [colltab.Identity + 1]int{} - a := e - for ; a.elems == nil && !a.implicit; a = a.next { - count[a.level]++ - } - e.elems = []rawCE{makeRawCE(a.elems[0].w, a.elems[0].ccc)} - for i := colltab.Primary; i < colltab.Quaternary; i++ { - if count[i] != 0 { - e.elems[0].w[i] -= count[i] - break - } - } - if e.prev != nil { - o.verifyWeights(e.prev, e, e.prev.level) - } - } else { - prev := e.prev - e.elems = nextWeight(prev.level, o.getWeight(prev)) - o.verifyWeights(e, e.next, e.level) - } - } - return e.elems -} - -func (o *ordering) addExtension(e *entry) { - if ex := o.find(e.extend); ex != nil { - e.elems = append(e.elems, ex.elems...) - } else { - for _, r := range []rune(e.extend) { - e.elems = append(e.elems, o.find(string(r)).elems...) - } - } - e.extend = "" -} - -func (o *ordering) verifyWeights(a, b *entry, level colltab.Level) error { - if level == colltab.Identity || b == nil || b.elems == nil || a.elems == nil { - return nil - } - for i := colltab.Primary; i < level; i++ { - if a.elems[0].w[i] < b.elems[0].w[i] { - return nil - } - } - if a.elems[0].w[level] >= b.elems[0].w[level] { - err := fmt.Errorf("%s:overflow: collation elements of %q (%X) overflows those of %q (%X) at level %d (%X >= %X)", o.id, a.str, a.runes, b.str, b.runes, level, a.elems, b.elems) - log.Println(err) - // TODO: return the error instead, or better, fix the conflicting entry by making room. - } - return nil -} - -func (b *Builder) error(e error) { - if e != nil { - b.err = e - } -} - -func (b *Builder) errorID(locale string, e error) { - if e != nil { - b.err = fmt.Errorf("%s:%v", locale, e) - } -} - -// patchNorm ensures that NFC and NFD counterparts are consistent. -func (o *ordering) patchNorm() { - // Insert the NFD counterparts, if necessary. - for _, e := range o.ordered { - nfd := norm.NFD.String(e.str) - if nfd != e.str { - if e0 := o.find(nfd); e0 != nil && !e0.modified { - e0.elems = e.elems - } else if e.modified && !equalCEArrays(o.genColElems(nfd), e.elems) { - e := o.newEntry(nfd, e.elems) - e.modified = true - } - } - } - // Update unchanged composed forms if one of their parts changed. - for _, e := range o.ordered { - nfd := norm.NFD.String(e.str) - if e.modified || nfd == e.str { - continue - } - if e0 := o.find(nfd); e0 != nil { - e.elems = e0.elems - } else { - e.elems = o.genColElems(nfd) - if norm.NFD.LastBoundary([]byte(nfd)) == 0 { - r := []rune(nfd) - head := string(r[0]) - tail := "" - for i := 1; i < len(r); i++ { - s := norm.NFC.String(head + string(r[i])) - if e0 := o.find(s); e0 != nil && e0.modified { - head = s - } else { - tail += string(r[i]) - } - } - e.elems = append(o.genColElems(head), o.genColElems(tail)...) - } - } - } - // Exclude entries for which the individual runes generate the same collation elements. - for _, e := range o.ordered { - if len(e.runes) > 1 && equalCEArrays(o.genColElems(e.str), e.elems) { - e.exclude = true - } - } -} - -func (b *Builder) buildOrdering(o *ordering) { - for _, e := range o.ordered { - o.getWeight(e) - } - for _, e := range o.ordered { - o.addExtension(e) - } - o.patchNorm() - o.sort() - simplify(o) - b.processExpansions(o) // requires simplify - b.processContractions(o) // requires simplify - - t := newNode() - for e := o.front(); e != nil; e, _ = e.nextIndexed() { - if !e.skip() { - ce, err := e.encode() - b.errorID(o.id, err) - t.insert(e.runes[0], ce) - } - } - o.handle = b.index.addTrie(t) -} - -func (b *Builder) build() (*table, error) { - if b.built { - return b.t, b.err - } - b.built = true - b.t = &table{ - maxContractLen: utf8.UTFMax, - variableTop: uint32(b.varTop), - } - - b.buildOrdering(&b.root) - b.t.root = b.root.handle - for _, t := range b.locale { - b.buildOrdering(t.index) - if b.err != nil { - break - } - } - i, err := b.index.generate() - b.t.index = *i - b.error(err) - return b.t, b.err -} - -// Build builds the root Collator. -// TODO: return Weighter instead -func (b *Builder) Build() (colltab.Weighter, error) { - t, err := b.build() - if err != nil { - return nil, err - } - table := colltab.Init(t) - if table == nil { - panic("generated table of incompatible type") - } - return table, nil -} - -// Build builds a Collator for Tailoring t. -func (t *Tailoring) Build() (colltab.Weighter, error) { - // TODO: implement. - return nil, nil -} - -// Print prints the tables for b and all its Tailorings as a Go file -// that can be included in the Collate package. -func (b *Builder) Print(w io.Writer) (n int, err error) { - p := func(nn int, e error) { - n += nn - if err == nil { - err = e - } - } - t, err := b.build() - if err != nil { - return 0, err - } - p(fmt.Fprintf(w, `var availableLocales = "und`)) - for _, loc := range b.locale { - if loc.id != "und" { - p(fmt.Fprintf(w, ",%s", loc.id)) - } - } - p(fmt.Fprint(w, "\"\n\n")) - p(fmt.Fprintf(w, "const varTop = 0x%x\n\n", b.varTop)) - p(fmt.Fprintln(w, "var locales = [...]tableIndex{")) - for _, loc := range b.locale { - if loc.id == "und" { - p(t.fprintIndex(w, loc.index.handle, loc.id)) - } - } - for _, loc := range b.locale { - if loc.id != "und" { - p(t.fprintIndex(w, loc.index.handle, loc.id)) - } - } - p(fmt.Fprint(w, "}\n\n")) - n, _, err = t.fprint(w, "main") - return -} - -// reproducibleFromNFKD checks whether the given expansion could be generated -// from an NFKD expansion. -func reproducibleFromNFKD(e *entry, exp, nfkd []rawCE) bool { - // Length must be equal. - if len(exp) != len(nfkd) { - return false - } - for i, ce := range exp { - // Primary and secondary values should be equal. - if ce.w[0] != nfkd[i].w[0] || ce.w[1] != nfkd[i].w[1] { - return false - } - // Tertiary values should be equal to maxTertiary for third element onwards. - // TODO: there seem to be a lot of cases in CLDR (e.g. ã­ in zh.xml) that can - // simply be dropped. Try this out by dropping the following code. - if i >= 2 && ce.w[2] != maxTertiary { - return false - } - if _, err := makeCE(ce); err != nil { - // Simply return false. The error will be caught elsewhere. - return false - } - } - return true -} - -func simplify(o *ordering) { - // Runes that are a starter of a contraction should not be removed. - // (To date, there is only Kannada character 0CCA.) - keep := make(map[rune]bool) - for e := o.front(); e != nil; e, _ = e.nextIndexed() { - if len(e.runes) > 1 { - keep[e.runes[0]] = true - } - } - // Tag entries for which the runes NFKD decompose to identical values. - for e := o.front(); e != nil; e, _ = e.nextIndexed() { - s := e.str - nfkd := norm.NFKD.String(s) - nfd := norm.NFD.String(s) - if e.decompose || len(e.runes) > 1 || len(e.elems) == 1 || keep[e.runes[0]] || nfkd == nfd { - continue - } - if reproducibleFromNFKD(e, e.elems, o.genColElems(nfkd)) { - e.decompose = true - } - } -} - -// appendExpansion converts the given collation sequence to -// collation elements and adds them to the expansion table. -// It returns an index to the expansion table. -func (b *Builder) appendExpansion(e *entry) int { - t := b.t - i := len(t.expandElem) - ce := uint32(len(e.elems)) - t.expandElem = append(t.expandElem, ce) - for _, w := range e.elems { - ce, err := makeCE(w) - if err != nil { - b.error(err) - return -1 - } - t.expandElem = append(t.expandElem, ce) - } - return i -} - -// processExpansions extracts data necessary to generate -// the extraction tables. -func (b *Builder) processExpansions(o *ordering) { - for e := o.front(); e != nil; e, _ = e.nextIndexed() { - if !e.expansion() { - continue - } - key := fmt.Sprintf("%v", e.elems) - i, ok := b.expIndex[key] - if !ok { - i = b.appendExpansion(e) - b.expIndex[key] = i - } - e.expansionIndex = i - } -} - -func (b *Builder) processContractions(o *ordering) { - // Collate contractions per starter rune. - starters := []rune{} - cm := make(map[rune][]*entry) - for e := o.front(); e != nil; e, _ = e.nextIndexed() { - if e.contraction() { - if len(e.str) > b.t.maxContractLen { - b.t.maxContractLen = len(e.str) - } - r := e.runes[0] - if _, ok := cm[r]; !ok { - starters = append(starters, r) - } - cm[r] = append(cm[r], e) - } - } - // Add entries of single runes that are at a start of a contraction. - for e := o.front(); e != nil; e, _ = e.nextIndexed() { - if !e.contraction() { - r := e.runes[0] - if _, ok := cm[r]; ok { - cm[r] = append(cm[r], e) - } - } - } - // Build the tries for the contractions. - t := b.t - for _, r := range starters { - l := cm[r] - // Compute suffix strings. There are 31 different contraction suffix - // sets for 715 contractions and 82 contraction starter runes as of - // version 6.0.0. - sufx := []string{} - hasSingle := false - for _, e := range l { - if len(e.runes) > 1 { - sufx = append(sufx, string(e.runes[1:])) - } else { - hasSingle = true - } - } - if !hasSingle { - b.error(fmt.Errorf("no single entry for starter rune %U found", r)) - continue - } - // Unique the suffix set. - sort.Strings(sufx) - key := strings.Join(sufx, "\n") - handle, ok := b.ctHandle[key] - if !ok { - var err error - handle, err = t.contractTries.appendTrie(sufx) - if err != nil { - b.error(err) - } - b.ctHandle[key] = handle - } - // Bucket sort entries in index order. - es := make([]*entry, len(l)) - for _, e := range l { - var p, sn int - if len(e.runes) > 1 { - str := []byte(string(e.runes[1:])) - p, sn = t.contractTries.lookup(handle, str) - if sn != len(str) { - log.Fatalf("%s: processContractions: unexpected length for '%X'; len=%d; want %d", o.id, e.runes, sn, len(str)) - } - } - if es[p] != nil { - log.Fatalf("%s: multiple contractions for position %d for rune %U", o.id, p, e.runes[0]) - } - es[p] = e - } - // Create collation elements for contractions. - elems := []uint32{} - for _, e := range es { - ce, err := e.encodeBase() - b.errorID(o.id, err) - elems = append(elems, ce) - } - key = fmt.Sprintf("%v", elems) - i, ok := b.ctElem[key] - if !ok { - i = len(t.contractElem) - b.ctElem[key] = i - t.contractElem = append(t.contractElem, elems...) - } - // Store info in entry for starter rune. - es[0].contractionIndex = i - es[0].contractionHandle = handle - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/builder_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/builder_test.go deleted file mode 100644 index 56830979..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/builder_test.go +++ /dev/null @@ -1,290 +0,0 @@ -// Copyright 2012 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 build - -import "testing" - -// cjk returns an implicit collation element for a CJK rune. -func cjk(r rune) []rawCE { - // A CJK character C is represented in the DUCET as - // [.AAAA.0020.0002.C][.BBBB.0000.0000.C] - // Where AAAA is the most significant 15 bits plus a base value. - // Any base value will work for the test, so we pick the common value of FB40. - const base = 0xFB40 - return []rawCE{ - {w: []int{base + int(r>>15), defaultSecondary, defaultTertiary, int(r)}}, - {w: []int{int(r&0x7FFF) | 0x8000, 0, 0, int(r)}}, - } -} - -func pCE(p int) []rawCE { - return mkCE([]int{p, defaultSecondary, defaultTertiary, 0}, 0) -} - -func pqCE(p, q int) []rawCE { - return mkCE([]int{p, defaultSecondary, defaultTertiary, q}, 0) -} - -func ptCE(p, t int) []rawCE { - return mkCE([]int{p, defaultSecondary, t, 0}, 0) -} - -func ptcCE(p, t int, ccc uint8) []rawCE { - return mkCE([]int{p, defaultSecondary, t, 0}, ccc) -} - -func sCE(s int) []rawCE { - return mkCE([]int{0, s, defaultTertiary, 0}, 0) -} - -func stCE(s, t int) []rawCE { - return mkCE([]int{0, s, t, 0}, 0) -} - -func scCE(s int, ccc uint8) []rawCE { - return mkCE([]int{0, s, defaultTertiary, 0}, ccc) -} - -func mkCE(w []int, ccc uint8) []rawCE { - return []rawCE{rawCE{w, ccc}} -} - -// ducetElem is used to define test data that is used to generate a table. -type ducetElem struct { - str string - ces []rawCE -} - -func newBuilder(t *testing.T, ducet []ducetElem) *Builder { - b := NewBuilder() - for _, e := range ducet { - ces := [][]int{} - for _, ce := range e.ces { - ces = append(ces, ce.w) - } - if err := b.Add([]rune(e.str), ces, nil); err != nil { - t.Errorf(err.Error()) - } - } - b.t = &table{} - b.root.sort() - return b -} - -type convertTest struct { - in, out []rawCE - err bool -} - -var convLargeTests = []convertTest{ - {pCE(0xFB39), pCE(0xFB39), false}, - {cjk(0x2F9B2), pqCE(0x3F9B2, 0x2F9B2), false}, - {pCE(0xFB40), pCE(0), true}, - {append(pCE(0xFB40), pCE(0)[0]), pCE(0), true}, - {pCE(0xFFFE), pCE(illegalOffset), false}, - {pCE(0xFFFF), pCE(illegalOffset + 1), false}, -} - -func TestConvertLarge(t *testing.T) { - for i, tt := range convLargeTests { - e := new(entry) - for _, ce := range tt.in { - e.elems = append(e.elems, makeRawCE(ce.w, ce.ccc)) - } - elems, err := convertLargeWeights(e.elems) - if tt.err { - if err == nil { - t.Errorf("%d: expected error; none found", i) - } - continue - } else if err != nil { - t.Errorf("%d: unexpected error: %v", i, err) - } - if !equalCEArrays(elems, tt.out) { - t.Errorf("%d: conversion was %x; want %x", i, elems, tt.out) - } - } -} - -// Collation element table for simplify tests. -var simplifyTest = []ducetElem{ - {"\u0300", sCE(30)}, // grave - {"\u030C", sCE(40)}, // caron - {"A", ptCE(100, 8)}, - {"D", ptCE(104, 8)}, - {"E", ptCE(105, 8)}, - {"I", ptCE(110, 8)}, - {"z", ptCE(130, 8)}, - {"\u05F2", append(ptCE(200, 4), ptCE(200, 4)[0])}, - {"\u05B7", sCE(80)}, - {"\u00C0", append(ptCE(100, 8), sCE(30)...)}, // A with grave, can be removed - {"\u00C8", append(ptCE(105, 8), sCE(30)...)}, // E with grave - {"\uFB1F", append(ptCE(200, 4), ptCE(200, 4)[0], sCE(80)[0])}, // eliminated by NFD - {"\u00C8\u0302", ptCE(106, 8)}, // block previous from simplifying - {"\u01C5", append(ptCE(104, 9), ptCE(130, 4)[0], stCE(40, maxTertiary)[0])}, // eliminated by NFKD - // no removal: tertiary value of third element is not maxTertiary - {"\u2162", append(ptCE(110, 9), ptCE(110, 4)[0], ptCE(110, 8)[0])}, -} - -var genColTests = []ducetElem{ - {"\uFA70", pqCE(0x1FA70, 0xFA70)}, - {"A\u0300", append(ptCE(100, 8), sCE(30)...)}, - {"A\u0300\uFA70", append(ptCE(100, 8), sCE(30)[0], pqCE(0x1FA70, 0xFA70)[0])}, - {"A\u0300A\u0300", append(ptCE(100, 8), sCE(30)[0], ptCE(100, 8)[0], sCE(30)[0])}, -} - -func TestGenColElems(t *testing.T) { - b := newBuilder(t, simplifyTest[:5]) - - for i, tt := range genColTests { - res := b.root.genColElems(tt.str) - if !equalCEArrays(tt.ces, res) { - t.Errorf("%d: result %X; want %X", i, res, tt.ces) - } - } -} - -type strArray []string - -func (sa strArray) contains(s string) bool { - for _, e := range sa { - if e == s { - return true - } - } - return false -} - -var simplifyRemoved = strArray{"\u00C0", "\uFB1F"} -var simplifyMarked = strArray{"\u01C5"} - -func TestSimplify(t *testing.T) { - b := newBuilder(t, simplifyTest) - o := &b.root - simplify(o) - - for i, tt := range simplifyTest { - if simplifyRemoved.contains(tt.str) { - continue - } - e := o.find(tt.str) - if e.str != tt.str || !equalCEArrays(e.elems, tt.ces) { - t.Errorf("%d: found element %s -> %X; want %s -> %X", i, e.str, e.elems, tt.str, tt.ces) - break - } - } - var i, k int - for e := o.front(); e != nil; e, _ = e.nextIndexed() { - gold := simplifyMarked.contains(e.str) - if gold { - k++ - } - if gold != e.decompose { - t.Errorf("%d: %s has decompose %v; want %v", i, e.str, e.decompose, gold) - } - i++ - } - if k != len(simplifyMarked) { - t.Errorf(" an entry that should be marked as decompose was deleted") - } -} - -var expandTest = []ducetElem{ - {"\u0300", append(scCE(29, 230), scCE(30, 230)...)}, - {"\u00C0", append(ptCE(100, 8), scCE(30, 230)...)}, - {"\u00C8", append(ptCE(105, 8), scCE(30, 230)...)}, - {"\u00C9", append(ptCE(105, 8), scCE(30, 230)...)}, // identical expansion - {"\u05F2", append(ptCE(200, 4), ptCE(200, 4)[0], ptCE(200, 4)[0])}, - {"\u01FF", append(ptCE(200, 4), ptcCE(201, 4, 0)[0], scCE(30, 230)[0])}, -} - -func TestExpand(t *testing.T) { - const ( - totalExpansions = 5 - totalElements = 2 + 2 + 2 + 3 + 3 + totalExpansions - ) - b := newBuilder(t, expandTest) - o := &b.root - b.processExpansions(o) - - e := o.front() - for _, tt := range expandTest { - exp := b.t.expandElem[e.expansionIndex:] - if int(exp[0]) != len(tt.ces) { - t.Errorf("%U: len(expansion)==%d; want %d", []rune(tt.str)[0], exp[0], len(tt.ces)) - } - exp = exp[1:] - for j, w := range tt.ces { - if ce, _ := makeCE(w); exp[j] != ce { - t.Errorf("%U: element %d is %X; want %X", []rune(tt.str)[0], j, exp[j], ce) - } - } - e, _ = e.nextIndexed() - } - // Verify uniquing. - if len(b.t.expandElem) != totalElements { - t.Errorf("len(expandElem)==%d; want %d", len(b.t.expandElem), totalElements) - } -} - -var contractTest = []ducetElem{ - {"abc", pCE(102)}, - {"abd", pCE(103)}, - {"a", pCE(100)}, - {"ab", pCE(101)}, - {"ac", pCE(104)}, - {"bcd", pCE(202)}, - {"b", pCE(200)}, - {"bc", pCE(201)}, - {"bd", pCE(203)}, - // shares suffixes with a* - {"Ab", pCE(301)}, - {"A", pCE(300)}, - {"Ac", pCE(304)}, - {"Abc", pCE(302)}, - {"Abd", pCE(303)}, - // starter to be ignored - {"z", pCE(1000)}, -} - -func TestContract(t *testing.T) { - const ( - totalElements = 5 + 5 + 4 - ) - b := newBuilder(t, contractTest) - o := &b.root - b.processContractions(o) - - indexMap := make(map[int]bool) - handleMap := make(map[rune]*entry) - for e := o.front(); e != nil; e, _ = e.nextIndexed() { - if e.contractionHandle.n > 0 { - handleMap[e.runes[0]] = e - indexMap[e.contractionHandle.index] = true - } - } - // Verify uniquing. - if len(indexMap) != 2 { - t.Errorf("number of tries is %d; want %d", len(indexMap), 2) - } - for _, tt := range contractTest { - e, ok := handleMap[[]rune(tt.str)[0]] - if !ok { - continue - } - str := tt.str[1:] - offset, n := b.t.contractTries.lookup(e.contractionHandle, []byte(str)) - if len(str) != n { - t.Errorf("%s: bytes consumed==%d; want %d", tt.str, n, len(str)) - } - ce := b.t.contractElem[offset+e.contractionIndex] - if want, _ := makeCE(tt.ces[0]); want != ce { - t.Errorf("%s: element %X; want %X", tt.str, ce, want) - } - } - if len(b.t.contractElem) != totalElements { - t.Errorf("len(expandElem)==%d; want %d", len(b.t.contractElem), totalElements) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/colelem.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/colelem.go deleted file mode 100644 index 06fdbd2c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/colelem.go +++ /dev/null @@ -1,294 +0,0 @@ -// Copyright 2012 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 build - -import ( - "fmt" - "unicode" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" -) - -const ( - defaultSecondary = 0x20 - defaultTertiary = 0x2 - maxTertiary = 0x1F -) - -type rawCE struct { - w []int - ccc uint8 -} - -func makeRawCE(w []int, ccc uint8) rawCE { - ce := rawCE{w: make([]int, 4), ccc: ccc} - copy(ce.w, w) - return ce -} - -// A collation element is represented as an uint32. -// In the typical case, a rune maps to a single collation element. If a rune -// can be the start of a contraction or expands into multiple collation elements, -// then the collation element that is associated with a rune will have a special -// form to represent such m to n mappings. Such special collation elements -// have a value >= 0x80000000. - -const ( - maxPrimaryBits = 21 - maxSecondaryBits = 12 - maxTertiaryBits = 8 -) - -func makeCE(ce rawCE) (uint32, error) { - v, e := colltab.MakeElem(ce.w[0], ce.w[1], ce.w[2], ce.ccc) - return uint32(v), e -} - -// For contractions, collation elements are of the form -// 110bbbbb bbbbbbbb iiiiiiii iiiinnnn, where -// - n* is the size of the first node in the contraction trie. -// - i* is the index of the first node in the contraction trie. -// - b* is the offset into the contraction collation element table. -// See contract.go for details on the contraction trie. -const ( - contractID = 0xC0000000 - maxNBits = 4 - maxTrieIndexBits = 12 - maxContractOffsetBits = 13 -) - -func makeContractIndex(h ctHandle, offset int) (uint32, error) { - if h.n >= 1<<maxNBits { - return 0, fmt.Errorf("size of contraction trie node too large: %d >= %d", h.n, 1<<maxNBits) - } - if h.index >= 1<<maxTrieIndexBits { - return 0, fmt.Errorf("size of contraction trie offset too large: %d >= %d", h.index, 1<<maxTrieIndexBits) - } - if offset >= 1<<maxContractOffsetBits { - return 0, fmt.Errorf("contraction offset out of bounds: %x >= %x", offset, 1<<maxContractOffsetBits) - } - ce := uint32(contractID) - ce += uint32(offset << (maxNBits + maxTrieIndexBits)) - ce += uint32(h.index << maxNBits) - ce += uint32(h.n) - return ce, nil -} - -// For expansions, collation elements are of the form -// 11100000 00000000 bbbbbbbb bbbbbbbb, -// where b* is the index into the expansion sequence table. -const ( - expandID = 0xE0000000 - maxExpandIndexBits = 16 -) - -func makeExpandIndex(index int) (uint32, error) { - if index >= 1<<maxExpandIndexBits { - return 0, fmt.Errorf("expansion index out of bounds: %x >= %x", index, 1<<maxExpandIndexBits) - } - return expandID + uint32(index), nil -} - -// Each list of collation elements corresponding to an expansion starts with -// a header indicating the length of the sequence. -func makeExpansionHeader(n int) (uint32, error) { - return uint32(n), nil -} - -// Some runes can be expanded using NFKD decomposition. Instead of storing the full -// sequence of collation elements, we decompose the rune and lookup the collation -// elements for each rune in the decomposition and modify the tertiary weights. -// The collation element, in this case, is of the form -// 11110000 00000000 wwwwwwww vvvvvvvv, where -// - v* is the replacement tertiary weight for the first rune, -// - w* is the replacement tertiary weight for the second rune, -// Tertiary weights of subsequent runes should be replaced with maxTertiary. -// See http://www.unicode.org/reports/tr10/#Compatibility_Decompositions for more details. -const ( - decompID = 0xF0000000 -) - -func makeDecompose(t1, t2 int) (uint32, error) { - if t1 >= 256 || t1 < 0 { - return 0, fmt.Errorf("first tertiary weight out of bounds: %d >= 256", t1) - } - if t2 >= 256 || t2 < 0 { - return 0, fmt.Errorf("second tertiary weight out of bounds: %d >= 256", t2) - } - return uint32(t2<<8+t1) + decompID, nil -} - -const ( - // These constants were taken from http://www.unicode.org/versions/Unicode6.0.0/ch12.pdf. - minUnified rune = 0x4E00 - maxUnified = 0x9FFF - minCompatibility = 0xF900 - maxCompatibility = 0xFAFF - minRare = 0x3400 - maxRare = 0x4DBF -) -const ( - commonUnifiedOffset = 0x10000 - rareUnifiedOffset = 0x20000 // largest rune in common is U+FAFF - otherOffset = 0x50000 // largest rune in rare is U+2FA1D - illegalOffset = otherOffset + int(unicode.MaxRune) - maxPrimary = illegalOffset + 1 -) - -// implicitPrimary returns the primary weight for the a rune -// for which there is no entry for the rune in the collation table. -// We take a different approach from the one specified in -// http://unicode.org/reports/tr10/#Implicit_Weights, -// but preserve the resulting relative ordering of the runes. -func implicitPrimary(r rune) int { - if unicode.Is(unicode.Ideographic, r) { - if r >= minUnified && r <= maxUnified { - // The most common case for CJK. - return int(r) + commonUnifiedOffset - } - if r >= minCompatibility && r <= maxCompatibility { - // This will typically not hit. The DUCET explicitly specifies mappings - // for all characters that do not decompose. - return int(r) + commonUnifiedOffset - } - return int(r) + rareUnifiedOffset - } - return int(r) + otherOffset -} - -// convertLargeWeights converts collation elements with large -// primaries (either double primaries or for illegal runes) -// to our own representation. -// A CJK character C is represented in the DUCET as -// [.FBxx.0020.0002.C][.BBBB.0000.0000.C] -// We will rewrite these characters to a single CE. -// We assume the CJK values start at 0x8000. -// See http://unicode.org/reports/tr10/#Implicit_Weights -func convertLargeWeights(elems []rawCE) (res []rawCE, err error) { - const ( - cjkPrimaryStart = 0xFB40 - rarePrimaryStart = 0xFB80 - otherPrimaryStart = 0xFBC0 - illegalPrimary = 0xFFFE - highBitsMask = 0x3F - lowBitsMask = 0x7FFF - lowBitsFlag = 0x8000 - shiftBits = 15 - ) - for i := 0; i < len(elems); i++ { - ce := elems[i].w - p := ce[0] - if p < cjkPrimaryStart { - continue - } - if p > 0xFFFF { - return elems, fmt.Errorf("found primary weight %X; should be <= 0xFFFF", p) - } - if p >= illegalPrimary { - ce[0] = illegalOffset + p - illegalPrimary - } else { - if i+1 >= len(elems) { - return elems, fmt.Errorf("second part of double primary weight missing: %v", elems) - } - if elems[i+1].w[0]&lowBitsFlag == 0 { - return elems, fmt.Errorf("malformed second part of double primary weight: %v", elems) - } - np := ((p & highBitsMask) << shiftBits) + elems[i+1].w[0]&lowBitsMask - switch { - case p < rarePrimaryStart: - np += commonUnifiedOffset - case p < otherPrimaryStart: - np += rareUnifiedOffset - default: - p += otherOffset - } - ce[0] = np - for j := i + 1; j+1 < len(elems); j++ { - elems[j] = elems[j+1] - } - elems = elems[:len(elems)-1] - } - } - return elems, nil -} - -// nextWeight computes the first possible collation weights following elems -// for the given level. -func nextWeight(level colltab.Level, elems []rawCE) []rawCE { - if level == colltab.Identity { - next := make([]rawCE, len(elems)) - copy(next, elems) - return next - } - next := []rawCE{makeRawCE(elems[0].w, elems[0].ccc)} - next[0].w[level]++ - if level < colltab.Secondary { - next[0].w[colltab.Secondary] = defaultSecondary - } - if level < colltab.Tertiary { - next[0].w[colltab.Tertiary] = defaultTertiary - } - // Filter entries that cannot influence ordering. - for _, ce := range elems[1:] { - skip := true - for i := colltab.Primary; i < level; i++ { - skip = skip && ce.w[i] == 0 - } - if !skip { - next = append(next, ce) - } - } - return next -} - -func nextVal(elems []rawCE, i int, level colltab.Level) (index, value int) { - for ; i < len(elems) && elems[i].w[level] == 0; i++ { - } - if i < len(elems) { - return i, elems[i].w[level] - } - return i, 0 -} - -// compareWeights returns -1 if a < b, 1 if a > b, or 0 otherwise. -// It also returns the collation level at which the difference is found. -func compareWeights(a, b []rawCE) (result int, level colltab.Level) { - for level := colltab.Primary; level < colltab.Identity; level++ { - var va, vb int - for ia, ib := 0, 0; ia < len(a) || ib < len(b); ia, ib = ia+1, ib+1 { - ia, va = nextVal(a, ia, level) - ib, vb = nextVal(b, ib, level) - if va != vb { - if va < vb { - return -1, level - } else { - return 1, level - } - } - } - } - return 0, colltab.Identity -} - -func equalCE(a, b rawCE) bool { - for i := 0; i < 3; i++ { - if b.w[i] != a.w[i] { - return false - } - } - return true -} - -func equalCEArrays(a, b []rawCE) bool { - if len(a) != len(b) { - return false - } - for i := range a { - if !equalCE(a[i], b[i]) { - return false - } - } - return true -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/colelem_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/colelem_test.go deleted file mode 100644 index 22eb612f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/colelem_test.go +++ /dev/null @@ -1,215 +0,0 @@ -// Copyright 2012 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 build - -import ( - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" -) - -type ceTest struct { - f func(in []int) (uint32, error) - arg []int - val uint32 -} - -func normalCE(in []int) (ce uint32, err error) { - return makeCE(rawCE{w: in[:3], ccc: uint8(in[3])}) -} - -func expandCE(in []int) (ce uint32, err error) { - return makeExpandIndex(in[0]) -} - -func contractCE(in []int) (ce uint32, err error) { - return makeContractIndex(ctHandle{in[0], in[1]}, in[2]) -} - -func decompCE(in []int) (ce uint32, err error) { - return makeDecompose(in[0], in[1]) -} - -var ceTests = []ceTest{ - {normalCE, []int{0, 0, 0, 0}, 0xA0000000}, - {normalCE, []int{0, 0x28, 3, 0}, 0xA0002803}, - {normalCE, []int{0, 0x28, 3, 0xFF}, 0xAFF02803}, - {normalCE, []int{100, defaultSecondary, 3, 0}, 0x0000C883}, - // non-ignorable primary with non-default secondary - {normalCE, []int{100, 0x28, defaultTertiary, 0}, 0x4000C828}, - {normalCE, []int{100, defaultSecondary + 8, 3, 0}, 0x0000C983}, - {normalCE, []int{100, 0, 3, 0}, 0xFFFF}, // non-ignorable primary with non-supported secondary - {normalCE, []int{100, 1, 3, 0}, 0xFFFF}, - {normalCE, []int{1 << maxPrimaryBits, defaultSecondary, 0, 0}, 0xFFFF}, - {normalCE, []int{0, 1 << maxSecondaryBits, 0, 0}, 0xFFFF}, - {normalCE, []int{100, defaultSecondary, 1 << maxTertiaryBits, 0}, 0xFFFF}, - {normalCE, []int{0x123, defaultSecondary, 8, 0xFF}, 0x88FF0123}, - {normalCE, []int{0x123, defaultSecondary + 1, 8, 0xFF}, 0xFFFF}, - - {contractCE, []int{0, 0, 0}, 0xC0000000}, - {contractCE, []int{1, 1, 1}, 0xC0010011}, - {contractCE, []int{1, (1 << maxNBits) - 1, 1}, 0xC001001F}, - {contractCE, []int{(1 << maxTrieIndexBits) - 1, 1, 1}, 0xC001FFF1}, - {contractCE, []int{1, 1, (1 << maxContractOffsetBits) - 1}, 0xDFFF0011}, - {contractCE, []int{1, (1 << maxNBits), 1}, 0xFFFF}, - {contractCE, []int{(1 << maxTrieIndexBits), 1, 1}, 0xFFFF}, - {contractCE, []int{1, (1 << maxContractOffsetBits), 1}, 0xFFFF}, - - {expandCE, []int{0}, 0xE0000000}, - {expandCE, []int{5}, 0xE0000005}, - {expandCE, []int{(1 << maxExpandIndexBits) - 1}, 0xE000FFFF}, - {expandCE, []int{1 << maxExpandIndexBits}, 0xFFFF}, - - {decompCE, []int{0, 0}, 0xF0000000}, - {decompCE, []int{1, 1}, 0xF0000101}, - {decompCE, []int{0x1F, 0x1F}, 0xF0001F1F}, - {decompCE, []int{256, 0x1F}, 0xFFFF}, - {decompCE, []int{0x1F, 256}, 0xFFFF}, -} - -func TestColElem(t *testing.T) { - for i, tt := range ceTests { - in := make([]int, len(tt.arg)) - copy(in, tt.arg) - ce, err := tt.f(in) - if tt.val == 0xFFFF { - if err == nil { - t.Errorf("%d: expected error for args %x", i, tt.arg) - } - continue - } - if err != nil { - t.Errorf("%d: unexpected error: %v", i, err.Error()) - } - if ce != tt.val { - t.Errorf("%d: colElem=%X; want %X", i, ce, tt.val) - } - } -} - -func mkRawCES(in [][]int) []rawCE { - out := []rawCE{} - for _, w := range in { - out = append(out, rawCE{w: w}) - } - return out -} - -type weightsTest struct { - a, b [][]int - level colltab.Level - result int -} - -var nextWeightTests = []weightsTest{ - { - a: [][]int{{100, 20, 5, 0}}, - b: [][]int{{101, defaultSecondary, defaultTertiary, 0}}, - level: colltab.Primary, - }, - { - a: [][]int{{100, 20, 5, 0}}, - b: [][]int{{100, 21, defaultTertiary, 0}}, - level: colltab.Secondary, - }, - { - a: [][]int{{100, 20, 5, 0}}, - b: [][]int{{100, 20, 6, 0}}, - level: colltab.Tertiary, - }, - { - a: [][]int{{100, 20, 5, 0}}, - b: [][]int{{100, 20, 5, 0}}, - level: colltab.Identity, - }, -} - -var extra = [][]int{{200, 32, 8, 0}, {0, 32, 8, 0}, {0, 0, 8, 0}, {0, 0, 0, 0}} - -func TestNextWeight(t *testing.T) { - for i, tt := range nextWeightTests { - test := func(l colltab.Level, tt weightsTest, a, gold [][]int) { - res := nextWeight(tt.level, mkRawCES(a)) - if !equalCEArrays(mkRawCES(gold), res) { - t.Errorf("%d:%d: expected weights %d; found %d", i, l, gold, res) - } - } - test(-1, tt, tt.a, tt.b) - for l := colltab.Primary; l <= colltab.Tertiary; l++ { - if tt.level <= l { - test(l, tt, append(tt.a, extra[l]), tt.b) - } else { - test(l, tt, append(tt.a, extra[l]), append(tt.b, extra[l])) - } - } - } -} - -var compareTests = []weightsTest{ - { - [][]int{{100, 20, 5, 0}}, - [][]int{{100, 20, 5, 0}}, - colltab.Identity, - 0, - }, - { - [][]int{{100, 20, 5, 0}, extra[0]}, - [][]int{{100, 20, 5, 1}}, - colltab.Primary, - 1, - }, - { - [][]int{{100, 20, 5, 0}}, - [][]int{{101, 20, 5, 0}}, - colltab.Primary, - -1, - }, - { - [][]int{{101, 20, 5, 0}}, - [][]int{{100, 20, 5, 0}}, - colltab.Primary, - 1, - }, - { - [][]int{{100, 0, 0, 0}, {0, 20, 5, 0}}, - [][]int{{0, 20, 5, 0}, {100, 0, 0, 0}}, - colltab.Identity, - 0, - }, - { - [][]int{{100, 20, 5, 0}}, - [][]int{{100, 21, 5, 0}}, - colltab.Secondary, - -1, - }, - { - [][]int{{100, 20, 5, 0}}, - [][]int{{100, 20, 2, 0}}, - colltab.Tertiary, - 1, - }, - { - [][]int{{100, 20, 5, 1}}, - [][]int{{100, 20, 5, 2}}, - colltab.Quaternary, - -1, - }, -} - -func TestCompareWeights(t *testing.T) { - for i, tt := range compareTests { - test := func(tt weightsTest, a, b [][]int) { - res, level := compareWeights(mkRawCES(a), mkRawCES(b)) - if res != tt.result { - t.Errorf("%d: expected comparisson result %d; found %d", i, tt.result, res) - } - if level != tt.level { - t.Errorf("%d: expected level %d; found %d", i, tt.level, level) - } - } - test(tt, tt.a, tt.b) - test(tt, append(tt.a, extra[0]), append(tt.b, extra[0])) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/contract.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/contract.go deleted file mode 100644 index 86866506..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/contract.go +++ /dev/null @@ -1,307 +0,0 @@ -// Copyright 2012 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 build - -import ( - "fmt" - "io" - "reflect" - "sort" - "strings" -) - -// This file contains code for detecting contractions and generating -// the necessary tables. -// Any Unicode Collation Algorithm (UCA) table entry that has more than -// one rune one the left-hand side is called a contraction. -// See http://www.unicode.org/reports/tr10/#Contractions for more details. -// -// We define the following terms: -// initial: a rune that appears as the first rune in a contraction. -// suffix: a sequence of runes succeeding the initial rune -// in a given contraction. -// non-initial: a rune that appears in a suffix. -// -// A rune may be both a initial and a non-initial and may be so in -// many contractions. An initial may typically also appear by itself. -// In case of ambiguities, the UCA requires we match the longest -// contraction. -// -// Many contraction rules share the same set of possible suffixes. -// We store sets of suffixes in a trie that associates an index with -// each suffix in the set. This index can be used to look up a -// collation element associated with the (starter rune, suffix) pair. -// -// The trie is defined on a UTF-8 byte sequence. -// The overall trie is represented as an array of ctEntries. Each node of the trie -// is represented as a subsequence of ctEntries, where each entry corresponds to -// a possible match of a next character in the search string. An entry -// also includes the length and offset to the next sequence of entries -// to check in case of a match. - -const ( - final = 0 - noIndex = 0xFF -) - -// ctEntry associates to a matching byte an offset and/or next sequence of -// bytes to check. A ctEntry c is called final if a match means that the -// longest suffix has been found. An entry c is final if c.n == 0. -// A single final entry can match a range of characters to an offset. -// A non-final entry always matches a single byte. Note that a non-final -// entry might still resemble a completed suffix. -// Examples: -// The suffix strings "ab" and "ac" can be represented as: -// []ctEntry{ -// {'a', 1, 1, noIndex}, // 'a' by itself does not match, so i is 0xFF. -// {'b', 'c', 0, 1}, // "ab" -> 1, "ac" -> 2 -// } -// -// The suffix strings "ab", "abc", "abd", and "abcd" can be represented as: -// []ctEntry{ -// {'a', 1, 1, noIndex}, // 'a' must be followed by 'b'. -// {'b', 1, 2, 1}, // "ab" -> 1, may be followed by 'c' or 'd'. -// {'d', 'd', final, 3}, // "abd" -> 3 -// {'c', 4, 1, 2}, // "abc" -> 2, may be followed by 'd'. -// {'d', 'd', final, 4}, // "abcd" -> 4 -// } -// See genStateTests in contract_test.go for more examples. -type ctEntry struct { - l uint8 // non-final: byte value to match; final: lowest match in range. - h uint8 // non-final: relative index to next block; final: highest match in range. - n uint8 // non-final: length of next block; final: final - i uint8 // result offset. Will be noIndex if more bytes are needed to complete. -} - -// contractTrieSet holds a set of contraction tries. The tries are stored -// consecutively in the entry field. -type contractTrieSet []struct{ l, h, n, i uint8 } - -// ctHandle is used to identify a trie in the trie set, consisting in an offset -// in the array and the size of the first node. -type ctHandle struct { - index, n int -} - -// appendTrie adds a new trie for the given suffixes to the trie set and returns -// a handle to it. The handle will be invalid on error. -func (ct *contractTrieSet) appendTrie(suffixes []string) (ctHandle, error) { - es := make([]stridx, len(suffixes)) - for i, s := range suffixes { - es[i].str = s - } - sort.Sort(offsetSort(es)) - for i := range es { - es[i].index = i + 1 - } - sort.Sort(genidxSort(es)) - i := len(*ct) - n, err := ct.genStates(es) - if err != nil { - *ct = (*ct)[:i] - return ctHandle{}, err - } - return ctHandle{i, n}, nil -} - -// genStates generates ctEntries for a given suffix set and returns -// the number of entries for the first node. -func (ct *contractTrieSet) genStates(sis []stridx) (int, error) { - if len(sis) == 0 { - return 0, fmt.Errorf("genStates: list of suffices must be non-empty") - } - start := len(*ct) - // create entries for differing first bytes. - for _, si := range sis { - s := si.str - if len(s) == 0 { - continue - } - added := false - c := s[0] - if len(s) > 1 { - for j := len(*ct) - 1; j >= start; j-- { - if (*ct)[j].l == c { - added = true - break - } - } - if !added { - *ct = append(*ct, ctEntry{l: c, i: noIndex}) - } - } else { - for j := len(*ct) - 1; j >= start; j-- { - // Update the offset for longer suffixes with the same byte. - if (*ct)[j].l == c { - (*ct)[j].i = uint8(si.index) - added = true - } - // Extend range of final ctEntry, if possible. - if (*ct)[j].h+1 == c { - (*ct)[j].h = c - added = true - } - } - if !added { - *ct = append(*ct, ctEntry{l: c, h: c, n: final, i: uint8(si.index)}) - } - } - } - n := len(*ct) - start - // Append nodes for the remainder of the suffixes for each ctEntry. - sp := 0 - for i, end := start, len(*ct); i < end; i++ { - fe := (*ct)[i] - if fe.h == 0 { // uninitialized non-final - ln := len(*ct) - start - n - if ln > 0xFF { - return 0, fmt.Errorf("genStates: relative block offset too large: %d > 255", ln) - } - fe.h = uint8(ln) - // Find first non-final strings with same byte as current entry. - for ; sis[sp].str[0] != fe.l; sp++ { - } - se := sp + 1 - for ; se < len(sis) && len(sis[se].str) > 1 && sis[se].str[0] == fe.l; se++ { - } - sl := sis[sp:se] - sp = se - for i, si := range sl { - sl[i].str = si.str[1:] - } - nn, err := ct.genStates(sl) - if err != nil { - return 0, err - } - fe.n = uint8(nn) - (*ct)[i] = fe - } - } - sort.Sort(entrySort((*ct)[start : start+n])) - return n, nil -} - -// There may be both a final and non-final entry for a byte if the byte -// is implied in a range of matches in the final entry. -// We need to ensure that the non-final entry comes first in that case. -type entrySort contractTrieSet - -func (fe entrySort) Len() int { return len(fe) } -func (fe entrySort) Swap(i, j int) { fe[i], fe[j] = fe[j], fe[i] } -func (fe entrySort) Less(i, j int) bool { - return fe[i].l > fe[j].l -} - -// stridx is used for sorting suffixes and their associated offsets. -type stridx struct { - str string - index int -} - -// For computing the offsets, we first sort by size, and then by string. -// This ensures that strings that only differ in the last byte by 1 -// are sorted consecutively in increasing order such that they can -// be packed as a range in a final ctEntry. -type offsetSort []stridx - -func (si offsetSort) Len() int { return len(si) } -func (si offsetSort) Swap(i, j int) { si[i], si[j] = si[j], si[i] } -func (si offsetSort) Less(i, j int) bool { - if len(si[i].str) != len(si[j].str) { - return len(si[i].str) > len(si[j].str) - } - return si[i].str < si[j].str -} - -// For indexing, we want to ensure that strings are sorted in string order, where -// for strings with the same prefix, we put longer strings before shorter ones. -type genidxSort []stridx - -func (si genidxSort) Len() int { return len(si) } -func (si genidxSort) Swap(i, j int) { si[i], si[j] = si[j], si[i] } -func (si genidxSort) Less(i, j int) bool { - if strings.HasPrefix(si[j].str, si[i].str) { - return false - } - if strings.HasPrefix(si[i].str, si[j].str) { - return true - } - return si[i].str < si[j].str -} - -// lookup matches the longest suffix in str and returns the associated offset -// and the number of bytes consumed. -func (ct *contractTrieSet) lookup(h ctHandle, str []byte) (index, ns int) { - states := (*ct)[h.index:] - p := 0 - n := h.n - for i := 0; i < n && p < len(str); { - e := states[i] - c := str[p] - if c >= e.l { - if e.l == c { - p++ - if e.i != noIndex { - index, ns = int(e.i), p - } - if e.n != final { - // set to new state - i, states, n = 0, states[int(e.h)+n:], int(e.n) - } else { - return - } - continue - } else if e.n == final && c <= e.h { - p++ - return int(c-e.l) + int(e.i), p - } - } - i++ - } - return -} - -// print writes the contractTrieSet t as compilable Go code to w. It returns -// the total number of bytes written and the size of the resulting data structure in bytes. -func (t *contractTrieSet) print(w io.Writer, name string) (n, size int, err error) { - update3 := func(nn, sz int, e error) { - n += nn - if err == nil { - err = e - } - size += sz - } - update2 := func(nn int, e error) { update3(nn, 0, e) } - - update3(t.printArray(w, name)) - update2(fmt.Fprintf(w, "var %sContractTrieSet = ", name)) - update3(t.printStruct(w, name)) - update2(fmt.Fprintln(w)) - return -} - -func (ct contractTrieSet) printArray(w io.Writer, name string) (n, size int, err error) { - p := func(f string, a ...interface{}) { - nn, e := fmt.Fprintf(w, f, a...) - n += nn - if err == nil { - err = e - } - } - size = len(ct) * 4 - p("// %sCTEntries: %d entries, %d bytes\n", name, len(ct), size) - p("var %sCTEntries = [%d]struct{l,h,n,i uint8}{\n", name, len(ct)) - for _, fe := range ct { - p("\t{0x%X, 0x%X, %d, %d},\n", fe.l, fe.h, fe.n, fe.i) - } - p("}\n") - return -} - -func (ct contractTrieSet) printStruct(w io.Writer, name string) (n, size int, err error) { - n, err = fmt.Fprintf(w, "contractTrieSet( %sCTEntries[:] )", name) - size = int(reflect.TypeOf(ct).Size()) - return -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/contract_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/contract_test.go deleted file mode 100644 index 0fc944d3..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/contract_test.go +++ /dev/null @@ -1,264 +0,0 @@ -// Copyright 2012 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 build - -import ( - "bytes" - "sort" - "testing" -) - -var largetosmall = []stridx{ - {"a", 5}, - {"ab", 4}, - {"abc", 3}, - {"abcd", 2}, - {"abcde", 1}, - {"abcdef", 0}, -} - -var offsetSortTests = [][]stridx{ - { - {"bcde", 1}, - {"bc", 5}, - {"ab", 4}, - {"bcd", 3}, - {"abcd", 0}, - {"abc", 2}, - }, - largetosmall, -} - -func TestOffsetSort(t *testing.T) { - for i, st := range offsetSortTests { - sort.Sort(offsetSort(st)) - for j, si := range st { - if j != si.index { - t.Errorf("%d: failed: %v", i, st) - } - } - } - for i, tt := range genStateTests { - // ensure input is well-formed - sort.Sort(offsetSort(tt.in)) - for j, si := range tt.in { - if si.index != j+1 { - t.Errorf("%dth sort failed: %v", i, tt.in) - } - } - } -} - -var genidxtest1 = []stridx{ - {"bcde", 3}, - {"bc", 6}, - {"ab", 2}, - {"bcd", 5}, - {"abcd", 0}, - {"abc", 1}, - {"bcdf", 4}, -} - -var genidxSortTests = [][]stridx{ - genidxtest1, - largetosmall, -} - -func TestGenIdxSort(t *testing.T) { - for i, st := range genidxSortTests { - sort.Sort(genidxSort(st)) - for j, si := range st { - if j != si.index { - t.Errorf("%dth sort failed %v", i, st) - break - } - } - } -} - -var entrySortTests = []contractTrieSet{ - { - {10, 0, 1, 3}, - {99, 0, 1, 0}, - {20, 50, 0, 2}, - {30, 0, 1, 1}, - }, -} - -func TestEntrySort(t *testing.T) { - for i, et := range entrySortTests { - sort.Sort(entrySort(et)) - for j, fe := range et { - if j != int(fe.i) { - t.Errorf("%dth sort failed %v", i, et) - break - } - } - } -} - -type GenStateTest struct { - in []stridx - firstBlockLen int - out contractTrieSet -} - -var genStateTests = []GenStateTest{ - {[]stridx{ - {"abc", 1}, - }, - 1, - contractTrieSet{ - {'a', 0, 1, noIndex}, - {'b', 0, 1, noIndex}, - {'c', 'c', final, 1}, - }, - }, - {[]stridx{ - {"abc", 1}, - {"abd", 2}, - {"abe", 3}, - }, - 1, - contractTrieSet{ - {'a', 0, 1, noIndex}, - {'b', 0, 1, noIndex}, - {'c', 'e', final, 1}, - }, - }, - {[]stridx{ - {"abc", 1}, - {"ab", 2}, - {"a", 3}, - }, - 1, - contractTrieSet{ - {'a', 0, 1, 3}, - {'b', 0, 1, 2}, - {'c', 'c', final, 1}, - }, - }, - {[]stridx{ - {"abc", 1}, - {"abd", 2}, - {"ab", 3}, - {"ac", 4}, - {"a", 5}, - {"b", 6}, - }, - 2, - contractTrieSet{ - {'b', 'b', final, 6}, - {'a', 0, 2, 5}, - {'c', 'c', final, 4}, - {'b', 0, 1, 3}, - {'c', 'd', final, 1}, - }, - }, - {[]stridx{ - {"bcde", 2}, - {"bc", 7}, - {"ab", 6}, - {"bcd", 5}, - {"abcd", 1}, - {"abc", 4}, - {"bcdf", 3}, - }, - 2, - contractTrieSet{ - {'b', 3, 1, noIndex}, - {'a', 0, 1, noIndex}, - {'b', 0, 1, 6}, - {'c', 0, 1, 4}, - {'d', 'd', final, 1}, - {'c', 0, 1, 7}, - {'d', 0, 1, 5}, - {'e', 'f', final, 2}, - }, - }, -} - -func TestGenStates(t *testing.T) { - for i, tt := range genStateTests { - si := []stridx{} - for _, e := range tt.in { - si = append(si, e) - } - // ensure input is well-formed - sort.Sort(genidxSort(si)) - ct := contractTrieSet{} - n, _ := ct.genStates(si) - if nn := tt.firstBlockLen; nn != n { - t.Errorf("%d: block len %v; want %v", i, n, nn) - } - if lv, lw := len(ct), len(tt.out); lv != lw { - t.Errorf("%d: len %v; want %v", i, lv, lw) - continue - } - for j, fe := range tt.out { - const msg = "%d:%d: value %s=%v; want %v" - if fe.l != ct[j].l { - t.Errorf(msg, i, j, "l", ct[j].l, fe.l) - } - if fe.h != ct[j].h { - t.Errorf(msg, i, j, "h", ct[j].h, fe.h) - } - if fe.n != ct[j].n { - t.Errorf(msg, i, j, "n", ct[j].n, fe.n) - } - if fe.i != ct[j].i { - t.Errorf(msg, i, j, "i", ct[j].i, fe.i) - } - } - } -} - -func TestLookupContraction(t *testing.T) { - for i, tt := range genStateTests { - input := []string{} - for _, e := range tt.in { - input = append(input, e.str) - } - cts := contractTrieSet{} - h, _ := cts.appendTrie(input) - for j, si := range tt.in { - str := si.str - for _, s := range []string{str, str + "X"} { - msg := "%d:%d: %s(%s) %v; want %v" - idx, sn := cts.lookup(h, []byte(s)) - if idx != si.index { - t.Errorf(msg, i, j, "index", s, idx, si.index) - } - if sn != len(str) { - t.Errorf(msg, i, j, "sn", s, sn, len(str)) - } - } - } - } -} - -func TestPrintContractionTrieSet(t *testing.T) { - testdata := contractTrieSet(genStateTests[4].out) - buf := &bytes.Buffer{} - testdata.print(buf, "test") - if contractTrieOutput != buf.String() { - t.Errorf("output differs; found\n%s", buf.String()) - println(string(buf.Bytes())) - } -} - -const contractTrieOutput = `// testCTEntries: 8 entries, 32 bytes -var testCTEntries = [8]struct{l,h,n,i uint8}{ - {0x62, 0x3, 1, 255}, - {0x61, 0x0, 1, 255}, - {0x62, 0x0, 1, 6}, - {0x63, 0x0, 1, 4}, - {0x64, 0x64, 0, 1}, - {0x63, 0x0, 1, 7}, - {0x64, 0x0, 1, 5}, - {0x65, 0x66, 0, 2}, -} -var testContractTrieSet = contractTrieSet( testCTEntries[:] ) -` diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/order.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/order.go deleted file mode 100644 index 80f6947f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/order.go +++ /dev/null @@ -1,393 +0,0 @@ -// Copyright 2012 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 build - -import ( - "fmt" - "log" - "sort" - "strings" - "unicode" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm" -) - -type logicalAnchor int - -const ( - firstAnchor logicalAnchor = -1 - noAnchor = 0 - lastAnchor = 1 -) - -// entry is used to keep track of a single entry in the collation element table -// during building. Examples of entries can be found in the Default Unicode -// Collation Element Table. -// See http://www.unicode.org/Public/UCA/6.0.0/allkeys.txt. -type entry struct { - str string // same as string(runes) - runes []rune - elems []rawCE // the collation elements - extend string // weights of extend to be appended to elems - before bool // weights relative to next instead of previous. - lock bool // entry is used in extension and can no longer be moved. - - // prev, next, and level are used to keep track of tailorings. - prev, next *entry - level colltab.Level // next differs at this level - skipRemove bool // do not unlink when removed - - decompose bool // can use NFKD decomposition to generate elems - exclude bool // do not include in table - implicit bool // derived, is not included in the list - modified bool // entry was modified in tailoring - logical logicalAnchor - - expansionIndex int // used to store index into expansion table - contractionHandle ctHandle - contractionIndex int // index into contraction elements -} - -func (e *entry) String() string { - return fmt.Sprintf("%X (%q) -> %X (ch:%x; ci:%d, ei:%d)", - e.runes, e.str, e.elems, e.contractionHandle, e.contractionIndex, e.expansionIndex) -} - -func (e *entry) skip() bool { - return e.contraction() -} - -func (e *entry) expansion() bool { - return !e.decompose && len(e.elems) > 1 -} - -func (e *entry) contraction() bool { - return len(e.runes) > 1 -} - -func (e *entry) contractionStarter() bool { - return e.contractionHandle.n != 0 -} - -// nextIndexed gets the next entry that needs to be stored in the table. -// It returns the entry and the collation level at which the next entry differs -// from the current entry. -// Entries that can be explicitly derived and logical reset positions are -// examples of entries that will not be indexed. -func (e *entry) nextIndexed() (*entry, colltab.Level) { - level := e.level - for e = e.next; e != nil && (e.exclude || len(e.elems) == 0); e = e.next { - if e.level < level { - level = e.level - } - } - return e, level -} - -// remove unlinks entry e from the sorted chain and clears the collation -// elements. e may not be at the front or end of the list. This should always -// be the case, as the front and end of the list are always logical anchors, -// which may not be removed. -func (e *entry) remove() { - if e.logical != noAnchor { - log.Fatalf("may not remove anchor %q", e.str) - } - // TODO: need to set e.prev.level to e.level if e.level is smaller? - e.elems = nil - if !e.skipRemove { - if e.prev != nil { - e.prev.next = e.next - } - if e.next != nil { - e.next.prev = e.prev - } - } - e.skipRemove = false -} - -// insertAfter inserts n after e. -func (e *entry) insertAfter(n *entry) { - if e == n { - panic("e == anchor") - } - if e == nil { - panic("unexpected nil anchor") - } - n.remove() - n.decompose = false // redo decomposition test - - n.next = e.next - n.prev = e - if e.next != nil { - e.next.prev = n - } - e.next = n -} - -// insertBefore inserts n before e. -func (e *entry) insertBefore(n *entry) { - if e == n { - panic("e == anchor") - } - if e == nil { - panic("unexpected nil anchor") - } - n.remove() - n.decompose = false // redo decomposition test - - n.prev = e.prev - n.next = e - if e.prev != nil { - e.prev.next = n - } - e.prev = n -} - -func (e *entry) encodeBase() (ce uint32, err error) { - switch { - case e.expansion(): - ce, err = makeExpandIndex(e.expansionIndex) - default: - if e.decompose { - log.Fatal("decompose should be handled elsewhere") - } - ce, err = makeCE(e.elems[0]) - } - return -} - -func (e *entry) encode() (ce uint32, err error) { - if e.skip() { - log.Fatal("cannot build colElem for entry that should be skipped") - } - switch { - case e.decompose: - t1 := e.elems[0].w[2] - t2 := 0 - if len(e.elems) > 1 { - t2 = e.elems[1].w[2] - } - ce, err = makeDecompose(t1, t2) - case e.contractionStarter(): - ce, err = makeContractIndex(e.contractionHandle, e.contractionIndex) - default: - if len(e.runes) > 1 { - log.Fatal("colElem: contractions are handled in contraction trie") - } - ce, err = e.encodeBase() - } - return -} - -// entryLess returns true if a sorts before b and false otherwise. -func entryLess(a, b *entry) bool { - if res, _ := compareWeights(a.elems, b.elems); res != 0 { - return res == -1 - } - if a.logical != noAnchor { - return a.logical == firstAnchor - } - if b.logical != noAnchor { - return b.logical == lastAnchor - } - return a.str < b.str -} - -type sortedEntries []*entry - -func (s sortedEntries) Len() int { - return len(s) -} - -func (s sortedEntries) Swap(i, j int) { - s[i], s[j] = s[j], s[i] -} - -func (s sortedEntries) Less(i, j int) bool { - return entryLess(s[i], s[j]) -} - -type ordering struct { - id string - entryMap map[string]*entry - ordered []*entry - handle *trieHandle -} - -// insert inserts e into both entryMap and ordered. -// Note that insert simply appends e to ordered. To reattain a sorted -// order, o.sort() should be called. -func (o *ordering) insert(e *entry) { - if e.logical == noAnchor { - o.entryMap[e.str] = e - } else { - // Use key format as used in UCA rules. - o.entryMap[fmt.Sprintf("[%s]", e.str)] = e - // Also add index entry for XML format. - o.entryMap[fmt.Sprintf("<%s/>", strings.Replace(e.str, " ", "_", -1))] = e - } - o.ordered = append(o.ordered, e) -} - -// newEntry creates a new entry for the given info and inserts it into -// the index. -func (o *ordering) newEntry(s string, ces []rawCE) *entry { - e := &entry{ - runes: []rune(s), - elems: ces, - str: s, - } - o.insert(e) - return e -} - -// find looks up and returns the entry for the given string. -// It returns nil if str is not in the index and if an implicit value -// cannot be derived, that is, if str represents more than one rune. -func (o *ordering) find(str string) *entry { - e := o.entryMap[str] - if e == nil { - r := []rune(str) - if len(r) == 1 { - const ( - firstHangul = 0xAC00 - lastHangul = 0xD7A3 - ) - if r[0] >= firstHangul && r[0] <= lastHangul { - ce := []rawCE{} - nfd := norm.NFD.String(str) - for _, r := range nfd { - ce = append(ce, o.find(string(r)).elems...) - } - e = o.newEntry(nfd, ce) - } else { - e = o.newEntry(string(r[0]), []rawCE{ - {w: []int{ - implicitPrimary(r[0]), - defaultSecondary, - defaultTertiary, - int(r[0]), - }, - }, - }) - e.modified = true - } - e.exclude = true // do not index implicits - } - } - return e -} - -// makeRootOrdering returns a newly initialized ordering value and populates -// it with a set of logical reset points that can be used as anchors. -// The anchors first_tertiary_ignorable and __END__ will always sort at -// the beginning and end, respectively. This means that prev and next are non-nil -// for any indexed entry. -func makeRootOrdering() ordering { - const max = unicode.MaxRune - o := ordering{ - entryMap: make(map[string]*entry), - } - insert := func(typ logicalAnchor, s string, ce []int) { - e := &entry{ - elems: []rawCE{{w: ce}}, - str: s, - exclude: true, - logical: typ, - } - o.insert(e) - } - insert(firstAnchor, "first tertiary ignorable", []int{0, 0, 0, 0}) - insert(lastAnchor, "last tertiary ignorable", []int{0, 0, 0, max}) - insert(lastAnchor, "last primary ignorable", []int{0, defaultSecondary, defaultTertiary, max}) - insert(lastAnchor, "last non ignorable", []int{maxPrimary, defaultSecondary, defaultTertiary, max}) - insert(lastAnchor, "__END__", []int{1 << maxPrimaryBits, defaultSecondary, defaultTertiary, max}) - return o -} - -// patchForInsert eleminates entries from the list with more than one collation element. -// The next and prev fields of the eliminated entries still point to appropriate -// values in the newly created list. -// It requires that sort has been called. -func (o *ordering) patchForInsert() { - for i := 0; i < len(o.ordered)-1; { - e := o.ordered[i] - lev := e.level - n := e.next - for ; n != nil && len(n.elems) > 1; n = n.next { - if n.level < lev { - lev = n.level - } - n.skipRemove = true - } - for ; o.ordered[i] != n; i++ { - o.ordered[i].level = lev - o.ordered[i].next = n - o.ordered[i+1].prev = e - } - } -} - -// clone copies all ordering of es into a new ordering value. -func (o *ordering) clone() *ordering { - o.sort() - oo := ordering{ - entryMap: make(map[string]*entry), - } - for _, e := range o.ordered { - ne := &entry{ - runes: e.runes, - elems: e.elems, - str: e.str, - decompose: e.decompose, - exclude: e.exclude, - logical: e.logical, - } - oo.insert(ne) - } - oo.sort() // link all ordering. - oo.patchForInsert() - return &oo -} - -// front returns the first entry to be indexed. -// It assumes that sort() has been called. -func (o *ordering) front() *entry { - e := o.ordered[0] - if e.prev != nil { - log.Panicf("unexpected first entry: %v", e) - } - // The first entry is always a logical position, which should not be indexed. - e, _ = e.nextIndexed() - return e -} - -// sort sorts all ordering based on their collation elements and initializes -// the prev, next, and level fields accordingly. -func (o *ordering) sort() { - sort.Sort(sortedEntries(o.ordered)) - l := o.ordered - for i := 1; i < len(l); i++ { - k := i - 1 - l[k].next = l[i] - _, l[k].level = compareWeights(l[k].elems, l[i].elems) - l[i].prev = l[k] - } -} - -// genColElems generates a collation element array from the runes in str. This -// assumes that all collation elements have already been added to the Builder. -func (o *ordering) genColElems(str string) []rawCE { - elems := []rawCE{} - for _, r := range []rune(str) { - for _, ce := range o.find(string(r)).elems { - if ce.w[0] != 0 || ce.w[1] != 0 || ce.w[2] != 0 { - elems = append(elems, ce) - } - } - } - return elems -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/order_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/order_test.go deleted file mode 100644 index 03ca5da1..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/order_test.go +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright 2012 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 build - -import ( - "strconv" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" -) - -type entryTest struct { - f func(in []int) (uint32, error) - arg []int - val uint32 -} - -// makeList returns a list of entries of length n+2, with n normal -// entries plus a leading and trailing anchor. -func makeList(n int) []*entry { - es := make([]*entry, n+2) - weights := []rawCE{{w: []int{100, 20, 5, 0}}} - for i := range es { - runes := []rune{rune(i)} - es[i] = &entry{ - runes: runes, - elems: weights, - } - weights = nextWeight(colltab.Primary, weights) - } - for i := 1; i < len(es); i++ { - es[i-1].next = es[i] - es[i].prev = es[i-1] - _, es[i-1].level = compareWeights(es[i-1].elems, es[i].elems) - } - es[0].exclude = true - es[0].logical = firstAnchor - es[len(es)-1].exclude = true - es[len(es)-1].logical = lastAnchor - return es -} - -func TestNextIndexed(t *testing.T) { - const n = 5 - es := makeList(n) - for i := int64(0); i < 1<<n; i++ { - mask := strconv.FormatInt(i+(1<<n), 2) - for i, c := range mask { - es[i].exclude = c == '1' - } - e := es[0] - for i, c := range mask { - if c == '0' { - e, _ = e.nextIndexed() - if e != es[i] { - t.Errorf("%d: expected entry %d; found %d", i, es[i].elems, e.elems) - } - } - } - if e, _ = e.nextIndexed(); e != nil { - t.Errorf("%d: expected nil entry; found %d", i, e.elems) - } - } -} - -func TestRemove(t *testing.T) { - const n = 5 - for i := int64(0); i < 1<<n; i++ { - es := makeList(n) - mask := strconv.FormatInt(i+(1<<n), 2) - for i, c := range mask { - if c == '0' { - es[i].remove() - } - } - e := es[0] - for i, c := range mask { - if c == '1' { - if e != es[i] { - t.Errorf("%d: expected entry %d; found %d", i, es[i].elems, e.elems) - } - e, _ = e.nextIndexed() - } - } - if e != nil { - t.Errorf("%d: expected nil entry; found %d", i, e.elems) - } - } -} - -// nextPerm generates the next permutation of the array. The starting -// permutation is assumed to be a list of integers sorted in increasing order. -// It returns false if there are no more permuations left. -func nextPerm(a []int) bool { - i := len(a) - 2 - for ; i >= 0; i-- { - if a[i] < a[i+1] { - break - } - } - if i < 0 { - return false - } - for j := len(a) - 1; j >= i; j-- { - if a[j] > a[i] { - a[i], a[j] = a[j], a[i] - break - } - } - for j := i + 1; j < (len(a)+i+1)/2; j++ { - a[j], a[len(a)+i-j] = a[len(a)+i-j], a[j] - } - return true -} - -func TestInsertAfter(t *testing.T) { - const n = 5 - orig := makeList(n) - perm := make([]int, n) - for i := range perm { - perm[i] = i + 1 - } - for ok := true; ok; ok = nextPerm(perm) { - es := makeList(n) - last := es[0] - for _, i := range perm { - last.insertAfter(es[i]) - last = es[i] - } - for _, e := range es { - e.elems = es[0].elems - } - e := es[0] - for _, i := range perm { - e, _ = e.nextIndexed() - if e.runes[0] != orig[i].runes[0] { - t.Errorf("%d:%d: expected entry %X; found %X", perm, i, orig[i].runes, e.runes) - break - } - } - } -} - -func TestInsertBefore(t *testing.T) { - const n = 5 - orig := makeList(n) - perm := make([]int, n) - for i := range perm { - perm[i] = i + 1 - } - for ok := true; ok; ok = nextPerm(perm) { - es := makeList(n) - last := es[len(es)-1] - for _, i := range perm { - last.insertBefore(es[i]) - last = es[i] - } - for _, e := range es { - e.elems = es[0].elems - } - e := es[0] - for i := n - 1; i >= 0; i-- { - e, _ = e.nextIndexed() - if e.runes[0] != rune(perm[i]) { - t.Errorf("%d:%d: expected entry %X; found %X", perm, i, orig[i].runes, e.runes) - break - } - } - } -} - -type entryLessTest struct { - a, b *entry - res bool -} - -var ( - w1 = []rawCE{{w: []int{100, 20, 5, 5}}} - w2 = []rawCE{{w: []int{101, 20, 5, 5}}} -) - -var entryLessTests = []entryLessTest{ - {&entry{str: "a", elems: w1}, - &entry{str: "a", elems: w1}, - false, - }, - {&entry{str: "a", elems: w1}, - &entry{str: "a", elems: w2}, - true, - }, - {&entry{str: "a", elems: w1}, - &entry{str: "b", elems: w1}, - true, - }, - {&entry{str: "a", elems: w2}, - &entry{str: "a", elems: w1}, - false, - }, - {&entry{str: "c", elems: w1}, - &entry{str: "b", elems: w1}, - false, - }, - {&entry{str: "a", elems: w1, logical: firstAnchor}, - &entry{str: "a", elems: w1}, - true, - }, - {&entry{str: "a", elems: w1}, - &entry{str: "b", elems: w1, logical: firstAnchor}, - false, - }, - {&entry{str: "b", elems: w1}, - &entry{str: "a", elems: w1, logical: lastAnchor}, - true, - }, - {&entry{str: "a", elems: w1, logical: lastAnchor}, - &entry{str: "c", elems: w1}, - false, - }, -} - -func TestEntryLess(t *testing.T) { - for i, tt := range entryLessTests { - if res := entryLess(tt.a, tt.b); res != tt.res { - t.Errorf("%d: was %v; want %v", i, res, tt.res) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/table.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/table.go deleted file mode 100644 index 3aaf37c3..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/table.go +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2012 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 build - -import ( - "fmt" - "io" - "reflect" -) - -// table is an intermediate structure that roughly resembles the table in collate. -// It implements the non-exported interface collate.tableInitializer -type table struct { - index trie // main trie - root *trieHandle - - // expansion info - expandElem []uint32 - - // contraction info - contractTries contractTrieSet - contractElem []uint32 - maxContractLen int - variableTop uint32 -} - -func (t *table) TrieIndex() []uint16 { - return t.index.index -} - -func (t *table) TrieValues() []uint32 { - return t.index.values -} - -func (t *table) FirstBlockOffsets() (i, v uint16) { - return t.root.lookupStart, t.root.valueStart -} - -func (t *table) ExpandElems() []uint32 { - return t.expandElem -} - -func (t *table) ContractTries() []struct{ l, h, n, i uint8 } { - return t.contractTries -} - -func (t *table) ContractElems() []uint32 { - return t.contractElem -} - -func (t *table) MaxContractLen() int { - return t.maxContractLen -} - -func (t *table) VariableTop() uint32 { - return t.variableTop -} - -// print writes the table as Go compilable code to w. It prefixes the -// variable names with name. It returns the number of bytes written -// and the size of the resulting table. -func (t *table) fprint(w io.Writer, name string) (n, size int, err error) { - update := func(nn, sz int, e error) { - n += nn - if err == nil { - err = e - } - size += sz - } - // Write arrays needed for the structure. - update(printColElems(w, t.expandElem, name+"ExpandElem")) - update(printColElems(w, t.contractElem, name+"ContractElem")) - update(t.index.printArrays(w, name)) - update(t.contractTries.printArray(w, name)) - - nn, e := fmt.Fprintf(w, "// Total size of %sTable is %d bytes\n", name, size) - update(nn, 0, e) - return -} - -func (t *table) fprintIndex(w io.Writer, h *trieHandle, id string) (n int, err error) { - p := func(f string, a ...interface{}) { - nn, e := fmt.Fprintf(w, f, a...) - n += nn - if err == nil { - err = e - } - } - p("\t{ // %s\n", id) - p("\t\tlookupOffset: 0x%x,\n", h.lookupStart) - p("\t\tvaluesOffset: 0x%x,\n", h.valueStart) - p("\t},\n") - return -} - -func printColElems(w io.Writer, a []uint32, name string) (n, sz int, err error) { - p := func(f string, a ...interface{}) { - nn, e := fmt.Fprintf(w, f, a...) - n += nn - if err == nil { - err = e - } - } - sz = len(a) * int(reflect.TypeOf(uint32(0)).Size()) - p("// %s: %d entries, %d bytes\n", name, len(a), sz) - p("var %s = [%d]uint32 {", name, len(a)) - for i, c := range a { - switch { - case i%64 == 0: - p("\n\t// Block %d, offset 0x%x\n", i/64, i) - case (i%64)%6 == 0: - p("\n\t") - } - p("0x%.8X, ", c) - } - p("\n}\n\n") - return -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/trie.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/trie.go deleted file mode 100644 index 9404a346..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/trie.go +++ /dev/null @@ -1,290 +0,0 @@ -// Copyright 2012 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. - -// The trie in this file is used to associate the first full character -// in a UTF-8 string to a collation element. -// All but the last byte in a UTF-8 byte sequence are -// used to look up offsets in the index table to be used for the next byte. -// The last byte is used to index into a table of collation elements. -// This file contains the code for the generation of the trie. - -package build - -import ( - "fmt" - "hash/fnv" - "io" - "reflect" -) - -const ( - blockSize = 64 - blockOffset = 2 // Subtract 2 blocks to compensate for the 0x80 added to continuation bytes. -) - -type trieHandle struct { - lookupStart uint16 // offset in table for first byte - valueStart uint16 // offset in table for first byte -} - -type trie struct { - index []uint16 - values []uint32 -} - -// trieNode is the intermediate trie structure used for generating a trie. -type trieNode struct { - index []*trieNode - value []uint32 - b byte - refValue uint16 - refIndex uint16 -} - -func newNode() *trieNode { - return &trieNode{ - index: make([]*trieNode, 64), - value: make([]uint32, 128), // root node size is 128 instead of 64 - } -} - -func (n *trieNode) isInternal() bool { - return n.value != nil -} - -func (n *trieNode) insert(r rune, value uint32) { - const maskx = 0x3F // mask out two most-significant bits - str := string(r) - if len(str) == 1 { - n.value[str[0]] = value - return - } - for i := 0; i < len(str)-1; i++ { - b := str[i] & maskx - if n.index == nil { - n.index = make([]*trieNode, blockSize) - } - nn := n.index[b] - if nn == nil { - nn = &trieNode{} - nn.b = b - n.index[b] = nn - } - n = nn - } - if n.value == nil { - n.value = make([]uint32, blockSize) - } - b := str[len(str)-1] & maskx - n.value[b] = value -} - -type trieBuilder struct { - t *trie - - roots []*trieHandle - - lookupBlocks []*trieNode - valueBlocks []*trieNode - - lookupBlockIdx map[uint32]*trieNode - valueBlockIdx map[uint32]*trieNode -} - -func newTrieBuilder() *trieBuilder { - index := &trieBuilder{} - index.lookupBlocks = make([]*trieNode, 0) - index.valueBlocks = make([]*trieNode, 0) - index.lookupBlockIdx = make(map[uint32]*trieNode) - index.valueBlockIdx = make(map[uint32]*trieNode) - // The third nil is the default null block. The other two blocks - // are used to guarantee an offset of at least 3 for each block. - index.lookupBlocks = append(index.lookupBlocks, nil, nil, nil) - index.t = &trie{} - return index -} - -func (b *trieBuilder) computeOffsets(n *trieNode) *trieNode { - hasher := fnv.New32() - if n.index != nil { - for i, nn := range n.index { - var vi, vv uint16 - if nn != nil { - nn = b.computeOffsets(nn) - n.index[i] = nn - vi = nn.refIndex - vv = nn.refValue - } - hasher.Write([]byte{byte(vi >> 8), byte(vi)}) - hasher.Write([]byte{byte(vv >> 8), byte(vv)}) - } - h := hasher.Sum32() - nn, ok := b.lookupBlockIdx[h] - if !ok { - n.refIndex = uint16(len(b.lookupBlocks)) - blockOffset - b.lookupBlocks = append(b.lookupBlocks, n) - b.lookupBlockIdx[h] = n - } else { - n = nn - } - } else { - for _, v := range n.value { - hasher.Write([]byte{byte(v >> 24), byte(v >> 16), byte(v >> 8), byte(v)}) - } - h := hasher.Sum32() - nn, ok := b.valueBlockIdx[h] - if !ok { - n.refValue = uint16(len(b.valueBlocks)) - blockOffset - n.refIndex = n.refValue - b.valueBlocks = append(b.valueBlocks, n) - b.valueBlockIdx[h] = n - } else { - n = nn - } - } - return n -} - -func (b *trieBuilder) addStartValueBlock(n *trieNode) uint16 { - hasher := fnv.New32() - for _, v := range n.value[:2*blockSize] { - hasher.Write([]byte{byte(v >> 24), byte(v >> 16), byte(v >> 8), byte(v)}) - } - h := hasher.Sum32() - nn, ok := b.valueBlockIdx[h] - if !ok { - n.refValue = uint16(len(b.valueBlocks)) - n.refIndex = n.refValue - b.valueBlocks = append(b.valueBlocks, n) - // Add a dummy block to accommodate the double block size. - b.valueBlocks = append(b.valueBlocks, nil) - b.valueBlockIdx[h] = n - } else { - n = nn - } - return n.refValue -} - -func genValueBlock(t *trie, n *trieNode) { - if n != nil { - for _, v := range n.value { - t.values = append(t.values, v) - } - } -} - -func genLookupBlock(t *trie, n *trieNode) { - for _, nn := range n.index { - v := uint16(0) - if nn != nil { - if n.index != nil { - v = nn.refIndex - } else { - v = nn.refValue - } - } - t.index = append(t.index, v) - } -} - -func (b *trieBuilder) addTrie(n *trieNode) *trieHandle { - h := &trieHandle{} - b.roots = append(b.roots, h) - h.valueStart = b.addStartValueBlock(n) - if len(b.roots) == 1 { - // We insert a null block after the first start value block. - // This ensures that continuation bytes UTF-8 sequences of length - // greater than 2 will automatically hit a null block if there - // was an undefined entry. - b.valueBlocks = append(b.valueBlocks, nil) - } - n = b.computeOffsets(n) - // Offset by one extra block as the first byte starts at 0xC0 instead of 0x80. - h.lookupStart = n.refIndex - 1 - return h -} - -// generate generates and returns the trie for n. -func (b *trieBuilder) generate() (t *trie, err error) { - t = b.t - if len(b.valueBlocks) >= 1<<16 { - return nil, fmt.Errorf("maximum number of value blocks exceeded (%d > %d)", len(b.valueBlocks), 1<<16) - } - if len(b.lookupBlocks) >= 1<<16 { - return nil, fmt.Errorf("maximum number of lookup blocks exceeded (%d > %d)", len(b.lookupBlocks), 1<<16) - } - genValueBlock(t, b.valueBlocks[0]) - genValueBlock(t, &trieNode{value: make([]uint32, 64)}) - for i := 2; i < len(b.valueBlocks); i++ { - genValueBlock(t, b.valueBlocks[i]) - } - n := &trieNode{index: make([]*trieNode, 64)} - genLookupBlock(t, n) - genLookupBlock(t, n) - genLookupBlock(t, n) - for i := 3; i < len(b.lookupBlocks); i++ { - genLookupBlock(t, b.lookupBlocks[i]) - } - return b.t, nil -} - -func (t *trie) printArrays(w io.Writer, name string) (n, size int, err error) { - p := func(f string, a ...interface{}) { - nn, e := fmt.Fprintf(w, f, a...) - n += nn - if err == nil { - err = e - } - } - nv := len(t.values) - p("// %sValues: %d entries, %d bytes\n", name, nv, nv*4) - p("// Block 2 is the null block.\n") - p("var %sValues = [%d]uint32 {", name, nv) - var printnewline bool - for i, v := range t.values { - if i%blockSize == 0 { - p("\n\t// Block %#x, offset %#x", i/blockSize, i) - } - if i%4 == 0 { - printnewline = true - } - if v != 0 { - if printnewline { - p("\n\t") - printnewline = false - } - p("%#04x:%#08x, ", i, v) - } - } - p("\n}\n\n") - ni := len(t.index) - p("// %sLookup: %d entries, %d bytes\n", name, ni, ni*2) - p("// Block 0 is the null block.\n") - p("var %sLookup = [%d]uint16 {", name, ni) - printnewline = false - for i, v := range t.index { - if i%blockSize == 0 { - p("\n\t// Block %#x, offset %#x", i/blockSize, i) - } - if i%8 == 0 { - printnewline = true - } - if v != 0 { - if printnewline { - p("\n\t") - printnewline = false - } - p("%#03x:%#02x, ", i, v) - } - } - p("\n}\n\n") - return n, nv*4 + ni*2, err -} - -func (t *trie) printStruct(w io.Writer, handle *trieHandle, name string) (n, sz int, err error) { - const msg = "trie{ %sLookup[%d:], %sValues[%d:], %sLookup[:], %sValues[:]}" - n, err = fmt.Fprintf(w, msg, name, handle.lookupStart*blockSize, name, handle.valueStart*blockSize, name, name) - sz += int(reflect.TypeOf(trie{}).Size()) - return -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/trie_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/trie_test.go deleted file mode 100644 index 4d4f6e4d..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build/trie_test.go +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2012 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 build - -import ( - "bytes" - "fmt" - "testing" -) - -// We take the smallest, largest and an arbitrary value for each -// of the UTF-8 sequence lengths. -var testRunes = []rune{ - 0x01, 0x0C, 0x7F, // 1-byte sequences - 0x80, 0x100, 0x7FF, // 2-byte sequences - 0x800, 0x999, 0xFFFF, // 3-byte sequences - 0x10000, 0x10101, 0x10FFFF, // 4-byte sequences - 0x200, 0x201, 0x202, 0x210, 0x215, // five entries in one sparse block -} - -func makeTestTrie(t *testing.T) trie { - n := newNode() - for i, r := range testRunes { - n.insert(r, uint32(i)) - } - idx := newTrieBuilder() - idx.addTrie(n) - tr, err := idx.generate() - if err != nil { - t.Errorf(err.Error()) - } - return *tr -} - -func TestGenerateTrie(t *testing.T) { - testdata := makeTestTrie(t) - buf := &bytes.Buffer{} - testdata.printArrays(buf, "test") - fmt.Fprintf(buf, "var testTrie = ") - testdata.printStruct(buf, &trieHandle{19, 0}, "test") - if output != buf.String() { - t.Error("output differs") - } -} - -var output = `// testValues: 832 entries, 3328 bytes -// Block 2 is the null block. -var testValues = [832]uint32 { - // Block 0x0, offset 0x0 - 0x000c:0x00000001, - // Block 0x1, offset 0x40 - 0x007f:0x00000002, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0x00c0:0x00000003, - // Block 0x4, offset 0x100 - 0x0100:0x00000004, - // Block 0x5, offset 0x140 - 0x0140:0x0000000c, 0x0141:0x0000000d, 0x0142:0x0000000e, - 0x0150:0x0000000f, - 0x0155:0x00000010, - // Block 0x6, offset 0x180 - 0x01bf:0x00000005, - // Block 0x7, offset 0x1c0 - 0x01c0:0x00000006, - // Block 0x8, offset 0x200 - 0x0219:0x00000007, - // Block 0x9, offset 0x240 - 0x027f:0x00000008, - // Block 0xa, offset 0x280 - 0x0280:0x00000009, - // Block 0xb, offset 0x2c0 - 0x02c1:0x0000000a, - // Block 0xc, offset 0x300 - 0x033f:0x0000000b, -} - -// testLookup: 640 entries, 1280 bytes -// Block 0 is the null block. -var testLookup = [640]uint16 { - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0x0e0:0x05, 0x0e6:0x06, - // Block 0x4, offset 0x100 - 0x13f:0x07, - // Block 0x5, offset 0x140 - 0x140:0x08, 0x144:0x09, - // Block 0x6, offset 0x180 - 0x190:0x03, - // Block 0x7, offset 0x1c0 - 0x1ff:0x0a, - // Block 0x8, offset 0x200 - 0x20f:0x05, - // Block 0x9, offset 0x240 - 0x242:0x01, 0x244:0x02, - 0x248:0x03, - 0x25f:0x04, - 0x260:0x01, - 0x26f:0x02, - 0x270:0x04, 0x274:0x06, -} - -var testTrie = trie{ testLookup[1216:], testValues[0:], testLookup[:], testValues[:]}` diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/collate.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/collate.go deleted file mode 100644 index d8830050..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/collate.go +++ /dev/null @@ -1,405 +0,0 @@ -// Copyright 2012 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: remove hard-coded versions when we have implemented fractional weights. -// The current implementation is incompatible with later CLDR versions. -//go:generate go run maketables.go -cldr=23 -unicode=6.2.0 - -// Package collate contains types for comparing and sorting Unicode strings -// according to a given collation order. Package locale provides a high-level -// interface to collation. Users should typically use that package instead. -package collate - -import ( - "bytes" - "strings" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" - newcolltab "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -// Collator provides functionality for comparing strings for a given -// collation order. -type Collator struct { - options - - sorter sorter - - _iter [2]iter -} - -func (c *Collator) iter(i int) *iter { - // TODO: evaluate performance for making the second iterator optional. - return &c._iter[i] -} - -// Supported returns the list of languages for which collating differs from its parent. -func Supported() []language.Tag { - // TODO: use language.Coverage instead. - - t := make([]language.Tag, len(tags)) - copy(t, tags) - return t -} - -func init() { - ids := strings.Split(availableLocales, ",") - tags = make([]language.Tag, len(ids)) - for i, s := range ids { - tags[i] = language.Raw.MustParse(s) - } -} - -var tags []language.Tag - -// New returns a new Collator initialized for the given locale. -func New(t language.Tag, o ...Option) *Collator { - index := newcolltab.MatchLang(t, tags) - c := newCollator(colltab.Init(locales[index])) - - // Set options from the user-supplied tag. - c.setFromTag(t) - - // Set the user-supplied options. - c.setOptions(o) - - c.init() - return c -} - -// NewFromTable returns a new Collator for the given Weighter. -func NewFromTable(w colltab.Weighter, o ...Option) *Collator { - c := newCollator(w) - c.setOptions(o) - c.init() - return c -} - -func (c *Collator) init() { - if c.numeric { - c.t = colltab.NewNumericWeighter(c.t) - } - c._iter[0].init(c) - c._iter[1].init(c) -} - -// Buffer holds keys generated by Key and KeyString. -type Buffer struct { - buf [4096]byte - key []byte -} - -func (b *Buffer) init() { - if b.key == nil { - b.key = b.buf[:0] - } -} - -// Reset clears the buffer from previous results generated by Key and KeyString. -func (b *Buffer) Reset() { - b.key = b.key[:0] -} - -// Compare returns an integer comparing the two byte slices. -// The result will be 0 if a==b, -1 if a < b, and +1 if a > b. -func (c *Collator) Compare(a, b []byte) int { - // TODO: skip identical prefixes once we have a fast way to detect if a rune is - // part of a contraction. This would lead to roughly a 10% speedup for the colcmp regtest. - c.iter(0).SetInput(a) - c.iter(1).SetInput(b) - if res := c.compare(); res != 0 { - return res - } - if !c.ignore[colltab.Identity] { - return bytes.Compare(a, b) - } - return 0 -} - -// CompareString returns an integer comparing the two strings. -// The result will be 0 if a==b, -1 if a < b, and +1 if a > b. -func (c *Collator) CompareString(a, b string) int { - // TODO: skip identical prefixes once we have a fast way to detect if a rune is - // part of a contraction. This would lead to roughly a 10% speedup for the colcmp regtest. - c.iter(0).SetInputString(a) - c.iter(1).SetInputString(b) - if res := c.compare(); res != 0 { - return res - } - if !c.ignore[colltab.Identity] { - if a < b { - return -1 - } else if a > b { - return 1 - } - } - return 0 -} - -func compareLevel(f func(i *iter) int, a, b *iter) int { - a.pce = 0 - b.pce = 0 - for { - va := f(a) - vb := f(b) - if va != vb { - if va < vb { - return -1 - } - return 1 - } else if va == 0 { - break - } - } - return 0 -} - -func (c *Collator) compare() int { - ia, ib := c.iter(0), c.iter(1) - // Process primary level - if c.alternate != altShifted { - // TODO: implement script reordering - if res := compareLevel((*iter).nextPrimary, ia, ib); res != 0 { - return res - } - } else { - // TODO: handle shifted - } - if !c.ignore[colltab.Secondary] { - f := (*iter).nextSecondary - if c.backwards { - f = (*iter).prevSecondary - } - if res := compareLevel(f, ia, ib); res != 0 { - return res - } - } - // TODO: special case handling (Danish?) - if !c.ignore[colltab.Tertiary] || c.caseLevel { - if res := compareLevel((*iter).nextTertiary, ia, ib); res != 0 { - return res - } - if !c.ignore[colltab.Quaternary] { - if res := compareLevel((*iter).nextQuaternary, ia, ib); res != 0 { - return res - } - } - } - return 0 -} - -// Key returns the collation key for str. -// Passing the buffer buf may avoid memory allocations. -// The returned slice will point to an allocation in Buffer and will remain -// valid until the next call to buf.Reset(). -func (c *Collator) Key(buf *Buffer, str []byte) []byte { - // See http://www.unicode.org/reports/tr10/#Main_Algorithm for more details. - buf.init() - return c.key(buf, c.getColElems(str)) -} - -// KeyFromString returns the collation key for str. -// Passing the buffer buf may avoid memory allocations. -// The returned slice will point to an allocation in Buffer and will retain -// valid until the next call to buf.ResetKeys(). -func (c *Collator) KeyFromString(buf *Buffer, str string) []byte { - // See http://www.unicode.org/reports/tr10/#Main_Algorithm for more details. - buf.init() - return c.key(buf, c.getColElemsString(str)) -} - -func (c *Collator) key(buf *Buffer, w []colltab.Elem) []byte { - processWeights(c.alternate, c.t.Top(), w) - kn := len(buf.key) - c.keyFromElems(buf, w) - return buf.key[kn:] -} - -func (c *Collator) getColElems(str []byte) []colltab.Elem { - i := c.iter(0) - i.SetInput(str) - for i.Next() { - } - return i.Elems -} - -func (c *Collator) getColElemsString(str string) []colltab.Elem { - i := c.iter(0) - i.SetInputString(str) - for i.Next() { - } - return i.Elems -} - -type iter struct { - wa [512]colltab.Elem - - newcolltab.Iter - pce int -} - -func (i *iter) init(c *Collator) { - i.Weighter = c.t - i.Elems = i.wa[:0] -} - -func (i *iter) nextPrimary() int { - for { - for ; i.pce < i.N; i.pce++ { - if v := i.Elems[i.pce].Primary(); v != 0 { - i.pce++ - return v - } - } - if !i.Next() { - return 0 - } - } - panic("should not reach here") -} - -func (i *iter) nextSecondary() int { - for ; i.pce < len(i.Elems); i.pce++ { - if v := i.Elems[i.pce].Secondary(); v != 0 { - i.pce++ - return v - } - } - return 0 -} - -func (i *iter) prevSecondary() int { - for ; i.pce < len(i.Elems); i.pce++ { - if v := i.Elems[len(i.Elems)-i.pce-1].Secondary(); v != 0 { - i.pce++ - return v - } - } - return 0 -} - -func (i *iter) nextTertiary() int { - for ; i.pce < len(i.Elems); i.pce++ { - if v := i.Elems[i.pce].Tertiary(); v != 0 { - i.pce++ - return int(v) - } - } - return 0 -} - -func (i *iter) nextQuaternary() int { - for ; i.pce < len(i.Elems); i.pce++ { - if v := i.Elems[i.pce].Quaternary(); v != 0 { - i.pce++ - return v - } - } - return 0 -} - -func appendPrimary(key []byte, p int) []byte { - // Convert to variable length encoding; supports up to 23 bits. - if p <= 0x7FFF { - key = append(key, uint8(p>>8), uint8(p)) - } else { - key = append(key, uint8(p>>16)|0x80, uint8(p>>8), uint8(p)) - } - return key -} - -// keyFromElems converts the weights ws to a compact sequence of bytes. -// The result will be appended to the byte buffer in buf. -func (c *Collator) keyFromElems(buf *Buffer, ws []colltab.Elem) { - for _, v := range ws { - if w := v.Primary(); w > 0 { - buf.key = appendPrimary(buf.key, w) - } - } - if !c.ignore[colltab.Secondary] { - buf.key = append(buf.key, 0, 0) - // TODO: we can use one 0 if we can guarantee that all non-zero weights are > 0xFF. - if !c.backwards { - for _, v := range ws { - if w := v.Secondary(); w > 0 { - buf.key = append(buf.key, uint8(w>>8), uint8(w)) - } - } - } else { - for i := len(ws) - 1; i >= 0; i-- { - if w := ws[i].Secondary(); w > 0 { - buf.key = append(buf.key, uint8(w>>8), uint8(w)) - } - } - } - } else if c.caseLevel { - buf.key = append(buf.key, 0, 0) - } - if !c.ignore[colltab.Tertiary] || c.caseLevel { - buf.key = append(buf.key, 0, 0) - for _, v := range ws { - if w := v.Tertiary(); w > 0 { - buf.key = append(buf.key, uint8(w)) - } - } - // Derive the quaternary weights from the options and other levels. - // Note that we represent MaxQuaternary as 0xFF. The first byte of the - // representation of a primary weight is always smaller than 0xFF, - // so using this single byte value will compare correctly. - if !c.ignore[colltab.Quaternary] && c.alternate >= altShifted { - if c.alternate == altShiftTrimmed { - lastNonFFFF := len(buf.key) - buf.key = append(buf.key, 0) - for _, v := range ws { - if w := v.Quaternary(); w == colltab.MaxQuaternary { - buf.key = append(buf.key, 0xFF) - } else if w > 0 { - buf.key = appendPrimary(buf.key, w) - lastNonFFFF = len(buf.key) - } - } - buf.key = buf.key[:lastNonFFFF] - } else { - buf.key = append(buf.key, 0) - for _, v := range ws { - if w := v.Quaternary(); w == colltab.MaxQuaternary { - buf.key = append(buf.key, 0xFF) - } else if w > 0 { - buf.key = appendPrimary(buf.key, w) - } - } - } - } - } -} - -func processWeights(vw alternateHandling, top uint32, wa []colltab.Elem) { - ignore := false - vtop := int(top) - switch vw { - case altShifted, altShiftTrimmed: - for i := range wa { - if p := wa[i].Primary(); p <= vtop && p != 0 { - wa[i] = colltab.MakeQuaternary(p) - ignore = true - } else if p == 0 { - if ignore { - wa[i] = colltab.Ignore - } - } else { - ignore = false - } - } - case altBlanked: - for i := range wa { - if p := wa[i].Primary(); p <= vtop && (ignore || p != 0) { - wa[i] = colltab.Ignore - ignore = true - } else { - ignore = false - } - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/collate_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/collate_test.go deleted file mode 100644 index 828dfc53..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/collate_test.go +++ /dev/null @@ -1,479 +0,0 @@ -// Copyright 2012 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 collate - -import ( - "bytes" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -type weightsTest struct { - opt opts - in, out ColElems -} - -type opts struct { - lev int - alt alternateHandling - top int - - backwards bool - caseLevel bool -} - -// ignore returns an initialized boolean array based on the given Level. -// A negative value means using the default setting of quaternary. -func ignore(level colltab.Level) (ignore [colltab.NumLevels]bool) { - if level < 0 { - level = colltab.Quaternary - } - for i := range ignore { - ignore[i] = level < colltab.Level(i) - } - return ignore -} - -func makeCE(w []int) colltab.Elem { - ce, err := colltab.MakeElem(w[0], w[1], w[2], uint8(w[3])) - if err != nil { - panic(err) - } - return ce -} - -func (o opts) collator() *Collator { - c := &Collator{ - options: options{ - ignore: ignore(colltab.Level(o.lev - 1)), - alternate: o.alt, - backwards: o.backwards, - caseLevel: o.caseLevel, - variableTop: uint32(o.top), - }, - } - return c -} - -const ( - maxQ = 0x1FFFFF -) - -func wpq(p, q int) Weights { - return W(p, defaults.Secondary, defaults.Tertiary, q) -} - -func wsq(s, q int) Weights { - return W(0, s, defaults.Tertiary, q) -} - -func wq(q int) Weights { - return W(0, 0, 0, q) -} - -var zero = W(0, 0, 0, 0) - -var processTests = []weightsTest{ - // Shifted - { // simple sequence of non-variables - opt: opts{alt: altShifted, top: 100}, - in: ColElems{W(200), W(300), W(400)}, - out: ColElems{wpq(200, maxQ), wpq(300, maxQ), wpq(400, maxQ)}, - }, - { // first is a variable - opt: opts{alt: altShifted, top: 250}, - in: ColElems{W(200), W(300), W(400)}, - out: ColElems{wq(200), wpq(300, maxQ), wpq(400, maxQ)}, - }, - { // all but first are variable - opt: opts{alt: altShifted, top: 999}, - in: ColElems{W(1000), W(200), W(300), W(400)}, - out: ColElems{wpq(1000, maxQ), wq(200), wq(300), wq(400)}, - }, - { // first is a modifier - opt: opts{alt: altShifted, top: 999}, - in: ColElems{W(0, 10), W(1000)}, - out: ColElems{wsq(10, maxQ), wpq(1000, maxQ)}, - }, - { // primary ignorables - opt: opts{alt: altShifted, top: 250}, - in: ColElems{W(200), W(0, 10), W(300), W(0, 15), W(400)}, - out: ColElems{wq(200), zero, wpq(300, maxQ), wsq(15, maxQ), wpq(400, maxQ)}, - }, - { // secondary ignorables - opt: opts{alt: altShifted, top: 250}, - in: ColElems{W(200), W(0, 0, 10), W(300), W(0, 0, 15), W(400)}, - out: ColElems{wq(200), zero, wpq(300, maxQ), W(0, 0, 15, maxQ), wpq(400, maxQ)}, - }, - { // tertiary ignorables, no change - opt: opts{alt: altShifted, top: 250}, - in: ColElems{W(200), zero, W(300), zero, W(400)}, - out: ColElems{wq(200), zero, wpq(300, maxQ), zero, wpq(400, maxQ)}, - }, - - // ShiftTrimmed (same as Shifted) - { // simple sequence of non-variables - opt: opts{alt: altShiftTrimmed, top: 100}, - in: ColElems{W(200), W(300), W(400)}, - out: ColElems{wpq(200, maxQ), wpq(300, maxQ), wpq(400, maxQ)}, - }, - { // first is a variable - opt: opts{alt: altShiftTrimmed, top: 250}, - in: ColElems{W(200), W(300), W(400)}, - out: ColElems{wq(200), wpq(300, maxQ), wpq(400, maxQ)}, - }, - { // all but first are variable - opt: opts{alt: altShiftTrimmed, top: 999}, - in: ColElems{W(1000), W(200), W(300), W(400)}, - out: ColElems{wpq(1000, maxQ), wq(200), wq(300), wq(400)}, - }, - { // first is a modifier - opt: opts{alt: altShiftTrimmed, top: 999}, - in: ColElems{W(0, 10), W(1000)}, - out: ColElems{wsq(10, maxQ), wpq(1000, maxQ)}, - }, - { // primary ignorables - opt: opts{alt: altShiftTrimmed, top: 250}, - in: ColElems{W(200), W(0, 10), W(300), W(0, 15), W(400)}, - out: ColElems{wq(200), zero, wpq(300, maxQ), wsq(15, maxQ), wpq(400, maxQ)}, - }, - { // secondary ignorables - opt: opts{alt: altShiftTrimmed, top: 250}, - in: ColElems{W(200), W(0, 0, 10), W(300), W(0, 0, 15), W(400)}, - out: ColElems{wq(200), zero, wpq(300, maxQ), W(0, 0, 15, maxQ), wpq(400, maxQ)}, - }, - { // tertiary ignorables, no change - opt: opts{alt: altShiftTrimmed, top: 250}, - in: ColElems{W(200), zero, W(300), zero, W(400)}, - out: ColElems{wq(200), zero, wpq(300, maxQ), zero, wpq(400, maxQ)}, - }, - - // Blanked - { // simple sequence of non-variables - opt: opts{alt: altBlanked, top: 100}, - in: ColElems{W(200), W(300), W(400)}, - out: ColElems{W(200), W(300), W(400)}, - }, - { // first is a variable - opt: opts{alt: altBlanked, top: 250}, - in: ColElems{W(200), W(300), W(400)}, - out: ColElems{zero, W(300), W(400)}, - }, - { // all but first are variable - opt: opts{alt: altBlanked, top: 999}, - in: ColElems{W(1000), W(200), W(300), W(400)}, - out: ColElems{W(1000), zero, zero, zero}, - }, - { // first is a modifier - opt: opts{alt: altBlanked, top: 999}, - in: ColElems{W(0, 10), W(1000)}, - out: ColElems{W(0, 10), W(1000)}, - }, - { // primary ignorables - opt: opts{alt: altBlanked, top: 250}, - in: ColElems{W(200), W(0, 10), W(300), W(0, 15), W(400)}, - out: ColElems{zero, zero, W(300), W(0, 15), W(400)}, - }, - { // secondary ignorables - opt: opts{alt: altBlanked, top: 250}, - in: ColElems{W(200), W(0, 0, 10), W(300), W(0, 0, 15), W(400)}, - out: ColElems{zero, zero, W(300), W(0, 0, 15), W(400)}, - }, - { // tertiary ignorables, no change - opt: opts{alt: altBlanked, top: 250}, - in: ColElems{W(200), zero, W(300), zero, W(400)}, - out: ColElems{zero, zero, W(300), zero, W(400)}, - }, - - // Non-ignorable: input is always equal to output. - { // all but first are variable - opt: opts{alt: altNonIgnorable, top: 999}, - in: ColElems{W(1000), W(200), W(300), W(400)}, - out: ColElems{W(1000), W(200), W(300), W(400)}, - }, - { // primary ignorables - opt: opts{alt: altNonIgnorable, top: 250}, - in: ColElems{W(200), W(0, 10), W(300), W(0, 15), W(400)}, - out: ColElems{W(200), W(0, 10), W(300), W(0, 15), W(400)}, - }, - { // secondary ignorables - opt: opts{alt: altNonIgnorable, top: 250}, - in: ColElems{W(200), W(0, 0, 10), W(300), W(0, 0, 15), W(400)}, - out: ColElems{W(200), W(0, 0, 10), W(300), W(0, 0, 15), W(400)}, - }, - { // tertiary ignorables, no change - opt: opts{alt: altNonIgnorable, top: 250}, - in: ColElems{W(200), zero, W(300), zero, W(400)}, - out: ColElems{W(200), zero, W(300), zero, W(400)}, - }, -} - -func TestProcessWeights(t *testing.T) { - for i, tt := range processTests { - in := convertFromWeights(tt.in) - out := convertFromWeights(tt.out) - processWeights(tt.opt.alt, uint32(tt.opt.top), in) - for j, w := range in { - if w != out[j] { - t.Errorf("%d: Weights %d was %v; want %v", i, j, w, out[j]) - } - } - } -} - -type keyFromElemTest struct { - opt opts - in ColElems - out []byte -} - -var defS = byte(defaults.Secondary) -var defT = byte(defaults.Tertiary) - -const sep = 0 // separator byte - -var keyFromElemTests = []keyFromElemTest{ - { // simple primary and secondary weights. - opts{alt: altShifted}, - ColElems{W(0x200), W(0x7FFF), W(0, 0x30), W(0x100)}, - []byte{0x2, 0, 0x7F, 0xFF, 0x1, 0x00, // primary - sep, sep, 0, defS, 0, defS, 0, 0x30, 0, defS, // secondary - sep, sep, defT, defT, defT, defT, // tertiary - sep, 0xFF, 0xFF, 0xFF, 0xFF, // quaternary - }, - }, - { // same as first, but with zero element that need to be removed - opts{alt: altShifted}, - ColElems{W(0x200), zero, W(0x7FFF), W(0, 0x30), zero, W(0x100)}, - []byte{0x2, 0, 0x7F, 0xFF, 0x1, 0x00, // primary - sep, sep, 0, defS, 0, defS, 0, 0x30, 0, defS, // secondary - sep, sep, defT, defT, defT, defT, // tertiary - sep, 0xFF, 0xFF, 0xFF, 0xFF, // quaternary - }, - }, - { // same as first, with large primary values - opts{alt: altShifted}, - ColElems{W(0x200), W(0x8000), W(0, 0x30), W(0x12345)}, - []byte{0x2, 0, 0x80, 0x80, 0x00, 0x81, 0x23, 0x45, // primary - sep, sep, 0, defS, 0, defS, 0, 0x30, 0, defS, // secondary - sep, sep, defT, defT, defT, defT, // tertiary - sep, 0xFF, 0xFF, 0xFF, 0xFF, // quaternary - }, - }, - { // same as first, but with the secondary level backwards - opts{alt: altShifted, backwards: true}, - ColElems{W(0x200), W(0x7FFF), W(0, 0x30), W(0x100)}, - []byte{0x2, 0, 0x7F, 0xFF, 0x1, 0x00, // primary - sep, sep, 0, defS, 0, 0x30, 0, defS, 0, defS, // secondary - sep, sep, defT, defT, defT, defT, // tertiary - sep, 0xFF, 0xFF, 0xFF, 0xFF, // quaternary - }, - }, - { // same as first, ignoring quaternary level - opts{alt: altShifted, lev: 3}, - ColElems{W(0x200), zero, W(0x7FFF), W(0, 0x30), zero, W(0x100)}, - []byte{0x2, 0, 0x7F, 0xFF, 0x1, 0x00, // primary - sep, sep, 0, defS, 0, defS, 0, 0x30, 0, defS, // secondary - sep, sep, defT, defT, defT, defT, // tertiary - }, - }, - { // same as first, ignoring tertiary level - opts{alt: altShifted, lev: 2}, - ColElems{W(0x200), zero, W(0x7FFF), W(0, 0x30), zero, W(0x100)}, - []byte{0x2, 0, 0x7F, 0xFF, 0x1, 0x00, // primary - sep, sep, 0, defS, 0, defS, 0, 0x30, 0, defS, // secondary - }, - }, - { // same as first, ignoring secondary level - opts{alt: altShifted, lev: 1}, - ColElems{W(0x200), zero, W(0x7FFF), W(0, 0x30), zero, W(0x100)}, - []byte{0x2, 0, 0x7F, 0xFF, 0x1, 0x00}, - }, - { // simple primary and secondary weights. - opts{alt: altShiftTrimmed, top: 0x250}, - ColElems{W(0x300), W(0x200), W(0x7FFF), W(0, 0x30), W(0x800)}, - []byte{0x3, 0, 0x7F, 0xFF, 0x8, 0x00, // primary - sep, sep, 0, defS, 0, defS, 0, 0x30, 0, defS, // secondary - sep, sep, defT, defT, defT, defT, // tertiary - sep, 0xFF, 0x2, 0, // quaternary - }, - }, - { // as first, primary with case level enabled - opts{alt: altShifted, lev: 1, caseLevel: true}, - ColElems{W(0x200), W(0x7FFF), W(0, 0x30), W(0x100)}, - []byte{0x2, 0, 0x7F, 0xFF, 0x1, 0x00, // primary - sep, sep, // secondary - sep, sep, defT, defT, defT, defT, // tertiary - }, - }, -} - -func TestKeyFromElems(t *testing.T) { - buf := Buffer{} - for i, tt := range keyFromElemTests { - buf.Reset() - in := convertFromWeights(tt.in) - processWeights(tt.opt.alt, uint32(tt.opt.top), in) - tt.opt.collator().keyFromElems(&buf, in) - res := buf.key - if len(res) != len(tt.out) { - t.Errorf("%d: len(ws) was %d; want %d (%X should be %X)", i, len(res), len(tt.out), res, tt.out) - } - n := len(res) - if len(tt.out) < n { - n = len(tt.out) - } - for j, c := range res[:n] { - if c != tt.out[j] { - t.Errorf("%d: byte %d was %X; want %X", i, j, c, tt.out[j]) - } - } - } -} - -func TestGetColElems(t *testing.T) { - for i, tt := range appendNextTests { - c, err := makeTable(tt.in) - if err != nil { - // error is reported in TestAppendNext - continue - } - // Create one large test per table - str := make([]byte, 0, 4000) - out := ColElems{} - for len(str) < 3000 { - for _, chk := range tt.chk { - str = append(str, chk.in[:chk.n]...) - out = append(out, chk.out...) - } - } - for j, chk := range append(tt.chk, check{string(str), len(str), out}) { - out := convertFromWeights(chk.out) - ce := c.getColElems([]byte(chk.in)[:chk.n]) - if len(ce) != len(out) { - t.Errorf("%d:%d: len(ws) was %d; want %d", i, j, len(ce), len(out)) - continue - } - cnt := 0 - for k, w := range ce { - w, _ = colltab.MakeElem(w.Primary(), w.Secondary(), int(w.Tertiary()), 0) - if w != out[k] { - t.Errorf("%d:%d: Weights %d was %X; want %X", i, j, k, w, out[k]) - cnt++ - } - if cnt > 10 { - break - } - } - } - } -} - -type keyTest struct { - in string - out []byte -} - -var keyTests = []keyTest{ - {"abc", - []byte{0, 100, 0, 200, 1, 44, 0, 0, 0, 32, 0, 32, 0, 32, 0, 0, 2, 2, 2, 0, 255, 255, 255}, - }, - {"a\u0301", - []byte{0, 102, 0, 0, 0, 32, 0, 0, 2, 0, 255}, - }, - {"aaaaa", - []byte{0, 100, 0, 100, 0, 100, 0, 100, 0, 100, 0, 0, - 0, 32, 0, 32, 0, 32, 0, 32, 0, 32, 0, 0, - 2, 2, 2, 2, 2, 0, - 255, 255, 255, 255, 255, - }, - }, -} - -func TestKey(t *testing.T) { - c, _ := makeTable(appendNextTests[4].in) - c.alternate = altShifted - c.ignore = ignore(colltab.Quaternary) - buf := Buffer{} - keys1 := [][]byte{} - keys2 := [][]byte{} - for _, tt := range keyTests { - keys1 = append(keys1, c.Key(&buf, []byte(tt.in))) - keys2 = append(keys2, c.KeyFromString(&buf, tt.in)) - } - // Separate generation from testing to ensure buffers are not overwritten. - for i, tt := range keyTests { - if !bytes.Equal(keys1[i], tt.out) { - t.Errorf("%d: Key(%q) = %d; want %d", i, tt.in, keys1[i], tt.out) - } - if !bytes.Equal(keys2[i], tt.out) { - t.Errorf("%d: KeyFromString(%q) = %d; want %d", i, tt.in, keys2[i], tt.out) - } - } -} - -type compareTest struct { - a, b string - res int // comparison result -} - -var compareTests = []compareTest{ - {"a\u0301", "a", 1}, - {"a\u0301b", "ab", 1}, - {"a", "a\u0301", -1}, - {"ab", "a\u0301b", -1}, - {"bc", "a\u0301c", 1}, - {"ab", "aB", -1}, - {"a\u0301", "a\u0301", 0}, - {"a", "a", 0}, - // Only clip prefixes of whole runes. - {"\u302E", "\u302F", 1}, - // Don't clip prefixes when last rune of prefix may be part of contraction. - {"a\u035E", "a\u0301\u035F", -1}, - {"a\u0301\u035Fb", "a\u0301\u035F", -1}, -} - -func TestCompare(t *testing.T) { - c, _ := makeTable(appendNextTests[4].in) - for i, tt := range compareTests { - if res := c.Compare([]byte(tt.a), []byte(tt.b)); res != tt.res { - t.Errorf("%d: Compare(%q, %q) == %d; want %d", i, tt.a, tt.b, res, tt.res) - } - if res := c.CompareString(tt.a, tt.b); res != tt.res { - t.Errorf("%d: CompareString(%q, %q) == %d; want %d", i, tt.a, tt.b, res, tt.res) - } - } -} - -func TestNumeric(t *testing.T) { - c := New(language.English, Loose, Numeric) - - for i, tt := range []struct { - a, b string - want int - }{ - {"1", "2", -1}, - {"2", "12", -1}, - {"ï¼’", "12", -1}, // Fullwidth is sorted as usual. - {"â‚‚", "â‚â‚‚", 1}, // Subscript is not sorted as numbers. - {"â‘¡", "â‘ â‘¡", 1}, // Circled is not sorted as numbers. - { // Imperial Aramaic, is not sorted as number. - "\U00010859", - "\U00010858\U00010859", - 1, - }, - {"12", "2", 1}, - {"A-1", "A-2", -1}, - {"A-2", "A-12", -1}, - {"A-12", "A-2", 1}, - {"A-0001", "A-1", 0}, - } { - if got := c.CompareString(tt.a, tt.b); got != tt.want { - t.Errorf("%d: CompareString(%s, %s) = %d; want %d", i, tt.a, tt.b, got, tt.want) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/collate_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/collate_test.go deleted file mode 100644 index 92330473..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/collate_test.go +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package colltab_test - -// This file contains tests which need to import package collate, which causes -// an import cycle when done within package colltab itself. - -import ( - "bytes" - "testing" - "unicode" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable" -) - -// assigned is used to only test runes that are inside the scope of the Unicode -// version used to generation the collation table. -var assigned = rangetable.Assigned(collate.UnicodeVersion) - -func TestNonDigits(t *testing.T) { - c := collate.New(language.English, collate.Loose, collate.Numeric) - - // Verify that all non-digit numbers sort outside of the number range. - for r, hi := rune(unicode.N.R16[0].Lo), rune(unicode.N.R32[0].Hi); r <= hi; r++ { - if unicode.In(r, unicode.Nd) || !unicode.In(r, assigned) { - continue - } - if a := string(r); c.CompareString(a, "0") != -1 && c.CompareString(a, "999999") != 1 { - t.Errorf("%+q non-digit number is collated as digit", a) - } - } -} - -func TestNumericCompare(t *testing.T) { - c := collate.New(language.English, collate.Loose, collate.Numeric) - - // Iterate over all digits. - for _, r16 := range unicode.Nd.R16 { - testDigitCompare(t, c, rune(r16.Lo), rune(r16.Hi)) - } - for _, r32 := range unicode.Nd.R32 { - testDigitCompare(t, c, rune(r32.Lo), rune(r32.Hi)) - } -} - -func testDigitCompare(t *testing.T, c *collate.Collator, zero, nine rune) { - if !unicode.In(zero, assigned) { - return - } - n := int(nine - zero + 1) - if n%10 != 0 { - t.Fatalf("len([%+q, %+q]) = %d; want a multiple of 10", zero, nine, n) - } - for _, tt := range []struct { - prefix string - b [11]string - }{ - { - prefix: "", - b: [11]string{ - "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", - }, - }, - { - prefix: "1", - b: [11]string{ - "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", - }, - }, - { - prefix: "0", - b: [11]string{ - "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", - }, - }, - { - prefix: "00", - b: [11]string{ - "000", "001", "002", "003", "004", "005", "006", "007", "008", "009", "010", - }, - }, - { - prefix: "9", - b: [11]string{ - "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", - }, - }, - } { - for k := 0; k <= n; k++ { - i := k % 10 - a := tt.prefix + string(zero+rune(i)) - for j, b := range tt.b { - want := 0 - switch { - case i < j: - want = -1 - case i > j: - want = 1 - } - got := c.CompareString(a, b) - if got != want { - t.Errorf("Compare(%+q, %+q) = %d; want %d", a, b, got, want) - return - } - } - } - } -} - -func BenchmarkNumericWeighter(b *testing.B) { - c := collate.New(language.English, collate.Numeric) - input := bytes.Repeat([]byte("Testing, testing 123..."), 100) - b.SetBytes(int64(2 * len(input))) - for i := 0; i < b.N; i++ { - c.Compare(input, input) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/collelem.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/collelem.go deleted file mode 100644 index 880952c3..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/collelem.go +++ /dev/null @@ -1,371 +0,0 @@ -// Copyright 2012 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 colltab - -import ( - "fmt" - "unicode" -) - -// Level identifies the collation comparison level. -// The primary level corresponds to the basic sorting of text. -// The secondary level corresponds to accents and related linguistic elements. -// The tertiary level corresponds to casing and related concepts. -// The quaternary level is derived from the other levels by the -// various algorithms for handling variable elements. -type Level int - -const ( - Primary Level = iota - Secondary - Tertiary - Quaternary - Identity - - NumLevels -) - -const ( - defaultSecondary = 0x20 - defaultTertiary = 0x2 - maxTertiary = 0x1F - MaxQuaternary = 0x1FFFFF // 21 bits. -) - -// Elem is a representation of a collation element. This API provides ways to encode -// and decode Elems. Implementations of collation tables may use values greater -// or equal to PrivateUse for their own purposes. However, these should never be -// returned by AppendNext. -type Elem uint32 - -const ( - maxCE Elem = 0xAFFFFFFF - PrivateUse = minContract - minContract = 0xC0000000 - maxContract = 0xDFFFFFFF - minExpand = 0xE0000000 - maxExpand = 0xEFFFFFFF - minDecomp = 0xF0000000 -) - -type ceType int - -const ( - ceNormal ceType = iota // ceNormal includes implicits (ce == 0) - ceContractionIndex // rune can be a start of a contraction - ceExpansionIndex // rune expands into a sequence of collation elements - ceDecompose // rune expands using NFKC decomposition -) - -func (ce Elem) ctype() ceType { - if ce <= maxCE { - return ceNormal - } - if ce <= maxContract { - return ceContractionIndex - } else { - if ce <= maxExpand { - return ceExpansionIndex - } - return ceDecompose - } - panic("should not reach here") - return ceType(-1) -} - -// For normal collation elements, we assume that a collation element either has -// a primary or non-default secondary value, not both. -// Collation elements with a primary value are of the form -// 01pppppp pppppppp ppppppp0 ssssssss -// - p* is primary collation value -// - s* is the secondary collation value -// 00pppppp pppppppp ppppppps sssttttt, where -// - p* is primary collation value -// - s* offset of secondary from default value. -// - t* is the tertiary collation value -// 100ttttt cccccccc pppppppp pppppppp -// - t* is the tertiar collation value -// - c* is the cannonical combining class -// - p* is the primary collation value -// Collation elements with a secondary value are of the form -// 1010cccc ccccssss ssssssss tttttttt, where -// - c* is the canonical combining class -// - s* is the secondary collation value -// - t* is the tertiary collation value -// 11qqqqqq qqqqqqqq qqqqqqq0 00000000 -// - q* quaternary value -const ( - ceTypeMask = 0xC0000000 - ceTypeMaskExt = 0xE0000000 - ceIgnoreMask = 0xF00FFFFF - ceType1 = 0x40000000 - ceType2 = 0x00000000 - ceType3or4 = 0x80000000 - ceType4 = 0xA0000000 - ceTypeQ = 0xC0000000 - Ignore = ceType4 - firstNonPrimary = 0x80000000 - lastSpecialPrimary = 0xA0000000 - secondaryMask = 0x80000000 - hasTertiaryMask = 0x40000000 - primaryValueMask = 0x3FFFFE00 - maxPrimaryBits = 21 - compactPrimaryBits = 16 - maxSecondaryBits = 12 - maxTertiaryBits = 8 - maxCCCBits = 8 - maxSecondaryCompactBits = 8 - maxSecondaryDiffBits = 4 - maxTertiaryCompactBits = 5 - primaryShift = 9 - compactSecondaryShift = 5 - minCompactSecondary = defaultSecondary - 4 -) - -func makeImplicitCE(primary int) Elem { - return ceType1 | Elem(primary<<primaryShift) | defaultSecondary -} - -// MakeElem returns an Elem for the given values. It will return an error -// if the given combination of values is invalid. -func MakeElem(primary, secondary, tertiary int, ccc uint8) (Elem, error) { - if w := primary; w >= 1<<maxPrimaryBits || w < 0 { - return 0, fmt.Errorf("makeCE: primary weight out of bounds: %x >= %x", w, 1<<maxPrimaryBits) - } - if w := secondary; w >= 1<<maxSecondaryBits || w < 0 { - return 0, fmt.Errorf("makeCE: secondary weight out of bounds: %x >= %x", w, 1<<maxSecondaryBits) - } - if w := tertiary; w >= 1<<maxTertiaryBits || w < 0 { - return 0, fmt.Errorf("makeCE: tertiary weight out of bounds: %x >= %x", w, 1<<maxTertiaryBits) - } - ce := Elem(0) - if primary != 0 { - if ccc != 0 { - if primary >= 1<<compactPrimaryBits { - return 0, fmt.Errorf("makeCE: primary weight with non-zero CCC out of bounds: %x >= %x", primary, 1<<compactPrimaryBits) - } - if secondary != defaultSecondary { - return 0, fmt.Errorf("makeCE: cannot combine non-default secondary value (%x) with non-zero CCC (%x)", secondary, ccc) - } - ce = Elem(tertiary << (compactPrimaryBits + maxCCCBits)) - ce |= Elem(ccc) << compactPrimaryBits - ce |= Elem(primary) - ce |= ceType3or4 - } else if tertiary == defaultTertiary { - if secondary >= 1<<maxSecondaryCompactBits { - return 0, fmt.Errorf("makeCE: secondary weight with non-zero primary out of bounds: %x >= %x", secondary, 1<<maxSecondaryCompactBits) - } - ce = Elem(primary<<(maxSecondaryCompactBits+1) + secondary) - ce |= ceType1 - } else { - d := secondary - defaultSecondary + maxSecondaryDiffBits - if d >= 1<<maxSecondaryDiffBits || d < 0 { - return 0, fmt.Errorf("makeCE: secondary weight diff out of bounds: %x < 0 || %x > %x", d, d, 1<<maxSecondaryDiffBits) - } - if tertiary >= 1<<maxTertiaryCompactBits { - return 0, fmt.Errorf("makeCE: tertiary weight with non-zero primary out of bounds: %x > %x", tertiary, 1<<maxTertiaryCompactBits) - } - ce = Elem(primary<<maxSecondaryDiffBits + d) - ce = ce<<maxTertiaryCompactBits + Elem(tertiary) - } - } else { - ce = Elem(secondary<<maxTertiaryBits + tertiary) - ce += Elem(ccc) << (maxSecondaryBits + maxTertiaryBits) - ce |= ceType4 - } - return ce, nil -} - -// MakeQuaternary returns an Elem with the given quaternary value. -func MakeQuaternary(v int) Elem { - return ceTypeQ | Elem(v<<primaryShift) -} - -// Mask sets weights for any level smaller than l to 0. -// The resulting Elem can be used to test for equality with -// other Elems to which the same mask has been applied. -func (ce Elem) Mask(l Level) uint32 { - return 0 -} - -// CCC returns the canonical combining class associated with the underlying character, -// if applicable, or 0 otherwise. -func (ce Elem) CCC() uint8 { - if ce&ceType3or4 != 0 { - if ce&ceType4 == ceType3or4 { - return uint8(ce >> 16) - } - return uint8(ce >> 20) - } - return 0 -} - -// Primary returns the primary collation weight for ce. -func (ce Elem) Primary() int { - if ce >= firstNonPrimary { - if ce > lastSpecialPrimary { - return 0 - } - return int(uint16(ce)) - } - return int(ce&primaryValueMask) >> primaryShift -} - -// Secondary returns the secondary collation weight for ce. -func (ce Elem) Secondary() int { - switch ce & ceTypeMask { - case ceType1: - return int(uint8(ce)) - case ceType2: - return minCompactSecondary + int((ce>>compactSecondaryShift)&0xF) - case ceType3or4: - if ce < ceType4 { - return defaultSecondary - } - return int(ce>>8) & 0xFFF - case ceTypeQ: - return 0 - } - panic("should not reach here") -} - -// Tertiary returns the tertiary collation weight for ce. -func (ce Elem) Tertiary() uint8 { - if ce&hasTertiaryMask == 0 { - if ce&ceType3or4 == 0 { - return uint8(ce & 0x1F) - } - if ce&ceType4 == ceType4 { - return uint8(ce) - } - return uint8(ce>>24) & 0x1F // type 2 - } else if ce&ceTypeMask == ceType1 { - return defaultTertiary - } - // ce is a quaternary value. - return 0 -} - -func (ce Elem) updateTertiary(t uint8) Elem { - if ce&ceTypeMask == ceType1 { - // convert to type 4 - nce := ce & primaryValueMask - nce |= Elem(uint8(ce)-minCompactSecondary) << compactSecondaryShift - ce = nce - } else if ce&ceTypeMaskExt == ceType3or4 { - ce &= ^Elem(maxTertiary << 24) - return ce | (Elem(t) << 24) - } else { - // type 2 or 4 - ce &= ^Elem(maxTertiary) - } - return ce | Elem(t) -} - -// Quaternary returns the quaternary value if explicitly specified, -// 0 if ce == Ignore, or MaxQuaternary otherwise. -// Quaternary values are used only for shifted variants. -func (ce Elem) Quaternary() int { - if ce&ceTypeMask == ceTypeQ { - return int(ce&primaryValueMask) >> primaryShift - } else if ce&ceIgnoreMask == Ignore { - return 0 - } - return MaxQuaternary -} - -// Weight returns the collation weight for the given level. -func (ce Elem) Weight(l Level) int { - switch l { - case Primary: - return ce.Primary() - case Secondary: - return ce.Secondary() - case Tertiary: - return int(ce.Tertiary()) - case Quaternary: - return ce.Quaternary() - } - return 0 // return 0 (ignore) for undefined levels. -} - -// For contractions, collation elements are of the form -// 110bbbbb bbbbbbbb iiiiiiii iiiinnnn, where -// - n* is the size of the first node in the contraction trie. -// - i* is the index of the first node in the contraction trie. -// - b* is the offset into the contraction collation element table. -// See contract.go for details on the contraction trie. -const ( - maxNBits = 4 - maxTrieIndexBits = 12 - maxContractOffsetBits = 13 -) - -func splitContractIndex(ce Elem) (index, n, offset int) { - n = int(ce & (1<<maxNBits - 1)) - ce >>= maxNBits - index = int(ce & (1<<maxTrieIndexBits - 1)) - ce >>= maxTrieIndexBits - offset = int(ce & (1<<maxContractOffsetBits - 1)) - return -} - -// For expansions, Elems are of the form 11100000 00000000 bbbbbbbb bbbbbbbb, -// where b* is the index into the expansion sequence table. -const maxExpandIndexBits = 16 - -func splitExpandIndex(ce Elem) (index int) { - return int(uint16(ce)) -} - -// Some runes can be expanded using NFKD decomposition. Instead of storing the full -// sequence of collation elements, we decompose the rune and lookup the collation -// elements for each rune in the decomposition and modify the tertiary weights. -// The Elem, in this case, is of the form 11110000 00000000 wwwwwwww vvvvvvvv, where -// - v* is the replacement tertiary weight for the first rune, -// - w* is the replacement tertiary weight for the second rune, -// Tertiary weights of subsequent runes should be replaced with maxTertiary. -// See http://www.unicode.org/reports/tr10/#Compatibility_Decompositions for more details. -func splitDecompose(ce Elem) (t1, t2 uint8) { - return uint8(ce), uint8(ce >> 8) -} - -const ( - // These constants were taken from http://www.unicode.org/versions/Unicode6.0.0/ch12.pdf. - minUnified rune = 0x4E00 - maxUnified = 0x9FFF - minCompatibility = 0xF900 - maxCompatibility = 0xFAFF - minRare = 0x3400 - maxRare = 0x4DBF -) -const ( - commonUnifiedOffset = 0x10000 - rareUnifiedOffset = 0x20000 // largest rune in common is U+FAFF - otherOffset = 0x50000 // largest rune in rare is U+2FA1D - illegalOffset = otherOffset + int(unicode.MaxRune) - maxPrimary = illegalOffset + 1 -) - -// implicitPrimary returns the primary weight for the a rune -// for which there is no entry for the rune in the collation table. -// We take a different approach from the one specified in -// http://unicode.org/reports/tr10/#Implicit_Weights, -// but preserve the resulting relative ordering of the runes. -func implicitPrimary(r rune) int { - if unicode.Is(unicode.Ideographic, r) { - if r >= minUnified && r <= maxUnified { - // The most common case for CJK. - return int(r) + commonUnifiedOffset - } - if r >= minCompatibility && r <= maxCompatibility { - // This will typically not hit. The DUCET explicitly specifies mappings - // for all characters that do not decompose. - return int(r) + commonUnifiedOffset - } - return int(r) + rareUnifiedOffset - } - return int(r) + otherOffset -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/collelem_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/collelem_test.go deleted file mode 100644 index f131ecc3..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/collelem_test.go +++ /dev/null @@ -1,183 +0,0 @@ -// Copyright 2012 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 colltab - -import ( - "fmt" - "testing" - "unicode" -) - -func (e Elem) String() string { - q := "" - if v := e.Quaternary(); v == MaxQuaternary { - q = "max" - } else { - q = fmt.Sprint(v) - } - return fmt.Sprintf("[%d, %d, %d, %s]", - e.Primary(), - e.Secondary(), - e.Tertiary(), - q) -} - -type ceTest struct { - f func(inout []int) (Elem, ceType) - arg []int -} - -func makeCE(weights []int) Elem { - ce, _ := MakeElem(weights[0], weights[1], weights[2], uint8(weights[3])) - return ce -} - -var defaultValues = []int{0, defaultSecondary, defaultTertiary, 0} - -func e(w ...int) Elem { - return makeCE(append(w, defaultValues[len(w):]...)) -} - -func makeContractIndex(index, n, offset int) Elem { - const ( - contractID = 0xC0000000 - maxNBits = 4 - maxTrieIndexBits = 12 - maxContractOffsetBits = 13 - ) - ce := Elem(contractID) - ce += Elem(offset << (maxNBits + maxTrieIndexBits)) - ce += Elem(index << maxNBits) - ce += Elem(n) - return ce -} - -func makeExpandIndex(index int) Elem { - const expandID = 0xE0000000 - return expandID + Elem(index) -} - -func makeDecompose(t1, t2 int) Elem { - const decompID = 0xF0000000 - return Elem(t2<<8+t1) + decompID -} - -func normalCE(inout []int) (ce Elem, t ceType) { - ce = makeCE(inout) - inout[0] = ce.Primary() - inout[1] = ce.Secondary() - inout[2] = int(ce.Tertiary()) - inout[3] = int(ce.CCC()) - return ce, ceNormal -} - -func expandCE(inout []int) (ce Elem, t ceType) { - ce = makeExpandIndex(inout[0]) - inout[0] = splitExpandIndex(ce) - return ce, ceExpansionIndex -} - -func contractCE(inout []int) (ce Elem, t ceType) { - ce = makeContractIndex(inout[0], inout[1], inout[2]) - i, n, o := splitContractIndex(ce) - inout[0], inout[1], inout[2] = i, n, o - return ce, ceContractionIndex -} - -func decompCE(inout []int) (ce Elem, t ceType) { - ce = makeDecompose(inout[0], inout[1]) - t1, t2 := splitDecompose(ce) - inout[0], inout[1] = int(t1), int(t2) - return ce, ceDecompose -} - -var ceTests = []ceTest{ - {normalCE, []int{0, 0, 0, 0}}, - {normalCE, []int{0, 30, 3, 0}}, - {normalCE, []int{0, 30, 3, 0xFF}}, - {normalCE, []int{100, defaultSecondary, defaultTertiary, 0}}, - {normalCE, []int{100, defaultSecondary, defaultTertiary, 0xFF}}, - {normalCE, []int{100, defaultSecondary, 3, 0}}, - {normalCE, []int{0x123, defaultSecondary, 8, 0xFF}}, - - {contractCE, []int{0, 0, 0}}, - {contractCE, []int{1, 1, 1}}, - {contractCE, []int{1, (1 << maxNBits) - 1, 1}}, - {contractCE, []int{(1 << maxTrieIndexBits) - 1, 1, 1}}, - {contractCE, []int{1, 1, (1 << maxContractOffsetBits) - 1}}, - - {expandCE, []int{0}}, - {expandCE, []int{5}}, - {expandCE, []int{(1 << maxExpandIndexBits) - 1}}, - - {decompCE, []int{0, 0}}, - {decompCE, []int{1, 1}}, - {decompCE, []int{0x1F, 0x1F}}, -} - -func TestColElem(t *testing.T) { - for i, tt := range ceTests { - inout := make([]int, len(tt.arg)) - copy(inout, tt.arg) - ce, typ := tt.f(inout) - if ce.ctype() != typ { - t.Errorf("%d: type is %d; want %d (ColElem: %X)", i, ce.ctype(), typ, ce) - } - for j, a := range tt.arg { - if inout[j] != a { - t.Errorf("%d: argument %d is %X; want %X (ColElem: %X)", i, j, inout[j], a, ce) - } - } - } -} - -type implicitTest struct { - r rune - p int -} - -var implicitTests = []implicitTest{ - {0x33FF, 0x533FF}, - {0x3400, 0x23400}, - {0x4DC0, 0x54DC0}, - {0x4DFF, 0x54DFF}, - {0x4E00, 0x14E00}, - {0x9FCB, 0x19FCB}, - {0xA000, 0x5A000}, - {0xF8FF, 0x5F8FF}, - {0xF900, 0x1F900}, - {0xFA23, 0x1FA23}, - {0xFAD9, 0x1FAD9}, - {0xFB00, 0x5FB00}, - {0x20000, 0x40000}, - {0x2B81C, 0x4B81C}, - {unicode.MaxRune, 0x15FFFF}, // maximum primary value -} - -func TestImplicit(t *testing.T) { - for _, tt := range implicitTests { - if p := implicitPrimary(tt.r); p != tt.p { - t.Errorf("%U: was %X; want %X", tt.r, p, tt.p) - } - } -} - -func TestUpdateTertiary(t *testing.T) { - tests := []struct { - in, out Elem - t uint8 - }{ - {0x4000FE20, 0x0000FE8A, 0x0A}, - {0x4000FE21, 0x0000FEAA, 0x0A}, - {0x0000FE8B, 0x0000FE83, 0x03}, - {0x82FF0188, 0x9BFF0188, 0x1B}, - {0xAFF0CC02, 0xAFF0CC1B, 0x1B}, - } - for i, tt := range tests { - if out := tt.in.updateTertiary(tt.t); out != tt.out { - t.Errorf("%d: was %X; want %X", i, out, tt.out) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/colltab.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/colltab.go deleted file mode 100644 index 8ca16c0a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/colltab.go +++ /dev/null @@ -1,31 +0,0 @@ -// 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 colltab - -// A Weighter can be used as a source for Collator and Searcher. -type Weighter interface { - // Start finds the start of the segment that includes position p. - Start(p int, b []byte) int - - // StartString finds the start of the segment that includes position p. - StartString(p int, s string) int - - // AppendNext appends Elems to buf corresponding to the longest match - // of a single character or contraction from the start of s. - // It returns the new buf and the number of bytes consumed. - AppendNext(buf []Elem, s []byte) (ce []Elem, n int) - - // AppendNextString appends Elems to buf corresponding to the longest match - // of a single character or contraction from the start of s. - // It returns the new buf and the number of bytes consumed. - AppendNextString(buf []Elem, s string) (ce []Elem, n int) - - // Domain returns a slice of all single characters and contractions for which - // collation elements are defined in this table. - Domain() []string - - // Top returns the highest variable primary value. - Top() uint32 -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/colltab_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/colltab_test.go deleted file mode 100644 index b5f8487b..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/colltab_test.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package colltab - -// testWeighter is a simple Weighter that returns weights from a user-defined map. -type testWeighter map[string][]Elem - -func (t testWeighter) Start(int, []byte) int { return 0 } -func (t testWeighter) StartString(int, string) int { return 0 } -func (t testWeighter) Domain() []string { return nil } -func (t testWeighter) Top() uint32 { return 0 } - -// maxContractBytes is the maximum length of any key in the map. -const maxContractBytes = 10 - -func (t testWeighter) AppendNext(buf []Elem, s []byte) ([]Elem, int) { - n := len(s) - if n > maxContractBytes { - n = maxContractBytes - } - for i := n; i > 0; i-- { - if e, ok := t[string(s[:i])]; ok { - return append(buf, e...), i - } - } - panic("incomplete testWeighter: could not find " + string(s)) -} - -func (t testWeighter) AppendNextString(buf []Elem, s string) ([]Elem, int) { - n := len(s) - if n > maxContractBytes { - n = maxContractBytes - } - for i := n; i > 0; i-- { - if e, ok := t[s[:i]]; ok { - return append(buf, e...), i - } - } - panic("incomplete testWeighter: could not find " + s) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/contract.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/contract.go deleted file mode 100644 index 86158d00..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/contract.go +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright 2012 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 colltab - -import "unicode/utf8" - -// For a description of contractTrieSet, see exp/locale/collate/build/contract.go. - -type contractTrieSet []struct{ l, h, n, i uint8 } - -// ctScanner is used to match a trie to an input sequence. -// A contraction may match a non-contiguous sequence of bytes in an input string. -// For example, if there is a contraction for <a, combining_ring>, it should match -// the sequence <a, combining_cedilla, combining_ring>, as combining_cedilla does -// not block combining_ring. -// ctScanner does not automatically skip over non-blocking non-starters, but rather -// retains the state of the last match and leaves it up to the user to continue -// the match at the appropriate points. -type ctScanner struct { - states contractTrieSet - s []byte - n int - index int - pindex int - done bool -} - -type ctScannerString struct { - states contractTrieSet - s string - n int - index int - pindex int - done bool -} - -func (t contractTrieSet) scanner(index, n int, b []byte) ctScanner { - return ctScanner{s: b, states: t[index:], n: n} -} - -func (t contractTrieSet) scannerString(index, n int, str string) ctScannerString { - return ctScannerString{s: str, states: t[index:], n: n} -} - -// result returns the offset i and bytes consumed p so far. If no suffix -// matched, i and p will be 0. -func (s *ctScanner) result() (i, p int) { - return s.index, s.pindex -} - -func (s *ctScannerString) result() (i, p int) { - return s.index, s.pindex -} - -const ( - final = 0 - noIndex = 0xFF -) - -// scan matches the longest suffix at the current location in the input -// and returns the number of bytes consumed. -func (s *ctScanner) scan(p int) int { - pr := p // the p at the rune start - str := s.s - states, n := s.states, s.n - for i := 0; i < n && p < len(str); { - e := states[i] - c := str[p] - // TODO: a significant number of contractions are of a form that - // cannot match discontiguous UTF-8 in a normalized string. We could let - // a negative value of e.n mean that we can set s.done = true and avoid - // the need for additional matches. - if c >= e.l { - if e.l == c { - p++ - if e.i != noIndex { - s.index = int(e.i) - s.pindex = p - } - if e.n != final { - i, states, n = 0, states[int(e.h)+n:], int(e.n) - if p >= len(str) || utf8.RuneStart(str[p]) { - s.states, s.n, pr = states, n, p - } - } else { - s.done = true - return p - } - continue - } else if e.n == final && c <= e.h { - p++ - s.done = true - s.index = int(c-e.l) + int(e.i) - s.pindex = p - return p - } - } - i++ - } - return pr -} - -// scan is a verbatim copy of ctScanner.scan. -func (s *ctScannerString) scan(p int) int { - pr := p // the p at the rune start - str := s.s - states, n := s.states, s.n - for i := 0; i < n && p < len(str); { - e := states[i] - c := str[p] - // TODO: a significant number of contractions are of a form that - // cannot match discontiguous UTF-8 in a normalized string. We could let - // a negative value of e.n mean that we can set s.done = true and avoid - // the need for additional matches. - if c >= e.l { - if e.l == c { - p++ - if e.i != noIndex { - s.index = int(e.i) - s.pindex = p - } - if e.n != final { - i, states, n = 0, states[int(e.h)+n:], int(e.n) - if p >= len(str) || utf8.RuneStart(str[p]) { - s.states, s.n, pr = states, n, p - } - } else { - s.done = true - return p - } - continue - } else if e.n == final && c <= e.h { - p++ - s.done = true - s.index = int(c-e.l) + int(e.i) - s.pindex = p - return p - } - } - i++ - } - return pr -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/contract_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/contract_test.go deleted file mode 100644 index a8da4e01..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/contract_test.go +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright 2012 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 colltab - -import ( - "testing" -) - -type lookupStrings struct { - str string - offset int - n int // bytes consumed from input -} - -type LookupTest struct { - lookup []lookupStrings - n int - tries contractTrieSet -} - -var lookupTests = []LookupTest{ - {[]lookupStrings{ - {"abc", 1, 3}, - {"a", 0, 0}, - {"b", 0, 0}, - {"c", 0, 0}, - {"d", 0, 0}, - }, - 1, - contractTrieSet{ - {'a', 0, 1, 0xFF}, - {'b', 0, 1, 0xFF}, - {'c', 'c', 0, 1}, - }, - }, - {[]lookupStrings{ - {"abc", 1, 3}, - {"abd", 2, 3}, - {"abe", 3, 3}, - {"a", 0, 0}, - {"ab", 0, 0}, - {"d", 0, 0}, - {"f", 0, 0}, - }, - 1, - contractTrieSet{ - {'a', 0, 1, 0xFF}, - {'b', 0, 1, 0xFF}, - {'c', 'e', 0, 1}, - }, - }, - {[]lookupStrings{ - {"abc", 1, 3}, - {"ab", 2, 2}, - {"a", 3, 1}, - {"abcd", 1, 3}, - {"abe", 2, 2}, - }, - 1, - contractTrieSet{ - {'a', 0, 1, 3}, - {'b', 0, 1, 2}, - {'c', 'c', 0, 1}, - }, - }, - {[]lookupStrings{ - {"abc", 1, 3}, - {"abd", 2, 3}, - {"ab", 3, 2}, - {"ac", 4, 2}, - {"a", 5, 1}, - {"b", 6, 1}, - {"ba", 6, 1}, - }, - 2, - contractTrieSet{ - {'b', 'b', 0, 6}, - {'a', 0, 2, 5}, - {'c', 'c', 0, 4}, - {'b', 0, 1, 3}, - {'c', 'd', 0, 1}, - }, - }, - {[]lookupStrings{ - {"bcde", 2, 4}, - {"bc", 7, 2}, - {"ab", 6, 2}, - {"bcd", 5, 3}, - {"abcd", 1, 4}, - {"abc", 4, 3}, - {"bcdf", 3, 4}, - }, - 2, - contractTrieSet{ - {'b', 3, 1, 0xFF}, - {'a', 0, 1, 0xFF}, - {'b', 0, 1, 6}, - {'c', 0, 1, 4}, - {'d', 'd', 0, 1}, - {'c', 0, 1, 7}, - {'d', 0, 1, 5}, - {'e', 'f', 0, 2}, - }, - }, -} - -func lookup(c *contractTrieSet, nnode int, s []uint8) (i, n int) { - scan := c.scanner(0, nnode, s) - scan.scan(0) - return scan.result() -} - -func TestLookupContraction(t *testing.T) { - for i, tt := range lookupTests { - cts := contractTrieSet(tt.tries) - for j, lu := range tt.lookup { - str := lu.str - for _, s := range []string{str, str + "X"} { - const msg = `%d:%d: %s of "%s" %v; want %v` - offset, n := lookup(&cts, tt.n, []byte(s)) - if offset != lu.offset { - t.Errorf(msg, i, j, "offset", s, offset, lu.offset) - } - if n != lu.n { - t.Errorf(msg, i, j, "bytes consumed", s, n, len(str)) - } - } - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/export.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/export.go deleted file mode 100644 index 257ea2a8..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/export.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2012 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 colltab - -// Init is for internal use only. -func Init(data interface{}) Weighter { - init, ok := data.(tableInitializer) - if !ok { - return nil - } - t := &table{} - loff, voff := init.FirstBlockOffsets() - t.index.index = init.TrieIndex() - t.index.index0 = t.index.index[blockSize*int(loff):] - t.index.values = init.TrieValues() - t.index.values0 = t.index.values[blockSize*int(voff):] - t.expandElem = init.ExpandElems() - t.contractTries = init.ContractTries() - t.contractElem = init.ContractElems() - t.maxContractLen = init.MaxContractLen() - t.variableTop = init.VariableTop() - return t -} - -type tableInitializer interface { - TrieIndex() []uint16 - TrieValues() []uint32 - FirstBlockOffsets() (lookup, value uint16) - ExpandElems() []uint32 - ContractTries() []struct{ l, h, n, i uint8 } - ContractElems() []uint32 - MaxContractLen() int - VariableTop() uint32 -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/numeric.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/numeric.go deleted file mode 100644 index 38c255cb..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/numeric.go +++ /dev/null @@ -1,236 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package colltab - -import ( - "unicode" - "unicode/utf8" -) - -// NewNumericWeighter wraps w to replace individual digits to sort based on their -// numeric value. -// -// Weighter w must have a free primary weight after the primary weight for 9. -// If this is not the case, numeric value will sort at the same primary level -// as the first primary sorting after 9. -func NewNumericWeighter(w Weighter) Weighter { - getElem := func(s string) Elem { - elems, _ := w.AppendNextString(nil, s) - return elems[0] - } - nine := getElem("9") - - // Numbers should order before zero, but the DUCET has no room for this. - // TODO: move before zero once we use fractional collation elements. - ns, _ := MakeElem(nine.Primary()+1, nine.Secondary(), int(nine.Tertiary()), 0) - - return &numericWeighter{ - Weighter: w, - - // We assume that w sorts digits of different kinds in order of numeric - // value and that the tertiary weight order is preserved. - // - // TODO: evaluate whether it is worth basing the ranges on the Elem - // encoding itself once the move to fractional weights is complete. - zero: getElem("0"), - zeroSpecialLo: getElem("ï¼"), // U+FF10 FULLWIDTH DIGIT ZERO - zeroSpecialHi: getElem("â‚€"), // U+2080 SUBSCRIPT ZERO - nine: nine, - nineSpecialHi: getElem("₉"), // U+2089 SUBSCRIPT NINE - numberStart: ns, - } -} - -// A numericWeighter translates a stream of digits into a stream of weights -// representing the numeric value. -type numericWeighter struct { - Weighter - - // The Elems below all demarcate boundaries of specific ranges. With the - // current element encoding digits are in two ranges: normal (default - // tertiary value) and special. For most languages, digits have collation - // elements in the normal range. - // - // Note: the range tests are very specific for the element encoding used by - // this implementation. The tests in collate_test.go are designed to fail - // if this code is not updated when an encoding has changed. - - zero Elem // normal digit zero - zeroSpecialLo Elem // special digit zero, low tertiary value - zeroSpecialHi Elem // special digit zero, high tertiary value - nine Elem // normal digit nine - nineSpecialHi Elem // special digit nine - numberStart Elem -} - -// AppendNext calls the namesake of the underlying weigher, but replaces single -// digits with weights representing their value. -func (nw *numericWeighter) AppendNext(buf []Elem, s []byte) (ce []Elem, n int) { - ce, n = nw.Weighter.AppendNext(buf, s) - nc := numberConverter{ - elems: buf, - w: nw, - b: s, - } - isZero, ok := nc.checkNextDigit(ce) - if !ok { - return ce, n - } - // ce might have been grown already, so take it instead of buf. - nc.init(ce, len(buf), isZero) - for n < len(s) { - ce, sz := nw.Weighter.AppendNext(nc.elems, s[n:]) - nc.b = s - n += sz - if !nc.update(ce) { - break - } - } - return nc.result(), n -} - -// AppendNextString calls the namesake of the underlying weigher, but replaces -// single digits with weights representing their value. -func (nw *numericWeighter) AppendNextString(buf []Elem, s string) (ce []Elem, n int) { - ce, n = nw.Weighter.AppendNextString(buf, s) - nc := numberConverter{ - elems: buf, - w: nw, - s: s, - } - isZero, ok := nc.checkNextDigit(ce) - if !ok { - return ce, n - } - nc.init(ce, len(buf), isZero) - for n < len(s) { - ce, sz := nw.Weighter.AppendNextString(nc.elems, s[n:]) - nc.s = s - n += sz - if !nc.update(ce) { - break - } - } - return nc.result(), n -} - -type numberConverter struct { - w *numericWeighter - - elems []Elem - nDigits int - lenIndex int - - s string // set if the input was of type string - b []byte // set if the input was of type []byte -} - -// init completes initialization of a numberConverter and prepares it for adding -// more digits. elems is assumed to have a digit starting at oldLen. -func (nc *numberConverter) init(elems []Elem, oldLen int, isZero bool) { - // Insert a marker indicating the start of a number and and a placeholder - // for the number of digits. - if isZero { - elems = append(elems[:oldLen], nc.w.numberStart, 0) - } else { - elems = append(elems, 0, 0) - copy(elems[oldLen+2:], elems[oldLen:]) - elems[oldLen] = nc.w.numberStart - elems[oldLen+1] = 0 - - nc.nDigits = 1 - } - nc.elems = elems - nc.lenIndex = oldLen + 1 -} - -// checkNextDigit reports whether bufNew adds a single digit relative to the old -// buffer. If it does, it also reports whether this digit is zero. -func (nc *numberConverter) checkNextDigit(bufNew []Elem) (isZero, ok bool) { - if len(nc.elems) >= len(bufNew) { - return false, false - } - e := bufNew[len(nc.elems)] - if e < nc.w.zeroSpecialLo || nc.w.nine < e { - // Not a number. - return false, false - } - if e < nc.w.zero { - if e > nc.w.nineSpecialHi { - // Not a number. - return false, false - } - if !nc.isDigit() { - return false, false - } - isZero = e <= nc.w.zeroSpecialHi - } else { - // This is the common case if we encounter a digit. - isZero = e == nc.w.zero - } - // Test the remaining added collation elements have a zero primary value. - if n := len(bufNew) - len(nc.elems); n > 1 { - for i := len(nc.elems) + 1; i < len(bufNew); i++ { - if bufNew[i].Primary() != 0 { - return false, false - } - } - // In some rare cases, collation elements will encode runes in - // unicode.No as a digit. For example Ethiopic digits (U+1369 - U+1371) - // are not in Nd. Also some digits that clearly belong in unicode.No, - // like U+0C78 TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR, have - // collation elements indistinguishable from normal digits. - // Unfortunately, this means we need to make this check for nearly all - // non-Latin digits. - // - // TODO: check the performance impact and find something better if it is - // an issue. - if !nc.isDigit() { - return false, false - } - } - return isZero, true -} - -func (nc *numberConverter) isDigit() bool { - if nc.b != nil { - r, _ := utf8.DecodeRune(nc.b) - return unicode.In(r, unicode.Nd) - } - r, _ := utf8.DecodeRuneInString(nc.s) - return unicode.In(r, unicode.Nd) -} - -// We currently support a maximum of about 2M digits (the number of primary -// values). Such numbers will compare correctly against small numbers, but their -// comparison against other large numbers is undefined. -// -// TODO: define a proper fallback, such as comparing large numbers textually or -// actually allowing numbers of unlimited length. -// -// TODO: cap this to a lower number (like 100) and maybe allow a larger number -// in an option? -const maxDigits = 1<<maxPrimaryBits - 1 - -func (nc *numberConverter) update(elems []Elem) bool { - isZero, ok := nc.checkNextDigit(elems) - if nc.nDigits == 0 && isZero { - return true - } - nc.elems = elems - if !ok { - return false - } - nc.nDigits++ - return nc.nDigits < maxDigits -} - -// result fills in the length element for the digit sequence and returns the -// completed collation elements. -func (nc *numberConverter) result() []Elem { - e, _ := MakeElem(nc.nDigits, defaultSecondary, defaultTertiary, 0) - nc.elems[nc.lenIndex] = e - return nc.elems -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/numeric_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/numeric_test.go deleted file mode 100644 index f55a2283..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/numeric_test.go +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package colltab - -import ( - "reflect" - "strings" - "testing" -) - -const ( - digSec = defaultSecondary - digTert = defaultTertiary -) - -var tPlus3 = e(0, 50, digTert+3) - -// numWeighter is a testWeighter used for testing numericWeighter. -var numWeighter = testWeighter{ - "0": p(100), - "ï¼": []Elem{e(100, digSec, digTert+1)}, // U+FF10 FULLWIDTH DIGIT ZERO - "â‚€": []Elem{e(100, digSec, digTert+5)}, // U+2080 SUBSCRIPT ZERO - - "1": p(101), - // Allow non-primary collation elements to be inserted. - "Ù¡": append(p(101), tPlus3), // U+0661 ARABIC-INDIC DIGIT ONE - // Allow varying tertiary weight if the number is Nd. - "1": []Elem{e(101, digSec, digTert+1)}, // U+FF11 FULLWIDTH DIGIT ONE - "2": p(102), - // Allow non-primary collation elements to be inserted. - "Ù¢": append(p(102), tPlus3), // U+0662 ARABIC-INDIC DIGIT TWO - // Varying tertiary weights should be ignored. - "ï¼’": []Elem{e(102, digSec, digTert+3)}, // U+FF12 FULLWIDTH DIGIT TWO - "3": p(103), - "4": p(104), - "5": p(105), - "6": p(106), - "7": p(107), - // Weights must be strictly monotonically increasing, but do not need to be - // consecutive. - "8": p(118), - "9": p(119), - // Allow non-primary collation elements to be inserted. - "Ù©": append(p(119), tPlus3), // U+0669 ARABIC-INDIC DIGIT NINE - // Varying tertiary weights should be ignored. - "ï¼™": []Elem{e(119, digSec, digTert+1)}, // U+FF19 FULLWIDTH DIGIT NINE - "₉": []Elem{e(119, digSec, digTert+5)}, // U+2089 SUBSCRIPT NINE - - "a": p(5), - "b": p(6), - "c": p(8, 2), - - "klm": p(99), - - "nop": p(121), - - "x": p(200), - "y": p(201), -} - -func p(w ...int) (elems []Elem) { - for _, x := range w { - e, _ := MakeElem(x, digSec, digTert, 0) - elems = append(elems, e) - } - return elems -} - -func TestNumericAppendNext(t *testing.T) { - for _, tt := range []struct { - in string - w []Elem - }{ - {"a", p(5)}, - {"klm", p(99)}, - {"aa", p(5, 5)}, - {"1", p(120, 1, 101)}, - {"0", p(120, 0)}, - {"01", p(120, 1, 101)}, - {"0001", p(120, 1, 101)}, - {"10", p(120, 2, 101, 100)}, - {"99", p(120, 2, 119, 119)}, - {"9999", p(120, 4, 119, 119, 119, 119)}, - {"1a", p(120, 1, 101, 5)}, - {"0b", p(120, 0, 6)}, - {"01c", p(120, 1, 101, 8, 2)}, - {"10x", p(120, 2, 101, 100, 200)}, - {"99y", p(120, 2, 119, 119, 201)}, - {"9999nop", p(120, 4, 119, 119, 119, 119, 121)}, - - // Allow follow-up collation elements if they have a zero non-primary. - {"١٢٩", []Elem{e(120), e(3), e(101), tPlus3, e(102), tPlus3, e(119), tPlus3}}, - { - "129", - []Elem{ - e(120), e(3), - e(101, digSec, digTert+1), - e(102, digSec, digTert+3), - e(119, digSec, digTert+1), - }, - }, - - // Ensure AppendNext* adds to the given buffer. - {"a10", p(5, 120, 2, 101, 100)}, - } { - nw := NewNumericWeighter(numWeighter) - - b := []byte(tt.in) - got := []Elem(nil) - for n, sz := 0, 0; n < len(b); { - got, sz = nw.AppendNext(got, b[n:]) - n += sz - } - if !reflect.DeepEqual(got, tt.w) { - t.Errorf("AppendNext(%q) =\n%v; want\n%v", tt.in, got, tt.w) - } - - got = nil - for n, sz := 0, 0; n < len(tt.in); { - got, sz = nw.AppendNextString(got, tt.in[n:]) - n += sz - } - if !reflect.DeepEqual(got, tt.w) { - t.Errorf("AppendNextString(%q) =\n%v; want\n%v", tt.in, got, tt.w) - } - } -} - -func TestNumericOverflow(t *testing.T) { - manyDigits := strings.Repeat("9", maxDigits+1) + "a" - - nw := NewNumericWeighter(numWeighter) - - got, n := nw.AppendNextString(nil, manyDigits) - - if n != maxDigits { - t.Errorf("n: got %d; want %d", n, maxDigits) - } - - if got[1].Primary() != maxDigits { - t.Errorf("primary(e[1]): got %d; want %d", n, maxDigits) - } -} - -func TestNumericWeighterAlloc(t *testing.T) { - buf := make([]Elem, 100) - w := NewNumericWeighter(numWeighter) - s := "1234567890a" - - nNormal := testing.AllocsPerRun(3, func() { numWeighter.AppendNextString(buf, s) }) - nNumeric := testing.AllocsPerRun(3, func() { w.AppendNextString(buf, s) }) - if n := nNumeric - nNormal; n > 0 { - t.Errorf("got %f; want 0", n) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/table.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/table.go deleted file mode 100644 index d020a988..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/table.go +++ /dev/null @@ -1,275 +0,0 @@ -// Copyright 2012 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 colltab - -import ( - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm" -) - -// table holds all collation data for a given collation ordering. -type table struct { - index trie // main trie - - // expansion info - expandElem []uint32 - - // contraction info - contractTries contractTrieSet - contractElem []uint32 - maxContractLen int - variableTop uint32 -} - -func (t *table) AppendNext(w []Elem, b []byte) (res []Elem, n int) { - return t.appendNext(w, source{bytes: b}) -} - -func (t *table) AppendNextString(w []Elem, s string) (res []Elem, n int) { - return t.appendNext(w, source{str: s}) -} - -func (t *table) Start(p int, b []byte) int { - // TODO: implement - panic("not implemented") -} - -func (t *table) StartString(p int, s string) int { - // TODO: implement - panic("not implemented") -} - -func (t *table) Domain() []string { - // TODO: implement - panic("not implemented") -} - -func (t *table) Top() uint32 { - return t.variableTop -} - -type source struct { - str string - bytes []byte -} - -func (src *source) lookup(t *table) (ce Elem, sz int) { - if src.bytes == nil { - return t.index.lookupString(src.str) - } - return t.index.lookup(src.bytes) -} - -func (src *source) tail(sz int) { - if src.bytes == nil { - src.str = src.str[sz:] - } else { - src.bytes = src.bytes[sz:] - } -} - -func (src *source) nfd(buf []byte, end int) []byte { - if src.bytes == nil { - return norm.NFD.AppendString(buf[:0], src.str[:end]) - } - return norm.NFD.Append(buf[:0], src.bytes[:end]...) -} - -func (src *source) rune() (r rune, sz int) { - if src.bytes == nil { - return utf8.DecodeRuneInString(src.str) - } - return utf8.DecodeRune(src.bytes) -} - -func (src *source) properties(f norm.Form) norm.Properties { - if src.bytes == nil { - return f.PropertiesString(src.str) - } - return f.Properties(src.bytes) -} - -// appendNext appends the weights corresponding to the next rune or -// contraction in s. If a contraction is matched to a discontinuous -// sequence of runes, the weights for the interstitial runes are -// appended as well. It returns a new slice that includes the appended -// weights and the number of bytes consumed from s. -func (t *table) appendNext(w []Elem, src source) (res []Elem, n int) { - ce, sz := src.lookup(t) - tp := ce.ctype() - if tp == ceNormal { - if ce == 0 { - r, _ := src.rune() - const ( - hangulSize = 3 - firstHangul = 0xAC00 - lastHangul = 0xD7A3 - ) - if r >= firstHangul && r <= lastHangul { - // TODO: performance can be considerably improved here. - n = sz - var buf [16]byte // Used for decomposing Hangul. - for b := src.nfd(buf[:0], hangulSize); len(b) > 0; b = b[sz:] { - ce, sz = t.index.lookup(b) - w = append(w, ce) - } - return w, n - } - ce = makeImplicitCE(implicitPrimary(r)) - } - w = append(w, ce) - } else if tp == ceExpansionIndex { - w = t.appendExpansion(w, ce) - } else if tp == ceContractionIndex { - n := 0 - src.tail(sz) - if src.bytes == nil { - w, n = t.matchContractionString(w, ce, src.str) - } else { - w, n = t.matchContraction(w, ce, src.bytes) - } - sz += n - } else if tp == ceDecompose { - // Decompose using NFKD and replace tertiary weights. - t1, t2 := splitDecompose(ce) - i := len(w) - nfkd := src.properties(norm.NFKD).Decomposition() - for p := 0; len(nfkd) > 0; nfkd = nfkd[p:] { - w, p = t.appendNext(w, source{bytes: nfkd}) - } - w[i] = w[i].updateTertiary(t1) - if i++; i < len(w) { - w[i] = w[i].updateTertiary(t2) - for i++; i < len(w); i++ { - w[i] = w[i].updateTertiary(maxTertiary) - } - } - } - return w, sz -} - -func (t *table) appendExpansion(w []Elem, ce Elem) []Elem { - i := splitExpandIndex(ce) - n := int(t.expandElem[i]) - i++ - for _, ce := range t.expandElem[i : i+n] { - w = append(w, Elem(ce)) - } - return w -} - -func (t *table) matchContraction(w []Elem, ce Elem, suffix []byte) ([]Elem, int) { - index, n, offset := splitContractIndex(ce) - - scan := t.contractTries.scanner(index, n, suffix) - buf := [norm.MaxSegmentSize]byte{} - bufp := 0 - p := scan.scan(0) - - if !scan.done && p < len(suffix) && suffix[p] >= utf8.RuneSelf { - // By now we should have filtered most cases. - p0 := p - bufn := 0 - rune := norm.NFD.Properties(suffix[p:]) - p += rune.Size() - if rune.LeadCCC() != 0 { - prevCC := rune.TrailCCC() - // A gap may only occur in the last normalization segment. - // This also ensures that len(scan.s) < norm.MaxSegmentSize. - if end := norm.NFD.FirstBoundary(suffix[p:]); end != -1 { - scan.s = suffix[:p+end] - } - for p < len(suffix) && !scan.done && suffix[p] >= utf8.RuneSelf { - rune = norm.NFD.Properties(suffix[p:]) - if ccc := rune.LeadCCC(); ccc == 0 || prevCC >= ccc { - break - } - prevCC = rune.TrailCCC() - if pp := scan.scan(p); pp != p { - // Copy the interstitial runes for later processing. - bufn += copy(buf[bufn:], suffix[p0:p]) - if scan.pindex == pp { - bufp = bufn - } - p, p0 = pp, pp - } else { - p += rune.Size() - } - } - } - } - // Append weights for the matched contraction, which may be an expansion. - i, n := scan.result() - ce = Elem(t.contractElem[i+offset]) - if ce.ctype() == ceNormal { - w = append(w, ce) - } else { - w = t.appendExpansion(w, ce) - } - // Append weights for the runes in the segment not part of the contraction. - for b, p := buf[:bufp], 0; len(b) > 0; b = b[p:] { - w, p = t.appendNext(w, source{bytes: b}) - } - return w, n -} - -// TODO: unify the two implementations. This is best done after first simplifying -// the algorithm taking into account the inclusion of both NFC and NFD forms -// in the table. -func (t *table) matchContractionString(w []Elem, ce Elem, suffix string) ([]Elem, int) { - index, n, offset := splitContractIndex(ce) - - scan := t.contractTries.scannerString(index, n, suffix) - buf := [norm.MaxSegmentSize]byte{} - bufp := 0 - p := scan.scan(0) - - if !scan.done && p < len(suffix) && suffix[p] >= utf8.RuneSelf { - // By now we should have filtered most cases. - p0 := p - bufn := 0 - rune := norm.NFD.PropertiesString(suffix[p:]) - p += rune.Size() - if rune.LeadCCC() != 0 { - prevCC := rune.TrailCCC() - // A gap may only occur in the last normalization segment. - // This also ensures that len(scan.s) < norm.MaxSegmentSize. - if end := norm.NFD.FirstBoundaryInString(suffix[p:]); end != -1 { - scan.s = suffix[:p+end] - } - for p < len(suffix) && !scan.done && suffix[p] >= utf8.RuneSelf { - rune = norm.NFD.PropertiesString(suffix[p:]) - if ccc := rune.LeadCCC(); ccc == 0 || prevCC >= ccc { - break - } - prevCC = rune.TrailCCC() - if pp := scan.scan(p); pp != p { - // Copy the interstitial runes for later processing. - bufn += copy(buf[bufn:], suffix[p0:p]) - if scan.pindex == pp { - bufp = bufn - } - p, p0 = pp, pp - } else { - p += rune.Size() - } - } - } - } - // Append weights for the matched contraction, which may be an expansion. - i, n := scan.result() - ce = Elem(t.contractElem[i+offset]) - if ce.ctype() == ceNormal { - w = append(w, ce) - } else { - w = t.appendExpansion(w, ce) - } - // Append weights for the runes in the segment not part of the contraction. - for b, p := buf[:bufp], 0; len(b) > 0; b = b[p:] { - w, p = t.appendNext(w, source{bytes: b}) - } - return w, n -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/trie.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/trie.go deleted file mode 100644 index f95b4abe..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/trie.go +++ /dev/null @@ -1,159 +0,0 @@ -// Copyright 2012 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. - -// The trie in this file is used to associate the first full character in an -// UTF-8 string to a collation element. All but the last byte in a UTF-8 byte -// sequence are used to lookup offsets in the index table to be used for the -// next byte. The last byte is used to index into a table of collation elements. -// For a full description, see go.text/collate/build/trie.go. - -package colltab - -const blockSize = 64 - -type trie struct { - index0 []uint16 // index for first byte (0xC0-0xFF) - values0 []uint32 // index for first byte (0x00-0x7F) - index []uint16 - values []uint32 -} - -const ( - t1 = 0x00 // 0000 0000 - tx = 0x80 // 1000 0000 - t2 = 0xC0 // 1100 0000 - t3 = 0xE0 // 1110 0000 - t4 = 0xF0 // 1111 0000 - t5 = 0xF8 // 1111 1000 - t6 = 0xFC // 1111 1100 - te = 0xFE // 1111 1110 -) - -func (t *trie) lookupValue(n uint16, b byte) Elem { - return Elem(t.values[int(n)<<6+int(b)]) -} - -// 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 *trie) lookup(s []byte) (v Elem, sz int) { - c0 := s[0] - switch { - case c0 < tx: - return Elem(t.values0[c0]), 1 - case c0 < t2: - return 0, 1 - case c0 < t3: - if len(s) < 2 { - return 0, 0 - } - i := t.index0[c0] - c1 := s[1] - if c1 < tx || t2 <= c1 { - return 0, 1 - } - return t.lookupValue(i, c1), 2 - case c0 < t4: - if len(s) < 3 { - return 0, 0 - } - i := t.index0[c0] - c1 := s[1] - if c1 < tx || t2 <= c1 { - return 0, 1 - } - o := int(i)<<6 + int(c1) - i = t.index[o] - c2 := s[2] - if c2 < tx || t2 <= c2 { - return 0, 2 - } - return t.lookupValue(i, c2), 3 - case c0 < t5: - if len(s) < 4 { - return 0, 0 - } - i := t.index0[c0] - c1 := s[1] - if c1 < tx || t2 <= c1 { - return 0, 1 - } - o := int(i)<<6 + int(c1) - i = t.index[o] - c2 := s[2] - if c2 < tx || t2 <= c2 { - return 0, 2 - } - o = int(i)<<6 + int(c2) - i = t.index[o] - c3 := s[3] - if c3 < tx || t2 <= c3 { - return 0, 3 - } - return t.lookupValue(i, c3), 4 - } - // Illegal rune - return 0, 1 -} - -// The body of lookupString is a verbatim copy of that of lookup. -func (t *trie) lookupString(s string) (v Elem, sz int) { - c0 := s[0] - switch { - case c0 < tx: - return Elem(t.values0[c0]), 1 - case c0 < t2: - return 0, 1 - case c0 < t3: - if len(s) < 2 { - return 0, 0 - } - i := t.index0[c0] - c1 := s[1] - if c1 < tx || t2 <= c1 { - return 0, 1 - } - return t.lookupValue(i, c1), 2 - case c0 < t4: - if len(s) < 3 { - return 0, 0 - } - i := t.index0[c0] - c1 := s[1] - if c1 < tx || t2 <= c1 { - return 0, 1 - } - o := int(i)<<6 + int(c1) - i = t.index[o] - c2 := s[2] - if c2 < tx || t2 <= c2 { - return 0, 2 - } - return t.lookupValue(i, c2), 3 - case c0 < t5: - if len(s) < 4 { - return 0, 0 - } - i := t.index0[c0] - c1 := s[1] - if c1 < tx || t2 <= c1 { - return 0, 1 - } - o := int(i)<<6 + int(c1) - i = t.index[o] - c2 := s[2] - if c2 < tx || t2 <= c2 { - return 0, 2 - } - o = int(i)<<6 + int(c2) - i = t.index[o] - c3 := s[3] - if c3 < tx || t2 <= c3 { - return 0, 3 - } - return t.lookupValue(i, c3), 4 - } - // Illegal rune - return 0, 1 -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/trie_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/trie_test.go deleted file mode 100644 index 85e24220..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab/trie_test.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2012 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 colltab - -import ( - "testing" -) - -// We take the smallest, largest and an arbitrary value for each -// of the UTF-8 sequence lengths. -var testRunes = []rune{ - 0x01, 0x0C, 0x7F, // 1-byte sequences - 0x80, 0x100, 0x7FF, // 2-byte sequences - 0x800, 0x999, 0xFFFF, // 3-byte sequences - 0x10000, 0x10101, 0x10FFFF, // 4-byte sequences - 0x200, 0x201, 0x202, 0x210, 0x215, // five entries in one sparse block -} - -// Test cases for illegal runes. -type trietest struct { - size int - bytes []byte -} - -var tests = []trietest{ - // illegal runes - {1, []byte{0x80}}, - {1, []byte{0xFF}}, - {1, []byte{t2, tx - 1}}, - {1, []byte{t2, t2}}, - {2, []byte{t3, tx, tx - 1}}, - {2, []byte{t3, tx, t2}}, - {1, []byte{t3, tx - 1, tx}}, - {3, []byte{t4, tx, tx, tx - 1}}, - {3, []byte{t4, tx, tx, t2}}, - {1, []byte{t4, t2, tx, tx - 1}}, - {2, []byte{t4, tx, t2, tx - 1}}, - - // short runes - {0, []byte{t2}}, - {0, []byte{t3, tx}}, - {0, []byte{t4, tx, tx}}, - - // we only support UTF-8 up to utf8.UTFMax bytes (4 bytes) - {1, []byte{t5, tx, tx, tx, tx}}, - {1, []byte{t6, tx, tx, tx, tx, tx}}, -} - -func TestLookupTrie(t *testing.T) { - for i, r := range testRunes { - b := []byte(string(r)) - v, sz := testTrie.lookup(b) - if int(v) != i { - t.Errorf("lookup(%U): found value %#x, expected %#x", r, v, i) - } - if sz != len(b) { - t.Errorf("lookup(%U): found size %d, expected %d", r, sz, len(b)) - } - } - for i, tt := range tests { - v, sz := testTrie.lookup(tt.bytes) - if int(v) != 0 { - t.Errorf("lookup of illegal rune, case %d: found value %#x, expected 0", i, v) - } - if sz != tt.size { - t.Errorf("lookup of illegal rune, case %d: found size %d, expected %d", i, sz, tt.size) - } - } -} - -// test data is taken from exp/collate/locale/build/trie_test.go -var testValues = [832]uint32{ - 0x000c: 0x00000001, - 0x007f: 0x00000002, - 0x00c0: 0x00000003, - 0x0100: 0x00000004, - 0x0140: 0x0000000c, 0x0141: 0x0000000d, 0x0142: 0x0000000e, - 0x0150: 0x0000000f, - 0x0155: 0x00000010, - 0x01bf: 0x00000005, - 0x01c0: 0x00000006, - 0x0219: 0x00000007, - 0x027f: 0x00000008, - 0x0280: 0x00000009, - 0x02c1: 0x0000000a, - 0x033f: 0x0000000b, -} - -var testLookup = [640]uint16{ - 0x0e0: 0x05, 0x0e6: 0x06, - 0x13f: 0x07, - 0x140: 0x08, 0x144: 0x09, - 0x190: 0x03, - 0x1ff: 0x0a, - 0x20f: 0x05, - 0x242: 0x01, 0x244: 0x02, - 0x248: 0x03, - 0x25f: 0x04, - 0x260: 0x01, - 0x26f: 0x02, - 0x270: 0x04, 0x274: 0x06, -} - -var testTrie = trie{testLookup[6*blockSize:], testValues[:], testLookup[:], testValues[:]} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/export_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/export_test.go deleted file mode 100644 index 0eddd97c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/export_test.go +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2012 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 collate - -// Export for testing. -// TODO: no longer necessary. Remove at some point. - -import ( - "fmt" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" -) - -const ( - defaultSecondary = 0x20 - defaultTertiary = 0x2 -) - -type Weights struct { - Primary, Secondary, Tertiary, Quaternary int -} - -func W(ce ...int) Weights { - w := Weights{ce[0], defaultSecondary, defaultTertiary, 0} - if len(ce) > 1 { - w.Secondary = ce[1] - } - if len(ce) > 2 { - w.Tertiary = ce[2] - } - if len(ce) > 3 { - w.Quaternary = ce[3] - } - return w -} -func (w Weights) String() string { - return fmt.Sprintf("[%X.%X.%X.%X]", w.Primary, w.Secondary, w.Tertiary, w.Quaternary) -} - -func convertFromWeights(ws []Weights) []colltab.Elem { - out := make([]colltab.Elem, len(ws)) - for i, w := range ws { - out[i], _ = colltab.MakeElem(w.Primary, w.Secondary, w.Tertiary, 0) - if out[i] == colltab.Ignore && w.Quaternary > 0 { - out[i] = colltab.MakeQuaternary(w.Quaternary) - } - } - return out -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/index.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/index.go deleted file mode 100644 index 1c3191b0..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/index.go +++ /dev/null @@ -1,44 +0,0 @@ -// 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 collate - -// tableIndex holds information for constructing a table -// for a certain locale based on the main table. -type tableIndex struct { - lookupOffset uint32 - valuesOffset uint32 -} - -func (t tableIndex) TrieIndex() []uint16 { - return mainLookup[:] -} - -func (t tableIndex) TrieValues() []uint32 { - return mainValues[:] -} - -func (t tableIndex) FirstBlockOffsets() (lookup, value uint16) { - return uint16(t.lookupOffset), uint16(t.valuesOffset) -} - -func (t tableIndex) ExpandElems() []uint32 { - return mainExpandElem[:] -} - -func (t tableIndex) ContractTries() []struct{ l, h, n, i uint8 } { - return mainCTEntries[:] -} - -func (t tableIndex) ContractElems() []uint32 { - return mainContractElem[:] -} - -func (t tableIndex) MaxContractLen() int { - return 18 // TODO: generate -} - -func (t tableIndex) VariableTop() uint32 { - return varTop -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/maketables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/maketables.go deleted file mode 100644 index 6e65c44d..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/maketables.go +++ /dev/null @@ -1,541 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// Collation table generator. -// Data read from the web. - -package main - -import ( - "archive/zip" - "bufio" - "bytes" - "flag" - "fmt" - "io" - "io/ioutil" - "log" - "os" - "regexp" - "sort" - "strconv" - "strings" - "unicode/utf8" - - "golang.org/x/text/cldr" - "golang.org/x/text/collate" - "golang.org/x/text/collate/build" - "golang.org/x/text/collate/colltab" - "golang.org/x/text/internal/gen" - "golang.org/x/text/language" -) - -var ( - test = flag.Bool("test", false, - "test existing tables; can be used to compare web data with package data.") - short = flag.Bool("short", false, `Use "short" alternatives, when available.`) - draft = flag.Bool("draft", false, `Use draft versions, when available.`) - tags = flag.String("tags", "", "build tags to be included after +build directive") - pkg = flag.String("package", "collate", - "the name of the package in which the generated file is to be included") - - tables = flagStringSetAllowAll("tables", "collate", "collate,chars", - "comma-spearated list of tables to generate.") - exclude = flagStringSet("exclude", "zh2", "", - "comma-separated list of languages to exclude.") - include = flagStringSet("include", "", "", - "comma-separated list of languages to include. Include trumps exclude.") - types = flagStringSetAllowAll("types", "", "", - "comma-separated list of types that should be included.") -) - -// stringSet implements an ordered set based on a list. It implements flag.Value -// to allow a set to be specified as a comma-separated list. -type stringSet struct { - s []string - allowed *stringSet - dirty bool // needs compaction if true - all bool - allowAll bool -} - -func flagStringSet(name, def, allowed, usage string) *stringSet { - ss := &stringSet{} - if allowed != "" { - usage += fmt.Sprintf(" (allowed values: any of %s)", allowed) - ss.allowed = &stringSet{} - failOnError(ss.allowed.Set(allowed)) - } - ss.Set(def) - flag.Var(ss, name, usage) - return ss -} - -func flagStringSetAllowAll(name, def, allowed, usage string) *stringSet { - ss := &stringSet{allowAll: true} - if allowed == "" { - flag.Var(ss, name, usage+fmt.Sprintf(` Use "all" to select all.`)) - } else { - ss.allowed = &stringSet{} - failOnError(ss.allowed.Set(allowed)) - flag.Var(ss, name, usage+fmt.Sprintf(` (allowed values: "all" or any of %s)`, allowed)) - } - ss.Set(def) - return ss -} - -func (ss stringSet) Len() int { - return len(ss.s) -} - -func (ss stringSet) String() string { - return strings.Join(ss.s, ",") -} - -func (ss *stringSet) Set(s string) error { - if ss.allowAll && s == "all" { - ss.s = nil - ss.all = true - return nil - } - ss.s = ss.s[:0] - for _, s := range strings.Split(s, ",") { - if s := strings.TrimSpace(s); s != "" { - if ss.allowed != nil && !ss.allowed.contains(s) { - return fmt.Errorf("unsupported value %q; must be one of %s", s, ss.allowed) - } - ss.add(s) - } - } - ss.compact() - return nil -} - -func (ss *stringSet) add(s string) { - ss.s = append(ss.s, s) - ss.dirty = true -} - -func (ss *stringSet) values() []string { - ss.compact() - return ss.s -} - -func (ss *stringSet) contains(s string) bool { - if ss.all { - return true - } - for _, v := range ss.s { - if v == s { - return true - } - } - return false -} - -func (ss *stringSet) compact() { - if !ss.dirty { - return - } - a := ss.s - sort.Strings(a) - k := 0 - for i := 1; i < len(a); i++ { - if a[k] != a[i] { - a[k+1] = a[i] - k++ - } - } - ss.s = a[:k+1] - ss.dirty = false -} - -func skipLang(l string) bool { - if include.Len() > 0 { - return !include.contains(l) - } - return exclude.contains(l) -} - -// altInclude returns a list of alternatives (for the LDML alt attribute) -// in order of preference. An empty string in this list indicates the -// default entry. -func altInclude() []string { - l := []string{} - if *short { - l = append(l, "short") - } - l = append(l, "") - // TODO: handle draft using cldr.SetDraftLevel - if *draft { - l = append(l, "proposed") - } - return l -} - -func failOnError(e error) { - if e != nil { - log.Panic(e) - } -} - -func openArchive() *zip.Reader { - f := gen.OpenCLDRCoreZip() - buffer, err := ioutil.ReadAll(f) - f.Close() - failOnError(err) - archive, err := zip.NewReader(bytes.NewReader(buffer), int64(len(buffer))) - failOnError(err) - return archive -} - -// parseUCA parses a Default Unicode Collation Element Table of the format -// specified in http://www.unicode.org/reports/tr10/#File_Format. -// It returns the variable top. -func parseUCA(builder *build.Builder) { - var r io.ReadCloser - var err error - for _, f := range openArchive().File { - if strings.HasSuffix(f.Name, "allkeys_CLDR.txt") { - r, err = f.Open() - } - } - if r == nil { - log.Fatal("File allkeys_CLDR.txt not found in archive.") - } - failOnError(err) - defer r.Close() - scanner := bufio.NewScanner(r) - colelem := regexp.MustCompile(`\[([.*])([0-9A-F.]+)\]`) - for i := 1; scanner.Scan(); i++ { - line := scanner.Text() - if len(line) == 0 || line[0] == '#' { - continue - } - if line[0] == '@' { - // parse properties - switch { - case strings.HasPrefix(line[1:], "version "): - a := strings.Split(line[1:], " ") - if a[1] != gen.UnicodeVersion() { - log.Fatalf("incompatible version %s; want %s", a[1], gen.UnicodeVersion()) - } - case strings.HasPrefix(line[1:], "backwards "): - log.Fatalf("%d: unsupported option backwards", i) - default: - log.Printf("%d: unknown option %s", i, line[1:]) - } - } else { - // parse entries - part := strings.Split(line, " ; ") - if len(part) != 2 { - log.Fatalf("%d: production rule without ';': %v", i, line) - } - lhs := []rune{} - for _, v := range strings.Split(part[0], " ") { - if v == "" { - continue - } - lhs = append(lhs, rune(convHex(i, v))) - } - var n int - var vars []int - rhs := [][]int{} - for i, m := range colelem.FindAllStringSubmatch(part[1], -1) { - n += len(m[0]) - elem := []int{} - for _, h := range strings.Split(m[2], ".") { - elem = append(elem, convHex(i, h)) - } - if m[1] == "*" { - vars = append(vars, i) - } - rhs = append(rhs, elem) - } - if len(part[1]) < n+3 || part[1][n+1] != '#' { - log.Fatalf("%d: expected comment; found %s", i, part[1][n:]) - } - if *test { - testInput.add(string(lhs)) - } - failOnError(builder.Add(lhs, rhs, vars)) - } - } - if scanner.Err() != nil { - log.Fatal(scanner.Err()) - } -} - -func convHex(line int, s string) int { - r, e := strconv.ParseInt(s, 16, 32) - if e != nil { - log.Fatalf("%d: %v", line, e) - } - return int(r) -} - -var testInput = stringSet{} - -var charRe = regexp.MustCompile(`&#x([0-9A-F]*);`) -var tagRe = regexp.MustCompile(`<([a-z_]*) */>`) - -var mainLocales = []string{} - -// charsets holds a list of exemplar characters per category. -type charSets map[string][]string - -func (p charSets) fprint(w io.Writer) { - fmt.Fprintln(w, "[exN]string{") - for i, k := range []string{"", "contractions", "punctuation", "auxiliary", "currencySymbol", "index"} { - if set := p[k]; len(set) != 0 { - fmt.Fprintf(w, "\t\t%d: %q,\n", i, strings.Join(set, " ")) - } - } - fmt.Fprintln(w, "\t},") -} - -var localeChars = make(map[string]charSets) - -const exemplarHeader = ` -type exemplarType int -const ( - exCharacters exemplarType = iota - exContractions - exPunctuation - exAuxiliary - exCurrency - exIndex - exN -) -` - -func printExemplarCharacters(w io.Writer) { - fmt.Fprintln(w, exemplarHeader) - fmt.Fprintln(w, "var exemplarCharacters = map[string][exN]string{") - for _, loc := range mainLocales { - fmt.Fprintf(w, "\t%q: ", loc) - localeChars[loc].fprint(w) - } - fmt.Fprintln(w, "}") -} - -func decodeCLDR(d *cldr.Decoder) *cldr.CLDR { - r := gen.OpenCLDRCoreZip() - data, err := d.DecodeZip(r) - failOnError(err) - return data -} - -// parseMain parses XML files in the main directory of the CLDR core.zip file. -func parseMain() { - d := &cldr.Decoder{} - d.SetDirFilter("main") - d.SetSectionFilter("characters") - data := decodeCLDR(d) - for _, loc := range data.Locales() { - x := data.RawLDML(loc) - if skipLang(x.Identity.Language.Type) { - continue - } - if x.Characters != nil { - x, _ = data.LDML(loc) - loc = language.Make(loc).String() - for _, ec := range x.Characters.ExemplarCharacters { - if ec.Draft != "" { - continue - } - if _, ok := localeChars[loc]; !ok { - mainLocales = append(mainLocales, loc) - localeChars[loc] = make(charSets) - } - localeChars[loc][ec.Type] = parseCharacters(ec.Data()) - } - } - } -} - -func parseCharacters(chars string) []string { - parseSingle := func(s string) (r rune, tail string, escaped bool) { - if s[0] == '\\' { - return rune(s[1]), s[2:], true - } - r, sz := utf8.DecodeRuneInString(s) - return r, s[sz:], false - } - chars = strings.TrimSpace(chars) - if n := len(chars) - 1; chars[n] == ']' && chars[0] == '[' { - chars = chars[1:n] - } - list := []string{} - var r, last, end rune - for len(chars) > 0 { - if chars[0] == '{' { // character sequence - buf := []rune{} - for chars = chars[1:]; len(chars) > 0; { - r, chars, _ = parseSingle(chars) - if r == '}' { - break - } - if r == ' ' { - log.Fatalf("space not supported in sequence %q", chars) - } - buf = append(buf, r) - } - list = append(list, string(buf)) - last = 0 - } else { // single character - escaped := false - r, chars, escaped = parseSingle(chars) - if r != ' ' { - if r == '-' && !escaped { - if last == 0 { - log.Fatal("'-' should be preceded by a character") - } - end, chars, _ = parseSingle(chars) - for ; last <= end; last++ { - list = append(list, string(last)) - } - last = 0 - } else { - list = append(list, string(r)) - last = r - } - } - } - } - return list -} - -var fileRe = regexp.MustCompile(`.*/collation/(.*)\.xml`) - -// parseCollation parses XML files in the collation directory of the CLDR core.zip file. -func parseCollation(b *build.Builder) { - d := &cldr.Decoder{} - d.SetDirFilter("collation") - data := decodeCLDR(d) - for _, loc := range data.Locales() { - x, err := data.LDML(loc) - failOnError(err) - if skipLang(x.Identity.Language.Type) { - continue - } - cs := x.Collations.Collation - sl := cldr.MakeSlice(&cs) - if len(types.s) == 0 { - sl.SelectAnyOf("type", x.Collations.Default()) - } else if !types.all { - sl.SelectAnyOf("type", types.s...) - } - sl.SelectOnePerGroup("alt", altInclude()) - - for _, c := range cs { - id, err := language.Parse(loc) - if err != nil { - fmt.Fprintf(os.Stderr, "invalid locale: %q", err) - continue - } - // Support both old- and new-style defaults. - d := c.Type - if x.Collations.DefaultCollation == nil { - d = x.Collations.Default() - } else { - d = x.Collations.DefaultCollation.Data() - } - // We assume tables are being built either for search or collation, - // but not both. For search the default is always "search". - if d != c.Type && c.Type != "search" { - id, err = id.SetTypeForKey("co", c.Type) - failOnError(err) - } - t := b.Tailoring(id) - c.Process(processor{t}) - } - } -} - -type processor struct { - t *build.Tailoring -} - -func (p processor) Reset(anchor string, before int) (err error) { - if before != 0 { - err = p.t.SetAnchorBefore(anchor) - } else { - err = p.t.SetAnchor(anchor) - } - failOnError(err) - return nil -} - -func (p processor) Insert(level int, str, context, extend string) error { - str = context + str - if *test { - testInput.add(str) - } - // TODO: mimic bug in old maketables: remove. - err := p.t.Insert(colltab.Level(level-1), str, context+extend) - failOnError(err) - return nil -} - -func (p processor) Index(id string) { -} - -func testCollator(c *collate.Collator) { - c0 := collate.New(language.Und) - - // iterator over all characters for all locales and check - // whether Key is equal. - buf := collate.Buffer{} - - // Add all common and not too uncommon runes to the test set. - for i := rune(0); i < 0x30000; i++ { - testInput.add(string(i)) - } - for i := rune(0xE0000); i < 0xF0000; i++ { - testInput.add(string(i)) - } - for _, str := range testInput.values() { - k0 := c0.KeyFromString(&buf, str) - k := c.KeyFromString(&buf, str) - if !bytes.Equal(k0, k) { - failOnError(fmt.Errorf("test:%U: keys differ (%x vs %x)", []rune(str), k0, k)) - } - buf.Reset() - } - fmt.Println("PASS") -} - -func main() { - gen.Init() - b := build.NewBuilder() - parseUCA(b) - if tables.contains("chars") { - parseMain() - } - parseCollation(b) - - c, err := b.Build() - failOnError(err) - - if *test { - testCollator(collate.NewFromTable(c)) - } else { - w := &bytes.Buffer{} - - gen.WriteUnicodeVersion(w) - gen.WriteCLDRVersion(w) - - if tables.contains("collate") { - _, err = b.Print(w) - failOnError(err) - } - if tables.contains("chars") { - printExemplarCharacters(w) - } - gen.WriteGoFile("tables.go", *pkg, w.Bytes()) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/option.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/option.go deleted file mode 100644 index 948a6f0a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/option.go +++ /dev/null @@ -1,239 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package collate - -import ( - "sort" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm" -) - -// newCollator creates a new collator with default options configured. -func newCollator(t colltab.Weighter) *Collator { - // Initialize a collator with default options. - c := &Collator{ - options: options{ - ignore: [colltab.NumLevels]bool{ - colltab.Quaternary: true, - colltab.Identity: true, - }, - f: norm.NFD, - t: t, - }, - } - - // TODO: store vt in tags or remove. - c.variableTop = t.Top() - - return c -} - -// An Option is used to change the behavior of a Collator. Options override the -// settings passed through the locale identifier. -type Option struct { - priority int - f func(o *options) -} - -type prioritizedOptions []Option - -func (p prioritizedOptions) Len() int { - return len(p) -} - -func (p prioritizedOptions) Swap(i, j int) { - p[i], p[j] = p[j], p[i] -} - -func (p prioritizedOptions) Less(i, j int) bool { - return p[i].priority < p[j].priority -} - -type options struct { - // ignore specifies which levels to ignore. - ignore [colltab.NumLevels]bool - - // caseLevel is true if there is an additional level of case matching - // between the secondary and tertiary levels. - caseLevel bool - - // backwards specifies the order of sorting at the secondary level. - // This option exists predominantly to support reverse sorting of accents in French. - backwards bool - - // numeric specifies whether any sequence of decimal digits (category is Nd) - // is sorted at a primary level with its numeric value. - // For example, "A-21" < "A-123". - // This option is set by wrapping the main Weighter with NewNumericWeighter. - numeric bool - - // alternate specifies an alternative handling of variables. - alternate alternateHandling - - // variableTop is the largest primary value that is considered to be - // variable. - variableTop uint32 - - t colltab.Weighter - - f norm.Form -} - -func (o *options) setOptions(opts []Option) { - sort.Sort(prioritizedOptions(opts)) - for _, x := range opts { - x.f(o) - } -} - -// OptionsFromTag extracts the BCP47 collation options from the tag and -// configures a collator accordingly. These options are set before any other -// option. -func OptionsFromTag(t language.Tag) Option { - return Option{0, func(o *options) { - o.setFromTag(t) - }} -} - -func (o *options) setFromTag(t language.Tag) { - o.caseLevel = ldmlBool(t, o.caseLevel, "kc") - o.backwards = ldmlBool(t, o.backwards, "kb") - o.numeric = ldmlBool(t, o.numeric, "kn") - - // Extract settings from the BCP47 u extension. - switch t.TypeForKey("ks") { // strength - case "level1": - o.ignore[colltab.Secondary] = true - o.ignore[colltab.Tertiary] = true - case "level2": - o.ignore[colltab.Tertiary] = true - case "level3", "": - // The default. - case "level4": - o.ignore[colltab.Quaternary] = false - case "identic": - o.ignore[colltab.Quaternary] = false - o.ignore[colltab.Identity] = false - } - - switch t.TypeForKey("ka") { - case "shifted": - o.alternate = altShifted - // The following two types are not official BCP47, but we support them to - // give access to this otherwise hidden functionality. The name blanked is - // derived from the LDML name blanked and posix reflects the main use of - // the shift-trimmed option. - case "blanked": - o.alternate = altBlanked - case "posix": - o.alternate = altShiftTrimmed - } - - // TODO: caseFirst ("kf"), reorder ("kr"), and maybe variableTop ("vt"). - - // Not used: - // - normalization ("kk", not necessary for this implementation) - // - hiraganaQuatenary ("kh", obsolete) -} - -func ldmlBool(t language.Tag, old bool, key string) bool { - switch t.TypeForKey(key) { - case "true": - return true - case "false": - return false - default: - return old - } -} - -var ( - // IgnoreCase sets case-insensitive comparison. - IgnoreCase Option = ignoreCase - ignoreCase = Option{3, ignoreCaseF} - - // IgnoreDiacritics causes diacritical marks to be ignored. ("o" == "ö"). - IgnoreDiacritics Option = ignoreDiacritics - ignoreDiacritics = Option{3, ignoreDiacriticsF} - - // IgnoreWidth causes full-width characters to match their half-width - // equivalents. - IgnoreWidth Option = ignoreWidth - ignoreWidth = Option{2, ignoreWidthF} - - // Loose sets the collator to ignore diacritics, case and weight. - Loose Option = loose - loose = Option{4, looseF} - - // Force ordering if strings are equivalent but not equal. - Force Option = force - force = Option{5, forceF} - - // Numeric specifies that numbers should sort numerically ("2" < "12"). - Numeric Option = numeric - numeric = Option{5, numericF} -) - -func ignoreWidthF(o *options) { - o.ignore[colltab.Tertiary] = true - o.caseLevel = true -} - -func ignoreDiacriticsF(o *options) { - o.ignore[colltab.Secondary] = true -} - -func ignoreCaseF(o *options) { - o.ignore[colltab.Tertiary] = true - o.caseLevel = false -} - -func looseF(o *options) { - ignoreWidthF(o) - ignoreDiacriticsF(o) - ignoreCaseF(o) -} - -func forceF(o *options) { - o.ignore[colltab.Identity] = false -} - -func numericF(o *options) { o.numeric = true } - -// Reorder overrides the pre-defined ordering of scripts and character sets. -func Reorder(s ...string) Option { - // TODO: need fractional weights to implement this. - panic("TODO: implement") -} - -// TODO: consider making these public again. These options cannot be fully -// specified in BCP47, so an API interface seems warranted. Still a higher-level -// interface would be nice (e.g. a POSIX option for enabling altShiftTrimmed) - -// alternateHandling identifies the various ways in which variables are handled. -// A rune with a primary weight lower than the variable top is considered a -// variable. -// See http://www.unicode.org/reports/tr10/#Variable_Weighting for details. -type alternateHandling int - -const ( - // altNonIgnorable turns off special handling of variables. - altNonIgnorable alternateHandling = iota - - // altBlanked sets variables and all subsequent primary ignorables to be - // ignorable at all levels. This is identical to removing all variables - // and subsequent primary ignorables from the input. - altBlanked - - // altShifted sets variables to be ignorable for levels one through three and - // adds a fourth level based on the values of the ignored levels. - altShifted - - // altShiftTrimmed is a slight variant of altShifted that is used to - // emulate POSIX. - altShiftTrimmed -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/option_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/option_test.go deleted file mode 100644 index a544b440..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/option_test.go +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -package collate - -import ( - "reflect" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -var ( - defaultIgnore = ignore(colltab.Tertiary) - defaultTable = colltab.Init(locales[0]) -) - -func TestOptions(t *testing.T) { - for i, tt := range []struct { - in []Option - out options - }{ - 0: { - out: options{ - ignore: defaultIgnore, - }, - }, - 1: { - in: []Option{IgnoreDiacritics}, - out: options{ - ignore: [colltab.NumLevels]bool{false, true, false, true, true}, - }, - }, - 2: { - in: []Option{IgnoreCase, IgnoreDiacritics}, - out: options{ - ignore: ignore(colltab.Primary), - }, - }, - 3: { - in: []Option{ignoreDiacritics, IgnoreWidth}, - out: options{ - ignore: ignore(colltab.Primary), - caseLevel: true, - }, - }, - 4: { - in: []Option{IgnoreWidth, ignoreDiacritics}, - out: options{ - ignore: ignore(colltab.Primary), - caseLevel: true, - }, - }, - 5: { - in: []Option{IgnoreCase, IgnoreWidth}, - out: options{ - ignore: ignore(colltab.Secondary), - }, - }, - 6: { - in: []Option{IgnoreCase, IgnoreWidth, Loose}, - out: options{ - ignore: ignore(colltab.Primary), - }, - }, - 7: { - in: []Option{Force, IgnoreCase, IgnoreWidth, Loose}, - out: options{ - ignore: [colltab.NumLevels]bool{false, true, true, true, false}, - }, - }, - 8: { - in: []Option{IgnoreDiacritics, IgnoreCase}, - out: options{ - ignore: ignore(colltab.Primary), - }, - }, - 9: { - in: []Option{Numeric}, - out: options{ - ignore: defaultIgnore, - numeric: true, - }, - }, - 10: { - in: []Option{OptionsFromTag(language.MustParse("und-u-ks-level1"))}, - out: options{ - ignore: ignore(colltab.Primary), - }, - }, - 11: { - in: []Option{OptionsFromTag(language.MustParse("und-u-ks-level4"))}, - out: options{ - ignore: ignore(colltab.Quaternary), - }, - }, - 12: { - in: []Option{OptionsFromTag(language.MustParse("und-u-ks-identic"))}, - out: options{}, - }, - 13: { - in: []Option{ - OptionsFromTag(language.MustParse("und-u-kn-true-kb-true-kc-true")), - }, - out: options{ - ignore: defaultIgnore, - caseLevel: true, - backwards: true, - numeric: true, - }, - }, - 14: { - in: []Option{ - OptionsFromTag(language.MustParse("und-u-kn-true-kb-true-kc-true")), - OptionsFromTag(language.MustParse("und-u-kn-false-kb-false-kc-false")), - }, - out: options{ - ignore: defaultIgnore, - }, - }, - 15: { - in: []Option{ - OptionsFromTag(language.MustParse("und-u-kn-true-kb-true-kc-true")), - OptionsFromTag(language.MustParse("und-u-kn-foo-kb-foo-kc-foo")), - }, - out: options{ - ignore: defaultIgnore, - caseLevel: true, - backwards: true, - numeric: true, - }, - }, - 16: { // Normal options take precedence over tag options. - in: []Option{ - Numeric, IgnoreCase, - OptionsFromTag(language.MustParse("und-u-kn-false-kc-true")), - }, - out: options{ - ignore: ignore(colltab.Secondary), - caseLevel: false, - numeric: true, - }, - }, - 17: { - in: []Option{ - OptionsFromTag(language.MustParse("und-u-ka-shifted")), - }, - out: options{ - ignore: defaultIgnore, - alternate: altShifted, - }, - }, - 18: { - in: []Option{ - OptionsFromTag(language.MustParse("und-u-ka-blanked")), - }, - out: options{ - ignore: defaultIgnore, - alternate: altBlanked, - }, - }, - 19: { - in: []Option{ - OptionsFromTag(language.MustParse("und-u-ka-posix")), - }, - out: options{ - ignore: defaultIgnore, - alternate: altShiftTrimmed, - }, - }, - } { - c := newCollator(defaultTable) - c.t = nil - c.variableTop = 0 - c.f = 0 - - c.setOptions(tt.in) - if !reflect.DeepEqual(c.options, tt.out) { - t.Errorf("%d: got %v; want %v", i, c.options, tt.out) - } - } - -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/reg_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/reg_test.go deleted file mode 100644 index c5144ec3..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/reg_test.go +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright 2012 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 collate - -import ( - "archive/zip" - "bufio" - "bytes" - "flag" - "io" - "io/ioutil" - "log" - "path" - "regexp" - "strconv" - "strings" - "testing" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -var long = flag.Bool("long", false, - "run time-consuming tests, such as tests that fetch data online") - -// This regression test runs tests for the test files in CollationTest.zip -// (taken from http://www.unicode.org/Public/UCA/<gen.UnicodeVersion()>/). -// -// The test files have the following form: -// # header -// 0009 0021; # ('\u0009') <CHARACTER TABULATION> [| | | 0201 025E] -// 0009 003F; # ('\u0009') <CHARACTER TABULATION> [| | | 0201 0263] -// 000A 0021; # ('\u000A') <LINE FEED (LF)> [| | | 0202 025E] -// 000A 003F; # ('\u000A') <LINE FEED (LF)> [| | | 0202 0263] -// -// The part before the semicolon is the hex representation of a sequence -// of runes. After the hash mark is a comment. The strings -// represented by rune sequence are in the file in sorted order, as -// defined by the DUCET. - -type Test struct { - name string - str [][]byte - comment []string -} - -var versionRe = regexp.MustCompile(`# UCA Version: (.*)\n?$`) -var testRe = regexp.MustCompile(`^([\dA-F ]+);.*# (.*)\n?$`) - -func TestCollation(t *testing.T) { - if !gen.IsLocal() && !*long { - t.Skip("skipping test to prevent downloading; to run use -long or use -local to specify a local source") - } - for _, test := range loadTestData() { - doTest(t, test) - } -} - -func Error(e error) { - if e != nil { - log.Fatal(e) - } -} - -// parseUCA parses a Default Unicode Collation Element Table of the format -// specified in http://www.unicode.org/reports/tr10/#File_Format. -// It returns the variable top. -func parseUCA(builder *build.Builder) { - r := gen.OpenUnicodeFile("UCA", "", "allkeys.txt") - defer r.Close() - input := bufio.NewReader(r) - colelem := regexp.MustCompile(`\[([.*])([0-9A-F.]+)\]`) - for i := 1; true; i++ { - l, prefix, err := input.ReadLine() - if err == io.EOF { - break - } - Error(err) - line := string(l) - if prefix { - log.Fatalf("%d: buffer overflow", i) - } - if len(line) == 0 || line[0] == '#' { - continue - } - if line[0] == '@' { - if strings.HasPrefix(line[1:], "version ") { - if v := strings.Split(line[1:], " ")[1]; v != gen.UnicodeVersion() { - log.Fatalf("incompatible version %s; want %s", v, gen.UnicodeVersion()) - } - } - } else { - // parse entries - part := strings.Split(line, " ; ") - if len(part) != 2 { - log.Fatalf("%d: production rule without ';': %v", i, line) - } - lhs := []rune{} - for _, v := range strings.Split(part[0], " ") { - if v != "" { - lhs = append(lhs, rune(convHex(i, v))) - } - } - vars := []int{} - rhs := [][]int{} - for i, m := range colelem.FindAllStringSubmatch(part[1], -1) { - if m[1] == "*" { - vars = append(vars, i) - } - elem := []int{} - for _, h := range strings.Split(m[2], ".") { - elem = append(elem, convHex(i, h)) - } - rhs = append(rhs, elem) - } - builder.Add(lhs, rhs, vars) - } - } -} - -func convHex(line int, s string) int { - r, e := strconv.ParseInt(s, 16, 32) - if e != nil { - log.Fatalf("%d: %v", line, e) - } - return int(r) -} - -func loadTestData() []Test { - f := gen.OpenUnicodeFile("UCA", "", "CollationTest.zip") - buffer, err := ioutil.ReadAll(f) - f.Close() - Error(err) - archive, err := zip.NewReader(bytes.NewReader(buffer), int64(len(buffer))) - Error(err) - tests := []Test{} - for _, f := range archive.File { - // Skip the short versions, which are simply duplicates of the long versions. - if strings.Contains(f.Name, "SHORT") || f.FileInfo().IsDir() { - continue - } - ff, err := f.Open() - Error(err) - defer ff.Close() - scanner := bufio.NewScanner(ff) - test := Test{name: path.Base(f.Name)} - for scanner.Scan() { - line := scanner.Text() - if len(line) <= 1 || line[0] == '#' { - if m := versionRe.FindStringSubmatch(line); m != nil { - if m[1] != gen.UnicodeVersion() { - log.Printf("warning:%s: version is %s; want %s", f.Name, m[1], gen.UnicodeVersion()) - } - } - continue - } - m := testRe.FindStringSubmatch(line) - if m == nil || len(m) < 3 { - log.Fatalf(`Failed to parse: "%s" result: %#v`, line, m) - } - str := []byte{} - // In the regression test data (unpaired) surrogates are assigned a weight - // corresponding to their code point value. However, utf8.DecodeRune, - // which is used to compute the implicit weight, assigns FFFD to surrogates. - // We therefore skip tests with surrogates. This skips about 35 entries - // per test. - valid := true - for _, split := range strings.Split(m[1], " ") { - r, err := strconv.ParseUint(split, 16, 64) - Error(err) - valid = valid && utf8.ValidRune(rune(r)) - str = append(str, string(rune(r))...) - } - if valid { - test.str = append(test.str, str) - test.comment = append(test.comment, m[2]) - } - } - if scanner.Err() != nil { - log.Fatal(scanner.Err()) - } - tests = append(tests, test) - } - return tests -} - -var errorCount int - -func runes(b []byte) []rune { - return []rune(string(b)) -} - -var shifted = language.MustParse("und-u-ka-shifted-ks-level4") - -func doTest(t *testing.T, tc Test) { - bld := build.NewBuilder() - parseUCA(bld) - w, err := bld.Build() - Error(err) - var tag language.Tag - if !strings.Contains(tc.name, "NON_IGNOR") { - tag = shifted - } - c := NewFromTable(w, OptionsFromTag(tag)) - b := &Buffer{} - prev := tc.str[0] - for i := 1; i < len(tc.str); i++ { - b.Reset() - s := tc.str[i] - ka := c.Key(b, prev) - kb := c.Key(b, s) - if r := bytes.Compare(ka, kb); r == 1 { - t.Errorf("%s:%d: Key(%.4X) < Key(%.4X) (%X < %X) == %d; want -1 or 0", tc.name, i, []rune(string(prev)), []rune(string(s)), ka, kb, r) - prev = s - continue - } - if r := c.Compare(prev, s); r == 1 { - t.Errorf("%s:%d: Compare(%.4X, %.4X) == %d; want -1 or 0", tc.name, i, runes(prev), runes(s), r) - } - if r := c.Compare(s, prev); r == -1 { - t.Errorf("%s:%d: Compare(%.4X, %.4X) == %d; want 1 or 0", tc.name, i, runes(s), runes(prev), r) - } - prev = s - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/sort.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/sort.go deleted file mode 100644 index 62f1e75a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/sort.go +++ /dev/null @@ -1,81 +0,0 @@ -// 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 collate - -import ( - "bytes" - "sort" -) - -const ( - maxSortBuffer = 40960 - maxSortEntries = 4096 -) - -type swapper interface { - Swap(i, j int) -} - -type sorter struct { - buf *Buffer - keys [][]byte - src swapper -} - -func (s *sorter) init(n int) { - if s.buf == nil { - s.buf = &Buffer{} - s.buf.init() - } - if cap(s.keys) < n { - s.keys = make([][]byte, n) - } - s.keys = s.keys[0:n] -} - -func (s *sorter) sort(src swapper) { - s.src = src - sort.Sort(s) -} - -func (s sorter) Len() int { - return len(s.keys) -} - -func (s sorter) Less(i, j int) bool { - return bytes.Compare(s.keys[i], s.keys[j]) == -1 -} - -func (s sorter) Swap(i, j int) { - s.keys[i], s.keys[j] = s.keys[j], s.keys[i] - s.src.Swap(i, j) -} - -// A Lister can be sorted by Collator's Sort method. -type Lister interface { - Len() int - Swap(i, j int) - // Bytes returns the bytes of the text at index i. - Bytes(i int) []byte -} - -// Sort uses sort.Sort to sort the strings represented by x using the rules of c. -func (c *Collator) Sort(x Lister) { - n := x.Len() - c.sorter.init(n) - for i := 0; i < n; i++ { - c.sorter.keys[i] = c.Key(c.sorter.buf, x.Bytes(i)) - } - c.sorter.sort(x) -} - -// SortStrings uses sort.Sort to sort the strings in x using the rules of c. -func (c *Collator) SortStrings(x []string) { - c.sorter.init(len(x)) - for i, s := range x { - c.sorter.keys[i] = c.KeyFromString(c.sorter.buf, s) - } - c.sorter.sort(sort.StringSlice(x)) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/sort_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/sort_test.go deleted file mode 100644 index 2af030ba..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/sort_test.go +++ /dev/null @@ -1,55 +0,0 @@ -// 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 collate_test - -import ( - "fmt" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -func ExampleCollator_Strings() { - c := collate.New(language.Und) - strings := []string{ - "ad", - "ab", - "äb", - "ac", - } - c.SortStrings(strings) - fmt.Println(strings) - // Output: [ab äb ac ad] -} - -type sorter []string - -func (s sorter) Len() int { - return len(s) -} - -func (s sorter) Swap(i, j int) { - s[j], s[i] = s[i], s[j] -} - -func (s sorter) Bytes(i int) []byte { - return []byte(s[i]) -} - -func TestSort(t *testing.T) { - c := collate.New(language.English) - strings := []string{ - "bcd", - "abc", - "ddd", - } - c.Sort(sorter(strings)) - res := fmt.Sprint(strings) - want := "[abc bcd ddd]" - if res != want { - t.Errorf("found %s; want %s", res, want) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/table_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/table_test.go deleted file mode 100644 index c0e5c807..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/table_test.go +++ /dev/null @@ -1,291 +0,0 @@ -// Copyright 2012 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 collate - -import ( - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/build" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm" -) - -type ColElems []Weights - -type input struct { - str string - ces [][]int -} - -type check struct { - in string - n int - out ColElems -} - -type tableTest struct { - in []input - chk []check -} - -func w(ce ...int) Weights { - return W(ce...) -} - -var defaults = w(0) - -func pt(p, t int) []int { - return []int{p, defaults.Secondary, t} -} - -func makeTable(in []input) (*Collator, error) { - b := build.NewBuilder() - for _, r := range in { - if e := b.Add([]rune(r.str), r.ces, nil); e != nil { - panic(e) - } - } - t, err := b.Build() - if err != nil { - return nil, err - } - return NewFromTable(t), nil -} - -// modSeq holds a seqeunce of modifiers in increasing order of CCC long enough -// to cause a segment overflow if not handled correctly. The last rune in this -// list has a CCC of 214. -var modSeq = []rune{ - 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7, 0x05B8, 0x05B9, 0x05BB, - 0x05BC, 0x05BD, 0x05BF, 0x05C1, 0x05C2, 0xFB1E, 0x064B, 0x064C, 0x064D, 0x064E, - 0x064F, 0x0650, 0x0651, 0x0652, 0x0670, 0x0711, 0x0C55, 0x0C56, 0x0E38, 0x0E48, - 0x0EB8, 0x0EC8, 0x0F71, 0x0F72, 0x0F74, 0x0321, 0x1DCE, -} - -var mods []input -var modW = func() ColElems { - ws := ColElems{} - for _, r := range modSeq { - rune := norm.NFC.PropertiesString(string(r)) - ws = append(ws, w(0, int(rune.CCC()))) - mods = append(mods, input{string(r), [][]int{{0, int(rune.CCC())}}}) - } - return ws -}() - -var appendNextTests = []tableTest{ - { // test getWeights - []input{ - {"a", [][]int{{100}}}, - {"b", [][]int{{105}}}, - {"c", [][]int{{110}}}, - {"ß", [][]int{{120}}}, - }, - []check{ - {"a", 1, ColElems{w(100)}}, - {"b", 1, ColElems{w(105)}}, - {"c", 1, ColElems{w(110)}}, - {"d", 1, ColElems{w(0x50064)}}, - {"ab", 1, ColElems{w(100)}}, - {"bc", 1, ColElems{w(105)}}, - {"dd", 1, ColElems{w(0x50064)}}, - {"ß", 2, ColElems{w(120)}}, - }, - }, - { // test expansion - []input{ - {"u", [][]int{{100}}}, - {"U", [][]int{{100}, {0, 25}}}, - {"w", [][]int{{100}, {100}}}, - {"W", [][]int{{100}, {0, 25}, {100}, {0, 25}}}, - }, - []check{ - {"u", 1, ColElems{w(100)}}, - {"U", 1, ColElems{w(100), w(0, 25)}}, - {"w", 1, ColElems{w(100), w(100)}}, - {"W", 1, ColElems{w(100), w(0, 25), w(100), w(0, 25)}}, - }, - }, - { // test decompose - []input{ - {"D", [][]int{pt(104, 8)}}, - {"z", [][]int{pt(130, 8)}}, - {"\u030C", [][]int{{0, 40}}}, // Caron - {"\u01C5", [][]int{pt(104, 9), pt(130, 4), {0, 40, 0x1F}}}, // Ç… = D+z+caron - }, - []check{ - {"\u01C5", 2, ColElems{w(pt(104, 9)...), w(pt(130, 4)...), w(0, 40, 0x1F)}}, - }, - }, - { // test basic contraction - []input{ - {"a", [][]int{{100}}}, - {"ab", [][]int{{101}}}, - {"aab", [][]int{{101}, {101}}}, - {"abc", [][]int{{102}}}, - {"b", [][]int{{200}}}, - {"c", [][]int{{300}}}, - {"d", [][]int{{400}}}, - }, - []check{ - {"a", 1, ColElems{w(100)}}, - {"aa", 1, ColElems{w(100)}}, - {"aac", 1, ColElems{w(100)}}, - {"d", 1, ColElems{w(400)}}, - {"ab", 2, ColElems{w(101)}}, - {"abb", 2, ColElems{w(101)}}, - {"aab", 3, ColElems{w(101), w(101)}}, - {"aaba", 3, ColElems{w(101), w(101)}}, - {"abc", 3, ColElems{w(102)}}, - {"abcd", 3, ColElems{w(102)}}, - }, - }, - { // test discontinuous contraction - append(mods, []input{ - // modifiers; secondary weight equals ccc - {"\u0316", [][]int{{0, 220}}}, - {"\u0317", [][]int{{0, 220}, {0, 220}}}, - {"\u302D", [][]int{{0, 222}}}, - {"\u302E", [][]int{{0, 225}}}, // used as starter - {"\u302F", [][]int{{0, 224}}}, // used as starter - {"\u18A9", [][]int{{0, 228}}}, - {"\u0300", [][]int{{0, 230}}}, - {"\u0301", [][]int{{0, 230}}}, - {"\u0315", [][]int{{0, 232}}}, - {"\u031A", [][]int{{0, 232}}}, - {"\u035C", [][]int{{0, 233}}}, - {"\u035F", [][]int{{0, 233}}}, - {"\u035D", [][]int{{0, 234}}}, - {"\u035E", [][]int{{0, 234}}}, - {"\u0345", [][]int{{0, 240}}}, - - // starters - {"a", [][]int{{100}}}, - {"b", [][]int{{200}}}, - {"c", [][]int{{300}}}, - {"\u03B1", [][]int{{900}}}, - {"\x01", [][]int{{0, 0, 0, 0}}}, - - // contractions - {"a\u0300", [][]int{{101}}}, - {"a\u0301", [][]int{{102}}}, - {"a\u035E", [][]int{{110}}}, - {"a\u035Eb\u035E", [][]int{{115}}}, - {"ac\u035Eaca\u035E", [][]int{{116}}}, - {"a\u035Db\u035D", [][]int{{117}}}, - {"a\u0301\u035Db", [][]int{{120}}}, - {"a\u0301\u035F", [][]int{{121}}}, - {"a\u0301\u035Fb", [][]int{{119}}}, - {"\u03B1\u0345", [][]int{{901}, {902}}}, - {"\u302E\u302F", [][]int{{0, 131}, {0, 131}}}, - {"\u302F\u18A9", [][]int{{0, 130}}}, - }...), - []check{ - {"a\x01\u0300", 1, ColElems{w(100)}}, - {"ab", 1, ColElems{w(100)}}, // closing segment - {"a\u0316\u0300b", 5, ColElems{w(101), w(0, 220)}}, // closing segment - {"a\u0316\u0300", 5, ColElems{w(101), w(0, 220)}}, // no closing segment - {"a\u0316\u0300\u035Cb", 5, ColElems{w(101), w(0, 220)}}, // completes before segment end - {"a\u0316\u0300\u035C", 5, ColElems{w(101), w(0, 220)}}, // completes before segment end - - {"a\u0316\u0301b", 5, ColElems{w(102), w(0, 220)}}, // closing segment - {"a\u0316\u0301", 5, ColElems{w(102), w(0, 220)}}, // no closing segment - {"a\u0316\u0301\u035Cb", 5, ColElems{w(102), w(0, 220)}}, // completes before segment end - {"a\u0316\u0301\u035C", 5, ColElems{w(102), w(0, 220)}}, // completes before segment end - - // match blocked by modifier with same ccc - {"a\u0301\u0315\u031A\u035Fb", 3, ColElems{w(102)}}, - - // multiple gaps - {"a\u0301\u035Db", 6, ColElems{w(120)}}, - {"a\u0301\u035F", 5, ColElems{w(121)}}, - {"a\u0301\u035Fb", 6, ColElems{w(119)}}, - {"a\u0316\u0301\u035F", 7, ColElems{w(121), w(0, 220)}}, - {"a\u0301\u0315\u035Fb", 7, ColElems{w(121), w(0, 232)}}, - {"a\u0316\u0301\u0315\u035Db", 5, ColElems{w(102), w(0, 220)}}, - {"a\u0316\u0301\u0315\u035F", 9, ColElems{w(121), w(0, 220), w(0, 232)}}, - {"a\u0316\u0301\u0315\u035Fb", 9, ColElems{w(121), w(0, 220), w(0, 232)}}, - {"a\u0316\u0301\u0315\u035F\u035D", 9, ColElems{w(121), w(0, 220), w(0, 232)}}, - {"a\u0316\u0301\u0315\u035F\u035Db", 9, ColElems{w(121), w(0, 220), w(0, 232)}}, - - // handling of segment overflow - { // just fits within segment - "a" + string(modSeq[:30]) + "\u0301", - 3 + len(string(modSeq[:30])), - append(ColElems{w(102)}, modW[:30]...), - }, - {"a" + string(modSeq[:31]) + "\u0301", 1, ColElems{w(100)}}, // overflow - {"a" + string(modSeq) + "\u0301", 1, ColElems{w(100)}}, - { // just fits within segment with two interstitial runes - "a" + string(modSeq[:28]) + "\u0301\u0315\u035F", - 7 + len(string(modSeq[:28])), - append(append(ColElems{w(121)}, modW[:28]...), w(0, 232)), - }, - { // second half does not fit within segment - "a" + string(modSeq[:29]) + "\u0301\u0315\u035F", - 3 + len(string(modSeq[:29])), - append(ColElems{w(102)}, modW[:29]...), - }, - - // discontinuity can only occur in last normalization segment - {"a\u035Eb\u035E", 6, ColElems{w(115)}}, - {"a\u0316\u035Eb\u035E", 5, ColElems{w(110), w(0, 220)}}, - {"a\u035Db\u035D", 6, ColElems{w(117)}}, - {"a\u0316\u035Db\u035D", 1, ColElems{w(100)}}, - {"a\u035Eb\u0316\u035E", 8, ColElems{w(115), w(0, 220)}}, - {"a\u035Db\u0316\u035D", 8, ColElems{w(117), w(0, 220)}}, - {"ac\u035Eaca\u035E", 9, ColElems{w(116)}}, - {"a\u0316c\u035Eaca\u035E", 1, ColElems{w(100)}}, - {"ac\u035Eac\u0316a\u035E", 1, ColElems{w(100)}}, - - // expanding contraction - {"\u03B1\u0345", 4, ColElems{w(901), w(902)}}, - - // Theoretical possibilities - // contraction within a gap - {"a\u302F\u18A9\u0301", 9, ColElems{w(102), w(0, 130)}}, - // expansion within a gap - {"a\u0317\u0301", 5, ColElems{w(102), w(0, 220), w(0, 220)}}, - // repeating CCC blocks last modifier - {"a\u302E\u302F\u0301", 1, ColElems{w(100)}}, - // The trailing combining characters (with lower CCC) should block the first one. - // TODO: make the following pass. - // {"a\u035E\u0316\u0316", 1, ColElems{w(100)}}, - {"a\u035F\u035Eb", 5, ColElems{w(110), w(0, 233)}}, - // Last combiner should match after normalization. - // TODO: make the following pass. - // {"a\u035D\u0301", 3, ColElems{w(102), w(0, 234)}}, - // The first combiner is blocking the second one as they have the same CCC. - {"a\u035D\u035Eb", 1, ColElems{w(100)}}, - }, - }, -} - -func TestAppendNext(t *testing.T) { - for i, tt := range appendNextTests { - c, err := makeTable(tt.in) - if err != nil { - t.Errorf("%d: error creating table: %v", i, err) - continue - } - for j, chk := range tt.chk { - ws, n := c.t.AppendNext(nil, []byte(chk.in)) - if n != chk.n { - t.Errorf("%d:%d: bytes consumed was %d; want %d", i, j, n, chk.n) - } - out := convertFromWeights(chk.out) - if len(ws) != len(out) { - t.Errorf("%d:%d: len(ws) was %d; want %d (%X vs %X)\n%X", i, j, len(ws), len(out), ws, out, chk.in) - continue - } - for k, w := range ws { - w, _ = colltab.MakeElem(w.Primary(), w.Secondary(), int(w.Tertiary()), 0) - if w != out[k] { - t.Errorf("%d:%d: Weights %d was %X; want %X", i, j, k, w, out[k]) - } - } - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tables.go deleted file mode 100644 index f6d31f1c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tables.go +++ /dev/null @@ -1,73207 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package collate - -// UnicodeVersion is the Unicode version from which the tables in this package are derived. -const UnicodeVersion = "6.2.0" - -// CLDRVersion is the CLDR version from which the tables in this package are derived. -const CLDRVersion = "23" - -var availableLocales = "und,aa,af,ar,as,az,be,bg,bn,bs,bs-Cyrl,ca,cs,cy,da,de,dz,ee,el,en,en-US,en-US-u-va-posix,eo,es,et,fa,fa-AF,fi,fil,fo,fr,fr-CA,gu,ha,haw,he,hi,hr,hu,hy,ig,is,ja,kk,kl,km,kn,ko,kok,ln,lt,lv,mk,ml,mr,mt,my,nb,nn,nso,om,or,pa,pl,ps,ro,ru,se,si,sk,sl,sq,sr,sr-Latn,ssy,sv,ta,te,th,tn,to,tr,uk,ur,vi,wae,yo,zh,zh-Hant" - -const varTop = 0x30e - -var locales = [...]tableIndex{ - { // und - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // aa - lookupOffset: 0x1c, - valuesOffset: 0x1b4, - }, - { // af - lookupOffset: 0x1d, - valuesOffset: 0x0, - }, - { // ar - lookupOffset: 0x1f, - valuesOffset: 0x0, - }, - { // as - lookupOffset: 0x21, - valuesOffset: 0x0, - }, - { // az - lookupOffset: 0x27, - valuesOffset: 0x1d7, - }, - { // be - lookupOffset: 0x28, - valuesOffset: 0x0, - }, - { // bg - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // bn - lookupOffset: 0x2a, - valuesOffset: 0x0, - }, - { // bs - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // bs-Cyrl - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // ca - lookupOffset: 0x2b, - valuesOffset: 0x1ec, - }, - { // cs - lookupOffset: 0x2d, - valuesOffset: 0x1f0, - }, - { // cy - lookupOffset: 0x15, - valuesOffset: 0x1f5, - }, - { // da - lookupOffset: 0x30, - valuesOffset: 0x1f7, - }, - { // de - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // dz - lookupOffset: 0x32, - valuesOffset: 0x0, - }, - { // ee - lookupOffset: 0x38, - valuesOffset: 0x204, - }, - { // el - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // en - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // en-US - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // en-US-u-va-posix - lookupOffset: 0x3f, - valuesOffset: 0x213, - }, - { // eo - lookupOffset: 0x40, - valuesOffset: 0x235, - }, - { // es - lookupOffset: 0x41, - valuesOffset: 0x239, - }, - { // et - lookupOffset: 0x47, - valuesOffset: 0x23c, - }, - { // fa - lookupOffset: 0x49, - valuesOffset: 0x0, - }, - { // fa-AF - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // fi - lookupOffset: 0x4c, - valuesOffset: 0x254, - }, - { // fil - lookupOffset: 0x41, - valuesOffset: 0x25f, - }, - { // fo - lookupOffset: 0x30, - valuesOffset: 0x1f7, - }, - { // fr - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // fr-CA - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // gu - lookupOffset: 0x4e, - valuesOffset: 0x0, - }, - { // ha - lookupOffset: 0x4f, - valuesOffset: 0x262, - }, - { // haw - lookupOffset: 0x56, - valuesOffset: 0x267, - }, - { // he - lookupOffset: 0x57, - valuesOffset: 0x0, - }, - { // hi - lookupOffset: 0x59, - valuesOffset: 0x0, - }, - { // hr - lookupOffset: 0x5b, - valuesOffset: 0x27e, - }, - { // hu - lookupOffset: 0x5d, - valuesOffset: 0x284, - }, - { // hy - lookupOffset: 0x5e, - valuesOffset: 0x0, - }, - { // ig - lookupOffset: 0x60, - valuesOffset: 0x28c, - }, - { // is - lookupOffset: 0x62, - valuesOffset: 0x290, - }, - { // ja - lookupOffset: 0x6e, - valuesOffset: 0x0, - }, - { // kk - lookupOffset: 0x6f, - valuesOffset: 0x0, - }, - { // kl - lookupOffset: 0x70, - valuesOffset: 0x401, - }, - { // km - lookupOffset: 0x72, - valuesOffset: 0x0, - }, - { // kn - lookupOffset: 0x74, - valuesOffset: 0x0, - }, - { // ko - lookupOffset: 0x80, - valuesOffset: 0x0, - }, - { // kok - lookupOffset: 0x82, - valuesOffset: 0x0, - }, - { // ln - lookupOffset: 0x83, - valuesOffset: 0x0, - }, - { // lt - lookupOffset: 0x89, - valuesOffset: 0x55f, - }, - { // lv - lookupOffset: 0x8b, - valuesOffset: 0x56d, - }, - { // mk - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // ml - lookupOffset: 0x8d, - valuesOffset: 0x0, - }, - { // mr - lookupOffset: 0x8f, - valuesOffset: 0x0, - }, - { // mt - lookupOffset: 0x92, - valuesOffset: 0x575, - }, - { // my - lookupOffset: 0x94, - valuesOffset: 0x0, - }, - { // nb - lookupOffset: 0x30, - valuesOffset: 0x57e, - }, - { // nn - lookupOffset: 0x30, - valuesOffset: 0x57e, - }, - { // nso - lookupOffset: 0x96, - valuesOffset: 0x580, - }, - { // om - lookupOffset: 0x15, - valuesOffset: 0x586, - }, - { // or - lookupOffset: 0x98, - valuesOffset: 0x0, - }, - { // pa - lookupOffset: 0x9a, - valuesOffset: 0x0, - }, - { // pl - lookupOffset: 0x9c, - valuesOffset: 0x58c, - }, - { // ps - lookupOffset: 0x9f, - valuesOffset: 0x0, - }, - { // ro - lookupOffset: 0xa1, - valuesOffset: 0x59e, - }, - { // ru - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // se - lookupOffset: 0xa3, - valuesOffset: 0x5a5, - }, - { // si - lookupOffset: 0xa5, - valuesOffset: 0x0, - }, - { // sk - lookupOffset: 0xa7, - valuesOffset: 0x5b2, - }, - { // sl - lookupOffset: 0xa8, - valuesOffset: 0x5b7, - }, - { // sq - lookupOffset: 0xaa, - valuesOffset: 0x5ba, - }, - { // sr - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // sr-Latn - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // ssy - lookupOffset: 0x1c, - valuesOffset: 0x1b4, - }, - { // sv - lookupOffset: 0xac, - valuesOffset: 0x5be, - }, - { // ta - lookupOffset: 0xae, - valuesOffset: 0x0, - }, - { // te - lookupOffset: 0xb0, - valuesOffset: 0x0, - }, - { // th - lookupOffset: 0xb2, - valuesOffset: 0x0, - }, - { // tn - lookupOffset: 0x96, - valuesOffset: 0x580, - }, - { // to - lookupOffset: 0xb4, - valuesOffset: 0x5c9, - }, - { // tr - lookupOffset: 0xba, - valuesOffset: 0x5d5, - }, - { // uk - lookupOffset: 0xbb, - valuesOffset: 0x0, - }, - { // ur - lookupOffset: 0xbd, - valuesOffset: 0x0, - }, - { // vi - lookupOffset: 0xbf, - valuesOffset: 0x5e4, - }, - { // wae - lookupOffset: 0xc0, - valuesOffset: 0x5f8, - }, - { // yo - lookupOffset: 0xc2, - valuesOffset: 0x5fb, - }, - { // zh - lookupOffset: 0xdc, - valuesOffset: 0x600, - }, - { // zh-Hant - lookupOffset: 0xf5, - valuesOffset: 0x600, - }, -} - -// mainExpandElem: 46754 entries, 187016 bytes -var mainExpandElem = [46754]uint32{ - // Block 0, offset 0x0 - 0x00000002, 0xAE604702, 0xAE603202, 0x00000002, 0xA000A51A, 0xA000BA1A, - 0x00000002, 0xA000A91A, 0xA000BA1A, 0x00000002, 0xA000AD1A, 0xA000BA1A, - 0x00000002, 0xA000B21A, 0xA000BA1A, 0x00000002, 0xA000B61A, 0xA000BA1A, - 0x00000002, 0xA000BA1A, 0xA000D11A, 0x00000004, 0x0003F484, 0x0029CE84, - 0x0029CC84, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029CE84, - 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029D084, 0x0003F69F, - 0x00000004, 0x0003F484, 0x0029CE84, 0x0029D284, 0x0003F69F, 0x00000004, - 0x0003F484, 0x0029CE84, 0x0029D484, 0x0003F69F, 0x00000004, 0x0003F484, - 0x0029CE84, 0x0029D684, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, - 0x0029D884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029DA84, - 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, - // Block 1, offset 0x40 - 0x0029DC84, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029DE84, - 0x0003F69F, 0x00000004, 0x0003F484, 0x0029D084, 0x0029CC84, 0x0003F69F, - 0x00000004, 0x0003F484, 0x0062AC84, 0x0063A884, 0x0003F69F, 0x00000004, - 0x0003F484, 0x0062B084, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, - 0x0062B284, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062B684, - 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062B884, 0x0063A884, - 0x0003F69F, 0x00000004, 0x0003F484, 0x0062BA84, 0x0063A884, 0x0003F69F, - 0x00000004, 0x0003F484, 0x0062BE84, 0x0063A884, 0x0003F69F, 0x00000004, - 0x0003F484, 0x0062C284, 0x0063A884, 0x0003F69F, 0x00000007, 0x0003F484, - 0x0062C284, 0x0063B884, 0x0062C484, 0x0063B084, 0x00646A84, 0x0003F69F, - 0x00000006, 0x0003F484, 0x0062C284, 0x0063B884, - // Block 2, offset 0x80 - 0x0062D084, 0x0063C284, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C484, - 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C484, 0x0063C284, - 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C884, 0x0063A884, 0x0003F69F, - 0x00000004, 0x0003F484, 0x0062CA84, 0x0063A884, 0x0003F69F, 0x00000004, - 0x0003F484, 0x0062CC84, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, - 0x0062CE84, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062D084, - 0x0063A884, 0x0003F69F, 0x00000004, 0x00050E84, 0x00050E84, 0x00050E84, - 0x00050E9F, 0x00000002, 0x40062C20, 0xAE603202, 0x00000002, 0x40062C20, - 0xAE603502, 0x00000002, 0x40062C20, 0xAE604502, 0x00000002, 0x40063620, - 0xAE603202, 0x00000002, 0x40063620, 0xAE603502, 0x00000002, 0x40063620, - 0xAE604502, 0x00000002, 0x40063820, 0xAE603202, - // Block 3, offset 0xc0 - 0x00000002, 0x40063820, 0xAE603502, 0x00000002, 0x40063820, 0xAE604502, - 0x00000002, 0x40084420, 0xA0105402, 0x00000002, 0x40084620, 0xA0105402, - 0x00000002, 0x40084C20, 0xA0105402, 0x00000002, 0x4008B820, 0xA0105402, - 0x00000002, 0x4008BC20, 0xA0105402, 0x00000002, 0x4008C020, 0xA0105402, - 0x00000002, 0x40091E20, 0xA0105402, 0x00000002, 0x40092620, 0xA0105402, - 0x00000002, 0x40092A20, 0xA0105402, 0x00000002, 0x40094020, 0xA0105402, - 0x00000002, 0x40094220, 0xA0105402, 0x00000002, 0x40094420, 0xA0105402, - 0x00000002, 0x40097820, 0xA0105402, 0x00000002, 0x40097A20, 0xA0105402, - 0x00000004, 0x00098484, 0x00098484, 0x00098484, 0x0009849F, 0x00000002, - 0x40099E20, 0xA0105402, 0x00000002, 0x4009AA20, 0xA0105402, 0x00000002, - 0x4009AC20, 0xA0105402, 0x00000002, 0x4009B020, - // Block 4, offset 0x100 - 0xA0105402, 0x00000002, 0x4009B820, 0xA0105402, 0x00000002, 0x4009DE20, - 0xA0105402, 0x00000002, 0x4009E220, 0xA0105402, 0x00000002, 0x4009E420, - 0xA0105402, 0x00000002, 0x4009F420, 0xA0105402, 0x00000002, 0x4009F620, - 0xA0105402, 0x00000002, 0x4009F820, 0xA0105402, 0x00000002, 0x4009FA20, - 0xA0105402, 0x00000002, 0x4009FC20, 0xA0105402, 0x00000002, 0x4009FE20, - 0xA0105402, 0x00000002, 0x400A0020, 0xA0105402, 0x00000002, 0x400A0220, - 0xA0105402, 0x00000002, 0x400A0820, 0xA0105402, 0x00000002, 0x400A0A20, - 0xA0105402, 0x00000002, 0x400A0C20, 0xA0105402, 0x00000002, 0x400A0E20, - 0xA0105402, 0x00000002, 0x400A1E20, 0xA0105402, 0x00000002, 0x400A2020, - 0xA0105402, 0x00000002, 0x400A4020, 0xA0105402, 0x00000002, 0x400A4C20, - 0xA0105402, 0x00000002, 0x400A4E20, 0xA0105402, - // Block 5, offset 0x140 - 0x00000002, 0x400A5220, 0xA0105402, 0x00000002, 0x400A5820, 0xA0105402, - 0x00000002, 0x400A5A20, 0xA0105402, 0x00000002, 0x400A5C20, 0xA0105402, - 0x00000002, 0x400A5E20, 0xA0105402, 0x00000002, 0x40164620, 0xA0105402, - 0x00000002, 0x4027CE20, 0xA0012802, 0x00000002, 0x4027D020, 0xA0012802, - 0x00000002, 0x4027D420, 0xA0812802, 0x00000002, 0x4027D820, 0xA0812802, - 0x00000002, 0x4029CC20, 0xA0013F02, 0x00000002, 0x4029CC20, 0xA0014002, - 0x00000002, 0x4029CC20, 0xA0014202, 0x00000002, 0x4029CC20, 0xA0014402, - 0x00000002, 0x4029CC20, 0xA0014502, 0x00000002, 0x4029CC20, 0xA0014602, - 0x00000002, 0x4029CC20, 0xA0014702, 0x00000002, 0x4029CC20, 0xA0014802, - 0x00000002, 0x4029CC20, 0xA0014902, 0x00000002, 0x4029CC20, 0xA0014A02, - 0x00000002, 0x4029CC20, 0xA0014B02, 0x00000002, - // Block 6, offset 0x180 - 0x4029CC20, 0xA0014B02, 0x00000002, 0x4029CC20, 0xA0014C02, 0x00000002, - 0x4029CC20, 0xA0014D02, 0x00000002, 0x4029CC20, 0xA0014E02, 0x00000002, - 0x4029CC20, 0xA0014F02, 0x00000002, 0x4029CC20, 0xA0015002, 0x00000002, - 0x4029CC20, 0xA0015102, 0x00000002, 0x4029CC20, 0xA0015202, 0x00000002, - 0x4029CC20, 0xA0015302, 0x00000002, 0x4029CC20, 0xA0015402, 0x00000002, - 0x4029CC20, 0xA0015502, 0x00000002, 0x4029CC20, 0xA0015602, 0x00000002, - 0x0029CC84, 0xA0015604, 0x00000002, 0x4029CC20, 0xA0015702, 0x00000002, - 0x4029CC20, 0xA0015802, 0x00000002, 0x4029CC20, 0xA0015902, 0x00000002, - 0x4029CC20, 0xA0015A02, 0x00000002, 0x4029CC20, 0xA0015B02, 0x00000002, - 0x4029CC20, 0xA0015C02, 0x00000002, 0x4029CC20, 0xA0015D02, 0x00000002, - 0x4029CC20, 0xA0015E02, 0x00000002, 0x4029CC20, - // Block 7, offset 0x1c0 - 0xA0015F02, 0x00000002, 0x4029CC20, 0xA0016002, 0x00000002, 0x4029CC20, - 0xA0016102, 0x00000002, 0x4029CC20, 0xA0016202, 0x00000002, 0x4029CC20, - 0xA0016302, 0x00000002, 0x4029CC20, 0xA0016402, 0x00000002, 0x4029CC20, - 0xA0016502, 0x00000002, 0x4029CC20, 0xA0016602, 0x00000002, 0x4029CC20, - 0xA0016802, 0x00000002, 0x4029CC20, 0xA0017202, 0x00000002, 0x4029CC20, - 0xA0017302, 0x00000002, 0x4029CC20, 0xA0017402, 0x00000003, 0x0029CC9E, - 0x0009589E, 0x0029D29E, 0x00000002, 0x4029CE20, 0xA0013F02, 0x00000002, - 0x4029CE20, 0xA0014002, 0x00000002, 0x4029CE20, 0xA0014102, 0x00000002, - 0x4029CE20, 0xA0014202, 0x00000002, 0x4029CE20, 0xA0014302, 0x00000002, - 0x4029CE20, 0xA0014402, 0x00000002, 0x4029CE20, 0xA0014502, 0x00000002, - 0x4029CE20, 0xA0014602, 0x00000002, 0x4029CE20, - // Block 8, offset 0x200 - 0xA0014702, 0x00000002, 0x4029CE20, 0xA0014802, 0x00000002, 0x4029CE20, - 0xA0014902, 0x00000002, 0x4029CE20, 0xA0014A02, 0x00000002, 0x4029CE20, - 0xA0014B02, 0x00000002, 0x4029CE20, 0xA0014B02, 0x00000002, 0x4029CE20, - 0xA0014B02, 0x00000002, 0x4029CE20, 0xA0014C02, 0x00000002, 0x4029CE20, - 0xA0014D02, 0x00000002, 0x4029CE20, 0xA0014E02, 0x00000002, 0x4029CE20, - 0xA0014F02, 0x00000002, 0x4029CE20, 0xA0015002, 0x00000002, 0x4029CE20, - 0xA0015102, 0x00000002, 0x4029CE20, 0xA0015102, 0x00000002, 0x4029CE20, - 0xA0015202, 0x00000002, 0x4029CE20, 0xA0015302, 0x00000002, 0x4029CE20, - 0xA0015402, 0x00000002, 0x4029CE20, 0xA0015502, 0x00000002, 0x4029CE20, - 0xA0015602, 0x00000002, 0x0029CE84, 0xA0015604, 0x00000002, 0x4029CE20, - 0xA0015702, 0x00000002, 0x4029CE20, 0xA0015802, - // Block 9, offset 0x240 - 0x00000002, 0x4029CE20, 0xA0015902, 0x00000002, 0x4029CE20, 0xA0015A02, - 0x00000002, 0x4029CE20, 0xA0015B02, 0x00000002, 0x4029CE20, 0xA0015C02, - 0x00000002, 0x4029CE20, 0xA0015D02, 0x00000002, 0x4029CE20, 0xA0015E02, - 0x00000002, 0x4029CE20, 0xA0015F02, 0x00000002, 0x4029CE20, 0xA0016002, - 0x00000002, 0x4029CE20, 0xA0016102, 0x00000002, 0x4029CE20, 0xA0016202, - 0x00000002, 0x4029CE20, 0xA0016302, 0x00000002, 0x4029CE20, 0xA0016402, - 0x00000002, 0x4029CE20, 0xA0016502, 0x00000002, 0x4029CE20, 0xA0016602, - 0x00000002, 0x4029CE20, 0xA0016702, 0x00000002, 0x4029CE20, 0xA0016802, - 0x00000002, 0x4029CE20, 0xA0016802, 0x00000002, 0x4029CE20, 0xA0016802, - 0x00000002, 0x4029CE20, 0xA0016802, 0x00000002, 0x4029CE20, 0xA0016A02, - 0x00000002, 0x4029CE20, 0xA0016B02, 0x00000002, - // Block 10, offset 0x280 - 0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002, - 0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002, - 0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002, - 0x4029CE20, 0xA0016D02, 0x00000002, 0x4029CE20, 0xA0016E02, 0x00000002, - 0x4029CE20, 0xA0016F02, 0x00000002, 0x4029CE20, 0xA0017002, 0x00000002, - 0x4029CE20, 0xA0017102, 0x00000002, 0x4029CE20, 0xA0017202, 0x00000002, - 0x4029CE20, 0xA0017302, 0x00000002, 0x4029CE20, 0xA0017402, 0x00000002, - 0x4029CE20, 0xA0017502, 0x00000002, 0x4029CE20, 0xA0017602, 0x00000002, - 0x4029CE20, 0xA0017702, 0x00000004, 0x0029CE9E, 0x0009589E, 0x0029CE9E, - 0x0029CC9E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029D09E, 0x00000003, - 0x0029CE9E, 0x0009589E, 0x0029D29E, 0x00000003, - // Block 11, offset 0x2c0 - 0x0029CE9E, 0x0009589E, 0x0029D49E, 0x00000003, 0x0029CE9E, 0x0009589E, - 0x0029D69E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029D89E, 0x00000003, - 0x0029CE9E, 0x0009589E, 0x0029DA9E, 0x00000003, 0x0029CE9E, 0x0009589E, - 0x0029DC9E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029DE9E, 0x00000002, - 0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CC86, 0x00000002, - 0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CC86, 0x00000002, - 0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CE86, 0x00000002, - 0x0029CE86, 0x0029D086, 0x00000002, 0x0029CE86, 0x0029D286, 0x00000002, - 0x0029CE86, 0x0029D486, 0x00000002, 0x0029CE86, 0x0029D686, 0x00000002, - 0x0029CE86, 0x0029D886, 0x00000002, 0x0029CE86, 0x0029DA86, 0x00000002, - 0x0029CE86, 0x0029DC86, 0x00000002, 0x0029CE86, - // Block 12, offset 0x300 - 0x0029DE86, 0x00000002, 0x4029D020, 0xA0013F02, 0x00000002, 0x4029D020, - 0xA0014002, 0x00000002, 0x4029D020, 0xA0014102, 0x00000002, 0x4029D020, - 0xA0014202, 0x00000002, 0x4029D020, 0xA0014302, 0x00000002, 0x4029D020, - 0xA0014402, 0x00000002, 0x4029D020, 0xA0014502, 0x00000002, 0x4029D020, - 0xA0014602, 0x00000002, 0x4029D020, 0xA0014702, 0x00000002, 0x4029D020, - 0xA0014802, 0x00000002, 0x4029D020, 0xA0014902, 0x00000002, 0x4029D020, - 0xA0014A02, 0x00000002, 0x4029D020, 0xA0014B02, 0x00000002, 0x4029D020, - 0xA0014B02, 0x00000002, 0x4029D020, 0xA0014B02, 0x00000002, 0x4029D020, - 0xA0014C02, 0x00000002, 0x4029D020, 0xA0014D02, 0x00000002, 0x4029D020, - 0xA0014E02, 0x00000002, 0x4029D020, 0xA0014F02, 0x00000002, 0x4029D020, - 0xA0015002, 0x00000002, 0x4029D020, 0xA0015102, - // Block 13, offset 0x340 - 0x00000002, 0x4029D020, 0xA0015202, 0x00000002, 0x4029D020, 0xA0015302, - 0x00000002, 0x4029D020, 0xA0015402, 0x00000002, 0x4029D020, 0xA0015502, - 0x00000002, 0x4029D020, 0xA0015602, 0x00000002, 0x0029D084, 0xA0015604, - 0x00000002, 0x4029D020, 0xA0015702, 0x00000002, 0x4029D020, 0xA0015802, - 0x00000002, 0x4029D020, 0xA0015902, 0x00000002, 0x4029D020, 0xA0015A02, - 0x00000002, 0x4029D020, 0xA0015B02, 0x00000002, 0x4029D020, 0xA0015C02, - 0x00000002, 0x4029D020, 0xA0015D02, 0x00000002, 0x4029D020, 0xA0015E02, - 0x00000002, 0x4029D020, 0xA0015F02, 0x00000002, 0x4029D020, 0xA0016002, - 0x00000002, 0x4029D020, 0xA0016102, 0x00000002, 0x4029D020, 0xA0016202, - 0x00000002, 0x4029D020, 0xA0016302, 0x00000002, 0x4029D020, 0xA0016402, - 0x00000002, 0x4029D020, 0xA0016502, 0x00000002, - // Block 14, offset 0x380 - 0x4029D020, 0xA0016602, 0x00000002, 0x4029D020, 0xA0016702, 0x00000002, - 0x4029D020, 0xA0016802, 0x00000002, 0x4029D020, 0xA0016802, 0x00000002, - 0x4029D020, 0xA0016802, 0x00000002, 0x4029D020, 0xA0016802, 0x00000002, - 0x4029D020, 0xA0016B02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, - 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, - 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, - 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, - 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, - 0x4029D020, 0xA0016E02, 0x00000002, 0x4029D020, 0xA0016F02, 0x00000002, - 0x4029D020, 0xA0017002, 0x00000002, 0x4029D020, 0xA0017102, 0x00000002, - 0x4029D020, 0xA0017202, 0x00000002, 0x4029D020, - // Block 15, offset 0x3c0 - 0xA0017302, 0x00000002, 0x4029D020, 0xA0017402, 0x00000002, 0x4029D020, - 0xA0017502, 0x00000002, 0x4029D020, 0xA0017602, 0x00000002, 0x4029D020, - 0xA0017702, 0x00000003, 0x0029D09E, 0x0009589E, 0x0029D29E, 0x00000003, - 0x0029D09E, 0x0009589E, 0x0029D69E, 0x00000002, 0x0029D086, 0x0029CC86, - 0x00000002, 0x0029D086, 0x0029CC86, 0x00000002, 0x4029D220, 0xA0013F02, - 0x00000002, 0x4029D220, 0xA0014002, 0x00000002, 0x4029D220, 0xA0014102, - 0x00000002, 0x4029D220, 0xA0014202, 0x00000002, 0x4029D220, 0xA0014302, - 0x00000002, 0x4029D220, 0xA0014402, 0x00000002, 0x4029D220, 0xA0014502, - 0x00000002, 0x4029D220, 0xA0014602, 0x00000002, 0x4029D220, 0xA0014702, - 0x00000002, 0x4029D220, 0xA0014802, 0x00000002, 0x4029D220, 0xA0014902, - 0x00000002, 0x4029D220, 0xA0014A02, 0x00000002, - // Block 16, offset 0x400 - 0x4029D220, 0xA0014B02, 0x00000002, 0x4029D220, 0xA0014B02, 0x00000002, - 0x4029D220, 0xA0014B02, 0x00000002, 0x4029D220, 0xA0014C02, 0x00000002, - 0x4029D220, 0xA0014D02, 0x00000002, 0x4029D220, 0xA0014E02, 0x00000002, - 0x4029D220, 0xA0014F02, 0x00000002, 0x4029D220, 0xA0015002, 0x00000002, - 0x4029D220, 0xA0015102, 0x00000002, 0x4029D220, 0xA0015202, 0x00000002, - 0x4029D220, 0xA0015302, 0x00000002, 0x4029D220, 0xA0015402, 0x00000002, - 0x4029D220, 0xA0015502, 0x00000002, 0x4029D220, 0xA0015602, 0x00000002, - 0x0029D284, 0xA0015604, 0x00000002, 0x4029D220, 0xA0015702, 0x00000002, - 0x4029D220, 0xA0015802, 0x00000002, 0x4029D220, 0xA0015902, 0x00000002, - 0x4029D220, 0xA0015A02, 0x00000002, 0x4029D220, 0xA0015B02, 0x00000002, - 0x4029D220, 0xA0015C02, 0x00000002, 0x4029D220, - // Block 17, offset 0x440 - 0xA0015D02, 0x00000002, 0x4029D220, 0xA0015E02, 0x00000002, 0x4029D220, - 0xA0015F02, 0x00000002, 0x4029D220, 0xA0016002, 0x00000002, 0x4029D220, - 0xA0016102, 0x00000002, 0x4029D220, 0xA0016202, 0x00000002, 0x4029D220, - 0xA0016302, 0x00000002, 0x4029D220, 0xA0016402, 0x00000002, 0x4029D220, - 0xA0016502, 0x00000002, 0x4029D220, 0xA0016602, 0x00000002, 0x4029D220, - 0xA0016702, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, - 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, - 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, - 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, - 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, - 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, - // Block 18, offset 0x480 - 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, - 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016E02, - 0x00000002, 0x4029D220, 0xA0016F02, 0x00000002, 0x4029D220, 0xA0017002, - 0x00000002, 0x4029D220, 0xA0017102, 0x00000002, 0x4029D220, 0xA0017202, - 0x00000002, 0x4029D220, 0xA0017302, 0x00000002, 0x4029D220, 0xA0017402, - 0x00000002, 0x4029D220, 0xA0017502, 0x00000002, 0x4029D220, 0xA0017602, - 0x00000002, 0x4029D220, 0xA0017702, 0x00000003, 0x0029D29E, 0x0009589E, - 0x0029D49E, 0x00000003, 0x0029D29E, 0x0009589E, 0x0029D69E, 0x00000003, - 0x0029D29E, 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029D286, 0x0029CC86, - 0x00000002, 0x4029D420, 0xA0013F02, 0x00000002, 0x4029D420, 0xA0014002, - 0x00000002, 0x4029D420, 0xA0014102, 0x00000002, - // Block 19, offset 0x4c0 - 0x4029D420, 0xA0014202, 0x00000002, 0x4029D420, 0xA0014302, 0x00000002, - 0x4029D420, 0xA0014402, 0x00000002, 0x4029D420, 0xA0014502, 0x00000002, - 0x4029D420, 0xA0014602, 0x00000002, 0x4029D420, 0xA0014702, 0x00000002, - 0x4029D420, 0xA0014802, 0x00000002, 0x4029D420, 0xA0014902, 0x00000002, - 0x4029D420, 0xA0014A02, 0x00000002, 0x4029D420, 0xA0014B02, 0x00000002, - 0x4029D420, 0xA0014C02, 0x00000002, 0x4029D420, 0xA0014D02, 0x00000002, - 0x4029D420, 0xA0014E02, 0x00000002, 0x4029D420, 0xA0014F02, 0x00000002, - 0x4029D420, 0xA0015002, 0x00000002, 0x4029D420, 0xA0015102, 0x00000002, - 0x4029D420, 0xA0015202, 0x00000002, 0x4029D420, 0xA0015302, 0x00000002, - 0x4029D420, 0xA0015402, 0x00000002, 0x4029D420, 0xA0015502, 0x00000002, - 0x4029D420, 0xA0015602, 0x00000002, 0x0029D484, - // Block 20, offset 0x500 - 0xA0015604, 0x00000002, 0x4029D420, 0xA0015702, 0x00000002, 0x4029D420, - 0xA0015802, 0x00000002, 0x4029D420, 0xA0015902, 0x00000002, 0x4029D420, - 0xA0015A02, 0x00000002, 0x4029D420, 0xA0015B02, 0x00000002, 0x4029D420, - 0xA0015C02, 0x00000002, 0x4029D420, 0xA0015D02, 0x00000002, 0x4029D420, - 0xA0015E02, 0x00000002, 0x4029D420, 0xA0015F02, 0x00000002, 0x4029D420, - 0xA0016002, 0x00000002, 0x4029D420, 0xA0016102, 0x00000002, 0x4029D420, - 0xA0016202, 0x00000002, 0x4029D420, 0xA0016302, 0x00000002, 0x4029D420, - 0xA0016402, 0x00000002, 0x4029D420, 0xA0016502, 0x00000002, 0x4029D420, - 0xA0016602, 0x00000002, 0x4029D420, 0xA0016702, 0x00000002, 0x4029D420, - 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, - 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, - // Block 21, offset 0x540 - 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, - 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, - 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, - 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, - 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, - 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0017002, - 0x00000002, 0x4029D420, 0xA0017102, 0x00000002, 0x4029D420, 0xA0017202, - 0x00000002, 0x4029D420, 0xA0017302, 0x00000002, 0x4029D420, 0xA0017402, - 0x00000002, 0x4029D420, 0xA0017502, 0x00000002, 0x4029D420, 0xA0017602, - 0x00000002, 0x4029D420, 0xA0017702, 0x00000003, 0x0029D49E, 0x0009589E, - 0x0029D69E, 0x00000002, 0x0029D486, 0x0029CC86, - // Block 22, offset 0x580 - 0x00000002, 0x4029D620, 0xA0013F02, 0x00000002, 0x4029D620, 0xA0014002, - 0x00000002, 0x4029D620, 0xA0014102, 0x00000002, 0x4029D620, 0xA0014202, - 0x00000002, 0x4029D620, 0xA0014302, 0x00000002, 0x4029D620, 0xA0014402, - 0x00000002, 0x4029D620, 0xA0014502, 0x00000002, 0x4029D620, 0xA0014602, - 0x00000002, 0x4029D620, 0xA0014702, 0x00000002, 0x4029D620, 0xA0014802, - 0x00000002, 0x4029D620, 0xA0014902, 0x00000002, 0x4029D620, 0xA0014A02, - 0x00000002, 0x4029D620, 0xA0014B02, 0x00000002, 0x4029D620, 0xA0014C02, - 0x00000002, 0x4029D620, 0xA0014D02, 0x00000002, 0x4029D620, 0xA0014E02, - 0x00000002, 0x4029D620, 0xA0014F02, 0x00000002, 0x4029D620, 0xA0015002, - 0x00000002, 0x4029D620, 0xA0015102, 0x00000002, 0x4029D620, 0xA0015202, - 0x00000002, 0x4029D620, 0xA0015302, 0x00000002, - // Block 23, offset 0x5c0 - 0x4029D620, 0xA0015402, 0x00000002, 0x4029D620, 0xA0015502, 0x00000002, - 0x4029D620, 0xA0015602, 0x00000002, 0x0029D684, 0xA0015604, 0x00000002, - 0x4029D620, 0xA0015702, 0x00000002, 0x4029D620, 0xA0015802, 0x00000002, - 0x4029D620, 0xA0015902, 0x00000002, 0x4029D620, 0xA0015A02, 0x00000002, - 0x4029D620, 0xA0015B02, 0x00000002, 0x4029D620, 0xA0015C02, 0x00000002, - 0x4029D620, 0xA0015D02, 0x00000002, 0x4029D620, 0xA0015E02, 0x00000002, - 0x4029D620, 0xA0015F02, 0x00000002, 0x4029D620, 0xA0016002, 0x00000002, - 0x4029D620, 0xA0016102, 0x00000002, 0x4029D620, 0xA0016202, 0x00000002, - 0x4029D620, 0xA0016302, 0x00000002, 0x4029D620, 0xA0016402, 0x00000002, - 0x4029D620, 0xA0016502, 0x00000002, 0x4029D620, 0xA0016602, 0x00000002, - 0x4029D620, 0xA0016702, 0x00000002, 0x4029D620, - // Block 24, offset 0x600 - 0xA0016802, 0x00000002, 0x4029D620, 0xA0016802, 0x00000002, 0x4029D620, - 0xA0016802, 0x00000002, 0x4029D620, 0xA0016802, 0x00000002, 0x4029D620, - 0xA0016802, 0x00000002, 0x4029D620, 0xA0016A02, 0x00000002, 0x4029D620, - 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, - 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, - 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, - 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, - 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, - 0xA0016C02, 0x00000002, 0x4029D620, 0xA0017202, 0x00000002, 0x4029D620, - 0xA0017302, 0x00000002, 0x4029D620, 0xA0017402, 0x00000002, 0x4029D620, - 0xA0017502, 0x00000002, 0x4029D620, 0xA0017702, - // Block 25, offset 0x640 - 0x00000003, 0x0029D69E, 0x0009589E, 0x0029D89E, 0x00000003, 0x0029D69E, - 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029D686, 0x0029CC86, 0x00000002, - 0x4029D820, 0xA0013F02, 0x00000002, 0x4029D820, 0xA0014002, 0x00000002, - 0x4029D820, 0xA0014102, 0x00000002, 0x4029D820, 0xA0014202, 0x00000002, - 0x4029D820, 0xA0014302, 0x00000002, 0x4029D820, 0xA0014402, 0x00000002, - 0x4029D820, 0xA0014502, 0x00000002, 0x4029D820, 0xA0014602, 0x00000002, - 0x4029D820, 0xA0014702, 0x00000002, 0x4029D820, 0xA0014802, 0x00000002, - 0x4029D820, 0xA0014902, 0x00000002, 0x4029D820, 0xA0014A02, 0x00000002, - 0x4029D820, 0xA0014B02, 0x00000002, 0x4029D820, 0xA0014C02, 0x00000002, - 0x4029D820, 0xA0014D02, 0x00000002, 0x4029D820, 0xA0014E02, 0x00000002, - 0x4029D820, 0xA0014F02, 0x00000002, 0x4029D820, - // Block 26, offset 0x680 - 0xA0015002, 0x00000002, 0x4029D820, 0xA0015102, 0x00000002, 0x4029D820, - 0xA0015202, 0x00000002, 0x4029D820, 0xA0015302, 0x00000002, 0x4029D820, - 0xA0015402, 0x00000002, 0x4029D820, 0xA0015502, 0x00000002, 0x4029D820, - 0xA0015602, 0x00000002, 0x0029D884, 0xA0015604, 0x00000002, 0x4029D820, - 0xA0015702, 0x00000002, 0x4029D820, 0xA0015802, 0x00000002, 0x4029D820, - 0xA0015902, 0x00000002, 0x4029D820, 0xA0015A02, 0x00000002, 0x4029D820, - 0xA0015B02, 0x00000002, 0x4029D820, 0xA0015C02, 0x00000002, 0x4029D820, - 0xA0015D02, 0x00000002, 0x4029D820, 0xA0015E02, 0x00000002, 0x4029D820, - 0xA0015F02, 0x00000002, 0x4029D820, 0xA0016002, 0x00000002, 0x4029D820, - 0xA0016102, 0x00000002, 0x4029D820, 0xA0016202, 0x00000002, 0x4029D820, - 0xA0016302, 0x00000002, 0x4029D820, 0xA0016402, - // Block 27, offset 0x6c0 - 0x00000002, 0x4029D820, 0xA0016502, 0x00000002, 0x4029D820, 0xA0016602, - 0x00000002, 0x4029D820, 0xA0016702, 0x00000002, 0x4029D820, 0xA0016902, - 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02, - 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02, - 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02, - 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0017202, - 0x00000002, 0x4029D820, 0xA0017302, 0x00000002, 0x4029D820, 0xA0017402, - 0x00000002, 0x4029D820, 0xA0017502, 0x00000002, 0x4029D820, 0xA0017702, - 0x00000002, 0x0029D886, 0x0029CC86, 0x00000002, 0x4029DA20, 0xA0013F02, - 0x00000002, 0x4029DA20, 0xA0014002, 0x00000002, 0x4029DA20, 0xA0014102, - 0x00000002, 0x4029DA20, 0xA0014202, 0x00000002, - // Block 28, offset 0x700 - 0x4029DA20, 0xA0014302, 0x00000002, 0x4029DA20, 0xA0014402, 0x00000002, - 0x4029DA20, 0xA0014502, 0x00000002, 0x4029DA20, 0xA0014602, 0x00000002, - 0x4029DA20, 0xA0014702, 0x00000002, 0x4029DA20, 0xA0014802, 0x00000002, - 0x4029DA20, 0xA0014902, 0x00000002, 0x4029DA20, 0xA0014A02, 0x00000002, - 0x4029DA20, 0xA0014B02, 0x00000002, 0x4029DA20, 0xA0014C02, 0x00000002, - 0x4029DA20, 0xA0014D02, 0x00000002, 0x4029DA20, 0xA0014E02, 0x00000002, - 0x4029DA20, 0xA0014F02, 0x00000002, 0x4029DA20, 0xA0015002, 0x00000002, - 0x4029DA20, 0xA0015102, 0x00000002, 0x4029DA20, 0xA0015202, 0x00000002, - 0x4029DA20, 0xA0015302, 0x00000002, 0x4029DA20, 0xA0015402, 0x00000002, - 0x4029DA20, 0xA0015502, 0x00000002, 0x4029DA20, 0xA0015602, 0x00000002, - 0x0029DA84, 0xA0015604, 0x00000002, 0x4029DA20, - // Block 29, offset 0x740 - 0xA0015702, 0x00000002, 0x4029DA20, 0xA0015802, 0x00000002, 0x4029DA20, - 0xA0015902, 0x00000002, 0x4029DA20, 0xA0015A02, 0x00000002, 0x4029DA20, - 0xA0015B02, 0x00000002, 0x4029DA20, 0xA0015C02, 0x00000002, 0x4029DA20, - 0xA0015D02, 0x00000002, 0x4029DA20, 0xA0015E02, 0x00000002, 0x4029DA20, - 0xA0015F02, 0x00000002, 0x4029DA20, 0xA0016002, 0x00000002, 0x4029DA20, - 0xA0016102, 0x00000002, 0x4029DA20, 0xA0016202, 0x00000002, 0x4029DA20, - 0xA0016302, 0x00000002, 0x4029DA20, 0xA0016402, 0x00000002, 0x4029DA20, - 0xA0016502, 0x00000002, 0x4029DA20, 0xA0016602, 0x00000002, 0x4029DA20, - 0xA0016702, 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, - 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, - 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, - // Block 30, offset 0x780 - 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, - 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0017202, - 0x00000002, 0x4029DA20, 0xA0017302, 0x00000002, 0x4029DA20, 0xA0017402, - 0x00000002, 0x4029DA20, 0xA0017502, 0x00000002, 0x4029DA20, 0xA0017702, - 0x00000003, 0x0029DA9E, 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029DA86, - 0x0029CC86, 0x00000002, 0x4029DC20, 0xA0013F02, 0x00000002, 0x4029DC20, - 0xA0014002, 0x00000002, 0x4029DC20, 0xA0014102, 0x00000002, 0x4029DC20, - 0xA0014202, 0x00000002, 0x4029DC20, 0xA0014302, 0x00000002, 0x4029DC20, - 0xA0014402, 0x00000002, 0x4029DC20, 0xA0014502, 0x00000002, 0x4029DC20, - 0xA0014602, 0x00000002, 0x4029DC20, 0xA0014702, 0x00000002, 0x4029DC20, - 0xA0014802, 0x00000002, 0x4029DC20, 0xA0014902, - // Block 31, offset 0x7c0 - 0x00000002, 0x4029DC20, 0xA0014A02, 0x00000002, 0x4029DC20, 0xA0014B02, - 0x00000002, 0x4029DC20, 0xA0014C02, 0x00000002, 0x4029DC20, 0xA0014D02, - 0x00000002, 0x4029DC20, 0xA0014E02, 0x00000002, 0x4029DC20, 0xA0014F02, - 0x00000002, 0x4029DC20, 0xA0015002, 0x00000002, 0x4029DC20, 0xA0015102, - 0x00000002, 0x4029DC20, 0xA0015202, 0x00000002, 0x4029DC20, 0xA0015302, - 0x00000002, 0x4029DC20, 0xA0015402, 0x00000002, 0x4029DC20, 0xA0015502, - 0x00000002, 0x4029DC20, 0xA0015602, 0x00000002, 0x0029DC84, 0xA0015604, - 0x00000002, 0x4029DC20, 0xA0015702, 0x00000002, 0x4029DC20, 0xA0015802, - 0x00000002, 0x4029DC20, 0xA0015902, 0x00000002, 0x4029DC20, 0xA0015A02, - 0x00000002, 0x4029DC20, 0xA0015B02, 0x00000002, 0x4029DC20, 0xA0015C02, - 0x00000002, 0x4029DC20, 0xA0015D02, 0x00000002, - // Block 32, offset 0x800 - 0x4029DC20, 0xA0015E02, 0x00000002, 0x4029DC20, 0xA0015F02, 0x00000002, - 0x4029DC20, 0xA0016002, 0x00000002, 0x4029DC20, 0xA0016102, 0x00000002, - 0x4029DC20, 0xA0016202, 0x00000002, 0x4029DC20, 0xA0016302, 0x00000002, - 0x4029DC20, 0xA0016402, 0x00000002, 0x4029DC20, 0xA0016502, 0x00000002, - 0x4029DC20, 0xA0016602, 0x00000002, 0x4029DC20, 0xA0016702, 0x00000002, - 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002, - 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002, - 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002, - 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0017202, 0x00000002, - 0x4029DC20, 0xA0017302, 0x00000002, 0x4029DC20, 0xA0017402, 0x00000002, - 0x4029DC20, 0xA0017502, 0x00000002, 0x4029DC20, - // Block 33, offset 0x840 - 0xA0017702, 0x00000002, 0x0029DC86, 0x0029CC86, 0x00000002, 0x4029DE20, - 0xA0013F02, 0x00000002, 0x4029DE20, 0xA0014002, 0x00000002, 0x4029DE20, - 0xA0014102, 0x00000002, 0x4029DE20, 0xA0014202, 0x00000002, 0x4029DE20, - 0xA0014302, 0x00000002, 0x4029DE20, 0xA0014402, 0x00000002, 0x4029DE20, - 0xA0014502, 0x00000002, 0x4029DE20, 0xA0014602, 0x00000002, 0x4029DE20, - 0xA0014702, 0x00000002, 0x4029DE20, 0xA0014802, 0x00000002, 0x4029DE20, - 0xA0014902, 0x00000002, 0x4029DE20, 0xA0014A02, 0x00000002, 0x4029DE20, - 0xA0014B02, 0x00000002, 0x4029DE20, 0xA0014C02, 0x00000002, 0x4029DE20, - 0xA0014D02, 0x00000002, 0x4029DE20, 0xA0014E02, 0x00000002, 0x4029DE20, - 0xA0014F02, 0x00000002, 0x4029DE20, 0xA0015002, 0x00000002, 0x4029DE20, - 0xA0015102, 0x00000002, 0x4029DE20, 0xA0015202, - // Block 34, offset 0x880 - 0x00000002, 0x4029DE20, 0xA0015302, 0x00000002, 0x4029DE20, 0xA0015402, - 0x00000002, 0x4029DE20, 0xA0015502, 0x00000002, 0x4029DE20, 0xA0015602, - 0x00000002, 0x0029DE84, 0xA0015604, 0x00000002, 0x4029DE20, 0xA0015702, - 0x00000002, 0x4029DE20, 0xA0015802, 0x00000002, 0x4029DE20, 0xA0015902, - 0x00000002, 0x4029DE20, 0xA0015A02, 0x00000002, 0x4029DE20, 0xA0015B02, - 0x00000002, 0x4029DE20, 0xA0015C02, 0x00000002, 0x4029DE20, 0xA0015D02, - 0x00000002, 0x4029DE20, 0xA0015E02, 0x00000002, 0x4029DE20, 0xA0015F02, - 0x00000002, 0x4029DE20, 0xA0016002, 0x00000002, 0x4029DE20, 0xA0016102, - 0x00000002, 0x4029DE20, 0xA0016202, 0x00000002, 0x4029DE20, 0xA0016302, - 0x00000002, 0x4029DE20, 0xA0016402, 0x00000002, 0x4029DE20, 0xA0016502, - 0x00000002, 0x4029DE20, 0xA0016602, 0x00000002, - // Block 35, offset 0x8c0 - 0x4029DE20, 0xA0016702, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, - 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, - 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, - 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, - 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, - 0x4029DE20, 0xA0017202, 0x00000002, 0x4029DE20, 0xA0017302, 0x00000002, - 0x4029DE20, 0xA0017402, 0x00000002, 0x4029DE20, 0xA0017502, 0x00000002, - 0x4029DE20, 0xA0017702, 0x00000002, 0x402BDE20, 0xAE603202, 0x00000002, - 0x002BDE88, 0xAE603202, 0x00000002, 0x402BDE20, 0xAE603502, 0x00000002, - 0x002BDE88, 0xAE603502, 0x00000002, 0x402BDE20, 0xAE603702, 0x00000002, - 0x002BDE88, 0xAE603702, 0x00000003, 0x402BDE20, - // Block 36, offset 0x900 - 0xAE603702, 0xAE603202, 0x00000003, 0x002BDE88, 0xAE603702, 0xAE603202, - 0x00000003, 0x402BDE20, 0xAE603702, 0xAE603502, 0x00000003, 0x002BDE88, - 0xAE603702, 0xAE603502, 0x00000003, 0x402BDE20, 0xAE603702, 0xAE604E02, - 0x00000003, 0x002BDE88, 0xAE603702, 0xAE604E02, 0x00000003, 0x402BDE20, - 0xAE603702, 0xAE606402, 0x00000003, 0x002BDE88, 0xAE603702, 0xAE606402, - 0x00000002, 0x402BDE20, 0xAE603C02, 0x00000002, 0x002BDE88, 0xAE603C02, - 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE603202, 0x00000003, 0x002BDE88, - 0xAE603C02, 0xAE603202, 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE603502, - 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE603502, 0x00000003, 0x402BDE20, - 0xAE603C02, 0xAE604E02, 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE604E02, - 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE606402, - // Block 37, offset 0x940 - 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE606402, 0x00000002, 0x402BDE20, - 0xAE604102, 0x00000002, 0x002BDE88, 0xAE604102, 0x00000002, 0x402BDE20, - 0xAE604302, 0x00000002, 0x002BDE88, 0xAE604302, 0x00000003, 0x402BDE20, - 0xAE604302, 0xAE603202, 0x00000003, 0x002BDE88, 0xAE604302, 0xAE603202, - 0x00000002, 0x402BDE20, 0xAE604702, 0x00000002, 0x002BDE88, 0xAE604702, - 0x00000003, 0x402BDE20, 0xAE604702, 0xAE605B02, 0x00000003, 0x002BDE88, - 0xAE604702, 0xAE605B02, 0x00000002, 0x402BDE20, 0xAE604E02, 0x00000002, - 0x002BDE88, 0xAE604E02, 0x00000002, 0x402BDE20, 0xAE605202, 0x00000002, - 0x002BDE88, 0xAE605202, 0x00000003, 0x402BDE20, 0xAE605202, 0xAE605B02, - 0x00000003, 0x002BDE88, 0xAE605202, 0xAE605B02, 0x00000002, 0x402BDE20, - 0xACA05902, 0x00000002, 0x002BDE88, 0xACA05902, - // Block 38, offset 0x980 - 0x00000002, 0x402BDE20, 0xAE605B02, 0x00000002, 0x002BDE88, 0xAE605B02, - 0x00000002, 0x402BDE20, 0xAE606402, 0x00000002, 0x002BDE88, 0xAE606402, - 0x00000002, 0x402BDE20, 0xAE606502, 0x00000002, 0x002BDE88, 0xAE606502, - 0x00000002, 0x402BDE20, 0xAE606702, 0x00000002, 0x002BDE88, 0xAE606702, - 0x00000002, 0x402BDE20, 0xADC07002, 0x00000002, 0x002BDE88, 0xADC07002, - 0x00000003, 0x402BDE20, 0xADC07002, 0xAE603702, 0x00000003, 0x002BDE88, - 0xADC07002, 0xAE603702, 0x00000003, 0x402BDE20, 0xADC07002, 0xAE603C02, - 0x00000003, 0x002BDE88, 0xADC07002, 0xAE603C02, 0x00000002, 0x402BDE20, - 0xADC07602, 0x00000002, 0x002BDE88, 0xADC07602, 0x00000002, 0x84E615EF, - 0xAE613904, 0x00000004, 0x002BDE9C, 0x0002E49C, 0x002E829C, 0x0002E49C, - 0x00000003, 0x002BDE84, 0x0004E284, 0x002C3A84, - // Block 39, offset 0x9c0 - 0x00000003, 0x002BDE84, 0x0004E284, 0x002FE684, 0x00000003, 0x002BDE8A, - 0x0004E284, 0x002FE68A, 0x00000003, 0x002BDE9D, 0x0009569C, 0x002E829C, - 0x00000002, 0x002BDE84, 0x002BDE84, 0x00000002, 0x002BDE8A, 0x002BDE8A, - 0x00000002, 0x002BDE9D, 0x002C0A9D, 0x00000003, 0x002BDE84, 0xA0013904, - 0x002C9884, 0x00000003, 0x84E615EF, 0xAE613904, 0x84E6164C, 0x00000003, - 0x002BDE8A, 0xA0013904, 0x002C988A, 0x00000003, 0x002BDE94, 0xA0013914, - 0x002C9894, 0x00000004, 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE603202, - 0x00000004, 0x002BDE8A, 0xA0013904, 0x002C988A, 0xAE603202, 0x00000004, - 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE605B02, 0x00000004, 0x002BDE8A, - 0xA0013904, 0x002C988A, 0xAE605B02, 0x00000002, 0x84E615EF, 0x84E61771, - 0x00000002, 0x002BDE84, 0x002EE284, 0x00000002, - // Block 40, offset 0xa00 - 0x002BDE8A, 0x002EE28A, 0x00000002, 0x002BDE84, 0x00306C84, 0x00000002, - 0x002BDE8A, 0x00306C8A, 0x00000002, 0x84E615EF, 0x84E6185F, 0x00000002, - 0x002BDE84, 0x0030BE84, 0x00000002, 0x002BDE8A, 0x0030BE8A, 0x00000003, - 0x002BDE84, 0xA0013904, 0x0030BE84, 0x00000003, 0x002BDE8A, 0xA0013904, - 0x0030BE8A, 0x00000002, 0x002BDE84, 0x00310084, 0x00000002, 0x002BDE8A, - 0x0031008A, 0x00000002, 0x402C0A20, 0xAE605202, 0x00000002, 0x002C0A88, - 0xAE605202, 0x00000002, 0x402C0A20, 0xADC07002, 0x00000002, 0x002C0A88, - 0xADC07002, 0x00000002, 0x402C0A20, 0xADC07B02, 0x00000002, 0x002C0A88, - 0xADC07B02, 0x00000003, 0x002C0A9C, 0x002BDE9C, 0x002F7A9C, 0x00000002, - 0x402C3A20, 0xAE603202, 0x00000002, 0x002C3A88, 0xAE603202, 0x00000002, - 0x402C3A20, 0xAE603C02, 0x00000002, 0x002C3A88, - // Block 41, offset 0xa40 - 0xAE603C02, 0x00000002, 0x402C3A20, 0xAE604102, 0x00000002, 0x002C3A88, - 0xAE604102, 0x00000002, 0x402C3A20, 0xAE605202, 0x00000002, 0x002C3A88, - 0xAE605202, 0x00000002, 0x402C3A20, 0xACA05602, 0x00000002, 0x84E6161D, - 0xAE605604, 0x00000002, 0x002C3A88, 0xACA05602, 0x00000003, 0x402C3A20, - 0xACA05602, 0xAE603202, 0x00000003, 0x002C3A88, 0xACA05602, 0xAE603202, - 0x00000003, 0x002C3A84, 0x0004E284, 0x002EE284, 0x00000003, 0x002C3A84, - 0x0004E284, 0x00306C84, 0x00000004, 0x002C3A9D, 0x0009569C, 0x002DFE9C, - 0x002D229C, 0x00000003, 0x002C3A9C, 0x002BDE9C, 0x002E229C, 0x00000002, - 0x002C3A9D, 0x002E229D, 0x00000003, 0x002C3A9C, 0x002E829C, 0x0029D09C, - 0x00000003, 0x002C3A9C, 0x002E829C, 0x0029D29C, 0x00000003, 0x002C3A9D, - 0x002EE29C, 0x0002E49C, 0x00000004, 0x002C3A9D, - // Block 42, offset 0xa80 - 0x002EE29D, 0x002EE29D, 0x002E229D, 0x00000002, 0x402C6220, 0xAE604102, - 0x00000002, 0x002C6288, 0xAE604102, 0x00000002, 0x402C6220, 0xAE605202, - 0x00000002, 0x002C6288, 0xAE605202, 0x00000002, 0x402C6220, 0xACA05602, - 0x00000002, 0x002C6288, 0xACA05602, 0x00000002, 0x402C6220, 0xADC07002, - 0x00000002, 0x002C6288, 0xADC07002, 0x00000002, 0x402C6220, 0xADC07802, - 0x00000002, 0x002C6288, 0xADC07802, 0x00000002, 0x402C6220, 0xADC07B02, - 0x00000002, 0x002C6288, 0xADC07B02, 0x00000002, 0x402C6220, 0xA0007D02, - 0x00000002, 0x002C6288, 0xA0007D02, 0x00000002, 0x002C6284, 0xA0013904, - 0x00000002, 0x84E61631, 0xAE613904, 0x00000002, 0x002C628A, 0xA0013904, - 0x00000002, 0x84E61631, 0xAE613A04, 0x00000002, 0x002C6284, 0xA0013A04, - 0x00000002, 0x002C628A, 0xA0013A04, 0x00000002, - // Block 43, offset 0xac0 - 0x002C6284, 0x002C0A84, 0x00000003, 0x002C629C, 0x002E829C, 0x0029D09C, - 0x00000003, 0x002C629C, 0x002E829C, 0x0029D29C, 0x00000002, 0x002C6284, - 0x00312A84, 0x00000003, 0x002C6284, 0x00312A84, 0xA0004104, 0x00000003, - 0x002C628A, 0x00312A84, 0xA0004104, 0x00000003, 0x002C628A, 0x00312A8A, - 0xA0004104, 0x00000002, 0x002C6284, 0x00315084, 0x00000002, 0x002C6284, - 0x00316484, 0x00000002, 0x402C9820, 0xAE603202, 0x00000002, 0x002C9888, - 0xAE603202, 0x00000002, 0x402C9820, 0xAE603502, 0x00000002, 0x002C9888, - 0xAE603502, 0x00000002, 0x402C9820, 0xAE603702, 0x00000002, 0x002C9888, - 0xAE603702, 0x00000002, 0x402C9820, 0xAE603C02, 0x00000002, 0x002C9888, - 0xAE603C02, 0x00000003, 0x402C9820, 0xAE603C02, 0xAE603202, 0x00000003, - 0x002C9888, 0xAE603C02, 0xAE603202, 0x00000003, - // Block 44, offset 0xb00 - 0x402C9820, 0xAE603C02, 0xAE603502, 0x00000003, 0x002C9888, 0xAE603C02, - 0xAE603502, 0x00000003, 0x402C9820, 0xAE603C02, 0xAE604E02, 0x00000003, - 0x002C9888, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C9820, 0xAE603C02, - 0xAE606402, 0x00000003, 0x002C9888, 0xAE603C02, 0xAE606402, 0x00000002, - 0x402C9820, 0xAE604102, 0x00000002, 0x002C9888, 0xAE604102, 0x00000002, - 0x402C9820, 0xAE604702, 0x00000002, 0x002C9888, 0xAE604702, 0x00000002, - 0x402C9820, 0xAE604E02, 0x00000002, 0x002C9888, 0xAE604E02, 0x00000002, - 0x402C9820, 0xAE605202, 0x00000002, 0x002C9888, 0xAE605202, 0x00000002, - 0x402C9820, 0xACA05602, 0x00000002, 0x002C9888, 0xACA05602, 0x00000003, - 0x402C9820, 0xACA05602, 0xAE603702, 0x00000003, 0x002C9888, 0xACA05602, - 0xAE603702, 0x00000002, 0x402C9820, 0xACA05902, - // Block 45, offset 0xb40 - 0x00000002, 0x002C9888, 0xACA05902, 0x00000002, 0x402C9820, 0xAE605B02, - 0x00000002, 0x002C9888, 0xAE605B02, 0x00000003, 0x402C9820, 0xAE605B02, - 0xAE603202, 0x00000003, 0x002C9888, 0xAE605B02, 0xAE603202, 0x00000003, - 0x402C9820, 0xAE605B02, 0xAE603502, 0x00000003, 0x002C9888, 0xAE605B02, - 0xAE603502, 0x00000002, 0x402C9820, 0xAE606402, 0x00000002, 0x002C9888, - 0xAE606402, 0x00000002, 0x402C9820, 0xAE606502, 0x00000002, 0x002C9888, - 0xAE606502, 0x00000002, 0x402C9820, 0xAE606702, 0x00000002, 0x002C9888, - 0xAE606702, 0x00000002, 0x402C9820, 0xADC07002, 0x00000002, 0x002C9888, - 0xADC07002, 0x00000003, 0x402C9820, 0xADC07002, 0xAE603C02, 0x00000003, - 0x002C9888, 0xADC07002, 0xAE603C02, 0x00000002, 0x402C9820, 0xADC07802, - 0x00000002, 0x002C9888, 0xADC07802, 0x00000002, - // Block 46, offset 0xb80 - 0x402C9820, 0xADC07A02, 0x00000002, 0x002C9888, 0xADC07A02, 0x00000003, - 0x002C989C, 0x002F7A9C, 0x002D229C, 0x00000002, 0x402D0820, 0xAE605202, - 0x00000002, 0x002D0888, 0xAE605202, 0x00000002, 0x002D0884, 0xA0013A04, - 0x00000002, 0x002D088A, 0xA0013A04, 0x00000003, 0x002D088A, 0x002BDE8A, - 0x0030F68A, 0x00000003, 0x002D0884, 0x002D0884, 0x002D9A84, 0x00000003, - 0x002D0884, 0x002D0884, 0x002E2284, 0x00000002, 0x002D0884, 0x002EDA84, - 0x00000004, 0x002D089D, 0x002F7A9D, 0x002C989D, 0x002C989D, 0x00000002, - 0x402D2220, 0xAE603202, 0x00000002, 0x002D2288, 0xAE603202, 0x00000002, - 0x402D2220, 0xAE603702, 0x00000002, 0x002D2288, 0xAE603702, 0x00000002, - 0x402D2220, 0xAE603C02, 0x00000002, 0x002D2288, 0xAE603C02, 0x00000002, - 0x402D2220, 0xAE604102, 0x00000002, 0x002D2288, - // Block 47, offset 0xbc0 - 0xAE604102, 0x00000002, 0x402D2220, 0xAE605202, 0x00000002, 0x002D2288, - 0xAE605202, 0x00000002, 0x402D2220, 0xACA05602, 0x00000002, 0x002D2288, - 0xACA05602, 0x00000002, 0x402D2220, 0xAE605B02, 0x00000002, 0x002D2288, - 0xAE605B02, 0x00000002, 0x002D2284, 0xA0006104, 0x00000002, 0x002D228A, - 0xA0006104, 0x00000002, 0x002D2284, 0xA0013A04, 0x00000002, 0x002D228A, - 0xA0013A04, 0x00000003, 0x002D229C, 0x002BDE9C, 0x002E229C, 0x00000003, - 0x002D229D, 0x002D689D, 0x00312A9C, 0x00000003, 0x002D229D, 0x002F2C9D, - 0x002BDE9C, 0x00000002, 0x402D6820, 0xAE603C02, 0x00000002, 0x002D6888, - 0xAE603C02, 0x00000002, 0x402D6820, 0xAE604102, 0x00000002, 0x002D6888, - 0xAE604102, 0x00000002, 0x402D6820, 0xAE604702, 0x00000002, 0x002D6888, - 0xAE604702, 0x00000002, 0x402D6820, 0xAE605202, - // Block 48, offset 0xc00 - 0x00000002, 0x002D6888, 0xAE605202, 0x00000002, 0x402D6820, 0xACA05602, - 0x00000002, 0x002D6888, 0xACA05602, 0x00000002, 0x402D6820, 0xADC07002, - 0x00000002, 0x002D6888, 0xADC07002, 0x00000002, 0x402D6820, 0xADC07902, - 0x00000002, 0x002D6888, 0xADC07902, 0x00000002, 0x402D6820, 0xADC07B02, - 0x00000002, 0x402D6820, 0xA0007D02, 0x00000002, 0x002D6888, 0xA0007D02, - 0x00000003, 0x002D689C, 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402D9A20, - 0xAE603202, 0x00000002, 0x002D9A88, 0xAE603202, 0x00000002, 0x402D9A20, - 0xAE603502, 0x00000002, 0x002D9A88, 0xAE603502, 0x00000002, 0x402D9A20, - 0xAE603702, 0x00000002, 0x002D9A88, 0xAE603702, 0x00000002, 0x402D9A20, - 0xAE603C02, 0x00000002, 0x002D9A88, 0xAE603C02, 0x00000002, 0x402D9A20, - 0xAE604102, 0x00000002, 0x002D9A88, 0xAE604102, - // Block 49, offset 0xc40 - 0x00000002, 0x402D9A20, 0xAE604702, 0x00000002, 0x002D9A88, 0xAE604702, - 0x00000003, 0x402D9A20, 0xAE604702, 0xAE603202, 0x00000003, 0x002D9A88, - 0xAE604702, 0xAE603202, 0x00000002, 0x402D9A20, 0xAE604E02, 0x00000002, - 0x002D9A88, 0xAE604E02, 0x00000002, 0x002D9A88, 0xAE605202, 0x00000002, - 0x402D9A20, 0xACA05902, 0x00000002, 0x002D9A88, 0xACA05902, 0x00000002, - 0x402D9A20, 0xAE605B02, 0x00000002, 0x002D9A88, 0xAE605B02, 0x00000002, - 0x402D9A20, 0xAE606402, 0x00000002, 0x002D9A88, 0xAE606402, 0x00000002, - 0x402D9A20, 0xAE606502, 0x00000002, 0x002D9A88, 0xAE606502, 0x00000002, - 0x402D9A20, 0xAE606702, 0x00000002, 0x002D9A88, 0xAE606702, 0x00000002, - 0x402D9A20, 0xADC07002, 0x00000002, 0x002D9A88, 0xADC07002, 0x00000002, - 0x402D9A20, 0xADC07A02, 0x00000002, 0x002D9A88, - // Block 50, offset 0xc80 - 0xADC07A02, 0x00000002, 0x002D9A9D, 0x002C3A9D, 0x00000002, 0x002D9A9D, - 0x002C629D, 0x00000002, 0x402DCC20, 0xAE603C02, 0x00000002, 0x002DCC88, - 0xAE603C02, 0x00000002, 0x402DCC20, 0xAE604102, 0x00000002, 0x402DFE20, - 0xAE603202, 0x00000002, 0x002DFE88, 0xAE603202, 0x00000002, 0x402DFE20, - 0xAE604102, 0x00000002, 0x002DFE88, 0xAE604102, 0x00000002, 0x402DFE20, - 0xACA05602, 0x00000002, 0x002DFE88, 0xACA05602, 0x00000002, 0x002DFE84, - 0xA0006104, 0x00000002, 0x002DFE8A, 0xA0006104, 0x00000002, 0x402DFE20, - 0xADC07002, 0x00000002, 0x002DFE88, 0xADC07002, 0x00000002, 0x402DFE20, - 0xADC07B02, 0x00000002, 0x002DFE88, 0xADC07B02, 0x00000004, 0x002DFE9C, - 0x002C3A9C, 0x002BDE9C, 0x002E229C, 0x00000003, 0x002DFE9C, 0x002D689D, - 0x00312A9C, 0x00000003, 0x002DFE9C, 0x002E829C, - // Block 51, offset 0xcc0 - 0x0029D09C, 0x00000003, 0x002DFE9C, 0x002E829C, 0x0029D29C, 0x00000003, - 0x002DFE9C, 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402E2220, 0xAE603202, - 0x00000002, 0x002E2288, 0xAE603202, 0x00000002, 0x402E2220, 0xAE604102, - 0x00000002, 0x002E2288, 0xAE604102, 0x00000002, 0x402E2220, 0xACA05602, - 0x00000002, 0x002E2288, 0xACA05602, 0x00000002, 0x402E2220, 0xADC07002, - 0x00000002, 0x002E2288, 0xADC07002, 0x00000003, 0x402E2220, 0xADC07002, - 0xAE605B02, 0x00000003, 0x002E2288, 0xADC07002, 0xAE605B02, 0x00000002, - 0x402E2220, 0xADC07802, 0x00000002, 0x002E2288, 0xADC07802, 0x00000002, - 0x402E2220, 0xADC07B02, 0x00000002, 0x002E2288, 0xADC07B02, 0x00000002, - 0x402E2220, 0xA0007D02, 0x00000002, 0x002E2288, 0xA0007D02, 0x00000002, - 0x402E2220, 0xA0013902, 0x00000002, 0x402E2220, - // Block 52, offset 0xd00 - 0xA0013902, 0x00000002, 0x002E2288, 0xA0013902, 0x00000002, 0x002E2288, - 0xA0013902, 0x00000002, 0x002E2284, 0x002E2284, 0x00000002, 0x002E228A, - 0x002E228A, 0x00000003, 0x002E229C, 0x002EE29C, 0x002D229C, 0x00000002, - 0x002E2284, 0x002FE684, 0x00000003, 0x002E229D, 0x00302C9D, 0x002C629D, - 0x00000002, 0x002E2284, 0x00312A84, 0x00000002, 0x402E8220, 0xAE603202, - 0x00000002, 0x002E8288, 0xAE603202, 0x00000002, 0x402E8220, 0xAE605202, - 0x00000002, 0x002E8288, 0xAE605202, 0x00000002, 0x402E8220, 0xADC07002, - 0x00000002, 0x002E8288, 0xADC07002, 0x00000003, 0x002E829C, 0x0009569C, - 0x002FE69C, 0x00000004, 0x002E829C, 0x0009569C, 0x002FE69C, 0x0029D09C, - 0x00000003, 0x002E829D, 0x002D689D, 0x00312A9C, 0x00000003, 0x002E829C, - 0x002D9A9C, 0x002E229C, 0x00000003, 0x002E829C, - // Block 53, offset 0xd40 - 0x002E829C, 0x0029D09C, 0x00000003, 0x002E829C, 0x002E829C, 0x0029D29C, - 0x00000003, 0x002E829C, 0x002EE29C, 0x002E229C, 0x00000003, 0x002E829D, - 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402E9E20, 0xAE603202, 0x00000002, - 0x002E9E88, 0xAE603202, 0x00000002, 0x402E9E20, 0xAE603502, 0x00000002, - 0x002E9E88, 0xAE603502, 0x00000002, 0x402E9E20, 0xAE604102, 0x00000002, - 0x002E9E88, 0xAE604102, 0x00000002, 0x402E9E20, 0xAE604E02, 0x00000002, - 0x002E9E88, 0xAE604E02, 0x00000002, 0x402E9E20, 0xAE605202, 0x00000002, - 0x002E9E88, 0xAE605202, 0x00000002, 0x402E9E20, 0xACA05602, 0x00000002, - 0x002E9E88, 0xACA05602, 0x00000002, 0x002E9E84, 0xA0006104, 0x00000002, - 0x002E9E8A, 0xA0006104, 0x00000002, 0x402E9E20, 0xADC07002, 0x00000002, - 0x002E9E88, 0xADC07002, 0x00000002, 0x402E9E20, - // Block 54, offset 0xd80 - 0xADC07802, 0x00000002, 0x002E9E88, 0xADC07802, 0x00000002, 0x402E9E20, - 0xADC07B02, 0x00000002, 0x002E9E88, 0xADC07B02, 0x00000003, 0x002E9E9D, - 0x002C989D, 0x0030E29D, 0x00000002, 0x002E9E9D, 0x002D229D, 0x00000002, - 0x402EE220, 0xAE603202, 0x00000002, 0x002EE288, 0xAE603202, 0x00000002, - 0x402EE220, 0xAE603502, 0x00000002, 0x002EE288, 0xAE603502, 0x00000002, - 0x402EE220, 0xAE603702, 0x00000002, 0x002EE288, 0xAE603702, 0x00000002, - 0x402EE220, 0xAE603C02, 0x00000002, 0x002EE288, 0xAE603C02, 0x00000003, - 0x402EE220, 0xAE603C02, 0xAE603202, 0x00000003, 0x002EE288, 0xAE603C02, - 0xAE603202, 0x00000003, 0x402EE220, 0xAE603C02, 0xAE603502, 0x00000003, - 0x002EE288, 0xAE603C02, 0xAE603502, 0x00000003, 0x402EE220, 0xAE603C02, - 0xAE604E02, 0x00000003, 0x002EE288, 0xAE603C02, - // Block 55, offset 0xdc0 - 0xAE604E02, 0x00000003, 0x402EE220, 0xAE603C02, 0xAE606402, 0x00000003, - 0x002EE288, 0xAE603C02, 0xAE606402, 0x00000002, 0x402EE220, 0xAE604102, - 0x00000002, 0x002EE288, 0xAE604102, 0x00000002, 0x402EE220, 0xAE604702, - 0x00000002, 0x002EE288, 0xAE604702, 0x00000003, 0x402EE220, 0xAE604702, - 0xAE605B02, 0x00000003, 0x002EE288, 0xAE604702, 0xAE605B02, 0x00000002, - 0x402EE220, 0xAE604D02, 0x00000002, 0x002EE288, 0xAE604D02, 0x00000002, - 0x402EE220, 0xAE604E02, 0x00000002, 0x002EE288, 0xAE604E02, 0x00000003, - 0x402EE220, 0xAE604E02, 0xAE603202, 0x00000003, 0x002EE288, 0xAE604E02, - 0xAE603202, 0x00000003, 0x402EE220, 0xAE604E02, 0xAE604702, 0x00000003, - 0x002EE288, 0xAE604E02, 0xAE604702, 0x00000003, 0x402EE220, 0xAE604E02, - 0xAE605B02, 0x00000003, 0x002EE288, 0xAE604E02, - // Block 56, offset 0xe00 - 0xAE605B02, 0x00000002, 0x402EE220, 0xAE605202, 0x00000002, 0x002EE288, - 0xAE605202, 0x00000003, 0x402EE220, 0xAE605202, 0xAE605B02, 0x00000003, - 0x002EE288, 0xAE605202, 0xAE605B02, 0x00000002, 0x402EE220, 0xA0005402, - 0x00000002, 0x002EE288, 0xA0005402, 0x00000003, 0x402EE220, 0xA0005402, - 0xAE603202, 0x00000003, 0x002EE288, 0xA0005402, 0xAE603202, 0x00000002, - 0x402EE220, 0xACA05902, 0x00000002, 0x002EE288, 0xACA05902, 0x00000003, - 0x402EE220, 0xACA05902, 0xAE605B02, 0x00000003, 0x002EE288, 0xACA05902, - 0xAE605B02, 0x00000002, 0x402EE220, 0xAE605B02, 0x00000002, 0x002EE288, - 0xAE605B02, 0x00000003, 0x402EE220, 0xAE605B02, 0xAE603202, 0x00000003, - 0x002EE288, 0xAE605B02, 0xAE603202, 0x00000003, 0x402EE220, 0xAE605B02, - 0xAE603502, 0x00000003, 0x002EE288, 0xAE605B02, - // Block 57, offset 0xe40 - 0xAE603502, 0x00000002, 0x402EE220, 0xAE606402, 0x00000002, 0x002EE288, - 0xAE606402, 0x00000002, 0x402EE220, 0xAE606502, 0x00000002, 0x002EE288, - 0xAE606502, 0x00000002, 0x402EE220, 0xAE606702, 0x00000002, 0x002EE288, - 0xAE606702, 0x00000002, 0x402EE220, 0xAD806802, 0x00000002, 0x002EE288, - 0xAD806802, 0x00000003, 0x402EE220, 0xAD806802, 0xAE603202, 0x00000003, - 0x002EE288, 0xAD806802, 0xAE603202, 0x00000003, 0x402EE220, 0xAD806802, - 0xAE603502, 0x00000003, 0x002EE288, 0xAD806802, 0xAE603502, 0x00000003, - 0x402EE220, 0xAD806802, 0xAE604E02, 0x00000003, 0x002EE288, 0xAD806802, - 0xAE604E02, 0x00000003, 0x402EE220, 0xAD806802, 0xAE606402, 0x00000003, - 0x002EE288, 0xAD806802, 0xAE606402, 0x00000003, 0x402EE220, 0xAD806802, - 0xADC07002, 0x00000003, 0x002EE288, 0xAD806802, - // Block 58, offset 0xe80 - 0xADC07002, 0x00000002, 0x402EE220, 0xADC07002, 0x00000002, 0x002EE288, - 0xADC07002, 0x00000003, 0x402EE220, 0xADC07002, 0xAE603C02, 0x00000003, - 0x002EE288, 0xADC07002, 0xAE603C02, 0x00000003, 0x002EE284, 0xA0013904, - 0x002C9884, 0x00000003, 0x002EE28A, 0xA0013904, 0x002C988A, 0x00000003, - 0x002EE294, 0xA0013914, 0x002C9894, 0x00000002, 0x002EE29D, 0x002DFE9D, - 0x00000002, 0x002EE284, 0x002EE284, 0x00000002, 0x002EE28A, 0x002EE28A, - 0x00000002, 0x402F2C20, 0xAE603202, 0x00000002, 0x002F2C88, 0xAE603202, - 0x00000002, 0x402F2C20, 0xAE605202, 0x00000002, 0x002F2C88, 0xAE605202, - 0x00000004, 0x002F2C9C, 0x0002E49C, 0x002E829C, 0x0002E49C, 0x00000002, - 0x002F2C9D, 0x002BDE9D, 0x00000003, 0x002F2C9D, 0x002F2C9D, 0x002E829D, - 0x00000003, 0x002F2C9D, 0x002F2C9D, 0x0030BE9D, - // Block 59, offset 0xec0 - 0x00000003, 0x002F2C9D, 0x00302C9D, 0x002C989D, 0x00000002, 0x002F5684, - 0x002F2C84, 0x00000002, 0x402F7A20, 0xAE603202, 0x00000002, 0x002F7A88, - 0xAE603202, 0x00000002, 0x402F7A20, 0xAE604102, 0x00000002, 0x002F7A88, - 0xAE604102, 0x00000002, 0x402F7A20, 0xAE605202, 0x00000002, 0x002F7A88, - 0xAE605202, 0x00000002, 0x402F7A20, 0xACA05602, 0x00000002, 0x002F7A88, - 0xACA05602, 0x00000002, 0x002F7A84, 0xA0006104, 0x00000002, 0x002F7A8A, - 0xA0006104, 0x00000002, 0x402F7A20, 0xAE606502, 0x00000002, 0x002F7A88, - 0xAE606502, 0x00000002, 0x402F7A20, 0xAE606702, 0x00000002, 0x002F7A88, - 0xAE606702, 0x00000002, 0x402F7A20, 0xADC07002, 0x00000002, 0x002F7A88, - 0xADC07002, 0x00000003, 0x402F7A20, 0xADC07002, 0xAE605B02, 0x00000003, - 0x002F7A88, 0xADC07002, 0xAE605B02, 0x00000002, - // Block 60, offset 0xf00 - 0x402F7A20, 0xADC07B02, 0x00000002, 0x002F7A88, 0xADC07B02, 0x00000002, - 0x002F7A84, 0xA0013A04, 0x00000002, 0x002F7A8A, 0xA0013A04, 0x00000003, - 0x002F7A9C, 0x002BDE9C, 0x002C629C, 0x00000005, 0x002F7A9C, 0x002BDE9C, - 0x002C629C, 0x0009569C, 0x002FE69C, 0x00000006, 0x002F7A9C, 0x002BDE9C, - 0x002C629C, 0x0009569C, 0x002FE69C, 0x0029D09C, 0x00000002, 0x402FE620, - 0xAE603202, 0x00000002, 0x002FE688, 0xAE603202, 0x00000003, 0x402FE620, - 0xAE603202, 0xAE605202, 0x00000003, 0x002FE688, 0xAE603202, 0xAE605202, - 0x00000002, 0x402FE620, 0xAE603C02, 0x00000002, 0x002FE688, 0xAE603C02, - 0x00000002, 0x402FE620, 0xAE604102, 0x00000002, 0x002FE688, 0xAE604102, - 0x00000003, 0x402FE620, 0xAE604102, 0xAE605202, 0x00000003, 0x002FE688, - 0xAE604102, 0xAE605202, 0x00000002, 0x402FE620, - // Block 61, offset 0xf40 - 0xAE605202, 0x00000002, 0x002FE688, 0xAE605202, 0x00000002, 0x402FE620, - 0xACA05602, 0x00000002, 0x002FE688, 0xACA05602, 0x00000002, 0x002FE684, - 0xA0006104, 0x00000002, 0x002FE68A, 0xA0006104, 0x00000002, 0x402FE620, - 0xADC07002, 0x00000002, 0x002FE688, 0xADC07002, 0x00000003, 0x402FE620, - 0xADC07002, 0xAE605202, 0x00000003, 0x002FE688, 0xADC07002, 0xAE605202, - 0x00000002, 0x402FE620, 0xADC07702, 0x00000002, 0x002FE688, 0xADC07702, - 0x00000002, 0x002FE684, 0xA0013A04, 0x00000002, 0x84E617F3, 0xAE613A04, - 0x00000002, 0x002FE684, 0xA0013A04, 0x00000002, 0x002FE68A, 0xA0013A04, - 0x00000003, 0x002FE684, 0xA0013A04, 0xAE605202, 0x00000002, 0x002FE69D, - 0x002BDE9D, 0x00000003, 0x002FE69D, 0x002EE29D, 0x002FE69D, 0x00000003, - 0x002FE684, 0xA0013904, 0x002FE684, 0x00000003, - // Block 62, offset 0xf80 - 0x002FE68A, 0xA0013904, 0x002FE68A, 0x00000003, 0x002FE684, 0xA0013A04, - 0x00302C84, 0x00000002, 0x40302C20, 0xAE604102, 0x00000002, 0x00302C88, - 0xAE604102, 0x00000002, 0x40302C20, 0xAE604702, 0x00000002, 0x40302C20, - 0xAE605202, 0x00000002, 0x00302C88, 0xAE605202, 0x00000002, 0x40302C20, - 0xACA05602, 0x00000002, 0x00302C88, 0xACA05602, 0x00000002, 0x40302C20, - 0xADC07002, 0x00000002, 0x00302C88, 0xADC07002, 0x00000002, 0x40302C20, - 0xADC07702, 0x00000002, 0x00302C88, 0xADC07702, 0x00000002, 0x40302C20, - 0xADC07802, 0x00000002, 0x00302C88, 0xADC07802, 0x00000002, 0x40302C20, - 0xADC07B02, 0x00000002, 0x00302C88, 0xADC07B02, 0x00000002, 0x00302C84, - 0xA0013A04, 0x00000002, 0x00302C8A, 0xA0013A04, 0x00000002, 0x00302C84, - 0x002C5684, 0x00000003, 0x00302C8A, 0x002C988A, - // Block 63, offset 0xfc0 - 0x002E228A, 0x00000003, 0x00302C84, 0xA0013904, 0x002D6884, 0x00000003, - 0x00302C9D, 0x002D689D, 0x00312A9C, 0x00000002, 0x00302C84, 0x002FE684, - 0x00000002, 0x00302C84, 0x002FE684, 0x00000002, 0x00302C84, 0x00300884, - 0x00000002, 0x00302C84, 0x00312A84, 0x00000002, 0x00302C8A, 0x00312A84, - 0x00000002, 0x40306C20, 0xAE603202, 0x00000002, 0x00306C88, 0xAE603202, - 0x00000002, 0x40306C20, 0xAE603502, 0x00000002, 0x00306C88, 0xAE603502, - 0x00000002, 0x40306C20, 0xAE603702, 0x00000002, 0x00306C88, 0xAE603702, - 0x00000002, 0x40306C20, 0xAE603C02, 0x00000002, 0x00306C88, 0xAE603C02, - 0x00000002, 0x40306C20, 0xAE604102, 0x00000002, 0x00306C88, 0xAE604102, - 0x00000002, 0x40306C20, 0xAE604302, 0x00000002, 0x00306C88, 0xAE604302, - 0x00000002, 0x40306C20, 0xAE604702, 0x00000002, - // Block 64, offset 0x1000 - 0x00306C88, 0xAE604702, 0x00000003, 0x40306C20, 0xAE604702, 0xAE603202, - 0x00000003, 0x00306C88, 0xAE604702, 0xAE603202, 0x00000003, 0x40306C20, - 0xAE604702, 0xAE603502, 0x00000003, 0x00306C88, 0xAE604702, 0xAE603502, - 0x00000003, 0x40306C20, 0xAE604702, 0xAE604102, 0x00000003, 0x00306C88, - 0xAE604702, 0xAE604102, 0x00000003, 0x40306C20, 0xAE604702, 0xAE605B02, - 0x00000003, 0x00306C88, 0xAE604702, 0xAE605B02, 0x00000002, 0x40306C20, - 0xAE604D02, 0x00000002, 0x00306C88, 0xAE604D02, 0x00000002, 0x40306C20, - 0xAE604E02, 0x00000002, 0x00306C88, 0xAE604E02, 0x00000003, 0x40306C20, - 0xAE604E02, 0xAE603202, 0x00000003, 0x00306C88, 0xAE604E02, 0xAE603202, - 0x00000002, 0x40306C20, 0xACA05902, 0x00000002, 0x00306C88, 0xACA05902, - 0x00000002, 0x40306C20, 0xAE605B02, 0x00000002, - // Block 65, offset 0x1040 - 0x00306C88, 0xAE605B02, 0x00000003, 0x40306C20, 0xAE605B02, 0xAE604702, - 0x00000003, 0x00306C88, 0xAE605B02, 0xAE604702, 0x00000002, 0x40306C20, - 0xAE606402, 0x00000002, 0x00306C88, 0xAE606402, 0x00000002, 0x40306C20, - 0xAE606502, 0x00000002, 0x00306C88, 0xAE606502, 0x00000002, 0x40306C20, - 0xAE606702, 0x00000002, 0x00306C88, 0xAE606702, 0x00000002, 0x40306C20, - 0xAD806802, 0x00000002, 0x00306C88, 0xAD806802, 0x00000003, 0x40306C20, - 0xAD806802, 0xAE603202, 0x00000003, 0x00306C88, 0xAD806802, 0xAE603202, - 0x00000003, 0x40306C20, 0xAD806802, 0xAE603502, 0x00000003, 0x00306C88, - 0xAD806802, 0xAE603502, 0x00000003, 0x40306C20, 0xAD806802, 0xAE604E02, - 0x00000003, 0x00306C88, 0xAD806802, 0xAE604E02, 0x00000003, 0x40306C20, - 0xAD806802, 0xAE606402, 0x00000003, 0x00306C88, - // Block 66, offset 0x1080 - 0xAD806802, 0xAE606402, 0x00000003, 0x40306C20, 0xAD806802, 0xADC07002, - 0x00000003, 0x00306C88, 0xAD806802, 0xADC07002, 0x00000002, 0x40306C20, - 0xADC07002, 0x00000002, 0x00306C88, 0xADC07002, 0x00000002, 0x40306C20, - 0xADC07502, 0x00000002, 0x00306C88, 0xADC07502, 0x00000002, 0x40306C20, - 0xADC07802, 0x00000002, 0x00306C88, 0xADC07802, 0x00000002, 0x40306C20, - 0xADC07A02, 0x00000002, 0x00306C88, 0xADC07A02, 0x00000003, 0x00306C9D, - 0x002F2C9D, 0x0002BA9C, 0x00000002, 0x4030BE20, 0xAE604E02, 0x00000002, - 0x0030BE88, 0xAE604E02, 0x00000002, 0x4030BE20, 0xADC07002, 0x00000002, - 0x0030BE88, 0xADC07002, 0x00000003, 0x0030BE9D, 0x0009569C, 0x002E829C, - 0x00000004, 0x0030BE84, 0x002D9A84, 0x002D9A84, 0x002D9A9F, 0x00000004, - 0x0030BE8A, 0x002D9A8A, 0x002D9A8A, 0x002D9A9F, - // Block 67, offset 0x10c0 - 0x00000002, 0x0030BE9D, 0x002FE69D, 0x00000002, 0x0030BE84, 0x00310084, - 0x00000002, 0x0030BE8A, 0x0031008A, 0x00000002, 0x4030E220, 0xAE603202, - 0x00000002, 0x0030E288, 0xAE603202, 0x00000002, 0x4030E220, 0xAE603502, - 0x00000002, 0x0030E288, 0xAE603502, 0x00000002, 0x4030E220, 0xAE603C02, - 0x00000002, 0x0030E288, 0xAE603C02, 0x00000002, 0x4030E220, 0xAE604302, - 0x00000002, 0x4030E220, 0xAE604702, 0x00000002, 0x0030E288, 0xAE604702, - 0x00000002, 0x4030E220, 0xAE605202, 0x00000002, 0x0030E288, 0xAE605202, - 0x00000002, 0x4030E220, 0xADC07002, 0x00000002, 0x0030E288, 0xADC07002, - 0x00000002, 0x0030E29D, 0x002C3A9D, 0x00000002, 0x4030F620, 0xAE604702, - 0x00000002, 0x0030F688, 0xAE604702, 0x00000002, 0x4030F620, 0xAE605202, - 0x00000002, 0x0030F688, 0xAE605202, 0x00000002, - // Block 68, offset 0x1100 - 0x40310020, 0xAE603202, 0x00000002, 0x00310088, 0xAE603202, 0x00000002, - 0x40310020, 0xAE603502, 0x00000002, 0x00310088, 0xAE603502, 0x00000002, - 0x40310020, 0xAE603C02, 0x00000002, 0x00310088, 0xAE603C02, 0x00000002, - 0x40310020, 0xAE604302, 0x00000002, 0x40310020, 0xAE604702, 0x00000002, - 0x00310088, 0xAE604702, 0x00000002, 0x40310020, 0xAE604E02, 0x00000002, - 0x00310088, 0xAE604E02, 0x00000002, 0x40310020, 0xAE605202, 0x00000002, - 0x00310088, 0xAE605202, 0x00000002, 0x40310020, 0xAE605B02, 0x00000002, - 0x00310088, 0xAE605B02, 0x00000002, 0x40310020, 0xAE606402, 0x00000002, - 0x00310088, 0xAE606402, 0x00000002, 0x40310020, 0xADC07002, 0x00000002, - 0x00310088, 0xADC07002, 0x00000002, 0x40312A20, 0xAE603202, 0x00000002, - 0x00312A88, 0xAE603202, 0x00000002, 0x40312A20, - // Block 69, offset 0x1140 - 0xAE603C02, 0x00000002, 0x00312A88, 0xAE603C02, 0x00000002, 0x40312A20, - 0xAE604102, 0x00000002, 0x00312A88, 0xAE604102, 0x00000002, 0x40312A20, - 0xAE605202, 0x00000002, 0x00312A88, 0xAE605202, 0x00000002, 0x40312A20, - 0xADC07002, 0x00000002, 0x00312A88, 0xADC07002, 0x00000002, 0x40312A20, - 0xADC07B02, 0x00000002, 0x00312A88, 0xADC07B02, 0x00000002, 0x00312A84, - 0x0030E284, 0x00000002, 0x40316420, 0xAE604102, 0x00000002, 0x00316488, - 0xAE604102, 0x00000002, 0x40325220, 0xAE602202, 0x00000002, 0x00325288, - 0xAE602202, 0x00000003, 0x40325220, 0xAE602202, 0xAE603202, 0x00000003, - 0x00325288, 0xAE602202, 0xAE603202, 0x00000004, 0x40325220, 0xAE602202, - 0xAE603202, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602202, 0xAE603202, - 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202, - // Block 70, offset 0x1180 - 0xAE603502, 0x00000003, 0x00325288, 0xAE602202, 0xAE603502, 0x00000004, - 0x40325220, 0xAE602202, 0xAE603502, 0xAF007F02, 0x00000004, 0x00325288, - 0xAE602202, 0xAE603502, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202, - 0xAE604502, 0x00000003, 0x00325288, 0xAE602202, 0xAE604502, 0x00000004, - 0x40325220, 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000004, 0x00325288, - 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202, - 0xAF007F02, 0x00000003, 0x00325288, 0xAE602202, 0xAF007F02, 0x00000002, - 0x40325220, 0xAE602A02, 0x00000002, 0x00325288, 0xAE602A02, 0x00000003, - 0x40325220, 0xAE602A02, 0xAE603202, 0x00000003, 0x00325288, 0xAE602A02, - 0xAE603202, 0x00000004, 0x40325220, 0xAE602A02, 0xAE603202, 0xAF007F02, - 0x00000004, 0x00325288, 0xAE602A02, 0xAE603202, - // Block 71, offset 0x11c0 - 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE603502, 0x00000003, - 0x00325288, 0xAE602A02, 0xAE603502, 0x00000004, 0x40325220, 0xAE602A02, - 0xAE603502, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02, 0xAE603502, - 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE604502, 0x00000003, - 0x00325288, 0xAE602A02, 0xAE604502, 0x00000004, 0x40325220, 0xAE602A02, - 0xAE604502, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02, 0xAE604502, - 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAF007F02, 0x00000003, - 0x00325288, 0xAE602A02, 0xAF007F02, 0x00000002, 0x40325220, 0xAE603202, - 0x00000002, 0x00325288, 0xAE603202, 0x00000003, 0x40325220, 0xAE603202, - 0xAF007F02, 0x00000002, 0x40325220, 0xAE603502, 0x00000002, 0x00325288, - 0xAE603502, 0x00000003, 0x40325220, 0xAE603502, - // Block 72, offset 0x1200 - 0xAF007F02, 0x00000002, 0x40325220, 0xAE603702, 0x00000002, 0x00325288, - 0xAE603702, 0x00000002, 0x40325220, 0xAE604502, 0x00000003, 0x40325220, - 0xAE604502, 0xAF007F02, 0x00000002, 0x40325220, 0xAE605B02, 0x00000002, - 0x00325288, 0xAE605B02, 0x00000002, 0x40325220, 0xAF007F02, 0x00000002, - 0x00325288, 0xAF007F02, 0x00000002, 0x40325C20, 0xAE602202, 0x00000002, - 0x00325C88, 0xAE602202, 0x00000003, 0x40325C20, 0xAE602202, 0xAE603202, - 0x00000003, 0x00325C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40325C20, - 0xAE602202, 0xAE603502, 0x00000003, 0x00325C88, 0xAE602202, 0xAE603502, - 0x00000002, 0x40325C20, 0xAE602A02, 0x00000002, 0x00325C88, 0xAE602A02, - 0x00000003, 0x40325C20, 0xAE602A02, 0xAE603202, 0x00000003, 0x00325C88, - 0xAE602A02, 0xAE603202, 0x00000003, 0x40325C20, - // Block 73, offset 0x1240 - 0xAE602A02, 0xAE603502, 0x00000003, 0x00325C88, 0xAE602A02, 0xAE603502, - 0x00000002, 0x40325C20, 0xAE603202, 0x00000002, 0x00325C88, 0xAE603202, - 0x00000002, 0x40325C20, 0xAE603502, 0x00000002, 0x00325C88, 0xAE603502, - 0x00000002, 0x40326820, 0xAE602202, 0x00000002, 0x00326888, 0xAE602202, - 0x00000003, 0x40326820, 0xAE602202, 0xAE603202, 0x00000003, 0x00326888, - 0xAE602202, 0xAE603202, 0x00000004, 0x40326820, 0xAE602202, 0xAE603202, - 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603202, 0xAF007F02, - 0x00000003, 0x40326820, 0xAE602202, 0xAE603502, 0x00000003, 0x00326888, - 0xAE602202, 0xAE603502, 0x00000004, 0x40326820, 0xAE602202, 0xAE603502, - 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603502, 0xAF007F02, - 0x00000003, 0x40326820, 0xAE602202, 0xAE604502, - // Block 74, offset 0x1280 - 0x00000003, 0x00326888, 0xAE602202, 0xAE604502, 0x00000004, 0x40326820, - 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, - 0xAE604502, 0xAF007F02, 0x00000003, 0x40326820, 0xAE602202, 0xAF007F02, - 0x00000003, 0x00326888, 0xAE602202, 0xAF007F02, 0x00000002, 0x40326820, - 0xAE602A02, 0x00000002, 0x00326888, 0xAE602A02, 0x00000003, 0x40326820, - 0xAE602A02, 0xAE603202, 0x00000003, 0x00326888, 0xAE602A02, 0xAE603202, - 0x00000004, 0x40326820, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000004, - 0x00326888, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000003, 0x40326820, - 0xAE602A02, 0xAE603502, 0x00000003, 0x00326888, 0xAE602A02, 0xAE603502, - 0x00000004, 0x40326820, 0xAE602A02, 0xAE603502, 0xAF007F02, 0x00000004, - 0x00326888, 0xAE602A02, 0xAE603502, 0xAF007F02, - // Block 75, offset 0x12c0 - 0x00000003, 0x40326820, 0xAE602A02, 0xAE604502, 0x00000003, 0x00326888, - 0xAE602A02, 0xAE604502, 0x00000004, 0x40326820, 0xAE602A02, 0xAE604502, - 0xAF007F02, 0x00000004, 0x00326888, 0xAE602A02, 0xAE604502, 0xAF007F02, - 0x00000003, 0x40326820, 0xAE602A02, 0xAF007F02, 0x00000003, 0x00326888, - 0xAE602A02, 0xAF007F02, 0x00000002, 0x40326820, 0xAE603202, 0x00000002, - 0x00326888, 0xAE603202, 0x00000003, 0x40326820, 0xAE603202, 0xAF007F02, - 0x00000002, 0x40326820, 0xAE603502, 0x00000002, 0x00326888, 0xAE603502, - 0x00000003, 0x40326820, 0xAE603502, 0xAF007F02, 0x00000002, 0x40326820, - 0xAE604502, 0x00000003, 0x40326820, 0xAE604502, 0xAF007F02, 0x00000002, - 0x40326820, 0xAF007F02, 0x00000002, 0x00326888, 0xAF007F02, 0x00000002, - 0x40326C20, 0xAE602202, 0x00000002, 0x00326C88, - // Block 76, offset 0x1300 - 0xAE602202, 0x00000003, 0x40326C20, 0xAE602202, 0xAE603202, 0x00000003, - 0x00326C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40326C20, 0xAE602202, - 0xAE603502, 0x00000003, 0x00326C88, 0xAE602202, 0xAE603502, 0x00000003, - 0x40326C20, 0xAE602202, 0xAE604502, 0x00000003, 0x00326C88, 0xAE602202, - 0xAE604502, 0x00000002, 0x40326C20, 0xAE602A02, 0x00000002, 0x00326C88, - 0xAE602A02, 0x00000003, 0x40326C20, 0xAE602A02, 0xAE603202, 0x00000003, - 0x00326C88, 0xAE602A02, 0xAE603202, 0x00000003, 0x40326C20, 0xAE602A02, - 0xAE603502, 0x00000003, 0x00326C88, 0xAE602A02, 0xAE603502, 0x00000003, - 0x40326C20, 0xAE602A02, 0xAE604502, 0x00000003, 0x00326C88, 0xAE602A02, - 0xAE604502, 0x00000002, 0x40326C20, 0xAE603202, 0x00000002, 0x00326C88, - 0xAE603202, 0x00000002, 0x40326C20, 0xAE603502, - // Block 77, offset 0x1340 - 0x00000002, 0x00326C88, 0xAE603502, 0x00000002, 0x40326C20, 0xAE603702, - 0x00000002, 0x00326C88, 0xAE603702, 0x00000002, 0x40326C20, 0xAE604502, - 0x00000002, 0x40326C20, 0xAE604702, 0x00000002, 0x00326C88, 0xAE604702, - 0x00000003, 0x40326C20, 0xAE604702, 0xAE603202, 0x00000003, 0x40326C20, - 0xAE604702, 0xAE603502, 0x00000003, 0x40326C20, 0xAE604702, 0xAE604502, - 0x00000002, 0x40326C20, 0xAE605B02, 0x00000002, 0x00326C88, 0xAE605B02, - 0x00000003, 0x00327084, 0x00325284, 0x00326C84, 0x00000003, 0x0032708A, - 0x00325284, 0x00326C84, 0x00000002, 0x40327C20, 0xAE602202, 0x00000002, - 0x00327C88, 0xAE602202, 0x00000003, 0x40327C20, 0xAE602202, 0xAE603202, - 0x00000003, 0x00327C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40327C20, - 0xAE602202, 0xAE603502, 0x00000003, 0x00327C88, - // Block 78, offset 0x1380 - 0xAE602202, 0xAE603502, 0x00000002, 0x40327C20, 0xAE602A02, 0x00000002, - 0x00327C88, 0xAE602A02, 0x00000003, 0x40327C20, 0xAE602A02, 0xAE603202, - 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603202, 0x00000003, 0x40327C20, - 0xAE602A02, 0xAE603502, 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603502, - 0x00000002, 0x40327C20, 0xAE603202, 0x00000002, 0x00327C88, 0xAE603202, - 0x00000002, 0x40327C20, 0xAE603502, 0x00000002, 0x00327C88, 0xAE603502, - 0x00000002, 0x40328820, 0xAE602202, 0x00000002, 0x40328820, 0xAE602A02, - 0x00000002, 0x00328888, 0xAE602A02, 0x00000002, 0x40329820, 0xAE602202, - 0x00000003, 0x40329820, 0xAE602202, 0xAE603202, 0x00000003, 0x40329820, - 0xAE602202, 0xAE603502, 0x00000003, 0x40329820, 0xAE602202, 0xAE604502, - 0x00000002, 0x40329820, 0xAE602A02, 0x00000002, - // Block 79, offset 0x13c0 - 0x00329888, 0xAE602A02, 0x00000003, 0x40329820, 0xAE602A02, 0xAE603202, - 0x00000003, 0x00329888, 0xAE602A02, 0xAE603202, 0x00000003, 0x40329820, - 0xAE602A02, 0xAE603502, 0x00000003, 0x00329888, 0xAE602A02, 0xAE603502, - 0x00000003, 0x40329820, 0xAE602A02, 0xAE604502, 0x00000003, 0x00329888, - 0xAE602A02, 0xAE604502, 0x00000002, 0x40329820, 0xAE603202, 0x00000002, - 0x00329888, 0xAE603202, 0x00000002, 0x40329820, 0xAE603502, 0x00000002, - 0x00329888, 0xAE603502, 0x00000002, 0x40329820, 0xAE603702, 0x00000002, - 0x00329888, 0xAE603702, 0x00000002, 0x40329820, 0xAE604502, 0x00000002, - 0x40329820, 0xAE604702, 0x00000002, 0x00329888, 0xAE604702, 0x00000003, - 0x40329820, 0xAE604702, 0xAE603202, 0x00000003, 0x40329820, 0xAE604702, - 0xAE603502, 0x00000003, 0x40329820, 0xAE604702, - // Block 80, offset 0x1400 - 0xAE604502, 0x00000002, 0x40329820, 0xAE605B02, 0x00000002, 0x00329888, - 0xAE605B02, 0x00000002, 0x4032A220, 0xAE602202, 0x00000002, 0x0032A288, - 0xAE602202, 0x00000003, 0x4032A220, 0xAE602202, 0xAE603202, 0x00000003, - 0x0032A288, 0xAE602202, 0xAE603202, 0x00000004, 0x4032A220, 0xAE602202, - 0xAE603202, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603202, - 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, 0xAE603502, 0x00000003, - 0x0032A288, 0xAE602202, 0xAE603502, 0x00000004, 0x4032A220, 0xAE602202, - 0xAE603502, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603502, - 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, 0xAE604502, 0x00000003, - 0x0032A288, 0xAE602202, 0xAE604502, 0x00000004, 0x4032A220, 0xAE602202, - 0xAE604502, 0xAF007F02, 0x00000004, 0x0032A288, - // Block 81, offset 0x1440 - 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, - 0xAF007F02, 0x00000003, 0x0032A288, 0xAE602202, 0xAF007F02, 0x00000002, - 0x4032A220, 0xAE602A02, 0x00000002, 0x0032A288, 0xAE602A02, 0x00000003, - 0x4032A220, 0xAE602A02, 0xAE603202, 0x00000003, 0x0032A288, 0xAE602A02, - 0xAE603202, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603202, 0xAF007F02, - 0x00000004, 0x0032A288, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000003, - 0x4032A220, 0xAE602A02, 0xAE603502, 0x00000003, 0x0032A288, 0xAE602A02, - 0xAE603502, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603502, 0xAF007F02, - 0x00000004, 0x0032A288, 0xAE602A02, 0xAE603502, 0xAF007F02, 0x00000003, - 0x4032A220, 0xAE602A02, 0xAE604502, 0x00000003, 0x0032A288, 0xAE602A02, - 0xAE604502, 0x00000004, 0x4032A220, 0xAE602A02, - // Block 82, offset 0x1480 - 0xAE604502, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602A02, 0xAE604502, - 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602A02, 0xAF007F02, 0x00000003, - 0x0032A288, 0xAE602A02, 0xAF007F02, 0x00000002, 0x4032A220, 0xAE603202, - 0x00000002, 0x0032A288, 0xAE603202, 0x00000003, 0x4032A220, 0xAE603202, - 0xAF007F02, 0x00000002, 0x4032A220, 0xAE603502, 0x00000002, 0x0032A288, - 0xAE603502, 0x00000003, 0x4032A220, 0xAE603502, 0xAF007F02, 0x00000002, - 0x4032A220, 0xAE604502, 0x00000003, 0x4032A220, 0xAE604502, 0xAF007F02, - 0x00000002, 0x4032A220, 0xAF007F02, 0x00000002, 0x0032A288, 0xAF007F02, - 0x00000003, 0x0032C084, 0x0032AA84, 0x0032BE84, 0x00000002, 0x00336284, - 0xA0013A04, 0x00000002, 0x0033628A, 0xA0013A04, 0x00000002, 0x4033B220, - 0xAE603502, 0x00000002, 0x0033B288, 0xAE603502, - // Block 83, offset 0x14c0 - 0x00000002, 0x4033B220, 0xAE604702, 0x00000002, 0x0033B288, 0xAE604702, - 0x00000002, 0x4033CA20, 0xAE603702, 0x00000002, 0x0033CA88, 0xAE603702, - 0x00000002, 0x40341420, 0xAE603502, 0x00000002, 0x00341488, 0xAE603502, - 0x00000002, 0x40341420, 0xAE605B02, 0x00000002, 0x00341488, 0xAE605B02, - 0x00000002, 0x84E61A9D, 0x84E61AA6, 0x00000002, 0x40357220, 0xAE605B02, - 0x00000002, 0x00357288, 0xAE605B02, 0x00000002, 0x40389020, 0xA1108C02, - 0x00000002, 0x40389020, 0xA1208D02, 0x00000002, 0x40389020, 0xA1509202, - 0x00000002, 0x40389220, 0xA1509202, 0x00000002, 0x40389220, 0xA1709502, - 0x00000002, 0x40389420, 0xA1509202, 0x00000002, 0x40389620, 0xA1509202, - 0x00000002, 0x40389820, 0xA1509202, 0x00000002, 0x40389A20, 0xA1308E02, - 0x00000002, 0x40389A20, 0xA1509202, 0x00000002, - // Block 84, offset 0x1500 - 0x00389A84, 0x00389A84, 0x00000002, 0x00389A84, 0x0038A284, 0x00000002, - 0x40389C20, 0xA1509202, 0x00000002, 0x4038A020, 0xA1509202, 0x00000002, - 0x4038A220, 0xA0E08902, 0x00000002, 0x4038A220, 0xA1509202, 0x00000002, - 0x0038A284, 0x0038A284, 0x00000003, 0x0038A284, 0x0038A284, 0xA1108C02, - 0x00000002, 0x4038A420, 0xA1509202, 0x00000002, 0x0038A499, 0xA1509202, - 0x00000002, 0x4038A420, 0xA1709502, 0x00000002, 0x4038A620, 0xA1509202, - 0x00000002, 0x4038A820, 0xA1509202, 0x00000002, 0x4038AA20, 0xA1509202, - 0x00000002, 0x4038AC20, 0xA1509202, 0x00000002, 0x4038B020, 0xA1509202, - 0x00000002, 0x0038B099, 0xA1509202, 0x00000002, 0x4038B020, 0xA1709502, - 0x00000002, 0x4038B220, 0xA1509202, 0x00000002, 0x4038B420, 0xA1509202, - 0x00000002, 0x4038B620, 0xA1509202, 0x00000002, - // Block 85, offset 0x1540 - 0x4038B820, 0xA1909002, 0x00000002, 0x4038B820, 0xA1809102, 0x00000002, - 0x4038B820, 0xA1509202, 0x00000003, 0x4038B820, 0xA1509202, 0xA1909002, - 0x00000003, 0x4038B820, 0xA1509202, 0xA1809102, 0x00000002, 0x4038BA20, - 0xA1509202, 0x00000002, 0x00391C84, 0xA0013A04, 0x00000002, 0x00393099, - 0x00393899, 0x00000002, 0x0039309A, 0x0039389A, 0x00000002, 0x00393097, - 0x00396497, 0x00000002, 0x0039309A, 0x0039649A, 0x00000002, 0x00393097, - 0x00397297, 0x00000002, 0x0039309A, 0x0039729A, 0x00000002, 0x00393097, - 0x00397497, 0x00000002, 0x00393099, 0x0039A499, 0x00000002, 0x00393099, - 0x0039A699, 0x00000002, 0x00393097, 0x003A4E97, 0x00000002, 0x00393098, - 0x003A4E98, 0x00000002, 0x00393099, 0x003A4E99, 0x00000002, 0x0039309A, - 0x003A4E9A, 0x00000002, 0x00393099, 0x003A5699, - // Block 86, offset 0x1580 - 0x00000002, 0x00393097, 0x003A6897, 0x00000002, 0x00393098, 0x003A6898, - 0x00000002, 0x00393099, 0x003A7299, 0x00000002, 0x0039309A, 0x003A729A, - 0x00000002, 0x00393099, 0x003A7499, 0x00000002, 0x0039309A, 0x003A749A, - 0x00000002, 0x00393099, 0x003A7A99, 0x00000002, 0x0039309A, 0x003A7A9A, - 0x00000002, 0x00393099, 0x003A7C99, 0x00000002, 0x0039309A, 0x003A7C9A, - 0x00000002, 0x00393099, 0x003A7E99, 0x00000002, 0x0039309A, 0x003A7E9A, - 0x00000002, 0x00393097, 0x003A8E97, 0x00000002, 0x00393099, 0x003A8E99, - 0x00000002, 0x00393099, 0x003A8E99, 0x00000002, 0x0039309A, 0x003A8E9A, - 0x00000002, 0x0039309A, 0x003A8E9A, 0x00000002, 0x00393099, 0x003A9099, - 0x00000002, 0x0039309A, 0x003A909A, 0x00000002, 0x00393097, 0x003A9897, - 0x00000002, 0x00393099, 0x003A9899, 0x00000002, - // Block 87, offset 0x15c0 - 0x0039309A, 0x003A989A, 0x00000004, 0x0039389A, 0x003A1A9A, 0x00393C9A, - 0x0039A49A, 0x00000004, 0x0039389A, 0x003A409A, 0x003A409A, 0x003A689A, - 0x00000003, 0x00393C99, 0x00397299, 0x003A9099, 0x00000003, 0x00393C99, - 0x00397499, 0x003A9099, 0x00000003, 0x00395697, 0x00396497, 0x003A4E97, - 0x00000003, 0x00395699, 0x00396499, 0x003A8E99, 0x00000003, 0x00395699, - 0x00396499, 0x003A9099, 0x00000003, 0x00395697, 0x00397297, 0x00396497, - 0x00000003, 0x00395699, 0x00397299, 0x00396499, 0x00000003, 0x00395697, - 0x00397297, 0x003A4E97, 0x00000003, 0x00395697, 0x00397497, 0x003A4E97, - 0x00000003, 0x00395699, 0x00397499, 0x003A8E99, 0x00000003, 0x00395699, - 0x00397499, 0x003A9099, 0x00000003, 0x00395697, 0x003A4E97, 0x00396497, - 0x00000003, 0x00395697, 0x003A4E97, 0x00397297, - // Block 88, offset 0x1600 - 0x00000003, 0x00395697, 0x003A4E97, 0x00397497, 0x00000003, 0x00395699, - 0x003A4E99, 0x003A8E99, 0x00000003, 0x00395699, 0x003A4E99, 0x003A9099, - 0x00000003, 0x00396499, 0x00397299, 0x003A8E99, 0x00000003, 0x00396499, - 0x00397299, 0x003A9099, 0x00000008, 0x0039649A, 0x003A409A, 0x0002129A, - 0x0039649A, 0x003A409A, 0x0039389A, 0x003A409A, 0x003A689A, 0x00000003, - 0x00396497, 0x003A4E97, 0x00397297, 0x00000003, 0x00396499, 0x003A4E99, - 0x00397299, 0x00000003, 0x00396499, 0x003A4E99, 0x003A8E99, 0x00000003, - 0x00396499, 0x003A4E99, 0x003A9099, 0x00000003, 0x00397299, 0x00396499, - 0x003A9099, 0x00000003, 0x00397299, 0x003A4E99, 0x003A8E99, 0x00000003, - 0x00397299, 0x003A4E99, 0x003A9099, 0x00000004, 0x0039A49A, 0x0039C69A, - 0x003A749A, 0x003A409A, 0x00000003, 0x0039C697, - // Block 89, offset 0x1640 - 0x00396497, 0x00397297, 0x00000003, 0x0039C699, 0x00396499, 0x003A8E99, - 0x00000003, 0x0039C697, 0x00397297, 0x00396497, 0x00000003, 0x0039C699, - 0x00397499, 0x003A8E99, 0x00000003, 0x0039C699, 0x00397499, 0x003A9099, - 0x00000003, 0x0039C697, 0x003A4E97, 0x00396497, 0x00000003, 0x0039C697, - 0x003A4E97, 0x00397297, 0x00000003, 0x0039C699, 0x003A4E99, 0x00397299, - 0x00000003, 0x0039C697, 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039C699, - 0x003A4E99, 0x003A4E99, 0x00000003, 0x0039C899, 0x00396499, 0x003A9099, - 0x00000003, 0x0039C897, 0x00397297, 0x003A4E97, 0x00000003, 0x0039C899, - 0x00397299, 0x003A4E99, 0x00000003, 0x0039C899, 0x00397299, 0x003A9099, - 0x00000003, 0x0039C897, 0x003A4E97, 0x00397497, 0x00000003, 0x0039C899, - 0x003A4E99, 0x00397499, 0x00000003, 0x0039C897, - // Block 90, offset 0x1680 - 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039C899, 0x003A4E99, 0x003A4E99, - 0x00000003, 0x0039DC97, 0x00397297, 0x00397297, 0x00000003, 0x0039DC99, - 0x00397299, 0x00397299, 0x00000003, 0x0039DC99, 0x00397299, 0x003A9099, - 0x00000004, 0x0039DC9A, 0x003A409A, 0x0039EE9A, 0x003A4E9A, 0x00000003, - 0x0039DC9A, 0x003A409A, 0x003A8E9A, 0x00000012, 0x0039DC9A, 0x003A409A, - 0x003A8E9A, 0x0002129A, 0x0039389A, 0x003A409A, 0x003A409A, 0x003A689A, - 0x0002129A, 0x0039EE9A, 0x003A409A, 0x003A909A, 0x003A689A, 0x0002129A, - 0x003A749A, 0x0039C69A, 0x003A409A, 0x003A4E9A, 0x00000003, 0x0039DC9A, - 0x003A409A, 0x003AAA9A, 0x00000003, 0x0039DC97, 0x003A4E97, 0x003A4E97, - 0x00000003, 0x0039DC99, 0x003A4E99, 0x003A4E99, 0x00000003, 0x0039DE99, - 0x00397299, 0x003A8E99, 0x00000003, 0x0039DE99, - // Block 91, offset 0x16c0 - 0x00397299, 0x003A9099, 0x00000003, 0x0039DE97, 0x00397497, 0x003A4E97, - 0x00000003, 0x0039DE99, 0x00397499, 0x003A4E99, 0x00000003, 0x0039E697, - 0x003A4E97, 0x00397297, 0x00000003, 0x0039E699, 0x003A4E99, 0x00397299, - 0x00000003, 0x0039E697, 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039E699, - 0x003A4E99, 0x003A9099, 0x00000003, 0x0039EE97, 0x00396497, 0x003A4E97, - 0x00000003, 0x0039EE99, 0x00396499, 0x003A4E99, 0x00000004, 0x0039EE9A, - 0x003A409A, 0x003A909A, 0x003A689A, 0x00000003, 0x0039EE97, 0x003A4E97, - 0x003A4E97, 0x00000003, 0x0039EE99, 0x003A4E99, 0x003A4E99, 0x00000003, - 0x0039EE99, 0x003A4E99, 0x003A8E99, 0x00000003, 0x0039EE99, 0x003A4E99, - 0x003A9099, 0x00000003, 0x0039F099, 0x003A4E99, 0x003A4E99, 0x00000003, - 0x0039F099, 0x003A4E99, 0x003A8E99, 0x00000003, - // Block 92, offset 0x1700 - 0x0039F099, 0x003A4E99, 0x003A9099, 0x00000003, 0x0039FC97, 0x00397497, - 0x003A4E97, 0x00000003, 0x0039FC99, 0x00397499, 0x003A4E99, 0x00000003, - 0x0039FC99, 0x003A4E99, 0x003A9099, 0x00000003, 0x003A129A, 0x003A409A, - 0x003AAA9A, 0x00000003, 0x003A1297, 0x003A4E97, 0x00397297, 0x00000003, - 0x003A1299, 0x003A4E99, 0x00397299, 0x00000003, 0x003A1299, 0x003A4E99, - 0x003A4E99, 0x00000003, 0x003A1299, 0x003A4E99, 0x003A9099, 0x00000003, - 0x003A1A97, 0x003A4E97, 0x003A4E97, 0x00000003, 0x003A1A99, 0x003A4E99, - 0x003A4E99, 0x00000003, 0x003A1A99, 0x003A4E99, 0x003A9099, 0x00000002, - 0x003A4099, 0x00391E99, 0x00000002, 0x003A409A, 0x00391E9A, 0x00000002, - 0x003A4099, 0x00392099, 0x00000002, 0x003A409A, 0x0039209A, 0x00000002, - 0x003A4099, 0x00392899, 0x00000002, 0x003A409A, - // Block 93, offset 0x1740 - 0x0039289A, 0x00000003, 0x003A4097, 0x00396497, 0x00396497, 0x00000003, - 0x003A4099, 0x00396499, 0x00396499, 0x00000003, 0x003A4097, 0x00396497, - 0x003A4E97, 0x00000003, 0x003A4099, 0x00396499, 0x003A4E99, 0x00000003, - 0x003A4099, 0x00396499, 0x003A9099, 0x00000003, 0x003A4097, 0x00397297, - 0x003A4E97, 0x00000003, 0x003A4099, 0x00397299, 0x003A4E99, 0x00000003, - 0x003A4099, 0x00397299, 0x003A8E99, 0x00000003, 0x003A4099, 0x00397299, - 0x003A9099, 0x00000003, 0x003A4097, 0x00397497, 0x003A4E97, 0x00000003, - 0x003A4099, 0x00397499, 0x003A4E99, 0x00000003, 0x003A4097, 0x003A4E97, - 0x00397297, 0x00000003, 0x003A4099, 0x003A4E99, 0x00397299, 0x00000003, - 0x003A4099, 0x003A4E99, 0x003A9099, 0x00000002, 0x003A4E84, 0xA0013A04, - 0x00000003, 0x003A4E97, 0x00396497, 0x00397297, - // Block 94, offset 0x1780 - 0x00000003, 0x003A4E97, 0x00396497, 0x00397497, 0x00000003, 0x003A4E97, - 0x00396497, 0x003A4E97, 0x00000003, 0x003A4E99, 0x00396499, 0x003A9099, - 0x00000003, 0x003A4E97, 0x00397297, 0x00396497, 0x00000003, 0x003A4E97, - 0x00397297, 0x003A4E97, 0x00000004, 0x003A4E9A, 0x0039729A, 0x003A4E9A, - 0x0039889A, 0x00000003, 0x003A4E99, 0x00397299, 0x003A9099, 0x00000003, - 0x003A4E97, 0x00397497, 0x00396497, 0x00000003, 0x003A4E97, 0x00397497, - 0x003A4E97, 0x00000003, 0x003A4E99, 0x00397499, 0x003A9099, 0x00000003, - 0x003A4E99, 0x003A4E99, 0x003A9099, 0x00000003, 0x003A5697, 0x00396497, - 0x00397297, 0x00000003, 0x003A5699, 0x00396499, 0x00397299, 0x00000003, - 0x003A5697, 0x00396497, 0x003A4E97, 0x00000003, 0x003A5699, 0x00396499, - 0x003A4E99, 0x00000003, 0x003A5699, 0x00396499, - // Block 95, offset 0x17c0 - 0x003A8E99, 0x00000003, 0x003A5699, 0x00396499, 0x003A9099, 0x00000003, - 0x003A5697, 0x00397297, 0x003A4E97, 0x00000003, 0x003A5699, 0x00397299, - 0x003A8E99, 0x00000003, 0x003A5699, 0x00397299, 0x003A9099, 0x00000003, - 0x003A5699, 0x003A4E99, 0x003A8E99, 0x00000003, 0x003A5699, 0x003A4E99, - 0x003A9099, 0x00000003, 0x003A6897, 0x003A4E97, 0x00396497, 0x00000003, - 0x003A6897, 0x003A4E97, 0x003A4E97, 0x00000002, 0x403A6C20, 0xAE60BE02, - 0x00000002, 0x403A7220, 0xAE60BE02, 0x00000004, 0x003A749A, 0x0039C69A, - 0x003A409A, 0x003A4E9A, 0x00000003, 0x003A9099, 0x00396499, 0x003A9099, - 0x00000003, 0x003A9099, 0x00397299, 0x003A9099, 0x00000003, 0x003A9097, - 0x003A4E97, 0x003A4E97, 0x00000003, 0x003A9099, 0x003A4E99, 0x003A4E99, - 0x00000003, 0x003A9099, 0x003A4E99, 0x003A9099, - // Block 96, offset 0x1800 - 0x00000002, 0x403AAA20, 0xAE60BE02, 0x00000002, 0x003AB284, 0xA0013C04, - 0x00000002, 0x003AB484, 0xA0013A04, 0x00000002, 0x003AB484, 0xA0013C04, - 0x00000002, 0x003AB884, 0xA0013C04, 0x00000002, 0x003AC484, 0xA0013A04, - 0x00000002, 0x003AD884, 0xA0013A04, 0x00000002, 0x003B9484, 0xA0013904, - 0x00000002, 0x003B9684, 0xA0013904, 0x00000002, 0x003B9A84, 0xA0013904, - 0x00000002, 0x403FEC20, 0xA070F102, 0x00000002, 0x403FEE20, 0xA070F102, - 0x00000002, 0x403FF020, 0xA070F102, 0x00000002, 0x403FFC20, 0xA070F102, - 0x00000002, 0x40400A20, 0xA070F102, 0x00000002, 0x40400E20, 0xA070F102, - 0x00000002, 0x40401A20, 0xA070F102, 0x00000002, 0x40401E20, 0xA070F102, - 0x00000002, 0x40402820, 0xA070F102, 0x00000002, 0x40402C20, 0xA070F102, - 0x00000002, 0x40403020, 0xA070F102, 0x00000002, - // Block 97, offset 0x1840 - 0x4040B020, 0xA070F102, 0x00000002, 0x4040B220, 0xA070F102, 0x00000002, - 0x0040B684, 0x0040F884, 0x00000002, 0x4040CA20, 0xA070F102, 0x00000002, - 0x40411620, 0xA070F102, 0x00000002, 0x40411E20, 0xA070F102, 0x00000002, - 0x40412020, 0xA070F102, 0x00000002, 0x40412A20, 0xA070F102, 0x00000002, - 0x40414620, 0xA070F102, 0x00000002, 0x40415420, 0xA070F102, 0x00000002, - 0x40422A20, 0xA070F102, 0x00000002, 0x40422C20, 0xA070F102, 0x00000002, - 0x00442284, 0x00449084, 0x00000002, 0x00443E84, 0x00449084, 0x00000002, - 0x00444884, 0x00449084, 0x00000002, 0x00445884, 0x00449084, 0x00000002, - 0x00445884, 0x00449084, 0x00000002, 0x00445A84, 0x00449084, 0x00000002, - 0x00446684, 0x00449084, 0x00000002, 0x4046AA20, 0xA070F102, 0x00000002, - 0x4046AC20, 0xA070F102, 0x00000002, 0x4046BE20, - // Block 98, offset 0x1880 - 0xA070F102, 0x00000002, 0x40491020, 0x40498420, 0x00000002, 0x40491020, - 0x40498620, 0x00000002, 0x40491020, 0x40498820, 0x00000002, 0x40491020, - 0x40498A20, 0x00000002, 0x40491020, 0x40498C20, 0x00000002, 0x40491220, - 0x40498420, 0x00000002, 0x40491220, 0x40498620, 0x00000002, 0x40491220, - 0x40498820, 0x00000002, 0x40491220, 0x40498A20, 0x00000002, 0x40491220, - 0x40498C20, 0x00000002, 0x40491420, 0x40498420, 0x00000002, 0x40491420, - 0x40498620, 0x00000002, 0x40491420, 0x40498820, 0x00000002, 0x40491420, - 0x40498A20, 0x00000002, 0x40491420, 0x40498C20, 0x00000002, 0x40491620, - 0x40498420, 0x00000002, 0x40491620, 0x40498620, 0x00000002, 0x40491620, - 0x40498820, 0x00000002, 0x40491620, 0x40498A20, 0x00000002, 0x40491620, - 0x40498C20, 0x00000002, 0x40491820, 0x40498420, - // Block 99, offset 0x18c0 - 0x00000002, 0x40491820, 0x40498620, 0x00000002, 0x40491820, 0x40498820, - 0x00000002, 0x40491820, 0x40498A20, 0x00000002, 0x40491820, 0x40498C20, - 0x00000002, 0x40491A20, 0x40498420, 0x00000002, 0x40491A20, 0x40498620, - 0x00000002, 0x40491A20, 0x40498820, 0x00000002, 0x40491A20, 0x40498A20, - 0x00000002, 0x40491A20, 0x40498C20, 0x00000002, 0x40491C20, 0x40498420, - 0x00000002, 0x40491C20, 0x40498620, 0x00000002, 0x40491C20, 0x40498820, - 0x00000002, 0x40491C20, 0x40498A20, 0x00000002, 0x40491C20, 0x40498C20, - 0x00000002, 0x40491E20, 0x40498420, 0x00000002, 0x40491E20, 0x40498620, - 0x00000002, 0x40491E20, 0x40498820, 0x00000002, 0x40491E20, 0x40498A20, - 0x00000002, 0x40491E20, 0x40498C20, 0x00000002, 0x40492020, 0x40498420, - 0x00000002, 0x40492020, 0x40498620, 0x00000002, - // Block 100, offset 0x1900 - 0x40492020, 0x40498820, 0x00000002, 0x40492020, 0x40498A20, 0x00000002, - 0x40492020, 0x40498C20, 0x00000002, 0x40492220, 0x40498420, 0x00000002, - 0x40492220, 0x40498620, 0x00000002, 0x40492220, 0x40498820, 0x00000002, - 0x40492220, 0x40498A20, 0x00000002, 0x40492220, 0x40498C20, 0x00000002, - 0x40492420, 0x40498420, 0x00000002, 0x40492420, 0x40498620, 0x00000002, - 0x40492420, 0x40498820, 0x00000002, 0x40492420, 0x40498A20, 0x00000002, - 0x40492420, 0x40498C20, 0x00000002, 0x40492620, 0x40498420, 0x00000002, - 0x40492620, 0x40498620, 0x00000002, 0x40492620, 0x40498820, 0x00000002, - 0x40492620, 0x40498A20, 0x00000002, 0x40492620, 0x40498C20, 0x00000002, - 0x40492820, 0x40498420, 0x00000002, 0x40492820, 0x40498620, 0x00000002, - 0x40492820, 0x40498820, 0x00000002, 0x40492820, - // Block 101, offset 0x1940 - 0x40498A20, 0x00000002, 0x40492820, 0x40498C20, 0x00000002, 0x40492A20, - 0x40498420, 0x00000002, 0x40492A20, 0x40498620, 0x00000002, 0x40492A20, - 0x40498820, 0x00000002, 0x40492A20, 0x40498A20, 0x00000002, 0x40492A20, - 0x40498C20, 0x00000002, 0x40492C20, 0x40498420, 0x00000002, 0x40492C20, - 0x40498620, 0x00000002, 0x40492C20, 0x40498820, 0x00000002, 0x40492C20, - 0x40498A20, 0x00000002, 0x40492C20, 0x40498C20, 0x00000002, 0x40492E20, - 0x40498420, 0x00000002, 0x40492E20, 0x40498620, 0x00000002, 0x40492E20, - 0x40498820, 0x00000002, 0x40492E20, 0x40498A20, 0x00000002, 0x40492E20, - 0x40498C20, 0x00000002, 0x40493020, 0x40498420, 0x00000002, 0x40493020, - 0x40498620, 0x00000002, 0x40493020, 0x40498820, 0x00000002, 0x40493020, - 0x40498A20, 0x00000002, 0x40493020, 0x40498C20, - // Block 102, offset 0x1980 - 0x00000002, 0x40493220, 0x40498420, 0x00000002, 0x40493220, 0x40498620, - 0x00000002, 0x40493220, 0x40498820, 0x00000002, 0x40493220, 0x40498A20, - 0x00000002, 0x40493220, 0x40498C20, 0x00000002, 0x40493420, 0x40498420, - 0x00000002, 0x40493420, 0x40498620, 0x00000002, 0x40493420, 0x40498820, - 0x00000002, 0x40493420, 0x40498A20, 0x00000002, 0x40493420, 0x40498C20, - 0x00000002, 0x40493620, 0x40498420, 0x00000002, 0x40493620, 0x40498620, - 0x00000002, 0x40493620, 0x40498820, 0x00000002, 0x40493620, 0x40498A20, - 0x00000002, 0x40493620, 0x40498C20, 0x00000002, 0x40493820, 0x40498420, - 0x00000002, 0x40493820, 0x40498620, 0x00000002, 0x40493820, 0x40498820, - 0x00000002, 0x40493820, 0x40498A20, 0x00000002, 0x40493820, 0x40498C20, - 0x00000002, 0x40493A20, 0x40498420, 0x00000002, - // Block 103, offset 0x19c0 - 0x40493A20, 0x40498620, 0x00000002, 0x40493A20, 0x40498820, 0x00000002, - 0x40493A20, 0x40498A20, 0x00000002, 0x40493A20, 0x40498C20, 0x00000002, - 0x40493C20, 0x40498420, 0x00000002, 0x40493C20, 0x40498620, 0x00000002, - 0x40493C20, 0x40498820, 0x00000002, 0x40493C20, 0x40498A20, 0x00000002, - 0x40493C20, 0x40498C20, 0x00000002, 0x40493E20, 0x40498420, 0x00000002, - 0x40493E20, 0x40498620, 0x00000002, 0x40493E20, 0x40498820, 0x00000002, - 0x40493E20, 0x40498A20, 0x00000002, 0x40493E20, 0x40498C20, 0x00000002, - 0x40494020, 0x40498420, 0x00000002, 0x40494020, 0x40498620, 0x00000002, - 0x40494020, 0x40498820, 0x00000002, 0x40494020, 0x40498A20, 0x00000002, - 0x40494020, 0x40498C20, 0x00000002, 0x40494220, 0x40498420, 0x00000002, - 0x40494220, 0x40498620, 0x00000002, 0x40494220, - // Block 104, offset 0x1a00 - 0x40498820, 0x00000002, 0x40494220, 0x40498A20, 0x00000002, 0x40494220, - 0x40498C20, 0x00000002, 0x40494420, 0x40498420, 0x00000002, 0x40494420, - 0x40498620, 0x00000002, 0x40494420, 0x40498820, 0x00000002, 0x40494420, - 0x40498A20, 0x00000002, 0x40494420, 0x40498C20, 0x00000002, 0x40494620, - 0x40498420, 0x00000002, 0x40494620, 0x40498620, 0x00000002, 0x40494620, - 0x40498820, 0x00000002, 0x40494620, 0x40498A20, 0x00000002, 0x40494620, - 0x40498C20, 0x00000002, 0x40494820, 0x40498420, 0x00000002, 0x40494820, - 0x40498620, 0x00000002, 0x40494820, 0x40498820, 0x00000002, 0x40494820, - 0x40498A20, 0x00000002, 0x40494820, 0x40498C20, 0x00000002, 0x40494A20, - 0x40498420, 0x00000002, 0x40494A20, 0x40498620, 0x00000002, 0x40494A20, - 0x40498820, 0x00000002, 0x40494A20, 0x40498A20, - // Block 105, offset 0x1a40 - 0x00000002, 0x40494A20, 0x40498C20, 0x00000002, 0x40494C20, 0x40498420, - 0x00000002, 0x40494C20, 0x40498620, 0x00000002, 0x40494C20, 0x40498820, - 0x00000002, 0x40494C20, 0x40498A20, 0x00000002, 0x40494C20, 0x40498C20, - 0x00000002, 0x40494E20, 0x40498420, 0x00000002, 0x40494E20, 0x40498620, - 0x00000002, 0x40494E20, 0x40498820, 0x00000002, 0x40494E20, 0x40498A20, - 0x00000002, 0x40494E20, 0x40498C20, 0x00000002, 0x40495020, 0x40498420, - 0x00000002, 0x40495020, 0x40498620, 0x00000002, 0x40495020, 0x40498820, - 0x00000002, 0x40495020, 0x40498A20, 0x00000002, 0x40495020, 0x40498C20, - 0x00000002, 0x40495220, 0x40498420, 0x00000002, 0x40495220, 0x40498620, - 0x00000002, 0x40495220, 0x40498820, 0x00000002, 0x40495220, 0x40498A20, - 0x00000002, 0x40495220, 0x40498C20, 0x00000002, - // Block 106, offset 0x1a80 - 0x40495420, 0x40498420, 0x00000002, 0x40495420, 0x40498620, 0x00000002, - 0x40495420, 0x40498820, 0x00000002, 0x40495420, 0x40498A20, 0x00000002, - 0x40495420, 0x40498C20, 0x00000002, 0x40495620, 0x40498420, 0x00000002, - 0x40495620, 0x40498620, 0x00000002, 0x40495620, 0x40498820, 0x00000002, - 0x40495620, 0x40498A20, 0x00000002, 0x40495620, 0x40498C20, 0x00000002, - 0x40495820, 0x40498420, 0x00000002, 0x40495820, 0x40498620, 0x00000002, - 0x40495820, 0x40498820, 0x00000002, 0x40495820, 0x40498A20, 0x00000002, - 0x40495820, 0x40498C20, 0x00000002, 0x40495A20, 0x40498420, 0x00000002, - 0x40495A20, 0x40498620, 0x00000002, 0x40495A20, 0x40498820, 0x00000002, - 0x40495A20, 0x40498A20, 0x00000002, 0x40495A20, 0x40498C20, 0x00000002, - 0x40495C20, 0x40498420, 0x00000002, 0x40495C20, - // Block 107, offset 0x1ac0 - 0x40498620, 0x00000002, 0x40495C20, 0x40498820, 0x00000002, 0x40495C20, - 0x40498A20, 0x00000002, 0x40495C20, 0x40498C20, 0x00000002, 0x40495E20, - 0x40498420, 0x00000002, 0x40495E20, 0x40498620, 0x00000002, 0x40495E20, - 0x40498820, 0x00000002, 0x40495E20, 0x40498A20, 0x00000002, 0x40495E20, - 0x40498C20, 0x00000002, 0x40496020, 0x40498420, 0x00000002, 0x40496020, - 0x40498620, 0x00000002, 0x40496020, 0x40498820, 0x00000002, 0x40496020, - 0x40498A20, 0x00000002, 0x40496020, 0x40498C20, 0x00000002, 0x40496220, - 0x40498420, 0x00000002, 0x40496220, 0x40498620, 0x00000002, 0x40496220, - 0x40498820, 0x00000002, 0x40496220, 0x40498A20, 0x00000002, 0x40496220, - 0x40498C20, 0x00000002, 0x40496420, 0x40498420, 0x00000002, 0x40496420, - 0x40498620, 0x00000002, 0x40496420, 0x40498820, - // Block 108, offset 0x1b00 - 0x00000002, 0x40496420, 0x40498A20, 0x00000002, 0x40496420, 0x40498C20, - 0x00000002, 0x40496620, 0x40498420, 0x00000002, 0x40496620, 0x40498620, - 0x00000002, 0x40496620, 0x40498820, 0x00000002, 0x40496620, 0x40498A20, - 0x00000002, 0x40496620, 0x40498C20, 0x00000002, 0x40496820, 0x40498420, - 0x00000002, 0x40496820, 0x40498620, 0x00000002, 0x40496820, 0x40498820, - 0x00000002, 0x40496820, 0x40498A20, 0x00000002, 0x40496820, 0x40498C20, - 0x00000002, 0x40496A20, 0x40498420, 0x00000002, 0x40496A20, 0x40498620, - 0x00000002, 0x40496A20, 0x40498820, 0x00000002, 0x40496A20, 0x40498A20, - 0x00000002, 0x40496A20, 0x40498C20, 0x00000002, 0x40499020, 0x4049E620, - 0x00000002, 0x40499020, 0x4049E820, 0x00000002, 0x40499020, 0x4049EA20, - 0x00000002, 0x40499020, 0x4049EC20, 0x00000002, - // Block 109, offset 0x1b40 - 0x40499020, 0x4049EE20, 0x00000002, 0x40499220, 0x4049E620, 0x00000002, - 0x40499220, 0x4049E820, 0x00000002, 0x40499220, 0x4049EA20, 0x00000002, - 0x40499220, 0x4049EC20, 0x00000002, 0x40499220, 0x4049EE20, 0x00000002, - 0x40499420, 0x4049E620, 0x00000002, 0x40499420, 0x4049E820, 0x00000002, - 0x40499420, 0x4049EA20, 0x00000002, 0x40499420, 0x4049EC20, 0x00000002, - 0x40499420, 0x4049EE20, 0x00000002, 0x40499620, 0x4049E620, 0x00000002, - 0x40499620, 0x4049E820, 0x00000002, 0x40499620, 0x4049EA20, 0x00000002, - 0x40499620, 0x4049EC20, 0x00000002, 0x40499620, 0x4049EE20, 0x00000002, - 0x40499820, 0x4049E620, 0x00000002, 0x40499820, 0x4049E820, 0x00000002, - 0x40499820, 0x4049EA20, 0x00000002, 0x40499820, 0x4049EC20, 0x00000002, - 0x40499820, 0x4049EE20, 0x00000002, 0x40499A20, - // Block 110, offset 0x1b80 - 0x4049E620, 0x00000002, 0x40499A20, 0x4049E820, 0x00000002, 0x40499A20, - 0x4049EA20, 0x00000002, 0x40499A20, 0x4049EC20, 0x00000002, 0x40499A20, - 0x4049EE20, 0x00000002, 0x40499C20, 0x4049E620, 0x00000002, 0x40499C20, - 0x4049E820, 0x00000002, 0x40499C20, 0x4049EA20, 0x00000002, 0x40499C20, - 0x4049EC20, 0x00000002, 0x40499C20, 0x4049EE20, 0x00000002, 0x40499E20, - 0x4049E620, 0x00000002, 0x40499E20, 0x4049E820, 0x00000002, 0x40499E20, - 0x4049EA20, 0x00000002, 0x40499E20, 0x4049EC20, 0x00000002, 0x40499E20, - 0x4049EE20, 0x00000002, 0x4049A020, 0x4049E620, 0x00000002, 0x4049A020, - 0x4049E820, 0x00000002, 0x4049A020, 0x4049EA20, 0x00000002, 0x4049A020, - 0x4049EC20, 0x00000002, 0x4049A020, 0x4049EE20, 0x00000002, 0x4049A220, - 0x4049E620, 0x00000002, 0x4049A220, 0x4049E820, - // Block 111, offset 0x1bc0 - 0x00000002, 0x4049A220, 0x4049EA20, 0x00000002, 0x4049A220, 0x4049EC20, - 0x00000002, 0x4049A220, 0x4049EE20, 0x00000002, 0x4049A420, 0x4049E620, - 0x00000002, 0x4049A420, 0x4049E820, 0x00000002, 0x4049A420, 0x4049EA20, - 0x00000002, 0x4049A420, 0x4049EC20, 0x00000002, 0x4049A420, 0x4049EE20, - 0x00000002, 0x4049A620, 0x4049E620, 0x00000002, 0x4049A620, 0x4049E820, - 0x00000002, 0x4049A620, 0x4049EA20, 0x00000002, 0x4049A620, 0x4049EC20, - 0x00000002, 0x4049A620, 0x4049EE20, 0x00000002, 0x4049A820, 0x4049E620, - 0x00000002, 0x4049A820, 0x4049E820, 0x00000002, 0x4049A820, 0x4049EA20, - 0x00000002, 0x4049A820, 0x4049EC20, 0x00000002, 0x4049A820, 0x4049EE20, - 0x00000002, 0x4049AA20, 0x4049E620, 0x00000002, 0x4049AA20, 0x4049E820, - 0x00000002, 0x4049AA20, 0x4049EA20, 0x00000002, - // Block 112, offset 0x1c00 - 0x4049AA20, 0x4049EC20, 0x00000002, 0x4049AA20, 0x4049EE20, 0x00000002, - 0x4049AC20, 0x4049E620, 0x00000002, 0x4049AC20, 0x4049E820, 0x00000002, - 0x4049AC20, 0x4049EA20, 0x00000002, 0x4049AC20, 0x4049EC20, 0x00000002, - 0x4049AC20, 0x4049EE20, 0x00000002, 0x4049AE20, 0x4049E620, 0x00000002, - 0x4049AE20, 0x4049E820, 0x00000002, 0x4049AE20, 0x4049EA20, 0x00000002, - 0x4049AE20, 0x4049EC20, 0x00000002, 0x4049AE20, 0x4049EE20, 0x00000002, - 0x4049B020, 0x4049E620, 0x00000002, 0x4049B020, 0x4049E820, 0x00000002, - 0x4049B020, 0x4049EA20, 0x00000002, 0x4049B020, 0x4049EC20, 0x00000002, - 0x4049B020, 0x4049EE20, 0x00000002, 0x4049B220, 0x4049E620, 0x00000002, - 0x4049B220, 0x4049E820, 0x00000002, 0x4049B220, 0x4049EA20, 0x00000002, - 0x4049B220, 0x4049EC20, 0x00000002, 0x4049B220, - // Block 113, offset 0x1c40 - 0x4049EE20, 0x00000002, 0x4049B420, 0x4049E620, 0x00000002, 0x4049B420, - 0x4049E820, 0x00000002, 0x4049B420, 0x4049EA20, 0x00000002, 0x4049B420, - 0x4049EC20, 0x00000002, 0x4049B420, 0x4049EE20, 0x00000002, 0x4049B620, - 0x4049E620, 0x00000002, 0x4049B620, 0x4049E820, 0x00000002, 0x4049B620, - 0x4049EA20, 0x00000002, 0x4049B620, 0x4049EC20, 0x00000002, 0x4049B620, - 0x4049EE20, 0x00000002, 0x4049B820, 0x4049E620, 0x00000002, 0x4049B820, - 0x4049E820, 0x00000002, 0x4049B820, 0x4049EA20, 0x00000002, 0x4049B820, - 0x4049EC20, 0x00000002, 0x4049B820, 0x4049EE20, 0x00000002, 0x4049BA20, - 0x4049E620, 0x00000002, 0x4049BA20, 0x4049E820, 0x00000002, 0x4049BA20, - 0x4049EA20, 0x00000002, 0x4049BA20, 0x4049EC20, 0x00000002, 0x4049BA20, - 0x4049EE20, 0x00000002, 0x4049BC20, 0x4049E620, - // Block 114, offset 0x1c80 - 0x00000002, 0x4049BC20, 0x4049E820, 0x00000002, 0x4049BC20, 0x4049EA20, - 0x00000002, 0x4049BC20, 0x4049EC20, 0x00000002, 0x4049BC20, 0x4049EE20, - 0x00000002, 0x4049BE20, 0x4049E620, 0x00000002, 0x4049BE20, 0x4049E820, - 0x00000002, 0x4049BE20, 0x4049EA20, 0x00000002, 0x4049BE20, 0x4049EC20, - 0x00000002, 0x4049BE20, 0x4049EE20, 0x00000002, 0x4049C020, 0x4049E620, - 0x00000002, 0x4049C020, 0x4049E820, 0x00000002, 0x4049C020, 0x4049EA20, - 0x00000002, 0x4049C020, 0x4049EC20, 0x00000002, 0x4049C020, 0x4049EE20, - 0x00000002, 0x4049C220, 0x4049E620, 0x00000002, 0x4049C220, 0x4049E820, - 0x00000002, 0x4049C220, 0x4049EA20, 0x00000002, 0x4049C220, 0x4049EC20, - 0x00000002, 0x4049C220, 0x4049EE20, 0x00000003, 0x0049C484, 0x0049AC84, - 0x4049E620, 0x00000003, 0x0049C484, 0x0049AC84, - // Block 115, offset 0x1cc0 - 0x4049E820, 0x00000003, 0x0049C484, 0x0049AC84, 0x4049EA20, 0x00000003, - 0x0049C484, 0x0049AC84, 0x4049EC20, 0x00000003, 0x0049C484, 0x0049AC84, - 0x4049EE20, 0x00000003, 0x0049C484, 0x0049BA84, 0x4049E620, 0x00000003, - 0x0049C484, 0x0049BA84, 0x4049E820, 0x00000003, 0x0049C484, 0x0049BA84, - 0x4049EA20, 0x00000003, 0x0049C484, 0x0049BA84, 0x4049EC20, 0x00000003, - 0x0049C484, 0x0049BA84, 0x4049EE20, 0x00000002, 0x4049C420, 0x4049E620, - 0x00000002, 0x4049C420, 0x4049E820, 0x00000002, 0x4049C420, 0x4049EA20, - 0x00000002, 0x4049C420, 0x4049EC20, 0x00000002, 0x4049C420, 0x4049EE20, - 0x00000002, 0x4049C620, 0x4049E620, 0x00000002, 0x4049C620, 0x4049E820, - 0x00000002, 0x4049C620, 0x4049EA20, 0x00000002, 0x4049C620, 0x4049EC20, - 0x00000002, 0x4049C620, 0x4049EE20, 0x00000002, - // Block 116, offset 0x1d00 - 0x4049C820, 0x4049E620, 0x00000002, 0x4049C820, 0x4049E820, 0x00000002, - 0x4049C820, 0x4049EA20, 0x00000002, 0x4049C820, 0x4049EC20, 0x00000002, - 0x4049C820, 0x4049EE20, 0x00000002, 0x4049F020, 0x404A5A20, 0x00000002, - 0x4049F020, 0x404A5C20, 0x00000002, 0x4049F020, 0x404A6220, 0x00000002, - 0x4049F020, 0x404A6620, 0x00000002, 0x4049F020, 0x404A6820, 0x00000002, - 0x4049F220, 0x404A5A20, 0x00000002, 0x4049F220, 0x404A5C20, 0x00000002, - 0x4049F220, 0x404A6220, 0x00000002, 0x4049F220, 0x404A6620, 0x00000002, - 0x4049F220, 0x404A6820, 0x00000002, 0x4049F420, 0x404A5A20, 0x00000002, - 0x4049F420, 0x404A5C20, 0x00000002, 0x4049F420, 0x404A6220, 0x00000002, - 0x4049F420, 0x404A6620, 0x00000002, 0x4049F420, 0x404A6820, 0x00000002, - 0x4049F620, 0x404A5A20, 0x00000002, 0x4049F620, - // Block 117, offset 0x1d40 - 0x404A5C20, 0x00000002, 0x4049F620, 0x404A6220, 0x00000002, 0x4049F620, - 0x404A6620, 0x00000002, 0x4049F620, 0x404A6820, 0x00000002, 0x4049F820, - 0x404A5A20, 0x00000002, 0x4049F820, 0x404A5C20, 0x00000002, 0x4049F820, - 0x404A6220, 0x00000002, 0x4049F820, 0x404A6620, 0x00000002, 0x4049F820, - 0x404A6820, 0x00000002, 0x4049FA20, 0x404A5A20, 0x00000002, 0x4049FA20, - 0x404A5C20, 0x00000002, 0x4049FA20, 0x404A6220, 0x00000002, 0x4049FA20, - 0x404A6620, 0x00000002, 0x4049FA20, 0x404A6820, 0x00000002, 0x4049FC20, - 0x404A5A20, 0x00000002, 0x4049FC20, 0x404A5C20, 0x00000002, 0x4049FC20, - 0x404A6220, 0x00000002, 0x4049FC20, 0x404A6620, 0x00000002, 0x4049FC20, - 0x404A6820, 0x00000002, 0x4049FE20, 0x404A5A20, 0x00000002, 0x4049FE20, - 0x404A5C20, 0x00000002, 0x4049FE20, 0x404A6220, - // Block 118, offset 0x1d80 - 0x00000002, 0x4049FE20, 0x404A6620, 0x00000002, 0x4049FE20, 0x404A6820, - 0x00000002, 0x404A0020, 0x404A5A20, 0x00000002, 0x404A0020, 0x404A5C20, - 0x00000002, 0x404A0020, 0x404A6220, 0x00000002, 0x404A0020, 0x404A6620, - 0x00000002, 0x404A0020, 0x404A6820, 0x00000002, 0x404A0220, 0x404A5A20, - 0x00000002, 0x404A0220, 0x404A5C20, 0x00000002, 0x404A0220, 0x404A6220, - 0x00000002, 0x404A0220, 0x404A6620, 0x00000002, 0x404A0220, 0x404A6820, - 0x00000002, 0x404A0420, 0x404A5A20, 0x00000002, 0x404A0420, 0x404A5C20, - 0x00000002, 0x404A0420, 0x404A6220, 0x00000002, 0x404A0420, 0x404A6620, - 0x00000002, 0x404A0420, 0x404A6820, 0x00000002, 0x404A0620, 0x404A5A20, - 0x00000002, 0x404A0620, 0x404A5C20, 0x00000002, 0x404A0620, 0x404A6220, - 0x00000002, 0x404A0620, 0x404A6620, 0x00000002, - // Block 119, offset 0x1dc0 - 0x404A0620, 0x404A6820, 0x00000002, 0x404A0820, 0x404A5A20, 0x00000002, - 0x404A0820, 0x404A5C20, 0x00000002, 0x404A0820, 0x404A6220, 0x00000002, - 0x404A0820, 0x404A6620, 0x00000002, 0x404A0820, 0x404A6820, 0x00000002, - 0x404A0A20, 0x404A5A20, 0x00000002, 0x404A0A20, 0x404A5C20, 0x00000002, - 0x404A0A20, 0x404A6220, 0x00000002, 0x404A0A20, 0x404A6620, 0x00000002, - 0x404A0A20, 0x404A6820, 0x00000002, 0x404A0C20, 0x404A5A20, 0x00000002, - 0x404A0C20, 0x404A5C20, 0x00000002, 0x404A0C20, 0x404A6220, 0x00000002, - 0x404A0C20, 0x404A6620, 0x00000002, 0x404A0C20, 0x404A6820, 0x00000002, - 0x404A0E20, 0x404A5A20, 0x00000002, 0x404A0E20, 0x404A5C20, 0x00000002, - 0x404A0E20, 0x404A6220, 0x00000002, 0x404A0E20, 0x404A6620, 0x00000002, - 0x404A0E20, 0x404A6820, 0x00000002, 0x404A1020, - // Block 120, offset 0x1e00 - 0x404A5A20, 0x00000002, 0x404A1020, 0x404A5C20, 0x00000002, 0x404A1020, - 0x404A6220, 0x00000002, 0x404A1020, 0x404A6620, 0x00000002, 0x404A1020, - 0x404A6820, 0x00000002, 0x404A1220, 0x404A5A20, 0x00000002, 0x404A1220, - 0x404A5C20, 0x00000002, 0x404A1220, 0x404A6220, 0x00000002, 0x404A1220, - 0x404A6620, 0x00000002, 0x404A1220, 0x404A6820, 0x00000002, 0x404A1420, - 0x404A5A20, 0x00000002, 0x404A1420, 0x404A5C20, 0x00000002, 0x404A1420, - 0x404A6220, 0x00000002, 0x404A1420, 0x404A6620, 0x00000002, 0x404A1420, - 0x404A6820, 0x00000002, 0x404A1620, 0x404A5A20, 0x00000002, 0x404A1620, - 0x404A5C20, 0x00000002, 0x404A1620, 0x404A6220, 0x00000002, 0x404A1620, - 0x404A6620, 0x00000002, 0x404A1620, 0x404A6820, 0x00000002, 0x404A1820, - 0x404A5A20, 0x00000002, 0x404A1820, 0x404A5C20, - // Block 121, offset 0x1e40 - 0x00000002, 0x404A1820, 0x404A6220, 0x00000002, 0x404A1820, 0x404A6620, - 0x00000002, 0x404A1820, 0x404A6820, 0x00000002, 0x404A1A20, 0x404A5A20, - 0x00000002, 0x404A1A20, 0x404A5C20, 0x00000002, 0x404A1A20, 0x404A6220, - 0x00000002, 0x404A1A20, 0x404A6620, 0x00000002, 0x404A1A20, 0x404A6820, - 0x00000002, 0x404A1C20, 0x404A5A20, 0x00000002, 0x404A1C20, 0x404A5C20, - 0x00000002, 0x404A1C20, 0x404A6220, 0x00000002, 0x404A1C20, 0x404A6620, - 0x00000002, 0x404A1C20, 0x404A6820, 0x00000002, 0x404A1E20, 0x404A5A20, - 0x00000002, 0x404A1E20, 0x404A5C20, 0x00000002, 0x404A1E20, 0x404A6220, - 0x00000002, 0x404A1E20, 0x404A6620, 0x00000002, 0x404A1E20, 0x404A6820, - 0x00000002, 0x404A2020, 0x404A5A20, 0x00000002, 0x404A2020, 0x404A5C20, - 0x00000002, 0x404A2020, 0x404A6220, 0x00000002, - // Block 122, offset 0x1e80 - 0x404A2020, 0x404A6620, 0x00000002, 0x404A2020, 0x404A6820, 0x00000002, - 0x404A2220, 0x404A5A20, 0x00000002, 0x404A2220, 0x404A5C20, 0x00000002, - 0x404A2220, 0x404A6220, 0x00000002, 0x404A2220, 0x404A6620, 0x00000002, - 0x404A2220, 0x404A6820, 0x00000002, 0x404A2420, 0x404A5A20, 0x00000002, - 0x404A2420, 0x404A5C20, 0x00000002, 0x404A2420, 0x404A6220, 0x00000002, - 0x404A2420, 0x404A6620, 0x00000002, 0x404A2420, 0x404A6820, 0x00000002, - 0x404A2620, 0x404A5A20, 0x00000002, 0x404A2620, 0x404A5C20, 0x00000002, - 0x404A2620, 0x404A6220, 0x00000002, 0x404A2620, 0x404A6620, 0x00000002, - 0x404A2620, 0x404A6820, 0x00000002, 0x404A2820, 0x404A5A20, 0x00000002, - 0x404A2820, 0x404A5C20, 0x00000002, 0x404A2820, 0x404A6220, 0x00000002, - 0x404A2820, 0x404A6620, 0x00000002, 0x404A2820, - // Block 123, offset 0x1ec0 - 0x404A6820, 0x00000002, 0x404A2A20, 0x404A5A20, 0x00000002, 0x404A2A20, - 0x404A5C20, 0x00000002, 0x404A2A20, 0x404A6220, 0x00000002, 0x404A2A20, - 0x404A6620, 0x00000002, 0x404A2A20, 0x404A6820, 0x00000002, 0x404A2C20, - 0x404A5A20, 0x00000002, 0x404A2C20, 0x404A5C20, 0x00000002, 0x404A2C20, - 0x404A6220, 0x00000002, 0x404A2C20, 0x404A6620, 0x00000002, 0x404A2C20, - 0x404A6820, 0x00000002, 0x404A2E20, 0x404A5A20, 0x00000002, 0x404A2E20, - 0x404A5C20, 0x00000002, 0x404A2E20, 0x404A6220, 0x00000002, 0x404A2E20, - 0x404A6620, 0x00000002, 0x404A2E20, 0x404A6820, 0x00000002, 0x404A3020, - 0x404A5A20, 0x00000002, 0x404A3020, 0x404A5C20, 0x00000002, 0x404A3020, - 0x404A6220, 0x00000002, 0x404A3020, 0x404A6620, 0x00000002, 0x404A3020, - 0x404A6820, 0x00000002, 0x404A3220, 0x404A5A20, - // Block 124, offset 0x1f00 - 0x00000002, 0x404A3220, 0x404A5C20, 0x00000002, 0x404A3220, 0x404A6220, - 0x00000002, 0x404A3220, 0x404A6620, 0x00000002, 0x404A3220, 0x404A6820, - 0x00000002, 0x404A3420, 0x404A5A20, 0x00000002, 0x404A3420, 0x404A5C20, - 0x00000002, 0x404A3420, 0x404A6220, 0x00000002, 0x404A3420, 0x404A6620, - 0x00000002, 0x404A3420, 0x404A6820, 0x00000002, 0x404A3620, 0x404A5A20, - 0x00000002, 0x404A3620, 0x404A5C20, 0x00000002, 0x404A3620, 0x404A6220, - 0x00000002, 0x404A3620, 0x404A6620, 0x00000002, 0x404A3620, 0x404A6820, - 0x00000002, 0x404A3820, 0x404A5A20, 0x00000002, 0x404A3820, 0x404A5C20, - 0x00000002, 0x404A3820, 0x404A6220, 0x00000002, 0x404A3820, 0x404A6620, - 0x00000002, 0x404A3820, 0x404A6820, 0x00000002, 0x404A3A20, 0x404A5A20, - 0x00000002, 0x404A3A20, 0x404A5C20, 0x00000002, - // Block 125, offset 0x1f40 - 0x404A3A20, 0x404A6220, 0x00000002, 0x404A3A20, 0x404A6620, 0x00000002, - 0x404A3A20, 0x404A6820, 0x00000002, 0x404A3C20, 0x404A5A20, 0x00000002, - 0x404A3C20, 0x404A5C20, 0x00000002, 0x404A3C20, 0x404A6220, 0x00000002, - 0x404A3C20, 0x404A6620, 0x00000002, 0x404A3C20, 0x404A6820, 0x00000002, - 0x404A3E20, 0x404A5A20, 0x00000002, 0x404A3E20, 0x404A5C20, 0x00000002, - 0x404A3E20, 0x404A6220, 0x00000002, 0x404A3E20, 0x404A6620, 0x00000002, - 0x404A3E20, 0x404A6820, 0x00000002, 0x404A4020, 0x404A5A20, 0x00000002, - 0x404A4020, 0x404A5C20, 0x00000002, 0x404A4020, 0x404A6220, 0x00000002, - 0x404A4020, 0x404A6620, 0x00000002, 0x404A4020, 0x404A6820, 0x00000002, - 0x404A4220, 0x404A5A20, 0x00000002, 0x404A4220, 0x404A5C20, 0x00000002, - 0x404A4220, 0x404A6220, 0x00000002, 0x404A4220, - // Block 126, offset 0x1f80 - 0x404A6620, 0x00000002, 0x404A4220, 0x404A6820, 0x00000002, 0x404A4420, - 0x404A5A20, 0x00000002, 0x404A4420, 0x404A5C20, 0x00000002, 0x404A4420, - 0x404A6220, 0x00000002, 0x404A4420, 0x404A6620, 0x00000002, 0x404A4420, - 0x404A6820, 0x00000002, 0x404A4620, 0x404A5A20, 0x00000002, 0x404A4620, - 0x404A5C20, 0x00000002, 0x404A4620, 0x404A6220, 0x00000002, 0x404A4620, - 0x404A6620, 0x00000002, 0x404A4620, 0x404A6820, 0x00000002, 0x404A4820, - 0x404A5A20, 0x00000002, 0x404A4820, 0x404A5C20, 0x00000002, 0x404A4820, - 0x404A6220, 0x00000002, 0x404A4820, 0x404A6620, 0x00000002, 0x404A4820, - 0x404A6820, 0x00000002, 0x404A4A20, 0x404A5A20, 0x00000002, 0x404A4A20, - 0x404A5C20, 0x00000002, 0x404A4A20, 0x404A6220, 0x00000002, 0x404A4A20, - 0x404A6620, 0x00000002, 0x404A4A20, 0x404A6820, - // Block 127, offset 0x1fc0 - 0x00000002, 0x404A4C20, 0x404A5A20, 0x00000002, 0x404A4C20, 0x404A5C20, - 0x00000002, 0x404A4C20, 0x404A6220, 0x00000002, 0x404A4C20, 0x404A6620, - 0x00000002, 0x404A4C20, 0x404A6820, 0x00000002, 0x404A4E20, 0x404A5A20, - 0x00000002, 0x404A4E20, 0x404A5C20, 0x00000002, 0x404A4E20, 0x404A6220, - 0x00000002, 0x404A4E20, 0x404A6620, 0x00000002, 0x404A4E20, 0x404A6820, - 0x00000002, 0x404A7620, 0x404AF820, 0x00000002, 0x404A7820, 0x404AF820, - 0x00000002, 0x404A8020, 0x404B0020, 0x00000002, 0x404A8220, 0x404B0020, - 0x00000002, 0x404AA020, 0x404B0020, 0x00000002, 0x404AA220, 0x404B0020, - 0x00000002, 0x404AB020, 0x404B0020, 0x00000002, 0x404AB220, 0x404B0020, - 0x00000002, 0x404AC020, 0x404B0020, 0x00000002, 0x404AC220, 0x404B0020, - 0x00000002, 0x404AD020, 0x404B0020, 0x00000002, - // Block 128, offset 0x2000 - 0x404AD220, 0x404B0020, 0x00000002, 0x004AD684, 0xA0013A04, 0x00000002, - 0x004AE684, 0xA0013A04, 0x00000002, 0x004AE884, 0xA0013A04, 0x00000002, - 0x004AEA84, 0xA0013A04, 0x00000002, 0x404AEA20, 0x8281258D, 0x00000002, - 0x404AEA20, 0x82812591, 0x00000002, 0x404AF020, 0x8281258D, 0x00000002, - 0x404AF020, 0x82812591, 0x00000003, 0x004B0284, 0x004B3084, 0xA000F304, - 0x00000003, 0x004EA684, 0x004F1484, 0x004EA684, 0x00000002, 0x0050AE84, - 0x0050DA84, 0x00000003, 0x0050AE84, 0x0050DA84, 0x0050F084, 0x00000003, - 0x00514E84, 0x00519A84, 0x00514E84, 0x00000002, 0x005ADA84, 0xA0013904, - 0x00000002, 0x005ADC84, 0xA0013904, 0x00000002, 0x005ADC84, 0xA0013A04, - 0x00000002, 0x005ADE84, 0xA0013904, 0x00000002, 0x005ADE84, 0x005ADE84, - 0x00000002, 0x005AE084, 0xA0013904, 0x00000002, - // Block 129, offset 0x2040 - 0x005AE084, 0xA0013A04, 0x00000002, 0x005AE084, 0xA0013C04, 0x00000002, - 0x005AE084, 0xA0013D04, 0x00000002, 0x005AE884, 0xA0013904, 0x00000002, - 0x005AE884, 0xA0013A04, 0x00000002, 0x005AE884, 0xA0013C04, 0x00000002, - 0x005AE884, 0xA0013D04, 0x00000002, 0x005AEC84, 0xA0013904, 0x00000002, - 0x005AEE84, 0xA0013904, 0x00000002, 0x005AEE84, 0xA0013A04, 0x00000002, - 0x005AEE84, 0xA0013C04, 0x00000002, 0x005AF084, 0xA0013904, 0x00000002, - 0x005AF084, 0xA0013A04, 0x00000002, 0x005AF284, 0xA0013904, 0x00000002, - 0x005AF484, 0xA0013904, 0x00000002, 0x005AF684, 0xA0013904, 0x00000002, - 0x005AF684, 0x005B0884, 0x00000002, 0x005AFA84, 0xA0013904, 0x00000002, - 0x005AFE84, 0xA0013904, 0x00000002, 0x005AFE84, 0xA0013A04, 0x00000002, - 0x005AFE84, 0xA0013C04, 0x00000002, 0x005AFE84, - // Block 130, offset 0x2080 - 0xA0013D04, 0x00000002, 0x005AFE84, 0xA0013E04, 0x00000002, 0x005B0084, - 0xA0013904, 0x00000002, 0x005B0084, 0xA0013A04, 0x00000002, 0x005B0284, - 0xA0013904, 0x00000002, 0x005B0284, 0xA0013A04, 0x00000002, 0x005B0684, - 0xA0013904, 0x00000002, 0x005B0684, 0xA0013A04, 0x00000004, 0x005B0684, - 0xA0013904, 0x005B0684, 0xA0013904, 0x00000002, 0x005B0884, 0xA0013904, - 0x00000002, 0x005B0A84, 0xA0013904, 0x00000002, 0x005B2484, 0xA0013904, - 0x00000002, 0x005B2484, 0xA0013A04, 0x00000002, 0x005B2684, 0xA0013904, - 0x00000002, 0x005B2A84, 0xA0013904, 0x00000002, 0x005B3084, 0xA0013904, - 0x00000002, 0x005B3284, 0xA0013904, 0x00000002, 0x005B3484, 0xA0013904, - 0x00000002, 0x005B3684, 0xA0013904, 0x00000002, 0x005B3884, 0xA0013904, - 0x00000002, 0x005B3A84, 0xA0013904, 0x00000002, - // Block 131, offset 0x20c0 - 0x005B3E84, 0xA0013904, 0x00000002, 0x005B4084, 0xA0013904, 0x00000002, - 0x005B4284, 0xA0013904, 0x00000002, 0x005B4484, 0xA0013904, 0x00000002, - 0x005B4684, 0xA0013904, 0x00000002, 0x005B4884, 0xA0013904, 0x00000002, - 0x005B5284, 0xA0013904, 0x00000002, 0x005B5484, 0xA0013904, 0x00000002, - 0x005B5684, 0xA0013904, 0x00000002, 0x005B5884, 0xA0013904, 0x00000002, - 0x005B5C84, 0xA0013904, 0x00000002, 0x005B6484, 0xA0013904, 0x00000002, - 0x005B6684, 0xA0013904, 0x00000002, 0x005B6884, 0xA0013904, 0x00000002, - 0x005B6A84, 0xA0013904, 0x00000002, 0x005B6C84, 0xA0013904, 0x00000002, - 0x005B7484, 0xA0013904, 0x00000002, 0x005B7684, 0xA0013904, 0x00000002, - 0x005B7884, 0xA0013904, 0x00000002, 0x005B7A84, 0xA0013904, 0x00000002, - 0x005B9884, 0x005D9684, 0x00000002, 0x005BBC84, - // Block 132, offset 0x2100 - 0x005D9684, 0x00000002, 0x005BE684, 0x005D9684, 0x00000002, 0x005C0E84, - 0x005D9884, 0x00000002, 0x005C2484, 0x005D9684, 0x00000002, 0x005C3084, - 0x005D9884, 0x00000002, 0x005C3484, 0x005D9884, 0x00000002, 0x005C4084, - 0x005D9684, 0x00000002, 0x005C8A84, 0x005D9684, 0x00000002, 0x005CE884, - 0x005D9684, 0x00000002, 0x005D1684, 0x005D9684, 0x00000002, 0x005D2284, - 0x005D9884, 0x00000002, 0x005D3084, 0x005D9684, 0x00000004, 0x0062C486, - 0x0063C286, 0x0062C286, 0x0063CE86, 0x00000005, 0x0062C886, 0x0063A886, - 0x00648286, 0x0062AC86, 0x0063B886, 0x00000003, 0x0065769C, 0x0027D69C, - 0x0065CA9C, 0x00000005, 0x0065769C, 0x0065AA9C, 0xA001291C, 0x0027D69C, - 0x00659E9C, 0x00000004, 0x0065769C, 0x0065CA9C, 0x0065AE9C, 0x0065769C, - 0x00000005, 0x0065769C, 0x0065D89C, 0x0065B09C, - // Block 133, offset 0x2140 - 0xA001291C, 0x0065769C, 0x00000005, 0x0065789C, 0x0065A29C, 0x0065D89C, - 0x0065869C, 0xA001281C, 0x00000003, 0x0065789C, 0x0065D89C, 0x0065989C, - 0x00000002, 0x00657A8E, 0xA0812802, 0x00000002, 0x00657A91, 0xA0812802, - 0x00000003, 0x00657A9C, 0x0065809C, 0x0065D89C, 0x00000004, 0x00657E9C, - 0x0027D69C, 0x0065829C, 0x0027D69C, 0x00000006, 0x00657E9C, 0x0065909C, - 0x0065869C, 0x0027D69C, 0x00659E9C, 0xA001281C, 0x00000003, 0x0065809C, - 0x0027D69C, 0x0065B89C, 0x00000003, 0x0065809C, 0x0065D89C, 0x0065909C, - 0x00000002, 0x0065828E, 0xA0812802, 0x00000002, 0x00658291, 0xA0812802, - 0x00000003, 0x0065829C, 0x0065789C, 0x0065C89C, 0x00000004, 0x0065829C, - 0x0065C69C, 0x00659A9C, 0x00659E9C, 0x00000004, 0x0065829C, 0x0065CE9C, - 0x0065C89C, 0x0027D69C, 0x00000004, 0x0065829C, - // Block 134, offset 0x2180 - 0xA001281C, 0x0065CE9C, 0x0065D89C, 0x00000004, 0x0065829C, 0xA001281C, - 0x0065D89C, 0x0065B49C, 0x00000002, 0x0065848E, 0xA0812802, 0x00000002, - 0x00658491, 0xA0812802, 0x00000004, 0x0065849C, 0xA001281C, 0x0065829C, - 0xA001281C, 0x00000004, 0x0065849C, 0xA001281C, 0x0065A29C, 0x0027D69C, - 0x00000004, 0x0065849C, 0x0065C09C, 0x0065C89C, 0x0027D69C, 0x00000006, - 0x0065849C, 0xA001281C, 0x0065CA9C, 0x0065969C, 0xA001281C, 0x0027D69C, - 0x00000006, 0x0065849C, 0x0065CE9C, 0x0065869C, 0xA001281C, 0x0065C69C, - 0x0065B89C, 0x00000006, 0x0065849C, 0x0065CE9C, 0x0065BA9C, 0x0027D69C, - 0x00659E9C, 0x0065CA9C, 0x00000005, 0x0065849C, 0x0065CE9C, 0x0065D09C, - 0x00659A9C, 0x00659E9C, 0x00000002, 0x0065868E, 0xA0812802, 0x00000002, - 0x00658691, 0xA0812802, 0x00000004, 0x0065869C, - // Block 135, offset 0x21c0 - 0xA001281C, 0x0065C69C, 0x0065B89C, 0x00000006, 0x0065869C, 0xA001281C, - 0x0065C69C, 0x0065B89C, 0x00659E9C, 0x0065D89C, 0x00000006, 0x0065869C, - 0x0065CA9C, 0x0065929C, 0xA001281C, 0x0065789C, 0x0065CE9C, 0x00000004, - 0x0065869C, 0x0065CE9C, 0x0027D69C, 0x0065A69C, 0x00000002, 0x0065888E, - 0xA0812802, 0x00000002, 0x00658891, 0xA0812802, 0x00000003, 0x0065889C, - 0x0027D69C, 0x0065909C, 0x00000002, 0x00658A8E, 0xA0812802, 0x00000002, - 0x00658A91, 0xA0812802, 0x00000004, 0x00658A9C, 0x0027D69C, 0x0065B29C, - 0xA001291C, 0x00000003, 0x00658A9C, 0x0065CA9C, 0x0065A09C, 0x00000002, - 0x00658C8E, 0xA0812802, 0x00000002, 0x00658C91, 0xA0812802, 0x00000004, - 0x00658C9C, 0x0065789C, 0x0065869C, 0x0065CA9C, 0x00000005, 0x00658C9C, - 0x0065D89C, 0x0065989C, 0x0027D69C, 0x0065B89C, - // Block 136, offset 0x2200 - 0x00000002, 0x00658E8E, 0xA0812802, 0x00000002, 0x00658E91, 0xA0812802, - 0x00000002, 0x00658E84, 0x0065BA84, 0x00000005, 0x00658E9C, 0x0065C89C, - 0x0065D89C, 0x0065869C, 0xA001281C, 0x00000002, 0x0065908E, 0xA0812802, - 0x00000002, 0x00659091, 0xA0812802, 0x00000002, 0x0065928E, 0xA0812802, - 0x00000002, 0x00659291, 0xA0812802, 0x00000003, 0x0065929C, 0x0065D89C, - 0x0065989C, 0x00000003, 0x0065929C, 0x0065D89C, 0x00659E9C, 0x00000002, - 0x0065948E, 0xA0812802, 0x00000002, 0x00659491, 0xA0812802, 0x00000002, - 0x0065968E, 0xA0812802, 0x00000002, 0x00659691, 0xA0812802, 0x00000004, - 0x0065969C, 0xA001281C, 0x0027D69C, 0x0065909C, 0x00000002, 0x0065988E, - 0xA0812802, 0x00000002, 0x00659891, 0xA0812802, 0x00000002, 0x00659A8E, - 0xA0812802, 0x00000002, 0x00659A91, 0xA0812802, - // Block 137, offset 0x2240 - 0x00000002, 0x00659C8E, 0xA0812802, 0x00000002, 0x00659C91, 0xA0812802, - 0x00000003, 0x00659C9C, 0xA001281C, 0x00658E9C, 0x00000002, 0x00659E8E, - 0xA0812802, 0x00000002, 0x00659E91, 0xA0812802, 0x00000003, 0x00659E9C, - 0xA001281C, 0x0065CA9C, 0x00000003, 0x0065A89C, 0x00659A9C, 0x00659E9C, - 0x00000002, 0x0065AA8E, 0xA0812802, 0x00000002, 0x0065AA91, 0xA0812802, - 0x00000002, 0x0065AA8E, 0xA0812902, 0x00000002, 0x0065AA91, 0xA0812902, - 0x00000006, 0x0065AA9C, 0xA001291C, 0x0027D69C, 0x0065929C, 0x0065D89C, - 0x00659E9C, 0x00000004, 0x0065AA9C, 0xA001291C, 0x0027D69C, 0x00659A9C, - 0x00000005, 0x0065AA9C, 0xA001281C, 0x0027D69C, 0x0065CC9C, 0x0065CA9C, - 0x00000003, 0x0065AA9C, 0x0065789C, 0x00659A9C, 0x00000002, 0x0065AC8E, - 0xA0812802, 0x00000002, 0x0065AC91, 0xA0812802, - // Block 138, offset 0x2280 - 0x00000002, 0x0065AC8E, 0xA0812902, 0x00000002, 0x0065AC91, 0xA0812902, - 0x00000006, 0x0065AC9C, 0xA001291C, 0x0065769C, 0x0065909C, 0x00659E9C, - 0x0065CA9C, 0x00000004, 0x0065AC9C, 0xA001291C, 0x0065869C, 0x0065CA9C, - 0x00000003, 0x0065AC9C, 0xA001291C, 0x00658A9C, 0x00000003, 0x0065AC9C, - 0xA001281C, 0x0065CA9C, 0x00000002, 0x0065AE8E, 0xA0812802, 0x00000002, - 0x0065AE91, 0xA0812802, 0x00000002, 0x0065AE8E, 0xA0812902, 0x00000002, - 0x0065AE91, 0xA0812902, 0x00000006, 0x0065AE9C, 0x0065769C, 0x0065C69C, - 0x00659A9C, 0x00659E9C, 0xA001281C, 0x00000004, 0x0065AE9C, 0x0065789C, - 0x0027D69C, 0x00659E9C, 0x00000006, 0x0065AE9C, 0xA001281C, 0x00659A9C, - 0x00658E9C, 0x00657E9C, 0x0065CA9C, 0x00000003, 0x0065AE9C, 0x0065C69C, - 0x0065D89C, 0x00000002, 0x0065B08E, 0xA0812802, - // Block 139, offset 0x22c0 - 0x00000002, 0x0065B091, 0xA0812802, 0x00000002, 0x0065B08E, 0xA0812902, - 0x00000002, 0x0065B091, 0xA0812902, 0x00000005, 0x0065B09C, 0xA001291C, - 0x0027D69C, 0x00658E9C, 0xA001281C, 0x00000004, 0x0065B09C, 0xA001281C, - 0x0027D69C, 0x0065969C, 0x00000005, 0x0065B09C, 0x0065869C, 0x0065969C, - 0x0027D69C, 0x0065CA9C, 0x00000003, 0x0065B09C, 0xA001291C, 0x0065949C, - 0x00000004, 0x0065B09C, 0xA001291C, 0x0065A29C, 0x0065AC9C, 0x00000003, - 0x0065B09C, 0x0065CA9C, 0x00659A9C, 0x00000004, 0x0065B09C, 0xA001291C, - 0x0065D89C, 0x0065909C, 0x00000002, 0x0065B28E, 0xA0812802, 0x00000002, - 0x0065B291, 0xA0812802, 0x00000002, 0x0065B28E, 0xA0812902, 0x00000002, - 0x0065B291, 0xA0812902, 0x00000003, 0x0065B29C, 0x0027D69C, 0x0065CA9C, - 0x00000003, 0x0065B29C, 0x0027D69C, 0x0065D89C, - // Block 140, offset 0x2300 - 0x00000005, 0x0065B29C, 0xA001291C, 0x0065789C, 0x0065D89C, 0x00659E9C, - 0x00000004, 0x0065B29C, 0xA001281C, 0x0065CA9C, 0x00659E9C, 0x00000005, - 0x0065B29C, 0xA001291C, 0x0065D89C, 0x00659E9C, 0xA001281C, 0x00000004, - 0x0065B49C, 0x0065789C, 0x0065869C, 0x0065CE9C, 0x00000003, 0x0065B49C, - 0x0065789C, 0x0065CA9C, 0x00000002, 0x0065B484, 0x00659084, 0x00000003, - 0x0065B49C, 0x00659A9C, 0x0065AA9C, 0x00000003, 0x0065B49C, 0x0065CA9C, - 0x0065869C, 0x00000005, 0x0065B49C, 0x0065D89C, 0x00658E9C, 0x0065C49C, - 0x0065D89C, 0x00000004, 0x0065B69C, 0x0065869C, 0x0065CE9C, 0x0065D89C, - 0x00000006, 0x0065B69C, 0x0065C89C, 0x0065AA9C, 0xA001281C, 0x0027D69C, - 0x0065CA9C, 0x00000004, 0x0065BA9C, 0x0027D69C, 0x00659E9C, 0x0065CA9C, - 0x00000003, 0x0065BA9C, 0x0065829C, 0xA001281C, - // Block 141, offset 0x2340 - 0x00000005, 0x0065BA9C, 0x0065829C, 0xA001281C, 0x00659E9C, 0x0065D89C, - 0x00000004, 0x0065BE9C, 0x0027D69C, 0x00659E9C, 0xA001281C, 0x00000003, - 0x0065BE9C, 0x0027D69C, 0x0065CA9C, 0x00000003, 0x0065C09C, 0x0065769C, - 0x0065D89C, 0x00000004, 0x0065C89C, 0x00659A9C, 0x00659E9C, 0x0065CA9C, - 0x00000005, 0x0065CA9C, 0x0027D69C, 0x0065AE9C, 0xA001281C, 0x0065CA9C, - 0x00000004, 0x0065CA9C, 0x0065AC9C, 0xA001291C, 0x0027D69C, 0x00000006, - 0x0065CC9C, 0x0065D89C, 0x00659E9C, 0x0065889C, 0xA001281C, 0x0065D89C, - 0x00000002, 0x0065D091, 0xA0812802, 0x00000003, 0x0065D09C, 0x00659A9C, - 0x00659E9C, 0x00000002, 0x0065D291, 0xA0812802, 0x00000002, 0x0065D491, - 0xA0812802, 0x00000002, 0x0065D691, 0xA0812802, 0x00000002, 0x0065DA84, - 0xA0013A04, 0x00000002, 0x0065EC84, 0xA0013A04, - // Block 142, offset 0x2380 - 0x00000002, 0x0065F684, 0xA0013A04, 0x00000002, 0x00660684, 0xA0013A04, - 0x00000002, 0x00661284, 0xA0013A04, 0x00000002, 0x00661484, 0xA0013A04, - 0x00000002, 0x00661C84, 0xA0013A04, 0x00000002, 0x00661E84, 0xA0013A04, - 0x00000002, 0x00662284, 0xA0013A04, 0x00000002, 0x00663884, 0xA0013A04, - 0x00000002, 0x00663896, 0xA0013A16, 0x00000002, 0x00663A84, 0xA0013A04, - 0x00000002, 0x00663A84, 0xA0013C04, 0x00000002, 0x0075C284, 0xA0013904, - 0x00000002, 0x00862084, 0xA0013904, 0x00000002, 0x00862284, 0xA0013904, - 0x00000002, 0x00862484, 0xA0013904, 0x00000002, 0x00862684, 0xA0013904, - 0x00000002, 0x00862884, 0xA0013904, 0x00000002, 0x00862A84, 0xA0013904, - 0x00000002, 0x00862C84, 0xA0013904, 0x00000002, 0x00862C84, 0xA0013A04, - 0x00000002, 0x00862E84, 0xA0013904, 0x00000002, - // Block 143, offset 0x23c0 - 0x00863084, 0xA0013904, 0x00000002, 0x00863284, 0xA0013904, 0x00000002, - 0x00863284, 0xA0013A04, 0x00000002, 0x00863484, 0xA0013904, 0x00000002, - 0x00863484, 0xA0013A04, 0x00000002, 0x00863684, 0xA0013904, 0x00000002, - 0x00863684, 0xA0013A04, 0x00000002, 0x00863884, 0xA0013904, 0x00000002, - 0x00863A84, 0xA0013904, 0x00000002, 0x00863C84, 0xA0013904, 0x00000002, - 0x00863E84, 0xA0013904, 0x00000002, 0x00863E84, 0xA0013A04, 0x00000002, - 0x00863E84, 0xA0013C04, 0x00000002, 0x00864084, 0xA0013904, 0x00000002, - 0x00864284, 0xA0013904, 0x00000002, 0x00864484, 0xA0013904, 0x00000002, - 0x00864684, 0xA0013904, 0x00000002, 0x00864684, 0xA0013A04, 0x00000002, - 0x00864884, 0xA0013904, 0x00000002, 0x00864884, 0xA0013A04, 0x00000002, - 0x00864A84, 0xA0013904, 0x00000002, 0x00864C84, - // Block 144, offset 0x2400 - 0xA0013904, 0x00000002, 0x029C6C84, 0xA0013904, 0x00000002, 0x029CB284, - 0xA0013904, 0x00000002, 0x02A30484, 0xA0013904, 0x00000002, 0x02A3C084, - 0xA0013904, 0x00000002, 0x02A40084, 0xA0013904, 0x00000002, 0x02A6B884, - 0xA0013904, 0x00000002, 0x02A6D284, 0xA0013904, 0x00000002, 0x02A70484, - 0xA0013904, 0x00000002, 0x02B81E84, 0xA0013904, 0x00000002, 0x02B81E84, - 0xA0013A04, 0x00000002, 0x02B84484, 0xA0013904, 0x00000002, 0x02B84684, - 0xA0013904, 0x00000002, 0x02BEA084, 0xA0013904, 0x00000002, 0x02BF8684, - 0xA0013904, 0x00000002, 0x02CBCA84, 0xA0013904, 0x00000002, 0x02CE1084, - 0xA0013904, 0x00000004, 0x02D0549C, 0x02BE1E9C, 0x029E349C, 0x02F27C9C, - 0x00000002, 0x02D6F484, 0xA0013904, 0x00000002, 0x02E45684, 0xA0013904, - 0x00000002, 0x02E4B684, 0xA0013904, 0x00000002, - // Block 145, offset 0x2440 - 0x02E71684, 0xA0013904, 0x00000002, 0x02EB1684, 0xA0013904, 0x00000002, - 0x02EDDC84, 0xA0013904, 0x00000002, 0x02F27484, 0xA0013904, 0x00000002, - 0x02F5F284, 0xA0013904, 0x00000002, 0x02FEA484, 0xA0013904, 0x00000002, - 0x02FEA684, 0xA0013904, 0x00000002, 0x02FEA684, 0xA0013A04, 0x00000002, - 0x02FF1484, 0xA0013904, 0x00000002, 0x02FF1484, 0xA0013A04, 0x00000002, - 0x0300FE84, 0xA0013904, 0x00000002, 0x03011284, 0xA0013904, 0x00000002, - 0x0303F884, 0xA0013904, 0x00000002, 0x0304F284, 0xA0013904, 0x00000002, - 0x0304F284, 0xA0013A04, 0x00000002, 0x0313A484, 0xA0013904, 0x00000002, - 0x031B6684, 0xA0013904, 0x00000002, 0x031F6C84, 0xA0013904, 0x00000002, - 0x031F6C84, 0xA0013A04, 0x00000002, 0x03212284, 0xA0013904, 0x00000002, - 0x032C3884, 0xA0013904, 0x00000002, 0x032DD084, - // Block 146, offset 0x2480 - 0xA0013904, 0x00000002, 0x0331C084, 0xA0013904, 0x00000002, 0x03332C84, - 0xA0013904, 0x00000002, 0x03355084, 0xA0013904, 0x00000002, 0x03367884, - 0xA0013904, 0x00000002, 0x033CEA84, 0xA0013904, 0x00000002, 0x033E9484, - 0xA0013904, 0x00000002, 0x033EA484, 0xA0013904, 0x00000002, 0x033F1A84, - 0xA0013904, 0x00000002, 0x033F3884, 0xA0013904, 0x00000002, 0x033F3884, - 0xA0013A04, 0x00000003, 0x0003F484, 0x002C9884, 0x0003F69F, 0x00000003, - 0x0003F484, 0x002C988A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002D6884, - 0x0003F69F, 0x00000003, 0x0003F484, 0x002D688A, 0x0003F69F, 0x00000003, - 0x0003F484, 0x002D9A84, 0x0003F69F, 0x00000003, 0x0003F484, 0x002D9A8A, - 0x0003F69F, 0x00000003, 0x0003F484, 0x002DFE84, 0x0003F69F, 0x00000003, - 0x0003F484, 0x002DFE8A, 0x0003F69F, 0x00000003, - // Block 147, offset 0x24c0 - 0x0003F484, 0x002EE284, 0x0003F69F, 0x00000003, 0x0003F484, 0x002EE28A, - 0x0003F69F, 0x00000003, 0x0003F484, 0x002F5684, 0x0003F69F, 0x00000003, - 0x0003F484, 0x002F568A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002F7A84, - 0x0003F69F, 0x00000003, 0x0003F484, 0x002F7A8A, 0x0003F69F, 0x00000003, - 0x0003F484, 0x002FE684, 0x0003F69F, 0x00000003, 0x0003F484, 0x002FE68A, - 0x0003F69F, 0x00000003, 0x0003F484, 0x00302C84, 0x0003F69F, 0x00000003, - 0x0003F484, 0x00302C8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x0030F684, - 0x0003F69F, 0x00000003, 0x0003F484, 0x0030F68A, 0x0003F69F, 0x00000003, - 0x0004B084, 0x002FE68A, 0x0004B29F, 0x00000002, 0x002C0A9D, 0x002F569C, - 0x00000002, 0x402C0C20, 0xAE604102, 0x00000002, 0x002C0C83, 0xAE604102, - 0x00000002, 0x402C0C20, 0xAE604702, 0x00000002, - // Block 148, offset 0x2500 - 0x402C0C20, 0xAE605202, 0x00000002, 0x002C0C83, 0xAE605202, 0x00000002, - 0x402C0C20, 0xACA05602, 0x00000002, 0x002C0C83, 0xACA05602, 0x00000002, - 0x402C0C20, 0xADC07002, 0x00000002, 0x002C0C83, 0xADC07002, 0x00000002, - 0x402C0C20, 0xADC07702, 0x00000002, 0x002C0C83, 0xADC07702, 0x00000002, - 0x402C0C20, 0xADC07802, 0x00000002, 0x002C0C83, 0xADC07802, 0x00000002, - 0x402C0C20, 0xADC07B02, 0x00000002, 0x002C0C83, 0xADC07B02, 0x00000002, - 0x402C0E20, 0xAE603202, 0x00000002, 0x002C0E83, 0xAE603202, 0x00000003, - 0x402C0E20, 0xAE603202, 0xAE605202, 0x00000003, 0x002C0E83, 0xAE603202, - 0xAE605202, 0x00000002, 0x402C0E20, 0xAE603C02, 0x00000002, 0x002C0E83, - 0xAE603C02, 0x00000002, 0x402C0E20, 0xAE604102, 0x00000002, 0x002C0E83, - 0xAE604102, 0x00000003, 0x402C0E20, 0xAE604102, - // Block 149, offset 0x2540 - 0xAE605202, 0x00000003, 0x002C0E83, 0xAE604102, 0xAE605202, 0x00000002, - 0x402C0E20, 0xAE605202, 0x00000002, 0x002C0E83, 0xAE605202, 0x00000002, - 0x402C0E20, 0xACA05602, 0x00000002, 0x002C0E83, 0xACA05602, 0x00000002, - 0x402C0E20, 0xADC07002, 0x00000002, 0x002C0E83, 0xADC07002, 0x00000003, - 0x402C0E20, 0xADC07002, 0xAE605202, 0x00000003, 0x002C0E83, 0xADC07002, - 0xAE605202, 0x00000002, 0x402C0E20, 0xADC07702, 0x00000002, 0x002C0E83, - 0xADC07702, 0x00000002, 0x402C1020, 0xAE603202, 0x00000002, 0x002C1083, - 0xAE603202, 0x00000002, 0x402C1020, 0xAE603502, 0x00000002, 0x002C1083, - 0xAE603502, 0x00000002, 0x402C1020, 0xAE603702, 0x00000002, 0x002C1083, - 0xAE603702, 0x00000002, 0x402C1020, 0xAE603C02, 0x00000002, 0x002C1083, - 0xAE603C02, 0x00000003, 0x402C1020, 0xAE603C02, - // Block 150, offset 0x2580 - 0xAE603202, 0x00000003, 0x002C1083, 0xAE603C02, 0xAE603202, 0x00000003, - 0x402C1020, 0xAE603C02, 0xAE603502, 0x00000003, 0x002C1083, 0xAE603C02, - 0xAE603502, 0x00000003, 0x402C1020, 0xAE603C02, 0xAE604E02, 0x00000003, - 0x002C1083, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C1020, 0xAE603C02, - 0xAE606402, 0x00000003, 0x002C1083, 0xAE603C02, 0xAE606402, 0x00000002, - 0x402C1020, 0xAE604102, 0x00000002, 0x002C1083, 0xAE604102, 0x00000002, - 0x402C1020, 0xAE604702, 0x00000002, 0x002C1083, 0xAE604702, 0x00000002, - 0x402C1020, 0xAE604E02, 0x00000002, 0x002C1083, 0xAE604E02, 0x00000002, - 0x402C1020, 0xAE605202, 0x00000002, 0x002C1083, 0xAE605202, 0x00000002, - 0x402C1020, 0xACA05602, 0x00000002, 0x002C1083, 0xACA05602, 0x00000003, - 0x402C1020, 0xACA05602, 0xAE603702, 0x00000003, - // Block 151, offset 0x25c0 - 0x002C1083, 0xACA05602, 0xAE603702, 0x00000002, 0x402C1020, 0xACA05902, - 0x00000002, 0x002C1083, 0xACA05902, 0x00000002, 0x402C1020, 0xAE605B02, - 0x00000002, 0x002C1083, 0xAE605B02, 0x00000003, 0x402C1020, 0xAE605B02, - 0xAE603202, 0x00000003, 0x002C1083, 0xAE605B02, 0xAE603202, 0x00000003, - 0x402C1020, 0xAE605B02, 0xAE603502, 0x00000003, 0x002C1083, 0xAE605B02, - 0xAE603502, 0x00000002, 0x402C1020, 0xAE606402, 0x00000002, 0x002C1083, - 0xAE606402, 0x00000002, 0x402C1020, 0xAE606502, 0x00000002, 0x002C1083, - 0xAE606502, 0x00000002, 0x402C1020, 0xAE606702, 0x00000002, 0x002C1083, - 0xAE606702, 0x00000002, 0x402C1020, 0xADC07002, 0x00000002, 0x002C1083, - 0xADC07002, 0x00000003, 0x402C1020, 0xADC07002, 0xAE603C02, 0x00000003, - 0x002C1083, 0xADC07002, 0xAE603C02, 0x00000002, - // Block 152, offset 0x2600 - 0x402C1020, 0xADC07802, 0x00000002, 0x002C1083, 0xADC07802, 0x00000002, - 0x402C1020, 0xADC07A02, 0x00000002, 0x002C1083, 0xADC07A02, 0x00000002, - 0x402C3C20, 0xAE603202, 0x00000002, 0x002C3C83, 0xAE603202, 0x00000002, - 0x402C3C20, 0xAE604102, 0x00000002, 0x002C3C83, 0xAE604102, 0x00000002, - 0x402C3C20, 0xACA05602, 0x00000002, 0x002C3C83, 0xACA05602, 0x00000002, - 0x402C3C20, 0xADC07002, 0x00000002, 0x002C3C83, 0xADC07002, 0x00000002, - 0x402C3C20, 0xADC07B02, 0x00000002, 0x002C3C83, 0xADC07B02, 0x00000002, - 0x402C3E20, 0xAE604702, 0x00000002, 0x002C3E83, 0xAE604702, 0x00000002, - 0x402C3E20, 0xAE605202, 0x00000002, 0x002C3E83, 0xAE605202, 0x00000002, - 0x402C4020, 0xAE603202, 0x00000002, 0x002C4083, 0xAE603202, 0x00000002, - 0x402C4020, 0xAE603502, 0x00000002, 0x002C4083, - // Block 153, offset 0x2640 - 0xAE603502, 0x00000002, 0x402C4020, 0xAE603702, 0x00000002, 0x002C4083, - 0xAE603702, 0x00000002, 0x402C4020, 0xAE603C02, 0x00000002, 0x002C4083, - 0xAE603C02, 0x00000002, 0x402C4020, 0xAE604102, 0x00000002, 0x002C4083, - 0xAE604102, 0x00000002, 0x402C4020, 0xAE604702, 0x00000002, 0x002C4083, - 0xAE604702, 0x00000003, 0x402C4020, 0xAE604702, 0xAE603202, 0x00000003, - 0x002C4083, 0xAE604702, 0xAE603202, 0x00000002, 0x402C4020, 0xAE604E02, - 0x00000002, 0x002C4083, 0xAE604E02, 0x00000002, 0x002C4083, 0xAE605202, - 0x00000002, 0x402C4020, 0xACA05902, 0x00000002, 0x002C4083, 0xACA05902, - 0x00000002, 0x402C4020, 0xAE605B02, 0x00000002, 0x002C4083, 0xAE605B02, - 0x00000002, 0x402C4020, 0xAE606402, 0x00000002, 0x002C4083, 0xAE606402, - 0x00000002, 0x402C4020, 0xAE606502, 0x00000002, - // Block 154, offset 0x2680 - 0x002C4083, 0xAE606502, 0x00000002, 0x402C4020, 0xAE606702, 0x00000002, - 0x002C4083, 0xAE606702, 0x00000002, 0x402C4020, 0xADC07002, 0x00000002, - 0x002C4083, 0xADC07002, 0x00000002, 0x402C4020, 0xADC07A02, 0x00000002, - 0x002C4083, 0xADC07A02, 0x00000002, 0x402C6620, 0xAE603202, 0x00000002, - 0x002C6683, 0xAE603202, 0x00000002, 0x402C6620, 0xAE604102, 0x00000002, - 0x002C6683, 0xAE604102, 0x00000002, 0x402C6620, 0xAE605202, 0x00000002, - 0x002C6683, 0xAE605202, 0x00000002, 0x402C6620, 0xACA05602, 0x00000002, - 0x002C6683, 0xACA05602, 0x00000002, 0x402C6620, 0xAE606502, 0x00000002, - 0x002C6683, 0xAE606502, 0x00000002, 0x402C6620, 0xAE606702, 0x00000002, - 0x002C6683, 0xAE606702, 0x00000002, 0x402C6620, 0xADC07002, 0x00000002, - 0x002C6683, 0xADC07002, 0x00000003, 0x402C6620, - // Block 155, offset 0x26c0 - 0xADC07002, 0xAE605B02, 0x00000003, 0x002C6683, 0xADC07002, 0xAE605B02, - 0x00000002, 0x402C6620, 0xADC07B02, 0x00000002, 0x002C6683, 0xADC07B02, - 0x00000002, 0x002C989C, 0x0030BE9D, 0x00000002, 0x002D0884, 0x002D9A84, - 0x00000002, 0x402D2420, 0xAE603202, 0x00000002, 0x002D2483, 0xAE603202, - 0x00000002, 0x402D2420, 0xAE603502, 0x00000002, 0x002D2483, 0xAE603502, - 0x00000002, 0x402D2420, 0xAE603702, 0x00000002, 0x002D2483, 0xAE603702, - 0x00000002, 0x402D2420, 0xAE603C02, 0x00000002, 0x002D2483, 0xAE603C02, - 0x00000003, 0x402D2420, 0xAE603C02, 0xAE603202, 0x00000003, 0x002D2483, - 0xAE603C02, 0xAE603202, 0x00000003, 0x402D2420, 0xAE603C02, 0xAE603502, - 0x00000003, 0x002D2483, 0xAE603C02, 0xAE603502, 0x00000003, 0x402D2420, - 0xAE603C02, 0xAE604E02, 0x00000003, 0x002D2483, - // Block 156, offset 0x2700 - 0xAE603C02, 0xAE604E02, 0x00000003, 0x402D2420, 0xAE603C02, 0xAE606402, - 0x00000003, 0x002D2483, 0xAE603C02, 0xAE606402, 0x00000002, 0x402D2420, - 0xAE604102, 0x00000002, 0x002D2483, 0xAE604102, 0x00000002, 0x402D2420, - 0xAE604702, 0x00000002, 0x002D2483, 0xAE604702, 0x00000003, 0x402D2420, - 0xAE604702, 0xAE605B02, 0x00000003, 0x002D2483, 0xAE604702, 0xAE605B02, - 0x00000002, 0x402D2420, 0xAE604D02, 0x00000002, 0x002D2483, 0xAE604D02, - 0x00000002, 0x402D2420, 0xAE604E02, 0x00000002, 0x002D2483, 0xAE604E02, - 0x00000003, 0x402D2420, 0xAE604E02, 0xAE603202, 0x00000003, 0x002D2483, - 0xAE604E02, 0xAE603202, 0x00000003, 0x402D2420, 0xAE604E02, 0xAE604702, - 0x00000003, 0x002D2483, 0xAE604E02, 0xAE604702, 0x00000003, 0x402D2420, - 0xAE604E02, 0xAE605B02, 0x00000003, 0x002D2483, - // Block 157, offset 0x2740 - 0xAE604E02, 0xAE605B02, 0x00000002, 0x402D2420, 0xAE605202, 0x00000002, - 0x002D2483, 0xAE605202, 0x00000003, 0x402D2420, 0xAE605202, 0xAE605B02, - 0x00000003, 0x002D2483, 0xAE605202, 0xAE605B02, 0x00000002, 0x402D2420, - 0xACA05902, 0x00000002, 0x002D2483, 0xACA05902, 0x00000003, 0x402D2420, - 0xACA05902, 0xAE605B02, 0x00000003, 0x002D2483, 0xACA05902, 0xAE605B02, - 0x00000002, 0x402D2420, 0xAE605B02, 0x00000002, 0x002D2483, 0xAE605B02, - 0x00000003, 0x402D2420, 0xAE605B02, 0xAE603202, 0x00000003, 0x002D2483, - 0xAE605B02, 0xAE603202, 0x00000003, 0x402D2420, 0xAE605B02, 0xAE603502, - 0x00000003, 0x002D2483, 0xAE605B02, 0xAE603502, 0x00000002, 0x402D2420, - 0xAE606402, 0x00000002, 0x002D2483, 0xAE606402, 0x00000002, 0x402D2420, - 0xAE606502, 0x00000002, 0x002D2483, 0xAE606502, - // Block 158, offset 0x2780 - 0x00000002, 0x402D2420, 0xAE606702, 0x00000002, 0x002D2483, 0xAE606702, - 0x00000002, 0x402D2420, 0xAD806802, 0x00000002, 0x002D2483, 0xAD806802, - 0x00000003, 0x402D2420, 0xAD806802, 0xAE603202, 0x00000003, 0x002D2483, - 0xAD806802, 0xAE603202, 0x00000003, 0x402D2420, 0xAD806802, 0xAE603502, - 0x00000003, 0x002D2483, 0xAD806802, 0xAE603502, 0x00000003, 0x402D2420, - 0xAD806802, 0xAE604E02, 0x00000003, 0x002D2483, 0xAD806802, 0xAE604E02, - 0x00000003, 0x402D2420, 0xAD806802, 0xAE606402, 0x00000003, 0x002D2483, - 0xAD806802, 0xAE606402, 0x00000003, 0x402D2420, 0xAD806802, 0xADC07002, - 0x00000003, 0x002D2483, 0xAD806802, 0xADC07002, 0x00000002, 0x402D2420, - 0xADC07002, 0x00000002, 0x002D2483, 0xADC07002, 0x00000003, 0x402D2420, - 0xADC07002, 0xAE603C02, 0x00000003, 0x002D2483, - // Block 159, offset 0x27c0 - 0xADC07002, 0xAE603C02, 0x00000002, 0x002D689C, 0x002BDE9C, 0x00000002, - 0x002D689D, 0x002D229C, 0x00000002, 0x002D689D, 0x002F2C9D, 0x00000002, - 0x002D689D, 0x0030BE9D, 0x00000002, 0x002D689D, 0x00312A9C, 0x00000002, - 0x002D9A84, 0x002D9A9F, 0x00000002, 0x002D9A8A, 0x002D9A9F, 0x00000003, - 0x002D9A84, 0x002D9A84, 0x002D9A9F, 0x00000003, 0x002D9A8A, 0x002D9A8A, - 0x002D9A9F, 0x00000002, 0x002D9A84, 0x002DCC84, 0x00000002, 0x002D9A8A, - 0x002DCC8A, 0x00000002, 0x002D9A9C, 0x002E9E9C, 0x00000002, 0x002D9A9D, - 0x00306C9D, 0x00000002, 0x002D9A84, 0x0030BE9F, 0x00000002, 0x002D9A8A, - 0x0030BE9F, 0x00000002, 0x002D9A84, 0x0030F69F, 0x00000002, 0x002D9A8A, - 0x0030F69F, 0x00000002, 0x002DFE9C, 0x002BDE9D, 0x00000002, 0x002DFE9D, - 0x002C0A9D, 0x00000002, 0x002DFE9C, 0x002D229C, - // Block 160, offset 0x2800 - 0x00000002, 0x002DFE9D, 0x002DFE9D, 0x00000002, 0x002DFE9C, 0x002E229C, - 0x00000002, 0x002DFE9C, 0x002E829C, 0x00000002, 0x002DFE9D, 0x002E829D, - 0x00000002, 0x002DFE9C, 0x00302C9C, 0x00000002, 0x002DFE9C, 0x0030BE9D, - 0x00000002, 0x002DFE9C, 0x0030E29D, 0x00000002, 0x002DFE9C, 0x0032A29D, - 0x00000002, 0x002E229C, 0x0030F69C, 0x00000002, 0x002E829C, 0x002FE69C, - 0x00000002, 0x002E9E8A, 0x002EE284, 0x00000002, 0x002E9E9C, 0x002FE69C, - 0x00000002, 0x002EE29C, 0x0030BE9D, 0x00000002, 0x002F2C9D, 0x002D689D, - 0x00000002, 0x002F2C9D, 0x002F7A9D, 0x00000002, 0x002F2C9C, 0x002FE69C, - 0x00000002, 0x002FE69D, 0x002C629D, 0x00000002, 0x002FE694, 0x002E8294, - 0x00000002, 0x002FE69C, 0x002F7A9C, 0x00000002, 0x002FE69D, 0x002FE69D, - 0x00000002, 0x002FE684, 0x00302C84, 0x00000002, - // Block 161, offset 0x2840 - 0x002FE69D, 0x0030BE9C, 0x00000002, 0x00302C94, 0x002E8294, 0x00000002, - 0x0030BE84, 0x002D9A9F, 0x00000002, 0x0030BE8A, 0x002D9A9F, 0x00000003, - 0x0030BE84, 0x002D9A84, 0x002D9A9F, 0x00000003, 0x0030BE8A, 0x002D9A8A, - 0x002D9A9F, 0x00000002, 0x4030E420, 0xAE603C02, 0x00000002, 0x0030E483, - 0xAE603C02, 0x00000002, 0x4030E420, 0xAE604102, 0x00000002, 0x0030E483, - 0xAE604102, 0x00000002, 0x4030E420, 0xAE604702, 0x00000002, 0x0030E483, - 0xAE604702, 0x00000002, 0x4030E420, 0xAE605202, 0x00000002, 0x0030E483, - 0xAE605202, 0x00000002, 0x4030E420, 0xACA05602, 0x00000002, 0x0030E483, - 0xACA05602, 0x00000002, 0x4030E420, 0xADC07002, 0x00000002, 0x0030E483, - 0xADC07002, 0x00000002, 0x4030E420, 0xADC07902, 0x00000002, 0x0030E483, - 0xADC07902, 0x00000002, 0x4030E420, 0xADC07B02, - // Block 162, offset 0x2880 - 0x00000002, 0x0030F684, 0x002D9A9F, 0x00000002, 0x0030F68A, 0x002D9A9F, - 0x00000003, 0x0030F684, 0x002D9A84, 0x002D9A9F, 0x00000003, 0x0030F68A, - 0x002D9A8A, 0x002D9A9F, 0x00000002, 0x0032769C, 0x002FE69C, 0x00000002, - 0x00393C99, 0x003A8E99, 0x00000002, 0x00393C9A, 0x003A8E9A, 0x00000002, - 0x00395699, 0x003A8E99, 0x00000002, 0x0039569A, 0x003A8E9A, 0x00000002, - 0x00395899, 0x003A8E99, 0x00000002, 0x0039589A, 0x003A8E9A, 0x00000002, - 0x00396499, 0x003A8E99, 0x00000002, 0x0039649A, 0x003A8E9A, 0x00000002, - 0x00397299, 0x003A8E99, 0x00000002, 0x0039729A, 0x003A8E9A, 0x00000002, - 0x00397499, 0x003A8E99, 0x00000002, 0x0039749A, 0x003A8E9A, 0x00000002, - 0x0039C699, 0x003A8E99, 0x00000002, 0x0039C69A, 0x003A8E9A, 0x00000002, - 0x0039C899, 0x003A8E99, 0x00000002, 0x0039C89A, - // Block 163, offset 0x28c0 - 0x003A8E9A, 0x00000002, 0x0039DC99, 0x003A8E99, 0x00000002, 0x0039DC9A, - 0x003A8E9A, 0x00000002, 0x0039DE99, 0x003A8E99, 0x00000002, 0x0039DE9A, - 0x003A8E9A, 0x00000002, 0x0039E699, 0x003A8E99, 0x00000002, 0x0039E69A, - 0x003A8E9A, 0x00000002, 0x0039EE99, 0x003A8E99, 0x00000002, 0x0039EE9A, - 0x003A8E9A, 0x00000002, 0x0039F099, 0x003A8E99, 0x00000002, 0x0039F09A, - 0x003A8E9A, 0x00000002, 0x0039FC99, 0x003A8E99, 0x00000002, 0x0039FC9A, - 0x003A8E9A, 0x00000002, 0x003A1299, 0x003A8E99, 0x00000002, 0x003A129A, - 0x003A8E9A, 0x00000002, 0x003A1A99, 0x003A8E99, 0x00000002, 0x003A1A9A, - 0x003A8E9A, 0x00000002, 0x003A4099, 0x003A8E99, 0x00000002, 0x003A409A, - 0x003A8E9A, 0x00000002, 0x003A4E9A, 0x003A8E9A, 0x00000002, 0x003A5699, - 0x003A8E99, 0x00000002, 0x003A569A, 0x003A8E9A, - // Block 164, offset 0x2900 - 0x00000002, 0x003A689A, 0x003A8E9A, 0x00000002, 0x003A9099, 0x003A8E99, - 0x00000002, 0x003A909A, 0x003A8E9A, 0x00000002, 0x402D6A20, 0xAE604702, - 0x00000002, 0x002D6A83, 0xAE604702, 0x00000002, 0x402D6A20, 0xAE605202, - 0x00000002, 0x002D6A83, 0xAE605202, 0x00000002, 0x002D9883, 0xAE603202, - 0x00000002, 0x002D9883, 0xAE603502, 0x00000002, 0x002D9883, 0xAE603702, - 0x00000002, 0x002D9883, 0xAE603C02, 0x00000002, 0x002D9883, 0xAE604102, - 0x00000002, 0x002D9883, 0xAE604702, 0x00000003, 0x002D9883, 0xAE604702, - 0xAE603202, 0x00000002, 0x002D9883, 0xAE604E02, 0x00000002, 0x002D9883, - 0xACA05902, 0x00000002, 0x002D9883, 0xAE605B02, 0x00000002, 0x002D9883, - 0xAE606402, 0x00000002, 0x002D9883, 0xAE606502, 0x00000002, 0x002D9883, - 0xAE606702, 0x00000002, 0x002D9883, 0xADC07002, - // Block 165, offset 0x2940 - 0x00000002, 0x002D9883, 0xADC07A02, 0x00000002, 0x402EE420, 0xAE604E02, - 0x00000002, 0x002EE483, 0xAE604E02, 0x00000002, 0x402EE420, 0xAE605B02, - 0x00000002, 0x002EE483, 0xAE605B02, 0x00000002, 0x40306E20, 0xAE603202, - 0x00000002, 0x00306E83, 0xAE603202, 0x00000002, 0x40306E20, 0xAE603502, - 0x00000002, 0x00306E83, 0xAE603502, 0x00000002, 0x40306E20, 0xAE604102, - 0x00000002, 0x00306E83, 0xAE604102, 0x00000002, 0x40306E20, 0xAE605B02, - 0x00000002, 0x00306E83, 0xAE605B02, 0x00000002, 0x402FE820, 0xAE605202, - 0x00000002, 0x002FE883, 0xAE605202, 0x00000002, 0x002C6294, 0xA0013914, - 0x00000002, 0x00302C83, 0x402D6820, 0x00000002, 0x00302C89, 0x002D6888, - 0x00000002, 0x40310021, 0xAE603202, 0x00000002, 0x003100A3, 0xAE603202, - 0x00000002, 0x40310021, 0xAE603502, 0x00000002, - // Block 166, offset 0x2980 - 0x003100A3, 0xAE603502, 0x00000002, 0x40310021, 0xAE604102, 0x00000002, - 0x003100A3, 0xAE604102, 0x00000002, 0x40310021, 0xAE605B02, 0x00000002, - 0x003100A3, 0xAE605B02, 0x00000002, 0x40320C20, 0xAE603202, 0x00000002, - 0x00320C83, 0xAE603202, 0x00000002, 0x40320C20, 0xAE605B02, 0x00000002, - 0x00320C83, 0xAE605B02, 0x00000002, 0x40320C21, 0xAE605B02, 0x00000002, - 0x00320CA3, 0xAE605B02, 0x00000002, 0x40320E20, 0xAE603202, 0x00000002, - 0x00320E83, 0xAE603202, 0x00000002, 0x40320E21, 0xAE604E02, 0x00000002, - 0x00320EA3, 0xAE604E02, 0x00000002, 0x40320E21, 0xAE605B02, 0x00000002, - 0x00320EA3, 0xAE605B02, 0x00000002, 0x40321020, 0xAE603202, 0x00000002, - 0x00321083, 0xAE603202, 0x00000002, 0x404A7620, 0x838225B3, 0x00000004, - 0x004A8083, 0x404AB020, 0x404A8020, 0x404AFA20, - // Block 167, offset 0x29c0 - 0x00000004, 0x004A8084, 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, - 0x004A8083, 0x404AB420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004A8084, - 0x404AB420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004A8083, 0x404AFA20, - 0x404A8020, 0x404AFA20, 0x00000004, 0x004A8084, 0x404AFA20, 0x404A8020, - 0x404AFA20, 0x00000002, 0x404A8020, 0x828225B5, 0x00000004, 0x004AB083, - 0x404A8020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB084, 0x404A8020, - 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB083, 0x404A8420, 0x404A8020, - 0x404AFA20, 0x00000004, 0x004AB084, 0x404A8420, 0x404A8020, 0x404AFA20, - 0x00000004, 0x004AB083, 0x404AB820, 0x404A8020, 0x404AFA20, 0x00000004, - 0x004AB084, 0x404AB820, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB083, - 0x404AC020, 0x404A8020, 0x404AFA20, 0x00000004, - // Block 168, offset 0x2a00 - 0x004AB084, 0x404AC020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB083, - 0x404AC420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB084, 0x404AC420, - 0x404A8020, 0x404AFA20, 0x00000002, 0x404AB020, 0x828225B5, 0x00000002, - 0x004AB083, 0x828225B5, 0x00000004, 0x004AC083, 0x404A8020, 0x404A8020, - 0x404AFA20, 0x00000004, 0x004AC084, 0x404A8020, 0x404A8020, 0x404AFA20, - 0x00000004, 0x004AC083, 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, - 0x004AC084, 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC083, - 0x404AFA20, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC084, 0x404AFA20, - 0x404A8020, 0x404AFA20, 0x00000002, 0x404AC020, 0x828225B5, 0x00000004, - 0x004AC483, 0x404A8420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC484, - 0x404A8420, 0x404A8020, 0x404AFA20, 0x00000004, - // Block 169, offset 0x2a40 - 0x004AC483, 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC484, - 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC483, 0x404AB420, - 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC484, 0x404AB420, 0x404A8020, - 0x404AFA20, 0x00000002, 0x404AD020, 0x828225B5, 0x00000004, 0x004AE083, - 0x404A8020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AE084, 0x404A8020, - 0x404A8020, 0x404AFA20, 0x00000004, 0x004AE083, 0x404AB020, 0x404A8020, - 0x404AFA20, 0x00000004, 0x004AE084, 0x404AB020, 0x404A8020, 0x404AFA20, - 0x00000004, 0x004AE083, 0x404AC020, 0x404A8020, 0x404AFA20, 0x00000004, - 0x004AE084, 0x404AC020, 0x404A8020, 0x404AFA20, 0x00000002, 0x404AEA20, - 0x8281258B, 0x00000002, 0x404AF020, 0x8281258B, 0x00000002, 0x82822599, - 0x838225B3, 0x00000002, 0x8282259B, 0x828225B5, - // Block 170, offset 0x2a80 - 0x00000002, 0x828225A3, 0x828225B5, 0x00000002, 0x838225A3, 0x828225B5, - 0x00000002, 0x828225A7, 0x828225B5, 0x00000002, 0x828225AB, 0x828225B5, - 0x00000002, 0x402BDE20, 0xAE604202, 0x00000002, 0x002BDE88, 0xAE604202, - 0x00000003, 0x402BDE20, 0xAE604202, 0xAE603202, 0x00000003, 0x002BDE88, - 0xAE604202, 0xAE603202, 0x00000003, 0x402BDE20, 0xAE604202, 0xAE603502, - 0x00000003, 0x002BDE88, 0xAE604202, 0xAE603502, 0x00000003, 0x402BDE20, - 0xAE604202, 0xAE604E02, 0x00000003, 0x002BDE88, 0xAE604202, 0xAE604E02, - 0x00000003, 0x402BDE20, 0xAE604202, 0xAE606402, 0x00000003, 0x002BDE88, - 0xAE604202, 0xAE606402, 0x00000003, 0x402BDE20, 0xADC07002, 0xAE604202, - 0x00000003, 0x002BDE88, 0xADC07002, 0xAE604202, 0x00000002, 0x402C3A20, - 0xAE604202, 0x00000002, 0x002C3A88, 0xAE604202, - // Block 171, offset 0x2ac0 - 0x00000002, 0x402C9820, 0xAE604202, 0x00000002, 0x002C9888, 0xAE604202, - 0x00000003, 0x402C9820, 0xAE604202, 0xAE603202, 0x00000003, 0x002C9888, - 0xAE604202, 0xAE603202, 0x00000003, 0x402C9820, 0xAE604202, 0xAE603502, - 0x00000003, 0x002C9888, 0xAE604202, 0xAE603502, 0x00000003, 0x402C9820, - 0xAE604202, 0xAE604E02, 0x00000003, 0x002C9888, 0xAE604202, 0xAE604E02, - 0x00000003, 0x402C9820, 0xAE604202, 0xAE606402, 0x00000003, 0x002C9888, - 0xAE604202, 0xAE606402, 0x00000003, 0x402C9820, 0xADC07002, 0xAE604202, - 0x00000003, 0x002C9888, 0xADC07002, 0xAE604202, 0x00000002, 0x402D2220, - 0xAE604202, 0x00000002, 0x002D2288, 0xAE604202, 0x00000002, 0x402D6820, - 0xAE604202, 0x00000002, 0x002D6888, 0xAE604202, 0x00000002, 0x402D9A20, - 0xAE604202, 0x00000002, 0x002D9A88, 0xAE604202, - // Block 172, offset 0x2b00 - 0x00000002, 0x402DCC20, 0xAE604202, 0x00000002, 0x002DCC88, 0xAE604202, - 0x00000002, 0x402EE220, 0xAE604202, 0x00000002, 0x002EE288, 0xAE604202, - 0x00000003, 0x402EE220, 0xAE604202, 0xAE603202, 0x00000003, 0x002EE288, - 0xAE604202, 0xAE603202, 0x00000003, 0x402EE220, 0xAE604202, 0xAE603502, - 0x00000003, 0x002EE288, 0xAE604202, 0xAE603502, 0x00000003, 0x402EE220, - 0xAE604202, 0xAE604E02, 0x00000003, 0x002EE288, 0xAE604202, 0xAE604E02, - 0x00000003, 0x402EE220, 0xAE604202, 0xAE606402, 0x00000003, 0x002EE288, - 0xAE604202, 0xAE606402, 0x00000003, 0x402EE220, 0xADC07002, 0xAE604202, - 0x00000003, 0x002EE288, 0xADC07002, 0xAE604202, 0x00000002, 0x402FE620, - 0xAE604202, 0x00000002, 0x002FE688, 0xAE604202, 0x00000002, 0x40306C20, - 0xAE604202, 0x00000002, 0x00306C88, 0xAE604202, - // Block 173, offset 0x2b40 - 0x00000002, 0x4030E220, 0xAE604202, 0x00000002, 0x0030E288, 0xAE604202, - 0x00000002, 0x40310020, 0xAE604202, 0x00000002, 0x00310088, 0xAE604202, - 0x00000002, 0x40312A20, 0xAE604202, 0x00000002, 0x00312A88, 0xAE604202, - 0x00000003, 0x00026C84, 0x00026C84, 0x0009429F, 0x00000002, 0x0002BA84, - 0x0002BA9F, 0x00000002, 0x0002BA84, 0x0002C49F, 0x00000002, 0x0002C484, - 0x0002BA9F, 0x00000002, 0x0002C484, 0x0002C49F, 0x00000002, 0x0002E484, - 0x0002E49F, 0x00000002, 0x0002E496, 0x0002E49F, 0x00000003, 0x0002E484, - 0x0002E484, 0x0002E49F, 0x00000003, 0x0002E496, 0x0002E496, 0x0002E49F, - 0x00000003, 0x0003F484, 0x0029CE84, 0x0003F69F, 0x00000003, 0x0003F484, - 0x0029D084, 0x0003F69F, 0x00000003, 0x0003F484, 0x0029D284, 0x0003F69F, - 0x00000003, 0x0003F484, 0x0029D484, 0x0003F69F, - // Block 174, offset 0x2b80 - 0x00000003, 0x0003F484, 0x0029D684, 0x0003F69F, 0x00000003, 0x0003F484, - 0x0029D884, 0x0003F69F, 0x00000003, 0x0003F484, 0x0029DA84, 0x0003F69F, - 0x00000003, 0x0003F484, 0x0029DC84, 0x0003F69F, 0x00000003, 0x0003F484, - 0x0029DE84, 0x0003F69F, 0x00000003, 0x0003F484, 0x002BDE84, 0x0003F69F, - 0x00000003, 0x0003F484, 0x002BDE8A, 0x0003F69F, 0x00000003, 0x0003F484, - 0x002C0A84, 0x0003F69F, 0x00000003, 0x0003F484, 0x002C0A8A, 0x0003F69F, - 0x00000003, 0x0003F484, 0x002C3A84, 0x0003F69F, 0x00000003, 0x0003F484, - 0x002C3A8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002C6284, 0x0003F69F, - 0x00000003, 0x0003F484, 0x002C628A, 0x0003F69F, 0x00000003, 0x0003F484, - 0x002D0884, 0x0003F69F, 0x00000003, 0x0003F484, 0x002D088A, 0x0003F69F, - 0x00000003, 0x0003F484, 0x002D2284, 0x0003F69F, - // Block 175, offset 0x2bc0 - 0x00000003, 0x0003F484, 0x002D228A, 0x0003F69F, 0x00000003, 0x0003F484, - 0x002DCC84, 0x0003F69F, 0x00000003, 0x0003F484, 0x002DCC8A, 0x0003F69F, - 0x00000003, 0x0003F484, 0x002E2284, 0x0003F69F, 0x00000003, 0x0003F484, - 0x002E228A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002E8284, 0x0003F69F, - 0x00000003, 0x0003F484, 0x002E828A, 0x0003F69F, 0x00000003, 0x0003F484, - 0x002E9E84, 0x0003F69F, 0x00000003, 0x0003F484, 0x002E9E8A, 0x0003F69F, - 0x00000003, 0x0003F484, 0x002F2C84, 0x0003F69F, 0x00000003, 0x0003F484, - 0x002F2C8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x00306C84, 0x0003F69F, - 0x00000003, 0x0003F484, 0x00306C8A, 0x0003F69F, 0x00000003, 0x0003F484, - 0x0030BE84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0030BE8A, 0x0003F69F, - 0x00000003, 0x0003F484, 0x0030E284, 0x0003F69F, - // Block 176, offset 0x2c00 - 0x00000003, 0x0003F484, 0x0030E28A, 0x0003F69F, 0x00000003, 0x0003F484, - 0x00310084, 0x0003F69F, 0x00000003, 0x0003F484, 0x0031008A, 0x0003F69F, - 0x00000003, 0x0003F484, 0x00312A84, 0x0003F69F, 0x00000003, 0x0003F484, - 0x00312A8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062AC84, 0x0003F69F, - 0x00000003, 0x0003F484, 0x0062B084, 0x0003F69F, 0x00000003, 0x0003F484, - 0x0062B284, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062B684, 0x0003F69F, - 0x00000003, 0x0003F484, 0x0062B884, 0x0003F69F, 0x00000003, 0x0003F484, - 0x0062BA84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062BE84, 0x0003F69F, - 0x00000003, 0x0003F484, 0x0062C284, 0x0003F69F, 0x00000003, 0x0003F484, - 0x0062C484, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062C884, 0x0003F69F, - 0x00000003, 0x0003F484, 0x0062CA84, 0x0003F69F, - // Block 177, offset 0x2c40 - 0x00000003, 0x0003F484, 0x0062CC84, 0x0003F69F, 0x00000003, 0x0003F484, - 0x0062CE84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062D084, 0x0003F69F, - 0x00000003, 0x0003F484, 0x029C0084, 0x0003F69F, 0x00000003, 0x0003F484, - 0x029C0684, 0x0003F69F, 0x00000003, 0x0003F484, 0x029C1284, 0x0003F69F, - 0x00000003, 0x0003F484, 0x029CBA84, 0x0003F69F, 0x00000003, 0x0003F484, - 0x029D1884, 0x0003F69F, 0x00000003, 0x0003F484, 0x029D2884, 0x0003F69F, - 0x00000003, 0x0003F484, 0x029DC684, 0x0003F69F, 0x00000003, 0x0003F484, - 0x029E0284, 0x0003F69F, 0x00000003, 0x0003F484, 0x029E2284, 0x0003F69F, - 0x00000003, 0x0003F484, 0x02A2D684, 0x0003F69F, 0x00000003, 0x0003F484, - 0x02A2DA84, 0x0003F69F, 0x00000003, 0x0003F484, 0x02A56884, 0x0003F69F, - 0x00000003, 0x0003F484, 0x02A68284, 0x0003F69F, - // Block 178, offset 0x2c80 - 0x00000003, 0x0003F484, 0x02A6A884, 0x0003F69F, 0x00000003, 0x0003F484, - 0x02A81A84, 0x0003F69F, 0x00000003, 0x0003F484, 0x02A8F884, 0x0003F69F, - 0x00000003, 0x0003F484, 0x02ADB684, 0x0003F69F, 0x00000003, 0x0003F484, - 0x02AE3E84, 0x0003F69F, 0x00000003, 0x0003F484, 0x02B6CC84, 0x0003F69F, - 0x00000003, 0x0003F484, 0x02CBCA84, 0x0003F69F, 0x00000003, 0x0003F484, - 0x02CE1084, 0x0003F69F, 0x00000003, 0x0003F484, 0x02CE1284, 0x0003F69F, - 0x00000003, 0x0003F484, 0x02CE5084, 0x0003F69F, 0x00000003, 0x0003F484, - 0x02D05484, 0x0003F69F, 0x00000003, 0x0003F484, 0x02D86884, 0x0003F69F, - 0x00000003, 0x0003F484, 0x02E0D684, 0x0003F69F, 0x00000003, 0x0003F484, - 0x02E4F284, 0x0003F69F, 0x00000003, 0x0003F484, 0x02EDC684, 0x0003F69F, - 0x00000003, 0x0003F484, 0x02F27C84, 0x0003F69F, - // Block 179, offset 0x2cc0 - 0x00000003, 0x0003F484, 0x02F2BA84, 0x0003F69F, 0x00000003, 0x0003F484, - 0x02F2DA84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0303D484, 0x0003F69F, - 0x00000003, 0x0003F484, 0x0303E684, 0x0003F69F, 0x00000003, 0x0003F484, - 0x03194284, 0x0003F69F, 0x00000003, 0x0003F484, 0x03198E84, 0x0003F69F, - 0x00000003, 0x0003F484, 0x0323A284, 0x0003F69F, 0x00000002, 0x00070484, - 0x002C3A8A, 0x00000002, 0x00070484, 0x002D088A, 0x00000002, 0x00094284, - 0x0009429F, 0x00000003, 0x00094284, 0x00094284, 0x0009429F, 0x00000002, - 0x0029CC84, 0x0002409F, 0x00000002, 0x0029CC84, 0x0002E49F, 0x00000002, - 0x0029CC84, 0x02E1729F, 0x00000002, 0x0029CE84, 0x0002409F, 0x00000002, - 0x0029CE84, 0x0002E49F, 0x00000002, 0x0029CE9E, 0x0009589E, 0x00000002, - 0x0029CE86, 0x0029CC86, 0x00000003, 0x0029CE84, - // Block 180, offset 0x2d00 - 0x0029CC84, 0x0002E49F, 0x00000003, 0x0029CE84, 0x0029CC84, 0x02CBCA9F, - 0x00000003, 0x0029CE84, 0x0029CC84, 0x02CE109F, 0x00000003, 0x0029CE84, - 0x0029CC84, 0x02E1729F, 0x00000002, 0x0029CE86, 0x0029CE86, 0x00000003, - 0x0029CE84, 0x0029CE84, 0x0002E49F, 0x00000003, 0x0029CE84, 0x0029CE84, - 0x02CBCA9F, 0x00000003, 0x0029CE84, 0x0029CE84, 0x02CE109F, 0x00000003, - 0x0029CE84, 0x0029CE84, 0x02E1729F, 0x00000002, 0x0029CE86, 0x0029D086, - 0x00000003, 0x0029CE84, 0x0029D084, 0x0002E49F, 0x00000003, 0x0029CE84, - 0x0029D084, 0x02CBCA9F, 0x00000003, 0x0029CE84, 0x0029D084, 0x02CE109F, - 0x00000003, 0x0029CE84, 0x0029D084, 0x02E1729F, 0x00000002, 0x0029CE86, - 0x0029D286, 0x00000003, 0x0029CE84, 0x0029D284, 0x0002E49F, 0x00000003, - 0x0029CE84, 0x0029D284, 0x02CBCA9F, 0x00000003, - // Block 181, offset 0x2d40 - 0x0029CE84, 0x0029D284, 0x02E1729F, 0x00000002, 0x0029CE86, 0x0029D486, - 0x00000003, 0x0029CE84, 0x0029D484, 0x0002E49F, 0x00000003, 0x0029CE84, - 0x0029D484, 0x02CBCA9F, 0x00000003, 0x0029CE84, 0x0029D484, 0x02E1729F, - 0x00000002, 0x0029CE86, 0x0029D686, 0x00000003, 0x0029CE84, 0x0029D684, - 0x0002E49F, 0x00000003, 0x0029CE84, 0x0029D684, 0x02CBCA9F, 0x00000003, - 0x0029CE84, 0x0029D684, 0x02E1729F, 0x00000002, 0x0029CE86, 0x0029D886, - 0x00000003, 0x0029CE84, 0x0029D884, 0x0002E49F, 0x00000003, 0x0029CE84, - 0x0029D884, 0x02CBCA9F, 0x00000003, 0x0029CE84, 0x0029D884, 0x02E1729F, - 0x00000002, 0x0029CE86, 0x0029DA86, 0x00000003, 0x0029CE84, 0x0029DA84, - 0x0002E49F, 0x00000003, 0x0029CE84, 0x0029DA84, 0x02CBCA9F, 0x00000003, - 0x0029CE84, 0x0029DA84, 0x02E1729F, 0x00000002, - // Block 182, offset 0x2d80 - 0x0029CE86, 0x0029DC86, 0x00000003, 0x0029CE84, 0x0029DC84, 0x0002E49F, - 0x00000003, 0x0029CE84, 0x0029DC84, 0x02CBCA9F, 0x00000003, 0x0029CE84, - 0x0029DC84, 0x02E1729F, 0x00000002, 0x0029CE86, 0x0029DE86, 0x00000003, - 0x0029CE84, 0x0029DE84, 0x0002E49F, 0x00000003, 0x0029CE84, 0x0029DE84, - 0x02CBCA9F, 0x00000003, 0x0029CE84, 0x0029DE84, 0x02E1729F, 0x00000002, - 0x0029CE84, 0x02CBCA9F, 0x00000002, 0x0029CE84, 0x02CE109F, 0x00000002, - 0x0029CE84, 0x02E1729F, 0x00000002, 0x0029D084, 0x0002409F, 0x00000002, - 0x0029D084, 0x0002E49F, 0x00000002, 0x0029D086, 0x0029CC86, 0x00000003, - 0x0029D084, 0x0029CC84, 0x0002E49F, 0x00000003, 0x0029D084, 0x0029CC84, - 0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029CC84, 0x02E1729F, 0x00000002, - 0x0029D086, 0x0029CE86, 0x00000003, 0x0029D084, - // Block 183, offset 0x2dc0 - 0x0029CE84, 0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029CE84, 0x02E1729F, - 0x00000002, 0x0029D086, 0x0029D086, 0x00000003, 0x0029D084, 0x0029D084, - 0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029D084, 0x02E1729F, 0x00000002, - 0x0029D086, 0x0029D286, 0x00000003, 0x0029D084, 0x0029D284, 0x02CBCA9F, - 0x00000003, 0x0029D084, 0x0029D284, 0x02E1729F, 0x00000002, 0x0029D086, - 0x0029D486, 0x00000003, 0x0029D084, 0x0029D484, 0x02CBCA9F, 0x00000003, - 0x0029D084, 0x0029D484, 0x02E1729F, 0x00000002, 0x0029D086, 0x0029D686, - 0x00000003, 0x0029D084, 0x0029D684, 0x02CBCA9F, 0x00000002, 0x0029D086, - 0x0029D886, 0x00000003, 0x0029D084, 0x0029D884, 0x02CBCA9F, 0x00000002, - 0x0029D086, 0x0029DA86, 0x00000003, 0x0029D084, 0x0029DA84, 0x02CBCA9F, - 0x00000002, 0x0029D086, 0x0029DC86, 0x00000003, - // Block 184, offset 0x2e00 - 0x0029D084, 0x0029DC84, 0x02CBCA9F, 0x00000002, 0x0029D086, 0x0029DE86, - 0x00000003, 0x0029D084, 0x0029DE84, 0x02CBCA9F, 0x00000002, 0x0029D084, - 0x02CBCA9F, 0x00000002, 0x0029D084, 0x02CE109F, 0x00000002, 0x0029D084, - 0x02E1729F, 0x00000002, 0x0029D284, 0x0002409F, 0x00000002, 0x0029D284, - 0x0002E49F, 0x00000002, 0x0029D286, 0x0029CC86, 0x00000003, 0x0029D284, - 0x0029CC84, 0x02CBCA9F, 0x00000002, 0x0029D286, 0x0029CE86, 0x00000003, - 0x0029D284, 0x0029CE84, 0x02CBCA9F, 0x00000002, 0x0029D286, 0x0029D086, - 0x00000002, 0x0029D286, 0x0029D286, 0x00000002, 0x0029D286, 0x0029D486, - 0x00000002, 0x0029D286, 0x0029D686, 0x00000002, 0x0029D286, 0x0029D886, - 0x00000002, 0x0029D286, 0x0029DA86, 0x00000002, 0x0029D286, 0x0029DC86, - 0x00000002, 0x0029D286, 0x0029DE86, 0x00000002, - // Block 185, offset 0x2e40 - 0x0029D284, 0x02CBCA9F, 0x00000002, 0x0029D284, 0x02CE109F, 0x00000002, - 0x0029D284, 0x02E1729F, 0x00000002, 0x0029D484, 0x0002409F, 0x00000002, - 0x0029D484, 0x0002E49F, 0x00000002, 0x0029D486, 0x0029CC86, 0x00000002, - 0x0029D486, 0x0029CE86, 0x00000002, 0x0029D486, 0x0029D086, 0x00000002, - 0x0029D486, 0x0029D286, 0x00000002, 0x0029D486, 0x0029D486, 0x00000002, - 0x0029D486, 0x0029D686, 0x00000002, 0x0029D486, 0x0029D886, 0x00000002, - 0x0029D486, 0x0029DA86, 0x00000002, 0x0029D486, 0x0029DC86, 0x00000002, - 0x0029D486, 0x0029DE86, 0x00000002, 0x0029D484, 0x02CBCA9F, 0x00000002, - 0x0029D484, 0x02CE109F, 0x00000002, 0x0029D484, 0x02E1729F, 0x00000002, - 0x0029D684, 0x0002409F, 0x00000002, 0x0029D684, 0x0002E49F, 0x00000002, - 0x0029D686, 0x0029CC86, 0x00000002, 0x0029D684, - // Block 186, offset 0x2e80 - 0x02CBCA9F, 0x00000002, 0x0029D684, 0x02CE109F, 0x00000002, 0x0029D684, - 0x02E1729F, 0x00000002, 0x0029D884, 0x0002409F, 0x00000002, 0x0029D884, - 0x0002E49F, 0x00000002, 0x0029D884, 0x02CBCA9F, 0x00000002, 0x0029D884, - 0x02CE109F, 0x00000002, 0x0029D884, 0x02E1729F, 0x00000002, 0x0029DA84, - 0x0002409F, 0x00000002, 0x0029DA84, 0x0002E49F, 0x00000002, 0x0029DA84, - 0x02CBCA9F, 0x00000002, 0x0029DA84, 0x02CE109F, 0x00000002, 0x0029DA84, - 0x02E1729F, 0x00000002, 0x0029DC84, 0x0002409F, 0x00000002, 0x0029DC84, - 0x0002E49F, 0x00000002, 0x0029DC84, 0x02CBCA9F, 0x00000002, 0x0029DC84, - 0x02CE109F, 0x00000002, 0x0029DC84, 0x02E1729F, 0x00000002, 0x0029DE84, - 0x0002409F, 0x00000002, 0x0029DE84, 0x0002E49F, 0x00000002, 0x0029DE84, - 0x02CBCA9F, 0x00000002, 0x0029DE84, 0x02CE109F, - // Block 187, offset 0x2ec0 - 0x00000002, 0x0029DE84, 0x02E1729F, 0x00000002, 0x002BDE9D, 0x00306C9D, - 0x00000002, 0x002BDE84, 0x0031E284, 0x00000002, 0x402C1820, 0xA0105402, - 0x00000002, 0x402C1A20, 0xA0105402, 0x00000002, 0x402C1C20, 0xA0105402, - 0x00000002, 0x402C2220, 0xAE603202, 0x00000002, 0x402C2220, 0xAE603502, - 0x00000002, 0x402C2220, 0xAE603702, 0x00000003, 0x402C2220, 0xAE603702, - 0xAE603202, 0x00000003, 0x402C2220, 0xAE603702, 0xAE603502, 0x00000003, - 0x402C2220, 0xAE603702, 0xAE604E02, 0x00000003, 0x402C2220, 0xAE603702, - 0xAE606402, 0x00000002, 0x402C2220, 0xAE603C02, 0x00000003, 0x402C2220, - 0xAE603C02, 0xAE603202, 0x00000003, 0x402C2220, 0xAE603C02, 0xAE603502, - 0x00000003, 0x402C2220, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C2220, - 0xAE603C02, 0xAE606402, 0x00000002, 0x402C2220, - // Block 188, offset 0x2f00 - 0xAE604102, 0x00000002, 0x402C2220, 0xAE604302, 0x00000003, 0x402C2220, - 0xAE604302, 0xAE603202, 0x00000002, 0x402C2220, 0xAE604702, 0x00000003, - 0x402C2220, 0xAE604702, 0xAE605B02, 0x00000002, 0x402C2220, 0xAE604E02, - 0x00000002, 0x402C2220, 0xAE605202, 0x00000003, 0x402C2220, 0xAE605202, - 0xAE605B02, 0x00000002, 0x402C2220, 0xACA05902, 0x00000002, 0x402C2220, - 0xAE605B02, 0x00000002, 0x402C2220, 0xAE606402, 0x00000002, 0x402C2220, - 0xAE606502, 0x00000002, 0x402C2220, 0xAE606702, 0x00000002, 0x402C2220, - 0xADC07002, 0x00000003, 0x402C2220, 0xADC07002, 0xAE603702, 0x00000003, - 0x402C2220, 0xADC07002, 0xAE603C02, 0x00000002, 0x402C2220, 0xADC07602, - 0x00000002, 0x402C2420, 0xAE605202, 0x00000002, 0x402C2420, 0xADC07002, - 0x00000002, 0x402C2420, 0xADC07B02, 0x00000002, - // Block 189, offset 0x2f40 - 0x402C2620, 0xAE603202, 0x00000002, 0x402C2620, 0xAE603C02, 0x00000002, - 0x402C2620, 0xAE604102, 0x00000002, 0x402C2620, 0xAE605202, 0x00000002, - 0x402C2620, 0xACA05602, 0x00000003, 0x402C2620, 0xACA05602, 0xAE603202, - 0x00000002, 0x402C2820, 0xAE604102, 0x00000002, 0x402C2820, 0xAE605202, - 0x00000002, 0x402C2820, 0xACA05602, 0x00000002, 0x402C2820, 0xADC07002, - 0x00000002, 0x402C2820, 0xADC07802, 0x00000002, 0x402C2820, 0xADC07B02, - 0x00000002, 0x402C2A20, 0xAE603202, 0x00000002, 0x402C2A20, 0xAE603502, - 0x00000002, 0x402C2A20, 0xAE603702, 0x00000002, 0x402C2A20, 0xAE603C02, - 0x00000003, 0x402C2A20, 0xAE603C02, 0xAE603202, 0x00000003, 0x402C2A20, - 0xAE603C02, 0xAE603502, 0x00000003, 0x402C2A20, 0xAE603C02, 0xAE604E02, - 0x00000003, 0x402C2A20, 0xAE603C02, 0xAE606402, - // Block 190, offset 0x2f80 - 0x00000002, 0x402C2A20, 0xAE604102, 0x00000002, 0x402C2A20, 0xAE604702, - 0x00000002, 0x402C2A20, 0xAE604E02, 0x00000002, 0x402C2A20, 0xAE605202, - 0x00000002, 0x402C2A20, 0xACA05602, 0x00000003, 0x402C2A20, 0xACA05602, - 0xAE603702, 0x00000002, 0x402C2A20, 0xACA05902, 0x00000002, 0x402C2A20, - 0xAE605B02, 0x00000003, 0x402C2A20, 0xAE605B02, 0xAE603202, 0x00000003, - 0x402C2A20, 0xAE605B02, 0xAE603502, 0x00000002, 0x402C2A20, 0xAE606402, - 0x00000002, 0x402C2A20, 0xAE606502, 0x00000002, 0x402C2A20, 0xAE606702, - 0x00000002, 0x402C2A20, 0xADC07002, 0x00000003, 0x402C2A20, 0xADC07002, - 0xAE603C02, 0x00000002, 0x402C2A20, 0xADC07802, 0x00000002, 0x402C2A20, - 0xADC07A02, 0x00000002, 0x402C2C20, 0xAE605202, 0x00000002, 0x402C2E20, - 0xAE603202, 0x00000002, 0x402C2E20, 0xAE603702, - // Block 191, offset 0x2fc0 - 0x00000002, 0x402C2E20, 0xAE603C02, 0x00000002, 0x402C2E20, 0xAE604102, - 0x00000002, 0x402C2E20, 0xAE605202, 0x00000002, 0x402C2E20, 0xACA05602, - 0x00000002, 0x402C2E20, 0xAE605B02, 0x00000002, 0x402C3020, 0xAE603C02, - 0x00000002, 0x402C3020, 0xAE604102, 0x00000002, 0x402C3020, 0xAE604702, - 0x00000002, 0x402C3020, 0xAE605202, 0x00000002, 0x402C3020, 0xACA05602, - 0x00000002, 0x402C3020, 0xADC07002, 0x00000002, 0x402C3020, 0xADC07902, - 0x00000002, 0x402C3220, 0xAE603202, 0x00000002, 0x402C3220, 0xAE603502, - 0x00000002, 0x402C3220, 0xAE603702, 0x00000002, 0x402C3220, 0xAE603C02, - 0x00000002, 0x402C3220, 0xAE604102, 0x00000002, 0x402C3220, 0xAE604702, - 0x00000003, 0x402C3220, 0xAE604702, 0xAE603202, 0x00000002, 0x402C3220, - 0xAE604E02, 0x00000002, 0x402C3220, 0xAE605202, - // Block 192, offset 0x3000 - 0x00000002, 0x402C3220, 0xACA05902, 0x00000002, 0x402C3220, 0xAE605B02, - 0x00000002, 0x402C3220, 0xAE606402, 0x00000002, 0x402C3220, 0xAE606502, - 0x00000002, 0x402C3220, 0xAE606702, 0x00000002, 0x402C3220, 0xADC07002, - 0x00000002, 0x402C3220, 0xADC07A02, 0x00000002, 0x402C3420, 0xAE603C02, - 0x00000002, 0x402C3620, 0xAE603202, 0x00000002, 0x402C3620, 0xAE604102, - 0x00000002, 0x402C3620, 0xACA05602, 0x00000002, 0x402C3620, 0xADC07002, - 0x00000002, 0x402C3620, 0xADC07B02, 0x00000002, 0x402C3820, 0xAE603202, - 0x00000002, 0x402C3820, 0xAE604102, 0x00000002, 0x402C3820, 0xACA05602, - 0x00000002, 0x402C3820, 0xADC07002, 0x00000003, 0x402C3820, 0xADC07002, - 0xAE605B02, 0x00000002, 0x402C3820, 0xADC07802, 0x00000002, 0x402C3820, - 0xADC07B02, 0x00000002, 0x402C3A20, 0xAE603202, - // Block 193, offset 0x3040 - 0x00000002, 0x402C3A20, 0xAE605202, 0x00000002, 0x402C3A20, 0xADC07002, - 0x00000002, 0x002C3A9C, 0x002C3A9C, 0x00000002, 0x002C3A8C, 0x002C628C, - 0x00000002, 0x002C3A9C, 0x002C629C, 0x00000002, 0x002C3A9C, 0x002E829C, - 0x00000002, 0x402C3C20, 0xAE603202, 0x00000002, 0x402C3C20, 0xAE603502, - 0x00000002, 0x402C3C20, 0xAE604102, 0x00000002, 0x402C3C20, 0xAE604E02, - 0x00000002, 0x402C3C20, 0xAE605202, 0x00000002, 0x402C3C20, 0xACA05602, - 0x00000002, 0x402C3C20, 0xADC07002, 0x00000002, 0x402C3C20, 0xADC07802, - 0x00000002, 0x402C3C20, 0xADC07B02, 0x00000002, 0x402C3E20, 0xAE603202, - 0x00000002, 0x402C3E20, 0xAE603502, 0x00000002, 0x402C3E20, 0xAE603702, - 0x00000002, 0x402C3E20, 0xAE603C02, 0x00000003, 0x402C3E20, 0xAE603C02, - 0xAE603202, 0x00000003, 0x402C3E20, 0xAE603C02, - // Block 194, offset 0x3080 - 0xAE603502, 0x00000003, 0x402C3E20, 0xAE603C02, 0xAE604E02, 0x00000003, - 0x402C3E20, 0xAE603C02, 0xAE606402, 0x00000002, 0x402C3E20, 0xAE604102, - 0x00000002, 0x402C3E20, 0xAE604702, 0x00000003, 0x402C3E20, 0xAE604702, - 0xAE605B02, 0x00000002, 0x402C3E20, 0xAE604D02, 0x00000002, 0x402C3E20, - 0xAE604E02, 0x00000003, 0x402C3E20, 0xAE604E02, 0xAE603202, 0x00000003, - 0x402C3E20, 0xAE604E02, 0xAE604702, 0x00000003, 0x402C3E20, 0xAE604E02, - 0xAE605B02, 0x00000002, 0x402C3E20, 0xAE605202, 0x00000003, 0x402C3E20, - 0xAE605202, 0xAE605B02, 0x00000002, 0x402C3E20, 0xACA05902, 0x00000003, - 0x402C3E20, 0xACA05902, 0xAE605B02, 0x00000002, 0x402C3E20, 0xAE605B02, - 0x00000003, 0x402C3E20, 0xAE605B02, 0xAE603202, 0x00000003, 0x402C3E20, - 0xAE605B02, 0xAE603502, 0x00000002, 0x402C3E20, - // Block 195, offset 0x30c0 - 0xAE606402, 0x00000002, 0x402C3E20, 0xAE606502, 0x00000002, 0x402C3E20, - 0xAE606702, 0x00000002, 0x402C3E20, 0xAD806802, 0x00000003, 0x402C3E20, - 0xAD806802, 0xAE603202, 0x00000003, 0x402C3E20, 0xAD806802, 0xAE603502, - 0x00000003, 0x402C3E20, 0xAD806802, 0xAE604E02, 0x00000003, 0x402C3E20, - 0xAD806802, 0xAE606402, 0x00000003, 0x402C3E20, 0xAD806802, 0xADC07002, - 0x00000002, 0x402C3E20, 0xADC07002, 0x00000003, 0x402C3E20, 0xADC07002, - 0xAE603C02, 0x00000002, 0x402C4020, 0xAE603202, 0x00000002, 0x402C4020, - 0xAE605202, 0x00000002, 0x402C4420, 0xAE603202, 0x00000002, 0x402C4420, - 0xAE604102, 0x00000002, 0x402C4420, 0xAE605202, 0x00000002, 0x402C4420, - 0xACA05602, 0x00000002, 0x402C4420, 0xAE606502, 0x00000002, 0x402C4420, - 0xAE606702, 0x00000002, 0x402C4420, 0xADC07002, - // Block 196, offset 0x3100 - 0x00000003, 0x402C4420, 0xADC07002, 0xAE605B02, 0x00000002, 0x402C4420, - 0xADC07B02, 0x00000002, 0x402C4620, 0xAE603202, 0x00000003, 0x402C4620, - 0xAE603202, 0xAE605202, 0x00000002, 0x402C4620, 0xAE603C02, 0x00000002, - 0x402C4620, 0xAE604102, 0x00000003, 0x402C4620, 0xAE604102, 0xAE605202, - 0x00000002, 0x402C4620, 0xAE605202, 0x00000002, 0x402C4620, 0xACA05602, - 0x00000002, 0x402C4620, 0xADC07002, 0x00000003, 0x402C4620, 0xADC07002, - 0xAE605202, 0x00000002, 0x402C4620, 0xADC07702, 0x00000002, 0x402C4820, - 0xAE604102, 0x00000002, 0x402C4820, 0xAE605202, 0x00000002, 0x402C4820, - 0xACA05602, 0x00000002, 0x402C4820, 0xADC07002, 0x00000002, 0x402C4820, - 0xADC07702, 0x00000002, 0x402C4820, 0xADC07802, 0x00000002, 0x402C4820, - 0xADC07B02, 0x00000002, 0x402C4A20, 0xAE603202, - // Block 197, offset 0x3140 - 0x00000002, 0x402C4A20, 0xAE603502, 0x00000002, 0x402C4A20, 0xAE603702, - 0x00000002, 0x402C4A20, 0xAE603C02, 0x00000002, 0x402C4A20, 0xAE604102, - 0x00000002, 0x402C4A20, 0xAE604302, 0x00000002, 0x402C4A20, 0xAE604702, - 0x00000003, 0x402C4A20, 0xAE604702, 0xAE603202, 0x00000003, 0x402C4A20, - 0xAE604702, 0xAE603502, 0x00000003, 0x402C4A20, 0xAE604702, 0xAE604102, - 0x00000003, 0x402C4A20, 0xAE604702, 0xAE605B02, 0x00000002, 0x402C4A20, - 0xAE604D02, 0x00000002, 0x402C4A20, 0xAE604E02, 0x00000003, 0x402C4A20, - 0xAE604E02, 0xAE603202, 0x00000002, 0x402C4A20, 0xACA05902, 0x00000002, - 0x402C4A20, 0xAE605B02, 0x00000003, 0x402C4A20, 0xAE605B02, 0xAE604702, - 0x00000002, 0x402C4A20, 0xAE606402, 0x00000002, 0x402C4A20, 0xAE606502, - 0x00000002, 0x402C4A20, 0xAE606702, 0x00000002, - // Block 198, offset 0x3180 - 0x402C4A20, 0xAD806802, 0x00000003, 0x402C4A20, 0xAD806802, 0xAE603202, - 0x00000003, 0x402C4A20, 0xAD806802, 0xAE603502, 0x00000003, 0x402C4A20, - 0xAD806802, 0xAE604E02, 0x00000003, 0x402C4A20, 0xAD806802, 0xAE606402, - 0x00000003, 0x402C4A20, 0xAD806802, 0xADC07002, 0x00000002, 0x402C4A20, - 0xADC07002, 0x00000002, 0x402C4A20, 0xADC07502, 0x00000002, 0x402C4A20, - 0xADC07802, 0x00000002, 0x402C4A20, 0xADC07A02, 0x00000002, 0x402C4C20, - 0xAE604E02, 0x00000002, 0x402C4C20, 0xADC07002, 0x00000002, 0x402C4E20, - 0xAE603202, 0x00000002, 0x402C4E20, 0xAE603502, 0x00000002, 0x402C4E20, - 0xAE603C02, 0x00000002, 0x402C4E20, 0xAE604702, 0x00000002, 0x402C4E20, - 0xAE605202, 0x00000002, 0x402C4E20, 0xADC07002, 0x00000002, 0x402C5020, - 0xAE604702, 0x00000002, 0x402C5020, 0xAE605202, - // Block 199, offset 0x31c0 - 0x00000002, 0x402C5220, 0xAE603202, 0x00000002, 0x402C5220, 0xAE603502, - 0x00000002, 0x402C5220, 0xAE603C02, 0x00000002, 0x402C5220, 0xAE604702, - 0x00000002, 0x402C5220, 0xAE604E02, 0x00000002, 0x402C5220, 0xAE605202, - 0x00000002, 0x402C5220, 0xAE605B02, 0x00000002, 0x402C5220, 0xAE606402, - 0x00000002, 0x402C5220, 0xADC07002, 0x00000002, 0x402C5420, 0xAE603202, - 0x00000002, 0x402C5420, 0xAE603C02, 0x00000002, 0x402C5420, 0xAE604102, - 0x00000002, 0x402C5420, 0xAE605202, 0x00000002, 0x402C5420, 0xADC07002, - 0x00000002, 0x402C5420, 0xADC07B02, 0x00000002, 0x402C6220, 0xAE603202, - 0x00000002, 0x402C6220, 0xAE603502, 0x00000002, 0x402C6220, 0xAE603702, - 0x00000003, 0x402C6220, 0xAE603702, 0xAE603202, 0x00000003, 0x402C6220, - 0xAE603702, 0xAE603502, 0x00000003, 0x402C6220, - // Block 200, offset 0x3200 - 0xAE603702, 0xAE604E02, 0x00000003, 0x402C6220, 0xAE603702, 0xAE606402, - 0x00000002, 0x402C6220, 0xAE603C02, 0x00000003, 0x402C6220, 0xAE603C02, - 0xAE603202, 0x00000003, 0x402C6220, 0xAE603C02, 0xAE603502, 0x00000003, - 0x402C6220, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C6220, 0xAE603C02, - 0xAE606402, 0x00000002, 0x402C6220, 0xAE604102, 0x00000002, 0x402C6220, - 0xAE604302, 0x00000003, 0x402C6220, 0xAE604302, 0xAE603202, 0x00000002, - 0x402C6220, 0xAE604702, 0x00000003, 0x402C6220, 0xAE604702, 0xAE605B02, - 0x00000002, 0x402C6220, 0xAE604E02, 0x00000002, 0x402C6220, 0xAE605202, - 0x00000003, 0x402C6220, 0xAE605202, 0xAE605B02, 0x00000002, 0x402C6220, - 0xACA05902, 0x00000002, 0x402C6220, 0xAE605B02, 0x00000002, 0x402C6220, - 0xAE606402, 0x00000002, 0x402C6220, 0xAE606502, - // Block 201, offset 0x3240 - 0x00000002, 0x402C6220, 0xAE606702, 0x00000002, 0x402C6220, 0xADC07002, - 0x00000003, 0x402C6220, 0xADC07002, 0xAE603702, 0x00000003, 0x402C6220, - 0xADC07002, 0xAE603C02, 0x00000002, 0x402C6220, 0xADC07602, 0x00000002, - 0x002C629C, 0x002BDE9C, 0x00000002, 0x002C629C, 0x002C0A9D, 0x00000002, - 0x002C629D, 0x002DCC9D, 0x00000002, 0x002C629C, 0x002E229C, 0x00000002, - 0x002C629C, 0x002E829C, 0x00000002, 0x002C6284, 0x00312A84, 0x00000002, - 0x002C628A, 0x00312A84, 0x00000002, 0x002C628A, 0x00312A8A, 0x00000002, - 0x402C6420, 0xAE605202, 0x00000002, 0x402C6420, 0xADC07002, 0x00000002, - 0x402C6420, 0xADC07B02, 0x00000002, 0x402C6620, 0xAE603202, 0x00000002, - 0x402C6620, 0xAE603C02, 0x00000002, 0x402C6620, 0xAE604102, 0x00000002, - 0x402C6620, 0xAE605202, 0x00000002, 0x402C6620, - // Block 202, offset 0x3280 - 0xACA05602, 0x00000003, 0x402C6620, 0xACA05602, 0xAE603202, 0x00000002, - 0x402C6820, 0xAE604102, 0x00000002, 0x402C6820, 0xAE605202, 0x00000002, - 0x402C6820, 0xACA05602, 0x00000002, 0x402C6820, 0xADC07002, 0x00000002, - 0x402C6820, 0xADC07802, 0x00000002, 0x402C6820, 0xADC07B02, 0x00000002, - 0x402C6A20, 0xAE603202, 0x00000002, 0x402C6A20, 0xAE603502, 0x00000002, - 0x402C6A20, 0xAE603702, 0x00000002, 0x402C6A20, 0xAE603C02, 0x00000003, - 0x402C6A20, 0xAE603C02, 0xAE603202, 0x00000003, 0x402C6A20, 0xAE603C02, - 0xAE603502, 0x00000003, 0x402C6A20, 0xAE603C02, 0xAE604E02, 0x00000003, - 0x402C6A20, 0xAE603C02, 0xAE606402, 0x00000002, 0x402C6A20, 0xAE604102, - 0x00000002, 0x402C6A20, 0xAE604702, 0x00000002, 0x402C6A20, 0xAE604E02, - 0x00000002, 0x402C6A20, 0xAE605202, 0x00000002, - // Block 203, offset 0x32c0 - 0x402C6A20, 0xACA05602, 0x00000003, 0x402C6A20, 0xACA05602, 0xAE603702, - 0x00000002, 0x402C6A20, 0xACA05902, 0x00000002, 0x402C6A20, 0xAE605B02, - 0x00000003, 0x402C6A20, 0xAE605B02, 0xAE603202, 0x00000003, 0x402C6A20, - 0xAE605B02, 0xAE603502, 0x00000002, 0x402C6A20, 0xAE606402, 0x00000002, - 0x402C6A20, 0xAE606502, 0x00000002, 0x402C6A20, 0xAE606702, 0x00000002, - 0x402C6A20, 0xADC07002, 0x00000003, 0x402C6A20, 0xADC07002, 0xAE603C02, - 0x00000002, 0x402C6A20, 0xADC07802, 0x00000002, 0x402C6A20, 0xADC07A02, - 0x00000002, 0x402C6C20, 0xAE605202, 0x00000002, 0x402C6E20, 0xAE603202, - 0x00000002, 0x402C6E20, 0xAE603702, 0x00000002, 0x402C6E20, 0xAE603C02, - 0x00000002, 0x402C6E20, 0xAE604102, 0x00000002, 0x402C6E20, 0xAE605202, - 0x00000002, 0x402C6E20, 0xACA05602, 0x00000002, - // Block 204, offset 0x3300 - 0x402C6E20, 0xAE605B02, 0x00000002, 0x402C7020, 0xAE603C02, 0x00000002, - 0x402C7020, 0xAE604102, 0x00000002, 0x402C7020, 0xAE604702, 0x00000002, - 0x402C7020, 0xAE605202, 0x00000002, 0x402C7020, 0xACA05602, 0x00000002, - 0x402C7020, 0xADC07002, 0x00000002, 0x402C7020, 0xADC07902, 0x00000002, - 0x402C7020, 0xADC07B02, 0x00000002, 0x402C7220, 0xAE603202, 0x00000002, - 0x402C7220, 0xAE603502, 0x00000002, 0x402C7220, 0xAE603702, 0x00000002, - 0x402C7220, 0xAE603C02, 0x00000002, 0x402C7220, 0xAE604102, 0x00000002, - 0x402C7220, 0xAE604702, 0x00000003, 0x402C7220, 0xAE604702, 0xAE603202, - 0x00000002, 0x402C7220, 0xAE604E02, 0x00000002, 0x402C7220, 0xACA05902, - 0x00000002, 0x402C7220, 0xAE605B02, 0x00000002, 0x402C7220, 0xAE606402, - 0x00000002, 0x402C7220, 0xAE606502, 0x00000002, - // Block 205, offset 0x3340 - 0x402C7220, 0xAE606702, 0x00000002, 0x402C7220, 0xADC07002, 0x00000002, - 0x402C7220, 0xADC07A02, 0x00000002, 0x402C7420, 0xAE603C02, 0x00000002, - 0x402C7420, 0xAE604102, 0x00000002, 0x402C7620, 0xAE603202, 0x00000002, - 0x402C7620, 0xAE604102, 0x00000002, 0x402C7620, 0xACA05602, 0x00000002, - 0x402C7620, 0xADC07002, 0x00000002, 0x402C7620, 0xADC07B02, 0x00000002, - 0x402C7820, 0xAE603202, 0x00000002, 0x402C7820, 0xAE604102, 0x00000002, - 0x402C7820, 0xACA05602, 0x00000002, 0x402C7820, 0xADC07002, 0x00000003, - 0x402C7820, 0xADC07002, 0xAE605B02, 0x00000002, 0x402C7820, 0xADC07802, - 0x00000002, 0x402C7820, 0xADC07B02, 0x00000002, 0x402C7A20, 0xAE603202, - 0x00000002, 0x402C7A20, 0xAE605202, 0x00000002, 0x402C7A20, 0xADC07002, - 0x00000002, 0x402C7C20, 0xAE603202, 0x00000002, - // Block 206, offset 0x3380 - 0x402C7C20, 0xAE603502, 0x00000002, 0x402C7C20, 0xAE604102, 0x00000002, - 0x402C7C20, 0xAE604E02, 0x00000002, 0x402C7C20, 0xAE605202, 0x00000002, - 0x402C7C20, 0xACA05602, 0x00000002, 0x402C7C20, 0xADC07002, 0x00000002, - 0x402C7C20, 0xADC07802, 0x00000002, 0x402C7C20, 0xADC07B02, 0x00000002, - 0x402C7E20, 0xAE603202, 0x00000002, 0x402C7E20, 0xAE603502, 0x00000002, - 0x402C7E20, 0xAE603702, 0x00000002, 0x402C7E20, 0xAE603C02, 0x00000003, - 0x402C7E20, 0xAE603C02, 0xAE603202, 0x00000003, 0x402C7E20, 0xAE603C02, - 0xAE603502, 0x00000003, 0x402C7E20, 0xAE603C02, 0xAE604E02, 0x00000003, - 0x402C7E20, 0xAE603C02, 0xAE606402, 0x00000002, 0x402C7E20, 0xAE604102, - 0x00000002, 0x402C7E20, 0xAE604702, 0x00000003, 0x402C7E20, 0xAE604702, - 0xAE605B02, 0x00000002, 0x402C7E20, 0xAE604D02, - // Block 207, offset 0x33c0 - 0x00000002, 0x402C7E20, 0xAE604E02, 0x00000003, 0x402C7E20, 0xAE604E02, - 0xAE603202, 0x00000003, 0x402C7E20, 0xAE604E02, 0xAE604702, 0x00000003, - 0x402C7E20, 0xAE604E02, 0xAE605B02, 0x00000002, 0x402C7E20, 0xAE605202, - 0x00000003, 0x402C7E20, 0xAE605202, 0xAE605B02, 0x00000002, 0x402C7E20, - 0xACA05902, 0x00000003, 0x402C7E20, 0xACA05902, 0xAE605B02, 0x00000002, - 0x402C7E20, 0xAE605B02, 0x00000003, 0x402C7E20, 0xAE605B02, 0xAE603202, - 0x00000003, 0x402C7E20, 0xAE605B02, 0xAE603502, 0x00000002, 0x402C7E20, - 0xAE606402, 0x00000002, 0x402C7E20, 0xAE606502, 0x00000002, 0x402C7E20, - 0xAE606702, 0x00000002, 0x402C7E20, 0xAD806802, 0x00000003, 0x402C7E20, - 0xAD806802, 0xAE603202, 0x00000003, 0x402C7E20, 0xAD806802, 0xAE603502, - 0x00000003, 0x402C7E20, 0xAD806802, 0xAE604E02, - // Block 208, offset 0x3400 - 0x00000003, 0x402C7E20, 0xAD806802, 0xAE606402, 0x00000003, 0x402C7E20, - 0xAD806802, 0xADC07002, 0x00000002, 0x402C7E20, 0xADC07002, 0x00000003, - 0x402C7E20, 0xADC07002, 0xAE603C02, 0x00000002, 0x402C8020, 0xAE603202, - 0x00000002, 0x402C8020, 0xAE605202, 0x00000002, 0x402C8420, 0xAE603202, - 0x00000002, 0x402C8420, 0xAE604102, 0x00000002, 0x402C8420, 0xAE605202, - 0x00000002, 0x402C8420, 0xACA05602, 0x00000002, 0x402C8420, 0xAE606502, - 0x00000002, 0x402C8420, 0xAE606702, 0x00000002, 0x402C8420, 0xADC07002, - 0x00000003, 0x402C8420, 0xADC07002, 0xAE605B02, 0x00000002, 0x402C8420, - 0xADC07B02, 0x00000002, 0x402C8620, 0xAE603202, 0x00000003, 0x402C8620, - 0xAE603202, 0xAE605202, 0x00000002, 0x402C8620, 0xAE603C02, 0x00000002, - 0x402C8620, 0xAE604102, 0x00000003, 0x402C8620, - // Block 209, offset 0x3440 - 0xAE604102, 0xAE605202, 0x00000002, 0x402C8620, 0xAE605202, 0x00000002, - 0x402C8620, 0xACA05602, 0x00000002, 0x402C8620, 0xADC07002, 0x00000003, - 0x402C8620, 0xADC07002, 0xAE605202, 0x00000002, 0x402C8620, 0xADC07702, - 0x00000002, 0x402C8820, 0xAE604102, 0x00000002, 0x402C8820, 0xAE604702, - 0x00000002, 0x402C8820, 0xAE605202, 0x00000002, 0x402C8820, 0xACA05602, - 0x00000002, 0x402C8820, 0xADC07002, 0x00000002, 0x402C8820, 0xADC07702, - 0x00000002, 0x402C8820, 0xADC07802, 0x00000002, 0x402C8820, 0xADC07B02, - 0x00000002, 0x402C8A20, 0xAE603202, 0x00000002, 0x402C8A20, 0xAE603502, - 0x00000002, 0x402C8A20, 0xAE603702, 0x00000002, 0x402C8A20, 0xAE603C02, - 0x00000002, 0x402C8A20, 0xAE604102, 0x00000002, 0x402C8A20, 0xAE604302, - 0x00000002, 0x402C8A20, 0xAE604702, 0x00000003, - // Block 210, offset 0x3480 - 0x402C8A20, 0xAE604702, 0xAE603202, 0x00000003, 0x402C8A20, 0xAE604702, - 0xAE603502, 0x00000003, 0x402C8A20, 0xAE604702, 0xAE604102, 0x00000003, - 0x402C8A20, 0xAE604702, 0xAE605B02, 0x00000002, 0x402C8A20, 0xAE604D02, - 0x00000002, 0x402C8A20, 0xAE604E02, 0x00000003, 0x402C8A20, 0xAE604E02, - 0xAE603202, 0x00000002, 0x402C8A20, 0xACA05902, 0x00000002, 0x402C8A20, - 0xAE605B02, 0x00000003, 0x402C8A20, 0xAE605B02, 0xAE604702, 0x00000002, - 0x402C8A20, 0xAE606402, 0x00000002, 0x402C8A20, 0xAE606502, 0x00000002, - 0x402C8A20, 0xAE606702, 0x00000002, 0x402C8A20, 0xAD806802, 0x00000003, - 0x402C8A20, 0xAD806802, 0xAE603202, 0x00000003, 0x402C8A20, 0xAD806802, - 0xAE603502, 0x00000003, 0x402C8A20, 0xAD806802, 0xAE604E02, 0x00000003, - 0x402C8A20, 0xAD806802, 0xAE606402, 0x00000003, - // Block 211, offset 0x34c0 - 0x402C8A20, 0xAD806802, 0xADC07002, 0x00000002, 0x402C8A20, 0xADC07002, - 0x00000002, 0x402C8A20, 0xADC07502, 0x00000002, 0x402C8A20, 0xADC07802, - 0x00000002, 0x402C8A20, 0xADC07A02, 0x00000002, 0x402C8C20, 0xAE604E02, - 0x00000002, 0x402C8C20, 0xADC07002, 0x00000002, 0x402C8E20, 0xAE603202, - 0x00000002, 0x402C8E20, 0xAE603502, 0x00000002, 0x402C8E20, 0xAE603C02, - 0x00000002, 0x402C8E20, 0xAE604302, 0x00000002, 0x402C8E20, 0xAE604702, - 0x00000002, 0x402C8E20, 0xAE605202, 0x00000002, 0x402C8E20, 0xADC07002, - 0x00000002, 0x402C9020, 0xAE604702, 0x00000002, 0x402C9020, 0xAE605202, - 0x00000002, 0x402C9220, 0xAE603202, 0x00000002, 0x402C9220, 0xAE603502, - 0x00000002, 0x402C9220, 0xAE603C02, 0x00000002, 0x402C9220, 0xAE604302, - 0x00000002, 0x402C9220, 0xAE604702, 0x00000002, - // Block 212, offset 0x3500 - 0x402C9220, 0xAE604E02, 0x00000002, 0x402C9220, 0xAE605202, 0x00000002, - 0x402C9220, 0xAE605B02, 0x00000002, 0x402C9220, 0xAE606402, 0x00000002, - 0x402C9220, 0xADC07002, 0x00000002, 0x402C9420, 0xAE603202, 0x00000002, - 0x402C9420, 0xAE603C02, 0x00000002, 0x402C9420, 0xAE604102, 0x00000002, - 0x402C9420, 0xAE605202, 0x00000002, 0x402C9420, 0xADC07002, 0x00000002, - 0x402C9420, 0xADC07B02, 0x00000002, 0x002D0884, 0x002D0884, 0x00000002, - 0x002D0884, 0x002E2284, 0x00000002, 0x002D089C, 0x002E829C, 0x00000002, - 0x002D229D, 0x002C0A9D, 0x00000002, 0x002D229D, 0x0031009C, 0x00000002, - 0x002E2284, 0x002DCC84, 0x00000002, 0x002E228A, 0x002DCC84, 0x00000002, - 0x002E228A, 0x002DCC8A, 0x00000002, 0x002E229C, 0x002E829C, 0x00000002, - 0x002E229C, 0x002E9E9C, 0x00000002, 0x002E829C, - // Block 213, offset 0x3540 - 0x0029D09C, 0x00000002, 0x002E829C, 0x0029D29C, 0x00000002, 0x002E829C, - 0x002BDE9D, 0x00000002, 0x002E829C, 0x002C0A9C, 0x00000002, 0x002E829D, - 0x002C0A9D, 0x00000002, 0x002E8294, 0x002C3A94, 0x00000002, 0x002E8294, - 0x002C6294, 0x00000002, 0x002E829C, 0x002D229C, 0x00000002, 0x002E829C, - 0x002E229C, 0x00000002, 0x002E829C, 0x002E829C, 0x00000002, 0x002E829C, - 0x0030BE9D, 0x00000002, 0x002E829D, 0x0030BE9D, 0x00000002, 0x002E829D, - 0x0030BE9D, 0x00000002, 0x002E829C, 0x0030E29D, 0x00000002, 0x002E829D, - 0x0030E29D, 0x00000002, 0x002E829D, 0x0032A29D, 0x00000002, 0x002E9E9C, - 0x002BDE9D, 0x00000002, 0x002E9E9C, 0x002D089D, 0x00000002, 0x002E9E84, - 0x002DCC84, 0x00000002, 0x002E9E8A, 0x002DCC84, 0x00000002, 0x002E9E8A, - 0x002DCC8A, 0x00000002, 0x002E9E9C, 0x002E829C, - // Block 214, offset 0x3580 - 0x00000002, 0x002E9E9C, 0x0030BE9D, 0x00000002, 0x002E9E9C, 0x0030E29D, - 0x00000002, 0x002F2C9C, 0x002BDE9D, 0x00000002, 0x002F2C9D, 0x002BDE9C, - 0x00000002, 0x002F2C9C, 0x002C3A9C, 0x00000002, 0x002F2C9C, 0x002D089D, - 0x00000002, 0x002F2C9C, 0x0030BE9D, 0x00000002, 0x002F2C9C, 0x0030E29D, - 0x00000002, 0x0030E29D, 0x002C0A9C, 0x00000002, 0x0030E29D, 0x002C3A9D, - 0x00000002, 0x0030E28C, 0x00312A8C, 0x00000002, 0x0031DE84, 0x002E9E84, - 0x00000002, 0x0032769C, 0x002BDE9D, 0x00000002, 0x0032769C, 0x002D089D, - 0x00000002, 0x0032769C, 0x002D229C, 0x00000002, 0x0032769C, 0x002E229C, - 0x00000002, 0x0032769C, 0x002E829C, 0x00000002, 0x0032769C, 0x0030BE9D, - 0x00000002, 0x0032769C, 0x0030E29D, 0x00000002, 0x40302620, 0xAE605202, - 0x00000002, 0x00302683, 0xAE605202, 0x00000002, - // Block 215, offset 0x35c0 - 0x40302820, 0xAE603202, 0x00000002, 0x00302883, 0xAE603202, 0x00000002, - 0x40302820, 0xAE603C02, 0x00000002, 0x00302883, 0xAE603C02, 0x00000002, - 0x40302820, 0xAE605202, 0x00000002, 0x00302883, 0xAE605202, 0x00000002, - 0x40302820, 0xADC07002, 0x00000002, 0x00302883, 0xADC07002, 0x00000002, - 0x40302820, 0xADC07B02, 0x00000002, 0x00302883, 0xADC07B02, 0x00000002, - 0x4030BE21, 0xAE603202, 0x00000002, 0x0030BEA3, 0xAE603202, 0x00000002, - 0x4030BE21, 0xAE603502, 0x00000002, 0x0030BEA3, 0xAE603502, 0x00000002, - 0x4030BE21, 0xAE603C02, 0x00000002, 0x0030BEA3, 0xAE603C02, 0x00000002, - 0x4030BE21, 0xAE604302, 0x00000002, 0x4030BE21, 0xAE604702, 0x00000002, - 0x0030BEA3, 0xAE604702, 0x00000002, 0x4030BE21, 0xAE605202, 0x00000002, - 0x0030BEA3, 0xAE605202, 0x00000002, 0x4030BE21, - // Block 216, offset 0x3600 - 0xADC07002, 0x00000002, 0x0030BEA3, 0xADC07002, 0x00000002, 0x4030EE20, - 0xAE603202, 0x00000002, 0x0030EE83, 0xAE603202, 0x00000002, 0x4030EE20, - 0xAE603C02, 0x00000002, 0x0030EE83, 0xAE603C02, 0x00000002, 0x4030EE20, - 0xAE604702, 0x00000002, 0x0030EE83, 0xAE604702, 0x00000002, 0x4030EE20, - 0xAE605B02, 0x00000002, 0x0030EE83, 0xAE605B02, 0x00000002, 0x4030EE20, - 0xAD806802, 0x00000002, 0x0030EE83, 0xAD806802, 0x00000002, 0x4030F020, - 0xAE605B02, 0x00000002, 0x0030F083, 0xAE605B02, 0x00000002, 0x4030F220, - 0xAE605B02, 0x00000002, 0x0030F283, 0xAE605B02, 0x00000002, 0x4030F420, - 0xAE603202, 0x00000002, 0x0030F483, 0xAE603202, 0x00000002, 0x4030F420, - 0xAE603502, 0x00000002, 0x0030F483, 0xAE603502, 0x00000002, 0x4030F420, - 0xAE604102, 0x00000002, 0x0030F483, 0xAE604102, - // Block 217, offset 0x3640 - 0x00000002, 0x4030F420, 0xAE605B02, 0x00000002, 0x0030F483, 0xAE605B02, - 0x00000002, 0xA000B218, 0xA000BA18, 0x00000002, 0xA000B618, 0xA000BA18, - 0x00000002, 0x00393899, 0xA000A219, 0x00000002, 0x0039389A, 0xA000A21A, - 0x00000002, 0x00393C97, 0x003A6897, 0x00000002, 0x00393C98, 0x003A6898, - 0x00000002, 0x00393C99, 0x003A9099, 0x00000002, 0x00393C9A, 0x003A909A, - 0x00000002, 0x00395697, 0x003A6897, 0x00000002, 0x00395698, 0x003A6898, - 0x00000002, 0x00395699, 0x003A9099, 0x00000002, 0x0039569A, 0x003A909A, - 0x00000002, 0x00395898, 0x003A6898, 0x00000002, 0x00395899, 0x003A9099, - 0x00000002, 0x0039589A, 0x003A909A, 0x00000002, 0x00396499, 0x003A9099, - 0x00000002, 0x0039649A, 0x003A909A, 0x00000002, 0x00397299, 0x003A9099, - 0x00000002, 0x0039729A, 0x003A909A, 0x00000002, - // Block 218, offset 0x3680 - 0x00397499, 0x003A9099, 0x00000002, 0x0039749A, 0x003A909A, 0x00000002, - 0x0039C697, 0x003A6897, 0x00000002, 0x0039C698, 0x003A6898, 0x00000002, - 0x0039C699, 0x003A9099, 0x00000002, 0x0039C69A, 0x003A909A, 0x00000002, - 0x0039C897, 0x003A6897, 0x00000002, 0x0039C898, 0x003A6898, 0x00000002, - 0x0039C899, 0x003A9099, 0x00000002, 0x0039C89A, 0x003A909A, 0x00000002, - 0x0039DC99, 0x003A9099, 0x00000002, 0x0039DC9A, 0x003A909A, 0x00000002, - 0x0039DE99, 0x003A9099, 0x00000002, 0x0039DE9A, 0x003A909A, 0x00000002, - 0x0039E699, 0x003A9099, 0x00000002, 0x0039E69A, 0x003A909A, 0x00000002, - 0x0039EE99, 0x003A9099, 0x00000002, 0x0039EE9A, 0x003A909A, 0x00000002, - 0x0039F099, 0x003A9099, 0x00000002, 0x0039F09A, 0x003A909A, 0x00000002, - 0x0039FC99, 0x003A9099, 0x00000002, 0x0039FC9A, - // Block 219, offset 0x36c0 - 0x003A909A, 0x00000002, 0x003A1299, 0x003A9099, 0x00000002, 0x003A129A, - 0x003A909A, 0x00000002, 0x003A1A99, 0x00393899, 0x00000002, 0x003A1A9A, - 0x0039389A, 0x00000002, 0x003A1A97, 0x00396497, 0x00000002, 0x003A1A9A, - 0x0039649A, 0x00000002, 0x003A1A97, 0x00397297, 0x00000002, 0x003A1A9A, - 0x0039729A, 0x00000002, 0x003A1A97, 0x00397497, 0x00000002, 0x003A1A9A, - 0x0039749A, 0x00000002, 0x003A1A97, 0x003A4097, 0x00000002, 0x003A1A98, - 0x003A4098, 0x00000002, 0x003A1A99, 0x003A4099, 0x00000002, 0x003A1A9A, - 0x003A409A, 0x00000002, 0x003A1A97, 0x003A4E97, 0x00000002, 0x003A1A98, - 0x003A4E98, 0x00000002, 0x003A1A99, 0x003A4E99, 0x00000002, 0x003A1A9A, - 0x003A4E9A, 0x00000002, 0x003A1A99, 0x003A9099, 0x00000002, 0x003A1A9A, - 0x003A909A, 0x00000002, 0x003A4097, 0x003A6897, - // Block 220, offset 0x3700 - 0x00000002, 0x003A4099, 0x003A9099, 0x00000002, 0x003A409A, 0x003A909A, - 0x00000002, 0x003A4E9A, 0x003A909A, 0x00000002, 0x003A5697, 0x003A6897, - 0x00000002, 0x003A5698, 0x003A6898, 0x00000002, 0x003A5699, 0x003A9099, - 0x00000002, 0x003A569A, 0x003A909A, 0x00000002, 0x003A6897, 0xA000D117, - 0x00000002, 0x003A6897, 0x00396497, 0x00000002, 0x003A689A, 0x0039649A, - 0x00000002, 0x003A6897, 0x003A4E97, 0x00000002, 0x003A689A, 0x003A4E9A, - 0x00000002, 0x003A689A, 0x003A909A, 0x00000002, 0x003A7299, 0xA000BE19, - 0x00000002, 0x003A729A, 0xA000BE1A, 0x00000002, 0x403A8822, 0xAE60BE02, - 0x00000002, 0x003A8E99, 0xA000D119, 0x00000002, 0x003A8E9A, 0xA000D11A, - 0x00000002, 0x003A9084, 0x00391C84, 0x00000002, 0x003A9097, 0x00396497, - 0x00000002, 0x003A909A, 0x0039649A, 0x00000002, - // Block 221, offset 0x3740 - 0x003A9097, 0x00397297, 0x00000002, 0x003A909A, 0x0039729A, 0x00000002, - 0x003A9097, 0x00397497, 0x00000002, 0x003A909A, 0x0039749A, 0x00000002, - 0x003A9099, 0x0039A499, 0x00000002, 0x003A9099, 0x0039A699, 0x00000002, - 0x003A9097, 0x003A4E97, 0x00000002, 0x003A9098, 0x003A4E98, 0x00000002, - 0x003A9099, 0x003A4E99, 0x00000002, 0x003A909A, 0x003A4E9A, 0x00000002, - 0x003A9099, 0x003A5699, 0x00000002, 0x003A9097, 0x003A6897, 0x00000002, - 0x003A9098, 0x003A6898, 0x00000002, 0x003A9099, 0x003A9099, 0x00000002, - 0x003A909A, 0x003A909A, 0x00000002, 0x403A9222, 0xAE60BE02, 0x00000002, - 0x003AAA99, 0xA000BE19, 0x00000002, 0x003AAA9A, 0xA000BE1A, 0x00000002, - 0x402C6221, 0x40021220, 0x00000002, 0x002C62A3, 0x40021220, 0x00000002, - 0x402D2221, 0x40021220, 0x00000002, 0x002D22A3, - // Block 222, offset 0x3780 - 0x40021220, 0x00000002, 0x402E9E21, 0x40021220, 0x00000002, 0x002E9EA3, - 0x40021220, 0x00000002, 0x40302C21, 0x40021220, 0x00000002, 0x00302CA3, - 0x40021220, 0x00000002, 0x40312A21, 0x40021220, 0x00000002, 0x00312AA3, - 0x40021220, 0x00000003, 0x40312A21, 0x40021220, 0xAE604102, 0x00000003, - 0x00312AA3, 0x40021220, 0xAE604102, 0x00000002, 0x40320E20, 0xAE605B02, - 0x00000002, 0x00320E83, 0xAE605B02, 0x00000002, 0x40320E21, 0xAE603202, - 0x00000002, 0x00320EA3, 0xAE603202, 0x00000002, 0x40321020, 0xAE604E02, - 0x00000002, 0x00321083, 0xAE604E02, 0x00000002, 0x40321020, 0xAE605B02, - 0x00000002, 0x00321083, 0xAE605B02, 0x00000002, 0x40321021, 0xAE603202, - 0x00000002, 0x003210A3, 0xAE603202, 0x00000002, 0x002BDE83, 0xAE603202, - 0x00000002, 0x002BDE83, 0xAE603502, 0x00000002, - // Block 223, offset 0x37c0 - 0x002BDE83, 0xAE603702, 0x00000003, 0x002BDE83, 0xAE603702, 0xAE603202, - 0x00000003, 0x002BDE83, 0xAE603702, 0xAE603502, 0x00000003, 0x002BDE83, - 0xAE603702, 0xAE604E02, 0x00000003, 0x002BDE83, 0xAE603702, 0xAE606402, - 0x00000002, 0x002BDE83, 0xAE603C02, 0x00000003, 0x002BDE83, 0xAE603C02, - 0xAE603202, 0x00000003, 0x002BDE83, 0xAE603C02, 0xAE603502, 0x00000003, - 0x002BDE83, 0xAE603C02, 0xAE604E02, 0x00000003, 0x002BDE83, 0xAE603C02, - 0xAE606402, 0x00000002, 0x002BDE83, 0xAE604102, 0x00000002, 0x002BDE83, - 0xAE604302, 0x00000003, 0x002BDE83, 0xAE604302, 0xAE603202, 0x00000002, - 0x002BDE83, 0xAE604702, 0x00000003, 0x002BDE83, 0xAE604702, 0xAE605B02, - 0x00000002, 0x002BDE83, 0xAE604E02, 0x00000002, 0x002BDE83, 0xAE605202, - 0x00000003, 0x002BDE83, 0xAE605202, 0xAE605B02, - // Block 224, offset 0x3800 - 0x00000002, 0x002BDE83, 0xACA05902, 0x00000002, 0x002BDE83, 0xAE605B02, - 0x00000002, 0x002BDE83, 0xAE606402, 0x00000002, 0x002BDE83, 0xAE606502, - 0x00000002, 0x002BDE83, 0xAE606702, 0x00000002, 0x002BDE83, 0xADC07002, - 0x00000003, 0x002BDE83, 0xADC07002, 0xAE603702, 0x00000003, 0x002BDE83, - 0xADC07002, 0xAE603C02, 0x00000002, 0x002BDE83, 0xADC07602, 0x00000002, - 0x402BE020, 0xAE603202, 0x00000002, 0x002BE083, 0xAE603202, 0x00000002, - 0x402BE020, 0xAE603502, 0x00000002, 0x002BE083, 0xAE603502, 0x00000002, - 0x402BE020, 0xAE603702, 0x00000002, 0x002BE083, 0xAE603702, 0x00000002, - 0x402BE020, 0xAE603C02, 0x00000002, 0x002BE083, 0xAE603C02, 0x00000003, - 0x402BE020, 0xAE603C02, 0xAE603202, 0x00000003, 0x002BE083, 0xAE603C02, - 0xAE603202, 0x00000003, 0x402BE020, 0xAE603C02, - // Block 225, offset 0x3840 - 0xAE603502, 0x00000003, 0x002BE083, 0xAE603C02, 0xAE603502, 0x00000003, - 0x402BE020, 0xAE603C02, 0xAE604E02, 0x00000003, 0x002BE083, 0xAE603C02, - 0xAE604E02, 0x00000003, 0x402BE020, 0xAE603C02, 0xAE606402, 0x00000003, - 0x002BE083, 0xAE603C02, 0xAE606402, 0x00000002, 0x402BE020, 0xAE604102, - 0x00000002, 0x002BE083, 0xAE604102, 0x00000002, 0x402BE020, 0xAE604702, - 0x00000002, 0x002BE083, 0xAE604702, 0x00000002, 0x402BE020, 0xAE604E02, - 0x00000002, 0x002BE083, 0xAE604E02, 0x00000002, 0x402BE020, 0xAE605202, - 0x00000002, 0x002BE083, 0xAE605202, 0x00000002, 0x402BE020, 0xACA05602, - 0x00000002, 0x002BE083, 0xACA05602, 0x00000003, 0x402BE020, 0xACA05602, - 0xAE603702, 0x00000003, 0x002BE083, 0xACA05602, 0xAE603702, 0x00000002, - 0x402BE020, 0xACA05902, 0x00000002, 0x002BE083, - // Block 226, offset 0x3880 - 0xACA05902, 0x00000002, 0x402BE020, 0xAE605B02, 0x00000002, 0x002BE083, - 0xAE605B02, 0x00000003, 0x402BE020, 0xAE605B02, 0xAE603202, 0x00000003, - 0x002BE083, 0xAE605B02, 0xAE603202, 0x00000003, 0x402BE020, 0xAE605B02, - 0xAE603502, 0x00000003, 0x002BE083, 0xAE605B02, 0xAE603502, 0x00000002, - 0x402BE020, 0xAE606402, 0x00000002, 0x002BE083, 0xAE606402, 0x00000002, - 0x402BE020, 0xAE606502, 0x00000002, 0x002BE083, 0xAE606502, 0x00000002, - 0x402BE020, 0xAE606702, 0x00000002, 0x002BE083, 0xAE606702, 0x00000002, - 0x402BE020, 0xADC07002, 0x00000002, 0x002BE083, 0xADC07002, 0x00000003, - 0x402BE020, 0xADC07002, 0xAE603C02, 0x00000003, 0x002BE083, 0xADC07002, - 0xAE603C02, 0x00000002, 0x402BE020, 0xADC07802, 0x00000002, 0x002BE083, - 0xADC07802, 0x00000002, 0x402BE020, 0xADC07A02, - // Block 227, offset 0x38c0 - 0x00000002, 0x002BE083, 0xADC07A02, 0x00000002, 0x402BE220, 0xAE603202, - 0x00000002, 0x002BE283, 0xAE603202, 0x00000002, 0x402BE220, 0xAE603502, - 0x00000002, 0x002BE283, 0xAE603502, 0x00000002, 0x402BE220, 0xAE603702, - 0x00000002, 0x002BE283, 0xAE603702, 0x00000002, 0x402BE220, 0xAE603C02, - 0x00000002, 0x002BE283, 0xAE603C02, 0x00000002, 0x402BE220, 0xAE604102, - 0x00000002, 0x002BE283, 0xAE604102, 0x00000002, 0x402BE220, 0xAE604702, - 0x00000002, 0x002BE283, 0xAE604702, 0x00000003, 0x402BE220, 0xAE604702, - 0xAE603202, 0x00000003, 0x002BE283, 0xAE604702, 0xAE603202, 0x00000002, - 0x402BE220, 0xAE604E02, 0x00000002, 0x002BE283, 0xAE604E02, 0x00000002, - 0x002BE283, 0xAE605202, 0x00000002, 0x402BE220, 0xACA05902, 0x00000002, - 0x002BE283, 0xACA05902, 0x00000002, 0x402BE220, - // Block 228, offset 0x3900 - 0xAE605B02, 0x00000002, 0x002BE283, 0xAE605B02, 0x00000002, 0x402BE220, - 0xAE606402, 0x00000002, 0x002BE283, 0xAE606402, 0x00000002, 0x402BE220, - 0xAE606502, 0x00000002, 0x002BE283, 0xAE606502, 0x00000002, 0x402BE220, - 0xAE606702, 0x00000002, 0x002BE283, 0xAE606702, 0x00000002, 0x402BE220, - 0xADC07002, 0x00000002, 0x002BE283, 0xADC07002, 0x00000002, 0x402BE220, - 0xADC07A02, 0x00000002, 0x002BE283, 0xADC07A02, 0x00000002, 0x402BE420, - 0xAE603202, 0x00000002, 0x002BE483, 0xAE603202, 0x00000002, 0x402BE420, - 0xAE603502, 0x00000002, 0x002BE483, 0xAE603502, 0x00000002, 0x402BE420, - 0xAE603702, 0x00000002, 0x002BE483, 0xAE603702, 0x00000002, 0x402BE420, - 0xAE603C02, 0x00000002, 0x002BE483, 0xAE603C02, 0x00000003, 0x402BE420, - 0xAE603C02, 0xAE603202, 0x00000003, 0x002BE483, - // Block 229, offset 0x3940 - 0xAE603C02, 0xAE603202, 0x00000003, 0x402BE420, 0xAE603C02, 0xAE603502, - 0x00000003, 0x002BE483, 0xAE603C02, 0xAE603502, 0x00000003, 0x402BE420, - 0xAE603C02, 0xAE604E02, 0x00000003, 0x002BE483, 0xAE603C02, 0xAE604E02, - 0x00000003, 0x402BE420, 0xAE603C02, 0xAE606402, 0x00000003, 0x002BE483, - 0xAE603C02, 0xAE606402, 0x00000002, 0x402BE420, 0xAE604102, 0x00000002, - 0x002BE483, 0xAE604102, 0x00000002, 0x402BE420, 0xAE604702, 0x00000002, - 0x002BE483, 0xAE604702, 0x00000003, 0x402BE420, 0xAE604702, 0xAE605B02, - 0x00000003, 0x002BE483, 0xAE604702, 0xAE605B02, 0x00000002, 0x402BE420, - 0xAE604D02, 0x00000002, 0x002BE483, 0xAE604D02, 0x00000002, 0x402BE420, - 0xAE604E02, 0x00000002, 0x002BE483, 0xAE604E02, 0x00000003, 0x402BE420, - 0xAE604E02, 0xAE603202, 0x00000003, 0x002BE483, - // Block 230, offset 0x3980 - 0xAE604E02, 0xAE603202, 0x00000003, 0x402BE420, 0xAE604E02, 0xAE604702, - 0x00000003, 0x002BE483, 0xAE604E02, 0xAE604702, 0x00000003, 0x402BE420, - 0xAE604E02, 0xAE605B02, 0x00000003, 0x002BE483, 0xAE604E02, 0xAE605B02, - 0x00000002, 0x402BE420, 0xAE605202, 0x00000002, 0x002BE483, 0xAE605202, - 0x00000003, 0x402BE420, 0xAE605202, 0xAE605B02, 0x00000003, 0x002BE483, - 0xAE605202, 0xAE605B02, 0x00000002, 0x402BE420, 0xACA05902, 0x00000002, - 0x002BE483, 0xACA05902, 0x00000003, 0x402BE420, 0xACA05902, 0xAE605B02, - 0x00000003, 0x002BE483, 0xACA05902, 0xAE605B02, 0x00000002, 0x402BE420, - 0xAE605B02, 0x00000002, 0x002BE483, 0xAE605B02, 0x00000003, 0x402BE420, - 0xAE605B02, 0xAE603202, 0x00000003, 0x002BE483, 0xAE605B02, 0xAE603202, - 0x00000003, 0x402BE420, 0xAE605B02, 0xAE603502, - // Block 231, offset 0x39c0 - 0x00000003, 0x002BE483, 0xAE605B02, 0xAE603502, 0x00000002, 0x402BE420, - 0xAE606402, 0x00000002, 0x002BE483, 0xAE606402, 0x00000002, 0x402BE420, - 0xAE606502, 0x00000002, 0x002BE483, 0xAE606502, 0x00000002, 0x402BE420, - 0xAE606702, 0x00000002, 0x002BE483, 0xAE606702, 0x00000002, 0x402BE420, - 0xAD806802, 0x00000002, 0x002BE483, 0xAD806802, 0x00000003, 0x402BE420, - 0xAD806802, 0xAE603202, 0x00000003, 0x002BE483, 0xAD806802, 0xAE603202, - 0x00000003, 0x402BE420, 0xAD806802, 0xAE603502, 0x00000003, 0x002BE483, - 0xAD806802, 0xAE603502, 0x00000003, 0x402BE420, 0xAD806802, 0xAE604E02, - 0x00000003, 0x002BE483, 0xAD806802, 0xAE604E02, 0x00000003, 0x402BE420, - 0xAD806802, 0xAE606402, 0x00000003, 0x002BE483, 0xAD806802, 0xAE606402, - 0x00000003, 0x402BE420, 0xAD806802, 0xADC07002, - // Block 232, offset 0x3a00 - 0x00000003, 0x002BE483, 0xAD806802, 0xADC07002, 0x00000002, 0x402BE420, - 0xADC07002, 0x00000002, 0x002BE483, 0xADC07002, 0x00000003, 0x402BE420, - 0xADC07002, 0xAE603C02, 0x00000003, 0x002BE483, 0xADC07002, 0xAE603C02, - 0x00000002, 0x402BE620, 0xAE603202, 0x00000002, 0x002BE683, 0xAE603202, - 0x00000002, 0x402BE620, 0xAE603502, 0x00000002, 0x002BE683, 0xAE603502, - 0x00000002, 0x402BE620, 0xAE603702, 0x00000002, 0x002BE683, 0xAE603702, - 0x00000002, 0x402BE620, 0xAE603C02, 0x00000002, 0x002BE683, 0xAE603C02, - 0x00000002, 0x402BE620, 0xAE604102, 0x00000002, 0x002BE683, 0xAE604102, - 0x00000002, 0x402BE620, 0xAE604302, 0x00000002, 0x002BE683, 0xAE604302, - 0x00000002, 0x402BE620, 0xAE604702, 0x00000002, 0x002BE683, 0xAE604702, - 0x00000003, 0x402BE620, 0xAE604702, 0xAE603202, - // Block 233, offset 0x3a40 - 0x00000003, 0x002BE683, 0xAE604702, 0xAE603202, 0x00000003, 0x402BE620, - 0xAE604702, 0xAE603502, 0x00000003, 0x002BE683, 0xAE604702, 0xAE603502, - 0x00000003, 0x402BE620, 0xAE604702, 0xAE604102, 0x00000003, 0x002BE683, - 0xAE604702, 0xAE604102, 0x00000003, 0x402BE620, 0xAE604702, 0xAE605B02, - 0x00000003, 0x002BE683, 0xAE604702, 0xAE605B02, 0x00000002, 0x402BE620, - 0xAE604D02, 0x00000002, 0x002BE683, 0xAE604D02, 0x00000002, 0x402BE620, - 0xAE604E02, 0x00000002, 0x002BE683, 0xAE604E02, 0x00000003, 0x402BE620, - 0xAE604E02, 0xAE603202, 0x00000003, 0x002BE683, 0xAE604E02, 0xAE603202, - 0x00000002, 0x402BE620, 0xACA05902, 0x00000002, 0x002BE683, 0xACA05902, - 0x00000002, 0x402BE620, 0xAE605B02, 0x00000002, 0x002BE683, 0xAE605B02, - 0x00000003, 0x402BE620, 0xAE605B02, 0xAE604702, - // Block 234, offset 0x3a80 - 0x00000003, 0x002BE683, 0xAE605B02, 0xAE604702, 0x00000002, 0x402BE620, - 0xAE606402, 0x00000002, 0x002BE683, 0xAE606402, 0x00000002, 0x402BE620, - 0xAE606502, 0x00000002, 0x002BE683, 0xAE606502, 0x00000002, 0x402BE620, - 0xAE606702, 0x00000002, 0x002BE683, 0xAE606702, 0x00000002, 0x402BE620, - 0xAD806802, 0x00000002, 0x002BE683, 0xAD806802, 0x00000003, 0x402BE620, - 0xAD806802, 0xAE603202, 0x00000003, 0x002BE683, 0xAD806802, 0xAE603202, - 0x00000003, 0x402BE620, 0xAD806802, 0xAE603502, 0x00000003, 0x002BE683, - 0xAD806802, 0xAE603502, 0x00000003, 0x402BE620, 0xAD806802, 0xAE604E02, - 0x00000003, 0x002BE683, 0xAD806802, 0xAE604E02, 0x00000003, 0x402BE620, - 0xAD806802, 0xAE606402, 0x00000003, 0x002BE683, 0xAD806802, 0xAE606402, - 0x00000003, 0x402BE620, 0xAD806802, 0xADC07002, - // Block 235, offset 0x3ac0 - 0x00000003, 0x002BE683, 0xAD806802, 0xADC07002, 0x00000002, 0x402BE620, - 0xADC07002, 0x00000002, 0x002BE683, 0xADC07002, 0x00000002, 0x402BE620, - 0xADC07502, 0x00000002, 0x002BE683, 0xADC07502, 0x00000002, 0x402BE620, - 0xADC07802, 0x00000002, 0x002BE683, 0xADC07802, 0x00000002, 0x402BE620, - 0xADC07A02, 0x00000002, 0x002BE683, 0xADC07A02, 0x00000002, 0x402BE820, - 0xAE603C02, 0x00000002, 0x002BE883, 0xAE603C02, 0x00000002, 0x402BE820, - 0xAE604102, 0x00000002, 0x002BE883, 0xAE604102, 0x00000002, 0x402BE820, - 0xAE604702, 0x00000002, 0x002BE883, 0xAE604702, 0x00000002, 0x402BE820, - 0xAE605202, 0x00000002, 0x002BE883, 0xAE605202, 0x00000002, 0x402BE820, - 0xACA05602, 0x00000002, 0x002BE883, 0xACA05602, 0x00000002, 0x402BE820, - 0xADC07002, 0x00000002, 0x002BE883, 0xADC07002, - // Block 236, offset 0x3b00 - 0x00000002, 0x402BE820, 0xADC07902, 0x00000002, 0x002BE883, 0xADC07902, - 0x00000002, 0x402BE820, 0xADC07B02, 0x00000002, 0x402BEA20, 0xAE603202, - 0x00000002, 0x002BEA83, 0xAE603202, 0x00000002, 0x402BEA20, 0xAE604102, - 0x00000002, 0x002BEA83, 0xAE604102, 0x00000002, 0x402BEA20, 0xACA05602, - 0x00000002, 0x002BEA83, 0xACA05602, 0x00000002, 0x402BEA20, 0xADC07002, - 0x00000002, 0x002BEA83, 0xADC07002, 0x00000002, 0x402BEA20, 0xADC07B02, - 0x00000002, 0x002BEA83, 0xADC07B02, 0x00000002, 0x402BEC20, 0xAE603202, - 0x00000002, 0x002BEC83, 0xAE603202, 0x00000002, 0x402BEC20, 0xAE604102, - 0x00000002, 0x002BEC83, 0xAE604102, 0x00000002, 0x402BEC20, 0xACA05602, - 0x00000002, 0x002BEC83, 0xACA05602, 0x00000002, 0x402BEC20, 0xADC07002, - 0x00000002, 0x002BEC83, 0xADC07002, 0x00000003, - // Block 237, offset 0x3b40 - 0x402BEC20, 0xADC07002, 0xAE605B02, 0x00000003, 0x002BEC83, 0xADC07002, - 0xAE605B02, 0x00000002, 0x402BEC20, 0xADC07802, 0x00000002, 0x002BEC83, - 0xADC07802, 0x00000002, 0x402BEC20, 0xADC07B02, 0x00000002, 0x002BEC83, - 0xADC07B02, 0x00000002, 0x402BEE20, 0xAE603202, 0x00000002, 0x002BEE83, - 0xAE603202, 0x00000002, 0x402BEE20, 0xAE605202, 0x00000002, 0x002BEE83, - 0xAE605202, 0x00000002, 0x402BEE20, 0xADC07002, 0x00000002, 0x002BEE83, - 0xADC07002, 0x00000002, 0x402BF020, 0xAE603202, 0x00000002, 0x002BF083, - 0xAE603202, 0x00000002, 0x402BF020, 0xAE603502, 0x00000002, 0x002BF083, - 0xAE603502, 0x00000002, 0x402BF020, 0xAE604102, 0x00000002, 0x002BF083, - 0xAE604102, 0x00000002, 0x402BF020, 0xAE604E02, 0x00000002, 0x002BF083, - 0xAE604E02, 0x00000002, 0x402BF020, 0xAE605202, - // Block 238, offset 0x3b80 - 0x00000002, 0x002BF083, 0xAE605202, 0x00000002, 0x402BF020, 0xACA05602, - 0x00000002, 0x002BF083, 0xACA05602, 0x00000002, 0x402BF020, 0xADC07002, - 0x00000002, 0x002BF083, 0xADC07002, 0x00000002, 0x402BF020, 0xADC07802, - 0x00000002, 0x002BF083, 0xADC07802, 0x00000002, 0x402BF020, 0xADC07B02, - 0x00000002, 0x002BF083, 0xADC07B02, 0x00000002, 0x402BF220, 0xAE603202, - 0x00000002, 0x002BF283, 0xAE603202, 0x00000002, 0x402BF220, 0xAE605202, - 0x00000002, 0x002BF283, 0xAE605202, 0x00000002, 0x402BF420, 0xAE603202, - 0x00000002, 0x002BF483, 0xAE603202, 0x00000002, 0x402BF420, 0xAE603502, - 0x00000002, 0x002BF483, 0xAE603502, 0x00000002, 0x402BF420, 0xAE603C02, - 0x00000002, 0x002BF483, 0xAE603C02, 0x00000002, 0x402BF420, 0xAE604302, - 0x00000002, 0x402BF420, 0xAE604702, 0x00000002, - // Block 239, offset 0x3bc0 - 0x002BF483, 0xAE604702, 0x00000002, 0x402BF420, 0xAE605202, 0x00000002, - 0x002BF483, 0xAE605202, 0x00000002, 0x402BF420, 0xADC07002, 0x00000002, - 0x002BF483, 0xADC07002, 0x00000002, 0x402C3E20, 0xACA05602, 0x00000002, - 0x002C3E83, 0xACA05602, 0x00000002, 0x002C3C83, 0x402C3C20, 0x00000002, - 0x002C3C85, 0x402C3C20, 0x00000002, 0x002C3C87, 0x002C3C86, 0x00000002, - 0x002C6483, 0x402C6420, 0x00000002, 0x002C6485, 0x402C6420, 0x00000002, - 0x002C6487, 0x002C6486, 0x00000002, 0x002C6683, 0x402C6620, 0x00000002, - 0x002C6685, 0x402C6620, 0x00000002, 0x002C6687, 0x002C6686, 0x00000002, - 0x002D2483, 0x402D2420, 0x00000002, 0x002D2485, 0x402D2420, 0x00000002, - 0x002D2487, 0x002D2486, 0x00000002, 0x002E2483, 0x402E2420, 0x00000002, - 0x002E2485, 0x402E2420, 0x00000002, 0x002E2487, - // Block 240, offset 0x3c00 - 0x002E2486, 0x00000002, 0x002EA083, 0x402EA020, 0x00000002, 0x002EA085, - 0x402EA020, 0x00000002, 0x002EA087, 0x002EA086, 0x00000002, 0x002FE883, - 0x402FE820, 0x00000002, 0x002FE885, 0x402FE820, 0x00000002, 0x002FE887, - 0x002FE886, 0x00000002, 0x00302E83, 0x40302E20, 0x00000002, 0x00302E85, - 0x40302E20, 0x00000002, 0x00302E87, 0x00302E86, 0x00000002, 0x00312C83, - 0x40312C20, 0x00000002, 0x00312C85, 0x40312C20, 0x00000002, 0x00312C87, - 0x00312C86, 0x00000002, 0x402EE420, 0xAE603C02, 0x00000002, 0x002EE483, - 0xAE603C02, 0x00000002, 0x402EE420, 0xAD806802, 0x00000002, 0x002EE483, - 0xAD806802, 0x00000002, 0x40306E20, 0xAD806802, 0x00000002, 0x00306E83, - 0xAD806802, 0x00000002, 0x402C0820, 0xAE603702, 0x00000002, 0x002C0883, - 0xAE603702, 0x00000002, 0x402C0820, 0xAE603C02, - // Block 241, offset 0x3c40 - 0x00000002, 0x002C0883, 0xAE603C02, 0x00000002, 0x402D0620, 0xAE603C02, - 0x00000002, 0x002D0683, 0xAE603C02, 0x00000002, 0x402D0620, 0xAE605B02, - 0x00000002, 0x002D0683, 0xAE605B02, 0x00000002, 0x402DCA20, 0xAE604702, - 0x00000002, 0x002DCA83, 0xAE604702, 0x00000002, 0x402F2A20, 0xAE603C02, - 0x00000002, 0x002F2A83, 0xAE603C02, 0x00000002, 0x402F2A20, 0xAE604E02, - 0x00000002, 0x002F2A83, 0xAE604E02, 0x00000002, 0x402F2A20, 0xAE605B02, - 0x00000002, 0x002F2A83, 0xAE605B02, 0x00000002, 0x402F2A20, 0xAD806802, - 0x00000002, 0x002F2A83, 0xAD806802, 0x00000002, 0x4030BC20, 0xAE604702, - 0x00000002, 0x0030BC83, 0xAE604702, 0x00000002, 0x4030BC20, 0xAE604E02, - 0x00000002, 0x0030BC83, 0xAE604E02, 0x00000002, 0x4030BC20, 0xAD806802, - 0x00000002, 0x0030BC83, 0xAD806802, 0x00000002, - // Block 242, offset 0x3c80 - 0x40320E20, 0xAE604E02, 0x00000002, 0x00320E83, 0xAE604E02, 0x00000003, - 0x0004B084, 0x029C1284, 0x0004B29F, 0x00000003, 0x0004B084, 0x029D1884, - 0x0004B29F, 0x00000003, 0x0004B084, 0x02A5BA84, 0x0004B29F, 0x00000003, - 0x0004B084, 0x02B71284, 0x0004B29F, 0x00000003, 0x0004B084, 0x02C4A684, - 0x0004B29F, 0x00000003, 0x0004B084, 0x02CAAE84, 0x0004B29F, 0x00000003, - 0x0004B084, 0x02CE5884, 0x0004B29F, 0x00000003, 0x0004B084, 0x02E17284, - 0x0004B29F, 0x00000003, 0x0004B084, 0x02EDAE84, 0x0004B29F, 0x00000002, - 0x0065768E, 0x0065768F, 0x00000002, 0x0065768E, 0x00657691, 0x00000002, - 0x00657690, 0x0065768F, 0x00000002, 0x00657690, 0x00657691, 0x00000002, - 0x0065768E, 0x0065828F, 0x00000002, 0x0065768E, 0x00658291, 0x00000003, - 0x0065768E, 0x00658291, 0xA0812802, 0x00000002, - // Block 243, offset 0x3cc0 - 0x0065768E, 0x00658C91, 0x00000003, 0x0065768E, 0x00658C91, 0xA0812802, - 0x00000002, 0x0065768E, 0x00659691, 0x00000003, 0x0065768E, 0x00659691, - 0xA0812802, 0x00000002, 0x0065768E, 0x0065A091, 0x00000002, 0x0065768E, - 0x0065AA8F, 0x00000002, 0x0065768E, 0x0065AA91, 0x00000003, 0x0065768E, - 0x0065AA91, 0xA0812802, 0x00000003, 0x0065768E, 0x0065AA91, 0xA0812902, - 0x00000002, 0x0065768E, 0x0065B491, 0x00000002, 0x0065768E, 0x0065BE8F, - 0x00000002, 0x0065768E, 0x0065BE91, 0x00000002, 0x0065768E, 0x0065C68F, - 0x00000002, 0x0065768E, 0x0065C691, 0x00000002, 0x0065768E, 0x0065D08F, - 0x00000002, 0x0065768E, 0x0065D091, 0x00000003, 0x0065768E, 0x0065D091, - 0xA0812802, 0x00000002, 0x0065788E, 0x0065788F, 0x00000002, 0x0065788E, - 0x00657891, 0x00000002, 0x00657890, 0x0065788F, - // Block 244, offset 0x3d00 - 0x00000002, 0x00657890, 0x00657891, 0x00000002, 0x0065788E, 0x00658491, - 0x00000003, 0x0065788E, 0x00658491, 0xA0812802, 0x00000002, 0x0065788E, - 0x00658E8F, 0x00000002, 0x0065788E, 0x00658E91, 0x00000003, 0x0065788E, - 0x00658E91, 0xA0812802, 0x00000002, 0x0065788E, 0x00659891, 0x00000003, - 0x0065788E, 0x00659891, 0xA0812802, 0x00000002, 0x0065788E, 0x0065A291, - 0x00000002, 0x0065788E, 0x0065AC8F, 0x00000002, 0x0065788E, 0x0065AC91, - 0x00000003, 0x0065788E, 0x0065AC91, 0xA0812802, 0x00000003, 0x0065788E, - 0x0065AC91, 0xA0812902, 0x00000002, 0x0065788E, 0x0065B691, 0x00000002, - 0x0065788E, 0x0065C88F, 0x00000002, 0x0065788E, 0x0065C891, 0x00000002, - 0x0065788E, 0x0065D291, 0x00000003, 0x0065788E, 0x0065D291, 0xA0812802, - 0x00000002, 0x00657A8E, 0x00657A8F, 0x00000002, - // Block 245, offset 0x3d40 - 0x00657A8E, 0x00657A91, 0x00000002, 0x00657A90, 0x00657A8F, 0x00000002, - 0x00657A90, 0x00657A91, 0x00000003, 0x00657A8E, 0x00657A91, 0xA0812802, - 0x00000003, 0x00657A90, 0x00657A8F, 0xA0812802, 0x00000003, 0x00657A90, - 0x00657A91, 0xA0812802, 0x00000004, 0x00657A90, 0x00657A91, 0xA0812802, - 0xA0812802, 0x00000002, 0x00657A8E, 0x0065868F, 0x00000002, 0x00657A8E, - 0x00658691, 0x00000003, 0x00657A8E, 0x00658691, 0xA0812802, 0x00000002, - 0x00657A8E, 0x0065908F, 0x00000002, 0x00657A8E, 0x00659091, 0x00000003, - 0x00657A8E, 0x00659091, 0xA0812802, 0x00000002, 0x00657A8E, 0x00659A8F, - 0x00000002, 0x00657A8E, 0x00659A91, 0x00000003, 0x00657A8E, 0x00659A91, - 0xA0812802, 0x00000002, 0x00657A8E, 0x0065A48F, 0x00000002, 0x00657A8E, - 0x0065A491, 0x00000002, 0x00657A8E, 0x0065AE8F, - // Block 246, offset 0x3d80 - 0x00000002, 0x00657A8E, 0x0065AE91, 0x00000003, 0x00657A8E, 0x0065AE91, - 0xA0812802, 0x00000003, 0x00657A8E, 0x0065AE91, 0xA0812902, 0x00000002, - 0x00657A8E, 0x0065B88F, 0x00000002, 0x00657A8E, 0x0065B891, 0x00000002, - 0x00657A8E, 0x0065C08F, 0x00000002, 0x00657A8E, 0x0065C091, 0x00000002, - 0x00657A8E, 0x0065CA8F, 0x00000002, 0x00657A8E, 0x0065CA91, 0x00000002, - 0x00657E8E, 0x00657E8F, 0x00000002, 0x00657E8E, 0x00657E91, 0x00000002, - 0x00657E90, 0x00657E8F, 0x00000002, 0x00657E90, 0x00657E91, 0x00000002, - 0x00657E8E, 0x0065888F, 0x00000002, 0x00657E8E, 0x00658891, 0x00000003, - 0x00657E8E, 0x00658891, 0xA0812802, 0x00000002, 0x00657E8E, 0x00659291, - 0x00000003, 0x00657E8E, 0x00659291, 0xA0812802, 0x00000002, 0x00657E8E, - 0x00659C91, 0x00000003, 0x00657E8E, 0x00659C91, - // Block 247, offset 0x3dc0 - 0xA0812802, 0x00000002, 0x00657E8E, 0x0065A691, 0x00000002, 0x00657E8E, - 0x0065B08F, 0x00000002, 0x00657E8E, 0x0065B091, 0x00000003, 0x00657E8E, - 0x0065B091, 0xA0812802, 0x00000003, 0x00657E8E, 0x0065B091, 0xA0812902, - 0x00000002, 0x00657E8E, 0x0065BA91, 0x00000002, 0x00657E8E, 0x0065CC8F, - 0x00000002, 0x00657E8E, 0x0065CC91, 0x00000002, 0x00657E8E, 0x0065D491, - 0x00000003, 0x00657E8E, 0x0065D491, 0xA0812802, 0x00000002, 0x0065808E, - 0x0065808F, 0x00000002, 0x0065808E, 0x00658091, 0x00000002, 0x00658090, - 0x0065808F, 0x00000002, 0x00658090, 0x00658091, 0x00000002, 0x0065808E, - 0x00658A91, 0x00000003, 0x0065808E, 0x00658A91, 0xA0812802, 0x00000002, - 0x0065808E, 0x00659491, 0x00000003, 0x0065808E, 0x00659491, 0xA0812802, - 0x00000002, 0x0065808E, 0x00659E8F, 0x00000002, - // Block 248, offset 0x3e00 - 0x0065808E, 0x00659E91, 0x00000003, 0x0065808E, 0x00659E91, 0xA0812802, - 0x00000002, 0x0065808E, 0x0065A891, 0x00000002, 0x0065808E, 0x0065B28F, - 0x00000002, 0x0065808E, 0x0065B291, 0x00000003, 0x0065808E, 0x0065B291, - 0xA0812802, 0x00000003, 0x0065808E, 0x0065B291, 0xA0812902, 0x00000002, - 0x0065808E, 0x0065BC91, 0x00000002, 0x0065808E, 0x0065C48F, 0x00000002, - 0x0065808E, 0x0065C491, 0x00000002, 0x0065808E, 0x0065CE8F, 0x00000002, - 0x0065808E, 0x0065CE91, 0x00000002, 0x0065808E, 0x0065D691, 0x00000003, - 0x0065808E, 0x0065D691, 0xA0812802, 0x00000002, 0x00658290, 0x0065828F, - 0x00000002, 0x00658290, 0x00658291, 0x00000003, 0x0065848F, 0x00658291, - 0xA0812802, 0x00000002, 0x00658490, 0x00658491, 0x00000003, 0x00658490, - 0x00658491, 0xA0812802, 0x00000004, 0x00658490, - // Block 249, offset 0x3e40 - 0x00658491, 0xA0812802, 0xA0812802, 0x00000002, 0x00658690, 0x0065868F, - 0x00000002, 0x00658690, 0x00658691, 0x00000003, 0x00658690, 0x0065868F, - 0xA0812802, 0x00000003, 0x00658690, 0x00658691, 0xA0812802, 0x00000004, - 0x00658690, 0x00658691, 0xA0812802, 0xA0812802, 0x00000002, 0x00658890, - 0x0065888F, 0x00000002, 0x00658890, 0x00658891, 0x00000003, 0x00658A8F, - 0x00658891, 0xA0812802, 0x00000002, 0x00658A90, 0x00658A91, 0x00000003, - 0x00658A90, 0x00658A91, 0xA0812802, 0x00000004, 0x00658A90, 0x00658A91, - 0xA0812802, 0xA0812802, 0x00000002, 0x40658A21, 0x00659E91, 0x00000002, - 0x00658C90, 0x00658C91, 0x00000003, 0x00658C90, 0x00658C91, 0xA0812802, - 0x00000004, 0x00658C90, 0x00658C91, 0xA0812802, 0xA0812802, 0x00000002, - 0x00658E90, 0x00658E8F, 0x00000002, 0x00658E90, - // Block 250, offset 0x3e80 - 0x00658E91, 0x00000003, 0x00658E90, 0x00658E8F, 0xA0812802, 0x00000003, - 0x00658E90, 0x00658E91, 0xA0812802, 0x00000004, 0x00658E90, 0x00658E91, - 0xA0812802, 0xA0812802, 0x00000002, 0x00659090, 0x0065908F, 0x00000002, - 0x00659090, 0x00659091, 0x00000003, 0x00659090, 0x0065908F, 0xA0812802, - 0x00000003, 0x00659090, 0x00659091, 0xA0812802, 0x00000004, 0x00659090, - 0x00659091, 0xA0812802, 0xA0812802, 0x00000002, 0x00659290, 0x00659291, - 0x00000003, 0x00659290, 0x00659291, 0xA0812802, 0x00000004, 0x00659290, - 0x00659291, 0xA0812802, 0xA0812802, 0x00000002, 0x00659490, 0x00659491, - 0x00000003, 0x00659490, 0x00659491, 0xA0812802, 0x00000004, 0x00659490, - 0x00659491, 0xA0812802, 0xA0812802, 0x00000002, 0x00659690, 0x00659691, - 0x00000003, 0x00659690, 0x00659691, 0xA0812802, - // Block 251, offset 0x3ec0 - 0x00000004, 0x00659690, 0x00659691, 0xA0812802, 0xA0812802, 0x00000002, - 0x00659890, 0x00659891, 0x00000003, 0x00659890, 0x00659891, 0xA0812802, - 0x00000004, 0x00659890, 0x00659891, 0xA0812802, 0xA0812802, 0x00000002, - 0x00659A90, 0x00659A8F, 0x00000002, 0x00659A90, 0x00659A91, 0x00000003, - 0x00659A90, 0x00659A8F, 0xA0812802, 0x00000003, 0x00659A90, 0x00659A91, - 0xA0812802, 0x00000004, 0x00659A90, 0x00659A91, 0xA0812802, 0xA0812802, - 0x00000002, 0x00659C90, 0x00659C91, 0x00000003, 0x00659C90, 0x00659C91, - 0xA0812802, 0x00000004, 0x00659C90, 0x00659C91, 0xA0812802, 0xA0812802, - 0x00000002, 0x00659E90, 0x00659E8F, 0x00000002, 0x00659E90, 0x00659E91, - 0x00000003, 0x00659E90, 0x00659E8F, 0xA0812802, 0x00000003, 0x00659E90, - 0x00659E91, 0xA0812802, 0x00000004, 0x00659E90, - // Block 252, offset 0x3f00 - 0x00659E91, 0xA0812802, 0xA0812802, 0x00000002, 0x0065A090, 0x0065A091, - 0x00000002, 0x0065A290, 0x0065A291, 0x00000002, 0x0065A490, 0x0065A48F, - 0x00000002, 0x0065A490, 0x0065A491, 0x00000002, 0x0065A690, 0x0065A691, - 0x00000002, 0x0065A890, 0x0065A891, 0x00000002, 0x0065AA90, 0x0065AA8F, - 0x00000002, 0x0065AA90, 0x0065AA91, 0x00000003, 0x0065AA90, 0x0065AA8F, - 0xA0812802, 0x00000003, 0x0065AA90, 0x0065AA91, 0xA0812802, 0x00000004, - 0x0065AA90, 0x0065AA91, 0xA0812802, 0xA0812802, 0x00000003, 0x0065AA90, - 0x0065AA91, 0xA0812902, 0x00000004, 0x0065AA90, 0x0065AA91, 0xA0812902, - 0xA0812802, 0x00000002, 0x0065AC90, 0x0065AC8F, 0x00000002, 0x0065AC90, - 0x0065AC91, 0x00000003, 0x0065AC90, 0x0065AC8F, 0xA0812802, 0x00000003, - 0x0065AC90, 0x0065AC91, 0xA0812802, 0x00000004, - // Block 253, offset 0x3f40 - 0x0065AC90, 0x0065AC91, 0xA0812802, 0xA0812802, 0x00000003, 0x0065AC90, - 0x0065AC91, 0xA0812902, 0x00000004, 0x0065AC90, 0x0065AC91, 0xA0812902, - 0xA0812802, 0x00000002, 0x0065AE90, 0x0065AE8F, 0x00000002, 0x0065AE90, - 0x0065AE91, 0x00000003, 0x0065AE90, 0x0065AE8F, 0xA0812802, 0x00000003, - 0x0065AE90, 0x0065AE91, 0xA0812802, 0x00000004, 0x0065AE90, 0x0065AE91, - 0xA0812802, 0xA0812802, 0x00000003, 0x0065AE90, 0x0065AE91, 0xA0812902, - 0x00000004, 0x0065AE90, 0x0065AE91, 0xA0812902, 0xA0812802, 0x00000002, - 0x0065B090, 0x0065B08F, 0x00000002, 0x0065B090, 0x0065B091, 0x00000003, - 0x0065B090, 0x0065B08F, 0xA0812802, 0x00000003, 0x0065B090, 0x0065B091, - 0xA0812802, 0x00000004, 0x0065B090, 0x0065B091, 0xA0812802, 0xA0812802, - 0x00000003, 0x0065B090, 0x0065B091, 0xA0812902, - // Block 254, offset 0x3f80 - 0x00000004, 0x0065B090, 0x0065B091, 0xA0812902, 0xA0812802, 0x00000002, - 0x0065B290, 0x0065B28F, 0x00000002, 0x0065B290, 0x0065B291, 0x00000003, - 0x0065B290, 0x0065B28F, 0xA0812802, 0x00000003, 0x0065B290, 0x0065B291, - 0xA0812802, 0x00000004, 0x0065B290, 0x0065B291, 0xA0812802, 0xA0812802, - 0x00000003, 0x0065B290, 0x0065B291, 0xA0812902, 0x00000004, 0x0065B290, - 0x0065B291, 0xA0812902, 0xA0812802, 0x00000002, 0x0065B490, 0x0065B491, - 0x00000002, 0x0065B690, 0x0065B691, 0x00000002, 0x0065B890, 0x0065B88F, - 0x00000002, 0x0065B890, 0x0065B891, 0x00000002, 0x0065BA90, 0x0065BA91, - 0x00000002, 0x0065BC90, 0x0065BC91, 0x00000002, 0x0065BE90, 0x0065BE8F, - 0x00000002, 0x0065BE90, 0x0065BE91, 0x00000002, 0x0065C090, 0x0065C08F, - 0x00000002, 0x0065C090, 0x0065C091, 0x00000002, - // Block 255, offset 0x3fc0 - 0x0065C490, 0x0065C48F, 0x00000002, 0x0065C490, 0x0065C491, 0x00000002, - 0x4065C421, 0x0065C891, 0x00000002, 0x0065C690, 0x0065C68F, 0x00000002, - 0x0065C690, 0x0065C691, 0x00000002, 0x0065C890, 0x0065C88F, 0x00000002, - 0x0065C890, 0x0065C891, 0x00000002, 0x0065CA90, 0x0065CA8F, 0x00000002, - 0x0065CA90, 0x0065CA91, 0x00000002, 0x0065CC90, 0x0065CC8F, 0x00000002, - 0x0065CC90, 0x0065CC91, 0x00000002, 0x0065CE90, 0x0065CE8F, 0x00000002, - 0x0065CE90, 0x0065CE91, 0x00000002, 0x0065D090, 0x0065D08F, 0x00000002, - 0x0065D090, 0x0065D091, 0x00000003, 0x0065D090, 0x0065D08F, 0xA0812802, - 0x00000003, 0x0065D090, 0x0065D091, 0xA0812802, 0x00000004, 0x0065D090, - 0x0065D091, 0xA0812802, 0xA0812802, 0x00000002, 0x0065D290, 0x0065D291, - 0x00000003, 0x0065D290, 0x0065D291, 0xA0812802, - // Block 256, offset 0x4000 - 0x00000004, 0x0065D290, 0x0065D291, 0xA0812802, 0xA0812802, 0x00000002, - 0x0065D490, 0x0065D491, 0x00000003, 0x0065D490, 0x0065D491, 0xA0812802, - 0x00000004, 0x0065D490, 0x0065D491, 0xA0812802, 0xA0812802, 0x00000002, - 0x0065D690, 0x0065D691, 0x00000003, 0x0065D690, 0x0065D691, 0xA0812802, - 0x00000004, 0x0065D690, 0x0065D691, 0xA0812802, 0xA0812802, 0x00000002, - 0x0065D890, 0x0065D891, 0x00000002, 0x02B24E9C, 0x02D6C69C, 0x00000002, - 0x02BCE69C, 0x02C4209C, 0x00000002, 0x02CC1C9C, 0x02D9769C, 0x00000002, - 0x02CC5A9C, 0x02A9189C, 0x00000003, 0x00032683, 0x404FDA20, 0x40032620, - 0x00000003, 0x404FD821, 0x82092817, 0x404FA420, 0x00000003, 0x404FD821, - 0x82092817, 0x404FA620, 0x00000003, 0x404FD821, 0x82092817, 0x404FA820, - 0x00000003, 0x404FD821, 0x82092817, 0x404FAA20, - // Block 257, offset 0x4040 - 0x00000003, 0x404FD821, 0x82092817, 0x404FAC20, 0x00000003, 0x404FD821, - 0x82092817, 0x404FAE20, 0x00000003, 0x404FD821, 0x82092817, 0x404FB020, - 0x00000003, 0x404FD821, 0x82092817, 0x404FB220, 0x00000003, 0x404FD821, - 0x82092817, 0x404FB420, 0x00000003, 0x404FD821, 0x82092817, 0x404FB620, - 0x00000003, 0x404FD821, 0x82092817, 0x404FB820, 0x00000003, 0x404FD821, - 0x82092817, 0x404FBA20, 0x00000003, 0x404FD821, 0x82092817, 0x404FBC20, - 0x00000003, 0x404FD821, 0x82092817, 0x404FBE20, 0x00000003, 0x404FD821, - 0x82092817, 0x404FC020, 0x00000003, 0x404FD821, 0x82092817, 0x404FC220, - 0x00000003, 0x404FD821, 0x82092817, 0x404FC420, 0x00000003, 0x404FD821, - 0x82092817, 0x404FC620, 0x00000003, 0x404FD821, 0x82092817, 0x404FC820, - 0x00000003, 0x404FD821, 0x82092817, 0x404FCA20, - // Block 258, offset 0x4080 - 0x00000003, 0x404FD821, 0x82092817, 0x404FCC20, 0x00000003, 0x404FD821, - 0x82092817, 0x404FCE20, 0x00000003, 0x404FD821, 0x82092817, 0x404FD020, - 0x00000003, 0x404FD821, 0x82092817, 0x404FD220, 0x00000003, 0x404FD821, - 0x82092817, 0x404FD420, 0x00000003, 0x404FD821, 0x82092817, 0x404FD620, - 0x00000003, 0x404FD821, 0x82092817, 0x404FD820, 0x00000003, 0x404FD821, - 0x82092817, 0x404FDA20, 0x00000003, 0x404FD821, 0x82092817, 0x404FDA20, - 0x00000003, 0x404FD821, 0x82092817, 0x404FDC20, 0x00000003, 0x404FD821, - 0x82092817, 0x404FDC20, 0x00000003, 0x404FD821, 0x82092817, 0x404FDC20, - 0x00000003, 0x404FD821, 0x82092817, 0x404FDE20, 0x00000003, 0x404FD821, - 0x82092817, 0x404FDE20, 0x00000003, 0x404FD821, 0x82092817, 0x404FE020, - 0x00000003, 0x404FD821, 0x82092817, 0x404FE220, - // Block 259, offset 0x40c0 - 0x00000003, 0x404FD821, 0x82092817, 0x404FE420, 0x00000003, 0x404FD821, - 0x82092817, 0x404FE620, 0x00000003, 0x404FD821, 0x82092817, 0x404FE820, - 0x00000002, 0x404FE820, 0x40500E20, 0x00000002, 0x404FE821, 0x40501020, - 0x00000002, 0x404FE821, 0x40501220, 0x00000002, 0x404FE821, 0x40501820, - 0x00000003, 0x004FE8A3, 0x40501820, 0x404FA420, 0x00000002, 0x404FE821, - 0x40501A20, 0x00000003, 0x004FE8A3, 0x40501A20, 0x404FDC20, 0x00000002, - 0x404FE821, 0x40502620, 0x00000002, 0x404FE821, 0x40502820, 0x00000002, - 0x404FE821, 0x40502A20, 0x00000002, 0x004FE8A3, 0x40502A20, 0x00000002, - 0x404FE821, 0x40502C20, 0x00000002, 0x4062AC21, 0x4063A820, 0x00000002, - 0x4062AC22, 0x4063A820, 0x00000002, 0x4062AC23, 0x4063A820, 0x00000002, - 0x4062AC24, 0x4063A820, 0x00000002, 0x4062AC25, - // Block 260, offset 0x4100 - 0x4063A820, 0x00000002, 0x4062AC26, 0x4063A820, 0x00000002, 0x4062AC27, - 0x4063A820, 0x00000002, 0x4062AC28, 0x4063A820, 0x00000002, 0x4062AC29, - 0x4063A820, 0x00000002, 0x4062AC2A, 0x4063A820, 0x00000002, 0x4062AC2B, - 0x4063A820, 0x00000002, 0x4062AC2C, 0x4063A820, 0x00000002, 0x4062AC2D, - 0x4063A820, 0x00000002, 0x4062AC2E, 0x4063A820, 0x00000002, 0x4062AC2F, - 0x4063A820, 0x00000002, 0x4062AC30, 0x4063A820, 0x00000002, 0x4062AC31, - 0x4063A820, 0x00000002, 0x4062AC32, 0x4063A820, 0x00000002, 0x4062AC33, - 0x4063A820, 0x00000002, 0x4062AC34, 0x4063A820, 0x00000002, 0x4062AC35, - 0x4063A820, 0x00000002, 0x4062AC36, 0x4063A820, 0x00000002, 0x4062AC37, - 0x4063A820, 0x00000002, 0x4062AC38, 0x4063A820, 0x00000002, 0x4062AC39, - 0x4063A820, 0x00000002, 0x4062AC3A, 0x4063A820, - // Block 261, offset 0x4140 - 0x00000002, 0x4062AC3B, 0x4063A820, 0x00000002, 0x4062AC3C, 0x4063A820, - 0x00000002, 0x4062AC3D, 0x4063A820, 0x00000002, 0x4062AC3E, 0x4063A820, - 0x00000002, 0x4062AC3F, 0x4063A820, 0x00000002, 0x4062AC40, 0x4063A820, - 0x00000002, 0x4062AC41, 0x4063A820, 0x00000002, 0x4062AC42, 0x4063A820, - 0x00000002, 0x4062AC43, 0x4063A820, 0x00000002, 0x4062AC44, 0x4063A820, - 0x00000002, 0x4062AC45, 0x4063A820, 0x00000002, 0x4062AC46, 0x4063A820, - 0x00000002, 0x4062AC47, 0x4063A820, 0x00000002, 0x4062AC48, 0x4063A820, - 0x00000002, 0x4062AC49, 0x4063A820, 0x00000002, 0x4062AC4A, 0x4063A820, - 0x00000002, 0x4062AC4B, 0x4063A820, 0x00000002, 0x4062AC4C, 0x4063A820, - 0x00000003, 0x4062AC21, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC22, - 0x4063A820, 0x40646420, 0x00000003, 0x4062AC23, - // Block 262, offset 0x4180 - 0x4063A820, 0x40646420, 0x00000003, 0x4062AC24, 0x4063A820, 0x40646420, - 0x00000003, 0x4062AC25, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC26, - 0x4063A820, 0x40646420, 0x00000003, 0x4062AC27, 0x4063A820, 0x40646420, - 0x00000003, 0x4062AC28, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC29, - 0x4063A820, 0x40646420, 0x00000003, 0x4062AC2A, 0x4063A820, 0x40646420, - 0x00000003, 0x4062AC2B, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC2C, - 0x4063A820, 0x40646420, 0x00000003, 0x4062AC2D, 0x4063A820, 0x40646420, - 0x00000003, 0x4062AC2E, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC2F, - 0x4063A820, 0x40646420, 0x00000003, 0x4062AC30, 0x4063A820, 0x40646420, - 0x00000003, 0x4062AC31, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC21, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC22, - // Block 263, offset 0x41c0 - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC23, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062AC24, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC25, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC26, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062AC27, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC28, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC29, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062AC2A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC2B, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC2C, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062AC2D, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC2E, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC2F, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062AC30, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC31, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC32, - // Block 264, offset 0x4200 - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC33, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062AC34, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC35, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC36, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062AC37, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC38, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC39, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062AC3A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC3B, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC3C, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062AC3D, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC3E, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC3F, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062AC40, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC41, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC42, - // Block 265, offset 0x4240 - 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC43, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062AC21, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC22, - 0x4063A820, 0x40647220, 0x00000003, 0x4062AC23, 0x4063A820, 0x40647220, - 0x00000003, 0x4062AC24, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC25, - 0x4063A820, 0x40647220, 0x00000003, 0x4062AC26, 0x4063A820, 0x40647220, - 0x00000003, 0x4062AC27, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC28, - 0x4063A820, 0x40647220, 0x00000003, 0x4062AC29, 0x4063A820, 0x40647220, - 0x00000003, 0x4062AC2A, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC2B, - 0x4063A820, 0x40647220, 0x00000003, 0x4062AC2C, 0x4063A820, 0x40647220, - 0x00000003, 0x4062AC2D, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC2E, - 0x4063A820, 0x40647220, 0x00000003, 0x4062AC2F, - // Block 266, offset 0x4280 - 0x4063A820, 0x40647220, 0x00000003, 0x4062AC30, 0x4063A820, 0x40647220, - 0x00000003, 0x4062AC21, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC22, - 0x4063A820, 0x40648220, 0x00000003, 0x4062AC23, 0x4063A820, 0x40648220, - 0x00000003, 0x4062AC24, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC25, - 0x4063A820, 0x40648220, 0x00000003, 0x4062AC26, 0x4063A820, 0x40648220, - 0x00000003, 0x4062AC27, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC28, - 0x4063A820, 0x40648220, 0x00000003, 0x4062AC29, 0x4063A820, 0x40648220, - 0x00000003, 0x4062AC2A, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC2B, - 0x4063A820, 0x40648220, 0x00000003, 0x4062AC2C, 0x4063A820, 0x40648220, - 0x00000003, 0x4062AC2D, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC2E, - 0x4063A820, 0x40648220, 0x00000003, 0x4062AC2F, - // Block 267, offset 0x42c0 - 0x4063A820, 0x40648220, 0x00000003, 0x4062AC30, 0x4063A820, 0x40648220, - 0x00000003, 0x4062AC31, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC32, - 0x4063A820, 0x40648220, 0x00000003, 0x4062AC33, 0x4063A820, 0x40648220, - 0x00000003, 0x4062AC34, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC35, - 0x4063A820, 0x40648220, 0x00000003, 0x4062AC36, 0x4063A820, 0x40648220, - 0x00000003, 0x4062AC37, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC38, - 0x4063A820, 0x40648220, 0x00000003, 0x4062AC39, 0x4063A820, 0x40648220, - 0x00000003, 0x4062AC3A, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC3B, - 0x4063A820, 0x40648220, 0x00000003, 0x4062AC3C, 0x4063A820, 0x40648220, - 0x00000003, 0x4062AC3D, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC3E, - 0x4063A820, 0x40648220, 0x00000003, 0x4062AC3F, - // Block 268, offset 0x4300 - 0x4063A820, 0x40648220, 0x00000003, 0x4062AC40, 0x4063A820, 0x40648220, - 0x00000003, 0x4062AC41, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC42, - 0x4063A820, 0x40648220, 0x00000003, 0x4062AC43, 0x4063A820, 0x40648220, - 0x00000003, 0x4062AC21, 0x4063A820, 0x40648420, 0x00000003, 0x4062AC22, - 0x4063A820, 0x40648420, 0x00000003, 0x4062AC23, 0x4063A820, 0x40648420, - 0x00000003, 0x4062AC24, 0x4063A820, 0x40648420, 0x00000003, 0x4062AC25, - 0x4063A820, 0x40648420, 0x00000003, 0x4062AC26, 0x4063A820, 0x40648420, - 0x00000003, 0x4062AC27, 0x4063A820, 0x40648420, 0x00000003, 0x4062AC21, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC22, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062AC23, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC24, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC25, - // Block 269, offset 0x4340 - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC26, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062AC27, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC28, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC29, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062AC2A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC2B, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC2C, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062AC2D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC2E, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC2F, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062AC30, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC31, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC32, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062AC33, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC34, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC35, - // Block 270, offset 0x4380 - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC36, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062AC37, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC38, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC39, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062AC3A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC3B, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC3C, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062AC3D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC3E, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC3F, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062AC40, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC41, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC42, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062AC43, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC44, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC45, - // Block 271, offset 0x43c0 - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC46, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062AC47, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC48, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC49, 0x4063A820, 0x40648C20, - 0x00000002, 0x4062AC21, 0x4063AA20, 0x00000002, 0x4062AC22, 0x4063AA20, - 0x00000002, 0x4062AC23, 0x4063AA20, 0x00000002, 0x4062AC24, 0x4063AA20, - 0x00000002, 0x4062AC25, 0x4063AA20, 0x00000002, 0x4062AC26, 0x4063AA20, - 0x00000002, 0x4062AC27, 0x4063AA20, 0x00000002, 0x4062AC28, 0x4063AA20, - 0x00000002, 0x4062AC29, 0x4063AA20, 0x00000002, 0x4062AC2A, 0x4063AA20, - 0x00000002, 0x4062AC2B, 0x4063AA20, 0x00000002, 0x4062AC2C, 0x4063AA20, - 0x00000002, 0x4062AC2D, 0x4063AA20, 0x00000002, 0x4062AC2E, 0x4063AA20, - 0x00000002, 0x4062AC2F, 0x4063AA20, 0x00000002, - // Block 272, offset 0x4400 - 0x4062AC30, 0x4063AA20, 0x00000002, 0x4062AC31, 0x4063AA20, 0x00000002, - 0x4062AC32, 0x4063AA20, 0x00000002, 0x4062AC33, 0x4063AA20, 0x00000002, - 0x4062AC34, 0x4063AA20, 0x00000002, 0x4062AC35, 0x4063AA20, 0x00000002, - 0x4062AC36, 0x4063AA20, 0x00000002, 0x4062AC37, 0x4063AA20, 0x00000002, - 0x4062AC38, 0x4063AA20, 0x00000002, 0x4062AC39, 0x4063AA20, 0x00000002, - 0x4062AC3A, 0x4063AA20, 0x00000003, 0x4062AC21, 0x4063AA20, 0x40646420, - 0x00000003, 0x4062AC22, 0x4063AA20, 0x40646420, 0x00000003, 0x4062AC21, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062AC22, 0x4063AA20, 0x40648C20, - 0x00000003, 0x4062AC23, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062AC24, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063AA20, 0x40648C20, - 0x00000003, 0x4062AC26, 0x4063AA20, 0x40648C20, - // Block 273, offset 0x4440 - 0x00000003, 0x4062AC21, 0x4063AC20, 0x40646420, 0x00000002, 0x4062AC21, - 0x4063B020, 0x00000002, 0x4062AC22, 0x4063B020, 0x00000002, 0x4062AC23, - 0x4063B020, 0x00000002, 0x4062AC24, 0x4063B020, 0x00000002, 0x4062AC25, - 0x4063B020, 0x00000002, 0x4062AC26, 0x4063B020, 0x00000002, 0x4062AC27, - 0x4063B020, 0x00000002, 0x4062AC28, 0x4063B020, 0x00000002, 0x4062AC29, - 0x4063B020, 0x00000002, 0x4062AC2A, 0x4063B020, 0x00000002, 0x4062AC2B, - 0x4063B020, 0x00000002, 0x4062AC2C, 0x4063B020, 0x00000002, 0x4062AC2D, - 0x4063B020, 0x00000002, 0x4062AC2E, 0x4063B020, 0x00000002, 0x4062AC2F, - 0x4063B020, 0x00000002, 0x4062AC30, 0x4063B020, 0x00000002, 0x4062AC31, - 0x4063B020, 0x00000002, 0x4062AC32, 0x4063B020, 0x00000002, 0x4062AC33, - 0x4063B020, 0x00000002, 0x4062AC34, 0x4063B020, - // Block 274, offset 0x4480 - 0x00000002, 0x4062AC35, 0x4063B020, 0x00000002, 0x4062AC36, 0x4063B020, - 0x00000002, 0x4062AC37, 0x4063B020, 0x00000002, 0x4062AC38, 0x4063B020, - 0x00000002, 0x4062AC39, 0x4063B020, 0x00000002, 0x4062AC3A, 0x4063B020, - 0x00000002, 0x4062AC3B, 0x4063B020, 0x00000002, 0x4062AC3C, 0x4063B020, - 0x00000002, 0x4062AC3D, 0x4063B020, 0x00000002, 0x4062AC3E, 0x4063B020, - 0x00000003, 0x4062AC21, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC22, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC23, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062AC24, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC25, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC26, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062AC27, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC28, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC29, - // Block 275, offset 0x44c0 - 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062AC2B, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC2C, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC2D, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062AC2E, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC2F, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC30, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062AC31, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC32, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC21, 0x4063B020, 0x40647220, - 0x00000003, 0x4062AC22, 0x4063B020, 0x40647220, 0x00000003, 0x4062AC23, - 0x4063B020, 0x40647220, 0x00000003, 0x4062AC24, 0x4063B020, 0x40647220, - 0x00000003, 0x4062AC25, 0x4063B020, 0x40647220, 0x00000003, 0x4062AC26, - 0x4063B020, 0x40647220, 0x00000003, 0x4062AC27, - // Block 276, offset 0x4500 - 0x4063B020, 0x40647220, 0x00000003, 0x4062AC21, 0x4063B020, 0x40648220, - 0x00000003, 0x4062AC22, 0x4063B020, 0x40648220, 0x00000003, 0x4062AC23, - 0x4063B020, 0x40648220, 0x00000003, 0x4062AC24, 0x4063B020, 0x40648220, - 0x00000003, 0x4062AC25, 0x4063B020, 0x40648220, 0x00000003, 0x4062AC26, - 0x4063B020, 0x40648220, 0x00000003, 0x4062AC27, 0x4063B020, 0x40648220, - 0x00000003, 0x4062AC28, 0x4063B020, 0x40648220, 0x00000003, 0x4062AC29, - 0x4063B020, 0x40648220, 0x00000003, 0x4062AC21, 0x4063B020, 0x40648420, - 0x00000003, 0x4062AC22, 0x4063B020, 0x40648420, 0x00000003, 0x4062AC23, - 0x4063B020, 0x40648420, 0x00000003, 0x4062AC24, 0x4063B020, 0x40648420, - 0x00000003, 0x4062AC25, 0x4063B020, 0x40648420, 0x00000002, 0x4062AC21, - 0x4063B220, 0x00000002, 0x4062AC22, 0x4063B220, - // Block 277, offset 0x4540 - 0x00000002, 0x4062AC23, 0x4063B220, 0x00000003, 0x4062AC21, 0x4063B420, - 0x40646420, 0x00000003, 0x4062AC22, 0x4063B420, 0x40646420, 0x00000003, - 0x4062AC23, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC24, 0x4063B420, - 0x40646420, 0x00000003, 0x4062AC25, 0x4063B420, 0x40646420, 0x00000003, - 0x4062AC26, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC27, 0x4063B420, - 0x40646420, 0x00000003, 0x4062AC28, 0x4063B420, 0x40646420, 0x00000003, - 0x4062AC29, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC2A, 0x4063B420, - 0x40646420, 0x00000003, 0x4062AC2B, 0x4063B420, 0x40646420, 0x00000003, - 0x4062AC2C, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC2D, 0x4063B420, - 0x40646420, 0x00000003, 0x4062AC21, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062AC22, 0x4063B420, 0x40646A20, 0x00000003, - // Block 278, offset 0x4580 - 0x4062AC23, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC24, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062AC25, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062AC26, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC27, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062AC28, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062AC29, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062AC2B, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062AC2C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC2D, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062AC2F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC30, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062AC31, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062AC32, 0x4063B420, 0x40646A20, 0x00000003, - // Block 279, offset 0x45c0 - 0x4062AC33, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC34, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062AC21, 0x4063B420, 0x40647220, 0x00000003, - 0x4062AC22, 0x4063B420, 0x40647220, 0x00000003, 0x4062AC23, 0x4063B420, - 0x40647220, 0x00000003, 0x4062AC24, 0x4063B420, 0x40647220, 0x00000003, - 0x4062AC25, 0x4063B420, 0x40647220, 0x00000003, 0x4062AC26, 0x4063B420, - 0x40647220, 0x00000003, 0x4062AC27, 0x4063B420, 0x40647220, 0x00000003, - 0x4062AC28, 0x4063B420, 0x40647220, 0x00000003, 0x4062AC29, 0x4063B420, - 0x40647220, 0x00000003, 0x4062AC21, 0x4063B420, 0x40648220, 0x00000003, - 0x4062AC22, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC23, 0x4063B420, - 0x40648220, 0x00000003, 0x4062AC24, 0x4063B420, 0x40648220, 0x00000003, - 0x4062AC25, 0x4063B420, 0x40648220, 0x00000003, - // Block 280, offset 0x4600 - 0x4062AC26, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC27, 0x4063B420, - 0x40648220, 0x00000003, 0x4062AC28, 0x4063B420, 0x40648220, 0x00000003, - 0x4062AC29, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC2A, 0x4063B420, - 0x40648220, 0x00000003, 0x4062AC2B, 0x4063B420, 0x40648220, 0x00000003, - 0x4062AC2C, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC2D, 0x4063B420, - 0x40648220, 0x00000003, 0x4062AC2E, 0x4063B420, 0x40648220, 0x00000003, - 0x4062AC2F, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC21, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC22, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC23, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC24, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC25, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC26, 0x4063B420, 0x40648C20, 0x00000003, - // Block 281, offset 0x4640 - 0x4062AC27, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC28, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC29, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC2A, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC2B, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC2C, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC2D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC2E, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC2F, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC30, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC31, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC32, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC33, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC34, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC35, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC36, 0x4063B420, 0x40648C20, 0x00000003, - // Block 282, offset 0x4680 - 0x4062AC37, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC38, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC39, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC3A, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC3B, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC3C, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC3D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC3E, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC3F, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC40, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC41, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC42, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC43, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC44, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC45, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC46, 0x4063B420, 0x40648C20, 0x00000003, - // Block 283, offset 0x46c0 - 0x4062AC47, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC48, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC49, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC4A, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC4B, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC4C, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC4D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC4E, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC4F, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC50, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC51, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC52, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC53, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC54, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC55, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC56, 0x4063B420, 0x40648C20, 0x00000003, - // Block 284, offset 0x4700 - 0x4062AC57, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC58, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC59, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC5A, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC5B, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC5C, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC5D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC5E, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062AC5F, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062AC60, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC61, 0x4063B420, - 0x40648C20, 0x00000002, 0x4062AC21, 0x4063B620, 0x00000002, 0x4062AC22, - 0x4063B620, 0x00000002, 0x4062AC23, 0x4063B620, 0x00000002, 0x4062AC24, - 0x4063B620, 0x00000002, 0x4062AC25, 0x4063B620, 0x00000002, 0x4062AC26, - 0x4063B620, 0x00000002, 0x4062AC27, 0x4063B620, - // Block 285, offset 0x4740 - 0x00000002, 0x4062AC28, 0x4063B620, 0x00000002, 0x4062AC29, 0x4063B620, - 0x00000002, 0x4062AC2A, 0x4063B620, 0x00000002, 0x4062AC2B, 0x4063B620, - 0x00000002, 0x4062AC2C, 0x4063B620, 0x00000002, 0x4062AC2D, 0x4063B620, - 0x00000002, 0x4062AC2E, 0x4063B620, 0x00000002, 0x4062AC2F, 0x4063B620, - 0x00000002, 0x4062AC30, 0x4063B620, 0x00000002, 0x4062AC31, 0x4063B620, - 0x00000002, 0x4062AC32, 0x4063B620, 0x00000002, 0x4062AC33, 0x4063B620, - 0x00000002, 0x4062AC34, 0x4063B620, 0x00000002, 0x4062AC35, 0x4063B620, - 0x00000002, 0x4062AC36, 0x4063B620, 0x00000002, 0x4062AC37, 0x4063B620, - 0x00000002, 0x4062AC38, 0x4063B620, 0x00000002, 0x4062AC39, 0x4063B620, - 0x00000002, 0x4062AC3A, 0x4063B620, 0x00000002, 0x4062AC3B, 0x4063B620, - 0x00000002, 0x4062AC3C, 0x4063B620, 0x00000002, - // Block 286, offset 0x4780 - 0x4062AC3D, 0x4063B620, 0x00000002, 0x4062AC3E, 0x4063B620, 0x00000002, - 0x4062AC3F, 0x4063B620, 0x00000002, 0x4062AC40, 0x4063B620, 0x00000002, - 0x4062AC41, 0x4063B620, 0x00000002, 0x4062AC42, 0x4063B620, 0x00000002, - 0x4062AC43, 0x4063B620, 0x00000002, 0x4062AC44, 0x4063B620, 0x00000002, - 0x4062AC21, 0x4063B820, 0x00000002, 0x4062AC22, 0x4063B820, 0x00000002, - 0x4062AC23, 0x4063B820, 0x00000002, 0x4062AC24, 0x4063B820, 0x00000002, - 0x4062AC25, 0x4063B820, 0x00000002, 0x4062AC26, 0x4063B820, 0x00000002, - 0x4062AC27, 0x4063B820, 0x00000002, 0x4062AC28, 0x4063B820, 0x00000002, - 0x4062AC29, 0x4063B820, 0x00000002, 0x4062AC2A, 0x4063B820, 0x00000002, - 0x4062AC2B, 0x4063B820, 0x00000002, 0x4062AC2C, 0x4063B820, 0x00000002, - 0x4062AC2D, 0x4063B820, 0x00000002, 0x4062AC2E, - // Block 287, offset 0x47c0 - 0x4063B820, 0x00000002, 0x4062AC2F, 0x4063B820, 0x00000002, 0x4062AC30, - 0x4063B820, 0x00000002, 0x4062AC31, 0x4063B820, 0x00000002, 0x4062AC32, - 0x4063B820, 0x00000002, 0x4062AC33, 0x4063B820, 0x00000002, 0x4062AC34, - 0x4063B820, 0x00000002, 0x4062AC35, 0x4063B820, 0x00000002, 0x4062AC36, - 0x4063B820, 0x00000002, 0x4062AC37, 0x4063B820, 0x00000002, 0x4062AC38, - 0x4063B820, 0x00000002, 0x4062AC39, 0x4063B820, 0x00000002, 0x4062AC3A, - 0x4063B820, 0x00000002, 0x4062AC3B, 0x4063B820, 0x00000002, 0x4062AC3C, - 0x4063B820, 0x00000002, 0x4062AC3D, 0x4063B820, 0x00000002, 0x4062AC3E, - 0x4063B820, 0x00000002, 0x4062AC3F, 0x4063B820, 0x00000002, 0x4062AC40, - 0x4063B820, 0x00000002, 0x4062AC41, 0x4063B820, 0x00000002, 0x4062AC42, - 0x4063B820, 0x00000002, 0x4062AC43, 0x4063B820, - // Block 288, offset 0x4800 - 0x00000002, 0x4062AC44, 0x4063B820, 0x00000002, 0x4062AC45, 0x4063B820, - 0x00000002, 0x4062AC46, 0x4063B820, 0x00000002, 0x4062AC47, 0x4063B820, - 0x00000002, 0x4062AC48, 0x4063B820, 0x00000002, 0x4062AC49, 0x4063B820, - 0x00000002, 0x4062AC4A, 0x4063B820, 0x00000002, 0x4062AC4B, 0x4063B820, - 0x00000002, 0x4062AC4C, 0x4063B820, 0x00000002, 0x4062AC4D, 0x4063B820, - 0x00000002, 0x4062AC4E, 0x4063B820, 0x00000002, 0x4062AC4F, 0x4063B820, - 0x00000002, 0x4062AC50, 0x4063B820, 0x00000002, 0x4062AC51, 0x4063B820, - 0x00000002, 0x4062AC52, 0x4063B820, 0x00000002, 0x4062AC53, 0x4063B820, - 0x00000002, 0x4062AC54, 0x4063B820, 0x00000002, 0x4062AC55, 0x4063B820, - 0x00000002, 0x4062AC56, 0x4063B820, 0x00000002, 0x4062AC57, 0x4063B820, - 0x00000002, 0x4062AC58, 0x4063B820, 0x00000002, - // Block 289, offset 0x4840 - 0x4062AC59, 0x4063B820, 0x00000002, 0x4062AC5A, 0x4063B820, 0x00000002, - 0x4062AC5B, 0x4063B820, 0x00000002, 0x4062AC5C, 0x4063B820, 0x00000002, - 0x4062AC5D, 0x4063B820, 0x00000002, 0x4062AC5E, 0x4063B820, 0x00000002, - 0x4062AC5F, 0x4063B820, 0x00000002, 0x4062AC60, 0x4063B820, 0x00000002, - 0x4062AC61, 0x4063B820, 0x00000002, 0x4062AC62, 0x4063B820, 0x00000002, - 0x4062AC63, 0x4063B820, 0x00000003, 0x4062AC21, 0x4063B820, 0x40646420, - 0x00000003, 0x4062AC22, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC23, - 0x4063B820, 0x40646420, 0x00000003, 0x4062AC24, 0x4063B820, 0x40646420, - 0x00000003, 0x4062AC25, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC26, - 0x4063B820, 0x40646420, 0x00000003, 0x4062AC27, 0x4063B820, 0x40646420, - 0x00000003, 0x4062AC28, 0x4063B820, 0x40646420, - // Block 290, offset 0x4880 - 0x00000003, 0x4062AC29, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC2A, - 0x4063B820, 0x40646420, 0x00000003, 0x4062AC2B, 0x4063B820, 0x40646420, - 0x00000003, 0x4062AC2C, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC21, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC22, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062AC23, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC24, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC25, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062AC26, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC27, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC28, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062AC29, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC2A, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC2B, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062AC2C, 0x4063B820, 0x40646A20, - // Block 291, offset 0x48c0 - 0x00000003, 0x4062AC2D, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC2E, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC2F, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062AC30, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC31, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC32, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062AC33, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC34, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC35, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062AC36, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC37, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC38, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062AC21, 0x4063B820, 0x40647220, 0x00000003, 0x4062AC22, - 0x4063B820, 0x40647220, 0x00000003, 0x4062AC23, 0x4063B820, 0x40647220, - 0x00000003, 0x4062AC24, 0x4063B820, 0x40647220, - // Block 292, offset 0x4900 - 0x00000003, 0x4062AC25, 0x4063B820, 0x40647220, 0x00000003, 0x4062AC26, - 0x4063B820, 0x40647220, 0x00000003, 0x4062AC21, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062AC22, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC23, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC24, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062AC25, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC26, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC27, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062AC28, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC29, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC2A, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062AC2B, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC2C, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC2D, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062AC2E, 0x4063B820, 0x40648C20, - // Block 293, offset 0x4940 - 0x00000003, 0x4062AC2F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC30, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC31, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062AC32, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC33, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC34, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062AC35, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC36, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC37, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062AC38, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC39, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC3A, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062AC3B, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC3C, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC21, 0x4063B820, 0x40648E20, - 0x00000002, 0x4062AC21, 0x4063BA20, 0x00000002, - // Block 294, offset 0x4980 - 0x4062AC22, 0x4063BA20, 0x00000002, 0x4062AC23, 0x4063BA20, 0x00000002, - 0x4062AC24, 0x4063BA20, 0x00000002, 0x4062AC25, 0x4063BA20, 0x00000002, - 0x4062AC26, 0x4063BA20, 0x00000002, 0x4062AC27, 0x4063BA20, 0x00000002, - 0x4062AC28, 0x4063BA20, 0x00000002, 0x4062AC29, 0x4063BA20, 0x00000002, - 0x4062AC2A, 0x4063BA20, 0x00000002, 0x4062AC2B, 0x4063BA20, 0x00000002, - 0x4062AC2C, 0x4063BA20, 0x00000002, 0x4062AC2D, 0x4063BA20, 0x00000002, - 0x4062AC2E, 0x4063BA20, 0x00000002, 0x4062AC2F, 0x4063BA20, 0x00000002, - 0x4062AC30, 0x4063BA20, 0x00000002, 0x4062AC31, 0x4063BA20, 0x00000002, - 0x4062AC32, 0x4063BA20, 0x00000002, 0x4062AC33, 0x4063BA20, 0x00000002, - 0x4062AC34, 0x4063BA20, 0x00000002, 0x4062AC35, 0x4063BA20, 0x00000002, - 0x4062AC36, 0x4063BA20, 0x00000002, 0x4062AC37, - // Block 295, offset 0x49c0 - 0x4063BA20, 0x00000002, 0x4062AC38, 0x4063BA20, 0x00000002, 0x4062AC39, - 0x4063BA20, 0x00000003, 0x4062AC21, 0x4063BA20, 0x40646420, 0x00000003, - 0x4062AC22, 0x4063BA20, 0x40646420, 0x00000003, 0x4062AC23, 0x4063BA20, - 0x40646420, 0x00000003, 0x4062AC24, 0x4063BA20, 0x40646420, 0x00000003, - 0x4062AC25, 0x4063BA20, 0x40646420, 0x00000003, 0x4062AC26, 0x4063BA20, - 0x40646420, 0x00000003, 0x4062AC27, 0x4063BA20, 0x40646420, 0x00000003, - 0x4062AC28, 0x4063BA20, 0x40646420, 0x00000003, 0x4062AC29, 0x4063BA20, - 0x40646420, 0x00000003, 0x4062AC21, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062AC22, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC23, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062AC24, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062AC25, 0x4063BA20, 0x40646A20, 0x00000003, - // Block 296, offset 0x4a00 - 0x4062AC26, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC27, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062AC28, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062AC29, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062AC2B, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062AC2C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC2D, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062AC2F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC30, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062AC31, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062AC32, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC33, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062AC34, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062AC35, 0x4063BA20, 0x40646A20, 0x00000003, - // Block 297, offset 0x4a40 - 0x4062AC36, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC37, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062AC38, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062AC39, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC3A, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062AC3B, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062AC3C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC3D, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062AC3E, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062AC3F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC21, 0x4063BA20, - 0x40647220, 0x00000003, 0x4062AC22, 0x4063BA20, 0x40647220, 0x00000003, - 0x4062AC23, 0x4063BA20, 0x40647220, 0x00000003, 0x4062AC24, 0x4063BA20, - 0x40647220, 0x00000003, 0x4062AC25, 0x4063BA20, 0x40647220, 0x00000003, - 0x4062AC26, 0x4063BA20, 0x40647220, 0x00000003, - // Block 298, offset 0x4a80 - 0x4062AC27, 0x4063BA20, 0x40647220, 0x00000003, 0x4062AC28, 0x4063BA20, - 0x40647220, 0x00000003, 0x4062AC29, 0x4063BA20, 0x40647220, 0x00000003, - 0x4062AC2A, 0x4063BA20, 0x40647220, 0x00000003, 0x4062AC21, 0x4063BA20, - 0x40648C20, 0x00000003, 0x4062AC22, 0x4063BA20, 0x40648C20, 0x00000003, - 0x4062AC23, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC24, 0x4063BA20, - 0x40648C20, 0x00000003, 0x4062AC25, 0x4063BA20, 0x40648C20, 0x00000003, - 0x4062AC26, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC27, 0x4063BA20, - 0x40648C20, 0x00000003, 0x4062AC28, 0x4063BA20, 0x40648C20, 0x00000003, - 0x4062AC29, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC2A, 0x4063BA20, - 0x40648C20, 0x00000003, 0x4062AC2B, 0x4063BA20, 0x40648C20, 0x00000003, - 0x4062AC2C, 0x4063BA20, 0x40648C20, 0x00000003, - // Block 299, offset 0x4ac0 - 0x4062AC2D, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC2E, 0x4063BA20, - 0x40648C20, 0x00000003, 0x4062AC2F, 0x4063BA20, 0x40648C20, 0x00000003, - 0x4062AC30, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC31, 0x4063BA20, - 0x40648C20, 0x00000003, 0x4062AC32, 0x4063BA20, 0x40648C20, 0x00000003, - 0x4062AC33, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC34, 0x4063BA20, - 0x40648C20, 0x00000003, 0x4062AC35, 0x4063BA20, 0x40648C20, 0x00000003, - 0x4062AC36, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC37, 0x4063BA20, - 0x40648C20, 0x00000003, 0x4062AC38, 0x4063BA20, 0x40648C20, 0x00000002, - 0x4062AC21, 0x4063BC20, 0x00000002, 0x4062AC22, 0x4063BC20, 0x00000002, - 0x4062AC23, 0x4063BC20, 0x00000002, 0x4062AC24, 0x4063BC20, 0x00000002, - 0x4062AC25, 0x4063BC20, 0x00000002, 0x4062AC26, - // Block 300, offset 0x4b00 - 0x4063BC20, 0x00000002, 0x4062AC27, 0x4063BC20, 0x00000002, 0x4062AC21, - 0x4063BE20, 0x00000002, 0x4062AC22, 0x4063BE20, 0x00000002, 0x4062AC23, - 0x4063BE20, 0x00000002, 0x4062AC24, 0x4063BE20, 0x00000002, 0x4062AC25, - 0x4063BE20, 0x00000002, 0x4062AC26, 0x4063BE20, 0x00000002, 0x4062AC27, - 0x4063BE20, 0x00000002, 0x4062AC28, 0x4063BE20, 0x00000002, 0x4062AC29, - 0x4063BE20, 0x00000002, 0x4062AC2A, 0x4063BE20, 0x00000002, 0x4062AC2B, - 0x4063BE20, 0x00000002, 0x4062AC2C, 0x4063BE20, 0x00000002, 0x4062AC2D, - 0x4063BE20, 0x00000002, 0x4062AC2E, 0x4063BE20, 0x00000002, 0x4062AC2F, - 0x4063BE20, 0x00000002, 0x4062AC30, 0x4063BE20, 0x00000003, 0x4062AC21, - 0x4063BE20, 0x40646420, 0x00000003, 0x4062AC21, 0x4063BE20, 0x40648C20, - 0x00000003, 0x4062AC22, 0x4063BE20, 0x40648C20, - // Block 301, offset 0x4b40 - 0x00000003, 0x4062AC23, 0x4063BE20, 0x40648C20, 0x00000003, 0x4062AC24, - 0x4063BE20, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063BE20, 0x40648C20, - 0x00000003, 0x4062AC26, 0x4063BE20, 0x40648C20, 0x00000003, 0x4062AC27, - 0x4063BE20, 0x40648C20, 0x00000003, 0x4062AC28, 0x4063BE20, 0x40648C20, - 0x00000002, 0x4062AC21, 0x4063C020, 0x00000002, 0x4062AC22, 0x4063C020, - 0x00000002, 0x4062AC23, 0x4063C020, 0x00000002, 0x4062AC24, 0x4063C020, - 0x00000002, 0x4062AC25, 0x4063C020, 0x00000002, 0x4062AC26, 0x4063C020, - 0x00000002, 0x4062AC27, 0x4063C020, 0x00000002, 0x4062AC28, 0x4063C020, - 0x00000002, 0x4062AC29, 0x4063C020, 0x00000002, 0x4062AC2A, 0x4063C020, - 0x00000002, 0x4062AC2B, 0x4063C020, 0x00000002, 0x4062AC2C, 0x4063C020, - 0x00000002, 0x4062AC2D, 0x4063C020, 0x00000002, - // Block 302, offset 0x4b80 - 0x4062AC2E, 0x4063C020, 0x00000002, 0x4062AC2F, 0x4063C020, 0x00000002, - 0x4062AC30, 0x4063C020, 0x00000002, 0x4062AC31, 0x4063C020, 0x00000002, - 0x4062AC32, 0x4063C020, 0x00000002, 0x4062AC33, 0x4063C020, 0x00000002, - 0x4062AC34, 0x4063C020, 0x00000002, 0x4062AC35, 0x4063C020, 0x00000002, - 0x4062AC36, 0x4063C020, 0x00000002, 0x4062AC37, 0x4063C020, 0x00000002, - 0x4062AC38, 0x4063C020, 0x00000002, 0x4062AC39, 0x4063C020, 0x00000002, - 0x4062AC3A, 0x4063C020, 0x00000002, 0x4062AC3B, 0x4063C020, 0x00000002, - 0x4062AC3C, 0x4063C020, 0x00000002, 0x4062AC3D, 0x4063C020, 0x00000002, - 0x4062AC3E, 0x4063C020, 0x00000002, 0x4062AC3F, 0x4063C020, 0x00000002, - 0x4062AC40, 0x4063C020, 0x00000002, 0x4062AC41, 0x4063C020, 0x00000002, - 0x4062AC42, 0x4063C020, 0x00000002, 0x4062AC43, - // Block 303, offset 0x4bc0 - 0x4063C020, 0x00000002, 0x4062AC44, 0x4063C020, 0x00000002, 0x4062AC45, - 0x4063C020, 0x00000002, 0x4062AC46, 0x4063C020, 0x00000002, 0x4062AC47, - 0x4063C020, 0x00000002, 0x4062AC48, 0x4063C020, 0x00000002, 0x4062AC49, - 0x4063C020, 0x00000002, 0x4062AC4A, 0x4063C020, 0x00000002, 0x4062AC4B, - 0x4063C020, 0x00000002, 0x4062AC4C, 0x4063C020, 0x00000002, 0x4062AC21, - 0x4063C220, 0x00000002, 0x4062AC22, 0x4063C220, 0x00000002, 0x4062AC23, - 0x4063C220, 0x00000002, 0x4062AC24, 0x4063C220, 0x00000002, 0x4062AC25, - 0x4063C220, 0x00000002, 0x4062AC26, 0x4063C220, 0x00000002, 0x4062AC27, - 0x4063C220, 0x00000002, 0x4062AC28, 0x4063C220, 0x00000002, 0x4062AC29, - 0x4063C220, 0x00000002, 0x4062AC2A, 0x4063C220, 0x00000002, 0x4062AC2B, - 0x4063C220, 0x00000002, 0x4062AC2C, 0x4063C220, - // Block 304, offset 0x4c00 - 0x00000002, 0x4062AC2D, 0x4063C220, 0x00000002, 0x4062AC2E, 0x4063C220, - 0x00000002, 0x4062AC2F, 0x4063C220, 0x00000002, 0x4062AC30, 0x4063C220, - 0x00000002, 0x4062AC31, 0x4063C220, 0x00000002, 0x4062AC32, 0x4063C220, - 0x00000002, 0x4062AC33, 0x4063C220, 0x00000002, 0x4062AC34, 0x4063C220, - 0x00000002, 0x4062AC35, 0x4063C220, 0x00000002, 0x4062AC36, 0x4063C220, - 0x00000002, 0x4062AC37, 0x4063C220, 0x00000002, 0x4062AC38, 0x4063C220, - 0x00000002, 0x4062AC39, 0x4063C220, 0x00000002, 0x4062AC3A, 0x4063C220, - 0x00000002, 0x4062AC3B, 0x4063C220, 0x00000002, 0x4062AC3C, 0x4063C220, - 0x00000002, 0x4062AC3D, 0x4063C220, 0x00000002, 0x4062AC3E, 0x4063C220, - 0x00000002, 0x4062AC3F, 0x4063C220, 0x00000002, 0x4062AC40, 0x4063C220, - 0x00000002, 0x4062AC41, 0x4063C220, 0x00000002, - // Block 305, offset 0x4c40 - 0x4062AC42, 0x4063C220, 0x00000002, 0x4062AC43, 0x4063C220, 0x00000002, - 0x4062AC44, 0x4063C220, 0x00000002, 0x4062AC45, 0x4063C220, 0x00000002, - 0x4062AC46, 0x4063C220, 0x00000002, 0x4062AC47, 0x4063C220, 0x00000002, - 0x4062AC48, 0x4063C220, 0x00000002, 0x4062AC49, 0x4063C220, 0x00000002, - 0x4062AC4A, 0x4063C220, 0x00000002, 0x4062AC4B, 0x4063C220, 0x00000002, - 0x4062AC4C, 0x4063C220, 0x00000002, 0x4062AC4D, 0x4063C220, 0x00000002, - 0x4062AC4E, 0x4063C220, 0x00000002, 0x4062AC4F, 0x4063C220, 0x00000002, - 0x4062AC50, 0x4063C220, 0x00000002, 0x4062AC51, 0x4063C220, 0x00000002, - 0x4062AC52, 0x4063C220, 0x00000002, 0x4062AC53, 0x4063C220, 0x00000002, - 0x4062AC54, 0x4063C220, 0x00000002, 0x4062AC55, 0x4063C220, 0x00000002, - 0x4062AC56, 0x4063C220, 0x00000002, 0x4062AC57, - // Block 306, offset 0x4c80 - 0x4063C220, 0x00000002, 0x4062AC58, 0x4063C220, 0x00000002, 0x4062AC59, - 0x4063C220, 0x00000002, 0x4062AC5A, 0x4063C220, 0x00000002, 0x4062AC5B, - 0x4063C220, 0x00000002, 0x4062AC5C, 0x4063C220, 0x00000002, 0x4062AC5D, - 0x4063C220, 0x00000002, 0x4062AC5E, 0x4063C220, 0x00000002, 0x4062AC5F, - 0x4063C220, 0x00000002, 0x4062AC60, 0x4063C220, 0x00000002, 0x4062AC61, - 0x4063C220, 0x00000002, 0x4062AC62, 0x4063C220, 0x00000002, 0x4062AC63, - 0x4063C220, 0x00000002, 0x4062AC64, 0x4063C220, 0x00000002, 0x4062AC65, - 0x4063C220, 0x00000002, 0x4062AC66, 0x4063C220, 0x00000002, 0x4062AC67, - 0x4063C220, 0x00000002, 0x4062AC68, 0x4063C220, 0x00000002, 0x4062AC69, - 0x4063C220, 0x00000002, 0x4062AC6A, 0x4063C220, 0x00000002, 0x4062AC6B, - 0x4063C220, 0x00000002, 0x4062AC6C, 0x4063C220, - // Block 307, offset 0x4cc0 - 0x00000002, 0x4062AC6D, 0x4063C220, 0x00000002, 0x4062AC6E, 0x4063C220, - 0x00000002, 0x4062AC6F, 0x4063C220, 0x00000002, 0x4062AC70, 0x4063C220, - 0x00000002, 0x4062AC71, 0x4063C220, 0x00000002, 0x4062AC72, 0x4063C220, - 0x00000002, 0x4062AC73, 0x4063C220, 0x00000002, 0x4062AC74, 0x4063C220, - 0x00000002, 0x4062AC75, 0x4063C220, 0x00000002, 0x4062AC76, 0x4063C220, - 0x00000002, 0x4062AC77, 0x4063C220, 0x00000002, 0x4062AC78, 0x4063C220, - 0x00000002, 0x4062AC79, 0x4063C220, 0x00000002, 0x4062AC7A, 0x4063C220, - 0x00000002, 0x4062AC7B, 0x4063C220, 0x00000002, 0x4062AC7C, 0x4063C220, - 0x00000002, 0x4062AC7D, 0x4063C220, 0x00000002, 0x4062AC7E, 0x4063C220, - 0x00000002, 0x4062AC7F, 0x4063C220, 0x00000002, 0x4062AC80, 0x4063C220, - 0x00000002, 0x4062AC81, 0x4063C220, 0x00000002, - // Block 308, offset 0x4d00 - 0x4062AC82, 0x4063C220, 0x00000002, 0x4062AC83, 0x4063C220, 0x00000002, - 0x4062AC84, 0x4063C220, 0x00000002, 0x4062AC85, 0x4063C220, 0x00000002, - 0x4062AC86, 0x4063C220, 0x00000002, 0x4062AC87, 0x4063C220, 0x00000003, - 0x4062AC21, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC22, 0x4063C220, - 0x40646420, 0x00000003, 0x4062AC23, 0x4063C220, 0x40646420, 0x00000003, - 0x4062AC24, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC25, 0x4063C220, - 0x40646420, 0x00000003, 0x4062AC26, 0x4063C220, 0x40646420, 0x00000003, - 0x4062AC27, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC28, 0x4063C220, - 0x40646420, 0x00000003, 0x4062AC29, 0x4063C220, 0x40646420, 0x00000003, - 0x4062AC2A, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC21, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062AC22, 0x4063C220, - // Block 309, offset 0x4d40 - 0x40646A20, 0x00000003, 0x4062AC23, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062AC24, 0x4063C220, 0x40646A20, 0x00000003, 0x4062AC25, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062AC26, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062AC27, 0x4063C220, 0x40646A20, 0x00000003, 0x4062AC28, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062AC29, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062AC21, 0x4063C220, 0x40647220, 0x00000003, 0x4062AC22, 0x4063C220, - 0x40647220, 0x00000003, 0x4062AC23, 0x4063C220, 0x40647220, 0x00000003, - 0x4062AC24, 0x4063C220, 0x40647220, 0x00000003, 0x4062AC25, 0x4063C220, - 0x40647220, 0x00000003, 0x4062AC26, 0x4063C220, 0x40647220, 0x00000003, - 0x4062AC27, 0x4063C220, 0x40647220, 0x00000003, 0x4062AC28, 0x4063C220, - 0x40647220, 0x00000003, 0x4062AC21, 0x4063C220, - // Block 310, offset 0x4d80 - 0x40648C20, 0x00000003, 0x4062AC22, 0x4063C220, 0x40648C20, 0x00000003, - 0x4062AC23, 0x4063C220, 0x40648C20, 0x00000003, 0x4062AC24, 0x4063C220, - 0x40648C20, 0x00000003, 0x4062AC25, 0x4063C220, 0x40648C20, 0x00000003, - 0x4062AC26, 0x4063C220, 0x40648C20, 0x00000003, 0x4062AC27, 0x4063C220, - 0x40648C20, 0x00000003, 0x4062AC21, 0x4063C420, 0x40646A20, 0x00000003, - 0x4062AC22, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC23, 0x4063C420, - 0x40646A20, 0x00000003, 0x4062AC24, 0x4063C420, 0x40646A20, 0x00000003, - 0x4062AC25, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC26, 0x4063C420, - 0x40646A20, 0x00000003, 0x4062AC27, 0x4063C420, 0x40646A20, 0x00000003, - 0x4062AC28, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC29, 0x4063C420, - 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063C420, - // Block 311, offset 0x4dc0 - 0x40646A20, 0x00000003, 0x4062AC2B, 0x4063C420, 0x40646A20, 0x00000003, - 0x4062AC2C, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC2D, 0x4063C420, - 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063C420, 0x40646A20, 0x00000003, - 0x4062AC2F, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC30, 0x4063C420, - 0x40646A20, 0x00000003, 0x4062AC21, 0x4063C420, 0x40647220, 0x00000003, - 0x4062AC22, 0x4063C420, 0x40647220, 0x00000003, 0x4062AC23, 0x4063C420, - 0x40647220, 0x00000003, 0x4062AC24, 0x4063C420, 0x40647220, 0x00000003, - 0x4062AC25, 0x4063C420, 0x40647220, 0x00000002, 0x4062AC21, 0x4063C620, - 0x00000002, 0x4062AC22, 0x4063C620, 0x00000002, 0x4062AC23, 0x4063C620, - 0x00000002, 0x4062AC24, 0x4063C620, 0x00000002, 0x4062AC25, 0x4063C620, - 0x00000002, 0x4062AC26, 0x4063C620, 0x00000002, - // Block 312, offset 0x4e00 - 0x4062AC27, 0x4063C620, 0x00000002, 0x4062AC28, 0x4063C620, 0x00000002, - 0x4062AC29, 0x4063C620, 0x00000002, 0x4062AC2A, 0x4063C620, 0x00000002, - 0x4062AC2B, 0x4063C620, 0x00000002, 0x4062AC2C, 0x4063C620, 0x00000002, - 0x4062AC2D, 0x4063C620, 0x00000002, 0x4062AC2E, 0x4063C620, 0x00000002, - 0x4062AC2F, 0x4063C620, 0x00000002, 0x4062AC30, 0x4063C620, 0x00000002, - 0x4062AC31, 0x4063C620, 0x00000002, 0x4062AC32, 0x4063C620, 0x00000002, - 0x4062AC33, 0x4063C620, 0x00000002, 0x4062AC34, 0x4063C620, 0x00000002, - 0x4062AC21, 0x4063C820, 0x00000002, 0x4062AC22, 0x4063C820, 0x00000002, - 0x4062AC23, 0x4063C820, 0x00000002, 0x4062AC24, 0x4063C820, 0x00000002, - 0x4062AC21, 0x4063CA20, 0x00000002, 0x4062AC22, 0x4063CA20, 0x00000002, - 0x4062AC23, 0x4063CA20, 0x00000002, 0x4062AC24, - // Block 313, offset 0x4e40 - 0x4063CA20, 0x00000002, 0x4062AC25, 0x4063CA20, 0x00000002, 0x4062AC26, - 0x4063CA20, 0x00000002, 0x4062AC27, 0x4063CA20, 0x00000002, 0x4062AC28, - 0x4063CA20, 0x00000002, 0x4062AC29, 0x4063CA20, 0x00000002, 0x4062AC2A, - 0x4063CA20, 0x00000002, 0x4062AC2B, 0x4063CA20, 0x00000002, 0x4062AC2C, - 0x4063CA20, 0x00000002, 0x4062AC2D, 0x4063CA20, 0x00000002, 0x4062AC2E, - 0x4063CA20, 0x00000002, 0x4062AC2F, 0x4063CA20, 0x00000002, 0x4062AC30, - 0x4063CA20, 0x00000002, 0x4062AC31, 0x4063CA20, 0x00000002, 0x4062AC32, - 0x4063CA20, 0x00000002, 0x4062AC33, 0x4063CA20, 0x00000002, 0x4062AC34, - 0x4063CA20, 0x00000002, 0x4062AC35, 0x4063CA20, 0x00000002, 0x4062AC36, - 0x4063CA20, 0x00000002, 0x4062AC37, 0x4063CA20, 0x00000002, 0x4062AC38, - 0x4063CA20, 0x00000002, 0x4062AC39, 0x4063CA20, - // Block 314, offset 0x4e80 - 0x00000002, 0x4062AC3A, 0x4063CA20, 0x00000002, 0x4062AC3B, 0x4063CA20, - 0x00000002, 0x4062AC3C, 0x4063CA20, 0x00000002, 0x4062AC3D, 0x4063CA20, - 0x00000002, 0x4062AC3E, 0x4063CA20, 0x00000002, 0x4062AC3F, 0x4063CA20, - 0x00000002, 0x4062AC40, 0x4063CA20, 0x00000003, 0x4062AC21, 0x4063CA20, - 0x40646A20, 0x00000003, 0x4062AC22, 0x4063CA20, 0x40646A20, 0x00000003, - 0x4062AC23, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC24, 0x4063CA20, - 0x40646A20, 0x00000003, 0x4062AC25, 0x4063CA20, 0x40646A20, 0x00000003, - 0x4062AC26, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC27, 0x4063CA20, - 0x40646A20, 0x00000003, 0x4062AC28, 0x4063CA20, 0x40646A20, 0x00000003, - 0x4062AC21, 0x4063CA20, 0x40647220, 0x00000003, 0x4062AC21, 0x4063CC20, - 0x40646420, 0x00000003, 0x4062AC22, 0x4063CC20, - // Block 315, offset 0x4ec0 - 0x40646420, 0x00000003, 0x4062AC23, 0x4063CC20, 0x40646420, 0x00000003, - 0x4062AC24, 0x4063CC20, 0x40646420, 0x00000003, 0x4062AC25, 0x4063CC20, - 0x40646420, 0x00000003, 0x4062AC26, 0x4063CC20, 0x40646420, 0x00000003, - 0x4062AC27, 0x4063CC20, 0x40646420, 0x00000003, 0x4062AC28, 0x4063CC20, - 0x40646420, 0x00000003, 0x4062AC29, 0x4063CC20, 0x40646420, 0x00000003, - 0x4062AC2A, 0x4063CC20, 0x40646420, 0x00000003, 0x4062AC2B, 0x4063CC20, - 0x40646420, 0x00000003, 0x4062AC21, 0x4063CC20, 0x40646A20, 0x00000003, - 0x4062AC22, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC23, 0x4063CC20, - 0x40646A20, 0x00000003, 0x4062AC24, 0x4063CC20, 0x40646A20, 0x00000003, - 0x4062AC25, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC26, 0x4063CC20, - 0x40646A20, 0x00000003, 0x4062AC27, 0x4063CC20, - // Block 316, offset 0x4f00 - 0x40646A20, 0x00000003, 0x4062AC28, 0x4063CC20, 0x40646A20, 0x00000003, - 0x4062AC29, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063CC20, - 0x40646A20, 0x00000003, 0x4062AC2B, 0x4063CC20, 0x40646A20, 0x00000003, - 0x4062AC2C, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC2D, 0x4063CC20, - 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063CC20, 0x40646A20, 0x00000003, - 0x4062AC2F, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC30, 0x4063CC20, - 0x40646A20, 0x00000003, 0x4062AC31, 0x4063CC20, 0x40646A20, 0x00000003, - 0x4062AC32, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC33, 0x4063CC20, - 0x40646A20, 0x00000003, 0x4062AC34, 0x4063CC20, 0x40646A20, 0x00000003, - 0x4062AC35, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC36, 0x4063CC20, - 0x40646A20, 0x00000003, 0x4062AC37, 0x4063CC20, - // Block 317, offset 0x4f40 - 0x40646A20, 0x00000003, 0x4062AC38, 0x4063CC20, 0x40646A20, 0x00000003, - 0x4062AC39, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC21, 0x4063CC20, - 0x40648220, 0x00000003, 0x4062AC22, 0x4063CC20, 0x40648220, 0x00000003, - 0x4062AC23, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC24, 0x4063CC20, - 0x40648220, 0x00000003, 0x4062AC25, 0x4063CC20, 0x40648220, 0x00000003, - 0x4062AC26, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC27, 0x4063CC20, - 0x40648220, 0x00000003, 0x4062AC28, 0x4063CC20, 0x40648220, 0x00000003, - 0x4062AC29, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC2A, 0x4063CC20, - 0x40648220, 0x00000003, 0x4062AC2B, 0x4063CC20, 0x40648220, 0x00000003, - 0x4062AC2C, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC2D, 0x4063CC20, - 0x40648220, 0x00000003, 0x4062AC2E, 0x4063CC20, - // Block 318, offset 0x4f80 - 0x40648220, 0x00000003, 0x4062AC2F, 0x4063CC20, 0x40648220, 0x00000003, - 0x4062AC30, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC31, 0x4063CC20, - 0x40648220, 0x00000003, 0x4062AC32, 0x4063CC20, 0x40648220, 0x00000003, - 0x4062AC21, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC22, 0x4063CC20, - 0x40648420, 0x00000003, 0x4062AC23, 0x4063CC20, 0x40648420, 0x00000003, - 0x4062AC24, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC25, 0x4063CC20, - 0x40648420, 0x00000003, 0x4062AC26, 0x4063CC20, 0x40648420, 0x00000003, - 0x4062AC27, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC28, 0x4063CC20, - 0x40648420, 0x00000003, 0x4062AC29, 0x4063CC20, 0x40648420, 0x00000003, - 0x4062AC2A, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC2B, 0x4063CC20, - 0x40648420, 0x00000003, 0x4062AC2C, 0x4063CC20, - // Block 319, offset 0x4fc0 - 0x40648420, 0x00000003, 0x4062AC2D, 0x4063CC20, 0x40648420, 0x00000003, - 0x4062AC21, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062AC22, 0x4063CC20, - 0x40648C20, 0x00000003, 0x4062AC23, 0x4063CC20, 0x40648C20, 0x00000003, - 0x4062AC24, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063CC20, - 0x40648C20, 0x00000003, 0x4062AC26, 0x4063CC20, 0x40648C20, 0x00000002, - 0x4062AC21, 0x4063D020, 0x00000002, 0x4062AC22, 0x4063D020, 0x00000002, - 0x4062AC23, 0x4063D020, 0x00000002, 0x4062AC24, 0x4063D020, 0x00000002, - 0x4062AC25, 0x4063D020, 0x00000002, 0x4062AC26, 0x4063D020, 0x00000002, - 0x4062AC27, 0x4063D020, 0x00000002, 0x4062AC28, 0x4063D020, 0x00000002, - 0x4062AC29, 0x4063D020, 0x00000002, 0x4062AC2A, 0x4063D020, 0x00000002, - 0x4062AC2B, 0x4063D020, 0x00000002, 0x4062AC2C, - // Block 320, offset 0x5000 - 0x4063D020, 0x00000002, 0x4062AC2D, 0x4063D020, 0x00000002, 0x4062AC2E, - 0x4063D020, 0x00000002, 0x4062AC2F, 0x4063D020, 0x00000002, 0x4062AC30, - 0x4063D020, 0x00000002, 0x4062AC31, 0x4063D020, 0x00000002, 0x4062AC32, - 0x4063D020, 0x00000002, 0x4062AC33, 0x4063D020, 0x00000002, 0x4062AC34, - 0x4063D020, 0x00000002, 0x4062AC35, 0x4063D020, 0x00000002, 0x4062AC36, - 0x4063D020, 0x00000002, 0x4062AC37, 0x4063D020, 0x00000002, 0x4062AC38, - 0x4063D020, 0x00000002, 0x4062AC39, 0x4063D020, 0x00000002, 0x4062AC3A, - 0x4063D020, 0x00000002, 0x4062AC3B, 0x4063D020, 0x00000002, 0x4062AC3C, - 0x4063D020, 0x00000002, 0x4062AC3D, 0x4063D020, 0x00000002, 0x4062AC3E, - 0x4063D020, 0x00000002, 0x4062AC3F, 0x4063D020, 0x00000002, 0x4062AC40, - 0x4063D020, 0x00000002, 0x4062AC41, 0x4063D020, - // Block 321, offset 0x5040 - 0x00000002, 0x4062AC42, 0x4063D020, 0x00000002, 0x4062AC43, 0x4063D020, - 0x00000002, 0x4062AC44, 0x4063D020, 0x00000002, 0x4062AC45, 0x4063D020, - 0x00000002, 0x4062AC46, 0x4063D020, 0x00000002, 0x4062AC47, 0x4063D020, - 0x00000002, 0x4062AC48, 0x4063D020, 0x00000002, 0x4062AC49, 0x4063D020, - 0x00000002, 0x4062AC4A, 0x4063D020, 0x00000002, 0x4062AC4B, 0x4063D020, - 0x00000002, 0x4062AC4C, 0x4063D020, 0x00000002, 0x4062AC4D, 0x4063D020, - 0x00000002, 0x4062AC4E, 0x4063D020, 0x00000002, 0x4062AC4F, 0x4063D020, - 0x00000002, 0x4062AC50, 0x4063D020, 0x00000002, 0x4062AC51, 0x4063D020, - 0x00000002, 0x4062AC52, 0x4063D020, 0x00000002, 0x4062AC53, 0x4063D020, - 0x00000002, 0x4062AC54, 0x4063D020, 0x00000002, 0x4062AC55, 0x4063D020, - 0x00000002, 0x4062AC56, 0x4063D020, 0x00000002, - // Block 322, offset 0x5080 - 0x4062AC57, 0x4063D020, 0x00000002, 0x4062AC58, 0x4063D020, 0x00000002, - 0x4062AC59, 0x4063D020, 0x00000002, 0x4062AC5A, 0x4063D020, 0x00000002, - 0x4062AC5B, 0x4063D020, 0x00000002, 0x4062AC5C, 0x4063D020, 0x00000002, - 0x4062AC5D, 0x4063D020, 0x00000002, 0x4062AC5E, 0x4063D020, 0x00000002, - 0x4062AC5F, 0x4063D020, 0x00000002, 0x4062AC60, 0x4063D020, 0x00000002, - 0x4062AC61, 0x4063D020, 0x00000002, 0x4062AC62, 0x4063D020, 0x00000002, - 0x4062AC63, 0x4063D020, 0x00000002, 0x4062AC64, 0x4063D020, 0x00000002, - 0x4062AC65, 0x4063D020, 0x00000002, 0x4062AC66, 0x4063D020, 0x00000002, - 0x4062AC67, 0x4063D020, 0x00000002, 0x4062AC68, 0x4063D020, 0x00000002, - 0x4062AC69, 0x4063D020, 0x00000002, 0x4062AC6A, 0x4063D020, 0x00000002, - 0x4062AC6B, 0x4063D020, 0x00000002, 0x4062AC6C, - // Block 323, offset 0x50c0 - 0x4063D020, 0x00000002, 0x4062AC6D, 0x4063D020, 0x00000002, 0x4062AC6E, - 0x4063D020, 0x00000002, 0x4062AC6F, 0x4063D020, 0x00000002, 0x4062AC70, - 0x4063D020, 0x00000002, 0x4062AC71, 0x4063D020, 0x00000002, 0x4062AC72, - 0x4063D020, 0x00000002, 0x4062AC73, 0x4063D020, 0x00000002, 0x4062AC74, - 0x4063D020, 0x00000002, 0x4062AC75, 0x4063D020, 0x00000002, 0x4062AC76, - 0x4063D020, 0x00000002, 0x4062AC77, 0x4063D020, 0x00000002, 0x4062AC78, - 0x4063D020, 0x00000002, 0x4062AC79, 0x4063D020, 0x00000002, 0x4062AC7A, - 0x4063D020, 0x00000002, 0x4062AC7B, 0x4063D020, 0x00000002, 0x4062AC7C, - 0x4063D020, 0x00000002, 0x4062AC7D, 0x4063D020, 0x00000002, 0x4062AC7E, - 0x4063D020, 0x00000002, 0x4062AC7F, 0x4063D020, 0x00000002, 0x4062AC80, - 0x4063D020, 0x00000002, 0x4062AC81, 0x4063D020, - // Block 324, offset 0x5100 - 0x00000002, 0x4062AC82, 0x4063D020, 0x00000002, 0x4062AC83, 0x4063D020, - 0x00000002, 0x4062AC84, 0x4063D020, 0x00000003, 0x4062AC21, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062AC21, 0x4063D020, 0x40647220, 0x00000003, - 0x4062AC22, 0x4063D020, 0x40647220, 0x00000003, 0x4062AC23, 0x4063D020, - 0x40647220, 0x00000003, 0x4062AC24, 0x4063D020, 0x40647220, 0x00000003, - 0x4062AC25, 0x4063D020, 0x40647220, 0x00000003, 0x4062AC26, 0x4063D020, - 0x40647220, 0x00000003, 0x4062AC21, 0x4063D020, 0x40648220, 0x00000003, - 0x4062AE21, 0x4063D020, 0x40646420, 0x00000002, 0x4062B021, 0x4063A820, - 0x00000002, 0x4062B022, 0x4063A820, 0x00000002, 0x4062B023, 0x4063A820, - 0x00000002, 0x4062B024, 0x4063A820, 0x00000002, 0x4062B025, 0x4063A820, - 0x00000002, 0x4062B026, 0x4063A820, 0x00000002, - // Block 325, offset 0x5140 - 0x4062B027, 0x4063A820, 0x00000002, 0x4062B028, 0x4063A820, 0x00000002, - 0x4062B029, 0x4063A820, 0x00000002, 0x4062B02A, 0x4063A820, 0x00000002, - 0x4062B02B, 0x4063A820, 0x00000003, 0x4062B021, 0x4063A820, 0x40646420, - 0x00000003, 0x4062B021, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B022, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062B023, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062B024, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B025, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062B026, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062B027, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B021, - 0x4063A820, 0x40647220, 0x00000003, 0x4062B022, 0x4063A820, 0x40647220, - 0x00000003, 0x4062B021, 0x4063A820, 0x40648220, 0x00000003, 0x4062B022, - 0x4063A820, 0x40648220, 0x00000003, 0x4062B023, - // Block 326, offset 0x5180 - 0x4063A820, 0x40648220, 0x00000003, 0x4062B024, 0x4063A820, 0x40648220, - 0x00000003, 0x4062B025, 0x4063A820, 0x40648220, 0x00000003, 0x4062B026, - 0x4063A820, 0x40648220, 0x00000003, 0x4062B027, 0x4063A820, 0x40648220, - 0x00000003, 0x4062B021, 0x4063A820, 0x40648420, 0x00000003, 0x4062B022, - 0x4063A820, 0x40648420, 0x00000003, 0x4062B021, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062B022, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B023, - 0x4063A820, 0x40648C20, 0x00000002, 0x4062B021, 0x4063AA20, 0x00000002, - 0x4062B022, 0x4063AA20, 0x00000002, 0x4062B023, 0x4063AA20, 0x00000002, - 0x4062B024, 0x4063AA20, 0x00000002, 0x4062B025, 0x4063AA20, 0x00000002, - 0x4062B026, 0x4063AA20, 0x00000002, 0x4062B027, 0x4063AA20, 0x00000002, - 0x4062B028, 0x4063AA20, 0x00000002, 0x4062B029, - // Block 327, offset 0x51c0 - 0x4063AA20, 0x00000002, 0x4062B02A, 0x4063AA20, 0x00000002, 0x4062B021, - 0x4063B420, 0x00000003, 0x4062B021, 0x4063B420, 0x40646420, 0x00000003, - 0x4062B021, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B022, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062B023, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062B024, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B021, 0x4063B420, - 0x40648220, 0x00000003, 0x4062B022, 0x4063B420, 0x40648220, 0x00000003, - 0x4062B023, 0x4063B420, 0x40648220, 0x00000003, 0x4062B024, 0x4063B420, - 0x40648220, 0x00000003, 0x4062B021, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062B022, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B023, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062B024, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062B025, 0x4063B420, 0x40648C20, 0x00000003, - // Block 328, offset 0x5200 - 0x4062B026, 0x4063B420, 0x40648C20, 0x00000002, 0x4062B021, 0x4063B820, - 0x00000002, 0x4062B022, 0x4063B820, 0x00000002, 0x4062B023, 0x4063B820, - 0x00000002, 0x4062B024, 0x4063B820, 0x00000002, 0x4062B025, 0x4063B820, - 0x00000002, 0x4062B026, 0x4063B820, 0x00000002, 0x4062B027, 0x4063B820, - 0x00000002, 0x4062B028, 0x4063B820, 0x00000002, 0x4062B029, 0x4063B820, - 0x00000002, 0x4062B02A, 0x4063B820, 0x00000002, 0x4062B02B, 0x4063B820, - 0x00000002, 0x4062B02C, 0x4063B820, 0x00000003, 0x4062B021, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062B022, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062B023, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B024, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062B025, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062B026, 0x4063B820, 0x40648C20, 0x00000003, - // Block 329, offset 0x5240 - 0x4062B027, 0x4063B820, 0x40648C20, 0x00000002, 0x4062B021, 0x4063BE20, - 0x00000002, 0x4062B022, 0x4063BE20, 0x00000002, 0x4062B023, 0x4063BE20, - 0x00000002, 0x4062B021, 0x4063C020, 0x00000002, 0x4062B022, 0x4063C020, - 0x00000002, 0x4062B023, 0x4063C020, 0x00000002, 0x4062B024, 0x4063C020, - 0x00000002, 0x4062B025, 0x4063C020, 0x00000002, 0x4062B026, 0x4063C020, - 0x00000002, 0x4062B027, 0x4063C020, 0x00000002, 0x4062B021, 0x4063C220, - 0x00000002, 0x4062B022, 0x4063C220, 0x00000003, 0x4062B021, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062B021, 0x4063C220, 0x40647220, 0x00000003, - 0x4062B022, 0x4063C220, 0x40647220, 0x00000003, 0x4062B023, 0x4063C220, - 0x40647220, 0x00000002, 0x4062B021, 0x4063CA20, 0x00000002, 0x4062B022, - 0x4063CA20, 0x00000002, 0x4062B023, 0x4063CA20, - // Block 330, offset 0x5280 - 0x00000002, 0x4062B024, 0x4063CA20, 0x00000003, 0x4062B021, 0x4063CA20, - 0x40646420, 0x00000003, 0x4062B021, 0x4063CC20, 0x40648C20, 0x00000002, - 0x4062B021, 0x4063D020, 0x00000002, 0x4062B022, 0x4063D020, 0x00000002, - 0x4062B023, 0x4063D020, 0x00000002, 0x4062B024, 0x4063D020, 0x00000002, - 0x4062B025, 0x4063D020, 0x00000002, 0x4062B026, 0x4063D020, 0x00000002, - 0x4062B027, 0x4063D020, 0x00000002, 0x4062B028, 0x4063D020, 0x00000003, - 0x4062B021, 0x4063D020, 0x40646420, 0x00000003, 0x4062B022, 0x4063D020, - 0x40646420, 0x00000003, 0x4062B023, 0x4063D020, 0x40646420, 0x00000003, - 0x4062B024, 0x4063D020, 0x40646420, 0x00000002, 0x4062B221, 0x4063A820, - 0x00000002, 0x4062B222, 0x4063A820, 0x00000002, 0x4062B223, 0x4063A820, - 0x00000003, 0x4062B221, 0x4063A820, 0x40646A20, - // Block 331, offset 0x52c0 - 0x00000003, 0x4062B222, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B223, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062B224, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062B225, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B226, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062B227, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062B228, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B229, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062B22A, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062B22B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B22C, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062B22D, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062B22E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B22F, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062B230, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062B231, 0x4063A820, 0x40646A20, - // Block 332, offset 0x5300 - 0x00000003, 0x4062B232, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B233, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062B234, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062B235, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B236, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062B237, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062B238, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B239, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062B23A, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062B23B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B23C, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062B23D, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062B221, 0x4063A820, 0x40647220, 0x00000003, 0x4062B222, - 0x4063A820, 0x40647220, 0x00000003, 0x4062B223, 0x4063A820, 0x40647220, - 0x00000003, 0x4062B224, 0x4063A820, 0x40647220, - // Block 333, offset 0x5340 - 0x00000003, 0x4062B225, 0x4063A820, 0x40647220, 0x00000003, 0x4062B226, - 0x4063A820, 0x40647220, 0x00000003, 0x4062B227, 0x4063A820, 0x40647220, - 0x00000003, 0x4062B228, 0x4063A820, 0x40647220, 0x00000003, 0x4062B229, - 0x4063A820, 0x40647220, 0x00000003, 0x4062B22A, 0x4063A820, 0x40647220, - 0x00000003, 0x4062B221, 0x4063A820, 0x40648220, 0x00000003, 0x4062B222, - 0x4063A820, 0x40648220, 0x00000003, 0x4062B223, 0x4063A820, 0x40648220, - 0x00000003, 0x4062B224, 0x4063A820, 0x40648220, 0x00000003, 0x4062B225, - 0x4063A820, 0x40648220, 0x00000003, 0x4062B226, 0x4063A820, 0x40648220, - 0x00000003, 0x4062B227, 0x4063A820, 0x40648220, 0x00000003, 0x4062B228, - 0x4063A820, 0x40648220, 0x00000003, 0x4062B229, 0x4063A820, 0x40648220, - 0x00000003, 0x4062B22A, 0x4063A820, 0x40648220, - // Block 334, offset 0x5380 - 0x00000003, 0x4062B22B, 0x4063A820, 0x40648220, 0x00000003, 0x4062B22C, - 0x4063A820, 0x40648220, 0x00000003, 0x4062B22D, 0x4063A820, 0x40648220, - 0x00000003, 0x4062B22E, 0x4063A820, 0x40648220, 0x00000003, 0x4062B22F, - 0x4063A820, 0x40648220, 0x00000003, 0x4062B230, 0x4063A820, 0x40648220, - 0x00000003, 0x4062B231, 0x4063A820, 0x40648220, 0x00000003, 0x4062B232, - 0x4063A820, 0x40648220, 0x00000003, 0x4062B233, 0x4063A820, 0x40648220, - 0x00000003, 0x4062B234, 0x4063A820, 0x40648220, 0x00000003, 0x4062B235, - 0x4063A820, 0x40648220, 0x00000003, 0x4062B236, 0x4063A820, 0x40648220, - 0x00000003, 0x4062B237, 0x4063A820, 0x40648220, 0x00000003, 0x4062B238, - 0x4063A820, 0x40648220, 0x00000003, 0x4062B239, 0x4063A820, 0x40648220, - 0x00000003, 0x4062B23A, 0x4063A820, 0x40648220, - // Block 335, offset 0x53c0 - 0x00000003, 0x4062B23B, 0x4063A820, 0x40648220, 0x00000003, 0x4062B23C, - 0x4063A820, 0x40648220, 0x00000003, 0x4062B23D, 0x4063A820, 0x40648220, - 0x00000003, 0x4062B221, 0x4063A820, 0x40648420, 0x00000003, 0x4062B222, - 0x4063A820, 0x40648420, 0x00000003, 0x4062B223, 0x4063A820, 0x40648420, - 0x00000003, 0x4062B224, 0x4063A820, 0x40648420, 0x00000003, 0x4062B225, - 0x4063A820, 0x40648420, 0x00000003, 0x4062B221, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062B222, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B223, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062B224, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062B225, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B226, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062B227, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062B228, 0x4063A820, 0x40648C20, - // Block 336, offset 0x5400 - 0x00000003, 0x4062B229, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B22A, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062B22B, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062B22C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B22D, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062B22E, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062B22F, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B230, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062B231, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062B232, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B233, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062B234, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062B235, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B236, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062B237, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062B238, 0x4063A820, 0x40648C20, - // Block 337, offset 0x5440 - 0x00000003, 0x4062B239, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B23A, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062B23B, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062B23C, 0x4063A820, 0x40648C20, 0x00000002, 0x4062B221, - 0x4063AA20, 0x00000002, 0x4062B222, 0x4063AA20, 0x00000002, 0x4062B223, - 0x4063AA20, 0x00000002, 0x4062B224, 0x4063AA20, 0x00000002, 0x4062B225, - 0x4063AA20, 0x00000002, 0x4062B226, 0x4063AA20, 0x00000002, 0x4062B227, - 0x4063AA20, 0x00000002, 0x4062B228, 0x4063AA20, 0x00000002, 0x4062B229, - 0x4063AA20, 0x00000002, 0x4062B22A, 0x4063AA20, 0x00000002, 0x4062B22B, - 0x4063AA20, 0x00000002, 0x4062B22C, 0x4063AA20, 0x00000002, 0x4062B22D, - 0x4063AA20, 0x00000002, 0x4062B22E, 0x4063AA20, 0x00000002, 0x4062B22F, - 0x4063AA20, 0x00000002, 0x4062B230, 0x4063AA20, - // Block 338, offset 0x5480 - 0x00000002, 0x4062B231, 0x4063AA20, 0x00000002, 0x4062B232, 0x4063AA20, - 0x00000002, 0x4062B233, 0x4063AA20, 0x00000002, 0x4062B234, 0x4063AA20, - 0x00000002, 0x4062B235, 0x4063AA20, 0x00000002, 0x4062B236, 0x4063AA20, - 0x00000003, 0x4062B221, 0x4063AA20, 0x40646420, 0x00000003, 0x4062B221, - 0x4063B020, 0x40646420, 0x00000003, 0x4062B222, 0x4063B020, 0x40646420, - 0x00000002, 0x4062B221, 0x4063B820, 0x00000002, 0x4062B222, 0x4063B820, - 0x00000002, 0x4062B223, 0x4063B820, 0x00000002, 0x4062B224, 0x4063B820, - 0x00000002, 0x4062B225, 0x4063B820, 0x00000002, 0x4062B226, 0x4063B820, - 0x00000002, 0x4062B227, 0x4063B820, 0x00000002, 0x4062B228, 0x4063B820, - 0x00000002, 0x4062B229, 0x4063B820, 0x00000002, 0x4062B22A, 0x4063B820, - 0x00000002, 0x4062B22B, 0x4063B820, 0x00000002, - // Block 339, offset 0x54c0 - 0x4062B22C, 0x4063B820, 0x00000002, 0x4062B22D, 0x4063B820, 0x00000002, - 0x4062B22E, 0x4063B820, 0x00000002, 0x4062B22F, 0x4063B820, 0x00000002, - 0x4062B230, 0x4063B820, 0x00000002, 0x4062B231, 0x4063B820, 0x00000002, - 0x4062B232, 0x4063B820, 0x00000002, 0x4062B233, 0x4063B820, 0x00000002, - 0x4062B234, 0x4063B820, 0x00000002, 0x4062B235, 0x4063B820, 0x00000002, - 0x4062B236, 0x4063B820, 0x00000002, 0x4062B237, 0x4063B820, 0x00000002, - 0x4062B238, 0x4063B820, 0x00000002, 0x4062B239, 0x4063B820, 0x00000002, - 0x4062B23A, 0x4063B820, 0x00000002, 0x4062B23B, 0x4063B820, 0x00000002, - 0x4062B23C, 0x4063B820, 0x00000002, 0x4062B23D, 0x4063B820, 0x00000002, - 0x4062B23E, 0x4063B820, 0x00000002, 0x4062B23F, 0x4063B820, 0x00000002, - 0x4062B240, 0x4063B820, 0x00000002, 0x4062B241, - // Block 340, offset 0x5500 - 0x4063B820, 0x00000002, 0x4062B242, 0x4063B820, 0x00000002, 0x4062B243, - 0x4063B820, 0x00000002, 0x4062B244, 0x4063B820, 0x00000002, 0x4062B245, - 0x4063B820, 0x00000002, 0x4062B246, 0x4063B820, 0x00000002, 0x4062B247, - 0x4063B820, 0x00000002, 0x4062B248, 0x4063B820, 0x00000002, 0x4062B249, - 0x4063B820, 0x00000002, 0x4062B24A, 0x4063B820, 0x00000002, 0x4062B24B, - 0x4063B820, 0x00000002, 0x4062B24C, 0x4063B820, 0x00000002, 0x4062B24D, - 0x4063B820, 0x00000002, 0x4062B24E, 0x4063B820, 0x00000002, 0x4062B24F, - 0x4063B820, 0x00000002, 0x4062B250, 0x4063B820, 0x00000002, 0x4062B251, - 0x4063B820, 0x00000002, 0x4062B252, 0x4063B820, 0x00000002, 0x4062B253, - 0x4063B820, 0x00000002, 0x4062B254, 0x4063B820, 0x00000002, 0x4062B255, - 0x4063B820, 0x00000002, 0x4062B256, 0x4063B820, - // Block 341, offset 0x5540 - 0x00000002, 0x4062B257, 0x4063B820, 0x00000002, 0x4062B258, 0x4063B820, - 0x00000002, 0x4062B259, 0x4063B820, 0x00000002, 0x4062B25A, 0x4063B820, - 0x00000002, 0x4062B25B, 0x4063B820, 0x00000003, 0x4062B221, 0x4063B820, - 0x40646420, 0x00000003, 0x4062B222, 0x4063B820, 0x40646420, 0x00000003, - 0x4062B223, 0x4063B820, 0x40646420, 0x00000003, 0x4062B224, 0x4063B820, - 0x40646420, 0x00000003, 0x4062B225, 0x4063B820, 0x40646420, 0x00000003, - 0x4062B226, 0x4063B820, 0x40646420, 0x00000003, 0x4062B227, 0x4063B820, - 0x40646420, 0x00000003, 0x4062B228, 0x4063B820, 0x40646420, 0x00000003, - 0x4062B229, 0x4063B820, 0x40646420, 0x00000003, 0x4062B22A, 0x4063B820, - 0x40646420, 0x00000003, 0x4062B22B, 0x4063B820, 0x40646420, 0x00000003, - 0x4062B22C, 0x4063B820, 0x40646420, 0x00000003, - // Block 342, offset 0x5580 - 0x4062B221, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B222, 0x4063B820, - 0x40646A20, 0x00000003, 0x4062B223, 0x4063B820, 0x40646A20, 0x00000003, - 0x4062B224, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B225, 0x4063B820, - 0x40646A20, 0x00000003, 0x4062B226, 0x4063B820, 0x40646A20, 0x00000003, - 0x4062B227, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B228, 0x4063B820, - 0x40646A20, 0x00000003, 0x4062B229, 0x4063B820, 0x40646A20, 0x00000003, - 0x4062B22A, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B22B, 0x4063B820, - 0x40646A20, 0x00000003, 0x4062B22C, 0x4063B820, 0x40646A20, 0x00000003, - 0x4062B22D, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B221, 0x4063B820, - 0x40647220, 0x00000003, 0x4062B222, 0x4063B820, 0x40647220, 0x00000003, - 0x4062B223, 0x4063B820, 0x40647220, 0x00000003, - // Block 343, offset 0x55c0 - 0x4062B224, 0x4063B820, 0x40647220, 0x00000003, 0x4062B221, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062B222, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062B223, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B224, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062B225, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062B226, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B227, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062B228, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062B229, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B22A, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062B22B, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062B22C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B22D, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062B22E, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062B22F, 0x4063B820, 0x40648C20, 0x00000003, - // Block 344, offset 0x5600 - 0x4062B230, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B231, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062B232, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062B233, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B234, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062B235, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062B236, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B237, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062B238, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062B239, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B23A, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062B23B, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062B23C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B23D, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062B23E, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062B23F, 0x4063B820, 0x40648C20, 0x00000003, - // Block 345, offset 0x5640 - 0x4062B240, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B241, 0x4063B820, - 0x40648C20, 0x00000002, 0x4062B221, 0x4063C220, 0x00000002, 0x4062B222, - 0x4063C220, 0x00000002, 0x4062B223, 0x4063C220, 0x00000002, 0x4062B224, - 0x4063C220, 0x00000002, 0x4062B225, 0x4063C220, 0x00000002, 0x4062B226, - 0x4063C220, 0x00000002, 0x4062B227, 0x4063C220, 0x00000002, 0x4062B228, - 0x4063C220, 0x00000002, 0x4062B229, 0x4063C220, 0x00000002, 0x4062B22A, - 0x4063C220, 0x00000002, 0x4062B22B, 0x4063C220, 0x00000002, 0x4062B22C, - 0x4063C220, 0x00000002, 0x4062B22D, 0x4063C220, 0x00000002, 0x4062B22E, - 0x4063C220, 0x00000002, 0x4062B22F, 0x4063C220, 0x00000002, 0x4062B230, - 0x4063C220, 0x00000002, 0x4062B231, 0x4063C220, 0x00000003, 0x4062B221, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062B222, - // Block 346, offset 0x5680 - 0x4063C220, 0x40646A20, 0x00000003, 0x4062B223, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062B224, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B225, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062B226, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062B227, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B228, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062B221, 0x4063C220, 0x40647220, - 0x00000003, 0x4062B221, 0x4063CC20, 0x40646420, 0x00000003, 0x4062B221, - 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B222, 0x4063CC20, 0x40648C20, - 0x00000003, 0x4062B223, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B224, - 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B225, 0x4063CC20, 0x40648C20, - 0x00000003, 0x4062B226, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B227, - 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B228, - // Block 347, offset 0x56c0 - 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B229, 0x4063CC20, 0x40648C20, - 0x00000003, 0x4062B22A, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B22B, - 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B22C, 0x4063CC20, 0x40648C20, - 0x00000003, 0x4062B22D, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B22E, - 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B22F, 0x4063CC20, 0x40648C20, - 0x00000003, 0x4062B230, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B231, - 0x4063CC20, 0x40648C20, 0x00000002, 0x4062B621, 0x4063A820, 0x00000002, - 0x4062B622, 0x4063A820, 0x00000002, 0x4062B623, 0x4063A820, 0x00000002, - 0x4062B624, 0x4063A820, 0x00000002, 0x4062B625, 0x4063A820, 0x00000002, - 0x4062B626, 0x4063A820, 0x00000002, 0x4062B627, 0x4063A820, 0x00000002, - 0x4062B628, 0x4063A820, 0x00000002, 0x4062B629, - // Block 348, offset 0x5700 - 0x4063A820, 0x00000002, 0x4062B62A, 0x4063A820, 0x00000002, 0x4062B62B, - 0x4063A820, 0x00000002, 0x4062B62C, 0x4063A820, 0x00000002, 0x4062B62D, - 0x4063A820, 0x00000002, 0x4062B62E, 0x4063A820, 0x00000002, 0x4062B62F, - 0x4063A820, 0x00000002, 0x4062B630, 0x4063A820, 0x00000002, 0x4062B631, - 0x4063A820, 0x00000003, 0x4062B621, 0x4063A820, 0x40646420, 0x00000003, - 0x4062B622, 0x4063A820, 0x40646420, 0x00000003, 0x4062B623, 0x4063A820, - 0x40646420, 0x00000003, 0x4062B624, 0x4063A820, 0x40646420, 0x00000003, - 0x4062B625, 0x4063A820, 0x40646420, 0x00000003, 0x4062B626, 0x4063A820, - 0x40646420, 0x00000003, 0x4062B627, 0x4063A820, 0x40646420, 0x00000003, - 0x4062B628, 0x4063A820, 0x40646420, 0x00000003, 0x4062B629, 0x4063A820, - 0x40646420, 0x00000003, 0x4062B621, 0x4063A820, - // Block 349, offset 0x5740 - 0x40646A20, 0x00000003, 0x4062B622, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B623, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B624, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062B625, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B626, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B627, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062B628, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B629, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B62A, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062B62B, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B62C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B62D, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062B62E, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B62F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B621, 0x4063A820, - 0x40647220, 0x00000003, 0x4062B622, 0x4063A820, - // Block 350, offset 0x5780 - 0x40647220, 0x00000003, 0x4062B623, 0x4063A820, 0x40647220, 0x00000003, - 0x4062B624, 0x4063A820, 0x40647220, 0x00000003, 0x4062B621, 0x4063A820, - 0x40648220, 0x00000003, 0x4062B622, 0x4063A820, 0x40648220, 0x00000003, - 0x4062B623, 0x4063A820, 0x40648220, 0x00000003, 0x4062B624, 0x4063A820, - 0x40648220, 0x00000003, 0x4062B625, 0x4063A820, 0x40648220, 0x00000003, - 0x4062B626, 0x4063A820, 0x40648220, 0x00000003, 0x4062B627, 0x4063A820, - 0x40648220, 0x00000003, 0x4062B628, 0x4063A820, 0x40648220, 0x00000003, - 0x4062B629, 0x4063A820, 0x40648220, 0x00000003, 0x4062B62A, 0x4063A820, - 0x40648220, 0x00000003, 0x4062B62B, 0x4063A820, 0x40648220, 0x00000003, - 0x4062B62C, 0x4063A820, 0x40648220, 0x00000003, 0x4062B621, 0x4063A820, - 0x40648420, 0x00000003, 0x4062B622, 0x4063A820, - // Block 351, offset 0x57c0 - 0x40648420, 0x00000003, 0x4062B623, 0x4063A820, 0x40648420, 0x00000003, - 0x4062B624, 0x4063A820, 0x40648420, 0x00000003, 0x4062B621, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062B622, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062B623, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B624, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062B625, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062B626, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B627, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062B628, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062B629, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B62A, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062B62B, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062B62C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B62D, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062B62E, 0x4063A820, - // Block 352, offset 0x5800 - 0x40648C20, 0x00000002, 0x4062B621, 0x4063AA20, 0x00000002, 0x4062B622, - 0x4063AA20, 0x00000002, 0x4062B623, 0x4063AA20, 0x00000002, 0x4062B624, - 0x4063AA20, 0x00000002, 0x4062B625, 0x4063AA20, 0x00000002, 0x4062B626, - 0x4063AA20, 0x00000003, 0x4062B621, 0x4063AA20, 0x40648C20, 0x00000003, - 0x4062B621, 0x4063AC20, 0x40646420, 0x00000003, 0x4062B622, 0x4063AC20, - 0x40646420, 0x00000003, 0x4062B623, 0x4063AC20, 0x40646420, 0x00000003, - 0x4062B621, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B622, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062B623, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062B624, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B625, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062B626, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062B627, 0x4063AC20, 0x40648C20, 0x00000003, - // Block 353, offset 0x5840 - 0x4062B628, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B629, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062B62A, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062B62B, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B62C, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062B62D, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062B62E, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B62F, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062B630, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062B631, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B632, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062B633, 0x4063AC20, 0x40648C20, 0x00000002, - 0x4062B621, 0x4063B420, 0x00000002, 0x4062B622, 0x4063B420, 0x00000002, - 0x4062B623, 0x4063B420, 0x00000002, 0x4062B624, 0x4063B420, 0x00000002, - 0x4062B625, 0x4063B420, 0x00000002, 0x4062B626, - // Block 354, offset 0x5880 - 0x4063B420, 0x00000002, 0x4062B627, 0x4063B420, 0x00000002, 0x4062B628, - 0x4063B420, 0x00000002, 0x4062B629, 0x4063B420, 0x00000002, 0x4062B62A, - 0x4063B420, 0x00000002, 0x4062B62B, 0x4063B420, 0x00000002, 0x4062B62C, - 0x4063B420, 0x00000002, 0x4062B62D, 0x4063B420, 0x00000002, 0x4062B62E, - 0x4063B420, 0x00000002, 0x4062B62F, 0x4063B420, 0x00000002, 0x4062B630, - 0x4063B420, 0x00000002, 0x4062B631, 0x4063B420, 0x00000002, 0x4062B632, - 0x4063B420, 0x00000002, 0x4062B633, 0x4063B420, 0x00000002, 0x4062B634, - 0x4063B420, 0x00000002, 0x4062B635, 0x4063B420, 0x00000002, 0x4062B636, - 0x4063B420, 0x00000002, 0x4062B637, 0x4063B420, 0x00000002, 0x4062B638, - 0x4063B420, 0x00000002, 0x4062B639, 0x4063B420, 0x00000002, 0x4062B63A, - 0x4063B420, 0x00000002, 0x4062B63B, 0x4063B420, - // Block 355, offset 0x58c0 - 0x00000002, 0x4062B63C, 0x4063B420, 0x00000002, 0x4062B63D, 0x4063B420, - 0x00000003, 0x4062B621, 0x4063B420, 0x40646420, 0x00000003, 0x4062B622, - 0x4063B420, 0x40646420, 0x00000003, 0x4062B623, 0x4063B420, 0x40646420, - 0x00000003, 0x4062B624, 0x4063B420, 0x40646420, 0x00000003, 0x4062B625, - 0x4063B420, 0x40646420, 0x00000003, 0x4062B626, 0x4063B420, 0x40646420, - 0x00000003, 0x4062B627, 0x4063B420, 0x40646420, 0x00000003, 0x4062B628, - 0x4063B420, 0x40646420, 0x00000003, 0x4062B629, 0x4063B420, 0x40646420, - 0x00000003, 0x4062B62A, 0x4063B420, 0x40646420, 0x00000003, 0x4062B62B, - 0x4063B420, 0x40646420, 0x00000003, 0x4062B62C, 0x4063B420, 0x40646420, - 0x00000003, 0x4062B62D, 0x4063B420, 0x40646420, 0x00000003, 0x4062B621, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B622, - // Block 356, offset 0x5900 - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B623, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062B624, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B625, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B626, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062B627, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B628, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B629, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062B62A, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B62B, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B62C, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062B62D, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B62E, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B62F, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062B630, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B631, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B632, - // Block 357, offset 0x5940 - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B633, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062B621, 0x4063B420, 0x40647220, 0x00000003, 0x4062B622, - 0x4063B420, 0x40647220, 0x00000003, 0x4062B623, 0x4063B420, 0x40647220, - 0x00000003, 0x4062B624, 0x4063B420, 0x40647220, 0x00000003, 0x4062B625, - 0x4063B420, 0x40647220, 0x00000003, 0x4062B626, 0x4063B420, 0x40647220, - 0x00000003, 0x4062B627, 0x4063B420, 0x40647220, 0x00000003, 0x4062B628, - 0x4063B420, 0x40647220, 0x00000003, 0x4062B629, 0x4063B420, 0x40647220, - 0x00000003, 0x4062B621, 0x4063B420, 0x40648220, 0x00000003, 0x4062B622, - 0x4063B420, 0x40648220, 0x00000003, 0x4062B623, 0x4063B420, 0x40648220, - 0x00000003, 0x4062B624, 0x4063B420, 0x40648220, 0x00000003, 0x4062B625, - 0x4063B420, 0x40648220, 0x00000003, 0x4062B626, - // Block 358, offset 0x5980 - 0x4063B420, 0x40648220, 0x00000003, 0x4062B627, 0x4063B420, 0x40648220, - 0x00000003, 0x4062B628, 0x4063B420, 0x40648220, 0x00000003, 0x4062B621, - 0x4063B420, 0x40648420, 0x00000003, 0x4062B622, 0x4063B420, 0x40648420, - 0x00000003, 0x4062B623, 0x4063B420, 0x40648420, 0x00000003, 0x4062B621, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B622, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B623, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B624, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B625, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B626, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B627, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B628, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B629, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B62A, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B62B, - // Block 359, offset 0x59c0 - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B62C, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B62D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B62E, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B62F, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B630, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B631, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B632, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B633, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B634, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B635, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B636, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B637, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B638, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B639, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B63A, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B63B, - // Block 360, offset 0x5a00 - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B63C, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B63D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B63E, - 0x4063B420, 0x40648C20, 0x00000002, 0x4062B621, 0x4063B620, 0x00000002, - 0x4062B622, 0x4063B620, 0x00000002, 0x4062B623, 0x4063B620, 0x00000002, - 0x4062B624, 0x4063B620, 0x00000002, 0x4062B625, 0x4063B620, 0x00000002, - 0x4062B626, 0x4063B620, 0x00000002, 0x4062B627, 0x4063B620, 0x00000002, - 0x4062B621, 0x4063B820, 0x00000002, 0x4062B622, 0x4063B820, 0x00000002, - 0x4062B623, 0x4063B820, 0x00000002, 0x4062B624, 0x4063B820, 0x00000002, - 0x4062B625, 0x4063B820, 0x00000002, 0x4062B626, 0x4063B820, 0x00000002, - 0x4062B627, 0x4063B820, 0x00000002, 0x4062B628, 0x4063B820, 0x00000002, - 0x4062B629, 0x4063B820, 0x00000002, 0x4062B62A, - // Block 361, offset 0x5a40 - 0x4063B820, 0x00000002, 0x4062B62B, 0x4063B820, 0x00000002, 0x4062B62C, - 0x4063B820, 0x00000002, 0x4062B62D, 0x4063B820, 0x00000002, 0x4062B62E, - 0x4063B820, 0x00000002, 0x4062B62F, 0x4063B820, 0x00000002, 0x4062B630, - 0x4063B820, 0x00000002, 0x4062B631, 0x4063B820, 0x00000002, 0x4062B632, - 0x4063B820, 0x00000002, 0x4062B633, 0x4063B820, 0x00000002, 0x4062B634, - 0x4063B820, 0x00000002, 0x4062B635, 0x4063B820, 0x00000002, 0x4062B636, - 0x4063B820, 0x00000002, 0x4062B637, 0x4063B820, 0x00000002, 0x4062B638, - 0x4063B820, 0x00000002, 0x4062B639, 0x4063B820, 0x00000002, 0x4062B63A, - 0x4063B820, 0x00000002, 0x4062B63B, 0x4063B820, 0x00000002, 0x4062B63C, - 0x4063B820, 0x00000002, 0x4062B63D, 0x4063B820, 0x00000002, 0x4062B63E, - 0x4063B820, 0x00000002, 0x4062B63F, 0x4063B820, - // Block 362, offset 0x5a80 - 0x00000003, 0x4062B621, 0x4063B820, 0x40646420, 0x00000003, 0x4062B622, - 0x4063B820, 0x40646420, 0x00000003, 0x4062B623, 0x4063B820, 0x40646420, - 0x00000003, 0x4062B624, 0x4063B820, 0x40646420, 0x00000003, 0x4062B625, - 0x4063B820, 0x40646420, 0x00000003, 0x4062B626, 0x4063B820, 0x40646420, - 0x00000003, 0x4062B627, 0x4063B820, 0x40646420, 0x00000003, 0x4062B628, - 0x4063B820, 0x40646420, 0x00000003, 0x4062B629, 0x4063B820, 0x40646420, - 0x00000003, 0x4062B62A, 0x4063B820, 0x40646420, 0x00000003, 0x4062B62B, - 0x4063B820, 0x40646420, 0x00000003, 0x4062B62C, 0x4063B820, 0x40646420, - 0x00000003, 0x4062B62D, 0x4063B820, 0x40646420, 0x00000003, 0x4062B62E, - 0x4063B820, 0x40646420, 0x00000003, 0x4062B621, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062B621, 0x4063B820, 0x40648C20, - // Block 363, offset 0x5ac0 - 0x00000003, 0x4062B622, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B623, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062B624, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062B625, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B626, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062B627, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062B628, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B629, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062B62A, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062B62B, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B62C, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062B62D, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062B62E, 0x4063B820, 0x40648C20, 0x00000002, 0x4062B621, - 0x4063BE20, 0x00000002, 0x4062B622, 0x4063BE20, 0x00000002, 0x4062B623, - 0x4063BE20, 0x00000002, 0x4062B624, 0x4063BE20, - // Block 364, offset 0x5b00 - 0x00000002, 0x4062B625, 0x4063BE20, 0x00000002, 0x4062B626, 0x4063BE20, - 0x00000002, 0x4062B627, 0x4063BE20, 0x00000002, 0x4062B628, 0x4063BE20, - 0x00000002, 0x4062B629, 0x4063BE20, 0x00000002, 0x4062B62A, 0x4063BE20, - 0x00000002, 0x4062B62B, 0x4063BE20, 0x00000002, 0x4062B62C, 0x4063BE20, - 0x00000002, 0x4062B62D, 0x4063BE20, 0x00000002, 0x4062B62E, 0x4063BE20, - 0x00000002, 0x4062B62F, 0x4063BE20, 0x00000002, 0x4062B630, 0x4063BE20, - 0x00000002, 0x4062B631, 0x4063BE20, 0x00000002, 0x4062B632, 0x4063BE20, - 0x00000002, 0x4062B633, 0x4063BE20, 0x00000002, 0x4062B621, 0x4063C020, - 0x00000002, 0x4062B622, 0x4063C020, 0x00000002, 0x4062B623, 0x4063C020, - 0x00000002, 0x4062B624, 0x4063C020, 0x00000002, 0x4062B625, 0x4063C020, - 0x00000002, 0x4062B626, 0x4063C020, 0x00000002, - // Block 365, offset 0x5b40 - 0x4062B627, 0x4063C020, 0x00000002, 0x4062B628, 0x4063C020, 0x00000002, - 0x4062B629, 0x4063C020, 0x00000002, 0x4062B62A, 0x4063C020, 0x00000002, - 0x4062B62B, 0x4063C020, 0x00000002, 0x4062B62C, 0x4063C020, 0x00000002, - 0x4062B62D, 0x4063C020, 0x00000002, 0x4062B62E, 0x4063C020, 0x00000002, - 0x4062B62F, 0x4063C020, 0x00000002, 0x4062B630, 0x4063C020, 0x00000002, - 0x4062B631, 0x4063C020, 0x00000002, 0x4062B632, 0x4063C020, 0x00000002, - 0x4062B633, 0x4063C020, 0x00000002, 0x4062B634, 0x4063C020, 0x00000002, - 0x4062B635, 0x4063C020, 0x00000002, 0x4062B636, 0x4063C020, 0x00000002, - 0x4062B637, 0x4063C020, 0x00000002, 0x4062B638, 0x4063C020, 0x00000003, - 0x4062B621, 0x4063C020, 0x40648C20, 0x00000003, 0x4062B622, 0x4063C020, - 0x40648C20, 0x00000002, 0x4062B621, 0x4063C220, - // Block 366, offset 0x5b80 - 0x00000002, 0x4062B622, 0x4063C220, 0x00000002, 0x4062B623, 0x4063C220, - 0x00000002, 0x4062B624, 0x4063C220, 0x00000002, 0x4062B625, 0x4063C220, - 0x00000002, 0x4062B626, 0x4063C220, 0x00000002, 0x4062B627, 0x4063C220, - 0x00000002, 0x4062B628, 0x4063C220, 0x00000002, 0x4062B629, 0x4063C220, - 0x00000002, 0x4062B62A, 0x4063C220, 0x00000002, 0x4062B62B, 0x4063C220, - 0x00000002, 0x4062B62C, 0x4063C220, 0x00000002, 0x4062B62D, 0x4063C220, - 0x00000002, 0x4062B62E, 0x4063C220, 0x00000002, 0x4062B62F, 0x4063C220, - 0x00000002, 0x4062B630, 0x4063C220, 0x00000002, 0x4062B631, 0x4063C220, - 0x00000002, 0x4062B632, 0x4063C220, 0x00000002, 0x4062B633, 0x4063C220, - 0x00000002, 0x4062B634, 0x4063C220, 0x00000002, 0x4062B621, 0x4063CA20, - 0x00000002, 0x4062B622, 0x4063CA20, 0x00000002, - // Block 367, offset 0x5bc0 - 0x4062B623, 0x4063CA20, 0x00000002, 0x4062B624, 0x4063CA20, 0x00000002, - 0x4062B625, 0x4063CA20, 0x00000002, 0x4062B626, 0x4063CA20, 0x00000002, - 0x4062B627, 0x4063CA20, 0x00000002, 0x4062B628, 0x4063CA20, 0x00000002, - 0x4062B629, 0x4063CA20, 0x00000002, 0x4062B62A, 0x4063CA20, 0x00000002, - 0x4062B62B, 0x4063CA20, 0x00000002, 0x4062B62C, 0x4063CA20, 0x00000002, - 0x4062B62D, 0x4063CA20, 0x00000002, 0x4062B62E, 0x4063CA20, 0x00000002, - 0x4062B62F, 0x4063CA20, 0x00000002, 0x4062B630, 0x4063CA20, 0x00000002, - 0x4062B631, 0x4063CA20, 0x00000002, 0x4062B632, 0x4063CA20, 0x00000002, - 0x4062B633, 0x4063CA20, 0x00000003, 0x4062B621, 0x4063CA20, 0x40646420, - 0x00000003, 0x4062B622, 0x4063CA20, 0x40646420, 0x00000003, 0x4062B623, - 0x4063CA20, 0x40646420, 0x00000003, 0x4062B624, - // Block 368, offset 0x5c00 - 0x4063CA20, 0x40646420, 0x00000003, 0x4062B621, 0x4063CA20, 0x40646A20, - 0x00000003, 0x4062B622, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062B623, - 0x4063CA20, 0x40646A20, 0x00000003, 0x4062B624, 0x4063CA20, 0x40646A20, - 0x00000003, 0x4062B625, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062B626, - 0x4063CA20, 0x40646A20, 0x00000003, 0x4062B627, 0x4063CA20, 0x40646A20, - 0x00000003, 0x4062B621, 0x4063CA20, 0x40647220, 0x00000003, 0x4062B622, - 0x4063CA20, 0x40647220, 0x00000003, 0x4062B623, 0x4063CA20, 0x40647220, - 0x00000003, 0x4062B624, 0x4063CA20, 0x40647220, 0x00000003, 0x4062B625, - 0x4063CA20, 0x40647220, 0x00000003, 0x4062B621, 0x4063CA20, 0x40648C20, - 0x00000003, 0x4062B622, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062B623, - 0x4063CA20, 0x40648C20, 0x00000003, 0x4062B621, - // Block 369, offset 0x5c40 - 0x4063CC20, 0x40646420, 0x00000003, 0x4062B622, 0x4063CC20, 0x40646420, - 0x00000003, 0x4062B623, 0x4063CC20, 0x40646420, 0x00000003, 0x4062B621, - 0x4063CC20, 0x40648220, 0x00000003, 0x4062B622, 0x4063CC20, 0x40648220, - 0x00000003, 0x4062B623, 0x4063CC20, 0x40648220, 0x00000003, 0x4062B624, - 0x4063CC20, 0x40648220, 0x00000003, 0x4062B621, 0x4063CC20, 0x40648C20, - 0x00000003, 0x4062B622, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B623, - 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B624, 0x4063CC20, 0x40648C20, - 0x00000003, 0x4062B625, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B626, - 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B627, 0x4063CC20, 0x40648C20, - 0x00000003, 0x4062B628, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062B621, - 0x4063D020, 0x00000002, 0x4062B622, 0x4063D020, - // Block 370, offset 0x5c80 - 0x00000002, 0x4062B623, 0x4063D020, 0x00000002, 0x4062B624, 0x4063D020, - 0x00000002, 0x4062B625, 0x4063D020, 0x00000002, 0x4062B626, 0x4063D020, - 0x00000002, 0x4062B627, 0x4063D020, 0x00000002, 0x4062B628, 0x4063D020, - 0x00000002, 0x4062B629, 0x4063D020, 0x00000002, 0x4062B62A, 0x4063D020, - 0x00000002, 0x4062B62B, 0x4063D020, 0x00000002, 0x4062B62C, 0x4063D020, - 0x00000002, 0x4062B62D, 0x4063D020, 0x00000002, 0x4062B62E, 0x4063D020, - 0x00000002, 0x4062B62F, 0x4063D020, 0x00000002, 0x4062B630, 0x4063D020, - 0x00000002, 0x4062B631, 0x4063D020, 0x00000002, 0x4062B632, 0x4063D020, - 0x00000002, 0x4062B633, 0x4063D020, 0x00000002, 0x4062B634, 0x4063D020, - 0x00000002, 0x4062B635, 0x4063D020, 0x00000002, 0x4062B636, 0x4063D020, - 0x00000002, 0x4062B637, 0x4063D020, 0x00000002, - // Block 371, offset 0x5cc0 - 0x4062B638, 0x4063D020, 0x00000002, 0x4062B639, 0x4063D020, 0x00000002, - 0x4062B63A, 0x4063D020, 0x00000002, 0x4062B63B, 0x4063D020, 0x00000002, - 0x4062B63C, 0x4063D020, 0x00000002, 0x4062B63D, 0x4063D020, 0x00000002, - 0x4062B63E, 0x4063D020, 0x00000002, 0x4062B63F, 0x4063D020, 0x00000002, - 0x4062B640, 0x4063D020, 0x00000002, 0x4062B641, 0x4063D020, 0x00000002, - 0x4062B642, 0x4063D020, 0x00000002, 0x4062B643, 0x4063D020, 0x00000002, - 0x4062B644, 0x4063D020, 0x00000002, 0x4062B645, 0x4063D020, 0x00000002, - 0x4062B646, 0x4063D020, 0x00000002, 0x4062B647, 0x4063D020, 0x00000003, - 0x4062B621, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B622, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062B623, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062B624, 0x4063D020, 0x40646A20, 0x00000003, - // Block 372, offset 0x5d00 - 0x4062B625, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B626, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062B627, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062B628, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B629, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062B62A, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062B62B, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B62C, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062B62D, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062B62E, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B62F, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062B630, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062B631, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B632, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062B633, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062B634, 0x4063D020, 0x40646A20, 0x00000003, - // Block 373, offset 0x5d40 - 0x4062B635, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B621, 0x4063D020, - 0x40648220, 0x00000003, 0x4062B622, 0x4063D020, 0x40648220, 0x00000003, - 0x4062B623, 0x4063D020, 0x40648220, 0x00000003, 0x4062B624, 0x4063D020, - 0x40648220, 0x00000003, 0x4062B625, 0x4063D020, 0x40648220, 0x00000003, - 0x4062B626, 0x4063D020, 0x40648220, 0x00000003, 0x4062B621, 0x4063D020, - 0x40648420, 0x00000003, 0x4062B622, 0x4063D020, 0x40648420, 0x00000003, - 0x4062B623, 0x4063D020, 0x40648420, 0x00000003, 0x4062B624, 0x4063D020, - 0x40648420, 0x00000003, 0x4062B625, 0x4063D020, 0x40648420, 0x00000002, - 0x4062B821, 0x4063A820, 0x00000002, 0x4062B822, 0x4063A820, 0x00000002, - 0x4062B823, 0x4063A820, 0x00000002, 0x4062B824, 0x4063A820, 0x00000002, - 0x4062B825, 0x4063A820, 0x00000002, 0x4062B826, - // Block 374, offset 0x5d80 - 0x4063A820, 0x00000002, 0x4062B827, 0x4063A820, 0x00000002, 0x4062B828, - 0x4063A820, 0x00000002, 0x4062B829, 0x4063A820, 0x00000002, 0x4062B82A, - 0x4063A820, 0x00000002, 0x4062B82B, 0x4063A820, 0x00000002, 0x4062B82C, - 0x4063A820, 0x00000002, 0x4062B82D, 0x4063A820, 0x00000002, 0x4062B82E, - 0x4063A820, 0x00000003, 0x4062B821, 0x4063A820, 0x40646420, 0x00000003, - 0x4062B822, 0x4063A820, 0x40646420, 0x00000003, 0x4062B823, 0x4063A820, - 0x40646420, 0x00000003, 0x4062B824, 0x4063A820, 0x40646420, 0x00000003, - 0x4062B825, 0x4063A820, 0x40646420, 0x00000003, 0x4062B826, 0x4063A820, - 0x40646420, 0x00000003, 0x4062B827, 0x4063A820, 0x40646420, 0x00000003, - 0x4062B828, 0x4063A820, 0x40646420, 0x00000003, 0x4062B821, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062B822, 0x4063A820, - // Block 375, offset 0x5dc0 - 0x40646A20, 0x00000003, 0x4062B823, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B824, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B825, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062B826, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B827, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B828, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062B829, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B82A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B82B, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062B82C, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B82D, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B82E, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062B82F, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B830, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B831, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062B832, 0x4063A820, - // Block 376, offset 0x5e00 - 0x40646A20, 0x00000003, 0x4062B833, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B834, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B835, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062B836, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B837, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B838, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062B839, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B83A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B83B, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062B83C, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062B821, 0x4063A820, 0x40647220, 0x00000003, 0x4062B822, 0x4063A820, - 0x40647220, 0x00000003, 0x4062B823, 0x4063A820, 0x40647220, 0x00000003, - 0x4062B824, 0x4063A820, 0x40647220, 0x00000003, 0x4062B825, 0x4063A820, - 0x40647220, 0x00000003, 0x4062B826, 0x4063A820, - // Block 377, offset 0x5e40 - 0x40647220, 0x00000003, 0x4062B827, 0x4063A820, 0x40647220, 0x00000003, - 0x4062B828, 0x4063A820, 0x40647220, 0x00000003, 0x4062B829, 0x4063A820, - 0x40647220, 0x00000003, 0x4062B821, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062B822, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B823, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062B824, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062B825, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B826, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062B827, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062B828, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B829, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062B82A, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062B82B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B82C, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062B82D, 0x4063A820, - // Block 378, offset 0x5e80 - 0x40648C20, 0x00000003, 0x4062B82E, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062B82F, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B830, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062B831, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062B832, 0x4063A820, 0x40648C20, 0x00000002, 0x4062B821, 0x4063AA20, - 0x00000002, 0x4062B822, 0x4063AA20, 0x00000002, 0x4062B823, 0x4063AA20, - 0x00000002, 0x4062B824, 0x4063AA20, 0x00000002, 0x4062B825, 0x4063AA20, - 0x00000002, 0x4062B826, 0x4063AA20, 0x00000002, 0x4062B827, 0x4063AA20, - 0x00000002, 0x4062B828, 0x4063AA20, 0x00000002, 0x4062B829, 0x4063AA20, - 0x00000002, 0x4062B82A, 0x4063AA20, 0x00000002, 0x4062B82B, 0x4063AA20, - 0x00000002, 0x4062B82C, 0x4063AA20, 0x00000002, 0x4062B82D, 0x4063AA20, - 0x00000002, 0x4062B82E, 0x4063AA20, 0x00000002, - // Block 379, offset 0x5ec0 - 0x4062B82F, 0x4063AA20, 0x00000002, 0x4062B830, 0x4063AA20, 0x00000002, - 0x4062B831, 0x4063AA20, 0x00000002, 0x4062B832, 0x4063AA20, 0x00000002, - 0x4062B833, 0x4063AA20, 0x00000002, 0x4062B834, 0x4063AA20, 0x00000002, - 0x4062B835, 0x4063AA20, 0x00000002, 0x4062B836, 0x4063AA20, 0x00000002, - 0x4062B837, 0x4063AA20, 0x00000003, 0x4062B821, 0x4063AA20, 0x40646420, - 0x00000003, 0x4062B822, 0x4063AA20, 0x40646420, 0x00000003, 0x4062B823, - 0x4063AA20, 0x40646420, 0x00000003, 0x4062B824, 0x4063AA20, 0x40646420, - 0x00000003, 0x4062B825, 0x4063AA20, 0x40646420, 0x00000003, 0x4062B826, - 0x4063AA20, 0x40646420, 0x00000003, 0x4062B827, 0x4063AA20, 0x40646420, - 0x00000003, 0x4062B828, 0x4063AA20, 0x40646420, 0x00000003, 0x4062B821, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B822, - // Block 380, offset 0x5f00 - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B823, 0x4063AA20, 0x40648C20, - 0x00000003, 0x4062B824, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B825, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B826, 0x4063AA20, 0x40648C20, - 0x00000003, 0x4062B827, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B828, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B829, 0x4063AA20, 0x40648C20, - 0x00000003, 0x4062B82A, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B821, - 0x4063B420, 0x40646420, 0x00000003, 0x4062B822, 0x4063B420, 0x40646420, - 0x00000003, 0x4062B823, 0x4063B420, 0x40646420, 0x00000003, 0x4062B824, - 0x4063B420, 0x40646420, 0x00000003, 0x4062B821, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062B822, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B823, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B824, - // Block 381, offset 0x5f40 - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B825, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062B826, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B827, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B828, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062B829, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B82A, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B82B, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062B82C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B82D, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B82E, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062B82F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B830, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062B821, 0x4063B420, 0x40647220, - 0x00000003, 0x4062B822, 0x4063B420, 0x40647220, 0x00000003, 0x4062B823, - 0x4063B420, 0x40647220, 0x00000003, 0x4062B824, - // Block 382, offset 0x5f80 - 0x4063B420, 0x40647220, 0x00000003, 0x4062B821, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B822, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B823, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B824, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B825, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B826, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B827, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B828, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B829, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B82A, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B82B, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B82C, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B82D, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062B82E, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B82F, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062B830, - // Block 383, offset 0x5fc0 - 0x4063B420, 0x40648C20, 0x00000002, 0x4062B821, 0x4063B620, 0x00000002, - 0x4062B821, 0x4063B820, 0x00000002, 0x4062B822, 0x4063B820, 0x00000002, - 0x4062B823, 0x4063B820, 0x00000002, 0x4062B824, 0x4063B820, 0x00000002, - 0x4062B825, 0x4063B820, 0x00000002, 0x4062B826, 0x4063B820, 0x00000002, - 0x4062B827, 0x4063B820, 0x00000002, 0x4062B828, 0x4063B820, 0x00000002, - 0x4062B829, 0x4063B820, 0x00000002, 0x4062B82A, 0x4063B820, 0x00000002, - 0x4062B82B, 0x4063B820, 0x00000002, 0x4062B82C, 0x4063B820, 0x00000002, - 0x4062B82D, 0x4063B820, 0x00000002, 0x4062B82E, 0x4063B820, 0x00000002, - 0x4062B82F, 0x4063B820, 0x00000002, 0x4062B830, 0x4063B820, 0x00000002, - 0x4062B831, 0x4063B820, 0x00000002, 0x4062B832, 0x4063B820, 0x00000002, - 0x4062B833, 0x4063B820, 0x00000002, 0x4062B834, - // Block 384, offset 0x6000 - 0x4063B820, 0x00000002, 0x4062B835, 0x4063B820, 0x00000002, 0x4062B836, - 0x4063B820, 0x00000002, 0x4062B837, 0x4063B820, 0x00000002, 0x4062B838, - 0x4063B820, 0x00000002, 0x4062B839, 0x4063B820, 0x00000002, 0x4062B83A, - 0x4063B820, 0x00000002, 0x4062B83B, 0x4063B820, 0x00000002, 0x4062B83C, - 0x4063B820, 0x00000002, 0x4062B83D, 0x4063B820, 0x00000002, 0x4062B83E, - 0x4063B820, 0x00000002, 0x4062B83F, 0x4063B820, 0x00000002, 0x4062B840, - 0x4063B820, 0x00000002, 0x4062B841, 0x4063B820, 0x00000002, 0x4062B842, - 0x4063B820, 0x00000002, 0x4062B843, 0x4063B820, 0x00000002, 0x4062B844, - 0x4063B820, 0x00000002, 0x4062B845, 0x4063B820, 0x00000002, 0x4062B846, - 0x4063B820, 0x00000002, 0x4062B847, 0x4063B820, 0x00000003, 0x4062B821, - 0x4063B820, 0x40646420, 0x00000003, 0x4062B822, - // Block 385, offset 0x6040 - 0x4063B820, 0x40646420, 0x00000003, 0x4062B823, 0x4063B820, 0x40646420, - 0x00000003, 0x4062B824, 0x4063B820, 0x40646420, 0x00000003, 0x4062B825, - 0x4063B820, 0x40646420, 0x00000003, 0x4062B826, 0x4063B820, 0x40646420, - 0x00000003, 0x4062B827, 0x4063B820, 0x40646420, 0x00000003, 0x4062B828, - 0x4063B820, 0x40646420, 0x00000003, 0x4062B829, 0x4063B820, 0x40646420, - 0x00000003, 0x4062B821, 0x4063B820, 0x40647220, 0x00000003, 0x4062B822, - 0x4063B820, 0x40647220, 0x00000003, 0x4062B821, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062B822, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B823, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062B824, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062B825, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B826, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062B827, - // Block 386, offset 0x6080 - 0x4063B820, 0x40648C20, 0x00000003, 0x4062B828, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062B829, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B82A, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062B82B, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062B82C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B82D, - 0x4063B820, 0x40648C20, 0x00000002, 0x4062B821, 0x4063C020, 0x00000002, - 0x4062B822, 0x4063C020, 0x00000002, 0x4062B823, 0x4063C020, 0x00000002, - 0x4062B824, 0x4063C020, 0x00000002, 0x4062B825, 0x4063C020, 0x00000002, - 0x4062B826, 0x4063C020, 0x00000002, 0x4062B827, 0x4063C020, 0x00000002, - 0x4062B828, 0x4063C020, 0x00000002, 0x4062B829, 0x4063C020, 0x00000002, - 0x4062B82A, 0x4063C020, 0x00000002, 0x4062B82B, 0x4063C020, 0x00000002, - 0x4062B82C, 0x4063C020, 0x00000002, 0x4062B82D, - // Block 387, offset 0x60c0 - 0x4063C020, 0x00000002, 0x4062B82E, 0x4063C020, 0x00000002, 0x4062B82F, - 0x4063C020, 0x00000002, 0x4062B830, 0x4063C020, 0x00000002, 0x4062B821, - 0x4063C220, 0x00000002, 0x4062B822, 0x4063C220, 0x00000002, 0x4062B823, - 0x4063C220, 0x00000002, 0x4062B824, 0x4063C220, 0x00000002, 0x4062B825, - 0x4063C220, 0x00000002, 0x4062B826, 0x4063C220, 0x00000002, 0x4062B827, - 0x4063C220, 0x00000002, 0x4062B828, 0x4063C220, 0x00000002, 0x4062B829, - 0x4063C220, 0x00000002, 0x4062B82A, 0x4063C220, 0x00000002, 0x4062B82B, - 0x4063C220, 0x00000002, 0x4062B82C, 0x4063C220, 0x00000002, 0x4062B82D, - 0x4063C220, 0x00000002, 0x4062B82E, 0x4063C220, 0x00000002, 0x4062B82F, - 0x4063C220, 0x00000002, 0x4062B830, 0x4063C220, 0x00000002, 0x4062B831, - 0x4063C220, 0x00000002, 0x4062B832, 0x4063C220, - // Block 388, offset 0x6100 - 0x00000002, 0x4062B833, 0x4063C220, 0x00000002, 0x4062B834, 0x4063C220, - 0x00000002, 0x4062B835, 0x4063C220, 0x00000002, 0x4062B836, 0x4063C220, - 0x00000002, 0x4062B837, 0x4063C220, 0x00000002, 0x4062B838, 0x4063C220, - 0x00000002, 0x4062B839, 0x4063C220, 0x00000002, 0x4062B83A, 0x4063C220, - 0x00000002, 0x4062B83B, 0x4063C220, 0x00000003, 0x4062B821, 0x4063C220, - 0x40646420, 0x00000003, 0x4062B822, 0x4063C220, 0x40646420, 0x00000003, - 0x4062B823, 0x4063C220, 0x40646420, 0x00000003, 0x4062B821, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062B822, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062B823, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B824, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062B825, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062B826, 0x4063C220, 0x40646A20, 0x00000003, - // Block 389, offset 0x6140 - 0x4062B827, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B828, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062B829, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062B82A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B82B, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062B82C, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062B82D, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B82E, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062B82F, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062B830, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B831, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062B832, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062B833, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B821, 0x4063C220, - 0x40647220, 0x00000003, 0x4062B822, 0x4063C220, 0x40647220, 0x00000003, - 0x4062B823, 0x4063C220, 0x40647220, 0x00000002, - // Block 390, offset 0x6180 - 0x4062B821, 0x4063D020, 0x00000002, 0x4062B822, 0x4063D020, 0x00000002, - 0x4062B823, 0x4063D020, 0x00000002, 0x4062B824, 0x4063D020, 0x00000002, - 0x4062B825, 0x4063D020, 0x00000002, 0x4062B826, 0x4063D020, 0x00000002, - 0x4062B827, 0x4063D020, 0x00000002, 0x4062B828, 0x4063D020, 0x00000002, - 0x4062B829, 0x4063D020, 0x00000002, 0x4062B82A, 0x4063D020, 0x00000002, - 0x4062B82B, 0x4063D020, 0x00000002, 0x4062B82C, 0x4063D020, 0x00000002, - 0x4062B82D, 0x4063D020, 0x00000002, 0x4062B82E, 0x4063D020, 0x00000002, - 0x4062B82F, 0x4063D020, 0x00000002, 0x4062B830, 0x4063D020, 0x00000002, - 0x4062B831, 0x4063D020, 0x00000002, 0x4062B832, 0x4063D020, 0x00000002, - 0x4062B833, 0x4063D020, 0x00000002, 0x4062B834, 0x4063D020, 0x00000002, - 0x4062B835, 0x4063D020, 0x00000002, 0x4062B836, - // Block 391, offset 0x61c0 - 0x4063D020, 0x00000002, 0x4062B837, 0x4063D020, 0x00000002, 0x4062B838, - 0x4063D020, 0x00000002, 0x4062B839, 0x4063D020, 0x00000002, 0x4062B83A, - 0x4063D020, 0x00000002, 0x4062B83B, 0x4063D020, 0x00000002, 0x4062B83C, - 0x4063D020, 0x00000002, 0x4062B83D, 0x4063D020, 0x00000002, 0x4062B83E, - 0x4063D020, 0x00000002, 0x4062B83F, 0x4063D020, 0x00000002, 0x4062B840, - 0x4063D020, 0x00000002, 0x4062B841, 0x4063D020, 0x00000003, 0x4062B821, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062B822, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062B823, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B824, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062B825, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062B826, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B827, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062B828, - // Block 392, offset 0x6200 - 0x4063D020, 0x40646A20, 0x00000003, 0x4062B829, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062B82A, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B82B, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062B82C, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062B82D, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B82E, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062B82F, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062B830, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B831, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062B832, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062B833, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B834, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062B835, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062B836, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B837, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062B821, - // Block 393, offset 0x6240 - 0x4063D020, 0x40647220, 0x00000003, 0x4062B822, 0x4063D020, 0x40647220, - 0x00000003, 0x4062B823, 0x4063D020, 0x40647220, 0x00000003, 0x4062B824, - 0x4063D020, 0x40647220, 0x00000003, 0x4062B825, 0x4063D020, 0x40647220, - 0x00000003, 0x4062BA21, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA22, - 0x4063A820, 0x40646420, 0x00000003, 0x4062BA23, 0x4063A820, 0x40646420, - 0x00000003, 0x4062BA24, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA25, - 0x4063A820, 0x40646420, 0x00000003, 0x4062BA26, 0x4063A820, 0x40646420, - 0x00000003, 0x4062BA27, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA28, - 0x4063A820, 0x40646420, 0x00000003, 0x4062BA29, 0x4063A820, 0x40646420, - 0x00000003, 0x4062BA2A, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA2B, - 0x4063A820, 0x40646420, 0x00000003, 0x4062BA2C, - // Block 394, offset 0x6280 - 0x4063A820, 0x40646420, 0x00000003, 0x4062BA2D, 0x4063A820, 0x40646420, - 0x00000003, 0x4062BA2E, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA2F, - 0x4063A820, 0x40646420, 0x00000003, 0x4062BA30, 0x4063A820, 0x40646420, - 0x00000003, 0x4062BA31, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA32, - 0x4063A820, 0x40646420, 0x00000003, 0x4062BA33, 0x4063A820, 0x40646420, - 0x00000003, 0x4062BA34, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA35, - 0x4063A820, 0x40646420, 0x00000003, 0x4062BA36, 0x4063A820, 0x40646420, - 0x00000003, 0x4062BA37, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA38, - 0x4063A820, 0x40646420, 0x00000003, 0x4062BA39, 0x4063A820, 0x40646420, - 0x00000003, 0x4062BA21, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA22, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA23, - // Block 395, offset 0x62c0 - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA24, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BA25, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA26, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA27, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BA28, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA29, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA2A, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BA2B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA2C, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA2D, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BA2E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA2F, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA30, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BA31, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA32, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA33, - // Block 396, offset 0x6300 - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA34, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BA35, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA36, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA37, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BA38, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA39, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA3A, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BA3B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA3C, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA3D, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BA3E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA3F, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA40, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BA41, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA21, - 0x4063A820, 0x40647220, 0x00000003, 0x4062BA22, - // Block 397, offset 0x6340 - 0x4063A820, 0x40647220, 0x00000003, 0x4062BA23, 0x4063A820, 0x40647220, - 0x00000003, 0x4062BA24, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA25, - 0x4063A820, 0x40647220, 0x00000003, 0x4062BA26, 0x4063A820, 0x40647220, - 0x00000003, 0x4062BA27, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA28, - 0x4063A820, 0x40647220, 0x00000003, 0x4062BA29, 0x4063A820, 0x40647220, - 0x00000003, 0x4062BA2A, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA2B, - 0x4063A820, 0x40647220, 0x00000003, 0x4062BA2C, 0x4063A820, 0x40647220, - 0x00000003, 0x4062BA2D, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA2E, - 0x4063A820, 0x40647220, 0x00000003, 0x4062BA2F, 0x4063A820, 0x40647220, - 0x00000003, 0x4062BA30, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA21, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA22, - // Block 398, offset 0x6380 - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA23, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BA24, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA25, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA26, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BA27, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA28, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA29, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BA2A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA2B, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA2C, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BA2D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA2E, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA2F, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BA30, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA31, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA32, - // Block 399, offset 0x63c0 - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA33, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BA34, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA35, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA36, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BA37, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA38, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA39, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BA3A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA3B, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA3C, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BA3D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA3E, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA3F, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BA40, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA41, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA42, - // Block 400, offset 0x6400 - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA43, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BA44, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA45, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA46, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BA47, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA48, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA49, 0x4063A820, 0x40648C20, - 0x00000002, 0x4062BA21, 0x4063AA20, 0x00000002, 0x4062BA22, 0x4063AA20, - 0x00000002, 0x4062BA23, 0x4063AA20, 0x00000002, 0x4062BA24, 0x4063AA20, - 0x00000002, 0x4062BA25, 0x4063AA20, 0x00000002, 0x4062BA26, 0x4063AA20, - 0x00000002, 0x4062BA27, 0x4063AA20, 0x00000002, 0x4062BA28, 0x4063AA20, - 0x00000002, 0x4062BA29, 0x4063AA20, 0x00000002, 0x4062BA2A, 0x4063AA20, - 0x00000002, 0x4062BA2B, 0x4063AA20, 0x00000002, - // Block 401, offset 0x6440 - 0x4062BA2C, 0x4063AA20, 0x00000002, 0x4062BA2D, 0x4063AA20, 0x00000002, - 0x4062BA2E, 0x4063AA20, 0x00000002, 0x4062BA2F, 0x4063AA20, 0x00000002, - 0x4062BA30, 0x4063AA20, 0x00000002, 0x4062BA31, 0x4063AA20, 0x00000002, - 0x4062BA32, 0x4063AA20, 0x00000002, 0x4062BA33, 0x4063AA20, 0x00000002, - 0x4062BA34, 0x4063AA20, 0x00000002, 0x4062BA35, 0x4063AA20, 0x00000002, - 0x4062BA36, 0x4063AA20, 0x00000002, 0x4062BA37, 0x4063AA20, 0x00000002, - 0x4062BA38, 0x4063AA20, 0x00000003, 0x4062BA21, 0x4063AA20, 0x40646420, - 0x00000003, 0x4062BA22, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA23, - 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA24, 0x4063AA20, 0x40646420, - 0x00000003, 0x4062BA25, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA26, - 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA27, - // Block 402, offset 0x6480 - 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA28, 0x4063AA20, 0x40646420, - 0x00000003, 0x4062BA29, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA21, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA22, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BA23, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA24, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA25, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BA26, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA27, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA28, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BA29, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA2A, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA2B, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BA2C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA2D, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA2E, - // Block 403, offset 0x64c0 - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA21, 0x4063B020, 0x40647220, - 0x00000003, 0x4062BA22, 0x4063B020, 0x40647220, 0x00000003, 0x4062BA23, - 0x4063B020, 0x40647220, 0x00000003, 0x4062BA24, 0x4063B020, 0x40647220, - 0x00000003, 0x4062BA25, 0x4063B020, 0x40647220, 0x00000003, 0x4062BA26, - 0x4063B020, 0x40647220, 0x00000003, 0x4062BA21, 0x4063B020, 0x40648220, - 0x00000003, 0x4062BA22, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA23, - 0x4063B020, 0x40648220, 0x00000003, 0x4062BA24, 0x4063B020, 0x40648220, - 0x00000003, 0x4062BA25, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA26, - 0x4063B020, 0x40648220, 0x00000003, 0x4062BA27, 0x4063B020, 0x40648220, - 0x00000003, 0x4062BA28, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA29, - 0x4063B020, 0x40648220, 0x00000003, 0x4062BA2A, - // Block 404, offset 0x6500 - 0x4063B020, 0x40648220, 0x00000003, 0x4062BA2B, 0x4063B020, 0x40648220, - 0x00000003, 0x4062BA2C, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA21, - 0x4063B020, 0x40648420, 0x00000003, 0x4062BA22, 0x4063B020, 0x40648420, - 0x00000003, 0x4062BA21, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA22, - 0x4063B420, 0x40646420, 0x00000003, 0x4062BA23, 0x4063B420, 0x40646420, - 0x00000003, 0x4062BA24, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA25, - 0x4063B420, 0x40646420, 0x00000003, 0x4062BA26, 0x4063B420, 0x40646420, - 0x00000003, 0x4062BA27, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA28, - 0x4063B420, 0x40646420, 0x00000003, 0x4062BA29, 0x4063B420, 0x40646420, - 0x00000003, 0x4062BA2A, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA2B, - 0x4063B420, 0x40646420, 0x00000003, 0x4062BA2C, - // Block 405, offset 0x6540 - 0x4063B420, 0x40646420, 0x00000003, 0x4062BA2D, 0x4063B420, 0x40646420, - 0x00000003, 0x4062BA2E, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA2F, - 0x4063B420, 0x40646420, 0x00000003, 0x4062BA30, 0x4063B420, 0x40646420, - 0x00000003, 0x4062BA31, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA21, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA22, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062BA23, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA24, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA25, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062BA26, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA27, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA28, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062BA29, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA2A, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA2B, - // Block 406, offset 0x6580 - 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA2C, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062BA2D, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA2E, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA2F, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062BA21, 0x4063B420, 0x40647220, 0x00000003, 0x4062BA22, - 0x4063B420, 0x40647220, 0x00000003, 0x4062BA23, 0x4063B420, 0x40647220, - 0x00000003, 0x4062BA24, 0x4063B420, 0x40647220, 0x00000003, 0x4062BA25, - 0x4063B420, 0x40647220, 0x00000003, 0x4062BA26, 0x4063B420, 0x40647220, - 0x00000003, 0x4062BA21, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA22, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA23, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062BA24, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA25, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA26, - // Block 407, offset 0x65c0 - 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA27, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062BA28, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA29, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA2A, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062BA2B, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA2C, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA2D, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062BA2E, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA2F, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA30, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062BA31, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA32, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA33, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062BA34, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA35, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA36, - // Block 408, offset 0x6600 - 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA37, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062BA38, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA39, - 0x4063B420, 0x40648C20, 0x00000002, 0x4062BA21, 0x4063B820, 0x00000002, - 0x4062BA22, 0x4063B820, 0x00000002, 0x4062BA23, 0x4063B820, 0x00000002, - 0x4062BA24, 0x4063B820, 0x00000002, 0x4062BA25, 0x4063B820, 0x00000002, - 0x4062BA26, 0x4063B820, 0x00000002, 0x4062BA27, 0x4063B820, 0x00000002, - 0x4062BA28, 0x4063B820, 0x00000002, 0x4062BA29, 0x4063B820, 0x00000002, - 0x4062BA2A, 0x4063B820, 0x00000002, 0x4062BA2B, 0x4063B820, 0x00000002, - 0x4062BA2C, 0x4063B820, 0x00000002, 0x4062BA2D, 0x4063B820, 0x00000002, - 0x4062BA2E, 0x4063B820, 0x00000002, 0x4062BA2F, 0x4063B820, 0x00000002, - 0x4062BA30, 0x4063B820, 0x00000002, 0x4062BA31, - // Block 409, offset 0x6640 - 0x4063B820, 0x00000002, 0x4062BA32, 0x4063B820, 0x00000002, 0x4062BA33, - 0x4063B820, 0x00000002, 0x4062BA34, 0x4063B820, 0x00000002, 0x4062BA35, - 0x4063B820, 0x00000002, 0x4062BA36, 0x4063B820, 0x00000002, 0x4062BA37, - 0x4063B820, 0x00000003, 0x4062BA21, 0x4063B820, 0x40646420, 0x00000003, - 0x4062BA22, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA23, 0x4063B820, - 0x40646420, 0x00000003, 0x4062BA24, 0x4063B820, 0x40646420, 0x00000003, - 0x4062BA25, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA26, 0x4063B820, - 0x40646420, 0x00000003, 0x4062BA27, 0x4063B820, 0x40646420, 0x00000003, - 0x4062BA28, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA29, 0x4063B820, - 0x40646420, 0x00000003, 0x4062BA2A, 0x4063B820, 0x40646420, 0x00000003, - 0x4062BA2B, 0x4063B820, 0x40646420, 0x00000003, - // Block 410, offset 0x6680 - 0x4062BA2C, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA2D, 0x4063B820, - 0x40646420, 0x00000003, 0x4062BA2E, 0x4063B820, 0x40646420, 0x00000003, - 0x4062BA2F, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA30, 0x4063B820, - 0x40646420, 0x00000003, 0x4062BA31, 0x4063B820, 0x40646420, 0x00000003, - 0x4062BA32, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA33, 0x4063B820, - 0x40646420, 0x00000003, 0x4062BA34, 0x4063B820, 0x40646420, 0x00000003, - 0x4062BA35, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA36, 0x4063B820, - 0x40646420, 0x00000003, 0x4062BA37, 0x4063B820, 0x40646420, 0x00000003, - 0x4062BA38, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA39, 0x4063B820, - 0x40646420, 0x00000003, 0x4062BA3A, 0x4063B820, 0x40646420, 0x00000003, - 0x4062BA21, 0x4063B820, 0x40646A20, 0x00000003, - // Block 411, offset 0x66c0 - 0x4062BA21, 0x4063B820, 0x40647220, 0x00000003, 0x4062BA21, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062BA22, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062BA23, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA24, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062BA25, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062BA26, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA27, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062BA28, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062BA29, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA2A, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062BA2B, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062BA2C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA2D, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062BA2E, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062BA2F, 0x4063B820, 0x40648C20, 0x00000003, - // Block 412, offset 0x6700 - 0x4062BA30, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA31, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062BA32, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062BA33, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA34, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062BA35, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062BA36, 0x4063B820, 0x40648C20, 0x00000002, 0x4062BA21, 0x4063C220, - 0x00000002, 0x4062BA22, 0x4063C220, 0x00000002, 0x4062BA23, 0x4063C220, - 0x00000002, 0x4062BA24, 0x4063C220, 0x00000002, 0x4062BA25, 0x4063C220, - 0x00000002, 0x4062BA26, 0x4063C220, 0x00000002, 0x4062BA27, 0x4063C220, - 0x00000002, 0x4062BA28, 0x4063C220, 0x00000002, 0x4062BA29, 0x4063C220, - 0x00000002, 0x4062BA2A, 0x4063C220, 0x00000002, 0x4062BA2B, 0x4063C220, - 0x00000002, 0x4062BA2C, 0x4063C220, 0x00000002, - // Block 413, offset 0x6740 - 0x4062BA2D, 0x4063C220, 0x00000002, 0x4062BA2E, 0x4063C220, 0x00000002, - 0x4062BA2F, 0x4063C220, 0x00000002, 0x4062BA30, 0x4063C220, 0x00000002, - 0x4062BA31, 0x4063C220, 0x00000002, 0x4062BA32, 0x4063C220, 0x00000002, - 0x4062BA33, 0x4063C220, 0x00000002, 0x4062BA34, 0x4063C220, 0x00000002, - 0x4062BA35, 0x4063C220, 0x00000002, 0x4062BA36, 0x4063C220, 0x00000002, - 0x4062BA37, 0x4063C220, 0x00000002, 0x4062BA38, 0x4063C220, 0x00000002, - 0x4062BA39, 0x4063C220, 0x00000002, 0x4062BA3A, 0x4063C220, 0x00000002, - 0x4062BA3B, 0x4063C220, 0x00000002, 0x4062BA3C, 0x4063C220, 0x00000002, - 0x4062BA3D, 0x4063C220, 0x00000002, 0x4062BA3E, 0x4063C220, 0x00000002, - 0x4062BA3F, 0x4063C220, 0x00000002, 0x4062BA40, 0x4063C220, 0x00000002, - 0x4062BA41, 0x4063C220, 0x00000002, 0x4062BA42, - // Block 414, offset 0x6780 - 0x4063C220, 0x00000002, 0x4062BA43, 0x4063C220, 0x00000002, 0x4062BA44, - 0x4063C220, 0x00000002, 0x4062BA45, 0x4063C220, 0x00000002, 0x4062BA46, - 0x4063C220, 0x00000002, 0x4062BA47, 0x4063C220, 0x00000002, 0x4062BA48, - 0x4063C220, 0x00000002, 0x4062BA49, 0x4063C220, 0x00000002, 0x4062BA4A, - 0x4063C220, 0x00000002, 0x4062BA4B, 0x4063C220, 0x00000002, 0x4062BA4C, - 0x4063C220, 0x00000002, 0x4062BA4D, 0x4063C220, 0x00000002, 0x4062BA4E, - 0x4063C220, 0x00000002, 0x4062BA4F, 0x4063C220, 0x00000002, 0x4062BA50, - 0x4063C220, 0x00000002, 0x4062BA51, 0x4063C220, 0x00000002, 0x4062BA52, - 0x4063C220, 0x00000002, 0x4062BA53, 0x4063C220, 0x00000002, 0x4062BA54, - 0x4063C220, 0x00000002, 0x4062BA55, 0x4063C220, 0x00000002, 0x4062BA56, - 0x4063C220, 0x00000002, 0x4062BA57, 0x4063C220, - // Block 415, offset 0x67c0 - 0x00000002, 0x4062BA58, 0x4063C220, 0x00000002, 0x4062BA59, 0x4063C220, - 0x00000002, 0x4062BA5A, 0x4063C220, 0x00000002, 0x4062BA5B, 0x4063C220, - 0x00000002, 0x4062BA5C, 0x4063C220, 0x00000002, 0x4062BA5D, 0x4063C220, - 0x00000002, 0x4062BA5E, 0x4063C220, 0x00000002, 0x4062BA5F, 0x4063C220, - 0x00000002, 0x4062BA60, 0x4063C220, 0x00000002, 0x4062BA61, 0x4063C220, - 0x00000002, 0x4062BA62, 0x4063C220, 0x00000002, 0x4062BA63, 0x4063C220, - 0x00000002, 0x4062BA64, 0x4063C220, 0x00000002, 0x4062BA65, 0x4063C220, - 0x00000003, 0x4062BA21, 0x4063C220, 0x40646420, 0x00000003, 0x4062BA21, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA22, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062BA23, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA24, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA25, - // Block 416, offset 0x6800 - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA26, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062BA27, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA28, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA29, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062BA2A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA2B, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA2C, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062BA2D, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA2E, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA2F, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062BA30, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA31, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA32, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062BA33, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA34, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA35, - // Block 417, offset 0x6840 - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA36, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062BA37, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA38, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA39, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062BA3A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA3B, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA3C, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062BA3D, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA3E, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA3F, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062BA40, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA41, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA42, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062BA43, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA44, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA45, - // Block 418, offset 0x6880 - 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA46, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062BA21, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA22, - 0x4063C220, 0x40647220, 0x00000003, 0x4062BA23, 0x4063C220, 0x40647220, - 0x00000003, 0x4062BA24, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA25, - 0x4063C220, 0x40647220, 0x00000003, 0x4062BA26, 0x4063C220, 0x40647220, - 0x00000003, 0x4062BA27, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA28, - 0x4063C220, 0x40647220, 0x00000003, 0x4062BA29, 0x4063C220, 0x40647220, - 0x00000003, 0x4062BA2A, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA2B, - 0x4063C220, 0x40647220, 0x00000003, 0x4062BA2C, 0x4063C220, 0x40647220, - 0x00000003, 0x4062BA21, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA22, - 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA23, - // Block 419, offset 0x68c0 - 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA24, 0x4063C220, 0x40648C20, - 0x00000003, 0x4062BA25, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA26, - 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA27, 0x4063C220, 0x40648C20, - 0x00000003, 0x4062BA28, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA29, - 0x4063C220, 0x40648C20, 0x00000002, 0x4062BA21, 0x4063D020, 0x00000002, - 0x4062BA22, 0x4063D020, 0x00000002, 0x4062BA23, 0x4063D020, 0x00000002, - 0x4062BA24, 0x4063D020, 0x00000002, 0x4062BA25, 0x4063D020, 0x00000002, - 0x4062BA26, 0x4063D020, 0x00000002, 0x4062BA27, 0x4063D020, 0x00000002, - 0x4062BA28, 0x4063D020, 0x00000002, 0x4062BA29, 0x4063D020, 0x00000002, - 0x4062BA2A, 0x4063D020, 0x00000002, 0x4062BA2B, 0x4063D020, 0x00000002, - 0x4062BA2C, 0x4063D020, 0x00000002, 0x4062BA2D, - // Block 420, offset 0x6900 - 0x4063D020, 0x00000002, 0x4062BA2E, 0x4063D020, 0x00000002, 0x4062BA2F, - 0x4063D020, 0x00000002, 0x4062BA30, 0x4063D020, 0x00000002, 0x4062BA31, - 0x4063D020, 0x00000002, 0x4062BA32, 0x4063D020, 0x00000002, 0x4062BA33, - 0x4063D020, 0x00000002, 0x4062BA34, 0x4063D020, 0x00000002, 0x4062BA35, - 0x4063D020, 0x00000002, 0x4062BA36, 0x4063D020, 0x00000002, 0x4062BA37, - 0x4063D020, 0x00000002, 0x4062BA38, 0x4063D020, 0x00000002, 0x4062BA39, - 0x4063D020, 0x00000002, 0x4062BA3A, 0x4063D020, 0x00000002, 0x4062BA3B, - 0x4063D020, 0x00000002, 0x4062BA3C, 0x4063D020, 0x00000002, 0x4062BA3D, - 0x4063D020, 0x00000002, 0x4062BA3E, 0x4063D020, 0x00000002, 0x4062BA3F, - 0x4063D020, 0x00000002, 0x4062BA40, 0x4063D020, 0x00000002, 0x4062BA41, - 0x4063D020, 0x00000002, 0x4062BA42, 0x4063D020, - // Block 421, offset 0x6940 - 0x00000002, 0x4062BA43, 0x4063D020, 0x00000002, 0x4062BA44, 0x4063D020, - 0x00000002, 0x4062BA45, 0x4063D020, 0x00000002, 0x4062BA46, 0x4063D020, - 0x00000002, 0x4062BA47, 0x4063D020, 0x00000002, 0x4062BA48, 0x4063D020, - 0x00000002, 0x4062BA49, 0x4063D020, 0x00000002, 0x4062BA4A, 0x4063D020, - 0x00000002, 0x4062BA4B, 0x4063D020, 0x00000002, 0x4062BA4C, 0x4063D020, - 0x00000002, 0x4062BA4D, 0x4063D020, 0x00000002, 0x4062BA4E, 0x4063D020, - 0x00000002, 0x4062BA4F, 0x4063D020, 0x00000002, 0x4062BA50, 0x4063D020, - 0x00000002, 0x4062BA51, 0x4063D020, 0x00000002, 0x4062BA52, 0x4063D020, - 0x00000002, 0x4062BA53, 0x4063D020, 0x00000002, 0x4062BA54, 0x4063D020, - 0x00000002, 0x4062BA55, 0x4063D020, 0x00000002, 0x4062BA56, 0x4063D020, - 0x00000002, 0x4062BA57, 0x4063D020, 0x00000002, - // Block 422, offset 0x6980 - 0x4062BA58, 0x4063D020, 0x00000002, 0x4062BA59, 0x4063D020, 0x00000002, - 0x4062BA5A, 0x4063D020, 0x00000002, 0x4062BA5B, 0x4063D020, 0x00000002, - 0x4062BA5C, 0x4063D020, 0x00000002, 0x4062BA5D, 0x4063D020, 0x00000002, - 0x4062BA5E, 0x4063D020, 0x00000002, 0x4062BA5F, 0x4063D020, 0x00000002, - 0x4062BA60, 0x4063D020, 0x00000002, 0x4062BA61, 0x4063D020, 0x00000002, - 0x4062BA62, 0x4063D020, 0x00000002, 0x4062BA63, 0x4063D020, 0x00000002, - 0x4062BA64, 0x4063D020, 0x00000002, 0x4062BA65, 0x4063D020, 0x00000002, - 0x4062BA66, 0x4063D020, 0x00000002, 0x4062BA67, 0x4063D020, 0x00000002, - 0x4062BA68, 0x4063D020, 0x00000002, 0x4062BA69, 0x4063D020, 0x00000002, - 0x4062BA6A, 0x4063D020, 0x00000002, 0x4062BA6B, 0x4063D020, 0x00000002, - 0x4062BA6C, 0x4063D020, 0x00000002, 0x4062BA6D, - // Block 423, offset 0x69c0 - 0x4063D020, 0x00000002, 0x4062BA6E, 0x4063D020, 0x00000002, 0x4062BA6F, - 0x4063D020, 0x00000002, 0x4062BA70, 0x4063D020, 0x00000002, 0x4062BA71, - 0x4063D020, 0x00000002, 0x4062BA72, 0x4063D020, 0x00000002, 0x4062BA73, - 0x4063D020, 0x00000002, 0x4062BA74, 0x4063D020, 0x00000002, 0x4062BA75, - 0x4063D020, 0x00000003, 0x4062BA21, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BA22, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA23, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BA24, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BA25, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA26, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BA27, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BA28, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA29, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BA2A, 0x4063D020, - // Block 424, offset 0x6a00 - 0x40646A20, 0x00000003, 0x4062BA2B, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BA2C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA2D, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BA2E, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BA2F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA30, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BA31, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BA32, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA33, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BA34, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BA35, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA36, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BA37, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BA38, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA39, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BA3A, 0x4063D020, - // Block 425, offset 0x6a40 - 0x40646A20, 0x00000003, 0x4062BA3B, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BA21, 0x4063D020, 0x40648C20, 0x00000003, 0x4062BA22, 0x4063D020, - 0x40648C20, 0x00000003, 0x4062BA23, 0x4063D020, 0x40648C20, 0x00000003, - 0x4062BA24, 0x4063D020, 0x40648C20, 0x00000003, 0x4062BA25, 0x4063D020, - 0x40648C20, 0x00000003, 0x4062BA26, 0x4063D020, 0x40648C20, 0x00000003, - 0x4062BA27, 0x4063D020, 0x40648C20, 0x00000003, 0x4062BA28, 0x4063D020, - 0x40648C20, 0x00000002, 0x4062BE21, 0x4063A820, 0x00000002, 0x4062BE22, - 0x4063A820, 0x00000002, 0x4062BE23, 0x4063A820, 0x00000002, 0x4062BE24, - 0x4063A820, 0x00000002, 0x4062BE25, 0x4063A820, 0x00000002, 0x4062BE26, - 0x4063A820, 0x00000002, 0x4062BE27, 0x4063A820, 0x00000002, 0x4062BE28, - 0x4063A820, 0x00000002, 0x4062BE29, 0x4063A820, - // Block 426, offset 0x6a80 - 0x00000002, 0x4062BE2A, 0x4063A820, 0x00000002, 0x4062BE2B, 0x4063A820, - 0x00000002, 0x4062BE2C, 0x4063A820, 0x00000002, 0x4062BE2D, 0x4063A820, - 0x00000002, 0x4062BE2E, 0x4063A820, 0x00000002, 0x4062BE2F, 0x4063A820, - 0x00000002, 0x4062BE30, 0x4063A820, 0x00000002, 0x4062BE31, 0x4063A820, - 0x00000002, 0x4062BE32, 0x4063A820, 0x00000002, 0x4062BE33, 0x4063A820, - 0x00000002, 0x4062BE34, 0x4063A820, 0x00000002, 0x4062BE35, 0x4063A820, - 0x00000002, 0x4062BE36, 0x4063A820, 0x00000002, 0x4062BE37, 0x4063A820, - 0x00000002, 0x4062BE38, 0x4063A820, 0x00000002, 0x4062BE39, 0x4063A820, - 0x00000002, 0x4062BE3A, 0x4063A820, 0x00000002, 0x4062BE3B, 0x4063A820, - 0x00000002, 0x4062BE3C, 0x4063A820, 0x00000002, 0x4062BE3D, 0x4063A820, - 0x00000002, 0x4062BE3E, 0x4063A820, 0x00000002, - // Block 427, offset 0x6ac0 - 0x4062BE3F, 0x4063A820, 0x00000002, 0x4062BE40, 0x4063A820, 0x00000002, - 0x4062BE41, 0x4063A820, 0x00000002, 0x4062BE42, 0x4063A820, 0x00000002, - 0x4062BE43, 0x4063A820, 0x00000002, 0x4062BE44, 0x4063A820, 0x00000002, - 0x4062BE45, 0x4063A820, 0x00000002, 0x4062BE46, 0x4063A820, 0x00000002, - 0x4062BE47, 0x4063A820, 0x00000002, 0x4062BE48, 0x4063A820, 0x00000002, - 0x4062BE49, 0x4063A820, 0x00000002, 0x4062BE4A, 0x4063A820, 0x00000002, - 0x4062BE4B, 0x4063A820, 0x00000002, 0x4062BE4C, 0x4063A820, 0x00000002, - 0x4062BE4D, 0x4063A820, 0x00000002, 0x4062BE4E, 0x4063A820, 0x00000002, - 0x4062BE4F, 0x4063A820, 0x00000002, 0x4062BE50, 0x4063A820, 0x00000002, - 0x4062BE51, 0x4063A820, 0x00000002, 0x4062BE52, 0x4063A820, 0x00000002, - 0x4062BE53, 0x4063A820, 0x00000002, 0x4062BE54, - // Block 428, offset 0x6b00 - 0x4063A820, 0x00000002, 0x4062BE55, 0x4063A820, 0x00000002, 0x4062BE56, - 0x4063A820, 0x00000002, 0x4062BE57, 0x4063A820, 0x00000002, 0x4062BE58, - 0x4063A820, 0x00000002, 0x4062BE59, 0x4063A820, 0x00000002, 0x4062BE5A, - 0x4063A820, 0x00000002, 0x4062BE5B, 0x4063A820, 0x00000002, 0x4062BE5C, - 0x4063A820, 0x00000002, 0x4062BE5D, 0x4063A820, 0x00000002, 0x4062BE5E, - 0x4063A820, 0x00000002, 0x4062BE5F, 0x4063A820, 0x00000002, 0x4062BE60, - 0x4063A820, 0x00000002, 0x4062BE61, 0x4063A820, 0x00000002, 0x4062BE62, - 0x4063A820, 0x00000002, 0x4062BE63, 0x4063A820, 0x00000002, 0x4062BE64, - 0x4063A820, 0x00000002, 0x4062BE65, 0x4063A820, 0x00000002, 0x4062BE66, - 0x4063A820, 0x00000002, 0x4062BE67, 0x4063A820, 0x00000002, 0x4062BE68, - 0x4063A820, 0x00000002, 0x4062BE69, 0x4063A820, - // Block 429, offset 0x6b40 - 0x00000002, 0x4062BE6A, 0x4063A820, 0x00000002, 0x4062BE6B, 0x4063A820, - 0x00000002, 0x4062BE6C, 0x4063A820, 0x00000002, 0x4062BE6D, 0x4063A820, - 0x00000002, 0x4062BE6E, 0x4063A820, 0x00000002, 0x4062BE6F, 0x4063A820, - 0x00000003, 0x4062BE21, 0x4063A820, 0x40646420, 0x00000003, 0x4062BE22, - 0x4063A820, 0x40646420, 0x00000003, 0x4062BE23, 0x4063A820, 0x40646420, - 0x00000003, 0x4062BE24, 0x4063A820, 0x40646420, 0x00000003, 0x4062BE25, - 0x4063A820, 0x40646420, 0x00000003, 0x4062BE26, 0x4063A820, 0x40646420, - 0x00000003, 0x4062BE21, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE22, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE23, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BE24, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE25, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE26, - // Block 430, offset 0x6b80 - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE27, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BE28, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE29, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE2A, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BE2B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE2C, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE2D, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BE2E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE2F, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE30, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BE31, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE32, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE33, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BE34, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE35, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE36, - // Block 431, offset 0x6bc0 - 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE37, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062BE38, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE21, - 0x4063A820, 0x40647220, 0x00000003, 0x4062BE22, 0x4063A820, 0x40647220, - 0x00000003, 0x4062BE23, 0x4063A820, 0x40647220, 0x00000003, 0x4062BE24, - 0x4063A820, 0x40647220, 0x00000003, 0x4062BE25, 0x4063A820, 0x40647220, - 0x00000003, 0x4062BE21, 0x4063A820, 0x40648220, 0x00000003, 0x4062BE22, - 0x4063A820, 0x40648220, 0x00000003, 0x4062BE23, 0x4063A820, 0x40648220, - 0x00000003, 0x4062BE24, 0x4063A820, 0x40648220, 0x00000003, 0x4062BE25, - 0x4063A820, 0x40648220, 0x00000003, 0x4062BE26, 0x4063A820, 0x40648220, - 0x00000003, 0x4062BE27, 0x4063A820, 0x40648220, 0x00000003, 0x4062BE28, - 0x4063A820, 0x40648220, 0x00000003, 0x4062BE29, - // Block 432, offset 0x6c00 - 0x4063A820, 0x40648220, 0x00000003, 0x4062BE2A, 0x4063A820, 0x40648220, - 0x00000003, 0x4062BE21, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE22, - 0x4063A820, 0x40648420, 0x00000003, 0x4062BE23, 0x4063A820, 0x40648420, - 0x00000003, 0x4062BE24, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE25, - 0x4063A820, 0x40648420, 0x00000003, 0x4062BE26, 0x4063A820, 0x40648420, - 0x00000003, 0x4062BE27, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE28, - 0x4063A820, 0x40648420, 0x00000003, 0x4062BE29, 0x4063A820, 0x40648420, - 0x00000003, 0x4062BE2A, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE2B, - 0x4063A820, 0x40648420, 0x00000003, 0x4062BE21, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BE22, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE23, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE24, - // Block 433, offset 0x6c40 - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE25, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BE26, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE27, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE28, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BE29, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE2A, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE2B, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BE2C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE2D, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE2E, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BE2F, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE30, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE31, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BE32, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE33, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE34, - // Block 434, offset 0x6c80 - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE35, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BE36, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE37, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE38, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BE39, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE3A, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE3B, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BE3C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE3D, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE3E, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BE3F, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE40, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE41, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BE42, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE43, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE44, - // Block 435, offset 0x6cc0 - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE45, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062BE46, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE47, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE48, 0x4063A820, 0x40648C20, - 0x00000002, 0x4062BE21, 0x4063AA20, 0x00000002, 0x4062BE22, 0x4063AA20, - 0x00000002, 0x4062BE23, 0x4063AA20, 0x00000002, 0x4062BE24, 0x4063AA20, - 0x00000003, 0x4062BE21, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE22, - 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE23, 0x4063AA20, 0x40646420, - 0x00000003, 0x4062BE24, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE25, - 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE26, 0x4063AA20, 0x40646420, - 0x00000003, 0x4062BE27, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE21, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062BE22, - // Block 436, offset 0x6d00 - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062BE23, 0x4063AA20, 0x40648C20, - 0x00000003, 0x4062BE24, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062BE25, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062BE26, 0x4063AA20, 0x40648C20, - 0x00000002, 0x4062BE21, 0x4063B020, 0x00000002, 0x4062BE22, 0x4063B020, - 0x00000002, 0x4062BE23, 0x4063B020, 0x00000002, 0x4062BE24, 0x4063B020, - 0x00000002, 0x4062BE25, 0x4063B020, 0x00000002, 0x4062BE26, 0x4063B020, - 0x00000002, 0x4062BE27, 0x4063B020, 0x00000002, 0x4062BE28, 0x4063B020, - 0x00000002, 0x4062BE29, 0x4063B020, 0x00000002, 0x4062BE2A, 0x4063B020, - 0x00000002, 0x4062BE2B, 0x4063B020, 0x00000002, 0x4062BE2C, 0x4063B020, - 0x00000002, 0x4062BE2D, 0x4063B020, 0x00000002, 0x4062BE2E, 0x4063B020, - 0x00000002, 0x4062BE2F, 0x4063B020, 0x00000002, - // Block 437, offset 0x6d40 - 0x4062BE30, 0x4063B020, 0x00000002, 0x4062BE31, 0x4063B020, 0x00000002, - 0x4062BE32, 0x4063B020, 0x00000002, 0x4062BE33, 0x4063B020, 0x00000002, - 0x4062BE34, 0x4063B020, 0x00000002, 0x4062BE35, 0x4063B020, 0x00000002, - 0x4062BE36, 0x4063B020, 0x00000002, 0x4062BE37, 0x4063B020, 0x00000002, - 0x4062BE38, 0x4063B020, 0x00000002, 0x4062BE39, 0x4063B020, 0x00000002, - 0x4062BE3A, 0x4063B020, 0x00000002, 0x4062BE3B, 0x4063B020, 0x00000002, - 0x4062BE3C, 0x4063B020, 0x00000002, 0x4062BE3D, 0x4063B020, 0x00000002, - 0x4062BE3E, 0x4063B020, 0x00000002, 0x4062BE3F, 0x4063B020, 0x00000002, - 0x4062BE40, 0x4063B020, 0x00000002, 0x4062BE41, 0x4063B020, 0x00000002, - 0x4062BE42, 0x4063B020, 0x00000002, 0x4062BE43, 0x4063B020, 0x00000002, - 0x4062BE44, 0x4063B020, 0x00000002, 0x4062BE45, - // Block 438, offset 0x6d80 - 0x4063B020, 0x00000002, 0x4062BE46, 0x4063B020, 0x00000002, 0x4062BE47, - 0x4063B020, 0x00000002, 0x4062BE48, 0x4063B020, 0x00000003, 0x4062BE21, - 0x4063B020, 0x40646420, 0x00000003, 0x4062BE22, 0x4063B020, 0x40646420, - 0x00000003, 0x4062BE23, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE24, - 0x4063B020, 0x40646420, 0x00000003, 0x4062BE25, 0x4063B020, 0x40646420, - 0x00000003, 0x4062BE26, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE27, - 0x4063B020, 0x40646420, 0x00000003, 0x4062BE28, 0x4063B020, 0x40646420, - 0x00000003, 0x4062BE29, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE2A, - 0x4063B020, 0x40646420, 0x00000003, 0x4062BE2B, 0x4063B020, 0x40646420, - 0x00000003, 0x4062BE2C, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE2D, - 0x4063B020, 0x40646420, 0x00000003, 0x4062BE2E, - // Block 439, offset 0x6dc0 - 0x4063B020, 0x40646420, 0x00000003, 0x4062BE2F, 0x4063B020, 0x40646420, - 0x00000003, 0x4062BE30, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE31, - 0x4063B020, 0x40646420, 0x00000003, 0x4062BE32, 0x4063B020, 0x40646420, - 0x00000003, 0x4062BE33, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE34, - 0x4063B020, 0x40646420, 0x00000003, 0x4062BE35, 0x4063B020, 0x40646420, - 0x00000003, 0x4062BE36, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE21, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE22, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE23, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE24, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE25, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE26, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE27, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE28, - // Block 440, offset 0x6e00 - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE29, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE2A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE2B, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE2C, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE2D, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE2E, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE2F, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE30, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE31, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE32, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE33, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE34, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE35, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE36, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE37, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE38, - // Block 441, offset 0x6e40 - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE39, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE3A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE3B, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE3C, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE3D, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE3E, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE3F, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE40, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE41, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE42, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE43, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE44, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE45, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE46, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE47, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE48, - // Block 442, offset 0x6e80 - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE49, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE4A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE4B, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE4C, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE4D, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE4E, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE4F, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062BE50, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE21, - 0x4063B020, 0x40647220, 0x00000003, 0x4062BE22, 0x4063B020, 0x40647220, - 0x00000003, 0x4062BE23, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE24, - 0x4063B020, 0x40647220, 0x00000003, 0x4062BE25, 0x4063B020, 0x40647220, - 0x00000003, 0x4062BE26, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE27, - 0x4063B020, 0x40647220, 0x00000003, 0x4062BE28, - // Block 443, offset 0x6ec0 - 0x4063B020, 0x40647220, 0x00000003, 0x4062BE29, 0x4063B020, 0x40647220, - 0x00000003, 0x4062BE2A, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE2B, - 0x4063B020, 0x40647220, 0x00000003, 0x4062BE2C, 0x4063B020, 0x40647220, - 0x00000003, 0x4062BE2D, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE2E, - 0x4063B020, 0x40647220, 0x00000003, 0x4062BE2F, 0x4063B020, 0x40647220, - 0x00000003, 0x4062BE30, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE31, - 0x4063B020, 0x40647220, 0x00000003, 0x4062BE32, 0x4063B020, 0x40647220, - 0x00000003, 0x4062BE33, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE34, - 0x4063B020, 0x40647220, 0x00000003, 0x4062BE35, 0x4063B020, 0x40647220, - 0x00000003, 0x4062BE21, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE22, - 0x4063B020, 0x40648220, 0x00000003, 0x4062BE23, - // Block 444, offset 0x6f00 - 0x4063B020, 0x40648220, 0x00000003, 0x4062BE24, 0x4063B020, 0x40648220, - 0x00000003, 0x4062BE25, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE26, - 0x4063B020, 0x40648220, 0x00000003, 0x4062BE27, 0x4063B020, 0x40648220, - 0x00000003, 0x4062BE28, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE29, - 0x4063B020, 0x40648220, 0x00000003, 0x4062BE2A, 0x4063B020, 0x40648220, - 0x00000003, 0x4062BE2B, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE2C, - 0x4063B020, 0x40648220, 0x00000003, 0x4062BE2D, 0x4063B020, 0x40648220, - 0x00000003, 0x4062BE2E, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE2F, - 0x4063B020, 0x40648220, 0x00000003, 0x4062BE21, 0x4063B020, 0x40648420, - 0x00000003, 0x4062BE22, 0x4063B020, 0x40648420, 0x00000003, 0x4062BE23, - 0x4063B020, 0x40648420, 0x00000003, 0x4062BE24, - // Block 445, offset 0x6f40 - 0x4063B020, 0x40648420, 0x00000003, 0x4062BE25, 0x4063B020, 0x40648420, - 0x00000003, 0x4062BE26, 0x4063B020, 0x40648420, 0x00000003, 0x4062BE27, - 0x4063B020, 0x40648420, 0x00000003, 0x4062BE28, 0x4063B020, 0x40648420, - 0x00000003, 0x4062BE29, 0x4063B020, 0x40648420, 0x00000003, 0x4062BE2A, - 0x4063B020, 0x40648420, 0x00000003, 0x4062BE21, 0x4063B020, 0x40648C20, - 0x00000003, 0x4062BE22, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE23, - 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE24, 0x4063B020, 0x40648C20, - 0x00000003, 0x4062BE25, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE26, - 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE27, 0x4063B020, 0x40648C20, - 0x00000003, 0x4062BE28, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE29, - 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE2A, - // Block 446, offset 0x6f80 - 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE2B, 0x4063B020, 0x40648C20, - 0x00000003, 0x4062BE2C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE2D, - 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE2E, 0x4063B020, 0x40648C20, - 0x00000003, 0x4062BE2F, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE30, - 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE31, 0x4063B020, 0x40648C20, - 0x00000003, 0x4062BE32, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE33, - 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE34, 0x4063B020, 0x40648C20, - 0x00000002, 0x4062BE21, 0x4063B220, 0x00000002, 0x4062BE22, 0x4063B220, - 0x00000002, 0x4062BE23, 0x4063B220, 0x00000002, 0x4062BE24, 0x4063B220, - 0x00000002, 0x4062BE25, 0x4063B220, 0x00000002, 0x4062BE26, 0x4063B220, - 0x00000002, 0x4062BE27, 0x4063B220, 0x00000002, - // Block 447, offset 0x6fc0 - 0x4062BE28, 0x4063B220, 0x00000002, 0x4062BE29, 0x4063B220, 0x00000002, - 0x4062BE2A, 0x4063B220, 0x00000002, 0x4062BE2B, 0x4063B220, 0x00000002, - 0x4062BE2C, 0x4063B220, 0x00000002, 0x4062BE21, 0x4063B820, 0x00000002, - 0x4062BE22, 0x4063B820, 0x00000002, 0x4062BE23, 0x4063B820, 0x00000002, - 0x4062BE24, 0x4063B820, 0x00000002, 0x4062BE25, 0x4063B820, 0x00000002, - 0x4062BE26, 0x4063B820, 0x00000002, 0x4062BE27, 0x4063B820, 0x00000002, - 0x4062BE28, 0x4063B820, 0x00000002, 0x4062BE29, 0x4063B820, 0x00000002, - 0x4062BE2A, 0x4063B820, 0x00000002, 0x4062BE2B, 0x4063B820, 0x00000002, - 0x4062BE2C, 0x4063B820, 0x00000002, 0x4062BE2D, 0x4063B820, 0x00000002, - 0x4062BE2E, 0x4063B820, 0x00000002, 0x4062BE2F, 0x4063B820, 0x00000002, - 0x4062BE30, 0x4063B820, 0x00000002, 0x4062BE31, - // Block 448, offset 0x7000 - 0x4063B820, 0x00000002, 0x4062BE32, 0x4063B820, 0x00000002, 0x4062BE33, - 0x4063B820, 0x00000002, 0x4062BE34, 0x4063B820, 0x00000002, 0x4062BE35, - 0x4063B820, 0x00000002, 0x4062BE36, 0x4063B820, 0x00000002, 0x4062BE37, - 0x4063B820, 0x00000002, 0x4062BE38, 0x4063B820, 0x00000002, 0x4062BE39, - 0x4063B820, 0x00000002, 0x4062BE3A, 0x4063B820, 0x00000002, 0x4062BE3B, - 0x4063B820, 0x00000002, 0x4062BE3C, 0x4063B820, 0x00000002, 0x4062BE3D, - 0x4063B820, 0x00000002, 0x4062BE3E, 0x4063B820, 0x00000002, 0x4062BE3F, - 0x4063B820, 0x00000002, 0x4062BE40, 0x4063B820, 0x00000002, 0x4062BE41, - 0x4063B820, 0x00000002, 0x4062BE42, 0x4063B820, 0x00000002, 0x4062BE43, - 0x4063B820, 0x00000002, 0x4062BE44, 0x4063B820, 0x00000002, 0x4062BE45, - 0x4063B820, 0x00000002, 0x4062BE46, 0x4063B820, - // Block 449, offset 0x7040 - 0x00000002, 0x4062BE47, 0x4063B820, 0x00000002, 0x4062BE48, 0x4063B820, - 0x00000002, 0x4062BE49, 0x4063B820, 0x00000002, 0x4062BE4A, 0x4063B820, - 0x00000002, 0x4062BE4B, 0x4063B820, 0x00000002, 0x4062BE4C, 0x4063B820, - 0x00000002, 0x4062BE4D, 0x4063B820, 0x00000002, 0x4062BE4E, 0x4063B820, - 0x00000002, 0x4062BE4F, 0x4063B820, 0x00000002, 0x4062BE50, 0x4063B820, - 0x00000002, 0x4062BE51, 0x4063B820, 0x00000002, 0x4062BE52, 0x4063B820, - 0x00000002, 0x4062BE53, 0x4063B820, 0x00000002, 0x4062BE54, 0x4063B820, - 0x00000002, 0x4062BE55, 0x4063B820, 0x00000002, 0x4062BE56, 0x4063B820, - 0x00000002, 0x4062BE57, 0x4063B820, 0x00000002, 0x4062BE58, 0x4063B820, - 0x00000002, 0x4062BE59, 0x4063B820, 0x00000002, 0x4062BE5A, 0x4063B820, - 0x00000002, 0x4062BE5B, 0x4063B820, 0x00000002, - // Block 450, offset 0x7080 - 0x4062BE5C, 0x4063B820, 0x00000003, 0x4062BE21, 0x4063B820, 0x40646420, - 0x00000003, 0x4062BE22, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE23, - 0x4063B820, 0x40646420, 0x00000003, 0x4062BE24, 0x4063B820, 0x40646420, - 0x00000003, 0x4062BE25, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE26, - 0x4063B820, 0x40646420, 0x00000003, 0x4062BE27, 0x4063B820, 0x40646420, - 0x00000003, 0x4062BE28, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE29, - 0x4063B820, 0x40646420, 0x00000003, 0x4062BE2A, 0x4063B820, 0x40646420, - 0x00000003, 0x4062BE2B, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE21, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE22, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062BE23, 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE24, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE25, - // Block 451, offset 0x70c0 - 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE26, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062BE27, 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE28, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE21, 0x4063B820, 0x40647220, - 0x00000003, 0x4062BE22, 0x4063B820, 0x40647220, 0x00000003, 0x4062BE23, - 0x4063B820, 0x40647220, 0x00000003, 0x4062BE21, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062BE22, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE23, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE24, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062BE25, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE26, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE27, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062BE28, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE29, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE2A, - // Block 452, offset 0x7100 - 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE2B, 0x4063B820, 0x40648C20, - 0x00000002, 0x4062BE21, 0x4063BC20, 0x00000002, 0x4062BE22, 0x4063BC20, - 0x00000002, 0x4062BE23, 0x4063BC20, 0x00000002, 0x4062BE24, 0x4063BC20, - 0x00000002, 0x4062BE25, 0x4063BC20, 0x00000002, 0x4062BE26, 0x4063BC20, - 0x00000002, 0x4062BE27, 0x4063BC20, 0x00000002, 0x4062BE21, 0x4063BE20, - 0x00000002, 0x4062BE22, 0x4063BE20, 0x00000002, 0x4062BE21, 0x4063C220, - 0x00000002, 0x4062BE22, 0x4063C220, 0x00000002, 0x4062BE23, 0x4063C220, - 0x00000002, 0x4062BE24, 0x4063C220, 0x00000002, 0x4062BE25, 0x4063C220, - 0x00000002, 0x4062BE26, 0x4063C220, 0x00000002, 0x4062BE27, 0x4063C220, - 0x00000002, 0x4062BE28, 0x4063C220, 0x00000002, 0x4062BE29, 0x4063C220, - 0x00000002, 0x4062BE2A, 0x4063C220, 0x00000002, - // Block 453, offset 0x7140 - 0x4062BE2B, 0x4063C220, 0x00000002, 0x4062BE2C, 0x4063C220, 0x00000002, - 0x4062BE2D, 0x4063C220, 0x00000002, 0x4062BE2E, 0x4063C220, 0x00000002, - 0x4062BE2F, 0x4063C220, 0x00000002, 0x4062BE30, 0x4063C220, 0x00000002, - 0x4062BE31, 0x4063C220, 0x00000002, 0x4062BE32, 0x4063C220, 0x00000002, - 0x4062BE33, 0x4063C220, 0x00000002, 0x4062BE34, 0x4063C220, 0x00000002, - 0x4062BE35, 0x4063C220, 0x00000002, 0x4062BE36, 0x4063C220, 0x00000002, - 0x4062BE37, 0x4063C220, 0x00000002, 0x4062BE38, 0x4063C220, 0x00000002, - 0x4062BE39, 0x4063C220, 0x00000002, 0x4062BE3A, 0x4063C220, 0x00000002, - 0x4062BE3B, 0x4063C220, 0x00000002, 0x4062BE3C, 0x4063C220, 0x00000002, - 0x4062BE3D, 0x4063C220, 0x00000002, 0x4062BE3E, 0x4063C220, 0x00000002, - 0x4062BE3F, 0x4063C220, 0x00000002, 0x4062BE40, - // Block 454, offset 0x7180 - 0x4063C220, 0x00000002, 0x4062BE41, 0x4063C220, 0x00000002, 0x4062BE42, - 0x4063C220, 0x00000002, 0x4062BE43, 0x4063C220, 0x00000002, 0x4062BE44, - 0x4063C220, 0x00000002, 0x4062BE45, 0x4063C220, 0x00000002, 0x4062BE46, - 0x4063C220, 0x00000002, 0x4062BE47, 0x4063C220, 0x00000002, 0x4062BE48, - 0x4063C220, 0x00000002, 0x4062BE49, 0x4063C220, 0x00000002, 0x4062BE4A, - 0x4063C220, 0x00000002, 0x4062BE4B, 0x4063C220, 0x00000002, 0x4062BE4C, - 0x4063C220, 0x00000002, 0x4062BE4D, 0x4063C220, 0x00000002, 0x4062BE4E, - 0x4063C220, 0x00000002, 0x4062BE4F, 0x4063C220, 0x00000002, 0x4062BE50, - 0x4063C220, 0x00000002, 0x4062BE51, 0x4063C220, 0x00000002, 0x4062BE52, - 0x4063C220, 0x00000002, 0x4062BE53, 0x4063C220, 0x00000002, 0x4062BE54, - 0x4063C220, 0x00000002, 0x4062BE55, 0x4063C220, - // Block 455, offset 0x71c0 - 0x00000002, 0x4062BE56, 0x4063C220, 0x00000002, 0x4062BE57, 0x4063C220, - 0x00000002, 0x4062BE58, 0x4063C220, 0x00000002, 0x4062BE59, 0x4063C220, - 0x00000002, 0x4062BE5A, 0x4063C220, 0x00000002, 0x4062BE5B, 0x4063C220, - 0x00000002, 0x4062BE5C, 0x4063C220, 0x00000002, 0x4062BE5D, 0x4063C220, - 0x00000002, 0x4062BE5E, 0x4063C220, 0x00000002, 0x4062BE5F, 0x4063C220, - 0x00000002, 0x4062BE60, 0x4063C220, 0x00000002, 0x4062BE61, 0x4063C220, - 0x00000002, 0x4062BE62, 0x4063C220, 0x00000002, 0x4062BE63, 0x4063C220, - 0x00000002, 0x4062BE64, 0x4063C220, 0x00000002, 0x4062BE65, 0x4063C220, - 0x00000002, 0x4062BE66, 0x4063C220, 0x00000002, 0x4062BE67, 0x4063C220, - 0x00000002, 0x4062BE68, 0x4063C220, 0x00000002, 0x4062BE69, 0x4063C220, - 0x00000002, 0x4062BE6A, 0x4063C220, 0x00000002, - // Block 456, offset 0x7200 - 0x4062BE6B, 0x4063C220, 0x00000002, 0x4062BE6C, 0x4063C220, 0x00000002, - 0x4062BE6D, 0x4063C220, 0x00000002, 0x4062BE6E, 0x4063C220, 0x00000002, - 0x4062BE6F, 0x4063C220, 0x00000002, 0x4062BE70, 0x4063C220, 0x00000002, - 0x4062BE71, 0x4063C220, 0x00000002, 0x4062BE72, 0x4063C220, 0x00000003, - 0x4062BE21, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE22, 0x4063C220, - 0x40646420, 0x00000003, 0x4062BE23, 0x4063C220, 0x40646420, 0x00000003, - 0x4062BE24, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE25, 0x4063C220, - 0x40646420, 0x00000003, 0x4062BE26, 0x4063C220, 0x40646420, 0x00000003, - 0x4062BE27, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE28, 0x4063C220, - 0x40646420, 0x00000003, 0x4062BE29, 0x4063C220, 0x40646420, 0x00000003, - 0x4062BE2A, 0x4063C220, 0x40646420, 0x00000003, - // Block 457, offset 0x7240 - 0x4062BE2B, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE2C, 0x4063C220, - 0x40646420, 0x00000003, 0x4062BE2D, 0x4063C220, 0x40646420, 0x00000003, - 0x4062BE2E, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE2F, 0x4063C220, - 0x40646420, 0x00000003, 0x4062BE30, 0x4063C220, 0x40646420, 0x00000003, - 0x4062BE31, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE32, 0x4063C220, - 0x40646420, 0x00000003, 0x4062BE33, 0x4063C220, 0x40646420, 0x00000003, - 0x4062BE21, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE22, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062BE23, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062BE24, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE25, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062BE26, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062BE27, 0x4063C220, 0x40646A20, 0x00000003, - // Block 458, offset 0x7280 - 0x4062BE28, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE29, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062BE2A, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062BE2B, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE2C, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062BE2D, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062BE2E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE2F, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062BE30, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062BE31, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE32, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062BE33, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062BE34, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE35, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062BE36, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062BE37, 0x4063C220, 0x40646A20, 0x00000003, - // Block 459, offset 0x72c0 - 0x4062BE38, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE39, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062BE3A, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062BE3B, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE3C, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062BE3D, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062BE3E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE3F, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062BE40, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062BE41, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE42, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062BE43, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062BE44, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE21, 0x4063C220, - 0x40647220, 0x00000003, 0x4062BE22, 0x4063C220, 0x40647220, 0x00000003, - 0x4062BE23, 0x4063C220, 0x40647220, 0x00000003, - // Block 460, offset 0x7300 - 0x4062BE24, 0x4063C220, 0x40647220, 0x00000003, 0x4062BE25, 0x4063C220, - 0x40647220, 0x00000003, 0x4062BE21, 0x4063C220, 0x40648C20, 0x00000003, - 0x4062BE22, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BE23, 0x4063C220, - 0x40648C20, 0x00000003, 0x4062BE24, 0x4063C220, 0x40648C20, 0x00000002, - 0x4062BE21, 0x4063C820, 0x00000002, 0x4062BE22, 0x4063C820, 0x00000002, - 0x4062BE23, 0x4063C820, 0x00000003, 0x4062BE21, 0x4063CC20, 0x40647220, - 0x00000003, 0x4062BE22, 0x4063CC20, 0x40647220, 0x00000003, 0x4062BE23, - 0x4063CC20, 0x40647220, 0x00000003, 0x4062BE24, 0x4063CC20, 0x40647220, - 0x00000003, 0x4062BE21, 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE22, - 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE23, 0x4063CC20, 0x40648420, - 0x00000003, 0x4062BE24, 0x4063CC20, 0x40648420, - // Block 461, offset 0x7340 - 0x00000003, 0x4062BE25, 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE26, - 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE27, 0x4063CC20, 0x40648420, - 0x00000003, 0x4062BE28, 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE21, - 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE22, 0x4063CC20, 0x40648C20, - 0x00000003, 0x4062BE23, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE24, - 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE25, 0x4063CC20, 0x40648C20, - 0x00000003, 0x4062BE26, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE27, - 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE28, 0x4063CC20, 0x40648C20, - 0x00000003, 0x4062BE29, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE2A, - 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE2B, 0x4063CC20, 0x40648C20, - 0x00000003, 0x4062BE2C, 0x4063CC20, 0x40648C20, - // Block 462, offset 0x7380 - 0x00000002, 0x4062BE21, 0x4063D020, 0x00000002, 0x4062BE22, 0x4063D020, - 0x00000002, 0x4062BE23, 0x4063D020, 0x00000002, 0x4062BE24, 0x4063D020, - 0x00000002, 0x4062BE25, 0x4063D020, 0x00000002, 0x4062BE26, 0x4063D020, - 0x00000002, 0x4062BE27, 0x4063D020, 0x00000002, 0x4062BE28, 0x4063D020, - 0x00000002, 0x4062BE29, 0x4063D020, 0x00000002, 0x4062BE2A, 0x4063D020, - 0x00000002, 0x4062BE2B, 0x4063D020, 0x00000002, 0x4062BE2C, 0x4063D020, - 0x00000002, 0x4062BE2D, 0x4063D020, 0x00000002, 0x4062BE2E, 0x4063D020, - 0x00000002, 0x4062BE2F, 0x4063D020, 0x00000002, 0x4062BE30, 0x4063D020, - 0x00000002, 0x4062BE31, 0x4063D020, 0x00000002, 0x4062BE32, 0x4063D020, - 0x00000002, 0x4062BE33, 0x4063D020, 0x00000002, 0x4062BE34, 0x4063D020, - 0x00000002, 0x4062BE35, 0x4063D020, 0x00000002, - // Block 463, offset 0x73c0 - 0x4062BE36, 0x4063D020, 0x00000002, 0x4062BE37, 0x4063D020, 0x00000002, - 0x4062BE38, 0x4063D020, 0x00000002, 0x4062BE39, 0x4063D020, 0x00000002, - 0x4062BE3A, 0x4063D020, 0x00000002, 0x4062BE3B, 0x4063D020, 0x00000002, - 0x4062BE3C, 0x4063D020, 0x00000002, 0x4062BE3D, 0x4063D020, 0x00000002, - 0x4062BE3E, 0x4063D020, 0x00000002, 0x4062BE3F, 0x4063D020, 0x00000002, - 0x4062BE40, 0x4063D020, 0x00000002, 0x4062BE41, 0x4063D020, 0x00000002, - 0x4062BE42, 0x4063D020, 0x00000002, 0x4062BE43, 0x4063D020, 0x00000002, - 0x4062BE44, 0x4063D020, 0x00000002, 0x4062BE45, 0x4063D020, 0x00000002, - 0x4062BE46, 0x4063D020, 0x00000002, 0x4062BE47, 0x4063D020, 0x00000002, - 0x4062BE48, 0x4063D020, 0x00000002, 0x4062BE49, 0x4063D020, 0x00000002, - 0x4062BE4A, 0x4063D020, 0x00000002, 0x4062BE4B, - // Block 464, offset 0x7400 - 0x4063D020, 0x00000002, 0x4062BE4C, 0x4063D020, 0x00000002, 0x4062BE4D, - 0x4063D020, 0x00000003, 0x4062BE21, 0x4063D020, 0x40646420, 0x00000003, - 0x4062BE22, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE23, 0x4063D020, - 0x40646420, 0x00000003, 0x4062BE24, 0x4063D020, 0x40646420, 0x00000003, - 0x4062BE25, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE26, 0x4063D020, - 0x40646420, 0x00000003, 0x4062BE27, 0x4063D020, 0x40646420, 0x00000003, - 0x4062BE28, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE29, 0x4063D020, - 0x40646420, 0x00000003, 0x4062BE2A, 0x4063D020, 0x40646420, 0x00000003, - 0x4062BE2B, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE2C, 0x4063D020, - 0x40646420, 0x00000003, 0x4062BE2D, 0x4063D020, 0x40646420, 0x00000003, - 0x4062BE2E, 0x4063D020, 0x40646420, 0x00000003, - // Block 465, offset 0x7440 - 0x4062BE2F, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE30, 0x4063D020, - 0x40646420, 0x00000003, 0x4062BE31, 0x4063D020, 0x40646420, 0x00000003, - 0x4062BE32, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE21, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BE22, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BE23, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE24, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BE25, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BE26, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE27, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BE28, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BE29, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE2A, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BE2B, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BE2C, 0x4063D020, 0x40646A20, 0x00000003, - // Block 466, offset 0x7480 - 0x4062BE2D, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE2E, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BE2F, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BE30, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE31, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BE32, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BE33, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE34, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BE35, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BE36, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE37, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BE38, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BE39, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE3A, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BE3B, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BE3C, 0x4063D020, 0x40646A20, 0x00000003, - // Block 467, offset 0x74c0 - 0x4062BE3D, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE3E, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BE3F, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062BE40, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE41, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062BE21, 0x4063D020, 0x40647220, 0x00000003, - 0x4062BE22, 0x4063D020, 0x40647220, 0x00000003, 0x4062BE23, 0x4063D020, - 0x40647220, 0x00000003, 0x4062BE24, 0x4063D020, 0x40647220, 0x00000003, - 0x4062BE25, 0x4063D020, 0x40647220, 0x00000003, 0x4062BE26, 0x4063D020, - 0x40647220, 0x00000003, 0x4062BE21, 0x4063D020, 0x40648220, 0x00000003, - 0x4062BE22, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE23, 0x4063D020, - 0x40648220, 0x00000003, 0x4062BE24, 0x4063D020, 0x40648220, 0x00000003, - 0x4062BE25, 0x4063D020, 0x40648220, 0x00000003, - // Block 468, offset 0x7500 - 0x4062BE26, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE27, 0x4063D020, - 0x40648220, 0x00000003, 0x4062BE28, 0x4063D020, 0x40648220, 0x00000003, - 0x4062BE29, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE2A, 0x4063D020, - 0x40648220, 0x00000003, 0x4062BE2B, 0x4063D020, 0x40648220, 0x00000003, - 0x4062BE2C, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE2D, 0x4063D020, - 0x40648220, 0x00000003, 0x4062BE2E, 0x4063D020, 0x40648220, 0x00000003, - 0x4062BE2F, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE21, 0x4063D020, - 0x40648420, 0x00000003, 0x4062BE22, 0x4063D020, 0x40648420, 0x00000003, - 0x4062BE23, 0x4063D020, 0x40648420, 0x00000003, 0x4062C021, 0x4063A820, - 0x40648C20, 0x00000002, 0x4062C021, 0x4063D020, 0x00000002, 0x4062C221, - 0x4063A820, 0x00000002, 0x4062C222, 0x4063A820, - // Block 469, offset 0x7540 - 0x00000002, 0x4062C223, 0x4063A820, 0x00000002, 0x4062C224, 0x4063A820, - 0x00000002, 0x4062C225, 0x4063A820, 0x00000002, 0x4062C226, 0x4063A820, - 0x00000002, 0x4062C227, 0x4063A820, 0x00000002, 0x4062C228, 0x4063A820, - 0x00000002, 0x4062C229, 0x4063A820, 0x00000002, 0x4062C22A, 0x4063A820, - 0x00000002, 0x4062C22B, 0x4063A820, 0x00000002, 0x4062C22C, 0x4063A820, - 0x00000002, 0x4062C22D, 0x4063A820, 0x00000002, 0x4062C22E, 0x4063A820, - 0x00000002, 0x4062C22F, 0x4063A820, 0x00000002, 0x4062C230, 0x4063A820, - 0x00000002, 0x4062C231, 0x4063A820, 0x00000002, 0x4062C232, 0x4063A820, - 0x00000002, 0x4062C233, 0x4063A820, 0x00000002, 0x4062C234, 0x4063A820, - 0x00000002, 0x4062C235, 0x4063A820, 0x00000002, 0x4062C236, 0x4063A820, - 0x00000002, 0x4062C237, 0x4063A820, 0x00000002, - // Block 470, offset 0x7580 - 0x4062C238, 0x4063A820, 0x00000002, 0x4062C239, 0x4063A820, 0x00000002, - 0x4062C23A, 0x4063A820, 0x00000002, 0x4062C23B, 0x4063A820, 0x00000002, - 0x4062C23C, 0x4063A820, 0x00000002, 0x4062C23D, 0x4063A820, 0x00000003, - 0x4062C221, 0x4063A820, 0x40646420, 0x00000003, 0x4062C222, 0x4063A820, - 0x40646420, 0x00000003, 0x4062C223, 0x4063A820, 0x40646420, 0x00000003, - 0x4062C224, 0x4063A820, 0x40646420, 0x00000003, 0x4062C225, 0x4063A820, - 0x40646420, 0x00000003, 0x4062C226, 0x4063A820, 0x40646420, 0x00000003, - 0x4062C227, 0x4063A820, 0x40646420, 0x00000003, 0x4062C228, 0x4063A820, - 0x40646420, 0x00000003, 0x4062C229, 0x4063A820, 0x40646420, 0x00000003, - 0x4062C22A, 0x4063A820, 0x40646420, 0x00000003, 0x4062C22B, 0x4063A820, - 0x40646420, 0x00000003, 0x4062C22C, 0x4063A820, - // Block 471, offset 0x75c0 - 0x40646420, 0x00000003, 0x4062C22D, 0x4063A820, 0x40646420, 0x00000003, - 0x4062C22E, 0x4063A820, 0x40646420, 0x00000003, 0x4062C22F, 0x4063A820, - 0x40646420, 0x00000003, 0x4062C230, 0x4063A820, 0x40646420, 0x00000003, - 0x4062C231, 0x4063A820, 0x40646420, 0x00000003, 0x4062C232, 0x4063A820, - 0x40646420, 0x00000003, 0x4062C233, 0x4063A820, 0x40646420, 0x00000003, - 0x4062C234, 0x4063A820, 0x40646420, 0x00000003, 0x4062C235, 0x4063A820, - 0x40646420, 0x00000003, 0x4062C236, 0x4063A820, 0x40646420, 0x00000003, - 0x4062C237, 0x4063A820, 0x40646420, 0x00000003, 0x4062C238, 0x4063A820, - 0x40646420, 0x00000003, 0x4062C239, 0x4063A820, 0x40646420, 0x00000003, - 0x4062C221, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C222, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062C223, 0x4063A820, - // Block 472, offset 0x7600 - 0x40646A20, 0x00000003, 0x4062C224, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062C225, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C226, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062C227, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062C228, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C229, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062C22A, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062C22B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C22C, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062C22D, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062C22E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C221, 0x4063A820, - 0x40647220, 0x00000003, 0x4062C222, 0x4063A820, 0x40647220, 0x00000003, - 0x4062C223, 0x4063A820, 0x40647220, 0x00000003, 0x4062C224, 0x4063A820, - 0x40647220, 0x00000003, 0x4062C225, 0x4063A820, - // Block 473, offset 0x7640 - 0x40647220, 0x00000003, 0x4062C226, 0x4063A820, 0x40647220, 0x00000003, - 0x4062C227, 0x4063A820, 0x40647220, 0x00000003, 0x4062C228, 0x4063A820, - 0x40647220, 0x00000003, 0x4062C229, 0x4063A820, 0x40647220, 0x00000003, - 0x4062C22A, 0x4063A820, 0x40647220, 0x00000003, 0x4062C22B, 0x4063A820, - 0x40647220, 0x00000003, 0x4062C22C, 0x4063A820, 0x40647220, 0x00000003, - 0x4062C221, 0x4063A820, 0x40648220, 0x00000003, 0x4062C222, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C223, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C224, 0x4063A820, 0x40648220, 0x00000003, 0x4062C225, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C226, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C227, 0x4063A820, 0x40648220, 0x00000003, 0x4062C228, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C229, 0x4063A820, - // Block 474, offset 0x7680 - 0x40648220, 0x00000003, 0x4062C22A, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C22B, 0x4063A820, 0x40648220, 0x00000003, 0x4062C22C, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C22D, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C22E, 0x4063A820, 0x40648220, 0x00000003, 0x4062C22F, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C230, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C231, 0x4063A820, 0x40648220, 0x00000003, 0x4062C232, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C233, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C221, 0x4063A820, 0x40648420, 0x00000003, 0x4062C222, 0x4063A820, - 0x40648420, 0x00000003, 0x4062C223, 0x4063A820, 0x40648420, 0x00000003, - 0x4062C224, 0x4063A820, 0x40648420, 0x00000003, 0x4062C221, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C222, 0x4063A820, - // Block 475, offset 0x76c0 - 0x40648C20, 0x00000003, 0x4062C223, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C224, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C225, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C226, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C227, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C228, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C229, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C22A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C22B, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C22C, 0x4063A820, 0x40648C20, 0x00000002, - 0x4062C221, 0x4063AA20, 0x00000002, 0x4062C222, 0x4063AA20, 0x00000002, - 0x4062C223, 0x4063AA20, 0x00000002, 0x4062C224, 0x4063AA20, 0x00000002, - 0x4062C225, 0x4063AA20, 0x00000002, 0x4062C226, 0x4063AA20, 0x00000002, - 0x4062C227, 0x4063AA20, 0x00000002, 0x4062C228, - // Block 476, offset 0x7700 - 0x4063AA20, 0x00000002, 0x4062C229, 0x4063AA20, 0x00000002, 0x4062C22A, - 0x4063AA20, 0x00000002, 0x4062C22B, 0x4063AA20, 0x00000002, 0x4062C22C, - 0x4063AA20, 0x00000002, 0x4062C22D, 0x4063AA20, 0x00000002, 0x4062C22E, - 0x4063AA20, 0x00000002, 0x4062C22F, 0x4063AA20, 0x00000002, 0x4062C230, - 0x4063AA20, 0x00000002, 0x4062C231, 0x4063AA20, 0x00000002, 0x4062C232, - 0x4063AA20, 0x00000002, 0x4062C233, 0x4063AA20, 0x00000002, 0x4062C234, - 0x4063AA20, 0x00000002, 0x4062C235, 0x4063AA20, 0x00000002, 0x4062C236, - 0x4063AA20, 0x00000002, 0x4062C237, 0x4063AA20, 0x00000002, 0x4062C238, - 0x4063AA20, 0x00000002, 0x4062C239, 0x4063AA20, 0x00000002, 0x4062C23A, - 0x4063AA20, 0x00000002, 0x4062C23B, 0x4063AA20, 0x00000002, 0x4062C23C, - 0x4063AA20, 0x00000002, 0x4062C23D, 0x4063AA20, - // Block 477, offset 0x7740 - 0x00000002, 0x4062C23E, 0x4063AA20, 0x00000002, 0x4062C23F, 0x4063AA20, - 0x00000003, 0x4062C221, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C222, - 0x4063AA20, 0x40646420, 0x00000003, 0x4062C223, 0x4063AA20, 0x40646420, - 0x00000003, 0x4062C224, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C225, - 0x4063AA20, 0x40646420, 0x00000003, 0x4062C226, 0x4063AA20, 0x40646420, - 0x00000003, 0x4062C227, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C228, - 0x4063AA20, 0x40646420, 0x00000003, 0x4062C229, 0x4063AA20, 0x40646420, - 0x00000003, 0x4062C22A, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C22B, - 0x4063AA20, 0x40646420, 0x00000003, 0x4062C221, 0x4063AA20, 0x40648C20, - 0x00000003, 0x4062C222, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C223, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C224, - // Block 478, offset 0x7780 - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C225, 0x4063AA20, 0x40648C20, - 0x00000003, 0x4062C226, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C227, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C228, 0x4063AA20, 0x40648C20, - 0x00000002, 0x4062C221, 0x4063AC20, 0x00000002, 0x4062C222, 0x4063AC20, - 0x00000002, 0x4062C223, 0x4063AC20, 0x00000002, 0x4062C224, 0x4063AC20, - 0x00000002, 0x4062C225, 0x4063AC20, 0x00000002, 0x4062C226, 0x4063AC20, - 0x00000002, 0x4062C227, 0x4063AC20, 0x00000002, 0x4062C228, 0x4063AC20, - 0x00000002, 0x4062C229, 0x4063AC20, 0x00000002, 0x4062C22A, 0x4063AC20, - 0x00000002, 0x4062C22B, 0x4063AC20, 0x00000003, 0x4062C221, 0x4063AC20, - 0x40646420, 0x00000003, 0x4062C222, 0x4063AC20, 0x40646420, 0x00000003, - 0x4062C223, 0x4063AC20, 0x40646420, 0x00000003, - // Block 479, offset 0x77c0 - 0x4062C224, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C225, 0x4063AC20, - 0x40646420, 0x00000003, 0x4062C226, 0x4063AC20, 0x40646420, 0x00000003, - 0x4062C227, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C228, 0x4063AC20, - 0x40646420, 0x00000003, 0x4062C229, 0x4063AC20, 0x40646420, 0x00000003, - 0x4062C22A, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C22B, 0x4063AC20, - 0x40646420, 0x00000003, 0x4062C22C, 0x4063AC20, 0x40646420, 0x00000003, - 0x4062C22D, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C22E, 0x4063AC20, - 0x40646420, 0x00000003, 0x4062C22F, 0x4063AC20, 0x40646420, 0x00000003, - 0x4062C221, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C222, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062C223, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062C224, 0x4063AC20, 0x40648C20, 0x00000003, - // Block 480, offset 0x7800 - 0x4062C225, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C226, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062C227, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062C228, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C229, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062C22A, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062C22B, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C22C, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062C22D, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062C22E, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C22F, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062C230, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062C231, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C232, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062C233, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062C234, 0x4063AC20, 0x40648C20, 0x00000003, - // Block 481, offset 0x7840 - 0x4062C235, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C236, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062C237, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062C238, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C239, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062C23A, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062C23B, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C23C, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062C23D, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062C23E, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C23F, 0x4063AC20, - 0x40648C20, 0x00000003, 0x4062C240, 0x4063AC20, 0x40648C20, 0x00000003, - 0x4062C241, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C242, 0x4063AC20, - 0x40648C20, 0x00000002, 0x4062C221, 0x4063B020, 0x00000002, 0x4062C222, - 0x4063B020, 0x00000002, 0x4062C223, 0x4063B020, - // Block 482, offset 0x7880 - 0x00000002, 0x4062C224, 0x4063B020, 0x00000002, 0x4062C225, 0x4063B020, - 0x00000002, 0x4062C226, 0x4063B020, 0x00000002, 0x4062C227, 0x4063B020, - 0x00000002, 0x4062C228, 0x4063B020, 0x00000002, 0x4062C229, 0x4063B020, - 0x00000002, 0x4062C22A, 0x4063B020, 0x00000002, 0x4062C22B, 0x4063B020, - 0x00000002, 0x4062C22C, 0x4063B020, 0x00000002, 0x4062C22D, 0x4063B020, - 0x00000002, 0x4062C22E, 0x4063B020, 0x00000003, 0x4062C221, 0x4063B020, - 0x40646420, 0x00000003, 0x4062C222, 0x4063B020, 0x40646420, 0x00000003, - 0x4062C223, 0x4063B020, 0x40646420, 0x00000003, 0x4062C224, 0x4063B020, - 0x40646420, 0x00000003, 0x4062C225, 0x4063B020, 0x40646420, 0x00000003, - 0x4062C226, 0x4063B020, 0x40646420, 0x00000003, 0x4062C221, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C222, 0x4063B020, - // Block 483, offset 0x78c0 - 0x40646A20, 0x00000003, 0x4062C223, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C224, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C225, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C226, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C227, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C228, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C229, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C22A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C22C, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C22D, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C221, 0x4063B020, - 0x40647220, 0x00000003, 0x4062C222, 0x4063B020, 0x40647220, 0x00000003, - 0x4062C223, 0x4063B020, 0x40647220, 0x00000003, 0x4062C221, 0x4063B020, - 0x40648220, 0x00000003, 0x4062C222, 0x4063B020, - // Block 484, offset 0x7900 - 0x40648220, 0x00000003, 0x4062C223, 0x4063B020, 0x40648220, 0x00000003, - 0x4062C224, 0x4063B020, 0x40648220, 0x00000003, 0x4062C225, 0x4063B020, - 0x40648220, 0x00000003, 0x4062C226, 0x4063B020, 0x40648220, 0x00000003, - 0x4062C227, 0x4063B020, 0x40648220, 0x00000003, 0x4062C228, 0x4063B020, - 0x40648220, 0x00000003, 0x4062C229, 0x4063B020, 0x40648220, 0x00000003, - 0x4062C22A, 0x4063B020, 0x40648220, 0x00000003, 0x4062C22B, 0x4063B020, - 0x40648220, 0x00000003, 0x4062C22C, 0x4063B020, 0x40648220, 0x00000003, - 0x4062C221, 0x4063B020, 0x40648420, 0x00000003, 0x4062C222, 0x4063B020, - 0x40648420, 0x00000003, 0x4062C223, 0x4063B020, 0x40648420, 0x00000003, - 0x4062C224, 0x4063B020, 0x40648420, 0x00000002, 0x4062C221, 0x4063B220, - 0x00000002, 0x4062C222, 0x4063B220, 0x00000003, - // Block 485, offset 0x7940 - 0x4062C221, 0x4063B220, 0x40646A20, 0x00000002, 0x4062C221, 0x4063B420, - 0x00000002, 0x4062C222, 0x4063B420, 0x00000002, 0x4062C223, 0x4063B420, - 0x00000002, 0x4062C224, 0x4063B420, 0x00000002, 0x4062C225, 0x4063B420, - 0x00000002, 0x4062C226, 0x4063B420, 0x00000002, 0x4062C227, 0x4063B420, - 0x00000002, 0x4062C228, 0x4063B420, 0x00000002, 0x4062C229, 0x4063B420, - 0x00000002, 0x4062C22A, 0x4063B420, 0x00000002, 0x4062C22B, 0x4063B420, - 0x00000002, 0x4062C22C, 0x4063B420, 0x00000002, 0x4062C22D, 0x4063B420, - 0x00000002, 0x4062C22E, 0x4063B420, 0x00000003, 0x4062C221, 0x4063B420, - 0x40646420, 0x00000003, 0x4062C222, 0x4063B420, 0x40646420, 0x00000003, - 0x4062C223, 0x4063B420, 0x40646420, 0x00000003, 0x4062C224, 0x4063B420, - 0x40646420, 0x00000003, 0x4062C225, 0x4063B420, - // Block 486, offset 0x7980 - 0x40646420, 0x00000003, 0x4062C226, 0x4063B420, 0x40646420, 0x00000003, - 0x4062C227, 0x4063B420, 0x40646420, 0x00000003, 0x4062C228, 0x4063B420, - 0x40646420, 0x00000003, 0x4062C229, 0x4063B420, 0x40646420, 0x00000003, - 0x4062C22A, 0x4063B420, 0x40646420, 0x00000003, 0x4062C22B, 0x4063B420, - 0x40646420, 0x00000003, 0x4062C22C, 0x4063B420, 0x40646420, 0x00000003, - 0x4062C22D, 0x4063B420, 0x40646420, 0x00000003, 0x4062C221, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C222, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C223, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C224, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C225, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C226, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C227, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C228, 0x4063B420, - // Block 487, offset 0x79c0 - 0x40646A20, 0x00000003, 0x4062C229, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C22A, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C22C, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C22D, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C22F, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C230, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C231, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C232, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C233, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C234, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C235, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C236, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C237, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C238, 0x4063B420, - // Block 488, offset 0x7a00 - 0x40646A20, 0x00000003, 0x4062C239, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C23A, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C23B, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C23C, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C23D, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C23E, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C23F, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C240, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C241, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C242, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C243, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C244, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C245, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C246, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C247, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C248, 0x4063B420, - // Block 489, offset 0x7a40 - 0x40646A20, 0x00000003, 0x4062C249, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C24A, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C24B, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062C24C, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062C221, 0x4063B420, 0x40647220, 0x00000003, 0x4062C222, 0x4063B420, - 0x40647220, 0x00000003, 0x4062C223, 0x4063B420, 0x40647220, 0x00000003, - 0x4062C224, 0x4063B420, 0x40647220, 0x00000003, 0x4062C225, 0x4063B420, - 0x40647220, 0x00000003, 0x4062C221, 0x4063B420, 0x40648220, 0x00000003, - 0x4062C222, 0x4063B420, 0x40648220, 0x00000003, 0x4062C223, 0x4063B420, - 0x40648220, 0x00000003, 0x4062C224, 0x4063B420, 0x40648220, 0x00000003, - 0x4062C225, 0x4063B420, 0x40648220, 0x00000003, 0x4062C226, 0x4063B420, - 0x40648220, 0x00000003, 0x4062C227, 0x4063B420, - // Block 490, offset 0x7a80 - 0x40648220, 0x00000003, 0x4062C228, 0x4063B420, 0x40648220, 0x00000003, - 0x4062C229, 0x4063B420, 0x40648220, 0x00000003, 0x4062C22A, 0x4063B420, - 0x40648220, 0x00000003, 0x4062C22B, 0x4063B420, 0x40648220, 0x00000003, - 0x4062C22C, 0x4063B420, 0x40648220, 0x00000003, 0x4062C22D, 0x4063B420, - 0x40648220, 0x00000003, 0x4062C22E, 0x4063B420, 0x40648220, 0x00000003, - 0x4062C22F, 0x4063B420, 0x40648220, 0x00000003, 0x4062C230, 0x4063B420, - 0x40648220, 0x00000003, 0x4062C231, 0x4063B420, 0x40648220, 0x00000003, - 0x4062C232, 0x4063B420, 0x40648220, 0x00000003, 0x4062C233, 0x4063B420, - 0x40648220, 0x00000003, 0x4062C234, 0x4063B420, 0x40648220, 0x00000003, - 0x4062C235, 0x4063B420, 0x40648220, 0x00000003, 0x4062C236, 0x4063B420, - 0x40648220, 0x00000003, 0x4062C221, 0x4063B420, - // Block 491, offset 0x7ac0 - 0x40648420, 0x00000003, 0x4062C222, 0x4063B420, 0x40648420, 0x00000003, - 0x4062C223, 0x4063B420, 0x40648420, 0x00000003, 0x4062C224, 0x4063B420, - 0x40648420, 0x00000003, 0x4062C225, 0x4063B420, 0x40648420, 0x00000003, - 0x4062C226, 0x4063B420, 0x40648420, 0x00000003, 0x4062C227, 0x4063B420, - 0x40648420, 0x00000003, 0x4062C221, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062C222, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C223, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062C224, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062C225, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C226, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062C227, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062C228, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C229, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062C22A, 0x4063B420, - // Block 492, offset 0x7b00 - 0x40648C20, 0x00000003, 0x4062C22B, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062C22C, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C22D, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062C22E, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062C22F, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C230, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062C231, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062C232, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C233, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062C234, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062C235, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C236, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062C237, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062C238, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C239, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062C23A, 0x4063B420, - // Block 493, offset 0x7b40 - 0x40648C20, 0x00000003, 0x4062C23B, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062C23C, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C23D, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062C23E, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062C23F, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C240, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062C241, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062C242, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C243, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062C244, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062C245, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C246, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062C247, 0x4063B420, 0x40648C20, 0x00000002, - 0x4062C221, 0x4063B620, 0x00000002, 0x4062C222, 0x4063B620, 0x00000002, - 0x4062C223, 0x4063B620, 0x00000002, 0x4062C224, - // Block 494, offset 0x7b80 - 0x4063B620, 0x00000002, 0x4062C225, 0x4063B620, 0x00000002, 0x4062C226, - 0x4063B620, 0x00000002, 0x4062C227, 0x4063B620, 0x00000002, 0x4062C228, - 0x4063B620, 0x00000002, 0x4062C229, 0x4063B620, 0x00000002, 0x4062C22A, - 0x4063B620, 0x00000002, 0x4062C22B, 0x4063B620, 0x00000002, 0x4062C22C, - 0x4063B620, 0x00000002, 0x4062C22D, 0x4063B620, 0x00000002, 0x4062C22E, - 0x4063B620, 0x00000002, 0x4062C22F, 0x4063B620, 0x00000002, 0x4062C230, - 0x4063B620, 0x00000002, 0x4062C231, 0x4063B620, 0x00000002, 0x4062C232, - 0x4063B620, 0x00000002, 0x4062C233, 0x4063B620, 0x00000002, 0x4062C234, - 0x4063B620, 0x00000002, 0x4062C235, 0x4063B620, 0x00000002, 0x4062C236, - 0x4063B620, 0x00000002, 0x4062C237, 0x4063B620, 0x00000002, 0x4062C238, - 0x4063B620, 0x00000002, 0x4062C239, 0x4063B620, - // Block 495, offset 0x7bc0 - 0x00000002, 0x4062C23A, 0x4063B620, 0x00000002, 0x4062C23B, 0x4063B620, - 0x00000002, 0x4062C23C, 0x4063B620, 0x00000002, 0x4062C23D, 0x4063B620, - 0x00000002, 0x4062C23E, 0x4063B620, 0x00000002, 0x4062C23F, 0x4063B620, - 0x00000002, 0x4062C240, 0x4063B620, 0x00000002, 0x4062C241, 0x4063B620, - 0x00000002, 0x4062C242, 0x4063B620, 0x00000002, 0x4062C243, 0x4063B620, - 0x00000002, 0x4062C244, 0x4063B620, 0x00000002, 0x4062C245, 0x4063B620, - 0x00000002, 0x4062C246, 0x4063B620, 0x00000002, 0x4062C247, 0x4063B620, - 0x00000002, 0x4062C221, 0x4063B820, 0x00000002, 0x4062C222, 0x4063B820, - 0x00000002, 0x4062C223, 0x4063B820, 0x00000002, 0x4062C224, 0x4063B820, - 0x00000002, 0x4062C225, 0x4063B820, 0x00000002, 0x4062C226, 0x4063B820, - 0x00000002, 0x4062C227, 0x4063B820, 0x00000002, - // Block 496, offset 0x7c00 - 0x4062C228, 0x4063B820, 0x00000002, 0x4062C229, 0x4063B820, 0x00000002, - 0x4062C22A, 0x4063B820, 0x00000002, 0x4062C22B, 0x4063B820, 0x00000002, - 0x4062C22C, 0x4063B820, 0x00000002, 0x4062C22D, 0x4063B820, 0x00000002, - 0x4062C22E, 0x4063B820, 0x00000002, 0x4062C22F, 0x4063B820, 0x00000002, - 0x4062C230, 0x4063B820, 0x00000002, 0x4062C231, 0x4063B820, 0x00000002, - 0x4062C232, 0x4063B820, 0x00000002, 0x4062C233, 0x4063B820, 0x00000002, - 0x4062C234, 0x4063B820, 0x00000002, 0x4062C235, 0x4063B820, 0x00000002, - 0x4062C236, 0x4063B820, 0x00000002, 0x4062C237, 0x4063B820, 0x00000002, - 0x4062C238, 0x4063B820, 0x00000002, 0x4062C239, 0x4063B820, 0x00000002, - 0x4062C23A, 0x4063B820, 0x00000002, 0x4062C23B, 0x4063B820, 0x00000002, - 0x4062C23C, 0x4063B820, 0x00000002, 0x4062C23D, - // Block 497, offset 0x7c40 - 0x4063B820, 0x00000002, 0x4062C23E, 0x4063B820, 0x00000002, 0x4062C23F, - 0x4063B820, 0x00000002, 0x4062C240, 0x4063B820, 0x00000002, 0x4062C241, - 0x4063B820, 0x00000002, 0x4062C242, 0x4063B820, 0x00000002, 0x4062C243, - 0x4063B820, 0x00000002, 0x4062C244, 0x4063B820, 0x00000002, 0x4062C245, - 0x4063B820, 0x00000002, 0x4062C246, 0x4063B820, 0x00000002, 0x4062C247, - 0x4063B820, 0x00000002, 0x4062C248, 0x4063B820, 0x00000002, 0x4062C249, - 0x4063B820, 0x00000002, 0x4062C24A, 0x4063B820, 0x00000002, 0x4062C24B, - 0x4063B820, 0x00000002, 0x4062C24C, 0x4063B820, 0x00000002, 0x4062C24D, - 0x4063B820, 0x00000002, 0x4062C24E, 0x4063B820, 0x00000002, 0x4062C24F, - 0x4063B820, 0x00000002, 0x4062C250, 0x4063B820, 0x00000002, 0x4062C251, - 0x4063B820, 0x00000002, 0x4062C252, 0x4063B820, - // Block 498, offset 0x7c80 - 0x00000002, 0x4062C253, 0x4063B820, 0x00000002, 0x4062C254, 0x4063B820, - 0x00000002, 0x4062C255, 0x4063B820, 0x00000002, 0x4062C256, 0x4063B820, - 0x00000003, 0x4062C221, 0x4063B820, 0x40646420, 0x00000003, 0x4062C222, - 0x4063B820, 0x40646420, 0x00000003, 0x4062C223, 0x4063B820, 0x40646420, - 0x00000003, 0x4062C224, 0x4063B820, 0x40646420, 0x00000003, 0x4062C225, - 0x4063B820, 0x40646420, 0x00000003, 0x4062C221, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062C222, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C223, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062C224, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062C225, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C226, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062C227, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062C228, 0x4063B820, 0x40646A20, - // Block 499, offset 0x7cc0 - 0x00000003, 0x4062C229, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C22A, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062C22C, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C22D, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062C22F, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C230, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062C231, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062C221, 0x4063B820, 0x40647220, 0x00000003, 0x4062C222, - 0x4063B820, 0x40647220, 0x00000003, 0x4062C223, 0x4063B820, 0x40647220, - 0x00000003, 0x4062C221, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C222, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062C223, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062C224, 0x4063B820, 0x40648C20, - // Block 500, offset 0x7d00 - 0x00000003, 0x4062C225, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C226, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062C227, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062C228, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C229, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062C22A, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062C22B, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C22C, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062C22D, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062C22E, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C22F, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062C230, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062C231, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C232, - 0x4063B820, 0x40648C20, 0x00000002, 0x4062C221, 0x4063BA20, 0x00000002, - 0x4062C222, 0x4063BA20, 0x00000002, 0x4062C223, - // Block 501, offset 0x7d40 - 0x4063BA20, 0x00000002, 0x4062C224, 0x4063BA20, 0x00000002, 0x4062C225, - 0x4063BA20, 0x00000002, 0x4062C226, 0x4063BA20, 0x00000002, 0x4062C227, - 0x4063BA20, 0x00000002, 0x4062C228, 0x4063BA20, 0x00000002, 0x4062C229, - 0x4063BA20, 0x00000002, 0x4062C22A, 0x4063BA20, 0x00000002, 0x4062C22B, - 0x4063BA20, 0x00000002, 0x4062C22C, 0x4063BA20, 0x00000002, 0x4062C22D, - 0x4063BA20, 0x00000002, 0x4062C22E, 0x4063BA20, 0x00000002, 0x4062C22F, - 0x4063BA20, 0x00000002, 0x4062C230, 0x4063BA20, 0x00000002, 0x4062C231, - 0x4063BA20, 0x00000003, 0x4062C221, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062C222, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C223, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062C224, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062C225, 0x4063BA20, 0x40646A20, 0x00000003, - // Block 502, offset 0x7d80 - 0x4062C226, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C227, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062C228, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062C229, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C22A, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062C22B, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062C22C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C22D, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062C22E, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062C22F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C230, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062C231, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062C232, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C233, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062C234, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062C235, 0x4063BA20, 0x40646A20, 0x00000003, - // Block 503, offset 0x7dc0 - 0x4062C236, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C237, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062C238, 0x4063BA20, 0x40646A20, 0x00000003, - 0x4062C239, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C23A, 0x4063BA20, - 0x40646A20, 0x00000003, 0x4062C221, 0x4063BA20, 0x40647220, 0x00000003, - 0x4062C221, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062C222, 0x4063BA20, - 0x40648C20, 0x00000003, 0x4062C223, 0x4063BA20, 0x40648C20, 0x00000003, - 0x4062C224, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062C225, 0x4063BA20, - 0x40648C20, 0x00000003, 0x4062C226, 0x4063BA20, 0x40648C20, 0x00000003, - 0x4062C227, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062C228, 0x4063BA20, - 0x40648C20, 0x00000002, 0x4062C221, 0x4063BC20, 0x00000002, 0x4062C222, - 0x4063BC20, 0x00000002, 0x4062C223, 0x4063BC20, - // Block 504, offset 0x7e00 - 0x00000002, 0x4062C224, 0x4063BC20, 0x00000002, 0x4062C225, 0x4063BC20, - 0x00000002, 0x4062C221, 0x4063BE20, 0x00000002, 0x4062C222, 0x4063BE20, - 0x00000002, 0x4062C223, 0x4063BE20, 0x00000002, 0x4062C224, 0x4063BE20, - 0x00000002, 0x4062C225, 0x4063BE20, 0x00000002, 0x4062C226, 0x4063BE20, - 0x00000002, 0x4062C227, 0x4063BE20, 0x00000002, 0x4062C228, 0x4063BE20, - 0x00000002, 0x4062C229, 0x4063BE20, 0x00000002, 0x4062C22A, 0x4063BE20, - 0x00000002, 0x4062C22B, 0x4063BE20, 0x00000002, 0x4062C22C, 0x4063BE20, - 0x00000002, 0x4062C22D, 0x4063BE20, 0x00000002, 0x4062C22E, 0x4063BE20, - 0x00000002, 0x4062C221, 0x4063C020, 0x00000002, 0x4062C222, 0x4063C020, - 0x00000002, 0x4062C223, 0x4063C020, 0x00000002, 0x4062C224, 0x4063C020, - 0x00000002, 0x4062C225, 0x4063C020, 0x00000002, - // Block 505, offset 0x7e40 - 0x4062C226, 0x4063C020, 0x00000002, 0x4062C227, 0x4063C020, 0x00000002, - 0x4062C228, 0x4063C020, 0x00000002, 0x4062C229, 0x4063C020, 0x00000002, - 0x4062C22A, 0x4063C020, 0x00000002, 0x4062C22B, 0x4063C020, 0x00000002, - 0x4062C22C, 0x4063C020, 0x00000002, 0x4062C22D, 0x4063C020, 0x00000002, - 0x4062C22E, 0x4063C020, 0x00000002, 0x4062C22F, 0x4063C020, 0x00000002, - 0x4062C230, 0x4063C020, 0x00000002, 0x4062C231, 0x4063C020, 0x00000002, - 0x4062C232, 0x4063C020, 0x00000002, 0x4062C233, 0x4063C020, 0x00000002, - 0x4062C234, 0x4063C020, 0x00000002, 0x4062C235, 0x4063C020, 0x00000002, - 0x4062C236, 0x4063C020, 0x00000002, 0x4062C237, 0x4063C020, 0x00000002, - 0x4062C238, 0x4063C020, 0x00000002, 0x4062C239, 0x4063C020, 0x00000002, - 0x4062C23A, 0x4063C020, 0x00000002, 0x4062C23B, - // Block 506, offset 0x7e80 - 0x4063C020, 0x00000002, 0x4062C23C, 0x4063C020, 0x00000002, 0x4062C23D, - 0x4063C020, 0x00000002, 0x4062C23E, 0x4063C020, 0x00000002, 0x4062C23F, - 0x4063C020, 0x00000002, 0x4062C240, 0x4063C020, 0x00000002, 0x4062C241, - 0x4063C020, 0x00000002, 0x4062C242, 0x4063C020, 0x00000002, 0x4062C243, - 0x4063C020, 0x00000002, 0x4062C244, 0x4063C020, 0x00000002, 0x4062C245, - 0x4063C020, 0x00000002, 0x4062C246, 0x4063C020, 0x00000002, 0x4062C247, - 0x4063C020, 0x00000002, 0x4062C248, 0x4063C020, 0x00000002, 0x4062C249, - 0x4063C020, 0x00000002, 0x4062C24A, 0x4063C020, 0x00000002, 0x4062C24B, - 0x4063C020, 0x00000002, 0x4062C24C, 0x4063C020, 0x00000003, 0x4062C221, - 0x4063C020, 0x40646420, 0x00000003, 0x4062C222, 0x4063C020, 0x40646420, - 0x00000003, 0x4062C223, 0x4063C020, 0x40646420, - // Block 507, offset 0x7ec0 - 0x00000003, 0x4062C224, 0x4063C020, 0x40646420, 0x00000003, 0x4062C225, - 0x4063C020, 0x40646420, 0x00000003, 0x4062C226, 0x4063C020, 0x40646420, - 0x00000003, 0x4062C227, 0x4063C020, 0x40646420, 0x00000003, 0x4062C228, - 0x4063C020, 0x40646420, 0x00000003, 0x4062C221, 0x4063C020, 0x40648C20, - 0x00000003, 0x4062C222, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C223, - 0x4063C020, 0x40648C20, 0x00000003, 0x4062C224, 0x4063C020, 0x40648C20, - 0x00000003, 0x4062C225, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C226, - 0x4063C020, 0x40648C20, 0x00000003, 0x4062C227, 0x4063C020, 0x40648C20, - 0x00000003, 0x4062C228, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C229, - 0x4063C020, 0x40648C20, 0x00000003, 0x4062C22A, 0x4063C020, 0x40648C20, - 0x00000003, 0x4062C22B, 0x4063C020, 0x40648C20, - // Block 508, offset 0x7f00 - 0x00000003, 0x4062C22C, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C22D, - 0x4063C020, 0x40648C20, 0x00000003, 0x4062C22E, 0x4063C020, 0x40648C20, - 0x00000003, 0x4062C22F, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C230, - 0x4063C020, 0x40648C20, 0x00000003, 0x4062C231, 0x4063C020, 0x40648C20, - 0x00000003, 0x4062C232, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C233, - 0x4063C020, 0x40648C20, 0x00000003, 0x4062C234, 0x4063C020, 0x40648C20, - 0x00000003, 0x4062C235, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C236, - 0x4063C020, 0x40648C20, 0x00000003, 0x4062C237, 0x4063C020, 0x40648C20, - 0x00000003, 0x4062C238, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C239, - 0x4063C020, 0x40648C20, 0x00000003, 0x4062C23A, 0x4063C020, 0x40648C20, - 0x00000003, 0x4062C23B, 0x4063C020, 0x40648C20, - // Block 509, offset 0x7f40 - 0x00000003, 0x4062C23C, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C23D, - 0x4063C020, 0x40648C20, 0x00000003, 0x4062C23E, 0x4063C020, 0x40648C20, - 0x00000003, 0x4062C23F, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C240, - 0x4063C020, 0x40648C20, 0x00000003, 0x4062C241, 0x4063C020, 0x40648C20, - 0x00000002, 0x4062C221, 0x4063C220, 0x00000002, 0x4062C222, 0x4063C220, - 0x00000002, 0x4062C223, 0x4063C220, 0x00000002, 0x4062C224, 0x4063C220, - 0x00000002, 0x4062C225, 0x4063C220, 0x00000002, 0x4062C226, 0x4063C220, - 0x00000002, 0x4062C227, 0x4063C220, 0x00000002, 0x4062C228, 0x4063C220, - 0x00000002, 0x4062C229, 0x4063C220, 0x00000002, 0x4062C22A, 0x4063C220, - 0x00000002, 0x4062C22B, 0x4063C220, 0x00000002, 0x4062C22C, 0x4063C220, - 0x00000002, 0x4062C22D, 0x4063C220, 0x00000002, - // Block 510, offset 0x7f80 - 0x4062C22E, 0x4063C220, 0x00000002, 0x4062C22F, 0x4063C220, 0x00000002, - 0x4062C230, 0x4063C220, 0x00000002, 0x4062C231, 0x4063C220, 0x00000002, - 0x4062C232, 0x4063C220, 0x00000002, 0x4062C233, 0x4063C220, 0x00000002, - 0x4062C234, 0x4063C220, 0x00000002, 0x4062C235, 0x4063C220, 0x00000002, - 0x4062C236, 0x4063C220, 0x00000002, 0x4062C237, 0x4063C220, 0x00000002, - 0x4062C238, 0x4063C220, 0x00000002, 0x4062C239, 0x4063C220, 0x00000002, - 0x4062C23A, 0x4063C220, 0x00000002, 0x4062C23B, 0x4063C220, 0x00000002, - 0x4062C23C, 0x4063C220, 0x00000002, 0x4062C23D, 0x4063C220, 0x00000002, - 0x4062C23E, 0x4063C220, 0x00000002, 0x4062C23F, 0x4063C220, 0x00000002, - 0x4062C240, 0x4063C220, 0x00000002, 0x4062C241, 0x4063C220, 0x00000002, - 0x4062C242, 0x4063C220, 0x00000002, 0x4062C243, - // Block 511, offset 0x7fc0 - 0x4063C220, 0x00000002, 0x4062C244, 0x4063C220, 0x00000002, 0x4062C245, - 0x4063C220, 0x00000002, 0x4062C246, 0x4063C220, 0x00000002, 0x4062C247, - 0x4063C220, 0x00000002, 0x4062C248, 0x4063C220, 0x00000002, 0x4062C249, - 0x4063C220, 0x00000002, 0x4062C24A, 0x4063C220, 0x00000002, 0x4062C24B, - 0x4063C220, 0x00000002, 0x4062C24C, 0x4063C220, 0x00000002, 0x4062C24D, - 0x4063C220, 0x00000002, 0x4062C24E, 0x4063C220, 0x00000002, 0x4062C24F, - 0x4063C220, 0x00000002, 0x4062C250, 0x4063C220, 0x00000002, 0x4062C251, - 0x4063C220, 0x00000002, 0x4062C252, 0x4063C220, 0x00000002, 0x4062C253, - 0x4063C220, 0x00000002, 0x4062C254, 0x4063C220, 0x00000003, 0x4062C221, - 0x4063C220, 0x40646420, 0x00000003, 0x4062C222, 0x4063C220, 0x40646420, - 0x00000003, 0x4062C223, 0x4063C220, 0x40646420, - // Block 512, offset 0x8000 - 0x00000003, 0x4062C224, 0x4063C220, 0x40646420, 0x00000003, 0x4062C225, - 0x4063C220, 0x40646420, 0x00000003, 0x4062C226, 0x4063C220, 0x40646420, - 0x00000003, 0x4062C227, 0x4063C220, 0x40646420, 0x00000003, 0x4062C228, - 0x4063C220, 0x40646420, 0x00000003, 0x4062C229, 0x4063C220, 0x40646420, - 0x00000003, 0x4062C22A, 0x4063C220, 0x40646420, 0x00000003, 0x4062C221, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062C222, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062C223, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C224, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062C225, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062C226, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C227, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062C228, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062C229, 0x4063C220, 0x40646A20, - // Block 513, offset 0x8040 - 0x00000003, 0x4062C22A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C22B, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062C22C, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062C22D, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C22E, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062C22F, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062C230, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C231, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062C232, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062C221, 0x4063C220, 0x40647220, 0x00000003, 0x4062C222, - 0x4063C220, 0x40647220, 0x00000003, 0x4062C223, 0x4063C220, 0x40647220, - 0x00000003, 0x4062C221, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C222, - 0x4063C220, 0x40648C20, 0x00000003, 0x4062C221, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062C222, 0x4063C420, 0x40646A20, - // Block 514, offset 0x8080 - 0x00000003, 0x4062C223, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C224, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062C225, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062C226, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C227, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062C228, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062C229, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C22A, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062C22C, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C22D, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062C22F, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C230, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062C231, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062C232, 0x4063C420, 0x40646A20, - // Block 515, offset 0x80c0 - 0x00000003, 0x4062C233, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C234, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062C235, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062C236, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C237, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062C238, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062C239, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C23A, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062C23B, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062C23C, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C23D, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062C23E, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062C23F, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C240, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062C241, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062C242, 0x4063C420, 0x40646A20, - // Block 516, offset 0x8100 - 0x00000003, 0x4062C243, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C244, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062C245, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062C246, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C247, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062C248, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062C221, 0x4063C420, 0x40647220, 0x00000003, 0x4062C222, - 0x4063C420, 0x40647220, 0x00000003, 0x4062C223, 0x4063C420, 0x40647220, - 0x00000003, 0x4062C224, 0x4063C420, 0x40647220, 0x00000003, 0x4062C225, - 0x4063C420, 0x40647220, 0x00000002, 0x4062C221, 0x4063C820, 0x00000002, - 0x4062C222, 0x4063C820, 0x00000002, 0x4062C223, 0x4063C820, 0x00000002, - 0x4062C224, 0x4063C820, 0x00000002, 0x4062C225, 0x4063C820, 0x00000002, - 0x4062C226, 0x4063C820, 0x00000002, 0x4062C227, - // Block 517, offset 0x8140 - 0x4063C820, 0x00000002, 0x4062C228, 0x4063C820, 0x00000002, 0x4062C229, - 0x4063C820, 0x00000002, 0x4062C22A, 0x4063C820, 0x00000002, 0x4062C22B, - 0x4063C820, 0x00000002, 0x4062C22C, 0x4063C820, 0x00000002, 0x4062C22D, - 0x4063C820, 0x00000002, 0x4062C22E, 0x4063C820, 0x00000002, 0x4062C22F, - 0x4063C820, 0x00000002, 0x4062C230, 0x4063C820, 0x00000002, 0x4062C231, - 0x4063C820, 0x00000002, 0x4062C232, 0x4063C820, 0x00000002, 0x4062C233, - 0x4063C820, 0x00000002, 0x4062C234, 0x4063C820, 0x00000002, 0x4062C235, - 0x4063C820, 0x00000002, 0x4062C236, 0x4063C820, 0x00000002, 0x4062C237, - 0x4063C820, 0x00000002, 0x4062C238, 0x4063C820, 0x00000002, 0x4062C239, - 0x4063C820, 0x00000002, 0x4062C23A, 0x4063C820, 0x00000002, 0x4062C23B, - 0x4063C820, 0x00000002, 0x4062C23C, 0x4063C820, - // Block 518, offset 0x8180 - 0x00000002, 0x4062C23D, 0x4063C820, 0x00000002, 0x4062C23E, 0x4063C820, - 0x00000002, 0x4062C23F, 0x4063C820, 0x00000002, 0x4062C240, 0x4063C820, - 0x00000002, 0x4062C241, 0x4063C820, 0x00000002, 0x4062C242, 0x4063C820, - 0x00000002, 0x4062C243, 0x4063C820, 0x00000002, 0x4062C244, 0x4063C820, - 0x00000002, 0x4062C245, 0x4063C820, 0x00000002, 0x4062C246, 0x4063C820, - 0x00000002, 0x4062C247, 0x4063C820, 0x00000002, 0x4062C221, 0x4063CA20, - 0x00000002, 0x4062C222, 0x4063CA20, 0x00000002, 0x4062C223, 0x4063CA20, - 0x00000002, 0x4062C224, 0x4063CA20, 0x00000002, 0x4062C225, 0x4063CA20, - 0x00000002, 0x4062C226, 0x4063CA20, 0x00000002, 0x4062C227, 0x4063CA20, - 0x00000002, 0x4062C228, 0x4063CA20, 0x00000002, 0x4062C229, 0x4063CA20, - 0x00000002, 0x4062C22A, 0x4063CA20, 0x00000002, - // Block 519, offset 0x81c0 - 0x4062C22B, 0x4063CA20, 0x00000002, 0x4062C22C, 0x4063CA20, 0x00000002, - 0x4062C22D, 0x4063CA20, 0x00000002, 0x4062C22E, 0x4063CA20, 0x00000002, - 0x4062C22F, 0x4063CA20, 0x00000002, 0x4062C230, 0x4063CA20, 0x00000002, - 0x4062C231, 0x4063CA20, 0x00000002, 0x4062C232, 0x4063CA20, 0x00000002, - 0x4062C233, 0x4063CA20, 0x00000002, 0x4062C234, 0x4063CA20, 0x00000002, - 0x4062C235, 0x4063CA20, 0x00000002, 0x4062C236, 0x4063CA20, 0x00000002, - 0x4062C237, 0x4063CA20, 0x00000002, 0x4062C238, 0x4063CA20, 0x00000002, - 0x4062C239, 0x4063CA20, 0x00000002, 0x4062C23A, 0x4063CA20, 0x00000002, - 0x4062C23B, 0x4063CA20, 0x00000002, 0x4062C23C, 0x4063CA20, 0x00000002, - 0x4062C23D, 0x4063CA20, 0x00000002, 0x4062C23E, 0x4063CA20, 0x00000002, - 0x4062C23F, 0x4063CA20, 0x00000002, 0x4062C240, - // Block 520, offset 0x8200 - 0x4063CA20, 0x00000002, 0x4062C241, 0x4063CA20, 0x00000002, 0x4062C242, - 0x4063CA20, 0x00000002, 0x4062C243, 0x4063CA20, 0x00000002, 0x4062C244, - 0x4063CA20, 0x00000002, 0x4062C245, 0x4063CA20, 0x00000002, 0x4062C246, - 0x4063CA20, 0x00000002, 0x4062C247, 0x4063CA20, 0x00000002, 0x4062C248, - 0x4063CA20, 0x00000002, 0x4062C249, 0x4063CA20, 0x00000002, 0x4062C24A, - 0x4063CA20, 0x00000002, 0x4062C24B, 0x4063CA20, 0x00000002, 0x4062C24C, - 0x4063CA20, 0x00000002, 0x4062C24D, 0x4063CA20, 0x00000002, 0x4062C24E, - 0x4063CA20, 0x00000002, 0x4062C24F, 0x4063CA20, 0x00000002, 0x4062C250, - 0x4063CA20, 0x00000002, 0x4062C251, 0x4063CA20, 0x00000002, 0x4062C252, - 0x4063CA20, 0x00000002, 0x4062C253, 0x4063CA20, 0x00000002, 0x4062C254, - 0x4063CA20, 0x00000002, 0x4062C255, 0x4063CA20, - // Block 521, offset 0x8240 - 0x00000002, 0x4062C256, 0x4063CA20, 0x00000002, 0x4062C257, 0x4063CA20, - 0x00000002, 0x4062C258, 0x4063CA20, 0x00000002, 0x4062C259, 0x4063CA20, - 0x00000002, 0x4062C25A, 0x4063CA20, 0x00000002, 0x4062C25B, 0x4063CA20, - 0x00000002, 0x4062C25C, 0x4063CA20, 0x00000002, 0x4062C25D, 0x4063CA20, - 0x00000002, 0x4062C25E, 0x4063CA20, 0x00000002, 0x4062C25F, 0x4063CA20, - 0x00000002, 0x4062C260, 0x4063CA20, 0x00000002, 0x4062C261, 0x4063CA20, - 0x00000002, 0x4062C262, 0x4063CA20, 0x00000002, 0x4062C263, 0x4063CA20, - 0x00000002, 0x4062C264, 0x4063CA20, 0x00000002, 0x4062C265, 0x4063CA20, - 0x00000002, 0x4062C266, 0x4063CA20, 0x00000002, 0x4062C267, 0x4063CA20, - 0x00000002, 0x4062C268, 0x4063CA20, 0x00000002, 0x4062C269, 0x4063CA20, - 0x00000002, 0x4062C26A, 0x4063CA20, 0x00000002, - // Block 522, offset 0x8280 - 0x4062C26B, 0x4063CA20, 0x00000002, 0x4062C26C, 0x4063CA20, 0x00000002, - 0x4062C26D, 0x4063CA20, 0x00000003, 0x4062C221, 0x4063CA20, 0x40646420, - 0x00000003, 0x4062C222, 0x4063CA20, 0x40646420, 0x00000003, 0x4062C223, - 0x4063CA20, 0x40646420, 0x00000003, 0x4062C224, 0x4063CA20, 0x40646420, - 0x00000003, 0x4062C225, 0x4063CA20, 0x40646420, 0x00000003, 0x4062C221, - 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C222, 0x4063CA20, 0x40646A20, - 0x00000003, 0x4062C223, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C224, - 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C225, 0x4063CA20, 0x40646A20, - 0x00000003, 0x4062C226, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C227, - 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C228, 0x4063CA20, 0x40646A20, - 0x00000003, 0x4062C229, 0x4063CA20, 0x40646A20, - // Block 523, offset 0x82c0 - 0x00000003, 0x4062C22A, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C22B, - 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C221, 0x4063CA20, 0x40647220, - 0x00000003, 0x4062C222, 0x4063CA20, 0x40647220, 0x00000003, 0x4062C223, - 0x4063CA20, 0x40647220, 0x00000003, 0x4062C221, 0x4063CA20, 0x40648C20, - 0x00000003, 0x4062C222, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062C223, - 0x4063CA20, 0x40648C20, 0x00000003, 0x4062C224, 0x4063CA20, 0x40648C20, - 0x00000003, 0x4062C225, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062C221, - 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C222, 0x4063CC20, 0x40646A20, - 0x00000003, 0x4062C223, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C224, - 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C225, 0x4063CC20, 0x40646A20, - 0x00000003, 0x4062C226, 0x4063CC20, 0x40646A20, - // Block 524, offset 0x8300 - 0x00000003, 0x4062C227, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C228, - 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C229, 0x4063CC20, 0x40646A20, - 0x00000003, 0x4062C22A, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C22B, - 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C22C, 0x4063CC20, 0x40646A20, - 0x00000003, 0x4062C22D, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C22E, - 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C22F, 0x4063CC20, 0x40646A20, - 0x00000003, 0x4062C230, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C231, - 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C232, 0x4063CC20, 0x40646A20, - 0x00000003, 0x4062C233, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C234, - 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C221, 0x4063CC20, 0x40647220, - 0x00000003, 0x4062C222, 0x4063CC20, 0x40647220, - // Block 525, offset 0x8340 - 0x00000003, 0x4062C221, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C222, - 0x4063CC20, 0x40648220, 0x00000003, 0x4062C223, 0x4063CC20, 0x40648220, - 0x00000003, 0x4062C224, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C225, - 0x4063CC20, 0x40648220, 0x00000003, 0x4062C226, 0x4063CC20, 0x40648220, - 0x00000003, 0x4062C227, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C228, - 0x4063CC20, 0x40648220, 0x00000003, 0x4062C229, 0x4063CC20, 0x40648220, - 0x00000003, 0x4062C22A, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C22B, - 0x4063CC20, 0x40648220, 0x00000003, 0x4062C221, 0x4063CC20, 0x40648420, - 0x00000003, 0x4062C222, 0x4063CC20, 0x40648420, 0x00000003, 0x4062C223, - 0x4063CC20, 0x40648420, 0x00000003, 0x4062C224, 0x4063CC20, 0x40648420, - 0x00000003, 0x4062C225, 0x4063CC20, 0x40648420, - // Block 526, offset 0x8380 - 0x00000003, 0x4062C226, 0x4063CC20, 0x40648420, 0x00000003, 0x4062C221, - 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C222, 0x4063CC20, 0x40648C20, - 0x00000003, 0x4062C223, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C224, - 0x4063CC20, 0x40648C20, 0x00000002, 0x4062C221, 0x4063CE20, 0x00000002, - 0x4062C222, 0x4063CE20, 0x00000002, 0x4062C223, 0x4063CE20, 0x00000002, - 0x4062C224, 0x4063CE20, 0x00000002, 0x4062C225, 0x4063CE20, 0x00000002, - 0x4062C226, 0x4063CE20, 0x00000002, 0x4062C227, 0x4063CE20, 0x00000002, - 0x4062C228, 0x4063CE20, 0x00000002, 0x4062C229, 0x4063CE20, 0x00000002, - 0x4062C22A, 0x4063CE20, 0x00000002, 0x4062C22B, 0x4063CE20, 0x00000002, - 0x4062C22C, 0x4063CE20, 0x00000002, 0x4062C22D, 0x4063CE20, 0x00000002, - 0x4062C22E, 0x4063CE20, 0x00000002, 0x4062C22F, - // Block 527, offset 0x83c0 - 0x4063CE20, 0x00000002, 0x4062C230, 0x4063CE20, 0x00000002, 0x4062C231, - 0x4063CE20, 0x00000002, 0x4062C232, 0x4063CE20, 0x00000002, 0x4062C233, - 0x4063CE20, 0x00000002, 0x4062C234, 0x4063CE20, 0x00000002, 0x4062C235, - 0x4063CE20, 0x00000002, 0x4062C236, 0x4063CE20, 0x00000002, 0x4062C237, - 0x4063CE20, 0x00000002, 0x4062C238, 0x4063CE20, 0x00000002, 0x4062C239, - 0x4063CE20, 0x00000002, 0x4062C23A, 0x4063CE20, 0x00000002, 0x4062C23B, - 0x4063CE20, 0x00000002, 0x4062C23C, 0x4063CE20, 0x00000002, 0x4062C23D, - 0x4063CE20, 0x00000002, 0x4062C221, 0x4063D020, 0x00000002, 0x4062C222, - 0x4063D020, 0x00000002, 0x4062C223, 0x4063D020, 0x00000002, 0x4062C224, - 0x4063D020, 0x00000002, 0x4062C225, 0x4063D020, 0x00000002, 0x4062C226, - 0x4063D020, 0x00000002, 0x4062C227, 0x4063D020, - // Block 528, offset 0x8400 - 0x00000002, 0x4062C228, 0x4063D020, 0x00000002, 0x4062C229, 0x4063D020, - 0x00000002, 0x4062C22A, 0x4063D020, 0x00000002, 0x4062C22B, 0x4063D020, - 0x00000002, 0x4062C22C, 0x4063D020, 0x00000002, 0x4062C22D, 0x4063D020, - 0x00000002, 0x4062C22E, 0x4063D020, 0x00000002, 0x4062C22F, 0x4063D020, - 0x00000002, 0x4062C230, 0x4063D020, 0x00000002, 0x4062C231, 0x4063D020, - 0x00000002, 0x4062C232, 0x4063D020, 0x00000002, 0x4062C233, 0x4063D020, - 0x00000002, 0x4062C234, 0x4063D020, 0x00000002, 0x4062C235, 0x4063D020, - 0x00000002, 0x4062C236, 0x4063D020, 0x00000002, 0x4062C237, 0x4063D020, - 0x00000002, 0x4062C238, 0x4063D020, 0x00000002, 0x4062C239, 0x4063D020, - 0x00000002, 0x4062C23A, 0x4063D020, 0x00000002, 0x4062C23B, 0x4063D020, - 0x00000002, 0x4062C23C, 0x4063D020, 0x00000002, - // Block 529, offset 0x8440 - 0x4062C23D, 0x4063D020, 0x00000002, 0x4062C23E, 0x4063D020, 0x00000002, - 0x4062C23F, 0x4063D020, 0x00000002, 0x4062C240, 0x4063D020, 0x00000002, - 0x4062C241, 0x4063D020, 0x00000002, 0x4062C242, 0x4063D020, 0x00000002, - 0x4062C243, 0x4063D020, 0x00000003, 0x4062C221, 0x4063D020, 0x40646420, - 0x00000003, 0x4062C222, 0x4063D020, 0x40646420, 0x00000003, 0x4062C223, - 0x4063D020, 0x40646420, 0x00000003, 0x4062C224, 0x4063D020, 0x40646420, - 0x00000003, 0x4062C225, 0x4063D020, 0x40646420, 0x00000003, 0x4062C226, - 0x4063D020, 0x40646420, 0x00000003, 0x4062C227, 0x4063D020, 0x40646420, - 0x00000003, 0x4062C228, 0x4063D020, 0x40646420, 0x00000003, 0x4062C229, - 0x4063D020, 0x40646420, 0x00000003, 0x4062C221, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062C222, 0x4063D020, 0x40646A20, - // Block 530, offset 0x8480 - 0x00000003, 0x4062C223, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C224, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062C225, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062C226, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C227, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062C228, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062C229, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C22A, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062C22C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C22D, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062C22F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C230, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062C231, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062C232, 0x4063D020, 0x40646A20, - // Block 531, offset 0x84c0 - 0x00000003, 0x4062C233, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C234, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062C235, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062C236, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C237, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062C238, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062C239, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C23A, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062C23B, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062C23C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C221, - 0x4063D020, 0x40647220, 0x00000003, 0x4062C222, 0x4063D020, 0x40647220, - 0x00000003, 0x4062C223, 0x4063D020, 0x40647220, 0x00000003, 0x4062C224, - 0x4063D020, 0x40647220, 0x00000003, 0x4062C225, 0x4063D020, 0x40647220, - 0x00000003, 0x4062C226, 0x4063D020, 0x40647220, - // Block 532, offset 0x8500 - 0x00000003, 0x4062C227, 0x4063D020, 0x40647220, 0x00000003, 0x4062C228, - 0x4063D020, 0x40647220, 0x00000003, 0x4062C229, 0x4063D020, 0x40647220, - 0x00000003, 0x4062C22A, 0x4063D020, 0x40647220, 0x00000003, 0x4062C22B, - 0x4063D020, 0x40647220, 0x00000003, 0x4062C221, 0x4063D020, 0x40648220, - 0x00000003, 0x4062C222, 0x4063D020, 0x40648220, 0x00000003, 0x4062C223, - 0x4063D020, 0x40648220, 0x00000003, 0x4062C224, 0x4063D020, 0x40648220, - 0x00000003, 0x4062C225, 0x4063D020, 0x40648220, 0x00000003, 0x4062C226, - 0x4063D020, 0x40648220, 0x00000003, 0x4062C227, 0x4063D020, 0x40648220, - 0x00000003, 0x4062C228, 0x4063D020, 0x40648220, 0x00000003, 0x4062C229, - 0x4063D020, 0x40648220, 0x00000003, 0x4062C22A, 0x4063D020, 0x40648220, - 0x00000003, 0x4062C22B, 0x4063D020, 0x40648220, - // Block 533, offset 0x8540 - 0x00000003, 0x4062C22C, 0x4063D020, 0x40648220, 0x00000003, 0x4062C221, - 0x4063D020, 0x40648420, 0x00000003, 0x4062C222, 0x4063D020, 0x40648420, - 0x00000003, 0x4062C223, 0x4063D020, 0x40648420, 0x00000003, 0x4062C221, - 0x4063D020, 0x40648C20, 0x00000003, 0x4062C222, 0x4063D020, 0x40648C20, - 0x00000003, 0x4062C223, 0x4063D020, 0x40648C20, 0x00000003, 0x4062C224, - 0x4063D020, 0x40648C20, 0x00000003, 0x4062C225, 0x4063D020, 0x40648C20, - 0x00000002, 0x4062C421, 0x4063A820, 0x00000002, 0x4062C422, 0x4063A820, - 0x00000002, 0x4062C423, 0x4063A820, 0x00000002, 0x4062C424, 0x4063A820, - 0x00000002, 0x4062C425, 0x4063A820, 0x00000002, 0x4062C426, 0x4063A820, - 0x00000002, 0x4062C427, 0x4063A820, 0x00000002, 0x4062C428, 0x4063A820, - 0x00000002, 0x4062C429, 0x4063A820, 0x00000002, - // Block 534, offset 0x8580 - 0x4062C42A, 0x4063A820, 0x00000002, 0x4062C42B, 0x4063A820, 0x00000002, - 0x4062C42C, 0x4063A820, 0x00000002, 0x4062C42D, 0x4063A820, 0x00000002, - 0x4062C42E, 0x4063A820, 0x00000002, 0x4062C42F, 0x4063A820, 0x00000002, - 0x4062C430, 0x4063A820, 0x00000002, 0x4062C431, 0x4063A820, 0x00000002, - 0x4062C432, 0x4063A820, 0x00000002, 0x4062C433, 0x4063A820, 0x00000002, - 0x4062C434, 0x4063A820, 0x00000002, 0x4062C435, 0x4063A820, 0x00000002, - 0x4062C436, 0x4063A820, 0x00000002, 0x4062C437, 0x4063A820, 0x00000002, - 0x4062C438, 0x4063A820, 0x00000002, 0x4062C439, 0x4063A820, 0x00000002, - 0x4062C43A, 0x4063A820, 0x00000002, 0x4062C43B, 0x4063A820, 0x00000002, - 0x4062C43C, 0x4063A820, 0x00000002, 0x4062C43D, 0x4063A820, 0x00000002, - 0x4062C43E, 0x4063A820, 0x00000002, 0x4062C43F, - // Block 535, offset 0x85c0 - 0x4063A820, 0x00000002, 0x4062C440, 0x4063A820, 0x00000002, 0x4062C441, - 0x4063A820, 0x00000002, 0x4062C442, 0x4063A820, 0x00000002, 0x4062C443, - 0x4063A820, 0x00000002, 0x4062C444, 0x4063A820, 0x00000002, 0x4062C445, - 0x4063A820, 0x00000002, 0x4062C446, 0x4063A820, 0x00000002, 0x4062C447, - 0x4063A820, 0x00000002, 0x4062C448, 0x4063A820, 0x00000002, 0x4062C449, - 0x4063A820, 0x00000002, 0x4062C44A, 0x4063A820, 0x00000002, 0x4062C44B, - 0x4063A820, 0x00000002, 0x4062C44C, 0x4063A820, 0x00000002, 0x4062C44D, - 0x4063A820, 0x00000002, 0x4062C44E, 0x4063A820, 0x00000002, 0x4062C44F, - 0x4063A820, 0x00000002, 0x4062C450, 0x4063A820, 0x00000002, 0x4062C451, - 0x4063A820, 0x00000002, 0x4062C452, 0x4063A820, 0x00000002, 0x4062C453, - 0x4063A820, 0x00000002, 0x4062C454, 0x4063A820, - // Block 536, offset 0x8600 - 0x00000003, 0x4062C421, 0x4063A820, 0x40646420, 0x00000003, 0x4062C422, - 0x4063A820, 0x40646420, 0x00000003, 0x4062C423, 0x4063A820, 0x40646420, - 0x00000003, 0x4062C424, 0x4063A820, 0x40646420, 0x00000003, 0x4062C425, - 0x4063A820, 0x40646420, 0x00000003, 0x4062C426, 0x4063A820, 0x40646420, - 0x00000003, 0x4062C427, 0x4063A820, 0x40646420, 0x00000003, 0x4062C428, - 0x4063A820, 0x40646420, 0x00000003, 0x4062C429, 0x4063A820, 0x40646420, - 0x00000003, 0x4062C42A, 0x4063A820, 0x40646420, 0x00000003, 0x4062C42B, - 0x4063A820, 0x40646420, 0x00000003, 0x4062C42C, 0x4063A820, 0x40646420, - 0x00000003, 0x4062C42D, 0x4063A820, 0x40646420, 0x00000003, 0x4062C42E, - 0x4063A820, 0x40646420, 0x00000003, 0x4062C42F, 0x4063A820, 0x40646420, - 0x00000003, 0x4062C430, 0x4063A820, 0x40646420, - // Block 537, offset 0x8640 - 0x00000003, 0x4062C431, 0x4063A820, 0x40646420, 0x00000003, 0x4062C432, - 0x4063A820, 0x40646420, 0x00000003, 0x4062C433, 0x4063A820, 0x40646420, - 0x00000003, 0x4062C434, 0x4063A820, 0x40646420, 0x00000003, 0x4062C435, - 0x4063A820, 0x40646420, 0x00000003, 0x4062C421, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062C422, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C423, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062C424, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062C425, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C426, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062C427, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062C428, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C421, - 0x4063A820, 0x40648220, 0x00000003, 0x4062C422, 0x4063A820, 0x40648220, - 0x00000003, 0x4062C423, 0x4063A820, 0x40648220, - // Block 538, offset 0x8680 - 0x00000003, 0x4062C424, 0x4063A820, 0x40648220, 0x00000003, 0x4062C425, - 0x4063A820, 0x40648220, 0x00000003, 0x4062C426, 0x4063A820, 0x40648220, - 0x00000003, 0x4062C427, 0x4063A820, 0x40648220, 0x00000003, 0x4062C428, - 0x4063A820, 0x40648220, 0x00000003, 0x4062C429, 0x4063A820, 0x40648220, - 0x00000003, 0x4062C421, 0x4063A820, 0x40648420, 0x00000003, 0x4062C422, - 0x4063A820, 0x40648420, 0x00000003, 0x4062C423, 0x4063A820, 0x40648420, - 0x00000003, 0x4062C424, 0x4063A820, 0x40648420, 0x00000003, 0x4062C425, - 0x4063A820, 0x40648420, 0x00000003, 0x4062C426, 0x4063A820, 0x40648420, - 0x00000003, 0x4062C421, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C422, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C423, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C424, 0x4063A820, 0x40648C20, - // Block 539, offset 0x86c0 - 0x00000003, 0x4062C425, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C426, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C427, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C428, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C429, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C42A, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C42B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C42C, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C42D, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C42E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C42F, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C430, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C431, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C432, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C433, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C434, 0x4063A820, 0x40648C20, - // Block 540, offset 0x8700 - 0x00000003, 0x4062C435, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C436, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C437, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C438, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C439, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C43A, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C43B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C43C, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C43D, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C43E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C43F, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C440, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C441, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C442, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C443, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C444, 0x4063A820, 0x40648C20, - // Block 541, offset 0x8740 - 0x00000003, 0x4062C445, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C446, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C447, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C448, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C449, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C44A, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C44B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C44C, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C44D, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C44E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C44F, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C450, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C451, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C452, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C453, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062C454, 0x4063A820, 0x40648C20, - // Block 542, offset 0x8780 - 0x00000003, 0x4062C455, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C456, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062C457, 0x4063A820, 0x40648C20, - 0x00000002, 0x4062C421, 0x4063AA20, 0x00000002, 0x4062C422, 0x4063AA20, - 0x00000002, 0x4062C423, 0x4063AA20, 0x00000002, 0x4062C424, 0x4063AA20, - 0x00000002, 0x4062C425, 0x4063AA20, 0x00000002, 0x4062C426, 0x4063AA20, - 0x00000002, 0x4062C427, 0x4063AA20, 0x00000002, 0x4062C428, 0x4063AA20, - 0x00000002, 0x4062C429, 0x4063AA20, 0x00000002, 0x4062C42A, 0x4063AA20, - 0x00000002, 0x4062C42B, 0x4063AA20, 0x00000002, 0x4062C42C, 0x4063AA20, - 0x00000002, 0x4062C42D, 0x4063AA20, 0x00000002, 0x4062C42E, 0x4063AA20, - 0x00000002, 0x4062C42F, 0x4063AA20, 0x00000002, 0x4062C430, 0x4063AA20, - 0x00000002, 0x4062C431, 0x4063AA20, 0x00000002, - // Block 543, offset 0x87c0 - 0x4062C432, 0x4063AA20, 0x00000002, 0x4062C433, 0x4063AA20, 0x00000002, - 0x4062C434, 0x4063AA20, 0x00000002, 0x4062C435, 0x4063AA20, 0x00000002, - 0x4062C436, 0x4063AA20, 0x00000002, 0x4062C437, 0x4063AA20, 0x00000003, - 0x4062C421, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C422, 0x4063AA20, - 0x40648C20, 0x00000003, 0x4062C423, 0x4063AA20, 0x40648C20, 0x00000003, - 0x4062C424, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C425, 0x4063AA20, - 0x40648C20, 0x00000003, 0x4062C426, 0x4063AA20, 0x40648C20, 0x00000003, - 0x4062C427, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C428, 0x4063AA20, - 0x40648C20, 0x00000002, 0x4062C421, 0x4063B020, 0x00000002, 0x4062C422, - 0x4063B020, 0x00000002, 0x4062C423, 0x4063B020, 0x00000002, 0x4062C424, - 0x4063B020, 0x00000002, 0x4062C425, 0x4063B020, - // Block 544, offset 0x8800 - 0x00000002, 0x4062C426, 0x4063B020, 0x00000002, 0x4062C427, 0x4063B020, - 0x00000002, 0x4062C428, 0x4063B020, 0x00000002, 0x4062C429, 0x4063B020, - 0x00000002, 0x4062C42A, 0x4063B020, 0x00000002, 0x4062C42B, 0x4063B020, - 0x00000002, 0x4062C42C, 0x4063B020, 0x00000002, 0x4062C42D, 0x4063B020, - 0x00000002, 0x4062C42E, 0x4063B020, 0x00000002, 0x4062C42F, 0x4063B020, - 0x00000002, 0x4062C430, 0x4063B020, 0x00000002, 0x4062C431, 0x4063B020, - 0x00000002, 0x4062C432, 0x4063B020, 0x00000002, 0x4062C433, 0x4063B020, - 0x00000002, 0x4062C434, 0x4063B020, 0x00000002, 0x4062C435, 0x4063B020, - 0x00000002, 0x4062C436, 0x4063B020, 0x00000002, 0x4062C437, 0x4063B020, - 0x00000002, 0x4062C438, 0x4063B020, 0x00000002, 0x4062C439, 0x4063B020, - 0x00000002, 0x4062C43A, 0x4063B020, 0x00000002, - // Block 545, offset 0x8840 - 0x4062C43B, 0x4063B020, 0x00000002, 0x4062C43C, 0x4063B020, 0x00000002, - 0x4062C43D, 0x4063B020, 0x00000002, 0x4062C43E, 0x4063B020, 0x00000002, - 0x4062C43F, 0x4063B020, 0x00000002, 0x4062C440, 0x4063B020, 0x00000002, - 0x4062C441, 0x4063B020, 0x00000002, 0x4062C442, 0x4063B020, 0x00000002, - 0x4062C443, 0x4063B020, 0x00000002, 0x4062C444, 0x4063B020, 0x00000002, - 0x4062C445, 0x4063B020, 0x00000002, 0x4062C446, 0x4063B020, 0x00000002, - 0x4062C447, 0x4063B020, 0x00000002, 0x4062C448, 0x4063B020, 0x00000002, - 0x4062C449, 0x4063B020, 0x00000002, 0x4062C44A, 0x4063B020, 0x00000002, - 0x4062C44B, 0x4063B020, 0x00000002, 0x4062C44C, 0x4063B020, 0x00000002, - 0x4062C44D, 0x4063B020, 0x00000002, 0x4062C44E, 0x4063B020, 0x00000003, - 0x4062C421, 0x4063B020, 0x40646420, 0x00000003, - // Block 546, offset 0x8880 - 0x4062C422, 0x4063B020, 0x40646420, 0x00000003, 0x4062C423, 0x4063B020, - 0x40646420, 0x00000003, 0x4062C424, 0x4063B020, 0x40646420, 0x00000003, - 0x4062C425, 0x4063B020, 0x40646420, 0x00000003, 0x4062C426, 0x4063B020, - 0x40646420, 0x00000003, 0x4062C427, 0x4063B020, 0x40646420, 0x00000003, - 0x4062C428, 0x4063B020, 0x40646420, 0x00000003, 0x4062C429, 0x4063B020, - 0x40646420, 0x00000003, 0x4062C42A, 0x4063B020, 0x40646420, 0x00000003, - 0x4062C42B, 0x4063B020, 0x40646420, 0x00000003, 0x4062C42C, 0x4063B020, - 0x40646420, 0x00000003, 0x4062C42D, 0x4063B020, 0x40646420, 0x00000003, - 0x4062C42E, 0x4063B020, 0x40646420, 0x00000003, 0x4062C42F, 0x4063B020, - 0x40646420, 0x00000003, 0x4062C430, 0x4063B020, 0x40646420, 0x00000003, - 0x4062C431, 0x4063B020, 0x40646420, 0x00000003, - // Block 547, offset 0x88c0 - 0x4062C432, 0x4063B020, 0x40646420, 0x00000003, 0x4062C433, 0x4063B020, - 0x40646420, 0x00000003, 0x4062C434, 0x4063B020, 0x40646420, 0x00000003, - 0x4062C435, 0x4063B020, 0x40646420, 0x00000003, 0x4062C436, 0x4063B020, - 0x40646420, 0x00000003, 0x4062C437, 0x4063B020, 0x40646420, 0x00000003, - 0x4062C438, 0x4063B020, 0x40646420, 0x00000003, 0x4062C439, 0x4063B020, - 0x40646420, 0x00000003, 0x4062C43A, 0x4063B020, 0x40646420, 0x00000003, - 0x4062C43B, 0x4063B020, 0x40646420, 0x00000003, 0x4062C43C, 0x4063B020, - 0x40646420, 0x00000003, 0x4062C43D, 0x4063B020, 0x40646420, 0x00000003, - 0x4062C43E, 0x4063B020, 0x40646420, 0x00000003, 0x4062C43F, 0x4063B020, - 0x40646420, 0x00000003, 0x4062C421, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C422, 0x4063B020, 0x40646A20, 0x00000003, - // Block 548, offset 0x8900 - 0x4062C423, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C424, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C425, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C426, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C427, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C428, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C429, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C42A, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C42B, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C42C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C42D, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C42E, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C42F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C430, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C431, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C432, 0x4063B020, 0x40646A20, 0x00000003, - // Block 549, offset 0x8940 - 0x4062C433, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C434, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C435, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C436, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C437, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C438, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C439, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C43A, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C43B, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C43C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C43D, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C43E, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C43F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C440, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C441, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C442, 0x4063B020, 0x40646A20, 0x00000003, - // Block 550, offset 0x8980 - 0x4062C443, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C444, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C445, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C446, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C447, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C448, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C449, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C44A, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C44B, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C44C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C44D, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C44E, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C44F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C450, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C451, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C452, 0x4063B020, 0x40646A20, 0x00000003, - // Block 551, offset 0x89c0 - 0x4062C453, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C454, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C455, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C456, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C457, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C458, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C459, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C45A, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C45B, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C45C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C45D, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C45E, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C45F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C460, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C461, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C462, 0x4063B020, 0x40646A20, 0x00000003, - // Block 552, offset 0x8a00 - 0x4062C463, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C464, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C465, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C466, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C467, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C468, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C469, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C46A, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C46B, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C46C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C46D, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C46E, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C46F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C470, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062C471, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062C421, 0x4063B020, 0x40647220, 0x00000003, - // Block 553, offset 0x8a40 - 0x4062C422, 0x4063B020, 0x40647220, 0x00000003, 0x4062C423, 0x4063B020, - 0x40647220, 0x00000003, 0x4062C424, 0x4063B020, 0x40647220, 0x00000003, - 0x4062C425, 0x4063B020, 0x40647220, 0x00000003, 0x4062C426, 0x4063B020, - 0x40647220, 0x00000003, 0x4062C427, 0x4063B020, 0x40647220, 0x00000003, - 0x4062C428, 0x4063B020, 0x40647220, 0x00000003, 0x4062C429, 0x4063B020, - 0x40647220, 0x00000003, 0x4062C42A, 0x4063B020, 0x40647220, 0x00000003, - 0x4062C42B, 0x4063B020, 0x40647220, 0x00000003, 0x4062C421, 0x4063B020, - 0x40648220, 0x00000003, 0x4062C422, 0x4063B020, 0x40648220, 0x00000003, - 0x4062C423, 0x4063B020, 0x40648220, 0x00000003, 0x4062C424, 0x4063B020, - 0x40648220, 0x00000003, 0x4062C425, 0x4063B020, 0x40648220, 0x00000003, - 0x4062C426, 0x4063B020, 0x40648220, 0x00000003, - // Block 554, offset 0x8a80 - 0x4062C427, 0x4063B020, 0x40648220, 0x00000003, 0x4062C428, 0x4063B020, - 0x40648220, 0x00000003, 0x4062C429, 0x4063B020, 0x40648220, 0x00000003, - 0x4062C42A, 0x4063B020, 0x40648220, 0x00000003, 0x4062C42B, 0x4063B020, - 0x40648220, 0x00000003, 0x4062C42C, 0x4063B020, 0x40648220, 0x00000003, - 0x4062C42D, 0x4063B020, 0x40648220, 0x00000003, 0x4062C42E, 0x4063B020, - 0x40648220, 0x00000003, 0x4062C42F, 0x4063B020, 0x40648220, 0x00000003, - 0x4062C430, 0x4063B020, 0x40648220, 0x00000003, 0x4062C431, 0x4063B020, - 0x40648220, 0x00000003, 0x4062C432, 0x4063B020, 0x40648220, 0x00000003, - 0x4062C433, 0x4063B020, 0x40648220, 0x00000003, 0x4062C434, 0x4063B020, - 0x40648220, 0x00000003, 0x4062C421, 0x4063B020, 0x40648420, 0x00000003, - 0x4062C422, 0x4063B020, 0x40648420, 0x00000003, - // Block 555, offset 0x8ac0 - 0x4062C423, 0x4063B020, 0x40648420, 0x00000003, 0x4062C424, 0x4063B020, - 0x40648420, 0x00000003, 0x4062C425, 0x4063B020, 0x40648420, 0x00000003, - 0x4062C426, 0x4063B020, 0x40648420, 0x00000003, 0x4062C427, 0x4063B020, - 0x40648420, 0x00000003, 0x4062C428, 0x4063B020, 0x40648420, 0x00000003, - 0x4062C429, 0x4063B020, 0x40648420, 0x00000003, 0x4062C421, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C422, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C423, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C424, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C425, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C426, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C427, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C428, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C429, 0x4063B020, 0x40648C20, 0x00000003, - // Block 556, offset 0x8b00 - 0x4062C42A, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C42B, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C42C, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C42D, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C42E, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C42F, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C430, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C431, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C432, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C433, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C434, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C435, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C436, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C437, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C438, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C439, 0x4063B020, 0x40648C20, 0x00000003, - // Block 557, offset 0x8b40 - 0x4062C43A, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C43B, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C43C, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C43D, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C43E, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C43F, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C440, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C441, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C442, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C443, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C444, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C445, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C446, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C447, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C448, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C449, 0x4063B020, 0x40648C20, 0x00000003, - // Block 558, offset 0x8b80 - 0x4062C44A, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C44B, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C44C, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C44D, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C44E, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C44F, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C450, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C451, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C452, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C453, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C454, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C455, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C456, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C457, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C458, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C459, 0x4063B020, 0x40648C20, 0x00000003, - // Block 559, offset 0x8bc0 - 0x4062C45A, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C45B, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C45C, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C45D, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C45E, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C45F, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C460, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C461, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C462, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C463, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C464, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C465, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C466, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C467, 0x4063B020, - 0x40648C20, 0x00000003, 0x4062C468, 0x4063B020, 0x40648C20, 0x00000003, - 0x4062C469, 0x4063B020, 0x40648C20, 0x00000003, - // Block 560, offset 0x8c00 - 0x4062C46A, 0x4063B020, 0x40648C20, 0x00000002, 0x4062C421, 0x4063B220, - 0x00000002, 0x4062C422, 0x4063B220, 0x00000002, 0x4062C423, 0x4063B220, - 0x00000002, 0x4062C424, 0x4063B220, 0x00000002, 0x4062C425, 0x4063B220, - 0x00000002, 0x4062C426, 0x4063B220, 0x00000002, 0x4062C427, 0x4063B220, - 0x00000002, 0x4062C428, 0x4063B220, 0x00000002, 0x4062C429, 0x4063B220, - 0x00000002, 0x4062C42A, 0x4063B220, 0x00000002, 0x4062C42B, 0x4063B220, - 0x00000002, 0x4062C42C, 0x4063B220, 0x00000002, 0x4062C42D, 0x4063B220, - 0x00000002, 0x4062C42E, 0x4063B220, 0x00000002, 0x4062C42F, 0x4063B220, - 0x00000002, 0x4062C430, 0x4063B220, 0x00000002, 0x4062C431, 0x4063B220, - 0x00000002, 0x4062C432, 0x4063B220, 0x00000002, 0x4062C433, 0x4063B220, - 0x00000002, 0x4062C434, 0x4063B220, 0x00000002, - // Block 561, offset 0x8c40 - 0x4062C435, 0x4063B220, 0x00000002, 0x4062C436, 0x4063B220, 0x00000002, - 0x4062C437, 0x4063B220, 0x00000002, 0x4062C438, 0x4063B220, 0x00000002, - 0x4062C439, 0x4063B220, 0x00000002, 0x4062C43A, 0x4063B220, 0x00000002, - 0x4062C43B, 0x4063B220, 0x00000002, 0x4062C43C, 0x4063B220, 0x00000002, - 0x4062C43D, 0x4063B220, 0x00000002, 0x4062C43E, 0x4063B220, 0x00000002, - 0x4062C43F, 0x4063B220, 0x00000002, 0x4062C440, 0x4063B220, 0x00000002, - 0x4062C441, 0x4063B220, 0x00000002, 0x4062C442, 0x4063B220, 0x00000002, - 0x4062C443, 0x4063B220, 0x00000002, 0x4062C444, 0x4063B220, 0x00000002, - 0x4062C445, 0x4063B220, 0x00000002, 0x4062C446, 0x4063B220, 0x00000002, - 0x4062C447, 0x4063B220, 0x00000002, 0x4062C448, 0x4063B220, 0x00000002, - 0x4062C421, 0x4063B820, 0x00000002, 0x4062C422, - // Block 562, offset 0x8c80 - 0x4063B820, 0x00000002, 0x4062C423, 0x4063B820, 0x00000002, 0x4062C424, - 0x4063B820, 0x00000002, 0x4062C425, 0x4063B820, 0x00000002, 0x4062C426, - 0x4063B820, 0x00000002, 0x4062C427, 0x4063B820, 0x00000002, 0x4062C428, - 0x4063B820, 0x00000002, 0x4062C429, 0x4063B820, 0x00000002, 0x4062C42A, - 0x4063B820, 0x00000002, 0x4062C42B, 0x4063B820, 0x00000002, 0x4062C42C, - 0x4063B820, 0x00000002, 0x4062C42D, 0x4063B820, 0x00000002, 0x4062C42E, - 0x4063B820, 0x00000002, 0x4062C42F, 0x4063B820, 0x00000002, 0x4062C430, - 0x4063B820, 0x00000002, 0x4062C431, 0x4063B820, 0x00000002, 0x4062C432, - 0x4063B820, 0x00000002, 0x4062C433, 0x4063B820, 0x00000002, 0x4062C434, - 0x4063B820, 0x00000002, 0x4062C435, 0x4063B820, 0x00000002, 0x4062C436, - 0x4063B820, 0x00000002, 0x4062C437, 0x4063B820, - // Block 563, offset 0x8cc0 - 0x00000002, 0x4062C438, 0x4063B820, 0x00000002, 0x4062C439, 0x4063B820, - 0x00000002, 0x4062C43A, 0x4063B820, 0x00000002, 0x4062C43B, 0x4063B820, - 0x00000002, 0x4062C43C, 0x4063B820, 0x00000002, 0x4062C43D, 0x4063B820, - 0x00000002, 0x4062C43E, 0x4063B820, 0x00000002, 0x4062C43F, 0x4063B820, - 0x00000002, 0x4062C440, 0x4063B820, 0x00000002, 0x4062C441, 0x4063B820, - 0x00000002, 0x4062C442, 0x4063B820, 0x00000002, 0x4062C443, 0x4063B820, - 0x00000002, 0x4062C444, 0x4063B820, 0x00000002, 0x4062C445, 0x4063B820, - 0x00000002, 0x4062C446, 0x4063B820, 0x00000002, 0x4062C447, 0x4063B820, - 0x00000002, 0x4062C448, 0x4063B820, 0x00000002, 0x4062C449, 0x4063B820, - 0x00000002, 0x4062C44A, 0x4063B820, 0x00000002, 0x4062C44B, 0x4063B820, - 0x00000002, 0x4062C44C, 0x4063B820, 0x00000002, - // Block 564, offset 0x8d00 - 0x4062C44D, 0x4063B820, 0x00000002, 0x4062C44E, 0x4063B820, 0x00000002, - 0x4062C44F, 0x4063B820, 0x00000002, 0x4062C450, 0x4063B820, 0x00000002, - 0x4062C451, 0x4063B820, 0x00000002, 0x4062C452, 0x4063B820, 0x00000002, - 0x4062C453, 0x4063B820, 0x00000002, 0x4062C454, 0x4063B820, 0x00000002, - 0x4062C455, 0x4063B820, 0x00000002, 0x4062C456, 0x4063B820, 0x00000002, - 0x4062C457, 0x4063B820, 0x00000002, 0x4062C458, 0x4063B820, 0x00000002, - 0x4062C459, 0x4063B820, 0x00000002, 0x4062C45A, 0x4063B820, 0x00000002, - 0x4062C45B, 0x4063B820, 0x00000002, 0x4062C45C, 0x4063B820, 0x00000002, - 0x4062C45D, 0x4063B820, 0x00000002, 0x4062C45E, 0x4063B820, 0x00000002, - 0x4062C45F, 0x4063B820, 0x00000002, 0x4062C460, 0x4063B820, 0x00000002, - 0x4062C461, 0x4063B820, 0x00000002, 0x4062C462, - // Block 565, offset 0x8d40 - 0x4063B820, 0x00000002, 0x4062C463, 0x4063B820, 0x00000002, 0x4062C464, - 0x4063B820, 0x00000002, 0x4062C465, 0x4063B820, 0x00000002, 0x4062C466, - 0x4063B820, 0x00000002, 0x4062C467, 0x4063B820, 0x00000002, 0x4062C468, - 0x4063B820, 0x00000002, 0x4062C469, 0x4063B820, 0x00000002, 0x4062C46A, - 0x4063B820, 0x00000002, 0x4062C46B, 0x4063B820, 0x00000002, 0x4062C46C, - 0x4063B820, 0x00000002, 0x4062C46D, 0x4063B820, 0x00000002, 0x4062C46E, - 0x4063B820, 0x00000002, 0x4062C46F, 0x4063B820, 0x00000002, 0x4062C470, - 0x4063B820, 0x00000003, 0x4062C421, 0x4063B820, 0x40646420, 0x00000003, - 0x4062C422, 0x4063B820, 0x40646420, 0x00000003, 0x4062C423, 0x4063B820, - 0x40646420, 0x00000003, 0x4062C424, 0x4063B820, 0x40646420, 0x00000003, - 0x4062C425, 0x4063B820, 0x40646420, 0x00000003, - // Block 566, offset 0x8d80 - 0x4062C421, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C422, 0x4063B820, - 0x40646A20, 0x00000003, 0x4062C423, 0x4063B820, 0x40646A20, 0x00000003, - 0x4062C421, 0x4063B820, 0x40647220, 0x00000003, 0x4062C422, 0x4063B820, - 0x40647220, 0x00000003, 0x4062C423, 0x4063B820, 0x40647220, 0x00000003, - 0x4062C421, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C422, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062C423, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062C424, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C425, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062C426, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062C427, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C428, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062C429, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062C42A, 0x4063B820, 0x40648C20, 0x00000003, - // Block 567, offset 0x8dc0 - 0x4062C42B, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C42C, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062C42D, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062C42E, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C42F, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062C430, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062C431, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C432, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062C433, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062C434, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C435, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062C436, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062C437, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C438, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062C439, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062C43A, 0x4063B820, 0x40648C20, 0x00000003, - // Block 568, offset 0x8e00 - 0x4062C43B, 0x4063B820, 0x40648C20, 0x00000002, 0x4062C421, 0x4063BA20, - 0x00000002, 0x4062C422, 0x4063BA20, 0x00000002, 0x4062C423, 0x4063BA20, - 0x00000002, 0x4062C424, 0x4063BA20, 0x00000002, 0x4062C425, 0x4063BA20, - 0x00000002, 0x4062C426, 0x4063BA20, 0x00000002, 0x4062C427, 0x4063BA20, - 0x00000002, 0x4062C428, 0x4063BA20, 0x00000002, 0x4062C429, 0x4063BA20, - 0x00000002, 0x4062C421, 0x4063BE20, 0x00000002, 0x4062C421, 0x4063C220, - 0x00000002, 0x4062C422, 0x4063C220, 0x00000002, 0x4062C423, 0x4063C220, - 0x00000002, 0x4062C424, 0x4063C220, 0x00000002, 0x4062C425, 0x4063C220, - 0x00000002, 0x4062C426, 0x4063C220, 0x00000002, 0x4062C427, 0x4063C220, - 0x00000002, 0x4062C428, 0x4063C220, 0x00000002, 0x4062C429, 0x4063C220, - 0x00000002, 0x4062C42A, 0x4063C220, 0x00000002, - // Block 569, offset 0x8e40 - 0x4062C42B, 0x4063C220, 0x00000002, 0x4062C42C, 0x4063C220, 0x00000002, - 0x4062C42D, 0x4063C220, 0x00000002, 0x4062C42E, 0x4063C220, 0x00000002, - 0x4062C42F, 0x4063C220, 0x00000002, 0x4062C430, 0x4063C220, 0x00000002, - 0x4062C431, 0x4063C220, 0x00000002, 0x4062C432, 0x4063C220, 0x00000002, - 0x4062C433, 0x4063C220, 0x00000002, 0x4062C434, 0x4063C220, 0x00000002, - 0x4062C435, 0x4063C220, 0x00000002, 0x4062C436, 0x4063C220, 0x00000002, - 0x4062C437, 0x4063C220, 0x00000002, 0x4062C438, 0x4063C220, 0x00000002, - 0x4062C439, 0x4063C220, 0x00000002, 0x4062C43A, 0x4063C220, 0x00000002, - 0x4062C43B, 0x4063C220, 0x00000002, 0x4062C43C, 0x4063C220, 0x00000002, - 0x4062C43D, 0x4063C220, 0x00000002, 0x4062C43E, 0x4063C220, 0x00000002, - 0x4062C43F, 0x4063C220, 0x00000002, 0x4062C440, - // Block 570, offset 0x8e80 - 0x4063C220, 0x00000002, 0x4062C441, 0x4063C220, 0x00000002, 0x4062C442, - 0x4063C220, 0x00000002, 0x4062C443, 0x4063C220, 0x00000002, 0x4062C444, - 0x4063C220, 0x00000002, 0x4062C445, 0x4063C220, 0x00000002, 0x4062C446, - 0x4063C220, 0x00000002, 0x4062C447, 0x4063C220, 0x00000002, 0x4062C448, - 0x4063C220, 0x00000002, 0x4062C449, 0x4063C220, 0x00000002, 0x4062C44A, - 0x4063C220, 0x00000002, 0x4062C44B, 0x4063C220, 0x00000002, 0x4062C44C, - 0x4063C220, 0x00000002, 0x4062C44D, 0x4063C220, 0x00000002, 0x4062C44E, - 0x4063C220, 0x00000002, 0x4062C44F, 0x4063C220, 0x00000002, 0x4062C450, - 0x4063C220, 0x00000002, 0x4062C451, 0x4063C220, 0x00000002, 0x4062C452, - 0x4063C220, 0x00000002, 0x4062C453, 0x4063C220, 0x00000002, 0x4062C454, - 0x4063C220, 0x00000002, 0x4062C455, 0x4063C220, - // Block 571, offset 0x8ec0 - 0x00000002, 0x4062C456, 0x4063C220, 0x00000002, 0x4062C457, 0x4063C220, - 0x00000002, 0x4062C458, 0x4063C220, 0x00000002, 0x4062C459, 0x4063C220, - 0x00000002, 0x4062C45A, 0x4063C220, 0x00000002, 0x4062C45B, 0x4063C220, - 0x00000002, 0x4062C45C, 0x4063C220, 0x00000002, 0x4062C45D, 0x4063C220, - 0x00000002, 0x4062C45E, 0x4063C220, 0x00000003, 0x4062C421, 0x4063C220, - 0x40646420, 0x00000003, 0x4062C422, 0x4063C220, 0x40646420, 0x00000003, - 0x4062C421, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C422, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062C423, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062C424, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C425, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062C426, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062C427, 0x4063C220, 0x40646A20, 0x00000003, - // Block 572, offset 0x8f00 - 0x4062C428, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C429, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062C42A, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062C42B, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C42C, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062C42D, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062C42E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C42F, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062C430, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062C431, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C432, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062C433, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062C434, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C435, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062C436, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062C437, 0x4063C220, 0x40646A20, 0x00000003, - // Block 573, offset 0x8f40 - 0x4062C438, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C439, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062C43A, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062C43B, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C43C, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062C43D, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062C43E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C43F, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062C440, 0x4063C220, 0x40646A20, 0x00000003, - 0x4062C441, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C442, 0x4063C220, - 0x40646A20, 0x00000003, 0x4062C421, 0x4063C220, 0x40647220, 0x00000003, - 0x4062C422, 0x4063C220, 0x40647220, 0x00000003, 0x4062C421, 0x4063C220, - 0x40648C20, 0x00000003, 0x4062C422, 0x4063C220, 0x40648C20, 0x00000003, - 0x4062C423, 0x4063C220, 0x40648C20, 0x00000003, - // Block 574, offset 0x8f80 - 0x4062C424, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C425, 0x4063C220, - 0x40648C20, 0x00000003, 0x4062C421, 0x4063CC20, 0x40646420, 0x00000003, - 0x4062C422, 0x4063CC20, 0x40646420, 0x00000003, 0x4062C423, 0x4063CC20, - 0x40646420, 0x00000003, 0x4062C421, 0x4063CC20, 0x40647220, 0x00000003, - 0x4062C422, 0x4063CC20, 0x40647220, 0x00000003, 0x4062C421, 0x4063CC20, - 0x40648420, 0x00000003, 0x4062C422, 0x4063CC20, 0x40648420, 0x00000003, - 0x4062C423, 0x4063CC20, 0x40648420, 0x00000003, 0x4062C424, 0x4063CC20, - 0x40648420, 0x00000003, 0x4062C425, 0x4063CC20, 0x40648420, 0x00000003, - 0x4062C421, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C422, 0x4063CC20, - 0x40648C20, 0x00000003, 0x4062C423, 0x4063CC20, 0x40648C20, 0x00000003, - 0x4062C424, 0x4063CC20, 0x40648C20, 0x00000003, - // Block 575, offset 0x8fc0 - 0x4062C425, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C426, 0x4063CC20, - 0x40648C20, 0x00000003, 0x4062C427, 0x4063CC20, 0x40648C20, 0x00000003, - 0x4062C428, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C429, 0x4063CC20, - 0x40648C20, 0x00000003, 0x4062C42A, 0x4063CC20, 0x40648C20, 0x00000003, - 0x4062C42B, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C42C, 0x4063CC20, - 0x40648C20, 0x00000003, 0x4062C42D, 0x4063CC20, 0x40648C20, 0x00000003, - 0x4062C42E, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062C421, 0x4063D020, - 0x00000002, 0x4062C422, 0x4063D020, 0x00000002, 0x4062C423, 0x4063D020, - 0x00000002, 0x4062C424, 0x4063D020, 0x00000002, 0x4062C425, 0x4063D020, - 0x00000002, 0x4062C426, 0x4063D020, 0x00000002, 0x4062C427, 0x4063D020, - 0x00000002, 0x4062C428, 0x4063D020, 0x00000002, - // Block 576, offset 0x9000 - 0x4062C429, 0x4063D020, 0x00000002, 0x4062C42A, 0x4063D020, 0x00000002, - 0x4062C42B, 0x4063D020, 0x00000002, 0x4062C42C, 0x4063D020, 0x00000002, - 0x4062C42D, 0x4063D020, 0x00000002, 0x4062C42E, 0x4063D020, 0x00000002, - 0x4062C42F, 0x4063D020, 0x00000002, 0x4062C430, 0x4063D020, 0x00000002, - 0x4062C431, 0x4063D020, 0x00000002, 0x4062C432, 0x4063D020, 0x00000002, - 0x4062C433, 0x4063D020, 0x00000002, 0x4062C434, 0x4063D020, 0x00000002, - 0x4062C435, 0x4063D020, 0x00000002, 0x4062C436, 0x4063D020, 0x00000002, - 0x4062C437, 0x4063D020, 0x00000002, 0x4062C438, 0x4063D020, 0x00000002, - 0x4062C439, 0x4063D020, 0x00000002, 0x4062C43A, 0x4063D020, 0x00000002, - 0x4062C43B, 0x4063D020, 0x00000002, 0x4062C43C, 0x4063D020, 0x00000002, - 0x4062C43D, 0x4063D020, 0x00000002, 0x4062C43E, - // Block 577, offset 0x9040 - 0x4063D020, 0x00000002, 0x4062C43F, 0x4063D020, 0x00000002, 0x4062C440, - 0x4063D020, 0x00000002, 0x4062C441, 0x4063D020, 0x00000002, 0x4062C442, - 0x4063D020, 0x00000002, 0x4062C443, 0x4063D020, 0x00000002, 0x4062C444, - 0x4063D020, 0x00000002, 0x4062C445, 0x4063D020, 0x00000002, 0x4062C446, - 0x4063D020, 0x00000002, 0x4062C447, 0x4063D020, 0x00000002, 0x4062C448, - 0x4063D020, 0x00000002, 0x4062C449, 0x4063D020, 0x00000002, 0x4062C44A, - 0x4063D020, 0x00000002, 0x4062C44B, 0x4063D020, 0x00000002, 0x4062C44C, - 0x4063D020, 0x00000002, 0x4062C44D, 0x4063D020, 0x00000002, 0x4062C44E, - 0x4063D020, 0x00000002, 0x4062C44F, 0x4063D020, 0x00000002, 0x4062C450, - 0x4063D020, 0x00000003, 0x4062C421, 0x4063D020, 0x40646420, 0x00000003, - 0x4062C422, 0x4063D020, 0x40646420, 0x00000003, - // Block 578, offset 0x9080 - 0x4062C423, 0x4063D020, 0x40646420, 0x00000003, 0x4062C424, 0x4063D020, - 0x40646420, 0x00000003, 0x4062C425, 0x4063D020, 0x40646420, 0x00000003, - 0x4062C426, 0x4063D020, 0x40646420, 0x00000003, 0x4062C421, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C422, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C423, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C424, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C425, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C426, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C427, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C428, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C429, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C42A, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C42B, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C42C, 0x4063D020, 0x40646A20, 0x00000003, - // Block 579, offset 0x90c0 - 0x4062C42D, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C42E, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C42F, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C430, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C431, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C432, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C433, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C434, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C435, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C436, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C437, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C438, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C439, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C43A, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C43B, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C43C, 0x4063D020, 0x40646A20, 0x00000003, - // Block 580, offset 0x9100 - 0x4062C43D, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C43E, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C43F, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C440, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C441, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C442, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C443, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C444, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C445, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C446, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C447, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C448, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C449, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C44A, 0x4063D020, - 0x40646A20, 0x00000003, 0x4062C44B, 0x4063D020, 0x40646A20, 0x00000003, - 0x4062C44C, 0x4063D020, 0x40646A20, 0x00000003, - // Block 581, offset 0x9140 - 0x4062C421, 0x4063D020, 0x40647220, 0x00000003, 0x4062C422, 0x4063D020, - 0x40647220, 0x00000003, 0x4062C423, 0x4063D020, 0x40647220, 0x00000003, - 0x4062C424, 0x4063D020, 0x40647220, 0x00000003, 0x4062C425, 0x4063D020, - 0x40647220, 0x00000003, 0x4062C426, 0x4063D020, 0x40647220, 0x00000003, - 0x4062C427, 0x4063D020, 0x40647220, 0x00000003, 0x4062C428, 0x4063D020, - 0x40647220, 0x00000003, 0x4062C429, 0x4063D020, 0x40647220, 0x00000003, - 0x4062C42A, 0x4063D020, 0x40647220, 0x00000003, 0x4062C42B, 0x4063D020, - 0x40647220, 0x00000003, 0x4062C42C, 0x4063D020, 0x40647220, 0x00000003, - 0x4062C42D, 0x4063D020, 0x40647220, 0x00000003, 0x4062C42E, 0x4063D020, - 0x40647220, 0x00000003, 0x4062C42F, 0x4063D020, 0x40647220, 0x00000003, - 0x4062C430, 0x4063D020, 0x40647220, 0x00000003, - // Block 582, offset 0x9180 - 0x4062C431, 0x4063D020, 0x40647220, 0x00000003, 0x4062C432, 0x4063D020, - 0x40647220, 0x00000003, 0x4062C433, 0x4063D020, 0x40647220, 0x00000003, - 0x4062C434, 0x4063D020, 0x40647220, 0x00000003, 0x4062C421, 0x4063D020, - 0x40648220, 0x00000003, 0x4062C422, 0x4063D020, 0x40648220, 0x00000003, - 0x4062C423, 0x4063D020, 0x40648220, 0x00000003, 0x4062C421, 0x4063D020, - 0x40648420, 0x00000003, 0x4062C422, 0x4063D020, 0x40648420, 0x00000003, - 0x4062C423, 0x4063D020, 0x40648420, 0x00000003, 0x4062C424, 0x4063D020, - 0x40648420, 0x00000003, 0x4062C425, 0x4063D020, 0x40648420, 0x00000003, - 0x4062C426, 0x4063D020, 0x40648420, 0x00000003, 0x4062C427, 0x4063D020, - 0x40648420, 0x00000003, 0x4062C428, 0x4063D020, 0x40648420, 0x00000003, - 0x4062C421, 0x4063D020, 0x40648C20, 0x00000003, - // Block 583, offset 0x91c0 - 0x4062C422, 0x4063D020, 0x40648C20, 0x00000003, 0x4062C423, 0x4063D020, - 0x40648C20, 0x00000003, 0x4062C424, 0x4063D020, 0x40648C20, 0x00000003, - 0x4062C425, 0x4063D020, 0x40648C20, 0x00000003, 0x4062C426, 0x4063D020, - 0x40648C20, 0x00000003, 0x4062C427, 0x4063D020, 0x40648C20, 0x00000002, - 0x4062C821, 0x4063A820, 0x00000002, 0x4062C822, 0x4063A820, 0x00000002, - 0x4062C823, 0x4063A820, 0x00000002, 0x4062C824, 0x4063A820, 0x00000002, - 0x4062C825, 0x4063A820, 0x00000002, 0x4062C826, 0x4063A820, 0x00000002, - 0x4062C827, 0x4063A820, 0x00000002, 0x4062C828, 0x4063A820, 0x00000002, - 0x4062C829, 0x4063A820, 0x00000002, 0x4062C82A, 0x4063A820, 0x00000002, - 0x4062C82B, 0x4063A820, 0x00000002, 0x4062C82C, 0x4063A820, 0x00000002, - 0x4062C82D, 0x4063A820, 0x00000002, 0x4062C82E, - // Block 584, offset 0x9200 - 0x4063A820, 0x00000002, 0x4062C82F, 0x4063A820, 0x00000002, 0x4062C830, - 0x4063A820, 0x00000002, 0x4062C831, 0x4063A820, 0x00000002, 0x4062C832, - 0x4063A820, 0x00000002, 0x4062C833, 0x4063A820, 0x00000002, 0x4062C834, - 0x4063A820, 0x00000002, 0x4062C835, 0x4063A820, 0x00000002, 0x4062C836, - 0x4063A820, 0x00000003, 0x4062C821, 0x4063A820, 0x40646420, 0x00000003, - 0x4062C822, 0x4063A820, 0x40646420, 0x00000003, 0x4062C823, 0x4063A820, - 0x40646420, 0x00000003, 0x4062C824, 0x4063A820, 0x40646420, 0x00000003, - 0x4062C825, 0x4063A820, 0x40646420, 0x00000003, 0x4062C826, 0x4063A820, - 0x40646420, 0x00000003, 0x4062C827, 0x4063A820, 0x40646420, 0x00000003, - 0x4062C828, 0x4063A820, 0x40646420, 0x00000003, 0x4062C829, 0x4063A820, - 0x40646420, 0x00000003, 0x4062C82A, 0x4063A820, - // Block 585, offset 0x9240 - 0x40646420, 0x00000003, 0x4062C821, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062C822, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C823, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062C824, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062C825, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C826, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062C827, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062C828, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C829, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062C82A, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062C82B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C82C, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062C82D, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062C82E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C82F, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062C830, 0x4063A820, - // Block 586, offset 0x9280 - 0x40646A20, 0x00000003, 0x4062C831, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062C832, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C833, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062C834, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062C835, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C836, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062C837, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062C821, 0x4063A820, 0x40647220, 0x00000003, 0x4062C822, 0x4063A820, - 0x40647220, 0x00000003, 0x4062C823, 0x4063A820, 0x40647220, 0x00000003, - 0x4062C824, 0x4063A820, 0x40647220, 0x00000003, 0x4062C825, 0x4063A820, - 0x40647220, 0x00000003, 0x4062C826, 0x4063A820, 0x40647220, 0x00000003, - 0x4062C827, 0x4063A820, 0x40647220, 0x00000003, 0x4062C821, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C822, 0x4063A820, - // Block 587, offset 0x92c0 - 0x40648220, 0x00000003, 0x4062C823, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C824, 0x4063A820, 0x40648220, 0x00000003, 0x4062C825, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C826, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C827, 0x4063A820, 0x40648220, 0x00000003, 0x4062C828, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C829, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C82A, 0x4063A820, 0x40648220, 0x00000003, 0x4062C82B, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C82C, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C82D, 0x4063A820, 0x40648220, 0x00000003, 0x4062C82E, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C82F, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C830, 0x4063A820, 0x40648220, 0x00000003, 0x4062C831, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C832, 0x4063A820, - // Block 588, offset 0x9300 - 0x40648220, 0x00000003, 0x4062C833, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C834, 0x4063A820, 0x40648220, 0x00000003, 0x4062C835, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C836, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C837, 0x4063A820, 0x40648220, 0x00000003, 0x4062C838, 0x4063A820, - 0x40648220, 0x00000003, 0x4062C839, 0x4063A820, 0x40648220, 0x00000003, - 0x4062C83A, 0x4063A820, 0x40648220, 0x00000003, 0x4062C821, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C822, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C823, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C824, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C825, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C826, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C827, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C828, 0x4063A820, - // Block 589, offset 0x9340 - 0x40648C20, 0x00000003, 0x4062C829, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C82A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C82B, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C82C, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C82D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C82E, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C82F, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C830, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C831, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C832, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C833, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C834, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C835, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C836, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C837, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C838, 0x4063A820, - // Block 590, offset 0x9380 - 0x40648C20, 0x00000003, 0x4062C839, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C83A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C83B, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C83C, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C83D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C83E, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C83F, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C840, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C841, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C842, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C843, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C844, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C845, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062C846, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C847, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062C848, 0x4063A820, - // Block 591, offset 0x93c0 - 0x40648C20, 0x00000003, 0x4062C849, 0x4063A820, 0x40648C20, 0x00000002, - 0x4062C821, 0x4063AA20, 0x00000002, 0x4062C822, 0x4063AA20, 0x00000002, - 0x4062C823, 0x4063AA20, 0x00000002, 0x4062C824, 0x4063AA20, 0x00000002, - 0x4062C825, 0x4063AA20, 0x00000002, 0x4062C826, 0x4063AA20, 0x00000002, - 0x4062C827, 0x4063AA20, 0x00000002, 0x4062C828, 0x4063AA20, 0x00000002, - 0x4062C829, 0x4063AA20, 0x00000002, 0x4062C82A, 0x4063AA20, 0x00000002, - 0x4062C82B, 0x4063AA20, 0x00000002, 0x4062C82C, 0x4063AA20, 0x00000002, - 0x4062C82D, 0x4063AA20, 0x00000002, 0x4062C82E, 0x4063AA20, 0x00000003, - 0x4062C821, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C822, 0x4063AA20, - 0x40646420, 0x00000003, 0x4062C823, 0x4063AA20, 0x40646420, 0x00000003, - 0x4062C824, 0x4063AA20, 0x40646420, 0x00000003, - // Block 592, offset 0x9400 - 0x4062C825, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C826, 0x4063AA20, - 0x40646420, 0x00000003, 0x4062C827, 0x4063AA20, 0x40646420, 0x00000003, - 0x4062C828, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C829, 0x4063AA20, - 0x40646420, 0x00000003, 0x4062C82A, 0x4063AA20, 0x40646420, 0x00000002, - 0x4062C821, 0x4063B020, 0x00000002, 0x4062C822, 0x4063B020, 0x00000002, - 0x4062C823, 0x4063B020, 0x00000002, 0x4062C824, 0x4063B020, 0x00000002, - 0x4062C825, 0x4063B020, 0x00000002, 0x4062C826, 0x4063B020, 0x00000002, - 0x4062C827, 0x4063B020, 0x00000002, 0x4062C828, 0x4063B020, 0x00000002, - 0x4062C829, 0x4063B020, 0x00000003, 0x4062C821, 0x4063B020, 0x40646420, - 0x00000003, 0x4062C822, 0x4063B020, 0x40646420, 0x00000003, 0x4062C823, - 0x4063B020, 0x40646420, 0x00000003, 0x4062C824, - // Block 593, offset 0x9440 - 0x4063B020, 0x40646420, 0x00000003, 0x4062C825, 0x4063B020, 0x40646420, - 0x00000003, 0x4062C826, 0x4063B020, 0x40646420, 0x00000003, 0x4062C827, - 0x4063B020, 0x40646420, 0x00000003, 0x4062C828, 0x4063B020, 0x40646420, - 0x00000003, 0x4062C829, 0x4063B020, 0x40646420, 0x00000003, 0x4062C82A, - 0x4063B020, 0x40646420, 0x00000003, 0x4062C82B, 0x4063B020, 0x40646420, - 0x00000003, 0x4062C82C, 0x4063B020, 0x40646420, 0x00000003, 0x4062C82D, - 0x4063B020, 0x40646420, 0x00000003, 0x4062C82E, 0x4063B020, 0x40646420, - 0x00000003, 0x4062C82F, 0x4063B020, 0x40646420, 0x00000003, 0x4062C830, - 0x4063B020, 0x40646420, 0x00000003, 0x4062C831, 0x4063B020, 0x40646420, - 0x00000003, 0x4062C832, 0x4063B020, 0x40646420, 0x00000003, 0x4062C833, - 0x4063B020, 0x40646420, 0x00000003, 0x4062C834, - // Block 594, offset 0x9480 - 0x4063B020, 0x40646420, 0x00000003, 0x4062C835, 0x4063B020, 0x40646420, - 0x00000003, 0x4062C836, 0x4063B020, 0x40646420, 0x00000003, 0x4062C837, - 0x4063B020, 0x40646420, 0x00000003, 0x4062C821, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062C822, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C823, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062C824, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062C825, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C826, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062C827, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062C828, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C829, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062C82A, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062C82B, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C82C, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062C82D, - // Block 595, offset 0x94c0 - 0x4063B020, 0x40646A20, 0x00000003, 0x4062C82E, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062C82F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C830, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062C831, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062C832, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C833, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062C834, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062C835, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C836, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062C837, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062C838, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C839, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062C83A, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062C83B, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C83C, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062C83D, - // Block 596, offset 0x9500 - 0x4063B020, 0x40646A20, 0x00000003, 0x4062C83E, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062C83F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C840, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062C841, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062C842, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C843, - 0x4063B020, 0x40646A20, 0x00000003, 0x4062C844, 0x4063B020, 0x40646A20, - 0x00000003, 0x4062C845, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C821, - 0x4063B020, 0x40647220, 0x00000003, 0x4062C822, 0x4063B020, 0x40647220, - 0x00000003, 0x4062C823, 0x4063B020, 0x40647220, 0x00000003, 0x4062C824, - 0x4063B020, 0x40647220, 0x00000003, 0x4062C825, 0x4063B020, 0x40647220, - 0x00000003, 0x4062C826, 0x4063B020, 0x40647220, 0x00000003, 0x4062C827, - 0x4063B020, 0x40647220, 0x00000003, 0x4062C828, - // Block 597, offset 0x9540 - 0x4063B020, 0x40647220, 0x00000003, 0x4062C829, 0x4063B020, 0x40647220, - 0x00000003, 0x4062C82A, 0x4063B020, 0x40647220, 0x00000003, 0x4062C82B, - 0x4063B020, 0x40647220, 0x00000003, 0x4062C82C, 0x4063B020, 0x40647220, - 0x00000003, 0x4062C82D, 0x4063B020, 0x40647220, 0x00000003, 0x4062C82E, - 0x4063B020, 0x40647220, 0x00000003, 0x4062C82F, 0x4063B020, 0x40647220, - 0x00000003, 0x4062C830, 0x4063B020, 0x40647220, 0x00000003, 0x4062C831, - 0x4063B020, 0x40647220, 0x00000003, 0x4062C832, 0x4063B020, 0x40647220, - 0x00000003, 0x4062C833, 0x4063B020, 0x40647220, 0x00000003, 0x4062C834, - 0x4063B020, 0x40647220, 0x00000003, 0x4062C821, 0x4063B020, 0x40648220, - 0x00000003, 0x4062C822, 0x4063B020, 0x40648220, 0x00000003, 0x4062C823, - 0x4063B020, 0x40648220, 0x00000003, 0x4062C824, - // Block 598, offset 0x9580 - 0x4063B020, 0x40648220, 0x00000003, 0x4062C825, 0x4063B020, 0x40648220, - 0x00000003, 0x4062C826, 0x4063B020, 0x40648220, 0x00000003, 0x4062C827, - 0x4063B020, 0x40648220, 0x00000003, 0x4062C828, 0x4063B020, 0x40648220, - 0x00000003, 0x4062C829, 0x4063B020, 0x40648220, 0x00000003, 0x4062C82A, - 0x4063B020, 0x40648220, 0x00000003, 0x4062C82B, 0x4063B020, 0x40648220, - 0x00000003, 0x4062C82C, 0x4063B020, 0x40648220, 0x00000003, 0x4062C82D, - 0x4063B020, 0x40648220, 0x00000003, 0x4062C82E, 0x4063B020, 0x40648220, - 0x00000003, 0x4062C82F, 0x4063B020, 0x40648220, 0x00000003, 0x4062C830, - 0x4063B020, 0x40648220, 0x00000003, 0x4062C831, 0x4063B020, 0x40648220, - 0x00000003, 0x4062C832, 0x4063B020, 0x40648220, 0x00000003, 0x4062C821, - 0x4063B020, 0x40648420, 0x00000003, 0x4062C822, - // Block 599, offset 0x95c0 - 0x4063B020, 0x40648420, 0x00000003, 0x4062C823, 0x4063B020, 0x40648420, - 0x00000003, 0x4062C824, 0x4063B020, 0x40648420, 0x00000003, 0x4062C825, - 0x4063B020, 0x40648420, 0x00000003, 0x4062C826, 0x4063B020, 0x40648420, - 0x00000003, 0x4062C827, 0x4063B020, 0x40648420, 0x00000003, 0x4062C828, - 0x4063B020, 0x40648420, 0x00000003, 0x4062C829, 0x4063B020, 0x40648420, - 0x00000003, 0x4062C82A, 0x4063B020, 0x40648420, 0x00000003, 0x4062C82B, - 0x4063B020, 0x40648420, 0x00000003, 0x4062C82C, 0x4063B020, 0x40648420, - 0x00000003, 0x4062C82D, 0x4063B020, 0x40648420, 0x00000003, 0x4062C82E, - 0x4063B020, 0x40648420, 0x00000003, 0x4062C82F, 0x4063B020, 0x40648420, - 0x00000003, 0x4062C821, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C822, - 0x4063B020, 0x40648C20, 0x00000003, 0x4062C823, - // Block 600, offset 0x9600 - 0x4063B020, 0x40648C20, 0x00000003, 0x4062C824, 0x4063B020, 0x40648C20, - 0x00000003, 0x4062C825, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C826, - 0x4063B020, 0x40648C20, 0x00000003, 0x4062C827, 0x4063B020, 0x40648C20, - 0x00000003, 0x4062C828, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C829, - 0x4063B020, 0x40648C20, 0x00000003, 0x4062C82A, 0x4063B020, 0x40648C20, - 0x00000003, 0x4062C82B, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C82C, - 0x4063B020, 0x40648C20, 0x00000002, 0x4062C821, 0x4063B220, 0x00000002, - 0x4062C822, 0x4063B220, 0x00000002, 0x4062C823, 0x4063B220, 0x00000002, - 0x4062C824, 0x4063B220, 0x00000002, 0x4062C825, 0x4063B220, 0x00000002, - 0x4062C826, 0x4063B220, 0x00000002, 0x4062C827, 0x4063B220, 0x00000002, - 0x4062C828, 0x4063B220, 0x00000002, 0x4062C829, - // Block 601, offset 0x9640 - 0x4063B220, 0x00000002, 0x4062C82A, 0x4063B220, 0x00000002, 0x4062C82B, - 0x4063B220, 0x00000002, 0x4062C82C, 0x4063B220, 0x00000002, 0x4062C82D, - 0x4063B220, 0x00000002, 0x4062C82E, 0x4063B220, 0x00000002, 0x4062C82F, - 0x4063B220, 0x00000002, 0x4062C830, 0x4063B220, 0x00000002, 0x4062C831, - 0x4063B220, 0x00000002, 0x4062C832, 0x4063B220, 0x00000002, 0x4062C833, - 0x4063B220, 0x00000002, 0x4062C834, 0x4063B220, 0x00000002, 0x4062C821, - 0x4063B820, 0x00000002, 0x4062C822, 0x4063B820, 0x00000002, 0x4062C823, - 0x4063B820, 0x00000002, 0x4062C824, 0x4063B820, 0x00000002, 0x4062C825, - 0x4063B820, 0x00000002, 0x4062C826, 0x4063B820, 0x00000002, 0x4062C827, - 0x4063B820, 0x00000002, 0x4062C828, 0x4063B820, 0x00000002, 0x4062C829, - 0x4063B820, 0x00000002, 0x4062C82A, 0x4063B820, - // Block 602, offset 0x9680 - 0x00000002, 0x4062C82B, 0x4063B820, 0x00000002, 0x4062C82C, 0x4063B820, - 0x00000002, 0x4062C82D, 0x4063B820, 0x00000002, 0x4062C82E, 0x4063B820, - 0x00000002, 0x4062C82F, 0x4063B820, 0x00000002, 0x4062C830, 0x4063B820, - 0x00000002, 0x4062C831, 0x4063B820, 0x00000002, 0x4062C832, 0x4063B820, - 0x00000002, 0x4062C833, 0x4063B820, 0x00000002, 0x4062C834, 0x4063B820, - 0x00000002, 0x4062C835, 0x4063B820, 0x00000002, 0x4062C836, 0x4063B820, - 0x00000002, 0x4062C837, 0x4063B820, 0x00000002, 0x4062C838, 0x4063B820, - 0x00000002, 0x4062C839, 0x4063B820, 0x00000002, 0x4062C83A, 0x4063B820, - 0x00000002, 0x4062C83B, 0x4063B820, 0x00000002, 0x4062C83C, 0x4063B820, - 0x00000002, 0x4062C83D, 0x4063B820, 0x00000002, 0x4062C83E, 0x4063B820, - 0x00000002, 0x4062C83F, 0x4063B820, 0x00000002, - // Block 603, offset 0x96c0 - 0x4062C840, 0x4063B820, 0x00000002, 0x4062C841, 0x4063B820, 0x00000002, - 0x4062C842, 0x4063B820, 0x00000002, 0x4062C843, 0x4063B820, 0x00000002, - 0x4062C844, 0x4063B820, 0x00000002, 0x4062C845, 0x4063B820, 0x00000002, - 0x4062C846, 0x4063B820, 0x00000002, 0x4062C847, 0x4063B820, 0x00000002, - 0x4062C848, 0x4063B820, 0x00000002, 0x4062C849, 0x4063B820, 0x00000002, - 0x4062C84A, 0x4063B820, 0x00000002, 0x4062C84B, 0x4063B820, 0x00000002, - 0x4062C84C, 0x4063B820, 0x00000002, 0x4062C84D, 0x4063B820, 0x00000002, - 0x4062C84E, 0x4063B820, 0x00000002, 0x4062C84F, 0x4063B820, 0x00000002, - 0x4062C850, 0x4063B820, 0x00000002, 0x4062C851, 0x4063B820, 0x00000002, - 0x4062C852, 0x4063B820, 0x00000002, 0x4062C853, 0x4063B820, 0x00000002, - 0x4062C854, 0x4063B820, 0x00000002, 0x4062C855, - // Block 604, offset 0x9700 - 0x4063B820, 0x00000002, 0x4062C856, 0x4063B820, 0x00000002, 0x4062C857, - 0x4063B820, 0x00000002, 0x4062C858, 0x4063B820, 0x00000003, 0x4062C821, - 0x4063B820, 0x40646420, 0x00000003, 0x4062C822, 0x4063B820, 0x40646420, - 0x00000003, 0x4062C823, 0x4063B820, 0x40646420, 0x00000003, 0x4062C824, - 0x4063B820, 0x40646420, 0x00000003, 0x4062C825, 0x4063B820, 0x40646420, - 0x00000003, 0x4062C826, 0x4063B820, 0x40646420, 0x00000003, 0x4062C827, - 0x4063B820, 0x40646420, 0x00000003, 0x4062C828, 0x4063B820, 0x40646420, - 0x00000003, 0x4062C829, 0x4063B820, 0x40646420, 0x00000003, 0x4062C82A, - 0x4063B820, 0x40646420, 0x00000003, 0x4062C82B, 0x4063B820, 0x40646420, - 0x00000003, 0x4062C82C, 0x4063B820, 0x40646420, 0x00000003, 0x4062C821, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062C822, - // Block 605, offset 0x9740 - 0x4063B820, 0x40646A20, 0x00000003, 0x4062C823, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062C824, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C825, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062C821, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062C822, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C823, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062C824, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062C825, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C826, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062C827, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062C828, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C829, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062C82A, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062C82B, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C82C, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062C82D, - // Block 606, offset 0x9780 - 0x4063B820, 0x40648C20, 0x00000003, 0x4062C82E, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062C82F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C821, - 0x4063BA20, 0x40647220, 0x00000002, 0x4062C821, 0x4063BE20, 0x00000002, - 0x4062C822, 0x4063BE20, 0x00000002, 0x4062C823, 0x4063BE20, 0x00000002, - 0x4062C824, 0x4063BE20, 0x00000002, 0x4062C825, 0x4063BE20, 0x00000002, - 0x4062C826, 0x4063BE20, 0x00000002, 0x4062C827, 0x4063BE20, 0x00000002, - 0x4062C828, 0x4063BE20, 0x00000002, 0x4062C829, 0x4063BE20, 0x00000002, - 0x4062C82A, 0x4063BE20, 0x00000002, 0x4062C82B, 0x4063BE20, 0x00000002, - 0x4062C821, 0x4063C220, 0x00000002, 0x4062C822, 0x4063C220, 0x00000002, - 0x4062C823, 0x4063C220, 0x00000002, 0x4062C824, 0x4063C220, 0x00000002, - 0x4062C825, 0x4063C220, 0x00000002, 0x4062C826, - // Block 607, offset 0x97c0 - 0x4063C220, 0x00000002, 0x4062C827, 0x4063C220, 0x00000002, 0x4062C828, - 0x4063C220, 0x00000002, 0x4062C829, 0x4063C220, 0x00000002, 0x4062C82A, - 0x4063C220, 0x00000002, 0x4062C82B, 0x4063C220, 0x00000002, 0x4062C82C, - 0x4063C220, 0x00000002, 0x4062C82D, 0x4063C220, 0x00000002, 0x4062C82E, - 0x4063C220, 0x00000002, 0x4062C82F, 0x4063C220, 0x00000002, 0x4062C830, - 0x4063C220, 0x00000002, 0x4062C831, 0x4063C220, 0x00000002, 0x4062C832, - 0x4063C220, 0x00000002, 0x4062C833, 0x4063C220, 0x00000002, 0x4062C834, - 0x4063C220, 0x00000002, 0x4062C835, 0x4063C220, 0x00000002, 0x4062C836, - 0x4063C220, 0x00000002, 0x4062C837, 0x4063C220, 0x00000002, 0x4062C838, - 0x4063C220, 0x00000002, 0x4062C839, 0x4063C220, 0x00000002, 0x4062C83A, - 0x4063C220, 0x00000002, 0x4062C83B, 0x4063C220, - // Block 608, offset 0x9800 - 0x00000002, 0x4062C83C, 0x4063C220, 0x00000002, 0x4062C83D, 0x4063C220, - 0x00000002, 0x4062C83E, 0x4063C220, 0x00000002, 0x4062C83F, 0x4063C220, - 0x00000002, 0x4062C840, 0x4063C220, 0x00000002, 0x4062C841, 0x4063C220, - 0x00000002, 0x4062C842, 0x4063C220, 0x00000002, 0x4062C843, 0x4063C220, - 0x00000002, 0x4062C844, 0x4063C220, 0x00000002, 0x4062C845, 0x4063C220, - 0x00000002, 0x4062C846, 0x4063C220, 0x00000002, 0x4062C847, 0x4063C220, - 0x00000002, 0x4062C848, 0x4063C220, 0x00000002, 0x4062C849, 0x4063C220, - 0x00000002, 0x4062C84A, 0x4063C220, 0x00000002, 0x4062C84B, 0x4063C220, - 0x00000002, 0x4062C84C, 0x4063C220, 0x00000002, 0x4062C84D, 0x4063C220, - 0x00000002, 0x4062C84E, 0x4063C220, 0x00000002, 0x4062C84F, 0x4063C220, - 0x00000002, 0x4062C850, 0x4063C220, 0x00000002, - // Block 609, offset 0x9840 - 0x4062C851, 0x4063C220, 0x00000002, 0x4062C852, 0x4063C220, 0x00000002, - 0x4062C853, 0x4063C220, 0x00000003, 0x4062C821, 0x4063C220, 0x40646420, - 0x00000003, 0x4062C822, 0x4063C220, 0x40646420, 0x00000003, 0x4062C823, - 0x4063C220, 0x40646420, 0x00000003, 0x4062C824, 0x4063C220, 0x40646420, - 0x00000003, 0x4062C825, 0x4063C220, 0x40646420, 0x00000003, 0x4062C826, - 0x4063C220, 0x40646420, 0x00000003, 0x4062C827, 0x4063C220, 0x40646420, - 0x00000003, 0x4062C828, 0x4063C220, 0x40646420, 0x00000003, 0x4062C829, - 0x4063C220, 0x40646420, 0x00000003, 0x4062C82A, 0x4063C220, 0x40646420, - 0x00000003, 0x4062C82B, 0x4063C220, 0x40646420, 0x00000003, 0x4062C82C, - 0x4063C220, 0x40646420, 0x00000003, 0x4062C82D, 0x4063C220, 0x40646420, - 0x00000003, 0x4062C82E, 0x4063C220, 0x40646420, - // Block 610, offset 0x9880 - 0x00000003, 0x4062C82F, 0x4063C220, 0x40646420, 0x00000003, 0x4062C830, - 0x4063C220, 0x40646420, 0x00000003, 0x4062C831, 0x4063C220, 0x40646420, - 0x00000003, 0x4062C821, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C822, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062C823, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062C821, 0x4063C220, 0x40647220, 0x00000003, 0x4062C822, - 0x4063C220, 0x40647220, 0x00000003, 0x4062C823, 0x4063C220, 0x40647220, - 0x00000003, 0x4062C824, 0x4063C220, 0x40647220, 0x00000003, 0x4062C821, - 0x4063C220, 0x40648C20, 0x00000003, 0x4062C822, 0x4063C220, 0x40648C20, - 0x00000003, 0x4062C823, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C824, - 0x4063C220, 0x40648C20, 0x00000003, 0x4062C825, 0x4063C220, 0x40648C20, - 0x00000003, 0x4062C826, 0x4063C220, 0x40648C20, - // Block 611, offset 0x98c0 - 0x00000003, 0x4062C827, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C828, - 0x4063C220, 0x40648C20, 0x00000003, 0x4062C829, 0x4063C220, 0x40648C20, - 0x00000002, 0x4062C821, 0x4063C620, 0x00000002, 0x4062C822, 0x4063C620, - 0x00000002, 0x4062C823, 0x4063C620, 0x00000002, 0x4062C824, 0x4063C620, - 0x00000002, 0x4062C825, 0x4063C620, 0x00000002, 0x4062C826, 0x4063C620, - 0x00000002, 0x4062C827, 0x4063C620, 0x00000002, 0x4062C828, 0x4063C620, - 0x00000002, 0x4062C829, 0x4063C620, 0x00000002, 0x4062C821, 0x4063C820, - 0x00000002, 0x4062C822, 0x4063C820, 0x00000002, 0x4062C823, 0x4063C820, - 0x00000002, 0x4062C824, 0x4063C820, 0x00000002, 0x4062C825, 0x4063C820, - 0x00000002, 0x4062C826, 0x4063C820, 0x00000002, 0x4062C827, 0x4063C820, - 0x00000002, 0x4062C828, 0x4063C820, 0x00000002, - // Block 612, offset 0x9900 - 0x4062C829, 0x4063C820, 0x00000002, 0x4062C82A, 0x4063C820, 0x00000002, - 0x4062C82B, 0x4063C820, 0x00000002, 0x4062C82C, 0x4063C820, 0x00000002, - 0x4062C82D, 0x4063C820, 0x00000002, 0x4062C82E, 0x4063C820, 0x00000002, - 0x4062C82F, 0x4063C820, 0x00000002, 0x4062C830, 0x4063C820, 0x00000002, - 0x4062C831, 0x4063C820, 0x00000003, 0x4062C821, 0x4063CC20, 0x40646420, - 0x00000003, 0x4062C822, 0x4063CC20, 0x40646420, 0x00000003, 0x4062C823, - 0x4063CC20, 0x40646420, 0x00000003, 0x4062C824, 0x4063CC20, 0x40646420, - 0x00000003, 0x4062C825, 0x4063CC20, 0x40646420, 0x00000003, 0x4062C826, - 0x4063CC20, 0x40646420, 0x00000003, 0x4062C827, 0x4063CC20, 0x40646420, - 0x00000003, 0x4062C821, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062C821, - 0x4063D020, 0x00000002, 0x4062C822, 0x4063D020, - // Block 613, offset 0x9940 - 0x00000002, 0x4062C823, 0x4063D020, 0x00000002, 0x4062C824, 0x4063D020, - 0x00000002, 0x4062C825, 0x4063D020, 0x00000002, 0x4062C826, 0x4063D020, - 0x00000002, 0x4062C827, 0x4063D020, 0x00000002, 0x4062C828, 0x4063D020, - 0x00000002, 0x4062C829, 0x4063D020, 0x00000002, 0x4062C82A, 0x4063D020, - 0x00000002, 0x4062C82B, 0x4063D020, 0x00000002, 0x4062C82C, 0x4063D020, - 0x00000002, 0x4062C82D, 0x4063D020, 0x00000002, 0x4062C82E, 0x4063D020, - 0x00000002, 0x4062C82F, 0x4063D020, 0x00000002, 0x4062C830, 0x4063D020, - 0x00000002, 0x4062C831, 0x4063D020, 0x00000002, 0x4062C832, 0x4063D020, - 0x00000002, 0x4062C833, 0x4063D020, 0x00000002, 0x4062C834, 0x4063D020, - 0x00000002, 0x4062C835, 0x4063D020, 0x00000002, 0x4062C836, 0x4063D020, - 0x00000002, 0x4062C837, 0x4063D020, 0x00000002, - // Block 614, offset 0x9980 - 0x4062C838, 0x4063D020, 0x00000002, 0x4062C839, 0x4063D020, 0x00000002, - 0x4062C83A, 0x4063D020, 0x00000002, 0x4062C83B, 0x4063D020, 0x00000002, - 0x4062C83C, 0x4063D020, 0x00000002, 0x4062C83D, 0x4063D020, 0x00000002, - 0x4062C83E, 0x4063D020, 0x00000002, 0x4062C83F, 0x4063D020, 0x00000002, - 0x4062C840, 0x4063D020, 0x00000002, 0x4062C841, 0x4063D020, 0x00000002, - 0x4062C842, 0x4063D020, 0x00000002, 0x4062C843, 0x4063D020, 0x00000002, - 0x4062C844, 0x4063D020, 0x00000002, 0x4062C845, 0x4063D020, 0x00000002, - 0x4062C846, 0x4063D020, 0x00000002, 0x4062C847, 0x4063D020, 0x00000002, - 0x4062C848, 0x4063D020, 0x00000002, 0x4062C849, 0x4063D020, 0x00000002, - 0x4062C84A, 0x4063D020, 0x00000003, 0x4062C821, 0x4063D020, 0x40646420, - 0x00000003, 0x4062C822, 0x4063D020, 0x40646420, - // Block 615, offset 0x99c0 - 0x00000003, 0x4062C823, 0x4063D020, 0x40646420, 0x00000003, 0x4062C824, - 0x4063D020, 0x40646420, 0x00000003, 0x4062C821, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062C822, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C823, - 0x4063D020, 0x40646A20, 0x00000003, 0x4062C824, 0x4063D020, 0x40646A20, - 0x00000003, 0x4062C825, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C821, - 0x4063D020, 0x40647220, 0x00000003, 0x4062C822, 0x4063D020, 0x40647220, - 0x00000003, 0x4062C823, 0x4063D020, 0x40647220, 0x00000003, 0x4062C821, - 0x4063D020, 0x40648220, 0x00000003, 0x4062C822, 0x4063D020, 0x40648220, - 0x00000003, 0x4062C823, 0x4063D020, 0x40648220, 0x00000003, 0x4062C824, - 0x4063D020, 0x40648220, 0x00000003, 0x4062C825, 0x4063D020, 0x40648220, - 0x00000003, 0x4062C826, 0x4063D020, 0x40648220, - // Block 616, offset 0x9a00 - 0x00000003, 0x4062C827, 0x4063D020, 0x40648220, 0x00000003, 0x4062C828, - 0x4063D020, 0x40648220, 0x00000003, 0x4062C829, 0x4063D020, 0x40648220, - 0x00000003, 0x4062C82A, 0x4063D020, 0x40648220, 0x00000003, 0x4062C82B, - 0x4063D020, 0x40648220, 0x00000003, 0x4062C82C, 0x4063D020, 0x40648220, - 0x00000003, 0x4062C82D, 0x4063D020, 0x40648220, 0x00000003, 0x4062C82E, - 0x4063D020, 0x40648220, 0x00000003, 0x4062C82F, 0x4063D020, 0x40648220, - 0x00000003, 0x4062C830, 0x4063D020, 0x40648220, 0x00000003, 0x4062C821, - 0x4063D020, 0x40648420, 0x00000003, 0x4062C821, 0x4063D020, 0x40648C20, - 0x00000003, 0x4062C822, 0x4063D020, 0x40648C20, 0x00000002, 0x4062CA21, - 0x4063BC20, 0x00000002, 0x4062CA22, 0x4063BC20, 0x00000002, 0x4062CA23, - 0x4063BC20, 0x00000002, 0x4062CC21, 0x4063A820, - // Block 617, offset 0x9a40 - 0x00000002, 0x4062CC22, 0x4063A820, 0x00000002, 0x4062CC23, 0x4063A820, - 0x00000002, 0x4062CC24, 0x4063A820, 0x00000002, 0x4062CC25, 0x4063A820, - 0x00000002, 0x4062CC26, 0x4063A820, 0x00000002, 0x4062CC27, 0x4063A820, - 0x00000002, 0x4062CC28, 0x4063A820, 0x00000002, 0x4062CC29, 0x4063A820, - 0x00000002, 0x4062CC2A, 0x4063A820, 0x00000002, 0x4062CC2B, 0x4063A820, - 0x00000002, 0x4062CC2C, 0x4063A820, 0x00000002, 0x4062CC2D, 0x4063A820, - 0x00000002, 0x4062CC2E, 0x4063A820, 0x00000002, 0x4062CC2F, 0x4063A820, - 0x00000002, 0x4062CC30, 0x4063A820, 0x00000002, 0x4062CC31, 0x4063A820, - 0x00000002, 0x4062CC32, 0x4063A820, 0x00000002, 0x4062CC33, 0x4063A820, - 0x00000002, 0x4062CC34, 0x4063A820, 0x00000002, 0x4062CC35, 0x4063A820, - 0x00000002, 0x4062CC36, 0x4063A820, 0x00000002, - // Block 618, offset 0x9a80 - 0x4062CC37, 0x4063A820, 0x00000002, 0x4062CC38, 0x4063A820, 0x00000002, - 0x4062CC39, 0x4063A820, 0x00000002, 0x4062CC3A, 0x4063A820, 0x00000002, - 0x4062CC3B, 0x4063A820, 0x00000003, 0x4062CC21, 0x4063A820, 0x40646420, - 0x00000003, 0x4062CC22, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC23, - 0x4063A820, 0x40646420, 0x00000003, 0x4062CC24, 0x4063A820, 0x40646420, - 0x00000003, 0x4062CC25, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC26, - 0x4063A820, 0x40646420, 0x00000003, 0x4062CC27, 0x4063A820, 0x40646420, - 0x00000003, 0x4062CC28, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC29, - 0x4063A820, 0x40646420, 0x00000003, 0x4062CC2A, 0x4063A820, 0x40646420, - 0x00000003, 0x4062CC2B, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC2C, - 0x4063A820, 0x40646420, 0x00000003, 0x4062CC2D, - // Block 619, offset 0x9ac0 - 0x4063A820, 0x40646420, 0x00000003, 0x4062CC2E, 0x4063A820, 0x40646420, - 0x00000003, 0x4062CC2F, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC30, - 0x4063A820, 0x40646420, 0x00000003, 0x4062CC31, 0x4063A820, 0x40646420, - 0x00000003, 0x4062CC32, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC33, - 0x4063A820, 0x40646420, 0x00000003, 0x4062CC34, 0x4063A820, 0x40646420, - 0x00000003, 0x4062CC35, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC36, - 0x4063A820, 0x40646420, 0x00000003, 0x4062CC37, 0x4063A820, 0x40646420, - 0x00000003, 0x4062CC21, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC22, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC23, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062CC24, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC25, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC26, - // Block 620, offset 0x9b00 - 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC27, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062CC28, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC29, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC2A, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062CC2B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC2C, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC2D, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062CC2E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC2F, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC21, 0x4063A820, 0x40647220, - 0x00000003, 0x4062CC22, 0x4063A820, 0x40647220, 0x00000003, 0x4062CC23, - 0x4063A820, 0x40647220, 0x00000003, 0x4062CC21, 0x4063A820, 0x40648220, - 0x00000003, 0x4062CC22, 0x4063A820, 0x40648220, 0x00000003, 0x4062CC23, - 0x4063A820, 0x40648220, 0x00000003, 0x4062CC24, - // Block 621, offset 0x9b40 - 0x4063A820, 0x40648220, 0x00000003, 0x4062CC25, 0x4063A820, 0x40648220, - 0x00000003, 0x4062CC26, 0x4063A820, 0x40648220, 0x00000003, 0x4062CC27, - 0x4063A820, 0x40648220, 0x00000003, 0x4062CC21, 0x4063A820, 0x40648420, - 0x00000003, 0x4062CC22, 0x4063A820, 0x40648420, 0x00000003, 0x4062CC23, - 0x4063A820, 0x40648420, 0x00000003, 0x4062CC24, 0x4063A820, 0x40648420, - 0x00000003, 0x4062CC25, 0x4063A820, 0x40648420, 0x00000003, 0x4062CC26, - 0x4063A820, 0x40648420, 0x00000003, 0x4062CC21, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062CC22, 0x4063A820, 0x40648C20, 0x00000003, 0x4062CC23, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062CC24, 0x4063A820, 0x40648C20, - 0x00000003, 0x4062CC25, 0x4063A820, 0x40648C20, 0x00000003, 0x4062CC26, - 0x4063A820, 0x40648C20, 0x00000003, 0x4062CC27, - // Block 622, offset 0x9b80 - 0x4063A820, 0x40648C20, 0x00000003, 0x4062CC28, 0x4063A820, 0x40648C20, - 0x00000002, 0x4062CC21, 0x4063AA20, 0x00000002, 0x4062CC22, 0x4063AA20, - 0x00000002, 0x4062CC23, 0x4063AA20, 0x00000002, 0x4062CC24, 0x4063AA20, - 0x00000002, 0x4062CC25, 0x4063AA20, 0x00000002, 0x4062CC26, 0x4063AA20, - 0x00000002, 0x4062CC27, 0x4063AA20, 0x00000002, 0x4062CC28, 0x4063AA20, - 0x00000002, 0x4062CC29, 0x4063AA20, 0x00000002, 0x4062CC2A, 0x4063AA20, - 0x00000002, 0x4062CC2B, 0x4063AA20, 0x00000002, 0x4062CC2C, 0x4063AA20, - 0x00000002, 0x4062CC2D, 0x4063AA20, 0x00000002, 0x4062CC2E, 0x4063AA20, - 0x00000002, 0x4062CC2F, 0x4063AA20, 0x00000002, 0x4062CC30, 0x4063AA20, - 0x00000002, 0x4062CC31, 0x4063AA20, 0x00000002, 0x4062CC32, 0x4063AA20, - 0x00000002, 0x4062CC33, 0x4063AA20, 0x00000002, - // Block 623, offset 0x9bc0 - 0x4062CC34, 0x4063AA20, 0x00000002, 0x4062CC35, 0x4063AA20, 0x00000003, - 0x4062CC21, 0x4063AA20, 0x40646420, 0x00000003, 0x4062CC22, 0x4063AA20, - 0x40646420, 0x00000003, 0x4062CC21, 0x4063AA20, 0x40648C20, 0x00000003, - 0x4062CC22, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CC23, 0x4063AA20, - 0x40648C20, 0x00000002, 0x4062CC21, 0x4063B020, 0x00000002, 0x4062CC21, - 0x4063B820, 0x00000002, 0x4062CC22, 0x4063B820, 0x00000002, 0x4062CC23, - 0x4063B820, 0x00000002, 0x4062CC24, 0x4063B820, 0x00000003, 0x4062CC21, - 0x4063B820, 0x40646A20, 0x00000003, 0x4062CC22, 0x4063B820, 0x40646A20, - 0x00000003, 0x4062CC23, 0x4063B820, 0x40646A20, 0x00000003, 0x4062CC21, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC22, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062CC23, 0x4063B820, 0x40648C20, - // Block 624, offset 0x9c00 - 0x00000003, 0x4062CC24, 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC25, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC26, 0x4063B820, 0x40648C20, - 0x00000003, 0x4062CC27, 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC28, - 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC29, 0x4063B820, 0x40648C20, - 0x00000002, 0x4062CC21, 0x4063BE20, 0x00000002, 0x4062CC22, 0x4063BE20, - 0x00000002, 0x4062CC23, 0x4063BE20, 0x00000002, 0x4062CC24, 0x4063BE20, - 0x00000002, 0x4062CC25, 0x4063BE20, 0x00000002, 0x4062CC26, 0x4063BE20, - 0x00000002, 0x4062CC27, 0x4063BE20, 0x00000002, 0x4062CC21, 0x4063C220, - 0x00000002, 0x4062CC22, 0x4063C220, 0x00000002, 0x4062CC23, 0x4063C220, - 0x00000002, 0x4062CC24, 0x4063C220, 0x00000002, 0x4062CC25, 0x4063C220, - 0x00000002, 0x4062CC26, 0x4063C220, 0x00000002, - // Block 625, offset 0x9c40 - 0x4062CC27, 0x4063C220, 0x00000002, 0x4062CC28, 0x4063C220, 0x00000002, - 0x4062CC29, 0x4063C220, 0x00000003, 0x4062CC21, 0x4063C220, 0x40648C20, - 0x00000003, 0x4062CC21, 0x4063CC20, 0x40646420, 0x00000003, 0x4062CC22, - 0x4063CC20, 0x40646420, 0x00000003, 0x4062CC23, 0x4063CC20, 0x40646420, - 0x00000003, 0x4062CC21, 0x4063CC20, 0x40648220, 0x00000002, 0x4062CE21, - 0x4063A820, 0x00000002, 0x4062CE22, 0x4063A820, 0x00000002, 0x4062CE23, - 0x4063A820, 0x00000002, 0x4062CE24, 0x4063A820, 0x00000002, 0x4062CE25, - 0x4063A820, 0x00000002, 0x4062CE26, 0x4063A820, 0x00000002, 0x4062CE27, - 0x4063A820, 0x00000002, 0x4062CE28, 0x4063A820, 0x00000002, 0x4062CE29, - 0x4063A820, 0x00000002, 0x4062CE2A, 0x4063A820, 0x00000002, 0x4062CE2B, - 0x4063A820, 0x00000002, 0x4062CE2C, 0x4063A820, - // Block 626, offset 0x9c80 - 0x00000002, 0x4062CE2D, 0x4063A820, 0x00000002, 0x4062CE2E, 0x4063A820, - 0x00000002, 0x4062CE2F, 0x4063A820, 0x00000002, 0x4062CE30, 0x4063A820, - 0x00000002, 0x4062CE31, 0x4063A820, 0x00000002, 0x4062CE32, 0x4063A820, - 0x00000002, 0x4062CE33, 0x4063A820, 0x00000002, 0x4062CE34, 0x4063A820, - 0x00000002, 0x4062CE35, 0x4063A820, 0x00000002, 0x4062CE36, 0x4063A820, - 0x00000002, 0x4062CE37, 0x4063A820, 0x00000002, 0x4062CE38, 0x4063A820, - 0x00000002, 0x4062CE39, 0x4063A820, 0x00000002, 0x4062CE3A, 0x4063A820, - 0x00000002, 0x4062CE3B, 0x4063A820, 0x00000002, 0x4062CE3C, 0x4063A820, - 0x00000002, 0x4062CE3D, 0x4063A820, 0x00000002, 0x4062CE3E, 0x4063A820, - 0x00000003, 0x4062CE21, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE22, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE23, - // Block 627, offset 0x9cc0 - 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE24, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062CE25, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE26, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE27, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062CE28, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE29, - 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE2A, 0x4063A820, 0x40646A20, - 0x00000003, 0x4062CE21, 0x4063A820, 0x40647220, 0x00000003, 0x4062CE22, - 0x4063A820, 0x40647220, 0x00000003, 0x4062CE23, 0x4063A820, 0x40647220, - 0x00000003, 0x4062CE24, 0x4063A820, 0x40647220, 0x00000003, 0x4062CE25, - 0x4063A820, 0x40647220, 0x00000002, 0x4062CE21, 0x4063AA20, 0x00000002, - 0x4062CE22, 0x4063AA20, 0x00000002, 0x4062CE23, 0x4063AA20, 0x00000002, - 0x4062CE24, 0x4063AA20, 0x00000002, 0x4062CE25, - // Block 628, offset 0x9d00 - 0x4063AA20, 0x00000002, 0x4062CE26, 0x4063AA20, 0x00000002, 0x4062CE27, - 0x4063AA20, 0x00000002, 0x4062CE28, 0x4063AA20, 0x00000002, 0x4062CE29, - 0x4063AA20, 0x00000002, 0x4062CE2A, 0x4063AA20, 0x00000002, 0x4062CE2B, - 0x4063AA20, 0x00000002, 0x4062CE2C, 0x4063AA20, 0x00000002, 0x4062CE2D, - 0x4063AA20, 0x00000002, 0x4062CE2E, 0x4063AA20, 0x00000002, 0x4062CE2F, - 0x4063AA20, 0x00000002, 0x4062CE30, 0x4063AA20, 0x00000003, 0x4062CE21, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE22, 0x4063AA20, 0x40648C20, - 0x00000003, 0x4062CE23, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE24, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE25, 0x4063AA20, 0x40648C20, - 0x00000003, 0x4062CE26, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE27, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE28, - // Block 629, offset 0x9d40 - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE21, 0x4063AC20, 0x40646420, - 0x00000003, 0x4062CE21, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE22, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE23, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062CE24, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE25, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE26, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062CE27, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE28, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE29, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062CE2A, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE2B, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE2C, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062CE2D, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE2E, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE2F, - // Block 630, offset 0x9d80 - 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE30, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062CE31, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE32, - 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE33, 0x4063B420, 0x40646A20, - 0x00000003, 0x4062CE21, 0x4063B420, 0x40648220, 0x00000003, 0x4062CE22, - 0x4063B420, 0x40648220, 0x00000003, 0x4062CE23, 0x4063B420, 0x40648220, - 0x00000003, 0x4062CE21, 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE22, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE23, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062CE24, 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE25, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE26, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062CE27, 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE28, - 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE29, - // Block 631, offset 0x9dc0 - 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE2A, 0x4063B420, 0x40648C20, - 0x00000003, 0x4062CE2B, 0x4063B420, 0x40648C20, 0x00000002, 0x4062CE21, - 0x4063B620, 0x00000002, 0x4062CE22, 0x4063B620, 0x00000002, 0x4062CE23, - 0x4063B620, 0x00000002, 0x4062CE24, 0x4063B620, 0x00000002, 0x4062CE25, - 0x4063B620, 0x00000002, 0x4062CE26, 0x4063B620, 0x00000002, 0x4062CE27, - 0x4063B620, 0x00000002, 0x4062CE28, 0x4063B620, 0x00000002, 0x4062CE29, - 0x4063B620, 0x00000002, 0x4062CE2A, 0x4063B620, 0x00000002, 0x4062CE2B, - 0x4063B620, 0x00000002, 0x4062CE2C, 0x4063B620, 0x00000002, 0x4062CE2D, - 0x4063B620, 0x00000002, 0x4062CE2E, 0x4063B620, 0x00000002, 0x4062CE21, - 0x4063B820, 0x00000002, 0x4062CE22, 0x4063B820, 0x00000002, 0x4062CE23, - 0x4063B820, 0x00000002, 0x4062CE24, 0x4063B820, - // Block 632, offset 0x9e00 - 0x00000002, 0x4062CE25, 0x4063B820, 0x00000002, 0x4062CE26, 0x4063B820, - 0x00000002, 0x4062CE27, 0x4063B820, 0x00000002, 0x4062CE28, 0x4063B820, - 0x00000002, 0x4062CE29, 0x4063B820, 0x00000002, 0x4062CE2A, 0x4063B820, - 0x00000002, 0x4062CE2B, 0x4063B820, 0x00000002, 0x4062CE2C, 0x4063B820, - 0x00000002, 0x4062CE2D, 0x4063B820, 0x00000002, 0x4062CE2E, 0x4063B820, - 0x00000002, 0x4062CE2F, 0x4063B820, 0x00000002, 0x4062CE30, 0x4063B820, - 0x00000002, 0x4062CE31, 0x4063B820, 0x00000002, 0x4062CE32, 0x4063B820, - 0x00000002, 0x4062CE33, 0x4063B820, 0x00000002, 0x4062CE34, 0x4063B820, - 0x00000002, 0x4062CE35, 0x4063B820, 0x00000002, 0x4062CE36, 0x4063B820, - 0x00000002, 0x4062CE37, 0x4063B820, 0x00000002, 0x4062CE38, 0x4063B820, - 0x00000002, 0x4062CE39, 0x4063B820, 0x00000002, - // Block 633, offset 0x9e40 - 0x4062CE3A, 0x4063B820, 0x00000002, 0x4062CE3B, 0x4063B820, 0x00000002, - 0x4062CE3C, 0x4063B820, 0x00000002, 0x4062CE3D, 0x4063B820, 0x00000002, - 0x4062CE3E, 0x4063B820, 0x00000002, 0x4062CE3F, 0x4063B820, 0x00000002, - 0x4062CE40, 0x4063B820, 0x00000002, 0x4062CE41, 0x4063B820, 0x00000002, - 0x4062CE42, 0x4063B820, 0x00000002, 0x4062CE43, 0x4063B820, 0x00000002, - 0x4062CE44, 0x4063B820, 0x00000002, 0x4062CE45, 0x4063B820, 0x00000002, - 0x4062CE46, 0x4063B820, 0x00000002, 0x4062CE47, 0x4063B820, 0x00000003, - 0x4062CE21, 0x4063B820, 0x40646420, 0x00000003, 0x4062CE22, 0x4063B820, - 0x40646420, 0x00000003, 0x4062CE23, 0x4063B820, 0x40646420, 0x00000003, - 0x4062CE24, 0x4063B820, 0x40646420, 0x00000003, 0x4062CE25, 0x4063B820, - 0x40646420, 0x00000002, 0x4062CE21, 0x4063C020, - // Block 634, offset 0x9e80 - 0x00000002, 0x4062CE22, 0x4063C020, 0x00000002, 0x4062CE23, 0x4063C020, - 0x00000002, 0x4062CE24, 0x4063C020, 0x00000002, 0x4062CE25, 0x4063C020, - 0x00000002, 0x4062CE26, 0x4063C020, 0x00000002, 0x4062CE27, 0x4063C020, - 0x00000002, 0x4062CE28, 0x4063C020, 0x00000002, 0x4062CE29, 0x4063C020, - 0x00000002, 0x4062CE2A, 0x4063C020, 0x00000002, 0x4062CE2B, 0x4063C020, - 0x00000002, 0x4062CE2C, 0x4063C020, 0x00000002, 0x4062CE2D, 0x4063C020, - 0x00000002, 0x4062CE2E, 0x4063C020, 0x00000002, 0x4062CE2F, 0x4063C020, - 0x00000002, 0x4062CE30, 0x4063C020, 0x00000002, 0x4062CE31, 0x4063C020, - 0x00000002, 0x4062CE32, 0x4063C020, 0x00000002, 0x4062CE33, 0x4063C020, - 0x00000002, 0x4062CE34, 0x4063C020, 0x00000002, 0x4062CE35, 0x4063C020, - 0x00000002, 0x4062CE36, 0x4063C020, 0x00000002, - // Block 635, offset 0x9ec0 - 0x4062CE37, 0x4063C020, 0x00000002, 0x4062CE38, 0x4063C020, 0x00000002, - 0x4062CE39, 0x4063C020, 0x00000002, 0x4062CE3A, 0x4063C020, 0x00000002, - 0x4062CE3B, 0x4063C020, 0x00000003, 0x4062CE21, 0x4063C220, 0x40648220, - 0x00000003, 0x4062CE22, 0x4063C220, 0x40648220, 0x00000003, 0x4062CE23, - 0x4063C220, 0x40648220, 0x00000003, 0x4062CE21, 0x4063C220, 0x40648C20, - 0x00000003, 0x4062CE22, 0x4063C220, 0x40648C20, 0x00000003, 0x4062CE23, - 0x4063C220, 0x40648C20, 0x00000003, 0x4062CE24, 0x4063C220, 0x40648C20, - 0x00000003, 0x4062CE25, 0x4063C220, 0x40648C20, 0x00000003, 0x4062CE26, - 0x4063C220, 0x40648C20, 0x00000003, 0x4062CE27, 0x4063C220, 0x40648C20, - 0x00000002, 0x4062CE21, 0x4063D020, 0x00000002, 0x4062CE22, 0x4063D020, - 0x00000002, 0x4062CE23, 0x4063D020, 0x00000002, - // Block 636, offset 0x9f00 - 0x4062CE24, 0x4063D020, 0x00000002, 0x4062CE25, 0x4063D020, 0x00000002, - 0x4062CE26, 0x4063D020, 0x00000002, 0x4062CE27, 0x4063D020, 0x00000002, - 0x4062CE28, 0x4063D020, 0x00000002, 0x4062CE29, 0x4063D020, 0x00000002, - 0x4062CE2A, 0x4063D020, 0x00000002, 0x4062CE2B, 0x4063D020, 0x00000003, - 0x4062CE21, 0x4063D020, 0x40646420, 0x00000003, 0x4062CE21, 0x4063D020, - 0x40647220, 0x00000003, 0x4062CE22, 0x4063D020, 0x40647220, 0x00000003, - 0x4062CE23, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE24, 0x4063D020, - 0x40647220, 0x00000003, 0x4062CE25, 0x4063D020, 0x40647220, 0x00000003, - 0x4062CE26, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE27, 0x4063D020, - 0x40647220, 0x00000003, 0x4062CE28, 0x4063D020, 0x40647220, 0x00000003, - 0x4062CE29, 0x4063D020, 0x40647220, 0x00000003, - // Block 637, offset 0x9f40 - 0x4062CE2A, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE2B, 0x4063D020, - 0x40647220, 0x00000003, 0x4062CE2C, 0x4063D020, 0x40647220, 0x00000003, - 0x4062CE2D, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE2E, 0x4063D020, - 0x40647220, 0x00000003, 0x4062CE2F, 0x4063D020, 0x40647220, 0x00000003, - 0x4062CE30, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE31, 0x4063D020, - 0x40647220, 0x00000003, 0x4062CE32, 0x4063D020, 0x40647220, 0x00000003, - 0x4062CE33, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE34, 0x4063D020, - 0x40647220, 0x00000003, 0x4062CE35, 0x4063D020, 0x40647220, 0x00000003, - 0x4062CE36, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE21, 0x4063D020, - 0x40648420, 0x00000003, 0x4062CE22, 0x4063D020, 0x40648420, 0x00000003, - 0x4062CE23, 0x4063D020, 0x40648420, 0x00000002, - // Block 638, offset 0x9f80 - 0x4062D021, 0x4063A820, 0x00000002, 0x4062D022, 0x4063A820, 0x00000002, - 0x4062D023, 0x4063A820, 0x00000002, 0x4062D024, 0x4063A820, 0x00000002, - 0x4062D025, 0x4063A820, 0x00000002, 0x4062D026, 0x4063A820, 0x00000002, - 0x4062D027, 0x4063A820, 0x00000002, 0x4062D028, 0x4063A820, 0x00000002, - 0x4062D029, 0x4063A820, 0x00000002, 0x4062D02A, 0x4063A820, 0x00000002, - 0x4062D02B, 0x4063A820, 0x00000002, 0x4062D02C, 0x4063A820, 0x00000002, - 0x4062D02D, 0x4063A820, 0x00000002, 0x4062D02E, 0x4063A820, 0x00000002, - 0x4062D02F, 0x4063A820, 0x00000002, 0x4062D030, 0x4063A820, 0x00000002, - 0x4062D031, 0x4063A820, 0x00000002, 0x4062D032, 0x4063A820, 0x00000002, - 0x4062D033, 0x4063A820, 0x00000002, 0x4062D034, 0x4063A820, 0x00000002, - 0x4062D035, 0x4063A820, 0x00000002, 0x4062D036, - // Block 639, offset 0x9fc0 - 0x4063A820, 0x00000003, 0x4062D021, 0x4063A820, 0x40646420, 0x00000003, - 0x4062D022, 0x4063A820, 0x40646420, 0x00000003, 0x4062D023, 0x4063A820, - 0x40646420, 0x00000003, 0x4062D024, 0x4063A820, 0x40646420, 0x00000003, - 0x4062D025, 0x4063A820, 0x40646420, 0x00000003, 0x4062D026, 0x4063A820, - 0x40646420, 0x00000003, 0x4062D027, 0x4063A820, 0x40646420, 0x00000003, - 0x4062D028, 0x4063A820, 0x40646420, 0x00000003, 0x4062D029, 0x4063A820, - 0x40646420, 0x00000003, 0x4062D02A, 0x4063A820, 0x40646420, 0x00000003, - 0x4062D02B, 0x4063A820, 0x40646420, 0x00000003, 0x4062D021, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062D022, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062D023, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D024, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062D025, 0x4063A820, - // Block 640, offset 0xa000 - 0x40646A20, 0x00000003, 0x4062D026, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062D027, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D028, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062D029, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062D02A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D02B, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062D02C, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062D02D, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D02E, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062D02F, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062D030, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D031, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062D032, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062D033, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D034, 0x4063A820, - 0x40646A20, 0x00000003, 0x4062D035, 0x4063A820, - // Block 641, offset 0xa040 - 0x40646A20, 0x00000003, 0x4062D036, 0x4063A820, 0x40646A20, 0x00000003, - 0x4062D037, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D021, 0x4063A820, - 0x40647220, 0x00000003, 0x4062D022, 0x4063A820, 0x40647220, 0x00000003, - 0x4062D023, 0x4063A820, 0x40647220, 0x00000003, 0x4062D021, 0x4063A820, - 0x40648220, 0x00000003, 0x4062D022, 0x4063A820, 0x40648220, 0x00000003, - 0x4062D023, 0x4063A820, 0x40648220, 0x00000003, 0x4062D024, 0x4063A820, - 0x40648220, 0x00000003, 0x4062D025, 0x4063A820, 0x40648220, 0x00000003, - 0x4062D026, 0x4063A820, 0x40648220, 0x00000003, 0x4062D027, 0x4063A820, - 0x40648220, 0x00000003, 0x4062D028, 0x4063A820, 0x40648220, 0x00000003, - 0x4062D029, 0x4063A820, 0x40648220, 0x00000003, 0x4062D02A, 0x4063A820, - 0x40648220, 0x00000003, 0x4062D02B, 0x4063A820, - // Block 642, offset 0xa080 - 0x40648220, 0x00000003, 0x4062D02C, 0x4063A820, 0x40648220, 0x00000003, - 0x4062D02D, 0x4063A820, 0x40648220, 0x00000003, 0x4062D02E, 0x4063A820, - 0x40648220, 0x00000003, 0x4062D02F, 0x4063A820, 0x40648220, 0x00000003, - 0x4062D030, 0x4063A820, 0x40648220, 0x00000003, 0x4062D031, 0x4063A820, - 0x40648220, 0x00000003, 0x4062D021, 0x4063A820, 0x40648420, 0x00000003, - 0x4062D022, 0x4063A820, 0x40648420, 0x00000003, 0x4062D023, 0x4063A820, - 0x40648420, 0x00000003, 0x4062D024, 0x4063A820, 0x40648420, 0x00000003, - 0x4062D025, 0x4063A820, 0x40648420, 0x00000003, 0x4062D026, 0x4063A820, - 0x40648420, 0x00000003, 0x4062D027, 0x4063A820, 0x40648420, 0x00000003, - 0x4062D028, 0x4063A820, 0x40648420, 0x00000003, 0x4062D029, 0x4063A820, - 0x40648420, 0x00000003, 0x4062D02A, 0x4063A820, - // Block 643, offset 0xa0c0 - 0x40648420, 0x00000003, 0x4062D02B, 0x4063A820, 0x40648420, 0x00000003, - 0x4062D02C, 0x4063A820, 0x40648420, 0x00000003, 0x4062D02D, 0x4063A820, - 0x40648420, 0x00000003, 0x4062D02E, 0x4063A820, 0x40648420, 0x00000003, - 0x4062D021, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D022, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062D023, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062D024, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D025, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062D026, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062D027, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D028, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062D029, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062D02A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D02B, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062D02C, 0x4063A820, - // Block 644, offset 0xa100 - 0x40648C20, 0x00000003, 0x4062D02D, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062D02E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D02F, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062D030, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062D031, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D032, 0x4063A820, - 0x40648C20, 0x00000003, 0x4062D033, 0x4063A820, 0x40648C20, 0x00000003, - 0x4062D034, 0x4063A820, 0x40648C20, 0x00000002, 0x4062D021, 0x4063AA20, - 0x00000002, 0x4062D022, 0x4063AA20, 0x00000002, 0x4062D023, 0x4063AA20, - 0x00000002, 0x4062D024, 0x4063AA20, 0x00000002, 0x4062D025, 0x4063AA20, - 0x00000002, 0x4062D026, 0x4063AA20, 0x00000002, 0x4062D027, 0x4063AA20, - 0x00000002, 0x4062D028, 0x4063AA20, 0x00000002, 0x4062D029, 0x4063AA20, - 0x00000002, 0x4062D02A, 0x4063AA20, 0x00000002, - // Block 645, offset 0xa140 - 0x4062D02B, 0x4063AA20, 0x00000002, 0x4062D02C, 0x4063AA20, 0x00000002, - 0x4062D02D, 0x4063AA20, 0x00000002, 0x4062D02E, 0x4063AA20, 0x00000002, - 0x4062D02F, 0x4063AA20, 0x00000002, 0x4062D030, 0x4063AA20, 0x00000002, - 0x4062D031, 0x4063AA20, 0x00000002, 0x4062D032, 0x4063AA20, 0x00000002, - 0x4062D033, 0x4063AA20, 0x00000002, 0x4062D034, 0x4063AA20, 0x00000002, - 0x4062D035, 0x4063AA20, 0x00000002, 0x4062D036, 0x4063AA20, 0x00000002, - 0x4062D037, 0x4063AA20, 0x00000002, 0x4062D038, 0x4063AA20, 0x00000002, - 0x4062D039, 0x4063AA20, 0x00000002, 0x4062D03A, 0x4063AA20, 0x00000002, - 0x4062D03B, 0x4063AA20, 0x00000002, 0x4062D03C, 0x4063AA20, 0x00000002, - 0x4062D03D, 0x4063AA20, 0x00000003, 0x4062D021, 0x4063AA20, 0x40646420, - 0x00000003, 0x4062D022, 0x4063AA20, 0x40646420, - // Block 646, offset 0xa180 - 0x00000003, 0x4062D023, 0x4063AA20, 0x40646420, 0x00000003, 0x4062D024, - 0x4063AA20, 0x40646420, 0x00000003, 0x4062D021, 0x4063AA20, 0x40648C20, - 0x00000003, 0x4062D022, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062D023, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062D024, 0x4063AA20, 0x40648C20, - 0x00000003, 0x4062D025, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062D026, - 0x4063AA20, 0x40648C20, 0x00000003, 0x4062D021, 0x4063AC20, 0x40648C20, - 0x00000003, 0x4062D022, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D023, - 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D024, 0x4063AC20, 0x40648C20, - 0x00000003, 0x4062D025, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D026, - 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D027, 0x4063AC20, 0x40648C20, - 0x00000003, 0x4062D028, 0x4063AC20, 0x40648C20, - // Block 647, offset 0xa1c0 - 0x00000003, 0x4062D029, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D02A, - 0x4063AC20, 0x40648C20, 0x00000002, 0x4062D021, 0x4063B020, 0x00000002, - 0x4062D022, 0x4063B020, 0x00000002, 0x4062D023, 0x4063B020, 0x00000002, - 0x4062D024, 0x4063B020, 0x00000002, 0x4062D025, 0x4063B020, 0x00000003, - 0x4062D021, 0x4063B020, 0x40646A20, 0x00000003, 0x4062D022, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062D023, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062D024, 0x4063B020, 0x40646A20, 0x00000003, 0x4062D025, 0x4063B020, - 0x40646A20, 0x00000003, 0x4062D026, 0x4063B020, 0x40646A20, 0x00000003, - 0x4062D027, 0x4063B020, 0x40646A20, 0x00000003, 0x4062D021, 0x4063B020, - 0x40647220, 0x00000003, 0x4062D021, 0x4063B020, 0x40648220, 0x00000003, - 0x4062D022, 0x4063B020, 0x40648220, 0x00000003, - // Block 648, offset 0xa200 - 0x4062D023, 0x4063B020, 0x40648220, 0x00000003, 0x4062D024, 0x4063B020, - 0x40648220, 0x00000003, 0x4062D025, 0x4063B020, 0x40648220, 0x00000003, - 0x4062D021, 0x4063B420, 0x40646420, 0x00000003, 0x4062D022, 0x4063B420, - 0x40646420, 0x00000003, 0x4062D023, 0x4063B420, 0x40646420, 0x00000003, - 0x4062D024, 0x4063B420, 0x40646420, 0x00000003, 0x4062D025, 0x4063B420, - 0x40646420, 0x00000003, 0x4062D026, 0x4063B420, 0x40646420, 0x00000003, - 0x4062D027, 0x4063B420, 0x40646420, 0x00000003, 0x4062D028, 0x4063B420, - 0x40646420, 0x00000003, 0x4062D021, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062D022, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D023, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062D024, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062D025, 0x4063B420, 0x40646A20, 0x00000003, - // Block 649, offset 0xa240 - 0x4062D026, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D027, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062D028, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062D029, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D02A, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062D02B, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062D02C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D02D, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062D02E, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062D02F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D030, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062D031, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062D032, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D033, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062D034, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062D035, 0x4063B420, 0x40646A20, 0x00000003, - // Block 650, offset 0xa280 - 0x4062D036, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D037, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062D038, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062D039, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D03A, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062D03B, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062D03C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D03D, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062D03E, 0x4063B420, 0x40646A20, 0x00000003, - 0x4062D03F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D040, 0x4063B420, - 0x40646A20, 0x00000003, 0x4062D021, 0x4063B420, 0x40647220, 0x00000003, - 0x4062D022, 0x4063B420, 0x40647220, 0x00000003, 0x4062D023, 0x4063B420, - 0x40647220, 0x00000003, 0x4062D024, 0x4063B420, 0x40647220, 0x00000003, - 0x4062D025, 0x4063B420, 0x40647220, 0x00000003, - // Block 651, offset 0xa2c0 - 0x4062D026, 0x4063B420, 0x40647220, 0x00000003, 0x4062D021, 0x4063B420, - 0x40648220, 0x00000003, 0x4062D021, 0x4063B420, 0x40648420, 0x00000003, - 0x4062D022, 0x4063B420, 0x40648420, 0x00000003, 0x4062D023, 0x4063B420, - 0x40648420, 0x00000003, 0x4062D024, 0x4063B420, 0x40648420, 0x00000003, - 0x4062D025, 0x4063B420, 0x40648420, 0x00000003, 0x4062D026, 0x4063B420, - 0x40648420, 0x00000003, 0x4062D027, 0x4063B420, 0x40648420, 0x00000003, - 0x4062D028, 0x4063B420, 0x40648420, 0x00000003, 0x4062D029, 0x4063B420, - 0x40648420, 0x00000003, 0x4062D02A, 0x4063B420, 0x40648420, 0x00000003, - 0x4062D02B, 0x4063B420, 0x40648420, 0x00000003, 0x4062D02C, 0x4063B420, - 0x40648420, 0x00000003, 0x4062D02D, 0x4063B420, 0x40648420, 0x00000003, - 0x4062D02E, 0x4063B420, 0x40648420, 0x00000003, - // Block 652, offset 0xa300 - 0x4062D02F, 0x4063B420, 0x40648420, 0x00000003, 0x4062D030, 0x4063B420, - 0x40648420, 0x00000003, 0x4062D031, 0x4063B420, 0x40648420, 0x00000003, - 0x4062D032, 0x4063B420, 0x40648420, 0x00000003, 0x4062D033, 0x4063B420, - 0x40648420, 0x00000003, 0x4062D021, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062D022, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D023, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062D024, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062D025, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D026, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062D027, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062D028, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D029, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062D02A, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062D02B, 0x4063B420, 0x40648C20, 0x00000003, - // Block 653, offset 0xa340 - 0x4062D02C, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D02D, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062D02E, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062D02F, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D030, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062D031, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062D032, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D033, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062D034, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062D035, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D036, 0x4063B420, - 0x40648C20, 0x00000003, 0x4062D037, 0x4063B420, 0x40648C20, 0x00000003, - 0x4062D038, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D039, 0x4063B420, - 0x40648C20, 0x00000002, 0x4062D021, 0x4063B620, 0x00000002, 0x4062D022, - 0x4063B620, 0x00000002, 0x4062D023, 0x4063B620, - // Block 654, offset 0xa380 - 0x00000002, 0x4062D024, 0x4063B620, 0x00000002, 0x4062D025, 0x4063B620, - 0x00000002, 0x4062D026, 0x4063B620, 0x00000002, 0x4062D027, 0x4063B620, - 0x00000002, 0x4062D028, 0x4063B620, 0x00000002, 0x4062D029, 0x4063B620, - 0x00000002, 0x4062D02A, 0x4063B620, 0x00000002, 0x4062D02B, 0x4063B620, - 0x00000002, 0x4062D02C, 0x4063B620, 0x00000002, 0x4062D02D, 0x4063B620, - 0x00000002, 0x4062D02E, 0x4063B620, 0x00000002, 0x4062D02F, 0x4063B620, - 0x00000002, 0x4062D030, 0x4063B620, 0x00000002, 0x4062D031, 0x4063B620, - 0x00000002, 0x4062D021, 0x4063B820, 0x00000002, 0x4062D022, 0x4063B820, - 0x00000002, 0x4062D023, 0x4063B820, 0x00000002, 0x4062D024, 0x4063B820, - 0x00000002, 0x4062D025, 0x4063B820, 0x00000002, 0x4062D026, 0x4063B820, - 0x00000002, 0x4062D027, 0x4063B820, 0x00000002, - // Block 655, offset 0xa3c0 - 0x4062D028, 0x4063B820, 0x00000002, 0x4062D029, 0x4063B820, 0x00000002, - 0x4062D02A, 0x4063B820, 0x00000002, 0x4062D02B, 0x4063B820, 0x00000002, - 0x4062D02C, 0x4063B820, 0x00000002, 0x4062D02D, 0x4063B820, 0x00000002, - 0x4062D02E, 0x4063B820, 0x00000002, 0x4062D02F, 0x4063B820, 0x00000002, - 0x4062D030, 0x4063B820, 0x00000002, 0x4062D031, 0x4063B820, 0x00000002, - 0x4062D032, 0x4063B820, 0x00000002, 0x4062D033, 0x4063B820, 0x00000002, - 0x4062D034, 0x4063B820, 0x00000002, 0x4062D035, 0x4063B820, 0x00000002, - 0x4062D036, 0x4063B820, 0x00000002, 0x4062D037, 0x4063B820, 0x00000002, - 0x4062D038, 0x4063B820, 0x00000002, 0x4062D039, 0x4063B820, 0x00000002, - 0x4062D03A, 0x4063B820, 0x00000002, 0x4062D03B, 0x4063B820, 0x00000002, - 0x4062D03C, 0x4063B820, 0x00000002, 0x4062D03D, - // Block 656, offset 0xa400 - 0x4063B820, 0x00000002, 0x4062D03E, 0x4063B820, 0x00000002, 0x4062D03F, - 0x4063B820, 0x00000002, 0x4062D040, 0x4063B820, 0x00000002, 0x4062D041, - 0x4063B820, 0x00000002, 0x4062D042, 0x4063B820, 0x00000002, 0x4062D043, - 0x4063B820, 0x00000002, 0x4062D044, 0x4063B820, 0x00000002, 0x4062D045, - 0x4063B820, 0x00000002, 0x4062D046, 0x4063B820, 0x00000002, 0x4062D047, - 0x4063B820, 0x00000002, 0x4062D048, 0x4063B820, 0x00000002, 0x4062D049, - 0x4063B820, 0x00000002, 0x4062D04A, 0x4063B820, 0x00000002, 0x4062D04B, - 0x4063B820, 0x00000002, 0x4062D04C, 0x4063B820, 0x00000002, 0x4062D04D, - 0x4063B820, 0x00000002, 0x4062D04E, 0x4063B820, 0x00000002, 0x4062D04F, - 0x4063B820, 0x00000002, 0x4062D050, 0x4063B820, 0x00000002, 0x4062D051, - 0x4063B820, 0x00000002, 0x4062D052, 0x4063B820, - // Block 657, offset 0xa440 - 0x00000002, 0x4062D053, 0x4063B820, 0x00000002, 0x4062D054, 0x4063B820, - 0x00000002, 0x4062D055, 0x4063B820, 0x00000002, 0x4062D056, 0x4063B820, - 0x00000002, 0x4062D057, 0x4063B820, 0x00000002, 0x4062D058, 0x4063B820, - 0x00000002, 0x4062D059, 0x4063B820, 0x00000002, 0x4062D05A, 0x4063B820, - 0x00000002, 0x4062D05B, 0x4063B820, 0x00000003, 0x4062D021, 0x4063B820, - 0x40646420, 0x00000003, 0x4062D022, 0x4063B820, 0x40646420, 0x00000003, - 0x4062D023, 0x4063B820, 0x40646420, 0x00000003, 0x4062D021, 0x4063B820, - 0x40646A20, 0x00000003, 0x4062D022, 0x4063B820, 0x40646A20, 0x00000003, - 0x4062D023, 0x4063B820, 0x40646A20, 0x00000003, 0x4062D024, 0x4063B820, - 0x40646A20, 0x00000003, 0x4062D025, 0x4063B820, 0x40646A20, 0x00000003, - 0x4062D026, 0x4063B820, 0x40646A20, 0x00000003, - // Block 658, offset 0xa480 - 0x4062D027, 0x4063B820, 0x40646A20, 0x00000003, 0x4062D028, 0x4063B820, - 0x40646A20, 0x00000003, 0x4062D029, 0x4063B820, 0x40646A20, 0x00000003, - 0x4062D02A, 0x4063B820, 0x40646A20, 0x00000003, 0x4062D02B, 0x4063B820, - 0x40646A20, 0x00000003, 0x4062D021, 0x4063B820, 0x40647220, 0x00000003, - 0x4062D022, 0x4063B820, 0x40647220, 0x00000003, 0x4062D023, 0x4063B820, - 0x40647220, 0x00000003, 0x4062D024, 0x4063B820, 0x40647220, 0x00000003, - 0x4062D021, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D022, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062D023, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062D024, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D025, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062D026, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062D027, 0x4063B820, 0x40648C20, 0x00000003, - // Block 659, offset 0xa4c0 - 0x4062D028, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D029, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062D02A, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062D02B, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D02C, 0x4063B820, - 0x40648C20, 0x00000003, 0x4062D02D, 0x4063B820, 0x40648C20, 0x00000003, - 0x4062D02E, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D02F, 0x4063B820, - 0x40648C20, 0x00000002, 0x4062D021, 0x4063BA20, 0x00000002, 0x4062D022, - 0x4063BA20, 0x00000002, 0x4062D023, 0x4063BA20, 0x00000002, 0x4062D024, - 0x4063BA20, 0x00000002, 0x4062D025, 0x4063BA20, 0x00000002, 0x4062D026, - 0x4063BA20, 0x00000002, 0x4062D027, 0x4063BA20, 0x00000002, 0x4062D028, - 0x4063BA20, 0x00000002, 0x4062D029, 0x4063BA20, 0x00000002, 0x4062D02A, - 0x4063BA20, 0x00000002, 0x4062D02B, 0x4063BA20, - // Block 660, offset 0xa500 - 0x00000002, 0x4062D02C, 0x4063BA20, 0x00000002, 0x4062D02D, 0x4063BA20, - 0x00000002, 0x4062D02E, 0x4063BA20, 0x00000002, 0x4062D02F, 0x4063BA20, - 0x00000002, 0x4062D030, 0x4063BA20, 0x00000002, 0x4062D031, 0x4063BA20, - 0x00000002, 0x4062D032, 0x4063BA20, 0x00000002, 0x4062D033, 0x4063BA20, - 0x00000002, 0x4062D034, 0x4063BA20, 0x00000002, 0x4062D035, 0x4063BA20, - 0x00000003, 0x4062D021, 0x4063BA20, 0x40646420, 0x00000003, 0x4062D022, - 0x4063BA20, 0x40646420, 0x00000003, 0x4062D023, 0x4063BA20, 0x40646420, - 0x00000003, 0x4062D024, 0x4063BA20, 0x40646420, 0x00000003, 0x4062D025, - 0x4063BA20, 0x40646420, 0x00000003, 0x4062D026, 0x4063BA20, 0x40646420, - 0x00000003, 0x4062D027, 0x4063BA20, 0x40646420, 0x00000003, 0x4062D028, - 0x4063BA20, 0x40646420, 0x00000003, 0x4062D029, - // Block 661, offset 0xa540 - 0x4063BA20, 0x40646420, 0x00000003, 0x4062D021, 0x4063BA20, 0x40646A20, - 0x00000003, 0x4062D022, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D023, - 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D024, 0x4063BA20, 0x40646A20, - 0x00000003, 0x4062D025, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D026, - 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D027, 0x4063BA20, 0x40646A20, - 0x00000003, 0x4062D028, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D029, - 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D02A, 0x4063BA20, 0x40646A20, - 0x00000003, 0x4062D02B, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D02C, - 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D02D, 0x4063BA20, 0x40646A20, - 0x00000003, 0x4062D02E, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D02F, - 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D030, - // Block 662, offset 0xa580 - 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D031, 0x4063BA20, 0x40646A20, - 0x00000003, 0x4062D032, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D033, - 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D034, 0x4063BA20, 0x40646A20, - 0x00000003, 0x4062D035, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D036, - 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D037, 0x4063BA20, 0x40646A20, - 0x00000003, 0x4062D038, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D039, - 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D03A, 0x4063BA20, 0x40646A20, - 0x00000003, 0x4062D03B, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D03C, - 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D03D, 0x4063BA20, 0x40646A20, - 0x00000003, 0x4062D021, 0x4063BA20, 0x40647220, 0x00000003, 0x4062D022, - 0x4063BA20, 0x40647220, 0x00000003, 0x4062D023, - // Block 663, offset 0xa5c0 - 0x4063BA20, 0x40647220, 0x00000003, 0x4062D024, 0x4063BA20, 0x40647220, - 0x00000003, 0x4062D025, 0x4063BA20, 0x40647220, 0x00000003, 0x4062D026, - 0x4063BA20, 0x40647220, 0x00000003, 0x4062D021, 0x4063BA20, 0x40648C20, - 0x00000003, 0x4062D022, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D023, - 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D024, 0x4063BA20, 0x40648C20, - 0x00000003, 0x4062D025, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D026, - 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D027, 0x4063BA20, 0x40648C20, - 0x00000003, 0x4062D028, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D029, - 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D02A, 0x4063BA20, 0x40648C20, - 0x00000003, 0x4062D02B, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D02C, - 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D02D, - // Block 664, offset 0xa600 - 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D02E, 0x4063BA20, 0x40648C20, - 0x00000003, 0x4062D02F, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D030, - 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D031, 0x4063BA20, 0x40648C20, - 0x00000003, 0x4062D032, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D033, - 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D034, 0x4063BA20, 0x40648C20, - 0x00000003, 0x4062D035, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D036, - 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D037, 0x4063BA20, 0x40648C20, - 0x00000003, 0x4062D038, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D039, - 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D03A, 0x4063BA20, 0x40648C20, - 0x00000003, 0x4062D03B, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D03C, - 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D03D, - // Block 665, offset 0xa640 - 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D03E, 0x4063BA20, 0x40648C20, - 0x00000003, 0x4062D03F, 0x4063BA20, 0x40648C20, 0x00000002, 0x4062D021, - 0x4063BE20, 0x00000002, 0x4062D022, 0x4063BE20, 0x00000002, 0x4062D023, - 0x4063BE20, 0x00000002, 0x4062D024, 0x4063BE20, 0x00000002, 0x4062D025, - 0x4063BE20, 0x00000002, 0x4062D026, 0x4063BE20, 0x00000002, 0x4062D027, - 0x4063BE20, 0x00000002, 0x4062D028, 0x4063BE20, 0x00000002, 0x4062D029, - 0x4063BE20, 0x00000002, 0x4062D02A, 0x4063BE20, 0x00000002, 0x4062D02B, - 0x4063BE20, 0x00000002, 0x4062D02C, 0x4063BE20, 0x00000002, 0x4062D02D, - 0x4063BE20, 0x00000002, 0x4062D02E, 0x4063BE20, 0x00000002, 0x4062D02F, - 0x4063BE20, 0x00000002, 0x4062D030, 0x4063BE20, 0x00000002, 0x4062D031, - 0x4063BE20, 0x00000002, 0x4062D032, 0x4063BE20, - // Block 666, offset 0xa680 - 0x00000002, 0x4062D033, 0x4063BE20, 0x00000002, 0x4062D034, 0x4063BE20, - 0x00000002, 0x4062D035, 0x4063BE20, 0x00000002, 0x4062D036, 0x4063BE20, - 0x00000002, 0x4062D037, 0x4063BE20, 0x00000002, 0x4062D038, 0x4063BE20, - 0x00000002, 0x4062D039, 0x4063BE20, 0x00000002, 0x4062D03A, 0x4063BE20, - 0x00000002, 0x4062D03B, 0x4063BE20, 0x00000002, 0x4062D03C, 0x4063BE20, - 0x00000002, 0x4062D03D, 0x4063BE20, 0x00000003, 0x4062D021, 0x4063BE20, - 0x40646420, 0x00000003, 0x4062D022, 0x4063BE20, 0x40646420, 0x00000003, - 0x4062D023, 0x4063BE20, 0x40646420, 0x00000003, 0x4062D021, 0x4063BE20, - 0x40648C20, 0x00000003, 0x4062D022, 0x4063BE20, 0x40648C20, 0x00000003, - 0x4062D023, 0x4063BE20, 0x40648C20, 0x00000003, 0x4062D024, 0x4063BE20, - 0x40648C20, 0x00000003, 0x4062D025, 0x4063BE20, - // Block 667, offset 0xa6c0 - 0x40648C20, 0x00000003, 0x4062D026, 0x4063BE20, 0x40648C20, 0x00000002, - 0x4062D021, 0x4063C020, 0x00000002, 0x4062D022, 0x4063C020, 0x00000002, - 0x4062D023, 0x4063C020, 0x00000002, 0x4062D024, 0x4063C020, 0x00000002, - 0x4062D025, 0x4063C020, 0x00000002, 0x4062D026, 0x4063C020, 0x00000002, - 0x4062D027, 0x4063C020, 0x00000002, 0x4062D028, 0x4063C020, 0x00000002, - 0x4062D029, 0x4063C020, 0x00000002, 0x4062D02A, 0x4063C020, 0x00000002, - 0x4062D02B, 0x4063C020, 0x00000002, 0x4062D02C, 0x4063C020, 0x00000002, - 0x4062D02D, 0x4063C020, 0x00000002, 0x4062D02E, 0x4063C020, 0x00000002, - 0x4062D02F, 0x4063C020, 0x00000002, 0x4062D030, 0x4063C020, 0x00000002, - 0x4062D031, 0x4063C020, 0x00000002, 0x4062D032, 0x4063C020, 0x00000002, - 0x4062D033, 0x4063C020, 0x00000002, 0x4062D034, - // Block 668, offset 0xa700 - 0x4063C020, 0x00000002, 0x4062D035, 0x4063C020, 0x00000002, 0x4062D021, - 0x4063C220, 0x00000002, 0x4062D022, 0x4063C220, 0x00000002, 0x4062D023, - 0x4063C220, 0x00000002, 0x4062D024, 0x4063C220, 0x00000002, 0x4062D025, - 0x4063C220, 0x00000002, 0x4062D026, 0x4063C220, 0x00000002, 0x4062D027, - 0x4063C220, 0x00000002, 0x4062D028, 0x4063C220, 0x00000002, 0x4062D029, - 0x4063C220, 0x00000002, 0x4062D02A, 0x4063C220, 0x00000002, 0x4062D02B, - 0x4063C220, 0x00000002, 0x4062D02C, 0x4063C220, 0x00000002, 0x4062D02D, - 0x4063C220, 0x00000002, 0x4062D02E, 0x4063C220, 0x00000002, 0x4062D02F, - 0x4063C220, 0x00000002, 0x4062D030, 0x4063C220, 0x00000002, 0x4062D031, - 0x4063C220, 0x00000002, 0x4062D032, 0x4063C220, 0x00000002, 0x4062D033, - 0x4063C220, 0x00000002, 0x4062D034, 0x4063C220, - // Block 669, offset 0xa740 - 0x00000002, 0x4062D035, 0x4063C220, 0x00000002, 0x4062D036, 0x4063C220, - 0x00000002, 0x4062D037, 0x4063C220, 0x00000002, 0x4062D038, 0x4063C220, - 0x00000003, 0x4062D021, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D022, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062D023, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062D024, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D025, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062D026, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062D027, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D028, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062D029, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062D02A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D02B, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062D02C, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062D02D, 0x4063C220, 0x40646A20, - // Block 670, offset 0xa780 - 0x00000003, 0x4062D02E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D02F, - 0x4063C220, 0x40646A20, 0x00000003, 0x4062D030, 0x4063C220, 0x40646A20, - 0x00000003, 0x4062D021, 0x4063C220, 0x40647220, 0x00000003, 0x4062D021, - 0x4063C220, 0x40648C20, 0x00000003, 0x4062D021, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062D022, 0x4063C420, 0x40646A20, 0x00000003, 0x4062D023, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062D024, 0x4063C420, 0x40646A20, - 0x00000003, 0x4062D025, 0x4063C420, 0x40646A20, 0x00000003, 0x4062D026, - 0x4063C420, 0x40646A20, 0x00000003, 0x4062D027, 0x4063C420, 0x40646A20, - 0x00000002, 0x4062D021, 0x4063C620, 0x00000002, 0x4062D022, 0x4063C620, - 0x00000002, 0x4062D023, 0x4063C620, 0x00000002, 0x4062D024, 0x4063C620, - 0x00000002, 0x4062D025, 0x4063C620, 0x00000002, - // Block 671, offset 0xa7c0 - 0x4062D026, 0x4063C620, 0x00000002, 0x4062D027, 0x4063C620, 0x00000002, - 0x4062D021, 0x4063C820, 0x00000002, 0x4062D022, 0x4063C820, 0x00000002, - 0x4062D023, 0x4063C820, 0x00000002, 0x4062D024, 0x4063C820, 0x00000002, - 0x4062D025, 0x4063C820, 0x00000002, 0x4062D026, 0x4063C820, 0x00000002, - 0x4062D027, 0x4063C820, 0x00000002, 0x4062D028, 0x4063C820, 0x00000002, - 0x4062D029, 0x4063C820, 0x00000002, 0x4062D02A, 0x4063C820, 0x00000002, - 0x4062D021, 0x4063CA20, 0x00000002, 0x4062D022, 0x4063CA20, 0x00000002, - 0x4062D023, 0x4063CA20, 0x00000002, 0x4062D024, 0x4063CA20, 0x00000002, - 0x4062D025, 0x4063CA20, 0x00000002, 0x4062D026, 0x4063CA20, 0x00000002, - 0x4062D027, 0x4063CA20, 0x00000002, 0x4062D028, 0x4063CA20, 0x00000002, - 0x4062D029, 0x4063CA20, 0x00000002, 0x4062D02A, - // Block 672, offset 0xa800 - 0x4063CA20, 0x00000003, 0x4062D021, 0x4063CA20, 0x40647220, 0x00000003, - 0x4062D022, 0x4063CA20, 0x40647220, 0x00000003, 0x4062D023, 0x4063CA20, - 0x40647220, 0x00000003, 0x4062D024, 0x4063CA20, 0x40647220, 0x00000003, - 0x4062D021, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062D022, 0x4063CA20, - 0x40648C20, 0x00000003, 0x4062D023, 0x4063CA20, 0x40648C20, 0x00000003, - 0x4062D024, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062D025, 0x4063CA20, - 0x40648C20, 0x00000003, 0x4062D026, 0x4063CA20, 0x40648C20, 0x00000003, - 0x4062D027, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062D021, 0x4063CC20, - 0x40646420, 0x00000003, 0x4062D021, 0x4063CC20, 0x40646A20, 0x00000003, - 0x4062D022, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062D023, 0x4063CC20, - 0x40646A20, 0x00000003, 0x4062D024, 0x4063CC20, - // Block 673, offset 0xa840 - 0x40646A20, 0x00000003, 0x4062D025, 0x4063CC20, 0x40646A20, 0x00000003, - 0x4062D026, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062D027, 0x4063CC20, - 0x40646A20, 0x00000003, 0x4062D028, 0x4063CC20, 0x40646A20, 0x00000003, - 0x4062D029, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062D02A, 0x4063CC20, - 0x40646A20, 0x00000003, 0x4062D021, 0x4063CC20, 0x40647220, 0x00000003, - 0x4062D022, 0x4063CC20, 0x40647220, 0x00000003, 0x4062D023, 0x4063CC20, - 0x40647220, 0x00000003, 0x4062D024, 0x4063CC20, 0x40647220, 0x00000003, - 0x4062D025, 0x4063CC20, 0x40647220, 0x00000003, 0x4062D026, 0x4063CC20, - 0x40647220, 0x00000003, 0x4062D027, 0x4063CC20, 0x40647220, 0x00000003, - 0x4062D028, 0x4063CC20, 0x40647220, 0x00000003, 0x4062D029, 0x4063CC20, - 0x40647220, 0x00000003, 0x4062D021, 0x4063CC20, - // Block 674, offset 0xa880 - 0x40648220, 0x00000003, 0x4062D022, 0x4063CC20, 0x40648220, 0x00000003, - 0x4062D023, 0x4063CC20, 0x40648220, 0x00000003, 0x4062D024, 0x4063CC20, - 0x40648220, 0x00000003, 0x4062D021, 0x4063CC20, 0x40648420, 0x00000003, - 0x4062D022, 0x4063CC20, 0x40648420, 0x00000003, 0x4062D023, 0x4063CC20, - 0x40648420, 0x00000003, 0x4062D024, 0x4063CC20, 0x40648420, 0x00000003, - 0x4062D025, 0x4063CC20, 0x40648420, 0x00000003, 0x4062D026, 0x4063CC20, - 0x40648420, 0x00000003, 0x4062D027, 0x4063CC20, 0x40648420, 0x00000003, - 0x4062D028, 0x4063CC20, 0x40648420, 0x00000003, 0x4062D021, 0x4063CC20, - 0x40648C20, 0x00000002, 0x4062D021, 0x4063CE20, 0x00000002, 0x4062D022, - 0x4063CE20, 0x00000002, 0x4062D023, 0x4063CE20, 0x00000002, 0x4062D024, - 0x4063CE20, 0x00000002, 0x4062D025, 0x4063CE20, - // Block 675, offset 0xa8c0 - 0x00000002, 0x4062D026, 0x4063CE20, 0x00000002, 0x4062D027, 0x4063CE20, - 0x00000002, 0x4062D028, 0x4063CE20, 0x00000002, 0x4062D029, 0x4063CE20, - 0x00000002, 0x4062D02A, 0x4063CE20, 0x00000002, 0x4062D02B, 0x4063CE20, - 0x00000002, 0x4062D02C, 0x4063CE20, 0x00000002, 0x4062D02D, 0x4063CE20, - 0x00000002, 0x4062D02E, 0x4063CE20, 0x00000002, 0x4062D02F, 0x4063CE20, - 0x00000002, 0x4062D030, 0x4063CE20, 0x00000002, 0x4062D031, 0x4063CE20, - 0x00000002, 0x4062D032, 0x4063CE20, 0x00000002, 0x4062D033, 0x4063CE20, - 0x00000002, 0x4062D034, 0x4063CE20, 0x00000002, 0x4062D035, 0x4063CE20, - 0x00000002, 0x4062D036, 0x4063CE20, 0x00000002, 0x4062D037, 0x4063CE20, - 0x00000002, 0x4062D038, 0x4063CE20, 0x00000002, 0x4062D039, 0x4063CE20, - 0x00000002, 0x4062D03A, 0x4063CE20, 0x00000002, - // Block 676, offset 0xa900 - 0x4062D03B, 0x4063CE20, 0x00000002, 0x4062D03C, 0x4063CE20, 0x00000002, - 0x4062D03D, 0x4063CE20, 0x00000002, 0x4062D03E, 0x4063CE20, 0x00000002, - 0x4062D03F, 0x4063CE20, 0x00000003, 0x4062D021, 0x4063D020, 0x40647220, - 0x00000003, 0x4062D022, 0x4063D020, 0x40647220, 0x00000003, 0x4062D023, - 0x4063D020, 0x40647220, 0x00000003, 0x4062D024, 0x4063D020, 0x40647220, - 0x00000003, 0x4062D025, 0x4063D020, 0x40647220, 0x00000003, 0x4062D026, - 0x4063D020, 0x40647220, 0x00000002, 0x40403C20, 0xA070F102, 0x00000002, - 0x402D9A22, 0xAE603202, 0x00000002, 0x002D9AC3, 0xAE603202, 0x00000002, - 0x402D9A22, 0xAE603502, 0x00000002, 0x002D9AC3, 0xAE603502, 0x00000002, - 0x402D9A22, 0xAE603C02, 0x00000002, 0x002D9AC3, 0xAE603C02, 0x00000002, - 0x402D9A22, 0xAE604302, 0x00000002, 0x402D9A22, - // Block 677, offset 0xa940 - 0xAE604702, 0x00000002, 0x002D9AC3, 0xAE604702, 0x00000002, 0x402D9A22, - 0xAE604E02, 0x00000002, 0x002D9AC3, 0xAE604E02, 0x00000002, 0x402D9A22, - 0xAE605202, 0x00000002, 0x002D9AC3, 0xAE605202, 0x00000002, 0x402D9A22, - 0xAE605B02, 0x00000002, 0x002D9AC3, 0xAE605B02, 0x00000002, 0x402D9A22, - 0xAE606402, 0x00000002, 0x002D9AC3, 0xAE606402, 0x00000002, 0x402D9A22, - 0xADC07002, 0x00000002, 0x002D9AC3, 0xADC07002, 0x00000002, 0x40306C22, - 0xAE604702, 0x00000002, 0x00306CC3, 0xAE604702, 0x00000002, 0x40302A20, - 0xAE605202, 0x00000002, 0x00302A83, 0xAE605202, 0x00000002, 0x40442221, - 0x82092248, 0x00000002, 0x004422A3, 0x82092248, 0x00000002, 0x40443E21, - 0x82092248, 0x00000002, 0x00443EA3, 0x82092248, 0x00000002, 0x00444883, - 0x82092248, 0x00000002, 0x40444821, 0x82092248, - // Block 678, offset 0xa980 - 0x00000002, 0x004448A3, 0x82092248, 0x00000002, 0x40445421, 0x82092248, - 0x00000002, 0x40445821, 0x82092248, 0x00000002, 0x004458A3, 0x82092248, - 0x00000002, 0x40445A21, 0x82092248, 0x00000002, 0x00445AA3, 0x82092248, - 0x00000002, 0x40446621, 0x82092248, 0x00000002, 0x004466A3, 0x82092248, - 0x00000002, 0x402D6820, 0xA0007D02, 0x00000002, 0x002D6894, 0xA0007D14, - 0x00000005, 0x404E6020, 0x404E8420, 0x404E2420, 0x8209278B, 0x404F3020, - 0x00000006, 0x404E6A20, 0x8209278B, 0x404E6A20, 0x404EEE20, 0x404E7220, - 0x8209278B, 0x00000006, 0x404E6A21, 0x40510E20, 0x404EE620, 0x404EEE20, - 0x404E1420, 0x8209278B, 0x00000004, 0x404E8C21, 0x40510A20, 0x404EFE20, - 0x404F2E20, 0x00000006, 0x404E9420, 0x404E1420, 0x8209278B, 0x404E8220, - 0x404E1420, 0x8209278B, 0x00000005, 0x404E9420, - // Block 679, offset 0xa9c0 - 0x404E1420, 0x8209278B, 0x404E8820, 0x404EDE20, 0x0000000A, 0x404E9421, - 0x404E4820, 0x8209278B, 0x404F3020, 0x404E1420, 0x404EFE20, 0x404EDE20, - 0x404E2420, 0x8209278B, 0x404F3020, 0x00000003, 0x404EA620, 0x404E8420, - 0x404EEA20, 0x00000003, 0x404EA620, 0x8209278A, 0x404EA620, 0x00000002, - 0x004EC283, 0x404EE620, 0x00000002, 0x404EC221, 0x404EE620, 0x00000002, - 0x004EC283, 0x404EEA20, 0x00000002, 0x004EC283, 0x404EEE20, 0x00000003, - 0x004EC283, 0x404EEE20, 0x404F0C20, 0x00000002, 0x004EC283, 0x404EF420, - 0x00000002, 0x004EC283, 0x404EFE20, 0x00000002, 0x004EC284, 0x404EFE20, - 0x00000003, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278A, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278A, - // Block 680, offset 0xaa00 - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278B, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278B, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1820, 0x8209278A, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1820, 0x8209278A, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1820, 0x8209278B, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1820, 0x8209278B, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1C20, 0x8209278A, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1C20, 0x8209278A, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1C20, 0x8209278B, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1C20, 0x8209278B, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - // Block 681, offset 0xaa40 - 0x404E2220, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E2220, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E2220, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E2220, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E2420, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E2420, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E2420, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E2420, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E2820, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E2820, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E2820, 0x8209278B, 0x00000005, 0x004EC284, - // Block 682, offset 0xaa80 - 0x404EFE20, 0x404EDE20, 0x404E2820, 0x8209278B, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E2E20, 0x8209278A, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E2E20, 0x8209278A, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E2E20, 0x8209278B, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E2E20, 0x8209278B, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278A, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278A, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278B, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278B, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278A, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278A, - // Block 683, offset 0xaac0 - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278B, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278B, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4820, 0x8209278A, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4820, 0x8209278A, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4820, 0x8209278B, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4820, 0x8209278B, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4A20, 0x8209278A, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4A20, 0x8209278A, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4A20, 0x8209278B, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4A20, 0x8209278B, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - // Block 684, offset 0xab00 - 0x404E4E20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E4E20, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E4E20, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E4E20, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E5220, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E5220, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E5220, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E5220, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E5620, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E5620, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E5620, 0x8209278B, 0x00000005, 0x004EC284, - // Block 685, offset 0xab40 - 0x404EFE20, 0x404EDE20, 0x404E5620, 0x8209278B, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E5A20, 0x8209278A, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E5A20, 0x8209278A, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E5A20, 0x8209278B, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E5A20, 0x8209278B, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278A, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278A, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278B, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278B, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278A, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278A, - // Block 686, offset 0xab80 - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278B, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278B, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6220, 0x8209278A, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6220, 0x8209278A, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6220, 0x8209278B, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6220, 0x8209278B, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6620, 0x8209278A, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6620, 0x8209278A, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6620, 0x8209278B, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6620, 0x8209278B, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - // Block 687, offset 0xabc0 - 0x404E6A20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E6A20, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E6A20, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E6A20, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E7220, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E7220, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E7220, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E7220, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E7420, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E7420, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E7420, 0x8209278B, 0x00000005, 0x004EC284, - // Block 688, offset 0xac00 - 0x404EFE20, 0x404EDE20, 0x404E7420, 0x8209278B, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E7E20, 0x8209278A, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E7E20, 0x8209278A, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E7E20, 0x8209278B, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E7E20, 0x8209278B, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278A, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278A, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278B, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278B, 0x00000005, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278A, 0x00000005, 0x004EC284, - 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278A, - // Block 689, offset 0xac40 - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278B, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278B, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8820, 0x8209278A, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8820, 0x8209278A, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8820, 0x8209278B, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8820, 0x8209278B, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8C20, 0x8209278A, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8C20, 0x8209278A, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8C20, 0x8209278B, - 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8C20, 0x8209278B, - 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - // Block 690, offset 0xac80 - 0x404E9420, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E9420, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404E9420, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404E9420, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404EA620, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404EA620, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404EA620, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404EA620, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404EAA20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, - 0x404EAA20, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, - 0x404EAA20, 0x8209278B, 0x00000005, 0x004EC284, - // Block 691, offset 0xacc0 - 0x404EFE20, 0x404EDE20, 0x404EAA20, 0x8209278B, 0x00000004, 0x004EC283, - 0x404EFE20, 0x404EDE20, 0x8209278B, 0x00000006, 0x404EFE20, 0x404EDE20, - 0x404E1420, 0x8209278B, 0x404E1420, 0x40510420, 0x00000002, 0x402C9A20, - 0xAE603202, 0x00000002, 0x002C9A83, 0xAE603202, 0x00000002, 0x402C9A20, - 0xAE603502, 0x00000002, 0x002C9A83, 0xAE603502, 0x00000002, 0x402C9A20, - 0xAE604E02, 0x00000002, 0x002C9A83, 0xAE604E02, 0x00000002, 0x402C9A20, - 0xAE606402, 0x00000002, 0x002C9A83, 0xAE606402, 0x00000002, 0x402C9A20, - 0xADC07002, 0x00000002, 0x002C9A83, 0xADC07002, 0x00000002, 0x402EE420, - 0xAE603202, 0x00000002, 0x002EE483, 0xAE603202, 0x00000002, 0x402EE420, - 0xAE603502, 0x00000002, 0x002EE483, 0xAE603502, 0x00000002, 0x402EE420, - 0xAE606402, 0x00000002, 0x002EE483, 0xAE606402, - // Block 692, offset 0xad00 - 0x00000002, 0x402EE420, 0xADC07002, 0x00000002, 0x002EE483, 0xADC07002, - 0x00000002, 0x40411620, 0xA000FA02, 0x00000002, 0x40411E20, 0xA000FA02, - 0x00000002, 0x40412020, 0xA000FA02, 0x00000002, 0x40412A20, 0xA000FA02, - 0x00000002, 0x40414620, 0xA000FA02, 0x00000002, 0x40415420, 0xA000FA02, - 0x00000002, 0x403A6822, 0xAE60BE02, 0x00000002, 0x003A7C84, 0x00391C84, - 0x00000002, 0x003A7C9A, 0x00391C9A, 0x00000002, 0x40320820, 0xAE603202, - 0x00000002, 0x00320883, 0xAE603202, 0x00000002, 0x40320A20, 0xAE603202, - 0x00000002, 0x00320A83, 0xAE603202, 0x00000002, 0x40320A20, 0xAE605B02, - 0x00000002, 0x00320A83, 0xAE605B02, 0x00000002, 0x40320E21, 0xAE603702, - 0x00000002, 0x00320EA3, 0xAE603702, 0x00000002, 0x40320E21, 0xAE603C02, - 0x00000002, 0x00320EA3, 0xAE603C02, 0x00000002, - // Block 693, offset 0xad40 - 0x40321022, 0xAE603202, 0x00000002, 0x003210C3, 0xAE603202, 0x00000002, - 0x40321022, 0xAE604702, 0x00000002, 0x003210C3, 0xAE604702, 0x00000002, - 0x40321022, 0xAE605B02, 0x00000002, 0x003210C3, 0xAE605B02, 0x00000002, - 0x40321022, 0xAD806802, 0x00000002, 0x003210C3, 0xAD806802, 0x00000002, - 0x40321023, 0xAE603202, 0x00000002, 0x003210E3, 0xAE603202, 0x00000002, - 0x40321023, 0xAE603502, 0x00000002, 0x003210E3, 0xAE603502, 0x00000002, - 0x40321023, 0xAE604E02, 0x00000002, 0x003210E3, 0xAE604E02, 0x00000002, - 0x40321023, 0xAE606402, 0x00000002, 0x003210E3, 0xAE606402, 0x00000002, - 0x40321023, 0xADC07002, 0x00000002, 0x003210E3, 0xADC07002, 0x00000002, - 0x40321024, 0xAE605B02, 0x00000002, 0x00321103, 0xAE605B02, 0x00000002, - 0x402C6020, 0xAE603202, 0x00000002, 0x002C6083, - // Block 694, offset 0xad80 - 0xAE603202, 0x00000002, 0x40321024, 0xAE603202, 0x00000002, 0x00321103, - 0xAE603202, 0x00000002, 0x40321024, 0xAE603502, 0x00000002, 0x00321103, - 0xAE603502, 0x00000002, 0x40321024, 0xAE604E02, 0x00000002, 0x00321103, - 0xAE604E02, 0x00000002, 0x40321024, 0xAE606402, 0x00000002, 0x00321103, - 0xAE606402, 0x00000002, 0x40321024, 0xADC07002, 0x00000002, 0x00321103, - 0xADC07002, 0x00000002, 0x00497283, 0x40496C20, 0x00000002, 0x00497284, - 0x40496C20, 0x00000002, 0x402BDE21, 0xAE603702, 0x00000002, 0x002BDEA3, - 0xAE603702, 0x00000002, 0x402BDE21, 0xAE603C02, 0x00000002, 0x002BDEA3, - 0xAE603C02, 0x00000002, 0x402BDE21, 0xAE604302, 0x00000002, 0x002BDEA3, - 0xAE604302, 0x00000002, 0x402BDE22, 0xAE604702, 0x00000002, 0x002BDEC3, - 0xAE604702, 0x00000002, 0x402BDE22, 0xAE605202, - // Block 695, offset 0xadc0 - 0x00000002, 0x002BDEC3, 0xAE605202, 0x00000002, 0x402C9821, 0xAE603C02, - 0x00000002, 0x002C98A3, 0xAE603C02, 0x00000002, 0x402C9822, 0xAE603202, - 0x00000002, 0x002C98C3, 0xAE603202, 0x00000002, 0x402C9822, 0xAE603502, - 0x00000002, 0x002C98C3, 0xAE603502, 0x00000002, 0x402D9A21, 0xAE604702, - 0x00000002, 0x002D9AA3, 0xAE604702, 0x00000002, 0x402EE221, 0xAE603C02, - 0x00000002, 0x002EE2A3, 0xAE603C02, 0x00000002, 0x402EE221, 0xAE604E02, - 0x00000002, 0x002EE2A3, 0xAE604E02, 0x00000002, 0x402EE221, 0xAD806802, - 0x00000002, 0x002EE2A3, 0xAD806802, 0x00000002, 0x402EE222, 0xAE603202, - 0x00000002, 0x002EE2C3, 0xAE603202, 0x00000002, 0x402EE222, 0xAE603502, - 0x00000002, 0x002EE2C3, 0xAE603502, 0x00000002, 0x402EE222, 0xAE604702, - 0x00000002, 0x002EE2C3, 0xAE604702, 0x00000002, - // Block 696, offset 0xae00 - 0x402EE222, 0xAE604E02, 0x00000002, 0x002EE2C3, 0xAE604E02, 0x00000002, - 0x402EE222, 0xAE605202, 0x00000002, 0x002EE2C3, 0xAE605202, 0x00000002, - 0x402EE222, 0xACA05902, 0x00000002, 0x002EE2C3, 0xACA05902, 0x00000002, - 0x40306C21, 0xAE604702, 0x00000002, 0x00306CA3, 0xAE604702, 0x00000002, - 0x40306C21, 0xAE604E02, 0x00000002, 0x00306CA3, 0xAE604E02, 0x00000002, - 0x40306C21, 0xAD806802, 0x00000002, 0x00306CA3, 0xAD806802, 0x00000002, - 0xA000AD18, 0xA000BA18, 0x00000002, 0x00393C97, 0x00396497, 0x00000002, - 0x00393C9A, 0x0039649A, 0x00000002, 0x00393C97, 0x00397297, 0x00000002, - 0x00393C9A, 0x0039729A, 0x00000002, 0x00393C97, 0x00397497, 0x00000002, - 0x00393C9A, 0x0039749A, 0x00000002, 0x00393C99, 0x0039A499, 0x00000002, - 0x00393C99, 0x0039A699, 0x00000002, 0x00393C97, - // Block 697, offset 0xae40 - 0x003A4E97, 0x00000002, 0x00393C98, 0x003A4E98, 0x00000002, 0x00393C99, - 0x003A4E99, 0x00000002, 0x00393C9A, 0x003A4E9A, 0x00000002, 0x00393C99, - 0x003A5699, 0x00000002, 0x00395697, 0x00396497, 0x00000002, 0x0039569A, - 0x0039649A, 0x00000002, 0x00395697, 0x00397297, 0x00000002, 0x0039569A, - 0x0039729A, 0x00000002, 0x00395697, 0x00397497, 0x00000002, 0x0039569A, - 0x0039749A, 0x00000002, 0x00395699, 0x0039A499, 0x00000002, 0x00395699, - 0x0039A699, 0x00000002, 0x00395697, 0x003A4E97, 0x00000002, 0x00395698, - 0x003A4E98, 0x00000002, 0x00395699, 0x003A4E99, 0x00000002, 0x0039569A, - 0x003A4E9A, 0x00000002, 0x00395699, 0x003A5699, 0x00000002, 0x0039589A, - 0x0039649A, 0x00000002, 0x00395899, 0x0039A499, 0x00000002, 0x00395899, - 0x0039A699, 0x00000002, 0x00395897, 0x003A4E97, - // Block 698, offset 0xae80 - 0x00000002, 0x00395898, 0x003A4E98, 0x00000002, 0x00395899, 0x003A4E99, - 0x00000002, 0x0039589A, 0x003A4E9A, 0x00000002, 0x00395899, 0x003A5699, - 0x00000002, 0x00396497, 0x00397297, 0x00000002, 0x0039649A, 0x0039729A, - 0x00000002, 0x00396497, 0x003A4E97, 0x00000002, 0x0039649A, 0x003A4E9A, - 0x00000002, 0x00397297, 0x00396497, 0x00000002, 0x0039729A, 0x0039649A, - 0x00000002, 0x00397297, 0x003A4E97, 0x00000002, 0x0039729A, 0x003A4E9A, - 0x00000002, 0x00397497, 0x00396497, 0x00000002, 0x0039749A, 0x0039649A, - 0x00000002, 0x0039749A, 0x0039729A, 0x00000002, 0x00397497, 0x003A4E97, - 0x00000002, 0x0039749A, 0x003A4E9A, 0x00000002, 0x00398A9A, 0xA000D11A, - 0x00000002, 0x0039A49A, 0xA000D11A, 0x00000002, 0x0039C697, 0x00396497, - 0x00000002, 0x0039C698, 0x00396498, 0x00000002, - // Block 699, offset 0xaec0 - 0x0039C69A, 0x0039649A, 0x00000002, 0x0039C697, 0x00397297, 0x00000002, - 0x0039C698, 0x00397298, 0x00000002, 0x0039C69A, 0x0039729A, 0x00000002, - 0x0039C697, 0x00397497, 0x00000002, 0x0039C698, 0x00397498, 0x00000002, - 0x0039C69A, 0x0039749A, 0x00000002, 0x0039C699, 0x0039A499, 0x00000002, - 0x0039C69A, 0x0039A49A, 0x00000002, 0x0039C697, 0x003A4E97, 0x00000002, - 0x0039C698, 0x003A4E98, 0x00000002, 0x0039C69A, 0x003A4E9A, 0x00000002, - 0x0039C897, 0x00396497, 0x00000002, 0x0039C898, 0x00396498, 0x00000002, - 0x0039C899, 0x00396499, 0x00000002, 0x0039C89A, 0x0039649A, 0x00000002, - 0x0039C897, 0x00397297, 0x00000002, 0x0039C898, 0x00397298, 0x00000002, - 0x0039C899, 0x00397299, 0x00000002, 0x0039C89A, 0x0039729A, 0x00000002, - 0x0039C897, 0x00397497, 0x00000002, 0x0039C898, - // Block 700, offset 0xaf00 - 0x00397498, 0x00000002, 0x0039C899, 0x00397499, 0x00000002, 0x0039C89A, - 0x0039749A, 0x00000002, 0x0039C899, 0x0039A499, 0x00000002, 0x0039C89A, - 0x0039A49A, 0x00000002, 0x0039C897, 0x003A4E97, 0x00000002, 0x0039C898, - 0x003A4E98, 0x00000002, 0x0039C899, 0x003A4E99, 0x00000002, 0x0039C89A, - 0x003A4E9A, 0x00000002, 0x0039DC97, 0x00397297, 0x00000002, 0x0039DC9A, - 0x0039729A, 0x00000002, 0x0039DC97, 0x00397497, 0x00000002, 0x0039DC99, - 0x0039A499, 0x00000002, 0x0039DC9A, 0x0039A49A, 0x00000002, 0x0039DC97, - 0x003A4E97, 0x00000002, 0x0039DC9A, 0x003A4E9A, 0x00000002, 0x0039DE97, - 0x00396497, 0x00000002, 0x0039DE9A, 0x0039649A, 0x00000002, 0x0039DE97, - 0x00397297, 0x00000002, 0x0039DE9A, 0x0039729A, 0x00000002, 0x0039DE97, - 0x00397497, 0x00000002, 0x0039DE9A, 0x0039749A, - // Block 701, offset 0xaf40 - 0x00000002, 0x0039DE99, 0x0039A499, 0x00000002, 0x0039DE9A, 0x0039A49A, - 0x00000002, 0x0039DE97, 0x003A4E97, 0x00000002, 0x0039DE9A, 0x003A4E9A, - 0x00000002, 0x0039E697, 0x00397297, 0x00000002, 0x0039E69A, 0x0039729A, - 0x00000002, 0x0039E697, 0x003A4E97, 0x00000002, 0x0039E698, 0x003A4E98, - 0x00000002, 0x0039E69A, 0x003A4E9A, 0x00000002, 0x0039E897, 0x003A4E97, - 0x00000002, 0x0039E898, 0x003A4E98, 0x00000002, 0x0039E89A, 0x003A4E9A, - 0x00000002, 0x0039EE97, 0x00396497, 0x00000002, 0x0039EE9A, 0x0039649A, - 0x00000002, 0x0039EE97, 0x003A4E97, 0x00000002, 0x0039EE9A, 0x003A4E9A, - 0x00000002, 0x0039F097, 0x00396497, 0x00000002, 0x0039F09A, 0x0039649A, - 0x00000002, 0x0039F097, 0x003A4E97, 0x00000002, 0x0039F09A, 0x003A4E9A, - 0x00000002, 0x0039FC97, 0x00396497, 0x00000002, - // Block 702, offset 0xaf80 - 0x0039FC9A, 0x0039649A, 0x00000002, 0x0039FC97, 0x00397297, 0x00000002, - 0x0039FC9A, 0x0039729A, 0x00000002, 0x0039FC97, 0x00397497, 0x00000002, - 0x0039FC9A, 0x0039749A, 0x00000002, 0x0039FC97, 0x003A4E97, 0x00000002, - 0x0039FC9A, 0x003A4E9A, 0x00000002, 0x003A1297, 0x00397297, 0x00000002, - 0x003A129A, 0x0039729A, 0x00000002, 0x003A1297, 0x003A4E97, 0x00000002, - 0x003A129A, 0x003A4E9A, 0x00000002, 0x003A4099, 0x00393899, 0x00000002, - 0x003A409A, 0x0039389A, 0x00000002, 0x003A4097, 0x00396497, 0x00000002, - 0x003A409A, 0x0039649A, 0x00000002, 0x003A4097, 0x00397297, 0x00000002, - 0x003A409A, 0x0039729A, 0x00000002, 0x003A4097, 0x00397497, 0x00000002, - 0x003A409A, 0x0039749A, 0x00000002, 0x003A4097, 0x003A4E97, 0x00000002, - 0x003A4098, 0x003A4E98, 0x00000002, 0x003A4099, - // Block 703, offset 0xafc0 - 0x003A4E99, 0x00000002, 0x003A409A, 0x003A4E9A, 0x00000002, 0x003A4E99, - 0x00393899, 0x00000002, 0x003A4E97, 0x00396497, 0x00000002, 0x003A4E9A, - 0x0039649A, 0x00000002, 0x003A4E97, 0x00397297, 0x00000002, 0x003A4E9A, - 0x0039729A, 0x00000002, 0x003A4E97, 0x00397497, 0x00000002, 0x003A4E9A, - 0x0039749A, 0x00000002, 0x003A4E97, 0x003A4E97, 0x00000002, 0x003A4E99, - 0x003A4E99, 0x00000002, 0x003A4E9A, 0x003A4E9A, 0x00000002, 0x003A5697, - 0x00396497, 0x00000002, 0x003A569A, 0x0039649A, 0x00000002, 0x003A5697, - 0x00397297, 0x00000002, 0x003A569A, 0x0039729A, 0x00000002, 0x003A5697, - 0x00397497, 0x00000002, 0x003A569A, 0x0039749A, 0x00000002, 0x003A5699, - 0x0039A499, 0x00000002, 0x003A5699, 0x0039A699, 0x00000002, 0x003A5697, - 0x003A4E97, 0x00000002, 0x003A5698, 0x003A4E98, - // Block 704, offset 0xb000 - 0x00000002, 0x003A5699, 0x003A4E99, 0x00000002, 0x003A569A, 0x003A4E9A, - 0x00000002, 0x003A5699, 0x003A5699, 0x00000002, 0x403A7220, 0xA000C602, - 0x00000002, 0x003A7484, 0x00391C84, 0x00000002, 0xAE604702, 0xAE603802, - 0x00000002, 0x40062C20, 0xAE603802, 0x00000002, 0x40063620, 0xAE603802, - 0x00000002, 0x40063820, 0xAE603802, 0x00000002, 0x402BDE20, 0xAE603602, - 0x00000002, 0x002BDE88, 0xAE603602, 0x00000002, 0x402BDE20, 0xAE603702, - 0x00000002, 0x002BDE88, 0xAE603702, 0x00000002, 0x402BDE20, 0xAE603802, - 0x00000002, 0x002BDE88, 0xAE603802, 0x00000002, 0x402BDE20, 0xAE603902, - 0x00000002, 0x002BDE88, 0xAE603902, 0x00000003, 0x402BDE20, 0xAE604302, - 0xAE603802, 0x00000003, 0x002BDE88, 0xAE604302, 0xAE603802, 0x00000004, - 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE603802, - // Block 705, offset 0xb040 - 0x00000004, 0x002BDE8A, 0xA0013904, 0x002C988A, 0xAE603802, 0x00000002, - 0x402BE020, 0xAE603602, 0x00000002, 0x002BE083, 0xAE603602, 0x00000002, - 0x402BE020, 0xAE603702, 0x00000002, 0x002BE083, 0xAE603702, 0x00000002, - 0x402BE020, 0xAE603802, 0x00000002, 0x002BE083, 0xAE603802, 0x00000002, - 0x402BE020, 0xAE603902, 0x00000002, 0x002BE083, 0xAE603902, 0x00000002, - 0x402BE220, 0xAE603602, 0x00000002, 0x002BE283, 0xAE603602, 0x00000002, - 0x402BE220, 0xAE603702, 0x00000002, 0x002BE283, 0xAE603702, 0x00000002, - 0x402BE220, 0xAE603802, 0x00000002, 0x002BE283, 0xAE603802, 0x00000002, - 0x402BE220, 0xAE603902, 0x00000002, 0x002BE283, 0xAE603902, 0x00000002, - 0x402C0A20, 0xAE603902, 0x00000002, 0x002C0A88, 0xAE603902, 0x00000002, - 0x402C3A20, 0xAE603802, 0x00000002, 0x002C3A88, - // Block 706, offset 0xb080 - 0xAE603802, 0x00000003, 0x402C3A20, 0xACA05602, 0xAE603802, 0x00000003, - 0x002C3A88, 0xACA05602, 0xAE603802, 0x00000002, 0x402C6220, 0xAE603902, - 0x00000002, 0x002C6288, 0xAE603902, 0x00000002, 0x402C9820, 0xAE603602, - 0x00000002, 0x002C9888, 0xAE603602, 0x00000002, 0x402C9820, 0xAE603702, - 0x00000002, 0x002C9888, 0xAE603702, 0x00000002, 0x402C9820, 0xAE603802, - 0x00000002, 0x002C9888, 0xAE603802, 0x00000002, 0x402C9820, 0xAE603902, - 0x00000002, 0x002C9888, 0xAE603902, 0x00000003, 0x402C9820, 0xAE605B02, - 0xAE603802, 0x00000003, 0x002C9888, 0xAE605B02, 0xAE603802, 0x00000002, - 0x402C9A20, 0xAE603602, 0x00000002, 0x002C9A83, 0xAE603602, 0x00000002, - 0x402C9A20, 0xAE603702, 0x00000002, 0x002C9A83, 0xAE603702, 0x00000002, - 0x402C9A20, 0xAE603802, 0x00000002, 0x002C9A83, - // Block 707, offset 0xb0c0 - 0xAE603802, 0x00000002, 0x402C9A20, 0xAE603902, 0x00000002, 0x002C9A83, - 0xAE603902, 0x00000002, 0x402D2220, 0xAE603802, 0x00000002, 0x002D2288, - 0xAE603802, 0x00000002, 0x402D6820, 0xAE603902, 0x00000002, 0x002D6888, - 0xAE603902, 0x00000002, 0x402D9A20, 0xAE603602, 0x00000002, 0x002D9A88, - 0xAE603602, 0x00000002, 0x402D9A20, 0xAE603702, 0x00000002, 0x002D9A88, - 0xAE603702, 0x00000002, 0x402D9A20, 0xAE603802, 0x00000002, 0x002D9A88, - 0xAE603802, 0x00000002, 0x402D9A20, 0xAE603902, 0x00000002, 0x002D9A88, - 0xAE603902, 0x00000003, 0x402D9A20, 0xAE604702, 0xAE603802, 0x00000003, - 0x002D9A88, 0xAE604702, 0xAE603802, 0x00000002, 0x402DFE20, 0xAE603802, - 0x00000002, 0x002DFE88, 0xAE603802, 0x00000002, 0x402DFE20, 0xAE603902, - 0x00000002, 0x002DFE88, 0xAE603902, 0x00000002, - // Block 708, offset 0xb100 - 0x402E2220, 0xAE603802, 0x00000002, 0x002E2288, 0xAE603802, 0x00000002, - 0x402E2220, 0xAE603902, 0x00000002, 0x002E2288, 0xAE603902, 0x00000003, - 0x402E2220, 0xAE603902, 0xAE605B02, 0x00000003, 0x002E2288, 0xAE603902, - 0xAE605B02, 0x00000002, 0x402E8220, 0xAE603802, 0x00000002, 0x002E8288, - 0xAE603802, 0x00000002, 0x402E8220, 0xAE603902, 0x00000002, 0x002E8288, - 0xAE603902, 0x00000002, 0x402E9E20, 0xAE603702, 0x00000002, 0x002E9E88, - 0xAE603702, 0x00000002, 0x402E9E20, 0xAE603802, 0x00000002, 0x002E9E88, - 0xAE603802, 0x00000002, 0x402E9E20, 0xAE603902, 0x00000002, 0x002E9E88, - 0xAE603902, 0x00000002, 0x402EE220, 0xAE603602, 0x00000002, 0x002EE288, - 0xAE603602, 0x00000002, 0x402EE220, 0xAE603702, 0x00000002, 0x002EE288, - 0xAE603702, 0x00000003, 0x402EE220, 0xAE603702, - // Block 709, offset 0xb140 - 0xAE603802, 0x00000003, 0x002EE288, 0xAE603702, 0xAE603802, 0x00000003, - 0x402EE220, 0xAE603702, 0xAE604702, 0x00000003, 0x002EE288, 0xAE603702, - 0xAE604702, 0x00000003, 0x402EE220, 0xAE603702, 0xAE605B02, 0x00000003, - 0x002EE288, 0xAE603702, 0xAE605B02, 0x00000002, 0x402EE220, 0xAE603802, - 0x00000002, 0x002EE288, 0xAE603802, 0x00000002, 0x402EE220, 0xAE603902, - 0x00000002, 0x002EE288, 0xAE603902, 0x00000003, 0x402EE220, 0xA0005402, - 0xAE603802, 0x00000003, 0x002EE288, 0xA0005402, 0xAE603802, 0x00000003, - 0x402EE220, 0xAE605B02, 0xAE603802, 0x00000003, 0x002EE288, 0xAE605B02, - 0xAE603802, 0x00000002, 0x402EE420, 0xAE603602, 0x00000002, 0x002EE483, - 0xAE603602, 0x00000002, 0x402EE420, 0xAE603702, 0x00000002, 0x002EE483, - 0xAE603702, 0x00000002, 0x402EE420, 0xAE603802, - // Block 710, offset 0xb180 - 0x00000002, 0x002EE483, 0xAE603802, 0x00000002, 0x402EE420, 0xAE603902, - 0x00000002, 0x002EE483, 0xAE603902, 0x00000002, 0x402EE620, 0xAE603502, - 0x00000002, 0x002EE683, 0xAE603502, 0x00000002, 0x402EE620, 0xAE603602, - 0x00000002, 0x002EE683, 0xAE603602, 0x00000002, 0x402EE620, 0xAE603702, - 0x00000002, 0x002EE683, 0xAE603702, 0x00000002, 0x402EE620, 0xAE603802, - 0x00000002, 0x002EE683, 0xAE603802, 0x00000002, 0x402EE620, 0xAE603902, - 0x00000002, 0x002EE683, 0xAE603902, 0x00000002, 0x402F2C20, 0xAE603802, - 0x00000002, 0x002F2C88, 0xAE603802, 0x00000002, 0x402F7A20, 0xAE603802, - 0x00000002, 0x002F7A88, 0xAE603802, 0x00000002, 0x402F7A20, 0xAE603902, - 0x00000002, 0x002F7A88, 0xAE603902, 0x00000003, 0x402F7A20, 0xAE603902, - 0xAE605B02, 0x00000003, 0x002F7A88, 0xAE603902, - // Block 711, offset 0xb1c0 - 0xAE605B02, 0x00000002, 0x402FE620, 0xAE603802, 0x00000002, 0x002FE688, - 0xAE603802, 0x00000003, 0x402FE620, 0xAE603802, 0xAE605202, 0x00000003, - 0x002FE688, 0xAE603802, 0xAE605202, 0x00000002, 0x402FE620, 0xAE603902, - 0x00000002, 0x002FE688, 0xAE603902, 0x00000003, 0x402FE620, 0xAE603902, - 0xAE605202, 0x00000003, 0x002FE688, 0xAE603902, 0xAE605202, 0x00000002, - 0x40302C20, 0xAE603902, 0x00000002, 0x00302C88, 0xAE603902, 0x00000002, - 0x40306C20, 0xAE603602, 0x00000002, 0x00306C88, 0xAE603602, 0x00000002, - 0x40306C20, 0xAE603702, 0x00000002, 0x00306C88, 0xAE603702, 0x00000003, - 0x40306C20, 0xAE603702, 0xAE603802, 0x00000003, 0x00306C88, 0xAE603702, - 0xAE603802, 0x00000002, 0x40306C20, 0xAE603802, 0x00000002, 0x00306C88, - 0xAE603802, 0x00000002, 0x40306C20, 0xAE603902, - // Block 712, offset 0xb200 - 0x00000002, 0x00306C88, 0xAE603902, 0x00000003, 0x40306C20, 0xAE604702, - 0xAE603802, 0x00000003, 0x00306C88, 0xAE604702, 0xAE603802, 0x00000002, - 0x40306E20, 0xAE603602, 0x00000002, 0x00306E83, 0xAE603602, 0x00000002, - 0x40306E20, 0xAE603702, 0x00000002, 0x00306E83, 0xAE603702, 0x00000002, - 0x40306E20, 0xAE603802, 0x00000002, 0x00306E83, 0xAE603802, 0x00000002, - 0x40306E20, 0xAE603902, 0x00000002, 0x00306E83, 0xAE603902, 0x00000002, - 0x4030BE20, 0xAE603702, 0x00000002, 0x0030BE88, 0xAE603702, 0x00000002, - 0x4030BE20, 0xAE603902, 0x00000002, 0x0030BE88, 0xAE603902, 0x00000002, - 0x4030E220, 0xAE603802, 0x00000002, 0x0030E288, 0xAE603802, 0x00000002, - 0x4030E220, 0xAE603902, 0x00000002, 0x0030E288, 0xAE603902, 0x00000002, - 0x40310020, 0xAE603602, 0x00000002, 0x00310088, - // Block 713, offset 0xb240 - 0xAE603602, 0x00000002, 0x40310020, 0xAE603702, 0x00000002, 0x00310088, - 0xAE603702, 0x00000002, 0x40310020, 0xAE603802, 0x00000002, 0x00310088, - 0xAE603802, 0x00000002, 0x40310020, 0xAE603902, 0x00000002, 0x00310088, - 0xAE603902, 0x00000002, 0x40312A20, 0xAE603802, 0x00000002, 0x00312A88, - 0xAE603802, 0x00000002, 0x40312A20, 0xAE603902, 0x00000002, 0x00312A88, - 0xAE603902, 0x00000003, 0x40325220, 0xAE602202, 0xAE603802, 0x00000003, - 0x00325288, 0xAE602202, 0xAE603802, 0x00000004, 0x40325220, 0xAE602202, - 0xAE603802, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602202, 0xAE603802, - 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE603802, 0x00000003, - 0x00325288, 0xAE602A02, 0xAE603802, 0x00000004, 0x40325220, 0xAE602A02, - 0xAE603802, 0xAF007F02, 0x00000004, 0x00325288, - // Block 714, offset 0xb280 - 0xAE602A02, 0xAE603802, 0xAF007F02, 0x00000002, 0x40325220, 0xAE603802, - 0x00000002, 0x00325288, 0xAE603802, 0x00000003, 0x40325220, 0xAE603802, - 0xAF007F02, 0x00000003, 0x40325C20, 0xAE602202, 0xAE603802, 0x00000003, - 0x00325C88, 0xAE602202, 0xAE603802, 0x00000003, 0x40325C20, 0xAE602A02, - 0xAE603802, 0x00000003, 0x00325C88, 0xAE602A02, 0xAE603802, 0x00000002, - 0x40325C20, 0xAE603802, 0x00000002, 0x00325C88, 0xAE603802, 0x00000003, - 0x40326820, 0xAE602202, 0xAE603802, 0x00000003, 0x00326888, 0xAE602202, - 0xAE603802, 0x00000004, 0x40326820, 0xAE602202, 0xAE603802, 0xAF007F02, - 0x00000004, 0x00326888, 0xAE602202, 0xAE603802, 0xAF007F02, 0x00000003, - 0x40326820, 0xAE602A02, 0xAE603802, 0x00000003, 0x00326888, 0xAE602A02, - 0xAE603802, 0x00000004, 0x40326820, 0xAE602A02, - // Block 715, offset 0xb2c0 - 0xAE603802, 0xAF007F02, 0x00000004, 0x00326888, 0xAE602A02, 0xAE603802, - 0xAF007F02, 0x00000002, 0x40326820, 0xAE603802, 0x00000002, 0x00326888, - 0xAE603802, 0x00000003, 0x40326820, 0xAE603802, 0xAF007F02, 0x00000003, - 0x40326C20, 0xAE602202, 0xAE603802, 0x00000003, 0x00326C88, 0xAE602202, - 0xAE603802, 0x00000003, 0x40326C20, 0xAE602A02, 0xAE603802, 0x00000003, - 0x00326C88, 0xAE602A02, 0xAE603802, 0x00000002, 0x40326C20, 0xAE603802, - 0x00000002, 0x00326C88, 0xAE603802, 0x00000003, 0x40326C20, 0xAE604702, - 0xAE603802, 0x00000003, 0x40327C20, 0xAE602202, 0xAE603802, 0x00000003, - 0x00327C88, 0xAE602202, 0xAE603802, 0x00000003, 0x40327C20, 0xAE602A02, - 0xAE603802, 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603802, 0x00000002, - 0x40327C20, 0xAE603802, 0x00000002, 0x00327C88, - // Block 716, offset 0xb300 - 0xAE603802, 0x00000003, 0x40329820, 0xAE602202, 0xAE603802, 0x00000003, - 0x40329820, 0xAE602A02, 0xAE603802, 0x00000003, 0x00329888, 0xAE602A02, - 0xAE603802, 0x00000002, 0x40329820, 0xAE603802, 0x00000002, 0x00329888, - 0xAE603802, 0x00000003, 0x40329820, 0xAE604702, 0xAE603802, 0x00000003, - 0x4032A220, 0xAE602202, 0xAE603802, 0x00000003, 0x0032A288, 0xAE602202, - 0xAE603802, 0x00000004, 0x4032A220, 0xAE602202, 0xAE603802, 0xAF007F02, - 0x00000004, 0x0032A288, 0xAE602202, 0xAE603802, 0xAF007F02, 0x00000003, - 0x4032A220, 0xAE602A02, 0xAE603802, 0x00000003, 0x0032A288, 0xAE602A02, - 0xAE603802, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603802, 0xAF007F02, - 0x00000004, 0x0032A288, 0xAE602A02, 0xAE603802, 0xAF007F02, 0x00000002, - 0x4032A220, 0xAE603802, 0x00000002, 0x0032A288, - // Block 717, offset 0xb340 - 0xAE603802, 0x00000003, 0x4032A220, 0xAE603802, 0xAF007F02, 0x00000002, - 0x402BDE20, 0xAE603202, 0x00000002, 0x402C9820, 0xAE603202, 0x00000002, - 0x402D9A20, 0xAE603202, 0x00000002, 0x402EE220, 0xAE603202, 0x00000002, - 0x40306C20, 0xAE603202, 0x00000002, 0x402C9A20, 0xAE603C02, 0x00000002, - 0x002C9A83, 0xAE603C02, 0x00000003, 0x0003F483, 0x6C030A20, 0x4003F620, - 0x00000003, 0x0003F483, 0x6C110E20, 0x4003F620, 0x00000003, 0x0003F483, - 0x6C272220, 0x4003F620, 0x00000003, 0x0003F483, 0x6C37B420, 0x4003F620, - 0x00000003, 0x0003F483, 0x6C549820, 0x4003F620, 0x00000003, 0x0003F483, - 0x6C5D8420, 0x4003F620, 0x00000003, 0x0003F483, 0x6C61F420, 0x4003F620, - 0x00000003, 0x0003F483, 0x6C64CA20, 0x4003F620, 0x00000003, 0x0003F483, - 0x6C6C2E20, 0x4003F620, 0x00000003, 0x0003F483, - // Block 718, offset 0xb380 - 0x6C6F9A20, 0x4003F620, 0x00000003, 0x0003F483, 0x6C814020, 0x4003F620, - 0x00000003, 0x0003F483, 0x6C8F2420, 0x4003F620, 0x00000003, 0x0003F483, - 0x6C9FE620, 0x4003F620, 0x00000003, 0x0003F483, 0x6CA25C20, 0x4003F620, - 0x00000003, 0x0003F483, 0x6CB4C620, 0x4003F620, 0x00000003, 0x0003F483, - 0x6CB6C820, 0x4003F620, 0x00000003, 0x0003F483, 0x6CC63620, 0x4003F620, - 0x00000003, 0x0003F483, 0x6CC9F220, 0x4003F620, 0x00000003, 0x0003F483, - 0x6CCF3620, 0x4003F620, 0x00000003, 0x0003F483, 0x6CD22420, 0x4003F620, - 0x00000003, 0x0003F483, 0x6CD70220, 0x4003F620, 0x00000003, 0x0003F483, - 0x6CD87420, 0x4003F620, 0x00000003, 0x0003F483, 0x6CE27020, 0x4003F620, - 0x00000003, 0x0003F483, 0x6CE91020, 0x4003F620, 0x00000003, 0x0003F483, - 0x6CF41420, 0x4003F620, 0x00000003, 0x0003F483, - // Block 719, offset 0xb3c0 - 0x6D007020, 0x4003F620, 0x00000003, 0x0003F483, 0x6D04B220, 0x4003F620, - 0x00000003, 0x0003F483, 0x6D08F820, 0x4003F620, 0x00000003, 0x0003F483, - 0x6D13B620, 0x4003F620, 0x00000003, 0x0003F483, 0x6D1F9820, 0x4003F620, - 0x00000003, 0x0003F483, 0x6D266820, 0x4003F620, 0x00000003, 0x0003F483, - 0x6D357020, 0x4003F620, 0x00000003, 0x0003F483, 0x6D399220, 0x4003F620, - 0x00000003, 0x0003F483, 0x6D3AC620, 0x4003F620, 0x00000003, 0x0003F483, - 0x6D3E6020, 0x4003F620, 0x00000003, 0x0003F483, 0x6D3F2A20, 0x4003F620, - 0x00000003, 0x0004B083, 0x6C011220, 0x4004B220, 0x00000003, 0x0004B083, - 0x6C044020, 0x4004B220, 0x00000003, 0x0004B083, 0x6C079220, 0x4004B220, - 0x00000003, 0x0004B083, 0x6C26E020, 0x4004B220, 0x00000003, 0x0004B083, - 0x6C2A1220, 0x4004B220, 0x00000003, 0x0004B083, - // Block 720, offset 0xb400 - 0x6C2D0A20, 0x4004B220, 0x00000003, 0x0004B083, 0x6C37B420, 0x4004B220, - 0x00000003, 0x0004B083, 0x6CC9F220, 0x4004B220, 0x00000003, 0x0004B083, - 0x6CD16420, 0x4004B220, 0x00000003, 0x0029CE83, 0x4029CC20, 0x6C2D0A20, - 0x00000003, 0x0029CE83, 0x4029CC20, 0x6CC63620, 0x00000003, 0x0029CE83, - 0x4029CC20, 0x6D266820, 0x00000003, 0x0029CE83, 0x4029CE20, 0x6C2D0A20, - 0x00000003, 0x0029CE83, 0x4029CE20, 0x6CC63620, 0x00000003, 0x0029CE83, - 0x4029CE20, 0x6D266820, 0x00000003, 0x0029CE83, 0x4029D020, 0x6C2D0A20, - 0x00000003, 0x0029CE83, 0x4029D020, 0x6CC63620, 0x00000003, 0x0029CE83, - 0x4029D020, 0x6D266820, 0x00000003, 0x0029CE83, 0x4029D220, 0x6C2D0A20, - 0x00000003, 0x0029CE83, 0x4029D220, 0x6CC63620, 0x00000003, 0x0029CE83, - 0x4029D420, 0x6C2D0A20, 0x00000003, 0x0029CE83, - // Block 721, offset 0xb440 - 0x4029D420, 0x6CC63620, 0x00000003, 0x0029CE83, 0x4029D620, 0x6C2D0A20, - 0x00000003, 0x0029CE83, 0x4029D620, 0x6CC63620, 0x00000003, 0x0029CE83, - 0x4029D820, 0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029D820, 0x6CC63620, - 0x00000003, 0x0029CE83, 0x4029DA20, 0x6C2D0A20, 0x00000003, 0x0029CE83, - 0x4029DA20, 0x6CC63620, 0x00000003, 0x0029CE83, 0x4029DC20, 0x6C2D0A20, - 0x00000003, 0x0029CE83, 0x4029DC20, 0x6CC63620, 0x00000003, 0x0029CE83, - 0x4029DE20, 0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029DE20, 0x6CC63620, - 0x00000003, 0x0029D083, 0x4029CC20, 0x6C2D0A20, 0x00000003, 0x0029D083, - 0x4029CC20, 0x6CC63620, 0x00000003, 0x0029D083, 0x4029CE20, 0x6C2D0A20, - 0x00000003, 0x0029D083, 0x4029CE20, 0x6CC63620, 0x00000003, 0x0029D083, - 0x4029D020, 0x6C2D0A20, 0x00000003, 0x0029D083, - // Block 722, offset 0xb480 - 0x4029D020, 0x6CC63620, 0x00000003, 0x0029D083, 0x4029D220, 0x6C2D0A20, - 0x00000003, 0x0029D083, 0x4029D220, 0x6CC63620, 0x00000003, 0x0029D083, - 0x4029D420, 0x6C2D0A20, 0x00000003, 0x0029D083, 0x4029D420, 0x6CC63620, - 0x00000003, 0x0029D083, 0x4029D620, 0x6CC63620, 0x00000003, 0x0029D083, - 0x4029D820, 0x6CC63620, 0x00000003, 0x0029D083, 0x4029DA20, 0x6CC63620, - 0x00000003, 0x0029D083, 0x4029DC20, 0x6CC63620, 0x00000003, 0x0029D083, - 0x4029DE20, 0x6CC63620, 0x00000003, 0x0029D283, 0x4029CC20, 0x6CC63620, - 0x00000003, 0x0029D283, 0x4029CE20, 0x6CC63620, 0x00000002, 0x402BDE1C, - 0xAE604702, 0x00000002, 0x002BDE03, 0xAE604702, 0x00000002, 0x402BDE1C, - 0xAE605202, 0x00000002, 0x002BDE03, 0xAE605202, 0x00000002, 0x402BDE1D, - 0xAE603702, 0x00000002, 0x002BDE23, 0xAE603702, - // Block 723, offset 0xb4c0 - 0x00000002, 0x402BDE1D, 0xAE603C02, 0x00000002, 0x002BDE23, 0xAE603C02, - 0x00000002, 0x402BDE1D, 0xAE604302, 0x00000002, 0x002BDE23, 0xAE604302, - 0x00000002, 0x402BDE1F, 0xAE603702, 0x00000002, 0x002BDE63, 0xAE603702, - 0x00000002, 0x402BDE1F, 0xAE603C02, 0x00000002, 0x002BDE63, 0xAE603C02, - 0x00000002, 0x402C981C, 0xAE603202, 0x00000002, 0x002C9803, 0xAE603202, - 0x00000002, 0x402C981C, 0xAE603502, 0x00000002, 0x002C9803, 0xAE603502, - 0x00000002, 0x402D9A1D, 0xAE604702, 0x00000002, 0x002D9A23, 0xAE604702, - 0x00000002, 0x402EE21C, 0xAE603202, 0x00000002, 0x002EE203, 0xAE603202, - 0x00000002, 0x402EE21C, 0xAE603502, 0x00000002, 0x002EE203, 0xAE603502, - 0x00000002, 0x402EE21C, 0xAE604702, 0x00000002, 0x002EE203, 0xAE604702, - 0x00000002, 0x402EE21C, 0xAE604E02, 0x00000002, - // Block 724, offset 0xb500 - 0x002EE203, 0xAE604E02, 0x00000002, 0x402EE21C, 0xAE605202, 0x00000002, - 0x002EE203, 0xAE605202, 0x00000002, 0x402EE21C, 0xACA05902, 0x00000002, - 0x002EE203, 0xACA05902, 0x00000002, 0x402EE21D, 0xAE603C02, 0x00000002, - 0x002EE223, 0xAE603C02, 0x00000002, 0x402EE21D, 0xAE604E02, 0x00000002, - 0x002EE223, 0xAE604E02, 0x00000002, 0x402EE21D, 0xAD806802, 0x00000002, - 0x002EE223, 0xAD806802, 0x00000002, 0x402EE21F, 0xAE603C02, 0x00000002, - 0x002EE263, 0xAE603C02, 0x00000002, 0x402EE21F, 0xAD806802, 0x00000002, - 0x002EE263, 0xAD806802, 0x00000002, 0x40306C1C, 0xAE604702, 0x00000002, - 0x00306C03, 0xAE604702, 0x00000002, 0x40306C1D, 0xAE604E02, 0x00000002, - 0x00306C23, 0xAE604E02, 0x00000002, 0x40306C1D, 0xAD806802, 0x00000002, - 0x00306C23, 0xAD806802, 0x00000002, 0x40306C1F, - // Block 725, offset 0xb540 - 0xAD806802, 0x00000002, 0x00306C63, 0xAD806802, 0x00000004, 0x2D399283, - 0x6CD2FC20, 0x6C5B8A20, 0x6CCF3620, 0x00000003, 0x0003F483, 0x6C000220, - 0x4003F620, 0x00000003, 0x0003F483, 0x6C003620, 0x4003F620, 0x00000003, - 0x0003F483, 0x6C006220, 0x4003F620, 0x00000003, 0x0003F483, 0x6C007420, - 0x4003F620, 0x00000003, 0x0003F483, 0x6C008820, 0x4003F620, 0x00000003, - 0x0003F483, 0x6C00B620, 0x4003F620, 0x00000003, 0x0003F483, 0x6C00DC20, - 0x4003F620, 0x00000003, 0x0003F483, 0x6C018420, 0x4003F620, 0x00000003, - 0x0003F483, 0x6C028820, 0x4003F620, 0x00000003, 0x0003F483, 0x6C02D820, - 0x4003F620, 0x00000003, 0x0003F483, 0x6C049620, 0x4003F620, 0x00000003, - 0x0003F483, 0x6C049C20, 0x4003F620, 0x00000003, 0x0003F483, 0x6C049E20, - 0x4003F620, 0x00000003, 0x0003F483, 0x6C04C620, - // Block 726, offset 0xb580 - 0x4003F620, 0x00000003, 0x0003F483, 0x6C04D020, 0x4003F620, 0x00000003, - 0x0003F483, 0x6C05E620, 0x4003F620, 0x00000003, 0x0003F483, 0x6C079020, - 0x4003F620, 0x00000003, 0x0003F483, 0x6C0BA020, 0x4003F620, 0x00000003, - 0x0003F483, 0x6C0BC020, 0x4003F620, 0x00000003, 0x0003F483, 0x6C0E3E20, - 0x4003F620, 0x00000003, 0x0003F483, 0x6C127420, 0x4003F620, 0x00000003, - 0x0003F483, 0x6C147E20, 0x4003F620, 0x00000003, 0x0003F483, 0x6C148220, - 0x4003F620, 0x00000003, 0x0003F483, 0x6C185220, 0x4003F620, 0x00000003, - 0x0003F483, 0x6C2BB220, 0x4003F620, 0x00000003, 0x0003F483, 0x6C2CA220, - 0x4003F620, 0x00000003, 0x0003F483, 0x6C2FD820, 0x4003F620, 0x00000003, - 0x0003F483, 0x6C3CEE20, 0x4003F620, 0x00000003, 0x0003F483, 0x6C41DC20, - 0x4003F620, 0x00000003, 0x0003F483, 0x6C741620, - // Block 727, offset 0xb5c0 - 0x4003F620, 0x00000003, 0x0003F483, 0x6C791620, 0x4003F620, 0x00000003, - 0x0003F483, 0x6C7DE020, 0x4003F620, 0x00000003, 0x0003F483, 0x6C86F020, - 0x4003F620, 0x00000003, 0x0003F483, 0x6CA6A420, 0x4003F620, 0x00000003, - 0x0003F483, 0x6D0F3820, 0x4003F620, 0x00000003, 0x0003F483, 0x6D2EFA20, - 0x4003F620, 0x00000003, 0x0004B083, 0x6C007420, 0x4004B220, 0x00000003, - 0x0004B083, 0x6C00DC20, 0x4004B220, 0x00000003, 0x0004B083, 0x6C093E20, - 0x4004B220, 0x00000003, 0x0004B083, 0x6C096620, 0x4004B220, 0x00000003, - 0x0004B083, 0x6C0FC420, 0x4004B220, 0x00000003, 0x0004B083, 0x6C555C20, - 0x4004B220, 0x00000003, 0x0004B083, 0x6C9AC020, 0x4004B220, 0x00000003, - 0x0004B083, 0x6CA4CC20, 0x4004B220, 0x00000003, 0x0004B083, 0x6CB9B020, - 0x4004B220, 0x00000003, 0x0029CE83, 0x4029CC20, - // Block 728, offset 0xb600 - 0x6C049620, 0x00000003, 0x0029CE83, 0x4029CC20, 0x6C049C20, 0x00000003, - 0x0029CE83, 0x4029CC20, 0x6C555C20, 0x00000003, 0x0029CE83, 0x4029CE20, - 0x6C049620, 0x00000003, 0x0029CE83, 0x4029CE20, 0x6C049C20, 0x00000003, - 0x0029CE83, 0x4029CE20, 0x6C555C20, 0x00000003, 0x0029CE83, 0x4029D020, - 0x6C049620, 0x00000003, 0x0029CE83, 0x4029D020, 0x6C049C20, 0x00000003, - 0x0029CE83, 0x4029D020, 0x6C555C20, 0x00000003, 0x0029CE83, 0x4029D220, - 0x6C049620, 0x00000003, 0x0029CE83, 0x4029D220, 0x6C555C20, 0x00000003, - 0x0029CE83, 0x4029D420, 0x6C049620, 0x00000003, 0x0029CE83, 0x4029D420, - 0x6C555C20, 0x00000003, 0x0029CE83, 0x4029D620, 0x6C049620, 0x00000003, - 0x0029CE83, 0x4029D620, 0x6C555C20, 0x00000003, 0x0029CE83, 0x4029D820, - 0x6C049620, 0x00000003, 0x0029CE83, 0x4029D820, - // Block 729, offset 0xb640 - 0x6C555C20, 0x00000003, 0x0029CE83, 0x4029DA20, 0x6C049620, 0x00000003, - 0x0029CE83, 0x4029DA20, 0x6C555C20, 0x00000003, 0x0029CE83, 0x4029DC20, - 0x6C049620, 0x00000003, 0x0029CE83, 0x4029DC20, 0x6C555C20, 0x00000003, - 0x0029CE83, 0x4029DE20, 0x6C049620, 0x00000003, 0x0029CE83, 0x4029DE20, - 0x6C555C20, 0x00000003, 0x0029D083, 0x4029CC20, 0x6C049620, 0x00000003, - 0x0029D083, 0x4029CC20, 0x6C555C20, 0x00000003, 0x0029D083, 0x4029CE20, - 0x6C049620, 0x00000003, 0x0029D083, 0x4029CE20, 0x6C555C20, 0x00000003, - 0x0029D083, 0x4029D020, 0x6C049620, 0x00000003, 0x0029D083, 0x4029D020, - 0x6C555C20, 0x00000003, 0x0029D083, 0x4029D220, 0x6C049620, 0x00000003, - 0x0029D083, 0x4029D220, 0x6C555C20, 0x00000003, 0x0029D083, 0x4029D420, - 0x6C049620, 0x00000003, 0x0029D083, 0x4029D420, - // Block 730, offset 0xb680 - 0x6C555C20, 0x00000003, 0x0029D083, 0x4029D620, 0x6C049620, 0x00000003, - 0x0029D083, 0x4029D820, 0x6C049620, 0x00000003, 0x0029D083, 0x4029DA20, - 0x6C049620, 0x00000003, 0x0029D083, 0x4029DC20, 0x6C049620, 0x00000003, - 0x0029D083, 0x4029DE20, 0x6C049620, 0x00000003, 0x0029D283, 0x4029CC20, - 0x6C049620, 0x00000003, 0x0029D283, 0x4029CE20, 0x6C049620, 0x00000004, - 0x2C741683, 0x6C111820, 0x6C0BD220, 0x6C3CEE20, -} - -// mainContractElem: 4021 entries, 16084 bytes -var mainContractElem = [4021]uint32{ - // Block 0, offset 0x0 - 0x402E2220, 0xE0000CFB, 0xE0000CFB, 0x002E2288, 0xE0000D01, 0xE0000D01, - 0x40332220, 0x40332A20, 0x40333220, 0x00332288, 0x00332A88, 0x00333288, - 0x40333A20, 0x40334220, 0x00333A88, 0x00334288, 0x40336220, 0x4033A220, - 0x4033A220, 0x00336288, 0x0033A288, 0x0033A288, 0x4033B220, 0x4033BA20, - 0x0033B288, 0x0033BA88, 0x4033CA20, 0x4033D420, 0x0033CA88, 0x0033D488, - 0x4033E420, 0x4033F220, 0x0033E488, 0x0033F288, 0x40341420, 0x40343E20, - 0x40342420, 0x00341488, 0x00343E88, 0x00342488, 0x40342C20, 0x40343620, - 0x00342C88, 0x00343688, 0x4034EE20, 0x4034F620, 0x0034EE88, 0x0034F688, - 0x4034FE20, 0x40350620, 0x0034FE88, 0x00350688, 0x40345020, 0x40356A20, - 0x40356A20, 0x00345088, 0x00356A88, 0x00356A88, 0x40357220, 0x40357A20, - 0x40358220, 0x40358A20, 0x00357288, 0x00357A88, - // Block 1, offset 0x40 - 0x00358288, 0x00358A88, 0x40361820, 0x40362220, 0x00361888, 0x00362288, - 0x40367E20, 0x40368620, 0x00367E88, 0x00368688, 0x4036A820, 0x4036B020, - 0x0036A888, 0x0036B088, 0x40371420, 0x40371C20, 0x00371488, 0x00371C88, - 0x40393820, 0x40391E20, 0x40392020, 0x40392820, 0x403A7420, 0x40392620, - 0x403A9020, 0x40393020, 0x4040F020, 0x4040F420, 0x4040F620, 0x40426E20, - 0x40427220, 0x40427020, 0x40427420, 0x40429020, 0x40429420, 0x4042D020, - 0x4042D620, 0x4042DA20, 0x4042D220, 0x4042D820, 0x40435E20, 0x40436220, - 0x4043E020, 0x4043E220, 0x4043F020, 0x4043F820, 0x4043F620, 0x4043F220, - 0x4043F420, 0x4043F620, 0x4043F820, 0x40448220, 0x40448820, 0x40448C20, - 0x40448420, 0x40448A20, 0x40451E20, 0x40452620, 0x40452020, 0x40452420, - 0x40452820, 0x40452420, 0x40452620, 0x40498420, - // Block 2, offset 0x80 - 0xE0001881, 0xE0001890, 0xE000189F, 0xE00018AE, 0xE00018BD, 0xE00018CC, - 0xE00018DB, 0xE00018EA, 0xE00018F9, 0xE0001908, 0xE0001917, 0xE0001926, - 0xE0001935, 0xE0001944, 0xE0001953, 0xE0001962, 0xE0001971, 0xE0001980, - 0xE000198F, 0xE000199E, 0xE00019AD, 0xE00019BC, 0xE00019CB, 0xE00019DA, - 0xE00019E9, 0xE00019F8, 0xE0001A07, 0xE0001A16, 0xE0001A25, 0xE0001A34, - 0xE0001A43, 0xE0001A52, 0xE0001A61, 0xE0001A70, 0xE0001A7F, 0xE0001A8E, - 0xE0001A9D, 0xE0001AAC, 0xE0001ABB, 0xE0001ACA, 0xE0001AD9, 0xE0001AE8, - 0xE0001AF7, 0xE0001B06, 0xE0001B15, 0xE0001B24, 0x40498620, 0xE0001884, - 0xE0001893, 0xE00018A2, 0xE00018B1, 0xE00018C0, 0xE00018CF, 0xE00018DE, - 0xE00018ED, 0xE00018FC, 0xE000190B, 0xE000191A, 0xE0001929, 0xE0001938, - 0xE0001947, 0xE0001956, 0xE0001965, 0xE0001974, - // Block 3, offset 0xc0 - 0xE0001983, 0xE0001992, 0xE00019A1, 0xE00019B0, 0xE00019BF, 0xE00019CE, - 0xE00019DD, 0xE00019EC, 0xE00019FB, 0xE0001A0A, 0xE0001A19, 0xE0001A28, - 0xE0001A37, 0xE0001A46, 0xE0001A55, 0xE0001A64, 0xE0001A73, 0xE0001A82, - 0xE0001A91, 0xE0001AA0, 0xE0001AAF, 0xE0001ABE, 0xE0001ACD, 0xE0001ADC, - 0xE0001AEB, 0xE0001AFA, 0xE0001B09, 0xE0001B18, 0xE0001B27, 0x40498820, - 0xE0001887, 0xE0001896, 0xE00018A5, 0xE00018B4, 0xE00018C3, 0xE00018D2, - 0xE00018E1, 0xE00018F0, 0xE00018FF, 0xE000190E, 0xE000191D, 0xE000192C, - 0xE000193B, 0xE000194A, 0xE0001959, 0xE0001968, 0xE0001977, 0xE0001986, - 0xE0001995, 0xE00019A4, 0xE00019B3, 0xE00019C2, 0xE00019D1, 0xE00019E0, - 0xE00019EF, 0xE00019FE, 0xE0001A0D, 0xE0001A1C, 0xE0001A2B, 0xE0001A3A, - 0xE0001A49, 0xE0001A58, 0xE0001A67, 0xE0001A76, - // Block 4, offset 0x100 - 0xE0001A85, 0xE0001A94, 0xE0001AA3, 0xE0001AB2, 0xE0001AC1, 0xE0001AD0, - 0xE0001ADF, 0xE0001AEE, 0xE0001AFD, 0xE0001B0C, 0xE0001B1B, 0xE0001B2A, - 0x40498A20, 0xE000188A, 0xE0001899, 0xE00018A8, 0xE00018B7, 0xE00018C6, - 0xE00018D5, 0xE00018E4, 0xE00018F3, 0xE0001902, 0xE0001911, 0xE0001920, - 0xE000192F, 0xE000193E, 0xE000194D, 0xE000195C, 0xE000196B, 0xE000197A, - 0xE0001989, 0xE0001998, 0xE00019A7, 0xE00019B6, 0xE00019C5, 0xE00019D4, - 0xE00019E3, 0xE00019F2, 0xE0001A01, 0xE0001A10, 0xE0001A1F, 0xE0001A2E, - 0xE0001A3D, 0xE0001A4C, 0xE0001A5B, 0xE0001A6A, 0xE0001A79, 0xE0001A88, - 0xE0001A97, 0xE0001AA6, 0xE0001AB5, 0xE0001AC4, 0xE0001AD3, 0xE0001AE2, - 0xE0001AF1, 0xE0001B00, 0xE0001B0F, 0xE0001B1E, 0xE0001B2D, 0x40498C20, - 0xE000188D, 0xE000189C, 0xE00018AB, 0xE00018BA, - // Block 5, offset 0x140 - 0xE00018C9, 0xE00018D8, 0xE00018E7, 0xE00018F6, 0xE0001905, 0xE0001914, - 0xE0001923, 0xE0001932, 0xE0001941, 0xE0001950, 0xE000195F, 0xE000196E, - 0xE000197D, 0xE000198C, 0xE000199B, 0xE00019AA, 0xE00019B9, 0xE00019C8, - 0xE00019D7, 0xE00019E6, 0xE00019F5, 0xE0001A04, 0xE0001A13, 0xE0001A22, - 0xE0001A31, 0xE0001A40, 0xE0001A4F, 0xE0001A5E, 0xE0001A6D, 0xE0001A7C, - 0xE0001A8B, 0xE0001A9A, 0xE0001AA9, 0xE0001AB8, 0xE0001AC7, 0xE0001AD6, - 0xE0001AE5, 0xE0001AF4, 0xE0001B03, 0xE0001B12, 0xE0001B21, 0xE0001B30, - 0xA0010502, 0x40497420, 0x4049E620, 0xE0001B42, 0xE0001B51, 0xE0001B60, - 0xE0001B6F, 0xE0001B7E, 0xE0001B9C, 0xE0001BBA, 0xE0001BC9, 0xE0001BD8, - 0xE0001BE7, 0xE0001BF6, 0xE0001C05, 0xE0001C14, 0xE0001C23, 0xE0001C32, - 0xE0001C41, 0xE0001C50, 0xE0001C5F, 0xE0001C6E, - // Block 6, offset 0x180 - 0xE0001C7D, 0xE0001C8C, 0xE0001C9B, 0xE0001CAA, 0xE0001B8D, 0xE0001CE1, - 0xE0001CF0, 0xE0001CFF, 0xE0001CB9, 0xE0001CCD, 0xE0001B33, 0xE0001BAB, - 0x4049E820, 0xE0001B45, 0xE0001B54, 0xE0001B63, 0xE0001B72, 0xE0001B81, - 0xE0001B9F, 0xE0001BBD, 0xE0001BCC, 0xE0001BDB, 0xE0001BEA, 0xE0001BF9, - 0xE0001C08, 0xE0001C17, 0xE0001C26, 0xE0001C35, 0xE0001C44, 0xE0001C53, - 0xE0001C62, 0xE0001C71, 0xE0001C80, 0xE0001C8F, 0xE0001C9E, 0xE0001CAD, - 0xE0001B90, 0xE0001CE4, 0xE0001CF3, 0xE0001D02, 0xE0001CBD, 0xE0001CD1, - 0xE0001B36, 0xE0001BAE, 0x4049EA20, 0xE0001B48, 0xE0001B57, 0xE0001B66, - 0xE0001B75, 0xE0001B84, 0xE0001BA2, 0xE0001BC0, 0xE0001BCF, 0xE0001BDE, - 0xE0001BED, 0xE0001BFC, 0xE0001C0B, 0xE0001C1A, 0xE0001C29, 0xE0001C38, - 0xE0001C47, 0xE0001C56, 0xE0001C65, 0xE0001C74, - // Block 7, offset 0x1c0 - 0xE0001C83, 0xE0001C92, 0xE0001CA1, 0xE0001CB0, 0xE0001B93, 0xE0001CE7, - 0xE0001CF6, 0xE0001D05, 0xE0001CC1, 0xE0001CD5, 0xE0001B39, 0xE0001BB1, - 0x4049EC20, 0xE0001B4B, 0xE0001B5A, 0xE0001B69, 0xE0001B78, 0xE0001B87, - 0xE0001BA5, 0xE0001BC3, 0xE0001BD2, 0xE0001BE1, 0xE0001BF0, 0xE0001BFF, - 0xE0001C0E, 0xE0001C1D, 0xE0001C2C, 0xE0001C3B, 0xE0001C4A, 0xE0001C59, - 0xE0001C68, 0xE0001C77, 0xE0001C86, 0xE0001C95, 0xE0001CA4, 0xE0001CB3, - 0xE0001B96, 0xE0001CEA, 0xE0001CF9, 0xE0001D08, 0xE0001CC5, 0xE0001CD9, - 0xE0001B3C, 0xE0001BB4, 0x4049EE20, 0xE0001B4E, 0xE0001B5D, 0xE0001B6C, - 0xE0001B7B, 0xE0001B8A, 0xE0001BA8, 0xE0001BC6, 0xE0001BD5, 0xE0001BE4, - 0xE0001BF3, 0xE0001C02, 0xE0001C11, 0xE0001C20, 0xE0001C2F, 0xE0001C3E, - 0xE0001C4D, 0xE0001C5C, 0xE0001C6B, 0xE0001C7A, - // Block 8, offset 0x200 - 0xE0001C89, 0xE0001C98, 0xE0001CA7, 0xE0001CB6, 0xE0001B99, 0xE0001CED, - 0xE0001CFC, 0xE0001D0B, 0xE0001CC9, 0xE0001CDD, 0xE0001B3F, 0xE0001BB7, - 0xA0010B02, 0x4049D220, 0x404A5A20, 0xE0001D0E, 0xE0001D1D, 0xE0001D2C, - 0xE0001D3B, 0xE0001D4A, 0xE0001D59, 0xE0001D68, 0xE0001D77, 0xE0001D86, - 0xE0001D95, 0xE0001DA4, 0xE0001DB3, 0xE0001DC2, 0xE0001DD1, 0xE0001DE0, - 0xE0001DEF, 0xE0001DFE, 0xE0001E0D, 0xE0001E1C, 0xE0001E2B, 0xE0001E3A, - 0xE0001E49, 0xE0001E58, 0xE0001E67, 0xE0001E76, 0xE0001E85, 0xE0001E94, - 0xE0001EA3, 0xE0001EB2, 0xE0001EC1, 0xE0001ED0, 0xE0001EDF, 0xE0001EEE, - 0xE0001EFD, 0xE0001F0C, 0xE0001F1B, 0xE0001F2A, 0xE0001F39, 0xE0001F48, - 0xE0001F57, 0xE0001F66, 0xE0001F75, 0xE0001F84, 0xE0001F93, 0xE0001FA2, - 0xE0001FB1, 0xE0001FC0, 0xE0001FCF, 0x404A5C20, - // Block 9, offset 0x240 - 0xE0001D11, 0xE0001D20, 0xE0001D2F, 0xE0001D3E, 0xE0001D4D, 0xE0001D5C, - 0xE0001D6B, 0xE0001D7A, 0xE0001D89, 0xE0001D98, 0xE0001DA7, 0xE0001DB6, - 0xE0001DC5, 0xE0001DD4, 0xE0001DE3, 0xE0001DF2, 0xE0001E01, 0xE0001E10, - 0xE0001E1F, 0xE0001E2E, 0xE0001E3D, 0xE0001E4C, 0xE0001E5B, 0xE0001E6A, - 0xE0001E79, 0xE0001E88, 0xE0001E97, 0xE0001EA6, 0xE0001EB5, 0xE0001EC4, - 0xE0001ED3, 0xE0001EE2, 0xE0001EF1, 0xE0001F00, 0xE0001F0F, 0xE0001F1E, - 0xE0001F2D, 0xE0001F3C, 0xE0001F4B, 0xE0001F5A, 0xE0001F69, 0xE0001F78, - 0xE0001F87, 0xE0001F96, 0xE0001FA5, 0xE0001FB4, 0xE0001FC3, 0xE0001FD2, - 0x404A6220, 0xE0001D14, 0xE0001D23, 0xE0001D32, 0xE0001D41, 0xE0001D50, - 0xE0001D5F, 0xE0001D6E, 0xE0001D7D, 0xE0001D8C, 0xE0001D9B, 0xE0001DAA, - 0xE0001DB9, 0xE0001DC8, 0xE0001DD7, 0xE0001DE6, - // Block 10, offset 0x280 - 0xE0001DF5, 0xE0001E04, 0xE0001E13, 0xE0001E22, 0xE0001E31, 0xE0001E40, - 0xE0001E4F, 0xE0001E5E, 0xE0001E6D, 0xE0001E7C, 0xE0001E8B, 0xE0001E9A, - 0xE0001EA9, 0xE0001EB8, 0xE0001EC7, 0xE0001ED6, 0xE0001EE5, 0xE0001EF4, - 0xE0001F03, 0xE0001F12, 0xE0001F21, 0xE0001F30, 0xE0001F3F, 0xE0001F4E, - 0xE0001F5D, 0xE0001F6C, 0xE0001F7B, 0xE0001F8A, 0xE0001F99, 0xE0001FA8, - 0xE0001FB7, 0xE0001FC6, 0xE0001FD5, 0x404A6620, 0xE0001D17, 0xE0001D26, - 0xE0001D35, 0xE0001D44, 0xE0001D53, 0xE0001D62, 0xE0001D71, 0xE0001D80, - 0xE0001D8F, 0xE0001D9E, 0xE0001DAD, 0xE0001DBC, 0xE0001DCB, 0xE0001DDA, - 0xE0001DE9, 0xE0001DF8, 0xE0001E07, 0xE0001E16, 0xE0001E25, 0xE0001E34, - 0xE0001E43, 0xE0001E52, 0xE0001E61, 0xE0001E70, 0xE0001E7F, 0xE0001E8E, - 0xE0001E9D, 0xE0001EAC, 0xE0001EBB, 0xE0001ECA, - // Block 11, offset 0x2c0 - 0xE0001ED9, 0xE0001EE8, 0xE0001EF7, 0xE0001F06, 0xE0001F15, 0xE0001F24, - 0xE0001F33, 0xE0001F42, 0xE0001F51, 0xE0001F60, 0xE0001F6F, 0xE0001F7E, - 0xE0001F8D, 0xE0001F9C, 0xE0001FAB, 0xE0001FBA, 0xE0001FC9, 0xE0001FD8, - 0x404A6820, 0xE0001D1A, 0xE0001D29, 0xE0001D38, 0xE0001D47, 0xE0001D56, - 0xE0001D65, 0xE0001D74, 0xE0001D83, 0xE0001D92, 0xE0001DA1, 0xE0001DB0, - 0xE0001DBF, 0xE0001DCE, 0xE0001DDD, 0xE0001DEC, 0xE0001DFB, 0xE0001E0A, - 0xE0001E19, 0xE0001E28, 0xE0001E37, 0xE0001E46, 0xE0001E55, 0xE0001E64, - 0xE0001E73, 0xE0001E82, 0xE0001E91, 0xE0001EA0, 0xE0001EAF, 0xE0001EBE, - 0xE0001ECD, 0xE0001EDC, 0xE0001EEB, 0xE0001EFA, 0xE0001F09, 0xE0001F18, - 0xE0001F27, 0xE0001F36, 0xE0001F45, 0xE0001F54, 0xE0001F63, 0xE0001F72, - 0xE0001F81, 0xE0001F90, 0xE0001F9F, 0xE0001FAE, - // Block 12, offset 0x300 - 0xE0001FBD, 0xE0001FCC, 0xE0001FDB, 0x404AEA20, 0xE000200E, 0xE0002011, - 0x404B2620, 0x404B2420, 0x404B2620, 0x404AF020, 0xE0002014, 0xE0002017, - 0x404B2A20, 0x404B2820, 0x404B2A20, 0x8281258B, 0x8281258D, 0x82812591, - 0x8281258F, 0x404ECA20, 0x404ECC20, 0x404F9C20, 0x404F9620, 0x404F9E20, - 0x404F9820, 0x40522620, 0x40522820, 0x40522A20, 0x40522C20, 0x40522E20, - 0x40523020, 0x40523220, 0x40523420, 0x40523620, 0x40523820, 0x40523E20, - 0x40524020, 0x40529C20, 0x40529E20, 0x4052A020, 0x4052A220, 0x4052A420, - 0x4052A820, 0x4052A620, 0x4052AA20, 0x4052AC20, 0x4052AE20, 0x4040B620, - 0x4040B420, 0x40409820, 0x4040DC20, 0x402C3A20, 0x402C3C20, 0x002C3A88, - 0x002C3C83, 0x402D2220, 0x402D2420, 0x002D2288, 0x002D2483, 0x002D9883, - 0x002D9A83, 0x402EE220, 0x402EE420, 0x002EE288, - // Block 13, offset 0x340 - 0x002EE483, 0x402FE620, 0x402FE820, 0x002FE688, 0x002FE883, 0x40306C20, - 0x40306E20, 0x00306C88, 0x00306E83, 0x4033B220, 0x4033BA20, 0x4033B420, - 0x0033B288, 0x0033BA88, 0x0033B483, 0x402E2220, 0x402E2221, 0x402E2221, - 0x002E2288, 0x002E22A3, 0x002E22A3, 0x402C3A20, 0x402C3C20, 0x002D6A83, - 0x402D6A20, 0x002C3A88, 0x002C3C83, 0x002D6A85, 0x002D6A84, 0x402F7A20, - 0x402F7C20, 0x002F7A88, 0x002F7C83, 0x40312A20, 0x40312C20, 0x00312A88, - 0x00312C83, 0x002C3A88, 0x002C3C84, 0x002C3C83, 0x402C6220, 0x402C6420, - 0x002C6288, 0x002C6484, 0x002C6483, 0x402D0820, 0x402D0A20, 0x002D0888, - 0x002D0A84, 0x002D0A83, 0x402E9E20, 0x402D2420, 0x002E9E88, 0x002D2484, - 0x002D2483, 0x402E2220, 0xE0000CFB, 0xE0000CFB, 0x402E2420, 0x002E2288, - 0xE0000D01, 0xE0000D01, 0x002E2484, 0x002E2483, - // Block 14, offset 0x380 - 0x402F2C20, 0x402F2E20, 0x002F2C88, 0x002F2E84, 0x002F2E83, 0x002F7A88, - 0x002F7C84, 0x002F7C83, 0x40302C20, 0x40302E20, 0x00302C88, 0x00302E84, - 0x00302E83, 0x40306C20, 0x40310021, 0x40310022, 0x00306C88, 0x003100A3, - 0x003100C3, 0x402BDE20, 0x40320C21, 0x40321020, 0x00321084, 0x002BDE88, - 0x00320CA3, 0x00321083, 0x00321086, 0x00321085, 0x402C9820, 0x40320C22, - 0x002C9888, 0x00320CC3, 0x402EE220, 0x40320E21, 0x40320E22, 0x002EE288, - 0x00320EA3, 0x00320EC3, 0xAE611302, 0x404A7621, 0x404A7C21, 0x404AB020, - 0x404ACC20, 0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420, 0x404ADA20, - 0x404A8220, 0x404A8420, 0xE00029DC, 0xE00029E1, 0x404A8620, 0x404A8820, - 0x404A8A20, 0x404A8C20, 0x404A8E20, 0x404A9020, 0x404A9220, 0x404A9420, - 0x404A9620, 0x404A9820, 0x404A9A20, 0x404A9C20, - // Block 15, offset 0x3c0 - 0x404A8620, 0x404A8820, 0xE00029E6, 0xE00029EB, 0x404A8A20, 0x404A8C20, - 0x404A8E20, 0x404A9020, 0x404ABA20, 0x404ABC20, 0xE00029F0, 0xE00029F5, - 0x404ABE20, 0x404AC020, 0x404AC220, 0x404AC420, 0x404AC620, 0x404AC820, - 0x404ACA20, 0x404AD620, 0x404AD820, 0x404AC220, 0x404AC420, 0xE00029FA, - 0xE00029FF, 0x404AC620, 0x404AC820, 0x404ACA20, 0x404ACC20, 0x404ACE20, - 0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, 0x404AD820, 0x404ADA20, - 0x404ADC20, 0x404AC620, 0x404AC820, 0xE0002A04, 0xE0002A09, 0x404ACA20, - 0x404ACC20, 0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, - 0x404AD820, 0x404ADC20, 0x404A7820, 0x404AC020, 0x404A9E20, 0xE0002A14, - 0xE0002A19, 0x404AA020, 0x404AA220, 0x404AA420, 0x404AA620, 0x404AA820, - 0x404AAA20, 0x404AAC20, 0x004AA283, 0x404AAE20, - // Block 16, offset 0x400 - 0x404AB020, 0x404AB220, 0x404ACC20, 0xE0002A1E, 0xE0002A23, 0x404ACE20, - 0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, 0x404AD820, 0x404ADA20, - 0x404ADC20, 0x004ACE83, 0x404A8220, 0x404AE820, 0x404AA420, 0x404A9A20, - 0x404A9E20, 0x404AB420, 0x404B1420, 0x404AE420, 0x404AD220, 0x404AD820, - 0x404AEA20, 0x404A9020, 0x404AB620, 0x404B1620, 0x404B1620, 0x404B1820, - 0xE0002A28, 0xE0002A2D, 0x404B1A20, 0x404B1C20, 0x404B1E20, 0x404B2020, - 0x404B2220, 0x404B2420, 0x404B2620, 0x404B2820, 0x404B2A20, 0x004B1E83, - 0x404A8420, 0x404AEA20, 0x404AA620, 0x404AA020, 0x404AB820, 0x404B1820, - 0x404AE620, 0x404AD420, 0x404B2C20, 0x404B2E20, 0x404B3020, 0x404A7A20, - 0x404A8C20, 0x404AAC20, 0x404ACC20, 0x404ADC20, 0x404AE020, 0x404AF620, - 0x404AE820, 0x404A7C20, 0x404AE220, 0x404A9E20, - // Block 17, offset 0x440 - 0x404A9620, 0x404A9A20, 0x404AAE20, 0x404B0E20, 0x404AE020, 0x404AFC20, - 0x404ADE20, 0x404ACE20, 0x404AD620, 0x404AEE20, 0x404A7E20, 0x404AE420, - 0x404AA020, 0x404A8E20, 0x404A9820, 0x404AB020, 0x404B1020, 0x404ADA20, - 0x404AFE20, 0x404B0020, 0x404AC420, 0x404AB420, 0x404AB620, 0x404AB820, - 0x404ABA20, 0x404ABC20, 0x404ABE20, 0x404AC020, 0x404A9220, 0xE0002A35, - 0xE0002A3A, 0x404A9420, 0x404A9620, 0x404A9820, 0x404A9A20, 0x404A9C20, - 0x404ADE20, 0x404AE020, 0xE0002A3F, 0xE0002A44, 0x404AE220, 0x404AE420, - 0x404AE620, 0x404AE820, 0x404AEA20, 0x404AEC20, 0x404ACA20, 0x404ACC20, - 0xE0002A49, 0xE0002A4E, 0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420, - 0x404AD620, 0x404AD820, 0x404ADA20, 0x404ADC20, 0x404ADE20, 0x004AD283, - 0x404A7E20, 0x404A8E20, 0x404A9220, 0x404A9820, - // Block 18, offset 0x480 - 0x404AAE20, 0x404ACE20, 0x404AD220, 0x404AFA20, 0x404A8020, 0x404AE620, - 0x404AA220, 0x404A9C20, 0x404AB220, 0x404B1220, 0x404AE220, 0x404ADC20, - 0x404B0020, 0x404AE020, 0x404AD020, 0x404AE020, 0x404AC220, 0x404AC420, - 0xE0002A56, 0xE0002A5B, 0x404AC620, 0x404AC820, 0x404ACA20, 0x404ACC20, - 0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, 0x404AD820, - 0x404ADA20, 0x404ADC20, 0x004ACC83, 0x404ADE20, 0x404AE020, 0x404AEE20, - 0x404AF020, 0xE0002A60, 0xE0002A65, 0x404AF220, 0x404AF420, 0x404AF620, - 0x404AF820, 0x404AFA20, 0x404AFC20, 0x404AFE20, 0x404B0020, 0x404B0220, - 0x404B0420, 0x404B0620, 0x404B0820, 0x404B0A20, 0x004AF883, 0x404B0C20, - 0x404ADE20, 0x404AE020, 0xE0002A6A, 0xE0002A6F, 0x404AE220, 0x404AE420, - 0x404AE620, 0x404AE820, 0x404AEA20, 0x404AEC20, - // Block 19, offset 0x4c0 - 0x404AEE20, 0x404AF020, 0x404AF220, 0x404AF420, 0x404AF620, 0x004AE883, - 0x404AF820, 0x404AFA20, 0x404A8020, 0x404A9020, 0x404A9420, 0x404AB020, - 0x404ABE20, 0x404AD020, 0x404AD420, 0x404A8020, 0x404AB220, 0x404AB420, - 0xE00029BB, 0xE00029C0, 0x404AB620, 0x404AB820, 0x404ABA20, 0x404ABC20, - 0x404ABE20, 0x404AC020, 0x404AC220, 0x404AC420, 0x404AC620, 0x404AC820, - 0x404ACA20, 0x004ABA83, 0x404AB620, 0x404AB820, 0xE00029C5, 0xE00029CA, - 0x404ABA20, 0x404ABC20, 0x404ABE20, 0x404AC020, 0x404AC220, 0x404AC420, - 0x404AC620, 0x404AC820, 0x004ABE83, 0x404AFC20, 0x404AFE20, 0xE00029CF, - 0xE00029D4, 0x404B0020, 0x404B0220, 0x404B0420, 0x404B0620, 0x404B0820, - 0x404B0A20, 0x404B0C20, 0x404B0E20, 0x404B1020, 0x404B1220, 0x404B1420, - 0x404A8A20, 0x404A9620, 0x404AAA20, 0x404ACA20, - // Block 20, offset 0x500 - 0x404ADA20, 0x404ADE20, 0x404AE620, 0x404AF420, 0xAE611602, 0x404A9421, - 0xAE611402, 0x404AB821, 0x404ABC21, 0x828225B1, 0xE000200E, 0xE0002011, - 0x404B2620, 0xE0002A74, 0xE000200E, 0xE0002011, 0x404B2420, 0x404B2620, - 0x828225B2, 0xE0002014, 0xE0002017, 0x404B2A20, 0xE0002A77, 0xE0002014, - 0xE0002017, 0x404B2820, 0x404B2A20, 0xAE610F02, 0x8281258D, 0x82812591, - 0x8281258F, 0x002D2288, 0x002D2484, 0x002D2483, 0x402DFE20, 0x402E0020, - 0x002DFE88, 0x002E0084, 0x002E0083, 0x402E9E20, 0x402EA020, 0x002E9E88, - 0x002EA084, 0x002EA083, 0x402C7820, 0xE0000CFB, 0xE0000CFB, 0x402C3820, - 0xE0000D01, 0xE0000D01, 0x402D6820, 0x402D6A20, 0x002D6888, 0x002D6A83, - 0x402DCC20, 0x402DCE20, 0x002DCC88, 0x002DCE83, 0x002E9E88, 0x002EA083, - 0x402FE620, 0x40302620, 0x002FE688, 0x00302683, - // Block 21, offset 0x540 - 0x40302820, 0x40302A20, 0x00302883, 0x00302A83, 0x402EE220, 0x4030EE20, - 0x4030F220, 0x002EE288, 0x0030EE83, 0x0030F283, 0x402BDE20, 0x4030F020, - 0x002BDE88, 0x0030F083, 0x40306C20, 0x4030F420, 0x00306C88, 0x0030F483, - 0x40393820, 0x40393620, 0x40393A21, 0x40393A23, 0x403A7420, 0x40393A25, - 0x403A9220, 0x40393A26, 0x403A9221, 0x00393B43, 0x403A9223, 0x00393B44, - 0x403A8821, 0x403A8825, 0x40306C20, 0x40310021, 0x00306C88, 0x003100A3, - 0x402BDE20, 0x40320E20, 0x40320C20, 0x002BDE88, 0x00320E83, 0x00320C83, - 0x402EE220, 0x40321020, 0x002EE288, 0x00321083, 0x402E9E20, 0x402EA020, - 0x402EA220, 0x002E9E88, 0x002EA083, 0x002EA284, 0x002EA283, 0x002FE688, - 0x002FE884, 0x002FE883, 0x4031DE20, 0x00310286, 0x00310283, 0x4003D220, - 0x00310287, 0x00310284, 0x402BEC20, 0xE0000CFB, - // Block 22, offset 0x580 - 0xE0000CFB, 0x002BEC83, 0xE0000D01, 0xE0000D01, 0x402C3A20, 0x402C3E20, - 0x402C3C20, 0x002C3A88, 0x002C3E83, 0x002C3C83, 0x402C6220, 0x402C6420, - 0x402C6420, 0x002C6288, 0x002C6486, 0x002C6484, 0x002C6486, 0x002C6484, - 0x002E2288, 0xE0000D01, 0xE0000D01, 0x002E2486, 0x002E2484, 0x002E9E88, - 0x002EA086, 0x002EA084, 0x402C3A20, 0xE0003BD4, 0x402C3C20, 0x002C3A88, - 0xE0003BDA, 0xE0003BD7, 0x002C3C86, 0x002C3C84, 0x402C6220, 0xE0003BE6, - 0xE0003BDD, 0x402C6620, 0x402C6420, 0x002C6288, 0xE0003BEC, 0xE0003BE9, - 0xE0003BE3, 0x002C6686, 0xE0003BE0, 0x002C6684, 0x002C6486, 0x002C6484, - 0x402D2220, 0xE0003BEF, 0x402D2420, 0x002D2288, 0xE0003BF5, 0xE0003BF2, - 0x002D2486, 0x002D2484, 0x402E2220, 0xE0003BF8, 0xE0000CFB, 0xE0000CFB, - 0x402E2420, 0x002E2288, 0xE0003BFE, 0xE0003BFB, - // Block 23, offset 0x5c0 - 0xE0000D01, 0xE0000D01, 0x002E2486, 0x002E2484, 0x402E9E20, 0xE0003C01, - 0x402EA020, 0x002E9E88, 0xE0003C07, 0xE0003C04, 0x002EA086, 0x002EA084, - 0x402EE220, 0x402EE420, 0x402EE421, 0x002EE288, 0x002EE483, 0x002EE4A3, - 0x402FE620, 0xE0003C0A, 0x402FE820, 0x002FE688, 0xE0003C10, 0xE0003C0D, - 0x002FE886, 0x002FE884, 0x40302C20, 0xE0003C13, 0x40302E20, 0x00302C88, - 0xE0003C19, 0xE0003C16, 0x00302E86, 0x00302E84, 0x40306C20, 0x40306E20, - 0x40306E21, 0x00306C88, 0x00306E83, 0x00306EA3, 0x40312A20, 0xE0003C1C, - 0x40312C20, 0x00312A88, 0xE0003C22, 0xE0003C1F, 0x00312C86, 0x00312C84, - 0x00384A88, 0x00388A83, 0x402C3A20, 0x402C0C20, 0x002C3A88, 0x002C0C84, - 0x002C0C83, 0x402D2220, 0x402D2420, 0x402D2620, 0x402D2820, 0x002D2288, - 0x002D2484, 0x002D2684, 0x002D2884, 0x002D2483, - // Block 24, offset 0x600 - 0x002D2683, 0x002D2883, 0x402D9A20, 0x402D9C20, 0x002D9A88, 0x002D9C83, - 0x402DFE20, 0x402E0020, 0x402E0220, 0x002DFE88, 0x002E0084, 0x002E0284, - 0x002E0083, 0x002E0283, 0x402E9E20, 0x402EA020, 0x402EA220, 0x402EA420, - 0x002E9E88, 0x002EA083, 0x002EA284, 0x002EA484, 0x002EA283, 0x002EA483, - 0x402BDE20, 0x402C0820, 0x40320C21, 0x40321020, 0x002BDE88, 0x002C0883, - 0x00320CA3, 0x00321083, 0x402C9820, 0x402D0620, 0x002C9888, 0x002D0683, - 0x402D9A20, 0x402DCA20, 0x002D9A88, 0x002DCA83, 0x402EE220, 0x402F2A20, - 0x40320E20, 0x002EE288, 0x002F2A83, 0x00320E83, 0x40306C20, 0x4030BC20, - 0x00306C88, 0x0030BC83, 0x40310020, 0x40312820, 0x00310088, 0x00312883, - 0x0065768F, 0xE0003CAF, 0xE0003CA9, 0x0065768F, 0xE0003CA9, 0xE0003CAF, - 0x00657691, 0xE0003CB2, 0xE0003CAC, 0x00657691, - // Block 25, offset 0x640 - 0xE0003CAC, 0xE0003CB2, 0x0065828F, 0xE0003E2D, 0xE0003CB5, 0x0065828F, - 0xE0003CB5, 0xE0003E2D, 0x00658291, 0xE0003E33, 0xE0003CBB, 0xE0003E30, - 0xE0003CB8, 0x00658291, 0xE0003CBB, 0xE0003E33, 0xE0003CB8, 0xE0003E30, - 0x00658291, 0xE0003CB8, 0xE0003E30, 0xE000216D, 0xE0003E33, 0xE0003CBB, - 0xE000216D, 0xE0003CBB, 0xE0003E33, 0x00658C91, 0xE0003E76, 0xE0003E72, - 0xE0003CC2, 0xE0003E72, 0xE0003E6F, 0xE0003E72, 0xE0003CBF, 0x00658C91, - 0xE0003E76, 0xE0003CC2, 0xE0003E72, 0xE0003E72, 0xE0003CBF, 0xE0003E6F, - 0xE0003E72, 0x00658C91, 0xE0003E72, 0xE0003CBF, 0xE0003E6F, 0xE0003E72, - 0xE00021F2, 0xE0003E72, 0xE0003E76, 0xE0003CC2, 0xE00021F2, 0xE0003CC2, - 0xE0003E72, 0xE0003E76, 0x00659691, 0xE0003EC0, 0xE0003EBC, 0xE0003CC9, - 0xE0003EBC, 0xE0003EB9, 0xE0003EBC, 0xE0003CC6, - // Block 26, offset 0x680 - 0x00659691, 0xE0003EC0, 0xE0003CC9, 0xE0003EBC, 0xE0003EBC, 0xE0003CC6, - 0xE0003EB9, 0xE0003EBC, 0x00659691, 0xE0003EBC, 0xE0003CC6, 0xE0003EB9, - 0xE0003EBC, 0xE000222C, 0xE0003EBC, 0xE0003EC0, 0xE0003CC9, 0xE000222C, - 0xE0003CC9, 0xE0003EBC, 0xE0003EC0, 0x0065A091, 0xE0003F03, 0xE0003CCD, - 0x0065A091, 0xE0003CCD, 0xE0003F03, 0x0065AA8F, 0xE0003F1B, 0xE0003CD0, - 0xE0003F15, 0xE0003F1B, 0x0065AA91, 0xE0003F23, 0xE0003F2C, 0xE0003F1F, - 0xE0003CD6, 0xE0003F28, 0xE0003CDA, 0xE0003F1F, 0xE0003F18, 0xE0003F1F, - 0xE0003CD3, 0x0065AA91, 0xE0003F23, 0xE0003F2C, 0xE0003CD6, 0xE0003F1F, - 0xE0003CDA, 0xE0003F28, 0xE0003F1F, 0xE0003CD3, 0xE0003F18, 0xE0003F1F, - 0x0065AA91, 0xE0003F1F, 0xE0003CD3, 0xE0003F18, 0xE0003F1F, 0xE000225B, - 0xE0003F1F, 0xE0003F23, 0xE0003CD6, 0xE000225B, - // Block 27, offset 0x6c0 - 0xE0003CD6, 0xE0003F1F, 0xE0003F23, 0xE0002261, 0xE0003F28, 0xE0003F2C, - 0xE0003CDA, 0xE0002261, 0xE0003CDA, 0xE0003F28, 0xE0003F2C, 0x0065B491, - 0xE0003FA1, 0xE0003CDE, 0x0065B491, 0xE0003CDE, 0xE0003FA1, 0x0065BE8F, - 0xE0003FB3, 0xE0003CE1, 0x0065BE8F, 0xE0003CE1, 0xE0003FB3, 0x0065BE91, - 0xE0003FB6, 0xE0003CE4, 0x0065BE91, 0xE0003CE4, 0xE0003FB6, 0x0065C68F, - 0xE0003CE7, 0xE0003FC8, 0x0065C691, 0xE0003FCB, 0xE0003CEA, 0x0065C691, - 0xE0003CEA, 0xE0003FCB, 0x0065D08F, 0xE0003FEC, 0xE0003FE6, 0xE0003FEC, - 0xE0003CED, 0x0065D08F, 0xE0003FEC, 0xE0003CED, 0xE0003FE6, 0xE0003FEC, - 0x0065D091, 0xE0003FF0, 0xE0003FE9, 0xE0003FF0, 0xE0003CF0, 0x0065D091, - 0xE0003FF4, 0xE0003CF3, 0xE0003FF0, 0xE0003FF0, 0xE0003CF0, 0xE0003FE9, - 0xE0003FF0, 0x0065D091, 0xE0003FF0, 0xE0003CF0, - // Block 28, offset 0x700 - 0xE0003FE9, 0xE0003FF0, 0xE000236A, 0xE0003CF3, 0xE0003FF0, 0xE0003FF4, - 0x0065788F, 0xE0003CFD, 0xE0003CF7, 0x0065788F, 0xE0003CF7, 0xE0003CFD, - 0x00657891, 0xE0003D00, 0xE0003CFA, 0x00657891, 0xE0003CFA, 0xE0003D00, - 0x00658491, 0xE0003E3E, 0xE0003E3A, 0xE0003D06, 0xE0003E3A, 0xE0003E37, - 0xE0003E3A, 0xE0003D03, 0x00658491, 0xE0003E3E, 0xE0003D06, 0xE0003E3A, - 0xE0003E3A, 0xE0003D03, 0xE0003E37, 0xE0003E3A, 0x00658491, 0xE0003E3A, - 0xE0003D03, 0xE0003E37, 0xE0003E3A, 0xE000218B, 0xE0003E3A, 0xE0003E3E, - 0xE0003D06, 0xE000218B, 0xE0003D06, 0xE0003E3A, 0xE0003E3E, 0x00658E8F, - 0xE0003E81, 0xE0003D0A, 0xE0003E7B, 0xE0003E81, 0x00658E91, 0xE0003E89, - 0xE0003E85, 0xE0003D10, 0xE0003E85, 0xE0003E7E, 0xE0003E85, 0xE0003D0D, - 0x00658E91, 0xE0003E89, 0xE0003D10, 0xE0003E85, - // Block 29, offset 0x740 - 0xE0003E85, 0xE0003D0D, 0xE0003E7E, 0xE0003E85, 0x00658E91, 0xE0003E85, - 0xE0003D0D, 0xE0003E7E, 0xE0003E85, 0xE0002203, 0xE0003E85, 0xE0003E89, - 0xE0003D10, 0xE0002203, 0xE0003D10, 0xE0003E85, 0xE0003E89, 0x00659891, - 0xE0003ECC, 0xE0003EC8, 0xE0003D17, 0xE0003EC8, 0xE0003EC5, 0xE0003EC8, - 0xE0003D14, 0x00659891, 0xE0003ECC, 0xE0003D17, 0xE0003EC8, 0xE0003EC8, - 0xE0003D14, 0xE0003EC5, 0xE0003EC8, 0x00659891, 0xE0003EC8, 0xE0003D14, - 0xE0003EC5, 0xE0003EC8, 0xE0002237, 0xE0003EC8, 0xE0003ECC, 0xE0003D17, - 0xE0002237, 0xE0003D17, 0xE0003EC8, 0xE0003ECC, 0x0065A291, 0xE0003F06, - 0xE0003D1B, 0x0065A291, 0xE0003D1B, 0xE0003F06, 0x0065AC8F, 0xE0003F37, - 0xE0003D1E, 0xE0003F31, 0xE0003F37, 0x0065AC91, 0xE0003F3F, 0xE0003F48, - 0xE0003F3B, 0xE0003D24, 0xE0003F44, 0xE0003D28, - // Block 30, offset 0x780 - 0xE0003F3B, 0xE0003F34, 0xE0003F3B, 0xE0003D21, 0x0065AC91, 0xE0003F3F, - 0xE0003F48, 0xE0003D24, 0xE0003F3B, 0xE0003D28, 0xE0003F44, 0xE0003F3B, - 0xE0003D21, 0xE0003F34, 0xE0003F3B, 0x0065AC91, 0xE0003F3B, 0xE0003D21, - 0xE0003F34, 0xE0003F3B, 0xE000227D, 0xE0003F3B, 0xE0003F3F, 0xE0003D24, - 0xE000227D, 0xE0003D24, 0xE0003F3B, 0xE0003F3F, 0xE0002283, 0xE0003F44, - 0xE0003F48, 0xE0003D28, 0xE0002283, 0xE0003D28, 0xE0003F44, 0xE0003F48, - 0x0065B691, 0xE0003FA4, 0xE0003D2C, 0x0065B691, 0xE0003D2C, 0xE0003FA4, - 0x0065C88F, 0xE0003D2F, 0xE0003FCE, 0x0065C891, 0xE0003FD1, 0xE0003D32, - 0x0065C891, 0xE0003D32, 0xE0003FD1, 0x0065D291, 0xE0003FFC, 0xE0003FF9, - 0xE0003FFC, 0xE0003D35, 0x0065D291, 0xE0004000, 0xE0003D38, 0xE0003FFC, - 0xE0003FFC, 0xE0003D35, 0xE0003FF9, 0xE0003FFC, - // Block 31, offset 0x7c0 - 0xE0002371, 0xE0003D38, 0xE0003FFC, 0xE0004000, 0x00657A8F, 0xE0003D4C, - 0xE0003D42, 0xE0003D4C, 0xE0003D3C, 0x00657A8F, 0xE0003D4C, 0xE0003D3C, - 0xE0003D42, 0xE0003D4C, 0x00657A91, 0xE0003D54, 0xE0003D50, 0xE0003D48, - 0xE0003D50, 0xE0003D45, 0xE0003D50, 0xE0003D3F, 0x00657A91, 0xE0003D54, - 0xE0003D48, 0xE0003D50, 0xE0003D50, 0xE0003D3F, 0xE0003D45, 0xE0003D50, - 0x00657A91, 0xE0003D50, 0xE0003D3F, 0xE0003D45, 0xE0003D50, 0xE000214F, - 0xE0003D50, 0xE0003D54, 0xE0003D48, 0xE000214F, 0xE0003D48, 0xE0003D50, - 0xE0003D54, 0x0065868F, 0xE0003E49, 0xE0003D59, 0xE0003E43, 0xE0003E49, - 0x00658691, 0xE0003E51, 0xE0003E4D, 0xE0003D5F, 0xE0003E4D, 0xE0003E46, - 0xE0003E4D, 0xE0003D5C, 0x00658691, 0xE0003E51, 0xE0003D5F, 0xE0003E4D, - 0xE0003E4D, 0xE0003D5C, 0xE0003E46, 0xE0003E4D, - // Block 32, offset 0x800 - 0x00658691, 0xE0003E4D, 0xE0003D5C, 0xE0003E46, 0xE0003E4D, 0xE00021BB, - 0xE0003E4D, 0xE0003E51, 0xE0003D5F, 0xE00021BB, 0xE0003D5F, 0xE0003E4D, - 0xE0003E51, 0x0065908F, 0xE0003E94, 0xE0003D63, 0xE0003E8E, 0xE0003E94, - 0x00659091, 0xE0003E9C, 0xE0003E98, 0xE0003D69, 0xE0003E98, 0xE0003E91, - 0xE0003E98, 0xE0003D66, 0x00659091, 0xE0003E9C, 0xE0003D69, 0xE0003E98, - 0xE0003E98, 0xE0003D66, 0xE0003E91, 0xE0003E98, 0x00659091, 0xE0003E98, - 0xE0003D66, 0xE0003E91, 0xE0003E98, 0xE0002212, 0xE0003E98, 0xE0003E9C, - 0xE0003D69, 0xE0002212, 0xE0003D69, 0xE0003E98, 0xE0003E9C, 0x00659A8F, - 0xE0003ED7, 0xE0003ED1, 0xE0003ED7, 0xE0003D6D, 0x00659A8F, 0xE0003ED7, - 0xE0003D6D, 0xE0003ED1, 0xE0003ED7, 0x00659A91, 0xE0003EDF, 0xE0003EDB, - 0xE0003D73, 0xE0003EDB, 0xE0003ED4, 0xE0003EDB, - // Block 33, offset 0x840 - 0xE0003D70, 0x00659A91, 0xE0003EDF, 0xE0003D73, 0xE0003EDB, 0xE0003EDB, - 0xE0003D70, 0xE0003ED4, 0xE0003EDB, 0x00659A91, 0xE0003EDB, 0xE0003D70, - 0xE0003ED4, 0xE0003EDB, 0xE000223D, 0xE0003EDB, 0xE0003EDF, 0xE0003D73, - 0xE000223D, 0xE0003D73, 0xE0003EDB, 0xE0003EDF, 0x0065A48F, 0xE0003D77, - 0xE0003F09, 0x0065A491, 0xE0003F0C, 0xE0003D7A, 0x0065A491, 0xE0003D7A, - 0xE0003F0C, 0x0065AE8F, 0xE0003F53, 0xE0003D7D, 0xE0003F4D, 0xE0003F53, - 0x0065AE91, 0xE0003F5B, 0xE0003F64, 0xE0003F57, 0xE0003D83, 0xE0003F60, - 0xE0003D87, 0xE0003F57, 0xE0003F50, 0xE0003F57, 0xE0003D80, 0x0065AE91, - 0xE0003F5B, 0xE0003F64, 0xE0003D83, 0xE0003F57, 0xE0003D87, 0xE0003F60, - 0xE0003F57, 0xE0003D80, 0xE0003F50, 0xE0003F57, 0x0065AE91, 0xE0003F57, - 0xE0003D80, 0xE0003F50, 0xE0003F57, 0xE000229D, - // Block 34, offset 0x880 - 0xE0003F57, 0xE0003F5B, 0xE0003D83, 0xE000229D, 0xE0003D83, 0xE0003F57, - 0xE0003F5B, 0xE00022A3, 0xE0003F60, 0xE0003F64, 0xE0003D87, 0xE00022A3, - 0xE0003D87, 0xE0003F60, 0xE0003F64, 0x0065B88F, 0xE0003D8B, 0xE0003FA7, - 0x0065B891, 0xE0003FAA, 0xE0003D8E, 0x0065B891, 0xE0003D8E, 0xE0003FAA, - 0x0065C08F, 0xE0003FB9, 0xE0003D91, 0x0065C08F, 0xE0003D91, 0xE0003FB9, - 0x0065C091, 0xE0003FBC, 0xE0003D94, 0x0065C091, 0xE0003D94, 0xE0003FBC, - 0x0065CA8F, 0xE0003D97, 0xE0003FD4, 0x0065CA91, 0xE0003FD7, 0xE0003D9A, - 0x0065CA91, 0xE0003D9A, 0xE0003FD7, 0x00657E8F, 0xE0003DA3, 0xE0003D9D, - 0x00657E8F, 0xE0003D9D, 0xE0003DA3, 0x00657E91, 0xE0003DA6, 0xE0003DA0, - 0x00657E91, 0xE0003DA0, 0xE0003DA6, 0x0065888F, 0xE0003E56, 0xE0003DA9, - 0x0065888F, 0xE0003DA9, 0xE0003E56, 0x00658891, - // Block 35, offset 0x8c0 - 0xE0003E5C, 0xE0003DAF, 0xE0003E59, 0xE0003DAC, 0x00658891, 0xE0003DAF, - 0xE0003E5C, 0xE0003DAC, 0xE0003E59, 0x00658891, 0xE0003DAC, 0xE0003E59, - 0xE00021D9, 0xE0003E5C, 0xE0003DAF, 0xE00021D9, 0xE0003DAF, 0xE0003E5C, - 0x00659291, 0xE0003EA8, 0xE0003EA4, 0xE0003DB6, 0xE0003EA4, 0xE0003EA1, - 0xE0003EA4, 0xE0003DB3, 0x00659291, 0xE0003EA8, 0xE0003DB6, 0xE0003EA4, - 0xE0003EA4, 0xE0003DB3, 0xE0003EA1, 0xE0003EA4, 0x00659291, 0xE0003EA4, - 0xE0003DB3, 0xE0003EA1, 0xE0003EA4, 0xE0002218, 0xE0003EA4, 0xE0003EA8, - 0xE0003DB6, 0xE0002218, 0xE0003DB6, 0xE0003EA4, 0xE0003EA8, 0x00659C91, - 0xE0003EEB, 0xE0003EE7, 0xE0003DBD, 0xE0003EE7, 0xE0003EE4, 0xE0003EE7, - 0xE0003DBA, 0x00659C91, 0xE0003EEB, 0xE0003DBD, 0xE0003EE7, 0xE0003EE7, - 0xE0003DBA, 0xE0003EE4, 0xE0003EE7, 0x00659C91, - // Block 36, offset 0x900 - 0xE0003EE7, 0xE0003DBA, 0xE0003EE4, 0xE0003EE7, 0xE0002243, 0xE0003EE7, - 0xE0003EEB, 0xE0003DBD, 0xE0002243, 0xE0003DBD, 0xE0003EE7, 0xE0003EEB, - 0x0065A691, 0xE0003F0F, 0xE0003DC1, 0x0065A691, 0xE0003DC1, 0xE0003F0F, - 0x0065B08F, 0xE0003F6F, 0xE0003DC4, 0xE0003F69, 0xE0003F6F, 0x0065B091, - 0xE0003F77, 0xE0003F80, 0xE0003F73, 0xE0003DCA, 0xE0003F7C, 0xE0003DCE, - 0xE0003F73, 0xE0003F6C, 0xE0003F73, 0xE0003DC7, 0x0065B091, 0xE0003F77, - 0xE0003F80, 0xE0003DCA, 0xE0003F73, 0xE0003DCE, 0xE0003F7C, 0xE0003F73, - 0xE0003DC7, 0xE0003F6C, 0xE0003F73, 0x0065B091, 0xE0003F73, 0xE0003DC7, - 0xE0003F6C, 0xE0003F73, 0xE00022C0, 0xE0003F73, 0xE0003F77, 0xE0003DCA, - 0xE00022C0, 0xE0003DCA, 0xE0003F73, 0xE0003F77, 0xE00022C6, 0xE0003F7C, - 0xE0003F80, 0xE0003DCE, 0xE00022C6, 0xE0003DCE, - // Block 37, offset 0x940 - 0xE0003F7C, 0xE0003F80, 0x0065BA91, 0xE0003FAD, 0xE0003DD2, 0x0065BA91, - 0xE0003DD2, 0xE0003FAD, 0x0065CC8F, 0xE0003DD5, 0xE0003FDA, 0x0065CC91, - 0xE0003FDD, 0xE0003DD8, 0x0065CC91, 0xE0003DD8, 0xE0003FDD, 0x0065D491, - 0xE0004008, 0xE0004005, 0xE0004008, 0xE0003DDB, 0x0065D491, 0xE000400C, - 0xE0003DDE, 0xE0004008, 0xE0004008, 0xE0003DDB, 0xE0004005, 0xE0004008, - 0xE0002374, 0xE0003DDE, 0xE0004008, 0xE000400C, 0x0065808F, 0xE0003DE8, - 0xE0003DE2, 0x0065808F, 0xE0003DE2, 0xE0003DE8, 0x00658091, 0xE0003DEB, - 0xE0003DE5, 0x00658091, 0xE0003DE5, 0xE0003DEB, 0x00658A91, 0xE0003E67, - 0xE0003E63, 0xE0003DF1, 0xE0003E63, 0xE0003E60, 0xE0003E63, 0xE0003DEE, - 0x00658A91, 0xE0003E67, 0xE0003DF1, 0xE0003E63, 0xE0003E63, 0xE0003DEE, - 0xE0003E60, 0xE0003E63, 0x00658A91, 0xE0003E63, - // Block 38, offset 0x980 - 0xE0003DEE, 0xE0003E60, 0xE0003E63, 0xE00021E3, 0xE0003E63, 0xE0003E67, - 0xE0003DF1, 0xE00021E3, 0xE0003DF1, 0xE0003E63, 0xE0003E67, 0x00659491, - 0xE0003EB4, 0xE0003EB0, 0xE0003DF8, 0xE0003EB0, 0xE0003EAD, 0xE0003EB0, - 0xE0003DF5, 0x00659491, 0xE0003EB4, 0xE0003DF8, 0xE0003EB0, 0xE0003EB0, - 0xE0003DF5, 0xE0003EAD, 0xE0003EB0, 0x00659491, 0xE0003EB0, 0xE0003DF5, - 0xE0003EAD, 0xE0003EB0, 0xE0002226, 0xE0003EB0, 0xE0003EB4, 0xE0003DF8, - 0xE0002226, 0xE0003DF8, 0xE0003EB0, 0xE0003EB4, 0x00659E8F, 0xE0003EF6, - 0xE0003DFC, 0xE0003EF0, 0xE0003EF6, 0x00659E91, 0xE0003EFE, 0xE0003EFA, - 0xE0003E02, 0xE0003EFA, 0xE0003EF3, 0xE0003EFA, 0xE0003DFF, 0x00659E91, - 0xE0003EFE, 0xE0003E02, 0xE0003EFA, 0xE0003EFA, 0xE0003DFF, 0xE0003EF3, - 0xE0003EFA, 0x00659E91, 0xE0003EFA, 0xE0003DFF, - // Block 39, offset 0x9c0 - 0xE0003EF3, 0xE0003EFA, 0xE000224D, 0xE0003EFA, 0xE0003EFE, 0xE0003E02, - 0xE000224D, 0xE0003E02, 0xE0003EFA, 0xE0003EFE, 0x0065A891, 0xE0003F12, - 0xE0003E06, 0x0065A891, 0xE0003E06, 0xE0003F12, 0x0065B28F, 0xE0003F8B, - 0xE0003E09, 0xE0003F85, 0xE0003F8B, 0x0065B291, 0xE0003F93, 0xE0003F9C, - 0xE0003F8F, 0xE0003E0F, 0xE0003F98, 0xE0003E13, 0xE0003F8F, 0xE0003F88, - 0xE0003F8F, 0xE0003E0C, 0x0065B291, 0xE0003F93, 0xE0003F9C, 0xE0003E0F, - 0xE0003F8F, 0xE0003E13, 0xE0003F98, 0xE0003F8F, 0xE0003E0C, 0xE0003F88, - 0xE0003F8F, 0x0065B291, 0xE0003F8F, 0xE0003E0C, 0xE0003F88, 0xE0003F8F, - 0xE00022EF, 0xE0003F8F, 0xE0003F93, 0xE0003E0F, 0xE00022EF, 0xE0003E0F, - 0xE0003F8F, 0xE0003F93, 0xE00022F5, 0xE0003F98, 0xE0003F9C, 0xE0003E13, - 0xE00022F5, 0xE0003E13, 0xE0003F98, 0xE0003F9C, - // Block 40, offset 0xa00 - 0x0065BC91, 0xE0003FB0, 0xE0003E17, 0x0065BC91, 0xE0003E17, 0xE0003FB0, - 0x0065C48F, 0xE0003FBF, 0xE0003E1A, 0x0065C48F, 0xE0003E1A, 0xE0003FBF, - 0x0065C491, 0xE0003FC2, 0xE0003E1D, 0x0065C491, 0xE0003E1D, 0xE0003FC2, - 0x0065CE8F, 0xE0003E20, 0xE0003FE0, 0x0065CE91, 0xE0003FE3, 0xE0003E23, - 0x0065CE91, 0xE0003E23, 0xE0003FE3, 0x0065D691, 0xE0004014, 0xE0004011, - 0xE0004014, 0xE0003E26, 0x0065D691, 0xE0004018, 0xE0003E29, 0xE0004014, - 0xE0004014, 0xE0003E26, 0xE0004011, 0xE0004014, 0x0065D691, 0xE0004014, - 0xE0003E26, 0xE0004011, 0xE0004014, 0xE0002377, 0xE0003E29, 0xE0004014, - 0xE0004018, 0x0065D891, 0xE000401D, 0x40368C20, 0x40343620, 0x00368C83, - 0x00343688, 0x002DFE88, 0x002F56A3, 0x402BDE20, 0x40320C21, 0x40321020, - 0x002BDE88, 0x00320CA3, 0x00321083, 0x404FA420, - // Block 41, offset 0xa40 - 0xE0004030, 0x404FA620, 0xE0004034, 0x404FA820, 0xE0004038, 0x404FAA20, - 0xE000403C, 0x404FAC20, 0xE0004040, 0x404FAE20, 0xE0004044, 0x404FB020, - 0xE0004048, 0x404FB220, 0xE000404C, 0x404FB420, 0xE0004050, 0x404FB620, - 0xE0004054, 0x404FB820, 0xE0004058, 0x404FBA20, 0xE000405C, 0x404FBC20, - 0xE0004060, 0x404FBE20, 0xE0004064, 0x404FC020, 0xE0004068, 0x404FC220, - 0xE000406C, 0x404FC420, 0xE0004070, 0x404FC620, 0xE0004074, 0x404FC820, - 0xE0004078, 0x404FCA20, 0xE000407C, 0x404FCC20, 0xE0004080, 0x404FCE20, - 0xE0004084, 0x404FD020, 0xE0004088, 0x404FD220, 0xE000408C, 0x404FD420, - 0xE0004090, 0x404FD620, 0xE0004094, 0x404FD820, 0xE0004098, 0x404FDA20, - 0xE000409C, 0x404FDA20, 0xE00040A0, 0x404FDC20, 0xE00040A4, 0x404FDC20, - 0xE00040A8, 0x404FDC20, 0xE00040AC, 0x404FDE20, - // Block 42, offset 0xa80 - 0xE00040B0, 0x404FDE20, 0xE00040B4, 0x404FE020, 0xE00040B8, 0x404FE220, - 0xE00040BC, 0x404FE420, 0xE00040C0, 0x404FE620, 0xE00040C4, 0x404FE820, - 0xE00040C8, 0x40501820, 0x40502E20, 0x40503820, 0x40500E20, 0x40503220, - 0x40501020, 0x40503620, 0x40502420, 0x40503A20, 0x40502A20, 0x40503C20, - 0x403FEC20, 0x40403E20, 0xAE605202, 0xAE603502, 0xAE603202, 0xAE604E02, - 0x402BDE20, 0x402BDE21, 0x002BDE88, 0x002BDEA3, 0x402C9820, 0x402C9822, - 0x402C9821, 0x002C9888, 0x002C98C3, 0x002C98A3, 0x402D9A20, 0x402D9A21, - 0x002D9A88, 0x002D9AA3, 0x40306C20, 0x40306C22, 0x40306C21, 0x00306C88, - 0x00306CC3, 0x00306CA3, 0x402C3A20, 0x402C6020, 0x002C3A88, 0x002C6083, - 0x402D2220, 0x402D6620, 0x002D2288, 0x002D6683, 0x402DFE20, 0x402E2020, - 0x002DFE88, 0x002E2083, 0x402E2220, 0xE0000CFB, - // Block 43, offset 0xac0 - 0x402E8020, 0xE0000CFB, 0x002E2288, 0xE0000D01, 0x002E8083, 0xE0000D01, - 0x402E9E20, 0x402EE020, 0x002E9E88, 0x002EE083, 0x402F7A20, 0x402FE420, - 0x002F7A88, 0x002FE483, 0x402FE620, 0x40302A20, 0x002FE688, 0x00302A83, - 0x40312A20, 0x40316220, 0x00312A88, 0x00316283, 0x40442220, 0xE000A96E, - 0x40443E20, 0xE000A974, 0xE000A980, 0xE000A97A, 0x40444820, 0xE000A97D, - 0x40445820, 0xE000A986, 0x40445A20, 0xE000A98C, 0x40446620, 0xE000A992, - 0x40448220, 0x40448820, 0x00448C83, 0x403FFC20, 0x40404020, 0x002C3A88, - 0x402C3820, 0x402C3A20, 0x002C3883, 0x002D2288, 0x402D6620, 0x002D6683, - 0x402D2020, 0x402D2220, 0x002D6684, 0x002D6685, 0x002D2083, 0x00312A88, - 0x40312820, 0x40312A20, 0x00312883, 0x404E6020, 0xE000A99E, 0x404FFE20, - 0x404FFE21, 0x404E6A20, 0xE000A9A4, 0x40502820, - // Block 44, offset 0xb00 - 0x40502821, 0x404E9420, 0xE000A9BE, 0xE000A9B7, 0x4050AC20, 0x4050AC21, - 0x4005B820, 0xE000A9C4, 0x404EA620, 0xE000A9CF, 0x4050C820, 0x4050C821, - 0xE000A9E0, 0xE000A9E3, 0xE000A9E7, 0xE000A9F0, 0xE000A9F4, 0xE000AA00, - 0xE000AA0C, 0xE000AA18, 0xE000AA24, 0xE000AA30, 0xE000AA3C, 0xE000AA48, - 0xE000AA54, 0xE000AA60, 0xE000AA6C, 0xE000AA78, 0xE000AA84, 0xE000AA90, - 0xE000AA9C, 0xE000AAA8, 0xE000AAB4, 0xE000AAC0, 0xE000AACC, 0xE000AAD8, - 0xE000AAE4, 0xE000AAF0, 0xE000AAFC, 0xE000AB08, 0xE000AB14, 0xE000AB20, - 0xE000AB2C, 0xE000AB38, 0xE000AB44, 0xE000AB50, 0xE000AB5C, 0xE000AB68, - 0xE000AB74, 0xE000AB80, 0xE000AB8C, 0xE000AB98, 0xE000ABA4, 0xE000ABB0, - 0xE000ABBC, 0xE000ABC8, 0xE000ABD4, 0xE000ABE0, 0xE000ABEC, 0xE000ABF8, - 0xE000AC04, 0xE000AC10, 0xE000AC1C, 0xE000AC28, - // Block 45, offset 0xb40 - 0xE000AC34, 0xE000AC40, 0xE000AC4C, 0xE000AC58, 0xE000AC64, 0xE000AC70, - 0xE000AC7C, 0xE000AC88, 0xE000AC94, 0xE000ACA0, 0xE000ACAC, 0xE000ACB8, - 0xE000A9FA, 0xE000AA06, 0xE000AA12, 0xE000AA1E, 0xE000AA2A, 0xE000AA36, - 0xE000AA42, 0xE000AA4E, 0xE000AA5A, 0xE000AA66, 0xE000AA72, 0xE000AA7E, - 0xE000AA8A, 0xE000AA96, 0xE000AAA2, 0xE000AAAE, 0xE000AABA, 0xE000AAC6, - 0xE000AAD2, 0xE000AADE, 0xE000AAEA, 0xE000AAF6, 0xE000AB02, 0xE000AB0E, - 0xE000AB1A, 0xE000AB26, 0xE000AB32, 0xE000AB3E, 0xE000AB4A, 0xE000AB56, - 0xE000AB62, 0xE000AB6E, 0xE000AB7A, 0xE000AB86, 0xE000AB92, 0xE000AB9E, - 0xE000ABAA, 0xE000ABB6, 0xE000ABC2, 0xE000ABCE, 0xE000ABDA, 0xE000ABE6, - 0xE000ABF2, 0xE000ABFE, 0xE000AC0A, 0xE000AC16, 0xE000AC22, 0xE000AC2E, - 0xE000AC3A, 0xE000AC46, 0xE000AC52, 0xE000AC5E, - // Block 46, offset 0xb80 - 0xE000AC6A, 0xE000AC76, 0xE000AC82, 0xE000AC8E, 0xE000AC9A, 0xE000ACA6, - 0xE000ACB2, 0xE000ACBE, 0x404EFE20, 0x404F5222, 0xE000ACC9, 0x404F5220, - 0x404F5020, 0x404F1A22, 0x404F1A23, 0x404F2822, 0x404F2823, 0x404F3622, - 0x404F3623, 0x404F4422, 0x404F4423, 0x404F5223, 0x404F6022, 0x404F6023, - 0x404F6E22, 0x404F6E23, 0x404F7C22, 0x404F7C23, 0x404F8A21, 0x404F9822, - 0x404F9823, 0x404FA622, 0x404FA623, 0x404FB422, 0x404FB423, 0x404FC222, - 0x404FC223, 0x404FD022, 0x404FD023, 0x404FDE22, 0x404FDE23, 0x404FEC22, - 0x404FEC23, 0x404FFA22, 0x404FFA23, 0x40500822, 0x40500823, 0x40501622, - 0x40501623, 0x40502422, 0x40502423, 0x40503222, 0x40503223, 0x40504022, - 0x40504023, 0x40504E22, 0x40504E23, 0x40505C22, 0x40505C23, 0x40506A22, - 0x40506A23, 0x40508C22, 0x40508C23, 0x40509A22, - // Block 47, offset 0xbc0 - 0x40509A23, 0x4050A822, 0x4050A823, 0x4050B622, 0x4050B623, 0x4050C421, - 0x4050D222, 0x4050D223, 0x4050E022, 0x4050E023, 0x4050EE21, 0x4050FC21, - 0x404F1A20, 0x404F1A21, 0x404F2820, 0x404F2821, 0x404F3620, 0x404F3621, - 0x404F4420, 0x404F4421, 0x404F5221, 0x404F6020, 0x404F6021, 0x404F6E20, - 0x404F6E21, 0x404F7C20, 0x404F7C21, 0x404F8A20, 0x404F9820, 0x404F9821, - 0x404FA620, 0x404FA621, 0x404FB420, 0x404FB421, 0x404FC220, 0x404FC221, - 0x404FD020, 0x404FD021, 0x404FDE20, 0x404FDE21, 0x404FEC20, 0x404FEC21, - 0x404FFA20, 0x404FFA21, 0x40500820, 0x40500821, 0x40501620, 0x40501621, - 0x40502420, 0x40502421, 0x40503220, 0x40503221, 0x40504020, 0x40504021, - 0x40504E20, 0x40504E21, 0x40505C20, 0x40505C21, 0x40506A20, 0x40506A21, - 0x40508C20, 0x40508C21, 0x40509A20, 0x40509A21, - // Block 48, offset 0xc00 - 0x4050A820, 0x4050A821, 0x4050B620, 0x4050B621, 0x4050C420, 0x4050D220, - 0x4050D221, 0x4050E020, 0x4050E021, 0x4050EE20, 0x4050FC20, 0x404F1820, - 0x404F1821, 0x404F2620, 0x404F2621, 0x404F3420, 0x404F3421, 0x404F4220, - 0x404F4221, 0x404F5021, 0x404F5E20, 0x404F5E21, 0x404F6C20, 0x404F6C21, - 0x404F7A20, 0x404F7A21, 0x404F8820, 0x404F9620, 0x404F9621, 0x404FA420, - 0x404FA421, 0x404FB220, 0x404FB221, 0x404FC020, 0x404FC021, 0x404FCE20, - 0x404FCE21, 0x404FDC20, 0x404FDC21, 0x404FEA20, 0x404FEA21, 0x404FF820, - 0x404FF821, 0x40500620, 0x40500621, 0x40501420, 0x40501421, 0x40502220, - 0x40502221, 0x40503020, 0x40503021, 0x40503E20, 0x40503E21, 0x40504C20, - 0x40504C21, 0x40505A20, 0x40505A21, 0x40506820, 0x40506821, 0x40508A20, - 0x40508A21, 0x40509820, 0x40509821, 0x4050A620, - // Block 49, offset 0xc40 - 0x4050A621, 0x4050B420, 0x4050B421, 0x4050C220, 0x4050D020, 0x4050D021, - 0x4050DE20, 0x4050DE21, 0x4050EC20, 0x4050FA20, 0x404F0A21, 0x404F0A20, - 0x404F0821, 0x404F0820, 0x404EE620, 0x404F5420, 0x404F4C20, 0x40507620, - 0x40507A20, 0x404F1C20, 0x404F1C21, 0x404F2A20, 0x404F2A21, 0x404F3820, - 0x404F3821, 0x404F4620, 0x404F4621, 0x404F5421, 0x404F6220, 0x404F6221, - 0x404F7020, 0x404F7021, 0x404F7E20, 0x404F7E21, 0x404F8C20, 0x404F9A20, - 0x404F9A21, 0x404FA820, 0x404FA821, 0x404FB620, 0x404FB621, 0x404FC420, - 0x404FC421, 0x404FD220, 0x404FD221, 0x404FE020, 0x404FE021, 0x404FEE20, - 0x404FEE21, 0x404FFC20, 0x404FFC21, 0x40500A20, 0x40500A21, 0x40501820, - 0x40501821, 0x40502620, 0x40502621, 0x40503420, 0x40503421, 0x40504220, - 0x40504221, 0x40505020, 0x40505021, 0x40505E20, - // Block 50, offset 0xc80 - 0x40505E21, 0x40506C20, 0x40506C21, 0x40508E20, 0x40508E21, 0x40509C20, - 0x40509C21, 0x4050AA20, 0x4050AA21, 0x4050B820, 0x4050B821, 0x4050C620, - 0x4050D420, 0x4050D421, 0x4050E220, 0x4050E221, 0x4050F020, 0x4050FE20, - 0x404F1420, 0x404F1421, 0x404F2220, 0x404F2221, 0x404F3020, 0x404F3021, - 0x404F3E20, 0x404F3E21, 0x404F4C21, 0x404F5A20, 0x404F5A21, 0x404F6820, - 0x404F6821, 0x404F7620, 0x404F7621, 0x404F8420, 0x404F9220, 0x404F9221, - 0x404FA020, 0x404FA021, 0x404FAE20, 0x404FAE21, 0x404FBC20, 0x404FBC21, - 0x404FCA20, 0x404FCA21, 0x404FD820, 0x404FD821, 0x404FE620, 0x404FE621, - 0x404FF420, 0x404FF421, 0x40500220, 0x40500221, 0x40501020, 0x40501021, - 0x40501E20, 0x40501E21, 0x40502C20, 0x40502C21, 0x40503A20, 0x40503A21, - 0x40504820, 0x40504821, 0x40505620, 0x40505621, - // Block 51, offset 0xcc0 - 0x40506420, 0x40506421, 0x40507220, 0x40507221, 0x40509420, 0x40509421, - 0x4050A220, 0x4050A221, 0x4050B020, 0x4050B021, 0x4050BE20, 0x4050CC20, - 0x4050CC21, 0x4050DA20, 0x4050DA21, 0x4050E820, 0x4050F620, 0x40507820, - 0x40507C20, 0x404F0E20, 0x40507420, 0x404E1420, 0x404F1020, 0x404F1021, - 0x404EDE20, 0x404F4A20, 0x404F1220, 0x404F1221, 0x404F2020, 0x404F2021, - 0x404F2E20, 0x404F2E21, 0x404F3C20, 0x404F3C21, 0x404F4A21, 0x404F5820, - 0x404F5821, 0x404F6620, 0x404F6621, 0x404F7420, 0x404F7421, 0x404F8220, - 0x404F9020, 0x404F9021, 0x404F9E20, 0x404F9E21, 0x404FAC20, 0x404FAC21, - 0x404FBA20, 0x404FBA21, 0x404FC820, 0x404FC821, 0x404FD620, 0x404FD621, - 0x404FE420, 0x404FE421, 0x404FF220, 0x404FF221, 0x40500020, 0x40500021, - 0x40500E20, 0x40500E21, 0x40501C20, 0x40501C21, - // Block 52, offset 0xd00 - 0x40502A20, 0x40502A21, 0x40503820, 0x40503821, 0x40504620, 0x40504621, - 0x40505420, 0x40505421, 0x40506220, 0x40506221, 0x40507020, 0x40507021, - 0x40509220, 0x40509221, 0x4050A020, 0x4050A021, 0x4050AE20, 0x4050AE21, - 0x4050BC20, 0x4050CA20, 0x4050CA21, 0x4050D820, 0x4050D821, 0x4050E620, - 0x4050F420, 0x404EDE21, 0x404F4A22, 0x404F1222, 0x404F1223, 0x404F2022, - 0x404F2023, 0x404F2E22, 0x404F2E23, 0x404F3C22, 0x404F3C23, 0x404F4A23, - 0x404F5822, 0x404F5823, 0x404F6622, 0x404F6623, 0x404F7422, 0x404F7423, - 0x404F8221, 0x404F9022, 0x404F9023, 0x404F9E22, 0x404F9E23, 0x404FAC22, - 0x404FAC23, 0x404FBA22, 0x404FBA23, 0x404FC822, 0x404FC823, 0x404FD622, - 0x404FD623, 0x404FE422, 0x404FE423, 0x404FF222, 0x404FF223, 0x40500022, - 0x40500023, 0x40500E22, 0x40500E23, 0x40501C22, - // Block 53, offset 0xd40 - 0x40501C23, 0x40502A22, 0x40502A23, 0x40503822, 0x40503823, 0x40504622, - 0x40504623, 0x40505422, 0x40505423, 0x40506222, 0x40506223, 0x40507022, - 0x40507023, 0x40509222, 0x40509223, 0x4050A022, 0x4050A023, 0x4050AE22, - 0x4050AE23, 0x4050BC21, 0x4050CA22, 0x4050CA23, 0x4050D822, 0x4050D823, - 0x4050E621, 0x4050F421, 0x404EEE20, 0x404F4E20, 0x40508220, 0x40508620, - 0x404F1620, 0x404F1621, 0x404F2420, 0x404F2421, 0x404F3220, 0x404F3221, - 0x404F4020, 0x404F4021, 0x404F4E21, 0x404F5C20, 0x404F5C21, 0x404F6A20, - 0x404F6A21, 0x404F7820, 0x404F7821, 0x404F8620, 0x404F9420, 0x404F9421, - 0x404FA220, 0x404FA221, 0x404FB020, 0x404FB021, 0x404FBE20, 0x404FBE21, - 0x404FCC20, 0x404FCC21, 0x404FDA20, 0x404FDA21, 0x404FE820, 0x404FE821, - 0x404FF620, 0x404FF621, 0x40500420, 0x40500421, - // Block 54, offset 0xd80 - 0x40501220, 0x40501221, 0x40502020, 0x40502021, 0x40502E20, 0x40502E21, - 0x40503C20, 0x40503C21, 0x40504A20, 0x40504A21, 0x40505820, 0x40505821, - 0x40506620, 0x40506621, 0x40507E20, 0x40507E21, 0x40509620, 0x40509621, - 0x4050A420, 0x4050A421, 0x4050B220, 0x4050B221, 0x4050C020, 0x4050CE20, - 0x4050CE21, 0x4050DC20, 0x4050DC21, 0x4050EA20, 0x4050F820, 0x40508420, - 0x40508820, 0x40508020, 0x404E1820, 0x404F1E20, 0x404F1E21, 0x404E1C20, - 0x404F2C20, 0x404F2C21, 0x404F2E20, 0x404F3220, 0x404E2220, 0x404F3A20, - 0x404F3A21, 0x404E2420, 0x404F4820, 0x404F4821, 0x404E2820, 0x404F5620, - 0x404F5621, 0x404E2E20, 0x404F6420, 0x404F6421, 0x404E3220, 0x404F7220, - 0x404F7221, 0x404E3A20, 0x404F8020, 0x404E4220, 0x404F8E20, 0x404F8E21, - 0x404E4820, 0x404F9C20, 0x404F9C21, 0x404E4A20, - // Block 55, offset 0xdc0 - 0x404FAA20, 0x404FAA21, 0x404E4E20, 0x404FB820, 0x404FB821, 0x404E5220, - 0x404FC620, 0x404FC621, 0x404E5620, 0x404FD420, 0x404FD421, 0x404E5A20, - 0x404FE220, 0x404FE221, 0x404E5E20, 0x404FF020, 0x404FF021, 0x404E6220, - 0x40500C20, 0x40500C21, 0x404E6620, 0x40501A20, 0x40501A21, 0x404E7220, - 0x40503620, 0x40503621, 0x404E7420, 0x40504420, 0x40504421, 0x404E7E20, - 0x40505220, 0x40505221, 0x404E8220, 0x40506020, 0x40506021, 0x404E8420, - 0x40506E20, 0x40506E21, 0x404E8820, 0x40509020, 0x40509021, 0x404E8C20, - 0x40509E20, 0x40509E21, 0x404E9820, 0x4050BA20, 0x404EAA20, 0x4050D620, - 0x4050D621, 0x404EB620, 0x4050E420, 0x404EC220, 0x4050F220, 0x40510420, - 0x40511A20, 0x40511020, 0x40511420, 0x40510620, 0x40511C20, 0x40511220, - 0x40511620, 0x40510A20, 0x40511820, 0x402BDE20, - // Block 56, offset 0xe00 - 0x40320C21, 0x40321020, 0x40321021, 0x002BDE88, 0x00320CA3, 0x00321083, - 0x003210A4, 0x003210A3, 0x402C9820, 0x402C9A20, 0x002C9888, 0x002C9A83, - 0x402C3A20, 0x40312C20, 0x002C3A88, 0x00312C84, 0x00312C83, 0x402C6220, - 0x40312E20, 0x002C6288, 0x00312E84, 0x00312E83, 0x402DFE20, 0x40313020, - 0x002DFE88, 0x00313084, 0x00313083, 0x402E9E20, 0x40313220, 0x002E9E88, - 0x00313284, 0x00313283, 0x402F2C20, 0x40313420, 0x002F2C88, 0x00313484, - 0x00313483, 0x402FE620, 0x40313620, 0x002FE688, 0x00313683, 0x40421220, - 0x40425A20, 0x402BDE20, 0x402BE020, 0x002BDE88, 0x002BE083, 0x40312A20, - 0x40312C20, 0x40312E20, 0x00312A88, 0x00312C83, 0x00312E83, 0x40393820, - 0x40393620, 0x40393821, 0x40393824, 0x40397220, 0x40396621, 0x403A6821, - 0x003A6883, 0x403A6820, 0x003A6884, 0x403A7420, - // Block 57, offset 0xe40 - 0x403A7421, 0x403A9220, 0x403A9226, 0x403A9221, 0x003A9343, 0x403A9223, - 0x003A9344, 0x402BDE20, 0x402BE220, 0x402BE020, 0x002BDE88, 0x002BE283, - 0x002BE083, 0x402FE620, 0x402FE820, 0x402FE820, 0x002FE688, 0x002FE883, - 0x002FE883, 0x40302C20, 0x40302E20, 0x40302E20, 0x00302C88, 0x00302E83, - 0x00302E83, 0x402BDE20, 0x402C0820, 0x40320E21, 0x40320C21, 0x40320E20, - 0x40320C20, 0x002BDE88, 0x002C0883, 0x00320EA3, 0x00320CA3, 0x00320E83, - 0x00320C83, 0x402C3A20, 0x402C5C20, 0x002C3A88, 0x002C5C83, 0x402C5E20, - 0x402C6020, 0x002C5E83, 0x002C6083, 0x402D2220, 0x402D6420, 0x002D2288, - 0x002D6483, 0x402E9E20, 0x402EE021, 0x402EE022, 0x002E9E88, 0x002EE0A3, - 0x002EE0C3, 0x40312A20, 0x40320620, 0x00312A88, 0x00320683, 0x402EE220, - 0x40321023, 0x40321022, 0x40321020, 0x40321021, - // Block 58, offset 0xe80 - 0x40321024, 0x002EE288, 0x003210E3, 0x003210C3, 0x00321083, 0x003210A3, - 0x00321103, 0x402C6220, 0x402C9620, 0x002C6288, 0x002C9684, 0x002C9683, - 0x002D2288, 0x002D6684, 0x002D6683, 0x402E2220, 0xE0000CFB, 0xE0000CFB, - 0x402E8020, 0x002E2288, 0xE0000D01, 0xE0000D01, 0x002E8084, 0x002E8083, - 0x002E9E88, 0x002EE084, 0x002EE083, 0x002F7A88, 0x002FE484, 0x002FE483, - 0x002FE688, 0x00302A84, 0x00302A83, 0x40302C20, 0x40306A20, 0x00302C88, - 0x00306A84, 0x00306A83, 0x4030F620, 0x4030FE20, 0x0030F688, 0x0030FE84, - 0x0030FE83, 0x00312A88, 0x00316284, 0x00316283, 0x402C9820, 0x40320E22, - 0x002C9888, 0x00320EC3, 0x402EE220, 0x40321024, 0x40321020, 0x40321022, - 0x002EE288, 0x00321103, 0x00321083, 0x003210C3, 0x40429820, 0x4042C220, - 0x4042C420, 0x40429620, 0x40429A20, 0x40429820, - // Block 59, offset 0xec0 - 0x40429C20, 0x40429A20, 0x40429E20, 0x40429C20, 0x4042A020, 0x40429E20, - 0x4042A220, 0x4042A020, 0x4042A420, 0x4042A220, 0x4042A620, 0x4042A420, - 0x4042A820, 0x4042A620, 0x4042AA20, 0x4042A820, 0x4042AC20, 0x4042AA20, - 0x4042AE20, 0x4042AC20, 0x4042B020, 0x4042AE20, 0x4042B220, 0x4042B020, - 0x4042B420, 0x4042B220, 0x4042B620, 0x4042B420, 0x4042B820, 0x4042B620, - 0x4042BA20, 0x4042B820, 0x4042BC20, 0x4042BA20, 0x4042BE20, 0x4042BC20, - 0x4042C020, 0x4042BE20, 0x4042C220, 0x4042C020, 0x4042C420, 0x4042C220, - 0x40496C20, 0xE000AD9F, 0xE000ADA2, 0x402BDE20, 0x402BDE21, 0x402BDE22, - 0x002BDE88, 0x002BDEA3, 0x002BDEC3, 0x402C9820, 0x402C9821, 0x402C9822, - 0x002C9888, 0x002C98A3, 0x002C98C3, 0x402D9A20, 0x402D9A21, 0x402D9A22, - 0x002D9A88, 0x002D9AA3, 0x002D9AC3, 0x402EE220, - // Block 60, offset 0xf00 - 0x402EE221, 0x402EE222, 0x002EE288, 0x002EE2A3, 0x002EE2C3, 0x40306C20, - 0x40306C21, 0x40306C22, 0x00306C88, 0x00306CA3, 0x00306CC3, 0x40393820, - 0x40393A20, 0x40393821, 0x40392820, 0x40393C20, 0x40393E20, 0x40394020, - 0x40394220, 0x40394420, 0x40394620, 0x40394820, 0x40394A20, 0x40394E20, - 0x40395020, 0x40395220, 0x40395420, 0x40395A20, 0x40395C20, 0x40395E20, - 0x40396020, 0x40396420, 0x40396620, 0x40396820, 0x40396A20, 0x40398420, - 0x40398620, 0x40398820, 0x40398A20, 0x40398C20, 0x40398E20, 0x40399020, - 0x40399220, 0x40399420, 0x40399620, 0x40399820, 0x40399A20, 0x40399C20, - 0x40399C21, 0x40399E20, 0x4039A020, 0x4039A021, 0x403A9020, 0x4039A821, - 0x4039A820, 0x4039AA20, 0x4039AC20, 0x4039AC21, 0x402EE220, 0x402EE420, - 0x402EE620, 0x002EE288, 0x002EE483, 0x002EE683, - // Block 61, offset 0xf40 - 0x402BDE20, 0xE0000966, 0xE000B345, 0xE0000958, 0xE0000966, 0x402C3A20, - 0xE0000A41, 0x402C9820, 0xE000B348, 0x402D9A20, 0xE000B34B, 0x402EE220, - 0xE0000DE3, 0xE000B34E, 0xE0000DCF, 0xE0000DE3, 0x402FE620, 0xE0000F30, - 0x40306C20, 0xE0001028, 0xE000B351, 0xE0000FFC, 0xE0001028, 0x402BDE20, - 0x402BDE1F, 0x402BDE1D, 0x402BDE1C, 0x402BDE1E, 0x002BDE88, 0x002BDE63, - 0x002BDE23, 0x002BDE03, 0x002BDE43, 0x402C9820, 0x402C9824, 0x402C9822, - 0x402C9821, 0x402C9823, 0x402C981F, 0x402C981D, 0x402C981C, 0x402C981E, - 0x002C9888, 0x002C9903, 0x002C98C3, 0x002C98A3, 0x002C98E3, 0x002C9863, - 0x002C9823, 0x002C9803, 0x002C9843, 0xE0000AF1, 0x402C9821, 0x402C9823, - 0xE0000AF4, 0x002C98A3, 0x002C98E3, 0x402D9A20, 0x402D9A1F, 0x402D9A1D, - 0x402D9A1C, 0x402D9A1E, 0x002D9A88, 0x002D9A63, - // Block 62, offset 0xf80 - 0x002D9A23, 0x002D9A03, 0x002D9A43, 0x402E8220, 0x402E821F, 0x402E821D, - 0x402E821C, 0x402E821E, 0x002E8288, 0x002E8263, 0x002E8223, 0x002E8203, - 0x002E8243, 0x402E9E20, 0x402E9E1F, 0x402E9E1D, 0x402E9E1C, 0x402E9E1E, - 0x002E9E88, 0x002E9E63, 0x002E9E23, 0x002E9E03, 0x002E9E43, 0x402EE220, - 0x402EE21F, 0x402EE21D, 0x402EE21C, 0x402EE21E, 0x002EE288, 0x002EE263, - 0x002EE223, 0x002EE203, 0x002EE243, 0x40306C20, 0x40306C24, 0x40306C22, - 0x40306C21, 0x40306C23, 0x40306C1F, 0x40306C1D, 0x40306C1C, 0x40306C25, - 0x40306C1E, 0x00306C88, 0x00306D03, 0x00306CC3, 0x00306CA3, 0x00306CE3, - 0x00306C63, 0x00306C23, 0x00306C03, 0x00306D23, 0x00306C43, -} - -// mainValues: 249920 entries, 999680 bytes -// Block 2 is the null block. -var mainValues = [249920]uint32{ - // Block 0x0, offset 0x0 - 0x0000: 0xa0000000, 0x0001: 0xa0000000, 0x0002: 0xa0000000, 0x0003: 0xa0000000, - 0x0004: 0xa0000000, 0x0005: 0xa0000000, 0x0006: 0xa0000000, 0x0007: 0xa0000000, - 0x0008: 0xa0000000, 0x0009: 0x40020020, 0x000a: 0x40020220, 0x000b: 0x40020420, - 0x000c: 0x40020620, 0x000d: 0x40020820, 0x000e: 0xa0000000, 0x000f: 0xa0000000, - 0x0010: 0xa0000000, 0x0011: 0xa0000000, 0x0012: 0xa0000000, 0x0013: 0xa0000000, - 0x0014: 0xa0000000, 0x0015: 0xa0000000, 0x0016: 0xa0000000, 0x0017: 0xa0000000, - 0x0018: 0xa0000000, 0x0019: 0xa0000000, 0x001a: 0xa0000000, 0x001b: 0xa0000000, - 0x001c: 0xa0000000, 0x001d: 0xa0000000, 0x001e: 0xa0000000, 0x001f: 0xa0000000, - 0x0020: 0x40021220, 0x0021: 0x4002ba20, 0x0022: 0x4003e020, 0x0023: 0x4004ea20, - 0x0024: 0x4027de20, 0x0025: 0x4004ec20, 0x0026: 0x4004e620, 0x0027: 0x4003d220, - 0x0028: 0x4003f420, 0x0029: 0x4003f620, 0x002a: 0x4004d820, 0x002b: 0x40093820, - 0x002c: 0x40024020, 0x002d: 0x40021a20, 0x002e: 0x4002e420, 0x002f: 0x4004e220, - 0x0030: 0x4029cc20, 0x0031: 0x4029ce20, 0x0032: 0x4029d020, 0x0033: 0x4029d220, - 0x0034: 0x4029d420, 0x0035: 0x4029d620, 0x0036: 0x4029d820, 0x0037: 0x4029da20, - 0x0038: 0x4029dc20, 0x0039: 0x4029de20, 0x003a: 0x40026c20, 0x003b: 0x40026220, - 0x003c: 0x40094020, 0x003d: 0x40094220, 0x003e: 0x40094420, 0x003f: 0x4002c420, - // Block 0x1, offset 0x40 - 0x0040: 0x4004d620, 0x0041: 0x002bde88, 0x0042: 0x002c0a88, 0x0043: 0x002c3a88, - 0x0044: 0x002c6288, 0x0045: 0x002c9888, 0x0046: 0x002d0888, 0x0047: 0x002d2288, - 0x0048: 0x002d6888, 0x0049: 0x002d9a88, 0x004a: 0x002dcc88, 0x004b: 0x002dfe88, - 0x004c: 0xc0030002, 0x004d: 0x002e8288, 0x004e: 0x002e9e88, 0x004f: 0x002ee288, - 0x0050: 0x002f2c88, 0x0051: 0x002f5688, 0x0052: 0x002f7a88, 0x0053: 0x002fe688, - 0x0054: 0x00302c88, 0x0055: 0x00306c88, 0x0056: 0x0030be88, 0x0057: 0x0030e288, - 0x0058: 0x0030f688, 0x0059: 0x00310088, 0x005a: 0x00312a88, 0x005b: 0x4003f820, - 0x005c: 0x4004e420, 0x005d: 0x4003fa20, 0x005e: 0x40062420, 0x005f: 0x40021620, - 0x0060: 0x40061e20, 0x0061: 0x402bde20, 0x0062: 0x402c0a20, 0x0063: 0x402c3a20, - 0x0064: 0x402c6220, 0x0065: 0x402c9820, 0x0066: 0x402d0820, 0x0067: 0x402d2220, - 0x0068: 0x402d6820, 0x0069: 0x402d9a20, 0x006a: 0x402dcc20, 0x006b: 0x402dfe20, - 0x006c: 0xc0000002, 0x006d: 0x402e8220, 0x006e: 0x402e9e20, 0x006f: 0x402ee220, - 0x0070: 0x402f2c20, 0x0071: 0x402f5620, 0x0072: 0x402f7a20, 0x0073: 0x402fe620, - 0x0074: 0x40302c20, 0x0075: 0x40306c20, 0x0076: 0x4030be20, 0x0077: 0x4030e220, - 0x0078: 0x4030f620, 0x0079: 0x40310020, 0x007a: 0x40312a20, 0x007b: 0x4003fc20, - 0x007c: 0x40094820, 0x007d: 0x4003fe20, 0x007e: 0x40094c20, 0x007f: 0xa0000000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0x00c0: 0xa0000000, 0x00c1: 0xa0000000, 0x00c2: 0xa0000000, 0x00c3: 0xa0000000, - 0x00c4: 0xa0000000, 0x00c5: 0x40020a20, 0x00c6: 0xa0000000, 0x00c7: 0xa0000000, - 0x00c8: 0xa0000000, 0x00c9: 0xa0000000, 0x00ca: 0xa0000000, 0x00cb: 0xa0000000, - 0x00cc: 0xa0000000, 0x00cd: 0xa0000000, 0x00ce: 0xa0000000, 0x00cf: 0xa0000000, - 0x00d0: 0xa0000000, 0x00d1: 0xa0000000, 0x00d2: 0xa0000000, 0x00d3: 0xa0000000, - 0x00d4: 0xa0000000, 0x00d5: 0xa0000000, 0x00d6: 0xa0000000, 0x00d7: 0xa0000000, - 0x00d8: 0xa0000000, 0x00d9: 0xa0000000, 0x00da: 0xa0000000, 0x00db: 0xa0000000, - 0x00dc: 0xa0000000, 0x00dd: 0xa0000000, 0x00de: 0xa0000000, 0x00df: 0xa0000000, - 0x00e0: 0x0002129b, 0x00e1: 0x4002bc20, 0x00e2: 0x4027dc20, 0x00e3: 0x4027e020, - 0x00e4: 0x4027da20, 0x00e5: 0x4027e220, 0x00e6: 0x40094a20, 0x00e7: 0x4004ce20, - 0x00e8: 0x40062c20, 0x00e9: 0x40081820, 0x00ea: 0x002bde94, 0x00eb: 0x4003f020, - 0x00ec: 0x40094620, 0x00ed: 0xa0000000, 0x00ee: 0x40081a20, 0x00ef: 0x40062620, - 0x00f0: 0x40070420, 0x00f1: 0x40093a20, 0x00f2: 0x0029d094, 0x00f3: 0x0029d294, - 0x00f4: 0x40062020, 0x00f5: 0x00327684, 0x00f6: 0x4004d220, 0x00f7: 0x40030620, - 0x00f8: 0x40063220, 0x00f9: 0x0029ce94, 0x00fa: 0x002ee294, 0x00fb: 0x4003f220, - 0x00fc: 0xe00002bf, 0x00fd: 0xe00002b7, 0x00fe: 0xe00004a7, 0x00ff: 0x4002c620, - // Block 0x4, offset 0x100 - 0x0100: 0xe00008f5, 0x0101: 0xe00008ef, 0x0102: 0xe0000921, 0x0103: 0xe0000969, - 0x0104: 0xe000095b, 0x0105: 0xe000094d, 0x0106: 0xe00009dd, 0x0107: 0xe0000a53, - 0x0108: 0xe0000ae8, 0x0109: 0xe0000ae2, 0x010a: 0xe0000af4, 0x010b: 0xe0000b20, - 0x010c: 0xe0000c2b, 0x010d: 0xe0000c25, 0x010e: 0xe0000c37, 0x010f: 0xe0000c43, - 0x0110: 0xe0000ab3, 0x0111: 0xe0000d63, 0x0112: 0xe0000d9a, 0x0113: 0xe0000d94, - 0x0114: 0xe0000da6, 0x0115: 0xe0000de6, 0x0116: 0xe0000dd2, 0x0117: 0x40093e20, - 0x0118: 0xe0000e12, 0x0119: 0xe0000fe1, 0x011a: 0xe0000fdb, 0x011b: 0xe0000fed, - 0x011c: 0xe0000fff, 0x011d: 0xe0001102, 0x011e: 0x00318888, 0x011f: 0xe0000f7b, - 0x0120: 0xe00008f2, 0x0121: 0xe00008ec, 0x0122: 0xe000091e, 0x0123: 0xe0000966, - 0x0124: 0xe0000958, 0x0125: 0xe000094a, 0x0126: 0xe00009d5, 0x0127: 0xe0000a4d, - 0x0128: 0xe0000ae5, 0x0129: 0xe0000adf, 0x012a: 0xe0000af1, 0x012b: 0xe0000b1d, - 0x012c: 0xe0000c28, 0x012d: 0xe0000c22, 0x012e: 0xe0000c34, 0x012f: 0xe0000c40, - 0x0130: 0xe0000aad, 0x0131: 0xe0000d60, 0x0132: 0xe0000d97, 0x0133: 0xe0000d91, - 0x0134: 0xe0000da3, 0x0135: 0xe0000de3, 0x0136: 0xe0000dcf, 0x0137: 0x40093c20, - 0x0138: 0xe0000e0f, 0x0139: 0xe0000fde, 0x013a: 0xe0000fd8, 0x013b: 0xe0000fea, - 0x013c: 0xe0000ffc, 0x013d: 0xe00010ff, 0x013e: 0x40318820, 0x013f: 0xe0001114, - // Block 0x5, offset 0x140 - 0x0140: 0xe0000983, 0x0141: 0xe0000980, 0x0142: 0xe00008fb, 0x0143: 0xe00008f8, - 0x0144: 0xe000097d, 0x0145: 0xe000097a, 0x0146: 0xe0000a38, 0x0147: 0xe0000a35, - 0x0148: 0xe0000a3e, 0x0149: 0xe0000a3b, 0x014a: 0xe0000a4a, 0x014b: 0xe0000a47, - 0x014c: 0xe0000a44, 0x014d: 0xe0000a41, 0x014e: 0xe0000a86, 0x014f: 0xe0000a83, - 0x0150: 0xe0000aaa, 0x0151: 0xe0000aa7, 0x0152: 0xe0000b46, 0x0153: 0xe0000b43, - 0x0154: 0xe0000aee, 0x0155: 0xe0000aeb, 0x0156: 0xe0000b2c, 0x0157: 0xe0000b29, - 0x0158: 0xe0000b40, 0x0159: 0xe0000b3d, 0x015a: 0xe0000b1a, 0x015b: 0xe0000b17, - 0x015c: 0xe0000bb8, 0x015d: 0xe0000bb5, 0x015e: 0xe0000bb2, 0x015f: 0xe0000baf, - 0x0160: 0xe0000bc4, 0x0161: 0xe0000bc1, 0x0162: 0xe0000bca, 0x0163: 0xe0000bc7, - 0x0164: 0xe0000bee, 0x0165: 0xe0000beb, 0x0166: 0xe0000c1b, 0x0167: 0xe0000c18, - 0x0168: 0xe0000c51, 0x0169: 0xe0000c4e, 0x016a: 0xe0000c60, 0x016b: 0xe0000c5d, - 0x016c: 0xe0000c31, 0x016d: 0xe0000c2e, 0x016e: 0xe0000c5a, 0x016f: 0xe0000c57, - 0x0170: 0xe0000c54, 0x0171: 0x402da220, 0x0172: 0xf0000a0a, 0x0173: 0xf0000404, - 0x0174: 0xe0000c8a, 0x0175: 0xe0000c87, 0x0176: 0xe0000c9f, 0x0177: 0xe0000c9c, - 0x0178: 0x402f7220, 0x0179: 0xe0000ccc, 0x017a: 0xe0000cc9, 0x017b: 0xe0000cd8, - 0x017c: 0xe0000cd5, 0x017d: 0xe0000cd2, 0x017e: 0xe0000ccf, 0x017f: 0xe0000d04, - // Block 0x6, offset 0x180 - 0x0180: 0xe0000cfe, 0x0181: 0xe0000cf8, 0x0182: 0xe0000cf5, 0x0183: 0xe0000d51, - 0x0184: 0xe0000d4e, 0x0185: 0xe0000d6f, 0x0186: 0xe0000d6c, 0x0187: 0xe0000d5d, - 0x0188: 0xe0000d5a, 0x0189: 0xf0000404, 0x018a: 0x002eda88, 0x018b: 0x402eda20, - 0x018c: 0xe0000e2e, 0x018d: 0xe0000e2b, 0x018e: 0xe0000da0, 0x018f: 0xe0000d9d, - 0x0190: 0xe0000de0, 0x0191: 0xe0000ddd, 0x0192: 0xe0000e93, 0x0193: 0xe0000e8f, - 0x0194: 0xe0000eca, 0x0195: 0xe0000ec7, 0x0196: 0xe0000edc, 0x0197: 0xe0000ed9, - 0x0198: 0xe0000ed0, 0x0199: 0xe0000ecd, 0x019a: 0xe0000f1f, 0x019b: 0xe0000f1c, - 0x019c: 0xe0000f2d, 0x019d: 0xe0000f2a, 0x019e: 0xe0000f47, 0x019f: 0xe0000f44, - 0x01a0: 0xe0000f33, 0x01a1: 0xe0000f30, 0x01a2: 0xe0000f99, 0x01a3: 0xe0000f96, - 0x01a4: 0xe0000f8a, 0x01a5: 0xe0000f87, 0x01a6: 0x00303688, 0x01a7: 0x40303620, - 0x01a8: 0xe000102b, 0x01a9: 0xe0001028, 0x01aa: 0xe000103f, 0x01ab: 0xe000103c, - 0x01ac: 0xe0000fe7, 0x01ad: 0xe0000fe4, 0x01ae: 0xe0000ff9, 0x01af: 0xe0000ff6, - 0x01b0: 0xe0001025, 0x01b1: 0xe0001022, 0x01b2: 0xe0001039, 0x01b3: 0xe0001036, - 0x01b4: 0xe00010d8, 0x01b5: 0xe00010d5, 0x01b6: 0xe000110e, 0x01b7: 0xe000110b, - 0x01b8: 0xe0001117, 0x01b9: 0xe000113b, 0x01ba: 0xe0001138, 0x01bb: 0xe000114d, - 0x01bc: 0xe000114a, 0x01bd: 0xe0001147, 0x01be: 0xe0001144, 0x01bf: 0xe0000f64, - // Block 0x7, offset 0x1c0 - 0x01c0: 0x402c1a20, 0x01c1: 0x002c2a88, 0x01c2: 0x002c3288, 0x01c3: 0x402c3220, - 0x01c4: 0x0031c488, 0x01c5: 0x4031c420, 0x01c6: 0x002efa88, 0x01c7: 0x002c4e88, - 0x01c8: 0x402c4e20, 0x01c9: 0x002c7288, 0x01ca: 0x002c7a88, 0x01cb: 0x002c8488, - 0x01cc: 0x402c8420, 0x01cd: 0xe000115c, 0x01ce: 0x002cae88, 0x01cf: 0x002cb888, - 0x01d0: 0x002cc288, 0x01d1: 0x002d1688, 0x01d2: 0x402d1620, 0x01d3: 0x002d4488, - 0x01d4: 0x002d5888, 0x01d5: 0x402d7820, 0x01d6: 0x002dc288, 0x01d7: 0x002db688, - 0x01d8: 0x002e0a88, 0x01d9: 0x402e0a20, 0x01da: 0x402e3820, 0x01db: 0x402e7220, - 0x01dc: 0x0030a088, 0x01dd: 0x002eb488, 0x01de: 0x402ebc20, 0x01df: 0x002f1088, - 0x01e0: 0xe0000e56, 0x01e1: 0xe0000e53, 0x01e2: 0x002d6088, 0x01e3: 0x402d6020, - 0x01e4: 0x002f3e88, 0x01e5: 0x402f3e20, 0x01e6: 0x002f8288, 0x01e7: 0x0031b488, - 0x01e8: 0x4031b420, 0x01e9: 0x00300888, 0x01ea: 0x40301220, 0x01eb: 0x40304220, - 0x01ec: 0x00304a88, 0x01ed: 0x40304a20, 0x01ee: 0x00305288, 0x01ef: 0xe000105f, - 0x01f0: 0xe000105c, 0x01f1: 0x0030b488, 0x01f2: 0x0030cc88, 0x01f3: 0x00311888, - 0x01f4: 0x40311820, 0x01f5: 0x00313488, 0x01f6: 0x40313420, 0x01f7: 0x00316488, - 0x01f8: 0x00316e88, 0x01f9: 0x40316e20, 0x01fa: 0x40317820, 0x01fb: 0x4031a620, - 0x01fc: 0x0031bc88, 0x01fd: 0x4031bc20, 0x01fe: 0xe0000fc9, 0x01ff: 0x40319420, - // Block 0x8, offset 0x200 - 0x0200: 0x40321220, 0x0201: 0x40321a20, 0x0202: 0x40322220, 0x0203: 0x40322a20, - 0x0204: 0xe0000ad5, 0x0205: 0xe0000ad1, 0x0206: 0xe0000acd, 0x0207: 0xf0000a0a, - 0x0208: 0xf000040a, 0x0209: 0xf0000404, 0x020a: 0xf0000a0a, 0x020b: 0xf000040a, - 0x020c: 0xf0000404, 0x020d: 0xe0000947, 0x020e: 0xe0000944, 0x020f: 0xe0000c3d, - 0x0210: 0xe0000c3a, 0x0211: 0xe0000dcc, 0x0212: 0xe0000dc9, 0x0213: 0xe0000ff3, - 0x0214: 0xe0000ff0, 0x0215: 0xe000101e, 0x0216: 0xe000101a, 0x0217: 0xe0001006, - 0x0218: 0xe0001002, 0x0219: 0xe0001016, 0x021a: 0xe0001012, 0x021b: 0xe000100e, - 0x021c: 0xe000100a, 0x021d: 0x402cae20, 0x021e: 0xe0000962, 0x021f: 0xe000095e, - 0x0220: 0xe0000976, 0x0221: 0xe0000972, 0x0222: 0xe00009f4, 0x0223: 0xe00009ef, - 0x0224: 0x002d3a88, 0x0225: 0x402d3a20, 0x0226: 0xe0000bbe, 0x0227: 0xe0000bbb, - 0x0228: 0xe0000c99, 0x0229: 0xe0000c96, 0x022a: 0xe0000e20, 0x022b: 0xe0000e1d, - 0x022c: 0xe0000e27, 0x022d: 0xe0000e23, 0x022e: 0xe0001162, 0x022f: 0xe000115f, - 0x0230: 0xe0000c8d, 0x0231: 0xf0000a0a, 0x0232: 0xf000040a, 0x0233: 0xf0000404, - 0x0234: 0xe0000bac, 0x0235: 0xe0000ba9, 0x0236: 0x002d7888, 0x0237: 0x00319488, - 0x0238: 0xe0000d57, 0x0239: 0xe0000d54, 0x023a: 0xe0000954, 0x023b: 0xe0000950, - 0x023c: 0xe00009ea, 0x023d: 0xe00009e5, 0x023e: 0xe0000e19, 0x023f: 0xe0000e15, - // Block 0x9, offset 0x240 - 0x0240: 0xe000098f, 0x0241: 0xe000098c, 0x0242: 0xe0000995, 0x0243: 0xe0000992, - 0x0244: 0xe0000b62, 0x0245: 0xe0000b5f, 0x0246: 0xe0000b68, 0x0247: 0xe0000b65, - 0x0248: 0xe0000c6c, 0x0249: 0xe0000c69, 0x024a: 0xe0000c72, 0x024b: 0xe0000c6f, - 0x024c: 0xe0000e4a, 0x024d: 0xe0000e47, 0x024e: 0xe0000e50, 0x024f: 0xe0000e4d, - 0x0250: 0xe0000ee8, 0x0251: 0xe0000ee5, 0x0252: 0xe0000eee, 0x0253: 0xe0000eeb, - 0x0254: 0xe0001053, 0x0255: 0xe0001050, 0x0256: 0xe0001059, 0x0257: 0xe0001056, - 0x0258: 0xe0000f61, 0x0259: 0xe0000f5e, 0x025a: 0xe0000fa5, 0x025b: 0xe0000fa2, - 0x025c: 0x00312288, 0x025d: 0x40312220, 0x025e: 0xe0000bf4, 0x025f: 0xe0000bf1, - 0x0260: 0x002ebc88, 0x0261: 0x402c8c20, 0x0262: 0x002f2288, 0x0263: 0x402f2220, - 0x0264: 0x00314088, 0x0265: 0x40314020, 0x0266: 0xe000096f, 0x0267: 0xe000096c, - 0x0268: 0xe0000b32, 0x0269: 0xe0000b2f, 0x026a: 0xe0000dd9, 0x026b: 0xe0000dd5, - 0x026c: 0xe0000dfd, 0x026d: 0xe0000df9, 0x026e: 0xe0000e04, 0x026f: 0xe0000e01, - 0x0270: 0xe0000e0b, 0x0271: 0xe0000e07, 0x0272: 0xe0001129, 0x0273: 0xe0001126, - 0x0274: 0x402e5e20, 0x0275: 0x402ed020, 0x0276: 0x40305a20, 0x0277: 0x402dd420, - 0x0278: 0xe0000abf, 0x0279: 0xe0000ec4, 0x027a: 0x002be888, 0x027b: 0x002c4488, - 0x027c: 0x402c4420, 0x027d: 0x002e3888, 0x027e: 0x00303e88, 0x027f: 0x402ffc20, - // Block 0xa, offset 0x280 - 0x0280: 0x40315820, 0x0281: 0x0031d488, 0x0282: 0x4031d420, 0x0283: 0x002c1a88, - 0x0284: 0x00307c88, 0x0285: 0x0030da88, 0x0286: 0x002ca288, 0x0287: 0x402ca220, - 0x0288: 0x002dde88, 0x0289: 0x402dde20, 0x028a: 0x002f6a88, 0x028b: 0x402f6a20, - 0x028c: 0x002f8e88, 0x028d: 0x402f8e20, 0x028e: 0x00311088, 0x028f: 0x40311020, - 0x0290: 0x402bf020, 0x0291: 0x402bf820, 0x0292: 0x402c0220, 0x0293: 0x402c2a20, - 0x0294: 0x402efa20, 0x0295: 0x402c5620, 0x0296: 0x402c7220, 0x0297: 0x402c7a20, - 0x0298: 0x402ccc20, 0x0299: 0x402cb820, 0x029a: 0x402cd420, 0x029b: 0x402cc220, - 0x029c: 0x402cdc20, 0x029d: 0x402ce820, 0x029e: 0x402cf020, 0x029f: 0x402dee20, - 0x02a0: 0x402d4420, 0x02a1: 0x402d2a20, 0x02a2: 0x402d3220, 0x02a3: 0x402d5820, - 0x02a4: 0x402d0020, 0x02a5: 0x40308820, 0x02a6: 0x402d8020, 0x02a7: 0x402d8e20, - 0x02a8: 0x402db620, 0x02a9: 0x402dc220, 0x02aa: 0x402daa20, 0x02ab: 0x402e4220, - 0x02ac: 0x402e4a20, 0x02ad: 0x402e5420, 0x02ae: 0x402e6820, 0x02af: 0x4030a020, - 0x02b0: 0x4030ac20, 0x02b1: 0x402e9020, 0x02b2: 0x402eb420, 0x02b3: 0x402ec820, - 0x02b4: 0x402ea620, 0x02b5: 0x402f1020, 0x02b6: 0x402eee20, 0x02b7: 0x402f1a20, - 0x02b8: 0x402f4c20, 0x02b9: 0x402f9820, 0x02ba: 0x402fa220, 0x02bb: 0x402fac20, - 0x02bc: 0x402fb620, 0x02bd: 0x402fbe20, 0x02be: 0x402fc620, 0x02bf: 0x402fd020, - // Block 0xb, offset 0x2c0 - 0x02c0: 0x402f8220, 0x02c1: 0x402fd820, 0x02c2: 0x402ff420, 0x02c3: 0x40300820, - 0x02c4: 0x402df620, 0x02c5: 0x40301a20, 0x02c6: 0x40302420, 0x02c7: 0x40306420, - 0x02c8: 0x40305220, 0x02c9: 0x40307c20, 0x02ca: 0x4030b420, 0x02cb: 0x4030cc20, - 0x02cc: 0x4030da20, 0x02cd: 0x4030ee20, 0x02ce: 0x402e7a20, 0x02cf: 0x40310820, - 0x02d0: 0x40314820, 0x02d1: 0x40315020, 0x02d2: 0x40316420, 0x02d3: 0x40318020, - 0x02d4: 0x4031cc20, 0x02d5: 0x4031e820, 0x02d6: 0x40320a20, 0x02d7: 0x40323220, - 0x02d8: 0x40323a20, 0x02d9: 0x402c1220, 0x02da: 0x402cf820, 0x02db: 0x402d4c20, - 0x02dc: 0x402d7020, 0x02dd: 0x402de620, 0x02de: 0x402e1a20, 0x02df: 0x402e2a20, - 0x02e0: 0x402f6220, 0x02e1: 0x4031fa20, 0x02e2: 0x40320220, 0x02e3: 0xe0000aca, - 0x02e4: 0xe0000adc, 0x02e5: 0xe0000ad9, 0x02e6: 0xe0000fcc, 0x02e7: 0xe0000fcf, - 0x02e8: 0xe0000fba, 0x02e9: 0xe0000ba1, 0x02ea: 0xe0000d11, 0x02eb: 0xe0000d18, - 0x02ec: 0x40324220, 0x02ed: 0x40324a20, 0x02ee: 0x40309020, 0x02ef: 0x40309820, - 0x02f0: 0x002d6894, 0x02f1: 0x002d8094, 0x02f2: 0x002dcc94, 0x02f3: 0x002f7a94, - 0x02f4: 0x002f9894, 0x02f5: 0x002fac94, 0x02f6: 0x002fd894, 0x02f7: 0x0030e294, - 0x02f8: 0x00310094, 0x02f9: 0x40064020, 0x02fa: 0x40064420, 0x02fb: 0x402d9620, - 0x02fc: 0x4031de20, 0x02fd: 0x402d9820, 0x02fe: 0x4031e220, 0x02ff: 0x4031f020, - // Block 0xc, offset 0x300 - 0x0300: 0x4031dc20, 0x0301: 0x4031f220, 0x0302: 0x40064620, 0x0303: 0x40064820, - 0x0304: 0x40064a20, 0x0305: 0x40064c20, 0x0306: 0x40064e20, 0x0307: 0x40065020, - 0x0308: 0x40065220, 0x0309: 0x40065420, 0x030a: 0x40065620, 0x030b: 0x40065820, - 0x030c: 0x40065a20, 0x030d: 0x40065c20, 0x030e: 0x40065e20, 0x030f: 0x40066020, - 0x0310: 0x4027b220, 0x0311: 0x4027b420, 0x0312: 0x40066220, 0x0313: 0x40066420, - 0x0314: 0x40066620, 0x0315: 0x40066820, 0x0316: 0x40066a20, 0x0317: 0x40066c20, - 0x0318: 0x40062820, 0x0319: 0x40062a20, 0x031a: 0x40062e20, 0x031b: 0x40063420, - 0x031c: 0x40062220, 0x031d: 0x40063020, 0x031e: 0x40066e20, 0x031f: 0x40067020, - 0x0320: 0x002d5894, 0x0321: 0x002e2294, 0x0322: 0x002fe694, 0x0323: 0x0030f694, - 0x0324: 0x0031e894, 0x0325: 0x40067220, 0x0326: 0x40067420, 0x0327: 0x40067620, - 0x0328: 0x40067820, 0x0329: 0x40067a20, 0x032a: 0x40067c20, 0x032b: 0x40067e20, - 0x032c: 0x40068020, 0x032d: 0x40068220, 0x032e: 0x4031e020, 0x032f: 0x40068420, - 0x0330: 0x40068620, 0x0331: 0x40068820, 0x0332: 0x40068a20, 0x0333: 0x40068c20, - 0x0334: 0x40068e20, 0x0335: 0x40069020, 0x0336: 0x40069220, 0x0337: 0x40069420, - 0x0338: 0x40069620, 0x0339: 0x40069820, 0x033a: 0x40069a20, 0x033b: 0x40069c20, - 0x033c: 0x40069e20, 0x033d: 0x4006a020, 0x033e: 0x4006a220, 0x033f: 0x4006a420, - // Block 0xd, offset 0x340 - 0x0340: 0xae603502, 0x0341: 0xae603202, 0x0342: 0xae603c02, 0x0343: 0xae604e02, - 0x0344: 0xae605b02, 0x0345: 0xae606302, 0x0346: 0xae603702, 0x0347: 0xae605202, - 0x0348: 0xae604702, 0x0349: 0xae606402, 0x034a: 0xae604302, 0x034b: 0xae604d02, - 0x034c: 0xae604102, 0x034d: 0xae605f02, 0x034e: 0xae605f02, 0x034f: 0xae606502, - 0x0350: 0xae606602, 0x0351: 0xae606702, 0x0352: 0xae605f02, 0x0353: 0xae602202, - 0x0354: 0xae602a02, 0x0355: 0xae805f02, 0x0356: 0xadc06002, 0x0357: 0xadc06002, - 0x0358: 0xadc06002, 0x0359: 0xadc06002, 0x035a: 0xae805f02, 0x035b: 0xad806802, - 0x035c: 0xadc06002, 0x035d: 0xadc06002, 0x035e: 0xadc06002, 0x035f: 0xadc06002, - 0x0360: 0xadc06002, 0x0361: 0xaca06e02, 0x0362: 0xaca06f02, 0x0363: 0xadc07002, - 0x0364: 0xadc07502, 0x0365: 0xadc07602, 0x0366: 0xadc07702, 0x0367: 0xaca05602, - 0x0368: 0xaca05902, 0x0369: 0xadc06002, 0x036a: 0xadc06002, 0x036b: 0xadc06002, - 0x036c: 0xadc06002, 0x036d: 0xadc07802, 0x036e: 0xadc07902, 0x036f: 0xadc06002, - 0x0370: 0xadc07a02, 0x0371: 0xadc07b02, 0x0372: 0xadc02102, 0x0373: 0xadc06002, - 0x0374: 0xa0107c02, 0x0375: 0xa0107d02, 0x0376: 0xa0106102, 0x0377: 0xa0106102, - 0x0378: 0xa0105402, 0x0379: 0xadc07e02, 0x037a: 0xadc06002, 0x037b: 0xadc06002, - 0x037c: 0xadc06002, 0x037d: 0xae605f02, 0x037e: 0xae605f02, 0x037f: 0xae605f02, - // Block 0xe, offset 0x380 - 0x0380: 0xae603502, 0x0381: 0xae603202, 0x0382: 0xae604502, 0x0383: 0xae602202, - 0x0384: 0xe0000000, 0x0385: 0xaf007f02, 0x0386: 0xae605f02, 0x0387: 0xadc06002, - 0x0388: 0xadc06002, 0x0389: 0xadc06002, 0x038a: 0xae605f02, 0x038b: 0xae605f02, - 0x038c: 0xae605f02, 0x038d: 0xadc06002, 0x038e: 0xadc06002, 0x038f: 0xa0000000, - 0x0390: 0xae605f02, 0x0391: 0xae605f02, 0x0392: 0xae605f02, 0x0393: 0xadc06002, - 0x0394: 0xadc06002, 0x0395: 0xadc06002, 0x0396: 0xadc06002, 0x0397: 0xae605f02, - 0x0398: 0xae808002, 0x0399: 0xadc06002, 0x039a: 0xadc06002, 0x039b: 0xae605f02, - 0x039c: 0xae906002, 0x039d: 0xaea05f02, 0x039e: 0xaea05f02, 0x039f: 0xae906002, - 0x03a0: 0xaea08102, 0x03a1: 0xaea08202, 0x03a2: 0xae906002, 0x03a3: 0x84e615ef, - 0x03a4: 0x84e6164c, 0x03a5: 0x84e616cd, 0x03a6: 0x84e61771, 0x03a7: 0x84e61836, - 0x03a8: 0x84e6161d, 0x03a9: 0x84e61631, 0x03aa: 0x84e616b4, 0x03ab: 0x84e61741, - 0x03ac: 0x84e617bd, 0x03ad: 0x84e61816, 0x03ae: 0x84e6185f, 0x03af: 0x84e6187b, - 0x03b0: 0x00326688, 0x03b1: 0x40326620, 0x03b2: 0x0032a688, 0x03b3: 0x4032a620, - 0x03b4: 0x40064020, 0x03b5: 0x40064220, 0x03b6: 0x00326088, 0x03b7: 0x40326020, - 0x03ba: 0x00326c84, 0x03bb: 0x40329220, - 0x03bc: 0x40329020, 0x03bd: 0x40329420, 0x03be: 0x40026220, - // Block 0xf, offset 0x3c0 - 0x03c4: 0x40062020, 0x03c5: 0xe00000ab, 0x03c6: 0xe00011f0, 0x03c7: 0x40030620, - 0x03c8: 0xe0001249, 0x03c9: 0xe00012dd, 0x03ca: 0xe000133a, - 0x03cc: 0xe000139b, 0x03ce: 0xe00013dd, 0x03cf: 0xe0001492, - 0x03d0: 0xe0001352, 0x03d1: 0x00325288, 0x03d2: 0x00325488, 0x03d3: 0x00325688, - 0x03d4: 0x00325a88, 0x03d5: 0x00325c88, 0x03d6: 0x00326488, 0x03d7: 0x00326888, - 0x03d8: 0x00326a88, 0x03d9: 0x00326c88, 0x03da: 0x00327088, 0x03db: 0x00327288, - 0x03dc: 0x00327688, 0x03dd: 0x00327888, 0x03de: 0x00327a88, 0x03df: 0x00327c88, - 0x03e0: 0x00327e88, 0x03e1: 0x00328888, 0x03e3: 0x00328e88, - 0x03e4: 0x00329688, 0x03e5: 0x00329888, 0x03e6: 0x00329a88, 0x03e7: 0x00329c88, - 0x03e8: 0x00329e88, 0x03e9: 0x0032a288, 0x03ea: 0xe000134f, 0x03eb: 0xe00013f2, - 0x03ec: 0xe00011ed, 0x03ed: 0xe0001246, 0x03ee: 0xe00012da, 0x03ef: 0xe0001337, - 0x03f0: 0xe00013f5, 0x03f1: 0x40325220, 0x03f2: 0x40325420, 0x03f3: 0x40325620, - 0x03f4: 0x40325a20, 0x03f5: 0x40325c20, 0x03f6: 0x40326420, 0x03f7: 0x40326820, - 0x03f8: 0x40326a20, 0x03f9: 0x40326c20, 0x03fa: 0x40327020, 0x03fb: 0x40327220, - 0x03fc: 0x40327620, 0x03fd: 0x40327820, 0x03fe: 0x40327a20, 0x03ff: 0x40327c20, - // Block 0x10, offset 0x400 - 0x0400: 0x40327e20, 0x0401: 0x40328820, 0x0402: 0x00328e99, 0x0403: 0x40328e20, - 0x0404: 0x40329620, 0x0405: 0x40329820, 0x0406: 0x40329a20, 0x0407: 0x40329c20, - 0x0408: 0x40329e20, 0x0409: 0x4032a220, 0x040a: 0xe000134c, 0x040b: 0xe00013ef, - 0x040c: 0xe0001398, 0x040d: 0xe00013da, 0x040e: 0xe000148f, 0x040f: 0xe0001368, - 0x0410: 0x00325484, 0x0411: 0x00326a84, 0x0412: 0x0032988a, 0x0413: 0xf000020a, - 0x0414: 0xf000020a, 0x0415: 0x00329a84, 0x0416: 0x00327e84, 0x0417: 0xe0001364, - 0x0418: 0x00328688, 0x0419: 0x40328620, 0x041a: 0x00326288, 0x041b: 0x40326220, - 0x041c: 0x00325e88, 0x041d: 0x40325e20, 0x041e: 0x00328488, 0x041f: 0x40328420, - 0x0420: 0x0032a488, 0x0421: 0x4032a420, 0x0422: 0x0032e888, 0x0423: 0x4032e820, - 0x0424: 0x0032f288, 0x0425: 0x4032f220, 0x0426: 0x0032f488, 0x0427: 0x4032f420, - 0x0428: 0x0032fa88, 0x0429: 0x4032fa20, 0x042a: 0x00330888, 0x042b: 0x40330820, - 0x042c: 0x00330e88, 0x042d: 0x40330e20, 0x042e: 0x00331688, 0x042f: 0x40331620, - 0x0430: 0x00327084, 0x0431: 0x00328884, 0x0432: 0x00328e84, 0x0433: 0x40326e20, - 0x0434: 0x00326a8a, 0x0435: 0x00325c84, 0x0436: 0x40092e20, 0x0437: 0x0032a888, - 0x0438: 0x4032a820, 0x0439: 0x00328e8a, 0x043a: 0x00328288, 0x043b: 0x40328220, - 0x043c: 0x40328c20, 0x043d: 0x00329288, 0x043e: 0x00329088, 0x043f: 0x00329488, - // Block 0x11, offset 0x440 - 0x0440: 0xe00014bd, 0x0441: 0xe00014c3, 0x0442: 0x00339688, 0x0443: 0x0033a288, - 0x0444: 0x0033c288, 0x0445: 0x0033fc88, 0x0446: 0xc02a0071, 0x0447: 0x00343688, - 0x0448: 0x00344688, 0x0449: 0x00349a88, 0x044a: 0x0034e488, 0x044b: 0x00356288, - 0x044c: 0x00356a88, 0x044d: 0xe00014cf, 0x044e: 0x00357a88, 0x044f: 0x00365488, - 0x0450: 0xc0090041, 0x0451: 0x00335288, 0x0452: 0x00335a88, 0x0453: 0xc0130092, - 0x0454: 0x00338a88, 0x0455: 0xc01800d1, 0x0456: 0xc01c0071, 0x0457: 0xc0200071, - 0x0458: 0xc0250041, 0x0459: 0x00343e88, 0x045a: 0xc0370092, 0x045b: 0x00348488, - 0x045c: 0x0034a888, 0x045d: 0x0034ba88, 0x045e: 0xc02e0071, 0x045f: 0x00350e88, - 0x0460: 0x00352888, 0x0461: 0x00353a88, 0x0462: 0x00354c88, 0x0463: 0xc03e00f1, - 0x0464: 0x0035ac88, 0x0465: 0x0035b488, 0x0466: 0x00360288, 0x0467: 0xc0440071, - 0x0468: 0x00365c88, 0x0469: 0x00366688, 0x046a: 0x00367488, 0x046b: 0xc0480071, - 0x046c: 0x00368e88, 0x046d: 0xc04c0071, 0x046e: 0x0036b888, 0x046f: 0x0036c488, - 0x0470: 0xc0060041, 0x0471: 0x40335220, 0x0472: 0x40335a20, 0x0473: 0xc0100092, - 0x0474: 0x40338a20, 0x0475: 0xc01600d1, 0x0476: 0xc01a0071, 0x0477: 0xc01e0071, - 0x0478: 0xc0220041, 0x0479: 0x40343e20, 0x047a: 0xc0340092, 0x047b: 0x40348420, - 0x047c: 0x4034a820, 0x047d: 0x4034ba20, 0x047e: 0xc02c0071, 0x047f: 0x40350e20, - // Block 0x12, offset 0x480 - 0x0480: 0x40352820, 0x0481: 0x40353a20, 0x0482: 0x40354c20, 0x0483: 0xc03a00f1, - 0x0484: 0x4035ac20, 0x0485: 0x4035b420, 0x0486: 0x40360220, 0x0487: 0xc0420071, - 0x0488: 0x40365c20, 0x0489: 0x40366620, 0x048a: 0x40367420, 0x048b: 0xc0460071, - 0x048c: 0x40368e20, 0x048d: 0xc04a0071, 0x048e: 0x4036b820, 0x048f: 0x4036c420, - 0x0490: 0xe00014ba, 0x0491: 0xe00014c0, 0x0492: 0x40339620, 0x0493: 0x4033a220, - 0x0494: 0x4033c220, 0x0495: 0x4033fc20, 0x0496: 0xc0280071, 0x0497: 0x40343620, - 0x0498: 0x40344620, 0x0499: 0x40349a20, 0x049a: 0x4034e420, 0x049b: 0x40356220, - 0x049c: 0x40356a20, 0x049d: 0xe00014cc, 0x049e: 0x40357a20, 0x049f: 0x40365420, - 0x04a0: 0x0035e088, 0x04a1: 0x4035e020, 0x04a2: 0x00369e88, 0x04a3: 0x40369e20, - 0x04a4: 0x0036ce88, 0x04a5: 0x4036ce20, 0x04a6: 0x0036d688, 0x04a7: 0x4036d620, - 0x04a8: 0x0036ea88, 0x04a9: 0x4036ea20, 0x04aa: 0x0036e088, 0x04ab: 0x4036e020, - 0x04ac: 0x0036f488, 0x04ad: 0x4036f420, 0x04ae: 0x0036fc88, 0x04af: 0x4036fc20, - 0x04b0: 0x00370488, 0x04b1: 0x40370420, 0x04b2: 0x00370c88, 0x04b3: 0x40370c20, - 0x04b4: 0xc0500131, 0x04b5: 0xc04e0131, 0x04b6: 0x00371c88, 0x04b7: 0x40371c20, - 0x04b8: 0x0035a488, 0x04b9: 0x4035a420, 0x04ba: 0x0035fa88, 0x04bb: 0x4035fa20, - 0x04bc: 0x0035f288, 0x04bd: 0x4035f220, 0x04be: 0x0035e888, 0x04bf: 0x4035e820, - // Block 0x13, offset 0x4c0 - 0x04c0: 0x00352088, 0x04c1: 0x40352020, 0x04c2: 0x40070620, 0x04c3: 0xae608302, - 0x04c4: 0xae605f02, 0x04c5: 0xae602a02, 0x04c6: 0xae602202, 0x04c7: 0xae605f02, - 0x04c8: 0xa0000000, 0x04c9: 0xa0000000, 0x04ca: 0x00341c88, 0x04cb: 0x40341c20, - 0x04cc: 0x00369688, 0x04cd: 0x40369620, 0x04ce: 0x00353088, 0x04cf: 0x40353020, - 0x04d0: 0xe00014b7, 0x04d1: 0xe00014b4, 0x04d2: 0x00336a88, 0x04d3: 0x40336a20, - 0x04d4: 0x00337a88, 0x04d5: 0x40337a20, 0x04d6: 0x0033dc88, 0x04d7: 0x4033dc20, - 0x04d8: 0x0033aa88, 0x04d9: 0x4033aa20, 0x04da: 0x00345888, 0x04db: 0x40345820, - 0x04dc: 0x00347888, 0x04dd: 0x40347820, 0x04de: 0x00347088, 0x04df: 0x40347020, - 0x04e0: 0x00346888, 0x04e1: 0x40346820, 0x04e2: 0x0034ca88, 0x04e3: 0x4034ca20, - 0x04e4: 0x0034dc88, 0x04e5: 0x4034dc20, 0x04e6: 0x00351888, 0x04e7: 0x40351820, - 0x04e8: 0x00372688, 0x04e9: 0x40372620, 0x04ea: 0x00354488, 0x04eb: 0x40354420, - 0x04ec: 0x00355888, 0x04ed: 0x40355820, 0x04ee: 0x00359288, 0x04ef: 0x40359220, - 0x04f0: 0x00359a88, 0x04f1: 0x40359a20, 0x04f2: 0x0035cc88, 0x04f3: 0x4035cc20, - 0x04f4: 0x00360e88, 0x04f5: 0x40360e20, 0x04f6: 0x00362a88, 0x04f7: 0x40362a20, - 0x04f8: 0x00363a88, 0x04f9: 0x40363a20, 0x04fa: 0x0035d488, 0x04fb: 0x4035d420, - 0x04fc: 0x00364488, 0x04fd: 0x40364420, 0x04fe: 0x00364c88, 0x04ff: 0x40364c20, - // Block 0x14, offset 0x500 - 0x0500: 0x00373088, 0x0501: 0xe00014c9, 0x0502: 0xe00014c6, 0x0503: 0x00346088, - 0x0504: 0x40346020, 0x0505: 0x00348e88, 0x0506: 0x40348e20, 0x0507: 0x0034d288, - 0x0508: 0x4034d220, 0x0509: 0x0034c288, 0x050a: 0x4034c220, 0x050b: 0x00363288, - 0x050c: 0x40363220, 0x050d: 0x0034b088, 0x050e: 0x4034b020, 0x050f: 0x40373020, - 0x0510: 0x00332a88, 0x0511: 0x40332a20, 0x0512: 0x00333288, 0x0513: 0x40333220, - 0x0514: 0x00334a88, 0x0515: 0x40334a20, 0x0516: 0x0033ba88, 0x0517: 0x4033ba20, - 0x0518: 0xc00e0071, 0x0519: 0xc00c0071, 0x051a: 0x00334288, 0x051b: 0x40334220, - 0x051c: 0x0033d488, 0x051d: 0x4033d420, 0x051e: 0x0033f288, 0x051f: 0x4033f220, - 0x0520: 0x00340688, 0x0521: 0x40340620, 0x0522: 0xe00014d5, 0x0523: 0xe00014d2, - 0x0524: 0x00342488, 0x0525: 0x40342420, 0x0526: 0x0034f688, 0x0527: 0x4034f620, - 0x0528: 0xc0320071, 0x0529: 0xc0300071, 0x052a: 0x00350688, 0x052b: 0x40350620, - 0x052c: 0x0036b088, 0x052d: 0x4036b020, 0x052e: 0xe00014de, 0x052f: 0xe00014db, - 0x0530: 0x00358288, 0x0531: 0x40358220, 0x0532: 0x00358a88, 0x0533: 0x40358a20, - 0x0534: 0x00362288, 0x0535: 0x40362220, 0x0536: 0x00338288, 0x0537: 0x40338220, - 0x0538: 0x00368688, 0x0539: 0x40368620, 0x053a: 0x00337288, 0x053b: 0x40337220, - 0x053c: 0x0035bc88, 0x053d: 0x4035bc20, 0x053e: 0x0035c488, 0x053f: 0x4035c420, - // Block 0x15, offset 0x540 - 0x0540: 0x00339288, 0x0541: 0x40339220, 0x0542: 0x0033a088, 0x0543: 0x4033a020, - 0x0544: 0x0033ee88, 0x0545: 0x4033ee20, 0x0546: 0x00341088, 0x0547: 0x40341020, - 0x0548: 0x0034a488, 0x0549: 0x4034a420, 0x054a: 0x0034ec88, 0x054b: 0x4034ec20, - 0x054c: 0x00354288, 0x054d: 0x40354220, 0x054e: 0x00355688, 0x054f: 0x40355620, - 0x0550: 0x0033f088, 0x0551: 0x4033f020, 0x0552: 0x00349688, 0x0553: 0x40349620, - 0x0554: 0x0034a688, 0x0555: 0x4034a620, 0x0556: 0x00353888, 0x0557: 0x40353820, - 0x0558: 0x0036cc88, 0x0559: 0x4036cc20, 0x055a: 0x00348288, 0x055b: 0x40348220, - 0x055c: 0x00372e88, 0x055d: 0x40372e20, 0x055e: 0x00348088, 0x055f: 0x40348020, - 0x0560: 0x00349888, 0x0561: 0x40349820, 0x0562: 0x0034da88, 0x0563: 0x4034da20, - 0x0564: 0x00351688, 0x0565: 0x40351620, 0x0566: 0x0035dc88, 0x0567: 0x4035dc20, - 0x0571: 0x00384288, 0x0572: 0x00384488, 0x0573: 0x00384688, - 0x0574: 0x00384888, 0x0575: 0x00384a88, 0x0576: 0x00384c88, 0x0577: 0x00384e88, - 0x0578: 0x00385088, 0x0579: 0x00385288, 0x057a: 0x00385488, 0x057b: 0x00385688, - 0x057c: 0x00385888, 0x057d: 0x00385a88, 0x057e: 0x00385c88, 0x057f: 0x00385e88, - // Block 0x16, offset 0x580 - 0x0580: 0x00386088, 0x0581: 0x00386288, 0x0582: 0x00386488, 0x0583: 0x00386688, - 0x0584: 0x00386888, 0x0585: 0x00386a88, 0x0586: 0x00386c88, 0x0587: 0x00386e88, - 0x0588: 0x00387088, 0x0589: 0x00387288, 0x058a: 0x00387488, 0x058b: 0x00387688, - 0x058c: 0x00387888, 0x058d: 0x00387a88, 0x058e: 0x00387c88, 0x058f: 0x00387e88, - 0x0590: 0x00388088, 0x0591: 0x00388288, 0x0592: 0x00388488, 0x0593: 0x00388688, - 0x0594: 0x00388888, 0x0595: 0x00388a88, 0x0596: 0x00388c88, - 0x0599: 0x40388e20, 0x059a: 0x40054e20, 0x059b: 0x40055020, - 0x059c: 0x4002be20, 0x059d: 0x40024620, 0x059e: 0x4002ca20, 0x059f: 0x40055220, - 0x05a1: 0x40384220, 0x05a2: 0x40384420, 0x05a3: 0x40384620, - 0x05a4: 0x40384820, 0x05a5: 0x40384a20, 0x05a6: 0x40384c20, 0x05a7: 0x40384e20, - 0x05a8: 0x40385020, 0x05a9: 0x40385220, 0x05aa: 0x40385420, 0x05ab: 0x40385620, - 0x05ac: 0x40385820, 0x05ad: 0x40385a20, 0x05ae: 0x40385c20, 0x05af: 0x40385e20, - 0x05b0: 0x40386020, 0x05b1: 0x40386220, 0x05b2: 0x40386420, 0x05b3: 0x40386620, - 0x05b4: 0x40386820, 0x05b5: 0x40386a20, 0x05b6: 0x40386c20, 0x05b7: 0x40386e20, - 0x05b8: 0x40387020, 0x05b9: 0x40387220, 0x05ba: 0x40387420, 0x05bb: 0x40387620, - 0x05bc: 0x40387820, 0x05bd: 0x40387a20, 0x05be: 0x40387c20, 0x05bf: 0x40387e20, - // Block 0x17, offset 0x5c0 - 0x05c0: 0x40388020, 0x05c1: 0x40388220, 0x05c2: 0x40388420, 0x05c3: 0x40388620, - 0x05c4: 0x40388820, 0x05c5: 0x40388a20, 0x05c6: 0x40388c20, 0x05c7: 0xf0000404, - 0x05c9: 0x40026e20, 0x05ca: 0x40021c20, - 0x05cf: 0x4027e420, - 0x05d1: 0xadc00000, 0x05d2: 0xae600000, 0x05d3: 0xae600000, - 0x05d4: 0xae600000, 0x05d5: 0xae600000, 0x05d6: 0xadc00000, 0x05d7: 0xae600000, - 0x05d8: 0xae600000, 0x05d9: 0xae600000, 0x05da: 0xade00000, 0x05db: 0xadc00000, - 0x05dc: 0xae600000, 0x05dd: 0xae600000, 0x05de: 0xae600000, 0x05df: 0xae600000, - 0x05e0: 0xae600000, 0x05e1: 0xae600000, 0x05e2: 0xadc00000, 0x05e3: 0xadc00000, - 0x05e4: 0xadc00000, 0x05e5: 0xadc00000, 0x05e6: 0xadc00000, 0x05e7: 0xadc00000, - 0x05e8: 0xae600000, 0x05e9: 0xae600000, 0x05ea: 0xadc00000, 0x05eb: 0xae600000, - 0x05ec: 0xae600000, 0x05ed: 0xade00000, 0x05ee: 0xae400000, 0x05ef: 0xae600000, - 0x05f0: 0xa0a08502, 0x05f1: 0xa0b08602, 0x05f2: 0xa0c08702, 0x05f3: 0xa0d08802, - 0x05f4: 0xa0e08902, 0x05f5: 0xa0f08a02, 0x05f6: 0xa1008b02, 0x05f7: 0xa1108c02, - 0x05f8: 0xa1208d02, 0x05f9: 0xa1308e02, 0x05fa: 0xa1308e02, 0x05fb: 0xa1408f02, - 0x05fc: 0xa1509202, 0x05fd: 0xa1600000, 0x05fe: 0x40055420, 0x05ff: 0xa1709502, - // Block 0x18, offset 0x600 - 0x0600: 0x40055620, 0x0601: 0xa1809102, 0x0602: 0xa1909002, 0x0603: 0x40055820, - 0x0604: 0xae600000, 0x0605: 0xadc00000, 0x0606: 0x40055a20, 0x0607: 0xa1208d02, - 0x0610: 0x40389020, 0x0611: 0x40389220, 0x0612: 0x40389420, 0x0613: 0x40389620, - 0x0614: 0x40389820, 0x0615: 0x40389a20, 0x0616: 0x40389c20, 0x0617: 0x40389e20, - 0x0618: 0x4038a020, 0x0619: 0x4038a220, 0x061a: 0x0038a499, 0x061b: 0x4038a420, - 0x061c: 0x4038a620, 0x061d: 0x0038a899, 0x061e: 0x4038a820, 0x061f: 0x0038aa99, - 0x0620: 0x4038aa20, 0x0621: 0x4038ac20, 0x0622: 0x4038ae20, 0x0623: 0x0038b099, - 0x0624: 0x4038b020, 0x0625: 0x0038b299, 0x0626: 0x4038b220, 0x0627: 0x4038b420, - 0x0628: 0x4038b620, 0x0629: 0x4038b820, 0x062a: 0x4038ba20, - 0x0630: 0xe00014ff, 0x0631: 0xe0001502, 0x0632: 0xe0001511, 0x0633: 0x40055c20, - 0x0634: 0x40055e20, - // Block 0x19, offset 0x640 - 0x0640: 0xa0000000, 0x0641: 0xa0000000, 0x0642: 0xa0000000, 0x0643: 0xa0000000, - 0x0644: 0xa0000000, 0x0646: 0x40096620, 0x0647: 0x40096a20, - 0x0648: 0x40070820, 0x0649: 0x4004f220, 0x064a: 0x4004f620, 0x064b: 0x4027e620, - 0x064c: 0x40024820, 0x064d: 0x40024a20, 0x064e: 0x40070e20, 0x064f: 0x40071020, - 0x0650: 0xae600000, 0x0651: 0xae600000, 0x0652: 0xae600000, 0x0653: 0xae600000, - 0x0654: 0xae600000, 0x0655: 0xae600000, 0x0656: 0xae600000, 0x0657: 0xae600000, - 0x0658: 0xa1e00000, 0x0659: 0xa1f00000, 0x065a: 0xa2000000, 0x065b: 0x40026420, - 0x065e: 0x40027020, 0x065f: 0x4002cc20, - 0x0660: 0x403aa220, 0x0661: 0x40391c20, 0x0662: 0x40391e20, 0x0663: 0x40392020, - 0x0664: 0x40392620, 0x0665: 0x40392820, 0x0666: 0x40393020, 0x0667: 0xc0520151, - 0x0668: 0x40393c20, 0x0669: 0x40395420, 0x066a: 0x40395620, 0x066b: 0x40395820, - 0x066c: 0x40396420, 0x066d: 0x40397220, 0x066e: 0x40397420, 0x066f: 0x40398820, - 0x0670: 0x40398a20, 0x0671: 0x4039a420, 0x0672: 0x4039a620, 0x0673: 0x4039c620, - 0x0674: 0x4039c820, 0x0675: 0x4039dc20, 0x0676: 0x4039de20, 0x0677: 0x4039e620, - 0x0678: 0x4039e820, 0x0679: 0x4039ee20, 0x067a: 0x4039f020, 0x067b: 0x403a3820, - 0x067c: 0x403a3a20, 0x067d: 0x403a9c20, 0x067e: 0x403a9e20, 0x067f: 0x403aa020, - // Block 0x1a, offset 0x680 - 0x0680: 0xa0000000, 0x0681: 0x4039fc20, 0x0682: 0x403a1220, 0x0683: 0x403a1a20, - 0x0684: 0x403a4020, 0x0685: 0x403a4e20, 0x0686: 0x403a5620, 0x0687: 0x403a6820, - 0x0688: 0xc0560171, 0x0689: 0x403a8e20, 0x068a: 0xc0580171, 0x068b: 0xa1b0a202, - 0x068c: 0xa1c0a502, 0x068d: 0xa1d0a902, 0x068e: 0xa1e0ad02, 0x068f: 0xa1f0b202, - 0x0690: 0xa200b602, 0x0691: 0xa210ba02, 0x0692: 0xa220bc02, 0x0693: 0xae60bd02, - 0x0694: 0xae60be02, 0x0695: 0xadc0bf02, 0x0696: 0xadc0c102, 0x0697: 0xae60c202, - 0x0698: 0xae60c302, 0x0699: 0xae60c402, 0x069a: 0xae60c502, 0x069b: 0xae60c602, - 0x069c: 0xadc0c702, 0x069d: 0xae60c802, 0x069e: 0xae60c902, 0x069f: 0xadc0c002, - 0x06a0: 0xe000015e, 0x06a1: 0xe00001e6, 0x06a2: 0xe0000301, 0x06a3: 0xe00003db, - 0x06a4: 0xe00004b6, 0x06a5: 0xe0000580, 0x06a6: 0xe000064b, 0x06a7: 0xe00006f3, - 0x06a8: 0xe000079f, 0x06a9: 0xe0000844, 0x06aa: 0x4004ee20, 0x06ab: 0x40024c20, - 0x06ac: 0x40024e20, 0x06ad: 0x4004de20, 0x06ae: 0x40393a20, 0x06af: 0x403a1020, - 0x06b0: 0xa230d102, 0x06b1: 0x40392420, 0x06b2: 0x40392220, 0x06b3: 0x40392a20, - 0x06b4: 0x00391c84, 0x06b5: 0xf0000404, 0x06b6: 0xf0000404, 0x06b7: 0xf0000404, - 0x06b8: 0xf0000404, 0x06b9: 0x40395a20, 0x06ba: 0x40395c20, 0x06bb: 0x40393e20, - 0x06bc: 0x40395e20, 0x06bd: 0x40396020, 0x06be: 0x40394020, 0x06bf: 0x40396220, - // Block 0x1b, offset 0x6c0 - 0x06c0: 0x40394220, 0x06c1: 0x40397620, 0x06c2: 0x40397820, 0x06c3: 0x40396620, - 0x06c4: 0x40396820, 0x06c5: 0x40397a20, 0x06c6: 0x40396a20, 0x06c7: 0x40396e20, - 0x06c8: 0x40398c20, 0x06c9: 0x40398e20, 0x06ca: 0x40399020, 0x06cb: 0x40399220, - 0x06cc: 0x40399420, 0x06cd: 0x40399620, 0x06ce: 0x40399820, 0x06cf: 0x40399a20, - 0x06d0: 0x40399c20, 0x06d1: 0x4039a820, 0x06d2: 0x4039aa20, 0x06d3: 0x4039ac20, - 0x06d4: 0x4039ae20, 0x06d5: 0x4039b020, 0x06d6: 0x4039b220, 0x06d7: 0x4039b420, - 0x06d8: 0x4039b620, 0x06d9: 0x4039b820, 0x06da: 0x4039ca20, 0x06db: 0x4039cc20, - 0x06dc: 0x4039ce20, 0x06dd: 0x4039e020, 0x06de: 0x4039e220, 0x06df: 0x4039ea20, - 0x06e0: 0x4039f220, 0x06e1: 0x4039fe20, 0x06e2: 0x403a0020, 0x06e3: 0x403a0220, - 0x06e4: 0x403a0420, 0x06e5: 0x403a0820, 0x06e6: 0x403a0a20, 0x06e7: 0x403a1420, - 0x06e8: 0x403a1620, 0x06e9: 0x403a1c20, 0x06ea: 0x403a1e20, 0x06eb: 0x403a2020, - 0x06ec: 0x403a2220, 0x06ed: 0x403a2620, 0x06ee: 0x403a2820, 0x06ef: 0x403a2a20, - 0x06f0: 0x403a2c20, 0x06f1: 0x403a2e20, 0x06f2: 0x403a3020, 0x06f3: 0x403a3220, - 0x06f4: 0x403a3420, 0x06f5: 0x403a4220, 0x06f6: 0x403a4420, 0x06f7: 0x403a4620, - 0x06f8: 0x403a4820, 0x06f9: 0x403a6020, 0x06fa: 0x403a5820, 0x06fb: 0x403a5a20, - 0x06fc: 0x403a5c20, 0x06fd: 0x403a5e20, 0x06fe: 0x403a6a20, 0x06ff: 0x40396c20, - // Block 0x1c, offset 0x700 - 0x0700: 0xe00017e4, 0x0701: 0x403a6c20, 0x0702: 0xe00017e1, 0x0703: 0x403a6e20, - 0x0704: 0x403a7620, 0x0705: 0x403a7820, 0x0706: 0x403a7a20, 0x0707: 0x403a7c20, - 0x0708: 0x403a7e20, 0x0709: 0x403a8020, 0x070a: 0x403a8220, 0x070b: 0x403a8420, - 0x070c: 0x403a9220, 0x070d: 0x403a9420, 0x070e: 0x403a9620, 0x070f: 0x403a8620, - 0x0710: 0x403a9820, 0x0711: 0x403a9a20, 0x0712: 0x403aaa20, 0x0713: 0xe0001800, - 0x0714: 0x4002e820, 0x0715: 0x403a7220, 0x0716: 0xae600000, 0x0717: 0xae600000, - 0x0718: 0xae600000, 0x0719: 0xae600000, 0x071a: 0xae600000, 0x071b: 0xae600000, - 0x071c: 0xae600000, 0x071d: 0xa0000000, 0x071e: 0x40071220, 0x071f: 0xae600000, - 0x0720: 0xae600000, 0x0721: 0xae600000, 0x0722: 0xae600000, 0x0723: 0xadc00000, - 0x0724: 0xae600000, 0x0725: 0x003a7484, 0x0726: 0x003a9084, 0x0727: 0xae600000, - 0x0728: 0xae600000, 0x0729: 0x40071420, 0x072a: 0xadc00000, 0x072b: 0xae600000, - 0x072c: 0xae600000, 0x072d: 0xadc00000, 0x072e: 0x40399e20, 0x072f: 0x4039ba20, - 0x0730: 0xe0000161, 0x0731: 0xe00001e9, 0x0732: 0xe0000304, 0x0733: 0xe00003de, - 0x0734: 0xe00004b9, 0x0735: 0xe0000583, 0x0736: 0xe000064e, 0x0737: 0xe00006f6, - 0x0738: 0xe00007a2, 0x0739: 0xe0000847, 0x073a: 0x4039d020, 0x073b: 0x4039e420, - 0x073c: 0x4039f420, 0x073d: 0xe0001553, 0x073e: 0xe0001779, 0x073f: 0x403a7020, - // Block 0x1d, offset 0x740 - 0x0740: 0x40035c20, 0x0741: 0x4002ea20, 0x0742: 0x4002ec20, 0x0743: 0x40027220, - 0x0744: 0x40027420, 0x0745: 0x40027620, 0x0746: 0x40027820, 0x0747: 0x40027a20, - 0x0748: 0x40027c20, 0x0749: 0x4002ce20, 0x074a: 0x40056020, 0x074b: 0x40056220, - 0x074c: 0x40056420, 0x074d: 0x40056620, 0x074f: 0xa0000000, - 0x0750: 0x403ab020, 0x0751: 0xa240d202, 0x0752: 0x403ab220, 0x0753: 0x403ab420, - 0x0754: 0xe0001806, 0x0755: 0x403ab820, 0x0756: 0x403ab620, 0x0757: 0x403aba20, - 0x0758: 0x403abc20, 0x0759: 0x403abe20, 0x075a: 0x403ac220, 0x075b: 0x403ac420, - 0x075c: 0xe000180f, 0x075d: 0x403ac620, 0x075e: 0x403ac820, 0x075f: 0x403aca20, - 0x0760: 0x403ace20, 0x0761: 0x403ad020, 0x0762: 0x403ad220, 0x0763: 0x403ad420, - 0x0764: 0x003ad499, 0x0765: 0x403ad620, 0x0766: 0x403ad820, 0x0767: 0xe0001812, - 0x0768: 0x403adc20, 0x0769: 0x403ade20, 0x076a: 0x403ae020, 0x076b: 0x403ae220, - 0x076c: 0x403ae420, 0x076d: 0xe0001803, 0x076e: 0xe0001809, 0x076f: 0xe000180c, - 0x0770: 0xae60d302, 0x0771: 0xadc0d402, 0x0772: 0xae60d502, 0x0773: 0xae60d602, - 0x0774: 0xadc0d702, 0x0775: 0xae60d802, 0x0776: 0xae60d902, 0x0777: 0xadc0da02, - 0x0778: 0xadc0db02, 0x0779: 0xadc0dc02, 0x077a: 0xae60dd02, 0x077b: 0xadc0de02, - 0x077c: 0xadc0df02, 0x077d: 0xae60e002, 0x077e: 0xadc0e102, 0x077f: 0xae60e202, - // Block 0x1e, offset 0x780 - 0x0780: 0xae600000, 0x0781: 0xae605f02, 0x0782: 0xadc06002, 0x0783: 0xae600000, - 0x0784: 0xadc00000, 0x0785: 0xae605f02, 0x0786: 0xadc06002, 0x0787: 0xae600000, - 0x0788: 0xadc00000, 0x0789: 0xae600000, 0x078a: 0xae600000, - 0x078d: 0x403ac020, 0x078e: 0x403acc20, 0x078f: 0x403ada20, - 0x0790: 0x40394420, 0x0791: 0x40394620, 0x0792: 0x40394820, 0x0793: 0x40394a20, - 0x0794: 0x40394c20, 0x0795: 0x40394e20, 0x0796: 0x40395220, 0x0797: 0x40397c20, - 0x0798: 0x40397e20, 0x0799: 0x4039a020, 0x079a: 0x4039a220, 0x079b: 0x4039bc20, - 0x079c: 0x4039d220, 0x079d: 0x4039f620, 0x079e: 0x4039f820, 0x079f: 0x4039fa20, - 0x07a0: 0x403a0c20, 0x07a1: 0x403a0e20, 0x07a2: 0x403a3620, 0x07a3: 0x403a3c20, - 0x07a4: 0x403a3e20, 0x07a5: 0x403a5020, 0x07a6: 0x403a5220, 0x07a7: 0x403a6220, - 0x07a8: 0x403a6420, 0x07a9: 0x403a6620, 0x07aa: 0x403a4a20, 0x07ab: 0x4039be20, - 0x07ac: 0x4039c020, 0x07ad: 0x4039d420, 0x07ae: 0x40398020, 0x07af: 0x40398220, - 0x07b0: 0x4039d620, 0x07b1: 0x4039c220, 0x07b2: 0x40398420, 0x07b3: 0x40392c20, - 0x07b4: 0x40392e20, 0x07b5: 0x403aa420, 0x07b6: 0x403aa620, 0x07b7: 0x403aa820, - 0x07b8: 0x403a8820, 0x07b9: 0x403a8a20, 0x07ba: 0x403aac20, 0x07bb: 0x403aae20, - 0x07bc: 0x40398620, 0x07bd: 0x4039d820, 0x07be: 0x4039da20, 0x07bf: 0x403a2420, - // Block 0x1f, offset 0x7c0 - 0x07c0: 0x403b1820, 0x07c1: 0x403b1e20, 0x07c2: 0x403b2020, 0x07c3: 0x403b2220, - 0x07c4: 0x403b2620, 0x07c5: 0x403b2820, 0x07c6: 0x403b2a20, 0x07c7: 0x403b2c20, - 0x07c8: 0x403b3220, 0x07c9: 0x403b3620, 0x07ca: 0x403b3820, 0x07cb: 0x403b3a20, - 0x07cc: 0x403b3e20, 0x07cd: 0x403b4620, 0x07ce: 0x403b4820, 0x07cf: 0x403b4c20, - 0x07d0: 0x403b4e20, 0x07d1: 0x403b5620, 0x07d2: 0x403b5820, 0x07d3: 0x403b5a20, - 0x07d4: 0x403b5c20, 0x07d5: 0x403b5e20, 0x07d6: 0x403b6020, 0x07d7: 0x403b6220, - 0x07d8: 0x403b4020, 0x07d9: 0x403b1a20, 0x07da: 0x403b1c20, 0x07db: 0x403b3c20, - 0x07dc: 0x403b2420, 0x07dd: 0x403b5020, 0x07de: 0x403b5220, 0x07df: 0x403b5420, - 0x07e0: 0x403b4220, 0x07e1: 0x403b4420, 0x07e2: 0x403b2e20, 0x07e3: 0x403b3020, - 0x07e4: 0x403b4a20, 0x07e5: 0x403b3420, 0x07e6: 0x403b6620, 0x07e7: 0x403b6820, - 0x07e8: 0x403b6a20, 0x07e9: 0x403b6c20, 0x07ea: 0x403b6e20, 0x07eb: 0x403b7020, - 0x07ec: 0x403b7220, 0x07ed: 0x403b7420, 0x07ee: 0x403b7620, 0x07ef: 0x403b7820, - 0x07f0: 0x403b7a20, 0x07f1: 0x403b6420, - // Block 0x20, offset 0x800 - 0x0800: 0xe0000164, 0x0801: 0xe00001ef, 0x0802: 0xe000030a, 0x0803: 0xe00003e4, - 0x0804: 0xe00004bf, 0x0805: 0xe0000589, 0x0806: 0xe0000654, 0x0807: 0xe00006fc, - 0x0808: 0xe00007a8, 0x0809: 0xe000084d, 0x080a: 0x403b7c20, 0x080b: 0x403b7e20, - 0x080c: 0x403b8020, 0x080d: 0x403b8220, 0x080e: 0x403b8420, 0x080f: 0x403b8620, - 0x0810: 0x403b8820, 0x0811: 0x403b8a20, 0x0812: 0x403b8c20, 0x0813: 0x403b8e20, - 0x0814: 0x403b9020, 0x0815: 0x403b9220, 0x0816: 0x403b9420, 0x0817: 0x403b9620, - 0x0818: 0x403b9820, 0x0819: 0x403b9a20, 0x081a: 0x403b9c20, 0x081b: 0x403b9e20, - 0x081c: 0x403ba020, 0x081d: 0x403ba220, 0x081e: 0x403ba420, 0x081f: 0x403ba620, - 0x0820: 0x403ba820, 0x0821: 0x403baa20, 0x0822: 0x403bac20, 0x0823: 0x403bae20, - 0x0824: 0x403bb020, 0x0825: 0x403bb220, 0x0826: 0x403bb420, 0x0827: 0x403bb620, - 0x0828: 0xe0001815, 0x0829: 0xe0001818, 0x082a: 0xe000181b, 0x082b: 0xae60e302, - 0x082c: 0xae60e402, 0x082d: 0xae60e502, 0x082e: 0xae60e602, 0x082f: 0xae60e702, - 0x0830: 0xae60e802, 0x0831: 0xae60e902, 0x0832: 0xadc0ea02, 0x0833: 0xae60eb02, - 0x0834: 0x403bb820, 0x0835: 0x403bba20, 0x0836: 0x40073820, 0x0837: 0x40035e20, - 0x0838: 0x40025020, 0x0839: 0x4002c020, 0x083a: 0xa0000000, - // Block 0x21, offset 0x840 - 0x0840: 0x4038e820, 0x0841: 0x4038ea20, 0x0842: 0x4038ec20, 0x0843: 0x4038ee20, - 0x0844: 0x4038f020, 0x0845: 0x4038f220, 0x0846: 0x4038f420, 0x0847: 0x4038f620, - 0x0848: 0x4038f820, 0x0849: 0x4038fa20, 0x084a: 0x4038fc20, 0x084b: 0x4038fe20, - 0x084c: 0x40390020, 0x084d: 0x40390220, 0x084e: 0x40390420, 0x084f: 0x40390620, - 0x0850: 0x40390820, 0x0851: 0x40390a20, 0x0852: 0x40390c20, 0x0853: 0x40390e20, - 0x0854: 0x40391020, 0x0855: 0x40391220, 0x0856: 0x82e61c8a, 0x0857: 0x82e61c8b, - 0x0858: 0xae609f02, 0x0859: 0xae60a002, 0x085a: 0x40391820, 0x085b: 0x82e61c8d, - 0x085c: 0xae609702, 0x085d: 0xae609702, 0x085e: 0xae609802, 0x085f: 0xae609802, - 0x0860: 0xae609802, 0x0861: 0xae609902, 0x0862: 0xae609902, 0x0863: 0xae609902, - 0x0864: 0xa0009a02, 0x0865: 0xae609a02, 0x0866: 0xae609b02, 0x0867: 0xae609b02, - 0x0868: 0xa0009c02, 0x0869: 0xae609c02, 0x086a: 0xae609c02, 0x086b: 0xae609d02, - 0x086c: 0xae609e02, 0x086d: 0xae60a102, - 0x0870: 0x40027e20, 0x0871: 0x40028020, 0x0872: 0x40028220, 0x0873: 0x40028420, - 0x0874: 0x40028620, 0x0875: 0x40028820, 0x0876: 0x40028a20, 0x0877: 0x40028c20, - 0x0878: 0x40028e20, 0x0879: 0x40029020, 0x087a: 0x40029220, 0x087b: 0x40029420, - 0x087c: 0x40029620, 0x087d: 0x40029820, 0x087e: 0x40029a20, - // Block 0x22, offset 0x880 - 0x0880: 0x403ae620, 0x0881: 0x403ae820, 0x0882: 0x403aea20, 0x0883: 0x403aec20, - 0x0884: 0x403aee20, 0x0885: 0x403af020, 0x0886: 0x403af220, 0x0887: 0x403af420, - 0x0888: 0x403af620, 0x0889: 0x403af820, 0x088a: 0x403afa20, 0x088b: 0x403afc20, - 0x088c: 0x403afe20, 0x088d: 0x403b0020, 0x088e: 0x403b0220, 0x088f: 0x403b0420, - 0x0890: 0x403b0620, 0x0891: 0x403b0820, 0x0892: 0x403b0a20, 0x0893: 0x403b0c20, - 0x0894: 0x403b0e20, 0x0895: 0x403b1020, 0x0896: 0x403b1220, 0x0897: 0x403b1420, - 0x0898: 0x403b1620, 0x0899: 0xadc06002, 0x089a: 0xadc06002, 0x089b: 0xadc06002, - 0x089e: 0x40056820, - // Block 0x23, offset 0x8c0 - 0x08e0: 0x40395020, 0x08e2: 0x40397020, 0x08e3: 0x4039ec20, - 0x08e4: 0x403a0620, 0x08e5: 0x403a1820, 0x08e6: 0x403a4c20, 0x08e7: 0x403a5420, - 0x08e8: 0x40393220, 0x08e9: 0x40393420, 0x08ea: 0x4039c420, 0x08eb: 0x403a8c20, - 0x08ec: 0x40393620, - // Block 0x24, offset 0x900 - 0x0924: 0xae60af02, 0x0925: 0xae60b402, 0x0926: 0xadc0b802, 0x0927: 0xae60a402, - 0x0928: 0xae60a802, 0x0929: 0xadc0ac02, 0x092a: 0xae600000, 0x092b: 0xae600000, - 0x092c: 0xae600000, 0x092d: 0xadc00000, 0x092e: 0xadc00000, 0x092f: 0xadc00000, - 0x0930: 0xa1b0a302, 0x0931: 0xa1c0a702, 0x0932: 0xa1d0ab02, 0x0933: 0xae600000, - 0x0934: 0xae60b002, 0x0935: 0xae60b102, 0x0936: 0xadc0b902, 0x0937: 0xae60ca02, - 0x0938: 0xae60cb02, 0x0939: 0xadc0cf02, 0x093a: 0xadc0d002, 0x093b: 0xae60cd02, - 0x093c: 0xae60ce02, 0x093d: 0xae60cc02, 0x093e: 0xae60b502, - // Block 0x25, offset 0x940 - 0x0940: 0xa000f202, 0x0941: 0xa000f202, 0x0942: 0xa000f302, 0x0943: 0xa000f402, - 0x0944: 0x403fbc20, 0x0945: 0x403fbe20, 0x0946: 0x403fc020, 0x0947: 0x403fcc20, - 0x0948: 0x403fce20, 0x0949: 0x403fd020, 0x094a: 0x403fd220, 0x094b: 0x403fd420, - 0x094c: 0x403fd820, 0x094d: 0x403fdc20, 0x094e: 0x403fde20, 0x094f: 0x403fe020, - 0x0950: 0x403fe220, 0x0951: 0x403fe420, 0x0952: 0x403fe620, 0x0953: 0x403fe820, - 0x0954: 0x403fea20, 0x0955: 0x403fec20, 0x0956: 0x403fee20, 0x0957: 0x403ff020, - 0x0958: 0x403ff420, 0x0959: 0x403ff620, 0x095a: 0x403ff820, 0x095b: 0x403ffa20, - 0x095c: 0x403ffc20, 0x095d: 0x40400220, 0x095e: 0x40400420, 0x095f: 0x40400620, - 0x0960: 0x40400820, 0x0961: 0x40400a20, 0x0962: 0x40400e20, 0x0963: 0x40401020, - 0x0964: 0x40401220, 0x0965: 0x40401420, 0x0966: 0x40401620, 0x0967: 0x40401820, - 0x0968: 0x40401a20, 0x0969: 0xe0001830, 0x096a: 0x40401c20, 0x096b: 0x40401e20, - 0x096c: 0x40402020, 0x096d: 0x40402420, 0x096e: 0x40402620, 0x096f: 0x40402820, - 0x0970: 0x40402c20, 0x0971: 0xe0001839, 0x0972: 0x40402e20, 0x0973: 0x40403020, - 0x0974: 0xe000183c, 0x0975: 0x40403220, 0x0976: 0x40403420, 0x0977: 0x40403620, - 0x0978: 0x40403820, 0x0979: 0x40403a20, 0x097a: 0x40404c20, 0x097b: 0x40404e20, - 0x097c: 0xa070f102, 0x097d: 0x40403c20, 0x097e: 0x40404a20, 0x097f: 0x40405620, - // Block 0x26, offset 0x980 - 0x0980: 0x40405820, 0x0981: 0x40405a20, 0x0982: 0x40405c20, 0x0983: 0x40405e20, - 0x0984: 0x40406020, 0x0985: 0x40406620, 0x0986: 0x40406a20, 0x0987: 0x40406c20, - 0x0988: 0x40407020, 0x0989: 0x40407220, 0x098a: 0x40407420, 0x098b: 0x40407620, - 0x098c: 0x40407820, 0x098d: 0x8209203d, 0x098e: 0x40406e20, 0x098f: 0x40405020, - 0x0990: 0x403fb820, 0x0991: 0xae600000, 0x0992: 0xadc00000, 0x0993: 0xae603502, - 0x0994: 0xae603202, 0x0995: 0x40406820, 0x0996: 0x40405220, 0x0997: 0x40405420, - 0x0998: 0xe000181e, 0x0999: 0xe0001821, 0x099a: 0xe0001824, 0x099b: 0xe0001827, - 0x099c: 0xe000182a, 0x099d: 0xe000182d, 0x099e: 0xe0001833, 0x099f: 0xe0001836, - 0x09a0: 0x403fd620, 0x09a1: 0x403fda20, 0x09a2: 0x40406220, 0x09a3: 0x40406420, - 0x09a4: 0x40030c20, 0x09a5: 0x40030e20, 0x09a6: 0xe000016a, 0x09a7: 0xe00001f8, - 0x09a8: 0xe0000313, 0x09a9: 0xe00003ed, 0x09aa: 0xe00004c8, 0x09ab: 0xe0000592, - 0x09ac: 0xe000065d, 0x09ad: 0xe0000705, 0x09ae: 0xe00007b1, 0x09af: 0xe0000856, - 0x09b0: 0x40056c20, 0x09b1: 0x4027b620, 0x09b2: 0x403fba20, 0x09b3: 0x403fc220, - 0x09b4: 0x403fc420, 0x09b5: 0x403fc620, 0x09b6: 0x403fc820, 0x09b7: 0x403fca20, - 0x09b9: 0x403ffe20, 0x09ba: 0x40402a20, 0x09bb: 0x403ff220, - 0x09bc: 0x40400020, 0x09bd: 0x40403e20, 0x09be: 0x40400c20, 0x09bf: 0x40402220, - // Block 0x27, offset 0x9c0 - 0x09c1: 0xa000f202, 0x09c2: 0xa000f302, 0x09c3: 0xa000f402, - 0x09c5: 0x40407c20, 0x09c6: 0x40407e20, 0x09c7: 0x40408020, - 0x09c8: 0x40408220, 0x09c9: 0x40408420, 0x09ca: 0x40408620, 0x09cb: 0x40408820, - 0x09cc: 0x40408c20, 0x09cf: 0x40409020, - 0x09d0: 0x40409220, 0x09d3: 0x40409420, - 0x09d4: 0x40409620, 0x09d5: 0x40409820, 0x09d6: 0x40409a20, 0x09d7: 0x40409c20, - 0x09d8: 0x40409e20, 0x09d9: 0x4040a020, 0x09da: 0x4040a220, 0x09db: 0x4040a420, - 0x09dc: 0x4040a620, 0x09dd: 0x4040a820, 0x09de: 0x4040aa20, 0x09df: 0x4040ac20, - 0x09e0: 0x4040ae20, 0x09e1: 0x4040b020, 0x09e2: 0x4040b220, 0x09e3: 0x4040b420, - 0x09e4: 0x4040b620, 0x09e5: 0x4040b820, 0x09e6: 0x4040ba20, 0x09e7: 0x4040bc20, - 0x09e8: 0x4040be20, 0x09ea: 0x4040c020, 0x09eb: 0x4040c220, - 0x09ec: 0x4040c420, 0x09ed: 0x4040c620, 0x09ee: 0x4040c820, 0x09ef: 0x4040ca20, - 0x09f0: 0x4040cc20, 0x09f2: 0x4040d020, - 0x09f6: 0x4040d420, 0x09f7: 0x4040d620, - 0x09f8: 0x4040d820, 0x09f9: 0x4040da20, - 0x09fc: 0xa070f102, 0x09fd: 0x4040dc20, 0x09fe: 0x4040de20, 0x09ff: 0x4040e020, - // Block 0x28, offset 0xa00 - 0x0a00: 0x4040e220, 0x0a01: 0x4040e420, 0x0a02: 0x4040e620, 0x0a03: 0x4040e820, - 0x0a04: 0x4040ea20, 0x0a07: 0xc05a0191, - 0x0a08: 0x4040f220, 0x0a0b: 0x4040f420, - 0x0a0c: 0x4040f620, 0x0a0d: 0x8209207c, 0x0a0e: 0xe0001845, - 0x0a17: 0x4040fa20, - 0x0a1c: 0xe000183f, 0x0a1d: 0xe0001842, 0x0a1f: 0xe0001848, - 0x0a20: 0x40408a20, 0x0a21: 0x40408e20, 0x0a22: 0x4040ec20, 0x0a23: 0x4040ee20, - 0x0a26: 0xe000016d, 0x0a27: 0xe00001fb, - 0x0a28: 0xe0000316, 0x0a29: 0xe00003f0, 0x0a2a: 0xe00004cb, 0x0a2b: 0xe0000595, - 0x0a2c: 0xe0000660, 0x0a2d: 0xe0000708, 0x0a2e: 0xe00007b4, 0x0a2f: 0xe0000859, - 0x0a30: 0x4040ce20, 0x0a31: 0x4040d220, 0x0a32: 0x4027e820, 0x0a33: 0x4027ea20, - 0x0a34: 0x40283020, 0x0a35: 0x40283220, 0x0a36: 0x40283420, 0x0a37: 0x40283620, - 0x0a38: 0x40283820, 0x0a39: 0x40283a20, 0x0a3a: 0x40073a20, 0x0a3b: 0x4027ec20, - // Block 0x29, offset 0xa40 - 0x0a41: 0xa000f202, 0x0a42: 0xa000f302, 0x0a43: 0xa000f402, - 0x0a45: 0x40410620, 0x0a46: 0x40410820, 0x0a47: 0x40411020, - 0x0a48: 0x40411220, 0x0a49: 0x40410020, 0x0a4a: 0x40410220, - 0x0a4f: 0x40411420, - 0x0a50: 0x40410a20, 0x0a53: 0x40410420, - 0x0a54: 0x40410c20, 0x0a55: 0x40411c20, 0x0a56: 0x40411e20, 0x0a57: 0x40412020, - 0x0a58: 0x40412220, 0x0a59: 0x40412420, 0x0a5a: 0x40412620, 0x0a5b: 0x40412820, - 0x0a5c: 0x40412a20, 0x0a5d: 0x40412c20, 0x0a5e: 0x40412e20, 0x0a5f: 0x40413020, - 0x0a60: 0x40413220, 0x0a61: 0x40413420, 0x0a62: 0x40413620, 0x0a63: 0x40413820, - 0x0a64: 0x40413a20, 0x0a65: 0x40413c20, 0x0a66: 0x40413e20, 0x0a67: 0x40414020, - 0x0a68: 0x40414220, 0x0a6a: 0x40414420, 0x0a6b: 0x40414620, - 0x0a6c: 0x40414820, 0x0a6d: 0x40414a20, 0x0a6e: 0x40414c20, 0x0a6f: 0x40414e20, - 0x0a70: 0x40415220, 0x0a72: 0x40415420, 0x0a73: 0xe000185a, - 0x0a75: 0x40415620, 0x0a76: 0xe000184b, - 0x0a78: 0x40411620, 0x0a79: 0x40411820, - 0x0a7c: 0xa070f102, 0x0a7e: 0x40415a20, 0x0a7f: 0x40415c20, - // Block 0x2a, offset 0xa80 - 0x0a80: 0x40415e20, 0x0a81: 0x40416020, 0x0a82: 0x40416220, - 0x0a87: 0x40416420, - 0x0a88: 0x40416620, 0x0a8b: 0x40416820, - 0x0a8c: 0x40416a20, 0x0a8d: 0x820920b6, - 0x0a91: 0x40411a20, - 0x0a99: 0xe000184e, 0x0a9a: 0xe0001851, 0x0a9b: 0xe0001854, - 0x0a9c: 0x40415820, 0x0a9e: 0xe0001857, - 0x0aa6: 0xe0000170, 0x0aa7: 0xe00001fe, - 0x0aa8: 0xe0000319, 0x0aa9: 0xe00003f3, 0x0aaa: 0xe00004ce, 0x0aab: 0xe0000598, - 0x0aac: 0xe0000663, 0x0aad: 0xe000070b, 0x0aae: 0xe00007b7, 0x0aaf: 0xe000085c, - 0x0ab0: 0xa000f502, 0x0ab1: 0xa000f602, 0x0ab2: 0x40410e20, 0x0ab3: 0x4040fe20, - 0x0ab4: 0x4040fc20, 0x0ab5: 0x40415020, - // Block 0x2b, offset 0xac0 - 0x0ac1: 0xa000f202, 0x0ac2: 0xa000f302, 0x0ac3: 0xa000f402, - 0x0ac5: 0x40417020, 0x0ac6: 0x40417220, 0x0ac7: 0x40417420, - 0x0ac8: 0x40417620, 0x0ac9: 0x40417820, 0x0aca: 0x40417a20, 0x0acb: 0x40417c20, - 0x0acc: 0x40418020, 0x0acd: 0x40418420, 0x0acf: 0x40418620, - 0x0ad0: 0x40418820, 0x0ad1: 0x40418a20, 0x0ad3: 0x40418c20, - 0x0ad4: 0x40418e20, 0x0ad5: 0x40419020, 0x0ad6: 0x40419220, 0x0ad7: 0x40419420, - 0x0ad8: 0x40419620, 0x0ad9: 0x40419820, 0x0ada: 0x40419a20, 0x0adb: 0x40419c20, - 0x0adc: 0x40419e20, 0x0add: 0x4041a020, 0x0ade: 0x4041a220, 0x0adf: 0x4041a420, - 0x0ae0: 0x4041a620, 0x0ae1: 0x4041a820, 0x0ae2: 0x4041aa20, 0x0ae3: 0x4041ac20, - 0x0ae4: 0x4041ae20, 0x0ae5: 0x4041b020, 0x0ae6: 0x4041b220, 0x0ae7: 0x4041b420, - 0x0ae8: 0x4041b620, 0x0aea: 0x4041b820, 0x0aeb: 0x4041ba20, - 0x0aec: 0x4041bc20, 0x0aed: 0x4041be20, 0x0aee: 0x4041c020, 0x0aef: 0x4041c220, - 0x0af0: 0x4041c420, 0x0af2: 0x4041c620, 0x0af3: 0x4041d220, - 0x0af5: 0x4041c820, 0x0af6: 0x4041ca20, 0x0af7: 0x4041cc20, - 0x0af8: 0x4041ce20, 0x0af9: 0x4041d020, - 0x0afc: 0xa070f102, 0x0afd: 0x4041d420, 0x0afe: 0x4041d620, 0x0aff: 0x4041d820, - // Block 0x2c, offset 0xb00 - 0x0b00: 0x4041da20, 0x0b01: 0x4041dc20, 0x0b02: 0x4041de20, 0x0b03: 0x4041e020, - 0x0b04: 0x4041e220, 0x0b05: 0x4041e820, 0x0b07: 0x4041ea20, - 0x0b08: 0x4041ec20, 0x0b09: 0x4041ee20, 0x0b0b: 0x4041f020, - 0x0b0c: 0x4041f220, 0x0b0d: 0x820920fa, - 0x0b10: 0x40416e20, - 0x0b20: 0x40417e20, 0x0b21: 0x40418220, 0x0b22: 0x4041e420, 0x0b23: 0x4041e620, - 0x0b26: 0xe0000173, 0x0b27: 0xe0000201, - 0x0b28: 0xe000031c, 0x0b29: 0xe00003f6, 0x0b2a: 0xe00004d1, 0x0b2b: 0xe000059b, - 0x0b2c: 0xe0000666, 0x0b2d: 0xe000070e, 0x0b2e: 0xe00007ba, 0x0b2f: 0xe000085f, - 0x0b30: 0x40057420, 0x0b31: 0x4027ee20, - // Block 0x2d, offset 0xb40 - 0x0b41: 0xa000f202, 0x0b42: 0xa000f302, 0x0b43: 0xa000f402, - 0x0b45: 0x4041f620, 0x0b46: 0x4041f820, 0x0b47: 0x4041fa20, - 0x0b48: 0x4041fc20, 0x0b49: 0x4041fe20, 0x0b4a: 0x40420020, 0x0b4b: 0x40420220, - 0x0b4c: 0x40420620, 0x0b4f: 0x40420a20, - 0x0b50: 0x40420c20, 0x0b53: 0x40420e20, - 0x0b54: 0x40421020, 0x0b55: 0x40421220, 0x0b56: 0x40421420, 0x0b57: 0x40421620, - 0x0b58: 0x40421820, 0x0b59: 0x40421a20, 0x0b5a: 0x40421c20, 0x0b5b: 0x40421e20, - 0x0b5c: 0x40422020, 0x0b5d: 0x40422220, 0x0b5e: 0x40422420, 0x0b5f: 0x40422620, - 0x0b60: 0x40422820, 0x0b61: 0x40422a20, 0x0b62: 0x40422c20, 0x0b63: 0x40422e20, - 0x0b64: 0x40423020, 0x0b65: 0x40423220, 0x0b66: 0x40423420, 0x0b67: 0x40423620, - 0x0b68: 0x40423820, 0x0b6a: 0x40423a20, 0x0b6b: 0x40423c20, - 0x0b6c: 0x40423e20, 0x0b6d: 0x40424020, 0x0b6e: 0x40424220, 0x0b6f: 0x40424420, - 0x0b70: 0x40424820, 0x0b72: 0x40424a20, 0x0b73: 0x40424c20, - 0x0b75: 0x40424e20, 0x0b76: 0x40425220, 0x0b77: 0x40425420, - 0x0b78: 0x40425620, 0x0b79: 0x40425820, - 0x0b7c: 0xa070f102, 0x0b7d: 0x40425a20, 0x0b7e: 0x40425c20, 0x0b7f: 0x40425e20, - // Block 0x2e, offset 0xb80 - 0x0b80: 0x40426020, 0x0b81: 0x40426220, 0x0b82: 0x40426420, 0x0b83: 0x40426620, - 0x0b84: 0x40426820, 0x0b87: 0xc05d01e1, - 0x0b88: 0x40427020, 0x0b8b: 0x40427220, - 0x0b8c: 0x40427420, 0x0b8d: 0x8209213b, - 0x0b96: 0x40427820, 0x0b97: 0x40427a20, - 0x0b9c: 0xe000185d, 0x0b9d: 0xe0001860, 0x0b9f: 0x40424620, - 0x0ba0: 0x40420420, 0x0ba1: 0x40420820, 0x0ba2: 0x40426a20, 0x0ba3: 0x40426c20, - 0x0ba6: 0xe0000176, 0x0ba7: 0xe0000204, - 0x0ba8: 0xe000031f, 0x0ba9: 0xe00003f9, 0x0baa: 0xe00004d4, 0x0bab: 0xe000059e, - 0x0bac: 0xe0000669, 0x0bad: 0xe0000711, 0x0bae: 0xe00007bd, 0x0baf: 0xe0000862, - 0x0bb0: 0x40073c20, 0x0bb1: 0x40425020, 0x0bb2: 0x40283c20, 0x0bb3: 0x40283e20, - 0x0bb4: 0x40284020, 0x0bb5: 0x40284220, 0x0bb6: 0x40284420, 0x0bb7: 0x40284620, - // Block 0x2f, offset 0xbc0 - 0x0bc2: 0xa000f302, 0x0bc3: 0x40429620, - 0x0bc5: 0x40427e20, 0x0bc6: 0x40428020, 0x0bc7: 0x40428220, - 0x0bc8: 0x40428420, 0x0bc9: 0x40428620, 0x0bca: 0x40428820, - 0x0bce: 0x40428a20, 0x0bcf: 0x40428c20, - 0x0bd0: 0x40428e20, 0x0bd2: 0xc0610231, 0x0bd3: 0x40429220, - 0x0bd4: 0x40429420, 0x0bd5: 0x40429820, - 0x0bd9: 0x40429a20, 0x0bda: 0x40429c20, - 0x0bdc: 0x4042bc20, 0x0bde: 0x40429e20, 0x0bdf: 0x4042a020, - 0x0be3: 0x4042a220, - 0x0be4: 0x4042a420, - 0x0be8: 0x4042a620, 0x0be9: 0x4042ba20, 0x0bea: 0x4042a820, - 0x0bee: 0x4042aa20, 0x0bef: 0x4042ac20, - 0x0bf0: 0x4042ae20, 0x0bf1: 0x4042b820, 0x0bf2: 0x4042b020, 0x0bf3: 0x4042b620, - 0x0bf4: 0x4042b420, 0x0bf5: 0x4042b220, 0x0bf6: 0x4042be20, 0x0bf7: 0x4042c020, - 0x0bf8: 0x4042c220, 0x0bf9: 0x4042c420, - 0x0bfe: 0x4042c620, 0x0bff: 0x4042c820, - // Block 0x30, offset 0xc00 - 0x0c00: 0x4042ca20, 0x0c01: 0x4042cc20, 0x0c02: 0x4042ce20, - 0x0c06: 0xc0630261, 0x0c07: 0xc06602b1, - 0x0c08: 0x4042d420, 0x0c0a: 0x4042d620, 0x0c0b: 0x4042d820, - 0x0c0c: 0x4042da20, 0x0c0d: 0x8209216e, - 0x0c10: 0x40427c20, - 0x0c17: 0x4042de20, - 0x0c26: 0xe0000179, 0x0c27: 0xe0000207, - 0x0c28: 0xe0000322, 0x0c29: 0xe00003fc, 0x0c2a: 0xe00004d7, 0x0c2b: 0xe00005a1, - 0x0c2c: 0xe000066c, 0x0c2d: 0xe0000714, 0x0c2e: 0xe00007c0, 0x0c2f: 0xe0000865, - 0x0c30: 0x40285420, 0x0c31: 0x40285620, 0x0c32: 0x40285820, 0x0c33: 0x40073e20, - 0x0c34: 0x40074020, 0x0c35: 0x40074220, 0x0c36: 0x40074420, 0x0c37: 0x40074620, - 0x0c38: 0x40074820, 0x0c39: 0x4027f220, 0x0c3a: 0x40074a20, - // Block 0x31, offset 0xc40 - 0x0c41: 0xa000f202, 0x0c42: 0xa000f302, 0x0c43: 0xa000f402, - 0x0c45: 0x4042e020, 0x0c46: 0x4042e220, 0x0c47: 0x4042e420, - 0x0c48: 0x4042e620, 0x0c49: 0x4042e820, 0x0c4a: 0x4042ea20, 0x0c4b: 0x4042ec20, - 0x0c4c: 0x4042f020, 0x0c4e: 0x4042f420, 0x0c4f: 0x4042f620, - 0x0c50: 0x4042f820, 0x0c52: 0x4042fa20, 0x0c53: 0x4042fc20, - 0x0c54: 0x4042fe20, 0x0c55: 0x40430020, 0x0c56: 0x40430220, 0x0c57: 0x40430420, - 0x0c58: 0x40430620, 0x0c59: 0x40430820, 0x0c5a: 0x40430a20, 0x0c5b: 0x40430e20, - 0x0c5c: 0x40431020, 0x0c5d: 0x40431420, 0x0c5e: 0x40431620, 0x0c5f: 0x40431820, - 0x0c60: 0x40431a20, 0x0c61: 0x40431c20, 0x0c62: 0x40431e20, 0x0c63: 0x40432020, - 0x0c64: 0x40432220, 0x0c65: 0x40432420, 0x0c66: 0x40432620, 0x0c67: 0x40432820, - 0x0c68: 0x40432a20, 0x0c6a: 0x40432c20, 0x0c6b: 0x40432e20, - 0x0c6c: 0x40433020, 0x0c6d: 0x40433220, 0x0c6e: 0x40433420, 0x0c6f: 0x40433620, - 0x0c70: 0x40433820, 0x0c71: 0x40433a20, 0x0c72: 0x40433c20, 0x0c73: 0x40434820, - 0x0c75: 0x40433e20, 0x0c76: 0x40434020, 0x0c77: 0x40434220, - 0x0c78: 0x40434420, 0x0c79: 0x40434620, - 0x0c7d: 0x40434a20, 0x0c7e: 0x40434c20, 0x0c7f: 0x40434e20, - // Block 0x32, offset 0xc80 - 0x0c80: 0x40435020, 0x0c81: 0x40435220, 0x0c82: 0x40435420, 0x0c83: 0x40435620, - 0x0c84: 0x40435820, 0x0c86: 0xc06802e1, 0x0c87: 0x40436020, - 0x0c88: 0x40436220, 0x0c8a: 0x40436420, 0x0c8b: 0x40436620, - 0x0c8c: 0x40436820, 0x0c8d: 0x820921b5, - 0x0c95: 0x825421b6, 0x0c96: 0x825b21b7, - 0x0c98: 0x40430c20, 0x0c99: 0x40431220, - 0x0ca0: 0x4042ee20, 0x0ca1: 0x4042f220, 0x0ca2: 0x40435a20, 0x0ca3: 0x40435c20, - 0x0ca6: 0xe000017c, 0x0ca7: 0xe000020a, - 0x0ca8: 0xe0000325, 0x0ca9: 0xe00003ff, 0x0caa: 0xe00004da, 0x0cab: 0xe00005a4, - 0x0cac: 0xe000066f, 0x0cad: 0xe0000717, 0x0cae: 0xe00007c3, 0x0caf: 0xe0000868, - 0x0cb8: 0xe000017f, 0x0cb9: 0xe000020d, 0x0cba: 0xe0000328, 0x0cbb: 0xe0000402, - 0x0cbc: 0xe0000210, 0x0cbd: 0xe000032b, 0x0cbe: 0xe0000405, 0x0cbf: 0x40074c20, - // Block 0x33, offset 0xcc0 - 0x0cc2: 0xa000f302, 0x0cc3: 0xa000f402, - 0x0cc5: 0x40437020, 0x0cc6: 0x40437220, 0x0cc7: 0x40437420, - 0x0cc8: 0x40437620, 0x0cc9: 0x40437820, 0x0cca: 0x40437a20, 0x0ccb: 0x40437c20, - 0x0ccc: 0x40438020, 0x0cce: 0x40438420, 0x0ccf: 0x40438620, - 0x0cd0: 0x40438820, 0x0cd2: 0x40438a20, 0x0cd3: 0x40438c20, - 0x0cd4: 0x40438e20, 0x0cd5: 0x40439020, 0x0cd6: 0x40439220, 0x0cd7: 0x40439420, - 0x0cd8: 0x40439620, 0x0cd9: 0x40439820, 0x0cda: 0x40439a20, 0x0cdb: 0x40439c20, - 0x0cdc: 0x40439e20, 0x0cdd: 0x4043a020, 0x0cde: 0x4043a220, 0x0cdf: 0x4043a420, - 0x0ce0: 0x4043a620, 0x0ce1: 0x4043a820, 0x0ce2: 0x4043aa20, 0x0ce3: 0x4043ac20, - 0x0ce4: 0x4043ae20, 0x0ce5: 0x4043b020, 0x0ce6: 0x4043b220, 0x0ce7: 0x4043b420, - 0x0ce8: 0x4043b620, 0x0cea: 0x4043b820, 0x0ceb: 0x4043ba20, - 0x0cec: 0x4043bc20, 0x0ced: 0x4043be20, 0x0cee: 0x4043c020, 0x0cef: 0x4043c220, - 0x0cf0: 0x4043c420, 0x0cf1: 0x4043c620, 0x0cf2: 0x4043c820, 0x0cf3: 0x4043d420, - 0x0cf5: 0x4043ca20, 0x0cf6: 0x4043cc20, 0x0cf7: 0x4043ce20, - 0x0cf8: 0x4043d020, 0x0cf9: 0x4043d220, - 0x0cfc: 0xa070f102, 0x0cfd: 0x4043d820, 0x0cfe: 0x4043de20, 0x0cff: 0xc06a0311, - // Block 0x34, offset 0xd00 - 0x0d00: 0x4043e220, 0x0d01: 0x4043e420, 0x0d02: 0x4043e620, 0x0d03: 0x4043e820, - 0x0d04: 0x4043ea20, 0x0d06: 0xc06c0341, 0x0d07: 0x4043f220, - 0x0d08: 0x4043f420, 0x0d0a: 0xc0710311, 0x0d0b: 0x4043f820, - 0x0d0c: 0x4043fa20, 0x0d0d: 0x820921fe, - 0x0d15: 0x4043fe20, 0x0d16: 0x40440020, - 0x0d1e: 0x4043d620, - 0x0d20: 0x40437e20, 0x0d21: 0x40438220, 0x0d22: 0x4043ec20, 0x0d23: 0x4043ee20, - 0x0d26: 0xe0000182, 0x0d27: 0xe0000213, - 0x0d28: 0xe000032e, 0x0d29: 0xe0000408, 0x0d2a: 0xe00004dd, 0x0d2b: 0xe00005a7, - 0x0d2c: 0xe0000672, 0x0d2d: 0xe000071a, 0x0d2e: 0xe00007c6, 0x0d2f: 0xe000086b, - 0x0d31: 0x4043da20, 0x0d32: 0x4043dc20, - // Block 0x35, offset 0xd40 - 0x0d42: 0xa000f302, 0x0d43: 0xa000f402, - 0x0d45: 0x40440220, 0x0d46: 0x40440420, 0x0d47: 0x40440620, - 0x0d48: 0x40440820, 0x0d49: 0x40440a20, 0x0d4a: 0x40440c20, 0x0d4b: 0x40440e20, - 0x0d4c: 0x40441220, 0x0d4e: 0x40441620, 0x0d4f: 0x40441820, - 0x0d50: 0x40441a20, 0x0d52: 0x40441c20, 0x0d53: 0x40441e20, - 0x0d54: 0x40442020, 0x0d55: 0x40442220, 0x0d56: 0x40442420, 0x0d57: 0x40442620, - 0x0d58: 0x40442820, 0x0d59: 0x40442a20, 0x0d5a: 0x40442c20, 0x0d5b: 0x40442e20, - 0x0d5c: 0x40443020, 0x0d5d: 0x40443220, 0x0d5e: 0x40443420, 0x0d5f: 0x40443620, - 0x0d60: 0x40443820, 0x0d61: 0x40443a20, 0x0d62: 0x40443c20, 0x0d63: 0x40443e20, - 0x0d64: 0x40444020, 0x0d65: 0x40444220, 0x0d66: 0x40444420, 0x0d67: 0x40444620, - 0x0d68: 0x40444820, 0x0d69: 0x40444a20, 0x0d6a: 0x40444c20, 0x0d6b: 0x40444e20, - 0x0d6c: 0x40445020, 0x0d6d: 0x40445220, 0x0d6e: 0x40445420, 0x0d6f: 0x40445620, - 0x0d70: 0x40445820, 0x0d71: 0x40446a20, 0x0d72: 0x40445a20, 0x0d73: 0x40446620, - 0x0d74: 0x40446820, 0x0d75: 0x40445c20, 0x0d76: 0x40445e20, 0x0d77: 0x40446020, - 0x0d78: 0x40446220, 0x0d79: 0x40446420, 0x0d7a: 0x40446c20, - 0x0d7d: 0x40446e20, 0x0d7e: 0x40447020, 0x0d7f: 0x40447220, - // Block 0x36, offset 0xd80 - 0x0d80: 0x40447420, 0x0d81: 0x40447620, 0x0d82: 0x40447820, 0x0d83: 0x40447a20, - 0x0d84: 0x40447c20, 0x0d86: 0xc07303b1, 0x0d87: 0xc0760401, - 0x0d88: 0x40448620, 0x0d8a: 0x40448820, 0x0d8b: 0x40448a20, - 0x0d8c: 0x40448c20, 0x0d8d: 0x82092248, 0x0d8e: 0xe000186c, - 0x0d97: 0x40448e20, - 0x0da0: 0x40441020, 0x0da1: 0x40441420, 0x0da2: 0x40447e20, 0x0da3: 0x40448020, - 0x0da6: 0xe0000185, 0x0da7: 0xe0000216, - 0x0da8: 0xe0000331, 0x0da9: 0xe000040b, 0x0daa: 0xe00004e0, 0x0dab: 0xe00005aa, - 0x0dac: 0xe0000675, 0x0dad: 0xe000071d, 0x0dae: 0xe00007c9, 0x0daf: 0xe000086e, - 0x0db0: 0x40285a20, 0x0db1: 0x40285c20, 0x0db2: 0x40285e20, 0x0db3: 0x40286020, - 0x0db4: 0x40286220, 0x0db5: 0x40286420, - 0x0db9: 0x40074e20, 0x0dba: 0xe0001866, 0x0dbb: 0xe0001869, - 0x0dbc: 0xe000186f, 0x0dbd: 0xe0001872, 0x0dbe: 0xe0001875, 0x0dbf: 0xe0001863, - // Block 0x37, offset 0xdc0 - 0x0dc2: 0xa000f302, 0x0dc3: 0xa000f402, - 0x0dc5: 0x40449220, 0x0dc6: 0x40449420, 0x0dc7: 0x40449620, - 0x0dc8: 0x40449820, 0x0dc9: 0x40449a20, 0x0dca: 0x40449c20, 0x0dcb: 0x40449e20, - 0x0dcc: 0x4044a020, 0x0dcd: 0x4044a220, 0x0dce: 0x4044a420, 0x0dcf: 0x4044a620, - 0x0dd0: 0x4044a820, 0x0dd1: 0x4044aa20, 0x0dd2: 0x4044ac20, 0x0dd3: 0x4044ae20, - 0x0dd4: 0x4044b020, 0x0dd5: 0x4044b220, 0x0dd6: 0x4044b420, - 0x0dda: 0x4044b620, 0x0ddb: 0x4044b820, - 0x0ddc: 0x4044ba20, 0x0ddd: 0x4044bc20, 0x0dde: 0x4044be20, 0x0ddf: 0x4044c020, - 0x0de0: 0x4044c220, 0x0de1: 0x4044c420, 0x0de2: 0x4044c620, 0x0de3: 0x4044c820, - 0x0de4: 0x4044ca20, 0x0de5: 0x4044cc20, 0x0de6: 0x4044ce20, 0x0de7: 0x4044d020, - 0x0de8: 0x4044d220, 0x0de9: 0x4044d420, 0x0dea: 0x4044d620, 0x0deb: 0x4044d820, - 0x0dec: 0x4044da20, 0x0ded: 0x4044dc20, 0x0dee: 0x4044de20, 0x0def: 0x4044e020, - 0x0df0: 0x4044e220, 0x0df1: 0x4044e420, 0x0df3: 0x4044e620, - 0x0df4: 0x4044e820, 0x0df5: 0x4044ea20, 0x0df6: 0x4044ec20, 0x0df7: 0x4044ee20, - 0x0df8: 0x4044f020, 0x0df9: 0x4044f220, 0x0dfa: 0x4044f420, 0x0dfb: 0x4044f620, - 0x0dfd: 0x4044f820, - // Block 0x38, offset 0xe00 - 0x0e00: 0x4044fa20, 0x0e01: 0x4044fc20, 0x0e02: 0x4044fe20, 0x0e03: 0x40450020, - 0x0e04: 0x40450220, 0x0e05: 0x40450420, 0x0e06: 0x40450620, - 0x0e0a: 0x82092295, - 0x0e0f: 0x40450820, - 0x0e10: 0x40450a20, 0x0e11: 0x40450c20, 0x0e12: 0x40450e20, 0x0e13: 0x40451020, - 0x0e14: 0x40451220, 0x0e16: 0x40451420, - 0x0e18: 0x40451620, 0x0e19: 0xc0780431, 0x0e1a: 0x40452020, 0x0e1b: 0x40452220, - 0x0e1c: 0xc07d04b1, 0x0e1d: 0x40452620, 0x0e1e: 0x40452820, 0x0e1f: 0x40451a20, - 0x0e32: 0x40451820, 0x0e33: 0x40451c20, - 0x0e34: 0x40057620, - // Block 0x39, offset 0xe40 - 0x0e41: 0x40491020, 0x0e42: 0x40491220, 0x0e43: 0x40491420, - 0x0e44: 0x40491620, 0x0e45: 0x40491820, 0x0e46: 0x40491a20, 0x0e47: 0x40491c20, - 0x0e48: 0x40491e20, 0x0e49: 0x40492020, 0x0e4a: 0x40492220, 0x0e4b: 0x40492420, - 0x0e4c: 0x40492620, 0x0e4d: 0x40492820, 0x0e4e: 0x40492a20, 0x0e4f: 0x40492c20, - 0x0e50: 0x40492e20, 0x0e51: 0x40493020, 0x0e52: 0x40493220, 0x0e53: 0x40493420, - 0x0e54: 0x40493620, 0x0e55: 0x40493820, 0x0e56: 0x40493a20, 0x0e57: 0x40493c20, - 0x0e58: 0x40493e20, 0x0e59: 0x40494020, 0x0e5a: 0x40494220, 0x0e5b: 0x40494420, - 0x0e5c: 0x40494620, 0x0e5d: 0x40494820, 0x0e5e: 0x40494a20, 0x0e5f: 0x40494c20, - 0x0e60: 0x40494e20, 0x0e61: 0x40495020, 0x0e62: 0x40495220, 0x0e63: 0x40495420, - 0x0e64: 0x40495620, 0x0e65: 0x40495820, 0x0e66: 0x40495a20, 0x0e67: 0x40495c20, - 0x0e68: 0x40495e20, 0x0e69: 0x40496020, 0x0e6a: 0x40496220, 0x0e6b: 0x40496420, - 0x0e6c: 0x40496620, 0x0e6d: 0x40496820, 0x0e6e: 0x40496a20, 0x0e6f: 0x40496c20, - 0x0e70: 0x40496e20, 0x0e71: 0x40497020, 0x0e72: 0x40497220, 0x0e73: 0x40497420, - 0x0e74: 0x40497620, 0x0e75: 0x40497820, 0x0e76: 0x40497a20, 0x0e77: 0x40497c20, - 0x0e78: 0x826724bf, 0x0e79: 0x826724c0, 0x0e7a: 0x820924c1, - 0x0e7f: 0x4027f420, - // Block 0x3a, offset 0xe80 - 0x0e80: 0xc07f04e1, 0x0e81: 0xc0ae04e1, 0x0e82: 0xc0dd04e1, 0x0e83: 0xc10c04e1, - 0x0e84: 0xc13b04e1, 0x0e85: 0x40498e20, 0x0e86: 0x4027b820, 0x0e87: 0xa000ff02, - 0x0e88: 0xa6b10002, 0x0e89: 0xa6b10102, 0x0e8a: 0xa6b10202, 0x0e8b: 0xa6b10302, - 0x0e8c: 0xa0010402, 0x0e8d: 0xc16a0511, 0x0e8e: 0xa000fe02, 0x0e8f: 0x40057820, - 0x0e90: 0xe000019a, 0x0e91: 0xe000022e, 0x0e92: 0xe0000346, 0x0e93: 0xe0000420, - 0x0e94: 0xe00004f5, 0x0e95: 0xe00005bf, 0x0e96: 0xe000068a, 0x0e97: 0xe0000732, - 0x0e98: 0xe00007de, 0x0e99: 0xe0000883, 0x0e9a: 0x40057a20, 0x0e9b: 0x40057c20, - // Block 0x3b, offset 0xec0 - 0x0ec1: 0x40499220, 0x0ec2: 0x40499420, - 0x0ec4: 0x40499620, 0x0ec7: 0x40499820, - 0x0ec8: 0x40499a20, 0x0eca: 0x40499e20, - 0x0ecd: 0x4049a220, - 0x0ed4: 0x4049a420, 0x0ed5: 0x4049a620, 0x0ed6: 0x4049a820, 0x0ed7: 0x4049aa20, - 0x0ed9: 0x4049ac20, 0x0eda: 0x4049ae20, 0x0edb: 0x4049b020, - 0x0edc: 0x4049b220, 0x0edd: 0x4049b420, 0x0ede: 0x4049b620, 0x0edf: 0x4049b820, - 0x0ee1: 0x4049ba20, 0x0ee2: 0x4049bc20, 0x0ee3: 0x4049be20, - 0x0ee5: 0x4049c020, 0x0ee7: 0x4049c220, - 0x0eea: 0x40499c20, 0x0eeb: 0x4049c420, - 0x0eed: 0x4049c620, 0x0eee: 0x4049c820, 0x0eef: 0x4049ca20, - 0x0ef0: 0x4049cc20, 0x0ef1: 0x4049ce20, 0x0ef2: 0x4049d020, 0x0ef3: 0x4049d220, - 0x0ef4: 0x4049d420, 0x0ef5: 0x4049d620, 0x0ef6: 0x4049d820, 0x0ef7: 0x4049da20, - 0x0ef8: 0x827624ee, 0x0ef9: 0x827624ef, 0x0efb: 0x4049e020, - 0x0efc: 0x4049e220, 0x0efd: 0x4049e420, - // Block 0x3c, offset 0xf00 - 0x0f00: 0xc16c0541, 0x0f01: 0xc18c0541, 0x0f02: 0xc1ac0541, 0x0f03: 0xc1cc0541, - 0x0f04: 0xc1ec0541, 0x0f06: 0x4027ba20, - 0x0f08: 0xa7a10602, 0x0f09: 0xa7a10702, 0x0f0a: 0xa7a10802, 0x0f0b: 0xa7a10902, - 0x0f0c: 0xa0010a02, 0x0f0d: 0xc20c0641, - 0x0f10: 0xe000019d, 0x0f11: 0xe0000231, 0x0f12: 0xe0000349, 0x0f13: 0xe0000423, - 0x0f14: 0xe00004f8, 0x0f15: 0xe00005c2, 0x0f16: 0xe000068d, 0x0f17: 0xe0000735, - 0x0f18: 0xe00007e1, 0x0f19: 0xe0000886, - 0x0f1c: 0xf0000404, 0x0f1d: 0xf0000404, 0x0f1e: 0x40499020, 0x0f1f: 0x4049a020, - // Block 0x3d, offset 0xf40 - 0x0f40: 0xe000201a, 0x0f41: 0x40075e20, 0x0f42: 0x40076020, 0x0f43: 0x40076220, - 0x0f44: 0x40058220, 0x0f45: 0x40058420, 0x0f46: 0x40058620, 0x0f47: 0x40058820, - 0x0f48: 0x40058a20, 0x0f49: 0x40058c20, 0x0f4a: 0x40058e20, 0x0f4b: 0x40059420, - 0x0f4c: 0x0005949b, 0x0f4d: 0x40059620, 0x0f4e: 0x40059820, 0x0f4f: 0x40059a20, - 0x0f50: 0x40059c20, 0x0f51: 0x40059e20, 0x0f52: 0x4005a020, 0x0f53: 0x40076420, - 0x0f54: 0x4002aa20, 0x0f55: 0x40076620, 0x0f56: 0x40076820, 0x0f57: 0x40076a20, - 0x0f58: 0xadc00000, 0x0f59: 0xadc00000, 0x0f5a: 0x40076c20, 0x0f5b: 0x40076e20, - 0x0f5c: 0x40077020, 0x0f5d: 0x40077220, 0x0f5e: 0x40077420, 0x0f5f: 0x40077620, - 0x0f60: 0xe00001a0, 0x0f61: 0xe0000234, 0x0f62: 0xe000034c, 0x0f63: 0xe0000426, - 0x0f64: 0xe00004fb, 0x0f65: 0xe00005c5, 0x0f66: 0xe0000690, 0x0f67: 0xe0000738, - 0x0f68: 0xe00007e4, 0x0f69: 0xe0000889, 0x0f6a: 0xe0000237, 0x0f6b: 0xe000034f, - 0x0f6c: 0xe0000429, 0x0f6d: 0xe00004fe, 0x0f6e: 0xe00005c8, 0x0f6f: 0xe0000693, - 0x0f70: 0xe000073b, 0x0f71: 0xe00007e7, 0x0f72: 0xe000088c, 0x0f73: 0xe00001a3, - 0x0f74: 0x40077820, 0x0f75: 0xadc00000, 0x0f76: 0x40077a20, 0x0f77: 0xadc00000, - 0x0f78: 0x40077c20, 0x0f79: 0xad810e02, 0x0f7a: 0x40040020, 0x0f7b: 0x40040220, - 0x0f7c: 0x40040420, 0x0f7d: 0x40040620, 0x0f7e: 0xa0000000, 0x0f7f: 0xa0000000, - // Block 0x3e, offset 0xf80 - 0x0f80: 0x404a7620, 0x0f81: 0x404a7c20, 0x0f82: 0x404a8020, 0x0f83: 0xe0001fe4, - 0x0f84: 0x404a8420, 0x0f85: 0x404a8820, 0x0f86: 0x404a8c20, 0x0f87: 0x404a9020, - 0x0f89: 0x404a9420, 0x0f8a: 0x404a9820, 0x0f8b: 0x404a9c20, - 0x0f8c: 0x404aa020, 0x0f8d: 0xe0001fea, 0x0f8e: 0x404aa420, 0x0f8f: 0x404aa820, - 0x0f90: 0x404aac20, 0x0f91: 0x404ab020, 0x0f92: 0xe0001ff0, 0x0f93: 0x404ab420, - 0x0f94: 0x404ab820, 0x0f95: 0x404abc20, 0x0f96: 0x404ac020, 0x0f97: 0xe0001ff6, - 0x0f98: 0x404ac420, 0x0f99: 0x404ac820, 0x0f9a: 0x404acc20, 0x0f9b: 0x404ad020, - 0x0f9c: 0xe0001ffc, 0x0f9d: 0x404ad420, 0x0f9e: 0x404ad820, 0x0f9f: 0x404adc20, - 0x0fa0: 0x404ae020, 0x0fa1: 0x404ae420, 0x0fa2: 0x404ae820, 0x0fa3: 0x404aee20, - 0x0fa4: 0x404af220, 0x0fa5: 0x404af620, 0x0fa6: 0x404afa20, 0x0fa7: 0x404afe20, - 0x0fa8: 0x404b0220, 0x0fa9: 0xe0001fde, 0x0faa: 0xe0002008, 0x0fab: 0x404a7a20, - 0x0fac: 0x404aec20, - 0x0fb1: 0xc30f0751, 0x0fb2: 0x8282258c, 0x0fb3: 0x8281258d, - 0x0fb4: 0x82842590, 0x0fb5: 0x82812591, 0x0fb6: 0x404b2420, 0x0fb7: 0x404b2620, - 0x0fb8: 0x404b2820, 0x0fb9: 0x404b2a20, 0x0fba: 0x82822596, 0x0fbb: 0x82822597, - 0x0fbc: 0x82822598, 0x0fbd: 0x82822599, 0x0fbe: 0xa000f302, 0x0fbf: 0xa000f402, - // Block 0x3f, offset 0xfc0 - 0x0fc0: 0x8282258e, 0x0fc1: 0x8281258f, 0x0fc2: 0xae600000, 0x0fc3: 0xae600000, - 0x0fc4: 0x8209259a, 0x0fc5: 0x4005a220, 0x0fc6: 0xae600000, 0x0fc7: 0xae600000, - 0x0fc8: 0x404b0620, 0x0fc9: 0x404b0a20, 0x0fca: 0x404b1220, 0x0fcb: 0x404b1420, - 0x0fcc: 0x404b0e20, 0x0fcd: 0x404b0820, 0x0fce: 0x404b0c20, 0x0fcf: 0x404b1020, - 0x0fd0: 0x404a7820, 0x0fd1: 0x404a7e20, 0x0fd2: 0x404a8220, 0x0fd3: 0xe0001fe7, - 0x0fd4: 0x404a8620, 0x0fd5: 0x404a8a20, 0x0fd6: 0x404a8e20, 0x0fd7: 0x404a9220, - 0x0fd9: 0x404a9620, 0x0fda: 0x404a9a20, 0x0fdb: 0x404a9e20, - 0x0fdc: 0x404aa220, 0x0fdd: 0xe0001fed, 0x0fde: 0x404aa620, 0x0fdf: 0x404aaa20, - 0x0fe0: 0x404aae20, 0x0fe1: 0x404ab220, 0x0fe2: 0xe0001ff3, 0x0fe3: 0x404ab620, - 0x0fe4: 0x404aba20, 0x0fe5: 0x404abe20, 0x0fe6: 0x404ac220, 0x0fe7: 0xe0001ff9, - 0x0fe8: 0x404ac620, 0x0fe9: 0x404aca20, 0x0fea: 0x404ace20, 0x0feb: 0x404ad220, - 0x0fec: 0xe0001fff, 0x0fed: 0x404ad620, 0x0fee: 0x404ada20, 0x0fef: 0x404ade20, - 0x0ff0: 0x404ae220, 0x0ff1: 0x404ae620, 0x0ff2: 0xc30306a1, 0x0ff3: 0xc30906a1, - 0x0ff4: 0x404af420, 0x0ff5: 0x404af820, 0x0ff6: 0x404afc20, 0x0ff7: 0x404b0020, - 0x0ff8: 0x404b0420, 0x0ff9: 0xe0001fe1, 0x0ffa: 0xe0002002, 0x0ffb: 0xe0002005, - 0x0ffc: 0xe000200b, 0x0ffe: 0x40077e20, 0x0fff: 0x40078020, - // Block 0x40, offset 0x1000 - 0x1000: 0x40078220, 0x1001: 0x40078420, 0x1002: 0x40078620, 0x1003: 0x40078820, - 0x1004: 0x40078a20, 0x1005: 0x40078c20, 0x1006: 0xadc00000, 0x1007: 0x40078e20, - 0x1008: 0x40079020, 0x1009: 0x40079220, 0x100a: 0x40079420, 0x100b: 0x40079620, - 0x100c: 0x40079820, 0x100e: 0x40079a20, 0x100f: 0x40079c20, - 0x1010: 0x40059020, 0x1011: 0x40059220, 0x1012: 0x4005a420, 0x1013: 0x4005a620, - 0x1014: 0x4005a820, 0x1015: 0x40079e20, 0x1016: 0x4007a020, 0x1017: 0x4007a220, - 0x1018: 0x4007a420, 0x1019: 0x4005aa20, 0x101a: 0x4005ac20, - // Block 0x41, offset 0x1040 - 0x1040: 0x404e1420, 0x1041: 0x404e1820, 0x1042: 0x404e1c20, 0x1043: 0x404e2220, - 0x1044: 0x404e2420, 0x1045: 0x404e2820, 0x1046: 0x404e2e20, 0x1047: 0x404e3220, - 0x1048: 0x404e3a20, 0x1049: 0x404e4220, 0x104a: 0x404e4820, 0x104b: 0x404e4a20, - 0x104c: 0x404e4e20, 0x104d: 0x404e5220, 0x104e: 0x404e5620, 0x104f: 0x404e5a20, - 0x1050: 0x404e5e20, 0x1051: 0x404e6020, 0x1052: 0x404e6220, 0x1053: 0x404e6620, - 0x1054: 0x404e6a20, 0x1055: 0x404e7220, 0x1056: 0x404e7420, 0x1057: 0x404e7e20, - 0x1058: 0x404e8220, 0x1059: 0x404e8420, 0x105a: 0x404e8820, 0x105b: 0x404e8c20, - 0x105c: 0x404e9420, 0x105d: 0x404e9820, 0x105e: 0x404ea620, 0x105f: 0x404eaa20, - 0x1060: 0x404eb620, 0x1061: 0x404ec220, 0x1062: 0x404ec420, 0x1063: 0x404ec620, - 0x1064: 0x404ec820, 0x1065: 0xc31307b1, 0x1066: 0x404ecc20, 0x1067: 0x404ed620, - 0x1068: 0x404ed820, 0x1069: 0x404eda20, 0x106a: 0x404edc20, 0x106b: 0x004ede84, - 0x106c: 0x404ede20, 0x106d: 0x404ee620, 0x106e: 0x404eea20, 0x106f: 0x404eee20, - 0x1070: 0x404ef420, 0x1071: 0x404efe20, 0x1072: 0x404f0620, 0x1073: 0x404eec20, - 0x1074: 0x404f0a20, 0x1075: 0x404f0220, 0x1076: 0xa000f302, 0x1077: 0xa0711202, - 0x1078: 0xa000f402, 0x1079: 0x8209278a, 0x107a: 0x8209278b, 0x107b: 0x404e8a20, - 0x107c: 0x404e9220, 0x107d: 0x404e9a20, 0x107e: 0x404eb020, 0x107f: 0xe000201e, - // Block 0x42, offset 0x1080 - 0x1080: 0xe00001ac, 0x1081: 0xe0000240, 0x1082: 0xe0000358, 0x1083: 0xe0000432, - 0x1084: 0xe0000507, 0x1085: 0xe00005d1, 0x1086: 0xe000069c, 0x1087: 0xe0000744, - 0x1088: 0xe00007f0, 0x1089: 0xe0000895, 0x108a: 0x40032220, 0x108b: 0x40032420, - 0x108c: 0x4005b420, 0x108d: 0x4005b620, 0x108e: 0x4005b820, 0x108f: 0x4005ba20, - 0x1090: 0x404ea020, 0x1091: 0x404ea220, 0x1092: 0x404ece20, 0x1093: 0x404ed020, - 0x1094: 0x404ed220, 0x1095: 0x404ed420, 0x1096: 0x404ef620, 0x1097: 0x404ef820, - 0x1098: 0x404efa20, 0x1099: 0x404efc20, 0x109a: 0x404e2620, 0x109b: 0x404e3c20, - 0x109c: 0x404eb820, 0x109d: 0x404eba20, 0x109e: 0x404e7020, 0x109f: 0x404e8620, - 0x10a0: 0x404e9620, 0x10a1: 0x404e4020, 0x10a2: 0x404f0c20, 0x10a3: 0x404f1820, - 0x10a4: 0x404f1a20, 0x10a5: 0x404ea420, 0x10a6: 0x404ec020, 0x10a7: 0x404f0e20, - 0x10a8: 0x404f1020, 0x10a9: 0x404f1c20, 0x10aa: 0x404f1e20, 0x10ab: 0x404f2020, - 0x10ac: 0x404f2220, 0x10ad: 0x404f2420, 0x10ae: 0x404e5c20, 0x10af: 0x404ebc20, - 0x10b0: 0x404ebe20, 0x10b1: 0x404ee820, 0x10b2: 0x404ee220, 0x10b3: 0x404ef020, - 0x10b4: 0x404ef220, 0x10b5: 0x404e1620, 0x10b6: 0x404e1a20, 0x10b7: 0x404e1e20, - 0x10b8: 0x404e2a20, 0x10b9: 0x404e3620, 0x10ba: 0x404e4420, 0x10bb: 0x404e6420, - 0x10bc: 0x404e6c20, 0x10bd: 0x404e7620, 0x10be: 0x404e7820, 0x10bf: 0x404e8020, - // Block 0x43, offset 0x10c0 - 0x10c0: 0x404e9e20, 0x10c1: 0x404eac20, 0x10c2: 0x404e9c20, 0x10c3: 0x404ee020, - 0x10c4: 0x404f0020, 0x10c5: 0x404f0420, 0x10c6: 0x404f1220, 0x10c7: 0x404f2620, - 0x10c8: 0x404f2a20, 0x10c9: 0x404f2e20, 0x10ca: 0x404f3020, 0x10cb: 0x404f2820, - 0x10cc: 0x404f2c20, 0x10cd: 0xadc11302, 0x10ce: 0x404e7c20, 0x10cf: 0x404f3220, - 0x10d0: 0xe00001af, 0x10d1: 0xe0000243, 0x10d2: 0xe000035b, 0x10d3: 0xe0000435, - 0x10d4: 0xe000050a, 0x10d5: 0xe00005d4, 0x10d6: 0xe000069f, 0x10d7: 0xe0000747, - 0x10d8: 0xe00007f3, 0x10d9: 0xe0000898, 0x10da: 0x404f3420, 0x10db: 0x404f3620, - 0x10dc: 0x404ee420, 0x10dd: 0x404f0820, 0x10de: 0x4007a820, 0x10df: 0x4007aa20, - 0x10e0: 0x00379888, 0x10e1: 0x00379c88, 0x10e2: 0x0037a088, 0x10e3: 0x0037a488, - 0x10e4: 0x0037a888, 0x10e5: 0x0037ac88, 0x10e6: 0x0037b088, 0x10e7: 0x0037b888, - 0x10e8: 0x0037bc88, 0x10e9: 0x0037c088, 0x10ea: 0x0037c488, 0x10eb: 0x0037c888, - 0x10ec: 0x0037cc88, 0x10ed: 0x0037d488, 0x10ee: 0x0037d888, 0x10ef: 0x0037dc88, - 0x10f0: 0x0037e088, 0x10f1: 0x0037e488, 0x10f2: 0x0037e888, 0x10f3: 0x0037f088, - 0x10f4: 0x0037f488, 0x10f5: 0x0037f888, 0x10f6: 0x0037fc88, 0x10f7: 0x00380088, - 0x10f8: 0x00380488, 0x10f9: 0x00380888, 0x10fa: 0x00380c88, 0x10fb: 0x00381088, - 0x10fc: 0x00381488, 0x10fd: 0x00381888, 0x10fe: 0x00381c88, 0x10ff: 0x00382488, - // Block 0x44, offset 0x1100 - 0x1100: 0x00382888, 0x1101: 0x0037b488, 0x1102: 0x0037d088, 0x1103: 0x0037ec88, - 0x1104: 0x00382088, 0x1105: 0x00382c88, 0x1107: 0x00383288, - 0x110d: 0x00383c88, - 0x1110: 0x40379620, 0x1111: 0x40379a20, 0x1112: 0x40379e20, 0x1113: 0x4037a220, - 0x1114: 0x4037a620, 0x1115: 0x4037aa20, 0x1116: 0x4037ae20, 0x1117: 0x4037b620, - 0x1118: 0x4037ba20, 0x1119: 0x4037be20, 0x111a: 0x4037c220, 0x111b: 0x4037c620, - 0x111c: 0x4037ca20, 0x111d: 0x4037d220, 0x111e: 0x4037d620, 0x111f: 0x4037da20, - 0x1120: 0x4037de20, 0x1121: 0x4037e220, 0x1122: 0x4037e620, 0x1123: 0x4037ee20, - 0x1124: 0x4037f220, 0x1125: 0x4037f620, 0x1126: 0x4037fa20, 0x1127: 0x4037fe20, - 0x1128: 0x40380220, 0x1129: 0x40380620, 0x112a: 0x40380a20, 0x112b: 0x40380e20, - 0x112c: 0x40381220, 0x112d: 0x40381620, 0x112e: 0x40381a20, 0x112f: 0x40382220, - 0x1130: 0x40382620, 0x1131: 0x4037b220, 0x1132: 0x4037ce20, 0x1133: 0x4037ea20, - 0x1134: 0x40381e20, 0x1135: 0x40382a20, 0x1136: 0x40382e20, 0x1137: 0x40383020, - 0x1138: 0x40383420, 0x1139: 0x40383620, 0x113a: 0x40383820, 0x113b: 0x40036020, - 0x113c: 0x0037ca94, 0x113d: 0x40383a20, 0x113e: 0x40383e20, 0x113f: 0x40384020, - // Block 0x45, offset 0x1140 - 0x1140: 0x4062ac20, 0x1141: 0x4062ae20, 0x1142: 0x4062b020, 0x1143: 0x4062b220, - 0x1144: 0x4062b420, 0x1145: 0x4062b620, 0x1146: 0x4062b820, 0x1147: 0x4062ba20, - 0x1148: 0x4062bc20, 0x1149: 0x4062be20, 0x114a: 0x4062c020, 0x114b: 0x4062c220, - 0x114c: 0x4062c420, 0x114d: 0x4062c620, 0x114e: 0x4062c820, 0x114f: 0x4062ca20, - 0x1150: 0x4062cc20, 0x1151: 0x4062ce20, 0x1152: 0x4062d020, 0x1153: 0x4062d220, - 0x1154: 0x4062d420, 0x1155: 0x4062d620, 0x1156: 0x4062d820, 0x1157: 0x4062da20, - 0x1158: 0x4062dc20, 0x1159: 0x4062de20, 0x115a: 0x4062e020, 0x115b: 0x4062e220, - 0x115c: 0x4062e420, 0x115d: 0x4062e620, 0x115e: 0x4062e820, 0x115f: 0x4062ea20, - 0x1160: 0x4062ec20, 0x1161: 0x4062ee20, 0x1162: 0x4062f020, 0x1163: 0x4062f220, - 0x1164: 0x4062f420, 0x1165: 0x4062f620, 0x1166: 0x4062f820, 0x1167: 0x4062fa20, - 0x1168: 0x4062fc20, 0x1169: 0x4062fe20, 0x116a: 0x40630020, 0x116b: 0x40630220, - 0x116c: 0x40630420, 0x116d: 0x40630620, 0x116e: 0x40630820, 0x116f: 0x40630a20, - 0x1170: 0x40630c20, 0x1171: 0x40630e20, 0x1172: 0x40631020, 0x1173: 0x40631220, - 0x1174: 0x40631420, 0x1175: 0x40631620, 0x1176: 0x40631820, 0x1177: 0x40631a20, - 0x1178: 0x40631c20, 0x1179: 0x40631e20, 0x117a: 0x40632020, 0x117b: 0x40632220, - 0x117c: 0x40632420, 0x117d: 0x40632620, 0x117e: 0x40632820, 0x117f: 0x40632a20, - // Block 0x46, offset 0x1180 - 0x1180: 0x40632c20, 0x1181: 0x40632e20, 0x1182: 0x40633020, 0x1183: 0x40633220, - 0x1184: 0x40633420, 0x1185: 0x40633620, 0x1186: 0x40633820, 0x1187: 0x40633a20, - 0x1188: 0x40633c20, 0x1189: 0x40633e20, 0x118a: 0x40634020, 0x118b: 0x40634220, - 0x118c: 0x40634420, 0x118d: 0x40634620, 0x118e: 0x40634820, 0x118f: 0x40634a20, - 0x1190: 0x40634c20, 0x1191: 0x40634e20, 0x1192: 0x40635020, 0x1193: 0x40635220, - 0x1194: 0x40635420, 0x1195: 0x40635620, 0x1196: 0x40635820, 0x1197: 0x40635a20, - 0x1198: 0x40635c20, 0x1199: 0x40635e20, 0x119a: 0x40636020, 0x119b: 0x40636220, - 0x119c: 0x40636420, 0x119d: 0x40636620, 0x119e: 0x40636820, 0x119f: 0x4063a420, - 0x11a0: 0x4063a620, 0x11a1: 0x4063a820, 0x11a2: 0x4063aa20, 0x11a3: 0x4063ac20, - 0x11a4: 0x4063ae20, 0x11a5: 0x4063b020, 0x11a6: 0x4063b220, 0x11a7: 0x4063b420, - 0x11a8: 0x4063b620, 0x11a9: 0x4063b820, 0x11aa: 0x4063ba20, 0x11ab: 0x4063bc20, - 0x11ac: 0x4063be20, 0x11ad: 0x4063c020, 0x11ae: 0x4063c220, 0x11af: 0x4063c420, - 0x11b0: 0x4063c620, 0x11b1: 0x4063c820, 0x11b2: 0x4063ca20, 0x11b3: 0x4063cc20, - 0x11b4: 0x4063ce20, 0x11b5: 0x4063d020, 0x11b6: 0x4063d220, 0x11b7: 0x4063d420, - 0x11b8: 0x4063d620, 0x11b9: 0x4063d820, 0x11ba: 0x4063da20, 0x11bb: 0x4063dc20, - 0x11bc: 0x4063de20, 0x11bd: 0x4063e020, 0x11be: 0x4063e220, 0x11bf: 0x4063e420, - // Block 0x47, offset 0x11c0 - 0x11c0: 0x4063e620, 0x11c1: 0x4063e820, 0x11c2: 0x4063ea20, 0x11c3: 0x4063ec20, - 0x11c4: 0x4063ee20, 0x11c5: 0x4063f020, 0x11c6: 0x4063f220, 0x11c7: 0x4063f420, - 0x11c8: 0x4063f620, 0x11c9: 0x4063f820, 0x11ca: 0x4063fa20, 0x11cb: 0x4063fc20, - 0x11cc: 0x4063fe20, 0x11cd: 0x40640020, 0x11ce: 0x40640220, 0x11cf: 0x40640420, - 0x11d0: 0x40640620, 0x11d1: 0x40640820, 0x11d2: 0x40640a20, 0x11d3: 0x40640c20, - 0x11d4: 0x40640e20, 0x11d5: 0x40641020, 0x11d6: 0x40641220, 0x11d7: 0x40641420, - 0x11d8: 0x40641620, 0x11d9: 0x40641820, 0x11da: 0x40641a20, 0x11db: 0x40641c20, - 0x11dc: 0x40641e20, 0x11dd: 0x40642020, 0x11de: 0x40642220, 0x11df: 0x40642420, - 0x11e0: 0x40642620, 0x11e1: 0x40642820, 0x11e2: 0x40642a20, 0x11e3: 0x40642c20, - 0x11e4: 0x40642e20, 0x11e5: 0x40643020, 0x11e6: 0x40643220, 0x11e7: 0x40643420, - 0x11e8: 0x40646420, 0x11e9: 0x40646620, 0x11ea: 0x40646820, 0x11eb: 0x40646a20, - 0x11ec: 0x40646c20, 0x11ed: 0x40646e20, 0x11ee: 0x40647020, 0x11ef: 0x40647220, - 0x11f0: 0x40647420, 0x11f1: 0x40647620, 0x11f2: 0x40647820, 0x11f3: 0x40647a20, - 0x11f4: 0x40647c20, 0x11f5: 0x40647e20, 0x11f6: 0x40648020, 0x11f7: 0x40648220, - 0x11f8: 0x40648420, 0x11f9: 0x40648620, 0x11fa: 0x40648820, 0x11fb: 0x40648a20, - 0x11fc: 0x40648c20, 0x11fd: 0x40648e20, 0x11fe: 0x40649020, 0x11ff: 0x40649220, - // Block 0x48, offset 0x1200 - 0x1200: 0x40649420, 0x1201: 0x40649620, 0x1202: 0x40649820, 0x1203: 0x40649a20, - 0x1204: 0x40649c20, 0x1205: 0x40649e20, 0x1206: 0x4064a020, 0x1207: 0x4064a220, - 0x1208: 0x4064a420, 0x1209: 0x4064a620, 0x120a: 0x4064a820, 0x120b: 0x4064aa20, - 0x120c: 0x4064ac20, 0x120d: 0x4064ae20, 0x120e: 0x4064b020, 0x120f: 0x4064b220, - 0x1210: 0x4064b420, 0x1211: 0x4064b620, 0x1212: 0x4064b820, 0x1213: 0x4064ba20, - 0x1214: 0x4064bc20, 0x1215: 0x4064be20, 0x1216: 0x4064c020, 0x1217: 0x4064c220, - 0x1218: 0x4064c420, 0x1219: 0x4064c620, 0x121a: 0x4064c820, 0x121b: 0x4064ca20, - 0x121c: 0x4064cc20, 0x121d: 0x4064ce20, 0x121e: 0x4064d020, 0x121f: 0x4064d220, - 0x1220: 0x4064d420, 0x1221: 0x4064d620, 0x1222: 0x4064d820, 0x1223: 0x4064da20, - 0x1224: 0x4064dc20, 0x1225: 0x4064de20, 0x1226: 0x4064e020, 0x1227: 0x4064e220, - 0x1228: 0x4064e420, 0x1229: 0x4064e620, 0x122a: 0x4064e820, 0x122b: 0x4064ea20, - 0x122c: 0x4064ec20, 0x122d: 0x4064ee20, 0x122e: 0x4064f020, 0x122f: 0x4064f220, - 0x1230: 0x4064f420, 0x1231: 0x4064f620, 0x1232: 0x4064f820, 0x1233: 0x4064fa20, - 0x1234: 0x4064fc20, 0x1235: 0x4064fe20, 0x1236: 0x40650020, 0x1237: 0x40650220, - 0x1238: 0x40650420, 0x1239: 0x40650620, 0x123a: 0x40650820, 0x123b: 0x40650a20, - 0x123c: 0x40650c20, 0x123d: 0x40650e20, 0x123e: 0x40651020, 0x123f: 0x40651220, - // Block 0x49, offset 0x1240 - 0x1240: 0x403c2e20, 0x1241: 0x403c3020, 0x1242: 0x403c3220, 0x1243: 0x403c3420, - 0x1244: 0x403c3620, 0x1245: 0x403c3820, 0x1246: 0x403c3a20, 0x1247: 0x403c3c20, - 0x1248: 0x403c3e20, 0x1249: 0x403c4020, 0x124a: 0x403c4220, 0x124b: 0x403c4420, - 0x124c: 0x403c4620, 0x124d: 0x403c4820, 0x124e: 0x403c4a20, 0x124f: 0x403c4c20, - 0x1250: 0x403c5020, 0x1251: 0x403c5220, 0x1252: 0x403c5420, 0x1253: 0x403c5620, - 0x1254: 0x403c5820, 0x1255: 0x403c5a20, 0x1256: 0x403c5c20, 0x1257: 0x403c5e20, - 0x1258: 0x403c6020, 0x1259: 0x403c6220, 0x125a: 0x403c6420, 0x125b: 0x403c6620, - 0x125c: 0x403c6820, 0x125d: 0x403c6a20, 0x125e: 0x403c6c20, 0x125f: 0x403c6e20, - 0x1260: 0x403c7a20, 0x1261: 0x403c7c20, 0x1262: 0x403c7e20, 0x1263: 0x403c8020, - 0x1264: 0x403c8220, 0x1265: 0x403c8420, 0x1266: 0x403c8620, 0x1267: 0x403c8820, - 0x1268: 0x403c8a20, 0x1269: 0x403c8c20, 0x126a: 0x403c8e20, 0x126b: 0x403c9020, - 0x126c: 0x403c9220, 0x126d: 0x403c9420, 0x126e: 0x403c9620, 0x126f: 0x403c9820, - 0x1270: 0x403c9c20, 0x1271: 0x403c9e20, 0x1272: 0x403ca020, 0x1273: 0x403ca220, - 0x1274: 0x403ca420, 0x1275: 0x403ca620, 0x1276: 0x403ca820, 0x1277: 0x403caa20, - 0x1278: 0x403cba20, 0x1279: 0x403cbc20, 0x127a: 0x403cbe20, 0x127b: 0x403cc020, - 0x127c: 0x403cc220, 0x127d: 0x403cc420, 0x127e: 0x403cc620, 0x127f: 0x403cc820, - // Block 0x4a, offset 0x1280 - 0x1280: 0x403ccc20, 0x1281: 0x403cce20, 0x1282: 0x403cd020, 0x1283: 0x403cd220, - 0x1284: 0x403cd420, 0x1285: 0x403cd620, 0x1286: 0x403cd820, 0x1287: 0x403cda20, - 0x1288: 0x403cdc20, 0x128a: 0x403cde20, 0x128b: 0x403ce020, - 0x128c: 0x403ce220, 0x128d: 0x403ce420, - 0x1290: 0x403ce620, 0x1291: 0x403ce820, 0x1292: 0x403cea20, 0x1293: 0x403cec20, - 0x1294: 0x403cee20, 0x1295: 0x403cf020, 0x1296: 0x403cf220, - 0x1298: 0x403cf420, 0x129a: 0x403cf620, 0x129b: 0x403cf820, - 0x129c: 0x403cfa20, 0x129d: 0x403cfc20, - 0x12a0: 0x403cfe20, 0x12a1: 0x403d0020, 0x12a2: 0x403d0220, 0x12a3: 0x403d0420, - 0x12a4: 0x403d0620, 0x12a5: 0x403d0820, 0x12a6: 0x403d0a20, 0x12a7: 0x403d0c20, - 0x12a8: 0x403d1820, 0x12a9: 0x403d1a20, 0x12aa: 0x403d1c20, 0x12ab: 0x403d1e20, - 0x12ac: 0x403d2020, 0x12ad: 0x403d2220, 0x12ae: 0x403d2420, 0x12af: 0x403d2620, - 0x12b0: 0x403d2820, 0x12b1: 0x403d2a20, 0x12b2: 0x403d2c20, 0x12b3: 0x403d2e20, - 0x12b4: 0x403d3020, 0x12b5: 0x403d3220, 0x12b6: 0x403d3420, 0x12b7: 0x403d3620, - 0x12b8: 0x403d3a20, 0x12b9: 0x403d3c20, 0x12ba: 0x403d3e20, 0x12bb: 0x403d4020, - 0x12bc: 0x403d4220, 0x12bd: 0x403d4420, 0x12be: 0x403d4620, 0x12bf: 0x403d4820, - // Block 0x4b, offset 0x12c0 - 0x12c0: 0x403d4c20, 0x12c1: 0x403d4e20, 0x12c2: 0x403d5020, 0x12c3: 0x403d5220, - 0x12c4: 0x403d5420, 0x12c5: 0x403d5620, 0x12c6: 0x403d5820, 0x12c7: 0x403d5a20, - 0x12c8: 0x403d5c20, 0x12ca: 0x403d5e20, 0x12cb: 0x403d6020, - 0x12cc: 0x403d6220, 0x12cd: 0x403d6420, - 0x12d0: 0x403d6620, 0x12d1: 0x403d6820, 0x12d2: 0x403d6a20, 0x12d3: 0x403d6c20, - 0x12d4: 0x403d6e20, 0x12d5: 0x403d7020, 0x12d6: 0x403d7220, 0x12d7: 0x403d7420, - 0x12d8: 0x403d7820, 0x12d9: 0x403d7a20, 0x12da: 0x403d7c20, 0x12db: 0x403d7e20, - 0x12dc: 0x403d8020, 0x12dd: 0x403d8220, 0x12de: 0x403d8420, 0x12df: 0x403d8620, - 0x12e0: 0x403d8a20, 0x12e1: 0x403d8c20, 0x12e2: 0x403d8e20, 0x12e3: 0x403d9020, - 0x12e4: 0x403d9220, 0x12e5: 0x403d9420, 0x12e6: 0x403d9620, 0x12e7: 0x403d9820, - 0x12e8: 0x403d9c20, 0x12e9: 0x403d9e20, 0x12ea: 0x403da020, 0x12eb: 0x403da220, - 0x12ec: 0x403da420, 0x12ed: 0x403da620, 0x12ee: 0x403da820, 0x12ef: 0x403daa20, - 0x12f0: 0x403dac20, 0x12f2: 0x403dae20, 0x12f3: 0x403db020, - 0x12f4: 0x403db220, 0x12f5: 0x403db420, - 0x12f8: 0x403db620, 0x12f9: 0x403db820, 0x12fa: 0x403dba20, 0x12fb: 0x403dbc20, - 0x12fc: 0x403dbe20, 0x12fd: 0x403dc020, 0x12fe: 0x403dc220, - // Block 0x4c, offset 0x1300 - 0x1300: 0x403dc420, 0x1302: 0x403dc620, 0x1303: 0x403dc820, - 0x1304: 0x403dca20, 0x1305: 0x403dcc20, - 0x1308: 0x403dce20, 0x1309: 0x403dd020, 0x130a: 0x403dd220, 0x130b: 0x403dd420, - 0x130c: 0x403dd620, 0x130d: 0x403dd820, 0x130e: 0x403dda20, 0x130f: 0x403ddc20, - 0x1310: 0x403dde20, 0x1311: 0x403de020, 0x1312: 0x403de220, 0x1313: 0x403de420, - 0x1314: 0x403de620, 0x1315: 0x403de820, 0x1316: 0x403dea20, - 0x1318: 0x403dec20, 0x1319: 0x403dee20, 0x131a: 0x403df020, 0x131b: 0x403df220, - 0x131c: 0x403df420, 0x131d: 0x403df620, 0x131e: 0x403df820, 0x131f: 0x403dfa20, - 0x1320: 0x403e0a20, 0x1321: 0x403e0c20, 0x1322: 0x403e0e20, 0x1323: 0x403e1020, - 0x1324: 0x403e1220, 0x1325: 0x403e1420, 0x1326: 0x403e1620, 0x1327: 0x403e1820, - 0x1328: 0x403e1a20, 0x1329: 0x403e1c20, 0x132a: 0x403e1e20, 0x132b: 0x403e2020, - 0x132c: 0x403e2220, 0x132d: 0x403e2420, 0x132e: 0x403e2620, 0x132f: 0x403e2820, - 0x1330: 0x403e2a20, 0x1331: 0x403e2c20, 0x1332: 0x403e2e20, 0x1333: 0x403e3020, - 0x1334: 0x403e3220, 0x1335: 0x403e3420, 0x1336: 0x403e3620, 0x1337: 0x403e3820, - 0x1338: 0x403e4820, 0x1339: 0x403e4a20, 0x133a: 0x403e4c20, 0x133b: 0x403e4e20, - 0x133c: 0x403e5020, 0x133d: 0x403e5220, 0x133e: 0x403e5420, 0x133f: 0x403e5620, - // Block 0x4d, offset 0x1340 - 0x1340: 0x403e5a20, 0x1341: 0x403e5c20, 0x1342: 0x403e5e20, 0x1343: 0x403e6020, - 0x1344: 0x403e6220, 0x1345: 0x403e6420, 0x1346: 0x403e6620, 0x1347: 0x403e6820, - 0x1348: 0x403e6c20, 0x1349: 0x403e6e20, 0x134a: 0x403e7020, 0x134b: 0x403e7220, - 0x134c: 0x403e7420, 0x134d: 0x403e7620, 0x134e: 0x403e7820, 0x134f: 0x403e7a20, - 0x1350: 0x403e7c20, 0x1352: 0x403e7e20, 0x1353: 0x403e8020, - 0x1354: 0x403e8220, 0x1355: 0x403e8420, - 0x1358: 0x403e8620, 0x1359: 0x403e8820, 0x135a: 0x403e8a20, 0x135b: 0x403e8c20, - 0x135c: 0x403e8e20, 0x135d: 0x403e9020, 0x135e: 0x403e9220, 0x135f: 0x403e9420, - 0x1360: 0x403e9e20, 0x1361: 0x403ea020, 0x1362: 0x403ea220, 0x1363: 0x403ea420, - 0x1364: 0x403ea620, 0x1365: 0x403ea820, 0x1366: 0x403eaa20, 0x1367: 0x403eac20, - 0x1368: 0x403eb020, 0x1369: 0x403eb220, 0x136a: 0x403eb420, 0x136b: 0x403eb620, - 0x136c: 0x403eb820, 0x136d: 0x403eba20, 0x136e: 0x403ebc20, 0x136f: 0x403ebe20, - 0x1370: 0x403ed020, 0x1371: 0x403ed220, 0x1372: 0x403ed420, 0x1373: 0x403ed620, - 0x1374: 0x403ed820, 0x1375: 0x403eda20, 0x1376: 0x403edc20, 0x1377: 0x403ede20, - 0x1378: 0x403ee220, 0x1379: 0x403ee420, 0x137a: 0x403ee620, 0x137b: 0x403ee820, - 0x137c: 0x403eea20, 0x137d: 0x403eec20, 0x137e: 0x403eee20, 0x137f: 0x403ef020, - // Block 0x4e, offset 0x1380 - 0x1380: 0x403f0020, 0x1381: 0x403f0220, 0x1382: 0x403f0420, 0x1383: 0x403f0620, - 0x1384: 0x403f0820, 0x1385: 0x403f0a20, 0x1386: 0x403f0c20, 0x1387: 0x403f0e20, - 0x1388: 0x403f1020, 0x1389: 0x403f1220, 0x138a: 0x403f1420, 0x138b: 0x403f1620, - 0x138c: 0x403f1820, 0x138d: 0x403f1a20, 0x138e: 0x403f1c20, 0x138f: 0x403f1e20, - 0x1390: 0x403f2820, 0x1391: 0x403f2a20, 0x1392: 0x403f2c20, 0x1393: 0x403f2e20, - 0x1394: 0x403f3020, 0x1395: 0x403f3220, 0x1396: 0x403f3420, 0x1397: 0x403f3620, - 0x1398: 0x403f4220, 0x1399: 0x403f4420, 0x139a: 0x403f4620, - 0x139d: 0xae60ee02, 0x139e: 0xae60ed02, 0x139f: 0xae60ec02, - 0x13a0: 0x40036220, 0x13a1: 0x40029c20, 0x13a2: 0x4002ee20, 0x13a3: 0x40029e20, - 0x13a4: 0x4002a020, 0x13a5: 0x4002a220, 0x13a6: 0x4002a420, 0x13a7: 0x4002d020, - 0x13a8: 0x40036420, 0x13a9: 0xe00001f2, 0x13aa: 0xe000030d, 0x13ab: 0xe00003e7, - 0x13ac: 0xe00004c2, 0x13ad: 0xe000058c, 0x13ae: 0xe0000657, 0x13af: 0xe00006ff, - 0x13b0: 0xe00007ab, 0x13b1: 0xe0000850, 0x13b2: 0x40286620, 0x13b3: 0x40286820, - 0x13b4: 0x40286a20, 0x13b5: 0x40286c20, 0x13b6: 0x40286e20, 0x13b7: 0x40287020, - 0x13b8: 0x40287220, 0x13b9: 0x40287420, 0x13ba: 0x40287620, 0x13bb: 0x40287820, - 0x13bc: 0x40287a20, - // Block 0x4f, offset 0x13c0 - 0x13c0: 0x403c7020, 0x13c1: 0x403c7220, 0x13c2: 0x403c7420, 0x13c3: 0x403c7620, - 0x13c4: 0x403d0e20, 0x13c5: 0x403d1020, 0x13c6: 0x403d1220, 0x13c7: 0x403d1420, - 0x13c8: 0x403f2020, 0x13c9: 0x403f2220, 0x13ca: 0x403f2420, 0x13cb: 0x403f2620, - 0x13cc: 0x403f3820, 0x13cd: 0x403f3a20, 0x13ce: 0x403f3c20, 0x13cf: 0x403f3e20, - 0x13d0: 0x4006a620, 0x13d1: 0x4006a820, 0x13d2: 0x4006aa20, 0x13d3: 0x4006ac20, - 0x13d4: 0x4006ae20, 0x13d5: 0x4006b020, 0x13d6: 0x4006b220, 0x13d7: 0x4006b420, - 0x13d8: 0x4006b620, 0x13d9: 0x4006b820, - 0x13e0: 0x40547620, 0x13e1: 0x40547820, 0x13e2: 0x40547a20, 0x13e3: 0x40547c20, - 0x13e4: 0x40547e20, 0x13e5: 0x40548020, 0x13e6: 0x40548220, 0x13e7: 0x40548420, - 0x13e8: 0x40548620, 0x13e9: 0x40548820, 0x13ea: 0x40548a20, 0x13eb: 0x40548c20, - 0x13ec: 0x40548e20, 0x13ed: 0x40549020, 0x13ee: 0x40549220, 0x13ef: 0x40549420, - 0x13f0: 0x40549620, 0x13f1: 0x40549820, 0x13f2: 0x40549a20, 0x13f3: 0x40549c20, - 0x13f4: 0x40549e20, 0x13f5: 0x4054a020, 0x13f6: 0x4054a220, 0x13f7: 0x4054a420, - 0x13f8: 0x4054a620, 0x13f9: 0x4054a820, 0x13fa: 0x4054aa20, 0x13fb: 0x4054ac20, - 0x13fc: 0x4054ae20, 0x13fd: 0x4054b020, 0x13fe: 0x4054b220, 0x13ff: 0x4054b420, - // Block 0x50, offset 0x1400 - 0x1400: 0x4054b620, 0x1401: 0x4054b820, 0x1402: 0x4054ba20, 0x1403: 0x4054bc20, - 0x1404: 0x4054be20, 0x1405: 0x4054c020, 0x1406: 0x4054c220, 0x1407: 0x4054c420, - 0x1408: 0x4054c620, 0x1409: 0x4054c820, 0x140a: 0x4054ca20, 0x140b: 0x4054cc20, - 0x140c: 0x4054ce20, 0x140d: 0x4054d020, 0x140e: 0x4054d220, 0x140f: 0x4054d420, - 0x1410: 0x4054d620, 0x1411: 0x4054d820, 0x1412: 0x4054da20, 0x1413: 0x4054dc20, - 0x1414: 0x4054de20, 0x1415: 0x4054e020, 0x1416: 0x4054e220, 0x1417: 0x4054e420, - 0x1418: 0x4054e620, 0x1419: 0x4054e820, 0x141a: 0x4054ea20, 0x141b: 0x4054ec20, - 0x141c: 0x4054ee20, 0x141d: 0x4054f020, 0x141e: 0x4054f220, 0x141f: 0x4054f420, - 0x1420: 0x4054f620, 0x1421: 0x4054f820, 0x1422: 0x4054fa20, 0x1423: 0x4054fc20, - 0x1424: 0x4054fe20, 0x1425: 0x40550020, 0x1426: 0x40550220, 0x1427: 0x40550420, - 0x1428: 0x40550620, 0x1429: 0x40550820, 0x142a: 0x40550a20, 0x142b: 0x40550c20, - 0x142c: 0x40550e20, 0x142d: 0x40551020, 0x142e: 0x40551220, 0x142f: 0x40551420, - 0x1430: 0x40551620, 0x1431: 0x40551820, 0x1432: 0x40551a20, 0x1433: 0x40551c20, - 0x1434: 0x40551e20, - // Block 0x51, offset 0x1440 - 0x1440: 0x40021e20, 0x1441: 0x40552020, 0x1442: 0x40552220, 0x1443: 0x40552420, - 0x1444: 0x40552620, 0x1445: 0x40552820, 0x1446: 0x40552a20, 0x1447: 0x40552c20, - 0x1448: 0x40552e20, 0x1449: 0x40553020, 0x144a: 0x40553220, 0x144b: 0x40553420, - 0x144c: 0x40553620, 0x144d: 0x40553820, 0x144e: 0x40553a20, 0x144f: 0x40553c20, - 0x1450: 0x40553e20, 0x1451: 0x40554020, 0x1452: 0x40554220, 0x1453: 0x40554420, - 0x1454: 0x40554620, 0x1455: 0x40554820, 0x1456: 0x40554a20, 0x1457: 0x40554c20, - 0x1458: 0x40554e20, 0x1459: 0x40555020, 0x145a: 0x40555220, 0x145b: 0x40555420, - 0x145c: 0x40555620, 0x145d: 0x40555820, 0x145e: 0x40555a20, 0x145f: 0x40555c20, - 0x1460: 0x40555e20, 0x1461: 0x40556020, 0x1462: 0x40556220, 0x1463: 0x40556420, - 0x1464: 0x40556620, 0x1465: 0x40556820, 0x1466: 0x40556a20, 0x1467: 0x40556c20, - 0x1468: 0x40556e20, 0x1469: 0x40557020, 0x146a: 0x40557220, 0x146b: 0x40557420, - 0x146c: 0x40557620, 0x146d: 0x40557820, 0x146e: 0x40557a20, 0x146f: 0x40557c20, - 0x1470: 0x40557e20, 0x1471: 0x40558020, 0x1472: 0x40558220, 0x1473: 0x40558420, - 0x1474: 0x40558620, 0x1475: 0x40558820, 0x1476: 0x40558a20, 0x1477: 0x40558c20, - 0x1478: 0x40558e20, 0x1479: 0x40559020, 0x147a: 0x40559220, 0x147b: 0x40559420, - 0x147c: 0x40559620, 0x147d: 0x40559820, 0x147e: 0x40559a20, 0x147f: 0x40559c20, - // Block 0x52, offset 0x1480 - 0x1480: 0x40559e20, 0x1481: 0x4055a020, 0x1482: 0x4055a220, 0x1483: 0x4055a420, - 0x1484: 0x4055a620, 0x1485: 0x4055a820, 0x1486: 0x4055aa20, 0x1487: 0x4055ac20, - 0x1488: 0x4055ae20, 0x1489: 0x4055b020, 0x148a: 0x4055b220, 0x148b: 0x4055b420, - 0x148c: 0x4055b620, 0x148d: 0x4055b820, 0x148e: 0x4055ba20, 0x148f: 0x4055bc20, - 0x1490: 0x4055be20, 0x1491: 0x4055c020, 0x1492: 0x4055c220, 0x1493: 0x4055c420, - 0x1494: 0x4055c620, 0x1495: 0x4055c820, 0x1496: 0x4055ca20, 0x1497: 0x4055cc20, - 0x1498: 0x4055ce20, 0x1499: 0x4055d020, 0x149a: 0x4055d220, 0x149b: 0x4055d420, - 0x149c: 0x4055d620, 0x149d: 0x4055d820, 0x149e: 0x4055da20, 0x149f: 0x4055dc20, - 0x14a0: 0x4055de20, 0x14a1: 0x4055e020, 0x14a2: 0x4055e220, 0x14a3: 0x4055e420, - 0x14a4: 0x4055e620, 0x14a5: 0x4055e820, 0x14a6: 0x4055ea20, 0x14a7: 0x4055ec20, - 0x14a8: 0x4055ee20, 0x14a9: 0x4055f020, 0x14aa: 0x4055f220, 0x14ab: 0x4055f420, - 0x14ac: 0x4055f620, 0x14ad: 0x4055f820, 0x14ae: 0x4055fa20, 0x14af: 0x4055fc20, - 0x14b0: 0x4055fe20, 0x14b1: 0x40560020, 0x14b2: 0x40560220, 0x14b3: 0x40560420, - 0x14b4: 0x40560620, 0x14b5: 0x40560820, 0x14b6: 0x40560a20, 0x14b7: 0x40560c20, - 0x14b8: 0x40560e20, 0x14b9: 0x40561020, 0x14ba: 0x40561220, 0x14bb: 0x40561420, - 0x14bc: 0x40561620, 0x14bd: 0x40561820, 0x14be: 0x40561a20, 0x14bf: 0x40561c20, - // Block 0x53, offset 0x14c0 - 0x14c0: 0x40561e20, 0x14c1: 0x40562020, 0x14c2: 0x40562220, 0x14c3: 0x40562420, - 0x14c4: 0x40562620, 0x14c5: 0x40562820, 0x14c6: 0x40562a20, 0x14c7: 0x40562c20, - 0x14c8: 0x40562e20, 0x14c9: 0x40563020, 0x14ca: 0x40563220, 0x14cb: 0x40563420, - 0x14cc: 0x40563620, 0x14cd: 0x40563820, 0x14ce: 0x40563a20, 0x14cf: 0x40563c20, - 0x14d0: 0x40563e20, 0x14d1: 0x40564020, 0x14d2: 0x40564220, 0x14d3: 0x40564420, - 0x14d4: 0x40564620, 0x14d5: 0x40564820, 0x14d6: 0x40564a20, 0x14d7: 0x40564c20, - 0x14d8: 0x40564e20, 0x14d9: 0x40565020, 0x14da: 0x40565220, 0x14db: 0x40565420, - 0x14dc: 0x40565620, 0x14dd: 0x40565820, 0x14de: 0x40565a20, 0x14df: 0x40565c20, - 0x14e0: 0x40565e20, 0x14e1: 0x40566020, 0x14e2: 0x40566220, 0x14e3: 0x40566420, - 0x14e4: 0x40566620, 0x14e5: 0x40566820, 0x14e6: 0x40566a20, 0x14e7: 0x40566c20, - 0x14e8: 0x40566e20, 0x14e9: 0x40567020, 0x14ea: 0x40567220, 0x14eb: 0x40567420, - 0x14ec: 0x40567620, 0x14ed: 0x40567820, 0x14ee: 0x40567a20, 0x14ef: 0x40567c20, - 0x14f0: 0x40567e20, 0x14f1: 0x40568020, 0x14f2: 0x40568220, 0x14f3: 0x40568420, - 0x14f4: 0x40568620, 0x14f5: 0x40568820, 0x14f6: 0x40568a20, 0x14f7: 0x40568c20, - 0x14f8: 0x40568e20, 0x14f9: 0x40569020, 0x14fa: 0x40569220, 0x14fb: 0x40569420, - 0x14fc: 0x40569620, 0x14fd: 0x40569820, 0x14fe: 0x40569a20, 0x14ff: 0x40569c20, - // Block 0x54, offset 0x1500 - 0x1500: 0x40569e20, 0x1501: 0x4056a020, 0x1502: 0x4056a220, 0x1503: 0x4056a420, - 0x1504: 0x4056a620, 0x1505: 0x4056a820, 0x1506: 0x4056aa20, 0x1507: 0x4056ac20, - 0x1508: 0x4056ae20, 0x1509: 0x4056b020, 0x150a: 0x4056b220, 0x150b: 0x4056b420, - 0x150c: 0x4056b620, 0x150d: 0x4056b820, 0x150e: 0x4056ba20, 0x150f: 0x4056bc20, - 0x1510: 0x4056be20, 0x1511: 0x4056c020, 0x1512: 0x4056c220, 0x1513: 0x4056c420, - 0x1514: 0x4056c620, 0x1515: 0x4056c820, 0x1516: 0x4056ca20, 0x1517: 0x4056cc20, - 0x1518: 0x4056ce20, 0x1519: 0x4056d020, 0x151a: 0x4056d220, 0x151b: 0x4056d420, - 0x151c: 0x4056d620, 0x151d: 0x4056d820, 0x151e: 0x4056da20, 0x151f: 0x4056dc20, - 0x1520: 0x4056de20, 0x1521: 0x4056e020, 0x1522: 0x4056e220, 0x1523: 0x4056e420, - 0x1524: 0x4056e620, 0x1525: 0x4056e820, 0x1526: 0x4056ea20, 0x1527: 0x4056ec20, - 0x1528: 0x4056ee20, 0x1529: 0x4056f020, 0x152a: 0x4056f220, 0x152b: 0x4056f420, - 0x152c: 0x4056f620, 0x152d: 0x4056f820, 0x152e: 0x4056fa20, 0x152f: 0x4056fc20, - 0x1530: 0x4056fe20, 0x1531: 0x40570020, 0x1532: 0x40570220, 0x1533: 0x40570420, - 0x1534: 0x40570620, 0x1535: 0x40570820, 0x1536: 0x40570a20, 0x1537: 0x40570c20, - 0x1538: 0x40570e20, 0x1539: 0x40571020, 0x153a: 0x40571220, 0x153b: 0x40571420, - 0x153c: 0x40571620, 0x153d: 0x40571820, 0x153e: 0x40571a20, 0x153f: 0x40571c20, - // Block 0x55, offset 0x1540 - 0x1540: 0x40571e20, 0x1541: 0x40572020, 0x1542: 0x40572220, 0x1543: 0x40572420, - 0x1544: 0x40572620, 0x1545: 0x40572820, 0x1546: 0x40572a20, 0x1547: 0x40572c20, - 0x1548: 0x40572e20, 0x1549: 0x40573020, 0x154a: 0x40573220, 0x154b: 0x40573420, - 0x154c: 0x40573620, 0x154d: 0x40573820, 0x154e: 0x40573a20, 0x154f: 0x40573c20, - 0x1550: 0x40573e20, 0x1551: 0x40574020, 0x1552: 0x40574220, 0x1553: 0x40574420, - 0x1554: 0x40574620, 0x1555: 0x40574820, 0x1556: 0x40574a20, 0x1557: 0x40574c20, - 0x1558: 0x40574e20, 0x1559: 0x40575020, 0x155a: 0x40575220, 0x155b: 0x40575420, - 0x155c: 0x40575620, 0x155d: 0x40575820, 0x155e: 0x40575a20, 0x155f: 0x40575c20, - 0x1560: 0x40575e20, 0x1561: 0x40576020, 0x1562: 0x40576220, 0x1563: 0x40576420, - 0x1564: 0x40576620, 0x1565: 0x40576820, 0x1566: 0x40576a20, 0x1567: 0x40576c20, - 0x1568: 0x40576e20, 0x1569: 0x40577020, 0x156a: 0x40577220, 0x156b: 0x40577420, - 0x156c: 0x40577620, 0x156d: 0x40577820, 0x156e: 0x40577a20, 0x156f: 0x40577c20, - 0x1570: 0x40577e20, 0x1571: 0x40578020, 0x1572: 0x40578220, 0x1573: 0x40578420, - 0x1574: 0x40578620, 0x1575: 0x40578820, 0x1576: 0x40578a20, 0x1577: 0x40578c20, - 0x1578: 0x40578e20, 0x1579: 0x40579020, 0x157a: 0x40579220, 0x157b: 0x40579420, - 0x157c: 0x40579620, 0x157d: 0x40579820, 0x157e: 0x40579a20, 0x157f: 0x40579c20, - // Block 0x56, offset 0x1580 - 0x1580: 0x40579e20, 0x1581: 0x4057a020, 0x1582: 0x4057a220, 0x1583: 0x4057a420, - 0x1584: 0x4057a620, 0x1585: 0x4057a820, 0x1586: 0x4057aa20, 0x1587: 0x4057ac20, - 0x1588: 0x4057ae20, 0x1589: 0x4057b020, 0x158a: 0x4057b220, 0x158b: 0x4057b420, - 0x158c: 0x4057b620, 0x158d: 0x4057b820, 0x158e: 0x4057ba20, 0x158f: 0x4057bc20, - 0x1590: 0x4057be20, 0x1591: 0x4057c020, 0x1592: 0x4057c220, 0x1593: 0x4057c420, - 0x1594: 0x4057c620, 0x1595: 0x4057c820, 0x1596: 0x4057ca20, 0x1597: 0x4057cc20, - 0x1598: 0x4057ce20, 0x1599: 0x4057d020, 0x159a: 0x4057d220, 0x159b: 0x4057d420, - 0x159c: 0x4057d620, 0x159d: 0x4057d820, 0x159e: 0x4057da20, 0x159f: 0x4057dc20, - 0x15a0: 0x4057de20, 0x15a1: 0x4057e020, 0x15a2: 0x4057e220, 0x15a3: 0x4057e420, - 0x15a4: 0x4057e620, 0x15a5: 0x4057e820, 0x15a6: 0x4057ea20, 0x15a7: 0x4057ec20, - 0x15a8: 0x4057ee20, 0x15a9: 0x4057f020, 0x15aa: 0x4057f220, 0x15ab: 0x4057f420, - 0x15ac: 0x4057f620, 0x15ad: 0x4057f820, 0x15ae: 0x4057fa20, 0x15af: 0x4057fc20, - 0x15b0: 0x4057fe20, 0x15b1: 0x40580020, 0x15b2: 0x40580220, 0x15b3: 0x40580420, - 0x15b4: 0x40580620, 0x15b5: 0x40580820, 0x15b6: 0x40580a20, 0x15b7: 0x40580c20, - 0x15b8: 0x40580e20, 0x15b9: 0x40581020, 0x15ba: 0x40581220, 0x15bb: 0x40581420, - 0x15bc: 0x40587a20, 0x15bd: 0x40581620, 0x15be: 0x40581a20, 0x15bf: 0x40581c20, - // Block 0x57, offset 0x15c0 - 0x15c0: 0x40581e20, 0x15c1: 0x40582020, 0x15c2: 0x40582220, 0x15c3: 0x40582420, - 0x15c4: 0x40582620, 0x15c5: 0x40582820, 0x15c6: 0x40582a20, 0x15c7: 0x40582c20, - 0x15c8: 0x40582e20, 0x15c9: 0x40583020, 0x15ca: 0x40583220, 0x15cb: 0x40583420, - 0x15cc: 0x40583620, 0x15cd: 0x40583820, 0x15ce: 0x40583c20, 0x15cf: 0x40583e20, - 0x15d0: 0x40584020, 0x15d1: 0x40584220, 0x15d2: 0x40584420, 0x15d3: 0x40584620, - 0x15d4: 0x40584820, 0x15d5: 0x40584a20, 0x15d6: 0x40585820, 0x15d7: 0x40585a20, - 0x15d8: 0x40585c20, 0x15d9: 0x40585e20, 0x15da: 0x40586020, 0x15db: 0x40586220, - 0x15dc: 0x40586420, 0x15dd: 0x40586620, 0x15de: 0x40586820, 0x15df: 0x40586a20, - 0x15e0: 0x40586c20, 0x15e1: 0x40586e20, 0x15e2: 0x40587020, 0x15e3: 0x40587220, - 0x15e4: 0x40587420, 0x15e5: 0x40587620, 0x15e6: 0x40587820, 0x15e7: 0x40587c20, - 0x15e8: 0x40587e20, 0x15e9: 0x40588020, 0x15ea: 0x40588220, 0x15eb: 0x40588420, - 0x15ec: 0x40588620, 0x15ed: 0x40588820, 0x15ee: 0x40588a20, 0x15ef: 0x40588c20, - 0x15f0: 0x40588e20, 0x15f1: 0x40589020, 0x15f2: 0x40589220, 0x15f3: 0x40589420, - 0x15f4: 0x40589620, 0x15f5: 0x40589820, 0x15f6: 0x40589a20, 0x15f7: 0x40589c20, - 0x15f8: 0x40589e20, 0x15f9: 0x4058a020, 0x15fa: 0x4058a220, 0x15fb: 0x4058a420, - 0x15fc: 0x4058a620, 0x15fd: 0x4058a820, 0x15fe: 0x4058aa20, 0x15ff: 0x4058ac20, - // Block 0x58, offset 0x1600 - 0x1600: 0x4058ae20, 0x1601: 0x4058b020, 0x1602: 0x4058b220, 0x1603: 0x4058b420, - 0x1604: 0x4058b620, 0x1605: 0x4058b820, 0x1606: 0x4058ba20, 0x1607: 0x4058bc20, - 0x1608: 0x4058be20, 0x1609: 0x4058c020, 0x160a: 0x4058c220, 0x160b: 0x4058c420, - 0x160c: 0x4058c620, 0x160d: 0x4058c820, 0x160e: 0x4058ca20, 0x160f: 0x4058cc20, - 0x1610: 0x4058ce20, 0x1611: 0x4058d020, 0x1612: 0x4058d220, 0x1613: 0x4058d420, - 0x1614: 0x4058d620, 0x1615: 0x4058d820, 0x1616: 0x4058da20, 0x1617: 0x4058dc20, - 0x1618: 0x4058de20, 0x1619: 0x4058e020, 0x161a: 0x4058e220, 0x161b: 0x4058e420, - 0x161c: 0x4058e620, 0x161d: 0x4058e820, 0x161e: 0x4058ea20, 0x161f: 0x4058ec20, - 0x1620: 0x4058ee20, 0x1621: 0x4058f020, 0x1622: 0x4058f220, 0x1623: 0x4058f420, - 0x1624: 0x4058f620, 0x1625: 0x4058f820, 0x1626: 0x4058fa20, 0x1627: 0x4058fc20, - 0x1628: 0x4058fe20, 0x1629: 0x40590020, 0x162a: 0x40590220, 0x162b: 0x40590420, - 0x162c: 0x40590620, 0x162d: 0x40590820, 0x162e: 0x40590a20, 0x162f: 0x40590c20, - 0x1630: 0x40590e20, 0x1631: 0x40591020, 0x1632: 0x40591220, 0x1633: 0x40591420, - 0x1634: 0x40591620, 0x1635: 0x40591820, 0x1636: 0x40591a20, 0x1637: 0x40591c20, - 0x1638: 0x40591e20, 0x1639: 0x40592020, 0x163a: 0x40592220, 0x163b: 0x40592420, - 0x163c: 0x40592620, 0x163d: 0x40592820, 0x163e: 0x40592a20, 0x163f: 0x40592c20, - // Block 0x59, offset 0x1640 - 0x1640: 0x40592e20, 0x1641: 0x40593020, 0x1642: 0x40593220, 0x1643: 0x40593420, - 0x1644: 0x40593620, 0x1645: 0x40593820, 0x1646: 0x40593a20, 0x1647: 0x40593c20, - 0x1648: 0x40593e20, 0x1649: 0x40594020, 0x164a: 0x40594220, 0x164b: 0x40594420, - 0x164c: 0x40594620, 0x164d: 0x40594820, 0x164e: 0x40594a20, 0x164f: 0x40594c20, - 0x1650: 0x40594e20, 0x1651: 0x40595020, 0x1652: 0x40595220, 0x1653: 0x40595420, - 0x1654: 0x40595620, 0x1655: 0x40595820, 0x1656: 0x40595a20, 0x1657: 0x40595c20, - 0x1658: 0x40595e20, 0x1659: 0x40596020, 0x165a: 0x40596220, 0x165b: 0x40596420, - 0x165c: 0x40596620, 0x165d: 0x40596820, 0x165e: 0x40596a20, 0x165f: 0x40596c20, - 0x1660: 0x40596e20, 0x1661: 0x40597020, 0x1662: 0x40597220, 0x1663: 0x40597420, - 0x1664: 0x40597620, 0x1665: 0x40597820, 0x1666: 0x40597a20, 0x1667: 0x40597c20, - 0x1668: 0x40597e20, 0x1669: 0x40598020, 0x166a: 0x40598220, 0x166b: 0x40598420, - 0x166c: 0x40598620, 0x166d: 0x40598820, 0x166e: 0x40598a20, 0x166f: 0x40598c20, - 0x1670: 0x40598e20, 0x1671: 0x40599020, 0x1672: 0x40599220, 0x1673: 0x40599420, - 0x1674: 0x40599620, 0x1675: 0x40599820, 0x1676: 0x40599a20, 0x1677: 0x40599c20, - 0x1678: 0x40599e20, 0x1679: 0x4059a020, 0x167a: 0x4059a220, 0x167b: 0x4059a420, - 0x167c: 0x4059a620, 0x167d: 0x4059a820, 0x167e: 0x4059aa20, 0x167f: 0x4059ac20, - // Block 0x5a, offset 0x1680 - 0x1680: 0x4059ae20, 0x1681: 0x4059b020, 0x1682: 0x4059b220, 0x1683: 0x4059b420, - 0x1684: 0x4059b620, 0x1685: 0x4059b820, 0x1686: 0x4059ba20, 0x1687: 0x4059bc20, - 0x1688: 0x4059be20, 0x1689: 0x4059c020, 0x168a: 0x4059c220, 0x168b: 0x4059c420, - 0x168c: 0x4059c620, 0x168d: 0x4059c820, 0x168e: 0x4059ca20, 0x168f: 0x4059cc20, - 0x1690: 0x4059ce20, 0x1691: 0x4059d020, 0x1692: 0x4059d220, 0x1693: 0x4059d420, - 0x1694: 0x4059d620, 0x1695: 0x4059d820, 0x1696: 0x4059da20, 0x1697: 0x4059dc20, - 0x1698: 0x4059de20, 0x1699: 0x4059e020, 0x169a: 0x4059e220, 0x169b: 0x4059e420, - 0x169c: 0x4059e620, 0x169d: 0x4059e820, 0x169e: 0x4059ea20, 0x169f: 0x4059ec20, - 0x16a0: 0x4059ee20, 0x16a1: 0x4059f020, 0x16a2: 0x4059f220, 0x16a3: 0x4059f420, - 0x16a4: 0x4059f620, 0x16a5: 0x4059f820, 0x16a6: 0x4059fa20, 0x16a7: 0x4059fc20, - 0x16a8: 0x4059fe20, 0x16a9: 0x405a0020, 0x16aa: 0x405a0220, 0x16ab: 0x405a0420, - 0x16ac: 0x405a0620, 0x16ad: 0x4005d420, 0x16ae: 0x4002f420, 0x16af: 0x40581820, - 0x16b0: 0x40583a20, 0x16b1: 0x40584c20, 0x16b2: 0x40584e20, 0x16b3: 0x40585020, - 0x16b4: 0x40585220, 0x16b5: 0x40585420, 0x16b6: 0x40585620, 0x16b7: 0x405a0820, - 0x16b8: 0x405a0a20, 0x16b9: 0x405a0c20, 0x16ba: 0x405a0e20, 0x16bb: 0x405a1020, - 0x16bc: 0x405a1220, 0x16bd: 0x405a1420, 0x16be: 0x405a1620, 0x16bf: 0x405a1820, - // Block 0x5b, offset 0x16c0 - 0x16c0: 0x00021284, 0x16c1: 0x405aa620, 0x16c2: 0x405aa820, 0x16c3: 0x405aaa20, - 0x16c4: 0x405aac20, 0x16c5: 0x405aae20, 0x16c6: 0x405ab020, 0x16c7: 0x405ab220, - 0x16c8: 0x405ab420, 0x16c9: 0x405ab620, 0x16ca: 0x405ab820, 0x16cb: 0x405aba20, - 0x16cc: 0x405abc20, 0x16cd: 0x405abe20, 0x16ce: 0x405ac020, 0x16cf: 0x405ac220, - 0x16d0: 0x405ac420, 0x16d1: 0x405ac620, 0x16d2: 0x405ac820, 0x16d3: 0x405aca20, - 0x16d4: 0x405acc20, 0x16d5: 0x405ace20, 0x16d6: 0x405ad020, 0x16d7: 0x405ad220, - 0x16d8: 0x405ad420, 0x16d9: 0x405ad620, 0x16da: 0x405ad820, 0x16db: 0x40040820, - 0x16dc: 0x40040a20, - 0x16e0: 0x405ada20, 0x16e1: 0xe000202d, 0x16e2: 0x405adc20, 0x16e3: 0x405b1420, - 0x16e4: 0xe0002030, 0x16e5: 0xe0002033, 0x16e6: 0x405ade20, 0x16e7: 0xe0002036, - 0x16e8: 0x405ae020, 0x16e9: 0xe000203c, 0x16ea: 0x405b1020, 0x16eb: 0x405b1220, - 0x16ec: 0xe000203f, 0x16ed: 0xe0002042, 0x16ee: 0xe0002045, 0x16ef: 0x405ae220, - 0x16f0: 0x405ae420, 0x16f1: 0x405ae620, 0x16f2: 0x405ae820, 0x16f3: 0xe0002048, - 0x16f4: 0xe000204b, 0x16f5: 0xe000204e, 0x16f6: 0xe0002051, 0x16f7: 0x405aea20, - 0x16f8: 0x405b1a20, 0x16f9: 0x405aec20, 0x16fa: 0x405aee20, 0x16fb: 0xe0002057, - 0x16fc: 0xe000205a, 0x16fd: 0xe000205d, 0x16fe: 0x405af020, 0x16ff: 0xe0002060, - // Block 0x5c, offset 0x1700 - 0x1700: 0xe0002063, 0x1701: 0x405af220, 0x1702: 0xe0002066, 0x1703: 0x405af420, - 0x1704: 0xe0002069, 0x1705: 0x405af620, 0x1706: 0xe000206c, 0x1707: 0x405af820, - 0x1708: 0x405afa20, 0x1709: 0x405afc20, 0x170a: 0x405afe20, 0x170b: 0xe0002075, - 0x170c: 0xe000207b, 0x170d: 0xe000207e, 0x170e: 0xe0002081, 0x170f: 0x405b0020, - 0x1710: 0xe0002084, 0x1711: 0xe0002087, 0x1712: 0x405b0220, 0x1713: 0xe000208a, - 0x1714: 0xe000208d, 0x1715: 0xe0002072, 0x1716: 0x405b0420, 0x1717: 0x405b0620, - 0x1718: 0xe0002090, 0x1719: 0xe0002093, 0x171a: 0x405b0820, 0x171b: 0xe000209b, - 0x171c: 0x405b0a20, 0x171d: 0xe000209e, 0x171e: 0x405b0c20, 0x171f: 0x405b0e20, - 0x1720: 0x405b1620, 0x1721: 0x405b1e20, 0x1722: 0x405b2020, 0x1723: 0x405b1820, - 0x1724: 0x405b1c20, 0x1725: 0x405b2220, 0x1726: 0x405b2420, 0x1727: 0xe00020a1, - 0x1728: 0xe00020a4, 0x1729: 0xe0002054, 0x172a: 0xe0002078, 0x172b: 0x4002b220, - 0x172c: 0x4002b420, 0x172d: 0x4002b620, 0x172e: 0xe000206f, 0x172f: 0xe0002096, - 0x1730: 0xe0002039, - // Block 0x5d, offset 0x1740 - 0x1740: 0x404c7620, 0x1741: 0x404c7820, 0x1742: 0x404c7a20, 0x1743: 0x404c7c20, - 0x1744: 0x404c7e20, 0x1745: 0x404c8020, 0x1746: 0x404c8220, 0x1747: 0x404c8420, - 0x1748: 0x404c8620, 0x1749: 0x404c8820, 0x174a: 0x404c8a20, 0x174b: 0x404c8c20, - 0x174c: 0x404c8e20, 0x174e: 0x404c9020, 0x174f: 0x404c9220, - 0x1750: 0x404c9420, 0x1751: 0x404c9620, 0x1752: 0x404c9820, 0x1753: 0x404c9a20, - 0x1754: 0x8209264e, - 0x1760: 0x404c9e20, 0x1761: 0x404ca020, 0x1762: 0x404ca220, 0x1763: 0x404ca420, - 0x1764: 0x404ca620, 0x1765: 0x404ca820, 0x1766: 0x404caa20, 0x1767: 0x404cac20, - 0x1768: 0x404cae20, 0x1769: 0x404cb020, 0x176a: 0x404cb220, 0x176b: 0x404cb420, - 0x176c: 0x404cb620, 0x176d: 0x404cb820, 0x176e: 0x404cba20, 0x176f: 0x404cbc20, - 0x1770: 0x404cbe20, 0x1771: 0x404cc020, 0x1772: 0x404cc220, 0x1773: 0x404cc420, - 0x1774: 0x82092663, 0x1775: 0x40031c20, 0x1776: 0x40031e20, - // Block 0x5e, offset 0x1780 - 0x1780: 0x404cc820, 0x1781: 0x404cca20, 0x1782: 0x404ccc20, 0x1783: 0x404cce20, - 0x1784: 0x404cd020, 0x1785: 0x404cd220, 0x1786: 0x404cd420, 0x1787: 0x404cd620, - 0x1788: 0x404cd820, 0x1789: 0x404cda20, 0x178a: 0x404cdc20, 0x178b: 0x404cde20, - 0x178c: 0x404ce020, 0x178d: 0x404ce220, 0x178e: 0x404ce420, 0x178f: 0x404ce620, - 0x1790: 0x404ce820, 0x1791: 0x404cea20, 0x1792: 0x404cec20, 0x1793: 0x404cee20, - 0x17a0: 0x404cf020, 0x17a1: 0x404cf220, 0x17a2: 0x404cf420, 0x17a3: 0x404cf620, - 0x17a4: 0x404cf820, 0x17a5: 0x404cfa20, 0x17a6: 0x404cfc20, 0x17a7: 0x404cfe20, - 0x17a8: 0x404d0020, 0x17a9: 0x404d0220, 0x17aa: 0x404d0420, 0x17ab: 0x404d0620, - 0x17ac: 0x404d0820, 0x17ae: 0x404d0a20, 0x17af: 0x404d0c20, - 0x17b0: 0x404d0e20, 0x17b2: 0x404d1020, 0x17b3: 0x404d1220, - // Block 0x5f, offset 0x17c0 - 0x17c0: 0x404fa420, 0x17c1: 0x404fa620, 0x17c2: 0x404fa820, 0x17c3: 0x404faa20, - 0x17c4: 0x404fac20, 0x17c5: 0x404fae20, 0x17c6: 0x404fb020, 0x17c7: 0x404fb220, - 0x17c8: 0x404fb420, 0x17c9: 0x404fb620, 0x17ca: 0x404fb820, 0x17cb: 0x404fba20, - 0x17cc: 0x404fbc20, 0x17cd: 0x404fbe20, 0x17ce: 0x404fc020, 0x17cf: 0x404fc220, - 0x17d0: 0x404fc420, 0x17d1: 0x404fc620, 0x17d2: 0x404fc820, 0x17d3: 0x404fca20, - 0x17d4: 0x404fcc20, 0x17d5: 0x404fce20, 0x17d6: 0x404fd020, 0x17d7: 0x404fd220, - 0x17d8: 0x404fd420, 0x17d9: 0x404fd620, 0x17da: 0x404fd820, 0x17db: 0x404fda20, - 0x17dc: 0x404fdc20, 0x17dd: 0x404fde20, 0x17de: 0x404fe020, 0x17df: 0x404fe220, - 0x17e0: 0x404fe420, 0x17e1: 0x404fe620, 0x17e2: 0x404fe820, 0x17e3: 0x404fec20, - 0x17e4: 0x404fee20, 0x17e5: 0x404ff020, 0x17e6: 0x404ff220, 0x17e7: 0x404ff420, - 0x17e8: 0x404ff620, 0x17e9: 0x404ff820, 0x17ea: 0x404ffa20, 0x17eb: 0x404ffc20, - 0x17ec: 0x404ffe20, 0x17ed: 0x40500020, 0x17ee: 0x40500220, 0x17ef: 0x40500420, - 0x17f0: 0x40500620, 0x17f1: 0x40500820, 0x17f2: 0x40500a20, 0x17f3: 0x40500c20, - 0x17f4: 0xa0000000, 0x17f5: 0xa0000000, 0x17f6: 0x40500e20, 0x17f7: 0x40501020, - 0x17f8: 0x40501220, 0x17f9: 0x40501420, 0x17fa: 0x40501620, 0x17fb: 0x40501820, - 0x17fc: 0x40501a20, 0x17fd: 0x40501c20, 0x17fe: 0x40501e20, 0x17ff: 0x40502020, - // Block 0x60, offset 0x1800 - 0x1800: 0x40502220, 0x1801: 0x40502420, 0x1802: 0x40502620, 0x1803: 0x40502820, - 0x1804: 0x40502a20, 0x1805: 0x40502c20, 0x1806: 0xa000f302, 0x1807: 0xa000f402, - 0x1808: 0xa0011402, 0x1809: 0xa0011502, 0x180a: 0xa0011602, 0x180b: 0xa0005f02, - 0x180c: 0xa0005f02, 0x180d: 0xa0005f02, 0x180e: 0xa0005f02, 0x180f: 0xa0005f02, - 0x1810: 0xa0005f02, 0x1811: 0xa0005f02, 0x1812: 0x82092817, 0x1813: 0xa0000000, - 0x1814: 0x40032620, 0x1815: 0x40032820, 0x1816: 0x4002ac20, 0x1817: 0x4027bc20, - 0x1818: 0x4005bc20, 0x1819: 0x4005be20, 0x181a: 0x4005c020, 0x181b: 0x4027f620, - 0x181c: 0x404fea20, 0x181d: 0xae605f02, - 0x1820: 0xe00001b5, 0x1821: 0xe0000249, 0x1822: 0xe0000361, 0x1823: 0xe000043b, - 0x1824: 0xe0000510, 0x1825: 0xe00005da, 0x1826: 0xe00006a5, 0x1827: 0xe000074d, - 0x1828: 0xe00007f9, 0x1829: 0xe000089e, - 0x1830: 0xe00001b8, 0x1831: 0xe000024c, 0x1832: 0xe0000364, 0x1833: 0xe000043e, - 0x1834: 0xe0000513, 0x1835: 0xe00005dd, 0x1836: 0xe00006a8, 0x1837: 0xe0000750, - 0x1838: 0xe00007fc, 0x1839: 0xe00008a1, - // Block 0x61, offset 0x1840 - 0x1840: 0x40056a20, 0x1841: 0x4002e620, 0x1842: 0x40025220, 0x1843: 0x4002f020, - 0x1844: 0x4002a620, 0x1845: 0x4002a820, 0x1846: 0x40022220, 0x1847: 0x40022420, - 0x1848: 0x40025420, 0x1849: 0x4002f220, 0x184a: 0xa0000000, 0x184b: 0xa0000000, - 0x184c: 0xa0000000, 0x184d: 0xa0000000, 0x184e: 0x40020c20, - 0x1850: 0xe00001c7, 0x1851: 0xe000025b, 0x1852: 0xe0000373, 0x1853: 0xe000044d, - 0x1854: 0xe0000522, 0x1855: 0xe00005ec, 0x1856: 0xe00006b7, 0x1857: 0xe000075f, - 0x1858: 0xe000080b, 0x1859: 0xe00008b0, - 0x1860: 0x40533820, 0x1861: 0x40533c20, 0x1862: 0x40534220, 0x1863: 0x40534e20, - 0x1864: 0x40535220, 0x1865: 0x40535820, 0x1866: 0x40535c20, 0x1867: 0x40536220, - 0x1868: 0x40536420, 0x1869: 0x40536620, 0x186a: 0x40537020, 0x186b: 0x40537420, - 0x186c: 0x40537a20, 0x186d: 0x40537e20, 0x186e: 0x40538820, 0x186f: 0x40538c20, - 0x1870: 0x40538e20, 0x1871: 0x40539020, 0x1872: 0x40539e20, 0x1873: 0x4053a420, - 0x1874: 0x4053aa20, 0x1875: 0x4053b420, 0x1876: 0x4053bc20, 0x1877: 0x4053c220, - 0x1878: 0x4053c620, 0x1879: 0x4053ca20, 0x187a: 0x4053d020, 0x187b: 0x4053da20, - 0x187c: 0x4053dc20, 0x187d: 0x4053e220, 0x187e: 0x4053ea20, 0x187f: 0x4053f020, - // Block 0x62, offset 0x1880 - 0x1880: 0x4053f220, 0x1881: 0x4053f420, 0x1882: 0x4053f620, 0x1883: 0x40533620, - 0x1884: 0x40533e20, 0x1885: 0x40534420, 0x1886: 0x40535020, 0x1887: 0x40535420, - 0x1888: 0x40535a20, 0x1889: 0x40535e20, 0x188a: 0x40536820, 0x188b: 0x40537220, - 0x188c: 0x40537620, 0x188d: 0x40537c20, 0x188e: 0x40538020, 0x188f: 0x40538a20, - 0x1890: 0x4053a020, 0x1891: 0x4053a620, 0x1892: 0x4053ac20, 0x1893: 0x4053b620, - 0x1894: 0x4053de20, 0x1895: 0x4053be20, 0x1896: 0x4053c820, 0x1897: 0x4053d220, - 0x1898: 0x4053e620, 0x1899: 0x4053ec20, 0x189a: 0x4053f820, 0x189b: 0x4053fa20, - 0x189c: 0x4053b020, 0x189d: 0x40534020, 0x189e: 0x40534620, 0x189f: 0x40534c20, - 0x18a0: 0x40536020, 0x18a1: 0x40535620, 0x18a2: 0x40536a20, 0x18a3: 0x4053d420, - 0x18a4: 0x40538220, 0x18a5: 0x40538620, 0x18a6: 0x40537820, 0x18a7: 0x40539220, - 0x18a8: 0x4053a220, 0x18a9: 0x4053a820, 0x18aa: 0x4053b820, 0x18ab: 0x4053cc20, - 0x18ac: 0x4053e820, 0x18ad: 0x4053ee20, 0x18ae: 0x4053e020, 0x18af: 0x4053e420, - 0x18b0: 0x4053fc20, 0x18b1: 0x4053ae20, 0x18b2: 0x4053c020, 0x18b3: 0x40534820, - 0x18b4: 0x4053d620, 0x18b5: 0x4053c420, 0x18b6: 0x4053ce20, 0x18b7: 0x4053ba20, - // Block 0x63, offset 0x18c0 - 0x18c0: 0x40532820, 0x18c1: 0x40532a20, 0x18c2: 0x40532c20, 0x18c3: 0x40532e20, - 0x18c4: 0x40533020, 0x18c5: 0x40533220, 0x18c6: 0x40533420, 0x18c7: 0x40533a20, - 0x18c8: 0x40534a20, 0x18c9: 0x4053d820, 0x18ca: 0x40536c20, 0x18cb: 0x4053b220, - 0x18cc: 0x4053fe20, 0x18cd: 0x40540220, 0x18ce: 0x40540420, 0x18cf: 0x40540820, - 0x18d0: 0x40540a20, 0x18d1: 0x40541020, 0x18d2: 0x40541420, 0x18d3: 0x40541620, - 0x18d4: 0x40541a20, 0x18d5: 0x40541e20, 0x18d6: 0x40542220, 0x18d7: 0x40542420, - 0x18d8: 0x40540c20, 0x18d9: 0x40542020, 0x18da: 0x40538420, 0x18db: 0x40536e20, - 0x18dc: 0x40539420, 0x18dd: 0x40539620, 0x18de: 0x40540020, 0x18df: 0x40540620, - 0x18e0: 0x40540e20, 0x18e1: 0x40541220, 0x18e2: 0x40539820, 0x18e3: 0x40541c20, - 0x18e4: 0x40539a20, 0x18e5: 0x40539c20, 0x18e6: 0x40542620, 0x18e7: 0x40542820, - 0x18e8: 0x40541820, 0x18e9: 0x82e42a16, 0x18ea: 0x40542a20, - 0x18f0: 0x405a1a20, 0x18f1: 0x405a1c20, 0x18f2: 0x405a1e20, 0x18f3: 0x405a2020, - 0x18f4: 0x405a2220, 0x18f5: 0x405a2420, 0x18f6: 0x405a2620, 0x18f7: 0x405a2820, - 0x18f8: 0x405a2a20, 0x18f9: 0x405a2c20, 0x18fa: 0x405a2e20, 0x18fb: 0x405a3020, - 0x18fc: 0x405a3220, 0x18fd: 0x405a3420, 0x18fe: 0x405a3620, 0x18ff: 0x405a3820, - // Block 0x64, offset 0x1900 - 0x1900: 0x405a3a20, 0x1901: 0x405a3c20, 0x1902: 0x405a3e20, 0x1903: 0x405a4020, - 0x1904: 0x405a4220, 0x1905: 0x405a4420, 0x1906: 0x405a4620, 0x1907: 0x405a4820, - 0x1908: 0x405a4a20, 0x1909: 0x405a4c20, 0x190a: 0x405a4e20, 0x190b: 0x405a5020, - 0x190c: 0x405a5220, 0x190d: 0x405a5420, 0x190e: 0x405a5620, 0x190f: 0x405a5820, - 0x1910: 0x405a5a20, 0x1911: 0x405a5c20, 0x1912: 0x405a5e20, 0x1913: 0x405a6020, - 0x1914: 0x405a6220, 0x1915: 0x405a6420, 0x1916: 0x405a6620, 0x1917: 0x405a6820, - 0x1918: 0x405a6a20, 0x1919: 0x405a6c20, 0x191a: 0x405a6e20, 0x191b: 0x405a7020, - 0x191c: 0x405a7220, 0x191d: 0x405a7420, 0x191e: 0x405a7620, 0x191f: 0x405a7820, - 0x1920: 0x405a7a20, 0x1921: 0x405a7c20, 0x1922: 0x405a7e20, 0x1923: 0x405a8020, - 0x1924: 0x405a8220, 0x1925: 0x405a8420, 0x1926: 0x405a8620, 0x1927: 0x405a8820, - 0x1928: 0x405a8a20, 0x1929: 0x405a8c20, 0x192a: 0x405a8e20, 0x192b: 0x405a9020, - 0x192c: 0x405a9220, 0x192d: 0x405a9420, 0x192e: 0x405a9620, 0x192f: 0x405a9820, - 0x1930: 0x405a9a20, 0x1931: 0x405a9c20, 0x1932: 0x405a9e20, 0x1933: 0x405aa020, - 0x1934: 0x405aa220, 0x1935: 0x405aa420, - // Block 0x65, offset 0x1940 - 0x1940: 0x404c1220, 0x1941: 0x404c1420, 0x1942: 0x404c1620, 0x1943: 0x404c1820, - 0x1944: 0x404c1a20, 0x1945: 0x404c1c20, 0x1946: 0x404c1e20, 0x1947: 0x404c2020, - 0x1948: 0x404c2220, 0x1949: 0x404c2420, 0x194a: 0x404c2620, 0x194b: 0x404c2820, - 0x194c: 0x404c2a20, 0x194d: 0x404c2c20, 0x194e: 0x404c2e20, 0x194f: 0x404c3020, - 0x1950: 0x404c3220, 0x1951: 0x404c3420, 0x1952: 0x404c3620, 0x1953: 0x404c3820, - 0x1954: 0x404c3a20, 0x1955: 0x404c3c20, 0x1956: 0x404c3e20, 0x1957: 0x404c4020, - 0x1958: 0x404c4220, 0x1959: 0x404c4420, 0x195a: 0x404c4620, 0x195b: 0x404c4820, - 0x195c: 0x404c4a20, - 0x1960: 0x404c4c20, 0x1961: 0x404c4e20, 0x1962: 0x404c5020, 0x1963: 0x404c5220, - 0x1964: 0x404c5420, 0x1965: 0x404c5620, 0x1966: 0x404c5820, 0x1967: 0x404c5a20, - 0x1968: 0x404c5c20, 0x1969: 0x404c5e20, 0x196a: 0x404c6020, 0x196b: 0x404c6220, - 0x1970: 0x404c6420, 0x1971: 0x404c6620, 0x1972: 0x404c6820, 0x1973: 0x404c6a20, - 0x1974: 0x404c6c20, 0x1975: 0x404c6e20, 0x1976: 0x404c7020, 0x1977: 0x404c7220, - 0x1978: 0x404c7420, 0x1979: 0xade11f02, 0x197a: 0xae612002, 0x197b: 0xadc12102, - // Block 0x66, offset 0x1980 - 0x1980: 0x4007a620, - 0x1984: 0x4002c220, 0x1985: 0x4002d220, 0x1986: 0xe000018e, 0x1987: 0xe000021f, - 0x1988: 0xe000033a, 0x1989: 0xe0000414, 0x198a: 0xe00004e9, 0x198b: 0xe00005b3, - 0x198c: 0xe000067e, 0x198d: 0xe0000726, 0x198e: 0xe00007d2, 0x198f: 0xe0000877, - 0x1990: 0x40503020, 0x1991: 0x40503220, 0x1992: 0x40503420, 0x1993: 0x40503620, - 0x1994: 0x40503820, 0x1995: 0x40503a20, 0x1996: 0x40503c20, 0x1997: 0x40503e20, - 0x1998: 0x40504020, 0x1999: 0x40504220, 0x199a: 0x40504420, 0x199b: 0x40504620, - 0x199c: 0x40504820, 0x199d: 0x40504a20, 0x199e: 0x40504c20, 0x199f: 0x40504e20, - 0x19a0: 0x40505020, 0x19a1: 0x40505220, 0x19a2: 0x40505420, 0x19a3: 0x40505620, - 0x19a4: 0x40505820, 0x19a5: 0x40505a20, 0x19a6: 0x40505c20, 0x19a7: 0x40505e20, - 0x19a8: 0x40506020, 0x19a9: 0x40506220, 0x19aa: 0x40506420, 0x19ab: 0x40506620, - 0x19ac: 0x40506820, 0x19ad: 0x40506a20, - 0x19b0: 0x40506c20, 0x19b1: 0x40506e20, 0x19b2: 0x40507020, 0x19b3: 0x40507220, - 0x19b4: 0x40507420, - // Block 0x67, offset 0x19c0 - 0x19c0: 0x40507620, 0x19c1: 0x40507820, 0x19c2: 0x40507a20, 0x19c3: 0x40507c20, - 0x19c4: 0x40507e20, 0x19c5: 0x40508020, 0x19c6: 0x40508220, 0x19c7: 0x40508420, - 0x19c8: 0x40508620, 0x19c9: 0x40508820, 0x19ca: 0x40508a20, 0x19cb: 0x40508c20, - 0x19cc: 0x40508e20, 0x19cd: 0x40509020, 0x19ce: 0x40509220, 0x19cf: 0x40509420, - 0x19d0: 0x40509620, 0x19d1: 0x40509820, 0x19d2: 0x40509a20, 0x19d3: 0x40509c20, - 0x19d4: 0x40509e20, 0x19d5: 0x4050a020, 0x19d6: 0x4050a220, 0x19d7: 0x4050a420, - 0x19d8: 0x4050a620, 0x19d9: 0x4050a820, 0x19da: 0x4050aa20, 0x19db: 0x4050ac20, - 0x19dc: 0x4050ae20, 0x19dd: 0x4050b020, 0x19de: 0x4050b220, 0x19df: 0x4050b420, - 0x19e0: 0x4050b620, 0x19e1: 0x4050b820, 0x19e2: 0x4050ba20, 0x19e3: 0x4050bc20, - 0x19e4: 0x4050be20, 0x19e5: 0x4050c020, 0x19e6: 0x4050c220, 0x19e7: 0x4050c420, - 0x19e8: 0x4050c620, 0x19e9: 0x4050c820, 0x19ea: 0x4050ca20, 0x19eb: 0x4050cc20, - 0x19f0: 0x4050ce20, 0x19f1: 0x4050d020, 0x19f2: 0x4050d220, 0x19f3: 0x4050d420, - 0x19f4: 0x4050d620, 0x19f5: 0x4050d820, 0x19f6: 0x4050da20, 0x19f7: 0x4050dc20, - 0x19f8: 0x4050de20, 0x19f9: 0x4050e020, 0x19fa: 0x4050e220, 0x19fb: 0x4050e420, - 0x19fc: 0x4050e620, 0x19fd: 0x4050e820, 0x19fe: 0x4050ea20, 0x19ff: 0x4050ec20, - // Block 0x68, offset 0x1a00 - 0x1a00: 0x4050ee20, 0x1a01: 0x4050f020, 0x1a02: 0x4050f220, 0x1a03: 0x4050f420, - 0x1a04: 0x4050f620, 0x1a05: 0x4050f820, 0x1a06: 0x4050fa20, 0x1a07: 0x4050fc20, - 0x1a08: 0x4050fe20, 0x1a09: 0x40510020, - 0x1a10: 0xe0000191, 0x1a11: 0xe0000222, 0x1a12: 0xe000033d, 0x1a13: 0xe0000417, - 0x1a14: 0xe00004ec, 0x1a15: 0xe00005b6, 0x1a16: 0xe0000681, 0x1a17: 0xe0000729, - 0x1a18: 0xe00007d5, 0x1a19: 0xe000087a, 0x1a1a: 0xe0000225, - 0x1a1e: 0xe0002022, 0x1a1f: 0xe0002025, - 0x1a20: 0x4007b220, 0x1a21: 0x4007b420, 0x1a22: 0x4007b620, 0x1a23: 0x4007b820, - 0x1a24: 0x4007ba20, 0x1a25: 0x4007bc20, 0x1a26: 0x4007be20, 0x1a27: 0x4007c020, - 0x1a28: 0x4007c220, 0x1a29: 0x4007c420, 0x1a2a: 0x4007c620, 0x1a2b: 0x4007c820, - 0x1a2c: 0x4007ca20, 0x1a2d: 0x4007cc20, 0x1a2e: 0x4007ce20, 0x1a2f: 0x4007d020, - 0x1a30: 0x4007d220, 0x1a31: 0x4007d420, 0x1a32: 0x4007d620, 0x1a33: 0x4007d820, - 0x1a34: 0x4007da20, 0x1a35: 0x4007dc20, 0x1a36: 0x4007de20, 0x1a37: 0x4007e020, - 0x1a38: 0x4007e220, 0x1a39: 0x4007e420, 0x1a3a: 0x4007e620, 0x1a3b: 0x4007e820, - 0x1a3c: 0x4007ea20, 0x1a3d: 0x4007ec20, 0x1a3e: 0x4007ee20, 0x1a3f: 0x4007f020, - // Block 0x69, offset 0x1a40 - 0x1a40: 0x404d1420, 0x1a41: 0x404d1620, 0x1a42: 0x404d1820, 0x1a43: 0x404d1a20, - 0x1a44: 0x404d1c20, 0x1a45: 0x404d1e20, 0x1a46: 0x404d2020, 0x1a47: 0x404d2220, - 0x1a48: 0x404d2420, 0x1a49: 0x404d2620, 0x1a4a: 0x404d2820, 0x1a4b: 0x404d2a20, - 0x1a4c: 0x404d2c20, 0x1a4d: 0x404d2e20, 0x1a4e: 0x404d3020, 0x1a4f: 0x404d3220, - 0x1a50: 0x404d3420, 0x1a51: 0x404d3620, 0x1a52: 0x404d3820, 0x1a53: 0x404d3a20, - 0x1a54: 0x404d3c20, 0x1a55: 0x404d3e20, 0x1a56: 0x404d4020, 0x1a57: 0x82e626a1, - 0x1a58: 0x82dc26a2, 0x1a59: 0x404d4620, 0x1a5a: 0x404d4820, 0x1a5b: 0x404d4a20, - 0x1a5e: 0x40036620, 0x1a5f: 0x40036820, - 0x1a60: 0x40510220, 0x1a61: 0x40510420, 0x1a62: 0x40510620, 0x1a63: 0x40510820, - 0x1a64: 0x40510a20, 0x1a65: 0x40510c20, 0x1a66: 0x40510e20, 0x1a67: 0x40511020, - 0x1a68: 0x40511220, 0x1a69: 0x40511420, 0x1a6a: 0x40511620, 0x1a6b: 0x40511820, - 0x1a6c: 0x40511a20, 0x1a6d: 0x40511c20, 0x1a6e: 0x40511e20, 0x1a6f: 0x40512020, - 0x1a70: 0x40512220, 0x1a71: 0x40512420, 0x1a72: 0x40512620, 0x1a73: 0x40512820, - 0x1a74: 0x40512a20, 0x1a75: 0x40512c20, 0x1a76: 0x40512e20, 0x1a77: 0x40513020, - 0x1a78: 0x40513220, 0x1a79: 0x40513420, 0x1a7a: 0x40513620, 0x1a7b: 0x40513820, - 0x1a7c: 0x40513a20, 0x1a7d: 0x40513c20, 0x1a7e: 0x40513e20, 0x1a7f: 0x40514020, - // Block 0x6a, offset 0x1a80 - 0x1a80: 0x40514220, 0x1a81: 0x40514420, 0x1a82: 0x40514620, 0x1a83: 0x40514820, - 0x1a84: 0x40514a20, 0x1a85: 0x40514c20, 0x1a86: 0x40514e20, 0x1a87: 0x40515020, - 0x1a88: 0x40515220, 0x1a89: 0x40515420, 0x1a8a: 0x40515620, 0x1a8b: 0x40515820, - 0x1a8c: 0x40515a20, 0x1a8d: 0x40516c20, 0x1a8e: 0x40516e20, 0x1a8f: 0x40517020, - 0x1a90: 0x40517220, 0x1a91: 0x40517420, 0x1a92: 0x40517620, 0x1a93: 0x40515c20, - 0x1a94: 0xe0002029, 0x1a95: 0x40516020, 0x1a96: 0x40516220, 0x1a97: 0x40516420, - 0x1a98: 0x00510e84, 0x1a99: 0x00510e84, 0x1a9a: 0x00513884, 0x1a9b: 0x00513884, - 0x1a9c: 0x40516620, 0x1a9d: 0x40516820, 0x1a9e: 0x40516a20, - 0x1aa0: 0x820928cd, 0x1aa1: 0x40517820, 0x1aa2: 0x40517c20, 0x1aa3: 0x40517e20, - 0x1aa4: 0x00517e84, 0x1aa5: 0x40518020, 0x1aa6: 0x40518220, 0x1aa7: 0x40518420, - 0x1aa8: 0x40518620, 0x1aa9: 0x40518820, 0x1aaa: 0x40518a20, 0x1aab: 0x40515e20, - 0x1aac: 0x40517a20, 0x1aad: 0x40519820, 0x1aae: 0x40518c20, 0x1aaf: 0x40518e20, - 0x1ab0: 0x40519220, 0x1ab1: 0x40519420, 0x1ab2: 0x40519620, 0x1ab3: 0x40519020, - 0x1ab4: 0xa000f302, 0x1ab5: 0xae611702, 0x1ab6: 0xae611802, 0x1ab7: 0xae611902, - 0x1ab8: 0xae611a02, 0x1ab9: 0xae611b02, 0x1aba: 0xae611c02, 0x1abb: 0xae611d02, - 0x1abc: 0xae611e02, 0x1abf: 0xadc00000, - // Block 0x6b, offset 0x1ac0 - 0x1ac0: 0xe0000194, 0x1ac1: 0xe0000228, 0x1ac2: 0xe0000340, 0x1ac3: 0xe000041a, - 0x1ac4: 0xe00004ef, 0x1ac5: 0xe00005b9, 0x1ac6: 0xe0000684, 0x1ac7: 0xe000072c, - 0x1ac8: 0xe00007d8, 0x1ac9: 0xe000087d, - 0x1ad0: 0xe0000197, 0x1ad1: 0xe000022b, 0x1ad2: 0xe0000343, 0x1ad3: 0xe000041d, - 0x1ad4: 0xe00004f2, 0x1ad5: 0xe00005bc, 0x1ad6: 0xe0000687, 0x1ad7: 0xe000072f, - 0x1ad8: 0xe00007db, 0x1ad9: 0xe0000880, - 0x1ae0: 0x4005c220, 0x1ae1: 0x4005c420, 0x1ae2: 0x4005c620, 0x1ae3: 0x4005c820, - 0x1ae4: 0x4005ca20, 0x1ae5: 0x4005cc20, 0x1ae6: 0x4005ce20, 0x1ae7: 0x4027be20, - 0x1ae8: 0x40032a20, 0x1ae9: 0x40032c20, 0x1aea: 0x40032e20, 0x1aeb: 0x40033020, - 0x1aec: 0x4005d020, 0x1aed: 0x4005d220, - // Block 0x6c, offset 0x1b00 - 0x1b00: 0xa000f202, 0x1b01: 0xa000f202, 0x1b02: 0xa000f302, 0x1b03: 0xa000f702, - 0x1b04: 0xa000f402, 0x1b05: 0xc3190821, 0x1b06: 0x40522820, 0x1b07: 0xc31b0821, - 0x1b08: 0x40522c20, 0x1b09: 0xc31d0821, 0x1b0a: 0x40523020, 0x1b0b: 0xc31f0821, - 0x1b0c: 0x40523420, 0x1b0d: 0xc3210821, 0x1b0e: 0x40523820, 0x1b0f: 0x40523a20, - 0x1b10: 0x40523c20, 0x1b11: 0xc3230821, 0x1b12: 0x40524020, 0x1b13: 0x40524220, - 0x1b14: 0x40524820, 0x1b15: 0x40524a20, 0x1b16: 0x40524c20, 0x1b17: 0x40524e20, - 0x1b18: 0x40525020, 0x1b19: 0x40525220, 0x1b1a: 0x40525420, 0x1b1b: 0x40525620, - 0x1b1c: 0x40525820, 0x1b1d: 0x40525a20, 0x1b1e: 0x40525c20, 0x1b1f: 0x40525e20, - 0x1b20: 0x40526020, 0x1b21: 0x40526220, 0x1b22: 0x40526420, 0x1b23: 0x40526820, - 0x1b24: 0x40526a20, 0x1b25: 0x40526c20, 0x1b26: 0x40526e20, 0x1b27: 0x40527020, - 0x1b28: 0x40527420, 0x1b29: 0x40527620, 0x1b2a: 0x40527820, 0x1b2b: 0x40527a20, - 0x1b2c: 0x40527c20, 0x1b2d: 0x40527e20, 0x1b2e: 0x40528020, 0x1b2f: 0x40528220, - 0x1b30: 0x40528620, 0x1b31: 0x40528820, 0x1b32: 0x40528a20, 0x1b33: 0x40529020, - 0x1b34: 0xa070f102, 0x1b35: 0x40529220, 0x1b36: 0x40529420, 0x1b37: 0x40529620, - 0x1b38: 0x40529820, 0x1b39: 0x40529a20, 0x1b3a: 0xc3250821, 0x1b3b: 0x40529e20, - 0x1b3c: 0xc3270821, 0x1b3d: 0x4052a220, 0x1b3e: 0xc3290821, 0x1b3f: 0xc32b0821, - // Block 0x6d, offset 0x1b40 - 0x1b40: 0x4052a820, 0x1b41: 0x4052aa20, 0x1b42: 0xc32d0821, 0x1b43: 0x4052ae20, - 0x1b44: 0x82092958, 0x1b45: 0x40524420, 0x1b46: 0x40524620, 0x1b47: 0x40526620, - 0x1b48: 0x40527220, 0x1b49: 0x40528420, 0x1b4a: 0x40528c20, 0x1b4b: 0x40528e20, - 0x1b50: 0xe00001be, 0x1b51: 0xe0000252, 0x1b52: 0xe000036a, 0x1b53: 0xe0000444, - 0x1b54: 0xe0000519, 0x1b55: 0xe00005e3, 0x1b56: 0xe00006ae, 0x1b57: 0xe0000756, - 0x1b58: 0xe0000802, 0x1b59: 0xe00008a7, 0x1b5a: 0x40036a20, 0x1b5b: 0x40036c20, - 0x1b5c: 0x4002f620, 0x1b5d: 0x4002ae20, 0x1b5e: 0x40033220, 0x1b5f: 0x40033420, - 0x1b60: 0x40022020, 0x1b61: 0x4007f220, 0x1b62: 0x4007f420, 0x1b63: 0x4007f620, - 0x1b64: 0x4007f820, 0x1b65: 0x4007fa20, 0x1b66: 0x4007fc20, 0x1b67: 0x4007fe20, - 0x1b68: 0x40080020, 0x1b69: 0x40080220, 0x1b6a: 0x40080420, 0x1b6b: 0xae600000, - 0x1b6c: 0xadc00000, 0x1b6d: 0xae600000, 0x1b6e: 0xae600000, 0x1b6f: 0xae600000, - 0x1b70: 0xae600000, 0x1b71: 0xae600000, 0x1b72: 0xae600000, 0x1b73: 0xae600000, - 0x1b74: 0x40080620, 0x1b75: 0x40080820, 0x1b76: 0x40080a20, 0x1b77: 0x40080c20, - 0x1b78: 0x40080e20, 0x1b79: 0x40081020, 0x1b7a: 0x40081220, 0x1b7b: 0x40081420, - 0x1b7c: 0x40081620, - // Block 0x6e, offset 0x1b80 - 0x1b80: 0xa000f302, 0x1b81: 0xa000f902, 0x1b82: 0xa000f402, 0x1b83: 0x4047d420, - 0x1b84: 0x4047d620, 0x1b85: 0x4047d820, 0x1b86: 0x4047da20, 0x1b87: 0x4047dc20, - 0x1b88: 0x4047de20, 0x1b89: 0x4047e020, 0x1b8a: 0x4047e220, 0x1b8b: 0x4047e620, - 0x1b8c: 0x4047e820, 0x1b8d: 0x4047ea20, 0x1b8e: 0x4047ec20, 0x1b8f: 0x4047ee20, - 0x1b90: 0x4047f020, 0x1b91: 0x4047f220, 0x1b92: 0x4047f420, 0x1b93: 0x4047f620, - 0x1b94: 0x4047f820, 0x1b95: 0x4047fa20, 0x1b96: 0x4047fc20, 0x1b97: 0x4047fe20, - 0x1b98: 0x40480020, 0x1b99: 0x40480420, 0x1b9a: 0x40480820, 0x1b9b: 0x40480c20, - 0x1b9c: 0x40481220, 0x1b9d: 0x40481820, 0x1b9e: 0x40481c20, 0x1b9f: 0x40481e20, - 0x1ba0: 0x40482220, 0x1ba1: 0x40480a20, 0x1ba2: 0x40480e20, 0x1ba3: 0x40481420, - 0x1ba4: 0x40482420, 0x1ba5: 0x40482620, 0x1ba6: 0x40482820, 0x1ba7: 0x40482a20, - 0x1ba8: 0x40482c20, 0x1ba9: 0x40482e20, 0x1baa: 0x82092418, 0x1bab: 0x82092419, - 0x1bac: 0x40480620, 0x1bad: 0x40481a20, 0x1bae: 0x4047e420, 0x1baf: 0x40482020, - 0x1bb0: 0xe00001c4, 0x1bb1: 0xe0000258, 0x1bb2: 0xe0000370, 0x1bb3: 0xe000044a, - 0x1bb4: 0xe000051f, 0x1bb5: 0xe00005e9, 0x1bb6: 0xe00006b4, 0x1bb7: 0xe000075c, - 0x1bb8: 0xe0000808, 0x1bb9: 0xe00008ad, 0x1bba: 0x0047d484, 0x1bbb: 0x40481020, - 0x1bbc: 0x40481620, 0x1bbd: 0x40480220, 0x1bbe: 0x0047e299, 0x1bbf: 0x00480499, - // Block 0x6f, offset 0x1bc0 - 0x1bc0: 0x404d4c20, 0x1bc1: 0x004d4c84, 0x1bc2: 0x404d4e20, 0x1bc3: 0x004d4e84, - 0x1bc4: 0x004d4e84, 0x1bc5: 0x404d5020, 0x1bc6: 0x004d5084, 0x1bc7: 0x404d5220, - 0x1bc8: 0x004d5284, 0x1bc9: 0x404d5420, 0x1bca: 0x004d5484, 0x1bcb: 0x404d5620, - 0x1bcc: 0x004d5684, 0x1bcd: 0x004d5684, 0x1bce: 0x404d5820, 0x1bcf: 0x004d5884, - 0x1bd0: 0x404d5a20, 0x1bd1: 0x404d5c20, 0x1bd2: 0x404d5e20, 0x1bd3: 0x004d5e84, - 0x1bd4: 0x404d6020, 0x1bd5: 0x004d6084, 0x1bd6: 0x404d6220, 0x1bd7: 0x004d6284, - 0x1bd8: 0x404d6420, 0x1bd9: 0x004d6484, 0x1bda: 0x004d6484, 0x1bdb: 0x404d6620, - 0x1bdc: 0x004d6684, 0x1bdd: 0x404d6820, 0x1bde: 0x404d6a20, 0x1bdf: 0x004d6a84, - 0x1be0: 0x404d6c20, 0x1be1: 0x404d6e20, 0x1be2: 0x404d7020, 0x1be3: 0x404d7220, - 0x1be4: 0x404d7420, 0x1be5: 0x404d7620, 0x1be6: 0xa070f102, 0x1be7: 0x404d7820, - 0x1be8: 0x004d7884, 0x1be9: 0x404d7a20, 0x1bea: 0x404d7c20, 0x1beb: 0x004d7c84, - 0x1bec: 0x404d7e20, 0x1bed: 0x004d7e84, 0x1bee: 0x404d8020, 0x1bef: 0x004d8084, - 0x1bf0: 0x404d8220, 0x1bf1: 0x404d8420, 0x1bf2: 0x820926c3, 0x1bf3: 0x820926c4, - 0x1bfc: 0x4005ec20, 0x1bfd: 0x4005ee20, 0x1bfe: 0x4005f020, 0x1bff: 0x4005f220, - // Block 0x70, offset 0x1c00 - 0x1c00: 0x404b3620, 0x1c01: 0x404b3820, 0x1c02: 0x404b3a20, 0x1c03: 0x404b3c20, - 0x1c04: 0x404b3e20, 0x1c05: 0x404b4020, 0x1c06: 0x404b4220, 0x1c07: 0x404b4420, - 0x1c08: 0x404b4620, 0x1c09: 0x404b4820, 0x1c0a: 0x404b5020, 0x1c0b: 0x404b5220, - 0x1c0c: 0x404b5420, 0x1c0d: 0x404b5620, 0x1c0e: 0x404b5820, 0x1c0f: 0x404b5a20, - 0x1c10: 0x404b5c20, 0x1c11: 0x404b5e20, 0x1c12: 0x404b6020, 0x1c13: 0x404b6220, - 0x1c14: 0x404b6420, 0x1c15: 0x404b6620, 0x1c16: 0x404b6820, 0x1c17: 0x404b6a20, - 0x1c18: 0x404b6c20, 0x1c19: 0x404b6e20, 0x1c1a: 0x404b7020, 0x1c1b: 0x404b7420, - 0x1c1c: 0x404b7820, 0x1c1d: 0x404b7a20, 0x1c1e: 0x404b7c20, 0x1c1f: 0x404b7e20, - 0x1c20: 0x404b8020, 0x1c21: 0x404b8220, 0x1c22: 0x404b8420, 0x1c23: 0x404b8620, - 0x1c24: 0x404b7220, 0x1c25: 0x404b7620, 0x1c26: 0x404b8a20, 0x1c27: 0x404b8c20, - 0x1c28: 0x404b8e20, 0x1c29: 0x404b9020, 0x1c2a: 0x404b9220, 0x1c2b: 0x404b9420, - 0x1c2c: 0x404b9620, 0x1c2d: 0x404b9820, 0x1c2e: 0x404b9a20, 0x1c2f: 0x404b9c20, - 0x1c30: 0x404b9e20, 0x1c31: 0x404ba020, 0x1c32: 0x404ba220, 0x1c33: 0x404ba420, - 0x1c34: 0x404ba620, 0x1c35: 0x404ba820, 0x1c36: 0x404b8820, 0x1c37: 0xa070f102, - 0x1c3b: 0x40031420, - 0x1c3c: 0x40031620, 0x1c3d: 0x4005ae20, 0x1c3e: 0x4005b020, 0x1c3f: 0x4005b220, - // Block 0x71, offset 0x1c40 - 0x1c40: 0xe00001a6, 0x1c41: 0xe000023a, 0x1c42: 0xe0000352, 0x1c43: 0xe000042c, - 0x1c44: 0xe0000501, 0x1c45: 0xe00005cb, 0x1c46: 0xe0000696, 0x1c47: 0xe000073e, - 0x1c48: 0xe00007ea, 0x1c49: 0xe000088f, - 0x1c4d: 0x404b4a20, 0x1c4e: 0x404b4c20, 0x1c4f: 0x404b4e20, - 0x1c50: 0xe00001ca, 0x1c51: 0xe000025e, 0x1c52: 0xe0000376, 0x1c53: 0xe0000450, - 0x1c54: 0xe0000525, 0x1c55: 0xe00005ef, 0x1c56: 0xe00006ba, 0x1c57: 0xe0000762, - 0x1c58: 0xe000080e, 0x1c59: 0xe00008b3, 0x1c5a: 0x40542e20, 0x1c5b: 0x40543020, - 0x1c5c: 0x40543220, 0x1c5d: 0x40543420, 0x1c5e: 0x40543620, 0x1c5f: 0x40543820, - 0x1c60: 0x40543a20, 0x1c61: 0x40543c20, 0x1c62: 0x40543e20, 0x1c63: 0x40544020, - 0x1c64: 0x40544220, 0x1c65: 0x40544420, 0x1c66: 0x40544620, 0x1c67: 0x40544820, - 0x1c68: 0x40544a20, 0x1c69: 0x40544c20, 0x1c6a: 0x40544e20, 0x1c6b: 0x40545020, - 0x1c6c: 0x40545220, 0x1c6d: 0x40545420, 0x1c6e: 0x40545620, 0x1c6f: 0x40545820, - 0x1c70: 0x40545a20, 0x1c71: 0x40545c20, 0x1c72: 0x40545e20, 0x1c73: 0x40546020, - 0x1c74: 0x40546220, 0x1c75: 0x40546420, 0x1c76: 0x40546620, 0x1c77: 0x40546820, - 0x1c78: 0x40546a20, 0x1c79: 0x40546c20, 0x1c7a: 0x40546e20, 0x1c7b: 0x40547020, - 0x1c7c: 0x40547220, 0x1c7d: 0x40547420, 0x1c7e: 0x40035820, 0x1c7f: 0x40035a20, - // Block 0x72, offset 0x1c80 - 0x1c80: 0x4005d620, 0x1c81: 0x4005d820, 0x1c82: 0x4005da20, 0x1c83: 0x4005dc20, - 0x1c84: 0x4005de20, 0x1c85: 0x4005e020, 0x1c86: 0x4005e220, 0x1c87: 0x4005e420, - 0x1c90: 0xae600000, 0x1c91: 0xae600000, 0x1c92: 0xae600000, 0x1c93: 0xa0000000, - 0x1c94: 0xa0100000, 0x1c95: 0xadc00000, 0x1c96: 0xadc00000, 0x1c97: 0xadc00000, - 0x1c98: 0xadc00000, 0x1c99: 0xadc00000, 0x1c9a: 0xae600000, 0x1c9b: 0xae600000, - 0x1c9c: 0xadc00000, 0x1c9d: 0xadc00000, 0x1c9e: 0xadc00000, 0x1c9f: 0xadc00000, - 0x1ca0: 0xae600000, 0x1ca1: 0xa0000000, 0x1ca2: 0xa0100000, 0x1ca3: 0xa0100000, - 0x1ca4: 0xa0100000, 0x1ca5: 0xa0100000, 0x1ca6: 0xa0100000, 0x1ca7: 0xa0100000, - 0x1ca8: 0xa0100000, 0x1ca9: 0x40404020, 0x1caa: 0x00404084, 0x1cab: 0x00404084, - 0x1cac: 0x00404084, 0x1cad: 0xadc0f302, 0x1cae: 0x00404084, 0x1caf: 0x00404084, - 0x1cb0: 0x00404084, 0x1cb1: 0x00404084, 0x1cb2: 0xa000f402, 0x1cb3: 0xa000f402, - 0x1cb4: 0xae600000, 0x1cb5: 0x40404220, 0x1cb6: 0x40404420, - // Block 0x73, offset 0x1cc0 - 0x1cc0: 0x402be620, 0x1cc1: 0x402bec20, 0x1cc2: 0x402bee20, 0x1cc3: 0x402c2420, - 0x1cc4: 0x402c4220, 0x1cc5: 0x402c6a20, 0x1cc6: 0x402c6c20, 0x1cc7: 0x402ca020, - 0x1cc8: 0x402ce620, 0x1cc9: 0x402db420, 0x1cca: 0x402ddc20, 0x1ccb: 0x402e0620, - 0x1ccc: 0x402e3420, 0x1ccd: 0x402e8a20, 0x1cce: 0x402eb020, 0x1ccf: 0x402eea20, - 0x1cd0: 0x402f0220, 0x1cd1: 0x402eec20, 0x1cd2: 0x402f0420, 0x1cd3: 0x402ef820, - 0x1cd4: 0x402ef620, 0x1cd5: 0x402f2a20, 0x1cd6: 0x402f0a20, 0x1cd7: 0x402f0c20, - 0x1cd8: 0x402f3420, 0x1cd9: 0x402f8c20, 0x1cda: 0x402fa020, 0x1cdb: 0x40303420, - 0x1cdc: 0x40307420, 0x1cdd: 0x40307620, 0x1cde: 0x40307820, 0x1cdf: 0x4030aa20, - 0x1ce0: 0x4030c620, 0x1ce1: 0x4030ea20, 0x1ce2: 0x40313220, 0x1ce3: 0x40316c20, - 0x1ce4: 0x4031f420, 0x1ce5: 0x4031f620, 0x1ce6: 0x40325820, 0x1ce7: 0x40327420, - 0x1ce8: 0x40328020, 0x1ce9: 0x40328a20, 0x1cea: 0x4032a020, 0x1ceb: 0x40348c20, - 0x1cec: 0x002bde9d, 0x1ced: 0xe00009e1, 0x1cee: 0x002c0a9d, 0x1cef: 0x402c2220, - 0x1cf0: 0x002c629d, 0x1cf1: 0x002c989d, 0x1cf2: 0x002cae9d, 0x1cf3: 0x002d229d, - 0x1cf4: 0x002d689d, 0x1cf5: 0x002d9a9d, 0x1cf6: 0x002dcc9d, 0x1cf7: 0x002dfe9d, - 0x1cf8: 0x002e229d, 0x1cf9: 0x002e829d, 0x1cfa: 0x002e9e9d, 0x1cfb: 0x402eae20, - 0x1cfc: 0x002ee29d, 0x1cfd: 0x002f229d, 0x1cfe: 0x002f2c9d, 0x1cff: 0x002f7a9d, - // Block 0x74, offset 0x1d00 - 0x1d00: 0x00302c9d, 0x1d01: 0x00306c9d, 0x1d02: 0x0030e29d, 0x1d03: 0x002bde94, - 0x1d04: 0x002bf094, 0x1d05: 0x002bf894, 0x1d06: 0x002bee94, 0x1d07: 0x002c0a94, - 0x1d08: 0x002c6294, 0x1d09: 0x002c9894, 0x1d0a: 0x002cb894, 0x1d0b: 0x002cc294, - 0x1d0c: 0x002ce694, 0x1d0d: 0x002d2294, 0x1d0e: 0x002db494, 0x1d0f: 0x002dfe94, - 0x1d10: 0x002e8294, 0x1d11: 0x002eda94, 0x1d12: 0x002ee294, 0x1d13: 0x002efa94, - 0x1d14: 0x002f0a94, 0x1d15: 0x002f0c94, 0x1d16: 0x002f2c94, 0x1d17: 0x00302c94, - 0x1d18: 0x00306c94, 0x1d19: 0x00307694, 0x1d1a: 0x0030a094, 0x1d1b: 0x0030be94, - 0x1d1c: 0x0031f694, 0x1d1d: 0x00325494, 0x1d1e: 0x00325694, 0x1d1f: 0x00325a94, - 0x1d20: 0x00329a94, 0x1d21: 0x00329c94, 0x1d22: 0x002d9a95, 0x1d23: 0x002f7a95, - 0x1d24: 0x00306c95, 0x1d25: 0x0030be95, 0x1d26: 0x00325495, 0x1d27: 0x00325695, - 0x1d28: 0x00328895, 0x1d29: 0x00329a95, 0x1d2a: 0x00329c95, 0x1d2b: 0x40307a20, - 0x1d2c: 0x402c2620, 0x1d2d: 0x402c6e20, 0x1d2e: 0x402d1220, 0x1d2f: 0x402e8c20, - 0x1d30: 0x402eb220, 0x1d31: 0x402f3a20, 0x1d32: 0x402f9620, 0x1d33: 0x402fce20, - 0x1d34: 0x402ff020, 0x1d35: 0x40304020, 0x1d36: 0x40313c20, 0x1d37: 0x402d5420, - 0x1d38: 0x0034ba94, 0x1d39: 0xe0000bd9, 0x1d3a: 0xe0000fc1, 0x1d3b: 0x402dbe20, - 0x1d3c: 0x402dca20, 0x1d3d: 0x402f3620, 0x1d3e: 0x40308420, 0x1d3f: 0x4030bc20, - // Block 0x75, offset 0x1d40 - 0x1d40: 0x402c2820, 0x1d41: 0x402c7020, 0x1d42: 0x402d1420, 0x1d43: 0x402d4220, - 0x1d44: 0x402e0820, 0x1d45: 0x402e5220, 0x1d46: 0x402e8e20, 0x1d47: 0x402ec620, - 0x1d48: 0x402f3c20, 0x1d49: 0x402faa20, 0x1d4a: 0x402ff220, 0x1d4b: 0x40301020, - 0x1d4c: 0x4030ca20, 0x1d4d: 0x4030fe20, 0x1d4e: 0x40313e20, 0x1d4f: 0x402bea20, - 0x1d50: 0x402c0020, 0x1d51: 0x402c8220, 0x1d52: 0x402caa20, 0x1d53: 0x402cca20, - 0x1d54: 0x402ce420, 0x1d55: 0x402cc020, 0x1d56: 0x402dc020, 0x1d57: 0x402f0620, - 0x1d58: 0x40302220, 0x1d59: 0x40308620, 0x1d5a: 0x40317620, 0x1d5b: 0x002c0294, - 0x1d5c: 0x002c3a94, 0x1d5d: 0x002c5694, 0x1d5e: 0xf0001414, 0x1d5f: 0x002cdc94, - 0x1d60: 0x002d0894, 0x1d61: 0x002dee94, 0x1d62: 0x002d2a94, 0x1d63: 0x00308894, - 0x1d64: 0x002db694, 0x1d65: 0x002dc294, 0x1d66: 0x002daa94, 0x1d67: 0x002dbe94, - 0x1d68: 0x002de694, 0x1d69: 0x002e5494, 0x1d6a: 0x002e5294, 0x1d6b: 0x002e2a94, - 0x1d6c: 0x002e9094, 0x1d6d: 0x0030ac94, 0x1d6e: 0x002eb494, 0x1d6f: 0x002ec894, - 0x1d70: 0x002ea694, 0x1d71: 0x002f1094, 0x1d72: 0x002f4c94, 0x1d73: 0x002ff494, - 0x1d74: 0x00300894, 0x1d75: 0x00304294, 0x1d76: 0x00307c94, 0x1d77: 0x0030b494, - 0x1d78: 0x00307494, 0x1d79: 0x0030cc94, 0x1d7a: 0x0030da94, 0x1d7b: 0x00312a94, - 0x1d7c: 0x00314894, 0x1d7d: 0x00315094, 0x1d7e: 0x00316494, 0x1d7f: 0x00326a94, - // Block 0x76, offset 0x1d80 - 0x1d80: 0xae605f02, 0x1d81: 0xae605f02, 0x1d82: 0xadc06002, 0x1d83: 0xae605f02, - 0x1d84: 0xae605f02, 0x1d85: 0xae605f02, 0x1d86: 0xae605f02, 0x1d87: 0xae605f02, - 0x1d88: 0xae605f02, 0x1d89: 0xae605f02, 0x1d8a: 0x84dc17bd, 0x1d8b: 0xae605f02, - 0x1d8c: 0xae605f02, 0x1d8d: 0xaea05f02, 0x1d8e: 0xad605f02, 0x1d8f: 0xadc06002, - 0x1d90: 0xaca06002, 0x1d91: 0xae605f02, 0x1d92: 0x84e618d1, 0x1d93: 0xe00009b4, - 0x1d94: 0xe00009d9, 0x1d95: 0xe00009f9, 0x1d96: 0xe0000a08, 0x1d97: 0xe0000a50, - 0x1d98: 0xe0000ab6, 0x1d99: 0xe0000ab0, 0x1d9a: 0x84e61691, 0x1d9b: 0x84e61699, - 0x1d9c: 0x84e616ff, 0x1d9d: 0x84e61711, 0x1d9e: 0x84e61715, 0x1d9f: 0x84e61745, - 0x1da0: 0x84e6174f, 0x1da1: 0x84e61753, 0x1da2: 0x84e617c1, 0x1da3: 0x84e617c5, - 0x1da4: 0x84e617f3, 0x1da5: 0xe0000f67, 0x1da6: 0x84e61895, - 0x1dbc: 0xae906002, 0x1dbd: 0xadc06002, 0x1dbe: 0xae605f02, 0x1dbf: 0xadc06002, - // Block 0x77, offset 0x1dc0 - 0x1dc0: 0xe00009b1, 0x1dc1: 0xe00009ae, 0x1dc2: 0xe0000a22, 0x1dc3: 0xe0000a1f, - 0x1dc4: 0xe0000a28, 0x1dc5: 0xe0000a25, 0x1dc6: 0xe0000a2e, 0x1dc7: 0xe0000a2b, - 0x1dc8: 0xe0000a5a, 0x1dc9: 0xe0000a56, 0x1dca: 0xe0000a8c, 0x1dcb: 0xe0000a89, - 0x1dcc: 0xe0000a98, 0x1dcd: 0xe0000a95, 0x1dce: 0xe0000aa4, 0x1dcf: 0xe0000aa1, - 0x1dd0: 0xe0000a92, 0x1dd1: 0xe0000a8f, 0x1dd2: 0xe0000a9e, 0x1dd3: 0xe0000a9b, - 0x1dd4: 0xe0000b55, 0x1dd5: 0xe0000b51, 0x1dd6: 0xe0000b4d, 0x1dd7: 0xe0000b49, - 0x1dd8: 0xe0000b7c, 0x1dd9: 0xe0000b79, 0x1dda: 0xe0000b82, 0x1ddb: 0xe0000b7f, - 0x1ddc: 0xe0000b39, 0x1ddd: 0xe0000b35, 0x1dde: 0xe0000b8c, 0x1ddf: 0xe0000b89, - 0x1de0: 0xe0000bd0, 0x1de1: 0xe0000bcd, 0x1de2: 0xe0000c00, 0x1de3: 0xe0000bfd, - 0x1de4: 0xe0000c0c, 0x1de5: 0xe0000c09, 0x1de6: 0xe0000bfa, 0x1de7: 0xe0000bf7, - 0x1de8: 0xe0000c06, 0x1de9: 0xe0000c03, 0x1dea: 0xe0000c12, 0x1deb: 0xe0000c0f, - 0x1dec: 0xe0000c7e, 0x1ded: 0xe0000c7b, 0x1dee: 0xe0000c4a, 0x1def: 0xe0000c46, - 0x1df0: 0xe0000c93, 0x1df1: 0xe0000c90, 0x1df2: 0xe0000cab, 0x1df3: 0xe0000ca8, - 0x1df4: 0xe0000cb1, 0x1df5: 0xe0000cae, 0x1df6: 0xe0000cde, 0x1df7: 0xe0000cdb, - 0x1df8: 0xe0000ce5, 0x1df9: 0xe0000ce1, 0x1dfa: 0xe0000cf2, 0x1dfb: 0xe0000cef, - 0x1dfc: 0xe0000cec, 0x1dfd: 0xe0000ce9, 0x1dfe: 0xe0000d1e, 0x1dff: 0xe0000d1b, - // Block 0x78, offset 0x1e00 - 0x1e00: 0xe0000d24, 0x1e01: 0xe0000d21, 0x1e02: 0xe0000d2a, 0x1e03: 0xe0000d27, - 0x1e04: 0xe0000d69, 0x1e05: 0xe0000d66, 0x1e06: 0xe0000d7b, 0x1e07: 0xe0000d78, - 0x1e08: 0xe0000d87, 0x1e09: 0xe0000d84, 0x1e0a: 0xe0000d81, 0x1e0b: 0xe0000d7e, - 0x1e0c: 0xe0000ded, 0x1e0d: 0xe0000de9, 0x1e0e: 0xe0000df5, 0x1e0f: 0xe0000df1, - 0x1e10: 0xe0000e3d, 0x1e11: 0xe0000e39, 0x1e12: 0xe0000e35, 0x1e13: 0xe0000e31, - 0x1e14: 0xe0000ea7, 0x1e15: 0xe0000ea4, 0x1e16: 0xe0000ead, 0x1e17: 0xe0000eaa, - 0x1e18: 0xe0000ed6, 0x1e19: 0xe0000ed3, 0x1e1a: 0xe0000ef4, 0x1e1b: 0xe0000ef1, - 0x1e1c: 0xe0000efb, 0x1e1d: 0xe0000ef7, 0x1e1e: 0xe0000f02, 0x1e1f: 0xe0000eff, - 0x1e20: 0xe0000f41, 0x1e21: 0xe0000f3e, 0x1e22: 0xe0000f53, 0x1e23: 0xe0000f50, - 0x1e24: 0xe0000f26, 0x1e25: 0xe0000f22, 0x1e26: 0xe0000f3a, 0x1e27: 0xe0000f36, - 0x1e28: 0xe0000f5a, 0x1e29: 0xe0000f56, 0x1e2a: 0xe0000f93, 0x1e2b: 0xe0000f90, - 0x1e2c: 0xe0000f9f, 0x1e2d: 0xe0000f9c, 0x1e2e: 0xe0000fb1, 0x1e2f: 0xe0000fae, - 0x1e30: 0xe0000fab, 0x1e31: 0xe0000fa8, 0x1e32: 0xe0001093, 0x1e33: 0xe0001090, - 0x1e34: 0xe000109f, 0x1e35: 0xe000109c, 0x1e36: 0xe0001099, 0x1e37: 0xe0001096, - 0x1e38: 0xe0001032, 0x1e39: 0xe000102e, 0x1e3a: 0xe0001046, 0x1e3b: 0xe0001042, - 0x1e3c: 0xe00010a9, 0x1e3d: 0xe00010a6, 0x1e3e: 0xe00010af, 0x1e3f: 0xe00010ac, - // Block 0x79, offset 0x1e40 - 0x1e40: 0xe00010d2, 0x1e41: 0xe00010cf, 0x1e42: 0xe00010cc, 0x1e43: 0xe00010c9, - 0x1e44: 0xe00010e1, 0x1e45: 0xe00010de, 0x1e46: 0xe00010e7, 0x1e47: 0xe00010e4, - 0x1e48: 0xe00010ed, 0x1e49: 0xe00010ea, 0x1e4a: 0xe00010fc, 0x1e4b: 0xe00010f9, - 0x1e4c: 0xe00010f6, 0x1e4d: 0xe00010f3, 0x1e4e: 0xe0001123, 0x1e4f: 0xe0001120, - 0x1e50: 0xe0001141, 0x1e51: 0xe000113e, 0x1e52: 0xe0001153, 0x1e53: 0xe0001150, - 0x1e54: 0xe0001159, 0x1e55: 0xe0001156, 0x1e56: 0xe0000c15, 0x1e57: 0xe0000f8d, - 0x1e58: 0xe00010db, 0x1e59: 0xe0001111, 0x1e5a: 0xf0000404, 0x1e5b: 0xe0000f70, - 0x1e5c: 0x40300420, 0x1e5d: 0x40300620, 0x1e5e: 0xe0000f7f, 0x1e5f: 0x402c9620, - 0x1e60: 0xe000099b, 0x1e61: 0xe0000998, 0x1e62: 0xe0000989, 0x1e63: 0xe0000986, - 0x1e64: 0xe0000928, 0x1e65: 0xe0000924, 0x1e66: 0xe0000930, 0x1e67: 0xe000092c, - 0x1e68: 0xe0000940, 0x1e69: 0xe000093c, 0x1e6a: 0xe0000938, 0x1e6b: 0xe0000934, - 0x1e6c: 0xe00009aa, 0x1e6d: 0xe00009a6, 0x1e6e: 0xe0000902, 0x1e6f: 0xe00008fe, - 0x1e70: 0xe000090a, 0x1e71: 0xe0000906, 0x1e72: 0xe000091a, 0x1e73: 0xe0000916, - 0x1e74: 0xe0000912, 0x1e75: 0xe000090e, 0x1e76: 0xe00009a2, 0x1e77: 0xe000099e, - 0x1e78: 0xe0000b6e, 0x1e79: 0xe0000b6b, 0x1e7a: 0xe0000b5c, 0x1e7b: 0xe0000b59, - 0x1e7c: 0xe0000b26, 0x1e7d: 0xe0000b23, 0x1e7e: 0xe0000afb, 0x1e7f: 0xe0000af7, - // Block 0x7a, offset 0x1e80 - 0x1e80: 0xe0000b03, 0x1e81: 0xe0000aff, 0x1e82: 0xe0000b13, 0x1e83: 0xe0000b0f, - 0x1e84: 0xe0000b0b, 0x1e85: 0xe0000b07, 0x1e86: 0xe0000b75, 0x1e87: 0xe0000b71, - 0x1e88: 0xe0000c66, 0x1e89: 0xe0000c63, 0x1e8a: 0xe0000c78, 0x1e8b: 0xe0000c75, - 0x1e8c: 0xe0000e84, 0x1e8d: 0xe0000e81, 0x1e8e: 0xe0000e44, 0x1e8f: 0xe0000e41, - 0x1e90: 0xe0000dad, 0x1e91: 0xe0000da9, 0x1e92: 0xe0000db5, 0x1e93: 0xe0000db1, - 0x1e94: 0xe0000dc5, 0x1e95: 0xe0000dc1, 0x1e96: 0xe0000dbd, 0x1e97: 0xe0000db9, - 0x1e98: 0xe0000e8b, 0x1e99: 0xe0000e87, 0x1e9a: 0xe0000e5d, 0x1e9b: 0xe0000e59, - 0x1e9c: 0xe0000e65, 0x1e9d: 0xe0000e61, 0x1e9e: 0xe0000e75, 0x1e9f: 0xe0000e71, - 0x1ea0: 0xe0000e6d, 0x1ea1: 0xe0000e69, 0x1ea2: 0xe0000e7d, 0x1ea3: 0xe0000e79, - 0x1ea4: 0xe000108d, 0x1ea5: 0xe000108a, 0x1ea6: 0xe000104d, 0x1ea7: 0xe000104a, - 0x1ea8: 0xe0001066, 0x1ea9: 0xe0001062, 0x1eaa: 0xe000106e, 0x1eab: 0xe000106a, - 0x1eac: 0xe000107e, 0x1ead: 0xe000107a, 0x1eae: 0xe0001076, 0x1eaf: 0xe0001072, - 0x1eb0: 0xe0001086, 0x1eb1: 0xe0001082, 0x1eb2: 0xe0001108, 0x1eb3: 0xe0001105, - 0x1eb4: 0xe0001135, 0x1eb5: 0xe0001132, 0x1eb6: 0xe000112f, 0x1eb7: 0xe000112c, - 0x1eb8: 0xe000111d, 0x1eb9: 0xe000111a, 0x1eba: 0xe0000d0a, 0x1ebb: 0xe0000d07, - 0x1ebc: 0x0030d888, 0x1ebd: 0x4030d820, 0x1ebe: 0x00312088, 0x1ebf: 0x40312020, - // Block 0x7b, offset 0x1ec0 - 0x1ec0: 0xe0001165, 0x1ec1: 0xe00011a9, 0x1ec2: 0xe000117d, 0x1ec3: 0xe00011c1, - 0x1ec4: 0xe000116b, 0x1ec5: 0xe00011af, 0x1ec6: 0xe000118f, 0x1ec7: 0xe00011d3, - 0x1ec8: 0xe0001168, 0x1ec9: 0xe00011ac, 0x1eca: 0xe0001181, 0x1ecb: 0xe00011c5, - 0x1ecc: 0xe000116f, 0x1ecd: 0xe00011b3, 0x1ece: 0xe0001193, 0x1ecf: 0xe00011d7, - 0x1ed0: 0xe000121a, 0x1ed1: 0xe0001230, 0x1ed2: 0xe0001228, 0x1ed3: 0xe000123e, - 0x1ed4: 0xe0001220, 0x1ed5: 0xe0001236, - 0x1ed8: 0xe000121d, 0x1ed9: 0xe0001233, 0x1eda: 0xe000122c, 0x1edb: 0xe0001242, - 0x1edc: 0xe0001224, 0x1edd: 0xe000123a, - 0x1ee0: 0xe0001252, 0x1ee1: 0xe0001296, 0x1ee2: 0xe000126a, 0x1ee3: 0xe00012ae, - 0x1ee4: 0xe0001258, 0x1ee5: 0xe000129c, 0x1ee6: 0xe000127c, 0x1ee7: 0xe00012c0, - 0x1ee8: 0xe0001255, 0x1ee9: 0xe0001299, 0x1eea: 0xe000126e, 0x1eeb: 0xe00012b2, - 0x1eec: 0xe000125c, 0x1eed: 0xe00012a0, 0x1eee: 0xe0001280, 0x1eef: 0xe00012c4, - 0x1ef0: 0xe00012fb, 0x1ef1: 0xe0001319, 0x1ef2: 0xe0001309, 0x1ef3: 0xe0001327, - 0x1ef4: 0xe0001301, 0x1ef5: 0xe000131f, 0x1ef6: 0xe0001311, 0x1ef7: 0xe000132f, - 0x1ef8: 0xe00012fe, 0x1ef9: 0xe000131c, 0x1efa: 0xe000130d, 0x1efb: 0xe000132b, - 0x1efc: 0xe0001305, 0x1efd: 0xe0001323, 0x1efe: 0xe0001315, 0x1eff: 0xe0001333, - // Block 0x7c, offset 0x1f00 - 0x1f00: 0xe000136c, 0x1f01: 0xe0001382, 0x1f02: 0xe000137a, 0x1f03: 0xe0001390, - 0x1f04: 0xe0001372, 0x1f05: 0xe0001388, - 0x1f08: 0xe000136f, 0x1f09: 0xe0001385, 0x1f0a: 0xe000137e, 0x1f0b: 0xe0001394, - 0x1f0c: 0xe0001376, 0x1f0d: 0xe000138c, - 0x1f10: 0xe00013ad, 0x1f11: 0xe00013bc, 0x1f12: 0xe00013b4, 0x1f13: 0xe00013ca, - 0x1f14: 0xe00013b0, 0x1f15: 0xe00013c2, 0x1f16: 0xe00013b8, 0x1f17: 0xe00013d2, - 0x1f19: 0xe00013bf, 0x1f1b: 0xe00013ce, - 0x1f1d: 0xe00013c6, 0x1f1f: 0xe00013d6, - 0x1f20: 0xe0001407, 0x1f21: 0xe000144b, 0x1f22: 0xe000141f, 0x1f23: 0xe0001463, - 0x1f24: 0xe000140d, 0x1f25: 0xe0001451, 0x1f26: 0xe0001431, 0x1f27: 0xe0001475, - 0x1f28: 0xe000140a, 0x1f29: 0xe000144e, 0x1f2a: 0xe0001423, 0x1f2b: 0xe0001467, - 0x1f2c: 0xe0001411, 0x1f2d: 0xe0001455, 0x1f2e: 0xe0001435, 0x1f2f: 0xe0001479, - 0x1f30: 0xe00011f7, 0x1f31: 0xe00011ed, 0x1f32: 0xe000124c, 0x1f33: 0xe0001246, - 0x1f34: 0xe00012e4, 0x1f35: 0xe00012da, 0x1f36: 0xe000133d, 0x1f37: 0xe0001337, - 0x1f38: 0xe000139e, 0x1f39: 0xe0001398, 0x1f3a: 0xe00013e0, 0x1f3b: 0xe00013da, - 0x1f3c: 0xe0001499, 0x1f3d: 0xe000148f, - // Block 0x7d, offset 0x1f40 - 0x1f40: 0xe00011a1, 0x1f41: 0xe00011e5, 0x1f42: 0xe0001185, 0x1f43: 0xe00011c9, - 0x1f44: 0xe0001173, 0x1f45: 0xe00011b7, 0x1f46: 0xe0001197, 0x1f47: 0xe00011db, - 0x1f48: 0xe00011a5, 0x1f49: 0xe00011e9, 0x1f4a: 0xe000118a, 0x1f4b: 0xe00011ce, - 0x1f4c: 0xe0001178, 0x1f4d: 0xe00011bc, 0x1f4e: 0xe000119c, 0x1f4f: 0xe00011e0, - 0x1f50: 0xe000128e, 0x1f51: 0xe00012d2, 0x1f52: 0xe0001272, 0x1f53: 0xe00012b6, - 0x1f54: 0xe0001260, 0x1f55: 0xe00012a4, 0x1f56: 0xe0001284, 0x1f57: 0xe00012c8, - 0x1f58: 0xe0001292, 0x1f59: 0xe00012d6, 0x1f5a: 0xe0001277, 0x1f5b: 0xe00012bb, - 0x1f5c: 0xe0001265, 0x1f5d: 0xe00012a9, 0x1f5e: 0xe0001289, 0x1f5f: 0xe00012cd, - 0x1f60: 0xe0001443, 0x1f61: 0xe0001487, 0x1f62: 0xe0001427, 0x1f63: 0xe000146b, - 0x1f64: 0xe0001415, 0x1f65: 0xe0001459, 0x1f66: 0xe0001439, 0x1f67: 0xe000147d, - 0x1f68: 0xe0001447, 0x1f69: 0xe000148b, 0x1f6a: 0xe000142c, 0x1f6b: 0xe0001470, - 0x1f6c: 0xe000141a, 0x1f6d: 0xe000145e, 0x1f6e: 0xe000143e, 0x1f6f: 0xe0001482, - 0x1f70: 0xe0001201, 0x1f71: 0xe000120e, 0x1f72: 0xe00011fd, 0x1f73: 0xe0001214, - 0x1f74: 0xe00011f3, 0x1f76: 0xe0001207, 0x1f77: 0xe000120a, - 0x1f78: 0xe0001204, 0x1f79: 0xe0001211, 0x1f7a: 0xe00011fa, 0x1f7b: 0xe00011f0, - 0x1f7c: 0xe0001217, 0x1f7d: 0x40063620, 0x1f7e: 0x40326c20, 0x1f7f: 0x40063620, - // Block 0x7e, offset 0x1f80 - 0x1f80: 0x40063a20, 0x1f81: 0xe00000b1, 0x1f82: 0xe00012ea, 0x1f83: 0xe00012f5, - 0x1f84: 0xe00012e0, 0x1f86: 0xe00012ee, 0x1f87: 0xe00012f1, - 0x1f88: 0xe000124f, 0x1f89: 0xe0001249, 0x1f8a: 0xe00012e7, 0x1f8b: 0xe00012dd, - 0x1f8c: 0xe00012f8, 0x1f8d: 0xe00000b7, 0x1f8e: 0xe00000b4, 0x1f8f: 0xe00000ba, - 0x1f90: 0xe0001343, 0x1f91: 0xe000135e, 0x1f92: 0xe0001356, 0x1f93: 0xe0001352, - 0x1f96: 0xe0001349, 0x1f97: 0xe000135a, - 0x1f98: 0xe0001346, 0x1f99: 0xe0001361, 0x1f9a: 0xe0001340, 0x1f9b: 0xe000133a, - 0x1f9d: 0xe00000c0, 0x1f9e: 0xe00000bd, 0x1f9f: 0xe00000c3, - 0x1fa0: 0xe00013e6, 0x1fa1: 0xe0001401, 0x1fa2: 0xe00013f9, 0x1fa3: 0xe00013f5, - 0x1fa4: 0xe00013a4, 0x1fa5: 0xe00013a7, 0x1fa6: 0xe00013ec, 0x1fa7: 0xe00013fd, - 0x1fa8: 0xe00013e9, 0x1fa9: 0xe0001404, 0x1faa: 0xe00013e3, 0x1fab: 0xe00013dd, - 0x1fac: 0xe00013aa, 0x1fad: 0xe00000ae, 0x1fae: 0xe00000ab, 0x1faf: 0x40061e20, - 0x1fb2: 0xe000149f, 0x1fb3: 0xe00014aa, - 0x1fb4: 0xe0001495, 0x1fb6: 0xe00014a3, 0x1fb7: 0xe00014a6, - 0x1fb8: 0xe00013a1, 0x1fb9: 0xe000139b, 0x1fba: 0xe000149c, 0x1fbb: 0xe0001492, - 0x1fbc: 0xe00014ad, 0x1fbd: 0x40062020, 0x1fbe: 0x40063820, - // Block 0x7f, offset 0x1fc0 - 0x1fc0: 0x00021284, 0x1fc1: 0x00021284, 0x1fc2: 0x00021284, 0x1fc3: 0x00021284, - 0x1fc4: 0x00021284, 0x1fc5: 0x00021284, 0x1fc6: 0x00021284, 0x1fc7: 0x0002129b, - 0x1fc8: 0x00021284, 0x1fc9: 0x00021284, 0x1fca: 0x00021284, 0x1fcb: 0xa0000000, - 0x1fcc: 0xa0000000, 0x1fcd: 0xa0000000, 0x1fce: 0xa0000000, 0x1fcf: 0xa0000000, - 0x1fd0: 0x40022620, 0x1fd1: 0x0002269b, 0x1fd2: 0x40022820, 0x1fd3: 0x40022a20, - 0x1fd4: 0x40022c20, 0x1fd5: 0x40022e20, 0x1fd6: 0x4004c420, 0x1fd7: 0x40021820, - 0x1fd8: 0x4003d420, 0x1fd9: 0x4003d620, 0x1fda: 0x4003d820, 0x1fdb: 0x4003da20, - 0x1fdc: 0x4003e220, 0x1fdd: 0x4003e420, 0x1fde: 0x4003e620, 0x1fdf: 0x4003e820, - 0x1fe0: 0x4004f820, 0x1fe1: 0x4004fa20, 0x1fe2: 0x40050220, 0x1fe3: 0x40050420, - 0x1fe4: 0x0002e484, 0x1fe5: 0xf0001f04, 0x1fe6: 0xf0000404, 0x1fe7: 0x40050620, - 0x1fe8: 0x40020e20, 0x1fe9: 0x40021020, 0x1fea: 0xa0000000, 0x1feb: 0xa0000000, - 0x1fec: 0xa0000000, 0x1fed: 0xa0000000, 0x1fee: 0xa0000000, 0x1fef: 0x0002129b, - 0x1ff0: 0x4004f020, 0x1ff1: 0x4004f420, 0x1ff2: 0x40050e20, 0x1ff3: 0xf0001f04, - 0x1ff4: 0xf0000404, 0x1ff5: 0x40051020, 0x1ff6: 0xf0001f04, 0x1ff7: 0xf0000404, - 0x1ff8: 0x40051620, 0x1ff9: 0x4003dc20, 0x1ffa: 0x4003de20, 0x1ffb: 0x40051820, - 0x1ffc: 0xf0001f04, 0x1ffd: 0x4002e020, 0x1ffe: 0x40021420, 0x1fff: 0x40051a20, - // Block 0x80, offset 0x2000 - 0x2000: 0x40051e20, 0x2001: 0x40052220, 0x2002: 0x40052420, 0x2003: 0x40050820, - 0x2004: 0x40095820, 0x2005: 0x40040c20, 0x2006: 0x40040e20, 0x2007: 0xf0001f04, - 0x2008: 0xf0001f04, 0x2009: 0xf0001f04, 0x200a: 0x4004e820, 0x200b: 0x4004d420, - 0x200c: 0x40050a20, 0x200d: 0x40050c20, 0x200e: 0x4004da20, 0x200f: 0x40026620, - 0x2010: 0x40052020, 0x2011: 0x4004dc20, 0x2012: 0x40095020, 0x2013: 0x40023420, - 0x2014: 0x40051c20, 0x2015: 0x40039c20, 0x2016: 0x40039e20, 0x2017: 0xe00000a6, - 0x2018: 0x4003a020, 0x2019: 0x4003a220, 0x201a: 0x4003a420, 0x201b: 0x4003a620, - 0x201c: 0x4003a820, 0x201d: 0x4003aa20, 0x201e: 0x4003ac20, 0x201f: 0x00021284, - 0x2020: 0xa0000000, 0x2021: 0xa0000000, 0x2022: 0xa0000000, 0x2023: 0xa0000000, - 0x2024: 0xa0000000, - 0x202a: 0xa0000000, 0x202b: 0xa0000000, - 0x202c: 0xa0000000, 0x202d: 0xa0000000, 0x202e: 0xa0000000, 0x202f: 0xa0000000, - 0x2030: 0x0029cc94, 0x2031: 0x002d9a94, - 0x2034: 0x0029d494, 0x2035: 0x0029d694, 0x2036: 0x0029d894, 0x2037: 0x0029da94, - 0x2038: 0x0029dc94, 0x2039: 0x0029de94, 0x203a: 0x00093894, 0x203b: 0x00094e94, - 0x203c: 0x00094294, 0x203d: 0x0003f494, 0x203e: 0x0003f694, 0x203f: 0x002e9e94, - // Block 0x81, offset 0x2040 - 0x2040: 0x0029cc95, 0x2041: 0x0029ce95, 0x2042: 0x0029d095, 0x2043: 0x0029d295, - 0x2044: 0x0029d495, 0x2045: 0x0029d695, 0x2046: 0x0029d895, 0x2047: 0x0029da95, - 0x2048: 0x0029dc95, 0x2049: 0x0029de95, 0x204a: 0x00093895, 0x204b: 0x00094e95, - 0x204c: 0x00094295, 0x204d: 0x0003f495, 0x204e: 0x0003f695, - 0x2050: 0x002bde95, 0x2051: 0x002c9895, 0x2052: 0x002ee295, 0x2053: 0x0030f695, - 0x2054: 0x002cb895, 0x2055: 0x002d6895, 0x2056: 0x002dfe95, 0x2057: 0x002e2295, - 0x2058: 0x002e8295, 0x2059: 0x002e9e95, 0x205a: 0x002f2c95, 0x205b: 0x002fe695, - 0x205c: 0x00302c95, - 0x2060: 0x4027f820, 0x2061: 0x4027fa20, 0x2062: 0x4027fc20, 0x2063: 0x4027fe20, - 0x2064: 0x40280020, 0x2065: 0x40280220, 0x2066: 0x40280420, 0x2067: 0x40280620, - 0x2068: 0x40282c20, 0x2069: 0x40280820, 0x206a: 0x40280a20, 0x206b: 0x40280c20, - 0x206c: 0x40280e20, 0x206d: 0x40281020, 0x206e: 0x40281220, 0x206f: 0x40281420, - 0x2070: 0x40281620, 0x2071: 0x40281820, 0x2072: 0x40281a20, 0x2073: 0x40281c20, - 0x2074: 0x40281e20, 0x2075: 0x40282020, 0x2076: 0x40282220, 0x2077: 0x40282420, - 0x2078: 0x40282620, 0x2079: 0x40282820, 0x207a: 0x40282a20, - // Block 0x82, offset 0x2080 - 0x2090: 0xae612a02, 0x2091: 0xae612b02, 0x2092: 0xa0112c02, 0x2093: 0xa0112c02, - 0x2094: 0xae612d02, 0x2095: 0xae612e02, 0x2096: 0xae612f02, 0x2097: 0xae613002, - 0x2098: 0xa0106102, 0x2099: 0xa0106102, 0x209a: 0xa0106102, 0x209b: 0xae613102, - 0x209c: 0xae613202, 0x209d: 0xa0006202, 0x209e: 0xa0006202, 0x209f: 0xa0006202, - 0x20a0: 0xa0006202, 0x20a1: 0xae613302, 0x20a2: 0xa0006202, 0x20a3: 0xa0006202, - 0x20a4: 0xa0006202, 0x20a5: 0xa0106102, 0x20a6: 0xa0113402, 0x20a7: 0xae613502, - 0x20a8: 0xadc13602, 0x20a9: 0xae613702, 0x20aa: 0xa0106102, 0x20ab: 0xa0106102, - 0x20ac: 0xadc06002, 0x20ad: 0xadc06002, 0x20ae: 0xadc06002, 0x20af: 0xadc06002, - 0x20b0: 0xae605f02, - // Block 0x83, offset 0x20c0 - 0x20c0: 0xe00009bc, 0x20c1: 0xe00009c0, 0x20c2: 0x002c3a8b, 0x20c3: 0xf0000a04, - 0x20c4: 0x40081c20, 0x20c5: 0xe0000a5e, 0x20c6: 0xe0000a62, 0x20c7: 0x002cc28a, - 0x20c8: 0x40081e20, 0x20c9: 0xf0000a04, 0x20ca: 0x002d2285, 0x20cb: 0x002d688b, - 0x20cc: 0x002d688b, 0x20cd: 0x002d688b, 0x20ce: 0x002d6885, 0x20cf: 0xf0000202, - 0x20d0: 0x002d9a8b, 0x20d1: 0x002d9a8b, 0x20d2: 0x002e228b, 0x20d3: 0x002e2285, - 0x20d4: 0x40082020, 0x20d5: 0x002e9e8b, 0x20d6: 0xf000040a, 0x20d7: 0x40082220, - 0x20d8: 0x40082420, 0x20d9: 0x002f2c8b, 0x20da: 0x002f568b, 0x20db: 0x002f7a8b, - 0x20dc: 0x002f7a8b, 0x20dd: 0x002f7a8b, 0x20de: 0x40082620, 0x20df: 0x40082820, - 0x20e0: 0xf0001414, 0x20e1: 0xe0000fbd, 0x20e2: 0xf0001414, 0x20e3: 0x40082a20, - 0x20e4: 0x00312a8b, 0x20e5: 0x40082c20, 0x20e6: 0x0032a288, 0x20e7: 0x40082e20, - 0x20e8: 0x00312a8b, 0x20e9: 0x40083020, 0x20ea: 0x002dfe88, 0x20eb: 0xe000094d, - 0x20ec: 0x002c0a8b, 0x20ed: 0x002c3a8b, 0x20ee: 0x40083220, 0x20ef: 0x002c9885, - 0x20f0: 0x002c988b, 0x20f1: 0x002d088b, 0x20f2: 0x002d1e88, 0x20f3: 0x002e828b, - 0x20f4: 0x002ee285, 0x20f5: 0x00389084, 0x20f6: 0x00389284, 0x20f7: 0x00389484, - 0x20f8: 0x00389684, 0x20f9: 0x002d9a85, 0x20fa: 0x40083420, 0x20fb: 0xe0000b95, - 0x20fc: 0x00327e85, 0x20fd: 0x00325685, 0x20fe: 0x0032568b, 0x20ff: 0x00327e8b, - // Block 0x84, offset 0x2100 - 0x2100: 0x00093685, 0x2101: 0x40083620, 0x2102: 0x40083820, 0x2103: 0x40083a20, - 0x2104: 0x40083c20, 0x2105: 0x002c628b, 0x2106: 0x002c6285, 0x2107: 0x002c9885, - 0x2108: 0x002d9a85, 0x2109: 0x002dcc85, 0x210a: 0x40083e20, 0x210b: 0x400a6e20, - 0x210c: 0x40084020, 0x210d: 0xe00009c4, 0x210e: 0x402d1e20, 0x210f: 0x40084220, - 0x2110: 0xe00002cb, 0x2111: 0xe00002d3, 0x2112: 0xe00002b2, 0x2113: 0xe00002bb, - 0x2114: 0xe00003cd, 0x2115: 0xe00002c3, 0x2116: 0xe00003d1, 0x2117: 0xe00004ab, - 0x2118: 0xe0000579, 0x2119: 0xe00002c7, 0x211a: 0xe0000640, 0x211b: 0xe00002cf, - 0x211c: 0xe00004af, 0x211d: 0xe0000644, 0x211e: 0xe0000798, 0x211f: 0xf0001e1e, - 0x2120: 0x002d9a8a, 0x2121: 0xf0001f0a, 0x2122: 0xf0000a0a, 0x2123: 0xf0001f0a, - 0x2124: 0x0030be8a, 0x2125: 0xf0001f0a, 0x2126: 0xf0000a0a, 0x2127: 0xe00010bb, - 0x2128: 0xf0001f0a, 0x2129: 0x0030f68a, 0x212a: 0xf0001f0a, 0x212b: 0xf0000a0a, - 0x212c: 0x002e228a, 0x212d: 0x002c3a8a, 0x212e: 0x002c628a, 0x212f: 0x002e828a, - 0x2130: 0x002d9a84, 0x2131: 0xf0001f04, 0x2132: 0xf0000404, 0x2133: 0xf0001f04, - 0x2134: 0x0030be84, 0x2135: 0xf0001f04, 0x2136: 0xf0000404, 0x2137: 0xe00010b6, - 0x2138: 0xf0001f04, 0x2139: 0x0030f684, 0x213a: 0xf0001f04, 0x213b: 0xf0000404, - 0x213c: 0x002e2284, 0x213d: 0x002c3a84, 0x213e: 0x002c6284, 0x213f: 0x002e8284, - // Block 0x85, offset 0x2140 - 0x2140: 0x40287c20, 0x2141: 0x40287e20, 0x2142: 0x40288020, 0x2143: 0x002c5e88, - 0x2144: 0x402c5e20, 0x2145: 0xe00006c9, 0x2146: 0x40288220, 0x2147: 0x40288420, - 0x2148: 0x40288620, 0x2149: 0xe00001e2, - 0x2150: 0x40084420, 0x2151: 0x40084820, 0x2152: 0x40084620, 0x2153: 0x40084a20, - 0x2154: 0x40084c20, 0x2155: 0x40084e20, 0x2156: 0x40085020, 0x2157: 0x40085220, - 0x2158: 0x40085420, 0x2159: 0x40085620, 0x215a: 0xe00000c6, 0x215b: 0xe00000c9, - 0x215c: 0x40085820, 0x215d: 0x40085a20, 0x215e: 0x40085c20, 0x215f: 0x40085e20, - 0x2160: 0x40086020, 0x2161: 0x40086220, 0x2162: 0x40086420, 0x2163: 0x40086620, - 0x2164: 0x40086820, 0x2165: 0x40086a20, 0x2166: 0x40086c20, 0x2167: 0x40086e20, - 0x2168: 0x40087020, 0x2169: 0x40087220, 0x216a: 0x40087420, 0x216b: 0x40087620, - 0x216c: 0x40087820, 0x216d: 0x40087a20, 0x216e: 0xe00000cc, 0x216f: 0x40087c20, - 0x2170: 0x40087e20, 0x2171: 0x40088020, 0x2172: 0x40088220, 0x2173: 0x40088420, - 0x2174: 0x40088620, 0x2175: 0x40088820, 0x2176: 0x40088a20, 0x2177: 0x40088c20, - 0x2178: 0x40088e20, 0x2179: 0x40089020, 0x217a: 0x40089220, 0x217b: 0x40089420, - 0x217c: 0x40089620, 0x217d: 0x40089820, 0x217e: 0x40089a20, 0x217f: 0x40089c20, - // Block 0x86, offset 0x2180 - 0x2180: 0x40089e20, 0x2181: 0x4008a020, 0x2182: 0x4008a220, 0x2183: 0x4008a420, - 0x2184: 0x4008a620, 0x2185: 0x4008a820, 0x2186: 0x4008aa20, 0x2187: 0x4008ac20, - 0x2188: 0x4008ae20, 0x2189: 0x4008b020, 0x218a: 0x4008b220, 0x218b: 0x4008b420, - 0x218c: 0x4008b620, 0x218d: 0xe00000cf, 0x218e: 0xe00000d5, 0x218f: 0xe00000d2, - 0x2190: 0x4008b820, 0x2191: 0x4008ba20, 0x2192: 0x4008bc20, 0x2193: 0x4008be20, - 0x2194: 0x4008c020, 0x2195: 0x4008c220, 0x2196: 0x4008c420, 0x2197: 0x4008c620, - 0x2198: 0x4008c820, 0x2199: 0x4008ca20, 0x219a: 0x4008cc20, 0x219b: 0x4008ce20, - 0x219c: 0x4008d020, 0x219d: 0x4008d220, 0x219e: 0x4008d420, 0x219f: 0x4008d620, - 0x21a0: 0x4008d820, 0x21a1: 0x4008da20, 0x21a2: 0x4008dc20, 0x21a3: 0x4008de20, - 0x21a4: 0x4008e020, 0x21a5: 0x4008e220, 0x21a6: 0x4008e420, 0x21a7: 0x4008e620, - 0x21a8: 0x4008e820, 0x21a9: 0x4008ea20, 0x21aa: 0x4008ec20, 0x21ab: 0x4008ee20, - 0x21ac: 0x4008f020, 0x21ad: 0x4008f220, 0x21ae: 0x4008f420, 0x21af: 0x4008f620, - 0x21b0: 0x4008f820, 0x21b1: 0x4008fa20, 0x21b2: 0x4008fc20, 0x21b3: 0x4008fe20, - 0x21b4: 0x40090020, 0x21b5: 0x40090220, 0x21b6: 0x40090420, 0x21b7: 0x40090620, - 0x21b8: 0x40090820, 0x21b9: 0x40090a20, 0x21ba: 0x40090c20, 0x21bb: 0x40090e20, - 0x21bc: 0x40091020, 0x21bd: 0x40091220, 0x21be: 0x40091420, 0x21bf: 0x40091620, - // Block 0x87, offset 0x21c0 - 0x21c0: 0x40091820, 0x21c1: 0x40091a20, 0x21c2: 0x40091c20, 0x21c3: 0x40091e20, - 0x21c4: 0xe00000d8, 0x21c5: 0x40092020, 0x21c6: 0x40092220, 0x21c7: 0x40092420, - 0x21c8: 0x40092620, 0x21c9: 0xe00000db, 0x21ca: 0x40092820, 0x21cb: 0x40092a20, - 0x21cc: 0xe00000de, 0x21cd: 0x40092c20, 0x21ce: 0x40093020, 0x21cf: 0x40093220, - 0x21d0: 0x40093420, 0x21d1: 0x40093620, 0x21d2: 0x40094e20, 0x21d3: 0x40095220, - 0x21d4: 0x40095420, 0x21d5: 0x40095620, 0x21d6: 0x40095a20, 0x21d7: 0x40095c20, - 0x21d8: 0x40095e20, 0x21d9: 0x40096020, 0x21da: 0x40096220, 0x21db: 0x40096420, - 0x21dc: 0x40096820, 0x21dd: 0x40096c20, 0x21de: 0x40096e20, 0x21df: 0x40097020, - 0x21e0: 0x40097220, 0x21e1: 0x40097420, 0x21e2: 0x40097620, 0x21e3: 0x40097820, - 0x21e4: 0xe00000ea, 0x21e5: 0x40097a20, 0x21e6: 0xe00000ed, 0x21e7: 0x40097c20, - 0x21e8: 0x40097e20, 0x21e9: 0x40098020, 0x21ea: 0x40098220, 0x21eb: 0x40098420, - 0x21ec: 0xf0001f04, 0x21ed: 0xf0000404, 0x21ee: 0x40098620, 0x21ef: 0xf0001f04, - 0x21f0: 0xf0000404, 0x21f1: 0x40098820, 0x21f2: 0x40098a20, 0x21f3: 0x40098c20, - 0x21f4: 0x40098e20, 0x21f5: 0x40099020, 0x21f6: 0x40099220, 0x21f7: 0x40099420, - 0x21f8: 0x40099620, 0x21f9: 0x40099820, 0x21fa: 0x40099a20, 0x21fb: 0x40099c20, - 0x21fc: 0x40099e20, 0x21fd: 0x4009a020, 0x21fe: 0x4009a220, 0x21ff: 0x4009a420, - // Block 0x88, offset 0x2200 - 0x2200: 0x4009a620, 0x2201: 0xe00000f5, 0x2202: 0x4009a820, 0x2203: 0x4009aa20, - 0x2204: 0xe00000f8, 0x2205: 0x4009ac20, 0x2206: 0x4009ae20, 0x2207: 0xe00000fb, - 0x2208: 0x4009b020, 0x2209: 0xe00000fe, 0x220a: 0x4009b220, 0x220b: 0x4009b420, - 0x220c: 0x4009b620, 0x220d: 0x4009b820, 0x220e: 0x4009ba20, 0x220f: 0x4009bc20, - 0x2210: 0x4009be20, 0x2211: 0x4009c020, 0x2212: 0x4009c220, 0x2213: 0x4009c420, - 0x2214: 0x4009c620, 0x2215: 0x4009c820, 0x2216: 0x4009ca20, 0x2217: 0x4009cc20, - 0x2218: 0x4009ce20, 0x2219: 0x4009d020, 0x221a: 0x4009d220, 0x221b: 0x4009d420, - 0x221c: 0x4009d620, 0x221d: 0x4009d820, 0x221e: 0x4009da20, 0x221f: 0x4009dc20, - 0x2220: 0xe00000e4, 0x2221: 0x4009de20, 0x2222: 0xe0000104, 0x2223: 0x4009e020, - 0x2224: 0x4009e220, 0x2225: 0x4009e420, 0x2226: 0x4009e620, 0x2227: 0x4009e820, - 0x2228: 0x4009ea20, 0x2229: 0x4009ec20, 0x222a: 0x4009ee20, 0x222b: 0x4009f020, - 0x222c: 0x4009f220, 0x222d: 0xe0000101, 0x222e: 0xe00000e1, 0x222f: 0xe00000e7, - 0x2230: 0xe0000107, 0x2231: 0xe000010a, 0x2232: 0x4009f420, 0x2233: 0x4009f620, - 0x2234: 0xe000010d, 0x2235: 0xe0000110, 0x2236: 0x4009f820, 0x2237: 0x4009fa20, - 0x2238: 0xe0000113, 0x2239: 0xe0000116, 0x223a: 0x4009fc20, 0x223b: 0x4009fe20, - 0x223c: 0x400a0020, 0x223d: 0x400a0220, 0x223e: 0x400a0420, 0x223f: 0x400a0620, - // Block 0x89, offset 0x2240 - 0x2240: 0xe0000119, 0x2241: 0xe000011c, 0x2242: 0x400a0820, 0x2243: 0x400a0a20, - 0x2244: 0xe0000125, 0x2245: 0xe0000128, 0x2246: 0x400a0c20, 0x2247: 0x400a0e20, - 0x2248: 0xe000012b, 0x2249: 0xe000012e, 0x224a: 0x400a1020, 0x224b: 0x400a1220, - 0x224c: 0x400a1420, 0x224d: 0x400a1620, 0x224e: 0x400a1820, 0x224f: 0x400a1a20, - 0x2250: 0x400a1c20, 0x2251: 0x400a1e20, 0x2252: 0x400a2020, 0x2253: 0x400a2220, - 0x2254: 0x400a2420, 0x2255: 0x400a2620, 0x2256: 0x400a2820, 0x2257: 0x400a2a20, - 0x2258: 0x400a2c20, 0x2259: 0x400a2e20, 0x225a: 0x400a3020, 0x225b: 0x400a3220, - 0x225c: 0x400a3420, 0x225d: 0x400a3620, 0x225e: 0x400a3820, 0x225f: 0x400a3a20, - 0x2260: 0x400a3c20, 0x2261: 0x400a3e20, 0x2262: 0x400a4020, 0x2263: 0x400a4220, - 0x2264: 0x400a4420, 0x2265: 0x400a4620, 0x2266: 0x400a4820, 0x2267: 0x400a4a20, - 0x2268: 0x400a4c20, 0x2269: 0x400a4e20, 0x226a: 0x400a5020, 0x226b: 0x400a5220, - 0x226c: 0xe0000137, 0x226d: 0xe000013a, 0x226e: 0xe000013d, 0x226f: 0xe0000140, - 0x2270: 0x400a5420, 0x2271: 0x400a5620, 0x2272: 0x400a5820, 0x2273: 0x400a5a20, - 0x2274: 0x400a5c20, 0x2275: 0x400a5e20, 0x2276: 0x400a6020, 0x2277: 0x400a6220, - 0x2278: 0x400a6420, 0x2279: 0x400a6620, 0x227a: 0x400a6820, 0x227b: 0x400a6a20, - 0x227c: 0x400a6c20, 0x227d: 0x400a7020, 0x227e: 0x400a7220, 0x227f: 0x400a7420, - // Block 0x8a, offset 0x2280 - 0x2280: 0x400a7620, 0x2281: 0x400a7820, 0x2282: 0x400a7a20, 0x2283: 0x400a7c20, - 0x2284: 0x400a7e20, 0x2285: 0x400a8020, 0x2286: 0x400a8220, 0x2287: 0x400a8420, - 0x2288: 0x400a8620, 0x2289: 0x400a8820, 0x228a: 0x400a8a20, 0x228b: 0x400a8c20, - 0x228c: 0x400a8e20, 0x228d: 0x400a9020, 0x228e: 0x400a9220, 0x228f: 0x400a9420, - 0x2290: 0x400a9620, 0x2291: 0x400a9820, 0x2292: 0x400a9a20, 0x2293: 0x400a9c20, - 0x2294: 0x400a9e20, 0x2295: 0x400aa020, 0x2296: 0x400aa220, 0x2297: 0x400aa420, - 0x2298: 0x400aa620, 0x2299: 0x400aa820, 0x229a: 0x400aaa20, 0x229b: 0x400aac20, - 0x229c: 0x400aae20, 0x229d: 0x400ab020, 0x229e: 0x400ab220, 0x229f: 0x400ab420, - 0x22a0: 0xe000011f, 0x22a1: 0xe0000122, 0x22a2: 0xe0000131, 0x22a3: 0xe0000134, - 0x22a4: 0x400ab620, 0x22a5: 0x400ab820, 0x22a6: 0x400aba20, 0x22a7: 0x400abc20, - 0x22a8: 0x400abe20, 0x22a9: 0x400ac020, 0x22aa: 0xe0000143, 0x22ab: 0xe0000146, - 0x22ac: 0xe0000149, 0x22ad: 0xe000014c, 0x22ae: 0x400ac220, 0x22af: 0x400ac420, - 0x22b0: 0x400ac620, 0x22b1: 0x400ac820, 0x22b2: 0x400aca20, 0x22b3: 0x400acc20, - 0x22b4: 0x400ace20, 0x22b5: 0x400ad020, 0x22b6: 0x400ad220, 0x22b7: 0x400ad420, - 0x22b8: 0x400ad620, 0x22b9: 0x400ad820, 0x22ba: 0x400ada20, 0x22bb: 0x400adc20, - 0x22bc: 0x400ade20, 0x22bd: 0x400ae020, 0x22be: 0x400ae220, 0x22bf: 0x400ae420, - // Block 0x8b, offset 0x22c0 - 0x22c0: 0x400ae620, 0x22c1: 0x400ae820, 0x22c2: 0x400aea20, 0x22c3: 0x400aec20, - 0x22c4: 0x400aee20, 0x22c5: 0x400af020, 0x22c6: 0x400af220, 0x22c7: 0x400af420, - 0x22c8: 0x400af620, 0x22c9: 0x400af820, 0x22ca: 0x400afa20, 0x22cb: 0x400afc20, - 0x22cc: 0x400afe20, 0x22cd: 0x400b0020, 0x22ce: 0x400b0220, 0x22cf: 0x400b0420, - 0x22d0: 0x400b0620, 0x22d1: 0x400b0820, 0x22d2: 0x400b0a20, 0x22d3: 0x400b0c20, - 0x22d4: 0x400b0e20, 0x22d5: 0x400b1020, 0x22d6: 0x400b1220, 0x22d7: 0x400b1420, - 0x22d8: 0x400b1620, 0x22d9: 0x400b1820, 0x22da: 0x400b1a20, 0x22db: 0x400b1c20, - 0x22dc: 0x400b1e20, 0x22dd: 0x400b2020, 0x22de: 0x400b2220, 0x22df: 0x400b2420, - 0x22e0: 0x400b2620, 0x22e1: 0x400b2820, 0x22e2: 0x400b2a20, 0x22e3: 0x400b2c20, - 0x22e4: 0x400b2e20, 0x22e5: 0x400b3020, 0x22e6: 0x400b3220, 0x22e7: 0x400b3420, - 0x22e8: 0x400b3620, 0x22e9: 0x40049c20, 0x22ea: 0x40049e20, 0x22eb: 0x400b3820, - 0x22ec: 0x400b3a20, 0x22ed: 0x400b3c20, 0x22ee: 0x400b3e20, 0x22ef: 0x400b4020, - 0x22f0: 0x400b4220, 0x22f1: 0x400b4420, 0x22f2: 0x400b4620, 0x22f3: 0x400b4820, - 0x22f4: 0x400b4a20, 0x22f5: 0x400b4c20, 0x22f6: 0x400b4e20, 0x22f7: 0x400b5020, - 0x22f8: 0x400b5220, 0x22f9: 0x400b5420, 0x22fa: 0x400b5620, 0x22fb: 0x400b5820, - 0x22fc: 0x400b5a20, 0x22fd: 0x400b5c20, 0x22fe: 0x400b5e20, 0x22ff: 0x400b6020, - // Block 0x8c, offset 0x2300 - 0x2300: 0x400b6220, 0x2301: 0x400b6420, 0x2302: 0x400b6620, 0x2303: 0x400b6820, - 0x2304: 0x400b6a20, 0x2305: 0x400b6c20, 0x2306: 0x400b6e20, 0x2307: 0x400b7020, - 0x2308: 0x400b7220, 0x2309: 0x400b7420, 0x230a: 0x400b7620, 0x230b: 0x400b7820, - 0x230c: 0x400b7a20, 0x230d: 0x400b7c20, 0x230e: 0x400b7e20, 0x230f: 0x400b8020, - 0x2310: 0x400b8220, 0x2311: 0x400b8420, 0x2312: 0x400b8620, 0x2313: 0x400b8820, - 0x2314: 0x400b8a20, 0x2315: 0x400b8c20, 0x2316: 0x400b8e20, 0x2317: 0x400b9020, - 0x2318: 0x400b9220, 0x2319: 0x400b9420, 0x231a: 0x400b9620, 0x231b: 0x400b9820, - 0x231c: 0x400b9a20, 0x231d: 0x400b9c20, 0x231e: 0x400b9e20, 0x231f: 0x400ba020, - 0x2320: 0x400ba220, 0x2321: 0x400ba420, 0x2322: 0x400ba620, 0x2323: 0x400ba820, - 0x2324: 0x400baa20, 0x2325: 0x400bac20, 0x2326: 0x400bae20, 0x2327: 0x400bb020, - 0x2328: 0x400bb220, 0x2329: 0x400bb420, 0x232a: 0x400bb620, 0x232b: 0x400bb820, - 0x232c: 0x400bba20, 0x232d: 0x400bbc20, 0x232e: 0x400bbe20, 0x232f: 0x400bc020, - 0x2330: 0x400bc220, 0x2331: 0x400bc420, 0x2332: 0x400bc620, 0x2333: 0x400bc820, - 0x2334: 0x400bca20, 0x2335: 0x400bcc20, 0x2336: 0x400bce20, 0x2337: 0x400bd020, - 0x2338: 0x400bd220, 0x2339: 0x400bd420, 0x233a: 0x400bd620, 0x233b: 0x400bd820, - 0x233c: 0x400bda20, 0x233d: 0x400bdc20, 0x233e: 0x400bde20, 0x233f: 0x400be020, - // Block 0x8d, offset 0x2340 - 0x2340: 0x400be220, 0x2341: 0x400be420, 0x2342: 0x400be620, 0x2343: 0x400be820, - 0x2344: 0x400bea20, 0x2345: 0x400bec20, 0x2346: 0x400bee20, 0x2347: 0x400bf020, - 0x2348: 0x400bf220, 0x2349: 0x400bf420, 0x234a: 0x400bf620, 0x234b: 0x400bf820, - 0x234c: 0x400bfa20, 0x234d: 0x400bfc20, 0x234e: 0x400bfe20, 0x234f: 0x400c0020, - 0x2350: 0x400c0220, 0x2351: 0x400c0420, 0x2352: 0x400c0620, 0x2353: 0x400c0820, - 0x2354: 0x400c0a20, 0x2355: 0x400c0c20, 0x2356: 0x400c0e20, 0x2357: 0x400c1020, - 0x2358: 0x400c1220, 0x2359: 0x400c1420, 0x235a: 0x400c1620, 0x235b: 0x400c1820, - 0x235c: 0x400c1a20, 0x235d: 0x400c1c20, 0x235e: 0x400c1e20, 0x235f: 0x400c2020, - 0x2360: 0x400c2220, 0x2361: 0x400c2420, 0x2362: 0x400c2620, 0x2363: 0x400c2820, - 0x2364: 0x400c2a20, 0x2365: 0x400c2c20, 0x2366: 0x400c2e20, 0x2367: 0x400c3020, - 0x2368: 0x400c3220, 0x2369: 0x400c3420, 0x236a: 0x400c3620, 0x236b: 0x400c3820, - 0x236c: 0x400c3a20, 0x236d: 0x400c3c20, 0x236e: 0x400c3e20, 0x236f: 0x400c4020, - 0x2370: 0x400c4220, 0x2371: 0x400c4420, 0x2372: 0x400c4620, 0x2373: 0x400c4820, - 0x2374: 0x400c4a20, 0x2375: 0x400c4c20, 0x2376: 0x400c4e20, 0x2377: 0x400c5020, - 0x2378: 0x400c5220, 0x2379: 0x400c5420, 0x237a: 0x400c5620, 0x237b: 0x400c5820, - 0x237c: 0x400c5a20, 0x237d: 0x400c5c20, 0x237e: 0x400c5e20, 0x237f: 0x400c6020, - // Block 0x8e, offset 0x2380 - 0x2380: 0x400c6220, 0x2381: 0x400c6420, 0x2382: 0x400c6620, 0x2383: 0x400c6820, - 0x2384: 0x400c6a20, 0x2385: 0x400c6c20, 0x2386: 0x400c6e20, 0x2387: 0x400c7020, - 0x2388: 0x400c7220, 0x2389: 0x400c7420, 0x238a: 0x400c7620, 0x238b: 0x400c7820, - 0x238c: 0x400c7a20, 0x238d: 0x400c7c20, 0x238e: 0x400c7e20, 0x238f: 0x400c8020, - 0x2390: 0x400c8220, 0x2391: 0x400c8420, 0x2392: 0x400c8620, 0x2393: 0x400c8820, - 0x2394: 0x400c8a20, 0x2395: 0x400c8c20, 0x2396: 0x400c8e20, 0x2397: 0x400c9020, - 0x2398: 0x400c9220, 0x2399: 0x400c9420, 0x239a: 0x400c9620, 0x239b: 0x400c9820, - 0x239c: 0x400c9a20, 0x239d: 0x400c9c20, 0x239e: 0x400c9e20, 0x239f: 0x400ca020, - 0x23a0: 0x400ca220, 0x23a1: 0x400ca420, 0x23a2: 0x400ca620, 0x23a3: 0x400ca820, - 0x23a4: 0x400caa20, 0x23a5: 0x400cac20, 0x23a6: 0x400cae20, 0x23a7: 0x400cb020, - 0x23a8: 0x400cb220, 0x23a9: 0x400cb420, 0x23aa: 0x400cb620, 0x23ab: 0x400cb820, - 0x23ac: 0x400cba20, 0x23ad: 0x400cbc20, 0x23ae: 0x400cbe20, 0x23af: 0x400cc020, - 0x23b0: 0x400cc220, 0x23b1: 0x400cc420, 0x23b2: 0x400cc620, 0x23b3: 0x400cc820, - // Block 0x8f, offset 0x23c0 - 0x23c0: 0x400cca20, 0x23c1: 0x400ccc20, 0x23c2: 0x400cce20, 0x23c3: 0x400cd020, - 0x23c4: 0x400cd220, 0x23c5: 0x400cd420, 0x23c6: 0x400cd620, 0x23c7: 0x400cd820, - 0x23c8: 0x400cda20, 0x23c9: 0x400cdc20, 0x23ca: 0x400cde20, 0x23cb: 0x400ce020, - 0x23cc: 0x400ce220, 0x23cd: 0x400ce420, 0x23ce: 0x400ce620, 0x23cf: 0x400ce820, - 0x23d0: 0x400cea20, 0x23d1: 0x400cec20, 0x23d2: 0x400cee20, 0x23d3: 0x400cf020, - 0x23d4: 0x400cf220, 0x23d5: 0x400cf420, 0x23d6: 0x400cf620, 0x23d7: 0x400cf820, - 0x23d8: 0x400cfa20, 0x23d9: 0x400cfc20, 0x23da: 0x400cfe20, 0x23db: 0x400d0020, - 0x23dc: 0x400d0220, 0x23dd: 0x400d0420, 0x23de: 0x400d0620, 0x23df: 0x400d0820, - 0x23e0: 0x400d0a20, 0x23e1: 0x400d0c20, 0x23e2: 0x400d0e20, 0x23e3: 0x400d1020, - 0x23e4: 0x400d1220, 0x23e5: 0x400d1420, 0x23e6: 0x400d1620, - // Block 0x90, offset 0x2400 - 0x2400: 0x400d1820, 0x2401: 0x400d1a20, 0x2402: 0x400d1c20, 0x2403: 0x400d1e20, - 0x2404: 0x400d2020, 0x2405: 0x400d2220, 0x2406: 0x400d2420, 0x2407: 0x400d2620, - 0x2408: 0x400d2820, 0x2409: 0x400d2a20, 0x240a: 0x400d2c20, - 0x2420: 0x0029ce86, 0x2421: 0x0029d086, 0x2422: 0x0029d286, 0x2423: 0x0029d486, - 0x2424: 0x0029d686, 0x2425: 0x0029d886, 0x2426: 0x0029da86, 0x2427: 0x0029dc86, - 0x2428: 0x0029de86, 0x2429: 0xf0000606, 0x242a: 0xf0000606, 0x242b: 0xf0000606, - 0x242c: 0xf0000606, 0x242d: 0xf0000606, 0x242e: 0xf0000606, 0x242f: 0xf0000606, - 0x2430: 0xf0000606, 0x2431: 0xf0000606, 0x2432: 0xf0000606, 0x2433: 0xf0000606, - 0x2434: 0xf0000404, 0x2435: 0xf0000404, 0x2436: 0xf0000404, 0x2437: 0xf0000404, - 0x2438: 0xf0000404, 0x2439: 0xf0000404, 0x243a: 0xf0000404, 0x243b: 0xf0000404, - 0x243c: 0xf0000404, 0x243d: 0xe0000015, 0x243e: 0xe000001a, 0x243f: 0xe000001f, - // Block 0x91, offset 0x2440 - 0x2440: 0xe0000024, 0x2441: 0xe0000029, 0x2442: 0xe000002e, 0x2443: 0xe0000033, - 0x2444: 0xe0000038, 0x2445: 0xe000003d, 0x2446: 0xe0000042, 0x2447: 0xe0000047, - 0x2448: 0xf0001f04, 0x2449: 0xf0001f04, 0x244a: 0xf0001f04, 0x244b: 0xf0001f04, - 0x244c: 0xf0001f04, 0x244d: 0xf0001f04, 0x244e: 0xf0001f04, 0x244f: 0xf0001f04, - 0x2450: 0xf0001f04, 0x2451: 0xf0000404, 0x2452: 0xf0000404, 0x2453: 0xf0000404, - 0x2454: 0xf0000404, 0x2455: 0xf0000404, 0x2456: 0xf0000404, 0x2457: 0xf0000404, - 0x2458: 0xf0000404, 0x2459: 0xf0000404, 0x245a: 0xf0000404, 0x245b: 0xf0000404, - 0x245c: 0xf0000404, 0x245d: 0xf0000404, 0x245e: 0xf0000404, 0x245f: 0xf0000404, - 0x2460: 0xf0000404, 0x2461: 0xf0000404, 0x2462: 0xf0000404, 0x2463: 0xf0000404, - 0x2464: 0xf0000404, 0x2465: 0xf0000404, 0x2466: 0xf0000404, 0x2467: 0xf0000404, - 0x2468: 0xf0000404, 0x2469: 0xf0000404, 0x246a: 0xf0000404, 0x246b: 0xf0000404, - 0x246c: 0xf0000404, 0x246d: 0xf0000404, 0x246e: 0xf0000404, 0x246f: 0xf0000404, - 0x2470: 0xf0000404, 0x2471: 0xf0000404, 0x2472: 0xf0000404, 0x2473: 0xf0000404, - 0x2474: 0xf0000404, 0x2475: 0xf0000404, 0x2476: 0x002bde8c, 0x2477: 0x002c0a8c, - 0x2478: 0x002c3a8c, 0x2479: 0x002c628c, 0x247a: 0x002c988c, 0x247b: 0x002d088c, - 0x247c: 0x002d228c, 0x247d: 0x002d688c, 0x247e: 0x002d9a8c, 0x247f: 0x002dcc8c, - // Block 0x92, offset 0x2480 - 0x2480: 0x002dfe8c, 0x2481: 0x002e228c, 0x2482: 0x002e828c, 0x2483: 0x002e9e8c, - 0x2484: 0x002ee28c, 0x2485: 0x002f2c8c, 0x2486: 0x002f568c, 0x2487: 0x002f7a8c, - 0x2488: 0x002fe68c, 0x2489: 0x00302c8c, 0x248a: 0x00306c8c, 0x248b: 0x0030be8c, - 0x248c: 0x0030e28c, 0x248d: 0x0030f68c, 0x248e: 0x0031008c, 0x248f: 0x00312a8c, - 0x2490: 0x002bde86, 0x2491: 0x002c0a86, 0x2492: 0x002c3a86, 0x2493: 0x002c6286, - 0x2494: 0x002c9886, 0x2495: 0x002d0886, 0x2496: 0x002d2286, 0x2497: 0x002d6886, - 0x2498: 0x002d9a86, 0x2499: 0x002dcc86, 0x249a: 0x002dfe86, 0x249b: 0x002e2286, - 0x249c: 0x002e8286, 0x249d: 0x002e9e86, 0x249e: 0x002ee286, 0x249f: 0x002f2c86, - 0x24a0: 0x002f5686, 0x24a1: 0x002f7a86, 0x24a2: 0x002fe686, 0x24a3: 0x00302c86, - 0x24a4: 0x00306c86, 0x24a5: 0x0030be86, 0x24a6: 0x0030e286, 0x24a7: 0x0030f686, - 0x24a8: 0x00310086, 0x24a9: 0x00312a86, 0x24aa: 0x0029cc86, 0x24ab: 0xe00002e6, - 0x24ac: 0xe00002e9, 0x24ad: 0xe00002ec, 0x24ae: 0xe00002ef, 0x24af: 0xe00002f2, - 0x24b0: 0xe00002f5, 0x24b1: 0xe00002f8, 0x24b2: 0xe00002fb, 0x24b3: 0xe00002fe, - 0x24b4: 0xe00003d5, 0x24b5: 0x0029ce86, 0x24b6: 0x0029d086, 0x24b7: 0x0029d286, - 0x24b8: 0x0029d486, 0x24b9: 0x0029d686, 0x24ba: 0x0029d886, 0x24bb: 0x0029da86, - 0x24bc: 0x0029dc86, 0x24bd: 0x0029de86, 0x24be: 0xe00002d7, 0x24bf: 0x0029cc86, - // Block 0x93, offset 0x24c0 - 0x24c0: 0x400d2e20, 0x24c1: 0x400d3020, 0x24c2: 0x400d3220, 0x24c3: 0x400d3420, - 0x24c4: 0x400d3620, 0x24c5: 0x400d3820, 0x24c6: 0x400d3a20, 0x24c7: 0x400d3c20, - 0x24c8: 0x400d3e20, 0x24c9: 0x400d4020, 0x24ca: 0x400d4220, 0x24cb: 0x400d4420, - 0x24cc: 0x400d4620, 0x24cd: 0x400d4820, 0x24ce: 0x400d4a20, 0x24cf: 0x400d4c20, - 0x24d0: 0x400d4e20, 0x24d1: 0x400d5020, 0x24d2: 0x400d5220, 0x24d3: 0x400d5420, - 0x24d4: 0x400d5620, 0x24d5: 0x400d5820, 0x24d6: 0x400d5a20, 0x24d7: 0x400d5c20, - 0x24d8: 0x400d5e20, 0x24d9: 0x400d6020, 0x24da: 0x400d6220, 0x24db: 0x400d6420, - 0x24dc: 0x400d6620, 0x24dd: 0x400d6820, 0x24de: 0x400d6a20, 0x24df: 0x400d6c20, - 0x24e0: 0x400d6e20, 0x24e1: 0x400d7020, 0x24e2: 0x400d7220, 0x24e3: 0x400d7420, - 0x24e4: 0x400d7620, 0x24e5: 0x400d7820, 0x24e6: 0x400d7a20, 0x24e7: 0x400d7c20, - 0x24e8: 0x400d7e20, 0x24e9: 0x400d8020, 0x24ea: 0x400d8220, 0x24eb: 0x400d8420, - 0x24ec: 0x400d8620, 0x24ed: 0x400d8820, 0x24ee: 0x400d8a20, 0x24ef: 0x400d8c20, - 0x24f0: 0x400d8e20, 0x24f1: 0x400d9020, 0x24f2: 0x400d9220, 0x24f3: 0x400d9420, - 0x24f4: 0x400d9620, 0x24f5: 0x400d9820, 0x24f6: 0x400d9a20, 0x24f7: 0x400d9c20, - 0x24f8: 0x400d9e20, 0x24f9: 0x400da020, 0x24fa: 0x400da220, 0x24fb: 0x400da420, - 0x24fc: 0x400da620, 0x24fd: 0x400da820, 0x24fe: 0x400daa20, 0x24ff: 0x400dac20, - // Block 0x94, offset 0x2500 - 0x2500: 0x400dae20, 0x2501: 0x400db020, 0x2502: 0x400db220, 0x2503: 0x400db420, - 0x2504: 0x400db620, 0x2505: 0x400db820, 0x2506: 0x400dba20, 0x2507: 0x400dbc20, - 0x2508: 0x400dbe20, 0x2509: 0x400dc020, 0x250a: 0x400dc220, 0x250b: 0x400dc420, - 0x250c: 0x400dc620, 0x250d: 0x400dc820, 0x250e: 0x400dca20, 0x250f: 0x400dcc20, - 0x2510: 0x400dce20, 0x2511: 0x400dd020, 0x2512: 0x400dd220, 0x2513: 0x400dd420, - 0x2514: 0x400dd620, 0x2515: 0x400dd820, 0x2516: 0x400dda20, 0x2517: 0x400ddc20, - 0x2518: 0x400dde20, 0x2519: 0x400de020, 0x251a: 0x400de220, 0x251b: 0x400de420, - 0x251c: 0x400de620, 0x251d: 0x400de820, 0x251e: 0x400dea20, 0x251f: 0x400dec20, - 0x2520: 0x400dee20, 0x2521: 0x400df020, 0x2522: 0x400df220, 0x2523: 0x400df420, - 0x2524: 0x400df620, 0x2525: 0x400df820, 0x2526: 0x400dfa20, 0x2527: 0x400dfc20, - 0x2528: 0x400dfe20, 0x2529: 0x400e0020, 0x252a: 0x400e0220, 0x252b: 0x400e0420, - 0x252c: 0x400e0620, 0x252d: 0x400e0820, 0x252e: 0x400e0a20, 0x252f: 0x400e0c20, - 0x2530: 0x400e0e20, 0x2531: 0x400e1020, 0x2532: 0x400e1220, 0x2533: 0x400e1420, - 0x2534: 0x400e1620, 0x2535: 0x400e1820, 0x2536: 0x400e1a20, 0x2537: 0x400e1c20, - 0x2538: 0x400e1e20, 0x2539: 0x400e2020, 0x253a: 0x400e2220, 0x253b: 0x400e2420, - 0x253c: 0x400e2620, 0x253d: 0x400e2820, 0x253e: 0x400e2a20, 0x253f: 0x400e2c20, - // Block 0x95, offset 0x2540 - 0x2540: 0x400e2e20, 0x2541: 0x400e3020, 0x2542: 0x400e3220, 0x2543: 0x400e3420, - 0x2544: 0x400e3620, 0x2545: 0x400e3820, 0x2546: 0x400e3a20, 0x2547: 0x400e3c20, - 0x2548: 0x400e3e20, 0x2549: 0x400e4020, 0x254a: 0x400e4220, 0x254b: 0x400e4420, - 0x254c: 0x400e4620, 0x254d: 0x400e4820, 0x254e: 0x400e4a20, 0x254f: 0x400e4c20, - 0x2550: 0x400e4e20, 0x2551: 0x400e5020, 0x2552: 0x400e5220, 0x2553: 0x400e5420, - 0x2554: 0x400e5620, 0x2555: 0x400e5820, 0x2556: 0x400e5a20, 0x2557: 0x400e5c20, - 0x2558: 0x400e5e20, 0x2559: 0x400e6020, 0x255a: 0x400e6220, 0x255b: 0x400e6420, - 0x255c: 0x400e6620, 0x255d: 0x400e6820, 0x255e: 0x400e6a20, 0x255f: 0x400e6c20, - 0x2560: 0x400e6e20, 0x2561: 0x400e7020, 0x2562: 0x400e7220, 0x2563: 0x400e7420, - 0x2564: 0x400e7620, 0x2565: 0x400e7820, 0x2566: 0x400e7a20, 0x2567: 0x400e7c20, - 0x2568: 0x400e7e20, 0x2569: 0x400e8020, 0x256a: 0x400e8220, 0x256b: 0x400e8420, - 0x256c: 0x400e8620, 0x256d: 0x400e8820, 0x256e: 0x400e8a20, 0x256f: 0x400e8c20, - 0x2570: 0x400e8e20, 0x2571: 0x400e9020, 0x2572: 0x400e9220, 0x2573: 0x400e9420, - 0x2574: 0x400e9620, 0x2575: 0x400e9820, 0x2576: 0x400e9a20, 0x2577: 0x400e9c20, - 0x2578: 0x400e9e20, 0x2579: 0x400ea020, 0x257a: 0x400ea220, 0x257b: 0x400ea420, - 0x257c: 0x400ea620, 0x257d: 0x400ea820, 0x257e: 0x400eaa20, 0x257f: 0x400eac20, - // Block 0x96, offset 0x2580 - 0x2580: 0x400eae20, 0x2581: 0x400eb020, 0x2582: 0x400eb220, 0x2583: 0x400eb420, - 0x2584: 0x400eb620, 0x2585: 0x400eb820, 0x2586: 0x400eba20, 0x2587: 0x400ebc20, - 0x2588: 0x400ebe20, 0x2589: 0x400ec020, 0x258a: 0x400ec220, 0x258b: 0x400ec420, - 0x258c: 0x400ec620, 0x258d: 0x400ec820, 0x258e: 0x400eca20, 0x258f: 0x400ecc20, - 0x2590: 0x400ece20, 0x2591: 0x400ed020, 0x2592: 0x400ed220, 0x2593: 0x400ed420, - 0x2594: 0x400ed620, 0x2595: 0x400ed820, 0x2596: 0x400eda20, 0x2597: 0x400edc20, - 0x2598: 0x400ede20, 0x2599: 0x400ee020, 0x259a: 0x400ee220, 0x259b: 0x400ee420, - 0x259c: 0x400ee620, 0x259d: 0x400ee820, 0x259e: 0x400eea20, 0x259f: 0x400eec20, - 0x25a0: 0x400eee20, 0x25a1: 0x400ef020, 0x25a2: 0x400ef220, 0x25a3: 0x400ef420, - 0x25a4: 0x400ef620, 0x25a5: 0x400ef820, 0x25a6: 0x400efa20, 0x25a7: 0x400efc20, - 0x25a8: 0x400efe20, 0x25a9: 0x400f0020, 0x25aa: 0x400f0220, 0x25ab: 0x400f0420, - 0x25ac: 0x400f0620, 0x25ad: 0x400f0820, 0x25ae: 0x400f0a20, 0x25af: 0x400f0c20, - 0x25b0: 0x400f0e20, 0x25b1: 0x400f1020, 0x25b2: 0x400f1220, 0x25b3: 0x400f1420, - 0x25b4: 0x400f1620, 0x25b5: 0x400f1820, 0x25b6: 0x400f1a20, 0x25b7: 0x400f1c20, - 0x25b8: 0x400f1e20, 0x25b9: 0x400f2020, 0x25ba: 0x400f2220, 0x25bb: 0x400f2420, - 0x25bc: 0x400f2620, 0x25bd: 0x400f2820, 0x25be: 0x400f2a20, 0x25bf: 0x400f2c20, - // Block 0x97, offset 0x25c0 - 0x25c0: 0x400f2e20, 0x25c1: 0x400f3020, 0x25c2: 0x400f3220, 0x25c3: 0x400f3420, - 0x25c4: 0x400f3620, 0x25c5: 0x400f3820, 0x25c6: 0x400f3a20, 0x25c7: 0x400f3c20, - 0x25c8: 0x400f3e20, 0x25c9: 0x400f4020, 0x25ca: 0x400f4220, 0x25cb: 0x400f4420, - 0x25cc: 0x400f4620, 0x25cd: 0x400f4820, 0x25ce: 0x400f4a20, 0x25cf: 0x400f4c20, - 0x25d0: 0x400f4e20, 0x25d1: 0x400f5020, 0x25d2: 0x400f5220, 0x25d3: 0x400f5420, - 0x25d4: 0x400f5620, 0x25d5: 0x400f5820, 0x25d6: 0x400f5a20, 0x25d7: 0x400f5c20, - 0x25d8: 0x400f5e20, 0x25d9: 0x400f6020, 0x25da: 0x400f6220, 0x25db: 0x400f6420, - 0x25dc: 0x400f6620, 0x25dd: 0x400f6820, 0x25de: 0x400f6a20, 0x25df: 0x400f6c20, - 0x25e0: 0x400f6e20, 0x25e1: 0x400f7020, 0x25e2: 0x400f7220, 0x25e3: 0x400f7420, - 0x25e4: 0x400f7620, 0x25e5: 0x400f7820, 0x25e6: 0x400f7a20, 0x25e7: 0x400f7c20, - 0x25e8: 0x400f7e20, 0x25e9: 0x400f8020, 0x25ea: 0x400f8220, 0x25eb: 0x400f8420, - 0x25ec: 0x400f8620, 0x25ed: 0x400f8820, 0x25ee: 0x400f8a20, 0x25ef: 0x400f8c20, - 0x25f0: 0x40195220, 0x25f1: 0x40195420, 0x25f2: 0x40195620, 0x25f3: 0x40195820, - 0x25f4: 0x40195a20, 0x25f5: 0x40195c20, 0x25f6: 0x40195e20, 0x25f7: 0x40196020, - 0x25f8: 0x400f8e20, 0x25f9: 0x400f9020, 0x25fa: 0x400f9220, 0x25fb: 0x400f9420, - 0x25fc: 0x400f9620, 0x25fd: 0x400f9820, 0x25fe: 0x400f9a20, 0x25ff: 0x400f9c20, - // Block 0x98, offset 0x2600 - 0x2600: 0x400f9e20, 0x2601: 0x400fa020, 0x2602: 0x400fa220, 0x2603: 0x400fa420, - 0x2604: 0x400fa620, 0x2605: 0x400fa820, 0x2606: 0x400faa20, 0x2607: 0x400fac20, - 0x2608: 0x400fae20, 0x2609: 0x400fb020, 0x260a: 0x400fb220, 0x260b: 0x400fb420, - 0x260c: 0x400fb620, 0x260d: 0x400fb820, 0x260e: 0x400fba20, 0x260f: 0x400fbc20, - 0x2610: 0x400fbe20, 0x2611: 0x400fc020, 0x2612: 0x400fc220, 0x2613: 0x400fc420, - 0x2614: 0x400fc620, 0x2615: 0x400fc820, 0x2616: 0x400fca20, 0x2617: 0x400fcc20, - 0x2618: 0x400fce20, 0x2619: 0x400fd020, 0x261a: 0x400fd220, 0x261b: 0x400fd420, - 0x261c: 0x400fd620, 0x261d: 0x400fd820, 0x261e: 0x400fda20, 0x261f: 0x400fdc20, - 0x2620: 0x400fde20, 0x2621: 0x400fe020, 0x2622: 0x400fe220, 0x2623: 0x400fe420, - 0x2624: 0x400fe620, 0x2625: 0x400fe820, 0x2626: 0x400fea20, 0x2627: 0x400fec20, - 0x2628: 0x400fee20, 0x2629: 0x400ff020, 0x262a: 0x400ff220, 0x262b: 0x400ff420, - 0x262c: 0x400ff620, 0x262d: 0x401dde20, 0x262e: 0x401de020, 0x262f: 0x401de220, - 0x2630: 0x400ff820, 0x2631: 0x400ffa20, 0x2632: 0x400ffc20, 0x2633: 0x400ffe20, - 0x2634: 0x40100020, 0x2635: 0x40100220, 0x2636: 0x40100420, 0x2637: 0x40100620, - 0x2638: 0x40100820, 0x2639: 0x40100a20, 0x263a: 0x40100c20, 0x263b: 0x40100e20, - 0x263c: 0x40101020, 0x263d: 0x40101220, 0x263e: 0x40101420, 0x263f: 0x40101620, - // Block 0x99, offset 0x2640 - 0x2640: 0x40101820, 0x2641: 0x40101a20, 0x2642: 0x40101c20, 0x2643: 0x40101e20, - 0x2644: 0x40102020, 0x2645: 0x40102220, 0x2646: 0x40102420, 0x2647: 0x40102620, - 0x2648: 0x40102820, 0x2649: 0x40102a20, 0x264a: 0x40194620, 0x264b: 0x40194820, - 0x264c: 0x40194a20, 0x264d: 0x40194c20, 0x264e: 0x40194e20, 0x264f: 0x40195020, - 0x2650: 0x40102c20, 0x2651: 0x40102e20, 0x2652: 0x40103020, 0x2653: 0x40103220, - 0x2654: 0x40103420, 0x2655: 0x40103620, 0x2656: 0x40103820, 0x2657: 0x40103a20, - 0x2658: 0x40103c20, 0x2659: 0x40103e20, 0x265a: 0x40104020, 0x265b: 0x40104220, - 0x265c: 0x40104420, 0x265d: 0x40104620, 0x265e: 0x40104820, 0x265f: 0x40104a20, - 0x2660: 0x40104c20, 0x2661: 0x40104e20, 0x2662: 0x40105020, 0x2663: 0x40105220, - 0x2664: 0x40105420, 0x2665: 0x40105620, 0x2666: 0x40105820, 0x2667: 0x40105a20, - 0x2668: 0x40105c20, 0x2669: 0x40105e20, 0x266a: 0x40106020, 0x266b: 0x40106220, - 0x266c: 0x40106420, 0x266d: 0x40106620, 0x266e: 0x40106820, 0x266f: 0x40106a20, - 0x2670: 0x40106c20, 0x2671: 0x40106e20, 0x2672: 0x40107020, 0x2673: 0x40107220, - 0x2674: 0x40107420, 0x2675: 0x40107620, 0x2676: 0x40107820, 0x2677: 0x40107a20, - 0x2678: 0x40107c20, 0x2679: 0x40107e20, 0x267a: 0x40108020, 0x267b: 0x40108220, - 0x267c: 0x40108420, 0x267d: 0x40108620, 0x267e: 0x40108820, 0x267f: 0x40108a20, - // Block 0x9a, offset 0x2680 - 0x2680: 0x40108c20, 0x2681: 0x40108e20, 0x2682: 0x40109020, 0x2683: 0x40109220, - 0x2684: 0x40109420, 0x2685: 0x40109620, 0x2686: 0x40109820, 0x2687: 0x40109a20, - 0x2688: 0x40109c20, 0x2689: 0x40109e20, 0x268a: 0x4010a020, 0x268b: 0x4010a220, - 0x268c: 0x4010a420, 0x268d: 0x4010a620, 0x268e: 0x4010a820, 0x268f: 0x4010aa20, - 0x2690: 0x4010ac20, 0x2691: 0x4010ae20, 0x2692: 0x4010b020, 0x2693: 0x4010b220, - 0x2694: 0x4010b420, 0x2695: 0x4010b620, 0x2696: 0x4010b820, 0x2697: 0x4010ba20, - 0x2698: 0x4010bc20, 0x2699: 0x4010be20, 0x269a: 0x4010c020, 0x269b: 0x4010c220, - 0x269c: 0x4010c420, 0x269d: 0x4010c620, 0x269e: 0x4010c820, 0x269f: 0x4010ca20, - 0x26a0: 0x4010cc20, 0x26a1: 0x4010ce20, 0x26a2: 0x4010d020, 0x26a3: 0x4010d220, - 0x26a4: 0x4010d420, 0x26a5: 0x4010d620, 0x26a6: 0x4010d820, 0x26a7: 0x4010da20, - 0x26a8: 0x4010dc20, 0x26a9: 0x4010de20, 0x26aa: 0x4010e020, 0x26ab: 0x4010e220, - 0x26ac: 0x4010e420, 0x26ad: 0x4010e620, 0x26ae: 0x4010e820, 0x26af: 0x4010ea20, - 0x26b0: 0x4010ec20, 0x26b1: 0x4010ee20, 0x26b2: 0x4010f020, 0x26b3: 0x4010f220, - 0x26b4: 0x4010f420, 0x26b5: 0x4010f620, 0x26b6: 0x4010f820, 0x26b7: 0x4010fa20, - 0x26b8: 0x4010fc20, 0x26b9: 0x4010fe20, 0x26ba: 0x40110020, 0x26bb: 0x40110220, - 0x26bc: 0x40110420, 0x26bd: 0x40110620, 0x26be: 0x40110820, 0x26bf: 0x40110a20, - // Block 0x9b, offset 0x26c0 - 0x26c1: 0x40114020, 0x26c2: 0x40114220, 0x26c3: 0x40114420, - 0x26c4: 0x40114620, 0x26c5: 0x40114820, 0x26c6: 0x40114a20, 0x26c7: 0x40114c20, - 0x26c8: 0x40114e20, 0x26c9: 0x40115020, 0x26ca: 0x40115220, 0x26cb: 0x40115420, - 0x26cc: 0x40115620, 0x26cd: 0x40115820, 0x26ce: 0x40115a20, 0x26cf: 0x40115c20, - 0x26d0: 0x40115e20, 0x26d1: 0x40116020, 0x26d2: 0x40116220, 0x26d3: 0x40116420, - 0x26d4: 0x40116620, 0x26d5: 0x40116820, 0x26d6: 0x40116a20, 0x26d7: 0x40116c20, - 0x26d8: 0x40116e20, 0x26d9: 0x40117020, 0x26da: 0x40117220, 0x26db: 0x40117420, - 0x26dc: 0x40117620, 0x26dd: 0x40117820, 0x26de: 0x40117a20, 0x26df: 0x40117c20, - 0x26e0: 0x40117e20, 0x26e1: 0x40118020, 0x26e2: 0x40118220, 0x26e3: 0x40118420, - 0x26e4: 0x40118620, 0x26e5: 0x40118820, 0x26e6: 0x40118a20, 0x26e7: 0x40118c20, - 0x26e8: 0x40118e20, 0x26e9: 0x40119020, 0x26ea: 0x40119220, 0x26eb: 0x40119420, - 0x26ec: 0x40119620, 0x26ed: 0x40119820, 0x26ee: 0x40119a20, 0x26ef: 0x40119c20, - 0x26f0: 0x40119e20, 0x26f1: 0x4011a020, 0x26f2: 0x4011a220, 0x26f3: 0x4011a420, - 0x26f4: 0x4011a620, 0x26f5: 0x4011a820, 0x26f6: 0x4011aa20, 0x26f7: 0x4011ac20, - 0x26f8: 0x4011ae20, 0x26f9: 0x4011b020, 0x26fa: 0x4011b220, 0x26fb: 0x4011b420, - 0x26fc: 0x4011b620, 0x26fd: 0x4011b820, 0x26fe: 0x4011ba20, 0x26ff: 0x4011bc20, - // Block 0x9c, offset 0x2700 - 0x2700: 0x4011be20, 0x2701: 0x4011c020, 0x2702: 0x4011c220, 0x2703: 0x4011c420, - 0x2704: 0x4011c620, 0x2705: 0x4011c820, 0x2706: 0x4011ca20, 0x2707: 0x4011cc20, - 0x2708: 0x4011ce20, 0x2709: 0x4011d020, 0x270a: 0x4011d220, 0x270b: 0x4011d420, - 0x270c: 0x4011d620, 0x270d: 0x4011d820, 0x270e: 0x4011da20, 0x270f: 0x4011dc20, - 0x2710: 0x4011de20, 0x2711: 0x4011e020, 0x2712: 0x4011e220, 0x2713: 0x4011e420, - 0x2714: 0x4011e620, 0x2715: 0x4011e820, 0x2716: 0x4011ea20, 0x2717: 0x4011ec20, - 0x2718: 0x4011ee20, 0x2719: 0x4011f020, 0x271a: 0x4011f220, 0x271b: 0x4011f420, - 0x271c: 0x4011f620, 0x271d: 0x4011f820, 0x271e: 0x4011fa20, 0x271f: 0x4011fc20, - 0x2720: 0x4011fe20, 0x2721: 0x40120020, 0x2722: 0x40120220, 0x2723: 0x40120420, - 0x2724: 0x40120620, 0x2725: 0x40120820, 0x2726: 0x40120a20, 0x2727: 0x40120c20, - 0x2728: 0x40045820, 0x2729: 0x40045a20, 0x272a: 0x40045c20, 0x272b: 0x40045e20, - 0x272c: 0x40046020, 0x272d: 0x40046220, 0x272e: 0x40046420, 0x272f: 0x40046620, - 0x2730: 0x40046820, 0x2731: 0x40046a20, 0x2732: 0x40046c20, 0x2733: 0x40046e20, - 0x2734: 0x40047020, 0x2735: 0x40047220, 0x2736: 0x0029ce86, 0x2737: 0x0029d086, - 0x2738: 0x0029d286, 0x2739: 0x0029d486, 0x273a: 0x0029d686, 0x273b: 0x0029d886, - 0x273c: 0x0029da86, 0x273d: 0x0029dc86, 0x273e: 0x0029de86, 0x273f: 0xe00002da, - // Block 0x9d, offset 0x2740 - 0x2740: 0x0029ce86, 0x2741: 0x0029d086, 0x2742: 0x0029d286, 0x2743: 0x0029d486, - 0x2744: 0x0029d686, 0x2745: 0x0029d886, 0x2746: 0x0029da86, 0x2747: 0x0029dc86, - 0x2748: 0x0029de86, 0x2749: 0xe00002dd, 0x274a: 0x0029ce86, 0x274b: 0x0029d086, - 0x274c: 0x0029d286, 0x274d: 0x0029d486, 0x274e: 0x0029d686, 0x274f: 0x0029d886, - 0x2750: 0x0029da86, 0x2751: 0x0029dc86, 0x2752: 0x0029de86, 0x2753: 0xe00002e0, - 0x2754: 0x40120e20, 0x2755: 0x40121020, 0x2756: 0x40121220, 0x2757: 0x40121420, - 0x2758: 0x40121620, 0x2759: 0x40121820, 0x275a: 0x40121a20, 0x275b: 0x40121c20, - 0x275c: 0x40121e20, 0x275d: 0x40122020, 0x275e: 0x40122220, 0x275f: 0x40122420, - 0x2760: 0x40122620, 0x2761: 0x40122820, 0x2762: 0x40122a20, 0x2763: 0x40122c20, - 0x2764: 0x40122e20, 0x2765: 0x40123020, 0x2766: 0x40123220, 0x2767: 0x40123420, - 0x2768: 0x40123620, 0x2769: 0x40123820, 0x276a: 0x40123a20, 0x276b: 0x40123c20, - 0x276c: 0x40123e20, 0x276d: 0x40124020, 0x276e: 0x40124220, 0x276f: 0x40124420, - 0x2770: 0x40124620, 0x2771: 0x40124820, 0x2772: 0x40124a20, 0x2773: 0x40124c20, - 0x2774: 0x40124e20, 0x2775: 0x40125020, 0x2776: 0x40125220, 0x2777: 0x40125420, - 0x2778: 0x40125620, 0x2779: 0x40125820, 0x277a: 0x40125a20, 0x277b: 0x40125c20, - 0x277c: 0x40125e20, 0x277d: 0x40126020, 0x277e: 0x40126220, 0x277f: 0x40126420, - // Block 0x9e, offset 0x2780 - 0x2780: 0x40126620, 0x2781: 0x40126820, 0x2782: 0x40126a20, 0x2783: 0x40126c20, - 0x2784: 0x40126e20, 0x2785: 0x40044020, 0x2786: 0x40044220, 0x2787: 0x40127020, - 0x2788: 0x40127220, 0x2789: 0x40127420, 0x278a: 0x40127620, 0x278b: 0x40127820, - 0x278c: 0x40127a20, 0x278d: 0x40127c20, 0x278e: 0x40127e20, 0x278f: 0x40128020, - 0x2790: 0x40128220, 0x2791: 0x40128420, 0x2792: 0x40128620, 0x2793: 0x40128820, - 0x2794: 0x40128a20, 0x2795: 0x40128c20, 0x2796: 0x40128e20, 0x2797: 0x40129020, - 0x2798: 0x40129220, 0x2799: 0x40129420, 0x279a: 0x40129620, 0x279b: 0x40129820, - 0x279c: 0x40129a20, 0x279d: 0x40129c20, 0x279e: 0x40129e20, 0x279f: 0x4012a020, - 0x27a0: 0x4012a220, 0x27a1: 0x4012a420, 0x27a2: 0x4012a620, 0x27a3: 0x4012a820, - 0x27a4: 0x4012aa20, 0x27a5: 0x4012ac20, 0x27a6: 0x40044420, 0x27a7: 0x40044620, - 0x27a8: 0x40044820, 0x27a9: 0x40044a20, 0x27aa: 0x40044c20, 0x27ab: 0x40044e20, - 0x27ac: 0x40045020, 0x27ad: 0x40045220, 0x27ae: 0x40045420, 0x27af: 0x40045620, - 0x27b0: 0x4012ae20, 0x27b1: 0x4012b020, 0x27b2: 0x4012b220, 0x27b3: 0x4012b420, - 0x27b4: 0x4012b620, 0x27b5: 0x4012b820, 0x27b6: 0x4012ba20, 0x27b7: 0x4012bc20, - 0x27b8: 0x4012be20, 0x27b9: 0x4012c020, 0x27ba: 0x4012c220, 0x27bb: 0x4012c420, - 0x27bc: 0x4012c620, 0x27bd: 0x4012c820, 0x27be: 0x4012ca20, 0x27bf: 0x4012cc20, - // Block 0x9f, offset 0x27c0 - 0x27c0: 0x40174620, 0x27c1: 0x40174820, 0x27c2: 0x40174a20, 0x27c3: 0x40174c20, - 0x27c4: 0x40174e20, 0x27c5: 0x40175020, 0x27c6: 0x40175220, 0x27c7: 0x40175420, - 0x27c8: 0x40175620, 0x27c9: 0x40175820, 0x27ca: 0x40175a20, 0x27cb: 0x40175c20, - 0x27cc: 0x40175e20, 0x27cd: 0x40176020, 0x27ce: 0x40176220, 0x27cf: 0x40176420, - 0x27d0: 0x40176620, 0x27d1: 0x40176820, 0x27d2: 0x40176a20, 0x27d3: 0x40176c20, - 0x27d4: 0x40176e20, 0x27d5: 0x40177020, 0x27d6: 0x40177220, 0x27d7: 0x40177420, - 0x27d8: 0x40177620, 0x27d9: 0x40177820, 0x27da: 0x40177a20, 0x27db: 0x40177c20, - 0x27dc: 0x40177e20, 0x27dd: 0x40178020, 0x27de: 0x40178220, 0x27df: 0x40178420, - 0x27e0: 0x40178620, 0x27e1: 0x40178820, 0x27e2: 0x40178a20, 0x27e3: 0x40178c20, - 0x27e4: 0x40178e20, 0x27e5: 0x40179020, 0x27e6: 0x40179220, 0x27e7: 0x40179420, - 0x27e8: 0x40179620, 0x27e9: 0x40179820, 0x27ea: 0x40179a20, 0x27eb: 0x40179c20, - 0x27ec: 0x40179e20, 0x27ed: 0x4017a020, 0x27ee: 0x4017a220, 0x27ef: 0x4017a420, - 0x27f0: 0x4017a620, 0x27f1: 0x4017a820, 0x27f2: 0x4017aa20, 0x27f3: 0x4017ac20, - 0x27f4: 0x4017ae20, 0x27f5: 0x4017b020, 0x27f6: 0x4017b220, 0x27f7: 0x4017b420, - 0x27f8: 0x4017b620, 0x27f9: 0x4017b820, 0x27fa: 0x4017ba20, 0x27fb: 0x4017bc20, - 0x27fc: 0x4017be20, 0x27fd: 0x4017c020, 0x27fe: 0x4017c220, 0x27ff: 0x4017c420, - // Block 0xa0, offset 0x2800 - 0x2800: 0x4017c620, 0x2801: 0x4017c820, 0x2802: 0x4017ca20, 0x2803: 0x4017cc20, - 0x2804: 0x4017ce20, 0x2805: 0x4017d020, 0x2806: 0x4017d220, 0x2807: 0x4017d420, - 0x2808: 0x4017d620, 0x2809: 0x4017d820, 0x280a: 0x4017da20, 0x280b: 0x4017dc20, - 0x280c: 0x4017de20, 0x280d: 0x4017e020, 0x280e: 0x4017e220, 0x280f: 0x4017e420, - 0x2810: 0x4017e620, 0x2811: 0x4017e820, 0x2812: 0x4017ea20, 0x2813: 0x4017ec20, - 0x2814: 0x4017ee20, 0x2815: 0x4017f020, 0x2816: 0x4017f220, 0x2817: 0x4017f420, - 0x2818: 0x4017f620, 0x2819: 0x4017f820, 0x281a: 0x4017fa20, 0x281b: 0x4017fc20, - 0x281c: 0x4017fe20, 0x281d: 0x40180020, 0x281e: 0x40180220, 0x281f: 0x40180420, - 0x2820: 0x40180620, 0x2821: 0x40180820, 0x2822: 0x40180a20, 0x2823: 0x40180c20, - 0x2824: 0x40180e20, 0x2825: 0x40181020, 0x2826: 0x40181220, 0x2827: 0x40181420, - 0x2828: 0x40181620, 0x2829: 0x40181820, 0x282a: 0x40181a20, 0x282b: 0x40181c20, - 0x282c: 0x40181e20, 0x282d: 0x40182020, 0x282e: 0x40182220, 0x282f: 0x40182420, - 0x2830: 0x40182620, 0x2831: 0x40182820, 0x2832: 0x40182a20, 0x2833: 0x40182c20, - 0x2834: 0x40182e20, 0x2835: 0x40183020, 0x2836: 0x40183220, 0x2837: 0x40183420, - 0x2838: 0x40183620, 0x2839: 0x40183820, 0x283a: 0x40183a20, 0x283b: 0x40183c20, - 0x283c: 0x40183e20, 0x283d: 0x40184020, 0x283e: 0x40184220, 0x283f: 0x40184420, - // Block 0xa1, offset 0x2840 - 0x2840: 0x40184620, 0x2841: 0x40184820, 0x2842: 0x40184a20, 0x2843: 0x40184c20, - 0x2844: 0x40184e20, 0x2845: 0x40185020, 0x2846: 0x40185220, 0x2847: 0x40185420, - 0x2848: 0x40185620, 0x2849: 0x40185820, 0x284a: 0x40185a20, 0x284b: 0x40185c20, - 0x284c: 0x40185e20, 0x284d: 0x40186020, 0x284e: 0x40186220, 0x284f: 0x40186420, - 0x2850: 0x40186620, 0x2851: 0x40186820, 0x2852: 0x40186a20, 0x2853: 0x40186c20, - 0x2854: 0x40186e20, 0x2855: 0x40187020, 0x2856: 0x40187220, 0x2857: 0x40187420, - 0x2858: 0x40187620, 0x2859: 0x40187820, 0x285a: 0x40187a20, 0x285b: 0x40187c20, - 0x285c: 0x40187e20, 0x285d: 0x40188020, 0x285e: 0x40188220, 0x285f: 0x40188420, - 0x2860: 0x40188620, 0x2861: 0x40188820, 0x2862: 0x40188a20, 0x2863: 0x40188c20, - 0x2864: 0x40188e20, 0x2865: 0x40189020, 0x2866: 0x40189220, 0x2867: 0x40189420, - 0x2868: 0x40189620, 0x2869: 0x40189820, 0x286a: 0x40189a20, 0x286b: 0x40189c20, - 0x286c: 0x40189e20, 0x286d: 0x4018a020, 0x286e: 0x4018a220, 0x286f: 0x4018a420, - 0x2870: 0x4018a620, 0x2871: 0x4018a820, 0x2872: 0x4018aa20, 0x2873: 0x4018ac20, - 0x2874: 0x4018ae20, 0x2875: 0x4018b020, 0x2876: 0x4018b220, 0x2877: 0x4018b420, - 0x2878: 0x4018b620, 0x2879: 0x4018b820, 0x287a: 0x4018ba20, 0x287b: 0x4018bc20, - 0x287c: 0x4018be20, 0x287d: 0x4018c020, 0x287e: 0x4018c220, 0x287f: 0x4018c420, - // Block 0xa2, offset 0x2880 - 0x2880: 0x4018c620, 0x2881: 0x4018c820, 0x2882: 0x4018ca20, 0x2883: 0x4018cc20, - 0x2884: 0x4018ce20, 0x2885: 0x4018d020, 0x2886: 0x4018d220, 0x2887: 0x4018d420, - 0x2888: 0x4018d620, 0x2889: 0x4018d820, 0x288a: 0x4018da20, 0x288b: 0x4018dc20, - 0x288c: 0x4018de20, 0x288d: 0x4018e020, 0x288e: 0x4018e220, 0x288f: 0x4018e420, - 0x2890: 0x4018e620, 0x2891: 0x4018e820, 0x2892: 0x4018ea20, 0x2893: 0x4018ec20, - 0x2894: 0x4018ee20, 0x2895: 0x4018f020, 0x2896: 0x4018f220, 0x2897: 0x4018f420, - 0x2898: 0x4018f620, 0x2899: 0x4018f820, 0x289a: 0x4018fa20, 0x289b: 0x4018fc20, - 0x289c: 0x4018fe20, 0x289d: 0x40190020, 0x289e: 0x40190220, 0x289f: 0x40190420, - 0x28a0: 0x40190620, 0x28a1: 0x40190820, 0x28a2: 0x40190a20, 0x28a3: 0x40190c20, - 0x28a4: 0x40190e20, 0x28a5: 0x40191020, 0x28a6: 0x40191220, 0x28a7: 0x40191420, - 0x28a8: 0x40191620, 0x28a9: 0x40191820, 0x28aa: 0x40191a20, 0x28ab: 0x40191c20, - 0x28ac: 0x40191e20, 0x28ad: 0x40192020, 0x28ae: 0x40192220, 0x28af: 0x40192420, - 0x28b0: 0x40192620, 0x28b1: 0x40192820, 0x28b2: 0x40192a20, 0x28b3: 0x40192c20, - 0x28b4: 0x40192e20, 0x28b5: 0x40193020, 0x28b6: 0x40193220, 0x28b7: 0x40193420, - 0x28b8: 0x40193620, 0x28b9: 0x40193820, 0x28ba: 0x40193a20, 0x28bb: 0x40193c20, - 0x28bc: 0x40193e20, 0x28bd: 0x40194020, 0x28be: 0x40194220, 0x28bf: 0x40194420, - // Block 0xa3, offset 0x28c0 - 0x28c0: 0x4012ce20, 0x28c1: 0x4012d020, 0x28c2: 0x4012d220, 0x28c3: 0x4012d420, - 0x28c4: 0x4012d620, 0x28c5: 0x4012d820, 0x28c6: 0x4012da20, 0x28c7: 0x4012dc20, - 0x28c8: 0x4012de20, 0x28c9: 0x4012e020, 0x28ca: 0x4012e220, 0x28cb: 0x4012e420, - 0x28cc: 0x4012e620, 0x28cd: 0x4012e820, 0x28ce: 0x4012ea20, 0x28cf: 0x4012ec20, - 0x28d0: 0x4012ee20, 0x28d1: 0x4012f020, 0x28d2: 0x4012f220, 0x28d3: 0x4012f420, - 0x28d4: 0x4012f620, 0x28d5: 0x4012f820, 0x28d6: 0x4012fa20, 0x28d7: 0x4012fc20, - 0x28d8: 0x4012fe20, 0x28d9: 0x40130020, 0x28da: 0x40130220, 0x28db: 0x40130420, - 0x28dc: 0x40130620, 0x28dd: 0x40130820, 0x28de: 0x40130a20, 0x28df: 0x40130c20, - 0x28e0: 0x40130e20, 0x28e1: 0x40131020, 0x28e2: 0x40131220, 0x28e3: 0x40131420, - 0x28e4: 0x40131620, 0x28e5: 0x40131820, 0x28e6: 0x40131a20, 0x28e7: 0x40131c20, - 0x28e8: 0x40131e20, 0x28e9: 0x40132020, 0x28ea: 0x40132220, 0x28eb: 0x40132420, - 0x28ec: 0x40132620, 0x28ed: 0x40132820, 0x28ee: 0x40132a20, 0x28ef: 0x40132c20, - 0x28f0: 0x40132e20, 0x28f1: 0x40133020, 0x28f2: 0x40133220, 0x28f3: 0x40133420, - 0x28f4: 0x40133620, 0x28f5: 0x40133820, 0x28f6: 0x40133a20, 0x28f7: 0x40133c20, - 0x28f8: 0x40133e20, 0x28f9: 0x40134020, 0x28fa: 0x40134220, 0x28fb: 0x40134420, - 0x28fc: 0x40134620, 0x28fd: 0x40134820, 0x28fe: 0x40134a20, 0x28ff: 0x40134c20, - // Block 0xa4, offset 0x2900 - 0x2900: 0x40134e20, 0x2901: 0x40135020, 0x2902: 0x40135220, 0x2903: 0x40135420, - 0x2904: 0x40135620, 0x2905: 0x40135820, 0x2906: 0x40135a20, 0x2907: 0x40135c20, - 0x2908: 0x40135e20, 0x2909: 0x40136020, 0x290a: 0x40136220, 0x290b: 0x40136420, - 0x290c: 0x40136620, 0x290d: 0x40136820, 0x290e: 0x40136a20, 0x290f: 0x40136c20, - 0x2910: 0x40136e20, 0x2911: 0x40137020, 0x2912: 0x40137220, 0x2913: 0x40137420, - 0x2914: 0x40137620, 0x2915: 0x40137820, 0x2916: 0x40137a20, 0x2917: 0x40137c20, - 0x2918: 0x40137e20, 0x2919: 0x40138020, 0x291a: 0x40138220, 0x291b: 0x40138420, - 0x291c: 0x40138620, 0x291d: 0x40138820, 0x291e: 0x40138a20, 0x291f: 0x40138c20, - 0x2920: 0x40138e20, 0x2921: 0x40139020, 0x2922: 0x40139220, 0x2923: 0x40139420, - 0x2924: 0x40139620, 0x2925: 0x40139820, 0x2926: 0x40139a20, 0x2927: 0x40139c20, - 0x2928: 0x40139e20, 0x2929: 0x4013a020, 0x292a: 0x4013a220, 0x292b: 0x4013a420, - 0x292c: 0x4013a620, 0x292d: 0x4013a820, 0x292e: 0x4013aa20, 0x292f: 0x4013ac20, - 0x2930: 0x4013ae20, 0x2931: 0x4013b020, 0x2932: 0x4013b220, 0x2933: 0x4013b420, - 0x2934: 0x4013b620, 0x2935: 0x4013b820, 0x2936: 0x4013ba20, 0x2937: 0x4013bc20, - 0x2938: 0x4013be20, 0x2939: 0x4013c020, 0x293a: 0x4013c220, 0x293b: 0x4013c420, - 0x293c: 0x4013c620, 0x293d: 0x4013c820, 0x293e: 0x4013ca20, 0x293f: 0x4013cc20, - // Block 0xa5, offset 0x2940 - 0x2940: 0x4013ce20, 0x2941: 0x4013d020, 0x2942: 0x4013d220, 0x2943: 0x40041420, - 0x2944: 0x40041620, 0x2945: 0x40041820, 0x2946: 0x40041a20, 0x2947: 0x40041c20, - 0x2948: 0x40041e20, 0x2949: 0x40042020, 0x294a: 0x40042220, 0x294b: 0x40042420, - 0x294c: 0x40042620, 0x294d: 0x40042820, 0x294e: 0x40042a20, 0x294f: 0x40042c20, - 0x2950: 0x40042e20, 0x2951: 0x40043020, 0x2952: 0x40043220, 0x2953: 0x40043420, - 0x2954: 0x40043620, 0x2955: 0x40043820, 0x2956: 0x40043a20, 0x2957: 0x40043c20, - 0x2958: 0x40043e20, 0x2959: 0x4013d420, 0x295a: 0x4013d620, 0x295b: 0x4013d820, - 0x295c: 0x4013da20, 0x295d: 0x4013dc20, 0x295e: 0x4013de20, 0x295f: 0x4013e020, - 0x2960: 0x4013e220, 0x2961: 0x4013e420, 0x2962: 0x4013e620, 0x2963: 0x4013e820, - 0x2964: 0x4013ea20, 0x2965: 0x4013ec20, 0x2966: 0x4013ee20, 0x2967: 0x4013f020, - 0x2968: 0x4013f220, 0x2969: 0x4013f420, 0x296a: 0x4013f620, 0x296b: 0x4013f820, - 0x296c: 0x4013fa20, 0x296d: 0x4013fc20, 0x296e: 0x4013fe20, 0x296f: 0x40140020, - 0x2970: 0x40140220, 0x2971: 0x40140420, 0x2972: 0x40140620, 0x2973: 0x40140820, - 0x2974: 0x40140a20, 0x2975: 0x40140c20, 0x2976: 0x40140e20, 0x2977: 0x40141020, - 0x2978: 0x40141220, 0x2979: 0x40141420, 0x297a: 0x40141620, 0x297b: 0x40141820, - 0x297c: 0x40141a20, 0x297d: 0x40141c20, 0x297e: 0x40141e20, 0x297f: 0x40142020, - // Block 0xa6, offset 0x2980 - 0x2980: 0x40142220, 0x2981: 0x40142420, 0x2982: 0x40142620, 0x2983: 0x40142820, - 0x2984: 0x40142a20, 0x2985: 0x40142c20, 0x2986: 0x40142e20, 0x2987: 0x40143020, - 0x2988: 0x40143220, 0x2989: 0x40143420, 0x298a: 0x40143620, 0x298b: 0x40143820, - 0x298c: 0x40143a20, 0x298d: 0x40143c20, 0x298e: 0x40143e20, 0x298f: 0x40144020, - 0x2990: 0x40144220, 0x2991: 0x40144420, 0x2992: 0x40144620, 0x2993: 0x40144820, - 0x2994: 0x40144a20, 0x2995: 0x40144c20, 0x2996: 0x40144e20, 0x2997: 0x40145020, - 0x2998: 0x4004c620, 0x2999: 0x4004c820, 0x299a: 0x4004ca20, 0x299b: 0x4004cc20, - 0x299c: 0x40145220, 0x299d: 0x40145420, 0x299e: 0x40145620, 0x299f: 0x40145820, - 0x29a0: 0x40145a20, 0x29a1: 0x40145c20, 0x29a2: 0x40145e20, 0x29a3: 0x40146020, - 0x29a4: 0x40146220, 0x29a5: 0x40146420, 0x29a6: 0x40146620, 0x29a7: 0x40146820, - 0x29a8: 0x40146a20, 0x29a9: 0x40146c20, 0x29aa: 0x40146e20, 0x29ab: 0x40147020, - 0x29ac: 0x40147220, 0x29ad: 0x40147420, 0x29ae: 0x40147620, 0x29af: 0x40147820, - 0x29b0: 0x40147a20, 0x29b1: 0x40147c20, 0x29b2: 0x40147e20, 0x29b3: 0x40148020, - 0x29b4: 0x40148220, 0x29b5: 0x40148420, 0x29b6: 0x40148620, 0x29b7: 0x40148820, - 0x29b8: 0x40148a20, 0x29b9: 0x40148c20, 0x29ba: 0x40148e20, 0x29bb: 0x40149020, - 0x29bc: 0x40041020, 0x29bd: 0x40041220, 0x29be: 0x40149220, 0x29bf: 0x40149420, - // Block 0xa7, offset 0x29c0 - 0x29c0: 0x40149620, 0x29c1: 0x40149820, 0x29c2: 0x40149a20, 0x29c3: 0x40149c20, - 0x29c4: 0x40149e20, 0x29c5: 0x4014a020, 0x29c6: 0x4014a220, 0x29c7: 0x4014a420, - 0x29c8: 0x4014a620, 0x29c9: 0x4014a820, 0x29ca: 0x4014aa20, 0x29cb: 0x4014ac20, - 0x29cc: 0xe00000f0, 0x29cd: 0x4014ae20, 0x29ce: 0x4014b020, 0x29cf: 0x4014b220, - 0x29d0: 0x4014b420, 0x29d1: 0x4014b620, 0x29d2: 0x4014b820, 0x29d3: 0x4014ba20, - 0x29d4: 0x4014bc20, 0x29d5: 0x4014be20, 0x29d6: 0x4014c020, 0x29d7: 0x4014c220, - 0x29d8: 0x4014c420, 0x29d9: 0x4014c620, 0x29da: 0x4014c820, 0x29db: 0x4014ca20, - 0x29dc: 0x4014cc20, 0x29dd: 0x4014ce20, 0x29de: 0x4014d020, 0x29df: 0x4014d220, - 0x29e0: 0x4014d420, 0x29e1: 0x4014d620, 0x29e2: 0x4014d820, 0x29e3: 0x4014da20, - 0x29e4: 0x4014dc20, 0x29e5: 0x4014de20, 0x29e6: 0x4014e020, 0x29e7: 0x4014e220, - 0x29e8: 0x4014e420, 0x29e9: 0x4014e620, 0x29ea: 0x4014e820, 0x29eb: 0x4014ea20, - 0x29ec: 0x4014ec20, 0x29ed: 0x4014ee20, 0x29ee: 0x4014f020, 0x29ef: 0x4014f220, - 0x29f0: 0x4014f420, 0x29f1: 0x4014f620, 0x29f2: 0x4014f820, 0x29f3: 0x4014fa20, - 0x29f4: 0x4014fc20, 0x29f5: 0x4014fe20, 0x29f6: 0x40150020, 0x29f7: 0x40150220, - 0x29f8: 0x40150420, 0x29f9: 0x40150620, 0x29fa: 0x40150820, 0x29fb: 0x40150a20, - 0x29fc: 0x40150c20, 0x29fd: 0x40150e20, 0x29fe: 0x40151020, 0x29ff: 0x40151220, - // Block 0xa8, offset 0x2a00 - 0x2a00: 0x40151420, 0x2a01: 0x40151620, 0x2a02: 0x40151820, 0x2a03: 0x40151a20, - 0x2a04: 0x40151c20, 0x2a05: 0x40151e20, 0x2a06: 0x40152020, 0x2a07: 0x40152220, - 0x2a08: 0x40152420, 0x2a09: 0x40152620, 0x2a0a: 0x40152820, 0x2a0b: 0x40152a20, - 0x2a0c: 0x40152c20, 0x2a0d: 0x40152e20, 0x2a0e: 0x40153020, 0x2a0f: 0x40153220, - 0x2a10: 0x40153420, 0x2a11: 0x40153620, 0x2a12: 0x40153820, 0x2a13: 0x40153a20, - 0x2a14: 0x40153c20, 0x2a15: 0x40153e20, 0x2a16: 0x40154020, 0x2a17: 0x40154220, - 0x2a18: 0x40154420, 0x2a19: 0x40154620, 0x2a1a: 0x40154820, 0x2a1b: 0x40154a20, - 0x2a1c: 0x40154c20, 0x2a1d: 0x40154e20, 0x2a1e: 0x40155020, 0x2a1f: 0x40155220, - 0x2a20: 0x40155420, 0x2a21: 0x40155620, 0x2a22: 0x40155820, 0x2a23: 0x40155a20, - 0x2a24: 0x40155c20, 0x2a25: 0x40155e20, 0x2a26: 0x40156020, 0x2a27: 0x40156220, - 0x2a28: 0x40156420, 0x2a29: 0x40156620, 0x2a2a: 0x40156820, 0x2a2b: 0x40156a20, - 0x2a2c: 0x40156c20, 0x2a2d: 0x40156e20, 0x2a2e: 0x40157020, 0x2a2f: 0x40157220, - 0x2a30: 0x40157420, 0x2a31: 0x40157620, 0x2a32: 0x40157820, 0x2a33: 0x40157a20, - 0x2a34: 0xf0000404, 0x2a35: 0xf0001f04, 0x2a36: 0xf0000404, 0x2a37: 0x40157c20, - 0x2a38: 0x40157e20, 0x2a39: 0x40158020, 0x2a3a: 0x40158220, 0x2a3b: 0x40158420, - 0x2a3c: 0x40158620, 0x2a3d: 0x40158820, 0x2a3e: 0x40158a20, 0x2a3f: 0x40158c20, - // Block 0xa9, offset 0x2a40 - 0x2a40: 0x40158e20, 0x2a41: 0x40159020, 0x2a42: 0x40159220, 0x2a43: 0x40159420, - 0x2a44: 0x40159620, 0x2a45: 0x40159820, 0x2a46: 0x40159a20, 0x2a47: 0x40159c20, - 0x2a48: 0x40159e20, 0x2a49: 0x4015a020, 0x2a4a: 0x4015a220, 0x2a4b: 0x4015a420, - 0x2a4c: 0x4015a620, 0x2a4d: 0x4015a820, 0x2a4e: 0x4015aa20, 0x2a4f: 0x4015ac20, - 0x2a50: 0x4015ae20, 0x2a51: 0x4015b020, 0x2a52: 0x4015b220, 0x2a53: 0x4015b420, - 0x2a54: 0x4015b620, 0x2a55: 0x4015b820, 0x2a56: 0x4015ba20, 0x2a57: 0x4015bc20, - 0x2a58: 0x4015be20, 0x2a59: 0x4015c020, 0x2a5a: 0x4015c220, 0x2a5b: 0x4015c420, - 0x2a5c: 0x4015c620, 0x2a5d: 0x4015c820, 0x2a5e: 0x4015ca20, 0x2a5f: 0x4015cc20, - 0x2a60: 0x4015ce20, 0x2a61: 0x4015d020, 0x2a62: 0x4015d220, 0x2a63: 0x4015d420, - 0x2a64: 0x4015d620, 0x2a65: 0x4015d820, 0x2a66: 0x4015da20, 0x2a67: 0x4015dc20, - 0x2a68: 0x4015de20, 0x2a69: 0x4015e020, 0x2a6a: 0x4015e220, 0x2a6b: 0x4015e420, - 0x2a6c: 0x4015e620, 0x2a6d: 0x4015e820, 0x2a6e: 0x4015ea20, 0x2a6f: 0x4015ec20, - 0x2a70: 0x4015ee20, 0x2a71: 0x4015f020, 0x2a72: 0x4015f220, 0x2a73: 0x4015f420, - 0x2a74: 0x4015f620, 0x2a75: 0x4015f820, 0x2a76: 0x4015fa20, 0x2a77: 0x4015fc20, - 0x2a78: 0x4015fe20, 0x2a79: 0x40160020, 0x2a7a: 0x40160220, 0x2a7b: 0x40160420, - 0x2a7c: 0x40160620, 0x2a7d: 0x40160820, 0x2a7e: 0x40160a20, 0x2a7f: 0x40160c20, - // Block 0xaa, offset 0x2a80 - 0x2a80: 0x40160e20, 0x2a81: 0x40161020, 0x2a82: 0x40161220, 0x2a83: 0x40161420, - 0x2a84: 0x40161620, 0x2a85: 0x40161820, 0x2a86: 0x40161a20, 0x2a87: 0x40161c20, - 0x2a88: 0x40161e20, 0x2a89: 0x40162020, 0x2a8a: 0x40162220, 0x2a8b: 0x40162420, - 0x2a8c: 0x40162620, 0x2a8d: 0x40162820, 0x2a8e: 0x40162a20, 0x2a8f: 0x40162c20, - 0x2a90: 0x40162e20, 0x2a91: 0x40163020, 0x2a92: 0x40163220, 0x2a93: 0x40163420, - 0x2a94: 0x40163620, 0x2a95: 0x40163820, 0x2a96: 0x40163a20, 0x2a97: 0x40163c20, - 0x2a98: 0x40163e20, 0x2a99: 0x40164020, 0x2a9a: 0x40164220, 0x2a9b: 0x40164420, - 0x2a9c: 0xe000014f, 0x2a9d: 0x40164620, 0x2a9e: 0x40164820, 0x2a9f: 0x40164a20, - 0x2aa0: 0x40164c20, 0x2aa1: 0x40164e20, 0x2aa2: 0x40165020, 0x2aa3: 0x40165220, - 0x2aa4: 0x40165420, 0x2aa5: 0x40165620, 0x2aa6: 0x40165820, 0x2aa7: 0x40165a20, - 0x2aa8: 0x40165c20, 0x2aa9: 0x40165e20, 0x2aaa: 0x40166020, 0x2aab: 0x40166220, - 0x2aac: 0x40166420, 0x2aad: 0x40166620, 0x2aae: 0x40166820, 0x2aaf: 0x40166a20, - 0x2ab0: 0x40166c20, 0x2ab1: 0x40166e20, 0x2ab2: 0x40167020, 0x2ab3: 0x40167220, - 0x2ab4: 0x40167420, 0x2ab5: 0x40167620, 0x2ab6: 0x40167820, 0x2ab7: 0x40167a20, - 0x2ab8: 0x40167c20, 0x2ab9: 0x40167e20, 0x2aba: 0x40168020, 0x2abb: 0x40168220, - 0x2abc: 0x40168420, 0x2abd: 0x40168620, 0x2abe: 0x40168820, 0x2abf: 0x40168a20, - // Block 0xab, offset 0x2ac0 - 0x2ac0: 0x40168c20, 0x2ac1: 0x40168e20, 0x2ac2: 0x40169020, 0x2ac3: 0x40169220, - 0x2ac4: 0x40169420, 0x2ac5: 0x40169620, 0x2ac6: 0x40169820, 0x2ac7: 0x40169a20, - 0x2ac8: 0x40169c20, 0x2ac9: 0x40169e20, 0x2aca: 0x4016a020, 0x2acb: 0x4016a220, - 0x2acc: 0x4016a420, 0x2acd: 0x4016a620, 0x2ace: 0x4016a820, 0x2acf: 0x4016aa20, - 0x2ad0: 0x4016ac20, 0x2ad1: 0x4016ae20, 0x2ad2: 0x4016b020, 0x2ad3: 0x4016b220, - 0x2ad4: 0x4016b420, 0x2ad5: 0x4016b620, 0x2ad6: 0x4016b820, 0x2ad7: 0x4016ba20, - 0x2ad8: 0x4016bc20, 0x2ad9: 0x4016be20, 0x2ada: 0x4016c020, 0x2adb: 0x4016c220, - 0x2adc: 0x4016c420, 0x2add: 0x4016c620, 0x2ade: 0x4016c820, 0x2adf: 0x4016ca20, - 0x2ae0: 0x4016cc20, 0x2ae1: 0x4016ce20, 0x2ae2: 0x4016d020, 0x2ae3: 0x4016d220, - 0x2ae4: 0x4016d420, 0x2ae5: 0x4016d620, 0x2ae6: 0x4016d820, 0x2ae7: 0x4016da20, - 0x2ae8: 0x4016dc20, 0x2ae9: 0x4016de20, 0x2aea: 0x4016e020, 0x2aeb: 0x4016e220, - 0x2aec: 0x4016e420, 0x2aed: 0x4016e620, 0x2aee: 0x4016e820, 0x2aef: 0x4016ea20, - 0x2af0: 0x4016ec20, 0x2af1: 0x4016ee20, 0x2af2: 0x4016f020, 0x2af3: 0x4016f220, - 0x2af4: 0x4016f420, 0x2af5: 0x4016f620, 0x2af6: 0x4016f820, 0x2af7: 0x4016fa20, - 0x2af8: 0x4016fc20, 0x2af9: 0x4016fe20, 0x2afa: 0x40170020, 0x2afb: 0x40170220, - 0x2afc: 0x40170420, 0x2afd: 0x40170620, 0x2afe: 0x40170820, 0x2aff: 0x40170a20, - // Block 0xac, offset 0x2b00 - 0x2b00: 0x40170c20, 0x2b01: 0x40170e20, 0x2b02: 0x40171020, 0x2b03: 0x40171220, - 0x2b04: 0x40171420, 0x2b05: 0x40171620, 0x2b06: 0x40171820, 0x2b07: 0x40171a20, - 0x2b08: 0x40171c20, 0x2b09: 0x40171e20, 0x2b0a: 0x40172020, 0x2b0b: 0x40172220, - 0x2b0c: 0x40172420, - 0x2b10: 0x40172620, 0x2b11: 0x40172820, 0x2b12: 0x40172a20, 0x2b13: 0x40172c20, - 0x2b14: 0x40172e20, 0x2b15: 0x40173020, 0x2b16: 0x40173220, 0x2b17: 0x40173420, - 0x2b18: 0x40173620, 0x2b19: 0x40173820, - // Block 0xad, offset 0x2b40 - 0x2b40: 0x00373888, 0x2b41: 0x00373a88, 0x2b42: 0x00373c88, 0x2b43: 0x00373e88, - 0x2b44: 0x00374088, 0x2b45: 0x00374288, 0x2b46: 0x00374488, 0x2b47: 0x00374688, - 0x2b48: 0x00374888, 0x2b49: 0x00374a88, 0x2b4a: 0x00374c88, 0x2b4b: 0x00374e88, - 0x2b4c: 0x00375088, 0x2b4d: 0x00375288, 0x2b4e: 0x00375488, 0x2b4f: 0x00375688, - 0x2b50: 0x00375888, 0x2b51: 0x00375a88, 0x2b52: 0x00375c88, 0x2b53: 0x00375e88, - 0x2b54: 0x00376088, 0x2b55: 0x00376288, 0x2b56: 0x00376488, 0x2b57: 0x00376688, - 0x2b58: 0x00376888, 0x2b59: 0x00376a88, 0x2b5a: 0x00376c88, 0x2b5b: 0x00376e88, - 0x2b5c: 0x00377088, 0x2b5d: 0x00377288, 0x2b5e: 0x00377488, 0x2b5f: 0x00377688, - 0x2b60: 0x00377888, 0x2b61: 0x00377a88, 0x2b62: 0x00377c88, 0x2b63: 0x00377e88, - 0x2b64: 0x00378088, 0x2b65: 0x00378288, 0x2b66: 0x00378488, 0x2b67: 0x00378688, - 0x2b68: 0x00378888, 0x2b69: 0x00378a88, 0x2b6a: 0x00378c88, 0x2b6b: 0x00378e88, - 0x2b6c: 0x00379088, 0x2b6d: 0x00379288, 0x2b6e: 0x00379488, - 0x2b70: 0x40373820, 0x2b71: 0x40373a20, 0x2b72: 0x40373c20, 0x2b73: 0x40373e20, - 0x2b74: 0x40374020, 0x2b75: 0x40374220, 0x2b76: 0x40374420, 0x2b77: 0x40374620, - 0x2b78: 0x40374820, 0x2b79: 0x40374a20, 0x2b7a: 0x40374c20, 0x2b7b: 0x40374e20, - 0x2b7c: 0x40375020, 0x2b7d: 0x40375220, 0x2b7e: 0x40375420, 0x2b7f: 0x40375620, - // Block 0xae, offset 0x2b80 - 0x2b80: 0x40375820, 0x2b81: 0x40375a20, 0x2b82: 0x40375c20, 0x2b83: 0x40375e20, - 0x2b84: 0x40376020, 0x2b85: 0x40376220, 0x2b86: 0x40376420, 0x2b87: 0x40376620, - 0x2b88: 0x40376820, 0x2b89: 0x40376a20, 0x2b8a: 0x40376c20, 0x2b8b: 0x40376e20, - 0x2b8c: 0x40377020, 0x2b8d: 0x40377220, 0x2b8e: 0x40377420, 0x2b8f: 0x40377620, - 0x2b90: 0x40377820, 0x2b91: 0x40377a20, 0x2b92: 0x40377c20, 0x2b93: 0x40377e20, - 0x2b94: 0x40378020, 0x2b95: 0x40378220, 0x2b96: 0x40378420, 0x2b97: 0x40378620, - 0x2b98: 0x40378820, 0x2b99: 0x40378a20, 0x2b9a: 0x40378c20, 0x2b9b: 0x40378e20, - 0x2b9c: 0x40379020, 0x2b9d: 0x40379220, 0x2b9e: 0x40379420, - 0x2ba0: 0x002e4088, 0x2ba1: 0x402e4020, 0x2ba2: 0x002e4288, 0x2ba3: 0x002f3688, - 0x2ba4: 0x002fbe88, 0x2ba5: 0x402be820, 0x2ba6: 0x40303e20, 0x2ba7: 0x002d8888, - 0x2ba8: 0x402d8820, 0x2ba9: 0x002e1288, 0x2baa: 0x402e1220, 0x2bab: 0x00316088, - 0x2bac: 0x40316020, 0x2bad: 0x002bf888, 0x2bae: 0x002e9088, 0x2baf: 0x002bf088, - 0x2bb0: 0x002c0288, 0x2bb1: 0x4030d420, 0x2bb2: 0x0030ec88, 0x2bb3: 0x4030ec20, - 0x2bb4: 0x4030d620, 0x2bb5: 0x002d8a88, 0x2bb6: 0x402d8a20, 0x2bb7: 0x402f5420, - 0x2bb8: 0x402cac20, 0x2bb9: 0x402fb420, 0x2bba: 0x402f0e20, 0x2bbb: 0x402cb620, - 0x2bbc: 0x002dcc95, 0x2bbd: 0x0030be9d, 0x2bbe: 0x002ffc88, 0x2bbf: 0x00315888, - // Block 0xaf, offset 0x2bc0 - 0x2bc0: 0x0032aa88, 0x2bc1: 0x4032aa20, 0x2bc2: 0x0032ac88, 0x2bc3: 0x4032ac20, - 0x2bc4: 0x0032ae88, 0x2bc5: 0x4032ae20, 0x2bc6: 0x0032b088, 0x2bc7: 0x4032b020, - 0x2bc8: 0x0032b288, 0x2bc9: 0x4032b220, 0x2bca: 0x0032b688, 0x2bcb: 0x4032b620, - 0x2bcc: 0x0032b888, 0x2bcd: 0x4032b820, 0x2bce: 0x0032ba88, 0x2bcf: 0x4032ba20, - 0x2bd0: 0x0032bc88, 0x2bd1: 0x4032bc20, 0x2bd2: 0x0032be88, 0x2bd3: 0x4032be20, - 0x2bd4: 0x0032c088, 0x2bd5: 0x4032c020, 0x2bd6: 0x0032c488, 0x2bd7: 0x4032c420, - 0x2bd8: 0x0032c688, 0x2bd9: 0x4032c620, 0x2bda: 0x0032c888, 0x2bdb: 0x4032c820, - 0x2bdc: 0x0032ce88, 0x2bdd: 0x4032ce20, 0x2bde: 0x0032d088, 0x2bdf: 0x4032d020, - 0x2be0: 0x0032d288, 0x2be1: 0x4032d220, 0x2be2: 0x0032d488, 0x2be3: 0x4032d420, - 0x2be4: 0x0032d688, 0x2be5: 0x4032d620, 0x2be6: 0x0032d888, 0x2be7: 0x4032d820, - 0x2be8: 0x0032da88, 0x2be9: 0x4032da20, 0x2bea: 0x0032dc88, 0x2beb: 0x4032dc20, - 0x2bec: 0x0032de88, 0x2bed: 0x4032de20, 0x2bee: 0x0032e088, 0x2bef: 0x4032e020, - 0x2bf0: 0x0032e288, 0x2bf1: 0x4032e220, 0x2bf2: 0x00331888, 0x2bf3: 0x40331820, - 0x2bf4: 0x00331a88, 0x2bf5: 0x40331a20, 0x2bf6: 0x0032b488, 0x2bf7: 0x4032b420, - 0x2bf8: 0x0032c288, 0x2bf9: 0x4032c220, 0x2bfa: 0x0032ca88, 0x2bfb: 0x4032ca20, - 0x2bfc: 0x0032cc88, 0x2bfd: 0x4032cc20, 0x2bfe: 0x0032e488, 0x2bff: 0x4032e420, - // Block 0xb0, offset 0x2c00 - 0x2c00: 0x0032e688, 0x2c01: 0x4032e620, 0x2c02: 0x0032ec88, 0x2c03: 0x4032ec20, - 0x2c04: 0x0032ee88, 0x2c05: 0x4032ee20, 0x2c06: 0x0032f088, 0x2c07: 0x4032f020, - 0x2c08: 0x0032f888, 0x2c09: 0x4032f820, 0x2c0a: 0x0032fc88, 0x2c0b: 0x4032fc20, - 0x2c0c: 0x0032fe88, 0x2c0d: 0x4032fe20, 0x2c0e: 0x00330088, 0x2c0f: 0x40330020, - 0x2c10: 0x00330288, 0x2c11: 0x40330220, 0x2c12: 0x00330488, 0x2c13: 0x40330420, - 0x2c14: 0x00330688, 0x2c15: 0x40330620, 0x2c16: 0x00330c88, 0x2c17: 0x40330c20, - 0x2c18: 0x00331088, 0x2c19: 0x40331020, 0x2c1a: 0x00331288, 0x2c1b: 0x40331220, - 0x2c1c: 0x00331488, 0x2c1d: 0x40331420, 0x2c1e: 0x00331c88, 0x2c1f: 0x40331c20, - 0x2c20: 0x00331e88, 0x2c21: 0x40331e20, 0x2c22: 0x00332088, 0x2c23: 0x40332020, - 0x2c24: 0xe00014b0, 0x2c25: 0x40173a20, 0x2c26: 0x40173c20, 0x2c27: 0x40173e20, - 0x2c28: 0x40174020, 0x2c29: 0x40174220, 0x2c2a: 0x40174420, 0x2c2b: 0x0032ea88, - 0x2c2c: 0x4032ea20, 0x2c2d: 0x00330a88, 0x2c2e: 0x40330a20, 0x2c2f: 0xae605f02, - 0x2c30: 0xae602a02, 0x2c31: 0xae602202, 0x2c32: 0x0032f688, 0x2c33: 0x4032f620, - 0x2c39: 0x4002f820, 0x2c3a: 0x4002d420, 0x2c3b: 0x4002d620, - 0x2c3c: 0x4003b620, 0x2c3d: 0x4028b420, 0x2c3e: 0x4002fa20, 0x2c3f: 0x4003b820, - // Block 0xb1, offset 0x2c40 - 0x2c40: 0x40379820, 0x2c41: 0x40379c20, 0x2c42: 0x4037a020, 0x2c43: 0x4037a420, - 0x2c44: 0x4037a820, 0x2c45: 0x4037ac20, 0x2c46: 0x4037b020, 0x2c47: 0x4037b820, - 0x2c48: 0x4037bc20, 0x2c49: 0x4037c020, 0x2c4a: 0x4037c420, 0x2c4b: 0x4037c820, - 0x2c4c: 0x4037cc20, 0x2c4d: 0x4037d420, 0x2c4e: 0x4037d820, 0x2c4f: 0x4037dc20, - 0x2c50: 0x4037e020, 0x2c51: 0x4037e420, 0x2c52: 0x4037e820, 0x2c53: 0x4037f020, - 0x2c54: 0x4037f420, 0x2c55: 0x4037f820, 0x2c56: 0x4037fc20, 0x2c57: 0x40380020, - 0x2c58: 0x40380420, 0x2c59: 0x40380820, 0x2c5a: 0x40380c20, 0x2c5b: 0x40381020, - 0x2c5c: 0x40381420, 0x2c5d: 0x40381820, 0x2c5e: 0x40381c20, 0x2c5f: 0x40382420, - 0x2c60: 0x40382820, 0x2c61: 0x4037b420, 0x2c62: 0x4037d020, 0x2c63: 0x4037ec20, - 0x2c64: 0x40382020, 0x2c65: 0x40382c20, 0x2c67: 0x40383220, - 0x2c6d: 0x40383c20, - 0x2c70: 0x403bbc20, 0x2c71: 0x403bbe20, 0x2c72: 0x403bc020, 0x2c73: 0x403bc220, - 0x2c74: 0x403bc420, 0x2c75: 0x403bc620, 0x2c76: 0x403bc820, 0x2c77: 0x403bca20, - 0x2c78: 0x403bcc20, 0x2c79: 0x403bce20, 0x2c7a: 0x403bd020, 0x2c7b: 0x403bd220, - 0x2c7c: 0x403bd620, 0x2c7d: 0x403bd820, 0x2c7e: 0x403bda20, 0x2c7f: 0x403bdc20, - // Block 0xb2, offset 0x2c80 - 0x2c80: 0x403bde20, 0x2c81: 0x403be020, 0x2c82: 0x403be220, 0x2c83: 0x403be420, - 0x2c84: 0x403be620, 0x2c85: 0x403be820, 0x2c86: 0x403bea20, 0x2c87: 0x403bec20, - 0x2c88: 0x403bee20, 0x2c89: 0x403bf020, 0x2c8a: 0x403bf220, 0x2c8b: 0x403bf420, - 0x2c8c: 0x403bf620, 0x2c8d: 0x403bf820, 0x2c8e: 0x403bfa20, 0x2c8f: 0x403bfc20, - 0x2c90: 0x403bfe20, 0x2c91: 0x403c0020, 0x2c92: 0x403c0220, 0x2c93: 0x403c0420, - 0x2c94: 0x403c0820, 0x2c95: 0x403c0a20, 0x2c96: 0x403c0c20, 0x2c97: 0x403c0e20, - 0x2c98: 0x403c1020, 0x2c99: 0x403c1220, 0x2c9a: 0x403c1420, 0x2c9b: 0x403c1620, - 0x2c9c: 0x403c1820, 0x2c9d: 0x403c1a20, 0x2c9e: 0x403c1c20, 0x2c9f: 0x403c1e20, - 0x2ca0: 0x403c2020, 0x2ca1: 0x403c2220, 0x2ca2: 0x403c2420, 0x2ca3: 0x403c2620, - 0x2ca4: 0x403c2820, 0x2ca5: 0x403c2a20, 0x2ca6: 0x403bd420, 0x2ca7: 0x403c0620, - 0x2caf: 0x403c2c20, - 0x2cb0: 0x4005e620, - 0x2cbf: 0xa0900000, - // Block 0xb3, offset 0x2cc0 - 0x2cc0: 0x403c4e20, 0x2cc1: 0x403c7820, 0x2cc2: 0x403c9a20, 0x2cc3: 0x403cac20, - 0x2cc4: 0x403cca20, 0x2cc5: 0x403d1620, 0x2cc6: 0x403d3820, 0x2cc7: 0x403d4a20, - 0x2cc8: 0x403d7620, 0x2cc9: 0x403d8820, 0x2cca: 0x403d9a20, 0x2ccb: 0x403dfc20, - 0x2ccc: 0x403e3a20, 0x2ccd: 0x403e5820, 0x2cce: 0x403e6a20, 0x2ccf: 0x403eae20, - 0x2cd0: 0x403ec020, 0x2cd1: 0x403ee020, 0x2cd2: 0x403f4020, 0x2cd3: 0x403e9620, - 0x2cd4: 0x403e9820, 0x2cd5: 0x403e9a20, 0x2cd6: 0x403e9c20, - 0x2ce0: 0x403f4820, 0x2ce1: 0x403f4a20, 0x2ce2: 0x403f4c20, 0x2ce3: 0x403f4e20, - 0x2ce4: 0x403f5020, 0x2ce5: 0x403f5220, 0x2ce6: 0x403f5420, - 0x2ce8: 0x403f5620, 0x2ce9: 0x403f5820, 0x2cea: 0x403f5a20, 0x2ceb: 0x403f5c20, - 0x2cec: 0x403f5e20, 0x2ced: 0x403f6020, 0x2cee: 0x403f6220, - 0x2cf0: 0x403f6420, 0x2cf1: 0x403f6620, 0x2cf2: 0x403f6820, 0x2cf3: 0x403f6a20, - 0x2cf4: 0x403f6c20, 0x2cf5: 0x403f6e20, 0x2cf6: 0x403f7020, - 0x2cf8: 0x403f7220, 0x2cf9: 0x403f7420, 0x2cfa: 0x403f7620, 0x2cfb: 0x403f7820, - 0x2cfc: 0x403f7a20, 0x2cfd: 0x403f7c20, 0x2cfe: 0x403f7e20, - // Block 0xb4, offset 0x2d00 - 0x2d00: 0x403f8020, 0x2d01: 0x403f8220, 0x2d02: 0x403f8420, 0x2d03: 0x403f8620, - 0x2d04: 0x403f8820, 0x2d05: 0x403f8a20, 0x2d06: 0x403f8c20, - 0x2d08: 0x403f8e20, 0x2d09: 0x403f9020, 0x2d0a: 0x403f9220, 0x2d0b: 0x403f9420, - 0x2d0c: 0x403f9620, 0x2d0d: 0x403f9820, 0x2d0e: 0x403f9a20, - 0x2d10: 0x403f9c20, 0x2d11: 0x403f9e20, 0x2d12: 0x403fa020, 0x2d13: 0x403fa220, - 0x2d14: 0x403fa420, 0x2d15: 0x403fa620, 0x2d16: 0x403fa820, - 0x2d18: 0x403faa20, 0x2d19: 0x403fac20, 0x2d1a: 0x403fae20, 0x2d1b: 0x403fb020, - 0x2d1c: 0x403fb220, 0x2d1d: 0x403fb420, 0x2d1e: 0x403fb620, - 0x2d20: 0x84e619a9, 0x2d21: 0x84e619ad, 0x2d22: 0x84e619b1, 0x2d23: 0x84e619c5, - 0x2d24: 0x84e619e5, 0x2d25: 0x84e619f2, 0x2d26: 0x84e61a28, 0x2d27: 0x84e61a42, - 0x2d28: 0x84e61a54, 0x2d29: 0x84e61a5d, 0x2d2a: 0x84e61a77, 0x2d2b: 0x84e61a87, - 0x2d2c: 0x84e61a94, 0x2d2d: 0x84e61a9d, 0x2d2e: 0x84e61aa6, 0x2d2f: 0x84e61ada, - 0x2d30: 0x84e61b01, 0x2d31: 0x84e61b0c, 0x2d32: 0x84e61b2e, 0x2d33: 0x84e61b33, - 0x2d34: 0x84e61b86, 0x2d35: 0xe00014d8, 0x2d36: 0x84e61991, 0x2d37: 0x84e619d9, - 0x2d38: 0x84e61a27, 0x2d39: 0x84e61ad1, 0x2d3a: 0x84e61b4f, 0x2d3b: 0x84e61b5c, - 0x2d3c: 0x84e61b61, 0x2d3d: 0x84e61b6b, 0x2d3e: 0x84e61b70, 0x2d3f: 0x84e61b7a, - // Block 0xb5, offset 0x2d40 - 0x2d40: 0x40052620, 0x2d41: 0x40052820, 0x2d42: 0x40047420, 0x2d43: 0x40047620, - 0x2d44: 0x40047820, 0x2d45: 0x40047a20, 0x2d46: 0x40052a20, 0x2d47: 0x40052c20, - 0x2d48: 0x40052e20, 0x2d49: 0x40047c20, 0x2d4a: 0x40047e20, 0x2d4b: 0x40053020, - 0x2d4c: 0x40048020, 0x2d4d: 0x40048220, 0x2d4e: 0x40053220, 0x2d4f: 0x40053420, - 0x2d50: 0x40053620, 0x2d51: 0x40053820, 0x2d52: 0x40053a20, 0x2d53: 0x40053c20, - 0x2d54: 0x40053e20, 0x2d55: 0x40054020, 0x2d56: 0x40054220, 0x2d57: 0x40023620, - 0x2d58: 0x4002e220, 0x2d59: 0x4003ba20, 0x2d5a: 0x40054420, 0x2d5b: 0x40054620, - 0x2d5c: 0x40048420, 0x2d5d: 0x40048620, 0x2d5e: 0x40054820, 0x2d5f: 0x40054a20, - 0x2d60: 0x40048820, 0x2d61: 0x40048a20, 0x2d62: 0x40048c20, 0x2d63: 0x40048e20, - 0x2d64: 0x40049020, 0x2d65: 0x40049220, 0x2d66: 0x40049420, 0x2d67: 0x40049620, - 0x2d68: 0x40049820, 0x2d69: 0x40049a20, 0x2d6a: 0x4003ae20, 0x2d6b: 0x4003b020, - 0x2d6c: 0x4003b220, 0x2d6d: 0x4003b420, 0x2d6e: 0x4002c820, 0x2d6f: 0x40367020, - 0x2d70: 0x4002fc20, 0x2d71: 0x40030820, 0x2d72: 0x40024420, 0x2d73: 0x40030a20, - 0x2d74: 0x40024220, 0x2d75: 0x40026820, 0x2d76: 0x4004fc20, 0x2d77: 0x4004fe20, - 0x2d78: 0x40050020, 0x2d79: 0x4004d020, 0x2d7a: 0x40023020, 0x2d7b: 0x40023220, - // Block 0xb6, offset 0x2d80 - 0x2d80: 0xe0002401, 0x2d81: 0xe0002416, 0x2d82: 0x029cb684, 0x2d83: 0x029cb484, - 0x2d84: 0xe0002404, 0x2d85: 0x029d7684, 0x2d86: 0xe0002407, 0x2d87: 0xe000240a, - 0x2d88: 0xe000240d, 0x2d89: 0x02a40484, 0x2d8a: 0xe0002410, 0x2d8b: 0xe0002413, - 0x2d8c: 0xe0002419, 0x2d8d: 0xe000241c, 0x2d8e: 0xe000241f, 0x2d8f: 0x02b84684, - 0x2d90: 0x02b84484, 0x2d91: 0xe0002422, 0x2d92: 0x02bbe684, 0x2d93: 0x02bcf484, - 0x2d94: 0x02bea284, 0x2d95: 0xe0002425, 0x2d96: 0x02bf8884, 0x2d97: 0xe0002428, - 0x2d98: 0x02c49884, 0x2d99: 0x02ca6a84, 0x2d9b: 0x02cbc284, - 0x2d9c: 0xe000242b, 0x2d9d: 0xe000242e, 0x2d9e: 0xe0002436, 0x2d9f: 0x02d79a84, - 0x2da0: 0x02d82284, 0x2da1: 0x02d86a84, 0x2da2: 0x02d87484, 0x2da3: 0x02e0d884, - 0x2da4: 0x02e45684, 0x2da5: 0xe0002439, 0x2da6: 0x029c5884, 0x2da7: 0xe000243c, - 0x2da8: 0x02e55a84, 0x2da9: 0xe000243f, 0x2daa: 0xe0002442, 0x2dab: 0xe0002445, - 0x2dac: 0xe0002448, 0x2dad: 0x02f27684, 0x2dae: 0xe000244b, 0x2daf: 0x02f9f284, - 0x2db0: 0x02fd3e84, 0x2db1: 0x02fea684, 0x2db2: 0x02fea484, 0x2db3: 0xe0002451, - 0x2db4: 0xe0002454, 0x2db5: 0xe000244e, 0x2db6: 0xe0002457, 0x2db7: 0xe000245a, - 0x2db8: 0x02ff1684, 0x2db9: 0x03000484, 0x2dba: 0x03010084, 0x2dbb: 0xe000245d, - 0x2dbc: 0xe0002460, 0x2dbd: 0xe0002463, 0x2dbe: 0x0304f284, 0x2dbf: 0xe0002466, - // Block 0xb7, offset 0x2dc0 - 0x2dc0: 0xe0002469, 0x2dc1: 0x030c9c84, 0x2dc2: 0x0310c884, 0x2dc3: 0x03130084, - 0x2dc4: 0x0312fe84, 0x2dc5: 0x03138284, 0x2dc6: 0x0313a484, 0x2dc7: 0xe000246c, - 0x2dc8: 0x03174084, 0x2dc9: 0x031a3a84, 0x2dca: 0xe000246f, 0x2dcb: 0x031ecc84, - 0x2dcc: 0x031f6c84, 0x2dcd: 0xe0002472, 0x2dce: 0xe0002475, 0x2dcf: 0xe0002478, - 0x2dd0: 0x03290a84, 0x2dd1: 0x032aee84, 0x2dd2: 0x032af084, 0x2dd3: 0x032afe84, - 0x2dd4: 0x032bd084, 0x2dd5: 0xe000247b, 0x2dd6: 0x032c3a84, 0x2dd7: 0xe000247e, - 0x2dd8: 0x032ea484, 0x2dd9: 0x032fcc84, 0x2dda: 0x0330ea84, 0x2ddb: 0x03319c84, - 0x2ddc: 0x0331bc84, 0x2ddd: 0x0331be84, 0x2dde: 0xe0002481, 0x2ddf: 0x0331c084, - 0x2de0: 0x0332c684, 0x2de1: 0xe0002484, 0x2de2: 0x0334d884, 0x2de3: 0xe0002487, - 0x2de4: 0xe000248a, 0x2de5: 0x0338f884, 0x2de6: 0x033c3e84, 0x2de7: 0xe000248d, - 0x2de8: 0x033d4c84, 0x2de9: 0x033d8884, 0x2dea: 0x033dfc84, 0x2deb: 0xe0002490, - 0x2dec: 0x033ea084, 0x2ded: 0xe0002493, 0x2dee: 0x033efe84, 0x2def: 0xe0002496, - 0x2df0: 0x033f3284, 0x2df1: 0xe0002499, 0x2df2: 0xe000249c, 0x2df3: 0x033f3e84, - // Block 0xb8, offset 0x2e00 - 0x2e00: 0x029c0084, 0x2e01: 0x029c5084, 0x2e02: 0x029c6c84, 0x2e03: 0x029c7e84, - 0x2e04: 0x029cb284, 0x2e05: 0x029d0a84, 0x2e06: 0x029d1884, 0x2e07: 0x029d4084, - 0x2e08: 0x029d7484, 0x2e09: 0x02a27e84, 0x2e0a: 0x02a2ca84, 0x2e0b: 0x02a2d684, - 0x2e0c: 0x02a30484, 0x2e0d: 0x02a32c84, 0x2e0e: 0x02a35684, 0x2e0f: 0x02a3c084, - 0x2e10: 0x02a3ea84, 0x2e11: 0x02a40084, 0x2e12: 0x02a53684, 0x2e13: 0x02a5f284, - 0x2e14: 0x02a62a84, 0x2e15: 0x02a63484, 0x2e16: 0x02a67084, 0x2e17: 0x02a68284, - 0x2e18: 0x02a6b884, 0x2e19: 0x02a6d284, 0x2e1a: 0x02a70484, 0x2e1b: 0x02a76c84, - 0x2e1c: 0x02a79084, 0x2e1d: 0x02a7c684, 0x2e1e: 0x02adae84, 0x2e1f: 0x02ae3e84, - 0x2e20: 0x02b1d684, 0x2e21: 0x02b20484, 0x2e22: 0x02b21484, 0x2e23: 0x02b22a84, - 0x2e24: 0x02b24e84, 0x2e25: 0x02b2e684, 0x2e26: 0x02b6a084, 0x2e27: 0x02b70084, - 0x2e28: 0x02b7f084, 0x2e29: 0x02b81e84, 0x2e2a: 0x02b84484, 0x2e2b: 0x02b87084, - 0x2e2c: 0x02b8dc84, 0x2e2d: 0x02b8e284, 0x2e2e: 0x02bbb684, 0x2e2f: 0x02bbca84, - 0x2e30: 0x02bbe284, 0x2e31: 0x02bbfc84, 0x2e32: 0x02bce484, 0x2e33: 0x02bcf484, - 0x2e34: 0x02bcfe84, 0x2e35: 0x02bde884, 0x2e36: 0x02bdfc84, 0x2e37: 0x02be1684, - 0x2e38: 0x02be2684, 0x2e39: 0x02bea084, 0x2e3a: 0x02bec284, 0x2e3b: 0x02bee684, - 0x2e3c: 0x02bf8684, 0x2e3d: 0x02c41084, 0x2e3e: 0x02c46c84, 0x2e3f: 0x02c49684, - // Block 0xb9, offset 0x2e40 - 0x2e40: 0x02ca5e84, 0x2e41: 0x02ca6884, 0x2e42: 0x02cb0e84, 0x2e43: 0x02cb2e84, - 0x2e44: 0x02cb4884, 0x2e45: 0x02cb7284, 0x2e46: 0x02cbc084, 0x2e47: 0x02cbca84, - 0x2e48: 0x02cde084, 0x2e49: 0x02ce1084, 0x2e4a: 0x02ce5084, 0x2e4b: 0x02d64084, - 0x2e4c: 0x02d6c484, 0x2e4d: 0x02d6f284, 0x2e4e: 0x02d76684, 0x2e4f: 0x02d79684, - 0x2e50: 0x02d7a884, 0x2e51: 0x02d7b684, 0x2e52: 0x02d81e84, 0x2e53: 0x02d82884, - 0x2e54: 0x02d86884, 0x2e55: 0x02e0d684, 0x2e56: 0x02e45484, 0x2e57: 0x02e46c84, - 0x2e58: 0x02e47684, 0x2e59: 0x02e47e84, 0x2e5a: 0x02e48e84, 0x2e5b: 0x02e4b284, - 0x2e5c: 0x02e4b684, 0x2e5d: 0x02e55884, 0x2e5e: 0x02e70884, 0x2e5f: 0x02e71284, - 0x2e60: 0x02e9b884, 0x2e61: 0x02e9cc84, 0x2e62: 0x02ea3084, 0x2e63: 0x02ea3e84, - 0x2e64: 0x02ea5084, 0x2e65: 0x02ea6084, 0x2e66: 0x02eb1684, 0x2e67: 0x02eb2484, - 0x2e68: 0x02ecec84, 0x2e69: 0x02ecfa84, 0x2e6a: 0x02ed5c84, 0x2e6b: 0x02ed7e84, - 0x2e6c: 0x02eddc84, 0x2e6d: 0x02efb684, 0x2e6e: 0x02efc484, 0x2e6f: 0x02efe684, - 0x2e70: 0x02f27484, 0x2e71: 0x02f37084, 0x2e72: 0x02f37c84, 0x2e73: 0x02f4e884, - 0x2e74: 0x02f59684, 0x2e75: 0x02f5f284, 0x2e76: 0x02f8e684, 0x2e77: 0x02f9f084, - 0x2e78: 0x02fe6c84, 0x2e79: 0x02fea284, 0x2e7a: 0x02ff1484, 0x2e7b: 0x02ff7a84, - 0x2e7c: 0x03000284, 0x2e7d: 0x03001884, 0x2e7e: 0x03002484, 0x2e7f: 0x03006684, - // Block 0xba, offset 0x2e80 - 0x2e80: 0x0300fe84, 0x2e81: 0x03011284, 0x2e82: 0x0303c684, 0x2e83: 0x0303d484, - 0x2e84: 0x0303e684, 0x2e85: 0x0303f884, 0x2e86: 0x03041884, 0x2e87: 0x03043684, - 0x2e88: 0x03043e84, 0x2e89: 0x0304dc84, 0x2e8a: 0x0304e484, 0x2e8b: 0x0304f084, - 0x2e8c: 0x030c9a84, 0x2e8d: 0x030cd684, 0x2e8e: 0x03108084, 0x2e8f: 0x03109884, - 0x2e90: 0x0310c684, 0x2e91: 0x0312fc84, 0x2e92: 0x03131684, 0x2e93: 0x0313a484, - 0x2e94: 0x03140084, 0x2e95: 0x03186e84, 0x2e96: 0x03188c84, 0x2e97: 0x0318aa84, - 0x2e98: 0x0318f084, 0x2e99: 0x03193a84, 0x2e9a: 0x031ac884, 0x2e9b: 0x031ae084, - 0x2e9c: 0x031b6684, 0x2e9d: 0x031d5684, 0x2e9e: 0x031d9484, 0x2e9f: 0x031f3684, - 0x2ea0: 0x031f6084, 0x2ea1: 0x031f6a84, 0x2ea2: 0x03212284, 0x2ea3: 0x03229284, - 0x2ea4: 0x03238c84, 0x2ea5: 0x03239884, 0x2ea6: 0x0323a284, 0x2ea7: 0x032aee84, - 0x2ea8: 0x032b0084, 0x2ea9: 0x032c3884, 0x2eaa: 0x032d6c84, 0x2eab: 0x032d7284, - 0x2eac: 0x032dd084, 0x2ead: 0x032ea284, 0x2eae: 0x032ebc84, 0x2eaf: 0x032ec484, - 0x2eb0: 0x032ed284, 0x2eb1: 0x032f9684, 0x2eb2: 0x032fda84, 0x2eb3: 0x032fe684, - 0x2eb4: 0x03300284, 0x2eb5: 0x03315084, 0x2eb6: 0x0331b684, 0x2eb7: 0x0331be84, - 0x2eb8: 0x03332c84, 0x2eb9: 0x03333284, 0x2eba: 0x03335884, 0x2ebb: 0x03355084, - 0x2ebc: 0x0335b084, 0x2ebd: 0x0335be84, 0x2ebe: 0x03364a84, 0x2ebf: 0x03365e84, - // Block 0xbb, offset 0x2ec0 - 0x2ec0: 0x03366484, 0x2ec1: 0x03367884, 0x2ec2: 0x0336b484, 0x2ec3: 0x0339ca84, - 0x2ec4: 0x033cea84, 0x2ec5: 0x033cfe84, 0x2ec6: 0x033d4a84, 0x2ec7: 0x033d7684, - 0x2ec8: 0x033d8684, 0x2ec9: 0x033d9a84, 0x2eca: 0x033da284, 0x2ecb: 0x033df284, - 0x2ecc: 0x033dfa84, 0x2ecd: 0x033e1c84, 0x2ece: 0x033e2684, 0x2ecf: 0x033e4084, - 0x2ed0: 0x033e7684, 0x2ed1: 0x033e9484, 0x2ed2: 0x033ea484, 0x2ed3: 0x033f1a84, - 0x2ed4: 0x033f3884, 0x2ed5: 0x033f4084, - 0x2ef0: 0x40273a20, 0x2ef1: 0x40273c20, 0x2ef2: 0x40273e20, 0x2ef3: 0x40274020, - 0x2ef4: 0x40274220, 0x2ef5: 0x40274420, 0x2ef6: 0x40274620, 0x2ef7: 0x40274820, - 0x2ef8: 0x40274a20, 0x2ef9: 0x40274c20, 0x2efa: 0x40274e20, 0x2efb: 0x40275020, - // Block 0xbc, offset 0x2f00 - 0x2f00: 0x00021283, 0x2f01: 0x40025c20, 0x2f02: 0x40030420, 0x2f03: 0x40051220, - 0x2f04: 0x40279a20, 0x2f05: 0x4027ca20, 0x2f06: 0xe0002206, 0x2f07: 0xe00001d3, - 0x2f08: 0x40049c20, 0x2f09: 0x40049e20, 0x2f0a: 0x4004a020, 0x2f0b: 0x4004a220, - 0x2f0c: 0x4004a420, 0x2f0d: 0x4004a620, 0x2f0e: 0x4004a820, 0x2f0f: 0x4004aa20, - 0x2f10: 0x4004ac20, 0x2f11: 0x4004ae20, 0x2f12: 0x40279c20, 0x2f13: 0x40279e20, - 0x2f14: 0x4004b020, 0x2f15: 0x4004b220, 0x2f16: 0x4004b420, 0x2f17: 0x4004b620, - 0x2f18: 0x4004b820, 0x2f19: 0x4004ba20, 0x2f1a: 0x4004bc20, 0x2f1b: 0x4004be20, - 0x2f1c: 0x40023820, 0x2f1d: 0x4003ea20, 0x2f1e: 0x4003ec20, 0x2f1f: 0x4003ee20, - 0x2f20: 0x4027a020, 0x2f21: 0xe0000267, 0x2f22: 0xe000037f, 0x2f23: 0xe0000459, - 0x2f24: 0xe000052e, 0x2f25: 0xe00005f8, 0x2f26: 0xe00006c3, 0x2f27: 0xe000076b, - 0x2f28: 0xe0000817, 0x2f29: 0xe00008bc, 0x2f2a: 0xada12202, 0x2f2b: 0xae412302, - 0x2f2c: 0xae812402, 0x2f2d: 0xade12502, 0x2f2e: 0xae012602, 0x2f2f: 0xae012702, - 0x2f30: 0x40023a20, 0x2f31: 0x4027ce20, 0x2f32: 0xe0000152, 0x2f33: 0x4027d020, - 0x2f34: 0xe0000155, 0x2f35: 0x4027d220, 0x2f36: 0x00279c84, 0x2f37: 0x4027a220, - 0x2f38: 0x02a68284, 0x2f39: 0x02a68884, 0x2f3a: 0x02a68a84, 0x2f3b: 0x4027cc20, - 0x2f3c: 0xe000231a, 0x2f3d: 0x40051420, 0x2f3e: 0x4027a420, 0x2f3f: 0x4027a620, - // Block 0xbd, offset 0x2f40 - 0x2f41: 0x0065768d, 0x2f42: 0x0065768e, 0x2f43: 0x0065788d, - 0x2f44: 0x0065788e, 0x2f45: 0x00657a8d, 0x2f46: 0x00657a8e, 0x2f47: 0x00657e8d, - 0x2f48: 0x00657e8e, 0x2f49: 0x0065808d, 0x2f4a: 0x0065808e, 0x2f4b: 0x0065828e, - 0x2f4c: 0xe000216a, 0x2f4d: 0x0065848e, 0x2f4e: 0xe0002188, 0x2f4f: 0x0065868e, - 0x2f50: 0xe00021b8, 0x2f51: 0x0065888e, 0x2f52: 0xe00021d6, 0x2f53: 0x00658a8e, - 0x2f54: 0xe00021e0, 0x2f55: 0x00658c8e, 0x2f56: 0xe00021ef, 0x2f57: 0x00658e8e, - 0x2f58: 0xe0002200, 0x2f59: 0x0065908e, 0x2f5a: 0xe000220f, 0x2f5b: 0x0065928e, - 0x2f5c: 0xe0002215, 0x2f5d: 0x0065948e, 0x2f5e: 0xe0002223, 0x2f5f: 0x0065968e, - 0x2f60: 0xe0002229, 0x2f61: 0x0065988e, 0x2f62: 0xe0002234, 0x2f63: 0x00659a8d, - 0x2f64: 0x00659a8e, 0x2f65: 0xe000223a, 0x2f66: 0x00659c8e, 0x2f67: 0xe0002240, - 0x2f68: 0x00659e8e, 0x2f69: 0xe000224a, 0x2f6a: 0x0065a08e, 0x2f6b: 0x0065a28e, - 0x2f6c: 0x0065a48e, 0x2f6d: 0x0065a68e, 0x2f6e: 0x0065a88e, 0x2f6f: 0x0065aa8e, - 0x2f70: 0xe0002258, 0x2f71: 0xe000225e, 0x2f72: 0x0065ac8e, 0x2f73: 0xe000227a, - 0x2f74: 0xe0002280, 0x2f75: 0x0065ae8e, 0x2f76: 0xe000229a, 0x2f77: 0xe00022a0, - 0x2f78: 0x0065b08e, 0x2f79: 0xe00022bd, 0x2f7a: 0xe00022c3, 0x2f7b: 0x0065b28e, - 0x2f7c: 0xe00022ec, 0x2f7d: 0xe00022f2, 0x2f7e: 0x0065b48e, 0x2f7f: 0x0065b68e, - // Block 0xbe, offset 0x2f80 - 0x2f80: 0x0065b88e, 0x2f81: 0x0065ba8e, 0x2f82: 0x0065bc8e, 0x2f83: 0x0065be8d, - 0x2f84: 0x0065be8e, 0x2f85: 0x0065c08d, 0x2f86: 0x0065c08e, 0x2f87: 0x0065c48d, - 0x2f88: 0x0065c48e, 0x2f89: 0x0065c68e, 0x2f8a: 0x0065c88e, 0x2f8b: 0x0065ca8e, - 0x2f8c: 0x0065cc8e, 0x2f8d: 0x0065ce8e, 0x2f8e: 0x0065d08d, 0x2f8f: 0x0065d08e, - 0x2f90: 0x0065d28e, 0x2f91: 0x0065d48e, 0x2f92: 0x0065d68e, 0x2f93: 0x0065d88e, - 0x2f94: 0xe000214c, 0x2f95: 0x0065828d, 0x2f96: 0x0065888d, - 0x2f99: 0xa0812802, 0x2f9a: 0xa0812902, 0x2f9b: 0x40063c20, - 0x2f9c: 0x40063e20, 0x2f9d: 0x4027d420, 0x2f9e: 0xe0000158, 0x2f9f: 0xf0001616, - 0x2fa0: 0x40023c20, 0x2fa1: 0x0065768f, 0x2fa2: 0x00657691, 0x2fa3: 0x0065788f, - 0x2fa4: 0x00657891, 0x2fa5: 0x00657a8f, 0x2fa6: 0x00657a91, 0x2fa7: 0x00657e8f, - 0x2fa8: 0x00657e91, 0x2fa9: 0x0065808f, 0x2faa: 0x00658091, 0x2fab: 0x00658291, - 0x2fac: 0xe000216d, 0x2fad: 0x00658491, 0x2fae: 0xe000218b, 0x2faf: 0x00658691, - 0x2fb0: 0xe00021bb, 0x2fb1: 0x00658891, 0x2fb2: 0xe00021d9, 0x2fb3: 0x00658a91, - 0x2fb4: 0xe00021e3, 0x2fb5: 0x00658c91, 0x2fb6: 0xe00021f2, 0x2fb7: 0x00658e91, - 0x2fb8: 0xe0002203, 0x2fb9: 0x00659091, 0x2fba: 0xe0002212, 0x2fbb: 0x00659291, - 0x2fbc: 0xe0002218, 0x2fbd: 0x00659491, 0x2fbe: 0xe0002226, 0x2fbf: 0x00659691, - // Block 0xbf, offset 0x2fc0 - 0x2fc0: 0xe000222c, 0x2fc1: 0x00659891, 0x2fc2: 0xe0002237, 0x2fc3: 0x00659a8f, - 0x2fc4: 0x00659a91, 0x2fc5: 0xe000223d, 0x2fc6: 0x00659c91, 0x2fc7: 0xe0002243, - 0x2fc8: 0x00659e91, 0x2fc9: 0xe000224d, 0x2fca: 0x0065a091, 0x2fcb: 0x0065a291, - 0x2fcc: 0x0065a491, 0x2fcd: 0x0065a691, 0x2fce: 0x0065a891, 0x2fcf: 0x0065aa91, - 0x2fd0: 0xe000225b, 0x2fd1: 0xe0002261, 0x2fd2: 0x0065ac91, 0x2fd3: 0xe000227d, - 0x2fd4: 0xe0002283, 0x2fd5: 0x0065ae91, 0x2fd6: 0xe000229d, 0x2fd7: 0xe00022a3, - 0x2fd8: 0x0065b091, 0x2fd9: 0xe00022c0, 0x2fda: 0xe00022c6, 0x2fdb: 0x0065b291, - 0x2fdc: 0xe00022ef, 0x2fdd: 0xe00022f5, 0x2fde: 0x0065b491, 0x2fdf: 0x0065b691, - 0x2fe0: 0x0065b891, 0x2fe1: 0x0065ba91, 0x2fe2: 0x0065bc91, 0x2fe3: 0x0065be8f, - 0x2fe4: 0x0065be91, 0x2fe5: 0x0065c08f, 0x2fe6: 0x0065c091, 0x2fe7: 0x0065c48f, - 0x2fe8: 0x0065c491, 0x2fe9: 0x0065c691, 0x2fea: 0x0065c891, 0x2feb: 0x0065ca91, - 0x2fec: 0x0065cc91, 0x2fed: 0x0065ce91, 0x2fee: 0x0065d08f, 0x2fef: 0x0065d091, - 0x2ff0: 0x0065d291, 0x2ff1: 0x0065d491, 0x2ff2: 0x0065d691, 0x2ff3: 0x0065d891, - 0x2ff4: 0xe000214f, 0x2ff5: 0x0065828f, 0x2ff6: 0x0065888f, 0x2ff7: 0xe000236a, - 0x2ff8: 0xe0002371, 0x2ff9: 0xe0002374, 0x2ffa: 0xe0002377, 0x2ffb: 0x40023e20, - 0x2ffc: 0x4027d620, 0x2ffd: 0x4027d820, 0x2ffe: 0xe000015b, 0x2fff: 0xf0001616, - // Block 0xc0, offset 0x3000 - 0x3005: 0x4065da20, 0x3006: 0x4065dc20, 0x3007: 0x4065de20, - 0x3008: 0x4065e020, 0x3009: 0x4065e420, 0x300a: 0x4065e620, 0x300b: 0x4065e820, - 0x300c: 0x4065ea20, 0x300d: 0x4065ec20, 0x300e: 0x4065ee20, 0x300f: 0x4065f420, - 0x3010: 0x4065f620, 0x3011: 0x4065f820, 0x3012: 0x4065fa20, 0x3013: 0x4065fe20, - 0x3014: 0x40660020, 0x3015: 0x40660220, 0x3016: 0x40660420, 0x3017: 0x40660620, - 0x3018: 0x40660820, 0x3019: 0x40660a20, 0x301a: 0x40661220, 0x301b: 0x40661420, - 0x301c: 0x40661820, 0x301d: 0x40661a20, 0x301e: 0x40661e20, 0x301f: 0x40662020, - 0x3020: 0x40662220, 0x3021: 0x40662420, 0x3022: 0x40662620, 0x3023: 0x40662820, - 0x3024: 0x40662a20, 0x3025: 0x40662e20, 0x3026: 0x40663620, 0x3027: 0x40663820, - 0x3028: 0x40663a20, 0x3029: 0x40663c20, 0x302a: 0x4065e220, 0x302b: 0x4065f020, - 0x302c: 0x4065fc20, 0x302d: 0x40663e20, - 0x3031: 0x0062ac84, 0x3032: 0x0062ae84, 0x3033: 0x00646884, - 0x3034: 0x0062b084, 0x3035: 0x00646c84, 0x3036: 0x00646e84, 0x3037: 0x0062b284, - 0x3038: 0x0062b484, 0x3039: 0x0062b684, 0x303a: 0x00647484, 0x303b: 0x00647684, - 0x303c: 0x00647884, 0x303d: 0x00647a84, 0x303e: 0x00647c84, 0x303f: 0x00647e84, - // Block 0xc1, offset 0x3040 - 0x3040: 0x0062e084, 0x3041: 0x0062b884, 0x3042: 0x0062ba84, 0x3043: 0x0062bc84, - 0x3044: 0x0062ee84, 0x3045: 0x0062be84, 0x3046: 0x0062c084, 0x3047: 0x0062c284, - 0x3048: 0x0062c484, 0x3049: 0x0062c684, 0x304a: 0x0062c884, 0x304b: 0x0062ca84, - 0x304c: 0x0062cc84, 0x304d: 0x0062ce84, 0x304e: 0x0062d084, 0x304f: 0x0063a884, - 0x3050: 0x0063aa84, 0x3051: 0x0063ac84, 0x3052: 0x0063ae84, 0x3053: 0x0063b084, - 0x3054: 0x0063b284, 0x3055: 0x0063b484, 0x3056: 0x0063b684, 0x3057: 0x0063b884, - 0x3058: 0x0063ba84, 0x3059: 0x0063bc84, 0x305a: 0x0063be84, 0x305b: 0x0063c084, - 0x305c: 0x0063c284, 0x305d: 0x0063c484, 0x305e: 0x0063c684, 0x305f: 0x0063c884, - 0x3060: 0x0063ca84, 0x3061: 0x0063cc84, 0x3062: 0x0063ce84, 0x3063: 0x0063d084, - 0x3064: 0x0063a684, 0x3065: 0x0062d484, 0x3066: 0x0062d684, 0x3067: 0x0064a284, - 0x3068: 0x0064a484, 0x3069: 0x0064ac84, 0x306a: 0x0064b084, 0x306b: 0x0064ba84, - 0x306c: 0x0064c284, 0x306d: 0x0064c684, 0x306e: 0x0062e484, 0x306f: 0x0064ce84, - 0x3070: 0x0064d284, 0x3071: 0x0062e684, 0x3072: 0x0062e884, 0x3073: 0x0062ec84, - 0x3074: 0x0062f084, 0x3075: 0x0062f284, 0x3076: 0x0062fa84, 0x3077: 0x0062fe84, - 0x3078: 0x00630284, 0x3079: 0x00630484, 0x307a: 0x00630684, 0x307b: 0x00630884, - 0x307c: 0x00630a84, 0x307d: 0x00631084, 0x307e: 0x00631884, 0x307f: 0x00632c84, - // Block 0xc2, offset 0x3080 - 0x3080: 0x00633a84, 0x3081: 0x00634484, 0x3082: 0x0064f684, 0x3083: 0x0064f884, - 0x3084: 0x00635a84, 0x3085: 0x00635c84, 0x3086: 0x00635e84, 0x3087: 0x0063ee84, - 0x3088: 0x0063f084, 0x3089: 0x0063f684, 0x308a: 0x00640884, 0x308b: 0x00640a84, - 0x308c: 0x00640e84, 0x308d: 0x00642284, 0x308e: 0x00642884, - 0x3090: 0x4027a820, 0x3091: 0x4027aa20, 0x3092: 0x029c0094, 0x3093: 0x029d1894, - 0x3094: 0x029c1294, 0x3095: 0x02adb694, 0x3096: 0x029c1494, 0x3097: 0x029c5a94, - 0x3098: 0x029c1694, 0x3099: 0x02ea6494, 0x309a: 0x029cb294, 0x309b: 0x029c3294, - 0x309c: 0x029c0294, 0x309d: 0x02b25294, 0x309e: 0x02ae6094, 0x309f: 0x029d7494, - 0x30a0: 0xe000237a, 0x30a1: 0xe0002383, 0x30a2: 0xe0002380, 0x30a3: 0xe000237d, - 0x30a4: 0x40661c20, 0x30a5: 0xe000238c, 0x30a6: 0x40661620, 0x30a7: 0xe0002389, - 0x30a8: 0xe000239e, 0x30a9: 0xe0002386, 0x30aa: 0xe0002395, 0x30ab: 0xe000239b, - 0x30ac: 0x40663420, 0x30ad: 0x4065f220, 0x30ae: 0xe000238f, 0x30af: 0xe0002392, - 0x30b0: 0x40663020, 0x30b1: 0x40663220, 0x30b2: 0x40662c20, 0x30b3: 0xe0002398, - 0x30b4: 0x0065dc99, 0x30b5: 0x0065e699, 0x30b6: 0x0065ee99, 0x30b7: 0x0065f499, - 0x30b8: 0x40660c20, 0x30b9: 0x40660e20, 0x30ba: 0x40661020, - // Block 0xc3, offset 0x30c0 - 0x30c0: 0x40275220, 0x30c1: 0x40275420, 0x30c2: 0x40275620, 0x30c3: 0x40275820, - 0x30c4: 0x40275a20, 0x30c5: 0x40275c20, 0x30c6: 0x40275e20, 0x30c7: 0x40276020, - 0x30c8: 0x40276220, 0x30c9: 0x40276420, 0x30ca: 0x40276620, 0x30cb: 0x40276820, - 0x30cc: 0x40276a20, 0x30cd: 0x40276c20, 0x30ce: 0x40276e20, 0x30cf: 0x40277020, - 0x30d0: 0x40277220, 0x30d1: 0x40277420, 0x30d2: 0x40277620, 0x30d3: 0x40277820, - 0x30d4: 0x40277a20, 0x30d5: 0x40277c20, 0x30d6: 0x40277e20, 0x30d7: 0x40278020, - 0x30d8: 0x40278220, 0x30d9: 0x40278420, 0x30da: 0x40278620, 0x30db: 0x40278820, - 0x30dc: 0x40278a20, 0x30dd: 0x40278c20, 0x30de: 0x40278e20, 0x30df: 0x40279020, - 0x30e0: 0x40279220, 0x30e1: 0x40279420, 0x30e2: 0x40279620, 0x30e3: 0x40279820, - 0x30f0: 0x0065868f, 0x30f1: 0x00658e8f, 0x30f2: 0x0065908f, 0x30f3: 0x00659e8f, - 0x30f4: 0x0065a48f, 0x30f5: 0x0065aa8f, 0x30f6: 0x0065ac8f, 0x30f7: 0x0065ae8f, - 0x30f8: 0x0065b08f, 0x30f9: 0x0065b28f, 0x30fa: 0x0065b88f, 0x30fb: 0x0065c68f, - 0x30fc: 0x0065c88f, 0x30fd: 0x0065ca8f, 0x30fe: 0x0065cc8f, 0x30ff: 0x0065ce8f, - // Block 0xc4, offset 0x3100 - 0x3100: 0xf0000404, 0x3101: 0xf0000404, 0x3102: 0xf0000404, 0x3103: 0xf0000404, - 0x3104: 0xf0000404, 0x3105: 0xf0000404, 0x3106: 0xf0000404, 0x3107: 0xf0000404, - 0x3108: 0xf0000404, 0x3109: 0xf0000404, 0x310a: 0xf0000404, 0x310b: 0xf0000404, - 0x310c: 0xf0000404, 0x310d: 0xf0000404, 0x310e: 0xe000004c, 0x310f: 0xe0000051, - 0x3110: 0xe0000056, 0x3111: 0xe000005b, 0x3112: 0xe0000060, 0x3113: 0xe0000065, - 0x3114: 0xe000006a, 0x3115: 0xe000006f, 0x3116: 0xe0000083, 0x3117: 0xe000008d, - 0x3118: 0xe0000092, 0x3119: 0xe0000097, 0x311a: 0xe000009c, 0x311b: 0xe00000a1, - 0x311c: 0xe0000088, 0x311d: 0xe0000074, 0x311e: 0xe000007c, - 0x3120: 0xf0000404, 0x3121: 0xf0000404, 0x3122: 0xf0000404, 0x3123: 0xf0000404, - 0x3124: 0xf0000404, 0x3125: 0xf0000404, 0x3126: 0xf0000404, 0x3127: 0xf0000404, - 0x3128: 0xf0000404, 0x3129: 0xf0000404, 0x312a: 0xf0000404, 0x312b: 0xf0000404, - 0x312c: 0xf0000404, 0x312d: 0xf0000404, 0x312e: 0xf0000404, 0x312f: 0xf0000404, - 0x3130: 0xf0000404, 0x3131: 0xf0000404, 0x3132: 0xf0000404, 0x3133: 0xf0000404, - 0x3134: 0xf0000404, 0x3135: 0xf0000404, 0x3136: 0xf0000404, 0x3137: 0xf0000404, - 0x3138: 0xf0000404, 0x3139: 0xf0000404, 0x313a: 0xf0000404, 0x313b: 0xf0000404, - 0x313c: 0xf0000404, 0x313d: 0xf0000404, 0x313e: 0xf0000404, 0x313f: 0xf0000404, - // Block 0xc5, offset 0x3140 - 0x3140: 0xf0000404, 0x3141: 0xf0000404, 0x3142: 0xf0000404, 0x3143: 0xf0000404, - 0x3144: 0x02aa9e86, 0x3145: 0x02bcf886, 0x3146: 0x02cb0e86, 0x3147: 0x02f71e86, - 0x3148: 0xe00002e3, 0x3149: 0xe00003d8, 0x314a: 0xe00004b3, 0x314b: 0xe000057d, - 0x314c: 0xe0000648, 0x314d: 0xe00006f0, 0x314e: 0xe000079c, 0x314f: 0xe0000841, - 0x3150: 0xe0000ec0, 0x3151: 0xf0000606, 0x3152: 0xf0000606, 0x3153: 0xf0000606, - 0x3154: 0xf0000606, 0x3155: 0xf0000606, 0x3156: 0xf0000606, 0x3157: 0xf0000606, - 0x3158: 0xf0000606, 0x3159: 0xf0000606, 0x315a: 0xf0000606, 0x315b: 0xf0000606, - 0x315c: 0xf0000606, 0x315d: 0xf0000606, 0x315e: 0xf0000606, 0x315f: 0xf0000606, - 0x3160: 0x0062ac86, 0x3161: 0x0062b086, 0x3162: 0x0062b286, 0x3163: 0x0062b686, - 0x3164: 0x0062b886, 0x3165: 0x0062ba86, 0x3166: 0x0062be86, 0x3167: 0x0062c286, - 0x3168: 0x0062c486, 0x3169: 0x0062c886, 0x316a: 0x0062ca86, 0x316b: 0x0062cc86, - 0x316c: 0x0062ce86, 0x316d: 0x0062d086, 0x316e: 0xf0000606, 0x316f: 0xf0000606, - 0x3170: 0xf0000606, 0x3171: 0xf0000606, 0x3172: 0xf0000606, 0x3173: 0xf0000606, - 0x3174: 0xf0000606, 0x3175: 0xf0000606, 0x3176: 0xf0000606, 0x3177: 0xf0000606, - 0x3178: 0xf0000606, 0x3179: 0xf0000606, 0x317a: 0xf0000606, 0x317b: 0xf0000606, - 0x317c: 0xe0002127, 0x317d: 0xe0002122, 0x317e: 0xf0000606, 0x317f: 0x4027ac20, - // Block 0xc6, offset 0x3180 - 0x3180: 0x029c0086, 0x3181: 0x029d1886, 0x3182: 0x029c1286, 0x3183: 0x02adb686, - 0x3184: 0x029d2886, 0x3185: 0x02a2da86, 0x3186: 0x029c0686, 0x3187: 0x02a2d686, - 0x3188: 0x029cba86, 0x3189: 0x02a68286, 0x318a: 0x02ce1086, 0x318b: 0x02e0d686, - 0x318c: 0x02d86886, 0x318d: 0x02ce5086, 0x318e: 0x0323a286, 0x318f: 0x02ae3e86, - 0x3190: 0x02cbca86, 0x3191: 0x02d05486, 0x3192: 0x02ce1286, 0x3193: 0x02f27c86, - 0x3194: 0x02a81a86, 0x3195: 0x02e4f286, 0x3196: 0x03194286, 0x3197: 0x02f2ba86, - 0x3198: 0x02a56886, 0x3199: 0x02f3b086, 0x319a: 0x02ea6e86, 0x319b: 0x02b2e686, - 0x319c: 0x0320d286, 0x319d: 0x02a25486, 0x319e: 0x02a6e086, 0x319f: 0x02d9d086, - 0x31a0: 0x03300a86, 0x31a1: 0x029e2286, 0x31a2: 0x02a33286, 0x31a3: 0x02d6c686, - 0x31a4: 0x029c1486, 0x31a5: 0x029c5a86, 0x31a6: 0x029c1686, 0x31a7: 0x02bbcc86, - 0x31a8: 0x02a7e686, 0x31a9: 0x02a67686, 0x31aa: 0x02b72e86, 0x31ab: 0x02b6cc86, - 0x31ac: 0x02edc686, 0x31ad: 0x029e0286, 0x31ae: 0x03198e86, 0x31af: 0x02a6a886, - 0x31b0: 0x02b23886, 0x31b1: 0xf0000606, 0x31b2: 0xf0000606, 0x31b3: 0xf0000606, - 0x31b4: 0xf0000606, 0x31b5: 0xf0000606, 0x31b6: 0xf0000606, 0x31b7: 0xf0000606, - 0x31b8: 0xf0000606, 0x31b9: 0xf0000606, 0x31ba: 0xf0000606, 0x31bb: 0xf0000606, - 0x31bc: 0xf0000606, 0x31bd: 0xf0000606, 0x31be: 0xf0000606, 0x31bf: 0xf0000606, - // Block 0xc7, offset 0x31c0 - 0x31c0: 0xf0001f04, 0x31c1: 0xf0001f04, 0x31c2: 0xf0001f04, 0x31c3: 0xf0001f04, - 0x31c4: 0xf0001f04, 0x31c5: 0xf0001f04, 0x31c6: 0xf0001f04, 0x31c7: 0xf0001f04, - 0x31c8: 0xf0001f04, 0x31c9: 0xf0000404, 0x31ca: 0xf0000404, 0x31cb: 0xf0000404, - 0x31cc: 0xf0001c1d, 0x31cd: 0xe0000b85, 0x31ce: 0xf0001d1c, 0x31cf: 0xe0000d14, - 0x31d0: 0x00657693, 0x31d1: 0x00657893, 0x31d2: 0x00657a93, 0x31d3: 0x00657e93, - 0x31d4: 0x00658093, 0x31d5: 0x00658293, 0x31d6: 0x00658493, 0x31d7: 0x00658693, - 0x31d8: 0x00658893, 0x31d9: 0x00658a93, 0x31da: 0x00658c93, 0x31db: 0x00658e93, - 0x31dc: 0x00659093, 0x31dd: 0x00659293, 0x31de: 0x00659493, 0x31df: 0x00659693, - 0x31e0: 0x00659893, 0x31e1: 0x00659a93, 0x31e2: 0x00659c93, 0x31e3: 0x00659e93, - 0x31e4: 0x0065a093, 0x31e5: 0x0065a293, 0x31e6: 0x0065a493, 0x31e7: 0x0065a693, - 0x31e8: 0x0065a893, 0x31e9: 0x0065aa93, 0x31ea: 0x0065ac93, 0x31eb: 0x0065ae93, - 0x31ec: 0x0065b093, 0x31ed: 0x0065b293, 0x31ee: 0x0065b493, 0x31ef: 0x0065b693, - 0x31f0: 0x0065b893, 0x31f1: 0x0065ba93, 0x31f2: 0x0065bc93, 0x31f3: 0x0065be93, - 0x31f4: 0x0065c093, 0x31f5: 0x0065c493, 0x31f6: 0x0065c693, 0x31f7: 0x0065c893, - 0x31f8: 0x0065ca93, 0x31f9: 0x0065cc93, 0x31fa: 0x0065ce93, 0x31fb: 0x0065d093, - 0x31fc: 0x0065d293, 0x31fd: 0x0065d493, 0x31fe: 0x0065d693, - // Block 0xc8, offset 0x3200 - 0x3200: 0xe0002131, 0x3201: 0xe0002137, 0x3202: 0xe000213c, 0x3203: 0xe000212d, - 0x3204: 0xe0002142, 0x3205: 0xe0002148, 0x3206: 0xe0002152, 0x3207: 0xe000215b, - 0x3208: 0xe0002156, 0x3209: 0xe0002166, 0x320a: 0xe0002162, 0x320b: 0xe0002170, - 0x320c: 0xe0002174, 0x320d: 0xe0002179, 0x320e: 0xe000217e, 0x320f: 0xe0002183, - 0x3210: 0xe000218e, 0x3211: 0xe0002193, 0x3212: 0xe0002198, 0x3213: 0xe000219d, - 0x3214: 0xf0001c1c, 0x3215: 0xe00021a4, 0x3216: 0xe00021ab, 0x3217: 0xe00021b2, - 0x3218: 0xe00021be, 0x3219: 0xe00021c3, 0x321a: 0xe00021ca, 0x321b: 0xe00021d1, - 0x321c: 0xe00021dc, 0x321d: 0xe00021eb, 0x321e: 0xe00021e6, 0x321f: 0xe00021f5, - 0x3220: 0xe00021fa, 0x3221: 0xe0002209, 0x3222: 0xe000221b, 0x3223: 0xe000221f, - 0x3224: 0xe000222f, 0x3225: 0xe0002246, 0x3226: 0xe0002250, 0x3227: 0xf0001c1c, - 0x3228: 0xf0001c1c, 0x3229: 0xe0002254, 0x322a: 0xe0002276, 0x322b: 0xe0002264, - 0x322c: 0xe000226b, 0x322d: 0xe0002270, 0x322e: 0xe0002286, 0x322f: 0xe000228d, - 0x3230: 0xe0002292, 0x3231: 0xe0002296, 0x3232: 0xe00022a6, 0x3233: 0xe00022ad, - 0x3234: 0xe00022b2, 0x3235: 0xe00022b9, 0x3236: 0xe00022d4, 0x3237: 0xe00022da, - 0x3238: 0xe00022de, 0x3239: 0xe00022e3, 0x323a: 0xe00022e7, 0x323b: 0xe00022c9, - 0x323c: 0xe00022cf, 0x323d: 0xe0002300, 0x323e: 0xe0002306, 0x323f: 0xf0001c1c, - // Block 0xc9, offset 0x3240 - 0x3240: 0xe000230b, 0x3241: 0xe00022f8, 0x3242: 0xe00022fc, 0x3243: 0xe0002311, - 0x3244: 0xe0002316, 0x3245: 0xe000231d, 0x3246: 0xe0002321, 0x3247: 0xe0002325, - 0x3248: 0xe000232b, 0x3249: 0xf0001c1c, 0x324a: 0xe0002330, 0x324b: 0xe000233c, - 0x324c: 0xe0002340, 0x324d: 0xe0002337, 0x324e: 0xe0002346, 0x324f: 0xe000234b, - 0x3250: 0xe000234f, 0x3251: 0xe0002353, 0x3252: 0xf0001c1c, 0x3253: 0xe000235e, - 0x3254: 0xe0002358, 0x3255: 0xf0001c1c, 0x3256: 0xe0002363, 0x3257: 0xe000236d, - 0x3258: 0xf0001f04, 0x3259: 0xf0001f04, 0x325a: 0xf0001f04, 0x325b: 0xf0001f04, - 0x325c: 0xf0001f04, 0x325d: 0xf0001f04, 0x325e: 0xf0001f04, 0x325f: 0xf0001f04, - 0x3260: 0xf0001f04, 0x3261: 0xf0001f04, 0x3262: 0xf0000404, 0x3263: 0xf0000404, - 0x3264: 0xf0000404, 0x3265: 0xf0000404, 0x3266: 0xf0000404, 0x3267: 0xf0000404, - 0x3268: 0xf0000404, 0x3269: 0xf0000404, 0x326a: 0xf0000404, 0x326b: 0xf0000404, - 0x326c: 0xf0000404, 0x326d: 0xf0000404, 0x326e: 0xf0000404, 0x326f: 0xf0000404, - 0x3270: 0xf0000404, 0x3271: 0xe0000c1e, 0x3272: 0xf0001c1c, 0x3273: 0xf0001d1d, - 0x3274: 0xe0000a31, 0x3275: 0xf0001d1c, 0x3276: 0xf0001c1c, 0x3277: 0xf0001c1c, - 0x3278: 0xe0000ac2, 0x3279: 0xe0000ac6, 0x327a: 0xf0001d1d, 0x327b: 0xf0001c1c, - 0x327c: 0xf0001c1c, 0x327d: 0xf0001c1c, 0x327e: 0xf0001c1c, 0x327f: 0xe0002431, - // Block 0xca, offset 0x3280 - 0x3280: 0xf0001d1c, 0x3281: 0xf0001d1c, 0x3282: 0xf0001d1c, 0x3283: 0xf0001d1c, - 0x3284: 0xf0001d1c, 0x3285: 0xf0001d1d, 0x3286: 0xf0001d1d, 0x3287: 0xf0001d1d, - 0x3288: 0xe0000a6b, 0x3289: 0xe0000cb4, 0x328a: 0xf0001d1c, 0x328b: 0xf0001d1c, - 0x328c: 0xf0001d1c, 0x328d: 0xf0001c1c, 0x328e: 0xf0001c1c, 0x328f: 0xf0001c1c, - 0x3290: 0xf0001c1d, 0x3291: 0xe0000cb9, 0x3292: 0xe0000d36, 0x3293: 0xe0000be3, - 0x3294: 0xe0000fc5, 0x3295: 0xf0001c1c, 0x3296: 0xf0001c1c, 0x3297: 0xf0001c1c, - 0x3298: 0xf0001c1c, 0x3299: 0xf0001c1c, 0x329a: 0xf0001c1c, 0x329b: 0xf0001c1c, - 0x329c: 0xf0001c1c, 0x329d: 0xf0001c1c, 0x329e: 0xf0001c1c, 0x329f: 0xe0000d3e, - 0x32a0: 0xe0000a72, 0x32a1: 0xf0001c1c, 0x32a2: 0xe0000cbd, 0x32a3: 0xe0000d42, - 0x32a4: 0xe0000a76, 0x32a5: 0xf0001c1c, 0x32a6: 0xe0000cc1, 0x32a7: 0xe0000d2d, - 0x32a8: 0xe0000d31, 0x32a9: 0xf0001c1d, 0x32aa: 0xe0000cc5, 0x32ab: 0xe0000d4a, - 0x32ac: 0xe0000be7, 0x32ad: 0xe0000f0b, 0x32ae: 0xe0000f0f, 0x32af: 0xe0000f15, - 0x32b0: 0xf0001c1c, 0x32b1: 0xf0001c1c, 0x32b2: 0xf0001c1c, 0x32b3: 0xf0001c1c, - 0x32b4: 0xf0001d1c, 0x32b5: 0xf0001d1c, 0x32b6: 0xf0001d1c, 0x32b7: 0xf0001d1c, - 0x32b8: 0xf0001d1c, 0x32b9: 0xf0001d1d, 0x32ba: 0xf0001d1c, 0x32bb: 0xf0001d1c, - 0x32bc: 0xf0001d1c, 0x32bd: 0xf0001d1c, 0x32be: 0xf0001d1c, 0x32bf: 0xf0001d1d, - // Block 0xcb, offset 0x32c0 - 0x32c0: 0xf0001d1c, 0x32c1: 0xf0001d1d, 0x32c2: 0xe00009b7, 0x32c3: 0xf0001c1d, - 0x32c4: 0xf0001c1c, 0x32c5: 0xf0001c1c, 0x32c6: 0xe0000a66, 0x32c7: 0xe0000a7a, - 0x32c8: 0xf0001d1c, 0x32c9: 0xf0001c1d, 0x32ca: 0xf0001c1c, 0x32cb: 0xf0001d1d, - 0x32cc: 0xf0001c1c, 0x32cd: 0xf0001d1d, 0x32ce: 0xf0001d1d, 0x32cf: 0xf0001c1c, - 0x32d0: 0xf0001c1c, 0x32d1: 0xf0001c1c, 0x32d2: 0xe0000d0d, 0x32d3: 0xf0001c1c, - 0x32d4: 0xf0001c1c, 0x32d5: 0xe0000d3a, 0x32d6: 0xe0000d46, 0x32d7: 0xf0001d1d, - 0x32d8: 0xe0000eb0, 0x32d9: 0xe0000eb8, 0x32da: 0xf0001d1d, 0x32db: 0xf0001c1c, - 0x32dc: 0xf0001c1d, 0x32dd: 0xf0001c1d, 0x32de: 0xe00010b2, 0x32df: 0xe00009c8, - 0x32e0: 0xf0001f04, 0x32e1: 0xf0001f04, 0x32e2: 0xf0001f04, 0x32e3: 0xf0001f04, - 0x32e4: 0xf0001f04, 0x32e5: 0xf0001f04, 0x32e6: 0xf0001f04, 0x32e7: 0xf0001f04, - 0x32e8: 0xf0001f04, 0x32e9: 0xf0000404, 0x32ea: 0xf0000404, 0x32eb: 0xf0000404, - 0x32ec: 0xf0000404, 0x32ed: 0xf0000404, 0x32ee: 0xf0000404, 0x32ef: 0xf0000404, - 0x32f0: 0xf0000404, 0x32f1: 0xf0000404, 0x32f2: 0xf0000404, 0x32f3: 0xf0000404, - 0x32f4: 0xf0000404, 0x32f5: 0xf0000404, 0x32f6: 0xf0000404, 0x32f7: 0xf0000404, - 0x32f8: 0xf0000404, 0x32f9: 0xf0000404, 0x32fa: 0xf0000404, 0x32fb: 0xf0000404, - 0x32fc: 0xf0000404, 0x32fd: 0xf0000404, 0x32fe: 0xf0000404, 0x32ff: 0xe0000bdf, - // Block 0xcc, offset 0x3300 - 0x3300: 0x40196220, 0x3301: 0x40196420, 0x3302: 0x40196620, 0x3303: 0x40196820, - 0x3304: 0x40196a20, 0x3305: 0x40196c20, 0x3306: 0x40196e20, 0x3307: 0x40197020, - 0x3308: 0x40197220, 0x3309: 0x40197420, 0x330a: 0x40197620, 0x330b: 0x40197820, - 0x330c: 0x40197a20, 0x330d: 0x40197c20, 0x330e: 0x40197e20, 0x330f: 0x40198020, - 0x3310: 0x40198220, 0x3311: 0x40198420, 0x3312: 0x40198620, 0x3313: 0x40198820, - 0x3314: 0x40198a20, 0x3315: 0x40198c20, 0x3316: 0x40198e20, 0x3317: 0x40199020, - 0x3318: 0x40199220, 0x3319: 0x40199420, 0x331a: 0x40199620, 0x331b: 0x40199820, - 0x331c: 0x40199a20, 0x331d: 0x40199c20, 0x331e: 0x40199e20, 0x331f: 0x4019a020, - 0x3320: 0x4019a220, 0x3321: 0x4019a420, 0x3322: 0x4019a620, 0x3323: 0x4019a820, - 0x3324: 0x4019aa20, 0x3325: 0x4019ac20, 0x3326: 0x4019ae20, 0x3327: 0x4019b020, - 0x3328: 0x4019b220, 0x3329: 0x4019b420, 0x332a: 0x4019b620, 0x332b: 0x4019b820, - 0x332c: 0x4019ba20, 0x332d: 0x4019bc20, 0x332e: 0x4019be20, 0x332f: 0x4019c020, - 0x3330: 0x4019c220, 0x3331: 0x4019c420, 0x3332: 0x4019c620, 0x3333: 0x4019c820, - 0x3334: 0x4019ca20, 0x3335: 0x4019cc20, 0x3336: 0x4019ce20, 0x3337: 0x4019d020, - 0x3338: 0x4019d220, 0x3339: 0x4019d420, 0x333a: 0x4019d620, 0x333b: 0x4019d820, - 0x333c: 0x4019da20, 0x333d: 0x4019dc20, 0x333e: 0x4019de20, 0x333f: 0x4019e020, - // Block 0xcd, offset 0x3340 - 0x3340: 0x40664020, 0x3341: 0x40664220, 0x3342: 0x40664420, 0x3343: 0x40664620, - 0x3344: 0x40664820, 0x3345: 0x40664a20, 0x3346: 0x40664c20, 0x3347: 0x40664e20, - 0x3348: 0x40665020, 0x3349: 0x40665220, 0x334a: 0x40665420, 0x334b: 0x40665620, - 0x334c: 0x40665820, 0x334d: 0x40665a20, 0x334e: 0x40665c20, 0x334f: 0x40665e20, - 0x3350: 0x40666020, 0x3351: 0x40666220, 0x3352: 0x40666420, 0x3353: 0x40666620, - 0x3354: 0x40666820, 0x3355: 0x40666a20, 0x3356: 0x40666c20, 0x3357: 0x40666e20, - 0x3358: 0x40667020, 0x3359: 0x40667220, 0x335a: 0x40667420, 0x335b: 0x40667620, - 0x335c: 0x40667820, 0x335d: 0x40667a20, 0x335e: 0x40667c20, 0x335f: 0x40667e20, - 0x3360: 0x40668020, 0x3361: 0x40668220, 0x3362: 0x40668420, 0x3363: 0x40668620, - 0x3364: 0x40668820, 0x3365: 0x40668a20, 0x3366: 0x40668c20, 0x3367: 0x40668e20, - 0x3368: 0x40669020, 0x3369: 0x40669220, 0x336a: 0x40669420, 0x336b: 0x40669620, - 0x336c: 0x40669820, 0x336d: 0x40669a20, 0x336e: 0x40669c20, 0x336f: 0x40669e20, - 0x3370: 0x4066a020, 0x3371: 0x4066a220, 0x3372: 0x4066a420, 0x3373: 0x4066a620, - 0x3374: 0x4066a820, 0x3375: 0x4066aa20, 0x3376: 0x4066ac20, 0x3377: 0x4066ae20, - 0x3378: 0x4066b020, 0x3379: 0x4066b220, 0x337a: 0x4066b420, 0x337b: 0x4066b620, - 0x337c: 0x4066b820, 0x337d: 0x4066ba20, 0x337e: 0x4066bc20, 0x337f: 0x4066be20, - // Block 0xce, offset 0x3380 - 0x3380: 0x4066c020, 0x3381: 0x4066c220, 0x3382: 0x4066c420, 0x3383: 0x4066c620, - 0x3384: 0x4066c820, 0x3385: 0x4066ca20, 0x3386: 0x4066cc20, 0x3387: 0x4066ce20, - 0x3388: 0x4066d020, 0x3389: 0x4066d220, 0x338a: 0x4066d420, 0x338b: 0x4066d620, - 0x338c: 0x4066d820, 0x338d: 0x4066da20, 0x338e: 0x4066dc20, 0x338f: 0x4066de20, - 0x3390: 0x4066e020, 0x3391: 0x4066e220, 0x3392: 0x4066e420, 0x3393: 0x4066e620, - 0x3394: 0x4066e820, 0x3395: 0x4066ea20, 0x3396: 0x4066ec20, 0x3397: 0x4066ee20, - 0x3398: 0x4066f020, 0x3399: 0x4066f220, 0x339a: 0x4066f420, 0x339b: 0x4066f620, - 0x339c: 0x4066f820, 0x339d: 0x4066fa20, 0x339e: 0x4066fc20, 0x339f: 0x4066fe20, - 0x33a0: 0x40670020, 0x33a1: 0x40670220, 0x33a2: 0x40670420, 0x33a3: 0x40670620, - 0x33a4: 0x40670820, 0x33a5: 0x40670a20, 0x33a6: 0x40670c20, 0x33a7: 0x40670e20, - 0x33a8: 0x40671020, 0x33a9: 0x40671220, 0x33aa: 0x40671420, 0x33ab: 0x40671620, - 0x33ac: 0x40671820, 0x33ad: 0x40671a20, 0x33ae: 0x40671c20, 0x33af: 0x40671e20, - 0x33b0: 0x40672020, 0x33b1: 0x40672220, 0x33b2: 0x40672420, 0x33b3: 0x40672620, - 0x33b4: 0x40672820, 0x33b5: 0x40672a20, 0x33b6: 0x40672c20, 0x33b7: 0x40672e20, - 0x33b8: 0x40673020, 0x33b9: 0x40673220, 0x33ba: 0x40673420, 0x33bb: 0x40673620, - 0x33bc: 0x40673820, 0x33bd: 0x40673a20, 0x33be: 0x40673c20, 0x33bf: 0x40673e20, - // Block 0xcf, offset 0x33c0 - 0x33c0: 0x40674020, 0x33c1: 0x40674220, 0x33c2: 0x40674420, 0x33c3: 0x40674620, - 0x33c4: 0x40674820, 0x33c5: 0x40674a20, 0x33c6: 0x40674c20, 0x33c7: 0x40674e20, - 0x33c8: 0x40675020, 0x33c9: 0x40675220, 0x33ca: 0x40675420, 0x33cb: 0x40675620, - 0x33cc: 0x40675820, 0x33cd: 0x40675a20, 0x33ce: 0x40675c20, 0x33cf: 0x40675e20, - 0x33d0: 0x40676020, 0x33d1: 0x40676220, 0x33d2: 0x40676420, 0x33d3: 0x40676620, - 0x33d4: 0x40676820, 0x33d5: 0x40676a20, 0x33d6: 0x40676c20, 0x33d7: 0x40676e20, - 0x33d8: 0x40677020, 0x33d9: 0x40677220, 0x33da: 0x40677420, 0x33db: 0x40677620, - 0x33dc: 0x40677820, 0x33dd: 0x40677a20, 0x33de: 0x40677c20, 0x33df: 0x40677e20, - 0x33e0: 0x40678020, 0x33e1: 0x40678220, 0x33e2: 0x40678420, 0x33e3: 0x40678620, - 0x33e4: 0x40678820, 0x33e5: 0x40678a20, 0x33e6: 0x40678c20, 0x33e7: 0x40678e20, - 0x33e8: 0x40679020, 0x33e9: 0x40679220, 0x33ea: 0x40679420, 0x33eb: 0x40679620, - 0x33ec: 0x40679820, 0x33ed: 0x40679a20, 0x33ee: 0x40679c20, 0x33ef: 0x40679e20, - 0x33f0: 0x4067a020, 0x33f1: 0x4067a220, 0x33f2: 0x4067a420, 0x33f3: 0x4067a620, - 0x33f4: 0x4067a820, 0x33f5: 0x4067aa20, 0x33f6: 0x4067ac20, 0x33f7: 0x4067ae20, - 0x33f8: 0x4067b020, 0x33f9: 0x4067b220, 0x33fa: 0x4067b420, 0x33fb: 0x4067b620, - 0x33fc: 0x4067b820, 0x33fd: 0x4067ba20, 0x33fe: 0x4067bc20, 0x33ff: 0x4067be20, - // Block 0xd0, offset 0x3400 - 0x3400: 0x4067c020, 0x3401: 0x4067c220, 0x3402: 0x4067c420, 0x3403: 0x4067c620, - 0x3404: 0x4067c820, 0x3405: 0x4067ca20, 0x3406: 0x4067cc20, 0x3407: 0x4067ce20, - 0x3408: 0x4067d020, 0x3409: 0x4067d220, 0x340a: 0x4067d420, 0x340b: 0x4067d620, - 0x340c: 0x4067d820, 0x340d: 0x4067da20, 0x340e: 0x4067dc20, 0x340f: 0x4067de20, - 0x3410: 0x4067e020, 0x3411: 0x4067e220, 0x3412: 0x4067e420, 0x3413: 0x4067e620, - 0x3414: 0x4067e820, 0x3415: 0x4067ea20, 0x3416: 0x4067ec20, 0x3417: 0x4067ee20, - 0x3418: 0x4067f020, 0x3419: 0x4067f220, 0x341a: 0x4067f420, 0x341b: 0x4067f620, - 0x341c: 0x4067f820, 0x341d: 0x4067fa20, 0x341e: 0x4067fc20, 0x341f: 0x4067fe20, - 0x3420: 0x40680020, 0x3421: 0x40680220, 0x3422: 0x40680420, 0x3423: 0x40680620, - 0x3424: 0x40680820, 0x3425: 0x40680a20, 0x3426: 0x40680c20, 0x3427: 0x40680e20, - 0x3428: 0x40681020, 0x3429: 0x40681220, 0x342a: 0x40681420, 0x342b: 0x40681620, - 0x342c: 0x40681820, 0x342d: 0x40681a20, 0x342e: 0x40681c20, 0x342f: 0x40681e20, - 0x3430: 0x40682020, 0x3431: 0x40682220, 0x3432: 0x40682420, 0x3433: 0x40682620, - 0x3434: 0x40682820, 0x3435: 0x40682a20, 0x3436: 0x40682c20, 0x3437: 0x40682e20, - 0x3438: 0x40683020, 0x3439: 0x40683220, 0x343a: 0x40683420, 0x343b: 0x40683620, - 0x343c: 0x40683820, 0x343d: 0x40683a20, 0x343e: 0x40683c20, 0x343f: 0x40683e20, - // Block 0xd1, offset 0x3440 - 0x3440: 0x40684020, 0x3441: 0x40684220, 0x3442: 0x40684420, 0x3443: 0x40684620, - 0x3444: 0x40684820, 0x3445: 0x40684a20, 0x3446: 0x40684c20, 0x3447: 0x40684e20, - 0x3448: 0x40685020, 0x3449: 0x40685220, 0x344a: 0x40685420, 0x344b: 0x40685620, - 0x344c: 0x40685820, 0x344d: 0x40685a20, 0x344e: 0x40685c20, 0x344f: 0x40685e20, - 0x3450: 0x40686020, 0x3451: 0x40686220, 0x3452: 0x40686420, 0x3453: 0x40686620, - 0x3454: 0x40686820, 0x3455: 0x40686a20, 0x3456: 0x40686c20, 0x3457: 0x40686e20, - 0x3458: 0x40687020, 0x3459: 0x40687220, 0x345a: 0x40687420, 0x345b: 0x40687620, - 0x345c: 0x40687820, 0x345d: 0x40687a20, 0x345e: 0x40687c20, 0x345f: 0x40687e20, - 0x3460: 0x40688020, 0x3461: 0x40688220, 0x3462: 0x40688420, 0x3463: 0x40688620, - 0x3464: 0x40688820, 0x3465: 0x40688a20, 0x3466: 0x40688c20, 0x3467: 0x40688e20, - 0x3468: 0x40689020, 0x3469: 0x40689220, 0x346a: 0x40689420, 0x346b: 0x40689620, - 0x346c: 0x40689820, 0x346d: 0x40689a20, 0x346e: 0x40689c20, 0x346f: 0x40689e20, - 0x3470: 0x4068a020, 0x3471: 0x4068a220, 0x3472: 0x4068a420, 0x3473: 0x4068a620, - 0x3474: 0x4068a820, 0x3475: 0x4068aa20, 0x3476: 0x4068ac20, 0x3477: 0x4068ae20, - 0x3478: 0x4068b020, 0x3479: 0x4068b220, 0x347a: 0x4068b420, 0x347b: 0x4068b620, - 0x347c: 0x4068b820, 0x347d: 0x4068ba20, 0x347e: 0x4068bc20, 0x347f: 0x4068be20, - // Block 0xd2, offset 0x3480 - 0x3480: 0x4068c020, 0x3481: 0x4068c220, 0x3482: 0x4068c420, 0x3483: 0x4068c620, - 0x3484: 0x4068c820, 0x3485: 0x4068ca20, 0x3486: 0x4068cc20, 0x3487: 0x4068ce20, - 0x3488: 0x4068d020, 0x3489: 0x4068d220, 0x348a: 0x4068d420, 0x348b: 0x4068d620, - 0x348c: 0x4068d820, 0x348d: 0x4068da20, 0x348e: 0x4068dc20, 0x348f: 0x4068de20, - 0x3490: 0x4068e020, 0x3491: 0x4068e220, 0x3492: 0x4068e420, 0x3493: 0x4068e620, - 0x3494: 0x4068e820, 0x3495: 0x4068ea20, 0x3496: 0x4068ec20, 0x3497: 0x4068ee20, - 0x3498: 0x4068f020, 0x3499: 0x4068f220, 0x349a: 0x4068f420, 0x349b: 0x4068f620, - 0x349c: 0x4068f820, 0x349d: 0x4068fa20, 0x349e: 0x4068fc20, 0x349f: 0x4068fe20, - 0x34a0: 0x40690020, 0x34a1: 0x40690220, 0x34a2: 0x40690420, 0x34a3: 0x40690620, - 0x34a4: 0x40690820, 0x34a5: 0x40690a20, 0x34a6: 0x40690c20, 0x34a7: 0x40690e20, - 0x34a8: 0x40691020, 0x34a9: 0x40691220, 0x34aa: 0x40691420, 0x34ab: 0x40691620, - 0x34ac: 0x40691820, 0x34ad: 0x40691a20, 0x34ae: 0x40691c20, 0x34af: 0x40691e20, - 0x34b0: 0x40692020, 0x34b1: 0x40692220, 0x34b2: 0x40692420, 0x34b3: 0x40692620, - 0x34b4: 0x40692820, 0x34b5: 0x40692a20, 0x34b6: 0x40692c20, 0x34b7: 0x40692e20, - 0x34b8: 0x40693020, 0x34b9: 0x40693220, 0x34ba: 0x40693420, 0x34bb: 0x40693620, - 0x34bc: 0x40693820, 0x34bd: 0x40693a20, 0x34be: 0x40693c20, 0x34bf: 0x40693e20, - // Block 0xd3, offset 0x34c0 - 0x34c0: 0x40694020, 0x34c1: 0x40694220, 0x34c2: 0x40694420, 0x34c3: 0x40694620, - 0x34c4: 0x40694820, 0x34c5: 0x40694a20, 0x34c6: 0x40694c20, 0x34c7: 0x40694e20, - 0x34c8: 0x40695020, 0x34c9: 0x40695220, 0x34ca: 0x40695420, 0x34cb: 0x40695620, - 0x34cc: 0x40695820, 0x34cd: 0x40695a20, 0x34ce: 0x40695c20, 0x34cf: 0x40695e20, - 0x34d0: 0x40696020, 0x34d1: 0x40696220, 0x34d2: 0x40696420, 0x34d3: 0x40696620, - 0x34d4: 0x40696820, 0x34d5: 0x40696a20, 0x34d6: 0x40696c20, 0x34d7: 0x40696e20, - 0x34d8: 0x40697020, 0x34d9: 0x40697220, 0x34da: 0x40697420, 0x34db: 0x40697620, - 0x34dc: 0x40697820, 0x34dd: 0x40697a20, 0x34de: 0x40697c20, 0x34df: 0x40697e20, - 0x34e0: 0x40698020, 0x34e1: 0x40698220, 0x34e2: 0x40698420, 0x34e3: 0x40698620, - 0x34e4: 0x40698820, 0x34e5: 0x40698a20, 0x34e6: 0x40698c20, 0x34e7: 0x40698e20, - 0x34e8: 0x40699020, 0x34e9: 0x40699220, 0x34ea: 0x40699420, 0x34eb: 0x40699620, - 0x34ec: 0x40699820, 0x34ed: 0x40699a20, 0x34ee: 0x40699c20, 0x34ef: 0x40699e20, - 0x34f0: 0x4069a020, 0x34f1: 0x4069a220, 0x34f2: 0x4069a420, 0x34f3: 0x4069a620, - 0x34f4: 0x4069a820, 0x34f5: 0x4069aa20, 0x34f6: 0x4069ac20, 0x34f7: 0x4069ae20, - 0x34f8: 0x4069b020, 0x34f9: 0x4069b220, 0x34fa: 0x4069b420, 0x34fb: 0x4069b620, - 0x34fc: 0x4069b820, 0x34fd: 0x4069ba20, 0x34fe: 0x4069bc20, 0x34ff: 0x4069be20, - // Block 0xd4, offset 0x3500 - 0x3500: 0x4069c020, 0x3501: 0x4069c220, 0x3502: 0x4069c420, 0x3503: 0x4069c620, - 0x3504: 0x4069c820, 0x3505: 0x4069ca20, 0x3506: 0x4069cc20, 0x3507: 0x4069ce20, - 0x3508: 0x4069d020, 0x3509: 0x4069d220, 0x350a: 0x4069d420, 0x350b: 0x4069d620, - 0x350c: 0x4069d820, 0x350d: 0x4069da20, 0x350e: 0x4069dc20, 0x350f: 0x4069de20, - 0x3510: 0x4069e020, 0x3511: 0x4069e220, 0x3512: 0x4069e420, 0x3513: 0x4069e620, - 0x3514: 0x4069e820, 0x3515: 0x4069ea20, 0x3516: 0x4069ec20, 0x3517: 0x4069ee20, - 0x3518: 0x4069f020, 0x3519: 0x4069f220, 0x351a: 0x4069f420, 0x351b: 0x4069f620, - 0x351c: 0x4069f820, 0x351d: 0x4069fa20, 0x351e: 0x4069fc20, 0x351f: 0x4069fe20, - 0x3520: 0x406a0020, 0x3521: 0x406a0220, 0x3522: 0x406a0420, 0x3523: 0x406a0620, - 0x3524: 0x406a0820, 0x3525: 0x406a0a20, 0x3526: 0x406a0c20, 0x3527: 0x406a0e20, - 0x3528: 0x406a1020, 0x3529: 0x406a1220, 0x352a: 0x406a1420, 0x352b: 0x406a1620, - 0x352c: 0x406a1820, 0x352d: 0x406a1a20, 0x352e: 0x406a1c20, 0x352f: 0x406a1e20, - 0x3530: 0x406a2020, 0x3531: 0x406a2220, 0x3532: 0x406a2420, 0x3533: 0x406a2620, - 0x3534: 0x406a2820, 0x3535: 0x406a2a20, 0x3536: 0x406a2c20, 0x3537: 0x406a2e20, - 0x3538: 0x406a3020, 0x3539: 0x406a3220, 0x353a: 0x406a3420, 0x353b: 0x406a3620, - 0x353c: 0x406a3820, 0x353d: 0x406a3a20, 0x353e: 0x406a3c20, 0x353f: 0x406a3e20, - // Block 0xd5, offset 0x3540 - 0x3540: 0x406a4020, 0x3541: 0x406a4220, 0x3542: 0x406a4420, 0x3543: 0x406a4620, - 0x3544: 0x406a4820, 0x3545: 0x406a4a20, 0x3546: 0x406a4c20, 0x3547: 0x406a4e20, - 0x3548: 0x406a5020, 0x3549: 0x406a5220, 0x354a: 0x406a5420, 0x354b: 0x406a5620, - 0x354c: 0x406a5820, 0x354d: 0x406a5a20, 0x354e: 0x406a5c20, 0x354f: 0x406a5e20, - 0x3550: 0x406a6020, 0x3551: 0x406a6220, 0x3552: 0x406a6420, 0x3553: 0x406a6620, - 0x3554: 0x406a6820, 0x3555: 0x406a6a20, 0x3556: 0x406a6c20, 0x3557: 0x406a6e20, - 0x3558: 0x406a7020, 0x3559: 0x406a7220, 0x355a: 0x406a7420, 0x355b: 0x406a7620, - 0x355c: 0x406a7820, 0x355d: 0x406a7a20, 0x355e: 0x406a7c20, 0x355f: 0x406a7e20, - 0x3560: 0x406a8020, 0x3561: 0x406a8220, 0x3562: 0x406a8420, 0x3563: 0x406a8620, - 0x3564: 0x406a8820, 0x3565: 0x406a8a20, 0x3566: 0x406a8c20, 0x3567: 0x406a8e20, - 0x3568: 0x406a9020, 0x3569: 0x406a9220, 0x356a: 0x406a9420, 0x356b: 0x406a9620, - 0x356c: 0x406a9820, 0x356d: 0x406a9a20, 0x356e: 0x406a9c20, 0x356f: 0x406a9e20, - 0x3570: 0x406aa020, 0x3571: 0x406aa220, 0x3572: 0x406aa420, 0x3573: 0x406aa620, - 0x3574: 0x406aa820, 0x3575: 0x406aaa20, 0x3576: 0x406aac20, 0x3577: 0x406aae20, - 0x3578: 0x406ab020, 0x3579: 0x406ab220, 0x357a: 0x406ab420, 0x357b: 0x406ab620, - 0x357c: 0x406ab820, 0x357d: 0x406aba20, 0x357e: 0x406abc20, 0x357f: 0x406abe20, - // Block 0xd6, offset 0x3580 - 0x3580: 0x406ac020, 0x3581: 0x406ac220, 0x3582: 0x406ac420, 0x3583: 0x406ac620, - 0x3584: 0x406ac820, 0x3585: 0x406aca20, 0x3586: 0x406acc20, 0x3587: 0x406ace20, - 0x3588: 0x406ad020, 0x3589: 0x406ad220, 0x358a: 0x406ad420, 0x358b: 0x406ad620, - 0x358c: 0x406ad820, 0x358d: 0x406ada20, 0x358e: 0x406adc20, 0x358f: 0x406ade20, - 0x3590: 0x406ae020, 0x3591: 0x406ae220, 0x3592: 0x406ae420, 0x3593: 0x406ae620, - 0x3594: 0x406ae820, 0x3595: 0x406aea20, 0x3596: 0x406aec20, 0x3597: 0x406aee20, - 0x3598: 0x406af020, 0x3599: 0x406af220, 0x359a: 0x406af420, 0x359b: 0x406af620, - 0x359c: 0x406af820, 0x359d: 0x406afa20, 0x359e: 0x406afc20, 0x359f: 0x406afe20, - 0x35a0: 0x406b0020, 0x35a1: 0x406b0220, 0x35a2: 0x406b0420, 0x35a3: 0x406b0620, - 0x35a4: 0x406b0820, 0x35a5: 0x406b0a20, 0x35a6: 0x406b0c20, 0x35a7: 0x406b0e20, - 0x35a8: 0x406b1020, 0x35a9: 0x406b1220, 0x35aa: 0x406b1420, 0x35ab: 0x406b1620, - 0x35ac: 0x406b1820, 0x35ad: 0x406b1a20, 0x35ae: 0x406b1c20, 0x35af: 0x406b1e20, - 0x35b0: 0x406b2020, 0x35b1: 0x406b2220, 0x35b2: 0x406b2420, 0x35b3: 0x406b2620, - 0x35b4: 0x406b2820, 0x35b5: 0x406b2a20, 0x35b6: 0x406b2c20, 0x35b7: 0x406b2e20, - 0x35b8: 0x406b3020, 0x35b9: 0x406b3220, 0x35ba: 0x406b3420, 0x35bb: 0x406b3620, - 0x35bc: 0x406b3820, 0x35bd: 0x406b3a20, 0x35be: 0x406b3c20, 0x35bf: 0x406b3e20, - // Block 0xd7, offset 0x35c0 - 0x35c0: 0x406b4020, 0x35c1: 0x406b4220, 0x35c2: 0x406b4420, 0x35c3: 0x406b4620, - 0x35c4: 0x406b4820, 0x35c5: 0x406b4a20, 0x35c6: 0x406b4c20, 0x35c7: 0x406b4e20, - 0x35c8: 0x406b5020, 0x35c9: 0x406b5220, 0x35ca: 0x406b5420, 0x35cb: 0x406b5620, - 0x35cc: 0x406b5820, 0x35cd: 0x406b5a20, 0x35ce: 0x406b5c20, 0x35cf: 0x406b5e20, - 0x35d0: 0x406b6020, 0x35d1: 0x406b6220, 0x35d2: 0x406b6420, 0x35d3: 0x406b6620, - 0x35d4: 0x406b6820, 0x35d5: 0x406b6a20, 0x35d6: 0x406b6c20, 0x35d7: 0x406b6e20, - 0x35d8: 0x406b7020, 0x35d9: 0x406b7220, 0x35da: 0x406b7420, 0x35db: 0x406b7620, - 0x35dc: 0x406b7820, 0x35dd: 0x406b7a20, 0x35de: 0x406b7c20, 0x35df: 0x406b7e20, - 0x35e0: 0x406b8020, 0x35e1: 0x406b8220, 0x35e2: 0x406b8420, 0x35e3: 0x406b8620, - 0x35e4: 0x406b8820, 0x35e5: 0x406b8a20, 0x35e6: 0x406b8c20, 0x35e7: 0x406b8e20, - 0x35e8: 0x406b9020, 0x35e9: 0x406b9220, 0x35ea: 0x406b9420, 0x35eb: 0x406b9620, - 0x35ec: 0x406b9820, 0x35ed: 0x406b9a20, 0x35ee: 0x406b9c20, 0x35ef: 0x406b9e20, - 0x35f0: 0x406ba020, 0x35f1: 0x406ba220, 0x35f2: 0x406ba420, 0x35f3: 0x406ba620, - 0x35f4: 0x406ba820, 0x35f5: 0x406baa20, 0x35f6: 0x406bac20, 0x35f7: 0x406bae20, - 0x35f8: 0x406bb020, 0x35f9: 0x406bb220, 0x35fa: 0x406bb420, 0x35fb: 0x406bb620, - 0x35fc: 0x406bb820, 0x35fd: 0x406bba20, 0x35fe: 0x406bbc20, 0x35ff: 0x406bbe20, - // Block 0xd8, offset 0x3600 - 0x3600: 0x406bc020, 0x3601: 0x406bc220, 0x3602: 0x406bc420, 0x3603: 0x406bc620, - 0x3604: 0x406bc820, 0x3605: 0x406bca20, 0x3606: 0x406bcc20, 0x3607: 0x406bce20, - 0x3608: 0x406bd020, 0x3609: 0x406bd220, 0x360a: 0x406bd420, 0x360b: 0x406bd620, - 0x360c: 0x406bd820, 0x360d: 0x406bda20, 0x360e: 0x406bdc20, 0x360f: 0x406bde20, - 0x3610: 0x406be020, 0x3611: 0x406be220, 0x3612: 0x406be420, 0x3613: 0x406be620, - 0x3614: 0x406be820, 0x3615: 0x406bea20, 0x3616: 0x406bec20, 0x3617: 0x406bee20, - 0x3618: 0x406bf020, 0x3619: 0x406bf220, 0x361a: 0x406bf420, 0x361b: 0x406bf620, - 0x361c: 0x406bf820, 0x361d: 0x406bfa20, 0x361e: 0x406bfc20, 0x361f: 0x406bfe20, - 0x3620: 0x406c0020, 0x3621: 0x406c0220, 0x3622: 0x406c0420, 0x3623: 0x406c0620, - 0x3624: 0x406c0820, 0x3625: 0x406c0a20, 0x3626: 0x406c0c20, 0x3627: 0x406c0e20, - 0x3628: 0x406c1020, 0x3629: 0x406c1220, 0x362a: 0x406c1420, 0x362b: 0x406c1620, - 0x362c: 0x406c1820, 0x362d: 0x406c1a20, 0x362e: 0x406c1c20, 0x362f: 0x406c1e20, - 0x3630: 0x406c2020, 0x3631: 0x406c2220, 0x3632: 0x406c2420, 0x3633: 0x406c2620, - 0x3634: 0x406c2820, 0x3635: 0x406c2a20, 0x3636: 0x406c2c20, 0x3637: 0x406c2e20, - 0x3638: 0x406c3020, 0x3639: 0x406c3220, 0x363a: 0x406c3420, 0x363b: 0x406c3620, - 0x363c: 0x406c3820, 0x363d: 0x406c3a20, 0x363e: 0x406c3c20, 0x363f: 0x406c3e20, - // Block 0xd9, offset 0x3640 - 0x3640: 0x406c4020, 0x3641: 0x406c4220, 0x3642: 0x406c4420, 0x3643: 0x406c4620, - 0x3644: 0x406c4820, 0x3645: 0x406c4a20, 0x3646: 0x406c4c20, 0x3647: 0x406c4e20, - 0x3648: 0x406c5020, 0x3649: 0x406c5220, 0x364a: 0x406c5420, 0x364b: 0x406c5620, - 0x364c: 0x406c5820, 0x364d: 0x406c5a20, 0x364e: 0x406c5c20, 0x364f: 0x406c5e20, - 0x3650: 0x406c6020, 0x3651: 0x406c6220, 0x3652: 0x406c6420, 0x3653: 0x406c6620, - 0x3654: 0x406c6820, 0x3655: 0x406c6a20, 0x3656: 0x406c6c20, 0x3657: 0x406c6e20, - 0x3658: 0x406c7020, 0x3659: 0x406c7220, 0x365a: 0x406c7420, 0x365b: 0x406c7620, - 0x365c: 0x406c7820, 0x365d: 0x406c7a20, 0x365e: 0x406c7c20, 0x365f: 0x406c7e20, - 0x3660: 0x406c8020, 0x3661: 0x406c8220, 0x3662: 0x406c8420, 0x3663: 0x406c8620, - 0x3664: 0x406c8820, 0x3665: 0x406c8a20, 0x3666: 0x406c8c20, 0x3667: 0x406c8e20, - 0x3668: 0x406c9020, 0x3669: 0x406c9220, 0x366a: 0x406c9420, 0x366b: 0x406c9620, - 0x366c: 0x406c9820, 0x366d: 0x406c9a20, 0x366e: 0x406c9c20, 0x366f: 0x406c9e20, - 0x3670: 0x406ca020, 0x3671: 0x406ca220, 0x3672: 0x406ca420, 0x3673: 0x406ca620, - 0x3674: 0x406ca820, 0x3675: 0x406caa20, 0x3676: 0x406cac20, 0x3677: 0x406cae20, - 0x3678: 0x406cb020, 0x3679: 0x406cb220, 0x367a: 0x406cb420, 0x367b: 0x406cb620, - 0x367c: 0x406cb820, 0x367d: 0x406cba20, 0x367e: 0x406cbc20, 0x367f: 0x406cbe20, - // Block 0xda, offset 0x3680 - 0x3680: 0x406cc020, 0x3681: 0x406cc220, 0x3682: 0x406cc420, 0x3683: 0x406cc620, - 0x3684: 0x406cc820, 0x3685: 0x406cca20, 0x3686: 0x406ccc20, 0x3687: 0x406cce20, - 0x3688: 0x406cd020, 0x3689: 0x406cd220, 0x368a: 0x406cd420, 0x368b: 0x406cd620, - 0x368c: 0x406cd820, 0x368d: 0x406cda20, 0x368e: 0x406cdc20, 0x368f: 0x406cde20, - 0x3690: 0x406ce020, 0x3691: 0x406ce220, 0x3692: 0x406ce420, 0x3693: 0x406ce620, - 0x3694: 0x406ce820, 0x3695: 0x406cea20, 0x3696: 0x406cec20, 0x3697: 0x406cee20, - 0x3698: 0x406cf020, 0x3699: 0x406cf220, 0x369a: 0x406cf420, 0x369b: 0x406cf620, - 0x369c: 0x406cf820, 0x369d: 0x406cfa20, 0x369e: 0x406cfc20, 0x369f: 0x406cfe20, - 0x36a0: 0x406d0020, 0x36a1: 0x406d0220, 0x36a2: 0x406d0420, 0x36a3: 0x406d0620, - 0x36a4: 0x406d0820, 0x36a5: 0x406d0a20, 0x36a6: 0x406d0c20, 0x36a7: 0x406d0e20, - 0x36a8: 0x406d1020, 0x36a9: 0x406d1220, 0x36aa: 0x406d1420, 0x36ab: 0x406d1620, - 0x36ac: 0x406d1820, 0x36ad: 0x406d1a20, 0x36ae: 0x406d1c20, 0x36af: 0x406d1e20, - 0x36b0: 0x406d2020, 0x36b1: 0x406d2220, 0x36b2: 0x406d2420, 0x36b3: 0x406d2620, - 0x36b4: 0x406d2820, 0x36b5: 0x406d2a20, 0x36b6: 0x406d2c20, 0x36b7: 0x406d2e20, - 0x36b8: 0x406d3020, 0x36b9: 0x406d3220, 0x36ba: 0x406d3420, 0x36bb: 0x406d3620, - 0x36bc: 0x406d3820, 0x36bd: 0x406d3a20, 0x36be: 0x406d3c20, 0x36bf: 0x406d3e20, - // Block 0xdb, offset 0x36c0 - 0x36c0: 0x406d4020, 0x36c1: 0x406d4220, 0x36c2: 0x406d4420, 0x36c3: 0x406d4620, - 0x36c4: 0x406d4820, 0x36c5: 0x406d4a20, 0x36c6: 0x406d4c20, 0x36c7: 0x406d4e20, - 0x36c8: 0x406d5020, 0x36c9: 0x406d5220, 0x36ca: 0x406d5420, 0x36cb: 0x406d5620, - 0x36cc: 0x406d5820, 0x36cd: 0x406d5a20, 0x36ce: 0x406d5c20, 0x36cf: 0x406d5e20, - 0x36d0: 0x406d6020, 0x36d1: 0x406d6220, 0x36d2: 0x406d6420, 0x36d3: 0x406d6620, - 0x36d4: 0x406d6820, 0x36d5: 0x406d6a20, 0x36d6: 0x406d6c20, 0x36d7: 0x406d6e20, - 0x36d8: 0x406d7020, 0x36d9: 0x406d7220, 0x36da: 0x406d7420, 0x36db: 0x406d7620, - 0x36dc: 0x406d7820, 0x36dd: 0x406d7a20, 0x36de: 0x406d7c20, 0x36df: 0x406d7e20, - 0x36e0: 0x406d8020, 0x36e1: 0x406d8220, 0x36e2: 0x406d8420, 0x36e3: 0x406d8620, - 0x36e4: 0x406d8820, 0x36e5: 0x406d8a20, 0x36e6: 0x406d8c20, 0x36e7: 0x406d8e20, - 0x36e8: 0x406d9020, 0x36e9: 0x406d9220, 0x36ea: 0x406d9420, 0x36eb: 0x406d9620, - 0x36ec: 0x406d9820, 0x36ed: 0x406d9a20, 0x36ee: 0x406d9c20, 0x36ef: 0x406d9e20, - 0x36f0: 0x406da020, 0x36f1: 0x406da220, 0x36f2: 0x406da420, 0x36f3: 0x406da620, - 0x36f4: 0x406da820, 0x36f5: 0x406daa20, 0x36f6: 0x406dac20, 0x36f7: 0x406dae20, - 0x36f8: 0x406db020, 0x36f9: 0x406db220, 0x36fa: 0x406db420, 0x36fb: 0x406db620, - 0x36fc: 0x406db820, 0x36fd: 0x406dba20, 0x36fe: 0x406dbc20, 0x36ff: 0x406dbe20, - // Block 0xdc, offset 0x3700 - 0x3700: 0x406dc020, 0x3701: 0x406dc220, 0x3702: 0x406dc420, 0x3703: 0x406dc620, - 0x3704: 0x406dc820, 0x3705: 0x406dca20, 0x3706: 0x406dcc20, 0x3707: 0x406dce20, - 0x3708: 0x406dd020, 0x3709: 0x406dd220, 0x370a: 0x406dd420, 0x370b: 0x406dd620, - 0x370c: 0x406dd820, 0x370d: 0x406dda20, 0x370e: 0x406ddc20, 0x370f: 0x406dde20, - 0x3710: 0x406de020, 0x3711: 0x406de220, 0x3712: 0x406de420, 0x3713: 0x406de620, - 0x3714: 0x406de820, 0x3715: 0x406dea20, 0x3716: 0x406dec20, 0x3717: 0x406dee20, - 0x3718: 0x406df020, 0x3719: 0x406df220, 0x371a: 0x406df420, 0x371b: 0x406df620, - 0x371c: 0x406df820, 0x371d: 0x406dfa20, 0x371e: 0x406dfc20, 0x371f: 0x406dfe20, - 0x3720: 0x406e0020, 0x3721: 0x406e0220, 0x3722: 0x406e0420, 0x3723: 0x406e0620, - 0x3724: 0x406e0820, 0x3725: 0x406e0a20, 0x3726: 0x406e0c20, 0x3727: 0x406e0e20, - 0x3728: 0x406e1020, 0x3729: 0x406e1220, 0x372a: 0x406e1420, 0x372b: 0x406e1620, - 0x372c: 0x406e1820, 0x372d: 0x406e1a20, 0x372e: 0x406e1c20, 0x372f: 0x406e1e20, - 0x3730: 0x406e2020, 0x3731: 0x406e2220, 0x3732: 0x406e2420, 0x3733: 0x406e2620, - 0x3734: 0x406e2820, 0x3735: 0x406e2a20, 0x3736: 0x406e2c20, 0x3737: 0x406e2e20, - 0x3738: 0x406e3020, 0x3739: 0x406e3220, 0x373a: 0x406e3420, 0x373b: 0x406e3620, - 0x373c: 0x406e3820, 0x373d: 0x406e3a20, 0x373e: 0x406e3c20, 0x373f: 0x406e3e20, - // Block 0xdd, offset 0x3740 - 0x3740: 0x406e4020, 0x3741: 0x406e4220, 0x3742: 0x406e4420, 0x3743: 0x406e4620, - 0x3744: 0x406e4820, 0x3745: 0x406e4a20, 0x3746: 0x406e4c20, 0x3747: 0x406e4e20, - 0x3748: 0x406e5020, 0x3749: 0x406e5220, 0x374a: 0x406e5420, 0x374b: 0x406e5620, - 0x374c: 0x406e5820, 0x374d: 0x406e5a20, 0x374e: 0x406e5c20, 0x374f: 0x406e5e20, - 0x3750: 0x406e6020, 0x3751: 0x406e6220, 0x3752: 0x406e6420, 0x3753: 0x406e6620, - 0x3754: 0x406e6820, 0x3755: 0x406e6a20, 0x3756: 0x406e6c20, 0x3757: 0x406e6e20, - 0x3758: 0x406e7020, 0x3759: 0x406e7220, 0x375a: 0x406e7420, 0x375b: 0x406e7620, - 0x375c: 0x406e7820, 0x375d: 0x406e7a20, 0x375e: 0x406e7c20, 0x375f: 0x406e7e20, - 0x3760: 0x406e8020, 0x3761: 0x406e8220, 0x3762: 0x406e8420, 0x3763: 0x406e8620, - 0x3764: 0x406e8820, 0x3765: 0x406e8a20, 0x3766: 0x406e8c20, 0x3767: 0x406e8e20, - 0x3768: 0x406e9020, 0x3769: 0x406e9220, 0x376a: 0x406e9420, 0x376b: 0x406e9620, - 0x376c: 0x406e9820, 0x376d: 0x406e9a20, 0x376e: 0x406e9c20, 0x376f: 0x406e9e20, - 0x3770: 0x406ea020, 0x3771: 0x406ea220, 0x3772: 0x406ea420, 0x3773: 0x406ea620, - 0x3774: 0x406ea820, 0x3775: 0x406eaa20, 0x3776: 0x406eac20, 0x3777: 0x406eae20, - 0x3778: 0x406eb020, 0x3779: 0x406eb220, 0x377a: 0x406eb420, 0x377b: 0x406eb620, - 0x377c: 0x406eb820, 0x377d: 0x406eba20, 0x377e: 0x406ebc20, 0x377f: 0x406ebe20, - // Block 0xde, offset 0x3780 - 0x3780: 0x406ec020, 0x3781: 0x406ec220, 0x3782: 0x406ec420, 0x3783: 0x406ec620, - 0x3784: 0x406ec820, 0x3785: 0x406eca20, 0x3786: 0x406ecc20, 0x3787: 0x406ece20, - 0x3788: 0x406ed020, 0x3789: 0x406ed220, 0x378a: 0x406ed420, 0x378b: 0x406ed620, - 0x378c: 0x406ed820, 0x378d: 0x406eda20, 0x378e: 0x406edc20, 0x378f: 0x406ede20, - 0x3790: 0x406ee020, 0x3791: 0x406ee220, 0x3792: 0x406ee420, 0x3793: 0x406ee620, - 0x3794: 0x406ee820, 0x3795: 0x406eea20, 0x3796: 0x406eec20, 0x3797: 0x406eee20, - 0x3798: 0x406ef020, 0x3799: 0x406ef220, 0x379a: 0x406ef420, 0x379b: 0x406ef620, - 0x379c: 0x406ef820, 0x379d: 0x406efa20, 0x379e: 0x406efc20, 0x379f: 0x406efe20, - 0x37a0: 0x406f0020, 0x37a1: 0x406f0220, 0x37a2: 0x406f0420, 0x37a3: 0x406f0620, - 0x37a4: 0x406f0820, 0x37a5: 0x406f0a20, 0x37a6: 0x406f0c20, 0x37a7: 0x406f0e20, - 0x37a8: 0x406f1020, 0x37a9: 0x406f1220, 0x37aa: 0x406f1420, 0x37ab: 0x406f1620, - 0x37ac: 0x406f1820, 0x37ad: 0x406f1a20, 0x37ae: 0x406f1c20, 0x37af: 0x406f1e20, - 0x37b0: 0x406f2020, 0x37b1: 0x406f2220, 0x37b2: 0x406f2420, 0x37b3: 0x406f2620, - 0x37b4: 0x406f2820, 0x37b5: 0x406f2a20, 0x37b6: 0x406f2c20, 0x37b7: 0x406f2e20, - 0x37b8: 0x406f3020, 0x37b9: 0x406f3220, 0x37ba: 0x406f3420, 0x37bb: 0x406f3620, - 0x37bc: 0x406f3820, 0x37bd: 0x406f3a20, 0x37be: 0x406f3c20, 0x37bf: 0x406f3e20, - // Block 0xdf, offset 0x37c0 - 0x37c0: 0x406f4020, 0x37c1: 0x406f4220, 0x37c2: 0x406f4420, 0x37c3: 0x406f4620, - 0x37c4: 0x406f4820, 0x37c5: 0x406f4a20, 0x37c6: 0x406f4c20, 0x37c7: 0x406f4e20, - 0x37c8: 0x406f5020, 0x37c9: 0x406f5220, 0x37ca: 0x406f5420, 0x37cb: 0x406f5620, - 0x37cc: 0x406f5820, - 0x37d0: 0x401a9020, 0x37d1: 0x401a9220, 0x37d2: 0x401a9420, 0x37d3: 0x401a9620, - 0x37d4: 0x401a9820, 0x37d5: 0x401a9a20, 0x37d6: 0x401a9c20, 0x37d7: 0x401a9e20, - 0x37d8: 0x401aa020, 0x37d9: 0x401aa220, 0x37da: 0x401aa420, 0x37db: 0x401aa620, - 0x37dc: 0x401aa820, 0x37dd: 0x401aaa20, 0x37de: 0x401aac20, 0x37df: 0x401aae20, - 0x37e0: 0x401ab020, 0x37e1: 0x401ab220, 0x37e2: 0x401ab420, 0x37e3: 0x401ab620, - 0x37e4: 0x401ab820, 0x37e5: 0x401aba20, 0x37e6: 0x401abc20, 0x37e7: 0x401abe20, - 0x37e8: 0x401ac020, 0x37e9: 0x401ac220, 0x37ea: 0x401ac420, 0x37eb: 0x401ac620, - 0x37ec: 0x401ac820, 0x37ed: 0x401aca20, 0x37ee: 0x401acc20, 0x37ef: 0x401ace20, - 0x37f0: 0x401ad020, 0x37f1: 0x401ad220, 0x37f2: 0x401ad420, 0x37f3: 0x401ad620, - 0x37f4: 0x401ad820, 0x37f5: 0x401ada20, 0x37f6: 0x401adc20, 0x37f7: 0x401ade20, - 0x37f8: 0x401ae020, 0x37f9: 0x401ae220, 0x37fa: 0x401ae420, 0x37fb: 0x401ae620, - 0x37fc: 0x401ae820, 0x37fd: 0x401aea20, 0x37fe: 0x401aec20, 0x37ff: 0x401aee20, - // Block 0xe0, offset 0x3800 - 0x3800: 0x401af020, 0x3801: 0x401af220, 0x3802: 0x401af420, 0x3803: 0x401af620, - 0x3804: 0x401af820, 0x3805: 0x401afa20, 0x3806: 0x401afc20, - 0x3810: 0x406f6620, 0x3811: 0x406f6820, 0x3812: 0x406f6a20, 0x3813: 0x406f6c20, - 0x3814: 0x406f6e20, 0x3815: 0x406f7020, 0x3816: 0x406f7220, 0x3817: 0x406f7420, - 0x3818: 0x406f7620, 0x3819: 0x406f7820, 0x381a: 0x406f7a20, 0x381b: 0x406f7c20, - 0x381c: 0x406f7e20, 0x381d: 0x406f8020, 0x381e: 0x406f8220, 0x381f: 0x406f8420, - 0x3820: 0x406f8620, 0x3821: 0x406f8820, 0x3822: 0x406f8a20, 0x3823: 0x406f8c20, - 0x3824: 0x406f8e20, 0x3825: 0x406f9020, 0x3826: 0x406f9220, 0x3827: 0x406f9420, - 0x3828: 0x406f9620, 0x3829: 0x406f9820, 0x382a: 0x406f9e20, 0x382b: 0x406f9a20, - 0x382c: 0x406fa020, 0x382d: 0x406f9c20, 0x382e: 0x406fa220, 0x382f: 0x406fa420, - 0x3830: 0x406fa620, 0x3831: 0x406fa820, 0x3832: 0x406faa20, 0x3833: 0x406fac20, - 0x3834: 0x406fae20, 0x3835: 0x406fb020, 0x3836: 0x406fb220, 0x3837: 0x406fb420, - 0x3838: 0x406f5a20, 0x3839: 0x406f5c20, 0x383a: 0x406f5e20, 0x383b: 0x406f6020, - 0x383c: 0x406f6420, 0x383d: 0x406f6220, 0x383e: 0x40025620, 0x383f: 0x4002fe20, - // Block 0xe1, offset 0x3840 - 0x3840: 0x405b8020, 0x3841: 0x405b8220, 0x3842: 0x405b8420, 0x3843: 0x405b8620, - 0x3844: 0x405b8820, 0x3845: 0x405b8a20, 0x3846: 0x405b8c20, 0x3847: 0x405b8e20, - 0x3848: 0x405b9020, 0x3849: 0x405b9220, 0x384a: 0x405b9420, 0x384b: 0x405b9620, - 0x384c: 0x405b9820, 0x384d: 0x405b9a20, 0x384e: 0x405b9c20, 0x384f: 0x405b9e20, - 0x3850: 0x405ba020, 0x3851: 0x405ba220, 0x3852: 0x405ba420, 0x3853: 0x405ba620, - 0x3854: 0x405ba820, 0x3855: 0x405baa20, 0x3856: 0x405bac20, 0x3857: 0x405bae20, - 0x3858: 0x405bb020, 0x3859: 0x405bb220, 0x385a: 0x405bb420, 0x385b: 0x405bb620, - 0x385c: 0x405bb820, 0x385d: 0x405bba20, 0x385e: 0x405bbc20, 0x385f: 0x405bbe20, - 0x3860: 0x405bc020, 0x3861: 0x405bc220, 0x3862: 0x405bc420, 0x3863: 0x405bc620, - 0x3864: 0x405bc820, 0x3865: 0x405bca20, 0x3866: 0x405bcc20, 0x3867: 0x405bce20, - 0x3868: 0x405bd020, 0x3869: 0x405bd220, 0x386a: 0x405bd420, 0x386b: 0x405bd620, - 0x386c: 0x405bd820, 0x386d: 0x405bda20, 0x386e: 0x405bdc20, 0x386f: 0x405bde20, - 0x3870: 0x405be020, 0x3871: 0x405be220, 0x3872: 0x405be420, 0x3873: 0x405be620, - 0x3874: 0x405be820, 0x3875: 0x405bea20, 0x3876: 0x405bec20, 0x3877: 0x405bee20, - 0x3878: 0x405bf020, 0x3879: 0x405bf220, 0x387a: 0x405bf420, 0x387b: 0x405bf620, - 0x387c: 0x405bf820, 0x387d: 0x405bfa20, 0x387e: 0x405bfc20, 0x387f: 0x405bfe20, - // Block 0xe2, offset 0x3880 - 0x3880: 0x405c0020, 0x3881: 0x405c0220, 0x3882: 0x405c0420, 0x3883: 0x405c0620, - 0x3884: 0x405c0820, 0x3885: 0x405c0a20, 0x3886: 0x405c0c20, 0x3887: 0x405c0e20, - 0x3888: 0x405c1020, 0x3889: 0x405c1220, 0x388a: 0x405c1420, 0x388b: 0x405c1620, - 0x388c: 0x405c1820, 0x388d: 0x405c1a20, 0x388e: 0x405c1c20, 0x388f: 0x405c1e20, - 0x3890: 0x405c2020, 0x3891: 0x405c2220, 0x3892: 0x405c2420, 0x3893: 0x405c2620, - 0x3894: 0x405c2820, 0x3895: 0x405c2a20, 0x3896: 0x405c2c20, 0x3897: 0x405c2e20, - 0x3898: 0x405c3020, 0x3899: 0x405c3220, 0x389a: 0x405c3420, 0x389b: 0x405c3620, - 0x389c: 0x405c3820, 0x389d: 0x405c3a20, 0x389e: 0x405c3c20, 0x389f: 0x405c3e20, - 0x38a0: 0x405c4020, 0x38a1: 0x405c4220, 0x38a2: 0x405c4420, 0x38a3: 0x405c4620, - 0x38a4: 0x405c4820, 0x38a5: 0x405c4a20, 0x38a6: 0x405c4c20, 0x38a7: 0x405c4e20, - 0x38a8: 0x405c5020, 0x38a9: 0x405c5220, 0x38aa: 0x405c5420, 0x38ab: 0x405c5620, - 0x38ac: 0x405c5820, 0x38ad: 0x405c5a20, 0x38ae: 0x405c5c20, 0x38af: 0x405c5e20, - 0x38b0: 0x405c6020, 0x38b1: 0x405c6220, 0x38b2: 0x405c6420, 0x38b3: 0x405c6620, - 0x38b4: 0x405c6820, 0x38b5: 0x405c6a20, 0x38b6: 0x405c6c20, 0x38b7: 0x405c6e20, - 0x38b8: 0x405c7020, 0x38b9: 0x405c7220, 0x38ba: 0x405c7420, 0x38bb: 0x405c7620, - 0x38bc: 0x405c7820, 0x38bd: 0x405c7a20, 0x38be: 0x405c7c20, 0x38bf: 0x405c7e20, - // Block 0xe3, offset 0x38c0 - 0x38c0: 0x405c8020, 0x38c1: 0x405c8220, 0x38c2: 0x405c8420, 0x38c3: 0x405c8620, - 0x38c4: 0x405c8820, 0x38c5: 0x405c8a20, 0x38c6: 0x405c8c20, 0x38c7: 0x405c8e20, - 0x38c8: 0x405c9020, 0x38c9: 0x405c9220, 0x38ca: 0x405c9420, 0x38cb: 0x405c9620, - 0x38cc: 0x405c9820, 0x38cd: 0x405c9a20, 0x38ce: 0x405c9c20, 0x38cf: 0x405c9e20, - 0x38d0: 0x405ca020, 0x38d1: 0x405ca220, 0x38d2: 0x405ca420, 0x38d3: 0x405ca620, - 0x38d4: 0x405ca820, 0x38d5: 0x405caa20, 0x38d6: 0x405cac20, 0x38d7: 0x405cae20, - 0x38d8: 0x405cb020, 0x38d9: 0x405cb220, 0x38da: 0x405cb420, 0x38db: 0x405cb620, - 0x38dc: 0x405cb820, 0x38dd: 0x405cba20, 0x38de: 0x405cbc20, 0x38df: 0x405cbe20, - 0x38e0: 0x405cc020, 0x38e1: 0x405cc220, 0x38e2: 0x405cc420, 0x38e3: 0x405cc620, - 0x38e4: 0x405cc820, 0x38e5: 0x405cca20, 0x38e6: 0x405ccc20, 0x38e7: 0x405cce20, - 0x38e8: 0x405cd020, 0x38e9: 0x405cd220, 0x38ea: 0x405cd420, 0x38eb: 0x405cd620, - 0x38ec: 0x405cd820, 0x38ed: 0x405cda20, 0x38ee: 0x405cdc20, 0x38ef: 0x405cde20, - 0x38f0: 0x405ce020, 0x38f1: 0x405ce220, 0x38f2: 0x405ce420, 0x38f3: 0x405ce620, - 0x38f4: 0x405ce820, 0x38f5: 0x405cea20, 0x38f6: 0x405cec20, 0x38f7: 0x405cee20, - 0x38f8: 0x405cf020, 0x38f9: 0x405cf220, 0x38fa: 0x405cf420, 0x38fb: 0x405cf620, - 0x38fc: 0x405cf820, 0x38fd: 0x405cfa20, 0x38fe: 0x405cfc20, 0x38ff: 0x405cfe20, - // Block 0xe4, offset 0x3900 - 0x3900: 0x405d0020, 0x3901: 0x405d0220, 0x3902: 0x405d0420, 0x3903: 0x405d0620, - 0x3904: 0x405d0820, 0x3905: 0x405d0a20, 0x3906: 0x405d0c20, 0x3907: 0x405d0e20, - 0x3908: 0x405d1020, 0x3909: 0x405d1220, 0x390a: 0x405d1420, 0x390b: 0x405d1620, - 0x390c: 0x405d1820, 0x390d: 0x405d1a20, 0x390e: 0x405d1c20, 0x390f: 0x405d1e20, - 0x3910: 0x405d2020, 0x3911: 0x405d2220, 0x3912: 0x405d2420, 0x3913: 0x405d2620, - 0x3914: 0x405d2820, 0x3915: 0x405d2a20, 0x3916: 0x405d2c20, 0x3917: 0x405d2e20, - 0x3918: 0x405d3020, 0x3919: 0x405d3220, 0x391a: 0x405d3420, 0x391b: 0x405d3620, - 0x391c: 0x405d3820, 0x391d: 0x405d3a20, 0x391e: 0x405d3c20, 0x391f: 0x405d3e20, - 0x3920: 0x405d4020, 0x3921: 0x405d4220, 0x3922: 0x405d4420, 0x3923: 0x405d4620, - 0x3924: 0x405d4820, 0x3925: 0x405d4a20, 0x3926: 0x405d4c20, 0x3927: 0x405d4e20, - 0x3928: 0x405d5020, 0x3929: 0x405d5220, 0x392a: 0x405d5420, 0x392b: 0x405d5620, - 0x392c: 0x405d5820, 0x392d: 0x405d5a20, 0x392e: 0x405d5c20, 0x392f: 0x405d5e20, - 0x3930: 0x405d6020, 0x3931: 0x405d6220, 0x3932: 0x405d6420, 0x3933: 0x405d6620, - 0x3934: 0x405d6820, 0x3935: 0x405d6a20, 0x3936: 0x405d6c20, 0x3937: 0x405d6e20, - 0x3938: 0x405d7020, 0x3939: 0x405d7220, 0x393a: 0x405d7420, 0x393b: 0x405d7620, - 0x393c: 0x405d7820, 0x393d: 0x405d7a20, 0x393e: 0x405d7c20, 0x393f: 0x405d7e20, - // Block 0xe5, offset 0x3940 - 0x3940: 0x405d8020, 0x3941: 0x405d8220, 0x3942: 0x405d8420, 0x3943: 0x405d8620, - 0x3944: 0x405d8820, 0x3945: 0x405d8a20, 0x3946: 0x405d8c20, 0x3947: 0x405d8e20, - 0x3948: 0x405d9020, 0x3949: 0x405d9220, 0x394a: 0x405d9420, 0x394b: 0x405d9620, - 0x394c: 0x405d9820, 0x394d: 0x40025820, 0x394e: 0x40030020, 0x394f: 0x4002d820, - 0x3950: 0x005c3084, 0x3951: 0x005c5484, 0x3952: 0x005c8e84, 0x3953: 0xe00020fb, - 0x3954: 0xe00020fe, 0x3955: 0xe0002101, 0x3956: 0xe0002104, 0x3957: 0xe0002107, - 0x3958: 0xe000210a, 0x3959: 0xe000210d, 0x395a: 0xe0002110, 0x395b: 0xe0002113, - 0x395c: 0xe0002116, 0x395d: 0xe0002119, 0x395e: 0xe000211c, 0x395f: 0xe000211f, - 0x3960: 0xe00001cd, 0x3961: 0xe0000261, 0x3962: 0xe0000379, 0x3963: 0xe0000453, - 0x3964: 0xe0000528, 0x3965: 0xe00005f2, 0x3966: 0xe00006bd, 0x3967: 0xe0000765, - 0x3968: 0xe0000811, 0x3969: 0xe00008b6, 0x396a: 0x005c5c84, 0x396b: 0x005d2284, - // Block 0xe6, offset 0x3980 - 0x3980: 0x0033ec88, 0x3981: 0x4033ec20, 0x3982: 0x0033fa88, 0x3983: 0x4033fa20, - 0x3984: 0x00340488, 0x3985: 0x40340420, 0x3986: 0x00343488, 0x3987: 0x40343420, - 0x3988: 0x00344e88, 0x3989: 0x40344e20, 0x398a: 0x0035a288, 0x398b: 0x4035a220, - 0x398c: 0x0035f088, 0x398d: 0x4035f020, 0x398e: 0x00366e88, 0x398f: 0x40366e20, - 0x3990: 0x00367c88, 0x3991: 0x40367c20, 0x3992: 0x0036a688, 0x3993: 0x4036a620, - 0x3994: 0x0036c088, 0x3995: 0x4036c020, 0x3996: 0x0036c288, 0x3997: 0x4036c220, - 0x3998: 0x0036de88, 0x3999: 0x4036de20, 0x399a: 0x0036e888, 0x399b: 0x4036e820, - 0x399c: 0x0036f288, 0x399d: 0x4036f220, 0x399e: 0x00372488, 0x399f: 0x40372420, - 0x39a0: 0x00360a88, 0x39a1: 0x40360a20, 0x39a2: 0x00339e88, 0x39a3: 0x40339e20, - 0x39a4: 0x0034a288, 0x39a5: 0x4034a220, 0x39a6: 0x0034b888, 0x39a7: 0x4034b820, - 0x39a8: 0x0034ee8a, 0x39a9: 0x0034ee84, 0x39aa: 0x0034ee8a, 0x39ab: 0x0034ee84, - 0x39ac: 0x0034ee8a, 0x39ad: 0x0034ee84, 0x39ae: 0x0034ee84, 0x39af: 0xae608402, - 0x39b0: 0xa0000000, 0x39b1: 0xa0000000, 0x39b2: 0xa0000000, 0x39b3: 0x4004e020, - 0x39b4: 0x84e619e1, 0x39b5: 0x84e61a0a, 0x39b6: 0x84e61a1b, 0x39b7: 0x84e61ab9, - 0x39b8: 0x84e61b3a, 0x39b9: 0x84e61b3f, 0x39ba: 0x84e61b47, 0x39bb: 0x84e61af0, - 0x39bc: 0xae605f02, 0x39bd: 0xae605f02, 0x39be: 0x40054c20, 0x39bf: 0x40367220, - // Block 0xe7, offset 0x39c0 - 0x39c0: 0x00339488, 0x39c1: 0x40339420, 0x39c2: 0x00341288, 0x39c3: 0x40341220, - 0x39c4: 0x0033d288, 0x39c5: 0x4033d220, 0x39c6: 0x00364288, 0x39c7: 0x40364220, - 0x39c8: 0x00340e88, 0x39c9: 0x40340e20, 0x39ca: 0x00356088, 0x39cb: 0x40356020, - 0x39cc: 0x00355488, 0x39cd: 0x40355420, 0x39ce: 0x00360c88, 0x39cf: 0x40360c20, - 0x39d0: 0x00361688, 0x39d1: 0x40361620, 0x39d2: 0x00362088, 0x39d3: 0x40362020, - 0x39d4: 0x0035de88, 0x39d5: 0x4035de20, 0x39d6: 0x00366488, 0x39d7: 0x40366420, - 0x39df: 0x84e61b67, - 0x39e0: 0x405d9a20, 0x39e1: 0x405d9c20, 0x39e2: 0x405d9e20, 0x39e3: 0x405da020, - 0x39e4: 0x405da220, 0x39e5: 0x405da420, 0x39e6: 0x405da620, 0x39e7: 0x405da820, - 0x39e8: 0x405daa20, 0x39e9: 0x405dac20, 0x39ea: 0x405dae20, 0x39eb: 0x405db020, - 0x39ec: 0x405db220, 0x39ed: 0x405db420, 0x39ee: 0x405db620, 0x39ef: 0x405db820, - 0x39f0: 0x405dba20, 0x39f1: 0x405dbc20, 0x39f2: 0x405dbe20, 0x39f3: 0x405dc020, - 0x39f4: 0x405dc220, 0x39f5: 0x405dc420, 0x39f6: 0x405dc620, 0x39f7: 0x405dc820, - 0x39f8: 0x405dca20, 0x39f9: 0x405dcc20, 0x39fa: 0x405dce20, 0x39fb: 0x405dd020, - 0x39fc: 0x405dd220, 0x39fd: 0x405dd420, 0x39fe: 0x405dd620, 0x39ff: 0x405dd820, - // Block 0xe8, offset 0x3a00 - 0x3a00: 0x405dda20, 0x3a01: 0x405ddc20, 0x3a02: 0x405dde20, 0x3a03: 0x405de020, - 0x3a04: 0x405de220, 0x3a05: 0x405de420, 0x3a06: 0x405de620, 0x3a07: 0x405de820, - 0x3a08: 0x405dea20, 0x3a09: 0x405dec20, 0x3a0a: 0x405dee20, 0x3a0b: 0x405df020, - 0x3a0c: 0x405df220, 0x3a0d: 0x405df420, 0x3a0e: 0x405df620, 0x3a0f: 0x405df820, - 0x3a10: 0x405dfa20, 0x3a11: 0x405dfc20, 0x3a12: 0x405dfe20, 0x3a13: 0x405e0020, - 0x3a14: 0x405e0220, 0x3a15: 0x405e0420, 0x3a16: 0x405e0620, 0x3a17: 0x405e0820, - 0x3a18: 0x405e0a20, 0x3a19: 0x405e0c20, 0x3a1a: 0x405e0e20, 0x3a1b: 0x405e1020, - 0x3a1c: 0x405e1220, 0x3a1d: 0x405e1420, 0x3a1e: 0x405e1620, 0x3a1f: 0x405e1820, - 0x3a20: 0x405e1a20, 0x3a21: 0x405e1c20, 0x3a22: 0x405e1e20, 0x3a23: 0x405e2020, - 0x3a24: 0x405e2220, 0x3a25: 0x405e2420, 0x3a26: 0x405e2620, 0x3a27: 0x405e2820, - 0x3a28: 0x405e2a20, 0x3a29: 0x405e2c20, 0x3a2a: 0x405e2e20, 0x3a2b: 0x405e3020, - 0x3a2c: 0x405e3220, 0x3a2d: 0x405e3420, 0x3a2e: 0x405e3620, 0x3a2f: 0x405e3820, - 0x3a30: 0xae60ef02, 0x3a31: 0xae60f002, 0x3a32: 0x40038220, 0x3a33: 0x40030220, - 0x3a34: 0x4002b820, 0x3a35: 0x40025a20, 0x3a36: 0x40026a20, 0x3a37: 0x4002da20, - // Block 0xe9, offset 0x3a40 - 0x3a40: 0x4006ba20, 0x3a41: 0x4006bc20, 0x3a42: 0x4006be20, 0x3a43: 0x4006c020, - 0x3a44: 0x4006c220, 0x3a45: 0x4006c420, 0x3a46: 0x4006c620, 0x3a47: 0x4006c820, - 0x3a48: 0x4006ca20, 0x3a49: 0x4006cc20, 0x3a4a: 0x4006ce20, 0x3a4b: 0x4006d020, - 0x3a4c: 0x4006d220, 0x3a4d: 0x4006d420, 0x3a4e: 0x4006d620, 0x3a4f: 0x4006d820, - 0x3a50: 0x4006da20, 0x3a51: 0x4006dc20, 0x3a52: 0x4006de20, 0x3a53: 0x4006e020, - 0x3a54: 0x4006e220, 0x3a55: 0x4006e420, 0x3a56: 0x4006e620, 0x3a57: 0x4006e820, - 0x3a58: 0x4006ea20, 0x3a59: 0x4006ec20, 0x3a5a: 0x4006ee20, 0x3a5b: 0x4006f020, - 0x3a5c: 0x4006f220, 0x3a5d: 0x4006f420, 0x3a5e: 0x4006f620, 0x3a5f: 0x4006f820, - 0x3a60: 0x4006fa20, 0x3a61: 0x4006fc20, 0x3a62: 0x0031e488, 0x3a63: 0x4031e420, - 0x3a64: 0x0031f888, 0x3a65: 0x4031f820, 0x3a66: 0x002d8c88, 0x3a67: 0x402d8c20, - 0x3a68: 0xe0000fd5, 0x3a69: 0xe0000fd2, 0x3a6a: 0x0031ae88, 0x3a6b: 0x4031ae20, - 0x3a6c: 0x0031b088, 0x3a6d: 0x4031b020, 0x3a6e: 0x0031b288, 0x3a6f: 0x4031b220, - 0x3a70: 0x402d1020, 0x3a71: 0x402fee20, 0x3a72: 0xe00009cf, 0x3a73: 0xe00009cc, - 0x3a74: 0xe00009ff, 0x3a75: 0xe00009fc, 0x3a76: 0xe0000a05, 0x3a77: 0xe0000a02, - 0x3a78: 0xe0000a0e, 0x3a79: 0xe0000a0b, 0x3a7a: 0xe0000a15, 0x3a7b: 0xe0000a11, - 0x3a7c: 0xe0000a1c, 0x3a7d: 0xe0000a19, 0x3a7e: 0x002c6088, 0x3a7f: 0x402c6020, - // Block 0xea, offset 0x3a80 - 0x3a80: 0x002e1488, 0x3a81: 0x402e1420, 0x3a82: 0x002e1688, 0x3a83: 0x402e1620, - 0x3a84: 0x002e1888, 0x3a85: 0x402e1820, 0x3a86: 0x002e3288, 0x3a87: 0x402e3220, - 0x3a88: 0x002e3688, 0x3a89: 0x402e3620, 0x3a8a: 0x002f1888, 0x3a8b: 0x402f1820, - 0x3a8c: 0x002f0888, 0x3a8d: 0x402f0820, 0x3a8e: 0xe0000ea1, 0x3a8f: 0xe0000e9e, - 0x3a90: 0x002f3888, 0x3a91: 0x402f3820, 0x3a92: 0x002f4688, 0x3a93: 0x402f4620, - 0x3a94: 0x002f4888, 0x3a95: 0x402f4820, 0x3a96: 0x002f5e88, 0x3a97: 0x402f5e20, - 0x3a98: 0x002f6088, 0x3a99: 0x402f6020, 0x3a9a: 0x002f8a88, 0x3a9b: 0x402f8a20, - 0x3a9c: 0x002fe488, 0x3a9d: 0x402fe420, 0x3a9e: 0x0030c888, 0x3a9f: 0x4030c820, - 0x3aa0: 0xe00010c6, 0x3aa1: 0xe00010c3, 0x3aa2: 0x00316288, 0x3aa3: 0x40316220, - 0x3aa4: 0x00319088, 0x3aa5: 0x40319020, 0x3aa6: 0x00319288, 0x3aa7: 0x40319220, - 0x3aa8: 0x00319c88, 0x3aa9: 0x40319c20, 0x3aaa: 0x00319e88, 0x3aab: 0x40319e20, - 0x3aac: 0x0031a088, 0x3aad: 0x4031a020, 0x3aae: 0x0031a288, 0x3aaf: 0x4031a220, - 0x3ab0: 0x0031a294, 0x3ab1: 0x402c9420, 0x3ab2: 0x402e6620, 0x3ab3: 0x402e9c20, - 0x3ab4: 0x402ed820, 0x3ab5: 0x402fe020, 0x3ab6: 0x402fe220, 0x3ab7: 0x40306220, - 0x3ab8: 0x4031a420, 0x3ab9: 0xe0000abc, 0x3aba: 0xe0000ab9, 0x3abb: 0xe0000b92, - 0x3abc: 0xe0000b8f, 0x3abd: 0xe0000bdc, 0x3abe: 0x002d5688, 0x3abf: 0x402d5620, - // Block 0xeb, offset 0x3ac0 - 0x3ac0: 0x002e7088, 0x3ac1: 0x402e7020, 0x3ac2: 0xe0000f08, 0x3ac3: 0xe0000f05, - 0x3ac4: 0xe0000f6d, 0x3ac5: 0xe0000f6a, 0x3ac6: 0xe0000fb7, 0x3ac7: 0xe0000fb4, - 0x3ac8: 0x4006fe20, 0x3ac9: 0x40070020, 0x3aca: 0x40070220, 0x3acb: 0x0031e688, - 0x3acc: 0x4031e620, 0x3acd: 0x00308888, 0x3ace: 0x402e5c20, - 0x3ad0: 0x002ec488, 0x3ad1: 0x402ec420, 0x3ad2: 0x002c4c88, 0x3ad3: 0x402c4c20, - 0x3ae0: 0xe0000bd6, 0x3ae1: 0xe0000bd3, 0x3ae2: 0xe0000ca5, 0x3ae3: 0xe0000ca2, - 0x3ae4: 0xe0000d75, 0x3ae5: 0xe0000d72, 0x3ae6: 0xe0000ee2, 0x3ae7: 0xe0000edf, - 0x3ae8: 0xe0000f4d, 0x3ae9: 0xe0000f4a, 0x3aea: 0x002d8088, - // Block 0xec, offset 0x3b00 - 0x3b38: 0xf0001414, 0x3b39: 0xe0000e97, 0x3b3a: 0x4030a820, 0x3b3b: 0x402d2020, - 0x3b3c: 0x402f4a20, 0x3b3d: 0x402e9820, 0x3b3e: 0x402db220, 0x3b3f: 0x402e9a20, - // Block 0xed, offset 0x3b40 - 0x3b40: 0x4045aa20, 0x3b41: 0x4045ac20, 0x3b42: 0x4045ae20, 0x3b43: 0x4045b020, - 0x3b44: 0x4045b220, 0x3b45: 0x4045b420, 0x3b46: 0x820922db, 0x3b47: 0x4045b820, - 0x3b48: 0x4045ba20, 0x3b49: 0x4045bc20, 0x3b4a: 0x4045be20, 0x3b4b: 0xa000f302, - 0x3b4c: 0x4045c020, 0x3b4d: 0x4045c220, 0x3b4e: 0x4045c420, 0x3b4f: 0x4045c620, - 0x3b50: 0x4045c820, 0x3b51: 0x4045ca20, 0x3b52: 0x4045cc20, 0x3b53: 0x4045ce20, - 0x3b54: 0x4045d020, 0x3b55: 0x4045d220, 0x3b56: 0x4045d420, 0x3b57: 0x4045d620, - 0x3b58: 0x4045d820, 0x3b59: 0x4045da20, 0x3b5a: 0x4045dc20, 0x3b5b: 0x4045de20, - 0x3b5c: 0x4045e020, 0x3b5d: 0x4045e220, 0x3b5e: 0x4045e420, 0x3b5f: 0x4045e620, - 0x3b60: 0x4045e820, 0x3b61: 0x4045ea20, 0x3b62: 0x4045ec20, 0x3b63: 0x4045ee20, - 0x3b64: 0x4045f020, 0x3b65: 0x4045f220, 0x3b66: 0x4045f420, 0x3b67: 0x4045f620, - 0x3b68: 0x40075020, 0x3b69: 0x40075220, 0x3b6a: 0x40075420, 0x3b6b: 0x40075620, - 0x3b70: 0x40284820, 0x3b71: 0x40284a20, 0x3b72: 0x40284c20, 0x3b73: 0x40284e20, - 0x3b74: 0x40285020, 0x3b75: 0x40285220, 0x3b76: 0x40075820, 0x3b77: 0x40075a20, - 0x3b78: 0x4027f020, 0x3b79: 0x40075c20, - // Block 0xee, offset 0x3b80 - 0x3b80: 0x404baa20, 0x3b81: 0x404bac20, 0x3b82: 0x404bae20, 0x3b83: 0x404bb020, - 0x3b84: 0x404bb220, 0x3b85: 0x404bb420, 0x3b86: 0x404bb620, 0x3b87: 0x404bb820, - 0x3b88: 0x404bc220, 0x3b89: 0x404bc420, 0x3b8a: 0x404bc620, 0x3b8b: 0x404bc820, - 0x3b8c: 0x404bca20, 0x3b8d: 0x404bcc20, 0x3b8e: 0x404bce20, 0x3b8f: 0x404bd020, - 0x3b90: 0x404bd220, 0x3b91: 0x404bd420, 0x3b92: 0x404bd620, 0x3b93: 0x404bd820, - 0x3b94: 0x404bdc20, 0x3b95: 0x404bde20, 0x3b96: 0x404be020, 0x3b97: 0x404be220, - 0x3b98: 0x404be820, 0x3b99: 0x404bee20, 0x3b9a: 0x404bf020, 0x3b9b: 0x404bf420, - 0x3b9c: 0x404bf620, 0x3b9d: 0x404bfc20, 0x3b9e: 0x404c0620, 0x3b9f: 0x404c0820, - 0x3ba0: 0x404c0a20, 0x3ba1: 0x404c0c20, 0x3ba2: 0x404bfe20, 0x3ba3: 0x404c0020, - 0x3ba4: 0x404c0220, 0x3ba5: 0x404c0420, 0x3ba6: 0x404c0e20, 0x3ba7: 0x404bda20, - 0x3ba8: 0x404be420, 0x3ba9: 0x404bba20, 0x3baa: 0x404bbc20, 0x3bab: 0x404bbe20, - 0x3bac: 0x404bc020, 0x3bad: 0x404be620, 0x3bae: 0x404bf220, 0x3baf: 0x404bf820, - 0x3bb0: 0x404bfa20, 0x3bb1: 0x404bea20, 0x3bb2: 0x404bec20, 0x3bb3: 0x404c1020, - 0x3bb4: 0x4005e820, 0x3bb5: 0x4005ea20, 0x3bb6: 0x40031820, 0x3bb7: 0x40031a20, - // Block 0xef, offset 0x3bc0 - 0x3bc0: 0xa000f302, 0x3bc1: 0xa000f402, 0x3bc2: 0x4045f820, 0x3bc3: 0x4045fa20, - 0x3bc4: 0x4045fc20, 0x3bc5: 0x4045fe20, 0x3bc6: 0x40460020, 0x3bc7: 0x40460220, - 0x3bc8: 0x40460420, 0x3bc9: 0x40460620, 0x3bca: 0x40460820, 0x3bcb: 0x40460a20, - 0x3bcc: 0x40460c20, 0x3bcd: 0x40460e20, 0x3bce: 0x40461020, 0x3bcf: 0x40461220, - 0x3bd0: 0x40461420, 0x3bd1: 0x40461620, 0x3bd2: 0x40461820, 0x3bd3: 0x40461a20, - 0x3bd4: 0x40461c20, 0x3bd5: 0x40461e20, 0x3bd6: 0x40462020, 0x3bd7: 0x40462220, - 0x3bd8: 0x40462420, 0x3bd9: 0x40462620, 0x3bda: 0x40462820, 0x3bdb: 0x40462a20, - 0x3bdc: 0x40462c20, 0x3bdd: 0x40462e20, 0x3bde: 0x40463020, 0x3bdf: 0x40463220, - 0x3be0: 0x40463420, 0x3be1: 0x40463620, 0x3be2: 0x40463820, 0x3be3: 0x40463a20, - 0x3be4: 0x40463c20, 0x3be5: 0x40463e20, 0x3be6: 0x40464020, 0x3be7: 0x40464220, - 0x3be8: 0x40464420, 0x3be9: 0x40464620, 0x3bea: 0x40464820, 0x3beb: 0x40464a20, - 0x3bec: 0x40464c20, 0x3bed: 0x40464e20, 0x3bee: 0x40465020, 0x3bef: 0x40465220, - 0x3bf0: 0x40465420, 0x3bf1: 0x40465620, 0x3bf2: 0x40465820, 0x3bf3: 0x40465a20, - 0x3bf4: 0x40465c20, 0x3bf5: 0x40465e20, 0x3bf6: 0x40466020, 0x3bf7: 0x40466220, - 0x3bf8: 0x40466420, 0x3bf9: 0x40466620, 0x3bfa: 0x40466820, 0x3bfb: 0x40466a20, - 0x3bfc: 0x40466c20, 0x3bfd: 0x40466e20, 0x3bfe: 0x40467020, 0x3bff: 0x40467220, - // Block 0xf0, offset 0x3c00 - 0x3c00: 0x40467420, 0x3c01: 0x40467620, 0x3c02: 0x40467820, 0x3c03: 0x40467a20, - 0x3c04: 0x8209233e, - 0x3c0e: 0x40031020, 0x3c0f: 0x40031220, - 0x3c10: 0xe000018b, 0x3c11: 0xe000021c, 0x3c12: 0xe0000337, 0x3c13: 0xe0000411, - 0x3c14: 0xe00004e6, 0x3c15: 0xe00005b0, 0x3c16: 0xe000067b, 0x3c17: 0xe0000723, - 0x3c18: 0xe00007cf, 0x3c19: 0xe0000874, - 0x3c20: 0xae600000, 0x3c21: 0xae600000, 0x3c22: 0xae600000, 0x3c23: 0xae600000, - 0x3c24: 0xae600000, 0x3c25: 0xae600000, 0x3c26: 0xae600000, 0x3c27: 0xae600000, - 0x3c28: 0xae600000, 0x3c29: 0xae600000, 0x3c2a: 0xae600000, 0x3c2b: 0xae600000, - 0x3c2c: 0xae600000, 0x3c2d: 0xae600000, 0x3c2e: 0xae600000, 0x3c2f: 0xae600000, - 0x3c30: 0xae600000, 0x3c31: 0xae600000, 0x3c32: 0x40404620, 0x3c33: 0x00404684, - 0x3c34: 0x00404684, 0x3c35: 0x00404684, 0x3c36: 0x00404684, 0x3c37: 0x00404684, - 0x3c38: 0x40056e20, 0x3c39: 0x40057020, 0x3c3a: 0x40057220, 0x3c3b: 0x40404820, - // Block 0xf1, offset 0x3c40 - 0x3c40: 0xe00001a9, 0x3c41: 0xe000023d, 0x3c42: 0xe0000355, 0x3c43: 0xe000042f, - 0x3c44: 0xe0000504, 0x3c45: 0xe00005ce, 0x3c46: 0xe0000699, 0x3c47: 0xe0000741, - 0x3c48: 0xe00007ed, 0x3c49: 0xe0000892, 0x3c4a: 0x404dd220, 0x3c4b: 0x404dd420, - 0x3c4c: 0x404dd620, 0x3c4d: 0x404dd820, 0x3c4e: 0x404dda20, 0x3c4f: 0x404ddc20, - 0x3c50: 0x404dde20, 0x3c51: 0x404de020, 0x3c52: 0x404de220, 0x3c53: 0x404de420, - 0x3c54: 0x404de620, 0x3c55: 0x404de820, 0x3c56: 0x404dea20, 0x3c57: 0x404dec20, - 0x3c58: 0x404dee20, 0x3c59: 0x404df020, 0x3c5a: 0x404df220, 0x3c5b: 0x404df420, - 0x3c5c: 0x404df620, 0x3c5d: 0x404df820, 0x3c5e: 0x404dfa20, 0x3c5f: 0x404dfc20, - 0x3c60: 0x404dfe20, 0x3c61: 0x404e0020, 0x3c62: 0x404e0220, 0x3c63: 0x404e0420, - 0x3c64: 0x404e0620, 0x3c65: 0x404e0820, 0x3c66: 0x404e0a20, 0x3c67: 0x404e0c20, - 0x3c68: 0x404e0e20, 0x3c69: 0x404e1020, 0x3c6a: 0x404e1220, 0x3c6b: 0xadc10f02, - 0x3c6c: 0xadc11002, 0x3c6d: 0xadc11102, 0x3c6e: 0x4005f420, 0x3c6f: 0x40032020, - 0x3c70: 0x404d8a20, 0x3c71: 0x404d8c20, 0x3c72: 0x404d8e20, 0x3c73: 0x404d9020, - 0x3c74: 0x404d9220, 0x3c75: 0x404d9420, 0x3c76: 0x404d9620, 0x3c77: 0x404d9820, - 0x3c78: 0x404d9a20, 0x3c79: 0x404d9c20, 0x3c7a: 0x404d9e20, 0x3c7b: 0x404da020, - 0x3c7c: 0x404da220, 0x3c7d: 0x404da420, 0x3c7e: 0x404da620, 0x3c7f: 0x404da820, - // Block 0xf2, offset 0x3c80 - 0x3c80: 0x404daa20, 0x3c81: 0x404dac20, 0x3c82: 0x404dae20, 0x3c83: 0x404db020, - 0x3c84: 0x404db220, 0x3c85: 0x404db420, 0x3c86: 0x404db620, 0x3c87: 0x404db820, - 0x3c88: 0x404dba20, 0x3c89: 0x404dbc20, 0x3c8a: 0x404dbe20, 0x3c8b: 0x404dc020, - 0x3c8c: 0x404dc220, 0x3c8d: 0x404dc420, 0x3c8e: 0x404dc620, 0x3c8f: 0x404dc820, - 0x3c90: 0x404dca20, 0x3c91: 0x404dcc20, 0x3c92: 0x404dce20, 0x3c93: 0x820926e8, - 0x3c9f: 0x40038420, - 0x3ca0: 0x40636a20, 0x3ca1: 0x40636c20, 0x3ca2: 0x40636e20, 0x3ca3: 0x40637020, - 0x3ca4: 0x40637220, 0x3ca5: 0x40637420, 0x3ca6: 0x40637620, 0x3ca7: 0x40637820, - 0x3ca8: 0x40637a20, 0x3ca9: 0x40637c20, 0x3caa: 0x40637e20, 0x3cab: 0x40638020, - 0x3cac: 0x40638220, 0x3cad: 0x40638420, 0x3cae: 0x40638620, 0x3caf: 0x40638820, - 0x3cb0: 0x40638a20, 0x3cb1: 0x40638c20, 0x3cb2: 0x40638e20, 0x3cb3: 0x40639020, - 0x3cb4: 0x40639220, 0x3cb5: 0x40639420, 0x3cb6: 0x40639620, 0x3cb7: 0x40639820, - 0x3cb8: 0x40639a20, 0x3cb9: 0x40639c20, 0x3cba: 0x40639e20, 0x3cbb: 0x4063a020, - 0x3cbc: 0x4063a220, - // Block 0xf3, offset 0x3cc0 - 0x3cc0: 0xa000f202, 0x3cc1: 0xa000f302, 0x3cc2: 0xa000f802, 0x3cc3: 0xa000f402, - 0x3cc4: 0x4052b220, 0x3cc5: 0x4052b420, 0x3cc6: 0x4052b620, 0x3cc7: 0x4052b820, - 0x3cc8: 0x4052ba20, 0x3cc9: 0x4052bc20, 0x3cca: 0x4052be20, 0x3ccb: 0x4052c020, - 0x3ccc: 0x4052c220, 0x3ccd: 0x4052c420, 0x3cce: 0x4052c620, 0x3ccf: 0x4052c820, - 0x3cd0: 0x4052ca20, 0x3cd1: 0x4052cc20, 0x3cd2: 0x4052ce20, 0x3cd3: 0x4052d020, - 0x3cd4: 0x4052d220, 0x3cd5: 0x4052d420, 0x3cd6: 0x4052d620, 0x3cd7: 0x4052d820, - 0x3cd8: 0x4052da20, 0x3cd9: 0x4052dc20, 0x3cda: 0x4052de20, 0x3cdb: 0x4052e020, - 0x3cdc: 0x4052e220, 0x3cdd: 0x4052e420, 0x3cde: 0x4052e620, 0x3cdf: 0x4052e820, - 0x3ce0: 0x4052ea20, 0x3ce1: 0x4052ec20, 0x3ce2: 0x4052ee20, 0x3ce3: 0x4052f020, - 0x3ce4: 0x4052f220, 0x3ce5: 0x4052f420, 0x3ce6: 0x4052f620, 0x3ce7: 0x4052f820, - 0x3ce8: 0x4052fa20, 0x3ce9: 0x4052fc20, 0x3cea: 0x4052fe20, 0x3ceb: 0x40530220, - 0x3cec: 0x00530284, 0x3ced: 0x40530620, 0x3cee: 0x40530820, 0x3cef: 0x40530a20, - 0x3cf0: 0x40530c20, 0x3cf1: 0x40530e20, 0x3cf2: 0x40531020, 0x3cf3: 0xa070f102, - 0x3cf4: 0x40531220, 0x3cf5: 0x40532420, 0x3cf6: 0x40531620, 0x3cf7: 0x40531820, - 0x3cf8: 0x40531a20, 0x3cf9: 0x40531c20, 0x3cfa: 0x40532020, 0x3cfb: 0x40532220, - 0x3cfc: 0x40531420, 0x3cfd: 0x40531e20, 0x3cfe: 0x40530020, 0x3cff: 0x40530420, - // Block 0xf4, offset 0x3d00 - 0x3d00: 0x82092993, 0x3d01: 0x40036e20, 0x3d02: 0x40037020, 0x3d03: 0x40037220, - 0x3d04: 0x40037420, 0x3d05: 0x40037620, 0x3d06: 0x40037820, 0x3d07: 0x4002b020, - 0x3d08: 0x40033620, 0x3d09: 0x40033820, 0x3d0a: 0x40037a20, 0x3d0b: 0x40037c20, - 0x3d0c: 0x40037e20, 0x3d0d: 0x40038020, 0x3d0f: 0x4027c020, - 0x3d10: 0xe00001c1, 0x3d11: 0xe0000255, 0x3d12: 0xe000036d, 0x3d13: 0xe0000447, - 0x3d14: 0xe000051c, 0x3d15: 0xe00005e6, 0x3d16: 0xe00006b1, 0x3d17: 0xe0000759, - 0x3d18: 0xe0000805, 0x3d19: 0xe00008aa, - 0x3d1e: 0x4005f620, 0x3d1f: 0x4005f820, - // Block 0xf5, offset 0x3d40 - 0x3d40: 0x40519c20, 0x3d41: 0x40519e20, 0x3d42: 0x4051a020, 0x3d43: 0x4051a220, - 0x3d44: 0x4051a420, 0x3d45: 0x4051a620, 0x3d46: 0x4051a820, 0x3d47: 0x4051aa20, - 0x3d48: 0x4051ac20, 0x3d49: 0x4051ae20, 0x3d4a: 0x4051b020, 0x3d4b: 0x4051b220, - 0x3d4c: 0x4051b420, 0x3d4d: 0x4051b620, 0x3d4e: 0x4051b820, 0x3d4f: 0x4051ba20, - 0x3d50: 0x4051bc20, 0x3d51: 0x4051be20, 0x3d52: 0x4051c020, 0x3d53: 0x4051c220, - 0x3d54: 0x4051c420, 0x3d55: 0x4051c620, 0x3d56: 0x4051c820, 0x3d57: 0x4051ca20, - 0x3d58: 0x4051cc20, 0x3d59: 0x4051ce20, 0x3d5a: 0x4051d020, 0x3d5b: 0x4051d220, - 0x3d5c: 0x4051d420, 0x3d5d: 0x4051d620, 0x3d5e: 0x4051d820, 0x3d5f: 0x4051da20, - 0x3d60: 0x4051dc20, 0x3d61: 0x4051de20, 0x3d62: 0x4051e020, 0x3d63: 0x4051e220, - 0x3d64: 0x4051e420, 0x3d65: 0x4051e620, 0x3d66: 0x4051e820, 0x3d67: 0x4051ea20, - 0x3d68: 0x4051ec20, 0x3d69: 0x4051f620, 0x3d6a: 0x4051f820, 0x3d6b: 0x4051fa20, - 0x3d6c: 0x4051fc20, 0x3d6d: 0x4051fe20, 0x3d6e: 0x40520020, 0x3d6f: 0x40520220, - 0x3d70: 0x40520420, 0x3d71: 0x40520620, 0x3d72: 0x40520820, 0x3d73: 0x4051ee20, - 0x3d74: 0x4051f020, 0x3d75: 0x4051f220, 0x3d76: 0x4051f420, - // Block 0xf6, offset 0x3d80 - 0x3d80: 0x40520a20, 0x3d81: 0x40520c20, 0x3d82: 0x40520e20, 0x3d83: 0x40521020, - 0x3d84: 0x40521220, 0x3d85: 0x40521420, 0x3d86: 0x40521620, 0x3d87: 0x40521820, - 0x3d88: 0x40521a20, 0x3d89: 0x40521c20, 0x3d8a: 0x40521e20, 0x3d8b: 0x40522020, - 0x3d8c: 0x40522220, 0x3d8d: 0x40522420, - 0x3d90: 0xe00001bb, 0x3d91: 0xe000024f, 0x3d92: 0xe0000367, 0x3d93: 0xe0000441, - 0x3d94: 0xe0000516, 0x3d95: 0xe00005e0, 0x3d96: 0xe00006ab, 0x3d97: 0xe0000753, - 0x3d98: 0xe00007ff, 0x3d99: 0xe00008a4, - 0x3d9c: 0x4005fa20, 0x3d9d: 0x40033a20, 0x3d9e: 0x40033c20, 0x3d9f: 0x40033e20, - 0x3da0: 0x404e2020, 0x3da1: 0x404e2c20, 0x3da2: 0x404e3020, 0x3da3: 0x404e3420, - 0x3da4: 0x404e3e20, 0x3da5: 0x404e4620, 0x3da6: 0x404e4c20, 0x3da7: 0x404e5020, - 0x3da8: 0x404e5420, 0x3da9: 0x404e5820, 0x3daa: 0x404e6820, 0x3dab: 0x404e6e20, - 0x3dac: 0x404ea820, 0x3dad: 0x404eae20, 0x3dae: 0x404eb220, 0x3daf: 0x404e7a20, - 0x3db0: 0x4027c220, 0x3db1: 0x404eb420, 0x3db2: 0x404e3820, 0x3db3: 0x404e8e20, - 0x3db4: 0x404f3a20, 0x3db5: 0x404f3c20, 0x3db6: 0x404f3e20, 0x3db7: 0x4007ac20, - 0x3db8: 0x4007ae20, 0x3db9: 0x4007b020, 0x3dba: 0x404e9020, 0x3dbb: 0x404f3820, - // Block 0xf7, offset 0x3dc0 - 0x3dc0: 0x4049f020, 0x3dc1: 0x4049f220, 0x3dc2: 0x4049f420, 0x3dc3: 0x4049f620, - 0x3dc4: 0x4049f820, 0x3dc5: 0x4049fa20, 0x3dc6: 0x4049fc20, 0x3dc7: 0x4049fe20, - 0x3dc8: 0x404a0020, 0x3dc9: 0x404a0220, 0x3dca: 0x404a0420, 0x3dcb: 0x404a0620, - 0x3dcc: 0x404a0820, 0x3dcd: 0x404a0a20, 0x3dce: 0x404a0c20, 0x3dcf: 0x404a0e20, - 0x3dd0: 0x404a1020, 0x3dd1: 0x404a1220, 0x3dd2: 0x404a1420, 0x3dd3: 0x404a1620, - 0x3dd4: 0x404a1820, 0x3dd5: 0x404a1a20, 0x3dd6: 0x404a1c20, 0x3dd7: 0x404a1e20, - 0x3dd8: 0x404a2020, 0x3dd9: 0x404a2220, 0x3dda: 0x404a2420, 0x3ddb: 0x404a2620, - 0x3ddc: 0x404a2820, 0x3ddd: 0x404a2a20, 0x3dde: 0x404a2c20, 0x3ddf: 0x404a2e20, - 0x3de0: 0x404a3020, 0x3de1: 0x404a3220, 0x3de2: 0x404a3420, 0x3de3: 0x404a3620, - 0x3de4: 0x404a3820, 0x3de5: 0x404a3a20, 0x3de6: 0x404a3c20, 0x3de7: 0x404a3e20, - 0x3de8: 0x404a4020, 0x3de9: 0x404a4220, 0x3dea: 0x404a4420, 0x3deb: 0x404a4620, - 0x3dec: 0x404a4820, 0x3ded: 0x404a4a20, 0x3dee: 0x404a4c20, 0x3def: 0x404a4e20, - 0x3df0: 0x82e62528, 0x3df1: 0x404a5220, 0x3df2: 0x82e6252a, 0x3df3: 0x82e6252b, - 0x3df4: 0x82dc252c, 0x3df5: 0xc20e0671, 0x3df6: 0xc23f0671, 0x3df7: 0x82e6252f, - 0x3df8: 0x82e62530, 0x3df9: 0xc2700671, 0x3dfa: 0x404a6420, 0x3dfb: 0xc2a10671, - 0x3dfc: 0xc2d20671, 0x3dfd: 0x404a6a20, 0x3dfe: 0x82e62536, 0x3dff: 0xae610c02, - // Block 0xf8, offset 0x3e00 - 0x3e00: 0x404a6e20, 0x3e01: 0xae610d02, 0x3e02: 0x404a7020, - 0x3e1b: 0x404a7220, - 0x3e1c: 0x404a7420, 0x3e1d: 0x4027c420, 0x3e1e: 0x40057e20, 0x3e1f: 0x40058020, - 0x3e20: 0x40456420, 0x3e21: 0x40456620, 0x3e22: 0x40456820, 0x3e23: 0x40456a20, - 0x3e24: 0x40456c20, 0x3e25: 0x40456e20, 0x3e26: 0x40457020, 0x3e27: 0x40457220, - 0x3e28: 0x40457420, 0x3e29: 0x40457620, 0x3e2a: 0x40457820, 0x3e2b: 0x40458a20, - 0x3e2c: 0x40458c20, 0x3e2d: 0x40458e20, 0x3e2e: 0x40459020, 0x3e2f: 0x40459220, - 0x3e30: 0x40034020, 0x3e31: 0x4002dc20, 0x3e32: 0x40452c20, 0x3e33: 0x4027c620, - 0x3e34: 0x4027c820, 0x3e35: 0x40459420, 0x3e36: 0x820922d4, - // Block 0xf9, offset 0x3e40 - 0x3e41: 0x403cae20, 0x3e42: 0x403cb020, 0x3e43: 0x403cb220, - 0x3e44: 0x403cb420, 0x3e45: 0x403cb620, 0x3e46: 0x403cb820, - 0x3e49: 0x403e3c20, 0x3e4a: 0x403e3e20, 0x3e4b: 0x403e4020, - 0x3e4c: 0x403e4220, 0x3e4d: 0x403e4420, 0x3e4e: 0x403e4620, - 0x3e51: 0x403dfe20, 0x3e52: 0x403e0020, 0x3e53: 0x403e0220, - 0x3e54: 0x403e0420, 0x3e55: 0x403e0620, 0x3e56: 0x403e0820, - 0x3e60: 0x403ec220, 0x3e61: 0x403ec420, 0x3e62: 0x403ec620, 0x3e63: 0x403ec820, - 0x3e64: 0x403eca20, 0x3e65: 0x403ecc20, 0x3e66: 0x403ece20, - 0x3e68: 0x403ef220, 0x3e69: 0x403ef420, 0x3e6a: 0x403ef620, 0x3e6b: 0x403ef820, - 0x3e6c: 0x403efa20, 0x3e6d: 0x403efc20, 0x3e6e: 0x403efe20, - // Block 0xfa, offset 0x3e80 - 0x3e80: 0x40452e20, 0x3e81: 0x40453020, 0x3e82: 0x40453220, 0x3e83: 0x40453420, - 0x3e84: 0x40453620, 0x3e85: 0x40453820, 0x3e86: 0x40453a20, 0x3e87: 0x40453c20, - 0x3e88: 0x40453e20, 0x3e89: 0x40454020, 0x3e8a: 0x40454220, 0x3e8b: 0x40454420, - 0x3e8c: 0x40454620, 0x3e8d: 0x40454820, 0x3e8e: 0x40454a20, 0x3e8f: 0x40454c20, - 0x3e90: 0x40454e20, 0x3e91: 0x40455020, 0x3e92: 0x40455220, 0x3e93: 0x40455420, - 0x3e94: 0x40455620, 0x3e95: 0x40455820, 0x3e96: 0x40455a20, 0x3e97: 0x40455c20, - 0x3e98: 0x40455e20, 0x3e99: 0x40456020, 0x3e9a: 0x40456220, 0x3e9b: 0x40459620, - 0x3e9c: 0x40459820, 0x3e9d: 0x40459a20, 0x3e9e: 0x40459c20, 0x3e9f: 0x40459e20, - 0x3ea0: 0x4045a020, 0x3ea1: 0x4045a220, 0x3ea2: 0x4045a420, 0x3ea3: 0x40457a20, - 0x3ea4: 0x40457c20, 0x3ea5: 0x40457e20, 0x3ea6: 0x40458020, 0x3ea7: 0x40458220, - 0x3ea8: 0x40458420, 0x3ea9: 0x40458620, 0x3eaa: 0x40458820, 0x3eab: 0x40034220, - 0x3eac: 0xa000fa02, 0x3ead: 0x820922d3, - 0x3eb0: 0xe0000188, 0x3eb1: 0xe0000219, 0x3eb2: 0xe0000334, 0x3eb3: 0xe000040e, - 0x3eb4: 0xe00004e3, 0x3eb5: 0xe00005ad, 0x3eb6: 0xe0000678, 0x3eb7: 0xe0000720, - 0x3eb8: 0xe00007cc, 0x3eb9: 0xe0000871, - // Block 0xfb, offset 0x3ec0 - 0x3ef0: 0x40643620, 0x3ef1: 0x40643820, 0x3ef2: 0x40643a20, 0x3ef3: 0x40643c20, - 0x3ef4: 0x40643e20, 0x3ef5: 0x40644020, 0x3ef6: 0x40644220, 0x3ef7: 0x40644420, - 0x3ef8: 0x40644620, 0x3ef9: 0x40644820, 0x3efa: 0x40644a20, 0x3efb: 0x40644c20, - 0x3efc: 0x40644e20, 0x3efd: 0x40645020, 0x3efe: 0x40645220, 0x3eff: 0x40645420, - // Block 0xfc, offset 0x3f00 - 0x3f00: 0x40645620, 0x3f01: 0x40645820, 0x3f02: 0x40645a20, 0x3f03: 0x40645c20, - 0x3f04: 0x40645e20, 0x3f05: 0x40646020, 0x3f06: 0x40646220, - 0x3f0b: 0x40651420, - 0x3f0c: 0x40651620, 0x3f0d: 0x40651820, 0x3f0e: 0x40651a20, 0x3f0f: 0x40651c20, - 0x3f10: 0x40651e20, 0x3f11: 0x40652020, 0x3f12: 0x40652220, 0x3f13: 0x40652420, - 0x3f14: 0x40652620, 0x3f15: 0x40652820, 0x3f16: 0x40652a20, 0x3f17: 0x40652c20, - 0x3f18: 0x40652e20, 0x3f19: 0x40653020, 0x3f1a: 0x40653220, 0x3f1b: 0x40653420, - 0x3f1c: 0x40653620, 0x3f1d: 0x40653820, 0x3f1e: 0x40653a20, 0x3f1f: 0x40653c20, - 0x3f20: 0x40653e20, 0x3f21: 0x40654020, 0x3f22: 0x40654220, 0x3f23: 0x40654420, - 0x3f24: 0x40654620, 0x3f25: 0x40654820, 0x3f26: 0x40654a20, 0x3f27: 0x40654c20, - 0x3f28: 0x40654e20, 0x3f29: 0x40655020, 0x3f2a: 0x40655220, 0x3f2b: 0x40655420, - 0x3f2c: 0x40655620, 0x3f2d: 0x40655820, 0x3f2e: 0x40655a20, 0x3f2f: 0x40655c20, - 0x3f30: 0x40655e20, 0x3f31: 0x40656020, 0x3f32: 0x40656220, 0x3f33: 0x40656420, - 0x3f34: 0x40656620, 0x3f35: 0x40656820, 0x3f36: 0x40656a20, 0x3f37: 0x40656c20, - 0x3f38: 0x40656e20, 0x3f39: 0x40657020, 0x3f3a: 0x40657220, 0x3f3b: 0x40657420, - // Block 0xfd, offset 0x3f40 - 0x3f40: 0x43189020, 0x3f41: 0x42cde820, 0x3f42: 0x431d9420, 0x3f43: 0x43199020, - 0x3f44: 0x42dda220, 0x3f45: 0x429c6420, 0x3f46: 0x42a7ca20, 0x3f47: 0x433f3820, - 0x3f48: 0x433f3820, 0x3f49: 0x42b2a220, 0x3f4a: 0x4323a220, 0x3f4b: 0x42ab0e20, - 0x3f4c: 0x42b29020, 0x3f4d: 0x42c3ec20, 0x3f4e: 0x42ecd220, 0x3f4f: 0x42ff0a20, - 0x3f50: 0x430c7e20, 0x3f51: 0x430f7420, 0x3f52: 0x4311f020, 0x3f53: 0x43211e20, - 0x3f54: 0x42d40420, 0x3f55: 0x42da3620, 0x3f56: 0x42e1b220, 0x3f57: 0x42e7bc20, - 0x3f58: 0x43087a20, 0x3f59: 0x4322d420, 0x3f5a: 0x4333e220, 0x3f5b: 0x429d0420, - 0x3f5c: 0x42a6ea20, 0x3f5d: 0x42d60820, 0x3f5e: 0x42e43620, 0x3f5f: 0x430c5a20, - 0x3f60: 0x433c3c20, 0x3f61: 0x42baa020, 0x3f62: 0x42dfd620, 0x3f63: 0x430b9a20, - 0x3f64: 0x4312c820, 0x3f65: 0x42c59220, 0x3f66: 0x4303b020, 0x3f67: 0x43103e20, - 0x3f68: 0x42bd9420, 0x3f69: 0x42ce2e20, 0x3f6a: 0x42dad420, 0x3f6b: 0x42e5f820, - 0x3f6c: 0x43219c20, 0x3f6d: 0x429f0c20, 0x3f6e: 0x42a36e20, 0x3f6f: 0x42a5bc20, - 0x3f70: 0x42c98820, 0x3f71: 0x42d5a620, 0x3f72: 0x42e42020, 0x3f73: 0x42edce20, - 0x3f74: 0x43000220, 0x3f75: 0x430c0c20, 0x3f76: 0x430cb820, 0x3f77: 0x431bde20, - 0x3f78: 0x432e6420, 0x3f79: 0x4336de20, 0x3f7a: 0x433bf420, 0x3f7b: 0x42f11820, - 0x3f7c: 0x42f2fe20, 0x3f7d: 0x42fb4020, 0x3f7e: 0x43079220, 0x3f7f: 0x43260820, - // Block 0xfe, offset 0x3f80 - 0x3f80: 0x433cfe20, 0x3f81: 0x4315ac20, 0x3f82: 0x42b1be20, 0x3f83: 0x42be0820, - 0x3f84: 0x42f8c020, 0x3f85: 0x4300fc20, 0x3f86: 0x42e4c420, 0x3f87: 0x42f19420, - 0x3f88: 0x43198420, 0x3f89: 0x432dee20, 0x3f8a: 0x42b1b020, 0x3f8b: 0x42b8c420, - 0x3f8c: 0x42d42620, 0x3f8d: 0x42dbb420, 0x3f8e: 0x42de1e20, 0x3f8f: 0x42fa5e20, - 0x3f90: 0x42fc6e20, 0x3f91: 0x432c9620, 0x3f92: 0x42a5a420, 0x3f93: 0x43011620, - 0x3f94: 0x42a3b820, 0x3f95: 0x42a39820, 0x3f96: 0x42f43820, 0x3f97: 0x42fb7c20, - 0x3f98: 0x4307e220, 0x3f99: 0x432cea20, 0x3f9a: 0x43170020, 0x3f9b: 0x42c59e20, - 0x3f9c: 0x42d40420, 0x3f9d: 0x4315fc20, 0x3f9e: 0x429c7220, 0x3f9f: 0x42b7ce20, - 0x3fa0: 0x42c02420, 0x3fa1: 0x42e70e20, 0x3fa2: 0x42eae020, 0x3fa3: 0x42a62e20, - 0x3fa4: 0x42f1f620, 0x3fa5: 0x429f7e20, 0x3fa6: 0x42bf5220, 0x3fa7: 0x429c1a20, - 0x3fa8: 0x42d99820, 0x3fa9: 0x42caf020, 0x3faa: 0x42fa4420, 0x3fab: 0x42a78620, - 0x3fac: 0x42b0bc20, 0x3fad: 0x42ee0220, 0x3fae: 0x43089220, 0x3faf: 0x43155420, - 0x3fb0: 0x42d77420, 0x3fb1: 0x431f6020, 0x3fb2: 0x42d91020, 0x3fb3: 0x42c5fc20, - 0x3fb4: 0x4305ca20, 0x3fb5: 0x42c74020, 0x3fb6: 0x42eaca20, 0x3fb7: 0x429d5c20, - 0x3fb8: 0x42a2d220, 0x3fb9: 0x42a39220, 0x3fba: 0x42d10220, 0x3fbb: 0x42f9ce20, - 0x3fbc: 0x4304de20, 0x3fbd: 0x4315a420, 0x3fbe: 0x43239e20, 0x3fbf: 0x42a5ea20, - // Block 0xff, offset 0x3fc0 - 0x3fc0: 0x42a88420, 0x3fc1: 0x42b2e620, 0x3fc2: 0x42bdd820, 0x3fc3: 0x42cb8a20, - 0x3fc4: 0x42dffc20, 0x3fc5: 0x42f25420, 0x3fc6: 0x432b5a20, 0x3fc7: 0x4334d420, - 0x3fc8: 0x433d2e20, 0x3fc9: 0x433d9c20, 0x3fca: 0x42a53620, 0x3fcb: 0x42cd8c20, - 0x3fcc: 0x42d6ee20, 0x3fcd: 0x431ec420, 0x3fce: 0x42bce820, 0x3fcf: 0x42c32020, - 0x3fd0: 0x42c40020, 0x3fd1: 0x42c93420, 0x3fd2: 0x42de4620, 0x3fd3: 0x42e29220, - 0x3fd4: 0x42e91220, 0x3fd5: 0x42f39420, 0x3fd6: 0x42fbe820, 0x3fd7: 0x4300de20, - 0x3fd8: 0x431e4c20, 0x3fd9: 0x4309dc20, 0x3fda: 0x43204620, 0x3fdb: 0x43269420, - 0x3fdc: 0x42a42e20, 0x3fdd: 0x42a54620, 0x3fde: 0x42a97a20, 0x3fdf: 0x42e19020, - 0x3fe0: 0x43118420, 0x3fe1: 0x43155420, 0x3fe2: 0x42bd9220, 0x3fe3: 0x42bfea20, - 0x3fe4: 0x42c6f620, 0x3fe5: 0x42d75c20, 0x3fe6: 0x42f87c20, 0x3fe7: 0x42e6ea20, - 0x3fe8: 0x429dc820, 0x3fe9: 0x42adf220, 0x3fea: 0x42b7ce20, 0x3feb: 0x42bb7420, - 0x3fec: 0x42c03820, 0x3fed: 0x42e76420, 0x3fee: 0x42e8d220, 0x3fef: 0x42ff3420, - 0x3ff0: 0x43008c20, 0x3ff1: 0x43246820, 0x3ff2: 0x432dec20, 0x3ff3: 0x432e9020, - 0x3ff4: 0x43303020, 0x3ff5: 0x429f1620, 0x3ff6: 0x42f35c20, 0x3ff7: 0x43236820, - 0x3ff8: 0x432d7020, 0x3ff9: 0x42c1c220, 0x3ffa: 0x429d0c20, 0x3ffb: 0x42a1b420, - 0x3ffc: 0x42b7dc20, 0x3ffd: 0x42b87e20, 0x3ffe: 0x42cb3220, 0x3fff: 0x42d40420, - // Block 0x100, offset 0x4000 - 0x4000: 0x42e39c20, 0x4001: 0x42ec8420, 0x4002: 0x4309f820, 0x4003: 0x4320f820, - 0x4004: 0x433f1a20, 0x4005: 0x42cd1020, 0x4006: 0x432c5c20, 0x4007: 0x42a51220, - 0x4008: 0x42cef620, 0x4009: 0x42cfe620, 0x400a: 0x42da8220, 0x400b: 0x42dd3820, - 0x400c: 0x42e81220, 0x400d: 0x42eab220, 0x400e: 0x42f0d620, 0x400f: 0x42fa2020, - 0x4010: 0x4330bc20, 0x4011: 0x42a2da20, 0x4012: 0x42c45c20, 0x4013: 0x432cf020, - 0x4014: 0x42a05620, 0x4015: 0x42ba3220, 0x4016: 0x42dbd420, 0x4017: 0x431e5420, - 0x4018: 0x42bf1620, 0x4019: 0x42c28820, 0x401a: 0x42d02e20, 0x401b: 0x42e70e20, - 0x401c: 0x432d0c20, 0x401d: 0x42a45220, 0x401e: 0x42a81e20, 0x401f: 0x42b8ca20, - 0x4020: 0x42cc2620, 0x4021: 0x42ce9c20, 0x4022: 0x42d15020, 0x4023: 0x42d9ca20, - 0x4024: 0x42e80c20, 0x4025: 0x42ebc420, 0x4026: 0x42fef220, 0x4027: 0x43119e20, - 0x4028: 0x4311c220, 0x4029: 0x43239820, 0x402a: 0x432dc420, 0x402b: 0x42a67e20, - 0x402c: 0x42dd7420, 0x402d: 0x42a83a20, 0x402e: 0x42e3a020, 0x402f: 0x42e93020, - 0x4030: 0x430bf420, 0x4031: 0x432d4620, 0x4032: 0x4338ae20, 0x4033: 0x433d3e20, - 0x4034: 0x42cf2e20, 0x4035: 0x42db9620, 0x4036: 0x4303d020, 0x4037: 0x42f59620, - 0x4038: 0x42f64020, 0x4039: 0x42f92420, 0x403a: 0x42e58020, 0x403b: 0x42e13220, - 0x403c: 0x4316b020, 0x403d: 0x429d8020, 0x403e: 0x43066c20, 0x403f: 0x42a47420, - // Block 0x101, offset 0x4040 - 0x4040: 0x42a40e20, 0x4041: 0x42bd4c20, 0x4042: 0x42c5a620, 0x4043: 0x42f9ac20, - 0x4044: 0x42b70a20, 0x4045: 0x42da3c20, 0x4046: 0x42cd6820, 0x4047: 0x431e7620, - 0x4048: 0x43109820, 0x4049: 0x432c9a20, 0x404a: 0x43131620, 0x404b: 0x42bda620, - 0x404c: 0x42a28020, 0x404d: 0x42ab8020, 0x404e: 0x43f41c20, 0x404f: 0x43f41e20, - 0x4050: 0x42b0b420, 0x4051: 0x43f42220, 0x4052: 0x42cce820, 0x4053: 0x43f42620, - 0x4054: 0x43f42820, 0x4055: 0x42a3bc20, 0x4056: 0x42e65420, 0x4057: 0x42ed9420, - 0x4058: 0x42f27820, 0x4059: 0x42f2bc20, 0x405a: 0x42f2ca20, 0x405b: 0x42f31e20, - 0x405c: 0x432eac20, 0x405d: 0x42f97c20, 0x405e: 0x42ff7a20, 0x405f: 0x43f43e20, - 0x4060: 0x430c2420, 0x4061: 0x43f44220, 0x4062: 0x4315f020, 0x4063: 0x43f44620, - 0x4064: 0x43f44820, 0x4065: 0x43207020, 0x4066: 0x4321fa20, 0x4067: 0x43f44e20, - 0x4068: 0x43f45020, 0x4069: 0x43f45220, 0x406a: 0x4331de20, 0x406b: 0x4331f820, - 0x406c: 0x43325020, 0x406d: 0x433b6820, 0x406e: 0x4321bc20, 0x406f: 0x432d6e20, - 0x4070: 0x429f5c20, 0x4071: 0x42a1ce20, 0x4072: 0x42a29a20, 0x4073: 0x42a59220, - 0x4074: 0x42a5c820, 0x4075: 0x42a6a220, 0x4076: 0x42ab3a20, 0x4077: 0x42ac0c20, - 0x4078: 0x42acd020, 0x4079: 0x42b08020, 0x407a: 0x42b15020, 0x407b: 0x42b8c820, - 0x407c: 0x42b8dc20, 0x407d: 0x42c12820, 0x407e: 0x42c2d020, 0x407f: 0x42c31c20, - // Block 0x102, offset 0x4080 - 0x4080: 0x42c3e420, 0x4081: 0x42ca9e20, 0x4082: 0x42cbc420, 0x4083: 0x42cd2220, - 0x4084: 0x42d10a20, 0x4085: 0x42daee20, 0x4086: 0x42dc3420, 0x4087: 0x42de4420, - 0x4088: 0x42e2dc20, 0x4089: 0x42e45620, 0x408a: 0x42e84420, 0x408b: 0x42f12220, - 0x408c: 0x42f27c20, 0x408d: 0x42f29220, 0x408e: 0x42f29020, 0x408f: 0x42f2a020, - 0x4090: 0x42f2ac20, 0x4091: 0x42f2ba20, 0x4092: 0x42f31a20, 0x4093: 0x42f31c20, - 0x4094: 0x42f48020, 0x4095: 0x42f50220, 0x4096: 0x42f78020, 0x4097: 0x42fbe820, - 0x4098: 0x42fc1220, 0x4099: 0x42fc8220, 0x409a: 0x42fee420, 0x409b: 0x43000a20, - 0x409c: 0x4303da20, 0x409d: 0x4304f220, 0x409e: 0x4304f220, 0x409f: 0x4308ae20, - 0x40a0: 0x43122020, 0x40a1: 0x43132c20, 0x40a2: 0x43160220, 0x40a3: 0x43167220, - 0x40a4: 0x4319a620, 0x40a5: 0x431a1020, 0x40a6: 0x431f6c20, 0x40a7: 0x43207020, - 0x40a8: 0x432dc620, 0x40a9: 0x432ffe20, 0x40aa: 0x43307620, 0x40ab: 0x42c0ea20, - 0x40ac: 0x4885dc20, 0x40ad: 0x43043020, - 0x40b0: 0x429c4c20, 0x40b1: 0x42a36a20, 0x40b2: 0x42a2d020, 0x40b3: 0x429f0020, - 0x40b4: 0x42a28a20, 0x40b5: 0x42a30020, 0x40b6: 0x42a58e20, 0x40b7: 0x42a5f420, - 0x40b8: 0x42ab3a20, 0x40b9: 0x42aaaa20, 0x40ba: 0x42ab3220, 0x40bb: 0x42abc420, - 0x40bc: 0x42b0b420, 0x40bd: 0x42b16620, 0x40be: 0x42b28820, 0x40bf: 0x42b2a820, - // Block 0x103, offset 0x40c0 - 0x40c0: 0x42b4c420, 0x40c1: 0x42b65020, 0x40c2: 0x42bda420, 0x40c3: 0x42bdb220, - 0x40c4: 0x42bed220, 0x40c5: 0x42bf5a20, 0x40c6: 0x42c1b020, 0x40c7: 0x42c29c20, - 0x40c8: 0x42c21020, 0x40c9: 0x42c31c20, 0x40ca: 0x42c2c020, 0x40cb: 0x42c3e420, - 0x40cc: 0x42c46820, 0x40cd: 0x42c78820, 0x40ce: 0x42c83820, 0x40cf: 0x42c8a420, - 0x40d0: 0x42caac20, 0x40d1: 0x42cce820, 0x40d2: 0x42ce2e20, 0x40d3: 0x42ce3620, - 0x40d4: 0x42ceac20, 0x40d5: 0x42d6f220, 0x40d6: 0x42d77420, 0x40d7: 0x42da8220, - 0x40d8: 0x42ddb620, 0x40d9: 0x42dd9620, 0x40da: 0x42de4420, 0x40db: 0x42e03c20, - 0x40dc: 0x42e2dc20, 0x40dd: 0x42ef4e20, 0x40de: 0x42e46a20, 0x40df: 0x42e55e20, - 0x40e0: 0x42e65420, 0x40e1: 0x42e8e220, 0x40e2: 0x42ea0c20, 0x40e3: 0x42ea7620, - 0x40e4: 0x42ec3a20, 0x40e5: 0x42ec3e20, 0x40e6: 0x42ed9420, 0x40e7: 0x42edb620, - 0x40e8: 0x42ede820, 0x40e9: 0x42ee9420, 0x40ea: 0x42ee8020, 0x40eb: 0x42f19820, - 0x40ec: 0x42f56220, 0x40ed: 0x42f78020, 0x40ee: 0x42f8f620, 0x40ef: 0x42fab620, - 0x40f0: 0x42fbe820, 0x40f1: 0x42fe7c20, 0x40f2: 0x43000a20, 0x40f3: 0x4306a420, - 0x40f4: 0x4307de20, 0x40f5: 0x430ef220, 0x40f6: 0x43128220, 0x40f7: 0x43130c20, - 0x40f8: 0x43132c20, 0x40f9: 0x43157e20, 0x40fa: 0x4315f020, 0x40fb: 0x43159620, - 0x40fc: 0x43160220, 0x40fd: 0x4315fc20, 0x40fe: 0x4315da20, 0x40ff: 0x43167220, - // Block 0x104, offset 0x4100 - 0x4100: 0x43171420, 0x4101: 0x431a1020, 0x4102: 0x431e7020, 0x4103: 0x4320e420, - 0x4104: 0x43233220, 0x4105: 0x4324ec20, 0x4106: 0x432cf820, 0x4107: 0x432dc620, - 0x4108: 0x432eac20, 0x4109: 0x432fb620, 0x410a: 0x432ffe20, 0x410b: 0x43301620, - 0x410c: 0x43307620, 0x410d: 0x43362420, 0x410e: 0x433f3820, 0x410f: 0x48509420, - 0x4110: 0x48508820, 0x4111: 0x4867aa20, 0x4112: 0x44773a20, 0x4113: 0x44803020, - 0x4114: 0x44807220, 0x4115: 0x48a49220, 0x4116: 0x48b9a020, 0x4117: 0x48fda620, - 0x4118: 0x433e8620, 0x4119: 0x433f1c20, - // Block 0x105, offset 0x4140 - 0x4140: 0xf0000404, 0x4141: 0xf0000404, 0x4142: 0xf0000404, 0x4143: 0xe0000b99, - 0x4144: 0xe0000b9d, 0x4145: 0xe0000f83, 0x4146: 0xf0000404, - 0x4153: 0xf0000404, - 0x4154: 0xf0000404, 0x4155: 0xf0000404, 0x4156: 0xf0000404, 0x4157: 0xf0000404, - 0x415d: 0xe000150b, 0x415e: 0xa1a09602, 0x415f: 0xe0001514, - 0x4160: 0x0038ae85, 0x4161: 0x00389085, 0x4162: 0x00389685, 0x4163: 0x00389885, - 0x4164: 0x0038a485, 0x4165: 0x0038a685, 0x4166: 0x0038a885, 0x4167: 0x0038b685, - 0x4168: 0x0038ba85, 0x4169: 0x00093885, 0x416a: 0xe0001542, 0x416b: 0xe000153f, - 0x416c: 0xe000154c, 0x416d: 0xe0001548, 0x416e: 0xe00014e1, 0x416f: 0xe00014e4, - 0x4170: 0xe00014e7, 0x4171: 0xe00014ea, 0x4172: 0xe00014f0, 0x4173: 0xe00014f3, - 0x4174: 0xe00014f6, 0x4175: 0xe00014fc, 0x4176: 0xe0001505, - 0x4178: 0xe0001508, 0x4179: 0xe000150e, 0x417a: 0xe000151b, 0x417b: 0xe0001518, - 0x417c: 0xe0001521, 0x417e: 0xe0001524, - // Block 0x106, offset 0x4180 - 0x4180: 0xe0001527, 0x4181: 0xe000152a, 0x4183: 0xe0001530, - 0x4184: 0xe000152d, 0x4186: 0xe0001536, 0x4187: 0xe0001539, - 0x4188: 0xe000153c, 0x4189: 0xe0001545, 0x418a: 0xe0001550, 0x418b: 0xe00014f9, - 0x418c: 0xe00014ed, 0x418d: 0xe000151e, 0x418e: 0xe0001533, 0x418f: 0xf0000404, - 0x4190: 0x0039249a, 0x4191: 0x00392499, 0x4192: 0x00393e9a, 0x4193: 0x00393e99, - 0x4194: 0x00393e97, 0x4195: 0x00393e98, 0x4196: 0x0039409a, 0x4197: 0x00394099, - 0x4198: 0x00394097, 0x4199: 0x00394098, 0x419a: 0x0039429a, 0x419b: 0x00394299, - 0x419c: 0x00394297, 0x419d: 0x00394298, 0x419e: 0x00395c9a, 0x419f: 0x00395c99, - 0x41a0: 0x00395c97, 0x41a1: 0x00395c98, 0x41a2: 0x0039629a, 0x41a3: 0x00396299, - 0x41a4: 0x00396297, 0x41a5: 0x00396298, 0x41a6: 0x00395a9a, 0x41a7: 0x00395a99, - 0x41a8: 0x00395a97, 0x41a9: 0x00395a98, 0x41aa: 0x003a049a, 0x41ab: 0x003a0499, - 0x41ac: 0x003a0497, 0x41ad: 0x003a0498, 0x41ae: 0x003a0a9a, 0x41af: 0x003a0a99, - 0x41b0: 0x003a0a97, 0x41b1: 0x003a0a98, 0x41b2: 0x0039689a, 0x41b3: 0x00396899, - 0x41b4: 0x00396897, 0x41b5: 0x00396898, 0x41b6: 0x0039669a, 0x41b7: 0x00396699, - 0x41b8: 0x00396697, 0x41b9: 0x00396698, 0x41ba: 0x00396a9a, 0x41bb: 0x00396a99, - 0x41bc: 0x00396a97, 0x41bd: 0x00396a98, 0x41be: 0x00396e9a, 0x41bf: 0x00396e99, - // Block 0x107, offset 0x41c0 - 0x41c0: 0x00396e97, 0x41c1: 0x00396e98, 0x41c2: 0x0039969a, 0x41c3: 0x00399699, - 0x41c4: 0x0039949a, 0x41c5: 0x00399499, 0x41c6: 0x0039989a, 0x41c7: 0x00399899, - 0x41c8: 0x00398c9a, 0x41c9: 0x00398c99, 0x41ca: 0x0039b69a, 0x41cb: 0x0039b699, - 0x41cc: 0x0039a89a, 0x41cd: 0x0039a899, 0x41ce: 0x003a1c9a, 0x41cf: 0x003a1c99, - 0x41d0: 0x003a1c97, 0x41d1: 0x003a1c98, 0x41d2: 0x003a2a9a, 0x41d3: 0x003a2a99, - 0x41d4: 0x003a2a97, 0x41d5: 0x003a2a98, 0x41d6: 0x003a329a, 0x41d7: 0x003a3299, - 0x41d8: 0x003a3297, 0x41d9: 0x003a3298, 0x41da: 0x003a2e9a, 0x41db: 0x003a2e99, - 0x41dc: 0x003a2e97, 0x41dd: 0x003a2e98, 0x41de: 0x003a589a, 0x41df: 0x003a5899, - 0x41e0: 0x003a5a9a, 0x41e1: 0x003a5a99, 0x41e2: 0x003a5a97, 0x41e3: 0x003a5a98, - 0x41e4: 0xf0001a1a, 0x41e5: 0xf0001919, 0x41e6: 0x003a6c9a, 0x41e7: 0x003a6c99, - 0x41e8: 0x003a6c97, 0x41e9: 0x003a6c98, 0x41ea: 0x003a6a9a, 0x41eb: 0x003a6a99, - 0x41ec: 0x003a6a97, 0x41ed: 0x003a6a98, 0x41ee: 0x003aaa9a, 0x41ef: 0x003aaa99, - 0x41f0: 0xf0001a1a, 0x41f1: 0xf0001919, 0x41f2: 0x40071820, 0x41f3: 0x40071a20, - 0x41f4: 0x40071c20, 0x41f5: 0x40071e20, 0x41f6: 0x40072020, 0x41f7: 0x40072220, - 0x41f8: 0x40072420, 0x41f9: 0x40072620, 0x41fa: 0x40072820, 0x41fb: 0x40072a20, - 0x41fc: 0x40072c20, 0x41fd: 0x40072e20, 0x41fe: 0x40073020, 0x41ff: 0x40073220, - // Block 0x108, offset 0x4200 - 0x4200: 0x40073420, 0x4201: 0x40073620, - 0x4213: 0x003a269a, - 0x4214: 0x003a2699, 0x4215: 0x003a2697, 0x4216: 0x003a2698, 0x4217: 0x003a7c9a, - 0x4218: 0x003a7c99, 0x4219: 0x003a7a9a, 0x421a: 0x003a7a99, 0x421b: 0x003a7e9a, - 0x421c: 0x003a7e99, 0x421d: 0xf0001a1a, 0x421e: 0x003a849a, 0x421f: 0x003a8499, - 0x4220: 0x003a789a, 0x4221: 0x003a7899, 0x4222: 0x003a809a, 0x4223: 0x003a8099, - 0x4224: 0x003a989a, 0x4225: 0x003a9899, 0x4226: 0x003a9897, 0x4227: 0x003a9898, - 0x4228: 0x003a8e97, 0x4229: 0x003a8e98, 0x422a: 0xe0001559, 0x422b: 0xe0001556, - 0x422c: 0xe0001589, 0x422d: 0xe0001586, 0x422e: 0xe000158f, 0x422f: 0xe000158c, - 0x4230: 0xe000159b, 0x4231: 0xe0001598, 0x4232: 0xe0001595, 0x4233: 0xe0001592, - 0x4234: 0xe00015a1, 0x4235: 0xe000159e, 0x4236: 0xe00015bf, 0x4237: 0xe00015bc, - 0x4238: 0xe00015b9, 0x4239: 0xe00015ad, 0x423a: 0xe00015a7, 0x423b: 0xe00015a4, - 0x423c: 0x003a929a, 0x423d: 0x003a9299, 0x423e: 0x003a9297, 0x423f: 0x003a9298, - // Block 0x109, offset 0x4240 - 0x4240: 0xe000155f, 0x4241: 0xe0001565, 0x4242: 0xe000157a, 0x4243: 0xe00015b0, - 0x4244: 0xe00015b6, 0x4245: 0xf0001a1a, 0x4246: 0xf0001a1a, 0x4247: 0xf0001a1a, - 0x4248: 0xf0001a1a, 0x4249: 0xf0001a1a, 0x424a: 0xf0001a1a, 0x424b: 0xf0001a1a, - 0x424c: 0xf0001a1a, 0x424d: 0xf0001a1a, 0x424e: 0xf0001a1a, 0x424f: 0xf0001a1a, - 0x4250: 0xf0001a1a, 0x4251: 0xf0001a1a, 0x4252: 0xf0001a1a, 0x4253: 0xf0001a1a, - 0x4254: 0xf0001a1a, 0x4255: 0xf0001a1a, 0x4256: 0xf0001a1a, 0x4257: 0xf0001a1a, - 0x4258: 0xf0001a1a, 0x4259: 0xf0001a1a, 0x425a: 0xf0001a1a, 0x425b: 0xf0001a1a, - 0x425c: 0xf0001a1a, 0x425d: 0xf0001a1a, 0x425e: 0xf0001a1a, 0x425f: 0xf0001a1a, - 0x4260: 0xf0001a1a, 0x4261: 0xf0001a1a, 0x4262: 0xf0001a1a, 0x4263: 0xf0001a1a, - 0x4264: 0xf0001a1a, 0x4265: 0xf0001a1a, 0x4266: 0xf0001a1a, 0x4267: 0xf0001a1a, - 0x4268: 0xf0001a1a, 0x4269: 0xf0001a1a, 0x426a: 0xf0001a1a, 0x426b: 0xf0001a1a, - 0x426c: 0xf0001a1a, 0x426d: 0xf0001a1a, 0x426e: 0xf0001a1a, 0x426f: 0xf0001a1a, - 0x4270: 0xf0001a1a, 0x4271: 0xf0001a1a, 0x4272: 0xf0001a1a, 0x4273: 0xf0001a1a, - 0x4274: 0xf0001a1a, 0x4275: 0xf0001a1a, 0x4276: 0xf0001a1a, 0x4277: 0xf0001a1a, - 0x4278: 0xf0001a1a, 0x4279: 0xf0001a1a, 0x427a: 0xf0001a1a, 0x427b: 0xf0001a1a, - 0x427c: 0xf0001a1a, 0x427d: 0xf0001a1a, 0x427e: 0xf0001a1a, 0x427f: 0xf0001a1a, - // Block 0x10a, offset 0x4280 - 0x4280: 0xf0001a1a, 0x4281: 0xf0001a1a, 0x4282: 0xf0001a1a, 0x4283: 0xf0001a1a, - 0x4284: 0xf0001a1a, 0x4285: 0xf0001a1a, 0x4286: 0xf0001a1a, 0x4287: 0xf0001a1a, - 0x4288: 0xf0001a1a, 0x4289: 0xf0001a1a, 0x428a: 0xf0001a1a, 0x428b: 0xf0001a1a, - 0x428c: 0xf0001a1a, 0x428d: 0xf0001a1a, 0x428e: 0xf0001a1a, 0x428f: 0xf0001a1a, - 0x4290: 0xf0001a1a, 0x4291: 0xf0001a1a, 0x4292: 0xf0001a1a, 0x4293: 0xf0001a1a, - 0x4294: 0xf0001a1a, 0x4295: 0xf0001a1a, 0x4296: 0xf0001a1a, 0x4297: 0xf0001a1a, - 0x4298: 0xf0001a1a, 0x4299: 0xf0001a1a, 0x429a: 0xf0001a1a, 0x429b: 0xf0001a1a, - 0x429c: 0xf0001a1a, 0x429d: 0xf0001a1a, 0x429e: 0xe0000003, 0x429f: 0xe0000006, - 0x42a0: 0xe0000009, 0x42a1: 0xe000000c, 0x42a2: 0xe000000f, 0x42a3: 0xe0000012, - 0x42a4: 0xe000156b, 0x42a5: 0xe000156e, 0x42a6: 0xe0001577, 0x42a7: 0xe000157d, - 0x42a8: 0xe00015aa, 0x42a9: 0xe00015b3, 0x42aa: 0xf0001919, 0x42ab: 0xf0001919, - 0x42ac: 0xf0001919, 0x42ad: 0xf0001919, 0x42ae: 0xf0001919, 0x42af: 0xf0001919, - 0x42b0: 0xf0001919, 0x42b1: 0xf0001919, 0x42b2: 0xf0001919, 0x42b3: 0xf0001919, - 0x42b4: 0xf0001919, 0x42b5: 0xf0001919, 0x42b6: 0xf0001919, 0x42b7: 0xf0001919, - 0x42b8: 0xf0001919, 0x42b9: 0xf0001919, 0x42ba: 0xf0001919, 0x42bb: 0xf0001919, - 0x42bc: 0xf0001919, 0x42bd: 0xf0001919, 0x42be: 0xf0001919, 0x42bf: 0xf0001919, - // Block 0x10b, offset 0x42c0 - 0x42c0: 0xf0001919, 0x42c1: 0xf0001919, 0x42c2: 0xf0001919, 0x42c3: 0xf0001919, - 0x42c4: 0xf0001919, 0x42c5: 0xf0001919, 0x42c6: 0xf0001919, 0x42c7: 0xf0001919, - 0x42c8: 0xf0001919, 0x42c9: 0xf0001919, 0x42ca: 0xf0001919, 0x42cb: 0xf0001919, - 0x42cc: 0xf0001919, 0x42cd: 0xf0001919, 0x42ce: 0xf0001919, 0x42cf: 0xf0001919, - 0x42d0: 0xf0001919, 0x42d1: 0xf0001919, 0x42d2: 0xf0001919, 0x42d3: 0xf0001919, - 0x42d4: 0xf0001919, 0x42d5: 0xf0001919, 0x42d6: 0xf0001919, 0x42d7: 0xe000155c, - 0x42d8: 0xe0001562, 0x42d9: 0xe0001568, 0x42da: 0xe0001571, 0x42db: 0xe0001580, - 0x42dc: 0xf0001717, 0x42dd: 0xf0001717, 0x42de: 0xf0001717, 0x42df: 0xf0001717, - 0x42e0: 0xf0001717, 0x42e1: 0xf0001717, 0x42e2: 0xf0001717, 0x42e3: 0xf0001717, - 0x42e4: 0xf0001717, 0x42e5: 0xf0001717, 0x42e6: 0xf0001717, 0x42e7: 0xf0001717, - 0x42e8: 0xf0001717, 0x42e9: 0xf0001717, 0x42ea: 0xf0001717, 0x42eb: 0xf0001717, - 0x42ec: 0xf0001717, 0x42ed: 0xf0001717, 0x42ee: 0xf0001717, 0x42ef: 0xf0001717, - 0x42f0: 0xf0001717, 0x42f1: 0xf0001717, 0x42f2: 0xf0001717, 0x42f3: 0xf0001717, - 0x42f4: 0xf0001717, 0x42f5: 0xf0001717, 0x42f6: 0xf0001717, 0x42f7: 0xf0001717, - 0x42f8: 0xf0001717, 0x42f9: 0xf0001717, 0x42fa: 0xf0001717, 0x42fb: 0xf0001717, - 0x42fc: 0xf0001717, 0x42fd: 0xf0001717, 0x42fe: 0xf0001717, 0x42ff: 0xf0001717, - // Block 0x10c, offset 0x4300 - 0x4300: 0xf0001717, 0x4301: 0xf0001717, 0x4302: 0xf0001717, 0x4303: 0xf0001717, - 0x4304: 0xf0001717, 0x4305: 0xf0001717, 0x4306: 0xf0001717, 0x4307: 0xf0001717, - 0x4308: 0xf0001717, 0x4309: 0xf0001717, 0x430a: 0xf0001717, 0x430b: 0xf0001717, - 0x430c: 0xf0001717, 0x430d: 0xf0001717, 0x430e: 0xf0001717, 0x430f: 0xf0001717, - 0x4310: 0xf0001717, 0x4311: 0xf0001717, 0x4312: 0xf0001717, 0x4313: 0xf0001717, - 0x4314: 0xf0001717, 0x4315: 0xf0001717, 0x4316: 0xf0001717, 0x4317: 0xf0001717, - 0x4318: 0xf0001717, 0x4319: 0xf0001717, 0x431a: 0xf0001717, 0x431b: 0xf0001717, - 0x431c: 0xf0001717, 0x431d: 0xf0001717, 0x431e: 0xf0001717, 0x431f: 0xe0001574, - 0x4320: 0xe0001583, 0x4321: 0xf0001818, 0x4322: 0xf0001818, 0x4323: 0xf0001818, - 0x4324: 0xf0001818, 0x4325: 0xf0001818, 0x4326: 0xf0001818, 0x4327: 0xf0001818, - 0x4328: 0xf0001818, 0x4329: 0xf0001818, 0x432a: 0xf0001818, 0x432b: 0xf0001818, - 0x432c: 0xf0001818, 0x432d: 0xf0001818, 0x432e: 0xf0001818, 0x432f: 0xf0001818, - 0x4330: 0xf0001818, 0x4331: 0xf0001818, 0x4332: 0xf0001818, 0x4333: 0xf0001818, - 0x4334: 0xf0001818, 0x4335: 0xf0001a1a, 0x4336: 0xf0001a1a, 0x4337: 0xf0001a1a, - 0x4338: 0xf0001a1a, 0x4339: 0xf0001a1a, 0x433a: 0xf0001a1a, 0x433b: 0xf0001a1a, - 0x433c: 0xf0001a1a, 0x433d: 0xf0001a1a, 0x433e: 0xf0001a1a, 0x433f: 0xf0001a1a, - // Block 0x10d, offset 0x4340 - 0x4340: 0xf0001a1a, 0x4341: 0xf0001a1a, 0x4342: 0xf0001a1a, 0x4343: 0xf0001a1a, - 0x4344: 0xf0001a1a, 0x4345: 0xf0001a1a, 0x4346: 0xf0001a1a, 0x4347: 0xf0001a1a, - 0x4348: 0xf0001a1a, 0x4349: 0xf0001a1a, 0x434a: 0xf0001a1a, 0x434b: 0xf0001a1a, - 0x434c: 0xf0001a1a, 0x434d: 0xf0001a1a, 0x434e: 0xf0001a1a, 0x434f: 0xf0001a1a, - 0x4350: 0xf0001a1a, 0x4351: 0xf0001919, 0x4352: 0xf0001919, 0x4353: 0xf0001919, - 0x4354: 0xf0001919, 0x4355: 0xf0001919, 0x4356: 0xf0001919, 0x4357: 0xf0001919, - 0x4358: 0xf0001919, 0x4359: 0xf0001919, 0x435a: 0xf0001919, 0x435b: 0xf0001919, - 0x435c: 0xf0001919, 0x435d: 0xf0001919, 0x435e: 0xf0001919, 0x435f: 0xf0001919, - 0x4360: 0xf0001919, 0x4361: 0xf0001919, 0x4362: 0xf0001919, 0x4363: 0xf0001919, - 0x4364: 0xf0001919, 0x4365: 0xf0001919, 0x4366: 0xf0001919, 0x4367: 0xf0001919, - 0x4368: 0xf0001919, 0x4369: 0xf0001919, 0x436a: 0xf0001919, 0x436b: 0xf0001919, - 0x436c: 0xf0001919, 0x436d: 0xf0001717, 0x436e: 0xf0001717, 0x436f: 0xf0001717, - 0x4370: 0xf0001717, 0x4371: 0xf0001717, 0x4372: 0xf0001717, 0x4373: 0xf0001717, - 0x4374: 0xf0001818, 0x4375: 0xf0001818, 0x4376: 0xf0001818, 0x4377: 0xf0001818, - 0x4378: 0xf0001818, 0x4379: 0xf0001818, 0x437a: 0xf0001818, 0x437b: 0xf0001818, - 0x437c: 0xf0001919, 0x437d: 0xf0001a1a, 0x437e: 0x4004c020, 0x437f: 0x4004c220, - // Block 0x10e, offset 0x4380 - 0x4390: 0xe00015d4, 0x4391: 0xe00015e4, 0x4392: 0xe00015e0, 0x4393: 0xe00015e8, - 0x4394: 0xe00015ec, 0x4395: 0xe00015f8, 0x4396: 0xe00015fc, 0x4397: 0xe0001600, - 0x4398: 0xe0001621, 0x4399: 0xe000161d, 0x439a: 0xe0001635, 0x439b: 0xe0001631, - 0x439c: 0xe0001646, 0x439d: 0xe000163e, 0x439e: 0xe0001642, 0x439f: 0xe000165a, - 0x43a0: 0xe0001656, 0x43a1: 0xe0001652, 0x43a2: 0xe0001662, 0x43a3: 0xe000165e, - 0x43a4: 0xe000168a, 0x43a5: 0xe0001686, 0x43a6: 0xe00016b6, 0x43a7: 0xe000166e, - 0x43a8: 0xe000166a, 0x43a9: 0xe0001666, 0x43aa: 0xe000167a, 0x43ab: 0xe0001676, - 0x43ac: 0xe0001682, 0x43ad: 0xe000167e, 0x43ae: 0xe00016ba, 0x43af: 0xe00016c6, - 0x43b0: 0xe00016c2, 0x43b1: 0xe00016ce, 0x43b2: 0xe00016ca, 0x43b3: 0xe00016d2, - 0x43b4: 0xe00016d6, 0x43b5: 0xe00016de, 0x43b6: 0xe00016eb, 0x43b7: 0xe00016e7, - 0x43b8: 0xe00016ef, 0x43b9: 0xe00016f7, 0x43ba: 0xe00016ff, 0x43bb: 0xe00016fb, - 0x43bc: 0xe0001707, 0x43bd: 0xe0001703, 0x43be: 0xe0001717, 0x43bf: 0xe000171b, - // Block 0x10f, offset 0x43c0 - 0x43c0: 0xe0001759, 0x43c1: 0xe0001761, 0x43c2: 0xe000175d, 0x43c3: 0xe0001741, - 0x43c4: 0xe0001745, 0x43c5: 0xe0001769, 0x43c6: 0xe0001765, 0x43c7: 0xe0001771, - 0x43c8: 0xe000176d, 0x43c9: 0xe000178c, 0x43ca: 0xe0001790, 0x43cb: 0xe0001799, - 0x43cc: 0xe000177c, 0x43cd: 0xe0001784, 0x43ce: 0xe000179d, 0x43cf: 0xe00017a1, - 0x43d2: 0xe0001780, 0x43d3: 0xe00017d9, - 0x43d4: 0xe00017dd, 0x43d5: 0xe00017c5, 0x43d6: 0xe00017c9, 0x43d7: 0xe00017b9, - 0x43d8: 0xe00017b5, 0x43d9: 0xe00017bd, 0x43da: 0xe00017d5, 0x43db: 0xe00017d1, - 0x43dc: 0xe00017f8, 0x43dd: 0xe00017f4, 0x43de: 0xe00015d0, 0x43df: 0xe00015dc, - 0x43e0: 0xe00015d8, 0x43e1: 0xe00015f4, 0x43e2: 0xe00015f0, 0x43e3: 0xe0001608, - 0x43e4: 0xe0001604, 0x43e5: 0xe0001629, 0x43e6: 0xe000160c, 0x43e7: 0xe0001625, - 0x43e8: 0xe000164a, 0x43e9: 0xe000168e, 0x43ea: 0xe0001672, 0x43eb: 0xe00016be, - 0x43ec: 0xe0001751, 0x43ed: 0xe0001775, 0x43ee: 0xe00017f0, 0x43ef: 0xe00017ec, - 0x43f0: 0xe00017fc, 0x43f1: 0xe00017a9, 0x43f2: 0xe000171f, 0x43f3: 0xe00017cd, - 0x43f4: 0xe0001713, 0x43f5: 0xe0001755, 0x43f6: 0xe00016f3, 0x43f7: 0xe000172b, - 0x43f8: 0xe00017ad, 0x43f9: 0xe00017a5, 0x43fa: 0xe0001749, 0x43fb: 0xe0001727, - 0x43fc: 0xe000174d, 0x43fd: 0xe00017b1, 0x43fe: 0xe0001610, 0x43ff: 0xe000162d, - // Block 0x110, offset 0x4400 - 0x4400: 0xe0001788, 0x4401: 0xe000170b, 0x4402: 0xe00015cc, 0x4403: 0xe0001723, - 0x4404: 0xe00016da, 0x4405: 0xe00016b2, 0x4406: 0xe000164e, 0x4407: 0xe00017c1, - 0x4430: 0xe00016ae, 0x4431: 0xe000170f, 0x4432: 0xe00015c7, 0x4433: 0xe00015c2, - 0x4434: 0xe0001794, 0x4435: 0xe0001692, 0x4436: 0xe0001639, 0x4437: 0xe00016e2, - 0x4438: 0xe00017e7, 0x4439: 0xe0001697, 0x443a: 0xe000169b, 0x443b: 0xe0001614, - 0x443c: 0x40282e20, 0x443d: 0x40071620, - // Block 0x111, offset 0x4440 - 0x4440: 0xa0000000, 0x4441: 0xa0000000, 0x4442: 0xa0000000, 0x4443: 0xa0000000, - 0x4444: 0xa0000000, 0x4445: 0xa0000000, 0x4446: 0xa0000000, 0x4447: 0xa0000000, - 0x4448: 0xa0000000, 0x4449: 0xa0000000, 0x444a: 0xa0000000, 0x444b: 0xa0000000, - 0x444c: 0xa0000000, 0x444d: 0xa0000000, 0x444e: 0xa0000000, 0x444f: 0xa0000000, - 0x4450: 0x00024096, 0x4451: 0x00025c96, 0x4452: 0x00030496, 0x4453: 0x00026c96, - 0x4454: 0x00026296, 0x4455: 0x0002ba96, 0x4456: 0x0002c496, 0x4457: 0x0004b496, - 0x4458: 0x0004b696, 0x4459: 0xf0001616, - 0x4460: 0xae608202, 0x4461: 0xae600000, 0x4462: 0xae608102, 0x4463: 0xae600000, - 0x4464: 0xae600000, 0x4465: 0xae600000, 0x4466: 0xae600000, - 0x4470: 0xf0001f16, 0x4471: 0x00022c96, 0x4472: 0x00022a96, 0x4473: 0x00021696, - 0x4474: 0x00021696, 0x4475: 0x0003f496, 0x4476: 0x0003f696, 0x4477: 0x0003fc96, - 0x4478: 0x0003fe96, 0x4479: 0x0004b096, 0x447a: 0x0004b296, 0x447b: 0x0004ac96, - 0x447c: 0x0004ae96, 0x447d: 0x0004a096, 0x447e: 0x0004a296, 0x447f: 0x00049c96, - // Block 0x112, offset 0x4480 - 0x4480: 0x00049e96, 0x4481: 0x0004a496, 0x4482: 0x0004a696, 0x4483: 0x0004a896, - 0x4484: 0x0004aa96, 0x4485: 0x40025e20, 0x4486: 0x40026020, 0x4487: 0x0003f896, - 0x4488: 0x0003fa96, 0x4489: 0x00021484, 0x448a: 0x00021484, 0x448b: 0x00021484, - 0x448c: 0x00021484, 0x448d: 0x00021684, 0x448e: 0x00021684, 0x448f: 0x00021684, - 0x4490: 0x0002408f, 0x4491: 0x00025c8f, 0x4492: 0x0002e48f, - 0x4494: 0x0002628f, 0x4495: 0x00026c8f, 0x4496: 0x0002c48f, 0x4497: 0x0002ba8f, - 0x4498: 0x00022c8f, 0x4499: 0x0003f48f, 0x449a: 0x0003f68f, 0x449b: 0x0003fc8f, - 0x449c: 0x0003fe8f, 0x449d: 0x0004b08f, 0x449e: 0x0004b28f, 0x449f: 0x0004ea8f, - 0x44a0: 0x0004e68f, 0x44a1: 0x0004d88f, 0x44a2: 0x0009388f, 0x44a3: 0x00021a8f, - 0x44a4: 0x0009408f, 0x44a5: 0x0009448f, 0x44a6: 0x0009428f, - 0x44a8: 0x0004e48f, 0x44a9: 0x0027de8f, 0x44aa: 0x0004ec8f, 0x44ab: 0x0004d68f, - 0x44b0: 0xa000a21a, 0x44b1: 0xa000a218, 0x44b2: 0xa000a51a, 0x44b3: 0xa0000000, - 0x44b4: 0xa000a91a, 0x44b6: 0xa000ad1a, 0x44b7: 0xa000ad18, - 0x44b8: 0xa000b21a, 0x44b9: 0xa000b218, 0x44ba: 0xa000b61a, 0x44bb: 0xa000b618, - 0x44bc: 0xa000ba1a, 0x44bd: 0xa000ba18, 0x44be: 0xa000bc1a, 0x44bf: 0xa000bc18, - // Block 0x113, offset 0x44c0 - 0x44c0: 0x00391c9a, 0x44c1: 0x00391e9a, 0x44c2: 0x00391e99, 0x44c3: 0x0039209a, - 0x44c4: 0x00392099, 0x44c5: 0x0039269a, 0x44c6: 0x00392699, 0x44c7: 0x0039289a, - 0x44c8: 0x00392899, 0x44c9: 0x0039309a, 0x44ca: 0x00393099, 0x44cb: 0x00393097, - 0x44cc: 0x00393098, 0x44cd: 0x0039389a, 0x44ce: 0x00393899, 0x44cf: 0x00393c9a, - 0x44d0: 0x00393c99, 0x44d1: 0x00393c97, 0x44d2: 0x00393c98, 0x44d3: 0x0039549a, - 0x44d4: 0x00395499, 0x44d5: 0x0039569a, 0x44d6: 0x00395699, 0x44d7: 0x00395697, - 0x44d8: 0x00395698, 0x44d9: 0x0039589a, 0x44da: 0x00395899, 0x44db: 0x00395897, - 0x44dc: 0x00395898, 0x44dd: 0x0039649a, 0x44de: 0x00396499, 0x44df: 0x00396497, - 0x44e0: 0x00396498, 0x44e1: 0x0039729a, 0x44e2: 0x00397299, 0x44e3: 0x00397297, - 0x44e4: 0x00397298, 0x44e5: 0x0039749a, 0x44e6: 0x00397499, 0x44e7: 0x00397497, - 0x44e8: 0x00397498, 0x44e9: 0x0039889a, 0x44ea: 0x00398899, 0x44eb: 0x00398a9a, - 0x44ec: 0x00398a99, 0x44ed: 0x0039a49a, 0x44ee: 0x0039a499, 0x44ef: 0x0039a69a, - 0x44f0: 0x0039a699, 0x44f1: 0x0039c69a, 0x44f2: 0x0039c699, 0x44f3: 0x0039c697, - 0x44f4: 0x0039c698, 0x44f5: 0x0039c89a, 0x44f6: 0x0039c899, 0x44f7: 0x0039c897, - 0x44f8: 0x0039c898, 0x44f9: 0x0039dc9a, 0x44fa: 0x0039dc99, 0x44fb: 0x0039dc97, - 0x44fc: 0x0039dc98, 0x44fd: 0x0039de9a, 0x44fe: 0x0039de99, 0x44ff: 0x0039de97, - // Block 0x114, offset 0x4500 - 0x4500: 0x0039de98, 0x4501: 0x0039e69a, 0x4502: 0x0039e699, 0x4503: 0x0039e697, - 0x4504: 0x0039e698, 0x4505: 0x0039e89a, 0x4506: 0x0039e899, 0x4507: 0x0039e897, - 0x4508: 0x0039e898, 0x4509: 0x0039ee9a, 0x450a: 0x0039ee99, 0x450b: 0x0039ee97, - 0x450c: 0x0039ee98, 0x450d: 0x0039f09a, 0x450e: 0x0039f099, 0x450f: 0x0039f097, - 0x4510: 0x0039f098, 0x4511: 0x0039fc9a, 0x4512: 0x0039fc99, 0x4513: 0x0039fc97, - 0x4514: 0x0039fc98, 0x4515: 0x003a129a, 0x4516: 0x003a1299, 0x4517: 0x003a1297, - 0x4518: 0x003a1298, 0x4519: 0x003a1a9a, 0x451a: 0x003a1a99, 0x451b: 0x003a1a97, - 0x451c: 0x003a1a98, 0x451d: 0x003a409a, 0x451e: 0x003a4099, 0x451f: 0x003a4097, - 0x4520: 0x003a4098, 0x4521: 0x003a4e9a, 0x4522: 0x003a4e99, 0x4523: 0x003a4e97, - 0x4524: 0x003a4e98, 0x4525: 0x003a569a, 0x4526: 0x003a5699, 0x4527: 0x003a5697, - 0x4528: 0x003a5698, 0x4529: 0x003a689a, 0x452a: 0x003a6899, 0x452b: 0x003a6897, - 0x452c: 0x003a6898, 0x452d: 0x003a749a, 0x452e: 0x003a7499, 0x452f: 0x003a8e9a, - 0x4530: 0x003a8e99, 0x4531: 0x003a909a, 0x4532: 0x003a9099, 0x4533: 0x003a9097, - 0x4534: 0x003a9098, 0x4535: 0xe0001732, 0x4536: 0xe000172f, 0x4537: 0xe0001738, - 0x4538: 0xe0001735, 0x4539: 0xe000173e, 0x453a: 0xe000173b, 0x453b: 0xf0001a1a, - 0x453c: 0xf0001919, 0x453f: 0xa0000000, - // Block 0x115, offset 0x4540 - 0x4541: 0x0002ba83, 0x4542: 0x0003e083, 0x4543: 0x0004ea83, - 0x4544: 0x0027de83, 0x4545: 0x0004ec83, 0x4546: 0x0004e683, 0x4547: 0x0003d283, - 0x4548: 0x0003f483, 0x4549: 0x0003f683, 0x454a: 0x0004d883, 0x454b: 0x00093883, - 0x454c: 0x00024083, 0x454d: 0x00021a83, 0x454e: 0x0002e483, 0x454f: 0x0004e283, - 0x4550: 0x0029cc83, 0x4551: 0x0029ce83, 0x4552: 0x0029d083, 0x4553: 0x0029d283, - 0x4554: 0x0029d483, 0x4555: 0x0029d683, 0x4556: 0x0029d883, 0x4557: 0x0029da83, - 0x4558: 0x0029dc83, 0x4559: 0x0029de83, 0x455a: 0x00026c83, 0x455b: 0x00026283, - 0x455c: 0x00094083, 0x455d: 0x00094283, 0x455e: 0x00094483, 0x455f: 0x0002c483, - 0x4560: 0x0004d683, 0x4561: 0x002bde89, 0x4562: 0x002c0a89, 0x4563: 0x002c3a89, - 0x4564: 0x002c6289, 0x4565: 0x002c9889, 0x4566: 0x002d0889, 0x4567: 0x002d2289, - 0x4568: 0x002d6889, 0x4569: 0x002d9a89, 0x456a: 0x002dcc89, 0x456b: 0x002dfe89, - 0x456c: 0x002e2289, 0x456d: 0x002e8289, 0x456e: 0x002e9e89, 0x456f: 0x002ee289, - 0x4570: 0x002f2c89, 0x4571: 0x002f5689, 0x4572: 0x002f7a89, 0x4573: 0x002fe689, - 0x4574: 0x00302c89, 0x4575: 0x00306c89, 0x4576: 0x0030be89, 0x4577: 0x0030e289, - 0x4578: 0x0030f689, 0x4579: 0x00310089, 0x457a: 0x00312a89, 0x457b: 0x0003f883, - 0x457c: 0x0004e483, 0x457d: 0x0003fa83, 0x457e: 0x00062483, 0x457f: 0x00021683, - // Block 0x116, offset 0x4580 - 0x4580: 0x00061e83, 0x4581: 0x002bde83, 0x4582: 0x002c0a83, 0x4583: 0x002c3a83, - 0x4584: 0x002c6283, 0x4585: 0x002c9883, 0x4586: 0x002d0883, 0x4587: 0x002d2283, - 0x4588: 0x002d6883, 0x4589: 0x002d9a83, 0x458a: 0x002dcc83, 0x458b: 0x002dfe83, - 0x458c: 0x002e2283, 0x458d: 0x002e8283, 0x458e: 0x002e9e83, 0x458f: 0x002ee283, - 0x4590: 0x002f2c83, 0x4591: 0x002f5683, 0x4592: 0x002f7a83, 0x4593: 0x002fe683, - 0x4594: 0x00302c83, 0x4595: 0x00306c83, 0x4596: 0x0030be83, 0x4597: 0x0030e283, - 0x4598: 0x0030f683, 0x4599: 0x00310083, 0x459a: 0x00312a83, 0x459b: 0x0003fc83, - 0x459c: 0x00094883, 0x459d: 0x0003fe83, 0x459e: 0x00094c83, 0x459f: 0x00041883, - 0x45a0: 0x00041a83, 0x45a1: 0x00030492, 0x45a2: 0x0004a492, 0x45a3: 0x0004a692, - 0x45a4: 0x00025c92, 0x45a5: 0x00023e92, 0x45a6: 0x0065d692, 0x45a7: 0x00657690, - 0x45a8: 0x00657890, 0x45a9: 0x00657a90, 0x45aa: 0x00657e90, 0x45ab: 0x00658090, - 0x45ac: 0x0065be90, 0x45ad: 0x0065c090, 0x45ae: 0x0065c490, 0x45af: 0x00659a90, - 0x45b0: 0x0027d692, 0x45b1: 0x00657692, 0x45b2: 0x00657892, 0x45b3: 0x00657a92, - 0x45b4: 0x00657e92, 0x45b5: 0x00658092, 0x45b6: 0x00658292, 0x45b7: 0x00658492, - 0x45b8: 0x00658692, 0x45b9: 0x00658892, 0x45ba: 0x00658a92, 0x45bb: 0x00658c92, - 0x45bc: 0x00658e92, 0x45bd: 0x00659092, 0x45be: 0x00659292, 0x45bf: 0x00659492, - // Block 0x117, offset 0x45c0 - 0x45c0: 0x00659692, 0x45c1: 0x00659892, 0x45c2: 0x00659a92, 0x45c3: 0x00659c92, - 0x45c4: 0x00659e92, 0x45c5: 0x0065a092, 0x45c6: 0x0065a292, 0x45c7: 0x0065a492, - 0x45c8: 0x0065a692, 0x45c9: 0x0065a892, 0x45ca: 0x0065aa92, 0x45cb: 0x0065ac92, - 0x45cc: 0x0065ae92, 0x45cd: 0x0065b092, 0x45ce: 0x0065b292, 0x45cf: 0x0065b492, - 0x45d0: 0x0065b692, 0x45d1: 0x0065b892, 0x45d2: 0x0065ba92, 0x45d3: 0x0065bc92, - 0x45d4: 0x0065be92, 0x45d5: 0x0065c092, 0x45d6: 0x0065c492, 0x45d7: 0x0065c692, - 0x45d8: 0x0065c892, 0x45d9: 0x0065ca92, 0x45da: 0x0065cc92, 0x45db: 0x0065ce92, - 0x45dc: 0x0065d092, 0x45dd: 0x0065d892, 0x45de: 0xa0012812, 0x45df: 0xa0012912, - 0x45e0: 0x0063a692, 0x45e1: 0x0062ac92, 0x45e2: 0x0062ae92, 0x45e3: 0x00646892, - 0x45e4: 0x0062b092, 0x45e5: 0x00646c92, 0x45e6: 0x00646e92, 0x45e7: 0x0062b292, - 0x45e8: 0x0062b492, 0x45e9: 0x0062b692, 0x45ea: 0x00647492, 0x45eb: 0x00647692, - 0x45ec: 0x00647892, 0x45ed: 0x00647a92, 0x45ee: 0x00647c92, 0x45ef: 0x00647e92, - 0x45f0: 0x0062e092, 0x45f1: 0x0062b892, 0x45f2: 0x0062ba92, 0x45f3: 0x0062bc92, - 0x45f4: 0x0062ee92, 0x45f5: 0x0062be92, 0x45f6: 0x0062c092, 0x45f7: 0x0062c292, - 0x45f8: 0x0062c492, 0x45f9: 0x0062c692, 0x45fa: 0x0062c892, 0x45fb: 0x0062ca92, - 0x45fc: 0x0062cc92, 0x45fd: 0x0062ce92, 0x45fe: 0x0062d092, - // Block 0x118, offset 0x4600 - 0x4602: 0x0063a892, 0x4603: 0x0063aa92, - 0x4604: 0x0063ac92, 0x4605: 0x0063ae92, 0x4606: 0x0063b092, 0x4607: 0x0063b292, - 0x460a: 0x0063b492, 0x460b: 0x0063b692, - 0x460c: 0x0063b892, 0x460d: 0x0063ba92, 0x460e: 0x0063bc92, 0x460f: 0x0063be92, - 0x4612: 0x0063c092, 0x4613: 0x0063c292, - 0x4614: 0x0063c492, 0x4615: 0x0063c692, 0x4616: 0x0063c892, 0x4617: 0x0063ca92, - 0x461a: 0x0063cc92, 0x461b: 0x0063ce92, - 0x461c: 0x0063d092, - 0x4620: 0x0027dc83, 0x4621: 0x0027e083, 0x4622: 0x00094683, 0x4623: 0x00062683, - 0x4624: 0x00094a83, 0x4625: 0x0027e283, 0x4626: 0x00280883, - 0x4628: 0x000d3292, 0x4629: 0x00084492, 0x462a: 0x00084892, 0x462b: 0x00084692, - 0x462c: 0x00084a92, 0x462d: 0x000e6e92, 0x462e: 0x000ec492, - 0x4639: 0xa0000000, 0x463a: 0xa0000000, 0x463b: 0xa0000000, - 0x463c: 0x4027ae20, 0x463d: 0x4027b020, 0x463e: 0x00000285, 0x463f: 0x2bfffe85, - // Block 0x119, offset 0x4640 - 0x4640: 0x40731a20, 0x4641: 0x40731c20, 0x4642: 0x40731e20, 0x4643: 0x40732020, - 0x4644: 0x40732220, 0x4645: 0x40732420, 0x4646: 0x40732620, 0x4647: 0x40732820, - 0x4648: 0x40732a20, 0x4649: 0x40732c20, 0x464a: 0x40732e20, 0x464b: 0x40733020, - 0x464d: 0x40733220, 0x464e: 0x40733420, 0x464f: 0x40733620, - 0x4650: 0x40733820, 0x4651: 0x40733a20, 0x4652: 0x40733c20, 0x4653: 0x40733e20, - 0x4654: 0x40734020, 0x4655: 0x40734220, 0x4656: 0x40734420, 0x4657: 0x40734620, - 0x4658: 0x40734820, 0x4659: 0x40734a20, 0x465a: 0x40734c20, 0x465b: 0x40734e20, - 0x465c: 0x40735020, 0x465d: 0x40735220, 0x465e: 0x40735420, 0x465f: 0x40735620, - 0x4660: 0x40735820, 0x4661: 0x40735a20, 0x4662: 0x40735c20, 0x4663: 0x40735e20, - 0x4664: 0x40736020, 0x4665: 0x40736220, 0x4666: 0x40736420, - 0x4668: 0x40736620, 0x4669: 0x40736820, 0x466a: 0x40736a20, 0x466b: 0x40736c20, - 0x466c: 0x40736e20, 0x466d: 0x40737020, 0x466e: 0x40737220, 0x466f: 0x40737420, - 0x4670: 0x40737620, 0x4671: 0x40737820, 0x4672: 0x40737a20, 0x4673: 0x40737c20, - 0x4674: 0x40737e20, 0x4675: 0x40738020, 0x4676: 0x40738220, 0x4677: 0x40738420, - 0x4678: 0x40738620, 0x4679: 0x40738820, 0x467a: 0x40738a20, - 0x467c: 0x40738c20, 0x467d: 0x40738e20, 0x467f: 0x40739020, - // Block 0x11a, offset 0x4680 - 0x4680: 0x40739220, 0x4681: 0x40739420, 0x4682: 0x40739620, 0x4683: 0x40739820, - 0x4684: 0x40739a20, 0x4685: 0x40739c20, 0x4686: 0x40739e20, 0x4687: 0x4073a020, - 0x4688: 0x4073a220, 0x4689: 0x4073a420, 0x468a: 0x4073a620, 0x468b: 0x4073a820, - 0x468c: 0x4073aa20, 0x468d: 0x4073ac20, - 0x4690: 0x4073ae20, 0x4691: 0x4073b020, 0x4692: 0x4073b220, 0x4693: 0x4073b420, - 0x4694: 0x4073b620, 0x4695: 0x4073b820, 0x4696: 0x4073ba20, 0x4697: 0x4073bc20, - 0x4698: 0x4073be20, 0x4699: 0x4073c020, 0x469a: 0x4073c220, 0x469b: 0x4073c420, - 0x469c: 0x4073c620, 0x469d: 0x4073c820, - // Block 0x11b, offset 0x46c0 - 0x46c0: 0x4073ca20, 0x46c1: 0x4073cc20, 0x46c2: 0x4073ce20, 0x46c3: 0x4073d020, - 0x46c4: 0x4073d220, 0x46c5: 0x4073d420, 0x46c6: 0x4073d620, 0x46c7: 0x4073d820, - 0x46c8: 0x4073da20, 0x46c9: 0x4073dc20, 0x46ca: 0x4073de20, 0x46cb: 0x4073e020, - 0x46cc: 0x4073e220, 0x46cd: 0x4073e420, 0x46ce: 0x4073e620, 0x46cf: 0x4073e820, - 0x46d0: 0x4073ea20, 0x46d1: 0x4073ec20, 0x46d2: 0x4073ee20, 0x46d3: 0x4073f020, - 0x46d4: 0x4073f220, 0x46d5: 0x4073f420, 0x46d6: 0x4073f620, 0x46d7: 0x4073f820, - 0x46d8: 0x4073fa20, 0x46d9: 0x4073fc20, 0x46da: 0x4073fe20, 0x46db: 0x40740020, - 0x46dc: 0x40740220, 0x46dd: 0x40740420, 0x46de: 0x40740620, 0x46df: 0x40740820, - 0x46e0: 0x40740a20, 0x46e1: 0x40740c20, 0x46e2: 0x40740e20, 0x46e3: 0x40741020, - 0x46e4: 0x40741220, 0x46e5: 0x40741420, 0x46e6: 0x40741620, 0x46e7: 0x40741820, - 0x46e8: 0x40741a20, 0x46e9: 0x40741c20, 0x46ea: 0x40741e20, 0x46eb: 0x40742020, - 0x46ec: 0x40742220, 0x46ed: 0x40742420, 0x46ee: 0x40742620, 0x46ef: 0x40742820, - 0x46f0: 0x40742a20, 0x46f1: 0x40742c20, 0x46f2: 0x40742e20, 0x46f3: 0x40743020, - 0x46f4: 0x40743220, 0x46f5: 0x40743420, 0x46f6: 0x40743620, 0x46f7: 0x40743820, - 0x46f8: 0x40743a20, 0x46f9: 0x40743c20, 0x46fa: 0x40743e20, 0x46fb: 0x40744020, - 0x46fc: 0x40744220, 0x46fd: 0x40744420, 0x46fe: 0x40744620, 0x46ff: 0x40744820, - // Block 0x11c, offset 0x4700 - 0x4700: 0x40744a20, 0x4701: 0x40744c20, 0x4702: 0x40744e20, 0x4703: 0x40745020, - 0x4704: 0x40745220, 0x4705: 0x40745420, 0x4706: 0x40745620, 0x4707: 0x40745820, - 0x4708: 0x40745a20, 0x4709: 0x40745c20, 0x470a: 0x40745e20, 0x470b: 0x40746020, - 0x470c: 0x40746220, 0x470d: 0x40746420, 0x470e: 0x40746620, 0x470f: 0x40746820, - 0x4710: 0x40746a20, 0x4711: 0x40746c20, 0x4712: 0x40746e20, 0x4713: 0x40747020, - 0x4714: 0x40747220, 0x4715: 0x40747420, 0x4716: 0x40747620, 0x4717: 0x40747820, - 0x4718: 0x40747a20, 0x4719: 0x40747c20, 0x471a: 0x40747e20, 0x471b: 0x40748020, - 0x471c: 0x40748220, 0x471d: 0x40748420, 0x471e: 0x40748620, 0x471f: 0x40748820, - 0x4720: 0x40748a20, 0x4721: 0x40748c20, 0x4722: 0x40748e20, 0x4723: 0x40749020, - 0x4724: 0x40749220, 0x4725: 0x40749420, 0x4726: 0x40749620, 0x4727: 0x40749820, - 0x4728: 0x40749a20, 0x4729: 0x40749c20, 0x472a: 0x40749e20, 0x472b: 0x4074a020, - 0x472c: 0x4074a220, 0x472d: 0x4074a420, 0x472e: 0x4074a620, 0x472f: 0x4074a820, - 0x4730: 0x4074aa20, 0x4731: 0x4074ac20, 0x4732: 0x4074ae20, 0x4733: 0x4074b020, - 0x4734: 0x4074b220, 0x4735: 0x4074b420, 0x4736: 0x4074b620, 0x4737: 0x4074b820, - 0x4738: 0x4074ba20, 0x4739: 0x4074bc20, 0x473a: 0x4074be20, - // Block 0x11d, offset 0x4740 - 0x4740: 0x4003be20, 0x4741: 0x4003c020, 0x4742: 0x4003c220, - 0x4747: 0xe000026a, - 0x4748: 0xe0000382, 0x4749: 0xe000045c, 0x474a: 0xe0000531, 0x474b: 0xe00005fb, - 0x474c: 0xe00006c6, 0x474d: 0xe000076e, 0x474e: 0xe000081a, 0x474f: 0xe00008bf, - 0x4750: 0x4028ba20, 0x4751: 0x4028bc20, 0x4752: 0x4028be20, 0x4753: 0x4028c020, - 0x4754: 0x4028c220, 0x4755: 0x4028c420, 0x4756: 0x4028c620, 0x4757: 0x4028c820, - 0x4758: 0x4028ca20, 0x4759: 0x4028cc20, 0x475a: 0x4028ce20, 0x475b: 0x4028d020, - 0x475c: 0x4028d220, 0x475d: 0x4028d420, 0x475e: 0x4028d620, 0x475f: 0x4028d820, - 0x4760: 0x4028da20, 0x4761: 0x4028dc20, 0x4762: 0x4028de20, 0x4763: 0x4028e020, - 0x4764: 0x4028e220, 0x4765: 0x4028e420, 0x4766: 0x4028e620, 0x4767: 0x4028e820, - 0x4768: 0x4028ea20, 0x4769: 0x4028ec20, 0x476a: 0x4028ee20, 0x476b: 0x4028f020, - 0x476c: 0x4028f220, 0x476d: 0x4028f420, 0x476e: 0x4028f620, 0x476f: 0x4028f820, - 0x4770: 0x4028fa20, 0x4771: 0x4028fc20, 0x4772: 0x4028fe20, 0x4773: 0x40290020, - 0x4777: 0x401afe20, - 0x4778: 0x401b0020, 0x4779: 0x401b0220, 0x477a: 0x401b0420, 0x477b: 0x401b0620, - 0x477c: 0x401b0820, 0x477d: 0x401b0a20, 0x477e: 0x401b0c20, 0x477f: 0x401b0e20, - // Block 0x11e, offset 0x4780 - 0x4780: 0x40290220, 0x4781: 0x40290420, 0x4782: 0xe000026d, 0x4783: 0xe00005fe, - 0x4784: 0x40290620, 0x4785: 0x40290820, 0x4786: 0x40290a20, 0x4787: 0x40290c20, - 0x4788: 0xe0000601, 0x4789: 0x40290e20, 0x478a: 0x40291020, 0x478b: 0x40291220, - 0x478c: 0x40291420, 0x478d: 0x40291620, 0x478e: 0x40291820, 0x478f: 0xe0000604, - 0x4790: 0x40291a20, 0x4791: 0x40291c20, 0x4792: 0x40291e20, 0x4793: 0x40292020, - 0x4794: 0x40292220, 0x4795: 0x40292420, 0x4796: 0x40292620, 0x4797: 0x40292820, - 0x4798: 0xe0000270, 0x4799: 0xe0000273, 0x479a: 0xe0000276, 0x479b: 0xe0000385, - 0x479c: 0xe0000388, 0x479d: 0xe000038b, 0x479e: 0xe000038e, 0x479f: 0xe0000607, - 0x47a0: 0x40292a20, 0x47a1: 0x40292c20, 0x47a2: 0x40292e20, 0x47a3: 0x40293020, - 0x47a4: 0x40293220, 0x47a5: 0x40293420, 0x47a6: 0x40293620, 0x47a7: 0x40293820, - 0x47a8: 0x40293a20, 0x47a9: 0x40293c20, 0x47aa: 0x40293e20, 0x47ab: 0x40294020, - 0x47ac: 0x40294220, 0x47ad: 0x40294420, 0x47ae: 0x40294620, 0x47af: 0x40294820, - 0x47b0: 0x40294a20, 0x47b1: 0x40294c20, 0x47b2: 0x40294e20, 0x47b3: 0xe000060a, - 0x47b4: 0x40295020, 0x47b5: 0x40295220, 0x47b6: 0x40295420, 0x47b7: 0x40295620, - 0x47b8: 0x40295820, 0x47b9: 0x401b1020, 0x47ba: 0x401b1220, 0x47bb: 0x401b1420, - 0x47bc: 0x401b1620, 0x47bd: 0x401b1820, 0x47be: 0x401b1a20, 0x47bf: 0x401b1c20, - // Block 0x11f, offset 0x47c0 - 0x47c0: 0x401b1e20, 0x47c1: 0x401b2020, 0x47c2: 0x401b2220, 0x47c3: 0x401b2420, - 0x47c4: 0x401b2620, 0x47c5: 0x401b2820, 0x47c6: 0x401b2a20, 0x47c7: 0x401b2c20, - 0x47c8: 0x401b2e20, 0x47c9: 0x401b3020, 0x47ca: 0xe00001d6, - 0x47d0: 0x401b3220, 0x47d1: 0x401b3420, 0x47d2: 0x401b3620, 0x47d3: 0x401b3820, - 0x47d4: 0x401b3a20, 0x47d5: 0x401b3c20, 0x47d6: 0x401b3e20, 0x47d7: 0x401b4020, - 0x47d8: 0x401b4220, 0x47d9: 0x401b4420, 0x47da: 0x401b4620, 0x47db: 0x401b4820, - // Block 0x120, offset 0x4800 - 0x4810: 0x401b4a20, 0x4811: 0x401b4c20, 0x4812: 0x401b4e20, 0x4813: 0x401b5020, - 0x4814: 0x401b5220, 0x4815: 0x401b5420, 0x4816: 0x401b5620, 0x4817: 0x401b5820, - 0x4818: 0x401b5a20, 0x4819: 0x401b5c20, 0x481a: 0x401b5e20, 0x481b: 0x401b6020, - 0x481c: 0x401b6220, 0x481d: 0x401b6420, 0x481e: 0x401b6620, 0x481f: 0x401b6820, - 0x4820: 0x401b6a20, 0x4821: 0x401b6c20, 0x4822: 0x401b6e20, 0x4823: 0x401b7020, - 0x4824: 0x401b7220, 0x4825: 0x401b7420, 0x4826: 0x401b7620, 0x4827: 0x401b7820, - 0x4828: 0x401b7a20, 0x4829: 0x401b7c20, 0x482a: 0x401b7e20, 0x482b: 0x401b8020, - 0x482c: 0x401b8220, 0x482d: 0x401b8420, 0x482e: 0x401b8620, 0x482f: 0x401b8820, - 0x4830: 0x401b8a20, 0x4831: 0x401b8c20, 0x4832: 0x401b8e20, 0x4833: 0x401b9020, - 0x4834: 0x401b9220, 0x4835: 0x401b9420, 0x4836: 0x401b9620, 0x4837: 0x401b9820, - 0x4838: 0x401b9a20, 0x4839: 0x401b9c20, 0x483a: 0x401b9e20, 0x483b: 0x401ba020, - 0x483c: 0x401ba220, 0x483d: 0xadc13802, - // Block 0x121, offset 0x4840 - 0x4840: 0x4070b820, 0x4841: 0x4070ba20, 0x4842: 0x4070bc20, 0x4843: 0x4070be20, - 0x4844: 0x4070c020, 0x4845: 0x4070c220, 0x4846: 0x4070c420, 0x4847: 0x4070c620, - 0x4848: 0x4070c820, 0x4849: 0x4070ca20, 0x484a: 0x4070cc20, 0x484b: 0x4070ce20, - 0x484c: 0x4070d020, 0x484d: 0x4070d220, 0x484e: 0x4070d420, 0x484f: 0x4070d620, - 0x4850: 0x4070d820, 0x4851: 0x4070da20, 0x4852: 0x4070dc20, 0x4853: 0x4070de20, - 0x4854: 0x4070e020, 0x4855: 0x4070e220, 0x4856: 0x4070e420, 0x4857: 0x4070e620, - 0x4858: 0x4070e820, 0x4859: 0x4070ea20, 0x485a: 0x4070ec20, 0x485b: 0x4070ee20, - 0x485c: 0x4070f020, - 0x4860: 0x4070f220, 0x4861: 0x4070f420, 0x4862: 0x4070f620, 0x4863: 0x4070f820, - 0x4864: 0x4070fa20, 0x4865: 0x4070fc20, 0x4866: 0x4070fe20, 0x4867: 0x40710020, - 0x4868: 0x40710220, 0x4869: 0x40710420, 0x486a: 0x40710620, 0x486b: 0x40710820, - 0x486c: 0x40710a20, 0x486d: 0x40710c20, 0x486e: 0x40710e20, 0x486f: 0x40711020, - 0x4870: 0x40711220, 0x4871: 0x40711420, 0x4872: 0x40711620, 0x4873: 0x40711820, - 0x4874: 0x40711a20, 0x4875: 0x40711c20, 0x4876: 0x40711e20, 0x4877: 0x40712020, - 0x4878: 0x40712220, 0x4879: 0x40712420, 0x487a: 0x40712620, 0x487b: 0x40712820, - 0x487c: 0x40712a20, 0x487d: 0x40712c20, 0x487e: 0x40712e20, 0x487f: 0x40713020, - // Block 0x122, offset 0x4880 - 0x4880: 0x40713220, 0x4881: 0x40713420, 0x4882: 0x40713620, 0x4883: 0x40713820, - 0x4884: 0x40713a20, 0x4885: 0x40713c20, 0x4886: 0x40713e20, 0x4887: 0x40714020, - 0x4888: 0x40714220, 0x4889: 0x40714420, 0x488a: 0x40714620, 0x488b: 0x40714820, - 0x488c: 0x40714a20, 0x488d: 0x40714c20, 0x488e: 0x40714e20, 0x488f: 0x40715020, - 0x4890: 0x40715220, - // Block 0x123, offset 0x48c0 - 0x48c0: 0x40718820, 0x48c1: 0x40718a20, 0x48c2: 0x40718c20, 0x48c3: 0x40718e20, - 0x48c4: 0x40719020, 0x48c5: 0x40719220, 0x48c6: 0x40719420, 0x48c7: 0x40719620, - 0x48c8: 0x40719820, 0x48c9: 0x40719a20, 0x48ca: 0x40719c20, 0x48cb: 0x40719e20, - 0x48cc: 0x4071a020, 0x48cd: 0x4071a220, 0x48ce: 0x4071a420, 0x48cf: 0x4071a620, - 0x48d0: 0x4071a820, 0x48d1: 0x4071aa20, 0x48d2: 0x4071ac20, 0x48d3: 0x4071ae20, - 0x48d4: 0x4071b020, 0x48d5: 0x4071b220, 0x48d6: 0x4071b420, 0x48d7: 0x4071b620, - 0x48d8: 0x4071b820, 0x48d9: 0x4071ba20, 0x48da: 0x4071bc20, 0x48db: 0x4071be20, - 0x48dc: 0x4071c020, 0x48dd: 0x4071c220, 0x48de: 0x4071c420, - 0x48e0: 0xe0000279, 0x48e1: 0xe000060d, 0x48e2: 0x4028b620, 0x48e3: 0x4028b820, - 0x48f0: 0x4071c620, 0x48f1: 0x4071c820, 0x48f2: 0x4071ca20, 0x48f3: 0x4071cc20, - 0x48f4: 0x4071ce20, 0x48f5: 0x4071d020, 0x48f6: 0x4071d220, 0x48f7: 0x4071d420, - 0x48f8: 0x4071d620, 0x48f9: 0x4071d820, 0x48fa: 0x4071da20, 0x48fb: 0x4071dc20, - 0x48fc: 0x4071de20, 0x48fd: 0x4071e020, 0x48fe: 0x4071e220, 0x48ff: 0x4071e420, - // Block 0x124, offset 0x4900 - 0x4900: 0x4071e620, 0x4901: 0x4071e820, 0x4902: 0x4071ea20, 0x4903: 0x4071ec20, - 0x4904: 0x4071ee20, 0x4905: 0x4071f020, 0x4906: 0x4071f220, 0x4907: 0x4071f420, - 0x4908: 0x4071f620, 0x4909: 0x4071f820, 0x490a: 0x4071fa20, - // Block 0x125, offset 0x4940 - 0x4940: 0x40765020, 0x4941: 0x40765220, 0x4942: 0x40765420, 0x4943: 0x40765620, - 0x4944: 0x40765820, 0x4945: 0x40765a20, 0x4946: 0x40765c20, 0x4947: 0x40765e20, - 0x4948: 0x40766020, 0x4949: 0x40766220, 0x494a: 0x40766420, 0x494b: 0x40766620, - 0x494c: 0x40766820, 0x494d: 0x40766a20, 0x494e: 0x40766c20, 0x494f: 0x40766e20, - 0x4950: 0x40767020, 0x4951: 0x40767220, 0x4952: 0x40767420, 0x4953: 0x40767620, - 0x4954: 0x40767820, 0x4955: 0x40767a20, 0x4956: 0x40767c20, 0x4957: 0x40767e20, - 0x4958: 0x40768020, 0x4959: 0x40768220, 0x495a: 0x40768420, 0x495b: 0x40768620, - 0x495c: 0x40768820, 0x495d: 0x40768a20, 0x495f: 0x4003c420, - 0x4960: 0x40768c20, 0x4961: 0x40768e20, 0x4962: 0x40769020, 0x4963: 0x40769220, - 0x4964: 0x40769420, 0x4965: 0x40769620, 0x4966: 0x40769820, 0x4967: 0x40769a20, - 0x4968: 0x40769c20, 0x4969: 0x40769e20, 0x496a: 0x4076a020, 0x496b: 0x4076a220, - 0x496c: 0x4076a420, 0x496d: 0x4076a620, 0x496e: 0x4076a820, 0x496f: 0x4076aa20, - 0x4970: 0x4076ac20, 0x4971: 0x4076ae20, 0x4972: 0x4076b020, 0x4973: 0x4076b220, - 0x4974: 0x4076b420, 0x4975: 0x4076b620, 0x4976: 0x4076b820, 0x4977: 0x4076ba20, - 0x4978: 0x4076bc20, 0x4979: 0x4076be20, 0x497a: 0x4076c020, 0x497b: 0x4076c220, - 0x497c: 0x4076c420, 0x497d: 0x4076c620, 0x497e: 0x4076c820, 0x497f: 0x4076ca20, - // Block 0x126, offset 0x4980 - 0x4980: 0x4076cc20, 0x4981: 0x4076ce20, 0x4982: 0x4076d020, 0x4983: 0x4076d220, - 0x4988: 0x4076d420, 0x4989: 0x4076d620, 0x498a: 0x4076d820, 0x498b: 0x4076da20, - 0x498c: 0x4076dc20, 0x498d: 0x4076de20, 0x498e: 0x4076e020, 0x498f: 0x4076e220, - 0x4990: 0x4003c620, 0x4991: 0xe000027c, 0x4992: 0xe0000391, 0x4993: 0x40295a20, - 0x4994: 0x40295c20, 0x4995: 0x40295e20, - // Block 0x127, offset 0x49c0 - 0x49c0: 0x0071fc88, 0x49c1: 0x0071fe88, 0x49c2: 0x00720088, 0x49c3: 0x00720288, - 0x49c4: 0x00720488, 0x49c5: 0x00720688, 0x49c6: 0x00720888, 0x49c7: 0x00720a88, - 0x49c8: 0x00720c88, 0x49c9: 0x00720e88, 0x49ca: 0x00721088, 0x49cb: 0x00721288, - 0x49cc: 0x00721488, 0x49cd: 0x00721688, 0x49ce: 0x00721888, 0x49cf: 0x00721a88, - 0x49d0: 0x00721c88, 0x49d1: 0x00721e88, 0x49d2: 0x00722088, 0x49d3: 0x00722288, - 0x49d4: 0x00722488, 0x49d5: 0x00722688, 0x49d6: 0x00722888, 0x49d7: 0x00722a88, - 0x49d8: 0x00722c88, 0x49d9: 0x00722e88, 0x49da: 0x00723088, 0x49db: 0x00723288, - 0x49dc: 0x00723488, 0x49dd: 0x00723688, 0x49de: 0x00723888, 0x49df: 0x00723a88, - 0x49e0: 0x00723c88, 0x49e1: 0x00723e88, 0x49e2: 0x00724088, 0x49e3: 0x00724288, - 0x49e4: 0x00724488, 0x49e5: 0x00724688, 0x49e6: 0x00724888, 0x49e7: 0x00724a88, - 0x49e8: 0x4071fc20, 0x49e9: 0x4071fe20, 0x49ea: 0x40720020, 0x49eb: 0x40720220, - 0x49ec: 0x40720420, 0x49ed: 0x40720620, 0x49ee: 0x40720820, 0x49ef: 0x40720a20, - 0x49f0: 0x40720c20, 0x49f1: 0x40720e20, 0x49f2: 0x40721020, 0x49f3: 0x40721220, - 0x49f4: 0x40721420, 0x49f5: 0x40721620, 0x49f6: 0x40721820, 0x49f7: 0x40721a20, - 0x49f8: 0x40721c20, 0x49f9: 0x40721e20, 0x49fa: 0x40722020, 0x49fb: 0x40722220, - 0x49fc: 0x40722420, 0x49fd: 0x40722620, 0x49fe: 0x40722820, 0x49ff: 0x40722a20, - // Block 0x128, offset 0x4a00 - 0x4a00: 0x40722c20, 0x4a01: 0x40722e20, 0x4a02: 0x40723020, 0x4a03: 0x40723220, - 0x4a04: 0x40723420, 0x4a05: 0x40723620, 0x4a06: 0x40723820, 0x4a07: 0x40723a20, - 0x4a08: 0x40723c20, 0x4a09: 0x40723e20, 0x4a0a: 0x40724020, 0x4a0b: 0x40724220, - 0x4a0c: 0x40724420, 0x4a0d: 0x40724620, 0x4a0e: 0x40724820, 0x4a0f: 0x40724a20, - 0x4a10: 0x40724c20, 0x4a11: 0x40724e20, 0x4a12: 0x40725020, 0x4a13: 0x40725220, - 0x4a14: 0x40725420, 0x4a15: 0x40725620, 0x4a16: 0x40725820, 0x4a17: 0x40725a20, - 0x4a18: 0x40725c20, 0x4a19: 0x40725e20, 0x4a1a: 0x40726020, 0x4a1b: 0x40726220, - 0x4a1c: 0x40726420, 0x4a1d: 0x40726620, 0x4a1e: 0x40726820, 0x4a1f: 0x40726a20, - 0x4a20: 0x40726c20, 0x4a21: 0x40726e20, 0x4a22: 0x40727020, 0x4a23: 0x40727220, - 0x4a24: 0x40727420, 0x4a25: 0x40727620, 0x4a26: 0x40727820, 0x4a27: 0x40727a20, - 0x4a28: 0x40727c20, 0x4a29: 0x40727e20, 0x4a2a: 0x40728020, 0x4a2b: 0x40728220, - 0x4a2c: 0x40728420, 0x4a2d: 0x40728620, 0x4a2e: 0x40728820, 0x4a2f: 0x40728a20, - 0x4a30: 0x40728c20, 0x4a31: 0x40728e20, 0x4a32: 0x40729020, 0x4a33: 0x40729220, - 0x4a34: 0x40729420, 0x4a35: 0x40729620, 0x4a36: 0x40729820, 0x4a37: 0x40729a20, - 0x4a38: 0x40729c20, 0x4a39: 0x40729e20, 0x4a3a: 0x4072a020, 0x4a3b: 0x4072a220, - 0x4a3c: 0x4072a420, 0x4a3d: 0x4072a620, 0x4a3e: 0x4072a820, 0x4a3f: 0x4072aa20, - // Block 0x129, offset 0x4a40 - 0x4a40: 0x4072ac20, 0x4a41: 0x4072ae20, 0x4a42: 0x4072b020, 0x4a43: 0x4072b220, - 0x4a44: 0x4072b420, 0x4a45: 0x4072b620, 0x4a46: 0x4072b820, 0x4a47: 0x4072ba20, - 0x4a48: 0x4072bc20, 0x4a49: 0x4072be20, 0x4a4a: 0x4072c020, 0x4a4b: 0x4072c220, - 0x4a4c: 0x4072c420, 0x4a4d: 0x4072c620, 0x4a4e: 0x4072c820, 0x4a4f: 0x4072ca20, - 0x4a50: 0x4072cc20, 0x4a51: 0x4072ce20, 0x4a52: 0x4072d020, 0x4a53: 0x4072d220, - 0x4a54: 0x4072d420, 0x4a55: 0x4072d620, 0x4a56: 0x4072d820, 0x4a57: 0x4072da20, - 0x4a58: 0x4072dc20, 0x4a59: 0x4072de20, 0x4a5a: 0x4072e020, 0x4a5b: 0x4072e220, - 0x4a5c: 0x4072e420, 0x4a5d: 0x4072e620, - 0x4a60: 0xe0000167, 0x4a61: 0xe00001f5, 0x4a62: 0xe0000310, 0x4a63: 0xe00003ea, - 0x4a64: 0xe00004c5, 0x4a65: 0xe000058f, 0x4a66: 0xe000065a, 0x4a67: 0xe0000702, - 0x4a68: 0xe00007ae, 0x4a69: 0xe0000853, - // Block 0x12a, offset 0x4a80 - 0x4a80: 0x4074c020, 0x4a81: 0x4074c220, 0x4a82: 0x4074c420, 0x4a83: 0x4074c620, - 0x4a84: 0x4074c820, 0x4a85: 0x4074ca20, - 0x4a88: 0x4074cc20, 0x4a8a: 0x4074ce20, 0x4a8b: 0x4074d020, - 0x4a8c: 0x4074d220, 0x4a8d: 0x4074d420, 0x4a8e: 0x4074d620, 0x4a8f: 0x4074d820, - 0x4a90: 0x4074da20, 0x4a91: 0x4074dc20, 0x4a92: 0x4074de20, 0x4a93: 0x4074e020, - 0x4a94: 0x4074e220, 0x4a95: 0x4074e420, 0x4a96: 0x4074e620, 0x4a97: 0x4074e820, - 0x4a98: 0x4074ea20, 0x4a99: 0x4074ec20, 0x4a9a: 0x4074ee20, 0x4a9b: 0x4074f020, - 0x4a9c: 0x4074f220, 0x4a9d: 0x4074f420, 0x4a9e: 0x4074f620, 0x4a9f: 0x4074f820, - 0x4aa0: 0x4074fa20, 0x4aa1: 0x4074fc20, 0x4aa2: 0x4074fe20, 0x4aa3: 0x40750020, - 0x4aa4: 0x40750220, 0x4aa5: 0x40750420, 0x4aa6: 0x40750620, 0x4aa7: 0x40750820, - 0x4aa8: 0x40750a20, 0x4aa9: 0x40750c20, 0x4aaa: 0x40750e20, 0x4aab: 0x40751020, - 0x4aac: 0x40751220, 0x4aad: 0x40751420, 0x4aae: 0x40751620, 0x4aaf: 0x40751820, - 0x4ab0: 0x40751a20, 0x4ab1: 0x40751c20, 0x4ab2: 0x40751e20, 0x4ab3: 0x40752020, - 0x4ab4: 0x40752220, 0x4ab5: 0x40752420, 0x4ab7: 0x40752620, - 0x4ab8: 0x40752820, - 0x4abc: 0x40752a20, 0x4abf: 0x40752c20, - // Block 0x12b, offset 0x4ac0 - 0x4ac0: 0x4075d220, 0x4ac1: 0x4075d420, 0x4ac2: 0x4075d620, 0x4ac3: 0x4075d820, - 0x4ac4: 0x4075da20, 0x4ac5: 0x4075dc20, 0x4ac6: 0x4075de20, 0x4ac7: 0x4075e020, - 0x4ac8: 0x4075e220, 0x4ac9: 0x4075e420, 0x4aca: 0x4075e620, 0x4acb: 0x4075e820, - 0x4acc: 0x4075ea20, 0x4acd: 0x4075ec20, 0x4ace: 0x4075ee20, 0x4acf: 0x4075f020, - 0x4ad0: 0x4075f220, 0x4ad1: 0x4075f420, 0x4ad2: 0x4075f620, 0x4ad3: 0x4075f820, - 0x4ad4: 0x4075fa20, 0x4ad5: 0x4075fc20, 0x4ad7: 0x40038620, - 0x4ad8: 0xe0000297, 0x4ad9: 0xe00003b2, 0x4ada: 0xe000048c, 0x4adb: 0x40296820, - 0x4adc: 0x40296a20, 0x4add: 0x40296c20, 0x4ade: 0x40296e20, 0x4adf: 0x40297020, - // Block 0x12c, offset 0x4b00 - 0x4b00: 0x4038bc20, 0x4b01: 0x4038be20, 0x4b02: 0x4038c020, 0x4b03: 0x4038c220, - 0x4b04: 0x4038c420, 0x4b05: 0x4038c620, 0x4b06: 0x4038c820, 0x4b07: 0x4038ca20, - 0x4b08: 0x4038cc20, 0x4b09: 0x4038ce20, 0x4b0a: 0x4038d020, 0x4b0b: 0x4038d220, - 0x4b0c: 0x4038d420, 0x4b0d: 0x4038d620, 0x4b0e: 0x4038d820, 0x4b0f: 0x4038da20, - 0x4b10: 0x4038dc20, 0x4b11: 0x4038de20, 0x4b12: 0x4038e020, 0x4b13: 0x4038e220, - 0x4b14: 0x4038e420, 0x4b15: 0x4038e620, 0x4b16: 0xe0000294, 0x4b17: 0x40296220, - 0x4b18: 0x40296420, 0x4b19: 0x40296620, 0x4b1a: 0xe00003af, 0x4b1b: 0xe0000489, - 0x4b1f: 0x4003c820, - 0x4b20: 0x40715420, 0x4b21: 0x40715620, 0x4b22: 0x40715820, 0x4b23: 0x40715a20, - 0x4b24: 0x40715c20, 0x4b25: 0x40715e20, 0x4b26: 0x40716020, 0x4b27: 0x40716220, - 0x4b28: 0x40716420, 0x4b29: 0x40716620, 0x4b2a: 0x40716820, 0x4b2b: 0x40716a20, - 0x4b2c: 0x40716c20, 0x4b2d: 0x40716e20, 0x4b2e: 0x40717020, 0x4b2f: 0x40717220, - 0x4b30: 0x40717420, 0x4b31: 0x40717620, 0x4b32: 0x40717820, 0x4b33: 0x40717a20, - 0x4b34: 0x40717c20, 0x4b35: 0x40717e20, 0x4b36: 0x40718020, 0x4b37: 0x40718220, - 0x4b38: 0x40718420, 0x4b39: 0x40718620, - 0x4b3f: 0x4003bc20, - // Block 0x12d, offset 0x4b40 - 0x4b40: 0xe00023a4, 0x4b41: 0xe00023a7, 0x4b42: 0xe00023aa, 0x4b43: 0xe00023ad, - 0x4b44: 0xe00023b0, 0x4b45: 0xe00023b3, 0x4b46: 0xe00023b6, 0x4b47: 0xe00023b9, - 0x4b48: 0xe00023bc, 0x4b49: 0xe00023bf, 0x4b4a: 0xe00023c2, 0x4b4b: 0xe00023c5, - 0x4b4c: 0xe00023c8, 0x4b4d: 0xe00023cb, 0x4b4e: 0xe00023ce, 0x4b4f: 0xe00023d1, - 0x4b50: 0xe00023d4, 0x4b51: 0xe00023d7, 0x4b52: 0xe00023da, 0x4b53: 0xe00023e0, - 0x4b54: 0xe00023e3, 0x4b55: 0xe00023e6, 0x4b56: 0xe00023e9, 0x4b57: 0xe00023ec, - 0x4b58: 0xe00023ef, 0x4b59: 0xe00023f2, 0x4b5a: 0xe00023f5, 0x4b5b: 0xe00023f8, - 0x4b5c: 0xe00023fb, 0x4b5d: 0xe00023fe, 0x4b5e: 0x40865220, 0x4b5f: 0x40865420, - 0x4b60: 0x40862020, 0x4b61: 0x40862220, 0x4b62: 0x40862420, 0x4b63: 0x40862620, - 0x4b64: 0x40862820, 0x4b65: 0x40862a20, 0x4b66: 0x40862c20, 0x4b67: 0x40862e20, - 0x4b68: 0x40863020, 0x4b69: 0x40863220, 0x4b6a: 0x40863420, 0x4b6b: 0x40863620, - 0x4b6c: 0x40863820, 0x4b6d: 0x40863a20, 0x4b6e: 0x40863c20, 0x4b6f: 0x40863e20, - 0x4b70: 0xe00023dd, 0x4b71: 0x40864020, 0x4b72: 0x40864220, 0x4b73: 0x40864420, - 0x4b74: 0x40864620, 0x4b75: 0x40864820, 0x4b76: 0x40864a20, 0x4b77: 0x40864c20, - 0x4b7e: 0x40864e20, 0x4b7f: 0x40865020, - // Block 0x12e, offset 0x4b80 - 0x4b80: 0x4048bc20, 0x4b81: 0x4048be20, 0x4b82: 0x4048c020, 0x4b83: 0x4048c220, - 0x4b85: 0x4048c420, 0x4b86: 0x4048c620, - 0x4b8c: 0x4048c820, 0x4b8d: 0xadc06002, 0x4b8e: 0xa000f302, 0x4b8f: 0xae60f402, - 0x4b90: 0x4048ca20, 0x4b91: 0x4048cc20, 0x4b92: 0x4048ce20, 0x4b93: 0x4048d020, - 0x4b95: 0x4048d220, 0x4b96: 0x4048d420, 0x4b97: 0x4048d620, - 0x4b99: 0x4048d820, 0x4b9a: 0x4048da20, 0x4b9b: 0x4048dc20, - 0x4b9c: 0x4048de20, 0x4b9d: 0x4048e020, 0x4b9e: 0x4048e220, 0x4b9f: 0x4048e420, - 0x4ba0: 0x4048e620, 0x4ba1: 0x4048e820, 0x4ba2: 0x4048ea20, 0x4ba3: 0x4048ec20, - 0x4ba4: 0x4048ee20, 0x4ba5: 0x4048f020, 0x4ba6: 0x4048f220, 0x4ba7: 0x4048f420, - 0x4ba8: 0x4048f620, 0x4ba9: 0x4048f820, 0x4baa: 0x4048fa20, 0x4bab: 0x4048fc20, - 0x4bac: 0x4048fe20, 0x4bad: 0x40490020, 0x4bae: 0x40490220, 0x4baf: 0x40490420, - 0x4bb0: 0x40490620, 0x4bb1: 0x40490820, 0x4bb2: 0x40490a20, 0x4bb3: 0x40490c20, - 0x4bb8: 0xae60fb02, 0x4bb9: 0xa010fc02, 0x4bba: 0xadc0fd02, - 0x4bbf: 0x82092487, - // Block 0x12f, offset 0x4bc0 - 0x4bc0: 0xe00002ac, 0x4bc1: 0xe00003c7, 0x4bc2: 0xe00004a1, 0x4bc3: 0xe0000573, - 0x4bc4: 0x40299820, 0x4bc5: 0x40299a20, 0x4bc6: 0x40299c20, 0x4bc7: 0x40299e20, - 0x4bd0: 0x40060620, 0x4bd1: 0x40060820, 0x4bd2: 0x40060a20, 0x4bd3: 0x40060c20, - 0x4bd4: 0x40060e20, 0x4bd5: 0x40061020, 0x4bd6: 0x40034420, 0x4bd7: 0x40034620, - 0x4bd8: 0x40061220, - 0x4be0: 0x40752e20, 0x4be1: 0x40753020, 0x4be2: 0x40753220, 0x4be3: 0x40753420, - 0x4be4: 0x40753620, 0x4be5: 0x40753820, 0x4be6: 0x40753a20, 0x4be7: 0x40753c20, - 0x4be8: 0x40753e20, 0x4be9: 0x40754020, 0x4bea: 0x40754220, 0x4beb: 0x40754420, - 0x4bec: 0x40754620, 0x4bed: 0x40754820, 0x4bee: 0x40754a20, 0x4bef: 0x40754c20, - 0x4bf0: 0x40754e20, 0x4bf1: 0x40755020, 0x4bf2: 0x40755220, 0x4bf3: 0x40755420, - 0x4bf4: 0x40755620, 0x4bf5: 0x40755820, 0x4bf6: 0x40755a20, 0x4bf7: 0x40755c20, - 0x4bf8: 0x40755e20, 0x4bf9: 0x40756020, 0x4bfa: 0x40756220, 0x4bfb: 0x40756420, - 0x4bfc: 0x40756620, 0x4bfd: 0xe0000291, 0x4bfe: 0x40296020, 0x4bff: 0x40061c20, - // Block 0x130, offset 0x4c00 - 0x4c00: 0x40756820, 0x4c01: 0x40756a20, 0x4c02: 0x40756c20, 0x4c03: 0x40756e20, - 0x4c04: 0x40757020, 0x4c05: 0x40757220, 0x4c06: 0x40757420, 0x4c07: 0x40757620, - 0x4c08: 0x40757820, 0x4c09: 0x40757a20, 0x4c0a: 0x40757c20, 0x4c0b: 0x40757e20, - 0x4c0c: 0x40758020, 0x4c0d: 0x40758220, 0x4c0e: 0x40758420, 0x4c0f: 0x40758620, - 0x4c10: 0x40758820, 0x4c11: 0x40758a20, 0x4c12: 0x40758c20, 0x4c13: 0x40758e20, - 0x4c14: 0x40759020, 0x4c15: 0x40759220, 0x4c16: 0x40759420, 0x4c17: 0x40759620, - 0x4c18: 0x40759820, 0x4c19: 0x40759a20, 0x4c1a: 0x40759c20, 0x4c1b: 0x40759e20, - 0x4c1c: 0x4075a020, 0x4c1d: 0x4075a220, 0x4c1e: 0x4075a420, 0x4c1f: 0x4075a620, - 0x4c20: 0x4075a820, 0x4c21: 0x4075aa20, 0x4c22: 0x4075ac20, 0x4c23: 0x4075ae20, - 0x4c24: 0x4075b020, 0x4c25: 0x4075b220, 0x4c26: 0x4075b420, 0x4c27: 0x4075b620, - 0x4c28: 0x4075b820, 0x4c29: 0x4075ba20, 0x4c2a: 0x4075bc20, 0x4c2b: 0x4075be20, - 0x4c2c: 0x4075c020, 0x4c2d: 0x4075c220, 0x4c2e: 0xe00023a1, 0x4c2f: 0x4075c420, - 0x4c30: 0x4075c620, 0x4c31: 0x4075c820, 0x4c32: 0x4075ca20, 0x4c33: 0x4075cc20, - 0x4c34: 0x4075ce20, 0x4c35: 0x4075d020, - 0x4c39: 0x40061420, 0x4c3a: 0x40038820, 0x4c3b: 0x40038a20, - 0x4c3c: 0x40038c20, 0x4c3d: 0x40038e20, 0x4c3e: 0x40039020, 0x4c3f: 0x40039220, - // Block 0x131, offset 0x4c40 - 0x4c40: 0x4075fe20, 0x4c41: 0x40760020, 0x4c42: 0x40760220, 0x4c43: 0x40760420, - 0x4c44: 0x40760620, 0x4c45: 0x40760820, 0x4c46: 0x40760a20, 0x4c47: 0x40760c20, - 0x4c48: 0x40760e20, 0x4c49: 0x40761020, 0x4c4a: 0x40761220, 0x4c4b: 0x40761420, - 0x4c4c: 0x40761620, 0x4c4d: 0x40761820, 0x4c4e: 0x40761a20, 0x4c4f: 0x40761c20, - 0x4c50: 0x40761e20, 0x4c51: 0x40762020, 0x4c52: 0x40762220, 0x4c53: 0x40762420, - 0x4c54: 0x40762620, 0x4c55: 0x40762820, - 0x4c58: 0xe000029a, 0x4c59: 0xe00003b5, 0x4c5a: 0xe000048f, 0x4c5b: 0xe0000561, - 0x4c5c: 0x40297220, 0x4c5d: 0x40297420, 0x4c5e: 0x40297620, 0x4c5f: 0x40297820, - 0x4c60: 0x40762a20, 0x4c61: 0x40762c20, 0x4c62: 0x40762e20, 0x4c63: 0x40763020, - 0x4c64: 0x40763220, 0x4c65: 0x40763420, 0x4c66: 0x40763620, 0x4c67: 0x40763820, - 0x4c68: 0x40763a20, 0x4c69: 0x40763c20, 0x4c6a: 0x40763e20, 0x4c6b: 0x40764020, - 0x4c6c: 0x40764220, 0x4c6d: 0x40764420, 0x4c6e: 0x40764620, 0x4c6f: 0x40764820, - 0x4c70: 0x40764a20, 0x4c71: 0x40764c20, 0x4c72: 0x40764e20, - 0x4c78: 0xe000029d, 0x4c79: 0xe00003b8, 0x4c7a: 0xe0000492, 0x4c7b: 0xe0000564, - 0x4c7c: 0x40297a20, 0x4c7d: 0x40297c20, 0x4c7e: 0x40297e20, 0x4c7f: 0x40298020, - // Block 0x132, offset 0x4c80 - 0x4c80: 0x405b2620, 0x4c81: 0xe00020a7, 0x4c82: 0x405b2820, 0x4c83: 0x405b2a20, - 0x4c84: 0xe00020aa, 0x4c85: 0x405b2c20, 0x4c86: 0x405b2e20, 0x4c87: 0x405b3020, - 0x4c88: 0xe00020ad, 0x4c89: 0x405b3220, 0x4c8a: 0xe00020b0, 0x4c8b: 0x405b3420, - 0x4c8c: 0xe00020b3, 0x4c8d: 0x405b3620, 0x4c8e: 0xe00020b6, 0x4c8f: 0x405b3820, - 0x4c90: 0xe00020b9, 0x4c91: 0x405b3a20, 0x4c92: 0xe00020bc, 0x4c93: 0x405b3c20, - 0x4c94: 0x405b3e20, 0x4c95: 0xe00020bf, 0x4c96: 0x405b4020, 0x4c97: 0xe00020c2, - 0x4c98: 0x405b4220, 0x4c99: 0xe00020c5, 0x4c9a: 0x405b4420, 0x4c9b: 0xe00020c8, - 0x4c9c: 0x405b4620, 0x4c9d: 0xe00020cb, 0x4c9e: 0x405b4820, 0x4c9f: 0xe00020ce, - 0x4ca0: 0x405b4a20, 0x4ca1: 0x405b4c20, 0x4ca2: 0x405b4e20, 0x4ca3: 0x405b5020, - 0x4ca4: 0x405b5220, 0x4ca5: 0xe00020d1, 0x4ca6: 0x405b5420, 0x4ca7: 0xe00020d4, - 0x4ca8: 0x405b5620, 0x4ca9: 0xe00020d7, 0x4caa: 0x405b5820, 0x4cab: 0xe00020da, - 0x4cac: 0x405b5a20, 0x4cad: 0x405b5c20, 0x4cae: 0xe00020dd, 0x4caf: 0x405b5e20, - 0x4cb0: 0x405b6020, 0x4cb1: 0x405b6220, 0x4cb2: 0x405b6420, 0x4cb3: 0xe00020e0, - 0x4cb4: 0x405b6620, 0x4cb5: 0xe00020e3, 0x4cb6: 0x405b6820, 0x4cb7: 0xe00020e6, - 0x4cb8: 0x405b6a20, 0x4cb9: 0xe00020e9, 0x4cba: 0x405b6c20, 0x4cbb: 0xe00020ec, - 0x4cbc: 0x405b6e20, 0x4cbd: 0x405b7020, 0x4cbe: 0x405b7220, 0x4cbf: 0x405b7420, - // Block 0x133, offset 0x4cc0 - 0x4cc0: 0xe00020ef, 0x4cc1: 0x405b7620, 0x4cc2: 0xe00020f2, 0x4cc3: 0x405b7820, - 0x4cc4: 0xe00020f5, 0x4cc5: 0x405b7a20, 0x4cc6: 0xe00020f8, 0x4cc7: 0x405b7c20, - 0x4cc8: 0x405b7e20, - // Block 0x134, offset 0x4d00 - 0x4d20: 0xe00001ec, 0x4d21: 0xe0000307, 0x4d22: 0xe00003e1, 0x4d23: 0xe00004bc, - 0x4d24: 0xe0000586, 0x4d25: 0xe0000651, 0x4d26: 0xe00006f9, 0x4d27: 0xe00007a5, - 0x4d28: 0xe000084a, 0x4d29: 0x40288820, 0x4d2a: 0x40288a20, 0x4d2b: 0x40288c20, - 0x4d2c: 0x40288e20, 0x4d2d: 0x40289020, 0x4d2e: 0x40289220, 0x4d2f: 0x40289420, - 0x4d30: 0x40289620, 0x4d31: 0x40289820, 0x4d32: 0x40289a20, 0x4d33: 0x40289c20, - 0x4d34: 0x40289e20, 0x4d35: 0x4028a020, 0x4d36: 0x4028a220, 0x4d37: 0x4028a420, - 0x4d38: 0x4028a620, 0x4d39: 0x4028a820, 0x4d3a: 0x4028aa20, 0x4d3b: 0x4028ac20, - 0x4d3c: 0x4028ae20, 0x4d3d: 0x4028b020, 0x4d3e: 0x4028b220, - // Block 0x135, offset 0x4d40 - 0x4d40: 0xa000f202, 0x4d41: 0xa000f302, 0x4d42: 0xa000f402, 0x4d43: 0x40489220, - 0x4d44: 0x40489420, 0x4d45: 0x40483420, 0x4d46: 0x40483620, 0x4d47: 0x40483820, - 0x4d48: 0x40483a20, 0x4d49: 0x40483c20, 0x4d4a: 0x40483e20, 0x4d4b: 0x40484020, - 0x4d4c: 0x40484220, 0x4d4d: 0x40484420, 0x4d4e: 0x40484620, 0x4d4f: 0x40484820, - 0x4d50: 0x40484a20, 0x4d51: 0x40484c20, 0x4d52: 0x40484e20, 0x4d53: 0x40485020, - 0x4d54: 0x40485220, 0x4d55: 0x40485420, 0x4d56: 0x40485620, 0x4d57: 0x40485820, - 0x4d58: 0x40485a20, 0x4d59: 0x40485c20, 0x4d5a: 0x40485e20, 0x4d5b: 0x40486020, - 0x4d5c: 0x40486220, 0x4d5d: 0x40486420, 0x4d5e: 0x40486620, 0x4d5f: 0x40486820, - 0x4d60: 0x40486a20, 0x4d61: 0x40486c20, 0x4d62: 0x40486e20, 0x4d63: 0x40487020, - 0x4d64: 0x40487220, 0x4d65: 0x40487420, 0x4d66: 0x40487620, 0x4d67: 0x40487820, - 0x4d68: 0x40487a20, 0x4d69: 0x40487c20, 0x4d6a: 0x40487e20, 0x4d6b: 0x40488020, - 0x4d6c: 0x40488220, 0x4d6d: 0x40488420, 0x4d6e: 0x40488620, 0x4d6f: 0x40488820, - 0x4d70: 0x40488a20, 0x4d71: 0x40488c20, 0x4d72: 0x40488e20, 0x4d73: 0x40489020, - 0x4d74: 0x40489620, 0x4d75: 0x40489820, 0x4d76: 0x40489a20, 0x4d77: 0x40489c20, - 0x4d78: 0x40489e20, 0x4d79: 0x4048a020, 0x4d7a: 0x4048a220, 0x4d7b: 0x4048a420, - 0x4d7c: 0x4048a620, 0x4d7d: 0x4048a820, 0x4d7e: 0x4048aa20, 0x4d7f: 0x4048ac20, - // Block 0x136, offset 0x4d80 - 0x4d80: 0x4048ae20, 0x4d81: 0x4048b020, 0x4d82: 0x4048b220, 0x4d83: 0x4048b420, - 0x4d84: 0x4048b620, 0x4d85: 0x4048b820, 0x4d86: 0x8209245d, 0x4d87: 0x40034820, - 0x4d88: 0x40034a20, 0x4d89: 0x4005fc20, 0x4d8a: 0x4005fe20, 0x4d8b: 0x40060020, - 0x4d8c: 0x40060220, 0x4d8d: 0x40060420, - 0x4d92: 0xe00002a9, 0x4d93: 0xe00003c4, - 0x4d94: 0xe000049e, 0x4d95: 0xe0000570, 0x4d96: 0xe000063a, 0x4d97: 0xe00006ea, - 0x4d98: 0xe0000792, 0x4d99: 0xe000083b, 0x4d9a: 0xe00008e6, 0x4d9b: 0x40298220, - 0x4d9c: 0x40298420, 0x4d9d: 0x40298620, 0x4d9e: 0x40298820, 0x4d9f: 0x40298a20, - 0x4da0: 0x40298c20, 0x4da1: 0x40298e20, 0x4da2: 0x40299020, 0x4da3: 0x40299220, - 0x4da4: 0x40299420, 0x4da5: 0x40299620, 0x4da6: 0xe00001df, 0x4da7: 0xe00002a6, - 0x4da8: 0xe00003c1, 0x4da9: 0xe000049b, 0x4daa: 0xe000056d, 0x4dab: 0xe0000637, - 0x4dac: 0xe00006e7, 0x4dad: 0xe000078f, 0x4dae: 0xe0000838, 0x4daf: 0xe00008e3, - // Block 0x137, offset 0x4dc0 - 0x4dc0: 0xa000f202, 0x4dc1: 0xa000f302, 0x4dc2: 0xa000f402, 0x4dc3: 0x40467e20, - 0x4dc4: 0x40468020, 0x4dc5: 0x40468220, 0x4dc6: 0x40468420, 0x4dc7: 0x40468620, - 0x4dc8: 0x40468820, 0x4dc9: 0x40468a20, 0x4dca: 0x40468c20, 0x4dcb: 0x40468e20, - 0x4dcc: 0x40469020, 0x4dcd: 0x40469220, 0x4dce: 0x40469420, 0x4dcf: 0x40469620, - 0x4dd0: 0x40469820, 0x4dd1: 0x40469a20, 0x4dd2: 0x40469c20, 0x4dd3: 0x40469e20, - 0x4dd4: 0x4046a020, 0x4dd5: 0x4046a220, 0x4dd6: 0x4046a420, 0x4dd7: 0x4046a620, - 0x4dd8: 0x4046a820, 0x4dd9: 0x4046aa20, 0x4dda: 0xe0001878, 0x4ddb: 0x4046ac20, - 0x4ddc: 0xe000187b, 0x4ddd: 0x4046ae20, 0x4dde: 0x4046b020, 0x4ddf: 0x4046b220, - 0x4de0: 0x4046b420, 0x4de1: 0x4046b620, 0x4de2: 0x4046b820, 0x4de3: 0x4046ba20, - 0x4de4: 0x4046bc20, 0x4de5: 0x4046be20, 0x4de6: 0x4046c020, 0x4de7: 0x4046c220, - 0x4de8: 0x4046c420, 0x4de9: 0x4046c620, 0x4dea: 0x4046c820, 0x4deb: 0xe000187e, - 0x4dec: 0x4046ca20, 0x4ded: 0x4046cc20, 0x4dee: 0x4046ce20, 0x4def: 0x4046d020, - 0x4df0: 0x4046d220, 0x4df1: 0x4046d420, 0x4df2: 0x4046d620, 0x4df3: 0x4046d820, - 0x4df4: 0x4046da20, 0x4df5: 0x4046dc20, 0x4df6: 0x4046de20, 0x4df7: 0x4046e020, - 0x4df8: 0x4046e220, 0x4df9: 0x82092372, 0x4dfa: 0xa070f102, 0x4dfb: 0x40061620, - 0x4dfc: 0x40061820, 0x4dfd: 0xa0000000, 0x4dfe: 0x40039420, 0x4dff: 0x40039620, - // Block 0x138, offset 0x4e00 - 0x4e00: 0x40034c20, 0x4e01: 0x40034e20, - 0x4e10: 0x4072e820, 0x4e11: 0x4072ea20, 0x4e12: 0x4072ec20, 0x4e13: 0x4072ee20, - 0x4e14: 0x4072f020, 0x4e15: 0x4072f220, 0x4e16: 0x4072f420, 0x4e17: 0x4072f620, - 0x4e18: 0x4072f820, 0x4e19: 0x4072fa20, 0x4e1a: 0x4072fc20, 0x4e1b: 0x4072fe20, - 0x4e1c: 0x40730020, 0x4e1d: 0x40730220, 0x4e1e: 0x40730420, 0x4e1f: 0x40730620, - 0x4e20: 0x40730820, 0x4e21: 0x40730a20, 0x4e22: 0x40730c20, 0x4e23: 0x40730e20, - 0x4e24: 0x40731020, 0x4e25: 0x40731220, 0x4e26: 0x40731420, 0x4e27: 0x40731620, - 0x4e28: 0x40731820, - 0x4e30: 0xe00001d0, 0x4e31: 0xe0000264, 0x4e32: 0xe000037c, 0x4e33: 0xe0000456, - 0x4e34: 0xe000052b, 0x4e35: 0xe00005f5, 0x4e36: 0xe00006c0, 0x4e37: 0xe0000768, - 0x4e38: 0xe0000814, 0x4e39: 0xe00008b9, - // Block 0x139, offset 0x4e40 - 0x4e40: 0xae60f202, 0x4e41: 0xae60f302, 0x4e42: 0xae60f402, 0x4e43: 0x404f4020, - 0x4e44: 0x404f4220, 0x4e45: 0x404f4420, 0x4e46: 0x404f4620, 0x4e47: 0x404f4820, - 0x4e48: 0x404f4a20, 0x4e49: 0x404f4c20, 0x4e4a: 0x404f4e20, 0x4e4b: 0x404f5020, - 0x4e4c: 0x404f5220, 0x4e4d: 0x404f5420, 0x4e4e: 0x404f5620, 0x4e4f: 0x404f5820, - 0x4e50: 0x404f5a20, 0x4e51: 0x404f5c20, 0x4e52: 0x404f5e20, 0x4e53: 0x404f6020, - 0x4e54: 0x404f6220, 0x4e55: 0x404f6420, 0x4e56: 0x404f6620, 0x4e57: 0x404f6820, - 0x4e58: 0x404f6a20, 0x4e59: 0x404f6c20, 0x4e5a: 0x404f6e20, 0x4e5b: 0x404f7020, - 0x4e5c: 0x404f7220, 0x4e5d: 0x404f7420, 0x4e5e: 0x404f7620, 0x4e5f: 0x404f7820, - 0x4e60: 0x404f7a20, 0x4e61: 0x404f7c20, 0x4e62: 0x404f7e20, 0x4e63: 0x404f8020, - 0x4e64: 0x404f8220, 0x4e65: 0x404f8420, 0x4e66: 0x404f8620, 0x4e67: 0x404f8820, - 0x4e68: 0x404f8a20, 0x4e69: 0x404f8c20, 0x4e6a: 0x404f8e20, 0x4e6b: 0x404f9020, - 0x4e6c: 0x404f9220, 0x4e6d: 0x404f9420, 0x4e6e: 0x404f9620, 0x4e6f: 0x404f9820, - 0x4e70: 0x404f9a20, 0x4e71: 0xc31507e1, 0x4e72: 0xc31707e1, 0x4e73: 0x820927d0, - 0x4e74: 0x820927d1, 0x4e76: 0xe00001b2, 0x4e77: 0xe0000246, - 0x4e78: 0xe000035e, 0x4e79: 0xe0000438, 0x4e7a: 0xe000050d, 0x4e7b: 0xe00005d7, - 0x4e7c: 0xe00006a2, 0x4e7d: 0xe000074a, 0x4e7e: 0xe00007f6, 0x4e7f: 0xe000089b, - // Block 0x13a, offset 0x4e80 - 0x4e80: 0x40039820, 0x4e81: 0x40035020, 0x4e82: 0x40035220, 0x4e83: 0x4002de20, - // Block 0x13b, offset 0x4ec0 - 0x4ec0: 0xa000f202, 0x4ec1: 0xa000f302, 0x4ec2: 0xa000f402, 0x4ec3: 0x4046e820, - 0x4ec4: 0x4046ea20, 0x4ec5: 0x4046ec20, 0x4ec6: 0x4046ee20, 0x4ec7: 0x4046f020, - 0x4ec8: 0x4046f220, 0x4ec9: 0x4046f420, 0x4eca: 0x4046f620, 0x4ecb: 0x4046f820, - 0x4ecc: 0x4046fa20, 0x4ecd: 0x4046fc20, 0x4ece: 0x4046fe20, 0x4ecf: 0x40470020, - 0x4ed0: 0x40470220, 0x4ed1: 0x40470420, 0x4ed2: 0x40470620, 0x4ed3: 0x40470820, - 0x4ed4: 0x40470a20, 0x4ed5: 0x40470c20, 0x4ed6: 0x40470e20, 0x4ed7: 0x40471020, - 0x4ed8: 0x40471220, 0x4ed9: 0x40471420, 0x4eda: 0x40471620, 0x4edb: 0x40471820, - 0x4edc: 0x40471a20, 0x4edd: 0x40471c20, 0x4ede: 0x40471e20, 0x4edf: 0x40472020, - 0x4ee0: 0x40472220, 0x4ee1: 0x40472420, 0x4ee2: 0x40472620, 0x4ee3: 0x40472820, - 0x4ee4: 0x40472a20, 0x4ee5: 0x40472c20, 0x4ee6: 0x40472e20, 0x4ee7: 0x40473020, - 0x4ee8: 0x40473220, 0x4ee9: 0x40473420, 0x4eea: 0x40473620, 0x4eeb: 0x40473820, - 0x4eec: 0x40473a20, 0x4eed: 0x40473c20, 0x4eee: 0x40473e20, 0x4eef: 0x40474020, - 0x4ef0: 0x40474220, 0x4ef1: 0x40474420, 0x4ef2: 0x40474620, 0x4ef3: 0x40474820, - 0x4ef4: 0x40474a20, 0x4ef5: 0x40474c20, 0x4ef6: 0x40474e20, 0x4ef7: 0x40475020, - 0x4ef8: 0x40475220, 0x4ef9: 0x40475420, 0x4efa: 0x40475620, 0x4efb: 0x40475820, - 0x4efc: 0x40475a20, 0x4efd: 0x40475c20, 0x4efe: 0x40475e20, 0x4eff: 0x40476020, - // Block 0x13c, offset 0x4f00 - 0x4f00: 0x820923b1, 0x4f01: 0x40476420, 0x4f02: 0x40476620, 0x4f03: 0x40476820, - 0x4f04: 0x4046e620, 0x4f05: 0x40035420, 0x4f06: 0x40035620, 0x4f07: 0x40061a20, - 0x4f08: 0x40039a20, - 0x4f10: 0xe00001d9, 0x4f11: 0xe00002a0, 0x4f12: 0xe00003bb, 0x4f13: 0xe0000495, - 0x4f14: 0xe0000567, 0x4f15: 0xe0000631, 0x4f16: 0xe00006e1, 0x4f17: 0xe0000789, - 0x4f18: 0xe0000832, 0x4f19: 0xe00008dd, - // Block 0x13d, offset 0x4f40 - 0x4f40: 0x40476a20, 0x4f41: 0x40476c20, 0x4f42: 0x40476e20, 0x4f43: 0x40477020, - 0x4f44: 0x40477220, 0x4f45: 0x40477420, 0x4f46: 0x40477620, 0x4f47: 0x40477820, - 0x4f48: 0x40477a20, 0x4f49: 0x40477c20, 0x4f4a: 0x40478420, 0x4f4b: 0x40478620, - 0x4f4c: 0x40478820, 0x4f4d: 0x40478a20, 0x4f4e: 0x40478c20, 0x4f4f: 0x40478e20, - 0x4f50: 0x40479020, 0x4f51: 0x40479220, 0x4f52: 0x40479420, 0x4f53: 0x40479620, - 0x4f54: 0x40479820, 0x4f55: 0x40479a20, 0x4f56: 0x40479c20, 0x4f57: 0x40479e20, - 0x4f58: 0x4047a020, 0x4f59: 0x4047a220, 0x4f5a: 0x4047a420, 0x4f5b: 0x4047a620, - 0x4f5c: 0x4047a820, 0x4f5d: 0x4047aa20, 0x4f5e: 0x4047ac20, 0x4f5f: 0x4047ae20, - 0x4f60: 0x4047b020, 0x4f61: 0x4047b220, 0x4f62: 0x4047b420, 0x4f63: 0x4047b620, - 0x4f64: 0x4047b820, 0x4f65: 0x4047ba20, 0x4f66: 0x4047bc20, 0x4f67: 0x40478020, - 0x4f68: 0x40477e20, 0x4f69: 0x40478220, 0x4f6a: 0x4047be20, 0x4f6b: 0xa000f302, - 0x4f6c: 0xa000f402, 0x4f6d: 0x4047c020, 0x4f6e: 0x4047c220, 0x4f6f: 0x4047c420, - 0x4f70: 0x4047c620, 0x4f71: 0x4047c820, 0x4f72: 0x4047ca20, 0x4f73: 0x4047cc20, - 0x4f74: 0x4047ce20, 0x4f75: 0x4047d020, 0x4f76: 0x820923e9, 0x4f77: 0xa070f102, - // Block 0x13e, offset 0x4f80 - 0x4f80: 0xe00001dc, 0x4f81: 0xe00002a3, 0x4f82: 0xe00003be, 0x4f83: 0xe0000498, - 0x4f84: 0xe000056a, 0x4f85: 0xe0000634, 0x4f86: 0xe00006e4, 0x4f87: 0xe000078c, - 0x4f88: 0xe0000835, 0x4f89: 0xe00008e0, - // Block 0x13f, offset 0x4fc0 - 0x4fc0: 0x4076e420, 0x4fc1: 0x4076e620, 0x4fc2: 0x4076e820, 0x4fc3: 0x4076ea20, - 0x4fc4: 0x4076ec20, 0x4fc5: 0x4076ee20, 0x4fc6: 0x4076f020, 0x4fc7: 0x4076f220, - 0x4fc8: 0x4076f420, 0x4fc9: 0x4076f620, 0x4fca: 0x4076f820, 0x4fcb: 0x4076fa20, - 0x4fcc: 0x4076fc20, 0x4fcd: 0x4076fe20, 0x4fce: 0x40770020, 0x4fcf: 0x40770220, - 0x4fd0: 0x40770420, 0x4fd1: 0x40770620, 0x4fd2: 0x40770820, 0x4fd3: 0x40770a20, - 0x4fd4: 0x40770c20, 0x4fd5: 0x40770e20, 0x4fd6: 0x40771020, 0x4fd7: 0x40771220, - 0x4fd8: 0x40771420, 0x4fd9: 0x40771620, 0x4fda: 0x40771820, 0x4fdb: 0x40771a20, - 0x4fdc: 0x40771c20, 0x4fdd: 0x40771e20, 0x4fde: 0x40772020, 0x4fdf: 0x40772220, - 0x4fe0: 0x40772420, 0x4fe1: 0x40772620, 0x4fe2: 0x40772820, 0x4fe3: 0x40772a20, - 0x4fe4: 0x40772c20, 0x4fe5: 0x40772e20, 0x4fe6: 0x40773020, 0x4fe7: 0x40773220, - 0x4fe8: 0x40773420, 0x4fe9: 0x40773620, 0x4fea: 0x40773820, 0x4feb: 0x40773a20, - 0x4fec: 0x40773c20, 0x4fed: 0x40773e20, 0x4fee: 0x40774020, 0x4fef: 0x40774220, - 0x4ff0: 0x40774420, 0x4ff1: 0x40774620, 0x4ff2: 0x40774820, 0x4ff3: 0x40774a20, - 0x4ff4: 0x40774c20, 0x4ff5: 0x40774e20, 0x4ff6: 0x40775020, 0x4ff7: 0x40775220, - 0x4ff8: 0x40775420, 0x4ff9: 0x40775620, 0x4ffa: 0x40775820, 0x4ffb: 0x40775a20, - 0x4ffc: 0x40775c20, 0x4ffd: 0x40775e20, 0x4ffe: 0x40776020, 0x4fff: 0x40776220, - // Block 0x140, offset 0x5000 - 0x5000: 0x40776420, 0x5001: 0x40776620, 0x5002: 0x40776820, 0x5003: 0x40776a20, - 0x5004: 0x40776c20, 0x5005: 0x40776e20, 0x5006: 0x40777020, 0x5007: 0x40777220, - 0x5008: 0x40777420, 0x5009: 0x40777620, 0x500a: 0x40777820, 0x500b: 0x40777a20, - 0x500c: 0x40777c20, 0x500d: 0x40777e20, 0x500e: 0x40778020, 0x500f: 0x40778220, - 0x5010: 0x40778420, 0x5011: 0x40778620, 0x5012: 0x40778820, 0x5013: 0x40778a20, - 0x5014: 0x40778c20, 0x5015: 0x40778e20, 0x5016: 0x40779020, 0x5017: 0x40779220, - 0x5018: 0x40779420, 0x5019: 0x40779620, 0x501a: 0x40779820, 0x501b: 0x40779a20, - 0x501c: 0x40779c20, 0x501d: 0x40779e20, 0x501e: 0x4077a020, 0x501f: 0x4077a220, - 0x5020: 0x4077a420, 0x5021: 0x4077a620, 0x5022: 0x4077a820, 0x5023: 0x4077aa20, - 0x5024: 0x4077ac20, 0x5025: 0x4077ae20, 0x5026: 0x4077b020, 0x5027: 0x4077b220, - 0x5028: 0x4077b420, 0x5029: 0x4077b620, 0x502a: 0x4077b820, 0x502b: 0x4077ba20, - 0x502c: 0x4077bc20, 0x502d: 0x4077be20, 0x502e: 0x4077c020, 0x502f: 0x4077c220, - 0x5030: 0x4077c420, 0x5031: 0x4077c620, 0x5032: 0x4077c820, 0x5033: 0x4077ca20, - 0x5034: 0x4077cc20, 0x5035: 0x4077ce20, 0x5036: 0x4077d020, 0x5037: 0x4077d220, - 0x5038: 0x4077d420, 0x5039: 0x4077d620, 0x503a: 0x4077d820, 0x503b: 0x4077da20, - 0x503c: 0x4077dc20, 0x503d: 0x4077de20, 0x503e: 0x4077e020, 0x503f: 0x4077e220, - // Block 0x141, offset 0x5040 - 0x5040: 0x4077e420, 0x5041: 0x4077e620, 0x5042: 0x4077e820, 0x5043: 0x4077ea20, - 0x5044: 0x4077ec20, 0x5045: 0x4077ee20, 0x5046: 0x4077f020, 0x5047: 0x4077f220, - 0x5048: 0x4077f420, 0x5049: 0x4077f620, 0x504a: 0x4077f820, 0x504b: 0x4077fa20, - 0x504c: 0x4077fc20, 0x504d: 0x4077fe20, 0x504e: 0x40780020, 0x504f: 0x40780220, - 0x5050: 0x40780420, 0x5051: 0x40780620, 0x5052: 0x40780820, 0x5053: 0x40780a20, - 0x5054: 0x40780c20, 0x5055: 0x40780e20, 0x5056: 0x40781020, 0x5057: 0x40781220, - 0x5058: 0x40781420, 0x5059: 0x40781620, 0x505a: 0x40781820, 0x505b: 0x40781a20, - 0x505c: 0x40781c20, 0x505d: 0x40781e20, 0x505e: 0x40782020, 0x505f: 0x40782220, - 0x5060: 0x40782420, 0x5061: 0x40782620, 0x5062: 0x40782820, 0x5063: 0x40782a20, - 0x5064: 0x40782c20, 0x5065: 0x40782e20, 0x5066: 0x40783020, 0x5067: 0x40783220, - 0x5068: 0x40783420, 0x5069: 0x40783620, 0x506a: 0x40783820, 0x506b: 0x40783a20, - 0x506c: 0x40783c20, 0x506d: 0x40783e20, 0x506e: 0x40784020, 0x506f: 0x40784220, - 0x5070: 0x40784420, 0x5071: 0x40784620, 0x5072: 0x40784820, 0x5073: 0x40784a20, - 0x5074: 0x40784c20, 0x5075: 0x40784e20, 0x5076: 0x40785020, 0x5077: 0x40785220, - 0x5078: 0x40785420, 0x5079: 0x40785620, 0x507a: 0x40785820, 0x507b: 0x40785a20, - 0x507c: 0x40785c20, 0x507d: 0x40785e20, 0x507e: 0x40786020, 0x507f: 0x40786220, - // Block 0x142, offset 0x5080 - 0x5080: 0x40786420, 0x5081: 0x40786620, 0x5082: 0x40786820, 0x5083: 0x40786a20, - 0x5084: 0x40786c20, 0x5085: 0x40786e20, 0x5086: 0x40787020, 0x5087: 0x40787220, - 0x5088: 0x40787420, 0x5089: 0x40787620, 0x508a: 0x40787820, 0x508b: 0x40787a20, - 0x508c: 0x40787c20, 0x508d: 0x40787e20, 0x508e: 0x40788020, 0x508f: 0x40788220, - 0x5090: 0x40788420, 0x5091: 0x40788620, 0x5092: 0x40788820, 0x5093: 0x40788a20, - 0x5094: 0x40788c20, 0x5095: 0x40788e20, 0x5096: 0x40789020, 0x5097: 0x40789220, - 0x5098: 0x40789420, 0x5099: 0x40789620, 0x509a: 0x40789820, 0x509b: 0x40789a20, - 0x509c: 0x40789c20, 0x509d: 0x40789e20, 0x509e: 0x4078a020, 0x509f: 0x4078a220, - 0x50a0: 0x4078a420, 0x50a1: 0x4078a620, 0x50a2: 0x4078a820, 0x50a3: 0x4078aa20, - 0x50a4: 0x4078ac20, 0x50a5: 0x4078ae20, 0x50a6: 0x4078b020, 0x50a7: 0x4078b220, - 0x50a8: 0x4078b420, 0x50a9: 0x4078b620, 0x50aa: 0x4078b820, 0x50ab: 0x4078ba20, - 0x50ac: 0x4078bc20, 0x50ad: 0x4078be20, 0x50ae: 0x4078c020, 0x50af: 0x4078c220, - 0x50b0: 0x4078c420, 0x50b1: 0x4078c620, 0x50b2: 0x4078c820, 0x50b3: 0x4078ca20, - 0x50b4: 0x4078cc20, 0x50b5: 0x4078ce20, 0x50b6: 0x4078d020, 0x50b7: 0x4078d220, - 0x50b8: 0x4078d420, 0x50b9: 0x4078d620, 0x50ba: 0x4078d820, 0x50bb: 0x4078da20, - 0x50bc: 0x4078dc20, 0x50bd: 0x4078de20, 0x50be: 0x4078e020, 0x50bf: 0x4078e220, - // Block 0x143, offset 0x50c0 - 0x50c0: 0x4078e420, 0x50c1: 0x4078e620, 0x50c2: 0x4078e820, 0x50c3: 0x4078ea20, - 0x50c4: 0x4078ec20, 0x50c5: 0x4078ee20, 0x50c6: 0x4078f020, 0x50c7: 0x4078f220, - 0x50c8: 0x4078f420, 0x50c9: 0x4078f620, 0x50ca: 0x4078f820, 0x50cb: 0x4078fa20, - 0x50cc: 0x4078fc20, 0x50cd: 0x4078fe20, 0x50ce: 0x40790020, 0x50cf: 0x40790220, - 0x50d0: 0x40790420, 0x50d1: 0x40790620, 0x50d2: 0x40790820, 0x50d3: 0x40790a20, - 0x50d4: 0x40790c20, 0x50d5: 0x40790e20, 0x50d6: 0x40791020, 0x50d7: 0x40791220, - 0x50d8: 0x40791420, 0x50d9: 0x40791620, 0x50da: 0x40791820, 0x50db: 0x40791a20, - 0x50dc: 0x40791c20, 0x50dd: 0x40791e20, 0x50de: 0x40792020, 0x50df: 0x40792220, - 0x50e0: 0x40792420, 0x50e1: 0x40792620, 0x50e2: 0x40792820, 0x50e3: 0x40792a20, - 0x50e4: 0x40792c20, 0x50e5: 0x40792e20, 0x50e6: 0x40793020, 0x50e7: 0x40793220, - 0x50e8: 0x40793420, 0x50e9: 0x40793620, 0x50ea: 0x40793820, 0x50eb: 0x40793a20, - 0x50ec: 0x40793c20, 0x50ed: 0x40793e20, 0x50ee: 0x40794020, 0x50ef: 0x40794220, - 0x50f0: 0x40794420, 0x50f1: 0x40794620, 0x50f2: 0x40794820, 0x50f3: 0x40794a20, - 0x50f4: 0x40794c20, 0x50f5: 0x40794e20, 0x50f6: 0x40795020, 0x50f7: 0x40795220, - 0x50f8: 0x40795420, 0x50f9: 0x40795620, 0x50fa: 0x40795820, 0x50fb: 0x40795a20, - 0x50fc: 0x40795c20, 0x50fd: 0x40795e20, 0x50fe: 0x40796020, 0x50ff: 0x40796220, - // Block 0x144, offset 0x5100 - 0x5100: 0x40796420, 0x5101: 0x40796620, 0x5102: 0x40796820, 0x5103: 0x40796a20, - 0x5104: 0x40796c20, 0x5105: 0x40796e20, 0x5106: 0x40797020, 0x5107: 0x40797220, - 0x5108: 0x40797420, 0x5109: 0x40797620, 0x510a: 0x40797820, 0x510b: 0x40797a20, - 0x510c: 0x40797c20, 0x510d: 0x40797e20, 0x510e: 0x40798020, 0x510f: 0x40798220, - 0x5110: 0x40798420, 0x5111: 0x40798620, 0x5112: 0x40798820, 0x5113: 0x40798a20, - 0x5114: 0x40798c20, 0x5115: 0x40798e20, 0x5116: 0x40799020, 0x5117: 0x40799220, - 0x5118: 0x40799420, 0x5119: 0x40799620, 0x511a: 0x40799820, 0x511b: 0x40799a20, - 0x511c: 0x40799c20, 0x511d: 0x40799e20, 0x511e: 0x4079a020, 0x511f: 0x4079a220, - 0x5120: 0x4079a420, 0x5121: 0x4079a620, 0x5122: 0x4079a820, 0x5123: 0x4079aa20, - 0x5124: 0x4079ac20, 0x5125: 0x4079ae20, 0x5126: 0x4079b020, 0x5127: 0x4079b220, - 0x5128: 0x4079b420, 0x5129: 0x4079b620, 0x512a: 0x4079b820, 0x512b: 0x4079ba20, - 0x512c: 0x4079bc20, 0x512d: 0x4079be20, 0x512e: 0x4079c020, 0x512f: 0x4079c220, - 0x5130: 0x4079c420, 0x5131: 0x4079c620, 0x5132: 0x4079c820, 0x5133: 0x4079ca20, - 0x5134: 0x4079cc20, 0x5135: 0x4079ce20, 0x5136: 0x4079d020, 0x5137: 0x4079d220, - 0x5138: 0x4079d420, 0x5139: 0x4079d620, 0x513a: 0x4079d820, 0x513b: 0x4079da20, - 0x513c: 0x4079dc20, 0x513d: 0x4079de20, 0x513e: 0x4079e020, 0x513f: 0x4079e220, - // Block 0x145, offset 0x5140 - 0x5140: 0x4079e420, 0x5141: 0x4079e620, 0x5142: 0x4079e820, 0x5143: 0x4079ea20, - 0x5144: 0x4079ec20, 0x5145: 0x4079ee20, 0x5146: 0x4079f020, 0x5147: 0x4079f220, - 0x5148: 0x4079f420, 0x5149: 0x4079f620, 0x514a: 0x4079f820, 0x514b: 0x4079fa20, - 0x514c: 0x4079fc20, 0x514d: 0x4079fe20, 0x514e: 0x407a0020, 0x514f: 0x407a0220, - 0x5150: 0x407a0420, 0x5151: 0x407a0620, 0x5152: 0x407a0820, 0x5153: 0x407a0a20, - 0x5154: 0x407a0c20, 0x5155: 0x407a0e20, 0x5156: 0x407a1020, 0x5157: 0x407a1220, - 0x5158: 0x407a1420, 0x5159: 0x407a1620, 0x515a: 0x407a1820, 0x515b: 0x407a1a20, - 0x515c: 0x407a1c20, 0x515d: 0x407a1e20, 0x515e: 0x407a2020, 0x515f: 0x407a2220, - 0x5160: 0x407a2420, 0x5161: 0x407a2620, 0x5162: 0x407a2820, 0x5163: 0x407a2a20, - 0x5164: 0x407a2c20, 0x5165: 0x407a2e20, 0x5166: 0x407a3020, 0x5167: 0x407a3220, - 0x5168: 0x407a3420, 0x5169: 0x407a3620, 0x516a: 0x407a3820, 0x516b: 0x407a3a20, - 0x516c: 0x407a3c20, 0x516d: 0x407a3e20, 0x516e: 0x407a4020, 0x516f: 0x407a4220, - 0x5170: 0x407a4420, 0x5171: 0x407a4620, 0x5172: 0x407a4820, 0x5173: 0x407a4a20, - 0x5174: 0x407a4c20, 0x5175: 0x407a4e20, 0x5176: 0x407a5020, 0x5177: 0x407a5220, - 0x5178: 0x407a5420, 0x5179: 0x407a5620, 0x517a: 0x407a5820, 0x517b: 0x407a5a20, - 0x517c: 0x407a5c20, 0x517d: 0x407a5e20, 0x517e: 0x407a6020, 0x517f: 0x407a6220, - // Block 0x146, offset 0x5180 - 0x5180: 0x407a6420, 0x5181: 0x407a6620, 0x5182: 0x407a6820, 0x5183: 0x407a6a20, - 0x5184: 0x407a6c20, 0x5185: 0x407a6e20, 0x5186: 0x407a7020, 0x5187: 0x407a7220, - 0x5188: 0x407a7420, 0x5189: 0x407a7620, 0x518a: 0x407a7820, 0x518b: 0x407a7a20, - 0x518c: 0x407a7c20, 0x518d: 0x407a7e20, 0x518e: 0x407a8020, 0x518f: 0x407a8220, - 0x5190: 0x407a8420, 0x5191: 0x407a8620, 0x5192: 0x407a8820, 0x5193: 0x407a8a20, - 0x5194: 0x407a8c20, 0x5195: 0x407a8e20, 0x5196: 0x407a9020, 0x5197: 0x407a9220, - 0x5198: 0x407a9420, 0x5199: 0x407a9620, 0x519a: 0x407a9820, 0x519b: 0x407a9a20, - 0x519c: 0x407a9c20, 0x519d: 0x407a9e20, 0x519e: 0x407aa020, 0x519f: 0x407aa220, - 0x51a0: 0x407aa420, 0x51a1: 0x407aa620, 0x51a2: 0x407aa820, 0x51a3: 0x407aaa20, - 0x51a4: 0x407aac20, 0x51a5: 0x407aae20, 0x51a6: 0x407ab020, 0x51a7: 0x407ab220, - 0x51a8: 0x407ab420, 0x51a9: 0x407ab620, 0x51aa: 0x407ab820, 0x51ab: 0x407aba20, - 0x51ac: 0x407abc20, 0x51ad: 0x407abe20, 0x51ae: 0x407ac020, 0x51af: 0x407ac220, - 0x51b0: 0x407ac420, 0x51b1: 0x407ac620, 0x51b2: 0x407ac820, 0x51b3: 0x407aca20, - 0x51b4: 0x407acc20, 0x51b5: 0x407ace20, 0x51b6: 0x407ad020, 0x51b7: 0x407ad220, - 0x51b8: 0x407ad420, 0x51b9: 0x407ad620, 0x51ba: 0x407ad820, 0x51bb: 0x407ada20, - 0x51bc: 0x407adc20, 0x51bd: 0x407ade20, 0x51be: 0x407ae020, 0x51bf: 0x407ae220, - // Block 0x147, offset 0x51c0 - 0x51c0: 0x407ae420, 0x51c1: 0x407ae620, 0x51c2: 0x407ae820, 0x51c3: 0x407aea20, - 0x51c4: 0x407aec20, 0x51c5: 0x407aee20, 0x51c6: 0x407af020, 0x51c7: 0x407af220, - 0x51c8: 0x407af420, 0x51c9: 0x407af620, 0x51ca: 0x407af820, 0x51cb: 0x407afa20, - 0x51cc: 0x407afc20, 0x51cd: 0x407afe20, 0x51ce: 0x407b0020, 0x51cf: 0x407b0220, - 0x51d0: 0x407b0420, 0x51d1: 0x407b0620, 0x51d2: 0x407b0820, 0x51d3: 0x407b0a20, - 0x51d4: 0x407b0c20, 0x51d5: 0x407b0e20, 0x51d6: 0x407b1020, 0x51d7: 0x407b1220, - 0x51d8: 0x407b1420, 0x51d9: 0x407b1620, 0x51da: 0x407b1820, 0x51db: 0x407b1a20, - 0x51dc: 0x407b1c20, 0x51dd: 0x407b1e20, 0x51de: 0x407b2020, 0x51df: 0x407b2220, - 0x51e0: 0x407b2420, 0x51e1: 0x407b2620, 0x51e2: 0x407b2820, 0x51e3: 0x407b2a20, - 0x51e4: 0x407b2c20, 0x51e5: 0x407b2e20, 0x51e6: 0x407b3020, 0x51e7: 0x407b3220, - 0x51e8: 0x407b3420, 0x51e9: 0x407b3620, 0x51ea: 0x407b3820, 0x51eb: 0x407b3a20, - 0x51ec: 0x407b3c20, 0x51ed: 0x407b3e20, 0x51ee: 0x407b4020, 0x51ef: 0x407b4220, - 0x51f0: 0x407b4420, 0x51f1: 0x407b4620, 0x51f2: 0x407b4820, 0x51f3: 0x407b4a20, - 0x51f4: 0x407b4c20, 0x51f5: 0x407b4e20, 0x51f6: 0x407b5020, 0x51f7: 0x407b5220, - 0x51f8: 0x407b5420, 0x51f9: 0x407b5620, 0x51fa: 0x407b5820, 0x51fb: 0x407b5a20, - 0x51fc: 0x407b5c20, 0x51fd: 0x407b5e20, 0x51fe: 0x407b6020, 0x51ff: 0x407b6220, - // Block 0x148, offset 0x5200 - 0x5200: 0x407b6420, 0x5201: 0x407b6620, 0x5202: 0x407b6820, 0x5203: 0x407b6a20, - 0x5204: 0x407b6c20, 0x5205: 0x407b6e20, 0x5206: 0x407b7020, 0x5207: 0x407b7220, - 0x5208: 0x407b7420, 0x5209: 0x407b7620, 0x520a: 0x407b7820, 0x520b: 0x407b7a20, - 0x520c: 0x407b7c20, 0x520d: 0x407b7e20, 0x520e: 0x407b8020, 0x520f: 0x407b8220, - 0x5210: 0x407b8420, 0x5211: 0x407b8620, 0x5212: 0x407b8820, 0x5213: 0x407b8a20, - 0x5214: 0x407b8c20, 0x5215: 0x407b8e20, 0x5216: 0x407b9020, 0x5217: 0x407b9220, - 0x5218: 0x407b9420, 0x5219: 0x407b9620, 0x521a: 0x407b9820, 0x521b: 0x407b9a20, - 0x521c: 0x407b9c20, 0x521d: 0x407b9e20, 0x521e: 0x407ba020, 0x521f: 0x407ba220, - 0x5220: 0x407ba420, 0x5221: 0x407ba620, 0x5222: 0x407ba820, 0x5223: 0x407baa20, - 0x5224: 0x407bac20, 0x5225: 0x407bae20, 0x5226: 0x407bb020, 0x5227: 0x407bb220, - 0x5228: 0x407bb420, 0x5229: 0x407bb620, 0x522a: 0x407bb820, 0x522b: 0x407bba20, - 0x522c: 0x407bbc20, 0x522d: 0x407bbe20, 0x522e: 0x407bc020, 0x522f: 0x407bc220, - 0x5230: 0x407bc420, 0x5231: 0x407bc620, 0x5232: 0x407bc820, 0x5233: 0x407bca20, - 0x5234: 0x407bcc20, 0x5235: 0x407bce20, 0x5236: 0x407bd020, 0x5237: 0x407bd220, - 0x5238: 0x407bd420, 0x5239: 0x407bd620, 0x523a: 0x407bd820, 0x523b: 0x407bda20, - 0x523c: 0x407bdc20, 0x523d: 0x407bde20, 0x523e: 0x407be020, 0x523f: 0x407be220, - // Block 0x149, offset 0x5240 - 0x5240: 0x407be420, 0x5241: 0x407be620, 0x5242: 0x407be820, 0x5243: 0x407bea20, - 0x5244: 0x407bec20, 0x5245: 0x407bee20, 0x5246: 0x407bf020, 0x5247: 0x407bf220, - 0x5248: 0x407bf420, 0x5249: 0x407bf620, 0x524a: 0x407bf820, 0x524b: 0x407bfa20, - 0x524c: 0x407bfc20, 0x524d: 0x407bfe20, 0x524e: 0x407c0020, 0x524f: 0x407c0220, - 0x5250: 0x407c0420, 0x5251: 0x407c0620, 0x5252: 0x407c0820, 0x5253: 0x407c0a20, - 0x5254: 0x407c0c20, 0x5255: 0x407c0e20, 0x5256: 0x407c1020, 0x5257: 0x407c1220, - 0x5258: 0x407c1420, 0x5259: 0x407c1620, 0x525a: 0x407c1820, 0x525b: 0x407c1a20, - 0x525c: 0x407c1c20, 0x525d: 0x407c1e20, 0x525e: 0x407c2020, 0x525f: 0x407c2220, - 0x5260: 0x407c2420, 0x5261: 0x407c2620, 0x5262: 0x407c2820, 0x5263: 0x407c2a20, - 0x5264: 0x407c2c20, 0x5265: 0x407c2e20, 0x5266: 0x407c3020, 0x5267: 0x407c3220, - 0x5268: 0x407c3420, 0x5269: 0x407c3620, 0x526a: 0x407c3820, 0x526b: 0x407c3a20, - 0x526c: 0x407c3c20, 0x526d: 0x407c3e20, 0x526e: 0x407c4020, 0x526f: 0x407c4220, - 0x5270: 0x407c4420, 0x5271: 0x407c4620, 0x5272: 0x407c4820, 0x5273: 0x407c4a20, - 0x5274: 0x407c4c20, 0x5275: 0x407c4e20, 0x5276: 0x407c5020, 0x5277: 0x407c5220, - 0x5278: 0x407c5420, 0x5279: 0x407c5620, 0x527a: 0x407c5820, 0x527b: 0x407c5a20, - 0x527c: 0x407c5c20, 0x527d: 0x407c5e20, 0x527e: 0x407c6020, 0x527f: 0x407c6220, - // Block 0x14a, offset 0x5280 - 0x5280: 0x407c6420, 0x5281: 0x407c6620, 0x5282: 0x407c6820, 0x5283: 0x407c6a20, - 0x5284: 0x407c6c20, 0x5285: 0x407c6e20, 0x5286: 0x407c7020, 0x5287: 0x407c7220, - 0x5288: 0x407c7420, 0x5289: 0x407c7620, 0x528a: 0x407c7820, 0x528b: 0x407c7a20, - 0x528c: 0x407c7c20, 0x528d: 0x407c7e20, 0x528e: 0x407c8020, 0x528f: 0x407c8220, - 0x5290: 0x407c8420, 0x5291: 0x407c8620, 0x5292: 0x407c8820, 0x5293: 0x407c8a20, - 0x5294: 0x407c8c20, 0x5295: 0x407c8e20, 0x5296: 0x407c9020, 0x5297: 0x407c9220, - 0x5298: 0x407c9420, 0x5299: 0x407c9620, 0x529a: 0x407c9820, 0x529b: 0x407c9a20, - 0x529c: 0x407c9c20, 0x529d: 0x407c9e20, 0x529e: 0x407ca020, 0x529f: 0x407ca220, - 0x52a0: 0x407ca420, 0x52a1: 0x407ca620, 0x52a2: 0x407ca820, 0x52a3: 0x407caa20, - 0x52a4: 0x407cac20, 0x52a5: 0x407cae20, 0x52a6: 0x407cb020, 0x52a7: 0x407cb220, - 0x52a8: 0x407cb420, 0x52a9: 0x407cb620, 0x52aa: 0x407cb820, 0x52ab: 0x407cba20, - 0x52ac: 0x407cbc20, 0x52ad: 0x407cbe20, 0x52ae: 0x407cc020, 0x52af: 0x407cc220, - 0x52b0: 0x407cc420, 0x52b1: 0x407cc620, 0x52b2: 0x407cc820, 0x52b3: 0x407cca20, - 0x52b4: 0x407ccc20, 0x52b5: 0x407cce20, 0x52b6: 0x407cd020, 0x52b7: 0x407cd220, - 0x52b8: 0x407cd420, 0x52b9: 0x407cd620, 0x52ba: 0x407cd820, 0x52bb: 0x407cda20, - 0x52bc: 0x407cdc20, 0x52bd: 0x407cde20, 0x52be: 0x407ce020, 0x52bf: 0x407ce220, - // Block 0x14b, offset 0x52c0 - 0x52c0: 0x407ce420, 0x52c1: 0x407ce620, 0x52c2: 0x407ce820, 0x52c3: 0x407cea20, - 0x52c4: 0x407cec20, 0x52c5: 0x407cee20, 0x52c6: 0x407cf020, 0x52c7: 0x407cf220, - 0x52c8: 0x407cf420, 0x52c9: 0x407cf620, 0x52ca: 0x407cf820, 0x52cb: 0x407cfa20, - 0x52cc: 0x407cfc20, 0x52cd: 0x407cfe20, 0x52ce: 0x407d0020, 0x52cf: 0x407d0220, - 0x52d0: 0x407d0420, 0x52d1: 0x407d0620, 0x52d2: 0x407d0820, 0x52d3: 0x407d0a20, - 0x52d4: 0x407d0c20, 0x52d5: 0x407d0e20, 0x52d6: 0x407d1020, 0x52d7: 0x407d1220, - 0x52d8: 0x407d1420, 0x52d9: 0x407d1620, 0x52da: 0x407d1820, 0x52db: 0x407d1a20, - 0x52dc: 0x407d1c20, 0x52dd: 0x407d1e20, 0x52de: 0x407d2020, 0x52df: 0x407d2220, - 0x52e0: 0x407d2420, 0x52e1: 0x407d2620, 0x52e2: 0x407d2820, 0x52e3: 0x407d2a20, - 0x52e4: 0x407d2c20, 0x52e5: 0x407d2e20, 0x52e6: 0x407d3020, 0x52e7: 0x407d3220, - 0x52e8: 0x407d3420, 0x52e9: 0x407d3620, 0x52ea: 0x407d3820, 0x52eb: 0x407d3a20, - 0x52ec: 0x407d3c20, 0x52ed: 0x407d3e20, 0x52ee: 0x407d4020, 0x52ef: 0x407d4220, - 0x52f0: 0x407d4420, 0x52f1: 0x407d4620, 0x52f2: 0x407d4820, 0x52f3: 0x407d4a20, - 0x52f4: 0x407d4c20, 0x52f5: 0x407d4e20, 0x52f6: 0x407d5020, 0x52f7: 0x407d5220, - 0x52f8: 0x407d5420, 0x52f9: 0x407d5620, 0x52fa: 0x407d5820, 0x52fb: 0x407d5a20, - 0x52fc: 0x407d5c20, 0x52fd: 0x407d5e20, 0x52fe: 0x407d6020, 0x52ff: 0x407d6220, - // Block 0x14c, offset 0x5300 - 0x5300: 0x407d6420, 0x5301: 0x407d6620, 0x5302: 0x407d6820, 0x5303: 0x407d6a20, - 0x5304: 0x407d6c20, 0x5305: 0x407d6e20, 0x5306: 0x407d7020, 0x5307: 0x407d7220, - 0x5308: 0x407d7420, 0x5309: 0x407d7620, 0x530a: 0x407d7820, 0x530b: 0x407d7a20, - 0x530c: 0x407d7c20, 0x530d: 0x407d7e20, 0x530e: 0x407d8020, 0x530f: 0x407d8220, - 0x5310: 0x407d8420, 0x5311: 0x407d8620, 0x5312: 0x407d8820, 0x5313: 0x407d8a20, - 0x5314: 0x407d8c20, 0x5315: 0x407d8e20, 0x5316: 0x407d9020, 0x5317: 0x407d9220, - 0x5318: 0x407d9420, 0x5319: 0x407d9620, 0x531a: 0x407d9820, 0x531b: 0x407d9a20, - 0x531c: 0x407d9c20, 0x531d: 0x407d9e20, 0x531e: 0x407da020, 0x531f: 0x407da220, - 0x5320: 0x407da420, 0x5321: 0x407da620, 0x5322: 0x407da820, 0x5323: 0x407daa20, - 0x5324: 0x407dac20, 0x5325: 0x407dae20, 0x5326: 0x407db020, 0x5327: 0x407db220, - 0x5328: 0x407db420, 0x5329: 0x407db620, 0x532a: 0x407db820, 0x532b: 0x407dba20, - 0x532c: 0x407dbc20, 0x532d: 0x407dbe20, 0x532e: 0x407dc020, - // Block 0x14d, offset 0x5340 - 0x5340: 0xe0000394, 0x5341: 0xe000045f, 0x5342: 0xe0000534, 0x5343: 0xe0000610, - 0x5344: 0xe00006cc, 0x5345: 0xe0000771, 0x5346: 0xe000081d, 0x5347: 0xe00008c2, - 0x5348: 0xe0000462, 0x5349: 0xe0000537, 0x534a: 0xe0000613, 0x534b: 0xe00006cf, - 0x534c: 0xe0000774, 0x534d: 0xe0000820, 0x534e: 0xe00008c5, 0x534f: 0xe000053a, - 0x5350: 0xe0000616, 0x5351: 0xe00006d2, 0x5352: 0xe0000777, 0x5353: 0xe0000823, - 0x5354: 0xe00008c8, 0x5355: 0xe000027f, 0x5356: 0xe0000397, 0x5357: 0xe0000465, - 0x5358: 0xe000053d, 0x5359: 0xe0000619, 0x535a: 0xe00006d5, 0x535b: 0xe000077a, - 0x535c: 0xe0000826, 0x535d: 0xe00008cb, 0x535e: 0xe0000282, 0x535f: 0xe000039a, - 0x5360: 0xe0000468, 0x5361: 0xe0000540, 0x5362: 0xe000061c, 0x5363: 0xe000039d, - 0x5364: 0xe000046b, 0x5365: 0xe000046e, 0x5366: 0xe0000543, 0x5367: 0xe000061f, - 0x5368: 0xe00006d8, 0x5369: 0xe000077d, 0x536a: 0xe0000829, 0x536b: 0xe00008ce, - 0x536c: 0xe0000285, 0x536d: 0xe00003a0, 0x536e: 0xe0000471, 0x536f: 0xe0000474, - 0x5370: 0xe0000546, 0x5371: 0xe0000622, 0x5372: 0x4029a020, 0x5373: 0x4029a220, - 0x5374: 0xe0000288, 0x5375: 0xe00003a3, 0x5376: 0xe0000477, 0x5377: 0xe000047a, - 0x5378: 0xe0000549, 0x5379: 0xe0000625, 0x537a: 0xe000047d, 0x537b: 0xe0000480, - 0x537c: 0xe000054c, 0x537d: 0xe000054f, 0x537e: 0xe0000552, 0x537f: 0xe0000555, - // Block 0x14e, offset 0x5380 - 0x5380: 0xe00006db, 0x5381: 0xe0000780, 0x5382: 0xe0000783, 0x5383: 0xe0000786, - 0x5384: 0xe000082c, 0x5385: 0xe000082f, 0x5386: 0xe00008d1, 0x5387: 0xe00008d4, - 0x5388: 0xe00008d7, 0x5389: 0xe00008da, 0x538a: 0xe00003a6, 0x538b: 0xe0000483, - 0x538c: 0xe0000558, 0x538d: 0xe0000628, 0x538e: 0xe00006de, 0x538f: 0xe000028b, - 0x5390: 0xe00003a9, 0x5391: 0xe0000486, 0x5392: 0xe000055b, 0x5393: 0xe000055e, - 0x5394: 0xe000062b, 0x5395: 0xe000062e, 0x5396: 0x4029a420, 0x5397: 0x4029a620, - 0x5398: 0xe000028e, 0x5399: 0xe00003ac, 0x539a: 0x4029a820, 0x539b: 0x4029aa20, - 0x539c: 0x4029ac20, 0x539d: 0x4029ae20, 0x539e: 0x4029b020, 0x539f: 0x4029b220, - 0x53a0: 0x4029b420, 0x53a1: 0x4029b620, 0x53a2: 0x4029b820, - 0x53b0: 0x4003ca20, 0x53b1: 0x4003cc20, 0x53b2: 0x4003ce20, 0x53b3: 0x4003d020, - // Block 0x14f, offset 0x53c0 - 0x53c0: 0x407dc220, 0x53c1: 0x407dc420, 0x53c2: 0x407dc620, 0x53c3: 0x407dc820, - 0x53c4: 0x407dca20, 0x53c5: 0x407dcc20, 0x53c6: 0x407dce20, 0x53c7: 0x407dd020, - 0x53c8: 0x407dd220, 0x53c9: 0x407dd420, 0x53ca: 0x407dd620, 0x53cb: 0x407dd820, - 0x53cc: 0x407dda20, 0x53cd: 0x407ddc20, 0x53ce: 0x407dde20, 0x53cf: 0x407de020, - 0x53d0: 0x407de220, 0x53d1: 0x407de420, 0x53d2: 0x407de620, 0x53d3: 0x407de820, - 0x53d4: 0x407dea20, 0x53d5: 0x407dec20, 0x53d6: 0x407dee20, 0x53d7: 0x407df020, - 0x53d8: 0x407df220, 0x53d9: 0x407df420, 0x53da: 0x407df620, 0x53db: 0x407df820, - 0x53dc: 0x407dfa20, 0x53dd: 0x407dfc20, 0x53de: 0x407dfe20, 0x53df: 0x407e0020, - 0x53e0: 0x407e0220, 0x53e1: 0x407e0420, 0x53e2: 0x407e0620, 0x53e3: 0x407e0820, - 0x53e4: 0x407e0a20, 0x53e5: 0x407e0c20, 0x53e6: 0x407e0e20, 0x53e7: 0x407e1020, - 0x53e8: 0x407e1220, 0x53e9: 0x407e1420, 0x53ea: 0x407e1620, 0x53eb: 0x407e1820, - 0x53ec: 0x407e1a20, 0x53ed: 0x407e1c20, 0x53ee: 0x407e1e20, 0x53ef: 0x407e2020, - 0x53f0: 0x407e2220, 0x53f1: 0x407e2420, 0x53f2: 0x407e2620, 0x53f3: 0x407e2820, - 0x53f4: 0x407e2a20, 0x53f5: 0x407e2c20, 0x53f6: 0x407e2e20, 0x53f7: 0x407e3020, - 0x53f8: 0x407e3220, 0x53f9: 0x407e3420, 0x53fa: 0x407e3620, 0x53fb: 0x407e3820, - 0x53fc: 0x407e3a20, 0x53fd: 0x407e3c20, 0x53fe: 0x407e3e20, 0x53ff: 0x407e4020, - // Block 0x150, offset 0x5400 - 0x5400: 0x407e4220, 0x5401: 0x407e4420, 0x5402: 0x407e4620, 0x5403: 0x407e4820, - 0x5404: 0x407e4a20, 0x5405: 0x407e4c20, 0x5406: 0x407e4e20, 0x5407: 0x407e5020, - 0x5408: 0x407e5220, 0x5409: 0x407e5420, 0x540a: 0x407e5620, 0x540b: 0x407e5820, - 0x540c: 0x407e5a20, 0x540d: 0x407e5c20, 0x540e: 0x407e5e20, 0x540f: 0x407e6020, - 0x5410: 0x407e6220, 0x5411: 0x407e6420, 0x5412: 0x407e6620, 0x5413: 0x407e6820, - 0x5414: 0x407e6a20, 0x5415: 0x407e6c20, 0x5416: 0x407e6e20, 0x5417: 0x407e7020, - 0x5418: 0x407e7220, 0x5419: 0x407e7420, 0x541a: 0x407e7620, 0x541b: 0x407e7820, - 0x541c: 0x407e7a20, 0x541d: 0x407e7c20, 0x541e: 0x407e7e20, 0x541f: 0x407e8020, - 0x5420: 0x407e8220, 0x5421: 0x407e8420, 0x5422: 0x407e8620, 0x5423: 0x407e8820, - 0x5424: 0x407e8a20, 0x5425: 0x407e8c20, 0x5426: 0x407e8e20, 0x5427: 0x407e9020, - 0x5428: 0x407e9220, 0x5429: 0x407e9420, 0x542a: 0x407e9620, 0x542b: 0x407e9820, - 0x542c: 0x407e9a20, 0x542d: 0x407e9c20, 0x542e: 0x407e9e20, 0x542f: 0x407ea020, - 0x5430: 0x407ea220, 0x5431: 0x407ea420, 0x5432: 0x407ea620, 0x5433: 0x407ea820, - 0x5434: 0x407eaa20, 0x5435: 0x407eac20, 0x5436: 0x407eae20, 0x5437: 0x407eb020, - 0x5438: 0x407eb220, 0x5439: 0x407eb420, 0x543a: 0x407eb620, 0x543b: 0x407eb820, - 0x543c: 0x407eba20, 0x543d: 0x407ebc20, 0x543e: 0x407ebe20, 0x543f: 0x407ec020, - // Block 0x151, offset 0x5440 - 0x5440: 0x407ec220, 0x5441: 0x407ec420, 0x5442: 0x407ec620, 0x5443: 0x407ec820, - 0x5444: 0x407eca20, 0x5445: 0x407ecc20, 0x5446: 0x407ece20, 0x5447: 0x407ed020, - 0x5448: 0x407ed220, 0x5449: 0x407ed420, 0x544a: 0x407ed620, 0x544b: 0x407ed820, - 0x544c: 0x407eda20, 0x544d: 0x407edc20, 0x544e: 0x407ede20, 0x544f: 0x407ee020, - 0x5450: 0x407ee220, 0x5451: 0x407ee420, 0x5452: 0x407ee620, 0x5453: 0x407ee820, - 0x5454: 0x407eea20, 0x5455: 0x407eec20, 0x5456: 0x407eee20, 0x5457: 0x407ef020, - 0x5458: 0x407ef220, 0x5459: 0x407ef420, 0x545a: 0x407ef620, 0x545b: 0x407ef820, - 0x545c: 0x407efa20, 0x545d: 0x407efc20, 0x545e: 0x407efe20, 0x545f: 0x407f0020, - 0x5460: 0x407f0220, 0x5461: 0x407f0420, 0x5462: 0x407f0620, 0x5463: 0x407f0820, - 0x5464: 0x407f0a20, 0x5465: 0x407f0c20, 0x5466: 0x407f0e20, 0x5467: 0x407f1020, - 0x5468: 0x407f1220, 0x5469: 0x407f1420, 0x546a: 0x407f1620, 0x546b: 0x407f1820, - 0x546c: 0x407f1a20, 0x546d: 0x407f1c20, 0x546e: 0x407f1e20, 0x546f: 0x407f2020, - 0x5470: 0x407f2220, 0x5471: 0x407f2420, 0x5472: 0x407f2620, 0x5473: 0x407f2820, - 0x5474: 0x407f2a20, 0x5475: 0x407f2c20, 0x5476: 0x407f2e20, 0x5477: 0x407f3020, - 0x5478: 0x407f3220, 0x5479: 0x407f3420, 0x547a: 0x407f3620, 0x547b: 0x407f3820, - 0x547c: 0x407f3a20, 0x547d: 0x407f3c20, 0x547e: 0x407f3e20, 0x547f: 0x407f4020, - // Block 0x152, offset 0x5480 - 0x5480: 0x407f4220, 0x5481: 0x407f4420, 0x5482: 0x407f4620, 0x5483: 0x407f4820, - 0x5484: 0x407f4a20, 0x5485: 0x407f4c20, 0x5486: 0x407f4e20, 0x5487: 0x407f5020, - 0x5488: 0x407f5220, 0x5489: 0x407f5420, 0x548a: 0x407f5620, 0x548b: 0x407f5820, - 0x548c: 0x407f5a20, 0x548d: 0x407f5c20, 0x548e: 0x407f5e20, 0x548f: 0x407f6020, - 0x5490: 0x407f6220, 0x5491: 0x407f6420, 0x5492: 0x407f6620, 0x5493: 0x407f6820, - 0x5494: 0x407f6a20, 0x5495: 0x407f6c20, 0x5496: 0x407f6e20, 0x5497: 0x407f7020, - 0x5498: 0x407f7220, 0x5499: 0x407f7420, 0x549a: 0x407f7620, 0x549b: 0x407f7820, - 0x549c: 0x407f7a20, 0x549d: 0x407f7c20, 0x549e: 0x407f7e20, 0x549f: 0x407f8020, - 0x54a0: 0x407f8220, 0x54a1: 0x407f8420, 0x54a2: 0x407f8620, 0x54a3: 0x407f8820, - 0x54a4: 0x407f8a20, 0x54a5: 0x407f8c20, 0x54a6: 0x407f8e20, 0x54a7: 0x407f9020, - 0x54a8: 0x407f9220, 0x54a9: 0x407f9420, 0x54aa: 0x407f9620, 0x54ab: 0x407f9820, - 0x54ac: 0x407f9a20, 0x54ad: 0x407f9c20, 0x54ae: 0x407f9e20, 0x54af: 0x407fa020, - 0x54b0: 0x407fa220, 0x54b1: 0x407fa420, 0x54b2: 0x407fa620, 0x54b3: 0x407fa820, - 0x54b4: 0x407faa20, 0x54b5: 0x407fac20, 0x54b6: 0x407fae20, 0x54b7: 0x407fb020, - 0x54b8: 0x407fb220, 0x54b9: 0x407fb420, 0x54ba: 0x407fb620, 0x54bb: 0x407fb820, - 0x54bc: 0x407fba20, 0x54bd: 0x407fbc20, 0x54be: 0x407fbe20, 0x54bf: 0x407fc020, - // Block 0x153, offset 0x54c0 - 0x54c0: 0x407fc220, 0x54c1: 0x407fc420, 0x54c2: 0x407fc620, 0x54c3: 0x407fc820, - 0x54c4: 0x407fca20, 0x54c5: 0x407fcc20, 0x54c6: 0x407fce20, 0x54c7: 0x407fd020, - 0x54c8: 0x407fd220, 0x54c9: 0x407fd420, 0x54ca: 0x407fd620, 0x54cb: 0x407fd820, - 0x54cc: 0x407fda20, 0x54cd: 0x407fdc20, 0x54ce: 0x407fde20, 0x54cf: 0x407fe020, - 0x54d0: 0x407fe220, 0x54d1: 0x407fe420, 0x54d2: 0x407fe620, 0x54d3: 0x407fe820, - 0x54d4: 0x407fea20, 0x54d5: 0x407fec20, 0x54d6: 0x407fee20, 0x54d7: 0x407ff020, - 0x54d8: 0x407ff220, 0x54d9: 0x407ff420, 0x54da: 0x407ff620, 0x54db: 0x407ff820, - 0x54dc: 0x407ffa20, 0x54dd: 0x407ffc20, 0x54de: 0x407ffe20, 0x54df: 0x40800020, - 0x54e0: 0x40800220, 0x54e1: 0x40800420, 0x54e2: 0x40800620, 0x54e3: 0x40800820, - 0x54e4: 0x40800a20, 0x54e5: 0x40800c20, 0x54e6: 0x40800e20, 0x54e7: 0x40801020, - 0x54e8: 0x40801220, 0x54e9: 0x40801420, 0x54ea: 0x40801620, 0x54eb: 0x40801820, - 0x54ec: 0x40801a20, 0x54ed: 0x40801c20, 0x54ee: 0x40801e20, 0x54ef: 0x40802020, - 0x54f0: 0x40802220, 0x54f1: 0x40802420, 0x54f2: 0x40802620, 0x54f3: 0x40802820, - 0x54f4: 0x40802a20, 0x54f5: 0x40802c20, 0x54f6: 0x40802e20, 0x54f7: 0x40803020, - 0x54f8: 0x40803220, 0x54f9: 0x40803420, 0x54fa: 0x40803620, 0x54fb: 0x40803820, - 0x54fc: 0x40803a20, 0x54fd: 0x40803c20, 0x54fe: 0x40803e20, 0x54ff: 0x40804020, - // Block 0x154, offset 0x5500 - 0x5500: 0x40804220, 0x5501: 0x40804420, 0x5502: 0x40804620, 0x5503: 0x40804820, - 0x5504: 0x40804a20, 0x5505: 0x40804c20, 0x5506: 0x40804e20, 0x5507: 0x40805020, - 0x5508: 0x40805220, 0x5509: 0x40805420, 0x550a: 0x40805620, 0x550b: 0x40805820, - 0x550c: 0x40805a20, 0x550d: 0x40805c20, 0x550e: 0x40805e20, 0x550f: 0x40806020, - 0x5510: 0x40806220, 0x5511: 0x40806420, 0x5512: 0x40806620, 0x5513: 0x40806820, - 0x5514: 0x40806a20, 0x5515: 0x40806c20, 0x5516: 0x40806e20, 0x5517: 0x40807020, - 0x5518: 0x40807220, 0x5519: 0x40807420, 0x551a: 0x40807620, 0x551b: 0x40807820, - 0x551c: 0x40807a20, 0x551d: 0x40807c20, 0x551e: 0x40807e20, 0x551f: 0x40808020, - 0x5520: 0x40808220, 0x5521: 0x40808420, 0x5522: 0x40808620, 0x5523: 0x40808820, - 0x5524: 0x40808a20, 0x5525: 0x40808c20, 0x5526: 0x40808e20, 0x5527: 0x40809020, - 0x5528: 0x40809220, 0x5529: 0x40809420, 0x552a: 0x40809620, 0x552b: 0x40809820, - 0x552c: 0x40809a20, 0x552d: 0x40809c20, 0x552e: 0x40809e20, 0x552f: 0x4080a020, - 0x5530: 0x4080a220, 0x5531: 0x4080a420, 0x5532: 0x4080a620, 0x5533: 0x4080a820, - 0x5534: 0x4080aa20, 0x5535: 0x4080ac20, 0x5536: 0x4080ae20, 0x5537: 0x4080b020, - 0x5538: 0x4080b220, 0x5539: 0x4080b420, 0x553a: 0x4080b620, 0x553b: 0x4080b820, - 0x553c: 0x4080ba20, 0x553d: 0x4080bc20, 0x553e: 0x4080be20, 0x553f: 0x4080c020, - // Block 0x155, offset 0x5540 - 0x5540: 0x4080c220, 0x5541: 0x4080c420, 0x5542: 0x4080c620, 0x5543: 0x4080c820, - 0x5544: 0x4080ca20, 0x5545: 0x4080cc20, 0x5546: 0x4080ce20, 0x5547: 0x4080d020, - 0x5548: 0x4080d220, 0x5549: 0x4080d420, 0x554a: 0x4080d620, 0x554b: 0x4080d820, - 0x554c: 0x4080da20, 0x554d: 0x4080dc20, 0x554e: 0x4080de20, 0x554f: 0x4080e020, - 0x5550: 0x4080e220, 0x5551: 0x4080e420, 0x5552: 0x4080e620, 0x5553: 0x4080e820, - 0x5554: 0x4080ea20, 0x5555: 0x4080ec20, 0x5556: 0x4080ee20, 0x5557: 0x4080f020, - 0x5558: 0x4080f220, 0x5559: 0x4080f420, 0x555a: 0x4080f620, 0x555b: 0x4080f820, - 0x555c: 0x4080fa20, 0x555d: 0x4080fc20, 0x555e: 0x4080fe20, 0x555f: 0x40810020, - 0x5560: 0x40810220, 0x5561: 0x40810420, 0x5562: 0x40810620, 0x5563: 0x40810820, - 0x5564: 0x40810a20, 0x5565: 0x40810c20, 0x5566: 0x40810e20, 0x5567: 0x40811020, - 0x5568: 0x40811220, 0x5569: 0x40811420, 0x556a: 0x40811620, 0x556b: 0x40811820, - 0x556c: 0x40811a20, 0x556d: 0x40811c20, 0x556e: 0x40811e20, 0x556f: 0x40812020, - 0x5570: 0x40812220, 0x5571: 0x40812420, 0x5572: 0x40812620, 0x5573: 0x40812820, - 0x5574: 0x40812a20, 0x5575: 0x40812c20, 0x5576: 0x40812e20, 0x5577: 0x40813020, - 0x5578: 0x40813220, 0x5579: 0x40813420, 0x557a: 0x40813620, 0x557b: 0x40813820, - 0x557c: 0x40813a20, 0x557d: 0x40813c20, 0x557e: 0x40813e20, 0x557f: 0x40814020, - // Block 0x156, offset 0x5580 - 0x5580: 0x40814220, 0x5581: 0x40814420, 0x5582: 0x40814620, 0x5583: 0x40814820, - 0x5584: 0x40814a20, 0x5585: 0x40814c20, 0x5586: 0x40814e20, 0x5587: 0x40815020, - 0x5588: 0x40815220, 0x5589: 0x40815420, 0x558a: 0x40815620, 0x558b: 0x40815820, - 0x558c: 0x40815a20, 0x558d: 0x40815c20, 0x558e: 0x40815e20, 0x558f: 0x40816020, - 0x5590: 0x40816220, 0x5591: 0x40816420, 0x5592: 0x40816620, 0x5593: 0x40816820, - 0x5594: 0x40816a20, 0x5595: 0x40816c20, 0x5596: 0x40816e20, 0x5597: 0x40817020, - 0x5598: 0x40817220, 0x5599: 0x40817420, 0x559a: 0x40817620, 0x559b: 0x40817820, - 0x559c: 0x40817a20, 0x559d: 0x40817c20, 0x559e: 0x40817e20, 0x559f: 0x40818020, - 0x55a0: 0x40818220, 0x55a1: 0x40818420, 0x55a2: 0x40818620, 0x55a3: 0x40818820, - 0x55a4: 0x40818a20, 0x55a5: 0x40818c20, 0x55a6: 0x40818e20, 0x55a7: 0x40819020, - 0x55a8: 0x40819220, 0x55a9: 0x40819420, 0x55aa: 0x40819620, 0x55ab: 0x40819820, - 0x55ac: 0x40819a20, 0x55ad: 0x40819c20, 0x55ae: 0x40819e20, 0x55af: 0x4081a020, - 0x55b0: 0x4081a220, 0x55b1: 0x4081a420, 0x55b2: 0x4081a620, 0x55b3: 0x4081a820, - 0x55b4: 0x4081aa20, 0x55b5: 0x4081ac20, 0x55b6: 0x4081ae20, 0x55b7: 0x4081b020, - 0x55b8: 0x4081b220, 0x55b9: 0x4081b420, 0x55ba: 0x4081b620, 0x55bb: 0x4081b820, - 0x55bc: 0x4081ba20, 0x55bd: 0x4081bc20, 0x55be: 0x4081be20, 0x55bf: 0x4081c020, - // Block 0x157, offset 0x55c0 - 0x55c0: 0x4081c220, 0x55c1: 0x4081c420, 0x55c2: 0x4081c620, 0x55c3: 0x4081c820, - 0x55c4: 0x4081ca20, 0x55c5: 0x4081cc20, 0x55c6: 0x4081ce20, 0x55c7: 0x4081d020, - 0x55c8: 0x4081d220, 0x55c9: 0x4081d420, 0x55ca: 0x4081d620, 0x55cb: 0x4081d820, - 0x55cc: 0x4081da20, 0x55cd: 0x4081dc20, 0x55ce: 0x4081de20, 0x55cf: 0x4081e020, - 0x55d0: 0x4081e220, 0x55d1: 0x4081e420, 0x55d2: 0x4081e620, 0x55d3: 0x4081e820, - 0x55d4: 0x4081ea20, 0x55d5: 0x4081ec20, 0x55d6: 0x4081ee20, 0x55d7: 0x4081f020, - 0x55d8: 0x4081f220, 0x55d9: 0x4081f420, 0x55da: 0x4081f620, 0x55db: 0x4081f820, - 0x55dc: 0x4081fa20, 0x55dd: 0x4081fc20, 0x55de: 0x4081fe20, 0x55df: 0x40820020, - 0x55e0: 0x40820220, 0x55e1: 0x40820420, 0x55e2: 0x40820620, 0x55e3: 0x40820820, - 0x55e4: 0x40820a20, 0x55e5: 0x40820c20, 0x55e6: 0x40820e20, 0x55e7: 0x40821020, - 0x55e8: 0x40821220, 0x55e9: 0x40821420, 0x55ea: 0x40821620, 0x55eb: 0x40821820, - 0x55ec: 0x40821a20, 0x55ed: 0x40821c20, 0x55ee: 0x40821e20, 0x55ef: 0x40822020, - 0x55f0: 0x40822220, 0x55f1: 0x40822420, 0x55f2: 0x40822620, 0x55f3: 0x40822820, - 0x55f4: 0x40822a20, 0x55f5: 0x40822c20, 0x55f6: 0x40822e20, 0x55f7: 0x40823020, - 0x55f8: 0x40823220, 0x55f9: 0x40823420, 0x55fa: 0x40823620, 0x55fb: 0x40823820, - 0x55fc: 0x40823a20, 0x55fd: 0x40823c20, 0x55fe: 0x40823e20, 0x55ff: 0x40824020, - // Block 0x158, offset 0x5600 - 0x5600: 0x40824220, 0x5601: 0x40824420, 0x5602: 0x40824620, 0x5603: 0x40824820, - 0x5604: 0x40824a20, 0x5605: 0x40824c20, 0x5606: 0x40824e20, 0x5607: 0x40825020, - 0x5608: 0x40825220, 0x5609: 0x40825420, 0x560a: 0x40825620, 0x560b: 0x40825820, - 0x560c: 0x40825a20, 0x560d: 0x40825c20, 0x560e: 0x40825e20, 0x560f: 0x40826020, - 0x5610: 0x40826220, 0x5611: 0x40826420, 0x5612: 0x40826620, 0x5613: 0x40826820, - 0x5614: 0x40826a20, 0x5615: 0x40826c20, 0x5616: 0x40826e20, 0x5617: 0x40827020, - 0x5618: 0x40827220, 0x5619: 0x40827420, 0x561a: 0x40827620, 0x561b: 0x40827820, - 0x561c: 0x40827a20, 0x561d: 0x40827c20, 0x561e: 0x40827e20, 0x561f: 0x40828020, - 0x5620: 0x40828220, 0x5621: 0x40828420, 0x5622: 0x40828620, 0x5623: 0x40828820, - 0x5624: 0x40828a20, 0x5625: 0x40828c20, 0x5626: 0x40828e20, 0x5627: 0x40829020, - 0x5628: 0x40829220, 0x5629: 0x40829420, 0x562a: 0x40829620, 0x562b: 0x40829820, - 0x562c: 0x40829a20, 0x562d: 0x40829c20, 0x562e: 0x40829e20, 0x562f: 0x4082a020, - 0x5630: 0x4082a220, 0x5631: 0x4082a420, 0x5632: 0x4082a620, 0x5633: 0x4082a820, - 0x5634: 0x4082aa20, 0x5635: 0x4082ac20, 0x5636: 0x4082ae20, 0x5637: 0x4082b020, - 0x5638: 0x4082b220, 0x5639: 0x4082b420, 0x563a: 0x4082b620, 0x563b: 0x4082b820, - 0x563c: 0x4082ba20, 0x563d: 0x4082bc20, 0x563e: 0x4082be20, 0x563f: 0x4082c020, - // Block 0x159, offset 0x5640 - 0x5640: 0x4082c220, 0x5641: 0x4082c420, 0x5642: 0x4082c620, 0x5643: 0x4082c820, - 0x5644: 0x4082ca20, 0x5645: 0x4082cc20, 0x5646: 0x4082ce20, 0x5647: 0x4082d020, - 0x5648: 0x4082d220, 0x5649: 0x4082d420, 0x564a: 0x4082d620, 0x564b: 0x4082d820, - 0x564c: 0x4082da20, 0x564d: 0x4082dc20, 0x564e: 0x4082de20, 0x564f: 0x4082e020, - 0x5650: 0x4082e220, 0x5651: 0x4082e420, 0x5652: 0x4082e620, 0x5653: 0x4082e820, - 0x5654: 0x4082ea20, 0x5655: 0x4082ec20, 0x5656: 0x4082ee20, 0x5657: 0x4082f020, - 0x5658: 0x4082f220, 0x5659: 0x4082f420, 0x565a: 0x4082f620, 0x565b: 0x4082f820, - 0x565c: 0x4082fa20, 0x565d: 0x4082fc20, 0x565e: 0x4082fe20, 0x565f: 0x40830020, - 0x5660: 0x40830220, 0x5661: 0x40830420, 0x5662: 0x40830620, 0x5663: 0x40830820, - 0x5664: 0x40830a20, 0x5665: 0x40830c20, 0x5666: 0x40830e20, 0x5667: 0x40831020, - 0x5668: 0x40831220, 0x5669: 0x40831420, 0x566a: 0x40831620, 0x566b: 0x40831820, - 0x566c: 0x40831a20, 0x566d: 0x40831c20, 0x566e: 0x40831e20, 0x566f: 0x40832020, - 0x5670: 0x40832220, 0x5671: 0x40832420, 0x5672: 0x40832620, 0x5673: 0x40832820, - 0x5674: 0x40832a20, 0x5675: 0x40832c20, 0x5676: 0x40832e20, 0x5677: 0x40833020, - 0x5678: 0x40833220, 0x5679: 0x40833420, 0x567a: 0x40833620, 0x567b: 0x40833820, - 0x567c: 0x40833a20, 0x567d: 0x40833c20, 0x567e: 0x40833e20, 0x567f: 0x40834020, - // Block 0x15a, offset 0x5680 - 0x5680: 0x40834220, 0x5681: 0x40834420, 0x5682: 0x40834620, 0x5683: 0x40834820, - 0x5684: 0x40834a20, 0x5685: 0x40834c20, 0x5686: 0x40834e20, 0x5687: 0x40835020, - 0x5688: 0x40835220, 0x5689: 0x40835420, 0x568a: 0x40835620, 0x568b: 0x40835820, - 0x568c: 0x40835a20, 0x568d: 0x40835c20, 0x568e: 0x40835e20, 0x568f: 0x40836020, - 0x5690: 0x40836220, 0x5691: 0x40836420, 0x5692: 0x40836620, 0x5693: 0x40836820, - 0x5694: 0x40836a20, 0x5695: 0x40836c20, 0x5696: 0x40836e20, 0x5697: 0x40837020, - 0x5698: 0x40837220, 0x5699: 0x40837420, 0x569a: 0x40837620, 0x569b: 0x40837820, - 0x569c: 0x40837a20, 0x569d: 0x40837c20, 0x569e: 0x40837e20, 0x569f: 0x40838020, - 0x56a0: 0x40838220, 0x56a1: 0x40838420, 0x56a2: 0x40838620, 0x56a3: 0x40838820, - 0x56a4: 0x40838a20, 0x56a5: 0x40838c20, 0x56a6: 0x40838e20, 0x56a7: 0x40839020, - 0x56a8: 0x40839220, 0x56a9: 0x40839420, 0x56aa: 0x40839620, 0x56ab: 0x40839820, - 0x56ac: 0x40839a20, 0x56ad: 0x40839c20, 0x56ae: 0x40839e20, 0x56af: 0x4083a020, - 0x56b0: 0x4083a220, 0x56b1: 0x4083a420, 0x56b2: 0x4083a620, 0x56b3: 0x4083a820, - 0x56b4: 0x4083aa20, 0x56b5: 0x4083ac20, 0x56b6: 0x4083ae20, 0x56b7: 0x4083b020, - 0x56b8: 0x4083b220, 0x56b9: 0x4083b420, 0x56ba: 0x4083b620, 0x56bb: 0x4083b820, - 0x56bc: 0x4083ba20, 0x56bd: 0x4083bc20, 0x56be: 0x4083be20, 0x56bf: 0x4083c020, - // Block 0x15b, offset 0x56c0 - 0x56c0: 0x4083c220, 0x56c1: 0x4083c420, 0x56c2: 0x4083c620, 0x56c3: 0x4083c820, - 0x56c4: 0x4083ca20, 0x56c5: 0x4083cc20, 0x56c6: 0x4083ce20, 0x56c7: 0x4083d020, - 0x56c8: 0x4083d220, 0x56c9: 0x4083d420, 0x56ca: 0x4083d620, 0x56cb: 0x4083d820, - 0x56cc: 0x4083da20, 0x56cd: 0x4083dc20, 0x56ce: 0x4083de20, 0x56cf: 0x4083e020, - 0x56d0: 0x4083e220, 0x56d1: 0x4083e420, 0x56d2: 0x4083e620, 0x56d3: 0x4083e820, - 0x56d4: 0x4083ea20, 0x56d5: 0x4083ec20, 0x56d6: 0x4083ee20, 0x56d7: 0x4083f020, - 0x56d8: 0x4083f220, 0x56d9: 0x4083f420, 0x56da: 0x4083f620, 0x56db: 0x4083f820, - 0x56dc: 0x4083fa20, 0x56dd: 0x4083fc20, 0x56de: 0x4083fe20, 0x56df: 0x40840020, - 0x56e0: 0x40840220, 0x56e1: 0x40840420, 0x56e2: 0x40840620, 0x56e3: 0x40840820, - 0x56e4: 0x40840a20, 0x56e5: 0x40840c20, 0x56e6: 0x40840e20, 0x56e7: 0x40841020, - 0x56e8: 0x40841220, 0x56e9: 0x40841420, 0x56ea: 0x40841620, 0x56eb: 0x40841820, - 0x56ec: 0x40841a20, 0x56ed: 0x40841c20, 0x56ee: 0x40841e20, 0x56ef: 0x40842020, - 0x56f0: 0x40842220, 0x56f1: 0x40842420, 0x56f2: 0x40842620, 0x56f3: 0x40842820, - 0x56f4: 0x40842a20, 0x56f5: 0x40842c20, 0x56f6: 0x40842e20, 0x56f7: 0x40843020, - 0x56f8: 0x40843220, 0x56f9: 0x40843420, 0x56fa: 0x40843620, 0x56fb: 0x40843820, - 0x56fc: 0x40843a20, 0x56fd: 0x40843c20, 0x56fe: 0x40843e20, 0x56ff: 0x40844020, - // Block 0x15c, offset 0x5700 - 0x5700: 0x40844220, 0x5701: 0x40844420, 0x5702: 0x40844620, 0x5703: 0x40844820, - 0x5704: 0x40844a20, 0x5705: 0x40844c20, 0x5706: 0x40844e20, 0x5707: 0x40845020, - 0x5708: 0x40845220, 0x5709: 0x40845420, 0x570a: 0x40845620, 0x570b: 0x40845820, - 0x570c: 0x40845a20, 0x570d: 0x40845c20, 0x570e: 0x40845e20, 0x570f: 0x40846020, - 0x5710: 0x40846220, 0x5711: 0x40846420, 0x5712: 0x40846620, 0x5713: 0x40846820, - 0x5714: 0x40846a20, 0x5715: 0x40846c20, 0x5716: 0x40846e20, 0x5717: 0x40847020, - 0x5718: 0x40847220, 0x5719: 0x40847420, 0x571a: 0x40847620, 0x571b: 0x40847820, - 0x571c: 0x40847a20, 0x571d: 0x40847c20, 0x571e: 0x40847e20, 0x571f: 0x40848020, - 0x5720: 0x40848220, 0x5721: 0x40848420, 0x5722: 0x40848620, 0x5723: 0x40848820, - 0x5724: 0x40848a20, 0x5725: 0x40848c20, 0x5726: 0x40848e20, 0x5727: 0x40849020, - 0x5728: 0x40849220, 0x5729: 0x40849420, 0x572a: 0x40849620, 0x572b: 0x40849820, - 0x572c: 0x40849a20, 0x572d: 0x40849c20, 0x572e: 0x40849e20, 0x572f: 0x4084a020, - 0x5730: 0x4084a220, 0x5731: 0x4084a420, 0x5732: 0x4084a620, 0x5733: 0x4084a820, - 0x5734: 0x4084aa20, 0x5735: 0x4084ac20, 0x5736: 0x4084ae20, 0x5737: 0x4084b020, - 0x5738: 0x4084b220, 0x5739: 0x4084b420, 0x573a: 0x4084b620, 0x573b: 0x4084b820, - 0x573c: 0x4084ba20, 0x573d: 0x4084bc20, 0x573e: 0x4084be20, 0x573f: 0x4084c020, - // Block 0x15d, offset 0x5740 - 0x5740: 0x4084c220, 0x5741: 0x4084c420, 0x5742: 0x4084c620, 0x5743: 0x4084c820, - 0x5744: 0x4084ca20, 0x5745: 0x4084cc20, 0x5746: 0x4084ce20, 0x5747: 0x4084d020, - 0x5748: 0x4084d220, 0x5749: 0x4084d420, 0x574a: 0x4084d620, 0x574b: 0x4084d820, - 0x574c: 0x4084da20, 0x574d: 0x4084dc20, 0x574e: 0x4084de20, 0x574f: 0x4084e020, - 0x5750: 0x4084e220, 0x5751: 0x4084e420, 0x5752: 0x4084e620, 0x5753: 0x4084e820, - 0x5754: 0x4084ea20, 0x5755: 0x4084ec20, 0x5756: 0x4084ee20, 0x5757: 0x4084f020, - 0x5758: 0x4084f220, 0x5759: 0x4084f420, 0x575a: 0x4084f620, 0x575b: 0x4084f820, - 0x575c: 0x4084fa20, 0x575d: 0x4084fc20, 0x575e: 0x4084fe20, 0x575f: 0x40850020, - 0x5760: 0x40850220, 0x5761: 0x40850420, 0x5762: 0x40850620, 0x5763: 0x40850820, - 0x5764: 0x40850a20, 0x5765: 0x40850c20, 0x5766: 0x40850e20, 0x5767: 0x40851020, - 0x5768: 0x40851220, 0x5769: 0x40851420, 0x576a: 0x40851620, 0x576b: 0x40851820, - 0x576c: 0x40851a20, 0x576d: 0x40851c20, 0x576e: 0x40851e20, 0x576f: 0x40852020, - 0x5770: 0x40852220, 0x5771: 0x40852420, 0x5772: 0x40852620, 0x5773: 0x40852820, - 0x5774: 0x40852a20, 0x5775: 0x40852c20, 0x5776: 0x40852e20, 0x5777: 0x40853020, - 0x5778: 0x40853220, 0x5779: 0x40853420, 0x577a: 0x40853620, 0x577b: 0x40853820, - 0x577c: 0x40853a20, 0x577d: 0x40853c20, 0x577e: 0x40853e20, 0x577f: 0x40854020, - // Block 0x15e, offset 0x5780 - 0x5780: 0x40854220, 0x5781: 0x40854420, 0x5782: 0x40854620, 0x5783: 0x40854820, - 0x5784: 0x40854a20, 0x5785: 0x40854c20, 0x5786: 0x40854e20, 0x5787: 0x40855020, - 0x5788: 0x40855220, 0x5789: 0x40855420, 0x578a: 0x40855620, 0x578b: 0x40855820, - 0x578c: 0x40855a20, 0x578d: 0x40855c20, 0x578e: 0x40855e20, 0x578f: 0x40856020, - 0x5790: 0x40856220, 0x5791: 0x40856420, 0x5792: 0x40856620, 0x5793: 0x40856820, - 0x5794: 0x40856a20, 0x5795: 0x40856c20, 0x5796: 0x40856e20, 0x5797: 0x40857020, - 0x5798: 0x40857220, 0x5799: 0x40857420, 0x579a: 0x40857620, 0x579b: 0x40857820, - 0x579c: 0x40857a20, 0x579d: 0x40857c20, 0x579e: 0x40857e20, 0x579f: 0x40858020, - 0x57a0: 0x40858220, 0x57a1: 0x40858420, 0x57a2: 0x40858620, 0x57a3: 0x40858820, - 0x57a4: 0x40858a20, 0x57a5: 0x40858c20, 0x57a6: 0x40858e20, 0x57a7: 0x40859020, - 0x57a8: 0x40859220, 0x57a9: 0x40859420, 0x57aa: 0x40859620, 0x57ab: 0x40859820, - 0x57ac: 0x40859a20, 0x57ad: 0x40859c20, 0x57ae: 0x40859e20, 0x57af: 0x4085a020, - 0x57b0: 0x4085a220, 0x57b1: 0x4085a420, 0x57b2: 0x4085a620, 0x57b3: 0x4085a820, - 0x57b4: 0x4085aa20, 0x57b5: 0x4085ac20, 0x57b6: 0x4085ae20, 0x57b7: 0x4085b020, - 0x57b8: 0x4085b220, 0x57b9: 0x4085b420, 0x57ba: 0x4085b620, 0x57bb: 0x4085b820, - 0x57bc: 0x4085ba20, 0x57bd: 0x4085bc20, 0x57be: 0x4085be20, 0x57bf: 0x4085c020, - // Block 0x15f, offset 0x57c0 - 0x57c0: 0x4085c220, 0x57c1: 0x4085c420, 0x57c2: 0x4085c620, 0x57c3: 0x4085c820, - 0x57c4: 0x4085ca20, 0x57c5: 0x4085cc20, 0x57c6: 0x4085ce20, 0x57c7: 0x4085d020, - 0x57c8: 0x4085d220, 0x57c9: 0x4085d420, 0x57ca: 0x4085d620, 0x57cb: 0x4085d820, - 0x57cc: 0x4085da20, 0x57cd: 0x4085dc20, 0x57ce: 0x4085de20, 0x57cf: 0x4085e020, - 0x57d0: 0x4085e220, 0x57d1: 0x4085e420, 0x57d2: 0x4085e620, 0x57d3: 0x4085e820, - 0x57d4: 0x4085ea20, 0x57d5: 0x4085ec20, 0x57d6: 0x4085ee20, 0x57d7: 0x4085f020, - 0x57d8: 0x4085f220, 0x57d9: 0x4085f420, 0x57da: 0x4085f620, 0x57db: 0x4085f820, - 0x57dc: 0x4085fa20, 0x57dd: 0x4085fc20, 0x57de: 0x4085fe20, 0x57df: 0x40860020, - 0x57e0: 0x40860220, 0x57e1: 0x40860420, 0x57e2: 0x40860620, 0x57e3: 0x40860820, - 0x57e4: 0x40860a20, 0x57e5: 0x40860c20, 0x57e6: 0x40860e20, 0x57e7: 0x40861020, - 0x57e8: 0x40861220, 0x57e9: 0x40861420, 0x57ea: 0x40861620, 0x57eb: 0x40861820, - 0x57ec: 0x40861a20, 0x57ed: 0x40861c20, 0x57ee: 0x40861e20, - // Block 0x160, offset 0x5800 - 0x5800: 0x405e3a20, 0x5801: 0x405e3c20, 0x5802: 0x405e3e20, 0x5803: 0x405e4020, - 0x5804: 0x405e4220, 0x5805: 0x405e4420, 0x5806: 0x405e4620, 0x5807: 0x405e4820, - 0x5808: 0x405e4a20, 0x5809: 0x405e4c20, 0x580a: 0x405e4e20, 0x580b: 0x405e5020, - 0x580c: 0x405e5220, 0x580d: 0x405e5420, 0x580e: 0x405e5620, 0x580f: 0x405e5820, - 0x5810: 0x405e5a20, 0x5811: 0x405e5c20, 0x5812: 0x405e5e20, 0x5813: 0x405e6020, - 0x5814: 0x405e6220, 0x5815: 0x405e6420, 0x5816: 0x405e6620, 0x5817: 0x405e6820, - 0x5818: 0x405e6a20, 0x5819: 0x405e6c20, 0x581a: 0x405e6e20, 0x581b: 0x405e7020, - 0x581c: 0x405e7220, 0x581d: 0x405e7420, 0x581e: 0x405e7620, 0x581f: 0x405e7820, - 0x5820: 0x405e7a20, 0x5821: 0x405e7c20, 0x5822: 0x405e7e20, 0x5823: 0x405e8020, - 0x5824: 0x405e8220, 0x5825: 0x405e8420, 0x5826: 0x405e8620, 0x5827: 0x405e8820, - 0x5828: 0x405e8a20, 0x5829: 0x405e8c20, 0x582a: 0x405e8e20, 0x582b: 0x405e9020, - 0x582c: 0x405e9220, 0x582d: 0x405e9420, 0x582e: 0x405e9620, 0x582f: 0x405e9820, - 0x5830: 0x405e9a20, 0x5831: 0x405e9c20, 0x5832: 0x405e9e20, 0x5833: 0x405ea020, - 0x5834: 0x405ea220, 0x5835: 0x405ea420, 0x5836: 0x405ea620, 0x5837: 0x405ea820, - 0x5838: 0x405eaa20, 0x5839: 0x405eac20, 0x583a: 0x405eae20, 0x583b: 0x405eb020, - 0x583c: 0x405eb220, 0x583d: 0x405eb420, 0x583e: 0x405eb620, 0x583f: 0x405eb820, - // Block 0x161, offset 0x5840 - 0x5840: 0x405eba20, 0x5841: 0x405ebc20, 0x5842: 0x405ebe20, 0x5843: 0x405ec020, - 0x5844: 0x405ec220, 0x5845: 0x405ec420, 0x5846: 0x405ec620, 0x5847: 0x405ec820, - 0x5848: 0x405eca20, 0x5849: 0x405ecc20, 0x584a: 0x405ece20, 0x584b: 0x405ed020, - 0x584c: 0x405ed220, 0x584d: 0x405ed420, 0x584e: 0x405ed620, 0x584f: 0x405ed820, - 0x5850: 0x405eda20, 0x5851: 0x405edc20, 0x5852: 0x405ede20, 0x5853: 0x405ee020, - 0x5854: 0x405ee220, 0x5855: 0x405ee420, 0x5856: 0x405ee620, 0x5857: 0x405ee820, - 0x5858: 0x405eea20, 0x5859: 0x405eec20, 0x585a: 0x405eee20, 0x585b: 0x405ef020, - 0x585c: 0x405ef220, 0x585d: 0x405ef420, 0x585e: 0x405ef620, 0x585f: 0x405ef820, - 0x5860: 0x405efa20, 0x5861: 0x405efc20, 0x5862: 0x405efe20, 0x5863: 0x405f0020, - 0x5864: 0x405f0220, 0x5865: 0x405f0420, 0x5866: 0x405f0620, 0x5867: 0x405f0820, - 0x5868: 0x405f0a20, 0x5869: 0x405f0c20, 0x586a: 0x405f0e20, 0x586b: 0x405f1020, - 0x586c: 0x405f1220, 0x586d: 0x405f1420, 0x586e: 0x405f1620, 0x586f: 0x405f1820, - 0x5870: 0x405f1a20, 0x5871: 0x405f1c20, 0x5872: 0x405f1e20, 0x5873: 0x405f2020, - 0x5874: 0x405f2220, 0x5875: 0x405f2420, 0x5876: 0x405f2620, 0x5877: 0x405f2820, - 0x5878: 0x405f2a20, 0x5879: 0x405f2c20, 0x587a: 0x405f2e20, 0x587b: 0x405f3020, - 0x587c: 0x405f3220, 0x587d: 0x405f3420, 0x587e: 0x405f3620, 0x587f: 0x405f3820, - // Block 0x162, offset 0x5880 - 0x5880: 0x405f3a20, 0x5881: 0x405f3c20, 0x5882: 0x405f3e20, 0x5883: 0x405f4020, - 0x5884: 0x405f4220, 0x5885: 0x405f4420, 0x5886: 0x405f4620, 0x5887: 0x405f4820, - 0x5888: 0x405f4a20, 0x5889: 0x405f4c20, 0x588a: 0x405f4e20, 0x588b: 0x405f5020, - 0x588c: 0x405f5220, 0x588d: 0x405f5420, 0x588e: 0x405f5620, 0x588f: 0x405f5820, - 0x5890: 0x405f5a20, 0x5891: 0x405f5c20, 0x5892: 0x405f5e20, 0x5893: 0x405f6020, - 0x5894: 0x405f6220, 0x5895: 0x405f6420, 0x5896: 0x405f6620, 0x5897: 0x405f6820, - 0x5898: 0x405f6a20, 0x5899: 0x405f6c20, 0x589a: 0x405f6e20, 0x589b: 0x405f7020, - 0x589c: 0x405f7220, 0x589d: 0x405f7420, 0x589e: 0x405f7620, 0x589f: 0x405f7820, - 0x58a0: 0x405f7a20, 0x58a1: 0x405f7c20, 0x58a2: 0x405f7e20, 0x58a3: 0x405f8020, - 0x58a4: 0x405f8220, 0x58a5: 0x405f8420, 0x58a6: 0x405f8620, 0x58a7: 0x405f8820, - 0x58a8: 0x405f8a20, 0x58a9: 0x405f8c20, 0x58aa: 0x405f8e20, 0x58ab: 0x405f9020, - 0x58ac: 0x405f9220, 0x58ad: 0x405f9420, 0x58ae: 0x405f9620, 0x58af: 0x405f9820, - 0x58b0: 0x405f9a20, 0x58b1: 0x405f9c20, 0x58b2: 0x405f9e20, 0x58b3: 0x405fa020, - 0x58b4: 0x405fa220, 0x58b5: 0x405fa420, 0x58b6: 0x405fa620, 0x58b7: 0x405fa820, - 0x58b8: 0x405faa20, 0x58b9: 0x405fac20, 0x58ba: 0x405fae20, 0x58bb: 0x405fb020, - 0x58bc: 0x405fb220, 0x58bd: 0x405fb420, 0x58be: 0x405fb620, 0x58bf: 0x405fb820, - // Block 0x163, offset 0x58c0 - 0x58c0: 0x405fba20, 0x58c1: 0x405fbc20, 0x58c2: 0x405fbe20, 0x58c3: 0x405fc020, - 0x58c4: 0x405fc220, 0x58c5: 0x405fc420, 0x58c6: 0x405fc620, 0x58c7: 0x405fc820, - 0x58c8: 0x405fca20, 0x58c9: 0x405fcc20, 0x58ca: 0x405fce20, 0x58cb: 0x405fd020, - 0x58cc: 0x405fd220, 0x58cd: 0x405fd420, 0x58ce: 0x405fd620, 0x58cf: 0x405fd820, - 0x58d0: 0x405fda20, 0x58d1: 0x405fdc20, 0x58d2: 0x405fde20, 0x58d3: 0x405fe020, - 0x58d4: 0x405fe220, 0x58d5: 0x405fe420, 0x58d6: 0x405fe620, 0x58d7: 0x405fe820, - 0x58d8: 0x405fea20, 0x58d9: 0x405fec20, 0x58da: 0x405fee20, 0x58db: 0x405ff020, - 0x58dc: 0x405ff220, 0x58dd: 0x405ff420, 0x58de: 0x405ff620, 0x58df: 0x405ff820, - 0x58e0: 0x405ffa20, 0x58e1: 0x405ffc20, 0x58e2: 0x405ffe20, 0x58e3: 0x40600020, - 0x58e4: 0x40600220, 0x58e5: 0x40600420, 0x58e6: 0x40600620, 0x58e7: 0x40600820, - 0x58e8: 0x40600a20, 0x58e9: 0x40600c20, 0x58ea: 0x40600e20, 0x58eb: 0x40601020, - 0x58ec: 0x40601220, 0x58ed: 0x40601420, 0x58ee: 0x40601620, 0x58ef: 0x40601820, - 0x58f0: 0x40601a20, 0x58f1: 0x40601c20, 0x58f2: 0x40601e20, 0x58f3: 0x40602020, - 0x58f4: 0x40602220, 0x58f5: 0x40602420, 0x58f6: 0x40602620, 0x58f7: 0x40602820, - 0x58f8: 0x40602a20, 0x58f9: 0x40602c20, 0x58fa: 0x40602e20, 0x58fb: 0x40603020, - 0x58fc: 0x40603220, 0x58fd: 0x40603420, 0x58fe: 0x40603620, 0x58ff: 0x40603820, - // Block 0x164, offset 0x5900 - 0x5900: 0x40603a20, 0x5901: 0x40603c20, 0x5902: 0x40603e20, 0x5903: 0x40604020, - 0x5904: 0x40604220, 0x5905: 0x40604420, 0x5906: 0x40604620, 0x5907: 0x40604820, - 0x5908: 0x40604a20, 0x5909: 0x40604c20, 0x590a: 0x40604e20, 0x590b: 0x40605020, - 0x590c: 0x40605220, 0x590d: 0x40605420, 0x590e: 0x40605620, 0x590f: 0x40605820, - 0x5910: 0x40605a20, 0x5911: 0x40605c20, 0x5912: 0x40605e20, 0x5913: 0x40606020, - 0x5914: 0x40606220, 0x5915: 0x40606420, 0x5916: 0x40606620, 0x5917: 0x40606820, - 0x5918: 0x40606a20, 0x5919: 0x40606c20, 0x591a: 0x40606e20, 0x591b: 0x40607020, - 0x591c: 0x40607220, 0x591d: 0x40607420, 0x591e: 0x40607620, 0x591f: 0x40607820, - 0x5920: 0x40607a20, 0x5921: 0x40607c20, 0x5922: 0x40607e20, 0x5923: 0x40608020, - 0x5924: 0x40608220, 0x5925: 0x40608420, 0x5926: 0x40608620, 0x5927: 0x40608820, - 0x5928: 0x40608a20, 0x5929: 0x40608c20, 0x592a: 0x40608e20, 0x592b: 0x40609020, - 0x592c: 0x40609220, 0x592d: 0x40609420, 0x592e: 0x40609620, 0x592f: 0x40609820, - 0x5930: 0x40609a20, 0x5931: 0x40609c20, 0x5932: 0x40609e20, 0x5933: 0x4060a020, - 0x5934: 0x4060a220, 0x5935: 0x4060a420, 0x5936: 0x4060a620, 0x5937: 0x4060a820, - 0x5938: 0x4060aa20, 0x5939: 0x4060ac20, 0x593a: 0x4060ae20, 0x593b: 0x4060b020, - 0x593c: 0x4060b220, 0x593d: 0x4060b420, 0x593e: 0x4060b620, 0x593f: 0x4060b820, - // Block 0x165, offset 0x5940 - 0x5940: 0x4060ba20, 0x5941: 0x4060bc20, 0x5942: 0x4060be20, 0x5943: 0x4060c020, - 0x5944: 0x4060c220, 0x5945: 0x4060c420, 0x5946: 0x4060c620, 0x5947: 0x4060c820, - 0x5948: 0x4060ca20, 0x5949: 0x4060cc20, 0x594a: 0x4060ce20, 0x594b: 0x4060d020, - 0x594c: 0x4060d220, 0x594d: 0x4060d420, 0x594e: 0x4060d620, 0x594f: 0x4060d820, - 0x5950: 0x4060da20, 0x5951: 0x4060dc20, 0x5952: 0x4060de20, 0x5953: 0x4060e020, - 0x5954: 0x4060e220, 0x5955: 0x4060e420, 0x5956: 0x4060e620, 0x5957: 0x4060e820, - 0x5958: 0x4060ea20, 0x5959: 0x4060ec20, 0x595a: 0x4060ee20, 0x595b: 0x4060f020, - 0x595c: 0x4060f220, 0x595d: 0x4060f420, 0x595e: 0x4060f620, 0x595f: 0x4060f820, - 0x5960: 0x4060fa20, 0x5961: 0x4060fc20, 0x5962: 0x4060fe20, 0x5963: 0x40610020, - 0x5964: 0x40610220, 0x5965: 0x40610420, 0x5966: 0x40610620, 0x5967: 0x40610820, - 0x5968: 0x40610a20, 0x5969: 0x40610c20, 0x596a: 0x40610e20, 0x596b: 0x40611020, - 0x596c: 0x40611220, 0x596d: 0x40611420, 0x596e: 0x40611620, 0x596f: 0x40611820, - 0x5970: 0x40611a20, 0x5971: 0x40611c20, 0x5972: 0x40611e20, 0x5973: 0x40612020, - 0x5974: 0x40612220, 0x5975: 0x40612420, 0x5976: 0x40612620, 0x5977: 0x40612820, - 0x5978: 0x40612a20, 0x5979: 0x40612c20, 0x597a: 0x40612e20, 0x597b: 0x40613020, - 0x597c: 0x40613220, 0x597d: 0x40613420, 0x597e: 0x40613620, 0x597f: 0x40613820, - // Block 0x166, offset 0x5980 - 0x5980: 0x40613a20, 0x5981: 0x40613c20, 0x5982: 0x40613e20, 0x5983: 0x40614020, - 0x5984: 0x40614220, 0x5985: 0x40614420, 0x5986: 0x40614620, 0x5987: 0x40614820, - 0x5988: 0x40614a20, 0x5989: 0x40614c20, 0x598a: 0x40614e20, 0x598b: 0x40615020, - 0x598c: 0x40615220, 0x598d: 0x40615420, 0x598e: 0x40615620, 0x598f: 0x40615820, - 0x5990: 0x40615a20, 0x5991: 0x40615c20, 0x5992: 0x40615e20, 0x5993: 0x40616020, - 0x5994: 0x40616220, 0x5995: 0x40616420, 0x5996: 0x40616620, 0x5997: 0x40616820, - 0x5998: 0x40616a20, 0x5999: 0x40616c20, 0x599a: 0x40616e20, 0x599b: 0x40617020, - 0x599c: 0x40617220, 0x599d: 0x40617420, 0x599e: 0x40617620, 0x599f: 0x40617820, - 0x59a0: 0x40617a20, 0x59a1: 0x40617c20, 0x59a2: 0x40617e20, 0x59a3: 0x40618020, - 0x59a4: 0x40618220, 0x59a5: 0x40618420, 0x59a6: 0x40618620, 0x59a7: 0x40618820, - 0x59a8: 0x40618a20, 0x59a9: 0x40618c20, 0x59aa: 0x40618e20, 0x59ab: 0x40619020, - 0x59ac: 0x40619220, 0x59ad: 0x40619420, 0x59ae: 0x40619620, 0x59af: 0x40619820, - 0x59b0: 0x40619a20, 0x59b1: 0x40619c20, 0x59b2: 0x40619e20, 0x59b3: 0x4061a020, - 0x59b4: 0x4061a220, 0x59b5: 0x4061a420, 0x59b6: 0x4061a620, 0x59b7: 0x4061a820, - 0x59b8: 0x4061aa20, 0x59b9: 0x4061ac20, 0x59ba: 0x4061ae20, 0x59bb: 0x4061b020, - 0x59bc: 0x4061b220, 0x59bd: 0x4061b420, 0x59be: 0x4061b620, 0x59bf: 0x4061b820, - // Block 0x167, offset 0x59c0 - 0x59c0: 0x4061ba20, 0x59c1: 0x4061bc20, 0x59c2: 0x4061be20, 0x59c3: 0x4061c020, - 0x59c4: 0x4061c220, 0x59c5: 0x4061c420, 0x59c6: 0x4061c620, 0x59c7: 0x4061c820, - 0x59c8: 0x4061ca20, 0x59c9: 0x4061cc20, 0x59ca: 0x4061ce20, 0x59cb: 0x4061d020, - 0x59cc: 0x4061d220, 0x59cd: 0x4061d420, 0x59ce: 0x4061d620, 0x59cf: 0x4061d820, - 0x59d0: 0x4061da20, 0x59d1: 0x4061dc20, 0x59d2: 0x4061de20, 0x59d3: 0x4061e020, - 0x59d4: 0x4061e220, 0x59d5: 0x4061e420, 0x59d6: 0x4061e620, 0x59d7: 0x4061e820, - 0x59d8: 0x4061ea20, 0x59d9: 0x4061ec20, 0x59da: 0x4061ee20, 0x59db: 0x4061f020, - 0x59dc: 0x4061f220, 0x59dd: 0x4061f420, 0x59de: 0x4061f620, 0x59df: 0x4061f820, - 0x59e0: 0x4061fa20, 0x59e1: 0x4061fc20, 0x59e2: 0x4061fe20, 0x59e3: 0x40620020, - 0x59e4: 0x40620220, 0x59e5: 0x40620420, 0x59e6: 0x40620620, 0x59e7: 0x40620820, - 0x59e8: 0x40620a20, 0x59e9: 0x40620c20, 0x59ea: 0x40620e20, 0x59eb: 0x40621020, - 0x59ec: 0x40621220, 0x59ed: 0x40621420, 0x59ee: 0x40621620, 0x59ef: 0x40621820, - 0x59f0: 0x40621a20, 0x59f1: 0x40621c20, 0x59f2: 0x40621e20, 0x59f3: 0x40622020, - 0x59f4: 0x40622220, 0x59f5: 0x40622420, 0x59f6: 0x40622620, 0x59f7: 0x40622820, - 0x59f8: 0x40622a20, 0x59f9: 0x40622c20, 0x59fa: 0x40622e20, 0x59fb: 0x40623020, - 0x59fc: 0x40623220, 0x59fd: 0x40623420, 0x59fe: 0x40623620, 0x59ff: 0x40623820, - // Block 0x168, offset 0x5a00 - 0x5a00: 0x40623a20, 0x5a01: 0x40623c20, 0x5a02: 0x40623e20, 0x5a03: 0x40624020, - 0x5a04: 0x40624220, 0x5a05: 0x40624420, 0x5a06: 0x40624620, 0x5a07: 0x40624820, - 0x5a08: 0x40624a20, 0x5a09: 0x40624c20, 0x5a0a: 0x40624e20, 0x5a0b: 0x40625020, - 0x5a0c: 0x40625220, 0x5a0d: 0x40625420, 0x5a0e: 0x40625620, 0x5a0f: 0x40625820, - 0x5a10: 0x40625a20, 0x5a11: 0x40625c20, 0x5a12: 0x40625e20, 0x5a13: 0x40626020, - 0x5a14: 0x40626220, 0x5a15: 0x40626420, 0x5a16: 0x40626620, 0x5a17: 0x40626820, - 0x5a18: 0x40626a20, 0x5a19: 0x40626c20, 0x5a1a: 0x40626e20, 0x5a1b: 0x40627020, - 0x5a1c: 0x40627220, 0x5a1d: 0x40627420, 0x5a1e: 0x40627620, 0x5a1f: 0x40627820, - 0x5a20: 0x40627a20, 0x5a21: 0x40627c20, 0x5a22: 0x40627e20, 0x5a23: 0x40628020, - 0x5a24: 0x40628220, 0x5a25: 0x40628420, 0x5a26: 0x40628620, 0x5a27: 0x40628820, - 0x5a28: 0x40628a20, 0x5a29: 0x40628c20, 0x5a2a: 0x40628e20, 0x5a2b: 0x40629020, - 0x5a2c: 0x40629220, 0x5a2d: 0x40629420, 0x5a2e: 0x40629620, 0x5a2f: 0x40629820, - 0x5a30: 0x40629a20, 0x5a31: 0x40629c20, 0x5a32: 0x40629e20, 0x5a33: 0x4062a020, - 0x5a34: 0x4062a220, 0x5a35: 0x4062a420, 0x5a36: 0x4062a620, 0x5a37: 0x4062a820, - 0x5a38: 0x4062aa20, - // Block 0x169, offset 0x5a40 - 0x5a40: 0x406fb620, 0x5a41: 0x406fb820, 0x5a42: 0x406fba20, 0x5a43: 0x406fbc20, - 0x5a44: 0x406fbe20, 0x5a45: 0x406fc020, 0x5a46: 0x006fbe84, 0x5a47: 0x406fc220, - 0x5a48: 0x406fc420, 0x5a49: 0x406fc620, 0x5a4a: 0x406fc820, 0x5a4b: 0x406fca20, - 0x5a4c: 0x406fcc20, 0x5a4d: 0x406fce20, 0x5a4e: 0x406fd020, 0x5a4f: 0x406fd220, - 0x5a50: 0x406fd420, 0x5a51: 0x406fd620, 0x5a52: 0x406fd820, 0x5a53: 0x006fd484, - 0x5a54: 0x406fda20, 0x5a55: 0x406fdc20, 0x5a56: 0x406fde20, 0x5a57: 0x406fe020, - 0x5a58: 0x406fe220, 0x5a59: 0x406fe420, 0x5a5a: 0x406fe620, 0x5a5b: 0x406fe820, - 0x5a5c: 0x406fea20, 0x5a5d: 0x406fec20, 0x5a5e: 0x406fee20, 0x5a5f: 0x406ff020, - 0x5a60: 0x406ff220, 0x5a61: 0x406ff420, 0x5a62: 0x406ff620, 0x5a63: 0x406ff820, - 0x5a64: 0x406ffa20, 0x5a65: 0x006ff884, 0x5a66: 0x406ffc20, 0x5a67: 0x406ffe20, - 0x5a68: 0x40700020, 0x5a69: 0x40700220, 0x5a6a: 0x40700420, 0x5a6b: 0x40700620, - 0x5a6c: 0x40700820, 0x5a6d: 0x40700a20, 0x5a6e: 0x40700c20, 0x5a6f: 0x40700e20, - 0x5a70: 0x40701020, 0x5a71: 0x40701220, 0x5a72: 0x40701420, 0x5a73: 0x40701620, - 0x5a74: 0x40701820, 0x5a75: 0x40701a20, 0x5a76: 0x40701c20, 0x5a77: 0x40701e20, - 0x5a78: 0x40702020, 0x5a79: 0x40702220, 0x5a7a: 0x40702420, 0x5a7b: 0x40702620, - 0x5a7c: 0x40702820, 0x5a7d: 0x40702a20, 0x5a7e: 0x40702c20, 0x5a7f: 0x00702a84, - // Block 0x16a, offset 0x5a80 - 0x5a80: 0x40702e20, 0x5a81: 0x40703020, 0x5a82: 0x40703220, 0x5a83: 0x40703420, - 0x5a84: 0x40703620, - 0x5a90: 0x40703820, 0x5a91: 0x40703a20, 0x5a92: 0x40703c20, 0x5a93: 0x40703e20, - 0x5a94: 0x40704020, 0x5a95: 0x40704220, 0x5a96: 0x40704420, 0x5a97: 0x40704620, - 0x5a98: 0x40704820, 0x5a99: 0x40704a20, 0x5a9a: 0x40704c20, 0x5a9b: 0x40704e20, - 0x5a9c: 0x40705020, 0x5a9d: 0x40705220, 0x5a9e: 0x40705420, 0x5a9f: 0x40705620, - 0x5aa0: 0x40705820, 0x5aa1: 0x40705a20, 0x5aa2: 0x40705c20, 0x5aa3: 0x40705e20, - 0x5aa4: 0x40706020, 0x5aa5: 0x40706220, 0x5aa6: 0x40706420, 0x5aa7: 0x40706620, - 0x5aa8: 0x40706820, 0x5aa9: 0x40706a20, 0x5aaa: 0x40706c20, 0x5aab: 0x40706e20, - 0x5aac: 0x40707020, 0x5aad: 0x40707220, 0x5aae: 0x40707420, 0x5aaf: 0x40707620, - 0x5ab0: 0x40707820, 0x5ab1: 0x40707a20, 0x5ab2: 0x40707c20, 0x5ab3: 0x40707e20, - 0x5ab4: 0x40708020, 0x5ab5: 0x40708220, 0x5ab6: 0x40708420, 0x5ab7: 0x40708620, - 0x5ab8: 0x40708820, 0x5ab9: 0x40708a20, 0x5aba: 0x40708c20, 0x5abb: 0x40708e20, - 0x5abc: 0x40709020, 0x5abd: 0x40709220, 0x5abe: 0x40709420, - // Block 0x16b, offset 0x5ac0 - 0x5acf: 0x40709620, - 0x5ad0: 0x40709820, 0x5ad1: 0x40709a20, 0x5ad2: 0x40709c20, 0x5ad3: 0x40709e20, - 0x5ad4: 0x4070a020, 0x5ad5: 0x4070a220, 0x5ad6: 0x4070a420, 0x5ad7: 0x4070a620, - 0x5ad8: 0x4070a820, 0x5ad9: 0x4070aa20, 0x5ada: 0x4070ac20, 0x5adb: 0x4070ae20, - 0x5adc: 0x4070b020, 0x5add: 0x4070b220, 0x5ade: 0x4070b420, 0x5adf: 0x4070b620, - // Block 0x16c, offset 0x5b00 - 0x5b00: 0x00657c91, 0x5b01: 0x0065c28e, - // Block 0x16d, offset 0x5b40 - 0x5b40: 0x401ba420, 0x5b41: 0x401ba620, 0x5b42: 0x401ba820, 0x5b43: 0x401baa20, - 0x5b44: 0x401bac20, 0x5b45: 0x401bae20, 0x5b46: 0x401bb020, 0x5b47: 0x401bb220, - 0x5b48: 0x401bb420, 0x5b49: 0x401bb620, 0x5b4a: 0x401bb820, 0x5b4b: 0x401bba20, - 0x5b4c: 0x401bbc20, 0x5b4d: 0x401bbe20, 0x5b4e: 0x401bc020, 0x5b4f: 0x401bc220, - 0x5b50: 0x401bc420, 0x5b51: 0x401bc620, 0x5b52: 0x401bc820, 0x5b53: 0x401bca20, - 0x5b54: 0x401bcc20, 0x5b55: 0x401bce20, 0x5b56: 0x401bd020, 0x5b57: 0x401bd220, - 0x5b58: 0x401bd420, 0x5b59: 0x401bd620, 0x5b5a: 0x401bd820, 0x5b5b: 0x401bda20, - 0x5b5c: 0x401bdc20, 0x5b5d: 0x401bde20, 0x5b5e: 0x401be020, 0x5b5f: 0x401be220, - 0x5b60: 0x401be420, 0x5b61: 0x401be620, 0x5b62: 0x401be820, 0x5b63: 0x401bea20, - 0x5b64: 0x401bec20, 0x5b65: 0x401bee20, 0x5b66: 0x401bf020, 0x5b67: 0x401bf220, - 0x5b68: 0x401bf420, 0x5b69: 0x401bf620, 0x5b6a: 0x401bf820, 0x5b6b: 0x401bfa20, - 0x5b6c: 0x401bfc20, 0x5b6d: 0x401bfe20, 0x5b6e: 0x401c0020, 0x5b6f: 0x401c0220, - 0x5b70: 0x401c0420, 0x5b71: 0x401c0620, 0x5b72: 0x401c0820, 0x5b73: 0x401c0a20, - 0x5b74: 0x401c0c20, 0x5b75: 0x401c0e20, 0x5b76: 0x401c1020, 0x5b77: 0x401c1220, - 0x5b78: 0x401c1420, 0x5b79: 0x401c1620, 0x5b7a: 0x401c1820, 0x5b7b: 0x401c1a20, - 0x5b7c: 0x401c1c20, 0x5b7d: 0x401c1e20, 0x5b7e: 0x401c2020, 0x5b7f: 0x401c2220, - // Block 0x16e, offset 0x5b80 - 0x5b80: 0x401c2420, 0x5b81: 0x401c2620, 0x5b82: 0x401c2820, 0x5b83: 0x401c2a20, - 0x5b84: 0x401c2c20, 0x5b85: 0x401c2e20, 0x5b86: 0x401c3020, 0x5b87: 0x401c3220, - 0x5b88: 0x401c3420, 0x5b89: 0x401c3620, 0x5b8a: 0x401c3820, 0x5b8b: 0x401c3a20, - 0x5b8c: 0x401c3c20, 0x5b8d: 0x401c3e20, 0x5b8e: 0x401c4020, 0x5b8f: 0x401c4220, - 0x5b90: 0x401c4420, 0x5b91: 0x401c4620, 0x5b92: 0x401c4820, 0x5b93: 0x401c4a20, - 0x5b94: 0x401c4c20, 0x5b95: 0x401c4e20, 0x5b96: 0x401c5020, 0x5b97: 0x401c5220, - 0x5b98: 0x401c5420, 0x5b99: 0x401c5620, 0x5b9a: 0x401c5820, 0x5b9b: 0x401c5a20, - 0x5b9c: 0x401c5c20, 0x5b9d: 0x401c5e20, 0x5b9e: 0x401c6020, 0x5b9f: 0x401c6220, - 0x5ba0: 0x401c6420, 0x5ba1: 0x401c6620, 0x5ba2: 0x401c6820, 0x5ba3: 0x401c6a20, - 0x5ba4: 0x401c6c20, 0x5ba5: 0x401c6e20, 0x5ba6: 0x401c7020, 0x5ba7: 0x401c7220, - 0x5ba8: 0x401c7420, 0x5ba9: 0x401c7620, 0x5baa: 0x401c7820, 0x5bab: 0x401c7a20, - 0x5bac: 0x401c7c20, 0x5bad: 0x401c7e20, 0x5bae: 0x401c8020, 0x5baf: 0x401c8220, - 0x5bb0: 0x401c8420, 0x5bb1: 0x401c8620, 0x5bb2: 0x401c8820, 0x5bb3: 0x401c8a20, - 0x5bb4: 0x401c8c20, 0x5bb5: 0x401c8e20, 0x5bb6: 0x401c9020, 0x5bb7: 0x401c9220, - 0x5bb8: 0x401c9420, 0x5bb9: 0x401c9620, 0x5bba: 0x401c9820, 0x5bbb: 0x401c9a20, - 0x5bbc: 0x401c9c20, 0x5bbd: 0x401c9e20, 0x5bbe: 0x401ca020, 0x5bbf: 0x401ca220, - // Block 0x16f, offset 0x5bc0 - 0x5bc0: 0x401ca420, 0x5bc1: 0x401ca620, 0x5bc2: 0x401ca820, 0x5bc3: 0x401caa20, - 0x5bc4: 0x401cac20, 0x5bc5: 0x401cae20, 0x5bc6: 0x401cb020, 0x5bc7: 0x401cb220, - 0x5bc8: 0x401cb420, 0x5bc9: 0x401cb620, 0x5bca: 0x401cb820, 0x5bcb: 0x401cba20, - 0x5bcc: 0x401cbc20, 0x5bcd: 0x401cbe20, 0x5bce: 0x401cc020, 0x5bcf: 0x401cc220, - 0x5bd0: 0x401cc420, 0x5bd1: 0x401cc620, 0x5bd2: 0x401cc820, 0x5bd3: 0x401cca20, - 0x5bd4: 0x401ccc20, 0x5bd5: 0x401cce20, 0x5bd6: 0x401cd020, 0x5bd7: 0x401cd220, - 0x5bd8: 0x401cd420, 0x5bd9: 0x401cd620, 0x5bda: 0x401cd820, 0x5bdb: 0x401cda20, - 0x5bdc: 0x401cdc20, 0x5bdd: 0x401cde20, 0x5bde: 0x401ce020, 0x5bdf: 0x401ce220, - 0x5be0: 0x401ce420, 0x5be1: 0x401ce620, 0x5be2: 0x401ce820, 0x5be3: 0x401cea20, - 0x5be4: 0x401cec20, 0x5be5: 0x401cee20, 0x5be6: 0x401cf020, 0x5be7: 0x401cf220, - 0x5be8: 0x401cf420, 0x5be9: 0x401cf620, 0x5bea: 0x401cf820, 0x5beb: 0x401cfa20, - 0x5bec: 0x401cfc20, 0x5bed: 0x401cfe20, 0x5bee: 0x401d0020, 0x5bef: 0x401d0220, - 0x5bf0: 0x401d0420, 0x5bf1: 0x401d0620, 0x5bf2: 0x401d0820, 0x5bf3: 0x401d0a20, - 0x5bf4: 0x401d0c20, 0x5bf5: 0x401d0e20, 0x5bf6: 0x401d1020, 0x5bf7: 0x401d1220, - 0x5bf8: 0x401d1420, 0x5bf9: 0x401d1620, 0x5bfa: 0x401d1820, 0x5bfb: 0x401d1a20, - 0x5bfc: 0x401d1c20, 0x5bfd: 0x401d1e20, 0x5bfe: 0x401d2020, 0x5bff: 0x401d2220, - // Block 0x170, offset 0x5c00 - 0x5c00: 0x401d2420, 0x5c01: 0x401d2620, 0x5c02: 0x401d2820, 0x5c03: 0x401d2a20, - 0x5c04: 0x401d2c20, 0x5c05: 0x401d2e20, 0x5c06: 0x401d3020, 0x5c07: 0x401d3220, - 0x5c08: 0x401d3420, 0x5c09: 0x401d3620, 0x5c0a: 0x401d3820, 0x5c0b: 0x401d3a20, - 0x5c0c: 0x401d3c20, 0x5c0d: 0x401d3e20, 0x5c0e: 0x401d4020, 0x5c0f: 0x401d4220, - 0x5c10: 0x401d4420, 0x5c11: 0x401d4620, 0x5c12: 0x401d4820, 0x5c13: 0x401d4a20, - 0x5c14: 0x401d4c20, 0x5c15: 0x401d4e20, 0x5c16: 0x401d5020, 0x5c17: 0x401d5220, - 0x5c18: 0x401d5420, 0x5c19: 0x401d5620, 0x5c1a: 0x401d5820, 0x5c1b: 0x401d5a20, - 0x5c1c: 0x401d5c20, 0x5c1d: 0x401d5e20, 0x5c1e: 0x401d6020, 0x5c1f: 0x401d6220, - 0x5c20: 0x401d6420, 0x5c21: 0x401d6620, 0x5c22: 0x401d6820, 0x5c23: 0x401d6a20, - 0x5c24: 0x401d6c20, 0x5c25: 0x401d6e20, 0x5c26: 0x401d7020, 0x5c27: 0x401d7220, - 0x5c28: 0x401d7420, 0x5c29: 0x401d7620, 0x5c2a: 0x401d7820, 0x5c2b: 0x401d7a20, - 0x5c2c: 0x401d7c20, 0x5c2d: 0x401d7e20, 0x5c2e: 0x401d8020, 0x5c2f: 0x401d8220, - 0x5c30: 0x401d8420, 0x5c31: 0x401d8620, 0x5c32: 0x401d8820, 0x5c33: 0x401d8a20, - 0x5c34: 0x401d8c20, 0x5c35: 0x401d8e20, - // Block 0x171, offset 0x5c40 - 0x5c40: 0x401d9020, 0x5c41: 0x401d9220, 0x5c42: 0x401d9420, 0x5c43: 0x401d9620, - 0x5c44: 0x401d9820, 0x5c45: 0x401d9a20, 0x5c46: 0x401d9c20, 0x5c47: 0x401d9e20, - 0x5c48: 0x401da020, 0x5c49: 0x401da220, 0x5c4a: 0x401da420, 0x5c4b: 0x401da620, - 0x5c4c: 0x401da820, 0x5c4d: 0x401daa20, 0x5c4e: 0x401dac20, 0x5c4f: 0x401dae20, - 0x5c50: 0x401db020, 0x5c51: 0x401db220, 0x5c52: 0x401db420, 0x5c53: 0x401db620, - 0x5c54: 0x401db820, 0x5c55: 0x401dba20, 0x5c56: 0x401dbc20, 0x5c57: 0x401dbe20, - 0x5c58: 0x401dc020, 0x5c59: 0x401dc220, 0x5c5a: 0x401dc420, 0x5c5b: 0x401dc620, - 0x5c5c: 0x401dc820, 0x5c5d: 0x401dca20, 0x5c5e: 0x401dcc20, 0x5c5f: 0x401dce20, - 0x5c60: 0x401dd020, 0x5c61: 0x401dd220, 0x5c62: 0x401dd420, 0x5c63: 0x401dd620, - 0x5c64: 0x401dd820, 0x5c65: 0x401dda20, 0x5c66: 0x401ddc20, - 0x5c69: 0x401e0420, 0x5c6a: 0x401de420, 0x5c6b: 0x401de620, - 0x5c6c: 0x401de820, 0x5c6d: 0x401dea20, 0x5c6e: 0x401dec20, 0x5c6f: 0x401dee20, - 0x5c70: 0x401df020, 0x5c71: 0x401df220, 0x5c72: 0x401df420, 0x5c73: 0x401df620, - 0x5c74: 0x401df820, 0x5c75: 0x401dfa20, 0x5c76: 0x401dfc20, 0x5c77: 0x401dfe20, - 0x5c78: 0x401e0020, 0x5c79: 0x401e0220, 0x5c7a: 0x401e0620, 0x5c7b: 0x401e0820, - 0x5c7c: 0x401e0a20, 0x5c7d: 0x401e0c20, 0x5c7e: 0x401e0e20, 0x5c7f: 0x401e1020, - // Block 0x172, offset 0x5c80 - 0x5c80: 0x401e1220, 0x5c81: 0x401e1420, 0x5c82: 0x401e1620, 0x5c83: 0x401e1820, - 0x5c84: 0x401e1a20, 0x5c85: 0x401e1c20, 0x5c86: 0x401e1e20, 0x5c87: 0x401e2020, - 0x5c88: 0x401e2220, 0x5c89: 0x401e2420, 0x5c8a: 0x401e2620, 0x5c8b: 0x401e2820, - 0x5c8c: 0x401e2a20, 0x5c8d: 0x401e2c20, 0x5c8e: 0x401e2e20, 0x5c8f: 0x401e3020, - 0x5c90: 0x401e3220, 0x5c91: 0x401e3420, 0x5c92: 0x401e3620, 0x5c93: 0x401e3820, - 0x5c94: 0x401e3a20, 0x5c95: 0x401e3c20, 0x5c96: 0x401e3e20, 0x5c97: 0x401e4020, - 0x5c98: 0x401e4220, 0x5c99: 0x401e4420, 0x5c9a: 0x401e4620, 0x5c9b: 0x401e4820, - 0x5c9c: 0x401e4a20, 0x5c9d: 0x401e4c20, 0x5c9e: 0x401e4020, 0x5c9f: 0x401e4220, - 0x5ca0: 0x401e4220, 0x5ca1: 0x401e4220, 0x5ca2: 0x401e4220, 0x5ca3: 0x401e4220, - 0x5ca4: 0x401e4220, 0x5ca5: 0xad800000, 0x5ca6: 0xad800000, 0x5ca7: 0xa0100000, - 0x5ca8: 0xa0100000, 0x5ca9: 0xa0100000, 0x5caa: 0x401e4e20, 0x5cab: 0x401e5020, - 0x5cac: 0x401e5220, 0x5cad: 0xae200000, 0x5cae: 0xad800000, 0x5caf: 0xad800000, - 0x5cb0: 0xad800000, 0x5cb1: 0xad800000, 0x5cb2: 0xad800000, 0x5cb3: 0xa0000000, - 0x5cb4: 0xa0000000, 0x5cb5: 0xa0000000, 0x5cb6: 0xa0000000, 0x5cb7: 0xa0000000, - 0x5cb8: 0xa0000000, 0x5cb9: 0xa0000000, 0x5cba: 0xa0000000, 0x5cbb: 0xadc00000, - 0x5cbc: 0xadc00000, 0x5cbd: 0xadc00000, 0x5cbe: 0xadc00000, 0x5cbf: 0xadc00000, - // Block 0x173, offset 0x5cc0 - 0x5cc0: 0xadc00000, 0x5cc1: 0xadc00000, 0x5cc2: 0xadc00000, 0x5cc3: 0x401e5420, - 0x5cc4: 0x401e5620, 0x5cc5: 0xae600000, 0x5cc6: 0xae600000, 0x5cc7: 0xae600000, - 0x5cc8: 0xae600000, 0x5cc9: 0xae600000, 0x5cca: 0xadc00000, 0x5ccb: 0xadc00000, - 0x5ccc: 0x401e5820, 0x5ccd: 0x401e5a20, 0x5cce: 0x401e5c20, 0x5ccf: 0x401e5e20, - 0x5cd0: 0x401e6020, 0x5cd1: 0x401e6220, 0x5cd2: 0x401e6420, 0x5cd3: 0x401e6620, - 0x5cd4: 0x401e6820, 0x5cd5: 0x401e6a20, 0x5cd6: 0x401e6c20, 0x5cd7: 0x401e6e20, - 0x5cd8: 0x401e7020, 0x5cd9: 0x401e7220, 0x5cda: 0x401e7420, 0x5cdb: 0x401e7620, - 0x5cdc: 0x401e7820, 0x5cdd: 0x401e7a20, 0x5cde: 0x401e7c20, 0x5cdf: 0x401e7e20, - 0x5ce0: 0x401e8020, 0x5ce1: 0x401e8220, 0x5ce2: 0x401e8420, 0x5ce3: 0x401e8620, - 0x5ce4: 0x401e8820, 0x5ce5: 0x401e8a20, 0x5ce6: 0x401e8c20, 0x5ce7: 0x401e8e20, - 0x5ce8: 0x401e9020, 0x5ce9: 0x401e9220, 0x5cea: 0xae600000, 0x5ceb: 0xae600000, - 0x5cec: 0xae600000, 0x5ced: 0xae600000, 0x5cee: 0x401e9420, 0x5cef: 0x401e9620, - 0x5cf0: 0x401e9820, 0x5cf1: 0x401e9a20, 0x5cf2: 0x401e9c20, 0x5cf3: 0x401e9e20, - 0x5cf4: 0x401ea020, 0x5cf5: 0x401ea220, 0x5cf6: 0x401ea420, 0x5cf7: 0x401ea620, - 0x5cf8: 0x401ea820, 0x5cf9: 0x401eaa20, 0x5cfa: 0x401eac20, 0x5cfb: 0x401eaa20, - 0x5cfc: 0x401eac20, 0x5cfd: 0x401eaa20, 0x5cfe: 0x401eac20, 0x5cff: 0x401eaa20, - // Block 0x174, offset 0x5d00 - 0x5d00: 0x401eac20, 0x5d01: 0x401eae20, 0x5d02: 0x401eb020, 0x5d03: 0x401eb220, - 0x5d04: 0x401eb420, 0x5d05: 0x401eb620, 0x5d06: 0x401eb820, 0x5d07: 0x401eba20, - 0x5d08: 0x401ebc20, 0x5d09: 0x401ebe20, 0x5d0a: 0x401ec020, 0x5d0b: 0x401ec220, - 0x5d0c: 0x401ec420, 0x5d0d: 0x401ec620, 0x5d0e: 0x401ec820, 0x5d0f: 0x401eca20, - 0x5d10: 0x401ecc20, 0x5d11: 0x401ece20, 0x5d12: 0x401ed020, 0x5d13: 0x401ed220, - 0x5d14: 0x401ed420, 0x5d15: 0x401ed620, 0x5d16: 0x401ed820, 0x5d17: 0x401eda20, - 0x5d18: 0x401edc20, 0x5d19: 0x401ede20, 0x5d1a: 0x401ee020, 0x5d1b: 0x401ee220, - 0x5d1c: 0x401ee420, 0x5d1d: 0x401ee620, - // Block 0x175, offset 0x5d40 - 0x5d40: 0x401ee820, 0x5d41: 0x401eea20, 0x5d42: 0x401eec20, 0x5d43: 0x401eee20, - 0x5d44: 0x401ef020, 0x5d45: 0x401ef220, 0x5d46: 0x401ef420, 0x5d47: 0x401ef620, - 0x5d48: 0x401ef820, 0x5d49: 0x401efa20, 0x5d4a: 0x401efc20, 0x5d4b: 0x401efe20, - 0x5d4c: 0x401f0020, 0x5d4d: 0x401f0220, 0x5d4e: 0x401f0420, 0x5d4f: 0x401f0620, - 0x5d50: 0x401f0820, 0x5d51: 0x401f0a20, 0x5d52: 0x401f0c20, 0x5d53: 0x401f0e20, - 0x5d54: 0x401f1020, 0x5d55: 0x401f1220, 0x5d56: 0x401f1420, 0x5d57: 0x401f1620, - 0x5d58: 0x401f1820, 0x5d59: 0x401f1a20, 0x5d5a: 0x401f1c20, 0x5d5b: 0x401f1e20, - 0x5d5c: 0x401f2020, 0x5d5d: 0x401f2220, 0x5d5e: 0x401f2420, 0x5d5f: 0x401f2620, - 0x5d60: 0x401f2820, 0x5d61: 0x401f2a20, 0x5d62: 0x401f2c20, 0x5d63: 0x401f2e20, - 0x5d64: 0x401f3020, 0x5d65: 0x401f3220, 0x5d66: 0x401f3420, 0x5d67: 0x401f3620, - 0x5d68: 0x401f3820, 0x5d69: 0x401f3a20, 0x5d6a: 0x401f3c20, 0x5d6b: 0x401f3e20, - 0x5d6c: 0x401f4020, 0x5d6d: 0x401f4220, 0x5d6e: 0x401f4420, 0x5d6f: 0x401f4620, - 0x5d70: 0x401f4820, 0x5d71: 0x401f4a20, 0x5d72: 0x401f4c20, 0x5d73: 0x401f4e20, - 0x5d74: 0x401f5020, 0x5d75: 0x401f5220, 0x5d76: 0x401f5420, 0x5d77: 0x401f5620, - 0x5d78: 0x401f5820, 0x5d79: 0x401f5a20, 0x5d7a: 0x401f5c20, 0x5d7b: 0x401f5e20, - 0x5d7c: 0x401f6020, 0x5d7d: 0x401f6220, 0x5d7e: 0x401f6420, 0x5d7f: 0x401f6620, - // Block 0x176, offset 0x5d80 - 0x5d80: 0x401f6820, 0x5d81: 0x401f6a20, 0x5d82: 0xae600000, 0x5d83: 0xae600000, - 0x5d84: 0xae600000, 0x5d85: 0x401f6c20, - // Block 0x177, offset 0x5dc0 - 0x5dc0: 0x4019e220, 0x5dc1: 0x4019e420, 0x5dc2: 0x4019e620, 0x5dc3: 0x4019e820, - 0x5dc4: 0x4019ea20, 0x5dc5: 0x4019ec20, 0x5dc6: 0x4019ee20, 0x5dc7: 0x4019f020, - 0x5dc8: 0x4019f220, 0x5dc9: 0x4019f420, 0x5dca: 0x4019f620, 0x5dcb: 0x4019f820, - 0x5dcc: 0x4019fa20, 0x5dcd: 0x4019fc20, 0x5dce: 0x4019fe20, 0x5dcf: 0x401a0020, - 0x5dd0: 0x401a0220, 0x5dd1: 0x401a0420, 0x5dd2: 0x401a0620, 0x5dd3: 0x401a0820, - 0x5dd4: 0x401a0a20, 0x5dd5: 0x401a0c20, 0x5dd6: 0x401a0e20, 0x5dd7: 0x401a1020, - 0x5dd8: 0x401a1220, 0x5dd9: 0x401a1420, 0x5dda: 0x401a1620, 0x5ddb: 0x401a1820, - 0x5ddc: 0x401a1a20, 0x5ddd: 0x401a1c20, 0x5dde: 0x401a1e20, 0x5ddf: 0x401a2020, - 0x5de0: 0x401a2220, 0x5de1: 0x401a2420, 0x5de2: 0x401a2620, 0x5de3: 0x401a2820, - 0x5de4: 0x401a2a20, 0x5de5: 0x401a2c20, 0x5de6: 0x401a2e20, 0x5de7: 0x401a3020, - 0x5de8: 0x401a3220, 0x5de9: 0x401a3420, 0x5dea: 0x401a3620, 0x5deb: 0x401a3820, - 0x5dec: 0x401a3a20, 0x5ded: 0x401a3c20, 0x5dee: 0x401a3e20, 0x5def: 0x401a4020, - 0x5df0: 0x401a4220, 0x5df1: 0x401a4420, 0x5df2: 0x401a4620, 0x5df3: 0x401a4820, - 0x5df4: 0x401a4a20, 0x5df5: 0x401a4c20, 0x5df6: 0x401a4e20, 0x5df7: 0x401a5020, - 0x5df8: 0x401a5220, 0x5df9: 0x401a5420, 0x5dfa: 0x401a5620, 0x5dfb: 0x401a5820, - 0x5dfc: 0x401a5a20, 0x5dfd: 0x401a5c20, 0x5dfe: 0x401a5e20, 0x5dff: 0x401a6020, - // Block 0x178, offset 0x5e00 - 0x5e00: 0x401a6220, 0x5e01: 0x401a6420, 0x5e02: 0x401a6620, 0x5e03: 0x401a6820, - 0x5e04: 0x401a6a20, 0x5e05: 0x401a6c20, 0x5e06: 0x401a6e20, 0x5e07: 0x401a7020, - 0x5e08: 0x401a7220, 0x5e09: 0x401a7420, 0x5e0a: 0x401a7620, 0x5e0b: 0x401a7820, - 0x5e0c: 0x401a7a20, 0x5e0d: 0x401a7c20, 0x5e0e: 0x401a7e20, 0x5e0f: 0x401a8020, - 0x5e10: 0x401a8220, 0x5e11: 0x401a8420, 0x5e12: 0x401a8620, 0x5e13: 0x401a8820, - 0x5e14: 0x401a8a20, 0x5e15: 0x401a8c20, 0x5e16: 0x401a8e20, - 0x5e20: 0xe00002af, 0x5e21: 0xe00003ca, 0x5e22: 0xe00004a4, 0x5e23: 0xe0000576, - 0x5e24: 0xe000063d, 0x5e25: 0xe00006ed, 0x5e26: 0xe0000795, 0x5e27: 0xe000083e, - 0x5e28: 0xe00008e9, 0x5e29: 0x4029ba20, 0x5e2a: 0x4029bc20, 0x5e2b: 0x4029be20, - 0x5e2c: 0x4029c020, 0x5e2d: 0x4029c220, 0x5e2e: 0x4029c420, 0x5e2f: 0x4029c620, - 0x5e30: 0x4029c820, 0x5e31: 0x4029ca20, - // Block 0x179, offset 0x5e40 - 0x5e40: 0x002bde8b, 0x5e41: 0x002c0a8b, 0x5e42: 0x002c3a8b, 0x5e43: 0x002c628b, - 0x5e44: 0x002c988b, 0x5e45: 0x002d088b, 0x5e46: 0x002d228b, 0x5e47: 0x002d688b, - 0x5e48: 0x002d9a8b, 0x5e49: 0x002dcc8b, 0x5e4a: 0x002dfe8b, 0x5e4b: 0x002e228b, - 0x5e4c: 0x002e828b, 0x5e4d: 0x002e9e8b, 0x5e4e: 0x002ee28b, 0x5e4f: 0x002f2c8b, - 0x5e50: 0x002f568b, 0x5e51: 0x002f7a8b, 0x5e52: 0x002fe68b, 0x5e53: 0x00302c8b, - 0x5e54: 0x00306c8b, 0x5e55: 0x0030be8b, 0x5e56: 0x0030e28b, 0x5e57: 0x0030f68b, - 0x5e58: 0x0031008b, 0x5e59: 0x00312a8b, 0x5e5a: 0x002bde85, 0x5e5b: 0x002c0a85, - 0x5e5c: 0x002c3a85, 0x5e5d: 0x002c6285, 0x5e5e: 0x002c9885, 0x5e5f: 0x002d0885, - 0x5e60: 0x002d2285, 0x5e61: 0x002d6885, 0x5e62: 0x002d9a85, 0x5e63: 0x002dcc85, - 0x5e64: 0x002dfe85, 0x5e65: 0x002e2285, 0x5e66: 0x002e8285, 0x5e67: 0x002e9e85, - 0x5e68: 0x002ee285, 0x5e69: 0x002f2c85, 0x5e6a: 0x002f5685, 0x5e6b: 0x002f7a85, - 0x5e6c: 0x002fe685, 0x5e6d: 0x00302c85, 0x5e6e: 0x00306c85, 0x5e6f: 0x0030be85, - 0x5e70: 0x0030e285, 0x5e71: 0x0030f685, 0x5e72: 0x00310085, 0x5e73: 0x00312a85, - 0x5e74: 0x002bde8b, 0x5e75: 0x002c0a8b, 0x5e76: 0x002c3a8b, 0x5e77: 0x002c628b, - 0x5e78: 0x002c988b, 0x5e79: 0x002d088b, 0x5e7a: 0x002d228b, 0x5e7b: 0x002d688b, - 0x5e7c: 0x002d9a8b, 0x5e7d: 0x002dcc8b, 0x5e7e: 0x002dfe8b, 0x5e7f: 0x002e228b, - // Block 0x17a, offset 0x5e80 - 0x5e80: 0x002e828b, 0x5e81: 0x002e9e8b, 0x5e82: 0x002ee28b, 0x5e83: 0x002f2c8b, - 0x5e84: 0x002f568b, 0x5e85: 0x002f7a8b, 0x5e86: 0x002fe68b, 0x5e87: 0x00302c8b, - 0x5e88: 0x00306c8b, 0x5e89: 0x0030be8b, 0x5e8a: 0x0030e28b, 0x5e8b: 0x0030f68b, - 0x5e8c: 0x0031008b, 0x5e8d: 0x00312a8b, 0x5e8e: 0x002bde85, 0x5e8f: 0x002c0a85, - 0x5e90: 0x002c3a85, 0x5e91: 0x002c6285, 0x5e92: 0x002c9885, 0x5e93: 0x002d0885, - 0x5e94: 0x002d2285, 0x5e96: 0x002d9a85, 0x5e97: 0x002dcc85, - 0x5e98: 0x002dfe85, 0x5e99: 0x002e2285, 0x5e9a: 0x002e8285, 0x5e9b: 0x002e9e85, - 0x5e9c: 0x002ee285, 0x5e9d: 0x002f2c85, 0x5e9e: 0x002f5685, 0x5e9f: 0x002f7a85, - 0x5ea0: 0x002fe685, 0x5ea1: 0x00302c85, 0x5ea2: 0x00306c85, 0x5ea3: 0x0030be85, - 0x5ea4: 0x0030e285, 0x5ea5: 0x0030f685, 0x5ea6: 0x00310085, 0x5ea7: 0x00312a85, - 0x5ea8: 0x002bde8b, 0x5ea9: 0x002c0a8b, 0x5eaa: 0x002c3a8b, 0x5eab: 0x002c628b, - 0x5eac: 0x002c988b, 0x5ead: 0x002d088b, 0x5eae: 0x002d228b, 0x5eaf: 0x002d688b, - 0x5eb0: 0x002d9a8b, 0x5eb1: 0x002dcc8b, 0x5eb2: 0x002dfe8b, 0x5eb3: 0x002e228b, - 0x5eb4: 0x002e828b, 0x5eb5: 0x002e9e8b, 0x5eb6: 0x002ee28b, 0x5eb7: 0x002f2c8b, - 0x5eb8: 0x002f568b, 0x5eb9: 0x002f7a8b, 0x5eba: 0x002fe68b, 0x5ebb: 0x00302c8b, - 0x5ebc: 0x00306c8b, 0x5ebd: 0x0030be8b, 0x5ebe: 0x0030e28b, 0x5ebf: 0x0030f68b, - // Block 0x17b, offset 0x5ec0 - 0x5ec0: 0x0031008b, 0x5ec1: 0x00312a8b, 0x5ec2: 0x002bde85, 0x5ec3: 0x002c0a85, - 0x5ec4: 0x002c3a85, 0x5ec5: 0x002c6285, 0x5ec6: 0x002c9885, 0x5ec7: 0x002d0885, - 0x5ec8: 0x002d2285, 0x5ec9: 0x002d6885, 0x5eca: 0x002d9a85, 0x5ecb: 0x002dcc85, - 0x5ecc: 0x002dfe85, 0x5ecd: 0x002e2285, 0x5ece: 0x002e8285, 0x5ecf: 0x002e9e85, - 0x5ed0: 0x002ee285, 0x5ed1: 0x002f2c85, 0x5ed2: 0x002f5685, 0x5ed3: 0x002f7a85, - 0x5ed4: 0x002fe685, 0x5ed5: 0x00302c85, 0x5ed6: 0x00306c85, 0x5ed7: 0x0030be85, - 0x5ed8: 0x0030e285, 0x5ed9: 0x0030f685, 0x5eda: 0x00310085, 0x5edb: 0x00312a85, - 0x5edc: 0x002bde8b, 0x5ede: 0x002c3a8b, 0x5edf: 0x002c628b, - 0x5ee2: 0x002d228b, - 0x5ee5: 0x002dcc8b, 0x5ee6: 0x002dfe8b, - 0x5ee9: 0x002e9e8b, 0x5eea: 0x002ee28b, 0x5eeb: 0x002f2c8b, - 0x5eec: 0x002f568b, 0x5eee: 0x002fe68b, 0x5eef: 0x00302c8b, - 0x5ef0: 0x00306c8b, 0x5ef1: 0x0030be8b, 0x5ef2: 0x0030e28b, 0x5ef3: 0x0030f68b, - 0x5ef4: 0x0031008b, 0x5ef5: 0x00312a8b, 0x5ef6: 0x002bde85, 0x5ef7: 0x002c0a85, - 0x5ef8: 0x002c3a85, 0x5ef9: 0x002c6285, 0x5efb: 0x002d0885, - 0x5efd: 0x002d6885, 0x5efe: 0x002d9a85, 0x5eff: 0x002dcc85, - // Block 0x17c, offset 0x5f00 - 0x5f00: 0x002dfe85, 0x5f01: 0x002e2285, 0x5f02: 0x002e8285, 0x5f03: 0x002e9e85, - 0x5f05: 0x002f2c85, 0x5f06: 0x002f5685, 0x5f07: 0x002f7a85, - 0x5f08: 0x002fe685, 0x5f09: 0x00302c85, 0x5f0a: 0x00306c85, 0x5f0b: 0x0030be85, - 0x5f0c: 0x0030e285, 0x5f0d: 0x0030f685, 0x5f0e: 0x00310085, 0x5f0f: 0x00312a85, - 0x5f10: 0x002bde8b, 0x5f11: 0x002c0a8b, 0x5f12: 0x002c3a8b, 0x5f13: 0x002c628b, - 0x5f14: 0x002c988b, 0x5f15: 0x002d088b, 0x5f16: 0x002d228b, 0x5f17: 0x002d688b, - 0x5f18: 0x002d9a8b, 0x5f19: 0x002dcc8b, 0x5f1a: 0x002dfe8b, 0x5f1b: 0x002e228b, - 0x5f1c: 0x002e828b, 0x5f1d: 0x002e9e8b, 0x5f1e: 0x002ee28b, 0x5f1f: 0x002f2c8b, - 0x5f20: 0x002f568b, 0x5f21: 0x002f7a8b, 0x5f22: 0x002fe68b, 0x5f23: 0x00302c8b, - 0x5f24: 0x00306c8b, 0x5f25: 0x0030be8b, 0x5f26: 0x0030e28b, 0x5f27: 0x0030f68b, - 0x5f28: 0x0031008b, 0x5f29: 0x00312a8b, 0x5f2a: 0x002bde85, 0x5f2b: 0x002c0a85, - 0x5f2c: 0x002c3a85, 0x5f2d: 0x002c6285, 0x5f2e: 0x002c9885, 0x5f2f: 0x002d0885, - 0x5f30: 0x002d2285, 0x5f31: 0x002d6885, 0x5f32: 0x002d9a85, 0x5f33: 0x002dcc85, - 0x5f34: 0x002dfe85, 0x5f35: 0x002e2285, 0x5f36: 0x002e8285, 0x5f37: 0x002e9e85, - 0x5f38: 0x002ee285, 0x5f39: 0x002f2c85, 0x5f3a: 0x002f5685, 0x5f3b: 0x002f7a85, - 0x5f3c: 0x002fe685, 0x5f3d: 0x00302c85, 0x5f3e: 0x00306c85, 0x5f3f: 0x0030be85, - // Block 0x17d, offset 0x5f40 - 0x5f40: 0x0030e285, 0x5f41: 0x0030f685, 0x5f42: 0x00310085, 0x5f43: 0x00312a85, - 0x5f44: 0x002bde8b, 0x5f45: 0x002c0a8b, 0x5f47: 0x002c628b, - 0x5f48: 0x002c988b, 0x5f49: 0x002d088b, 0x5f4a: 0x002d228b, - 0x5f4d: 0x002dcc8b, 0x5f4e: 0x002dfe8b, 0x5f4f: 0x002e228b, - 0x5f50: 0x002e828b, 0x5f51: 0x002e9e8b, 0x5f52: 0x002ee28b, 0x5f53: 0x002f2c8b, - 0x5f54: 0x002f568b, 0x5f56: 0x002fe68b, 0x5f57: 0x00302c8b, - 0x5f58: 0x00306c8b, 0x5f59: 0x0030be8b, 0x5f5a: 0x0030e28b, 0x5f5b: 0x0030f68b, - 0x5f5c: 0x0031008b, 0x5f5e: 0x002bde85, 0x5f5f: 0x002c0a85, - 0x5f60: 0x002c3a85, 0x5f61: 0x002c6285, 0x5f62: 0x002c9885, 0x5f63: 0x002d0885, - 0x5f64: 0x002d2285, 0x5f65: 0x002d6885, 0x5f66: 0x002d9a85, 0x5f67: 0x002dcc85, - 0x5f68: 0x002dfe85, 0x5f69: 0x002e2285, 0x5f6a: 0x002e8285, 0x5f6b: 0x002e9e85, - 0x5f6c: 0x002ee285, 0x5f6d: 0x002f2c85, 0x5f6e: 0x002f5685, 0x5f6f: 0x002f7a85, - 0x5f70: 0x002fe685, 0x5f71: 0x00302c85, 0x5f72: 0x00306c85, 0x5f73: 0x0030be85, - 0x5f74: 0x0030e285, 0x5f75: 0x0030f685, 0x5f76: 0x00310085, 0x5f77: 0x00312a85, - 0x5f78: 0x002bde8b, 0x5f79: 0x002c0a8b, 0x5f7b: 0x002c628b, - 0x5f7c: 0x002c988b, 0x5f7d: 0x002d088b, 0x5f7e: 0x002d228b, - // Block 0x17e, offset 0x5f80 - 0x5f80: 0x002d9a8b, 0x5f81: 0x002dcc8b, 0x5f82: 0x002dfe8b, 0x5f83: 0x002e228b, - 0x5f84: 0x002e828b, 0x5f86: 0x002ee28b, - 0x5f8a: 0x002fe68b, 0x5f8b: 0x00302c8b, - 0x5f8c: 0x00306c8b, 0x5f8d: 0x0030be8b, 0x5f8e: 0x0030e28b, 0x5f8f: 0x0030f68b, - 0x5f90: 0x0031008b, 0x5f92: 0x002bde85, 0x5f93: 0x002c0a85, - 0x5f94: 0x002c3a85, 0x5f95: 0x002c6285, 0x5f96: 0x002c9885, 0x5f97: 0x002d0885, - 0x5f98: 0x002d2285, 0x5f99: 0x002d6885, 0x5f9a: 0x002d9a85, 0x5f9b: 0x002dcc85, - 0x5f9c: 0x002dfe85, 0x5f9d: 0x002e2285, 0x5f9e: 0x002e8285, 0x5f9f: 0x002e9e85, - 0x5fa0: 0x002ee285, 0x5fa1: 0x002f2c85, 0x5fa2: 0x002f5685, 0x5fa3: 0x002f7a85, - 0x5fa4: 0x002fe685, 0x5fa5: 0x00302c85, 0x5fa6: 0x00306c85, 0x5fa7: 0x0030be85, - 0x5fa8: 0x0030e285, 0x5fa9: 0x0030f685, 0x5faa: 0x00310085, 0x5fab: 0x00312a85, - 0x5fac: 0x002bde8b, 0x5fad: 0x002c0a8b, 0x5fae: 0x002c3a8b, 0x5faf: 0x002c628b, - 0x5fb0: 0x002c988b, 0x5fb1: 0x002d088b, 0x5fb2: 0x002d228b, 0x5fb3: 0x002d688b, - 0x5fb4: 0x002d9a8b, 0x5fb5: 0x002dcc8b, 0x5fb6: 0x002dfe8b, 0x5fb7: 0x002e228b, - 0x5fb8: 0x002e828b, 0x5fb9: 0x002e9e8b, 0x5fba: 0x002ee28b, 0x5fbb: 0x002f2c8b, - 0x5fbc: 0x002f568b, 0x5fbd: 0x002f7a8b, 0x5fbe: 0x002fe68b, 0x5fbf: 0x00302c8b, - // Block 0x17f, offset 0x5fc0 - 0x5fc0: 0x00306c8b, 0x5fc1: 0x0030be8b, 0x5fc2: 0x0030e28b, 0x5fc3: 0x0030f68b, - 0x5fc4: 0x0031008b, 0x5fc5: 0x00312a8b, 0x5fc6: 0x002bde85, 0x5fc7: 0x002c0a85, - 0x5fc8: 0x002c3a85, 0x5fc9: 0x002c6285, 0x5fca: 0x002c9885, 0x5fcb: 0x002d0885, - 0x5fcc: 0x002d2285, 0x5fcd: 0x002d6885, 0x5fce: 0x002d9a85, 0x5fcf: 0x002dcc85, - 0x5fd0: 0x002dfe85, 0x5fd1: 0x002e2285, 0x5fd2: 0x002e8285, 0x5fd3: 0x002e9e85, - 0x5fd4: 0x002ee285, 0x5fd5: 0x002f2c85, 0x5fd6: 0x002f5685, 0x5fd7: 0x002f7a85, - 0x5fd8: 0x002fe685, 0x5fd9: 0x00302c85, 0x5fda: 0x00306c85, 0x5fdb: 0x0030be85, - 0x5fdc: 0x0030e285, 0x5fdd: 0x0030f685, 0x5fde: 0x00310085, 0x5fdf: 0x00312a85, - 0x5fe0: 0x002bde8b, 0x5fe1: 0x002c0a8b, 0x5fe2: 0x002c3a8b, 0x5fe3: 0x002c628b, - 0x5fe4: 0x002c988b, 0x5fe5: 0x002d088b, 0x5fe6: 0x002d228b, 0x5fe7: 0x002d688b, - 0x5fe8: 0x002d9a8b, 0x5fe9: 0x002dcc8b, 0x5fea: 0x002dfe8b, 0x5feb: 0x002e228b, - 0x5fec: 0x002e828b, 0x5fed: 0x002e9e8b, 0x5fee: 0x002ee28b, 0x5fef: 0x002f2c8b, - 0x5ff0: 0x002f568b, 0x5ff1: 0x002f7a8b, 0x5ff2: 0x002fe68b, 0x5ff3: 0x00302c8b, - 0x5ff4: 0x00306c8b, 0x5ff5: 0x0030be8b, 0x5ff6: 0x0030e28b, 0x5ff7: 0x0030f68b, - 0x5ff8: 0x0031008b, 0x5ff9: 0x00312a8b, 0x5ffa: 0x002bde85, 0x5ffb: 0x002c0a85, - 0x5ffc: 0x002c3a85, 0x5ffd: 0x002c6285, 0x5ffe: 0x002c9885, 0x5fff: 0x002d0885, - // Block 0x180, offset 0x6000 - 0x6000: 0x002d2285, 0x6001: 0x002d6885, 0x6002: 0x002d9a85, 0x6003: 0x002dcc85, - 0x6004: 0x002dfe85, 0x6005: 0x002e2285, 0x6006: 0x002e8285, 0x6007: 0x002e9e85, - 0x6008: 0x002ee285, 0x6009: 0x002f2c85, 0x600a: 0x002f5685, 0x600b: 0x002f7a85, - 0x600c: 0x002fe685, 0x600d: 0x00302c85, 0x600e: 0x00306c85, 0x600f: 0x0030be85, - 0x6010: 0x0030e285, 0x6011: 0x0030f685, 0x6012: 0x00310085, 0x6013: 0x00312a85, - 0x6014: 0x002bde8b, 0x6015: 0x002c0a8b, 0x6016: 0x002c3a8b, 0x6017: 0x002c628b, - 0x6018: 0x002c988b, 0x6019: 0x002d088b, 0x601a: 0x002d228b, 0x601b: 0x002d688b, - 0x601c: 0x002d9a8b, 0x601d: 0x002dcc8b, 0x601e: 0x002dfe8b, 0x601f: 0x002e228b, - 0x6020: 0x002e828b, 0x6021: 0x002e9e8b, 0x6022: 0x002ee28b, 0x6023: 0x002f2c8b, - 0x6024: 0x002f568b, 0x6025: 0x002f7a8b, 0x6026: 0x002fe68b, 0x6027: 0x00302c8b, - 0x6028: 0x00306c8b, 0x6029: 0x0030be8b, 0x602a: 0x0030e28b, 0x602b: 0x0030f68b, - 0x602c: 0x0031008b, 0x602d: 0x00312a8b, 0x602e: 0x002bde85, 0x602f: 0x002c0a85, - 0x6030: 0x002c3a85, 0x6031: 0x002c6285, 0x6032: 0x002c9885, 0x6033: 0x002d0885, - 0x6034: 0x002d2285, 0x6035: 0x002d6885, 0x6036: 0x002d9a85, 0x6037: 0x002dcc85, - 0x6038: 0x002dfe85, 0x6039: 0x002e2285, 0x603a: 0x002e8285, 0x603b: 0x002e9e85, - 0x603c: 0x002ee285, 0x603d: 0x002f2c85, 0x603e: 0x002f5685, 0x603f: 0x002f7a85, - // Block 0x181, offset 0x6040 - 0x6040: 0x002fe685, 0x6041: 0x00302c85, 0x6042: 0x00306c85, 0x6043: 0x0030be85, - 0x6044: 0x0030e285, 0x6045: 0x0030f685, 0x6046: 0x00310085, 0x6047: 0x00312a85, - 0x6048: 0x002bde8b, 0x6049: 0x002c0a8b, 0x604a: 0x002c3a8b, 0x604b: 0x002c628b, - 0x604c: 0x002c988b, 0x604d: 0x002d088b, 0x604e: 0x002d228b, 0x604f: 0x002d688b, - 0x6050: 0x002d9a8b, 0x6051: 0x002dcc8b, 0x6052: 0x002dfe8b, 0x6053: 0x002e228b, - 0x6054: 0x002e828b, 0x6055: 0x002e9e8b, 0x6056: 0x002ee28b, 0x6057: 0x002f2c8b, - 0x6058: 0x002f568b, 0x6059: 0x002f7a8b, 0x605a: 0x002fe68b, 0x605b: 0x00302c8b, - 0x605c: 0x00306c8b, 0x605d: 0x0030be8b, 0x605e: 0x0030e28b, 0x605f: 0x0030f68b, - 0x6060: 0x0031008b, 0x6061: 0x00312a8b, 0x6062: 0x002bde85, 0x6063: 0x002c0a85, - 0x6064: 0x002c3a85, 0x6065: 0x002c6285, 0x6066: 0x002c9885, 0x6067: 0x002d0885, - 0x6068: 0x002d2285, 0x6069: 0x002d6885, 0x606a: 0x002d9a85, 0x606b: 0x002dcc85, - 0x606c: 0x002dfe85, 0x606d: 0x002e2285, 0x606e: 0x002e8285, 0x606f: 0x002e9e85, - 0x6070: 0x002ee285, 0x6071: 0x002f2c85, 0x6072: 0x002f5685, 0x6073: 0x002f7a85, - 0x6074: 0x002fe685, 0x6075: 0x00302c85, 0x6076: 0x00306c85, 0x6077: 0x0030be85, - 0x6078: 0x0030e285, 0x6079: 0x0030f685, 0x607a: 0x00310085, 0x607b: 0x00312a85, - 0x607c: 0x002bde8b, 0x607d: 0x002c0a8b, 0x607e: 0x002c3a8b, 0x607f: 0x002c628b, - // Block 0x182, offset 0x6080 - 0x6080: 0x002c988b, 0x6081: 0x002d088b, 0x6082: 0x002d228b, 0x6083: 0x002d688b, - 0x6084: 0x002d9a8b, 0x6085: 0x002dcc8b, 0x6086: 0x002dfe8b, 0x6087: 0x002e228b, - 0x6088: 0x002e828b, 0x6089: 0x002e9e8b, 0x608a: 0x002ee28b, 0x608b: 0x002f2c8b, - 0x608c: 0x002f568b, 0x608d: 0x002f7a8b, 0x608e: 0x002fe68b, 0x608f: 0x00302c8b, - 0x6090: 0x00306c8b, 0x6091: 0x0030be8b, 0x6092: 0x0030e28b, 0x6093: 0x0030f68b, - 0x6094: 0x0031008b, 0x6095: 0x00312a8b, 0x6096: 0x002bde85, 0x6097: 0x002c0a85, - 0x6098: 0x002c3a85, 0x6099: 0x002c6285, 0x609a: 0x002c9885, 0x609b: 0x002d0885, - 0x609c: 0x002d2285, 0x609d: 0x002d6885, 0x609e: 0x002d9a85, 0x609f: 0x002dcc85, - 0x60a0: 0x002dfe85, 0x60a1: 0x002e2285, 0x60a2: 0x002e8285, 0x60a3: 0x002e9e85, - 0x60a4: 0x002ee285, 0x60a5: 0x002f2c85, 0x60a6: 0x002f5685, 0x60a7: 0x002f7a85, - 0x60a8: 0x002fe685, 0x60a9: 0x00302c85, 0x60aa: 0x00306c85, 0x60ab: 0x0030be85, - 0x60ac: 0x0030e285, 0x60ad: 0x0030f685, 0x60ae: 0x00310085, 0x60af: 0x00312a85, - 0x60b0: 0x002bde8b, 0x60b1: 0x002c0a8b, 0x60b2: 0x002c3a8b, 0x60b3: 0x002c628b, - 0x60b4: 0x002c988b, 0x60b5: 0x002d088b, 0x60b6: 0x002d228b, 0x60b7: 0x002d688b, - 0x60b8: 0x002d9a8b, 0x60b9: 0x002dcc8b, 0x60ba: 0x002dfe8b, 0x60bb: 0x002e228b, - 0x60bc: 0x002e828b, 0x60bd: 0x002e9e8b, 0x60be: 0x002ee28b, 0x60bf: 0x002f2c8b, - // Block 0x183, offset 0x60c0 - 0x60c0: 0x002f568b, 0x60c1: 0x002f7a8b, 0x60c2: 0x002fe68b, 0x60c3: 0x00302c8b, - 0x60c4: 0x00306c8b, 0x60c5: 0x0030be8b, 0x60c6: 0x0030e28b, 0x60c7: 0x0030f68b, - 0x60c8: 0x0031008b, 0x60c9: 0x00312a8b, 0x60ca: 0x002bde85, 0x60cb: 0x002c0a85, - 0x60cc: 0x002c3a85, 0x60cd: 0x002c6285, 0x60ce: 0x002c9885, 0x60cf: 0x002d0885, - 0x60d0: 0x002d2285, 0x60d1: 0x002d6885, 0x60d2: 0x002d9a85, 0x60d3: 0x002dcc85, - 0x60d4: 0x002dfe85, 0x60d5: 0x002e2285, 0x60d6: 0x002e8285, 0x60d7: 0x002e9e85, - 0x60d8: 0x002ee285, 0x60d9: 0x002f2c85, 0x60da: 0x002f5685, 0x60db: 0x002f7a85, - 0x60dc: 0x002fe685, 0x60dd: 0x00302c85, 0x60de: 0x00306c85, 0x60df: 0x0030be85, - 0x60e0: 0x0030e285, 0x60e1: 0x0030f685, 0x60e2: 0x00310085, 0x60e3: 0x00312a85, - 0x60e4: 0x002da285, 0x60e5: 0x002dd485, - 0x60e8: 0x0032528b, 0x60e9: 0x0032548b, 0x60ea: 0x0032568b, 0x60eb: 0x00325a8b, - 0x60ec: 0x00325c8b, 0x60ed: 0x0032648b, 0x60ee: 0x0032688b, 0x60ef: 0x00326a8b, - 0x60f0: 0x00326c8b, 0x60f1: 0x0032708b, 0x60f2: 0x0032728b, 0x60f3: 0x0032768b, - 0x60f4: 0x0032788b, 0x60f5: 0x00327a8b, 0x60f6: 0x00327c8b, 0x60f7: 0x00327e8b, - 0x60f8: 0x0032888b, 0x60f9: 0x00326a8b, 0x60fa: 0x00328e8b, 0x60fb: 0x0032968b, - 0x60fc: 0x0032988b, 0x60fd: 0x00329a8b, 0x60fe: 0x00329c8b, 0x60ff: 0x00329e8b, - // Block 0x184, offset 0x6100 - 0x6100: 0x0032a28b, 0x6101: 0x00092485, 0x6102: 0x00325285, 0x6103: 0x00325485, - 0x6104: 0x00325685, 0x6105: 0x00325a85, 0x6106: 0x00325c85, 0x6107: 0x00326485, - 0x6108: 0x00326885, 0x6109: 0x00326a85, 0x610a: 0x00326c85, 0x610b: 0x00327085, - 0x610c: 0x00327285, 0x610d: 0x00327685, 0x610e: 0x00327885, 0x610f: 0x00327a85, - 0x6110: 0x00327c85, 0x6111: 0x00327e85, 0x6112: 0x00328885, 0x6113: 0x00328e85, - 0x6114: 0x00328e85, 0x6115: 0x00329685, 0x6116: 0x00329885, 0x6117: 0x00329a85, - 0x6118: 0x00329c85, 0x6119: 0x00329e85, 0x611a: 0x0032a285, 0x611b: 0x00091c85, - 0x611c: 0x00325c85, 0x611d: 0x00326a85, 0x611e: 0x00327085, 0x611f: 0x00329a85, - 0x6120: 0x00328885, 0x6121: 0x00327e85, 0x6122: 0x0032528b, 0x6123: 0x0032548b, - 0x6124: 0x0032568b, 0x6125: 0x00325a8b, 0x6126: 0x00325c8b, 0x6127: 0x0032648b, - 0x6128: 0x0032688b, 0x6129: 0x00326a8b, 0x612a: 0x00326c8b, 0x612b: 0x0032708b, - 0x612c: 0x0032728b, 0x612d: 0x0032768b, 0x612e: 0x0032788b, 0x612f: 0x00327a8b, - 0x6130: 0x00327c8b, 0x6131: 0x00327e8b, 0x6132: 0x0032888b, 0x6133: 0x00326a8b, - 0x6134: 0x00328e8b, 0x6135: 0x0032968b, 0x6136: 0x0032988b, 0x6137: 0x00329a8b, - 0x6138: 0x00329c8b, 0x6139: 0x00329e8b, 0x613a: 0x0032a28b, 0x613b: 0x00092485, - 0x613c: 0x00325285, 0x613d: 0x00325485, 0x613e: 0x00325685, 0x613f: 0x00325a85, - // Block 0x185, offset 0x6140 - 0x6140: 0x00325c85, 0x6141: 0x00326485, 0x6142: 0x00326885, 0x6143: 0x00326a85, - 0x6144: 0x00326c85, 0x6145: 0x00327085, 0x6146: 0x00327285, 0x6147: 0x00327685, - 0x6148: 0x00327885, 0x6149: 0x00327a85, 0x614a: 0x00327c85, 0x614b: 0x00327e85, - 0x614c: 0x00328885, 0x614d: 0x00328e85, 0x614e: 0x00328e85, 0x614f: 0x00329685, - 0x6150: 0x00329885, 0x6151: 0x00329a85, 0x6152: 0x00329c85, 0x6153: 0x00329e85, - 0x6154: 0x0032a285, 0x6155: 0x00091c85, 0x6156: 0x00325c85, 0x6157: 0x00326a85, - 0x6158: 0x00327085, 0x6159: 0x00329a85, 0x615a: 0x00328885, 0x615b: 0x00327e85, - 0x615c: 0x0032528b, 0x615d: 0x0032548b, 0x615e: 0x0032568b, 0x615f: 0x00325a8b, - 0x6160: 0x00325c8b, 0x6161: 0x0032648b, 0x6162: 0x0032688b, 0x6163: 0x00326a8b, - 0x6164: 0x00326c8b, 0x6165: 0x0032708b, 0x6166: 0x0032728b, 0x6167: 0x0032768b, - 0x6168: 0x0032788b, 0x6169: 0x00327a8b, 0x616a: 0x00327c8b, 0x616b: 0x00327e8b, - 0x616c: 0x0032888b, 0x616d: 0x00326a8b, 0x616e: 0x00328e8b, 0x616f: 0x0032968b, - 0x6170: 0x0032988b, 0x6171: 0x00329a8b, 0x6172: 0x00329c8b, 0x6173: 0x00329e8b, - 0x6174: 0x0032a28b, 0x6175: 0x00092485, 0x6176: 0x00325285, 0x6177: 0x00325485, - 0x6178: 0x00325685, 0x6179: 0x00325a85, 0x617a: 0x00325c85, 0x617b: 0x00326485, - 0x617c: 0x00326885, 0x617d: 0x00326a85, 0x617e: 0x00326c85, 0x617f: 0x00327085, - // Block 0x186, offset 0x6180 - 0x6180: 0x00327285, 0x6181: 0x00327685, 0x6182: 0x00327885, 0x6183: 0x00327a85, - 0x6184: 0x00327c85, 0x6185: 0x00327e85, 0x6186: 0x00328885, 0x6187: 0x00328e85, - 0x6188: 0x00328e85, 0x6189: 0x00329685, 0x618a: 0x00329885, 0x618b: 0x00329a85, - 0x618c: 0x00329c85, 0x618d: 0x00329e85, 0x618e: 0x0032a285, 0x618f: 0x00091c85, - 0x6190: 0x00325c85, 0x6191: 0x00326a85, 0x6192: 0x00327085, 0x6193: 0x00329a85, - 0x6194: 0x00328885, 0x6195: 0x00327e85, 0x6196: 0x0032528b, 0x6197: 0x0032548b, - 0x6198: 0x0032568b, 0x6199: 0x00325a8b, 0x619a: 0x00325c8b, 0x619b: 0x0032648b, - 0x619c: 0x0032688b, 0x619d: 0x00326a8b, 0x619e: 0x00326c8b, 0x619f: 0x0032708b, - 0x61a0: 0x0032728b, 0x61a1: 0x0032768b, 0x61a2: 0x0032788b, 0x61a3: 0x00327a8b, - 0x61a4: 0x00327c8b, 0x61a5: 0x00327e8b, 0x61a6: 0x0032888b, 0x61a7: 0x00326a8b, - 0x61a8: 0x00328e8b, 0x61a9: 0x0032968b, 0x61aa: 0x0032988b, 0x61ab: 0x00329a8b, - 0x61ac: 0x00329c8b, 0x61ad: 0x00329e8b, 0x61ae: 0x0032a28b, 0x61af: 0x00092485, - 0x61b0: 0x00325285, 0x61b1: 0x00325485, 0x61b2: 0x00325685, 0x61b3: 0x00325a85, - 0x61b4: 0x00325c85, 0x61b5: 0x00326485, 0x61b6: 0x00326885, 0x61b7: 0x00326a85, - 0x61b8: 0x00326c85, 0x61b9: 0x00327085, 0x61ba: 0x00327285, 0x61bb: 0x00327685, - 0x61bc: 0x00327885, 0x61bd: 0x00327a85, 0x61be: 0x00327c85, 0x61bf: 0x00327e85, - // Block 0x187, offset 0x61c0 - 0x61c0: 0x00328885, 0x61c1: 0x00328e85, 0x61c2: 0x00328e85, 0x61c3: 0x00329685, - 0x61c4: 0x00329885, 0x61c5: 0x00329a85, 0x61c6: 0x00329c85, 0x61c7: 0x00329e85, - 0x61c8: 0x0032a285, 0x61c9: 0x00091c85, 0x61ca: 0x00325c85, 0x61cb: 0x00326a85, - 0x61cc: 0x00327085, 0x61cd: 0x00329a85, 0x61ce: 0x00328885, 0x61cf: 0x00327e85, - 0x61d0: 0x0032528b, 0x61d1: 0x0032548b, 0x61d2: 0x0032568b, 0x61d3: 0x00325a8b, - 0x61d4: 0x00325c8b, 0x61d5: 0x0032648b, 0x61d6: 0x0032688b, 0x61d7: 0x00326a8b, - 0x61d8: 0x00326c8b, 0x61d9: 0x0032708b, 0x61da: 0x0032728b, 0x61db: 0x0032768b, - 0x61dc: 0x0032788b, 0x61dd: 0x00327a8b, 0x61de: 0x00327c8b, 0x61df: 0x00327e8b, - 0x61e0: 0x0032888b, 0x61e1: 0x00326a8b, 0x61e2: 0x00328e8b, 0x61e3: 0x0032968b, - 0x61e4: 0x0032988b, 0x61e5: 0x00329a8b, 0x61e6: 0x00329c8b, 0x61e7: 0x00329e8b, - 0x61e8: 0x0032a28b, 0x61e9: 0x00092485, 0x61ea: 0x00325285, 0x61eb: 0x00325485, - 0x61ec: 0x00325685, 0x61ed: 0x00325a85, 0x61ee: 0x00325c85, 0x61ef: 0x00326485, - 0x61f0: 0x00326885, 0x61f1: 0x00326a85, 0x61f2: 0x00326c85, 0x61f3: 0x00327085, - 0x61f4: 0x00327285, 0x61f5: 0x00327685, 0x61f6: 0x00327885, 0x61f7: 0x00327a85, - 0x61f8: 0x00327c85, 0x61f9: 0x00327e85, 0x61fa: 0x00328885, 0x61fb: 0x00328e85, - 0x61fc: 0x00328e85, 0x61fd: 0x00329685, 0x61fe: 0x00329885, 0x61ff: 0x00329a85, - // Block 0x188, offset 0x6200 - 0x6200: 0x00329c85, 0x6201: 0x00329e85, 0x6202: 0x0032a285, 0x6203: 0x00091c85, - 0x6204: 0x00325c85, 0x6205: 0x00326a85, 0x6206: 0x00327085, 0x6207: 0x00329a85, - 0x6208: 0x00328885, 0x6209: 0x00327e85, 0x620a: 0x00325e8b, 0x620b: 0x00325e85, - 0x620e: 0x0029cc85, 0x620f: 0x0029ce85, - 0x6210: 0x0029d085, 0x6211: 0x0029d285, 0x6212: 0x0029d485, 0x6213: 0x0029d685, - 0x6214: 0x0029d885, 0x6215: 0x0029da85, 0x6216: 0x0029dc85, 0x6217: 0x0029de85, - 0x6218: 0x0029cc85, 0x6219: 0x0029ce85, 0x621a: 0x0029d085, 0x621b: 0x0029d285, - 0x621c: 0x0029d485, 0x621d: 0x0029d685, 0x621e: 0x0029d885, 0x621f: 0x0029da85, - 0x6220: 0x0029dc85, 0x6221: 0x0029de85, 0x6222: 0x0029cc85, 0x6223: 0x0029ce85, - 0x6224: 0x0029d085, 0x6225: 0x0029d285, 0x6226: 0x0029d485, 0x6227: 0x0029d685, - 0x6228: 0x0029d885, 0x6229: 0x0029da85, 0x622a: 0x0029dc85, 0x622b: 0x0029de85, - 0x622c: 0x0029cc85, 0x622d: 0x0029ce85, 0x622e: 0x0029d085, 0x622f: 0x0029d285, - 0x6230: 0x0029d485, 0x6231: 0x0029d685, 0x6232: 0x0029d885, 0x6233: 0x0029da85, - 0x6234: 0x0029dc85, 0x6235: 0x0029de85, 0x6236: 0x0029cc85, 0x6237: 0x0029ce85, - 0x6238: 0x0029d085, 0x6239: 0x0029d285, 0x623a: 0x0029d485, 0x623b: 0x0029d685, - 0x623c: 0x0029d885, 0x623d: 0x0029da85, 0x623e: 0x0029dc85, 0x623f: 0x0029de85, - // Block 0x189, offset 0x6240 - 0x6240: 0x00393885, 0x6241: 0x00393c85, 0x6242: 0x00396485, 0x6243: 0x00398885, - 0x6245: 0x003a7485, 0x6246: 0x0039a685, 0x6247: 0x00397285, - 0x6248: 0x0039e685, 0x6249: 0x003a9085, 0x624a: 0x003a1a85, 0x624b: 0x003a4085, - 0x624c: 0x003a4e85, 0x624d: 0x003a5685, 0x624e: 0x0039c685, 0x624f: 0x0039ee85, - 0x6250: 0x0039fc85, 0x6251: 0x0039dc85, 0x6252: 0x003a1285, 0x6253: 0x0039a485, - 0x6254: 0x0039c885, 0x6255: 0x00395685, 0x6256: 0x00395885, 0x6257: 0x00397485, - 0x6258: 0x00398a85, 0x6259: 0x0039de85, 0x625a: 0x0039e885, 0x625b: 0x0039f085, - 0x625c: 0x00393a85, 0x625d: 0x003a5885, 0x625e: 0x0039fe85, 0x625f: 0x003a1085, - 0x6261: 0x00393c85, 0x6262: 0x00396485, - 0x6264: 0x003a6885, 0x6267: 0x00397285, - 0x6269: 0x003a9085, 0x626a: 0x003a1a85, 0x626b: 0x003a4085, - 0x626c: 0x003a4e85, 0x626d: 0x003a5685, 0x626e: 0x0039c685, 0x626f: 0x0039ee85, - 0x6270: 0x0039fc85, 0x6271: 0x0039dc85, 0x6272: 0x003a1285, - 0x6274: 0x0039c885, 0x6275: 0x00395685, 0x6276: 0x00395885, 0x6277: 0x00397485, - 0x6279: 0x0039de85, 0x627b: 0x0039f085, - // Block 0x18a, offset 0x6280 - 0x6282: 0x00396485, - 0x6287: 0x00397285, - 0x6289: 0x003a9085, 0x628b: 0x003a4085, - 0x628d: 0x003a5685, 0x628e: 0x0039c685, 0x628f: 0x0039ee85, - 0x6291: 0x0039dc85, 0x6292: 0x003a1285, - 0x6294: 0x0039c885, 0x6297: 0x00397485, - 0x6299: 0x0039de85, 0x629b: 0x0039f085, - 0x629d: 0x003a5885, 0x629f: 0x003a1085, - 0x62a1: 0x00393c85, 0x62a2: 0x00396485, - 0x62a4: 0x003a6885, 0x62a7: 0x00397285, - 0x62a8: 0x0039e685, 0x62a9: 0x003a9085, 0x62aa: 0x003a1a85, - 0x62ac: 0x003a4e85, 0x62ad: 0x003a5685, 0x62ae: 0x0039c685, 0x62af: 0x0039ee85, - 0x62b0: 0x0039fc85, 0x62b1: 0x0039dc85, 0x62b2: 0x003a1285, - 0x62b4: 0x0039c885, 0x62b5: 0x00395685, 0x62b6: 0x00395885, 0x62b7: 0x00397485, - 0x62b9: 0x0039de85, 0x62ba: 0x0039e885, 0x62bb: 0x0039f085, - 0x62bc: 0x00393a85, 0x62be: 0x0039fe85, - // Block 0x18b, offset 0x62c0 - 0x62c0: 0x00393885, 0x62c1: 0x00393c85, 0x62c2: 0x00396485, 0x62c3: 0x00398885, - 0x62c4: 0x003a6885, 0x62c5: 0x003a7485, 0x62c6: 0x0039a685, 0x62c7: 0x00397285, - 0x62c8: 0x0039e685, 0x62c9: 0x003a9085, 0x62cb: 0x003a4085, - 0x62cc: 0x003a4e85, 0x62cd: 0x003a5685, 0x62ce: 0x0039c685, 0x62cf: 0x0039ee85, - 0x62d0: 0x0039fc85, 0x62d1: 0x0039dc85, 0x62d2: 0x003a1285, 0x62d3: 0x0039a485, - 0x62d4: 0x0039c885, 0x62d5: 0x00395685, 0x62d6: 0x00395885, 0x62d7: 0x00397485, - 0x62d8: 0x00398a85, 0x62d9: 0x0039de85, 0x62da: 0x0039e885, 0x62db: 0x0039f085, - 0x62e1: 0x00393c85, 0x62e2: 0x00396485, 0x62e3: 0x00398885, - 0x62e5: 0x003a7485, 0x62e6: 0x0039a685, 0x62e7: 0x00397285, - 0x62e8: 0x0039e685, 0x62e9: 0x003a9085, 0x62eb: 0x003a4085, - 0x62ec: 0x003a4e85, 0x62ed: 0x003a5685, 0x62ee: 0x0039c685, 0x62ef: 0x0039ee85, - 0x62f0: 0x0039fc85, 0x62f1: 0x0039dc85, 0x62f2: 0x003a1285, 0x62f3: 0x0039a485, - 0x62f4: 0x0039c885, 0x62f5: 0x00395685, 0x62f6: 0x00395885, 0x62f7: 0x00397485, - 0x62f8: 0x00398a85, 0x62f9: 0x0039de85, 0x62fa: 0x0039e885, 0x62fb: 0x0039f085, - // Block 0x18c, offset 0x6300 - 0x6330: 0x40070a20, 0x6331: 0x40070c20, - // Block 0x18d, offset 0x6340 - 0x6340: 0x401f6e20, 0x6341: 0x401f7020, 0x6342: 0x401f7220, 0x6343: 0x401f7420, - 0x6344: 0x401f7620, 0x6345: 0x401f7820, 0x6346: 0x401f7a20, 0x6347: 0x401f7c20, - 0x6348: 0x401f7e20, 0x6349: 0x401f8020, 0x634a: 0x401f8220, 0x634b: 0x401f8420, - 0x634c: 0x401f8620, 0x634d: 0x401f8820, 0x634e: 0x401f8a20, 0x634f: 0x401f8c20, - 0x6350: 0x401f8e20, 0x6351: 0x401f9020, 0x6352: 0x401f9220, 0x6353: 0x401f9420, - 0x6354: 0x401f9620, 0x6355: 0x401f9820, 0x6356: 0x401f9a20, 0x6357: 0x401f9c20, - 0x6358: 0x401f9e20, 0x6359: 0x401fa020, 0x635a: 0x401fa220, 0x635b: 0x401fa420, - 0x635c: 0x401fa620, 0x635d: 0x401fa820, 0x635e: 0x401faa20, 0x635f: 0x401fac20, - 0x6360: 0x401fae20, 0x6361: 0x401fb020, 0x6362: 0x401fb220, 0x6363: 0x401fb420, - 0x6364: 0x401fb620, 0x6365: 0x401fb820, 0x6366: 0x401fba20, 0x6367: 0x401fbc20, - 0x6368: 0x401fbe20, 0x6369: 0x401fc020, 0x636a: 0x401fc220, 0x636b: 0x401fc420, - 0x6370: 0x401fc620, 0x6371: 0x401fc820, 0x6372: 0x401fca20, 0x6373: 0x401fcc20, - 0x6374: 0x401fce20, 0x6375: 0x401fd020, 0x6376: 0x401fd220, 0x6377: 0x401fd420, - 0x6378: 0x401fd620, 0x6379: 0x401fd820, 0x637a: 0x401fda20, 0x637b: 0x401fdc20, - 0x637c: 0x401fde20, 0x637d: 0x401fe020, 0x637e: 0x401fe220, 0x637f: 0x401fe420, - // Block 0x18e, offset 0x6380 - 0x6380: 0x401fe620, 0x6381: 0x401fe820, 0x6382: 0x401fea20, 0x6383: 0x401fec20, - 0x6384: 0x401fee20, 0x6385: 0x401ff020, 0x6386: 0x401ff220, 0x6387: 0x401ff420, - 0x6388: 0x401ff620, 0x6389: 0x401ff820, 0x638a: 0x401ffa20, 0x638b: 0x401ffc20, - 0x638c: 0x401ffe20, 0x638d: 0x40200020, 0x638e: 0x40200220, 0x638f: 0x40200420, - 0x6390: 0x40200620, 0x6391: 0x40200820, 0x6392: 0x40200a20, 0x6393: 0x40200c20, - 0x6394: 0x40200e20, 0x6395: 0x40201020, 0x6396: 0x40201220, 0x6397: 0x40201420, - 0x6398: 0x40201620, 0x6399: 0x40201820, 0x639a: 0x40201a20, 0x639b: 0x40201c20, - 0x639c: 0x40201e20, 0x639d: 0x40202020, 0x639e: 0x40202220, 0x639f: 0x40202420, - 0x63a0: 0x40202620, 0x63a1: 0x40202820, 0x63a2: 0x40202a20, 0x63a3: 0x40202c20, - 0x63a4: 0x40202e20, 0x63a5: 0x40203020, 0x63a6: 0x40203220, 0x63a7: 0x40203420, - 0x63a8: 0x40203620, 0x63a9: 0x40203820, 0x63aa: 0x40203a20, 0x63ab: 0x40203c20, - 0x63ac: 0x40203e20, 0x63ad: 0x40204020, 0x63ae: 0x40204220, 0x63af: 0x40204420, - 0x63b0: 0x40204620, 0x63b1: 0x40204820, 0x63b2: 0x40204a20, 0x63b3: 0x40204c20, - 0x63b4: 0x40204e20, 0x63b5: 0x40205020, 0x63b6: 0x40205220, 0x63b7: 0x40205420, - 0x63b8: 0x40205620, 0x63b9: 0x40205820, 0x63ba: 0x40205a20, 0x63bb: 0x40205c20, - 0x63bc: 0x40205e20, 0x63bd: 0x40206020, 0x63be: 0x40206220, 0x63bf: 0x40206420, - // Block 0x18f, offset 0x63c0 - 0x63c0: 0x40206620, 0x63c1: 0x40206820, 0x63c2: 0x40206a20, 0x63c3: 0x40206c20, - 0x63c4: 0x40206e20, 0x63c5: 0x40207020, 0x63c6: 0x40207220, 0x63c7: 0x40207420, - 0x63c8: 0x40207620, 0x63c9: 0x40207820, 0x63ca: 0x40207a20, 0x63cb: 0x40207c20, - 0x63cc: 0x40207e20, 0x63cd: 0x40208020, 0x63ce: 0x40208220, 0x63cf: 0x40208420, - 0x63d0: 0x40208620, 0x63d1: 0x40208820, 0x63d2: 0x40208a20, 0x63d3: 0x40208c20, - 0x63e0: 0x40208e20, 0x63e1: 0x40209020, 0x63e2: 0x40209220, 0x63e3: 0x40209420, - 0x63e4: 0x40209620, 0x63e5: 0x40209820, 0x63e6: 0x40209a20, 0x63e7: 0x40209c20, - 0x63e8: 0x40209e20, 0x63e9: 0x4020a020, 0x63ea: 0x4020a220, 0x63eb: 0x4020a420, - 0x63ec: 0x4020a620, 0x63ed: 0x4020a820, 0x63ee: 0x4020aa20, - 0x63f1: 0x4020ac20, 0x63f2: 0x4020ae20, 0x63f3: 0x4020b020, - 0x63f4: 0x4020b220, 0x63f5: 0x4020b420, 0x63f6: 0x4020b620, 0x63f7: 0x4020b820, - 0x63f8: 0x4020ba20, 0x63f9: 0x4020bc20, 0x63fa: 0x4020be20, 0x63fb: 0x4020c020, - 0x63fc: 0x4020c220, 0x63fd: 0x4020c420, 0x63fe: 0x4020c620, - // Block 0x190, offset 0x6400 - 0x6401: 0x4020c820, 0x6402: 0x4020ca20, 0x6403: 0x4020cc20, - 0x6404: 0x4020ce20, 0x6405: 0x4020d020, 0x6406: 0x4020d220, 0x6407: 0x4020d420, - 0x6408: 0x4020d620, 0x6409: 0x4020d820, 0x640a: 0x4020da20, 0x640b: 0x4020dc20, - 0x640c: 0x4020de20, 0x640d: 0x4020e020, 0x640e: 0x4020e220, 0x640f: 0x4020e420, - 0x6411: 0x4020e620, 0x6412: 0x4020e820, 0x6413: 0x4020ea20, - 0x6414: 0x4020ec20, 0x6415: 0x4020ee20, 0x6416: 0x4020f020, 0x6417: 0x4020f220, - 0x6418: 0x4020f420, 0x6419: 0x4020f620, 0x641a: 0x4020f820, 0x641b: 0x4020fa20, - 0x641c: 0x4020fc20, 0x641d: 0x4020fe20, 0x641e: 0x40210020, 0x641f: 0x40210220, - // Block 0x191, offset 0x6440 - 0x6440: 0xf0001f04, 0x6441: 0xf0001f04, 0x6442: 0xf0001f04, 0x6443: 0xf0001f04, - 0x6444: 0xf0001f04, 0x6445: 0xf0001f04, 0x6446: 0xf0001f04, 0x6447: 0xf0001f04, - 0x6448: 0xf0001f04, 0x6449: 0xf0001f04, 0x644a: 0xf0001f04, - 0x6450: 0xf0000a04, 0x6451: 0xf0000a04, 0x6452: 0xf0000a04, 0x6453: 0xf0000a04, - 0x6454: 0xf0000a04, 0x6455: 0xf0000a04, 0x6456: 0xf0000a04, 0x6457: 0xf0000a04, - 0x6458: 0xf0000a04, 0x6459: 0xf0000a04, 0x645a: 0xf0000a04, 0x645b: 0xf0000a04, - 0x645c: 0xf0000a04, 0x645d: 0xf0000a04, 0x645e: 0xf0000a04, 0x645f: 0xf0000a04, - 0x6460: 0xf0000a04, 0x6461: 0xf0000a04, 0x6462: 0xf0000a04, 0x6463: 0xf0000a04, - 0x6464: 0xf0000a04, 0x6465: 0xf0000a04, 0x6466: 0xf0000a04, 0x6467: 0xf0000a04, - 0x6468: 0xf0000a04, 0x6469: 0xf0000a04, 0x646a: 0xf0000a04, 0x646b: 0x002c3a8c, - 0x646c: 0x002f7a8c, 0x646d: 0xf0000c0c, 0x646e: 0xf0000c0c, - 0x6470: 0x002bde9d, 0x6471: 0x002c0a9d, 0x6472: 0x002c3a9d, 0x6473: 0x002c629d, - 0x6474: 0x002c989d, 0x6475: 0x002d089d, 0x6476: 0x002d229d, 0x6477: 0x002d689d, - 0x6478: 0x002d9a9d, 0x6479: 0x002dcc9d, 0x647a: 0x002dfe9d, 0x647b: 0x002e229d, - 0x647c: 0x002e829d, 0x647d: 0x002e9e9d, 0x647e: 0x002ee29d, 0x647f: 0x002f2c9d, - // Block 0x192, offset 0x6480 - 0x6480: 0x002f569d, 0x6481: 0x002f7a9d, 0x6482: 0x002fe69d, 0x6483: 0x00302c9d, - 0x6484: 0x00306c9d, 0x6485: 0x0030be9d, 0x6486: 0x0030e29d, 0x6487: 0x0030f69d, - 0x6488: 0x0031009d, 0x6489: 0x00312a9d, 0x648a: 0xf0001d1d, 0x648b: 0xf0001d1d, - 0x648c: 0xf0001d1d, 0x648d: 0xf0001d1d, 0x648e: 0xe0000ebc, 0x648f: 0xf0001d1d, - 0x6490: 0x002bde8c, 0x6491: 0x002c0a8c, 0x6492: 0x002c3a8c, 0x6493: 0x002c628c, - 0x6494: 0x002c988c, 0x6495: 0x002d088c, 0x6496: 0x002d228c, 0x6497: 0x002d688c, - 0x6498: 0x002d9a8c, 0x6499: 0x002dcc8c, 0x649a: 0x002dfe8c, 0x649b: 0x002e228c, - 0x649c: 0x002e828c, 0x649d: 0x002e9e8c, 0x649e: 0x002ee28c, 0x649f: 0x002f2c8c, - 0x64a0: 0x002f568c, 0x64a1: 0x002f7a8c, 0x64a2: 0x002fe68c, 0x64a3: 0x00302c8c, - 0x64a4: 0x00306c8c, 0x64a5: 0x0030be8c, 0x64a6: 0x0030e28c, 0x64a7: 0x0030f68c, - 0x64a8: 0x0031008c, 0x64a9: 0x00312a8c, 0x64aa: 0xf0001414, 0x64ab: 0xf0001414, - 0x64b0: 0x002bde9d, 0x64b1: 0x002c0a9d, 0x64b2: 0x002c3a9d, 0x64b3: 0x002c629d, - 0x64b4: 0x002c989d, 0x64b5: 0x002d089d, 0x64b6: 0x002d229d, 0x64b7: 0x002d689d, - 0x64b8: 0x002d9a9d, 0x64b9: 0x002dcc9d, 0x64ba: 0x002dfe9d, 0x64bb: 0x002e229d, - 0x64bc: 0x002e829d, 0x64bd: 0x002e9e9d, 0x64be: 0x002ee29d, 0x64bf: 0x002f2c9d, - // Block 0x193, offset 0x64c0 - 0x64c0: 0x002f569d, 0x64c1: 0x002f7a9d, 0x64c2: 0x002fe69d, 0x64c3: 0x00302c9d, - 0x64c4: 0x00306c9d, 0x64c5: 0x0030be9d, 0x64c6: 0x0030e29d, 0x64c7: 0x0030f69d, - 0x64c8: 0x0031009d, 0x64c9: 0x00312a9d, 0x64ca: 0x002f2c9d, 0x64cb: 0xe0000c81, - 0x64cc: 0xe0000eb5, 0x64cd: 0xe0000f74, 0x64ce: 0xe00009d2, 0x64cf: 0xe00010f0, - 0x64d0: 0xf0001d1d, 0x64d1: 0xe0000a6f, 0x64d2: 0xe0000a7e, 0x64d3: 0xe0000ba4, - 0x64d4: 0xe0000c84, 0x64d5: 0xe0000d8a, 0x64d6: 0xe0000d8e, 0x64d7: 0xe0000e9b, - 0x64d8: 0xe0000f77, 0x64d9: 0xe00010a2, 0x64da: 0xe00010c0, - // Block 0x194, offset 0x6500 - 0x6526: 0x40110c20, 0x6527: 0x40110e20, - 0x6528: 0x40111020, 0x6529: 0x40111220, 0x652a: 0x40111420, 0x652b: 0x40111620, - 0x652c: 0x40111820, 0x652d: 0x40111a20, 0x652e: 0x40111c20, 0x652f: 0x40111e20, - 0x6530: 0x40112020, 0x6531: 0x40112220, 0x6532: 0x40112420, 0x6533: 0x40112620, - 0x6534: 0x40112820, 0x6535: 0x40112a20, 0x6536: 0x40112c20, 0x6537: 0x40112e20, - 0x6538: 0x40113020, 0x6539: 0x40113220, 0x653a: 0x40113420, 0x653b: 0x40113620, - 0x653c: 0x40113820, 0x653d: 0x40113a20, 0x653e: 0x40113c20, 0x653f: 0x40113e20, - // Block 0x195, offset 0x6540 - 0x6540: 0xf0001c1c, 0x6541: 0xf0001c1c, 0x6542: 0x00658c9c, - 0x6550: 0x02c4969c, 0x6551: 0x02b6ae9c, 0x6552: 0x02a7989c, 0x6553: 0xf0001c1c, - 0x6554: 0x029d189c, 0x6555: 0x02b2349c, 0x6556: 0x0313c69c, 0x6557: 0x02b2529c, - 0x6558: 0x029d489c, 0x6559: 0x02cc409c, 0x655a: 0x02e2429c, 0x655b: 0x02cb329c, - 0x655c: 0x02a49a9c, 0x655d: 0x02bf189c, 0x655e: 0x02a31a9c, 0x655f: 0x02cb609c, - 0x6560: 0x02a43a9c, 0x6561: 0x02fa849c, 0x6562: 0x02ea3e9c, 0x6563: 0x0319529c, - 0x6564: 0x02b1e09c, 0x6565: 0x02a8729c, 0x6566: 0x02de289c, 0x6567: 0x02c52a9c, - 0x6568: 0x02c6aa9c, 0x6569: 0x029c009c, 0x656a: 0x029c129c, 0x656b: 0x0320949c, - 0x656c: 0x02bbcc9c, 0x656d: 0x029c5a9c, 0x656e: 0x02a7e69c, 0x656f: 0x02c60e9c, - 0x6570: 0x031ae09c, 0x6571: 0x02c4a69c, 0x6572: 0x02f3029c, 0x6573: 0x02f4f49c, - 0x6574: 0x02a8109c, 0x6575: 0x02dd009c, 0x6576: 0x02ce129c, 0x6577: 0x02ce109c, - 0x6578: 0x02ea669c, 0x6579: 0x02a4e49c, 0x657a: 0x02ab6c9c, - // Block 0x196, offset 0x6580 - 0x6580: 0xf0000404, 0x6581: 0xf0000404, 0x6582: 0xf0000404, 0x6583: 0xf0000404, - 0x6584: 0xf0000404, 0x6585: 0xf0000404, 0x6586: 0xf0000404, 0x6587: 0xf0000404, - 0x6588: 0xf0000404, - 0x6590: 0x02bf2e86, 0x6591: 0x02a7de86, - // Block 0x197, offset 0x65c0 - 0x65c0: 0x40210420, 0x65c1: 0x40210620, 0x65c2: 0x40210820, 0x65c3: 0x40210a20, - 0x65c4: 0x40210c20, 0x65c5: 0x40210e20, 0x65c6: 0x40211020, 0x65c7: 0x40211220, - 0x65c8: 0x40211420, 0x65c9: 0x40211620, 0x65ca: 0x40211820, 0x65cb: 0x40211a20, - 0x65cc: 0x40211c20, 0x65cd: 0x40211e20, 0x65ce: 0x40212020, 0x65cf: 0x40212220, - 0x65d0: 0x40212420, 0x65d1: 0x40212620, 0x65d2: 0x40212820, 0x65d3: 0x40212a20, - 0x65d4: 0x40212c20, 0x65d5: 0x40212e20, 0x65d6: 0x40213020, 0x65d7: 0x40213220, - 0x65d8: 0x40213420, 0x65d9: 0x40213620, 0x65da: 0x40213820, 0x65db: 0x40213a20, - 0x65dc: 0x40213c20, 0x65dd: 0x40213e20, 0x65de: 0x40214020, 0x65df: 0x40214220, - 0x65e0: 0x40214420, - 0x65f0: 0x40214620, 0x65f1: 0x40214820, 0x65f2: 0x40214a20, 0x65f3: 0x40214c20, - 0x65f4: 0x40214e20, 0x65f5: 0x40215020, 0x65f7: 0x40215220, - 0x65f8: 0x40215420, 0x65f9: 0x40215620, 0x65fa: 0x40215820, 0x65fb: 0x40215a20, - 0x65fc: 0x40215c20, 0x65fd: 0x40215e20, 0x65fe: 0x40216020, 0x65ff: 0x40216220, - // Block 0x198, offset 0x6600 - 0x6600: 0x40216420, 0x6601: 0x40216620, 0x6602: 0x40216820, 0x6603: 0x40216a20, - 0x6604: 0x40216c20, 0x6605: 0x40216e20, 0x6606: 0x40217020, 0x6607: 0x40217220, - 0x6608: 0x40217420, 0x6609: 0x40217620, 0x660a: 0x40217820, 0x660b: 0x40217a20, - 0x660c: 0x40217c20, 0x660d: 0x40217e20, 0x660e: 0x40218020, 0x660f: 0x40218220, - 0x6610: 0x40218420, 0x6611: 0x40218620, 0x6612: 0x40218820, 0x6613: 0x40218a20, - 0x6614: 0x40218c20, 0x6615: 0x40218e20, 0x6616: 0x40219020, 0x6617: 0x40219220, - 0x6618: 0x40219420, 0x6619: 0x40219620, 0x661a: 0x40219820, 0x661b: 0x40219a20, - 0x661c: 0x40219c20, 0x661d: 0x40219e20, 0x661e: 0x4021a020, 0x661f: 0x4021a220, - 0x6620: 0x4021a420, 0x6621: 0x4021a620, 0x6622: 0x4021a820, 0x6623: 0x4021aa20, - 0x6624: 0x4021ac20, 0x6625: 0x4021ae20, 0x6626: 0x4021b020, 0x6627: 0x4021b220, - 0x6628: 0x4021b420, 0x6629: 0x4021b620, 0x662a: 0x4021b820, 0x662b: 0x4021ba20, - 0x662c: 0x4021bc20, 0x662d: 0x4021be20, 0x662e: 0x4021c020, 0x662f: 0x4021c220, - 0x6630: 0x4021c420, 0x6631: 0x4021c620, 0x6632: 0x4021c820, 0x6633: 0x4021ca20, - 0x6634: 0x4021cc20, 0x6635: 0x4021ce20, 0x6636: 0x4021d020, 0x6637: 0x4021d220, - 0x6638: 0x4021d420, 0x6639: 0x4021d620, 0x663a: 0x4021d820, 0x663b: 0x4021da20, - 0x663c: 0x4021dc20, - // Block 0x199, offset 0x6640 - 0x6640: 0x4021de20, 0x6641: 0x4021e020, 0x6642: 0x4021e220, 0x6643: 0x4021e420, - 0x6644: 0x4021e620, 0x6645: 0x4021e820, 0x6646: 0x4021ea20, 0x6647: 0x4021ec20, - 0x6648: 0x4021ee20, 0x6649: 0x4021f020, 0x664a: 0x4021f220, 0x664b: 0x4021f420, - 0x664c: 0x4021f620, 0x664d: 0x4021f820, 0x664e: 0x4021fa20, 0x664f: 0x4021fc20, - 0x6650: 0x4021fe20, 0x6651: 0x40220020, 0x6652: 0x40220220, 0x6653: 0x40220420, - 0x6660: 0x40220620, 0x6661: 0x40220820, 0x6662: 0x40220a20, 0x6663: 0x40220c20, - 0x6664: 0x40220e20, 0x6665: 0x40221020, 0x6666: 0x40221220, 0x6667: 0x40221420, - 0x6668: 0x40221620, 0x6669: 0x40221820, 0x666a: 0x40221a20, 0x666b: 0x40221c20, - 0x666c: 0x40221e20, 0x666d: 0x40222020, 0x666e: 0x40222220, 0x666f: 0x40222420, - 0x6670: 0x40222620, 0x6671: 0x40222820, 0x6672: 0x40222a20, 0x6673: 0x40222c20, - 0x6674: 0x40222e20, 0x6675: 0x40223020, 0x6676: 0x40223220, 0x6677: 0x40223420, - 0x6678: 0x40223620, 0x6679: 0x40223820, 0x667a: 0x40223a20, 0x667b: 0x40223c20, - 0x667c: 0x40223e20, 0x667d: 0x40224020, 0x667e: 0x40224220, 0x667f: 0x40224420, - // Block 0x19a, offset 0x6680 - 0x6680: 0x40224620, 0x6681: 0x40224820, 0x6682: 0x40224a20, 0x6683: 0x40224c20, - 0x6684: 0x40224e20, 0x6686: 0x40225020, 0x6687: 0x40225220, - 0x6688: 0x40225420, 0x6689: 0x40225620, 0x668a: 0x40225820, - 0x66a0: 0x40225a20, 0x66a1: 0x40225c20, 0x66a2: 0x40225e20, 0x66a3: 0x40226020, - 0x66a4: 0x40226220, 0x66a5: 0x40226420, 0x66a6: 0x40226620, 0x66a7: 0x40226820, - 0x66a8: 0x40226a20, 0x66a9: 0x40226c20, 0x66aa: 0x40226e20, 0x66ab: 0x40227020, - 0x66ac: 0x40227220, 0x66ad: 0x40227420, 0x66ae: 0x40227620, 0x66af: 0x40227820, - 0x66b0: 0x40227a20, - // Block 0x19b, offset 0x66c0 - 0x66c0: 0x40227c20, 0x66c1: 0x40227e20, 0x66c2: 0x40228020, 0x66c3: 0x40228220, - 0x66c4: 0x40228420, 0x66c5: 0x40228620, 0x66c6: 0x40228820, 0x66c7: 0x40228a20, - 0x66c8: 0x40228c20, 0x66c9: 0x40228e20, 0x66ca: 0x40229020, 0x66cb: 0x40229220, - 0x66cc: 0x40229420, 0x66cd: 0x40229620, 0x66ce: 0x40229820, 0x66cf: 0x40229a20, - 0x66d0: 0x40229c20, 0x66d1: 0x40229e20, 0x66d2: 0x4022a020, 0x66d3: 0x4022a220, - 0x66d4: 0x4022a420, 0x66d5: 0x4022a620, 0x66d6: 0x4022a820, 0x66d7: 0x4022aa20, - 0x66d8: 0x4022ac20, 0x66d9: 0x4022ae20, 0x66da: 0x4022b020, 0x66db: 0x4022b220, - 0x66dc: 0x4022b420, 0x66dd: 0x4022b620, 0x66de: 0x4022b820, 0x66df: 0x4022ba20, - 0x66e0: 0x4022bc20, 0x66e1: 0x4022be20, 0x66e2: 0x4022c020, 0x66e3: 0x4022c220, - 0x66e4: 0x4022c420, 0x66e5: 0x4022c620, 0x66e6: 0x4022c820, 0x66e7: 0x4022ca20, - 0x66e8: 0x4022cc20, 0x66e9: 0x4022ce20, 0x66ea: 0x4022d020, 0x66eb: 0x4022d220, - 0x66ec: 0x4022d420, 0x66ed: 0x4022d620, 0x66ee: 0x4022d820, 0x66ef: 0x4022da20, - 0x66f0: 0x4022dc20, 0x66f1: 0x4022de20, 0x66f2: 0x4022e020, 0x66f3: 0x4022e220, - 0x66f4: 0x4022e420, 0x66f5: 0x4022e620, 0x66f6: 0x4022e820, 0x66f7: 0x4022ea20, - 0x66f8: 0x4022ec20, 0x66f9: 0x4022ee20, 0x66fa: 0x4022f020, 0x66fb: 0x4022f220, - 0x66fc: 0x4022f420, 0x66fd: 0x4022f620, 0x66fe: 0x4022f820, - // Block 0x19c, offset 0x6700 - 0x6700: 0x4022fa20, 0x6702: 0x4022fc20, 0x6703: 0x4022fe20, - 0x6704: 0x40230020, 0x6705: 0x40230220, 0x6706: 0x40230420, 0x6707: 0x40230620, - 0x6708: 0x40230820, 0x6709: 0x40230a20, 0x670a: 0x40230c20, 0x670b: 0x40230e20, - 0x670c: 0x40231020, 0x670d: 0x40231220, 0x670e: 0x40231420, 0x670f: 0x40231620, - 0x6710: 0x40231820, 0x6711: 0x40231a20, 0x6712: 0x40231c20, 0x6713: 0x40231e20, - 0x6714: 0x40232020, 0x6715: 0x40232220, 0x6716: 0x40232420, 0x6717: 0x40232620, - 0x6718: 0x40232820, 0x6719: 0x40232a20, 0x671a: 0x40232c20, 0x671b: 0x40232e20, - 0x671c: 0x40233020, 0x671d: 0x40233220, 0x671e: 0x40233420, 0x671f: 0x40233620, - 0x6720: 0x40233820, 0x6721: 0x40233a20, 0x6722: 0x40233c20, 0x6723: 0x40233e20, - 0x6724: 0x40234020, 0x6725: 0x40234220, 0x6726: 0x40234420, 0x6727: 0x40234620, - 0x6728: 0x40234820, 0x6729: 0x40234a20, 0x672a: 0x40234c20, 0x672b: 0x40234e20, - 0x672c: 0x40235020, 0x672d: 0x40235220, 0x672e: 0x40235420, 0x672f: 0x40235620, - 0x6730: 0x40235820, 0x6731: 0x40235a20, 0x6732: 0x40235c20, 0x6733: 0x40235e20, - 0x6734: 0x40236020, 0x6735: 0x40236220, 0x6736: 0x40236420, 0x6737: 0x40236620, - 0x6738: 0x40236820, 0x6739: 0x40236a20, 0x673a: 0x40236c20, 0x673b: 0x40236e20, - 0x673c: 0x40237020, 0x673d: 0x40237220, 0x673e: 0x40237420, 0x673f: 0x40237620, - // Block 0x19d, offset 0x6740 - 0x6740: 0x40237820, 0x6741: 0x40237a20, 0x6742: 0x40237c20, 0x6743: 0x40237e20, - 0x6744: 0x40238020, 0x6745: 0x40238220, 0x6746: 0x40238420, 0x6747: 0x40238620, - 0x6748: 0x40238820, 0x6749: 0x40238a20, 0x674a: 0x40238c20, 0x674b: 0x40238e20, - 0x674c: 0x40239020, 0x674d: 0x40239220, 0x674e: 0x40239420, 0x674f: 0x40239620, - 0x6750: 0x40239820, 0x6751: 0x40239a20, 0x6752: 0x40239c20, 0x6753: 0x40239e20, - 0x6754: 0x4023a020, 0x6755: 0x4023a220, 0x6756: 0x4023a420, 0x6757: 0x4023a620, - 0x6758: 0x4023a820, 0x6759: 0x4023aa20, 0x675a: 0x4023ac20, 0x675b: 0x4023ae20, - 0x675c: 0x4023b020, 0x675d: 0x4023b220, 0x675e: 0x4023b420, 0x675f: 0x4023b620, - 0x6760: 0x4023b820, 0x6761: 0x4023ba20, 0x6762: 0x4023bc20, 0x6763: 0x4023be20, - 0x6764: 0x4023c020, 0x6765: 0x4023c220, 0x6766: 0x4023c420, 0x6767: 0x4023c620, - 0x6768: 0x4023c820, 0x6769: 0x4023ca20, 0x676a: 0x4023cc20, 0x676b: 0x4023ce20, - 0x676c: 0x4023d020, 0x676d: 0x4023d220, 0x676e: 0x4023d420, 0x676f: 0x4023d620, - 0x6770: 0x4023d820, 0x6771: 0x4023da20, 0x6772: 0x4023dc20, 0x6773: 0x4023de20, - 0x6774: 0x4023e020, 0x6775: 0x4023e220, 0x6776: 0x4023e420, 0x6777: 0x4023e620, - 0x6778: 0x4023e820, 0x6779: 0x4023ea20, 0x677a: 0x4023ec20, 0x677b: 0x4023ee20, - 0x677c: 0x4023f020, 0x677d: 0x4023f220, 0x677e: 0x4023f420, 0x677f: 0x4023f620, - // Block 0x19e, offset 0x6780 - 0x6780: 0x4023f820, 0x6781: 0x4023fa20, 0x6782: 0x4023fc20, 0x6783: 0x4023fe20, - 0x6784: 0x40240020, 0x6785: 0x40240220, 0x6786: 0x40240420, 0x6787: 0x40240620, - 0x6788: 0x40240820, 0x6789: 0x40240a20, 0x678a: 0x40240c20, 0x678b: 0x40240e20, - 0x678c: 0x40241020, 0x678d: 0x40241220, 0x678e: 0x40241420, 0x678f: 0x40241620, - 0x6790: 0x40241820, 0x6791: 0x40241a20, 0x6792: 0x40241c20, 0x6793: 0x40241e20, - 0x6794: 0x40242020, 0x6795: 0x40242220, 0x6796: 0x40242420, 0x6797: 0x40242620, - 0x6798: 0x40242820, 0x6799: 0x40242a20, 0x679a: 0x40242c20, 0x679b: 0x40242e20, - 0x679c: 0x40243020, 0x679d: 0x40243220, 0x679e: 0x40243420, 0x679f: 0x40243620, - 0x67a0: 0x40243820, 0x67a1: 0x40243a20, 0x67a2: 0x40243c20, 0x67a3: 0x40243e20, - 0x67a4: 0x40244020, 0x67a5: 0x40244220, 0x67a6: 0x40244420, 0x67a7: 0x40244620, - 0x67a8: 0x40244820, 0x67a9: 0x40244a20, 0x67aa: 0x40244c20, 0x67ab: 0x40244e20, - 0x67ac: 0x40245020, 0x67ad: 0x40245220, 0x67ae: 0x40245420, 0x67af: 0x40245620, - 0x67b0: 0x40245820, 0x67b1: 0x40245a20, 0x67b2: 0x40245c20, 0x67b3: 0x40245e20, - 0x67b4: 0x40246020, 0x67b5: 0x40246220, 0x67b6: 0x40246420, 0x67b7: 0x40246620, - 0x67b9: 0x40246820, 0x67ba: 0x40246a20, 0x67bb: 0x40246c20, - 0x67bc: 0x40246e20, - // Block 0x19f, offset 0x67c0 - 0x67c0: 0x40247020, 0x67c1: 0x40247220, 0x67c2: 0x40247420, 0x67c3: 0x40247620, - 0x67c4: 0x40247820, 0x67c5: 0x40247a20, 0x67c6: 0x40247c20, 0x67c7: 0x40247e20, - 0x67c8: 0x40248020, 0x67c9: 0x40248220, 0x67ca: 0x40248420, 0x67cb: 0x40248620, - 0x67cc: 0x40248820, 0x67cd: 0x40248a20, 0x67ce: 0x40248c20, 0x67cf: 0x40248e20, - 0x67d0: 0x40249020, 0x67d1: 0x40249220, 0x67d2: 0x40249420, 0x67d3: 0x40249620, - 0x67d4: 0x40249820, 0x67d5: 0x40249a20, 0x67d6: 0x40249c20, 0x67d7: 0x40249e20, - 0x67d8: 0x4024a020, 0x67d9: 0x4024a220, 0x67da: 0x4024a420, 0x67db: 0x4024a620, - 0x67dc: 0x4024a820, 0x67dd: 0x4024aa20, 0x67de: 0x4024ac20, 0x67df: 0x4024ae20, - 0x67e0: 0x4024b020, 0x67e1: 0x4024b220, 0x67e2: 0x4024b420, 0x67e3: 0x4024b620, - 0x67e4: 0x4024b820, 0x67e5: 0x4024ba20, 0x67e6: 0x4024bc20, 0x67e7: 0x4024be20, - 0x67e8: 0x4024c020, 0x67e9: 0x4024c220, 0x67ea: 0x4024c420, 0x67eb: 0x4024c620, - 0x67ec: 0x4024c820, 0x67ed: 0x4024ca20, 0x67ee: 0x4024cc20, 0x67ef: 0x4024ce20, - 0x67f0: 0x4024d020, 0x67f1: 0x4024d220, 0x67f2: 0x4024d420, 0x67f3: 0x4024d620, - 0x67f4: 0x4024d820, 0x67f5: 0x4024da20, 0x67f6: 0x4024dc20, 0x67f7: 0x4024de20, - 0x67f8: 0x4024e020, 0x67f9: 0x4024e220, 0x67fa: 0x4024e420, 0x67fb: 0x4024e620, - 0x67fc: 0x4024e820, 0x67fd: 0x4024ea20, - // Block 0x1a0, offset 0x6800 - 0x6800: 0x4024ec20, 0x6801: 0x4024ee20, 0x6802: 0x4024f020, 0x6803: 0x4024f220, - 0x6810: 0x4024f420, 0x6811: 0x4024f620, 0x6812: 0x4024f820, 0x6813: 0x4024fa20, - 0x6814: 0x4024fc20, 0x6815: 0x4024fe20, 0x6816: 0x40250020, 0x6817: 0x40250220, - 0x6818: 0x40250420, 0x6819: 0x40250620, 0x681a: 0x40250820, 0x681b: 0x40250a20, - 0x681c: 0x40250c20, 0x681d: 0x40250e20, 0x681e: 0x40251020, 0x681f: 0x40251220, - 0x6820: 0x40251420, 0x6821: 0x40251620, 0x6822: 0x40251820, 0x6823: 0x40251a20, - 0x6824: 0x40251c20, 0x6825: 0x40251e20, 0x6826: 0x40252020, 0x6827: 0x40252220, - // Block 0x1a1, offset 0x6840 - 0x687b: 0x40252420, - 0x687c: 0x40252620, 0x687d: 0x40252820, 0x687e: 0x40252a20, 0x687f: 0x40252c20, - // Block 0x1a2, offset 0x6880 - 0x6880: 0x40252e20, 0x6881: 0x40253020, 0x6882: 0x40253220, 0x6883: 0x40253420, - 0x6884: 0x40253620, 0x6885: 0x40253820, 0x6886: 0x40253a20, 0x6887: 0x40253c20, - 0x6888: 0x40253e20, 0x6889: 0x40254020, 0x688a: 0x40254220, 0x688b: 0x40254420, - 0x688c: 0x40254620, 0x688d: 0x40254820, 0x688e: 0x40254a20, 0x688f: 0x40254c20, - 0x6890: 0x40254e20, 0x6891: 0x40255020, 0x6892: 0x40255220, 0x6893: 0x40255420, - 0x6894: 0x40255620, 0x6895: 0x40255820, 0x6896: 0x40255a20, 0x6897: 0x40255c20, - 0x6898: 0x40255e20, 0x6899: 0x40256020, 0x689a: 0x40256220, 0x689b: 0x40256420, - 0x689c: 0x40256620, 0x689d: 0x40256820, 0x689e: 0x40256a20, 0x689f: 0x40256c20, - 0x68a0: 0x40256e20, 0x68a1: 0x40257020, 0x68a2: 0x40257220, 0x68a3: 0x40257420, - 0x68a4: 0x40257620, 0x68a5: 0x40257820, 0x68a6: 0x40257a20, 0x68a7: 0x40257c20, - 0x68a8: 0x40257e20, 0x68a9: 0x40258020, 0x68aa: 0x40258220, 0x68ab: 0x40258420, - 0x68ac: 0x40258620, 0x68ad: 0x40258820, 0x68ae: 0x40258a20, 0x68af: 0x40258c20, - 0x68b0: 0x40258e20, 0x68b1: 0x40259020, 0x68b2: 0x40259220, 0x68b3: 0x40259420, - 0x68b4: 0x40259620, 0x68b5: 0x40259820, 0x68b6: 0x40259a20, 0x68b7: 0x40259c20, - 0x68b8: 0x40259e20, 0x68b9: 0x4025a020, 0x68ba: 0x4025a220, 0x68bb: 0x4025a420, - 0x68bc: 0x4025a620, 0x68bd: 0x4025a820, 0x68be: 0x4025aa20, 0x68bf: 0x4025ac20, - // Block 0x1a3, offset 0x68c0 - 0x68c0: 0x4025ae20, - 0x68c5: 0x4025b020, 0x68c6: 0x4025b220, 0x68c7: 0x4025b420, - 0x68c8: 0x4025b620, 0x68c9: 0x4025b820, 0x68ca: 0x4025ba20, 0x68cb: 0x4025bc20, - 0x68cc: 0x4025be20, 0x68cd: 0x4025c020, 0x68ce: 0x4025c220, 0x68cf: 0x4025c420, - // Block 0x1a4, offset 0x6900 - 0x6900: 0x4025c620, 0x6901: 0x4025c820, 0x6902: 0x4025ca20, 0x6903: 0x4025cc20, - 0x6904: 0x4025ce20, 0x6905: 0x4025d020, 0x6906: 0x4025d220, 0x6907: 0x4025d420, - 0x6908: 0x4025d620, 0x6909: 0x4025d820, 0x690a: 0x4025da20, 0x690b: 0x4025dc20, - 0x690c: 0x4025de20, 0x690d: 0x4025e020, 0x690e: 0x4025e220, 0x690f: 0x4025e420, - 0x6910: 0x4025e620, 0x6911: 0x4025e820, 0x6912: 0x4025ea20, 0x6913: 0x4025ec20, - 0x6914: 0x4025ee20, 0x6915: 0x4025f020, 0x6916: 0x4025f220, 0x6917: 0x4025f420, - 0x6918: 0x4025f620, 0x6919: 0x4025f820, 0x691a: 0x4025fa20, 0x691b: 0x4025fc20, - 0x691c: 0x4025fe20, 0x691d: 0x40260020, 0x691e: 0x40260220, 0x691f: 0x40260420, - 0x6920: 0x40260620, 0x6921: 0x40260820, 0x6922: 0x40260a20, 0x6923: 0x40260c20, - 0x6924: 0x40260e20, 0x6925: 0x40261020, 0x6926: 0x40261220, 0x6927: 0x40261420, - 0x6928: 0x40261620, 0x6929: 0x40261820, 0x692a: 0x40261a20, 0x692b: 0x40261c20, - 0x692c: 0x40261e20, 0x692d: 0x40262020, 0x692e: 0x40262220, 0x692f: 0x40262420, - 0x6930: 0x40262620, 0x6931: 0x40262820, 0x6932: 0x40262a20, 0x6933: 0x40262c20, - 0x6934: 0x40262e20, 0x6935: 0x40263020, 0x6936: 0x40263220, 0x6937: 0x40263420, - 0x6938: 0x40263620, 0x6939: 0x40263820, 0x693a: 0x40263a20, 0x693b: 0x40263c20, - 0x693c: 0x40263e20, 0x693d: 0x40264020, 0x693e: 0x40264220, 0x693f: 0x40264420, - // Block 0x1a5, offset 0x6940 - 0x6940: 0x40264620, 0x6941: 0x40264820, 0x6942: 0x40264a20, 0x6943: 0x40264c20, - 0x6944: 0x40264e20, 0x6945: 0x40265020, - // Block 0x1a6, offset 0x6980 - 0x6980: 0x40265220, 0x6981: 0x40265420, 0x6982: 0x40265620, 0x6983: 0x40265820, - 0x6984: 0x40265a20, 0x6985: 0x40265c20, 0x6986: 0x40265e20, 0x6987: 0x40266020, - 0x6988: 0x40266220, 0x6989: 0x40266420, 0x698a: 0x40266620, 0x698b: 0x40266820, - 0x698c: 0x40266a20, 0x698d: 0x40266c20, 0x698e: 0x40266e20, 0x698f: 0x40267020, - 0x6990: 0x40267220, 0x6991: 0x40267420, 0x6992: 0x40267620, 0x6993: 0x40267820, - 0x6994: 0x40267a20, 0x6995: 0x40267c20, 0x6996: 0x40267e20, 0x6997: 0x40268020, - 0x6998: 0x40268220, 0x6999: 0x40268420, 0x699a: 0x40268620, 0x699b: 0x40268820, - 0x699c: 0x40268a20, 0x699d: 0x40268c20, 0x699e: 0x40268e20, 0x699f: 0x40269020, - 0x69a0: 0x40269220, 0x69a1: 0x40269420, 0x69a2: 0x40269620, 0x69a3: 0x40269820, - 0x69a4: 0x40269a20, 0x69a5: 0x40269c20, 0x69a6: 0x40269e20, 0x69a7: 0x4026a020, - 0x69a8: 0x4026a220, 0x69a9: 0x4026a420, 0x69aa: 0x4026a620, 0x69ab: 0x4026a820, - 0x69ac: 0x4026aa20, 0x69ad: 0x4026ac20, 0x69ae: 0x4026ae20, 0x69af: 0x4026b020, - 0x69b0: 0x4026b220, 0x69b1: 0x4026b420, 0x69b2: 0x4026b620, 0x69b3: 0x4026b820, - 0x69b4: 0x4026ba20, 0x69b5: 0x4026bc20, 0x69b6: 0x4026be20, 0x69b7: 0x4026c020, - 0x69b8: 0x4026c220, 0x69b9: 0x4026c420, 0x69ba: 0x4026c620, 0x69bb: 0x4026c820, - 0x69bc: 0x4026ca20, 0x69bd: 0x4026cc20, 0x69be: 0x4026ce20, 0x69bf: 0x4026d020, - // Block 0x1a7, offset 0x69c0 - 0x69c0: 0x4026d220, 0x69c1: 0x4026d420, 0x69c2: 0x4026d620, 0x69c3: 0x4026d820, - 0x69c4: 0x4026da20, 0x69c5: 0x4026dc20, 0x69c6: 0x4026de20, 0x69c7: 0x4026e020, - 0x69c8: 0x4026e220, 0x69c9: 0x4026e420, 0x69ca: 0x4026e620, 0x69cb: 0x4026e820, - 0x69cc: 0x4026ea20, 0x69cd: 0x4026ec20, 0x69ce: 0x4026ee20, 0x69cf: 0x4026f020, - 0x69d0: 0x4026f220, 0x69d1: 0x4026f420, 0x69d2: 0x4026f620, 0x69d3: 0x4026f820, - 0x69d4: 0x4026fa20, 0x69d5: 0x4026fc20, 0x69d6: 0x4026fe20, 0x69d7: 0x40270020, - 0x69d8: 0x40270220, 0x69d9: 0x40270420, 0x69da: 0x40270620, 0x69db: 0x40270820, - 0x69dc: 0x40270a20, 0x69dd: 0x40270c20, 0x69de: 0x40270e20, 0x69df: 0x40271020, - 0x69e0: 0x40271220, 0x69e1: 0x40271420, 0x69e2: 0x40271620, 0x69e3: 0x40271820, - 0x69e4: 0x40271a20, 0x69e5: 0x40271c20, 0x69e6: 0x40271e20, 0x69e7: 0x40272020, - 0x69e8: 0x40272220, 0x69e9: 0x40272420, 0x69ea: 0x40272620, 0x69eb: 0x40272820, - 0x69ec: 0x40272a20, 0x69ed: 0x40272c20, 0x69ee: 0x40272e20, 0x69ef: 0x40273020, - 0x69f0: 0x40273220, 0x69f1: 0x40273420, 0x69f2: 0x40273620, 0x69f3: 0x40273820, - // Block 0x1a8, offset 0x6a00 - 0x6a00: 0x429c7a20, 0x6a01: 0x429c7020, 0x6a02: 0x429c8220, 0x6a03: 0x48024420, - 0x6a04: 0x429ec020, 0x6a05: 0x429f5c20, 0x6a06: 0x429f7620, 0x6a07: 0x42a00420, - 0x6a08: 0x42a0f420, 0x6a09: 0x42a13220, 0x6a0a: 0x42a1ce20, 0x6a0b: 0x42a19e20, - 0x6a0c: 0x44693c20, 0x6a0d: 0x480c7420, 0x6a0e: 0x42a29a20, 0x6a0f: 0x42a2a820, - 0x6a10: 0x42a2c820, 0x6a11: 0x42a2ee20, 0x6a12: 0x480a3820, 0x6a13: 0x44697220, - 0x6a14: 0x42a2ce20, 0x6a15: 0x42a31a20, 0x6a16: 0x480a9620, 0x6a17: 0x42a32e20, - 0x6a18: 0x42a34820, 0x6a19: 0x429d9820, 0x6a1a: 0x42a35820, 0x6a1b: 0x42a36a20, - 0x6a1c: 0x4923be20, 0x6a1d: 0x42a3ea20, 0x6a1e: 0x42a40620, 0x6a1f: 0x4469be20, - 0x6a20: 0x42a47620, 0x6a21: 0x42a48c20, 0x6a22: 0x42a4e420, 0x6a23: 0x42a4ee20, - 0x6a24: 0x446a2a20, 0x6a25: 0x42a58e20, 0x6a26: 0x42a59220, 0x6a27: 0x42a5c820, - 0x6a28: 0x42a5f420, 0x6a29: 0x42a60a20, 0x6a2a: 0x42a60c20, 0x6a2b: 0x42a62e20, - 0x6a2c: 0x42a69220, 0x6a2d: 0x42a6a220, 0x6a2e: 0x42a6b420, 0x6a2f: 0x42a6e620, - 0x6a30: 0x42a6fa20, 0x6a31: 0x42a6fe20, 0x6a32: 0x42a6fe20, 0x6a33: 0x42a6fe20, - 0x6a34: 0x48145820, 0x6a35: 0x42e0e020, 0x6a36: 0x42a79420, 0x6a37: 0x42a7be20, - 0x6a38: 0x4816c620, 0x6a39: 0x42a7d620, 0x6a3a: 0x42a7e220, 0x6a3b: 0x42a80c20, - 0x6a3c: 0x42a93c20, 0x6a3d: 0x42a87020, 0x6a3e: 0x42a89020, 0x6a3f: 0x42a8d020, - // Block 0x1a9, offset 0x6a40 - 0x6a40: 0x42a94420, 0x6a41: 0x42a9ec20, 0x6a42: 0x42aa2020, 0x6a43: 0x42aaa620, - 0x6a44: 0x42aac620, 0x6a45: 0x42ab0820, 0x6a46: 0x42ab0820, 0x6a47: 0x42ab3220, - 0x6a48: 0x42ab5620, 0x6a49: 0x42ab6620, 0x6a4a: 0x42ab8420, 0x6a4b: 0x42ae2c20, - 0x6a4c: 0x42ac0c20, 0x6a4d: 0x42ae2e20, 0x6a4e: 0x42aca220, 0x6a4f: 0x42ace820, - 0x6a50: 0x42a40e20, 0x6a51: 0x42b1dc20, 0x6a52: 0x42af9c20, 0x6a53: 0x42afe820, - 0x6a54: 0x42b01a20, 0x6a55: 0x42af1620, 0x6a56: 0x42b06420, 0x6a57: 0x42b06220, - 0x6a58: 0x42b15820, 0x6a59: 0x4829c820, 0x6a5a: 0x42b1e420, 0x6a5b: 0x42b1ee20, - 0x6a5c: 0x42b20c20, 0x6a5d: 0x42b23420, 0x6a5e: 0x42b24420, 0x6a5f: 0x42b2c420, - 0x6a60: 0x482d5020, 0x6a61: 0x482dd420, 0x6a62: 0x42b3d820, 0x6a63: 0x42b43620, - 0x6a64: 0x42b44e20, 0x6a65: 0x42b3b020, 0x6a66: 0x42b4cc20, 0x6a67: 0x446ddc20, - 0x6a68: 0x446df820, 0x6a69: 0x42b61020, 0x6a6a: 0x42b67c20, 0x6a6b: 0x42b67c20, - 0x6a6c: 0x48339020, 0x6a6d: 0x42b78620, 0x6a6e: 0x42b7b020, 0x6a6f: 0x42b7ce20, - 0x6a70: 0x42b7e620, 0x6a71: 0x48363020, 0x6a72: 0x42b7fe20, 0x6a73: 0x42b80c20, - 0x6a74: 0x42bea620, 0x6a75: 0x42b84420, 0x6a76: 0x446f0220, 0x6a77: 0x42b8c020, - 0x6a78: 0x42b8dc20, 0x6a79: 0x42b98020, 0x6a7a: 0x42b91a20, 0x6a7b: 0x483bc820, - 0x6a7c: 0x42ba8620, 0x6a7d: 0x483bcc20, 0x6a7e: 0x42badc20, 0x6a7f: 0x42bad620, - // Block 0x1aa, offset 0x6a80 - 0x6a80: 0x42baf820, 0x6a81: 0x42bbc220, 0x6a82: 0x42bbc420, 0x6a83: 0x44705e20, - 0x6a84: 0x42bbfa20, 0x6a85: 0x42bc5020, 0x6a86: 0x42bc7a20, 0x6a87: 0x42bcd220, - 0x6a88: 0x4470c420, 0x6a89: 0x48430620, 0x6a8a: 0x4470f820, 0x6a8b: 0x42bd6020, - 0x6a8c: 0x42bd6620, 0x6a8d: 0x42bd6c20, 0x6a8e: 0x42bd9420, 0x6a8f: 0x49472420, - 0x6a90: 0x42bdfc20, 0x6a91: 0x48466220, 0x6a92: 0x48466220, 0x6a93: 0x43040220, - 0x6a94: 0x42be4420, 0x6a95: 0x42be4420, 0x6a96: 0x44718e20, 0x6a97: 0x48657020, - 0x6a98: 0x48c3b420, 0x6a99: 0x42bec420, 0x6a9a: 0x42bed620, 0x6a9b: 0x4471c620, - 0x6a9c: 0x42bf3420, 0x6a9d: 0x42bf9a20, 0x6a9e: 0x42bfae20, 0x6a9f: 0x42bff220, - 0x6aa0: 0x42c10220, 0x6aa1: 0x44727420, 0x6aa2: 0x44723820, 0x6aa3: 0x42c12820, - 0x6aa4: 0x484da820, 0x6aa5: 0x42c18e20, 0x6aa6: 0x42c29020, 0x6aa7: 0x42c29820, - 0x6aa8: 0x42c29c20, 0x6aa9: 0x42c29820, 0x6aaa: 0x42c2f420, 0x6aab: 0x42c31c20, - 0x6aac: 0x42c36420, 0x6aad: 0x42c34820, 0x6aae: 0x42c35e20, 0x6aaf: 0x42c3bc20, - 0x6ab0: 0x42c3e420, 0x6ab1: 0x42c3ec20, 0x6ab2: 0x42c42020, 0x6ab3: 0x42c43620, - 0x6ab4: 0x42c4ba20, 0x6ab5: 0x42c56220, 0x6ab6: 0x42c5a820, 0x6ab7: 0x42c6a020, - 0x6ab8: 0x48561820, 0x6ab9: 0x42c67a20, 0x6aba: 0x42c5f820, 0x6abb: 0x42c6d020, - 0x6abc: 0x42c70620, 0x6abd: 0x42c7c820, 0x6abe: 0x4857e220, 0x6abf: 0x42c84420, - // Block 0x1ab, offset 0x6ac0 - 0x6ac0: 0x42c78a20, 0x6ac1: 0x42c75220, 0x6ac2: 0x44745c20, 0x6ac3: 0x42c8d220, - 0x6ac4: 0x42c8fc20, 0x6ac5: 0x42c93a20, 0x6ac6: 0x42c8ee20, 0x6ac7: 0x4474d820, - 0x6ac8: 0x42ca9e20, 0x6ac9: 0x42cad820, 0x6aca: 0x48601420, 0x6acb: 0x42cbc620, - 0x6acc: 0x42cdf020, 0x6acd: 0x42cc9220, 0x6ace: 0x44763220, 0x6acf: 0x42cd2220, - 0x6ad0: 0x44761020, 0x6ad1: 0x4475c820, 0x6ad2: 0x42a32420, 0x6ad3: 0x42a32a20, - 0x6ad4: 0x42ce0020, 0x6ad5: 0x42cd3820, 0x6ad6: 0x43015a20, 0x6ad7: 0x4487b220, - 0x6ad8: 0x42ce2e20, 0x6ad9: 0x42ce3620, 0x6ada: 0x42ce4220, 0x6adb: 0x42cebc20, - 0x6adc: 0x42cea620, 0x6add: 0x48678620, 0x6ade: 0x44769220, 0x6adf: 0x42cff420, - 0x6ae0: 0x42cf0a20, 0x6ae1: 0x42d0a420, 0x6ae2: 0x42d10a20, 0x6ae3: 0x4868da20, - 0x6ae4: 0x42d11c20, 0x6ae5: 0x42d03e20, 0x6ae6: 0x42d22820, 0x6ae7: 0x44773a20, - 0x6ae8: 0x42d28420, 0x6ae9: 0x42d34620, 0x6aea: 0x42d3d420, 0x6aeb: 0x42d55020, - 0x6aec: 0x486d4620, 0x6aed: 0x42d5b620, 0x6aee: 0x44783020, 0x6aef: 0x42d64220, - 0x6af0: 0x48714e20, 0x6af1: 0x42d6a820, 0x6af2: 0x44789c20, 0x6af3: 0x42d6e420, - 0x6af4: 0x42d73e20, 0x6af5: 0x42d77420, 0x6af6: 0x42d77620, 0x6af7: 0x48751a20, - 0x6af8: 0x483a1620, 0x6af9: 0x4875f420, 0x6afa: 0x42d89c20, 0x6afb: 0x48797820, - 0x6afc: 0x42d97e20, 0x6afd: 0x42d99a20, 0x6afe: 0x42d8ce20, 0x6aff: 0x42da2c20, - // Block 0x1ac, offset 0x6b00 - 0x6b00: 0x42da7c20, 0x6b01: 0x42daee20, 0x6b02: 0x42da8220, 0x6b03: 0x42dad220, - 0x6b04: 0x42daf020, 0x6b05: 0x42db0a20, 0x6b06: 0x487a3c20, 0x6b07: 0x42da6820, - 0x6b08: 0x42dc5e20, 0x6b09: 0x42dcdc20, 0x6b0a: 0x447a6620, 0x6b0b: 0x42dd9620, - 0x6b0c: 0x42dd8e20, 0x6b0d: 0x487da220, 0x6b0e: 0x42dbf220, 0x6b0f: 0x42dedc20, - 0x6b10: 0x487ebc20, 0x6b11: 0x487f1c20, 0x6b12: 0x42df8c20, 0x6b13: 0x42e07220, - 0x6b14: 0x42e03c20, 0x6b15: 0x42e03620, 0x6b16: 0x447b2c20, 0x6b17: 0x42e09420, - 0x6b18: 0x42e0fa20, 0x6b19: 0x42e0ee20, 0x6b1a: 0x42e15a20, 0x6b1b: 0x480a4a20, - 0x6b1c: 0x42e28a20, 0x6b1d: 0x4884c620, 0x6b1e: 0x42e33820, 0x6b1f: 0x48875620, - 0x6b20: 0x42e45020, 0x6b21: 0x42e46a20, 0x6b22: 0x42e4a020, 0x6b23: 0x488c1020, - 0x6b24: 0x42e50020, 0x6b25: 0x42e52a20, 0x6b26: 0x488e6a20, 0x6b27: 0x48902820, - 0x6b28: 0x42e6f420, 0x6b29: 0x42e71620, 0x6b2a: 0x447d5820, 0x6b2b: 0x42e74a20, - 0x6b2c: 0x447d7020, 0x6b2d: 0x447d7020, 0x6b2e: 0x42e88e20, 0x6b2f: 0x42e8b820, - 0x6b30: 0x42e8e220, 0x6b31: 0x42e90a20, 0x6b32: 0x42e99420, 0x6b33: 0x447e3620, - 0x6b34: 0x42ea4820, 0x6b35: 0x48986c20, 0x6b36: 0x42ea7c20, 0x6b37: 0x48992420, - 0x6b38: 0x42eae020, 0x6b39: 0x48433e20, 0x6b3a: 0x42ec2020, 0x6b3b: 0x489f4220, - 0x6b3c: 0x489f7020, 0x6b3d: 0x48a08820, 0x6b3e: 0x447ff820, 0x6b3f: 0x44801020, - // Block 0x1ad, offset 0x6b40 - 0x6b40: 0x42ede820, 0x6b41: 0x48a1e620, 0x6b42: 0x48a1e420, 0x6b43: 0x48a23220, - 0x6b44: 0x48a26620, 0x6b45: 0x42ee3c20, 0x6b46: 0x42ee3e20, 0x6b47: 0x42ee3e20, - 0x6b48: 0x42ee9420, 0x6b49: 0x44807220, 0x6b4a: 0x42ef1620, 0x6b4b: 0x44808c20, - 0x6b4c: 0x44812c20, 0x6b4d: 0x48a83a20, 0x6b4e: 0x42f09c20, 0x6b4f: 0x42f11820, - 0x6b50: 0x42f19820, 0x6b51: 0x4481c620, 0x6b52: 0x48ac4c20, 0x6b53: 0x42f2ac20, - 0x6b54: 0x48ad3420, 0x6b55: 0x48ad8a20, 0x6b56: 0x42f31e20, 0x6b57: 0x42f3d620, - 0x6b58: 0x44825e20, 0x6b59: 0x42f48020, 0x6b5a: 0x42f49420, 0x6b5b: 0x42f49e20, - 0x6b5c: 0x48b2f820, 0x6b5d: 0x48b54e20, 0x6b5e: 0x48b54e20, 0x6b5f: 0x42f5dc20, - 0x6b60: 0x44840420, 0x6b61: 0x48b75620, 0x6b62: 0x42f78c20, 0x6b63: 0x42f79220, - 0x6b64: 0x44844e20, 0x6b65: 0x48b90020, 0x6b66: 0x42f9a420, 0x6b67: 0x44854020, - 0x6b68: 0x42f9d020, 0x6b69: 0x42f9c620, 0x6b6a: 0x42fa0020, 0x6b6b: 0x48bf0c20, - 0x6b6c: 0x42fac620, 0x6b6d: 0x44860220, 0x6b6e: 0x42fb8e20, 0x6b6f: 0x42fc0420, - 0x6b70: 0x42fc8a20, 0x6b71: 0x44866820, 0x6b72: 0x48c45020, 0x6b73: 0x48c48e20, - 0x6b74: 0x4486b220, 0x6b75: 0x48c5b220, 0x6b76: 0x42fef420, 0x6b77: 0x48c67c20, - 0x6b78: 0x42ff2a20, 0x6b79: 0x42fff420, 0x6b7a: 0x43000a20, 0x6b7b: 0x48c9b420, - 0x6b7c: 0x48ca4620, 0x6b7d: 0x4300c020, 0x6b7e: 0x48cb5020, 0x6b7f: 0x4300e020, - // Block 0x1ae, offset 0x6b80 - 0x6b80: 0x4866be20, 0x6b81: 0x4487aa20, 0x6b82: 0x43016420, 0x6b83: 0x43020620, - 0x6b84: 0x44881620, 0x6b85: 0x43027c20, 0x6b86: 0x42b56a20, 0x6b87: 0x48cf4e20, - 0x6b88: 0x48cf6a20, 0x6b89: 0x48672620, 0x6b8a: 0x48673820, 0x6b8b: 0x43040220, - 0x6b8c: 0x43040820, 0x6b8d: 0x431f3c20, 0x6b8e: 0x4488d620, 0x6b8f: 0x43052220, - 0x6b90: 0x43051620, 0x6b91: 0x43053a20, 0x6b92: 0x42a56620, 0x6b93: 0x43056220, - 0x6b94: 0x43056620, 0x6b95: 0x43057a20, 0x6b96: 0x4305cc20, 0x6b97: 0x48d67820, - 0x6b98: 0x4305ca20, 0x6b99: 0x43063a20, 0x6b9a: 0x4306c620, 0x6b9b: 0x43075a20, - 0x6b9c: 0x43064620, 0x6b9d: 0x43077a20, 0x6b9e: 0x4307ce20, 0x6b9f: 0x4308ae20, - 0x6ba0: 0x4306a620, 0x6ba1: 0x43079420, 0x6ba2: 0x43079820, 0x6ba3: 0x4307b820, - 0x6ba4: 0x48d86c20, 0x6ba5: 0x48dad620, 0x6ba6: 0x48d9aa20, 0x6ba7: 0x448a5620, - 0x6ba8: 0x4309e220, 0x6ba9: 0x4309e620, 0x6baa: 0x430a2c20, 0x6bab: 0x48e79420, - 0x6bac: 0x430ac820, 0x6bad: 0x48de5820, 0x6bae: 0x448aba20, 0x6baf: 0x448ac220, - 0x6bb0: 0x48df6220, 0x6bb1: 0x48e1a420, 0x6bb2: 0x448ad620, 0x6bb3: 0x430ca020, - 0x6bb4: 0x430cb820, 0x6bb5: 0x430cce20, 0x6bb6: 0x430cd220, 0x6bb7: 0x430d5220, - 0x6bb8: 0x430d1020, 0x6bb9: 0x430e1c20, 0x6bba: 0x430dc420, 0x6bbb: 0x430ef220, - 0x6bbc: 0x430e5020, 0x6bbd: 0x430ed620, 0x6bbe: 0x430f0c20, 0x6bbf: 0x448bae20, - // Block 0x1af, offset 0x6bc0 - 0x6bc0: 0x430fc220, 0x6bc1: 0x43100220, 0x6bc2: 0x448bf220, 0x6bc3: 0x4310c020, - 0x6bc4: 0x4310c620, 0x6bc5: 0x48ecce20, 0x6bc6: 0x4311ae20, 0x6bc7: 0x4311bc20, - 0x6bc8: 0x448c6a20, 0x6bc9: 0x4311f420, 0x6bca: 0x44697620, 0x6bcb: 0x48f15c20, - 0x6bcc: 0x48f2cc20, 0x6bcd: 0x448d7c20, 0x6bce: 0x448d8e20, 0x6bcf: 0x43154020, - 0x6bd0: 0x4315da20, 0x6bd1: 0x43171420, 0x6bd2: 0x4318aa20, 0x6bd3: 0x48f95020, - 0x6bd4: 0x43195620, 0x6bd5: 0x43198220, 0x6bd6: 0x431a3620, 0x6bd7: 0x431aee20, - 0x6bd8: 0x48fe5e20, 0x6bd9: 0x48100820, 0x6bda: 0x431b9620, 0x6bdb: 0x431b7820, - 0x6bdc: 0x431be020, 0x6bdd: 0x4811bc20, 0x6bde: 0x431da820, 0x6bdf: 0x431e7020, - 0x6be0: 0x490ba420, 0x6be1: 0x490bda20, 0x6be2: 0x43212820, 0x6be3: 0x4321e220, - 0x6be4: 0x43222220, 0x6be5: 0x490e5c20, 0x6be6: 0x43223620, 0x6be7: 0x43247020, - 0x6be8: 0x4325ae20, 0x6be9: 0x4325b020, 0x6bea: 0x4324f820, 0x6beb: 0x4327f220, - 0x6bec: 0x43282a20, 0x6bed: 0x4917f420, 0x6bee: 0x432b1620, 0x6bef: 0x44932a20, - 0x6bf0: 0x432b6e20, 0x6bf1: 0x491aee20, 0x6bf2: 0x4493cc20, 0x6bf3: 0x432d8620, - 0x6bf4: 0x42bb6420, 0x6bf5: 0x432e4620, 0x6bf6: 0x49228a20, 0x6bf7: 0x49243420, - 0x6bf8: 0x4494dc20, 0x6bf9: 0x4494ec20, 0x6bfa: 0x432fc020, 0x6bfb: 0x49281420, - 0x6bfc: 0x44956420, 0x6bfd: 0x49292c20, 0x6bfe: 0x43301620, 0x6bff: 0x43301620, - // Block 0x1b0, offset 0x6c00 - 0x6c00: 0x43305220, 0x6c01: 0x492b6c20, 0x6c02: 0x4331c420, 0x6c03: 0x44966620, - 0x6c04: 0x43325220, 0x6c05: 0x43334e20, 0x6c06: 0x43338420, 0x6c07: 0x4333fc20, - 0x6c08: 0x44979c20, 0x6c09: 0x49366020, 0x6c0a: 0x43362420, 0x6c0b: 0x43388020, - 0x6c0c: 0x4339fa20, 0x6c0d: 0x44999c20, 0x6c0e: 0x4499da20, 0x6c0f: 0x433ace20, - 0x6c10: 0x49419c20, 0x6c11: 0x4499f020, 0x6c12: 0x49420a20, 0x6c13: 0x49441c20, - 0x6c14: 0x49452220, 0x6c15: 0x433d7620, 0x6c16: 0x449aac20, 0x6c17: 0x433df220, - 0x6c18: 0x433dfc20, 0x6c19: 0x433e0a20, 0x6c1a: 0x433e1e20, 0x6c1b: 0x433e2c20, - 0x6c1c: 0x433e7620, 0x6c1d: 0x494c0020, - // Block 0x1b1, offset 0x6c40 - 0x6c41: 0xa0000000, - 0x6c60: 0xa0000000, 0x6c61: 0xa0000000, 0x6c62: 0xa0000000, 0x6c63: 0xa0000000, - 0x6c64: 0xa0000000, 0x6c65: 0xa0000000, 0x6c66: 0xa0000000, 0x6c67: 0xa0000000, - 0x6c68: 0xa0000000, 0x6c69: 0xa0000000, 0x6c6a: 0xa0000000, 0x6c6b: 0xa0000000, - 0x6c6c: 0xa0000000, 0x6c6d: 0xa0000000, 0x6c6e: 0xa0000000, 0x6c6f: 0xa0000000, - 0x6c70: 0xa0000000, 0x6c71: 0xa0000000, 0x6c72: 0xa0000000, 0x6c73: 0xa0000000, - 0x6c74: 0xa0000000, 0x6c75: 0xa0000000, 0x6c76: 0xa0000000, 0x6c77: 0xa0000000, - 0x6c78: 0xa0000000, 0x6c79: 0xa0000000, 0x6c7a: 0xa0000000, 0x6c7b: 0xa0000000, - 0x6c7c: 0xa0000000, 0x6c7d: 0xa0000000, 0x6c7e: 0xa0000000, 0x6c7f: 0xa0000000, - // Block 0x1b2, offset 0x6c80 - 0x6c80: 0xa0000000, 0x6c81: 0xa0000000, 0x6c82: 0xa0000000, 0x6c83: 0xa0000000, - 0x6c84: 0xa0000000, 0x6c85: 0xa0000000, 0x6c86: 0xa0000000, 0x6c87: 0xa0000000, - 0x6c88: 0xa0000000, 0x6c89: 0xa0000000, 0x6c8a: 0xa0000000, 0x6c8b: 0xa0000000, - 0x6c8c: 0xa0000000, 0x6c8d: 0xa0000000, 0x6c8e: 0xa0000000, 0x6c8f: 0xa0000000, - 0x6c90: 0xa0000000, 0x6c91: 0xa0000000, 0x6c92: 0xa0000000, 0x6c93: 0xa0000000, - 0x6c94: 0xa0000000, 0x6c95: 0xa0000000, 0x6c96: 0xa0000000, 0x6c97: 0xa0000000, - 0x6c98: 0xa0000000, 0x6c99: 0xa0000000, 0x6c9a: 0xa0000000, 0x6c9b: 0xa0000000, - 0x6c9c: 0xa0000000, 0x6c9d: 0xa0000000, 0x6c9e: 0xa0000000, 0x6c9f: 0xa0000000, - 0x6ca0: 0xa0000000, 0x6ca1: 0xa0000000, 0x6ca2: 0xa0000000, 0x6ca3: 0xa0000000, - 0x6ca4: 0xa0000000, 0x6ca5: 0xa0000000, 0x6ca6: 0xa0000000, 0x6ca7: 0xa0000000, - 0x6ca8: 0xa0000000, 0x6ca9: 0xa0000000, 0x6caa: 0xa0000000, 0x6cab: 0xa0000000, - 0x6cac: 0xa0000000, 0x6cad: 0xa0000000, 0x6cae: 0xa0000000, 0x6caf: 0xa0000000, - 0x6cb0: 0xa0000000, 0x6cb1: 0xa0000000, 0x6cb2: 0xa0000000, 0x6cb3: 0xa0000000, - 0x6cb4: 0xa0000000, 0x6cb5: 0xa0000000, 0x6cb6: 0xa0000000, 0x6cb7: 0xa0000000, - 0x6cb8: 0xa0000000, 0x6cb9: 0xa0000000, 0x6cba: 0xa0000000, 0x6cbb: 0xa0000000, - 0x6cbc: 0xa0000000, 0x6cbd: 0xa0000000, 0x6cbe: 0xa0000000, 0x6cbf: 0xa0000000, - // Block 0x1b3, offset 0x6cc0 - 0x6cc0: 0xa0000000, 0x6cc1: 0xa0000000, 0x6cc2: 0xa0000000, 0x6cc3: 0xa0000000, - 0x6cc4: 0xa0000000, 0x6cc5: 0xa0000000, 0x6cc6: 0xa0000000, 0x6cc7: 0xa0000000, - 0x6cc8: 0xa0000000, 0x6cc9: 0xa0000000, 0x6cca: 0xa0000000, 0x6ccb: 0xa0000000, - 0x6ccc: 0xa0000000, 0x6ccd: 0xa0000000, 0x6cce: 0xa0000000, 0x6ccf: 0xa0000000, - 0x6cd0: 0xa0000000, 0x6cd1: 0xa0000000, 0x6cd2: 0xa0000000, 0x6cd3: 0xa0000000, - 0x6cd4: 0xa0000000, 0x6cd5: 0xa0000000, 0x6cd6: 0xa0000000, 0x6cd7: 0xa0000000, - 0x6cd8: 0xa0000000, 0x6cd9: 0xa0000000, 0x6cda: 0xa0000000, 0x6cdb: 0xa0000000, - 0x6cdc: 0xa0000000, 0x6cdd: 0xa0000000, 0x6cde: 0xa0000000, 0x6cdf: 0xa0000000, - 0x6ce0: 0xa0000000, 0x6ce1: 0xa0000000, 0x6ce2: 0xa0000000, 0x6ce3: 0xa0000000, - 0x6ce4: 0xa0000000, 0x6ce5: 0xa0000000, 0x6ce6: 0xa0000000, 0x6ce7: 0xa0000000, - 0x6ce8: 0xa0000000, 0x6ce9: 0xa0000000, 0x6cea: 0xa0000000, 0x6ceb: 0xa0000000, - 0x6cec: 0xa0000000, 0x6ced: 0xa0000000, 0x6cee: 0xa0000000, 0x6cef: 0xa0000000, - // Block 0x1b4, offset 0x6d00 - 0x6d00: 0xa0000000, 0x6d01: 0xa0000000, 0x6d02: 0xa0000000, 0x6d03: 0xa0000000, - 0x6d04: 0xa0000000, 0x6d05: 0xa0000000, 0x6d06: 0xa0000000, 0x6d07: 0xa0000000, - 0x6d08: 0xa0000000, 0x6d09: 0x40020020, 0x6d0a: 0x40020220, 0x6d0b: 0x40020420, - 0x6d0c: 0x40020620, 0x6d0d: 0x40020820, 0x6d0e: 0xa0000000, 0x6d0f: 0xa0000000, - 0x6d10: 0xa0000000, 0x6d11: 0xa0000000, 0x6d12: 0xa0000000, 0x6d13: 0xa0000000, - 0x6d14: 0xa0000000, 0x6d15: 0xa0000000, 0x6d16: 0xa0000000, 0x6d17: 0xa0000000, - 0x6d18: 0xa0000000, 0x6d19: 0xa0000000, 0x6d1a: 0xa0000000, 0x6d1b: 0xa0000000, - 0x6d1c: 0xa0000000, 0x6d1d: 0xa0000000, 0x6d1e: 0xa0000000, 0x6d1f: 0xa0000000, - 0x6d20: 0x40021220, 0x6d21: 0x4002ba20, 0x6d22: 0x4003e020, 0x6d23: 0x4004ea20, - 0x6d24: 0x4027de20, 0x6d25: 0x4004ec20, 0x6d26: 0x4004e620, 0x6d27: 0x4003d220, - 0x6d28: 0x4003f420, 0x6d29: 0x4003f620, 0x6d2a: 0x4004d820, 0x6d2b: 0x40093820, - 0x6d2c: 0x40024020, 0x6d2d: 0x40021a20, 0x6d2e: 0x4002e420, 0x6d2f: 0x4004e220, - 0x6d30: 0x4029cc20, 0x6d31: 0x4029ce20, 0x6d32: 0x4029d020, 0x6d33: 0x4029d220, - 0x6d34: 0x4029d420, 0x6d35: 0x4029d620, 0x6d36: 0x4029d820, 0x6d37: 0x4029da20, - 0x6d38: 0x4029dc20, 0x6d39: 0x4029de20, 0x6d3a: 0x40026c20, 0x6d3b: 0x40026220, - 0x6d3c: 0x40094020, 0x6d3d: 0x40094220, 0x6d3e: 0x40094420, 0x6d3f: 0x4002c420, - // Block 0x1b5, offset 0x6d40 - 0x6d40: 0x4004d620, 0x6d41: 0x002bde88, 0x6d42: 0x002c0a88, 0x6d43: 0x002c3a88, - 0x6d44: 0x002c6288, 0x6d45: 0x002c1083, 0x6d46: 0x002d0888, 0x6d47: 0x002d2288, - 0x6d48: 0x0030e483, 0x6d49: 0x002c4083, 0x6d4a: 0x002dcc88, 0x6d4b: 0x002c3c83, - 0x6d4c: 0xc0030002, 0x6d4d: 0x002e8288, 0x6d4e: 0x002e9e88, 0x6d4f: 0x002d2483, - 0x6d50: 0x002f2c88, 0x6d51: 0x002c6483, 0x6d52: 0x002c6683, 0x6d53: 0x002c0e83, - 0x6d54: 0x002c0c83, 0x6d55: 0x00306c88, 0x6d56: 0x0030be88, 0x6d57: 0x0030e288, - 0x6d58: 0x002c3e83, 0x6d59: 0x00310088, 0x6d5a: 0x00312a88, 0x6d5b: 0x4003f820, - 0x6d5c: 0x4004e420, 0x6d5d: 0x4003fa20, 0x6d5e: 0x40062420, 0x6d5f: 0x40021620, - 0x6d60: 0x40061e20, 0x6d61: 0x402bde20, 0x6d62: 0x402c0a20, 0x6d63: 0x402c3a20, - 0x6d64: 0x402c6220, 0x6d65: 0x402c1020, 0x6d66: 0x402d0820, 0x6d67: 0x402d2220, - 0x6d68: 0x4030e420, 0x6d69: 0x402c4020, 0x6d6a: 0x402dcc20, 0x6d6b: 0x402c3c20, - 0x6d6c: 0xc0000002, 0x6d6d: 0x402e8220, 0x6d6e: 0x402e9e20, 0x6d6f: 0x402d2420, - 0x6d70: 0x402f2c20, 0x6d71: 0x402c6420, 0x6d72: 0x402c6620, 0x6d73: 0x402c0e20, - 0x6d74: 0x402c0c20, 0x6d75: 0x40306c20, 0x6d76: 0x4030be20, 0x6d77: 0x4030e220, - 0x6d78: 0x402c3e20, 0x6d79: 0x40310020, 0x6d7a: 0x40312a20, 0x6d7b: 0x4003fc20, - 0x6d7c: 0x40094820, 0x6d7d: 0x4003fe20, 0x6d7e: 0x40094c20, 0x6d7f: 0xa0000000, - // Block 0x1b6, offset 0x6d80 - 0x6d80: 0xe00008f5, 0x6d81: 0xe00008ef, 0x6d82: 0xe0000921, 0x6d83: 0xe0000969, - 0x6d84: 0xe000095b, 0x6d85: 0xe000094d, 0x6d86: 0xe00009dd, 0x6d87: 0xe0000a53, - 0x6d88: 0xe000256e, 0x6d89: 0xe0002568, 0x6d8a: 0xe000257a, 0x6d8b: 0xe00025a6, - 0x6d8c: 0xe000263e, 0x6d8d: 0xe0002638, 0x6d8e: 0xe000264a, 0x6d8f: 0xe0002656, - 0x6d90: 0xe0000ab3, 0x6d91: 0xe0000d63, 0x6d92: 0xe00026db, 0x6d93: 0xe00026d5, - 0x6d94: 0xe00026e7, 0x6d95: 0xe0002727, 0x6d96: 0xe0002713, 0x6d97: 0x40093e20, - 0x6d98: 0xe0000e12, 0x6d99: 0xe0000fe1, 0x6d9a: 0xe0000fdb, 0x6d9b: 0xe0000fed, - 0x6d9c: 0xe0000fff, 0x6d9d: 0xe0001102, 0x6d9e: 0x00318888, 0x6d9f: 0xe0000f7b, - 0x6da0: 0xe00008f2, 0x6da1: 0xe00008ec, 0x6da2: 0xe000091e, 0x6da3: 0xe0000966, - 0x6da4: 0xe0000958, 0x6da5: 0xe000094a, 0x6da6: 0xe00009d5, 0x6da7: 0xe0000a4d, - 0x6da8: 0xe000256b, 0x6da9: 0xe0002565, 0x6daa: 0xe0002577, 0x6dab: 0xe00025a3, - 0x6dac: 0xe000263b, 0x6dad: 0xe0002635, 0x6dae: 0xe0002647, 0x6daf: 0xe0002653, - 0x6db0: 0xe0000aad, 0x6db1: 0xe0000d60, 0x6db2: 0xe00026d8, 0x6db3: 0xe00026d2, - 0x6db4: 0xe00026e4, 0x6db5: 0xe0002724, 0x6db6: 0xe0002710, 0x6db7: 0x40093c20, - 0x6db8: 0xe0000e0f, 0x6db9: 0xe0000fde, 0x6dba: 0xe0000fd8, 0x6dbb: 0xe0000fea, - 0x6dbc: 0xe0000ffc, 0x6dbd: 0xe00010ff, 0x6dbe: 0x40318820, 0x6dbf: 0xe0001114, - // Block 0x1b7, offset 0x6dc0 - 0x6dc0: 0xe0000983, 0x6dc1: 0xe0000980, 0x6dc2: 0xe00008fb, 0x6dc3: 0xe00008f8, - 0x6dc4: 0xe000097d, 0x6dc5: 0xe000097a, 0x6dc6: 0xe0000a38, 0x6dc7: 0xe0000a35, - 0x6dc8: 0xe0000a3e, 0x6dc9: 0xe0000a3b, 0x6dca: 0xe0000a4a, 0x6dcb: 0xe0000a47, - 0x6dcc: 0xe0000a44, 0x6dcd: 0xe0000a41, 0x6dce: 0xe0000a86, 0x6dcf: 0xe0000a83, - 0x6dd0: 0xe0000aaa, 0x6dd1: 0xe0000aa7, 0x6dd2: 0xe00025cc, 0x6dd3: 0xe00025c9, - 0x6dd4: 0xe0002574, 0x6dd5: 0xe0002571, 0x6dd6: 0xe00025b2, 0x6dd7: 0xe00025af, - 0x6dd8: 0xe00025c6, 0x6dd9: 0xe00025c3, 0x6dda: 0xe00025a0, 0x6ddb: 0xe000259d, - 0x6ddc: 0xe0000bb8, 0x6ddd: 0xe0000bb5, 0x6dde: 0xe0000bb2, 0x6ddf: 0xe0000baf, - 0x6de0: 0xe0000bc4, 0x6de1: 0xe0000bc1, 0x6de2: 0xe0000bca, 0x6de3: 0xe0000bc7, - 0x6de4: 0xe0002856, 0x6de5: 0xe0002853, 0x6de6: 0xe0000c1b, 0x6de7: 0xe0000c18, - 0x6de8: 0xe0002664, 0x6de9: 0xe0002661, 0x6dea: 0xe0002673, 0x6deb: 0xe0002670, - 0x6dec: 0xe0002644, 0x6ded: 0xe0002641, 0x6dee: 0xe000266d, 0x6def: 0xe000266a, - 0x6df0: 0xe0002667, 0x6df1: 0x402da220, 0x6df2: 0xe00027e2, 0x6df3: 0xe00027df, - 0x6df4: 0xe0000c8a, 0x6df5: 0xe0000c87, 0x6df6: 0xe000261a, 0x6df7: 0xe0002617, - 0x6df8: 0x402f7220, 0x6df9: 0xe0000ccc, 0x6dfa: 0xe0000cc9, 0x6dfb: 0xe0000cd8, - 0x6dfc: 0xe0000cd5, 0x6dfd: 0xe0000cd2, 0x6dfe: 0xe0000ccf, 0x6dff: 0xe0000d04, - // Block 0x1b8, offset 0x6e00 - 0x6e00: 0xe0000cfe, 0x6e01: 0xe0000cf8, 0x6e02: 0xe0000cf5, 0x6e03: 0xe0000d51, - 0x6e04: 0xe0000d4e, 0x6e05: 0xe0000d6f, 0x6e06: 0xe0000d6c, 0x6e07: 0xe0000d5d, - 0x6e08: 0xe0000d5a, 0x6e09: 0xf0000404, 0x6e0a: 0x002eda88, 0x6e0b: 0x402eda20, - 0x6e0c: 0xe0002761, 0x6e0d: 0xe000275e, 0x6e0e: 0xe00026e1, 0x6e0f: 0xe00026de, - 0x6e10: 0xe0002721, 0x6e11: 0xe000271e, 0x6e12: 0xe0000e93, 0x6e13: 0xe0000e8f, - 0x6e14: 0xe0002697, 0x6e15: 0xe0002694, 0x6e16: 0xe00026a9, 0x6e17: 0xe00026a6, - 0x6e18: 0xe000269d, 0x6e19: 0xe000269a, 0x6e1a: 0xe0002526, 0x6e1b: 0xe0002523, - 0x6e1c: 0xe0002534, 0x6e1d: 0xe0002531, 0x6e1e: 0xe000254e, 0x6e1f: 0xe000254b, - 0x6e20: 0xe000253a, 0x6e21: 0xe0002537, 0x6e22: 0xe0002508, 0x6e23: 0xe0002505, - 0x6e24: 0xe00024f9, 0x6e25: 0xe00024f6, 0x6e26: 0x00303688, 0x6e27: 0x40303620, - 0x6e28: 0xe000102b, 0x6e29: 0xe0001028, 0x6e2a: 0xe000103f, 0x6e2b: 0xe000103c, - 0x6e2c: 0xe0000fe7, 0x6e2d: 0xe0000fe4, 0x6e2e: 0xe0000ff9, 0x6e2f: 0xe0000ff6, - 0x6e30: 0xe0001025, 0x6e31: 0xe0001022, 0x6e32: 0xe0001039, 0x6e33: 0xe0001036, - 0x6e34: 0xe00010d8, 0x6e35: 0xe00010d5, 0x6e36: 0xe000110e, 0x6e37: 0xe000110b, - 0x6e38: 0xe0001117, 0x6e39: 0xe000113b, 0x6e3a: 0xe0001138, 0x6e3b: 0xe000114d, - 0x6e3c: 0xe000114a, 0x6e3d: 0xe0001147, 0x6e3e: 0xe0001144, 0x6e3f: 0xe0000f64, - // Block 0x1b9, offset 0x6e40 - 0x6e40: 0x402c1a20, 0x6e41: 0x002c2a88, 0x6e42: 0x002c3288, 0x6e43: 0x402c3220, - 0x6e44: 0x0031c488, 0x6e45: 0x4031c420, 0x6e46: 0x002efa88, 0x6e47: 0x002c4e88, - 0x6e48: 0x402c4e20, 0x6e49: 0x002c7288, 0x6e4a: 0x002c7a88, 0x6e4b: 0x002c8488, - 0x6e4c: 0x402c8420, 0x6e4d: 0xe000115c, 0x6e4e: 0x002cae88, 0x6e4f: 0x002cb888, - 0x6e50: 0x002cc288, 0x6e51: 0x002d1688, 0x6e52: 0x402d1620, 0x6e53: 0x002d4488, - 0x6e54: 0x002d5888, 0x6e55: 0x402d7820, 0x6e56: 0x002dc288, 0x6e57: 0x002db688, - 0x6e58: 0x002e0a88, 0x6e59: 0x402e0a20, 0x6e5a: 0x402e3820, 0x6e5b: 0x402e7220, - 0x6e5c: 0x0030a088, 0x6e5d: 0x002eb488, 0x6e5e: 0x402ebc20, 0x6e5f: 0x002f1088, - 0x6e60: 0xe0002789, 0x6e61: 0xe0002786, 0x6e62: 0x002d6088, 0x6e63: 0x402d6020, - 0x6e64: 0x002f3e88, 0x6e65: 0x402f3e20, 0x6e66: 0x002f8288, 0x6e67: 0x0031b488, - 0x6e68: 0x4031b420, 0x6e69: 0x00300888, 0x6e6a: 0x40301220, 0x6e6b: 0x40304220, - 0x6e6c: 0x00304a88, 0x6e6d: 0x40304a20, 0x6e6e: 0x00305288, 0x6e6f: 0xe000105f, - 0x6e70: 0xe000105c, 0x6e71: 0x0030b488, 0x6e72: 0x0030cc88, 0x6e73: 0x00311888, - 0x6e74: 0x40311820, 0x6e75: 0x00313488, 0x6e76: 0x40313420, 0x6e77: 0x00316488, - 0x6e78: 0x00316e88, 0x6e79: 0x40316e20, 0x6e7a: 0x40317820, 0x6e7b: 0x4031a620, - 0x6e7c: 0x0031bc88, 0x6e7d: 0x4031bc20, 0x6e7e: 0xe0000fc9, 0x6e7f: 0x40319420, - // Block 0x1ba, offset 0x6e80 - 0x6e80: 0x40321220, 0x6e81: 0x40321a20, 0x6e82: 0x40322220, 0x6e83: 0x40322a20, - 0x6e84: 0xe0000ad5, 0x6e85: 0xe0000ad1, 0x6e86: 0xe0000acd, 0x6e87: 0xf0000a0a, - 0x6e88: 0xf000040a, 0x6e89: 0xf0000404, 0x6e8a: 0xf0000a0a, 0x6e8b: 0xf000040a, - 0x6e8c: 0xf0000404, 0x6e8d: 0xe0000947, 0x6e8e: 0xe0000944, 0x6e8f: 0xe0002650, - 0x6e90: 0xe000264d, 0x6e91: 0xe000270d, 0x6e92: 0xe000270a, 0x6e93: 0xe0000ff3, - 0x6e94: 0xe0000ff0, 0x6e95: 0xe000101e, 0x6e96: 0xe000101a, 0x6e97: 0xe0001006, - 0x6e98: 0xe0001002, 0x6e99: 0xe0001016, 0x6e9a: 0xe0001012, 0x6e9b: 0xe000100e, - 0x6e9c: 0xe000100a, 0x6e9d: 0x402cae20, 0x6e9e: 0xe0000962, 0x6e9f: 0xe000095e, - 0x6ea0: 0xe0000976, 0x6ea1: 0xe0000972, 0x6ea2: 0xe00009f4, 0x6ea3: 0xe00009ef, - 0x6ea4: 0x002d3a88, 0x6ea5: 0x402d3a20, 0x6ea6: 0xe0000bbe, 0x6ea7: 0xe0000bbb, - 0x6ea8: 0xe0002614, 0x6ea9: 0xe0002611, 0x6eaa: 0xe0002753, 0x6eab: 0xe0002750, - 0x6eac: 0xe000275a, 0x6ead: 0xe0002756, 0x6eae: 0xe0001162, 0x6eaf: 0xe000115f, - 0x6eb0: 0xe0000c8d, 0x6eb1: 0xf0000a0a, 0x6eb2: 0xf000040a, 0x6eb3: 0xf0000404, - 0x6eb4: 0xe0000bac, 0x6eb5: 0xe0000ba9, 0x6eb6: 0x002d7888, 0x6eb7: 0x00319488, - 0x6eb8: 0xe0000d57, 0x6eb9: 0xe0000d54, 0x6eba: 0xe0000954, 0x6ebb: 0xe0000950, - 0x6ebc: 0xe00009ea, 0x6ebd: 0xe00009e5, 0x6ebe: 0xe0000e19, 0x6ebf: 0xe0000e15, - // Block 0x1bb, offset 0x6ec0 - 0x6ec0: 0xe000098f, 0x6ec1: 0xe000098c, 0x6ec2: 0xe0000995, 0x6ec3: 0xe0000992, - 0x6ec4: 0xe00025e8, 0x6ec5: 0xe00025e5, 0x6ec6: 0xe00025ee, 0x6ec7: 0xe00025eb, - 0x6ec8: 0xe000267f, 0x6ec9: 0xe000267c, 0x6eca: 0xe0002685, 0x6ecb: 0xe0002682, - 0x6ecc: 0xe000277d, 0x6ecd: 0xe000277a, 0x6ece: 0xe0002783, 0x6ecf: 0xe0002780, - 0x6ed0: 0xe00026af, 0x6ed1: 0xe00026ac, 0x6ed2: 0xe00026b5, 0x6ed3: 0xe00026b2, - 0x6ed4: 0xe0001053, 0x6ed5: 0xe0001050, 0x6ed6: 0xe0001059, 0x6ed7: 0xe0001056, - 0x6ed8: 0xe0002562, 0x6ed9: 0xe000255f, 0x6eda: 0xe0002514, 0x6edb: 0xe0002511, - 0x6edc: 0x00312288, 0x6edd: 0x40312220, 0x6ede: 0xe000285c, 0x6edf: 0xe0002859, - 0x6ee0: 0x002ebc88, 0x6ee1: 0x402c8c20, 0x6ee2: 0x002f2288, 0x6ee3: 0x402f2220, - 0x6ee4: 0x00314088, 0x6ee5: 0x40314020, 0x6ee6: 0xe000096f, 0x6ee7: 0xe000096c, - 0x6ee8: 0xe00025b8, 0x6ee9: 0xe00025b5, 0x6eea: 0xe000271a, 0x6eeb: 0xe0002716, - 0x6eec: 0xe000273e, 0x6eed: 0xe000273a, 0x6eee: 0xe0002745, 0x6eef: 0xe0002742, - 0x6ef0: 0xe000274c, 0x6ef1: 0xe0002748, 0x6ef2: 0xe0001129, 0x6ef3: 0xe0001126, - 0x6ef4: 0x402e5e20, 0x6ef5: 0x402ed020, 0x6ef6: 0x40305a20, 0x6ef7: 0x402dd420, - 0x6ef8: 0xe0000abf, 0x6ef9: 0xe0000ec4, 0x6efa: 0x002be888, 0x6efb: 0x002c4488, - 0x6efc: 0x402c4420, 0x6efd: 0x002e3888, 0x6efe: 0x00303e88, 0x6eff: 0x402ffc20, - // Block 0x1bc, offset 0x6f00 - 0x6f00: 0xe00009b1, 0x6f01: 0xe00009ae, 0x6f02: 0xe0000a22, 0x6f03: 0xe0000a1f, - 0x6f04: 0xe0000a28, 0x6f05: 0xe0000a25, 0x6f06: 0xe0000a2e, 0x6f07: 0xe0000a2b, - 0x6f08: 0xe0000a5a, 0x6f09: 0xe0000a56, 0x6f0a: 0xe0000a8c, 0x6f0b: 0xe0000a89, - 0x6f0c: 0xe0000a98, 0x6f0d: 0xe0000a95, 0x6f0e: 0xe0000aa4, 0x6f0f: 0xe0000aa1, - 0x6f10: 0xe0000a92, 0x6f11: 0xe0000a8f, 0x6f12: 0xe0000a9e, 0x6f13: 0xe0000a9b, - 0x6f14: 0xe00025db, 0x6f15: 0xe00025d7, 0x6f16: 0xe00025d3, 0x6f17: 0xe00025cf, - 0x6f18: 0xe0002602, 0x6f19: 0xe00025ff, 0x6f1a: 0xe0002608, 0x6f1b: 0xe0002605, - 0x6f1c: 0xe00025bf, 0x6f1d: 0xe00025bb, 0x6f1e: 0xe0000b8c, 0x6f1f: 0xe0000b89, - 0x6f20: 0xe0000bd0, 0x6f21: 0xe0000bcd, 0x6f22: 0xe0002868, 0x6f23: 0xe0002865, - 0x6f24: 0xe0002874, 0x6f25: 0xe0002871, 0x6f26: 0xe0002862, 0x6f27: 0xe000285f, - 0x6f28: 0xe000286e, 0x6f29: 0xe000286b, 0x6f2a: 0xe000287a, 0x6f2b: 0xe0002877, - 0x6f2c: 0xe0002691, 0x6f2d: 0xe000268e, 0x6f2e: 0xe000265d, 0x6f2f: 0xe0002659, - 0x6f30: 0xe000260e, 0x6f31: 0xe000260b, 0x6f32: 0xe0002620, 0x6f33: 0xe000261d, - 0x6f34: 0xe0002626, 0x6f35: 0xe0002623, 0x6f36: 0xe0000cde, 0x6f37: 0xe0000cdb, - 0x6f38: 0xe0000ce5, 0x6f39: 0xe0000ce1, 0x6f3a: 0xe0000cf2, 0x6f3b: 0xe0000cef, - 0x6f3c: 0xe0000cec, 0x6f3d: 0xe0000ce9, 0x6f3e: 0xe0000d1e, 0x6f3f: 0xe0000d1b, - // Block 0x1bd, offset 0x6f40 - 0x6f40: 0xe0000d24, 0x6f41: 0xe0000d21, 0x6f42: 0xe0000d2a, 0x6f43: 0xe0000d27, - 0x6f44: 0xe0000d69, 0x6f45: 0xe0000d66, 0x6f46: 0xe0000d7b, 0x6f47: 0xe0000d78, - 0x6f48: 0xe0000d87, 0x6f49: 0xe0000d84, 0x6f4a: 0xe0000d81, 0x6f4b: 0xe0000d7e, - 0x6f4c: 0xe000272e, 0x6f4d: 0xe000272a, 0x6f4e: 0xe0002736, 0x6f4f: 0xe0002732, - 0x6f50: 0xe0002770, 0x6f51: 0xe000276c, 0x6f52: 0xe0002768, 0x6f53: 0xe0002764, - 0x6f54: 0xe0000ea7, 0x6f55: 0xe0000ea4, 0x6f56: 0xe0000ead, 0x6f57: 0xe0000eaa, - 0x6f58: 0xe00026a3, 0x6f59: 0xe00026a0, 0x6f5a: 0xe00026bb, 0x6f5b: 0xe00026b8, - 0x6f5c: 0xe00026c2, 0x6f5d: 0xe00026be, 0x6f5e: 0xe00026c9, 0x6f5f: 0xe00026c6, - 0x6f60: 0xe0002548, 0x6f61: 0xe0002545, 0x6f62: 0xe0002554, 0x6f63: 0xe0002551, - 0x6f64: 0xe000252d, 0x6f65: 0xe0002529, 0x6f66: 0xe0002541, 0x6f67: 0xe000253d, - 0x6f68: 0xe000255b, 0x6f69: 0xe0002557, 0x6f6a: 0xe0002502, 0x6f6b: 0xe00024ff, - 0x6f6c: 0xe000250e, 0x6f6d: 0xe000250b, 0x6f6e: 0xe0002520, 0x6f6f: 0xe000251d, - 0x6f70: 0xe000251a, 0x6f71: 0xe0002517, 0x6f72: 0xe0001093, 0x6f73: 0xe0001090, - 0x6f74: 0xe000109f, 0x6f75: 0xe000109c, 0x6f76: 0xe0001099, 0x6f77: 0xe0001096, - 0x6f78: 0xe0001032, 0x6f79: 0xe000102e, 0x6f7a: 0xe0001046, 0x6f7b: 0xe0001042, - 0x6f7c: 0xe00010a9, 0x6f7d: 0xe00010a6, 0x6f7e: 0xe00010af, 0x6f7f: 0xe00010ac, - // Block 0x1be, offset 0x6f80 - 0x6f80: 0xe00010d2, 0x6f81: 0xe00010cf, 0x6f82: 0xe00010cc, 0x6f83: 0xe00010c9, - 0x6f84: 0xe00010e1, 0x6f85: 0xe00010de, 0x6f86: 0xe00010e7, 0x6f87: 0xe00010e4, - 0x6f88: 0xe00010ed, 0x6f89: 0xe00010ea, 0x6f8a: 0xe0002632, 0x6f8b: 0xe000262f, - 0x6f8c: 0xe000262c, 0x6f8d: 0xe0002629, 0x6f8e: 0xe0001123, 0x6f8f: 0xe0001120, - 0x6f90: 0xe0001141, 0x6f91: 0xe000113e, 0x6f92: 0xe0001153, 0x6f93: 0xe0001150, - 0x6f94: 0xe0001159, 0x6f95: 0xe0001156, 0x6f96: 0xe000287d, 0x6f97: 0xe00024fc, - 0x6f98: 0xe00010db, 0x6f99: 0xe0001111, 0x6f9a: 0xf0000404, 0x6f9b: 0xe0000f70, - 0x6f9c: 0x40300420, 0x6f9d: 0x40300620, 0x6f9e: 0xe0000f7f, 0x6f9f: 0x402c9620, - 0x6fa0: 0xe000099b, 0x6fa1: 0xe0000998, 0x6fa2: 0xe0000989, 0x6fa3: 0xe0000986, - 0x6fa4: 0xe0000928, 0x6fa5: 0xe0000924, 0x6fa6: 0xe0000930, 0x6fa7: 0xe000092c, - 0x6fa8: 0xe0000940, 0x6fa9: 0xe000093c, 0x6faa: 0xe0000938, 0x6fab: 0xe0000934, - 0x6fac: 0xe00009aa, 0x6fad: 0xe00009a6, 0x6fae: 0xe0000902, 0x6faf: 0xe00008fe, - 0x6fb0: 0xe000090a, 0x6fb1: 0xe0000906, 0x6fb2: 0xe000091a, 0x6fb3: 0xe0000916, - 0x6fb4: 0xe0000912, 0x6fb5: 0xe000090e, 0x6fb6: 0xe00009a2, 0x6fb7: 0xe000099e, - 0x6fb8: 0xe00025f4, 0x6fb9: 0xe00025f1, 0x6fba: 0xe00025e2, 0x6fbb: 0xe00025df, - 0x6fbc: 0xe00025ac, 0x6fbd: 0xe00025a9, 0x6fbe: 0xe0002581, 0x6fbf: 0xe000257d, - // Block 0x1bf, offset 0x6fc0 - 0x6fc0: 0xe0002589, 0x6fc1: 0xe0002585, 0x6fc2: 0xe0002599, 0x6fc3: 0xe0002595, - 0x6fc4: 0xe0002591, 0x6fc5: 0xe000258d, 0x6fc6: 0xe00025fb, 0x6fc7: 0xe00025f7, - 0x6fc8: 0xe0002679, 0x6fc9: 0xe0002676, 0x6fca: 0xe000268b, 0x6fcb: 0xe0002688, - 0x6fcc: 0xe00027b7, 0x6fcd: 0xe00027b4, 0x6fce: 0xe0002777, 0x6fcf: 0xe0002774, - 0x6fd0: 0xe00026ee, 0x6fd1: 0xe00026ea, 0x6fd2: 0xe00026f6, 0x6fd3: 0xe00026f2, - 0x6fd4: 0xe0002706, 0x6fd5: 0xe0002702, 0x6fd6: 0xe00026fe, 0x6fd7: 0xe00026fa, - 0x6fd8: 0xe00027be, 0x6fd9: 0xe00027ba, 0x6fda: 0xe0002790, 0x6fdb: 0xe000278c, - 0x6fdc: 0xe0002798, 0x6fdd: 0xe0002794, 0x6fde: 0xe00027a8, 0x6fdf: 0xe00027a4, - 0x6fe0: 0xe00027a0, 0x6fe1: 0xe000279c, 0x6fe2: 0xe00027b0, 0x6fe3: 0xe00027ac, - 0x6fe4: 0xe000108d, 0x6fe5: 0xe000108a, 0x6fe6: 0xe000104d, 0x6fe7: 0xe000104a, - 0x6fe8: 0xe0001066, 0x6fe9: 0xe0001062, 0x6fea: 0xe000106e, 0x6feb: 0xe000106a, - 0x6fec: 0xe000107e, 0x6fed: 0xe000107a, 0x6fee: 0xe0001076, 0x6fef: 0xe0001072, - 0x6ff0: 0xe0001086, 0x6ff1: 0xe0001082, 0x6ff2: 0xe0001108, 0x6ff3: 0xe0001105, - 0x6ff4: 0xe0001135, 0x6ff5: 0xe0001132, 0x6ff6: 0xe000112f, 0x6ff7: 0xe000112c, - 0x6ff8: 0xe000111d, 0x6ff9: 0xe000111a, 0x6ffa: 0xe0000d0a, 0x6ffb: 0xe0000d07, - 0x6ffc: 0x0030d888, 0x6ffd: 0x4030d820, 0x6ffe: 0x00312088, 0x6fff: 0x40312020, - // Block 0x1c0, offset 0x7000 - 0x7000: 0xe00009bc, 0x7001: 0xe00009c0, 0x7002: 0x002c3a8b, 0x7003: 0xf0000a04, - 0x7004: 0x40081c20, 0x7005: 0xe0000a5e, 0x7006: 0xe0000a62, 0x7007: 0x002cc28a, - 0x7008: 0x40081e20, 0x7009: 0xf0000a04, 0x700a: 0x002d2285, 0x700b: 0x002d688b, - 0x700c: 0x002d688b, 0x700d: 0x002d688b, 0x700e: 0x002d6885, 0x700f: 0xf0000202, - 0x7010: 0x002d9a8b, 0x7011: 0x002d9a8b, 0x7012: 0x002e228b, 0x7013: 0x002e2285, - 0x7014: 0x40082020, 0x7015: 0x002e9e8b, 0x7016: 0xe000281e, 0x7017: 0x40082220, - 0x7018: 0x40082420, 0x7019: 0x002f2c8b, 0x701a: 0x002f568b, 0x701b: 0x002f7a8b, - 0x701c: 0x002f7a8b, 0x701d: 0x002f7a8b, 0x701e: 0x40082620, 0x701f: 0x40082820, - 0x7020: 0xe0002833, 0x7021: 0xe0000fbd, 0x7022: 0xe0002842, 0x7023: 0x40082a20, - 0x7024: 0x00312a8b, 0x7025: 0x40082c20, 0x7026: 0x0032a288, 0x7027: 0x40082e20, - 0x7028: 0x00312a8b, 0x7029: 0x40083020, 0x702a: 0x002c3c83, 0x702b: 0xe000094d, - 0x702c: 0x002c0a8b, 0x702d: 0x002c3a8b, 0x702e: 0x40083220, 0x702f: 0x002c9885, - 0x7030: 0x002c988b, 0x7031: 0x002d088b, 0x7032: 0x002d1e88, 0x7033: 0x002e828b, - 0x7034: 0x002ee285, 0x7035: 0x00389084, 0x7036: 0x00389284, 0x7037: 0x00389484, - 0x7038: 0x00389684, 0x7039: 0x002d9a85, 0x703a: 0x40083420, 0x703b: 0xe0000b95, - 0x703c: 0x00327e85, 0x703d: 0x00325685, 0x703e: 0x0032568b, 0x703f: 0x00327e8b, - // Block 0x1c1, offset 0x7040 - 0x7040: 0x00093685, 0x7041: 0x40083620, 0x7042: 0x40083820, 0x7043: 0x40083a20, - 0x7044: 0x40083c20, 0x7045: 0x002c628b, 0x7046: 0x002c6285, 0x7047: 0x002c9885, - 0x7048: 0x002d9a85, 0x7049: 0x002dcc85, 0x704a: 0x40083e20, 0x704b: 0x400a6e20, - 0x704c: 0x40084020, 0x704d: 0xe00009c4, 0x704e: 0x402d1e20, 0x704f: 0x40084220, - 0x7050: 0xe00002cb, 0x7051: 0xe00002d3, 0x7052: 0xe00002b2, 0x7053: 0xe00002bb, - 0x7054: 0xe00003cd, 0x7055: 0xe00002c3, 0x7056: 0xe00003d1, 0x7057: 0xe00004ab, - 0x7058: 0xe0000579, 0x7059: 0xe00002c7, 0x705a: 0xe0000640, 0x705b: 0xe00002cf, - 0x705c: 0xe00004af, 0x705d: 0xe0000644, 0x705e: 0xe0000798, 0x705f: 0xf0001e1e, - 0x7060: 0x002d9a8a, 0x7061: 0xe00027d4, 0x7062: 0xe00027db, 0x7063: 0xe00027ee, - 0x7064: 0x0030be8a, 0x7065: 0xe0002848, 0x7066: 0xe000284f, 0x7067: 0xe00010bb, - 0x7068: 0xe00027f4, 0x7069: 0x0030f68a, 0x706a: 0xe0002883, 0x706b: 0xe000288a, - 0x706c: 0x002e228a, 0x706d: 0x002c3a8a, 0x706e: 0x002c628a, 0x706f: 0x002e828a, - 0x7070: 0x002d9a84, 0x7071: 0xe00027d1, 0x7072: 0xe00027d7, 0x7073: 0xe00027eb, - 0x7074: 0x0030be84, 0x7075: 0xe0002845, 0x7076: 0xe000284b, 0x7077: 0xe00010b6, - 0x7078: 0xe00027f1, 0x7079: 0x0030f684, 0x707a: 0xe0002880, 0x707b: 0xe0002886, - 0x707c: 0x002e2284, 0x707d: 0x002c3a84, 0x707e: 0x002c6284, 0x707f: 0x002e8284, - // Block 0x1c2, offset 0x7080 - 0x7080: 0xe0000024, 0x7081: 0xe0000029, 0x7082: 0xe000002e, 0x7083: 0xe0000033, - 0x7084: 0xe0000038, 0x7085: 0xe000003d, 0x7086: 0xe0000042, 0x7087: 0xe0000047, - 0x7088: 0xf0001f04, 0x7089: 0xf0001f04, 0x708a: 0xf0001f04, 0x708b: 0xf0001f04, - 0x708c: 0xf0001f04, 0x708d: 0xf0001f04, 0x708e: 0xf0001f04, 0x708f: 0xf0001f04, - 0x7090: 0xf0001f04, 0x7091: 0xf0000404, 0x7092: 0xf0000404, 0x7093: 0xf0000404, - 0x7094: 0xf0000404, 0x7095: 0xf0000404, 0x7096: 0xf0000404, 0x7097: 0xf0000404, - 0x7098: 0xf0000404, 0x7099: 0xf0000404, 0x709a: 0xf0000404, 0x709b: 0xf0000404, - 0x709c: 0xf0000404, 0x709d: 0xf0000404, 0x709e: 0xf0000404, 0x709f: 0xf0000404, - 0x70a0: 0xe000249f, 0x70a1: 0xf0000404, 0x70a2: 0xf0000404, 0x70a3: 0xe00024a7, - 0x70a4: 0xe00024af, 0x70a5: 0xf0000404, 0x70a6: 0xe00024b7, 0x70a7: 0xf0000404, - 0x70a8: 0xf0000404, 0x70a9: 0xf0000404, 0x70aa: 0xe00024bf, 0x70ab: 0xf0000404, - 0x70ac: 0xe00024c7, 0x70ad: 0xe00024cf, 0x70ae: 0xe00024d7, 0x70af: 0xe00024df, - 0x70b0: 0xf0000404, 0x70b1: 0xf0000404, 0x70b2: 0xf0000404, 0x70b3: 0xe00024e7, - 0x70b4: 0xf0000404, 0x70b5: 0xf0000404, 0x70b6: 0x002bde8c, 0x70b7: 0x002c0a8c, - 0x70b8: 0x002c3a8c, 0x70b9: 0x002c628c, 0x70ba: 0x002c988c, 0x70bb: 0x002d088c, - 0x70bc: 0x002d228c, 0x70bd: 0x002d688c, 0x70be: 0x002d9a8c, 0x70bf: 0x002dcc8c, - // Block 0x1c3, offset 0x70c0 - 0x70c0: 0xf0001f04, 0x70c1: 0xf0001f04, 0x70c2: 0xf0001f04, 0x70c3: 0xf0001f04, - 0x70c4: 0xf0001f04, 0x70c5: 0xf0001f04, 0x70c6: 0xf0001f04, 0x70c7: 0xf0001f04, - 0x70c8: 0xf0001f04, 0x70c9: 0xf0000404, 0x70ca: 0xf0000404, 0x70cb: 0xf0000404, - 0x70cc: 0xe00027c5, 0x70cd: 0xe0000b85, 0x70ce: 0xe00026cc, 0x70cf: 0xe0000d14, - 0x70d0: 0x00657693, 0x70d1: 0x00657893, 0x70d2: 0x00657a93, 0x70d3: 0x00657e93, - 0x70d4: 0x00658093, 0x70d5: 0x00658293, 0x70d6: 0x00658493, 0x70d7: 0x00658693, - 0x70d8: 0x00658893, 0x70d9: 0x00658a93, 0x70da: 0x00658c93, 0x70db: 0x00658e93, - 0x70dc: 0x00659093, 0x70dd: 0x00659293, 0x70de: 0x00659493, 0x70df: 0x00659693, - 0x70e0: 0x00659893, 0x70e1: 0x00659a93, 0x70e2: 0x00659c93, 0x70e3: 0x00659e93, - 0x70e4: 0x0065a093, 0x70e5: 0x0065a293, 0x70e6: 0x0065a493, 0x70e7: 0x0065a693, - 0x70e8: 0x0065a893, 0x70e9: 0x0065aa93, 0x70ea: 0x0065ac93, 0x70eb: 0x0065ae93, - 0x70ec: 0x0065b093, 0x70ed: 0x0065b293, 0x70ee: 0x0065b493, 0x70ef: 0x0065b693, - 0x70f0: 0x0065b893, 0x70f1: 0x0065ba93, 0x70f2: 0x0065bc93, 0x70f3: 0x0065be93, - 0x70f4: 0x0065c093, 0x70f5: 0x0065c493, 0x70f6: 0x0065c693, 0x70f7: 0x0065c893, - 0x70f8: 0x0065ca93, 0x70f9: 0x0065cc93, 0x70fa: 0x0065ce93, 0x70fb: 0x0065d093, - 0x70fc: 0x0065d293, 0x70fd: 0x0065d493, 0x70fe: 0x0065d693, - // Block 0x1c4, offset 0x7100 - 0x7100: 0xe000230b, 0x7101: 0xe00022f8, 0x7102: 0xe00022fc, 0x7103: 0xe0002311, - 0x7104: 0xe0002316, 0x7105: 0xe000231d, 0x7106: 0xe0002321, 0x7107: 0xe0002325, - 0x7108: 0xe000232b, 0x7109: 0xf0001c1c, 0x710a: 0xe0002330, 0x710b: 0xe000233c, - 0x710c: 0xe0002340, 0x710d: 0xe0002337, 0x710e: 0xe0002346, 0x710f: 0xe000234b, - 0x7110: 0xe000234f, 0x7111: 0xe0002353, 0x7112: 0xf0001c1c, 0x7113: 0xe000235e, - 0x7114: 0xe0002358, 0x7115: 0xf0001c1c, 0x7116: 0xe0002363, 0x7117: 0xe000236d, - 0x7118: 0xf0001f04, 0x7119: 0xf0001f04, 0x711a: 0xf0001f04, 0x711b: 0xf0001f04, - 0x711c: 0xf0001f04, 0x711d: 0xf0001f04, 0x711e: 0xf0001f04, 0x711f: 0xf0001f04, - 0x7120: 0xf0001f04, 0x7121: 0xf0001f04, 0x7122: 0xf0000404, 0x7123: 0xf0000404, - 0x7124: 0xf0000404, 0x7125: 0xf0000404, 0x7126: 0xf0000404, 0x7127: 0xf0000404, - 0x7128: 0xf0000404, 0x7129: 0xf0000404, 0x712a: 0xf0000404, 0x712b: 0xf0000404, - 0x712c: 0xf0000404, 0x712d: 0xf0000404, 0x712e: 0xf0000404, 0x712f: 0xf0000404, - 0x7130: 0xf0000404, 0x7131: 0xe0000c1e, 0x7132: 0xf0001c1c, 0x7133: 0xf0001d1d, - 0x7134: 0xe0000a31, 0x7135: 0xe0002824, 0x7136: 0xf0001c1c, 0x7137: 0xf0001c1c, - 0x7138: 0xe0000ac2, 0x7139: 0xe0000ac6, 0x713a: 0xe00027e8, 0x713b: 0xf0001c1c, - 0x713c: 0xf0001c1c, 0x713d: 0xf0001c1c, 0x713e: 0xf0001c1c, 0x713f: 0xe0002431, - // Block 0x1c5, offset 0x7140 - 0x7140: 0xf0001d1c, 0x7141: 0xf0001d1c, 0x7142: 0xf0001d1c, 0x7143: 0xf0001d1c, - 0x7144: 0xe00027f7, 0x7145: 0xe00027fa, 0x7146: 0xf0001d1d, 0x7147: 0xf0001d1d, - 0x7148: 0xe0000a6b, 0x7149: 0xe0000cb4, 0x714a: 0xf0001d1c, 0x714b: 0xf0001d1c, - 0x714c: 0xf0001d1c, 0x714d: 0xf0001c1c, 0x714e: 0xf0001c1c, 0x714f: 0xe00027fd, - 0x7150: 0xe00027ce, 0x7151: 0xe0000cb9, 0x7152: 0xe0000d36, 0x7153: 0xe0000be3, - 0x7154: 0xe0000fc5, 0x7155: 0xf0001c1c, 0x7156: 0xf0001c1c, 0x7157: 0xf0001c1c, - 0x7158: 0xe0002803, 0x7159: 0xf0001c1c, 0x715a: 0xf0001c1c, 0x715b: 0xf0001c1c, - 0x715c: 0xf0001c1c, 0x715d: 0xf0001c1c, 0x715e: 0xe0002806, 0x715f: 0xe0000d3e, - 0x7160: 0xe0000a72, 0x7161: 0xf0001c1c, 0x7162: 0xe0000cbd, 0x7163: 0xe0000d42, - 0x7164: 0xe0000a76, 0x7165: 0xf0001c1c, 0x7166: 0xe0000cc1, 0x7167: 0xe0000d2d, - 0x7168: 0xe0000d31, 0x7169: 0xf0001c1d, 0x716a: 0xe0000cc5, 0x716b: 0xe0000d4a, - 0x716c: 0xe0000be7, 0x716d: 0xe0000f0b, 0x716e: 0xe0000f0f, 0x716f: 0xe0000f15, - 0x7170: 0xe000282d, 0x7171: 0xe0002821, 0x7172: 0xe000288e, 0x7173: 0xe000281b, - 0x7174: 0xf0001d1c, 0x7175: 0xf0001d1c, 0x7176: 0xf0001d1c, 0x7177: 0xf0001d1c, - 0x7178: 0xe000280f, 0x7179: 0xf0001d1d, 0x717a: 0xf0001d1c, 0x717b: 0xf0001d1c, - 0x717c: 0xf0001d1c, 0x717d: 0xf0001d1c, 0x717e: 0xe0002812, 0x717f: 0xf0001d1d, - // Block 0x1c6, offset 0x7180 - 0x7180: 0xe0002815, 0x7181: 0xf0001d1d, 0x7182: 0xe00009b7, 0x7183: 0xe00024f3, - 0x7184: 0xf0001c1c, 0x7185: 0xf0001c1c, 0x7186: 0xe0000a66, 0x7187: 0xe0000a7a, - 0x7188: 0xf0001d1c, 0x7189: 0xf0001c1d, 0x718a: 0xe00027c2, 0x718b: 0xe00027c8, - 0x718c: 0xe00027e5, 0x718d: 0xe0002800, 0x718e: 0xe0002809, 0x718f: 0xe000280c, - 0x7190: 0xf0001c1c, 0x7191: 0xf0001c1c, 0x7192: 0xe0000d0d, 0x7193: 0xe0002818, - 0x7194: 0xf0001c1c, 0x7195: 0xe0000d3a, 0x7196: 0xe0000d46, 0x7197: 0xe0002827, - 0x7198: 0xe0000eb0, 0x7199: 0xe0000eb8, 0x719a: 0xe000282a, 0x719b: 0xe0002836, - 0x719c: 0xe000283f, 0x719d: 0xf0001c1d, 0x719e: 0xe00010b2, 0x719f: 0xe00009c8, - 0x71a0: 0xf0001f04, 0x71a1: 0xf0001f04, 0x71a2: 0xf0001f04, 0x71a3: 0xf0001f04, - 0x71a4: 0xf0001f04, 0x71a5: 0xf0001f04, 0x71a6: 0xf0001f04, 0x71a7: 0xf0001f04, - 0x71a8: 0xf0001f04, 0x71a9: 0xf0000404, 0x71aa: 0xf0000404, 0x71ab: 0xf0000404, - 0x71ac: 0xf0000404, 0x71ad: 0xf0000404, 0x71ae: 0xf0000404, 0x71af: 0xf0000404, - 0x71b0: 0xf0000404, 0x71b1: 0xf0000404, 0x71b2: 0xf0000404, 0x71b3: 0xf0000404, - 0x71b4: 0xf0000404, 0x71b5: 0xf0000404, 0x71b6: 0xf0000404, 0x71b7: 0xf0000404, - 0x71b8: 0xf0000404, 0x71b9: 0xf0000404, 0x71ba: 0xf0000404, 0x71bb: 0xf0000404, - 0x71bc: 0xf0000404, 0x71bd: 0xf0000404, 0x71be: 0xf0000404, 0x71bf: 0xe0000bdf, - // Block 0x1c7, offset 0x71c0 - 0x71c0: 0xf0000404, 0x71c1: 0xe00026cf, 0x71c2: 0xf0000404, 0x71c3: 0xe0000b99, - 0x71c4: 0xe0000b9d, 0x71c5: 0xe0000f83, 0x71c6: 0xe000283c, - 0x71d3: 0xf0000404, - 0x71d4: 0xf0000404, 0x71d5: 0xf0000404, 0x71d6: 0xf0000404, 0x71d7: 0xf0000404, - 0x71dd: 0xe000150b, 0x71de: 0xa1a09602, 0x71df: 0xe0001514, - 0x71e0: 0x0038ae85, 0x71e1: 0x00389085, 0x71e2: 0x00389685, 0x71e3: 0x00389885, - 0x71e4: 0x0038a485, 0x71e5: 0x0038a685, 0x71e6: 0x0038a885, 0x71e7: 0x0038b685, - 0x71e8: 0x0038ba85, 0x71e9: 0x00093885, 0x71ea: 0xe0001542, 0x71eb: 0xe000153f, - 0x71ec: 0xe000154c, 0x71ed: 0xe0001548, 0x71ee: 0xe00014e1, 0x71ef: 0xe00014e4, - 0x71f0: 0xe00014e7, 0x71f1: 0xe00014ea, 0x71f2: 0xe00014f0, 0x71f3: 0xe00014f3, - 0x71f4: 0xe00014f6, 0x71f5: 0xe00014fc, 0x71f6: 0xe0001505, - 0x71f8: 0xe0001508, 0x71f9: 0xe000150e, 0x71fa: 0xe000151b, 0x71fb: 0xe0001518, - 0x71fc: 0xe0001521, 0x71fe: 0xe0001524, - // Block 0x1c8, offset 0x7200 - 0x7200: 0xf0001f04, 0x7201: 0xf0001f04, 0x7202: 0xf0001f04, 0x7203: 0xf0001f04, - 0x7204: 0xf0001f04, 0x7205: 0xf0001f04, 0x7206: 0xf0001f04, 0x7207: 0xf0001f04, - 0x7208: 0xf0001f04, 0x7209: 0xf0001f04, 0x720a: 0xf0001f04, - 0x7210: 0xf0000a04, 0x7211: 0xf0000a04, 0x7212: 0xf0000a04, 0x7213: 0xf0000a04, - 0x7214: 0xe00024a3, 0x7215: 0xf0000a04, 0x7216: 0xf0000a04, 0x7217: 0xe00024ab, - 0x7218: 0xe00024b3, 0x7219: 0xf0000a04, 0x721a: 0xe00024bb, 0x721b: 0xf0000a04, - 0x721c: 0xf0000a04, 0x721d: 0xf0000a04, 0x721e: 0xe00024c3, 0x721f: 0xf0000a04, - 0x7220: 0xe00024cb, 0x7221: 0xe00024d3, 0x7222: 0xe00024db, 0x7223: 0xe00024e3, - 0x7224: 0xf0000a04, 0x7225: 0xf0000a04, 0x7226: 0xf0000a04, 0x7227: 0xe00024eb, - 0x7228: 0xf0000a04, 0x7229: 0xf0000a04, 0x722a: 0xe00024ef, 0x722b: 0x002c3a8c, - 0x722c: 0x002f7a8c, 0x722d: 0xf0000c0c, 0x722e: 0xf0000c0c, - 0x7230: 0x002bde9d, 0x7231: 0x002c0a9d, 0x7232: 0x002c3a9d, 0x7233: 0x002c629d, - 0x7234: 0x002c989d, 0x7235: 0x002d089d, 0x7236: 0x002d229d, 0x7237: 0x002d689d, - 0x7238: 0x002d9a9d, 0x7239: 0x002dcc9d, 0x723a: 0x002dfe9d, 0x723b: 0x002e229d, - 0x723c: 0x002e829d, 0x723d: 0x002e9e9d, 0x723e: 0x002ee29d, 0x723f: 0x002f2c9d, - // Block 0x1c9, offset 0x7240 - 0x7240: 0x002f569d, 0x7241: 0x002f7a9d, 0x7242: 0x002fe69d, 0x7243: 0x00302c9d, - 0x7244: 0x00306c9d, 0x7245: 0x0030be9d, 0x7246: 0x0030e29d, 0x7247: 0x0030f69d, - 0x7248: 0x0031009d, 0x7249: 0x00312a9d, 0x724a: 0xe00027cb, 0x724b: 0xf0001d1d, - 0x724c: 0xe0002830, 0x724d: 0xe0002839, 0x724e: 0xe0000ebc, 0x724f: 0xf0001d1d, - 0x7250: 0x002bde8c, 0x7251: 0x002c0a8c, 0x7252: 0x002c3a8c, 0x7253: 0x002c628c, - 0x7254: 0x002c988c, 0x7255: 0x002d088c, 0x7256: 0x002d228c, 0x7257: 0x002d688c, - 0x7258: 0x002d9a8c, 0x7259: 0x002dcc8c, 0x725a: 0x002dfe8c, 0x725b: 0x002e228c, - 0x725c: 0x002e828c, 0x725d: 0x002e9e8c, 0x725e: 0x002ee28c, 0x725f: 0x002f2c8c, - 0x7260: 0x002f568c, 0x7261: 0x002f7a8c, 0x7262: 0x002fe68c, 0x7263: 0x00302c8c, - 0x7264: 0x00306c8c, 0x7265: 0x0030be8c, 0x7266: 0x0030e28c, 0x7267: 0x0030f68c, - 0x7268: 0x0031008c, 0x7269: 0x00312a8c, 0x726a: 0xf0001414, 0x726b: 0xf0001414, - 0x7270: 0x002bde9d, 0x7271: 0x002c0a9d, 0x7272: 0x002c3a9d, 0x7273: 0x002c629d, - 0x7274: 0x002c989d, 0x7275: 0x002d089d, 0x7276: 0x002d229d, 0x7277: 0x002d689d, - 0x7278: 0x002d9a9d, 0x7279: 0x002dcc9d, 0x727a: 0x002dfe9d, 0x727b: 0x002e229d, - 0x727c: 0x002e829d, 0x727d: 0x002e9e9d, 0x727e: 0x002ee29d, 0x727f: 0x002f2c9d, - // Block 0x1ca, offset 0x7280 - 0x7280: 0xe0000cfe, 0x7281: 0xe0000cf8, 0x7282: 0xe0000cf5, 0x7283: 0xe0000d51, - 0x7284: 0xe0000d4e, 0x7285: 0xe0000d6f, 0x7286: 0xe0000d6c, 0x7287: 0xe0000d5d, - 0x7288: 0xe0000d5a, 0x7289: 0x002e9e89, 0x728a: 0x002eda88, 0x728b: 0x402eda20, - 0x728c: 0xe0000e2e, 0x728d: 0xe0000e2b, 0x728e: 0xe0000da0, 0x728f: 0xe0000d9d, - 0x7290: 0xe0000de0, 0x7291: 0xe0000ddd, 0x7292: 0xe0000e93, 0x7293: 0xe0000e8f, - 0x7294: 0xe0000eca, 0x7295: 0xe0000ec7, 0x7296: 0xe0000edc, 0x7297: 0xe0000ed9, - 0x7298: 0xe0000ed0, 0x7299: 0xe0000ecd, 0x729a: 0xe0000f1f, 0x729b: 0xe0000f1c, - 0x729c: 0xe0000f2d, 0x729d: 0xe0000f2a, 0x729e: 0xe0000f47, 0x729f: 0xe0000f44, - 0x72a0: 0xe0000f33, 0x72a1: 0xe0000f30, 0x72a2: 0xe0000f99, 0x72a3: 0xe0000f96, - 0x72a4: 0xe0000f8a, 0x72a5: 0xe0000f87, 0x72a6: 0x00303688, 0x72a7: 0x40303620, - 0x72a8: 0xe000102b, 0x72a9: 0xe0001028, 0x72aa: 0xe000103f, 0x72ab: 0xe000103c, - 0x72ac: 0xe0000fe7, 0x72ad: 0xe0000fe4, 0x72ae: 0xe0000ff9, 0x72af: 0xe0000ff6, - 0x72b0: 0xe0001025, 0x72b1: 0xe0001022, 0x72b2: 0xe0001039, 0x72b3: 0xe0001036, - 0x72b4: 0xe00010d8, 0x72b5: 0xe00010d5, 0x72b6: 0xe000110e, 0x72b7: 0xe000110b, - 0x72b8: 0xe0001117, 0x72b9: 0xe000113b, 0x72ba: 0xe0001138, 0x72bb: 0xe000114d, - 0x72bc: 0xe000114a, 0x72bd: 0xe0001147, 0x72be: 0xe0001144, 0x72bf: 0xe0000f64, - // Block 0x1cb, offset 0x72c0 - 0x72c0: 0xa0000000, 0x72c1: 0xa0000000, 0x72c2: 0xa0000000, 0x72c3: 0xa0000000, - 0x72c4: 0xa0000000, 0x72c6: 0x40096620, 0x72c7: 0x40096a20, - 0x72c8: 0x40070820, 0x72c9: 0x4004f220, 0x72ca: 0x4004f620, 0x72cb: 0x4027e620, - 0x72cc: 0x40024820, 0x72cd: 0x40024a20, 0x72ce: 0x40070e20, 0x72cf: 0x40071020, - 0x72d0: 0xae600000, 0x72d1: 0xae600000, 0x72d2: 0xae600000, 0x72d3: 0xae600000, - 0x72d4: 0xae600000, 0x72d5: 0xae600000, 0x72d6: 0xae600000, 0x72d7: 0xae600000, - 0x72d8: 0xa1e00000, 0x72d9: 0xa1f00000, 0x72da: 0xa2000000, 0x72db: 0x40026420, - 0x72de: 0x40027020, 0x72df: 0x4002cc20, - 0x72e0: 0x403aa220, 0x72e1: 0x40391c20, 0x72e2: 0x40391e20, 0x72e3: 0x40392020, - 0x72e4: 0x40392620, 0x72e5: 0x40392820, 0x72e6: 0x40393020, 0x72e7: 0xc0520151, - 0x72e8: 0x40393c20, 0x72e9: 0x40395621, 0x72ea: 0x40395620, 0x72eb: 0x40395820, - 0x72ec: 0x40396420, 0x72ed: 0x40397220, 0x72ee: 0x40397420, 0x72ef: 0x40398820, - 0x72f0: 0x40398a20, 0x72f1: 0x4039a420, 0x72f2: 0x4039a620, 0x72f3: 0x4039c620, - 0x72f4: 0x4039c820, 0x72f5: 0x4039dc20, 0x72f6: 0x4039de20, 0x72f7: 0x4039e620, - 0x72f8: 0x4039e820, 0x72f9: 0x4039ee20, 0x72fa: 0x4039f020, 0x72fb: 0x403a3820, - 0x72fc: 0x403a3a20, 0x72fd: 0x403a9c20, 0x72fe: 0x403a9e20, 0x72ff: 0x403aa020, - // Block 0x1cc, offset 0x7300 - 0x7300: 0xa0000000, 0x7301: 0x4039fc20, 0x7302: 0x403a1220, 0x7303: 0x403a1a20, - 0x7304: 0x403a4020, 0x7305: 0x403a4e20, 0x7306: 0x403a5620, 0x7307: 0x403a6820, - 0x7308: 0xc0560171, 0x7309: 0x403a9021, 0x730a: 0xc0580171, 0x730b: 0xa1b0a202, - 0x730c: 0xa1c0a502, 0x730d: 0xa1d0a902, 0x730e: 0xa1e0ad02, 0x730f: 0xa1f0b202, - 0x7310: 0xa200b602, 0x7311: 0xa210ba02, 0x7312: 0xa220bc02, 0x7313: 0xae60bd02, - 0x7314: 0xae60be02, 0x7315: 0xadc0bf02, 0x7316: 0xadc0c102, 0x7317: 0xae60c202, - 0x7318: 0xae60c302, 0x7319: 0xae60c402, 0x731a: 0xae60c502, 0x731b: 0xae60c602, - 0x731c: 0xadc0c702, 0x731d: 0xae60c802, 0x731e: 0xae60c902, 0x731f: 0xadc0c002, - 0x7320: 0xe000015e, 0x7321: 0xe00001e6, 0x7322: 0xe0000301, 0x7323: 0xe00003db, - 0x7324: 0xe00004b6, 0x7325: 0xe0000580, 0x7326: 0xe000064b, 0x7327: 0xe00006f3, - 0x7328: 0xe000079f, 0x7329: 0xe0000844, 0x732a: 0x4004ee20, 0x732b: 0x40024c20, - 0x732c: 0x40024e20, 0x732d: 0x4004de20, 0x732e: 0x40393a20, 0x732f: 0x403a1020, - 0x7330: 0xa230d102, 0x7331: 0x40392420, 0x7332: 0x40392220, 0x7333: 0x40392a20, - 0x7334: 0x00391c84, 0x7335: 0xf0000404, 0x7336: 0xf0000404, 0x7337: 0xf0000404, - 0x7338: 0xf0000404, 0x7339: 0x40395a20, 0x733a: 0x40395c20, 0x733b: 0x40393e20, - 0x733c: 0x40395e20, 0x733d: 0x40396020, 0x733e: 0x40394020, 0x733f: 0x40396220, - // Block 0x1cd, offset 0x7340 - 0x7340: 0x40073420, 0x7341: 0x40073620, - 0x7353: 0x003a269a, - 0x7354: 0x003a2699, 0x7355: 0x003a2697, 0x7356: 0x003a2698, 0x7357: 0x003a7c9a, - 0x7358: 0x003a7c99, 0x7359: 0x003a7a9a, 0x735a: 0x003a7a99, 0x735b: 0x003a7e9a, - 0x735c: 0x003a7e99, 0x735d: 0xf0001a1a, 0x735e: 0x003a849a, 0x735f: 0x003a8499, - 0x7360: 0x003a789a, 0x7361: 0x003a7899, 0x7362: 0x003a809a, 0x7363: 0x003a8099, - 0x7364: 0x003a989a, 0x7365: 0x003a9899, 0x7366: 0x003a9897, 0x7367: 0x003a9898, - 0x7368: 0x003a90a3, 0x7369: 0x003a90a4, 0x736a: 0xe0001559, 0x736b: 0xe0001556, - 0x736c: 0xe0001589, 0x736d: 0xe0001586, 0x736e: 0xe000158f, 0x736f: 0xe000158c, - 0x7370: 0xe000159b, 0x7371: 0xe0001598, 0x7372: 0xe0001595, 0x7373: 0xe0001592, - 0x7374: 0xe00015a1, 0x7375: 0xe000159e, 0x7376: 0xe00015bf, 0x7377: 0xe00015bc, - 0x7378: 0xe00015b9, 0x7379: 0xe00015ad, 0x737a: 0xe00015a7, 0x737b: 0xe00015a4, - 0x737c: 0x003a929a, 0x737d: 0x003a9299, 0x737e: 0x003a9297, 0x737f: 0x003a9298, - // Block 0x1ce, offset 0x7380 - 0x7380: 0xe000155f, 0x7381: 0xe0001565, 0x7382: 0xe000157a, 0x7383: 0xe00015b0, - 0x7384: 0xe00015b6, 0x7385: 0xf0001a1a, 0x7386: 0xf0001a1a, 0x7387: 0xf0001a1a, - 0x7388: 0xf0001a1a, 0x7389: 0xe0002894, 0x738a: 0xf0001a1a, 0x738b: 0xf0001a1a, - 0x738c: 0xf0001a1a, 0x738d: 0xf0001a1a, 0x738e: 0xf0001a1a, 0x738f: 0xe000289a, - 0x7390: 0xf0001a1a, 0x7391: 0xf0001a1a, 0x7392: 0xf0001a1a, 0x7393: 0xe00028a0, - 0x7394: 0xf0001a1a, 0x7395: 0xf0001a1a, 0x7396: 0xf0001a1a, 0x7397: 0xf0001a1a, - 0x7398: 0xf0001a1a, 0x7399: 0xf0001a1a, 0x739a: 0xf0001a1a, 0x739b: 0xf0001a1a, - 0x739c: 0xf0001a1a, 0x739d: 0xf0001a1a, 0x739e: 0xf0001a1a, 0x739f: 0xf0001a1a, - 0x73a0: 0xf0001a1a, 0x73a1: 0xf0001a1a, 0x73a2: 0xf0001a1a, 0x73a3: 0xf0001a1a, - 0x73a4: 0xf0001a1a, 0x73a5: 0xf0001a1a, 0x73a6: 0xf0001a1a, 0x73a7: 0xf0001a1a, - 0x73a8: 0xf0001a1a, 0x73a9: 0xf0001a1a, 0x73aa: 0xf0001a1a, 0x73ab: 0xf0001a1a, - 0x73ac: 0xf0001a1a, 0x73ad: 0xf0001a1a, 0x73ae: 0xf0001a1a, 0x73af: 0xf0001a1a, - 0x73b0: 0xf0001a1a, 0x73b1: 0xe00028e2, 0x73b2: 0xf0001a1a, 0x73b3: 0xf0001a1a, - 0x73b4: 0xf0001a1a, 0x73b5: 0xe00028e8, 0x73b6: 0xf0001a1a, 0x73b7: 0xf0001a1a, - 0x73b8: 0xf0001a1a, 0x73b9: 0xf0001a1a, 0x73ba: 0xf0001a1a, 0x73bb: 0xf0001a1a, - 0x73bc: 0xf0001a1a, 0x73bd: 0xe00028ee, 0x73be: 0xf0001a1a, 0x73bf: 0xf0001a1a, - // Block 0x1cf, offset 0x73c0 - 0x73c0: 0xf0001a1a, 0x73c1: 0xf0001a1a, 0x73c2: 0xf0001a1a, 0x73c3: 0xe00028f4, - 0x73c4: 0xf0001a1a, 0x73c5: 0xf0001a1a, 0x73c6: 0xf0001a1a, 0x73c7: 0xf0001a1a, - 0x73c8: 0xf0001a1a, 0x73c9: 0xe00028f7, 0x73ca: 0xf0001a1a, 0x73cb: 0xf0001a1a, - 0x73cc: 0xf0001a1a, 0x73cd: 0xf0001a1a, 0x73ce: 0xf0001a1a, 0x73cf: 0xe00028fd, - 0x73d0: 0xf0001a1a, 0x73d1: 0xf0001a1a, 0x73d2: 0xf0001a1a, 0x73d3: 0xe0002900, - 0x73d4: 0xf0001a1a, 0x73d5: 0xf0001a1a, 0x73d6: 0xf0001a1a, 0x73d7: 0xf0001a1a, - 0x73d8: 0xf0001a1a, 0x73d9: 0xe0002906, 0x73da: 0xf0001a1a, 0x73db: 0xf0001a1a, - 0x73dc: 0xf0001a1a, 0x73dd: 0x003a90a8, 0x73de: 0xe0000003, 0x73df: 0xe0000006, - 0x73e0: 0xe0000009, 0x73e1: 0xe000000c, 0x73e2: 0xe000000f, 0x73e3: 0xe0000012, - 0x73e4: 0xe000156b, 0x73e5: 0xe000156e, 0x73e6: 0xe0001577, 0x73e7: 0xe000157d, - 0x73e8: 0xe00015aa, 0x73e9: 0xe00015b3, 0x73ea: 0xf0001919, 0x73eb: 0xf0001919, - 0x73ec: 0xf0001919, 0x73ed: 0xf0001919, 0x73ee: 0xe0002891, 0x73ef: 0xf0001919, - 0x73f0: 0xf0001919, 0x73f1: 0xf0001919, 0x73f2: 0xf0001919, 0x73f3: 0xf0001919, - 0x73f4: 0xe0002897, 0x73f5: 0xf0001919, 0x73f6: 0xf0001919, 0x73f7: 0xf0001919, - 0x73f8: 0xf0001919, 0x73f9: 0xf0001919, 0x73fa: 0xe000289d, 0x73fb: 0xf0001919, - 0x73fc: 0xe00028df, 0x73fd: 0xf0001919, 0x73fe: 0xe00028e5, 0x73ff: 0xf0001919, - // Block 0x1d0, offset 0x7400 - 0x7400: 0xf0001919, 0x7401: 0xf0001919, 0x7402: 0xf0001919, 0x7403: 0xe00028eb, - 0x7404: 0xf0001919, 0x7405: 0xf0001919, 0x7406: 0xe00028f1, 0x7407: 0xf0001919, - 0x7408: 0xf0001919, 0x7409: 0xf0001919, 0x740a: 0xf0001919, 0x740b: 0xf0001919, - 0x740c: 0xf0001919, 0x740d: 0xf0001919, 0x740e: 0xe00028fa, 0x740f: 0xf0001919, - 0x7410: 0x003a90a7, 0x7411: 0xf0001919, 0x7412: 0xf0001919, 0x7413: 0xf0001919, - 0x7414: 0xf0001919, 0x7415: 0xe0002903, 0x7416: 0xf0001919, 0x7417: 0xe000155c, - 0x7418: 0xe0001562, 0x7419: 0xe0001568, 0x741a: 0xe0001571, 0x741b: 0xe0001580, - 0x741c: 0xf0001717, 0x741d: 0xf0001717, 0x741e: 0xf0001717, 0x741f: 0xf0001717, - 0x7420: 0xf0001717, 0x7421: 0xf0001717, 0x7422: 0xf0001717, 0x7423: 0xf0001717, - 0x7424: 0xf0001717, 0x7425: 0xf0001717, 0x7426: 0xf0001717, 0x7427: 0xf0001717, - 0x7428: 0xf0001717, 0x7429: 0xf0001717, 0x742a: 0xf0001717, 0x742b: 0xf0001717, - 0x742c: 0xf0001717, 0x742d: 0xf0001717, 0x742e: 0xf0001717, 0x742f: 0xf0001717, - 0x7430: 0xf0001717, 0x7431: 0xf0001717, 0x7432: 0xf0001717, 0x7433: 0xf0001717, - 0x7434: 0xf0001717, 0x7435: 0xf0001717, 0x7436: 0xf0001717, 0x7437: 0xf0001717, - 0x7438: 0xf0001717, 0x7439: 0xf0001717, 0x743a: 0xf0001717, 0x743b: 0xf0001717, - 0x743c: 0xf0001717, 0x743d: 0xf0001717, 0x743e: 0xf0001717, 0x743f: 0xf0001717, - // Block 0x1d1, offset 0x7440 - 0x7440: 0xf0001717, 0x7441: 0xf0001717, 0x7442: 0xf0001717, 0x7443: 0xf0001717, - 0x7444: 0xf0001717, 0x7445: 0xf0001717, 0x7446: 0xf0001717, 0x7447: 0xf0001717, - 0x7448: 0xf0001717, 0x7449: 0xf0001717, 0x744a: 0xf0001717, 0x744b: 0xf0001717, - 0x744c: 0xf0001717, 0x744d: 0xf0001717, 0x744e: 0xf0001717, 0x744f: 0xf0001717, - 0x7450: 0xf0001717, 0x7451: 0xf0001717, 0x7452: 0xf0001717, 0x7453: 0xf0001717, - 0x7454: 0xf0001717, 0x7455: 0xf0001717, 0x7456: 0xf0001717, 0x7457: 0xf0001717, - 0x7458: 0xf0001717, 0x7459: 0xf0001717, 0x745a: 0xf0001717, 0x745b: 0xf0001717, - 0x745c: 0xf0001717, 0x745d: 0xf0001717, 0x745e: 0xf0001717, 0x745f: 0xe0001574, - 0x7460: 0xe0001583, 0x7461: 0xf0001818, 0x7462: 0xf0001818, 0x7463: 0xf0001818, - 0x7464: 0xf0001818, 0x7465: 0xf0001818, 0x7466: 0xf0001818, 0x7467: 0xf0001818, - 0x7468: 0xf0001818, 0x7469: 0xf0001818, 0x746a: 0xf0001818, 0x746b: 0xf0001818, - 0x746c: 0xf0001818, 0x746d: 0xf0001818, 0x746e: 0xf0001818, 0x746f: 0xf0001818, - 0x7470: 0xf0001818, 0x7471: 0xf0001818, 0x7472: 0xf0001818, 0x7473: 0xf0001818, - 0x7474: 0xf0001818, 0x7475: 0xe00028d0, 0x7476: 0xf0001a1a, 0x7477: 0xe00028d6, - 0x7478: 0xf0001a1a, 0x7479: 0xe00028dc, 0x747a: 0xf0001a1a, 0x747b: 0xe00028b8, - 0x747c: 0xf0001a1a, 0x747d: 0xe00028be, 0x747e: 0xf0001a1a, 0x747f: 0xe00028ac, - // Block 0x1d2, offset 0x7480 - 0x7480: 0xf0001a1a, 0x7481: 0xe00028a6, 0x7482: 0xf0001a1a, 0x7483: 0xe00028b2, - 0x7484: 0xf0001a1a, 0x7485: 0xe00028c4, 0x7486: 0xf0001a1a, 0x7487: 0xe00028ca, - 0x7488: 0xf0001a1a, 0x7489: 0xf0001a1a, 0x748a: 0xf0001a1a, 0x748b: 0xf0001a1a, - 0x748c: 0xf0001a1a, 0x748d: 0xf0001a1a, 0x748e: 0xf0001a1a, 0x748f: 0xf0001a1a, - 0x7490: 0xf0001a1a, 0x7491: 0xe00028cd, 0x7492: 0xf0001919, 0x7493: 0xe00028d3, - 0x7494: 0xf0001919, 0x7495: 0xe00028d9, 0x7496: 0xf0001919, 0x7497: 0xe00028b5, - 0x7498: 0xf0001919, 0x7499: 0xe00028bb, 0x749a: 0xf0001919, 0x749b: 0xe00028a9, - 0x749c: 0xf0001919, 0x749d: 0xe00028a3, 0x749e: 0xf0001919, 0x749f: 0xe00028af, - 0x74a0: 0xf0001919, 0x74a1: 0xe00028c1, 0x74a2: 0xf0001919, 0x74a3: 0xe00028c7, - 0x74a4: 0xf0001919, 0x74a5: 0xf0001919, 0x74a6: 0xf0001919, 0x74a7: 0xf0001919, - 0x74a8: 0xf0001919, 0x74a9: 0xf0001919, 0x74aa: 0xf0001919, 0x74ab: 0xf0001919, - 0x74ac: 0xf0001919, 0x74ad: 0xf0001717, 0x74ae: 0xf0001717, 0x74af: 0xf0001717, - 0x74b0: 0xf0001717, 0x74b1: 0xf0001717, 0x74b2: 0xf0001717, 0x74b3: 0xf0001717, - 0x74b4: 0xf0001818, 0x74b5: 0xf0001818, 0x74b6: 0xf0001818, 0x74b7: 0xf0001818, - 0x74b8: 0xf0001818, 0x74b9: 0xf0001818, 0x74ba: 0xf0001818, 0x74bb: 0xf0001818, - 0x74bc: 0xf0001919, 0x74bd: 0xf0001a1a, 0x74be: 0x4004c020, 0x74bf: 0x4004c220, - // Block 0x1d3, offset 0x74c0 - 0x74c0: 0x00391c9a, 0x74c1: 0x00391e9a, 0x74c2: 0x00391e99, 0x74c3: 0x0039209a, - 0x74c4: 0x00392099, 0x74c5: 0x0039269a, 0x74c6: 0x00392699, 0x74c7: 0x0039289a, - 0x74c8: 0x00392899, 0x74c9: 0x0039309a, 0x74ca: 0x00393099, 0x74cb: 0x00393097, - 0x74cc: 0x00393098, 0x74cd: 0x0039389a, 0x74ce: 0x00393899, 0x74cf: 0x00393c9a, - 0x74d0: 0x00393c99, 0x74d1: 0x00393c97, 0x74d2: 0x00393c98, 0x74d3: 0x003956a4, - 0x74d4: 0x003956a3, 0x74d5: 0x0039569a, 0x74d6: 0x00395699, 0x74d7: 0x00395697, - 0x74d8: 0x00395698, 0x74d9: 0x0039589a, 0x74da: 0x00395899, 0x74db: 0x00395897, - 0x74dc: 0x00395898, 0x74dd: 0x0039649a, 0x74de: 0x00396499, 0x74df: 0x00396497, - 0x74e0: 0x00396498, 0x74e1: 0x0039729a, 0x74e2: 0x00397299, 0x74e3: 0x00397297, - 0x74e4: 0x00397298, 0x74e5: 0x0039749a, 0x74e6: 0x00397499, 0x74e7: 0x00397497, - 0x74e8: 0x00397498, 0x74e9: 0x0039889a, 0x74ea: 0x00398899, 0x74eb: 0x00398a9a, - 0x74ec: 0x00398a99, 0x74ed: 0x0039a49a, 0x74ee: 0x0039a499, 0x74ef: 0x0039a69a, - 0x74f0: 0x0039a699, 0x74f1: 0x0039c69a, 0x74f2: 0x0039c699, 0x74f3: 0x0039c697, - 0x74f4: 0x0039c698, 0x74f5: 0x0039c89a, 0x74f6: 0x0039c899, 0x74f7: 0x0039c897, - 0x74f8: 0x0039c898, 0x74f9: 0x0039dc9a, 0x74fa: 0x0039dc99, 0x74fb: 0x0039dc97, - 0x74fc: 0x0039dc98, 0x74fd: 0x0039de9a, 0x74fe: 0x0039de99, 0x74ff: 0x0039de97, - // Block 0x1d4, offset 0x7500 - 0x7500: 0x0039de98, 0x7501: 0x0039e69a, 0x7502: 0x0039e699, 0x7503: 0x0039e697, - 0x7504: 0x0039e698, 0x7505: 0x0039e89a, 0x7506: 0x0039e899, 0x7507: 0x0039e897, - 0x7508: 0x0039e898, 0x7509: 0x0039ee9a, 0x750a: 0x0039ee99, 0x750b: 0x0039ee97, - 0x750c: 0x0039ee98, 0x750d: 0x0039f09a, 0x750e: 0x0039f099, 0x750f: 0x0039f097, - 0x7510: 0x0039f098, 0x7511: 0x0039fc9a, 0x7512: 0x0039fc99, 0x7513: 0x0039fc97, - 0x7514: 0x0039fc98, 0x7515: 0x003a129a, 0x7516: 0x003a1299, 0x7517: 0x003a1297, - 0x7518: 0x003a1298, 0x7519: 0x003a1a9a, 0x751a: 0x003a1a99, 0x751b: 0x003a1a97, - 0x751c: 0x003a1a98, 0x751d: 0x003a409a, 0x751e: 0x003a4099, 0x751f: 0x003a4097, - 0x7520: 0x003a4098, 0x7521: 0x003a4e9a, 0x7522: 0x003a4e99, 0x7523: 0x003a4e97, - 0x7524: 0x003a4e98, 0x7525: 0x003a569a, 0x7526: 0x003a5699, 0x7527: 0x003a5697, - 0x7528: 0x003a5698, 0x7529: 0x003a689a, 0x752a: 0x003a6899, 0x752b: 0x003a6897, - 0x752c: 0x003a6898, 0x752d: 0x003a749a, 0x752e: 0x003a7499, 0x752f: 0x003a90a6, - 0x7530: 0x003a90a5, 0x7531: 0x003a909a, 0x7532: 0x003a9099, 0x7533: 0x003a9097, - 0x7534: 0x003a9098, 0x7535: 0xe0001732, 0x7536: 0xe000172f, 0x7537: 0xe0001738, - 0x7538: 0xe0001735, 0x7539: 0xe000173e, 0x753a: 0xe000173b, 0x753b: 0xf0001a1a, - 0x753c: 0xf0001919, 0x753f: 0xa0000000, - // Block 0x1d5, offset 0x7540 - 0x7541: 0x40409a20, 0x7542: 0x40409820, 0x7543: 0x40409c20, - 0x7545: 0x40407c20, 0x7546: 0x40407e20, 0x7547: 0x40408020, - 0x7548: 0x40408220, 0x7549: 0x40408420, 0x754a: 0x40408620, 0x754b: 0x40408820, - 0x754c: 0x40408c20, 0x754f: 0x40409020, - 0x7550: 0x40409220, 0x7553: 0x40409420, - 0x7554: 0x40409620, 0x7555: 0xc33108b1, 0x7556: 0x40409a20, 0x7557: 0x40409c20, - 0x7558: 0x40409e20, 0x7559: 0x4040a020, 0x755a: 0x4040a220, 0x755b: 0x4040a420, - 0x755c: 0x4040a620, 0x755d: 0x4040a820, 0x755e: 0x4040aa20, 0x755f: 0x4040ac20, - 0x7560: 0x4040ae20, 0x7561: 0x4040b020, 0x7562: 0x4040b220, 0x7563: 0x4040b420, - 0x7564: 0xc32f0851, 0x7565: 0x4040b820, 0x7566: 0x4040ba20, 0x7567: 0x4040bc20, - 0x7568: 0x4040be20, 0x756a: 0x4040c020, 0x756b: 0x4040c220, - 0x756c: 0x4040c420, 0x756d: 0x4040c620, 0x756e: 0x4040c820, 0x756f: 0x4040ca20, - 0x7570: 0x4040cc20, 0x7572: 0x4040d020, - 0x7576: 0x4040d420, 0x7577: 0x4040d620, - 0x7578: 0x4040d820, 0x7579: 0x4040da20, - 0x757c: 0xa070f102, 0x757d: 0x4040dc20, 0x757e: 0x4040de20, 0x757f: 0x4040e020, - // Block 0x1d6, offset 0x7580 - 0x7580: 0x4040e220, 0x7581: 0x4040e420, 0x7582: 0x4040e620, 0x7583: 0x4040e820, - 0x7584: 0x4040ea20, 0x7587: 0xc05a0191, - 0x7588: 0x4040f220, 0x758b: 0x4040f420, - 0x758c: 0x4040f620, 0x758d: 0x8209207c, 0x758e: 0x4040b420, - 0x7597: 0x4040fa20, - 0x759c: 0xe000183f, 0x759d: 0xe0001842, 0x759f: 0xe0001848, - 0x75a0: 0x40408a20, 0x75a1: 0x40408e20, 0x75a2: 0x4040ec20, 0x75a3: 0x4040ee20, - 0x75a6: 0xe000016d, 0x75a7: 0xe00001fb, - 0x75a8: 0xe0000316, 0x75a9: 0xe00003f0, 0x75aa: 0xe00004cb, 0x75ab: 0xe0000595, - 0x75ac: 0xe0000660, 0x75ad: 0xe0000708, 0x75ae: 0xe00007b4, 0x75af: 0xe0000859, - 0x75b0: 0x4040ce20, 0x75b1: 0x4040d220, 0x75b2: 0x4027e820, 0x75b3: 0x4027ea20, - 0x75b4: 0x40283020, 0x75b5: 0x40283220, 0x75b6: 0x40283420, 0x75b7: 0x40283620, - 0x75b8: 0x40283820, 0x75b9: 0x40283a20, 0x75ba: 0x40073a20, 0x75bb: 0x4027ec20, - // Block 0x1d7, offset 0x75c0 - 0x75c0: 0xa0000000, 0x75c1: 0xa0000000, 0x75c2: 0xa0000000, 0x75c3: 0xa0000000, - 0x75c4: 0xa0000000, 0x75c5: 0xa0000000, 0x75c6: 0xa0000000, 0x75c7: 0xa0000000, - 0x75c8: 0xa0000000, 0x75c9: 0x40020020, 0x75ca: 0x40020220, 0x75cb: 0x40020420, - 0x75cc: 0x40020620, 0x75cd: 0x40020820, 0x75ce: 0xa0000000, 0x75cf: 0xa0000000, - 0x75d0: 0xa0000000, 0x75d1: 0xa0000000, 0x75d2: 0xa0000000, 0x75d3: 0xa0000000, - 0x75d4: 0xa0000000, 0x75d5: 0xa0000000, 0x75d6: 0xa0000000, 0x75d7: 0xa0000000, - 0x75d8: 0xa0000000, 0x75d9: 0xa0000000, 0x75da: 0xa0000000, 0x75db: 0xa0000000, - 0x75dc: 0xa0000000, 0x75dd: 0xa0000000, 0x75de: 0xa0000000, 0x75df: 0xa0000000, - 0x75e0: 0x40021220, 0x75e1: 0x4002ba20, 0x75e2: 0x4003e020, 0x75e3: 0x4004ea20, - 0x75e4: 0x4027de20, 0x75e5: 0x4004ec20, 0x75e6: 0x4004e620, 0x75e7: 0x4003d220, - 0x75e8: 0x4003f420, 0x75e9: 0x4003f620, 0x75ea: 0x4004d820, 0x75eb: 0x40093820, - 0x75ec: 0x40024020, 0x75ed: 0x40021a20, 0x75ee: 0x4002e420, 0x75ef: 0x4004e220, - 0x75f0: 0x4029cc20, 0x75f1: 0x4029ce20, 0x75f2: 0x4029d020, 0x75f3: 0x4029d220, - 0x75f4: 0x4029d420, 0x75f5: 0x4029d620, 0x75f6: 0x4029d820, 0x75f7: 0x4029da20, - 0x75f8: 0x4029dc20, 0x75f9: 0x4029de20, 0x75fa: 0x40026c20, 0x75fb: 0x40026220, - 0x75fc: 0x40094020, 0x75fd: 0x40094220, 0x75fe: 0x40094420, 0x75ff: 0x4002c420, - // Block 0x1d8, offset 0x7600 - 0x7600: 0x4004d620, 0x7601: 0x002bde88, 0x7602: 0x002c0a88, 0x7603: 0xc3350911, - 0x7604: 0x002c6288, 0x7605: 0x002c9888, 0x7606: 0x002d0888, 0x7607: 0xc33900d1, - 0x7608: 0x002d6888, 0x7609: 0xc33b0931, 0x760a: 0x002dcc88, 0x760b: 0x002dfe88, - 0x760c: 0xc0030002, 0x760d: 0x002e8288, 0x760e: 0x002e9e88, 0x760f: 0xc33f0071, - 0x7610: 0x002f2c88, 0x7611: 0x002e0083, 0x7612: 0x002f7a88, 0x7613: 0xc3430911, - 0x7614: 0x00302c88, 0x7615: 0xc3470071, 0x7616: 0x0030be88, 0x7617: 0x0030e288, - 0x7618: 0x002d6a83, 0x7619: 0x00310088, 0x761a: 0x00312a88, 0x761b: 0x4003f820, - 0x761c: 0x4004e420, 0x761d: 0x4003fa20, 0x761e: 0x40062420, 0x761f: 0x40021620, - 0x7620: 0x40061e20, 0x7621: 0x402bde20, 0x7622: 0x402c0a20, 0x7623: 0xc3330911, - 0x7624: 0x402c6220, 0x7625: 0x402c9820, 0x7626: 0x402d0820, 0x7627: 0xc33700d1, - 0x7628: 0x402d6820, 0x7629: 0x402d9a20, 0x762a: 0x402dcc20, 0x762b: 0x402dfe20, - 0x762c: 0xc0000002, 0x762d: 0x402e8220, 0x762e: 0x402e9e20, 0x762f: 0xc33d0071, - 0x7630: 0x402f2c20, 0x7631: 0x402e0020, 0x7632: 0x402f7a20, 0x7633: 0xc3410911, - 0x7634: 0x40302c20, 0x7635: 0xc3450071, 0x7636: 0x4030be20, 0x7637: 0x4030e220, - 0x7638: 0x402d6a20, 0x7639: 0x40310020, 0x763a: 0x40312a20, 0x763b: 0x4003fc20, - 0x763c: 0x40094820, 0x763d: 0x4003fe20, 0x763e: 0x40094c20, 0x763f: 0xa0000000, - // Block 0x1d9, offset 0x7640 - 0x7640: 0xe00008f5, 0x7641: 0xe00008ef, 0x7642: 0xe0000921, 0x7643: 0xe0000969, - 0x7644: 0xe000095b, 0x7645: 0xe000094d, 0x7646: 0xe00009dd, 0x7647: 0x002c3c83, - 0x7648: 0xe0000ae8, 0x7649: 0xe0000ae2, 0x764a: 0xe0000af4, 0x764b: 0xe0000b20, - 0x764c: 0xe0002918, 0x764d: 0xe0002915, 0x764e: 0xe000291e, 0x764f: 0xe0002924, - 0x7650: 0xe0000ab3, 0x7651: 0xe0000d63, 0x7652: 0xe0000d9a, 0x7653: 0xe0000d94, - 0x7654: 0xe0000da6, 0x7655: 0xe0000de6, 0x7656: 0x002ee483, 0x7657: 0x40093e20, - 0x7658: 0xe0000e12, 0x7659: 0xe0000fe1, 0x765a: 0xe0000fdb, 0x765b: 0xe0000fed, - 0x765c: 0x00306e83, 0x765d: 0xe0001102, 0x765e: 0x00318888, 0x765f: 0xe0000f7b, - 0x7660: 0xe00008f2, 0x7661: 0xe00008ec, 0x7662: 0xe000091e, 0x7663: 0xe0000966, - 0x7664: 0xe0000958, 0x7665: 0xe000094a, 0x7666: 0xe00009d5, 0x7667: 0x402c3c20, - 0x7668: 0xe0000ae5, 0x7669: 0xe0000adf, 0x766a: 0xe0000af1, 0x766b: 0xe0000b1d, - 0x766c: 0xe0000c28, 0x766d: 0xe0000c22, 0x766e: 0xe0000c34, 0x766f: 0xe0000c40, - 0x7670: 0xe0000aad, 0x7671: 0xe0000d60, 0x7672: 0xe0000d97, 0x7673: 0xe0000d91, - 0x7674: 0xe0000da3, 0x7675: 0xe0000de3, 0x7676: 0x402ee420, 0x7677: 0x40093c20, - 0x7678: 0xe0000e0f, 0x7679: 0xe0000fde, 0x767a: 0xe0000fd8, 0x767b: 0xe0000fea, - 0x767c: 0x40306e20, 0x767d: 0xe00010ff, 0x767e: 0x40318820, 0x767f: 0xe0001114, - // Block 0x1da, offset 0x7680 - 0x7680: 0xe0000983, 0x7681: 0xe0000980, 0x7682: 0xe00008fb, 0x7683: 0xe00008f8, - 0x7684: 0xe000097d, 0x7685: 0xe000097a, 0x7686: 0xe0000a38, 0x7687: 0xe0000a35, - 0x7688: 0xe0000a3e, 0x7689: 0xe0000a3b, 0x768a: 0xe0000a4a, 0x768b: 0xe0000a47, - 0x768c: 0xe0000a44, 0x768d: 0xe0000a41, 0x768e: 0xe0000a86, 0x768f: 0xe0000a83, - 0x7690: 0xe0000aaa, 0x7691: 0xe0000aa7, 0x7692: 0xe0000b46, 0x7693: 0xe0000b43, - 0x7694: 0xe0000aee, 0x7695: 0xe0000aeb, 0x7696: 0xe0000b2c, 0x7697: 0xe0000b29, - 0x7698: 0xe0000b40, 0x7699: 0xe0000b3d, 0x769a: 0xe0000b1a, 0x769b: 0xe0000b17, - 0x769c: 0xe0000bb8, 0x769d: 0xe0000bb5, 0x769e: 0x002d2483, 0x769f: 0x402d2420, - 0x76a0: 0xe0000bc4, 0x76a1: 0xe0000bc1, 0x76a2: 0xe0000bca, 0x76a3: 0xe0000bc7, - 0x76a4: 0xe0000bee, 0x76a5: 0xe0000beb, 0x76a6: 0xe0000c1b, 0x76a7: 0xe0000c18, - 0x76a8: 0xe000292b, 0x76a9: 0xe0000c4e, 0x76aa: 0xe0002931, 0x76ab: 0xe0000c5d, - 0x76ac: 0xe000291b, 0x76ad: 0xe0000c2e, 0x76ae: 0xe000292e, 0x76af: 0xe0000c57, - 0x76b0: 0x002d9a83, 0x76b1: 0x402d9820, 0x76b2: 0xe00027e2, 0x76b3: 0xf0000404, - 0x76b4: 0xe0000c8a, 0x76b5: 0xe0000c87, 0x76b6: 0xe0000c9f, 0x76b7: 0xe0000c9c, - 0x76b8: 0x402f7220, 0x76b9: 0xe0000ccc, 0x76ba: 0xe0000cc9, 0x76bb: 0xe0000cd8, - 0x76bc: 0xe0000cd5, 0x76bd: 0xe0000cd2, 0x76be: 0xe0000ccf, 0x76bf: 0xe0000d04, - // Block 0x1db, offset 0x76c0 - 0x76c0: 0xe0000cfe, 0x76c1: 0xe0000cf8, 0x76c2: 0xe0000cf5, 0x76c3: 0xe0000d51, - 0x76c4: 0xe0000d4e, 0x76c5: 0xe0000d6f, 0x76c6: 0xe0000d6c, 0x76c7: 0xe0000d5d, - 0x76c8: 0xe0000d5a, 0x76c9: 0xf0000404, 0x76ca: 0x002eda88, 0x76cb: 0x402eda20, - 0x76cc: 0xe0000e2e, 0x76cd: 0xe0000e2b, 0x76ce: 0xe0000da0, 0x76cf: 0xe0000d9d, - 0x76d0: 0xe0000de0, 0x76d1: 0xe0000ddd, 0x76d2: 0xe0000e93, 0x76d3: 0xe0000e8f, - 0x76d4: 0xe0000eca, 0x76d5: 0xe0000ec7, 0x76d6: 0xe0000edc, 0x76d7: 0xe0000ed9, - 0x76d8: 0xe0000ed0, 0x76d9: 0xe0000ecd, 0x76da: 0xe0000f1f, 0x76db: 0xe0000f1c, - 0x76dc: 0xe0000f2d, 0x76dd: 0xe0000f2a, 0x76de: 0x002fe883, 0x76df: 0x402fe820, - 0x76e0: 0xe0000f33, 0x76e1: 0xe0000f30, 0x76e2: 0xe0000f99, 0x76e3: 0xe0000f96, - 0x76e4: 0xe0000f8a, 0x76e5: 0xe0000f87, 0x76e6: 0x00303688, 0x76e7: 0x40303620, - 0x76e8: 0xe000102b, 0x76e9: 0xe0001028, 0x76ea: 0xe000103f, 0x76eb: 0xe000103c, - 0x76ec: 0xe0000fe7, 0x76ed: 0xe0000fe4, 0x76ee: 0xe0000ff9, 0x76ef: 0xe0000ff6, - 0x76f0: 0xe0001025, 0x76f1: 0xe0001022, 0x76f2: 0xe0001039, 0x76f3: 0xe0001036, - 0x76f4: 0xe00010d8, 0x76f5: 0xe00010d5, 0x76f6: 0xe000110e, 0x76f7: 0xe000110b, - 0x76f8: 0xe0001117, 0x76f9: 0xe000113b, 0x76fa: 0xe0001138, 0x76fb: 0xe000114d, - 0x76fc: 0xe000114a, 0x76fd: 0xe0001147, 0x76fe: 0xe0001144, 0x76ff: 0xe0000f64, - // Block 0x1dc, offset 0x7700 - 0x7700: 0x402c1a20, 0x7701: 0x002c2a88, 0x7702: 0x002c3288, 0x7703: 0x402c3220, - 0x7704: 0x0031c488, 0x7705: 0x4031c420, 0x7706: 0x002efa88, 0x7707: 0x002c4e88, - 0x7708: 0x402c4e20, 0x7709: 0x002c7288, 0x770a: 0x002c7a88, 0x770b: 0x002c8488, - 0x770c: 0x402c8420, 0x770d: 0xe000115c, 0x770e: 0x002cae88, 0x770f: 0x002c9a83, - 0x7710: 0x002cc288, 0x7711: 0x002d1688, 0x7712: 0x402d1620, 0x7713: 0x002d4488, - 0x7714: 0x002d5888, 0x7715: 0x402d7820, 0x7716: 0x002dc288, 0x7717: 0x002db688, - 0x7718: 0x002e0a88, 0x7719: 0x402e0a20, 0x771a: 0x402e3820, 0x771b: 0x402e7220, - 0x771c: 0x0030a088, 0x771d: 0x002eb488, 0x771e: 0x402ebc20, 0x771f: 0x002f1088, - 0x7720: 0xe0000e56, 0x7721: 0xe0000e53, 0x7722: 0x002d6088, 0x7723: 0x402d6020, - 0x7724: 0x002f3e88, 0x7725: 0x402f3e20, 0x7726: 0x002f8288, 0x7727: 0x0031b488, - 0x7728: 0x4031b420, 0x7729: 0x00300888, 0x772a: 0x40301220, 0x772b: 0x40304220, - 0x772c: 0x00304a88, 0x772d: 0x40304a20, 0x772e: 0x00305288, 0x772f: 0xe000105f, - 0x7730: 0xe000105c, 0x7731: 0x0030b488, 0x7732: 0x0030cc88, 0x7733: 0x00311888, - 0x7734: 0x40311820, 0x7735: 0x00313488, 0x7736: 0x40313420, 0x7737: 0x00316488, - 0x7738: 0x00316e88, 0x7739: 0x40316e20, 0x773a: 0x40317820, 0x773b: 0x4031a620, - 0x773c: 0x0031bc88, 0x773d: 0x4031bc20, 0x773e: 0xe0000fc9, 0x773f: 0x40319420, - // Block 0x1dd, offset 0x7740 - 0x7740: 0x40321220, 0x7741: 0x40321a20, 0x7742: 0x40322220, 0x7743: 0x40322a20, - 0x7744: 0xe0000ad5, 0x7745: 0xe0000ad1, 0x7746: 0xe0000acd, 0x7747: 0xf0000a0a, - 0x7748: 0xf000040a, 0x7749: 0xf0000404, 0x774a: 0xf0000a0a, 0x774b: 0xf000040a, - 0x774c: 0xf0000404, 0x774d: 0xe0000947, 0x774e: 0xe0000944, 0x774f: 0xe0002921, - 0x7750: 0xe0000c3a, 0x7751: 0xe0000dcc, 0x7752: 0xe0000dc9, 0x7753: 0xe0000ff3, - 0x7754: 0xe0000ff0, 0x7755: 0xe0002964, 0x7756: 0xe0002961, 0x7757: 0xe0002952, - 0x7758: 0xe000294f, 0x7759: 0xe000295e, 0x775a: 0xe000295b, 0x775b: 0xe0002958, - 0x775c: 0xe0002955, 0x775d: 0x402cae20, 0x775e: 0xe0000962, 0x775f: 0xe000095e, - 0x7760: 0xe0000976, 0x7761: 0xe0000972, 0x7762: 0xe00009f4, 0x7763: 0xe00009ef, - 0x7764: 0x002d3a88, 0x7765: 0x402d3a20, 0x7766: 0xe0000bbe, 0x7767: 0xe0000bbb, - 0x7768: 0xe0000c99, 0x7769: 0xe0000c96, 0x776a: 0xe0000e20, 0x776b: 0xe0000e1d, - 0x776c: 0xe0000e27, 0x776d: 0xe0000e23, 0x776e: 0xe0001162, 0x776f: 0xe000115f, - 0x7770: 0xe0000c8d, 0x7771: 0xf0000a0a, 0x7772: 0xf000040a, 0x7773: 0xf0000404, - 0x7774: 0xe0000bac, 0x7775: 0xe0000ba9, 0x7776: 0x002d7888, 0x7777: 0x00319488, - 0x7778: 0xe0000d57, 0x7779: 0xe0000d54, 0x777a: 0xe0000954, 0x777b: 0xe0000950, - 0x777c: 0xe00009ea, 0x777d: 0xe00009e5, 0x777e: 0xe0000e19, 0x777f: 0xe0000e15, - // Block 0x1de, offset 0x7780 - 0x7780: 0xe000098f, 0x7781: 0xe000098c, 0x7782: 0xe0000995, 0x7783: 0xe0000992, - 0x7784: 0xe0000b62, 0x7785: 0xe0000b5f, 0x7786: 0xe0000b68, 0x7787: 0xe0000b65, - 0x7788: 0xe0002937, 0x7789: 0xe0000c69, 0x778a: 0xe000293a, 0x778b: 0xe0000c6f, - 0x778c: 0xe0000e4a, 0x778d: 0xe0000e47, 0x778e: 0xe0000e50, 0x778f: 0xe0000e4d, - 0x7790: 0xe0000ee8, 0x7791: 0xe0000ee5, 0x7792: 0xe0000eee, 0x7793: 0xe0000eeb, - 0x7794: 0xe0001053, 0x7795: 0xe0001050, 0x7796: 0xe0001059, 0x7797: 0xe0001056, - 0x7798: 0xe0000f61, 0x7799: 0xe0000f5e, 0x779a: 0xe0000fa5, 0x779b: 0xe0000fa2, - 0x779c: 0x00312288, 0x779d: 0x40312220, 0x779e: 0xe0000bf4, 0x779f: 0xe0000bf1, - 0x77a0: 0x002ebc88, 0x77a1: 0x402c8c20, 0x77a2: 0x002f2288, 0x77a3: 0x402f2220, - 0x77a4: 0x00314088, 0x77a5: 0x40314020, 0x77a6: 0xe000096f, 0x77a7: 0xe000096c, - 0x77a8: 0xe0000b32, 0x77a9: 0xe0000b2f, 0x77aa: 0xe000294c, 0x77ab: 0xe0002949, - 0x77ac: 0xe0000dfd, 0x77ad: 0xe0000df9, 0x77ae: 0xe0000e04, 0x77af: 0xe0000e01, - 0x77b0: 0xe0000e0b, 0x77b1: 0xe0000e07, 0x77b2: 0xe0001129, 0x77b3: 0xe0001126, - 0x77b4: 0x402e5e20, 0x77b5: 0x402ed020, 0x77b6: 0x40305a20, 0x77b7: 0x402dd420, - 0x77b8: 0xe0000abf, 0x77b9: 0xe0000ec4, 0x77ba: 0x002be888, 0x77bb: 0x002c4488, - 0x77bc: 0x402c4420, 0x77bd: 0x002e3888, 0x77be: 0x00303e88, 0x77bf: 0x402ffc20, - // Block 0x1df, offset 0x77c0 - 0x77c0: 0x40315820, 0x77c1: 0x0031d488, 0x77c2: 0x4031d420, 0x77c3: 0x002c1a88, - 0x77c4: 0x00307c88, 0x77c5: 0x0030da88, 0x77c6: 0x002ca288, 0x77c7: 0x402ca220, - 0x77c8: 0x002dde88, 0x77c9: 0x402dde20, 0x77ca: 0x002f6a88, 0x77cb: 0x402f6a20, - 0x77cc: 0x002f8e88, 0x77cd: 0x402f8e20, 0x77ce: 0x00311088, 0x77cf: 0x40311020, - 0x77d0: 0x402bf020, 0x77d1: 0x402bf820, 0x77d2: 0x402c0220, 0x77d3: 0x402c2a20, - 0x77d4: 0x402efa20, 0x77d5: 0x402c5620, 0x77d6: 0x402c7220, 0x77d7: 0x402c7a20, - 0x77d8: 0x402ccc20, 0x77d9: 0x402c9a20, 0x77da: 0x402cd420, 0x77db: 0x402cc220, - 0x77dc: 0x402cdc20, 0x77dd: 0x402ce820, 0x77de: 0x402cf020, 0x77df: 0x402dee20, - 0x77e0: 0x402d4420, 0x77e1: 0x402d2a20, 0x77e2: 0x402d3220, 0x77e3: 0x402d5820, - 0x77e4: 0x402d0020, 0x77e5: 0x40308820, 0x77e6: 0x402d8020, 0x77e7: 0x402d8e20, - 0x77e8: 0x402db620, 0x77e9: 0x402dc220, 0x77ea: 0x402daa20, 0x77eb: 0x402e4220, - 0x77ec: 0x402e4a20, 0x77ed: 0x402e5420, 0x77ee: 0x402e6820, 0x77ef: 0x4030a020, - 0x77f0: 0x4030ac20, 0x77f1: 0x402e9020, 0x77f2: 0x402eb420, 0x77f3: 0x402ec820, - 0x77f4: 0x402ea620, 0x77f5: 0x402f1020, 0x77f6: 0x402eee20, 0x77f7: 0x402f1a20, - 0x77f8: 0x402f4c20, 0x77f9: 0x402f9820, 0x77fa: 0x402fa220, 0x77fb: 0x402fac20, - 0x77fc: 0x402fb620, 0x77fd: 0x402fbe20, 0x77fe: 0x402fc620, 0x77ff: 0x402fd020, - // Block 0x1e0, offset 0x7800 - 0x7800: 0xe00009b1, 0x7801: 0xe00009ae, 0x7802: 0xe0000a22, 0x7803: 0xe0000a1f, - 0x7804: 0xe0000a28, 0x7805: 0xe0000a25, 0x7806: 0xe0000a2e, 0x7807: 0xe0000a2b, - 0x7808: 0xe000260e, 0x7809: 0xe000260b, 0x780a: 0xe0000a8c, 0x780b: 0xe0000a89, - 0x780c: 0xe0000a98, 0x780d: 0xe0000a95, 0x780e: 0xe0000aa4, 0x780f: 0xe0000aa1, - 0x7810: 0xe0000a92, 0x7811: 0xe0000a8f, 0x7812: 0xe0000a9e, 0x7813: 0xe0000a9b, - 0x7814: 0xe0000b55, 0x7815: 0xe0000b51, 0x7816: 0xe0000b4d, 0x7817: 0xe0000b49, - 0x7818: 0xe0000b7c, 0x7819: 0xe0000b79, 0x781a: 0xe0000b82, 0x781b: 0xe0000b7f, - 0x781c: 0xe0000b39, 0x781d: 0xe0000b35, 0x781e: 0xe0000b8c, 0x781f: 0xe0000b89, - 0x7820: 0xe0000bd0, 0x7821: 0xe0000bcd, 0x7822: 0xe0000c00, 0x7823: 0xe0000bfd, - 0x7824: 0xe0000c0c, 0x7825: 0xe0000c09, 0x7826: 0xe0000bfa, 0x7827: 0xe0000bf7, - 0x7828: 0xe0000c06, 0x7829: 0xe0000c03, 0x782a: 0xe0000c12, 0x782b: 0xe0000c0f, - 0x782c: 0xe0002940, 0x782d: 0xe0000c7b, 0x782e: 0xe0002927, 0x782f: 0xe0000c46, - 0x7830: 0xe0000c93, 0x7831: 0xe0000c90, 0x7832: 0xe0000cab, 0x7833: 0xe0000ca8, - 0x7834: 0xe0000cb1, 0x7835: 0xe0000cae, 0x7836: 0xe0000cde, 0x7837: 0xe0000cdb, - 0x7838: 0xe0000ce5, 0x7839: 0xe0000ce1, 0x783a: 0xe0000cf2, 0x783b: 0xe0000cef, - 0x783c: 0xe0000cec, 0x783d: 0xe0000ce9, 0x783e: 0xe0000d1e, 0x783f: 0xe0000d1b, - // Block 0x1e1, offset 0x7840 - 0x7840: 0xe0000d24, 0x7841: 0xe0000d21, 0x7842: 0xe0000d2a, 0x7843: 0xe0000d27, - 0x7844: 0xe0000d69, 0x7845: 0xe0000d66, 0x7846: 0xe0000d7b, 0x7847: 0xe0000d78, - 0x7848: 0xe0000d87, 0x7849: 0xe0000d84, 0x784a: 0xe0000d81, 0x784b: 0xe0000d7e, - 0x784c: 0xe0000ded, 0x784d: 0xe0000de9, 0x784e: 0xe0002946, 0x784f: 0xe0002943, - 0x7850: 0xe0000e3d, 0x7851: 0xe0000e39, 0x7852: 0xe0000e35, 0x7853: 0xe0000e31, - 0x7854: 0xe0000ea7, 0x7855: 0xe0000ea4, 0x7856: 0xe0000ead, 0x7857: 0xe0000eaa, - 0x7858: 0xe0000ed6, 0x7859: 0xe0000ed3, 0x785a: 0xe0000ef4, 0x785b: 0xe0000ef1, - 0x785c: 0xe0000efb, 0x785d: 0xe0000ef7, 0x785e: 0xe0000f02, 0x785f: 0xe0000eff, - 0x7860: 0xe0000f41, 0x7861: 0xe0000f3e, 0x7862: 0xe0000f53, 0x7863: 0xe0000f50, - 0x7864: 0xe0000f26, 0x7865: 0xe0000f22, 0x7866: 0xe0000f3a, 0x7867: 0xe0000f36, - 0x7868: 0xe0000f5a, 0x7869: 0xe0000f56, 0x786a: 0xe0000f93, 0x786b: 0xe0000f90, - 0x786c: 0xe0000f9f, 0x786d: 0xe0000f9c, 0x786e: 0xe0000fb1, 0x786f: 0xe0000fae, - 0x7870: 0xe0000fab, 0x7871: 0xe0000fa8, 0x7872: 0xe0001093, 0x7873: 0xe0001090, - 0x7874: 0xe000109f, 0x7875: 0xe000109c, 0x7876: 0xe0001099, 0x7877: 0xe0001096, - 0x7878: 0xe0001032, 0x7879: 0xe000102e, 0x787a: 0xe0002964, 0x787b: 0xe0002961, - 0x787c: 0xe00010a9, 0x787d: 0xe00010a6, 0x787e: 0xe00010af, 0x787f: 0xe00010ac, - // Block 0x1e2, offset 0x7880 - 0x7880: 0xe00010d2, 0x7881: 0xe00010cf, 0x7882: 0xe00010cc, 0x7883: 0xe00010c9, - 0x7884: 0xe00010e1, 0x7885: 0xe00010de, 0x7886: 0xe00010e7, 0x7887: 0xe00010e4, - 0x7888: 0xe00010ed, 0x7889: 0xe00010ea, 0x788a: 0xe0002912, 0x788b: 0xe000290f, - 0x788c: 0xe000290c, 0x788d: 0xe0002909, 0x788e: 0xe0001123, 0x788f: 0xe0001120, - 0x7890: 0xe0001141, 0x7891: 0xe000113e, 0x7892: 0xe0001153, 0x7893: 0xe0001150, - 0x7894: 0xe0001159, 0x7895: 0xe0001156, 0x7896: 0xe0000c15, 0x7897: 0xe0000f8d, - 0x7898: 0xe00010db, 0x7899: 0xe0001111, 0x789a: 0xf0000404, 0x789b: 0xe0000f70, - 0x789c: 0x40300420, 0x789d: 0x40300620, 0x789e: 0xe0000f7f, 0x789f: 0x402c9620, - 0x78a0: 0xe000099b, 0x78a1: 0xe0000998, 0x78a2: 0xe0000989, 0x78a3: 0xe0000986, - 0x78a4: 0xe0000928, 0x78a5: 0xe0000924, 0x78a6: 0xe0000930, 0x78a7: 0xe000092c, - 0x78a8: 0xe0000940, 0x78a9: 0xe000093c, 0x78aa: 0xe0000938, 0x78ab: 0xe0000934, - 0x78ac: 0xe00009aa, 0x78ad: 0xe00009a6, 0x78ae: 0xe0000902, 0x78af: 0xe00008fe, - 0x78b0: 0xe000090a, 0x78b1: 0xe0000906, 0x78b2: 0xe000091a, 0x78b3: 0xe0000916, - 0x78b4: 0xe0000912, 0x78b5: 0xe000090e, 0x78b6: 0xe00009a2, 0x78b7: 0xe000099e, - 0x78b8: 0xe0000b6e, 0x78b9: 0xe0000b6b, 0x78ba: 0xe0000b5c, 0x78bb: 0xe0000b59, - 0x78bc: 0xe0000b26, 0x78bd: 0xe0000b23, 0x78be: 0xe0000afb, 0x78bf: 0xe0000af7, - // Block 0x1e3, offset 0x78c0 - 0x78c0: 0xe0000b03, 0x78c1: 0xe0000aff, 0x78c2: 0xe0000b13, 0x78c3: 0xe0000b0f, - 0x78c4: 0xe0000b0b, 0x78c5: 0xe0000b07, 0x78c6: 0xe0000b75, 0x78c7: 0xe0000b71, - 0x78c8: 0xe0002934, 0x78c9: 0xe0000c63, 0x78ca: 0xe000293d, 0x78cb: 0xe0000c75, - 0x78cc: 0xe0000e84, 0x78cd: 0xe0000e81, 0x78ce: 0xe0000e44, 0x78cf: 0xe0000e41, - 0x78d0: 0xe0000dad, 0x78d1: 0xe0000da9, 0x78d2: 0xe0000db5, 0x78d3: 0xe0000db1, - 0x78d4: 0xe0000dc5, 0x78d5: 0xe0000dc1, 0x78d6: 0xe0000dbd, 0x78d7: 0xe0000db9, - 0x78d8: 0xe0000e8b, 0x78d9: 0xe0000e87, 0x78da: 0xe0000e5d, 0x78db: 0xe0000e59, - 0x78dc: 0xe0000e65, 0x78dd: 0xe0000e61, 0x78de: 0xe0000e75, 0x78df: 0xe0000e71, - 0x78e0: 0xe0000e6d, 0x78e1: 0xe0000e69, 0x78e2: 0xe0000e7d, 0x78e3: 0xe0000e79, - 0x78e4: 0xe000108d, 0x78e5: 0xe000108a, 0x78e6: 0xe000104d, 0x78e7: 0xe000104a, - 0x78e8: 0xe0001066, 0x78e9: 0xe0001062, 0x78ea: 0xe000106e, 0x78eb: 0xe000106a, - 0x78ec: 0xe000107e, 0x78ed: 0xe000107a, 0x78ee: 0xe0001076, 0x78ef: 0xe0001072, - 0x78f0: 0xe0001086, 0x78f1: 0xe0001082, 0x78f2: 0xe0001108, 0x78f3: 0xe0001105, - 0x78f4: 0xe0001135, 0x78f5: 0xe0001132, 0x78f6: 0xe000112f, 0x78f7: 0xe000112c, - 0x78f8: 0xe000111d, 0x78f9: 0xe000111a, 0x78fa: 0xe0000d0a, 0x78fb: 0xe0000d07, - 0x78fc: 0x0030d888, 0x78fd: 0x4030d820, 0x78fe: 0x00312088, 0x78ff: 0x40312020, - // Block 0x1e4, offset 0x7900 - 0x7900: 0x00093685, 0x7901: 0x40083620, 0x7902: 0x40083820, 0x7903: 0x40083a20, - 0x7904: 0x40083c20, 0x7905: 0x002c628b, 0x7906: 0x002c6285, 0x7907: 0x002c9885, - 0x7908: 0x002d9a85, 0x7909: 0x002dcc85, 0x790a: 0x40083e20, 0x790b: 0x400a6e20, - 0x790c: 0x40084020, 0x790d: 0xe00009c4, 0x790e: 0x402d1e20, 0x790f: 0x40084220, - 0x7910: 0xe00002cb, 0x7911: 0xe00002d3, 0x7912: 0xe00002b2, 0x7913: 0xe00002bb, - 0x7914: 0xe00003cd, 0x7915: 0xe00002c3, 0x7916: 0xe00003d1, 0x7917: 0xe00004ab, - 0x7918: 0xe0000579, 0x7919: 0xe00002c7, 0x791a: 0xe0000640, 0x791b: 0xe00002cf, - 0x791c: 0xe00004af, 0x791d: 0xe0000644, 0x791e: 0xe0000798, 0x791f: 0xf0001e1e, - 0x7920: 0x002d9a8a, 0x7921: 0xe00027d4, 0x7922: 0xe00027db, 0x7923: 0xe00027ee, - 0x7924: 0x0030be8a, 0x7925: 0xe0002848, 0x7926: 0xe000284f, 0x7927: 0xe00010bb, - 0x7928: 0xe00027f4, 0x7929: 0x0030f68a, 0x792a: 0xe0002883, 0x792b: 0xe000288a, - 0x792c: 0x002e228a, 0x792d: 0x002c3a8a, 0x792e: 0x002c628a, 0x792f: 0x002e828a, - 0x7930: 0x002d9a84, 0x7931: 0xf0001f04, 0x7932: 0xf0000404, 0x7933: 0xf0001f04, - 0x7934: 0x0030be84, 0x7935: 0xf0001f04, 0x7936: 0xf0000404, 0x7937: 0xe00010b6, - 0x7938: 0xe00027f1, 0x7939: 0x0030f684, 0x793a: 0xe0002880, 0x793b: 0xe0002886, - 0x793c: 0x002e2284, 0x793d: 0x002c3a84, 0x793e: 0x002c6284, 0x793f: 0x002e8284, - // Block 0x1e5, offset 0x7940 - 0x7940: 0xe0000024, 0x7941: 0xe0000029, 0x7942: 0xe000002e, 0x7943: 0xe0000033, - 0x7944: 0xe0000038, 0x7945: 0xe000003d, 0x7946: 0xe0000042, 0x7947: 0xe0000047, - 0x7948: 0xf0001f04, 0x7949: 0xf0001f04, 0x794a: 0xf0001f04, 0x794b: 0xf0001f04, - 0x794c: 0xf0001f04, 0x794d: 0xf0001f04, 0x794e: 0xf0001f04, 0x794f: 0xf0001f04, - 0x7950: 0xf0001f04, 0x7951: 0xf0000404, 0x7952: 0xf0000404, 0x7953: 0xf0000404, - 0x7954: 0xf0000404, 0x7955: 0xf0000404, 0x7956: 0xf0000404, 0x7957: 0xf0000404, - 0x7958: 0xf0000404, 0x7959: 0xf0000404, 0x795a: 0xf0000404, 0x795b: 0xf0000404, - 0x795c: 0xf0000404, 0x795d: 0xf0000404, 0x795e: 0xf0000404, 0x795f: 0xf0000404, - 0x7960: 0xf0000404, 0x7961: 0xf0000404, 0x7962: 0xf0000404, 0x7963: 0xf0000404, - 0x7964: 0xf0000404, 0x7965: 0xf0000404, 0x7966: 0xf0000404, 0x7967: 0xf0000404, - 0x7968: 0xf0000404, 0x7969: 0xf0000404, 0x796a: 0xf0000404, 0x796b: 0xf0000404, - 0x796c: 0xe00024c7, 0x796d: 0xf0000404, 0x796e: 0xf0000404, 0x796f: 0xf0000404, - 0x7970: 0xf0000404, 0x7971: 0xf0000404, 0x7972: 0xf0000404, 0x7973: 0xe00024e7, - 0x7974: 0xf0000404, 0x7975: 0xf0000404, 0x7976: 0x002bde8c, 0x7977: 0x002c0a8c, - 0x7978: 0x002c3a8c, 0x7979: 0x002c628c, 0x797a: 0x002c988c, 0x797b: 0x002d088c, - 0x797c: 0x002d228c, 0x797d: 0x002d688c, 0x797e: 0x002d9a8c, 0x797f: 0x002dcc8c, - // Block 0x1e6, offset 0x7980 - 0x7980: 0xe000230b, 0x7981: 0xe00022f8, 0x7982: 0xe00022fc, 0x7983: 0xe0002311, - 0x7984: 0xe0002316, 0x7985: 0xe000231d, 0x7986: 0xe0002321, 0x7987: 0xe0002325, - 0x7988: 0xe000232b, 0x7989: 0xf0001c1c, 0x798a: 0xe0002330, 0x798b: 0xe000233c, - 0x798c: 0xe0002340, 0x798d: 0xe0002337, 0x798e: 0xe0002346, 0x798f: 0xe000234b, - 0x7990: 0xe000234f, 0x7991: 0xe0002353, 0x7992: 0xf0001c1c, 0x7993: 0xe000235e, - 0x7994: 0xe0002358, 0x7995: 0xf0001c1c, 0x7996: 0xe0002363, 0x7997: 0xe000236d, - 0x7998: 0xf0001f04, 0x7999: 0xf0001f04, 0x799a: 0xf0001f04, 0x799b: 0xf0001f04, - 0x799c: 0xf0001f04, 0x799d: 0xf0001f04, 0x799e: 0xf0001f04, 0x799f: 0xf0001f04, - 0x79a0: 0xf0001f04, 0x79a1: 0xf0001f04, 0x79a2: 0xf0000404, 0x79a3: 0xf0000404, - 0x79a4: 0xf0000404, 0x79a5: 0xf0000404, 0x79a6: 0xf0000404, 0x79a7: 0xf0000404, - 0x79a8: 0xf0000404, 0x79a9: 0xf0000404, 0x79aa: 0xf0000404, 0x79ab: 0xf0000404, - 0x79ac: 0xf0000404, 0x79ad: 0xf0000404, 0x79ae: 0xf0000404, 0x79af: 0xf0000404, - 0x79b0: 0xf0000404, 0x79b1: 0xe0000c1e, 0x79b2: 0xf0001c1c, 0x79b3: 0xf0001d1d, - 0x79b4: 0xe0000a31, 0x79b5: 0xf0001d1c, 0x79b6: 0xf0001c1c, 0x79b7: 0xf0001c1c, - 0x79b8: 0xe0000ac2, 0x79b9: 0xe0000ac6, 0x79ba: 0xe00027e8, 0x79bb: 0xf0001c1c, - 0x79bc: 0xf0001c1c, 0x79bd: 0xf0001c1c, 0x79be: 0xf0001c1c, 0x79bf: 0xe0002431, - // Block 0x1e7, offset 0x79c0 - 0x79c0: 0xf0001d1c, 0x79c1: 0xf0001d1d, 0x79c2: 0xe00009b7, 0x79c3: 0xe00024f3, - 0x79c4: 0xf0001c1c, 0x79c5: 0xf0001c1c, 0x79c6: 0xe0000a66, 0x79c7: 0xe0000a7a, - 0x79c8: 0xf0001d1c, 0x79c9: 0xf0001c1d, 0x79ca: 0xf0001c1c, 0x79cb: 0xf0001d1d, - 0x79cc: 0xf0001c1c, 0x79cd: 0xf0001d1d, 0x79ce: 0xf0001d1d, 0x79cf: 0xf0001c1c, - 0x79d0: 0xf0001c1c, 0x79d1: 0xf0001c1c, 0x79d2: 0xe0000d0d, 0x79d3: 0xe0002818, - 0x79d4: 0xf0001c1c, 0x79d5: 0xe0000d3a, 0x79d6: 0xe0000d46, 0x79d7: 0xf0001d1d, - 0x79d8: 0xe0000eb0, 0x79d9: 0xe0000eb8, 0x79da: 0xf0001d1d, 0x79db: 0xf0001c1c, - 0x79dc: 0xf0001c1d, 0x79dd: 0xf0001c1d, 0x79de: 0xe00010b2, 0x79df: 0xe00009c8, - 0x79e0: 0xf0001f04, 0x79e1: 0xf0001f04, 0x79e2: 0xf0001f04, 0x79e3: 0xf0001f04, - 0x79e4: 0xf0001f04, 0x79e5: 0xf0001f04, 0x79e6: 0xf0001f04, 0x79e7: 0xf0001f04, - 0x79e8: 0xf0001f04, 0x79e9: 0xf0000404, 0x79ea: 0xf0000404, 0x79eb: 0xf0000404, - 0x79ec: 0xf0000404, 0x79ed: 0xf0000404, 0x79ee: 0xf0000404, 0x79ef: 0xf0000404, - 0x79f0: 0xf0000404, 0x79f1: 0xf0000404, 0x79f2: 0xf0000404, 0x79f3: 0xf0000404, - 0x79f4: 0xf0000404, 0x79f5: 0xf0000404, 0x79f6: 0xf0000404, 0x79f7: 0xf0000404, - 0x79f8: 0xf0000404, 0x79f9: 0xf0000404, 0x79fa: 0xf0000404, 0x79fb: 0xf0000404, - 0x79fc: 0xf0000404, 0x79fd: 0xf0000404, 0x79fe: 0xf0000404, 0x79ff: 0xe0000bdf, - // Block 0x1e8, offset 0x7a00 - 0x7a00: 0xf0001f04, 0x7a01: 0xf0001f04, 0x7a02: 0xf0001f04, 0x7a03: 0xf0001f04, - 0x7a04: 0xf0001f04, 0x7a05: 0xf0001f04, 0x7a06: 0xf0001f04, 0x7a07: 0xf0001f04, - 0x7a08: 0xf0001f04, 0x7a09: 0xf0001f04, 0x7a0a: 0xf0001f04, - 0x7a10: 0xf0000a04, 0x7a11: 0xf0000a04, 0x7a12: 0xf0000a04, 0x7a13: 0xf0000a04, - 0x7a14: 0xf0000a04, 0x7a15: 0xf0000a04, 0x7a16: 0xf0000a04, 0x7a17: 0xf0000a04, - 0x7a18: 0xe00024b3, 0x7a19: 0xf0000a04, 0x7a1a: 0xf0000a04, 0x7a1b: 0xf0000a04, - 0x7a1c: 0xf0000a04, 0x7a1d: 0xf0000a04, 0x7a1e: 0xf0000a04, 0x7a1f: 0xf0000a04, - 0x7a20: 0xe00024cb, 0x7a21: 0xf0000a04, 0x7a22: 0xf0000a04, 0x7a23: 0xf0000a04, - 0x7a24: 0xf0000a04, 0x7a25: 0xf0000a04, 0x7a26: 0xf0000a04, 0x7a27: 0xe00024eb, - 0x7a28: 0xf0000a04, 0x7a29: 0xf0000a04, 0x7a2a: 0xf0000a04, 0x7a2b: 0x002c3a8c, - 0x7a2c: 0x002f7a8c, 0x7a2d: 0xf0000c0c, 0x7a2e: 0xf0000c0c, - 0x7a30: 0x002bde9d, 0x7a31: 0x002c0a9d, 0x7a32: 0x002c3a9d, 0x7a33: 0x002c629d, - 0x7a34: 0x002c989d, 0x7a35: 0x002d089d, 0x7a36: 0x002d229d, 0x7a37: 0x002d689d, - 0x7a38: 0x002d9a9d, 0x7a39: 0x002dcc9d, 0x7a3a: 0x002dfe9d, 0x7a3b: 0x002e229d, - 0x7a3c: 0x002e829d, 0x7a3d: 0x002e9e9d, 0x7a3e: 0x002ee29d, 0x7a3f: 0x002f2c9d, - // Block 0x1e9, offset 0x7a40 - 0x7a40: 0xe00014bd, 0x7a41: 0x0033b483, 0x7a42: 0x00339688, 0x7a43: 0x0033a288, - 0x7a44: 0x0033c288, 0x7a45: 0x0033fc88, 0x7a46: 0xc02a0071, 0x7a47: 0x00343688, - 0x7a48: 0x00344688, 0x7a49: 0x00349a88, 0x7a4a: 0x0034e488, 0x7a4b: 0x00356288, - 0x7a4c: 0x00356a88, 0x7a4d: 0xe00014cf, 0x7a4e: 0x00357a88, 0x7a4f: 0x00365488, - 0x7a50: 0xc0090041, 0x7a51: 0x00335288, 0x7a52: 0x00335a88, 0x7a53: 0xc0130092, - 0x7a54: 0x00338a88, 0x7a55: 0xc34c0041, 0x7a56: 0xc01c0071, 0x7a57: 0xc0200071, - 0x7a58: 0xc0250041, 0x7a59: 0x00343e88, 0x7a5a: 0xc0370092, 0x7a5b: 0x00348488, - 0x7a5c: 0x0034a888, 0x7a5d: 0x0034ba88, 0x7a5e: 0xc02e0071, 0x7a5f: 0x00350e88, - 0x7a60: 0x00352888, 0x7a61: 0x00353a88, 0x7a62: 0x00354c88, 0x7a63: 0xc03e00f1, - 0x7a64: 0x0035ac88, 0x7a65: 0x0035b488, 0x7a66: 0x00360288, 0x7a67: 0xc0440071, - 0x7a68: 0x00365c88, 0x7a69: 0x00366688, 0x7a6a: 0x00367488, 0x7a6b: 0xc0480071, - 0x7a6c: 0x00368e88, 0x7a6d: 0xc04c0071, 0x7a6e: 0x0036b888, 0x7a6f: 0x0036c488, - 0x7a70: 0xc0060041, 0x7a71: 0x40335220, 0x7a72: 0x40335a20, 0x7a73: 0xc0100092, - 0x7a74: 0x40338a20, 0x7a75: 0xc3490041, 0x7a76: 0xc01a0071, 0x7a77: 0xc01e0071, - 0x7a78: 0xc0220041, 0x7a79: 0x40343e20, 0x7a7a: 0xc0340092, 0x7a7b: 0x40348420, - 0x7a7c: 0x4034a820, 0x7a7d: 0x4034ba20, 0x7a7e: 0xc02c0071, 0x7a7f: 0x40350e20, - // Block 0x1ea, offset 0x7a80 - 0x7a80: 0x40352820, 0x7a81: 0x40353a20, 0x7a82: 0x40354c20, 0x7a83: 0xc03a00f1, - 0x7a84: 0x4035ac20, 0x7a85: 0x4035b420, 0x7a86: 0x40360220, 0x7a87: 0xc0420071, - 0x7a88: 0x40365c20, 0x7a89: 0x40366620, 0x7a8a: 0x40367420, 0x7a8b: 0xc0460071, - 0x7a8c: 0x40368e20, 0x7a8d: 0xc04a0071, 0x7a8e: 0x4036b820, 0x7a8f: 0x4036c420, - 0x7a90: 0xe00014ba, 0x7a91: 0x4033b420, 0x7a92: 0x40339620, 0x7a93: 0x4033a220, - 0x7a94: 0x4033c220, 0x7a95: 0x4033fc20, 0x7a96: 0xc0280071, 0x7a97: 0x40343620, - 0x7a98: 0x40344620, 0x7a99: 0x40349a20, 0x7a9a: 0x4034e420, 0x7a9b: 0x40356220, - 0x7a9c: 0x40356a20, 0x7a9d: 0xe00014cc, 0x7a9e: 0x40357a20, 0x7a9f: 0x40365420, - 0x7aa0: 0x0035e088, 0x7aa1: 0x4035e020, 0x7aa2: 0x00369e88, 0x7aa3: 0x40369e20, - 0x7aa4: 0x0036ce88, 0x7aa5: 0x4036ce20, 0x7aa6: 0x0036d688, 0x7aa7: 0x4036d620, - 0x7aa8: 0x0036ea88, 0x7aa9: 0x4036ea20, 0x7aaa: 0x0036e088, 0x7aab: 0x4036e020, - 0x7aac: 0x0036f488, 0x7aad: 0x4036f420, 0x7aae: 0x0036fc88, 0x7aaf: 0x4036fc20, - 0x7ab0: 0x00370488, 0x7ab1: 0x40370420, 0x7ab2: 0x00370c88, 0x7ab3: 0x40370c20, - 0x7ab4: 0xc0500131, 0x7ab5: 0xc04e0131, 0x7ab6: 0x00371c88, 0x7ab7: 0x40371c20, - 0x7ab8: 0x0035a488, 0x7ab9: 0x4035a420, 0x7aba: 0x0035fa88, 0x7abb: 0x4035fa20, - 0x7abc: 0x0035f288, 0x7abd: 0x4035f220, 0x7abe: 0x0035e888, 0x7abf: 0x4035e820, - // Block 0x1eb, offset 0x7ac0 - 0x7ac1: 0x40409c20, 0x7ac2: 0x40409820, 0x7ac3: 0x40409a20, - 0x7ac5: 0x40407c20, 0x7ac6: 0x40407e20, 0x7ac7: 0x40408020, - 0x7ac8: 0x40408220, 0x7ac9: 0x40408420, 0x7aca: 0x40408620, 0x7acb: 0x40408820, - 0x7acc: 0x40408c20, 0x7acf: 0x40409020, - 0x7ad0: 0x40409220, 0x7ad3: 0x40409420, - 0x7ad4: 0x40409620, 0x7ad5: 0x40409820, 0x7ad6: 0x40409a20, 0x7ad7: 0x40409c20, - 0x7ad8: 0x40409e20, 0x7ad9: 0x4040a020, 0x7ada: 0x4040a220, 0x7adb: 0x4040a420, - 0x7adc: 0x4040a620, 0x7add: 0x4040a820, 0x7ade: 0x4040aa20, 0x7adf: 0x4040ac20, - 0x7ae0: 0x4040ae20, 0x7ae1: 0x4040b020, 0x7ae2: 0x4040b220, 0x7ae3: 0x4040b420, - 0x7ae4: 0x4040b620, 0x7ae5: 0x4040b820, 0x7ae6: 0x4040ba20, 0x7ae7: 0x4040bc20, - 0x7ae8: 0x4040be20, 0x7aea: 0x4040c020, 0x7aeb: 0x4040c220, - 0x7aec: 0x4040c420, 0x7aed: 0x4040c620, 0x7aee: 0x4040c820, 0x7aef: 0x4040ca20, - 0x7af0: 0x4040cc20, 0x7af2: 0x4040d020, - 0x7af6: 0x4040d420, 0x7af7: 0x4040d620, - 0x7af8: 0x4040d820, 0x7af9: 0x4040da20, - 0x7afc: 0xa070f102, 0x7afd: 0x4040dc20, 0x7afe: 0x4040de20, 0x7aff: 0x4040e020, - // Block 0x1ec, offset 0x7b00 - 0x7b00: 0xa0000000, 0x7b01: 0xa0000000, 0x7b02: 0xa0000000, 0x7b03: 0xa0000000, - 0x7b04: 0xa0000000, 0x7b05: 0xa0000000, 0x7b06: 0xa0000000, 0x7b07: 0xa0000000, - 0x7b08: 0xa0000000, 0x7b09: 0x40020020, 0x7b0a: 0x40020220, 0x7b0b: 0x40020420, - 0x7b0c: 0x40020620, 0x7b0d: 0x40020820, 0x7b0e: 0xa0000000, 0x7b0f: 0xa0000000, - 0x7b10: 0xa0000000, 0x7b11: 0xa0000000, 0x7b12: 0xa0000000, 0x7b13: 0xa0000000, - 0x7b14: 0xa0000000, 0x7b15: 0xa0000000, 0x7b16: 0xa0000000, 0x7b17: 0xa0000000, - 0x7b18: 0xa0000000, 0x7b19: 0xa0000000, 0x7b1a: 0xa0000000, 0x7b1b: 0xa0000000, - 0x7b1c: 0xa0000000, 0x7b1d: 0xa0000000, 0x7b1e: 0xa0000000, 0x7b1f: 0xa0000000, - 0x7b20: 0x40021220, 0x7b21: 0x4002ba20, 0x7b22: 0x4003e020, 0x7b23: 0x4004ea20, - 0x7b24: 0x4027de20, 0x7b25: 0x4004ec20, 0x7b26: 0x4004e620, 0x7b27: 0x4003d220, - 0x7b28: 0x4003f420, 0x7b29: 0x4003f620, 0x7b2a: 0x4004d820, 0x7b2b: 0x40093820, - 0x7b2c: 0x40024020, 0x7b2d: 0x40021a20, 0x7b2e: 0x4002e420, 0x7b2f: 0x4004e220, - 0x7b30: 0x4029cc20, 0x7b31: 0x4029ce20, 0x7b32: 0x4029d020, 0x7b33: 0x4029d220, - 0x7b34: 0x4029d420, 0x7b35: 0x4029d620, 0x7b36: 0x4029d820, 0x7b37: 0x4029da20, - 0x7b38: 0x4029dc20, 0x7b39: 0x4029de20, 0x7b3a: 0x40026c20, 0x7b3b: 0x40026220, - 0x7b3c: 0x40094020, 0x7b3d: 0x40094220, 0x7b3e: 0x40094420, 0x7b3f: 0x4002c420, - // Block 0x1ed, offset 0x7b40 - 0x7b40: 0x4004d620, 0x7b41: 0x002bde88, 0x7b42: 0x002c0a88, 0x7b43: 0x002c3a88, - 0x7b44: 0x002c6288, 0x7b45: 0x002c9888, 0x7b46: 0x002d0888, 0x7b47: 0x002d2288, - 0x7b48: 0x002d6888, 0x7b49: 0x002d9a88, 0x7b4a: 0x002dcc88, 0x7b4b: 0x002dfe88, - 0x7b4c: 0xc3520002, 0x7b4d: 0x002e8288, 0x7b4e: 0x002e9e88, 0x7b4f: 0x002ee288, - 0x7b50: 0x002f2c88, 0x7b51: 0x002f5688, 0x7b52: 0x002f7a88, 0x7b53: 0x002fe688, - 0x7b54: 0x00302c88, 0x7b55: 0x00306c88, 0x7b56: 0x0030be88, 0x7b57: 0x0030e288, - 0x7b58: 0x0030f688, 0x7b59: 0x00310088, 0x7b5a: 0x00312a88, 0x7b5b: 0x4003f820, - 0x7b5c: 0x4004e420, 0x7b5d: 0x4003fa20, 0x7b5e: 0x40062420, 0x7b5f: 0x40021620, - 0x7b60: 0x40061e20, 0x7b61: 0x402bde20, 0x7b62: 0x402c0a20, 0x7b63: 0x402c3a20, - 0x7b64: 0x402c6220, 0x7b65: 0x402c9820, 0x7b66: 0x402d0820, 0x7b67: 0x402d2220, - 0x7b68: 0x402d6820, 0x7b69: 0x402d9a20, 0x7b6a: 0x402dcc20, 0x7b6b: 0x402dfe20, - 0x7b6c: 0xc34f0002, 0x7b6d: 0x402e8220, 0x7b6e: 0x402e9e20, 0x7b6f: 0x402ee220, - 0x7b70: 0x402f2c20, 0x7b71: 0x402f5620, 0x7b72: 0x402f7a20, 0x7b73: 0x402fe620, - 0x7b74: 0x40302c20, 0x7b75: 0x40306c20, 0x7b76: 0x4030be20, 0x7b77: 0x4030e220, - 0x7b78: 0x4030f620, 0x7b79: 0x40310020, 0x7b7a: 0x40312a20, 0x7b7b: 0x4003fc20, - 0x7b7c: 0x40094820, 0x7b7d: 0x4003fe20, 0x7b7e: 0x40094c20, 0x7b7f: 0xa0000000, - // Block 0x1ee, offset 0x7b80 - 0x7b80: 0xe0000983, 0x7b81: 0xe0000980, 0x7b82: 0xe00008fb, 0x7b83: 0xe00008f8, - 0x7b84: 0xe000097d, 0x7b85: 0xe000097a, 0x7b86: 0xe0000a38, 0x7b87: 0xe0000a35, - 0x7b88: 0xe0000a3e, 0x7b89: 0xe0000a3b, 0x7b8a: 0xe0000a4a, 0x7b8b: 0xe0000a47, - 0x7b8c: 0xe0000a44, 0x7b8d: 0xe0000a41, 0x7b8e: 0xe0000a86, 0x7b8f: 0xe0000a83, - 0x7b90: 0xe0000aaa, 0x7b91: 0xe0000aa7, 0x7b92: 0xe0000b46, 0x7b93: 0xe0000b43, - 0x7b94: 0xe0000aee, 0x7b95: 0xe0000aeb, 0x7b96: 0xe0000b2c, 0x7b97: 0xe0000b29, - 0x7b98: 0xe0000b40, 0x7b99: 0xe0000b3d, 0x7b9a: 0xe0000b1a, 0x7b9b: 0xe0000b17, - 0x7b9c: 0xe0000bb8, 0x7b9d: 0xe0000bb5, 0x7b9e: 0xe0000bb2, 0x7b9f: 0xe0000baf, - 0x7ba0: 0xe0000bc4, 0x7ba1: 0xe0000bc1, 0x7ba2: 0xe0000bca, 0x7ba3: 0xe0000bc7, - 0x7ba4: 0xe0000bee, 0x7ba5: 0xe0000beb, 0x7ba6: 0xe0000c1b, 0x7ba7: 0xe0000c18, - 0x7ba8: 0xe0000c51, 0x7ba9: 0xe0000c4e, 0x7baa: 0xe0000c60, 0x7bab: 0xe0000c5d, - 0x7bac: 0xe0000c31, 0x7bad: 0xe0000c2e, 0x7bae: 0xe0000c5a, 0x7baf: 0xe0000c57, - 0x7bb0: 0xe0000c54, 0x7bb1: 0x402da220, 0x7bb2: 0xf0000a0a, 0x7bb3: 0xf0000404, - 0x7bb4: 0xe0000c8a, 0x7bb5: 0xe0000c87, 0x7bb6: 0xe0000c9f, 0x7bb7: 0xe0000c9c, - 0x7bb8: 0x402f7220, 0x7bb9: 0xe0000ccc, 0x7bba: 0xe0000cc9, 0x7bbb: 0xe0000cd8, - 0x7bbc: 0xe0000cd5, 0x7bbd: 0xe0000cd2, 0x7bbe: 0xe0000ccf, 0x7bbf: 0x002e22a3, - // Block 0x1ef, offset 0x7bc0 - 0x7bc0: 0x402e2221, 0x7bc1: 0xe0000cf8, 0x7bc2: 0xe0000cf5, 0x7bc3: 0xe0000d51, - 0x7bc4: 0xe0000d4e, 0x7bc5: 0xe0000d6f, 0x7bc6: 0xe0000d6c, 0x7bc7: 0xe0000d5d, - 0x7bc8: 0xe0000d5a, 0x7bc9: 0xf0000404, 0x7bca: 0x002eda88, 0x7bcb: 0x402eda20, - 0x7bcc: 0xe0000e2e, 0x7bcd: 0xe0000e2b, 0x7bce: 0xe0000da0, 0x7bcf: 0xe0000d9d, - 0x7bd0: 0xe0000de0, 0x7bd1: 0xe0000ddd, 0x7bd2: 0xe0000e93, 0x7bd3: 0xe0000e8f, - 0x7bd4: 0xe0000eca, 0x7bd5: 0xe0000ec7, 0x7bd6: 0xe0000edc, 0x7bd7: 0xe0000ed9, - 0x7bd8: 0xe0000ed0, 0x7bd9: 0xe0000ecd, 0x7bda: 0xe0000f1f, 0x7bdb: 0xe0000f1c, - 0x7bdc: 0xe0000f2d, 0x7bdd: 0xe0000f2a, 0x7bde: 0xe0000f47, 0x7bdf: 0xe0000f44, - 0x7be0: 0xe0000f33, 0x7be1: 0xe0000f30, 0x7be2: 0xe0000f99, 0x7be3: 0xe0000f96, - 0x7be4: 0xe0000f8a, 0x7be5: 0xe0000f87, 0x7be6: 0x00303688, 0x7be7: 0x40303620, - 0x7be8: 0xe000102b, 0x7be9: 0xe0001028, 0x7bea: 0xe000103f, 0x7beb: 0xe000103c, - 0x7bec: 0xe0000fe7, 0x7bed: 0xe0000fe4, 0x7bee: 0xe0000ff9, 0x7bef: 0xe0000ff6, - 0x7bf0: 0xe0001025, 0x7bf1: 0xe0001022, 0x7bf2: 0xe0001039, 0x7bf3: 0xe0001036, - 0x7bf4: 0xe00010d8, 0x7bf5: 0xe00010d5, 0x7bf6: 0xe000110e, 0x7bf7: 0xe000110b, - 0x7bf8: 0xe0001117, 0x7bf9: 0xe000113b, 0x7bfa: 0xe0001138, 0x7bfb: 0xe000114d, - 0x7bfc: 0xe000114a, 0x7bfd: 0xe0001147, 0x7bfe: 0xe0001144, 0x7bff: 0xe0000f64, - // Block 0x1f0, offset 0x7c00 - 0x7c00: 0xa0000000, 0x7c01: 0xa0000000, 0x7c02: 0xa0000000, 0x7c03: 0xa0000000, - 0x7c04: 0xa0000000, 0x7c05: 0xa0000000, 0x7c06: 0xa0000000, 0x7c07: 0xa0000000, - 0x7c08: 0xa0000000, 0x7c09: 0x40020020, 0x7c0a: 0x40020220, 0x7c0b: 0x40020420, - 0x7c0c: 0x40020620, 0x7c0d: 0x40020820, 0x7c0e: 0xa0000000, 0x7c0f: 0xa0000000, - 0x7c10: 0xa0000000, 0x7c11: 0xa0000000, 0x7c12: 0xa0000000, 0x7c13: 0xa0000000, - 0x7c14: 0xa0000000, 0x7c15: 0xa0000000, 0x7c16: 0xa0000000, 0x7c17: 0xa0000000, - 0x7c18: 0xa0000000, 0x7c19: 0xa0000000, 0x7c1a: 0xa0000000, 0x7c1b: 0xa0000000, - 0x7c1c: 0xa0000000, 0x7c1d: 0xa0000000, 0x7c1e: 0xa0000000, 0x7c1f: 0xa0000000, - 0x7c20: 0x40021220, 0x7c21: 0x4002ba20, 0x7c22: 0x4003e020, 0x7c23: 0x4004ea20, - 0x7c24: 0x4027de20, 0x7c25: 0x4004ec20, 0x7c26: 0x4004e620, 0x7c27: 0x4003d220, - 0x7c28: 0x4003f420, 0x7c29: 0x4003f620, 0x7c2a: 0x4004d820, 0x7c2b: 0x40093820, - 0x7c2c: 0x40024020, 0x7c2d: 0x40021a20, 0x7c2e: 0x4002e420, 0x7c2f: 0x4004e220, - 0x7c30: 0x4029cc20, 0x7c31: 0x4029ce20, 0x7c32: 0x4029d020, 0x7c33: 0x4029d220, - 0x7c34: 0x4029d420, 0x7c35: 0x4029d620, 0x7c36: 0x4029d820, 0x7c37: 0x4029da20, - 0x7c38: 0x4029dc20, 0x7c39: 0x4029de20, 0x7c3a: 0x40026c20, 0x7c3b: 0x40026220, - 0x7c3c: 0x40094020, 0x7c3d: 0x40094220, 0x7c3e: 0x40094420, 0x7c3f: 0x4002c420, - // Block 0x1f1, offset 0x7c40 - 0x7c40: 0x4004d620, 0x7c41: 0x002bde88, 0x7c42: 0x002c0a88, 0x7c43: 0xc3590953, - 0x7c44: 0x002c6288, 0x7c45: 0x002c9888, 0x7c46: 0x002d0888, 0x7c47: 0x002d2288, - 0x7c48: 0x002d6888, 0x7c49: 0x002d9a88, 0x7c4a: 0x002dcc88, 0x7c4b: 0x002dfe88, - 0x7c4c: 0xc0030002, 0x7c4d: 0x002e8288, 0x7c4e: 0x002e9e88, 0x7c4f: 0x002ee288, - 0x7c50: 0x002f2c88, 0x7c51: 0x002f5688, 0x7c52: 0xc35f0991, 0x7c53: 0xc3430991, - 0x7c54: 0x00302c88, 0x7c55: 0x00306c88, 0x7c56: 0x0030be88, 0x7c57: 0x0030e288, - 0x7c58: 0x0030f688, 0x7c59: 0x00310088, 0x7c5a: 0xc3630991, 0x7c5b: 0x4003f820, - 0x7c5c: 0x4004e420, 0x7c5d: 0x4003fa20, 0x7c5e: 0x40062420, 0x7c5f: 0x40021620, - 0x7c60: 0x40061e20, 0x7c61: 0x402bde20, 0x7c62: 0x402c0a20, 0x7c63: 0xc3550953, - 0x7c64: 0x402c6220, 0x7c65: 0x402c9820, 0x7c66: 0x402d0820, 0x7c67: 0x402d2220, - 0x7c68: 0x402d6820, 0x7c69: 0x402d9a20, 0x7c6a: 0x402dcc20, 0x7c6b: 0x402dfe20, - 0x7c6c: 0xc0000002, 0x7c6d: 0x402e8220, 0x7c6e: 0x402e9e20, 0x7c6f: 0x402ee220, - 0x7c70: 0x402f2c20, 0x7c71: 0x402f5620, 0x7c72: 0xc35d0991, 0x7c73: 0xc3410991, - 0x7c74: 0x40302c20, 0x7c75: 0x40306c20, 0x7c76: 0x4030be20, 0x7c77: 0x4030e220, - 0x7c78: 0x4030f620, 0x7c79: 0x40310020, 0x7c7a: 0xc3610991, 0x7c7b: 0x4003fc20, - 0x7c7c: 0x40094820, 0x7c7d: 0x4003fe20, 0x7c7e: 0x40094c20, 0x7c7f: 0xa0000000, - // Block 0x1f2, offset 0x7c80 - 0x7c80: 0xe0000983, 0x7c81: 0xe0000980, 0x7c82: 0xe00008fb, 0x7c83: 0xe00008f8, - 0x7c84: 0xe000097d, 0x7c85: 0xe000097a, 0x7c86: 0xe0000a38, 0x7c87: 0xe0000a35, - 0x7c88: 0xe0000a3e, 0x7c89: 0xe0000a3b, 0x7c8a: 0xe0000a4a, 0x7c8b: 0xe0000a47, - 0x7c8c: 0x002c3c83, 0x7c8d: 0x402c3c20, 0x7c8e: 0xe0000a86, 0x7c8f: 0xe0000a83, - 0x7c90: 0xe0000aaa, 0x7c91: 0xe0000aa7, 0x7c92: 0xe0000b46, 0x7c93: 0xe0000b43, - 0x7c94: 0xe0000aee, 0x7c95: 0xe0000aeb, 0x7c96: 0xe0000b2c, 0x7c97: 0xe0000b29, - 0x7c98: 0xe0000b40, 0x7c99: 0xe0000b3d, 0x7c9a: 0xe0000b1a, 0x7c9b: 0xe0000b17, - 0x7c9c: 0xe0000bb8, 0x7c9d: 0xe0000bb5, 0x7c9e: 0xe0000bb2, 0x7c9f: 0xe0000baf, - 0x7ca0: 0xe0000bc4, 0x7ca1: 0xe0000bc1, 0x7ca2: 0xe0000bca, 0x7ca3: 0xe0000bc7, - 0x7ca4: 0xe0000bee, 0x7ca5: 0xe0000beb, 0x7ca6: 0xe0000c1b, 0x7ca7: 0xe0000c18, - 0x7ca8: 0xe0000c51, 0x7ca9: 0xe0000c4e, 0x7caa: 0xe0000c60, 0x7cab: 0xe0000c5d, - 0x7cac: 0xe0000c31, 0x7cad: 0xe0000c2e, 0x7cae: 0xe0000c5a, 0x7caf: 0xe0000c57, - 0x7cb0: 0xe0000c54, 0x7cb1: 0x402da220, 0x7cb2: 0xf0000a0a, 0x7cb3: 0xf0000404, - 0x7cb4: 0xe0000c8a, 0x7cb5: 0xe0000c87, 0x7cb6: 0xe0000c9f, 0x7cb7: 0xe0000c9c, - 0x7cb8: 0x402f7220, 0x7cb9: 0xe0000ccc, 0x7cba: 0xe0000cc9, 0x7cbb: 0xe0000cd8, - 0x7cbc: 0xe0000cd5, 0x7cbd: 0xe0000cd2, 0x7cbe: 0xe0000ccf, 0x7cbf: 0xe0000d04, - // Block 0x1f3, offset 0x7cc0 - 0x7cc0: 0xe0000cfe, 0x7cc1: 0xe0000cf8, 0x7cc2: 0xe0000cf5, 0x7cc3: 0xe0000d51, - 0x7cc4: 0xe0000d4e, 0x7cc5: 0xe0000d6f, 0x7cc6: 0xe0000d6c, 0x7cc7: 0xe0000d5d, - 0x7cc8: 0xe0000d5a, 0x7cc9: 0xf0000404, 0x7cca: 0x002eda88, 0x7ccb: 0x402eda20, - 0x7ccc: 0xe0000e2e, 0x7ccd: 0xe0000e2b, 0x7cce: 0xe0000da0, 0x7ccf: 0xe0000d9d, - 0x7cd0: 0xe0000de0, 0x7cd1: 0xe0000ddd, 0x7cd2: 0xe0000e93, 0x7cd3: 0xe0000e8f, - 0x7cd4: 0xe0000eca, 0x7cd5: 0xe0000ec7, 0x7cd6: 0xe0000edc, 0x7cd7: 0xe0000ed9, - 0x7cd8: 0x002f7c83, 0x7cd9: 0x402f7c20, 0x7cda: 0xe0000f1f, 0x7cdb: 0xe0000f1c, - 0x7cdc: 0xe0000f2d, 0x7cdd: 0xe0000f2a, 0x7cde: 0xe0000f47, 0x7cdf: 0xe0000f44, - 0x7ce0: 0x002fe883, 0x7ce1: 0x402fe820, 0x7ce2: 0xe0000f99, 0x7ce3: 0xe0000f96, - 0x7ce4: 0xe0000f8a, 0x7ce5: 0xe0000f87, 0x7ce6: 0x00303688, 0x7ce7: 0x40303620, - 0x7ce8: 0xe000102b, 0x7ce9: 0xe0001028, 0x7cea: 0xe000103f, 0x7ceb: 0xe000103c, - 0x7cec: 0xe0000fe7, 0x7ced: 0xe0000fe4, 0x7cee: 0xe0000ff9, 0x7cef: 0xe0000ff6, - 0x7cf0: 0xe0001025, 0x7cf1: 0xe0001022, 0x7cf2: 0xe0001039, 0x7cf3: 0xe0001036, - 0x7cf4: 0xe00010d8, 0x7cf5: 0xe00010d5, 0x7cf6: 0xe000110e, 0x7cf7: 0xe000110b, - 0x7cf8: 0xe0001117, 0x7cf9: 0xe000113b, 0x7cfa: 0xe0001138, 0x7cfb: 0xe000114d, - 0x7cfc: 0xe000114a, 0x7cfd: 0x00312c83, 0x7cfe: 0x40312c20, 0x7cff: 0xe0000f64, - // Block 0x1f4, offset 0x7d00 - 0x7d00: 0xe0000d24, 0x7d01: 0xe0000d21, 0x7d02: 0xe0000d2a, 0x7d03: 0xe0000d27, - 0x7d04: 0xe0000d69, 0x7d05: 0xe0000d66, 0x7d06: 0xe0000d7b, 0x7d07: 0xe0000d78, - 0x7d08: 0xe0000d87, 0x7d09: 0xe0000d84, 0x7d0a: 0xe0000d81, 0x7d0b: 0xe0000d7e, - 0x7d0c: 0xe0000ded, 0x7d0d: 0xe0000de9, 0x7d0e: 0xe0000df5, 0x7d0f: 0xe0000df1, - 0x7d10: 0xe0000e3d, 0x7d11: 0xe0000e39, 0x7d12: 0xe0000e35, 0x7d13: 0xe0000e31, - 0x7d14: 0xe0000ea7, 0x7d15: 0xe0000ea4, 0x7d16: 0xe0000ead, 0x7d17: 0xe0000eaa, - 0x7d18: 0xe0000ed6, 0x7d19: 0xe0000ed3, 0x7d1a: 0xe0000ef4, 0x7d1b: 0xe0000ef1, - 0x7d1c: 0xe0000efb, 0x7d1d: 0xe0000ef7, 0x7d1e: 0xe0000f02, 0x7d1f: 0xe0000eff, - 0x7d20: 0xe0000f41, 0x7d21: 0xe0000f3e, 0x7d22: 0xe0000f53, 0x7d23: 0xe0000f50, - 0x7d24: 0xe0000f26, 0x7d25: 0xe0000f22, 0x7d26: 0xe000296a, 0x7d27: 0xe0002967, - 0x7d28: 0xe0000f5a, 0x7d29: 0xe0000f56, 0x7d2a: 0xe0000f93, 0x7d2b: 0xe0000f90, - 0x7d2c: 0xe0000f9f, 0x7d2d: 0xe0000f9c, 0x7d2e: 0xe0000fb1, 0x7d2f: 0xe0000fae, - 0x7d30: 0xe0000fab, 0x7d31: 0xe0000fa8, 0x7d32: 0xe0001093, 0x7d33: 0xe0001090, - 0x7d34: 0xe000109f, 0x7d35: 0xe000109c, 0x7d36: 0xe0001099, 0x7d37: 0xe0001096, - 0x7d38: 0xe0001032, 0x7d39: 0xe000102e, 0x7d3a: 0xe0001046, 0x7d3b: 0xe0001042, - 0x7d3c: 0xe00010a9, 0x7d3d: 0xe00010a6, 0x7d3e: 0xe00010af, 0x7d3f: 0xe00010ac, - // Block 0x1f5, offset 0x7d40 - 0x7d40: 0xa0000000, 0x7d41: 0xa0000000, 0x7d42: 0xa0000000, 0x7d43: 0xa0000000, - 0x7d44: 0xa0000000, 0x7d45: 0xa0000000, 0x7d46: 0xa0000000, 0x7d47: 0xa0000000, - 0x7d48: 0xa0000000, 0x7d49: 0x40020020, 0x7d4a: 0x40020220, 0x7d4b: 0x40020420, - 0x7d4c: 0x40020620, 0x7d4d: 0x40020820, 0x7d4e: 0xa0000000, 0x7d4f: 0xa0000000, - 0x7d50: 0xa0000000, 0x7d51: 0xa0000000, 0x7d52: 0xa0000000, 0x7d53: 0xa0000000, - 0x7d54: 0xa0000000, 0x7d55: 0xa0000000, 0x7d56: 0xa0000000, 0x7d57: 0xa0000000, - 0x7d58: 0xa0000000, 0x7d59: 0xa0000000, 0x7d5a: 0xa0000000, 0x7d5b: 0xa0000000, - 0x7d5c: 0xa0000000, 0x7d5d: 0xa0000000, 0x7d5e: 0xa0000000, 0x7d5f: 0xa0000000, - 0x7d60: 0x40021220, 0x7d61: 0x4002ba20, 0x7d62: 0x4003e020, 0x7d63: 0x4004ea20, - 0x7d64: 0x4027de20, 0x7d65: 0x4004ec20, 0x7d66: 0x4004e620, 0x7d67: 0x4003d220, - 0x7d68: 0x4003f420, 0x7d69: 0x4003f620, 0x7d6a: 0x4004d820, 0x7d6b: 0x40093820, - 0x7d6c: 0x40024020, 0x7d6d: 0x40021a20, 0x7d6e: 0x4002e420, 0x7d6f: 0x4004e220, - 0x7d70: 0x4029cc20, 0x7d71: 0x4029ce20, 0x7d72: 0x4029d020, 0x7d73: 0x4029d220, - 0x7d74: 0x4029d420, 0x7d75: 0x4029d620, 0x7d76: 0x4029d820, 0x7d77: 0x4029da20, - 0x7d78: 0x4029dc20, 0x7d79: 0x4029de20, 0x7d7a: 0x40026c20, 0x7d7b: 0x40026220, - 0x7d7c: 0x40094020, 0x7d7d: 0x40094220, 0x7d7e: 0x40094420, 0x7d7f: 0x4002c420, - // Block 0x1f6, offset 0x7d80 - 0x7d80: 0x4004d620, 0x7d81: 0x002bde88, 0x7d82: 0x002c0a88, 0x7d83: 0xc36509c2, - 0x7d84: 0xc36a09f2, 0x7d85: 0x002c9888, 0x7d86: 0xc36f0a22, 0x7d87: 0x002d2288, - 0x7d88: 0x002d6888, 0x7d89: 0x002d9a88, 0x7d8a: 0x002dcc88, 0x7d8b: 0x002dfe88, - 0x7d8c: 0xc37b0ac4, 0x7d8d: 0x002e8288, 0x7d8e: 0xc3740a52, 0x7d8f: 0x002ee288, - 0x7d90: 0xc38209c2, 0x7d91: 0x002f5688, 0x7d92: 0xc38509c2, 0x7d93: 0x002fe688, - 0x7d94: 0xc38a09c2, 0x7d95: 0x00306c88, 0x7d96: 0x0030be88, 0x7d97: 0x0030e288, - 0x7d98: 0x0030f688, 0x7d99: 0x00310088, 0x7d9a: 0x00312a88, 0x7d9b: 0x4003f820, - 0x7d9c: 0x4004e420, 0x7d9d: 0x4003fa20, 0x7d9e: 0x40062420, 0x7d9f: 0x40021620, - 0x7da0: 0x40061e20, 0x7da1: 0x402bde20, 0x7da2: 0x402c0a20, 0x7da3: 0xc33309b1, - 0x7da4: 0xc36809e1, 0x7da5: 0x402c9820, 0x7da6: 0xc36d0a11, 0x7da7: 0x402d2220, - 0x7da8: 0x402d6820, 0x7da9: 0x402d9a20, 0x7daa: 0x402dcc20, 0x7dab: 0x402dfe20, - 0x7dac: 0xc3770a73, 0x7dad: 0x402e8220, 0x7dae: 0xc3720a41, 0x7daf: 0x402ee220, - 0x7db0: 0xc38009b1, 0x7db1: 0x402f5620, 0x7db2: 0xc35d09b1, 0x7db3: 0x402fe620, - 0x7db4: 0xc38809b1, 0x7db5: 0x40306c20, 0x7db6: 0x4030be20, 0x7db7: 0x4030e220, - 0x7db8: 0x4030f620, 0x7db9: 0x40310020, 0x7dba: 0x40312a20, 0x7dbb: 0x4003fc20, - 0x7dbc: 0x40094820, 0x7dbd: 0x4003fe20, 0x7dbe: 0x40094c20, 0x7dbf: 0xa0000000, - // Block 0x1f7, offset 0x7dc0 - 0x7dc0: 0xa0000000, 0x7dc1: 0xa0000000, 0x7dc2: 0xa0000000, 0x7dc3: 0xa0000000, - 0x7dc4: 0xa0000000, 0x7dc5: 0xa0000000, 0x7dc6: 0xa0000000, 0x7dc7: 0xa0000000, - 0x7dc8: 0xa0000000, 0x7dc9: 0x40020020, 0x7dca: 0x40020220, 0x7dcb: 0x40020420, - 0x7dcc: 0x40020620, 0x7dcd: 0x40020820, 0x7dce: 0xa0000000, 0x7dcf: 0xa0000000, - 0x7dd0: 0xa0000000, 0x7dd1: 0xa0000000, 0x7dd2: 0xa0000000, 0x7dd3: 0xa0000000, - 0x7dd4: 0xa0000000, 0x7dd5: 0xa0000000, 0x7dd6: 0xa0000000, 0x7dd7: 0xa0000000, - 0x7dd8: 0xa0000000, 0x7dd9: 0xa0000000, 0x7dda: 0xa0000000, 0x7ddb: 0xa0000000, - 0x7ddc: 0xa0000000, 0x7ddd: 0xa0000000, 0x7dde: 0xa0000000, 0x7ddf: 0xa0000000, - 0x7de0: 0x40021220, 0x7de1: 0x4002ba20, 0x7de2: 0x4003e020, 0x7de3: 0x4004ea20, - 0x7de4: 0x4027de20, 0x7de5: 0x4004ec20, 0x7de6: 0x4004e620, 0x7de7: 0x4003d220, - 0x7de8: 0x4003f420, 0x7de9: 0x4003f620, 0x7dea: 0x4004d820, 0x7deb: 0x40093820, - 0x7dec: 0x40024020, 0x7ded: 0x40021a20, 0x7dee: 0x4002e420, 0x7def: 0x4004e220, - 0x7df0: 0x4029cc20, 0x7df1: 0x4029ce20, 0x7df2: 0x4029d020, 0x7df3: 0x4029d220, - 0x7df4: 0x4029d420, 0x7df5: 0x4029d620, 0x7df6: 0x4029d820, 0x7df7: 0x4029da20, - 0x7df8: 0x4029dc20, 0x7df9: 0x4029de20, 0x7dfa: 0x40026c20, 0x7dfb: 0x40026220, - 0x7dfc: 0x40094020, 0x7dfd: 0x40094220, 0x7dfe: 0x40094420, 0x7dff: 0x4002c420, - // Block 0x1f8, offset 0x7e00 - 0x7e00: 0x4004d620, 0x7e01: 0xc3970b93, 0x7e02: 0x002c0a88, 0x7e03: 0x002c3a88, - 0x7e04: 0x002c6288, 0x7e05: 0xc39e0be1, 0x7e06: 0x002d0888, 0x7e07: 0x002d2288, - 0x7e08: 0x002d6888, 0x7e09: 0x002d9a88, 0x7e0a: 0x002dcc88, 0x7e0b: 0x002dfe88, - 0x7e0c: 0xc0030002, 0x7e0d: 0x002e8288, 0x7e0e: 0x002e9e88, 0x7e0f: 0xc3a30b21, - 0x7e10: 0x002f2c88, 0x7e11: 0x002f5688, 0x7e12: 0x002f7a88, 0x7e13: 0x002fe688, - 0x7e14: 0x00302c88, 0x7e15: 0xc3900b21, 0x7e16: 0x0030be88, 0x7e17: 0x0030e288, - 0x7e18: 0x0030f688, 0x7e19: 0x00310088, 0x7e1a: 0x00312a88, 0x7e1b: 0x4003f820, - 0x7e1c: 0x4004e420, 0x7e1d: 0x4003fa20, 0x7e1e: 0x40062420, 0x7e1f: 0x40021620, - 0x7e20: 0x40061e20, 0x7e21: 0xc3930b52, 0x7e22: 0x402c0a20, 0x7e23: 0x402c3a20, - 0x7e24: 0x402c6220, 0x7e25: 0xc39c0be1, 0x7e26: 0x402d0820, 0x7e27: 0x402d2220, - 0x7e28: 0x402d6820, 0x7e29: 0x402d9a20, 0x7e2a: 0x402dcc20, 0x7e2b: 0x402dfe20, - 0x7e2c: 0xc0000002, 0x7e2d: 0x402e8220, 0x7e2e: 0x402e9e20, 0x7e2f: 0xc3a00b21, - 0x7e30: 0x402f2c20, 0x7e31: 0x402f5620, 0x7e32: 0x402f7a20, 0x7e33: 0x402fe620, - 0x7e34: 0x40302c20, 0x7e35: 0xc38d0b21, 0x7e36: 0x4030be20, 0x7e37: 0x4030e220, - 0x7e38: 0x4030f620, 0x7e39: 0x40310020, 0x7e3a: 0x40312a20, 0x7e3b: 0x4003fc20, - 0x7e3c: 0x40094820, 0x7e3d: 0x4003fe20, 0x7e3e: 0x40094c20, 0x7e3f: 0xa0000000, - // Block 0x1f9, offset 0x7e40 - 0x7e40: 0xe00008f5, 0x7e41: 0xe00008ef, 0x7e42: 0xe0000921, 0x7e43: 0xe0000969, - 0x7e44: 0x00320ca3, 0x7e45: 0x00321083, 0x7e46: 0x00320c83, 0x7e47: 0xe0000a53, - 0x7e48: 0xe0000ae8, 0x7e49: 0xe0000ae2, 0x7e4a: 0xe0000af4, 0x7e4b: 0xe0000b20, - 0x7e4c: 0xe0000c2b, 0x7e4d: 0xe0000c25, 0x7e4e: 0xe0000c37, 0x7e4f: 0xe0000c43, - 0x7e50: 0x002c62c3, 0x7e51: 0xe0000d63, 0x7e52: 0xe0000d9a, 0x7e53: 0xe0000d94, - 0x7e54: 0xe0000da6, 0x7e55: 0xe0000de6, 0x7e56: 0x00320ea3, 0x7e57: 0x40093e20, - 0x7e58: 0x00320e83, 0x7e59: 0xe0000fe1, 0x7e5a: 0xe0000fdb, 0x7e5b: 0xe0000fed, - 0x7e5c: 0x003100a3, 0x7e5d: 0xe0001102, 0x7e5e: 0xe0002973, 0x7e5f: 0xe0000f7b, - 0x7e60: 0xe00008f2, 0x7e61: 0xe00008ec, 0x7e62: 0xe000091e, 0x7e63: 0xe0000966, - 0x7e64: 0x40320c21, 0x7e65: 0x40321020, 0x7e66: 0x40320c20, 0x7e67: 0xe0000a4d, - 0x7e68: 0xe0000ae5, 0x7e69: 0xe0000adf, 0x7e6a: 0xe0000af1, 0x7e6b: 0xe0000b1d, - 0x7e6c: 0xe0000c28, 0x7e6d: 0xe0000c22, 0x7e6e: 0xe0000c34, 0x7e6f: 0xe0000c40, - 0x7e70: 0x402c6222, 0x7e71: 0xe0000d60, 0x7e72: 0xe0000d97, 0x7e73: 0xe0000d91, - 0x7e74: 0xe0000da3, 0x7e75: 0xe0000de3, 0x7e76: 0x40320e21, 0x7e77: 0x40093c20, - 0x7e78: 0x40320e20, 0x7e79: 0xe0000fde, 0x7e7a: 0xe0000fd8, 0x7e7b: 0xe0000fea, - 0x7e7c: 0x40310021, 0x7e7d: 0xe00010ff, 0x7e7e: 0xe0002970, 0x7e7f: 0xe0001114, - // Block 0x1fa, offset 0x7e80 - 0x7e80: 0xe0000983, 0x7e81: 0xe0000980, 0x7e82: 0xe00008fb, 0x7e83: 0xe00008f8, - 0x7e84: 0xe000097d, 0x7e85: 0xe000097a, 0x7e86: 0xe0000a38, 0x7e87: 0xe0000a35, - 0x7e88: 0xe0000a3e, 0x7e89: 0xe0000a3b, 0x7e8a: 0xe0000a4a, 0x7e8b: 0xe0000a47, - 0x7e8c: 0xe0000a44, 0x7e8d: 0xe0000a41, 0x7e8e: 0xe0000a86, 0x7e8f: 0xe0000a83, - 0x7e90: 0x002c62a3, 0x7e91: 0x402c6221, 0x7e92: 0xe0000b46, 0x7e93: 0xe0000b43, - 0x7e94: 0xe0000aee, 0x7e95: 0xe0000aeb, 0x7e96: 0xe0000b2c, 0x7e97: 0xe0000b29, - 0x7e98: 0x00320cc3, 0x7e99: 0x40320c22, 0x7e9a: 0xe0000b1a, 0x7e9b: 0xe0000b17, - 0x7e9c: 0xe0000bb8, 0x7e9d: 0xe0000bb5, 0x7e9e: 0xe0000bb2, 0x7e9f: 0xe0000baf, - 0x7ea0: 0xe0000bc4, 0x7ea1: 0xe0000bc1, 0x7ea2: 0xe0000bca, 0x7ea3: 0xe0000bc7, - 0x7ea4: 0xe0000bee, 0x7ea5: 0xe0000beb, 0x7ea6: 0xe0000c1b, 0x7ea7: 0xe0000c18, - 0x7ea8: 0xe0000c51, 0x7ea9: 0xe0000c4e, 0x7eaa: 0xe0000c60, 0x7eab: 0xe0000c5d, - 0x7eac: 0xe0000c31, 0x7ead: 0xe0000c2e, 0x7eae: 0xe0000c5a, 0x7eaf: 0xe0000c57, - 0x7eb0: 0xe0000c54, 0x7eb1: 0x402da220, 0x7eb2: 0xf0000a0a, 0x7eb3: 0xf0000404, - 0x7eb4: 0xe0000c8a, 0x7eb5: 0xe0000c87, 0x7eb6: 0xe0000c9f, 0x7eb7: 0xe0000c9c, - 0x7eb8: 0x402f7220, 0x7eb9: 0xe0000ccc, 0x7eba: 0xe0000cc9, 0x7ebb: 0xe0000cd8, - 0x7ebc: 0xe0000cd5, 0x7ebd: 0xe0000cd2, 0x7ebe: 0xe0000ccf, 0x7ebf: 0xe0000d04, - // Block 0x1fb, offset 0x7ec0 - 0x7ec0: 0xe0000cfe, 0x7ec1: 0xe0000cf8, 0x7ec2: 0xe0000cf5, 0x7ec3: 0xe0000d51, - 0x7ec4: 0xe0000d4e, 0x7ec5: 0xe0000d6f, 0x7ec6: 0xe0000d6c, 0x7ec7: 0xe0000d5d, - 0x7ec8: 0xe0000d5a, 0x7ec9: 0xf0000404, 0x7eca: 0x002eda88, 0x7ecb: 0x402eda20, - 0x7ecc: 0xe0000e2e, 0x7ecd: 0xe0000e2b, 0x7ece: 0xe0000da0, 0x7ecf: 0xe0000d9d, - 0x7ed0: 0x00320ec3, 0x7ed1: 0x40320e22, 0x7ed2: 0x00320ee3, 0x7ed3: 0x40320e23, - 0x7ed4: 0xe0000eca, 0x7ed5: 0xe0000ec7, 0x7ed6: 0xe0000edc, 0x7ed7: 0xe0000ed9, - 0x7ed8: 0xe0000ed0, 0x7ed9: 0xe0000ecd, 0x7eda: 0xe0000f1f, 0x7edb: 0xe0000f1c, - 0x7edc: 0xe0000f2d, 0x7edd: 0xe0000f2a, 0x7ede: 0xe0000f47, 0x7edf: 0xe0000f44, - 0x7ee0: 0xe0000f33, 0x7ee1: 0xe0000f30, 0x7ee2: 0xe0000f99, 0x7ee3: 0xe0000f96, - 0x7ee4: 0xe0000f8a, 0x7ee5: 0xe0000f87, 0x7ee6: 0x00303688, 0x7ee7: 0x40303620, - 0x7ee8: 0xe000102b, 0x7ee9: 0xe0001028, 0x7eea: 0xe000103f, 0x7eeb: 0xe000103c, - 0x7eec: 0xe0000fe7, 0x7eed: 0xe0000fe4, 0x7eee: 0xe0000ff9, 0x7eef: 0xe0000ff6, - 0x7ef0: 0x003100c3, 0x7ef1: 0x40310022, 0x7ef2: 0xe0001039, 0x7ef3: 0xe0001036, - 0x7ef4: 0xe00010d8, 0x7ef5: 0xe00010d5, 0x7ef6: 0xe000110e, 0x7ef7: 0xe000110b, - 0x7ef8: 0xe0001117, 0x7ef9: 0xe000113b, 0x7efa: 0xe0001138, 0x7efb: 0xe000114d, - 0x7efc: 0xe000114a, 0x7efd: 0xe0001147, 0x7efe: 0xe0001144, 0x7eff: 0xe0000f64, - // Block 0x1fc, offset 0x7f00 - 0x7f00: 0x40321220, 0x7f01: 0x40321a20, 0x7f02: 0x40322220, 0x7f03: 0x40322a20, - 0x7f04: 0xe0000ad5, 0x7f05: 0xe0000ad1, 0x7f06: 0xe0000acd, 0x7f07: 0xf0000a0a, - 0x7f08: 0xf000040a, 0x7f09: 0xf0000404, 0x7f0a: 0xf0000a0a, 0x7f0b: 0xf000040a, - 0x7f0c: 0xf0000404, 0x7f0d: 0xe0000947, 0x7f0e: 0xe0000944, 0x7f0f: 0xe0000c3d, - 0x7f10: 0xe0000c3a, 0x7f11: 0xe0000dcc, 0x7f12: 0xe0000dc9, 0x7f13: 0xe0000ff3, - 0x7f14: 0xe0000ff0, 0x7f15: 0xe000298b, 0x7f16: 0xe0002988, 0x7f17: 0xe0002979, - 0x7f18: 0xe0002976, 0x7f19: 0xe0002985, 0x7f1a: 0xe0002982, 0x7f1b: 0xe000297f, - 0x7f1c: 0xe000297c, 0x7f1d: 0x402cae20, 0x7f1e: 0xe000299d, 0x7f1f: 0xe000299a, - 0x7f20: 0xe0000976, 0x7f21: 0xe0000972, 0x7f22: 0xe0002997, 0x7f23: 0xe0002994, - 0x7f24: 0x002d3a88, 0x7f25: 0x402d3a20, 0x7f26: 0xe0000bbe, 0x7f27: 0xe0000bbb, - 0x7f28: 0xe0000c99, 0x7f29: 0xe0000c96, 0x7f2a: 0xe0000e20, 0x7f2b: 0xe0000e1d, - 0x7f2c: 0xe0000e27, 0x7f2d: 0xe0000e23, 0x7f2e: 0xe0001162, 0x7f2f: 0xe000115f, - 0x7f30: 0xe0000c8d, 0x7f31: 0xf0000a0a, 0x7f32: 0xf000040a, 0x7f33: 0xf0000404, - 0x7f34: 0xe0000bac, 0x7f35: 0xe0000ba9, 0x7f36: 0x002d7888, 0x7f37: 0x00319488, - 0x7f38: 0xe0000d57, 0x7f39: 0xe0000d54, 0x7f3a: 0xe00029b5, 0x7f3b: 0xe00029b2, - 0x7f3c: 0xe0002991, 0x7f3d: 0xe000298e, 0x7f3e: 0xe00029a3, 0x7f3f: 0xe00029a0, - // Block 0x1fd, offset 0x7f40 - 0x7f40: 0xe000098f, 0x7f41: 0xe000098c, 0x7f42: 0xe0000995, 0x7f43: 0xe0000992, - 0x7f44: 0xe0000b62, 0x7f45: 0xe0000b5f, 0x7f46: 0xe0000b68, 0x7f47: 0xe0000b65, - 0x7f48: 0xe0000c6c, 0x7f49: 0xe0000c69, 0x7f4a: 0xe0000c72, 0x7f4b: 0xe0000c6f, - 0x7f4c: 0xe0000e4a, 0x7f4d: 0xe0000e47, 0x7f4e: 0xe0000e50, 0x7f4f: 0xe0000e4d, - 0x7f50: 0xe0000ee8, 0x7f51: 0xe0000ee5, 0x7f52: 0xe0000eee, 0x7f53: 0xe0000eeb, - 0x7f54: 0xe0001053, 0x7f55: 0xe0001050, 0x7f56: 0xe0001059, 0x7f57: 0xe0001056, - 0x7f58: 0xe0000f61, 0x7f59: 0xe0000f5e, 0x7f5a: 0xe0000fa5, 0x7f5b: 0xe0000fa2, - 0x7f5c: 0x00312288, 0x7f5d: 0x40312220, 0x7f5e: 0xe0000bf4, 0x7f5f: 0xe0000bf1, - 0x7f60: 0x002ebc88, 0x7f61: 0x402c8c20, 0x7f62: 0x002f2288, 0x7f63: 0x402f2220, - 0x7f64: 0x00314088, 0x7f65: 0x40314020, 0x7f66: 0xe000096f, 0x7f67: 0xe000096c, - 0x7f68: 0xe0000b32, 0x7f69: 0xe0000b2f, 0x7f6a: 0xe00029af, 0x7f6b: 0xe00029ac, - 0x7f6c: 0xe0000dfd, 0x7f6d: 0xe0000df9, 0x7f6e: 0xe0000e04, 0x7f6f: 0xe0000e01, - 0x7f70: 0xe0000e0b, 0x7f71: 0xe0000e07, 0x7f72: 0xe0001129, 0x7f73: 0xe0001126, - 0x7f74: 0x402e5e20, 0x7f75: 0x402ed020, 0x7f76: 0x40305a20, 0x7f77: 0x402dd420, - 0x7f78: 0xe0000abf, 0x7f79: 0xe0000ec4, 0x7f7a: 0x002be888, 0x7f7b: 0x002c4488, - 0x7f7c: 0x402c4420, 0x7f7d: 0x002e3888, 0x7f7e: 0x00303e88, 0x7f7f: 0x402ffc20, - // Block 0x1fe, offset 0x7f80 - 0x7f80: 0x402c2820, 0x7f81: 0x402c7020, 0x7f82: 0x402d1420, 0x7f83: 0x402d4220, - 0x7f84: 0x402e0820, 0x7f85: 0x402e5220, 0x7f86: 0x402e8e20, 0x7f87: 0x402ec620, - 0x7f88: 0x402f3c20, 0x7f89: 0x402faa20, 0x7f8a: 0x402ff220, 0x7f8b: 0x40301020, - 0x7f8c: 0x4030ca20, 0x7f8d: 0x4030fe20, 0x7f8e: 0x40313e20, 0x7f8f: 0x402bea20, - 0x7f90: 0x402c0020, 0x7f91: 0x402c8220, 0x7f92: 0x402caa20, 0x7f93: 0x402cca20, - 0x7f94: 0x402ce420, 0x7f95: 0x402cc020, 0x7f96: 0x402dc020, 0x7f97: 0x402f0620, - 0x7f98: 0x40302220, 0x7f99: 0x40308620, 0x7f9a: 0x40317620, 0x7f9b: 0x002c0294, - 0x7f9c: 0x002c3a94, 0x7f9d: 0x002c5694, 0x7f9e: 0xe000296d, 0x7f9f: 0x002cdc94, - 0x7fa0: 0x002d0894, 0x7fa1: 0x002dee94, 0x7fa2: 0x002d2a94, 0x7fa3: 0x00308894, - 0x7fa4: 0x002db694, 0x7fa5: 0x002dc294, 0x7fa6: 0x002daa94, 0x7fa7: 0x002dbe94, - 0x7fa8: 0x002de694, 0x7fa9: 0x002e5494, 0x7faa: 0x002e5294, 0x7fab: 0x002e2a94, - 0x7fac: 0x002e9094, 0x7fad: 0x0030ac94, 0x7fae: 0x002eb494, 0x7faf: 0x002ec894, - 0x7fb0: 0x002ea694, 0x7fb1: 0x002f1094, 0x7fb2: 0x002f4c94, 0x7fb3: 0x002ff494, - 0x7fb4: 0x00300894, 0x7fb5: 0x00304294, 0x7fb6: 0x00307c94, 0x7fb7: 0x0030b494, - 0x7fb8: 0x00307494, 0x7fb9: 0x0030cc94, 0x7fba: 0x0030da94, 0x7fbb: 0x00312a94, - 0x7fbc: 0x00314894, 0x7fbd: 0x00315094, 0x7fbe: 0x00316494, 0x7fbf: 0x00326a94, - // Block 0x1ff, offset 0x7fc0 - 0x7fc0: 0xe0000d24, 0x7fc1: 0xe0000d21, 0x7fc2: 0xe0000d2a, 0x7fc3: 0xe0000d27, - 0x7fc4: 0xe0000d69, 0x7fc5: 0xe0000d66, 0x7fc6: 0xe0000d7b, 0x7fc7: 0xe0000d78, - 0x7fc8: 0xe0000d87, 0x7fc9: 0xe0000d84, 0x7fca: 0xe0000d81, 0x7fcb: 0xe0000d7e, - 0x7fcc: 0xe0000ded, 0x7fcd: 0xe0000de9, 0x7fce: 0xe00029a9, 0x7fcf: 0xe00029a6, - 0x7fd0: 0xe0000e3d, 0x7fd1: 0xe0000e39, 0x7fd2: 0xe0000e35, 0x7fd3: 0xe0000e31, - 0x7fd4: 0xe0000ea7, 0x7fd5: 0xe0000ea4, 0x7fd6: 0xe0000ead, 0x7fd7: 0xe0000eaa, - 0x7fd8: 0xe0000ed6, 0x7fd9: 0xe0000ed3, 0x7fda: 0xe0000ef4, 0x7fdb: 0xe0000ef1, - 0x7fdc: 0xe0000efb, 0x7fdd: 0xe0000ef7, 0x7fde: 0xe0000f02, 0x7fdf: 0xe0000eff, - 0x7fe0: 0xe0000f41, 0x7fe1: 0xe0000f3e, 0x7fe2: 0xe0000f53, 0x7fe3: 0xe0000f50, - 0x7fe4: 0xe0000f26, 0x7fe5: 0xe0000f22, 0x7fe6: 0xe0000f3a, 0x7fe7: 0xe0000f36, - 0x7fe8: 0xe0000f5a, 0x7fe9: 0xe0000f56, 0x7fea: 0xe0000f93, 0x7feb: 0xe0000f90, - 0x7fec: 0xe0000f9f, 0x7fed: 0xe0000f9c, 0x7fee: 0xe0000fb1, 0x7fef: 0xe0000fae, - 0x7ff0: 0xe0000fab, 0x7ff1: 0xe0000fa8, 0x7ff2: 0xe0001093, 0x7ff3: 0xe0001090, - 0x7ff4: 0xe000109f, 0x7ff5: 0xe000109c, 0x7ff6: 0xe0001099, 0x7ff7: 0xe0001096, - 0x7ff8: 0xe0001032, 0x7ff9: 0xe000102e, 0x7ffa: 0xe000298b, 0x7ffb: 0xe0002988, - 0x7ffc: 0xe00010a9, 0x7ffd: 0xe00010a6, 0x7ffe: 0xe00010af, 0x7fff: 0xe00010ac, - // Block 0x200, offset 0x8000 - 0x8000: 0xe00009bc, 0x8001: 0xe00009c0, 0x8002: 0x002c3a8b, 0x8003: 0xf0000a04, - 0x8004: 0x40081c20, 0x8005: 0xe0000a5e, 0x8006: 0xe0000a62, 0x8007: 0x002cc28a, - 0x8008: 0x40081e20, 0x8009: 0xf0000a04, 0x800a: 0x002d2285, 0x800b: 0x002d688b, - 0x800c: 0x002d688b, 0x800d: 0x002d688b, 0x800e: 0x002d6885, 0x800f: 0xf0000202, - 0x8010: 0x002d9a8b, 0x8011: 0x002d9a8b, 0x8012: 0x002e228b, 0x8013: 0x002e2285, - 0x8014: 0x40082020, 0x8015: 0x002e9e8b, 0x8016: 0xf000040a, 0x8017: 0x40082220, - 0x8018: 0x40082420, 0x8019: 0x002f2c8b, 0x801a: 0x002f568b, 0x801b: 0x002f7a8b, - 0x801c: 0x002f7a8b, 0x801d: 0x002f7a8b, 0x801e: 0x40082620, 0x801f: 0x40082820, - 0x8020: 0xf0001414, 0x8021: 0xe0000fbd, 0x8022: 0xf0001414, 0x8023: 0x40082a20, - 0x8024: 0x00312a8b, 0x8025: 0x40082c20, 0x8026: 0x0032a288, 0x8027: 0x40082e20, - 0x8028: 0x00312a8b, 0x8029: 0x40083020, 0x802a: 0x002dfe88, 0x802b: 0x00321083, - 0x802c: 0x002c0a8b, 0x802d: 0x002c3a8b, 0x802e: 0x40083220, 0x802f: 0x002c9885, - 0x8030: 0x002c988b, 0x8031: 0x002d088b, 0x8032: 0x002d1e88, 0x8033: 0x002e828b, - 0x8034: 0x002ee285, 0x8035: 0x00389084, 0x8036: 0x00389284, 0x8037: 0x00389484, - 0x8038: 0x00389684, 0x8039: 0x002d9a85, 0x803a: 0x40083420, 0x803b: 0xe0000b95, - 0x803c: 0x00327e85, 0x803d: 0x00325685, 0x803e: 0x0032568b, 0x803f: 0x00327e8b, - // Block 0x201, offset 0x8040 - 0x8040: 0x40078220, 0x8041: 0x40075e20, 0x8042: 0x40076020, 0x8043: 0x40076220, - 0x8044: 0x40058220, 0x8045: 0x40058420, 0x8046: 0x40058620, 0x8047: 0x40058820, - 0x8048: 0x40058a20, 0x8049: 0x40058c20, 0x804a: 0x40058e20, 0x804b: 0x4027bc20, - 0x804c: 0x0027bc83, 0x804d: 0x4027bc21, 0x804e: 0x4027bc22, 0x804f: 0x4027bc23, - 0x8050: 0x4027bc24, 0x8051: 0x4027bc25, 0x8052: 0x4005a020, 0x8053: 0x40076420, - 0x8054: 0x4027bc26, 0x8055: 0x40076620, 0x8056: 0x40076820, 0x8057: 0x40076a20, - 0x8058: 0xadc00000, 0x8059: 0xadc00000, 0x805a: 0x40076c20, 0x805b: 0x40076e20, - 0x805c: 0x40077020, 0x805d: 0x40077220, 0x805e: 0x40077420, 0x805f: 0x40077620, - 0x8060: 0xe00001a0, 0x8061: 0xe0000234, 0x8062: 0xe000034c, 0x8063: 0xe0000426, - 0x8064: 0xe00004fb, 0x8065: 0xe00005c5, 0x8066: 0xe0000690, 0x8067: 0xe0000738, - 0x8068: 0xe00007e4, 0x8069: 0xe0000889, 0x806a: 0xe0000237, 0x806b: 0xe000034f, - 0x806c: 0xe0000429, 0x806d: 0xe00004fe, 0x806e: 0xe00005c8, 0x806f: 0xe0000693, - 0x8070: 0xe000073b, 0x8071: 0xe00007e7, 0x8072: 0xe000088c, 0x8073: 0xe00001a3, - 0x8074: 0x4027bc27, 0x8075: 0xadc00000, 0x8076: 0x40077a20, 0x8077: 0xadc00000, - 0x8078: 0x40077c20, 0x8079: 0xae611002, 0x807a: 0x40040020, 0x807b: 0x40040220, - 0x807c: 0x40040420, 0x807d: 0x40040620, 0x807e: 0xa0000000, 0x807f: 0xa0000000, - // Block 0x202, offset 0x8080 - 0x8080: 0x404a7620, 0x8081: 0x404a7c20, 0x8082: 0xc4cf2161, 0x8083: 0xe00029d9, - 0x8084: 0x404a8420, 0x8085: 0x404a8820, 0x8086: 0x404a8c20, 0x8087: 0x404a9020, - 0x8089: 0x404a9420, 0x808a: 0x004aa883, 0x808b: 0x004aac83, - 0x808c: 0x004ab083, 0x808d: 0xe0002a11, 0x808e: 0x004ab483, 0x808f: 0x404aa820, - 0x8090: 0x404aac20, 0x8091: 0xc3a90c31, 0x8092: 0xe0002a0e, 0x8093: 0x404ab420, - 0x8094: 0x404ab820, 0x8095: 0x404abc20, 0x8096: 0xc3f31211, 0x8097: 0xe0002a32, - 0x8098: 0xc45418e1, 0x8099: 0x404ac820, 0x809a: 0x404acc20, 0x809b: 0x404ad020, - 0x809c: 0xe0002a53, 0x809d: 0x404ad420, 0x809e: 0x404ad820, 0x809f: 0x404adc20, - 0x80a0: 0xc48f1d01, 0x80a1: 0x404ae420, 0x80a2: 0xc43c1761, 0x80a3: 0xc4491831, - 0x80a4: 0x404af220, 0x80a5: 0x004af283, 0x80a6: 0xc4831c51, 0x80a7: 0x404afe20, - 0x80a8: 0x404b0220, 0x80a9: 0xe00029b8, 0x80aa: 0x004ae883, 0x80ab: 0x404a7a20, - 0x80ac: 0x404aec20, - 0x80b1: 0xc51b0751, 0x80b2: 0x8282258c, 0x80b3: 0x8281258d, - 0x80b4: 0x82842590, 0x80b5: 0x82812591, 0x80b6: 0x404b2420, 0x80b7: 0x404b2620, - 0x80b8: 0x404b2820, 0x80b9: 0x404b2a20, 0x80ba: 0x82822596, 0x80bb: 0x83822596, - 0x80bc: 0x82822598, 0x80bd: 0x83822598, 0x80be: 0x004ac483, 0x80bf: 0xae611102, - // Block 0x203, offset 0x80c0 - 0x80c0: 0x8382258c, 0x80c1: 0x8281258f, 0x80c2: 0x004ac484, 0x80c3: 0x004ac485, - 0x80c4: 0xae610e02, 0x80c5: 0xae611202, 0x80c6: 0xae600000, 0x80c7: 0xae600000, - 0x80c8: 0xc3a60c01, 0x80c9: 0xc5062551, 0x80ca: 0xae611502, 0x80cb: 0xc5042521, - 0x80cc: 0x404b0e20, 0x80cd: 0x404b0820, 0x80ce: 0x404b0c20, 0x80cf: 0x404b1020, - 0x80d0: 0x82822599, 0x80d1: 0x8282259a, 0x80d2: 0x8282259b, 0x80d3: 0xe0002a7d, - 0x80d4: 0x8282259c, 0x80d5: 0x8282259d, 0x80d6: 0x8282259e, 0x80d7: 0x8282259f, - 0x80d9: 0x828225a0, 0x80da: 0x838225a1, 0x80db: 0x838225a2, - 0x80dc: 0x838225a3, 0x80dd: 0xe0002a83, 0x80de: 0x838225a4, 0x80df: 0x828225a1, - 0x80e0: 0x828225a2, 0x80e1: 0x828225a3, 0x80e2: 0xe0002a80, 0x80e3: 0x828225a4, - 0x80e4: 0x828225a5, 0x80e5: 0x828225a6, 0x80e6: 0x828225a7, 0x80e7: 0xe0002a86, - 0x80e8: 0x828225a8, 0x80e9: 0x828225a9, 0x80ea: 0x828225aa, 0x80eb: 0x828225ab, - 0x80ec: 0xe0002a89, 0x80ed: 0x828225ac, 0x80ee: 0x828225ad, 0x80ef: 0x828225ae, - 0x80f0: 0x828225af, 0x80f1: 0x828225b0, 0x80f2: 0xc5092581, 0x80f3: 0xc5122581, - 0x80f4: 0x828225b3, 0x80f5: 0x838225b3, 0x80f6: 0x828225b4, 0x80f7: 0x828225b5, - 0x80f8: 0x828225b6, 0x80f9: 0xe0002a7a, 0x80fa: 0x838225ac, 0x80fb: 0x838225b0, - 0x80fc: 0x838225b1, 0x80fe: 0x40077e20, 0x80ff: 0x40078020, - // Block 0x204, offset 0x8100 - 0x8100: 0xa0000000, 0x8101: 0xa0000000, 0x8102: 0xa0000000, 0x8103: 0xa0000000, - 0x8104: 0xa0000000, 0x8105: 0xa0000000, 0x8106: 0xa0000000, 0x8107: 0xa0000000, - 0x8108: 0xa0000000, 0x8109: 0x40020020, 0x810a: 0x40020220, 0x810b: 0x40020420, - 0x810c: 0x40020620, 0x810d: 0x40020820, 0x810e: 0xa0000000, 0x810f: 0xa0000000, - 0x8110: 0xa0000000, 0x8111: 0xa0000000, 0x8112: 0xa0000000, 0x8113: 0xa0000000, - 0x8114: 0xa0000000, 0x8115: 0xa0000000, 0x8116: 0xa0000000, 0x8117: 0xa0000000, - 0x8118: 0xa0000000, 0x8119: 0xa0000000, 0x811a: 0xa0000000, 0x811b: 0xa0000000, - 0x811c: 0xa0000000, 0x811d: 0xa0000000, 0x811e: 0xa0000000, 0x811f: 0xa0000000, - 0x8120: 0x40021220, 0x8121: 0x4002ba20, 0x8122: 0x4003e020, 0x8123: 0x4004ea20, - 0x8124: 0x4027de20, 0x8125: 0x4004ec20, 0x8126: 0x4004e620, 0x8127: 0x4003d220, - 0x8128: 0x4003f420, 0x8129: 0x4003f620, 0x812a: 0x4004d820, 0x812b: 0x40093820, - 0x812c: 0x40024020, 0x812d: 0x40021a20, 0x812e: 0x4002e420, 0x812f: 0x4004e220, - 0x8130: 0x4029cc20, 0x8131: 0x4029ce20, 0x8132: 0x4029d020, 0x8133: 0x4029d220, - 0x8134: 0x4029d420, 0x8135: 0x4029d620, 0x8136: 0x4029d820, 0x8137: 0x4029da20, - 0x8138: 0x4029dc20, 0x8139: 0x4029de20, 0x813a: 0x40026c20, 0x813b: 0x40026220, - 0x813c: 0x40094020, 0x813d: 0x40094220, 0x813e: 0x40094420, 0x813f: 0x4002c420, - // Block 0x205, offset 0x8140 - 0x8140: 0x4004d620, 0x8141: 0x002bde88, 0x8142: 0x002c0a88, 0x8143: 0x002c3a88, - 0x8144: 0xc36a2662, 0x8145: 0x002c9888, 0x8146: 0x002d0888, 0x8147: 0xc51f2692, - 0x8148: 0x002d6888, 0x8149: 0x002d9a88, 0x814a: 0x002dcc88, 0x814b: 0xc52426c2, - 0x814c: 0xc0030002, 0x814d: 0x002e8288, 0x814e: 0xc52926f2, 0x814f: 0x002ee288, - 0x8150: 0x002f2c88, 0x8151: 0x002f5688, 0x8152: 0x002f7a88, 0x8153: 0x002fe688, - 0x8154: 0xc38a2722, 0x8155: 0x00306c88, 0x8156: 0x0030be88, 0x8157: 0x0030e288, - 0x8158: 0x002d6a83, 0x8159: 0x00310088, 0x815a: 0x00312a88, 0x815b: 0x4003f820, - 0x815c: 0x4004e420, 0x815d: 0x4003fa20, 0x815e: 0x40062420, 0x815f: 0x40021620, - 0x8160: 0x40061e20, 0x8161: 0x402bde20, 0x8162: 0x402c0a20, 0x8163: 0x402c3a20, - 0x8164: 0xc3682651, 0x8165: 0x402c9820, 0x8166: 0x402d0820, 0x8167: 0xc3372681, - 0x8168: 0x402d6820, 0x8169: 0x402d9a20, 0x816a: 0x402dcc20, 0x816b: 0xc52226b1, - 0x816c: 0xc0000002, 0x816d: 0x402e8220, 0x816e: 0xc52726e1, 0x816f: 0x402ee220, - 0x8170: 0x402f2c20, 0x8171: 0x402f5620, 0x8172: 0x402f7a20, 0x8173: 0x402fe620, - 0x8174: 0xc3882711, 0x8175: 0x40306c20, 0x8176: 0x4030be20, 0x8177: 0x4030e220, - 0x8178: 0x402d6a20, 0x8179: 0x40310020, 0x817a: 0x40312a20, 0x817b: 0x4003fc20, - 0x817c: 0x40094820, 0x817d: 0x4003fe20, 0x817e: 0x40094c20, 0x817f: 0xa0000000, - // Block 0x206, offset 0x8180 - 0x8180: 0xe00008f5, 0x8181: 0xe00008ef, 0x8182: 0xe0002a8f, 0x8183: 0xe0000969, - 0x8184: 0xe000095b, 0x8185: 0xe000094d, 0x8186: 0xe00009dd, 0x8187: 0xe0000a53, - 0x8188: 0xe0000ae8, 0x8189: 0xe0000ae2, 0x818a: 0xe0002ac3, 0x818b: 0xe0000b20, - 0x818c: 0xe0000c2b, 0x818d: 0xe0000c25, 0x818e: 0xe0002afd, 0x818f: 0xe0000c43, - 0x8190: 0xe0000ab3, 0x8191: 0xe0000d63, 0x8192: 0xe0000d9a, 0x8193: 0xe0000d94, - 0x8194: 0xe0002b09, 0x8195: 0xe0000de6, 0x8196: 0xe0000dd2, 0x8197: 0x40093e20, - 0x8198: 0xe0000e12, 0x8199: 0xe0000fe1, 0x819a: 0xe0000fdb, 0x819b: 0xe0002b3d, - 0x819c: 0xe0000fff, 0x819d: 0xe0001102, 0x819e: 0x00318888, 0x819f: 0xe0000f7b, - 0x81a0: 0xe00008f2, 0x81a1: 0xe00008ec, 0x81a2: 0xe0002a8c, 0x81a3: 0xe0000966, - 0x81a4: 0xe0000958, 0x81a5: 0xe000094a, 0x81a6: 0xe00009d5, 0x81a7: 0xe0000a4d, - 0x81a8: 0xe0000ae5, 0x81a9: 0xe0000adf, 0x81aa: 0xe0002ac0, 0x81ab: 0xe0000b1d, - 0x81ac: 0xe0000c28, 0x81ad: 0xe0000c22, 0x81ae: 0xe0002afa, 0x81af: 0xe0000c40, - 0x81b0: 0xe0000aad, 0x81b1: 0xe0000d60, 0x81b2: 0xe0000d97, 0x81b3: 0xe0000d91, - 0x81b4: 0xe0002b06, 0x81b5: 0xe0000de3, 0x81b6: 0xe0000dcf, 0x81b7: 0x40093c20, - 0x81b8: 0xe0000e0f, 0x81b9: 0xe0000fde, 0x81ba: 0xe0000fd8, 0x81bb: 0xe0002b3a, - 0x81bc: 0xe0000ffc, 0x81bd: 0xe00010ff, 0x81be: 0x40318820, 0x81bf: 0xe0001114, - // Block 0x207, offset 0x81c0 - 0x81c0: 0xe0000983, 0x81c1: 0xe0000980, 0x81c2: 0xe00008fb, 0x81c3: 0xe00008f8, - 0x81c4: 0xe000097d, 0x81c5: 0xe000097a, 0x81c6: 0xe0000a38, 0x81c7: 0xe0000a35, - 0x81c8: 0xe0002abd, 0x81c9: 0xe0002aba, 0x81ca: 0xe0000a4a, 0x81cb: 0xe0000a47, - 0x81cc: 0xe0000a44, 0x81cd: 0xe0000a41, 0x81ce: 0xe0000a86, 0x81cf: 0xe0000a83, - 0x81d0: 0xe0000aaa, 0x81d1: 0xe0000aa7, 0x81d2: 0xe0000b46, 0x81d3: 0xe0000b43, - 0x81d4: 0xe0000aee, 0x81d5: 0xe0000aeb, 0x81d6: 0xe0000b2c, 0x81d7: 0xe0000b29, - 0x81d8: 0xe0000b40, 0x81d9: 0xe0000b3d, 0x81da: 0xe0000b1a, 0x81db: 0xe0000b17, - 0x81dc: 0xe0002af1, 0x81dd: 0xe0002aee, 0x81de: 0xe0000bb2, 0x81df: 0xe0000baf, - 0x81e0: 0xe0000bc4, 0x81e1: 0xe0000bc1, 0x81e2: 0xe0000bca, 0x81e3: 0xe0000bc7, - 0x81e4: 0xe0002af7, 0x81e5: 0xe0002af4, 0x81e6: 0xe0000c1b, 0x81e7: 0xe0000c18, - 0x81e8: 0xe0000c51, 0x81e9: 0xe0000c4e, 0x81ea: 0xe0000c60, 0x81eb: 0xe0000c5d, - 0x81ec: 0xe0000c31, 0x81ed: 0xe0000c2e, 0x81ee: 0xe0000c5a, 0x81ef: 0xe0000c57, - 0x81f0: 0xe0000c54, 0x81f1: 0x402da220, 0x81f2: 0xf0000a0a, 0x81f3: 0xf0000404, - 0x81f4: 0xe0002b03, 0x81f5: 0xe0002b00, 0x81f6: 0xe0000c9f, 0x81f7: 0xe0000c9c, - 0x81f8: 0x402f7220, 0x81f9: 0xe0000ccc, 0x81fa: 0xe0000cc9, 0x81fb: 0xe0000cd8, - 0x81fc: 0xe0000cd5, 0x81fd: 0xe0000cd2, 0x81fe: 0xe0000ccf, 0x81ff: 0xe0000d04, - // Block 0x208, offset 0x8200 - 0x8200: 0xe0000cfe, 0x8201: 0xe0000cf8, 0x8202: 0xe0000cf5, 0x8203: 0xe0000d51, - 0x8204: 0xe0000d4e, 0x8205: 0xe0000d6f, 0x8206: 0xe0000d6c, 0x8207: 0xe0000d5d, - 0x8208: 0xe0000d5a, 0x8209: 0xf0000404, 0x820a: 0x002ea283, 0x820b: 0x402ea220, - 0x820c: 0xe0000e2e, 0x820d: 0xe0000e2b, 0x820e: 0xe0000da0, 0x820f: 0xe0000d9d, - 0x8210: 0xe0000de0, 0x8211: 0xe0000ddd, 0x8212: 0xe0000e93, 0x8213: 0xe0000e8f, - 0x8214: 0xe0000eca, 0x8215: 0xe0000ec7, 0x8216: 0xe0000edc, 0x8217: 0xe0000ed9, - 0x8218: 0xe0000ed0, 0x8219: 0xe0000ecd, 0x821a: 0xe0000f1f, 0x821b: 0xe0000f1c, - 0x821c: 0xe0002b37, 0x821d: 0xe0002b34, 0x821e: 0xe0000f47, 0x821f: 0xe0000f44, - 0x8220: 0xe0000f33, 0x8221: 0xe0000f30, 0x8222: 0xe0000f99, 0x8223: 0xe0000f96, - 0x8224: 0xe0000f8a, 0x8225: 0xe0000f87, 0x8226: 0x00303688, 0x8227: 0x40303620, - 0x8228: 0xe000102b, 0x8229: 0xe0001028, 0x822a: 0xe000103f, 0x822b: 0xe000103c, - 0x822c: 0xe0000fe7, 0x822d: 0xe0000fe4, 0x822e: 0xe0000ff9, 0x822f: 0xe0000ff6, - 0x8230: 0xe0001025, 0x8231: 0xe0001022, 0x8232: 0xe0001039, 0x8233: 0xe0001036, - 0x8234: 0xe0002b43, 0x8235: 0xe0002b40, 0x8236: 0xe0002b49, 0x8237: 0xe0002b46, - 0x8238: 0xe0001117, 0x8239: 0xe000113b, 0x823a: 0xe0001138, 0x823b: 0xe000114d, - 0x823c: 0xe000114a, 0x823d: 0xe0001147, 0x823e: 0xe0001144, 0x823f: 0xe0000f64, - // Block 0x209, offset 0x8240 - 0x8240: 0x402c1a20, 0x8241: 0x002c2a88, 0x8242: 0x002c3288, 0x8243: 0x402c3220, - 0x8244: 0x0031c488, 0x8245: 0x4031c420, 0x8246: 0x002ee483, 0x8247: 0x002c4e88, - 0x8248: 0x402c4e20, 0x8249: 0x002c6683, 0x824a: 0x002c7a88, 0x824b: 0x002c8488, - 0x824c: 0x402c8420, 0x824d: 0xe000115c, 0x824e: 0x002cae88, 0x824f: 0x002cb888, - 0x8250: 0x002c9a83, 0x8251: 0x002d0a83, 0x8252: 0x402d0a20, 0x8253: 0x002d4488, - 0x8254: 0x002d2683, 0x8255: 0x402d7820, 0x8256: 0x002dc288, 0x8257: 0x002db688, - 0x8258: 0x002e0a88, 0x8259: 0x402e0a20, 0x825a: 0x402e3820, 0x825b: 0x402e7220, - 0x825c: 0x0030a088, 0x825d: 0x002eb488, 0x825e: 0x402ebc20, 0x825f: 0x002f1088, - 0x8260: 0xe0000e56, 0x8261: 0xe0000e53, 0x8262: 0x002d6088, 0x8263: 0x402d6020, - 0x8264: 0x002f3e88, 0x8265: 0x402f3e20, 0x8266: 0x002f8288, 0x8267: 0x0031b488, - 0x8268: 0x4031b420, 0x8269: 0x00300888, 0x826a: 0x40301220, 0x826b: 0x40304220, - 0x826c: 0x00304a88, 0x826d: 0x40304a20, 0x826e: 0x00305288, 0x826f: 0xe000105f, - 0x8270: 0xe000105c, 0x8271: 0x0030b488, 0x8272: 0x0030c083, 0x8273: 0x00311888, - 0x8274: 0x40311820, 0x8275: 0x00313488, 0x8276: 0x40313420, 0x8277: 0x00316488, - 0x8278: 0x00316e88, 0x8279: 0x40316e20, 0x827a: 0x40317820, 0x827b: 0x4031a620, - 0x827c: 0x0031bc88, 0x827d: 0x4031bc20, 0x827e: 0xe0000fc9, 0x827f: 0x40319420, - // Block 0x20a, offset 0x8280 - 0x8280: 0x40315820, 0x8281: 0x0031d488, 0x8282: 0x4031d420, 0x8283: 0x002c1a88, - 0x8284: 0x00307c88, 0x8285: 0x0030da88, 0x8286: 0x002ca288, 0x8287: 0x402ca220, - 0x8288: 0x002dde88, 0x8289: 0x402dde20, 0x828a: 0x002f6a88, 0x828b: 0x402f6a20, - 0x828c: 0x002f8e88, 0x828d: 0x402f8e20, 0x828e: 0x00311088, 0x828f: 0x40311020, - 0x8290: 0x402bf020, 0x8291: 0x402bf820, 0x8292: 0x402c0220, 0x8293: 0x402c2a20, - 0x8294: 0x402ee420, 0x8295: 0x402c5620, 0x8296: 0x402c6620, 0x8297: 0x402c7a20, - 0x8298: 0x402ccc20, 0x8299: 0x402cb820, 0x829a: 0x402cd420, 0x829b: 0x402c9a20, - 0x829c: 0x402cdc20, 0x829d: 0x402ce820, 0x829e: 0x402cf020, 0x829f: 0x402dee20, - 0x82a0: 0x402d4420, 0x82a1: 0x402d2a20, 0x82a2: 0x402d3220, 0x82a3: 0x402d2620, - 0x82a4: 0x402d0020, 0x82a5: 0x40308820, 0x82a6: 0x402d8020, 0x82a7: 0x402d8e20, - 0x82a8: 0x402db620, 0x82a9: 0x402dc220, 0x82aa: 0x402daa20, 0x82ab: 0x402e4220, - 0x82ac: 0x402e4a20, 0x82ad: 0x402e5420, 0x82ae: 0x402e6820, 0x82af: 0x4030a020, - 0x82b0: 0x4030ac20, 0x82b1: 0x402e9020, 0x82b2: 0x402eb420, 0x82b3: 0x402ec820, - 0x82b4: 0x402ea620, 0x82b5: 0x402f1020, 0x82b6: 0x402eee20, 0x82b7: 0x402f1a20, - 0x82b8: 0x402f4c20, 0x82b9: 0x402f9820, 0x82ba: 0x402fa220, 0x82bb: 0x402fac20, - 0x82bc: 0x402fb620, 0x82bd: 0x402fbe20, 0x82be: 0x402fc620, 0x82bf: 0x402fd020, - // Block 0x20b, offset 0x82c0 - 0x82c0: 0x402f8220, 0x82c1: 0x402fd820, 0x82c2: 0x402ff420, 0x82c3: 0x40300820, - 0x82c4: 0x402df620, 0x82c5: 0x40301a20, 0x82c6: 0x40302420, 0x82c7: 0x40306420, - 0x82c8: 0x40305220, 0x82c9: 0x40307c20, 0x82ca: 0x4030b420, 0x82cb: 0x4030c020, - 0x82cc: 0x4030da20, 0x82cd: 0x4030ee20, 0x82ce: 0x402e7a20, 0x82cf: 0x40310820, - 0x82d0: 0x40314820, 0x82d1: 0x40315020, 0x82d2: 0x40316420, 0x82d3: 0x40318020, - 0x82d4: 0x4031cc20, 0x82d5: 0x4031e820, 0x82d6: 0x40320a20, 0x82d7: 0x40323220, - 0x82d8: 0x40323a20, 0x82d9: 0x402c1220, 0x82da: 0x402cf820, 0x82db: 0x402d4c20, - 0x82dc: 0x402d7020, 0x82dd: 0x402de620, 0x82de: 0x402e1a20, 0x82df: 0x402e2a20, - 0x82e0: 0x402f6220, 0x82e1: 0x4031fa20, 0x82e2: 0x40320220, 0x82e3: 0xe0000aca, - 0x82e4: 0xe0000adc, 0x82e5: 0xe0000ad9, 0x82e6: 0xe0000fcc, 0x82e7: 0xe0000fcf, - 0x82e8: 0xe0000fba, 0x82e9: 0xe0000ba1, 0x82ea: 0xe0000d11, 0x82eb: 0xe0000d18, - 0x82ec: 0x40324220, 0x82ed: 0x40324a20, 0x82ee: 0x40309020, 0x82ef: 0x40309820, - 0x82f0: 0x002d6894, 0x82f1: 0x002d8094, 0x82f2: 0x002dcc94, 0x82f3: 0x002f7a94, - 0x82f4: 0x002f9894, 0x82f5: 0x002fac94, 0x82f6: 0x002fd894, 0x82f7: 0x0030e294, - 0x82f8: 0x00310094, 0x82f9: 0x40064020, 0x82fa: 0x40064420, 0x82fb: 0x402d9620, - 0x82fc: 0x4031de20, 0x82fd: 0x402d9820, 0x82fe: 0x4031e220, 0x82ff: 0x4031f020, - // Block 0x20c, offset 0x8300 - 0x8300: 0xae603502, 0x8301: 0xae603202, 0x8302: 0xae604202, 0x8303: 0xae604e02, - 0x8304: 0xae605b02, 0x8305: 0xae606302, 0x8306: 0xae603702, 0x8307: 0xae605202, - 0x8308: 0xae604702, 0x8309: 0xae606402, 0x830a: 0xae604302, 0x830b: 0xae604d02, - 0x830c: 0xae604102, 0x830d: 0xae605f02, 0x830e: 0xae605f02, 0x830f: 0xae606502, - 0x8310: 0xae606602, 0x8311: 0xae606702, 0x8312: 0xae605f02, 0x8313: 0xae602202, - 0x8314: 0xae602a02, 0x8315: 0xae805f02, 0x8316: 0xadc06002, 0x8317: 0xadc06002, - 0x8318: 0xadc06002, 0x8319: 0xadc06002, 0x831a: 0xae805f02, 0x831b: 0xad806802, - 0x831c: 0xadc06002, 0x831d: 0xadc06002, 0x831e: 0xadc06002, 0x831f: 0xadc06002, - 0x8320: 0xadc06002, 0x8321: 0xaca06e02, 0x8322: 0xaca06f02, 0x8323: 0xadc07002, - 0x8324: 0xadc07502, 0x8325: 0xadc07602, 0x8326: 0xadc07702, 0x8327: 0xaca05602, - 0x8328: 0xaca05902, 0x8329: 0xadc06002, 0x832a: 0xadc06002, 0x832b: 0xadc06002, - 0x832c: 0xadc06002, 0x832d: 0xadc07802, 0x832e: 0xadc07902, 0x832f: 0xadc06002, - 0x8330: 0xadc07a02, 0x8331: 0xadc07b02, 0x8332: 0xadc02102, 0x8333: 0xadc06002, - 0x8334: 0xa0107c02, 0x8335: 0xa0107d02, 0x8336: 0xa0106102, 0x8337: 0xa0106102, - 0x8338: 0xa0105402, 0x8339: 0xadc07e02, 0x833a: 0xadc06002, 0x833b: 0xadc06002, - 0x833c: 0xadc06002, 0x833d: 0xae605f02, 0x833e: 0xae605f02, 0x833f: 0xae605f02, - // Block 0x20d, offset 0x8340 - 0x8340: 0xe00010d2, 0x8341: 0xe00010cf, 0x8342: 0xe00010cc, 0x8343: 0xe00010c9, - 0x8344: 0xe00010e1, 0x8345: 0xe00010de, 0x8346: 0xe00010e7, 0x8347: 0xe00010e4, - 0x8348: 0xe00010ed, 0x8349: 0xe00010ea, 0x834a: 0xe0002912, 0x834b: 0xe000290f, - 0x834c: 0xe000290c, 0x834d: 0xe0002909, 0x834e: 0xe0001123, 0x834f: 0xe0001120, - 0x8350: 0xe0002b4f, 0x8351: 0xe0002b4c, 0x8352: 0xe0001153, 0x8353: 0xe0001150, - 0x8354: 0xe0001159, 0x8355: 0xe0001156, 0x8356: 0xe0000c15, 0x8357: 0xe0000f8d, - 0x8358: 0xe00010db, 0x8359: 0xe0001111, 0x835a: 0xf0000404, 0x835b: 0xe0000f70, - 0x835c: 0x40300420, 0x835d: 0x40300620, 0x835e: 0xe0000f7f, 0x835f: 0x402c9620, - 0x8360: 0xe000099b, 0x8361: 0xe0000998, 0x8362: 0xe0000989, 0x8363: 0xe0000986, - 0x8364: 0xe0002a96, 0x8365: 0xe0002a92, 0x8366: 0xe0002a9e, 0x8367: 0xe0002a9a, - 0x8368: 0xe0002aae, 0x8369: 0xe0002aaa, 0x836a: 0xe0002aa6, 0x836b: 0xe0002aa2, - 0x836c: 0xe0002ab6, 0x836d: 0xe0002ab2, 0x836e: 0xe0000902, 0x836f: 0xe00008fe, - 0x8370: 0xe000090a, 0x8371: 0xe0000906, 0x8372: 0xe000091a, 0x8373: 0xe0000916, - 0x8374: 0xe0000912, 0x8375: 0xe000090e, 0x8376: 0xe00009a2, 0x8377: 0xe000099e, - 0x8378: 0xe0000b6e, 0x8379: 0xe0000b6b, 0x837a: 0xe0000b5c, 0x837b: 0xe0000b59, - 0x837c: 0xe0000b26, 0x837d: 0xe0000b23, 0x837e: 0xe0002aca, 0x837f: 0xe0002ac6, - // Block 0x20e, offset 0x8380 - 0x8380: 0xe0002ad2, 0x8381: 0xe0002ace, 0x8382: 0xe0002ae2, 0x8383: 0xe0002ade, - 0x8384: 0xe0002ada, 0x8385: 0xe0002ad6, 0x8386: 0xe0002aea, 0x8387: 0xe0002ae6, - 0x8388: 0xe0000c66, 0x8389: 0xe0000c63, 0x838a: 0xe0000c78, 0x838b: 0xe0000c75, - 0x838c: 0xe0000e84, 0x838d: 0xe0000e81, 0x838e: 0xe0000e44, 0x838f: 0xe0000e41, - 0x8390: 0xe0002b10, 0x8391: 0xe0002b0c, 0x8392: 0xe0002b18, 0x8393: 0xe0002b14, - 0x8394: 0xe0002b28, 0x8395: 0xe0002b24, 0x8396: 0xe0002b20, 0x8397: 0xe0002b1c, - 0x8398: 0xe0002b30, 0x8399: 0xe0002b2c, 0x839a: 0xe0000e5d, 0x839b: 0xe0000e59, - 0x839c: 0xe0000e65, 0x839d: 0xe0000e61, 0x839e: 0xe0000e75, 0x839f: 0xe0000e71, - 0x83a0: 0xe0000e6d, 0x83a1: 0xe0000e69, 0x83a2: 0xe0000e7d, 0x83a3: 0xe0000e79, - 0x83a4: 0xe000108d, 0x83a5: 0xe000108a, 0x83a6: 0xe000104d, 0x83a7: 0xe000104a, - 0x83a8: 0xe0001066, 0x83a9: 0xe0001062, 0x83aa: 0xe000106e, 0x83ab: 0xe000106a, - 0x83ac: 0xe000107e, 0x83ad: 0xe000107a, 0x83ae: 0xe0001076, 0x83af: 0xe0001072, - 0x83b0: 0xe0001086, 0x83b1: 0xe0001082, 0x83b2: 0xe0001108, 0x83b3: 0xe0001105, - 0x83b4: 0xe0001135, 0x83b5: 0xe0001132, 0x83b6: 0xe000112f, 0x83b7: 0xe000112c, - 0x83b8: 0xe000111d, 0x83b9: 0xe000111a, 0x83ba: 0xe0000d0a, 0x83bb: 0xe0000d07, - 0x83bc: 0x0030d888, 0x83bd: 0x4030d820, 0x83be: 0x00312088, 0x83bf: 0x40312020, - // Block 0x20f, offset 0x83c0 - 0x83c0: 0x00093685, 0x83c1: 0x40083620, 0x83c2: 0x40083820, 0x83c3: 0x40083a20, - 0x83c4: 0x40083c20, 0x83c5: 0x002c628b, 0x83c6: 0x002c6285, 0x83c7: 0x002c9885, - 0x83c8: 0x002d9a85, 0x83c9: 0x002dcc85, 0x83ca: 0x40083e20, 0x83cb: 0x400a6e20, - 0x83cc: 0x40084020, 0x83cd: 0xe00009c4, 0x83ce: 0x402d1e20, 0x83cf: 0x40084220, - 0x83d0: 0xe00002cb, 0x83d1: 0xe00002d3, 0x83d2: 0xe00002b2, 0x83d3: 0xe00002bb, - 0x83d4: 0xe00003cd, 0x83d5: 0xe00002c3, 0x83d6: 0xe00003d1, 0x83d7: 0xe00004ab, - 0x83d8: 0xe0000579, 0x83d9: 0xe00002c7, 0x83da: 0xe0000640, 0x83db: 0xe00002cf, - 0x83dc: 0xe00004af, 0x83dd: 0xe0000644, 0x83de: 0xe0000798, 0x83df: 0xf0001e1e, - 0x83e0: 0x002d9a8a, 0x83e1: 0xf0001f0a, 0x83e2: 0xf0000a0a, 0x83e3: 0xf0001f0a, - 0x83e4: 0x0030be8a, 0x83e5: 0xf0001f0a, 0x83e6: 0xf0000a0a, 0x83e7: 0xe00010bb, - 0x83e8: 0xe00027f4, 0x83e9: 0x0030f68a, 0x83ea: 0xe0002883, 0x83eb: 0xe000288a, - 0x83ec: 0x002e228a, 0x83ed: 0x002c3a8a, 0x83ee: 0x002c628a, 0x83ef: 0x002e828a, - 0x83f0: 0x002d9a84, 0x83f1: 0xf0001f04, 0x83f2: 0xf0000404, 0x83f3: 0xf0001f04, - 0x83f4: 0x0030be84, 0x83f5: 0xf0001f04, 0x83f6: 0xf0000404, 0x83f7: 0xe00010b6, - 0x83f8: 0xe00027f1, 0x83f9: 0x0030f684, 0x83fa: 0xe0002880, 0x83fb: 0xe0002886, - 0x83fc: 0x002e2284, 0x83fd: 0x002c3a84, 0x83fe: 0x002c6284, 0x83ff: 0x002e8284, - // Block 0x210, offset 0x8400 - 0x8400: 0xe0000024, 0x8401: 0xe0000029, 0x8402: 0xe000002e, 0x8403: 0xe0000033, - 0x8404: 0xe0000038, 0x8405: 0xe000003d, 0x8406: 0xe0000042, 0x8407: 0xe0000047, - 0x8408: 0xf0001f04, 0x8409: 0xf0001f04, 0x840a: 0xf0001f04, 0x840b: 0xf0001f04, - 0x840c: 0xf0001f04, 0x840d: 0xf0001f04, 0x840e: 0xf0001f04, 0x840f: 0xf0001f04, - 0x8410: 0xf0001f04, 0x8411: 0xf0000404, 0x8412: 0xf0000404, 0x8413: 0xf0000404, - 0x8414: 0xf0000404, 0x8415: 0xf0000404, 0x8416: 0xf0000404, 0x8417: 0xf0000404, - 0x8418: 0xf0000404, 0x8419: 0xf0000404, 0x841a: 0xf0000404, 0x841b: 0xf0000404, - 0x841c: 0xf0000404, 0x841d: 0xf0000404, 0x841e: 0xf0000404, 0x841f: 0xf0000404, - 0x8420: 0xf0000404, 0x8421: 0xf0000404, 0x8422: 0xf0000404, 0x8423: 0xf0000404, - 0x8424: 0xf0000404, 0x8425: 0xf0000404, 0x8426: 0xf0000404, 0x8427: 0xf0000404, - 0x8428: 0xf0000404, 0x8429: 0xf0000404, 0x842a: 0xf0000404, 0x842b: 0xf0000404, - 0x842c: 0xf0000404, 0x842d: 0xf0000404, 0x842e: 0xf0000404, 0x842f: 0xf0000404, - 0x8430: 0xf0000404, 0x8431: 0xf0000404, 0x8432: 0xf0000404, 0x8433: 0xe00024e7, - 0x8434: 0xf0000404, 0x8435: 0xf0000404, 0x8436: 0x002bde8c, 0x8437: 0x002c0a8c, - 0x8438: 0x002c3a8c, 0x8439: 0x002c628c, 0x843a: 0x002c988c, 0x843b: 0x002d088c, - 0x843c: 0x002d228c, 0x843d: 0x002d688c, 0x843e: 0x002d9a8c, 0x843f: 0x002dcc8c, - // Block 0x211, offset 0x8440 - 0x8440: 0xf0001d1c, 0x8441: 0xf0001d1d, 0x8442: 0xe00009b7, 0x8443: 0xf0001c1d, - 0x8444: 0xf0001c1c, 0x8445: 0xf0001c1c, 0x8446: 0xe0000a66, 0x8447: 0xe0000a7a, - 0x8448: 0xf0001d1c, 0x8449: 0xf0001c1d, 0x844a: 0xf0001c1c, 0x844b: 0xf0001d1d, - 0x844c: 0xf0001c1c, 0x844d: 0xf0001d1d, 0x844e: 0xf0001d1d, 0x844f: 0xf0001c1c, - 0x8450: 0xf0001c1c, 0x8451: 0xf0001c1c, 0x8452: 0xe0000d0d, 0x8453: 0xe0002818, - 0x8454: 0xf0001c1c, 0x8455: 0xe0000d3a, 0x8456: 0xe0000d46, 0x8457: 0xf0001d1d, - 0x8458: 0xe0000eb0, 0x8459: 0xe0000eb8, 0x845a: 0xf0001d1d, 0x845b: 0xf0001c1c, - 0x845c: 0xf0001c1d, 0x845d: 0xf0001c1d, 0x845e: 0xe00010b2, 0x845f: 0xe00009c8, - 0x8460: 0xf0001f04, 0x8461: 0xf0001f04, 0x8462: 0xf0001f04, 0x8463: 0xf0001f04, - 0x8464: 0xf0001f04, 0x8465: 0xf0001f04, 0x8466: 0xf0001f04, 0x8467: 0xf0001f04, - 0x8468: 0xf0001f04, 0x8469: 0xf0000404, 0x846a: 0xf0000404, 0x846b: 0xf0000404, - 0x846c: 0xf0000404, 0x846d: 0xf0000404, 0x846e: 0xf0000404, 0x846f: 0xf0000404, - 0x8470: 0xf0000404, 0x8471: 0xf0000404, 0x8472: 0xf0000404, 0x8473: 0xf0000404, - 0x8474: 0xf0000404, 0x8475: 0xf0000404, 0x8476: 0xf0000404, 0x8477: 0xf0000404, - 0x8478: 0xf0000404, 0x8479: 0xf0000404, 0x847a: 0xf0000404, 0x847b: 0xf0000404, - 0x847c: 0xf0000404, 0x847d: 0xf0000404, 0x847e: 0xf0000404, 0x847f: 0xe0000bdf, - // Block 0x212, offset 0x8480 - 0x8480: 0xf0001f04, 0x8481: 0xf0001f04, 0x8482: 0xf0001f04, 0x8483: 0xf0001f04, - 0x8484: 0xf0001f04, 0x8485: 0xf0001f04, 0x8486: 0xf0001f04, 0x8487: 0xf0001f04, - 0x8488: 0xf0001f04, 0x8489: 0xf0001f04, 0x848a: 0xf0001f04, - 0x8490: 0xf0000a04, 0x8491: 0xf0000a04, 0x8492: 0xf0000a04, 0x8493: 0xf0000a04, - 0x8494: 0xf0000a04, 0x8495: 0xf0000a04, 0x8496: 0xf0000a04, 0x8497: 0xf0000a04, - 0x8498: 0xf0000a04, 0x8499: 0xf0000a04, 0x849a: 0xf0000a04, 0x849b: 0xf0000a04, - 0x849c: 0xf0000a04, 0x849d: 0xf0000a04, 0x849e: 0xf0000a04, 0x849f: 0xf0000a04, - 0x84a0: 0xf0000a04, 0x84a1: 0xf0000a04, 0x84a2: 0xf0000a04, 0x84a3: 0xf0000a04, - 0x84a4: 0xf0000a04, 0x84a5: 0xf0000a04, 0x84a6: 0xf0000a04, 0x84a7: 0xe00024eb, - 0x84a8: 0xf0000a04, 0x84a9: 0xf0000a04, 0x84aa: 0xf0000a04, 0x84ab: 0x002c3a8c, - 0x84ac: 0x002f7a8c, 0x84ad: 0xf0000c0c, 0x84ae: 0xf0000c0c, - 0x84b0: 0x002bde9d, 0x84b1: 0x002c0a9d, 0x84b2: 0x002c3a9d, 0x84b3: 0x002c629d, - 0x84b4: 0x002c989d, 0x84b5: 0x002d089d, 0x84b6: 0x002d229d, 0x84b7: 0x002d689d, - 0x84b8: 0x002d9a9d, 0x84b9: 0x002dcc9d, 0x84ba: 0x002dfe9d, 0x84bb: 0x002e229d, - 0x84bc: 0x002e829d, 0x84bd: 0x002e9e9d, 0x84be: 0x002ee29d, 0x84bf: 0x002f2c9d, - // Block 0x213, offset 0x84c0 - 0x84c0: 0xa0000000, 0x84c1: 0xa0000000, 0x84c2: 0xa0000000, 0x84c3: 0xa0000000, - 0x84c4: 0xa0000000, 0x84c5: 0xa0000000, 0x84c6: 0xa0000000, 0x84c7: 0xa0000000, - 0x84c8: 0xa0000000, 0x84c9: 0x40020020, 0x84ca: 0x40020220, 0x84cb: 0x40020420, - 0x84cc: 0x40020620, 0x84cd: 0x40020820, 0x84ce: 0xa0000000, 0x84cf: 0xa0000000, - 0x84d0: 0xa0000000, 0x84d1: 0xa0000000, 0x84d2: 0xa0000000, 0x84d3: 0xa0000000, - 0x84d4: 0xa0000000, 0x84d5: 0xa0000000, 0x84d6: 0xa0000000, 0x84d7: 0xa0000000, - 0x84d8: 0xa0000000, 0x84d9: 0xa0000000, 0x84da: 0xa0000000, 0x84db: 0xa0000000, - 0x84dc: 0xa0000000, 0x84dd: 0xa0000000, 0x84de: 0xa0000000, 0x84df: 0xa0000000, - 0x84e0: 0x402be020, 0x84e1: 0x402be220, 0x84e2: 0x402be420, 0x84e3: 0x402be620, - 0x84e4: 0x402be820, 0x84e5: 0x402bea20, 0x84e6: 0x402bec20, 0x84e7: 0x402bee20, - 0x84e8: 0x402bf020, 0x84e9: 0x402bf220, 0x84ea: 0x402bf420, 0x84eb: 0x402bf620, - 0x84ec: 0x402bf820, 0x84ed: 0x402bfa20, 0x84ee: 0x402bfc20, 0x84ef: 0x402bfe20, - 0x84f0: 0x402c0020, 0x84f1: 0x402c0220, 0x84f2: 0x402c0420, 0x84f3: 0x402c0620, - 0x84f4: 0x402c0820, 0x84f5: 0x402c0a20, 0x84f6: 0x402c0c20, 0x84f7: 0x402c0e20, - 0x84f8: 0x402c1020, 0x84f9: 0x402c1220, 0x84fa: 0x402c1420, 0x84fb: 0x402c1620, - 0x84fc: 0x402c1820, 0x84fd: 0x402c1a20, 0x84fe: 0x402c1c20, 0x84ff: 0x402c1e20, - // Block 0x214, offset 0x8500 - 0x8500: 0x402c2020, 0x8501: 0x402c2220, 0x8502: 0x402c2420, 0x8503: 0x402c2620, - 0x8504: 0x402c2820, 0x8505: 0x402c2a20, 0x8506: 0x402c2c20, 0x8507: 0x402c2e20, - 0x8508: 0x402c3020, 0x8509: 0x402c3220, 0x850a: 0x402c3420, 0x850b: 0x402c3620, - 0x850c: 0xc52f0002, 0x850d: 0x402c3a20, 0x850e: 0x402c3c20, 0x850f: 0x402c3e20, - 0x8510: 0x402c4020, 0x8511: 0x402c4220, 0x8512: 0x402c4420, 0x8513: 0x402c4620, - 0x8514: 0x402c4820, 0x8515: 0x402c4a20, 0x8516: 0x402c4c20, 0x8517: 0x402c4e20, - 0x8518: 0x402c5020, 0x8519: 0x402c5220, 0x851a: 0x402c5420, 0x851b: 0x402c5620, - 0x851c: 0x402c5820, 0x851d: 0x402c5a20, 0x851e: 0x402c5c20, 0x851f: 0x402c5e20, - 0x8520: 0x402c6020, 0x8521: 0x402c6220, 0x8522: 0x402c6420, 0x8523: 0x402c6620, - 0x8524: 0x402c6820, 0x8525: 0x402c6a20, 0x8526: 0x402c6c20, 0x8527: 0x402c6e20, - 0x8528: 0x402c7020, 0x8529: 0x402c7220, 0x852a: 0x402c7420, 0x852b: 0x402c7620, - 0x852c: 0xc52c0002, 0x852d: 0x402c7a20, 0x852e: 0x402c7c20, 0x852f: 0x402c7e20, - 0x8530: 0x402c8020, 0x8531: 0x402c8220, 0x8532: 0x402c8420, 0x8533: 0x402c8620, - 0x8534: 0x402c8820, 0x8535: 0x402c8a20, 0x8536: 0x402c8c20, 0x8537: 0x402c8e20, - 0x8538: 0x402c9020, 0x8539: 0x402c9220, 0x853a: 0x402c9420, 0x853b: 0x402c9620, - 0x853c: 0x402c9820, 0x853d: 0x402c9a20, 0x853e: 0x402c9c20, 0x853f: 0x402c9e20, - // Block 0x215, offset 0x8540 - 0x8540: 0xe0002ed5, 0x8541: 0xe0002ed2, 0x8542: 0xe0002eeb, 0x8543: 0xe0002f0f, - 0x8544: 0xe0002f08, 0x8545: 0xe0002f01, 0x8546: 0xe00009dd, 0x8547: 0xe0002f4b, - 0x8548: 0xe0002f67, 0x8549: 0xe0002f64, 0x854a: 0xe0002f6d, 0x854b: 0xe0002f83, - 0x854c: 0xe0002fe7, 0x854d: 0xe0002fe4, 0x854e: 0xe0002fed, 0x854f: 0xe0002ff3, - 0x8550: 0xe0000ab3, 0x8551: 0xe000305b, 0x8552: 0xe0003070, 0x8553: 0xe000306d, - 0x8554: 0xe0003076, 0x8555: 0xe0003096, 0x8556: 0xe000308c, 0x8557: 0x40093e20, - 0x8558: 0xe0000e12, 0x8559: 0xe0003140, 0x855a: 0xe000313d, 0x855b: 0xe0003146, - 0x855c: 0xe000314f, 0x855d: 0xe00031c0, 0x855e: 0x00318888, 0x855f: 0xe0000f7b, - 0x8560: 0xe00031f0, 0x8561: 0xe00031ed, 0x8562: 0xe0003206, 0x8563: 0xe000322a, - 0x8564: 0xe0003223, 0x8565: 0xe000321c, 0x8566: 0xe00009d5, 0x8567: 0xe000327e, - 0x8568: 0xe000329a, 0x8569: 0xe0003297, 0x856a: 0xe00032a0, 0x856b: 0xe00032b6, - 0x856c: 0xe000331d, 0x856d: 0xe000331a, 0x856e: 0xe0003323, 0x856f: 0xe0003329, - 0x8570: 0xe0000aad, 0x8571: 0xe0003385, 0x8572: 0xe000339a, 0x8573: 0xe0003397, - 0x8574: 0xe00033a0, 0x8575: 0xe00033c0, 0x8576: 0xe00033b6, 0x8577: 0x40093c20, - 0x8578: 0xe0000e0f, 0x8579: 0xe000346d, 0x857a: 0xe000346a, 0x857b: 0xe0003473, - 0x857c: 0xe000347c, 0x857d: 0xe00034f0, 0x857e: 0x40318820, 0x857f: 0xe00034fc, - // Block 0x216, offset 0x8580 - 0x8580: 0xe0002f1c, 0x8581: 0xe0003237, 0x8582: 0xe0002ed8, 0x8583: 0xe00031f3, - 0x8584: 0xe0002f19, 0x8585: 0xe0003234, 0x8586: 0xe0002f3f, 0x8587: 0xe0003272, - 0x8588: 0xe0002f42, 0x8589: 0xe0003275, 0x858a: 0xe0002f48, 0x858b: 0xe000327b, - 0x858c: 0xe0002f45, 0x858d: 0xe0003278, 0x858e: 0xe0002f52, 0x858f: 0xe0003285, - 0x8590: 0xe0000aaa, 0x8591: 0xe0000aa7, 0x8592: 0xe0002f96, 0x8593: 0xe00032c9, - 0x8594: 0xe0002f6a, 0x8595: 0xe000329d, 0x8596: 0xe0002f89, 0x8597: 0xe00032bc, - 0x8598: 0xe0002f93, 0x8599: 0xe00032c6, 0x859a: 0xe0002f80, 0x859b: 0xe00032b3, - 0x859c: 0xe0002fc0, 0x859d: 0xe00032f3, 0x859e: 0xe0002fbd, 0x859f: 0xe00032f0, - 0x85a0: 0xe0002fc6, 0x85a1: 0xe00032f9, 0x85a2: 0xe0002fc9, 0x85a3: 0xe00032fc, - 0x85a4: 0xe0002fcf, 0x85a5: 0xe0003302, 0x85a6: 0xe0000c1b, 0x85a7: 0xe0000c18, - 0x85a8: 0xe0002ffa, 0x85a9: 0xe0003330, 0x85aa: 0xe0003003, 0x85ab: 0xe0003336, - 0x85ac: 0xe0002fea, 0x85ad: 0xe0003320, 0x85ae: 0xe0003000, 0x85af: 0xe0003333, - 0x85b0: 0xe0002ffd, 0x85b1: 0x402da220, 0x85b2: 0xe00027e2, 0x85b3: 0xe00027df, - 0x85b4: 0xe0003015, 0x85b5: 0xe0003348, 0x85b6: 0xe000301e, 0x85b7: 0xe0003354, - 0x85b8: 0x402f7220, 0x85b9: 0xe0003027, 0x85ba: 0xe000335d, 0x85bb: 0xe000302d, - 0x85bc: 0xe0003363, 0x85bd: 0xe000302a, 0x85be: 0xe0003360, 0x85bf: 0xe0000d04, - // Block 0x217, offset 0x85c0 - 0x85c0: 0xe0000cfe, 0x85c1: 0xe0000cf8, 0x85c2: 0xe0000cf5, 0x85c3: 0xe0003052, - 0x85c4: 0xe000337c, 0x85c5: 0xe0003061, 0x85c6: 0xe000338b, 0x85c7: 0xe0003058, - 0x85c8: 0xe0003382, 0x85c9: 0xe00035a1, 0x85ca: 0x002eda88, 0x85cb: 0x402eda20, - 0x85cc: 0xe00030b3, 0x85cd: 0xe00033dd, 0x85ce: 0xe0003073, 0x85cf: 0xe000339d, - 0x85d0: 0xe0003093, 0x85d1: 0xe00033bd, 0x85d2: 0xe0000e93, 0x85d3: 0xe0000e8f, - 0x85d4: 0xe00030eb, 0x85d5: 0xe0003415, 0x85d6: 0xe00030f4, 0x85d7: 0xe000341e, - 0x85d8: 0xe00030ee, 0x85d9: 0xe0003418, 0x85da: 0xe0003107, 0x85db: 0xe0003431, - 0x85dc: 0xe000310e, 0x85dd: 0xe0003438, 0x85de: 0xe000311b, 0x85df: 0xe0003445, - 0x85e0: 0xe0003111, 0x85e1: 0xe000343b, 0x85e2: 0xe000312e, 0x85e3: 0xe000345b, - 0x85e4: 0xe0003128, 0x85e5: 0xe0003452, 0x85e6: 0x00303688, 0x85e7: 0x40303620, - 0x85e8: 0xe0003165, 0x85e9: 0xe0003492, 0x85ea: 0xe000316f, 0x85eb: 0xe000349c, - 0x85ec: 0xe0003143, 0x85ed: 0xe0003470, 0x85ee: 0xe000314c, 0x85ef: 0xe0003479, - 0x85f0: 0xe0003162, 0x85f1: 0xe000348f, 0x85f2: 0xe000316c, 0x85f3: 0xe0003499, - 0x85f4: 0xe00031ae, 0x85f5: 0xe00034db, 0x85f6: 0xe00031c6, 0x85f7: 0xe00034f6, - 0x85f8: 0xe00031c9, 0x85f9: 0xe00031db, 0x85fa: 0xe000350e, 0x85fb: 0xe00031e4, - 0x85fc: 0xe0003517, 0x85fd: 0xe00031e1, 0x85fe: 0xe0003514, 0x85ff: 0xe0000f64, - // Block 0x218, offset 0x8600 - 0x8600: 0x402c1a20, 0x8601: 0x002c2a88, 0x8602: 0x002c3288, 0x8603: 0x402c3220, - 0x8604: 0x0031c488, 0x8605: 0x4031c420, 0x8606: 0x002efa88, 0x8607: 0x002c4e88, - 0x8608: 0x402c4e20, 0x8609: 0x002c7288, 0x860a: 0x002c7a88, 0x860b: 0x002c8488, - 0x860c: 0x402c8420, 0x860d: 0xe000115c, 0x860e: 0x002cae88, 0x860f: 0x002cb888, - 0x8610: 0x002cc288, 0x8611: 0x002d1688, 0x8612: 0x402d1620, 0x8613: 0x002d4488, - 0x8614: 0x002d5888, 0x8615: 0x402d7820, 0x8616: 0x002dc288, 0x8617: 0x002db688, - 0x8618: 0x002e0a88, 0x8619: 0x402e0a20, 0x861a: 0x402e3820, 0x861b: 0x402e7220, - 0x861c: 0x0030a088, 0x861d: 0x002eb488, 0x861e: 0x402ebc20, 0x861f: 0x002f1088, - 0x8620: 0xe00030c7, 0x8621: 0xe00033f1, 0x8622: 0x002d6088, 0x8623: 0x402d6020, - 0x8624: 0x002f3e88, 0x8625: 0x402f3e20, 0x8626: 0x002f8288, 0x8627: 0x0031b488, - 0x8628: 0x4031b420, 0x8629: 0x00300888, 0x862a: 0x40301220, 0x862b: 0x40304220, - 0x862c: 0x00304a88, 0x862d: 0x40304a20, 0x862e: 0x00305288, 0x862f: 0xe000317f, - 0x8630: 0xe00034ac, 0x8631: 0x0030b488, 0x8632: 0x0030cc88, 0x8633: 0x00311888, - 0x8634: 0x40311820, 0x8635: 0x00313488, 0x8636: 0x40313420, 0x8637: 0x00316488, - 0x8638: 0x00316e88, 0x8639: 0x40316e20, 0x863a: 0x40317820, 0x863b: 0x4031a620, - 0x863c: 0x0031bc88, 0x863d: 0x4031bc20, 0x863e: 0xe0000fc9, 0x863f: 0x40319420, - // Block 0x219, offset 0x8640 - 0x8640: 0x40321220, 0x8641: 0x40321a20, 0x8642: 0x40322220, 0x8643: 0x40322a20, - 0x8644: 0xe0000ad5, 0x8645: 0xe0000ad1, 0x8646: 0xe0000acd, 0x8647: 0xe0003535, - 0x8648: 0xe0003532, 0x8649: 0xe000352f, 0x864a: 0xe000357a, 0x864b: 0xe0003577, - 0x864c: 0xe0003574, 0x864d: 0xe0002efe, 0x864e: 0xe0003219, 0x864f: 0xe0002ff0, - 0x8650: 0xe0003326, 0x8651: 0xe0003089, 0x8652: 0xe00033b3, 0x8653: 0xe0003149, - 0x8654: 0xe0003476, 0x8655: 0xe000315e, 0x8656: 0xe000348b, 0x8657: 0xe0003152, - 0x8658: 0xe000347f, 0x8659: 0xe000315a, 0x865a: 0xe0003487, 0x865b: 0xe0003156, - 0x865c: 0xe0003483, 0x865d: 0x402cae20, 0x865e: 0xe0002f0b, 0x865f: 0xe0003226, - 0x8660: 0xe0002f15, 0x8661: 0xe0003230, 0x8662: 0xe00009f4, 0x8663: 0xe00009ef, - 0x8664: 0x002d3a88, 0x8665: 0x402d3a20, 0x8666: 0xe0002fc3, 0x8667: 0xe00032f6, - 0x8668: 0xe000301b, 0x8669: 0xe0003351, 0x866a: 0xe00030ac, 0x866b: 0xe00033d6, - 0x866c: 0xe00030af, 0x866d: 0xe00033d9, 0x866e: 0xe0001162, 0x866f: 0xe000115f, - 0x8670: 0xe000334b, 0x8671: 0xe0003266, 0x8672: 0xe0003263, 0x8673: 0xe0003260, - 0x8674: 0xe0002fba, 0x8675: 0xe00032ed, 0x8676: 0x002d7888, 0x8677: 0x00319488, - 0x8678: 0xe0003055, 0x8679: 0xe000337f, 0x867a: 0xe0002f04, 0x867b: 0xe000321f, - 0x867c: 0xe00009ea, 0x867d: 0xe00009e5, 0x867e: 0xe0000e19, 0x867f: 0xe0000e15, - // Block 0x21a, offset 0x8680 - 0x8680: 0xe0002f22, 0x8681: 0xe000323d, 0x8682: 0xe0002f25, 0x8683: 0xe0003240, - 0x8684: 0xe0002fa4, 0x8685: 0xe00032d7, 0x8686: 0xe0002fa7, 0x8687: 0xe00032da, - 0x8688: 0xe0003009, 0x8689: 0xe000333c, 0x868a: 0xe000300c, 0x868b: 0xe000333f, - 0x868c: 0xe00030c1, 0x868d: 0xe00033eb, 0x868e: 0xe00030c4, 0x868f: 0xe00033ee, - 0x8690: 0xe00030f7, 0x8691: 0xe0003421, 0x8692: 0xe00030fa, 0x8693: 0xe0003424, - 0x8694: 0xe0003179, 0x8695: 0xe00034a6, 0x8696: 0xe000317c, 0x8697: 0xe00034a9, - 0x8698: 0xe0003125, 0x8699: 0xe000344f, 0x869a: 0xe0003134, 0x869b: 0xe0003461, - 0x869c: 0x00312288, 0x869d: 0x40312220, 0x869e: 0xe0002fd2, 0x869f: 0xe0003305, - 0x86a0: 0x002ebc88, 0x86a1: 0x402c8c20, 0x86a2: 0x002f2288, 0x86a3: 0x402f2220, - 0x86a4: 0x00314088, 0x86a5: 0x40314020, 0x86a6: 0xe0002f12, 0x86a7: 0xe000322d, - 0x86a8: 0xe0002f8c, 0x86a9: 0xe00032bf, 0x86aa: 0xe000308f, 0x86ab: 0xe00033b9, - 0x86ac: 0xe00030a1, 0x86ad: 0xe00033cb, 0x86ae: 0xe00030a5, 0x86af: 0xe00033cf, - 0x86b0: 0xe00030a8, 0x86b1: 0xe00033d2, 0x86b2: 0xe00031d2, 0x86b3: 0xe0003505, - 0x86b4: 0x402e5e20, 0x86b5: 0x402ed020, 0x86b6: 0x40305a20, 0x86b7: 0x402dd420, - 0x86b8: 0xe0000abf, 0x86b9: 0xe0000ec4, 0x86ba: 0x002be888, 0x86bb: 0x002c4488, - 0x86bc: 0x402c4420, 0x86bd: 0x002e3888, 0x86be: 0x00303e88, 0x86bf: 0x402ffc20, - // Block 0x21b, offset 0x86c0 - 0x86c0: 0xae603502, 0x86c1: 0xae603202, 0x86c2: 0xae604502, 0x86c3: 0xae602202, - 0x86c4: 0xe0000000, 0x86c5: 0xaf007f02, 0x86c6: 0xae605f02, 0x86c7: 0xadc06002, - 0x86c8: 0xadc06002, 0x86c9: 0xadc06002, 0x86ca: 0xae605f02, 0x86cb: 0xae605f02, - 0x86cc: 0xae605f02, 0x86cd: 0xadc06002, 0x86ce: 0xadc06002, 0x86cf: 0xa0000000, - 0x86d0: 0xae605f02, 0x86d1: 0xae605f02, 0x86d2: 0xae605f02, 0x86d3: 0xadc06002, - 0x86d4: 0xadc06002, 0x86d5: 0xadc06002, 0x86d6: 0xadc06002, 0x86d7: 0xae605f02, - 0x86d8: 0xae808002, 0x86d9: 0xadc06002, 0x86da: 0xadc06002, 0x86db: 0xae605f02, - 0x86dc: 0xae906002, 0x86dd: 0xaea05f02, 0x86de: 0xaea05f02, 0x86df: 0xae906002, - 0x86e0: 0xaea08102, 0x86e1: 0xaea08202, 0x86e2: 0xae906002, 0x86e3: 0x84e615ef, - 0x86e4: 0x84e6164c, 0x86e5: 0x84e616cd, 0x86e6: 0x84e61771, 0x86e7: 0x84e61836, - 0x86e8: 0x84e6161d, 0x86e9: 0x84e61631, 0x86ea: 0x84e616b4, 0x86eb: 0x84e61741, - 0x86ec: 0x84e617bd, 0x86ed: 0x84e61816, 0x86ee: 0x84e6185f, 0x86ef: 0x84e6187b, - 0x86f0: 0x00326688, 0x86f1: 0x40326620, 0x86f2: 0x0032a688, 0x86f3: 0x4032a620, - 0x86f4: 0x40064020, 0x86f5: 0x40064220, 0x86f6: 0x00326088, 0x86f7: 0x40326020, - 0x86fa: 0x00326c84, 0x86fb: 0x40329220, - 0x86fc: 0x40329020, 0x86fd: 0x40329420, 0x86fe: 0x402c1620, - // Block 0x21c, offset 0x8700 - 0x8700: 0xe0002f33, 0x8701: 0xe000324e, 0x8702: 0xe0002f36, 0x8703: 0xe0003269, - 0x8704: 0xe0002f39, 0x8705: 0xe000326c, 0x8706: 0xe0002f3c, 0x8707: 0xe000326f, - 0x8708: 0xe0002f4e, 0x8709: 0xe0003281, 0x870a: 0xe0002f55, 0x870b: 0xe0003288, - 0x870c: 0xe0002f5b, 0x870d: 0xe000328e, 0x870e: 0xe0002f61, 0x870f: 0xe0003294, - 0x8710: 0xe0002f58, 0x8711: 0xe000328b, 0x8712: 0xe0002f5e, 0x8713: 0xe0003291, - 0x8714: 0xe0002f9d, 0x8715: 0xe00032d0, 0x8716: 0xe0002f99, 0x8717: 0xe00032cc, - 0x8718: 0xe0002fb1, 0x8719: 0xe00032e4, 0x871a: 0xe0002fb4, 0x871b: 0xe00032e7, - 0x871c: 0xe0002f8f, 0x871d: 0xe00032c2, 0x871e: 0xe0002fb7, 0x871f: 0xe00032ea, - 0x8720: 0xe0002fcc, 0x8721: 0xe00032ff, 0x8722: 0xe0002fd8, 0x8723: 0xe000330b, - 0x8724: 0xe0002fde, 0x8725: 0xe0003311, 0x8726: 0xe0002fd5, 0x8727: 0xe0003308, - 0x8728: 0xe0002fdb, 0x8729: 0xe000330e, 0x872a: 0xe0002fe1, 0x872b: 0xe0003314, - 0x872c: 0xe0003012, 0x872d: 0xe0003345, 0x872e: 0xe0002ff6, 0x872f: 0xe000332c, - 0x8730: 0xe0003018, 0x8731: 0xe000334e, 0x8732: 0xe0003021, 0x8733: 0xe0003357, - 0x8734: 0xe0003024, 0x8735: 0xe000335a, 0x8736: 0xe0003030, 0x8737: 0xe0003366, - 0x8738: 0xe0003033, 0x8739: 0xe0003369, 0x873a: 0xe000303a, 0x873b: 0xe0003370, - 0x873c: 0xe0003037, 0x873d: 0xe000336d, 0x873e: 0xe000303d, 0x873f: 0xe0003373, - // Block 0x21d, offset 0x8740 - 0x8740: 0xe0003040, 0x8741: 0xe0003376, 0x8742: 0xe0003043, 0x8743: 0xe0003379, - 0x8744: 0xe000305e, 0x8745: 0xe0003388, 0x8746: 0xe0003064, 0x8747: 0xe000338e, - 0x8748: 0xe000306a, 0x8749: 0xe0003394, 0x874a: 0xe0003067, 0x874b: 0xe0003391, - 0x874c: 0xe0003099, 0x874d: 0xe00033c3, 0x874e: 0xe000309d, 0x874f: 0xe00033c7, - 0x8750: 0xe00030ba, 0x8751: 0xe00033e4, 0x8752: 0xe00030b6, 0x8753: 0xe00033e0, - 0x8754: 0xe00030e5, 0x8755: 0xe000340f, 0x8756: 0xe00030e8, 0x8757: 0xe0003412, - 0x8758: 0xe00030f1, 0x8759: 0xe000341b, 0x875a: 0xe00030fd, 0x875b: 0xe0003427, - 0x875c: 0xe0003100, 0x875d: 0xe000342a, 0x875e: 0xe0003104, 0x875f: 0xe000342e, - 0x8760: 0xe0003118, 0x8761: 0xe0003442, 0x8762: 0xe000311e, 0x8763: 0xe0003448, - 0x8764: 0xe000310a, 0x8765: 0xe0003434, 0x8766: 0xe0003114, 0x8767: 0xe000343e, - 0x8768: 0xe0003121, 0x8769: 0xe000344b, 0x876a: 0xe000312b, 0x876b: 0xe0003458, - 0x876c: 0xe0003131, 0x876d: 0xe000345e, 0x876e: 0xe000313a, 0x876f: 0xe0003467, - 0x8770: 0xe0003137, 0x8771: 0xe0003464, 0x8772: 0xe0003199, 0x8773: 0xe00034c6, - 0x8774: 0xe000319f, 0x8775: 0xe00034cc, 0x8776: 0xe000319c, 0x8777: 0xe00034c9, - 0x8778: 0xe0003168, 0x8779: 0xe0003495, 0x877a: 0xe0003172, 0x877b: 0xe000349f, - 0x877c: 0xe00031a2, 0x877d: 0xe00034cf, 0x877e: 0xe00031a5, 0x877f: 0xe00034d2, - // Block 0x21e, offset 0x8780 - 0x8780: 0xe00031ab, 0x8781: 0xe00034d8, 0x8782: 0xe00031a8, 0x8783: 0xe00034d5, - 0x8784: 0xe00031b1, 0x8785: 0xe00034e1, 0x8786: 0xe00031b4, 0x8787: 0xe00034e4, - 0x8788: 0xe00031b7, 0x8789: 0xe00034e7, 0x878a: 0xe00031bd, 0x878b: 0xe00034ed, - 0x878c: 0xe00031ba, 0x878d: 0xe00034ea, 0x878e: 0xe00031cf, 0x878f: 0xe0003502, - 0x8790: 0xe00031de, 0x8791: 0xe0003511, 0x8792: 0xe00031e7, 0x8793: 0xe000351a, - 0x8794: 0xe00031ea, 0x8795: 0xe000351d, 0x8796: 0xe0003317, 0x8797: 0xe0003455, - 0x8798: 0xe00034de, 0x8799: 0xe00034f9, 0x879a: 0xe0002ec6, 0x879b: 0xe0000f70, - 0x879c: 0x40300420, 0x879d: 0x40300620, 0x879e: 0xe0000f7f, 0x879f: 0x402c9620, - 0x87a0: 0xe0002f28, 0x87a1: 0xe0003243, 0x87a2: 0xe0002f1f, 0x87a3: 0xe000323a, - 0x87a4: 0xe0002eee, 0x87a5: 0xe0003209, 0x87a6: 0xe0002ef2, 0x87a7: 0xe000320d, - 0x87a8: 0xe0002efa, 0x87a9: 0xe0003215, 0x87aa: 0xe0002ef6, 0x87ab: 0xe0003211, - 0x87ac: 0xe0002f2f, 0x87ad: 0xe000324a, 0x87ae: 0xe0002edb, 0x87af: 0xe00031f6, - 0x87b0: 0xe0002edf, 0x87b1: 0xe00031fa, 0x87b2: 0xe0002ee7, 0x87b3: 0xe0003202, - 0x87b4: 0xe0002ee3, 0x87b5: 0xe00031fe, 0x87b6: 0xe0002f2b, 0x87b7: 0xe0003246, - 0x87b8: 0xe0002faa, 0x87b9: 0xe00032dd, 0x87ba: 0xe0002fa1, 0x87bb: 0xe00032d4, - 0x87bc: 0xe0002f86, 0x87bd: 0xe00032b9, 0x87be: 0xe0002f70, 0x87bf: 0xe00032a3, - // Block 0x21f, offset 0x87c0 - 0x87c0: 0xe0002f74, 0x87c1: 0xe00032a7, 0x87c2: 0xe0002f7c, 0x87c3: 0xe00032af, - 0x87c4: 0xe0002f78, 0x87c5: 0xe00032ab, 0x87c6: 0xe0002fad, 0x87c7: 0xe00032e0, - 0x87c8: 0xe0003006, 0x87c9: 0xe0003339, 0x87ca: 0xe000300f, 0x87cb: 0xe0003342, - 0x87cc: 0xe00030de, 0x87cd: 0xe0003408, 0x87ce: 0xe00030be, 0x87cf: 0xe00033e8, - 0x87d0: 0xe0003079, 0x87d1: 0xe00033a3, 0x87d2: 0xe000307d, 0x87d3: 0xe00033a7, - 0x87d4: 0xe0003085, 0x87d5: 0xe00033af, 0x87d6: 0xe0003081, 0x87d7: 0xe00033ab, - 0x87d8: 0xe00030e1, 0x87d9: 0xe000340b, 0x87da: 0xe00030ca, 0x87db: 0xe00033f4, - 0x87dc: 0xe00030ce, 0x87dd: 0xe00033f8, 0x87de: 0xe00030d6, 0x87df: 0xe0003400, - 0x87e0: 0xe00030d2, 0x87e1: 0xe00033fc, 0x87e2: 0xe00030da, 0x87e3: 0xe0003404, - 0x87e4: 0xe0003196, 0x87e5: 0xe00034c3, 0x87e6: 0xe0003176, 0x87e7: 0xe00034a3, - 0x87e8: 0xe0003182, 0x87e9: 0xe00034af, 0x87ea: 0xe0003186, 0x87eb: 0xe00034b3, - 0x87ec: 0xe000318e, 0x87ed: 0xe00034bb, 0x87ee: 0xe000318a, 0x87ef: 0xe00034b7, - 0x87f0: 0xe0003192, 0x87f1: 0xe00034bf, 0x87f2: 0xe00031c3, 0x87f3: 0xe00034f3, - 0x87f4: 0xe00031d8, 0x87f5: 0xe000350b, 0x87f6: 0xe00031d5, 0x87f7: 0xe0003508, - 0x87f8: 0xe00031cc, 0x87f9: 0xe00034ff, 0x87fa: 0xe0000d0a, 0x87fb: 0xe0000d07, - 0x87fc: 0x0030d888, 0x87fd: 0x4030d820, 0x87fe: 0x00312088, 0x87ff: 0x40312020, - // Block 0x220, offset 0x8800 - 0x8800: 0x40063a20, 0x8801: 0xe00000b1, 0x8802: 0xe00012ea, 0x8803: 0xe00012f5, - 0x8804: 0xe00012e0, 0x8806: 0xe00012ee, 0x8807: 0xe00012f1, - 0x8808: 0xe000124f, 0x8809: 0xe0001249, 0x880a: 0xe00012e7, 0x880b: 0xe00012dd, - 0x880c: 0xe00012f8, 0x880d: 0xe00000b7, 0x880e: 0xe00000b4, 0x880f: 0xe00000ba, - 0x8810: 0xe0001343, 0x8811: 0xe000135e, 0x8812: 0xe0001356, 0x8813: 0xe0001352, - 0x8816: 0xe0001349, 0x8817: 0xe000135a, - 0x8818: 0xe0001346, 0x8819: 0xe0001361, 0x881a: 0xe0001340, 0x881b: 0xe000133a, - 0x881d: 0xe00000c0, 0x881e: 0xe00000bd, 0x881f: 0xe00000c3, - 0x8820: 0xe00013e6, 0x8821: 0xe0001401, 0x8822: 0xe00013f9, 0x8823: 0xe00013f5, - 0x8824: 0xe00013a4, 0x8825: 0xe00013a7, 0x8826: 0xe00013ec, 0x8827: 0xe00013fd, - 0x8828: 0xe00013e9, 0x8829: 0xe0001404, 0x882a: 0xe00013e3, 0x882b: 0xe00013dd, - 0x882c: 0xe00013aa, 0x882d: 0xe00000ae, 0x882e: 0xe00000ab, 0x882f: 0x402c6020, - 0x8832: 0xe000149f, 0x8833: 0xe00014aa, - 0x8834: 0xe0001495, 0x8836: 0xe00014a3, 0x8837: 0xe00014a6, - 0x8838: 0xe00013a1, 0x8839: 0xe000139b, 0x883a: 0xe000149c, 0x883b: 0xe0001492, - 0x883c: 0xe00014ad, 0x883d: 0x40062020, 0x883e: 0x40063820, - // Block 0x221, offset 0x8840 - 0x8840: 0x00021284, 0x8841: 0x00021284, 0x8842: 0x00021284, 0x8843: 0x00021284, - 0x8844: 0x00021284, 0x8845: 0x00021284, 0x8846: 0x00021284, 0x8847: 0x0002129b, - 0x8848: 0x00021284, 0x8849: 0x00021284, 0x884a: 0x00021284, 0x884b: 0xa0000000, - 0x884c: 0xa0000000, 0x884d: 0xa0000000, 0x884e: 0xa0000000, 0x884f: 0xa0000000, - 0x8850: 0x40022620, 0x8851: 0x0002269b, 0x8852: 0x40022820, 0x8853: 0x40022a20, - 0x8854: 0x40022c20, 0x8855: 0x40022e20, 0x8856: 0x4004c420, 0x8857: 0x40021820, - 0x8858: 0x4003d420, 0x8859: 0x4003d620, 0x885a: 0x4003d820, 0x885b: 0x4003da20, - 0x885c: 0x4003e220, 0x885d: 0x4003e420, 0x885e: 0x4003e620, 0x885f: 0x4003e820, - 0x8860: 0x4004f820, 0x8861: 0x4004fa20, 0x8862: 0x40050220, 0x8863: 0x40050420, - 0x8864: 0x0002e484, 0x8865: 0xe0002b62, 0x8866: 0xe0002b68, 0x8867: 0x40050620, - 0x8868: 0x40020e20, 0x8869: 0x40021020, 0x886a: 0xa0000000, 0x886b: 0xa0000000, - 0x886c: 0xa0000000, 0x886d: 0xa0000000, 0x886e: 0xa0000000, 0x886f: 0x0002129b, - 0x8870: 0x4004f020, 0x8871: 0x4004f420, 0x8872: 0x40050e20, 0x8873: 0xf0001f04, - 0x8874: 0xf0000404, 0x8875: 0x40051020, 0x8876: 0xf0001f04, 0x8877: 0xf0000404, - 0x8878: 0x40051620, 0x8879: 0x4003dc20, 0x887a: 0x4003de20, 0x887b: 0x40051820, - 0x887c: 0xe0002b56, 0x887d: 0x4002e020, 0x887e: 0x40021420, 0x887f: 0x40051a20, - // Block 0x222, offset 0x8880 - 0x8880: 0x40051e20, 0x8881: 0x40052220, 0x8882: 0x40052420, 0x8883: 0x40050820, - 0x8884: 0x40095820, 0x8885: 0x40040c20, 0x8886: 0x40040e20, 0x8887: 0xe0002b5f, - 0x8888: 0xe0002b5c, 0x8889: 0xe0002b59, 0x888a: 0x4004e820, 0x888b: 0x4004d420, - 0x888c: 0x40050a20, 0x888d: 0x40050c20, 0x888e: 0x4004da20, 0x888f: 0x40026620, - 0x8890: 0x40052020, 0x8891: 0x4004dc20, 0x8892: 0x40095020, 0x8893: 0x40023420, - 0x8894: 0x40051c20, 0x8895: 0x40039c20, 0x8896: 0x40039e20, 0x8897: 0xe00000a6, - 0x8898: 0x4003a020, 0x8899: 0x4003a220, 0x889a: 0x4003a420, 0x889b: 0x4003a620, - 0x889c: 0x4003a820, 0x889d: 0x4003aa20, 0x889e: 0x4003ac20, 0x889f: 0x00021284, - 0x88a0: 0xa0000000, 0x88a1: 0xa0000000, 0x88a2: 0xa0000000, 0x88a3: 0xa0000000, - 0x88a4: 0xa0000000, - 0x88aa: 0xa0000000, 0x88ab: 0xa0000000, - 0x88ac: 0xa0000000, 0x88ad: 0xa0000000, 0x88ae: 0xa0000000, 0x88af: 0xa0000000, - 0x88b0: 0x0029cc94, 0x88b1: 0x002d9a94, - 0x88b4: 0x0029d494, 0x88b5: 0x0029d694, 0x88b6: 0x0029d894, 0x88b7: 0x0029da94, - 0x88b8: 0x0029dc94, 0x88b9: 0x0029de94, 0x88ba: 0x00093894, 0x88bb: 0x00094e94, - 0x88bc: 0x00094294, 0x88bd: 0x0003f494, 0x88be: 0x0003f694, 0x88bf: 0x002e9e94, - // Block 0x223, offset 0x88c0 - 0x88c0: 0xe00009bc, 0x88c1: 0xe00009c0, 0x88c2: 0x002c3a8b, 0x88c3: 0xe0002cdc, - 0x88c4: 0x40081c20, 0x88c5: 0xe0000a5e, 0x88c6: 0xe0000a62, 0x88c7: 0x002cc28a, - 0x88c8: 0x40081e20, 0x88c9: 0xe0002cdf, 0x88ca: 0x002d2285, 0x88cb: 0x002d688b, - 0x88cc: 0x002d688b, 0x88cd: 0x002d688b, 0x88ce: 0x002d6885, 0x88cf: 0xf0000202, - 0x88d0: 0x002d9a8b, 0x88d1: 0x002d9a8b, 0x88d2: 0x002e228b, 0x88d3: 0x002e2285, - 0x88d4: 0x40082020, 0x88d5: 0x002e9e8b, 0x88d6: 0xe000281e, 0x88d7: 0x40082220, - 0x88d8: 0x40082420, 0x88d9: 0x002f2c8b, 0x88da: 0x002f568b, 0x88db: 0x002f7a8b, - 0x88dc: 0x002f7a8b, 0x88dd: 0x002f7a8b, 0x88de: 0x40082620, 0x88df: 0x40082820, - 0x88e0: 0xe0002833, 0x88e1: 0xe0000fbd, 0x88e2: 0xe0002842, 0x88e3: 0x40082a20, - 0x88e4: 0x00312a8b, 0x88e5: 0x40082c20, 0x88e6: 0x0032a288, 0x88e7: 0x40082e20, - 0x88e8: 0x00312a8b, 0x88e9: 0x40083020, 0x88ea: 0x402c3620, 0x88eb: 0xe0002f01, - 0x88ec: 0x002c0a8b, 0x88ed: 0x002c3a8b, 0x88ee: 0x40083220, 0x88ef: 0x002c9885, - 0x88f0: 0x002c988b, 0x88f1: 0x002d088b, 0x88f2: 0x002d1e88, 0x88f3: 0x002e828b, - 0x88f4: 0x002ee285, 0x88f5: 0x00389084, 0x88f6: 0x00389284, 0x88f7: 0x00389484, - 0x88f8: 0x00389684, 0x88f9: 0x002d9a85, 0x88fa: 0x40083420, 0x88fb: 0xe0000b95, - 0x88fc: 0x00327e85, 0x88fd: 0x00325685, 0x88fe: 0x0032568b, 0x88ff: 0x00327e8b, - // Block 0x224, offset 0x8900 - 0x8900: 0x00093685, 0x8901: 0x40083620, 0x8902: 0x40083820, 0x8903: 0x40083a20, - 0x8904: 0x40083c20, 0x8905: 0x002c628b, 0x8906: 0x002c6285, 0x8907: 0x002c9885, - 0x8908: 0x002d9a85, 0x8909: 0x002dcc85, 0x890a: 0x40083e20, 0x890b: 0x400a6e20, - 0x890c: 0x40084020, 0x890d: 0xe00009c4, 0x890e: 0x402d1e20, 0x890f: 0x40084220, - 0x8910: 0xe00002cb, 0x8911: 0xe00002d3, 0x8912: 0xe00002b2, 0x8913: 0xe00002bb, - 0x8914: 0xe00003cd, 0x8915: 0xe00002c3, 0x8916: 0xe00003d1, 0x8917: 0xe00004ab, - 0x8918: 0xe0000579, 0x8919: 0xe00002c7, 0x891a: 0xe0000640, 0x891b: 0xe00002cf, - 0x891c: 0xe00004af, 0x891d: 0xe0000644, 0x891e: 0xe0000798, 0x891f: 0xe0002cf8, - 0x8920: 0x002d9a8a, 0x8921: 0xe00027d4, 0x8922: 0xe00027db, 0x8923: 0xe00027ee, - 0x8924: 0x0030be8a, 0x8925: 0xe0002848, 0x8926: 0xe000284f, 0x8927: 0xe00010bb, - 0x8928: 0xe00027f4, 0x8929: 0x0030f68a, 0x892a: 0xe0002883, 0x892b: 0xe000288a, - 0x892c: 0x002e228a, 0x892d: 0x002c3a8a, 0x892e: 0x002c628a, 0x892f: 0x002e828a, - 0x8930: 0x002d9a84, 0x8931: 0xe00027d1, 0x8932: 0xe00027d7, 0x8933: 0xe00027eb, - 0x8934: 0x0030be84, 0x8935: 0xe0002845, 0x8936: 0xe000284b, 0x8937: 0xe00010b6, - 0x8938: 0xe00027f1, 0x8939: 0x0030f684, 0x893a: 0xe0002880, 0x893b: 0xe0002886, - 0x893c: 0x002e2284, 0x893d: 0x002c3a84, 0x893e: 0x002c6284, 0x893f: 0x002e8284, - // Block 0x225, offset 0x8940 - 0x8940: 0x4009a620, 0x8941: 0xe00000f5, 0x8942: 0x4009a820, 0x8943: 0x4009aa20, - 0x8944: 0xe00000f8, 0x8945: 0x4009ac20, 0x8946: 0x4009ae20, 0x8947: 0xe00000fb, - 0x8948: 0x4009b020, 0x8949: 0xe00000fe, 0x894a: 0x4009b220, 0x894b: 0x4009b420, - 0x894c: 0x4009b620, 0x894d: 0x4009b820, 0x894e: 0x4009ba20, 0x894f: 0x4009bc20, - 0x8950: 0x4009be20, 0x8951: 0x4009c020, 0x8952: 0x4009c220, 0x8953: 0x4009c420, - 0x8954: 0x4009c620, 0x8955: 0x4009c820, 0x8956: 0x4009ca20, 0x8957: 0x4009cc20, - 0x8958: 0x4009ce20, 0x8959: 0x4009d020, 0x895a: 0x4009d220, 0x895b: 0x4009d420, - 0x895c: 0x4009d620, 0x895d: 0x4009d820, 0x895e: 0x4009da20, 0x895f: 0x4009dc20, - 0x8960: 0xe0002ecc, 0x8961: 0x4009de20, 0x8962: 0xe0000104, 0x8963: 0x4009e020, - 0x8964: 0x4009e220, 0x8965: 0x4009e420, 0x8966: 0x4009e620, 0x8967: 0x4009e820, - 0x8968: 0x4009ea20, 0x8969: 0x4009ec20, 0x896a: 0x4009ee20, 0x896b: 0x4009f020, - 0x896c: 0x4009f220, 0x896d: 0xe0000101, 0x896e: 0xe0002ec9, 0x896f: 0xe0002ecf, - 0x8970: 0xe0000107, 0x8971: 0xe000010a, 0x8972: 0x4009f420, 0x8973: 0x4009f620, - 0x8974: 0xe000010d, 0x8975: 0xe0000110, 0x8976: 0x4009f820, 0x8977: 0x4009fa20, - 0x8978: 0xe0000113, 0x8979: 0xe0000116, 0x897a: 0x4009fc20, 0x897b: 0x4009fe20, - 0x897c: 0x400a0020, 0x897d: 0x400a0220, 0x897e: 0x400a0420, 0x897f: 0x400a0620, - // Block 0x226, offset 0x8980 - 0x8980: 0x400d1820, 0x8981: 0x400d1a20, 0x8982: 0x400d1c20, 0x8983: 0x400d1e20, - 0x8984: 0x400d2020, 0x8985: 0x400d2220, 0x8986: 0x400d2420, 0x8987: 0x400d2620, - 0x8988: 0x400d2820, 0x8989: 0x400d2a20, 0x898a: 0x400d2c20, - 0x89a0: 0x0029ce86, 0x89a1: 0x0029d086, 0x89a2: 0x0029d286, 0x89a3: 0x0029d486, - 0x89a4: 0x0029d686, 0x89a5: 0x0029d886, 0x89a6: 0x0029da86, 0x89a7: 0x0029dc86, - 0x89a8: 0x0029de86, 0x89a9: 0xe0002cfb, 0x89aa: 0xe0002d0e, 0x89ab: 0xe0002d21, - 0x89ac: 0xe0002d34, 0x89ad: 0xe0002d43, 0x89ae: 0xe0002d52, 0x89af: 0xe0002d61, - 0x89b0: 0xe0002d70, 0x89b1: 0xe0002d7f, 0x89b2: 0xe0002d8e, 0x89b3: 0xe0002dac, - 0x89b4: 0xe0002b70, 0x89b5: 0xe0002b74, 0x89b6: 0xe0002b78, 0x89b7: 0xe0002b7c, - 0x89b8: 0xe0002b80, 0x89b9: 0xe0002b84, 0x89ba: 0xe0002b88, 0x89bb: 0xe0002b8c, - 0x89bc: 0xe0002b90, 0x89bd: 0xe0000015, 0x89be: 0xe000001a, 0x89bf: 0xe000001f, - // Block 0x227, offset 0x89c0 - 0x89c0: 0xe0000024, 0x89c1: 0xe0000029, 0x89c2: 0xe000002e, 0x89c3: 0xe0000033, - 0x89c4: 0xe0000038, 0x89c5: 0xe000003d, 0x89c6: 0xe0000042, 0x89c7: 0xe0000047, - 0x89c8: 0xe0002cf5, 0x89c9: 0xe0002da9, 0x89ca: 0xe0002e16, 0x89cb: 0xe0002e4b, - 0x89cc: 0xe0002e78, 0x89cd: 0xe0002e8a, 0x89ce: 0xe0002e99, 0x89cf: 0xe0002ea8, - 0x89d0: 0xe0002eb7, 0x89d1: 0xe0002cfe, 0x89d2: 0xe0002d11, 0x89d3: 0xe0002d24, - 0x89d4: 0xe0002d37, 0x89d5: 0xe0002d46, 0x89d6: 0xe0002d55, 0x89d7: 0xe0002d64, - 0x89d8: 0xe0002d73, 0x89d9: 0xe0002d82, 0x89da: 0xe0002d91, 0x89db: 0xe0002daf, - 0x89dc: 0xe0002b94, 0x89dd: 0xe0002b9c, 0x89de: 0xe0002ba4, 0x89df: 0xe0002bac, - 0x89e0: 0xe000249f, 0x89e1: 0xe0002bb4, 0x89e2: 0xe0002bbc, 0x89e3: 0xe00024a7, - 0x89e4: 0xe00024af, 0x89e5: 0xe0002bc4, 0x89e6: 0xe00024b7, 0x89e7: 0xe0002bcc, - 0x89e8: 0xe0002bd4, 0x89e9: 0xe0002bdc, 0x89ea: 0xe00024bf, 0x89eb: 0xe0002be4, - 0x89ec: 0xe00024c7, 0x89ed: 0xe00024cf, 0x89ee: 0xe00024d7, 0x89ef: 0xe00024df, - 0x89f0: 0xe0002bec, 0x89f1: 0xe0002bf4, 0x89f2: 0xe0002bfc, 0x89f3: 0xe00024e7, - 0x89f4: 0xe0002c04, 0x89f5: 0xe0002c0c, 0x89f6: 0x002bde8c, 0x89f7: 0x002c0a8c, - 0x89f8: 0x002c3a8c, 0x89f9: 0x002c628c, 0x89fa: 0x002c988c, 0x89fb: 0x002d088c, - 0x89fc: 0x002d228c, 0x89fd: 0x002d688c, 0x89fe: 0x002d9a8c, 0x89ff: 0x002dcc8c, - // Block 0x228, offset 0x8a00 - 0x8a00: 0x40151420, 0x8a01: 0x40151620, 0x8a02: 0x40151820, 0x8a03: 0x40151a20, - 0x8a04: 0x40151c20, 0x8a05: 0x40151e20, 0x8a06: 0x40152020, 0x8a07: 0x40152220, - 0x8a08: 0x40152420, 0x8a09: 0x40152620, 0x8a0a: 0x40152820, 0x8a0b: 0x40152a20, - 0x8a0c: 0x40152c20, 0x8a0d: 0x40152e20, 0x8a0e: 0x40153020, 0x8a0f: 0x40153220, - 0x8a10: 0x40153420, 0x8a11: 0x40153620, 0x8a12: 0x40153820, 0x8a13: 0x40153a20, - 0x8a14: 0x40153c20, 0x8a15: 0x40153e20, 0x8a16: 0x40154020, 0x8a17: 0x40154220, - 0x8a18: 0x40154420, 0x8a19: 0x40154620, 0x8a1a: 0x40154820, 0x8a1b: 0x40154a20, - 0x8a1c: 0x40154c20, 0x8a1d: 0x40154e20, 0x8a1e: 0x40155020, 0x8a1f: 0x40155220, - 0x8a20: 0x40155420, 0x8a21: 0x40155620, 0x8a22: 0x40155820, 0x8a23: 0x40155a20, - 0x8a24: 0x40155c20, 0x8a25: 0x40155e20, 0x8a26: 0x40156020, 0x8a27: 0x40156220, - 0x8a28: 0x40156420, 0x8a29: 0x40156620, 0x8a2a: 0x40156820, 0x8a2b: 0x40156a20, - 0x8a2c: 0x40156c20, 0x8a2d: 0x40156e20, 0x8a2e: 0x40157020, 0x8a2f: 0x40157220, - 0x8a30: 0x40157420, 0x8a31: 0x40157620, 0x8a32: 0x40157820, 0x8a33: 0x40157a20, - 0x8a34: 0xe0002b52, 0x8a35: 0xe0002ce2, 0x8a36: 0xe0002ce5, 0x8a37: 0x40157c20, - 0x8a38: 0x40157e20, 0x8a39: 0x40158020, 0x8a3a: 0x40158220, 0x8a3b: 0x40158420, - 0x8a3c: 0x40158620, 0x8a3d: 0x40158820, 0x8a3e: 0x40158a20, 0x8a3f: 0x40158c20, - // Block 0x229, offset 0x8a40 - 0x8a40: 0xe0002c14, 0x8a41: 0xe0002c18, 0x8a42: 0xe0002c1c, 0x8a43: 0xe0002c20, - 0x8a44: 0xe0002c24, 0x8a45: 0xe0002c28, 0x8a46: 0xe0002c2c, 0x8a47: 0xe0002c30, - 0x8a48: 0xe0002c34, 0x8a49: 0xe0002c38, 0x8a4a: 0xe0002c3c, 0x8a4b: 0xe0002c40, - 0x8a4c: 0xe0002c44, 0x8a4d: 0xe0002c48, 0x8a4e: 0xe000004c, 0x8a4f: 0xe0000051, - 0x8a50: 0xe0000056, 0x8a51: 0xe000005b, 0x8a52: 0xe0000060, 0x8a53: 0xe0000065, - 0x8a54: 0xe000006a, 0x8a55: 0xe000006f, 0x8a56: 0xe0000083, 0x8a57: 0xe000008d, - 0x8a58: 0xe0000092, 0x8a59: 0xe0000097, 0x8a5a: 0xe000009c, 0x8a5b: 0xe00000a1, - 0x8a5c: 0xe0000088, 0x8a5d: 0xe0000074, 0x8a5e: 0xe000007c, - 0x8a60: 0xe0002c4c, 0x8a61: 0xe0002c5c, 0x8a62: 0xe0002c54, 0x8a63: 0xe0002c8c, - 0x8a64: 0xe0002c60, 0x8a65: 0xe0002c74, 0x8a66: 0xe0002c50, 0x8a67: 0xe0002c70, - 0x8a68: 0xe0002c58, 0x8a69: 0xe0002c7c, 0x8a6a: 0xe0002c9c, 0x8a6b: 0xe0002cb0, - 0x8a6c: 0xe0002cac, 0x8a6d: 0xe0002ca4, 0x8a6e: 0xe0002cd8, 0x8a6f: 0xe0002c90, - 0x8a70: 0xe0002c98, 0x8a71: 0xe0002ca8, 0x8a72: 0xe0002ca0, 0x8a73: 0xe0002cbc, - 0x8a74: 0xe0002c84, 0x8a75: 0xe0002cb4, 0x8a76: 0xe0002cd0, 0x8a77: 0xe0002cc0, - 0x8a78: 0xe0002c78, 0x8a79: 0xe0002c64, 0x8a7a: 0xe0002c88, 0x8a7b: 0xe0002c94, - 0x8a7c: 0xe0002cb8, 0x8a7d: 0xe0002c68, 0x8a7e: 0xe0002cd4, 0x8a7f: 0xe0002c80, - // Block 0x22a, offset 0x8a80 - 0x8a80: 0xe0002cc4, 0x8a81: 0xe0002c6c, 0x8a82: 0xe0002cc8, 0x8a83: 0xe0002ccc, - 0x8a84: 0x02aa9e86, 0x8a85: 0x02bcf886, 0x8a86: 0x02cb0e86, 0x8a87: 0x02f71e86, - 0x8a88: 0xe00002e3, 0x8a89: 0xe00003d8, 0x8a8a: 0xe00004b3, 0x8a8b: 0xe000057d, - 0x8a8c: 0xe0000648, 0x8a8d: 0xe00006f0, 0x8a8e: 0xe000079c, 0x8a8f: 0xe0000841, - 0x8a90: 0xe0000ec0, 0x8a91: 0xe0002dbb, 0x8a92: 0xe0002dc6, 0x8a93: 0xe0002dd1, - 0x8a94: 0xe0002ddc, 0x8a95: 0xe0002de7, 0x8a96: 0xe0002dee, 0x8a97: 0xe0002df5, - 0x8a98: 0xe0002dfc, 0x8a99: 0xe0002e03, 0x8a9a: 0xe0002e19, 0x8a9b: 0xe0002e20, - 0x8a9c: 0xe0002e27, 0x8a9d: 0xe0002e2a, 0x8a9e: 0xe0002e2d, 0x8a9f: 0xe0002e30, - 0x8aa0: 0x0062ac86, 0x8aa1: 0x0062b086, 0x8aa2: 0x0062b286, 0x8aa3: 0x0062b686, - 0x8aa4: 0x0062b886, 0x8aa5: 0x0062ba86, 0x8aa6: 0x0062be86, 0x8aa7: 0x0062c286, - 0x8aa8: 0x0062c486, 0x8aa9: 0x0062c886, 0x8aaa: 0x0062ca86, 0x8aab: 0x0062cc86, - 0x8aac: 0x0062ce86, 0x8aad: 0x0062d086, 0x8aae: 0xf0000606, 0x8aaf: 0xf0000606, - 0x8ab0: 0xf0000606, 0x8ab1: 0xf0000606, 0x8ab2: 0xf0000606, 0x8ab3: 0xf0000606, - 0x8ab4: 0xf0000606, 0x8ab5: 0xf0000606, 0x8ab6: 0xf0000606, 0x8ab7: 0xf0000606, - 0x8ab8: 0xf0000606, 0x8ab9: 0xf0000606, 0x8aba: 0xf0000606, 0x8abb: 0xf0000606, - 0x8abc: 0xe0002127, 0x8abd: 0xe0002122, 0x8abe: 0xf0000606, 0x8abf: 0x4027ac20, - // Block 0x22b, offset 0x8ac0 - 0x8ac0: 0x029c0086, 0x8ac1: 0x029d1886, 0x8ac2: 0x029c1286, 0x8ac3: 0x02adb686, - 0x8ac4: 0x029d2886, 0x8ac5: 0x02a2da86, 0x8ac6: 0x029c0686, 0x8ac7: 0x02a2d686, - 0x8ac8: 0x029cba86, 0x8ac9: 0x02a68286, 0x8aca: 0x02ce1086, 0x8acb: 0x02e0d686, - 0x8acc: 0x02d86886, 0x8acd: 0x02ce5086, 0x8ace: 0x0323a286, 0x8acf: 0x02ae3e86, - 0x8ad0: 0x02cbca86, 0x8ad1: 0x02d05486, 0x8ad2: 0x02ce1286, 0x8ad3: 0x02f27c86, - 0x8ad4: 0x02a81a86, 0x8ad5: 0x02e4f286, 0x8ad6: 0x03194286, 0x8ad7: 0x02f2ba86, - 0x8ad8: 0x02a56886, 0x8ad9: 0x02f3b086, 0x8ada: 0x02ea6e86, 0x8adb: 0x02b2e686, - 0x8adc: 0x0320d286, 0x8add: 0x02a25486, 0x8ade: 0x02a6e086, 0x8adf: 0x02d9d086, - 0x8ae0: 0x03300a86, 0x8ae1: 0x029e2286, 0x8ae2: 0x02a33286, 0x8ae3: 0x02d6c686, - 0x8ae4: 0x029c1486, 0x8ae5: 0x029c5a86, 0x8ae6: 0x029c1686, 0x8ae7: 0x02bbcc86, - 0x8ae8: 0x02a7e686, 0x8ae9: 0x02a67686, 0x8aea: 0x02b72e86, 0x8aeb: 0x02b6cc86, - 0x8aec: 0x02edc686, 0x8aed: 0x029e0286, 0x8aee: 0x03198e86, 0x8aef: 0x02a6a886, - 0x8af0: 0x02b23886, 0x8af1: 0xe0002e33, 0x8af2: 0xe0002e36, 0x8af3: 0xe0002e39, - 0x8af4: 0xe0002e3c, 0x8af5: 0xe0002e4e, 0x8af6: 0xe0002e51, 0x8af7: 0xe0002e54, - 0x8af8: 0xe0002e57, 0x8af9: 0xe0002e5a, 0x8afa: 0xe0002e5d, 0x8afb: 0xe0002e60, - 0x8afc: 0xe0002e63, 0x8afd: 0xe0002e66, 0x8afe: 0xe0002e69, 0x8aff: 0xe0002e7b, - // Block 0x22c, offset 0x8b00 - 0x8b00: 0xe0002da0, 0x8b01: 0xe0002e0d, 0x8b02: 0xe0002e42, 0x8b03: 0xe0002e6f, - 0x8b04: 0xe0002e81, 0x8b05: 0xe0002e90, 0x8b06: 0xe0002e9f, 0x8b07: 0xe0002eae, - 0x8b08: 0xe0002ebd, 0x8b09: 0xe0002d06, 0x8b0a: 0xe0002d19, 0x8b0b: 0xe0002d2c, - 0x8b0c: 0xe00027c5, 0x8b0d: 0xe0000b85, 0x8b0e: 0xe00026cc, 0x8b0f: 0xe0000d14, - 0x8b10: 0x00657693, 0x8b11: 0x00657893, 0x8b12: 0x00657a93, 0x8b13: 0x00657e93, - 0x8b14: 0x00658093, 0x8b15: 0x00658293, 0x8b16: 0x00658493, 0x8b17: 0x00658693, - 0x8b18: 0x00658893, 0x8b19: 0x00658a93, 0x8b1a: 0x00658c93, 0x8b1b: 0x00658e93, - 0x8b1c: 0x00659093, 0x8b1d: 0x00659293, 0x8b1e: 0x00659493, 0x8b1f: 0x00659693, - 0x8b20: 0x00659893, 0x8b21: 0x00659a93, 0x8b22: 0x00659c93, 0x8b23: 0x00659e93, - 0x8b24: 0x0065a093, 0x8b25: 0x0065a293, 0x8b26: 0x0065a493, 0x8b27: 0x0065a693, - 0x8b28: 0x0065a893, 0x8b29: 0x0065aa93, 0x8b2a: 0x0065ac93, 0x8b2b: 0x0065ae93, - 0x8b2c: 0x0065b093, 0x8b2d: 0x0065b293, 0x8b2e: 0x0065b493, 0x8b2f: 0x0065b693, - 0x8b30: 0x0065b893, 0x8b31: 0x0065ba93, 0x8b32: 0x0065bc93, 0x8b33: 0x0065be93, - 0x8b34: 0x0065c093, 0x8b35: 0x0065c493, 0x8b36: 0x0065c693, 0x8b37: 0x0065c893, - 0x8b38: 0x0065ca93, 0x8b39: 0x0065cc93, 0x8b3a: 0x0065ce93, 0x8b3b: 0x0065d093, - 0x8b3c: 0x0065d293, 0x8b3d: 0x0065d493, 0x8b3e: 0x0065d693, - // Block 0x22d, offset 0x8b40 - 0x8b40: 0xe000230b, 0x8b41: 0xe00022f8, 0x8b42: 0xe00022fc, 0x8b43: 0xe0002311, - 0x8b44: 0xe0002316, 0x8b45: 0xe000231d, 0x8b46: 0xe0002321, 0x8b47: 0xe0002325, - 0x8b48: 0xe000232b, 0x8b49: 0xf0001c1c, 0x8b4a: 0xe0002330, 0x8b4b: 0xe000233c, - 0x8b4c: 0xe0002340, 0x8b4d: 0xe0002337, 0x8b4e: 0xe0002346, 0x8b4f: 0xe000234b, - 0x8b50: 0xe000234f, 0x8b51: 0xe0002353, 0x8b52: 0xf0001c1c, 0x8b53: 0xe000235e, - 0x8b54: 0xe0002358, 0x8b55: 0xf0001c1c, 0x8b56: 0xe0002363, 0x8b57: 0xe000236d, - 0x8b58: 0xe0002cef, 0x8b59: 0xe0002da3, 0x8b5a: 0xe0002e10, 0x8b5b: 0xe0002e45, - 0x8b5c: 0xe0002e72, 0x8b5d: 0xe0002e84, 0x8b5e: 0xe0002e93, 0x8b5f: 0xe0002ea2, - 0x8b60: 0xe0002eb1, 0x8b61: 0xe0002ec0, 0x8b62: 0xe0002d0a, 0x8b63: 0xe0002d1d, - 0x8b64: 0xe0002d30, 0x8b65: 0xe0002d3f, 0x8b66: 0xe0002d4e, 0x8b67: 0xe0002d5d, - 0x8b68: 0xe0002d6c, 0x8b69: 0xe0002d7b, 0x8b6a: 0xe0002d8a, 0x8b6b: 0xe0002d99, - 0x8b6c: 0xe0002db7, 0x8b6d: 0xe0002dc2, 0x8b6e: 0xe0002dcd, 0x8b6f: 0xe0002dd8, - 0x8b70: 0xe0002de3, 0x8b71: 0xe0000c1e, 0x8b72: 0xe0003251, 0x8b73: 0xe0002ec3, - 0x8b74: 0xe0000a31, 0x8b75: 0xe0002824, 0x8b76: 0xe000358c, 0x8b77: 0xe000325d, - 0x8b78: 0xe0000ac2, 0x8b79: 0xe0000ac6, 0x8b7a: 0xe00027e8, 0x8b7b: 0xf0001c1c, - 0x8b7c: 0xf0001c1c, 0x8b7d: 0xf0001c1c, 0x8b7e: 0xf0001c1c, 0x8b7f: 0xe0002431, - // Block 0x22e, offset 0x8b80 - 0x8b80: 0xe0003586, 0x8b81: 0xe000356e, 0x8b82: 0xe00035a4, 0x8b83: 0xe0003544, - 0x8b84: 0xe00027f7, 0x8b85: 0xe00027fa, 0x8b86: 0xe000354a, 0x8b87: 0xe0003529, - 0x8b88: 0xe0000a6b, 0x8b89: 0xe0000cb4, 0x8b8a: 0xe000358f, 0x8b8b: 0xe0003571, - 0x8b8c: 0xe00035a7, 0x8b8d: 0xe00035aa, 0x8b8e: 0xe0003553, 0x8b8f: 0xe00027fd, - 0x8b90: 0xe00027ce, 0x8b91: 0xe0000cb9, 0x8b92: 0xe0000d36, 0x8b93: 0xe0000be3, - 0x8b94: 0xe0000fc5, 0x8b95: 0xe00035ad, 0x8b96: 0xe0003556, 0x8b97: 0xe000325a, - 0x8b98: 0xe0002803, 0x8b99: 0xe0003526, 0x8b9a: 0xe000357d, 0x8b9b: 0xe00035b0, - 0x8b9c: 0xe0003559, 0x8b9d: 0xe000304f, 0x8b9e: 0xe0002806, 0x8b9f: 0xe0000d3e, - 0x8ba0: 0xe0000a72, 0x8ba1: 0xe000353e, 0x8ba2: 0xe0000cbd, 0x8ba3: 0xe0000d42, - 0x8ba4: 0xe0000a76, 0x8ba5: 0xe0003541, 0x8ba6: 0xe0000cc1, 0x8ba7: 0xe0000d2d, - 0x8ba8: 0xe0000d31, 0x8ba9: 0xe0003589, 0x8baa: 0xe0000cc5, 0x8bab: 0xe0000d4a, - 0x8bac: 0xe0000be7, 0x8bad: 0xe0000f0b, 0x8bae: 0xe0000f0f, 0x8baf: 0xe0000f15, - 0x8bb0: 0xe000282d, 0x8bb1: 0xe0002821, 0x8bb2: 0xe000288e, 0x8bb3: 0xe000281b, - 0x8bb4: 0xe0003592, 0x8bb5: 0xe0003580, 0x8bb6: 0xe00035b3, 0x8bb7: 0xe000355c, - 0x8bb8: 0xe000280f, 0x8bb9: 0xe000355f, 0x8bba: 0xe0003595, 0x8bbb: 0xe0003583, - 0x8bbc: 0xe00035b6, 0x8bbd: 0xe0003565, 0x8bbe: 0xe0002812, 0x8bbf: 0xe0003568, - // Block 0x22f, offset 0x8bc0 - 0x8bc0: 0xe0002815, 0x8bc1: 0xe000356b, 0x8bc2: 0xe00009b7, 0x8bc3: 0xe00024f3, - 0x8bc4: 0xe0003046, 0x8bc5: 0xe000304c, 0x8bc6: 0xe0000a66, 0x8bc7: 0xe0000a7a, - 0x8bc8: 0xe0003254, 0x8bc9: 0xe000352c, 0x8bca: 0xe00027c2, 0x8bcb: 0xe00027c8, - 0x8bcc: 0xe00027e5, 0x8bcd: 0xe0002800, 0x8bce: 0xe0002809, 0x8bcf: 0xe000280c, - 0x8bd0: 0xe0003538, 0x8bd1: 0xe000353b, 0x8bd2: 0xe0000d0d, 0x8bd3: 0xe0002818, - 0x8bd4: 0xe0003547, 0x8bd5: 0xe0000d3a, 0x8bd6: 0xe0000d46, 0x8bd7: 0xe0002827, - 0x8bd8: 0xe0000eb0, 0x8bd9: 0xe0000eb8, 0x8bda: 0xe000282a, 0x8bdb: 0xe0002836, - 0x8bdc: 0xe000283f, 0x8bdd: 0xe0003598, 0x8bde: 0xe00010b2, 0x8bdf: 0xe00009c8, - 0x8be0: 0xe0002d9d, 0x8be1: 0xe0002e0a, 0x8be2: 0xe0002e3f, 0x8be3: 0xe0002e6c, - 0x8be4: 0xe0002e7e, 0x8be5: 0xe0002e8d, 0x8be6: 0xe0002e9c, 0x8be7: 0xe0002eab, - 0x8be8: 0xe0002eba, 0x8be9: 0xe0002d02, 0x8bea: 0xe0002d15, 0x8beb: 0xe0002d28, - 0x8bec: 0xe0002d3b, 0x8bed: 0xe0002d4a, 0x8bee: 0xe0002d59, 0x8bef: 0xe0002d68, - 0x8bf0: 0xe0002d77, 0x8bf1: 0xe0002d86, 0x8bf2: 0xe0002d95, 0x8bf3: 0xe0002db3, - 0x8bf4: 0xe0002dbe, 0x8bf5: 0xe0002dc9, 0x8bf6: 0xe0002dd4, 0x8bf7: 0xe0002ddf, - 0x8bf8: 0xe0002dea, 0x8bf9: 0xe0002df1, 0x8bfa: 0xe0002df8, 0x8bfb: 0xe0002dff, - 0x8bfc: 0xe0002e06, 0x8bfd: 0xe0002e1c, 0x8bfe: 0xe0002e23, 0x8bff: 0xe0000bdf, - // Block 0x230, offset 0x8c00 - 0x8c00: 0xe0003520, 0x8c01: 0xe00026cf, 0x8c02: 0xe0003523, 0x8c03: 0xe0000b99, - 0x8c04: 0xe0000b9d, 0x8c05: 0xe0000f83, 0x8c06: 0xe000283c, - 0x8c13: 0xf0000404, - 0x8c14: 0xf0000404, 0x8c15: 0xf0000404, 0x8c16: 0xf0000404, 0x8c17: 0xf0000404, - 0x8c1d: 0xe000150b, 0x8c1e: 0xa1a09602, 0x8c1f: 0xe0001514, - 0x8c20: 0x0038ae85, 0x8c21: 0x00389085, 0x8c22: 0x00389685, 0x8c23: 0x00389885, - 0x8c24: 0x0038a485, 0x8c25: 0x0038a685, 0x8c26: 0x0038a885, 0x8c27: 0x0038b685, - 0x8c28: 0x0038ba85, 0x8c29: 0x00093885, 0x8c2a: 0xe0001542, 0x8c2b: 0xe000153f, - 0x8c2c: 0xe000154c, 0x8c2d: 0xe0001548, 0x8c2e: 0xe00014e1, 0x8c2f: 0xe00014e4, - 0x8c30: 0xe00014e7, 0x8c31: 0xe00014ea, 0x8c32: 0xe00014f0, 0x8c33: 0xe00014f3, - 0x8c34: 0xe00014f6, 0x8c35: 0xe00014fc, 0x8c36: 0xe0001505, - 0x8c38: 0xe0001508, 0x8c39: 0xe000150e, 0x8c3a: 0xe000151b, 0x8c3b: 0xe0001518, - 0x8c3c: 0xe0001521, 0x8c3e: 0xe0001524, - // Block 0x231, offset 0x8c40 - 0x8c40: 0xa0000000, 0x8c41: 0xa0000000, 0x8c42: 0xa0000000, 0x8c43: 0xa0000000, - 0x8c44: 0xa0000000, 0x8c45: 0xa0000000, 0x8c46: 0xa0000000, 0x8c47: 0xa0000000, - 0x8c48: 0xa0000000, 0x8c49: 0xa0000000, 0x8c4a: 0xa0000000, 0x8c4b: 0xa0000000, - 0x8c4c: 0xa0000000, 0x8c4d: 0xa0000000, 0x8c4e: 0xa0000000, 0x8c4f: 0xa0000000, - 0x8c50: 0x00024096, 0x8c51: 0x00025c96, 0x8c52: 0x00030496, 0x8c53: 0x00026c96, - 0x8c54: 0x00026296, 0x8c55: 0x0002ba96, 0x8c56: 0x0002c496, 0x8c57: 0x0004b496, - 0x8c58: 0x0004b696, 0x8c59: 0xe0002b6c, - 0x8c60: 0xae608202, 0x8c61: 0xae600000, 0x8c62: 0xae608102, 0x8c63: 0xae600000, - 0x8c64: 0xae600000, 0x8c65: 0xae600000, 0x8c66: 0xae600000, - 0x8c70: 0xe0002b65, 0x8c71: 0x00022c96, 0x8c72: 0x00022a96, 0x8c73: 0x00021696, - 0x8c74: 0x00021696, 0x8c75: 0x0003f496, 0x8c76: 0x0003f696, 0x8c77: 0x0003fc96, - 0x8c78: 0x0003fe96, 0x8c79: 0x0004b096, 0x8c7a: 0x0004b296, 0x8c7b: 0x0004ac96, - 0x8c7c: 0x0004ae96, 0x8c7d: 0x0004a096, 0x8c7e: 0x0004a296, 0x8c7f: 0x00049c96, - // Block 0x232, offset 0x8c80 - 0x8c80: 0xe0002cec, 0x8c81: 0xe0002ce9, 0x8c82: 0xe0002cf2, 0x8c83: 0xe0002da6, - 0x8c84: 0xe0002e13, 0x8c85: 0xe0002e48, 0x8c86: 0xe0002e75, 0x8c87: 0xe0002e87, - 0x8c88: 0xe0002e96, 0x8c89: 0xe0002ea5, 0x8c8a: 0xe0002eb4, - 0x8c90: 0xe0002b98, 0x8c91: 0xe0002ba0, 0x8c92: 0xe0002ba8, 0x8c93: 0xe0002bb0, - 0x8c94: 0xe00024a3, 0x8c95: 0xe0002bb8, 0x8c96: 0xe0002bc0, 0x8c97: 0xe00024ab, - 0x8c98: 0xe00024b3, 0x8c99: 0xe0002bc8, 0x8c9a: 0xe00024bb, 0x8c9b: 0xe0002bd0, - 0x8c9c: 0xe0002bd8, 0x8c9d: 0xe0002be0, 0x8c9e: 0xe00024c3, 0x8c9f: 0xe0002be8, - 0x8ca0: 0xe00024cb, 0x8ca1: 0xe00024d3, 0x8ca2: 0xe00024db, 0x8ca3: 0xe00024e3, - 0x8ca4: 0xe0002bf0, 0x8ca5: 0xe0002bf8, 0x8ca6: 0xe0002c00, 0x8ca7: 0xe00024eb, - 0x8ca8: 0xe0002c08, 0x8ca9: 0xe0002c10, 0x8caa: 0xe00024ef, 0x8cab: 0x002c3a8c, - 0x8cac: 0x002f7a8c, 0x8cad: 0xe0003049, 0x8cae: 0xe000359e, - 0x8cb0: 0x002bde9d, 0x8cb1: 0x002c0a9d, 0x8cb2: 0x002c3a9d, 0x8cb3: 0x002c629d, - 0x8cb4: 0x002c989d, 0x8cb5: 0x002d089d, 0x8cb6: 0x002d229d, 0x8cb7: 0x002d689d, - 0x8cb8: 0x002d9a9d, 0x8cb9: 0x002dcc9d, 0x8cba: 0x002dfe9d, 0x8cbb: 0x002e229d, - 0x8cbc: 0x002e829d, 0x8cbd: 0x002e9e9d, 0x8cbe: 0x002ee29d, 0x8cbf: 0x002f2c9d, - // Block 0x233, offset 0x8cc0 - 0x8cc0: 0x002f569d, 0x8cc1: 0x002f7a9d, 0x8cc2: 0x002fe69d, 0x8cc3: 0x00302c9d, - 0x8cc4: 0x00306c9d, 0x8cc5: 0x0030be9d, 0x8cc6: 0x0030e29d, 0x8cc7: 0x0030f69d, - 0x8cc8: 0x0031009d, 0x8cc9: 0x00312a9d, 0x8cca: 0xe00027cb, 0x8ccb: 0xe0003562, - 0x8ccc: 0xe0002830, 0x8ccd: 0xe0002839, 0x8cce: 0xe0000ebc, 0x8ccf: 0xe000359b, - 0x8cd0: 0x002bde8c, 0x8cd1: 0x002c0a8c, 0x8cd2: 0x002c3a8c, 0x8cd3: 0x002c628c, - 0x8cd4: 0x002c988c, 0x8cd5: 0x002d088c, 0x8cd6: 0x002d228c, 0x8cd7: 0x002d688c, - 0x8cd8: 0x002d9a8c, 0x8cd9: 0x002dcc8c, 0x8cda: 0x002dfe8c, 0x8cdb: 0x002e228c, - 0x8cdc: 0x002e828c, 0x8cdd: 0x002e9e8c, 0x8cde: 0x002ee28c, 0x8cdf: 0x002f2c8c, - 0x8ce0: 0x002f568c, 0x8ce1: 0x002f7a8c, 0x8ce2: 0x002fe68c, 0x8ce3: 0x00302c8c, - 0x8ce4: 0x00306c8c, 0x8ce5: 0x0030be8c, 0x8ce6: 0x0030e28c, 0x8ce7: 0x0030f68c, - 0x8ce8: 0x0031008c, 0x8ce9: 0x00312a8c, 0x8cea: 0xe000354d, 0x8ceb: 0xe0003550, - 0x8cf0: 0x002bde9d, 0x8cf1: 0x002c0a9d, 0x8cf2: 0x002c3a9d, 0x8cf3: 0x002c629d, - 0x8cf4: 0x002c989d, 0x8cf5: 0x002d089d, 0x8cf6: 0x002d229d, 0x8cf7: 0x002d689d, - 0x8cf8: 0x002d9a9d, 0x8cf9: 0x002dcc9d, 0x8cfa: 0x002dfe9d, 0x8cfb: 0x002e229d, - 0x8cfc: 0x002e829d, 0x8cfd: 0x002e9e9d, 0x8cfe: 0x002ee29d, 0x8cff: 0x002f2c9d, - // Block 0x234, offset 0x8d00 - 0x8d00: 0x002f569d, 0x8d01: 0x002f7a9d, 0x8d02: 0x002fe69d, 0x8d03: 0x00302c9d, - 0x8d04: 0x00306c9d, 0x8d05: 0x0030be9d, 0x8d06: 0x0030e29d, 0x8d07: 0x0030f69d, - 0x8d08: 0x0031009d, 0x8d09: 0x00312a9d, 0x8d0a: 0x002f2c9d, 0x8d0b: 0xe0000c81, - 0x8d0c: 0xe0000eb5, 0x8d0d: 0xe0000f74, 0x8d0e: 0xe00009d2, 0x8d0f: 0xe00010f0, - 0x8d10: 0xe0003257, 0x8d11: 0xe0000a6f, 0x8d12: 0xe0000a7e, 0x8d13: 0xe0000ba4, - 0x8d14: 0xe0000c84, 0x8d15: 0xe0000d8a, 0x8d16: 0xe0000d8e, 0x8d17: 0xe0000e9b, - 0x8d18: 0xe0000f77, 0x8d19: 0xe00010a2, 0x8d1a: 0xe00010c0, - // Block 0x235, offset 0x8d40 - 0x8d40: 0xa0000000, 0x8d41: 0xa0000000, 0x8d42: 0xa0000000, 0x8d43: 0xa0000000, - 0x8d44: 0xa0000000, 0x8d45: 0xa0000000, 0x8d46: 0xa0000000, 0x8d47: 0xa0000000, - 0x8d48: 0xa0000000, 0x8d49: 0x40020020, 0x8d4a: 0x40020220, 0x8d4b: 0x40020420, - 0x8d4c: 0x40020620, 0x8d4d: 0x40020820, 0x8d4e: 0xa0000000, 0x8d4f: 0xa0000000, - 0x8d50: 0xa0000000, 0x8d51: 0xa0000000, 0x8d52: 0xa0000000, 0x8d53: 0xa0000000, - 0x8d54: 0xa0000000, 0x8d55: 0xa0000000, 0x8d56: 0xa0000000, 0x8d57: 0xa0000000, - 0x8d58: 0xa0000000, 0x8d59: 0xa0000000, 0x8d5a: 0xa0000000, 0x8d5b: 0xa0000000, - 0x8d5c: 0xa0000000, 0x8d5d: 0xa0000000, 0x8d5e: 0xa0000000, 0x8d5f: 0xa0000000, - 0x8d60: 0x40021220, 0x8d61: 0x4002ba20, 0x8d62: 0x4003e020, 0x8d63: 0x4004ea20, - 0x8d64: 0x4027de20, 0x8d65: 0x4004ec20, 0x8d66: 0x4004e620, 0x8d67: 0x4003d220, - 0x8d68: 0x4003f420, 0x8d69: 0x4003f620, 0x8d6a: 0x4004d820, 0x8d6b: 0x40093820, - 0x8d6c: 0x40024020, 0x8d6d: 0x40021a20, 0x8d6e: 0x4002e420, 0x8d6f: 0x4004e220, - 0x8d70: 0x4029cc20, 0x8d71: 0x4029ce20, 0x8d72: 0x4029d020, 0x8d73: 0x4029d220, - 0x8d74: 0x4029d420, 0x8d75: 0x4029d620, 0x8d76: 0x4029d820, 0x8d77: 0x4029da20, - 0x8d78: 0x4029dc20, 0x8d79: 0x4029de20, 0x8d7a: 0x40026c20, 0x8d7b: 0x40026220, - 0x8d7c: 0x40094020, 0x8d7d: 0x40094220, 0x8d7e: 0x40094420, 0x8d7f: 0x4002c420, - // Block 0x236, offset 0x8d80 - 0x8d80: 0x4004d620, 0x8d81: 0x002bde88, 0x8d82: 0x002c0a88, 0x8d83: 0xc3352741, - 0x8d84: 0x002c6288, 0x8d85: 0x002c9888, 0x8d86: 0x002d0888, 0x8d87: 0xc3392741, - 0x8d88: 0xc5342741, 0x8d89: 0x002d9a88, 0x8d8a: 0xc5382741, 0x8d8b: 0x002dfe88, - 0x8d8c: 0xc0030002, 0x8d8d: 0x002e8288, 0x8d8e: 0x002e9e88, 0x8d8f: 0x002ee288, - 0x8d90: 0x002f2c88, 0x8d91: 0x002f5688, 0x8d92: 0x002f7a88, 0x8d93: 0xc3432741, - 0x8d94: 0x00302c88, 0x8d95: 0xc34700d1, 0x8d96: 0x0030be88, 0x8d97: 0x0030e288, - 0x8d98: 0x0030f688, 0x8d99: 0x00310088, 0x8d9a: 0x00312a88, 0x8d9b: 0x4003f820, - 0x8d9c: 0x4004e420, 0x8d9d: 0x4003fa20, 0x8d9e: 0x40062420, 0x8d9f: 0x40021620, - 0x8da0: 0x40061e20, 0x8da1: 0x402bde20, 0x8da2: 0x402c0a20, 0x8da3: 0xc3332741, - 0x8da4: 0x402c6220, 0x8da5: 0x402c9820, 0x8da6: 0x402d0820, 0x8da7: 0xc3372741, - 0x8da8: 0xc5322741, 0x8da9: 0x402d9a20, 0x8daa: 0xc5362741, 0x8dab: 0x402dfe20, - 0x8dac: 0xc0000002, 0x8dad: 0x402e8220, 0x8dae: 0x402e9e20, 0x8daf: 0x402ee220, - 0x8db0: 0x402f2c20, 0x8db1: 0x402f5620, 0x8db2: 0x402f7a20, 0x8db3: 0xc3412741, - 0x8db4: 0x40302c20, 0x8db5: 0xc34500d1, 0x8db6: 0x4030be20, 0x8db7: 0x4030e220, - 0x8db8: 0x4030f620, 0x8db9: 0x40310020, 0x8dba: 0x40312a20, 0x8dbb: 0x4003fc20, - 0x8dbc: 0x40094820, 0x8dbd: 0x4003fe20, 0x8dbe: 0x40094c20, 0x8dbf: 0xa0000000, - // Block 0x237, offset 0x8dc0 - 0x8dc0: 0xe0000983, 0x8dc1: 0xe0000980, 0x8dc2: 0xe00008fb, 0x8dc3: 0xe00008f8, - 0x8dc4: 0xe000097d, 0x8dc5: 0xe000097a, 0x8dc6: 0xe0000a38, 0x8dc7: 0xe0000a35, - 0x8dc8: 0x002c3c83, 0x8dc9: 0x402c3c20, 0x8dca: 0xe0000a4a, 0x8dcb: 0xe0000a47, - 0x8dcc: 0xe0000a44, 0x8dcd: 0xe0000a41, 0x8dce: 0xe0000a86, 0x8dcf: 0xe0000a83, - 0x8dd0: 0xe0000aaa, 0x8dd1: 0xe0000aa7, 0x8dd2: 0xe0000b46, 0x8dd3: 0xe0000b43, - 0x8dd4: 0xe0000aee, 0x8dd5: 0xe0000aeb, 0x8dd6: 0xe0000b2c, 0x8dd7: 0xe0000b29, - 0x8dd8: 0xe0000b40, 0x8dd9: 0xe0000b3d, 0x8dda: 0xe0000b1a, 0x8ddb: 0xe0000b17, - 0x8ddc: 0x002d2483, 0x8ddd: 0x402d2420, 0x8dde: 0xe0000bb2, 0x8ddf: 0xe0000baf, - 0x8de0: 0xe0000bc4, 0x8de1: 0xe0000bc1, 0x8de2: 0xe0000bca, 0x8de3: 0xe0000bc7, - 0x8de4: 0x002d6a83, 0x8de5: 0x402d6a20, 0x8de6: 0xe0000c1b, 0x8de7: 0xe0000c18, - 0x8de8: 0xe0000c51, 0x8de9: 0xe0000c4e, 0x8dea: 0xe0000c60, 0x8deb: 0xe0000c5d, - 0x8dec: 0xe0000c31, 0x8ded: 0xe0000c2e, 0x8dee: 0xe0000c5a, 0x8def: 0xe0000c57, - 0x8df0: 0xe0000c54, 0x8df1: 0x402da220, 0x8df2: 0xf0000a0a, 0x8df3: 0xf0000404, - 0x8df4: 0x002dce83, 0x8df5: 0x402dce20, 0x8df6: 0xe0000c9f, 0x8df7: 0xe0000c9c, - 0x8df8: 0x402f7220, 0x8df9: 0xe0000ccc, 0x8dfa: 0xe0000cc9, 0x8dfb: 0xe0000cd8, - 0x8dfc: 0xe0000cd5, 0x8dfd: 0xe0000cd2, 0x8dfe: 0xe0000ccf, 0x8dff: 0xe0000d04, - // Block 0x238, offset 0x8e00 - 0x8e00: 0xe0000cfe, 0x8e01: 0xe0000cf8, 0x8e02: 0xe0000cf5, 0x8e03: 0xe0000d51, - 0x8e04: 0xe0000d4e, 0x8e05: 0xe0000d6f, 0x8e06: 0xe0000d6c, 0x8e07: 0xe0000d5d, - 0x8e08: 0xe0000d5a, 0x8e09: 0xf0000404, 0x8e0a: 0x002eda88, 0x8e0b: 0x402eda20, - 0x8e0c: 0xe0000e2e, 0x8e0d: 0xe0000e2b, 0x8e0e: 0xe0000da0, 0x8e0f: 0xe0000d9d, - 0x8e10: 0xe0000de0, 0x8e11: 0xe0000ddd, 0x8e12: 0xe0000e93, 0x8e13: 0xe0000e8f, - 0x8e14: 0xe0000eca, 0x8e15: 0xe0000ec7, 0x8e16: 0xe0000edc, 0x8e17: 0xe0000ed9, - 0x8e18: 0xe0000ed0, 0x8e19: 0xe0000ecd, 0x8e1a: 0xe0000f1f, 0x8e1b: 0xe0000f1c, - 0x8e1c: 0x002fe883, 0x8e1d: 0x402fe820, 0x8e1e: 0xe0000f47, 0x8e1f: 0xe0000f44, - 0x8e20: 0xe0000f33, 0x8e21: 0xe0000f30, 0x8e22: 0xe0000f99, 0x8e23: 0xe0000f96, - 0x8e24: 0xe0000f8a, 0x8e25: 0xe0000f87, 0x8e26: 0x00303688, 0x8e27: 0x40303620, - 0x8e28: 0xe000102b, 0x8e29: 0xe0001028, 0x8e2a: 0xe000103f, 0x8e2b: 0xe000103c, - 0x8e2c: 0x00306e83, 0x8e2d: 0x40306e20, 0x8e2e: 0xe0000ff9, 0x8e2f: 0xe0000ff6, - 0x8e30: 0xe0001025, 0x8e31: 0xe0001022, 0x8e32: 0xe0001039, 0x8e33: 0xe0001036, - 0x8e34: 0xe00010d8, 0x8e35: 0xe00010d5, 0x8e36: 0xe000110e, 0x8e37: 0xe000110b, - 0x8e38: 0xe0001117, 0x8e39: 0xe000113b, 0x8e3a: 0xe0001138, 0x8e3b: 0xe000114d, - 0x8e3c: 0xe000114a, 0x8e3d: 0xe0001147, 0x8e3e: 0xe0001144, 0x8e3f: 0xe0000f64, - // Block 0x239, offset 0x8e40 - 0x8e40: 0xa0000000, 0x8e41: 0xa0000000, 0x8e42: 0xa0000000, 0x8e43: 0xa0000000, - 0x8e44: 0xa0000000, 0x8e45: 0xa0000000, 0x8e46: 0xa0000000, 0x8e47: 0xa0000000, - 0x8e48: 0xa0000000, 0x8e49: 0x40020020, 0x8e4a: 0x40020220, 0x8e4b: 0x40020420, - 0x8e4c: 0x40020620, 0x8e4d: 0x40020820, 0x8e4e: 0xa0000000, 0x8e4f: 0xa0000000, - 0x8e50: 0xa0000000, 0x8e51: 0xa0000000, 0x8e52: 0xa0000000, 0x8e53: 0xa0000000, - 0x8e54: 0xa0000000, 0x8e55: 0xa0000000, 0x8e56: 0xa0000000, 0x8e57: 0xa0000000, - 0x8e58: 0xa0000000, 0x8e59: 0xa0000000, 0x8e5a: 0xa0000000, 0x8e5b: 0xa0000000, - 0x8e5c: 0xa0000000, 0x8e5d: 0xa0000000, 0x8e5e: 0xa0000000, 0x8e5f: 0xa0000000, - 0x8e60: 0x40021220, 0x8e61: 0x4002ba20, 0x8e62: 0x4003e020, 0x8e63: 0x4004ea20, - 0x8e64: 0x4027de20, 0x8e65: 0x4004ec20, 0x8e66: 0x4004e620, 0x8e67: 0x4003d220, - 0x8e68: 0x4003f420, 0x8e69: 0x4003f620, 0x8e6a: 0x4004d820, 0x8e6b: 0x40093820, - 0x8e6c: 0x40024020, 0x8e6d: 0x40021a20, 0x8e6e: 0x4002e420, 0x8e6f: 0x4004e220, - 0x8e70: 0x4029cc20, 0x8e71: 0x4029ce20, 0x8e72: 0x4029d020, 0x8e73: 0x4029d220, - 0x8e74: 0x4029d420, 0x8e75: 0x4029d620, 0x8e76: 0x4029d820, 0x8e77: 0x4029da20, - 0x8e78: 0x4029dc20, 0x8e79: 0x4029de20, 0x8e7a: 0x40026c20, 0x8e7b: 0x40026220, - 0x8e7c: 0x40094020, 0x8e7d: 0x40094220, 0x8e7e: 0x40094420, 0x8e7f: 0x4002c420, - // Block 0x23a, offset 0x8e80 - 0x8e80: 0x4004d620, 0x8e81: 0x002bde88, 0x8e82: 0x002c0a88, 0x8e83: 0x002c3a88, - 0x8e84: 0x002c6288, 0x8e85: 0x002c9888, 0x8e86: 0x002d0888, 0x8e87: 0x002d2288, - 0x8e88: 0x002d6888, 0x8e89: 0x002d9a88, 0x8e8a: 0x002dcc88, 0x8e8b: 0x002dfe88, - 0x8e8c: 0xc0030002, 0x8e8d: 0x002e8288, 0x8e8e: 0xc53a2761, 0x8e8f: 0x002ee288, - 0x8e90: 0x002f2c88, 0x8e91: 0x002f5688, 0x8e92: 0x002f7a88, 0x8e93: 0x002fe688, - 0x8e94: 0x00302c88, 0x8e95: 0x00306c88, 0x8e96: 0x0030be88, 0x8e97: 0x0030e288, - 0x8e98: 0x0030f688, 0x8e99: 0x00310088, 0x8e9a: 0x00312a88, 0x8e9b: 0x4003f820, - 0x8e9c: 0x4004e420, 0x8e9d: 0x4003fa20, 0x8e9e: 0x40062420, 0x8e9f: 0x40021620, - 0x8ea0: 0x40061e20, 0x8ea1: 0x402bde20, 0x8ea2: 0x402c0a20, 0x8ea3: 0x402c3a20, - 0x8ea4: 0x402c6220, 0x8ea5: 0x402c9820, 0x8ea6: 0x402d0820, 0x8ea7: 0x402d2220, - 0x8ea8: 0x402d6820, 0x8ea9: 0x402d9a20, 0x8eaa: 0x402dcc20, 0x8eab: 0x402dfe20, - 0x8eac: 0xc0000002, 0x8ead: 0x402e8220, 0x8eae: 0xc5272761, 0x8eaf: 0x402ee220, - 0x8eb0: 0x402f2c20, 0x8eb1: 0x402f5620, 0x8eb2: 0x402f7a20, 0x8eb3: 0x402fe620, - 0x8eb4: 0x40302c20, 0x8eb5: 0x40306c20, 0x8eb6: 0x4030be20, 0x8eb7: 0x4030e220, - 0x8eb8: 0x4030f620, 0x8eb9: 0x40310020, 0x8eba: 0x40312a20, 0x8ebb: 0x4003fc20, - 0x8ebc: 0x40094820, 0x8ebd: 0x4003fe20, 0x8ebe: 0x40094c20, 0x8ebf: 0xa0000000, - // Block 0x23b, offset 0x8ec0 - 0x8ec0: 0xe00008f5, 0x8ec1: 0xe00008ef, 0x8ec2: 0xe0000921, 0x8ec3: 0xe0000969, - 0x8ec4: 0xe000095b, 0x8ec5: 0xe000094d, 0x8ec6: 0xe00009dd, 0x8ec7: 0xe0000a53, - 0x8ec8: 0xe0000ae8, 0x8ec9: 0xe0000ae2, 0x8eca: 0xe0000af4, 0x8ecb: 0xe0000b20, - 0x8ecc: 0xe0000c2b, 0x8ecd: 0xe0000c25, 0x8ece: 0xe0000c37, 0x8ecf: 0xe0000c43, - 0x8ed0: 0xe0000ab3, 0x8ed1: 0x002ea083, 0x8ed2: 0xe0000d9a, 0x8ed3: 0xe0000d94, - 0x8ed4: 0xe0000da6, 0x8ed5: 0xe0000de6, 0x8ed6: 0xe0000dd2, 0x8ed7: 0x40093e20, - 0x8ed8: 0xe0000e12, 0x8ed9: 0xe0000fe1, 0x8eda: 0xe0000fdb, 0x8edb: 0xe0000fed, - 0x8edc: 0xe0000fff, 0x8edd: 0xe0001102, 0x8ede: 0x00318888, 0x8edf: 0xe0000f7b, - 0x8ee0: 0xe00008f2, 0x8ee1: 0xe00008ec, 0x8ee2: 0xe000091e, 0x8ee3: 0xe0000966, - 0x8ee4: 0xe0000958, 0x8ee5: 0xe000094a, 0x8ee6: 0xe00009d5, 0x8ee7: 0xe0000a4d, - 0x8ee8: 0xe0000ae5, 0x8ee9: 0xe0000adf, 0x8eea: 0xe0000af1, 0x8eeb: 0xe0000b1d, - 0x8eec: 0xe0000c28, 0x8eed: 0xe0000c22, 0x8eee: 0xe0000c34, 0x8eef: 0xe0000c40, - 0x8ef0: 0xe0000aad, 0x8ef1: 0x402ea020, 0x8ef2: 0xe0000d97, 0x8ef3: 0xe0000d91, - 0x8ef4: 0xe0000da3, 0x8ef5: 0xe0000de3, 0x8ef6: 0xe0000dcf, 0x8ef7: 0x40093c20, - 0x8ef8: 0xe0000e0f, 0x8ef9: 0xe0000fde, 0x8efa: 0xe0000fd8, 0x8efb: 0xe0000fea, - 0x8efc: 0xe0000ffc, 0x8efd: 0xe00010ff, 0x8efe: 0x40318820, 0x8eff: 0xe0001114, - // Block 0x23c, offset 0x8f00 - 0x8f00: 0xa0000000, 0x8f01: 0xa0000000, 0x8f02: 0xa0000000, 0x8f03: 0xa0000000, - 0x8f04: 0xa0000000, 0x8f05: 0xa0000000, 0x8f06: 0xa0000000, 0x8f07: 0xa0000000, - 0x8f08: 0xa0000000, 0x8f09: 0x40020020, 0x8f0a: 0x40020220, 0x8f0b: 0x40020420, - 0x8f0c: 0x40020620, 0x8f0d: 0x40020820, 0x8f0e: 0xa0000000, 0x8f0f: 0xa0000000, - 0x8f10: 0xa0000000, 0x8f11: 0xa0000000, 0x8f12: 0xa0000000, 0x8f13: 0xa0000000, - 0x8f14: 0xa0000000, 0x8f15: 0xa0000000, 0x8f16: 0xa0000000, 0x8f17: 0xa0000000, - 0x8f18: 0xa0000000, 0x8f19: 0xa0000000, 0x8f1a: 0xa0000000, 0x8f1b: 0xa0000000, - 0x8f1c: 0xa0000000, 0x8f1d: 0xa0000000, 0x8f1e: 0xa0000000, 0x8f1f: 0xa0000000, - 0x8f20: 0x40021220, 0x8f21: 0x4002ba20, 0x8f22: 0x4003e020, 0x8f23: 0x4004ea20, - 0x8f24: 0x4027de20, 0x8f25: 0x4004ec20, 0x8f26: 0x4004e620, 0x8f27: 0x4003d220, - 0x8f28: 0x4003f420, 0x8f29: 0x4003f620, 0x8f2a: 0x4004d820, 0x8f2b: 0x40093820, - 0x8f2c: 0x40024020, 0x8f2d: 0x40021a20, 0x8f2e: 0x4002e420, 0x8f2f: 0x4004e220, - 0x8f30: 0x4029cc20, 0x8f31: 0x4029ce20, 0x8f32: 0x4029d020, 0x8f33: 0x4029d220, - 0x8f34: 0x4029d420, 0x8f35: 0x4029d620, 0x8f36: 0x4029d820, 0x8f37: 0x4029da20, - 0x8f38: 0x4029dc20, 0x8f39: 0x4029de20, 0x8f3a: 0x40026c20, 0x8f3b: 0x40026220, - 0x8f3c: 0x40094020, 0x8f3d: 0x40094220, 0x8f3e: 0x40094420, 0x8f3f: 0x4002c420, - // Block 0x23d, offset 0x8f40 - 0x8f40: 0x4004d620, 0x8f41: 0xc54c0071, 0x8f42: 0x002c0a88, 0x8f43: 0x002c3a88, - 0x8f44: 0x002c6288, 0x8f45: 0x002c9888, 0x8f46: 0x002d0888, 0x8f47: 0x002d2288, - 0x8f48: 0x002d6888, 0x8f49: 0x002d9a88, 0x8f4a: 0x002dcc88, 0x8f4b: 0x002dfe88, - 0x8f4c: 0xc0030002, 0x8f4d: 0x002e8288, 0x8f4e: 0x002e9e88, 0x8f4f: 0xc5472781, - 0x8f50: 0x002f2c88, 0x8f51: 0x002f5688, 0x8f52: 0x002f7a88, 0x8f53: 0xc53e0991, - 0x8f54: 0x00302c88, 0x8f55: 0xc5500071, 0x8f56: 0x0030be88, 0x8f57: 0x0030bea3, - 0x8f58: 0x0030f688, 0x8f59: 0x00310088, 0x8f5a: 0xc5420991, 0x8f5b: 0x4003f820, - 0x8f5c: 0x4004e420, 0x8f5d: 0x4003fa20, 0x8f5e: 0x40062420, 0x8f5f: 0x40021620, - 0x8f60: 0x40061e20, 0x8f61: 0xc54a0071, 0x8f62: 0x402c0a20, 0x8f63: 0x402c3a20, - 0x8f64: 0x402c6220, 0x8f65: 0x402c9820, 0x8f66: 0x402d0820, 0x8f67: 0x402d2220, - 0x8f68: 0x402d6820, 0x8f69: 0x402d9a20, 0x8f6a: 0x402dcc20, 0x8f6b: 0x402dfe20, - 0x8f6c: 0xc0000002, 0x8f6d: 0x402e8220, 0x8f6e: 0x402e9e20, 0x8f6f: 0xc5442781, - 0x8f70: 0x402f2c20, 0x8f71: 0x402f5620, 0x8f72: 0x402f7a20, 0x8f73: 0xc53c0991, - 0x8f74: 0x40302c20, 0x8f75: 0xc54e0071, 0x8f76: 0x4030be20, 0x8f77: 0x4030be21, - 0x8f78: 0x4030f620, 0x8f79: 0x40310020, 0x8f7a: 0xc5400991, 0x8f7b: 0x4003fc20, - 0x8f7c: 0x40094820, 0x8f7d: 0x4003fe20, 0x8f7e: 0x40094c20, 0x8f7f: 0xa0000000, - // Block 0x23e, offset 0x8f80 - 0x8f80: 0xe00008f5, 0x8f81: 0xe00008ef, 0x8f82: 0xe0000921, 0x8f83: 0xe0000969, - 0x8f84: 0x0030f083, 0x8f85: 0xe000094d, 0x8f86: 0xe00009dd, 0x8f87: 0xe0000a53, - 0x8f88: 0xe0000ae8, 0x8f89: 0xe0000ae2, 0x8f8a: 0xe0000af4, 0x8f8b: 0xe0000b20, - 0x8f8c: 0xe0000c2b, 0x8f8d: 0xe0000c25, 0x8f8e: 0xe0000c37, 0x8f8f: 0xe0000c43, - 0x8f90: 0xe0000ab3, 0x8f91: 0xe0000d63, 0x8f92: 0xe0000d9a, 0x8f93: 0xe0000d94, - 0x8f94: 0xe0000da6, 0x8f95: 0x0030ee83, 0x8f96: 0x0030f283, 0x8f97: 0x40093e20, - 0x8f98: 0xe0000e12, 0x8f99: 0xe0000fe1, 0x8f9a: 0xe0000fdb, 0x8f9b: 0xe0000fed, - 0x8f9c: 0x0030f483, 0x8f9d: 0xe0001102, 0x8f9e: 0x00318888, 0x8f9f: 0xe0000f7b, - 0x8fa0: 0xe00008f2, 0x8fa1: 0xe00008ec, 0x8fa2: 0xe000091e, 0x8fa3: 0xe0000966, - 0x8fa4: 0x4030f020, 0x8fa5: 0xe000094a, 0x8fa6: 0xe00009d5, 0x8fa7: 0xe0000a4d, - 0x8fa8: 0xe0000ae5, 0x8fa9: 0xe0000adf, 0x8faa: 0xe0000af1, 0x8fab: 0xe0000b1d, - 0x8fac: 0xe0000c28, 0x8fad: 0xe0000c22, 0x8fae: 0xe0000c34, 0x8faf: 0xe0000c40, - 0x8fb0: 0xe0000aad, 0x8fb1: 0xe0000d60, 0x8fb2: 0xe0000d97, 0x8fb3: 0xe0000d91, - 0x8fb4: 0xe0000da3, 0x8fb5: 0x4030ee20, 0x8fb6: 0x4030f220, 0x8fb7: 0x40093c20, - 0x8fb8: 0xe0000e0f, 0x8fb9: 0xe0000fde, 0x8fba: 0xe0000fd8, 0x8fbb: 0xe0000fea, - 0x8fbc: 0x4030f420, 0x8fbd: 0xe00010ff, 0x8fbe: 0x40318820, 0x8fbf: 0xe0001114, - // Block 0x23f, offset 0x8fc0 - 0x8fc0: 0xe0000cfe, 0x8fc1: 0xe0000cf8, 0x8fc2: 0xe0000cf5, 0x8fc3: 0xe0000d51, - 0x8fc4: 0xe0000d4e, 0x8fc5: 0xe0000d6f, 0x8fc6: 0xe0000d6c, 0x8fc7: 0xe0000d5d, - 0x8fc8: 0xe0000d5a, 0x8fc9: 0xf0000404, 0x8fca: 0x002eda88, 0x8fcb: 0x402eda20, - 0x8fcc: 0xe0000e2e, 0x8fcd: 0xe0000e2b, 0x8fce: 0xe0000da0, 0x8fcf: 0xe0000d9d, - 0x8fd0: 0xe0000de0, 0x8fd1: 0xe0000ddd, 0x8fd2: 0xe0000e93, 0x8fd3: 0xe0000e8f, - 0x8fd4: 0xe0000eca, 0x8fd5: 0xe0000ec7, 0x8fd6: 0xe0000edc, 0x8fd7: 0xe0000ed9, - 0x8fd8: 0xe0000ed0, 0x8fd9: 0xe0000ecd, 0x8fda: 0xe0000f1f, 0x8fdb: 0xe0000f1c, - 0x8fdc: 0xe0000f2d, 0x8fdd: 0xe0000f2a, 0x8fde: 0xe0000f47, 0x8fdf: 0xe0000f44, - 0x8fe0: 0x00302683, 0x8fe1: 0x40302620, 0x8fe2: 0xe0000f99, 0x8fe3: 0xe0000f96, - 0x8fe4: 0xe0000f8a, 0x8fe5: 0xe0000f87, 0x8fe6: 0x00303688, 0x8fe7: 0x40303620, - 0x8fe8: 0xe000102b, 0x8fe9: 0xe0001028, 0x8fea: 0xe000103f, 0x8feb: 0xe000103c, - 0x8fec: 0xe0000fe7, 0x8fed: 0xe0000fe4, 0x8fee: 0xe0000ff9, 0x8fef: 0xe0000ff6, - 0x8ff0: 0xe0001025, 0x8ff1: 0xe0001022, 0x8ff2: 0xe0001039, 0x8ff3: 0xe0001036, - 0x8ff4: 0xe00035ec, 0x8ff5: 0xe00035e9, 0x8ff6: 0xe000110e, 0x8ff7: 0xe000110b, - 0x8ff8: 0xe0001117, 0x8ff9: 0xe00035c2, 0x8ffa: 0xe00035bf, 0x8ffb: 0xe00035ce, - 0x8ffc: 0xe00035cb, 0x8ffd: 0x00302a83, 0x8ffe: 0x40302a20, 0x8fff: 0xe0000f64, - // Block 0x240, offset 0x9000 - 0x9000: 0x40321220, 0x9001: 0x40321a20, 0x9002: 0x40322220, 0x9003: 0x40322a20, - 0x9004: 0xe0000ad5, 0x9005: 0xe0000ad1, 0x9006: 0xe0000acd, 0x9007: 0xf0000a0a, - 0x9008: 0xf000040a, 0x9009: 0xf0000404, 0x900a: 0xf0000a0a, 0x900b: 0xf000040a, - 0x900c: 0xf0000404, 0x900d: 0xe0000947, 0x900e: 0xe0000944, 0x900f: 0xe0000c3d, - 0x9010: 0xe0000c3a, 0x9011: 0xe0000dcc, 0x9012: 0xe0000dc9, 0x9013: 0xe0000ff3, - 0x9014: 0xe0000ff0, 0x9015: 0xe0003643, 0x9016: 0xe0003640, 0x9017: 0xe0003631, - 0x9018: 0xe000362e, 0x9019: 0xe000363d, 0x901a: 0xe000363a, 0x901b: 0xe0003637, - 0x901c: 0xe0003634, 0x901d: 0x402cae20, 0x901e: 0xe0003625, 0x901f: 0xe0003622, - 0x9020: 0xe0000976, 0x9021: 0xe0000972, 0x9022: 0xe00009f4, 0x9023: 0xe00009ef, - 0x9024: 0x002d3a88, 0x9025: 0x402d3a20, 0x9026: 0xe0000bbe, 0x9027: 0xe0000bbb, - 0x9028: 0xe0000c99, 0x9029: 0xe0000c96, 0x902a: 0xe0000e20, 0x902b: 0xe0000e1d, - 0x902c: 0xe0000e27, 0x902d: 0xe0000e23, 0x902e: 0xe0001162, 0x902f: 0xe000115f, - 0x9030: 0xe0000c8d, 0x9031: 0xe0003266, 0x9032: 0xe0003263, 0x9033: 0xe0003260, - 0x9034: 0xe0000bac, 0x9035: 0xe0000ba9, 0x9036: 0x002d7888, 0x9037: 0x00319488, - 0x9038: 0xe0000d57, 0x9039: 0xe0000d54, 0x903a: 0xe0000954, 0x903b: 0xe0000950, - 0x903c: 0xe00009ea, 0x903d: 0xe00009e5, 0x903e: 0xe0000e19, 0x903f: 0xe0000e15, - // Block 0x241, offset 0x9040 - 0x9040: 0xe000098f, 0x9041: 0xe000098c, 0x9042: 0xe0000995, 0x9043: 0xe0000992, - 0x9044: 0xe0000b62, 0x9045: 0xe0000b5f, 0x9046: 0xe0000b68, 0x9047: 0xe0000b65, - 0x9048: 0xe0000c6c, 0x9049: 0xe0000c69, 0x904a: 0xe0000c72, 0x904b: 0xe0000c6f, - 0x904c: 0xe0000e4a, 0x904d: 0xe0000e47, 0x904e: 0xe0000e50, 0x904f: 0xe0000e4d, - 0x9050: 0xe0000ee8, 0x9051: 0xe0000ee5, 0x9052: 0xe0000eee, 0x9053: 0xe0000eeb, - 0x9054: 0xe0001053, 0x9055: 0xe0001050, 0x9056: 0xe0001059, 0x9057: 0xe0001056, - 0x9058: 0xe0000f61, 0x9059: 0xe0000f5e, 0x905a: 0xe0000fa5, 0x905b: 0xe0000fa2, - 0x905c: 0x00312288, 0x905d: 0x40312220, 0x905e: 0xe0000bf4, 0x905f: 0xe0000bf1, - 0x9060: 0x002ebc88, 0x9061: 0x402c8c20, 0x9062: 0x002f2288, 0x9063: 0x402f2220, - 0x9064: 0x00314088, 0x9065: 0x40314020, 0x9066: 0xe000096f, 0x9067: 0xe000096c, - 0x9068: 0xe0000b32, 0x9069: 0xe0000b2f, 0x906a: 0xe000362b, 0x906b: 0xe0003628, - 0x906c: 0xe0003619, 0x906d: 0xe0003616, 0x906e: 0xe0000e04, 0x906f: 0xe0000e01, - 0x9070: 0xe0000e0b, 0x9071: 0xe0000e07, 0x9072: 0xe0001129, 0x9073: 0xe0001126, - 0x9074: 0x402e5e20, 0x9075: 0x402ed020, 0x9076: 0x40305a20, 0x9077: 0x402dd420, - 0x9078: 0xe0000abf, 0x9079: 0xe0000ec4, 0x907a: 0x002be888, 0x907b: 0x002c4488, - 0x907c: 0x402c4420, 0x907d: 0x002e3888, 0x907e: 0x00303e88, 0x907f: 0x402ffc20, - // Block 0x242, offset 0x9080 - 0x9080: 0xe0000d24, 0x9081: 0xe0000d21, 0x9082: 0xe0000d2a, 0x9083: 0xe0000d27, - 0x9084: 0xe0000d69, 0x9085: 0xe0000d66, 0x9086: 0xe0000d7b, 0x9087: 0xe0000d78, - 0x9088: 0xe0000d87, 0x9089: 0xe0000d84, 0x908a: 0xe0000d81, 0x908b: 0xe0000d7e, - 0x908c: 0xe0003607, 0x908d: 0xe0003604, 0x908e: 0xe0003613, 0x908f: 0xe0003610, - 0x9090: 0xe0000e3d, 0x9091: 0xe0000e39, 0x9092: 0xe0000e35, 0x9093: 0xe0000e31, - 0x9094: 0xe0000ea7, 0x9095: 0xe0000ea4, 0x9096: 0xe0000ead, 0x9097: 0xe0000eaa, - 0x9098: 0xe0000ed6, 0x9099: 0xe0000ed3, 0x909a: 0xe0000ef4, 0x909b: 0xe0000ef1, - 0x909c: 0xe0000efb, 0x909d: 0xe0000ef7, 0x909e: 0xe0000f02, 0x909f: 0xe0000eff, - 0x90a0: 0xe0000f41, 0x90a1: 0xe0000f3e, 0x90a2: 0xe0000f53, 0x90a3: 0xe0000f50, - 0x90a4: 0xe0000f26, 0x90a5: 0xe0000f22, 0x90a6: 0xe00035bc, 0x90a7: 0xe00035b9, - 0x90a8: 0xe0000f5a, 0x90a9: 0xe0000f56, 0x90aa: 0xe0000f93, 0x90ab: 0xe0000f90, - 0x90ac: 0xe0000f9f, 0x90ad: 0xe0000f9c, 0x90ae: 0xe0000fb1, 0x90af: 0xe0000fae, - 0x90b0: 0xe0000fab, 0x90b1: 0xe0000fa8, 0x90b2: 0xe0001093, 0x90b3: 0xe0001090, - 0x90b4: 0xe000109f, 0x90b5: 0xe000109c, 0x90b6: 0xe0001099, 0x90b7: 0xe0001096, - 0x90b8: 0xe0001032, 0x90b9: 0xe000102e, 0x90ba: 0xe0003643, 0x90bb: 0xe0003640, - 0x90bc: 0xe00010a9, 0x90bd: 0xe00010a6, 0x90be: 0xe00010af, 0x90bf: 0xe00010ac, - // Block 0x243, offset 0x90c0 - 0x90c0: 0xe00035e6, 0x90c1: 0xe00035e3, 0x90c2: 0xe00035e0, 0x90c3: 0xe00035dd, - 0x90c4: 0xe00035f5, 0x90c5: 0xe00035f2, 0x90c6: 0xe00035fb, 0x90c7: 0xe00035f8, - 0x90c8: 0xe0003601, 0x90c9: 0xe00035fe, 0x90ca: 0xe00010fc, 0x90cb: 0xe00010f9, - 0x90cc: 0xe00010f6, 0x90cd: 0xe00010f3, 0x90ce: 0xe0001123, 0x90cf: 0xe0001120, - 0x90d0: 0xe00035c8, 0x90d1: 0xe00035c5, 0x90d2: 0xe00035d4, 0x90d3: 0xe00035d1, - 0x90d4: 0xe00035da, 0x90d5: 0xe00035d7, 0x90d6: 0xe0000c15, 0x90d7: 0xe0000f8d, - 0x90d8: 0xe00035ef, 0x90d9: 0xe0001111, 0x90da: 0xf0000404, 0x90db: 0xe0000f70, - 0x90dc: 0x40300420, 0x90dd: 0x40300620, 0x90de: 0xe0000f7f, 0x90df: 0x402c9620, - 0x90e0: 0xe000099b, 0x90e1: 0xe0000998, 0x90e2: 0xe0000989, 0x90e3: 0xe0000986, - 0x90e4: 0xe0000928, 0x90e5: 0xe0000924, 0x90e6: 0xe0000930, 0x90e7: 0xe000092c, - 0x90e8: 0xe0000940, 0x90e9: 0xe000093c, 0x90ea: 0xe0000938, 0x90eb: 0xe0000934, - 0x90ec: 0xe00009aa, 0x90ed: 0xe00009a6, 0x90ee: 0xe0000902, 0x90ef: 0xe00008fe, - 0x90f0: 0xe000090a, 0x90f1: 0xe0000906, 0x90f2: 0xe000091a, 0x90f3: 0xe0000916, - 0x90f4: 0xe0000912, 0x90f5: 0xe000090e, 0x90f6: 0xe00009a2, 0x90f7: 0xe000099e, - 0x90f8: 0xe0000b6e, 0x90f9: 0xe0000b6b, 0x90fa: 0xe0000b5c, 0x90fb: 0xe0000b59, - 0x90fc: 0xe0000b26, 0x90fd: 0xe0000b23, 0x90fe: 0xe0000afb, 0x90ff: 0xe0000af7, - // Block 0x244, offset 0x9100 - 0x9100: 0xe0000b03, 0x9101: 0xe0000aff, 0x9102: 0xe0000b13, 0x9103: 0xe0000b0f, - 0x9104: 0xe0000b0b, 0x9105: 0xe0000b07, 0x9106: 0xe0000b75, 0x9107: 0xe0000b71, - 0x9108: 0xe0000c66, 0x9109: 0xe0000c63, 0x910a: 0xe0000c78, 0x910b: 0xe0000c75, - 0x910c: 0xe0000e84, 0x910d: 0xe0000e81, 0x910e: 0xe0000e44, 0x910f: 0xe0000e41, - 0x9110: 0xe0000dad, 0x9111: 0xe0000da9, 0x9112: 0xe0000db5, 0x9113: 0xe0000db1, - 0x9114: 0xe0000dc5, 0x9115: 0xe0000dc1, 0x9116: 0xe000360d, 0x9117: 0xe000360a, - 0x9118: 0xe0000e8b, 0x9119: 0xe0000e87, 0x911a: 0xe0000e5d, 0x911b: 0xe0000e59, - 0x911c: 0xe0000e65, 0x911d: 0xe0000e61, 0x911e: 0xe0000e75, 0x911f: 0xe0000e71, - 0x9120: 0xe000361f, 0x9121: 0xe000361c, 0x9122: 0xe0000e7d, 0x9123: 0xe0000e79, - 0x9124: 0xe000108d, 0x9125: 0xe000108a, 0x9126: 0xe000104d, 0x9127: 0xe000104a, - 0x9128: 0xe0001066, 0x9129: 0xe0001062, 0x912a: 0xe000106e, 0x912b: 0xe000106a, - 0x912c: 0xe000107e, 0x912d: 0xe000107a, 0x912e: 0xe0001076, 0x912f: 0xe0001072, - 0x9130: 0xe0001086, 0x9131: 0xe0001082, 0x9132: 0xe0001108, 0x9133: 0xe0001105, - 0x9134: 0xe0001135, 0x9135: 0xe0001132, 0x9136: 0xe000112f, 0x9137: 0xe000112c, - 0x9138: 0xe000111d, 0x9139: 0xe000111a, 0x913a: 0xe0000d0a, 0x913b: 0xe0000d07, - 0x913c: 0x0030d888, 0x913d: 0x4030d820, 0x913e: 0x00312088, 0x913f: 0x40312020, - // Block 0x245, offset 0x9140 - 0x9140: 0xe0000024, 0x9141: 0xe0000029, 0x9142: 0xe000002e, 0x9143: 0xe0000033, - 0x9144: 0xe0000038, 0x9145: 0xe000003d, 0x9146: 0xe0000042, 0x9147: 0xe0000047, - 0x9148: 0xf0001f04, 0x9149: 0xf0001f04, 0x914a: 0xf0001f04, 0x914b: 0xf0001f04, - 0x914c: 0xf0001f04, 0x914d: 0xf0001f04, 0x914e: 0xf0001f04, 0x914f: 0xf0001f04, - 0x9150: 0xf0001f04, 0x9151: 0xf0000404, 0x9152: 0xf0000404, 0x9153: 0xf0000404, - 0x9154: 0xf0000404, 0x9155: 0xf0000404, 0x9156: 0xf0000404, 0x9157: 0xf0000404, - 0x9158: 0xf0000404, 0x9159: 0xf0000404, 0x915a: 0xf0000404, 0x915b: 0xf0000404, - 0x915c: 0xf0000404, 0x915d: 0xf0000404, 0x915e: 0xf0000404, 0x915f: 0xf0000404, - 0x9160: 0xf0000404, 0x9161: 0xf0000404, 0x9162: 0xf0000404, 0x9163: 0xf0000404, - 0x9164: 0xf0000404, 0x9165: 0xf0000404, 0x9166: 0xf0000404, 0x9167: 0xf0000404, - 0x9168: 0xf0000404, 0x9169: 0xf0000404, 0x916a: 0xf0000404, 0x916b: 0xf0000404, - 0x916c: 0xf0000404, 0x916d: 0xf0000404, 0x916e: 0xf0000404, 0x916f: 0xf0000404, - 0x9170: 0xf0000404, 0x9171: 0xf0000404, 0x9172: 0xe0002bfc, 0x9173: 0xf0000404, - 0x9174: 0xf0000404, 0x9175: 0xe0002c0c, 0x9176: 0x002bde8c, 0x9177: 0x002c0a8c, - 0x9178: 0x002c3a8c, 0x9179: 0x002c628c, 0x917a: 0x002c988c, 0x917b: 0x002d088c, - 0x917c: 0x002d228c, 0x917d: 0x002d688c, 0x917e: 0x002d9a8c, 0x917f: 0x002dcc8c, - // Block 0x246, offset 0x9180 - 0x9180: 0xf0001d1c, 0x9181: 0xf0001d1c, 0x9182: 0xf0001d1c, 0x9183: 0xf0001d1c, - 0x9184: 0xf0001d1c, 0x9185: 0xf0001d1d, 0x9186: 0xf0001d1d, 0x9187: 0xf0001d1d, - 0x9188: 0xe0000a6b, 0x9189: 0xe0000cb4, 0x918a: 0xf0001d1c, 0x918b: 0xf0001d1c, - 0x918c: 0xf0001d1c, 0x918d: 0xf0001c1c, 0x918e: 0xf0001c1c, 0x918f: 0xf0001c1c, - 0x9190: 0xe00027ce, 0x9191: 0xe0000cb9, 0x9192: 0xe0000d36, 0x9193: 0xe0000be3, - 0x9194: 0xe0000fc5, 0x9195: 0xf0001c1c, 0x9196: 0xf0001c1c, 0x9197: 0xf0001c1c, - 0x9198: 0xf0001c1c, 0x9199: 0xf0001c1c, 0x919a: 0xf0001c1c, 0x919b: 0xf0001c1c, - 0x919c: 0xf0001c1c, 0x919d: 0xf0001c1c, 0x919e: 0xf0001c1c, 0x919f: 0xe0000d3e, - 0x91a0: 0xe0000a72, 0x91a1: 0xf0001c1c, 0x91a2: 0xe0000cbd, 0x91a3: 0xe0000d42, - 0x91a4: 0xe0000a76, 0x91a5: 0xf0001c1c, 0x91a6: 0xe0000cc1, 0x91a7: 0xe0000d2d, - 0x91a8: 0xe0000d31, 0x91a9: 0xf0001c1d, 0x91aa: 0xe0000cc5, 0x91ab: 0xe0000d4a, - 0x91ac: 0xe0000be7, 0x91ad: 0xe0000f0b, 0x91ae: 0xe0000f0f, 0x91af: 0xe0000f15, - 0x91b0: 0xf0001c1c, 0x91b1: 0xf0001c1c, 0x91b2: 0xf0001c1c, 0x91b3: 0xf0001c1c, - 0x91b4: 0xf0001d1c, 0x91b5: 0xf0001d1c, 0x91b6: 0xf0001d1c, 0x91b7: 0xf0001d1c, - 0x91b8: 0xf0001d1c, 0x91b9: 0xf0001d1d, 0x91ba: 0xe0003595, 0x91bb: 0xe0003583, - 0x91bc: 0xe00035b6, 0x91bd: 0xe0003565, 0x91be: 0xe0002812, 0x91bf: 0xe0003568, - // Block 0x247, offset 0x91c0 - 0x91c0: 0xf0001d1c, 0x91c1: 0xf0001d1d, 0x91c2: 0xe00009b7, 0x91c3: 0xf0001c1d, - 0x91c4: 0xf0001c1c, 0x91c5: 0xf0001c1c, 0x91c6: 0xe0000a66, 0x91c7: 0xe0000a7a, - 0x91c8: 0xf0001d1c, 0x91c9: 0xf0001c1d, 0x91ca: 0xf0001c1c, 0x91cb: 0xf0001d1d, - 0x91cc: 0xf0001c1c, 0x91cd: 0xf0001d1d, 0x91ce: 0xf0001d1d, 0x91cf: 0xf0001c1c, - 0x91d0: 0xf0001c1c, 0x91d1: 0xf0001c1c, 0x91d2: 0xe0000d0d, 0x91d3: 0xf0001c1c, - 0x91d4: 0xf0001c1c, 0x91d5: 0xe0000d3a, 0x91d6: 0xe0000d46, 0x91d7: 0xf0001d1d, - 0x91d8: 0xe0000eb0, 0x91d9: 0xe0000eb8, 0x91da: 0xf0001d1d, 0x91db: 0xf0001c1c, - 0x91dc: 0xf0001c1d, 0x91dd: 0xe0003598, 0x91de: 0xe00010b2, 0x91df: 0xe00009c8, - 0x91e0: 0xf0001f04, 0x91e1: 0xf0001f04, 0x91e2: 0xf0001f04, 0x91e3: 0xf0001f04, - 0x91e4: 0xf0001f04, 0x91e5: 0xf0001f04, 0x91e6: 0xf0001f04, 0x91e7: 0xf0001f04, - 0x91e8: 0xf0001f04, 0x91e9: 0xf0000404, 0x91ea: 0xf0000404, 0x91eb: 0xf0000404, - 0x91ec: 0xf0000404, 0x91ed: 0xf0000404, 0x91ee: 0xf0000404, 0x91ef: 0xf0000404, - 0x91f0: 0xf0000404, 0x91f1: 0xf0000404, 0x91f2: 0xf0000404, 0x91f3: 0xf0000404, - 0x91f4: 0xf0000404, 0x91f5: 0xf0000404, 0x91f6: 0xf0000404, 0x91f7: 0xf0000404, - 0x91f8: 0xf0000404, 0x91f9: 0xf0000404, 0x91fa: 0xf0000404, 0x91fb: 0xf0000404, - 0x91fc: 0xf0000404, 0x91fd: 0xf0000404, 0x91fe: 0xf0000404, 0x91ff: 0xe0000bdf, - // Block 0x248, offset 0x9200 - 0x9200: 0xf0001f04, 0x9201: 0xf0001f04, 0x9202: 0xf0001f04, 0x9203: 0xf0001f04, - 0x9204: 0xf0001f04, 0x9205: 0xf0001f04, 0x9206: 0xf0001f04, 0x9207: 0xf0001f04, - 0x9208: 0xf0001f04, 0x9209: 0xf0001f04, 0x920a: 0xf0001f04, - 0x9210: 0xf0000a04, 0x9211: 0xf0000a04, 0x9212: 0xf0000a04, 0x9213: 0xf0000a04, - 0x9214: 0xf0000a04, 0x9215: 0xf0000a04, 0x9216: 0xf0000a04, 0x9217: 0xf0000a04, - 0x9218: 0xf0000a04, 0x9219: 0xf0000a04, 0x921a: 0xf0000a04, 0x921b: 0xf0000a04, - 0x921c: 0xf0000a04, 0x921d: 0xf0000a04, 0x921e: 0xf0000a04, 0x921f: 0xf0000a04, - 0x9220: 0xf0000a04, 0x9221: 0xf0000a04, 0x9222: 0xf0000a04, 0x9223: 0xf0000a04, - 0x9224: 0xf0000a04, 0x9225: 0xf0000a04, 0x9226: 0xe0002c00, 0x9227: 0xf0000a04, - 0x9228: 0xf0000a04, 0x9229: 0xe0002c10, 0x922a: 0xf0000a04, 0x922b: 0x002c3a8c, - 0x922c: 0x002f7a8c, 0x922d: 0xf0000c0c, 0x922e: 0xe000359e, - 0x9230: 0x002bde9d, 0x9231: 0x002c0a9d, 0x9232: 0x002c3a9d, 0x9233: 0x002c629d, - 0x9234: 0x002c989d, 0x9235: 0x002d089d, 0x9236: 0x002d229d, 0x9237: 0x002d689d, - 0x9238: 0x002d9a9d, 0x9239: 0x002dcc9d, 0x923a: 0x002dfe9d, 0x923b: 0x002e229d, - 0x923c: 0x002e829d, 0x923d: 0x002e9e9d, 0x923e: 0x002ee29d, 0x923f: 0x002f2c9d, - // Block 0x249, offset 0x9240 - 0x9240: 0x002f569d, 0x9241: 0x002f7a9d, 0x9242: 0x002fe69d, 0x9243: 0x00302c9d, - 0x9244: 0x00306c9d, 0x9245: 0x0030be9d, 0x9246: 0x0030e29d, 0x9247: 0x0030f69d, - 0x9248: 0x0031009d, 0x9249: 0x00312a9d, 0x924a: 0xf0001d1d, 0x924b: 0xf0001d1d, - 0x924c: 0xf0001d1d, 0x924d: 0xf0001d1d, 0x924e: 0xe0000ebc, 0x924f: 0xe000359b, - 0x9250: 0x002bde8c, 0x9251: 0x002c0a8c, 0x9252: 0x002c3a8c, 0x9253: 0x002c628c, - 0x9254: 0x002c988c, 0x9255: 0x002d088c, 0x9256: 0x002d228c, 0x9257: 0x002d688c, - 0x9258: 0x002d9a8c, 0x9259: 0x002dcc8c, 0x925a: 0x002dfe8c, 0x925b: 0x002e228c, - 0x925c: 0x002e828c, 0x925d: 0x002e9e8c, 0x925e: 0x002ee28c, 0x925f: 0x002f2c8c, - 0x9260: 0x002f568c, 0x9261: 0x002f7a8c, 0x9262: 0x002fe68c, 0x9263: 0x00302c8c, - 0x9264: 0x00306c8c, 0x9265: 0x0030be8c, 0x9266: 0x0030e28c, 0x9267: 0x0030f68c, - 0x9268: 0x0031008c, 0x9269: 0x00312a8c, 0x926a: 0xf0001414, 0x926b: 0xf0001414, - 0x9270: 0x002bde9d, 0x9271: 0x002c0a9d, 0x9272: 0x002c3a9d, 0x9273: 0x002c629d, - 0x9274: 0x002c989d, 0x9275: 0x002d089d, 0x9276: 0x002d229d, 0x9277: 0x002d689d, - 0x9278: 0x002d9a9d, 0x9279: 0x002dcc9d, 0x927a: 0x002dfe9d, 0x927b: 0x002e229d, - 0x927c: 0x002e829d, 0x927d: 0x002e9e9d, 0x927e: 0x002ee29d, 0x927f: 0x002f2c9d, - // Block 0x24a, offset 0x9280 - 0x9280: 0xa0000000, 0x9281: 0xa0000000, 0x9282: 0xa0000000, 0x9283: 0xa0000000, - 0x9284: 0xa0000000, 0x9286: 0x40096620, 0x9287: 0x40096a20, - 0x9288: 0x40070820, 0x9289: 0x4004f220, 0x928a: 0x4004f620, 0x928b: 0x4027e620, - 0x928c: 0x40024820, 0x928d: 0x40024a20, 0x928e: 0x40070e20, 0x928f: 0x40071020, - 0x9290: 0xae600000, 0x9291: 0xae600000, 0x9292: 0xae600000, 0x9293: 0xae600000, - 0x9294: 0xae600000, 0x9295: 0xae600000, 0x9296: 0xae600000, 0x9297: 0xae600000, - 0x9298: 0xa1e00000, 0x9299: 0xa1f00000, 0x929a: 0xa2000000, 0x929b: 0x40026420, - 0x929e: 0x40027020, 0x929f: 0x4002cc20, - 0x92a0: 0x403aa220, 0x92a1: 0x40393a20, 0x92a2: 0x40393620, 0x92a3: 0x40393a21, - 0x92a4: 0x40393a25, 0x92a5: 0x40393a23, 0x92a6: 0x00393b44, 0x92a7: 0xc5520151, - 0x92a8: 0x40393c20, 0x92a9: 0x403a8823, 0x92aa: 0x40395620, 0x92ab: 0x40395820, - 0x92ac: 0x40396420, 0x92ad: 0x40397220, 0x92ae: 0x40397420, 0x92af: 0x40398820, - 0x92b0: 0x40398a20, 0x92b1: 0x4039a420, 0x92b2: 0x4039a620, 0x92b3: 0x4039c620, - 0x92b4: 0x4039c820, 0x92b5: 0x4039dc20, 0x92b6: 0x4039de20, 0x92b7: 0x4039e620, - 0x92b8: 0x4039e820, 0x92b9: 0x4039ee20, 0x92ba: 0x4039f020, 0x92bb: 0x403a3820, - 0x92bc: 0x403a3a20, 0x92bd: 0x403a9c20, 0x92be: 0x403a9e20, 0x92bf: 0x403aa020, - // Block 0x24b, offset 0x92c0 - 0x92c0: 0xa0000000, 0x92c1: 0x4039fc20, 0x92c2: 0x403a1220, 0x92c3: 0x403a1c23, - 0x92c4: 0x403a4020, 0x92c5: 0x403a4e20, 0x92c6: 0x403a5620, 0x92c7: 0x403a8820, - 0x92c8: 0xc5560171, 0x92c9: 0xc55a0171, 0x92ca: 0xc55c0171, 0x92cb: 0xa000b002, - 0x92cc: 0xa000b202, 0x92cd: 0xa000b102, 0x92ce: 0xa1e0ad02, 0x92cf: 0xa000af02, - 0x92d0: 0xa000ae02, 0x92d1: 0xa210ba02, 0x92d2: 0xa220bc02, 0x92d3: 0xae60bd02, - 0x92d4: 0xae60be02, 0x92d5: 0xadc0bf02, 0x92d6: 0xadc0c102, 0x92d7: 0xae60c202, - 0x92d8: 0xae60c302, 0x92d9: 0xae60c402, 0x92da: 0xae60c502, 0x92db: 0xae60c602, - 0x92dc: 0xadc0c702, 0x92dd: 0xae60c802, 0x92de: 0xae60c902, 0x92df: 0xadc0c002, - 0x92e0: 0xe000015e, 0x92e1: 0xe00001e6, 0x92e2: 0xe0000301, 0x92e3: 0xe00003db, - 0x92e4: 0xe00004b6, 0x92e5: 0xe0000580, 0x92e6: 0xe000064b, 0x92e7: 0xe00006f3, - 0x92e8: 0xe000079f, 0x92e9: 0xe0000844, 0x92ea: 0x4004ee20, 0x92eb: 0x40024c20, - 0x92ec: 0x40024e20, 0x92ed: 0x4004de20, 0x92ee: 0x40393a20, 0x92ef: 0x403a1020, - 0x92f0: 0xa230d102, 0x92f1: 0x40393821, 0x92f2: 0x40393a22, 0x92f3: 0x40393a24, - 0x92f4: 0x00391c84, 0x92f5: 0xf0000404, 0x92f6: 0xf0000404, 0x92f7: 0xf0000404, - 0x92f8: 0xe0003736, 0x92f9: 0x40395a20, 0x92fa: 0x40395c20, 0x92fb: 0x40393e20, - 0x92fc: 0x40395e20, 0x92fd: 0x40396020, 0x92fe: 0x40394020, 0x92ff: 0x40396220, - // Block 0x24c, offset 0x9300 - 0x9300: 0x40394220, 0x9301: 0x40397620, 0x9302: 0x40397820, 0x9303: 0x40396620, - 0x9304: 0x40396820, 0x9305: 0x40397a20, 0x9306: 0x40396a20, 0x9307: 0x40396e20, - 0x9308: 0x40398c20, 0x9309: 0x40398e20, 0x930a: 0x40399020, 0x930b: 0x40399220, - 0x930c: 0x40399420, 0x930d: 0x40399620, 0x930e: 0x40399820, 0x930f: 0x40399a20, - 0x9310: 0x40399c20, 0x9311: 0x4039a820, 0x9312: 0x4039aa20, 0x9313: 0x4039ac20, - 0x9314: 0x4039ae20, 0x9315: 0x4039b020, 0x9316: 0x4039b220, 0x9317: 0x4039b420, - 0x9318: 0x4039b620, 0x9319: 0x4039b820, 0x931a: 0x4039ca20, 0x931b: 0x4039cc20, - 0x931c: 0x4039ce20, 0x931d: 0x4039e020, 0x931e: 0x4039e220, 0x931f: 0x4039ea20, - 0x9320: 0x4039f220, 0x9321: 0x4039fe20, 0x9322: 0x403a0020, 0x9323: 0x403a0220, - 0x9324: 0x403a0420, 0x9325: 0x403a0820, 0x9326: 0x403a0a20, 0x9327: 0x403a1420, - 0x9328: 0x403a1620, 0x9329: 0x403a1c20, 0x932a: 0x403a1c21, 0x932b: 0x403a1c22, - 0x932c: 0x403a1c24, 0x932d: 0x403a1c25, 0x932e: 0x403a1c26, 0x932f: 0x403a2a20, - 0x9330: 0x403a2c20, 0x9331: 0x403a2e20, 0x9332: 0x403a3020, 0x9333: 0x403a3220, - 0x9334: 0x403a3420, 0x9335: 0x403a4220, 0x9336: 0x403a4420, 0x9337: 0x403a4620, - 0x9338: 0x403a4820, 0x9339: 0x403a6020, 0x933a: 0x403a5820, 0x933b: 0x403a5a20, - 0x933c: 0x403a5c20, 0x933d: 0x403a5e20, 0x933e: 0x403a8826, 0x933f: 0x40396c20, - // Block 0x24d, offset 0x9340 - 0x9340: 0x403a8825, 0x9341: 0x403a8822, 0x9342: 0xe000372d, 0x9343: 0x403a8824, - 0x9344: 0x403a7620, 0x9345: 0x403a7820, 0x9346: 0x403a7a20, 0x9347: 0x403a7c20, - 0x9348: 0x403a7e20, 0x9349: 0x403a8020, 0x934a: 0x403a8220, 0x934b: 0x403a8420, - 0x934c: 0xc5580171, 0x934d: 0x403a9226, 0x934e: 0x403a9227, 0x934f: 0x403a8620, - 0x9350: 0x403a9224, 0x9351: 0x403a9225, 0x9352: 0x403a9222, 0x9353: 0xe000376c, - 0x9354: 0x4002e820, 0x9355: 0xc55e0171, 0x9356: 0xae600000, 0x9357: 0xae600000, - 0x9358: 0xae600000, 0x9359: 0xae600000, 0x935a: 0xae600000, 0x935b: 0xae600000, - 0x935c: 0xae600000, 0x935d: 0xa0000000, 0x935e: 0x40071220, 0x935f: 0xae600000, - 0x9360: 0xae600000, 0x9361: 0xae600000, 0x9362: 0xae600000, 0x9363: 0xadc00000, - 0x9364: 0xae600000, 0x9365: 0x003a7484, 0x9366: 0x003a9084, 0x9367: 0xae600000, - 0x9368: 0xae600000, 0x9369: 0x40071420, 0x936a: 0xadc00000, 0x936b: 0xae600000, - 0x936c: 0xae600000, 0x936d: 0xadc00000, 0x936e: 0x40399e20, 0x936f: 0x4039ba20, - 0x9370: 0xe0000161, 0x9371: 0xe00001e9, 0x9372: 0xe0000304, 0x9373: 0xe00003de, - 0x9374: 0xe00004b9, 0x9375: 0xe0000583, 0x9376: 0xe000064e, 0x9377: 0xe00006f6, - 0x9378: 0xe00007a2, 0x9379: 0xe0000847, 0x937a: 0x4039d020, 0x937b: 0x4039e420, - 0x937c: 0x4039f420, 0x937d: 0xe0001553, 0x937e: 0xe0001779, 0x937f: 0x403a7020, - // Block 0x24e, offset 0x9380 - 0x9380: 0x00396e97, 0x9381: 0x00396e98, 0x9382: 0x0039969a, 0x9383: 0x00399699, - 0x9384: 0x0039949a, 0x9385: 0x00399499, 0x9386: 0x0039989a, 0x9387: 0x00399899, - 0x9388: 0x00398c9a, 0x9389: 0x00398c99, 0x938a: 0x0039b69a, 0x938b: 0x0039b699, - 0x938c: 0x0039a89a, 0x938d: 0x0039a899, 0x938e: 0x003a1c9a, 0x938f: 0x003a1c99, - 0x9390: 0x003a1c97, 0x9391: 0x003a1c98, 0x9392: 0x003a2a9a, 0x9393: 0x003a2a99, - 0x9394: 0x003a2a97, 0x9395: 0x003a2a98, 0x9396: 0x003a329a, 0x9397: 0x003a3299, - 0x9398: 0x003a3297, 0x9399: 0x003a3298, 0x939a: 0x003a2e9a, 0x939b: 0x003a2e99, - 0x939c: 0x003a2e97, 0x939d: 0x003a2e98, 0x939e: 0x003a589a, 0x939f: 0x003a5899, - 0x93a0: 0x003a5a9a, 0x93a1: 0x003a5a99, 0x93a2: 0x003a5a97, 0x93a3: 0x003a5a98, - 0x93a4: 0xe000372a, 0x93a5: 0xe0003727, 0x93a6: 0x003a6c9a, 0x93a7: 0x003a6c99, - 0x93a8: 0x003a6c97, 0x93a9: 0x003a6c98, 0x93aa: 0x003a6a9a, 0x93ab: 0x003a6a99, - 0x93ac: 0x003a6a97, 0x93ad: 0x003a6a98, 0x93ae: 0x003aaa9a, 0x93af: 0x003aaa99, - 0x93b0: 0xe0003772, 0x93b1: 0xe000376f, 0x93b2: 0x40071820, 0x93b3: 0x40071a20, - 0x93b4: 0x40071c20, 0x93b5: 0x40071e20, 0x93b6: 0x40072020, 0x93b7: 0x40072220, - 0x93b8: 0x40072420, 0x93b9: 0x40072620, 0x93ba: 0x40072820, 0x93bb: 0x40072a20, - 0x93bc: 0x40072c20, 0x93bd: 0x40072e20, 0x93be: 0x40073020, 0x93bf: 0x40073220, - // Block 0x24f, offset 0x93c0 - 0x93c0: 0xe000155f, 0x93c1: 0xe0001565, 0x93c2: 0xe000157a, 0x93c3: 0xe00015b0, - 0x93c4: 0xe00015b6, 0x93c5: 0xf0001a1a, 0x93c6: 0xf0001a1a, 0x93c7: 0xf0001a1a, - 0x93c8: 0xf0001a1a, 0x93c9: 0xe0002894, 0x93ca: 0xe000365b, 0x93cb: 0xf0001a1a, - 0x93cc: 0xf0001a1a, 0x93cd: 0xf0001a1a, 0x93ce: 0xf0001a1a, 0x93cf: 0xe000289a, - 0x93d0: 0xe0003667, 0x93d1: 0xf0001a1a, 0x93d2: 0xf0001a1a, 0x93d3: 0xe00028a0, - 0x93d4: 0xe0003670, 0x93d5: 0xf0001a1a, 0x93d6: 0xf0001a1a, 0x93d7: 0xf0001a1a, - 0x93d8: 0xf0001a1a, 0x93d9: 0xf0001a1a, 0x93da: 0xf0001a1a, 0x93db: 0xf0001a1a, - 0x93dc: 0xf0001a1a, 0x93dd: 0xf0001a1a, 0x93de: 0xf0001a1a, 0x93df: 0xf0001a1a, - 0x93e0: 0xf0001a1a, 0x93e1: 0xf0001a1a, 0x93e2: 0xf0001a1a, 0x93e3: 0xf0001a1a, - 0x93e4: 0xf0001a1a, 0x93e5: 0xf0001a1a, 0x93e6: 0xf0001a1a, 0x93e7: 0xf0001a1a, - 0x93e8: 0xf0001a1a, 0x93e9: 0xf0001a1a, 0x93ea: 0xf0001a1a, 0x93eb: 0xf0001a1a, - 0x93ec: 0xf0001a1a, 0x93ed: 0xf0001a1a, 0x93ee: 0xf0001a1a, 0x93ef: 0xf0001a1a, - 0x93f0: 0xf0001a1a, 0x93f1: 0xe00028e2, 0x93f2: 0xe00036be, 0x93f3: 0xf0001a1a, - 0x93f4: 0xf0001a1a, 0x93f5: 0xe00028e8, 0x93f6: 0xe00036c4, 0x93f7: 0xe00036ca, - 0x93f8: 0xe00036d0, 0x93f9: 0xe00036d6, 0x93fa: 0xe00036dc, 0x93fb: 0xe00036e8, - 0x93fc: 0xe00036f4, 0x93fd: 0xe00028ee, 0x93fe: 0xe00036fa, 0x93ff: 0xf0001a1a, - // Block 0x250, offset 0x9400 - 0x9400: 0xf0001a1a, 0x9401: 0xf0001a1a, 0x9402: 0xf0001a1a, 0x9403: 0xe00028f4, - 0x9404: 0xe0003703, 0x9405: 0xf0001a1a, 0x9406: 0xf0001a1a, 0x9407: 0xf0001a1a, - 0x9408: 0xf0001a1a, 0x9409: 0xe00028f7, 0x940a: 0xe0003706, 0x940b: 0xf0001a1a, - 0x940c: 0xf0001a1a, 0x940d: 0xf0001a1a, 0x940e: 0xf0001a1a, 0x940f: 0xe00028fd, - 0x9410: 0xe0003712, 0x9411: 0xe000371b, 0x9412: 0xe0003721, 0x9413: 0xe0002900, - 0x9414: 0xe0003724, 0x9415: 0xe000373c, 0x9416: 0xe0003742, 0x9417: 0xe0003748, - 0x9418: 0xe000375a, 0x9419: 0xe0002906, 0x941a: 0xe0003769, 0x941b: 0xf0001a1a, - 0x941c: 0xf0001a1a, 0x941d: 0xe0003733, 0x941e: 0xe0000003, 0x941f: 0xe0000006, - 0x9420: 0xe0000009, 0x9421: 0xe000000c, 0x9422: 0xe000000f, 0x9423: 0xe0000012, - 0x9424: 0xe000156b, 0x9425: 0xe000156e, 0x9426: 0xe0001577, 0x9427: 0xe000157d, - 0x9428: 0xe00015aa, 0x9429: 0xe00015b3, 0x942a: 0xf0001919, 0x942b: 0xf0001919, - 0x942c: 0xf0001919, 0x942d: 0xf0001919, 0x942e: 0xe0002891, 0x942f: 0xe0003658, - 0x9430: 0xf0001919, 0x9431: 0xf0001919, 0x9432: 0xf0001919, 0x9433: 0xf0001919, - 0x9434: 0xe0002897, 0x9435: 0xe0003664, 0x9436: 0xf0001919, 0x9437: 0xf0001919, - 0x9438: 0xf0001919, 0x9439: 0xf0001919, 0x943a: 0xe000289d, 0x943b: 0xe000366d, - 0x943c: 0xe00028df, 0x943d: 0xe00036bb, 0x943e: 0xe00028e5, 0x943f: 0xe00036c1, - // Block 0x251, offset 0x9440 - 0x9440: 0xe00036c7, 0x9441: 0xe00036e5, 0x9442: 0xe00036f1, 0x9443: 0xe00028eb, - 0x9444: 0xe00036f7, 0x9445: 0xf0001919, 0x9446: 0xe00028f1, 0x9447: 0xe0003700, - 0x9448: 0xf0001919, 0x9449: 0xf0001919, 0x944a: 0xf0001919, 0x944b: 0xf0001919, - 0x944c: 0xf0001919, 0x944d: 0xf0001919, 0x944e: 0xe00028fa, 0x944f: 0xe000370f, - 0x9450: 0xe0003730, 0x9451: 0xe000374b, 0x9452: 0xe000374e, 0x9453: 0xe0003757, - 0x9454: 0xe000375d, 0x9455: 0xe0002903, 0x9456: 0xe0003766, 0x9457: 0xe000155c, - 0x9458: 0xe0001562, 0x9459: 0xe0001568, 0x945a: 0xe0001571, 0x945b: 0xe0001580, - 0x945c: 0xf0001717, 0x945d: 0xf0001717, 0x945e: 0xf0001717, 0x945f: 0xf0001717, - 0x9460: 0xe0003652, 0x9461: 0xf0001717, 0x9462: 0xf0001717, 0x9463: 0xf0001717, - 0x9464: 0xf0001717, 0x9465: 0xe000365e, 0x9466: 0xf0001717, 0x9467: 0xf0001717, - 0x9468: 0xf0001717, 0x9469: 0xf0001717, 0x946a: 0xf0001717, 0x946b: 0xf0001717, - 0x946c: 0xf0001717, 0x946d: 0xf0001717, 0x946e: 0xf0001717, 0x946f: 0xf0001717, - 0x9470: 0xf0001717, 0x9471: 0xf0001717, 0x9472: 0xf0001717, 0x9473: 0xf0001717, - 0x9474: 0xf0001717, 0x9475: 0xf0001717, 0x9476: 0xf0001717, 0x9477: 0xf0001717, - 0x9478: 0xf0001717, 0x9479: 0xf0001717, 0x947a: 0xf0001717, 0x947b: 0xf0001717, - 0x947c: 0xf0001717, 0x947d: 0xf0001717, 0x947e: 0xf0001717, 0x947f: 0xf0001717, - // Block 0x252, offset 0x9480 - 0x9480: 0xf0001717, 0x9481: 0xf0001717, 0x9482: 0xf0001717, 0x9483: 0xf0001717, - 0x9484: 0xe00036cd, 0x9485: 0xe00036d3, 0x9486: 0xe00036d9, 0x9487: 0xe00036df, - 0x9488: 0xe00036eb, 0x9489: 0xf0001717, 0x948a: 0xf0001717, 0x948b: 0xf0001717, - 0x948c: 0xf0001717, 0x948d: 0xe00036fd, 0x948e: 0xf0001717, 0x948f: 0xf0001717, - 0x9490: 0xf0001717, 0x9491: 0xf0001717, 0x9492: 0xf0001717, 0x9493: 0xf0001717, - 0x9494: 0xf0001717, 0x9495: 0xf0001717, 0x9496: 0xe0003709, 0x9497: 0xe0003718, - 0x9498: 0xe000371e, 0x9499: 0xe0003715, 0x949a: 0xe0003739, 0x949b: 0xe000373f, - 0x949c: 0xe0003745, 0x949d: 0xe0003751, 0x949e: 0xe0003760, 0x949f: 0xe0001574, - 0x94a0: 0xe0001583, 0x94a1: 0xf0001818, 0x94a2: 0xe0003655, 0x94a3: 0xf0001818, - 0x94a4: 0xe0003661, 0x94a5: 0xf0001818, 0x94a6: 0xe000366a, 0x94a7: 0xf0001818, - 0x94a8: 0xe0003688, 0x94a9: 0xf0001818, 0x94aa: 0xe0003694, 0x94ab: 0xe00036e2, - 0x94ac: 0xe00036ee, 0x94ad: 0xf0001818, 0x94ae: 0xf0001818, 0x94af: 0xe000370c, - 0x94b0: 0xe0003754, 0x94b1: 0xe0003763, 0x94b2: 0xf0001818, 0x94b3: 0xe0003646, - 0x94b4: 0xe0003649, 0x94b5: 0xe00028d0, 0x94b6: 0xe00036ac, 0x94b7: 0xe00028d6, - 0x94b8: 0xe00036b2, 0x94b9: 0xe00028dc, 0x94ba: 0xe00036b8, 0x94bb: 0xe00028b8, - 0x94bc: 0xe000368e, 0x94bd: 0xe00028be, 0x94be: 0xe000369a, 0x94bf: 0xe00028ac, - // Block 0x253, offset 0x94c0 - 0x94c0: 0xe000367c, 0x94c1: 0xe00028a6, 0x94c2: 0xe0003676, 0x94c3: 0xe00028b2, - 0x94c4: 0xe0003682, 0x94c5: 0xe00028c4, 0x94c6: 0xe00036a0, 0x94c7: 0xe00028ca, - 0x94c8: 0xe00036a6, 0x94c9: 0xf0001a1a, 0x94ca: 0xf0001a1a, 0x94cb: 0xf0001a1a, - 0x94cc: 0xf0001a1a, 0x94cd: 0xf0001a1a, 0x94ce: 0xf0001a1a, 0x94cf: 0xf0001a1a, - 0x94d0: 0xf0001a1a, 0x94d1: 0xe00028cd, 0x94d2: 0xe00036a9, 0x94d3: 0xe00028d3, - 0x94d4: 0xe00036af, 0x94d5: 0xe00028d9, 0x94d6: 0xe00036b5, 0x94d7: 0xe00028b5, - 0x94d8: 0xe000368b, 0x94d9: 0xe00028bb, 0x94da: 0xe0003697, 0x94db: 0xe00028a9, - 0x94dc: 0xe0003679, 0x94dd: 0xe00028a3, 0x94de: 0xe0003673, 0x94df: 0xe00028af, - 0x94e0: 0xe000367f, 0x94e1: 0xe00028c1, 0x94e2: 0xe000369d, 0x94e3: 0xe00028c7, - 0x94e4: 0xe00036a3, 0x94e5: 0xf0001919, 0x94e6: 0xf0001919, 0x94e7: 0xf0001919, - 0x94e8: 0xf0001919, 0x94e9: 0xf0001919, 0x94ea: 0xf0001919, 0x94eb: 0xf0001919, - 0x94ec: 0xf0001919, 0x94ed: 0xf0001717, 0x94ee: 0xf0001717, 0x94ef: 0xf0001717, - 0x94f0: 0xf0001717, 0x94f1: 0xe0003685, 0x94f2: 0xe0003691, 0x94f3: 0xf0001717, - 0x94f4: 0xf0001818, 0x94f5: 0xf0001818, 0x94f6: 0xf0001818, 0x94f7: 0xf0001818, - 0x94f8: 0xf0001818, 0x94f9: 0xf0001818, 0x94fa: 0xf0001818, 0x94fb: 0xf0001818, - 0x94fc: 0xe000364c, 0x94fd: 0xe000364f, 0x94fe: 0x4004c020, 0x94ff: 0x4004c220, - // Block 0x254, offset 0x9500 - 0x9500: 0xa0000000, 0x9501: 0xa0000000, 0x9502: 0xa0000000, 0x9503: 0xa0000000, - 0x9504: 0xa0000000, 0x9505: 0xa0000000, 0x9506: 0xa0000000, 0x9507: 0xa0000000, - 0x9508: 0xa0000000, 0x9509: 0x40020020, 0x950a: 0x40020220, 0x950b: 0x40020420, - 0x950c: 0x40020620, 0x950d: 0x40020820, 0x950e: 0xa0000000, 0x950f: 0xa0000000, - 0x9510: 0xa0000000, 0x9511: 0xa0000000, 0x9512: 0xa0000000, 0x9513: 0xa0000000, - 0x9514: 0xa0000000, 0x9515: 0xa0000000, 0x9516: 0xa0000000, 0x9517: 0xa0000000, - 0x9518: 0xa0000000, 0x9519: 0xa0000000, 0x951a: 0xa0000000, 0x951b: 0xa0000000, - 0x951c: 0xa0000000, 0x951d: 0xa0000000, 0x951e: 0xa0000000, 0x951f: 0xa0000000, - 0x9520: 0x40021220, 0x9521: 0x4002ba20, 0x9522: 0x4003e020, 0x9523: 0x4004ea20, - 0x9524: 0x4027de20, 0x9525: 0x4004ec20, 0x9526: 0x4004e620, 0x9527: 0x4003d220, - 0x9528: 0x4003f420, 0x9529: 0x4003f620, 0x952a: 0x4004d820, 0x952b: 0x40093820, - 0x952c: 0x40024020, 0x952d: 0x40021a20, 0x952e: 0x4002e420, 0x952f: 0x4004e220, - 0x9530: 0x4029cc20, 0x9531: 0x4029ce20, 0x9532: 0x4029d020, 0x9533: 0x4029d220, - 0x9534: 0x4029d420, 0x9535: 0x4029d620, 0x9536: 0x4029d820, 0x9537: 0x4029da20, - 0x9538: 0x4029dc20, 0x9539: 0x4029de20, 0x953a: 0x40026c20, 0x953b: 0x40026220, - 0x953c: 0x40094020, 0x953d: 0x40094220, 0x953e: 0x40094420, 0x953f: 0x4002c420, - // Block 0x255, offset 0x9540 - 0x9540: 0x4004d620, 0x9541: 0xc56727b1, 0x9542: 0x002c0a88, 0x9543: 0x002c3a88, - 0x9544: 0x002c6288, 0x9545: 0x002c9888, 0x9546: 0x002d0888, 0x9547: 0x002d2288, - 0x9548: 0x002d6888, 0x9549: 0x002d9a88, 0x954a: 0x002dcc88, 0x954b: 0x002dfe88, - 0x954c: 0xc0030002, 0x954d: 0x002e8288, 0x954e: 0x002e9e88, 0x954f: 0xc56c0071, - 0x9550: 0x002f2c88, 0x9551: 0x002f5688, 0x9552: 0x002f7a88, 0x9553: 0x002fe688, - 0x9554: 0x00302c88, 0x9555: 0xc5620071, 0x9556: 0x0030be88, 0x9557: 0x0030e288, - 0x9558: 0x0030f688, 0x9559: 0x00310088, 0x955a: 0x00312a88, 0x955b: 0x4003f820, - 0x955c: 0x4004e420, 0x955d: 0x4003fa20, 0x955e: 0x40062420, 0x955f: 0x40021620, - 0x9560: 0x40061e20, 0x9561: 0xc56427b1, 0x9562: 0x402c0a20, 0x9563: 0x402c3a20, - 0x9564: 0x402c6220, 0x9565: 0x402c9820, 0x9566: 0x402d0820, 0x9567: 0x402d2220, - 0x9568: 0x402d6820, 0x9569: 0x402d9a20, 0x956a: 0x402dcc20, 0x956b: 0x402dfe20, - 0x956c: 0xc0000002, 0x956d: 0x402e8220, 0x956e: 0x402e9e20, 0x956f: 0xc56a0071, - 0x9570: 0x402f2c20, 0x9571: 0x402f5620, 0x9572: 0x402f7a20, 0x9573: 0x402fe620, - 0x9574: 0x40302c20, 0x9575: 0xc5600071, 0x9576: 0x4030be20, 0x9577: 0x4030e220, - 0x9578: 0x4030f620, 0x9579: 0x40310020, 0x957a: 0x40312a20, 0x957b: 0x4003fc20, - 0x957c: 0x40094820, 0x957d: 0x4003fe20, 0x957e: 0x40094c20, 0x957f: 0xa0000000, - // Block 0x256, offset 0x9580 - 0x9580: 0xe00008f5, 0x9581: 0xe00008ef, 0x9582: 0xe0000921, 0x9583: 0xe0000969, - 0x9584: 0x00320e83, 0x9585: 0x00320c83, 0x9586: 0x00320ea3, 0x9587: 0xe0000a53, - 0x9588: 0xe0000ae8, 0x9589: 0xe0000ae2, 0x958a: 0xe0000af4, 0x958b: 0xe0000b20, - 0x958c: 0xe0000c2b, 0x958d: 0xe0000c25, 0x958e: 0xe0000c37, 0x958f: 0xe0000c43, - 0x9590: 0xe0000ab3, 0x9591: 0xe0000d63, 0x9592: 0xe0000d9a, 0x9593: 0xe0000d94, - 0x9594: 0xe0000da6, 0x9595: 0xe0000de6, 0x9596: 0x00321083, 0x9597: 0x40093e20, - 0x9598: 0x003210a3, 0x9599: 0xe0000fe1, 0x959a: 0xe0000fdb, 0x959b: 0xe0000fed, - 0x959c: 0x003100a3, 0x959d: 0xe0001102, 0x959e: 0x00318888, 0x959f: 0xe0000f7b, - 0x95a0: 0xe00008f2, 0x95a1: 0xe00008ec, 0x95a2: 0xe000091e, 0x95a3: 0xe0000966, - 0x95a4: 0x40320e20, 0x95a5: 0x40320c20, 0x95a6: 0x40320e21, 0x95a7: 0xe0000a4d, - 0x95a8: 0xe0000ae5, 0x95a9: 0xe0000adf, 0x95aa: 0xe0000af1, 0x95ab: 0xe0000b1d, - 0x95ac: 0xe0000c28, 0x95ad: 0xe0000c22, 0x95ae: 0xe0000c34, 0x95af: 0xe0000c40, - 0x95b0: 0xe0000aad, 0x95b1: 0xe0000d60, 0x95b2: 0xe0000d97, 0x95b3: 0xe0000d91, - 0x95b4: 0xe0000da3, 0x95b5: 0xe0000de3, 0x95b6: 0x40321020, 0x95b7: 0x40093c20, - 0x95b8: 0x40321021, 0x95b9: 0xe0000fde, 0x95ba: 0xe0000fd8, 0x95bb: 0xe0000fea, - 0x95bc: 0x40310021, 0x95bd: 0xe00010ff, 0x95be: 0x40318820, 0x95bf: 0xe0001114, - // Block 0x257, offset 0x95c0 - 0x95c0: 0xe0000983, 0x95c1: 0xe0000980, 0x95c2: 0xe00008fb, 0x95c3: 0xe00008f8, - 0x95c4: 0xe000097d, 0x95c5: 0xe000097a, 0x95c6: 0xe0000a38, 0x95c7: 0xe0000a35, - 0x95c8: 0xe0000a3e, 0x95c9: 0xe0000a3b, 0x95ca: 0xe0000a4a, 0x95cb: 0xe0000a47, - 0x95cc: 0xe0000a44, 0x95cd: 0xe0000a41, 0x95ce: 0xe0000a86, 0x95cf: 0xe0000a83, - 0x95d0: 0xe0003778, 0x95d1: 0xe0003775, 0x95d2: 0xe0000b46, 0x95d3: 0xe0000b43, - 0x95d4: 0xe0000aee, 0x95d5: 0xe0000aeb, 0x95d6: 0xe0000b2c, 0x95d7: 0xe0000b29, - 0x95d8: 0xe0000b40, 0x95d9: 0xe0000b3d, 0x95da: 0xe0000b1a, 0x95db: 0xe0000b17, - 0x95dc: 0xe0000bb8, 0x95dd: 0xe0000bb5, 0x95de: 0xe0000bb2, 0x95df: 0xe0000baf, - 0x95e0: 0xe0000bc4, 0x95e1: 0xe0000bc1, 0x95e2: 0xe0000bca, 0x95e3: 0xe0000bc7, - 0x95e4: 0xe0000bee, 0x95e5: 0xe0000beb, 0x95e6: 0xe0000c1b, 0x95e7: 0xe0000c18, - 0x95e8: 0xe0000c51, 0x95e9: 0xe0000c4e, 0x95ea: 0xe0000c60, 0x95eb: 0xe0000c5d, - 0x95ec: 0xe0000c31, 0x95ed: 0xe0000c2e, 0x95ee: 0xe0000c5a, 0x95ef: 0xe0000c57, - 0x95f0: 0xe0000c54, 0x95f1: 0x402da220, 0x95f2: 0xf0000a0a, 0x95f3: 0xf0000404, - 0x95f4: 0xe0000c8a, 0x95f5: 0xe0000c87, 0x95f6: 0xe0000c9f, 0x95f7: 0xe0000c9c, - 0x95f8: 0x402f7220, 0x95f9: 0xe0000ccc, 0x95fa: 0xe0000cc9, 0x95fb: 0xe0000cd8, - 0x95fc: 0xe0000cd5, 0x95fd: 0xe0000cd2, 0x95fe: 0xe0000ccf, 0x95ff: 0xe0000d04, - // Block 0x258, offset 0x9600 - 0x9600: 0xe0000cfe, 0x9601: 0xe0000cf8, 0x9602: 0xe0000cf5, 0x9603: 0xe0000d51, - 0x9604: 0xe0000d4e, 0x9605: 0xe0000d6f, 0x9606: 0xe0000d6c, 0x9607: 0xe0000d5d, - 0x9608: 0xe0000d5a, 0x9609: 0xf0000404, 0x960a: 0xe0003784, 0x960b: 0xe0003781, - 0x960c: 0xe0000e2e, 0x960d: 0xe0000e2b, 0x960e: 0xe0000da0, 0x960f: 0xe0000d9d, - 0x9610: 0xe0000de0, 0x9611: 0xe0000ddd, 0x9612: 0xe0000e93, 0x9613: 0xe0000e8f, - 0x9614: 0xe0000eca, 0x9615: 0xe0000ec7, 0x9616: 0xe0000edc, 0x9617: 0xe0000ed9, - 0x9618: 0xe0000ed0, 0x9619: 0xe0000ecd, 0x961a: 0xe0000f1f, 0x961b: 0xe0000f1c, - 0x961c: 0xe0000f2d, 0x961d: 0xe0000f2a, 0x961e: 0xe0000f47, 0x961f: 0xe0000f44, - 0x9620: 0xe0000f33, 0x9621: 0xe0000f30, 0x9622: 0xe0000f99, 0x9623: 0xe0000f96, - 0x9624: 0xe0000f8a, 0x9625: 0xe0000f87, 0x9626: 0xe000378a, 0x9627: 0xe0003787, - 0x9628: 0xe000102b, 0x9629: 0xe0001028, 0x962a: 0xe000103f, 0x962b: 0xe000103c, - 0x962c: 0xe0000fe7, 0x962d: 0xe0000fe4, 0x962e: 0xe0000ff9, 0x962f: 0xe0000ff6, - 0x9630: 0xe0001025, 0x9631: 0xe0001022, 0x9632: 0xe0001039, 0x9633: 0xe0001036, - 0x9634: 0xe00010d8, 0x9635: 0xe00010d5, 0x9636: 0xe000110e, 0x9637: 0xe000110b, - 0x9638: 0xe0001117, 0x9639: 0xe000113b, 0x963a: 0xe0001138, 0x963b: 0xe000114d, - 0x963c: 0xe000114a, 0x963d: 0xe0001147, 0x963e: 0xe0001144, 0x963f: 0xe0000f64, - // Block 0x259, offset 0x9640 - 0x9640: 0x402c1a20, 0x9641: 0x002c2a88, 0x9642: 0x002c3288, 0x9643: 0x402c3220, - 0x9644: 0x0031c488, 0x9645: 0x4031c420, 0x9646: 0x002efa88, 0x9647: 0x002c4e88, - 0x9648: 0x402c4e20, 0x9649: 0x002c7288, 0x964a: 0x002c7a88, 0x964b: 0x002c8488, - 0x964c: 0x402c8420, 0x964d: 0xe000115c, 0x964e: 0x002cae88, 0x964f: 0x002cb888, - 0x9650: 0x002cc288, 0x9651: 0x002d1688, 0x9652: 0x402d1620, 0x9653: 0x002d4488, - 0x9654: 0x002d5888, 0x9655: 0x402d7820, 0x9656: 0x002dc288, 0x9657: 0x002db688, - 0x9658: 0x002e0a88, 0x9659: 0x402e0a20, 0x965a: 0x402e3820, 0x965b: 0x402e7220, - 0x965c: 0x0030a088, 0x965d: 0x002eb488, 0x965e: 0x402ebc20, 0x965f: 0x002f1088, - 0x9660: 0xe0000e56, 0x9661: 0xe0000e53, 0x9662: 0x002d6088, 0x9663: 0x402d6020, - 0x9664: 0x002f3e88, 0x9665: 0x402f3e20, 0x9666: 0x002f8288, 0x9667: 0x0031b488, - 0x9668: 0x4031b420, 0x9669: 0x00300888, 0x966a: 0x40301220, 0x966b: 0x40304220, - 0x966c: 0x00304a88, 0x966d: 0x40304a20, 0x966e: 0x00305288, 0x966f: 0xe000105f, - 0x9670: 0xe000105c, 0x9671: 0x0030b488, 0x9672: 0x0030cc88, 0x9673: 0x00311888, - 0x9674: 0x40311820, 0x9675: 0x00313488, 0x9676: 0x40313420, 0x9677: 0xe0003790, - 0x9678: 0x00316e88, 0x9679: 0x40316e20, 0x967a: 0x40317820, 0x967b: 0x4031a620, - 0x967c: 0x0031bc88, 0x967d: 0x4031bc20, 0x967e: 0xe0000fc9, 0x967f: 0x40319420, - // Block 0x25a, offset 0x9680 - 0x9680: 0x40321220, 0x9681: 0x40321a20, 0x9682: 0x40322220, 0x9683: 0x40322a20, - 0x9684: 0xe0000ad5, 0x9685: 0xe0000ad1, 0x9686: 0xe0000acd, 0x9687: 0xf0000a0a, - 0x9688: 0xf000040a, 0x9689: 0xf0000404, 0x968a: 0xf0000a0a, 0x968b: 0xf000040a, - 0x968c: 0xf0000404, 0x968d: 0xe0000947, 0x968e: 0xe0000944, 0x968f: 0xe0000c3d, - 0x9690: 0xe0000c3a, 0x9691: 0xe0000dcc, 0x9692: 0xe0000dc9, 0x9693: 0xe0000ff3, - 0x9694: 0xe0000ff0, 0x9695: 0xe000298b, 0x9696: 0xe0002988, 0x9697: 0xe0002979, - 0x9698: 0xe0002976, 0x9699: 0xe0002985, 0x969a: 0xe0002982, 0x969b: 0xe000297f, - 0x969c: 0xe000297c, 0x969d: 0x402cae20, 0x969e: 0xe000379e, 0x969f: 0xe000379b, - 0x96a0: 0xe0000976, 0x96a1: 0xe0000972, 0x96a2: 0xe00029af, 0x96a3: 0xe00029ac, - 0x96a4: 0xe000377e, 0x96a5: 0xe000377b, 0x96a6: 0xe0000bbe, 0x96a7: 0xe0000bbb, - 0x96a8: 0xe0000c99, 0x96a9: 0xe0000c96, 0x96aa: 0xe0000e20, 0x96ab: 0xe0000e1d, - 0x96ac: 0xe0000e27, 0x96ad: 0xe0000e23, 0x96ae: 0xe0003797, 0x96af: 0xe0003793, - 0x96b0: 0xe0000c8d, 0x96b1: 0xf0000a0a, 0x96b2: 0xf000040a, 0x96b3: 0xf0000404, - 0x96b4: 0xe0000bac, 0x96b5: 0xe0000ba9, 0x96b6: 0x002d7888, 0x96b7: 0x00319488, - 0x96b8: 0xe0000d57, 0x96b9: 0xe0000d54, 0x96ba: 0xe0002991, 0x96bb: 0xe000298e, - 0x96bc: 0xe00037a4, 0x96bd: 0xe00037a1, 0x96be: 0xe00037b6, 0x96bf: 0xe00037b3, - // Block 0x25b, offset 0x96c0 - 0x96c0: 0xe000098f, 0x96c1: 0xe000098c, 0x96c2: 0xe0000995, 0x96c3: 0xe0000992, - 0x96c4: 0xe0000b62, 0x96c5: 0xe0000b5f, 0x96c6: 0xe0000b68, 0x96c7: 0xe0000b65, - 0x96c8: 0xe0000c6c, 0x96c9: 0xe0000c69, 0x96ca: 0xe0000c72, 0x96cb: 0xe0000c6f, - 0x96cc: 0xe0000e4a, 0x96cd: 0xe0000e47, 0x96ce: 0xe0000e50, 0x96cf: 0xe0000e4d, - 0x96d0: 0xe0000ee8, 0x96d1: 0xe0000ee5, 0x96d2: 0xe0000eee, 0x96d3: 0xe0000eeb, - 0x96d4: 0xe0001053, 0x96d5: 0xe0001050, 0x96d6: 0xe0001059, 0x96d7: 0xe0001056, - 0x96d8: 0xe0000f61, 0x96d9: 0xe0000f5e, 0x96da: 0xe0000fa5, 0x96db: 0xe0000fa2, - 0x96dc: 0x00312288, 0x96dd: 0x40312220, 0x96de: 0xe0000bf4, 0x96df: 0xe0000bf1, - 0x96e0: 0x002ebc88, 0x96e1: 0x402c8c20, 0x96e2: 0x002f2288, 0x96e3: 0x402f2220, - 0x96e4: 0x00314088, 0x96e5: 0x40314020, 0x96e6: 0xe000096f, 0x96e7: 0xe000096c, - 0x96e8: 0xe0000b32, 0x96e9: 0xe0000b2f, 0x96ea: 0xe00037b0, 0x96eb: 0xe00037ad, - 0x96ec: 0xe0000dfd, 0x96ed: 0xe0000df9, 0x96ee: 0xe0000e04, 0x96ef: 0xe0000e01, - 0x96f0: 0xe0000e0b, 0x96f1: 0xe0000e07, 0x96f2: 0xe0001129, 0x96f3: 0xe0001126, - 0x96f4: 0x402e5e20, 0x96f5: 0x402ed020, 0x96f6: 0x40305a20, 0x96f7: 0x402dd420, - 0x96f8: 0xe0000abf, 0x96f9: 0xe0000ec4, 0x96fa: 0x002be888, 0x96fb: 0x002c4488, - 0x96fc: 0x402c4420, 0x96fd: 0x002e3888, 0x96fe: 0x00303e88, 0x96ff: 0x402ffc20, - // Block 0x25c, offset 0x9700 - 0x9700: 0x402f8220, 0x9701: 0x402fd820, 0x9702: 0x402ff420, 0x9703: 0x40300820, - 0x9704: 0x402df620, 0x9705: 0x40301a20, 0x9706: 0x40302420, 0x9707: 0x40306420, - 0x9708: 0x40305220, 0x9709: 0x40307c20, 0x970a: 0x4030b420, 0x970b: 0x4030cc20, - 0x970c: 0x4030da20, 0x970d: 0x4030ee20, 0x970e: 0x402e7a20, 0x970f: 0x40310820, - 0x9710: 0x40314820, 0x9711: 0x40315020, 0x9712: 0xe000378d, 0x9713: 0x40318020, - 0x9714: 0x4031cc20, 0x9715: 0x4031e820, 0x9716: 0x40320a20, 0x9717: 0x40323220, - 0x9718: 0x40323a20, 0x9719: 0x402c1220, 0x971a: 0x402cf820, 0x971b: 0x402d4c20, - 0x971c: 0x402d7020, 0x971d: 0x402de620, 0x971e: 0x402e1a20, 0x971f: 0x402e2a20, - 0x9720: 0x402f6220, 0x9721: 0x4031fa20, 0x9722: 0x40320220, 0x9723: 0xe0000aca, - 0x9724: 0xe0000adc, 0x9725: 0xe0000ad9, 0x9726: 0xe0000fcc, 0x9727: 0xe0000fcf, - 0x9728: 0xe0000fba, 0x9729: 0xe0000ba1, 0x972a: 0xe0000d11, 0x972b: 0xe0000d18, - 0x972c: 0x40324220, 0x972d: 0x40324a20, 0x972e: 0x40309020, 0x972f: 0x40309820, - 0x9730: 0x002d6894, 0x9731: 0x002d8094, 0x9732: 0x002dcc94, 0x9733: 0x002f7a94, - 0x9734: 0x002f9894, 0x9735: 0x002fac94, 0x9736: 0x002fd894, 0x9737: 0x0030e294, - 0x9738: 0x00310094, 0x9739: 0x40064020, 0x973a: 0x40064420, 0x973b: 0x402d9620, - 0x973c: 0x4031de20, 0x973d: 0x402d9820, 0x973e: 0x4031e220, 0x973f: 0x4031f020, - // Block 0x25d, offset 0x9740 - 0x9740: 0xe0000d24, 0x9741: 0xe0000d21, 0x9742: 0xe0000d2a, 0x9743: 0xe0000d27, - 0x9744: 0xe0000d69, 0x9745: 0xe0000d66, 0x9746: 0xe0000d7b, 0x9747: 0xe0000d78, - 0x9748: 0xe0000d87, 0x9749: 0xe0000d84, 0x974a: 0xe0000d81, 0x974b: 0xe0000d7e, - 0x974c: 0xe0000ded, 0x974d: 0xe0000de9, 0x974e: 0xe00037aa, 0x974f: 0xe00037a7, - 0x9750: 0xe0000e3d, 0x9751: 0xe0000e39, 0x9752: 0xe0000e35, 0x9753: 0xe0000e31, - 0x9754: 0xe0000ea7, 0x9755: 0xe0000ea4, 0x9756: 0xe0000ead, 0x9757: 0xe0000eaa, - 0x9758: 0xe0000ed6, 0x9759: 0xe0000ed3, 0x975a: 0xe0000ef4, 0x975b: 0xe0000ef1, - 0x975c: 0xe0000efb, 0x975d: 0xe0000ef7, 0x975e: 0xe0000f02, 0x975f: 0xe0000eff, - 0x9760: 0xe0000f41, 0x9761: 0xe0000f3e, 0x9762: 0xe0000f53, 0x9763: 0xe0000f50, - 0x9764: 0xe0000f26, 0x9765: 0xe0000f22, 0x9766: 0xe0000f3a, 0x9767: 0xe0000f36, - 0x9768: 0xe0000f5a, 0x9769: 0xe0000f56, 0x976a: 0xe0000f93, 0x976b: 0xe0000f90, - 0x976c: 0xe0000f9f, 0x976d: 0xe0000f9c, 0x976e: 0xe0000fb1, 0x976f: 0xe0000fae, - 0x9770: 0xe0000fab, 0x9771: 0xe0000fa8, 0x9772: 0xe0001093, 0x9773: 0xe0001090, - 0x9774: 0xe000109f, 0x9775: 0xe000109c, 0x9776: 0xe0001099, 0x9777: 0xe0001096, - 0x9778: 0xe0001032, 0x9779: 0xe000102e, 0x977a: 0xe000298b, 0x977b: 0xe0002988, - 0x977c: 0xe00010a9, 0x977d: 0xe00010a6, 0x977e: 0xe00010af, 0x977f: 0xe00010ac, - // Block 0x25e, offset 0x9780 - 0x9780: 0xe00009bc, 0x9781: 0xe00009c0, 0x9782: 0x002c3a8b, 0x9783: 0xf0000a04, - 0x9784: 0x40081c20, 0x9785: 0xe0000a5e, 0x9786: 0xe0000a62, 0x9787: 0x002cc28a, - 0x9788: 0x40081e20, 0x9789: 0xf0000a04, 0x978a: 0x002d2285, 0x978b: 0x002d688b, - 0x978c: 0x002d688b, 0x978d: 0x002d688b, 0x978e: 0x002d6885, 0x978f: 0xf0000202, - 0x9790: 0x002d9a8b, 0x9791: 0x002d9a8b, 0x9792: 0x002e228b, 0x9793: 0x002e2285, - 0x9794: 0x40082020, 0x9795: 0x002e9e8b, 0x9796: 0xf000040a, 0x9797: 0x40082220, - 0x9798: 0x40082420, 0x9799: 0x002f2c8b, 0x979a: 0x002f568b, 0x979b: 0x002f7a8b, - 0x979c: 0x002f7a8b, 0x979d: 0x002f7a8b, 0x979e: 0x40082620, 0x979f: 0x40082820, - 0x97a0: 0xf0001414, 0x97a1: 0xe0000fbd, 0x97a2: 0xf0001414, 0x97a3: 0x40082a20, - 0x97a4: 0x00312a8b, 0x97a5: 0x40082c20, 0x97a6: 0x0032a288, 0x97a7: 0x40082e20, - 0x97a8: 0x00312a8b, 0x97a9: 0x40083020, 0x97aa: 0x002dfe88, 0x97ab: 0x00320c83, - 0x97ac: 0x002c0a8b, 0x97ad: 0x002c3a8b, 0x97ae: 0x40083220, 0x97af: 0x002c9885, - 0x97b0: 0x002c988b, 0x97b1: 0x002d088b, 0x97b2: 0x002d1e88, 0x97b3: 0x002e828b, - 0x97b4: 0x002ee285, 0x97b5: 0x00389084, 0x97b6: 0x00389284, 0x97b7: 0x00389484, - 0x97b8: 0x00389684, 0x97b9: 0x002d9a85, 0x97ba: 0x40083420, 0x97bb: 0xe0000b95, - 0x97bc: 0x00327e85, 0x97bd: 0x00325685, 0x97be: 0x0032568b, 0x97bf: 0x00327e8b, - // Block 0x25f, offset 0x97c0 - 0x97c0: 0xa0000000, 0x97c1: 0xa0000000, 0x97c2: 0xa0000000, 0x97c3: 0xa0000000, - 0x97c4: 0xa0000000, 0x97c5: 0xa0000000, 0x97c6: 0xa0000000, 0x97c7: 0xa0000000, - 0x97c8: 0xa0000000, 0x97c9: 0x40020020, 0x97ca: 0x40020220, 0x97cb: 0x40020420, - 0x97cc: 0x40020620, 0x97cd: 0x40020820, 0x97ce: 0xa0000000, 0x97cf: 0xa0000000, - 0x97d0: 0xa0000000, 0x97d1: 0xa0000000, 0x97d2: 0xa0000000, 0x97d3: 0xa0000000, - 0x97d4: 0xa0000000, 0x97d5: 0xa0000000, 0x97d6: 0xa0000000, 0x97d7: 0xa0000000, - 0x97d8: 0xa0000000, 0x97d9: 0xa0000000, 0x97da: 0xa0000000, 0x97db: 0xa0000000, - 0x97dc: 0xa0000000, 0x97dd: 0xa0000000, 0x97de: 0xa0000000, 0x97df: 0xa0000000, - 0x97e0: 0x40021220, 0x97e1: 0x4002ba20, 0x97e2: 0x4003e020, 0x97e3: 0x4004ea20, - 0x97e4: 0x4027de20, 0x97e5: 0x4004ec20, 0x97e6: 0x4004e620, 0x97e7: 0x4003d220, - 0x97e8: 0x4003f420, 0x97e9: 0x4003f620, 0x97ea: 0x4004d820, 0x97eb: 0x40093820, - 0x97ec: 0x40024020, 0x97ed: 0x40021a20, 0x97ee: 0x4002e420, 0x97ef: 0x4004e220, - 0x97f0: 0x4029cc20, 0x97f1: 0x4029ce20, 0x97f2: 0x4029d020, 0x97f3: 0x4029d220, - 0x97f4: 0x4029d420, 0x97f5: 0x4029d620, 0x97f6: 0x4029d820, 0x97f7: 0x4029da20, - 0x97f8: 0x4029dc20, 0x97f9: 0x4029de20, 0x97fa: 0x40026c20, 0x97fb: 0x40026220, - 0x97fc: 0x40094020, 0x97fd: 0x40094220, 0x97fe: 0x40094420, 0x97ff: 0x4002c420, - // Block 0x260, offset 0x9800 - 0x9800: 0x4004d620, 0x9801: 0x002bde88, 0x9802: 0x002c0a88, 0x9803: 0x002c3a88, - 0x9804: 0x002c6288, 0x9805: 0x002c9888, 0x9806: 0x002d0888, 0x9807: 0x002d2288, - 0x9808: 0x002d6888, 0x9809: 0x002d9a88, 0x980a: 0x002dcc88, 0x980b: 0x002dfe88, - 0x980c: 0xc0030002, 0x980d: 0x002e8288, 0x980e: 0xc5712813, 0x980f: 0x002ee288, - 0x9810: 0x002f2c88, 0x9811: 0x002f5688, 0x9812: 0x002f7a88, 0x9813: 0x002fe688, - 0x9814: 0x00302c88, 0x9815: 0x00306c88, 0x9816: 0x0030be88, 0x9817: 0x0030e288, - 0x9818: 0x0030f688, 0x9819: 0x00310088, 0x981a: 0x00312a88, 0x981b: 0x4003f820, - 0x981c: 0x4004e420, 0x981d: 0x4003fa20, 0x981e: 0x40062420, 0x981f: 0x40021620, - 0x9820: 0x40061e20, 0x9821: 0x402bde20, 0x9822: 0x402c0a20, 0x9823: 0x402c3a20, - 0x9824: 0x402c6220, 0x9825: 0x402c9820, 0x9826: 0x402d0820, 0x9827: 0x402d2220, - 0x9828: 0x402d6820, 0x9829: 0x402d9a20, 0x982a: 0x402dcc20, 0x982b: 0x402dfe20, - 0x982c: 0xc0000002, 0x982d: 0x402e8220, 0x982e: 0xc56e27e2, 0x982f: 0x402ee220, - 0x9830: 0x402f2c20, 0x9831: 0x402f5620, 0x9832: 0x402f7a20, 0x9833: 0x402fe620, - 0x9834: 0x40302c20, 0x9835: 0x40306c20, 0x9836: 0x4030be20, 0x9837: 0x4030e220, - 0x9838: 0x4030f620, 0x9839: 0x40310020, 0x983a: 0x40312a20, 0x983b: 0x4003fc20, - 0x983c: 0x40094820, 0x983d: 0x4003fe20, 0x983e: 0x40094c20, 0x983f: 0xa0000000, - // Block 0x261, offset 0x9840 - 0x9841: 0x40417021, 0x9842: 0x40417020, 0x9843: 0x40417220, - 0x9845: 0x40417020, 0x9846: 0x40417220, 0x9847: 0x40417420, - 0x9848: 0x40417620, 0x9849: 0x40417820, 0x984a: 0x40417a20, 0x984b: 0x40417c20, - 0x984c: 0x40418020, 0x984d: 0x40418420, 0x984f: 0x40418620, - 0x9850: 0x40418820, 0x9851: 0x40418a20, 0x9853: 0x40418c20, - 0x9854: 0x40418e20, 0x9855: 0x40419020, 0x9856: 0x40419220, 0x9857: 0x40419420, - 0x9858: 0x40419620, 0x9859: 0x40419820, 0x985a: 0x40419a20, 0x985b: 0x40419c20, - 0x985c: 0x40419e20, 0x985d: 0x4041a020, 0x985e: 0x4041a220, 0x985f: 0x4041a420, - 0x9860: 0x4041a620, 0x9861: 0x4041a820, 0x9862: 0x4041aa20, 0x9863: 0x4041ac20, - 0x9864: 0x4041ae20, 0x9865: 0x4041b020, 0x9866: 0x4041b220, 0x9867: 0x4041b420, - 0x9868: 0x4041b620, 0x986a: 0x4041b820, 0x986b: 0x4041ba20, - 0x986c: 0x4041bc20, 0x986d: 0x4041be20, 0x986e: 0x4041c020, 0x986f: 0x4041c220, - 0x9870: 0x4041c420, 0x9872: 0x4041c620, 0x9873: 0x4041d220, - 0x9875: 0x4041c820, 0x9876: 0x4041ca20, 0x9877: 0x4041cc20, - 0x9878: 0x4041ce20, 0x9879: 0x4041d020, - 0x987c: 0xa070f102, 0x987d: 0x4041d420, 0x987e: 0x4041d620, 0x987f: 0x4041d820, - // Block 0x262, offset 0x9880 - 0x9880: 0xa0000000, 0x9881: 0xa0000000, 0x9882: 0xa0000000, 0x9883: 0xa0000000, - 0x9884: 0xa0000000, 0x9885: 0xa0000000, 0x9886: 0xa0000000, 0x9887: 0xa0000000, - 0x9888: 0xa0000000, 0x9889: 0x40020020, 0x988a: 0x40020220, 0x988b: 0x40020420, - 0x988c: 0x40020620, 0x988d: 0x40020820, 0x988e: 0xa0000000, 0x988f: 0xa0000000, - 0x9890: 0xa0000000, 0x9891: 0xa0000000, 0x9892: 0xa0000000, 0x9893: 0xa0000000, - 0x9894: 0xa0000000, 0x9895: 0xa0000000, 0x9896: 0xa0000000, 0x9897: 0xa0000000, - 0x9898: 0xa0000000, 0x9899: 0xa0000000, 0x989a: 0xa0000000, 0x989b: 0xa0000000, - 0x989c: 0xa0000000, 0x989d: 0xa0000000, 0x989e: 0xa0000000, 0x989f: 0xa0000000, - 0x98a0: 0x40021220, 0x98a1: 0x4002ba20, 0x98a2: 0x4003e020, 0x98a3: 0x4004ea20, - 0x98a4: 0x4027de20, 0x98a5: 0x4004ec20, 0x98a6: 0x4004e620, 0x98a7: 0xc57b26f2, - 0x98a8: 0x4003f420, 0x98a9: 0x4003f620, 0x98aa: 0x4004d820, 0x98ab: 0x40093820, - 0x98ac: 0x40024020, 0x98ad: 0x40021a20, 0x98ae: 0x4002e420, 0x98af: 0x4004e220, - 0x98b0: 0x4029cc20, 0x98b1: 0x4029ce20, 0x98b2: 0x4029d020, 0x98b3: 0x4029d220, - 0x98b4: 0x4029d420, 0x98b5: 0x4029d620, 0x98b6: 0x4029d820, 0x98b7: 0x4029da20, - 0x98b8: 0x4029dc20, 0x98b9: 0x4029de20, 0x98ba: 0x40026c20, 0x98bb: 0x40026220, - 0x98bc: 0x40094020, 0x98bd: 0x40094220, 0x98be: 0x40094420, 0x98bf: 0x4002c420, - // Block 0x263, offset 0x98c0 - 0x98c0: 0x4004d620, 0x98c1: 0x002bde88, 0x98c2: 0x002c0a88, 0x98c3: 0x002c3a88, - 0x98c4: 0x002c6288, 0x98c5: 0x002c9888, 0x98c6: 0x002d0888, 0x98c7: 0x002d2288, - 0x98c8: 0x002d6888, 0x98c9: 0x002d9a88, 0x98ca: 0x002dcc88, 0x98cb: 0x002dfe88, - 0x98cc: 0xc0030002, 0x98cd: 0x002e8288, 0x98ce: 0x002e9e88, 0x98cf: 0x002ee288, - 0x98d0: 0x002f2c88, 0x98d1: 0x002f5688, 0x98d2: 0x002f7a88, 0x98d3: 0xc57509c2, - 0x98d4: 0xc38a2722, 0x98d5: 0x00306c88, 0x98d6: 0x0030be88, 0x98d7: 0x0030e288, - 0x98d8: 0x0030f688, 0x98d9: 0x00310088, 0x98da: 0x00312a88, 0x98db: 0x4003f820, - 0x98dc: 0x4004e420, 0x98dd: 0x4003fa20, 0x98de: 0x40062420, 0x98df: 0x40021620, - 0x98e0: 0x40061e20, 0x98e1: 0x402bde20, 0x98e2: 0x402c0a20, 0x98e3: 0x402c3a20, - 0x98e4: 0x402c6220, 0x98e5: 0x402c9820, 0x98e6: 0x402d0820, 0x98e7: 0x402d2220, - 0x98e8: 0x402d6820, 0x98e9: 0x402d9a20, 0x98ea: 0x402dcc20, 0x98eb: 0x402dfe20, - 0x98ec: 0xc0000002, 0x98ed: 0x402e8220, 0x98ee: 0x402e9e20, 0x98ef: 0x402ee220, - 0x98f0: 0x402f2c20, 0x98f1: 0x402f5620, 0x98f2: 0x402f7a20, 0x98f3: 0xc34109b1, - 0x98f4: 0xc3882711, 0x98f5: 0x40306c20, 0x98f6: 0x4030be20, 0x98f7: 0x4030e220, - 0x98f8: 0x4030f620, 0x98f9: 0x40310020, 0x98fa: 0x40312a20, 0x98fb: 0x4003fc20, - 0x98fc: 0x40094820, 0x98fd: 0x4003fe20, 0x98fe: 0x40094c20, 0x98ff: 0xa0000000, - // Block 0x264, offset 0x9900 - 0x9900: 0x402c1a20, 0x9901: 0x002c0c83, 0x9902: 0x002c3288, 0x9903: 0x402c3220, - 0x9904: 0x0031c488, 0x9905: 0x4031c420, 0x9906: 0x002efa88, 0x9907: 0x002c4e88, - 0x9908: 0x402c4e20, 0x9909: 0x002c7288, 0x990a: 0x002c6483, 0x990b: 0x002c8488, - 0x990c: 0x402c8420, 0x990d: 0xe000115c, 0x990e: 0x002cae88, 0x990f: 0x002cb888, - 0x9910: 0x002cc288, 0x9911: 0x002d1688, 0x9912: 0x402d1620, 0x9913: 0x002d4488, - 0x9914: 0x002d5888, 0x9915: 0x402d7820, 0x9916: 0x002dc288, 0x9917: 0x002db688, - 0x9918: 0x002e0083, 0x9919: 0x402e0020, 0x991a: 0x402e3820, 0x991b: 0x402e7220, - 0x991c: 0x0030a088, 0x991d: 0x002eb488, 0x991e: 0x402ebc20, 0x991f: 0x002f1088, - 0x9920: 0xe0000e56, 0x9921: 0xe0000e53, 0x9922: 0x002d6088, 0x9923: 0x402d6020, - 0x9924: 0x002f3e88, 0x9925: 0x402f3e20, 0x9926: 0x002f8288, 0x9927: 0x0031b488, - 0x9928: 0x4031b420, 0x9929: 0x00300888, 0x992a: 0x40301220, 0x992b: 0x40304220, - 0x992c: 0x00304a88, 0x992d: 0x40304a20, 0x992e: 0x00305288, 0x992f: 0xe000105f, - 0x9930: 0xe000105c, 0x9931: 0x0030b488, 0x9932: 0x0030cc88, 0x9933: 0x00310285, - 0x9934: 0x40310220, 0x9935: 0x00313488, 0x9936: 0x40313420, 0x9937: 0x00316488, - 0x9938: 0x00316e88, 0x9939: 0x40316e20, 0x993a: 0x40317820, 0x993b: 0x4031a620, - 0x993c: 0x0031bc88, 0x993d: 0x4031bc20, 0x993e: 0xe0000fc9, 0x993f: 0x40319420, - // Block 0x265, offset 0x9940 - 0x9940: 0x40315820, 0x9941: 0x0031d488, 0x9942: 0x4031d420, 0x9943: 0x002c1a88, - 0x9944: 0x00307c88, 0x9945: 0x0030da88, 0x9946: 0x002ca288, 0x9947: 0x402ca220, - 0x9948: 0x002dde88, 0x9949: 0x402dde20, 0x994a: 0x002f6a88, 0x994b: 0x402f6a20, - 0x994c: 0x002f8e88, 0x994d: 0x402f8e20, 0x994e: 0x00311088, 0x994f: 0x40311020, - 0x9950: 0x402bf020, 0x9951: 0x402bf820, 0x9952: 0x402c0220, 0x9953: 0x402c0c20, - 0x9954: 0x402efa20, 0x9955: 0x402c5620, 0x9956: 0x402c7220, 0x9957: 0x402c6420, - 0x9958: 0x402ccc20, 0x9959: 0x402cb820, 0x995a: 0x402cd420, 0x995b: 0x402cc220, - 0x995c: 0x402cdc20, 0x995d: 0x402ce820, 0x995e: 0x402cf020, 0x995f: 0x402dee20, - 0x9960: 0x402d4420, 0x9961: 0x402d2a20, 0x9962: 0x402d3220, 0x9963: 0x402d5820, - 0x9964: 0x402d0020, 0x9965: 0x40308820, 0x9966: 0x402d8020, 0x9967: 0x402d8e20, - 0x9968: 0x402db620, 0x9969: 0x402dc220, 0x996a: 0x402daa20, 0x996b: 0x402e4220, - 0x996c: 0x402e4a20, 0x996d: 0x402e5420, 0x996e: 0x402e6820, 0x996f: 0x4030a020, - 0x9970: 0x4030ac20, 0x9971: 0x402e9020, 0x9972: 0x402eb420, 0x9973: 0x402ec820, - 0x9974: 0x402ea620, 0x9975: 0x402f1020, 0x9976: 0x402eee20, 0x9977: 0x402f1a20, - 0x9978: 0x402f4c20, 0x9979: 0x402f9820, 0x997a: 0x402fa220, 0x997b: 0x402fac20, - 0x997c: 0x402fb620, 0x997d: 0x402fbe20, 0x997e: 0x402fc620, 0x997f: 0x402fd020, - // Block 0x266, offset 0x9980 - 0x9980: 0x402f8220, 0x9981: 0x402fd820, 0x9982: 0x402ff420, 0x9983: 0x40300820, - 0x9984: 0x402df620, 0x9985: 0x40301a20, 0x9986: 0x40302420, 0x9987: 0x40306420, - 0x9988: 0x40305220, 0x9989: 0x40307c20, 0x998a: 0x4030b420, 0x998b: 0x4030cc20, - 0x998c: 0x4030da20, 0x998d: 0x4030ee20, 0x998e: 0x402e7a20, 0x998f: 0x40310820, - 0x9990: 0x40314820, 0x9991: 0x40315020, 0x9992: 0x40316420, 0x9993: 0x40318020, - 0x9994: 0x4031cc20, 0x9995: 0x4031e820, 0x9996: 0x40320a20, 0x9997: 0x40323220, - 0x9998: 0x40323a20, 0x9999: 0x402c1220, 0x999a: 0x402cf820, 0x999b: 0x402d4c20, - 0x999c: 0x402d7020, 0x999d: 0x402de620, 0x999e: 0x402e1a20, 0x999f: 0x402e2a20, - 0x99a0: 0x402f6220, 0x99a1: 0x4031fa20, 0x99a2: 0x40320220, 0x99a3: 0xe0000aca, - 0x99a4: 0xe0000adc, 0x99a5: 0xe0000ad9, 0x99a6: 0xe0000fcc, 0x99a7: 0xe0000fcf, - 0x99a8: 0xe0000fba, 0x99a9: 0xe0000ba1, 0x99aa: 0xe0000d11, 0x99ab: 0xe0000d18, - 0x99ac: 0x40324220, 0x99ad: 0x40324a20, 0x99ae: 0x40309020, 0x99af: 0x40309820, - 0x99b0: 0x002d6894, 0x99b1: 0x002d8094, 0x99b2: 0x002dcc94, 0x99b3: 0x002f7a94, - 0x99b4: 0x002f9894, 0x99b5: 0x002fac94, 0x99b6: 0x002fd894, 0x99b7: 0x0030e294, - 0x99b8: 0x00310094, 0x99b9: 0x40064020, 0x99ba: 0x40064420, 0x99bb: 0x402d9620, - 0x99bc: 0xc57826f2, 0x99bd: 0x402d9820, 0x99be: 0x4031e220, 0x99bf: 0x4031f020, - // Block 0x267, offset 0x99c0 - 0x99c0: 0xa0000000, 0x99c1: 0xa0000000, 0x99c2: 0xa0000000, 0x99c3: 0xa0000000, - 0x99c4: 0xa0000000, 0x99c5: 0xa0000000, 0x99c6: 0xa0000000, 0x99c7: 0xa0000000, - 0x99c8: 0xa0000000, 0x99c9: 0x40020020, 0x99ca: 0x40020220, 0x99cb: 0x40020420, - 0x99cc: 0x40020620, 0x99cd: 0x40020820, 0x99ce: 0xa0000000, 0x99cf: 0xa0000000, - 0x99d0: 0xa0000000, 0x99d1: 0xa0000000, 0x99d2: 0xa0000000, 0x99d3: 0xa0000000, - 0x99d4: 0xa0000000, 0x99d5: 0xa0000000, 0x99d6: 0xa0000000, 0x99d7: 0xa0000000, - 0x99d8: 0xa0000000, 0x99d9: 0xa0000000, 0x99da: 0xa0000000, 0x99db: 0xa0000000, - 0x99dc: 0xa0000000, 0x99dd: 0xa0000000, 0x99de: 0xa0000000, 0x99df: 0xa0000000, - 0x99e0: 0x40021220, 0x99e1: 0x4002ba20, 0x99e2: 0x4003e020, 0x99e3: 0x4004ea20, - 0x99e4: 0x4027de20, 0x99e5: 0x4004ec20, 0x99e6: 0x4004e620, 0x99e7: 0x4003d220, - 0x99e8: 0x4003f420, 0x99e9: 0x4003f620, 0x99ea: 0x4004d820, 0x99eb: 0x40093820, - 0x99ec: 0x40024020, 0x99ed: 0x40021a20, 0x99ee: 0x4002e420, 0x99ef: 0x4004e220, - 0x99f0: 0x4029cc20, 0x99f1: 0x4029ce20, 0x99f2: 0x4029d020, 0x99f3: 0x4029d220, - 0x99f4: 0x4029d420, 0x99f5: 0x4029d620, 0x99f6: 0x4029d820, 0x99f7: 0x4029da20, - 0x99f8: 0x4029dc20, 0x99f9: 0x4029de20, 0x99fa: 0x40026c20, 0x99fb: 0x40026220, - 0x99fc: 0x40094020, 0x99fd: 0x40094220, 0x99fe: 0x40094420, 0x99ff: 0x4002c420, - // Block 0x268, offset 0x9a00 - 0x9a00: 0x4004d620, 0x9a01: 0x002bde83, 0x9a02: 0x002c0a88, 0x9a03: 0x002c3a88, - 0x9a04: 0x002c6288, 0x9a05: 0x002be083, 0x9a06: 0x002d0888, 0x9a07: 0x002d2288, - 0x9a08: 0x002be883, 0x9a09: 0x002be283, 0x9a0a: 0x002dcc88, 0x9a0b: 0x002bea83, - 0x9a0c: 0xc5810002, 0x9a0d: 0x002bee83, 0x9a0e: 0x002bf083, 0x9a0f: 0x002be483, - 0x9a10: 0x002bf283, 0x9a11: 0x002f5688, 0x9a12: 0x002f7a88, 0x9a13: 0x002fe688, - 0x9a14: 0x00302c88, 0x9a15: 0x002be683, 0x9a16: 0x0030be88, 0x9a17: 0x002bf483, - 0x9a18: 0x0030f688, 0x9a19: 0x00310088, 0x9a1a: 0x00312a88, 0x9a1b: 0x4003f820, - 0x9a1c: 0x4004e420, 0x9a1d: 0x4003fa20, 0x9a1e: 0x40062420, 0x9a1f: 0x40021620, - 0x9a20: 0x40061e20, 0x9a21: 0x402bde20, 0x9a22: 0x402c0a20, 0x9a23: 0x402c3a20, - 0x9a24: 0x402c6220, 0x9a25: 0x402be020, 0x9a26: 0x402d0820, 0x9a27: 0x402d2220, - 0x9a28: 0x402be820, 0x9a29: 0x402be220, 0x9a2a: 0x402dcc20, 0x9a2b: 0x402bea20, - 0x9a2c: 0xc57e0002, 0x9a2d: 0x402bee20, 0x9a2e: 0x402bf020, 0x9a2f: 0x402be420, - 0x9a30: 0x402bf220, 0x9a31: 0x402f5620, 0x9a32: 0x402f7a20, 0x9a33: 0x402fe620, - 0x9a34: 0x40302c20, 0x9a35: 0x402be620, 0x9a36: 0x4030be20, 0x9a37: 0x402bf420, - 0x9a38: 0x4030f620, 0x9a39: 0x40310020, 0x9a3a: 0x40312a20, 0x9a3b: 0x4003fc20, - 0x9a3c: 0x40094820, 0x9a3d: 0x4003fe20, 0x9a3e: 0x40094c20, 0x9a3f: 0xa0000000, - // Block 0x269, offset 0x9a40 - 0x9a40: 0xe00037bc, 0x9a41: 0xe00037b9, 0x9a42: 0xe00037d2, 0x9a43: 0xe00037f6, - 0x9a44: 0xe00037ef, 0x9a45: 0xe00037e8, 0x9a46: 0xe00009dd, 0x9a47: 0xe0000a53, - 0x9a48: 0xe0003826, 0x9a49: 0xe0003820, 0x9a4a: 0xe0003832, 0x9a4b: 0xe000385e, - 0x9a4c: 0xe00038cc, 0x9a4d: 0xe00038c6, 0x9a4e: 0xe00038d8, 0x9a4f: 0xe00038e4, - 0x9a50: 0xe0000ab3, 0x9a51: 0xe0003b7a, 0x9a52: 0xe000392b, 0x9a53: 0xe0003925, - 0x9a54: 0xe0003937, 0x9a55: 0xe0003977, 0x9a56: 0xe0003963, 0x9a57: 0x40093e20, - 0x9a58: 0xe0000e12, 0x9a59: 0xe0003a1b, 0x9a5a: 0xe0003a15, 0x9a5b: 0xe0003a27, - 0x9a5c: 0xe0003a39, 0x9a5d: 0xe0001102, 0x9a5e: 0x00318888, 0x9a5f: 0xe0000f7b, - 0x9a60: 0xe00008f2, 0x9a61: 0xe00008ec, 0x9a62: 0xe000091e, 0x9a63: 0xe0000966, - 0x9a64: 0xe0000958, 0x9a65: 0xe000094a, 0x9a66: 0xe00009d5, 0x9a67: 0xe0000a4d, - 0x9a68: 0xe0003823, 0x9a69: 0xe000381d, 0x9a6a: 0xe000382f, 0x9a6b: 0xe000385b, - 0x9a6c: 0xe00038c9, 0x9a6d: 0xe00038c3, 0x9a6e: 0xe00038d5, 0x9a6f: 0xe00038e1, - 0x9a70: 0xe0000aad, 0x9a71: 0xe0003b77, 0x9a72: 0xe0003928, 0x9a73: 0xe0003922, - 0x9a74: 0xe0003934, 0x9a75: 0xe0003974, 0x9a76: 0xe0003960, 0x9a77: 0x40093c20, - 0x9a78: 0xe0000e0f, 0x9a79: 0xe0003a18, 0x9a7a: 0xe0003a12, 0x9a7b: 0xe0003a24, - 0x9a7c: 0xe0003a36, 0x9a7d: 0xe00010ff, 0x9a7e: 0x40318820, 0x9a7f: 0xe0001114, - // Block 0x26a, offset 0x9a80 - 0x9a80: 0xe0003803, 0x9a81: 0xe0000980, 0x9a82: 0xe00037bf, 0x9a83: 0xe00008f8, - 0x9a84: 0xe0003800, 0x9a85: 0xe000097a, 0x9a86: 0xe0000a38, 0x9a87: 0xe0000a35, - 0x9a88: 0xe0000a3e, 0x9a89: 0xe0000a3b, 0x9a8a: 0xe0000a4a, 0x9a8b: 0xe0000a47, - 0x9a8c: 0xe0000a44, 0x9a8d: 0xe0000a41, 0x9a8e: 0xe0000a86, 0x9a8f: 0xe0000a83, - 0x9a90: 0xe0000aaa, 0x9a91: 0xe0000aa7, 0x9a92: 0xe0003884, 0x9a93: 0xe0003881, - 0x9a94: 0xe000382c, 0x9a95: 0xe0003829, 0x9a96: 0xe000386a, 0x9a97: 0xe0003867, - 0x9a98: 0xe000387e, 0x9a99: 0xe000387b, 0x9a9a: 0xe0003858, 0x9a9b: 0xe0003855, - 0x9a9c: 0xe0000bb8, 0x9a9d: 0xe0000bb5, 0x9a9e: 0xe0000bb2, 0x9a9f: 0xe0000baf, - 0x9aa0: 0xe0000bc4, 0x9aa1: 0xe0000bc1, 0x9aa2: 0xe0000bca, 0x9aa3: 0xe0000bc7, - 0x9aa4: 0xe0003adf, 0x9aa5: 0xe0003adc, 0x9aa6: 0xe0000c1b, 0x9aa7: 0xe0000c18, - 0x9aa8: 0xe00038f2, 0x9aa9: 0xe00038ef, 0x9aaa: 0xe0003901, 0x9aab: 0xe00038fe, - 0x9aac: 0xe00038d2, 0x9aad: 0xe00038cf, 0x9aae: 0xe00038fb, 0x9aaf: 0xe00038f8, - 0x9ab0: 0xe00038f5, 0x9ab1: 0x402da220, 0x9ab2: 0xe00027e2, 0x9ab3: 0xe00027df, - 0x9ab4: 0xe0000c8a, 0x9ab5: 0xe0000c87, 0x9ab6: 0xe0003b18, 0x9ab7: 0xe0003b15, - 0x9ab8: 0x402f7220, 0x9ab9: 0xe0003b2a, 0x9aba: 0xe0003b27, 0x9abb: 0xe0003b36, - 0x9abc: 0xe0003b33, 0x9abd: 0xe0003b30, 0x9abe: 0xe0003b2d, 0x9abf: 0xe0000d04, - // Block 0x26b, offset 0x9ac0 - 0x9ac0: 0xe0000cfe, 0x9ac1: 0xe0000cf8, 0x9ac2: 0xe0000cf5, 0x9ac3: 0xe0003b68, - 0x9ac4: 0xe0003b65, 0x9ac5: 0xe0003b86, 0x9ac6: 0xe0003b83, 0x9ac7: 0xe0003b74, - 0x9ac8: 0xe0003b71, 0x9ac9: 0xe00035a1, 0x9aca: 0x002eda88, 0x9acb: 0x402eda20, - 0x9acc: 0xe00039b1, 0x9acd: 0xe00039ae, 0x9ace: 0xe0003931, 0x9acf: 0xe000392e, - 0x9ad0: 0xe0003971, 0x9ad1: 0xe000396e, 0x9ad2: 0xe0000e93, 0x9ad3: 0xe0000e8f, - 0x9ad4: 0xe0000eca, 0x9ad5: 0xe0000ec7, 0x9ad6: 0xe0000edc, 0x9ad7: 0xe0000ed9, - 0x9ad8: 0xe0000ed0, 0x9ad9: 0xe0000ecd, 0x9ada: 0xe0000f1f, 0x9adb: 0xe0000f1c, - 0x9adc: 0xe0000f2d, 0x9add: 0xe0000f2a, 0x9ade: 0xe0000f47, 0x9adf: 0xe0000f44, - 0x9ae0: 0xe0000f33, 0x9ae1: 0xe0000f30, 0x9ae2: 0xe0000f99, 0x9ae3: 0xe0000f96, - 0x9ae4: 0xe0000f8a, 0x9ae5: 0xe0000f87, 0x9ae6: 0x00303688, 0x9ae7: 0x40303620, - 0x9ae8: 0xe0003a65, 0x9ae9: 0xe0003a62, 0x9aea: 0xe0003a79, 0x9aeb: 0xe0003a76, - 0x9aec: 0xe0003a21, 0x9aed: 0xe0003a1e, 0x9aee: 0xe0003a33, 0x9aef: 0xe0003a30, - 0x9af0: 0xe0003a5f, 0x9af1: 0xe0003a5c, 0x9af2: 0xe0003a73, 0x9af3: 0xe0003a70, - 0x9af4: 0xe0003bb6, 0x9af5: 0xe0003bb3, 0x9af6: 0xe000110e, 0x9af7: 0xe000110b, - 0x9af8: 0xe0001117, 0x9af9: 0xe000113b, 0x9afa: 0xe0001138, 0x9afb: 0xe000114d, - 0x9afc: 0xe000114a, 0x9afd: 0xe0001147, 0x9afe: 0xe0001144, 0x9aff: 0xe0000f64, - // Block 0x26c, offset 0x9b00 - 0x9b00: 0x402c1a20, 0x9b01: 0x002c2a88, 0x9b02: 0x002c3288, 0x9b03: 0x402c3220, - 0x9b04: 0x0031c488, 0x9b05: 0x4031c420, 0x9b06: 0x002efa88, 0x9b07: 0x002c4e88, - 0x9b08: 0x402c4e20, 0x9b09: 0x002c7288, 0x9b0a: 0x002c7a88, 0x9b0b: 0x002c8488, - 0x9b0c: 0x402c8420, 0x9b0d: 0xe000115c, 0x9b0e: 0x002cae88, 0x9b0f: 0x002cb888, - 0x9b10: 0x002cc288, 0x9b11: 0x002d1688, 0x9b12: 0x402d1620, 0x9b13: 0x002d4488, - 0x9b14: 0x002d5888, 0x9b15: 0x402d7820, 0x9b16: 0x002dc288, 0x9b17: 0x002db688, - 0x9b18: 0x002e0a88, 0x9b19: 0x402e0a20, 0x9b1a: 0x402e3820, 0x9b1b: 0x402e7220, - 0x9b1c: 0x0030a088, 0x9b1d: 0x002eb488, 0x9b1e: 0x402ebc20, 0x9b1f: 0x002f1088, - 0x9b20: 0xe00039d9, 0x9b21: 0xe00039d6, 0x9b22: 0x002d6088, 0x9b23: 0x402d6020, - 0x9b24: 0x002f3e88, 0x9b25: 0x402f3e20, 0x9b26: 0x002f8288, 0x9b27: 0x0031b488, - 0x9b28: 0x4031b420, 0x9b29: 0x00300888, 0x9b2a: 0x40301220, 0x9b2b: 0x40304220, - 0x9b2c: 0x00304a88, 0x9b2d: 0x40304a20, 0x9b2e: 0x00305288, 0x9b2f: 0xe0003a99, - 0x9b30: 0xe0003a96, 0x9b31: 0x0030b488, 0x9b32: 0x0030cc88, 0x9b33: 0x00311888, - 0x9b34: 0x40311820, 0x9b35: 0x00313488, 0x9b36: 0x40313420, 0x9b37: 0x00316488, - 0x9b38: 0x00316e88, 0x9b39: 0x40316e20, 0x9b3a: 0x40317820, 0x9b3b: 0x4031a620, - 0x9b3c: 0x0031bc88, 0x9b3d: 0x4031bc20, 0x9b3e: 0xe0000fc9, 0x9b3f: 0x40319420, - // Block 0x26d, offset 0x9b40 - 0x9b40: 0x40321220, 0x9b41: 0x40321a20, 0x9b42: 0x40322220, 0x9b43: 0x40322a20, - 0x9b44: 0xe0000ad5, 0x9b45: 0xe0000ad1, 0x9b46: 0xe0000acd, 0x9b47: 0xe0003535, - 0x9b48: 0xe0003532, 0x9b49: 0xe000352f, 0x9b4a: 0xe000357a, 0x9b4b: 0xe0003577, - 0x9b4c: 0xe0003574, 0x9b4d: 0xe00037e5, 0x9b4e: 0xe0000944, 0x9b4f: 0xe00038de, - 0x9b50: 0xe00038db, 0x9b51: 0xe000395d, 0x9b52: 0xe000395a, 0x9b53: 0xe0003a2d, - 0x9b54: 0xe0003a2a, 0x9b55: 0xe0003a58, 0x9b56: 0xe0003a54, 0x9b57: 0xe0003a40, - 0x9b58: 0xe0003a3c, 0x9b59: 0xe0003a50, 0x9b5a: 0xe0003a4c, 0x9b5b: 0xe0003a48, - 0x9b5c: 0xe0003a44, 0x9b5d: 0x402cae20, 0x9b5e: 0xe00037f2, 0x9b5f: 0xe000095e, - 0x9b60: 0xe00037fc, 0x9b61: 0xe0000972, 0x9b62: 0xe00009f4, 0x9b63: 0xe00009ef, - 0x9b64: 0x002d3a88, 0x9b65: 0x402d3a20, 0x9b66: 0xe0000bbe, 0x9b67: 0xe0000bbb, - 0x9b68: 0xe0003b12, 0x9b69: 0xe0003b0f, 0x9b6a: 0xe00039a3, 0x9b6b: 0xe00039a0, - 0x9b6c: 0xe00039aa, 0x9b6d: 0xe00039a6, 0x9b6e: 0xe0001162, 0x9b6f: 0xe000115f, - 0x9b70: 0xe0000c8d, 0x9b71: 0xf0000a0a, 0x9b72: 0xf000040a, 0x9b73: 0xf0000404, - 0x9b74: 0xe0000bac, 0x9b75: 0xe0000ba9, 0x9b76: 0x002d7888, 0x9b77: 0x00319488, - 0x9b78: 0xe0003b6e, 0x9b79: 0xe0003b6b, 0x9b7a: 0xe00037eb, 0x9b7b: 0xe0000950, - 0x9b7c: 0xe00009ea, 0x9b7d: 0xe00009e5, 0x9b7e: 0xe0000e19, 0x9b7f: 0xe0000e15, - // Block 0x26e, offset 0x9b80 - 0x9b80: 0xe0003809, 0x9b81: 0xe000098c, 0x9b82: 0xe000380c, 0x9b83: 0xe0000992, - 0x9b84: 0xe00038a0, 0x9b85: 0xe000389d, 0x9b86: 0xe00038a6, 0x9b87: 0xe00038a3, - 0x9b88: 0xe000390d, 0x9b89: 0xe000390a, 0x9b8a: 0xe0003913, 0x9b8b: 0xe0003910, - 0x9b8c: 0xe00039cd, 0x9b8d: 0xe00039ca, 0x9b8e: 0xe00039d3, 0x9b8f: 0xe00039d0, - 0x9b90: 0xe0000ee8, 0x9b91: 0xe0000ee5, 0x9b92: 0xe0000eee, 0x9b93: 0xe0000eeb, - 0x9b94: 0xe0003a8d, 0x9b95: 0xe0003a8a, 0x9b96: 0xe0003a93, 0x9b97: 0xe0003a90, - 0x9b98: 0xe0000f61, 0x9b99: 0xe0000f5e, 0x9b9a: 0xe0000fa5, 0x9b9b: 0xe0000fa2, - 0x9b9c: 0x00312288, 0x9b9d: 0x40312220, 0x9b9e: 0xe0003ae5, 0x9b9f: 0xe0003ae2, - 0x9ba0: 0x002ebc88, 0x9ba1: 0x402c8c20, 0x9ba2: 0x002f2288, 0x9ba3: 0x402f2220, - 0x9ba4: 0x00314088, 0x9ba5: 0x40314020, 0x9ba6: 0xe00037f9, 0x9ba7: 0xe000096c, - 0x9ba8: 0xe0003870, 0x9ba9: 0xe000386d, 0x9baa: 0xe000396a, 0x9bab: 0xe0003966, - 0x9bac: 0xe000398e, 0x9bad: 0xe000398a, 0x9bae: 0xe0003995, 0x9baf: 0xe0003992, - 0x9bb0: 0xe000399c, 0x9bb1: 0xe0003998, 0x9bb2: 0xe0001129, 0x9bb3: 0xe0001126, - 0x9bb4: 0x402e5e20, 0x9bb5: 0x402ed020, 0x9bb6: 0x40305a20, 0x9bb7: 0x402dd420, - 0x9bb8: 0xe0000abf, 0x9bb9: 0xe0000ec4, 0x9bba: 0x002be888, 0x9bbb: 0x002c4488, - 0x9bbc: 0x402c4420, 0x9bbd: 0x002e3888, 0x9bbe: 0x00303e88, 0x9bbf: 0x402ffc20, - // Block 0x26f, offset 0x9bc0 - 0x9bc0: 0x402f8220, 0x9bc1: 0x402fd820, 0x9bc2: 0x402ff420, 0x9bc3: 0x40300820, - 0x9bc4: 0x402df620, 0x9bc5: 0x40301a20, 0x9bc6: 0x40302420, 0x9bc7: 0x40306420, - 0x9bc8: 0x40305220, 0x9bc9: 0x40307c20, 0x9bca: 0x4030b420, 0x9bcb: 0x4030cc20, - 0x9bcc: 0x4030da20, 0x9bcd: 0x4030ee20, 0x9bce: 0x402e7a20, 0x9bcf: 0x40310820, - 0x9bd0: 0x40314820, 0x9bd1: 0x40315020, 0x9bd2: 0x40316420, 0x9bd3: 0x40318020, - 0x9bd4: 0x4031cc20, 0x9bd5: 0x4031e820, 0x9bd6: 0x40320a20, 0x9bd7: 0x40323220, - 0x9bd8: 0x40323a20, 0x9bd9: 0x402c1220, 0x9bda: 0x402cf820, 0x9bdb: 0x402d4c20, - 0x9bdc: 0x402d7020, 0x9bdd: 0x402de620, 0x9bde: 0x402e1a20, 0x9bdf: 0x402e2a20, - 0x9be0: 0x402f6220, 0x9be1: 0x4031fa20, 0x9be2: 0x40320220, 0x9be3: 0xe0000aca, - 0x9be4: 0xe0000adc, 0x9be5: 0xe0000ad9, 0x9be6: 0xe0000fcc, 0x9be7: 0xe0000fcf, - 0x9be8: 0xe0000fba, 0x9be9: 0xe0000ba1, 0x9bea: 0xe0000d11, 0x9beb: 0xe0000d18, - 0x9bec: 0x40324220, 0x9bed: 0x40324a20, 0x9bee: 0x40309020, 0x9bef: 0x40309820, - 0x9bf0: 0x002d6894, 0x9bf1: 0x002d8094, 0x9bf2: 0x002dcc94, 0x9bf3: 0x002f7a94, - 0x9bf4: 0x002f9894, 0x9bf5: 0x002fac94, 0x9bf6: 0x002fd894, 0x9bf7: 0x0030e294, - 0x9bf8: 0x00310094, 0x9bf9: 0x40064020, 0x9bfa: 0x40064420, 0x9bfb: 0x402bf620, - 0x9bfc: 0x4031de20, 0x9bfd: 0x402d9820, 0x9bfe: 0x4031e220, 0x9bff: 0x4031f020, - // Block 0x270, offset 0x9c00 - 0x9c00: 0xe000381a, 0x9c01: 0xe00009ae, 0x9c02: 0xe0000a22, 0x9c03: 0xe0000a1f, - 0x9c04: 0xe0000a28, 0x9c05: 0xe0000a25, 0x9c06: 0xe0000a2e, 0x9c07: 0xe0000a2b, - 0x9c08: 0xe0000a5a, 0x9c09: 0xe0000a56, 0x9c0a: 0xe0000a8c, 0x9c0b: 0xe0000a89, - 0x9c0c: 0xe0000a98, 0x9c0d: 0xe0000a95, 0x9c0e: 0xe0000aa4, 0x9c0f: 0xe0000aa1, - 0x9c10: 0xe0000a92, 0x9c11: 0xe0000a8f, 0x9c12: 0xe0000a9e, 0x9c13: 0xe0000a9b, - 0x9c14: 0xe0003893, 0x9c15: 0xe000388f, 0x9c16: 0xe000388b, 0x9c17: 0xe0003887, - 0x9c18: 0xe00038ba, 0x9c19: 0xe00038b7, 0x9c1a: 0xe00038c0, 0x9c1b: 0xe00038bd, - 0x9c1c: 0xe0003877, 0x9c1d: 0xe0003873, 0x9c1e: 0xe0000b8c, 0x9c1f: 0xe0000b89, - 0x9c20: 0xe0000bd0, 0x9c21: 0xe0000bcd, 0x9c22: 0xe0003af1, 0x9c23: 0xe0003aee, - 0x9c24: 0xe0003afd, 0x9c25: 0xe0003afa, 0x9c26: 0xe0003aeb, 0x9c27: 0xe0003ae8, - 0x9c28: 0xe0003af7, 0x9c29: 0xe0003af4, 0x9c2a: 0xe0003b03, 0x9c2b: 0xe0003b00, - 0x9c2c: 0xe000391f, 0x9c2d: 0xe000391c, 0x9c2e: 0xe00038eb, 0x9c2f: 0xe00038e7, - 0x9c30: 0xe0003b0c, 0x9c31: 0xe0003b09, 0x9c32: 0xe0003b1e, 0x9c33: 0xe0003b1b, - 0x9c34: 0xe0003b24, 0x9c35: 0xe0003b21, 0x9c36: 0xe0003b3c, 0x9c37: 0xe0003b39, - 0x9c38: 0xe0003b43, 0x9c39: 0xe0003b3f, 0x9c3a: 0xe0003b50, 0x9c3b: 0xe0003b4d, - 0x9c3c: 0xe0003b4a, 0x9c3d: 0xe0003b47, 0x9c3e: 0xe0003b56, 0x9c3f: 0xe0003b53, - // Block 0x271, offset 0x9c40 - 0x9c40: 0xe0003b5c, 0x9c41: 0xe0003b59, 0x9c42: 0xe0003b62, 0x9c43: 0xe0003b5f, - 0x9c44: 0xe0003b80, 0x9c45: 0xe0003b7d, 0x9c46: 0xe0003b8c, 0x9c47: 0xe0003b89, - 0x9c48: 0xe0003b98, 0x9c49: 0xe0003b95, 0x9c4a: 0xe0003b92, 0x9c4b: 0xe0003b8f, - 0x9c4c: 0xe000397e, 0x9c4d: 0xe000397a, 0x9c4e: 0xe0003986, 0x9c4f: 0xe0003982, - 0x9c50: 0xe00039c0, 0x9c51: 0xe00039bc, 0x9c52: 0xe00039b8, 0x9c53: 0xe00039b4, - 0x9c54: 0xe0003b9e, 0x9c55: 0xe0003b9b, 0x9c56: 0xe0003ba4, 0x9c57: 0xe0003ba1, - 0x9c58: 0xe0000ed6, 0x9c59: 0xe0000ed3, 0x9c5a: 0xe0000ef4, 0x9c5b: 0xe0000ef1, - 0x9c5c: 0xe0000efb, 0x9c5d: 0xe0000ef7, 0x9c5e: 0xe0000f02, 0x9c5f: 0xe0000eff, - 0x9c60: 0xe0000f41, 0x9c61: 0xe0000f3e, 0x9c62: 0xe0000f53, 0x9c63: 0xe0000f50, - 0x9c64: 0xe0000f26, 0x9c65: 0xe0000f22, 0x9c66: 0xe0000f3a, 0x9c67: 0xe0000f36, - 0x9c68: 0xe0000f5a, 0x9c69: 0xe0000f56, 0x9c6a: 0xe0000f93, 0x9c6b: 0xe0000f90, - 0x9c6c: 0xe0000f9f, 0x9c6d: 0xe0000f9c, 0x9c6e: 0xe0000fb1, 0x9c6f: 0xe0000fae, - 0x9c70: 0xe0000fab, 0x9c71: 0xe0000fa8, 0x9c72: 0xe0003acd, 0x9c73: 0xe0003aca, - 0x9c74: 0xe0003ad9, 0x9c75: 0xe0003ad6, 0x9c76: 0xe0003ad3, 0x9c77: 0xe0003ad0, - 0x9c78: 0xe0003a6c, 0x9c79: 0xe0003a68, 0x9c7a: 0xe0003a80, 0x9c7b: 0xe0003a7c, - 0x9c7c: 0xe00010a9, 0x9c7d: 0xe00010a6, 0x9c7e: 0xe00010af, 0x9c7f: 0xe00010ac, - // Block 0x272, offset 0x9c80 - 0x9c80: 0xe0003bb0, 0x9c81: 0xe0003bad, 0x9c82: 0xe0003baa, 0x9c83: 0xe0003ba7, - 0x9c84: 0xe0003bbf, 0x9c85: 0xe0003bbc, 0x9c86: 0xe0003bc5, 0x9c87: 0xe0003bc2, - 0x9c88: 0xe0003bcb, 0x9c89: 0xe0003bc8, 0x9c8a: 0xe00010fc, 0x9c8b: 0xe00010f9, - 0x9c8c: 0xe00010f6, 0x9c8d: 0xe00010f3, 0x9c8e: 0xe0001123, 0x9c8f: 0xe0001120, - 0x9c90: 0xe0001141, 0x9c91: 0xe000113e, 0x9c92: 0xe0001153, 0x9c93: 0xe0001150, - 0x9c94: 0xe0001159, 0x9c95: 0xe0001156, 0x9c96: 0xe0003b06, 0x9c97: 0xe0000f8d, - 0x9c98: 0xe0003bb9, 0x9c99: 0xe0001111, 0x9c9a: 0xf0000404, 0x9c9b: 0xe0000f70, - 0x9c9c: 0x40300420, 0x9c9d: 0x40300620, 0x9c9e: 0xe0000f7f, 0x9c9f: 0x402c9620, - 0x9ca0: 0xe000380f, 0x9ca1: 0xe0000998, 0x9ca2: 0xe0003806, 0x9ca3: 0xe0000986, - 0x9ca4: 0xe00037d5, 0x9ca5: 0xe0000924, 0x9ca6: 0xe00037d9, 0x9ca7: 0xe000092c, - 0x9ca8: 0xe00037e1, 0x9ca9: 0xe000093c, 0x9caa: 0xe00037dd, 0x9cab: 0xe0000934, - 0x9cac: 0xe0003816, 0x9cad: 0xe00009a6, 0x9cae: 0xe00037c2, 0x9caf: 0xe00008fe, - 0x9cb0: 0xe00037c6, 0x9cb1: 0xe0000906, 0x9cb2: 0xe00037ce, 0x9cb3: 0xe0000916, - 0x9cb4: 0xe00037ca, 0x9cb5: 0xe000090e, 0x9cb6: 0xe0003812, 0x9cb7: 0xe000099e, - 0x9cb8: 0xe00038ac, 0x9cb9: 0xe00038a9, 0x9cba: 0xe000389a, 0x9cbb: 0xe0003897, - 0x9cbc: 0xe0003864, 0x9cbd: 0xe0003861, 0x9cbe: 0xe0003839, 0x9cbf: 0xe0003835, - // Block 0x273, offset 0x9cc0 - 0x9cc0: 0xe0003841, 0x9cc1: 0xe000383d, 0x9cc2: 0xe0003851, 0x9cc3: 0xe000384d, - 0x9cc4: 0xe0003849, 0x9cc5: 0xe0003845, 0x9cc6: 0xe00038b3, 0x9cc7: 0xe00038af, - 0x9cc8: 0xe0003907, 0x9cc9: 0xe0003904, 0x9cca: 0xe0003919, 0x9ccb: 0xe0003916, - 0x9ccc: 0xe0003a07, 0x9ccd: 0xe0003a04, 0x9cce: 0xe00039c7, 0x9ccf: 0xe00039c4, - 0x9cd0: 0xe000393e, 0x9cd1: 0xe000393a, 0x9cd2: 0xe0003946, 0x9cd3: 0xe0003942, - 0x9cd4: 0xe0003956, 0x9cd5: 0xe0003952, 0x9cd6: 0xe000394e, 0x9cd7: 0xe000394a, - 0x9cd8: 0xe0003a0e, 0x9cd9: 0xe0003a0a, 0x9cda: 0xe00039e0, 0x9cdb: 0xe00039dc, - 0x9cdc: 0xe00039e8, 0x9cdd: 0xe00039e4, 0x9cde: 0xe00039f8, 0x9cdf: 0xe00039f4, - 0x9ce0: 0xe00039f0, 0x9ce1: 0xe00039ec, 0x9ce2: 0xe0003a00, 0x9ce3: 0xe00039fc, - 0x9ce4: 0xe0003ac7, 0x9ce5: 0xe0003ac4, 0x9ce6: 0xe0003a87, 0x9ce7: 0xe0003a84, - 0x9ce8: 0xe0003aa0, 0x9ce9: 0xe0003a9c, 0x9cea: 0xe0003aa8, 0x9ceb: 0xe0003aa4, - 0x9cec: 0xe0003ab8, 0x9ced: 0xe0003ab4, 0x9cee: 0xe0003ab0, 0x9cef: 0xe0003aac, - 0x9cf0: 0xe0003ac0, 0x9cf1: 0xe0003abc, 0x9cf2: 0xe0001108, 0x9cf3: 0xe0001105, - 0x9cf4: 0xe0001135, 0x9cf5: 0xe0001132, 0x9cf6: 0xe000112f, 0x9cf7: 0xe000112c, - 0x9cf8: 0xe000111d, 0x9cf9: 0xe000111a, 0x9cfa: 0xe0000d0a, 0x9cfb: 0xe0000d07, - 0x9cfc: 0x0030d888, 0x9cfd: 0x4030d820, 0x9cfe: 0x00312088, 0x9cff: 0x40312020, - // Block 0x274, offset 0x9d00 - 0x9d00: 0xe00009bc, 0x9d01: 0xe00009c0, 0x9d02: 0x002c3a8b, 0x9d03: 0xf0000a04, - 0x9d04: 0x40081c20, 0x9d05: 0xe0000a5e, 0x9d06: 0xe0000a62, 0x9d07: 0x002cc28a, - 0x9d08: 0x40081e20, 0x9d09: 0xf0000a04, 0x9d0a: 0x002d2285, 0x9d0b: 0x002d688b, - 0x9d0c: 0x002d688b, 0x9d0d: 0x002d688b, 0x9d0e: 0x002d6885, 0x9d0f: 0xf0000202, - 0x9d10: 0x002d9a8b, 0x9d11: 0x002d9a8b, 0x9d12: 0x002e228b, 0x9d13: 0x002e2285, - 0x9d14: 0x40082020, 0x9d15: 0x002e9e8b, 0x9d16: 0xe000281e, 0x9d17: 0x40082220, - 0x9d18: 0x40082420, 0x9d19: 0x002f2c8b, 0x9d1a: 0x002f568b, 0x9d1b: 0x002f7a8b, - 0x9d1c: 0x002f7a8b, 0x9d1d: 0x002f7a8b, 0x9d1e: 0x40082620, 0x9d1f: 0x40082820, - 0x9d20: 0xe0002833, 0x9d21: 0xe0000fbd, 0x9d22: 0xe0002842, 0x9d23: 0x40082a20, - 0x9d24: 0x00312a8b, 0x9d25: 0x40082c20, 0x9d26: 0x0032a288, 0x9d27: 0x40082e20, - 0x9d28: 0x00312a8b, 0x9d29: 0x40083020, 0x9d2a: 0x002bea83, 0x9d2b: 0xe00037e8, - 0x9d2c: 0x002c0a8b, 0x9d2d: 0x002c3a8b, 0x9d2e: 0x40083220, 0x9d2f: 0x002c9885, - 0x9d30: 0x002c988b, 0x9d31: 0x002d088b, 0x9d32: 0x002d1e88, 0x9d33: 0x002e828b, - 0x9d34: 0x002ee285, 0x9d35: 0x00389084, 0x9d36: 0x00389284, 0x9d37: 0x00389484, - 0x9d38: 0x00389684, 0x9d39: 0x002d9a85, 0x9d3a: 0x40083420, 0x9d3b: 0xe0000b95, - 0x9d3c: 0x00327e85, 0x9d3d: 0x00325685, 0x9d3e: 0x0032568b, 0x9d3f: 0x00327e8b, - // Block 0x275, offset 0x9d40 - 0x9d40: 0xe0000024, 0x9d41: 0xe0000029, 0x9d42: 0xe000002e, 0x9d43: 0xe0000033, - 0x9d44: 0xe0000038, 0x9d45: 0xe000003d, 0x9d46: 0xe0000042, 0x9d47: 0xe0000047, - 0x9d48: 0xf0001f04, 0x9d49: 0xf0001f04, 0x9d4a: 0xf0001f04, 0x9d4b: 0xf0001f04, - 0x9d4c: 0xf0001f04, 0x9d4d: 0xf0001f04, 0x9d4e: 0xf0001f04, 0x9d4f: 0xf0001f04, - 0x9d50: 0xf0001f04, 0x9d51: 0xf0000404, 0x9d52: 0xf0000404, 0x9d53: 0xf0000404, - 0x9d54: 0xf0000404, 0x9d55: 0xf0000404, 0x9d56: 0xf0000404, 0x9d57: 0xf0000404, - 0x9d58: 0xf0000404, 0x9d59: 0xf0000404, 0x9d5a: 0xf0000404, 0x9d5b: 0xf0000404, - 0x9d5c: 0xf0000404, 0x9d5d: 0xf0000404, 0x9d5e: 0xf0000404, 0x9d5f: 0xf0000404, - 0x9d60: 0xe000249f, 0x9d61: 0xf0000404, 0x9d62: 0xf0000404, 0x9d63: 0xe00024a7, - 0x9d64: 0xe00024af, 0x9d65: 0xf0000404, 0x9d66: 0xe00024b7, 0x9d67: 0xe0002bcc, - 0x9d68: 0xe0002bd4, 0x9d69: 0xe0002bdc, 0x9d6a: 0xe00024bf, 0x9d6b: 0xe0002be4, - 0x9d6c: 0xf0000404, 0x9d6d: 0xf0000404, 0x9d6e: 0xf0000404, 0x9d6f: 0xf0000404, - 0x9d70: 0xe0002bec, 0x9d71: 0xf0000404, 0x9d72: 0xe0002bfc, 0x9d73: 0xf0000404, - 0x9d74: 0xf0000404, 0x9d75: 0xf0000404, 0x9d76: 0x002bde8c, 0x9d77: 0x002c0a8c, - 0x9d78: 0x002c3a8c, 0x9d79: 0x002c628c, 0x9d7a: 0x002c988c, 0x9d7b: 0x002d088c, - 0x9d7c: 0x002d228c, 0x9d7d: 0x002d688c, 0x9d7e: 0x002d9a8c, 0x9d7f: 0x002dcc8c, - // Block 0x276, offset 0x9d80 - 0x9d80: 0xe000230b, 0x9d81: 0xe00022f8, 0x9d82: 0xe00022fc, 0x9d83: 0xe0002311, - 0x9d84: 0xe0002316, 0x9d85: 0xe000231d, 0x9d86: 0xe0002321, 0x9d87: 0xe0002325, - 0x9d88: 0xe000232b, 0x9d89: 0xf0001c1c, 0x9d8a: 0xe0002330, 0x9d8b: 0xe000233c, - 0x9d8c: 0xe0002340, 0x9d8d: 0xe0002337, 0x9d8e: 0xe0002346, 0x9d8f: 0xe000234b, - 0x9d90: 0xe000234f, 0x9d91: 0xe0002353, 0x9d92: 0xf0001c1c, 0x9d93: 0xe000235e, - 0x9d94: 0xe0002358, 0x9d95: 0xf0001c1c, 0x9d96: 0xe0002363, 0x9d97: 0xe000236d, - 0x9d98: 0xf0001f04, 0x9d99: 0xf0001f04, 0x9d9a: 0xf0001f04, 0x9d9b: 0xf0001f04, - 0x9d9c: 0xf0001f04, 0x9d9d: 0xf0001f04, 0x9d9e: 0xf0001f04, 0x9d9f: 0xf0001f04, - 0x9da0: 0xf0001f04, 0x9da1: 0xf0001f04, 0x9da2: 0xf0000404, 0x9da3: 0xf0000404, - 0x9da4: 0xf0000404, 0x9da5: 0xf0000404, 0x9da6: 0xf0000404, 0x9da7: 0xf0000404, - 0x9da8: 0xf0000404, 0x9da9: 0xf0000404, 0x9daa: 0xf0000404, 0x9dab: 0xf0000404, - 0x9dac: 0xf0000404, 0x9dad: 0xf0000404, 0x9dae: 0xf0000404, 0x9daf: 0xf0000404, - 0x9db0: 0xf0000404, 0x9db1: 0xe0000c1e, 0x9db2: 0xf0001c1c, 0x9db3: 0xe0002ec3, - 0x9db4: 0xe0000a31, 0x9db5: 0xe0002824, 0x9db6: 0xe000358c, 0x9db7: 0xe000325d, - 0x9db8: 0xe0000ac2, 0x9db9: 0xe0000ac6, 0x9dba: 0xe00027e8, 0x9dbb: 0xf0001c1c, - 0x9dbc: 0xf0001c1c, 0x9dbd: 0xf0001c1c, 0x9dbe: 0xf0001c1c, 0x9dbf: 0xe0002431, - // Block 0x277, offset 0x9dc0 - 0x9dc0: 0xe0003586, 0x9dc1: 0xe000356e, 0x9dc2: 0xf0001d1c, 0x9dc3: 0xe0003544, - 0x9dc4: 0xe00027f7, 0x9dc5: 0xe00027fa, 0x9dc6: 0xe000354a, 0x9dc7: 0xf0001d1d, - 0x9dc8: 0xe0000a6b, 0x9dc9: 0xe0000cb4, 0x9dca: 0xe000358f, 0x9dcb: 0xe0003571, - 0x9dcc: 0xf0001d1c, 0x9dcd: 0xf0001c1c, 0x9dce: 0xe0003553, 0x9dcf: 0xe00027fd, - 0x9dd0: 0xe00027ce, 0x9dd1: 0xe0000cb9, 0x9dd2: 0xe0000d36, 0x9dd3: 0xe0000be3, - 0x9dd4: 0xe0000fc5, 0x9dd5: 0xe00035ad, 0x9dd6: 0xe0003556, 0x9dd7: 0xe000325a, - 0x9dd8: 0xe0002803, 0x9dd9: 0xe0003526, 0x9dda: 0xe000357d, 0x9ddb: 0xe00035b0, - 0x9ddc: 0xe0003559, 0x9ddd: 0xe000304f, 0x9dde: 0xe0002806, 0x9ddf: 0xe0000d3e, - 0x9de0: 0xe0000a72, 0x9de1: 0xe000353e, 0x9de2: 0xe0000cbd, 0x9de3: 0xe0000d42, - 0x9de4: 0xe0000a76, 0x9de5: 0xe0003541, 0x9de6: 0xe0000cc1, 0x9de7: 0xe0000d2d, - 0x9de8: 0xe0000d31, 0x9de9: 0xe0003589, 0x9dea: 0xe0000cc5, 0x9deb: 0xe0000d4a, - 0x9dec: 0xe0000be7, 0x9ded: 0xe0000f0b, 0x9dee: 0xe0000f0f, 0x9def: 0xe0000f15, - 0x9df0: 0xe000282d, 0x9df1: 0xe0002821, 0x9df2: 0xf0001c1c, 0x9df3: 0xe000281b, - 0x9df4: 0xe0003592, 0x9df5: 0xe0003580, 0x9df6: 0xf0001d1c, 0x9df7: 0xe000355c, - 0x9df8: 0xe000280f, 0x9df9: 0xe000355f, 0x9dfa: 0xe0003595, 0x9dfb: 0xe0003583, - 0x9dfc: 0xe00035b6, 0x9dfd: 0xe0003565, 0x9dfe: 0xe0002812, 0x9dff: 0xe0003568, - // Block 0x278, offset 0x9e00 - 0x9e00: 0xe0002815, 0x9e01: 0xe000356b, 0x9e02: 0xe00009b7, 0x9e03: 0xf0001c1d, - 0x9e04: 0xf0001c1c, 0x9e05: 0xf0001c1c, 0x9e06: 0xe0000a66, 0x9e07: 0xe0000a7a, - 0x9e08: 0xf0001d1c, 0x9e09: 0xf0001c1d, 0x9e0a: 0xe00027c2, 0x9e0b: 0xe00027c8, - 0x9e0c: 0xe00027e5, 0x9e0d: 0xe0002800, 0x9e0e: 0xe0002809, 0x9e0f: 0xe000280c, - 0x9e10: 0xe0003538, 0x9e11: 0xe000353b, 0x9e12: 0xe0000d0d, 0x9e13: 0xe0002818, - 0x9e14: 0xe0003547, 0x9e15: 0xe0000d3a, 0x9e16: 0xe0000d46, 0x9e17: 0xe0002827, - 0x9e18: 0xe0000eb0, 0x9e19: 0xe0000eb8, 0x9e1a: 0xe000282a, 0x9e1b: 0xf0001c1c, - 0x9e1c: 0xf0001c1d, 0x9e1d: 0xe0003598, 0x9e1e: 0xe00010b2, 0x9e1f: 0xe00009c8, - 0x9e20: 0xf0001f04, 0x9e21: 0xf0001f04, 0x9e22: 0xf0001f04, 0x9e23: 0xf0001f04, - 0x9e24: 0xf0001f04, 0x9e25: 0xf0001f04, 0x9e26: 0xf0001f04, 0x9e27: 0xf0001f04, - 0x9e28: 0xf0001f04, 0x9e29: 0xf0000404, 0x9e2a: 0xf0000404, 0x9e2b: 0xf0000404, - 0x9e2c: 0xf0000404, 0x9e2d: 0xf0000404, 0x9e2e: 0xf0000404, 0x9e2f: 0xf0000404, - 0x9e30: 0xf0000404, 0x9e31: 0xf0000404, 0x9e32: 0xf0000404, 0x9e33: 0xf0000404, - 0x9e34: 0xf0000404, 0x9e35: 0xf0000404, 0x9e36: 0xf0000404, 0x9e37: 0xf0000404, - 0x9e38: 0xf0000404, 0x9e39: 0xf0000404, 0x9e3a: 0xf0000404, 0x9e3b: 0xf0000404, - 0x9e3c: 0xf0000404, 0x9e3d: 0xf0000404, 0x9e3e: 0xf0000404, 0x9e3f: 0xe0000bdf, - // Block 0x279, offset 0x9e40 - 0x9e40: 0xf0000404, 0x9e41: 0xe00026cf, 0x9e42: 0xe0003523, 0x9e43: 0xe0000b99, - 0x9e44: 0xe0000b9d, 0x9e45: 0xe0000f83, 0x9e46: 0xf0000404, - 0x9e53: 0xf0000404, - 0x9e54: 0xf0000404, 0x9e55: 0xf0000404, 0x9e56: 0xf0000404, 0x9e57: 0xf0000404, - 0x9e5d: 0xe000150b, 0x9e5e: 0xa1a09602, 0x9e5f: 0xe0001514, - 0x9e60: 0x0038ae85, 0x9e61: 0x00389085, 0x9e62: 0x00389685, 0x9e63: 0x00389885, - 0x9e64: 0x0038a485, 0x9e65: 0x0038a685, 0x9e66: 0x0038a885, 0x9e67: 0x0038b685, - 0x9e68: 0x0038ba85, 0x9e69: 0x00093885, 0x9e6a: 0xe0001542, 0x9e6b: 0xe000153f, - 0x9e6c: 0xe000154c, 0x9e6d: 0xe0001548, 0x9e6e: 0xe00014e1, 0x9e6f: 0xe00014e4, - 0x9e70: 0xe00014e7, 0x9e71: 0xe00014ea, 0x9e72: 0xe00014f0, 0x9e73: 0xe00014f3, - 0x9e74: 0xe00014f6, 0x9e75: 0xe00014fc, 0x9e76: 0xe0001505, - 0x9e78: 0xe0001508, 0x9e79: 0xe000150e, 0x9e7a: 0xe000151b, 0x9e7b: 0xe0001518, - 0x9e7c: 0xe0001521, 0x9e7e: 0xe0001524, - // Block 0x27a, offset 0x9e80 - 0x9e80: 0xf0001f04, 0x9e81: 0xf0001f04, 0x9e82: 0xf0001f04, 0x9e83: 0xf0001f04, - 0x9e84: 0xf0001f04, 0x9e85: 0xf0001f04, 0x9e86: 0xf0001f04, 0x9e87: 0xf0001f04, - 0x9e88: 0xf0001f04, 0x9e89: 0xf0001f04, 0x9e8a: 0xf0001f04, - 0x9e90: 0xf0000a04, 0x9e91: 0xf0000a04, 0x9e92: 0xf0000a04, 0x9e93: 0xf0000a04, - 0x9e94: 0xe00024a3, 0x9e95: 0xf0000a04, 0x9e96: 0xf0000a04, 0x9e97: 0xe00024ab, - 0x9e98: 0xe00024b3, 0x9e99: 0xf0000a04, 0x9e9a: 0xe00024bb, 0x9e9b: 0xe0002bd0, - 0x9e9c: 0xe0002bd8, 0x9e9d: 0xe0002be0, 0x9e9e: 0xe00024c3, 0x9e9f: 0xe0002be8, - 0x9ea0: 0xf0000a04, 0x9ea1: 0xf0000a04, 0x9ea2: 0xf0000a04, 0x9ea3: 0xf0000a04, - 0x9ea4: 0xe0002bf0, 0x9ea5: 0xf0000a04, 0x9ea6: 0xe0002c00, 0x9ea7: 0xf0000a04, - 0x9ea8: 0xf0000a04, 0x9ea9: 0xf0000a04, 0x9eaa: 0xf0000a04, 0x9eab: 0x002c3a8c, - 0x9eac: 0x002f7a8c, 0x9ead: 0xf0000c0c, 0x9eae: 0xe000359e, - 0x9eb0: 0x002bde9d, 0x9eb1: 0x002c0a9d, 0x9eb2: 0x002c3a9d, 0x9eb3: 0x002c629d, - 0x9eb4: 0x002c989d, 0x9eb5: 0x002d089d, 0x9eb6: 0x002d229d, 0x9eb7: 0x002d689d, - 0x9eb8: 0x002d9a9d, 0x9eb9: 0x002dcc9d, 0x9eba: 0x002dfe9d, 0x9ebb: 0x002e229d, - 0x9ebc: 0x002e829d, 0x9ebd: 0x002e9e9d, 0x9ebe: 0x002ee29d, 0x9ebf: 0x002f2c9d, - // Block 0x27b, offset 0x9ec0 - 0x9ec0: 0x002f569d, 0x9ec1: 0x002f7a9d, 0x9ec2: 0x002fe69d, 0x9ec3: 0x00302c9d, - 0x9ec4: 0x00306c9d, 0x9ec5: 0x0030be9d, 0x9ec6: 0x0030e29d, 0x9ec7: 0x0030f69d, - 0x9ec8: 0x0031009d, 0x9ec9: 0x00312a9d, 0x9eca: 0xe00027cb, 0x9ecb: 0xe0003562, - 0x9ecc: 0xf0001d1d, 0x9ecd: 0xf0001d1d, 0x9ece: 0xe0000ebc, 0x9ecf: 0xe000359b, - 0x9ed0: 0x002bde8c, 0x9ed1: 0x002c0a8c, 0x9ed2: 0x002c3a8c, 0x9ed3: 0x002c628c, - 0x9ed4: 0x002c988c, 0x9ed5: 0x002d088c, 0x9ed6: 0x002d228c, 0x9ed7: 0x002d688c, - 0x9ed8: 0x002d9a8c, 0x9ed9: 0x002dcc8c, 0x9eda: 0x002dfe8c, 0x9edb: 0x002e228c, - 0x9edc: 0x002e828c, 0x9edd: 0x002e9e8c, 0x9ede: 0x002ee28c, 0x9edf: 0x002f2c8c, - 0x9ee0: 0x002f568c, 0x9ee1: 0x002f7a8c, 0x9ee2: 0x002fe68c, 0x9ee3: 0x00302c8c, - 0x9ee4: 0x00306c8c, 0x9ee5: 0x0030be8c, 0x9ee6: 0x0030e28c, 0x9ee7: 0x0030f68c, - 0x9ee8: 0x0031008c, 0x9ee9: 0x00312a8c, 0x9eea: 0xe000354d, 0x9eeb: 0xe0003550, - 0x9ef0: 0x002bde9d, 0x9ef1: 0x002c0a9d, 0x9ef2: 0x002c3a9d, 0x9ef3: 0x002c629d, - 0x9ef4: 0x002c989d, 0x9ef5: 0x002d089d, 0x9ef6: 0x002d229d, 0x9ef7: 0x002d689d, - 0x9ef8: 0x002d9a9d, 0x9ef9: 0x002dcc9d, 0x9efa: 0x002dfe9d, 0x9efb: 0x002e229d, - 0x9efc: 0x002e829d, 0x9efd: 0x002e9e9d, 0x9efe: 0x002ee29d, 0x9eff: 0x002f2c9d, - // Block 0x27c, offset 0x9f00 - 0x9f00: 0x40055620, 0x9f01: 0xa1809102, 0x9f02: 0xa1909002, 0x9f03: 0x40055820, - 0x9f04: 0xae600000, 0x9f05: 0xadc00000, 0x9f06: 0x40055a20, 0x9f07: 0xa1208d02, - 0x9f10: 0x40389020, 0x9f11: 0x40389220, 0x9f12: 0x40389420, 0x9f13: 0x40389620, - 0x9f14: 0x40389820, 0x9f15: 0x40389a20, 0x9f16: 0x40389c20, 0x9f17: 0x40389e20, - 0x9f18: 0x4038a020, 0x9f19: 0x4038a220, 0x9f1a: 0x0038a499, 0x9f1b: 0x4038a420, - 0x9f1c: 0x4038a620, 0x9f1d: 0x0038a899, 0x9f1e: 0x4038a820, 0x9f1f: 0x0038aa99, - 0x9f20: 0x4038aa20, 0x9f21: 0x4038ac20, 0x9f22: 0x4038ae20, 0x9f23: 0x0038b099, - 0x9f24: 0x4038b020, 0x9f25: 0x0038b299, 0x9f26: 0x4038b220, 0x9f27: 0x4038b420, - 0x9f28: 0x4038b620, 0x9f29: 0x4038b820, 0x9f2a: 0x4038ba20, - 0x9f30: 0xe00014ff, 0x9f31: 0xe0001502, 0x9f32: 0xe0001511, 0x9f33: 0x4003d21f, - 0x9f34: 0x4003e01f, - // Block 0x27d, offset 0x9f40 - 0x9f40: 0xa000f202, 0x9f41: 0x403fba21, 0x9f42: 0x403fba20, 0x9f43: 0x403fbc20, - 0x9f44: 0x403fbc20, 0x9f45: 0x403fbe20, 0x9f46: 0x403fc020, 0x9f47: 0x403fcc20, - 0x9f48: 0x403fce20, 0x9f49: 0x403fd020, 0x9f4a: 0x403fd220, 0x9f4b: 0x403fd420, - 0x9f4c: 0x403fd820, 0x9f4d: 0x403fdc20, 0x9f4e: 0x403fde20, 0x9f4f: 0x403fe020, - 0x9f50: 0x403fe220, 0x9f51: 0x403fe420, 0x9f52: 0x403fe620, 0x9f53: 0x403fe820, - 0x9f54: 0x403fea20, 0x9f55: 0x403fec20, 0x9f56: 0x403fee20, 0x9f57: 0x403ff020, - 0x9f58: 0x403ff420, 0x9f59: 0x403ff620, 0x9f5a: 0x403ff820, 0x9f5b: 0x403ffa20, - 0x9f5c: 0x403ffc20, 0x9f5d: 0x40400220, 0x9f5e: 0x40400420, 0x9f5f: 0x40400620, - 0x9f60: 0x40400820, 0x9f61: 0x40400a20, 0x9f62: 0x40400e20, 0x9f63: 0x40401020, - 0x9f64: 0x40401220, 0x9f65: 0x40401420, 0x9f66: 0x40401620, 0x9f67: 0x40401820, - 0x9f68: 0x40401a20, 0x9f69: 0xe0001830, 0x9f6a: 0x40401c20, 0x9f6b: 0x40401e20, - 0x9f6c: 0x40402020, 0x9f6d: 0x40402420, 0x9f6e: 0x40402620, 0x9f6f: 0x40402820, - 0x9f70: 0x40402c20, 0x9f71: 0xe0001839, 0x9f72: 0x40402e20, 0x9f73: 0x40403020, - 0x9f74: 0xe000183c, 0x9f75: 0x40403220, 0x9f76: 0x40403420, 0x9f77: 0x40403620, - 0x9f78: 0x40403820, 0x9f79: 0x40403a20, 0x9f7a: 0x40404c20, 0x9f7b: 0x40404e20, - 0x9f7c: 0xa070f102, 0x9f7d: 0x40403c20, 0x9f7e: 0x40404a20, 0x9f7f: 0x40405620, - // Block 0x27e, offset 0x9f80 - 0x9f80: 0xa0000000, 0x9f81: 0xa0000000, 0x9f82: 0xa0000000, 0x9f83: 0xa0000000, - 0x9f84: 0xa0000000, 0x9f85: 0xa0000000, 0x9f86: 0xa0000000, 0x9f87: 0xa0000000, - 0x9f88: 0xa0000000, 0x9f89: 0x40020020, 0x9f8a: 0x40020220, 0x9f8b: 0x40020420, - 0x9f8c: 0x40020620, 0x9f8d: 0x40020820, 0x9f8e: 0xa0000000, 0x9f8f: 0xa0000000, - 0x9f90: 0xa0000000, 0x9f91: 0xa0000000, 0x9f92: 0xa0000000, 0x9f93: 0xa0000000, - 0x9f94: 0xa0000000, 0x9f95: 0xa0000000, 0x9f96: 0xa0000000, 0x9f97: 0xa0000000, - 0x9f98: 0xa0000000, 0x9f99: 0xa0000000, 0x9f9a: 0xa0000000, 0x9f9b: 0xa0000000, - 0x9f9c: 0xa0000000, 0x9f9d: 0xa0000000, 0x9f9e: 0xa0000000, 0x9f9f: 0xa0000000, - 0x9fa0: 0x40021220, 0x9fa1: 0x4002ba20, 0x9fa2: 0x4003e020, 0x9fa3: 0x4004ea20, - 0x9fa4: 0x4027de20, 0x9fa5: 0x4004ec20, 0x9fa6: 0x4004e620, 0x9fa7: 0x4003d220, - 0x9fa8: 0x4003f420, 0x9fa9: 0x4003f620, 0x9faa: 0x4004d820, 0x9fab: 0x40093820, - 0x9fac: 0x40024020, 0x9fad: 0x40021a20, 0x9fae: 0x4002e420, 0x9faf: 0x4004e220, - 0x9fb0: 0x4029cc20, 0x9fb1: 0x4029ce20, 0x9fb2: 0x4029d020, 0x9fb3: 0x4029d220, - 0x9fb4: 0x4029d420, 0x9fb5: 0x4029d620, 0x9fb6: 0x4029d820, 0x9fb7: 0x4029da20, - 0x9fb8: 0x4029dc20, 0x9fb9: 0x4029de20, 0x9fba: 0x40026c20, 0x9fbb: 0x40026220, - 0x9fbc: 0x40094020, 0x9fbd: 0x40094220, 0x9fbe: 0x40094420, 0x9fbf: 0x4002c420, - // Block 0x27f, offset 0x9fc0 - 0x9fc0: 0x4004d620, 0x9fc1: 0x002bde88, 0x9fc2: 0x002c0a88, 0x9fc3: 0xc5872851, - 0x9fc4: 0xc58d28d3, 0x9fc5: 0x002c9888, 0x9fc6: 0x002d0888, 0x9fc7: 0x002d2288, - 0x9fc8: 0x002d6888, 0x9fc9: 0x002d9a88, 0x9fca: 0x002dcc88, 0x9fcb: 0x002dfe88, - 0x9fcc: 0xc59229a4, 0x9fcd: 0x002e8288, 0x9fce: 0xc5972a12, 0x9fcf: 0x002ee288, - 0x9fd0: 0x002f2c88, 0x9fd1: 0x002f5688, 0x9fd2: 0x002f7a88, 0x9fd3: 0xc3430991, - 0x9fd4: 0x00302c88, 0x9fd5: 0x00306c88, 0x9fd6: 0x0030be88, 0x9fd7: 0x0030e288, - 0x9fd8: 0x0030f688, 0x9fd9: 0x00310088, 0x9fda: 0xc3630991, 0x9fdb: 0x4003f820, - 0x9fdc: 0x4004e420, 0x9fdd: 0x4003fa20, 0x9fde: 0x40062420, 0x9fdf: 0x40021620, - 0x9fe0: 0x40061e20, 0x9fe1: 0x402bde20, 0x9fe2: 0x402c0a20, 0x9fe3: 0xc5842851, - 0x9fe4: 0xc58a2882, 0x9fe5: 0x402c9820, 0x9fe6: 0x402d0820, 0x9fe7: 0x402d2220, - 0x9fe8: 0x402d6820, 0x9fe9: 0x402d9a20, 0x9fea: 0x402dcc20, 0x9feb: 0x402dfe20, - 0x9fec: 0xc3772953, 0x9fed: 0x402e8220, 0x9fee: 0xc5272a01, 0x9fef: 0x402ee220, - 0x9ff0: 0x402f2c20, 0x9ff1: 0x402f5620, 0x9ff2: 0x402f7a20, 0x9ff3: 0xc3410991, - 0x9ff4: 0x40302c20, 0x9ff5: 0x40306c20, 0x9ff6: 0x4030be20, 0x9ff7: 0x4030e220, - 0x9ff8: 0x4030f620, 0x9ff9: 0x40310020, 0x9ffa: 0xc3610991, 0x9ffb: 0x4003fc20, - 0x9ffc: 0x40094820, 0x9ffd: 0x4003fe20, 0x9ffe: 0x40094c20, 0x9fff: 0xa0000000, - // Block 0x280, offset 0xa000 - 0xa000: 0xe0000983, 0xa001: 0xe0000980, 0xa002: 0xe00008fb, 0xa003: 0xe00008f8, - 0xa004: 0xe000097d, 0xa005: 0xe000097a, 0xa006: 0x002c3e83, 0xa007: 0x402c3e20, - 0xa008: 0xe0000a3e, 0xa009: 0xe0000a3b, 0xa00a: 0xe0000a4a, 0xa00b: 0xe0000a47, - 0xa00c: 0x002c3c83, 0xa00d: 0x402c3c20, 0xa00e: 0xe0000a86, 0xa00f: 0xe0000a83, - 0xa010: 0x002c6683, 0xa011: 0x402c6620, 0xa012: 0xe0000b46, 0xa013: 0xe0000b43, - 0xa014: 0xe0000aee, 0xa015: 0xe0000aeb, 0xa016: 0xe0000b2c, 0xa017: 0xe0000b29, - 0xa018: 0xe0000b40, 0xa019: 0xe0000b3d, 0xa01a: 0xe0000b1a, 0xa01b: 0xe0000b17, - 0xa01c: 0xe0000bb8, 0xa01d: 0xe0000bb5, 0xa01e: 0xe0000bb2, 0xa01f: 0xe0000baf, - 0xa020: 0xe0000bc4, 0xa021: 0xe0000bc1, 0xa022: 0xe0000bca, 0xa023: 0xe0000bc7, - 0xa024: 0xe0000bee, 0xa025: 0xe0000beb, 0xa026: 0xe0000c1b, 0xa027: 0xe0000c18, - 0xa028: 0xe0000c51, 0xa029: 0xe0000c4e, 0xa02a: 0xe0000c60, 0xa02b: 0xe0000c5d, - 0xa02c: 0xe0000c31, 0xa02d: 0xe0000c2e, 0xa02e: 0xe0000c5a, 0xa02f: 0xe0000c57, - 0xa030: 0xe0000c54, 0xa031: 0x402da220, 0xa032: 0xf0000a0a, 0xa033: 0xf0000404, - 0xa034: 0xe0000c8a, 0xa035: 0xe0000c87, 0xa036: 0xe0000c9f, 0xa037: 0xe0000c9c, - 0xa038: 0x402f7220, 0xa039: 0xe0000ccc, 0xa03a: 0xe0000cc9, 0xa03b: 0xe0000cd8, - 0xa03c: 0xe0000cd5, 0xa03d: 0xe0000cd2, 0xa03e: 0xe0000ccf, 0xa03f: 0xe0000d04, - // Block 0x281, offset 0xa040 - 0xa040: 0xe0000cfe, 0xa041: 0xe0000cf8, 0xa042: 0xe0000cf5, 0xa043: 0xe0000d51, - 0xa044: 0xe0000d4e, 0xa045: 0xe0000d6f, 0xa046: 0xe0000d6c, 0xa047: 0xe0000d5d, - 0xa048: 0xe0000d5a, 0xa049: 0xf0000404, 0xa04a: 0x002eda88, 0xa04b: 0x402eda20, - 0xa04c: 0xe0000e2e, 0xa04d: 0xe0000e2b, 0xa04e: 0xe0000da0, 0xa04f: 0xe0000d9d, - 0xa050: 0xe0000de0, 0xa051: 0xe0000ddd, 0xa052: 0xe0000e93, 0xa053: 0xe0000e8f, - 0xa054: 0xe0000eca, 0xa055: 0xe0000ec7, 0xa056: 0xe0000edc, 0xa057: 0xe0000ed9, - 0xa058: 0xe0000ed0, 0xa059: 0xe0000ecd, 0xa05a: 0xe0000f1f, 0xa05b: 0xe0000f1c, - 0xa05c: 0xe0000f2d, 0xa05d: 0xe0000f2a, 0xa05e: 0xe0000f47, 0xa05f: 0xe0000f44, - 0xa060: 0x002fe883, 0xa061: 0x402fe820, 0xa062: 0xe0000f99, 0xa063: 0xe0000f96, - 0xa064: 0xe0000f8a, 0xa065: 0xe0000f87, 0xa066: 0x00303688, 0xa067: 0x40303620, - 0xa068: 0xe000102b, 0xa069: 0xe0001028, 0xa06a: 0xe000103f, 0xa06b: 0xe000103c, - 0xa06c: 0xe0000fe7, 0xa06d: 0xe0000fe4, 0xa06e: 0xe0000ff9, 0xa06f: 0xe0000ff6, - 0xa070: 0xe0001025, 0xa071: 0xe0001022, 0xa072: 0xe0001039, 0xa073: 0xe0001036, - 0xa074: 0xe00010d8, 0xa075: 0xe00010d5, 0xa076: 0xe000110e, 0xa077: 0xe000110b, - 0xa078: 0xe0001117, 0xa079: 0xe000113b, 0xa07a: 0xe0001138, 0xa07b: 0xe000114d, - 0xa07c: 0xe000114a, 0xa07d: 0x00312c83, 0xa07e: 0x40312c20, 0xa07f: 0xe0000f64, - // Block 0x282, offset 0xa080 - 0xa080: 0x40321220, 0xa081: 0x40321a20, 0xa082: 0x40322220, 0xa083: 0x40322a20, - 0xa084: 0x002c6487, 0xa085: 0x002c6485, 0xa086: 0x002c6483, 0xa087: 0x002e2487, - 0xa088: 0x002e2485, 0xa089: 0x002e2483, 0xa08a: 0x002ea087, 0xa08b: 0x002ea085, - 0xa08c: 0x002ea083, 0xa08d: 0xe0000947, 0xa08e: 0xe0000944, 0xa08f: 0xe0000c3d, - 0xa090: 0xe0000c3a, 0xa091: 0xe0000dcc, 0xa092: 0xe0000dc9, 0xa093: 0xe0000ff3, - 0xa094: 0xe0000ff0, 0xa095: 0xe000101e, 0xa096: 0xe000101a, 0xa097: 0xe0001006, - 0xa098: 0xe0001002, 0xa099: 0xe0001016, 0xa09a: 0xe0001012, 0xa09b: 0xe000100e, - 0xa09c: 0xe000100a, 0xa09d: 0x402cae20, 0xa09e: 0xe0000962, 0xa09f: 0xe000095e, - 0xa0a0: 0xe0000976, 0xa0a1: 0xe0000972, 0xa0a2: 0xe00009f4, 0xa0a3: 0xe00009ef, - 0xa0a4: 0x002d3a88, 0xa0a5: 0x402d3a20, 0xa0a6: 0xe0000bbe, 0xa0a7: 0xe0000bbb, - 0xa0a8: 0xe0000c99, 0xa0a9: 0xe0000c96, 0xa0aa: 0xe0000e20, 0xa0ab: 0xe0000e1d, - 0xa0ac: 0xe0000e27, 0xa0ad: 0xe0000e23, 0xa0ae: 0xe0001162, 0xa0af: 0xe000115f, - 0xa0b0: 0xe0000c8d, 0xa0b1: 0xf0000a0a, 0xa0b2: 0xf000040a, 0xa0b3: 0xf0000404, - 0xa0b4: 0xe0000bac, 0xa0b5: 0xe0000ba9, 0xa0b6: 0x002d7888, 0xa0b7: 0x00319488, - 0xa0b8: 0xe0000d57, 0xa0b9: 0xe0000d54, 0xa0ba: 0xe0000954, 0xa0bb: 0xe0000950, - 0xa0bc: 0xe00009ea, 0xa0bd: 0xe00009e5, 0xa0be: 0xe0000e19, 0xa0bf: 0xe0000e15, - // Block 0x283, offset 0xa0c0 - 0xa0c0: 0xe00009b1, 0xa0c1: 0xe00009ae, 0xa0c2: 0xe0000a22, 0xa0c3: 0xe0000a1f, - 0xa0c4: 0xe0000a28, 0xa0c5: 0xe0000a25, 0xa0c6: 0xe0000a2e, 0xa0c7: 0xe0000a2b, - 0xa0c8: 0xe0003bd1, 0xa0c9: 0xe0003bce, 0xa0ca: 0xe0000a8c, 0xa0cb: 0xe0000a89, - 0xa0cc: 0xe0000a98, 0xa0cd: 0xe0000a95, 0xa0ce: 0xe0000aa4, 0xa0cf: 0xe0000aa1, - 0xa0d0: 0xe0000a92, 0xa0d1: 0xe0000a8f, 0xa0d2: 0xe0000a9e, 0xa0d3: 0xe0000a9b, - 0xa0d4: 0xe0000b55, 0xa0d5: 0xe0000b51, 0xa0d6: 0xe0000b4d, 0xa0d7: 0xe0000b49, - 0xa0d8: 0xe0000b7c, 0xa0d9: 0xe0000b79, 0xa0da: 0xe0000b82, 0xa0db: 0xe0000b7f, - 0xa0dc: 0xe0000b39, 0xa0dd: 0xe0000b35, 0xa0de: 0xe0000b8c, 0xa0df: 0xe0000b89, - 0xa0e0: 0xe0000bd0, 0xa0e1: 0xe0000bcd, 0xa0e2: 0xe0000c00, 0xa0e3: 0xe0000bfd, - 0xa0e4: 0xe0000c0c, 0xa0e5: 0xe0000c09, 0xa0e6: 0xe0000bfa, 0xa0e7: 0xe0000bf7, - 0xa0e8: 0xe0000c06, 0xa0e9: 0xe0000c03, 0xa0ea: 0xe0000c12, 0xa0eb: 0xe0000c0f, - 0xa0ec: 0xe0000c7e, 0xa0ed: 0xe0000c7b, 0xa0ee: 0xe0000c4a, 0xa0ef: 0xe0000c46, - 0xa0f0: 0xe0000c93, 0xa0f1: 0xe0000c90, 0xa0f2: 0xe0000cab, 0xa0f3: 0xe0000ca8, - 0xa0f4: 0xe0000cb1, 0xa0f5: 0xe0000cae, 0xa0f6: 0xe0000cde, 0xa0f7: 0xe0000cdb, - 0xa0f8: 0xe0000ce5, 0xa0f9: 0xe0000ce1, 0xa0fa: 0xe0000cf2, 0xa0fb: 0xe0000cef, - 0xa0fc: 0xe0000cec, 0xa0fd: 0xe0000ce9, 0xa0fe: 0xe0000d1e, 0xa0ff: 0xe0000d1b, - // Block 0x284, offset 0xa100 - 0xa100: 0xa0000000, 0xa101: 0xa0000000, 0xa102: 0xa0000000, 0xa103: 0xa0000000, - 0xa104: 0xa0000000, 0xa105: 0xa0000000, 0xa106: 0xa0000000, 0xa107: 0xa0000000, - 0xa108: 0xa0000000, 0xa109: 0x40020020, 0xa10a: 0x40020220, 0xa10b: 0x40020420, - 0xa10c: 0x40020620, 0xa10d: 0x40020820, 0xa10e: 0xa0000000, 0xa10f: 0xa0000000, - 0xa110: 0xa0000000, 0xa111: 0xa0000000, 0xa112: 0xa0000000, 0xa113: 0xa0000000, - 0xa114: 0xa0000000, 0xa115: 0xa0000000, 0xa116: 0xa0000000, 0xa117: 0xa0000000, - 0xa118: 0xa0000000, 0xa119: 0xa0000000, 0xa11a: 0xa0000000, 0xa11b: 0xa0000000, - 0xa11c: 0xa0000000, 0xa11d: 0xa0000000, 0xa11e: 0xa0000000, 0xa11f: 0xa0000000, - 0xa120: 0x40021220, 0xa121: 0x4002ba20, 0xa122: 0x4003e020, 0xa123: 0x4004ea20, - 0xa124: 0x4027de20, 0xa125: 0x4004ec20, 0xa126: 0x4004e620, 0xa127: 0x4003d220, - 0xa128: 0x4003f420, 0xa129: 0x4003f620, 0xa12a: 0x4004d820, 0xa12b: 0x40093820, - 0xa12c: 0x40024020, 0xa12d: 0x40021a20, 0xa12e: 0x4002e420, 0xa12f: 0x4004e220, - 0xa130: 0x4029cc20, 0xa131: 0x4029ce20, 0xa132: 0x4029d020, 0xa133: 0x4029d220, - 0xa134: 0x4029d420, 0xa135: 0x4029d620, 0xa136: 0x4029d820, 0xa137: 0x4029da20, - 0xa138: 0x4029dc20, 0xa139: 0x4029de20, 0xa13a: 0x40026c20, 0xa13b: 0x40026220, - 0xa13c: 0x40094020, 0xa13d: 0x40094220, 0xa13e: 0x40094420, 0xa13f: 0x4002c420, - // Block 0x285, offset 0xa140 - 0xa140: 0x4004d620, 0xa141: 0x002bde88, 0xa142: 0x002c0a88, 0xa143: 0xc59d2a64, - 0xa144: 0xc5a72b14, 0xa145: 0x002c9888, 0xa146: 0x002d0888, 0xa147: 0xc5b32be4, - 0xa148: 0x002d6888, 0xa149: 0x002d9a88, 0xa14a: 0x002dcc88, 0xa14b: 0x002dfe88, - 0xa14c: 0xc5bd2cb6, 0xa14d: 0x002e8288, 0xa14e: 0xc5c72d84, 0xa14f: 0xc5cf0b21, - 0xa150: 0x002f2c88, 0xa151: 0x002f5688, 0xa152: 0x002f7a88, 0xa153: 0xc5d52e14, - 0xa154: 0xc5dd2ea4, 0xa155: 0xc5e50b21, 0xa156: 0x0030be88, 0xa157: 0x0030e288, - 0xa158: 0x0030f688, 0xa159: 0x00310088, 0xa15a: 0xc5eb2f34, 0xa15b: 0x4003f820, - 0xa15c: 0x4004e420, 0xa15d: 0x4003fa20, 0xa15e: 0x40062420, 0xa15f: 0x40021620, - 0xa160: 0x40061e20, 0xa161: 0x402bde20, 0xa162: 0x402c0a20, 0xa163: 0xc59a2a32, - 0xa164: 0xc5a22ac2, 0xa165: 0x402c9820, 0xa166: 0x402d0820, 0xa167: 0xc5b02bb2, - 0xa168: 0x402d6820, 0xa169: 0x402d9a20, 0xa16a: 0x402dcc20, 0xa16b: 0x402dfe20, - 0xa16c: 0xc5b82c44, 0xa16d: 0x402e8220, 0xa16e: 0xc5c42d52, 0xa16f: 0xc5cc0b21, - 0xa170: 0x402f2c20, 0xa171: 0x402f5620, 0xa172: 0x402f7a20, 0xa173: 0xc5d22de2, - 0xa174: 0xc5da2e72, 0xa175: 0xc5e20b21, 0xa176: 0x4030be20, 0xa177: 0x4030e220, - 0xa178: 0x4030f620, 0xa179: 0x40310020, 0xa17a: 0xc5e82f02, 0xa17b: 0x4003fc20, - 0xa17c: 0x40094820, 0xa17d: 0x4003fe20, 0xa17e: 0x40094c20, 0xa17f: 0xa0000000, - // Block 0x286, offset 0xa180 - 0xa180: 0xe00008f5, 0xa181: 0xe00008ef, 0xa182: 0xe0000921, 0xa183: 0xe0000969, - 0xa184: 0xe000095b, 0xa185: 0xe000094d, 0xa186: 0xe00009dd, 0xa187: 0xe0000a53, - 0xa188: 0xe0000ae8, 0xa189: 0xe0000ae2, 0xa18a: 0xe0000af4, 0xa18b: 0xe0000b20, - 0xa18c: 0xe0000c2b, 0xa18d: 0xe0000c25, 0xa18e: 0xe0000c37, 0xa18f: 0xe0000c43, - 0xa190: 0xe0000ab3, 0xa191: 0xe0000d63, 0xa192: 0xe0000d9a, 0xa193: 0xe0000d94, - 0xa194: 0xe0000da6, 0xa195: 0xe0000de6, 0xa196: 0x002ee483, 0xa197: 0x40093e20, - 0xa198: 0xe0000e12, 0xa199: 0xe0000fe1, 0xa19a: 0xe0000fdb, 0xa19b: 0xe0000fed, - 0xa19c: 0x00306e83, 0xa19d: 0xe0001102, 0xa19e: 0x00318888, 0xa19f: 0xe0000f7b, - 0xa1a0: 0xe00008f2, 0xa1a1: 0xe00008ec, 0xa1a2: 0xe000091e, 0xa1a3: 0xe0000966, - 0xa1a4: 0xe0000958, 0xa1a5: 0xe000094a, 0xa1a6: 0xe00009d5, 0xa1a7: 0xe0000a4d, - 0xa1a8: 0xe0000ae5, 0xa1a9: 0xe0000adf, 0xa1aa: 0xe0000af1, 0xa1ab: 0xe0000b1d, - 0xa1ac: 0xe0000c28, 0xa1ad: 0xe0000c22, 0xa1ae: 0xe0000c34, 0xa1af: 0xe0000c40, - 0xa1b0: 0xe0000aad, 0xa1b1: 0xe0000d60, 0xa1b2: 0xe0000d97, 0xa1b3: 0xe0000d91, - 0xa1b4: 0xe0000da3, 0xa1b5: 0xe0000de3, 0xa1b6: 0x402ee420, 0xa1b7: 0x40093c20, - 0xa1b8: 0xe0000e0f, 0xa1b9: 0xe0000fde, 0xa1ba: 0xe0000fd8, 0xa1bb: 0xe0000fea, - 0xa1bc: 0x40306e20, 0xa1bd: 0xe00010ff, 0xa1be: 0x40318820, 0xa1bf: 0xe0001114, - // Block 0x287, offset 0xa1c0 - 0xa1c0: 0xe0000cfe, 0xa1c1: 0xe0000cf8, 0xa1c2: 0xe0000cf5, 0xa1c3: 0xe0000d51, - 0xa1c4: 0xe0000d4e, 0xa1c5: 0xe0000d6f, 0xa1c6: 0xe0000d6c, 0xa1c7: 0xe0000d5d, - 0xa1c8: 0xe0000d5a, 0xa1c9: 0xf0000404, 0xa1ca: 0x002eda88, 0xa1cb: 0x402eda20, - 0xa1cc: 0xe0000e2e, 0xa1cd: 0xe0000e2b, 0xa1ce: 0xe0000da0, 0xa1cf: 0xe0000d9d, - 0xa1d0: 0x002ee4a3, 0xa1d1: 0x402ee421, 0xa1d2: 0xe0000e93, 0xa1d3: 0xe0000e8f, - 0xa1d4: 0xe0000eca, 0xa1d5: 0xe0000ec7, 0xa1d6: 0xe0000edc, 0xa1d7: 0xe0000ed9, - 0xa1d8: 0xe0000ed0, 0xa1d9: 0xe0000ecd, 0xa1da: 0xe0000f1f, 0xa1db: 0xe0000f1c, - 0xa1dc: 0xe0000f2d, 0xa1dd: 0xe0000f2a, 0xa1de: 0xe0000f47, 0xa1df: 0xe0000f44, - 0xa1e0: 0xe0000f33, 0xa1e1: 0xe0000f30, 0xa1e2: 0xe0000f99, 0xa1e3: 0xe0000f96, - 0xa1e4: 0xe0000f8a, 0xa1e5: 0xe0000f87, 0xa1e6: 0x00303688, 0xa1e7: 0x40303620, - 0xa1e8: 0xe000102b, 0xa1e9: 0xe0001028, 0xa1ea: 0xe000103f, 0xa1eb: 0xe000103c, - 0xa1ec: 0xe0000fe7, 0xa1ed: 0xe0000fe4, 0xa1ee: 0xe0000ff9, 0xa1ef: 0xe0000ff6, - 0xa1f0: 0x00306ea3, 0xa1f1: 0x40306e21, 0xa1f2: 0xe0001039, 0xa1f3: 0xe0001036, - 0xa1f4: 0xe00010d8, 0xa1f5: 0xe00010d5, 0xa1f6: 0xe000110e, 0xa1f7: 0xe000110b, - 0xa1f8: 0xe0001117, 0xa1f9: 0xe000113b, 0xa1fa: 0xe0001138, 0xa1fb: 0xe000114d, - 0xa1fc: 0xe000114a, 0xa1fd: 0xe0001147, 0xa1fe: 0xe0001144, 0xa1ff: 0xe0000f64, - // Block 0x288, offset 0xa200 - 0xa200: 0x40321220, 0xa201: 0x40321a20, 0xa202: 0x40322220, 0xa203: 0x40322a20, - 0xa204: 0xe0000ad5, 0xa205: 0xe0000ad1, 0xa206: 0xe0000acd, 0xa207: 0xf0000a0a, - 0xa208: 0xf000040a, 0xa209: 0xf0000404, 0xa20a: 0xf0000a0a, 0xa20b: 0xf000040a, - 0xa20c: 0xf0000404, 0xa20d: 0xe0000947, 0xa20e: 0xe0000944, 0xa20f: 0xe0000c3d, - 0xa210: 0xe0000c3a, 0xa211: 0xe0000dcc, 0xa212: 0xe0000dc9, 0xa213: 0xe0000ff3, - 0xa214: 0xe0000ff0, 0xa215: 0xe0002964, 0xa216: 0xe0002961, 0xa217: 0xe0002952, - 0xa218: 0xe000294f, 0xa219: 0xe000295e, 0xa21a: 0xe000295b, 0xa21b: 0xe0002958, - 0xa21c: 0xe0002955, 0xa21d: 0x402cae20, 0xa21e: 0xe0000962, 0xa21f: 0xe000095e, - 0xa220: 0xe0000976, 0xa221: 0xe0000972, 0xa222: 0xe00009f4, 0xa223: 0xe00009ef, - 0xa224: 0x002d3a88, 0xa225: 0x402d3a20, 0xa226: 0xe0000bbe, 0xa227: 0xe0000bbb, - 0xa228: 0xe0000c99, 0xa229: 0xe0000c96, 0xa22a: 0xe0000e20, 0xa22b: 0xe0000e1d, - 0xa22c: 0xe0000e27, 0xa22d: 0xe0000e23, 0xa22e: 0xe0001162, 0xa22f: 0xe000115f, - 0xa230: 0xe0000c8d, 0xa231: 0xf0000a0a, 0xa232: 0xf000040a, 0xa233: 0xf0000404, - 0xa234: 0xe0000bac, 0xa235: 0xe0000ba9, 0xa236: 0x002d7888, 0xa237: 0x00319488, - 0xa238: 0xe0000d57, 0xa239: 0xe0000d54, 0xa23a: 0xe0000954, 0xa23b: 0xe0000950, - 0xa23c: 0xe00009ea, 0xa23d: 0xe00009e5, 0xa23e: 0xe0000e19, 0xa23f: 0xe0000e15, - // Block 0x289, offset 0xa240 - 0xa240: 0xe000098f, 0xa241: 0xe000098c, 0xa242: 0xe0000995, 0xa243: 0xe0000992, - 0xa244: 0xe0000b62, 0xa245: 0xe0000b5f, 0xa246: 0xe0000b68, 0xa247: 0xe0000b65, - 0xa248: 0xe0000c6c, 0xa249: 0xe0000c69, 0xa24a: 0xe0000c72, 0xa24b: 0xe0000c6f, - 0xa24c: 0xe0000e4a, 0xa24d: 0xe0000e47, 0xa24e: 0xe0000e50, 0xa24f: 0xe0000e4d, - 0xa250: 0xe0000ee8, 0xa251: 0xe0000ee5, 0xa252: 0xe0000eee, 0xa253: 0xe0000eeb, - 0xa254: 0xe0001053, 0xa255: 0xe0001050, 0xa256: 0xe0001059, 0xa257: 0xe0001056, - 0xa258: 0xe0000f61, 0xa259: 0xe0000f5e, 0xa25a: 0xe0000fa5, 0xa25b: 0xe0000fa2, - 0xa25c: 0x00312288, 0xa25d: 0x40312220, 0xa25e: 0xe0000bf4, 0xa25f: 0xe0000bf1, - 0xa260: 0x002ebc88, 0xa261: 0x402c8c20, 0xa262: 0x002f2288, 0xa263: 0x402f2220, - 0xa264: 0x00314088, 0xa265: 0x40314020, 0xa266: 0xe000096f, 0xa267: 0xe000096c, - 0xa268: 0xe0000b32, 0xa269: 0xe0000b2f, 0xa26a: 0xe000294c, 0xa26b: 0xe0002949, - 0xa26c: 0xe0000dfd, 0xa26d: 0xe0000df9, 0xa26e: 0xe0000e04, 0xa26f: 0xe0000e01, - 0xa270: 0xe0000e0b, 0xa271: 0xe0000e07, 0xa272: 0xe0001129, 0xa273: 0xe0001126, - 0xa274: 0x402e5e20, 0xa275: 0x402ed020, 0xa276: 0x40305a20, 0xa277: 0x402dd420, - 0xa278: 0xe0000abf, 0xa279: 0xe0000ec4, 0xa27a: 0x002be888, 0xa27b: 0x002c4488, - 0xa27c: 0x402c4420, 0xa27d: 0x002e3888, 0xa27e: 0x00303e88, 0xa27f: 0x402ffc20, - // Block 0x28a, offset 0xa280 - 0xa280: 0x00339288, 0xa281: 0x40339220, 0xa282: 0x0033a088, 0xa283: 0x4033a020, - 0xa284: 0x0033ee88, 0xa285: 0x4033ee20, 0xa286: 0x00341088, 0xa287: 0x40341020, - 0xa288: 0x0034a488, 0xa289: 0x4034a420, 0xa28a: 0x0034ec88, 0xa28b: 0x4034ec20, - 0xa28c: 0x00354288, 0xa28d: 0x40354220, 0xa28e: 0x00355688, 0xa28f: 0x40355620, - 0xa290: 0x0033f088, 0xa291: 0x4033f020, 0xa292: 0x00349688, 0xa293: 0x40349620, - 0xa294: 0x0034a688, 0xa295: 0x4034a620, 0xa296: 0x00353888, 0xa297: 0x40353820, - 0xa298: 0x0036cc88, 0xa299: 0x4036cc20, 0xa29a: 0x00348288, 0xa29b: 0x40348220, - 0xa29c: 0x00372e88, 0xa29d: 0x40372e20, 0xa29e: 0x00348088, 0xa29f: 0x40348020, - 0xa2a0: 0x00349888, 0xa2a1: 0x40349820, 0xa2a2: 0x0034da88, 0xa2a3: 0x4034da20, - 0xa2a4: 0x00351688, 0xa2a5: 0x40351620, 0xa2a6: 0x0035dc88, 0xa2a7: 0x4035dc20, - 0xa2b1: 0x00384288, 0xa2b2: 0x00384488, 0xa2b3: 0x00384688, - 0xa2b4: 0x00384888, 0xa2b5: 0xc5f02f91, 0xa2b6: 0x00384c88, 0xa2b7: 0x00384e88, - 0xa2b8: 0x00385088, 0xa2b9: 0x00385288, 0xa2ba: 0x00385488, 0xa2bb: 0x00385688, - 0xa2bc: 0x00385888, 0xa2bd: 0x00385a88, 0xa2be: 0x00385c88, 0xa2bf: 0x00385e88, - // Block 0x28b, offset 0xa2c0 - 0xa2c0: 0x40388020, 0xa2c1: 0x40388220, 0xa2c2: 0x40388420, 0xa2c3: 0x40388620, - 0xa2c4: 0x40388820, 0xa2c5: 0x40388a20, 0xa2c6: 0x40388c20, 0xa2c7: 0x40388a20, - 0xa2c9: 0x40026e20, 0xa2ca: 0x40021c20, - 0xa2cf: 0x4027e420, - 0xa2d1: 0xadc00000, 0xa2d2: 0xae600000, 0xa2d3: 0xae600000, - 0xa2d4: 0xae600000, 0xa2d5: 0xae600000, 0xa2d6: 0xadc00000, 0xa2d7: 0xae600000, - 0xa2d8: 0xae600000, 0xa2d9: 0xae600000, 0xa2da: 0xade00000, 0xa2db: 0xadc00000, - 0xa2dc: 0xae600000, 0xa2dd: 0xae600000, 0xa2de: 0xae600000, 0xa2df: 0xae600000, - 0xa2e0: 0xae600000, 0xa2e1: 0xae600000, 0xa2e2: 0xadc00000, 0xa2e3: 0xadc00000, - 0xa2e4: 0xadc00000, 0xa2e5: 0xadc00000, 0xa2e6: 0xadc00000, 0xa2e7: 0xadc00000, - 0xa2e8: 0xae600000, 0xa2e9: 0xae600000, 0xa2ea: 0xadc00000, 0xa2eb: 0xae600000, - 0xa2ec: 0xae600000, 0xa2ed: 0xade00000, 0xa2ee: 0xae400000, 0xa2ef: 0xae600000, - 0xa2f0: 0xa0a08502, 0xa2f1: 0xa0b08602, 0xa2f2: 0xa0c08702, 0xa2f3: 0xa0d08802, - 0xa2f4: 0xa0e08902, 0xa2f5: 0xa0f08a02, 0xa2f6: 0xa1008b02, 0xa2f7: 0xa1108c02, - 0xa2f8: 0xa1208d02, 0xa2f9: 0xa1308e02, 0xa2fa: 0xa1308e02, 0xa2fb: 0xa1408f02, - 0xa2fc: 0xa1509202, 0xa2fd: 0xa1600000, 0xa2fe: 0x40055420, 0xa2ff: 0xa1709502, - // Block 0x28c, offset 0xa300 - 0xa300: 0xa0000000, 0xa301: 0xa0000000, 0xa302: 0xa0000000, 0xa303: 0xa0000000, - 0xa304: 0xa0000000, 0xa305: 0xa0000000, 0xa306: 0xa0000000, 0xa307: 0xa0000000, - 0xa308: 0xa0000000, 0xa309: 0x40020020, 0xa30a: 0x40020220, 0xa30b: 0x40020420, - 0xa30c: 0x40020620, 0xa30d: 0x40020820, 0xa30e: 0xa0000000, 0xa30f: 0xa0000000, - 0xa310: 0xa0000000, 0xa311: 0xa0000000, 0xa312: 0xa0000000, 0xa313: 0xa0000000, - 0xa314: 0xa0000000, 0xa315: 0xa0000000, 0xa316: 0xa0000000, 0xa317: 0xa0000000, - 0xa318: 0xa0000000, 0xa319: 0xa0000000, 0xa31a: 0xa0000000, 0xa31b: 0xa0000000, - 0xa31c: 0xa0000000, 0xa31d: 0xa0000000, 0xa31e: 0xa0000000, 0xa31f: 0xa0000000, - 0xa320: 0x40021220, 0xa321: 0x4002ba20, 0xa322: 0x4003e020, 0xa323: 0x4004ea20, - 0xa324: 0x4027de20, 0xa325: 0x4004ec20, 0xa326: 0x4004e620, 0xa327: 0x4003d220, - 0xa328: 0x4003f420, 0xa329: 0x4003f620, 0xa32a: 0x4004d820, 0xa32b: 0x40093820, - 0xa32c: 0x40024020, 0xa32d: 0x40021a20, 0xa32e: 0x4002e420, 0xa32f: 0x4004e220, - 0xa330: 0x4029cc20, 0xa331: 0x4029ce20, 0xa332: 0x4029d020, 0xa333: 0x4029d220, - 0xa334: 0x4029d420, 0xa335: 0x4029d620, 0xa336: 0x4029d820, 0xa337: 0x4029da20, - 0xa338: 0x4029dc20, 0xa339: 0x4029de20, 0xa33a: 0x40026c20, 0xa33b: 0x40026220, - 0xa33c: 0x40094020, 0xa33d: 0x40094220, 0xa33e: 0x40094420, 0xa33f: 0x4002c420, - // Block 0x28d, offset 0xa340 - 0xa340: 0x4004d620, 0xa341: 0x002bde88, 0xa342: 0x002c0a88, 0xa343: 0xc5f409c2, - 0xa344: 0x002c6288, 0xa345: 0x002c9888, 0xa346: 0x002d0888, 0xa347: 0xc5fb2fe6, - 0xa348: 0x002d6888, 0xa349: 0xc6043041, 0xa34a: 0x002dcc88, 0xa34b: 0xc6093084, - 0xa34c: 0xc0030002, 0xa34d: 0x002e8288, 0xa34e: 0xc6123105, 0xa34f: 0xc33f3041, - 0xa350: 0x002f2c88, 0xa351: 0x002f5688, 0xa352: 0x002f7a88, 0xa353: 0xc57509c2, - 0xa354: 0x00302c88, 0xa355: 0xc3473041, 0xa356: 0x0030be88, 0xa357: 0x0030e288, - 0xa358: 0x0030f688, 0xa359: 0x00310088, 0xa35a: 0x00312a88, 0xa35b: 0x4003f820, - 0xa35c: 0x4004e420, 0xa35d: 0x4003fa20, 0xa35e: 0x40062420, 0xa35f: 0x40021620, - 0xa360: 0x40061e20, 0xa361: 0x402bde20, 0xa362: 0x402c0a20, 0xa363: 0xc5f209b1, - 0xa364: 0x402c6220, 0xa365: 0x402c9820, 0xa366: 0x402d0820, 0xa367: 0xc5f72fb3, - 0xa368: 0x402d6820, 0xa369: 0xc6023041, 0xa36a: 0x402dcc20, 0xa36b: 0xc6063062, - 0xa36c: 0xc0000002, 0xa36d: 0x402e8220, 0xa36e: 0xc60e30c3, 0xa36f: 0xc33d3041, - 0xa370: 0x402f2c20, 0xa371: 0x402f5620, 0xa372: 0x402f7a20, 0xa373: 0xc34109b1, - 0xa374: 0x40302c20, 0xa375: 0xc3453041, 0xa376: 0x4030be20, 0xa377: 0x4030e220, - 0xa378: 0x4030f620, 0xa379: 0x40310020, 0xa37a: 0x40312a20, 0xa37b: 0x4003fc20, - 0xa37c: 0x40094820, 0xa37d: 0x4003fe20, 0xa37e: 0x40094c20, 0xa37f: 0xa0000000, - // Block 0x28e, offset 0xa380 - 0xa380: 0xe0000d24, 0xa381: 0xe0000d21, 0xa382: 0xe0000d2a, 0xa383: 0xe0000d27, - 0xa384: 0x002ea083, 0xa385: 0x402ea020, 0xa386: 0xe0000d7b, 0xa387: 0xe0000d78, - 0xa388: 0xe0000d87, 0xa389: 0xe0000d84, 0xa38a: 0xe0000d81, 0xa38b: 0xe0000d7e, - 0xa38c: 0xe0000ded, 0xa38d: 0xe0000de9, 0xa38e: 0xe0000df5, 0xa38f: 0xe0000df1, - 0xa390: 0xe0000e3d, 0xa391: 0xe0000e39, 0xa392: 0xe0000e35, 0xa393: 0xe0000e31, - 0xa394: 0xe0000ea7, 0xa395: 0xe0000ea4, 0xa396: 0xe0000ead, 0xa397: 0xe0000eaa, - 0xa398: 0xe0000ed6, 0xa399: 0xe0000ed3, 0xa39a: 0xe0000ef4, 0xa39b: 0xe0000ef1, - 0xa39c: 0xe0000efb, 0xa39d: 0xe0000ef7, 0xa39e: 0xe0000f02, 0xa39f: 0xe0000eff, - 0xa3a0: 0xe0000f41, 0xa3a1: 0xe0000f3e, 0xa3a2: 0xe0000f53, 0xa3a3: 0xe0000f50, - 0xa3a4: 0xe0000f26, 0xa3a5: 0xe0000f22, 0xa3a6: 0xe0000f3a, 0xa3a7: 0xe0000f36, - 0xa3a8: 0xe0000f5a, 0xa3a9: 0xe0000f56, 0xa3aa: 0xe0000f93, 0xa3ab: 0xe0000f90, - 0xa3ac: 0xe0000f9f, 0xa3ad: 0xe0000f9c, 0xa3ae: 0xe0000fb1, 0xa3af: 0xe0000fae, - 0xa3b0: 0xe0000fab, 0xa3b1: 0xe0000fa8, 0xa3b2: 0xe0001093, 0xa3b3: 0xe0001090, - 0xa3b4: 0xe000109f, 0xa3b5: 0xe000109c, 0xa3b6: 0xe0001099, 0xa3b7: 0xe0001096, - 0xa3b8: 0xe0001032, 0xa3b9: 0xe000102e, 0xa3ba: 0xe0001046, 0xa3bb: 0xe0001042, - 0xa3bc: 0xe00010a9, 0xa3bd: 0xe00010a6, 0xa3be: 0xe00010af, 0xa3bf: 0xe00010ac, - // Block 0x28f, offset 0xa3c0 - 0xa3c0: 0xe0000b03, 0xa3c1: 0xe0000aff, 0xa3c2: 0xe0000b13, 0xa3c3: 0xe0000b0f, - 0xa3c4: 0xe0000b0b, 0xa3c5: 0xe0000b07, 0xa3c6: 0xe0000b75, 0xa3c7: 0xe0000b71, - 0xa3c8: 0xe0000c66, 0xa3c9: 0xe0000c63, 0xa3ca: 0x002d9c83, 0xa3cb: 0x402d9c20, - 0xa3cc: 0x002ee483, 0xa3cd: 0x402ee420, 0xa3ce: 0xe0000e44, 0xa3cf: 0xe0000e41, - 0xa3d0: 0xe0000dad, 0xa3d1: 0xe0000da9, 0xa3d2: 0xe0000db5, 0xa3d3: 0xe0000db1, - 0xa3d4: 0xe0000dc5, 0xa3d5: 0xe0000dc1, 0xa3d6: 0xe0000dbd, 0xa3d7: 0xe0000db9, - 0xa3d8: 0xe0003c28, 0xa3d9: 0xe0003c25, 0xa3da: 0xe0000e5d, 0xa3db: 0xe0000e59, - 0xa3dc: 0xe0000e65, 0xa3dd: 0xe0000e61, 0xa3de: 0xe0000e75, 0xa3df: 0xe0000e71, - 0xa3e0: 0xe0000e6d, 0xa3e1: 0xe0000e69, 0xa3e2: 0xe0003c2e, 0xa3e3: 0xe0003c2b, - 0xa3e4: 0x00306e83, 0xa3e5: 0x40306e20, 0xa3e6: 0xe000104d, 0xa3e7: 0xe000104a, - 0xa3e8: 0xe0001066, 0xa3e9: 0xe0001062, 0xa3ea: 0xe000106e, 0xa3eb: 0xe000106a, - 0xa3ec: 0xe000107e, 0xa3ed: 0xe000107a, 0xa3ee: 0xe0001076, 0xa3ef: 0xe0001072, - 0xa3f0: 0xe0003c34, 0xa3f1: 0xe0003c31, 0xa3f2: 0xe0001108, 0xa3f3: 0xe0001105, - 0xa3f4: 0xe0001135, 0xa3f5: 0xe0001132, 0xa3f6: 0xe000112f, 0xa3f7: 0xe000112c, - 0xa3f8: 0xe000111d, 0xa3f9: 0xe000111a, 0xa3fa: 0xe0000d0a, 0xa3fb: 0xe0000d07, - 0xa3fc: 0x0030d888, 0xa3fd: 0x4030d820, 0xa3fe: 0x00312088, 0xa3ff: 0x40312020, - // Block 0x290, offset 0xa400 - 0xa400: 0xa0000000, 0xa401: 0xa0000000, 0xa402: 0xa0000000, 0xa403: 0xa0000000, - 0xa404: 0xa0000000, 0xa405: 0xa0000000, 0xa406: 0xa0000000, 0xa407: 0xa0000000, - 0xa408: 0xa0000000, 0xa409: 0x40020020, 0xa40a: 0x40020220, 0xa40b: 0x40020420, - 0xa40c: 0x40020620, 0xa40d: 0x40020820, 0xa40e: 0xa0000000, 0xa40f: 0xa0000000, - 0xa410: 0xa0000000, 0xa411: 0xa0000000, 0xa412: 0xa0000000, 0xa413: 0xa0000000, - 0xa414: 0xa0000000, 0xa415: 0xa0000000, 0xa416: 0xa0000000, 0xa417: 0xa0000000, - 0xa418: 0xa0000000, 0xa419: 0xa0000000, 0xa41a: 0xa0000000, 0xa41b: 0xa0000000, - 0xa41c: 0xa0000000, 0xa41d: 0xa0000000, 0xa41e: 0xa0000000, 0xa41f: 0xa0000000, - 0xa420: 0x40021220, 0xa421: 0x4002ba20, 0xa422: 0x4003e020, 0xa423: 0x4004ea20, - 0xa424: 0x4027de20, 0xa425: 0x4004ec20, 0xa426: 0x4004e620, 0xa427: 0x4003d220, - 0xa428: 0x4003f420, 0xa429: 0x4003f620, 0xa42a: 0x4004d820, 0xa42b: 0x40093820, - 0xa42c: 0x40024020, 0xa42d: 0x40021a20, 0xa42e: 0x4002e420, 0xa42f: 0x4004e220, - 0xa430: 0x4029cc20, 0xa431: 0x4029ce20, 0xa432: 0x4029d020, 0xa433: 0x4029d220, - 0xa434: 0x4029d420, 0xa435: 0x4029d620, 0xa436: 0x4029d820, 0xa437: 0x4029da20, - 0xa438: 0x4029dc20, 0xa439: 0x4029de20, 0xa43a: 0x40026c20, 0xa43b: 0x40026220, - 0xa43c: 0x40094020, 0xa43d: 0x40094220, 0xa43e: 0x40094420, 0xa43f: 0x4002c420, - // Block 0x291, offset 0xa440 - 0xa440: 0x4004d620, 0xa441: 0xc61c3161, 0xa442: 0x002c0a88, 0xa443: 0x002c3a88, - 0xa444: 0x002c6288, 0xa445: 0xc62231a1, 0xa446: 0x002d0888, 0xa447: 0x002d2288, - 0xa448: 0x002d6888, 0xa449: 0xc62631a1, 0xa44a: 0x002dcc88, 0xa44b: 0x002dfe88, - 0xa44c: 0xc0030002, 0xa44d: 0x002e8288, 0xa44e: 0x002e9e88, 0xa44f: 0xc62b31c1, - 0xa450: 0x002f2c88, 0xa451: 0x002f5688, 0xa452: 0x002f7a88, 0xa453: 0x002fe688, - 0xa454: 0x00302c88, 0xa455: 0xc63031a1, 0xa456: 0x0030be88, 0xa457: 0x0030e288, - 0xa458: 0x0030f688, 0xa459: 0xc63431a1, 0xa45a: 0x00312a88, 0xa45b: 0x4003f820, - 0xa45c: 0x4004e420, 0xa45d: 0x4003fa20, 0xa45e: 0x40062420, 0xa45f: 0x40021620, - 0xa460: 0x40061e20, 0xa461: 0xc6183161, 0xa462: 0x402c0a20, 0xa463: 0x402c3a20, - 0xa464: 0x402c6220, 0xa465: 0xc62031a1, 0xa466: 0x402d0820, 0xa467: 0x402d2220, - 0xa468: 0x402d6820, 0xa469: 0xc62431a1, 0xa46a: 0x402dcc20, 0xa46b: 0x402dfe20, - 0xa46c: 0xc0000002, 0xa46d: 0x402e8220, 0xa46e: 0x402e9e20, 0xa46f: 0xc62831c1, - 0xa470: 0x402f2c20, 0xa471: 0x402f5620, 0xa472: 0x402f7a20, 0xa473: 0x402fe620, - 0xa474: 0x40302c20, 0xa475: 0xc62e31a1, 0xa476: 0x4030be20, 0xa477: 0x4030e220, - 0xa478: 0x4030f620, 0xa479: 0xc63231a1, 0xa47a: 0x40312a20, 0xa47b: 0x4003fc20, - 0xa47c: 0x40094820, 0xa47d: 0x4003fe20, 0xa47e: 0x40094c20, 0xa47f: 0xa0000000, - // Block 0x292, offset 0xa480 - 0xa480: 0xe00008f5, 0xa481: 0x002c0883, 0xa482: 0xe0000921, 0xa483: 0xe0000969, - 0xa484: 0x00320ca3, 0xa485: 0x00321083, 0xa486: 0x00320c83, 0xa487: 0xe0000a53, - 0xa488: 0xe0000ae8, 0xa489: 0x002d0683, 0xa48a: 0xe0000af4, 0xa48b: 0xe0000b20, - 0xa48c: 0xe0000c2b, 0xa48d: 0x002dca83, 0xa48e: 0xe0000c37, 0xa48f: 0xe0000c43, - 0xa490: 0x002c6483, 0xa491: 0xe0000d63, 0xa492: 0xe0000d9a, 0xa493: 0x002f2a83, - 0xa494: 0xe0000da6, 0xa495: 0xe0000de6, 0xa496: 0x00320e83, 0xa497: 0x40093e20, - 0xa498: 0x00320ea3, 0xa499: 0xe0000fe1, 0xa49a: 0x0030bc83, 0xa49b: 0xe0000fed, - 0xa49c: 0xe0000fff, 0xa49d: 0x00312883, 0xa49e: 0x00318888, 0xa49f: 0xe0000f7b, - 0xa4a0: 0xe00008f2, 0xa4a1: 0x402c0820, 0xa4a2: 0xe000091e, 0xa4a3: 0xe0000966, - 0xa4a4: 0x40320c21, 0xa4a5: 0x40321020, 0xa4a6: 0x40320c20, 0xa4a7: 0xe0000a4d, - 0xa4a8: 0xe0000ae5, 0xa4a9: 0x402d0620, 0xa4aa: 0xe0000af1, 0xa4ab: 0xe0000b1d, - 0xa4ac: 0xe0000c28, 0xa4ad: 0x402dca20, 0xa4ae: 0xe0000c34, 0xa4af: 0xe0000c40, - 0xa4b0: 0x402c6420, 0xa4b1: 0xe0000d60, 0xa4b2: 0xe0000d97, 0xa4b3: 0x402f2a20, - 0xa4b4: 0xe0000da3, 0xa4b5: 0xe0000de3, 0xa4b6: 0x40320e20, 0xa4b7: 0x40093c20, - 0xa4b8: 0x40320e21, 0xa4b9: 0xe0000fde, 0xa4ba: 0x4030bc20, 0xa4bb: 0xe0000fea, - 0xa4bc: 0xe0000ffc, 0xa4bd: 0x40312820, 0xa4be: 0x40318820, 0xa4bf: 0xe0001114, - // Block 0x293, offset 0xa4c0 - 0xa4c0: 0xe0000983, 0xa4c1: 0xe0000980, 0xa4c2: 0xe00008fb, 0xa4c3: 0xe00008f8, - 0xa4c4: 0xe000097d, 0xa4c5: 0xe000097a, 0xa4c6: 0xe0000a38, 0xa4c7: 0xe0000a35, - 0xa4c8: 0xe0000a3e, 0xa4c9: 0xe0000a3b, 0xa4ca: 0xe0000a4a, 0xa4cb: 0xe0000a47, - 0xa4cc: 0xe0000a44, 0xa4cd: 0xe0000a41, 0xa4ce: 0xe0000a86, 0xa4cf: 0xe0000a83, - 0xa4d0: 0x002c62a3, 0xa4d1: 0x402c6221, 0xa4d2: 0xe0000b46, 0xa4d3: 0xe0000b43, - 0xa4d4: 0xe0000aee, 0xa4d5: 0xe0000aeb, 0xa4d6: 0xe0000b2c, 0xa4d7: 0xe0000b29, - 0xa4d8: 0xe0000b40, 0xa4d9: 0xe0000b3d, 0xa4da: 0xe0000b1a, 0xa4db: 0xe0000b17, - 0xa4dc: 0xe0000bb8, 0xa4dd: 0xe0000bb5, 0xa4de: 0xe0000bb2, 0xa4df: 0xe0000baf, - 0xa4e0: 0xe0000bc4, 0xa4e1: 0xe0000bc1, 0xa4e2: 0xe0000bca, 0xa4e3: 0xe0000bc7, - 0xa4e4: 0xe0000bee, 0xa4e5: 0xe0000beb, 0xa4e6: 0xe0000c1b, 0xa4e7: 0xe0000c18, - 0xa4e8: 0xe0000c51, 0xa4e9: 0xe0000c4e, 0xa4ea: 0xe0000c60, 0xa4eb: 0xe0000c5d, - 0xa4ec: 0xe0000c31, 0xa4ed: 0xe0000c2e, 0xa4ee: 0xe0000c5a, 0xa4ef: 0xe0000c57, - 0xa4f0: 0xe0000c54, 0xa4f1: 0x402da220, 0xa4f2: 0xf0000a0a, 0xa4f3: 0xf0000404, - 0xa4f4: 0xe0000c8a, 0xa4f5: 0xe0000c87, 0xa4f6: 0xe0000c9f, 0xa4f7: 0xe0000c9c, - 0xa4f8: 0x402f7220, 0xa4f9: 0xe0000ccc, 0xa4fa: 0xe0000cc9, 0xa4fb: 0xe0000cd8, - 0xa4fc: 0xe0000cd5, 0xa4fd: 0xe0000cd2, 0xa4fe: 0xe0000ccf, 0xa4ff: 0xe0000d04, - // Block 0x294, offset 0xa500 - 0xa500: 0x40321220, 0xa501: 0x40321a20, 0xa502: 0x40322220, 0xa503: 0x40322a20, - 0xa504: 0xe0000ad5, 0xa505: 0xe0000ad1, 0xa506: 0xe0000acd, 0xa507: 0xf0000a0a, - 0xa508: 0xf000040a, 0xa509: 0xf0000404, 0xa50a: 0xf0000a0a, 0xa50b: 0xf000040a, - 0xa50c: 0xf0000404, 0xa50d: 0xe0000947, 0xa50e: 0xe0000944, 0xa50f: 0xe0000c3d, - 0xa510: 0xe0000c3a, 0xa511: 0xe0000dcc, 0xa512: 0xe0000dc9, 0xa513: 0xe0000ff3, - 0xa514: 0xe0000ff0, 0xa515: 0xe000101e, 0xa516: 0xe000101a, 0xa517: 0xe0003c70, - 0xa518: 0xe0003c6d, 0xa519: 0xe0001016, 0xa51a: 0xe0001012, 0xa51b: 0xe000100e, - 0xa51c: 0xe000100a, 0xa51d: 0x402cae20, 0xa51e: 0xe000299d, 0xa51f: 0xe000299a, - 0xa520: 0xe0000976, 0xa521: 0xe0000972, 0xa522: 0xe0002997, 0xa523: 0xe0002994, - 0xa524: 0x002d3a88, 0xa525: 0x402d3a20, 0xa526: 0xe0000bbe, 0xa527: 0xe0000bbb, - 0xa528: 0xe0000c99, 0xa529: 0xe0000c96, 0xa52a: 0xe0000e20, 0xa52b: 0xe0000e1d, - 0xa52c: 0xe0000e27, 0xa52d: 0xe0000e23, 0xa52e: 0xe0001162, 0xa52f: 0xe000115f, - 0xa530: 0xe0000c8d, 0xa531: 0xf0000a0a, 0xa532: 0xf000040a, 0xa533: 0xf0000404, - 0xa534: 0xe0000bac, 0xa535: 0xe0000ba9, 0xa536: 0x002d7888, 0xa537: 0x00319488, - 0xa538: 0xe0000d57, 0xa539: 0xe0000d54, 0xa53a: 0xe00029b5, 0xa53b: 0xe00029b2, - 0xa53c: 0xe0002991, 0xa53d: 0xe000298e, 0xa53e: 0xe00037a4, 0xa53f: 0xe00037a1, - // Block 0x295, offset 0xa540 - 0xa540: 0xe000098f, 0xa541: 0xe000098c, 0xa542: 0xe0000995, 0xa543: 0xe0000992, - 0xa544: 0xe0000b62, 0xa545: 0xe0000b5f, 0xa546: 0xe0000b68, 0xa547: 0xe0000b65, - 0xa548: 0xe0000c6c, 0xa549: 0xe0000c69, 0xa54a: 0xe0000c72, 0xa54b: 0xe0000c6f, - 0xa54c: 0xe0000e4a, 0xa54d: 0xe0000e47, 0xa54e: 0xe0000e50, 0xa54f: 0xe0000e4d, - 0xa550: 0xe0000ee8, 0xa551: 0xe0000ee5, 0xa552: 0xe0000eee, 0xa553: 0xe0000eeb, - 0xa554: 0xe0001053, 0xa555: 0xe0001050, 0xa556: 0xe0001059, 0xa557: 0xe0001056, - 0xa558: 0xe0000f61, 0xa559: 0xe0000f5e, 0xa55a: 0xe0000fa5, 0xa55b: 0xe0000fa2, - 0xa55c: 0x00312288, 0xa55d: 0x40312220, 0xa55e: 0xe0000bf4, 0xa55f: 0xe0000bf1, - 0xa560: 0x002ebc88, 0xa561: 0x402c8c20, 0xa562: 0x002f2288, 0xa563: 0x402f2220, - 0xa564: 0x00314088, 0xa565: 0x40314020, 0xa566: 0xe000096f, 0xa567: 0xe000096c, - 0xa568: 0xe0000b32, 0xa569: 0xe0000b2f, 0xa56a: 0xe000379e, 0xa56b: 0xe000379b, - 0xa56c: 0xe0000dfd, 0xa56d: 0xe0000df9, 0xa56e: 0xe0000e04, 0xa56f: 0xe0000e01, - 0xa570: 0xe0000e0b, 0xa571: 0xe0000e07, 0xa572: 0xe0001129, 0xa573: 0xe0001126, - 0xa574: 0x402e5e20, 0xa575: 0x402ed020, 0xa576: 0x40305a20, 0xa577: 0x402dd420, - 0xa578: 0xe0000abf, 0xa579: 0xe0000ec4, 0xa57a: 0x002be888, 0xa57b: 0x002c4488, - 0xa57c: 0x402c4420, 0xa57d: 0x002e3888, 0xa57e: 0x00303e88, 0xa57f: 0x402ffc20, - // Block 0x296, offset 0xa580 - 0xa580: 0xe00009b1, 0xa581: 0xe00009ae, 0xa582: 0xe0000a22, 0xa583: 0xe0000a1f, - 0xa584: 0xe0000a28, 0xa585: 0xe0000a25, 0xa586: 0xe0000a2e, 0xa587: 0xe0000a2b, - 0xa588: 0xe0000a5a, 0xa589: 0xe0000a56, 0xa58a: 0xe0000a8c, 0xa58b: 0xe0000a89, - 0xa58c: 0xe0000a98, 0xa58d: 0xe0000a95, 0xa58e: 0xe0000aa4, 0xa58f: 0xe0000aa1, - 0xa590: 0xe0000a92, 0xa591: 0xe0000a8f, 0xa592: 0xe0000a9e, 0xa593: 0xe0000a9b, - 0xa594: 0xe0000b55, 0xa595: 0xe0000b51, 0xa596: 0xe0003c4c, 0xa597: 0xe0003c49, - 0xa598: 0xe0000b7c, 0xa599: 0xe0000b79, 0xa59a: 0xe0000b82, 0xa59b: 0xe0000b7f, - 0xa59c: 0xe0000b39, 0xa59d: 0xe0000b35, 0xa59e: 0xe0000b8c, 0xa59f: 0xe0000b89, - 0xa5a0: 0xe0000bd0, 0xa5a1: 0xe0000bcd, 0xa5a2: 0xe0000c00, 0xa5a3: 0xe0000bfd, - 0xa5a4: 0xe0000c0c, 0xa5a5: 0xe0000c09, 0xa5a6: 0xe0000bfa, 0xa5a7: 0xe0000bf7, - 0xa5a8: 0xe0000c06, 0xa5a9: 0xe0000c03, 0xa5aa: 0xe0000c12, 0xa5ab: 0xe0000c0f, - 0xa5ac: 0xe0000c7e, 0xa5ad: 0xe0000c7b, 0xa5ae: 0xe0003c52, 0xa5af: 0xe0003c4f, - 0xa5b0: 0xe0000c93, 0xa5b1: 0xe0000c90, 0xa5b2: 0xe0000cab, 0xa5b3: 0xe0000ca8, - 0xa5b4: 0xe0000cb1, 0xa5b5: 0xe0000cae, 0xa5b6: 0xe0000cde, 0xa5b7: 0xe0000cdb, - 0xa5b8: 0xe0000ce5, 0xa5b9: 0xe0000ce1, 0xa5ba: 0xe0000cf2, 0xa5bb: 0xe0000cef, - 0xa5bc: 0xe0000cec, 0xa5bd: 0xe0000ce9, 0xa5be: 0xe0000d1e, 0xa5bf: 0xe0000d1b, - // Block 0x297, offset 0xa5c0 - 0xa5c0: 0xe0000d24, 0xa5c1: 0xe0000d21, 0xa5c2: 0xe0000d2a, 0xa5c3: 0xe0000d27, - 0xa5c4: 0xe0000d69, 0xa5c5: 0xe0000d66, 0xa5c6: 0xe0000d7b, 0xa5c7: 0xe0000d78, - 0xa5c8: 0xe0000d87, 0xa5c9: 0xe0000d84, 0xa5ca: 0xe0000d81, 0xa5cb: 0xe0000d7e, - 0xa5cc: 0xe0003c5e, 0xa5cd: 0xe0003c5b, 0xa5ce: 0xe0003c82, 0xa5cf: 0xe0003c7f, - 0xa5d0: 0xe0000e3d, 0xa5d1: 0xe0000e39, 0xa5d2: 0xe0003c64, 0xa5d3: 0xe0003c61, - 0xa5d4: 0xe0000ea7, 0xa5d5: 0xe0000ea4, 0xa5d6: 0xe0000ead, 0xa5d7: 0xe0000eaa, - 0xa5d8: 0xe0000ed6, 0xa5d9: 0xe0000ed3, 0xa5da: 0xe0000ef4, 0xa5db: 0xe0000ef1, - 0xa5dc: 0xe0000efb, 0xa5dd: 0xe0000ef7, 0xa5de: 0xe0000f02, 0xa5df: 0xe0000eff, - 0xa5e0: 0xe0000f41, 0xa5e1: 0xe0000f3e, 0xa5e2: 0xe0000f53, 0xa5e3: 0xe0000f50, - 0xa5e4: 0xe0000f26, 0xa5e5: 0xe0000f22, 0xa5e6: 0xe0000f3a, 0xa5e7: 0xe0000f36, - 0xa5e8: 0xe0000f5a, 0xa5e9: 0xe0000f56, 0xa5ea: 0xe0000f93, 0xa5eb: 0xe0000f90, - 0xa5ec: 0xe0000f9f, 0xa5ed: 0xe0000f9c, 0xa5ee: 0xe0000fb1, 0xa5ef: 0xe0000fae, - 0xa5f0: 0xe0000fab, 0xa5f1: 0xe0000fa8, 0xa5f2: 0xe0001093, 0xa5f3: 0xe0001090, - 0xa5f4: 0xe000109f, 0xa5f5: 0xe000109c, 0xa5f6: 0xe0001099, 0xa5f7: 0xe0001096, - 0xa5f8: 0xe0003c76, 0xa5f9: 0xe0003c73, 0xa5fa: 0xe0001046, 0xa5fb: 0xe0001042, - 0xa5fc: 0xe00010a9, 0xa5fd: 0xe00010a6, 0xa5fe: 0xe00010af, 0xa5ff: 0xe00010ac, - // Block 0x298, offset 0xa600 - 0xa600: 0xe00010d2, 0xa601: 0xe00010cf, 0xa602: 0xe00010cc, 0xa603: 0xe00010c9, - 0xa604: 0xe00010e1, 0xa605: 0xe00010de, 0xa606: 0xe00010e7, 0xa607: 0xe00010e4, - 0xa608: 0xe00010ed, 0xa609: 0xe00010ea, 0xa60a: 0xe00010fc, 0xa60b: 0xe00010f9, - 0xa60c: 0xe00010f6, 0xa60d: 0xe00010f3, 0xa60e: 0xe0001123, 0xa60f: 0xe0001120, - 0xa610: 0xe0001141, 0xa611: 0xe000113e, 0xa612: 0xe0001153, 0xa613: 0xe0001150, - 0xa614: 0xe0001159, 0xa615: 0xe0001156, 0xa616: 0xe0000c15, 0xa617: 0xe0000f8d, - 0xa618: 0xe00010db, 0xa619: 0xe0001111, 0xa61a: 0xf0000404, 0xa61b: 0xe0000f70, - 0xa61c: 0x40300420, 0xa61d: 0x40300620, 0xa61e: 0xe0000f7f, 0xa61f: 0x402c9620, - 0xa620: 0xe000099b, 0xa621: 0xe0000998, 0xa622: 0xe0000989, 0xa623: 0xe0000986, - 0xa624: 0xe0003c40, 0xa625: 0xe0003c3d, 0xa626: 0xe0000930, 0xa627: 0xe000092c, - 0xa628: 0xe0000940, 0xa629: 0xe000093c, 0xa62a: 0xe0000938, 0xa62b: 0xe0000934, - 0xa62c: 0xe00009aa, 0xa62d: 0xe00009a6, 0xa62e: 0xe0003c3a, 0xa62f: 0xe0003c37, - 0xa630: 0xe000090a, 0xa631: 0xe0000906, 0xa632: 0xe000091a, 0xa633: 0xe0000916, - 0xa634: 0xe0000912, 0xa635: 0xe000090e, 0xa636: 0xe00009a2, 0xa637: 0xe000099e, - 0xa638: 0xe0000b6e, 0xa639: 0xe0000b6b, 0xa63a: 0xe0000b5c, 0xa63b: 0xe0000b59, - 0xa63c: 0xe0000b26, 0xa63d: 0xe0000b23, 0xa63e: 0xe0003c46, 0xa63f: 0xe0003c43, - // Block 0x299, offset 0xa640 - 0xa640: 0xe0000b03, 0xa641: 0xe0000aff, 0xa642: 0xe0000b13, 0xa643: 0xe0000b0f, - 0xa644: 0xe0000b0b, 0xa645: 0xe0000b07, 0xa646: 0xe0000b75, 0xa647: 0xe0000b71, - 0xa648: 0xe0000c66, 0xa649: 0xe0000c63, 0xa64a: 0xe0000c78, 0xa64b: 0xe0000c75, - 0xa64c: 0xe0000e84, 0xa64d: 0xe0000e81, 0xa64e: 0xe0000e44, 0xa64f: 0xe0000e41, - 0xa650: 0xe0003c58, 0xa651: 0xe0003c55, 0xa652: 0xe0000db5, 0xa653: 0xe0000db1, - 0xa654: 0xe0000dc5, 0xa655: 0xe0000dc1, 0xa656: 0xe0000dbd, 0xa657: 0xe0000db9, - 0xa658: 0xe0000e8b, 0xa659: 0xe0000e87, 0xa65a: 0xe0003c6a, 0xa65b: 0xe0003c67, - 0xa65c: 0xe0000e65, 0xa65d: 0xe0000e61, 0xa65e: 0xe0000e75, 0xa65f: 0xe0000e71, - 0xa660: 0xe0000e6d, 0xa661: 0xe0000e69, 0xa662: 0xe0000e7d, 0xa663: 0xe0000e79, - 0xa664: 0xe000108d, 0xa665: 0xe000108a, 0xa666: 0xe000104d, 0xa667: 0xe000104a, - 0xa668: 0xe0003c7c, 0xa669: 0xe0003c79, 0xa66a: 0xe000106e, 0xa66b: 0xe000106a, - 0xa66c: 0xe000107e, 0xa66d: 0xe000107a, 0xa66e: 0xe0001076, 0xa66f: 0xe0001072, - 0xa670: 0xe0001086, 0xa671: 0xe0001082, 0xa672: 0xe0001108, 0xa673: 0xe0001105, - 0xa674: 0xe0001135, 0xa675: 0xe0001132, 0xa676: 0xe000112f, 0xa677: 0xe000112c, - 0xa678: 0xe000111d, 0xa679: 0xe000111a, 0xa67a: 0xe0000d0a, 0xa67b: 0xe0000d07, - 0xa67c: 0x0030d888, 0xa67d: 0x4030d820, 0xa67e: 0x00312088, 0xa67f: 0x40312020, - // Block 0x29a, offset 0xa680 - 0xa680: 0x40021220, 0xa681: 0x40025c20, 0xa682: 0x40030420, 0xa683: 0x40051220, - 0xa684: 0x40279a20, 0xa685: 0x4027ca20, 0xa686: 0xe0002206, 0xa687: 0xe00001d3, - 0xa688: 0x40049c20, 0xa689: 0x40049e20, 0xa68a: 0x4004a020, 0xa68b: 0x4004a220, - 0xa68c: 0x4004a420, 0xa68d: 0x4004a620, 0xa68e: 0x4004a820, 0xa68f: 0x4004aa20, - 0xa690: 0x4004ac20, 0xa691: 0x4004ae20, 0xa692: 0x40279c20, 0xa693: 0x40279e20, - 0xa694: 0x4004b020, 0xa695: 0x4004b220, 0xa696: 0x4004b420, 0xa697: 0x4004b620, - 0xa698: 0x4004b820, 0xa699: 0x4004ba20, 0xa69a: 0x4004bc20, 0xa69b: 0x4004be20, - 0xa69c: 0x40023820, 0xa69d: 0x4003ea20, 0xa69e: 0x4003ec20, 0xa69f: 0x4003ee20, - 0xa6a0: 0x4027a020, 0xa6a1: 0xe0000267, 0xa6a2: 0xe000037f, 0xa6a3: 0xe0000459, - 0xa6a4: 0xe000052e, 0xa6a5: 0xe00005f8, 0xa6a6: 0xe00006c3, 0xa6a7: 0xe000076b, - 0xa6a8: 0xe0000817, 0xa6a9: 0xe00008bc, 0xa6aa: 0xada12202, 0xa6ab: 0xae412302, - 0xa6ac: 0xae812402, 0xa6ad: 0xade12502, 0xa6ae: 0xae012602, 0xa6af: 0xae012702, - 0xa6b0: 0x40023a20, 0xa6b1: 0x4027ce20, 0xa6b2: 0xe0000152, 0xa6b3: 0x4027d020, - 0xa6b4: 0xe0000155, 0xa6b5: 0x4027d220, 0xa6b6: 0x00279c84, 0xa6b7: 0x4027a220, - 0xa6b8: 0x02a68284, 0xa6b9: 0x02a68884, 0xa6ba: 0x02a68a84, 0xa6bb: 0x4027cc20, - 0xa6bc: 0xe000231a, 0xa6bd: 0x40051420, 0xa6be: 0x4027a420, 0xa6bf: 0x4027a620, - // Block 0x29b, offset 0xa6c0 - 0xa6c1: 0xc63631f1, 0xa6c2: 0xc63c31f1, 0xa6c3: 0xc70631f1, - 0xa6c4: 0xc70c31f1, 0xa6c5: 0xc7c439e1, 0xa6c6: 0xc7ce33a1, 0xa6c7: 0xc8ad31f1, - 0xa6c8: 0xc8b331f1, 0xa6c9: 0xc96231f1, 0xa6ca: 0xc96831f1, 0xa6cb: 0xc6483271, - 0xa6cc: 0xc65531f1, 0xa6cd: 0xc71233a1, 0xa6ce: 0xc7273631, 0xa6cf: 0xc7f033a1, - 0xa6d0: 0xc8053631, 0xa6d1: 0xc8bf3271, 0xa6d2: 0xc8cc31f1, 0xa6d3: 0xc96e33a1, - 0xa6d4: 0xc9833631, 0xa6d5: 0xc65b33a1, 0xa6d6: 0xc6703631, 0xa6d7: 0xc73433a1, - 0xa6d8: 0xc7493631, 0xa6d9: 0xc81233a1, 0xa6da: 0xc8273631, 0xa6db: 0xc8d233a1, - 0xa6dc: 0xc8e73631, 0xa6dd: 0xc98b33a1, 0xa6de: 0xc9a03631, 0xa6df: 0xc67833a1, - 0xa6e0: 0xc68d3631, 0xa6e1: 0xc75133a1, 0xa6e2: 0xc7663631, 0xa6e3: 0xc82f39e1, - 0xa6e4: 0xc83933a1, 0xa6e5: 0xc84e3631, 0xa6e6: 0xc8ef33a1, 0xa6e7: 0xc9043631, - 0xa6e8: 0xc9ad33a1, 0xa6e9: 0xc9c23631, 0xa6ea: 0xc69531f1, 0xa6eb: 0xc76e31f1, - 0xa6ec: 0xc85931f1, 0xa6ed: 0xc90c31f1, 0xa6ee: 0xc9ca31f1, 0xa6ef: 0xc6a036b1, - 0xa6f0: 0xc6bb3631, 0xa6f1: 0xc6c33631, 0xa6f2: 0xc77936b1, 0xa6f3: 0xc7943631, - 0xa6f4: 0xc79c3631, 0xa6f5: 0xc86436b1, 0xa6f6: 0xc87f3631, 0xa6f7: 0xc8873631, - 0xa6f8: 0xc91736b1, 0xa6f9: 0xc9323631, 0xa6fa: 0xc93a3631, 0xa6fb: 0xc9d536b1, - 0xa6fc: 0xc9f03631, 0xa6fd: 0xc9f83631, 0xa6fe: 0xc6cb31f1, 0xa6ff: 0xc7a431f1, - // Block 0x29c, offset 0xa700 - 0xa700: 0xc89231f1, 0xa701: 0xc94231f1, 0xa702: 0xca0031f1, 0xa703: 0xc6d131f1, - 0xa704: 0xc6d731f1, 0xa705: 0xc89831f1, 0xa706: 0xc89e31f1, 0xa707: 0xca0631f1, - 0xa708: 0xca0c31f1, 0xa709: 0xc6e031f1, 0xa70a: 0xc7ad31f1, 0xa70b: 0xc8a731f1, - 0xa70c: 0xc94b31f1, 0xa70d: 0xca1531f1, 0xa70e: 0xc6e639e1, 0xa70f: 0xc6f039e1, - 0xa710: 0xc7b339e1, 0xa711: 0xc95139e1, 0xa712: 0xca1b39e1, 0xa713: 0xca313a71, - 0xa714: 0xc7e33631, 0xa715: 0xc64231f1, 0xa716: 0xc8b931f1, - 0xa719: 0xa0812802, 0xa71a: 0xa0812902, 0xa71b: 0x40063c20, - 0xa71c: 0x40063e20, 0xa71d: 0x4027d820, 0xa71e: 0xe000015b, 0xa71f: 0xe0003fc5, - 0xa720: 0x40023c20, 0xa721: 0xc6393241, 0xa722: 0xc63f3241, 0xa723: 0xc7093241, - 0xa724: 0xc70f3241, 0xa725: 0xc7c935c1, 0xa726: 0xc7d634c1, 0xa727: 0xc8b03241, - 0xa728: 0xc8b63241, 0xa729: 0xc9653241, 0xa72a: 0xc96b3241, 0xa72b: 0xc64d3321, - 0xa72c: 0xc6583241, 0xa72d: 0xc71a34c1, 0xa72e: 0xc72b3681, 0xa72f: 0xc7f834c1, - 0xa730: 0xc8093681, 0xa731: 0xc8c43321, 0xa732: 0xc8cf3241, 0xa733: 0xc97634c1, - 0xa734: 0xc9873681, 0xa735: 0xc66334c1, 0xa736: 0xc6743681, 0xa737: 0xc73c34c1, - 0xa738: 0xc74d3681, 0xa739: 0xc81a34c1, 0xa73a: 0xc82b3681, 0xa73b: 0xc8da34c1, - 0xa73c: 0xc8eb3681, 0xa73d: 0xc99334c1, 0xa73e: 0xc9a43681, 0xa73f: 0xc68034c1, - // Block 0x29d, offset 0xa740 - 0xa740: 0xc6913681, 0xa741: 0xc75934c1, 0xa742: 0xc76a3681, 0xa743: 0xc83435c1, - 0xa744: 0xc84134c1, 0xa745: 0xc8523681, 0xa746: 0xc8f734c1, 0xa747: 0xc9083681, - 0xa748: 0xc9b534c1, 0xa749: 0xc9c63681, 0xa74a: 0xc6983241, 0xa74b: 0xc7713241, - 0xa74c: 0xc85c3241, 0xa74d: 0xc90f3241, 0xa74e: 0xc9cd3241, 0xa74f: 0xc6ab3861, - 0xa750: 0xc6bf3681, 0xa751: 0xc6c73681, 0xa752: 0xc7843861, 0xa753: 0xc7983681, - 0xa754: 0xc7a03681, 0xa755: 0xc86f3861, 0xa756: 0xc8833681, 0xa757: 0xc88b3681, - 0xa758: 0xc9223861, 0xa759: 0xc9363681, 0xa75a: 0xc93e3681, 0xa75b: 0xc9e03861, - 0xa75c: 0xc9f43681, 0xa75d: 0xc9fc3681, 0xa75e: 0xc6ce3241, 0xa75f: 0xc7a73241, - 0xa760: 0xc8953241, 0xa761: 0xc9453241, 0xa762: 0xca033241, 0xa763: 0xc6d43241, - 0xa764: 0xc6da3241, 0xa765: 0xc89b3241, 0xa766: 0xc8a13241, 0xa767: 0xca093241, - 0xa768: 0xca0f3241, 0xa769: 0xc6e33241, 0xa76a: 0xc7b03241, 0xa76b: 0xc8aa3241, - 0xa76c: 0xc94e3241, 0xa76d: 0xca183241, 0xa76e: 0xc6eb35c1, 0xa76f: 0xc6f534c1, - 0xa770: 0xc7b834c1, 0xa771: 0xc95634c1, 0xa772: 0xca2034c1, 0xa773: 0xca313aa1, - 0xa774: 0xc7e73681, 0xa775: 0xc6453241, 0xa776: 0xc8bc3241, 0xa777: 0xc7023681, - 0xa778: 0xc7c03681, 0xa779: 0xc95e3681, 0xa77a: 0xca2d3681, 0xa77b: 0x40023e20, - 0xa77c: 0x4027d620, 0xa77d: 0x4027d820, 0xa77e: 0xe000015b, 0xa77f: 0xe0003e6c, - // Block 0x29e, offset 0xa780 - 0xa785: 0x4065da20, 0xa786: 0x4065dc20, 0xa787: 0x4065de20, - 0xa788: 0x4065e020, 0xa789: 0x4065e420, 0xa78a: 0x4065e620, 0xa78b: 0x4065e820, - 0xa78c: 0x4065ea20, 0xa78d: 0x4065ec20, 0xa78e: 0x4065ee20, 0xa78f: 0x4065f420, - 0xa790: 0x4065f620, 0xa791: 0x4065f820, 0xa792: 0x4065fa20, 0xa793: 0x4065fe20, - 0xa794: 0x40660020, 0xa795: 0x40660220, 0xa796: 0x40660420, 0xa797: 0x40660620, - 0xa798: 0x40660820, 0xa799: 0x40660a20, 0xa79a: 0x40661220, 0xa79b: 0x40661420, - 0xa79c: 0x40661820, 0xa79d: 0x40661a20, 0xa79e: 0x40661e20, 0xa79f: 0x40662020, - 0xa7a0: 0x40662220, 0xa7a1: 0x40662420, 0xa7a2: 0x40662620, 0xa7a3: 0x40662820, - 0xa7a4: 0x40662a20, 0xa7a5: 0x40662e20, 0xa7a6: 0x40663620, 0xa7a7: 0x40663820, - 0xa7a8: 0x40663a20, 0xa7a9: 0x40663c20, 0xa7aa: 0x4065e220, 0xa7ab: 0x4065f020, - 0xa7ac: 0x4065fc20, 0xa7ad: 0x40663e20, - 0xa7b1: 0x4062ac20, 0xa7b2: 0x4062ae20, 0xa7b3: 0x40646820, - 0xa7b4: 0x4062b020, 0xa7b5: 0x40646c20, 0xa7b6: 0x40646e20, 0xa7b7: 0x4062b220, - 0xa7b8: 0x4062b420, 0xa7b9: 0x4062b620, 0xa7ba: 0x40647420, 0xa7bb: 0x40647620, - 0xa7bc: 0x40647820, 0xa7bd: 0x40647a20, 0xa7be: 0x40647c20, 0xa7bf: 0x40647e20, - // Block 0x29f, offset 0xa7c0 - 0xa7c0: 0x4062e020, 0xa7c1: 0x4062b820, 0xa7c2: 0x4062ba20, 0xa7c3: 0x4062bc20, - 0xa7c4: 0x4062ee20, 0xa7c5: 0x4062be20, 0xa7c6: 0x4062c020, 0xa7c7: 0x4062c220, - 0xa7c8: 0x4062c420, 0xa7c9: 0x4062c620, 0xa7ca: 0x4062c820, 0xa7cb: 0x4062ca20, - 0xa7cc: 0x4062cc20, 0xa7cd: 0x4062ce20, 0xa7ce: 0x4062d020, 0xa7cf: 0x4063a820, - 0xa7d0: 0x4063aa20, 0xa7d1: 0x4063ac20, 0xa7d2: 0x4063ae20, 0xa7d3: 0x4063b020, - 0xa7d4: 0x4063b220, 0xa7d5: 0x4063b420, 0xa7d6: 0x4063b620, 0xa7d7: 0x4063b820, - 0xa7d8: 0x4063ba20, 0xa7d9: 0x4063bc20, 0xa7da: 0x4063be20, 0xa7db: 0x4063c020, - 0xa7dc: 0x4063c220, 0xa7dd: 0x4063c420, 0xa7de: 0x4063c620, 0xa7df: 0x4063c820, - 0xa7e0: 0x4063ca20, 0xa7e1: 0x4063cc20, 0xa7e2: 0x4063ce20, 0xa7e3: 0x4063d020, - 0xa7e4: 0x4063a620, 0xa7e5: 0x0062d484, 0xa7e6: 0x0062d684, 0xa7e7: 0x0064a284, - 0xa7e8: 0x0064a484, 0xa7e9: 0x0064ac84, 0xa7ea: 0x0064b084, 0xa7eb: 0x0064ba84, - 0xa7ec: 0x0064c284, 0xa7ed: 0x0064c684, 0xa7ee: 0x0062e484, 0xa7ef: 0x0064ce84, - 0xa7f0: 0x0064d284, 0xa7f1: 0x0062e684, 0xa7f2: 0x0062e884, 0xa7f3: 0x0062ec84, - 0xa7f4: 0x0062f084, 0xa7f5: 0x0062f284, 0xa7f6: 0x0062fa84, 0xa7f7: 0x0062fe84, - 0xa7f8: 0x00630284, 0xa7f9: 0x00630484, 0xa7fa: 0x00630684, 0xa7fb: 0x00630884, - 0xa7fc: 0x00630a84, 0xa7fd: 0x00631084, 0xa7fe: 0x00631884, 0xa7ff: 0x00632c84, - // Block 0x2a0, offset 0xa800 - 0xa800: 0x40275220, 0xa801: 0x40275420, 0xa802: 0x40275620, 0xa803: 0x40275820, - 0xa804: 0x40275a20, 0xa805: 0x40275c20, 0xa806: 0x40275e20, 0xa807: 0x40276020, - 0xa808: 0x40276220, 0xa809: 0x40276420, 0xa80a: 0x40276620, 0xa80b: 0x40276820, - 0xa80c: 0x40276a20, 0xa80d: 0x40276c20, 0xa80e: 0x40276e20, 0xa80f: 0x40277020, - 0xa810: 0x40277220, 0xa811: 0x40277420, 0xa812: 0x40277620, 0xa813: 0x40277820, - 0xa814: 0x40277a20, 0xa815: 0x40277c20, 0xa816: 0x40277e20, 0xa817: 0x40278020, - 0xa818: 0x40278220, 0xa819: 0x40278420, 0xa81a: 0x40278620, 0xa81b: 0x40278820, - 0xa81c: 0x40278a20, 0xa81d: 0x40278c20, 0xa81e: 0x40278e20, 0xa81f: 0x40279020, - 0xa820: 0x40279220, 0xa821: 0x40279420, 0xa822: 0x40279620, 0xa823: 0x40279820, - 0xa830: 0xc7eb35c1, 0xa831: 0xc72f35c1, 0xa832: 0xc80d35c1, 0xa833: 0xc9a835c1, - 0xa834: 0xc8563241, 0xa835: 0xc69b35c1, 0xa836: 0xc77435c1, 0xa837: 0xc85f35c1, - 0xa838: 0xc91235c1, 0xa839: 0xc9d035c1, 0xa83a: 0xc88f3241, 0xa83b: 0xc6dd3241, - 0xa83c: 0xc7aa3241, 0xa83d: 0xc8a43241, 0xa83e: 0xc9483241, 0xa83f: 0xca123241, - // Block 0x2a1, offset 0xa840 - 0xa840: 0xf0000404, 0xa841: 0xf0000404, 0xa842: 0xf0000404, 0xa843: 0xf0000404, - 0xa844: 0xf0000404, 0xa845: 0xf0000404, 0xa846: 0xf0000404, 0xa847: 0xf0000404, - 0xa848: 0xf0000404, 0xa849: 0xf0000404, 0xa84a: 0xf0000404, 0xa84b: 0xf0000404, - 0xa84c: 0xf0000404, 0xa84d: 0xf0000404, 0xa84e: 0xe000004c, 0xa84f: 0xe0000051, - 0xa850: 0xe0000056, 0xa851: 0xe000005b, 0xa852: 0xe0000060, 0xa853: 0xe0000065, - 0xa854: 0xe000006a, 0xa855: 0xe000006f, 0xa856: 0xe0000083, 0xa857: 0xe000008d, - 0xa858: 0xe0000092, 0xa859: 0xe0000097, 0xa85a: 0xe000009c, 0xa85b: 0xe00000a1, - 0xa85c: 0xe0000088, 0xa85d: 0xe0000074, 0xa85e: 0xe000007c, - 0xa860: 0xe0002c4c, 0xa861: 0xe0002c5c, 0xa862: 0xe0002c54, 0xa863: 0xe0002c8c, - 0xa864: 0xe0002c60, 0xa865: 0xe0002c74, 0xa866: 0xe0002c50, 0xa867: 0xe0002c70, - 0xa868: 0xe0002c58, 0xa869: 0xe0002c7c, 0xa86a: 0xe0002c9c, 0xa86b: 0xe0002cb0, - 0xa86c: 0xe0002cac, 0xa86d: 0xe0002ca4, 0xa86e: 0xe0002cd8, 0xa86f: 0xe0002c90, - 0xa870: 0xe0002c98, 0xa871: 0xe0002ca8, 0xa872: 0xe0002ca0, 0xa873: 0xe0002cbc, - 0xa874: 0xe0002c84, 0xa875: 0xe0002cb4, 0xa876: 0xe0002cd0, 0xa877: 0xe0002cc0, - 0xa878: 0xe0002c78, 0xa879: 0xe0002c64, 0xa87a: 0xe0002c88, 0xa87b: 0xe0002c94, - 0xa87c: 0xe0002cb8, 0xa87d: 0xe0002c68, 0xa87e: 0xe0002cd4, 0xa87f: 0xe0002c80, - // Block 0x2a2, offset 0xa880 - 0xa880: 0xe0002cc4, 0xa881: 0xe0002c6c, 0xa882: 0xe0002cc8, 0xa883: 0xe0002ccc, - 0xa884: 0x02aa9e86, 0xa885: 0x02bcf886, 0xa886: 0x02cb0e86, 0xa887: 0x02f71e86, - 0xa888: 0xe00002e3, 0xa889: 0xe00003d8, 0xa88a: 0xe00004b3, 0xa88b: 0xe000057d, - 0xa88c: 0xe0000648, 0xa88d: 0xe00006f0, 0xa88e: 0xe000079c, 0xa88f: 0xe0000841, - 0xa890: 0xe0000ec0, 0xa891: 0xf0000606, 0xa892: 0xf0000606, 0xa893: 0xf0000606, - 0xa894: 0xf0000606, 0xa895: 0xf0000606, 0xa896: 0xf0000606, 0xa897: 0xf0000606, - 0xa898: 0xf0000606, 0xa899: 0xf0000606, 0xa89a: 0xf0000606, 0xa89b: 0xf0000606, - 0xa89c: 0xf0000606, 0xa89d: 0xf0000606, 0xa89e: 0xf0000606, 0xa89f: 0xf0000606, - 0xa8a0: 0x0062ac86, 0xa8a1: 0x0062b086, 0xa8a2: 0x0062b286, 0xa8a3: 0x0062b686, - 0xa8a4: 0x0062b886, 0xa8a5: 0x0062ba86, 0xa8a6: 0x0062be86, 0xa8a7: 0x0062c286, - 0xa8a8: 0x0062c486, 0xa8a9: 0x0062c886, 0xa8aa: 0x0062ca86, 0xa8ab: 0x0062cc86, - 0xa8ac: 0x0062ce86, 0xa8ad: 0x0062d086, 0xa8ae: 0xf0000606, 0xa8af: 0xf0000606, - 0xa8b0: 0xf0000606, 0xa8b1: 0xf0000606, 0xa8b2: 0xf0000606, 0xa8b3: 0xf0000606, - 0xa8b4: 0xf0000606, 0xa8b5: 0xf0000606, 0xa8b6: 0xf0000606, 0xa8b7: 0xf0000606, - 0xa8b8: 0xf0000606, 0xa8b9: 0xf0000606, 0xa8ba: 0xf0000606, 0xa8bb: 0xf0000606, - 0xa8bc: 0xe0002127, 0xa8bd: 0xe0002122, 0xa8be: 0xf0000606, 0xa8bf: 0x4027ac20, - // Block 0x2a3, offset 0xa8c0 - 0xa8c0: 0xe0002da0, 0xa8c1: 0xe0002e0d, 0xa8c2: 0xe0002e42, 0xa8c3: 0xe0002e6f, - 0xa8c4: 0xe0002e81, 0xa8c5: 0xe0002e90, 0xa8c6: 0xe0002e9f, 0xa8c7: 0xe0002eae, - 0xa8c8: 0xe0002ebd, 0xa8c9: 0xe0002d06, 0xa8ca: 0xe0002d19, 0xa8cb: 0xe0002d2c, - 0xa8cc: 0xf0001c1d, 0xa8cd: 0xe0000b85, 0xa8ce: 0xf0001d1c, 0xa8cf: 0xe0000d14, - 0xa8d0: 0x00657693, 0xa8d1: 0x00657893, 0xa8d2: 0x00657a93, 0xa8d3: 0x00657e93, - 0xa8d4: 0x00658093, 0xa8d5: 0x00658293, 0xa8d6: 0x00658493, 0xa8d7: 0x00658693, - 0xa8d8: 0x00658893, 0xa8d9: 0x00658a93, 0xa8da: 0x00658c93, 0xa8db: 0x00658e93, - 0xa8dc: 0x00659093, 0xa8dd: 0x00659293, 0xa8de: 0x00659493, 0xa8df: 0x00659693, - 0xa8e0: 0x00659893, 0xa8e1: 0x00659a93, 0xa8e2: 0x00659c93, 0xa8e3: 0x00659e93, - 0xa8e4: 0x0065a093, 0xa8e5: 0x0065a293, 0xa8e6: 0x0065a493, 0xa8e7: 0x0065a693, - 0xa8e8: 0x0065a893, 0xa8e9: 0x0065aa93, 0xa8ea: 0x0065ac93, 0xa8eb: 0x0065ae93, - 0xa8ec: 0x0065b093, 0xa8ed: 0x0065b293, 0xa8ee: 0x0065b493, 0xa8ef: 0x0065b693, - 0xa8f0: 0x0065b893, 0xa8f1: 0x0065ba93, 0xa8f2: 0x0065bc93, 0xa8f3: 0x0065be93, - 0xa8f4: 0x0065c093, 0xa8f5: 0x0065c493, 0xa8f6: 0x0065c693, 0xa8f7: 0x0065c893, - 0xa8f8: 0x0065ca93, 0xa8f9: 0x0065cc93, 0xa8fa: 0x0065ce93, 0xa8fb: 0x0065d093, - 0xa8fc: 0x0065d293, 0xa8fd: 0x0065d493, 0xa8fe: 0x0065d693, - // Block 0x2a4, offset 0xa900 - 0xa900: 0xe000230b, 0xa901: 0xe00022f8, 0xa902: 0xe00022fc, 0xa903: 0xe0002311, - 0xa904: 0xe0002316, 0xa905: 0xe000231d, 0xa906: 0xe0002321, 0xa907: 0xe0002325, - 0xa908: 0xe000232b, 0xa909: 0xf0001c1c, 0xa90a: 0xe0002330, 0xa90b: 0xe000233c, - 0xa90c: 0xe0002340, 0xa90d: 0xe0002337, 0xa90e: 0xe0002346, 0xa90f: 0xe000234b, - 0xa910: 0xe000234f, 0xa911: 0xe0002353, 0xa912: 0xf0001c1c, 0xa913: 0xe000235e, - 0xa914: 0xe0002358, 0xa915: 0xf0001c1c, 0xa916: 0xe0002363, 0xa917: 0xe000236d, - 0xa918: 0xe0002cef, 0xa919: 0xe0002da3, 0xa91a: 0xe0002e10, 0xa91b: 0xe0002e45, - 0xa91c: 0xe0002e72, 0xa91d: 0xe0002e84, 0xa91e: 0xe0002e93, 0xa91f: 0xe0002ea2, - 0xa920: 0xe0002eb1, 0xa921: 0xe0002ec0, 0xa922: 0xe0002d0a, 0xa923: 0xe0002d1d, - 0xa924: 0xe0002d30, 0xa925: 0xe0002d3f, 0xa926: 0xe0002d4e, 0xa927: 0xe0002d5d, - 0xa928: 0xe0002d6c, 0xa929: 0xe0002d7b, 0xa92a: 0xe0002d8a, 0xa92b: 0xe0002d99, - 0xa92c: 0xe0002db7, 0xa92d: 0xe0002dc2, 0xa92e: 0xe0002dcd, 0xa92f: 0xe0002dd8, - 0xa930: 0xe0002de3, 0xa931: 0xe0000c1e, 0xa932: 0xf0001c1c, 0xa933: 0xf0001d1d, - 0xa934: 0xe0000a31, 0xa935: 0xf0001d1c, 0xa936: 0xf0001c1c, 0xa937: 0xf0001c1c, - 0xa938: 0xe0000ac2, 0xa939: 0xe0000ac6, 0xa93a: 0xf0001d1d, 0xa93b: 0xe0004023, - 0xa93c: 0xe0004029, 0xa93d: 0xe0004020, 0xa93e: 0xe0004026, 0xa93f: 0xe0002431, - // Block 0x2a5, offset 0xa940 - 0xa940: 0xf0001d1c, 0xa941: 0xf0001d1d, 0xa942: 0xe00009b7, 0xa943: 0xf0001c1d, - 0xa944: 0xf0001c1c, 0xa945: 0xf0001c1c, 0xa946: 0xe0000a66, 0xa947: 0xe0000a7a, - 0xa948: 0xf0001d1c, 0xa949: 0xf0001c1d, 0xa94a: 0xf0001c1c, 0xa94b: 0xf0001d1d, - 0xa94c: 0xf0001c1c, 0xa94d: 0xf0001d1d, 0xa94e: 0xf0001d1d, 0xa94f: 0xf0001c1c, - 0xa950: 0xf0001c1c, 0xa951: 0xf0001c1c, 0xa952: 0xe0000d0d, 0xa953: 0xf0001c1c, - 0xa954: 0xf0001c1c, 0xa955: 0xe0000d3a, 0xa956: 0xe0000d46, 0xa957: 0xf0001d1d, - 0xa958: 0xe0000eb0, 0xa959: 0xe0000eb8, 0xa95a: 0xf0001d1d, 0xa95b: 0xf0001c1c, - 0xa95c: 0xf0001c1d, 0xa95d: 0xf0001c1d, 0xa95e: 0xe00010b2, 0xa95f: 0xe00009c8, - 0xa960: 0xe0002d9d, 0xa961: 0xe0002e0a, 0xa962: 0xe0002e3f, 0xa963: 0xe0002e6c, - 0xa964: 0xe0002e7e, 0xa965: 0xe0002e8d, 0xa966: 0xe0002e9c, 0xa967: 0xe0002eab, - 0xa968: 0xe0002eba, 0xa969: 0xe0002d02, 0xa96a: 0xe0002d15, 0xa96b: 0xe0002d28, - 0xa96c: 0xe0002d3b, 0xa96d: 0xe0002d4a, 0xa96e: 0xe0002d59, 0xa96f: 0xe0002d68, - 0xa970: 0xe0002d77, 0xa971: 0xe0002d86, 0xa972: 0xe0002d95, 0xa973: 0xe0002db3, - 0xa974: 0xe0002dbe, 0xa975: 0xe0002dc9, 0xa976: 0xe0002dd4, 0xa977: 0xe0002ddf, - 0xa978: 0xe0002dea, 0xa979: 0xe0002df1, 0xa97a: 0xe0002df8, 0xa97b: 0xe0002dff, - 0xa97c: 0xe0002e06, 0xa97d: 0xe0002e1c, 0xa97e: 0xe0002e23, 0xa97f: 0xe0000bdf, - // Block 0x2a6, offset 0xa980 - 0xa980: 0x6c009820, 0xa981: 0x6c0ea820, 0xa983: 0x6c08fe20, - 0xa987: 0x6c148c20, - 0xa988: 0x6c0ad420, 0xa989: 0x6c083420, 0xa98a: 0x6c0ad220, 0xa98b: 0x6c01b020, - 0xa98d: 0x6c12c420, 0xa98e: 0x6c158a20, - 0xa990: 0x6c172e20, 0xa991: 0x6c00da20, - 0xa994: 0x6c02d020, 0xa995: 0x6c173020, 0xa996: 0x6c0bc820, 0xa997: 0x6c18e620, - 0xa998: 0x6c041820, 0xa999: 0x6c134c20, - 0xa99e: 0x6c0ad620, - 0xa9a1: 0x6c164420, - 0xa9a6: 0x6c135c20, - 0xa9aa: 0x6c173220, - 0xa9ad: 0x6c0e8020, - 0xa9b1: 0x6c173420, 0xa9b2: 0x6c051c20, - 0xa9b6: 0x6c173620, - 0xa9b8: 0x6c036a20, 0xa9b9: 0x6c0e1420, 0xa9bb: 0x6c095e20, - 0xa9bc: 0x6c173820, 0xa9bf: 0x6c173a20, - // Block 0x2a7, offset 0xa9c0 - 0xa9c2: 0x6c173c20, 0xa9c3: 0x6c110e20, - 0xa9c5: 0x6c041a20, - 0xa9cb: 0x6c111220, - 0xa9cd: 0x6c10ae20, 0xa9ce: 0x6c062620, 0xa9cf: 0x6c13fa20, - 0xa9d5: 0x6c29d820, 0xa9d6: 0x6c173e20, 0xa9d7: 0x6c0ad820, - 0xa9d8: 0x6c174020, 0xa9d9: 0x6c01a220, - 0xa9dd: 0x6c04f220, 0xa9de: 0x6c068020, 0xa9df: 0x6c152220, - 0xa9e2: 0x6c1b9e20, - 0xa9f1: 0x6c15ec20, 0xa9f3: 0x6c10e220, - 0xa9fe: 0x6c02fa20, - // Block 0x2a8, offset 0xaa00 - 0xaa00: 0x6c03d620, 0xaa02: 0x6c174220, - 0xaa05: 0x6c174420, 0xaa06: 0x6c163e20, - 0xaa08: 0x6c158620, 0xaa09: 0x6c0d0c20, 0xaa0a: 0x6c174820, 0xaa0b: 0x6c08c020, - 0xaa0c: 0x6c10ce20, 0xaa0e: 0x6c174e20, - 0xaa11: 0x6c00f820, 0xaa12: 0x6c065e20, - 0xaa14: 0x6c065c20, 0xaa15: 0x6c008c20, - 0xaa18: 0x6c171a20, 0xaa19: 0x6c171820, 0xaa1b: 0x6c077e20, - 0xaa1c: 0x6c000220, 0xaa1e: 0x6c175020, 0xaa1f: 0x6c175220, - 0xaa20: 0x6c175420, 0xaa21: 0x6c13fc20, 0xaa22: 0x6c175620, - 0xaa24: 0x6c068420, 0xaa25: 0x6c008e20, 0xaa26: 0x6c147820, - 0xaa28: 0x6c046420, 0xaa2b: 0x6c046620, - 0xaa2c: 0x6c046820, 0xaa2d: 0x6c0f3420, 0xaa2e: 0x6c164020, - 0xaa30: 0x6c175820, 0xaa33: 0x6c175a20, - 0xaa36: 0x6c175c20, - 0xaa3a: 0x6c0b5e20, - // Block 0x2a9, offset 0xaa40 - 0xaa40: 0x6c09c020, 0xaa41: 0x6c0b6020, 0xaa42: 0x6c176620, - 0xaa44: 0x6c176220, 0xaa46: 0x6c176420, 0xaa47: 0x6c041c20, - 0xaa4a: 0x6c075e20, 0xaa4b: 0x6c021820, - 0xaa4d: 0x6c176020, 0xaa4e: 0x6c175e20, 0xaa4f: 0x6c132a20, - 0xaa54: 0x6c086020, 0xaa55: 0x6c085e20, 0xaa56: 0x6c0d7420, 0xaa57: 0x6c176820, - 0xaa58: 0x6c12c620, 0xaa59: 0x6c0c4e20, - 0xaa5e: 0x6c176a20, 0xaa5f: 0x6c176e20, - 0xaa63: 0x6c0dc220, - 0xaa64: 0x6c168a20, 0xaa65: 0x6c005420, - 0xaa6d: 0x6c176c20, 0xaa6e: 0x6c01b420, - 0xaa70: 0x6c04b020, 0xaa72: 0x6c0e8220, - 0xaa76: 0x6c05c220, 0xaa77: 0x6c177020, - 0xaa7b: 0x6c10ec20, - // Block 0x2aa, offset 0xaa80 - 0xaa81: 0x6c038620, - 0xaa89: 0x6c177220, 0xaa8a: 0x6c005620, - 0xaa8d: 0x6c066020, 0xaa8e: 0x6c038820, 0xaa8f: 0x6c131020, - 0xaa90: 0x6c11c420, 0xaa91: 0x6c041e20, - 0xaa9a: 0x6c021a20, - 0xaa9c: 0x6c17b820, 0xaa9d: 0x6c0fae20, - 0xaaaf: 0x6c117c20, - 0xaab0: 0x6c177620, - 0xaab4: 0x6c11d820, 0xaab6: 0x6c168c20, - 0xaab8: 0x6c0b1e20, 0xaaba: 0x6c086220, - 0xaabc: 0x6c08c220, 0xaabd: 0x6c01b820, - // Block 0x2ab, offset 0xaac0 - 0xaac3: 0x6c0f1220, - 0xaac6: 0x6c0df820, 0xaac7: 0x6c177e20, - 0xaacd: 0x6c005820, 0xaace: 0x6c0f3620, 0xaacf: 0x6c09c220, - 0xaad0: 0x6c078020, 0xaad1: 0x6c155420, 0xaad3: 0x6c0d9420, - 0xaad5: 0x6c01b620, 0xaad7: 0x6c177c20, - 0xaad9: 0x6c158820, 0xaada: 0x6c177420, 0xaadb: 0x6c177820, - 0xaadc: 0x6c07f420, 0xaadd: 0x6c177a20, 0xaade: 0x6c1ade20, - 0xaae9: 0x6c178a20, - 0xaaef: 0x6c179020, - 0xaaf0: 0x6c178c20, 0xaaf3: 0x6c01bc20, - 0xaaf5: 0x6c134e20, 0xaaf6: 0x6c178020, - 0xaafb: 0x6c178820, - 0xaafc: 0x6c068620, 0xaaff: 0x6c086420, - // Block 0x2ac, offset 0xab00 - 0xab03: 0x6c02fc20, - 0xab06: 0x6c179220, - 0xab08: 0x6c178220, 0xab0b: 0x6c168e20, - 0xab0d: 0x6c08c420, 0xab0f: 0x6c178420, - 0xab11: 0x6c178e20, - 0xab16: 0x6c179420, - 0xab18: 0x6c178620, 0xab1b: 0x6c046a20, - 0xab1d: 0x6c005a20, - 0xab20: 0x6c046c20, 0xab21: 0x6c01ba20, - 0xab2b: 0x6c1ae020, - 0xab2d: 0x6c148620, 0xab2e: 0x6c12f820, 0xab2f: 0x6c068820, - 0xab35: 0x6c0b2220, 0xab36: 0x6c163620, - 0xab3f: 0x6c138820, - // Block 0x2ad, offset 0xab40 - 0xab42: 0x6c055420, 0xab43: 0x6c0d4220, - 0xab44: 0x6c020020, - 0xab4a: 0x6c09f220, - 0xab4e: 0x6c179c20, - 0xab50: 0x6c17a620, 0xab51: 0x6c17a220, - 0xab54: 0x6c179820, 0xab57: 0x6c0d5620, - 0xab58: 0x6c179e20, 0xab5a: 0x6c17a420, 0xab5b: 0x6c17a020, - 0xab5d: 0x6c139220, 0xab5f: 0x6c179a20, - 0xab61: 0x6c0b2020, 0xab63: 0x6c147a20, - 0xab64: 0x6c17a820, 0xab65: 0x6c17aa20, - 0xab6e: 0x6c099420, 0xab6f: 0x6c17c420, - 0xab73: 0x6c114420, - 0xab75: 0x6c128820, 0xab76: 0x6c17ba20, - 0xab78: 0x6c13b820, 0xab7a: 0x6c01a420, - 0xab7e: 0x6c17c220, - // Block 0x2ae, offset 0xab80 - 0xab85: 0x6c17b620, 0xab86: 0x6c17c820, - 0xab89: 0x6c0ce020, 0xab8b: 0x6c062820, - 0xab8d: 0x6c115c20, 0xab8f: 0x6c233820, - 0xab91: 0x6c17c620, 0xab92: 0x6c0fe620, - 0xab94: 0x6c17b020, 0xab96: 0x6c068c20, - 0xab99: 0x6c068a20, 0xab9a: 0x6c17ac20, - 0xab9f: 0x6c094420, - 0xaba1: 0x6c17bc20, 0xaba3: 0x6c13b620, - 0xaba4: 0x6c0e4e20, 0xaba5: 0x6c17b420, 0xaba6: 0x6c05c620, - 0xaba8: 0x6c17ae20, 0xaba9: 0x6c17be20, 0xabaa: 0x6c17b220, 0xabab: 0x6c166a20, - 0xabac: 0x6c17c020, 0xabad: 0x6c170620, - 0xabb6: 0x6c04f420, - 0xabb9: 0x6c05c420, - // Block 0x2af, offset 0xabc0 - 0xabc3: 0x6c17ca20, - 0xabc7: 0x6c17cc20, - 0xabc8: 0x6c17d420, 0xabc9: 0x6c005c20, - 0xabcf: 0x6c137820, - 0xabd0: 0x6c17d220, - 0xabd5: 0x6c17d020, 0xabd6: 0x6c17d820, - 0xabda: 0x6c17d620, - 0xabdc: 0x6c0f3820, - 0xabe5: 0x6c05c820, - 0xabec: 0x6c17da20, - 0xabf2: 0x6c091a20, - 0xabf4: 0x6c0d4420, 0xabf5: 0x6c0f3a20, 0xabf6: 0x6c051420, - 0xabf8: 0x6c17dc20, - 0xabfd: 0x6c03d820, - // Block 0x2b0, offset 0xac00 - 0xac00: 0x6c17de20, - 0xac05: 0x6c17e220, - 0xac0d: 0x6c13fe20, - 0xac11: 0x6c05b020, - 0xac18: 0x6c083620, 0xac19: 0x6c124e20, 0xac1a: 0x6c17e020, - 0xac2c: 0x6c07a220, 0xac2d: 0x6c159220, - 0xac32: 0x6c17e620, 0xac33: 0x6c17ec20, - 0xac34: 0x6c17e420, 0xac35: 0x6c07a020, 0xac37: 0x6c0a4620, - 0xac3e: 0x6c055620, - // Block 0x2b1, offset 0xac40 - 0xac42: 0x6c17ee20, - 0xac45: 0x6c04c620, - 0xac49: 0x6c17e820, 0xac4a: 0x6c17ea20, - 0xac4d: 0x6c104620, 0xac4f: 0x6c0d3420, - 0xac51: 0x6c046e20, - 0xac55: 0x6c142e20, 0xac56: 0x6c17f020, - 0xac5a: 0x6c164220, - 0xac5e: 0x6c17f220, - 0xac63: 0x6c17f820, - 0xac65: 0x6c17f420, 0xac67: 0x6c0cd820, - 0xac6d: 0x6c17f620, 0xac6e: 0x6c17fa20, - 0xac75: 0x6c17fe20, - 0xac79: 0x6c17fc20, 0xac7b: 0x6c136820, - // Block 0x2b2, offset 0xac80 - 0xac80: 0x6c03da20, 0xac81: 0x6c180220, 0xac82: 0x6c180420, - 0xac84: 0x6c019620, - 0xac89: 0x6c180020, - 0xac92: 0x6c097820, - 0xac94: 0x6c180a20, 0xac95: 0x6c180820, 0xac96: 0x6c180620, - 0xac98: 0x6c179620, 0xac9a: 0x6c180c20, - 0xac9f: 0x6c0a4820, - 0xaca1: 0x6c180e20, - 0xacaa: 0x6c155620, - 0xacb2: 0x6c150220, - 0xacb7: 0x6c181220, - 0xacba: 0x6c181020, 0xacbb: 0x6c181620, - 0xacbc: 0x6c181420, 0xacbf: 0x6c181820, - // Block 0x2b3, offset 0xacc0 - 0xacc0: 0x6c181a20, 0xacc1: 0x6c00a820, 0xacc3: 0x6c060a20, - 0xacc4: 0x6c055a20, 0xacc5: 0x6c09c420, 0xacc6: 0x6c0eaa20, 0xacc7: 0x6c047020, - 0xacc8: 0x6c0c5020, 0xacc9: 0x6c068e20, 0xaccb: 0x6c073820, - 0xaccc: 0x6c181e20, 0xaccd: 0x6c14e020, 0xacce: 0x6c0fb820, - 0xacd0: 0x6c08c620, 0xacd2: 0x6c181c20, - 0xacd4: 0x6c182020, - 0xacda: 0x6c0fe820, - 0xacdc: 0x6c02de20, - 0xace2: 0x6c182220, - 0xace5: 0x6c10e420, - 0xace8: 0x6c0ca420, 0xace9: 0x6c182620, 0xacea: 0x6c182820, 0xaceb: 0x6c11b820, - 0xacec: 0x6c069020, 0xaced: 0x6c16fa20, 0xacee: 0x6c182a20, - 0xacf1: 0x6c047420, - 0xacf5: 0x6c135020, 0xacf6: 0x6c0d6420, 0xacf7: 0x6c050a20, - 0xacf8: 0x6c0f9620, - 0xacfc: 0x6c05ca20, - // Block 0x2b4, offset 0xad00 - 0xad00: 0x6c182c20, 0xad02: 0x6c182e20, - 0xad05: 0x6c10ac20, 0xad06: 0x6c013a20, - 0xad09: 0x6c183420, 0xad0a: 0x6c081220, - 0xad0c: 0x6c183220, 0xad0d: 0x6c07a420, 0xad0f: 0x6c183620, - 0xad10: 0x6c27ee20, 0xad11: 0x6c183820, 0xad12: 0x6c141620, 0xad13: 0x6c183a20, - 0xad15: 0x6c183c20, 0xad16: 0x6c183e20, 0xad17: 0x6c0ada20, - 0xad19: 0x6c092820, - 0xad20: 0x6c02fe20, 0xad22: 0x6c184420, - 0xad24: 0x6c184020, 0xad25: 0x6c14ca20, 0xad26: 0x6c184220, - 0xad28: 0x6c12d020, 0xad29: 0x6c184620, 0xad2a: 0x6c184820, 0xad2b: 0x6c184a20, - 0xad2c: 0x6c0fea20, - 0xad30: 0x6c185220, 0xad31: 0x6c184e20, 0xad32: 0x6c185020, 0xad33: 0x6c184c20, - 0xad34: 0x6c07de20, 0xad35: 0x6c185420, 0xad36: 0x6c152420, 0xad37: 0x6c169020, - 0xad3d: 0x6c185620, - // Block 0x2b5, offset 0xad40 - 0xad44: 0x6c0bd020, 0xad45: 0x6c185820, 0xad46: 0x6c0a0020, - 0xad49: 0x6c185a20, 0xad4b: 0x6c0eac20, - 0xad4c: 0x6c164620, 0xad4d: 0x6c0fec20, - 0xad56: 0x6c18ec20, - 0xad5b: 0x6c185c20, - 0xad5c: 0x6c31a420, 0xad5d: 0x6c04b220, - 0xad60: 0x6c185e20, 0xad61: 0x6c145020, - 0xad66: 0x6c0a1c20, 0xad67: 0x6c0df020, - 0xad69: 0x6c186220, 0xad6a: 0x6c10b020, - 0xad6d: 0x6c186420, - 0xad70: 0x6c186620, 0xad71: 0x6c025020, - 0xad75: 0x6c186820, 0xad76: 0x6c047620, - 0xad78: 0x6c108020, 0xad79: 0x6c017020, 0xad7a: 0x6c09ec20, - 0xad7d: 0x6c11a220, 0xad7e: 0x6c186a20, - // Block 0x2b6, offset 0xad80 - 0xad80: 0x6c0fee20, 0xad83: 0x6c0b6220, - 0xad84: 0x6c186c20, 0xad86: 0x6c133020, 0xad87: 0x6c0c3420, - 0xad88: 0x6c02f420, 0xad8a: 0x6c030220, 0xad8b: 0x6c186e20, - 0xad8e: 0x6c187220, - 0xad91: 0x6c055820, - 0xad94: 0x6c187020, 0xad97: 0x6c16ae20, - 0xad9d: 0x6c0a1e20, - 0xada4: 0x6c11da20, 0xada5: 0x6c137020, 0xada7: 0x6c187420, - 0xada9: 0x6c15fc20, 0xadaa: 0x6c187620, - 0xadae: 0x6c187820, - 0xadb0: 0x6c102820, 0xadb3: 0x6c187a20, - 0xadb6: 0x6c0bd220, 0xadb7: 0x6c081420, - 0xadb8: 0x6c05cc20, 0xadb9: 0x6c187c20, 0xadba: 0x6c086620, 0xadbb: 0x6c073a20, - // Block 0x2b7, offset 0xadc0 - 0xadc3: 0x6c0f3c20, - 0xadc4: 0x6c188020, 0xadc7: 0x6c0d4620, - 0xadca: 0x6c07f620, 0xadcb: 0x6c188220, - 0xadcc: 0x6c188420, 0xadcd: 0x6c0c9c20, 0xadcf: 0x6c187e20, - 0xadd4: 0x6c188820, 0xadd6: 0x6c140020, - 0xaddb: 0x6c072420, - 0xadde: 0x6c188620, - 0xade3: 0x6c05ce20, - 0xade4: 0x6c07d420, 0xade5: 0x6c117e20, - 0xade9: 0x6c188e20, 0xadea: 0x6c188a20, - 0xadef: 0x6c131220, - 0xadf0: 0x6c0adc20, 0xadf1: 0x6c189c20, 0xadf2: 0x6c02bc20, 0xadf3: 0x6c189020, - 0xadf4: 0x6c188c20, 0xadf5: 0x6c0cda20, - 0xadfd: 0x6c189420, 0xadff: 0x6c189220, - // Block 0x2b8, offset 0xae00 - 0xae03: 0x6c027c20, - 0xae07: 0x6c05a420, - 0xae08: 0x6c189e20, 0xae09: 0x6c162220, - 0xae0d: 0x6c189620, - 0xae11: 0x6c18a020, 0xae12: 0x6c189a20, - 0xae14: 0x6c189820, - 0xae1b: 0x6c166620, - 0xae1f: 0x6c069220, - 0xae20: 0x6c01be20, 0xae23: 0x6c16b020, - 0xae29: 0x6c0a3620, 0xae2a: 0x6c0fdc20, 0xae2b: 0x6c072620, - 0xae2c: 0x6c18a620, 0xae2d: 0x6c18a820, - 0xae31: 0x6c169220, - 0xae34: 0x6c16da20, 0xae35: 0x6c18ac20, - 0xae39: 0x6c069420, - 0xae3c: 0x6c18aa20, 0xae3e: 0x6c025220, - // Block 0x2b9, offset 0xae40 - 0xae41: 0x6c18ae20, 0xae43: 0x6c144020, - 0xae45: 0x6c0ee820, 0xae47: 0x6c155820, - 0xae49: 0x6c138a20, - 0xae4d: 0x6c18b020, - 0xae52: 0x6c2f1420, - 0xae55: 0x6c104820, 0xae57: 0x6c18b220, - 0xae58: 0x6c030420, 0xae59: 0x6c14b620, - 0xae5d: 0x6c0a4a20, 0xae5e: 0x6c18b420, 0xae5f: 0x6c13a620, - 0xae60: 0x6c18bc20, 0xae62: 0x6c0bd420, 0xae63: 0x6c18b620, - 0xae64: 0x6c04c820, 0xae66: 0x6c18b820, 0xae67: 0x6c030620, - 0xae72: 0x6c054020, 0xae73: 0x6c18be20, - 0xae75: 0x6c18c020, - 0xae78: 0x6c18c220, 0xae79: 0x6c18c420, 0xae7a: 0x6c094620, - 0xae7e: 0x6c069620, 0xae7f: 0x6c150c20, - // Block 0x2ba, offset 0xae80 - 0xae81: 0x6c152020, 0xae82: 0x6c10d620, - 0xae85: 0x6c13ba20, 0xae86: 0x6c18c620, - 0xae88: 0x6c18c820, - 0xae8d: 0x6c18cc20, 0xae8f: 0x6c18d020, - 0xae90: 0x6c18ce20, - 0xae95: 0x6c18d220, 0xae96: 0x6c01b220, 0xae97: 0x6c142c20, - 0xae99: 0x6c081020, 0xae9a: 0x6c18d420, - 0xae9d: 0x6c0cee20, - 0xaea0: 0x6c0a4c20, 0xaea1: 0x6c047a20, 0xaea3: 0x6c18d620, - 0xaeaa: 0x6c121620, - 0xaeaf: 0x6c18d820, - 0xaeb1: 0x6c18da20, 0xaeb3: 0x6c18dc20, - 0xaeb8: 0x6c18de20, 0xaeb9: 0x6c126420, 0xaeba: 0x6c04f820, 0xaebb: 0x6c008a20, - 0xaebf: 0x6c106620, - // Block 0x2bb, offset 0xaec0 - 0xaec0: 0x6c18e020, 0xaec1: 0x6c09c620, 0xaec3: 0x6c0c5220, - 0xaec5: 0x6c18e420, 0xaec6: 0x6c18e220, 0xaec7: 0x6c0a4e20, - 0xaec8: 0x6c066220, 0xaec9: 0x6c18e820, 0xaeca: 0x6c11dc20, - 0xaecd: 0x6c18ea20, - 0xaed1: 0x6c121820, 0xaed2: 0x6c0d6020, 0xaed3: 0x6c0dd420, - 0xaed4: 0x6c047820, 0xaed7: 0x6c10c420, - 0xaed8: 0x6c0e1620, 0xaeda: 0x6c118020, - 0xaedc: 0x6c143020, 0xaede: 0x6c18ee20, - 0xaee0: 0x6c0c5420, - 0xaee6: 0x6c054e20, - 0xaee9: 0x6c18f020, - 0xaeee: 0x6c18f220, 0xaeef: 0x6c00d420, - 0xaef0: 0x6c00aa20, 0xaef1: 0x6c038a20, 0xaef3: 0x6c0d4820, - 0xaef4: 0x6c040e20, 0xaef5: 0x6c15ee20, 0xaef7: 0x6c18f820, - 0xaef8: 0x6c01a620, 0xaefb: 0x6c18f620, - 0xaeff: 0x6c047c20, - // Block 0x2bc, offset 0xaf00 - 0xaf02: 0x6c18fa20, - 0xaf04: 0x6c153220, - 0xaf16: 0x6c18fc20, - 0xaf18: 0x6c166c20, 0xaf1a: 0x6c069820, - 0xaf1f: 0x6c060c20, - 0xaf20: 0x6c18fe20, - 0xaf25: 0x6c190220, 0xaf26: 0x6c190020, - 0xaf28: 0x6c0b8220, 0xaf29: 0x6c00ee20, - 0xaf2d: 0x6c013820, 0xaf2e: 0x6c190420, - 0xaf30: 0x6c190620, 0xaf33: 0x6c060e20, - 0xaf36: 0x6c190820, - 0xaf3b: 0x6c044820, - // Block 0x2bd, offset 0xaf40 - 0xaf42: 0x6c083820, 0xaf43: 0x6c190a20, - 0xaf48: 0x6c147c20, 0xaf49: 0x6c078220, 0xaf4a: 0x6c042020, 0xaf4b: 0x6c155a20, - 0xaf4c: 0x6c0cdc20, 0xaf4d: 0x6c11de20, 0xaf4e: 0x6c098a20, - 0xaf54: 0x6c09da20, 0xaf56: 0x6c096020, 0xaf57: 0x6c097a20, - 0xaf59: 0x6c0a3820, 0xaf5b: 0x6c11e020, - 0xaf5f: 0x6c191020, - 0xaf61: 0x6c010220, 0xaf62: 0x6c0cde20, 0xaf63: 0x6c069a20, - 0xaf64: 0x6c062a20, 0xaf65: 0x6c04f620, - 0xaf68: 0x6c191820, 0xaf69: 0x6c0df620, 0xaf6a: 0x6c0df420, 0xaf6b: 0x6c047e20, - 0xaf6c: 0x6c0a5020, 0xaf6d: 0x6c191a20, 0xaf6e: 0x6c191620, 0xaf6f: 0x6c01c020, - 0xaf70: 0x6c0dc420, 0xaf71: 0x6c090020, 0xaf72: 0x6c086a20, 0xaf73: 0x6c00c820, - 0xaf76: 0x6c02d420, 0xaf77: 0x6c072820, - 0xaf78: 0x6c086820, 0xaf7a: 0x6c191c20, - // Block 0x2be, offset 0xaf80 - 0xaf81: 0x6c191e20, 0xaf83: 0x6c03fe20, - 0xaf84: 0x6c028020, - 0xaf88: 0x6c072a20, 0xaf89: 0x6c03fc20, 0xaf8a: 0x6c0f2e20, 0xaf8b: 0x6c00c620, - 0xaf8c: 0x6c104a20, 0xaf8d: 0x6c14cc20, 0xaf8e: 0x6c069e20, 0xaf8f: 0x6c15fe20, - 0xaf90: 0x6c0fba20, 0xaf91: 0x6c069c20, - 0xaf9b: 0x6c054220, - 0xaf9d: 0x6c193020, 0xaf9f: 0x6c04ee20, - 0xafa0: 0x6c142820, - 0xafa6: 0x6c121a20, - 0xafa9: 0x6c192e20, 0xafab: 0x6c036c20, - 0xafac: 0x6c192420, 0xafad: 0x6c192620, 0xafae: 0x6c192a20, - 0xafb6: 0x6c192c20, - 0xafb8: 0x6c042220, 0xafb9: 0x6c0b8620, 0xafbb: 0x6c133220, - 0xafbc: 0x6c192820, 0xafbd: 0x6c192020, 0xafbe: 0x6c066620, - // Block 0x2bf, offset 0xafc0 - 0xafc0: 0x6c192220, 0xafc2: 0x6c16cc20, - 0xafc6: 0x6c13bc20, - 0xafc8: 0x6c0f4020, 0xafc9: 0x6c066420, 0xafca: 0x6c073c20, - 0xafce: 0x6c193220, - 0xafd1: 0x6c10a220, - 0xafdf: 0x6c193a20, - 0xafe8: 0x6c098c20, 0xafea: 0x6c097c20, - 0xaff0: 0x6c194020, 0xaff1: 0x6c193c20, 0xaff3: 0x6c149620, - 0xaff5: 0x6c193620, 0xaff6: 0x6c194820, 0xaff7: 0x6c193e20, - 0xaffb: 0x6c194420, - 0xaffc: 0x6c062c20, 0xaffd: 0x6c14ce20, - // Block 0x2c0, offset 0xb000 - 0xb000: 0x6c194620, - 0xb004: 0x6c194a20, 0xb006: 0x6c194e20, - 0xb00b: 0x6c07f820, - 0xb00c: 0x6c170820, 0xb00e: 0x6c193820, 0xb00f: 0x6c193420, - 0xb010: 0x6c194c20, 0xb012: 0x6c194220, - 0xb022: 0x6c195220, - 0xb024: 0x6c196420, 0xb025: 0x6c195620, - 0xb028: 0x6c195e20, 0xb02b: 0x6c196020, - 0xb02c: 0x6c195820, 0xb02f: 0x6c199a20, - 0xb032: 0x6c07ea20, 0xb033: 0x6c025620, - 0xb038: 0x6c195420, - 0xb03c: 0x6c196820, 0xb03d: 0x6c00ac20, 0xb03e: 0x6c196620, - // Block 0x2c1, offset 0xb040 - 0xb040: 0x6c000a20, 0xb041: 0x6c12b020, 0xb042: 0x6c196220, - 0xb044: 0x6c195a20, 0xb047: 0x6c195020, - 0xb048: 0x6c195c20, 0xb049: 0x6c07a820, - 0xb058: 0x6c196a20, - 0xb061: 0x6c00ae20, 0xb062: 0x6c197c20, - 0xb065: 0x6c196c20, 0xb066: 0x6c196e20, - 0xb068: 0x6c0a5220, 0xb069: 0x6c146620, - 0xb06d: 0x6c197820, 0xb06e: 0x6c197620, - 0xb072: 0x6c0f8a20, - 0xb07a: 0x6c197a20, - 0xb07d: 0x6c197420, - // Block 0x2c2, offset 0xb080 - 0xb084: 0x6c00e420, 0xb086: 0x6c078420, 0xb087: 0x6c0b2420, - 0xb08f: 0x6c197020, - 0xb090: 0x6c0ff020, - 0xb094: 0x6c197220, 0xb096: 0x6c000420, - 0xb0ae: 0x6c198620, 0xb0af: 0x6c155220, - 0xb0b1: 0x6c0a5620, 0xb0b3: 0x6c199220, - 0xb0b8: 0x6c199020, 0xb0b9: 0x6c197e20, - 0xb0be: 0x6c0d7e20, - // Block 0x2c3, offset 0xb0c0 - 0xb0c0: 0x6c198020, - 0xb0c4: 0x6c0dd620, 0xb0c5: 0x6c198a20, 0xb0c6: 0x6c0a5420, - 0xb0cc: 0x6c198420, 0xb0cf: 0x6c151820, - 0xb0d3: 0x6c055c20, - 0xb0d6: 0x6c198c20, 0xb0d7: 0x6c198e20, - 0xb0dc: 0x6c198820, 0xb0dd: 0x6c199420, - 0xb0e3: 0x6c198220, - 0xb0fb: 0x6c19a020, - 0xb0fc: 0x6c19aa20, 0xb0fe: 0x6c19a220, - // Block 0x2c4, offset 0xb100 - 0xb100: 0x6c199820, 0xb103: 0x6c19ac20, - 0xb104: 0x6c0c9e20, 0xb107: 0x6c19b020, - 0xb109: 0x6c06a020, 0xb10a: 0x6c199c20, 0xb10b: 0x6c0eae20, - 0xb118: 0x6c19a420, 0xb119: 0x6c199620, 0xb11a: 0x6c030a20, - 0xb11c: 0x6c038c20, 0xb11d: 0x6c02be20, 0xb11e: 0x6c19a620, 0xb11f: 0x6c199e20, - 0xb127: 0x6c05d020, - 0xb128: 0x6c19b220, 0xb129: 0x6c19ae20, 0xb12a: 0x6c0ce220, 0xb12b: 0x6c040020, - 0xb12c: 0x6c048020, 0xb12e: 0x6c19a820, - 0xb130: 0x6c051020, - 0xb136: 0x6c010420, - // Block 0x2c5, offset 0xb140 - 0xb144: 0x6c19ba20, 0xb145: 0x6c19b620, 0xb147: 0x6c1a2820, - 0xb154: 0x6c19c020, - 0xb15a: 0x6c19b420, - 0xb15c: 0x6c19bc20, 0xb15f: 0x6c19b820, - 0xb163: 0x6c086c20, - 0xb164: 0x6c19be20, - 0xb177: 0x6c19c420, - 0xb179: 0x6c19ce20, - 0xb17d: 0x6c19ca20, 0xb17e: 0x6c19c820, - // Block 0x2c6, offset 0xb180 - 0xb186: 0x6c0e1820, - 0xb189: 0x6c01c220, - 0xb194: 0x6c19c220, 0xb196: 0x6c19c620, 0xb197: 0x6c0a5820, - 0xb198: 0x6c00e220, 0xb19b: 0x6c19cc20, - 0xb1a9: 0x6c01f420, - 0xb1af: 0x6c19e220, - 0xb1b1: 0x6c0b0020, 0xb1b2: 0x6c19da20, - 0xb1b4: 0x6c19d620, 0xb1b6: 0x6c19d820, - 0xb1b8: 0x6c19dc20, - // Block 0x2c7, offset 0xb1c0 - 0xb1c2: 0x6c00f620, - 0xb1cc: 0x6c0cae20, 0xb1ce: 0x6c19d020, - 0xb1d0: 0x6c19d220, - 0xb1db: 0x6c02e820, - 0xb1e4: 0x6c19e020, - 0xb1e8: 0x6c038e20, 0xb1ea: 0x6c19e620, 0xb1eb: 0x6c19de20, - 0xb1ec: 0x6c19e420, - 0xb1f4: 0x6c133420, - 0xb1f8: 0x6c109220, 0xb1fa: 0x6c11d020, - // Block 0x2c8, offset 0xb200 - 0xb200: 0x6c19ea20, - 0xb206: 0x6c19e820, 0xb207: 0x6c027e20, - 0xb20a: 0x6c19ec20, - 0xb20f: 0x6c19f220, - 0xb214: 0x6c19f020, - 0xb220: 0x6c19ee20, 0xb222: 0x6c111620, - 0xb225: 0x6c19f420, - 0xb22e: 0x6c19f620, - 0xb234: 0x6c19fa20, 0xb236: 0x6c19f820, - 0xb23c: 0x6c19fe20, - // Block 0x2c9, offset 0xb240 - 0xb240: 0x6c1a0420, 0xb241: 0x6c1a0020, 0xb242: 0x6c19fc20, 0xb243: 0x6c1a0220, - 0xb248: 0x6c1a0620, - 0xb24e: 0x6c1a0820, - 0xb251: 0x6c1a0a20, 0xb253: 0x6c1a0c20, - 0xb257: 0x6c1a0e20, - 0xb258: 0x6c183020, 0xb25a: 0x6c098820, 0xb25b: 0x6c086e20, - 0xb25e: 0x6c021e20, - 0xb260: 0x6c00b020, 0xb263: 0x6c0e3c20, - 0xb26e: 0x6c1a1020, - 0xb270: 0x6c076020, 0xb272: 0x6c005e20, 0xb273: 0x6c0b8020, - 0xb279: 0x6c1a1220, 0xb27a: 0x6c062e20, - 0xb27d: 0x6c073e20, 0xb27f: 0x6c1a1620, - // Block 0x2ca, offset 0xb280 - 0xb280: 0x6c1a1420, 0xb283: 0x6c139820, - 0xb284: 0x6c1a1820, - 0xb288: 0x6c1a1c20, 0xb289: 0x6c1a1a20, 0xb28b: 0x6c1a1e20, - 0xb28d: 0x6c1a2020, 0xb28f: 0x6c05d220, - 0xb292: 0x6c013c20, 0xb293: 0x6c1a2220, - 0xb296: 0x6c1a2620, - 0xb298: 0x6c1a2420, - 0xb29c: 0x6c1a2a20, 0xb29f: 0x6c0fe020, - 0xb2a6: 0x6c1a2c20, 0xb2a7: 0x6c002a20, - 0xb2a8: 0x6c07d620, - 0xb2ad: 0x6c055e20, - 0xb2b0: 0x6c0e5220, - 0xb2b7: 0x6c1a2e20, - 0xb2b8: 0x6c1a3020, 0xb2bb: 0x6c1a3420, - // Block 0x2cb, offset 0xb2c0 - 0xb2c0: 0x6c1a3620, 0xb2c2: 0x6c07e020, - 0xb2c7: 0x6c04ca20, - 0xb2ca: 0x6c140220, - 0xb2ce: 0x6c1a3220, 0xb2cf: 0x6c1a3820, - 0xb2d0: 0x6c079a20, 0xb2d1: 0x6c06a220, - 0xb2e1: 0x6c1a4020, - 0xb2e4: 0x6c076220, 0xb2e6: 0x6c0e1a20, - 0xb2e9: 0x6c1a3a20, 0xb2ea: 0x6c0f2420, - 0xb2ff: 0x6c1a4220, - // Block 0x2cc, offset 0xb300 - 0xb302: 0x6c0b8820, - 0xb308: 0x6c1a3e20, 0xb309: 0x6c1a4420, 0xb30b: 0x6c056220, - 0xb313: 0x6c1a4620, - 0xb320: 0x6c1a4820, 0xb322: 0x6c06a420, 0xb323: 0x6c027420, - 0xb324: 0x6c1a4c20, - 0xb32a: 0x6c1a4e20, - 0xb330: 0x6c1a5020, 0xb333: 0x6c1a4a20, - // Block 0x2cd, offset 0xb340 - 0xb340: 0x6c1a3c20, 0xb343: 0x6c1a5220, - 0xb346: 0x6c1a5420, - 0xb34b: 0x6c145c20, - 0xb34e: 0x6c0ade20, - 0xb352: 0x6c1a5820, 0xb353: 0x6c1a5a20, - 0xb354: 0x6c1a5620, 0xb356: 0x6c1a5e20, - 0xb35c: 0x6c111420, 0xb35f: 0x6c009020, - 0xb360: 0x6c12c820, 0xb363: 0x6c1a6020, - 0xb374: 0x6c0b0220, 0xb377: 0x6c090220, - 0xb379: 0x6c115e20, 0xb37a: 0x6c039020, - 0xb37c: 0x6c07ee20, - // Block 0x2ce, offset 0xb380 - 0xb380: 0x6c144620, 0xb382: 0x6c104c20, - 0xb385: 0x6c05d420, 0xb386: 0x6c0d9620, - 0xb38a: 0x6c1a5c20, 0xb38b: 0x6c1a6220, - 0xb395: 0x6c0d8020, - 0xb399: 0x6c1a6420, - 0xb39d: 0x6c1a6620, - 0xb3a1: 0x6c1a6a20, - 0xb3a4: 0x6c0f4220, - 0xb3aa: 0x6c030c20, - 0xb3af: 0x6c319c20, - 0xb3b0: 0x6c013e20, 0xb3b1: 0x6c13be20, - 0xb3b4: 0x6c0ae020, 0xb3b5: 0x6c0fbc20, - 0xb3ba: 0x6c07e420, - 0xb3bd: 0x6c1a7620, - // Block 0x2cf, offset 0xb3c0 - 0xb3c0: 0x6c135220, 0xb3c1: 0x6c168220, - 0xb3ca: 0x6c022020, 0xb3cb: 0x6c1a6e20, - 0xb3d1: 0x6c0cb020, 0xb3d2: 0x6c1a7420, - 0xb3d4: 0x6c0ff220, 0xb3d7: 0x6c0fbe20, - 0xb3d8: 0x6c0ff420, 0xb3d9: 0x6c11d220, 0xb3da: 0x6c0f0a20, - 0xb3de: 0x6c07aa20, - 0xb3e2: 0x6c1a6c20, - 0xb3e9: 0x6c016820, 0xb3eb: 0x6c0f9820, - 0xb3f0: 0x6c1a7020, 0xb3f2: 0x6c1a6820, - 0xb3f5: 0x6c0b6420, - 0xb3f9: 0x6c1a7820, - 0xb3fe: 0x6c09e820, - // Block 0x2d0, offset 0xb400 - 0xb403: 0x6c048220, - 0xb405: 0x6c1a7a20, - 0xb413: 0x6c13a820, - 0xb417: 0x6c0d3620, - 0xb41c: 0x6c0efc20, 0xb41f: 0x6c1a7e20, - 0xb428: 0x6c143220, 0xb42b: 0x6c1a8020, - 0xb42e: 0x6c1a8a20, - 0xb433: 0x6c133620, - 0xb438: 0x6c1a8820, 0xb439: 0x6c1a7c20, 0xb43a: 0x6c1a8220, 0xb43b: 0x6c1a8620, - 0xb43e: 0x6c076420, - // Block 0x2d1, offset 0xb440 - 0xb441: 0x6c136a20, - 0xb445: 0x6c1a8c20, 0xb447: 0x6c0e3e20, - 0xb44a: 0x6c022220, - 0xb44c: 0x6c0ae220, - 0xb451: 0x6c1a9020, 0xb453: 0x6c1a8e20, - 0xb455: 0x6c072c20, 0xb457: 0x6c1a9220, - 0xb458: 0x6c1a9620, 0xb459: 0x6c1a9420, - 0xb45c: 0x6c1a9a20, 0xb45e: 0x6c1a8420, 0xb45f: 0x6c1a9e20, - 0xb464: 0x6c1a9c20, 0xb465: 0x6c1a9820, - 0xb46b: 0x6c087020, - 0xb46c: 0x6c0b6620, 0xb46e: 0x6c0ce420, 0xb46f: 0x6c1aa020, - 0xb470: 0x6c0bf820, 0xb471: 0x6c009a20, 0xb472: 0x6c116c20, - 0xb477: 0x6c0f2620, - 0xb479: 0x6c1aa420, 0xb47a: 0x6c1aa220, 0xb47b: 0x6c1aa620, - 0xb47c: 0x6c1aa820, 0xb47d: 0x6c1aaa20, - // Block 0x2d2, offset 0xb480 - 0xb482: 0x6c1aac20, - 0xb489: 0x6c137a20, 0xb48a: 0x6c1aae20, - 0xb48f: 0x6c01c420, - 0xb490: 0x6c1ab020, - 0xb495: 0x6c158420, 0xb496: 0x6c025420, - 0xb498: 0x6c18f420, 0xb499: 0x6c09dc20, 0xb49a: 0x6c0d7620, 0xb49b: 0x6c1ab220, - 0xb49c: 0x6c152620, - 0xb4a2: 0x6c14b820, - 0xb4a5: 0x6c1ab620, 0xb4a7: 0x6c0dc620, - 0xb4a9: 0x6c0f9a20, 0xb4aa: 0x6c0d7820, 0xb4ab: 0x6c12ca20, - 0xb4ac: 0x6c1ab820, 0xb4ad: 0x6c1aba20, 0xb4ae: 0x6c017220, - 0xb4b1: 0x6c090420, 0xb4b2: 0x6c1abc20, - 0xb4b7: 0x6c006020, - 0xb4b8: 0x6c1abe20, - 0xb4be: 0x6c1ac020, - // Block 0x2d3, offset 0xb4c0 - 0xb4c4: 0x6c014020, 0xb4c7: 0x6c039220, - 0xb4c8: 0x6c10a820, 0xb4c9: 0x6c13c020, - 0xb4ce: 0x6c1ac820, 0xb4cf: 0x6c0ce620, - 0xb4d0: 0x6c1ac620, 0xb4d1: 0x6c056420, - 0xb4d4: 0x6c144a20, 0xb4d5: 0x6c1ac420, 0xb4d7: 0x6c0ff620, - 0xb4d8: 0x6c1acc20, 0xb4da: 0x6c1aca20, - 0xb4e0: 0x6c1ad020, 0xb4e2: 0x6c1ace20, - 0xb4e5: 0x6c017420, 0xb4e7: 0x6c1ad220, - 0xb4e8: 0x6c0a5a20, 0xb4e9: 0x6c1ad620, 0xb4ea: 0x6c0dfe20, - 0xb4ec: 0x6c1ad420, 0xb4ee: 0x6c133e20, - 0xb4f3: 0x6c0a3a20, - 0xb4f4: 0x6c0fe220, - 0xb4f8: 0x6c1ad820, - 0xb4fd: 0x6c06a620, - // Block 0x2d4, offset 0xb500 - 0xb501: 0x6c1ada20, 0xb502: 0x6c10e620, 0xb503: 0x6c121c20, - 0xb504: 0x6c14f220, - 0xb50a: 0x6c10ee20, - 0xb50d: 0x6c1aec20, - 0xb513: 0x6c03dc20, - 0xb516: 0x6c159620, - 0xb519: 0x6c14ae20, 0xb51b: 0x6c1baa20, - 0xb51d: 0x6c1adc20, - 0xb523: 0x6c1ae220, - 0xb525: 0x6c0d8220, - 0xb528: 0x6c140420, - 0xb52c: 0x6c0fc020, - 0xb532: 0x6c1ae420, - 0xb539: 0x6c145e20, 0xb53b: 0x6c07ac20, - 0xb53e: 0x6c0a5c20, - // Block 0x2d5, offset 0xb540 - 0xb546: 0x6c1ae620, - 0xb549: 0x6c087420, 0xb54b: 0x6c087220, - 0xb550: 0x6c003220, 0xb551: 0x6c063020, 0xb553: 0x6c0bd620, - 0xb554: 0x6c006220, - 0xb559: 0x6c1aee20, 0xb55a: 0x6c1af020, - 0xb55c: 0x6c1aea20, - 0xb565: 0x6c00ec20, 0xb566: 0x6c030e20, - 0xb568: 0x6c1ae820, 0xb56a: 0x6c14da20, 0xb56b: 0x6c127e20, - 0xb576: 0x6c001020, - 0xb57b: 0x6c00b220, - 0xb57f: 0x6c087620, - // Block 0x2d6, offset 0xb580 - 0xb581: 0x6c006420, 0xb583: 0x6c000620, - 0xb589: 0x6c1afa20, - 0xb591: 0x6c1af620, - 0xb598: 0x6c14c820, 0xb59a: 0x6c1afc20, - 0xb59c: 0x6c1af820, 0xb59f: 0x6c1af420, - 0xb5a0: 0x6c0b2620, - 0xb5a5: 0x6c1af220, - 0xb5a9: 0x6c138c20, - 0xb5af: 0x6c066820, - 0xb5b5: 0x6c1b0420, 0xb5b6: 0x6c1b0620, - 0xb5bc: 0x6c0a5e20, - // Block 0x2d7, offset 0xb5c0 - 0xb5c0: 0x6c1afe20, 0xb5c1: 0x6c16dc20, - 0xb5c6: 0x6c113c20, - 0xb5c9: 0x6c1b0220, - 0xb5da: 0x6c076620, - 0xb5e2: 0x6c1b0820, - 0xb5e6: 0x6c12cc20, - 0xb5ea: 0x6c1b0a20, - 0xb5ec: 0x6c1b0020, - 0xb5ff: 0x6c14c620, - // Block 0x2d8, offset 0xb600 - 0xb612: 0x6c116020, - 0xb61a: 0x6c1b0c20, 0xb61b: 0x6c128020, - 0xb63c: 0x6c1b0e20, 0xb63d: 0x6c1b1620, 0xb63e: 0x6c1b1020, - // Block 0x2d9, offset 0xb640 - 0xb641: 0x6c01c620, 0xb642: 0x6c1b1420, - 0xb649: 0x6c090620, 0xb64b: 0x6c1b1220, - 0xb64c: 0x6c05d620, - 0xb650: 0x6c1b2e20, - 0xb656: 0x6c1b2020, 0xb657: 0x6c1b1a20, - 0xb661: 0x6c0e7c20, 0xb663: 0x6c1b1820, - 0xb666: 0x6c1b1c20, - 0xb669: 0x6c1b1e20, - 0xb67a: 0x6c1b2220, 0xb67b: 0x6c1b2420, - // Block 0x2da, offset 0xb680 - 0xb689: 0x6c039420, 0xb68b: 0x6c1b2820, - 0xb68c: 0x6c1b2620, - 0xb696: 0x6c1b2a20, - 0xb6a2: 0x6c0ae420, - 0xb6aa: 0x6c1b3020, - 0xb6ac: 0x6c0f2820, - 0xb6b0: 0x6c010620, 0xb6b2: 0x6c1b2c20, - 0xb6b6: 0x6c1b3220, - 0xb6be: 0x6c1b3420, - // Block 0x2db, offset 0xb6c0 - 0xb6c0: 0x6c1b3a20, 0xb6c3: 0x6c1b3620, - 0xb6c5: 0x6c1b3820, - 0xb6d0: 0x6c087820, 0xb6d1: 0x6c1b3c20, - 0xb6d4: 0x6c06a820, 0xb6d5: 0x6c1b3e20, 0xb6d7: 0x6c08c820, - 0xb6d8: 0x6c0d6820, 0xb6da: 0x6c1b4020, 0xb6db: 0x6c1b4220, - 0xb6dc: 0x6c088820, 0xb6dd: 0x6c06aa20, 0xb6df: 0x6c14f420, - 0xb6e3: 0x6c03bc20, - 0xb6e4: 0x6c063220, 0xb6e5: 0x6c1b4420, 0xb6e6: 0x6c02a420, - 0xb6e9: 0x6c1b4620, 0xb6eb: 0x6c0d6a20, - 0xb6f0: 0x6c1b4820, 0xb6f1: 0x6c1b9820, 0xb6f3: 0x6c1b4a20, - 0xb6f5: 0x6c1b4c20, - 0xb6f8: 0x6c1b4e20, 0xb6fa: 0x6c1b5220, - // Block 0x2dc, offset 0xb700 - 0xb700: 0x6c1b5420, 0xb703: 0x6c1b5620, - 0xb705: 0x6c0dd820, 0xb707: 0x6c00ca20, - 0xb708: 0x6c096220, 0xb709: 0x6c004420, 0xb70b: 0x6c0cea20, - 0xb70c: 0x6c031020, 0xb70d: 0x6c08fa20, 0xb70f: 0x6c06ac20, - 0xb715: 0x6c0ff820, 0xb717: 0x6c098e20, - 0xb718: 0x6c031220, 0xb719: 0x6c0e8420, 0xb71a: 0x6c0f4420, 0xb71b: 0x6c003020, - 0xb71c: 0x6c03de20, 0xb71d: 0x6c13c220, 0xb71f: 0x6c091420, - 0xb722: 0x6c041020, 0xb723: 0x6c0c5620, - 0xb724: 0x6c090820, 0xb725: 0x6c155c20, 0xb726: 0x6c1b5820, - 0xb72e: 0x6c042420, - 0xb730: 0x6c07ae20, 0xb733: 0x6c025820, - 0xb734: 0x6c014220, 0xb735: 0x6c0a6020, 0xb736: 0x6c01c820, - 0xb738: 0x6c1b5a20, 0xb739: 0x6c159820, - 0xb73f: 0x6c09de20, - // Block 0x2dd, offset 0xb740 - 0xb742: 0x6c095820, 0xb743: 0x6c1b5c20, - 0xb744: 0x6c039620, 0xb745: 0x6c108c20, 0xb746: 0x6c14a220, 0xb747: 0x6c1b5e20, - 0xb749: 0x6c1b6020, - 0xb74c: 0x6c12ce20, - 0xb750: 0x6c1b6420, 0xb752: 0x6c030020, 0xb753: 0x6c051620, - 0xb754: 0x6c1b6220, - 0xb75b: 0x6c031420, - 0xb75d: 0x6c0b2820, 0xb75e: 0x6c1b6c20, 0xb75f: 0x6c081620, - 0xb761: 0x6c01ca20, 0xb762: 0x6c1b6a20, - 0xb764: 0x6c1b6620, 0xb765: 0x6c1b6e20, 0xb766: 0x6c1b6820, 0xb767: 0x6c10fa20, - 0xb768: 0x6c205420, 0xb769: 0x6c0b2a20, 0xb76b: 0x6c1b7020, - 0xb76e: 0x6c164820, - 0xb770: 0x6c1b7220, 0xb773: 0x6c1b7620, - 0xb775: 0x6c0eb020, 0xb776: 0x6c1b7420, - 0xb778: 0x6c0bc620, 0xb77a: 0x6c08ca20, - 0xb77e: 0x6c0d9820, 0xb77f: 0x6c097e20, - // Block 0x2de, offset 0xb780 - 0xb781: 0x6c130620, 0xb782: 0x6c0c5820, - 0xb784: 0x6c092a20, 0xb785: 0x6c1b7820, 0xb786: 0x6c0a6220, 0xb787: 0x6c1b7a20, - 0xb788: 0x6c1b7c20, 0xb789: 0x6c006620, 0xb78a: 0x6c0d6c20, 0xb78b: 0x6c0b6820, - 0xb78d: 0x6c1b7e20, 0xb78e: 0x6c104e20, 0xb78f: 0x6c0a6420, - 0xb791: 0x6c0a6620, 0xb793: 0x6c1b8020, - 0xb796: 0x6c0c5a20, - 0xb79a: 0x6c0a6820, - 0xb7a0: 0x6c1b8220, 0xb7a2: 0x6c1b8420, - 0xb7a4: 0x6c151020, - 0xb7a8: 0x6c1b8620, - 0xb7ad: 0x6c04b420, - 0xb7b1: 0x6c099020, - 0xb7b8: 0x6c1b8820, 0xb7b9: 0x6c1b8a20, 0xb7ba: 0x6c094820, 0xb7bb: 0x6c0b1c20, - 0xb7bc: 0x6c10d020, 0xb7bd: 0x6c0b6c20, 0xb7be: 0x6c125020, 0xb7bf: 0x6c10e820, - // Block 0x2df, offset 0xb7c0 - 0xb7c0: 0x6c04ba20, 0xb7c1: 0x6c1b8c20, - 0xb7c5: 0x6c044a20, 0xb7c6: 0x6c1b8e20, - 0xb7c8: 0x6c052420, 0xb7ca: 0x6c108620, 0xb7cb: 0x6c019820, - 0xb7cd: 0x6c087a20, 0xb7ce: 0x6c1b9020, 0xb7cf: 0x6c1b9620, - 0xb7d0: 0x6c1b9420, 0xb7d1: 0x6c052220, 0xb7d3: 0x6c1b9220, - 0xb7d5: 0x6c0f9c20, - 0xb7de: 0x6c0d5820, - 0xb7e0: 0x6c0fc220, 0xb7e1: 0x6c092020, - 0xb7e4: 0x6c0cec20, 0xb7e5: 0x6c160020, - 0xb7ec: 0x6c1b9a20, 0xb7ee: 0x6c1b9c20, 0xb7ef: 0x6c109420, - 0xb7f1: 0x6c083a20, - 0xb7f6: 0x6c1ba020, - 0xb7f9: 0x6c1ba220, - // Block 0x2e0, offset 0xb800 - 0xb80c: 0x6c1ba420, - 0xb810: 0x6c039820, 0xb811: 0x6c1ba620, - 0xb814: 0x6c1ba820, - 0xb821: 0x6c019020, - 0xb828: 0x6c0cb220, 0xb829: 0x6c037820, 0xb82b: 0x6c1bac20, - 0xb82c: 0x6c14a020, - 0xb831: 0x6c0d9c20, 0xb833: 0x6c02a620, - 0xb836: 0x6c1bb020, 0xb837: 0x6c1bb420, - 0xb838: 0x6c036e20, 0xb83b: 0x6c1bae20, - 0xb83c: 0x6c1bb220, 0xb83e: 0x6c1bb820, - // Block 0x2e1, offset 0xb840 - 0xb845: 0x6c1bb620, 0xb847: 0x6c1bba20, - 0xb859: 0x6c1bbc20, - 0xb860: 0x6c106220, 0xb861: 0x6c048420, - 0xb868: 0x6c020220, 0xb869: 0x6c1bbe20, 0xb86a: 0x6c1bc820, - 0xb86d: 0x6c1bc420, 0xb86f: 0x6c13c620, - 0xb870: 0x6c13c420, - 0xb876: 0x6c0ffa20, - 0xb87a: 0x6c1bc220, 0xb87b: 0x6c09f420, - 0xb87d: 0x6c1bc020, - // Block 0x2e2, offset 0xb880 - 0xb887: 0x6c0ba820, - 0xb88b: 0x6c1bca20, - 0xb88e: 0x6c07ec20, - 0xb891: 0x6c1bd620, - 0xb894: 0x6c1bd820, 0xb895: 0x6c1bcc20, 0xb896: 0x6c025a20, 0xb897: 0x6c1bce20, - 0xb898: 0x6c1be020, 0xb899: 0x6c1bde20, 0xb89a: 0x6c1bdc20, 0xb89b: 0x6c1bd420, - 0xb89f: 0x6c1bd220, - 0xb8a2: 0x6c1bda20, - 0xb8a9: 0x6c13c820, - // Block 0x2e3, offset 0xb8c0 - 0xb8cb: 0x6c1be820, - 0xb8cc: 0x6c1be220, 0xb8ce: 0x6c1be620, - 0xb8d0: 0x6c15f020, 0xb8d2: 0x6c1be420, - 0xb8dc: 0x6c1bd020, - 0xb8e9: 0x6c0baa20, - 0xb8ec: 0x6c1bea20, 0xb8ef: 0x6c078620, - 0xb8f3: 0x6c1bec20, - 0xb8f6: 0x6c1bee20, - // Block 0x2e4, offset 0xb900 - 0xb902: 0x6c1bf420, - 0xb904: 0x6c1bf220, 0xb907: 0x6c1bf020, - 0xb90b: 0x6c0ffc20, - 0xb90c: 0x6c1bc620, - 0xb910: 0x6c1c0020, - 0xb91d: 0x6c1bf820, - 0xb922: 0x6c1bf620, - 0xb92c: 0x6c1bfa20, 0xb92e: 0x6c1bfc20, - 0xb937: 0x6c1c0220, - 0xb93a: 0x6c169420, - 0xb93c: 0x6c1c0420, 0xb93d: 0x6c1bfe20, - // Block 0x2e5, offset 0xb940 - 0xb949: 0x6c1c0620, - 0xb94c: 0x6c037020, 0xb94d: 0x6c1c0820, - 0xb952: 0x6c1c0c20, 0xb953: 0x6c1c0a20, - 0xb956: 0x6c1c0e20, - 0xb95b: 0x6c1c1020, - 0xb95d: 0x6c0c5c20, 0xb95e: 0x6c099220, - 0xb961: 0x6c0a1420, 0xb963: 0x6c0d0220, - 0xb965: 0x6c06ae20, 0xb966: 0x6c078820, 0xb967: 0x6c06b020, - 0xb968: 0x6c044c20, 0xb96b: 0x6c1c1220, - 0xb96e: 0x6c078a20, - 0xb971: 0x6c063420, 0xb972: 0x6c1c1420, 0xb973: 0x6c149c20, - 0xb974: 0x6c112a20, 0xb975: 0x6c1c1620, 0xb977: 0x6c06b220, - 0xb97b: 0x6c030820, - 0xb97d: 0x6c0e0220, 0xb97e: 0x6c04cc20, - // Block 0x2e6, offset 0xb980 - 0xb982: 0x6c087c20, 0xb983: 0x6c12d220, - 0xb986: 0x6c11e220, - 0xb98b: 0x6c1c1820, - 0xb98c: 0x6c039a20, - 0xb991: 0x6c1c1e20, - 0xb996: 0x6c0eb220, - 0xb999: 0x6c1c1c20, 0xb99a: 0x6c1c1a20, 0xb99b: 0x6c1c2020, - 0xb99d: 0x6c0f4620, - 0xb9a5: 0x6c0b8a20, - 0xb9ab: 0x6c087e20, - 0xb9ad: 0x6c0c1420, 0xb9af: 0x6c0d9e20, - 0xb9b0: 0x6c03b020, 0xb9b3: 0x6c0eb420, - 0xb9b6: 0x6c1c2220, 0xb9b7: 0x6c1c2420, - 0xb9b8: 0x6c0ae620, - 0xb9bd: 0x6c140620, - // Block 0x2e7, offset 0xb9c0 - 0xb9c0: 0x6c1c2a20, 0xb9c3: 0x6c1c2820, - 0xb9c4: 0x6c1c2620, 0xb9c5: 0x6c131620, 0xb9c7: 0x6c1c3820, - 0xb9cc: 0x6c144820, 0xb9ce: 0x6c1c2c20, - 0xb9d4: 0x6c1c3020, 0xb9d5: 0x6c146a20, 0xb9d7: 0x6c1c2e20, - 0xb9df: 0x6c1c3220, - 0xb9e1: 0x6c11b020, 0xb9e2: 0x6c1c3420, 0xb9e3: 0x6c135420, - 0xb9e4: 0x6c1c3620, - 0xb9f2: 0x6c031620, 0xb9f3: 0x6c135620, - 0xb9f4: 0x6c110220, 0xb9f5: 0x6c1c3a20, 0xb9f6: 0x6c1c3c20, - 0xb9f8: 0x6c06b420, 0xb9f9: 0x6c031820, 0xb9fa: 0x6c1c3e20, 0xb9fb: 0x6c061020, - 0xb9fc: 0x6c159420, 0xb9fd: 0x6c155e20, 0xb9fe: 0x6c039c20, 0xb9ff: 0x6c1c4220, - // Block 0x2e8, offset 0xba00 - 0xba01: 0x6c0eb620, 0xba03: 0x6c06b620, - 0xba04: 0x6c0a6a20, 0xba07: 0x6c121e20, - 0xba0a: 0x6c0a6c20, - 0xba0f: 0x6c0a3c20, - 0xba15: 0x6c0f4820, 0xba16: 0x6c13ca20, 0xba17: 0x6c0f9e20, - 0xba1a: 0x6c06b820, - 0xba1c: 0x6c12d420, - 0xba20: 0x6c1c4420, - 0xba26: 0x6c0fde20, 0xba27: 0x6c079c20, - 0xba2b: 0x6c063620, - 0xba2d: 0x6c0f4a20, - 0xba35: 0x6c004620, 0xba36: 0x6c0a2820, 0xba37: 0x6c06ba20, - 0xba38: 0x6c159a20, - // Block 0x2e9, offset 0xba40 - 0xba41: 0x6c1c4620, 0xba42: 0x6c1c4820, 0xba43: 0x6c114620, - 0xba48: 0x6c1c4a20, 0xba49: 0x6c16b620, 0xba4a: 0x6c16de20, - 0xba4f: 0x6c1c4e20, - 0xba50: 0x6c1c4c20, 0xba53: 0x6c028220, - 0xba56: 0x6c1c5020, - 0xba5a: 0x6c1c5620, 0xba5b: 0x6c1c5820, - 0xba5d: 0x6c1c5420, 0xba5f: 0x6c129c20, - 0xba60: 0x6c0a6e20, 0xba61: 0x6c1c5c20, 0xba62: 0x6c1c5a20, 0xba63: 0x6c1c5220, - 0xba68: 0x6c1c5e20, 0xba69: 0x6c1c6020, - 0xba6c: 0x6c1c6220, - 0xba70: 0x6c1c6820, 0xba71: 0x6c1c6420, 0xba73: 0x6c1c6620, - 0xba74: 0x6c1c6a20, 0xba76: 0x6c014420, 0xba77: 0x6c0f4c20, - 0xba78: 0x6c1c6c20, 0xba7a: 0x6c05d820, 0xba7b: 0x6c022420, - 0xba7c: 0x6c111020, 0xba7e: 0x6c1c6e20, 0xba7f: 0x6c10de20, - // Block 0x2ea, offset 0xba80 - 0xba81: 0x6c138e20, 0xba83: 0x6c1c7020, - 0xba84: 0x6c16e020, - 0xba89: 0x6c1c7220, 0xba8a: 0x6c135820, 0xba8b: 0x6c1c7820, - 0xba8c: 0x6c172c20, 0xba8d: 0x6c174c20, 0xba8f: 0x6c08f020, - 0xba90: 0x6c10d220, 0xba91: 0x6c1c7a20, 0xba93: 0x6c042620, - 0xba94: 0x6c0eb820, 0xba95: 0x6c00b420, 0xba96: 0x6c1c7c20, 0xba97: 0x6c132420, - 0xba98: 0x6c06bc20, 0xba9b: 0x6c0e5420, - 0xba9f: 0x6c0f4e20, - 0xbaa5: 0x6c152e20, 0xbaa6: 0x6c061220, 0xbaa7: 0x6c063820, - 0xbaa9: 0x6c1c7e20, - 0xbaad: 0x6c1c8020, 0xbaaf: 0x6c1c8c20, - 0xbab1: 0x6c095a20, - 0xbab5: 0x6c0eba20, 0xbab7: 0x6c048620, - 0xbab8: 0x6c1c8220, - 0xbabc: 0x6c127220, 0xbabe: 0x6c0e4020, - // Block 0x2eb, offset 0xbac0 - 0xbac1: 0x6c1c8420, - 0xbac8: 0x6c1c8620, 0xbaca: 0x6c048820, - 0xbacc: 0x6c1c8820, 0xbace: 0x6c1c8a20, - 0xbad1: 0x6c1c8e20, 0xbad3: 0x6c101820, - 0xbad6: 0x6c1c9020, 0xbad7: 0x6c1c9220, - 0xbad9: 0x6c1c9420, - 0xbadc: 0x6c1c7620, 0xbadd: 0x6c1c7420, - 0xbae1: 0x6c1c9620, 0xbae2: 0x6c056620, - 0xbae6: 0x6c126a20, - 0xbae9: 0x6c07b020, 0xbaea: 0x6c128a20, 0xbaeb: 0x6c0ebc20, - 0xbaec: 0x6c12b220, 0xbaed: 0x6c1c9820, - 0xbaf0: 0x6c0a7020, 0xbaf1: 0x6c010820, 0xbaf3: 0x6c1c9a20, - 0xbaf7: 0x6c1c9c20, - 0xbaf9: 0x6c153420, - 0xbafc: 0x6c122020, 0xbaff: 0x6c1ca220, - // Block 0x2ec, offset 0xbb00 - 0xbb00: 0x6c017620, 0xbb01: 0x6c0bd820, 0xbb02: 0x6c1ca020, 0xbb03: 0x6c1c9e20, - 0xbb04: 0x6c056820, 0xbb05: 0x6c0da020, 0xbb07: 0x6c1caa20, - 0xbb08: 0x6c1ca620, 0xbb0a: 0x6c1ca420, 0xbb0b: 0x6c161620, - 0xbb0c: 0x6c066a20, - 0xbb10: 0x6c0a3e20, 0xbb11: 0x6c1ca820, 0xbb12: 0x6c0fc420, 0xbb13: 0x6c09c820, - 0xbb17: 0x6c106820, - 0xbb18: 0x6c1cb020, 0xbb19: 0x6c1cae20, - 0xbb1e: 0x6c1cac20, - 0xbb20: 0x6c1cb220, 0xbb21: 0x6c066c20, - 0xbb28: 0x6c1cb420, 0xbb29: 0x6c131420, 0xbb2a: 0x6c0a0220, - 0xbb2d: 0x6c1cb620, 0xbb2e: 0x6c125220, - 0xbb33: 0x6c106a20, - 0xbb34: 0x6c0ebe20, - 0xbb39: 0x6c0f8c20, - 0xbb3c: 0x6c1cb820, 0xbb3d: 0x6c03c220, - // Block 0x2ed, offset 0xbb40 - 0xbb43: 0x6c0b2c20, - 0xbb45: 0x6c127420, - 0xbb4c: 0x6c039e20, 0xbb4d: 0x6c10f020, - 0xbb56: 0x6c1cba20, 0xbb57: 0x6c088020, - 0xbb58: 0x6c140820, 0xbb59: 0x6c140a20, - 0xbb5c: 0x6c017820, 0xbb5d: 0x6c1cc420, - 0xbb60: 0x6c0e8620, - 0xbb64: 0x6c1cbe20, - 0xbb6b: 0x6c022620, - 0xbb70: 0x6c1d2420, 0xbb71: 0x6c1cc220, - 0xbb75: 0x6c110420, - 0xbb78: 0x6c1cc020, 0xbb7b: 0x6c1cbc20, - 0xbb7d: 0x6c075020, 0xbb7f: 0x6c1cc820, - // Block 0x2ee, offset 0xbb80 - 0xbb8e: 0x6c1cd420, 0xbb8f: 0x6c1ce020, - 0xbb90: 0x6c1cd020, 0xbb92: 0x6c0fe420, - 0xbb95: 0x6c1cda20, 0xbb96: 0x6c12d620, - 0xbb99: 0x6c1cce20, 0xbb9b: 0x6c1cd820, - 0xbb9c: 0x6c169620, 0xbb9d: 0x6c088220, - 0xbba0: 0x6c0da220, 0xbba1: 0x6c1cca20, - 0xbba5: 0x6c042820, 0xbba6: 0x6c1cde20, 0xbba7: 0x6c0bda20, - 0xbba8: 0x6c014620, 0xbba9: 0x6c1cd220, 0xbbaa: 0x6c022820, 0xbbab: 0x6c1cdc20, - 0xbbaf: 0x6c048a20, - 0xbbb1: 0x6c1cd620, - 0xbbba: 0x6c1ce220, - // Block 0x2ef, offset 0xbbc0 - 0xbbc1: 0x6c1ce620, 0xbbc2: 0x6c1cfa20, 0xbbc3: 0x6c1cf620, - 0xbbc6: 0x6c1cf020, - 0xbbca: 0x6c1cee20, 0xbbcb: 0x6c16b820, - 0xbbcd: 0x6c1cf220, - 0xbbd0: 0x6c048c20, 0xbbd2: 0x6c06be20, - 0xbbd5: 0x6c0a4020, - 0xbbd9: 0x6c1d0020, 0xbbda: 0x6c1ce420, - 0xbbdf: 0x6c1cec20, - 0xbbe0: 0x6c1ccc20, 0xbbe2: 0x6c022c20, 0xbbe3: 0x6c1cf420, - 0xbbe4: 0x6c1cf820, 0xbbe5: 0x6c0e5620, - 0xbbe8: 0x6c076820, 0xbbe9: 0x6c01a820, 0xbbea: 0x6c1ce820, 0xbbeb: 0x6c1cfe20, - 0xbbec: 0x6c1cfc20, 0xbbed: 0x6c048e20, 0xbbef: 0x6c0d4a20, - 0xbbf0: 0x6c02c020, - 0xbbf5: 0x6c056a20, 0xbbf7: 0x6c1cea20, - // Block 0x2f0, offset 0xbc00 - 0xbc01: 0x6c1d0220, 0xbc03: 0x6c1d0820, - 0xbc04: 0x6c1d0c20, - 0xbc09: 0x6c090a20, 0xbc0b: 0x6c1d1820, - 0xbc0c: 0x6c0f5020, 0xbc0d: 0x6c1d0420, - 0xbc12: 0x6c1d1420, - 0xbc14: 0x6c022a20, 0xbc16: 0x6c1d1020, 0xbc17: 0x6c1d1220, - 0xbc1a: 0x6c1d0a20, 0xbc1b: 0x6c1d0e20, - 0xbc1f: 0x6c066e20, - 0xbc20: 0x6c156020, 0xbc23: 0x6c031a20, - 0xbc26: 0x6c012e20, 0xbc27: 0x6c1d1620, - 0xbc29: 0x6c111820, 0xbc2a: 0x6c001a20, - 0xbc32: 0x6c122220, 0xbc33: 0x6c1cc620, - 0xbc34: 0x6c1d2220, 0xbc35: 0x6c1d2a20, 0xbc36: 0x6c151a20, - 0xbc38: 0x6c1d1c20, - 0xbc3c: 0x6c0ffe20, 0xbc3d: 0x6c1d2620, - // Block 0x2f1, offset 0xbc40 - 0xbc45: 0x6c0ae820, 0xbc46: 0x6c1d2820, 0xbc47: 0x6c109620, - 0xbc51: 0x6c171220, 0xbc53: 0x6c1d2020, - 0xbc58: 0x6c1d2c20, 0xbc5a: 0x6c075220, - 0xbc5c: 0x6c0c1620, 0xbc5f: 0x6c006820, - 0xbc60: 0x6c1d1e20, 0xbc61: 0x6c1d1a20, 0xbc63: 0x6c0cf020, - 0xbc67: 0x6c1d0620, - 0xbc68: 0x6c083c20, - 0xbc70: 0x6c0d8420, 0xbc71: 0x6c1d4420, 0xbc73: 0x6c0cf220, - 0xbc74: 0x6c1d3a20, 0xbc76: 0x6c1d3420, 0xbc77: 0x6c1d3620, - 0xbc79: 0x6c095c20, 0xbc7a: 0x6c1d3c20, 0xbc7b: 0x6c1d4220, - // Block 0x2f2, offset 0xbc80 - 0xbc80: 0x6c1d3820, 0xbc81: 0x6c099620, 0xbc83: 0x6c1d3e20, - 0xbc86: 0x6c1d3220, - 0xbc88: 0x6c154820, 0xbc89: 0x6c154620, - 0xbc8d: 0x6c1d4620, 0xbc8e: 0x6c1d4820, 0xbc8f: 0x6c006a20, - 0xbc95: 0x6c1d3020, - 0xbc9a: 0x6c050c20, 0xbc9b: 0x6c000c20, - 0xbc9f: 0x6c031c20, - 0xbca1: 0x6c1d4020, - 0xbca7: 0x6c1d5020, - 0xbca8: 0x6c1d4e20, - 0xbcac: 0x6c1d5820, - 0xbcb4: 0x6c1d5a20, - 0xbcbc: 0x6c1d5620, 0xbcbd: 0x6c1d5c20, 0xbcbe: 0x6c1d4c20, 0xbcbf: 0x6c1d5420, - // Block 0x2f3, offset 0xbcc0 - 0xbcc2: 0x6c1d5e20, - 0xbcc4: 0x6c1d6020, 0xbcc7: 0x6c1d4a20, - 0xbcc8: 0x6c08cc20, 0xbcca: 0x6c1d5220, 0xbccb: 0x6c0da420, - 0xbccc: 0x6c06c020, 0xbccd: 0x6c1d2e20, 0xbcce: 0x6c0b2e20, - 0xbcd3: 0x6c1d7a20, - 0xbcd5: 0x6c13aa20, - 0xbcd8: 0x6c1d6620, 0xbcd9: 0x6c1d6820, 0xbcda: 0x6c1d6a20, - 0xbcdd: 0x6c1d7820, 0xbcdf: 0x6c1d7620, - 0xbce2: 0x6c148e20, 0xbce3: 0x6c031e20, - 0xbce5: 0x6c1d7220, 0xbce7: 0x6c056e20, - 0xbce8: 0x6c025c20, 0xbceb: 0x6c1d6c20, - 0xbcee: 0x6c163820, 0xbcef: 0x6c1d7020, - 0xbcf0: 0x6c006c20, 0xbcf1: 0x6c1d7420, 0xbcf3: 0x6c1d6220, - 0xbcf4: 0x6c1d6e20, 0xbcf5: 0x6c1d7c20, 0xbcf6: 0x6c056c20, 0xbcf7: 0x6c1d6420, - 0xbcfe: 0x6c15c620, - // Block 0x2f4, offset 0xbd00 - 0xbd02: 0x6c156220, - 0xbd07: 0x6c1d8220, - 0xbd0a: 0x6c1d8a20, - 0xbd0e: 0x6c0d3820, - 0xbd10: 0x6c16ba20, 0xbd11: 0x6c1d8c20, - 0xbd14: 0x6c1d8620, 0xbd16: 0x6c1d8020, - 0xbd19: 0x6c1d7e20, 0xbd1a: 0x6c1d8820, - 0xbd24: 0x6c133820, 0xbd27: 0x6c105020, - 0xbd29: 0x6c057020, 0xbd2b: 0x6c1d8e20, - 0xbd2c: 0x6c1d8420, 0xbd2e: 0x6c1d9020, - 0xbd32: 0x6c05da20, - 0xbd36: 0x6c019a20, - 0xbd3a: 0x6c1da020, - 0xbd3e: 0x6c032020, - // Block 0x2f5, offset 0xbd40 - 0xbd43: 0x6c1d9c20, - 0xbd46: 0x6c1d9e20, 0xbd47: 0x6c076a20, - 0xbd48: 0x6c1d9a20, 0xbd49: 0x6c1d9620, 0xbd4a: 0x6c1d9420, 0xbd4b: 0x6c1da220, - 0xbd4c: 0x6c1d9220, 0xbd4d: 0x6c1da620, - 0xbd50: 0x6c022e20, - 0xbd63: 0x6c1daa20, - 0xbd66: 0x6c1da820, - 0xbd72: 0x6c0ec020, - 0xbd74: 0x6c1db020, 0xbd76: 0x6c1dac20, 0xbd77: 0x6c1d9820, - 0xbd78: 0x6c05dc20, 0xbd7a: 0x6c1dae20, - 0xbd7c: 0x6c1db620, 0xbd7d: 0x6c1db420, 0xbd7e: 0x6c1db820, 0xbd7f: 0x6c1db220, - // Block 0x2f6, offset 0xbd80 - 0xbd80: 0x6c1dba20, - 0xbd88: 0x6c1dbc20, 0xbd89: 0x6c1dbe20, 0xbd8a: 0x6c13ac20, - 0xbd8c: 0x6c1dc220, 0xbd8d: 0x6c1dc020, 0xbd8e: 0x6c09ca20, - 0xbd90: 0x6c0bdc20, 0xbd91: 0x6c020420, 0xbd92: 0x6c023020, - 0xbd94: 0x6c1dc420, 0xbd96: 0x6c003e20, - 0xbd9a: 0x6c0c1820, 0xbd9b: 0x6c1dc620, - 0xbd9d: 0x6c2c0020, 0xbd9e: 0x6c1dc820, 0xbd9f: 0x6c05a620, - 0xbda1: 0x6c1dca20, - 0xbda6: 0x6c0c5e20, - 0xbdaa: 0x6c1dcc20, - 0xbdae: 0x6c1dce20, 0xbdaf: 0x6c03e020, - 0xbdb0: 0x6c1dd020, 0xbdb2: 0x6c1dd220, 0xbdb3: 0x6c1dd420, - 0xbdb4: 0x6c0da620, - 0xbdb8: 0x6c063a20, 0xbdbb: 0x6c151220, - 0xbdbf: 0x6c140c20, - // Block 0x2f7, offset 0xbdc0 - 0xbdc0: 0x6c0a2020, 0xbdc1: 0x6c1dd620, - 0xbdc7: 0x6c0c6020, - 0xbdc8: 0x6c2d6c20, 0xbdc9: 0x6c122420, 0xbdcb: 0x6c096420, - 0xbdcd: 0x6c07b220, 0xbdce: 0x6c1dd820, - 0xbdd3: 0x6c0d8620, - 0xbdd5: 0x6c132620, - 0xbdd8: 0x6c0dda20, 0xbddb: 0x6c1dde20, - 0xbdde: 0x6c1dda20, - 0xbde0: 0x6c1de020, 0xbde3: 0x6c1ddc20, - 0xbde8: 0x6c1de220, - 0xbdee: 0x6c133a20, - 0xbdf1: 0x6c002e20, - 0xbdf6: 0x6c12d820, - 0xbdf9: 0x6c122620, - 0xbdfc: 0x6c1de420, 0xbdfe: 0x6c1dea20, 0xbdff: 0x6c0a7220, - // Block 0x2f8, offset 0xbe00 - 0xbe00: 0x6c03e220, 0xbe02: 0x6c1de620, 0xbe03: 0x6c1df420, - 0xbe04: 0x6c0a7420, - 0xbe09: 0x6c1de820, 0xbe0a: 0x6c112c20, - 0xbe11: 0x6c15c820, 0xbe12: 0x6c1dec20, 0xbe13: 0x6c1dee20, - 0xbe14: 0x6c1df620, 0xbe15: 0x6c100020, 0xbe16: 0x6c1df020, 0xbe17: 0x6c06c220, - 0xbe18: 0x6c0c3c20, 0xbe1b: 0x6c1e1220, - 0xbe1c: 0x6c11c820, 0xbe1e: 0x6c0ddc20, - 0xbe2b: 0x6c122820, - 0xbe2c: 0x6c1e9c20, - 0xbe31: 0x6c13cc20, - 0xbe35: 0x6c0f5220, - 0xbe39: 0x6c147e20, 0xbe3b: 0x6c1dfc20, - 0xbe3c: 0x6c017a20, 0xbe3d: 0x6c0e8820, - // Block 0x2f9, offset 0xbe40 - 0xbe42: 0x6c1e0e20, - 0xbe45: 0x6c0e1c20, 0xbe46: 0x6c1e0220, 0xbe47: 0x6c1e1020, - 0xbe48: 0x6c1e0620, 0xbe49: 0x6c1e1420, 0xbe4a: 0x6c1e0c20, - 0xbe4c: 0x6c1e0a20, 0xbe4d: 0x6c118220, 0xbe4f: 0x6c1dfe20, - 0xbe50: 0x6c023220, 0xbe51: 0x6c1dfa20, 0xbe52: 0x6c044e20, 0xbe53: 0x6c0dde20, - 0xbe54: 0x6c1df220, 0xbe57: 0x6c1df820, - 0xbe58: 0x6c06c420, 0xbe59: 0x6c0c3620, 0xbe5b: 0x6c0a7620, - 0xbe5c: 0x6c1e0820, 0xbe5d: 0x6c114820, - 0xbe60: 0x6c045020, 0xbe61: 0x6c028420, - 0xbe6c: 0x6c02c220, 0xbe6d: 0x6c0b0620, 0xbe6e: 0x6c1e1820, 0xbe6f: 0x6c1e2220, - 0xbe71: 0x6c1e1a20, 0xbe73: 0x6c05de20, - 0xbe75: 0x6c1e2420, 0xbe76: 0x6c081820, 0xbe77: 0x6c072e20, - 0xbe7e: 0x6c099820, 0xbe7f: 0x6c1e0020, - // Block 0x2fa, offset 0xbe80 - 0xbe81: 0x6c08ce20, 0xbe82: 0x6c1e1e20, - 0xbe87: 0x6c088420, - 0xbe88: 0x6c1e2020, 0xbe89: 0x6c004820, - 0xbe8c: 0x6c1e1620, - 0xbe91: 0x6c0ec220, - 0xbe99: 0x6c045220, - 0xbe9f: 0x6c049020, - 0xbea7: 0x6c1e1c20, - 0xbea8: 0x6c000e20, 0xbeab: 0x6c079e20, - 0xbeaf: 0x6c0b3020, - 0xbeba: 0x6c0f5420, - 0xbebd: 0x6c120820, 0xbebe: 0x6c1e2820, 0xbebf: 0x6c0cf820, - // Block 0x2fb, offset 0xbec0 - 0xbec9: 0x6c0d4c20, - 0xbecc: 0x6c082a20, 0xbecd: 0x6c1e2a20, 0xbecf: 0x6c1e2e20, - 0xbed0: 0x6c1e2620, - 0xbed5: 0x6c139a20, 0xbed7: 0x6c0eea20, - 0xbedc: 0x6c0cf420, - 0xbee7: 0x6c13ce20, - 0xbee8: 0x6c092c20, 0xbee9: 0x6c1e4620, 0xbeeb: 0x6c1e4420, - 0xbeee: 0x6c0bb420, - 0xbef2: 0x6c05e020, - 0xbef6: 0x6c1e3820, 0xbef7: 0x6c0a7a20, - 0xbefa: 0x6c10b820, 0xbefb: 0x6c110620, - // Block 0x2fc, offset 0xbf00 - 0xbf00: 0x6c1e3420, 0xbf03: 0x6c0cf620, - 0xbf08: 0x6c098020, 0xbf09: 0x6c1e3e20, - 0xbf0c: 0x6c0a7820, 0xbf0e: 0x6c1e3220, 0xbf0f: 0x6c1e3c20, - 0xbf12: 0x6c114a20, - 0xbf16: 0x6c1e3020, - 0xbf18: 0x6c052620, 0xbf1b: 0x6c02ae20, - 0xbf1f: 0x6c1e4020, - 0xbf20: 0x6c161e20, 0xbf21: 0x6c07b420, 0xbf22: 0x6c0e1e20, 0xbf23: 0x6c1e3a20, - 0xbf25: 0x6c0c3820, 0xbf27: 0x6c06c620, - 0xbf28: 0x6c0b8c20, 0xbf29: 0x6c014820, 0xbf2a: 0x6c0cb420, 0xbf2b: 0x6c1e3620, - 0xbf2c: 0x6c03f620, - 0xbf32: 0x6c057220, - 0xbf34: 0x6c0f0e20, 0xbf35: 0x6c1e4220, - 0xbf3b: 0x6c0cfa20, - 0xbf3e: 0x6c1e4820, - // Block 0x2fd, offset 0xbf40 - 0xbf40: 0x6c1e4c20, 0xbf43: 0x6c0d6620, - 0xbf44: 0x6c1e5820, 0xbf46: 0x6c1e4e20, - 0xbf49: 0x6c1e5220, - 0xbf4f: 0x6c129e20, - 0xbf50: 0x6c0f5620, 0xbf52: 0x6c1e5420, - 0xbf56: 0x6c156420, - 0xbf5a: 0x6c159c20, 0xbf5b: 0x6c032220, - 0xbf61: 0x6c001c20, 0xbf63: 0x6c1e5020, - 0xbf69: 0x6c1e4a20, - 0xbf6e: 0x6c03a020, - 0xbf74: 0x6c014a20, 0xbf76: 0x6c1e5620, - 0xbf7a: 0x6c159e20, - // Block 0x2fe, offset 0xbf80 - 0xbf86: 0x6c1e5e20, - 0xbf8d: 0x6c0d6e20, 0xbf8f: 0x6c1e6c20, - 0xbf93: 0x6c1e6020, - 0xbf96: 0x6c1e5a20, 0xbf97: 0x6c1e6820, - 0xbf9c: 0x6c1e2c20, - 0xbfa6: 0x6c1e6220, - 0xbfa8: 0x6c1e6a20, - 0xbfac: 0x6c11e420, 0xbfad: 0x6c100220, - 0xbfb4: 0x6c1e5c20, 0xbfb6: 0x6c1e6420, - 0xbfba: 0x6c057420, - 0xbfbe: 0x6c07fa20, - // Block 0x2ff, offset 0xbfc0 - 0xbfc2: 0x6c0c3a20, - 0xbfce: 0x6c1e7420, - 0xbfd8: 0x6c0f7820, - 0xbfe7: 0x6c1e6e20, - 0xbfe9: 0x6c145420, - 0xbfef: 0x6c1e7020, - 0xbff6: 0x6c1e7220, - 0xbff8: 0x6c14ec20, 0xbffa: 0x6c0bc420, - // Block 0x300, offset 0xc000 - 0xc003: 0x6c05a820, - 0xc008: 0x6c1e8020, - 0xc012: 0x6c083e20, 0xc013: 0x6c1e7a20, - 0xc015: 0x6c1e7820, - 0xc01a: 0x6c110820, - 0xc01e: 0x6c105220, - 0xc024: 0x6c0f8e20, 0xc025: 0x6c1e7c20, - 0xc029: 0x6c1e7e20, 0xc02b: 0x6c12fa20, - 0xc02d: 0x6c112e20, 0xc02e: 0x6c081a20, - 0xc030: 0x6c0c6220, 0xc032: 0x6c143420, - 0xc039: 0x6c028620, 0xc03b: 0x6c1e8c20, - 0xc03c: 0x6c1e8220, - // Block 0x301, offset 0xc040 - 0xc041: 0x6c15a020, 0xc042: 0x6c1e9020, - 0xc045: 0x6c1e8820, 0xc047: 0x6c1e8a20, - 0xc04d: 0x6c0cfc20, - 0xc052: 0x6c1e8620, - 0xc054: 0x6c1e0420, - 0xc058: 0x6c1e8e20, 0xc05a: 0x6c1e8420, - 0xc060: 0x6c1e9820, 0xc061: 0x6c1e9a20, 0xc062: 0x6c0f7a20, 0xc063: 0x6c1e9e20, - 0xc066: 0x6c081c20, 0xc067: 0x6c1e9420, - 0xc06c: 0x6c03e420, 0xc06f: 0x6c1ea020, - 0xc071: 0x6c1e9220, 0xc072: 0x6c1ea820, - 0xc074: 0x6c1ea620, 0xc076: 0x6c1ea420, - 0xc07a: 0x6c1eaa20, - 0xc07d: 0x6c1eae20, 0xc07e: 0x6c0aea20, - // Block 0x302, offset 0xc080 - 0xc080: 0x6c1eac20, - 0xc085: 0x6c1eb420, - 0xc098: 0x6c1eb020, - 0xc09c: 0x6c1eb220, 0xc09d: 0x6c1e6620, - 0xc0a3: 0x6c1eb820, - 0xc0a4: 0x6c1eb620, - 0xc0aa: 0x6c1e7620, 0xc0ab: 0x6c1eba20, - 0xc0ac: 0x6c1ea220, 0xc0af: 0x6c088620, - 0xc0b4: 0x6c1ebc20, 0xc0b5: 0x6c1ebe20, 0xc0b6: 0x6c1ec220, 0xc0b7: 0x6c1ec020, - 0xc0b8: 0x6c1ec420, 0xc0b9: 0x6c023420, 0xc0bb: 0x6c06c820, - 0xc0be: 0x6c13d020, 0xc0bf: 0x6c0bde20, - // Block 0x303, offset 0xc0c0 - 0xc0c5: 0x6c063c20, - 0xc0c8: 0x6c1ec820, - 0xc0cd: 0x6c1ece20, 0xc0cf: 0x6c12c020, - 0xc0d1: 0x6c042a20, - 0xc0d5: 0x6c1ecc20, 0xc0d6: 0x6c1eca20, 0xc0d7: 0x6c114c20, - 0xc0d8: 0x6c1ed020, 0xc0d9: 0x6c049220, - 0xc0dd: 0x6c1ed420, 0xc0de: 0x6c1ed220, - 0xc0e2: 0x6c032420, 0xc0e3: 0x6c084020, - 0xc0e6: 0x6c109820, - 0xc0ec: 0x6c057620, - 0xc0f0: 0x6c0bac20, 0xc0f2: 0x6c1ed620, - 0xc0f4: 0x6c0be020, 0xc0f5: 0x6c0f7c20, 0xc0f7: 0x6c12da20, - 0xc0f8: 0x6c1ed820, - // Block 0x304, offset 0xc100 - 0xc102: 0x6c1eda20, 0xc103: 0x6c1edc20, - 0xc107: 0x6c134820, - 0xc108: 0x6c1b5020, 0xc109: 0x6c0c0c20, - 0xc10c: 0x6c12b420, 0xc10e: 0x6c07c820, - 0xc110: 0x6c122a20, 0xc111: 0x6c11e620, - 0xc117: 0x6c0fc620, - 0xc119: 0x6c164a20, 0xc11b: 0x6c1ee020, - 0xc11c: 0x6c093020, 0xc11f: 0x6c1ee220, - 0xc121: 0x6c002c20, - 0xc124: 0x6c04d020, 0xc125: 0x6c0c1a20, 0xc127: 0x6c12dc20, - 0xc12b: 0x6c1ee420, - 0xc12c: 0x6c085820, 0xc12d: 0x6c0e4220, 0xc12f: 0x6c088a20, - 0xc130: 0x6c0b3220, - 0xc137: 0x6c1ee620, - 0xc139: 0x6c13d220, - 0xc13c: 0x6c016a20, 0xc13d: 0x6c088c20, - // Block 0x305, offset 0xc140 - 0xc141: 0x6c1eec20, 0xc143: 0x6c1ee820, - 0xc144: 0x6c1eee20, 0xc145: 0x6c163a20, 0xc146: 0x6c1eea20, - 0xc14b: 0x6c0c7620, - 0xc14c: 0x6c1ef020, 0xc14f: 0x6c0d5c20, - 0xc152: 0x6c1ef220, - 0xc157: 0x6c03a420, - 0xc159: 0x6c1ef620, 0xc15b: 0x6c1ef420, - 0xc160: 0x6c1ef820, 0xc161: 0x6c1efa20, 0xc162: 0x6c03a620, - 0xc165: 0x6c10e020, 0xc166: 0x6c0e2020, 0xc167: 0x6c044420, - 0xc168: 0x6c088e20, 0xc169: 0x6c0cfe20, - 0xc16c: 0x6c0a0420, 0xc16d: 0x6c002020, - 0xc171: 0x6c1efc20, - 0xc17a: 0x6c017c20, 0xc17b: 0x6c1f0420, - // Block 0x306, offset 0xc180 - 0xc182: 0x6c06ca20, 0xc183: 0x6c1f0220, - 0xc186: 0x6c076e20, 0xc187: 0x6c0a7c20, - 0xc18a: 0x6c1f0020, - 0xc18c: 0x6c0a7e20, 0xc18e: 0x6c14d020, 0xc18f: 0x6c076c20, - 0xc193: 0x6c006e20, - 0xc194: 0x6c0c1c20, - 0xc19c: 0x6c1f0e20, 0xc19f: 0x6c0be220, - 0xc1a0: 0x6c010a20, - 0xc1a5: 0x6c09f620, 0xc1a7: 0x6c146020, - 0xc1a8: 0x6c07fc20, - 0xc1ad: 0x6c0a8020, 0xc1af: 0x6c0bce20, - 0xc1b4: 0x6c1f0c20, 0xc1b5: 0x6c1f0820, 0xc1b6: 0x6c1f0a20, - 0xc1bc: 0x6c0e8a20, 0xc1bf: 0x6c1f4a20, - // Block 0x307, offset 0xc1c0 - 0xc1c1: 0x6c1f1620, 0xc1c2: 0x6c08d020, 0xc1c3: 0x6c06cc20, - 0xc1c4: 0x6c1f1220, - 0xc1c9: 0x6c1f1420, 0xc1cb: 0x6c0b3420, - 0xc1cf: 0x6c1f1020, - 0xc1d2: 0x6c083220, - 0xc1dd: 0x6c1f1a20, 0xc1de: 0x6c1f1820, 0xc1df: 0x6c1f2220, - 0xc1e2: 0x6c1f2420, - 0xc1e4: 0x6c1f1c20, 0xc1e6: 0x6c023820, 0xc1e7: 0x6c1f1e20, - 0xc1e8: 0x6c1f2020, 0xc1e9: 0x6c120a20, - 0xc1ee: 0x6c12de20, 0xc1ef: 0x6c057820, - 0xc1f0: 0x6c1f2620, - 0xc1f4: 0x6c0be420, 0xc1f6: 0x6c0a8220, - 0xc1fa: 0x6c0e5820, - // Block 0x308, offset 0xc200 - 0xc201: 0x6c04b620, 0xc203: 0x6c1f2820, - 0xc204: 0x6c1f3020, 0xc207: 0x6c01ce20, - 0xc208: 0x6c1f2a20, 0xc209: 0x6c1f2e20, - 0xc20e: 0x6c1f2c20, - 0xc211: 0x6c0a2220, - 0xc216: 0x6c0e4420, 0xc217: 0x6c004a20, - 0xc218: 0x6c1f3220, - 0xc21d: 0x6c1f3420, - 0xc222: 0x6c0ec420, - 0xc226: 0x6c16aa20, - 0xc22b: 0x6c085a20, - 0xc22e: 0x6c13ae20, - 0xc234: 0x6c140e20, - 0xc238: 0x6c1f4220, 0xc239: 0x6c1f3820, - 0xc23c: 0x6c1f3e20, 0xc23e: 0x6c1f3c20, - // Block 0x309, offset 0xc240 - 0xc241: 0x6c1f3620, - 0xc244: 0x6c1f4020, 0xc247: 0x6c10a420, - 0xc249: 0x6c1f3a20, - 0xc256: 0x6c1f4420, - 0xc259: 0x6c0a2420, 0xc25a: 0x6c1f4620, - 0xc25c: 0x6c15a220, 0xc25d: 0x6c119420, - 0xc260: 0x6c1f4820, - 0xc266: 0x6c1f4c20, - 0xc269: 0x6c1f4e20, - 0xc270: 0x6c1f5020, 0xc272: 0x6c04bc20, 0xc273: 0x6c010c20, - 0xc274: 0x6c06ce20, 0xc275: 0x6c1f5220, 0xc277: 0x6c1f5420, - 0xc278: 0x6c0a2e20, 0xc279: 0x6c0d0020, - 0xc27c: 0x6c191220, 0xc27d: 0x6c0cb820, 0xc27e: 0x6c0cb620, 0xc27f: 0x6c0da820, - // Block 0x30a, offset 0xc280 - 0xc280: 0x6c07a620, 0xc283: 0x6c17ce20, - 0xc288: 0x6c05c020, 0xc289: 0x6c156620, 0xc28b: 0x6c13d420, - 0xc28d: 0x6c131820, 0xc28f: 0x6c1f5620, - 0xc294: 0x6c07fe20, 0xc295: 0x6c0eee20, 0xc296: 0x6c1f5820, 0xc297: 0x6c16e220, - 0xc29b: 0x6c141020, - 0xc29d: 0x6c0ec620, 0xc29e: 0x6c1f5a20, 0xc29f: 0x6c03a820, - 0xc2a6: 0x6c1f5c20, 0xc2a7: 0x6c1f5e20, - 0xc2a8: 0x6c150420, 0xc2aa: 0x6c149820, 0xc2ab: 0x6c148020, - 0xc2ac: 0x6c144c20, 0xc2ad: 0x6c081e20, 0xc2ae: 0x6c1f6220, - 0xc2b1: 0x6c096620, - 0xc2b4: 0x6c143620, 0xc2b6: 0x6c1f6620, 0xc2b7: 0x6c1f6c20, - 0xc2b8: 0x6c1f6a20, 0xc2ba: 0x6c03a220, - 0xc2bd: 0x6c042c20, 0xc2bf: 0x6c1f6420, - // Block 0x30b, offset 0xc2c0 - 0xc2c1: 0x6c1f6820, - 0xc2c6: 0x6c1f6e20, - 0xc2c9: 0x6c0bb620, - 0xc2ce: 0x6c160220, 0xc2cf: 0x6c005220, - 0xc2d0: 0x6c07d820, 0xc2d1: 0x6c0d7020, 0xc2d3: 0x6c094a20, - 0xc2d6: 0x6c0aee20, - 0xc2d9: 0x6c1f7420, - 0xc2dc: 0x6c0fc820, 0xc2de: 0x6c1f7020, 0xc2df: 0x6c0d4e20, - 0xc2e0: 0x6c1f7220, 0xc2e1: 0x6c0aec20, 0xc2e2: 0x6c150a20, 0xc2e3: 0x6c1f7620, - 0xc2e4: 0x6c1f7820, 0xc2e5: 0x6c15dc20, - 0xc2ea: 0x6c1f8220, - 0xc2ed: 0x6c06d020, 0xc2ef: 0x6c114e20, - 0xc2f0: 0x6c1f7c20, 0xc2f1: 0x6c100420, 0xc2f2: 0x6c1efe20, 0xc2f3: 0x6c1f0620, - 0xc2f5: 0x6c040a20, 0xc2f7: 0x6c113220, - 0xc2fc: 0x6c1f8020, 0xc2fe: 0x6c0a8420, 0xc2ff: 0x6c11e820, - // Block 0x30c, offset 0xc300 - 0xc305: 0x6c1f8c20, 0xc307: 0x6c125420, - 0xc309: 0x6c1f7a20, 0xc30b: 0x6c1f8620, - 0xc30c: 0x6c1f8420, - 0xc310: 0x6c0c1e20, - 0xc315: 0x6c146e20, 0xc317: 0x6c166e20, - 0xc31a: 0x6c146220, - 0xc31c: 0x6c01d020, 0xc31d: 0x6c089020, - 0xc320: 0x6c171420, 0xc321: 0x6c1f8a20, 0xc322: 0x6c0bae20, - 0xc326: 0x6c1f8820, - 0xc329: 0x6c1f7e20, - 0xc32f: 0x6c063e20, - 0xc333: 0x6c1f9620, - 0xc334: 0x6c1f9220, 0xc336: 0x6c01d220, 0xc337: 0x6c1f8e20, - 0xc338: 0x6c1f9a20, 0xc339: 0x6c1fa620, - // Block 0x30d, offset 0xc340 - 0xc341: 0x6c0d8820, - 0xc344: 0x6c135a20, 0xc346: 0x6c1faa20, - 0xc34a: 0x6c126020, - 0xc34e: 0x6c1fa820, 0xc34f: 0x6c118420, - 0xc350: 0x6c141220, 0xc351: 0x6c032620, 0xc353: 0x6c0c6e20, - 0xc354: 0x6c09cc20, - 0xc358: 0x6c0f1620, 0xc35a: 0x6c156820, - 0xc35d: 0x6c1fa020, 0xc35e: 0x6c1f9e20, - 0xc362: 0x6c1fa220, - 0xc364: 0x6c1f9c20, 0xc367: 0x6c1fac20, - 0xc369: 0x6c1f9820, - 0xc36c: 0x6c1f9420, 0xc36e: 0x6c1fa420, 0xc36f: 0x6c1f9020, - 0xc371: 0x6c0e8c20, 0xc373: 0x6c154020, - 0xc374: 0x6c091c20, 0xc375: 0x6c080020, - 0xc37b: 0x6c078c20, - 0xc37e: 0x6c147220, 0xc37f: 0x6c027620, - // Block 0x30e, offset 0xc380 - 0xc382: 0x6c0f0c20, 0xc383: 0x6c107c20, - 0xc384: 0x6c010e20, - 0xc393: 0x6c0c6420, - 0xc396: 0x6c0be820, 0xc397: 0x6c053820, - 0xc39e: 0x6c1fb020, - 0xc3a1: 0x6c06d220, 0xc3a2: 0x6c02ec20, - 0xc3a9: 0x6c1fb420, 0xc3aa: 0x6c02dc20, 0xc3ab: 0x6c1fc020, - 0xc3b2: 0x6c1fba20, - 0xc3b4: 0x6c0c6620, - 0xc3b8: 0x6c028a20, 0xc3b9: 0x6c077020, - 0xc3bc: 0x6c028820, 0xc3bd: 0x6c07b620, - // Block 0x30f, offset 0xc3c0 - 0xc3c0: 0x6c1fb620, 0xc3c1: 0x6c05ae20, 0xc3c2: 0x6c057a20, 0xc3c3: 0x6c100620, - 0xc3c6: 0x6c1fb220, - 0xc3c8: 0x6c004c20, - 0xc3cd: 0x6c1fb820, 0xc3ce: 0x6c1fbc20, - 0xc3d0: 0x6c04c220, 0xc3d1: 0x6c053c20, 0xc3d3: 0x6c032820, - 0xc3d4: 0x6c040220, - 0xc3d9: 0x6c1fc220, - 0xc3dc: 0x6c080a20, 0xc3dd: 0x6c147620, 0xc3df: 0x6c084220, - 0xc3e3: 0x6c1fc420, - 0xc3e7: 0x6c127c20, - 0xc3f4: 0x6c1fdc20, 0xc3f6: 0x6c019e20, 0xc3f7: 0x6c1fc620, - 0xc3fe: 0x6c1fe820, 0xc3ff: 0x6c1fc820, - // Block 0x310, offset 0xc400 - 0xc401: 0x6c164c20, 0xc403: 0x6c1fd620, - 0xc405: 0x6c116220, - 0xc40d: 0x6c1fe620, 0xc40f: 0x6c1fcc20, - 0xc413: 0x6c002820, - 0xc414: 0x6c1fd020, 0xc417: 0x6c06d420, - 0xc41b: 0x6c1fd420, - 0xc41d: 0x6c1fd220, 0xc41f: 0x6c1fca20, - 0xc420: 0x6c1fe020, 0xc422: 0x6c0a8620, - 0xc426: 0x6c1ab420, 0xc427: 0x6c067020, - 0xc428: 0x6c160420, - 0xc42d: 0x6c1fce20, 0xc42f: 0x6c0f5820, - 0xc430: 0x6c023a20, 0xc431: 0x6c077220, 0xc433: 0x6c1fbe20, - 0xc435: 0x6c1fde20, 0xc436: 0x6c02b620, - 0xc439: 0x6c1fda20, 0xc43a: 0x6c1fe220, - 0xc43c: 0x6c100820, - // Block 0x311, offset 0xc440 - 0xc444: 0x6c03ac20, 0xc446: 0x6c201e20, - 0xc449: 0x6c14e220, 0xc44a: 0x6c1fec20, 0xc44b: 0x6c03aa20, - 0xc44d: 0x6c1ffa20, - 0xc452: 0x6c141420, - 0xc454: 0x6c1ffc20, 0xc455: 0x6c200020, 0xc457: 0x6c200820, - 0xc458: 0x6c1ff020, 0xc45a: 0x6c0e0820, - 0xc45f: 0x6c100a20, - 0xc460: 0x6c201020, 0xc461: 0x6c1ff620, 0xc463: 0x6c200a20, - 0xc467: 0x6c1ffe20, - 0xc46e: 0x6c0b3620, 0xc46f: 0x6c201220, - 0xc472: 0x6c0be620, - 0xc479: 0x6c200e20, 0xc47a: 0x6c032a20, - // Block 0x312, offset 0xc480 - 0xc480: 0x6c172420, 0xc481: 0x6c1fea20, - 0xc484: 0x6c200620, 0xc485: 0x6c007020, - 0xc488: 0x6c1fee20, 0xc48b: 0x6c14c420, - 0xc48c: 0x6c1ff820, 0xc48d: 0x6c0b0820, 0xc48e: 0x6c0efe20, 0xc48f: 0x6c1fe420, - 0xc492: 0x6c200420, - 0xc499: 0x6c0bb820, 0xc49a: 0x6c201820, 0xc49b: 0x6c02d620, - 0xc49c: 0x6c05e220, - 0xc4a1: 0x6c201c20, 0xc4a2: 0x6c1ff220, 0xc4a3: 0x6c201a20, - 0xc4a5: 0x6c200c20, 0xc4a6: 0x6c1ff420, - 0xc4a8: 0x6c201420, 0xc4aa: 0x6c201620, - 0xc4b0: 0x6c203820, - 0xc4b4: 0x6c108420, 0xc4b6: 0x6c200220, - 0xc4b9: 0x6c203020, - 0xc4bd: 0x6c203420, 0xc4bf: 0x6c0f2020, - // Block 0x313, offset 0xc4c0 - 0xc4ca: 0x6c15a420, - 0xc4d3: 0x6c130820, - 0xc4d4: 0x6c202a20, 0xc4d5: 0x6c0d8c20, - 0xc4d9: 0x6c203620, 0xc4da: 0x6c0cba20, - 0xc4dc: 0x6c202420, 0xc4dd: 0x6c203e20, 0xc4de: 0x6c203c20, - 0xc4e0: 0x6c10c620, 0xc4e1: 0x6c203a20, 0xc4e2: 0x6c10bc20, - 0xc4ea: 0x6c204220, 0xc4eb: 0x6c202820, - 0xc4ed: 0x6c04b820, 0xc4ee: 0x6c202e20, 0xc4ef: 0x6c0a0620, - 0xc4f3: 0x6c116420, - 0xc4f4: 0x6c203220, 0xc4f5: 0x6c04be20, 0xc4f7: 0x6c202220, - 0xc4f8: 0x6c202620, 0xc4f9: 0x6c202020, - 0xc4fc: 0x6c16e420, 0xc4fd: 0x6c02a820, 0xc4fe: 0x6c202c20, - // Block 0x314, offset 0xc500 - 0xc501: 0x6c204020, 0xc502: 0x6c025e20, - 0xc50a: 0x6c07e620, - 0xc50e: 0x6c013620, - 0xc511: 0x6c206220, - 0xc514: 0x6c16e620, 0xc515: 0x6c206820, - 0xc51b: 0x6c0b3820, - 0xc51c: 0x6c206620, - 0xc520: 0x6c206420, - 0xc527: 0x6c205e20, - 0xc52e: 0x6c204620, - 0xc531: 0x6c208020, 0xc532: 0x6c204420, - 0xc534: 0x6c206a20, - 0xc53b: 0x6c205a20, - 0xc53e: 0x6c205020, 0xc53f: 0x6c204a20, - // Block 0x315, offset 0xc540 - 0xc541: 0x6c204c20, 0xc543: 0x6c205c20, - 0xc547: 0x6c319e20, - 0xc54a: 0x6c205620, 0xc54b: 0x6c06d620, - 0xc54c: 0x6c0f0020, 0xc54d: 0x6c0d0420, 0xc54e: 0x6c205220, - 0xc550: 0x6c204820, 0xc553: 0x6c204e20, - 0xc558: 0x6c15a620, 0xc559: 0x6c146820, - 0xc55d: 0x6c205820, 0xc55e: 0x6c206c20, - 0xc567: 0x6c207c20, - 0xc568: 0x6c206e20, 0xc56b: 0x6c208820, - 0xc56d: 0x6c208420, - 0xc572: 0x6c207a20, - 0xc579: 0x6c207820, 0xc57b: 0x6c0f1020, - 0xc57d: 0x6c0d0620, 0xc57f: 0x6c207420, - // Block 0x316, offset 0xc580 - 0xc582: 0x6c207020, - 0xc585: 0x6c207e20, - 0xc58a: 0x6c208a20, 0xc58b: 0x6c124a20, - 0xc58c: 0x6c209620, - 0xc592: 0x6c208c20, 0xc593: 0x6c209220, - 0xc594: 0x6c208620, 0xc597: 0x6c0e9c20, - 0xc599: 0x6c128c20, 0xc59b: 0x6c207220, - 0xc59e: 0x6c208220, 0xc59f: 0x6c0a8820, - 0xc5a1: 0x6c14ee20, 0xc5a2: 0x6c20aa20, 0xc5a3: 0x6c209020, - 0xc5a9: 0x6c05e420, 0xc5aa: 0x6c017e20, 0xc5ab: 0x6c02b220, - 0xc5ae: 0x6c206020, - 0xc5b5: 0x6c0a8a20, 0xc5b6: 0x6c209a20, - 0xc5b8: 0x6c20a820, 0xc5b9: 0x6c098220, 0xc5ba: 0x6c02d820, - 0xc5bd: 0x6c0e1020, - // Block 0x317, offset 0xc5c0 - 0xc5c4: 0x6c209420, 0xc5c7: 0x6c209e20, - 0xc5c8: 0x6c20a620, 0xc5cb: 0x6c049420, - 0xc5d8: 0x6c040420, 0xc5d9: 0x6c20a220, - 0xc5df: 0x6c03ae20, - 0xc5e1: 0x6c107e20, 0xc5e2: 0x6c20a020, - 0xc5e6: 0x6c20a420, - 0xc5f2: 0x6c209820, - 0xc5f8: 0x6c209c20, - 0xc5ff: 0x6c02b420, - // Block 0x318, offset 0xc600 - 0xc600: 0x6c0e4620, - 0xc604: 0x6c20b220, - 0xc60d: 0x6c20ae20, 0xc60e: 0x6c067220, - 0xc610: 0x6c20ac20, - 0xc617: 0x6c20b820, - 0xc61c: 0x6c1fae20, - 0xc620: 0x6c20b020, 0xc622: 0x6c20b420, 0xc623: 0x6c20b620, - 0xc62a: 0x6c20ce20, - 0xc62c: 0x6c20c620, 0xc62e: 0x6c1fd820, - 0xc633: 0x6c20c420, - 0xc638: 0x6c20c220, 0xc63b: 0x6c20bc20, - // Block 0x319, offset 0xc640 - 0xc641: 0x6c208e20, 0xc642: 0x6c20c020, 0xc643: 0x6c20be20, - 0xc651: 0x6c20ca20, 0xc653: 0x6c16d020, - 0xc65a: 0x6c20d020, 0xc65b: 0x6c051e20, - 0xc65e: 0x6c20c820, 0xc65f: 0x6c20cc20, - 0xc668: 0x6c11ae20, 0xc66a: 0x6c20d220, - 0xc67a: 0x6c20da20, 0xc67b: 0x6c20d420, - // Block 0x31a, offset 0xc680 - 0xc684: 0x6c15f220, 0xc685: 0x6c20d620, - 0xc68a: 0x6c207620, - 0xc692: 0x6c20dc20, - 0xc696: 0x6c20de20, - 0xc69d: 0x6c00e620, 0xc69f: 0x6c20e220, - 0xc6a0: 0x6c05b220, 0xc6a1: 0x6c08d220, 0xc6a3: 0x6c04d220, - 0xc6a7: 0x6c018020, - 0xc6b2: 0x6c15ca20, - 0xc6b7: 0x6c20e620, - 0xc6b8: 0x6c20e420, 0xc6b9: 0x6c20ea20, 0xc6ba: 0x6c03e620, - 0xc6bd: 0x6c04d420, 0xc6be: 0x6c032c20, - // Block 0x31b, offset 0xc6c0 - 0xc6c3: 0x6c20f020, - 0xc6c7: 0x6c20ee20, - 0xc6c9: 0x6c20f220, - 0xc6cc: 0x6c01d420, 0xc6ce: 0x6c0e2220, - 0xc6d0: 0x6c20f420, 0xc6d3: 0x6c032e20, - 0xc6d4: 0x6c20f820, - 0xc6d9: 0x6c20f620, 0xc6db: 0x6c20fa20, - 0xc6df: 0x6c20fc20, - 0xc6e1: 0x6c20fe20, 0xc6e2: 0x6c089220, 0xc6e3: 0x6c0bea20, - 0xc6e4: 0x6c075a20, 0xc6e6: 0x6c12fc20, - 0xc6e9: 0x6c139c20, 0xc6ea: 0x6c170c20, - 0xc6ef: 0x6c08be20, - 0xc6f3: 0x6c07b820, - 0xc6f4: 0x6c16ac20, - 0xc6f8: 0x6c210020, 0xc6f9: 0x6c210220, 0xc6fb: 0x6c089420, - 0xc6ff: 0x6c210420, - // Block 0x31c, offset 0xc700 - 0xc700: 0x6c210620, 0xc703: 0x6c210a20, - 0xc704: 0x6c210820, 0xc706: 0x6c144420, - 0xc709: 0x6c0a0820, 0xc70a: 0x6c096820, 0xc70b: 0x6c085c20, - 0xc70d: 0x6c210c20, - 0xc715: 0x6c211020, 0xc716: 0x6c0b0a20, - 0xc718: 0x6c210e20, - 0xc71e: 0x6c211220, - 0xc724: 0x6c211420, - 0xc72a: 0x6c211620, 0xc72b: 0x6c211820, - 0xc72f: 0x6c211a20, - 0xc731: 0x6c211e20, 0xc732: 0x6c211c20, 0xc733: 0x6c212020, - 0xc734: 0x6c018220, 0xc735: 0x6c0e4820, 0xc737: 0x6c212220, - 0xc73a: 0x6c082020, 0xc73b: 0x6c028c20, - 0xc73c: 0x6c212420, 0xc73f: 0x6c0fb020, - // Block 0x31d, offset 0xc740 - 0xc740: 0x6c1a7220, - 0xc745: 0x6c03b220, 0xc746: 0x6c212620, - 0xc74b: 0x6c212820, - 0xc74d: 0x6c13b020, 0xc74e: 0x6c146420, - 0xc752: 0x6c107620, 0xc753: 0x6c212a20, - 0xc754: 0x6c122c20, - 0xc758: 0x6c125620, 0xc75b: 0x6c14f620, - 0xc75f: 0x6c212c20, - 0xc76b: 0x6c213020, - 0xc76c: 0x6c212e20, 0xc76f: 0x6c213420, - 0xc773: 0x6c213220, - // Block 0x31e, offset 0xc780 - 0xc788: 0x6c213820, - 0xc78f: 0x6c089620, - 0xc791: 0x6c14b220, 0xc793: 0x6c213a20, - 0xc794: 0x6c213c20, 0xc797: 0x6c03b420, - 0xc79b: 0x6c213e20, - 0xc7a3: 0x6c214220, - 0xc7a4: 0x6c214020, - 0xc7b4: 0x6c0b8e20, 0xc7b7: 0x6c128e20, - 0xc7b8: 0x6c011020, - 0xc7be: 0x6c11ea20, - // Block 0x31f, offset 0xc7c0 - 0xc7c0: 0x6c0f5a20, 0xc7c1: 0x6c09ce20, 0xc7c2: 0x6c042e20, - 0xc7ce: 0x6c11ec20, - 0xc7d0: 0x6c08ec20, - 0xc7d5: 0x6c214620, 0xc7d7: 0x6c033020, - 0xc7da: 0x6c016c20, - 0xc7dd: 0x6c10cc20, 0xc7de: 0x6c214420, 0xc7df: 0x6c06d820, - 0xc7e0: 0x6c0e5a20, 0xc7e2: 0x6c214820, - 0xc7e8: 0x6c215820, 0xc7ea: 0x6c214a20, - 0xc7f0: 0x6c0d7a20, 0xc7f2: 0x6c043020, 0xc7f3: 0x6c215a20, - 0xc7fa: 0x6c05b420, - 0xc7fd: 0x6c03b620, 0xc7fe: 0x6c215620, - // Block 0x320, offset 0xc800 - 0xc801: 0x6c215220, 0xc802: 0x6c214c20, 0xc803: 0x6c15cc20, - 0xc808: 0x6c0ef020, - 0xc80c: 0x6c109a20, 0xc80d: 0x6c214e20, - 0xc810: 0x6c215e20, 0xc812: 0x6c215c20, 0xc813: 0x6c052a20, - 0xc816: 0x6c019220, - 0xc819: 0x6c078e20, 0xc81a: 0x6c215020, 0xc81b: 0x6c215420, - 0xc821: 0x6c144220, 0xc822: 0x6c0de020, - 0xc82b: 0x6c148220, - 0xc82e: 0x6c216e20, - 0xc831: 0x6c217020, 0xc833: 0x6c01d620, - 0xc838: 0x6c132820, 0xc839: 0x6c154a20, 0xc83a: 0x6c217420, 0xc83b: 0x6c08d620, - 0xc83c: 0x6c0a8c20, 0xc83d: 0x6c216620, 0xc83e: 0x6c217220, 0xc83f: 0x6c014c20, - // Block 0x321, offset 0xc840 - 0xc841: 0x6c049620, - 0xc844: 0x6c216020, 0xc845: 0x6c216a20, - 0xc849: 0x6c0c6820, 0xc84a: 0x6c118620, - 0xc84c: 0x6c122e20, - 0xc853: 0x6c216420, - 0xc855: 0x6c13d620, 0xc857: 0x6c216820, - 0xc859: 0x6c217a20, 0xc85b: 0x6c217620, - 0xc85d: 0x6c216c20, - 0xc861: 0x6c13d820, 0xc862: 0x6c113420, 0xc863: 0x6c043220, - 0xc865: 0x6c0f7620, - 0xc868: 0x6c0e8e20, 0xc86a: 0x6c217c20, - 0xc86f: 0x6c217820, - 0xc870: 0x6c0daa20, 0xc871: 0x6c216220, 0xc873: 0x6c011220, - // Block 0x322, offset 0xc880 - 0xc88b: 0x6c15a820, - 0xc88c: 0x6c219220, - 0xc892: 0x6c219020, - 0xc897: 0x6c0c6c20, - 0xc899: 0x6c218a20, 0xc89b: 0x6c15e420, - 0xc89e: 0x6c105420, 0xc89f: 0x6c217e20, - 0xc8a5: 0x6c0efa20, - 0xc8a9: 0x6c011420, 0xc8aa: 0x6c06da20, 0xc8ab: 0x6c218420, - 0xc8b2: 0x6c099a20, 0xc8b3: 0x6c218e20, - 0xc8b5: 0x6c218c20, 0xc8b6: 0x6c218220, - 0xc8b8: 0x6c218820, 0xc8bb: 0x6c02c420, - 0xc8bd: 0x6c218620, 0xc8be: 0x6c113620, - // Block 0x323, offset 0xc8c0 - 0xc8c1: 0x6c162420, - 0xc8c4: 0x6c0af020, 0xc8c5: 0x6c0c6a20, - 0xc8d9: 0x6c219e20, 0xc8da: 0x6c219a20, - 0xc8dc: 0x6c12b620, - 0xc8e3: 0x6c219420, - 0xc8e4: 0x6c219820, 0xc8e6: 0x6c00f020, - 0xc8e9: 0x6c06dc20, 0xc8ea: 0x6c16e820, - 0xc8ec: 0x6c026e20, 0xc8ee: 0x6c12e020, - 0xc8f4: 0x6c15ce20, 0xc8f7: 0x6c023c20, - 0xc8f8: 0x6c0b3a20, 0xc8f9: 0x6c219c20, - // Block 0x324, offset 0xc900 - 0xc905: 0x6c21a620, - 0xc908: 0x6c0a8e20, - 0xc90c: 0x6c156c20, 0xc90e: 0x6c21a020, - 0xc913: 0x6c219620, - 0xc915: 0x6c21a220, - 0xc919: 0x6c168420, 0xc91b: 0x6c101220, - 0xc91c: 0x6c106c20, - 0xc92f: 0x6c026020, - 0xc932: 0x6c012620, - 0xc935: 0x6c21ae20, - 0xc938: 0x6c21b420, - 0xc93c: 0x6c164e20, - // Block 0x325, offset 0xc940 - 0xc940: 0x6c15d420, - 0xc945: 0x6c21c220, 0xc946: 0x6c21b620, 0xc947: 0x6c21b020, - 0xc94b: 0x6c167020, - 0xc94c: 0x6c21bc20, - 0xc951: 0x6c09e020, 0xc952: 0x6c21c020, - 0xc955: 0x6c21ca20, - 0xc958: 0x6c100e20, 0xc959: 0x6c21c620, - 0xc95e: 0x6c21ba20, - 0xc961: 0x6c0e2420, - 0xc964: 0x6c21c820, 0xc966: 0x6c21b220, - 0xc968: 0x6c21be20, 0xc96a: 0x6c21cc20, 0xc96b: 0x6c00b820, - 0xc96c: 0x6c21b820, 0xc96e: 0x6c21ce20, - 0xc971: 0x6c0b3c20, 0xc973: 0x6c0a0a20, - 0xc975: 0x6c132220, 0xc977: 0x6c077420, - 0xc979: 0x6c21a820, 0xc97a: 0x6c21c420, 0xc97b: 0x6c0fa020, - // Block 0x326, offset 0xc980 - 0xc985: 0x6c0bec20, 0xc987: 0x6c02c620, - 0xc988: 0x6c07ba20, 0xc989: 0x6c0a9020, 0xc98a: 0x6c21ac20, 0xc98b: 0x6c09d020, - 0xc993: 0x6c057c20, - 0xc995: 0x6c21aa20, - 0xc999: 0x6c21d620, 0xc99a: 0x6c0a2620, 0xc99b: 0x6c061420, - 0xc99d: 0x6c21f420, 0xc99f: 0x6c21e820, - 0xc9a0: 0x6c045420, 0xc9a1: 0x6c0fca20, 0xc9a3: 0x6c21de20, - 0xc9a4: 0x6c21f020, 0xc9a5: 0x6c001e20, 0xc9a6: 0x6c00e020, - 0xc9a9: 0x6c01aa20, 0xc9ab: 0x6c21e220, - 0xc9ac: 0x6c0d5020, 0xc9ad: 0x6c21d020, 0xc9ae: 0x6c21d420, 0xc9af: 0x6c06de20, - 0xc9b8: 0x6c21f620, 0xc9ba: 0x6c21ec20, - 0xc9be: 0x6c21dc20, - // Block 0x327, offset 0xc9c0 - 0xc9c3: 0x6c21ea20, - 0xc9ca: 0x6c14a620, - 0xc9cd: 0x6c21e620, 0xc9ce: 0x6c21ee20, - 0xc9d6: 0x6c064020, - 0xc9d8: 0x6c0a9220, 0xc9db: 0x6c0e2620, - 0xc9df: 0x6c21da20, - 0xc9e7: 0x6c156a20, - 0xc9eb: 0x6c21e020, - 0xc9ee: 0x6c21d220, 0xc9ef: 0x6c101020, - 0xc9f2: 0x6c21d820, - 0xc9f6: 0x6c21e420, - 0xc9fe: 0x6c172620, 0xc9ff: 0x6c090c20, - // Block 0x328, offset 0xca00 - 0xca00: 0x6c149020, 0xca02: 0x6c21f820, - 0xca0c: 0x6c11bc20, 0xca0f: 0x6c221020, - 0xca10: 0x6c061620, - 0xca16: 0x6c0a0c20, - 0xca18: 0x6c21fc20, - 0xca1c: 0x6c162620, 0xca1d: 0x6c06e020, 0xca1f: 0x6c221620, - 0xca22: 0x6c009c20, - 0xca25: 0x6c221220, - 0xca2a: 0x6c21fa20, - 0xca2f: 0x6c220620, - 0xca32: 0x6c220a20, - 0xca36: 0x6c15aa20, 0xca37: 0x6c220020, - 0xca3a: 0x6c0f8820, - 0xca3d: 0x6c220420, - // Block 0x329, offset 0xca40 - 0xca42: 0x6c221420, - 0xca44: 0x6c220820, 0xca45: 0x6c14de20, - 0xca49: 0x6c21fe20, 0xca4b: 0x6c08d420, - 0xca4c: 0x6c222e20, - 0xca51: 0x6c02c820, 0xca53: 0x6c220220, - 0xca54: 0x6c220c20, 0xca55: 0x6c220e20, - 0xca5d: 0x6c0dd020, 0xca5e: 0x6c0dac20, - 0xca6c: 0x6c221e20, 0xca6f: 0x6c222a20, - 0xca72: 0x6c222620, - 0xca74: 0x6c0f7e20, 0xca77: 0x6c223420, - 0xca78: 0x6c222020, - 0xca7e: 0x6c222220, 0xca7f: 0x6c21f220, - // Block 0x32a, offset 0xca80 - 0xca81: 0x6c045e20, 0xca82: 0x6c129020, - 0xca86: 0x6c090e20, - 0xca89: 0x6c074a20, - 0xca8f: 0x6c16ea20, - 0xca91: 0x6c221a20, 0xca93: 0x6c223220, - 0xca94: 0x6c014e20, 0xca95: 0x6c0d0820, - 0xcaa0: 0x6c119620, 0xcaa2: 0x6c033220, 0xcaa3: 0x6c16bc20, - 0xcaab: 0x6c149220, - 0xcaac: 0x6c0f1420, - 0xcab1: 0x6c222820, 0xcab2: 0x6c222c20, - 0xcab8: 0x6c0ca020, - 0xcabe: 0x6c223020, 0xcabf: 0x6c222420, - // Block 0x32b, offset 0xcac0 - 0xcac1: 0x6c221820, - 0xcac5: 0x6c033620, - 0xcad4: 0x6c05b620, - 0xcad8: 0x6c224c20, 0xcadb: 0x6c224220, - 0xcadc: 0x6c0c7020, 0xcadf: 0x6c02ba20, - 0xcae4: 0x6c0a0e20, 0xcae6: 0x6c225420, - 0xcaed: 0x6c224620, 0xcaee: 0x6c0ec820, 0xcaef: 0x6c224020, - 0xcaf0: 0x6c0f2220, - 0xcaf4: 0x6c228620, - 0xcaf8: 0x6c223a20, 0xcafa: 0x6c223820, - 0xcafc: 0x6c224a20, - // Block 0x32c, offset 0xcb00 - 0xcb00: 0x6c223e20, 0xcb01: 0x6c223c20, 0xcb02: 0x6c224820, - 0xcb04: 0x6c0bc220, 0xcb06: 0x6c223620, - 0xcb0e: 0x6c224e20, - 0xcb11: 0x6c225020, - 0xcb17: 0x6c033420, - 0xcb21: 0x6c225a20, 0xcb23: 0x6c225820, - 0xcb24: 0x6c225c20, - 0xcb2a: 0x6c226220, - 0xcb31: 0x6c0fb220, 0xcb33: 0x6c225620, - 0xcb39: 0x6c225e20, - // Block 0x32d, offset 0xcb40 - 0xcb40: 0x6c05aa20, 0xcb41: 0x6c0dea20, 0xcb42: 0x6c225220, 0xcb43: 0x6c111a20, - 0xcb46: 0x6c226020, - 0xcb54: 0x6c226a20, 0xcb55: 0x6c226620, - 0xcb58: 0x6c226c20, 0xcb5b: 0x6c227220, - 0xcb5f: 0x6c226420, - 0xcb60: 0x6c073020, 0xcb61: 0x6c10f420, - 0xcb64: 0x6c21a420, - 0xcb6b: 0x6c15f420, - 0xcb6c: 0x6c226820, 0xcb6e: 0x6c227020, 0xcb6f: 0x6c0de220, - 0xcb71: 0x6c226e20, 0xcb73: 0x6c224420, - 0xcb76: 0x6c2e8020, - 0xcb7a: 0x6c227820, - 0xcb7e: 0x6c228020, - // Block 0x32e, offset 0xcb80 - 0xcb81: 0x6c227c20, - 0xcb89: 0x6c227420, 0xcb8b: 0x6c227620, - 0xcb8f: 0x6c227e20, - 0xcb91: 0x6c227a20, - 0xcb95: 0x6c12b820, - 0xcb98: 0x6c228a20, 0xcb9a: 0x6c228420, 0xcb9b: 0x6c228220, - 0xcb9d: 0x6c228820, 0xcb9e: 0x6c109020, 0xcb9f: 0x6c228c20, - 0xcba6: 0x6c0e9e20, 0xcba7: 0x6c0dd220, - 0xcbac: 0x6c0bca20, - 0xcbb0: 0x6c228e20, 0xcbb2: 0x6c229220, - 0xcbbe: 0x6c229020, - // Block 0x32f, offset 0xcbc0 - 0xcbcc: 0x6c221c20, - 0xcbd1: 0x6c229420, - 0xcbd8: 0x6c10b620, - 0xcbe3: 0x6c229620, - 0xcbeb: 0x6c01d820, - 0xcbef: 0x6c101420, - 0xcbf0: 0x6c023e20, - 0xcbf8: 0x6c043420, - 0xcbfc: 0x6c094c20, 0xcbfd: 0x6c07bc20, - // Block 0x330, offset 0xcc00 - 0xcc09: 0x6c16d220, 0xcc0a: 0x6c0b9020, - 0xcc0e: 0x6c015020, - 0xcc12: 0x6c229a20, - 0xcc19: 0x6c229820, - 0xcc2c: 0x6c22a020, 0xcc2d: 0x6c0e2820, 0xcc2e: 0x6c22a620, 0xcc2f: 0x6c229c20, - 0xcc33: 0x6c22a420, - 0xcc38: 0x6c22a220, 0xcc39: 0x6c0fac20, 0xcc3a: 0x6c007220, - // Block 0x331, offset 0xcc40 - 0xcc48: 0x6c16b220, 0xcc4b: 0x6c22aa20, - 0xcc4f: 0x6c00cc20, - 0xcc59: 0x6c22ae20, - 0xcc5d: 0x6c22ac20, 0xcc5f: 0x6c22a820, - 0xcc71: 0x6c229e20, - 0xcc79: 0x6c13da20, - 0xcc7d: 0x6c22b220, - // Block 0x332, offset 0xcc80 - 0xcc89: 0x6c22b020, - 0xcc94: 0x6c015220, - 0xcc99: 0x6c22b620, 0xcc9a: 0x6c133c20, - 0xcc9c: 0x6c22b420, - 0xcca1: 0x6c14ba20, - 0xcca6: 0x6c0a9620, - 0xccb6: 0x6c0ca220, - 0xccbc: 0x6c0a9420, - // Block 0x333, offset 0xccc0 - 0xccc9: 0x6c16be20, - 0xcccc: 0x6c22c220, 0xccce: 0x6c0c7220, - 0xccd5: 0x6c22ba20, 0xccd6: 0x6c22c420, - 0xccd9: 0x6c015420, - 0xcce2: 0x6c22c020, - 0xcce4: 0x6c116620, 0xcce5: 0x6c22b820, 0xcce6: 0x6c22be20, 0xcce7: 0x6c0a9820, - 0xcce9: 0x6c120220, - 0xccec: 0x6c22c620, 0xccee: 0x6c093220, - 0xccfd: 0x6c0c7420, - // Block 0x334, offset 0xcd00 - 0xcd04: 0x6c22cc20, - 0xcd08: 0x6c22bc20, 0xcd0a: 0x6c053220, - 0xcd0f: 0x6c22c820, - 0xcd14: 0x6c15ac20, 0xcd15: 0x6c22ce20, - 0xcd19: 0x6c31a620, - 0xcd1f: 0x6c09ea20, - 0xcd28: 0x6c22d020, - 0xcd2c: 0x6c22d220, - 0xcd31: 0x6c110020, - 0xcd39: 0x6c22d620, - 0xcd3e: 0x6c22d820, - // Block 0x335, offset 0xcd40 - 0xcd43: 0x6c110a20, - 0xcd48: 0x6c101620, 0xcd49: 0x6c22dc20, - 0xcd4e: 0x6c22e020, - 0xcd50: 0x6c167220, 0xcd52: 0x6c22da20, - 0xcd54: 0x6c22de20, 0xcd55: 0x6c015620, 0xcd57: 0x6c22d420, - 0xcd5f: 0x6c19d420, - 0xcd60: 0x6c22e220, - 0xcd65: 0x6c0d0a20, 0xcd66: 0x6c084420, 0xcd67: 0x6c22e620, - 0xcd6c: 0x6c22e420, 0xcd6d: 0x6c0b0c20, 0xcd6e: 0x6c191420, - 0xcd75: 0x6c22e820, - 0xcd79: 0x6c22ec20, 0xcd7b: 0x6c22ca20, - 0xcd7c: 0x6c22ea20, 0xcd7f: 0x6c22ee20, - // Block 0x336, offset 0xcd80 - 0xcd86: 0x6c119820, - 0xcd8d: 0x6c22f020, - 0xcd90: 0x6c22f220, - 0xcd9b: 0x6c22f420, - 0xcda8: 0x6c22f620, 0xcdaa: 0x6c0f2c20, - 0xcdac: 0x6c22fa20, 0xcdad: 0x6c22f820, - 0xcdb0: 0x6c22fc20, 0xcdb2: 0x6c22fe20, - 0xcdb5: 0x6c094e20, 0xcdb6: 0x6c12e220, - 0xcdba: 0x6c152820, 0xcdbb: 0x6c230020, - 0xcdbc: 0x6c230220, 0xcdbd: 0x6c0ce820, 0xcdbe: 0x6c08d820, 0xcdbf: 0x6c230420, - // Block 0x337, offset 0xcdc0 - 0xcdc0: 0x6c230620, - 0xcdc6: 0x6c230820, 0xcdc7: 0x6c137c20, - 0xcdc8: 0x6c11ee20, 0xcdcb: 0x6c230a20, - 0xcdcc: 0x6c115220, - 0xcdd2: 0x6c0eca20, - 0xcdd8: 0x6c230c20, 0xcdd9: 0x6c020620, 0xcddb: 0x6c044620, - 0xcddd: 0x6c14dc20, 0xcddf: 0x6c14bc20, - 0xcde1: 0x6c01a020, 0xcde2: 0x6c16ec20, - 0xcde7: 0x6c143820, - 0xcde9: 0x6c132c20, - 0xcdf2: 0x6c0bee20, - 0xcdf4: 0x6c230e20, - 0xcdf9: 0x6c106e20, - 0xcdfd: 0x6c05e620, 0xcdfe: 0x6c231020, - // Block 0x338, offset 0xce00 - 0xce00: 0x6c07c020, 0xce01: 0x6c231420, 0xce02: 0x6c231220, - 0xce07: 0x6c231620, - 0xce12: 0x6c231820, - 0xce16: 0x6c231a20, - 0xce20: 0x6c03e820, 0xce22: 0x6c231c20, - 0xce27: 0x6c231e20, - 0xce2c: 0x6c05e820, 0xce2f: 0x6c11f020, - 0xce32: 0x6c232220, - 0xce36: 0x6c0af220, - 0xce39: 0x6c232020, - // Block 0x339, offset 0xce40 - 0xce42: 0x6c049820, 0xce43: 0x6c232420, - 0xce44: 0x6c232820, 0xce46: 0x6c232620, - 0xce4e: 0x6c232a20, - 0xce50: 0x6c064220, 0xce52: 0x6c232c20, - 0xce57: 0x6c04fa20, - 0xce59: 0x6c0cbc20, 0xce5b: 0x6c075620, - 0xce60: 0x6c233020, 0xce61: 0x6c233220, 0xce62: 0x6c232e20, - 0xce69: 0x6c096a20, - 0xce6c: 0x6c107820, 0xce6d: 0x6c049a20, - 0xce77: 0x6c233620, - 0xce78: 0x6c0e0c20, 0xce79: 0x6c233420, - 0xce7c: 0x6c16ee20, 0xce7d: 0x6c116820, - // Block 0x33a, offset 0xce80 - 0xce8a: 0x6c233c20, - 0xce96: 0x6c234020, 0xce97: 0x6c233a20, - 0xce9b: 0x6c14f820, - 0xce9c: 0x6c233e20, 0xce9d: 0x6c234220, 0xce9f: 0x6c165020, - 0xcea5: 0x6c234a20, - 0xcea9: 0x6c234820, 0xceaa: 0x6c0ea020, 0xceab: 0x6c10fe20, - 0xceae: 0x6c05ea20, 0xceaf: 0x6c234620, - 0xceb4: 0x6c234420, 0xceb6: 0x6c156e20, 0xceb7: 0x6c157020, - 0xcebe: 0x6c234c20, 0xcebf: 0x6c015820, - // Block 0x33b, offset 0xcec0 - 0xcec4: 0x6c074820, 0xcec5: 0x6c089820, - 0xcece: 0x6c234e20, 0xcecf: 0x6c235020, - 0xced7: 0x6c235420, - 0xcee3: 0x6c09d220, - 0xcee8: 0x6c235820, 0xceea: 0x6c235620, - 0xcef0: 0x6c235a20, 0xcef2: 0x6c028e20, - 0xcef5: 0x6c235e20, - 0xcef8: 0x6c235c20, 0xcefa: 0x6c236220, 0xcefb: 0x6c236020, - // Block 0x33c, offset 0xcf00 - 0xcf04: 0x6c061820, 0xcf07: 0x6c161820, - 0xcf09: 0x6c04c020, 0xcf0b: 0x6c018420, - 0xcf16: 0x6c04fc20, - 0xcf29: 0x6c037220, - 0xcf32: 0x6c169820, 0xcf33: 0x6c236620, - 0xcf3b: 0x6c236a20, - // Block 0x33d, offset 0xcf40 - 0xcf40: 0x6c236c20, 0xcf42: 0x6c01da20, - 0xcf48: 0x6c236420, 0xcf4a: 0x6c084620, - 0xcf4d: 0x6c0ef220, 0xcf4e: 0x6c236820, - 0xcf5e: 0x6c237220, - 0xcf60: 0x6c096c20, - 0xcf65: 0x6c236e20, - 0xcf6a: 0x6c056020, - 0xcf6d: 0x6c11f220, 0xcf6e: 0x6c237020, - 0xcf71: 0x6c23a620, - 0xcf78: 0x6c237c20, - 0xcf7e: 0x6c061a20, - // Block 0x33e, offset 0xcf80 - 0xcf83: 0x6c043620, - 0xcf85: 0x6c237620, 0xcf86: 0x6c160620, - 0xcf89: 0x6c162820, - 0xcfa2: 0x6c0de420, - 0xcfa5: 0x6c237a20, - 0xcfb2: 0x6c237e20, 0xcfb3: 0x6c167420, - 0xcfb4: 0x6c04d620, 0xcfb5: 0x6c125820, 0xcfb6: 0x6c113820, - 0xcfba: 0x6c238020, - 0xcfbf: 0x6c238420, - // Block 0x33f, offset 0xcfc0 - 0xcfc1: 0x6c238a20, - 0xcfd5: 0x6c238220, - 0xcfd9: 0x6c238820, 0xcfda: 0x6c067420, 0xcfdb: 0x6c011620, - 0xcfdc: 0x6c238c20, 0xcfde: 0x6c0ba420, 0xcfdf: 0x6c238620, - 0xcfe0: 0x6c168020, 0xcfe3: 0x6c239220, - 0xcfe4: 0x6c31a220, - 0xcfe9: 0x6c238e20, 0xcfea: 0x6c239420, - 0xcfef: 0x6c237820, - 0xcff0: 0x6c239020, 0xcff3: 0x6c079020, - 0xcff6: 0x6c239620, - 0xcffe: 0x6c239820, - // Block 0x340, offset 0xd000 - 0xd003: 0x6c160820, - 0xd00b: 0x6c239a20, - 0xd01e: 0x6c239c20, - 0xd022: 0x6c237420, - 0xd027: 0x6c239e20, - 0xd030: 0x6c033820, - 0xd03d: 0x6c08da20, - // Block 0x341, offset 0xd040 - 0xd04a: 0x6c23a020, - 0xd04f: 0x6c23a220, - 0xd054: 0x6c23a420, - 0xd05c: 0x6c00f220, - 0xd060: 0x6c23a820, 0xd062: 0x6c129220, 0xd063: 0x6c23aa20, - 0xd066: 0x6c02f820, 0xd067: 0x6c23ac20, - 0xd069: 0x6c23ae20, - 0xd06e: 0x6c23b020, - 0xd070: 0x6c23b420, 0xd071: 0x6c23b620, 0xd072: 0x6c23b220, - 0xd076: 0x6c12c220, 0xd077: 0x6c23ba20, - 0xd078: 0x6c23b820, - // Block 0x342, offset 0xd080 - 0xd083: 0x6c23be20, - 0xd084: 0x6c23bc20, 0xd085: 0x6c23c020, - 0xd08c: 0x6c23c220, 0xd08d: 0x6c23c620, 0xd08e: 0x6c23c420, - 0xd091: 0x6c074e20, 0xd093: 0x6c23ca20, - 0xd095: 0x6c23c820, - 0xd098: 0x6c033a20, 0xd09a: 0x6c0b6a20, - 0xd09c: 0x6c0fa420, 0xd09e: 0x6c23cc20, 0xd09f: 0x6c0bf020, - 0xd0a3: 0x6c084820, - 0xd0a5: 0x6c016e20, 0xd0a6: 0x6c23ce20, - 0xd0a8: 0x6c15ae20, 0xd0ab: 0x6c139e20, - 0xd0ac: 0x6c23d020, - 0xd0b0: 0x6c0fb420, 0xd0b1: 0x6c157220, 0xd0b2: 0x6c06e220, 0xd0b3: 0x6c0b3e20, - 0xd0b7: 0x6c0e4a20, - 0xd0b8: 0x6c18ca20, 0xd0ba: 0x6c0ecc20, 0xd0bb: 0x6c020820, - 0xd0bc: 0x6c23d220, - // Block 0x343, offset 0xd0c0 - 0xd0c4: 0x6c23d420, 0xd0c6: 0x6c23de20, - 0xd0c9: 0x6c23da20, 0xd0ca: 0x6c23d820, 0xd0cb: 0x6c1ec620, - 0xd0cc: 0x6c024020, 0xd0cd: 0x6c23d620, 0xd0cf: 0x6c007420, - 0xd0d1: 0x6c11b420, - 0xd0d4: 0x6c11f420, - 0xd0d9: 0x6c162a20, 0xd0da: 0x6c23e020, 0xd0db: 0x6c23dc20, - 0xd0dc: 0x6c0e6c20, 0xd0dd: 0x6c0bcc20, - 0xd0e0: 0x6c11b620, 0xd0e2: 0x6c127620, - 0xd0e4: 0x6c23e420, 0xd0e5: 0x6c162020, 0xd0e6: 0x6c057e20, 0xd0e7: 0x6c23e620, - 0xd0e9: 0x6c23e220, 0xd0ea: 0x6c120c20, 0xd0eb: 0x6c23e820, - 0xd0ed: 0x6c23ea20, - 0xd0f0: 0x6c007620, 0xd0f3: 0x6c0af420, - 0xd0f4: 0x6c23f420, 0xd0f6: 0x6c23ee20, 0xd0f7: 0x6c10c220, - 0xd0f8: 0x6c23ec20, - 0xd0ff: 0x6c03b820, - // Block 0x344, offset 0xd100 - 0xd102: 0x6c23fa20, - 0xd106: 0x6c23f020, 0xd107: 0x6c23f220, - 0xd109: 0x6c23f820, 0xd10a: 0x6c23f620, 0xd10b: 0x6c126620, - 0xd10e: 0x6c0cc020, 0xd10f: 0x6c0cbe20, - 0xd111: 0x6c03ea20, - 0xd114: 0x6c23fc20, - 0xd11a: 0x6c23fe20, - 0xd11d: 0x6c240020, - 0xd123: 0x6c240420, - 0xd125: 0x6c240220, - 0xd12b: 0x6c012820, - 0xd131: 0x6c241420, 0xd132: 0x6c123020, 0xd133: 0x6c240820, - 0xd135: 0x6c240c20, - 0xd138: 0x6c241020, 0xd139: 0x6c0b4020, - 0xd13c: 0x6c241220, 0xd13d: 0x6c240e20, 0xd13e: 0x6c091020, - // Block 0x345, offset 0xd140 - 0xd142: 0x6c240620, 0xd143: 0x6c240a20, - 0xd145: 0x6c12a020, 0xd147: 0x6c0a9a20, - 0xd14a: 0x6c241820, - 0xd14d: 0x6c241620, - 0xd152: 0x6c241a20, - 0xd154: 0x6c08dc20, 0xd155: 0x6c077620, - 0xd158: 0x6c101a20, 0xd159: 0x6c241c20, 0xd15b: 0x6c0f0620, - 0xd15e: 0x6c242020, - 0xd162: 0x6c160a20, 0xd163: 0x6c241e20, - 0xd169: 0x6c0d0e20, - 0xd170: 0x6c242a20, 0xd172: 0x6c242e20, 0xd173: 0x6c243020, - 0xd174: 0x6c0e5c20, - 0xd17a: 0x6c242c20, - 0xd17c: 0x6c242620, 0xd17e: 0x6c242220, 0xd17f: 0x6c242420, - // Block 0x346, offset 0xd180 - 0xd181: 0x6c242820, - 0xd189: 0x6c243620, 0xd18b: 0x6c243220, - 0xd18d: 0x6c243420, - 0xd19f: 0x6c243820, - 0xd1a0: 0x6c243c20, 0xd1a1: 0x6c243e20, 0xd1a2: 0x6c244020, - 0xd1a4: 0x6c244220, 0xd1a7: 0x6c243a20, - 0xd1b0: 0x6c244620, - 0xd1b4: 0x6c244420, - 0xd1bb: 0x6c244820, - // Block 0x347, offset 0xd1c0 - 0xd1c2: 0x6c165220, - 0xd1c6: 0x6c244e20, 0xd1c7: 0x6c244a20, - 0xd1c8: 0x6c244c20, - 0xd1cc: 0x6c037420, - 0xd1d2: 0x6c154c20, - 0xd1d6: 0x6c136c20, - 0xd1d8: 0x6c245220, - 0xd1dc: 0x6c245020, - 0xd1e1: 0x6c245420, 0xd1e2: 0x6c245620, - 0xd1e7: 0x6c245e20, - 0xd1e8: 0x6c245820, 0xd1e9: 0x6c245a20, 0xd1ea: 0x6c245c20, - 0xd1ec: 0x6c246020, - 0xd1f0: 0x6c246220, 0xd1f2: 0x6c246420, - 0xd1f6: 0x6c246620, - 0xd1f8: 0x6c246820, 0xd1fa: 0x6c11be20, 0xd1fb: 0x6c0fcc20, - 0xd1fc: 0x6c246a20, 0xd1fd: 0x6c118820, 0xd1fe: 0x6c128420, - // Block 0x348, offset 0xd200 - 0xd200: 0x6c246c20, 0xd203: 0x6c246e20, - 0xd204: 0x6c0f8020, 0xd206: 0x6c024220, 0xd207: 0x6c06e420, - 0xd208: 0x6c247020, 0xd20b: 0x6c247220, - 0xd20e: 0x6c247420, - 0xd210: 0x6c082620, 0xd213: 0x6c247820, - 0xd216: 0x6c247620, - 0xd219: 0x6c247a20, 0xd21a: 0x6c247c20, - 0xd22e: 0x6c123220, - 0xd230: 0x6c247e20, - 0xd234: 0x6c248020, 0xd237: 0x6c317020, - 0xd238: 0x6c248220, 0xd239: 0x6c248420, 0xd23a: 0x6c248620, - 0xd23f: 0x6c083020, - // Block 0x349, offset 0xd240 - 0xd242: 0x6c248820, 0xd243: 0x6c115020, - 0xd246: 0x6c145220, - 0xd248: 0x6c011820, 0xd24a: 0x6c012a20, - 0xd24d: 0x6c248a20, - 0xd252: 0x6c248e20, - 0xd256: 0x6c248c20, 0xd257: 0x6c100c20, - 0xd25b: 0x6c0bf220, - 0xd25c: 0x6c20e820, 0xd25e: 0x6c249020, 0xd25f: 0x6c14d220, - 0xd261: 0x6c249220, 0xd263: 0x6c033c20, - 0xd264: 0x6c120e20, 0xd265: 0x6c249420, 0xd267: 0x6c249620, - 0xd26a: 0x6c249820, - 0xd26e: 0x6c150820, - 0xd272: 0x6c14fa20, - 0xd274: 0x6c0eec20, - 0xd278: 0x6c0d1020, 0xd27b: 0x6c249c20, - 0xd27e: 0x6c0a1020, - // Block 0x34a, offset 0xd280 - 0xd281: 0x6c0a9c20, - 0xd284: 0x6c24a220, 0xd287: 0x6c24a020, - 0xd288: 0x6c249e20, 0xd289: 0x6c125a20, 0xd28b: 0x6c033e20, - 0xd28c: 0x6c05f220, - 0xd29b: 0x6c24ae20, - 0xd29e: 0x6c24a820, 0xd29f: 0x6c0b4220, - 0xd2a0: 0x6c14b420, - 0xd2a4: 0x6c24a620, 0xd2a5: 0x6c24aa20, 0xd2a6: 0x6c24ac20, - 0xd2a9: 0x6c24a420, - 0xd2b7: 0x6c24b020, - 0xd2b8: 0x6c24b220, 0xd2ba: 0x6c0ece20, - 0xd2bc: 0x6c037620, - // Block 0x34b, offset 0xd2c0 - 0xd2c0: 0x6c0e7e20, - 0xd2c7: 0x6c24b420, - 0xd2da: 0x6c24b620, 0xd2db: 0x6c24bc20, - 0xd2e1: 0x6c0b9220, 0xd2e3: 0x6c107020, - 0xd2e5: 0x6c24be20, 0xd2e6: 0x6c143a20, - 0xd2e8: 0x6c24b820, 0xd2eb: 0x6c24ba20, - 0xd2f9: 0x6c24c420, - 0xd2fe: 0x6c24c220, 0xd2ff: 0x6c24c020, - // Block 0x34c, offset 0xd300 - 0xd30b: 0x6c24c820, - 0xd30e: 0x6c24c620, - 0xd311: 0x6c24ca20, - 0xd31e: 0x6c24ce20, - 0xd320: 0x6c24cc20, - 0xd325: 0x6c137220, - 0xd32c: 0x6c09f820, 0xd32d: 0x6c165420, - 0xd330: 0x6c24d020, 0xd333: 0x6c105620, - 0xd336: 0x6c24d220, - 0xd339: 0x6c24d420, 0xd33b: 0x6c24dc20, - 0xd33c: 0x6c24d820, 0xd33d: 0x6c24da20, 0xd33f: 0x6c24d620, - // Block 0x34d, offset 0xd340 - 0xd347: 0x6c24de20, - 0xd34d: 0x6c24e020, - 0xd357: 0x6c24e220, - 0xd35a: 0x6c24e420, 0xd35b: 0x6c14be20, - 0xd35c: 0x6c24e620, - 0xd362: 0x6c153020, 0xd363: 0x6c24e820, - 0xd365: 0x6c0e5020, 0xd367: 0x6c117820, - 0xd369: 0x6c04fe20, - 0xd36d: 0x6c0e2a20, 0xd36e: 0x6c24ea20, 0xd36f: 0x6c049c20, - 0xd373: 0x6c0c2020, - 0xd37c: 0x6c24ec20, - // Block 0x34e, offset 0xd380 - 0xd382: 0x6c079220, - 0xd38c: 0x6c24ee20, - 0xd392: 0x6c24f020, - 0xd394: 0x6c05ec20, 0xd395: 0x6c07c220, - 0xd3a0: 0x6c24f420, - 0xd3a5: 0x6c0fd820, 0xd3a6: 0x6c07c420, 0xd3a7: 0x6c040820, - 0xd3b2: 0x6c13dc20, - 0xd3b4: 0x6c113a20, - 0xd3ba: 0x6c0fda20, - 0xd3bf: 0x6c071420, - // Block 0x34f, offset 0xd3c0 - 0xd3c5: 0x6c24f820, - 0xd3dd: 0x6c0a9e20, - 0xd3eb: 0x6c162c20, - 0xd3ec: 0x6c06e620, 0xd3ef: 0x6c05ee20, - 0xd3f2: 0x6c11a620, - 0xd3f4: 0x6c24fc20, - 0xd3fc: 0x6c250020, - // Block 0x350, offset 0xd400 - 0xd401: 0x6c067620, - 0xd406: 0x6c24fe20, 0xd407: 0x6c0f5c20, - 0xd40c: 0x6c250420, 0xd40d: 0x6c026220, 0xd40e: 0x6c24fa20, - 0xd411: 0x6c123420, 0xd413: 0x6c00dc20, - 0xd415: 0x6c07f020, 0xd417: 0x6c172820, - 0xd41a: 0x6c250220, - 0xd423: 0x6c250620, - 0xd427: 0x6c136e20, - 0xd429: 0x6c0c3220, 0xd42a: 0x6c250a20, - 0xd42f: 0x6c250c20, - 0xd435: 0x6c250820, - 0xd43a: 0x6c029020, - 0xd43c: 0x6c251820, 0xd43e: 0x6c251620, - // Block 0x351, offset 0xd440 - 0xd441: 0x6c08de20, - 0xd445: 0x6c251a20, 0xd446: 0x6c251020, - 0xd44a: 0x6c251c20, 0xd44b: 0x6c251220, - 0xd450: 0x6c121020, 0xd451: 0x6c250e20, - 0xd454: 0x6c251420, - 0xd45a: 0x6c252220, - 0xd467: 0x6c252020, - 0xd468: 0x6c145620, - 0xd46c: 0x6c251e20, 0xd46f: 0x6c009620, - 0xd474: 0x6c252620, - 0xd47d: 0x6c252420, - // Block 0x352, offset 0xd480 - 0xd481: 0x6c0aa020, - 0xd487: 0x6c252820, - 0xd48e: 0x6c0cc220, - 0xd491: 0x6c252c20, 0xd492: 0x6c252a20, - 0xd499: 0x6c252e20, - 0xd4a6: 0x6c24f220, - 0xd4aa: 0x6c24f620, 0xd4ab: 0x6c253220, - 0xd4ac: 0x6c253020, - 0xd4ba: 0x6c08e020, - 0xd4bc: 0x6c169a20, 0xd4be: 0x6c093420, - // Block 0x353, offset 0xd4c0 - 0xd4c0: 0x6c253420, 0xd4c1: 0x6c055220, - 0xd4c7: 0x6c03ec20, - 0xd4c8: 0x6c03ba20, 0xd4c9: 0x6c089a20, - 0xd4d0: 0x6c157420, 0xd4d3: 0x6c254020, - 0xd4d5: 0x6c253e20, 0xd4d6: 0x6c0cc420, 0xd4d7: 0x6c253820, - 0xd4da: 0x6c253c20, - 0xd4dd: 0x6c09e220, 0xd4de: 0x6c0b4420, 0xd4df: 0x6c253a20, - 0xd4e0: 0x6c253620, 0xd4e2: 0x6c10f820, - 0xd4e5: 0x6c0aa220, - 0xd4e8: 0x6c129420, - 0xd4ed: 0x6c07c620, - 0xd4f7: 0x6c101c20, - 0xd4fa: 0x6c254220, - 0xd4ff: 0x6c254420, - // Block 0x354, offset 0xd500 - 0xd500: 0x6c257020, 0xd501: 0x6c04d820, - 0xd504: 0x6c16fe20, 0xd505: 0x6c0ca620, - 0xd50a: 0x6c254620, - 0xd50d: 0x6c01dc20, 0xd50e: 0x6c0f5e20, 0xd50f: 0x6c131a20, - 0xd51d: 0x6c254820, - 0xd526: 0x6c046020, 0xd527: 0x6c254a20, - 0xd52a: 0x6c254e20, - 0xd52e: 0x6c255020, - 0xd530: 0x6c10f620, 0xd533: 0x6c255220, - 0xd539: 0x6c255420, 0xd53a: 0x6c255620, - 0xd53d: 0x6c04da20, 0xd53e: 0x6c01de20, 0xd53f: 0x6c107220, - // Block 0x355, offset 0xd540 - 0xd540: 0x6c099c20, 0xd541: 0x6c089c20, - 0xd549: 0x6c255820, 0xd54b: 0x6c099e20, - 0xd551: 0x6c01cc20, 0xd552: 0x6c12a220, - 0xd555: 0x6c255a20, - 0xd558: 0x6c123620, - 0xd55f: 0x6c0cc620, - 0xd561: 0x6c256020, 0xd563: 0x6c256220, - 0xd564: 0x6c117620, 0xd566: 0x6c0b4620, 0xd567: 0x6c255c20, - 0xd569: 0x6c0e7620, - 0xd56c: 0x6c255e20, - 0xd570: 0x6c0aa420, - 0xd57b: 0x6c007820, - // Block 0x356, offset 0xd580 - 0xd580: 0x6c03be20, - 0xd588: 0x6c256420, 0xd58b: 0x6c0f6020, - 0xd58d: 0x6c256620, 0xd58e: 0x6c0c0e20, - 0xd594: 0x6c14aa20, 0xd597: 0x6c126220, - 0xd598: 0x6c256820, 0xd599: 0x6c256a20, 0xd59a: 0x6c0e5e20, - 0xd59c: 0x6c165620, 0xd59f: 0x6c256e20, - 0xd5a0: 0x6c256c20, - 0xd5ae: 0x6c096e20, - 0xd5b1: 0x6c257220, 0xd5b2: 0x6c00a020, - 0xd5b7: 0x6c257820, - 0xd5bb: 0x6c257420, - 0xd5bc: 0x6c01e020, 0xd5bd: 0x6c058020, 0xd5be: 0x6c257620, 0xd5bf: 0x6c06e820, - // Block 0x357, offset 0xd5c0 - 0xd5c0: 0x6c074020, 0xd5c2: 0x6c13a420, 0xd5c3: 0x6c257a20, - 0xd5c6: 0x6c143c20, - 0xd5c9: 0x6c257e20, - 0xd5cd: 0x6c0c2220, 0xd5ce: 0x6c011a20, 0xd5cf: 0x6c01ac20, - 0xd5d0: 0x6c001820, - 0xd5d7: 0x6c257c20, - 0xd5e1: 0x6c258020, 0xd5e2: 0x6c258220, 0xd5e3: 0x6c0af620, - 0xd5e9: 0x6c258420, 0xd5eb: 0x6c029220, - 0xd5f0: 0x6c258820, - 0xd5f4: 0x6c05b820, 0xd5f6: 0x6c043820, - 0xd5f9: 0x6c258a20, 0xd5fa: 0x6c051220, - 0xd5fd: 0x6c258c20, 0xd5ff: 0x6c0c7820, - // Block 0x358, offset 0xd600 - 0xd601: 0x6c108220, 0xd603: 0x6c0c4020, - 0xd604: 0x6c080220, - 0xd608: 0x6c258e20, - 0xd612: 0x6c0e7820, 0xd613: 0x6c0d1220, - 0xd615: 0x6c259220, 0xd616: 0x6c259620, 0xd617: 0x6c259020, - 0xd618: 0x6c259420, - 0xd61f: 0x6c052820, - 0xd629: 0x6c259820, 0xd62a: 0x6c053020, - 0xd62e: 0x6c043a20, 0xd62f: 0x6c15b020, - 0xd630: 0x6c259c20, - 0xd636: 0x6c259e20, - 0xd63a: 0x6c00d820, - 0xd63f: 0x6c25a420, - // Block 0x359, offset 0xd640 - 0xd643: 0x6c02e020, - 0xd644: 0x6c25a220, 0xd645: 0x6c25a020, 0xd647: 0x6c25a820, - 0xd648: 0x6c259a20, 0xd64a: 0x6c25aa20, 0xd64b: 0x6c161a20, - 0xd64d: 0x6c25ac20, 0xd64f: 0x6c25ae20, - 0xd652: 0x6c1ac220, 0xd653: 0x6c25b220, - 0xd655: 0x6c25b020, - 0xd659: 0x6c25b420, 0xd65a: 0x6c25b620, - 0xd65c: 0x6c163220, 0xd65d: 0x6c25b820, 0xd65f: 0x6c2f4820, - 0xd660: 0x6c0aa620, 0xd661: 0x6c25ba20, 0xd662: 0x6c25bc20, 0xd663: 0x6c09fa20, - 0xd665: 0x6c105820, 0xd666: 0x6c25be20, - 0xd66a: 0x6c0e0420, - 0xd66d: 0x6c25c020, 0xd66f: 0x6c0e2c20, - 0xd670: 0x6c25c220, - 0xd676: 0x6c047220, - 0xd678: 0x6c182420, 0xd679: 0x6c0e6e20, 0xd67a: 0x6c08f620, - 0xd67f: 0x6c034020, - // Block 0x35a, offset 0xd680 - 0xd682: 0x6c25c420, - 0xd684: 0x6c25de20, 0xd686: 0x6c25ca20, - 0xd688: 0x6c043c20, 0xd68a: 0x6c25c820, 0xd68b: 0x6c25e220, - 0xd68f: 0x6c25c620, - 0xd691: 0x6c0aa820, - 0xd698: 0x6c25ce20, 0xd699: 0x6c25d020, 0xd69b: 0x6c0f8220, - 0xd69e: 0x6c25d220, - 0xd6a0: 0x6c02b020, - 0xd6a5: 0x6c0b7820, 0xd6a6: 0x6c12e420, - 0xd6a8: 0x6c25d620, - 0xd6ac: 0x6c0dc820, - 0xd6b3: 0x6c25cc20, - 0xd6b5: 0x6c25d420, 0xd6b6: 0x6c25d820, - 0xd6b9: 0x6c080e20, - // Block 0x35b, offset 0xd6c0 - 0xd6c5: 0x6c25e620, 0xd6c6: 0x6c127820, - 0xd6c8: 0x6c11ac20, 0xd6c9: 0x6c101e20, 0xd6cb: 0x6c04dc20, - 0xd6cc: 0x6c25e420, 0xd6cd: 0x6c25e020, 0xd6cf: 0x6c11ca20, - 0xd6d0: 0x6c25da20, 0xd6d1: 0x6c0e7020, 0xd6d2: 0x6c102220, - 0xd6d4: 0x6c102020, 0xd6d6: 0x6c080420, - 0xd6dd: 0x6c260a20, - 0xd6e5: 0x6c25ea20, 0xd6e7: 0x6c25ee20, - 0xd6ec: 0x6c25f420, 0xd6ee: 0x6c25f620, - 0xd6f0: 0x6c25f020, 0xd6f1: 0x6c25f220, - 0xd6f4: 0x6c25ec20, 0xd6f5: 0x6c25e820, - 0xd6fa: 0x6c25dc20, - // Block 0x35c, offset 0xd700 - 0xd706: 0x6c137620, 0xd707: 0x6c01e220, - 0xd70b: 0x6c260420, - 0xd70d: 0x6c25fe20, 0xd70f: 0x6c260820, - 0xd712: 0x6c260620, - 0xd714: 0x6c118a20, 0xd715: 0x6c149e20, 0xd717: 0x6c084a20, - 0xd718: 0x6c25fa20, 0xd719: 0x6c260c20, 0xd71a: 0x6c260220, - 0xd71c: 0x6c260020, 0xd71d: 0x6c25f820, 0xd71f: 0x6c25fc20, - 0xd721: 0x6c034220, - 0xd72a: 0x6c0e2e20, - 0xd72d: 0x6c0c7a20, - 0xd731: 0x6c11a420, - 0xd734: 0x6c261620, - 0xd738: 0x6c11a820, - // Block 0x35d, offset 0xd740 - 0xd740: 0x6c0c4220, 0xd741: 0x6c261020, - 0xd744: 0x6c11fe20, 0xd746: 0x6c261820, 0xd747: 0x6c137e20, - 0xd749: 0x6c0e6a20, 0xd74b: 0x6c260e20, - 0xd74c: 0x6c261220, 0xd74f: 0x6c261420, - 0xd75d: 0x6c261a20, - 0xd760: 0x6c091820, - 0xd764: 0x6c107420, 0xd765: 0x6c262420, 0xd766: 0x6c262220, - 0xd769: 0x6c261c20, - 0xd76d: 0x6c16f020, - 0xd773: 0x6c262e20, - 0xd776: 0x6c263620, 0xd777: 0x6c263020, - // Block 0x35e, offset 0xd780 - 0xd780: 0x6c262820, - 0xd787: 0x6c262a20, - 0xd78d: 0x6c263420, - 0xd791: 0x6c261e20, 0xd792: 0x6c190c20, 0xd793: 0x6c262c20, - 0xd794: 0x6c262020, 0xd797: 0x6c263220, - 0xd79f: 0x6c263e20, - 0xd7a1: 0x6c034420, 0xd7a3: 0x6c263820, - 0xd7a7: 0x6c263a20, - 0xd7aa: 0x6c263c20, 0xd7ab: 0x6c264220, - 0xd7b7: 0x6c264020, - 0xd7b8: 0x6c124c20, - 0xd7bd: 0x6c264420, 0xd7be: 0x6c16c020, 0xd7bf: 0x6c13b220, - // Block 0x35f, offset 0xd7c0 - 0xd7c0: 0x6c264e20, 0xd7c3: 0x6c264820, - 0xd7cc: 0x6c264620, 0xd7cd: 0x6c0c2420, 0xd7cf: 0x6c264c20, - 0xd7d0: 0x6c265020, - 0xd7d4: 0x6c264a20, 0xd7d6: 0x6c265820, - 0xd7d8: 0x6c265220, - 0xd7df: 0x6c265420, - 0xd7e0: 0x6c262620, - 0xd7e4: 0x6c265620, 0xd7e5: 0x6c265a20, - 0xd7ec: 0x6c265c20, - 0xd7f3: 0x6c136420, - 0xd7f5: 0x6c265e20, - 0xd7fe: 0x6c151420, - // Block 0x360, offset 0xd800 - 0xd801: 0x6c04c420, 0xd802: 0x6c053620, 0xd803: 0x6c266020, - 0xd809: 0x6c134020, 0xd80b: 0x6c0b9420, - 0xd80d: 0x6c14b020, - 0xd810: 0x6c266220, 0xd812: 0x6c162e20, - 0xd815: 0x6c118c20, 0xd817: 0x6c0cc820, - 0xd818: 0x6c110c20, 0xd81b: 0x6c09e620, - 0xd81f: 0x6c004020, - 0xd821: 0x6c266c20, 0xd822: 0x6c266820, - 0xd824: 0x6c266420, 0xd825: 0x6c02f220, 0xd827: 0x6c0aaa20, - 0xd828: 0x6c266e20, 0xd82b: 0x6c266a20, - 0xd82d: 0x6c266620, 0xd82e: 0x6c267620, - 0xd831: 0x6c267420, 0xd832: 0x6c267220, 0xd833: 0x6c267020, - 0xd839: 0x6c267820, - 0xd83d: 0x6c267a20, 0xd83e: 0x6c0bf420, - // Block 0x361, offset 0xd840 - 0xd840: 0x6c267c20, 0xd842: 0x6c268020, - 0xd845: 0x6c267e20, - 0xd84a: 0x6c064420, - 0xd84e: 0x6c0cac20, - 0xd852: 0x6c268420, - 0xd856: 0x6c102420, - 0xd858: 0x6c268220, - 0xd85c: 0x6c268620, 0xd85e: 0x6c134220, 0xd85f: 0x6c0d1420, - 0xd860: 0x6c06ea20, 0xd862: 0x6c268820, - 0xd867: 0x6c165820, - 0xd86f: 0x6c268c20, - 0xd872: 0x6c268e20, - 0xd874: 0x6c269020, 0xd876: 0x6c269220, - 0xd878: 0x6c089e20, 0xd87a: 0x6c269420, 0xd87b: 0x6c058220, - 0xd87e: 0x6c044020, - // Block 0x362, offset 0xd880 - 0xd880: 0x6c03c020, 0xd882: 0x6c269820, - 0xd884: 0x6c153620, 0xd885: 0x6c06ec20, 0xd886: 0x6c269620, - 0xd88a: 0x6c269e20, 0xd88b: 0x6c151c20, - 0xd88d: 0x6c111c20, - 0xd890: 0x6c128220, - 0xd894: 0x6c0a1220, 0xd895: 0x6c269c20, 0xd897: 0x6c093620, - 0xd898: 0x6c06ee20, 0xd899: 0x6c08a020, 0xd89a: 0x6c043e20, 0xd89b: 0x6c134420, - 0xd89c: 0x6c269a20, - 0xd8a0: 0x6c0cca20, 0xd8a1: 0x6c141820, 0xd8a2: 0x6c080620, - 0xd8ab: 0x6c08a220, - 0xd8ac: 0x6c0f2a20, 0xd8ae: 0x6c26a420, 0xd8af: 0x6c168620, - 0xd8b0: 0x6c07ca20, 0xd8b2: 0x6c26a620, 0xd8b3: 0x6c0b4820, - 0xd8b5: 0x6c26aa20, - 0xd8b9: 0x6c0aac20, 0xd8ba: 0x6c077820, - 0xd8bf: 0x6c26a820, - // Block 0x363, offset 0xd8c0 - 0xd8c2: 0x6c09a020, 0xd8c3: 0x6c061c20, - 0xd8c4: 0x6c0ccc20, 0xd8c5: 0x6c26a020, 0xd8c6: 0x6c26ac20, - 0xd8cb: 0x6c26a220, - 0xd8cc: 0x6c058420, 0xd8ce: 0x6c26b220, 0xd8cf: 0x6c26ba20, - 0xd8d0: 0x6c05ba20, - 0xd8d6: 0x6c26b020, - 0xd8db: 0x6c26c220, - 0xd8de: 0x6c06f020, - 0xd8e1: 0x6c15e620, 0xd8e2: 0x6c003820, 0xd8e3: 0x6c26bc20, - 0xd8e6: 0x6c044220, - 0xd8e8: 0x6c26b620, - 0xd8ee: 0x6c26b820, - 0xd8f1: 0x6c102620, 0xd8f2: 0x6c26b420, 0xd8f3: 0x6c26ae20, - 0xd8f5: 0x6c024420, 0xd8f6: 0x6c0c4820, - 0xd8f9: 0x6c05f020, - 0xd8fd: 0x6c26c620, - // Block 0x364, offset 0xd900 - 0xd909: 0x6c26c020, - 0xd90f: 0x6c26c420, - 0xd913: 0x6c26be20, - 0xd919: 0x6c058620, 0xd91a: 0x6c0d5e20, 0xd91b: 0x6c26c820, - 0xd91c: 0x6c0d1820, 0xd91f: 0x6c26e220, - 0xd922: 0x6c26da20, 0xd923: 0x6c26ce20, - 0xd92b: 0x6c26d620, - 0xd92c: 0x6c098420, 0xd92d: 0x6c007a20, 0xd92e: 0x6c26cc20, 0xd92f: 0x6c26dc20, - 0xd930: 0x6c26e420, 0xd931: 0x6c06f220, 0xd932: 0x6c14fc20, - 0xd934: 0x6c0f1c20, 0xd935: 0x6c26d020, - 0xd938: 0x6c26e020, 0xd93a: 0x6c26ca20, 0xd93b: 0x6c0e3020, - 0xd93d: 0x6c26d420, 0xd93e: 0x6c003a20, 0xd93f: 0x6c14e420, - // Block 0x365, offset 0xd940 - 0xd947: 0x6c26d220, - 0xd94a: 0x6c04de20, 0xd94b: 0x6c123820, - 0xd94f: 0x6c0d1620, - 0xd951: 0x6c166820, 0xd952: 0x6c0a2a20, - 0xd955: 0x6c273220, - 0xd958: 0x6c26e620, 0xd95a: 0x6c0c7c20, - 0xd95c: 0x6c26de20, 0xd95d: 0x6c26e820, 0xd95e: 0x6c26ec20, - 0xd960: 0x6c0f6220, 0xd961: 0x6c26f220, - 0xd964: 0x6c26ea20, - 0xd968: 0x6c138020, 0xd969: 0x6c034620, - 0xd96c: 0x6c14e620, 0xd96f: 0x6c007c20, - 0xd972: 0x6c26f020, - 0xd974: 0x6c16c220, - 0xd97b: 0x6c26ee20, - // Block 0x366, offset 0xd980 - 0xd981: 0x6c015a20, - 0xd984: 0x6c10c020, 0xd985: 0x6c26f420, - 0xd989: 0x6c270220, 0xd98a: 0x6c26f620, 0xd98b: 0x6c270420, - 0xd992: 0x6c26fc20, - 0xd99b: 0x6c119a20, - 0xd99e: 0x6c092420, 0xd99f: 0x6c270020, - 0xd9a1: 0x6c26fa20, 0xd9a2: 0x6c270620, 0xd9a3: 0x6c26f820, - 0xd9a6: 0x6c09d420, - 0xd9ab: 0x6c13de20, - 0xd9ae: 0x6c09e420, - 0xd9b1: 0x6c26fe20, 0xd9b2: 0x6c271620, - 0xd9b5: 0x6c270e20, 0xd9b7: 0x6c271420, - 0xd9b9: 0x6c271020, 0xd9ba: 0x6c271820, 0xd9bb: 0x6c270c20, - 0xd9bd: 0x6c26d820, 0xd9be: 0x6c0c2620, - // Block 0x367, offset 0xd9c0 - 0xd9c1: 0x6c11f620, 0xd9c3: 0x6c271220, - 0xd9c6: 0x6c270820, - 0xd9ca: 0x6c0c7e20, 0xd9cb: 0x6c058820, - 0xd9cd: 0x6c09a220, - 0xd9d4: 0x6c0b0e20, 0xd9d5: 0x6c0ca820, 0xd9d6: 0x6c271e20, - 0xd9d9: 0x6c272220, 0xd9da: 0x6c272420, - 0xd9dd: 0x6c271c20, 0xd9de: 0x6c272020, - 0xd9e6: 0x6c270a20, 0xd9e7: 0x6c271a20, - 0xd9e9: 0x6c272a20, 0xd9ea: 0x6c272820, - 0xd9ed: 0x6c148820, - 0xd9f0: 0x6c053a20, - 0xd9f9: 0x6c272620, 0xd9fb: 0x6c272e20, - 0xd9fc: 0x6c272c20, 0xd9fd: 0x6c273420, 0xd9ff: 0x6c273820, - // Block 0x368, offset 0xda00 - 0xda02: 0x6c084c20, 0xda03: 0x6c273020, - 0xda08: 0x6c273a20, 0xda09: 0x6c273c20, - 0xda0c: 0x6c273e20, 0xda0e: 0x6c274a20, 0xda0f: 0x6c0fa220, - 0xda10: 0x6c274220, 0xda12: 0x6c274020, 0xda13: 0x6c274420, - 0xda14: 0x6c274620, 0xda16: 0x6c274820, - 0xda1b: 0x6c274c20, - 0xda1c: 0x6c274e20, - // Block 0x369, offset 0xda40 - 0xda76: 0x6c034820, - 0xda78: 0x6c275020, 0xda7a: 0x6c275220, - // Block 0x36a, offset 0xda80 - 0xda85: 0x6c275420, - 0xda8c: 0x6c275620, 0xda8d: 0x6c275820, 0xda8e: 0x6c275a20, - 0xda90: 0x6c275c20, 0xda91: 0x6c275e20, - 0xda94: 0x6c276220, 0xda95: 0x6c276020, - 0xda98: 0x6c276420, - 0xda9f: 0x6c276620, - 0xdaa0: 0x6c276820, - 0xdaa7: 0x6c276e20, - 0xdaa8: 0x6c276a20, 0xdaa9: 0x6c276c20, 0xdaaa: 0x6c07da20, 0xdaab: 0x6c058a20, - 0xdaae: 0x6c0e6020, - 0xdab0: 0x6c11c620, 0xdab2: 0x6c0a2c20, - 0xdab5: 0x6c113e20, 0xdab7: 0x6c123a20, - 0xdab8: 0x6c277020, 0xdab9: 0x6c1da420, - // Block 0x36b, offset 0xdac0 - 0xdac2: 0x6c277220, 0xdac3: 0x6c277620, - 0xdac5: 0x6c15d620, 0xdac6: 0x6c277420, 0xdac7: 0x6c277a20, - 0xdac8: 0x6c277820, 0xdaca: 0x6c15b220, - 0xdacc: 0x6c277c20, 0xdace: 0x6c125c20, - 0xdad4: 0x6c277e20, - 0xdada: 0x6c278420, - 0xdadd: 0x6c278220, 0xdade: 0x6c278020, - 0xdae3: 0x6c278620, - 0xdae4: 0x6c054820, - 0xdae8: 0x6c0c8020, 0xdae9: 0x6c03ee20, - 0xdaee: 0x6c278e20, 0xdaef: 0x6c278820, - 0xdaf2: 0x6c278a20, - 0xdaf6: 0x6c279020, - 0xdaf8: 0x6c279220, 0xdaf9: 0x6c278c20, - 0xdafd: 0x6c00ce20, - // Block 0x36c, offset 0xdb00 - 0xdb01: 0x6c018620, - 0xdb05: 0x6c279620, 0xdb06: 0x6c279820, - 0xdb0a: 0x6c279a20, - 0xdb0c: 0x6c15d020, - 0xdb12: 0x6c09a420, - 0xdb14: 0x6c279e20, 0xdb15: 0x6c279c20, - 0xdb20: 0x6c0b9620, 0xdb21: 0x6c27a020, - 0xdb26: 0x6c27a220, - 0xdb29: 0x6c27a420, 0xdb2b: 0x6c037a20, - 0xdb30: 0x6c034a20, 0xdb33: 0x6c27a620, - 0xdb39: 0x6c27a820, 0xdb3b: 0x6c144e20, - 0xdb3c: 0x6c15d220, - // Block 0x36d, offset 0xdb40 - 0xdb40: 0x6c15b420, 0xdb41: 0x6c16f220, 0xdb43: 0x6c06f620, - 0xdb44: 0x6c27ae20, 0xdb45: 0x6c093820, 0xdb46: 0x6c27ac20, - 0xdb4b: 0x6c27b020, - 0xdb4c: 0x6c08e220, - 0xdb50: 0x6c0d9a20, 0xdb52: 0x6c27b220, - 0xdb55: 0x6c06f420, 0xdb57: 0x6c14fe20, - 0xdb58: 0x6c27b420, 0xdb59: 0x6c27b620, - 0xdb5c: 0x6c27b820, - 0xdb61: 0x6c27ba20, - 0xdb68: 0x6c27bc20, - 0xdb73: 0x6c08e420, - 0xdb76: 0x6c152a20, - 0xdb7b: 0x6c27c020, - 0xdb7d: 0x6c0e3220, 0xdb7f: 0x6c27be20, - // Block 0x36e, offset 0xdb80 - 0xdb86: 0x6c27c420, - 0xdb8a: 0x6c27c220, - 0xdb92: 0x6c27c620, - 0xdb96: 0x6c0bf620, - 0xdb98: 0x6c27c820, 0xdb9a: 0x6c27ca20, - 0xdb9e: 0x6c134a20, 0xdb9f: 0x6c27cc20, - 0xdba1: 0x6c0d1a20, 0xdba2: 0x6c27ce20, - 0xdba8: 0x6c27d020, - 0xdbaf: 0x6c16c420, - 0xdbb0: 0x6c27d620, 0xdbb2: 0x6c27d420, 0xdbb3: 0x6c27d220, - 0xdbb4: 0x6c0ed020, 0xdbb6: 0x6c27d820, 0xdbb7: 0x6c0b1020, - 0xdbb9: 0x6c27da20, - 0xdbbd: 0x6c27dc20, 0xdbbe: 0x6c16f420, 0xdbbf: 0x6c27de20, - // Block 0x36f, offset 0xdbc0 - 0xdbc4: 0x6c27e020, 0xdbc5: 0x6c27e420, 0xdbc6: 0x6c27e220, 0xdbc7: 0x6c11aa20, - 0xdbc9: 0x6c10da20, 0xdbcb: 0x6c170020, - 0xdbcc: 0x6c11b220, - 0xdbd3: 0x6c27e820, - 0xdbd6: 0x6c0aae20, - 0xdbd8: 0x6c127020, 0xdbda: 0x6c27ea20, 0xdbdb: 0x6c27e620, - 0xdbdd: 0x6c034c20, - 0xdbe1: 0x6c064820, 0xdbe2: 0x6c08a420, - 0xdbe5: 0x6c123c20, - 0xdbe9: 0x6c05f420, 0xdbea: 0x6c141a20, - 0xdbec: 0x6c27f020, 0xdbed: 0x6c27ec20, 0xdbef: 0x6c06f820, - 0xdbf1: 0x6c06fa20, 0xdbf2: 0x6c009220, - 0xdbf4: 0x6c07e820, - 0xdbfa: 0x6c115620, - // Block 0x370, offset 0xdc00 - 0xdc03: 0x6c007e20, - 0xdc04: 0x6c27fa20, 0xdc06: 0x6c0e3420, - 0xdc0c: 0x6c115420, 0xdc0e: 0x6c0dae20, - 0xdc16: 0x6c27fe20, - 0xdc19: 0x6c27f620, 0xdc1a: 0x6c27fc20, 0xdc1b: 0x6c27f220, - 0xdc1d: 0x6c27f820, 0xdc1e: 0x6c13e020, - 0xdc21: 0x6c064a20, - 0xdc24: 0x6c00ba20, 0xdc25: 0x6c27f420, - 0xdc2f: 0x6c280220, - 0xdc31: 0x6c280420, - 0xdc34: 0x6c105a20, - 0xdc38: 0x6c049e20, - 0xdc3c: 0x6c281a20, 0xdc3d: 0x6c111e20, - // Block 0x371, offset 0xdc40 - 0xdc42: 0x6c08a620, - 0xdc45: 0x6c04a020, 0xdc46: 0x6c0c1020, 0xdc47: 0x6c171020, - 0xdc48: 0x6c14ac20, 0xdc49: 0x6c280020, 0xdc4a: 0x6c0c2820, - 0xdc5a: 0x6c041220, 0xdc5b: 0x6c280620, - 0xdc63: 0x6c280a20, - 0xdc69: 0x6c280820, - 0xdc6f: 0x6c280c20, - 0xdc71: 0x6c0e0020, 0xdc73: 0x6c112020, - 0xdc79: 0x6c0ed220, - 0xdc7e: 0x6c281420, - // Block 0x372, offset 0xdc80 - 0xdc86: 0x6c281220, - 0xdc8b: 0x6c280e20, - 0xdc8e: 0x6c0b6e20, - 0xdc90: 0x6c12e620, 0xdc91: 0x6c281820, 0xdc93: 0x6c281620, - 0xdc94: 0x6c06fc20, 0xdc95: 0x6c172a20, - 0xdc9f: 0x6c283820, - 0xdca5: 0x6c282020, 0xdca6: 0x6c282220, - 0xdcab: 0x6c097020, - 0xdcae: 0x6c281e20, - 0xdcb0: 0x6c074c20, 0xdcb1: 0x6c281c20, - 0xdcb4: 0x6c282420, - 0xdcb8: 0x6c0ed420, 0xdcb9: 0x6c131c20, 0xdcba: 0x6c0c8220, - 0xdcbf: 0x6c0db020, - // Block 0x373, offset 0xdcc0 - 0xdcc0: 0x6c282c20, 0xdcc2: 0x6c282e20, 0xdcc3: 0x6c282620, - 0xdcc8: 0x6c282820, 0xdcca: 0x6c282a20, - 0xdccf: 0x6c06fe20, - 0xdcd3: 0x6c283a20, - 0xdcd5: 0x6c283220, - 0xdcda: 0x6c12e820, - 0xdcdc: 0x6c146c20, 0xdcdd: 0x6c126c20, - 0xdce0: 0x6c283020, 0xdce3: 0x6c283620, - 0xdce4: 0x6c283420, - 0xdce8: 0x6c141c20, 0xdce9: 0x6c283c20, - 0xdcf0: 0x6c283e20, 0xdcf3: 0x6c0caa20, - 0xdcf5: 0x6c284020, - 0xdcf8: 0x6c284420, 0xdcfa: 0x6c284c20, - 0xdcfd: 0x6c284620, 0xdcfe: 0x6c284220, 0xdcff: 0x6c112220, - // Block 0x374, offset 0xdd00 - 0xdd00: 0x6c284820, 0xdd02: 0x6c284a20, - 0xdd06: 0x6c019c20, - 0xdd08: 0x6c285820, 0xdd09: 0x6c284e20, - 0xdd0d: 0x6c285020, - 0xdd11: 0x6c285220, 0xdd13: 0x6c0d3a20, - 0xdd18: 0x6c285620, 0xdd19: 0x6c285420, 0xdd1a: 0x6c285a20, - 0xdd1f: 0x6c285c20, - 0xdd20: 0x6c285e20, 0xdd23: 0x6c0b4a20, - 0xdd25: 0x6c020a20, 0xdd27: 0x6c286020, - 0xdd28: 0x6c167620, 0xdd2a: 0x6c08e620, - 0xdd2d: 0x6c09a620, - 0xdd33: 0x6c08a820, - 0xdd34: 0x6c0e6220, - 0xdd3a: 0x6c286220, 0xdd3b: 0x6c286420, - 0xdd3c: 0x6c00de20, 0xdd3e: 0x6c286620, - // Block 0x375, offset 0xdd40 - 0xdd41: 0x6c286820, 0xdd42: 0x6c286a20, - 0xdd45: 0x6c286c20, 0xdd47: 0x6c286e20, - 0xdd48: 0x6c04a220, 0xdd49: 0x6c1e9620, 0xdd4a: 0x6c287020, - 0xdd4c: 0x6c0c4a20, 0xdd4d: 0x6c287220, 0xdd4e: 0x6c092620, - 0xdd50: 0x6c287420, 0xdd52: 0x6c174a20, - 0xdd56: 0x6c287620, 0xdd57: 0x6c139420, - 0xdd58: 0x6c036820, 0xdd5b: 0x6c0c8420, - 0xdd5c: 0x6c09fc20, 0xdd5e: 0x6c12fe20, 0xdd5f: 0x6c09a820, - 0xdd69: 0x6c287820, 0xdd6a: 0x6c070020, 0xdd6b: 0x6c287a20, - 0xdd6c: 0x6c11f820, 0xdd6e: 0x6c289620, - 0xdd73: 0x6c287e20, - 0xdd75: 0x6c0d8a20, 0xdd76: 0x6c118e20, 0xdd77: 0x6c061e20, - 0xdd78: 0x6c287c20, 0xdd79: 0x6c0c8620, - // Block 0x376, offset 0xdd80 - 0xdd80: 0x6c288020, - 0xdd87: 0x6c0f6420, - 0xdd98: 0x6c288420, 0xdd99: 0x6c288220, 0xdd9a: 0x6c288820, - 0xdd9d: 0x6c288620, 0xdd9f: 0x6c288a20, - 0xdda2: 0x6c288e20, - 0xdda4: 0x6c288c20, 0xdda6: 0x6c034e20, - 0xdda8: 0x6c289020, 0xddaa: 0x6c289220, 0xddab: 0x6c289420, - 0xddae: 0x6c077a20, 0xddaf: 0x6c165a20, - 0xddb1: 0x6c289820, 0xddb2: 0x6c0b1220, - 0xddb6: 0x6c015c20, 0xddb7: 0x6c289a20, - 0xddb8: 0x6c289c20, - 0xddbe: 0x6c289e20, - // Block 0x377, offset 0xddc0 - 0xddcb: 0x6c00a420, - 0xddcd: 0x6c28a020, - 0xddd2: 0x6c28a220, - 0xddd9: 0x6c12ea20, - 0xdddd: 0x6c091e20, 0xdddf: 0x6c28a620, - 0xdde5: 0x6c024620, 0xdde6: 0x6c002420, - 0xddeb: 0x6c28a420, - 0xddec: 0x6c28aa20, 0xdded: 0x6c114020, 0xddef: 0x6c0b4c20, - 0xddf1: 0x6c01e420, 0xddf3: 0x6c13e220, - 0xddf8: 0x6c059e20, 0xddf9: 0x6c04e020, 0xddfb: 0x6c28a820, - 0xddfd: 0x6c020c20, - // Block 0x378, offset 0xde00 - 0xde05: 0x6c02f620, - 0xde11: 0x6c015e20, 0xde12: 0x6c28b220, 0xde13: 0x6c169c20, - 0xde14: 0x6c0db220, 0xde17: 0x6c12a420, - 0xde19: 0x6c28ca20, 0xde1b: 0x6c01e620, - 0xde1c: 0x6c28c620, 0xde1e: 0x6c28c220, 0xde1f: 0x6c28b020, - 0xde21: 0x6c28ac20, 0xde23: 0x6c28ae20, - 0xde25: 0x6c095620, 0xde26: 0x6c050020, 0xde27: 0x6c0ea220, - 0xde2b: 0x6c108a20, - 0xde31: 0x6c011e20, 0xde33: 0x6c28b620, - 0xde34: 0x6c28b420, - 0xde39: 0x6c28c020, 0xde3a: 0x6c28b820, 0xde3b: 0x6c28be20, - // Block 0x379, offset 0xde40 - 0xde42: 0x6c14f020, 0xde43: 0x6c28bc20, - 0xde44: 0x6c01e820, 0xde45: 0x6c02ee20, 0xde46: 0x6c28c420, - 0xde49: 0x6c28c820, - 0xde4e: 0x6c058c20, - 0xde56: 0x6c28d020, 0xde57: 0x6c28e220, - 0xde58: 0x6c28e420, - 0xde5c: 0x6c001620, - 0xde63: 0x6c28f220, - 0xde68: 0x6c00a220, 0xde6b: 0x6c28e020, - 0xde6f: 0x6c28de20, - 0xde71: 0x6c28d420, 0xde72: 0x6c28d220, - 0xde74: 0x6c28ce20, 0xde75: 0x6c28cc20, 0xde76: 0x6c0e7a20, - 0xde78: 0x6c0dee20, 0xde79: 0x6c28d820, - // Block 0x37a, offset 0xde80 - 0xde80: 0x6c28d620, - 0xde85: 0x6c28dc20, - 0xde89: 0x6c0d1c20, 0xde8a: 0x6c058e20, - 0xde8f: 0x6c00fe20, - 0xde90: 0x6c28da20, 0xde92: 0x6c070220, - 0xde98: 0x6c0d1e20, - 0xdeb3: 0x6c28fe20, - 0xdeb5: 0x6c290020, 0xdeb7: 0x6c01ea20, - 0xdebb: 0x6c019420, - 0xdebc: 0x6c28fa20, - // Block 0x37b, offset 0xdec0 - 0xdec5: 0x6c28e620, 0xdec7: 0x6c28f620, - 0xdec9: 0x6c290420, 0xdeca: 0x6c28f820, - 0xdece: 0x6c28f420, - 0xded3: 0x6c28ba20, - 0xded6: 0x6c28f020, - 0xdeda: 0x6c28e820, - 0xdede: 0x6c035020, 0xdedf: 0x6c28ec20, - 0xdee0: 0x6c290220, 0xdee2: 0x6c28ee20, - 0xdee8: 0x6c290620, 0xdeea: 0x6c28ea20, 0xdeeb: 0x6c119c20, - 0xdef1: 0x6c15de20, - 0xdef5: 0x6c28fc20, - 0xdefd: 0x6c292820, - // Block 0x37c, offset 0xdf00 - 0xdf01: 0x6c291820, - 0xdf05: 0x6c0bba20, - 0xdf0a: 0x6c03f820, - 0xdf0c: 0x6c04e220, 0xdf0e: 0x6c290e20, - 0xdf13: 0x6c01ee20, - 0xdf16: 0x6c0ab020, - 0xdf18: 0x6c291420, - 0xdf1c: 0x6c07cc20, 0xdf1f: 0x6c0fce20, - 0xdf20: 0x6c291e20, - 0xdf29: 0x6c13b420, 0xdf2b: 0x6c290c20, - 0xdf2f: 0x6c01ec20, - 0xdf30: 0x6c064c20, 0xdf31: 0x6c126e20, 0xdf32: 0x6c292020, - 0xdf34: 0x6c290820, 0xdf37: 0x6c291a20, - 0xdf3b: 0x6c292e20, - 0xdf3d: 0x6c291020, - // Block 0x37d, offset 0xdf40 - 0xdf43: 0x6c291220, - 0xdf44: 0x6c105c20, 0xdf47: 0x6c291c20, - 0xdf4b: 0x6c291620, - 0xdf4c: 0x6c13e420, 0xdf4d: 0x6c292220, 0xdf4e: 0x6c008020, - 0xdf53: 0x6c290a20, - 0xdf60: 0x6c292620, 0xdf62: 0x6c292420, - 0xdf69: 0x6c117a20, 0xdf6a: 0x6c293220, - 0xdf6c: 0x6c294820, - 0xdf71: 0x6c02f020, - 0xdf75: 0x6c294e20, - 0xdf78: 0x6c292a20, - 0xdf7c: 0x6c293420, 0xdf7d: 0x6c15e820, - // Block 0x37e, offset 0xdf80 - 0xdf86: 0x6c294620, - 0xdf89: 0x6c15b620, - 0xdf8e: 0x6c161c20, - 0xdf97: 0x6c0ea420, - 0xdf9b: 0x6c02ca20, - 0xdfa1: 0x6c130020, 0xdfa2: 0x6c295220, 0xdfa3: 0x6c102a20, - 0xdfa6: 0x6c002220, - 0xdfa9: 0x6c294420, 0xdfab: 0x6c293c20, - 0xdfac: 0x6c0d2020, 0xdfad: 0x6c293020, 0xdfae: 0x6c294020, 0xdfaf: 0x6c294a20, - 0xdfb1: 0x6c10fc20, - 0xdfb5: 0x6c001420, 0xdfb7: 0x6c293a20, - 0xdfb9: 0x6c294c20, 0xdfba: 0x6c130c20, - // Block 0x37f, offset 0xdfc0 - 0xdfc2: 0x6c294220, - 0xdfc4: 0x6c293820, - 0xdfcb: 0x6c0ab220, - 0xdfd0: 0x6c09aa20, - 0xdfd4: 0x6c08e820, - 0xdfd9: 0x6c150020, - 0xdfdc: 0x6c12aa20, 0xdfdf: 0x6c295820, - 0xdfe1: 0x6c296a20, - 0xdfed: 0x6c293e20, - 0xdff2: 0x6c02e220, - 0xdff8: 0x6c0af820, 0xdff9: 0x6c295420, 0xdffb: 0x6c295e20, - 0xdffc: 0x6c0d2220, 0xdfff: 0x6c295620, - // Block 0x380, offset 0xe000 - 0xe001: 0x6c296420, - 0xe004: 0x6c0e7220, 0xe006: 0x6c296620, - 0xe009: 0x6c15b820, 0xe00a: 0x6c295020, 0xe00b: 0x6c026420, - 0xe00d: 0x6c295c20, - 0xe010: 0x6c296220, 0xe011: 0x6c14a820, - 0xe016: 0x6c296820, - 0xe019: 0x6c295a20, 0xe01a: 0x6c296020, - 0xe02c: 0x6c13e620, 0xe02e: 0x6c16c620, - 0xe034: 0x6c297020, - 0xe03c: 0x6c297e20, 0xe03f: 0x6c296e20, - // Block 0x381, offset 0xe040 - 0xe040: 0x6c091620, - 0xe046: 0x6c292c20, - 0xe051: 0x6c137420, 0xe053: 0x6c149420, - 0xe054: 0x6c297c20, 0xe055: 0x6c297a20, 0xe057: 0x6c297220, - 0xe058: 0x6c297420, 0xe05a: 0x6c00e820, - 0xe05f: 0x6c297820, - 0xe061: 0x6c296c20, - 0xe066: 0x6c0f1a20, - 0xe06c: 0x6c297620, 0xe06d: 0x6c00bc20, - 0xe075: 0x6c0d3c20, - 0xe07d: 0x6c135e20, - // Block 0x382, offset 0xe080 - 0xe080: 0x6c298020, 0xe081: 0x6c298820, 0xe083: 0x6c121220, - 0xe088: 0x6c298620, 0xe089: 0x6c0ab420, 0xe08a: 0x6c092220, 0xe08b: 0x6c298c20, - 0xe08e: 0x6c04a420, - 0xe095: 0x6c298e20, 0xe097: 0x6c130e20, - 0xe098: 0x6c298420, 0xe09a: 0x6c293620, - 0xe0a3: 0x6c298220, - 0xe0a8: 0x6c172220, 0xe0a9: 0x6c102c20, 0xe0aa: 0x6c130220, - 0xe0ad: 0x6c299c20, - 0xe0b7: 0x6c29a820, - 0xe0be: 0x6c29aa20, - // Block 0x383, offset 0xe0c0 - 0xe0c0: 0x6c299020, - 0xe0c4: 0x6c119020, 0xe0c7: 0x6c29a420, - 0xe0c8: 0x6c299420, 0xe0ca: 0x6c299820, - 0xe0d0: 0x6c29ac20, 0xe0d1: 0x6c299620, - 0xe0d4: 0x6c299e20, 0xe0d7: 0x6c016020, - 0xe0d9: 0x6c10b220, 0xe0db: 0x6c29a020, - 0xe0dc: 0x6c29a620, - 0xe0e4: 0x6c299220, 0xe0e6: 0x6c0c8820, - 0xe0e8: 0x6c299a20, 0xe0e9: 0x6c082220, 0xe0ea: 0x6c0b4e20, 0xe0eb: 0x6c054420, - 0xe0ec: 0x6c153820, 0xe0ee: 0x6c154220, 0xe0ef: 0x6c0a3020, - 0xe0f9: 0x6c29b420, 0xe0fa: 0x6c29b020, - // Block 0x384, offset 0xe100 - 0xe101: 0x6c172020, - 0xe109: 0x6c29ae20, - 0xe10d: 0x6c15f620, 0xe10f: 0x6c29b220, - 0xe110: 0x6c29b620, - 0xe115: 0x6c29b820, - 0xe11c: 0x6c29be20, 0xe11d: 0x6c29ba20, - 0xe124: 0x6c102e20, 0xe125: 0x6c29bc20, - 0xe129: 0x6c11fa20, 0xe12a: 0x6c29a220, - 0xe137: 0x6c0a3220, - 0xe139: 0x6c29c020, 0xe13a: 0x6c29ca20, 0xe13b: 0x6c0d2420, - 0xe13e: 0x6c29c820, - // Block 0x385, offset 0xe140 - 0xe142: 0x6c298a20, - 0xe146: 0x6c29cc20, 0xe147: 0x6c0cce20, - 0xe14a: 0x6c29c220, 0xe14b: 0x6c29c620, - 0xe153: 0x6c29c420, - 0xe156: 0x6c20d820, 0xe157: 0x6c20ba20, - 0xe15a: 0x6c29d020, - 0xe162: 0x6c29ce20, - 0xe16d: 0x6c15f820, 0xe16f: 0x6c249a20, - 0xe170: 0x6c29d220, - 0xe17f: 0x6c29d420, - // Block 0x386, offset 0xe180 - 0xe18d: 0x6c29d620, 0xe18e: 0x6c064e20, - 0xe190: 0x6c041420, - 0xe194: 0x6c29da20, 0xe195: 0x6c186020, - 0xe19a: 0x6c045620, - 0xe19c: 0x6c163c20, 0xe19e: 0x6c050e20, 0xe19f: 0x6c29dc20, - 0xe1a7: 0x6c29de20, - 0xe1ab: 0x6c0e9020, - 0xe1b1: 0x6c29e020, - 0xe1b9: 0x6c10dc20, 0xe1bb: 0x6c003420, - // Block 0x387, offset 0xe1c0 - 0xe1ca: 0x6c01fe20, 0xe1cb: 0x6c29ea20, - 0xe1cc: 0x6c29ec20, - 0xe1d3: 0x6c29e220, - 0xe1d5: 0x6c084e20, - 0xe1e3: 0x6c29e420, - 0xe1e4: 0x6c112820, - 0xe1e9: 0x6c29e620, 0xe1ea: 0x6c29e820, 0xe1eb: 0x6c29fc20, - 0xe1ef: 0x6c29f020, - 0xe1f0: 0x6c29f620, - 0xe1f6: 0x6c29ee20, - // Block 0x388, offset 0xe200 - 0xe204: 0x6c29f220, 0xe206: 0x6c29f420, 0xe207: 0x6c094020, - 0xe209: 0x6c29f820, 0xe20b: 0x6c0e3620, - 0xe20d: 0x6c059020, 0xe20e: 0x6c027820, - 0xe214: 0x6c29fe20, - 0xe219: 0x6c027220, 0xe21b: 0x6c2a0820, - 0xe21e: 0x6c2a0020, 0xe21f: 0x6c2a0620, - 0xe224: 0x6c11d420, - 0xe229: 0x6c2a0220, - 0xe22c: 0x6c2a0420, 0xe22d: 0x6c12ac20, 0xe22e: 0x6c121420, 0xe22f: 0x6c2a0a20, - 0xe238: 0x6c0df220, 0xe239: 0x6c2a1e20, 0xe23b: 0x6c2a1620, - 0xe23e: 0x6c020e20, - // Block 0x389, offset 0xe240 - 0xe240: 0x6c2a1220, 0xe242: 0x6c13e820, 0xe243: 0x6c2a1420, - 0xe246: 0x6c2a0e20, - 0xe248: 0x6c2a1020, 0xe249: 0x6c2a1a20, 0xe24a: 0x6c2a2020, - 0xe24d: 0x6c2a1c20, - 0xe251: 0x6c2a1820, 0xe252: 0x6c2a0c20, - 0xe258: 0x6c0e6420, 0xe25a: 0x6c2a2e20, - 0xe25c: 0x6c14a420, - 0xe265: 0x6c2a2a20, - 0xe269: 0x6c2a2c20, - 0xe274: 0x6c2a2220, 0xe277: 0x6c2a2620, - 0xe27b: 0x6c2a2820, - 0xe27f: 0x6c2a2420, - // Block 0x38a, offset 0xe280 - 0xe289: 0x6c0c4c20, 0xe28b: 0x6c16f620, - 0xe28c: 0x6c2a3620, 0xe28e: 0x6c2a3820, - 0xe293: 0x6c2a4420, - 0xe295: 0x6c0b1820, 0xe297: 0x6c2a3c20, - 0xe299: 0x6c2a4220, - 0xe29f: 0x6c2a3220, - 0xe2a0: 0x6c2a3020, 0xe2a3: 0x6c2a4620, - 0xe2a6: 0x6c01f020, - 0xe2a8: 0x6c2a3e20, 0xe2aa: 0x6c2a4820, - 0xe2ae: 0x6c2a4020, - 0xe2b4: 0x6c2a3a20, 0xe2b6: 0x6c0ed620, - 0xe2b8: 0x6c2a3420, - 0xe2bf: 0x6c117420, - // Block 0x38b, offset 0xe2c0 - 0xe2c2: 0x6c2a5020, - 0xe2cd: 0x6c158220, - 0xe2df: 0x6c2a4e20, - 0xe2e2: 0x6c2a4c20, - 0xe2eb: 0x6c2a5e20, - 0xe2ef: 0x6c2a5220, - 0xe2f3: 0x6c2a6220, - 0xe2fa: 0x6c15d820, 0xe2fb: 0x6c2a6820, - 0xe2fd: 0x6c2a5620, - // Block 0x38c, offset 0xe300 - 0xe300: 0x6c2a5820, - 0xe304: 0x6c2a6020, 0xe306: 0x6c2a6620, 0xe307: 0x6c2a6420, - 0xe30b: 0x6c2a5420, - 0xe310: 0x6c2a5a20, 0xe312: 0x6c2a7c20, - 0xe320: 0x6c2a6e20, - 0xe32f: 0x6c2a6a20, - 0xe332: 0x6c2a6c20, - 0xe336: 0x6c2a7620, 0xe337: 0x6c2a7820, - 0xe339: 0x6c024820, 0xe33b: 0x6c03f020, - 0xe33e: 0x6c2a7420, - // Block 0x38d, offset 0xe340 - 0xe345: 0x6c2a4a20, - 0xe34d: 0x6c2a7220, 0xe34e: 0x6c2a7a20, 0xe34f: 0x6c2a7020, - 0xe351: 0x6c2a7e20, - 0xe355: 0x6c2a8220, 0xe356: 0x6c2a8020, - 0xe361: 0x6c2a8620, 0xe362: 0x6c2a8420, 0xe363: 0x6c29fa20, - 0xe367: 0x6c2a8e20, - 0xe371: 0x6c2a8820, - 0xe376: 0x6c2a8a20, - 0xe379: 0x6c2a8c20, 0xe37b: 0x6c2a9020, - // Block 0x38e, offset 0xe380 - 0xe380: 0x6c05bc20, 0xe382: 0x6c2a9420, - 0xe384: 0x6c2a9220, 0xe386: 0x6c09ac20, - 0xe38c: 0x6c070420, 0xe38d: 0x6c218020, - 0xe392: 0x6c2a9620, 0xe393: 0x6c09ee20, - 0xe397: 0x6c026620, - 0xe399: 0x6c2a9820, 0xe39b: 0x6c012020, - 0xe39d: 0x6c0ab620, 0xe39e: 0x6c2a9a20, - 0xe3a1: 0x6c070620, 0xe3a2: 0x6c2a9c20, 0xe3a3: 0x6c008220, - 0xe3a8: 0x6c129620, 0xe3ab: 0x6c2a9e20, - 0xe3b0: 0x6c0b9820, 0xe3b2: 0x6c2aac20, - 0xe3b5: 0x6c2aa620, 0xe3b7: 0x6c0e9220, - 0xe3bd: 0x6c2aa820, 0xe3be: 0x6c2aa220, 0xe3bf: 0x6c04e420, - // Block 0x38f, offset 0xe3c0 - 0xe3c1: 0x6c2aa020, 0xe3c2: 0x6c2aae20, - 0xe3c8: 0x6c055020, 0xe3cb: 0x6c0db420, - 0xe3cd: 0x6c2aba20, - 0xe3d2: 0x6c2ab220, - 0xe3d6: 0x6c0d6220, 0xe3d7: 0x6c2ab020, - 0xe3d9: 0x6c2ab620, - 0xe3de: 0x6c2aa420, - 0xe3e2: 0x6c2ab820, - 0xe3e4: 0x6c2abc20, - 0xe3eb: 0x6c123e20, - 0xe3ee: 0x6c2ab420, - 0xe3f0: 0x6c2abe20, 0xe3f1: 0x6c2ac220, - 0xe3f4: 0x6c064620, 0xe3f5: 0x6c2aaa20, 0xe3f7: 0x6c004220, - 0xe3ff: 0x6c2ac020, - // Block 0x390, offset 0xe400 - 0xe401: 0x6c07ce20, 0xe402: 0x6c16b420, 0xe403: 0x6c2ac420, - 0xe404: 0x6c2ac620, 0xe405: 0x6c0d2620, - 0xe40f: 0x6c160c20, - 0xe414: 0x6c2ac820, 0xe415: 0x6c157620, - 0xe418: 0x6c2aca20, 0xe419: 0x6c2acc20, - 0xe41c: 0x6c13a020, 0xe41d: 0x6c2ace20, 0xe41f: 0x6c079820, - 0xe421: 0x6c160e20, - 0xe428: 0x6c2ad820, - 0xe432: 0x6c2ada20, 0xe433: 0x6c0ab820, - 0xe434: 0x6c2ad620, - 0xe438: 0x6c15da20, 0xe439: 0x6c2ad020, - 0xe43c: 0x6c2ad420, 0xe43d: 0x6c0bfa20, 0xe43e: 0x6c0bc020, - // Block 0x391, offset 0xe440 - 0xe442: 0x6c2ad220, - 0xe444: 0x6c2adc20, 0xe447: 0x6c131e20, - 0xe44a: 0x6c2ae020, - 0xe44c: 0x6c2ade20, - 0xe450: 0x6c02cc20, 0xe452: 0x6c13ea20, 0xe453: 0x6c2ae220, - 0xe45d: 0x6c2afa20, 0xe45e: 0x6c2ae620, - 0xe465: 0x6c2ae820, - 0xe46a: 0x6c2aea20, 0xe46b: 0x6c2aec20, - 0xe476: 0x6c2af420, - 0xe478: 0x6c2af620, 0xe47b: 0x6c2af220, - // Block 0x392, offset 0xe480 - 0xe481: 0x6c2aee20, 0xe483: 0x6c2ae420, - 0xe484: 0x6c2af020, - 0xe48c: 0x6c2af820, 0xe48d: 0x6c2ed820, - 0xe496: 0x6c018820, - 0xe49e: 0x6c2afe20, 0xe49f: 0x6c04e620, - 0xe4a0: 0x6c2afc20, - 0xe4a4: 0x6c2b0220, 0xe4a6: 0x6c2b0020, - 0xe4aa: 0x6c2b0620, - 0xe4ad: 0x6c2b0420, 0xe4af: 0x6c2b0820, - 0xe4b2: 0x6c09ae20, - 0xe4b4: 0x6c2b0a20, 0xe4b7: 0x6c2b0c20, - 0xe4be: 0x6c2b0e20, 0xe4bf: 0x6c0bfc20, - // Block 0x393, offset 0xe4c0 - 0xe4c1: 0x6c15ba20, 0xe4c3: 0x6c2b1020, - 0xe4c6: 0x6c132020, 0xe4c7: 0x6c113020, - 0xe4c8: 0x6c2b1220, 0xe4ca: 0x6c2b1420, 0xe4cb: 0x6c05f620, - 0xe4cf: 0x6c03c420, - 0xe4d3: 0x6c2b1620, - 0xe4d6: 0x6c08aa20, 0xe4d7: 0x6c112620, - 0xe4d8: 0x6c2b1820, 0xe4da: 0x6c029420, - 0xe4e1: 0x6c2b1a20, - 0xe4e6: 0x6c2b1e20, 0xe4e7: 0x6c15fa20, - 0xe4e9: 0x6c2b1c20, 0xe4ea: 0x6c0b5020, - 0xe4ec: 0x6c2b2020, 0xe4ef: 0x6c2b2220, - 0xe4f2: 0x6c2b2420, 0xe4f3: 0x6c035220, - 0xe4fa: 0x6c2b2620, - 0xe4fd: 0x6c2b2820, 0xe4ff: 0x6c2b2a20, - // Block 0x394, offset 0xe500 - 0xe500: 0x6c2b2c20, - 0xe512: 0x6c029620, - 0xe51a: 0x6c2b2e20, - 0xe51c: 0x6c2b3020, 0xe51d: 0x6c2b3220, - 0xe523: 0x6c021c20, - 0xe526: 0x6c0b1420, 0xe527: 0x6c2b3420, - 0xe534: 0x6c2b3620, - 0xe538: 0x6c2b3820, - // Block 0x395, offset 0xe540 - 0xe540: 0x6c062020, 0xe542: 0x6c0f6620, 0xe543: 0x6c2b3a20, - 0xe548: 0x6c059220, 0xe54a: 0x6c0b7020, - 0xe54c: 0x6c2b4020, 0xe54e: 0x6c103020, - 0xe550: 0x6c2b3e20, 0xe553: 0x6c054620, - 0xe556: 0x6c2b3c20, 0xe557: 0x6c0de620, - 0xe558: 0x6c03c620, 0xe55b: 0x6c2b4220, - 0xe55d: 0x6c2b4420, 0xe55f: 0x6c0aba20, - 0xe563: 0x6c05be20, - 0xe565: 0x6c2b4620, - 0xe56a: 0x6c13ec20, - 0xe56d: 0x6c0c3e20, - 0xe571: 0x6c045820, 0xe573: 0x6c153a20, - 0xe574: 0x6c0cd020, 0xe576: 0x6c2b4820, - 0xe57a: 0x6c0b5220, 0xe57b: 0x6c0e9420, - 0xe57c: 0x6c0abc20, - // Block 0x396, offset 0xe580 - 0xe581: 0x6c2b4a20, - 0xe586: 0x6c2b5020, - 0xe588: 0x6c2b5220, - 0xe590: 0x6c079420, 0xe591: 0x6c0d7c20, 0xe592: 0x6c2b4e20, - 0xe594: 0x6c0abe20, 0xe595: 0x6c129820, - 0xe59b: 0x6c2b4c20, - 0xe59e: 0x6c08ac20, - 0xe5a0: 0x6c012220, 0xe5a2: 0x6c2b5a20, 0xe5a3: 0x6c059420, - 0xe5a6: 0x6c08b020, - 0xe5a9: 0x6c08ae20, 0xe5ab: 0x6c171e20, - 0xe5ac: 0x6c2b5820, 0xe5ad: 0x6c2b5620, 0xe5ae: 0x6c0c8a20, - 0xe5b0: 0x6c040620, 0xe5b1: 0x6c170a20, 0xe5b2: 0x6c026820, 0xe5b3: 0x6c0ac020, - 0xe5bc: 0x6c2b5420, - // Block 0x397, offset 0xe5c0 - 0xe5c2: 0x6c2b5e20, - 0xe5c4: 0x6c2b6020, 0xe5c5: 0x6c2b5c20, 0xe5c7: 0x6c065020, - 0xe5c9: 0x6c158c20, - 0xe5cc: 0x6c08b220, 0xe5cd: 0x6c10f220, - 0xe5d1: 0x6c2b6620, 0xe5d3: 0x6c0c0020, - 0xe5d5: 0x6c0e3820, - 0xe5d8: 0x6c157820, 0xe5da: 0x6c2b6c20, - 0xe5de: 0x6c067820, - 0xe5e0: 0x6c0bfe20, 0xe5e1: 0x6c2b6420, 0xe5e3: 0x6c2b6e20, - 0xe5e4: 0x6c067a20, 0xe5e5: 0x6c2b6820, 0xe5e6: 0x6c2b6a20, - 0xe5e8: 0x6c2b6220, - 0xe5ec: 0x6c0c4420, 0xe5ed: 0x6c107a20, - 0xe5f0: 0x6c0e1220, 0xe5f2: 0x6c01f220, - 0xe5f9: 0x6c124020, - 0xe5fc: 0x6c03f220, 0xe5ff: 0x6c0ed820, - // Block 0x398, offset 0xe600 - 0xe602: 0x6c2b7420, - 0xe604: 0x6c2b7020, 0xe607: 0x6c0e4c20, - 0xe60b: 0x6c0c0220, - 0xe60c: 0x6c035420, 0xe60d: 0x6c2b7220, 0xe60f: 0x6c0b7a20, - 0xe612: 0x6c165c20, - 0xe616: 0x6c170420, - 0xe61a: 0x6c2b7620, 0xe61b: 0x6c2b8c20, - 0xe61c: 0x6c0eda20, 0xe61e: 0x6c2b8a20, - 0xe620: 0x6c2b8420, 0xe621: 0x6c2b9420, 0xe622: 0x6c2b8620, - 0xe624: 0x6c2b7e20, 0xe626: 0x6c0f6820, 0xe627: 0x6c2b7c20, - 0xe62b: 0x6c2b7820, - 0xe62d: 0x6c154e20, 0xe62e: 0x6c08b420, - 0xe631: 0x6c2b8020, 0xe633: 0x6c2b7a20, - 0xe637: 0x6c2b8820, - 0xe638: 0x6c0a3420, 0xe63a: 0x6c062220, - 0xe63e: 0x6c0dec20, - // Block 0x399, offset 0xe640 - 0xe640: 0x6c141e20, 0xe641: 0x6c013020, 0xe642: 0x6c008420, - 0xe644: 0x6c103220, 0xe647: 0x6c2b9020, - 0xe64c: 0x6c2b8e20, 0xe64e: 0x6c10b420, - 0xe650: 0x6c2b9820, - 0xe654: 0x6c2b8220, 0xe656: 0x6c2b9620, 0xe657: 0x6c2b9a20, - 0xe659: 0x6c05f820, 0xe65a: 0x6c2b9220, 0xe65b: 0x6c070820, - 0xe65d: 0x6c093a20, - 0xe660: 0x6c2b9c20, 0xe661: 0x6c15bc20, - 0xe666: 0x6c2ba220, - 0xe668: 0x6c2ba820, 0xe66b: 0x6c2ba420, - 0xe66c: 0x6c128620, - 0xe673: 0x6c2b9e20, - 0xe679: 0x6c04e820, - 0xe67e: 0x6c2ba620, - // Block 0x39a, offset 0xe680 - 0xe681: 0x6c2baa20, - 0xe689: 0x6c2bb220, - 0xe68c: 0x6c2bac20, 0xe68e: 0x6c2bb020, 0xe68f: 0x6c2bae20, - 0xe696: 0x6c2bb420, - 0xe698: 0x6c08f220, 0xe69a: 0x6c2bb820, 0xe69b: 0x6c2bb620, - 0xe69c: 0x6c12ec20, 0xe69f: 0x6c2bbc20, - 0xe6a6: 0x6c059620, - 0xe6ab: 0x6c2bba20, - 0xe6ac: 0x6c2bbe20, 0xe6af: 0x6c2bc020, - 0xe6b0: 0x6c03f420, 0xe6b1: 0x6c279420, 0xe6b2: 0x6c0afa20, - 0xe6b4: 0x6c2bc220, 0xe6b7: 0x6c067c20, - 0xe6bd: 0x6c2bc420, - // Block 0x39b, offset 0xe6c0 - 0xe6c0: 0x6c2bc620, 0xe6c3: 0x6c085020, - 0xe6ca: 0x6c1ede20, - 0xe6cc: 0x6c2bc820, 0xe6ce: 0x6c2bca20, - 0xe6d0: 0x6c09b020, 0xe6d2: 0x6c2bcc20, 0xe6d3: 0x6c2bce20, - 0xe6d6: 0x6c2bd020, - 0xe6d9: 0x6c2bd220, 0xe6da: 0x6c2bd420, - // Block 0x39c, offset 0xe700 - 0xe737: 0x6c0e0a20, - 0xe73a: 0x6c2bd620, - 0xe73f: 0x6c2bda20, - // Block 0x39d, offset 0xe740 - 0xe741: 0x6c2bd820, - 0xe746: 0x6c103420, - 0xe748: 0x6c2bdc20, 0xe74a: 0x6c13ee20, - 0xe74c: 0x6c2bde20, 0xe74e: 0x6c2be020, - 0xe750: 0x6c2be220, - 0xe755: 0x6c2be420, - 0xe75a: 0x6c109c20, - 0xe761: 0x6c0ac220, 0xe762: 0x6c2be620, - 0xe76a: 0x6c073220, 0xe76b: 0x6c174620, - 0xe76c: 0x6c2be820, - 0xe778: 0x6c2bea20, 0xe779: 0x6c129a20, 0xe77a: 0x6c2bec20, - 0xe77c: 0x6c2bfc20, - // Block 0x39e, offset 0xe780 - 0xe782: 0x6c2bee20, - 0xe785: 0x6c2bf220, - 0xe789: 0x6c2bf020, 0xe78a: 0x6c2bf420, - 0xe78c: 0x6c142020, 0xe78d: 0x6c2bf620, 0xe78e: 0x6c2bf820, - 0xe794: 0x6c2bfa20, - 0xe798: 0x6c2bfe20, - 0xe79d: 0x6c024e20, 0xe79e: 0x6c0f3e20, - 0xe7a0: 0x6c12ee20, 0xe7a1: 0x6c07dc20, 0xe7a2: 0x6c070a20, - 0xe7a7: 0x6c12ba20, - 0xe7a8: 0x6c01f620, 0xe7a9: 0x6c11fc20, 0xe7aa: 0x6c2c0420, 0xe7ab: 0x6c035620, - 0xe7ac: 0x6c0c2a20, 0xe7ad: 0x6c2c0220, 0xe7ae: 0x6c2c0c20, 0xe7af: 0x6c0ea620, - 0xe7b0: 0x6c151620, 0xe7b2: 0x6c2c0820, 0xe7b3: 0x6c2c0a20, - 0xe7b4: 0x6c03c820, 0xe7b6: 0x6c2c0e20, 0xe7b7: 0x6c116a20, - 0xe7b8: 0x6c0db620, 0xe7bb: 0x6c124220, - 0xe7bc: 0x6c0fa620, 0xe7bd: 0x6c2c0620, 0xe7bf: 0x6c142220, - // Block 0x39f, offset 0xe7c0 - 0xe7c0: 0x6c021020, 0xe7c1: 0x6c2c1220, 0xe7c2: 0x6c16d420, 0xe7c3: 0x6c0ef420, - 0xe7c4: 0x6c170e20, 0xe7c7: 0x6c08b620, - 0xe7c8: 0x6c2c1020, 0xe7ca: 0x6c0d5a20, - 0xe7cd: 0x6c2c3220, 0xe7ce: 0x6c0c8c20, - 0xe7d1: 0x6c10d820, 0xe7d3: 0x6c12bc20, - 0xe7da: 0x6c2c1820, 0xe7db: 0x6c085220, - 0xe7dc: 0x6c08b820, 0xe7de: 0x6c0ac420, - 0xe7e0: 0x6c116e20, 0xe7e2: 0x6c05fa20, 0xe7e3: 0x6c2c1620, - 0xe7e4: 0x6c2c1420, 0xe7e6: 0x6c12f020, - 0xe7ea: 0x6c091220, - 0xe7ed: 0x6c0fd020, - 0xe7fa: 0x6c2c1c20, 0xe7fb: 0x6c2c1e20, - 0xe7fc: 0x6c070c20, 0xe7fd: 0x6c2c1a20, - // Block 0x3a0, offset 0xe800 - 0xe804: 0x6c2c2020, 0xe805: 0x6c2c2220, 0xe807: 0x6c2c2620, - 0xe808: 0x6c0d3e20, 0xe80a: 0x6c2c2420, 0xe80b: 0x6c037c20, - 0xe80d: 0x6c2c2a20, 0xe80f: 0x6c2c2820, - 0xe810: 0x6c2c2c20, 0xe813: 0x6c2c3020, - 0xe814: 0x6c2c3420, 0xe816: 0x6c2c3620, - // Block 0x3a1, offset 0xe840 - 0xe864: 0x6c0c2c20, 0xe866: 0x6c092e20, 0xe867: 0x6c2c3820, - 0xe86b: 0x6c029820, - 0xe86d: 0x6c2c3a20, - 0xe870: 0x6c0d2820, 0xe871: 0x6c2c3c20, 0xe873: 0x6c2c3e20, - 0xe874: 0x6c12f220, 0xe877: 0x6c03ca20, - // Block 0x3a2, offset 0xe880 - 0xe881: 0x6c2c4020, - 0xe885: 0x6c0edc20, - 0xe88a: 0x6c013220, - 0xe899: 0x6c2c4220, - 0xe8a3: 0x6c097220, - 0xe8a8: 0x6c0bb020, - 0xe8b3: 0x6c0d5220, - 0xe8ba: 0x6c2c4820, - 0xe8be: 0x6c2c4620, - // Block 0x3a3, offset 0xe8c0 - 0xe8c2: 0x6c2c4420, - 0xe8cb: 0x6c2c5420, - 0xe8cc: 0x6c2c5020, 0xe8cf: 0x6c2c4a20, - 0xe8d6: 0x6c2c4e20, - 0xe8da: 0x6c2c4c20, 0xe8db: 0x6c2c5220, - 0xe8dd: 0x6c045a20, 0xe8df: 0x6c2c5a20, - 0xe8e1: 0x6c0c2e20, 0xe8e3: 0x6c2c5c20, - 0xe8e8: 0x6c065220, 0xe8ea: 0x6c2c5620, 0xe8eb: 0x6c2c5820, - 0xe8ef: 0x6c16d620, - 0xe8f3: 0x6c0ede20, - 0xe8f5: 0x6c0c8e20, - 0xe8fc: 0x6c2c5e20, 0xe8ff: 0x6c2c6420, - // Block 0x3a4, offset 0xe900 - 0xe908: 0x6c2c6020, 0xe909: 0x6c2c6220, 0xe90a: 0x6c15be20, - 0xe90f: 0x6c103620, - 0xe910: 0x6c2c6a20, - 0xe91d: 0x6c2c6620, 0xe91e: 0x6c2c6820, 0xe91f: 0x6c2c6c20, - 0xe92a: 0x6c2c8820, - 0xe930: 0x6c2c7220, - 0xe934: 0x6c2c7420, 0xe935: 0x6c2c7020, - // Block 0x3a5, offset 0xe940 - 0xe942: 0x6c2c6e20, - 0xe944: 0x6c0f6a20, 0xe947: 0x6c2c7820, - 0xe948: 0x6c2c8020, 0xe949: 0x6c2c7a20, 0xe94a: 0x6c2c7620, - 0xe94c: 0x6c2c7c20, - 0xe950: 0x6c2c7e20, - 0xe955: 0x6c2c8c20, - 0xe959: 0x6c2c8220, - 0xe95f: 0x6c0c3020, - 0xe960: 0x6c2c8620, 0xe963: 0x6c2c8a20, - 0xe964: 0x6c2c8420, - 0xe972: 0x6c2c9020, - 0xe974: 0x6c09b220, 0xe976: 0x6c2c8e20, - 0xe97c: 0x6c2c9220, - // Block 0x3a6, offset 0xe980 - 0xe981: 0x6c2c9420, - 0xe984: 0x6c2c9a20, 0xe985: 0x6c2c9820, 0xe987: 0x6c2c9620, - 0xe98a: 0x6c2c9e20, 0xe98b: 0x6c2c9c20, - 0xe98d: 0x6c153c20, - 0xe991: 0x6c2ca220, 0xe993: 0x6c2ca020, - 0xe994: 0x6c2ca420, - 0xe999: 0x6c2ca620, - 0xe9a1: 0x6c2caa20, - 0xe9aa: 0x6c2ca820, 0xe9ab: 0x6c0b5420, - 0xe9ac: 0x6c2cac20, 0xe9af: 0x6c050220, - 0xe9b0: 0x6c2cae20, 0xe9b1: 0x6c2cb220, - 0xe9be: 0x6c2cb420, - // Block 0x3a7, offset 0xe9c0 - 0xe9c5: 0x6c2cb620, 0xe9c6: 0x6c2cb020, - 0xe9c8: 0x6c2cb820, 0xe9ca: 0x6c093c20, 0xe9cb: 0x6c2cba20, - 0xe9cc: 0x6c03cc20, 0xe9cd: 0x6c054a20, - 0xe9d2: 0x6c05fc20, - 0xe9db: 0x6c2cbc20, - 0xe9df: 0x6c10c820, - 0xe9e2: 0x6c0fa820, 0xe9e3: 0x6c2cbe20, - 0xe9eb: 0x6c2cc420, - 0xe9f8: 0x6c08f820, 0xe9fb: 0x6c2cc220, - 0xe9fc: 0x6c2cc020, 0xe9fd: 0x6c059820, 0xe9fe: 0x6c2cc620, - // Block 0x3a8, offset 0xea00 - 0xea03: 0x6c029a20, - 0xea05: 0x6c2cca20, - 0xea09: 0x6c07d020, 0xea0a: 0x6c2cc820, - 0xea0c: 0x6c2cda20, - 0xea12: 0x6c2cce20, 0xea13: 0x6c2cd220, - 0xea14: 0x6c13a220, 0xea15: 0x6c2ccc20, - 0xea19: 0x6c2cd020, 0xea1b: 0x6c2cd820, - 0xea1c: 0x6c2cd420, 0xea1d: 0x6c03ce20, 0xea1f: 0x6c2cd620, - 0xea26: 0x6c2cdc20, - 0xea29: 0x6c115820, 0xea2a: 0x6c167820, - 0xea2f: 0x6c09b420, - 0xea33: 0x6c2cde20, - 0xea38: 0x6c155020, 0xea39: 0x6c2ce220, 0xea3b: 0x6c2ce020, - 0xea3e: 0x6c2ce820, 0xea3f: 0x6c158e20, - // Block 0x3a9, offset 0xea40 - 0xea42: 0x6c2ce620, - 0xea44: 0x6c02ce20, 0xea45: 0x6c2ce420, 0xea46: 0x6c2cee20, - 0xea49: 0x6c2cec20, - 0xea4c: 0x6c2cea20, 0xea4d: 0x6c0f9020, 0xea4e: 0x6c2cf020, - 0xea57: 0x6c2cf220, - 0xea5c: 0x6c2cf420, 0xea5f: 0x6c073420, - 0xea61: 0x6c052e20, 0xea62: 0x6c2cf620, 0xea63: 0x6c2cf820, - 0xea64: 0x6c2cfa20, - // Block 0x3aa, offset 0xea80 - 0xea9b: 0x6c0b5620, - 0xea9c: 0x6c2cfc20, 0xea9e: 0x6c08ea20, 0xea9f: 0x6c2cfe20, - 0xeaa3: 0x6c2d0020, - 0xeaa7: 0x6c18a420, - 0xeaa8: 0x6c18a220, - 0xeaad: 0x6c2d0220, 0xeaae: 0x6c273620, 0xeaaf: 0x6c2d0420, - 0xeab0: 0x6c0dfc20, 0xeab1: 0x6c0b1a20, 0xeab2: 0x6c112420, - 0xeab7: 0x6c2d0620, - 0xeaba: 0x6c138220, 0xeabb: 0x6c0f1820, - 0xeabc: 0x6c075820, 0xeabf: 0x6c0e0620, - // Block 0x3ab, offset 0xeac0 - 0xeac2: 0x6c00d020, - 0xeac4: 0x6c148420, 0xeac5: 0x6c0b7220, - 0xeace: 0x6c05a020, - 0xead1: 0x6c04ea20, - 0xead4: 0x6c138420, - 0xeada: 0x6c2d0820, - 0xeae2: 0x6c2d0c20, - 0xeae5: 0x6c2d0a20, 0xeae6: 0x6c01f820, - 0xeae9: 0x6c10d420, 0xeaea: 0x6c2d0e20, 0xeaeb: 0x6c119220, - 0xeaed: 0x6c0f9220, 0xeaef: 0x6c2d1020, - 0xeaf0: 0x6c09f020, - 0xeaf4: 0x6c2d1420, 0xeaf7: 0x6c14d420, - 0xeaf8: 0x6c2d3220, 0xeaf9: 0x6c2d1820, 0xeafa: 0x6c2d1a20, - 0xeafd: 0x6c0f0220, - // Block 0x3ac, offset 0xeb00 - 0xeb00: 0x6c0db820, 0xeb01: 0x6c0d2a20, 0xeb03: 0x6c103820, - 0xeb05: 0x6c2d1620, 0xeb06: 0x6c041620, - 0xeb0b: 0x6c2d2820, - 0xeb0d: 0x6c2d2220, 0xeb0e: 0x6c2d3c20, 0xeb0f: 0x6c103a20, - 0xeb10: 0x6c0e7420, 0xeb11: 0x6c2d1c20, 0xeb13: 0x6c0f6c20, - 0xeb14: 0x6c0fd220, 0xeb15: 0x6c2d1e20, 0xeb16: 0x6c2d2620, 0xeb17: 0x6c0b8420, - 0xeb19: 0x6c117220, 0xeb1a: 0x6c0f0820, - 0xeb1d: 0x6c0c0420, 0xeb1e: 0x6c2d2420, 0xeb1f: 0x6c0d5420, - 0xeb20: 0x6c0d4020, 0xeb21: 0x6c2d2020, 0xeb22: 0x6c001220, 0xeb23: 0x6c16c820, - 0xeb27: 0x6c2d2a20, - 0xeb2e: 0x6c0dba20, - 0xeb31: 0x6c09b620, 0xeb32: 0x6c0b5820, - 0xeb35: 0x6c2d2e20, 0xeb36: 0x6c2d2c20, - 0xeb38: 0x6c009e20, 0xeb39: 0x6c2d3020, - 0xeb3c: 0x6c127a20, 0xeb3e: 0x6c2d4020, - // Block 0x3ad, offset 0xeb40 - 0xeb41: 0x6c109e20, 0xeb42: 0x6c0b9a20, - 0xeb45: 0x6c0e6620, 0xeb47: 0x6c051820, - 0xeb49: 0x6c2d3e20, 0xeb4a: 0x6c157a20, 0xeb4b: 0x6c00fa20, - 0xeb4d: 0x6c138620, 0xeb4e: 0x6c01fa20, 0xeb4f: 0x6c2d3420, - 0xeb50: 0x6c2d3620, 0xeb51: 0x6c2d3820, 0xeb52: 0x6c2d3a20, 0xeb53: 0x6c105e20, - 0xeb54: 0x6c0dfa20, 0xeb55: 0x6c008620, 0xeb56: 0x6c2d4220, - 0xeb58: 0x6c2d4420, 0xeb59: 0x6c31a020, - 0xeb5c: 0x6c0d7220, 0xeb5e: 0x6c2d4620, - 0xeb60: 0x6c016220, 0xeb61: 0x6c0cd420, 0xeb63: 0x6c05fe20, - 0xeb65: 0x6c15c020, - 0xeb68: 0x6c2d4820, 0xeb69: 0x6c0f8420, - 0xeb6d: 0x6c0d2c20, 0xeb6e: 0x6c093e20, 0xeb6f: 0x6c2d4a20, - 0xeb72: 0x6c2d5020, - 0xeb75: 0x6c0a1620, 0xeb76: 0x6c2d4c20, 0xeb77: 0x6c0c9220, - 0xeb78: 0x6c0c9020, 0xeb7a: 0x6c008820, - 0xeb7c: 0x6c165e20, 0xeb7d: 0x6c2d5420, 0xeb7f: 0x6c124420, - // Block 0x3ae, offset 0xeb80 - 0xeb80: 0x6c2d5820, 0xeb81: 0x6c2d5620, 0xeb82: 0x6c2d5220, 0xeb83: 0x6c25a620, - 0xeb84: 0x6c035820, 0xeb87: 0x6c2d1220, - 0xeb89: 0x6c2d5c20, 0xeb8a: 0x6c2d5a20, - 0xeb8f: 0x6c2d5e20, - 0xeb91: 0x6c157c20, - 0xeba3: 0x6c10aa20, - 0xeba6: 0x6c13f020, - 0xeba8: 0x6c2d6020, 0xebaa: 0x6c094220, - 0xebaf: 0x6c2d6220, - 0xebb1: 0x6c2d6420, - 0xebb5: 0x6c2d6620, - 0xebb8: 0x6c0f6e20, - // Block 0x3af, offset 0xebc0 - 0xebc1: 0x6c009420, - 0xebca: 0x6c070e20, - 0xebce: 0x6c16f820, - 0xebdb: 0x6c2d6e20, - 0xebe1: 0x6c054c20, 0xebe2: 0x6c2d6820, - 0xebe4: 0x6c2d6a20, - 0xebe8: 0x6c130420, - 0xebed: 0x6c029c20, - 0xebf5: 0x6c157e20, 0xebf7: 0x6c04a620, - 0xebfd: 0x6c0fd420, - // Block 0x3b0, offset 0xec00 - 0xec02: 0x6c2d7020, - 0xec12: 0x6c2d7220, - 0xec19: 0x6c2d7420, - 0xec2d: 0x6c0f7020, - 0xec30: 0x6c2d7820, 0xec32: 0x6c2d7620, - // Block 0x3b1, offset 0xec40 - 0xec49: 0x6c108e20, 0xec4a: 0x6c2d7a20, 0xec4b: 0x6c09b820, - 0xec4c: 0x6c095020, 0xec4d: 0x6c115a20, 0xec4e: 0x6c0e9620, - 0xec52: 0x6c097420, - 0xec54: 0x6c0b9c20, 0xec56: 0x6c2d7c20, - 0xec58: 0x6c2d7e20, - 0xec62: 0x6c0b7e20, 0xec63: 0x6c2d8020, - 0xec65: 0x6c2d8220, - 0xec69: 0x6c2d8420, 0xec6a: 0x6c15ea20, - 0xec6c: 0x6c09ba20, - 0xec72: 0x6c2d8820, 0xec73: 0x6c2d8620, - 0xec75: 0x6c071020, 0xec77: 0x6c074220, - 0xec78: 0x6c085420, - // Block 0x3b2, offset 0xec80 - 0xec82: 0x6c2d8e20, - 0xec87: 0x6c0a1820, - 0xec89: 0x6c2d8c20, 0xec8b: 0x6c2d8a20, - 0xec8d: 0x6c0dca20, - 0xec90: 0x6c067e20, 0xec92: 0x6c0c0620, - 0xec97: 0x6c11c020, - 0xec9c: 0x6c09be20, - 0xeca2: 0x6c2d9020, - 0xeca4: 0x6c0ac620, - 0xecaa: 0x6c2d9620, 0xecab: 0x6c2d9220, - 0xecaf: 0x6c2d9420, - 0xecb4: 0x6c2d9a20, 0xecb5: 0x6c2d9820, - 0xecb8: 0x6c0afc20, 0xecba: 0x6c2d9c20, - // Block 0x3b3, offset 0xecc0 - 0xecc0: 0x6c2d9e20, 0xecc1: 0x6c2da020, - 0xecc6: 0x6c120020, 0xecc7: 0x6c07be20, - 0xecc8: 0x6c095220, 0xecc9: 0x6c2da220, 0xeccb: 0x6c2da420, - 0xeccc: 0x6c161020, 0xeccd: 0x6c09d620, 0xecce: 0x6c152c20, 0xeccf: 0x6c166020, - 0xecd0: 0x6c2da620, 0xecd1: 0x6c04ec20, - 0xecd6: 0x6c2da820, - 0xecd8: 0x6c0f7220, 0xecdb: 0x6c2dae20, - 0xecdc: 0x6c02e420, 0xecdd: 0x6c0b5a20, 0xecdf: 0x6c2daa20, - 0xece1: 0x6c2dac20, 0xece3: 0x6c0f3020, - 0xece6: 0x6c143e20, 0xece7: 0x6c052020, - 0xecf5: 0x6c2db220, 0xecf6: 0x6c2db420, - 0xecfc: 0x6c2db020, 0xecff: 0x6c2db820, - // Block 0x3b4, offset 0xed00 - 0xed0d: 0x6c10a620, 0xed0e: 0x6c027a20, - 0xed11: 0x6c2dc020, - 0xed14: 0x6c2dba20, 0xed15: 0x6c2dbe20, - 0xed1e: 0x6c2db620, - 0xed29: 0x6c2e4c20, - 0xed2c: 0x6c2dbc20, - 0xed34: 0x6c169e20, 0xed37: 0x6c065420, - 0xed3f: 0x6c2dd020, - // Block 0x3b5, offset 0xed40 - 0xed44: 0x6c0f9420, 0xed45: 0x6c2dc620, - 0xed48: 0x6c2dcc20, 0xed49: 0x6c2dc820, 0xed4b: 0x6c2dd220, - 0xed50: 0x6c2dd420, - 0xed57: 0x6c2dc420, - 0xed5a: 0x6c2dde20, 0xed5b: 0x6c016420, - 0xed5e: 0x6c2dc220, - 0xed62: 0x6c11ba20, - 0xed64: 0x6c2dca20, 0xed66: 0x6c0ac820, - 0xed71: 0x6c071220, - 0xed7e: 0x6c142420, - // Block 0x3b6, offset 0xed80 - 0xed80: 0x6c04f020, 0xed83: 0x6c09d820, - 0xed85: 0x6c106020, - 0xed91: 0x6c0c9620, 0xed93: 0x6c2dda20, - 0xed95: 0x6c2dce20, 0xed96: 0x6c2dd820, - 0xed98: 0x6c14d620, 0xed9a: 0x6c0ee020, 0xed9b: 0x6c2ddc20, - 0xed9c: 0x6c2dd620, - 0xedad: 0x6c0c9420, - 0xedb7: 0x6c2de420, - 0xedb9: 0x6c2de220, - // Block 0x3b7, offset 0xedc0 - 0xedcf: 0x6c2de020, - 0xedd2: 0x6c13f220, - 0xede4: 0x6c0a4220, - 0xede9: 0x6c2de620, 0xedea: 0x6c139620, - 0xeded: 0x6c012420, - 0xedf2: 0x6c12a820, 0xedf3: 0x6c0e9820, - 0xedf8: 0x6c045c20, 0xedfa: 0x6c2dea20, - 0xedfc: 0x6c071620, - // Block 0x3b8, offset 0xee00 - 0xee06: 0x6c082c20, - 0xee0f: 0x6c2de820, - 0xee10: 0x6c0b9e20, - 0xee18: 0x6c0ba020, 0xee19: 0x6c2df020, 0xee1a: 0x6c2df420, - 0xee20: 0x6c0afe20, 0xee22: 0x6c2df220, 0xee23: 0x6c2df620, - 0xee26: 0x6c04ce20, - 0xee28: 0x6c12a620, 0xee2b: 0x6c095420, - 0xee2c: 0x6c16ca20, 0xee2e: 0x6c2dee20, 0xee2f: 0x6c080820, - 0xee32: 0x6c170220, - 0xee35: 0x6c2dfa20, - 0xee3a: 0x6c2df820, 0xee3b: 0x6c2dfc20, - // Block 0x3b9, offset 0xee40 - 0xee44: 0x6c2dec20, - 0xee4b: 0x6c10ba20, - 0xee4d: 0x6c0fd620, - 0xee54: 0x6c0f1e20, 0xee56: 0x6c2e0620, - 0xee5b: 0x6c0e3a20, - 0xee5c: 0x6c2dfe20, - 0xee60: 0x6c2e0020, - 0xee6c: 0x6c053e20, 0xee6e: 0x6c2e0420, - 0xee75: 0x6c060020, - 0xee7c: 0x6c2e0220, 0xee7e: 0x6c0aca20, - // Block 0x3ba, offset 0xee80 - 0xee8c: 0x6c02e620, - 0xee94: 0x6c2e0e20, 0xee96: 0x6c079620, 0xee97: 0x6c0d2e20, - 0xee9a: 0x6c0f0420, - 0xeea7: 0x6c026a20, - 0xeeac: 0x6c2e0a20, 0xeead: 0x6c2e0c20, 0xeeae: 0x6c0ef620, - 0xeeb0: 0x6c2e0820, - 0xeeb9: 0x6c2e1020, - // Block 0x3bb, offset 0xeec0 - 0xeec3: 0x6c2e1c20, - 0xeec8: 0x6c2e2220, - 0xeed0: 0x6c2e2020, 0xeed1: 0x6c0f8620, - 0xeed6: 0x6c2e1220, 0xeed7: 0x6c2e1420, - 0xeed8: 0x6c2e1a20, - 0xeedd: 0x6c2e1e20, - 0xeee1: 0x6c04a820, - 0xeee4: 0x6c2e2420, 0xeee5: 0x6c2e1820, - 0xeee8: 0x6c2e1620, - // Block 0x3bc, offset 0xef00 - 0xef03: 0x6c2e2c20, - 0xef07: 0x6c2e2e20, - 0xef10: 0x6c2e3020, 0xef13: 0x6c2e2a20, - 0xef14: 0x6c2e2820, - 0xef18: 0x6c0acc20, 0xef19: 0x6c103c20, 0xef1a: 0x6c2e2620, - 0xef21: 0x6c2e3820, - 0xef2b: 0x6c2e3420, - 0xef35: 0x6c2e3620, 0xef36: 0x6c2e3220, - 0xef38: 0x6c0de820, 0xef3a: 0x6c2e3a20, - // Block 0x3bd, offset 0xef40 - 0xef41: 0x6c2e3c20, - 0xef44: 0x6c2e4020, - 0xef51: 0x6c035a20, 0xef52: 0x6c2e3e20, 0xef53: 0x6c154420, - 0xef5a: 0x6c2e5620, 0xef5b: 0x6c2e4220, - 0xef5e: 0x6c2e4820, - 0xef60: 0x6c2e4420, 0xef62: 0x6c2e4620, - 0xef6a: 0x6c2e4a20, - 0xef70: 0x6c2e4e20, - 0xef75: 0x6c2e5020, 0xef77: 0x6c2e5220, - 0xef7c: 0x6c2e5820, 0xef7d: 0x6c2e5420, 0xef7e: 0x6c2e5a20, 0xef7f: 0x6c2e5e20, - // Block 0x3be, offset 0xef80 - 0xef81: 0x6c2e5c20, - // Block 0x3bf, offset 0xefc0 - 0xeff7: 0x6c0ee220, - // Block 0x3c0, offset 0xf000 - 0xf000: 0x6c151e20, 0xf002: 0x6c2e6020, 0xf003: 0x6c0c9820, - 0xf007: 0x6c2e6220, - 0xf009: 0x6c136020, 0xf00a: 0x6c2e6420, 0xf00b: 0x6c024a20, - 0xf00f: 0x6c00f420, - 0xf011: 0x6c035e20, 0xf013: 0x6c035c20, - 0xf014: 0x6c2e6620, 0xf016: 0x6c2e6820, - 0xf018: 0x6c2e6a20, 0xf019: 0x6c2e6c20, - 0xf020: 0x6c2e6e20, 0xf022: 0x6c036020, 0xf023: 0x6c029e20, - 0xf024: 0x6c071820, 0xf025: 0x6c11cc20, 0xf027: 0x6c2e7220, - 0xf028: 0x6c2e7020, - 0xf02d: 0x6c2e7420, - 0xf032: 0x6c013420, - 0xf039: 0x6c2e7a20, 0xf03b: 0x6c2e7820, - 0xf03c: 0x6c2e7620, 0xf03e: 0x6c2e7c20, - // Block 0x3c1, offset 0xf040 - 0xf043: 0x6c2e8220, - 0xf047: 0x6c004e20, - 0xf04a: 0x6c2e7e20, - 0xf04c: 0x6c2e8620, 0xf04d: 0x6c2e8420, - 0xf054: 0x6c2e8a20, 0xf055: 0x6c2e8820, 0xf056: 0x6c2e8c20, - 0xf058: 0x6c104420, - 0xf05c: 0x6c2e8e20, - 0xf061: 0x6c2e9020, 0xf062: 0x6c2e9420, - 0xf065: 0x6c2e9220, - // Block 0x3c2, offset 0xf080 - 0xf09c: 0x6c12f420, - 0xf0a1: 0x6c2e9620, - 0xf0a8: 0x6c2e9820, 0xf0aa: 0x6c07e220, - 0xf0ae: 0x6c2e9a20, 0xf0af: 0x6c2e9c20, - 0xf0b2: 0x6c142620, - 0xf0bb: 0x6c0cd220, - 0xf0bf: 0x6c000820, - // Block 0x3c3, offset 0xf0c0 - 0xf0c0: 0x6c0d8e20, 0xf0c2: 0x6c2e9e20, - 0xf0c4: 0x6c12f620, - 0xf0cb: 0x6c2ea420, - 0xf0cc: 0x6c2ea020, 0xf0cd: 0x6c071a20, 0xf0cf: 0x6c2ea220, - 0xf0d0: 0x6c062420, - 0xf0db: 0x6c136220, - 0xf0dc: 0x6c2ea820, 0xf0dd: 0x6c2eac20, 0xf0de: 0x6c2eaa20, 0xf0df: 0x6c2eae20, - 0xf0e2: 0x6c00be20, 0xf0e3: 0x6c0b7420, - 0xf0e4: 0x6c0a4420, 0xf0e5: 0x6c036220, 0xf0e6: 0x6c2eb020, - 0xf0ea: 0x6c117020, - 0xf0ec: 0x6c2eb420, - 0xf0f0: 0x6c00c020, 0xf0f2: 0x6c2eb220, 0xf0f3: 0x6c0ef820, - 0xf0f5: 0x6c166220, 0xf0f6: 0x6c103e20, 0xf0f7: 0x6c2ea620, - 0xf0f8: 0x6c161420, 0xf0fa: 0x6c060220, - 0xf0fd: 0x6c15c220, - // Block 0x3c4, offset 0xf100 - 0xf105: 0x6c051a20, 0xf106: 0x6c163020, - 0xf108: 0x6c053420, 0xf10a: 0x6c0dbc20, 0xf10b: 0x6c281020, - 0xf10d: 0x6c2eb620, 0xf10e: 0x6c024c20, 0xf10f: 0x6c0ba220, - 0xf114: 0x6c02a020, 0xf115: 0x6c2eba20, 0xf117: 0x6c2ebc20, - 0xf118: 0x6c2eb820, 0xf119: 0x6c05ac20, 0xf11b: 0x6c07d220, - 0xf11c: 0x6c0ace20, - 0xf120: 0x6c00c220, 0xf123: 0x6c167a20, - 0xf127: 0x6c2ec020, - 0xf128: 0x6c2d4e20, 0xf12a: 0x6c2ebe20, - 0xf130: 0x6c2ec620, 0xf131: 0x6c2ec220, 0xf132: 0x6c2ec420, - 0xf134: 0x6c2ec820, 0xf136: 0x6c2eca20, 0xf137: 0x6c16a020, - 0xf138: 0x6c2ecc20, 0xf139: 0x6c2ece20, 0xf13b: 0x6c0c1220, - 0xf13c: 0x6c11d620, - // Block 0x3c5, offset 0xf140 - 0xf140: 0x6c0bbe20, 0xf141: 0x6c037e20, - 0xf144: 0x6c158020, 0xf145: 0x6c021220, 0xf146: 0x6c09bc20, 0xf147: 0x6c065620, - 0xf149: 0x6c2ed420, 0xf14b: 0x6c2ed220, - 0xf14c: 0x6c08ba20, 0xf14d: 0x6c2ed620, 0xf14e: 0x6c2ed020, - 0xf151: 0x6c082420, - 0xf155: 0x6c2ede20, 0xf156: 0x6c2a5c20, - 0xf159: 0x6c190e20, 0xf15b: 0x6c0bb220, - 0xf15c: 0x6c2eda20, - 0xf162: 0x6c161220, 0xf163: 0x6c10ca20, - 0xf168: 0x6c00d220, 0xf16a: 0x6c0c4620, 0xf16b: 0x6c08fc20, - 0xf170: 0x6c134620, 0xf172: 0x6c00fc20, - 0xf176: 0x6c16a220, 0xf177: 0x6c15e220, - 0xf179: 0x6c2ee020, 0xf17b: 0x6c0fb620, - // Block 0x3c6, offset 0xf180 - 0xf180: 0x6c098620, - 0xf184: 0x6c2ee220, 0xf186: 0x6c2ee420, 0xf187: 0x6c0b5c20, - 0xf188: 0x6c2ee620, 0xf18a: 0x6c16a420, - 0xf18d: 0x6c2edc20, 0xf18e: 0x6c2eea20, 0xf18f: 0x6c2eee20, - 0xf191: 0x6c2eec20, 0xf193: 0x6c2ee820, - 0xf196: 0x6c2ef020, - 0xf199: 0x6c2ef220, - 0xf19c: 0x6c0d3020, 0xf19e: 0x6c01fc20, - 0xf1a4: 0x6c2ef420, 0xf1a7: 0x6c14c020, - 0xf1aa: 0x6c2ef620, - 0xf1b0: 0x6c2ef820, 0xf1b2: 0x6c16d820, - 0xf1b8: 0x6c1f6020, 0xf1b9: 0x6c2efa20, - 0xf1bd: 0x6c2efc20, 0xf1be: 0x6c2efe20, - // Block 0x3c7, offset 0xf1c0 - 0xf1c2: 0x6c2f0620, - 0xf1c4: 0x6c2f0020, 0xf1c6: 0x6c2f0220, - 0xf1c8: 0x6c2f0420, 0xf1c9: 0x6c2f0820, - 0xf1d2: 0x6c0c0820, - 0xf1d6: 0x6c153e20, - 0xf1d9: 0x6c0c0a20, - 0xf1dc: 0x6c2f0a20, 0xf1de: 0x6c124620, - 0xf1e0: 0x6c2f0c20, 0xf1e1: 0x6c314420, 0xf1e2: 0x6c14e820, - 0xf1e4: 0x6c2f0e20, 0xf1e6: 0x6c2f1020, - 0xf1e8: 0x6c2f1220, 0xf1e9: 0x6c02a220, 0xf1eb: 0x6c2f1620, - 0xf1ed: 0x6c0b7620, - 0xf1f1: 0x6c2f1820, - 0xf1f4: 0x6c052c20, - 0xf1f9: 0x6c2f1a20, 0xf1fa: 0x6c2f2220, - 0xf1fc: 0x6c2f1e20, - // Block 0x3c8, offset 0xf200 - 0xf201: 0x6c2f2020, - 0xf204: 0x6c02da20, 0xf205: 0x6c2f1c20, 0xf206: 0x6c2f2420, - 0xf20b: 0x6c2f2620, - 0xf20d: 0x6c005020, 0xf20f: 0x6c2f2820, - 0xf210: 0x6c2f2a20, - 0xf218: 0x6c0ad020, - 0xf21c: 0x6c2f2c20, - 0xf220: 0x6c03fa20, 0xf223: 0x6c2f3220, - 0xf226: 0x6c2f3020, - 0xf228: 0x6c2f2e20, 0xf22b: 0x6c2ba020, - 0xf22d: 0x6c139020, - 0xf233: 0x6c2f3420, - 0xf234: 0x6c2f3620, - // Block 0x3c9, offset 0xf240 - 0xf243: 0x6c2f3820, - 0xf246: 0x6c2f3a20, - 0xf248: 0x6c2f3c20, 0xf24b: 0x6c2f3e20, - 0xf253: 0x6c036420, - 0xf25c: 0x6c2f4020, - 0xf26d: 0x6c2f4220, 0xf26e: 0x6c10ea20, - 0xf272: 0x6c2f4620, 0xf273: 0x6c01ae20, - 0xf275: 0x6c2f4c20, 0xf276: 0x6c2f4a20, - 0xf27b: 0x6c00c420, - 0xf27f: 0x6c04aa20, - // Block 0x3ca, offset 0xf280 - 0xf281: 0x6c136620, 0xf282: 0x6c0ee420, 0xf283: 0x6c075c20, - 0xf285: 0x6c071c20, 0xf286: 0x6c0a1a20, - 0xf288: 0x6c0b7c20, - 0xf28c: 0x6c2f5020, 0xf28f: 0x6c2f4e20, - 0xf290: 0x6c159020, 0xf291: 0x6c038020, 0xf292: 0x6c120420, 0xf293: 0x6c10a020, - 0xf297: 0x6c0bbc20, - 0xf298: 0x6c166420, 0xf29a: 0x6c059a20, - 0xf2a1: 0x6c2f5620, - 0xf2a4: 0x6c2f5420, - 0xf2ac: 0x6c142a20, 0xf2ad: 0x6c104020, - 0xf2b4: 0x6c011c20, 0xf2b7: 0x6c2f5820, - 0xf2b8: 0x6c2f5220, 0xf2bb: 0x6c12be20, - 0xf2bc: 0x6c15e020, 0xf2bd: 0x6c2f5a20, - // Block 0x3cb, offset 0xf2c0 - 0xf2c6: 0x6c2f5c20, - 0xf2cb: 0x6c2f6020, - 0xf2cc: 0x6c0dcc20, 0xf2cd: 0x6c02aa20, 0xf2ce: 0x6c02ac20, 0xf2cf: 0x6c2f5e20, - 0xf2d4: 0x6c038220, 0xf2d5: 0x6c060420, - 0xf2d8: 0x6c038420, 0xf2db: 0x6c0faa20, - 0xf2de: 0x6c168820, - 0xf2e7: 0x6c065820, - 0xf2eb: 0x6c2f6220, - 0xf2ef: 0x6c2f6420, - 0xf2f0: 0x6c2f6620, 0xf2f1: 0x6c2f6820, 0xf2f3: 0x6c2f6c20, - 0xf2f4: 0x6c2f6a20, - // Block 0x3cc, offset 0xf300 - 0xf328: 0x6c130a20, 0xf32a: 0x6c2f6e20, - 0xf32f: 0x6c2f7020, - 0xf331: 0x6c2f7220, - 0xf336: 0x6c2f7420, - // Block 0x3cd, offset 0xf340 - 0xf343: 0x6c2f7820, - 0xf344: 0x6c2f7620, 0xf346: 0x6c2f7a20, - 0xf35b: 0x6c124820, - 0xf35c: 0x6c27aa20, 0xf35f: 0x6c0b1620, - 0xf362: 0x6c03d020, - 0xf369: 0x6c2f7c20, 0xf36b: 0x6c2f7e20, - 0xf36d: 0x6c18ba20, 0xf36e: 0x6c20ec20, 0xf36f: 0x6c120620, - 0xf372: 0x6c00b620, - 0xf374: 0x6c003620, - 0xf37c: 0x6c08bc20, 0xf37d: 0x6c13f420, 0xf37e: 0x6c0b0420, - // Block 0x3ce, offset 0xf380 - 0xf383: 0x6c2f8020, - 0xf385: 0x6c150e20, - 0xf389: 0x6c2f8220, 0xf38a: 0x6c15c420, - 0xf38c: 0x6c010020, - 0xf390: 0x6c085620, 0xf392: 0x6c2f8420, 0xf393: 0x6c021420, - 0xf394: 0x6c2f8620, - 0xf398: 0x6c2f8820, - 0xf39d: 0x6c2f8c20, 0xf39e: 0x6c2f8e20, - 0xf3a0: 0x6c2f9220, 0xf3a1: 0x6c2f8a20, - 0xf3a4: 0x6c2f9020, - 0xf3a8: 0x6c036620, - 0xf3ac: 0x6c2f9420, 0xf3ae: 0x6c2f9620, - 0xf3bd: 0x6c2f9820, 0xf3be: 0x6c2f9a20, - // Block 0x3cf, offset 0xf3c0 - 0xf3c2: 0x6c2f9c20, - 0xf3c5: 0x6c2fa020, - 0xf3c9: 0x6c2f9e20, 0xf3cb: 0x6c2fa420, - 0xf3cc: 0x6c2faa20, - 0xf3d0: 0x6c2fa220, 0xf3d1: 0x6c2fa620, 0xf3d2: 0x6c2fa820, - 0xf3d5: 0x6c2fac20, 0xf3d7: 0x6c04ac20, - // Block 0x3d0, offset 0xf400 - 0xf416: 0x6c097620, 0xf417: 0x6c2fae20, - 0xf418: 0x6c2fb020, 0xf419: 0x6c071e20, - 0xf425: 0x6c2fb220, - 0xf428: 0x6c027020, - 0xf42c: 0x6c114220, 0xf42d: 0x6c2fb420, 0xf42e: 0x6c2fb620, - 0xf433: 0x6c0e6820, - 0xf434: 0x6c10be20, - 0xf43c: 0x6c2fb820, - // Block 0x3d1, offset 0xf440 - 0xf441: 0x6c119e20, - 0xf444: 0x6c0d9020, 0xf445: 0x6c012c20, 0xf446: 0x6c050420, - 0xf448: 0x6c050620, - 0xf450: 0x6c0e9a20, 0xf451: 0x6c2fc220, 0xf452: 0x6c050820, - 0xf455: 0x6c021620, - 0xf458: 0x6c2fc020, 0xf45b: 0x6c2fbc20, - 0xf45d: 0x6c2fbe20, 0xf45f: 0x6c2fba20, - 0xf462: 0x6c2fd620, - 0xf46d: 0x6c2fc420, 0xf46e: 0x6c2fc620, - 0xf471: 0x6c2fc820, 0xf472: 0x6c2fca20, - 0xf478: 0x6c2fce20, 0xf47b: 0x6c2fcc20, - 0xf47f: 0x6c09fe20, - // Block 0x3d2, offset 0xf480 - 0xf481: 0x6c2fd020, - 0xf485: 0x6c2fd420, - 0xf48e: 0x6c03d220, 0xf48f: 0x6c2fd220, - 0xf492: 0x6c0d3220, 0xf493: 0x6c060620, - 0xf499: 0x6c2fd820, - 0xf4a8: 0x6c0d9220, 0xf4ab: 0x6c2fda20, - 0xf4b0: 0x6c104220, - 0xf4b7: 0x6c2fdc20, - 0xf4be: 0x6c2fe620, - // Block 0x3d3, offset 0xf4c0 - 0xf4c0: 0x6c2fe220, 0xf4c2: 0x6c2fe020, 0xf4c3: 0x6c2fe420, - 0xf4c5: 0x6c2fde20, - 0xf4cd: 0x6c2fea20, - 0xf4d5: 0x6c2fe820, 0xf4d7: 0x6c2fee20, - 0xf4da: 0x6c04ae20, 0xf4db: 0x6c2fec20, - 0xf4df: 0x6c2ff020, - 0xf4e2: 0x6c2ff220, - 0xf4e4: 0x6c2ff620, 0xf4e5: 0x6c2ff420, - 0xf4e9: 0x6c2ff820, 0xf4ea: 0x6c2ffc20, 0xf4eb: 0x6c2ffa20, - // Block 0x3d4, offset 0xf500 - 0xf528: 0x6c075420, - 0xf52d: 0x6c2ffe20, - 0xf530: 0x6c300020, - 0xf538: 0x6c026c20, - 0xf53c: 0x6c300220, - // Block 0x3d5, offset 0xf540 - 0xf540: 0x6c300420, - 0xf544: 0x6c0ba620, - 0xf54f: 0x6c300620, - 0xf551: 0x6c300820, 0xf553: 0x6c300a20, - 0xf554: 0x6c300c20, - 0xf558: 0x6c072020, - 0xf55e: 0x6c300e20, 0xf55f: 0x6c301020, - 0xf562: 0x6c301220, 0xf563: 0x6c301420, - 0xf566: 0x6c301620, - 0xf56a: 0x6c11c220, 0xf56b: 0x6c301a20, - 0xf56d: 0x6c126820, 0xf56e: 0x6c301c20, 0xf56f: 0x6c301820, - 0xf571: 0x6c302020, - 0xf574: 0x6c301e20, 0xf577: 0x6c302220, - 0xf57b: 0x6c302420, - // Block 0x3d6, offset 0xf580 - 0xf586: 0x6c302620, - 0xf598: 0x6c302820, 0xf59a: 0x6c302a20, - 0xf59f: 0x6c302c20, - 0xf5a2: 0x6c302e20, 0xf5a3: 0x6c303020, - 0xf5a5: 0x6c303220, 0xf5a7: 0x6c303420, - 0xf5a8: 0x6c303620, 0xf5a9: 0x6c303820, 0xf5aa: 0x6c303a20, - 0xf5ae: 0x6c303c20, 0xf5af: 0x6c303e20, - 0xf5b1: 0x6c20e020, 0xf5b2: 0x6c304020, - 0xf5bb: 0x6c268a20, - 0xf5bc: 0x6c03d420, - // Block 0x3d7, offset 0xf5c0 - 0xf5c1: 0x6c023620, 0xf5c2: 0x6c077c20, 0xf5c3: 0x6c304420, - 0xf5c4: 0x6c304220, 0xf5c5: 0x6c149a20, - 0xf5cd: 0x6c304820, 0xf5ce: 0x6c304a20, 0xf5cf: 0x6c304620, - 0xf5d1: 0x6c304c20, - 0xf5d4: 0x6c145820, - 0xf5d8: 0x6c304e20, 0xf5da: 0x6c046220, - 0xf5ef: 0x6c16ce20, - 0xf5f4: 0x6c305020, - // Block 0x3d8, offset 0xf600 - 0xf603: 0x6c305420, - 0xf60e: 0x6c003c20, - 0xf611: 0x6c305620, 0xf612: 0x6c132e20, 0xf613: 0x6c305220, - 0xf616: 0x6c305820, 0xf617: 0x6c305a20, - 0xf61f: 0x6c305c20, - 0xf620: 0x6c305e20, - 0xf628: 0x6c306020, 0xf62a: 0x6c147020, 0xf62b: 0x6c082e20, - 0xf62d: 0x6c080c20, 0xf62e: 0x6c0c9a20, - 0xf634: 0x6c306220, - 0xf639: 0x6c306820, - // Block 0x3d9, offset 0xf640 - 0xf640: 0x6c306420, - 0xf646: 0x6c306a20, - 0xf649: 0x6c068220, 0xf64a: 0x6c306620, - 0xf64f: 0x6c306c20, - 0xf651: 0x6c306e20, 0xf652: 0x6c307020, - 0xf654: 0x6c307820, 0xf656: 0x6c082820, - 0xf65b: 0x6c0dc020, - 0xf661: 0x6c307a20, 0xf662: 0x6c307420, 0xf663: 0x6c307220, - 0xf664: 0x6c307620, - 0xf668: 0x6c05a220, - 0xf670: 0x6c308220, 0xf671: 0x6c308020, 0xf672: 0x6c307e20, - 0xf675: 0x6c002620, - // Block 0x3da, offset 0xf680 - 0xf684: 0x6c309620, 0xf686: 0x6c308e20, - 0xf688: 0x6c309020, 0xf689: 0x6c308820, 0xf68a: 0x6c309420, - 0xf68c: 0x6c308c20, 0xf68d: 0x6c02b820, - 0xf690: 0x6c171c20, 0xf692: 0x6c309220, 0xf693: 0x6c308a20, - 0xf694: 0x6c308620, 0xf695: 0x6c308420, - 0xf69b: 0x6c309a20, - 0xf6a1: 0x6c30a020, - 0xf6a4: 0x6c309e20, 0xf6a5: 0x6c309c20, - 0xf6ad: 0x6c12ae20, 0xf6ae: 0x6c309820, 0xf6af: 0x6c00a620, - 0xf6b0: 0x6c30a220, 0xf6b2: 0x6c30a620, - 0xf6b9: 0x6c02d220, 0xf6ba: 0x6c307c20, 0xf6bb: 0x6c00ea20, - 0xf6be: 0x6c30aa20, - // Block 0x3db, offset 0xf6c0 - 0xf6c6: 0x6c30a820, 0xf6c7: 0x6c30a420, - 0xf6c8: 0x6c0e0e20, - 0xf6d2: 0x6c147420, - 0xf6d7: 0x6c167c20, - 0xf6da: 0x6c30ac20, - 0xf6e0: 0x6c30ae20, - 0xf6e7: 0x6c30b020, - 0xf6f6: 0x6c30b220, - 0xf6f8: 0x6c30b420, - // Block 0x3dc, offset 0xf700 - 0xf725: 0x6c0ee620, 0xf727: 0x6c30b620, - 0xf729: 0x6c11ce20, 0xf72b: 0x6c30c020, - 0xf72c: 0x6c30b820, - 0xf730: 0x6c30ba20, 0xf733: 0x6c13f620, - 0xf734: 0x6c14d820, 0xf736: 0x6c108820, - // Block 0x3dd, offset 0xf740 - 0xf743: 0x6c30c220, - 0xf746: 0x6c30c420, 0xf747: 0x6c106420, - 0xf748: 0x6c30be20, 0xf749: 0x6c30bc20, - 0xf74e: 0x6c018c20, - 0xf752: 0x6c30d420, - 0xf755: 0x6c30d220, - 0xf75b: 0x6c016620, - 0xf75f: 0x6c30ce20, - 0xf763: 0x6c30cc20, - 0xf766: 0x6c30c820, - 0xf768: 0x6c02ea20, 0xf76a: 0x6c30c620, 0xf76b: 0x6c08f420, - 0xf76c: 0x6c018a20, - 0xf77b: 0x6c072220, - 0xf77e: 0x6c30da20, 0xf77f: 0x6c30d820, - // Block 0x3de, offset 0xf780 - 0xf781: 0x6c30d620, - 0xf784: 0x6c30d020, 0xf786: 0x6c30dc20, - 0xf788: 0x6c30de20, - 0xf790: 0x6c30e820, 0xf791: 0x6c30e620, - 0xf799: 0x6c30ea20, - 0xf79c: 0x6c00d620, 0xf79d: 0x6c30e020, 0xf79e: 0x6c30e220, - 0xf7a0: 0x6c074420, 0xf7a1: 0x6c14c220, - 0xf7a4: 0x6c30e420, - 0xf7ac: 0x6c13f820, 0xf7af: 0x6c30f420, - 0xf7b2: 0x6c30ec20, - 0xf7ba: 0x6c30f620, - // Block 0x3df, offset 0xf7c0 - 0xf7c7: 0x6c30f020, - 0xf7c9: 0x6c30ee20, - 0xf7cf: 0x6c059c20, - 0xf7da: 0x6c30f820, - 0xf7e4: 0x6c30fa20, - 0xf7e9: 0x6c30fc20, 0xf7eb: 0x6c30f220, - 0xf7ef: 0x6c30ca20, - 0xf7f2: 0x6c30fe20, - 0xf7f4: 0x6c0f3220, - 0xf7f8: 0x6c310620, 0xf7fa: 0x6c310820, 0xf7fb: 0x6c310420, - // Block 0x3e0, offset 0xf800 - 0xf801: 0x6c310220, 0xf802: 0x6c310e20, - 0xf804: 0x6c310020, 0xf806: 0x6c310a20, - 0xf80f: 0x6c310c20, - 0xf813: 0x6c311220, - 0xf819: 0x6c311020, - 0xf826: 0x6c311620, - 0xf82d: 0x6c311820, 0xf82f: 0x6c311a20, - 0xf832: 0x6c171620, - 0xf838: 0x6c311420, 0xf839: 0x6c0dce20, 0xf83a: 0x6c07f220, - 0xf83d: 0x6c311c20, - // Block 0x3e1, offset 0xf840 - 0xf85a: 0x6c311e20, 0xf85b: 0x6c312020, - 0xf85e: 0x6c312220, - // Block 0x3e2, offset 0xf880 - 0xf8b5: 0x6c312420, - 0xf8b8: 0x6c060820, 0xf8b9: 0x6c312620, - 0xf8bd: 0x6c312820, 0xf8bf: 0x6c08ee20, - // Block 0x3e3, offset 0xf8c0 - 0xf8c1: 0x6c312a20, - 0xf8c8: 0x6c312c20, 0xf8cb: 0x6c312e20, - 0xf8cc: 0x6c313020, - 0xf8d1: 0x6c313620, 0xf8d2: 0x6c313220, 0xf8d3: 0x6c16fc20, - 0xf8d5: 0x6c313420, 0xf8d7: 0x6c16a620, - 0xf8dd: 0x6c313820, 0xf8df: 0x6c167e20, - 0xf8e5: 0x6c313a20, 0xf8e6: 0x6c11a020, - 0xf8e9: 0x6c313c20, 0xf8ea: 0x6c314020, - 0xf8ed: 0x6c314220, - 0xf8f8: 0x6c313e20, 0xf8f9: 0x6c073620, 0xf8fa: 0x6c14ea20, 0xf8fb: 0x6c145a20, - 0xf8fc: 0x6c1c4020, 0xf8fe: 0x6c213620, 0xf8ff: 0x6c148a20, - // Block 0x3e4, offset 0xf900 - 0xf904: 0x6c018e20, - 0xf90c: 0x6c314620, 0xf90d: 0x6c040c20, 0xf90e: 0x6c314820, 0xf90f: 0x6c314a20, - 0xf910: 0x6c314c20, 0xf912: 0x6c074620, - 0xf914: 0x6c314e20, - 0xf918: 0x6c235220, 0xf919: 0x6c150620, 0xf91b: 0x6c0dbe20, - 0xf91c: 0x6c315020, 0xf91d: 0x6c315420, 0xf91e: 0x6c315220, - 0xf920: 0x6c315620, - 0xf925: 0x6c315820, - 0xf928: 0x6c315a20, - 0xf92f: 0x6c315c20, - 0xf934: 0x6c315e20, 0xf936: 0x6c316020, 0xf937: 0x6c316220, - 0xf939: 0x6c316420, 0xf93b: 0x6c316620, - 0xf93c: 0x6c316820, 0xf93d: 0x6c316a20, - // Block 0x3e5, offset 0xf940 - 0xf947: 0x6c316c20, - 0xf948: 0x6c316e20, - 0xf94e: 0x6c0f7420, - 0xf953: 0x6c065a20, - 0xf955: 0x6c317220, - 0xf960: 0x6c0cd620, 0xf961: 0x6c317420, - 0xf96c: 0x6c317620, - 0xf97b: 0x6c125e20, - 0xf97e: 0x6c317820, - // Block 0x3e6, offset 0xf980 - 0xf98a: 0x6c317a20, 0xf98b: 0x6c254c20, - 0xf98e: 0x6c2c2e20, 0xf98f: 0x6c2f4420, - 0xf992: 0x6c317c20, - 0xf994: 0x6c317e20, - 0xf99f: 0x6c318220, - 0xf9a0: 0x6c318420, 0xf9a1: 0x6c318620, 0xf9a2: 0x6c16a820, 0xf9a3: 0x6c318020, - 0xf9a6: 0x6c318820, 0xf9a7: 0x6c318a20, - 0xf9aa: 0x6c318e20, - 0xf9ac: 0x6c318c20, - 0xf9b2: 0x6c319220, - 0xf9b6: 0x6c319420, 0xf9b7: 0x6c319020, - // Block 0x3e7, offset 0xf9c0 - 0xf9cd: 0x6c163420, - 0xf9d5: 0x6c319620, - 0xf9dc: 0x6c319820, 0xf9dd: 0x6c258620, - 0xf9e0: 0x6c319a20, - // Block 0x3e8, offset 0xfa00 - 0xfa00: 0x6c2bdc20, 0xfa01: 0x6c06ce20, 0xfa02: 0x6c093c20, 0xfa03: 0x6c2c1020, - 0xfa04: 0x6c02c820, 0xfa05: 0x6c051c20, 0xfa06: 0x6c04f620, 0xfa07: 0x6c319820, - 0xfa08: 0x6c319820, 0xfa09: 0x6c056420, 0xfa0a: 0x6c04ec20, 0xfa0b: 0x6c19b020, - 0xfa0c: 0x6c10a820, 0xfa0d: 0x6c1dac20, 0xfa0e: 0x6c245a20, 0xfa0f: 0x6c15d620, - 0xfa10: 0x6c29d420, 0xfa11: 0x6c15d820, 0xfa12: 0x6c15da20, 0xfa13: 0x6c2d5e20, - 0xfa14: 0x6c207020, 0xfa15: 0x6c15e420, 0xfa16: 0x6c22ae20, 0xfa17: 0x6c237220, - 0xfa18: 0x6c15e820, 0xfa19: 0x6c15ea20, 0xfa1a: 0x6c2fc820, 0xfa1b: 0x6c174220, - 0xfa1c: 0x6c15ee20, 0xfa1d: 0x6c15f220, 0xfa1e: 0x6c22f420, 0xfa1f: 0x6c15f820, - 0xfa20: 0x6c312220, 0xfa21: 0x6c15f020, 0xfa22: 0x6c15f420, 0xfa23: 0x6c15f620, - 0xfa24: 0x6c2b0220, 0xfa25: 0x6c1e1420, 0xfa26: 0x6c285620, 0xfa27: 0x43103e20, - 0xfa28: 0x6c16de20, 0xfa29: 0x6c16e220, 0xfa2a: 0x6c16e820, 0xfa2b: 0x6c16ee20, - 0xfa2c: 0x6c16f820, 0xfa2d: 0x6c179220, 0xfa2e: 0x6c169020, 0xfa2f: 0x6c18b420, - 0xfa30: 0x42c98820, 0xfa31: 0x6c16d020, 0xfa32: 0x6c22f220, 0xfa33: 0x6c249620, - 0xfa34: 0x6c16f220, 0xfa35: 0x6c29cc20, 0xfa36: 0x6c163c20, 0xfa37: 0x6c16d620, - 0xfa38: 0x6c16d820, 0xfa39: 0x6c16ce20, 0xfa3a: 0x6c07f220, 0xfa3b: 0x6c250420, - 0xfa3c: 0x6c254420, 0xfa3d: 0x42fb4020, 0xfa3e: 0x43079220, 0xfa3f: 0x43260820, - // Block 0x3e9, offset 0xfa40 - 0xfa40: 0x6c08ee20, 0xfa41: 0x6c170420, 0xfa42: 0x6c1a9e20, 0xfa43: 0x6c16e020, - 0xfa44: 0x6c262620, 0xfa45: 0x6c16f420, 0xfa46: 0x6c16ec20, 0xfa47: 0x6c251c20, - 0xfa48: 0x6c16d420, 0xfa49: 0x6c15e220, 0xfa4a: 0x6c1a9620, 0xfa4b: 0x42b8c420, - 0xfa4c: 0x6c209220, 0xfa4d: 0x42dbb420, 0xfa4e: 0x6c16ea20, 0xfa4f: 0x6c168620, - 0xfa50: 0x6c271420, 0xfa51: 0x6c2ea420, 0xfa52: 0x6c2f1420, 0xfa53: 0x6c170020, - 0xfa54: 0x6c31a420, 0xfa55: 0x6c164620, 0xfa56: 0x6c165620, 0xfa57: 0x6c003a20, - 0xfa58: 0x6c126e20, 0xfa59: 0x6c166220, 0xfa5a: 0x6c2bc620, 0xfa5b: 0x6c1dfe20, - 0xfa5c: 0x6c207020, 0xfa5d: 0x6c0dec20, 0xfa5e: 0x6c0e1420, 0xfa5f: 0x6c10fa20, - 0xfa60: 0x6c0fe420, 0xfa61: 0x6c161820, 0xfa62: 0x6c007620, 0xfa63: 0x6c142c20, - 0xfa64: 0x42f1f620, 0xfa65: 0x6c138820, 0xfa66: 0x6c131420, 0xfa67: 0x6c12c420, - 0xfa68: 0x6c122e20, 0xfa69: 0x6c1ed820, 0xfa6a: 0x6c080620, 0xfa6b: 0x6c190a20, - 0xfa6c: 0x6c07aa20, 0xfa6d: 0x6c0a9c20, 0xfa6e: 0x6c15b620, 0xfa6f: 0x43155420, - 0xfa70: 0x6c082020, 0xfa71: 0x6c0dfc20, 0xfa72: 0x6c0ef020, 0xfa73: 0x6c099820, - 0xfa74: 0x6c095620, 0xfa75: 0x6c161e20, 0xfa76: 0x6c162020, 0xfa77: 0x6c164020, - 0xfa78: 0x6c182620, 0xfa79: 0x6c185a20, 0xfa7a: 0x6c164c20, 0xfa7b: 0x6c165820, - 0xfa7c: 0x6c165a20, 0xfa7d: 0x6c165c20, 0xfa7e: 0x6c166020, 0xfa7f: 0x6c18c020, - // Block 0x3ea, offset 0xfa80 - 0xfa80: 0x6c16cc20, 0xfa81: 0x6c0a3a20, 0xfa82: 0x6c1c6220, 0xfa83: 0x6c163a20, - 0xfa84: 0x6c228020, 0xfa85: 0x6c24f620, 0xfa86: 0x6c2e7420, 0xfa87: 0x6c2ffc20, - 0xfa88: 0x6c16a620, 0xfa89: 0x6c314820, 0xfa8a: 0x6c166620, 0xfa8b: 0x42cd8c20, - 0xfa8c: 0x42d6ee20, 0xfa8d: 0x6c2cf620, 0xfa8e: 0x6c110220, 0xfa8f: 0x6c16ba20, - 0xfa90: 0x6c1dba20, 0xfa91: 0x6c110820, 0xfa92: 0x6c16bc20, 0xfa93: 0x6c16be20, - 0xfa94: 0x42e91220, 0xfa95: 0x42f39420, 0xfa96: 0x6c16c220, 0xfa97: 0x6c16c420, - 0xfa98: 0x6c2cdc20, 0xfa99: 0x6c16c620, 0xfa9a: 0x6c16c820, 0xfa9b: 0x43269420, - 0xfa9c: 0x6c16ae20, 0xfa9d: 0x6c16b020, 0xfa9e: 0x6c00ac20, 0xfa9f: 0x6c16b220, - 0xfaa0: 0x6c16b420, 0xfaa1: 0x43155420, 0xfaa2: 0x6c16b620, 0xfaa3: 0x6c110420, - 0xfaa4: 0x6c110620, 0xfaa5: 0x42d75c20, 0xfaa6: 0x6c16c020, 0xfaa7: 0x6c235e20, - 0xfaa8: 0x6c168a20, 0xfaa9: 0x6c1a1220, 0xfaaa: 0x6c10fa20, 0xfaab: 0x6c169420, - 0xfaac: 0x6c169620, 0xfaad: 0x6c169820, 0xfaae: 0x6c238e20, 0xfaaf: 0x6c278420, - 0xfab0: 0x6c27c420, 0xfab1: 0x6c169e20, 0xfab2: 0x6c16a220, 0xfab3: 0x6c2f0420, - 0xfab4: 0x6c166420, 0xfab5: 0x6c168e20, 0xfab6: 0x6c255020, 0xfab7: 0x6c2d9a20, - 0xfab8: 0x6c2ecc20, 0xfab9: 0x6c1d1a20, 0xfaba: 0x6c163e20, 0xfabb: 0x6c164220, - 0xfabc: 0x6c164820, 0xfabd: 0x6c10e820, 0xfabe: 0x6c164a20, 0xfabf: 0x6c207020, - // Block 0x3eb, offset 0xfac0 - 0xfac0: 0x6c22e020, 0xfac1: 0x6c165220, 0xfac2: 0x6c297e20, 0xfac3: 0x6c165e20, - 0xfac4: 0x6c163420, 0xfac5: 0x6c1f2a20, 0xfac6: 0x6c2e9a20, 0xfac7: 0x6c162220, - 0xfac8: 0x42cef620, 0xfac9: 0x6c154020, 0xfaca: 0x6c162420, 0xfacb: 0x6c162620, - 0xfacc: 0x6c162820, 0xfacd: 0x6c162a20, 0xface: 0x6c162c20, 0xfacf: 0x6c128220, - 0xfad0: 0x6c168820, 0xfad1: 0x6c16fa20, 0xfad2: 0x6c1dce20, 0xfad3: 0x6c161420, - 0xfad4: 0x6c166a20, 0xfad5: 0x6c1bde20, 0xfad6: 0x6c21cc20, 0xfad7: 0x6c167820, - 0xfad8: 0x6c161620, 0xfad9: 0x6c1d6020, 0xfada: 0x6c053820, 0xfadb: 0x6c161820, - 0xfadc: 0x6c163020, 0xfadd: 0x6c15fc20, 0xfade: 0x6c15fe20, 0xfadf: 0x6c160020, - 0xfae0: 0x6c006e20, 0xfae1: 0x6c160220, 0xfae2: 0x6c160420, 0xfae3: 0x6c0f7620, - 0xfae4: 0x6c160620, 0xfae5: 0x6c160a20, 0xfae6: 0x6c1da420, 0xfae7: 0x6c160c20, - 0xfae8: 0x6c160e20, 0xfae9: 0x6c161020, 0xfaea: 0x6c161220, 0xfaeb: 0x6c106620, - 0xfaec: 0x6c0f8820, 0xfaed: 0x6c193020, 0xfaee: 0x6c167220, 0xfaef: 0x42e93020, - 0xfaf0: 0x6c29ca20, 0xfaf1: 0x6c167a20, 0xfaf2: 0x6c167c20, 0xfaf3: 0x6c167e20, - 0xfaf4: 0x6c166e20, 0xfaf5: 0x6c167020, 0xfaf6: 0x6c167620, 0xfaf7: 0x6c161a20, - 0xfaf8: 0x6c02b020, 0xfaf9: 0x6c162e20, 0xfafa: 0x42e58020, 0xfafb: 0x6c229820, - 0xfafc: 0x6c08f220, 0xfafd: 0x6c09c020, 0xfafe: 0x6c0e7a20, 0xfaff: 0x6c086620, - // Block 0x3ec, offset 0xfb00 - 0xfb00: 0x6c0c3420, 0xfb01: 0x6c0fde20, 0xfb02: 0x6c0dde20, 0xfb03: 0x6c102420, - 0xfb04: 0x6c0dd820, 0xfb05: 0x6c105420, 0xfb06: 0x6c140e20, 0xfb07: 0x6c2ce020, - 0xfb08: 0x6c070420, 0xfb09: 0x6c071a20, 0xfb0a: 0x6c05f620, 0xfb0b: 0x6c028220, - 0xfb0c: 0x6c181a20, 0xfb0d: 0x42ab8020, 0xfb0e: 0x43f41c20, 0xfb0f: 0x43f41e20, - 0xfb10: 0x6c0f0a20, 0xfb11: 0x43f42220, 0xfb12: 0x6c0be420, 0xfb13: 0x43f42620, - 0xfb14: 0x43f42820, 0xfb15: 0x42a3bc20, 0xfb16: 0x6c0ea020, 0xfb17: 0x6c012a20, - 0xfb18: 0x6c169a20, 0xfb19: 0x6c0b4420, 0xfb1a: 0x6c0aa220, 0xfb1b: 0x6c131a20, - 0xfb1c: 0x6c153e20, 0xfb1d: 0x6c0bf420, 0xfb1e: 0x6c00ce20, 0xfb1f: 0x43f43e20, - 0xfb20: 0x430c2420, 0xfb21: 0x43f44220, 0xfb22: 0x6c0a3420, 0xfb23: 0x43f44620, - 0xfb24: 0x43f44820, 0xfb25: 0x6c009e20, 0xfb26: 0x6c0fd420, 0xfb27: 0x43f44e20, - 0xfb28: 0x43f45020, 0xfb29: 0x43f45220, 0xfb2a: 0x6c120620, 0xfb2b: 0x6c08bc20, - 0xfb2c: 0x6c036620, 0xfb2d: 0x6c0f3220, 0xfb2e: 0x4321bc20, 0xfb2f: 0x6c16a020, - 0xfb30: 0x6c12f820, 0xfb31: 0x6c0cd820, 0xfb32: 0x6c14e020, 0xfb33: 0x6c138a20, - 0xfb34: 0x6c04c820, 0xfb35: 0x6c121820, 0xfb36: 0x6c02be20, 0xfb37: 0x6c0e1820, - 0xfb38: 0x6c038e20, 0xfb39: 0x6c135220, 0xfb3a: 0x6c143220, 0xfb3b: 0x6c0cec20, - 0xfb3c: 0x6c1b9c20, 0xfb3d: 0x6c022a20, 0xfb3e: 0x6c025c20, 0xfb3f: 0x6c0d3820, - // Block 0x3ed, offset 0xfb40 - 0xfb40: 0x6c0ec020, 0xfb41: 0x6c12c020, 0xfb42: 0x6c03a620, 0xfb43: 0x6c0a2220, - 0xfb44: 0x6c116220, 0xfb45: 0x6c023c20, 0xfb46: 0x6c0a2620, 0xfb47: 0x6c033220, - 0xfb48: 0x6c093220, 0xfb49: 0x42e45620, 0xfb4a: 0x6c0de420, 0xfb4b: 0x6c123420, - 0xfb4c: 0x6c093420, 0xfb4d: 0x6c089a20, 0xfb4e: 0x6c03ba20, 0xfb4f: 0x6c157420, - 0xfb50: 0x6c0cc420, 0xfb51: 0x6c09e220, 0xfb52: 0x6c01dc20, 0xfb53: 0x6c0f5e20, - 0xfb54: 0x6c074020, 0xfb55: 0x6c108220, 0xfb56: 0x6c0c4220, 0xfb57: 0x6c16c220, - 0xfb58: 0x6c270220, 0xfb59: 0x6c11f620, 0xfb5a: 0x6c0a2c20, 0xfb5b: 0x6c093820, - 0xfb5c: 0x6c09a620, 0xfb5d: 0x4304f220, 0xfb5e: 0x4304f220, 0xfb5f: 0x6c0ea420, - 0xfb60: 0x6c02cc20, 0xfb61: 0x6c08aa20, 0xfb62: 0x6c013020, 0xfb63: 0x6c04e820, - 0xfb64: 0x6c12bc20, 0xfb65: 0x6c0d3e20, 0xfb66: 0x431f6c20, 0xfb67: 0x6c009e20, - 0xfb68: 0x6c10ca20, 0xfb69: 0x6c04aa20, 0xfb6a: 0x6c12be20, 0xfb6b: 0x6c056a20, - 0xfb6c: 0x4885dc20, 0xfb6d: 0x6c036820, - 0xfb70: 0x6c135c20, 0xfb71: 0x6c185420, 0xfb72: 0x6c0ca420, 0xfb73: 0x429f0020, - 0xfb74: 0x6c09c420, 0xfb75: 0x6c182c20, 0xfb76: 0x6c155820, 0xfb77: 0x6c094620, - 0xfb78: 0x6c02be20, 0xfb79: 0x42aaaa20, 0xfb7a: 0x6c199620, 0xfb7b: 0x42abc420, - 0xfb7c: 0x6c0f0a20, 0xfb7d: 0x6c133620, 0xfb7e: 0x6c014020, 0xfb7f: 0x6c144a20, - // Block 0x3ee, offset 0xfb80 - 0xfb80: 0x6c1b0820, 0xfb81: 0x42b65020, 0xfb82: 0x42bda420, 0xfb83: 0x42bdb220, - 0xfb84: 0x6c07b020, 0xfb85: 0x6c1cb620, 0xfb86: 0x6c1d2c20, 0xfb87: 0x6c0b2e20, - 0xfb88: 0x6c154820, 0xfb89: 0x6c0d3820, 0xfb8a: 0x42c2c020, 0xfb8b: 0x6c0ec020, - 0xfb8c: 0x6c0da620, 0xfb8d: 0x6c1e5820, 0xfb8e: 0x6c1e2c20, 0xfb8f: 0x42c8a420, - 0xfb90: 0x6c1eca20, 0xfb91: 0x6c0be420, 0xfb92: 0x6c16e220, 0xfb93: 0x6c141020, - 0xfb94: 0x6c0aee20, 0xfb95: 0x6c210220, 0xfb96: 0x6c082020, 0xfb97: 0x6c162420, - 0xfb98: 0x42ddb620, 0xfb99: 0x6c08d420, 0xfb9a: 0x6c033220, 0xfb9b: 0x6c109020, - 0xfb9c: 0x6c093220, 0xfb9d: 0x42ef4e20, 0xfb9e: 0x6c094e20, 0xfb9f: 0x6c11f020, - 0xfba0: 0x6c0ea020, 0xfba1: 0x42e8e220, 0xfba2: 0x42ea0c20, 0xfba3: 0x6c020820, - 0xfba4: 0x42ec3a20, 0xfba5: 0x6c243820, 0xfba6: 0x6c012a20, 0xfba7: 0x6c0bf220, - 0xfba8: 0x6c0eec20, 0xfba9: 0x42ee9420, 0xfbaa: 0x6c0e7e20, 0xfbab: 0x42f19820, - 0xfbac: 0x42f56220, 0xfbad: 0x6c0c4220, 0xfbae: 0x42f8f620, 0xfbaf: 0x6c26c220, - 0xfbb0: 0x6c16c220, 0xfbb1: 0x42fe7c20, 0xfbb2: 0x6c093820, 0xfbb3: 0x6c070220, - 0xfbb4: 0x6c01ec20, 0xfbb5: 0x430ef220, 0xfbb6: 0x6c2aee20, 0xfbb7: 0x6c132020, - 0xfbb8: 0x6c08aa20, 0xfbb9: 0x6c0ed820, 0xfbba: 0x6c0a3420, 0xfbbb: 0x6c0c0220, - 0xfbbc: 0x6c013020, 0xfbbd: 0x6c0dec20, 0xfbbe: 0x6c154e20, 0xfbbf: 0x6c04e820, - // Block 0x3ef, offset 0xfbc0 - 0xfbc0: 0x6c1ede20, 0xfbc1: 0x6c0d3e20, 0xfbc2: 0x6c155020, 0xfbc3: 0x6c2d5020, - 0xfbc4: 0x43233220, 0xfbc5: 0x4324ec20, 0xfbc6: 0x432cf820, 0xfbc7: 0x6c10ca20, - 0xfbc8: 0x6c153e20, 0xfbc9: 0x432fb620, 0xfbca: 0x6c04aa20, 0xfbcb: 0x43301620, - 0xfbcc: 0x6c12be20, 0xfbcd: 0x43362420, 0xfbce: 0x6c319820, 0xfbcf: 0x48509420, - 0xfbd0: 0x48508820, 0xfbd1: 0x4867aa20, 0xfbd2: 0x44773a20, 0xfbd3: 0x44803020, - 0xfbd4: 0x44807220, 0xfbd5: 0x48a49220, 0xfbd6: 0x48b9a020, 0xfbd7: 0x48fda620, - 0xfbd8: 0x433e8620, 0xfbd9: 0x433f1c20, - // Block 0x3f0, offset 0xfc00 - 0xfc01: 0x4002ba20, 0xfc02: 0x4003e020, 0xfc03: 0x4004ea20, - 0xfc04: 0x4027de20, 0xfc05: 0x4004ec20, 0xfc06: 0x4004e620, 0xfc07: 0x4003d220, - 0xfc08: 0x4003f420, 0xfc09: 0x4003f620, 0xfc0a: 0x4004d820, 0xfc0b: 0x40093820, - 0xfc0c: 0x40024020, 0xfc0d: 0x40021a20, 0xfc0e: 0x4002e420, 0xfc0f: 0x4004e220, - 0xfc10: 0x4029cc20, 0xfc11: 0x4029ce20, 0xfc12: 0x4029d020, 0xfc13: 0x4029d220, - 0xfc14: 0x4029d420, 0xfc15: 0x4029d620, 0xfc16: 0x4029d820, 0xfc17: 0x4029da20, - 0xfc18: 0x4029dc20, 0xfc19: 0x4029de20, 0xfc1a: 0x40026c20, 0xfc1b: 0x40026220, - 0xfc1c: 0x40094020, 0xfc1d: 0x40094220, 0xfc1e: 0x40094420, 0xfc1f: 0x4002c420, - 0xfc20: 0x4004d620, 0xfc21: 0x002bde88, 0xfc22: 0x002c0a88, 0xfc23: 0x002c3a88, - 0xfc24: 0x002c6288, 0xfc25: 0x002c9888, 0xfc26: 0x002d0888, 0xfc27: 0x002d2288, - 0xfc28: 0x002d6888, 0xfc29: 0x002d9a88, 0xfc2a: 0x002dcc88, 0xfc2b: 0x002dfe88, - 0xfc2c: 0x002e2288, 0xfc2d: 0x002e8288, 0xfc2e: 0x002e9e88, 0xfc2f: 0x002ee288, - 0xfc30: 0x002f2c88, 0xfc31: 0x002f5688, 0xfc32: 0x002f7a88, 0xfc33: 0x002fe688, - 0xfc34: 0x00302c88, 0xfc35: 0x00306c88, 0xfc36: 0x0030be88, 0xfc37: 0x0030e288, - 0xfc38: 0x0030f688, 0xfc39: 0x00310088, 0xfc3a: 0x00312a88, 0xfc3b: 0x4003f820, - 0xfc3c: 0x4003d220, 0xfc3d: 0x4003fa20, 0xfc3e: 0x40062420, 0xfc3f: 0x40021620, - // Block 0x3f1, offset 0xfc40 - 0xfc40: 0x40061e20, 0xfc41: 0x402bde20, 0xfc42: 0x402c0a20, 0xfc43: 0x402c3a20, - 0xfc44: 0x402c6220, 0xfc45: 0x402c9820, 0xfc46: 0x402d0820, 0xfc47: 0x402d2220, - 0xfc48: 0x402d6820, 0xfc49: 0x402d9a20, 0xfc4a: 0x402dcc20, 0xfc4b: 0x402dfe20, - 0xfc4c: 0x402e2220, 0xfc4d: 0x402e8220, 0xfc4e: 0x402e9e20, 0xfc4f: 0x402ee220, - 0xfc50: 0x402f2c20, 0xfc51: 0x402f5620, 0xfc52: 0x402f7a20, 0xfc53: 0x402fe620, - 0xfc54: 0x40302c20, 0xfc55: 0x40306c20, 0xfc56: 0x4030be20, 0xfc57: 0x4030e220, - 0xfc58: 0x4030f620, 0xfc59: 0x40310020, 0xfc5a: 0x40312a20, 0xfc5b: 0x4003fc20, - 0xfc5c: 0x40094820, 0xfc5d: 0x4003fe20, 0xfc5e: 0x40094c20, 0xfc5f: 0x00041883, - 0xfc60: 0x00041a83, 0xfc61: 0x40030420, 0xfc62: 0x4004a420, 0xfc63: 0x4004a620, - 0xfc64: 0x40025c20, 0xfc65: 0x00023e92, 0xfc66: 0xca2835c1, 0xfc67: 0xc6393241, - 0xfc68: 0xc7093241, 0xfc69: 0xc7c935c1, 0xfc6a: 0xc8b03241, 0xfc6b: 0xc9653241, - 0xfc6c: 0xc6d43241, 0xfc6d: 0xc89b3241, 0xfc6e: 0xca093241, 0xfc6f: 0xc83435c1, - 0xfc70: 0x0027d692, 0xfc71: 0xc63f3241, 0xfc72: 0xc70f3241, 0xfc73: 0xc7de35c1, - 0xfc74: 0xc8b63241, 0xfc75: 0xc96b3241, 0xfc76: 0xc6523241, 0xfc77: 0xc72235c1, - 0xfc78: 0xc80035c1, 0xfc79: 0xc8c93241, 0xfc7a: 0xc97e35c1, 0xfc7b: 0xc66b35c1, - 0xfc7c: 0xc74435c1, 0xfc7d: 0xc82235c1, 0xfc7e: 0xc8e235c1, 0xfc7f: 0xc99b35c1, - // Block 0x3f2, offset 0xfc80 - 0xfc80: 0xc68835c1, 0xfc81: 0xc76135c1, 0xfc82: 0xc84935c1, 0xfc83: 0xc8ff35c1, - 0xfc84: 0xc9bd35c1, 0xfc85: 0xc6983241, 0xfc86: 0xc7713241, 0xfc87: 0xc85c3241, - 0xfc88: 0xc90f3241, 0xfc89: 0xc9cd3241, 0xfc8a: 0xc6b635c1, 0xfc8b: 0xc78f35c1, - 0xfc8c: 0xc87a35c1, 0xfc8d: 0xc92d35c1, 0xfc8e: 0xc9eb35c1, 0xfc8f: 0xc6ce3241, - 0xfc90: 0xc7a73241, 0xfc91: 0xc8953241, 0xfc92: 0xc9453241, 0xfc93: 0xca033241, - 0xfc94: 0xc6da3241, 0xfc95: 0xc8a13241, 0xfc96: 0xca0f3241, 0xfc97: 0xc6e33241, - 0xfc98: 0xc7b03241, 0xfc99: 0xc8aa3241, 0xfc9a: 0xc94e3241, 0xfc9b: 0xca183241, - 0xfc9c: 0xc6fd35c1, 0xfc9d: 0xca313aa1, 0xfc9e: 0xa0012812, 0xfc9f: 0xa0012912, - 0xfca0: 0x4063a620, 0xfca1: 0x4062ac20, 0xfca2: 0x4062ae20, 0xfca3: 0x40646820, - 0xfca4: 0x4062b020, 0xfca5: 0x40646c20, 0xfca6: 0x40646e20, 0xfca7: 0x4062b220, - 0xfca8: 0x4062b420, 0xfca9: 0x4062b620, 0xfcaa: 0x40647420, 0xfcab: 0x40647620, - 0xfcac: 0x40647820, 0xfcad: 0x40647a20, 0xfcae: 0x40647c20, 0xfcaf: 0x40647e20, - 0xfcb0: 0x4062e020, 0xfcb1: 0x4062b820, 0xfcb2: 0x4062ba20, 0xfcb3: 0x4062bc20, - 0xfcb4: 0x4062ee20, 0xfcb5: 0x4062be20, 0xfcb6: 0x4062c020, 0xfcb7: 0x4062c220, - 0xfcb8: 0x4062c420, 0xfcb9: 0x4062c620, 0xfcba: 0x4062c820, 0xfcbb: 0x4062ca20, - 0xfcbc: 0x4062cc20, 0xfcbd: 0x4062ce20, 0xfcbe: 0x4062d020, - // Block 0x3f3, offset 0xfcc0 - 0xfcc2: 0x4063a820, 0xfcc3: 0x4063aa20, - 0xfcc4: 0x4063ac20, 0xfcc5: 0x4063ae20, 0xfcc6: 0x4063b020, 0xfcc7: 0x4063b220, - 0xfcca: 0x4063b420, 0xfccb: 0x4063b620, - 0xfccc: 0x4063b820, 0xfccd: 0x4063ba20, 0xfcce: 0x4063bc20, 0xfccf: 0x4063be20, - 0xfcd2: 0x4063c020, 0xfcd3: 0x4063c220, - 0xfcd4: 0x4063c420, 0xfcd5: 0x4063c620, 0xfcd6: 0x4063c820, 0xfcd7: 0x4063ca20, - 0xfcda: 0x4063cc20, 0xfcdb: 0x4063ce20, - 0xfcdc: 0x4063d020, - 0xfce0: 0x4027dc20, 0xfce1: 0x4027e020, 0xfce2: 0x40094620, 0xfce3: 0x40021220, - 0xfce4: 0x40094a20, 0xfce5: 0x4027e220, 0xfce6: 0x40280820, - 0xfce8: 0x400d3220, 0xfce9: 0x40084420, 0xfcea: 0x40084820, 0xfceb: 0x40084620, - 0xfcec: 0x40084a20, 0xfced: 0x400e6e20, 0xfcee: 0x400ec420, - 0xfcf9: 0xa0000000, 0xfcfa: 0xa0000000, 0xfcfb: 0xa0000000, - 0xfcfc: 0x4027ae20, 0xfcfd: 0x4027b020, 0xfcfe: 0x00000285, 0xfcff: 0x2bfffe85, - // Block 0x3f4, offset 0xfd00 - 0xfd00: 0xe0003c9d, 0xfd01: 0xe0003c85, 0xfd02: 0xe0003c89, 0xfd03: 0xe0003c91, - 0xfd04: 0xe0003ca1, 0xfd05: 0xe0003c95, 0xfd06: 0xe0003ca5, 0xfd07: 0xe0003c8d, - 0xfd08: 0xe0003c99, - 0xfd10: 0x02bf2e86, 0xfd11: 0x02a7de86, - // Block 0x3f5, offset 0xfd40 - 0xfd40: 0x429c7a20, 0xfd41: 0x6c036a20, 0xfd42: 0x429c8220, 0xfd43: 0x48024420, - 0xfd44: 0x429ec020, 0xfd45: 0x6c12f820, 0xfd46: 0x429f7620, 0xfd47: 0x42a00420, - 0xfd48: 0x42a0f420, 0xfd49: 0x6c124e20, 0xfd4a: 0x6c0cd820, 0xfd4b: 0x6c0d3420, - 0xfd4c: 0x44693c20, 0xfd4d: 0x480c7420, 0xfd4e: 0x6c14e020, 0xfd4f: 0x6c182020, - 0xfd50: 0x42a2c820, 0xfd51: 0x6c050a20, 0xfd52: 0x480a3820, 0xfd53: 0x44697220, - 0xfd54: 0x42a2ce20, 0xfd55: 0x6c07a420, 0xfd56: 0x480a9620, 0xfd57: 0x6c0ada20, - 0xfd58: 0x6c184020, 0xfd59: 0x429d9820, 0xfd5a: 0x6c0fea20, 0xfd5b: 0x6c185420, - 0xfd5c: 0x4923be20, 0xfd5d: 0x6c186820, 0xfd5e: 0x6c0b6220, 0xfd5f: 0x4469be20, - 0xfd60: 0x6c073a20, 0xfd61: 0x42a48c20, 0xfd62: 0x6c02bc20, 0xfd63: 0x42a4ee20, - 0xfd64: 0x446a2a20, 0xfd65: 0x6c155820, 0xfd66: 0x6c138a20, 0xfd67: 0x6c04c820, - 0xfd68: 0x6c094620, 0xfd69: 0x6c13ba20, 0xfd6a: 0x6c18c620, 0xfd6b: 0x6c142c20, - 0xfd6c: 0x6c18e820, 0xfd6d: 0x6c121820, 0xfd6e: 0x6c118020, 0xfd6f: 0x6c0d4820, - 0xfd70: 0x42a6fa20, 0xfd71: 0x6c047c20, 0xfd72: 0x6c047c20, 0xfd73: 0x6c047c20, - 0xfd74: 0x48145820, 0xfd75: 0x6c023e20, 0xfd76: 0x6c042020, 0xfd77: 0x6c191020, - 0xfd78: 0x4816c620, 0xfd79: 0x6c047e20, 0xfd7a: 0x6c090020, 0xfd7b: 0x42a80c20, - 0xfd7c: 0x42a93c20, 0xfd7d: 0x6c042220, 0xfd7e: 0x6c0f4020, 0xfd7f: 0x6c098c20, - // Block 0x3f6, offset 0xfd80 - 0xfd80: 0x6c195220, 0xfd81: 0x42a9ec20, 0xfd82: 0x6c0ff020, 0xfd83: 0x6c055c20, - 0xfd84: 0x6c198220, 0xfd85: 0x6c0c9e20, 0xfd86: 0x6c0c9e20, 0xfd87: 0x6c199620, - 0xfd88: 0x6c040020, 0xfd89: 0x42ab6620, 0xfd8a: 0x42ab8420, 0xfd8b: 0x6c1a2620, - 0xfd8c: 0x6c0e1820, 0xfd8d: 0x42ae2e20, 0xfd8e: 0x42aca220, 0xfd8f: 0x6c133420, - 0xfd90: 0x6c0c3420, 0xfd91: 0x6c0ce420, 0xfd92: 0x6c0ade20, 0xfd93: 0x6c0b0220, - 0xfd94: 0x42b01a20, 0xfd95: 0x6c056220, 0xfd96: 0x42b06420, 0xfd97: 0x6c13be20, - 0xfd98: 0x42b15820, 0xfd99: 0x4829c820, 0xfd9a: 0x6c116c20, 0xfd9b: 0x6c0f2620, - 0xfd9c: 0x42b20c20, 0xfd9d: 0x6c0d7620, 0xfd9e: 0x6c14b820, 0xfd9f: 0x6c1ace20, - 0xfda0: 0x482d5020, 0xfda1: 0x482dd420, 0xfda2: 0x42b3d820, 0xfda3: 0x42b43620, - 0xfda4: 0x42b44e20, 0xfda5: 0x42b3b020, 0xfda6: 0x6c12cc20, 0xfda7: 0x446ddc20, - 0xfda8: 0x446df820, 0xfda9: 0x42b61020, 0xfdaa: 0x6c1b3420, 0xfdab: 0x6c1b3420, - 0xfdac: 0x48339020, 0xfdad: 0x6c1b5c20, 0xfdae: 0x42b7b020, 0xfdaf: 0x6c10fa20, - 0xfdb0: 0x6c1b7620, 0xfdb1: 0x48363020, 0xfdb2: 0x6c097e20, 0xfdb3: 0x6c0a6220, - 0xfdb4: 0x6c101820, 0xfdb5: 0x6c1b8420, 0xfdb6: 0x446f0220, 0xfdb7: 0x6c0fc220, - 0xfdb8: 0x6c1b9c20, 0xfdb9: 0x42b98020, 0xfdba: 0x42b91a20, 0xfdbb: 0x483bc820, - 0xfdbc: 0x42ba8620, 0xfdbd: 0x483bcc20, 0xfdbe: 0x42badc20, 0xfdbf: 0x42bad620, - // Block 0x3f7, offset 0xfdc0 - 0xfdc0: 0x42baf820, 0xfdc1: 0x6c0a1420, 0xfdc2: 0x42bbc420, 0xfdc3: 0x44705e20, - 0xfdc4: 0x6c0e0220, 0xfdc5: 0x42bc5020, 0xfdc6: 0x6c140620, 0xfdc7: 0x42bcd220, - 0xfdc8: 0x4470c420, 0xfdc9: 0x48430620, 0xfdca: 0x4470f820, 0xfdcb: 0x42bd6020, - 0xfdcc: 0x42bd6620, 0xfdcd: 0x6c0a2820, 0xfdce: 0x6c16de20, 0xfdcf: 0x49472420, - 0xfdd0: 0x6c1c6e20, 0xfdd1: 0x48466220, 0xfdd2: 0x48466220, 0xfdd3: 0x6c286820, - 0xfdd4: 0x42be4420, 0xfdd5: 0x42be4420, 0xfdd6: 0x44718e20, 0xfdd7: 0x48657020, - 0xfdd8: 0x48c3b420, 0xfdd9: 0x6c056620, 0xfdda: 0x6c0ebc20, 0xfddb: 0x4471c620, - 0xfddc: 0x42bf3420, 0xfddd: 0x6c10f020, 0xfdde: 0x6c088020, 0xfddf: 0x42bff220, - 0xfde0: 0x6c1d0220, 0xfde1: 0x44727420, 0xfde2: 0x44723820, 0xfde3: 0x6c022a20, - 0xfde4: 0x484da820, 0xfde5: 0x6c109620, 0xfde6: 0x6c08cc20, 0xfde7: 0x6c06c020, - 0xfde8: 0x6c0b2e20, 0xfde9: 0x6c06c020, 0xfdea: 0x42c2f420, 0xfdeb: 0x6c0d3820, - 0xfdec: 0x6c05da20, 0xfded: 0x6c133820, 0xfdee: 0x42c35e20, 0xfdef: 0x42c3bc20, - 0xfdf0: 0x6c0ec020, 0xfdf1: 0x6c1dac20, 0xfdf2: 0x6c0bdc20, 0xfdf3: 0x6c1dc620, - 0xfdf4: 0x42c4ba20, 0xfdf5: 0x6c13cc20, 0xfdf6: 0x6c1df220, 0xfdf7: 0x6c1e2620, - 0xfdf8: 0x48561820, 0xfdf9: 0x6c120820, 0xfdfa: 0x42c5f820, 0xfdfb: 0x6c092c20, - 0xfdfc: 0x6c0cf620, 0xfdfd: 0x42c7c820, 0xfdfe: 0x4857e220, 0xfdff: 0x42c84420, - // Block 0x3f8, offset 0xfe00 - 0xfe00: 0x42c78a20, 0xfe01: 0x6c014820, 0xfe02: 0x44745c20, 0xfe03: 0x6c145420, - 0xfe04: 0x42c8fc20, 0xfe05: 0x42c93a20, 0xfe06: 0x42c8ee20, 0xfe07: 0x4474d820, - 0xfe08: 0x6c12c020, 0xfe09: 0x6c057620, 0xfe0a: 0x48601420, 0xfe0b: 0x42cbc620, - 0xfe0c: 0x6c0a2e20, 0xfe0d: 0x6c1f1420, 0xfe0e: 0x44763220, 0xfe0f: 0x6c0a2220, - 0xfe10: 0x44761020, 0xfe11: 0x4475c820, 0xfe12: 0x6c141620, 0xfe13: 0x6c183c20, - 0xfe14: 0x6c07a620, 0xfe15: 0x42cd3820, 0xfe16: 0x6c27ec20, 0xfe17: 0x4487b220, - 0xfe18: 0x6c16e220, 0xfe19: 0x6c141020, 0xfe1a: 0x42ce4220, 0xfe1b: 0x6c1f7020, - 0xfe1c: 0x6c094a20, 0xfe1d: 0x48678620, 0xfe1e: 0x44769220, 0xfe1f: 0x42cff420, - 0xfe20: 0x6c1f8c20, 0xfe21: 0x42d0a420, 0xfe22: 0x6c116220, 0xfe23: 0x4868da20, - 0xfe24: 0x42d11c20, 0xfe25: 0x42d03e20, 0xfe26: 0x42d22820, 0xfe27: 0x44773a20, - 0xfe28: 0x42d28420, 0xfe29: 0x42d34620, 0xfe2a: 0x42d3d420, 0xfe2b: 0x42d55020, - 0xfe2c: 0x486d4620, 0xfe2d: 0x6c051e20, 0xfe2e: 0x44783020, 0xfe2f: 0x6c08d220, - 0xfe30: 0x48714e20, 0xfe31: 0x6c20f820, 0xfe32: 0x44789c20, 0xfe33: 0x42d6e420, - 0xfe34: 0x42d73e20, 0xfe35: 0x6c082020, 0xfe36: 0x6c028c20, 0xfe37: 0x48751a20, - 0xfe38: 0x483a1620, 0xfe39: 0x4875f420, 0xfe3a: 0x6c11ec20, 0xfe3b: 0x48797820, - 0xfe3c: 0x6c014c20, 0xfe3d: 0x42d99a20, 0xfe3e: 0x42d8ce20, 0xfe3f: 0x42da2c20, - // Block 0x3f9, offset 0xfe40 - 0xfe40: 0x6c113620, 0xfe41: 0x6c023c20, 0xfe42: 0x6c162420, 0xfe43: 0x6c06dc20, - 0xfe44: 0x6c0b3a20, 0xfe45: 0x6c21a620, 0xfe46: 0x487a3c20, 0xfe47: 0x42da6820, - 0xfe48: 0x6c06de20, 0xfe49: 0x6c21d220, 0xfe4a: 0x447a6620, 0xfe4b: 0x6c08d420, - 0xfe4c: 0x42dd8e20, 0xfe4d: 0x487da220, 0xfe4e: 0x6c21a820, 0xfe4f: 0x6c0ec820, - 0xfe50: 0x487ebc20, 0xfe51: 0x487f1c20, 0xfe52: 0x6c226020, 0xfe53: 0x42e07220, - 0xfe54: 0x6c109020, 0xfe55: 0x6c228220, 0xfe56: 0x447b2c20, 0xfe57: 0x42e09420, - 0xfe58: 0x6c07bc20, 0xfe59: 0x42e0ee20, 0xfe5a: 0x6c0e2820, 0xfe5b: 0x480a4a20, - 0xfe5c: 0x42e28a20, 0xfe5d: 0x4884c620, 0xfe5e: 0x42e33820, 0xfe5f: 0x48875620, - 0xfe60: 0x6c22f620, 0xfe61: 0x6c094e20, 0xfe62: 0x42e4a020, 0xfe63: 0x488c1020, - 0xfe64: 0x6c07c020, 0xfe65: 0x42e52a20, 0xfe66: 0x488e6a20, 0xfe67: 0x48902820, - 0xfe68: 0x6c236220, 0xfe69: 0x6c018420, 0xfe6a: 0x447d5820, 0xfe6b: 0x42e74a20, - 0xfe6c: 0x447d7020, 0xfe6d: 0x447d7020, 0xfe6e: 0x42e88e20, 0xfe6f: 0x6c238c20, - 0xfe70: 0x42e8e220, 0xfe71: 0x42e90a20, 0xfe72: 0x6c23a020, 0xfe73: 0x447e3620, - 0xfe74: 0x42ea4820, 0xfe75: 0x48986c20, 0xfe76: 0x42ea7c20, 0xfe77: 0x48992420, - 0xfe78: 0x6c007620, 0xfe79: 0x48433e20, 0xfe7a: 0x42ec2020, 0xfe7b: 0x489f4220, - 0xfe7c: 0x489f7020, 0xfe7d: 0x48a08820, 0xfe7e: 0x447ff820, 0xfe7f: 0x44801020, - // Block 0x3fa, offset 0xfe80 - 0xfe80: 0x6c0eec20, 0xfe81: 0x48a1e620, 0xfe82: 0x48a1e420, 0xfe83: 0x48a23220, - 0xfe84: 0x48a26620, 0xfe85: 0x6c24a820, 0xfe86: 0x6c0b4220, 0xfe87: 0x6c0b4220, - 0xfe88: 0x42ee9420, 0xfe89: 0x44807220, 0xfe8a: 0x6c24c820, 0xfe8b: 0x44808c20, - 0xfe8c: 0x44812c20, 0xfe8d: 0x48a83a20, 0xfe8e: 0x42f09c20, 0xfe8f: 0x6c250420, - 0xfe90: 0x42f19820, 0xfe91: 0x4481c620, 0xfe92: 0x48ac4c20, 0xfe93: 0x6c0cc420, - 0xfe94: 0x48ad3420, 0xfe95: 0x48ad8a20, 0xfe96: 0x6c131a20, 0xfe97: 0x42f3d620, - 0xfe98: 0x44825e20, 0xfe99: 0x6c074020, 0xfe9a: 0x42f49420, 0xfe9b: 0x6c01ac20, - 0xfe9c: 0x48b2f820, 0xfe9d: 0x48b54e20, 0xfe9e: 0x48b54e20, 0xfe9f: 0x42f5dc20, - 0xfea0: 0x44840420, 0xfea1: 0x48b75620, 0xfea2: 0x6c261820, 0xfea3: 0x6c0e6a20, - 0xfea4: 0x44844e20, 0xfea5: 0x48b90020, 0xfea6: 0x6c268420, 0xfea7: 0x44854020, - 0xfea8: 0x42f9d020, 0xfea9: 0x42f9c620, 0xfeaa: 0x6c03c020, 0xfeab: 0x48bf0c20, - 0xfeac: 0x6c26bc20, 0xfead: 0x44860220, 0xfeae: 0x6c26d220, 0xfeaf: 0x42fc0420, - 0xfeb0: 0x42fc8a20, 0xfeb1: 0x44866820, 0xfeb2: 0x48c45020, 0xfeb3: 0x48c48e20, - 0xfeb4: 0x4486b220, 0xfeb5: 0x48c5b220, 0xfeb6: 0x42fef420, 0xfeb7: 0x48c67c20, - 0xfeb8: 0x42ff2a20, 0xfeb9: 0x42fff420, 0xfeba: 0x6c093820, 0xfebb: 0x48c9b420, - 0xfebc: 0x48ca4620, 0xfebd: 0x4300c020, 0xfebe: 0x48cb5020, 0xfebf: 0x6c27d620, - // Block 0x3fb, offset 0xfec0 - 0xfec0: 0x4866be20, 0xfec1: 0x4487aa20, 0xfec2: 0x6c009220, 0xfec3: 0x43020620, - 0xfec4: 0x44881620, 0xfec5: 0x6c281420, 0xfec6: 0x42b56a20, 0xfec7: 0x48cf4e20, - 0xfec8: 0x48cf6a20, 0xfec9: 0x48672620, 0xfeca: 0x48673820, 0xfecb: 0x6c286820, - 0xfecc: 0x43040820, 0xfecd: 0x6c08ea20, 0xfece: 0x4488d620, 0xfecf: 0x43052220, - 0xfed0: 0x6c00a420, 0xfed1: 0x6c091e20, 0xfed2: 0x42a56620, 0xfed3: 0x6c01e420, - 0xfed4: 0x6c13e220, 0xfed5: 0x6c020c20, 0xfed6: 0x6c050020, 0xfed7: 0x48d67820, - 0xfed8: 0x6c095620, 0xfed9: 0x43063a20, 0xfeda: 0x4306c620, 0xfedb: 0x43075a20, - 0xfedc: 0x6c28f220, 0xfedd: 0x6c292820, 0xfede: 0x4307ce20, 0xfedf: 0x6c0ea420, - 0xfee0: 0x4306a620, 0xfee1: 0x6c03f820, 0xfee2: 0x6c04e220, 0xfee3: 0x6c07cc20, - 0xfee4: 0x48d86c20, 0xfee5: 0x48dad620, 0xfee6: 0x48d9aa20, 0xfee7: 0x448a5620, - 0xfee8: 0x4309e220, 0xfee9: 0x4309e620, 0xfeea: 0x430a2c20, 0xfeeb: 0x48e79420, - 0xfeec: 0x430ac820, 0xfeed: 0x48de5820, 0xfeee: 0x448aba20, 0xfeef: 0x448ac220, - 0xfef0: 0x48df6220, 0xfef1: 0x48e1a420, 0xfef2: 0x448ad620, 0xfef3: 0x6c041420, - 0xfef4: 0x6c163c20, 0xfef5: 0x6c29de20, 0xfef6: 0x430cd220, 0xfef7: 0x6c29e620, - 0xfef8: 0x430d1020, 0xfef9: 0x430e1c20, 0xfefa: 0x430dc420, 0xfefb: 0x430ef220, - 0xfefc: 0x430e5020, 0xfefd: 0x430ed620, 0xfefe: 0x430f0c20, 0xfeff: 0x448bae20, - // Block 0x3fc, offset 0xff00 - 0xff00: 0x430fc220, 0xff01: 0x43100220, 0xff02: 0x448bf220, 0xff03: 0x4310c020, - 0xff04: 0x6c008220, 0xff05: 0x48ecce20, 0xff06: 0x4311ae20, 0xff07: 0x4311bc20, - 0xff08: 0x448c6a20, 0xff09: 0x4311f420, 0xff0a: 0x44697620, 0xff0b: 0x48f15c20, - 0xff0c: 0x48f2cc20, 0xff0d: 0x448d7c20, 0xff0e: 0x448d8e20, 0xff0f: 0x6c0bfe20, - 0xff10: 0x6c154e20, 0xff11: 0x6c1ede20, 0xff12: 0x6c2be420, 0xff13: 0x48f95020, - 0xff14: 0x6c035620, 0xff15: 0x6c2c1220, 0xff16: 0x431a3620, 0xff17: 0x6c03ca20, - 0xff18: 0x48fe5e20, 0xff19: 0x48100820, 0xff1a: 0x6c2c5420, 0xff1b: 0x431b7820, - 0xff1c: 0x431be020, 0xff1d: 0x4811bc20, 0xff1e: 0x431da820, 0xff1f: 0x6c155020, - 0xff20: 0x490ba420, 0xff21: 0x490bda20, 0xff22: 0x43212820, 0xff23: 0x4321e220, - 0xff24: 0x43222220, 0xff25: 0x490e5c20, 0xff26: 0x43223620, 0xff27: 0x43247020, - 0xff28: 0x4325ae20, 0xff29: 0x4325b020, 0xff2a: 0x4324f820, 0xff2b: 0x4327f220, - 0xff2c: 0x43282a20, 0xff2d: 0x4917f420, 0xff2e: 0x6c024a20, 0xff2f: 0x44932a20, - 0xff30: 0x432b6e20, 0xff31: 0x491aee20, 0xff32: 0x4493cc20, 0xff33: 0x432d8620, - 0xff34: 0x42bb6420, 0xff35: 0x432e4620, 0xff36: 0x49228a20, 0xff37: 0x49243420, - 0xff38: 0x4494dc20, 0xff39: 0x4494ec20, 0xff3a: 0x432fc020, 0xff3b: 0x49281420, - 0xff3c: 0x44956420, 0xff3d: 0x49292c20, 0xff3e: 0x43301620, 0xff3f: 0x43301620, - // Block 0x3fd, offset 0xff40 - 0xff40: 0x43305220, 0xff41: 0x492b6c20, 0xff42: 0x6c03d020, 0xff43: 0x44966620, - 0xff44: 0x43325220, 0xff45: 0x43334e20, 0xff46: 0x43338420, 0xff47: 0x4333fc20, - 0xff48: 0x44979c20, 0xff49: 0x49366020, 0xff4a: 0x43362420, 0xff4b: 0x43388020, - 0xff4c: 0x4339fa20, 0xff4d: 0x44999c20, 0xff4e: 0x4499da20, 0xff4f: 0x433ace20, - 0xff50: 0x49419c20, 0xff51: 0x4499f020, 0xff52: 0x49420a20, 0xff53: 0x49441c20, - 0xff54: 0x49452220, 0xff55: 0x6c145a20, 0xff56: 0x449aac20, 0xff57: 0x6c316420, - 0xff58: 0x433dfc20, 0xff59: 0x433e0a20, 0xff5a: 0x433e1e20, 0xff5b: 0x433e2c20, - 0xff5c: 0x6c125e20, 0xff5d: 0x494c0020, - // Block 0x3fe, offset 0xff80 - 0xff80: 0xe00014bd, 0xff81: 0x0033b483, 0xff82: 0x00339688, 0xff83: 0x0033a288, - 0xff84: 0x0033c288, 0xff85: 0x0033fc88, 0xff86: 0xca350071, 0xff87: 0x00343688, - 0xff88: 0x00344688, 0xff89: 0x00349a88, 0xff8a: 0x0034e488, 0xff8b: 0x00356288, - 0xff8c: 0x00356a88, 0xff8d: 0xe00014cf, 0xff8e: 0x00357a88, 0xff8f: 0x00365488, - 0xff90: 0xc0090041, 0xff91: 0x00335288, 0xff92: 0x00335a88, 0xff93: 0xc0130092, - 0xff94: 0x00338a88, 0xff95: 0xc34c0041, 0xff96: 0xc01c0071, 0xff97: 0xc0200071, - 0xff98: 0xc0250041, 0xff99: 0x00343e88, 0xff9a: 0xc0370092, 0xff9b: 0x00348488, - 0xff9c: 0x0034a888, 0xff9d: 0x0034ba88, 0xff9e: 0xc02e0071, 0xff9f: 0x00350e88, - 0xffa0: 0x00352888, 0xffa1: 0x00353a88, 0xffa2: 0x00354c88, 0xffa3: 0xc03e00f1, - 0xffa4: 0x0035ac88, 0xffa5: 0x0035b488, 0xffa6: 0x00360288, 0xffa7: 0xc0440071, - 0xffa8: 0x00365c88, 0xffa9: 0x00366688, 0xffaa: 0x00367488, 0xffab: 0xc0480071, - 0xffac: 0x00368e88, 0xffad: 0xc04c0071, 0xffae: 0x0036b888, 0xffaf: 0x0036c488, - 0xffb0: 0xc0060041, 0xffb1: 0x40335220, 0xffb2: 0x40335a20, 0xffb3: 0xc0100092, - 0xffb4: 0x40338a20, 0xffb5: 0xc3490041, 0xffb6: 0xc01a0071, 0xffb7: 0xc01e0071, - 0xffb8: 0xc0220041, 0xffb9: 0x40343e20, 0xffba: 0xc0340092, 0xffbb: 0x40348420, - 0xffbc: 0x4034a820, 0xffbd: 0x4034ba20, 0xffbe: 0xc02c0071, 0xffbf: 0x40350e20, - // Block 0x3ff, offset 0xffc0 - 0xffc0: 0x40352820, 0xffc1: 0x40353a20, 0xffc2: 0x40354c20, 0xffc3: 0xc03a00f1, - 0xffc4: 0x4035ac20, 0xffc5: 0x4035b420, 0xffc6: 0x40360220, 0xffc7: 0xc0420071, - 0xffc8: 0x40365c20, 0xffc9: 0x40366620, 0xffca: 0x40367420, 0xffcb: 0xc0460071, - 0xffcc: 0x40368e20, 0xffcd: 0xc04a0071, 0xffce: 0x4036b820, 0xffcf: 0x4036c420, - 0xffd0: 0xe00014ba, 0xffd1: 0x4033b420, 0xffd2: 0x40339620, 0xffd3: 0x4033a220, - 0xffd4: 0x4033c220, 0xffd5: 0x4033fc20, 0xffd6: 0xca330071, 0xffd7: 0x40343620, - 0xffd8: 0x40344620, 0xffd9: 0x40349a20, 0xffda: 0x4034e420, 0xffdb: 0x40356220, - 0xffdc: 0x40356a20, 0xffdd: 0xe00014cc, 0xffde: 0x40357a20, 0xffdf: 0x40365420, - 0xffe0: 0x0035e088, 0xffe1: 0x4035e020, 0xffe2: 0x00369e88, 0xffe3: 0x40369e20, - 0xffe4: 0x0036ce88, 0xffe5: 0x4036ce20, 0xffe6: 0x0036d688, 0xffe7: 0x4036d620, - 0xffe8: 0x0036ea88, 0xffe9: 0x4036ea20, 0xffea: 0x0036e088, 0xffeb: 0x4036e020, - 0xffec: 0x0036f488, 0xffed: 0x4036f420, 0xffee: 0x0036fc88, 0xffef: 0x4036fc20, - 0xfff0: 0x00370488, 0xfff1: 0x40370420, 0xfff2: 0x00370c88, 0xfff3: 0x40370c20, - 0xfff4: 0xc0500131, 0xfff5: 0xc04e0131, 0xfff6: 0x00371c88, 0xfff7: 0x40371c20, - 0xfff8: 0x0035a488, 0xfff9: 0x4035a420, 0xfffa: 0x0035fa88, 0xfffb: 0x4035fa20, - 0xfffc: 0x0035f288, 0xfffd: 0x4035f220, 0xfffe: 0x0035e888, 0xffff: 0x4035e820, - // Block 0x400, offset 0x10000 - 0x10000: 0x00352088, 0x10001: 0x40352020, 0x10002: 0x40070620, 0x10003: 0xae608302, - 0x10004: 0xae605f02, 0x10005: 0xae602a02, 0x10006: 0xae602202, 0x10007: 0xae605f02, - 0x10008: 0xa0000000, 0x10009: 0xa0000000, 0x1000a: 0x00341c88, 0x1000b: 0x40341c20, - 0x1000c: 0x00369688, 0x1000d: 0x40369620, 0x1000e: 0x00353088, 0x1000f: 0x40353020, - 0x10010: 0xe00014b7, 0x10011: 0xe00014b4, 0x10012: 0x00336a88, 0x10013: 0x40336a20, - 0x10014: 0x00337a88, 0x10015: 0x40337a20, 0x10016: 0x0033dc88, 0x10017: 0x4033dc20, - 0x10018: 0x0033aa88, 0x10019: 0x4033aa20, 0x1001a: 0x00345888, 0x1001b: 0x40345820, - 0x1001c: 0x00347888, 0x1001d: 0x40347820, 0x1001e: 0x00347088, 0x1001f: 0x40347020, - 0x10020: 0x00346888, 0x10021: 0x40346820, 0x10022: 0x0034ca88, 0x10023: 0x4034ca20, - 0x10024: 0x0034dc88, 0x10025: 0x4034dc20, 0x10026: 0x00351888, 0x10027: 0x40351820, - 0x10028: 0x00372688, 0x10029: 0x40372620, 0x1002a: 0x00354488, 0x1002b: 0x40354420, - 0x1002c: 0x00355888, 0x1002d: 0x40355820, 0x1002e: 0x00359c83, 0x1002f: 0x40359c20, - 0x10030: 0x00359a88, 0x10031: 0x40359a20, 0x10032: 0x0035cc88, 0x10033: 0x4035cc20, - 0x10034: 0x00360e88, 0x10035: 0x40360e20, 0x10036: 0x00362a88, 0x10037: 0x40362a20, - 0x10038: 0x00363a88, 0x10039: 0x40363a20, 0x1003a: 0x0035d488, 0x1003b: 0x4035d420, - 0x1003c: 0x00364488, 0x1003d: 0x40364420, 0x1003e: 0x00364c88, 0x1003f: 0x40364c20, - // Block 0x401, offset 0x10040 - 0x10040: 0xa0000000, 0x10041: 0xa0000000, 0x10042: 0xa0000000, 0x10043: 0xa0000000, - 0x10044: 0xa0000000, 0x10045: 0xa0000000, 0x10046: 0xa0000000, 0x10047: 0xa0000000, - 0x10048: 0xa0000000, 0x10049: 0x40020020, 0x1004a: 0x40020220, 0x1004b: 0x40020420, - 0x1004c: 0x40020620, 0x1004d: 0x40020820, 0x1004e: 0xa0000000, 0x1004f: 0xa0000000, - 0x10050: 0xa0000000, 0x10051: 0xa0000000, 0x10052: 0xa0000000, 0x10053: 0xa0000000, - 0x10054: 0xa0000000, 0x10055: 0xa0000000, 0x10056: 0xa0000000, 0x10057: 0xa0000000, - 0x10058: 0xa0000000, 0x10059: 0xa0000000, 0x1005a: 0xa0000000, 0x1005b: 0xa0000000, - 0x1005c: 0xa0000000, 0x1005d: 0xa0000000, 0x1005e: 0xa0000000, 0x1005f: 0xa0000000, - 0x10060: 0x40021220, 0x10061: 0x4002ba20, 0x10062: 0x4003e020, 0x10063: 0x4004ea20, - 0x10064: 0x4027de20, 0x10065: 0x4004ec20, 0x10066: 0x4004e620, 0x10067: 0x4003d220, - 0x10068: 0x4003f420, 0x10069: 0x4003f620, 0x1006a: 0x4004d820, 0x1006b: 0x40093820, - 0x1006c: 0x40024020, 0x1006d: 0x40021a20, 0x1006e: 0x4002e420, 0x1006f: 0x4004e220, - 0x10070: 0x4029cc20, 0x10071: 0x4029ce20, 0x10072: 0x4029d020, 0x10073: 0x4029d220, - 0x10074: 0x4029d420, 0x10075: 0x4029d620, 0x10076: 0x4029d820, 0x10077: 0x4029da20, - 0x10078: 0x4029dc20, 0x10079: 0x4029de20, 0x1007a: 0x40026c20, 0x1007b: 0x40026220, - 0x1007c: 0x40094020, 0x1007d: 0x40094220, 0x1007e: 0x40094420, 0x1007f: 0x4002c420, - // Block 0x402, offset 0x10080 - 0x10080: 0x4004d620, 0x10081: 0xca3c27b1, 0x10082: 0x002c0a88, 0x10083: 0x002c3a88, - 0x10084: 0x002c6288, 0x10085: 0xc39e0be1, 0x10086: 0x002d0888, 0x10087: 0x002d2288, - 0x10088: 0x002d6888, 0x10089: 0x002d9a88, 0x1008a: 0x002dcc88, 0x1008b: 0xca373ad1, - 0x1008c: 0xc0030002, 0x1008d: 0x002e8288, 0x1008e: 0x002e9e88, 0x1008f: 0xc3a30b21, - 0x10090: 0x002f2c88, 0x10091: 0x002f5688, 0x10092: 0x002f7a88, 0x10093: 0x002fe688, - 0x10094: 0x00302c88, 0x10095: 0xc3900b21, 0x10096: 0x0030be88, 0x10097: 0x0030e288, - 0x10098: 0x0030f688, 0x10099: 0x00310088, 0x1009a: 0x00312a88, 0x1009b: 0x4003f820, - 0x1009c: 0x4004e420, 0x1009d: 0x4003fa20, 0x1009e: 0x40062420, 0x1009f: 0x40021620, - 0x100a0: 0x40061e20, 0x100a1: 0xca3927b1, 0x100a2: 0x402c0a20, 0x100a3: 0x402c3a20, - 0x100a4: 0x402c6220, 0x100a5: 0xc39c0be1, 0x100a6: 0x402d0820, 0x100a7: 0x402d2220, - 0x100a8: 0x402d6820, 0x100a9: 0x402d9a20, 0x100aa: 0x402dcc20, 0x100ab: 0x402dfe20, - 0x100ac: 0xc0000002, 0x100ad: 0x402e8220, 0x100ae: 0x402e9e20, 0x100af: 0xc3a00b21, - 0x100b0: 0x402f2c20, 0x100b1: 0x402f5620, 0x100b2: 0x402f7a20, 0x100b3: 0x402fe620, - 0x100b4: 0x40302c20, 0x100b5: 0xc38d0b21, 0x100b6: 0x4030be20, 0x100b7: 0x4030e220, - 0x100b8: 0x4030f620, 0x100b9: 0x40310020, 0x100ba: 0x40312a20, 0x100bb: 0x4003fc20, - 0x100bc: 0x40094820, 0x100bd: 0x4003fe20, 0x100be: 0x40094c20, 0x100bf: 0xa0000000, - // Block 0x403, offset 0x100c0 - 0x100c0: 0xe0000983, 0x100c1: 0xe0000980, 0x100c2: 0xe00008fb, 0x100c3: 0xe00008f8, - 0x100c4: 0xe000097d, 0x100c5: 0xe000097a, 0x100c6: 0xe0000a38, 0x100c7: 0xe0000a35, - 0x100c8: 0xe0000a3e, 0x100c9: 0xe0000a3b, 0x100ca: 0xe0000a4a, 0x100cb: 0xe0000a47, - 0x100cc: 0xe0000a44, 0x100cd: 0xe0000a41, 0x100ce: 0xe0000a86, 0x100cf: 0xe0000a83, - 0x100d0: 0x002c62a3, 0x100d1: 0x402c6221, 0x100d2: 0xe0000b46, 0x100d3: 0xe0000b43, - 0x100d4: 0xe0000aee, 0x100d5: 0xe0000aeb, 0x100d6: 0xe0000b2c, 0x100d7: 0xe0000b29, - 0x100d8: 0x00320cc3, 0x100d9: 0x40320c22, 0x100da: 0xe0000b1a, 0x100db: 0xe0000b17, - 0x100dc: 0xe0000bb8, 0x100dd: 0xe0000bb5, 0x100de: 0xe0000bb2, 0x100df: 0xe0000baf, - 0x100e0: 0xe0000bc4, 0x100e1: 0xe0000bc1, 0x100e2: 0xe0000bca, 0x100e3: 0xe0000bc7, - 0x100e4: 0xe0000bee, 0x100e5: 0xe0000beb, 0x100e6: 0xe0000c1b, 0x100e7: 0xe0000c18, - 0x100e8: 0xe0000c51, 0x100e9: 0xe0000c4e, 0x100ea: 0xe0000c60, 0x100eb: 0xe0000c5d, - 0x100ec: 0xe0000c31, 0x100ed: 0xe0000c2e, 0x100ee: 0xe0000c5a, 0x100ef: 0xe0000c57, - 0x100f0: 0xe0000c54, 0x100f1: 0x402da220, 0x100f2: 0xf0000a0a, 0x100f3: 0xf0000404, - 0x100f4: 0xe0000c8a, 0x100f5: 0xe0000c87, 0x100f6: 0xe0000c9f, 0x100f7: 0xe0000c9c, - 0x100f8: 0x402f5621, 0x100f9: 0xe0000ccc, 0x100fa: 0xe0000cc9, 0x100fb: 0xe0000cd8, - 0x100fc: 0xe0000cd5, 0x100fd: 0xe0000cd2, 0x100fe: 0xe0000ccf, 0x100ff: 0xe0000d04, - // Block 0x404, offset 0x10100 - 0x10100: 0xca3f3ae1, 0x10101: 0xca413ae1, 0x10102: 0xca433ae1, 0x10103: 0xca453ae1, - 0x10104: 0xca473ae1, 0x10105: 0xca493ae1, 0x10106: 0xca4b3ae1, 0x10107: 0xca4d3ae1, - 0x10108: 0xca4f3ae1, 0x10109: 0xca513ae1, 0x1010a: 0xca533ae1, 0x1010b: 0xca553ae1, - 0x1010c: 0xca573ae1, 0x1010d: 0xca593ae1, 0x1010e: 0xca5b3ae1, 0x1010f: 0xca5d3ae1, - 0x10110: 0xca5f3ae1, 0x10111: 0xca613ae1, 0x10112: 0xca633ae1, 0x10113: 0xca653ae1, - 0x10114: 0xca673ae1, 0x10115: 0xca693ae1, 0x10116: 0xca6b3ae1, 0x10117: 0xca6d3ae1, - 0x10118: 0xca6f3ae1, 0x10119: 0xca713ae1, 0x1011a: 0xca733ae1, 0x1011b: 0xca773ae1, - 0x1011c: 0xca7d3ae1, 0x1011d: 0xca813ae1, 0x1011e: 0xca833ae1, 0x1011f: 0xca853ae1, - 0x10120: 0xca873ae1, 0x10121: 0xca893ae1, 0x10122: 0xca8b3ae1, 0x10123: 0xca8b3ae1, - 0x10124: 0xe00040cc, 0x10125: 0xe00040cf, 0x10126: 0xe00040d2, 0x10127: 0xe00040d5, - 0x10128: 0xe00040d8, 0x10129: 0xe00040dc, 0x1012a: 0xe00040df, 0x1012b: 0xca753ae1, - 0x1012c: 0xca793ae1, 0x1012d: 0xca7b3ae1, 0x1012e: 0xca7f3ae1, 0x1012f: 0xe00040e3, - 0x10130: 0xe00040e6, 0x10131: 0xe00040e9, 0x10132: 0xe00040ec, 0x10133: 0xe00040ef, - 0x10134: 0xa0000000, 0x10135: 0xa0000000, 0x10136: 0xca903b41, 0x10137: 0xca923b71, - 0x10138: 0x40501220, 0x10139: 0x40501420, 0x1013a: 0x40501620, 0x1013b: 0xca8d3b11, - 0x1013c: 0x40501a20, 0x1013d: 0x40501c20, 0x1013e: 0x40501e20, 0x1013f: 0x40502020, - // Block 0x405, offset 0x10140 - 0x10140: 0x40502220, 0x10141: 0xca943b71, 0x10142: 0x40502620, 0x10143: 0x40502820, - 0x10144: 0xca963b71, 0x10145: 0x40502c20, 0x10146: 0x40503020, 0x10147: 0x40503420, - 0x10148: 0xadc11802, 0x10149: 0xadc11b02, 0x1014a: 0xadc11c02, 0x1014b: 0xadc11a02, - 0x1014c: 0xa0005f02, 0x1014d: 0xadc11d02, 0x1014e: 0xadc11402, 0x1014f: 0xadc11502, - 0x10150: 0xadc11702, 0x10151: 0xadc11602, 0x10152: 0x82092817, 0x10153: 0xa0000000, - 0x10154: 0x40032620, 0x10155: 0x40032820, 0x10156: 0x4002ac20, 0x10157: 0x4027bc20, - 0x10158: 0xe000402c, 0x10159: 0x4005be20, 0x1015a: 0x4005c020, 0x1015b: 0x4027f620, - 0x1015c: 0x404fea20, 0x1015d: 0xadc11902, - 0x10160: 0xe00001b5, 0x10161: 0xe0000249, 0x10162: 0xe0000361, 0x10163: 0xe000043b, - 0x10164: 0xe0000510, 0x10165: 0xe00005da, 0x10166: 0xe00006a5, 0x10167: 0xe000074d, - 0x10168: 0xe00007f9, 0x10169: 0xe000089e, - 0x10170: 0xe00001b8, 0x10171: 0xe000024c, 0x10172: 0xe0000364, 0x10173: 0xe000043e, - 0x10174: 0xe0000513, 0x10175: 0xe00005dd, 0x10176: 0xe00006a8, 0x10177: 0xe0000750, - 0x10178: 0xe00007fc, 0x10179: 0xe00008a1, - // Block 0x406, offset 0x10180 - 0x10182: 0x40439020, 0x10183: 0x40439220, - 0x10185: 0x40437020, 0x10186: 0x40437220, 0x10187: 0x40437420, - 0x10188: 0x40437620, 0x10189: 0x40437820, 0x1018a: 0x40437a20, 0x1018b: 0x40437c20, - 0x1018c: 0x40438020, 0x1018e: 0x40438420, 0x1018f: 0x40438620, - 0x10190: 0x40438820, 0x10192: 0x40438a20, 0x10193: 0x40438c20, - 0x10194: 0x40438e20, 0x10195: 0x40439020, 0x10196: 0x40439220, 0x10197: 0x40439420, - 0x10198: 0x40439620, 0x10199: 0x40439820, 0x1019a: 0x40439a20, 0x1019b: 0x40439c20, - 0x1019c: 0x40439e20, 0x1019d: 0x4043a020, 0x1019e: 0x4043a220, 0x1019f: 0x4043a420, - 0x101a0: 0x4043a620, 0x101a1: 0x4043a820, 0x101a2: 0x4043aa20, 0x101a3: 0x4043ac20, - 0x101a4: 0x4043ae20, 0x101a5: 0x4043b020, 0x101a6: 0x4043b220, 0x101a7: 0x4043b420, - 0x101a8: 0x4043b620, 0x101aa: 0x4043b820, 0x101ab: 0x4043ba20, - 0x101ac: 0x4043bc20, 0x101ad: 0x4043be20, 0x101ae: 0x4043c020, 0x101af: 0x4043c220, - 0x101b0: 0x4043c420, 0x101b1: 0x4043c620, 0x101b2: 0x4043c820, 0x101b3: 0x4043d420, - 0x101b5: 0x4043ca20, 0x101b6: 0x4043cc20, 0x101b7: 0x4043ce20, - 0x101b8: 0x4043d020, 0x101b9: 0x4043d220, - 0x101bc: 0xa070f102, 0x101bd: 0x4043d820, 0x101be: 0x4043de20, 0x101bf: 0xc06a0311, - // Block 0x407, offset 0x101c0 - 0x101c0: 0x4043e220, 0x101c1: 0x4043e420, 0x101c2: 0x4043e620, 0x101c3: 0x4043e820, - 0x101c4: 0x4043ea20, 0x101c6: 0xc06c0341, 0x101c7: 0x4043f220, - 0x101c8: 0x4043f420, 0x101ca: 0xc0710311, 0x101cb: 0x4043f820, - 0x101cc: 0x4043fa20, 0x101cd: 0x820921fe, - 0x101d5: 0x4043fe20, 0x101d6: 0x40440020, - 0x101de: 0x4043d620, - 0x101e0: 0x40437e20, 0x101e1: 0x40438220, 0x101e2: 0x4043ec20, 0x101e3: 0x4043ee20, - 0x101e6: 0xe0000182, 0x101e7: 0xe0000213, - 0x101e8: 0xe000032e, 0x101e9: 0xe0000408, 0x101ea: 0xe00004dd, 0x101eb: 0xe00005a7, - 0x101ec: 0xe0000672, 0x101ed: 0xe000071a, 0x101ee: 0xe00007c6, 0x101ef: 0xe000086b, - 0x101f1: 0x40439420, 0x101f2: 0x40439620, - // Block 0x408, offset 0x10200 - 0x10200: 0xf0000404, 0x10201: 0xf0000404, 0x10202: 0xf0000404, 0x10203: 0xf0000404, - 0x10204: 0xf0000404, 0x10205: 0xf0000404, 0x10206: 0xf0000404, 0x10207: 0xf0000404, - 0x10208: 0xf0000404, 0x10209: 0xf0000404, 0x1020a: 0xf0000404, 0x1020b: 0xf0000404, - 0x1020c: 0xf0000404, 0x1020d: 0xf0000404, 0x1020e: 0xe000004c, 0x1020f: 0xe0000051, - 0x10210: 0xe0000056, 0x10211: 0xe000005b, 0x10212: 0xe0000060, 0x10213: 0xe0000065, - 0x10214: 0xe000006a, 0x10215: 0xe000006f, 0x10216: 0xe0000083, 0x10217: 0xe000008d, - 0x10218: 0xe0000092, 0x10219: 0xe0000097, 0x1021a: 0xe000009c, 0x1021b: 0xe00000a1, - 0x1021c: 0xe0000088, 0x1021d: 0xe0000074, 0x1021e: 0xe000007c, - 0x10220: 0xe0002c4c, 0x10221: 0xe0002c5c, 0x10222: 0xe0002c54, 0x10223: 0xe0002c8c, - 0x10224: 0xe0002c60, 0x10225: 0xe0002c74, 0x10226: 0xe0002c50, 0x10227: 0xe0002c70, - 0x10228: 0xe0002c58, 0x10229: 0xe0002c7c, 0x1022a: 0xe0002c9c, 0x1022b: 0xe0002cb0, - 0x1022c: 0xe0002cac, 0x1022d: 0xe0002ca4, 0x1022e: 0xe0002cd8, 0x1022f: 0xe0002c90, - 0x10230: 0xe0002c98, 0x10231: 0xe0002ca8, 0x10232: 0xe0002ca0, 0x10233: 0xe0002cbc, - 0x10234: 0xe0002c84, 0x10235: 0xe0002cb4, 0x10236: 0xe0002cd0, 0x10237: 0xe0002cc0, - 0x10238: 0xf0000404, 0x10239: 0xe0002c64, 0x1023a: 0xe0002c88, 0x1023b: 0xf0000404, - 0x1023c: 0xe0002cb8, 0x1023d: 0xe0002c68, 0x1023e: 0xe0002cd4, 0x1023f: 0xe0002c80, - // Block 0x409, offset 0x10240 - 0x10240: 0xe00084e8, 0x10241: 0xe0008adb, 0x10243: 0xe00099dc, - 0x10247: 0xe0005db9, - 0x10248: 0xe00086b0, 0x10249: 0xe0006bde, 0x1024a: 0xe0006c32, 0x1024b: 0xe0009f7f, - 0x1024d: 0xe000671b, - 0x10251: 0xe0009848, - 0x10254: 0xe00091d7, 0x10255: 0xe00068da, 0x10256: 0xe0006faa, - 0x10258: 0xe0004bdc, 0x10259: 0xe00065aa, - 0x1025e: 0xe0007350, 0x1025f: 0xe0008e99, - 0x10266: 0xe00065ee, - 0x1026b: 0xe0007570, - 0x1026d: 0xe0008f73, - 0x10270: 0xe0006703, 0x10271: 0xe0004a2b, 0x10272: 0xe0004978, - 0x10278: 0xe000a542, 0x10279: 0xe00052bc, 0x1027b: 0xe0008e21, - // Block 0x40a, offset 0x10280 - 0x10282: 0xe0007b75, 0x10283: 0xe00051a6, - 0x10285: 0xe0004bdf, - 0x1028b: 0xe0008fe7, - 0x1028d: 0xe0006a65, 0x1028e: 0xe000a3aa, 0x1028f: 0xe0009f73, - 0x10296: 0xe0004b04, - 0x10298: 0xe0007354, 0x10299: 0xe0008338, - 0x1029d: 0xe0004be2, 0x1029e: 0xe00044e6, 0x1029f: 0xe0007792, - 0x102a7: 0xe000569a, - 0x102ab: 0xe0004246, - 0x102ac: 0xe00044f6, 0x102ad: 0xe00055b3, - 0x102b3: 0xe00081a1, - 0x102b6: 0xe00066bf, 0x102b7: 0xe0006bca, - 0x102bc: 0xe0008f6f, 0x102be: 0xe000449e, - // Block 0x40b, offset 0x102c0 - 0x102c2: 0xe000573d, - 0x102c6: 0xe0005b2d, - 0x102c8: 0xe0007943, 0x102cb: 0xe0006a68, - 0x102cc: 0xe00083eb, 0x102ce: 0xe0007f58, 0x102cf: 0xe0007fb8, - 0x102d0: 0xe000806c, 0x102d1: 0xe000801c, 0x102d2: 0xe000a3ad, - 0x102d4: 0xe0007bea, 0x102d5: 0xe0008adf, - 0x102d8: 0xe0004fc5, 0x102d9: 0xe0004fd5, 0x102db: 0xe0006a6b, - 0x102de: 0xe000753a, 0x102df: 0xe0004ed5, - 0x102e1: 0xe0005e4d, 0x102e2: 0xe000a0d1, - 0x102e4: 0xe0004b58, 0x102e5: 0xe000a121, 0x102e6: 0xe000796d, - 0x102e8: 0xe000a313, 0x102eb: 0xe000a1a0, - 0x102ec: 0xe0004627, 0x102ed: 0xe0008ae3, 0x102ee: 0xe0005823, - 0x102f3: 0xe000629e, - 0x102f4: 0xe0007fbb, 0x102f6: 0xe00052c0, - 0x102f9: 0xe00061b8, 0x102fa: 0xe0008478, - // Block 0x40c, offset 0x10300 - 0x10300: 0xe0007527, 0x10301: 0xe000847c, - 0x10304: 0xe000991e, 0x10306: 0xe0006799, 0x10307: 0xe0004be5, - 0x1030a: 0xe0004f49, 0x1030b: 0xe00043d2, - 0x1030d: 0xe0008550, - 0x10314: 0xe0008564, 0x10315: 0xe0006a6e, 0x10316: 0xe0009a3d, 0x10317: 0xe00086b4, - 0x10318: 0xe000671e, 0x10319: 0xe0006de2, - 0x1031d: 0xe00055c3, 0x1031e: 0xe00084bc, 0x1031f: 0xe000948e, - 0x10321: 0xe000a869, 0x10323: 0xe0005450, - 0x10324: 0xe0005996, 0x10325: 0xe00083ee, - 0x1032e: 0xe0004149, - 0x10330: 0xe00076b9, 0x10332: 0xe0008f77, 0x10333: 0xe0006958, - 0x10335: 0xe0007c41, 0x10336: 0xe00044a2, 0x10337: 0xe00043d5, - 0x1033b: 0xe0008514, - 0x1033f: 0xe00063ea, - // Block 0x40d, offset 0x10340 - 0x10340: 0xe0008ddb, 0x10341: 0xe0004fdd, - 0x10349: 0xe000a0d5, 0x1034a: 0xe00083f1, 0x1034b: 0xe0004f91, - 0x1034d: 0xe0007bed, 0x1034e: 0xe0004fe0, 0x1034f: 0xe0006653, - 0x10350: 0xe00064c2, 0x10351: 0xe000a7e3, - 0x1036f: 0xe0006466, - 0x10370: 0xe0004809, - 0x10374: 0xe00062b6, 0x10376: 0xe000599a, - 0x10378: 0xe000744f, 0x1037a: 0xe0006a71, - 0x1037c: 0xe0006a74, 0x1037d: 0xe00040f2, - // Block 0x40e, offset 0x10380 - 0x10382: 0xe0008bb7, 0x10383: 0xe00088f7, - 0x10386: 0xe00052c4, 0x10387: 0xe00087f1, - 0x10388: 0xe0009df4, 0x10389: 0xe0004c7e, 0x1038b: 0xe000703d, - 0x1038d: 0xe000812c, 0x1038e: 0xe00087f4, 0x1038f: 0xe0008e24, - 0x10390: 0xe0008e03, 0x10391: 0xe0007f5b, 0x10393: 0xe000683a, - 0x10394: 0xe0008a8b, 0x10395: 0xe0009f82, 0x10396: 0xe0009f43, 0x10397: 0xe0009a67, - 0x10399: 0xe0007946, 0x1039a: 0xe00084ec, 0x1039b: 0xe0006886, - 0x1039c: 0xe0008600, 0x1039d: 0xe0004c81, 0x1039e: 0xe00051f3, 0x1039f: 0xe0009c48, - 0x103a9: 0xe0009cf2, 0x103aa: 0xe000a686, - 0x103af: 0xe00077ef, - 0x103b0: 0xe000646a, 0x103b3: 0xe00040f5, - 0x103b6: 0xe000510d, - 0x103b8: 0xe0004a77, 0x103b9: 0xe0004dff, 0x103ba: 0xe00088fb, 0x103bb: 0xe0008d05, - 0x103bc: 0xe0004ba3, 0x103bd: 0xe0009201, 0x103be: 0xe00084f0, 0x103bf: 0xe0006a77, - // Block 0x40f, offset 0x103c0 - 0x103c1: 0xe0007453, 0x103c3: 0xe00041ba, - 0x103c4: 0xe000913f, 0x103c6: 0xe0005801, - 0x103c8: 0xe000993a, 0x103c9: 0xe00049a0, 0x103ca: 0xe0004a8f, 0x103cb: 0xe0005a0e, - 0x103cd: 0xe0007380, 0x103cf: 0xe0008e27, - 0x103d1: 0xe00081a4, - 0x103d4: 0xe000600d, 0x103d6: 0xe0005c02, 0x103d7: 0xe0005607, - 0x103d8: 0xe00091da, 0x103da: 0xe00072cf, 0x103db: 0xe0004908, - 0x103dc: 0xe0008e9c, 0x103dd: 0xe0008394, - 0x103ee: 0xe0005fc5, 0x103ef: 0xe000a704, - 0x103f2: 0xe000911b, - 0x103f5: 0xe00099e8, 0x103f6: 0xe000586f, - 0x103fb: 0xe0009b2e, - 0x103ff: 0xe0009d46, - // Block 0x410, offset 0x10400 - 0x10401: 0xe0007fbe, 0x10402: 0xe000472b, 0x10403: 0xe000970a, - 0x10404: 0xe000753d, 0x10405: 0xe0004c84, - 0x10409: 0xe0007bf0, 0x1040a: 0xe0008ee3, - 0x1040c: 0xe000663e, 0x1040e: 0xe0008c7b, 0x1040f: 0xe0007040, - 0x10410: 0xe0005cc5, 0x10411: 0xe0007ed4, 0x10413: 0xe000462b, - 0x10414: 0xe000a22b, 0x10417: 0xe0007082, - 0x10418: 0xe000679c, 0x1041a: 0xe0005c7a, 0x1041b: 0xe0005f5e, - 0x1041d: 0xe000660e, 0x1041f: 0xe0006a7a, - 0x10420: 0xe000a2c7, 0x10421: 0xe0007457, 0x10423: 0xe0007c44, - 0x1042e: 0xe0007121, 0x1042f: 0xe0006721, - 0x10430: 0xe000a509, 0x10431: 0xe0004be8, 0x10433: 0xe0006421, - 0x10434: 0xe00094da, 0x10435: 0xe0009e7d, 0x10436: 0xe0007247, - 0x10438: 0xe00066c3, 0x1043a: 0xe00078f9, - 0x1043e: 0xe000695b, - // Block 0x411, offset 0x10440 - 0x10440: 0xe0009379, 0x10442: 0xe00065ae, - 0x10445: 0xe0007317, 0x10446: 0xe0005827, - 0x10449: 0xe0009321, 0x1044b: 0xe00043d8, - 0x1044d: 0xe000641e, 0x1044f: 0xe000724b, - 0x10451: 0xe0006127, 0x10452: 0xe000549e, - 0x10454: 0xe0004d6d, 0x10456: 0xe000a188, - 0x10458: 0xe000540c, 0x10459: 0xe000a707, 0x1045a: 0xe0008397, - 0x1045c: 0xe0009432, 0x1045e: 0xe000462f, 0x1045f: 0xe00091dd, - 0x10461: 0xe0009325, 0x10462: 0xe00095e2, 0x10463: 0xe000637a, - 0x10464: 0xe000993d, 0x10465: 0xe0004948, 0x10466: 0xe0004d99, 0x10467: 0xe0008d97, - 0x10468: 0xe0004444, 0x10469: 0xe00094de, 0x1046a: 0xe0007b78, 0x1046b: 0xe0005c06, - 0x1046c: 0xe0009a8e, 0x1046d: 0xe0007df7, 0x1046e: 0xe00056fe, - 0x10470: 0xe0005c72, - 0x1047b: 0xe0007795, - // Block 0x412, offset 0x10480 - 0x10483: 0xe00078b9, - 0x10484: 0xe000515e, 0x10487: 0xe00040f8, - 0x10488: 0xe000453a, 0x10489: 0xe000812f, 0x1048a: 0xe0007fc1, - 0x1048e: 0xe0007e15, 0x1048f: 0xe0009d4a, - 0x10493: 0xe00075c9, - 0x10495: 0xe000a124, 0x10496: 0xe0009204, - 0x10498: 0xe000421a, 0x1049a: 0xe0008e2a, - 0x1049c: 0xe0008ae7, - 0x104a0: 0xe0007e84, 0x104a2: 0xe00096b3, - 0x104a5: 0xe00044a6, - 0x104aa: 0xe0009f7b, - 0x104b0: 0xe0006ed6, 0x104b2: 0xe00073d4, - 0x104b4: 0xe000991a, 0x104b5: 0xe0008aeb, 0x104b6: 0xe0007f5e, - 0x104b8: 0xe0009c2d, - // Block 0x413, offset 0x104c0 - 0x104c0: 0xe0004b07, - 0x104c5: 0xe0006724, - 0x104cb: 0xe000438e, - 0x104cd: 0xe000637e, - 0x104d1: 0xe00044ea, 0x104d2: 0xe000a392, - 0x104d4: 0xe0004603, 0x104d6: 0xe000937d, - 0x104d8: 0xe0006b6a, 0x104d9: 0xe00068dd, 0x104da: 0xe000a6ec, 0x104db: 0xe0007f30, - 0x104dd: 0xe0009b5a, 0x104de: 0xe0006b19, - 0x104e2: 0xe000414c, - 0x104ec: 0xe000978e, 0x104ed: 0xe0007ed8, 0x104ee: 0xe0008d08, - 0x104f2: 0xe0007bf3, 0x104f3: 0xe00088ff, - 0x104f4: 0xe0004c87, 0x104f5: 0xe00093c5, 0x104f7: 0xe0006c36, - 0x104fd: 0xe0008740, 0x104fe: 0xe0004633, 0x104ff: 0xe00078d1, - // Block 0x414, offset 0x10500 - 0x10502: 0xe0005ba4, - 0x10504: 0xe0009ea7, 0x10505: 0xe0004ee5, - 0x10509: 0xe0009572, 0x1050a: 0xe0006de6, - 0x1050f: 0xe0006c3a, - 0x10511: 0xe0004b5b, - 0x10515: 0xe0006657, 0x10516: 0xe000a8b1, - 0x1051a: 0xe0005b30, 0x1051b: 0xe000509d, - 0x1051e: 0xe0008132, - 0x10522: 0xe00094e2, - 0x10525: 0xe0007e30, 0x10526: 0xe00097f4, 0x10527: 0xe0007358, - 0x10529: 0xe000a025, - 0x1052c: 0xe00096b6, 0x1052d: 0xe00092b9, 0x1052e: 0xe000560b, - 0x10535: 0xe0004392, - 0x10539: 0xe00040fb, 0x1053b: 0xe0006512, - 0x1053e: 0xe000770a, 0x1053f: 0xe0006a7d, - // Block 0x415, offset 0x10540 - 0x10540: 0xe000839a, 0x10541: 0xe0008ee7, 0x10542: 0xe0005233, 0x10543: 0xe00094e6, - 0x10544: 0xe00078a1, 0x10546: 0xe0004637, 0x10547: 0xe000a27b, - 0x10549: 0xe0004502, 0x1054b: 0xe000539c, - 0x10550: 0xe0006a11, 0x10552: 0xe00081a7, 0x10553: 0xe0005480, - 0x10554: 0xe0008e9f, 0x10555: 0xe0008c48, 0x10557: 0xe00083cd, - 0x10558: 0xe000911f, 0x1055a: 0xe0005f12, 0x1055b: 0xe000610c, - 0x1055c: 0xe00051f7, 0x1055f: 0xe0006c3e, - 0x10561: 0xe0005af4, 0x10562: 0xe00058a5, - 0x10564: 0xe0009e45, 0x10565: 0xe0008298, 0x10567: 0xe000927d, - 0x1056a: 0xe0007f61, 0x1056b: 0xe000a425, - 0x10571: 0xe0005ad8, 0x10572: 0xe00087f7, 0x10573: 0xe00092e1, - 0x10575: 0xe000724f, 0x10577: 0xe0005872, - 0x10579: 0xe0009281, 0x1057a: 0xe000512d, 0x1057b: 0xe0005410, - 0x1057c: 0xe00078fd, - // Block 0x416, offset 0x10580 - 0x10580: 0xe0007ce4, 0x10581: 0xe000829c, 0x10583: 0xe0008078, - 0x10584: 0xe000a317, 0x10585: 0xe00098a8, 0x10586: 0xe0008c7e, 0x10587: 0xe000a811, - 0x10588: 0xe0006dea, 0x10589: 0xe0004a93, 0x1058b: 0xe0004eb9, - 0x1058c: 0xe0009b86, 0x1058d: 0xe0005f32, 0x1058e: 0xe0009bdc, - 0x10592: 0xe0007540, - 0x10595: 0xe00073d7, 0x10597: 0xe0007a15, - 0x1059a: 0xe0005414, - 0x1059c: 0xe0005647, - 0x105a2: 0xe0004fc9, - 0x105a5: 0xe0008544, 0x105a7: 0xe00051a9, - 0x105a8: 0xe0008903, 0x105a9: 0xe000582b, 0x105aa: 0xe00081aa, 0x105ab: 0xe0009cde, - 0x105ac: 0xe000490c, 0x105ad: 0xe0005bf2, 0x105ae: 0xe000a377, - 0x105b1: 0xe0004910, - 0x105b5: 0xe00065b2, 0x105b6: 0xe0004fe3, 0x105b7: 0xe0004beb, - 0x105b8: 0xe0008907, - 0x105bc: 0xe00045eb, - // Block 0x417, offset 0x105c0 - 0x105c0: 0xe0004fe6, - 0x105c6: 0xe000793f, - 0x105c9: 0xe0007a8d, 0x105ca: 0xe00093ef, - 0x105cd: 0xe000878c, 0x105cf: 0xe00046db, - 0x105d2: 0xe0005fc8, 0x105d3: 0xe0004c8a, - 0x105d5: 0xe0005f36, 0x105d7: 0xe0007edc, - 0x105d8: 0xe000822b, - 0x105e0: 0xe00049eb, 0x105e3: 0xe0009911, - 0x105e4: 0xe00080e0, 0x105e5: 0xe0005f82, - 0x105ea: 0xe0005f22, - 0x105ec: 0xe00055c7, - 0x105f0: 0xe0006a55, 0x105f1: 0xe000a428, 0x105f2: 0xe00098c0, - 0x105f6: 0xe0007798, 0x105f7: 0xe0005813, - 0x105fd: 0xe0005946, - // Block 0x418, offset 0x10600 - 0x10604: 0xe0009417, 0x10605: 0xe000480c, 0x10606: 0xe0008eeb, - 0x10609: 0xe000582f, 0x1060a: 0xe0009616, 0x1060b: 0xe0008c81, - 0x1060c: 0xe0005c5a, 0x1060d: 0xe00055cb, - 0x10612: 0xe00083d0, - 0x10614: 0xe0009381, - 0x1061b: 0xe0005c4e, - 0x1061c: 0xe0005c4a, 0x1061d: 0xe0008384, 0x1061e: 0xe000a8b4, - 0x10620: 0xe0004e02, 0x10621: 0xe00064da, - 0x10629: 0xe0006056, - 0x1062d: 0xe0006a59, - 0x10630: 0xe000a5ce, 0x10631: 0xe00043db, 0x10633: 0xe00056c6, - 0x10634: 0xe0006a5d, 0x10636: 0xe000a815, - 0x10638: 0xe0009522, 0x10639: 0xe0007e33, 0x1063a: 0xe0009898, - 0x1063d: 0xe000a055, - // Block 0x419, offset 0x10640 - 0x10640: 0xe00054a1, 0x10641: 0xe0008d0b, 0x10643: 0xe0008480, - 0x10646: 0xe00067ee, 0x10647: 0xe0008a3b, - 0x10648: 0xe0007b7b, 0x1064a: 0xe00041be, - 0x1064e: 0xe000612b, - 0x10651: 0xe000a31b, 0x10653: 0xe0007db3, - 0x10656: 0xe0008124, 0x10657: 0xe000594a, - 0x1065d: 0xe0009662, - 0x10664: 0xe0009cb6, 0x10665: 0xe0006592, 0x10666: 0xe0004532, 0x10667: 0xe0004536, - 0x10669: 0xe0005c7d, 0x1066a: 0xe0006b6e, - 0x1066e: 0xe0004a67, - 0x10670: 0xe00054a4, 0x10671: 0xe0009385, 0x10672: 0xe0004e62, 0x10673: 0xe000480f, - 0x10676: 0xe0008c03, 0x10677: 0xe0007106, - 0x10678: 0xe0004d9d, 0x10679: 0xe000929d, 0x1067a: 0xe0008567, 0x1067b: 0xe0004176, - // Block 0x41a, offset 0x10680 - 0x10683: 0xe0009626, - 0x10684: 0xe00046df, 0x10687: 0xe00099b8, - 0x10689: 0xe0008e12, 0x1068a: 0xe0006b52, 0x1068b: 0xe0004ebd, - 0x1068c: 0xe0005779, 0x1068d: 0xe000890b, - 0x10694: 0xe0009436, 0x10695: 0xe000695e, 0x10696: 0xe0006727, 0x10697: 0xe0008668, - 0x1069a: 0xe0006b1c, 0x1069b: 0xe000432e, - 0x1069d: 0xe0006252, 0x1069e: 0xe00050a0, 0x1069f: 0xe000954a, - 0x106a1: 0xe0006ef6, - 0x106a9: 0xe0008554, 0x106aa: 0xe000890f, - 0x106af: 0xe000672a, - 0x106b2: 0xe000a049, - 0x106b4: 0xe000440b, 0x106b5: 0xe0009329, 0x106b7: 0xe0006b9a, - 0x106ba: 0xe0005cc8, - 0x106bd: 0xe0009e80, 0x106bf: 0xe0009665, - // Block 0x41b, offset 0x106c0 - 0x106c2: 0xe0004e05, 0x106c3: 0xe000a6a1, - 0x106c7: 0xe0004ec1, - 0x106c8: 0xe0006516, 0x106c9: 0xe0005bb9, - 0x106cd: 0xe0004506, - 0x106d1: 0xe0008c06, 0x106d2: 0xe000450a, 0x106d3: 0xe00083d3, - 0x106d7: 0xe0009285, - 0x106d8: 0xe0005d87, 0x106db: 0xe00058c6, - 0x106df: 0xe0004914, - 0x106e0: 0xe00040fe, 0x106e3: 0xe000594e, - 0x106e4: 0xe0004ee9, - 0x106e9: 0xe0008c84, 0x106ea: 0xe0005203, 0x106eb: 0xe0004526, - 0x106ec: 0xe0004c8d, 0x106ed: 0xe00096b9, - 0x106fe: 0xe000a178, - // Block 0x41c, offset 0x10700 - 0x10701: 0xe000463b, 0x10703: 0xe000633a, - 0x10705: 0xe00099bc, 0x10707: 0xe0007ee0, - 0x10709: 0xe0005f3a, - 0x1070c: 0xe0004dc1, 0x1070d: 0xe000463f, - 0x10712: 0xe0005c3e, - 0x10715: 0xe00055cf, 0x10716: 0xe0007ff4, - 0x10718: 0xe0004286, 0x10719: 0xe00060ca, 0x1071b: 0xe000a74c, - 0x1071d: 0xe000735c, 0x1071e: 0xe0005a23, 0x1071f: 0xe0005fcb, - 0x10720: 0xe0005bfe, 0x10721: 0xe0009eaa, 0x10722: 0xe0006fad, 0x10723: 0xe000887b, - 0x10724: 0xe0004eed, 0x10726: 0xe00096bc, - 0x10733: 0xe000a750, - 0x10735: 0xe0005875, - 0x10738: 0xe0004da1, 0x1073a: 0xe0008604, 0x1073b: 0xe0004e95, - 0x1073e: 0xe0004bee, 0x1073f: 0xe0006173, - // Block 0x41d, offset 0x10740 - 0x10741: 0xe0006157, 0x10742: 0xe00051b5, 0x10743: 0xe000440e, - 0x10745: 0xe0009df7, - 0x10748: 0xe000a819, 0x1074a: 0xe0004d29, - 0x1074c: 0xe000a0b5, 0x1074d: 0xe0009dfa, 0x1074f: 0xe0009dfd, - 0x10750: 0xe000665b, - 0x10755: 0xe00068e0, 0x10756: 0xe000a4df, 0x10757: 0xe00067ea, - 0x10759: 0xe0007383, - 0x10760: 0xe00086b8, 0x10761: 0xe0004a97, 0x10763: 0xe0004312, - 0x10767: 0xe000a2f7, - 0x1076a: 0xe00068e3, - 0x1076f: 0xe000a64a, - 0x10771: 0xe0004e08, - 0x10776: 0xe0004c90, - 0x10779: 0xe0009f1b, - 0x1077d: 0xe00078d5, 0x1077e: 0xe0009d6e, 0x1077f: 0xe00052a3, - // Block 0x41e, offset 0x10780 - 0x10780: 0xe0004bf1, 0x10781: 0xe000752b, 0x10783: 0xe0009492, - 0x10784: 0xe0008548, 0x10785: 0xe0006c16, 0x10787: 0xe0007360, - 0x10788: 0xe0007bf6, 0x10789: 0xe000a7b0, 0x1078a: 0xe00062ba, - 0x1078d: 0xe0005dbd, - 0x10791: 0xe00068e6, 0x10792: 0xe0008d8b, 0x10793: 0xe0009a92, - 0x10794: 0xe000a2cb, 0x10797: 0xe0005176, - 0x1079a: 0xe0006256, - 0x1079c: 0xe000665f, 0x1079e: 0xe0006556, - 0x107a0: 0xe0008a67, 0x107a1: 0xe000869c, - 0x107a6: 0xe0004aef, - 0x107a8: 0xe0006ea2, - 0x107ac: 0xe00076d5, 0x107ae: 0xe0009982, 0x107af: 0xe000609a, - 0x107b0: 0xe0008484, 0x107b1: 0xe0008135, 0x107b2: 0xe0007043, 0x107b3: 0xe0008f8b, - 0x107b4: 0xe000417a, 0x107b5: 0xe0005741, 0x107b7: 0xe0004da5, - 0x107b8: 0xe0006b1f, 0x107b9: 0xe000a80d, 0x107ba: 0xe0004f21, 0x107bb: 0xe00041a2, - 0x107bd: 0xe0008f87, 0x107be: 0xe00075cd, 0x107bf: 0xe0004643, - // Block 0x41f, offset 0x107c0 - 0x107c4: 0xe0007746, - 0x107d3: 0xe00076e9, - 0x107d6: 0xe00063ee, - 0x107d8: 0xe0005c80, 0x107da: 0xe000a70a, - 0x107dd: 0xe0008d0e, 0x107df: 0xe000807c, - 0x107e0: 0xe0009922, - 0x107e5: 0xe0004dd9, 0x107e6: 0xe0009f85, - 0x107ea: 0xe0004f25, - 0x107ed: 0xe0007a65, 0x107ee: 0xe00073da, - 0x107f2: 0xe00058a8, - 0x107f9: 0xe0004c93, 0x107fb: 0xe0004447, - // Block 0x420, offset 0x10800 - 0x10803: 0xe00092bd, - 0x10805: 0xe00092e5, - 0x10808: 0xe0007f64, 0x10809: 0xe00091e0, 0x1080a: 0xe0004f95, 0x1080b: 0xe0007f67, - 0x1080d: 0xe00062be, - 0x10814: 0xe0007217, 0x10816: 0xe00098e7, 0x10817: 0xe0007124, - 0x1081b: 0xe00062c2, - 0x1081f: 0xe00071d8, - 0x10821: 0xe0007b7e, 0x10822: 0xe000974e, 0x10823: 0xe0004bf4, - 0x10824: 0xe0004797, 0x10825: 0xe0004bf7, 0x10826: 0xe00059da, - 0x10828: 0xe0005516, 0x10829: 0xe000479a, 0x1082a: 0xe0008fea, 0x1082b: 0xe0004e35, - 0x1082c: 0xe0006fce, 0x1082d: 0xe0009ce2, 0x1082e: 0xe0008bbb, 0x1082f: 0xe0004101, - 0x10830: 0xe0009b89, 0x10831: 0xe0009143, 0x10832: 0xe0006a80, 0x10833: 0xe0007f6a, - 0x10834: 0xe0004c96, 0x10835: 0xe0009c8c, 0x10836: 0xe000a2fb, - 0x10838: 0xe0006a83, - // Block 0x421, offset 0x10840 - 0x10841: 0xe0007fc4, 0x10843: 0xe000a859, - 0x10844: 0xe000417e, - 0x10848: 0xe000a099, 0x10849: 0xe0005111, 0x1084a: 0xe000887f, 0x1084b: 0xe000974a, - 0x1084c: 0xe00055d3, 0x1084d: 0xe0005f86, 0x1084e: 0xe000a70d, 0x1084f: 0xe0005c83, - 0x10850: 0xe0009bdf, 0x10851: 0xe000a1a4, - 0x1085b: 0xe0004d39, - 0x1085d: 0xe0005cef, 0x1085f: 0xe0008340, - 0x10860: 0xe0009dca, - 0x10866: 0xe000672d, - 0x10869: 0xe00067f2, 0x1086b: 0xe000a059, - 0x1086c: 0xe0008304, 0x1086e: 0xe000899b, - 0x10873: 0xe0007bfc, - 0x10876: 0xe000526f, - 0x10878: 0xe000a88d, 0x10879: 0xe00098ea, 0x1087b: 0xe000612f, - 0x1087c: 0xe000a710, 0x1087d: 0xe000a72b, 0x1087e: 0xe0007bf9, - // Block 0x422, offset 0x10880 - 0x10880: 0xe0009fa9, 0x10882: 0xe0005878, - 0x10886: 0xe0005ebf, - 0x10888: 0xe0008aef, 0x1088a: 0xe000479d, - 0x1088e: 0xe000946a, - 0x10891: 0xe0009aea, - 0x1089d: 0xe0007762, - 0x108a2: 0xe0005291, - 0x108a4: 0xe00059de, 0x108a6: 0xe000822e, - 0x108a8: 0xe0008e36, 0x108aa: 0xe0008e33, 0x108ab: 0xe00095e6, - 0x108b0: 0xe00085b2, 0x108b1: 0xe00047a0, 0x108b3: 0xe000617f, - 0x108b5: 0xe0004104, 0x108b6: 0xe0005215, - 0x108bb: 0xe000745b, - 0x108bc: 0xe000a3b0, 0x108bd: 0xe0005f8a, 0x108bf: 0xe0004474, - // Block 0x423, offset 0x108c0 - 0x108c0: 0xe00087fa, - 0x108c4: 0xe00055bb, 0x108c6: 0xe0009e00, 0x108c7: 0xe0009f47, - 0x108cb: 0xe0006b22, - 0x108cc: 0xe000a4e2, 0x108cd: 0xe000a157, 0x108ce: 0xe0004bfa, 0x108cf: 0xe0007b45, - 0x108d0: 0xe0006730, - 0x108d6: 0xe000414f, - 0x108e0: 0xe00091b3, 0x108e2: 0xe00075d1, - 0x108e4: 0xe0009a40, 0x108e5: 0xe000a8ed, - 0x108e8: 0xe000856a, 0x108eb: 0xe0008fed, - 0x108ec: 0xe0004b5e, 0x108ef: 0xe00041a6, - 0x108f3: 0xe000a127, - 0x108f8: 0xe000a05d, 0x108fb: 0xe000a7f2, - 0x108fc: 0xe0004af8, 0x108fd: 0xe0008488, 0x108ff: 0xe0008433, - // Block 0x424, offset 0x10900 - 0x10900: 0xe00076ec, 0x10901: 0xe0009ece, 0x10902: 0xe00074ab, 0x10903: 0xe000560f, - 0x10904: 0xe000a4a3, 0x10906: 0xe0009985, 0x10907: 0xe0007d50, - 0x10908: 0xe000a09d, 0x10909: 0xe000878f, - 0x10921: 0xe0008080, - 0x10925: 0xe0004107, 0x10926: 0xe0007573, - 0x10928: 0xe0009668, 0x10929: 0xe0005ccb, - 0x1092d: 0xe0004860, 0x1092e: 0xe000a6c5, - 0x10931: 0xe0006366, 0x10932: 0xe0009526, - 0x1093a: 0xe0009e03, - 0x1093d: 0xe00046e3, 0x1093f: 0xe0004152, - // Block 0x425, offset 0x10940 - 0x10944: 0xe0009cf5, 0x10946: 0xe0006a86, 0x10947: 0xe000908f, - 0x10949: 0xe000770d, - 0x1094e: 0xe0005c86, 0x1094f: 0xe000a8f0, - 0x10950: 0xe00053e0, - 0x10954: 0xe0007c47, - 0x1095c: 0xe0005e29, - 0x1096b: 0xe0004f7d, - 0x1096e: 0xe00071db, 0x1096f: 0xe00081ad, - 0x10971: 0xe000932d, 0x10973: 0xe00058ab, - 0x10975: 0xe000765d, - 0x1097c: 0xe0006c1a, 0x1097e: 0xe0009a43, - // Block 0x426, offset 0x10980 - 0x10980: 0xe0007710, 0x10982: 0xe0005261, - 0x10984: 0xe0009a96, 0x10986: 0xe0006c42, - 0x1098f: 0xe0006133, - 0x10993: 0xe000472e, - 0x10996: 0xe0005358, 0x10997: 0xe00053a0, - 0x1099c: 0xe000954e, 0x1099e: 0xe0007543, - 0x109a3: 0xe000a061, - 0x109bb: 0xe00073dd, - 0x109bc: 0xe0008c09, 0x109bd: 0xe000767d, 0x109be: 0xe00097f7, - // Block 0x427, offset 0x109c0 - 0x109c0: 0xe0004420, 0x109c1: 0xe0007d14, 0x109c3: 0xe000518a, - 0x109c4: 0xe0006dee, 0x109c6: 0xe000952a, 0x109c7: 0xe00056e6, - 0x109c9: 0xe000a713, 0x109ca: 0xe000a065, 0x109cb: 0xe00095ea, - 0x109d1: 0xe0008358, 0x109d3: 0xe0007e87, - 0x109d4: 0xe00075d5, - 0x109d8: 0xe0009496, 0x109d9: 0xe000a7b3, 0x109da: 0xe000a546, - 0x109dc: 0xe000a8b7, 0x109dd: 0xe000424a, 0x109de: 0xe0008f8f, 0x109df: 0xe0008177, - 0x109e3: 0xe000a72e, - 0x109e4: 0xe000a62e, 0x109e7: 0xe000a794, - 0x109e8: 0xe0005857, 0x109e9: 0xe00081b0, 0x109ea: 0xe0006c46, 0x109eb: 0xe0005129, - 0x109ec: 0xe0004b61, 0x109ee: 0xe00052c8, - 0x109f0: 0xe0007443, - // Block 0x428, offset 0x10a00 - 0x10a05: 0xe000a716, 0x10a07: 0xe0006cde, - 0x10a09: 0xe0007046, - 0x10a11: 0xe000a0b9, - 0x10a14: 0xe0009093, - 0x10a1a: 0xe0007bff, 0x10a1b: 0xe0004607, - 0x10a1c: 0xe0004fe9, 0x10a1f: 0xe00091e3, - 0x10a20: 0xe0005735, 0x10a22: 0xe0007ce8, 0x10a23: 0xe0006a89, - 0x10a24: 0xe0009940, - 0x10a37: 0xe0007c4a, - 0x10a3d: 0xe0007127, 0x10a3e: 0xe0008e39, 0x10a3f: 0xe0009b42, - // Block 0x429, offset 0x10a40 - 0x10a44: 0xe0004ba6, 0x10a46: 0xe0009aee, - 0x10a48: 0xe0008d11, 0x10a49: 0xe000410a, - 0x10a4c: 0xe0009ead, 0x10a4d: 0xe0005ba7, 0x10a4e: 0xe000763d, - 0x10a50: 0xe0004ba9, 0x10a52: 0xe000a395, - 0x10a54: 0xe0004bfd, 0x10a56: 0xe00093ff, 0x10a57: 0xe0006c4a, - 0x10a69: 0xe000a50c, - 0x10a6c: 0xe0009797, 0x10a6f: 0xe0006fd1, - 0x10a72: 0xe0008c87, - 0x10a74: 0xe00098ed, 0x10a76: 0xe0007386, 0x10a77: 0xe000a42b, - 0x10a78: 0xe000610f, 0x10a79: 0xe0005b51, 0x10a7b: 0xe000a8f3, - 0x10a7f: 0xe0006123, - // Block 0x42a, offset 0x10a80 - 0x10a81: 0xe0007c4d, 0x10a82: 0xe0008f2f, - 0x10a89: 0xe00053a4, 0x10a8b: 0xe0009be8, - 0x10a8d: 0xe00096bf, 0x10a8e: 0xe0007a61, 0x10a8f: 0xe000a89d, - 0x10a93: 0xe000a1c8, - 0x10aa4: 0xe0004f81, 0x10aa5: 0xe0005237, - 0x10aa8: 0xe0004fec, 0x10aa9: 0xe00075d9, 0x10aaa: 0xe0008d14, 0x10aab: 0xe000a8ba, - 0x10aac: 0xe0006d6c, 0x10aad: 0xe0004bac, 0x10aaf: 0xe0007713, - 0x10ab2: 0xe0009a37, - 0x10ab4: 0xe00067f6, 0x10ab6: 0xe000426e, - 0x10ab8: 0xe0009bec, 0x10aba: 0xe00074af, - // Block 0x42b, offset 0x10ac0 - 0x10ac0: 0xe00051fb, - 0x10ac4: 0xe000a6a9, 0x10ac6: 0xe000a6c8, 0x10ac7: 0xe0009fac, - 0x10acf: 0xe0009641, - 0x10ad9: 0xe0004baf, 0x10ada: 0xe0008308, - 0x10ae5: 0xe00079a1, - 0x10aec: 0xe00069d9, 0x10aee: 0xe000a1a8, - 0x10af3: 0xe000487c, - 0x10af4: 0xe0007901, 0x10af6: 0xe0007782, - 0x10afc: 0xe0008608, - // Block 0x42c, offset 0x10b00 - 0x10b00: 0xe000899f, 0x10b01: 0xe0006f3e, 0x10b02: 0xe000a6ef, 0x10b03: 0xe00086a0, - 0x10b08: 0xe0007bb1, 0x10b09: 0xe0005701, 0x10b0a: 0xe000519a, - 0x10b0d: 0xe000a8bd, - 0x10b11: 0xe000970e, - 0x10b1a: 0xe000712a, 0x10b1b: 0xe0006a8c, - 0x10b1e: 0xe000a64d, 0x10b1f: 0xe00074b3, - 0x10b20: 0xe000848c, - 0x10b26: 0xe0007a19, - 0x10b2b: 0xe000a49f, - 0x10b2e: 0xe0007d53, - 0x10b30: 0xe0004890, - 0x10b37: 0xe0004ead, - 0x10b39: 0xe000599e, 0x10b3a: 0xe00047a3, - 0x10b3f: 0xe0008231, - // Block 0x42d, offset 0x10b40 - 0x10b41: 0xe000830c, 0x10b42: 0xe000a47f, 0x10b43: 0xe0009e06, - 0x10b44: 0xe0007877, - 0x10b48: 0xe0004da9, 0x10b49: 0xe0007895, 0x10b4a: 0xe000961a, 0x10b4b: 0xe0004d11, - 0x10b4d: 0xe0008138, - 0x10b52: 0xe0008088, 0x10b53: 0xe0008084, - 0x10b56: 0xe00054a7, - 0x10b58: 0xe00052cc, - 0x10b5c: 0xe00080e4, 0x10b5f: 0xe0009be2, - 0x10b65: 0xe0005a9c, - 0x10b68: 0xe0008792, - 0x10b6c: 0xe0007c50, 0x10b6d: 0xe0004e38, 0x10b6e: 0xe0006961, - 0x10b70: 0xe0008ff0, - 0x10b7b: 0xe0004fef, - 0x10b7e: 0xe0004fad, - // Block 0x42e, offset 0x10b80 - 0x10b80: 0xe0008ff3, 0x10b82: 0xe0009cba, - 0x10b87: 0xe0004e99, - 0x10b8a: 0xe0006382, - 0x10b8c: 0xe000683e, 0x10b8d: 0xe000535c, 0x10b8e: 0xe000428a, 0x10b8f: 0xe0006457, - 0x10b90: 0xe0008e06, 0x10b91: 0xe0004428, - 0x10ba1: 0xe0009c5c, - 0x10ba4: 0xe0004894, 0x10ba6: 0xe0009af2, 0x10ba7: 0xe000946e, - 0x10ba8: 0xe0008436, 0x10ba9: 0xe00042d6, 0x10baa: 0xe0009d9e, - 0x10bae: 0xe0005456, 0x10baf: 0xe000645a, - 0x10bb0: 0xe0004647, 0x10bb1: 0xe00076d9, 0x10bb3: 0xe0007e8a, - 0x10bb5: 0xe0004c00, 0x10bb7: 0xe0004155, - 0x10bb8: 0xe0004c99, 0x10bbb: 0xe000904a, - 0x10bbc: 0xe0009a9a, - // Block 0x42f, offset 0x10bc0 - 0x10bc2: 0xe000712d, - 0x10bc8: 0xe0005453, 0x10bcb: 0xe000a31f, - 0x10bcc: 0xe0005613, - 0x10bd3: 0xe000a12a, - 0x10bd5: 0xe000a731, - 0x10bde: 0xe0009a6a, - 0x10be0: 0xe00082e8, 0x10be2: 0xe0004c03, 0x10be3: 0xe000808c, - 0x10be4: 0xe000917b, - 0x10bf8: 0xe0007db7, - 0x10bfd: 0xe0008310, - // Block 0x430, offset 0x10c00 - 0x10c03: 0xe00076ef, - 0x10c06: 0xe00041aa, 0x10c07: 0xe0007ee4, - 0x10c08: 0xe0008eef, 0x10c09: 0xe000a2ff, 0x10c0b: 0xe0005e95, - 0x10c0e: 0xe0006f5a, 0x10c0f: 0xe0007a1d, - 0x10c11: 0xe0009552, 0x10c12: 0xe0005781, - 0x10c1c: 0xe00077b0, 0x10c1f: 0xe0007971, - 0x10c20: 0xe0006733, - 0x10c24: 0xe0006964, - 0x10c2d: 0xe0009bb0, - 0x10c30: 0xe00093c8, 0x10c33: 0xe00042da, - 0x10c34: 0xe0007407, 0x10c37: 0xe000919b, - 0x10c39: 0xe0006424, 0x10c3a: 0xe0004ff2, 0x10c3b: 0xe0008f33, - 0x10c3c: 0xe0004ff5, 0x10c3d: 0xe0007049, - // Block 0x431, offset 0x10c40 - 0x10c40: 0xe0004d5d, 0x10c42: 0xe00053e4, 0x10c43: 0xe00048b8, - 0x10c45: 0xe0004577, 0x10c46: 0xe0009c18, - 0x10c48: 0xe0004332, 0x10c49: 0xe0008288, 0x10c4a: 0xe0007591, 0x10c4b: 0xe00068ce, - 0x10c57: 0xe00055bf, - 0x10c59: 0xe00084c0, - 0x10c5d: 0xe00049a3, 0x10c5e: 0xe00095ba, - 0x10c60: 0xe000a734, 0x10c61: 0xe0006611, 0x10c63: 0xe0007fc7, - 0x10c64: 0xe0008c0c, 0x10c66: 0xe0004773, 0x10c67: 0xe00079a5, - 0x10c6a: 0xe000428e, - 0x10c6f: 0xe0007e36, - 0x10c70: 0xe00078bd, 0x10c71: 0xe0006614, - 0x10c74: 0xe00086bc, 0x10c75: 0xe00054aa, - 0x10c7a: 0xe0004731, - // Block 0x432, offset 0x10c80 - 0x10c80: 0xe00065f2, - 0x10c89: 0xe0009472, 0x10c8a: 0xe0004b0a, 0x10c8b: 0xe0007ad9, - 0x10c8c: 0xe0009b5e, 0x10c8d: 0xe0007378, 0x10c8f: 0xe00043de, - 0x10c90: 0xe000704c, 0x10c91: 0xe0006fd4, 0x10c92: 0xe00073e0, - 0x10c94: 0xe0009b4e, 0x10c97: 0xe00054ad, - 0x10c98: 0xe00053e8, 0x10c99: 0xe0004812, 0x10c9a: 0xe0009752, - 0x10c9e: 0xe0006cd2, - 0x10ca1: 0xe0008913, 0x10ca2: 0xe0007c02, - 0x10ca4: 0xe000a754, - 0x10ca9: 0xe0007a91, - 0x10cb5: 0xe0009097, - 0x10cb9: 0xe00092c1, - 0x10cbc: 0xe0008917, 0x10cbd: 0xe0006cae, 0x10cbe: 0xe000721b, - // Block 0x433, offset 0x10cc0 - 0x10cc0: 0xe000904d, 0x10cc1: 0xe0005e05, 0x10cc3: 0xe000464b, - 0x10cc5: 0xe0006d12, - 0x10cc9: 0xe0007ee8, 0x10cca: 0xe0008a8f, - 0x10ccd: 0xe00050a3, - 0x10cd0: 0xe0004f29, 0x10cd3: 0xe000609d, - 0x10cdc: 0xe00097af, 0x10cdd: 0xe0007e8d, 0x10cde: 0xe0008faf, 0x10cdf: 0xe000a1cb, - 0x10ce1: 0xe0006e62, 0x10ce3: 0xe0006697, - 0x10ce8: 0xe000611b, 0x10ce9: 0xe000557f, 0x10ceb: 0xe0008f37, - 0x10cee: 0xe0009a46, - 0x10cf0: 0xe00053a8, 0x10cf1: 0xe00056ca, 0x10cf3: 0xe00067fa, - 0x10cfa: 0xe0007c05, 0x10cfb: 0xe00086c0, - 0x10cfe: 0xe00041c2, - // Block 0x434, offset 0x10d00 - 0x10d01: 0xe000651a, 0x10d03: 0xe0004396, - 0x10d05: 0xe0007cf0, 0x10d07: 0xe00052d0, - 0x10d0e: 0xe000a758, - 0x10d11: 0xe0009fc1, 0x10d13: 0xe00076a9, - 0x10d14: 0xe0005519, 0x10d15: 0xe000a3b3, - 0x10d18: 0xe0005b7d, 0x10d19: 0xe0004a9b, 0x10d1a: 0xe0005a56, - 0x10d1c: 0xe00053ac, 0x10d1d: 0xe0008234, 0x10d1e: 0xe0004b0d, 0x10d1f: 0xe0005abc, - 0x10d24: 0xe00077f3, - 0x10d2b: 0xe0006a8f, - 0x10d2c: 0xe0008518, 0x10d2f: 0xe00086c4, - 0x10d39: 0xe00084f4, 0x10d3a: 0xe000a3b6, 0x10d3b: 0xe0006d15, - 0x10d3d: 0xe0007130, - // Block 0x435, offset 0x10d40 - 0x10d46: 0xe0006707, - 0x10d48: 0xe00087bf, - 0x10d4f: 0xe0009f88, - 0x10d50: 0xe000a363, - 0x10d54: 0xe0004ff8, 0x10d55: 0xe0006d8a, 0x10d56: 0xe0007e06, - 0x10d59: 0xe000721f, 0x10d5a: 0xe00052b3, - 0x10d5c: 0xe000779b, - 0x10d62: 0xe0006066, - 0x10d64: 0xe00084c4, 0x10d65: 0xe00049a6, 0x10d67: 0xe0005459, - 0x10d69: 0xe000949a, 0x10d6a: 0xe0009b8c, 0x10d6b: 0xe0006736, - 0x10d6c: 0xe0009a3a, 0x10d6d: 0xe0007e39, 0x10d6e: 0xe00076bd, 0x10d6f: 0xe000a10d, - 0x10d71: 0xe00074d3, - 0x10d77: 0xe00083f4, - 0x10d78: 0xe00049a9, - 0x10d7e: 0xe000a2cf, - // Block 0x436, offset 0x10d80 - 0x10d84: 0xe0007905, 0x10d87: 0xe0004ffb, - 0x10d88: 0xe00051ac, 0x10d89: 0xe00066c7, - 0x10d8e: 0xe0004e3b, 0x10d8f: 0xe0008e3c, - 0x10d90: 0xe000a54a, 0x10d91: 0xe0004734, 0x10d93: 0xe0009207, - 0x10d94: 0xe00067fe, 0x10d95: 0xe000a20b, 0x10d97: 0xe0009c30, - 0x10d98: 0xe0008744, 0x10d9a: 0xe000a12d, - 0x10da0: 0xe000891b, 0x10da2: 0xe0006a92, - 0x10da7: 0xe0007c08, - 0x10da9: 0xe000597e, 0x10daa: 0xe0009b26, 0x10dab: 0xe00082a0, - 0x10dac: 0xe00086c8, 0x10dad: 0xe0006d8e, 0x10dae: 0xe0006802, - 0x10db3: 0xe00051c4, - 0x10db4: 0xe0005206, 0x10db6: 0xe00051b8, - 0x10db8: 0xe00041c6, - 0x10dbd: 0xe000a3b9, - // Block 0x437, offset 0x10dc0 - 0x10dc2: 0xe0007949, 0x10dc3: 0xe00068e9, - 0x10dc4: 0xe0005e51, - 0x10dca: 0xe000851c, - 0x10dd1: 0xe0009c8f, 0x10dd2: 0xe0009c3f, 0x10dd3: 0xe0004ffe, - 0x10dd6: 0xe0007e3c, 0x10dd7: 0xe0004f4d, - 0x10dd9: 0xe00060a0, - 0x10ddd: 0xe0008748, - 0x10de3: 0xe0006967, - 0x10de5: 0xe0009a49, 0x10de7: 0xe0007dbb, - 0x10de8: 0xe0006386, - 0x10dec: 0xe0009c33, 0x10def: 0xe0009878, - 0x10df2: 0xe0005344, - 0x10df9: 0xe0005e98, 0x10dfb: 0xe000941a, - 0x10dfe: 0xe00095be, - // Block 0x438, offset 0x10e00 - 0x10e03: 0xe0008af3, - 0x10e06: 0xe0005fce, - 0x10e08: 0xe00059e2, 0x10e09: 0xe000856d, 0x10e0b: 0xe0007389, - 0x10e0d: 0xe0006b9e, - 0x10e10: 0xe00087fd, 0x10e11: 0xe00047a6, 0x10e12: 0xe0006b25, 0x10e13: 0xe0006f5e, - 0x10e14: 0xe000813b, - 0x10e19: 0xe0008520, 0x10e1a: 0xe0007e3f, - 0x10e1c: 0xe0004336, 0x10e1d: 0xe0008e2d, 0x10e1e: 0xe000511d, - 0x10e23: 0xe0004bb2, - 0x10e24: 0xe0004c9c, 0x10e25: 0xe0006010, 0x10e26: 0xe00041ca, - 0x10e28: 0xe00083f7, 0x10e2a: 0xe0009147, - 0x10e2c: 0xe000a8c0, 0x10e2e: 0xe000a0d9, - 0x10e38: 0xe00079a9, 0x10e3a: 0xe00074b7, 0x10e3b: 0xe0008490, - 0x10e3f: 0xe0008570, - // Block 0x439, offset 0x10e40 - 0x10e41: 0xe000813e, 0x10e43: 0xe0007dfa, - 0x10e49: 0xe0006a61, - 0x10e51: 0xe0006a95, 0x10e53: 0xe00061bb, - 0x10e58: 0xe000519e, 0x10e59: 0xe000a367, 0x10e5b: 0xe0007c0b, - 0x10e5c: 0xe0005130, 0x10e5f: 0xe00079ad, - 0x10e60: 0xe000745f, 0x10e63: 0xe0008c4b, - 0x10e65: 0xe0007546, 0x10e67: 0xe0009bb3, - 0x10e69: 0xe0005dc1, - 0x10e6d: 0xe0007716, - 0x10e75: 0xe00097fa, 0x10e76: 0xe00098f0, - 0x10e7c: 0xe0009331, 0x10e7f: 0xe0007576, - // Block 0x43a, offset 0x10e80 - 0x10e80: 0xe0007579, 0x10e81: 0xe0005b80, - 0x10e86: 0xe0009c5f, - 0x10e89: 0xe0007d6b, - 0x10e8c: 0xe0007253, - 0x10e90: 0xe0007d56, - 0x10e9a: 0xe000a467, - 0x10ea2: 0xe00068ec, 0x10ea3: 0xe00084c8, - 0x10ea6: 0xe0006739, 0x10ea7: 0xe0008bbf, - 0x10eaa: 0xe00057b1, - 0x10eb2: 0xe000a50f, - 0x10eb7: 0xe0008bc3, - 0x10ebf: 0xe0006d6f, - // Block 0x43b, offset 0x10ec0 - 0x10ec4: 0xe00061be, - 0x10ecd: 0xe000679f, - 0x10ed2: 0xe0005e9b, 0x10ed3: 0xe000a632, - 0x10ed5: 0xe0007681, - 0x10eda: 0xe0006182, 0x10edb: 0xe0008090, - 0x10edf: 0xe0006eda, - 0x10ee2: 0xe0006013, - 0x10ee4: 0xe000738c, 0x10ee7: 0xe0007e03, - 0x10eea: 0xe0007c53, - 0x10ef3: 0xe0007447, - 0x10ef5: 0xe0008560, - 0x10efa: 0xe00061c1, 0x10efb: 0xe000631a, - 0x10efc: 0xe0007cb8, 0x10efd: 0xe0005d8a, 0x10efe: 0xe0004c9f, 0x10eff: 0xe0004b1f, - // Block 0x43c, offset 0x10f00 - 0x10f01: 0xe000410d, 0x10f02: 0xe0007133, - 0x10f04: 0xe0008094, - 0x10f08: 0xe0007786, 0x10f09: 0xe000914b, 0x10f0b: 0xe000524f, - 0x10f0c: 0xe000a2c3, - 0x10f16: 0xe0009eb0, 0x10f17: 0xe0004ca2, - 0x10f19: 0xe0006e66, 0x10f1a: 0xe0005e09, 0x10f1b: 0xe0007bb4, - 0x10f20: 0xe0005cce, 0x10f21: 0xe0008883, 0x10f22: 0xe0004e65, 0x10f23: 0xe00078d9, - 0x10f25: 0xe00089a3, 0x10f26: 0xe000a0dd, - 0x10f29: 0xe0005267, 0x10f2b: 0xe0006016, - 0x10f2d: 0xe000a42e, 0x10f2e: 0xe000a431, 0x10f2f: 0xe0007c56, - 0x10f36: 0xe00096c2, - 0x10f3a: 0xe000a029, 0x10f3b: 0xe000a02d, - 0x10f3d: 0xe0005b54, - // Block 0x43d, offset 0x10f40 - 0x10f40: 0xe0004e68, - 0x10f45: 0xe000a4e5, - 0x10f48: 0xe0007e90, 0x10f49: 0xe000a8c3, 0x10f4b: 0xe0006df2, - 0x10f4c: 0xe0004b64, - 0x10f56: 0xe0009dcd, - 0x10f59: 0xe000874c, 0x10f5b: 0xe000a27f, - 0x10f65: 0xe0008d17, - 0x10f68: 0xe00085b5, 0x10f6a: 0xe00069dd, - 0x10f6d: 0xe00051bb, - 0x10f70: 0xe0007b4d, 0x10f72: 0xe0005252, - 0x10f74: 0xe0007b49, - 0x10f7e: 0xe000575d, 0x10f7f: 0xe0007a21, - // Block 0x43e, offset 0x10f80 - 0x10f80: 0xe0006c4e, 0x10f83: 0xe00077f7, - 0x10f85: 0xe0006f16, - 0x10f8c: 0xe000592a, - 0x10f90: 0xe0008573, 0x10f91: 0xe000a2ab, - 0x10f94: 0xe0004918, 0x10f95: 0xe0008558, 0x10f96: 0xe00085b8, 0x10f97: 0xe0008576, - 0x10f98: 0xe0008d7f, 0x10f9a: 0xe000673c, 0x10f9b: 0xe0009d13, - 0x10f9c: 0xe0008579, 0x10f9d: 0xe000a6cb, 0x10f9f: 0xe0005efa, - 0x10fa1: 0xe0009bb6, 0x10fa3: 0xe0004737, - 0x10fa4: 0xe00047a9, 0x10fa5: 0xe0005218, - 0x10fa9: 0xe000a130, 0x10fab: 0xe00070ae, - 0x10fb0: 0xe0007223, 0x10fb1: 0xe0008654, - 0x10fb5: 0xe000673f, 0x10fb6: 0xe00085bb, - 0x10fb8: 0xe0009fc5, 0x10fba: 0xe00081b3, - 0x10fbc: 0xe00078ed, 0x10fbf: 0xe0006ba2, - // Block 0x43f, offset 0x10fc0 - 0x10fc1: 0xe0008845, 0x10fc2: 0xe0007f34, - 0x10fc5: 0xe0005492, 0x10fc7: 0xe0007f6d, - 0x10fc8: 0xe0007136, 0x10fc9: 0xe00075f5, 0x10fca: 0xe0004158, 0x10fcb: 0xe00070da, - 0x10fcc: 0xe0007d6f, 0x10fcf: 0xe0004b38, - 0x10fd3: 0xe0006663, - 0x10fd5: 0xe0009b66, 0x10fd6: 0xe000a6ad, 0x10fd7: 0xe0008d9b, - 0x10fd8: 0xe00049ef, 0x10fd9: 0xe0008e3f, 0x10fda: 0xe0008af7, 0x10fdb: 0xe0007d73, - 0x10fdc: 0xe000839d, - 0x10fe2: 0xe0004424, 0x10fe3: 0xe0006df6, - 0x10fe4: 0xe00074d7, 0x10fe5: 0xe00081b6, 0x10fe6: 0xe000a54e, - 0x10fec: 0xe0006f62, 0x10fee: 0xe0004d7d, - 0x10ff0: 0xe0008795, 0x10ff3: 0xe000a133, - 0x10ff4: 0xe00079b1, 0x10ff5: 0xe0006fd7, 0x10ff6: 0xe0004110, - 0x10ff8: 0xe0007463, 0x10ff9: 0xe0007eec, - 0x10fff: 0xe0007227, - // Block 0x440, offset 0x11000 - 0x11000: 0xe00093cb, 0x11002: 0xe0008887, 0x11003: 0xe0008098, - 0x11004: 0xe0005001, 0x11005: 0xe0008494, 0x11006: 0xe000623e, 0x11007: 0xe0004c06, - 0x1100c: 0xe0006742, - 0x11010: 0xe0005e9e, 0x11012: 0xe0009fed, 0x11013: 0xe0007f70, - 0x11014: 0xe000740b, 0x11016: 0xe0009a0c, 0x11017: 0xe00051ef, - 0x11018: 0xe0009988, - 0x1101e: 0xe0005d99, 0x1101f: 0xe00092a1, - 0x11021: 0xe000497c, 0x11022: 0xe00099ec, - 0x11024: 0xe0007c0e, 0x11025: 0xe0007e42, 0x11026: 0xe00074db, 0x11027: 0xe00051eb, - 0x11028: 0xe00093ce, 0x11029: 0xe00074eb, 0x1102b: 0xe0006a98, - 0x1102c: 0xe00049f3, 0x1102d: 0xe000a398, 0x1102e: 0xe0005b33, 0x1102f: 0xe0008ef3, - 0x11030: 0xe000a586, - 0x11035: 0xe0009756, 0x11036: 0xe0006617, - 0x11038: 0xe000973a, 0x1103a: 0xe0006a9b, - // Block 0x441, offset 0x11040 - 0x11041: 0xe00066cb, - 0x11044: 0xe0006a9e, 0x11045: 0xe0004ed9, 0x11047: 0xe00086cc, - 0x11048: 0xe000891f, 0x11049: 0xe0008141, 0x1104a: 0xe0008d83, 0x1104b: 0xe00074ef, - 0x1104c: 0xe0008ea2, 0x1104d: 0xe000545c, 0x1104e: 0xe00054b0, 0x1104f: 0xe0006fda, - 0x11051: 0xe0006fdd, - 0x11054: 0xe0008439, 0x11056: 0xe0009576, - 0x11059: 0xe0006c52, - 0x1105f: 0xe0006e6a, - 0x11060: 0xe0006e6e, - 0x11064: 0xe0007f73, - 0x11068: 0xe000638a, 0x1106b: 0xe0007deb, - 0x11071: 0xe00098f3, - 0x11078: 0xe000738f, 0x11079: 0xe00082a4, 0x1107a: 0xe000943a, 0x1107b: 0xe00047ac, - 0x1107c: 0xe000528b, 0x1107e: 0xe0006185, 0x1107f: 0xe000524c, - // Block 0x442, offset 0x11080 - 0x11080: 0xe0004d15, 0x11081: 0xe000696a, - 0x11085: 0xe000444a, 0x11086: 0xe000473a, 0x11087: 0xe00089a7, - 0x11088: 0xe0004d61, 0x1108b: 0xe0007c8c, - 0x1108d: 0xe0007395, 0x1108e: 0xe0007392, - 0x11090: 0xe0004edd, 0x11091: 0xe0006ea6, - 0x11095: 0xe0008923, - 0x1109b: 0xe00065b6, - 0x110a0: 0xe00054b3, 0x110a2: 0xe0005b83, - 0x110a4: 0xe0009936, 0x110a5: 0xe0005c89, - 0x110a8: 0xe0004ca5, - 0x110ac: 0xe0007086, 0x110af: 0xe000567a, - 0x110b1: 0xe0006b72, 0x110b3: 0xe0006e72, - 0x110b9: 0xe000a85d, 0x110ba: 0xe00050a6, - // Block 0x443, offset 0x110c0 - 0x110c8: 0xe0009faf, 0x110ca: 0xe0008a5b, - 0x110cc: 0xe0004fb1, 0x110cf: 0xe0007dbf, - 0x110d0: 0xe0005004, 0x110d1: 0xe0008674, 0x110d2: 0xe000460b, - 0x110d4: 0xe000920a, - 0x110dd: 0xe0008634, - 0x110e1: 0xe000433a, 0x110e3: 0xe0004ca8, - 0x110e5: 0xe0009c92, 0x110e6: 0xe0005d6b, 0x110e7: 0xe00096c5, - 0x110e8: 0xe0008848, 0x110e9: 0xe0007661, 0x110ea: 0xe0006896, 0x110eb: 0xe0007139, - 0x110ec: 0xe0004316, 0x110ed: 0xe00059e6, - 0x110f1: 0xe000545f, 0x110f3: 0xe0007595, - 0x110f5: 0xe000a3bc, 0x110f7: 0xe00061e2, - 0x110f8: 0xe00075f9, 0x110fa: 0xe00059a2, - 0x110fe: 0xe0008a6b, - // Block 0x444, offset 0x11100 - 0x11100: 0xe000713c, - 0x11112: 0xe0005617, - 0x11119: 0xe0009943, - 0x11120: 0xe0006c56, - 0x11128: 0xe0007549, 0x11129: 0xe000757c, - 0x1112d: 0xe00096c8, 0x1112f: 0xe00066cf, - 0x11130: 0xe00066d3, 0x11131: 0xe000521b, - 0x11134: 0xe000a22f, 0x11136: 0xe00054b6, - 0x1113b: 0xe0008ef7, - 0x1113d: 0xe000a2d3, - // Block 0x445, offset 0x11140 - 0x11146: 0xe000494c, 0x11147: 0xe0007307, - 0x1114d: 0xe0005804, 0x1114e: 0xe0005007, - 0x11150: 0xe00048bc, 0x11151: 0xe0004898, - 0x11154: 0xe0009791, 0x11155: 0xe0007719, 0x11156: 0xe00076f2, 0x11157: 0xe000433e, - 0x11159: 0xe0005c0a, 0x1115b: 0xe0004d71, - 0x1115f: 0xe000835c, - 0x11162: 0xe00087e1, - 0x11164: 0xe000a6f2, 0x11166: 0xe0007911, 0x11167: 0xe000730b, - 0x11169: 0xe00068b6, - 0x11174: 0xe0007e18, - 0x1117d: 0xe00087c2, - // Block 0x446, offset 0x11180 - 0x11181: 0xe00042de, 0x11182: 0xe0005c2a, - 0x1118b: 0xe0006188, - 0x1118c: 0xe0004292, 0x1118e: 0xe0007fca, - 0x11190: 0xe0005789, 0x11193: 0xe0007685, - 0x11194: 0xe0007e1b, - 0x111a9: 0xe000730f, - 0x111ac: 0xe0007e09, 0x111af: 0xe00091e6, - 0x111b1: 0xe0007f38, - // Block 0x447, offset 0x111c0 - 0x111c1: 0xe0005baa, 0x111c2: 0xe0008750, - 0x111c4: 0xe00092e9, 0x111c7: 0xe0004c09, - 0x111cb: 0xe00054b9, - 0x111d2: 0xe0008fdb, - 0x111d4: 0xe0004f85, 0x111d5: 0xe00096cb, - 0x111d9: 0xe0005d13, - 0x111dd: 0xe00056a2, - 0x111e0: 0xe0004b67, 0x111e2: 0xe0007e45, - 0x111e7: 0xe0007991, - 0x111ea: 0xe0007929, 0x111eb: 0xe0007931, - 0x111ee: 0xe000a1ff, - 0x111f0: 0xe000a15a, - 0x111f7: 0xe00083d6, - 0x111f8: 0xe0007add, 0x111fa: 0xe00059a6, - 0x111fc: 0xe0006d18, 0x111fd: 0xe0007599, - // Block 0x448, offset 0x11200 - 0x11209: 0xe00092ed, 0x1120b: 0xe0004e6b, - 0x1120d: 0xe0007e0c, - 0x11211: 0xe0009289, 0x11212: 0xe0005dc5, 0x11213: 0xe00089ab, - 0x11216: 0xe0007665, - 0x1121a: 0xe000a1e7, - 0x1121d: 0xe000949e, 0x1121e: 0xe0008e42, - 0x11221: 0xe0007263, 0x11222: 0xe0006fe0, - 0x11225: 0xe000491c, 0x11226: 0xe0008e09, 0x11227: 0xe0004b6a, - 0x11228: 0xe000444d, 0x1122b: 0xe00060cd, - 0x1122e: 0xe00091e9, - 0x11231: 0xe000500a, 0x11232: 0xe00083fa, 0x11233: 0xe0006aa1, - 0x11234: 0xe0009c62, 0x11235: 0xe000998b, 0x11237: 0xe000a0e1, - 0x11239: 0xe0004f2d, - 0x1123d: 0xe00070b2, 0x1123e: 0xe00044aa, - // Block 0x449, offset 0x11240 - 0x11242: 0xe0007398, 0x11243: 0xe0009e09, - 0x11246: 0xe00064de, - 0x11249: 0xe0006842, - 0x1124c: 0xe000a8c6, - 0x11251: 0xe0009b6a, - 0x11255: 0xe0005e45, 0x11256: 0xe00095c2, - 0x11259: 0xe000914f, 0x1125a: 0xe00097fd, 0x1125b: 0xe000646e, - 0x1125d: 0xe0008c0f, - 0x11265: 0xe000713f, - 0x11268: 0xe0006fc2, 0x1126b: 0xe0006aa4, - 0x1126d: 0xe0006d92, - 0x11273: 0xe00086d0, - 0x11276: 0xe0005462, 0x11277: 0xe0008237, - 0x11278: 0xe0006c5a, - 0x1127d: 0xe0005fd1, 0x1127f: 0xe000a719, - // Block 0x44a, offset 0x11280 - 0x11280: 0xe0008afb, 0x11283: 0xe000817a, - 0x11284: 0xe000759d, 0x11285: 0xe0009e69, 0x11287: 0xe000638e, - 0x1128c: 0xe000a5d2, 0x1128e: 0xe0005f2a, - 0x11294: 0xe0005e0d, 0x11295: 0xe0005d9d, - 0x11298: 0xe0009403, - 0x1129e: 0xe000669b, 0x1129f: 0xe0009946, - 0x112a1: 0xe000648a, 0x112a2: 0xe00053ec, 0x112a3: 0xe0009dd0, - 0x112a8: 0xe000959a, 0x112aa: 0xe0006072, 0x112ab: 0xe00063f2, - 0x112ac: 0xe0008ea5, - 0x112b0: 0xe000a1eb, 0x112b1: 0xe0005761, 0x112b2: 0xe00041ce, 0x112b3: 0xe0009da2, - 0x112b4: 0xe00051cb, 0x112b7: 0xe00065ba, - 0x112b8: 0xe000a18c, 0x112b9: 0xe00041d2, 0x112ba: 0xe0007e93, 0x112bb: 0xe000a552, - 0x112bc: 0xe00081b9, 0x112bd: 0xe00081bc, 0x112be: 0xe000500d, 0x112bf: 0xe0007915, - // Block 0x44b, offset 0x112c0 - 0x112c4: 0xe00086d4, 0x112c7: 0xe00068ef, - 0x112ca: 0xe0006c5e, 0x112cb: 0xe00050a9, - 0x112cf: 0xe0006d1b, - 0x112d5: 0xe0008800, 0x112d6: 0xe0009e48, 0x112d7: 0xe0008a6f, - 0x112da: 0xe000464f, - 0x112dc: 0xe0006745, - 0x112e0: 0xe0006c62, - 0x112e6: 0xe00054bc, 0x112e7: 0xe0008e0c, - 0x112eb: 0xe00047af, - 0x112ed: 0xe0008aff, - 0x112f3: 0xe000696d, - 0x112f5: 0xe0007669, 0x112f6: 0xe0006d1e, 0x112f7: 0xe0004342, - 0x112f8: 0xe0007ef0, - 0x112fd: 0xe0007fcd, 0x112fe: 0xe00081bf, - // Block 0x44c, offset 0x11300 - 0x11301: 0xe000992e, 0x11302: 0xe0006c66, - 0x11308: 0xe0009f8b, 0x11309: 0xe000596a, 0x1130a: 0xe00057c9, 0x1130b: 0xe00071de, - 0x11310: 0xe0004c0c, 0x11311: 0xe0004f31, 0x11313: 0xe00049c7, - 0x11315: 0xe0008360, 0x11316: 0xe0005b36, - 0x1131a: 0xe0008e45, 0x1131b: 0xe0008927, - 0x1131d: 0xe00073e3, 0x1131e: 0xe000a889, 0x1131f: 0xe00060a3, - 0x11320: 0xe0009335, 0x11321: 0xe0006112, 0x11322: 0xe0009dd3, 0x11323: 0xe0004a9f, - 0x11325: 0xe0004b22, 0x11327: 0xe0008754, - 0x11328: 0xe000a15d, 0x11329: 0xe0005c52, - 0x1132c: 0xe000587b, - 0x11331: 0xe0007d18, 0x11333: 0xe00095f6, - 0x11336: 0xe00079b5, 0x11337: 0xe0008b03, - 0x1133a: 0xe00044ae, 0x1133b: 0xe000a650, - 0x1133f: 0xe000854c, - // Block 0x44d, offset 0x11340 - 0x11341: 0xe000655a, 0x11343: 0xe00050ac, - 0x11344: 0xe0005ac0, 0x11347: 0xe00042e2, - 0x11348: 0xe000a21b, 0x1134a: 0xe0009dd6, 0x1134b: 0xe000846c, - 0x1134f: 0xe000740f, - 0x11351: 0xe000739b, 0x11353: 0xe0004d81, - 0x11354: 0xe0008c8a, 0x11355: 0xe0008498, 0x11357: 0xe000688a, - 0x11358: 0xe000a4a7, 0x1135b: 0xe00083fd, - 0x1135f: 0xe0008c12, - 0x11362: 0xe000551c, - 0x11365: 0xe00061c4, 0x11366: 0xe000a233, 0x11367: 0xe000a3bf, - 0x11369: 0xe0005209, - 0x1136d: 0xe00061c7, - 0x11371: 0xe00077b3, - 0x11374: 0xe00055a7, 0x11375: 0xe00086d8, - 0x1137a: 0xe0004346, - 0x1137c: 0xe0009f1f, - // Block 0x44e, offset 0x11380 - 0x11380: 0xe0004cab, - 0x11386: 0xe00065a2, - 0x11388: 0xe0009af6, 0x1138a: 0xe000434a, - 0x1138c: 0xe000618b, 0x1138e: 0xe0005dc9, - 0x11394: 0xe0005aa0, 0x11396: 0xe00052d4, 0x11397: 0xe000a37a, - 0x11398: 0xe0009644, 0x11399: 0xe000a7c5, 0x1139b: 0xe0008400, - 0x1139d: 0xe000843c, - 0x113a2: 0xe000a323, - 0x113a4: 0xe000561b, 0x113a6: 0xe00078c1, 0x113a7: 0xe0007ff8, - 0x113a9: 0xe00093d1, 0x113aa: 0xe0009e83, 0x113ab: 0xe0008c8d, - 0x113ac: 0xe00069e1, 0x113ad: 0xe0009d22, - 0x113b0: 0xe0009339, 0x113b1: 0xe0007ae1, - 0x113b7: 0xe0006392, - 0x113b9: 0xe0007975, - 0x113bc: 0xe0009ef6, 0x113bf: 0xe000688e, - // Block 0x44f, offset 0x113c0 - 0x113c0: 0xe0007dd7, 0x113c1: 0xe0008b07, 0x113c2: 0xe0008d1a, - 0x113c5: 0xe0005465, 0x113c7: 0xe0007267, - 0x113c8: 0xe000a841, 0x113c9: 0xe000784b, 0x113ca: 0xe000a653, 0x113cb: 0xe0005c1e, - 0x113cc: 0xe000a71c, - 0x113d0: 0xe0006d21, 0x113d1: 0xe0004653, 0x113d2: 0xe00054bf, - 0x113d7: 0xe000569e, - 0x113d8: 0xe0006427, 0x113d9: 0xe0006aa7, - 0x113dc: 0xe0006cb2, 0x113de: 0xe0008d9f, - 0x113e0: 0xe0005807, 0x113e1: 0xe000787a, 0x113e3: 0xe000920d, - 0x113e7: 0xe0009d72, - 0x113e8: 0xe000a5d6, 0x113e9: 0xe0006667, 0x113ea: 0xe000726b, - 0x113ec: 0xe00063f6, 0x113ed: 0xe0007e96, 0x113ee: 0xe000618e, 0x113ef: 0xe000a39b, - 0x113f5: 0xe00091bb, 0x113f7: 0xe0005496, - 0x113f9: 0xe000952e, - 0x113fc: 0xe0007e99, 0x113fd: 0xe000a7c8, - // Block 0x450, offset 0x11400 - 0x11403: 0xe00074f3, - 0x11405: 0xe0009f23, - 0x11409: 0xe000551f, - 0x1140c: 0xe0005010, 0x1140d: 0xe000849c, - 0x11410: 0xe0009b46, 0x11412: 0xe0009c54, - 0x11416: 0xe000973e, 0x11417: 0xe0008ff6, - 0x11418: 0xe0005e55, 0x11419: 0xe0005e59, - 0x1141d: 0xe000959e, 0x1141e: 0xe0006216, 0x1141f: 0xe000621a, - 0x11420: 0xe00098ac, 0x11421: 0xe00098c4, - 0x11424: 0xe0007c59, - 0x11428: 0xe0007dc3, 0x1142b: 0xe0009a34, - 0x1142d: 0xe000656e, 0x1142e: 0xe00050af, - 0x11431: 0xe0009a10, - 0x11435: 0xe00051db, - 0x11438: 0xe000527d, 0x1143b: 0xe000a845, - 0x1143c: 0xe000439a, 0x1143d: 0xe000a493, 0x1143f: 0xe0006806, - // Block 0x451, offset 0x11440 - 0x1144a: 0xe00096ce, - 0x1144d: 0xe0008638, 0x1144f: 0xe00076c1, - 0x11452: 0xe000520c, - 0x11454: 0xe0008bc7, 0x11455: 0xe0009c95, 0x11456: 0xe0009e0c, 0x11457: 0xe00095ee, - 0x11459: 0xe000a434, 0x1145b: 0xe0005348, - 0x1145c: 0xe00059aa, 0x1145d: 0xe0006aaa, - 0x11460: 0xe0009b8f, 0x11461: 0xe0008403, - 0x11465: 0xe0004f99, 0x11466: 0xe0009db2, 0x11467: 0xe0006f66, - 0x11468: 0xe000809c, 0x11469: 0xe0005294, 0x1146a: 0xe0004b10, - 0x1146f: 0xe000452a, - 0x11473: 0xe000a636, - // Block 0x452, offset 0x11480 - 0x11481: 0xe0008524, 0x11482: 0xe000726f, 0x11483: 0xe000739e, - 0x11486: 0xe000a111, 0x11487: 0xe0004ac3, - 0x11488: 0xe0006019, 0x1148a: 0xe000a303, - 0x1148d: 0xe000a5da, - 0x11490: 0xe0004920, 0x11492: 0xe000a0e5, - 0x11495: 0xe0006d24, - 0x11499: 0xe00077fb, 0x1149a: 0xe0007939, - 0x1149d: 0xe0004a6b, 0x1149f: 0xe000a825, - 0x114a0: 0xe0004b25, 0x114a2: 0xe000a656, 0x114a3: 0xe000857c, - 0x114a4: 0xe000a801, 0x114a5: 0xe0009949, - 0x114a8: 0xe0009ff1, 0x114a9: 0xe00082ec, 0x114aa: 0xe0004182, 0x114ab: 0xe0009c0c, - 0x114ac: 0xe00051df, 0x114ad: 0xe0004924, 0x114af: 0xe0007413, - 0x114b0: 0xe000a891, - // Block 0x453, offset 0x114c0 - 0x114c1: 0xe0007a25, 0x114c3: 0xe00048c0, - 0x114c4: 0xe00096d1, 0x114c5: 0xe0007a51, - 0x114c9: 0xe00074df, 0x114cb: 0xe0005d17, - 0x114cc: 0xe0008c15, 0x114cd: 0xe0009ff5, 0x114cf: 0xe000a307, - 0x114d2: 0xe0008378, - 0x114d4: 0xe000a659, 0x114d5: 0xe000a8f6, 0x114d6: 0xe0009cf8, 0x114d7: 0xe000615b, - 0x114da: 0xe00070de, 0x114db: 0xe000892b, - 0x114df: 0xe0007c11, - 0x114e0: 0xe00081c2, 0x114e2: 0xe000585b, 0x114e3: 0xe000a556, - 0x114e4: 0xe000975a, 0x114e7: 0xe0005c8c, - 0x114f0: 0xe0008da3, 0x114f1: 0xe0006970, 0x114f2: 0xe00068f2, 0x114f3: 0xe000549a, - 0x114f4: 0xe00098cc, 0x114f5: 0xe0009389, 0x114f6: 0xe00061e6, - 0x114f8: 0xe000473d, 0x114fb: 0xe000a19c, - 0x114fc: 0xe00054c2, 0x114fd: 0xe000941d, 0x114fe: 0xe0004950, - // Block 0x454, offset 0x11500 - 0x11504: 0xe00051c7, 0x11505: 0xe0008b0b, 0x11506: 0xe0009800, 0x11507: 0xe0005583, - 0x11509: 0xe00095a2, 0x1150b: 0xe0007dc7, - 0x1150f: 0xe00057b5, - 0x11511: 0xe000a45b, 0x11513: 0xe0004dc5, - 0x11515: 0xe0009476, - 0x11518: 0xe0005e7d, 0x11519: 0xe0009556, 0x1151a: 0xe000a497, 0x1151b: 0xe000a483, - 0x1151c: 0xe0006d96, 0x1151d: 0xe000938d, 0x1151f: 0xe00081c5, - 0x11520: 0xe000a37d, 0x11521: 0xe00075a1, 0x11522: 0xe0007112, - 0x11530: 0xe0009a4c, 0x11531: 0xe0005243, 0x11532: 0xe000804c, 0x11533: 0xe0006c6a, - 0x11534: 0xe00098d8, 0x11536: 0xe000a5de, 0x11537: 0xe0008f3b, - 0x11538: 0xe00046e7, 0x11539: 0xe000779e, 0x1153a: 0xe0006f6a, 0x1153b: 0xe0009926, - 0x1153c: 0xe0009d76, - // Block 0x455, offset 0x11540 - 0x11540: 0xe00096d4, 0x11541: 0xe0007142, 0x11543: 0xe0006e76, - 0x11546: 0xe00044b2, - 0x11548: 0xe00081c8, 0x11549: 0xe00081cb, - 0x1154d: 0xe00061ea, 0x1154e: 0xe0009d42, 0x1154f: 0xe00083a0, - 0x11554: 0xe0008364, 0x11555: 0xe00075a5, - 0x1155a: 0xe0007f76, 0x1155b: 0xe00076f5, - 0x1155c: 0xe000a30b, 0x1155f: 0xe0004296, - 0x11567: 0xe0004b13, - 0x1156c: 0xe000704f, 0x1156d: 0xe00050b2, - 0x11570: 0xe000a5e2, - 0x11574: 0xe000933d, 0x11577: 0xe00043e1, - 0x1157c: 0xe0007467, 0x1157e: 0xe00043e4, 0x1157f: 0xe00080a0, - // Block 0x456, offset 0x11580 - 0x11582: 0xe0007ef4, - 0x11584: 0xe0005c22, 0x11586: 0xe0005522, 0x11587: 0xe00082f0, - 0x11588: 0xe000857f, 0x1158a: 0xe00045ef, 0x1158b: 0xe0009b92, - 0x1158c: 0xe000a5e6, 0x1158d: 0xe0007cbc, - 0x11592: 0xe0008ddf, 0x11593: 0xe0009e86, - 0x11595: 0xe0005fd4, - 0x11598: 0xe00092c5, 0x11599: 0xe00092c9, 0x1159a: 0xe00092f1, - 0x1159d: 0xe0009c4c, 0x1159f: 0xe0009bf4, - 0x115a0: 0xe0007c5c, 0x115a2: 0xe0005dcd, 0x115a3: 0xe00049f7, - 0x115a4: 0xe0004186, 0x115a7: 0xe000a380, - 0x115a8: 0xe00043e7, 0x115ab: 0xe0008da7, - 0x115ae: 0xe000587e, - 0x115b0: 0xe0008144, 0x115b1: 0xe000530c, 0x115b3: 0xe000421e, - 0x115b4: 0xe0007344, 0x115b5: 0xe0007f3c, 0x115b6: 0xe0004657, 0x115b7: 0xe000434e, - 0x115ba: 0xe0005bad, - 0x115bd: 0xe000943e, 0x115be: 0xe0007eb4, - // Block 0x457, offset 0x115c0 - 0x115c1: 0xe000975e, 0x115c2: 0xe0007f79, 0x115c3: 0xe0007f40, - 0x115ca: 0xe00068f5, - 0x115cd: 0xe0004bb5, 0x115ce: 0xe0008fb3, - 0x115d0: 0xe00058fa, 0x115d1: 0xe0006a45, 0x115d2: 0xe0004e0b, - 0x115d4: 0xe000966b, 0x115d6: 0xe0008314, - 0x115d8: 0xe000a8cc, 0x115d9: 0xe000a8c9, 0x115da: 0xe0009afa, - 0x115e4: 0xe000680a, 0x115e7: 0xe00055d7, - 0x115e8: 0xe00042e6, 0x115e9: 0xe000453d, 0x115eb: 0xe00061ee, - 0x115ec: 0xe000465b, 0x115ee: 0xe00060d0, 0x115ef: 0xe00092f5, - 0x115f2: 0xe000a1d7, - 0x115f6: 0xe00078a5, - 0x115f8: 0xe0006f1a, 0x115fa: 0xe0005360, 0x115fb: 0xe0009b12, - 0x115fc: 0xe00046eb, 0x115fe: 0xe000429a, - // Block 0x458, offset 0x11600 - 0x11603: 0xe0004ef1, - 0x11606: 0xe0008d1d, 0x11607: 0xe00041d6, - 0x11608: 0xe000a136, 0x11609: 0xe0008388, 0x1160a: 0xe0007c14, 0x1160b: 0xe00060d3, - 0x1160c: 0xe0007995, - 0x11615: 0xe0007a95, 0x11617: 0xe0009fb2, - 0x1161e: 0xe0006076, 0x1161f: 0xe0005483, - 0x11623: 0xe000615f, - 0x11626: 0xe0005133, - 0x11632: 0xe00091bf, - 0x11636: 0xe00056e9, 0x11637: 0xe000a65c, - 0x11638: 0xe000a237, 0x1163a: 0xe00092cd, - 0x1163c: 0xe0004c0f, 0x1163d: 0xe000a58a, 0x1163e: 0xe0006f42, 0x1163f: 0xe00083a3, - // Block 0x459, offset 0x11640 - 0x11640: 0xe00058fe, - 0x11647: 0xe00053f0, - 0x11648: 0xe000497f, 0x1164a: 0xe00060d6, - 0x1164c: 0xe00072f3, 0x1164d: 0xe0007145, 0x1164e: 0xe00082d4, - 0x11650: 0xe0006f6e, 0x11651: 0xe000754c, 0x11652: 0xe0004740, - 0x11654: 0xe000866c, 0x11655: 0xe0008758, 0x11656: 0xe000a45f, - 0x1165a: 0xe0009442, - 0x1165e: 0xe0007641, 0x1165f: 0xe0004ec5, - 0x11661: 0xe000429e, 0x11662: 0xe00091b7, - 0x11667: 0xe0009391, - 0x11669: 0xe00089af, 0x1166a: 0xe0008a3f, - 0x1166e: 0xe0005bf6, - 0x11670: 0xe000892f, 0x11671: 0xe000a8cf, 0x11672: 0xe000a8f9, 0x11673: 0xe0009235, - 0x11674: 0xe0005468, 0x11675: 0xe0004cae, 0x11676: 0xe000a3c2, - 0x11679: 0xe0007766, - 0x1167e: 0xe0005881, 0x1167f: 0xe0006396, - // Block 0x45a, offset 0x11680 - 0x11680: 0xe0006fe3, 0x11681: 0xe0009d4e, 0x11683: 0xe00046ef, - 0x11687: 0xe0006dfa, - 0x11688: 0xe000a3c5, 0x11689: 0xe00068f8, 0x1168a: 0xe0007a99, 0x1168b: 0xe0007148, - 0x1168d: 0xe0008798, 0x1168e: 0xe00092b1, - 0x11691: 0xe000669f, 0x11692: 0xe000645d, 0x11693: 0xe0009a4f, - 0x11697: 0xe00087c5, - 0x11698: 0xe0009a9e, 0x1169b: 0xe000439e, - 0x116a3: 0xe0004cb1, - 0x116a8: 0xe00084cc, - 0x116ae: 0xe000680e, - 0x116b1: 0xe0004f9d, 0x116b3: 0xe000631e, - 0x116b6: 0xe0006748, - 0x116b9: 0xe00068fb, 0x116ba: 0xe0009050, - 0x116bc: 0xe000774a, 0x116be: 0xe0008d20, 0x116bf: 0xe0007364, - // Block 0x45b, offset 0x116c0 - 0x116c0: 0xe0005013, 0x116c3: 0xe0006572, - 0x116c4: 0xe000966e, 0x116c6: 0xe0006163, - 0x116c9: 0xe00045c7, 0x116ca: 0xe0009c65, - 0x116d1: 0xe00078a9, 0x116d2: 0xe0006d27, - 0x116d4: 0xe00067a2, 0x116d5: 0xe0009c36, 0x116d6: 0xe0005665, 0x116d7: 0xe000a0e9, - 0x116d8: 0xe0008a43, 0x116db: 0xe0009e0f, - 0x116e8: 0xe0009db6, 0x116eb: 0xe0009ef9, - 0x116ec: 0xe0009bb9, - 0x116f1: 0xe0009e12, - 0x116f5: 0xe0008803, - 0x116f9: 0xe0005e2d, - 0x116fc: 0xe00076ad, 0x116fd: 0xe00097b2, - // Block 0x45c, offset 0x11700 - 0x11702: 0xe0006892, - 0x11704: 0xe0008ea8, 0x11705: 0xe0005310, 0x11706: 0xe0009ac6, 0x11707: 0xe00060d9, - 0x11708: 0xe00051e3, 0x11709: 0xe00057b9, 0x1170a: 0xe00067a5, - 0x1170c: 0xe00062c6, 0x1170d: 0xe000625a, 0x1170f: 0xe0005136, - 0x11710: 0xe0004b16, 0x11711: 0xe000460f, 0x11712: 0xe0004450, 0x11713: 0xe0009446, - 0x11714: 0xe000633e, 0x11715: 0xe0009a6d, 0x11716: 0xe0009a52, 0x11717: 0xe0007e48, - 0x11718: 0xe0004c12, 0x11719: 0xe0008d8f, 0x1171b: 0xe0009671, - 0x1171c: 0xe000642a, - 0x1172c: 0xe0004a6f, 0x1172d: 0xe0007417, 0x1172e: 0xe0005115, 0x1172f: 0xe0008fbb, - 0x11731: 0xe0004928, 0x11733: 0xe0004dad, - 0x11735: 0xe0008d87, 0x11736: 0xe00092b5, 0x11737: 0xe00047b2, - 0x1173d: 0xe0007bb7, 0x1173e: 0xe0007334, 0x1173f: 0xe0005139, - // Block 0x45d, offset 0x11740 - 0x11741: 0xe0008ff9, 0x11742: 0xe0004afb, - 0x11747: 0xe0008ffc, - 0x11749: 0xe00075fd, - 0x1174c: 0xe000455f, - 0x11750: 0xe000513f, 0x11751: 0xe00054c5, 0x11752: 0xe000595e, - 0x11768: 0xe000771c, 0x1176a: 0xe0005142, 0x1176b: 0xe0008e0f, - 0x1176f: 0xe000909b, - 0x11779: 0xe000837c, 0x1177a: 0xe0008b0f, 0x1177b: 0xe00079bd, - 0x1177d: 0xe0005dd1, 0x1177e: 0xe000a2d7, - // Block 0x45e, offset 0x11780 - 0x11782: 0xe0007c5f, 0x11783: 0xe0004d51, - 0x11784: 0xe0004cb4, 0x11786: 0xe00048c4, - 0x11789: 0xe0009219, - 0x1178c: 0xe0009ce6, 0x1178d: 0xe000a031, 0x1178e: 0xe0007052, 0x1178f: 0xe000516e, - 0x11790: 0xe00079b9, - 0x11795: 0xe0009e15, 0x11797: 0xe000947a, - 0x117a7: 0xe00066d7, - 0x117a8: 0xe0006aad, 0x117a9: 0xe0005962, 0x117ab: 0xe0006167, - 0x117ae: 0xe0004453, - 0x117b1: 0xe000771f, 0x117b2: 0xe0004db1, - 0x117b6: 0xe0009803, 0x117b7: 0xe00095c6, - 0x117ba: 0xe0005172, 0x117bb: 0xe00051e7, - 0x117bf: 0xe0006d2a, - // Block 0x45f, offset 0x117c0 - 0x117c0: 0xe000a849, 0x117c3: 0xe0006fe6, - 0x117c4: 0xe0005c1a, 0x117c7: 0xe000955a, - 0x117c8: 0xe000714b, 0x117c9: 0xe00054c8, 0x117ca: 0xe00067a8, - 0x117cc: 0xe00086dc, 0x117ce: 0xe00050b5, 0x117cf: 0xe0005525, - 0x117d2: 0xe000642d, - 0x117d6: 0xe000774e, - 0x117d8: 0xe0004d65, 0x117db: 0xe0004af2, - 0x117dc: 0xe0007bba, 0x117df: 0xe0008bcb, - 0x117e0: 0xe0005817, 0x117e1: 0xe00093d4, 0x117e2: 0xe0009b32, - 0x117e5: 0xe0008ab7, 0x117e7: 0xe000492c, - 0x117e8: 0xe00097b5, 0x117e9: 0xe0007909, 0x117ea: 0xe0008c90, - 0x117ec: 0xe0004d2d, - 0x117fe: 0xe0007a29, - // Block 0x460, offset 0x11800 - 0x11800: 0xe00041da, 0x11803: 0xe00089b3, - 0x11804: 0xe00081ce, 0x11806: 0xe0004e3e, - 0x11809: 0xe000823a, - 0x1180f: 0xe00060a6, - 0x11810: 0xe0008c18, - 0x11816: 0xe000836c, - 0x1181a: 0xe00077ff, 0x1181b: 0xe000a55a, - 0x1181f: 0xe0006d72, - 0x11820: 0xe0007645, 0x11821: 0xe00075a9, 0x11823: 0xe00098db, - 0x11829: 0xe0004411, 0x1182b: 0xe0009806, - 0x1182d: 0xe0004540, 0x1182e: 0xe000a7cb, - 0x11832: 0xe0006ede, - 0x11834: 0xe00080a4, 0x11835: 0xe00044ce, 0x11836: 0xe00077a1, 0x11837: 0xe0006c06, - // Block 0x461, offset 0x11840 - 0x11846: 0xe0004cb7, - 0x11849: 0xe00041ae, - 0x1184d: 0xe00070b6, 0x1184f: 0xe000625e, - 0x11852: 0xe00063fa, - 0x11854: 0xe0006fe9, 0x11856: 0xe0007e4b, 0x11857: 0xe00054cb, - 0x1185c: 0xe000714e, - 0x11862: 0xe000909f, - 0x11864: 0xe000776a, 0x11865: 0xe0009809, - 0x11868: 0xe0009b62, 0x1186a: 0xe0005418, 0x1186b: 0xe0006322, - 0x1186c: 0xe00062ca, 0x1186d: 0xe0009b52, 0x1186f: 0xe0005528, - 0x11870: 0xe00048f8, - 0x11876: 0xe0009395, - 0x1187a: 0xe000a7e6, - 0x1187e: 0xe000921d, - // Block 0x462, offset 0x11880 - 0x11898: 0xe000888b, - 0x118a0: 0xe0009762, - 0x118a7: 0xe000979a, - 0x118a9: 0xe0005d6f, - 0x118ad: 0xe000947e, 0x118af: 0xe0008fff, - 0x118b3: 0xe0004cba, - 0x118b8: 0xe0005fd7, 0x118b9: 0xe0005fda, 0x118ba: 0xe0008abb, 0x118bb: 0xe0006f1e, - 0x118bd: 0xe0009eb3, - // Block 0x463, offset 0x118c0 - 0x118c5: 0xe0004e0e, - 0x118c8: 0xe0005a26, - 0x118d0: 0xe0009bd1, 0x118d1: 0xe0009bcd, 0x118d2: 0xe0006bce, 0x118d3: 0xe0007e4e, - 0x118d5: 0xe0006d75, - 0x118d9: 0xe0008f3f, 0x118da: 0xe00051cf, - 0x118dd: 0xe000a7dd, 0x118de: 0xe00053f4, 0x118df: 0xe0004bb8, - 0x118e4: 0xe0009532, 0x118e5: 0xe0006342, - 0x118e9: 0xe0005b57, 0x118eb: 0xe00060dc, - 0x118ed: 0xe0009c68, 0x118ee: 0xe000978a, - 0x118f0: 0xe0009241, 0x118f2: 0xe0006262, - 0x118fb: 0xe0005330, - 0x118fc: 0xe00042ea, 0x118fe: 0xe00049ac, 0x118ff: 0xe000451e, - // Block 0x464, offset 0x11900 - 0x11901: 0xe0007cf4, - 0x11904: 0xe0005a29, 0x11905: 0xe00094a2, 0x11907: 0xe0009bc5, - 0x11909: 0xe0009239, 0x1190a: 0xe0004543, - 0x1190d: 0xe0008c93, 0x1190e: 0xe000465f, - 0x11910: 0xe000a58e, 0x11912: 0xe0004f51, - 0x11914: 0xe0005364, 0x11915: 0xe000a7f5, 0x11917: 0xe000653e, - 0x11918: 0xe000651e, 0x1191a: 0xe0004456, - 0x11920: 0xe0008c4e, 0x11921: 0xe000546b, 0x11922: 0xe0009aa2, 0x11923: 0xe000552b, - 0x11925: 0xe000578d, 0x11926: 0xe00092a5, 0x11927: 0xe0004459, - 0x1192c: 0xe00083a6, 0x1192d: 0xe000a512, 0x1192f: 0xe0006a15, - 0x11931: 0xe00041b2, 0x11932: 0xe000944a, - 0x11934: 0xe000a51e, - 0x1193a: 0xe0009c6b, - 0x1193e: 0xe0007e51, - // Block 0x465, offset 0x11940 - 0x11940: 0xe00062ce, 0x11942: 0xe0005b0c, - 0x11944: 0xe0009bd9, 0x11947: 0xe000a1ef, - 0x1194a: 0xe00058e2, - 0x1194f: 0xe0005adc, - 0x11954: 0xe0005765, - 0x11958: 0xe0007803, 0x11959: 0xe00092f9, - 0x1195d: 0xe0006f32, - 0x11962: 0xe000928d, 0x11963: 0xe0005902, - 0x11964: 0xe0009b16, - 0x1196a: 0xe0004b6d, 0x1196b: 0xe000a522, - 0x1196c: 0xe0005791, 0x1196f: 0xe0009002, - 0x11972: 0xe00050b8, - 0x11976: 0xe0007151, 0x11977: 0xe00047b5, - 0x11978: 0xe00081d1, 0x11979: 0xe00043ea, 0x1197b: 0xe0004930, - 0x1197d: 0xe0006326, 0x1197e: 0xe000639a, 0x1197f: 0xe0008b13, - // Block 0x466, offset 0x11980 - 0x11985: 0xe00047b8, - 0x11988: 0xe000a6ce, 0x11989: 0xe00061ca, - 0x1198d: 0xe0006d2d, 0x1198e: 0xe0004b70, 0x1198f: 0xe00061f2, - 0x11991: 0xe0004c15, - 0x11994: 0xe0007898, 0x11995: 0xe00099c4, 0x11996: 0xe0007c17, 0x11997: 0xe0009cfb, - 0x1199d: 0xe0009de8, 0x1199e: 0xe0009341, - 0x119a2: 0xe00042a2, 0x119a3: 0xe0006b76, - 0x119a6: 0xe0005587, - 0x119ac: 0xe0004663, 0x119ad: 0xe0007807, - 0x119b2: 0xe00047bb, - 0x119b4: 0xe0008b17, 0x119b5: 0xe000888f, 0x119b7: 0xe000674b, - 0x119b8: 0xe0007154, - 0x119be: 0xe0006dfe, - // Block 0x467, offset 0x119c0 - 0x119c1: 0xe0005668, 0x119c2: 0xe000596e, 0x119c3: 0xe0009dd9, - 0x119c5: 0xe000a6d1, 0x119c7: 0xe0006137, - 0x119cc: 0xe00069e5, - 0x119d0: 0xe00068fe, 0x119d1: 0xe00062d2, - 0x119d7: 0xe000564a, - 0x119d9: 0xe0005b39, 0x119db: 0xe0004864, - 0x119dc: 0xe0006ab0, 0x119dd: 0xe000415b, 0x119df: 0xe000918f, - 0x119e1: 0xe000762d, - 0x119e4: 0xe0004ef5, 0x119e5: 0xe000944e, 0x119e7: 0xe000674e, - 0x119eb: 0xe000860c, - 0x119ec: 0xe00092d1, 0x119ef: 0xe0006ab3, - 0x119f0: 0xe000746b, 0x119f1: 0xe000863c, 0x119f2: 0xe000923d, - 0x119f7: 0xe00052d8, - 0x119f9: 0xe000639e, - 0x119fc: 0xe000787d, 0x119fd: 0xe00073a1, 0x119ff: 0xe000823d, - // Block 0x468, offset 0x11a00 - 0x11a01: 0xe00063a2, 0x11a02: 0xe00050bb, 0x11a03: 0xe00089b7, - 0x11a04: 0xe000601c, 0x11a05: 0xe0005884, 0x11a06: 0xe0009d16, - 0x11a0a: 0xe00063fe, 0x11a0b: 0xe0006e02, - 0x11a0c: 0xe0008b1b, 0x11a0f: 0xe0008d6b, - 0x11a12: 0xe0005bbc, - 0x11a17: 0xe0005016, - 0x11a20: 0xe00060df, 0x11a23: 0xe0005019, - 0x11a25: 0xe00084f8, 0x11a26: 0xe00052dc, - 0x11a28: 0xe0009005, 0x11a29: 0xe0008c96, - 0x11a2c: 0xe0007273, 0x11a2d: 0xe0007ffc, - 0x11a31: 0xe0009ff9, 0x11a32: 0xe0005486, - 0x11a34: 0xe0007f7c, - 0x11a3a: 0xe0007ddb, 0x11a3b: 0xe00061f6, - 0x11a3c: 0xe00061fa, 0x11a3d: 0xe000558b, 0x11a3f: 0xe0007c1a, - // Block 0x469, offset 0x11a40 - 0x11a40: 0xe00082c0, 0x11a43: 0xe0009932, - 0x11a46: 0xe000489c, 0x11a47: 0xe0007368, - 0x11a49: 0xe00063a6, 0x11a4a: 0xe000a3c8, - 0x11a4c: 0xe0009345, 0x11a4e: 0xe0005f8e, 0x11a4f: 0xe000a46b, - 0x11a50: 0xe0006812, 0x11a51: 0xe0004f55, 0x11a53: 0xe0007979, - 0x11a54: 0xe0006d9a, 0x11a55: 0xe000a831, - 0x11a5b: 0xe0004477, - 0x11a5e: 0xe00065be, 0x11a5f: 0xe0006f72, - 0x11a60: 0xe0007ae5, 0x11a61: 0xe000a283, - 0x11a64: 0xe00059ea, 0x11a65: 0xe000988c, 0x11a67: 0xe0005ea1, - 0x11a68: 0xe0008610, 0x11a6b: 0xe0004cbd, - 0x11a6d: 0xe0006fec, 0x11a6f: 0xe00073a4, - 0x11a70: 0xe0009f8e, 0x11a71: 0xe0008000, - 0x11a74: 0xe00060a9, 0x11a75: 0xe00052ab, 0x11a76: 0xe0009349, 0x11a77: 0xe0007cc0, - 0x11a7a: 0xe00065c2, 0x11a7b: 0xe00076c5, - // Block 0x46a, offset 0x11a80 - 0x11a81: 0xe0008c99, 0x11a82: 0xe00073a7, 0x11a83: 0xe000a5ea, - 0x11a84: 0xe000a5ee, - 0x11a88: 0xe0004bbb, 0x11a89: 0xe00090a3, 0x11a8b: 0xe00090a7, - 0x11a8c: 0xe0006cb6, 0x11a8e: 0xe000a4cb, 0x11a8f: 0xe0007601, - 0x11a99: 0xe0008efb, 0x11a9b: 0xe000a23b, - 0x11a9d: 0xe0008e48, 0x11a9e: 0xe000a8d2, 0x11a9f: 0xe0006f76, - 0x11aa1: 0xe0009e4b, 0x11aa2: 0xe0008a5f, - 0x11aa4: 0xe0007c1d, 0x11aa5: 0xe000a562, 0x11aa6: 0xe000a65f, 0x11aa7: 0xe000a3cb, - 0x11aa8: 0xe000746f, 0x11aa9: 0xe0005dd5, 0x11aab: 0xe0009aa6, - 0x11aac: 0xe00071e1, 0x11aae: 0xe000661a, 0x11aaf: 0xe0004667, - 0x11ab0: 0xe0006dc6, 0x11ab3: 0xe0006d9e, - 0x11ab4: 0xe00095fa, 0x11ab6: 0xe0008b1f, 0x11ab7: 0xe0004e29, - 0x11ab8: 0xe0008b23, 0x11aba: 0xe0009008, 0x11abb: 0xe0007689, - // Block 0x46b, offset 0x11ac0 - 0x11ac4: 0xe000a798, 0x11ac7: 0xe0004113, - 0x11ac8: 0xe000a770, 0x11ac9: 0xe000a7ce, 0x11acb: 0xe000621e, - 0x11acc: 0xe0004e6e, 0x11ace: 0xe0007ae9, - 0x11ad0: 0xe0008147, 0x11ad1: 0xe0006d30, - 0x11ad6: 0xe0005152, 0x11ad7: 0xe000766d, - 0x11ad8: 0xe000780b, - 0x11add: 0xe0005f92, 0x11ade: 0xe0004bbe, - 0x11ae0: 0xe00047be, 0x11ae2: 0xe000934d, 0x11ae3: 0xe00050be, - 0x11aeb: 0xe0008678, - 0x11aec: 0xe0006ee2, 0x11aee: 0xe0005fdd, - 0x11af1: 0xe00052af, 0x11af2: 0xe00086e0, 0x11af3: 0xe000a383, - 0x11af4: 0xe0009e6d, 0x11af5: 0xe000a035, - 0x11af8: 0xe0005b5a, 0x11af9: 0xe0006efa, 0x11afb: 0xe000466b, - 0x11afe: 0xe000558f, 0x11aff: 0xe000a8fc, - // Block 0x46c, offset 0x11b00 - 0x11b00: 0xe000793c, 0x11b01: 0xe00050c1, - 0x11b04: 0xe0007abd, 0x11b05: 0xe0007ac9, 0x11b06: 0xe00058ca, 0x11b07: 0xe0005368, - 0x11b09: 0xe000a6d4, - 0x11b13: 0xe0009e4e, - 0x11b16: 0xe00076f8, - 0x11b19: 0xe0006d33, 0x11b1a: 0xe000607a, 0x11b1b: 0xe000a774, - 0x11b1c: 0xe0007e54, 0x11b1d: 0xe0009e71, - 0x11b20: 0xe0004aa3, 0x11b23: 0xe0007a2d, - 0x11b26: 0xe000a8d5, - 0x11b28: 0xe0005ae0, 0x11b29: 0xe00051a2, 0x11b2a: 0xe0005704, - 0x11b2c: 0xe0007115, 0x11b2e: 0xe0007919, 0x11b2f: 0xe0009722, - 0x11b30: 0xe0007dd3, 0x11b32: 0xe0004868, 0x11b33: 0xe0007b81, - 0x11b34: 0xe000466f, 0x11b37: 0xe000424e, - 0x11b38: 0xe0006d36, 0x11b39: 0xe0008c9f, 0x11b3a: 0xe0008c9c, - 0x11b3c: 0xe0005dd9, 0x11b3e: 0xe0008fb7, 0x11b3f: 0xe0009629, - // Block 0x46d, offset 0x11b40 - 0x11b40: 0xe0009794, 0x11b43: 0xe000a662, - 0x11b45: 0xe00044fa, - 0x11b48: 0xe0008118, 0x11b49: 0xe00081d4, 0x11b4b: 0xe00068ba, - 0x11b4c: 0xe000632a, 0x11b4d: 0xe000666b, - 0x11b54: 0xe0006b56, 0x11b55: 0xe0009193, 0x11b57: 0xe00057cd, - 0x11b5b: 0xe0005e5d, - 0x11b5d: 0xe0008ca2, 0x11b5e: 0xe000501c, 0x11b5f: 0xe000501f, - 0x11b63: 0xe000561f, - 0x11b66: 0xe000606a, 0x11b67: 0xe0005ac4, - 0x11b68: 0xe000603a, 0x11b6a: 0xe0006191, 0x11b6b: 0xe0005e31, - 0x11b6c: 0xe00066bb, 0x11b6d: 0xe00092a9, 0x11b6e: 0xe000989c, - 0x11b71: 0xe0008e4b, 0x11b73: 0xe0009cea, - 0x11b74: 0xe0006266, 0x11b76: 0xe0009a55, - 0x11b7a: 0xe0004ded, - 0x11b7d: 0xe000a71f, - // Block 0x46e, offset 0x11b80 - 0x11b85: 0xe0007fd0, 0x11b86: 0xe00041de, - 0x11b89: 0xe0006be2, - 0x11b8e: 0xe0005c8f, 0x11b8f: 0xe000a190, - 0x11b90: 0xe000879b, 0x11b91: 0xe0009742, 0x11b93: 0xe0009e89, - 0x11b96: 0xe00086e4, - 0x11b9c: 0xe000564d, 0x11b9e: 0xe0005022, 0x11b9f: 0xe000708a, - 0x11ba0: 0xe00043a2, - 0x11baa: 0xe00096d7, - 0x11bac: 0xe00080e8, 0x11bad: 0xe000a0ed, 0x11baf: 0xe0006430, - 0x11bb0: 0xe00044ee, 0x11bb1: 0xe00055db, 0x11bb2: 0xe0004815, 0x11bb3: 0xe00060ac, - 0x11bb5: 0xe0008806, 0x11bb7: 0xe0009c6e, - 0x11bbb: 0xe0005277, - 0x11bbc: 0xe000884b, 0x11bbe: 0xe00070e2, 0x11bbf: 0xe0009cbe, - // Block 0x46f, offset 0x11bc0 - 0x11bc7: 0xe0006901, - 0x11bc9: 0xe0007ddf, 0x11bcb: 0xe00063aa, - 0x11bcc: 0xe0006846, 0x11bcf: 0xe000517a, - 0x11bd0: 0xe0006da2, 0x11bd3: 0xe0005650, - 0x11bd5: 0xe00099f0, 0x11bd7: 0xe0005d43, - 0x11bd8: 0xe0007bbd, 0x11bd9: 0xe0007d59, 0x11bda: 0xe0005ea4, - 0x11bdc: 0xe0004982, 0x11bdd: 0xe000900b, - 0x11bef: 0xe00047c1, - 0x11bf0: 0xe0009da6, 0x11bf2: 0xe00073e6, 0x11bf3: 0xe000900e, - 0x11bf6: 0xe0004116, 0x11bf7: 0xe0004119, - 0x11bf8: 0xe0004c18, - 0x11bfe: 0xe00073aa, - // Block 0x470, offset 0x11c00 - 0x11c01: 0xe0009a70, - 0x11c04: 0xe00065c6, 0x11c05: 0xe0005297, - 0x11c0a: 0xe0008de3, - 0x11c0f: 0xe0006472, - 0x11c10: 0xe0005fe0, 0x11c11: 0xe00042a6, 0x11c12: 0xe00099e0, 0x11c13: 0xe0007a69, - 0x11c14: 0xe00081d7, 0x11c17: 0xe00070fa, - 0x11c18: 0xe00085be, 0x11c19: 0xe000a0bd, 0x11c1a: 0xe00081da, - 0x11c1d: 0xe0009aaa, 0x11c1e: 0xe0008640, 0x11c1f: 0xe000518e, - 0x11c22: 0xe000884e, - 0x11c29: 0xe0004c1b, - 0x11c2c: 0xe00041e2, 0x11c2f: 0xe000411c, - 0x11c30: 0xe00051af, 0x11c31: 0xe0008e4e, 0x11c33: 0xe0005bbf, - 0x11c34: 0xe00073ad, 0x11c35: 0xe00093f3, 0x11c36: 0xe0006ab6, - 0x11c39: 0xe00073e9, 0x11c3b: 0xe0006ab9, - 0x11c3e: 0xe0008b27, - // Block 0x471, offset 0x11c40 - 0x11c43: 0xe000a689, - 0x11c52: 0xe0007277, 0x11c53: 0xe0008933, - 0x11c56: 0xe0006d39, 0x11c57: 0xe0005c26, - 0x11c5d: 0xe0004a7b, 0x11c5e: 0xe0004222, - 0x11c61: 0xe0004b73, 0x11c62: 0xe0006476, - 0x11c6a: 0xe0008e51, - 0x11c6e: 0xe000843f, 0x11c6f: 0xe0008004, - 0x11c71: 0xe0004954, 0x11c72: 0xe0004818, - 0x11c74: 0xe00089bb, - 0x11c78: 0xe000a17c, 0x11c79: 0xe0004ef9, 0x11c7b: 0xe000744b, - 0x11c7c: 0xe0004547, 0x11c7d: 0xe000879e, - // Block 0x472, offset 0x11c80 - 0x11c80: 0xe00044f2, 0x11c81: 0xe000a0f1, 0x11c82: 0xe0004743, 0x11c83: 0xe00054ce, - 0x11c84: 0xe0004ac7, 0x11c86: 0xe0004acb, - 0x11c88: 0xe0007605, 0x11c89: 0xe000761d, - 0x11c8e: 0xe0009153, - 0x11c90: 0xe00055df, 0x11c91: 0xe0006c6e, 0x11c93: 0xe000a566, - 0x11c94: 0xe0005119, - 0x11cad: 0xe00090ab, 0x11caf: 0xe0008bcf, - 0x11cb4: 0xe00067ab, 0x11cb6: 0xe0009bf8, 0x11cb7: 0xe00041b6, - 0x11cbe: 0xe0004d55, 0x11cbf: 0xe00041e6, - // Block 0x473, offset 0x11cc0 - 0x11cc1: 0xe0005833, 0x11cc3: 0xe0008bd3, - 0x11cc5: 0xe0005ea7, 0x11cc6: 0xe0006402, - 0x11ccf: 0xe000486c, - 0x11cd3: 0xe00087a1, - 0x11cd4: 0xe000994c, 0x11cd7: 0xe0004673, - 0x11cdb: 0xe0005145, - 0x11cdd: 0xe0008ca5, 0x11cdf: 0xe000a6d7, - 0x11ce0: 0xe00058ae, 0x11ce1: 0xe0007d77, 0x11ce2: 0xe0009674, 0x11ce3: 0xe000750f, - 0x11ce7: 0xe0007c20, - 0x11ce8: 0xe0005c92, - 0x11ced: 0xe0006abc, 0x11cef: 0xe0008c1b, - 0x11cf0: 0xe0004746, 0x11cf1: 0xe00048a0, 0x11cf3: 0xe0006fef, - 0x11cf5: 0xe00064e2, 0x11cf6: 0xe0006194, - // Block 0x474, offset 0x11d00 - 0x11d04: 0xe0005028, 0x11d05: 0xe00065ca, - 0x11d09: 0xe0005f3e, 0x11d0a: 0xe00050c4, 0x11d0b: 0xe0005025, - 0x11d0c: 0xe00093e9, 0x11d0d: 0xe00048a4, - 0x11d10: 0xe0006973, 0x11d12: 0xe00066db, - 0x11d15: 0xe0008dab, 0x11d16: 0xe0008bd7, 0x11d17: 0xe0008ca8, - 0x11d18: 0xe0004ec9, 0x11d1a: 0xe00068be, - 0x11d1f: 0xe00055e3, - 0x11d20: 0xe00053f8, 0x11d23: 0xe0009647, - 0x11d27: 0xe0008658, - 0x11d28: 0xe0004749, - 0x11d2c: 0xe0004dc9, 0x11d2e: 0xe0006be6, - 0x11d32: 0xe0006d3c, - 0x11d39: 0xe00054d1, 0x11d3a: 0xe00049fb, 0x11d3b: 0xe000684a, - 0x11d3c: 0xe000684e, - // Block 0x475, offset 0x11d40 - 0x11d40: 0xe0007d7b, 0x11d41: 0xe00049d7, - 0x11d44: 0xe0008ac3, 0x11d45: 0xe00083a9, - 0x11d4b: 0xe000585f, - 0x11d4d: 0xe000741b, 0x11d4e: 0xe00097b8, - 0x11d51: 0xe0006976, 0x11d52: 0xe0009677, - 0x11d59: 0xe0009399, - 0x11d67: 0xe0005f96, - 0x11d70: 0xe00077a4, - 0x11d74: 0xe0005314, 0x11d76: 0xe0008de7, - 0x11d79: 0xe0009a14, - 0x11d7d: 0xe00079c1, 0x11d7f: 0xe0009890, - // Block 0x476, offset 0x11d80 - 0x11d82: 0xe0006b28, - 0x11d8a: 0xe000780f, - 0x11d8f: 0xe0004e71, - 0x11d93: 0xe0009eda, - 0x11d94: 0xe0006eaa, 0x11d95: 0xe0009a58, 0x11d97: 0xe00044b6, - 0x11d99: 0xe00060e2, 0x11d9a: 0xe000967a, - 0x11d9d: 0xe000592e, 0x11d9e: 0xe0005c5e, - 0x11da0: 0xe000517e, 0x11da1: 0xe00081dd, 0x11da2: 0xe00081e0, 0x11da3: 0xe0006197, - 0x11da5: 0xe00080ec, - 0x11da8: 0xe0008b2b, 0x11daa: 0xe0008ac7, 0x11dab: 0xe0008f9b, - 0x11dac: 0xe0004272, 0x11dad: 0xe000792d, 0x11dae: 0xe0008809, 0x11daf: 0xe000727b, - 0x11db3: 0xe0005ec2, - 0x11db5: 0xe0004ecd, 0x11db7: 0xe000a139, - 0x11db8: 0xe00097bb, 0x11db9: 0xe0007aed, - // Block 0x477, offset 0x11dc0 - 0x11dce: 0xe000415e, - 0x11dd1: 0xe00067ae, - 0x11dd4: 0xe00057e9, 0x11dd5: 0xe0007ef8, - 0x11dd8: 0xe0004cc0, 0x11ddb: 0xe00090af, - 0x11ddc: 0xe00063ae, 0x11ddf: 0xe00087c8, - 0x11de4: 0xe00044fe, 0x11de5: 0xe000a5f2, 0x11de6: 0xe0004226, 0x11de7: 0xe0006904, - 0x11ded: 0xe0006b2b, 0x11dee: 0xe0007af1, - 0x11df0: 0xe0009053, 0x11df1: 0xe000979d, - 0x11df4: 0xe0005bc2, 0x11df7: 0xe0004bc1, - 0x11dfb: 0xe0009b56, - 0x11dfc: 0xe000a0c1, 0x11dfe: 0xe00048fc, - // Block 0x478, offset 0x11e00 - 0x11e00: 0xe000481b, 0x11e01: 0xe00047c4, 0x11e03: 0xe00062d6, - 0x11e07: 0xe00089bf, - 0x11e0a: 0xe0006b5a, 0x11e0b: 0xe0004c1e, - 0x11e0c: 0xe0009c1b, 0x11e0d: 0xe0009351, 0x11e0e: 0xe0009210, - 0x11e10: 0xe0004b19, 0x11e13: 0xe0004958, - 0x11e25: 0xe000a39e, 0x11e26: 0xe0007f44, 0x11e27: 0xe00092fd, - 0x11e28: 0xe00049cb, 0x11e29: 0xe0004414, 0x11e2a: 0xe00043ed, - 0x11e2d: 0xe0006cee, - 0x11e32: 0xe0004880, - 0x11e39: 0xe000481e, 0x11e3b: 0xe0004e41, - 0x11e3d: 0xe0008cab, 0x11e3f: 0xe0004efd, - // Block 0x479, offset 0x11e40 - 0x11e40: 0xe00088db, 0x11e42: 0xe00075ad, - 0x11e45: 0xe0008deb, - 0x11e4a: 0xe000648e, 0x11e4b: 0xe0009c10, - 0x11e51: 0xe0005837, 0x11e52: 0xe000624a, 0x11e53: 0xe0005b86, - 0x11e54: 0xe0007055, 0x11e57: 0xe000880c, - 0x11e59: 0xe0009e8c, 0x11e5b: 0xe0004e74, - 0x11e5e: 0xe00097be, 0x11e5f: 0xe00086e8, - 0x11e61: 0xe0005fe3, 0x11e63: 0xe0007813, - 0x11e6b: 0xe00045a3, - 0x11e75: 0xe000967d, - 0x11e78: 0xe000626a, 0x11e79: 0xe0007157, 0x11e7a: 0xe000a4e8, 0x11e7b: 0xe0004e11, - 0x11e7d: 0xe0008eff, - // Block 0x47a, offset 0x11e80 - 0x11e83: 0xe00064d2, - 0x11e84: 0xe00042aa, 0x11e87: 0xe0009914, - 0x11e88: 0xe0007e57, 0x11e8a: 0xe0005be3, 0x11e8b: 0xe0004b76, - 0x11e90: 0xe0009aca, 0x11e92: 0xe0008020, 0x11e93: 0xe000727f, - 0x11e98: 0xe0004eb5, 0x11e99: 0xe00056a6, 0x11e9a: 0xe0007257, - 0x11e9f: 0xe000502b, - 0x11ea1: 0xe0006c72, 0x11ea2: 0xe0009a73, - 0x11ea6: 0xe0005623, - 0x11eab: 0xe000a6b1, - 0x11eb5: 0xe0006ba6, - 0x11ebf: 0xe00043a6, - // Block 0x47b, offset 0x11ec0 - 0x11ec0: 0xe00052e0, - 0x11ec4: 0xe000454b, - 0x11ec9: 0xe0008b2f, - 0x11ecd: 0xe00078ad, 0x11ece: 0xe0004f59, - 0x11ed0: 0xe00095a6, - 0x11ed4: 0xe000541c, 0x11ed7: 0xe0006522, - 0x11edc: 0xe000a665, 0x11edd: 0xe0008fa7, 0x11edf: 0xe0004161, - 0x11ee0: 0xe00046f3, 0x11ee2: 0xe000450e, 0x11ee3: 0xe00086ec, - 0x11eee: 0xe000552e, - 0x11ef3: 0xe00069e9, - 0x11ef6: 0xe0007aa1, - 0x11efb: 0xe000a069, - 0x11efc: 0xe0008318, 0x11eff: 0xe0007a9d, - // Block 0x47c, offset 0x11f00 - 0x11f02: 0xe00054d4, 0x11f03: 0xe0004df0, - 0x11f13: 0xe0005a2c, - 0x11f1a: 0xe0005887, 0x11f1b: 0xe0008f93, - 0x11f1c: 0xe0004821, 0x11f1d: 0xe0005577, 0x11f1e: 0xe0007a31, 0x11f1f: 0xe00058e6, - 0x11f2a: 0xe00058ea, - 0x11f2c: 0xe00099cc, - 0x11f36: 0xe000a1db, - 0x11f3b: 0xe0007772, - 0x11f3c: 0xe00095aa, - // Block 0x47d, offset 0x11f40 - 0x11f42: 0xe00062a2, 0x11f43: 0xe0009301, - 0x11f44: 0xe0005745, - 0x11f4a: 0xe0004db5, - 0x11f4c: 0xe00086f0, - 0x11f51: 0xe0009291, 0x11f52: 0xe0005749, - 0x11f56: 0xe0005795, - 0x11f5e: 0xe00059ee, - 0x11f60: 0xe000a87d, 0x11f61: 0xe00091ec, 0x11f63: 0xe000a835, - 0x11f6c: 0xe000a160, - 0x11f72: 0xe0007eb8, - 0x11f77: 0xe000a8ff, - 0x11f78: 0xe0007722, 0x11f79: 0xe00083d9, 0x11f7a: 0xe000502e, 0x11f7b: 0xe000a78c, - 0x11f7d: 0xe000a881, 0x11f7e: 0xe00049ff, 0x11f7f: 0xe00042ee, - // Block 0x47e, offset 0x11f80 - 0x11f83: 0xe0006c1e, - 0x11f86: 0xe000a885, 0x11f87: 0xe000a1f3, - 0x11f89: 0xe0004613, - 0x11f8c: 0xe000411f, 0x11f8e: 0xe0009afe, - 0x11f90: 0xe0004c21, - 0x11f94: 0xe000a1d4, - 0x11f99: 0xe000a8a1, 0x11f9a: 0xe0006e7a, 0x11f9b: 0xe00042f2, - 0x11f9f: 0xe000794c, - 0x11fa0: 0xe000955e, 0x11fa1: 0xe000a55e, 0x11fa2: 0xe0009011, 0x11fa3: 0xe0008b33, - 0x11fa4: 0xe00091ef, 0x11fa5: 0xe000661d, 0x11fa6: 0xe00060e5, 0x11fa7: 0xe00050c7, - 0x11faa: 0xe0007dfd, - 0x11fb2: 0xe0006fb0, - 0x11fb7: 0xe00058ce, - 0x11fb8: 0xe0004e2c, 0x11fbb: 0xe0006abf, - 0x11fbf: 0xe000605e, - // Block 0x47f, offset 0x11fc0 - 0x11fc0: 0xe0007e9c, 0x11fc2: 0xe0008d23, 0x11fc3: 0xe00076c9, - 0x11fc4: 0xe00090b3, 0x11fc6: 0xe0009b95, - 0x11fc9: 0xe0007283, 0x11fca: 0xe000715a, - 0x11fcd: 0xe0009eb6, - 0x11fd1: 0xe0004fd9, - 0x11fd6: 0xe000741f, - 0x11fd8: 0xe000865c, - 0x11fde: 0xe0008024, - 0x11fe2: 0xe000964a, - 0x11fe4: 0xe0006cba, - 0x11feb: 0xe0009b1a, - 0x11fed: 0xe00043aa, 0x11fee: 0xe0005972, 0x11fef: 0xe00069ed, - 0x11ff2: 0xe0006efe, 0x11ff3: 0xe00071e4, - 0x11ff5: 0xe00052e4, 0x11ff7: 0xe00082f4, - 0x11ffa: 0xe0006bd2, - 0x11ffc: 0xe000418a, 0x11ffd: 0xe000a6f5, 0x11fff: 0xe0008937, - // Block 0x480, offset 0x12000 - 0x12001: 0xe000a7b6, - 0x12004: 0xe0004563, 0x12005: 0xe00083ac, 0x12006: 0xe0004c24, - 0x1200b: 0xe00060e8, - 0x1200d: 0xe0005fe6, 0x1200f: 0xe0005eaa, - 0x12012: 0xe000554f, 0x12013: 0xe000828c, - 0x12014: 0xe0006907, 0x12016: 0xe000690a, 0x12017: 0xe000690d, - 0x12018: 0xe0006910, 0x1201a: 0xe0009305, 0x1201b: 0xe0005fe9, - 0x1202b: 0xe000a3ce, - 0x1202c: 0xe0004c27, 0x1202f: 0xe00053b0, - 0x12033: 0xe0009917, - 0x1203f: 0xe0006bc6, - // Block 0x481, offset 0x12040 - 0x12045: 0xe000939d, - 0x12048: 0xe000893b, - 0x1204f: 0xe0007537, - 0x12050: 0xe0008851, 0x12051: 0xe00061fe, 0x12053: 0xe0005efe, - 0x1205b: 0xe0006852, - 0x12063: 0xe0005031, - 0x12064: 0xe00084d0, - 0x12073: 0xe0007cc4, - 0x12074: 0xe000715d, 0x12077: 0xe0006a49, - 0x12078: 0xe0007af5, - 0x1207e: 0xe00064e6, 0x1207f: 0xe0004e14, - // Block 0x482, offset 0x12080 - 0x12080: 0xe0008b37, 0x12081: 0xe0008f9f, 0x12082: 0xe0004c2a, 0x12083: 0xe0009cee, - 0x1208b: 0xe0008644, - 0x1208e: 0xe00064ea, 0x1208f: 0xe0005489, - 0x12090: 0xe0006da6, 0x12092: 0xe0005e81, - 0x12094: 0xe000a86d, 0x12095: 0xe0006b7a, 0x12097: 0xe0009ffd, - 0x12099: 0xe0007c62, 0x1209a: 0xe0007c23, 0x1209b: 0xe00074bb, - 0x1209c: 0xe0006b2e, 0x1209d: 0xe000794f, 0x1209e: 0xe000a4ab, 0x1209f: 0xe0004352, - 0x120a0: 0xe0009014, - 0x120a8: 0xe00048f0, 0x120aa: 0xe0007de3, - 0x120ad: 0xe0007b84, - 0x120b0: 0xe0009b98, 0x120b2: 0xe0004fa1, - 0x120b4: 0xe0009cda, 0x120b6: 0xe000613b, - 0x120ba: 0xe00045cb, - 0x120bd: 0xe0005034, 0x120be: 0xe0006816, - // Block 0x483, offset 0x120c0 - 0x120c1: 0xe00074f7, 0x120c2: 0xe0005037, 0x120c3: 0xe0007c90, - 0x120c4: 0xe0008050, 0x120c5: 0xe00080a8, 0x120c6: 0xe000a0f5, 0x120c7: 0xe00079c5, - 0x120c8: 0xe00099f4, 0x120c9: 0xe0009a18, - 0x120cc: 0xe0005593, 0x120cd: 0xe000a437, - 0x120d0: 0xe000603e, 0x120d2: 0xe0006062, 0x120d3: 0xe00053cc, - 0x120d4: 0xe0005f42, 0x120d5: 0xe0006177, 0x120d6: 0xe00098b0, - 0x120d8: 0xe0006979, 0x120d9: 0xe0006ac2, 0x120da: 0xe0009017, 0x120db: 0xe0009cfe, - 0x120eb: 0xe0005e35, - 0x120ec: 0xe0005ec5, 0x120ee: 0xe000880f, - 0x120f0: 0xe0009ace, 0x120f1: 0xe0009a76, 0x120f3: 0xe0009f91, - 0x120f8: 0xe0006913, 0x120f9: 0xe00081e3, 0x120fb: 0xe000994f, - 0x120fc: 0xe0006ff2, 0x120fd: 0xe00047c7, 0x120fe: 0xe000957a, 0x120ff: 0xe00079c9, - // Block 0x484, offset 0x12100 - 0x12101: 0xe000a5f6, 0x12102: 0xe000a327, - 0x12104: 0xe0006eae, 0x12105: 0xe00071e7, 0x12106: 0xe000850c, - 0x12109: 0xe00094a6, 0x1210a: 0xe000626e, - 0x1210c: 0xe0009f27, - 0x12110: 0xe0005c46, 0x12111: 0xe0008240, 0x12113: 0xe000a4af, - 0x12114: 0xe00042f6, 0x12115: 0xe000650a, 0x12117: 0xe0006ac5, - 0x12119: 0xe0009dba, 0x1211a: 0xe00085c1, 0x1211b: 0xe00064ee, - 0x1211c: 0xe0009056, 0x1211d: 0xe0007058, - 0x12120: 0xe00059f2, 0x12121: 0xe0009e18, 0x12122: 0xe0009c71, 0x12123: 0xe0008370, - 0x12125: 0xe000528e, - 0x12128: 0xe0008e54, 0x1212b: 0xe000a23f, - 0x1212e: 0xe00062da, 0x1212f: 0xe0006202, - 0x12130: 0xe0009b9b, 0x12131: 0xe00076dd, 0x12133: 0xe0007af9, - // Block 0x485, offset 0x12140 - 0x12144: 0xe000a68c, 0x12147: 0xe00084d4, - 0x1214a: 0xe00094ea, 0x1214b: 0xe0007817, - 0x1214c: 0xe0005952, - 0x12151: 0xe0006620, 0x12152: 0xe0006fc5, - 0x12157: 0xe0006fb3, - 0x12159: 0xe0007160, 0x1215b: 0xe0005719, - 0x1215e: 0xe00055e7, 0x1215f: 0xe0008442, - 0x12165: 0xe00090b7, 0x12167: 0xe00081e6, - 0x12169: 0xe0006eb2, 0x1216a: 0xe000a4b3, 0x1216b: 0xe000a21f, - 0x1216c: 0xe00070a6, 0x1216e: 0xe0005531, - 0x12172: 0xe0008e57, - 0x12175: 0xe0007287, 0x12176: 0xe000a81d, - 0x12178: 0xe0004aa7, 0x12179: 0xe00080ac, 0x1217a: 0xe0005fbe, 0x1217b: 0xe000a5b6, - 0x1217c: 0xe0007d5c, 0x1217d: 0xe000a895, 0x1217e: 0xe0009c74, - // Block 0x486, offset 0x12180 - 0x12181: 0xe0005bc5, - 0x12199: 0xe0008a47, 0x1219a: 0xe0008f03, - 0x1219c: 0xe00069f1, - 0x121a1: 0xe000636a, 0x121a3: 0xe0007d7f, - 0x121a4: 0xe0004b48, 0x121a5: 0xe0008380, 0x121a6: 0xe0009e1b, 0x121a7: 0xe0007b51, - 0x121a9: 0xe000a3d1, 0x121aa: 0xe00057d1, - 0x121ac: 0xe0005c95, 0x121ae: 0xe0006751, - 0x121b4: 0xe0007ebc, 0x121b7: 0xe000a13c, - 0x121b8: 0xe00099f8, 0x121b9: 0xe000a2db, - 0x121bf: 0xe0009d01, - // Block 0x487, offset 0x121c0 - 0x121c2: 0xe0005534, - 0x121c5: 0xe0007a55, 0x121c7: 0xe0004677, - 0x121c8: 0xe0006ff5, 0x121c9: 0xe0006f36, - 0x121cc: 0xe0007efc, 0x121cd: 0xe000a6da, 0x121ce: 0xe00079cd, - 0x121d1: 0xe000708e, 0x121d3: 0xe00079d1, - 0x121d4: 0xe000868c, 0x121d5: 0xe000962c, 0x121d6: 0xe0005cd1, - 0x121ea: 0xe00067b1, 0x121eb: 0xe0004a2f, - 0x121ef: 0xe00076fb, - 0x121f2: 0xe0007752, - 0x121f4: 0xe0007dcb, 0x121f5: 0xe000a06d, 0x121f7: 0xe0005627, - 0x121f8: 0xe000a737, - 0x121fc: 0xe0005863, 0x121ff: 0xe0009ad2, - // Block 0x488, offset 0x12200 - 0x12200: 0xe0008b3b, 0x12203: 0xe0004db9, - 0x12204: 0xe0009952, 0x12205: 0xe0006daa, 0x12206: 0xe000a6dd, 0x12207: 0xe000503a, - 0x12208: 0xe0004d75, 0x1220b: 0xe0005d47, - 0x1220f: 0xe000a3d4, - 0x12211: 0xe000722b, 0x12212: 0xe0009423, - 0x12216: 0xe0005255, - 0x12218: 0xe00054d7, 0x12219: 0xe0008daf, 0x1221a: 0xe0005b89, - 0x1221d: 0xe000697c, 0x1221e: 0xe00070e6, - 0x12220: 0xe000697f, 0x12221: 0xe000536c, 0x12222: 0xe0007999, - 0x12224: 0xe000789b, 0x12225: 0xe0005aa4, 0x12226: 0xe00042fa, - 0x12228: 0xe0008b3f, 0x1222a: 0xe0005c0e, 0x1222b: 0xe0008344, - 0x1222c: 0xe000731a, 0x1222e: 0xe000a668, - 0x12231: 0xe00074fb, 0x12233: 0xe000728b, - 0x12235: 0xe00079d5, 0x12236: 0xe000580d, 0x12237: 0xe000a46f, - 0x12238: 0xe00095fe, 0x12239: 0xe000790d, 0x1223a: 0xe00094aa, 0x1223b: 0xe000957e, - 0x1223c: 0xe00060be, - // Block 0x489, offset 0x12240 - 0x12257: 0xe0006bea, - 0x12259: 0xe000a56a, 0x1225a: 0xe0008812, 0x1225b: 0xe00042ae, - 0x1225d: 0xe0009c42, 0x1225f: 0xe0008b43, - 0x12260: 0xe000445c, 0x12261: 0xe00054da, 0x12263: 0xe0006ac8, - 0x12264: 0xe0006346, 0x12265: 0xe00075b1, 0x12266: 0xe0007d38, - 0x12268: 0xe0007e1e, 0x1226b: 0xe0006eb6, - 0x1226c: 0xe000992a, 0x1226d: 0xe000814a, 0x1226f: 0xe000a0f9, - 0x12272: 0xe0006e06, - 0x12274: 0xe0004252, 0x12276: 0xe0007afd, 0x12277: 0xe0007a35, - 0x12278: 0xe00081e9, 0x1227a: 0xe00060af, - 0x1227c: 0xe000619a, 0x1227d: 0xe00087a4, 0x1227e: 0xe000a473, - // Block 0x48a, offset 0x12280 - 0x12283: 0xe0006433, - 0x12284: 0xe000619d, 0x12285: 0xe0005932, - 0x1228a: 0xe0008e5a, - 0x1228d: 0xe00052e8, 0x1228e: 0xe0005f62, - 0x12291: 0xe0006d78, 0x12293: 0xe0006856, - 0x12294: 0xe00089c3, 0x12296: 0xe000a3d7, - 0x12298: 0xe0006c76, 0x1229b: 0xe0005370, - 0x1229c: 0xe0007423, 0x1229e: 0xe0008b47, 0x1229f: 0xe000a5fa, - 0x122a3: 0xe0006222, - 0x122a7: 0xe0007f00, - 0x122ab: 0xe00097c1, - 0x122ae: 0xe00084a0, 0x122af: 0xe0009b6e, - 0x122b2: 0xe00080b0, 0x122b3: 0xe0005182, - 0x122ba: 0xe0006623, - // Block 0x48b, offset 0x122c0 - 0x122cf: 0xe0005420, - 0x122d0: 0xe00080b4, - 0x122d5: 0xe000607e, 0x122d6: 0xe0008f07, - 0x122d8: 0xe000a0c5, - 0x122dc: 0xe0005bc8, 0x122dd: 0xe0004c2d, 0x122df: 0xe0005f9a, - 0x122e2: 0xe00084fc, - 0x122e5: 0xe0006754, 0x122e7: 0xe0005c2e, - 0x122ea: 0xe000474c, 0x122eb: 0xe0007ca0, - 0x122ef: 0xe0006ff8, - 0x122f1: 0xe00090bb, 0x122f2: 0xe00071ea, - 0x122f5: 0xe000831c, 0x122f6: 0xe0007f04, 0x122f7: 0xe000a487, - 0x122fa: 0xe00052a7, - 0x122fd: 0xe0007ecc, - // Block 0x48c, offset 0x12300 - 0x12302: 0xe00063b2, 0x12303: 0xe0007d1c, - 0x12304: 0xe0009355, 0x12305: 0xe0005f72, - 0x12308: 0xe000a43a, 0x12309: 0xe000a5fe, 0x1230b: 0xe0008582, - 0x1230c: 0xe0009452, 0x1230e: 0xe000a32b, - 0x12311: 0xe000a5ba, 0x12313: 0xe00087a7, - 0x12314: 0xe00054dd, 0x12315: 0xe00056ce, - 0x12319: 0xe000a68f, - 0x1232c: 0xe000a43d, 0x1232d: 0xe0009f4b, 0x1232f: 0xe000962f, - 0x12334: 0xe0008893, 0x12335: 0xe000624e, 0x12337: 0xe0005a59, - 0x12338: 0xe000a3da, - 0x1233e: 0xe00048a8, 0x1233f: 0xe0005ddd, - // Block 0x48d, offset 0x12340 - 0x12341: 0xe0007880, 0x12342: 0xe0009e8f, - 0x12344: 0xe0007725, 0x12346: 0xe00099e4, - 0x12349: 0xe0005aa8, - 0x1234c: 0xe0004f35, 0x1234f: 0xe0005b8c, - 0x12351: 0xe00043f0, 0x12353: 0xe0005cd4, - 0x12354: 0xe00079d9, 0x12355: 0xe0008cae, - 0x12359: 0xe0005318, 0x1235a: 0xe0004cc3, - 0x12360: 0xe0005da1, 0x12362: 0xe000a001, 0x12363: 0xe0005906, - 0x1236a: 0xe00083dc, 0x1236b: 0xe0005de1, - 0x1236c: 0xe000901a, 0x1236d: 0xe0005e85, - 0x12370: 0xe00068d2, 0x12371: 0xe0007163, 0x12372: 0xe0009359, 0x12373: 0xe000875c, - 0x12378: 0xe0008a73, - 0x1237c: 0xe00097a0, 0x1237e: 0xe000784f, 0x1237f: 0xe00086f4, - // Block 0x48e, offset 0x12380 - 0x12381: 0xe0007b01, - 0x1238f: 0xe00082cc, - 0x12391: 0xe000634a, - 0x12394: 0xe00045cf, 0x12397: 0xe000919f, - 0x12398: 0xe00062de, 0x12399: 0xe0004e77, 0x1239a: 0xe000722f, 0x1239b: 0xe000867c, - 0x1239c: 0xe0008690, 0x1239d: 0xe000a8a5, 0x1239e: 0xe0005a2f, 0x1239f: 0xe0006dae, - 0x123a1: 0xe00055ab, 0x123a2: 0xe000a602, - 0x123a4: 0xe00082a8, 0x123a6: 0xe0005b5d, - 0x123ad: 0xe0005374, 0x123ae: 0xe0008cb1, 0x123af: 0xe0007513, - 0x123b0: 0xe0004df3, - 0x123b4: 0xe0008854, - 0x123b8: 0xe0006baa, 0x123ba: 0xe0008660, - 0x123bc: 0xe00055eb, 0x123bd: 0xe0006626, 0x123be: 0xe0005cf3, - // Block 0x48f, offset 0x123c0 - 0x123c1: 0xe0006c0a, 0x123c2: 0xe00091c7, - 0x123c4: 0xe00091c3, 0x123c6: 0xe0007e9f, - 0x123c8: 0xe0009536, 0x123c9: 0xe00042fe, 0x123cb: 0xe000a6b9, - 0x123cc: 0xe00073ec, 0x123cd: 0xe0008e5d, 0x123ce: 0xe0009d26, - 0x123d0: 0xe0008028, 0x123d2: 0xe000a4cf, - 0x123d4: 0xe000a3dd, 0x123d7: 0xe00041ea, - 0x123d8: 0xe0006bae, - 0x123df: 0xe0005c56, - 0x123e1: 0xe0008d26, 0x123e3: 0xe000a005, - 0x123e4: 0xe0009bc9, 0x123e7: 0xe0005a11, - 0x123e8: 0xe0006d7b, - 0x123ee: 0xe000a66b, 0x123ef: 0xe0009245, - 0x123f1: 0xe000893f, 0x123f3: 0xe0007c26, - 0x123f6: 0xe00089c7, - 0x123f9: 0xe0005378, - 0x123fe: 0xe0005334, - // Block 0x490, offset 0x12400 - 0x12400: 0xe000454f, 0x12401: 0xe0009aae, 0x12402: 0xe0005976, 0x12403: 0xe0005227, - 0x12406: 0xe000685a, 0x12407: 0xe0006cf2, - 0x12409: 0xe00071ed, 0x1240a: 0xe0007b87, - 0x12415: 0xe0007330, - 0x12418: 0xe00051ff, 0x1241a: 0xe0007b05, 0x1241b: 0xe0006082, - 0x1241e: 0xe0006982, 0x1241f: 0xe0008c1e, - 0x12420: 0xe000a3e0, 0x12421: 0xe00081ec, - 0x12424: 0xe00054e0, - 0x12429: 0xe000a3e3, 0x1242b: 0xe0005799, - 0x1242c: 0xe0008f0b, 0x1242e: 0xe00066a3, 0x1242f: 0xe0009ab2, - 0x12431: 0xe00069f5, 0x12433: 0xe0008694, - 0x12434: 0xe0007b55, - 0x1243a: 0xe00094ee, - 0x1243e: 0xe000588a, - // Block 0x491, offset 0x12440 - 0x12441: 0xe000781b, - 0x12445: 0xe000a32f, 0x12446: 0xe0005553, 0x12447: 0xe0007def, - 0x12449: 0xe0006acb, 0x1244b: 0xe00074ff, - 0x1244f: 0xe0005bcb, - 0x12451: 0xe0009e75, 0x12452: 0xe0006cf6, 0x12453: 0xe00091cb, - 0x12455: 0xe00069f9, - 0x12458: 0xe0005a32, 0x1245a: 0xe000a009, 0x1245b: 0xe0007b09, - 0x1245c: 0xe00082d8, 0x1245d: 0xe00058d2, 0x1245e: 0xe0008b4b, 0x1245f: 0xe0006ffb, - 0x12463: 0xe000a13f, - 0x12466: 0xe0008857, 0x12467: 0xe0005ac8, - 0x12468: 0xe0005af7, - 0x1246f: 0xe0007b0d, - 0x12470: 0xe00061cd, 0x12472: 0xe0005982, - 0x12477: 0xe0008454, - 0x12478: 0xe00095ae, - 0x1247c: 0xe0007853, 0x1247e: 0xe000574d, - // Block 0x492, offset 0x12480 - 0x12484: 0xe0006f46, - 0x1248c: 0xe0004a03, 0x1248e: 0xe0007aa5, - 0x12490: 0xe000a333, 0x12491: 0xe0007109, 0x12493: 0xe0005769, - 0x12498: 0xe0009b02, - 0x1249d: 0xe000a3e6, 0x1249e: 0xe0009c98, - 0x124a3: 0xe0005de5, - 0x124a9: 0xe0007aa9, 0x124ab: 0xe000a4eb, - 0x124af: 0xe0008bdb, - 0x124b0: 0xe000a66e, - 0x124b8: 0xe0004c30, - 0x124bc: 0xe0008614, 0x124bd: 0xe00087aa, 0x124be: 0xe00087cb, - // Block 0x493, offset 0x124c0 - 0x124c1: 0xe00050ca, - 0x124c5: 0xe000467b, 0x124c6: 0xe000616b, - 0x124ca: 0xe00098f6, - 0x124ce: 0xe0007a6d, - 0x124d2: 0xe0009680, - 0x124d5: 0xe000a115, - 0x124d8: 0xe000a839, 0x124d9: 0xe0008585, 0x124da: 0xe0004aab, - 0x124e1: 0xe0008b4f, - 0x124e4: 0xe0006ffe, - 0x124eb: 0xe000a243, - 0x124ec: 0xe000445f, 0x124ed: 0xe0009b06, 0x124ee: 0xe0009e51, 0x124ef: 0xe000a337, - 0x124f0: 0xe0009e54, 0x124f3: 0xe00065ce, - 0x124f7: 0xe0008e60, - 0x124f8: 0xe0008618, 0x124f9: 0xe0008a77, - // Block 0x494, offset 0x12500 - 0x12508: 0xe0005956, 0x1250a: 0xe0007857, 0x1250b: 0xe000a7e9, - 0x1250f: 0xe0007c29, - 0x12513: 0xe0004776, - 0x12518: 0xe000a4b7, 0x12519: 0xe000571d, - 0x1251c: 0xe000a7a4, 0x1251d: 0xe0008fbf, 0x1251f: 0xe00079dd, - 0x12531: 0xe000467f, - 0x12539: 0xe0009d2a, - 0x1253d: 0xe00066df, - // Block 0x495, offset 0x12540 - 0x12544: 0xe000a75c, - 0x12549: 0xe00078c5, - 0x1254c: 0xe0008f0f, - 0x12559: 0xe0006436, 0x1255a: 0xe000681a, - 0x1255c: 0xe000a48b, 0x1255e: 0xe0005597, - 0x12560: 0xe000731d, 0x12561: 0xe00060eb, - 0x12566: 0xe0009683, - 0x1256d: 0xe00046fb, 0x1256e: 0xe000a84d, 0x1256f: 0xe0008648, - 0x12570: 0xe0007a71, 0x12571: 0xe000a223, - 0x12576: 0xe00079e1, - // Block 0x496, offset 0x12580 - 0x12586: 0xe0009fb5, 0x12587: 0xe000a7d1, - 0x12589: 0xe000590a, 0x1258a: 0xe000a79c, - 0x1258c: 0xe000a606, 0x1258e: 0xe0008943, - 0x12590: 0xe0007b11, 0x12592: 0xe000817d, - 0x12596: 0xe0005156, 0x12597: 0xe0005162, - 0x12599: 0xe00079e5, - 0x1259c: 0xe0008008, 0x1259e: 0xe0006bd6, - 0x125a2: 0xe00046f7, - 0x125a4: 0xe0005ead, 0x125a5: 0xe000a56e, 0x125a6: 0xe000a722, 0x125a7: 0xe0008cb4, - 0x125a8: 0xe0007e21, 0x125a9: 0xe0006492, - 0x125ac: 0xe000781f, 0x125ae: 0xe0008588, - 0x125bd: 0xe0006e0a, - // Block 0x497, offset 0x125c0 - 0x125c0: 0xe0007acd, - 0x125c4: 0xe0007427, 0x125c5: 0xe0007cc8, 0x125c7: 0xe000a6f8, - 0x125c9: 0xe000802c, 0x125ca: 0xe0008070, - 0x125cf: 0xe000a760, - 0x125d2: 0xe000a33b, - 0x125d4: 0xe0007f08, - 0x125d9: 0xe000a8d8, 0x125db: 0xe0009eb9, - 0x125df: 0xe0007233, - 0x125e0: 0xe0007348, 0x125e2: 0xe00066e3, - 0x125e4: 0xe0008470, - 0x125e8: 0xe0008180, - 0x125ec: 0xe0007c2c, 0x125ef: 0xe0006e7e, - 0x125f1: 0xe0007a59, 0x125f2: 0xe00046ff, - 0x125f9: 0xe000a8db, 0x125fa: 0xe000a8de, - 0x125fe: 0xe0009955, - // Block 0x498, offset 0x12600 - 0x12601: 0xe0007ac1, 0x12603: 0xe00079e9, - 0x12608: 0xe00056aa, 0x12609: 0xe000559b, 0x1260b: 0xe00096da, - 0x1260e: 0xe0005b3c, - 0x12610: 0xe0005cf7, 0x12612: 0xe0007001, - 0x12614: 0xe0006496, 0x12615: 0xe00079ed, 0x12616: 0xe0007517, - 0x12619: 0xe0009b76, - 0x1261f: 0xe0007b15, - 0x12620: 0xe0008018, - 0x12625: 0xe0008cb7, 0x12626: 0xe0009249, 0x12627: 0xe0007166, - 0x1262c: 0xe000a7b9, 0x1262d: 0xe0009712, 0x1262e: 0xe0006f3a, - 0x12639: 0xe000a902, 0x1263b: 0xe000a764, - 0x1263c: 0xe0007473, 0x1263e: 0xe00054e3, 0x1263f: 0xe0007e5a, - // Block 0x499, offset 0x12640 - 0x12640: 0xe000a20f, - 0x12646: 0xe0009e79, 0x12647: 0xe0006ee6, - 0x1264b: 0xe000a778, - 0x1264c: 0xe0004acf, 0x1264d: 0xe0006b5e, - 0x12650: 0xe0005a35, - 0x12654: 0xe000a905, 0x12657: 0xe0007ad1, - 0x1265a: 0xe00077cf, 0x1265b: 0xe0005751, - 0x1265f: 0xe0004a33, - 0x12665: 0xe0009726, - 0x12668: 0xe0009295, 0x1266a: 0xe0008cba, - 0x1266c: 0xe0009c77, 0x1266d: 0xe00087d1, - 0x12670: 0xe00080b8, 0x12672: 0xe000814d, - 0x12675: 0xe000861c, 0x12676: 0xe0006757, - 0x12678: 0xe0009c9b, 0x12679: 0xe00052b9, 0x1267a: 0xe00077a7, 0x1267b: 0xe000a6e0, - 0x1267d: 0xe0006c7a, 0x1267e: 0xe0008406, - // Block 0x49a, offset 0x12680 - 0x12680: 0xe0006c7e, 0x12682: 0xe0008760, - 0x12686: 0xe00086f8, 0x12687: 0xe0009d52, - 0x12688: 0xe0009cc2, 0x1268b: 0xe00089cb, - 0x1268c: 0xe0009d04, - 0x12692: 0xe00095ca, 0x12693: 0xe0006406, - 0x12694: 0xe00062a6, 0x12696: 0xe0008243, - 0x12698: 0xe0005557, 0x12699: 0xe000754f, 0x1269a: 0xe0009bd5, 0x1269b: 0xe0007f7f, - 0x1269d: 0xe00069fd, 0x1269f: 0xe0005fec, - 0x126a1: 0xe0005fef, 0x126a2: 0xe0005afa, - 0x126a7: 0xe0006042, - 0x126a9: 0xe000617b, - 0x126af: 0xe0004824, - 0x126b2: 0xe0006cfa, - 0x126b4: 0xe000885a, - 0x126b8: 0xe00085c4, 0x126b9: 0xe0009c50, - 0x126bd: 0xe000457b, - // Block 0x49b, offset 0x126c0 - 0x126c0: 0xe0006d3f, 0x126c1: 0xe0005c98, - 0x126c7: 0xe000685e, - 0x126cd: 0xe00044d2, - 0x126d2: 0xe000a440, - 0x126d6: 0xe0005739, - 0x126e2: 0xe000555b, - 0x126e7: 0xe000a8e1, - 0x126ec: 0xe000457f, 0x126ef: 0xe00064f2, - 0x126f3: 0xe000864c, - 0x126f4: 0xe0007621, 0x126f5: 0xe000a912, - // Block 0x49c, offset 0x12700 - 0x12700: 0xe0006c82, 0x12702: 0xe0004aaf, - 0x12704: 0xe0008897, - 0x12709: 0xe0006985, - 0x1270e: 0xe00076b1, - 0x12710: 0xe000a3e9, 0x12712: 0xe0006988, - 0x12717: 0xe0004c33, - 0x12719: 0xe0008815, - 0x12721: 0xe0004b79, 0x12722: 0xe0009fd5, - 0x12725: 0xe00072d3, - 0x12728: 0xe00082e4, 0x12729: 0xe0007169, - 0x12734: 0xe0009deb, 0x12737: 0xe00045a7, - 0x12738: 0xe0005c9b, 0x12739: 0xe000a2df, 0x1273a: 0xe0008320, 0x1273b: 0xe0006bb2, - 0x1273c: 0xe00057d5, 0x1273d: 0xe0009d07, - // Block 0x49d, offset 0x12740 - 0x12749: 0xe00050cd, 0x1274a: 0xe0007b8a, - 0x12753: 0xe00049af, - 0x12756: 0xe000935d, 0x12757: 0xe00083df, - 0x12758: 0xe0008c51, 0x12759: 0xe00087e5, 0x1275b: 0xe0005f02, - 0x1275c: 0xe00073b0, 0x1275d: 0xe0008d93, - 0x12762: 0xe000a443, - 0x12765: 0xe0007e0f, 0x12767: 0xe0007d5f, - 0x12768: 0xe00080f0, 0x12769: 0xe0006f7a, 0x1276a: 0xe0008818, 0x1276b: 0xe00060b2, - 0x12771: 0xe000521e, - 0x12774: 0xe000a73a, 0x12776: 0xe00081ef, 0x12777: 0xe00081f2, - 0x1277e: 0xe000a5be, 0x1277f: 0xe00080bc, - // Block 0x49e, offset 0x12780 - 0x12783: 0xe0007728, - 0x12784: 0xe0007c94, 0x12785: 0xe0006ace, - 0x12790: 0xe00086fc, 0x12792: 0xe0007c2f, - 0x12797: 0xe0004ddd, - 0x12798: 0xe0009dee, - 0x1279c: 0xe0005d1b, - 0x127a0: 0xe0005b60, - 0x127a8: 0xe000555f, 0x127a9: 0xe0007bc0, 0x127aa: 0xe000a671, 0x127ab: 0xe000a203, - 0x127ac: 0xe000a163, 0x127af: 0xe000a77c, - 0x127b0: 0xe0007b19, 0x127b2: 0xe000a6a5, - 0x127b5: 0xe000598a, 0x127b7: 0xe0004ad3, - 0x127b8: 0xe000716c, 0x127ba: 0xe0005338, 0x127bb: 0xe000a1df, - 0x127bc: 0xe00061d0, - // Block 0x49f, offset 0x127c0 - 0x127c1: 0xe000a207, - 0x127c4: 0xe000a247, 0x127c6: 0xe000858b, 0x127c7: 0xe00070ce, - 0x127c8: 0xe0005a5c, 0x127c9: 0xe0007c98, 0x127cb: 0xe0007de7, - 0x127ce: 0xe0008b53, - 0x127d4: 0xe00094ae, 0x127d5: 0xe000422a, 0x127d6: 0xe0004c36, 0x127d7: 0xe0007f82, - 0x127d8: 0xe000503d, - 0x127de: 0xe00067b4, 0x127df: 0xe0006206, - 0x127e0: 0xe0004417, - 0x127e6: 0xe00045df, 0x127e7: 0xe00082ac, - 0x127e9: 0xe0007d83, 0x127eb: 0xe0005ec8, - 0x127ed: 0xe0006a01, - 0x127f2: 0xe00059ae, 0x127f3: 0xe000546e, - 0x127f7: 0xe0008a93, - 0x127f9: 0xe000a24b, 0x127fb: 0xe0009c9e, - // Block 0x4a0, offset 0x12800 - 0x12800: 0xe0006272, 0x12802: 0xe0004122, - 0x12806: 0xe0008445, - 0x12808: 0xe0004164, 0x12809: 0xe000620a, 0x1280a: 0xe0006b7e, - 0x1280c: 0xe0009f2b, 0x1280d: 0xe00090bf, 0x1280f: 0xe000418e, - 0x12812: 0xe0009123, - 0x12816: 0xe0004ab3, - 0x12819: 0xe0004934, - 0x1281d: 0xe000a725, 0x1281e: 0xe0005721, - 0x12820: 0xe0008e63, 0x12822: 0xe0008324, 0x12823: 0xe000728f, - 0x12824: 0xe0006629, 0x12825: 0xe0008409, 0x12826: 0xe000a1ac, - 0x12829: 0xe000a33f, 0x1282a: 0xe0004e44, 0x1282b: 0xe00098c8, - 0x1282d: 0xe00062e2, 0x1282e: 0xe0009d19, - 0x12835: 0xe0008bdf, 0x12837: 0xe00060ee, - 0x12839: 0xe0006f7e, - 0x1283d: 0xe0008b57, 0x1283e: 0xe000a24f, - // Block 0x4a1, offset 0x12840 - 0x12841: 0xe0006e0e, 0x12843: 0xe0004c39, - 0x12844: 0xe000a287, 0x12845: 0xe00057d9, 0x12846: 0xe0005c9e, 0x12847: 0xe000716f, - 0x12849: 0xe0005bce, - 0x12853: 0xe0007d87, - 0x1285b: 0xe00099fc, - 0x12860: 0xe0008947, 0x12861: 0xe0007237, 0x12862: 0xe0009ab6, - 0x12864: 0xe00087e9, 0x12865: 0xe000a3ec, 0x12866: 0xe0005040, - 0x12868: 0xe00048ac, 0x1286a: 0xe0005043, 0x1286b: 0xe00066e7, - 0x1286c: 0xe0007d8b, 0x1286e: 0xe0008db3, 0x1286f: 0xe0004a07, - 0x12870: 0xe0007a75, 0x12871: 0xe0008d29, 0x12872: 0xe0006460, 0x12873: 0xe0005d4b, - 0x12874: 0xe0004f5d, 0x12875: 0xe0006916, 0x12876: 0xe0009c7a, - 0x12878: 0xe0009aba, 0x1287a: 0xe000650e, - 0x1287f: 0xe000a477, - // Block 0x4a2, offset 0x12880 - 0x12880: 0xe0007f85, 0x12881: 0xe0005ff2, 0x12883: 0xe0009894, - 0x12884: 0xe0006e12, 0x12885: 0xe0008c54, 0x12886: 0xe0006fa2, - 0x1288b: 0xe0008150, - 0x1288e: 0xe000a166, - 0x12895: 0xe0009f94, 0x12897: 0xe00080c0, - 0x12899: 0xe000520f, 0x1289a: 0xe000a3ef, 0x1289b: 0xe0007b1d, - 0x1289c: 0xe00081f5, 0x1289d: 0xe000a63a, 0x1289e: 0xe0006d42, 0x1289f: 0xe0007320, - 0x128a0: 0xe0005bd1, 0x128a2: 0xe0007f0c, 0x128a3: 0xe0007118, - 0x128a4: 0xe0007e5d, 0x128a5: 0xe0007ca4, - 0x128a8: 0xe00090c3, 0x128a9: 0xe000a343, 0x128aa: 0xe0005d72, - 0x128ad: 0xe0005424, 0x128af: 0xe00057dd, - 0x128b0: 0xe0004b28, 0x128b1: 0xe00089cf, 0x128b2: 0xe00093a1, 0x128b3: 0xe0009213, - 0x128bd: 0xe0008def, 0x128be: 0xe0004f01, - // Block 0x4a3, offset 0x128c0 - 0x128c0: 0xe00097a3, 0x128c2: 0xe0005046, 0x128c3: 0xe0005ca1, - 0x128c6: 0xe0004cc6, 0x128c7: 0xe0006e16, - 0x128c9: 0xe000590e, 0x128ca: 0xe000616f, 0x128cb: 0xe0008700, - 0x128d8: 0xe0005cfb, - 0x128dc: 0xe000a60a, 0x128dd: 0xe0004b2b, 0x128de: 0xe0006276, 0x128df: 0xe0004683, - 0x128e1: 0xe00090c7, 0x128e3: 0xe0005049, - 0x128e5: 0xe0004687, 0x128e7: 0xe0006526, - 0x128e8: 0xe000924d, 0x128ea: 0xe0008cbd, 0x128eb: 0xe0005428, - 0x128f0: 0xe000a572, 0x128f2: 0xe0007172, - 0x128f5: 0xe0007952, - 0x128f9: 0xe000723b, - 0x128fd: 0xe0006cd5, 0x128ff: 0xe0006e1a, - // Block 0x4a4, offset 0x12900 - 0x12906: 0xe0009157, - 0x1290a: 0xe000468b, - 0x1290f: 0xe0005acc, - 0x12914: 0xe0007b21, - 0x12918: 0xe0004a0b, 0x1291a: 0xe0009251, 0x1291b: 0xe000a592, - 0x1291c: 0xe0004985, - 0x12920: 0xe000a3f2, 0x12922: 0xe0009e92, 0x12923: 0xe0009cc6, - 0x12926: 0xe0007d3b, - 0x12929: 0xe00094f2, - 0x1292e: 0xe0007cf8, - 0x12932: 0xe0009bf0, - 0x12937: 0xe000858e, - // Block 0x4a5, offset 0x12940 - 0x12941: 0xe00065d2, 0x12943: 0xe000980c, - 0x12944: 0xe0004583, - 0x1294c: 0xe0004cc9, 0x1294d: 0xe0005f16, 0x1294e: 0xe00089d3, - 0x12951: 0xe0008fc3, 0x12953: 0xe0006542, - 0x12955: 0xe0007cfc, - 0x12958: 0xe00042b2, 0x1295a: 0xe0007503, 0x1295b: 0xe0009582, - 0x1295e: 0xe0006cbe, 0x1295f: 0xe0006cfe, - 0x12963: 0xe0006b82, - 0x12965: 0xe0006d02, 0x12966: 0xe0007004, - 0x12968: 0xe0007f10, 0x1296b: 0xe000662c, - 0x1296c: 0xe0007f14, - 0x12970: 0xe000894b, 0x12971: 0xe00081f8, 0x12972: 0xe000431a, 0x12973: 0xe0007477, - 0x12977: 0xe0005186, - 0x12978: 0xe000894f, 0x1297a: 0xe0008b5b, - 0x1297f: 0xe0005f1a, - // Block 0x4a6, offset 0x12980 - 0x12987: 0xe0004e9d, - 0x1298a: 0xe0004703, 0x1298b: 0xe00089d7, - 0x1298c: 0xe000474f, 0x1298e: 0xe00045ab, 0x1298f: 0xe0007e12, - 0x12991: 0xe0008953, 0x12993: 0xe00053d0, - 0x12994: 0xe00062e6, - 0x12999: 0xe0005bd4, 0x1299a: 0xe0006862, 0x1299b: 0xe00090cb, - 0x1299c: 0xe000984c, 0x1299d: 0xe00060f1, - 0x129a0: 0xe00089db, 0x129a2: 0xe0009f2f, - 0x129a4: 0xe000998e, 0x129a5: 0xe000581b, 0x129a6: 0xe000a7ec, 0x129a7: 0xe000581f, - 0x129aa: 0xe000649a, 0x129ab: 0xe000a515, - 0x129af: 0xe0008f13, - 0x129b0: 0xe000840c, - 0x129b5: 0xe000a4ee, 0x129b6: 0xe00053fc, - 0x129b8: 0xe000504c, 0x129ba: 0xe0004356, - 0x129bf: 0xe000504f, - // Block 0x4a7, offset 0x129c0 - 0x129c6: 0xe000435a, 0x129c7: 0xe0008e66, - 0x129c8: 0xe0006546, 0x129ca: 0xe00095ce, 0x129cb: 0xe0009f33, - 0x129ce: 0xe000700a, 0x129cf: 0xe0007007, - 0x129d1: 0xe00083af, - 0x129d4: 0xe0008be3, - 0x129d9: 0xe000a871, 0x129da: 0xe0004ccc, - 0x129dd: 0xe0006b86, - 0x129e3: 0xe0007fd3, - 0x129e5: 0xe00043f3, - 0x129e9: 0xe00098de, 0x129eb: 0xe000797d, - 0x129f1: 0xe0009e1e, 0x129f2: 0xe0009efc, 0x129f3: 0xe00042b6, - 0x129f4: 0xe000757f, 0x129f5: 0xe0008591, - 0x129f8: 0xe000533c, 0x129f9: 0xe00090cf, - 0x129fc: 0xe00055ef, 0x129fd: 0xe000881b, 0x129fe: 0xe000915b, - // Block 0x4a8, offset 0x12a00 - 0x12a00: 0xe0004ccf, 0x12a02: 0xe0004125, 0x12a03: 0xe000a28b, - 0x12a05: 0xe00065d6, 0x12a07: 0xe0008fc7, - 0x12a0a: 0xe00089df, - 0x12a0d: 0xe000840f, 0x12a0e: 0xe000a169, - 0x12a12: 0xe0007823, 0x12a13: 0xe0009991, - 0x12a14: 0xe0009958, 0x12a15: 0xe000a83d, - 0x12a18: 0xe0005653, 0x12a19: 0xe000468f, 0x12a1b: 0xe0009bfc, - 0x12a1e: 0xe000698b, - 0x12a22: 0xe0005ca4, 0x12a23: 0xe0009059, - 0x12a24: 0xe0008e15, 0x12a27: 0xe0006b31, - 0x12a30: 0xe000537c, 0x12a32: 0xe0005d75, 0x12a33: 0xe0005d57, - 0x12a34: 0xe000995b, - 0x12a39: 0xe000698e, 0x12a3a: 0xe0006919, - 0x12a3c: 0xe00047ca, 0x12a3f: 0xe0008183, - // Block 0x4a9, offset 0x12a40 - 0x12a40: 0xe0007883, 0x12a41: 0xe00098e1, - 0x12a47: 0xe0008df3, - 0x12a48: 0xe0004779, 0x12a49: 0xe0008246, 0x12a4b: 0xe0009eee, - 0x12a4d: 0xe0007827, - 0x12a50: 0xe0008249, - 0x12a55: 0xe0009fb8, - 0x12a59: 0xe000700d, - 0x12a5f: 0xe0007ca8, - 0x12a60: 0xe0009456, 0x12a61: 0xe0009361, 0x12a62: 0xe00062ea, - 0x12a64: 0xe0005bd7, 0x12a66: 0xe0007175, 0x12a67: 0xe0009fd9, - 0x12a6f: 0xe0008d7b, - 0x12a70: 0xe0005707, 0x12a73: 0xe000980f, - 0x12a74: 0xe0008764, - 0x12a7b: 0xe0005b8f, - // Block 0x4aa, offset 0x12a80 - 0x12a82: 0xe0005b3f, 0x12a83: 0xe0005c36, - 0x12a86: 0xe0005a5f, - 0x12a88: 0xe0009df1, 0x12a89: 0xe000531c, - 0x12a8c: 0xe0007671, 0x12a8e: 0xe00041ee, - 0x12a92: 0xe00081fb, - 0x12a95: 0xe0007d20, 0x12a96: 0xe000652a, - 0x12a98: 0xe00058b1, - 0x12a9c: 0xe00089e3, - 0x12aa1: 0xe000995e, 0x12aa2: 0xe000785b, - 0x12aa4: 0xe0008a4b, 0x12aa5: 0xe00091cf, 0x12aa7: 0xe00058ee, - 0x12aa8: 0xe00049db, 0x12aa9: 0xe00056ec, - 0x12aac: 0xe0006e1e, 0x12aad: 0xe0007b59, 0x12aae: 0xe0008328, 0x12aaf: 0xe0004cd2, - 0x12ab0: 0xe0007d00, 0x12ab1: 0xe0009b1e, 0x12ab2: 0xe0008957, - 0x12ab8: 0xe0004752, 0x12abb: 0xe00056ae, - 0x12abc: 0xe000634e, 0x12abd: 0xe000647a, 0x12abe: 0xe000647e, - // Block 0x4ab, offset 0x12ac0 - 0x12ac0: 0xe0004fb5, 0x12ac1: 0xe0008d2c, 0x12ac3: 0xe000601f, - 0x12ac4: 0xe000889b, 0x12ac6: 0xe00043f6, 0x12ac7: 0xe000a60e, - 0x12acb: 0xe0004827, - 0x12ace: 0xe0004b7c, - 0x12ad0: 0xe00047cd, 0x12ad3: 0xe000a3f5, - 0x12ad6: 0xe000a596, - 0x12ada: 0xe000772b, 0x12adb: 0xe000a6fb, - 0x12adc: 0xe000a446, 0x12ade: 0xe000a449, - 0x12ae4: 0xe0009ca1, - 0x12aec: 0xe0009fdd, 0x12aee: 0xe0009eff, - 0x12af4: 0xe0008f43, 0x12af6: 0xe0006b34, - 0x12af8: 0xe0004d59, 0x12afa: 0xe00097c4, - 0x12aff: 0xe0005f9e, - // Block 0x4ac, offset 0x12b00 - 0x12b02: 0xe0007f88, 0x12b03: 0xe0006439, - 0x12b06: 0xe000681e, - 0x12b08: 0xe0007b25, 0x12b0a: 0xe0008458, - 0x12b0c: 0xe0007dcf, 0x12b0d: 0xe000a0c9, 0x12b0e: 0xe00076e1, - 0x12b12: 0xe000a0a1, - 0x12b14: 0xe000a692, 0x12b16: 0xe00043f9, - 0x12b19: 0xe0006641, 0x12b1b: 0xe0006f82, - 0x12b1c: 0xe00054e6, 0x12b1e: 0xe0008664, 0x12b1f: 0xe0005f0a, - 0x12b21: 0xe00090d3, 0x12b23: 0xe00042ba, - 0x12b24: 0xe00062ee, 0x12b25: 0xe0004a37, 0x12b27: 0xe0005a38, - 0x12b2a: 0xe0009b7a, - 0x12b2c: 0xe000482a, 0x12b2e: 0xe0006046, - 0x12b31: 0xe0007fd6, 0x12b32: 0xe0005f06, - 0x12b34: 0xe0009077, - 0x12b38: 0xe0006c86, 0x12b39: 0xe00072d7, 0x12b3b: 0xe000a3a1, - 0x12b3c: 0xe00062f2, 0x12b3e: 0xe0007293, - // Block 0x4ad, offset 0x12b40 - 0x12b41: 0xe0006f86, - 0x12b44: 0xe0005f46, 0x12b47: 0xe00060c1, - 0x12b48: 0xe0009b36, 0x12b49: 0xe00061a0, 0x12b4a: 0xe0006022, 0x12b4b: 0xe00041f2, - 0x12b4c: 0xe000a28f, - 0x12b5a: 0xe0006d0a, 0x12b5b: 0xe0005ecb, - 0x12b5e: 0xe00090d7, - 0x12b60: 0xe0005f4a, - 0x12b65: 0xe00085c7, 0x12b66: 0xe00085ca, - 0x12b68: 0xe00086a4, 0x12b69: 0xe000a253, - 0x12b74: 0xe00072db, 0x12b77: 0xe0004dbd, - 0x12b78: 0xe0005ff5, 0x12b7a: 0xe0008cc0, 0x12b7b: 0xe000785f, - 0x12b7c: 0xe0007609, 0x12b7e: 0xe0008f83, - // Block 0x4ae, offset 0x12b80 - 0x12b80: 0xe0009221, - 0x12b86: 0xe000a59a, 0x12b87: 0xe0008c57, - 0x12b8d: 0xe000a257, - 0x12b92: 0xe0006f22, - 0x12b9a: 0xe000772e, 0x12b9b: 0xe0008b5f, - 0x12b9f: 0xe00071f0, - 0x12ba0: 0xe0004dcd, 0x12ba1: 0xe0007178, 0x12ba2: 0xe00071f3, 0x12ba3: 0xe0005563, - 0x12ba5: 0xe0006991, 0x12ba6: 0xe000604a, - 0x12ba8: 0xe0007bc3, 0x12bab: 0xe00095d2, - 0x12bb7: 0xe00044d6, - 0x12bb9: 0xe00054e9, - 0x12bbd: 0xe0004e7a, 0x12bbe: 0xe00047d0, 0x12bbf: 0xe0007b8d, - // Block 0x4af, offset 0x12bc0 - 0x12bcb: 0xe00090db, - 0x12bcd: 0xe00071f6, 0x12bce: 0xe000a051, - 0x12bd1: 0xe0005fa2, - 0x12bd6: 0xe0007bc6, - 0x12bd9: 0xe0005db1, - 0x12bde: 0xe0005de9, - 0x12be0: 0xe000542c, 0x12be2: 0xe0006086, - 0x12be5: 0xe0006596, - 0x12bea: 0xe00091d3, - 0x12bec: 0xe0007297, 0x12bed: 0xe0005b42, - 0x12bf0: 0xe00042be, 0x12bf3: 0xe00055f3, - 0x12bf9: 0xe0007731, 0x12bfb: 0xe0009586, - 0x12bfc: 0xe0004512, 0x12bfd: 0xe000482d, 0x12bff: 0xe0004c3c, - // Block 0x4b0, offset 0x12c00 - 0x12c07: 0xe000608a, - 0x12c09: 0xe0006a19, - 0x12c0d: 0xe000a532, - 0x12c17: 0xe0009716, - 0x12c19: 0xe0004302, 0x12c1a: 0xe000972a, 0x12c1b: 0xe0005ff8, - 0x12c1c: 0xe0004fcd, 0x12c1e: 0xe00082d0, - 0x12c21: 0xe000a536, 0x12c22: 0xe00073b3, 0x12c23: 0xe00083b2, - 0x12c25: 0xe000901d, 0x12c27: 0xe00074bf, - 0x12c29: 0xe0004c3f, - 0x12c2d: 0xe00052ec, 0x12c2e: 0xe0007e00, 0x12c2f: 0xe0004b7f, - 0x12c30: 0xe0008fdf, 0x12c33: 0xe0006db2, - 0x12c3a: 0xe0009ad6, 0x12c3b: 0xe0004900, - 0x12c3c: 0xe00043ae, 0x12c3d: 0xe0006dca, - // Block 0x4b1, offset 0x12c40 - 0x12c42: 0xe0006ad1, - 0x12c4c: 0xe000964d, 0x12c4f: 0xe0006866, - 0x12c51: 0xe0007582, 0x12c52: 0xe000691c, - 0x12c62: 0xe000570a, - 0x12c65: 0xe0009020, 0x12c66: 0xe00093d7, 0x12c67: 0xe0009a00, - 0x12c6c: 0xe0005d5b, 0x12c6d: 0xe0009d96, - 0x12c70: 0xe0009d32, 0x12c72: 0xe0009e21, - 0x12c74: 0xe0009c7d, - // Block 0x4b2, offset 0x12c80 - 0x12c83: 0xe0008eab, - 0x12c85: 0xe0004e47, - 0x12c8f: 0xe00079f1, - 0x12c9c: 0xe0004434, 0x12c9d: 0xe0009686, - 0x12ca0: 0xe00057ed, - 0x12ca7: 0xe0007f48, - 0x12ca8: 0xe0009216, 0x12cab: 0xe0005bda, - 0x12cac: 0xe0004693, 0x12cae: 0xe0009fe1, 0x12caf: 0xe00079f5, - 0x12cbc: 0xe00068c2, - // Block 0x4b3, offset 0x12cc0 - 0x12cc1: 0xe0005052, - 0x12cc7: 0xe0008b63, - 0x12ccc: 0xe0005a80, 0x12ccd: 0xe00076fe, 0x12cce: 0xe000710c, 0x12ccf: 0xe0008650, - 0x12cd1: 0xe000691f, 0x12cd3: 0xe000548c, - 0x12cd7: 0xe0007d8f, - 0x12cdf: 0xe0006eea, - 0x12ce3: 0xe0004256, - 0x12ce4: 0xe0007b5d, 0x12ce7: 0xe000652e, - 0x12ce8: 0xe0007e24, 0x12ce9: 0xe0006db6, - 0x12ced: 0xe0009b7e, - 0x12cfa: 0xe000a526, 0x12cfb: 0xe000a52a, - 0x12cfc: 0xe0005d78, 0x12cfe: 0xe00051d7, - // Block 0x4b4, offset 0x12d00 - 0x12d01: 0xe0008594, - 0x12d05: 0xe00063b6, - 0x12d08: 0xe0007e27, 0x12d0a: 0xe0005afd, 0x12d0b: 0xe00091f2, - 0x12d0e: 0xe0004755, 0x12d0f: 0xe0005986, - 0x12d10: 0xe00062f6, 0x12d11: 0xe0007734, - 0x12d14: 0xe0009407, 0x12d15: 0xe000441a, - 0x12d1a: 0xe00089e7, - 0x12d20: 0xe0005258, - 0x12d27: 0xe00088df, - 0x12d28: 0xe0005d7b, 0x12d2a: 0xe00097a6, - 0x12d2c: 0xe0004697, 0x12d2f: 0xe0005055, - 0x12d34: 0xe00056d2, 0x12d35: 0xe00041f6, 0x12d37: 0xe0005d1f, - 0x12d3a: 0xe0004ad7, 0x12d3b: 0xe00062fa, - 0x12d3c: 0xe00086a8, 0x12d3d: 0xe0004bc4, - // Block 0x4b5, offset 0x12d40 - 0x12d41: 0xe0009689, - 0x12d4c: 0xe0005b0f, 0x12d4e: 0xe000968c, 0x12d4f: 0xe0004fb9, - 0x12d51: 0xe0005430, 0x12d52: 0xe00083e2, - 0x12d56: 0xe0007955, - 0x12d59: 0xe0007737, - 0x12d67: 0xe0005b12, - 0x12d6a: 0xe000588d, 0x12d6b: 0xe00058d6, - 0x12d6c: 0xe00062fe, 0x12d6d: 0xe000a53a, - 0x12d71: 0xe0005ae4, - 0x12d7a: 0xe00073b6, - 0x12d7e: 0xe0006ad4, - // Block 0x4b6, offset 0x12d80 - 0x12d80: 0xe0006ad7, 0x12d81: 0xe0005058, - 0x12d85: 0xe0007ea2, 0x12d86: 0xe00094f6, 0x12d87: 0xe000505b, - 0x12d88: 0xe000505e, 0x12d89: 0xe0009023, 0x12d8a: 0xe0009d36, - 0x12d90: 0xe0007f8b, 0x12d93: 0xe000689a, - 0x12d94: 0xe00067b7, 0x12d95: 0xe0006994, 0x12d96: 0xe0008cc3, 0x12d97: 0xe0009026, - 0x12d9a: 0xe0008cc6, 0x12d9b: 0xe0004462, - 0x12d9c: 0xe000a3f8, 0x12d9d: 0xe0009850, 0x12d9e: 0xe000747b, 0x12d9f: 0xe00071f9, - 0x12da0: 0xe0006ada, 0x12da2: 0xe000529a, - 0x12da5: 0xe0006c8a, 0x12da7: 0xe0008d2f, - 0x12da8: 0xe0009e95, - 0x12dad: 0xe0008c21, - 0x12dba: 0xe0005061, - 0x12dbc: 0xe0004a3b, 0x12dbf: 0xe0005a84, - // Block 0x4b7, offset 0x12dc0 - 0x12dc0: 0xe0009ed6, 0x12dc1: 0xe0004f61, - 0x12dca: 0xe000477c, 0x12dcb: 0xe00084d8, - 0x12dcd: 0xe000a4f1, 0x12dce: 0xe0008b67, 0x12dcf: 0xe000666f, - 0x12dd1: 0xe0007f8e, - 0x12dd4: 0xe0008c5a, - 0x12ddd: 0xe000908b, - 0x12de6: 0xe0007886, 0x12de7: 0xe000a8e4, - 0x12de8: 0xe00050d0, 0x12dea: 0xe0006e22, 0x12deb: 0xe00053b4, - 0x12dee: 0xe0005a14, - 0x12df0: 0xe000529d, 0x12df1: 0xe00054ec, 0x12df3: 0xe000782b, - 0x12df4: 0xe00077d3, - 0x12df9: 0xe0007f91, 0x12dfa: 0xe0007d24, 0x12dfb: 0xe0005cd7, - 0x12dfd: 0xe0004f65, 0x12dfe: 0xe000a4f4, 0x12dff: 0xe0005567, - // Block 0x4b8, offset 0x12e00 - 0x12e00: 0xe000717b, 0x12e01: 0xe0006add, - 0x12e06: 0xe000422e, - 0x12e09: 0xe00065da, 0x12e0a: 0xe00051d3, 0x12e0b: 0xe00097c7, - 0x12e11: 0xe0004988, 0x12e12: 0xe000968f, - 0x12e15: 0xe0006922, - 0x12e18: 0xe0006925, - 0x12e1f: 0xe0008cc9, - 0x12e22: 0xe00059f6, 0x12e23: 0xe0005e49, - 0x12e24: 0xe0009a2c, 0x12e26: 0xe00090df, 0x12e27: 0xe00076cd, - 0x12e29: 0xe000915f, 0x12e2a: 0xe000905c, 0x12e2b: 0xe00098a4, - 0x12e2c: 0xe000447a, - 0x12e38: 0xe0004276, 0x12e3b: 0xe0008412, - // Block 0x4b9, offset 0x12e40 - 0x12e40: 0xe000a8e7, 0x12e41: 0xe0004830, 0x12e42: 0xe00057f1, - 0x12e45: 0xe0006fb6, - 0x12e48: 0xe00041fa, 0x12e4a: 0xe0008c5d, 0x12e4b: 0xe0008b6b, - 0x12e4c: 0xe0005537, 0x12e4d: 0xe0009692, - 0x12e54: 0xe0008528, 0x12e57: 0xe0009d0a, - 0x12e59: 0xe000907b, 0x12e5a: 0xe0009961, - 0x12e5c: 0xe0005c62, 0x12e5e: 0xe00049b2, 0x12e5f: 0xe0009ed2, - 0x12e60: 0xe0008ccc, - 0x12e67: 0xe0006eee, - 0x12e6e: 0xe0008db7, - 0x12e71: 0xe0009a30, - 0x12e76: 0xe000800c, 0x12e77: 0xe000907f, - 0x12e79: 0xe0009127, 0x12e7b: 0xe00054ef, - 0x12e7c: 0xe0004128, 0x12e7d: 0xe0004758, 0x12e7f: 0xe00047d3, - // Block 0x4ba, offset 0x12e80 - 0x12e80: 0xe0004870, - 0x12e85: 0xe00043b2, 0x12e86: 0xe000604e, - 0x12e89: 0xe0009964, - 0x12e8d: 0xe000889f, 0x12e8e: 0xe0007b29, - 0x12e97: 0xe000717e, - 0x12ea0: 0xe000523b, 0x12ea1: 0xe0006ce2, 0x12ea2: 0xe0007b90, - 0x12ea9: 0xe0007cac, 0x12eab: 0xe000a52e, - 0x12eb0: 0xe000782f, - 0x12eb4: 0xe000a2af, 0x12eb5: 0xe0007649, 0x12eb6: 0xe0004c42, - 0x12eb9: 0xe0004d85, 0x12eba: 0xe0004938, - 0x12ebd: 0xe0008b6f, 0x12ebe: 0xe0007ea5, 0x12ebf: 0xe00094b2, - // Block 0x4bb, offset 0x12ec0 - 0x12ec0: 0xe0005692, 0x12ec1: 0xe00055b7, 0x12ec2: 0xe0005a62, 0x12ec3: 0xe0008a63, - 0x12ec4: 0xe0009225, 0x12ec5: 0xe0007ea8, 0x12ec6: 0xe0009d9a, - 0x12ec8: 0xe0007e60, 0x12eca: 0xe0007d62, - 0x12ed2: 0xe0009163, 0x12ed3: 0xe0009365, - 0x12ed5: 0xe0008ccf, 0x12ed6: 0xe0004bc7, 0x12ed7: 0xe00093a5, - 0x12ed8: 0xe0004d3d, 0x12edb: 0xe0004cd5, - 0x12edf: 0xe0004d69, - 0x12ee0: 0xe00049b5, 0x12ee3: 0xe00070d2, - 0x12ee9: 0xe0007d3e, 0x12eea: 0xe0007d41, - 0x12eec: 0xe000824c, 0x12eee: 0xe0004d89, 0x12eef: 0xe0007e63, - 0x12ef3: 0xe000824f, - 0x12ef6: 0xe0004cd8, - 0x12ef9: 0xe0007c65, 0x12efa: 0xe0004e4a, 0x12efb: 0xe00093a9, - 0x12efe: 0xe0004a3f, 0x12eff: 0xe0005c3a, - // Block 0x4bc, offset 0x12f00 - 0x12f04: 0xe0009255, 0x12f05: 0xe0004e4d, 0x12f07: 0xe0005656, - 0x12f08: 0xe0008d32, 0x12f0a: 0xe0008a4f, 0x12f0b: 0xe0005d5f, - 0x12f17: 0xe00060b5, - 0x12f19: 0xe00092d5, - 0x12f1d: 0xe00065de, 0x12f1f: 0xe000469b, - 0x12f20: 0xe0008704, 0x12f22: 0xe0006b37, 0x12f23: 0xe0008f17, - 0x12f25: 0xe00055f7, 0x12f26: 0xe00070fe, - 0x12f2a: 0xe0007181, - 0x12f2d: 0xe000425a, 0x12f2f: 0xe00052f0, - 0x12f36: 0xe000469f, - 0x12f38: 0xe0004707, 0x12f39: 0xe0008edb, 0x12f3a: 0xe0009854, - 0x12f3d: 0xe0007fd9, 0x12f3f: 0xe00041fe, - // Block 0x4bd, offset 0x12f40 - 0x12f46: 0xe0009ca4, - 0x12f48: 0xe0004fbd, 0x12f4a: 0xe0008d35, - 0x12f4c: 0xe0007585, 0x12f4f: 0xe000a49b, - 0x12f51: 0xe0007010, 0x12f52: 0xe0004f89, - 0x12f58: 0xe0008a97, 0x12f59: 0xe0006d06, 0x12f5b: 0xe00088a3, - 0x12f5e: 0xe0009b9e, - 0x12f60: 0xe0005d63, - 0x12f65: 0xe0006b3a, 0x12f66: 0xe000675a, 0x12f67: 0xe000940b, - 0x12f68: 0xe000686a, - 0x12f6c: 0xe0008c24, 0x12f6d: 0xe00059b2, 0x12f6f: 0xe0005221, - 0x12f73: 0xe0004167, - 0x12f75: 0xe00064fe, - 0x12f79: 0xe0006fb9, - // Block 0x4be, offset 0x12f80 - 0x12f85: 0xe0006e82, 0x12f86: 0xe0009f37, - 0x12f88: 0xe0004a7f, 0x12f89: 0xe00056b2, 0x12f8b: 0xe0004f05, - 0x12f8c: 0xe000895b, 0x12f8d: 0xe000729b, 0x12f8f: 0xe00064c6, - 0x12f90: 0xe0004ab7, 0x12f91: 0xe0009858, 0x12f92: 0xe0009c00, 0x12f93: 0xe000477f, - 0x12f94: 0xe00053d4, 0x12f96: 0xe00093f7, - 0x12f9f: 0xe00067ba, - 0x12fa0: 0xe0004ea1, - 0x12fa5: 0xe000447d, 0x12fa6: 0xe0004a43, 0x12fa7: 0xe00045af, - 0x12fa9: 0xe0009c14, - 0x12fac: 0xe0006f8a, 0x12fae: 0xe0006d45, - 0x12fb1: 0xe000705b, 0x12fb3: 0xe0008be7, - 0x12fb5: 0xe00079f9, - 0x12fbd: 0xe0007c32, - // Block 0x4bf, offset 0x12fc0 - 0x12fc7: 0xe00043fc, - 0x12fcb: 0xe000895f, - 0x12fcd: 0xe0004833, 0x12fce: 0xe000a44c, 0x12fcf: 0xe00087d5, - 0x12fd2: 0xe0009815, - 0x12fd4: 0xe000627a, 0x12fd5: 0xe0005064, 0x12fd7: 0xe0006b8a, - 0x12fd9: 0xe00066a7, 0x12fda: 0xe00091f5, - 0x12fdc: 0xe000495c, 0x12fdd: 0xe00045f3, - 0x12fe0: 0xe0009818, 0x12fe1: 0xe0004a0f, - 0x12fed: 0xe0008963, - 0x12ff1: 0xe0006c8e, - 0x12ff4: 0xe0008680, - 0x12ff8: 0xe000881e, - 0x12ffe: 0xe000705e, - // Block 0x4c0, offset 0x13000 - 0x13000: 0xe0008a53, 0x13001: 0xe000a612, - 0x13004: 0xe00064f6, 0x13006: 0xe0008967, 0x13007: 0xe0009d56, - 0x13009: 0xe000985c, 0x1300a: 0xe000a4d3, 0x1300b: 0xe000a30f, - 0x1300c: 0xe000a73d, - 0x13012: 0xe000742b, - 0x13014: 0xe0008054, - 0x13019: 0xe0004836, 0x1301b: 0xe00077d7, - 0x1301d: 0xe0004cdb, - 0x13020: 0xe0007013, - 0x13024: 0xe000556b, 0x13026: 0xe0006997, - 0x13029: 0xe0006ae0, 0x1302a: 0xe000905f, - 0x13033: 0xe0009f4f, - 0x13037: 0xe000670b, - 0x1303e: 0xe0005f7a, - // Block 0x4c1, offset 0x13040 - 0x13040: 0xe000940f, - 0x13047: 0xe0008d6f, - 0x13049: 0xe000981b, 0x1304b: 0xe0004e17, - 0x1304f: 0xe0005aac, - 0x13052: 0xe0009259, - 0x1305e: 0xe00052f4, 0x1305f: 0xe0008a9b, - 0x13060: 0xe0006644, 0x13061: 0xe0004202, - 0x13067: 0xe000a616, - 0x1306a: 0xe0008684, 0x1306b: 0xe0007016, - 0x13077: 0xe00095b2, - 0x13078: 0xe0009ca7, - 0x1307d: 0xe000958a, 0x1307e: 0xe000597a, 0x1307f: 0xe000675d, - // Block 0x4c2, offset 0x13080 - 0x13083: 0xe000579d, - 0x1308c: 0xe0008e69, 0x1308d: 0xe00088a7, - 0x13090: 0xe00056d6, 0x13092: 0xe0008eae, - 0x13094: 0xe00071fc, - 0x1309b: 0xe00089eb, - 0x1309c: 0xe0009ada, 0x1309f: 0xe0005b15, - 0x130a0: 0xe0005ad0, - 0x130a4: 0xe000958e, 0x130a5: 0xe00077db, 0x130a7: 0xe0004480, - 0x130a9: 0xe0006576, - 0x130ac: 0xe0005ca7, - 0x130b2: 0xe0008252, 0x130b3: 0xe00061a3, - 0x130be: 0xe00084dc, - // Block 0x4c3, offset 0x130c0 - 0x130c1: 0xe00094fa, 0x130c3: 0xe0006928, - 0x130c9: 0xe0006822, - 0x130cd: 0xe0006025, - 0x130d2: 0xe0005d67, - 0x130d5: 0xe000627e, 0x130d7: 0xe0008cd2, - 0x130d8: 0xe0008a7b, - 0x130df: 0xe0007092, - 0x130e2: 0xe00085cd, - 0x130e4: 0xe0008128, 0x130e5: 0xe0008edf, 0x130e6: 0xe0005d23, 0x130e7: 0xe0008708, - 0x130e8: 0xe0006486, - 0x130ee: 0xe000583b, - 0x130f1: 0xe000583f, 0x130f2: 0xe0009261, 0x130f3: 0xe000442c, - 0x130f9: 0xe0007184, - 0x130fc: 0xe0005d27, 0x130fd: 0xe0008df7, 0x130fe: 0xe0008b73, - // Block 0x4c4, offset 0x13100 - 0x13105: 0xe0008255, 0x13106: 0xe0005f66, - 0x1310a: 0xe000a3fb, - 0x13115: 0xe0004839, 0x13116: 0xe0005400, 0x13117: 0xe0004cde, - 0x13119: 0xe0008d38, 0x1311a: 0xe0008768, - 0x1311c: 0xe00061d3, 0x1311d: 0xe0006bfa, 0x1311e: 0xe0006826, 0x1311f: 0xe0008cd5, - 0x13120: 0xe000435e, 0x13122: 0xe0006028, - 0x13125: 0xe0005148, 0x13127: 0xe0005843, - 0x1312f: 0xe000514b, - 0x13132: 0xe00058b4, - 0x13134: 0xe00088e3, 0x13136: 0xe0008d3b, - 0x13138: 0xe0005f2e, 0x1313a: 0xe0004e7d, 0x1313b: 0xe000475b, - 0x1313e: 0xe0004e50, - // Block 0x4c5, offset 0x13140 - 0x13140: 0xe0005067, 0x13142: 0xe0008e6c, 0x13143: 0xe00072df, - 0x13144: 0xe00077b7, 0x13145: 0xe000a4bb, 0x13146: 0xe0007f94, 0x13147: 0xe000a861, - 0x13148: 0xe000a576, 0x1314a: 0xe000613f, 0x1314b: 0xe0006143, - 0x1314d: 0xe0005192, - 0x13150: 0xe000527a, 0x13153: 0xe0006d7e, - 0x13154: 0xe000729f, 0x13155: 0xe000699a, 0x13157: 0xe0006ae3, - 0x13158: 0xe0004b3c, 0x13159: 0xe0009029, 0x1315a: 0xe0004fa5, 0x1315b: 0xe000682a, - 0x1315c: 0xe0008058, - 0x13160: 0xe0007019, 0x13161: 0xe00063ba, 0x13162: 0xe0006ce6, - 0x1316b: 0xe0008597, - 0x1316c: 0xe0008e6f, 0x1316e: 0xe00092ad, 0x1316f: 0xe0005b92, - 0x13170: 0xe0006fbc, 0x13171: 0xe000689e, 0x13172: 0xe0006ef2, 0x13173: 0xe000747f, - 0x13175: 0xe0008821, - 0x13179: 0xe000701c, 0x1317a: 0xe00042c2, - // Block 0x4c6, offset 0x13180 - 0x13182: 0xe0008dbb, 0x13183: 0xe000a25b, - 0x13184: 0xe0008cd8, 0x13185: 0xe00046a3, 0x13186: 0xe0006302, - 0x13189: 0xe0007303, - 0x1318d: 0xe0008534, - 0x13190: 0xe00045d3, - 0x13196: 0xe0004adb, - 0x13199: 0xe000a59e, 0x1319b: 0xe0008d41, - 0x1319c: 0xe000a2bb, 0x1319e: 0xe0004b82, - 0x131a1: 0xe0005725, 0x131a2: 0xe000a25f, 0x131a3: 0xe00065f6, - 0x131a6: 0xe0004fa9, - 0x131a8: 0xe00082dc, 0x131a9: 0xe0008d3e, 0x131aa: 0xe00084a4, - 0x131ae: 0xe0006d48, - 0x131b0: 0xe000917f, 0x131b1: 0xe0009c04, 0x131b2: 0xe0006ae6, 0x131b3: 0xe0004362, - 0x131b6: 0xe0008a57, - 0x131b9: 0xe0004587, 0x131ba: 0xe0009994, - 0x131bf: 0xe0004c45, - // Block 0x4c7, offset 0x131c0 - 0x131c3: 0xe00096dd, - 0x131c6: 0xe000470b, - 0x131ce: 0xe0008b77, 0x131cf: 0xe0007187, - 0x131d3: 0xe00046a7, - 0x131d8: 0xe000670f, - 0x131dc: 0xe0008dbf, - 0x131e0: 0xe0005a88, 0x131e2: 0xe0008e72, 0x131e3: 0xe0004dd1, - 0x131e5: 0xe00050d3, 0x131e6: 0xe00050d6, 0x131e7: 0xe0008f47, - 0x131e9: 0xe00080f4, 0x131eb: 0xe0006e86, - 0x131ec: 0xe000718a, 0x131ed: 0xe00081fe, 0x131ee: 0xe0004782, - 0x131f0: 0xe0004a47, 0x131f1: 0xe0004366, 0x131f2: 0xe0005e61, - 0x131f4: 0xe000953a, 0x131f5: 0xe00093da, - 0x131f8: 0xe0005c12, 0x131fa: 0xe000506a, 0x131fb: 0xe0009b0a, - 0x131fd: 0xe0008620, 0x131fe: 0xe0005c66, 0x131ff: 0xe0005f4e, - // Block 0x4c8, offset 0x13200 - 0x13204: 0xe00048c8, 0x13207: 0xe0009967, - 0x1320a: 0xe0005109, 0x1320b: 0xe000692b, - 0x1320c: 0xe0008258, 0x1320d: 0xe0006226, - 0x13216: 0xe0006d4b, 0x13217: 0xe0006cc2, - 0x13218: 0xe000a071, 0x1321a: 0xe0006e26, - 0x1321c: 0xe0005f6a, 0x1321d: 0xe00091a3, 0x1321e: 0xe00052f8, - 0x13220: 0xe0009632, 0x13221: 0xe000620e, 0x13223: 0xe00079fd, - 0x13226: 0xe00073ef, - 0x13228: 0xe0009d5a, 0x13229: 0xe0007d93, - 0x1322c: 0xe0005f52, 0x1322f: 0xe0008153, - 0x13234: 0xe0005912, 0x13236: 0xe0009d7a, - 0x13239: 0xe0008c60, 0x1323b: 0xe000996a, - // Block 0x4c9, offset 0x13240 - 0x13248: 0xe0007b61, 0x13249: 0xe00090e3, 0x1324a: 0xe0007756, 0x1324b: 0xe000981e, - 0x13250: 0xe0009821, 0x13251: 0xe0004617, - 0x13255: 0xe0007cb0, 0x13257: 0xe00097a9, - 0x13258: 0xe0004785, 0x1325b: 0xe0006282, - 0x1325d: 0xe00090e7, 0x1325e: 0xe000a3fe, 0x1325f: 0xe0007ec0, - 0x13260: 0xe0004884, 0x13261: 0xe00087ad, 0x13262: 0xe00056da, 0x13263: 0xe000a263, - 0x1326b: 0xe00066eb, - 0x1326e: 0xe0009860, 0x1326f: 0xe0007a01, - 0x13271: 0xe0008dc3, 0x13272: 0xe0005be6, 0x13273: 0xe00045b3, - 0x13275: 0xe0005e11, 0x13277: 0xe0005b95, - 0x13279: 0xe0009ebc, 0x1327b: 0xe00061d6, - 0x1327d: 0xe0009766, 0x1327e: 0xe00088ab, - // Block 0x4ca, offset 0x13280 - 0x13281: 0xe000649e, 0x13283: 0xe00068c6, - 0x13284: 0xe0007bc9, 0x13285: 0xe0007061, 0x13286: 0xe00060f4, 0x13287: 0xe0007e66, - 0x13288: 0xe00043b6, - 0x13290: 0xe0006fc8, 0x13292: 0xe0008fcb, - 0x13294: 0xe0009083, 0x13295: 0xe0006e2a, 0x13296: 0xe0006bb6, 0x13297: 0xe0005d2b, - 0x13299: 0xe00064ae, 0x1329a: 0xe0005b63, - 0x1329e: 0xe0007e69, - 0x132a1: 0xe000718d, 0x132a2: 0xe0004e1a, - 0x132a9: 0xe000736c, 0x132aa: 0xe000a674, 0x132ab: 0xe000475e, - 0x132ad: 0xe000458b, 0x132af: 0xe000a293, - 0x132b0: 0xe0008cdb, - 0x132b6: 0xe00078b5, - 0x132b9: 0xe0007981, - 0x132bc: 0xe0004761, 0x132bd: 0xe0006a1d, 0x132be: 0xe00045b7, - // Block 0x4cb, offset 0x132c0 - 0x132c1: 0xe000a780, 0x132c2: 0xe000925d, - 0x132c7: 0xe0005b18, - 0x132c8: 0xe000a916, 0x132ca: 0xe0004adf, - 0x132cc: 0xe0007096, 0x132cd: 0xe0005be9, 0x132cf: 0xe000896b, - 0x132d3: 0xe0007b2d, - 0x132d4: 0xe00087ce, 0x132d6: 0xe0006f02, - 0x132d8: 0xe0009265, 0x132db: 0xe000556f, - 0x132dc: 0xe00057a1, - // Block 0x4cc, offset 0x13300 - 0x13336: 0xe0006760, 0x13337: 0xe0006b3d, - 0x13338: 0xe000a0fd, 0x1333a: 0xe00045d7, - 0x1333e: 0xe00065fa, 0x1333f: 0xe000a119, - // Block 0x4cd, offset 0x13340 - 0x13343: 0xe000778a, - 0x13344: 0xe0004713, 0x13345: 0xe0009fbb, 0x13347: 0xe0008f4b, - 0x1334b: 0xe0007d28, - 0x1334c: 0xe0007776, 0x1334d: 0xe0005b1b, 0x1334e: 0xe00053b8, - 0x13350: 0xe0004a13, - 0x13354: 0xe0005e65, 0x13355: 0xe000a00d, - 0x13358: 0xe00067bd, - 0x1335d: 0xe000885d, 0x1335f: 0xe000483c, - 0x13360: 0xe000622a, 0x13361: 0xe00043ba, 0x13363: 0xe0004afe, - 0x13366: 0xe00067c0, - 0x13368: 0xe000791d, 0x1336a: 0xe0008e1e, 0x1336b: 0xe0004af5, - 0x1336e: 0xe000996d, - 0x13370: 0xe00064ca, 0x13372: 0xe0006d4e, - 0x13375: 0xe0005eb0, 0x13377: 0xe0009c80, - 0x13378: 0xe00064d6, 0x13379: 0xe0005caa, - 0x1337c: 0xe0009f53, 0x1337d: 0xe0004788, 0x1337e: 0xe0008fe3, - // Block 0x4ce, offset 0x13380 - 0x13382: 0xe00045bb, - 0x13385: 0xe00056ef, 0x13386: 0xe000699d, 0x13387: 0xe00050d9, - 0x13388: 0xe000506d, 0x1338a: 0xe0007833, - 0x1338c: 0xe000436a, 0x1338e: 0xe00061a6, - 0x13394: 0xe00047d6, 0x13396: 0xe000483f, 0x13397: 0xe00043be, - 0x13398: 0xe000876c, 0x1339a: 0xe00059b6, - 0x1339d: 0xe0008860, 0x1339e: 0xe0007190, - 0x133a4: 0xe0004d41, - 0x133a8: 0xe0006e2e, 0x133a9: 0xe00083b5, 0x133ab: 0xe00043c2, - 0x133af: 0xe000427a, - 0x133b2: 0xe000a8ea, - 0x133b6: 0xe00089ef, - 0x133b8: 0xe0005cad, 0x133b9: 0xe0004430, - 0x133bd: 0xe0007f97, - // Block 0x4cf, offset 0x133c0 - 0x133c1: 0xe0007d04, - 0x133c5: 0xe00073b9, - 0x133ca: 0xe000845c, - 0x133cc: 0xe0008460, 0x133ce: 0xe00059ba, - 0x133d2: 0xe0007338, - 0x133d4: 0xe0006c92, 0x133d5: 0xe000a899, 0x133d6: 0xe000a8a9, - 0x133db: 0xe0007064, - 0x133df: 0xe00088af, - 0x133e0: 0xe00098f9, 0x133e1: 0xe000692e, 0x133e3: 0xe0006c22, - 0x133e4: 0xe00073f2, 0x133e6: 0xe00089f3, - 0x133e9: 0xe0009d5e, 0x133eb: 0xe0007d97, - 0x133ec: 0xe000a7e0, 0x133ee: 0xe000a180, - 0x133f0: 0xe000a011, 0x133f3: 0xe0007bcc, - 0x133f9: 0xe0004b85, 0x133fa: 0xe0004842, 0x133fb: 0xe00064b2, - 0x133fc: 0xe0008464, 0x133fe: 0xe000a297, - // Block 0x4d0, offset 0x13400 - 0x13400: 0xe0007e6c, 0x13401: 0xe0005a3b, 0x13403: 0xe00047d9, - 0x13404: 0xe000602b, 0x13405: 0xe000859a, 0x13406: 0xe0005070, - 0x13409: 0xe0004c48, - 0x1340c: 0xe0008415, - 0x13410: 0xe00051b2, 0x13411: 0xe0005320, 0x13412: 0xe0005b1e, - 0x13414: 0xe00085d0, 0x13415: 0xe00046ab, 0x13416: 0xe00096e0, 0x13417: 0xe0005ffb, - 0x13418: 0xe0008030, 0x13419: 0xe0009caa, - 0x1341e: 0xe000416a, - 0x13421: 0xe0006d81, - 0x13426: 0xe0007fdc, - 0x13428: 0xe0005264, - 0x1342c: 0xe0005bb0, 0x1342d: 0xe0005073, - 0x13430: 0xe0007fdf, 0x13433: 0xe0008418, - 0x13436: 0xe00077aa, - 0x1343d: 0xe0009b3a, 0x1343f: 0xe00046af, - // Block 0x4d1, offset 0x13440 - 0x13443: 0xe0005380, - 0x13446: 0xe00059be, - 0x1344a: 0xe0005b45, - 0x13452: 0xe0004a83, - 0x13455: 0xe000a44f, 0x13456: 0xe0006f8e, - 0x13458: 0xe0006a4d, 0x1345a: 0xe00098fc, - 0x1345e: 0xe0006147, - 0x1346f: 0xe0005916, - 0x13470: 0xe000976a, 0x13471: 0xe0007c68, 0x13472: 0xe0006f92, 0x13473: 0xe0007f18, - 0x13475: 0xe0007e2a, 0x13476: 0xe0006f4a, 0x13477: 0xe0009087, - 0x1347d: 0xe0009602, 0x1347e: 0xe0005ad4, 0x1347f: 0xe00082c8, - // Block 0x4d2, offset 0x13480 - 0x13484: 0xe000841b, 0x13485: 0xe000723f, 0x13486: 0xe0006ae9, 0x13487: 0xe0008cde, - 0x13489: 0xe0008290, 0x1348b: 0xe0005c42, - 0x1348c: 0xe0005076, - 0x13493: 0xe000a63e, - 0x13496: 0xe0009695, - 0x13498: 0xe0008eb1, 0x1349a: 0xe000566b, 0x1349b: 0xe000a101, - 0x1349d: 0xe0004206, - 0x134a1: 0xe00047dc, 0x134a2: 0xe000902c, - 0x134a5: 0xe0006931, 0x134a6: 0xe000686e, - 0x134a9: 0xe000458f, 0x134aa: 0xe00063be, 0x134ab: 0xe00072e3, - 0x134ad: 0xe0005273, 0x134af: 0xe0004fd1, - 0x134b1: 0xe0004b40, 0x134b2: 0xe0008294, - 0x134b4: 0xe000a6e3, 0x134b5: 0xe00050dc, - 0x134ba: 0xe0009ddc, - // Block 0x4d3, offset 0x134c0 - 0x134c3: 0xe0008156, - 0x134c4: 0xe0008e30, 0x134c6: 0xe0005324, - 0x134ca: 0xe0004ce1, - 0x134cc: 0xe000643c, 0x134ce: 0xe0009ba1, - 0x134d5: 0xe00067c3, 0x134d6: 0xe000632e, - 0x134d9: 0xe0008d44, 0x134da: 0xe000643f, 0x134db: 0xe000431e, - 0x134de: 0xe0009e24, - 0x134e0: 0xe0004483, 0x134e1: 0xe000a401, - 0x134e4: 0xe00082b0, 0x134e5: 0xe0006d51, - 0x134ef: 0xe0004845, - 0x134f1: 0xe0004abb, - 0x134f4: 0xe00055fb, 0x134f7: 0xe000a829, - 0x134f8: 0xe000a821, - 0x134fd: 0xe0005287, 0x134fe: 0xe00085d3, - // Block 0x4d4, offset 0x13500 - 0x13502: 0xe000902f, - 0x13505: 0xe000a2e3, 0x13506: 0xe00098ff, 0x13507: 0xe000a2e7, - 0x13508: 0xe0005eda, 0x13509: 0xe0005eee, 0x1350a: 0xe000945a, - 0x13516: 0xe000636e, - 0x13518: 0xe0007d9b, 0x1351a: 0xe0004192, 0x1351b: 0xe00046b3, - 0x13523: 0xe00072a3, - 0x13524: 0xe00074c3, 0x13527: 0xe00097ac, - 0x13529: 0xe0007193, 0x1352b: 0xe0009b2a, - 0x1352f: 0xe0009e27, - 0x13530: 0xe000566e, - 0x13539: 0xe0009369, 0x1353a: 0xe00071ff, - 0x1353e: 0xe0006934, - // Block 0x4d5, offset 0x13540 - 0x13541: 0xe000657e, - 0x13546: 0xe00089f7, - 0x1354a: 0xe0006dce, 0x1354b: 0xe000775a, - 0x1354e: 0xe0007483, - 0x13550: 0xe0006763, 0x13551: 0xe0006766, 0x13552: 0xe0004486, 0x13553: 0xe00069a0, - 0x13554: 0xe000436e, 0x13555: 0xe0007d9f, - 0x13560: 0xe0008eb4, - 0x13564: 0xe000768d, 0x13565: 0xe0006f96, 0x13566: 0xe0005246, - 0x1356b: 0xe0008dc7, - 0x1356d: 0xe00075dd, - 0x13570: 0xe0007e6f, 0x13571: 0xe00044ba, - 0x13574: 0xe000825b, 0x13576: 0xe0005328, 0x13577: 0xe0009f17, - 0x13578: 0xe000870c, 0x13579: 0xe0006673, 0x1357a: 0xe0006e32, - 0x1357f: 0xe0009c1e, - // Block 0x4d6, offset 0x13580 - 0x13580: 0xe00063c2, 0x13582: 0xe00058b7, 0x13583: 0xe0007cec, - 0x13584: 0xe0007202, 0x13586: 0xe0007067, - 0x13588: 0xe0004553, 0x1358a: 0xe0006286, 0x1358b: 0xe0005b66, - 0x1358f: 0xe00047df, - 0x1359a: 0xe0006769, - 0x1359c: 0xe0005da5, 0x1359d: 0xe0007324, 0x1359e: 0xe00089fb, - 0x135a0: 0xe0004b88, 0x135a3: 0xe0009167, - 0x135a8: 0xe0009d2e, 0x135a9: 0xe00052a0, - 0x135b0: 0xe00064b6, 0x135b3: 0xe0006e36, - 0x135b4: 0xe0006115, 0x135b5: 0xe00098cf, - 0x135b8: 0xe0007205, 0x135b9: 0xe0006872, 0x135ba: 0xe000838c, - 0x135bd: 0xe0005384, 0x135be: 0xe000a677, 0x135bf: 0xe000522b, - // Block 0x4d7, offset 0x135c0 - 0x135c0: 0xe000567e, 0x135c2: 0xe0006937, - 0x135c6: 0xe00078b1, - 0x135ca: 0xe0008d47, - 0x135cd: 0xe0008c27, 0x135cf: 0xe0006a21, - 0x135d1: 0xe0005224, - 0x135d8: 0xe00057bd, 0x135d9: 0xe0007a39, 0x135da: 0xe00058ba, - 0x135dd: 0xe000570d, 0x135df: 0xe0008710, - 0x135e0: 0xe0005936, 0x135e3: 0xe0007487, - 0x135e5: 0xe0007d44, 0x135e7: 0xe0008714, - 0x135e8: 0xe0005d4f, 0x135ea: 0xe000859d, - 0x135ec: 0xe00078f5, 0x135ed: 0xe0009902, - 0x135f3: 0xe0009032, - 0x135f4: 0xe0009970, 0x135f6: 0xe00094fe, - 0x135fa: 0xe0005471, 0x135fb: 0xe00090eb, - 0x135fc: 0xe0004c4b, 0x135fe: 0xe0008201, - // Block 0x4d8, offset 0x13600 - 0x13601: 0xe000796a, 0x13602: 0xe0007f4c, 0x13603: 0xe0006dd2, - 0x13605: 0xe0004c4e, 0x13607: 0xe0007958, - 0x13608: 0xe000a8ad, 0x1360a: 0xe0004c51, - 0x1360c: 0xe0006eba, 0x1360d: 0xe0006aec, - 0x13610: 0xe0009062, 0x13612: 0xe0006d54, - 0x13616: 0xe0009e57, - 0x1361b: 0xe00094b6, - 0x1361c: 0xe00072a7, 0x1361e: 0xe00060f7, 0x1361f: 0xe0008e75, - 0x13621: 0xe0004372, - 0x1362a: 0xe000a105, 0x1362b: 0xe00063c6, - 0x1362c: 0xe0006306, - 0x13633: 0xe000987c, - 0x13635: 0xe0009a5b, 0x13636: 0xe000628a, 0x13637: 0xe000a267, - 0x13638: 0xe000416d, 0x13639: 0xe0006e3a, - 0x1363d: 0xe000640a, - // Block 0x4d9, offset 0x13640 - 0x13640: 0xe000676c, - 0x13645: 0xe000795b, 0x13647: 0xe0008b7b, - 0x13651: 0xe0009d7e, - 0x13658: 0xe000706a, 0x13659: 0xe000936d, 0x1365a: 0xe0008d4a, - 0x1365f: 0xe000562b, - 0x13664: 0xe00083b8, 0x13666: 0xe000a075, - 0x13668: 0xe000608e, 0x1366a: 0xe0005a65, 0x1366b: 0xe0005a68, - 0x1366e: 0xe000420a, 0x1366f: 0xe0005847, - 0x13671: 0xe000420e, 0x13672: 0xe0006cea, - 0x13674: 0xe00068a2, 0x13676: 0xe0007a79, - 0x13678: 0xe0009698, - 0x1367e: 0xe0007701, - // Block 0x4da, offset 0x13680 - 0x1368a: 0xe0009502, 0x1368b: 0xe0007f9a, - 0x1368d: 0xe0008624, 0x1368e: 0xe0004d8d, - 0x13692: 0xe0005e69, - 0x13694: 0xe000a7bc, - 0x13698: 0xe00069a3, 0x13699: 0xe000676f, 0x1369a: 0xe0005682, - 0x1369d: 0xe0009035, 0x1369f: 0xe0006bee, - 0x136a1: 0xe0004522, 0x136a2: 0xe00084e0, 0x136a3: 0xe00067c6, - 0x136a5: 0xe00043ff, 0x136a6: 0xe000a404, 0x136a7: 0xe0006d84, - 0x136a8: 0xe0004fc1, 0x136a9: 0xe0004f69, 0x136aa: 0xe00050df, 0x136ab: 0xe00080f8, - 0x136ac: 0xe000682e, 0x136ad: 0xe0009c83, 0x136ae: 0xe0007b93, 0x136af: 0xe0007507, - 0x136b0: 0xe00050e2, 0x136b1: 0xe000a4f7, 0x136b3: 0xe00063ca, - 0x136b7: 0xe0009038, - 0x136b8: 0xe0008034, 0x136b9: 0xe0004f09, 0x136bb: 0xe00097ca, - 0x136bc: 0xe0005ffe, 0x136bd: 0xe0007552, 0x136be: 0xe00069a6, 0x136bf: 0xe000855c, - // Block 0x4db, offset 0x136c0 - 0x136c5: 0xe0007bcf, - 0x136d1: 0xe00080c4, 0x136d2: 0xe0007a7d, 0x136d3: 0xe00059fa, - 0x136d4: 0xe0009ba4, 0x136d5: 0xe000969b, 0x136d7: 0xe00060b8, - 0x136db: 0xe000412b, - 0x136dc: 0xe000605a, 0x136de: 0xe0009e2a, 0x136df: 0xe0004c54, - 0x136e0: 0xe000622e, 0x136e1: 0xe000841e, 0x136e3: 0xe0004489, - 0x136e5: 0xe00077bb, 0x136e6: 0xe00047e2, 0x136e7: 0xe0008824, - 0x136eb: 0xe0008a9f, - 0x136f1: 0xe0007b31, 0x136f3: 0xe000562f, - 0x136f4: 0xe0008863, - 0x136f9: 0xe0009dbe, 0x136fa: 0xe0005ece, 0x136fb: 0xe00067c9, - 0x136fd: 0xe00047e5, 0x136fe: 0xe0009f3b, 0x136ff: 0xe00061d9, - // Block 0x4dc, offset 0x13700 - 0x13700: 0xe00068a6, 0x13701: 0xe0008f6b, 0x13702: 0xe00060fa, 0x13703: 0xe00064fa, - 0x13704: 0xe000412e, 0x13705: 0xe0006001, - 0x13708: 0xe00085d6, 0x13709: 0xe0005e39, - 0x13717: 0xe0005fa6, - 0x1371b: 0xe0004232, - 0x1371c: 0xe0009506, 0x1371d: 0xe00093ec, - 0x13723: 0xe0007c6b, - 0x13728: 0xe00085a0, 0x1372a: 0xe0004ae3, 0x1372b: 0xe0005e6d, - 0x1372f: 0xe0006677, - 0x13731: 0xe0007196, 0x13732: 0xe00085d9, 0x13733: 0xe00043c6, - 0x13734: 0xe000a67a, 0x13735: 0xe00084a8, 0x13736: 0xe00052b6, - 0x13738: 0xe0007f1c, 0x13739: 0xe000795e, - 0x1373c: 0xe0005633, - // Block 0x4dd, offset 0x13740 - 0x13740: 0xe00072ab, 0x13743: 0xe00089ff, - 0x13747: 0xe000a194, - 0x13749: 0xe000969e, 0x1374a: 0xe000a347, - 0x1374f: 0xe000852c, - 0x13750: 0xe000950a, 0x13751: 0xe0008421, 0x13752: 0xe000a61a, - 0x13773: 0xe0005659, - 0x13777: 0xe0009f97, - 0x1377b: 0xe00088b3, - // Block 0x4de, offset 0x13780 - 0x13785: 0xe0005cda, - 0x13789: 0xe0005cb0, 0x1378a: 0xe0008718, - 0x1378e: 0xe0006aef, - 0x13792: 0xe000448c, 0x13793: 0xe0005ed1, - 0x13796: 0xe00046b7, - 0x13798: 0xe000748b, 0x1379a: 0xe0007a3d, 0x1379b: 0xe0008beb, - 0x1379d: 0xe0008e18, 0x1379e: 0xe0007da3, 0x1379f: 0xe000a085, - 0x137a0: 0xe000825e, 0x137a2: 0xe000a2eb, - 0x137a8: 0xe00057f5, 0x137a9: 0xe0006772, 0x137aa: 0xe0007555, 0x137ab: 0xe0005da9, - 0x137bd: 0xe0005e71, 0x137be: 0xe0005e89, 0x137bf: 0xe00085dc, - // Block 0x4df, offset 0x137c0 - 0x137c1: 0xe0009606, 0x137c2: 0xe00088e7, - 0x137c5: 0xe0004a17, - 0x137c9: 0xe0005a8c, 0x137ca: 0xe0004d19, - 0x137cc: 0xe0004ea5, - 0x137d1: 0xe0009997, 0x137d3: 0xe000498b, - 0x137d4: 0xe00066ab, 0x137d6: 0xe0009371, - 0x137d8: 0xe0007313, - 0x137dc: 0xe00093dd, 0x137df: 0xe000553a, - 0x137e0: 0xe0009cad, 0x137e1: 0xe000a089, - 0x137e9: 0xe000662f, 0x137eb: 0xe0004f0d, - 0x137ef: 0xe000a4fa, - 0x137f0: 0xe00047e8, 0x137f1: 0xe0005c6a, 0x137f2: 0xe000693a, - 0x137f4: 0xe0007675, 0x137f6: 0xe0006713, - 0x137f9: 0xe0008827, - 0x137fd: 0xe0007243, - // Block 0x4e0, offset 0x13800 - 0x13803: 0xe00098d2, - 0x13804: 0xe00054f2, 0x13806: 0xe00069a9, 0x13807: 0xe0008770, - 0x1380a: 0xe000580a, 0x1380b: 0xe0009426, - 0x1380c: 0xe0005f0e, 0x1380d: 0xe0009daa, 0x1380e: 0xe0008159, - 0x13829: 0xe00097cd, - 0x1382c: 0xe0005ded, - 0x13831: 0xe000a7a0, - 0x13835: 0xe0007d65, - 0x13838: 0xe0008204, 0x13839: 0xe0009d82, - 0x1383c: 0xe00075e1, 0x1383d: 0xe0005729, - // Block 0x4e1, offset 0x13840 - 0x13846: 0xe0006647, - 0x13849: 0xe0007ac5, 0x1384a: 0xe0007691, - 0x13851: 0xe0009ef2, - 0x13857: 0xe000882a, - 0x1385a: 0xe000751b, 0x1385b: 0xe000425e, - 0x13861: 0xe0009e2d, 0x13863: 0xe00055ff, - 0x13866: 0xe000815c, - 0x13869: 0xe0009cb0, 0x1386a: 0xe000478b, 0x1386b: 0xe000a407, - 0x1386c: 0xe000871c, 0x1386d: 0xe0004170, 0x1386f: 0xe00077bf, - 0x13871: 0xe0009776, 0x13873: 0xe0008186, - 0x13875: 0xe0004e53, 0x13877: 0xe000a784, - 0x1387a: 0xe0008fa3, - // Block 0x4e2, offset 0x13880 - 0x13882: 0xe0009650, - 0x13890: 0xe0007199, - 0x13894: 0xe00073bc, - 0x13899: 0xe000606e, - 0x1389c: 0xe0006b8e, 0x1389f: 0xe0004ce4, - 0x138a1: 0xe00063ce, - 0x138a8: 0xe000950e, - 0x138ad: 0xe0009824, 0x138af: 0xe0004b2e, - 0x138b2: 0xe0009e30, - 0x138b4: 0xe0006b62, - 0x138b8: 0xe0008fcf, 0x138b9: 0xe000461b, 0x138ba: 0xe0009183, 0x138bb: 0xe00077c3, - 0x138bc: 0xe0009375, 0x138bf: 0xe000a40a, - // Block 0x4e3, offset 0x138c0 - 0x138c0: 0xe00070ba, 0x138c1: 0xe000912b, 0x138c2: 0xe0005faa, - 0x138c4: 0xe0009864, 0x138c6: 0xe0006dba, - 0x138c9: 0xe0007f20, 0x138ca: 0xe0007d2c, 0x138cb: 0xe0004402, - 0x138cd: 0xe00073bf, - 0x138d0: 0xe0007ed0, 0x138d1: 0xe0006af2, 0x138d3: 0xe0006463, - 0x138d6: 0xe00069ac, - 0x138da: 0xe000719c, - 0x138ec: 0xe00066ef, 0x138ed: 0xe0007695, 0x138ee: 0xe000591a, 0x138ef: 0xe000977a, - 0x138f1: 0xe0009dc2, - 0x138f4: 0xe00072af, - 0x138fc: 0xe0005b48, 0x138fd: 0xe0009f57, - // Block 0x4e4, offset 0x13900 - 0x13900: 0xe00067cc, - 0x13906: 0xe0005c76, - 0x13911: 0xe0005f76, 0x13913: 0xe0005df1, - 0x13914: 0xe000667b, 0x13915: 0xe0009653, 0x13917: 0xe00085a3, - 0x13918: 0xe0006bf2, 0x1391a: 0xe0008064, - 0x1391e: 0xe0005b98, 0x1391f: 0xe0008eb7, - 0x13921: 0xe00093e0, 0x13923: 0xe0008720, - 0x13925: 0xe000976e, 0x13926: 0xe0008d4d, - 0x1392a: 0xe0008aa3, - 0x1392c: 0xe000701f, 0x1392d: 0xe0008348, 0x1392f: 0xe00090ef, - 0x1393d: 0xe0009ddf, 0x1393f: 0xe000815f, - // Block 0x4e5, offset 0x13940 - 0x13941: 0xe0005388, 0x13943: 0xe00064a2, - 0x13946: 0xe0009512, - 0x13949: 0xe00096a1, 0x1394a: 0xe0007bd2, 0x1394b: 0xe0007bd5, - 0x1394e: 0xe0004b8b, - 0x13953: 0xe0008038, - 0x13955: 0xe0008261, 0x13956: 0xe000448f, - 0x13958: 0xe0007eab, 0x13959: 0xe000a386, - 0x1395e: 0xe0009656, - 0x13961: 0xe0006876, 0x13963: 0xe00072b3, - 0x13964: 0xe0008264, - 0x13968: 0xe0004de1, 0x13969: 0xe0009b72, 0x1396a: 0xe00060fd, 0x1396b: 0xe0005637, - 0x1396d: 0xe0007022, - 0x1397a: 0xe0008fab, - 0x1397e: 0xe0005b21, - // Block 0x4e6, offset 0x13980 - 0x13980: 0xe0007ccc, - 0x13984: 0xe000628e, 0x13986: 0xe000773a, 0x13987: 0xe00061a9, - 0x13989: 0xe0007bd8, 0x1398a: 0xe000478e, - 0x1398c: 0xe000a1c4, 0x1398f: 0xe00083bb, - 0x13991: 0xe0004376, - 0x13994: 0xe0008724, 0x13997: 0xe00080fc, - 0x13999: 0xe000999a, 0x1399b: 0xe0006ebe, - 0x1399d: 0xe00053bc, - 0x139a4: 0xe000a16c, 0x139a5: 0xe000972e, 0x139a6: 0xe00094ba, - 0x139a8: 0xe000a790, 0x139a9: 0xe0006bda, 0x139aa: 0xe000748f, - 0x139af: 0xe0006d57, - 0x139b0: 0xe000a768, - 0x139ba: 0xe0008c2a, - // Block 0x4e7, offset 0x139c0 - 0x139c1: 0xe00047eb, - 0x139c9: 0xe00085a6, - 0x139cd: 0xe00057a5, 0x139ce: 0xe0007493, 0x139cf: 0xe0008728, - 0x139d0: 0xe00060c4, - 0x139d5: 0xe0007f9d, - 0x139dc: 0xe0005890, 0x139dd: 0xe0007b96, - 0x139e4: 0xe00056b6, 0x139e5: 0xe00077c7, - 0x139e9: 0xe00064a6, 0x139ea: 0xe000719f, - 0x139f7: 0xe000882d, - 0x139f9: 0xe000773d, 0x139fa: 0xe0005cff, 0x139fb: 0xe0008ce1, - 0x139fd: 0xe00099d0, 0x139ff: 0xe00049cf, - // Block 0x4e8, offset 0x13a00 - 0x13a00: 0xe0009ade, 0x13a02: 0xe0007b99, - 0x13a04: 0xe00050e5, 0x13a06: 0xe0005a3e, 0x13a07: 0xe0007025, - 0x13a0a: 0xe0007cb4, 0x13a0b: 0xe0006a25, - 0x13a16: 0xe00078f1, 0x13a17: 0xe0006532, - 0x13a18: 0xe0007863, 0x13a1a: 0xe0006e3e, - 0x13a22: 0xe0005ae8, - 0x13a27: 0xe0004492, - 0x13a29: 0xe00064ba, - 0x13a2d: 0xe0005755, 0x13a2f: 0xe0009b82, - 0x13a3c: 0xe00061dc, 0x13a3f: 0xe00056f2, - // Block 0x4e9, offset 0x13a40 - 0x13a41: 0xe00050e8, - 0x13a4e: 0xe000a40d, - 0x13a50: 0xe0009fc9, 0x13a53: 0xe000a6fe, - 0x13a54: 0xe00044be, 0x13a55: 0xe0009420, - 0x13a5b: 0xe000a1ce, - 0x13a5c: 0xe0005a41, 0x13a5e: 0xe0007fa0, 0x13a5f: 0xe000a410, - 0x13a67: 0xe000a7ef, - 0x13a6b: 0xe000a7bf, - 0x13a6c: 0xe0004e80, 0x13a6f: 0xe0004e83, - 0x13a71: 0xe000732c, - 0x13a78: 0xe00085df, 0x13a79: 0xe000a4bf, 0x13a7a: 0xe000a7c2, 0x13a7b: 0xe0005f1e, - // Block 0x4ea, offset 0x13a80 - 0x13a8a: 0xe000614b, 0x13a8b: 0xe0007bdb, - 0x13a8c: 0xe00063d2, 0x13a8d: 0xe00069af, - 0x13a93: 0xe00084ac, - 0x13a95: 0xe0009516, - 0x13aa3: 0xe000493c, - 0x13aa4: 0xe0008ce4, - 0x13aa8: 0xe00067cf, 0x13aa9: 0xe0009973, 0x13aaa: 0xe0005671, - 0x13aaf: 0xe0004ce7, - 0x13ab0: 0xe0008267, 0x13ab1: 0xe0009413, - 0x13ab4: 0xe000826a, - // Block 0x4eb, offset 0x13ac0 - 0x13ac0: 0xe0008eba, - 0x13ac5: 0xe0008aa7, 0x13ac6: 0xe0008866, 0x13ac7: 0xe0006af5, - 0x13ac9: 0xe00059fe, 0x13acb: 0xe00052fc, - 0x13ad4: 0xe000a67d, - 0x13ad9: 0xe0007d47, 0x13adb: 0xe0008e78, - 0x13ade: 0xe000a5ca, 0x13adf: 0xe0004b8e, - 0x13ae3: 0xe0005121, - 0x13ae4: 0xe000a0a5, - 0x13ae9: 0xe0004960, - 0x13aec: 0xe0004964, 0x13aed: 0xe000916b, - 0x13af8: 0xe000706d, 0x13af9: 0xe0007f50, 0x13afb: 0xe0006fcb, - 0x13afe: 0xe0007558, - // Block 0x4ec, offset 0x13b00 - 0x13b00: 0xe000971a, 0x13b02: 0xe00066f3, 0x13b03: 0xe0007497, - 0x13b06: 0xe000a29b, - 0x13b08: 0xe0007c35, 0x13b09: 0xe00067d2, 0x13b0a: 0xe0005cdd, 0x13b0b: 0xe00057f9, - 0x13b11: 0xe000532c, - 0x13b18: 0xe000903b, 0x13b1a: 0xe000693d, - 0x13b1c: 0xe0006242, 0x13b1d: 0xe00050eb, - 0x13b21: 0xe0006b40, - 0x13b25: 0xe0006dd6, - 0x13b28: 0xe0008acb, 0x13b29: 0xe0008d50, - 0x13b34: 0xe0009482, 0x13b35: 0xe0007a41, 0x13b37: 0xe0004dd5, - 0x13b3a: 0xe0007bde, 0x13b3b: 0xe000961e, - 0x13b3f: 0xe0008100, - // Block 0x4ed, offset 0x13b40 - 0x13b40: 0xe000563b, - 0x13b4c: 0xe00049b8, 0x13b4e: 0xe0004266, - 0x13b55: 0xe000742f, 0x13b57: 0xe000a61e, - 0x13b59: 0xe0009d86, - 0x13b5f: 0xe0008162, - 0x13b60: 0xe00066af, - 0x13b64: 0xe000826d, 0x13b65: 0xe000602e, 0x13b66: 0xe0009f9a, - 0x13b68: 0xe0007328, - 0x13b6e: 0xe00066b3, - 0x13b74: 0xe000a413, 0x13b76: 0xe0008abf, - 0x13b78: 0xe0007d4a, - // Block 0x4ee, offset 0x13b80 - 0x13b82: 0xe00057e1, 0x13b83: 0xe000640e, - 0x13b8c: 0xe0006332, 0x13b8d: 0xe00082e0, - 0x13b98: 0xe00083e5, - 0x13b9e: 0xe0005d8d, 0x13b9f: 0xe0005fae, - 0x13ba2: 0xe000a34b, 0x13ba3: 0xe00056de, - 0x13bad: 0xe0005ce0, - 0x13bb3: 0xe0005404, - 0x13bb4: 0xe000912f, - 0x13bba: 0xe00056f5, 0x13bbb: 0xe0005bb3, - 0x13bbd: 0xe0008dfb, - // Block 0x4ef, offset 0x13bc0 - 0x13bc0: 0xe00070d6, - 0x13bc4: 0xe0009a28, 0x13bc7: 0xe0005d90, - 0x13bca: 0xe0006031, 0x13bcb: 0xe00074e3, - 0x13bd2: 0xe0005e8d, - 0x13bda: 0xe0009d3a, 0x13bdb: 0xe0009d3e, - 0x13be0: 0xe000630a, 0x13be3: 0xe00050ee, - 0x13bec: 0xe0006e42, 0x13bef: 0xe0007e72, - 0x13bf2: 0xe00098b4, - 0x13bf7: 0xe0005434, - 0x13bf9: 0xe000a142, 0x13bfb: 0xe00083be, - 0x13bfe: 0xe0006f06, - // Block 0x4f0, offset 0x13c00 - 0x13c05: 0xe0007370, - 0x13c0d: 0xe000427e, - 0x13c11: 0xe0007b65, - 0x13c15: 0xe0007a45, - 0x13c1f: 0xe00057c1, - 0x13c21: 0xe00058bd, 0x13c22: 0xe0008f1b, 0x13c23: 0xe0005893, - 0x13c31: 0xe00047ee, 0x13c32: 0xe00045bf, - 0x13c36: 0xe0008688, - 0x13c39: 0xe0005674, 0x13c3b: 0xe0005df5, - // Block 0x4f1, offset 0x13c40 - 0x13c40: 0xe000a2b3, - 0x13c44: 0xe0005283, 0x13c46: 0xe0008f7b, - 0x13c4a: 0xe0005f7e, - 0x13c4c: 0xe000a198, 0x13c4d: 0xe0007a05, 0x13c4e: 0xe0004236, - 0x13c52: 0xe000a26b, 0x13c53: 0xe00072f7, - 0x13c57: 0xe0004131, - 0x13c59: 0xe000755b, 0x13c5b: 0xe0008165, - 0x13c5d: 0xe00098b8, 0x13c5e: 0xe0008189, - 0x13c61: 0xe000a34f, 0x13c62: 0xe0004c57, 0x13c63: 0xe00083c1, - 0x13c68: 0xe0009e98, 0x13c6b: 0xe0006bf6, - 0x13c6e: 0xe00048cc, - 0x13c70: 0xe000711b, 0x13c72: 0xe0005196, - 0x13c77: 0xe00098bc, - 0x13c7d: 0xe0008538, 0x13c7e: 0xe0004f6d, 0x13c7f: 0xe0004f71, - // Block 0x4f2, offset 0x13c80 - 0x13c81: 0xe00080c8, 0x13c82: 0xe0005fc2, - 0x13c88: 0xe0004134, 0x13c8b: 0xe0005474, - 0x13c8d: 0xe0009e33, - 0x13c92: 0xe0005300, - 0x13c96: 0xe00071a2, 0x13c97: 0xe00090f3, - 0x13c9b: 0xe0008869, - 0x13c9d: 0xe00067d5, 0x13c9e: 0xe00048b0, - 0x13ca2: 0xe00064be, - 0x13caa: 0xe0004495, 0x13cab: 0xe0009f02, - 0x13cb4: 0xe00047f1, - // Block 0x4f3, offset 0x13cc0 - 0x13cc0: 0xe00084e4, 0x13cc1: 0xe00087b0, 0x13cc2: 0xe000595a, - 0x13cc5: 0xe0008774, - 0x13cca: 0xe000525b, - 0x13ccd: 0xe00048d0, 0x13ccf: 0xe0005cb3, - 0x13cd2: 0xe00067d8, - 0x13cd4: 0xe0007b9c, 0x13cd5: 0xe0008207, - 0x13cd8: 0xe0004cea, 0x13cd9: 0xe0004d45, - 0x13cdc: 0xe0006632, 0x13cdd: 0xe000872c, 0x13cdf: 0xe0006af8, - 0x13ce1: 0xe0005cb6, - 0x13ce8: 0xe0006940, - 0x13cef: 0xe0008ebd, - 0x13cf1: 0xe0009ebf, 0x13cf3: 0xe0006c96, - 0x13cf4: 0xe0006442, 0x13cf5: 0xe0006445, - 0x13cf8: 0xe00056f8, 0x13cf9: 0xe00049bb, - 0x13cfd: 0xe0008c2d, 0x13cfe: 0xe0004498, - // Block 0x4f4, offset 0x13d00 - 0x13d04: 0xe0009429, 0x13d07: 0xe000667f, - 0x13d0a: 0xe0009d8a, - 0x13d0c: 0xe00048d4, - 0x13d10: 0xe0004262, 0x13d12: 0xe0009e36, 0x13d13: 0xe0006635, - 0x13d15: 0xe0008270, - 0x13d18: 0xe0008168, 0x13d19: 0xe0006448, 0x13d1a: 0xe000886c, - 0x13d25: 0xe0007ec4, 0x13d27: 0xe0004717, - 0x13d2a: 0xe0009c21, 0x13d2b: 0xe000999d, - 0x13d30: 0xe00044da, - 0x13d36: 0xe000733c, - 0x13d38: 0xe0005b9b, 0x13d3a: 0xe00095f2, 0x13d3b: 0xe0006ec2, - // Block 0x4f5, offset 0x13d40 - 0x13d41: 0xe000437a, - 0x13d44: 0xe0007837, - 0x13d4d: 0xe00086ac, - 0x13d56: 0xe0007c6e, - 0x13d58: 0xe0004b31, - 0x13d5c: 0xe00095b6, 0x13d5e: 0xe000654a, 0x13d5f: 0xe0004f75, - 0x13d60: 0xe0005438, - 0x13d64: 0xe00057a9, - 0x13d6a: 0xe0005e3d, - 0x13d6d: 0xe000a91a, 0x13d6f: 0xe00099d4, - 0x13d72: 0xe0007340, - 0x13d74: 0xe000576d, - 0x13d7f: 0xe0006d5a, - // Block 0x4f6, offset 0x13d80 - 0x13d81: 0xe0007e75, 0x13d83: 0xe000538c, - 0x13d86: 0xe0006683, 0x13d87: 0xe0009d0d, - 0x13d88: 0xe000a184, 0x13d89: 0xe00050f1, 0x13d8b: 0xe0004593, - 0x13d8f: 0xe0004e56, - 0x13d93: 0xe0005f26, - 0x13d96: 0xe00073c2, 0x13d97: 0xe0006b43, - 0x13d98: 0xe0008aab, - 0x13da1: 0xe0004557, - 0x13da8: 0xe00075e5, 0x13da9: 0xe00054f5, 0x13daa: 0xe00099c8, - 0x13dac: 0xe00050f4, 0x13daf: 0xe0004ced, - 0x13db2: 0xe0004f11, - 0x13db7: 0xe000942c, - 0x13dba: 0xe0004196, - 0x13dbd: 0xe00057ad, 0x13dbf: 0xe00088eb, - // Block 0x4f7, offset 0x13dc0 - 0x13dc0: 0xe0004a1b, - 0x13dd2: 0xe000419a, - 0x13dd4: 0xe0004f39, 0x13dd6: 0xe00045e3, - 0x13dda: 0xe0004848, - 0x13ddc: 0xe00085e2, 0x13ddd: 0xe000886f, - 0x13de3: 0xe000a145, - 0x13de5: 0xe0004b4c, - 0x13df1: 0xe0009f5b, 0x13df3: 0xe0004888, - 0x13df4: 0xe0006c9a, - 0x13df8: 0xe000971e, - // Block 0x4f8, offset 0x13e00 - 0x13e00: 0xe00078c9, 0x13e02: 0xe0008b7f, 0x13e03: 0xe0006775, - 0x13e07: 0xe0004b50, - 0x13e08: 0xe0004764, 0x13e09: 0xe0006502, 0x13e0a: 0xe000749b, - 0x13e0c: 0xe000a4c3, 0x13e0e: 0xe0009be5, - 0x13e10: 0xe000764d, 0x13e11: 0xe0008448, 0x13e13: 0xe000a76c, - 0x13e14: 0xe000832c, 0x13e15: 0xe0006bba, 0x13e16: 0xe000a865, 0x13e17: 0xe0009abe, - 0x13e18: 0xe0005079, 0x13e1b: 0xe0007d4d, - 0x13e1d: 0xe000755e, 0x13e1f: 0xe00070ea, - 0x13e22: 0xe000a851, 0x13e23: 0xe00045db, - 0x13e25: 0xe000526b, - 0x13e2a: 0xe00063d6, - 0x13e2d: 0xe0006ec6, - 0x13e31: 0xe000a1d1, - 0x13e34: 0xe0007028, 0x13e36: 0xe0004137, - 0x13e3a: 0xe00090f7, 0x13e3b: 0xe0008e7b, - 0x13e3c: 0xe0008bef, 0x13e3e: 0xe00085e5, - // Block 0x4f9, offset 0x13e40 - 0x13e41: 0xe000484b, - 0x13e46: 0xe0008872, - 0x13e4b: 0xe0008ec0, - 0x13e50: 0xe0006afb, 0x13e51: 0xe000844b, - 0x13e54: 0xe0008ce7, 0x13e55: 0xe0009dae, 0x13e56: 0xe0009f0b, 0x13e57: 0xe000a36b, - 0x13e58: 0xe0004d79, 0x13e5b: 0xe0008830, - 0x13e5e: 0xe0006afe, - 0x13e60: 0xe0007b35, 0x13e61: 0xe000a740, 0x13e62: 0xe00072b7, 0x13e63: 0xe0007b9f, - 0x13e66: 0xe00073c5, - 0x13e69: 0xe00073c8, 0x13e6b: 0xe0009a79, - 0x13e6c: 0xe0004cf0, 0x13e6d: 0xe0004df6, 0x13e6e: 0xe000896f, - 0x13e70: 0xe000a90e, 0x13e71: 0xe000a4fd, 0x13e72: 0xe000a148, 0x13e73: 0xe0006c9e, - 0x13e75: 0xe0006e46, - 0x13e79: 0xe0009592, - 0x13e7c: 0xe000a695, 0x13e7f: 0xe0004b01, - // Block 0x4fa, offset 0x13e80 - 0x13e82: 0xe0008d53, - 0x13e84: 0xe0005b24, 0x13e85: 0xe0008e7e, 0x13e86: 0xe0004ae7, 0x13e87: 0xe000498e, - 0x13e8c: 0xe000903e, 0x13e8d: 0xe00084b0, - 0x13e91: 0xe0004aeb, 0x13e93: 0xe0006d5d, - 0x13e95: 0xe0009b0e, - 0x13e98: 0xe000820a, 0x13e9a: 0xe00096e3, - 0x13e9e: 0xe0007889, - 0x13ea0: 0xe0006f9a, 0x13ea1: 0xe0004767, 0x13ea2: 0xe000a29f, 0x13ea3: 0xe0006100, - 0x13ea4: 0xe0007c38, 0x13ea5: 0xe00047f4, 0x13ea6: 0xe00070ee, 0x13ea7: 0xe0009e5a, - 0x13ea8: 0xe000a680, 0x13eaa: 0xe0006eca, - 0x13eb0: 0xe00071a5, 0x13eb2: 0xe0004991, - 0x13eb9: 0xe0006943, - 0x13ebc: 0xe00083c4, 0x13ebe: 0xe00082f8, 0x13ebf: 0xe0008cea, - // Block 0x4fb, offset 0x13ec0 - 0x13ec2: 0xe0009596, - 0x13ec4: 0xe00072bb, 0x13ec7: 0xe0005390, - 0x13ec9: 0xe000818c, 0x13ecb: 0xe000960a, - 0x13ecd: 0xe00087d9, 0x13ecf: 0xe00097d0, - 0x13ed2: 0xe000584b, - 0x13ed6: 0xe0005ab8, - 0x13edb: 0xe000820d, - 0x13edc: 0xe00095d6, 0x13ede: 0xe0009d8e, 0x13edf: 0xe00073f5, - 0x13ee0: 0xe000a7a8, 0x13ee1: 0xe00073cb, - 0x13ee4: 0xe00075e9, 0x13ee6: 0xe0009635, 0x13ee7: 0xe000a14b, - 0x13eea: 0xe0008b83, 0x13eeb: 0xe0004212, - 0x13eed: 0xe0008210, 0x13eee: 0xe00085a9, - 0x13ef0: 0xe00073f8, 0x13ef1: 0xe000a7d4, 0x13ef3: 0xe0007699, - 0x13ef4: 0xe000a08d, 0x13ef6: 0xe000750b, 0x13ef7: 0xe0009ede, - 0x13ef8: 0xe0008c30, 0x13efa: 0xe00078cd, - 0x13efc: 0xe000a7ac, 0x13efe: 0xe000514e, - // Block 0x4fc, offset 0x13f00 - 0x13f00: 0xe0006004, 0x13f01: 0xe0007631, 0x13f02: 0xe000816b, - 0x13f04: 0xe00056ba, 0x13f07: 0xe00044de, - 0x13f0c: 0xe0004173, 0x13f0e: 0xe00061ac, - 0x13f10: 0xe0006246, 0x13f11: 0xe000a3a4, - 0x13f14: 0xe0009fcd, 0x13f16: 0xe000709a, 0x13f17: 0xe00063da, - 0x13f19: 0xe00045f7, 0x13f1a: 0xe0008468, 0x13f1b: 0xe000437e, - 0x13f1c: 0xe0008104, 0x13f1d: 0xe0006b01, - 0x13f20: 0xe0007e78, 0x13f23: 0xe0007fe2, - 0x13f26: 0xe000471b, - 0x13f28: 0xe0006007, 0x13f2b: 0xe00088b7, - 0x13f2c: 0xe0005bdd, - 0x13f33: 0xe0004c5a, - 0x13f37: 0xe0007c71, - 0x13f39: 0xe0004f15, - 0x13f3e: 0xe0005e15, - // Block 0x4fd, offset 0x13f40 - 0x13f41: 0xe000a500, 0x13f43: 0xe000a743, - 0x13f49: 0xe0008fd3, - 0x13f4c: 0xe0007d68, 0x13f4e: 0xe000a805, 0x13f4f: 0xe000507c, - 0x13f54: 0xe0006e8a, 0x13f56: 0xe0009309, - 0x13f58: 0xe0007433, 0x13f59: 0xe00096e6, 0x13f5a: 0xe0005394, - 0x13f5c: 0xe0006638, 0x13f5f: 0xe0008d56, - 0x13f66: 0xe00046bb, - 0x13f6b: 0xe0006f26, - 0x13f6c: 0xe0006946, 0x13f6f: 0xe0007985, - 0x13f70: 0xe00083c7, 0x13f71: 0xe0006e8e, - 0x13f74: 0xe0004597, 0x13f77: 0xe000a416, - 0x13f7d: 0xe0007ba2, 0x13f7f: 0xe000a3a7, - // Block 0x4fe, offset 0x13f80 - 0x13f80: 0xe0005573, - 0x13f89: 0xe0008273, 0x13f8a: 0xe000655e, - 0x13f8c: 0xe0007a49, 0x13f8e: 0xe0007208, - 0x13f90: 0xe00071a8, 0x13f92: 0xe00092d9, 0x13f93: 0xe000783b, - 0x13f96: 0xe00092dd, - 0x13f9a: 0xe0009269, - 0x13f9c: 0xe000543c, 0x13f9e: 0xe00078dd, - // Block 0x4ff, offset 0x13fc0 - 0x13ff7: 0xe0004874, - 0x13fff: 0xe000476a, - // Block 0x500, offset 0x14000 - 0x14001: 0xe000a5c2, - 0x14006: 0xe000565c, 0x14007: 0xe00043ca, - 0x14008: 0xe000507f, 0x14009: 0xe00073fb, 0x1400a: 0xe0009ee2, - 0x1400c: 0xe0007da7, 0x1400e: 0xe000720b, - 0x14015: 0xe00073ce, 0x14016: 0xe0009880, - 0x1401a: 0xe000559f, - 0x14021: 0xe0006ca2, 0x14022: 0xe000a5a2, - 0x14028: 0xe000a908, 0x1402a: 0xe000a419, 0x1402b: 0xe0007ba5, - 0x1402c: 0xe0008875, - 0x14033: 0xe0006a29, - 0x14038: 0xe00099a0, 0x14039: 0xe0009e9b, 0x1403a: 0xe00073d1, - // Block 0x501, offset 0x14040 - 0x14042: 0xe00096a4, 0x14043: 0xe0005ef2, - 0x1404a: 0xe0005ede, - 0x1404c: 0xe000600a, 0x1404d: 0xe0005ce3, - 0x14053: 0xe00060c7, - 0x14054: 0xe00069b2, - 0x14058: 0xe0005ef6, - 0x1405d: 0xe0009d10, 0x1405e: 0xe0008b87, - 0x14060: 0xe0006778, 0x14061: 0xe00087b3, 0x14062: 0xe0004940, - 0x14067: 0xe0006a05, - 0x14068: 0xe000a503, 0x14069: 0xe0009cca, 0x1406a: 0xe0009b3e, 0x1406b: 0xe0004a1f, - 0x1406c: 0xe00093fb, 0x1406f: 0xe0008833, - 0x14070: 0xe0006fbf, 0x14072: 0xe00085e8, 0x14073: 0xe0008427, - 0x14074: 0xe0004e2f, 0x14076: 0xe0009d92, 0x14077: 0xe0005eb3, - 0x14078: 0xe0005477, 0x1407a: 0xe000a642, 0x1407b: 0xe0006949, - 0x1407c: 0xe00095da, 0x1407d: 0xe0008424, 0x1407f: 0xe0006103, - // Block 0x502, offset 0x14080 - 0x14080: 0xe0009f9d, 0x14081: 0xe0006832, 0x14082: 0xe0005b00, 0x14083: 0xe0008530, - 0x14084: 0xe000a683, 0x14086: 0xe0006582, 0x14087: 0xe00085ac, - 0x14088: 0xe000413a, 0x1408a: 0xe00088bb, - 0x14091: 0xe00090fb, 0x14093: 0xe0006a09, - 0x14099: 0xe0008ec3, 0x1409a: 0xe0005b03, - 0x1409c: 0xe0006b04, 0x1409e: 0xe0006ca6, - 0x140a0: 0xe000644b, 0x140a1: 0xe0004438, 0x140a2: 0xe000a26f, 0x140a3: 0xe0005eb6, - 0x140a4: 0xe00094be, 0x140a6: 0xe000677b, - 0x140aa: 0xe000916f, - 0x140ac: 0xe0008778, 0x140ad: 0xe00054f8, - 0x140b4: 0xe0005b06, - 0x140bb: 0xe000677e, - 0x140bc: 0xe0004c5d, 0x140bd: 0xe0006cd8, - // Block 0x503, offset 0x140c0 - 0x140c4: 0xe0009041, 0x140c5: 0xe00098d5, 0x140c7: 0xe00082b4, - 0x140c8: 0xe0008fd7, 0x140ca: 0xe000926d, 0x140cb: 0xe0007625, - 0x140cd: 0xe0006f0a, 0x140cf: 0xe0007b69, - 0x140d0: 0xe00074c7, 0x140d3: 0xe0008730, - 0x140d4: 0xe00069b5, 0x140d6: 0xe000709e, - 0x140db: 0xe0004968, - // Block 0x504, offset 0x14100 - 0x14124: 0xe00088bf, 0x14126: 0xe0006b07, 0x14127: 0xe0005166, - 0x1412b: 0xe000a213, - 0x1412d: 0xe00085eb, - 0x14130: 0xe0008e81, 0x14133: 0xe0004e59, - 0x14134: 0xe0006781, 0x14136: 0xe000423a, 0x14137: 0xe0005082, - // Block 0x505, offset 0x14140 - 0x14141: 0xe0009133, - 0x14145: 0xe00096a7, - 0x1414a: 0xe000811c, - 0x1414e: 0xe0008ec6, - 0x14150: 0xe000a2bf, - 0x14159: 0xe0008ced, - 0x14160: 0xe00096e9, 0x14163: 0xe0009905, - 0x14168: 0xe00097d3, 0x1416b: 0xe0004bca, - 0x14172: 0xe0009299, 0x14173: 0xe0008d73, - 0x1417a: 0xe0006784, - 0x1417e: 0xe0009044, - // Block 0x506, offset 0x14180 - 0x14182: 0xe00050f7, - 0x14186: 0xe0009ba7, - 0x1418b: 0xe0006352, - 0x1418c: 0xe0009173, 0x1418e: 0xe0009a7c, 0x1418f: 0xe000413d, - 0x14195: 0xe0008acf, 0x14196: 0xe0009486, 0x14197: 0xe00067db, - 0x1419b: 0xe0009c86, - 0x1419d: 0xe0004465, 0x1419f: 0xe0004f3d, - 0x141a1: 0xe00088c3, 0x141a3: 0xe0006e4a, - 0x141a8: 0xe0004994, 0x141aa: 0xe0004e1d, 0x141ab: 0xe000496c, - 0x141ac: 0xe0004e86, 0x141af: 0xe0005a44, - 0x141b1: 0xe00099a3, 0x141b3: 0xe00054fb, - 0x141bc: 0xe0004d31, - // Block 0x507, offset 0x141c0 - 0x141c6: 0xe0008f4f, - 0x141c8: 0xe0007070, 0x141c9: 0xe0005867, 0x141ca: 0xe0007f24, - 0x141cf: 0xe00053d8, - 0x141d0: 0xe00094c2, - 0x141d4: 0xe0009ae2, - 0x141dd: 0xe00049be, 0x141de: 0xe0004468, 0x141df: 0xe0009065, - 0x141ea: 0xe0008dcb, - 0x141f0: 0xe0008213, - 0x141f4: 0xe0007f54, 0x141f5: 0xe0008dcf, 0x141f6: 0xe0008c63, - 0x141fd: 0xe0007fe5, - // Block 0x508, offset 0x14200 - 0x14200: 0xe0008ad3, 0x14202: 0xe0008216, - 0x14204: 0xe0008c33, 0x14207: 0xe00044c2, - 0x14208: 0xe00054fe, 0x14209: 0xe00091f8, 0x1420a: 0xe000a389, - 0x1420c: 0xe00093ad, 0x1420f: 0xe0008c66, - 0x14215: 0xe0009f5f, - 0x14219: 0xe0009868, - 0x1421c: 0xe0009884, 0x1421f: 0xe00088c7, - 0x14220: 0xe000945e, 0x14223: 0xe0005e19, - 0x14224: 0xe0008dff, - 0x14232: 0xe0008f53, - 0x14234: 0xe000986c, 0x14236: 0xe0004de5, - 0x1423b: 0xe0004bcd, - // Block 0x509, offset 0x14240 - 0x14241: 0xe0008cf0, - 0x14245: 0xe0009732, 0x14247: 0xe0008836, - 0x14249: 0xe00055af, 0x1424a: 0xe0008e84, 0x1424b: 0xe0008c69, - 0x1424d: 0xe00077cb, - 0x14250: 0xe000598e, 0x14251: 0xe000948a, 0x14253: 0xe0009068, - 0x14254: 0xe0008a03, - 0x14259: 0xe0005d2f, - 0x14261: 0xe0006f4e, - 0x14269: 0xe00049df, 0x1426a: 0xe0005d03, 0x1426b: 0xe000749f, - 0x1426c: 0xe0004d91, - 0x14271: 0xe0009a7f, 0x14273: 0xe0004d95, - // Block 0x50a, offset 0x14280 - 0x14280: 0xe0004c60, - 0x14286: 0xe0009659, - 0x1428a: 0xe00091fb, 0x1428b: 0xe0007635, - 0x1428c: 0xe0004df9, 0x1428d: 0xe0004d49, - 0x14292: 0xe000a1e3, - 0x1429f: 0xe0007a09, - 0x142a8: 0xe0005a02, 0x142ab: 0xe00090ff, - 0x142b8: 0xe0009870, 0x142b9: 0xe000906b, 0x142ba: 0xe00096ec, 0x142bb: 0xe0004140, - 0x142bc: 0xe0008510, 0x142be: 0xe0007437, - // Block 0x50b, offset 0x142c0 - 0x142c3: 0xe0004b91, - 0x142c5: 0xe0005a47, 0x142c7: 0xe0008a07, - 0x142c8: 0xe0008ec9, 0x142c9: 0xe00087b6, - 0x142d2: 0xe00095de, 0x142d3: 0xe0005df9, - 0x142d4: 0xe000663b, 0x142d5: 0xe00046bf, - 0x142db: 0xe000584f, - 0x142dc: 0xe0009976, 0x142dd: 0xe000a7d7, 0x142de: 0xe0005e75, 0x142df: 0xe000953e, - 0x142e6: 0xe000591e, 0x142e7: 0xe00065e2, - 0x142e8: 0xe0004a4b, 0x142e9: 0xe000644e, 0x142ea: 0xe0005c16, - 0x142ef: 0xe00091a7, - 0x142f0: 0xe0007867, 0x142f3: 0xe0008e87, - 0x142f8: 0xe00071ab, 0x142f9: 0xe0006687, 0x142fb: 0xe000668b, - 0x142fe: 0xe0008973, 0x142ff: 0xe0007961, - // Block 0x50c, offset 0x14300 - 0x14300: 0xe0007cd0, 0x14302: 0xe000488c, - 0x14304: 0xe000a04d, 0x14305: 0xe00080cc, 0x14306: 0xe0005ab0, - 0x14309: 0xe0008977, - 0x1430d: 0xe0009542, 0x1430e: 0xe0004b94, - 0x14312: 0xe000687a, - 0x14314: 0xe0005d33, 0x14317: 0xe0004306, - 0x14318: 0xe000a5a6, - 0x1431d: 0xe0007964, 0x1431e: 0xe000a091, 0x1431f: 0xe0004b44, - 0x14321: 0xe00069b8, 0x14322: 0xe00058da, 0x14323: 0xe00058f2, - 0x14324: 0xe0005a6b, - // Block 0x50d, offset 0x14340 - 0x1435b: 0xe00074a3, - 0x1435c: 0xe00047f7, 0x1435f: 0xe0009f0e, - 0x14362: 0xe0005785, 0x14363: 0xe000577d, - 0x14366: 0xe0009cce, - 0x14368: 0xe0006562, - 0x1436d: 0xe0006b0a, 0x1436e: 0xe000657a, 0x1436f: 0xe0006566, - 0x14370: 0xe0009103, 0x14371: 0xe0007ec8, 0x14372: 0xe000522f, - 0x1437b: 0xe000752f, - 0x1437f: 0xe000951a, - // Block 0x50e, offset 0x14380 - 0x14380: 0xe000423e, 0x14382: 0xe0007fa3, 0x14383: 0xe0007c74, - 0x14384: 0xe000a875, 0x14385: 0xe00074a7, - 0x1438d: 0xe0005696, 0x1438e: 0xe0007b39, - 0x14391: 0xe0004f19, 0x14393: 0xe0007588, - 0x14394: 0xe000630e, 0x14395: 0xe0007c77, - 0x143a2: 0xe00096ef, - 0x143a4: 0xe000844e, 0x143a5: 0xe000a36f, 0x143a6: 0xe0004143, - 0x143a8: 0xe0009bbc, 0x143aa: 0xe00088cb, 0x143ab: 0xe0006292, - 0x143ac: 0xe0007df3, 0x143ad: 0xe0009177, - 0x143b0: 0xe00072fb, 0x143b2: 0xe000452e, - 0x143b4: 0xe000a698, 0x143b7: 0xe00061af, - 0x143b8: 0xe00065fe, 0x143b9: 0xe00088cf, 0x143ba: 0xe00051be, - 0x143bd: 0xe00097d6, - // Block 0x50f, offset 0x143c0 - 0x143c0: 0xe0009c24, 0x143c1: 0xe00070f2, 0x143c2: 0xe0004a73, 0x143c3: 0xe0005501, - 0x143c5: 0xe000a728, 0x143c6: 0xe0007989, - 0x143c8: 0xe000a353, 0x143cb: 0xe0009e39, - 0x143cc: 0xe0008276, 0x143cd: 0xe000702b, 0x143cf: 0xe0009c39, - 0x143d0: 0xe0009874, 0x143d1: 0xe0004c63, - 0x143d4: 0xe0005504, 0x143d5: 0xe00046c3, 0x143d6: 0xe00088ef, 0x143d7: 0xe000565f, - 0x143d9: 0xe0008839, 0x143da: 0xe0009c08, - 0x143dd: 0xe0006d60, 0x143de: 0xe00059c2, 0x143df: 0xe00070a2, - 0x143e0: 0xe0008cf3, 0x143e1: 0xe0008f1f, 0x143e2: 0xe00066f7, 0x143e3: 0xe0005922, - 0x143ee: 0xe0009638, - 0x143f1: 0xe0008e8a, 0x143f2: 0xe0009107, - 0x143f4: 0xe0009ae6, 0x143f5: 0xe0004e5c, 0x143f6: 0xe000818f, - 0x143f8: 0xe0008500, - 0x143fc: 0xe0009f77, 0x143fe: 0xe000821c, - // Block 0x510, offset 0x14400 - 0x14401: 0xe0005686, 0x14402: 0xe00071ae, - 0x14407: 0xe0007fa6, - 0x14409: 0xe0008bf3, 0x1440a: 0xe0008219, 0x1440b: 0xe000803c, - 0x1440d: 0xe0009d62, 0x1440e: 0xe0004997, 0x1440f: 0xe0007651, - 0x14410: 0xe0009fa0, 0x14411: 0xe000a622, 0x14412: 0xe0008ecc, 0x14413: 0xe0005507, - 0x14414: 0xe0005340, 0x14415: 0xe000816e, - 0x14418: 0xe0004cf3, 0x14419: 0xe0007e7b, 0x1441b: 0xe0005bec, - 0x1441c: 0xe00070be, 0x1441d: 0xe00053dc, 0x1441e: 0xe000963b, - 0x14420: 0xe00080d0, 0x14421: 0xe000702e, 0x14423: 0xe000459b, - 0x14428: 0xe0007c7a, 0x14429: 0xe00088d3, - 0x1442c: 0xe00070aa, 0x1442d: 0xe0008cf6, 0x1442e: 0xe00091fe, 0x1442f: 0xe000568a, - 0x14432: 0xe0009047, - 0x14435: 0xe0008f23, 0x14436: 0xe0007eae, 0x14437: 0xe00094c6, - 0x14438: 0xe0006e4e, 0x1443a: 0xe000821f, - 0x1443c: 0xe0005b4b, 0x1443d: 0xe000446b, 0x1443f: 0xe0009f05, - // Block 0x511, offset 0x14440 - 0x14440: 0xe0007e7e, 0x14441: 0xe0005eb9, 0x14442: 0xe000a14e, 0x14443: 0xe00071b1, - 0x14444: 0xe000a57a, 0x14445: 0xe0008a0b, 0x14447: 0xe000842a, - 0x14448: 0xe0005dad, 0x1444a: 0xe000656a, - 0x1444c: 0xe00058c0, 0x1444f: 0xe00056fb, - 0x14450: 0xe0005ce6, 0x14451: 0xe0008374, - 0x14455: 0xe0007d08, - 0x14459: 0xe0005e79, - 0x14460: 0xe0006a2d, 0x14462: 0xe000a357, 0x14463: 0xe000513c, - 0x14466: 0xe00063de, - 0x14468: 0xe0009746, 0x1446a: 0xe0006b0d, - 0x1446f: 0xe00042c6, - 0x14470: 0xe0009baa, 0x14471: 0xe0004c66, 0x14473: 0xe00069bb, - 0x14475: 0xe0007031, - 0x14478: 0xe000883c, - 0x1447d: 0xe0004e89, - // Block 0x512, offset 0x14480 - 0x14481: 0xe0008010, 0x14483: 0xe000a0cd, - 0x14484: 0xe0004ee1, 0x14485: 0xe0009187, - 0x1448a: 0xe0004b97, - 0x1449c: 0xe000484e, 0x1449d: 0xe0009fe5, 0x1449e: 0xe00057e5, - 0x144a1: 0xe0004d4d, 0x144a2: 0xe0007b6d, - 0x144a8: 0xe0006787, 0x144aa: 0xe000942f, 0x144ab: 0xe00069be, - 0x144ad: 0xe00049d3, 0x144af: 0xe00053c0, - 0x144b4: 0xe0009a1c, 0x144b5: 0xe0007fa9, - 0x144bd: 0xe000550a, - // Block 0x513, offset 0x144c0 - 0x144c2: 0xe00075b5, - 0x144d2: 0xe00097d9, - 0x144d5: 0xe000a1b0, - 0x144d9: 0xe000694c, - 0x144de: 0xe0008330, - 0x144e2: 0xe00078e1, 0x144e3: 0xe000877c, - 0x144e7: 0xe00056be, - 0x144ed: 0xe0008b8b, - 0x144f0: 0xe0005d37, 0x144f1: 0xe0009cb3, 0x144f2: 0xe0005304, - 0x144f4: 0xe0007935, - 0x144fd: 0xe0008a0f, - // Block 0x514, offset 0x14500 - 0x14508: 0xe00058f6, 0x14509: 0xe0008222, 0x1450a: 0xe0008b8f, 0x1450b: 0xe00097dc, - 0x1450c: 0xe0008628, 0x1450d: 0xe0006451, 0x1450e: 0xe0008e8d, - 0x14512: 0xe0008e90, - 0x14516: 0xe0009b4a, 0x14517: 0xe000a746, - 0x14522: 0xe00096aa, 0x14523: 0xe000430a, - 0x14524: 0xe0004851, 0x14525: 0xe0007073, - 0x14529: 0xe0005fb2, 0x1452a: 0xe000572d, - 0x1452c: 0xe00071b4, - 0x14532: 0xe0008bf7, - 0x14534: 0xe000553d, 0x14535: 0xe000a6e6, 0x14536: 0xe0005ed4, 0x14537: 0xe000a463, - 0x14538: 0xe0006b92, 0x14539: 0xe0005b27, - // Block 0x515, offset 0x14540 - 0x14543: 0xe0007921, - 0x14547: 0xe00072bf, - 0x14549: 0xe0009908, 0x1454b: 0xe00096ad, - 0x1454d: 0xe0008c36, - 0x14550: 0xe000a452, 0x14552: 0xe0006f9e, - 0x1455c: 0xe00097df, 0x1455e: 0xe0007cd4, - 0x14562: 0xe000a16f, - 0x1456a: 0xe0005b69, 0x1456b: 0xe00083ca, - 0x1456c: 0xe0008734, 0x1456e: 0xe00096b0, 0x1456f: 0xe000a38c, - 0x14571: 0xe0006356, 0x14572: 0xe000523f, - 0x14574: 0xe0005a17, 0x14575: 0xe0004440, - // Block 0x516, offset 0x14580 - 0x14580: 0xe000783f, 0x14581: 0xe000a855, 0x14583: 0xe00073fe, - 0x14585: 0xe0007aad, 0x14587: 0xe00093e3, - 0x14589: 0xe0008225, 0x1458b: 0xe0006dbe, - 0x1458c: 0xe0005cb9, 0x1458d: 0xe0008f7f, 0x1458e: 0xe00077ad, 0x1458f: 0xe0005853, - 0x14590: 0xe0005cbc, 0x14591: 0xe0005125, - 0x14597: 0xe000711e, - 0x14598: 0xe0008b93, - 0x1459c: 0xe000678a, 0x1459d: 0xe0009a04, - 0x145a3: 0xe0008cf9, - 0x145a4: 0xe0006bfe, 0x145a6: 0xe0004cf6, 0x145a7: 0xe00094ca, - 0x145aa: 0xe0007fac, - 0x145ad: 0xe0004970, - 0x145b5: 0xe00093e6, - 0x145bf: 0xe0004f41, - // Block 0x517, offset 0x145c0 - 0x145c7: 0xe00067de, - 0x145cd: 0xe000568e, - 0x145d0: 0xe0004516, 0x145d1: 0xe0009cd2, 0x145d2: 0xe0006c0e, - 0x145d4: 0xe00096f2, 0x145d7: 0xe00082b8, - 0x145dc: 0xe000a6bd, 0x145de: 0xe0004ea9, 0x145df: 0xe0008d59, - 0x145f4: 0xe00059c6, 0x145f5: 0xe0006602, 0x145f7: 0xe0004854, - 0x145f8: 0xe0006372, 0x145fa: 0xe0007c9c, - 0x145ff: 0xe000897b, - // Block 0x518, offset 0x14600 - 0x14600: 0xe0004322, 0x14601: 0xe0009137, - 0x14605: 0xe000446e, - 0x14609: 0xe000a273, 0x1460b: 0xe0009e5d, - 0x1460e: 0xe0006d0e, 0x1460f: 0xe0006d87, - 0x14610: 0xe0006dda, 0x14612: 0xe0008ecf, - 0x14617: 0xe00045fb, - 0x1461b: 0xe0007a0d, - 0x1461e: 0xe0008120, - 0x14622: 0xe000635a, - 0x14624: 0xe0004c69, 0x14625: 0xe00072ff, 0x14626: 0xe0008b97, - 0x14637: 0xe000a4d7, - 0x14638: 0xe0004bd0, - 0x1463c: 0xe000660a, 0x1463e: 0xe0006034, - // Block 0x519, offset 0x14640 - 0x14640: 0xe00082fc, 0x14643: 0xe0009772, - 0x14645: 0xe0005603, - 0x1464b: 0xe000853c, - 0x14651: 0xe0006e52, 0x14653: 0xe000897f, - 0x14655: 0xe0009562, 0x14656: 0xe00071b7, - 0x14658: 0xe0005fb6, 0x14659: 0xe00049c1, 0x1465a: 0xe0008d5c, 0x1465b: 0xe0006f2a, - 0x1465c: 0xe000a079, - 0x14673: 0xe0007ba8, - 0x14676: 0xe0004c6c, 0x14677: 0xe0007034, - 0x14679: 0xe00071ba, - // Block 0x51a, offset 0x14680 - 0x14686: 0xe00082c4, - 0x1468c: 0xe0008b9b, 0x1468f: 0xe000a2ef, - 0x14691: 0xe0008a13, 0x14692: 0xe00066fb, - 0x14697: 0xe000a2a3, - 0x1469f: 0xe0009a20, - 0x146a4: 0xe0006d63, 0x146a5: 0xe0008bfb, - 0x146aa: 0xe0009e3c, - 0x146b2: 0xe0006606, - 0x146b8: 0xe0004471, 0x146b9: 0xe00093b1, 0x146ba: 0xe0008108, - 0x146bc: 0xe0004382, 0x146bd: 0xe0008d5f, - // Block 0x51b, offset 0x146c0 - 0x146c4: 0xe0005a90, 0x146c6: 0xe00093b5, - 0x146cf: 0xe000758b, - 0x146d0: 0xe00097e2, - 0x146d5: 0xe00048d8, - 0x146d8: 0xe00097e5, 0x146d9: 0xe00099a6, 0x146da: 0xe00087dd, - 0x146de: 0xe00072c3, 0x146df: 0xe0005398, - 0x146e0: 0xe0008b9f, 0x146e1: 0xe0005085, 0x146e2: 0xe0008983, 0x146e3: 0xe0009566, - 0x146e4: 0xe0005088, 0x146e6: 0xe0004f79, 0x146e7: 0xe0004a4f, - 0x146e8: 0xe00060bb, 0x146ea: 0xe0008a17, 0x146eb: 0xe0006dc2, - 0x146ec: 0xe000563f, 0x146ee: 0xe00047fa, 0x146ef: 0xe0009229, - // Block 0x51c, offset 0x14700 - 0x14708: 0xe0007b3d, 0x14709: 0xe0007401, 0x1470a: 0xe0005926, 0x1470b: 0xe000499a, - 0x1470d: 0xe000550d, - 0x14714: 0xe00075b9, 0x14717: 0xe0008c6c, - 0x1471b: 0xe0005308, - 0x1471c: 0xe0009fbe, 0x1471d: 0xe0007fe8, - 0x14724: 0xe0006c26, - 0x1472b: 0xe00096f5, - 0x1472c: 0xe00096f8, 0x1472e: 0xe0008228, - 0x14730: 0xe000a5aa, - 0x14735: 0xe00044c6, - 0x1473c: 0xe0009a08, 0x1473e: 0xe0008dd3, - // Block 0x51d, offset 0x14740 - 0x1474a: 0xe0006412, - 0x1474c: 0xe00045ff, - 0x14754: 0xe0007f28, 0x14756: 0xe000710f, 0x14757: 0xe00087ed, - 0x1475a: 0xe00097e8, 0x1475b: 0xe00062aa, - 0x1475f: 0xe0006cc6, - 0x14761: 0xe00085ee, 0x14763: 0xe000a35b, - 0x14764: 0xe000a646, 0x14767: 0xe0004405, - 0x1476c: 0xe000a41c, 0x1476d: 0xe000910b, - 0x14770: 0xe0008504, - // Block 0x51e, offset 0x14780 - 0x14783: 0xe0008d77, - 0x14787: 0xe0006e92, - 0x14788: 0xe000593a, 0x1478a: 0xe0007c7d, 0x1478b: 0xe0005e1d, - 0x1478c: 0xe0005db5, - 0x14791: 0xe00088d7, - 0x14796: 0xe0007c80, 0x14797: 0xe000443c, - 0x14798: 0xe0008780, - 0x1479c: 0xe0005440, 0x1479d: 0xe0005e21, 0x1479e: 0xe0007f2c, 0x1479f: 0xe0006bbe, - 0x147a1: 0xe00046c7, 0x147a2: 0xe0009ec2, - 0x147a4: 0xe0005b9e, 0x147a6: 0xe000977e, - 0x147a8: 0xe000930d, - 0x147b6: 0xe00091ab, - 0x147bb: 0xe0005d3b, - // Block 0x51f, offset 0x147c0 - 0x147c3: 0xe000525e, - 0x147c4: 0xe000a6b5, - 0x147cf: 0xe0008f57, - 0x147d0: 0xe0005b6c, 0x147d3: 0xe000548f, - 0x147d4: 0xe000751f, - 0x147d8: 0xe0008dd7, 0x147d9: 0xe00056e2, - 0x147e5: 0xe0006e56, - 0x147ea: 0xe0005a6e, 0x147eb: 0xe0008987, - 0x147f5: 0xe0009546, 0x147f6: 0xe000a5ae, - 0x147f8: 0xe0009ac2, 0x147fa: 0xe0005444, - // Block 0x520, offset 0x14800 - 0x14802: 0xe000a788, - 0x14804: 0xe0008e93, - 0x1480a: 0xe000a53e, - 0x1480c: 0xe0006a31, - 0x14811: 0xe00042ca, 0x14812: 0xe00042ce, - 0x14815: 0xe000918b, - 0x1481b: 0xe0004abf, - 0x1481e: 0xe00057c5, - 0x14820: 0xe0006b66, 0x14822: 0xe00058c3, 0x14823: 0xe0009ec5, - 0x1482a: 0xe0005a71, - 0x14830: 0xe00077df, 0x14831: 0xe0009311, 0x14832: 0xe000786b, - 0x14835: 0xe0004a53, 0x14837: 0xe0006f52, - 0x1483c: 0xe0005710, 0x1483d: 0xe0009271, 0x1483e: 0xe0005771, 0x1483f: 0xe000922d, - // Block 0x521, offset 0x14840 - 0x14877: 0xe0008738, - // Block 0x522, offset 0x14880 - 0x14880: 0xe000614f, 0x14883: 0xe0006f0e, - 0x14888: 0xe000a039, 0x14889: 0xe0009de2, 0x1488a: 0xe0006bc2, 0x1488b: 0xe0004408, - 0x1488e: 0xe0004b54, 0x1488f: 0xe00082bc, - 0x14891: 0xe000a015, 0x14892: 0xe000a019, 0x14893: 0xe0004216, - 0x14894: 0xe0006212, - 0x14898: 0xe0004326, - 0x1489f: 0xe00069c1, - 0x148a3: 0xe000419e, - 0x148a4: 0xe000a0a9, 0x148a5: 0xe00064ce, - 0x148a8: 0xe0004e5f, 0x148a9: 0xe0006232, 0x148ab: 0xe00048dc, - 0x148ac: 0xe00057fd, 0x148ad: 0xe0005896, - 0x148b1: 0xe0007a5d, - 0x148b6: 0xe00093b9, - 0x148b9: 0xe0007925, 0x148bb: 0xe0007a81, - 0x148bc: 0xe0007639, 0x148bd: 0xe000a48f, 0x148be: 0xe000799d, - // Block 0x523, offset 0x148c0 - 0x148c3: 0xe0004567, - 0x148c7: 0xe0007679, - 0x148c8: 0xe0008192, 0x148ca: 0xe000a5c6, 0x148cb: 0xe00045e7, - 0x148cc: 0xe0005775, 0x148cd: 0xe0005540, - 0x148d3: 0xe000441d, - 0x148d4: 0xe000a0ad, 0x148d5: 0xe0004de9, 0x148d6: 0xe0009c58, - 0x148da: 0xe0004e8c, - 0x148dc: 0xe0004a23, 0x148de: 0xe000a095, - 0x148e0: 0xe0004e20, 0x148e1: 0xe00094ce, 0x148e2: 0xe0006536, - 0x148e5: 0xe000534c, - // Block 0x524, offset 0x14900 - 0x1491c: 0xe000678d, - 0x14921: 0xe00094d2, - 0x14924: 0xe00099a9, - 0x14928: 0xe000776e, 0x1492a: 0xe0009cd6, - 0x1492e: 0xe0007dab, 0x1492f: 0xe000906e, - 0x14932: 0xe00063e2, - 0x1493b: 0xe0008cfc, - 0x1493f: 0xe0007561, - // Block 0x525, offset 0x14940 - 0x14940: 0xe0009a5e, 0x14942: 0xe0009f08, - 0x14944: 0xe0006790, - 0x1494b: 0xe0005ba1, - 0x1494c: 0xe0005ee2, 0x1494d: 0xe0004386, - 0x14950: 0xe000a01d, - 0x14958: 0xe000a373, 0x1495b: 0xe0009de5, - 0x1495c: 0xe000a0b1, 0x1495d: 0xe0006f12, 0x1495e: 0xe0007374, 0x1495f: 0xe0009462, - 0x14961: 0xe0005677, 0x14962: 0xe00080d4, 0x14963: 0xe000910f, - 0x14964: 0xe0008c39, - 0x1496a: 0xe0006454, - 0x1496c: 0xe0009827, - 0x14970: 0xe000834c, 0x14972: 0xe000720e, 0x14973: 0xe0009113, - 0x14974: 0xe00069c4, 0x14975: 0xe0005c6e, 0x14976: 0xe0005510, 0x14977: 0xe000a07d, - 0x14978: 0xe0005bfa, - 0x1497c: 0xe0008878, 0x1497d: 0xe0007843, - // Block 0x526, offset 0x14980 - 0x14984: 0xe0008c6f, 0x14985: 0xe0007faf, 0x14986: 0xe0005c32, - 0x1498a: 0xe000547a, 0x1498b: 0xe00071bd, - 0x1498d: 0xe000a626, 0x1498e: 0xe000476d, - 0x14991: 0xe00050fa, - 0x14994: 0xe000455b, 0x14995: 0xe0008040, 0x14997: 0xe0007e2d, - 0x14998: 0xe0007704, 0x14999: 0xe0004ed1, 0x1499b: 0xe0008c3c, - 0x1499c: 0xe000873c, - 0x149a3: 0xe0005d07, - 0x149a4: 0xe0009c2a, 0x149a7: 0xe00071c0, - 0x149a8: 0xe00071c3, 0x149a9: 0xe0007c83, 0x149aa: 0xe000a1f7, - 0x149b0: 0xe000734c, 0x149b1: 0xe0008300, 0x149b3: 0xe000a7f8, - 0x149b4: 0xe0005aec, 0x149b6: 0xe0008451, 0x149b7: 0xe0005a1a, - 0x149b8: 0xe0005a1d, 0x149b9: 0xe000982a, 0x149bb: 0xe0009466, - 0x149bc: 0xe0008f5b, - // Block 0x527, offset 0x149c0 - 0x149c0: 0xe000862c, 0x149c1: 0xe000760d, - 0x149c4: 0xe0008074, 0x149c5: 0xe0007564, 0x149c6: 0xe00091af, 0x149c7: 0xe00047fd, - 0x149c9: 0xe0009979, 0x149cb: 0xe0008f27, - 0x149cc: 0xe00085af, 0x149cd: 0xe0007d0c, 0x149ce: 0xe000883f, - 0x149d5: 0xe0008cff, 0x149d6: 0xe00071c6, - 0x149d9: 0xe0007533, 0x149da: 0xe0004a57, 0x149db: 0xe00097eb, - 0x149dc: 0xe0008698, 0x149dd: 0xe0007d30, 0x149de: 0xe0004791, - 0x149e2: 0xe0005cbf, 0x149e3: 0xe000515a, - 0x149e8: 0xe0007fb2, 0x149e9: 0xe0007fb5, 0x149ea: 0xe0006ece, - 0x149ef: 0xe0006153, - 0x149f0: 0xe0006836, 0x149f2: 0xe0008044, - 0x149f6: 0xe00059ca, 0x149f7: 0xe0005b09, - 0x149f9: 0xe0006296, 0x149fa: 0xe0006092, 0x149fb: 0xe000898b, - // Block 0x528, offset 0x14a00 - 0x14a00: 0xe00071c9, - 0x14a04: 0xe0007076, 0x14a05: 0xe0006c2a, 0x14a06: 0xe0008ba3, 0x14a07: 0xe0009117, - 0x14a08: 0xe0009d1c, 0x14a09: 0xe0005ed7, - 0x14a0c: 0xe0008ed2, 0x14a0d: 0xe00049e3, 0x14a0e: 0xe0006c2e, 0x14a0f: 0xe00069c7, - 0x14a11: 0xe0008a7f, 0x14a13: 0xe0007bab, - 0x14a14: 0xe0008ed5, 0x14a16: 0xe0005d53, - 0x14a19: 0xe0007b41, - 0x14a1c: 0xe0006caa, 0x14a1e: 0xe0009fa3, - 0x14a23: 0xe000805c, - 0x14a26: 0xe0006a35, 0x14a27: 0xe0006106, - 0x14a2a: 0xe0008368, - 0x14a30: 0xe0006b96, 0x14a32: 0xe0005a4a, - 0x14a38: 0xe0009d1f, 0x14a39: 0xe000653a, - 0x14a3d: 0xe0008c3f, - // Block 0x529, offset 0x14a40 - 0x14a42: 0xe00058de, - 0x14a44: 0xe0007707, 0x14a46: 0xe000965c, - 0x14a48: 0xe00059ce, 0x14a49: 0xe0007740, - 0x14a4c: 0xe000664a, - 0x14a51: 0xe000960e, - 0x14a56: 0xe0008ba7, - 0x14a5a: 0xe0008bff, 0x14a5b: 0xe0008a1b, - 0x14a5c: 0xe0008bab, 0x14a5d: 0xe000951e, 0x14a5e: 0xe000694f, - 0x14a60: 0xe0004857, 0x14a61: 0xe00061b2, 0x14a62: 0xe0005f56, - 0x14a66: 0xe0008a1f, - 0x14a68: 0xe0007ad5, 0x14a69: 0xe000a217, - 0x14a6d: 0xe00084b4, - 0x14a73: 0xe0004f45, - 0x14a74: 0xe000a506, 0x14a75: 0xe0005280, 0x14a77: 0xe00084b8, - 0x14a7a: 0xe0005e41, - 0x14a7c: 0xe0005350, - // Block 0x52a, offset 0x14a80 - 0x14a80: 0xe0005543, 0x14a81: 0xe0009f11, - 0x14a84: 0xe0009e60, 0x14a85: 0xe00076e5, - 0x14a8b: 0xe000a38f, - 0x14a8d: 0xe0007611, 0x14a8f: 0xe0004944, - 0x14a98: 0xe00096fb, - 0x14aa0: 0xe0004d1d, 0x14aa3: 0xe0008279, - 0x14aa6: 0xe000982d, - 0x14aa8: 0xe000426a, 0x14aab: 0xe0004d21, - 0x14aac: 0xe00044e2, 0x14aad: 0xe0009d66, - 0x14ab1: 0xe0005546, - 0x14ab4: 0xe00069ca, - 0x14ab8: 0xe0009f63, 0x14ab9: 0xe00049e7, - // Block 0x52b, offset 0x14ac0 - 0x14ac1: 0xe00043ce, 0x14ac3: 0xe0005354, - 0x14ac6: 0xe00094d6, - 0x14acb: 0xe0008171, - 0x14acd: 0xe00068aa, - 0x14ad0: 0xe000432a, 0x14ad3: 0xe000a021, - 0x14ad9: 0xe0008195, - 0x14adc: 0xe0005513, 0x14add: 0xe0004cf9, 0x14ade: 0xe0007cd8, - 0x14ae0: 0xe0009f67, 0x14ae1: 0xe0008198, - 0x14aed: 0xe0004cfc, 0x14aee: 0xe0004cff, - 0x14af1: 0xe0006f2e, 0x14af2: 0xe0008c72, 0x14af3: 0xe0008350, - 0x14af5: 0xe0008060, 0x14af6: 0xe0007037, - 0x14afa: 0xe0007b71, 0x14afb: 0xe0008048, - 0x14aff: 0xe000a1b4, - // Block 0x52c, offset 0x14b00 - 0x14b00: 0xe000a41f, 0x14b01: 0xe000a2b7, 0x14b02: 0xe0008baf, 0x14b03: 0xe00046cb, - 0x14b05: 0xe000a109, 0x14b06: 0xe00072c7, - 0x14b08: 0xe00071cc, 0x14b0a: 0xe0008014, - 0x14b0c: 0xe00070f6, 0x14b0d: 0xe0004e8f, 0x14b0e: 0xe00050fd, 0x14b0f: 0xe000a11d, - 0x14b10: 0xe0007bae, 0x14b11: 0xe0007daf, 0x14b12: 0xe0006312, 0x14b13: 0xe00055a3, - 0x14b16: 0xe0006336, 0x14b17: 0xe0009c89, - 0x14b18: 0xe00059d2, - 0x14b1e: 0xe0007655, - 0x14b21: 0xe000a91e, 0x14b23: 0xe00074cb, - 0x14b26: 0xe000a172, - 0x14b2b: 0xe00067e1, - 0x14b2d: 0xe0005662, 0x14b2e: 0xe000a69b, - 0x14b30: 0xe000a2f3, - 0x14b37: 0xe000769d, - 0x14b38: 0xe00046cf, 0x14b39: 0xe0009c27, 0x14b3b: 0xe0006a0d, - 0x14b3f: 0xe00085f1, - // Block 0x52d, offset 0x14b40 - 0x14b42: 0xe0005b2a, - 0x14b46: 0xe000499d, 0x14b47: 0xe00098e4, - 0x14b48: 0xe000470f, 0x14b4b: 0xe0007404, - 0x14b4c: 0xe0008c42, 0x14b4d: 0xe000775e, 0x14b4e: 0xe00075bd, - 0x14b52: 0xe0007d34, 0x14b53: 0xe0008a23, - 0x14b54: 0xe0007615, - 0x14b58: 0xe00080d8, 0x14b59: 0xe0006cca, 0x14b5a: 0xe000898f, - 0x14b5e: 0xe0005be0, - 0x14b65: 0xe000a422, 0x14b66: 0xe00096fe, 0x14b67: 0xe0004800, - 0x14b6b: 0xe0008993, - 0x14b6f: 0xe000a277, - 0x14b70: 0xe0006a39, 0x14b71: 0xe0005a74, 0x14b73: 0xe0006f56, - 0x14b74: 0xe0004a5b, - // Block 0x52e, offset 0x14b80 - 0x14ba8: 0xe0009ee6, - 0x14bad: 0xe0008aaf, 0x14baf: 0xe0006c12, - 0x14bb1: 0xe0009bad, 0x14bb2: 0xe0005966, - 0x14bb6: 0xe0004d02, - 0x14bba: 0xe000786f, - 0x14bbc: 0xe0007211, 0x14bbf: 0xe0006506, - // Block 0x52f, offset 0x14bc0 - 0x14bc2: 0xe0005b6f, - 0x14bc4: 0xe0009ea1, 0x14bc7: 0xe0009e9e, - 0x14bc9: 0xe0005b72, 0x14bcb: 0xe00074e7, - 0x14bdb: 0xe0006952, - 0x14bdc: 0xe00064aa, 0x14bdf: 0xe000743b, - 0x14be1: 0xe00070c2, 0x14be2: 0xe000508b, - 0x14be6: 0xe0008a27, 0x14be7: 0xe00070c6, - 0x14bea: 0xe0008540, 0x14beb: 0xe000789e, - 0x14bed: 0xe00099c0, 0x14bee: 0xe0008354, 0x14bef: 0xe0006316, - 0x14bf1: 0xe00070ca, - 0x14bf4: 0xe000842d, - 0x14bfb: 0xe000956a, - 0x14bfc: 0xe0006b10, 0x14bfd: 0xe0009e3f, 0x14bfe: 0xe000743f, - // Block 0x530, offset 0x14c00 - 0x14c03: 0xe0004b9a, - 0x14c09: 0xe000a1b8, 0x14c0a: 0xe0007847, - 0x14c0c: 0xe0008430, - 0x14c10: 0xe0009275, 0x14c12: 0xe0005249, 0x14c13: 0xe0007567, - 0x14c14: 0xe0009e63, 0x14c15: 0xe0008f5f, - 0x14c18: 0xe0007967, 0x14c1a: 0xe000a701, - 0x14c1e: 0xe0008997, - 0x14c20: 0xe00065e6, - 0x14c26: 0xe0008784, 0x14c27: 0xe000819b, - 0x14c28: 0xe0004a27, 0x14c2a: 0xe000516a, - 0x14c2c: 0xe000a455, 0x14c2e: 0xe000956e, - 0x14c30: 0xe0008a2b, 0x14c31: 0xe000a749, 0x14c33: 0xe0005448, - 0x14c39: 0xe000544c, - 0x14c3c: 0xe000a90b, 0x14c3d: 0xe0004e23, - // Block 0x531, offset 0x14c40 - 0x14c42: 0xe0007cdc, - 0x14c45: 0xe0005dfd, - 0x14c48: 0xe0007214, 0x14c49: 0xe0004f1d, 0x14c4b: 0xe0004dfc, - 0x14c4c: 0xe0009279, 0x14c4d: 0xe0006e5a, - 0x14c50: 0xe00083e8, 0x14c51: 0xe000508e, 0x14c52: 0xe0007e81, - 0x14c54: 0xe0007d10, 0x14c55: 0xe0005549, 0x14c57: 0xe000a1bc, - 0x14c5c: 0xe0007ab1, 0x14c5e: 0xe0009315, - // Block 0x532, offset 0x14c80 - 0x14c96: 0xe00071cf, 0x14c97: 0xe0004e92, - 0x14c98: 0xe0004b34, 0x14c99: 0xe000a1c0, - 0x14c9d: 0xe0009f3f, - 0x14ca3: 0xe00076a1, - 0x14ca5: 0xe000668f, - 0x14ca8: 0xe000a35f, - 0x14cac: 0xe0005d7e, 0x14cad: 0xe000788c, 0x14cae: 0xe0009eea, - 0x14cb0: 0xe00088f3, 0x14cb1: 0xe0009a61, 0x14cb3: 0xe000997c, - 0x14cb4: 0xe00072cb, - 0x14cb9: 0xe0008508, - // Block 0x533, offset 0x14cc0 - 0x14cc1: 0xe000629a, - 0x14cc4: 0xe0009bbf, - 0x14cc8: 0xe0004d05, 0x14cc9: 0xe000471f, - 0x14ccf: 0xe000449b, - 0x14cd0: 0xe0008e96, 0x14cd1: 0xe0005212, 0x14cd2: 0xe0004c6f, - 0x14cd5: 0xe0004146, - 0x14cd8: 0xe0009bc2, 0x14cd9: 0xe0006793, 0x14cdb: 0xe0006b46, - 0x14cdc: 0xe0009f6b, 0x14cdd: 0xe0009a64, 0x14cde: 0xe0009a82, 0x14cdf: 0xe0006b13, - 0x14ce2: 0xe0006586, - 0x14ce8: 0xe00072e7, 0x14cea: 0xe00074cf, - 0x14ced: 0xe000a151, 0x14cee: 0xe00062ae, - 0x14cf1: 0xe0005731, - 0x14cf8: 0xe0009a24, 0x14cfb: 0xe000a03d, - 0x14cfd: 0xe000a2a7, 0x14cff: 0xe0008f2b, - // Block 0x534, offset 0x14d00 - 0x14d01: 0xe0006a51, 0x14d02: 0xe0006fa6, 0x14d03: 0xe0007743, - 0x14d04: 0xe0005ab4, 0x14d05: 0xe0009830, - 0x14d08: 0xe00065ea, 0x14d0b: 0xe0005810, - 0x14d0d: 0xe00049c4, 0x14d0e: 0xe0005091, 0x14d0f: 0xe0005094, - 0x14d11: 0xe00069cd, - 0x14d16: 0xe0006118, - 0x14d18: 0xe0009782, 0x14d19: 0xe0009d6a, 0x14d1b: 0xe00069d0, - 0x14d2b: 0xe00044ca, - 0x14d2d: 0xe0008f97, - 0x14d30: 0xe00056c2, - 0x14d35: 0xe000810c, 0x14d36: 0xe00097ee, 0x14d37: 0xe000703a, - 0x14d38: 0xe0006e96, - 0x14d3e: 0xe0005713, - // Block 0x535, offset 0x14d40 - 0x14d40: 0xe0005ee6, 0x14d41: 0xe0007c86, 0x14d42: 0xe0009319, 0x14d43: 0xe0009ea4, - 0x14d44: 0xe0009786, 0x14d45: 0xe0004c72, - 0x14d4a: 0xe000a518, - 0x14d4c: 0xe000725b, 0x14d4d: 0xe000a6e9, 0x14d4e: 0xe0005d3f, 0x14d4f: 0xe0008670, - 0x14d52: 0xe0009b22, - 0x14d55: 0xe0004b9d, 0x14d57: 0xe000a1fb, - 0x14d58: 0xe0005716, 0x14d5a: 0xe00046d3, 0x14d5b: 0xe000798d, - 0x14d5f: 0xe000990b, - 0x14d62: 0xe0005899, - 0x14d64: 0xe0007873, 0x14d65: 0xe0005097, - 0x14d69: 0xe000a57e, 0x14d6a: 0xe000589c, - // Block 0x536, offset 0x14d80 - 0x14da8: 0xe00048f4, 0x14daa: 0xe000819e, - 0x14db0: 0xe0009c45, - 0x14db8: 0xe000a154, 0x14db9: 0xe0004bd3, - 0x14dbc: 0xe000456b, 0x14dbf: 0xe000658a, - // Block 0x537, offset 0x14dc0 - 0x14dc0: 0xe00069d3, - 0x14dc6: 0xe00062b2, - 0x14dcf: 0xe0005bb6, - 0x14dd1: 0xe0009736, 0x14dd3: 0xe00071d2, - 0x14dd4: 0xe000963e, 0x14dd6: 0xe0004a5f, 0x14dd7: 0xe0005a77, - 0x14dd8: 0xe0004803, - 0x14ddf: 0xe0009ec8, - 0x14de1: 0xe00048e0, 0x14de3: 0xe0006416, - 0x14de5: 0xe0007a85, 0x14de6: 0xe0006037, - 0x14deb: 0xe0009701, - 0x14ded: 0xe00085f4, 0x14dee: 0xe000635e, - 0x14df0: 0xe000965f, 0x14df2: 0xe0009f14, - 0x14df4: 0xe00068ae, - 0x14df9: 0xe000a7fb, 0x14dfa: 0xe0004a87, 0x14dfb: 0xe0004794, - 0x14dfd: 0xe0008e1b, - // Block 0x538, offset 0x14e00 - 0x14e02: 0xe0006a3d, - 0x14e05: 0xe00068d6, 0x14e06: 0xe0007102, - 0x14e0a: 0xe00072eb, 0x14e0b: 0xe0008a2f, - 0x14e0d: 0xe000a458, - 0x14e10: 0xe0005100, 0x14e12: 0xe000913b, - 0x14e16: 0xe0006c02, - 0x14e18: 0xe0005e25, 0x14e19: 0xe000737c, 0x14e1a: 0xe00071d5, - 0x14e1f: 0xe000a5b2, - 0x14e22: 0xe0006a41, 0x14e23: 0xe0005992, - 0x14e27: 0xe0005b4e, - 0x14e28: 0xe000a4db, 0x14e29: 0xe000a227, 0x14e2a: 0xe0009c3c, - 0x14e2e: 0xe0004d08, 0x14e2f: 0xe00093bd, - 0x14e31: 0xe0008068, 0x14e32: 0xe000456f, - 0x14e3a: 0xe0006cce, - 0x14e3c: 0xe0004e32, - // Block 0x539, offset 0x14e40 - 0x14e41: 0xe0004b1c, 0x14e42: 0xe000a47b, 0x14e43: 0xe0006362, - 0x14e44: 0xe0006482, 0x14e45: 0xe0005ebc, - 0x14e48: 0xe0007079, 0x14e4b: 0xe0009833, - 0x14e4d: 0xe0005e91, 0x14e4e: 0xe000586b, 0x14e4f: 0xe0008174, - 0x14e51: 0xe0005ce9, - 0x14e54: 0xe0005d81, - 0x14e58: 0xe0007ab5, 0x14e5a: 0xe000788f, - 0x14e66: 0xe0006b49, - 0x14e6f: 0xe0005a4d, - 0x14e74: 0xe000641a, - // Block 0x53a, offset 0x14e80 - 0x14e80: 0xe0009a85, 0x14e83: 0xe0009dc6, - 0x14e8e: 0xe0008a83, - 0x14e91: 0xe0009e42, 0x14e92: 0xe00067e4, 0x14e93: 0xe00085f7, - 0x14e97: 0xe0005643, - 0x14e9f: 0xe0007619, - 0x14ea7: 0xe0008c75, - 0x14ea8: 0xe0009071, 0x14eaa: 0xe000827c, 0x14eab: 0xe0004ba0, - 0x14ead: 0xe000a175, 0x14eae: 0xe0006e5e, - 0x14eb9: 0xe000707c, - // Block 0x53b, offset 0x14ec0 - 0x14ec1: 0xe0004723, - 0x14ec6: 0xe0009e66, - 0x14ec9: 0xe0005cc2, 0x14eca: 0xe0006b4c, - 0x14ed4: 0xe00099ac, 0x14ed6: 0xe0009612, - 0x14edb: 0xe0008d62, - 0x14ee2: 0xe0007be1, - 0x14ee4: 0xe00048b4, - 0x14ee8: 0xe00046d7, - 0x14ef7: 0xe0008c78, - // Block 0x53c, offset 0x14f00 - 0x14f08: 0xe0008ad7, 0x14f0a: 0xe000593e, - 0x14f0c: 0xe0009836, 0x14f0d: 0xe00097f1, - 0x14f10: 0xe00075c1, 0x14f12: 0xe0006693, 0x14f13: 0xe0006cdb, - 0x14f15: 0xe0009fa6, - 0x14f24: 0xe0006b4f, 0x14f25: 0xe000a582, - 0x14f2d: 0xe0005103, 0x14f2e: 0xe0007ce0, 0x14f2f: 0xe00077e3, - 0x14f31: 0xe0005942, 0x14f32: 0xe0007c3b, - 0x14f35: 0xe0006236, - 0x14f39: 0xe00045c3, 0x14f3a: 0xe000707f, 0x14f3b: 0xe0005e01, - 0x14f3e: 0xe0009ecb, - // Block 0x53d, offset 0x14f40 - 0x14f47: 0xe000438a, - 0x14f49: 0xe000659a, - 0x14f4f: 0xe0007523, - 0x14f52: 0xe0008f63, 0x14f53: 0xe0006e9a, - 0x14f57: 0xe0005d0b, - 0x14f60: 0xe000a69e, 0x14f63: 0xe0008a33, - 0x14f67: 0xe0005a20, - 0x14f78: 0xe0005a7a, 0x14f7b: 0xe0006e9e, - // Block 0x53e, offset 0x14f80 - 0x14fa5: 0xe0008d02, 0x14fa6: 0xe000833c, 0x14fa7: 0xe0006796, - 0x14fa9: 0xe0004c75, - 0x14fb3: 0xe00066ff, - 0x14fb4: 0xe0005fba, 0x14fb6: 0xe0007a11, - // Block 0x53f, offset 0x14fc0 - 0x14fc3: 0xe0004573, - 0x14fc6: 0xe0009197, 0x14fc7: 0xe000664d, - 0x14fc8: 0xe0007629, 0x14fc9: 0xe000756a, - 0x14fcc: 0xe0006717, - 0x14fd2: 0xe0005a06, - 0x14fd5: 0xe0009a88, - 0x14fd8: 0xe000658e, 0x14fd9: 0xe00099af, 0x14fdb: 0xe00080dc, - 0x14fdf: 0xe00099b2, - 0x14fe3: 0xe000485a, - 0x14fe6: 0xe00076d1, - 0x14fe8: 0xe00076b5, - 0x14ff0: 0xe0004a8b, - 0x14ff6: 0xe0007659, - 0x14ffb: 0xe000a4c7, - // Block 0x540, offset 0x15000 - 0x15001: 0xe0004bd6, 0x15002: 0xe000a7fe, - 0x15004: 0xe00099b5, - 0x15011: 0xe000459f, 0x15013: 0xe0006376, - 0x15014: 0xe0008f67, - 0x1501d: 0xe000756d, 0x1501e: 0xe000758e, - 0x15020: 0xe0004878, 0x15021: 0xe0006109, - 0x15029: 0xe00066b7, - 0x1502c: 0xe00068ca, 0x1502f: 0xe0009f6f, - 0x15030: 0xe0008d65, 0x15032: 0xe0008630, - 0x15037: 0xe0008110, - 0x1503b: 0xe0009839, - 0x1503e: 0xe00048e4, - // Block 0x541, offset 0x15040 - 0x15044: 0xe0009622, - 0x15049: 0xe00072ef, - 0x15056: 0xe000983c, - 0x1505a: 0xe00075ed, - 0x15061: 0xe0004282, - 0x15064: 0xe00048e8, - 0x15069: 0xe0006052, - 0x1506c: 0xe00093c1, 0x1506f: 0xe000777a, - 0x15074: 0xe0009fd1, 0x15075: 0xe000983f, - 0x15078: 0xe00077e7, 0x15079: 0xe0005bef, 0x1507b: 0xe0004904, - 0x1507f: 0xe00085fa, - // Block 0x542, offset 0x15080 - 0x15081: 0xe0008474, 0x15082: 0xe0007eb1, - 0x15084: 0xe0004770, 0x15087: 0xe0004d0b, - 0x15093: 0xe00085fd, - 0x15096: 0xe0007be4, 0x15097: 0xe0004c78, - 0x15099: 0xe0009074, - 0x150a6: 0xe0009704, - 0x150a9: 0xe00065a6, 0x150aa: 0xe000778e, 0x150ab: 0xe000725f, - 0x150b0: 0xe0007a4d, 0x150b1: 0xe000485d, 0x150b2: 0xe000990e, 0x150b3: 0xe000a041, - 0x150b8: 0xe000a809, 0x150b9: 0xe0008390, 0x150ba: 0xe0005a50, - 0x150bd: 0xe0009fe9, 0x150bf: 0xe000654e, - // Block 0x543, offset 0x150c0 - 0x150c7: 0xe0008a37, - 0x150cf: 0xe0006096, - 0x150d5: 0xe0005a7d, - 0x150da: 0xe000777e, 0x150db: 0xe0004a63, - 0x150dc: 0xe0004d0e, 0x150de: 0xe0005759, - // Block 0x544, offset 0x15100 - 0x15135: 0xe0005a53, 0x15137: 0xe0005a0a, - 0x15139: 0xe000a081, 0x1513b: 0xe000430e, - 0x1513d: 0xe0007a89, 0x1513f: 0xe0005a94, - // Block 0x545, offset 0x15140 - 0x15140: 0xe0007feb, 0x15142: 0xe0004e26, - 0x15144: 0xe0009842, - 0x1514b: 0xe00061df, - 0x1514c: 0xe0007fee, 0x1514f: 0xe0004eb1, - 0x15151: 0xe0007be7, 0x15152: 0xe000509a, 0x15153: 0xe0005a98, - 0x15157: 0xe000589f, - 0x1515d: 0xe0006b16, 0x1515e: 0xe0008788, 0x1515f: 0xe0005d0f, - 0x15164: 0xe0009845, 0x15165: 0xe0005eea, - 0x15169: 0xe00067e7, 0x1516a: 0xe0005f6e, - 0x1516f: 0xe0004d35, - 0x15174: 0xe0004d25, 0x15175: 0xe0005f5a, - 0x1517b: 0xe0005d84, - 0x1517d: 0xe0005d93, 0x1517e: 0xe000a7da, 0x1517f: 0xe0005d96, - // Block 0x546, offset 0x15180 - 0x15183: 0xe000a62a, - 0x15185: 0xe0004f8d, - 0x1518c: 0xe000a6c1, 0x1518d: 0xe0006d66, 0x1518e: 0xe00058a2, 0x1518f: 0xe0008ab3, - 0x15190: 0xe0005cec, 0x15191: 0xe000a82d, - 0x15194: 0xe000451a, 0x15196: 0xe0005106, - 0x15198: 0xe000611f, 0x1519a: 0xe000461f, 0x1519b: 0xe000547d, - 0x1519c: 0xe00098a0, 0x1519d: 0xe000827f, 0x1519e: 0xe0008a87, - 0x151a0: 0xe000a922, - 0x151a5: 0xe0004727, - 0x151a8: 0xe0005408, - 0x151ae: 0xe00053c4, 0x151af: 0xe00076a5, - 0x151b2: 0xe000931d, - 0x151b4: 0xe00061b5, 0x151b5: 0xe00053c8, 0x151b6: 0xe0007ab9, 0x151b7: 0xe000557b, - 0x151ba: 0xe000687e, 0x151bb: 0xe00068b2, - 0x151bc: 0xe0006650, 0x151bd: 0xe000623a, 0x151bf: 0xe0008114, - // Block 0x547, offset 0x151c0 - 0x151c0: 0xe0009888, 0x151c2: 0xe0008d68, - 0x151c4: 0xe0008ed8, 0x151c7: 0xe0007c3e, - 0x151c8: 0xe000659e, 0x151c9: 0xe0009a8b, 0x151ca: 0xe0006552, - 0x151ce: 0xe0008bb3, - 0x151d0: 0xe00051c1, 0x151d3: 0xe0004806, - 0x151d7: 0xe000554c, - 0x151d9: 0xe00069d6, - 0x151e0: 0xe0006d69, 0x151e2: 0xe0006882, - 0x151eb: 0xe0006dde, - 0x151ec: 0xe0008282, 0x151ef: 0xe0007c89, - 0x151f4: 0xe00078e5, - 0x151f8: 0xe0004623, 0x151f9: 0xe00078e9, 0x151fb: 0xe0006955, - 0x151fe: 0xe000a045, - // Block 0x548, offset 0x15200 - 0x1520a: 0xe0008c45, 0x1520b: 0xe00087b9, - 0x1520e: 0xe00087bc, - 0x15212: 0xe000997f, - 0x15214: 0xe00099d8, 0x15215: 0xe000a879, 0x15217: 0xe0008334, - 0x1521f: 0xe0008842, - 0x15220: 0xe0009707, 0x15221: 0xe00059d6, - 0x15226: 0xe0004242, 0x15227: 0xe0006ed2, - 0x15229: 0xe0004bd9, 0x1522a: 0xe0009231, 0x1522b: 0xe00048ec, - 0x1522c: 0xe0007892, - 0x15232: 0xe0007ff1, - 0x15236: 0xe00075f1, 0x15237: 0xe00075c5, - // Block 0x549, offset 0x15240 - 0x1524d: 0xe0005b75, 0x1524e: 0xe0005af0, - 0x15250: 0xe00063e6, 0x15252: 0xe0005b79, - 0x15254: 0xe0004974, 0x15255: 0xe00042d2, - 0x1525c: 0xe0004c7b, 0x1525d: 0xe0009812, - 0x15260: 0xe00077eb, 0x15262: 0xe000a51b, - 0x15265: 0xe0008285, - // Block 0x54a, offset 0x15280 - 0x15280: 0xe000507f, 0x15281: 0xe000466f, 0x15282: 0xe00091fb, 0x15283: 0xe000413a, - 0x15284: 0xe000a5ba, 0x15285: 0xe0004978, 0x15286: 0xe0004bf7, 0x15287: 0xe0004c7b, - 0x15288: 0xe0004c7b, 0x15289: 0xe0004734, 0x1528a: 0xe0005125, 0x1528b: 0xe00056e6, - 0x1528c: 0xe00051ac, 0x1528d: 0xe00056e9, 0x1528e: 0xe00056ec, 0x1528f: 0xe00056ef, - 0x15290: 0xe00056f2, 0x15291: 0xe00056f5, 0x15292: 0xe00056f8, 0x15293: 0xe00056fb, - 0x15294: 0xe00075ad, 0x15295: 0xe0005719, 0x15296: 0xe000571d, 0x15297: 0xe0005721, - 0x15298: 0xe0005729, 0x15299: 0xe000572d, 0x1529a: 0xe0005731, 0x1529b: 0xe000573d, - 0x1529c: 0xe0005741, 0x1529d: 0xe0005745, 0x1529e: 0xe0005751, 0x1529f: 0xe0005755, - 0x152a0: 0xe0005759, 0x152a1: 0xe0005789, 0x152a2: 0xe0005799, 0x152a3: 0xe00057a5, - 0x152a4: 0xe00057a9, 0x152a5: 0xe00057b9, 0x152a6: 0xe00057bd, 0x152a7: 0xe00057c1, - 0x152a8: 0xe00057c9, 0x152a9: 0xe00057cd, 0x152aa: 0xe00057d1, 0x152ab: 0xe00057d5, - 0x152ac: 0x43219c20, 0x152ad: 0xe0005801, 0x152ae: 0xe0005813, 0x152af: 0xe0005a23, - 0x152b0: 0xe0005a29, 0x152b1: 0xe0005a2c, 0x152b2: 0xe0005a35, 0x152b3: 0xe0005a38, - 0x152b4: 0xe0005a3b, 0x152b5: 0xe0005a3e, 0x152b6: 0xe0005a41, 0x152b7: 0xe0005a44, - 0x152b8: 0xe0005a4a, 0x152b9: 0xe0005a4d, 0x152ba: 0xe0005a50, 0x152bb: 0xe0005a80, - 0x152bc: 0xe0005a84, 0x152bd: 0xe0005a88, 0x152be: 0xe0005a8c, 0x152bf: 0xe0005a90, - // Block 0x54b, offset 0x152c0 - 0x152c0: 0xe0005a94, 0x152c1: 0xe0005ab8, 0x152c2: 0xe0005abc, 0x152c3: 0xe0005ac0, - 0x152c4: 0xe0005ad0, 0x152c5: 0xe0005ad4, 0x152c6: 0xe0005afa, 0x152c7: 0xe0005afd, - 0x152c8: 0xe0005b00, 0x152c9: 0xe0005b09, 0x152ca: 0xe0005b7d, 0x152cb: 0xe0005b83, - 0x152cc: 0xe0005b86, 0x152cd: 0xe0005b89, 0x152ce: 0xe0005b8c, 0x152cf: 0xe0005b92, - 0x152d0: 0xe0005b95, 0x152d1: 0xe0005ba1, 0x152d2: 0xe0005c3e, 0x152d3: 0xe0005c42, - 0x152d4: 0xe0005c4a, 0x152d5: 0xe0005c5a, 0x152d6: 0xe0005c62, 0x152d7: 0xe0005c66, - 0x152d8: 0xe0005c6a, 0x152d9: 0xe0005c6e, 0x152da: 0xe0005573, 0x152db: 0xe0005136, - 0x152dc: 0xe00075ad, 0x152dd: 0xe000514e, 0x152de: 0xe00052bc, 0x152df: 0xe00051eb, - 0x152e0: 0xe000520c, 0x152e1: 0xe00070ce, 0x152e2: 0xe000840c, 0x152e3: 0xe00067ea, - 0x152e4: 0xe00062fa, 0x152e5: 0xe0009d46, 0x152e6: 0xe0006667, 0x152e7: 0xe000671b, - 0x152e8: 0xe0009f27, 0x152e9: 0xe0007154, 0x152ea: 0xe0006ce6, 0x152eb: 0xe00092bd, - 0x152ec: 0xe0006cd2, 0x152ed: 0xe0006f86, 0x152ee: 0xe0007ac5, 0x152ef: 0xe0006eca, - 0x152f0: 0xe0006bd2, 0x152f1: 0xe0009103, 0x152f2: 0xe00099f4, 0x152f3: 0xe0007334, - 0x152f4: 0xe00077bb, 0x152f5: 0xe0005817, 0x152f6: 0xe000581b, 0x152f7: 0xe0005823, - 0x152f8: 0xe000582b, 0x152f9: 0xe000582f, 0x152fa: 0xe0005833, 0x152fb: 0xe0005843, - 0x152fc: 0xe0005847, 0x152fd: 0xe000584b, 0x152fe: 0xe0005853, 0x152ff: 0xe0005875, - // Block 0x54c, offset 0x15300 - 0x15300: 0xe0005878, 0x15301: 0xe00051c4, 0x15302: 0xe000587b, 0x15303: 0xe0005884, - 0x15304: 0xe000588a, 0x15305: 0xe000588d, 0x15306: 0xe0005896, 0x15307: 0xe000589c, - 0x15308: 0xe000589f, 0x15309: 0xe00058a2, 0x1530a: 0xe00058c6, 0x1530b: 0xe00058ca, - 0x1530c: 0xe00058ce, 0x1530d: 0xe00058da, 0x1530e: 0xe00051cb, 0x1530f: 0xe00058fa, - 0x15310: 0xe00058fe, 0x15311: 0xe00051cf, 0x15312: 0xe0005906, 0x15313: 0xe000590a, - 0x15314: 0xe000590e, 0x15315: 0xe00051d3, 0x15316: 0xe0005912, 0x15317: 0xe0005916, - 0x15318: 0xe000591e, 0x15319: 0xe000591a, 0x1531a: 0xe0005922, 0x1531b: 0xe0005926, - 0x1531c: 0xe000594a, 0x1531d: 0xe000594e, 0x1531e: 0xe0008488, 0x1531f: 0xe0005956, - 0x15320: 0xe000595a, 0x15321: 0xe0006eca, 0x15322: 0xe000596a, 0x15323: 0xe00051db, - 0x15324: 0xe00051e7, 0x15325: 0xe0005972, 0x15326: 0xe000597a, 0x15327: 0xe000598a, - 0x15328: 0xe0005996, 0x15329: 0xe000599e, 0x1532a: 0xe00051eb, 0x1532b: 0xe00059a6, - 0x1532c: 0xe00059aa, 0x1532d: 0xe00059ae, 0x1532e: 0xe000a343, 0x1532f: 0xe00059b6, - 0x15330: 0xe00059be, 0x15331: 0xe00059c6, 0x15332: 0xe00059ca, 0x15333: 0xe00059ce, - 0x15334: 0xe00059d2, 0x15335: 0xe0005a0e, 0x15336: 0xe0005a14, 0x15337: 0xe0005a17, - 0x15338: 0xe0005a1d, 0x15339: 0xe00075a1, 0x1533a: 0xe0005b2d, 0x1533b: 0xe0005b30, - 0x1533c: 0xe0005b33, 0x1533d: 0xe000524c, 0x1533e: 0xe0005b39, 0x1533f: 0xe00075ad, - // Block 0x54d, offset 0x15340 - 0x15340: 0xe0005b3c, 0x15341: 0xe0005b3f, 0x15342: 0xe0005b48, 0x15343: 0xe0005b4b, - 0x15344: 0xe0005b75, 0x15345: 0xe000a770, 0x15346: 0xe0007dab, 0x15347: 0xe0005bb9, - 0x15348: 0xe0005277, 0x15349: 0xe0005bbf, 0x1534a: 0xe0005bc5, 0x1534b: 0xe0005bc8, - 0x1534c: 0xe0005bce, 0x1534d: 0xe0005bd4, 0x1534e: 0xe0005bda, 0x1534f: 0xe000527a, - 0x15350: 0xe0005be0, 0x15351: 0xe0005bf2, 0x15352: 0xe0005bf6, 0x15353: 0xe0005bfa, - 0x15354: 0xe0005c06, 0x15355: 0xe0005c0a, 0x15356: 0xe0005c0e, 0x15357: 0xe0005c16, - 0x15358: 0xe0005c1e, 0x15359: 0xe0005c22, 0x1535a: 0xe0005c26, 0x1535b: 0xe00070ce, - 0x1535c: 0xe0005c32, 0x1535d: 0xe0005c7d, 0x1535e: 0xe0005c83, 0x1535f: 0xe0005c89, - 0x15360: 0xe0007979, 0x15361: 0xe0005c8f, 0x15362: 0xe0005c92, 0x15363: 0xe000528e, - 0x15364: 0xe0005c9e, 0x15365: 0xe0005ca4, 0x15366: 0xe0005caa, 0x15367: 0xe0005cb3, - 0x15368: 0xe0005cb6, 0x15369: 0xe0005cb9, 0x1536a: 0xe0005cbf, 0x1536b: 0xe00052a3, - 0x1536c: 0xe00052a7, 0x1536d: 0xe0005cef, 0x1536e: 0xe0005cf7, 0x1536f: 0xe0005cfb, - 0x15370: 0xe0005cff, 0x15371: 0xe0005d07, 0x15372: 0xe0005d0b, 0x15373: 0xe0005d0f, - 0x15374: 0xe0005d43, 0x15375: 0xe0005d47, 0x15376: 0xe0005d4f, 0x15377: 0xe0005d5f, - 0x15378: 0xe0005d63, 0x15379: 0xe0005d67, 0x1537a: 0xe0006c82, 0x1537b: 0xe0008585, - 0x1537c: 0xe0007433, 0x1537d: 0xe0007527, 0x1537e: 0xe00052b6, 0x1537f: 0xe0008567, - // Block 0x54e, offset 0x15380 - 0x15380: 0xe0008a3b, 0x15381: 0xe00054bc, 0x15382: 0xe0009446, 0x15383: 0xe0005400, - 0x15384: 0xe0005492, 0x15385: 0xe00055e7, 0x15386: 0xe0009e6d, 0x15387: 0xe000668b, - 0x15388: 0xe000a198, 0x15389: 0xe0004386, 0x1538a: 0xe0004593, 0x1538b: 0xe00049c7, - 0x1538c: 0xe0007ce4, 0x1538d: 0x42ab8020, 0x1538e: 0x43f41c20, 0x1538f: 0x43f41e20, - 0x15390: 0xe0009752, 0x15391: 0x43f42220, 0x15392: 0xe00095fa, 0x15393: 0x43f42620, - 0x15394: 0x43f42820, 0x15395: 0xe000a8b4, 0x15396: 0xe0008818, 0x15397: 0xe0008458, - 0x15398: 0x42f27820, 0x15399: 0xe000747b, 0x1539a: 0xe0006c8a, 0x1539b: 0xe000666f, - 0x1539c: 0xe0008ba7, 0x1539d: 0xe0008b73, 0x1539e: 0xe0007f97, 0x1539f: 0x43f43e20, - 0x153a0: 0x430c2420, 0x153a1: 0x43f44220, 0x153a2: 0xe0008c30, 0x153a3: 0x43f44620, - 0x153a4: 0x43f44820, 0x153a5: 0xe0008500, 0x153a6: 0xe000550a, 0x153a7: 0x43f44e20, - 0x153a8: 0x43f45020, 0x153a9: 0x43f45220, 0x153aa: 0xe0006316, 0x153ab: 0xe0006b10, - 0x153ac: 0xe0004a27, 0x153ad: 0xe0009fd1, 0x153ae: 0xe00057e5, 0x153af: 0xe0005a1a, - 0x153b0: 0xe0005fc5, 0x153b1: 0xe0007358, 0x153b2: 0xe0005f32, 0x153b3: 0xe0005f3a, - 0x153b4: 0xe0004eed, 0x153b5: 0xe00068e6, 0x153b6: 0xe000424a, 0x153b7: 0xe0009aee, - 0x153b8: 0xe0004fec, 0x153b9: 0xe00065f2, 0x153ba: 0xe000611b, 0x153bb: 0xe0009936, - 0x153bc: 0x42b8dc20, 0x153bd: 0xe000a659, 0x153be: 0xe00043e7, 0x153bf: 0xe0008fb3, - // Block 0x54f, offset 0x153c0 - 0x153c0: 0xe00091bf, 0x153c1: 0xe00061f2, 0x153c2: 0x42cbc420, 0x153c3: 0xe0006d30, - 0x153c4: 0xe0005ea7, 0x153c5: 0xe000a13c, 0x153c6: 0xe0008812, 0x153c7: 0xe000a001, - 0x153c8: 0xe0008588, 0x153c9: 0x42e45620, 0x153ca: 0xe0009ab6, 0x153cb: 0xe000691f, - 0x153cc: 0xe0006ad4, 0x153cd: 0xe0009023, 0x153ce: 0xe000505e, 0x153cf: 0xe0007f8b, - 0x153d0: 0xe0008cc3, 0x153d1: 0xe0009850, 0x153d2: 0xe000a4f1, 0x153d3: 0xe0008b67, - 0x153d4: 0xe0004870, 0x153d5: 0xe00055b7, 0x153d6: 0xe0008a53, 0x153d7: 0xe0005912, - 0x153d8: 0xe00090e3, 0x153d9: 0xe000649e, 0x153da: 0xe0006d4e, 0x153db: 0xe000859a, - 0x153dc: 0xe0009902, 0x153dd: 0x4304f220, 0x153de: 0x4304f220, 0x153df: 0xe000882a, - 0x153e0: 0xe0004262, 0x153e1: 0xe00073c2, 0x153e2: 0xe0007631, 0x153e3: 0xe0004f15, - 0x153e4: 0xe0006a09, 0x153e5: 0xe0008fd7, 0x153e6: 0x431f6c20, 0x153e7: 0xe0008500, - 0x153e8: 0xe000515a, 0x153e9: 0xe000a1b4, 0x153ea: 0xe0006a0d, 0x153eb: 0x42c0ea20, - 0x153ec: 0x4885dc20, 0x153ed: 0x43043020, - 0x153f0: 0xe00065ee, 0x153f1: 0x42a36a20, 0x153f2: 0xe0008903, 0x153f3: 0x429f0020, - 0x153f4: 0xe00098a8, 0x153f5: 0xe0004fe6, 0x153f6: 0xe0007ee0, 0x153f7: 0xe0008604, - 0x153f8: 0xe000424a, 0x153f9: 0x42aaaa20, 0x153fa: 0xe000a7b3, 0x153fb: 0xe0007ce8, - 0x153fc: 0xe0009752, 0x153fd: 0xe00067fa, 0x153fe: 0xe0007905, 0x153ff: 0xe00067fe, - // Block 0x550, offset 0x15400 - 0x15400: 0xe00068ec, 0x15401: 0xe00085b5, 0x15402: 0x42bda420, 0x15403: 0x42bdb220, - 0x15404: 0xe00093d1, 0x15405: 0xe0007e96, 0x15406: 0xe0005e7d, 0x15407: 0x42c29c20, - 0x15408: 0xe00081c8, 0x15409: 0xe0008fb3, 0x1540a: 0xe0007c5c, 0x1540b: 0xe00091bf, - 0x1540c: 0xe0005468, 0x1540d: 0xe00081ce, 0x1540e: 0xe000714e, 0x1540f: 0x42c8a420, - 0x15410: 0xe0007c17, 0x15411: 0xe00095fa, 0x15412: 0xe00057cd, 0x15413: 0xe0005e5d, - 0x15414: 0xe00086e4, 0x15415: 0x42d6f220, 0x15416: 0xe0006bd2, 0x15417: 0xe0005bc5, - 0x15418: 0x42ddb620, 0x15419: 0xe0008582, 0x1541a: 0xe000a001, 0x1541b: 0xe0008b4b, - 0x1541c: 0xe0008588, 0x1541d: 0x42ef4e20, 0x1541e: 0xe000861c, 0x1541f: 0xe00064f2, - 0x15420: 0xe0008818, 0x15421: 0xe00089cf, 0x15422: 0x42ea0c20, 0x15423: 0x42ea7620, - 0x15424: 0x42ec3a20, 0x15425: 0xe0007ca8, 0x15426: 0xe0008458, 0x15427: 0xe0006f82, - 0x15428: 0xe0009077, 0x15429: 0x42ee9420, 0x1542a: 0xe0009221, 0x1542b: 0x42f19820, - 0x1542c: 0x42f56220, 0x1542d: 0xe0008a53, 0x1542e: 0x42f8f620, 0x1542f: 0xe0008d41, - 0x15430: 0xe0005912, 0x15431: 0xe00065fa, 0x15432: 0xe000859a, 0x15433: 0xe000a61a, - 0x15434: 0xe000a4fa, 0x15435: 0x430ef220, 0x15436: 0xe000437a, 0x15437: 0xe0006683, - 0x15438: 0xe00073c2, 0x15439: 0xe0008cea, 0x1543a: 0xe0008c30, 0x1543b: 0xe000960a, - 0x1543c: 0xe0007631, 0x1543d: 0xe000514e, 0x1543e: 0xe0008210, 0x1543f: 0xe0004f15, - // Block 0x551, offset 0x15440 - 0x15440: 0xe000655e, 0x15441: 0xe0008fd7, 0x15442: 0xe00071ab, 0x15443: 0xe0009047, - 0x15444: 0x43233220, 0x15445: 0x4324ec20, 0x15446: 0xe0008878, 0x15447: 0xe000515a, - 0x15448: 0xe0008ba7, 0x15449: 0x432fb620, 0x1544a: 0xe000a1b4, 0x1544b: 0x43301620, - 0x1544c: 0xe0006a0d, 0x1544d: 0xe000913b, 0x1544e: 0xe0004c7b, 0x1544f: 0x48509420, - 0x15450: 0x48508820, 0x15451: 0x4867aa20, 0x15452: 0x44773a20, 0x15453: 0x44803020, - 0x15454: 0x44807220, 0x15455: 0x48a49220, 0x15456: 0x48b9a020, 0x15457: 0x48fda620, - 0x15458: 0x433e8620, 0x15459: 0xe0005af0, - // Block 0x552, offset 0x15480 - 0x15480: 0xe0003c9d, 0x15481: 0xe0003c85, 0x15482: 0xe0003c89, 0x15483: 0xe0003c91, - 0x15484: 0xe0003ca1, 0x15485: 0xe0003c95, 0x15486: 0xf0000404, 0x15487: 0xe0003c8d, - 0x15488: 0xe0003c99, - 0x15490: 0x02bf2e86, 0x15491: 0x02a7de86, - // Block 0x553, offset 0x154c0 - 0x154c0: 0x429c7a20, 0x154c1: 0xe000a542, 0x154c2: 0x429c8220, 0x154c3: 0x48024420, - 0x154c4: 0x429ec020, 0x154c5: 0xe0005fc5, 0x154c6: 0xe0009b2e, 0x154c7: 0xe00065ae, - 0x154c8: 0x42a0f420, 0x154c9: 0xe00068dd, 0x154ca: 0xe0007358, 0x154cb: 0xe0006c3a, - 0x154cc: 0x44693c20, 0x154cd: 0x480c7420, 0x154ce: 0xe0005f32, 0x154cf: 0x42a2a820, - 0x154d0: 0x42a2c820, 0x154d1: 0xe0004beb, 0x154d2: 0x480a3820, 0x154d3: 0x44697220, - 0x154d4: 0xe00051a9, 0x154d5: 0xe000878c, 0x154d6: 0x480a9620, 0x154d7: 0xe0007edc, - 0x154d8: 0xe00080e0, 0x154d9: 0x429d9820, 0x154da: 0xe00055c7, 0x154db: 0x42a36a20, - 0x154dc: 0x4923be20, 0x154dd: 0x42a3ea20, 0x154de: 0xe0008480, 0x154df: 0x4469be20, - 0x154e0: 0xe0004176, 0x154e1: 0x42a48c20, 0x154e2: 0xe000a049, 0x154e3: 0xe0006b9a, - 0x154e4: 0x446a2a20, 0x154e5: 0xe0007ee0, 0x154e6: 0xe0005f3a, 0x154e7: 0xe0004eed, - 0x154e8: 0xe0008604, 0x154e9: 0xe0009df7, 0x154ea: 0x42a60c20, 0x154eb: 0xe00067ea, - 0x154ec: 0xe000a7b0, 0x154ed: 0xe00068e6, 0x154ee: 0xe0006256, 0x154ef: 0xe0008f8b, - 0x154f0: 0xe0008f87, 0x154f1: 0xe0004643, 0x154f2: 0xe0004643, 0x154f3: 0xe0004643, - 0x154f4: 0x48145820, 0x154f5: 0xe000a66e, 0x154f6: 0xe0004f95, 0x154f7: 0xe00071d8, - 0x154f8: 0x4816c620, 0x154f9: 0xe0004e35, 0x154fa: 0xe0009143, 0x154fb: 0x42a80c20, - 0x154fc: 0x42a93c20, 0x154fd: 0xe000a88d, 0x154fe: 0xe0008aef, 0x154ff: 0xe0008e36, - // Block 0x554, offset 0x15500 - 0x15500: 0xe00075d1, 0x15501: 0x42a9ec20, 0x15502: 0xe00053e0, 0x15503: 0xe000472e, - 0x15504: 0xe000a061, 0x15505: 0xe0006dee, 0x15506: 0xe0006dee, 0x15507: 0xe000a7b3, - 0x15508: 0xe0005129, 0x15509: 0x42ab6620, 0x1550a: 0x42ab8420, 0x1550b: 0xe00054a7, - 0x1550c: 0xe0009aee, 0x1550d: 0x42ae2e20, 0x1550e: 0x42aca220, 0x1550f: 0xe00067f6, - 0x15510: 0xe0008a3b, 0x15511: 0x42b1dc20, 0x15512: 0xe0006f5a, 0x15513: 0xe0007407, - 0x15514: 0x42b01a20, 0x15515: 0xe000a31f, 0x15516: 0x42b06420, 0x15517: 0xe0006614, - 0x15518: 0x42b15820, 0x15519: 0x4829c820, 0x1551a: 0x42b1e420, 0x1551b: 0x42b1ee20, - 0x1551c: 0xe0006707, 0x1551d: 0xe00052b3, 0x1551e: 0xe0006066, 0x1551f: 0xe0006a92, - 0x15520: 0x482d5020, 0x15521: 0x482dd420, 0x15522: 0xe000a8c0, 0x15523: 0xe0007c0b, - 0x15524: 0xe0009bb3, 0x15525: 0x42b3b020, 0x15526: 0xe0006739, 0x15527: 0x446ddc20, - 0x15528: 0x446df820, 0x15529: 0xe0007e90, 0x1552a: 0xe000575d, 0x1552b: 0xe000575d, - 0x1552c: 0x48339020, 0x1552d: 0xe0008098, 0x1552e: 0xe0009988, 0x1552f: 0xe00051eb, - 0x15530: 0x42b7e620, 0x15531: 0x48363020, 0x15532: 0x42b7fe20, 0x15533: 0x42b80c20, - 0x15534: 0x42bea620, 0x15535: 0x42b84420, 0x15536: 0x446f0220, 0x15537: 0xe00054b3, - 0x15538: 0x42b8dc20, 0x15539: 0xe000713c, 0x1553a: 0x42b91a20, 0x1553b: 0x483bc820, - 0x1553c: 0x42ba8620, 0x1553d: 0x483bcc20, 0x1553e: 0x42badc20, 0x1553f: 0x42bad620, - // Block 0x555, offset 0x15540 - 0x15540: 0x42baf820, 0x15541: 0xe0007263, 0x15542: 0xe0006fe0, 0x15543: 0x44705e20, - 0x15544: 0xe00070b2, 0x15545: 0xe0006fc2, 0x15546: 0xe0005fd1, 0x15547: 0x42bcd220, - 0x15548: 0x4470c420, 0x15549: 0x48430620, 0x1554a: 0x4470f820, 0x1554b: 0x42bd6020, - 0x1554c: 0xe000696d, 0x1554d: 0xe0006d1e, 0x1554e: 0xe00057c9, 0x1554f: 0x49472420, - 0x15550: 0x42bdfc20, 0x15551: 0x48466220, 0x15552: 0x48466220, 0x15553: 0xe000796a, - 0x15554: 0xe000551c, 0x15555: 0xe000551c, 0x15556: 0x44718e20, 0x15557: 0x48657020, - 0x15558: 0x48c3b420, 0x15559: 0xe000a323, 0x1555a: 0xe0008c8d, 0x1555b: 0x4471c620, - 0x1555c: 0x42bf3420, 0x1555d: 0xe000849c, 0x1555e: 0xe0008ff6, 0x1555f: 0x42bff220, - 0x15560: 0xe0007a25, 0x15561: 0x44727420, 0x15562: 0x44723820, 0x15563: 0xe000a659, - 0x15564: 0x484da820, 0x15565: 0xe0005583, 0x15566: 0xe000857f, 0x15567: 0xe000a5e6, - 0x15568: 0x42c29c20, 0x15569: 0xe000a5e6, 0x1556a: 0xe0005bad, 0x1556b: 0xe0008fb3, - 0x1556c: 0xe000a1d7, 0x1556d: 0xe000680a, 0x1556e: 0xe00092f5, 0x1556f: 0xe0006076, - 0x15570: 0xe00091bf, 0x15571: 0xe00056e9, 0x15572: 0xe0006f6e, 0x15573: 0x42c43620, - 0x15574: 0x42c4ba20, 0x15575: 0xe0009e12, 0x15576: 0xe000633e, 0x15577: 0xe00079b9, - 0x15578: 0x48561820, 0x15579: 0xe0005dd1, 0x1557a: 0x42c5f820, 0x1557b: 0xe0006aad, - 0x1557c: 0xe0006fe6, 0x1557d: 0x42c7c820, 0x1557e: 0x4857e220, 0x1557f: 0xe000909f, - // Block 0x556, offset 0x15580 - 0x15580: 0x42c78a20, 0x15581: 0xe0007909, 0x15582: 0x44745c20, 0x15583: 0xe0005d6f, - 0x15584: 0x42c8fc20, 0x15585: 0xe000a7dd, 0x15586: 0x42c8ee20, 0x15587: 0x4474d820, - 0x15588: 0xe00061f2, 0x15589: 0xe0004663, 0x1558a: 0x48601420, 0x1558b: 0xe0005019, - 0x1558c: 0xe0006d36, 0x1558d: 0xe00090a3, 0x1558e: 0x44763220, 0x1558f: 0xe0006d30, - 0x15590: 0x44761020, 0x15591: 0x4475c820, 0x15592: 0xe0005fc8, 0x15593: 0xe0005f36, - 0x15594: 0xe0009794, 0x15595: 0x42cd3820, 0x15596: 0xe0005273, 0x15597: 0x4487b220, - 0x15598: 0xe00057cd, 0x15599: 0xe0005e5d, 0x1559a: 0x42ce4220, 0x1559b: 0xe0005022, - 0x1559c: 0xe0009e89, 0x1559d: 0x48678620, 0x1559e: 0x44769220, 0x1559f: 0x42cff420, - 0x155a0: 0x42cf0a20, 0x155a1: 0x42d0a420, 0x155a2: 0xe0005ea7, 0x155a3: 0x4868da20, - 0x155a4: 0x42d11c20, 0x155a5: 0x42d03e20, 0x155a6: 0x42d22820, 0x155a7: 0x44773a20, - 0x155a8: 0xe0006b28, 0x155a9: 0x42d34620, 0x155aa: 0xe00043ed, 0x155ab: 0x42d55020, - 0x155ac: 0x486d4620, 0x155ad: 0xe0008f93, 0x155ae: 0x44783020, 0x155af: 0xe00091ec, - 0x155b0: 0x48714e20, 0x155b1: 0xe000a1d4, 0x155b2: 0x44789c20, 0x155b3: 0xe0006fb0, - 0x155b4: 0x42d73e20, 0x155b5: 0xe0006bd2, 0x155b6: 0x42d77620, 0x155b7: 0x48751a20, - 0x155b8: 0x483a1620, 0x155b9: 0x4875f420, 0x155ba: 0xe00064ea, 0x155bb: 0x48797820, - 0x155bc: 0xe00079c9, 0x155bd: 0x42d99a20, 0x155be: 0x42d8ce20, 0x155bf: 0x42da2c20, - // Block 0x557, offset 0x155c0 - 0x155c0: 0xe0009c74, 0x155c1: 0xe000a13c, 0x155c2: 0xe0005bc5, 0x155c3: 0xe000a3d1, - 0x155c4: 0xe00099f8, 0x155c5: 0xe0007a55, 0x155c6: 0x487a3c20, 0x155c7: 0x42da6820, - 0x155c8: 0xe000a0f9, 0x155c9: 0xe00084a0, 0x155ca: 0x447a6620, 0x155cb: 0xe0008582, - 0x155cc: 0x42dd8e20, 0x155cd: 0x487da220, 0x155ce: 0xe000790d, 0x155cf: 0xe0008cb1, - 0x155d0: 0x487ebc20, 0x155d1: 0x487f1c20, 0x155d2: 0xe000685a, 0x155d3: 0x42e07220, - 0x155d4: 0xe0008b4b, 0x155d5: 0xe0007b09, 0x155d6: 0x447b2c20, 0x155d7: 0x42e09420, - 0x155d8: 0xe00087aa, 0x155d9: 0x42e0ee20, 0x155da: 0xe0009b06, 0x155db: 0x480a4a20, - 0x155dc: 0x42e28a20, 0x155dd: 0x4884c620, 0x155de: 0x42e33820, 0x155df: 0x48875620, - 0x155e0: 0xe0009295, 0x155e1: 0xe000861c, 0x155e2: 0x42e4a020, 0x155e3: 0x488c1020, - 0x155e4: 0xe0006d3f, 0x155e5: 0x42e52a20, 0x155e6: 0x488e6a20, 0x155e7: 0x48902820, - 0x155e8: 0xe0005338, 0x155e9: 0xe0007de7, 0x155ea: 0x447d5820, 0x155eb: 0x42e74a20, - 0x155ec: 0x447d7020, 0x155ed: 0x447d7020, 0x155ee: 0x42e88e20, 0x155ef: 0xe00081f5, - 0x155f0: 0xe00089cf, 0x155f1: 0x42e90a20, 0x155f2: 0xe000468b, 0x155f3: 0x447e3620, - 0x155f4: 0x42ea4820, 0x155f5: 0x48986c20, 0x155f6: 0x42ea7c20, 0x155f7: 0x48992420, - 0x155f8: 0xe000840c, 0x155f9: 0x48433e20, 0x155fa: 0xe0008249, 0x155fb: 0x489f4220, - 0x155fc: 0x489f7020, 0x155fd: 0x48a08820, 0x155fe: 0x447ff820, 0x155ff: 0x44801020, - // Block 0x558, offset 0x15600 - 0x15600: 0xe0009077, 0x15601: 0x48a1e620, 0x15602: 0x48a1e420, 0x15603: 0x48a23220, - 0x15604: 0x48a26620, 0x15605: 0xe00090d7, 0x15606: 0x42ee3e20, 0x15607: 0x42ee3e20, - 0x15608: 0x42ee9420, 0x15609: 0x44807220, 0x1560a: 0xe00090db, 0x1560b: 0x44808c20, - 0x1560c: 0x44812c20, 0x1560d: 0x48a83a20, 0x1560e: 0x42f09c20, 0x1560f: 0xe0005a80, - 0x15610: 0x42f19820, 0x15611: 0x4481c620, 0x15612: 0x48ac4c20, 0x15613: 0xe0008cc3, - 0x15614: 0x48ad3420, 0x15615: 0x48ad8a20, 0x15616: 0xe000666f, 0x15617: 0xe00098a4, - 0x15618: 0x44825e20, 0x15619: 0xe0004870, 0x1561a: 0x42f49420, 0x1561b: 0x42f49e20, - 0x1561c: 0x48b2f820, 0x1561d: 0x48b54e20, 0x1561e: 0x48b54e20, 0x1561f: 0x42f5dc20, - 0x15620: 0x44840420, 0x15621: 0x48b75620, 0x15622: 0xe0008967, 0x15623: 0xe000985c, - 0x15624: 0x44844e20, 0x15625: 0x48b90020, 0x15626: 0x42f9a420, 0x15627: 0x44854020, - 0x15628: 0x42f9d020, 0x15629: 0x42f9c620, 0x1562a: 0xe0005067, 0x1562b: 0x48bf0c20, - 0x1562c: 0xe00065f6, 0x1562d: 0x44860220, 0x1562e: 0xe0009967, 0x1562f: 0x42fc0420, - 0x15630: 0xe0007061, 0x15631: 0x44866820, 0x15632: 0x48c45020, 0x15633: 0x48c48e20, - 0x15634: 0x4486b220, 0x15635: 0x48c5b220, 0x15636: 0x42fef420, 0x15637: 0x48c67c20, - 0x15638: 0x42ff2a20, 0x15639: 0xe0004842, 0x1563a: 0xe000859a, 0x1563b: 0x48c9b420, - 0x1563c: 0x48ca4620, 0x1563d: 0x4300c020, 0x1563e: 0x48cb5020, 0x1563f: 0xe000976a, - // Block 0x559, offset 0x15640 - 0x15640: 0x4866be20, 0x15641: 0x4487aa20, 0x15642: 0xe0008294, 0x15643: 0x43020620, - 0x15644: 0x44881620, 0x15645: 0xe0006934, 0x15646: 0xe0008560, 0x15647: 0x48cf4e20, - 0x15648: 0x48cf6a20, 0x15649: 0x48672620, 0x1564a: 0x48673820, 0x1564b: 0xe000796a, - 0x1564c: 0x43040820, 0x1564d: 0x431f3c20, 0x1564e: 0x4488d620, 0x1564f: 0x43052220, - 0x15650: 0xe0007f9a, 0x15651: 0xe0009035, 0x15652: 0x42a56620, 0x15653: 0xe000a4f7, - 0x15654: 0xe00063ca, 0x15655: 0xe0007552, 0x15656: 0xe00047e2, 0x15657: 0x48d67820, - 0x15658: 0xe00077bb, 0x15659: 0xe00093ec, 0x1565a: 0x4306c620, 0x1565b: 0x43075a20, - 0x1565c: 0xe0007c6b, 0x1565d: 0xe0005e71, 0x1565e: 0x4307ce20, 0x1565f: 0xe000882a, - 0x15660: 0x4306a620, 0x15661: 0xe0004d19, 0x15662: 0xe0004ea5, 0x15663: 0xe00093dd, - 0x15664: 0x48d86c20, 0x15665: 0x48dad620, 0x15666: 0x48d9aa20, 0x15667: 0x448a5620, - 0x15668: 0xe0009dc2, 0x15669: 0x4309e620, 0x1566a: 0x430a2c20, 0x1566b: 0x48e79420, - 0x1566c: 0xe0008264, 0x1566d: 0x48de5820, 0x1566e: 0x448aba20, 0x1566f: 0x448ac220, - 0x15670: 0x48df6220, 0x15671: 0x48e1a420, 0x15672: 0x448ad620, 0x15673: 0xe0009fc9, - 0x15674: 0xe0005a41, 0x15675: 0xe000a7ef, 0x15676: 0x430cd220, 0x15677: 0xe0009973, - 0x15678: 0x430d1020, 0x15679: 0x430e1c20, 0x1567a: 0x430dc420, 0x1567b: 0x430ef220, - 0x1567c: 0xe0008acb, 0x1567d: 0x430ed620, 0x1567e: 0x430f0c20, 0x1567f: 0x448bae20, - // Block 0x55a, offset 0x15680 - 0x15680: 0x430fc220, 0x15681: 0x43100220, 0x15682: 0x448bf220, 0x15683: 0x4310c020, - 0x15684: 0xe00083c1, 0x15685: 0x48ecce20, 0x15686: 0x4311ae20, 0x15687: 0x4311bc20, - 0x15688: 0x448c6a20, 0x15689: 0x4311f420, 0x1568a: 0x44697620, 0x1568b: 0x48f15c20, - 0x1568c: 0x48f2cc20, 0x1568d: 0x448d7c20, 0x1568e: 0x448d8e20, 0x1568f: 0xe0006f9a, - 0x15690: 0xe0008210, 0x15691: 0xe000655e, 0x15692: 0xe00073ce, 0x15693: 0x48f95020, - 0x15694: 0xe0004a1f, 0x15695: 0xe0006832, 0x15696: 0xe0004968, 0x15697: 0xe0005082, - 0x15698: 0x48fe5e20, 0x15699: 0x48100820, 0x1569a: 0xe0006352, 0x1569b: 0x431b7820, - 0x1569c: 0x431be020, 0x1569d: 0x4811bc20, 0x1569e: 0x431da820, 0x1569f: 0xe00071ab, - 0x156a0: 0x490ba420, 0x156a1: 0x490bda20, 0x156a2: 0x43212820, 0x156a3: 0x4321e220, - 0x156a4: 0x43222220, 0x156a5: 0x490e5c20, 0x156a6: 0x43223620, 0x156a7: 0xe0006372, - 0x156a8: 0xe000a2a3, 0x156a9: 0x4325b020, 0x156aa: 0xe000660a, 0x156ab: 0x4327f220, - 0x156ac: 0x43282a20, 0x156ad: 0x4917f420, 0x156ae: 0xe0004408, 0x156af: 0x44932a20, - 0x156b0: 0x432b6e20, 0x156b1: 0x491aee20, 0x156b2: 0x4493cc20, 0x156b3: 0x432d8620, - 0x156b4: 0x42bb6420, 0x156b5: 0xe000805c, 0x156b6: 0x49228a20, 0x156b7: 0x49243420, - 0x156b8: 0x4494dc20, 0x156b9: 0x4494ec20, 0x156ba: 0xe0009f67, 0x156bb: 0x49281420, - 0x156bc: 0x44956420, 0x156bd: 0x49292c20, 0x156be: 0x43301620, 0x156bf: 0x43301620, - // Block 0x55b, offset 0x156c0 - 0x156c0: 0x43305220, 0x156c1: 0x492b6c20, 0x156c2: 0xe000508b, 0x156c3: 0x44966620, - 0x156c4: 0x43325220, 0x156c5: 0x43334e20, 0x156c6: 0x43338420, 0x156c7: 0x4333fc20, - 0x156c8: 0x44979c20, 0x156c9: 0x49366020, 0x156ca: 0xe000913b, 0x156cb: 0x43388020, - 0x156cc: 0x4339fa20, 0x156cd: 0x44999c20, 0x156ce: 0x4499da20, 0x156cf: 0x433ace20, - 0x156d0: 0x49419c20, 0x156d1: 0x4499f020, 0x156d2: 0x49420a20, 0x156d3: 0x49441c20, - 0x156d4: 0x49452220, 0x156d5: 0xe0005d84, 0x156d6: 0x449aac20, 0x156d7: 0x433df220, - 0x156d8: 0x433dfc20, 0x156d9: 0x433e0a20, 0x156da: 0x433e1e20, 0x156db: 0x433e2c20, - 0x156dc: 0xe0006955, 0x156dd: 0x494c0020, - // Block 0x55c, offset 0x15700 - 0x15700: 0xa000f202, 0x15701: 0x403fba21, 0x15702: 0x403fba20, 0x15703: 0x403fbc20, - 0x15704: 0x403fbc20, 0x15705: 0x403fbe20, 0x15706: 0x403fc020, 0x15707: 0x403fcc20, - 0x15708: 0x403fce20, 0x15709: 0x403fd020, 0x1570a: 0x403fd220, 0x1570b: 0x403fd420, - 0x1570c: 0x403fd820, 0x1570d: 0x403fdc20, 0x1570e: 0x403fde20, 0x1570f: 0x403fe020, - 0x15710: 0x403fe220, 0x15711: 0x403fe420, 0x15712: 0x403fe620, 0x15713: 0x403fe820, - 0x15714: 0x403fea20, 0x15715: 0xca983ba1, 0x15716: 0x403fee20, 0x15717: 0x403ff020, - 0x15718: 0x403ff420, 0x15719: 0x403ff620, 0x1571a: 0x403ff820, 0x1571b: 0x403ffa20, - 0x1571c: 0x403ffc20, 0x1571d: 0x40400220, 0x1571e: 0x40400420, 0x1571f: 0x40400620, - 0x15720: 0x40400820, 0x15721: 0x40400a20, 0x15722: 0x40400e20, 0x15723: 0x40401020, - 0x15724: 0x40401220, 0x15725: 0x40401420, 0x15726: 0x40401620, 0x15727: 0x40401820, - 0x15728: 0x40401a20, 0x15729: 0xe0001830, 0x1572a: 0x40401c20, 0x1572b: 0x40401e20, - 0x1572c: 0x40402020, 0x1572d: 0x40402420, 0x1572e: 0x40402620, 0x1572f: 0x40402820, - 0x15730: 0x40402c20, 0x15731: 0xe0001839, 0x15732: 0x40402e20, 0x15733: 0x40403c20, - 0x15734: 0xe000a926, 0x15735: 0x40403220, 0x15736: 0x40403420, 0x15737: 0x40403620, - 0x15738: 0x40403820, 0x15739: 0x40403a20, 0x1573a: 0x40404c20, 0x1573b: 0x40404e20, - 0x1573c: 0xa070f102, 0x1573d: 0x40403c20, 0x1573e: 0x40404a20, 0x1573f: 0x40405620, - // Block 0x55d, offset 0x15740 - 0x15740: 0x402c1a20, 0x15741: 0x002c2a88, 0x15742: 0x002c3288, 0x15743: 0x402c3220, - 0x15744: 0x0031c488, 0x15745: 0x4031c420, 0x15746: 0x002ee2a3, 0x15747: 0x002c4e88, - 0x15748: 0x402c4e20, 0x15749: 0x002c7288, 0x1574a: 0x002c7a88, 0x1574b: 0x002c8488, - 0x1574c: 0x402c8420, 0x1574d: 0xe000115c, 0x1574e: 0x002cae88, 0x1574f: 0x002cb888, - 0x15750: 0x002c9a83, 0x15751: 0x002d1688, 0x15752: 0x402d1620, 0x15753: 0x002d4488, - 0x15754: 0x002d5888, 0x15755: 0x402d7820, 0x15756: 0x002dc288, 0x15757: 0x002db688, - 0x15758: 0x002e0a88, 0x15759: 0x402e0a20, 0x1575a: 0x402e3820, 0x1575b: 0x402e7220, - 0x1575c: 0x0030a088, 0x1575d: 0x002eb488, 0x1575e: 0x402ebc20, 0x1575f: 0x002f1088, - 0x15760: 0xe0000e56, 0x15761: 0xe0000e53, 0x15762: 0x002d6088, 0x15763: 0x402d6020, - 0x15764: 0x002f3e88, 0x15765: 0x402f3e20, 0x15766: 0x002f8288, 0x15767: 0x0031b488, - 0x15768: 0x4031b420, 0x15769: 0x00300888, 0x1576a: 0x40301220, 0x1576b: 0x40304220, - 0x1576c: 0x00304a88, 0x1576d: 0x40304a20, 0x1576e: 0x00305288, 0x1576f: 0xe000105f, - 0x15770: 0xe000105c, 0x15771: 0x0030b488, 0x15772: 0x0030cc88, 0x15773: 0x00311888, - 0x15774: 0x40311820, 0x15775: 0x00313488, 0x15776: 0x40313420, 0x15777: 0x00316488, - 0x15778: 0x00316e88, 0x15779: 0x40316e20, 0x1577a: 0x40317820, 0x1577b: 0x4031a620, - 0x1577c: 0x0031bc88, 0x1577d: 0x4031bc20, 0x1577e: 0xe0000fc9, 0x1577f: 0x40319420, - // Block 0x55e, offset 0x15780 - 0x15780: 0x40315820, 0x15781: 0x0031d488, 0x15782: 0x4031d420, 0x15783: 0x002c1a88, - 0x15784: 0x00307c88, 0x15785: 0x0030da88, 0x15786: 0x002ca288, 0x15787: 0x402ca220, - 0x15788: 0x002dde88, 0x15789: 0x402dde20, 0x1578a: 0x002f6a88, 0x1578b: 0x402f6a20, - 0x1578c: 0x002f8e88, 0x1578d: 0x402f8e20, 0x1578e: 0x00311088, 0x1578f: 0x40311020, - 0x15790: 0x402bf020, 0x15791: 0x402bf820, 0x15792: 0x402c0220, 0x15793: 0x402c2a20, - 0x15794: 0x402ee221, 0x15795: 0x402c5620, 0x15796: 0x402c7220, 0x15797: 0x402c7a20, - 0x15798: 0x402ccc20, 0x15799: 0x402cb820, 0x1579a: 0x402cd420, 0x1579b: 0x402c9a20, - 0x1579c: 0x402cdc20, 0x1579d: 0x402ce820, 0x1579e: 0x402cf020, 0x1579f: 0x402dee20, - 0x157a0: 0x402d4420, 0x157a1: 0x402d2a20, 0x157a2: 0x402d3220, 0x157a3: 0x402d5820, - 0x157a4: 0x402d0020, 0x157a5: 0x40308820, 0x157a6: 0x402d8020, 0x157a7: 0x402d8e20, - 0x157a8: 0x402db620, 0x157a9: 0x402dc220, 0x157aa: 0x402daa20, 0x157ab: 0x402e4220, - 0x157ac: 0x402e4a20, 0x157ad: 0x402e5420, 0x157ae: 0x402e6820, 0x157af: 0x4030a020, - 0x157b0: 0x4030ac20, 0x157b1: 0x402e9020, 0x157b2: 0x402eb420, 0x157b3: 0x402ec820, - 0x157b4: 0x402ea620, 0x157b5: 0x402f1020, 0x157b6: 0x402eee20, 0x157b7: 0x402f1a20, - 0x157b8: 0x402f4c20, 0x157b9: 0x402f9820, 0x157ba: 0x402fa220, 0x157bb: 0x402fac20, - 0x157bc: 0x402fb620, 0x157bd: 0x402fbe20, 0x157be: 0x402fc620, 0x157bf: 0x402fd020, - // Block 0x55f, offset 0x157c0 - 0x157c0: 0xa0000000, 0x157c1: 0xa0000000, 0x157c2: 0xa0000000, 0x157c3: 0xa0000000, - 0x157c4: 0xa0000000, 0x157c5: 0xa0000000, 0x157c6: 0xa0000000, 0x157c7: 0xa0000000, - 0x157c8: 0xa0000000, 0x157c9: 0x40020020, 0x157ca: 0x40020220, 0x157cb: 0x40020420, - 0x157cc: 0x40020620, 0x157cd: 0x40020820, 0x157ce: 0xa0000000, 0x157cf: 0xa0000000, - 0x157d0: 0xa0000000, 0x157d1: 0xa0000000, 0x157d2: 0xa0000000, 0x157d3: 0xa0000000, - 0x157d4: 0xa0000000, 0x157d5: 0xa0000000, 0x157d6: 0xa0000000, 0x157d7: 0xa0000000, - 0x157d8: 0xa0000000, 0x157d9: 0xa0000000, 0x157da: 0xa0000000, 0x157db: 0xa0000000, - 0x157dc: 0xa0000000, 0x157dd: 0xa0000000, 0x157de: 0xa0000000, 0x157df: 0xa0000000, - 0x157e0: 0x40021220, 0x157e1: 0x4002ba20, 0x157e2: 0x4003e020, 0x157e3: 0x4004ea20, - 0x157e4: 0x4027de20, 0x157e5: 0x4004ec20, 0x157e6: 0x4004e620, 0x157e7: 0x4003d220, - 0x157e8: 0x4003f420, 0x157e9: 0x4003f620, 0x157ea: 0x4004d820, 0x157eb: 0x40093820, - 0x157ec: 0x40024020, 0x157ed: 0x40021a20, 0x157ee: 0x4002e420, 0x157ef: 0x4004e220, - 0x157f0: 0x4029cc20, 0x157f1: 0x4029ce20, 0x157f2: 0x4029d020, 0x157f3: 0x4029d220, - 0x157f4: 0x4029d420, 0x157f5: 0x4029d620, 0x157f6: 0x4029d820, 0x157f7: 0x4029da20, - 0x157f8: 0x4029dc20, 0x157f9: 0x4029de20, 0x157fa: 0x40026c20, 0x157fb: 0x40026220, - 0x157fc: 0x40094020, 0x157fd: 0x40094220, 0x157fe: 0x40094420, 0x157ff: 0x4002c420, - // Block 0x560, offset 0x15800 - 0x15800: 0x4004d620, 0x15801: 0xcaa00be1, 0x15802: 0x002c0a88, 0x15803: 0xc3350991, - 0x15804: 0x002c6288, 0x15805: 0xcaa53c31, 0x15806: 0x002d0888, 0x15807: 0x002d2288, - 0x15808: 0x002d6888, 0x15809: 0xcaaa0be1, 0x1580a: 0x002dcc88, 0x1580b: 0x002dfe88, - 0x1580c: 0xc0030002, 0x1580d: 0x002e8288, 0x1580e: 0x002e9e88, 0x1580f: 0x002ee288, - 0x15810: 0x002f2c88, 0x15811: 0x002f5688, 0x15812: 0x002f7a88, 0x15813: 0xc3430991, - 0x15814: 0x00302c88, 0x15815: 0xcaaf3c61, 0x15816: 0x0030be88, 0x15817: 0x0030e288, - 0x15818: 0x0030f688, 0x15819: 0x002d9ac3, 0x1581a: 0xc3630991, 0x1581b: 0x4003f820, - 0x1581c: 0x4004e420, 0x1581d: 0x4003fa20, 0x1581e: 0x40062420, 0x1581f: 0x40021620, - 0x15820: 0x40061e20, 0x15821: 0xca9e0be1, 0x15822: 0x402c0a20, 0x15823: 0xc3330991, - 0x15824: 0x402c6220, 0x15825: 0xcaa23c31, 0x15826: 0x402d0820, 0x15827: 0x402d2220, - 0x15828: 0x402d6820, 0x15829: 0xcaa80be1, 0x1582a: 0x402dcc20, 0x1582b: 0x402dfe20, - 0x1582c: 0xc0000002, 0x1582d: 0x402e8220, 0x1582e: 0x402e9e20, 0x1582f: 0x402ee220, - 0x15830: 0x402f2c20, 0x15831: 0x402f5620, 0x15832: 0x402f7a20, 0x15833: 0xc3410991, - 0x15834: 0x40302c20, 0x15835: 0xcaac3c61, 0x15836: 0x4030be20, 0x15837: 0x4030e220, - 0x15838: 0x4030f620, 0x15839: 0x402d9a22, 0x1583a: 0xc3610991, 0x1583b: 0x4003fc20, - 0x1583c: 0x40094820, 0x1583d: 0x4003fe20, 0x1583e: 0x40094c20, 0x1583f: 0xa0000000, - // Block 0x561, offset 0x15840 - 0x15840: 0xe00008f5, 0x15841: 0xe00008ef, 0x15842: 0xe0000921, 0x15843: 0xe0000969, - 0x15844: 0xe000095b, 0x15845: 0xe000094d, 0x15846: 0xe00009dd, 0x15847: 0xe0000a53, - 0x15848: 0xe0000ae8, 0x15849: 0xe0000ae2, 0x1584a: 0xe0000af4, 0x1584b: 0xe0000b20, - 0x1584c: 0xe0000c2b, 0x1584d: 0xe0000c25, 0x1584e: 0xe0000c37, 0x1584f: 0xe0000c43, - 0x15850: 0xe0000ab3, 0x15851: 0xe0000d63, 0x15852: 0xe0000d9a, 0x15853: 0xe0000d94, - 0x15854: 0xe0000da6, 0x15855: 0xe0000de6, 0x15856: 0xe0000dd2, 0x15857: 0x40093e20, - 0x15858: 0xe0000e12, 0x15859: 0xe0000fe1, 0x1585a: 0xe0000fdb, 0x1585b: 0xe0000fed, - 0x1585c: 0xe0000fff, 0x1585d: 0xe000a92c, 0x1585e: 0x00318888, 0x1585f: 0xe0000f7b, - 0x15860: 0xe00008f2, 0x15861: 0xe00008ec, 0x15862: 0xe000091e, 0x15863: 0xe0000966, - 0x15864: 0xe0000958, 0x15865: 0xe000094a, 0x15866: 0xe00009d5, 0x15867: 0xe0000a4d, - 0x15868: 0xe0000ae5, 0x15869: 0xe0000adf, 0x1586a: 0xe0000af1, 0x1586b: 0xe0000b1d, - 0x1586c: 0xe0000c28, 0x1586d: 0xe0000c22, 0x1586e: 0xe0000c34, 0x1586f: 0xe0000c40, - 0x15870: 0xe0000aad, 0x15871: 0xe0000d60, 0x15872: 0xe0000d97, 0x15873: 0xe0000d91, - 0x15874: 0xe0000da3, 0x15875: 0xe0000de3, 0x15876: 0xe0000dcf, 0x15877: 0x40093c20, - 0x15878: 0xe0000e0f, 0x15879: 0xe0000fde, 0x1587a: 0xe0000fd8, 0x1587b: 0xe0000fea, - 0x1587c: 0xe0000ffc, 0x1587d: 0xe000a929, 0x1587e: 0x40318820, 0x1587f: 0xe000a93e, - // Block 0x562, offset 0x15880 - 0x15880: 0xe0000983, 0x15881: 0xe0000980, 0x15882: 0xe00008fb, 0x15883: 0xe00008f8, - 0x15884: 0x002bdea3, 0x15885: 0x402bde21, 0x15886: 0xe0000a38, 0x15887: 0xe0000a35, - 0x15888: 0xe0000a3e, 0x15889: 0xe0000a3b, 0x1588a: 0xe0000a4a, 0x1588b: 0xe0000a47, - 0x1588c: 0x002c3c83, 0x1588d: 0x402c3c20, 0x1588e: 0xe0000a86, 0x1588f: 0xe0000a83, - 0x15890: 0xe0000aaa, 0x15891: 0xe0000aa7, 0x15892: 0xe0000b46, 0x15893: 0xe0000b43, - 0x15894: 0xe0000aee, 0x15895: 0xe0000aeb, 0x15896: 0x002c98c3, 0x15897: 0x402c9822, - 0x15898: 0x002c98a3, 0x15899: 0x402c9821, 0x1589a: 0xe0000b1a, 0x1589b: 0xe0000b17, - 0x1589c: 0xe0000bb8, 0x1589d: 0xe0000bb5, 0x1589e: 0xe0000bb2, 0x1589f: 0xe0000baf, - 0x158a0: 0xe0000bc4, 0x158a1: 0xe0000bc1, 0x158a2: 0xe0000bca, 0x158a3: 0xe0000bc7, - 0x158a4: 0xe0000bee, 0x158a5: 0xe0000beb, 0x158a6: 0xe0000c1b, 0x158a7: 0xe0000c18, - 0x158a8: 0xe0000c51, 0x158a9: 0xe0000c4e, 0x158aa: 0xe0000c60, 0x158ab: 0xe0000c5d, - 0x158ac: 0xe0000c31, 0x158ad: 0xe0000c2e, 0x158ae: 0x002d9aa3, 0x158af: 0x402d9a21, - 0x158b0: 0xe0000c54, 0x158b1: 0x402da220, 0x158b2: 0xf0000a0a, 0x158b3: 0xf0000404, - 0x158b4: 0xe0000c8a, 0x158b5: 0xe0000c87, 0x158b6: 0xe0000c9f, 0x158b7: 0xe0000c9c, - 0x158b8: 0x402f7220, 0x158b9: 0xe0000ccc, 0x158ba: 0xe0000cc9, 0x158bb: 0xe0000cd8, - 0x158bc: 0xe0000cd5, 0x158bd: 0xe0000cd2, 0x158be: 0xe0000ccf, 0x158bf: 0xe0000d04, - // Block 0x563, offset 0x158c0 - 0x158c0: 0xe0000cfe, 0x158c1: 0xe0000cf8, 0x158c2: 0xe0000cf5, 0x158c3: 0xe0000d51, - 0x158c4: 0xe0000d4e, 0x158c5: 0xe0000d6f, 0x158c6: 0xe0000d6c, 0x158c7: 0xe0000d5d, - 0x158c8: 0xe0000d5a, 0x158c9: 0xf0000404, 0x158ca: 0x002eda88, 0x158cb: 0x402eda20, - 0x158cc: 0xe0000e2e, 0x158cd: 0xe0000e2b, 0x158ce: 0xe0000da0, 0x158cf: 0xe0000d9d, - 0x158d0: 0xe0000de0, 0x158d1: 0xe0000ddd, 0x158d2: 0xe0000e93, 0x158d3: 0xe0000e8f, - 0x158d4: 0xe0000eca, 0x158d5: 0xe0000ec7, 0x158d6: 0xe0000edc, 0x158d7: 0xe0000ed9, - 0x158d8: 0xe0000ed0, 0x158d9: 0xe0000ecd, 0x158da: 0xe0000f1f, 0x158db: 0xe0000f1c, - 0x158dc: 0xe0000f2d, 0x158dd: 0xe0000f2a, 0x158de: 0xe0000f47, 0x158df: 0xe0000f44, - 0x158e0: 0x002fe883, 0x158e1: 0x402fe820, 0x158e2: 0xe0000f99, 0x158e3: 0xe0000f96, - 0x158e4: 0xe0000f8a, 0x158e5: 0xe0000f87, 0x158e6: 0x00303688, 0x158e7: 0x40303620, - 0x158e8: 0xe000102b, 0x158e9: 0xe0001028, 0x158ea: 0x00306cc3, 0x158eb: 0x40306c22, - 0x158ec: 0xe0000fe7, 0x158ed: 0xe0000fe4, 0x158ee: 0xe0000ff9, 0x158ef: 0xe0000ff6, - 0x158f0: 0xe0001025, 0x158f1: 0xe0001022, 0x158f2: 0x00306ca3, 0x158f3: 0x40306c21, - 0x158f4: 0xe00010d8, 0x158f5: 0xe00010d5, 0x158f6: 0xe000a938, 0x158f7: 0xe000a935, - 0x158f8: 0xe000a941, 0x158f9: 0xe000113b, 0x158fa: 0xe0001138, 0x158fb: 0xe000114d, - 0x158fc: 0xe000114a, 0x158fd: 0x00312c83, 0x158fe: 0x40312c20, 0x158ff: 0xe0000f64, - // Block 0x564, offset 0x15900 - 0x15900: 0x40321220, 0x15901: 0x40321a20, 0x15902: 0x40322220, 0x15903: 0x40322a20, - 0x15904: 0xe0000ad5, 0x15905: 0xe0000ad1, 0x15906: 0xe0000acd, 0x15907: 0xf0000a0a, - 0x15908: 0xf000040a, 0x15909: 0xf0000404, 0x1590a: 0xf0000a0a, 0x1590b: 0xf000040a, - 0x1590c: 0xf0000404, 0x1590d: 0xe0000947, 0x1590e: 0xe0000944, 0x1590f: 0xe0000c3d, - 0x15910: 0xe0000c3a, 0x15911: 0xe0000dcc, 0x15912: 0xe0000dc9, 0x15913: 0xe0000ff3, - 0x15914: 0xe0000ff0, 0x15915: 0xe000a965, 0x15916: 0xe000a962, 0x15917: 0xe0001006, - 0x15918: 0xe0001002, 0x15919: 0xe0001016, 0x1591a: 0xe0001012, 0x1591b: 0xe000100e, - 0x1591c: 0xe000100a, 0x1591d: 0x402cae20, 0x1591e: 0xe0000962, 0x1591f: 0xe000095e, - 0x15920: 0xe0000976, 0x15921: 0xe0000972, 0x15922: 0xe00009f4, 0x15923: 0xe00009ef, - 0x15924: 0x002d3a88, 0x15925: 0x402d3a20, 0x15926: 0xe0000bbe, 0x15927: 0xe0000bbb, - 0x15928: 0xe0000c99, 0x15929: 0xe0000c96, 0x1592a: 0xe0000e20, 0x1592b: 0xe0000e1d, - 0x1592c: 0xe0000e27, 0x1592d: 0xe0000e23, 0x1592e: 0xe0001162, 0x1592f: 0xe000115f, - 0x15930: 0xe0000c8d, 0x15931: 0xf0000a0a, 0x15932: 0xf000040a, 0x15933: 0xf0000404, - 0x15934: 0xe0000bac, 0x15935: 0xe0000ba9, 0x15936: 0x002d7888, 0x15937: 0x00319488, - 0x15938: 0xe0000d57, 0x15939: 0xe0000d54, 0x1593a: 0xe0000954, 0x1593b: 0xe0000950, - 0x1593c: 0xe00009ea, 0x1593d: 0xe00009e5, 0x1593e: 0xe0000e19, 0x1593f: 0xe0000e15, - // Block 0x565, offset 0x15940 - 0x15940: 0xe000098f, 0x15941: 0xe000098c, 0x15942: 0xe0000995, 0x15943: 0xe0000992, - 0x15944: 0xe0000b62, 0x15945: 0xe0000b5f, 0x15946: 0xe0000b68, 0x15947: 0xe0000b65, - 0x15948: 0xe0000c6c, 0x15949: 0xe0000c69, 0x1594a: 0xe0000c72, 0x1594b: 0xe0000c6f, - 0x1594c: 0xe0000e4a, 0x1594d: 0xe0000e47, 0x1594e: 0xe0000e50, 0x1594f: 0xe0000e4d, - 0x15950: 0xe0000ee8, 0x15951: 0xe0000ee5, 0x15952: 0xe0000eee, 0x15953: 0xe0000eeb, - 0x15954: 0xe0001053, 0x15955: 0xe0001050, 0x15956: 0xe0001059, 0x15957: 0xe0001056, - 0x15958: 0xe0000f61, 0x15959: 0xe0000f5e, 0x1595a: 0xe0000fa5, 0x1595b: 0xe0000fa2, - 0x1595c: 0x00312288, 0x1595d: 0x40312220, 0x1595e: 0xe0000bf4, 0x1595f: 0xe0000bf1, - 0x15960: 0x002ebc88, 0x15961: 0x402c8c20, 0x15962: 0x002f2288, 0x15963: 0x402f2220, - 0x15964: 0x00314088, 0x15965: 0x40314020, 0x15966: 0xe000096f, 0x15967: 0xe000096c, - 0x15968: 0xe0000b32, 0x15969: 0xe0000b2f, 0x1596a: 0xe0000dd9, 0x1596b: 0xe0000dd5, - 0x1596c: 0xe0000dfd, 0x1596d: 0xe0000df9, 0x1596e: 0xe0000e04, 0x1596f: 0xe0000e01, - 0x15970: 0xe0000e0b, 0x15971: 0xe0000e07, 0x15972: 0xe000a953, 0x15973: 0xe000a950, - 0x15974: 0x402e5e20, 0x15975: 0x402ed020, 0x15976: 0x40305a20, 0x15977: 0x402dd420, - 0x15978: 0xe0000abf, 0x15979: 0xe0000ec4, 0x1597a: 0x002be888, 0x1597b: 0x002c4488, - 0x1597c: 0x402c4420, 0x1597d: 0x002e3888, 0x1597e: 0x00303e88, 0x1597f: 0x402ffc20, - // Block 0x566, offset 0x15980 - 0x15980: 0xae603502, 0x15981: 0xae603202, 0x15982: 0xae603c02, 0x15983: 0xae604e02, - 0x15984: 0xae605b02, 0x15985: 0xae606302, 0x15986: 0xae603702, 0x15987: 0xca9a3c01, - 0x15988: 0xae604702, 0x15989: 0xae606402, 0x1598a: 0xae604302, 0x1598b: 0xae604d02, - 0x1598c: 0xae604102, 0x1598d: 0xae605f02, 0x1598e: 0xae605f02, 0x1598f: 0xae606502, - 0x15990: 0xae606602, 0x15991: 0xae606702, 0x15992: 0xae605f02, 0x15993: 0xae602202, - 0x15994: 0xae602a02, 0x15995: 0xae805f02, 0x15996: 0xadc06002, 0x15997: 0xadc06002, - 0x15998: 0xadc06002, 0x15999: 0xadc06002, 0x1599a: 0xae805f02, 0x1599b: 0xad806802, - 0x1599c: 0xadc06002, 0x1599d: 0xadc06002, 0x1599e: 0xadc06002, 0x1599f: 0xadc06002, - 0x159a0: 0xadc06002, 0x159a1: 0xaca06e02, 0x159a2: 0xaca06f02, 0x159a3: 0xadc07002, - 0x159a4: 0xadc07502, 0x159a5: 0xadc07602, 0x159a6: 0xadc07702, 0x159a7: 0xaca05602, - 0x159a8: 0xaca05902, 0x159a9: 0xadc06002, 0x159aa: 0xadc06002, 0x159ab: 0xadc06002, - 0x159ac: 0xadc06002, 0x159ad: 0xadc07802, 0x159ae: 0xadc07902, 0x159af: 0xadc06002, - 0x159b0: 0xadc07a02, 0x159b1: 0xadc07b02, 0x159b2: 0xadc02102, 0x159b3: 0xadc06002, - 0x159b4: 0xa0107c02, 0x159b5: 0xa0107d02, 0x159b6: 0xa0106102, 0x159b7: 0xa0106102, - 0x159b8: 0xa0105402, 0x159b9: 0xadc07e02, 0x159ba: 0xadc06002, 0x159bb: 0xadc06002, - 0x159bc: 0xadc06002, 0x159bd: 0xae605f02, 0x159be: 0xae605f02, 0x159bf: 0xae605f02, - // Block 0x567, offset 0x159c0 - 0x159c0: 0xe0000d24, 0x159c1: 0xe0000d21, 0x159c2: 0xe0000d2a, 0x159c3: 0xe0000d27, - 0x159c4: 0xe0000d69, 0x159c5: 0xe0000d66, 0x159c6: 0xe0000d7b, 0x159c7: 0xe0000d78, - 0x159c8: 0xe0000d87, 0x159c9: 0xe0000d84, 0x159ca: 0xe0000d81, 0x159cb: 0xe0000d7e, - 0x159cc: 0xe0000ded, 0x159cd: 0xe0000de9, 0x159ce: 0xe0000df5, 0x159cf: 0xe0000df1, - 0x159d0: 0xe0000e3d, 0x159d1: 0xe0000e39, 0x159d2: 0xe0000e35, 0x159d3: 0xe0000e31, - 0x159d4: 0xe0000ea7, 0x159d5: 0xe0000ea4, 0x159d6: 0xe0000ead, 0x159d7: 0xe0000eaa, - 0x159d8: 0xe0000ed6, 0x159d9: 0xe0000ed3, 0x159da: 0xe0000ef4, 0x159db: 0xe0000ef1, - 0x159dc: 0xe0000efb, 0x159dd: 0xe0000ef7, 0x159de: 0xe0000f02, 0x159df: 0xe0000eff, - 0x159e0: 0xe0000f41, 0x159e1: 0xe0000f3e, 0x159e2: 0xe0000f53, 0x159e3: 0xe0000f50, - 0x159e4: 0xe0000f26, 0x159e5: 0xe0000f22, 0x159e6: 0xe000296a, 0x159e7: 0xe0002967, - 0x159e8: 0xe0000f5a, 0x159e9: 0xe0000f56, 0x159ea: 0xe0000f93, 0x159eb: 0xe0000f90, - 0x159ec: 0xe0000f9f, 0x159ed: 0xe0000f9c, 0x159ee: 0xe0000fb1, 0x159ef: 0xe0000fae, - 0x159f0: 0xe0000fab, 0x159f1: 0xe0000fa8, 0x159f2: 0xe0001093, 0x159f3: 0xe0001090, - 0x159f4: 0xe000109f, 0x159f5: 0xe000109c, 0x159f6: 0xe0001099, 0x159f7: 0xe0001096, - 0x159f8: 0xe0001032, 0x159f9: 0xe000102e, 0x159fa: 0xe000a965, 0x159fb: 0xe000a962, - 0x159fc: 0xe00010a9, 0x159fd: 0xe00010a6, 0x159fe: 0xe00010af, 0x159ff: 0xe00010ac, - // Block 0x568, offset 0x15a00 - 0x15a00: 0xe00010d2, 0x15a01: 0xe00010cf, 0x15a02: 0xe00010cc, 0x15a03: 0xe00010c9, - 0x15a04: 0xe00010e1, 0x15a05: 0xe00010de, 0x15a06: 0xe00010e7, 0x15a07: 0xe00010e4, - 0x15a08: 0xe00010ed, 0x15a09: 0xe00010ea, 0x15a0a: 0xe00010fc, 0x15a0b: 0xe00010f9, - 0x15a0c: 0xe00010f6, 0x15a0d: 0xe00010f3, 0x15a0e: 0xe000a94d, 0x15a0f: 0xe000a94a, - 0x15a10: 0xe0001141, 0x15a11: 0xe000113e, 0x15a12: 0xe0001153, 0x15a13: 0xe0001150, - 0x15a14: 0xe0001159, 0x15a15: 0xe0001156, 0x15a16: 0xe0000c15, 0x15a17: 0xe0000f8d, - 0x15a18: 0xe00010db, 0x15a19: 0xe000a93b, 0x15a1a: 0xf0000404, 0x15a1b: 0xe0000f70, - 0x15a1c: 0x40300420, 0x15a1d: 0x40300620, 0x15a1e: 0xe0000f7f, 0x15a1f: 0x402c9620, - 0x15a20: 0xe000099b, 0x15a21: 0xe0000998, 0x15a22: 0xe0000989, 0x15a23: 0xe0000986, - 0x15a24: 0xe0000928, 0x15a25: 0xe0000924, 0x15a26: 0xe0000930, 0x15a27: 0xe000092c, - 0x15a28: 0xe0000940, 0x15a29: 0xe000093c, 0x15a2a: 0xe0000938, 0x15a2b: 0xe0000934, - 0x15a2c: 0xe00009aa, 0x15a2d: 0xe00009a6, 0x15a2e: 0xe0000902, 0x15a2f: 0xe00008fe, - 0x15a30: 0xe000090a, 0x15a31: 0xe0000906, 0x15a32: 0xe000091a, 0x15a33: 0xe0000916, - 0x15a34: 0xe0000912, 0x15a35: 0xe000090e, 0x15a36: 0xe00009a2, 0x15a37: 0xe000099e, - 0x15a38: 0xe0000b6e, 0x15a39: 0xe0000b6b, 0x15a3a: 0xe0000b5c, 0x15a3b: 0xe0000b59, - 0x15a3c: 0xe0000b26, 0x15a3d: 0xe0000b23, 0x15a3e: 0xe0000afb, 0x15a3f: 0xe0000af7, - // Block 0x569, offset 0x15a40 - 0x15a40: 0xe0000b03, 0x15a41: 0xe0000aff, 0x15a42: 0xe0000b13, 0x15a43: 0xe0000b0f, - 0x15a44: 0xe0000b0b, 0x15a45: 0xe0000b07, 0x15a46: 0xe0000b75, 0x15a47: 0xe0000b71, - 0x15a48: 0xe0000c66, 0x15a49: 0xe0000c63, 0x15a4a: 0xe0000c78, 0x15a4b: 0xe0000c75, - 0x15a4c: 0xe0000e84, 0x15a4d: 0xe0000e81, 0x15a4e: 0xe0000e44, 0x15a4f: 0xe0000e41, - 0x15a50: 0xe0000dad, 0x15a51: 0xe0000da9, 0x15a52: 0xe0000db5, 0x15a53: 0xe0000db1, - 0x15a54: 0xe0000dc5, 0x15a55: 0xe0000dc1, 0x15a56: 0xe0000dbd, 0x15a57: 0xe0000db9, - 0x15a58: 0xe0000e8b, 0x15a59: 0xe0000e87, 0x15a5a: 0xe0000e5d, 0x15a5b: 0xe0000e59, - 0x15a5c: 0xe0000e65, 0x15a5d: 0xe0000e61, 0x15a5e: 0xe0000e75, 0x15a5f: 0xe0000e71, - 0x15a60: 0xe0000e6d, 0x15a61: 0xe0000e69, 0x15a62: 0xe0000e7d, 0x15a63: 0xe0000e79, - 0x15a64: 0xe000108d, 0x15a65: 0xe000108a, 0x15a66: 0xe000104d, 0x15a67: 0xe000104a, - 0x15a68: 0xe0001066, 0x15a69: 0xe0001062, 0x15a6a: 0xe000106e, 0x15a6b: 0xe000106a, - 0x15a6c: 0xe000107e, 0x15a6d: 0xe000107a, 0x15a6e: 0xe0001076, 0x15a6f: 0xe0001072, - 0x15a70: 0xe0001086, 0x15a71: 0xe0001082, 0x15a72: 0xe000a932, 0x15a73: 0xe000a92f, - 0x15a74: 0xe000a95f, 0x15a75: 0xe000a95c, 0x15a76: 0xe000a959, 0x15a77: 0xe000a956, - 0x15a78: 0xe000a947, 0x15a79: 0xe000a944, 0x15a7a: 0xe0000d0a, 0x15a7b: 0xe0000d07, - 0x15a7c: 0x0030d888, 0x15a7d: 0x4030d820, 0x15a7e: 0x00312088, 0x15a7f: 0x40312020, - // Block 0x56a, offset 0x15a80 - 0x15a80: 0xe0000024, 0x15a81: 0xe0000029, 0x15a82: 0xe000002e, 0x15a83: 0xe0000033, - 0x15a84: 0xe0000038, 0x15a85: 0xe000003d, 0x15a86: 0xe0000042, 0x15a87: 0xe0000047, - 0x15a88: 0xf0001f04, 0x15a89: 0xf0001f04, 0x15a8a: 0xf0001f04, 0x15a8b: 0xf0001f04, - 0x15a8c: 0xf0001f04, 0x15a8d: 0xf0001f04, 0x15a8e: 0xf0001f04, 0x15a8f: 0xf0001f04, - 0x15a90: 0xf0001f04, 0x15a91: 0xf0000404, 0x15a92: 0xf0000404, 0x15a93: 0xf0000404, - 0x15a94: 0xf0000404, 0x15a95: 0xf0000404, 0x15a96: 0xf0000404, 0x15a97: 0xf0000404, - 0x15a98: 0xf0000404, 0x15a99: 0xf0000404, 0x15a9a: 0xf0000404, 0x15a9b: 0xf0000404, - 0x15a9c: 0xf0000404, 0x15a9d: 0xf0000404, 0x15a9e: 0xf0000404, 0x15a9f: 0xf0000404, - 0x15aa0: 0xf0000404, 0x15aa1: 0xf0000404, 0x15aa2: 0xf0000404, 0x15aa3: 0xf0000404, - 0x15aa4: 0xf0000404, 0x15aa5: 0xf0000404, 0x15aa6: 0xf0000404, 0x15aa7: 0xf0000404, - 0x15aa8: 0xf0000404, 0x15aa9: 0xf0000404, 0x15aaa: 0xf0000404, 0x15aab: 0xf0000404, - 0x15aac: 0xf0000404, 0x15aad: 0xf0000404, 0x15aae: 0xf0000404, 0x15aaf: 0xf0000404, - 0x15ab0: 0xf0000404, 0x15ab1: 0xf0000404, 0x15ab2: 0xf0000404, 0x15ab3: 0xf0000404, - 0x15ab4: 0xe0002c04, 0x15ab5: 0xf0000404, 0x15ab6: 0x002bde8c, 0x15ab7: 0x002c0a8c, - 0x15ab8: 0x002c3a8c, 0x15ab9: 0x002c628c, 0x15aba: 0x002c988c, 0x15abb: 0x002d088c, - 0x15abc: 0x002d228c, 0x15abd: 0x002d688c, 0x15abe: 0x002d9a8c, 0x15abf: 0x002dcc8c, - // Block 0x56b, offset 0x15ac0 - 0x15ac0: 0xf0001d1c, 0x15ac1: 0xf0001d1d, 0x15ac2: 0xe00009b7, 0x15ac3: 0xf0001c1d, - 0x15ac4: 0xf0001c1c, 0x15ac5: 0xf0001c1c, 0x15ac6: 0xe0000a66, 0x15ac7: 0xe0000a7a, - 0x15ac8: 0xf0001d1c, 0x15ac9: 0xe000352c, 0x15aca: 0xf0001c1c, 0x15acb: 0xf0001d1d, - 0x15acc: 0xf0001c1c, 0x15acd: 0xf0001d1d, 0x15ace: 0xf0001d1d, 0x15acf: 0xf0001c1c, - 0x15ad0: 0xf0001c1c, 0x15ad1: 0xf0001c1c, 0x15ad2: 0xe0000d0d, 0x15ad3: 0xf0001c1c, - 0x15ad4: 0xf0001c1c, 0x15ad5: 0xe0000d3a, 0x15ad6: 0xe0000d46, 0x15ad7: 0xf0001d1d, - 0x15ad8: 0xe0000eb0, 0x15ad9: 0xe0000eb8, 0x15ada: 0xf0001d1d, 0x15adb: 0xf0001c1c, - 0x15adc: 0xf0001c1d, 0x15add: 0xf0001c1d, 0x15ade: 0xe00010b2, 0x15adf: 0xe00009c8, - 0x15ae0: 0xf0001f04, 0x15ae1: 0xf0001f04, 0x15ae2: 0xf0001f04, 0x15ae3: 0xf0001f04, - 0x15ae4: 0xf0001f04, 0x15ae5: 0xf0001f04, 0x15ae6: 0xf0001f04, 0x15ae7: 0xf0001f04, - 0x15ae8: 0xf0001f04, 0x15ae9: 0xf0000404, 0x15aea: 0xf0000404, 0x15aeb: 0xf0000404, - 0x15aec: 0xf0000404, 0x15aed: 0xf0000404, 0x15aee: 0xf0000404, 0x15aef: 0xf0000404, - 0x15af0: 0xf0000404, 0x15af1: 0xf0000404, 0x15af2: 0xf0000404, 0x15af3: 0xf0000404, - 0x15af4: 0xf0000404, 0x15af5: 0xf0000404, 0x15af6: 0xf0000404, 0x15af7: 0xf0000404, - 0x15af8: 0xf0000404, 0x15af9: 0xf0000404, 0x15afa: 0xf0000404, 0x15afb: 0xf0000404, - 0x15afc: 0xf0000404, 0x15afd: 0xf0000404, 0x15afe: 0xf0000404, 0x15aff: 0xe0000bdf, - // Block 0x56c, offset 0x15b00 - 0x15b00: 0xf0001f04, 0x15b01: 0xf0001f04, 0x15b02: 0xf0001f04, 0x15b03: 0xf0001f04, - 0x15b04: 0xf0001f04, 0x15b05: 0xf0001f04, 0x15b06: 0xf0001f04, 0x15b07: 0xf0001f04, - 0x15b08: 0xf0001f04, 0x15b09: 0xf0001f04, 0x15b0a: 0xf0001f04, - 0x15b10: 0xf0000a04, 0x15b11: 0xf0000a04, 0x15b12: 0xf0000a04, 0x15b13: 0xf0000a04, - 0x15b14: 0xf0000a04, 0x15b15: 0xf0000a04, 0x15b16: 0xf0000a04, 0x15b17: 0xf0000a04, - 0x15b18: 0xf0000a04, 0x15b19: 0xf0000a04, 0x15b1a: 0xf0000a04, 0x15b1b: 0xf0000a04, - 0x15b1c: 0xf0000a04, 0x15b1d: 0xf0000a04, 0x15b1e: 0xf0000a04, 0x15b1f: 0xf0000a04, - 0x15b20: 0xf0000a04, 0x15b21: 0xf0000a04, 0x15b22: 0xf0000a04, 0x15b23: 0xf0000a04, - 0x15b24: 0xf0000a04, 0x15b25: 0xf0000a04, 0x15b26: 0xf0000a04, 0x15b27: 0xf0000a04, - 0x15b28: 0xe0002c08, 0x15b29: 0xf0000a04, 0x15b2a: 0xf0000a04, 0x15b2b: 0x002c3a8c, - 0x15b2c: 0x002f7a8c, 0x15b2d: 0xf0000c0c, 0x15b2e: 0xf0000c0c, - 0x15b30: 0x002bde9d, 0x15b31: 0x002c0a9d, 0x15b32: 0x002c3a9d, 0x15b33: 0x002c629d, - 0x15b34: 0x002c989d, 0x15b35: 0x002d089d, 0x15b36: 0x002d229d, 0x15b37: 0x002d689d, - 0x15b38: 0x002d9a9d, 0x15b39: 0x002dcc9d, 0x15b3a: 0x002dfe9d, 0x15b3b: 0x002e229d, - 0x15b3c: 0x002e829d, 0x15b3d: 0x002e9e9d, 0x15b3e: 0x002ee29d, 0x15b3f: 0x002f2c9d, - // Block 0x56d, offset 0x15b40 - 0x15b40: 0xa0000000, 0x15b41: 0xa0000000, 0x15b42: 0xa0000000, 0x15b43: 0xa0000000, - 0x15b44: 0xa0000000, 0x15b45: 0xa0000000, 0x15b46: 0xa0000000, 0x15b47: 0xa0000000, - 0x15b48: 0xa0000000, 0x15b49: 0x40020020, 0x15b4a: 0x40020220, 0x15b4b: 0x40020420, - 0x15b4c: 0x40020620, 0x15b4d: 0x40020820, 0x15b4e: 0xa0000000, 0x15b4f: 0xa0000000, - 0x15b50: 0xa0000000, 0x15b51: 0xa0000000, 0x15b52: 0xa0000000, 0x15b53: 0xa0000000, - 0x15b54: 0xa0000000, 0x15b55: 0xa0000000, 0x15b56: 0xa0000000, 0x15b57: 0xa0000000, - 0x15b58: 0xa0000000, 0x15b59: 0xa0000000, 0x15b5a: 0xa0000000, 0x15b5b: 0xa0000000, - 0x15b5c: 0xa0000000, 0x15b5d: 0xa0000000, 0x15b5e: 0xa0000000, 0x15b5f: 0xa0000000, - 0x15b60: 0x40021220, 0x15b61: 0x4002ba20, 0x15b62: 0x4003e020, 0x15b63: 0x4004ea20, - 0x15b64: 0x4027de20, 0x15b65: 0x4004ec20, 0x15b66: 0x4004e620, 0x15b67: 0x4003d220, - 0x15b68: 0x4003f420, 0x15b69: 0x4003f620, 0x15b6a: 0x4004d820, 0x15b6b: 0x40093820, - 0x15b6c: 0x40024020, 0x15b6d: 0x40021a20, 0x15b6e: 0x4002e420, 0x15b6f: 0x4004e220, - 0x15b70: 0x4029cc20, 0x15b71: 0x4029ce20, 0x15b72: 0x4029d020, 0x15b73: 0x4029d220, - 0x15b74: 0x4029d420, 0x15b75: 0x4029d620, 0x15b76: 0x4029d820, 0x15b77: 0x4029da20, - 0x15b78: 0x4029dc20, 0x15b79: 0x4029de20, 0x15b7a: 0x40026c20, 0x15b7b: 0x40026220, - 0x15b7c: 0x40094020, 0x15b7d: 0x40094220, 0x15b7e: 0x40094420, 0x15b7f: 0x4002c420, - // Block 0x56e, offset 0x15b80 - 0x15b80: 0x4004d620, 0x15b81: 0x002bde88, 0x15b82: 0x002c0a88, 0x15b83: 0xcab40991, - 0x15b84: 0x002c6288, 0x15b85: 0x002c9888, 0x15b86: 0x002d0888, 0x15b87: 0xcab80911, - 0x15b88: 0x002d6888, 0x15b89: 0x002d9a88, 0x15b8a: 0x002dcc88, 0x15b8b: 0xcabc0911, - 0x15b8c: 0xcac23c93, 0x15b8d: 0x002e8288, 0x15b8e: 0xcac80911, 0x15b8f: 0x002ee288, - 0x15b90: 0x002f2c88, 0x15b91: 0x002f5688, 0x15b92: 0xcacc0911, 0x15b93: 0xcad00991, - 0x15b94: 0x00302c88, 0x15b95: 0x00306c88, 0x15b96: 0x0030be88, 0x15b97: 0x0030e288, - 0x15b98: 0x0030f688, 0x15b99: 0x00310088, 0x15b9a: 0xcad40991, 0x15b9b: 0x4003f820, - 0x15b9c: 0x4004e420, 0x15b9d: 0x4003fa20, 0x15b9e: 0x40062420, 0x15b9f: 0x40021620, - 0x15ba0: 0x40061e20, 0x15ba1: 0x402bde20, 0x15ba2: 0x402c0a20, 0x15ba3: 0xcab20991, - 0x15ba4: 0x402c6220, 0x15ba5: 0x402c9820, 0x15ba6: 0x402d0820, 0x15ba7: 0xcab60911, - 0x15ba8: 0x402d6820, 0x15ba9: 0x402d9a20, 0x15baa: 0x402dcc20, 0x15bab: 0xcaba0911, - 0x15bac: 0xcabe3c93, 0x15bad: 0x402e8220, 0x15bae: 0xcac60911, 0x15baf: 0x402ee220, - 0x15bb0: 0x402f2c20, 0x15bb1: 0x402f5620, 0x15bb2: 0xcaca0911, 0x15bb3: 0xcace0991, - 0x15bb4: 0x40302c20, 0x15bb5: 0x40306c20, 0x15bb6: 0x4030be20, 0x15bb7: 0x4030e220, - 0x15bb8: 0x4030f620, 0x15bb9: 0x40310020, 0x15bba: 0xcad20991, 0x15bbb: 0x4003fc20, - 0x15bbc: 0x40094820, 0x15bbd: 0x4003fe20, 0x15bbe: 0x40094c20, 0x15bbf: 0xa0000000, - // Block 0x56f, offset 0x15bc0 - 0x15bc0: 0xe0000983, 0x15bc1: 0xe0000980, 0x15bc2: 0xe00008fb, 0x15bc3: 0xe00008f8, - 0x15bc4: 0xe000097d, 0x15bc5: 0xe000097a, 0x15bc6: 0xe0000a38, 0x15bc7: 0xe0000a35, - 0x15bc8: 0xe0000a3e, 0x15bc9: 0xe0000a3b, 0x15bca: 0xe0000a4a, 0x15bcb: 0xe0000a47, - 0x15bcc: 0x002c6083, 0x15bcd: 0x402c6020, 0x15bce: 0xe0000a86, 0x15bcf: 0xe0000a83, - 0x15bd0: 0xe0000aaa, 0x15bd1: 0xe0000aa7, 0x15bd2: 0xe0000b46, 0x15bd3: 0xe0000b43, - 0x15bd4: 0xe0000aee, 0x15bd5: 0xe0000aeb, 0x15bd6: 0xe0000b2c, 0x15bd7: 0xe0000b29, - 0x15bd8: 0xe0000b40, 0x15bd9: 0xe0000b3d, 0x15bda: 0xe0000b1a, 0x15bdb: 0xe0000b17, - 0x15bdc: 0xe0000bb8, 0x15bdd: 0xe0000bb5, 0x15bde: 0xe0000bb2, 0x15bdf: 0xe0000baf, - 0x15be0: 0xe0000bc4, 0x15be1: 0xe0000bc1, 0x15be2: 0x002d6683, 0x15be3: 0x402d6620, - 0x15be4: 0xe0000bee, 0x15be5: 0xe0000beb, 0x15be6: 0xe0000c1b, 0x15be7: 0xe0000c18, - 0x15be8: 0xe0000c51, 0x15be9: 0xe0000c4e, 0x15bea: 0xe0000c60, 0x15beb: 0xe0000c5d, - 0x15bec: 0xe0000c31, 0x15bed: 0xe0000c2e, 0x15bee: 0xe0000c5a, 0x15bef: 0xe0000c57, - 0x15bf0: 0xe0000c54, 0x15bf1: 0x402da220, 0x15bf2: 0xf0000a0a, 0x15bf3: 0xf0000404, - 0x15bf4: 0xe0000c8a, 0x15bf5: 0xe0000c87, 0x15bf6: 0x002e2083, 0x15bf7: 0x402e2020, - 0x15bf8: 0x402f7220, 0x15bf9: 0xe0000ccc, 0x15bfa: 0xe0000cc9, 0x15bfb: 0x002e8083, - 0x15bfc: 0x402e8020, 0x15bfd: 0xe0000cd2, 0x15bfe: 0xe0000ccf, 0x15bff: 0xe0000d04, - // Block 0x570, offset 0x15c00 - 0x15c00: 0xe0000cfe, 0x15c01: 0xe0000cf8, 0x15c02: 0xe0000cf5, 0x15c03: 0xe0000d51, - 0x15c04: 0xe0000d4e, 0x15c05: 0x002ee083, 0x15c06: 0x402ee020, 0x15c07: 0xe0000d5d, - 0x15c08: 0xe0000d5a, 0x15c09: 0xf0000404, 0x15c0a: 0x002eda88, 0x15c0b: 0x402eda20, - 0x15c0c: 0xe0000e2e, 0x15c0d: 0xe0000e2b, 0x15c0e: 0xe0000da0, 0x15c0f: 0xe0000d9d, - 0x15c10: 0xe0000de0, 0x15c11: 0xe0000ddd, 0x15c12: 0xe0000e93, 0x15c13: 0xe0000e8f, - 0x15c14: 0xe0000eca, 0x15c15: 0xe0000ec7, 0x15c16: 0x002fe483, 0x15c17: 0x402fe420, - 0x15c18: 0xe0000ed0, 0x15c19: 0xe0000ecd, 0x15c1a: 0xe0000f1f, 0x15c1b: 0xe0000f1c, - 0x15c1c: 0xe0000f2d, 0x15c1d: 0xe0000f2a, 0x15c1e: 0xe0000f47, 0x15c1f: 0xe0000f44, - 0x15c20: 0x00302a83, 0x15c21: 0x40302a20, 0x15c22: 0xe0000f99, 0x15c23: 0xe0000f96, - 0x15c24: 0xe0000f8a, 0x15c25: 0xe0000f87, 0x15c26: 0x00303688, 0x15c27: 0x40303620, - 0x15c28: 0xe000102b, 0x15c29: 0xe0001028, 0x15c2a: 0xe000103f, 0x15c2b: 0xe000103c, - 0x15c2c: 0xe0000fe7, 0x15c2d: 0xe0000fe4, 0x15c2e: 0xe0000ff9, 0x15c2f: 0xe0000ff6, - 0x15c30: 0xe0001025, 0x15c31: 0xe0001022, 0x15c32: 0xe0001039, 0x15c33: 0xe0001036, - 0x15c34: 0xe00010d8, 0x15c35: 0xe00010d5, 0x15c36: 0xe000110e, 0x15c37: 0xe000110b, - 0x15c38: 0xe0001117, 0x15c39: 0xe000113b, 0x15c3a: 0xe0001138, 0x15c3b: 0xe000114d, - 0x15c3c: 0xe000114a, 0x15c3d: 0x00316283, 0x15c3e: 0x40316220, 0x15c3f: 0xe0000f64, - // Block 0x571, offset 0x15c40 - 0x15c40: 0xe0000d24, 0x15c41: 0xe0000d21, 0x15c42: 0xe0000d2a, 0x15c43: 0xe0000d27, - 0x15c44: 0xe0000d69, 0x15c45: 0xe0000d66, 0x15c46: 0xe0000d7b, 0x15c47: 0xe0000d78, - 0x15c48: 0xe0000d87, 0x15c49: 0xe0000d84, 0x15c4a: 0xe0000d81, 0x15c4b: 0xe0000d7e, - 0x15c4c: 0xe0000ded, 0x15c4d: 0xe0000de9, 0x15c4e: 0xe0000df5, 0x15c4f: 0xe0000df1, - 0x15c50: 0xe0000e3d, 0x15c51: 0xe0000e39, 0x15c52: 0xe0000e35, 0x15c53: 0xe0000e31, - 0x15c54: 0xe0000ea7, 0x15c55: 0xe0000ea4, 0x15c56: 0xe0000ead, 0x15c57: 0xe0000eaa, - 0x15c58: 0xe0000ed6, 0x15c59: 0xe0000ed3, 0x15c5a: 0xe0000ef4, 0x15c5b: 0xe0000ef1, - 0x15c5c: 0xe0000efb, 0x15c5d: 0xe0000ef7, 0x15c5e: 0xe0000f02, 0x15c5f: 0xe0000eff, - 0x15c60: 0xe0000f41, 0x15c61: 0xe0000f3e, 0x15c62: 0xe0000f53, 0x15c63: 0xe0000f50, - 0x15c64: 0xe0000f26, 0x15c65: 0xe0000f22, 0x15c66: 0xe000a96b, 0x15c67: 0xe000a968, - 0x15c68: 0xe0000f5a, 0x15c69: 0xe0000f56, 0x15c6a: 0xe0000f93, 0x15c6b: 0xe0000f90, - 0x15c6c: 0xe0000f9f, 0x15c6d: 0xe0000f9c, 0x15c6e: 0xe0000fb1, 0x15c6f: 0xe0000fae, - 0x15c70: 0xe0000fab, 0x15c71: 0xe0000fa8, 0x15c72: 0xe0001093, 0x15c73: 0xe0001090, - 0x15c74: 0xe000109f, 0x15c75: 0xe000109c, 0x15c76: 0xe0001099, 0x15c77: 0xe0001096, - 0x15c78: 0xe0001032, 0x15c79: 0xe000102e, 0x15c7a: 0xe0001046, 0x15c7b: 0xe0001042, - 0x15c7c: 0xe00010a9, 0x15c7d: 0xe00010a6, 0x15c7e: 0xe00010af, 0x15c7f: 0xe00010ac, - // Block 0x572, offset 0x15c80 - 0x15c82: 0xe000a983, 0x15c83: 0xa000f402, - 0x15c85: 0x40440220, 0x15c86: 0x40440420, 0x15c87: 0x40440620, - 0x15c88: 0x40440820, 0x15c89: 0x40440a20, 0x15c8a: 0x40440c20, 0x15c8b: 0x40440e20, - 0x15c8c: 0x40441220, 0x15c8e: 0x40441620, 0x15c8f: 0x40441820, - 0x15c90: 0x40441a20, 0x15c92: 0x40441c20, 0x15c93: 0x40441e20, - 0x15c94: 0x40442020, 0x15c95: 0xcad63cf1, 0x15c96: 0x40442420, 0x15c97: 0x40442620, - 0x15c98: 0x40442820, 0x15c99: 0x40442a20, 0x15c9a: 0x40442c20, 0x15c9b: 0x40442e20, - 0x15c9c: 0x40443020, 0x15c9d: 0x40443220, 0x15c9e: 0x40443420, 0x15c9f: 0x40443620, - 0x15ca0: 0x40443820, 0x15ca1: 0x40443a20, 0x15ca2: 0x40443c20, 0x15ca3: 0xcad83d51, - 0x15ca4: 0x40444020, 0x15ca5: 0x40444220, 0x15ca6: 0x40444420, 0x15ca7: 0x40444620, - 0x15ca8: 0xcadc3cf1, 0x15ca9: 0x40444a20, 0x15caa: 0x40444c20, 0x15cab: 0x40444e20, - 0x15cac: 0x40445020, 0x15cad: 0x40445220, 0x15cae: 0x40445420, 0x15caf: 0x40445620, - 0x15cb0: 0xcade3cf1, 0x15cb1: 0x40446a20, 0x15cb2: 0xcae03cf1, 0x15cb3: 0xcae23cf1, - 0x15cb4: 0x40446820, 0x15cb5: 0x40445c20, 0x15cb6: 0x40445e20, 0x15cb7: 0x40446020, - 0x15cb8: 0x40446220, 0x15cb9: 0x40446420, 0x15cba: 0x40446c20, - 0x15cbd: 0xa000f502, 0x15cbe: 0x40447020, 0x15cbf: 0x40447220, - // Block 0x573, offset 0x15cc0 - 0x15cc0: 0x40447420, 0x15cc1: 0x40447620, 0x15cc2: 0x40447820, 0x15cc3: 0x40447a20, - 0x15cc4: 0x40447c20, 0x15cc6: 0xcae403b1, 0x15cc7: 0xc0760401, - 0x15cc8: 0x40448620, 0x15cca: 0x40448820, 0x15ccb: 0x40448a20, - 0x15ccc: 0x00448c83, 0x15ccd: 0x82092248, 0x15cce: 0xe000186c, - 0x15cd7: 0x40448c20, - 0x15ce0: 0x40441020, 0x15ce1: 0x40441420, 0x15ce2: 0x40447e20, 0x15ce3: 0x40448020, - 0x15ce6: 0xe0000185, 0x15ce7: 0xe0000216, - 0x15ce8: 0xe0000331, 0x15ce9: 0xe000040b, 0x15cea: 0xe00004e0, 0x15ceb: 0xe00005aa, - 0x15cec: 0xe0000675, 0x15ced: 0xe000071d, 0x15cee: 0xe00007c9, 0x15cef: 0xe000086e, - 0x15cf0: 0x40285a20, 0x15cf1: 0x40285c20, 0x15cf2: 0x40285e20, 0x15cf3: 0x40286020, - 0x15cf4: 0x40286220, 0x15cf5: 0x40286420, - 0x15cf9: 0x40074e20, 0x15cfa: 0xe000a977, 0x15cfb: 0xcada3dc1, - 0x15cfc: 0xe000a989, 0x15cfd: 0xe000a98f, 0x15cfe: 0xe000a995, 0x15cff: 0xe000a971, - // Block 0x574, offset 0x15d00 - 0x15d00: 0xa000f202, 0x15d01: 0x403fba21, 0x15d02: 0x403fba20, 0x15d03: 0x403fbc20, - 0x15d04: 0x403fbc20, 0x15d05: 0x403fbe20, 0x15d06: 0x403fc020, 0x15d07: 0x403fcc20, - 0x15d08: 0x403fce20, 0x15d09: 0x403fd020, 0x15d0a: 0x403fd220, 0x15d0b: 0x403fd420, - 0x15d0c: 0x403fd820, 0x15d0d: 0x403fdc20, 0x15d0e: 0x403fde20, 0x15d0f: 0x403fe020, - 0x15d10: 0x403fe220, 0x15d11: 0x403fe420, 0x15d12: 0x403fe620, 0x15d13: 0x403fe820, - 0x15d14: 0x403fea20, 0x15d15: 0xca983ba1, 0x15d16: 0x403fee20, 0x15d17: 0x403ff020, - 0x15d18: 0x403ff420, 0x15d19: 0x403ff620, 0x15d1a: 0x403ff820, 0x15d1b: 0x403ffa20, - 0x15d1c: 0xcae73df1, 0x15d1d: 0x40400220, 0x15d1e: 0x40400420, 0x15d1f: 0x40400620, - 0x15d20: 0x40400820, 0x15d21: 0x40400a20, 0x15d22: 0x40400e20, 0x15d23: 0x40401020, - 0x15d24: 0x40401220, 0x15d25: 0x40401420, 0x15d26: 0x40401620, 0x15d27: 0x40401820, - 0x15d28: 0x40401a20, 0x15d29: 0xe0001830, 0x15d2a: 0x40401c20, 0x15d2b: 0x40401e20, - 0x15d2c: 0x40402020, 0x15d2d: 0x40402420, 0x15d2e: 0x40402620, 0x15d2f: 0x40402820, - 0x15d30: 0x40402c20, 0x15d31: 0xe0001839, 0x15d32: 0x40402e20, 0x15d33: 0x40403c20, - 0x15d34: 0xe000a926, 0x15d35: 0x40403220, 0x15d36: 0x40403420, 0x15d37: 0x40403620, - 0x15d38: 0x40403820, 0x15d39: 0x40403a20, 0x15d3a: 0x40404c20, 0x15d3b: 0x40404e20, - 0x15d3c: 0xa070f102, 0x15d3d: 0x40403c20, 0x15d3e: 0x40404a20, 0x15d3f: 0x40405620, - // Block 0x575, offset 0x15d40 - 0x15d40: 0xa0000000, 0x15d41: 0xa0000000, 0x15d42: 0xa0000000, 0x15d43: 0xa0000000, - 0x15d44: 0xa0000000, 0x15d45: 0xa0000000, 0x15d46: 0xa0000000, 0x15d47: 0xa0000000, - 0x15d48: 0xa0000000, 0x15d49: 0x40020020, 0x15d4a: 0x40020220, 0x15d4b: 0x40020420, - 0x15d4c: 0x40020620, 0x15d4d: 0x40020820, 0x15d4e: 0xa0000000, 0x15d4f: 0xa0000000, - 0x15d50: 0xa0000000, 0x15d51: 0xa0000000, 0x15d52: 0xa0000000, 0x15d53: 0xa0000000, - 0x15d54: 0xa0000000, 0x15d55: 0xa0000000, 0x15d56: 0xa0000000, 0x15d57: 0xa0000000, - 0x15d58: 0xa0000000, 0x15d59: 0xa0000000, 0x15d5a: 0xa0000000, 0x15d5b: 0xa0000000, - 0x15d5c: 0xa0000000, 0x15d5d: 0xa0000000, 0x15d5e: 0xa0000000, 0x15d5f: 0xa0000000, - 0x15d60: 0x40021220, 0x15d61: 0x4002ba20, 0x15d62: 0x4003e020, 0x15d63: 0x4004ea20, - 0x15d64: 0x4027de20, 0x15d65: 0x4004ec20, 0x15d66: 0x4004e620, 0x15d67: 0x4003d220, - 0x15d68: 0x4003f420, 0x15d69: 0x4003f620, 0x15d6a: 0x4004d820, 0x15d6b: 0x40093820, - 0x15d6c: 0x40024020, 0x15d6d: 0x40021a20, 0x15d6e: 0x4002e420, 0x15d6f: 0x4004e220, - 0x15d70: 0x4029cc20, 0x15d71: 0x4029ce20, 0x15d72: 0x4029d020, 0x15d73: 0x4029d220, - 0x15d74: 0x4029d420, 0x15d75: 0x4029d620, 0x15d76: 0x4029d820, 0x15d77: 0x4029da20, - 0x15d78: 0x4029dc20, 0x15d79: 0x4029de20, 0x15d7a: 0x40026c20, 0x15d7b: 0x40026220, - 0x15d7c: 0x40094020, 0x15d7d: 0x40094220, 0x15d7e: 0x40094420, 0x15d7f: 0x4002c420, - // Block 0x576, offset 0x15d80 - 0x15d80: 0x4004d620, 0x15d81: 0x002bde88, 0x15d82: 0x002c0a88, 0x15d83: 0xcae90931, - 0x15d84: 0x002c6288, 0x15d85: 0x002c9888, 0x15d86: 0x002d0888, 0x15d87: 0xcaed3e52, - 0x15d88: 0x002d6888, 0x15d89: 0x002d9a88, 0x15d8a: 0x002dcc88, 0x15d8b: 0x002dfe88, - 0x15d8c: 0xc0030002, 0x15d8d: 0x002e8288, 0x15d8e: 0x002e9e88, 0x15d8f: 0x002ee288, - 0x15d90: 0x002f2c88, 0x15d91: 0x002f5688, 0x15d92: 0x002f7a88, 0x15d93: 0x002fe688, - 0x15d94: 0x00302c88, 0x15d95: 0x00306c88, 0x15d96: 0x0030be88, 0x15d97: 0x0030e288, - 0x15d98: 0x0030f688, 0x15d99: 0x00310088, 0x15d9a: 0xcaf50931, 0x15d9b: 0x4003f820, - 0x15d9c: 0x4004e420, 0x15d9d: 0x4003fa20, 0x15d9e: 0x40062420, 0x15d9f: 0x40021620, - 0x15da0: 0x40061e20, 0x15da1: 0x402bde20, 0x15da2: 0x402c0a20, 0x15da3: 0xcaeb0931, - 0x15da4: 0x402c6220, 0x15da5: 0x402c9820, 0x15da6: 0x402d0820, 0x15da7: 0xcaf13e52, - 0x15da8: 0x402d6820, 0x15da9: 0x402d9a20, 0x15daa: 0x402dcc20, 0x15dab: 0x402dfe20, - 0x15dac: 0xc0000002, 0x15dad: 0x402e8220, 0x15dae: 0x402e9e20, 0x15daf: 0x402ee220, - 0x15db0: 0x402f2c20, 0x15db1: 0x402f5620, 0x15db2: 0x402f7a20, 0x15db3: 0x402fe620, - 0x15db4: 0x40302c20, 0x15db5: 0x40306c20, 0x15db6: 0x4030be20, 0x15db7: 0x4030e220, - 0x15db8: 0x4030f620, 0x15db9: 0x40310020, 0x15dba: 0xcaf70931, 0x15dbb: 0x4003fc20, - 0x15dbc: 0x40094820, 0x15dbd: 0x4003fe20, 0x15dbe: 0x40094c20, 0x15dbf: 0xa0000000, - // Block 0x577, offset 0x15dc0 - 0x15dc0: 0xe0000983, 0x15dc1: 0xe0000980, 0x15dc2: 0xe00008fb, 0x15dc3: 0xe00008f8, - 0x15dc4: 0xe000097d, 0x15dc5: 0xe000097a, 0x15dc6: 0xe0000a38, 0x15dc7: 0xe0000a35, - 0x15dc8: 0xe0000a3e, 0x15dc9: 0xe0000a3b, 0x15dca: 0x402c3820, 0x15dcb: 0x002c3883, - 0x15dcc: 0xe0000a44, 0x15dcd: 0xe0000a41, 0x15dce: 0xe0000a86, 0x15dcf: 0xe0000a83, - 0x15dd0: 0xe0000aaa, 0x15dd1: 0xe0000aa7, 0x15dd2: 0xe0000b46, 0x15dd3: 0xe0000b43, - 0x15dd4: 0xe0000aee, 0x15dd5: 0xe0000aeb, 0x15dd6: 0xe0000b2c, 0x15dd7: 0xe0000b29, - 0x15dd8: 0xe0000b40, 0x15dd9: 0xe0000b3d, 0x15dda: 0xe0000b1a, 0x15ddb: 0xe0000b17, - 0x15ddc: 0xe0000bb8, 0x15ddd: 0xe0000bb5, 0x15dde: 0xe0000bb2, 0x15ddf: 0xe0000baf, - 0x15de0: 0x402d2020, 0x15de1: 0x002d2083, 0x15de2: 0xe0000bca, 0x15de3: 0xe0000bc7, - 0x15de4: 0xe0000bee, 0x15de5: 0xe0000beb, 0x15de6: 0x402d9820, 0x15de7: 0x002d9883, - 0x15de8: 0xe0000c51, 0x15de9: 0xe0000c4e, 0x15dea: 0xe0000c60, 0x15deb: 0xe0000c5d, - 0x15dec: 0xe0000c31, 0x15ded: 0xe0000c2e, 0x15dee: 0xe0000c5a, 0x15def: 0xe0000c57, - 0x15df0: 0xe0000c54, 0x15df1: 0x402da220, 0x15df2: 0xf0000a0a, 0x15df3: 0xf0000404, - 0x15df4: 0xe0000c8a, 0x15df5: 0xe0000c87, 0x15df6: 0xe0000c9f, 0x15df7: 0xe0000c9c, - 0x15df8: 0x402f7220, 0x15df9: 0xe0000ccc, 0x15dfa: 0xe0000cc9, 0x15dfb: 0xe0000cd8, - 0x15dfc: 0xe0000cd5, 0x15dfd: 0xe0000cd2, 0x15dfe: 0xe0000ccf, 0x15dff: 0xe0000d04, - // Block 0x578, offset 0x15e00 - 0x15e00: 0xe0000cfe, 0x15e01: 0xe0000cf8, 0x15e02: 0xe0000cf5, 0x15e03: 0xe0000d51, - 0x15e04: 0xe0000d4e, 0x15e05: 0xe0000d6f, 0x15e06: 0xe0000d6c, 0x15e07: 0xe0000d5d, - 0x15e08: 0xe0000d5a, 0x15e09: 0xf0000404, 0x15e0a: 0x002eda88, 0x15e0b: 0x402eda20, - 0x15e0c: 0xe0000e2e, 0x15e0d: 0xe0000e2b, 0x15e0e: 0xe0000da0, 0x15e0f: 0xe0000d9d, - 0x15e10: 0xe0000de0, 0x15e11: 0xe0000ddd, 0x15e12: 0xe0000e93, 0x15e13: 0xe0000e8f, - 0x15e14: 0xe0000eca, 0x15e15: 0xe0000ec7, 0x15e16: 0xe0000edc, 0x15e17: 0xe0000ed9, - 0x15e18: 0xe0000ed0, 0x15e19: 0xe0000ecd, 0x15e1a: 0xe0000f1f, 0x15e1b: 0xe0000f1c, - 0x15e1c: 0xe0000f2d, 0x15e1d: 0xe0000f2a, 0x15e1e: 0xe0000f47, 0x15e1f: 0xe0000f44, - 0x15e20: 0xe0000f33, 0x15e21: 0xe0000f30, 0x15e22: 0xe0000f99, 0x15e23: 0xe0000f96, - 0x15e24: 0xe0000f8a, 0x15e25: 0xe0000f87, 0x15e26: 0x00303688, 0x15e27: 0x40303620, - 0x15e28: 0xe000102b, 0x15e29: 0xe0001028, 0x15e2a: 0xe000103f, 0x15e2b: 0xe000103c, - 0x15e2c: 0xe0000fe7, 0x15e2d: 0xe0000fe4, 0x15e2e: 0xe0000ff9, 0x15e2f: 0xe0000ff6, - 0x15e30: 0xe0001025, 0x15e31: 0xe0001022, 0x15e32: 0xe0001039, 0x15e33: 0xe0001036, - 0x15e34: 0xe00010d8, 0x15e35: 0xe00010d5, 0x15e36: 0xe000110e, 0x15e37: 0xe000110b, - 0x15e38: 0xe0001117, 0x15e39: 0xe000113b, 0x15e3a: 0xe0001138, 0x15e3b: 0x40312820, - 0x15e3c: 0x00312883, 0x15e3d: 0xe0001147, 0x15e3e: 0xe0001144, 0x15e3f: 0xe0000f64, - // Block 0x579, offset 0x15e40 - 0x15e40: 0xe00009bc, 0x15e41: 0xe00009c0, 0x15e42: 0x002c3a8b, 0x15e43: 0xf0000a04, - 0x15e44: 0x40081c20, 0x15e45: 0xe0000a5e, 0x15e46: 0xe0000a62, 0x15e47: 0x002cc28a, - 0x15e48: 0x40081e20, 0x15e49: 0xf0000a04, 0x15e4a: 0x002d2285, 0x15e4b: 0x002d688b, - 0x15e4c: 0x002d688b, 0x15e4d: 0x002d688b, 0x15e4e: 0x002d6885, 0x15e4f: 0xe000a998, - 0x15e50: 0x002d9a8b, 0x15e51: 0x002d9a8b, 0x15e52: 0x002e228b, 0x15e53: 0x002e2285, - 0x15e54: 0x40082020, 0x15e55: 0x002e9e8b, 0x15e56: 0xf000040a, 0x15e57: 0x40082220, - 0x15e58: 0x40082420, 0x15e59: 0x002f2c8b, 0x15e5a: 0x002f568b, 0x15e5b: 0x002f7a8b, - 0x15e5c: 0x002f7a8b, 0x15e5d: 0x002f7a8b, 0x15e5e: 0x40082620, 0x15e5f: 0x40082820, - 0x15e60: 0xf0001414, 0x15e61: 0xe0000fbd, 0x15e62: 0xf0001414, 0x15e63: 0x40082a20, - 0x15e64: 0x00312a8b, 0x15e65: 0x40082c20, 0x15e66: 0x0032a288, 0x15e67: 0x40082e20, - 0x15e68: 0x00312a8b, 0x15e69: 0x40083020, 0x15e6a: 0x002dfe88, 0x15e6b: 0xe000094d, - 0x15e6c: 0x002c0a8b, 0x15e6d: 0x002c3a8b, 0x15e6e: 0x40083220, 0x15e6f: 0x002c9885, - 0x15e70: 0x002c988b, 0x15e71: 0x002d088b, 0x15e72: 0x002d1e88, 0x15e73: 0x002e828b, - 0x15e74: 0x002ee285, 0x15e75: 0x00389084, 0x15e76: 0x00389284, 0x15e77: 0x00389484, - 0x15e78: 0x00389684, 0x15e79: 0x002d9a85, 0x15e7a: 0x40083420, 0x15e7b: 0xe0000b95, - 0x15e7c: 0x00327e85, 0x15e7d: 0x00325685, 0x15e7e: 0x0032568b, 0x15e7f: 0x00327e8b, - // Block 0x57a, offset 0x15e80 - 0x15eb8: 0xe000a99b, 0x15eb9: 0xe0000e97, 0x15eba: 0x4030a820, 0x15ebb: 0x402d2020, - 0x15ebc: 0x402f4a20, 0x15ebd: 0x402e9820, 0x15ebe: 0x402db220, 0x15ebf: 0x402e9a20, - // Block 0x57b, offset 0x15ec0 - 0x15ec0: 0xccd58051, 0x15ec1: 0xcda08051, 0x15ec2: 0xcda38051, 0x15ec3: 0xcda88051, - 0x15ec4: 0xcdab9311, 0x15ec5: 0xcdae8051, 0x15ec6: 0xcdb18051, 0x15ec7: 0xcdb48051, - 0x15ec8: 0xcdb79371, 0x15ec9: 0xcdb98051, 0x15eca: 0xcdbc8051, 0x15ecb: 0xcdbf8051, - 0x15ecc: 0xcdc28051, 0x15ecd: 0xcdc58051, 0x15ece: 0xcdc88051, 0x15ecf: 0xcdcb8051, - 0x15ed0: 0xcdce8051, 0x15ed1: 0xcaf93e91, 0x15ed2: 0xcdd18051, 0x15ed3: 0xcdd48051, - 0x15ed4: 0xcafd3f91, 0x15ed5: 0xcdd78051, 0x15ed6: 0xcdda8051, 0x15ed7: 0xcddd8051, - 0x15ed8: 0xcde08051, 0x15ed9: 0xcde38051, 0x15eda: 0xcde68051, 0x15edb: 0xcde98051, - 0x15edc: 0xcb014061, 0x15edd: 0xcdec9371, 0x15ede: 0xcb084261, 0x15edf: 0xcdee8051, - 0x15ee0: 0xcdf19371, 0x15ee1: 0xcdf39371, 0x15ee2: 0x404ec420, 0x15ee3: 0xe000a9d7, - 0x15ee4: 0xe000a9dd, 0x15ee5: 0xcb0c4301, 0x15ee6: 0xe000a9e7, 0x15ee7: 0xe000a9ea, - 0x15ee8: 0xe000a9ed, 0x15ee9: 0xcb0f4371, 0x15eea: 0xe000acc4, 0x15eeb: 0xcd198081, - 0x15eec: 0xccd88081, 0x15eed: 0xcc4e6de1, 0x15eee: 0x404eea20, 0x15eef: 0xcd5a8951, - 0x15ef0: 0x404ef420, 0x15ef1: 0xcb8852f1, 0x15ef2: 0x404f0620, 0x15ef3: 0x404eec20, - 0x15ef4: 0x404f0a20, 0x15ef5: 0x404f0220, 0x15ef6: 0x404f0c20, 0x15ef7: 0xcda692e1, - 0x15ef8: 0x404f3020, 0x15ef9: 0x8209278a, 0x15efa: 0x8209278b, 0x15efb: 0xcdf593a1, - 0x15efc: 0xcdf993a1, 0x15efd: 0xcdfd9411, 0x15efe: 0x40510e20, 0x15eff: 0xe000a9d3, - // Block 0x57c, offset 0x15f00 - 0x15f00: 0xe00001ac, 0x15f01: 0xe0000240, 0x15f02: 0xe0000358, 0x15f03: 0xe0000432, - 0x15f04: 0xe0000507, 0x15f05: 0xe00005d1, 0x15f06: 0xe000069c, 0x15f07: 0xe0000744, - 0x15f08: 0xe00007f0, 0x15f09: 0xe0000895, 0x15f0a: 0x40032220, 0x15f0b: 0x40032420, - 0x15f0c: 0xe000a9ab, 0x15f0d: 0xe000a9b2, 0x15f0e: 0xcb0641d1, 0x15f0f: 0xe000a9da, - 0x15f10: 0x404ea020, 0x15f11: 0x404ea220, 0x15f12: 0x404ece20, 0x15f13: 0x404ed020, - 0x15f14: 0x404ed220, 0x15f15: 0x404ed420, 0x15f16: 0x404ef620, 0x15f17: 0x404ef820, - 0x15f18: 0x404efa20, 0x15f19: 0x404efc20, 0x15f1a: 0x404e2620, 0x15f1b: 0x404e3c20, - 0x15f1c: 0x404eb820, 0x15f1d: 0x404eba20, 0x15f1e: 0x40510020, 0x15f1f: 0x40510220, - 0x15f20: 0x40510820, 0x15f21: 0x404e4020, 0x15f22: 0x404f0c20, 0x15f23: 0x404f1820, - 0x15f24: 0x404f1a20, 0x15f25: 0x404ea420, 0x15f26: 0x404ec020, 0x15f27: 0x404f0e20, - 0x15f28: 0x404f1020, 0x15f29: 0x404f1c20, 0x15f2a: 0x404f1e20, 0x15f2b: 0x404f2020, - 0x15f2c: 0x404f2220, 0x15f2d: 0x404f2420, 0x15f2e: 0x404e5c20, 0x15f2f: 0x404ebc20, - 0x15f30: 0x404ebe20, 0x15f31: 0x404ee820, 0x15f32: 0x404ee220, 0x15f33: 0x404ef020, - 0x15f34: 0x404ef220, 0x15f35: 0x404e1620, 0x15f36: 0x404e1a20, 0x15f37: 0x404e1e20, - 0x15f38: 0x404e2a20, 0x15f39: 0x404e3620, 0x15f3a: 0x404e4420, 0x15f3b: 0x404e6420, - 0x15f3c: 0x404e6c20, 0x15f3d: 0x404e7620, 0x15f3e: 0x404e7820, 0x15f3f: 0x404e8020, - // Block 0x57d, offset 0x15f40 - 0x15f40: 0x404e9e20, 0x15f41: 0x404eac20, 0x15f42: 0x40510c20, 0x15f43: 0x404ee020, - 0x15f44: 0x404f0020, 0x15f45: 0x404f0420, 0x15f46: 0x404f1220, 0x15f47: 0x404f2620, - 0x15f48: 0x404f2a20, 0x15f49: 0x404f2e20, 0x15f4a: 0x404f3020, 0x15f4b: 0x404f2820, - 0x15f4c: 0x404f2c20, 0x15f4d: 0xadc11302, 0x15f4e: 0x404e7c20, 0x15f4f: 0x404f3220, - 0x15f50: 0xe00001af, 0x15f51: 0xe0000243, 0x15f52: 0xe000035b, 0x15f53: 0xe0000435, - 0x15f54: 0xe000050a, 0x15f55: 0xe00005d4, 0x15f56: 0xe000069f, 0x15f57: 0xe0000747, - 0x15f58: 0xe00007f3, 0x15f59: 0xe0000898, 0x15f5a: 0x404f3420, 0x15f5b: 0x404f3620, - 0x15f5c: 0x404ee420, 0x15f5d: 0x404f0820, 0x15f5e: 0x4007a820, 0x15f5f: 0x4007aa20, - 0x15f60: 0x00379888, 0x15f61: 0x00379c88, 0x15f62: 0x0037a088, 0x15f63: 0x0037a488, - 0x15f64: 0x0037a888, 0x15f65: 0x0037ac88, 0x15f66: 0x0037b088, 0x15f67: 0x0037b888, - 0x15f68: 0x0037bc88, 0x15f69: 0x0037c088, 0x15f6a: 0x0037c488, 0x15f6b: 0x0037c888, - 0x15f6c: 0x0037cc88, 0x15f6d: 0x0037d488, 0x15f6e: 0x0037d888, 0x15f6f: 0x0037dc88, - 0x15f70: 0x0037e088, 0x15f71: 0x0037e488, 0x15f72: 0x0037e888, 0x15f73: 0x0037f088, - 0x15f74: 0x0037f488, 0x15f75: 0x0037f888, 0x15f76: 0x0037fc88, 0x15f77: 0x00380088, - 0x15f78: 0x00380488, 0x15f79: 0x00380888, 0x15f7a: 0x00380c88, 0x15f7b: 0x00381088, - 0x15f7c: 0x00381488, 0x15f7d: 0x00381888, 0x15f7e: 0x00381c88, 0x15f7f: 0x00382488, - // Block 0x57e, offset 0x15f80 - 0x15f80: 0xa0000000, 0x15f81: 0xa0000000, 0x15f82: 0xa0000000, 0x15f83: 0xa0000000, - 0x15f84: 0xa0000000, 0x15f85: 0xa0000000, 0x15f86: 0xa0000000, 0x15f87: 0xa0000000, - 0x15f88: 0xa0000000, 0x15f89: 0x40020020, 0x15f8a: 0x40020220, 0x15f8b: 0x40020420, - 0x15f8c: 0x40020620, 0x15f8d: 0x40020820, 0x15f8e: 0xa0000000, 0x15f8f: 0xa0000000, - 0x15f90: 0xa0000000, 0x15f91: 0xa0000000, 0x15f92: 0xa0000000, 0x15f93: 0xa0000000, - 0x15f94: 0xa0000000, 0x15f95: 0xa0000000, 0x15f96: 0xa0000000, 0x15f97: 0xa0000000, - 0x15f98: 0xa0000000, 0x15f99: 0xa0000000, 0x15f9a: 0xa0000000, 0x15f9b: 0xa0000000, - 0x15f9c: 0xa0000000, 0x15f9d: 0xa0000000, 0x15f9e: 0xa0000000, 0x15f9f: 0xa0000000, - 0x15fa0: 0x40021220, 0x15fa1: 0x4002ba20, 0x15fa2: 0x4003e020, 0x15fa3: 0x4004ea20, - 0x15fa4: 0x4027de20, 0x15fa5: 0x4004ec20, 0x15fa6: 0x4004e620, 0x15fa7: 0x4003d220, - 0x15fa8: 0x4003f420, 0x15fa9: 0x4003f620, 0x15faa: 0x4004d820, 0x15fab: 0x40093820, - 0x15fac: 0x40024020, 0x15fad: 0x40021a20, 0x15fae: 0x4002e420, 0x15faf: 0x4004e220, - 0x15fb0: 0x4029cc20, 0x15fb1: 0x4029ce20, 0x15fb2: 0x4029d020, 0x15fb3: 0x4029d220, - 0x15fb4: 0x4029d420, 0x15fb5: 0x4029d620, 0x15fb6: 0x4029d820, 0x15fb7: 0x4029da20, - 0x15fb8: 0x4029dc20, 0x15fb9: 0x4029de20, 0x15fba: 0x40026c20, 0x15fbb: 0x40026220, - 0x15fbc: 0x40094020, 0x15fbd: 0x40094220, 0x15fbe: 0x40094420, 0x15fbf: 0x4002c420, - // Block 0x57f, offset 0x15fc0 - 0x15fc0: 0x4004d620, 0x15fc1: 0xce030b93, 0x15fc2: 0x002c0a88, 0x15fc3: 0x002c3a88, - 0x15fc4: 0x002c6288, 0x15fc5: 0xc39e0be1, 0x15fc6: 0x002d0888, 0x15fc7: 0x002d2288, - 0x15fc8: 0x002d6888, 0x15fc9: 0x002d9a88, 0x15fca: 0x002dcc88, 0x15fcb: 0x002dfe88, - 0x15fcc: 0xc0030002, 0x15fcd: 0x002e8288, 0x15fce: 0x002e9e88, 0x15fcf: 0xc3a30b21, - 0x15fd0: 0x002f2c88, 0x15fd1: 0x002f5688, 0x15fd2: 0x002f7a88, 0x15fd3: 0x002fe688, - 0x15fd4: 0x00302c88, 0x15fd5: 0xc3900b21, 0x15fd6: 0x0030be88, 0x15fd7: 0x0030e288, - 0x15fd8: 0x0030f688, 0x15fd9: 0x00310088, 0x15fda: 0x00312a88, 0x15fdb: 0x4003f820, - 0x15fdc: 0x4004e420, 0x15fdd: 0x4003fa20, 0x15fde: 0x40062420, 0x15fdf: 0x40021620, - 0x15fe0: 0x40061e20, 0x15fe1: 0xcdff0b52, 0x15fe2: 0x402c0a20, 0x15fe3: 0x402c3a20, - 0x15fe4: 0x402c6220, 0x15fe5: 0xc39c0be1, 0x15fe6: 0x402d0820, 0x15fe7: 0x402d2220, - 0x15fe8: 0x402d6820, 0x15fe9: 0x402d9a20, 0x15fea: 0x402dcc20, 0x15feb: 0x402dfe20, - 0x15fec: 0xc0000002, 0x15fed: 0x402e8220, 0x15fee: 0x402e9e20, 0x15fef: 0xc3a00b21, - 0x15ff0: 0x402f2c20, 0x15ff1: 0x402f5620, 0x15ff2: 0x402f7a20, 0x15ff3: 0x402fe620, - 0x15ff4: 0x40302c20, 0x15ff5: 0xc38d0b21, 0x15ff6: 0x4030be20, 0x15ff7: 0x4030e220, - 0x15ff8: 0x4030f620, 0x15ff9: 0x40310020, 0x15ffa: 0x40312a20, 0x15ffb: 0x4003fc20, - 0x15ffc: 0x40094820, 0x15ffd: 0x4003fe20, 0x15ffe: 0x40094c20, 0x15fff: 0xa0000000, - // Block 0x580, offset 0x16000 - 0x16000: 0xa0000000, 0x16001: 0xa0000000, 0x16002: 0xa0000000, 0x16003: 0xa0000000, - 0x16004: 0xa0000000, 0x16005: 0xa0000000, 0x16006: 0xa0000000, 0x16007: 0xa0000000, - 0x16008: 0xa0000000, 0x16009: 0x40020020, 0x1600a: 0x40020220, 0x1600b: 0x40020420, - 0x1600c: 0x40020620, 0x1600d: 0x40020820, 0x1600e: 0xa0000000, 0x1600f: 0xa0000000, - 0x16010: 0xa0000000, 0x16011: 0xa0000000, 0x16012: 0xa0000000, 0x16013: 0xa0000000, - 0x16014: 0xa0000000, 0x16015: 0xa0000000, 0x16016: 0xa0000000, 0x16017: 0xa0000000, - 0x16018: 0xa0000000, 0x16019: 0xa0000000, 0x1601a: 0xa0000000, 0x1601b: 0xa0000000, - 0x1601c: 0xa0000000, 0x1601d: 0xa0000000, 0x1601e: 0xa0000000, 0x1601f: 0xa0000000, - 0x16020: 0x40021220, 0x16021: 0x4002ba20, 0x16022: 0x4003e020, 0x16023: 0x4004ea20, - 0x16024: 0x4027de20, 0x16025: 0x4004ec20, 0x16026: 0x4004e620, 0x16027: 0x4003d220, - 0x16028: 0x4003f420, 0x16029: 0x4003f620, 0x1602a: 0x4004d820, 0x1602b: 0x40093820, - 0x1602c: 0x40024020, 0x1602d: 0x40021a20, 0x1602e: 0x4002e420, 0x1602f: 0x4004e220, - 0x16030: 0x4029cc20, 0x16031: 0x4029ce20, 0x16032: 0x4029d020, 0x16033: 0x4029d220, - 0x16034: 0x4029d420, 0x16035: 0x4029d620, 0x16036: 0x4029d820, 0x16037: 0x4029da20, - 0x16038: 0x4029dc20, 0x16039: 0x4029de20, 0x1603a: 0x40026c20, 0x1603b: 0x40026220, - 0x1603c: 0x40094020, 0x1603d: 0x40094220, 0x1603e: 0x40094420, 0x1603f: 0x4002c420, - // Block 0x581, offset 0x16040 - 0x16040: 0x4004d620, 0x16041: 0x002bde88, 0x16042: 0x002c0a88, 0x16043: 0x002c3a88, - 0x16044: 0x002c6288, 0x16045: 0xce0a2741, 0x16046: 0x002d0888, 0x16047: 0x002d2288, - 0x16048: 0x002d6888, 0x16049: 0x002d9a88, 0x1604a: 0x002dcc88, 0x1604b: 0x002dfe88, - 0x1604c: 0xc0030002, 0x1604d: 0x002e8288, 0x1604e: 0x002e9e88, 0x1604f: 0xc33f2741, - 0x16050: 0x002f2c88, 0x16051: 0x002f5688, 0x16052: 0x002f7a88, 0x16053: 0xc3430991, - 0x16054: 0x00302c88, 0x16055: 0x00306c88, 0x16056: 0x0030be88, 0x16057: 0x0030e288, - 0x16058: 0x0030f688, 0x16059: 0x00310088, 0x1605a: 0x00312a88, 0x1605b: 0x4003f820, - 0x1605c: 0x4004e420, 0x1605d: 0x4003fa20, 0x1605e: 0x40062420, 0x1605f: 0x40021620, - 0x16060: 0x40061e20, 0x16061: 0x402bde20, 0x16062: 0x402c0a20, 0x16063: 0x402c3a20, - 0x16064: 0x402c6220, 0x16065: 0xce082741, 0x16066: 0x402d0820, 0x16067: 0x402d2220, - 0x16068: 0x402d6820, 0x16069: 0x402d9a20, 0x1606a: 0x402dcc20, 0x1606b: 0x402dfe20, - 0x1606c: 0xc0000002, 0x1606d: 0x402e8220, 0x1606e: 0x402e9e20, 0x1606f: 0xc33d2741, - 0x16070: 0x402f2c20, 0x16071: 0x402f5620, 0x16072: 0x402f7a20, 0x16073: 0xc3410991, - 0x16074: 0x40302c20, 0x16075: 0x40306c20, 0x16076: 0x4030be20, 0x16077: 0x4030e220, - 0x16078: 0x4030f620, 0x16079: 0x40310020, 0x1607a: 0x40312a20, 0x1607b: 0x4003fc20, - 0x1607c: 0x40094820, 0x1607d: 0x4003fe20, 0x1607e: 0x40094c20, 0x1607f: 0xa0000000, - // Block 0x582, offset 0x16080 - 0x16080: 0xe00008f5, 0x16081: 0xe00008ef, 0x16082: 0xe0000921, 0x16083: 0xe0000969, - 0x16084: 0xe000095b, 0x16085: 0xe000094d, 0x16086: 0xe00009dd, 0x16087: 0xe0000a53, - 0x16088: 0xe0000ae8, 0x16089: 0xe0000ae2, 0x1608a: 0x002c9a83, 0x1608b: 0xe0000b20, - 0x1608c: 0xe0000c2b, 0x1608d: 0xe0000c25, 0x1608e: 0xe0000c37, 0x1608f: 0xe0000c43, - 0x16090: 0xe0000ab3, 0x16091: 0xe0000d63, 0x16092: 0xe0000d9a, 0x16093: 0xe0000d94, - 0x16094: 0x002ee483, 0x16095: 0xe0000de6, 0x16096: 0xe0000dd2, 0x16097: 0x40093e20, - 0x16098: 0xe0000e12, 0x16099: 0xe0000fe1, 0x1609a: 0xe0000fdb, 0x1609b: 0xe0000fed, - 0x1609c: 0xe0000fff, 0x1609d: 0xe0001102, 0x1609e: 0x00318888, 0x1609f: 0xe0000f7b, - 0x160a0: 0xe00008f2, 0x160a1: 0xe00008ec, 0x160a2: 0xe000091e, 0x160a3: 0xe0000966, - 0x160a4: 0xe0000958, 0x160a5: 0xe000094a, 0x160a6: 0xe00009d5, 0x160a7: 0xe0000a4d, - 0x160a8: 0xe0000ae5, 0x160a9: 0xe0000adf, 0x160aa: 0x402c9a20, 0x160ab: 0xe0000b1d, - 0x160ac: 0xe0000c28, 0x160ad: 0xe0000c22, 0x160ae: 0xe0000c34, 0x160af: 0xe0000c40, - 0x160b0: 0xe0000aad, 0x160b1: 0xe0000d60, 0x160b2: 0xe0000d97, 0x160b3: 0xe0000d91, - 0x160b4: 0x402ee420, 0x160b5: 0xe0000de3, 0x160b6: 0xe0000dcf, 0x160b7: 0x40093c20, - 0x160b8: 0xe0000e0f, 0x160b9: 0xe0000fde, 0x160ba: 0xe0000fd8, 0x160bb: 0xe0000fea, - 0x160bc: 0xe0000ffc, 0x160bd: 0xe00010ff, 0x160be: 0x40318820, 0x160bf: 0xe0001114, - // Block 0x583, offset 0x160c0 - 0x160c0: 0xe0000cfe, 0x160c1: 0xe0000cf8, 0x160c2: 0xe0000cf5, 0x160c3: 0xe0000d51, - 0x160c4: 0xe0000d4e, 0x160c5: 0xe0000d6f, 0x160c6: 0xe0000d6c, 0x160c7: 0xe0000d5d, - 0x160c8: 0xe0000d5a, 0x160c9: 0xf0000404, 0x160ca: 0x002eda88, 0x160cb: 0x402eda20, - 0x160cc: 0xe0000e2e, 0x160cd: 0xe0000e2b, 0x160ce: 0xe0000da0, 0x160cf: 0xe0000d9d, - 0x160d0: 0xe0000de0, 0x160d1: 0xe0000ddd, 0x160d2: 0xe0000e93, 0x160d3: 0xe0000e8f, - 0x160d4: 0xe0000eca, 0x160d5: 0xe0000ec7, 0x160d6: 0xe0000edc, 0x160d7: 0xe0000ed9, - 0x160d8: 0xe0000ed0, 0x160d9: 0xe0000ecd, 0x160da: 0xe0000f1f, 0x160db: 0xe0000f1c, - 0x160dc: 0xe0000f2d, 0x160dd: 0xe0000f2a, 0x160de: 0xe0000f47, 0x160df: 0xe0000f44, - 0x160e0: 0x002fe883, 0x160e1: 0x402fe820, 0x160e2: 0xe0000f99, 0x160e3: 0xe0000f96, - 0x160e4: 0xe0000f8a, 0x160e5: 0xe0000f87, 0x160e6: 0x00303688, 0x160e7: 0x40303620, - 0x160e8: 0xe000102b, 0x160e9: 0xe0001028, 0x160ea: 0xe000103f, 0x160eb: 0xe000103c, - 0x160ec: 0xe0000fe7, 0x160ed: 0xe0000fe4, 0x160ee: 0xe0000ff9, 0x160ef: 0xe0000ff6, - 0x160f0: 0xe0001025, 0x160f1: 0xe0001022, 0x160f2: 0xe0001039, 0x160f3: 0xe0001036, - 0x160f4: 0xe00010d8, 0x160f5: 0xe00010d5, 0x160f6: 0xe000110e, 0x160f7: 0xe000110b, - 0x160f8: 0xe0001117, 0x160f9: 0xe000113b, 0x160fa: 0xe0001138, 0x160fb: 0xe000114d, - 0x160fc: 0xe000114a, 0x160fd: 0xe0001147, 0x160fe: 0xe0001144, 0x160ff: 0xe0000f64, - // Block 0x584, offset 0x16100 - 0x16100: 0xe00010d2, 0x16101: 0xe00010cf, 0x16102: 0xe00010cc, 0x16103: 0xe00010c9, - 0x16104: 0xe00010e1, 0x16105: 0xe00010de, 0x16106: 0xe00010e7, 0x16107: 0xe00010e4, - 0x16108: 0xe00010ed, 0x16109: 0xe00010ea, 0x1610a: 0xe00010fc, 0x1610b: 0xe00010f9, - 0x1610c: 0xe00010f6, 0x1610d: 0xe00010f3, 0x1610e: 0xe0001123, 0x1610f: 0xe0001120, - 0x16110: 0xe0001141, 0x16111: 0xe000113e, 0x16112: 0xe0001153, 0x16113: 0xe0001150, - 0x16114: 0xe0001159, 0x16115: 0xe0001156, 0x16116: 0xe0000c15, 0x16117: 0xe0000f8d, - 0x16118: 0xe00010db, 0x16119: 0xe0001111, 0x1611a: 0xf0000404, 0x1611b: 0xe0000f70, - 0x1611c: 0x40300420, 0x1611d: 0x40300620, 0x1611e: 0xe0000f7f, 0x1611f: 0x402c9620, - 0x16120: 0xe000099b, 0x16121: 0xe0000998, 0x16122: 0xe0000989, 0x16123: 0xe0000986, - 0x16124: 0xe0000928, 0x16125: 0xe0000924, 0x16126: 0xe0000930, 0x16127: 0xe000092c, - 0x16128: 0xe0000940, 0x16129: 0xe000093c, 0x1612a: 0xe0000938, 0x1612b: 0xe0000934, - 0x1612c: 0xe00009aa, 0x1612d: 0xe00009a6, 0x1612e: 0xe0000902, 0x1612f: 0xe00008fe, - 0x16130: 0xe000090a, 0x16131: 0xe0000906, 0x16132: 0xe000091a, 0x16133: 0xe0000916, - 0x16134: 0xe0000912, 0x16135: 0xe000090e, 0x16136: 0xe00009a2, 0x16137: 0xe000099e, - 0x16138: 0xe0000b6e, 0x16139: 0xe0000b6b, 0x1613a: 0xe0000b5c, 0x1613b: 0xe0000b59, - 0x1613c: 0xe0000b26, 0x1613d: 0xe0000b23, 0x1613e: 0xe000acd3, 0x1613f: 0xe000acd0, - // Block 0x585, offset 0x16140 - 0x16140: 0xe000acd9, 0x16141: 0xe000acd6, 0x16142: 0xe000ace5, 0x16143: 0xe000ace2, - 0x16144: 0xe000acdf, 0x16145: 0xe000acdc, 0x16146: 0xe000aceb, 0x16147: 0xe000ace8, - 0x16148: 0xe0000c66, 0x16149: 0xe0000c63, 0x1614a: 0xe0000c78, 0x1614b: 0xe0000c75, - 0x1614c: 0xe0000e84, 0x1614d: 0xe0000e81, 0x1614e: 0xe0000e44, 0x1614f: 0xe0000e41, - 0x16150: 0xe000acf1, 0x16151: 0xe000acee, 0x16152: 0xe000acf7, 0x16153: 0xe000acf4, - 0x16154: 0xe000acfd, 0x16155: 0xe000acfa, 0x16156: 0xe0002946, 0x16157: 0xe0002943, - 0x16158: 0xe000ad03, 0x16159: 0xe000ad00, 0x1615a: 0xe0000e5d, 0x1615b: 0xe0000e59, - 0x1615c: 0xe0000e65, 0x1615d: 0xe0000e61, 0x1615e: 0xe0000e75, 0x1615f: 0xe0000e71, - 0x16160: 0xe0000e6d, 0x16161: 0xe0000e69, 0x16162: 0xe0000e7d, 0x16163: 0xe0000e79, - 0x16164: 0xe000108d, 0x16165: 0xe000108a, 0x16166: 0xe000104d, 0x16167: 0xe000104a, - 0x16168: 0xe0001066, 0x16169: 0xe0001062, 0x1616a: 0xe000106e, 0x1616b: 0xe000106a, - 0x1616c: 0xe000107e, 0x1616d: 0xe000107a, 0x1616e: 0xe0001076, 0x1616f: 0xe0001072, - 0x16170: 0xe0001086, 0x16171: 0xe0001082, 0x16172: 0xe0001108, 0x16173: 0xe0001105, - 0x16174: 0xe0001135, 0x16175: 0xe0001132, 0x16176: 0xe000112f, 0x16177: 0xe000112c, - 0x16178: 0xe000111d, 0x16179: 0xe000111a, 0x1617a: 0xe0000d0a, 0x1617b: 0xe0000d07, - 0x1617c: 0x0030d888, 0x1617d: 0x4030d820, 0x1617e: 0x00312088, 0x1617f: 0x40312020, - // Block 0x586, offset 0x16180 - 0x16180: 0xa0000000, 0x16181: 0xa0000000, 0x16182: 0xa0000000, 0x16183: 0xa0000000, - 0x16184: 0xa0000000, 0x16185: 0xa0000000, 0x16186: 0xa0000000, 0x16187: 0xa0000000, - 0x16188: 0xa0000000, 0x16189: 0x40020020, 0x1618a: 0x40020220, 0x1618b: 0x40020420, - 0x1618c: 0x40020620, 0x1618d: 0x40020820, 0x1618e: 0xa0000000, 0x1618f: 0xa0000000, - 0x16190: 0xa0000000, 0x16191: 0xa0000000, 0x16192: 0xa0000000, 0x16193: 0xa0000000, - 0x16194: 0xa0000000, 0x16195: 0xa0000000, 0x16196: 0xa0000000, 0x16197: 0xa0000000, - 0x16198: 0xa0000000, 0x16199: 0xa0000000, 0x1619a: 0xa0000000, 0x1619b: 0xa0000000, - 0x1619c: 0xa0000000, 0x1619d: 0xa0000000, 0x1619e: 0xa0000000, 0x1619f: 0xa0000000, - 0x161a0: 0x40021220, 0x161a1: 0x4002ba20, 0x161a2: 0x4003e020, 0x161a3: 0x4004ea20, - 0x161a4: 0x4027de20, 0x161a5: 0x4004ec20, 0x161a6: 0x4004e620, 0x161a7: 0x4003d220, - 0x161a8: 0x4003f420, 0x161a9: 0x4003f620, 0x161aa: 0x4004d820, 0x161ab: 0x40093820, - 0x161ac: 0x40024020, 0x161ad: 0x40021a20, 0x161ae: 0x4002e420, 0x161af: 0x4004e220, - 0x161b0: 0x4029cc20, 0x161b1: 0x4029ce20, 0x161b2: 0x4029d020, 0x161b3: 0x4029d220, - 0x161b4: 0x4029d420, 0x161b5: 0x4029d620, 0x161b6: 0x4029d820, 0x161b7: 0x4029da20, - 0x161b8: 0x4029dc20, 0x161b9: 0x4029de20, 0x161ba: 0x40026c20, 0x161bb: 0x40026220, - 0x161bc: 0x40094020, 0x161bd: 0x40094220, 0x161be: 0x40094420, 0x161bf: 0x4002c420, - // Block 0x587, offset 0x161c0 - 0x161c0: 0x4004d620, 0x161c1: 0x002bde88, 0x161c2: 0x002c0a88, 0x161c3: 0xce0e09c2, - 0x161c4: 0xce1309c2, 0x161c5: 0x002c9888, 0x161c6: 0x002d0888, 0x161c7: 0x002d2288, - 0x161c8: 0x002d6888, 0x161c9: 0x002d9a88, 0x161ca: 0x002dcc88, 0x161cb: 0xce1809c2, - 0x161cc: 0xc0030002, 0x161cd: 0x002e8288, 0x161ce: 0xce1d26f2, 0x161cf: 0x002ee288, - 0x161d0: 0xce2209c2, 0x161d1: 0x002f5688, 0x161d2: 0x002f7a88, 0x161d3: 0xce2709b1, - 0x161d4: 0x00302c88, 0x161d5: 0x00306c88, 0x161d6: 0x0030be88, 0x161d7: 0x0030e288, - 0x161d8: 0x0030f688, 0x161d9: 0x00310088, 0x161da: 0x00312a88, 0x161db: 0x4003f820, - 0x161dc: 0x4004e420, 0x161dd: 0x4003fa20, 0x161de: 0x40062420, 0x161df: 0x40021620, - 0x161e0: 0x40061e20, 0x161e1: 0x402bde20, 0x161e2: 0x402c0a20, 0x161e3: 0xce0c09b1, - 0x161e4: 0xce1109b1, 0x161e5: 0x402c9820, 0x161e6: 0x402d0820, 0x161e7: 0x402d2220, - 0x161e8: 0x402d6820, 0x161e9: 0x402d9a20, 0x161ea: 0x402dcc20, 0x161eb: 0xce1609b1, - 0x161ec: 0xc0000002, 0x161ed: 0x402e8220, 0x161ee: 0xce1b26e1, 0x161ef: 0x402ee220, - 0x161f0: 0xce2009b1, 0x161f1: 0x402f5620, 0x161f2: 0x402f7a20, 0x161f3: 0xce2509b1, - 0x161f4: 0x40302c20, 0x161f5: 0x40306c20, 0x161f6: 0x4030be20, 0x161f7: 0x4030e220, - 0x161f8: 0x4030f620, 0x161f9: 0x40310020, 0x161fa: 0x40312a20, 0x161fb: 0x4003fc20, - 0x161fc: 0x40094820, 0x161fd: 0x4003fe20, 0x161fe: 0x40094c20, 0x161ff: 0xa0000000, - // Block 0x588, offset 0x16200 - 0x16201: 0x40421220, 0x16202: 0x40421420, 0x16203: 0x40421620, - 0x16205: 0x4041f620, 0x16206: 0x4041f820, 0x16207: 0x4041fa20, - 0x16208: 0x4041fc20, 0x16209: 0x4041fe20, 0x1620a: 0x40420020, 0x1620b: 0x40420220, - 0x1620c: 0x40420620, 0x1620f: 0x40420a20, - 0x16210: 0x40420c20, 0x16213: 0x40420e20, - 0x16214: 0x40421020, 0x16215: 0xce299441, 0x16216: 0x40421420, 0x16217: 0x40421620, - 0x16218: 0x40421820, 0x16219: 0x40421a20, 0x1621a: 0x40421c20, 0x1621b: 0x40421e20, - 0x1621c: 0x40422020, 0x1621d: 0x40422220, 0x1621e: 0x40422420, 0x1621f: 0x40422620, - 0x16220: 0x40422820, 0x16221: 0x40422a20, 0x16222: 0x40422c20, 0x16223: 0x40422e20, - 0x16224: 0x40423020, 0x16225: 0x40423220, 0x16226: 0x40423420, 0x16227: 0x40423620, - 0x16228: 0x40423820, 0x1622a: 0x40423a20, 0x1622b: 0x40423c20, - 0x1622c: 0x40423e20, 0x1622d: 0x40424020, 0x1622e: 0x40424220, 0x1622f: 0x40424420, - 0x16230: 0x40424820, 0x16232: 0x40424a20, 0x16233: 0x40424c20, - 0x16235: 0x40424e20, 0x16236: 0x40425220, 0x16237: 0x40425420, - 0x16238: 0x40425620, 0x16239: 0x40425820, - 0x1623c: 0xa070f102, 0x1623d: 0x40425a20, 0x1623e: 0x40425c20, 0x1623f: 0x40425e20, - // Block 0x589, offset 0x16240 - 0x16240: 0x40426020, 0x16241: 0x40426220, 0x16242: 0x40426420, 0x16243: 0x40426620, - 0x16244: 0x40426820, 0x16247: 0xc05d01e1, - 0x16248: 0x40427020, 0x1624b: 0x40427220, - 0x1624c: 0x40427420, 0x1624d: 0x8209213b, - 0x16256: 0x40427820, 0x16257: 0x40427a20, - 0x1625c: 0xe000185d, 0x1625d: 0xe0001860, 0x1625f: 0x40424421, - 0x16260: 0x40420420, 0x16261: 0x40420820, 0x16262: 0x40426a20, 0x16263: 0x40426c20, - 0x16266: 0xe0000176, 0x16267: 0xe0000204, - 0x16268: 0xe000031f, 0x16269: 0xe00003f9, 0x1626a: 0xe00004d4, 0x1626b: 0xe000059e, - 0x1626c: 0xe0000669, 0x1626d: 0xe0000711, 0x1626e: 0xe00007bd, 0x1626f: 0xe0000862, - 0x16270: 0x40073c20, 0x16271: 0x40425020, 0x16272: 0x40283c20, 0x16273: 0x40283e20, - 0x16274: 0x40284020, 0x16275: 0x40284220, 0x16276: 0x40284420, 0x16277: 0x40284620, - // Block 0x58a, offset 0x16280 - 0x16281: 0xa000f902, 0x16282: 0xa000f802, 0x16283: 0xa000f402, - 0x16285: 0x40410620, 0x16286: 0x40410820, 0x16287: 0x40411020, - 0x16288: 0x40411220, 0x16289: 0x40410020, 0x1628a: 0x40410220, - 0x1628f: 0x40411420, - 0x16290: 0x40410a20, 0x16293: 0x40410420, - 0x16294: 0x40410c20, 0x16295: 0x40411c20, 0x16296: 0x40411e20, 0x16297: 0x40412020, - 0x16298: 0x40412220, 0x16299: 0x40412420, 0x1629a: 0x40412620, 0x1629b: 0x40412820, - 0x1629c: 0x40412a20, 0x1629d: 0x40412c20, 0x1629e: 0x40412e20, 0x1629f: 0x40413020, - 0x162a0: 0x40413220, 0x162a1: 0x40413420, 0x162a2: 0x40413620, 0x162a3: 0x40413820, - 0x162a4: 0x40413a20, 0x162a5: 0x40413c20, 0x162a6: 0x40413e20, 0x162a7: 0x40414020, - 0x162a8: 0x40414220, 0x162aa: 0x40414420, 0x162ab: 0x40414620, - 0x162ac: 0x40414820, 0x162ad: 0x40414a20, 0x162ae: 0x40414c20, 0x162af: 0x40414e20, - 0x162b0: 0x40415220, 0x162b2: 0x40415420, 0x162b3: 0xe000ad15, - 0x162b5: 0x40415620, 0x162b6: 0xe000ad06, - 0x162b8: 0x40411620, 0x162b9: 0x40411820, - 0x162bc: 0xa000fa02, 0x162be: 0x40415a20, 0x162bf: 0x40415c20, - // Block 0x58b, offset 0x162c0 - 0x162c0: 0x40415e20, 0x162c1: 0x40416020, 0x162c2: 0x40416220, - 0x162c7: 0x40416420, - 0x162c8: 0x40416620, 0x162cb: 0x40416820, - 0x162cc: 0x40416a20, 0x162cd: 0x40415a20, - 0x162d1: 0x40411a20, - 0x162d9: 0xe000ad09, 0x162da: 0xe000ad0c, 0x162db: 0xe000ad0f, - 0x162dc: 0x40415820, 0x162de: 0xe000ad12, - 0x162e6: 0xe0000170, 0x162e7: 0xe00001fe, - 0x162e8: 0xe0000319, 0x162e9: 0xe00003f3, 0x162ea: 0xe00004ce, 0x162eb: 0xe0000598, - 0x162ec: 0xe0000663, 0x162ed: 0xe000070b, 0x162ee: 0xe00007b7, 0x162ef: 0xe000085c, - 0x162f0: 0xa000f702, 0x162f1: 0xa000f602, 0x162f2: 0x40410e20, 0x162f3: 0x4040fe20, - 0x162f4: 0x4040fc20, 0x162f5: 0x40415020, - // Block 0x58c, offset 0x16300 - 0x16300: 0xa0000000, 0x16301: 0xa0000000, 0x16302: 0xa0000000, 0x16303: 0xa0000000, - 0x16304: 0xa0000000, 0x16305: 0xa0000000, 0x16306: 0xa0000000, 0x16307: 0xa0000000, - 0x16308: 0xa0000000, 0x16309: 0x40020020, 0x1630a: 0x40020220, 0x1630b: 0x40020420, - 0x1630c: 0x40020620, 0x1630d: 0x40020820, 0x1630e: 0xa0000000, 0x1630f: 0xa0000000, - 0x16310: 0xa0000000, 0x16311: 0xa0000000, 0x16312: 0xa0000000, 0x16313: 0xa0000000, - 0x16314: 0xa0000000, 0x16315: 0xa0000000, 0x16316: 0xa0000000, 0x16317: 0xa0000000, - 0x16318: 0xa0000000, 0x16319: 0xa0000000, 0x1631a: 0xa0000000, 0x1631b: 0xa0000000, - 0x1631c: 0xa0000000, 0x1631d: 0xa0000000, 0x1631e: 0xa0000000, 0x1631f: 0xa0000000, - 0x16320: 0x40021220, 0x16321: 0x4002ba20, 0x16322: 0x4003e020, 0x16323: 0x4004ea20, - 0x16324: 0x4027de20, 0x16325: 0x4004ec20, 0x16326: 0x4004e620, 0x16327: 0x4003d220, - 0x16328: 0x4003f420, 0x16329: 0x4003f620, 0x1632a: 0x4004d820, 0x1632b: 0x40093820, - 0x1632c: 0x40024020, 0x1632d: 0x40021a20, 0x1632e: 0x4002e420, 0x1632f: 0x4004e220, - 0x16330: 0x4029cc20, 0x16331: 0x4029ce20, 0x16332: 0x4029d020, 0x16333: 0x4029d220, - 0x16334: 0x4029d420, 0x16335: 0x4029d620, 0x16336: 0x4029d820, 0x16337: 0x4029da20, - 0x16338: 0x4029dc20, 0x16339: 0x4029de20, 0x1633a: 0x40026c20, 0x1633b: 0x40026220, - 0x1633c: 0x40094020, 0x1633d: 0x40094220, 0x1633e: 0x40094420, 0x1633f: 0x4002c420, - // Block 0x58d, offset 0x16340 - 0x16340: 0x4004d620, 0x16341: 0xce2d0be1, 0x16342: 0x002c0a88, 0x16343: 0xc33531a1, - 0x16344: 0x002c6288, 0x16345: 0xce0a0be1, 0x16346: 0x002d0888, 0x16347: 0x002d2288, - 0x16348: 0x002d6888, 0x16349: 0x002d9a88, 0x1634a: 0x002dcc88, 0x1634b: 0x002dfe88, - 0x1634c: 0xc0030002, 0x1634d: 0x002e8288, 0x1634e: 0xc53a31a1, 0x1634f: 0xc33f31a1, - 0x16350: 0x002f2c88, 0x16351: 0x002f5688, 0x16352: 0x002f7a88, 0x16353: 0xc34331a1, - 0x16354: 0x00302c88, 0x16355: 0x00306c88, 0x16356: 0x0030be88, 0x16357: 0x0030e288, - 0x16358: 0x0030f688, 0x16359: 0x00310088, 0x1635a: 0xce3294a1, 0x1635b: 0x4003f820, - 0x1635c: 0x4004e420, 0x1635d: 0x4003fa20, 0x1635e: 0x40062420, 0x1635f: 0x40021620, - 0x16360: 0x40061e20, 0x16361: 0xce2b0be1, 0x16362: 0x402c0a20, 0x16363: 0xc33331a1, - 0x16364: 0x402c6220, 0x16365: 0xce080be1, 0x16366: 0x402d0820, 0x16367: 0x402d2220, - 0x16368: 0x402d6820, 0x16369: 0x402d9a20, 0x1636a: 0x402dcc20, 0x1636b: 0x402dfe20, - 0x1636c: 0xc0000002, 0x1636d: 0x402e8220, 0x1636e: 0xc52731a1, 0x1636f: 0xc33d31a1, - 0x16370: 0x402f2c20, 0x16371: 0x402f5620, 0x16372: 0x402f7a20, 0x16373: 0xc34131a1, - 0x16374: 0x40302c20, 0x16375: 0x40306c20, 0x16376: 0x4030be20, 0x16377: 0x4030e220, - 0x16378: 0x4030f620, 0x16379: 0x40310020, 0x1637a: 0xce2f94a1, 0x1637b: 0x4003fc20, - 0x1637c: 0x40094820, 0x1637d: 0x4003fe20, 0x1637e: 0x40094c20, 0x1637f: 0xa0000000, - // Block 0x58e, offset 0x16380 - 0x16380: 0xe00008f5, 0x16381: 0xe00008ef, 0x16382: 0xe0000921, 0x16383: 0xe0000969, - 0x16384: 0xe000095b, 0x16385: 0xe000094d, 0x16386: 0xe00009dd, 0x16387: 0xe0000a53, - 0x16388: 0xe0000ae8, 0x16389: 0xe0000ae2, 0x1638a: 0xe0000af4, 0x1638b: 0xe0000b20, - 0x1638c: 0xe0000c2b, 0x1638d: 0xe0000c25, 0x1638e: 0xe0000c37, 0x1638f: 0xe0000c43, - 0x16390: 0xe0000ab3, 0x16391: 0xe0000d63, 0x16392: 0xe0000d9a, 0x16393: 0x002ee483, - 0x16394: 0xe0000da6, 0x16395: 0xe0000de6, 0x16396: 0xe0000dd2, 0x16397: 0x40093e20, - 0x16398: 0xe0000e12, 0x16399: 0xe0000fe1, 0x1639a: 0xe0000fdb, 0x1639b: 0xe0000fed, - 0x1639c: 0xe0000fff, 0x1639d: 0xe0001102, 0x1639e: 0x00318888, 0x1639f: 0xe0000f7b, - 0x163a0: 0xe00008f2, 0x163a1: 0xe00008ec, 0x163a2: 0xe000091e, 0x163a3: 0xe0000966, - 0x163a4: 0xe0000958, 0x163a5: 0xe000094a, 0x163a6: 0xe00009d5, 0x163a7: 0xe0000a4d, - 0x163a8: 0xe0000ae5, 0x163a9: 0xe0000adf, 0x163aa: 0xe0000af1, 0x163ab: 0xe0000b1d, - 0x163ac: 0xe0000c28, 0x163ad: 0xe0000c22, 0x163ae: 0xe0000c34, 0x163af: 0xe0000c40, - 0x163b0: 0xe0000aad, 0x163b1: 0xe0000d60, 0x163b2: 0xe0000d97, 0x163b3: 0x402ee420, - 0x163b4: 0xe0000da3, 0x163b5: 0xe0000de3, 0x163b6: 0xe0000dcf, 0x163b7: 0x40093c20, - 0x163b8: 0xe0000e0f, 0x163b9: 0xe0000fde, 0x163ba: 0xe0000fd8, 0x163bb: 0xe0000fea, - 0x163bc: 0xe0000ffc, 0x163bd: 0xe00010ff, 0x163be: 0x40318820, 0x163bf: 0xe0001114, - // Block 0x58f, offset 0x163c0 - 0x163c0: 0xe0000983, 0x163c1: 0xe0000980, 0x163c2: 0xe00008fb, 0x163c3: 0xe00008f8, - 0x163c4: 0x002be083, 0x163c5: 0x402be020, 0x163c6: 0x002c3c83, 0x163c7: 0x402c3c20, - 0x163c8: 0xe0000a3e, 0x163c9: 0xe0000a3b, 0x163ca: 0xe0000a4a, 0x163cb: 0xe0000a47, - 0x163cc: 0xe0000a44, 0x163cd: 0xe0000a41, 0x163ce: 0xe0000a86, 0x163cf: 0xe0000a83, - 0x163d0: 0xe0000aaa, 0x163d1: 0xe0000aa7, 0x163d2: 0xe0000b46, 0x163d3: 0xe0000b43, - 0x163d4: 0xe0000aee, 0x163d5: 0xe0000aeb, 0x163d6: 0xe0000b2c, 0x163d7: 0xe0000b29, - 0x163d8: 0x002c9a83, 0x163d9: 0x402c9a20, 0x163da: 0xe0000b1a, 0x163db: 0xe0000b17, - 0x163dc: 0xe0000bb8, 0x163dd: 0xe0000bb5, 0x163de: 0xe0000bb2, 0x163df: 0xe0000baf, - 0x163e0: 0xe0000bc4, 0x163e1: 0xe0000bc1, 0x163e2: 0xe0000bca, 0x163e3: 0xe0000bc7, - 0x163e4: 0xe0000bee, 0x163e5: 0xe0000beb, 0x163e6: 0xe0000c1b, 0x163e7: 0xe0000c18, - 0x163e8: 0xe0000c51, 0x163e9: 0xe0000c4e, 0x163ea: 0xe0000c60, 0x163eb: 0xe0000c5d, - 0x163ec: 0xe0000c31, 0x163ed: 0xe0000c2e, 0x163ee: 0xe0000c5a, 0x163ef: 0xe0000c57, - 0x163f0: 0xe0000c54, 0x163f1: 0x402da220, 0x163f2: 0xf0000a0a, 0x163f3: 0xf0000404, - 0x163f4: 0xe0000c8a, 0x163f5: 0xe0000c87, 0x163f6: 0xe0000c9f, 0x163f7: 0xe0000c9c, - 0x163f8: 0x402f7220, 0x163f9: 0xe0000ccc, 0x163fa: 0xe0000cc9, 0x163fb: 0xe0000cd8, - 0x163fc: 0xe0000cd5, 0x163fd: 0xe0000cd2, 0x163fe: 0xe0000ccf, 0x163ff: 0xe0000d04, - // Block 0x590, offset 0x16400 - 0x16400: 0xe0000cfe, 0x16401: 0x002e2483, 0x16402: 0x402e2420, 0x16403: 0x002ea083, - 0x16404: 0x402ea020, 0x16405: 0xe0000d6f, 0x16406: 0xe0000d6c, 0x16407: 0xe0000d5d, - 0x16408: 0xe0000d5a, 0x16409: 0xf0000404, 0x1640a: 0x002eda88, 0x1640b: 0x402eda20, - 0x1640c: 0xe0000e2e, 0x1640d: 0xe0000e2b, 0x1640e: 0xe0000da0, 0x1640f: 0xe0000d9d, - 0x16410: 0xe0000de0, 0x16411: 0xe0000ddd, 0x16412: 0xe0000e93, 0x16413: 0xe0000e8f, - 0x16414: 0xe0000eca, 0x16415: 0xe0000ec7, 0x16416: 0xe0000edc, 0x16417: 0xe0000ed9, - 0x16418: 0xe0000ed0, 0x16419: 0xe0000ecd, 0x1641a: 0x002fe883, 0x1641b: 0x402fe820, - 0x1641c: 0xe0000f2d, 0x1641d: 0xe0000f2a, 0x1641e: 0xe0000f47, 0x1641f: 0xe0000f44, - 0x16420: 0xe0000f33, 0x16421: 0xe0000f30, 0x16422: 0xe0000f99, 0x16423: 0xe0000f96, - 0x16424: 0xe0000f8a, 0x16425: 0xe0000f87, 0x16426: 0x00303688, 0x16427: 0x40303620, - 0x16428: 0xe000102b, 0x16429: 0xe0001028, 0x1642a: 0xe000103f, 0x1642b: 0xe000103c, - 0x1642c: 0xe0000fe7, 0x1642d: 0xe0000fe4, 0x1642e: 0xe0000ff9, 0x1642f: 0xe0000ff6, - 0x16430: 0xe0001025, 0x16431: 0xe0001022, 0x16432: 0xe0001039, 0x16433: 0xe0001036, - 0x16434: 0xe00010d8, 0x16435: 0xe00010d5, 0x16436: 0xe000110e, 0x16437: 0xe000110b, - 0x16438: 0xe0001117, 0x16439: 0x00312c83, 0x1643a: 0x40312c20, 0x1643b: 0x00312e83, - 0x1643c: 0x40312e20, 0x1643d: 0xe0001147, 0x1643e: 0xe0001144, 0x1643f: 0xe0000f64, - // Block 0x591, offset 0x16440 - 0x16440: 0xe00009b1, 0x16441: 0xe00009ae, 0x16442: 0xe0000a22, 0x16443: 0xe0000a1f, - 0x16444: 0xe0000a28, 0x16445: 0xe0000a25, 0x16446: 0xe0000a2e, 0x16447: 0xe0000a2b, - 0x16448: 0xe000261a, 0x16449: 0xe0002617, 0x1644a: 0xe0000a8c, 0x1644b: 0xe0000a89, - 0x1644c: 0xe0000a98, 0x1644d: 0xe0000a95, 0x1644e: 0xe0000aa4, 0x1644f: 0xe0000aa1, - 0x16450: 0xe0000a92, 0x16451: 0xe0000a8f, 0x16452: 0xe0000a9e, 0x16453: 0xe0000a9b, - 0x16454: 0xe0000b55, 0x16455: 0xe0000b51, 0x16456: 0xe0000b4d, 0x16457: 0xe0000b49, - 0x16458: 0xe0000b7c, 0x16459: 0xe0000b79, 0x1645a: 0xe0000b82, 0x1645b: 0xe0000b7f, - 0x1645c: 0xe0000b39, 0x1645d: 0xe0000b35, 0x1645e: 0xe0000b8c, 0x1645f: 0xe0000b89, - 0x16460: 0xe0000bd0, 0x16461: 0xe0000bcd, 0x16462: 0xe0000c00, 0x16463: 0xe0000bfd, - 0x16464: 0xe0000c0c, 0x16465: 0xe0000c09, 0x16466: 0xe0000bfa, 0x16467: 0xe0000bf7, - 0x16468: 0xe0000c06, 0x16469: 0xe0000c03, 0x1646a: 0xe0000c12, 0x1646b: 0xe0000c0f, - 0x1646c: 0xe0000c7e, 0x1646d: 0xe0000c7b, 0x1646e: 0xe0000c4a, 0x1646f: 0xe0000c46, - 0x16470: 0xe0000c93, 0x16471: 0xe0000c90, 0x16472: 0xe0000cab, 0x16473: 0xe0000ca8, - 0x16474: 0xe0000cb1, 0x16475: 0xe0000cae, 0x16476: 0xe0000cde, 0x16477: 0xe0000cdb, - 0x16478: 0xe0000ce5, 0x16479: 0xe0000ce1, 0x1647a: 0xe0000cf2, 0x1647b: 0xe0000cef, - 0x1647c: 0xe0000cec, 0x1647d: 0xe0000ce9, 0x1647e: 0xe0000d1e, 0x1647f: 0xe0000d1b, - // Block 0x592, offset 0x16480 - 0x16480: 0xe0000d24, 0x16481: 0xe0000d21, 0x16482: 0xe0000d2a, 0x16483: 0xe0000d27, - 0x16484: 0xe0000d69, 0x16485: 0xe0000d66, 0x16486: 0xe0000d7b, 0x16487: 0xe0000d78, - 0x16488: 0xe0000d87, 0x16489: 0xe0000d84, 0x1648a: 0xe0000d81, 0x1648b: 0xe0000d7e, - 0x1648c: 0xe0002946, 0x1648d: 0xe0002943, 0x1648e: 0xe0000df5, 0x1648f: 0xe0000df1, - 0x16490: 0xe0000e3d, 0x16491: 0xe0000e39, 0x16492: 0xe000294c, 0x16493: 0xe0002949, - 0x16494: 0xe0000ea7, 0x16495: 0xe0000ea4, 0x16496: 0xe0000ead, 0x16497: 0xe0000eaa, - 0x16498: 0xe0000ed6, 0x16499: 0xe0000ed3, 0x1649a: 0xe0000ef4, 0x1649b: 0xe0000ef1, - 0x1649c: 0xe0000efb, 0x1649d: 0xe0000ef7, 0x1649e: 0xe0000f02, 0x1649f: 0xe0000eff, - 0x164a0: 0xe0000f41, 0x164a1: 0xe0000f3e, 0x164a2: 0xe0000f53, 0x164a3: 0xe0000f50, - 0x164a4: 0xe000296a, 0x164a5: 0xe0002967, 0x164a6: 0xe0000f3a, 0x164a7: 0xe0000f36, - 0x164a8: 0xe0000f5a, 0x164a9: 0xe0000f56, 0x164aa: 0xe0000f93, 0x164ab: 0xe0000f90, - 0x164ac: 0xe0000f9f, 0x164ad: 0xe0000f9c, 0x164ae: 0xe0000fb1, 0x164af: 0xe0000fae, - 0x164b0: 0xe0000fab, 0x164b1: 0xe0000fa8, 0x164b2: 0xe0001093, 0x164b3: 0xe0001090, - 0x164b4: 0xe000109f, 0x164b5: 0xe000109c, 0x164b6: 0xe0001099, 0x164b7: 0xe0001096, - 0x164b8: 0xe0001032, 0x164b9: 0xe000102e, 0x164ba: 0xe0001046, 0x164bb: 0xe0001042, - 0x164bc: 0xe00010a9, 0x164bd: 0xe00010a6, 0x164be: 0xe00010af, 0x164bf: 0xe00010ac, - // Block 0x593, offset 0x164c0 - 0x164c0: 0xe0000b03, 0x164c1: 0xe0000aff, 0x164c2: 0xe0000b13, 0x164c3: 0xe0000b0f, - 0x164c4: 0xe0000b0b, 0x164c5: 0xe0000b07, 0x164c6: 0xe0000b75, 0x164c7: 0xe0000b71, - 0x164c8: 0xe0000c66, 0x164c9: 0xe0000c63, 0x164ca: 0xe0000c78, 0x164cb: 0xe0000c75, - 0x164cc: 0xe0000e84, 0x164cd: 0xe0000e81, 0x164ce: 0xe0000e44, 0x164cf: 0xe0000e41, - 0x164d0: 0xe0003c28, 0x164d1: 0xe0003c25, 0x164d2: 0xe0000db5, 0x164d3: 0xe0000db1, - 0x164d4: 0xe0000dc5, 0x164d5: 0xe0000dc1, 0x164d6: 0xe0000dbd, 0x164d7: 0xe0000db9, - 0x164d8: 0xe0000e8b, 0x164d9: 0xe0000e87, 0x164da: 0xe0003c2e, 0x164db: 0xe0003c2b, - 0x164dc: 0xe0000e65, 0x164dd: 0xe0000e61, 0x164de: 0xe0000e75, 0x164df: 0xe0000e71, - 0x164e0: 0xe0000e6d, 0x164e1: 0xe0000e69, 0x164e2: 0xe0000e7d, 0x164e3: 0xe0000e79, - 0x164e4: 0xe000108d, 0x164e5: 0xe000108a, 0x164e6: 0xe000104d, 0x164e7: 0xe000104a, - 0x164e8: 0xe0001066, 0x164e9: 0xe0001062, 0x164ea: 0xe000106e, 0x164eb: 0xe000106a, - 0x164ec: 0xe000107e, 0x164ed: 0xe000107a, 0x164ee: 0xe0001076, 0x164ef: 0xe0001072, - 0x164f0: 0xe0001086, 0x164f1: 0xe0001082, 0x164f2: 0xe0001108, 0x164f3: 0xe0001105, - 0x164f4: 0xe0001135, 0x164f5: 0xe0001132, 0x164f6: 0xe000112f, 0x164f7: 0xe000112c, - 0x164f8: 0xe000111d, 0x164f9: 0xe000111a, 0x164fa: 0xe0000d0a, 0x164fb: 0xe0000d07, - 0x164fc: 0x0030d888, 0x164fd: 0x4030d820, 0x164fe: 0x00312088, 0x164ff: 0x40312020, - // Block 0x594, offset 0x16500 - 0x16500: 0xa0000000, 0x16501: 0xa0000000, 0x16502: 0xa0000000, 0x16503: 0xa0000000, - 0x16504: 0xa0000000, 0x16506: 0x40096620, 0x16507: 0x40096a20, - 0x16508: 0x40070820, 0x16509: 0x4004f220, 0x1650a: 0x4004f620, 0x1650b: 0x4027e620, - 0x1650c: 0x40024820, 0x1650d: 0x40024a20, 0x1650e: 0x40070e20, 0x1650f: 0x40071020, - 0x16510: 0xae600000, 0x16511: 0xae600000, 0x16512: 0xae600000, 0x16513: 0xae600000, - 0x16514: 0xae600000, 0x16515: 0xae600000, 0x16516: 0xae600000, 0x16517: 0xae600000, - 0x16518: 0xa1e00000, 0x16519: 0xa1f00000, 0x1651a: 0xa2000000, 0x1651b: 0x40026420, - 0x1651e: 0x40027020, 0x1651f: 0x4002cc20, - 0x16520: 0x403aa220, 0x16521: 0x40393a20, 0x16522: 0x40393620, 0x16523: 0x40393821, - 0x16524: 0x403a7421, 0x16525: 0x40393824, 0x16526: 0x003a9344, 0x16527: 0xce350151, - 0x16528: 0x40393c20, 0x16529: 0x403a6824, 0x1652a: 0x40395620, 0x1652b: 0x40395820, - 0x1652c: 0x40396420, 0x1652d: 0xce390171, 0x1652e: 0x40397420, 0x1652f: 0x40398820, - 0x16530: 0x40398a20, 0x16531: 0x4039a420, 0x16532: 0x4039a620, 0x16533: 0x4039c620, - 0x16534: 0x4039c820, 0x16535: 0x4039dc20, 0x16536: 0x4039de20, 0x16537: 0x4039e620, - 0x16538: 0x4039e820, 0x16539: 0x4039ee20, 0x1653a: 0x4039f020, 0x1653b: 0x403a3820, - 0x1653c: 0x403a3a20, 0x1653d: 0x403a9c20, 0x1653e: 0x403a9e20, 0x1653f: 0x403aa020, - // Block 0x595, offset 0x16540 - 0x16540: 0xa0000000, 0x16541: 0x4039fc20, 0x16542: 0x403a1220, 0x16543: 0x403a1c22, - 0x16544: 0x403a4020, 0x16545: 0x403a4e20, 0x16546: 0x403a5620, 0x16547: 0xce3d0171, - 0x16548: 0xce3f0171, 0x16549: 0xce430171, 0x1654a: 0xce450171, 0x1654b: 0xa000b002, - 0x1654c: 0xa000b202, 0x1654d: 0xa000b102, 0x1654e: 0xa1e0ad02, 0x1654f: 0xa000af02, - 0x16550: 0xa000ae02, 0x16551: 0xa210ba02, 0x16552: 0xa220bc02, 0x16553: 0xae60bd02, - 0x16554: 0xae60be02, 0x16555: 0xadc0bf02, 0x16556: 0xadc0c102, 0x16557: 0xae60c202, - 0x16558: 0xae60c302, 0x16559: 0xae60c402, 0x1655a: 0xae60c502, 0x1655b: 0xae60c602, - 0x1655c: 0xadc0c702, 0x1655d: 0xae60c802, 0x1655e: 0xae60c902, 0x1655f: 0xadc0c002, - 0x16560: 0xe000015e, 0x16561: 0xe00001e6, 0x16562: 0xe0000301, 0x16563: 0xe00003db, - 0x16564: 0xe00004b6, 0x16565: 0xe0000580, 0x16566: 0xe000064b, 0x16567: 0xe00006f3, - 0x16568: 0xe000079f, 0x16569: 0xe0000844, 0x1656a: 0x4004ee20, 0x1656b: 0x40024c20, - 0x1656c: 0x40024e20, 0x1656d: 0x4004de20, 0x1656e: 0x40393a20, 0x1656f: 0x403a1020, - 0x16570: 0xa230d102, 0x16571: 0x40393823, 0x16572: 0x40393822, 0x16573: 0x40393825, - 0x16574: 0x00391c84, 0x16575: 0xf0000404, 0x16576: 0xf0000404, 0x16577: 0xe000ad1b, - 0x16578: 0xe0003736, 0x16579: 0x40395821, 0x1657a: 0x40395c20, 0x1657b: 0x40393e20, - 0x1657c: 0x40395820, 0x1657d: 0x40396020, 0x1657e: 0x40394020, 0x1657f: 0x40396220, - // Block 0x596, offset 0x16580 - 0x16580: 0x40394220, 0x16581: 0x40396620, 0x16582: 0x40397820, 0x16583: 0x40396620, - 0x16584: 0x40396820, 0x16585: 0x40396c20, 0x16586: 0x40396a20, 0x16587: 0x40396e20, - 0x16588: 0x40398a21, 0x16589: 0x40398a20, 0x1658a: 0x40399020, 0x1658b: 0x40399220, - 0x1658c: 0x40399420, 0x1658d: 0x40399620, 0x1658e: 0x40399820, 0x1658f: 0x40399a20, - 0x16590: 0x40399c20, 0x16591: 0x4039a621, 0x16592: 0x4039aa20, 0x16593: 0x4039a620, - 0x16594: 0x4039ae20, 0x16595: 0x4039b020, 0x16596: 0x4039b820, 0x16597: 0x4039b420, - 0x16598: 0x4039b620, 0x16599: 0x4039b820, 0x1659a: 0x4039ca20, 0x1659b: 0x4039cc20, - 0x1659c: 0x4039ce20, 0x1659d: 0x4039e020, 0x1659e: 0x4039e220, 0x1659f: 0x4039ea20, - 0x165a0: 0x4039f220, 0x165a1: 0x4039fe20, 0x165a2: 0x403a0020, 0x165a3: 0x403a0220, - 0x165a4: 0x403a0420, 0x165a5: 0x403a0820, 0x165a6: 0x403a0a20, 0x165a7: 0x403a1420, - 0x165a8: 0x403a1620, 0x165a9: 0x403a1c20, 0x165aa: 0x403a1c21, 0x165ab: 0x403a2020, - 0x165ac: 0x403a2220, 0x165ad: 0x403a2620, 0x165ae: 0x403a2820, 0x165af: 0x403a2021, - 0x165b0: 0x403a2c20, 0x165b1: 0x403a2e20, 0x165b2: 0x403a3020, 0x165b3: 0x403a3220, - 0x165b4: 0x403a3420, 0x165b5: 0x403a4220, 0x165b6: 0x403a4420, 0x165b7: 0x403a4620, - 0x165b8: 0x403a4820, 0x165b9: 0x403a6020, 0x165ba: 0x403a5820, 0x165bb: 0x403a5c21, - 0x165bc: 0x403a5c20, 0x165bd: 0x403a5e20, 0x165be: 0x403a6823, 0x165bf: 0x40396c20, - // Block 0x597, offset 0x165c0 - 0x165c0: 0x003a6883, 0x165c1: 0x403a6822, 0x165c2: 0xe000ad18, 0x165c3: 0x403a6825, - 0x165c4: 0x403a7620, 0x165c5: 0x403a7820, 0x165c6: 0x403a7a20, 0x165c7: 0x403a7422, - 0x165c8: 0x403a7e20, 0x165c9: 0x403a7423, 0x165ca: 0x403a8220, 0x165cb: 0x403a8420, - 0x165cc: 0xce410171, 0x165cd: 0x403a9225, 0x165ce: 0x403a9620, 0x165cf: 0x403a8620, - 0x165d0: 0x403a9224, 0x165d1: 0x403a9a20, 0x165d2: 0x403a9222, 0x165d3: 0xe000376c, - 0x165d4: 0x4002e820, 0x165d5: 0xce3b0171, 0x165d6: 0xae600000, 0x165d7: 0xae600000, - 0x165d8: 0xae600000, 0x165d9: 0xae600000, 0x165da: 0xae600000, 0x165db: 0xae600000, - 0x165dc: 0xae600000, 0x165dd: 0xa0000000, 0x165de: 0x40071220, 0x165df: 0xae600000, - 0x165e0: 0xae600000, 0x165e1: 0xae600000, 0x165e2: 0xae600000, 0x165e3: 0xadc00000, - 0x165e4: 0xae600000, 0x165e5: 0x003a7484, 0x165e6: 0x003a9084, 0x165e7: 0xae600000, - 0x165e8: 0xae600000, 0x165e9: 0x40071420, 0x165ea: 0xadc00000, 0x165eb: 0xae600000, - 0x165ec: 0xae600000, 0x165ed: 0xadc00000, 0x165ee: 0x40399e20, 0x165ef: 0x4039ba20, - 0x165f0: 0xe0000161, 0x165f1: 0xe00001e9, 0x165f2: 0xe0000304, 0x165f3: 0xe00003de, - 0x165f4: 0xe00004b9, 0x165f5: 0xe0000583, 0x165f6: 0xe000064e, 0x165f7: 0xe00006f6, - 0x165f8: 0xe00007a2, 0x165f9: 0xe0000847, 0x165fa: 0x4039d020, 0x165fb: 0x4039e420, - 0x165fc: 0x4039f420, 0x165fd: 0xe0001553, 0x165fe: 0xe0001779, 0x165ff: 0x403a7020, - // Block 0x598, offset 0x16600 - 0x16600: 0x00021284, 0x16601: 0x00021284, 0x16602: 0x00021284, 0x16603: 0x00021284, - 0x16604: 0x00021284, 0x16605: 0x00021284, 0x16606: 0x00021284, 0x16607: 0x0002129b, - 0x16608: 0x00021284, 0x16609: 0x00021284, 0x1660a: 0x00021284, 0x1660b: 0xa0000000, - 0x1660c: 0x40021221, 0x1660d: 0x40021222, 0x1660e: 0xa0000000, 0x1660f: 0xa0000000, - 0x16610: 0x40022620, 0x16611: 0x0002269b, 0x16612: 0x40022820, 0x16613: 0x40022a20, - 0x16614: 0x40022c20, 0x16615: 0x40022e20, 0x16616: 0x4004c420, 0x16617: 0x40021820, - 0x16618: 0x4003d420, 0x16619: 0x4003d620, 0x1661a: 0x4003d820, 0x1661b: 0x4003da20, - 0x1661c: 0x4003e220, 0x1661d: 0x4003e420, 0x1661e: 0x4003e620, 0x1661f: 0x4003e820, - 0x16620: 0x4004f820, 0x16621: 0x4004fa20, 0x16622: 0x40050220, 0x16623: 0x40050420, - 0x16624: 0x0002e484, 0x16625: 0xf0001f04, 0x16626: 0xf0000404, 0x16627: 0x40050620, - 0x16628: 0x40020e20, 0x16629: 0x40021020, 0x1662a: 0xa0000000, 0x1662b: 0xa0000000, - 0x1662c: 0xa0000000, 0x1662d: 0xa0000000, 0x1662e: 0xa0000000, 0x1662f: 0x0002129b, - 0x16630: 0x4004f020, 0x16631: 0x4004f420, 0x16632: 0x40050e20, 0x16633: 0xf0001f04, - 0x16634: 0xf0000404, 0x16635: 0x40051020, 0x16636: 0xf0001f04, 0x16637: 0xf0000404, - 0x16638: 0x40051620, 0x16639: 0x4003dc20, 0x1663a: 0x4003de20, 0x1663b: 0x40051820, - 0x1663c: 0xf0001f04, 0x1663d: 0x4002e020, 0x1663e: 0x40021420, 0x1663f: 0x40051a20, - // Block 0x599, offset 0x16640 - 0x16640: 0x40073420, 0x16641: 0x40073620, - 0x16653: 0x003a269a, - 0x16654: 0x003a2699, 0x16655: 0x003a2697, 0x16656: 0x003a2698, 0x16657: 0x003a7c9a, - 0x16658: 0x003a7c99, 0x16659: 0x003a7a9a, 0x1665a: 0x003a7a99, 0x1665b: 0x003a7e9a, - 0x1665c: 0x003a7e99, 0x1665d: 0xe000ad1e, 0x1665e: 0x003a849a, 0x1665f: 0x003a8499, - 0x16660: 0x003a789a, 0x16661: 0x003a7899, 0x16662: 0x003a809a, 0x16663: 0x003a8099, - 0x16664: 0x003a989a, 0x16665: 0x003a9899, 0x16666: 0x003a9897, 0x16667: 0x003a9898, - 0x16668: 0x003a8e97, 0x16669: 0x003a8e98, 0x1666a: 0xe0001559, 0x1666b: 0xe0001556, - 0x1666c: 0xe0001589, 0x1666d: 0xe0001586, 0x1666e: 0xe000158f, 0x1666f: 0xe000158c, - 0x16670: 0xe000159b, 0x16671: 0xe0001598, 0x16672: 0xe0001595, 0x16673: 0xe0001592, - 0x16674: 0xe00015a1, 0x16675: 0xe000159e, 0x16676: 0xe00015bf, 0x16677: 0xe00015bc, - 0x16678: 0xe00015b9, 0x16679: 0xe00015ad, 0x1667a: 0xe00015a7, 0x1667b: 0xe00015a4, - 0x1667c: 0x003a929a, 0x1667d: 0x003a9299, 0x1667e: 0x003a9297, 0x1667f: 0x003a9298, - // Block 0x59a, offset 0x16680 - 0x16680: 0xf0001a1a, 0x16681: 0xf0001a1a, 0x16682: 0xf0001a1a, 0x16683: 0xe00028f4, - 0x16684: 0xe0003703, 0x16685: 0xf0001a1a, 0x16686: 0xf0001a1a, 0x16687: 0xf0001a1a, - 0x16688: 0xf0001a1a, 0x16689: 0xe00028f7, 0x1668a: 0xe0003706, 0x1668b: 0xf0001a1a, - 0x1668c: 0xf0001a1a, 0x1668d: 0xf0001a1a, 0x1668e: 0xf0001a1a, 0x1668f: 0xe00028fd, - 0x16690: 0xe0003712, 0x16691: 0xf0001a1a, 0x16692: 0xf0001a1a, 0x16693: 0xe0002900, - 0x16694: 0xe0003724, 0x16695: 0xe000373c, 0x16696: 0xe0003742, 0x16697: 0xe0003748, - 0x16698: 0xe000375a, 0x16699: 0xe0002906, 0x1669a: 0xe0003769, 0x1669b: 0xf0001a1a, - 0x1669c: 0xf0001a1a, 0x1669d: 0xe0003733, 0x1669e: 0xe0000003, 0x1669f: 0xe0000006, - 0x166a0: 0xe0000009, 0x166a1: 0xe000000c, 0x166a2: 0xe000000f, 0x166a3: 0xe0000012, - 0x166a4: 0xe000156b, 0x166a5: 0xe000156e, 0x166a6: 0xe0001577, 0x166a7: 0xe000157d, - 0x166a8: 0xe00015aa, 0x166a9: 0xe00015b3, 0x166aa: 0xf0001919, 0x166ab: 0xf0001919, - 0x166ac: 0xf0001919, 0x166ad: 0xf0001919, 0x166ae: 0xe0002891, 0x166af: 0xe0003658, - 0x166b0: 0xf0001919, 0x166b1: 0xf0001919, 0x166b2: 0xf0001919, 0x166b3: 0xf0001919, - 0x166b4: 0xe0002897, 0x166b5: 0xe0003664, 0x166b6: 0xf0001919, 0x166b7: 0xf0001919, - 0x166b8: 0xf0001919, 0x166b9: 0xf0001919, 0x166ba: 0xe000289d, 0x166bb: 0xe000366d, - 0x166bc: 0xe00028df, 0x166bd: 0xe00036bb, 0x166be: 0xe00028e5, 0x166bf: 0xe00036c1, - // Block 0x59b, offset 0x166c0 - 0x166c0: 0xe00036c7, 0x166c1: 0xe00036e5, 0x166c2: 0xe00036f1, 0x166c3: 0xe00028eb, - 0x166c4: 0xe00036f7, 0x166c5: 0xf0001919, 0x166c6: 0xe00028f1, 0x166c7: 0xe0003700, - 0x166c8: 0xf0001919, 0x166c9: 0xf0001919, 0x166ca: 0xf0001919, 0x166cb: 0xf0001919, - 0x166cc: 0xf0001919, 0x166cd: 0xf0001919, 0x166ce: 0xe00028fa, 0x166cf: 0xe000370f, - 0x166d0: 0xe0003730, 0x166d1: 0xe000374b, 0x166d2: 0xe000374e, 0x166d3: 0xe0003757, - 0x166d4: 0xe000375d, 0x166d5: 0xe0002903, 0x166d6: 0xe0003766, 0x166d7: 0xe000155c, - 0x166d8: 0xe0001562, 0x166d9: 0xe0001568, 0x166da: 0xe0001571, 0x166db: 0xe0001580, - 0x166dc: 0xf0001717, 0x166dd: 0xf0001717, 0x166de: 0xf0001717, 0x166df: 0xf0001717, - 0x166e0: 0xf0001717, 0x166e1: 0xf0001717, 0x166e2: 0xf0001717, 0x166e3: 0xf0001717, - 0x166e4: 0xf0001717, 0x166e5: 0xf0001717, 0x166e6: 0xf0001717, 0x166e7: 0xf0001717, - 0x166e8: 0xf0001717, 0x166e9: 0xf0001717, 0x166ea: 0xf0001717, 0x166eb: 0xf0001717, - 0x166ec: 0xf0001717, 0x166ed: 0xf0001717, 0x166ee: 0xf0001717, 0x166ef: 0xf0001717, - 0x166f0: 0xf0001717, 0x166f1: 0xf0001717, 0x166f2: 0xf0001717, 0x166f3: 0xf0001717, - 0x166f4: 0xf0001717, 0x166f5: 0xf0001717, 0x166f6: 0xf0001717, 0x166f7: 0xf0001717, - 0x166f8: 0xf0001717, 0x166f9: 0xf0001717, 0x166fa: 0xf0001717, 0x166fb: 0xf0001717, - 0x166fc: 0xf0001717, 0x166fd: 0xf0001717, 0x166fe: 0xf0001717, 0x166ff: 0xf0001717, - // Block 0x59c, offset 0x16700 - 0x16700: 0xf0001717, 0x16701: 0xf0001717, 0x16702: 0xf0001717, 0x16703: 0xf0001717, - 0x16704: 0xe00036cd, 0x16705: 0xe00036d3, 0x16706: 0xe00036d9, 0x16707: 0xe00036df, - 0x16708: 0xe00036eb, 0x16709: 0xf0001717, 0x1670a: 0xf0001717, 0x1670b: 0xf0001717, - 0x1670c: 0xf0001717, 0x1670d: 0xf0001717, 0x1670e: 0xf0001717, 0x1670f: 0xf0001717, - 0x16710: 0xf0001717, 0x16711: 0xf0001717, 0x16712: 0xf0001717, 0x16713: 0xf0001717, - 0x16714: 0xf0001717, 0x16715: 0xf0001717, 0x16716: 0xf0001717, 0x16717: 0xf0001717, - 0x16718: 0xf0001717, 0x16719: 0xf0001717, 0x1671a: 0xe0003739, 0x1671b: 0xe000373f, - 0x1671c: 0xe0003745, 0x1671d: 0xe0003751, 0x1671e: 0xe0003760, 0x1671f: 0xe0001574, - 0x16720: 0xe0001583, 0x16721: 0xf0001818, 0x16722: 0xf0001818, 0x16723: 0xf0001818, - 0x16724: 0xf0001818, 0x16725: 0xf0001818, 0x16726: 0xf0001818, 0x16727: 0xf0001818, - 0x16728: 0xf0001818, 0x16729: 0xf0001818, 0x1672a: 0xf0001818, 0x1672b: 0xe00036e2, - 0x1672c: 0xe00036ee, 0x1672d: 0xf0001818, 0x1672e: 0xf0001818, 0x1672f: 0xf0001818, - 0x16730: 0xe0003754, 0x16731: 0xe0003763, 0x16732: 0xf0001818, 0x16733: 0xe0003646, - 0x16734: 0xe0003649, 0x16735: 0xe00028d0, 0x16736: 0xe00036ac, 0x16737: 0xe00028d6, - 0x16738: 0xe00036b2, 0x16739: 0xe00028dc, 0x1673a: 0xe00036b8, 0x1673b: 0xe00028b8, - 0x1673c: 0xe000368e, 0x1673d: 0xe00028be, 0x1673e: 0xe000369a, 0x1673f: 0xe00028ac, - // Block 0x59d, offset 0x16740 - 0x16740: 0xe000367c, 0x16741: 0xe00028a6, 0x16742: 0xe0003676, 0x16743: 0xe00028b2, - 0x16744: 0xe0003682, 0x16745: 0xe00028c4, 0x16746: 0xe00036a0, 0x16747: 0xe00028ca, - 0x16748: 0xe00036a6, 0x16749: 0xf0001a1a, 0x1674a: 0xf0001a1a, 0x1674b: 0xf0001a1a, - 0x1674c: 0xf0001a1a, 0x1674d: 0xf0001a1a, 0x1674e: 0xf0001a1a, 0x1674f: 0xf0001a1a, - 0x16750: 0xf0001a1a, 0x16751: 0xe00028cd, 0x16752: 0xe00036a9, 0x16753: 0xe00028d3, - 0x16754: 0xe00036af, 0x16755: 0xe00028d9, 0x16756: 0xe00036b5, 0x16757: 0xe00028b5, - 0x16758: 0xe000368b, 0x16759: 0xe00028bb, 0x1675a: 0xe0003697, 0x1675b: 0xe00028a9, - 0x1675c: 0xe0003679, 0x1675d: 0xe00028a3, 0x1675e: 0xe0003673, 0x1675f: 0xe00028af, - 0x16760: 0xe000367f, 0x16761: 0xe00028c1, 0x16762: 0xe000369d, 0x16763: 0xe00028c7, - 0x16764: 0xe00036a3, 0x16765: 0xf0001919, 0x16766: 0xf0001919, 0x16767: 0xf0001919, - 0x16768: 0xf0001919, 0x16769: 0xf0001919, 0x1676a: 0xf0001919, 0x1676b: 0xf0001919, - 0x1676c: 0xf0001919, 0x1676d: 0xf0001717, 0x1676e: 0xf0001717, 0x1676f: 0xf0001717, - 0x16770: 0xf0001717, 0x16771: 0xf0001717, 0x16772: 0xf0001717, 0x16773: 0xf0001717, - 0x16774: 0xf0001818, 0x16775: 0xf0001818, 0x16776: 0xf0001818, 0x16777: 0xf0001818, - 0x16778: 0xf0001818, 0x16779: 0xf0001818, 0x1677a: 0xf0001818, 0x1677b: 0xf0001818, - 0x1677c: 0xe000364c, 0x1677d: 0xe000364f, 0x1677e: 0x4004c020, 0x1677f: 0x4004c220, - // Block 0x59e, offset 0x16780 - 0x16780: 0xa0000000, 0x16781: 0xa0000000, 0x16782: 0xa0000000, 0x16783: 0xa0000000, - 0x16784: 0xa0000000, 0x16785: 0xa0000000, 0x16786: 0xa0000000, 0x16787: 0xa0000000, - 0x16788: 0xa0000000, 0x16789: 0x40020020, 0x1678a: 0x40020220, 0x1678b: 0x40020420, - 0x1678c: 0x40020620, 0x1678d: 0x40020820, 0x1678e: 0xa0000000, 0x1678f: 0xa0000000, - 0x16790: 0xa0000000, 0x16791: 0xa0000000, 0x16792: 0xa0000000, 0x16793: 0xa0000000, - 0x16794: 0xa0000000, 0x16795: 0xa0000000, 0x16796: 0xa0000000, 0x16797: 0xa0000000, - 0x16798: 0xa0000000, 0x16799: 0xa0000000, 0x1679a: 0xa0000000, 0x1679b: 0xa0000000, - 0x1679c: 0xa0000000, 0x1679d: 0xa0000000, 0x1679e: 0xa0000000, 0x1679f: 0xa0000000, - 0x167a0: 0x40021220, 0x167a1: 0x4002ba20, 0x167a2: 0x4003e020, 0x167a3: 0x4004ea20, - 0x167a4: 0x4027de20, 0x167a5: 0x4004ec20, 0x167a6: 0x4004e620, 0x167a7: 0x4003d220, - 0x167a8: 0x4003f420, 0x167a9: 0x4003f620, 0x167aa: 0x4004d820, 0x167ab: 0x40093820, - 0x167ac: 0x40024020, 0x167ad: 0x40021a20, 0x167ae: 0x4002e420, 0x167af: 0x4004e220, - 0x167b0: 0x4029cc20, 0x167b1: 0x4029ce20, 0x167b2: 0x4029d020, 0x167b3: 0x4029d220, - 0x167b4: 0x4029d420, 0x167b5: 0x4029d620, 0x167b6: 0x4029d820, 0x167b7: 0x4029da20, - 0x167b8: 0x4029dc20, 0x167b9: 0x4029de20, 0x167ba: 0x40026c20, 0x167bb: 0x40026220, - 0x167bc: 0x40094020, 0x167bd: 0x40094220, 0x167be: 0x40094420, 0x167bf: 0x4002c420, - // Block 0x59f, offset 0x167c0 - 0x167c0: 0x4004d620, 0x167c1: 0xce4a94d1, 0x167c2: 0x002c0a88, 0x167c3: 0x002c3a88, - 0x167c4: 0x002c6288, 0x167c5: 0x002c9888, 0x167c6: 0x002d0888, 0x167c7: 0x002d2288, - 0x167c8: 0x002d6888, 0x167c9: 0xc6042741, 0x167ca: 0x002dcc88, 0x167cb: 0x002dfe88, - 0x167cc: 0xc0030002, 0x167cd: 0x002e8288, 0x167ce: 0x002e9e88, 0x167cf: 0x002ee288, - 0x167d0: 0x002f2c88, 0x167d1: 0x002f5688, 0x167d2: 0x002f7a88, 0x167d3: 0xce509501, - 0x167d4: 0xce569501, 0x167d5: 0x00306c88, 0x167d6: 0x0030be88, 0x167d7: 0x0030e288, - 0x167d8: 0x0030f688, 0x167d9: 0x00310088, 0x167da: 0x00312a88, 0x167db: 0x4003f820, - 0x167dc: 0x4004e420, 0x167dd: 0x4003fa20, 0x167de: 0x40062420, 0x167df: 0x40021620, - 0x167e0: 0x40061e20, 0x167e1: 0xce4794d1, 0x167e2: 0x402c0a20, 0x167e3: 0x402c3a20, - 0x167e4: 0x402c6220, 0x167e5: 0x402c9820, 0x167e6: 0x402d0820, 0x167e7: 0x402d2220, - 0x167e8: 0x402d6820, 0x167e9: 0xc6022741, 0x167ea: 0x402dcc20, 0x167eb: 0x402dfe20, - 0x167ec: 0xc0000002, 0x167ed: 0x402e8220, 0x167ee: 0x402e9e20, 0x167ef: 0x402ee220, - 0x167f0: 0x402f2c20, 0x167f1: 0x402f5620, 0x167f2: 0x402f7a20, 0x167f3: 0xce4d9501, - 0x167f4: 0xce539501, 0x167f5: 0x40306c20, 0x167f6: 0x4030be20, 0x167f7: 0x4030e220, - 0x167f8: 0x4030f620, 0x167f9: 0x40310020, 0x167fa: 0x40312a20, 0x167fb: 0x4003fc20, - 0x167fc: 0x40094820, 0x167fd: 0x4003fe20, 0x167fe: 0x40094c20, 0x167ff: 0xa0000000, - // Block 0x5a0, offset 0x16800 - 0x16800: 0xe00008f5, 0x16801: 0xe00008ef, 0x16802: 0x002be283, 0x16803: 0xe0000969, - 0x16804: 0xe000095b, 0x16805: 0xe000094d, 0x16806: 0xe00009dd, 0x16807: 0xe0000a53, - 0x16808: 0xe0000ae8, 0x16809: 0xe0000ae2, 0x1680a: 0xe0000af4, 0x1680b: 0xe0000b20, - 0x1680c: 0xe0000c2b, 0x1680d: 0xe0000c25, 0x1680e: 0x002d9c83, 0x1680f: 0xe0000c43, - 0x16810: 0xe0000ab3, 0x16811: 0xe0000d63, 0x16812: 0xe0000d9a, 0x16813: 0xe0000d94, - 0x16814: 0xe0000da6, 0x16815: 0xe0000de6, 0x16816: 0xe0000dd2, 0x16817: 0x40093e20, - 0x16818: 0xe0000e12, 0x16819: 0xe0000fe1, 0x1681a: 0xe0000fdb, 0x1681b: 0xe0000fed, - 0x1681c: 0xe0000fff, 0x1681d: 0xe0001102, 0x1681e: 0x00318888, 0x1681f: 0xe0000f7b, - 0x16820: 0xe00008f2, 0x16821: 0xe00008ec, 0x16822: 0x402be220, 0x16823: 0xe0000966, - 0x16824: 0xe0000958, 0x16825: 0xe000094a, 0x16826: 0xe00009d5, 0x16827: 0xe0000a4d, - 0x16828: 0xe0000ae5, 0x16829: 0xe0000adf, 0x1682a: 0xe0000af1, 0x1682b: 0xe0000b1d, - 0x1682c: 0xe0000c28, 0x1682d: 0xe0000c22, 0x1682e: 0x402d9c20, 0x1682f: 0xe0000c40, - 0x16830: 0xe0000aad, 0x16831: 0xe0000d60, 0x16832: 0xe0000d97, 0x16833: 0xe0000d91, - 0x16834: 0xe0000da3, 0x16835: 0xe0000de3, 0x16836: 0xe0000dcf, 0x16837: 0x40093c20, - 0x16838: 0xe0000e0f, 0x16839: 0xe0000fde, 0x1683a: 0xe0000fd8, 0x1683b: 0xe0000fea, - 0x1683c: 0xe0000ffc, 0x1683d: 0xe00010ff, 0x1683e: 0x40318820, 0x1683f: 0xe0001114, - // Block 0x5a1, offset 0x16840 - 0x16840: 0xe0000983, 0x16841: 0xe0000980, 0x16842: 0x002be083, 0x16843: 0x402be020, - 0x16844: 0xe000097d, 0x16845: 0xe000097a, 0x16846: 0xe0000a38, 0x16847: 0xe0000a35, - 0x16848: 0xe0000a3e, 0x16849: 0xe0000a3b, 0x1684a: 0xe0000a4a, 0x1684b: 0xe0000a47, - 0x1684c: 0xe0000a44, 0x1684d: 0xe0000a41, 0x1684e: 0xe0000a86, 0x1684f: 0xe0000a83, - 0x16850: 0xe0000aaa, 0x16851: 0xe0000aa7, 0x16852: 0xe0000b46, 0x16853: 0xe0000b43, - 0x16854: 0xe0000aee, 0x16855: 0xe0000aeb, 0x16856: 0xe0000b2c, 0x16857: 0xe0000b29, - 0x16858: 0xe0000b40, 0x16859: 0xe0000b3d, 0x1685a: 0xe0000b1a, 0x1685b: 0xe0000b17, - 0x1685c: 0xe0000bb8, 0x1685d: 0xe0000bb5, 0x1685e: 0xe0000bb2, 0x1685f: 0xe0000baf, - 0x16860: 0xe0000bc4, 0x16861: 0xe0000bc1, 0x16862: 0xe0000bca, 0x16863: 0xe0000bc7, - 0x16864: 0xe0000bee, 0x16865: 0xe0000beb, 0x16866: 0xe0000c1b, 0x16867: 0xe0000c18, - 0x16868: 0xe0000c51, 0x16869: 0xe0000c4e, 0x1686a: 0xe0000c60, 0x1686b: 0xe0000c5d, - 0x1686c: 0xe0000c31, 0x1686d: 0xe0000c2e, 0x1686e: 0xe0000c5a, 0x1686f: 0xe0000c57, - 0x16870: 0xe0000c54, 0x16871: 0x402da220, 0x16872: 0xf0000a0a, 0x16873: 0xf0000404, - 0x16874: 0xe0000c8a, 0x16875: 0xe0000c87, 0x16876: 0xe0000c9f, 0x16877: 0xe0000c9c, - 0x16878: 0x402f7220, 0x16879: 0xe0000ccc, 0x1687a: 0xe0000cc9, 0x1687b: 0xe0000cd8, - 0x1687c: 0xe0000cd5, 0x1687d: 0xe0000cd2, 0x1687e: 0xe0000ccf, 0x1687f: 0xe0000d04, - // Block 0x5a2, offset 0x16880 - 0x16880: 0xe0000cfe, 0x16881: 0xe0000cf8, 0x16882: 0xe0000cf5, 0x16883: 0xe0000d51, - 0x16884: 0xe0000d4e, 0x16885: 0xe0000d6f, 0x16886: 0xe0000d6c, 0x16887: 0xe0000d5d, - 0x16888: 0xe0000d5a, 0x16889: 0xf0000404, 0x1688a: 0x002eda88, 0x1688b: 0x402eda20, - 0x1688c: 0xe0000e2e, 0x1688d: 0xe0000e2b, 0x1688e: 0xe0000da0, 0x1688f: 0xe0000d9d, - 0x16890: 0xe0000de0, 0x16891: 0xe0000ddd, 0x16892: 0xe0000e93, 0x16893: 0xe0000e8f, - 0x16894: 0xe0000eca, 0x16895: 0xe0000ec7, 0x16896: 0xe0000edc, 0x16897: 0xe0000ed9, - 0x16898: 0xe0000ed0, 0x16899: 0xe0000ecd, 0x1689a: 0xe0000f1f, 0x1689b: 0xe0000f1c, - 0x1689c: 0xe0000f2d, 0x1689d: 0xe0000f2a, 0x1689e: 0x002fe883, 0x1689f: 0x402fe820, - 0x168a0: 0xe0000f33, 0x168a1: 0xe0000f30, 0x168a2: 0x00302e83, 0x168a3: 0x40302e20, - 0x168a4: 0xe0000f8a, 0x168a5: 0xe0000f87, 0x168a6: 0x00303688, 0x168a7: 0x40303620, - 0x168a8: 0xe000102b, 0x168a9: 0xe0001028, 0x168aa: 0xe000103f, 0x168ab: 0xe000103c, - 0x168ac: 0xe0000fe7, 0x168ad: 0xe0000fe4, 0x168ae: 0xe0000ff9, 0x168af: 0xe0000ff6, - 0x168b0: 0xe0001025, 0x168b1: 0xe0001022, 0x168b2: 0xe0001039, 0x168b3: 0xe0001036, - 0x168b4: 0xe00010d8, 0x168b5: 0xe00010d5, 0x168b6: 0xe000110e, 0x168b7: 0xe000110b, - 0x168b8: 0xe0001117, 0x168b9: 0xe000113b, 0x168ba: 0xe0001138, 0x168bb: 0xe000114d, - 0x168bc: 0xe000114a, 0x168bd: 0xe0001147, 0x168be: 0xe0001144, 0x168bf: 0xe0000f64, - // Block 0x5a3, offset 0x168c0 - 0x168c0: 0xe000098f, 0x168c1: 0xe000098c, 0x168c2: 0xe0000995, 0x168c3: 0xe0000992, - 0x168c4: 0xe0000b62, 0x168c5: 0xe0000b5f, 0x168c6: 0xe0000b68, 0x168c7: 0xe0000b65, - 0x168c8: 0xe0000c6c, 0x168c9: 0xe0000c69, 0x168ca: 0xe0000c72, 0x168cb: 0xe0000c6f, - 0x168cc: 0xe0000e4a, 0x168cd: 0xe0000e47, 0x168ce: 0xe0000e50, 0x168cf: 0xe0000e4d, - 0x168d0: 0xe0000ee8, 0x168d1: 0xe0000ee5, 0x168d2: 0xe0000eee, 0x168d3: 0xe0000eeb, - 0x168d4: 0xe0001053, 0x168d5: 0xe0001050, 0x168d6: 0xe0001059, 0x168d7: 0xe0001056, - 0x168d8: 0x002fe883, 0x168d9: 0x402fe820, 0x168da: 0x00302e83, 0x168db: 0x40302e20, - 0x168dc: 0x00312288, 0x168dd: 0x40312220, 0x168de: 0xe0000bf4, 0x168df: 0xe0000bf1, - 0x168e0: 0x002ebc88, 0x168e1: 0x402c8c20, 0x168e2: 0x002f2288, 0x168e3: 0x402f2220, - 0x168e4: 0x00314088, 0x168e5: 0x40314020, 0x168e6: 0xe000096f, 0x168e7: 0xe000096c, - 0x168e8: 0xe0000b32, 0x168e9: 0xe0000b2f, 0x168ea: 0xe0000dd9, 0x168eb: 0xe0000dd5, - 0x168ec: 0xe0000dfd, 0x168ed: 0xe0000df9, 0x168ee: 0xe0000e04, 0x168ef: 0xe0000e01, - 0x168f0: 0xe0000e0b, 0x168f1: 0xe0000e07, 0x168f2: 0xe0001129, 0x168f3: 0xe0001126, - 0x168f4: 0x402e5e20, 0x168f5: 0x402ed020, 0x168f6: 0x40305a20, 0x168f7: 0x402dd420, - 0x168f8: 0xe0000abf, 0x168f9: 0xe0000ec4, 0x168fa: 0x002be888, 0x168fb: 0x002c4488, - 0x168fc: 0x402c4420, 0x168fd: 0x002e3888, 0x168fe: 0x00303e88, 0x168ff: 0x402ffc20, - // Block 0x5a4, offset 0x16900 - 0x16900: 0xe00010d2, 0x16901: 0xe00010cf, 0x16902: 0xe00010cc, 0x16903: 0xe00010c9, - 0x16904: 0xe00010e1, 0x16905: 0xe00010de, 0x16906: 0xe00010e7, 0x16907: 0xe00010e4, - 0x16908: 0xe00010ed, 0x16909: 0xe00010ea, 0x1690a: 0xe00010fc, 0x1690b: 0xe00010f9, - 0x1690c: 0xe00010f6, 0x1690d: 0xe00010f3, 0x1690e: 0xe0001123, 0x1690f: 0xe0001120, - 0x16910: 0xe0001141, 0x16911: 0xe000113e, 0x16912: 0xe0001153, 0x16913: 0xe0001150, - 0x16914: 0xe0001159, 0x16915: 0xe0001156, 0x16916: 0xe0000c15, 0x16917: 0xe0000f8d, - 0x16918: 0xe00010db, 0x16919: 0xe0001111, 0x1691a: 0xf0000404, 0x1691b: 0xe0000f70, - 0x1691c: 0x40300420, 0x1691d: 0x40300620, 0x1691e: 0xe0000f7f, 0x1691f: 0x402c9620, - 0x16920: 0xe000099b, 0x16921: 0xe0000998, 0x16922: 0xe0000989, 0x16923: 0xe0000986, - 0x16924: 0xe00038c6, 0x16925: 0xe00038c3, 0x16926: 0xe00038cc, 0x16927: 0xe00038c9, - 0x16928: 0xe0003907, 0x16929: 0xe0003904, 0x1692a: 0xe00038f2, 0x1692b: 0xe00038ef, - 0x1692c: 0xe0003919, 0x1692d: 0xe0003916, 0x1692e: 0xe0003820, 0x1692f: 0xe000381d, - 0x16930: 0xe0003826, 0x16931: 0xe0003823, 0x16932: 0xe000389a, 0x16933: 0xe0003897, - 0x16934: 0xe0003864, 0x16935: 0xe0003861, 0x16936: 0xe00038ac, 0x16937: 0xe00038a9, - 0x16938: 0xe0000b6e, 0x16939: 0xe0000b6b, 0x1693a: 0xe0000b5c, 0x1693b: 0xe0000b59, - 0x1693c: 0xe0000b26, 0x1693d: 0xe0000b23, 0x1693e: 0xe0000afb, 0x1693f: 0xe0000af7, - // Block 0x5a5, offset 0x16940 - 0x16940: 0xa0000000, 0x16941: 0xa0000000, 0x16942: 0xa0000000, 0x16943: 0xa0000000, - 0x16944: 0xa0000000, 0x16945: 0xa0000000, 0x16946: 0xa0000000, 0x16947: 0xa0000000, - 0x16948: 0xa0000000, 0x16949: 0x40020020, 0x1694a: 0x40020220, 0x1694b: 0x40020420, - 0x1694c: 0x40020620, 0x1694d: 0x40020820, 0x1694e: 0xa0000000, 0x1694f: 0xa0000000, - 0x16950: 0xa0000000, 0x16951: 0xa0000000, 0x16952: 0xa0000000, 0x16953: 0xa0000000, - 0x16954: 0xa0000000, 0x16955: 0xa0000000, 0x16956: 0xa0000000, 0x16957: 0xa0000000, - 0x16958: 0xa0000000, 0x16959: 0xa0000000, 0x1695a: 0xa0000000, 0x1695b: 0xa0000000, - 0x1695c: 0xa0000000, 0x1695d: 0xa0000000, 0x1695e: 0xa0000000, 0x1695f: 0xa0000000, - 0x16960: 0x40021220, 0x16961: 0x4002ba20, 0x16962: 0x4003e020, 0x16963: 0x4004ea20, - 0x16964: 0x4027de20, 0x16965: 0x4004ec20, 0x16966: 0x4004e620, 0x16967: 0x4003d220, - 0x16968: 0x4003f420, 0x16969: 0x4003f620, 0x1696a: 0x4004d820, 0x1696b: 0x40093820, - 0x1696c: 0x40024020, 0x1696d: 0x40021a20, 0x1696e: 0x4002e420, 0x1696f: 0x4004e220, - 0x16970: 0x4029cc20, 0x16971: 0x4029ce20, 0x16972: 0x4029d020, 0x16973: 0x4029d220, - 0x16974: 0x4029d420, 0x16975: 0x4029d620, 0x16976: 0x4029d820, 0x16977: 0x4029da20, - 0x16978: 0x4029dc20, 0x16979: 0x4029de20, 0x1697a: 0x40026c20, 0x1697b: 0x40026220, - 0x1697c: 0x40094020, 0x1697d: 0x40094220, 0x1697e: 0x40094420, 0x1697f: 0x4002c420, - // Block 0x5a6, offset 0x16980 - 0x16980: 0x4004d620, 0x16981: 0xce5f9521, 0x16982: 0x002c0a88, 0x16983: 0xce670991, - 0x16984: 0x002c6288, 0x16985: 0x002c9888, 0x16986: 0x002d0888, 0x16987: 0xce6f0991, - 0x16988: 0x002d6888, 0x16989: 0x002d9a88, 0x1698a: 0x002dcc88, 0x1698b: 0xcabc0991, - 0x1698c: 0xc0030002, 0x1698d: 0x002e8288, 0x1698e: 0xce749571, 0x1698f: 0xce8195a1, - 0x16990: 0x002f2c88, 0x16991: 0x002f5688, 0x16992: 0x002f7a88, 0x16993: 0xcad00991, - 0x16994: 0x00302c88, 0x16995: 0xc3900b21, 0x16996: 0x0030be88, 0x16997: 0x0030e288, - 0x16998: 0x0030f688, 0x16999: 0x00310088, 0x1699a: 0xce790991, 0x1699b: 0x4003f820, - 0x1699c: 0x4004e420, 0x1699d: 0x4003fa20, 0x1699e: 0x40062420, 0x1699f: 0x40021620, - 0x169a0: 0x40061e20, 0x169a1: 0xce599521, 0x169a2: 0x402c0a20, 0x169a3: 0xce650991, - 0x169a4: 0x402c6220, 0x169a5: 0x402c9820, 0x169a6: 0x402d0820, 0x169a7: 0xce6d0991, - 0x169a8: 0x402d6820, 0x169a9: 0x402d9a20, 0x169aa: 0x402dcc20, 0x169ab: 0xcaba0991, - 0x169ac: 0xc0000002, 0x169ad: 0x402e8220, 0x169ae: 0xce719571, 0x169af: 0xce7b95a1, - 0x169b0: 0x402f2c20, 0x169b1: 0x402f5620, 0x169b2: 0x402f7a20, 0x169b3: 0xcace0991, - 0x169b4: 0x40302c20, 0x169b5: 0xc38d0b21, 0x169b6: 0x4030be20, 0x169b7: 0x4030e220, - 0x169b8: 0x4030f620, 0x169b9: 0x40310020, 0x169ba: 0xce770991, 0x169bb: 0x4003fc20, - 0x169bc: 0x40094820, 0x169bd: 0x4003fe20, 0x169be: 0x40094c20, 0x169bf: 0xa0000000, - // Block 0x5a7, offset 0x169c0 - 0x169c0: 0xe00008f5, 0x169c1: 0x002c0883, 0x169c2: 0xe0000921, 0x169c3: 0x00320ea3, - 0x169c4: 0x00320e83, 0x169c5: 0x00320c83, 0x169c6: 0x00320a83, 0x169c7: 0xe0000a53, - 0x169c8: 0xe0000ae8, 0x169c9: 0xe0000ae2, 0x169ca: 0xe0000af4, 0x169cb: 0xe0000b20, - 0x169cc: 0xe0000c2b, 0x169cd: 0xe0000c25, 0x169ce: 0xe0000c37, 0x169cf: 0xe0000c43, - 0x169d0: 0x002c96a3, 0x169d1: 0x002ee0c3, 0x169d2: 0xe0000d9a, 0x169d3: 0xe0000d94, - 0x169d4: 0x003210e3, 0x169d5: 0x003210c3, 0x169d6: 0x00321083, 0x169d7: 0x40093e20, - 0x169d8: 0x00320883, 0x169d9: 0xe0000fe1, 0x169da: 0xe0000fdb, 0x169db: 0xe0000fed, - 0x169dc: 0x003100a3, 0x169dd: 0xe0001102, 0x169de: 0x00306aa3, 0x169df: 0xe0000f7b, - 0x169e0: 0xe00008f2, 0x169e1: 0x402c0820, 0x169e2: 0xe000091e, 0x169e3: 0x40320e21, - 0x169e4: 0x40320e20, 0x169e5: 0x40320c20, 0x169e6: 0x40320a20, 0x169e7: 0xe0000a4d, - 0x169e8: 0xe0000ae5, 0x169e9: 0xe0000adf, 0x169ea: 0xe0000af1, 0x169eb: 0xe0000b1d, - 0x169ec: 0xe0000c28, 0x169ed: 0xe0000c22, 0x169ee: 0xe0000c34, 0x169ef: 0xe0000c40, - 0x169f0: 0x402c9621, 0x169f1: 0x402ee022, 0x169f2: 0xe0000d97, 0x169f3: 0xe0000d91, - 0x169f4: 0x40321023, 0x169f5: 0x40321022, 0x169f6: 0x40321020, 0x169f7: 0x40093c20, - 0x169f8: 0x40320820, 0x169f9: 0xe0000fde, 0x169fa: 0xe0000fd8, 0x169fb: 0xe0000fea, - 0x169fc: 0x40310021, 0x169fd: 0xe00010ff, 0x169fe: 0x40306a21, 0x169ff: 0xe0001114, - // Block 0x5a8, offset 0x16a00 - 0x16a00: 0xe0000983, 0x16a01: 0xe0000980, 0x16a02: 0xe00008fb, 0x16a03: 0xe00008f8, - 0x16a04: 0xe000097d, 0x16a05: 0xe000097a, 0x16a06: 0xe0000a38, 0x16a07: 0xe0000a35, - 0x16a08: 0xe0000a3e, 0x16a09: 0xe0000a3b, 0x16a0a: 0xe0000a4a, 0x16a0b: 0xe0000a47, - 0x16a0c: 0x002c5c83, 0x16a0d: 0x402c5c20, 0x16a0e: 0xe0000a86, 0x16a0f: 0xe0000a83, - 0x16a10: 0x002c9683, 0x16a11: 0x402c9620, 0x16a12: 0xe0000b46, 0x16a13: 0xe0000b43, - 0x16a14: 0xe0000aee, 0x16a15: 0xe0000aeb, 0x16a16: 0xe0000b2c, 0x16a17: 0xe0000b29, - 0x16a18: 0xe0000b40, 0x16a19: 0xe0000b3d, 0x16a1a: 0xe0000b1a, 0x16a1b: 0xe0000b17, - 0x16a1c: 0xe0000bb8, 0x16a1d: 0xe0000bb5, 0x16a1e: 0xe0000bb2, 0x16a1f: 0xe0000baf, - 0x16a20: 0xe0000bc4, 0x16a21: 0xe0000bc1, 0x16a22: 0xe0000bca, 0x16a23: 0xe0000bc7, - 0x16a24: 0xe0000bee, 0x16a25: 0xe0000beb, 0x16a26: 0xe0000c1b, 0x16a27: 0xe0000c18, - 0x16a28: 0xe0000c51, 0x16a29: 0xe0000c4e, 0x16a2a: 0xe0000c60, 0x16a2b: 0xe0000c5d, - 0x16a2c: 0xe0000c31, 0x16a2d: 0xe0000c2e, 0x16a2e: 0xe0000c5a, 0x16a2f: 0xe0000c57, - 0x16a30: 0xe0000c54, 0x16a31: 0x402da220, 0x16a32: 0xf0000a0a, 0x16a33: 0xf0000404, - 0x16a34: 0xe0000c8a, 0x16a35: 0xe0000c87, 0x16a36: 0xe0000c9f, 0x16a37: 0xe0000c9c, - 0x16a38: 0x402f7220, 0x16a39: 0xe0000ccc, 0x16a3a: 0xe0000cc9, 0x16a3b: 0xe0000cd8, - 0x16a3c: 0xe0000cd5, 0x16a3d: 0xe0000cd2, 0x16a3e: 0xe0000ccf, 0x16a3f: 0xe0000d04, - // Block 0x5a9, offset 0x16a40 - 0x16a40: 0xe0000cfe, 0x16a41: 0xe0000cf8, 0x16a42: 0xe0000cf5, 0x16a43: 0x002ee0a3, - 0x16a44: 0x402ee021, 0x16a45: 0xe0000d6f, 0x16a46: 0xe0000d6c, 0x16a47: 0xe0000d5d, - 0x16a48: 0xe0000d5a, 0x16a49: 0xf0000404, 0x16a4a: 0x002ee083, 0x16a4b: 0x402ee020, - 0x16a4c: 0xe0000e2e, 0x16a4d: 0xe0000e2b, 0x16a4e: 0xe0000da0, 0x16a4f: 0xe0000d9d, - 0x16a50: 0x003210a3, 0x16a51: 0x40321021, 0x16a52: 0x003208a3, 0x16a53: 0x40320821, - 0x16a54: 0xe0000eca, 0x16a55: 0xe0000ec7, 0x16a56: 0xe0000edc, 0x16a57: 0xe0000ed9, - 0x16a58: 0xe0000ed0, 0x16a59: 0xe0000ecd, 0x16a5a: 0xe0000f1f, 0x16a5b: 0xe0000f1c, - 0x16a5c: 0xe0000f2d, 0x16a5d: 0xe0000f2a, 0x16a5e: 0xe0000f47, 0x16a5f: 0xe0000f44, - 0x16a60: 0x00302a83, 0x16a61: 0x40302a20, 0x16a62: 0xe0000f99, 0x16a63: 0xe0000f96, - 0x16a64: 0xe0000f8a, 0x16a65: 0xe0000f87, 0x16a66: 0x00306a83, 0x16a67: 0x40306a20, - 0x16a68: 0xe000102b, 0x16a69: 0xe0001028, 0x16a6a: 0xe000103f, 0x16a6b: 0xe000103c, - 0x16a6c: 0xe0000fe7, 0x16a6d: 0xe0000fe4, 0x16a6e: 0xe0000ff9, 0x16a6f: 0xe0000ff6, - 0x16a70: 0x003100c3, 0x16a71: 0x40310022, 0x16a72: 0xe0001039, 0x16a73: 0xe0001036, - 0x16a74: 0xe00010d8, 0x16a75: 0xe00010d5, 0x16a76: 0xe000110e, 0x16a77: 0xe000110b, - 0x16a78: 0xe0001117, 0x16a79: 0xe000113b, 0x16a7a: 0xe0001138, 0x16a7b: 0xe000114d, - 0x16a7c: 0xe000114a, 0x16a7d: 0x00320683, 0x16a7e: 0x40320620, 0x16a7f: 0xe0000f64, - // Block 0x5aa, offset 0x16a80 - 0x16a80: 0x402c1a20, 0x16a81: 0x002c2a88, 0x16a82: 0x002c3288, 0x16a83: 0x402c3220, - 0x16a84: 0x0031c488, 0x16a85: 0x4031c420, 0x16a86: 0x002efa88, 0x16a87: 0x002c4e88, - 0x16a88: 0x402c4e20, 0x16a89: 0x002c7288, 0x16a8a: 0x002c7a88, 0x16a8b: 0x002c8488, - 0x16a8c: 0x402c8420, 0x16a8d: 0xe000115c, 0x16a8e: 0x002cae88, 0x16a8f: 0x002cb888, - 0x16a90: 0x002cc288, 0x16a91: 0x002d1688, 0x16a92: 0x402d1620, 0x16a93: 0x002d4488, - 0x16a94: 0x002d5888, 0x16a95: 0x402d7820, 0x16a96: 0x002dc288, 0x16a97: 0x002db688, - 0x16a98: 0x002e0a88, 0x16a99: 0x402e0a20, 0x16a9a: 0x402e3820, 0x16a9b: 0x402e7220, - 0x16a9c: 0x0030a088, 0x16a9d: 0x002eb488, 0x16a9e: 0x402ebc20, 0x16a9f: 0x002f1088, - 0x16aa0: 0xe0000e56, 0x16aa1: 0xe0000e53, 0x16aa2: 0x002d6088, 0x16aa3: 0x402d6020, - 0x16aa4: 0x002f3e88, 0x16aa5: 0x402f3e20, 0x16aa6: 0x002f8288, 0x16aa7: 0x0031b488, - 0x16aa8: 0x4031b420, 0x16aa9: 0x00300888, 0x16aaa: 0x40301220, 0x16aab: 0x40304220, - 0x16aac: 0x00304a88, 0x16aad: 0x40304a20, 0x16aae: 0x00305288, 0x16aaf: 0xe000105f, - 0x16ab0: 0xe000105c, 0x16ab1: 0x0030b488, 0x16ab2: 0x0030cc88, 0x16ab3: 0x00311888, - 0x16ab4: 0x40311820, 0x16ab5: 0x00313488, 0x16ab6: 0x40313420, 0x16ab7: 0xce6b0991, - 0x16ab8: 0x00316e88, 0x16ab9: 0x40316e20, 0x16aba: 0x40317820, 0x16abb: 0x4031a620, - 0x16abc: 0x0031bc88, 0x16abd: 0x4031bc20, 0x16abe: 0xe0000fc9, 0x16abf: 0x40319420, - // Block 0x5ab, offset 0x16ac0 - 0x16ac0: 0x40321220, 0x16ac1: 0x40321a20, 0x16ac2: 0x40322220, 0x16ac3: 0x40322a20, - 0x16ac4: 0xe0000ad5, 0x16ac5: 0xe0000ad1, 0x16ac6: 0xe0000acd, 0x16ac7: 0xf0000a0a, - 0x16ac8: 0xf000040a, 0x16ac9: 0xf0000404, 0x16aca: 0xf0000a0a, 0x16acb: 0xf000040a, - 0x16acc: 0xf0000404, 0x16acd: 0xe0000947, 0x16ace: 0xe0000944, 0x16acf: 0xe0000c3d, - 0x16ad0: 0xe0000c3a, 0x16ad1: 0xe0000dcc, 0x16ad2: 0xe0000dc9, 0x16ad3: 0xe0000ff3, - 0x16ad4: 0xe0000ff0, 0x16ad5: 0xe000298b, 0x16ad6: 0xe0002988, 0x16ad7: 0xe0002979, - 0x16ad8: 0xe0002976, 0x16ad9: 0xe0002985, 0x16ada: 0xe0002982, 0x16adb: 0xe000297f, - 0x16adc: 0xe000297c, 0x16add: 0x402cae20, 0x16ade: 0xe000379e, 0x16adf: 0xe000379b, - 0x16ae0: 0xe000299d, 0x16ae1: 0xe000299a, 0x16ae2: 0xe000ad30, 0x16ae3: 0xe000ad2d, - 0x16ae4: 0x002d6683, 0x16ae5: 0x402d6620, 0x16ae6: 0x002d6483, 0x16ae7: 0x402d6420, - 0x16ae8: 0x002e2083, 0x16ae9: 0x402e2020, 0x16aea: 0x00321103, 0x16aeb: 0x40321024, - 0x16aec: 0xe000ad78, 0x16aed: 0xe000ad75, 0x16aee: 0x002c6083, 0x16aef: 0x402c6020, - 0x16af0: 0xe0000c8d, 0x16af1: 0xf0000a0a, 0x16af2: 0xf000040a, 0x16af3: 0xf0000404, - 0x16af4: 0xe0000bac, 0x16af5: 0xe0000ba9, 0x16af6: 0x002d7888, 0x16af7: 0x00319488, - 0x16af8: 0xe0000d57, 0x16af9: 0xe0000d54, 0x16afa: 0xe0002991, 0x16afb: 0xe000298e, - 0x16afc: 0xe000ad2a, 0x16afd: 0xe000ad27, 0x16afe: 0xe000ad24, 0x16aff: 0xe000ad21, - // Block 0x5ac, offset 0x16b00 - 0x16b00: 0xe000098f, 0x16b01: 0xe000098c, 0x16b02: 0xe0000995, 0x16b03: 0xe0000992, - 0x16b04: 0xe0000b62, 0x16b05: 0xe0000b5f, 0x16b06: 0xe0000b68, 0x16b07: 0xe0000b65, - 0x16b08: 0xe0000c6c, 0x16b09: 0xe0000c69, 0x16b0a: 0xe0000c72, 0x16b0b: 0xe0000c6f, - 0x16b0c: 0xe0000e4a, 0x16b0d: 0xe0000e47, 0x16b0e: 0xe0000e50, 0x16b0f: 0xe0000e4d, - 0x16b10: 0xe0000ee8, 0x16b11: 0xe0000ee5, 0x16b12: 0xe0000eee, 0x16b13: 0xe0000eeb, - 0x16b14: 0xe0001053, 0x16b15: 0xe0001050, 0x16b16: 0xe0001059, 0x16b17: 0xe0001056, - 0x16b18: 0xe0000f61, 0x16b19: 0xe0000f5e, 0x16b1a: 0xe0000fa5, 0x16b1b: 0xe0000fa2, - 0x16b1c: 0x00312288, 0x16b1d: 0x40312220, 0x16b1e: 0xe0000bf4, 0x16b1f: 0xe0000bf1, - 0x16b20: 0x002ebc88, 0x16b21: 0x402c8c20, 0x16b22: 0x002f2288, 0x16b23: 0x402f2220, - 0x16b24: 0x00314088, 0x16b25: 0x40314020, 0x16b26: 0x00320ca3, 0x16b27: 0x40320c21, - 0x16b28: 0xe0000b32, 0x16b29: 0xe0000b2f, 0x16b2a: 0xe00037b0, 0x16b2b: 0xe00037ad, - 0x16b2c: 0xe000ad4e, 0x16b2d: 0xe000ad4b, 0x16b2e: 0xe0000e04, 0x16b2f: 0xe0000e01, - 0x16b30: 0xe0000e0b, 0x16b31: 0xe0000e07, 0x16b32: 0xe0001129, 0x16b33: 0xe0001126, - 0x16b34: 0x402e5e20, 0x16b35: 0x402ed020, 0x16b36: 0x40305a20, 0x16b37: 0x402dd420, - 0x16b38: 0xe0000abf, 0x16b39: 0xe0000ec4, 0x16b3a: 0x002be888, 0x16b3b: 0x002c4488, - 0x16b3c: 0x402c4420, 0x16b3d: 0x002e3888, 0x16b3e: 0x00303e88, 0x16b3f: 0x402ffc20, - // Block 0x5ad, offset 0x16b40 - 0x16b40: 0x402f8220, 0x16b41: 0x402fd820, 0x16b42: 0x402ff420, 0x16b43: 0x40300820, - 0x16b44: 0x402df620, 0x16b45: 0x40301a20, 0x16b46: 0x40302420, 0x16b47: 0x40306420, - 0x16b48: 0x40305220, 0x16b49: 0x40307c20, 0x16b4a: 0x4030b420, 0x16b4b: 0x4030cc20, - 0x16b4c: 0x4030da20, 0x16b4d: 0x4030ee20, 0x16b4e: 0x402e7a20, 0x16b4f: 0x40310820, - 0x16b50: 0x40314820, 0x16b51: 0x40315020, 0x16b52: 0xce690991, 0x16b53: 0x40318020, - 0x16b54: 0x4031cc20, 0x16b55: 0x4031e820, 0x16b56: 0x40320a20, 0x16b57: 0x40323220, - 0x16b58: 0x40323a20, 0x16b59: 0x402c1220, 0x16b5a: 0x402cf820, 0x16b5b: 0x402d4c20, - 0x16b5c: 0x402d7020, 0x16b5d: 0x402de620, 0x16b5e: 0x402e1a20, 0x16b5f: 0x402e2a20, - 0x16b60: 0x402f6220, 0x16b61: 0x4031fa20, 0x16b62: 0x40320220, 0x16b63: 0xe0000aca, - 0x16b64: 0xe0000adc, 0x16b65: 0xe0000ad9, 0x16b66: 0xe0000fcc, 0x16b67: 0xe0000fcf, - 0x16b68: 0xe0000fba, 0x16b69: 0xe0000ba1, 0x16b6a: 0xe0000d11, 0x16b6b: 0xe0000d18, - 0x16b6c: 0x40324220, 0x16b6d: 0x40324a20, 0x16b6e: 0x40309020, 0x16b6f: 0x40309820, - 0x16b70: 0x002d6894, 0x16b71: 0x002d8094, 0x16b72: 0x002dcc94, 0x16b73: 0x002f7a94, - 0x16b74: 0x002f9894, 0x16b75: 0x002fac94, 0x16b76: 0x002fd894, 0x16b77: 0x0030e294, - 0x16b78: 0x00310094, 0x16b79: 0x40064020, 0x16b7a: 0x40064420, 0x16b7b: 0x402d9620, - 0x16b7c: 0x4031de20, 0x16b7d: 0x402d9820, 0x16b7e: 0x4031e220, 0x16b7f: 0x4031f020, - // Block 0x5ae, offset 0x16b80 - 0x16b80: 0xe0000d24, 0x16b81: 0xe0000d21, 0x16b82: 0xe0000d2a, 0x16b83: 0xe0000d27, - 0x16b84: 0xe0000d69, 0x16b85: 0xe0000d66, 0x16b86: 0xe0000d7b, 0x16b87: 0xe0000d78, - 0x16b88: 0xe0000d87, 0x16b89: 0xe0000d84, 0x16b8a: 0xe0000d81, 0x16b8b: 0xe0000d7e, - 0x16b8c: 0xe000ad42, 0x16b8d: 0xe000ad3f, 0x16b8e: 0xe000ad48, 0x16b8f: 0xe000ad45, - 0x16b90: 0xe0000e3d, 0x16b91: 0xe0000e39, 0x16b92: 0xe0000e35, 0x16b93: 0xe0000e31, - 0x16b94: 0xe0000ea7, 0x16b95: 0xe0000ea4, 0x16b96: 0xe0000ead, 0x16b97: 0xe0000eaa, - 0x16b98: 0xe0000ed6, 0x16b99: 0xe0000ed3, 0x16b9a: 0xe0000ef4, 0x16b9b: 0xe0000ef1, - 0x16b9c: 0xe0000efb, 0x16b9d: 0xe0000ef7, 0x16b9e: 0xe0000f02, 0x16b9f: 0xe0000eff, - 0x16ba0: 0xe0000f41, 0x16ba1: 0xe0000f3e, 0x16ba2: 0xe0000f53, 0x16ba3: 0xe0000f50, - 0x16ba4: 0xe0000f26, 0x16ba5: 0xe0000f22, 0x16ba6: 0xe000a96b, 0x16ba7: 0xe000a968, - 0x16ba8: 0xe0000f5a, 0x16ba9: 0xe0000f56, 0x16baa: 0xe0000f93, 0x16bab: 0xe0000f90, - 0x16bac: 0xe0000f9f, 0x16bad: 0xe0000f9c, 0x16bae: 0xe0000fb1, 0x16baf: 0xe0000fae, - 0x16bb0: 0xe0000fab, 0x16bb1: 0xe0000fa8, 0x16bb2: 0xe0001093, 0x16bb3: 0xe0001090, - 0x16bb4: 0xe000109f, 0x16bb5: 0xe000109c, 0x16bb6: 0xe0001099, 0x16bb7: 0xe0001096, - 0x16bb8: 0xe0001032, 0x16bb9: 0xe000102e, 0x16bba: 0xe000298b, 0x16bbb: 0xe0002988, - 0x16bbc: 0xe00010a9, 0x16bbd: 0xe00010a6, 0x16bbe: 0xe00010af, 0x16bbf: 0xe00010ac, - // Block 0x5af, offset 0x16bc0 - 0x16bc0: 0xe00010d2, 0x16bc1: 0xe00010cf, 0x16bc2: 0xe00010cc, 0x16bc3: 0xe00010c9, - 0x16bc4: 0xe00010e1, 0x16bc5: 0xe00010de, 0x16bc6: 0xe00010e7, 0x16bc7: 0xe00010e4, - 0x16bc8: 0xe00010ed, 0x16bc9: 0xe00010ea, 0x16bca: 0xe00010fc, 0x16bcb: 0xe00010f9, - 0x16bcc: 0xe00010f6, 0x16bcd: 0xe00010f3, 0x16bce: 0xe0001123, 0x16bcf: 0xe0001120, - 0x16bd0: 0xe0001141, 0x16bd1: 0xe000113e, 0x16bd2: 0xe0001153, 0x16bd3: 0xe0001150, - 0x16bd4: 0xe0001159, 0x16bd5: 0xe0001156, 0x16bd6: 0xe0000c15, 0x16bd7: 0xe0000f8d, - 0x16bd8: 0xe00010db, 0x16bd9: 0xe0001111, 0x16bda: 0xf0000404, 0x16bdb: 0xe0000f70, - 0x16bdc: 0x40300420, 0x16bdd: 0x40300620, 0x16bde: 0xe0000f7f, 0x16bdf: 0x402c9620, - 0x16be0: 0xe000099b, 0x16be1: 0xe0000998, 0x16be2: 0xe0000989, 0x16be3: 0xe0000986, - 0x16be4: 0xe0003c40, 0x16be5: 0xe0003c3d, 0x16be6: 0xe0000930, 0x16be7: 0xe000092c, - 0x16be8: 0xe0000940, 0x16be9: 0xe000093c, 0x16bea: 0xe000ad3c, 0x16beb: 0xe000ad39, - 0x16bec: 0xe00009aa, 0x16bed: 0xe00009a6, 0x16bee: 0xe0003c3a, 0x16bef: 0xe0003c37, - 0x16bf0: 0xe000090a, 0x16bf1: 0xe0000906, 0x16bf2: 0xe000091a, 0x16bf3: 0xe0000916, - 0x16bf4: 0xe000ad36, 0x16bf5: 0xe000ad33, 0x16bf6: 0xe00009a2, 0x16bf7: 0xe000099e, - 0x16bf8: 0xe0000b6e, 0x16bf9: 0xe0000b6b, 0x16bfa: 0xe0000b5c, 0x16bfb: 0xe0000b59, - 0x16bfc: 0xe0000b26, 0x16bfd: 0xe0000b23, 0x16bfe: 0xe0000afb, 0x16bff: 0xe0000af7, - // Block 0x5b0, offset 0x16c00 - 0x16c00: 0xe0000b03, 0x16c01: 0xe0000aff, 0x16c02: 0xe0000b13, 0x16c03: 0xe0000b0f, - 0x16c04: 0xe0000b0b, 0x16c05: 0xe0000b07, 0x16c06: 0xe0000b75, 0x16c07: 0xe0000b71, - 0x16c08: 0xe0000c66, 0x16c09: 0xe0000c63, 0x16c0a: 0xe0000c78, 0x16c0b: 0xe0000c75, - 0x16c0c: 0xe0000e84, 0x16c0d: 0xe0000e81, 0x16c0e: 0xe0000e44, 0x16c0f: 0xe0000e41, - 0x16c10: 0xe000ad5a, 0x16c11: 0xe000ad57, 0x16c12: 0xe000ad60, 0x16c13: 0xe000ad5d, - 0x16c14: 0xe000ad6c, 0x16c15: 0xe000ad69, 0x16c16: 0xe000ad66, 0x16c17: 0xe000ad63, - 0x16c18: 0xe000ad72, 0x16c19: 0xe000ad6f, 0x16c1a: 0xe0000e5d, 0x16c1b: 0xe0000e59, - 0x16c1c: 0xe0000e65, 0x16c1d: 0xe0000e61, 0x16c1e: 0xe0000e75, 0x16c1f: 0xe0000e71, - 0x16c20: 0xe000ad54, 0x16c21: 0xe000ad51, 0x16c22: 0xe0000e7d, 0x16c23: 0xe0000e79, - 0x16c24: 0xe000108d, 0x16c25: 0xe000108a, 0x16c26: 0xe000104d, 0x16c27: 0xe000104a, - 0x16c28: 0xe0001066, 0x16c29: 0xe0001062, 0x16c2a: 0xe000106e, 0x16c2b: 0xe000106a, - 0x16c2c: 0xe000107e, 0x16c2d: 0xe000107a, 0x16c2e: 0xe0001076, 0x16c2f: 0xe0001072, - 0x16c30: 0xe0001086, 0x16c31: 0xe0001082, 0x16c32: 0xe0001108, 0x16c33: 0xe0001105, - 0x16c34: 0xe0001135, 0x16c35: 0xe0001132, 0x16c36: 0xe000112f, 0x16c37: 0xe000112c, - 0x16c38: 0xe000111d, 0x16c39: 0xe000111a, 0x16c3a: 0xe0000d0a, 0x16c3b: 0xe0000d07, - 0x16c3c: 0x0030d888, 0x16c3d: 0x4030d820, 0x16c3e: 0x00312088, 0x16c3f: 0x40312020, - // Block 0x5b1, offset 0x16c40 - 0x16c42: 0x4044b620, 0x16c43: 0x4044b820, - 0x16c45: 0x40449220, 0x16c46: 0x40449420, 0x16c47: 0x40449620, - 0x16c48: 0x40449820, 0x16c49: 0x40449a20, 0x16c4a: 0x40449c20, 0x16c4b: 0x40449e20, - 0x16c4c: 0x4044a020, 0x16c4d: 0x4044a220, 0x16c4e: 0x4044a420, 0x16c4f: 0x4044a620, - 0x16c50: 0x4044a820, 0x16c51: 0x4044aa20, 0x16c52: 0x4044ac20, 0x16c53: 0x4044ae20, - 0x16c54: 0x4044b020, 0x16c55: 0x4044b220, 0x16c56: 0x4044b420, - 0x16c5a: 0x4044b620, 0x16c5b: 0x4044b820, - 0x16c5c: 0x4044ba20, 0x16c5d: 0x4044bc20, 0x16c5e: 0x4044be20, 0x16c5f: 0x4044c020, - 0x16c60: 0x4044c220, 0x16c61: 0x4044c420, 0x16c62: 0x4044c620, 0x16c63: 0x4044c820, - 0x16c64: 0x4044ce20, 0x16c65: 0x4044cc20, 0x16c66: 0x4044ce20, 0x16c67: 0x4044d020, - 0x16c68: 0x4044d220, 0x16c69: 0x4044d420, 0x16c6a: 0x4044d620, 0x16c6b: 0x4044d820, - 0x16c6c: 0x4044da20, 0x16c6d: 0x4044dc20, 0x16c6e: 0x4044de20, 0x16c6f: 0x4044e020, - 0x16c70: 0x4044e220, 0x16c71: 0x4044e420, 0x16c73: 0x4044e620, - 0x16c74: 0x4044e820, 0x16c75: 0x4044ea20, 0x16c76: 0x4044ec20, 0x16c77: 0x4044ee20, - 0x16c78: 0x4044f020, 0x16c79: 0x4044f220, 0x16c7a: 0x4044f420, 0x16c7b: 0x4044f620, - 0x16c7d: 0x4044f820, - // Block 0x5b2, offset 0x16c80 - 0x16c80: 0xa0000000, 0x16c81: 0xa0000000, 0x16c82: 0xa0000000, 0x16c83: 0xa0000000, - 0x16c84: 0xa0000000, 0x16c85: 0xa0000000, 0x16c86: 0xa0000000, 0x16c87: 0xa0000000, - 0x16c88: 0xa0000000, 0x16c89: 0x40020020, 0x16c8a: 0x40020220, 0x16c8b: 0x40020420, - 0x16c8c: 0x40020620, 0x16c8d: 0x40020820, 0x16c8e: 0xa0000000, 0x16c8f: 0xa0000000, - 0x16c90: 0xa0000000, 0x16c91: 0xa0000000, 0x16c92: 0xa0000000, 0x16c93: 0xa0000000, - 0x16c94: 0xa0000000, 0x16c95: 0xa0000000, 0x16c96: 0xa0000000, 0x16c97: 0xa0000000, - 0x16c98: 0xa0000000, 0x16c99: 0xa0000000, 0x16c9a: 0xa0000000, 0x16c9b: 0xa0000000, - 0x16c9c: 0xa0000000, 0x16c9d: 0xa0000000, 0x16c9e: 0xa0000000, 0x16c9f: 0xa0000000, - 0x16ca0: 0x40021220, 0x16ca1: 0x4002ba20, 0x16ca2: 0x4003e020, 0x16ca3: 0x4004ea20, - 0x16ca4: 0x4027de20, 0x16ca5: 0x4004ec20, 0x16ca6: 0x4004e620, 0x16ca7: 0x4003d220, - 0x16ca8: 0x4003f420, 0x16ca9: 0x4003f620, 0x16caa: 0x4004d820, 0x16cab: 0x40093820, - 0x16cac: 0x40024020, 0x16cad: 0x40021a20, 0x16cae: 0x4002e420, 0x16caf: 0x4004e220, - 0x16cb0: 0x4029cc20, 0x16cb1: 0x4029ce20, 0x16cb2: 0x4029d020, 0x16cb3: 0x4029d220, - 0x16cb4: 0x4029d420, 0x16cb5: 0x4029d620, 0x16cb6: 0x4029d820, 0x16cb7: 0x4029da20, - 0x16cb8: 0x4029dc20, 0x16cb9: 0x4029de20, 0x16cba: 0x40026c20, 0x16cbb: 0x40026220, - 0x16cbc: 0x40094020, 0x16cbd: 0x40094220, 0x16cbe: 0x40094420, 0x16cbf: 0x4002c420, - // Block 0x5b3, offset 0x16cc0 - 0x16cc0: 0x4004d620, 0x16cc1: 0xce2d0071, 0x16cc2: 0x002c0a88, 0x16cc3: 0xc3590953, - 0x16cc4: 0x002c6288, 0x16cc5: 0x002c9888, 0x16cc6: 0x002d0888, 0x16cc7: 0x002d2288, - 0x16cc8: 0x002d6888, 0x16cc9: 0x002d9a88, 0x16cca: 0x002dcc88, 0x16ccb: 0x002dfe88, - 0x16ccc: 0xc0030002, 0x16ccd: 0x002e8288, 0x16cce: 0x002e9e88, 0x16ccf: 0xc33f2741, - 0x16cd0: 0x002f2c88, 0x16cd1: 0x002f5688, 0x16cd2: 0xc35f0991, 0x16cd3: 0xc3430991, - 0x16cd4: 0x00302c88, 0x16cd5: 0x00306c88, 0x16cd6: 0x0030be88, 0x16cd7: 0x0030e288, - 0x16cd8: 0x0030f688, 0x16cd9: 0x00310088, 0x16cda: 0xc3630991, 0x16cdb: 0x4003f820, - 0x16cdc: 0x4004e420, 0x16cdd: 0x4003fa20, 0x16cde: 0x40062420, 0x16cdf: 0x40021620, - 0x16ce0: 0x40061e20, 0x16ce1: 0xce2b0071, 0x16ce2: 0x402c0a20, 0x16ce3: 0xc3550953, - 0x16ce4: 0x402c6220, 0x16ce5: 0x402c9820, 0x16ce6: 0x402d0820, 0x16ce7: 0x402d2220, - 0x16ce8: 0x402d6820, 0x16ce9: 0x402d9a20, 0x16cea: 0x402dcc20, 0x16ceb: 0x402dfe20, - 0x16cec: 0xc0000002, 0x16ced: 0x402e8220, 0x16cee: 0x402e9e20, 0x16cef: 0xc33d2741, - 0x16cf0: 0x402f2c20, 0x16cf1: 0x402f5620, 0x16cf2: 0xc35d0991, 0x16cf3: 0xc3410991, - 0x16cf4: 0x40302c20, 0x16cf5: 0x40306c20, 0x16cf6: 0x4030be20, 0x16cf7: 0x4030e220, - 0x16cf8: 0x4030f620, 0x16cf9: 0x40310020, 0x16cfa: 0xc3610991, 0x16cfb: 0x4003fc20, - 0x16cfc: 0x40094820, 0x16cfd: 0x4003fe20, 0x16cfe: 0x40094c20, 0x16cff: 0xa0000000, - // Block 0x5b4, offset 0x16d00 - 0x16d00: 0xe00008f5, 0x16d01: 0xe00008ef, 0x16d02: 0xe0000921, 0x16d03: 0xe0000969, - 0x16d04: 0x002be083, 0x16d05: 0xe000094d, 0x16d06: 0xe00009dd, 0x16d07: 0xe0000a53, - 0x16d08: 0xe0000ae8, 0x16d09: 0xe0000ae2, 0x16d0a: 0xe0000af4, 0x16d0b: 0xe0000b20, - 0x16d0c: 0xe0000c2b, 0x16d0d: 0xe0000c25, 0x16d0e: 0xe0000c37, 0x16d0f: 0xe0000c43, - 0x16d10: 0xe0000ab3, 0x16d11: 0xe0000d63, 0x16d12: 0xe0000d9a, 0x16d13: 0xe0000d94, - 0x16d14: 0x002ee483, 0x16d15: 0xe0000de6, 0x16d16: 0xe0000dd2, 0x16d17: 0x40093e20, - 0x16d18: 0xe0000e12, 0x16d19: 0xe0000fe1, 0x16d1a: 0xe0000fdb, 0x16d1b: 0xe0000fed, - 0x16d1c: 0xe0000fff, 0x16d1d: 0xe0001102, 0x16d1e: 0x00318888, 0x16d1f: 0xe0000f7b, - 0x16d20: 0xe00008f2, 0x16d21: 0xe00008ec, 0x16d22: 0xe000091e, 0x16d23: 0xe0000966, - 0x16d24: 0x402be020, 0x16d25: 0xe000094a, 0x16d26: 0xe00009d5, 0x16d27: 0xe0000a4d, - 0x16d28: 0xe0000ae5, 0x16d29: 0xe0000adf, 0x16d2a: 0xe0000af1, 0x16d2b: 0xe0000b1d, - 0x16d2c: 0xe0000c28, 0x16d2d: 0xe0000c22, 0x16d2e: 0xe0000c34, 0x16d2f: 0xe0000c40, - 0x16d30: 0xe0000aad, 0x16d31: 0xe0000d60, 0x16d32: 0xe0000d97, 0x16d33: 0xe0000d91, - 0x16d34: 0x402ee420, 0x16d35: 0xe0000de3, 0x16d36: 0xe0000dcf, 0x16d37: 0x40093c20, - 0x16d38: 0xe0000e0f, 0x16d39: 0xe0000fde, 0x16d3a: 0xe0000fd8, 0x16d3b: 0xe0000fea, - 0x16d3c: 0xe0000ffc, 0x16d3d: 0xe00010ff, 0x16d3e: 0x40318820, 0x16d3f: 0xe0001114, - // Block 0x5b5, offset 0x16d40 - 0x16d40: 0x40321220, 0x16d41: 0x40321a20, 0x16d42: 0x40322220, 0x16d43: 0x40322a20, - 0x16d44: 0xe0000ad5, 0x16d45: 0xe0000ad1, 0x16d46: 0xe0000acd, 0x16d47: 0xf0000a0a, - 0x16d48: 0xf000040a, 0x16d49: 0xf0000404, 0x16d4a: 0xf0000a0a, 0x16d4b: 0xf000040a, - 0x16d4c: 0xf0000404, 0x16d4d: 0xe0000947, 0x16d4e: 0xe0000944, 0x16d4f: 0xe0000c3d, - 0x16d50: 0xe0000c3a, 0x16d51: 0xe0000dcc, 0x16d52: 0xe0000dc9, 0x16d53: 0xe0000ff3, - 0x16d54: 0xe0000ff0, 0x16d55: 0xe000101e, 0x16d56: 0xe000101a, 0x16d57: 0xe0001006, - 0x16d58: 0xe0001002, 0x16d59: 0xe0001016, 0x16d5a: 0xe0001012, 0x16d5b: 0xe000100e, - 0x16d5c: 0xe000100a, 0x16d5d: 0x402cae20, 0x16d5e: 0xe0003884, 0x16d5f: 0xe0003881, - 0x16d60: 0xe0000976, 0x16d61: 0xe0000972, 0x16d62: 0xe00009f4, 0x16d63: 0xe00009ef, - 0x16d64: 0x002d3a88, 0x16d65: 0x402d3a20, 0x16d66: 0xe0000bbe, 0x16d67: 0xe0000bbb, - 0x16d68: 0xe0000c99, 0x16d69: 0xe0000c96, 0x16d6a: 0xe0000e20, 0x16d6b: 0xe0000e1d, - 0x16d6c: 0xe0000e27, 0x16d6d: 0xe0000e23, 0x16d6e: 0xe0001162, 0x16d6f: 0xe000115f, - 0x16d70: 0xe0000c8d, 0x16d71: 0xf0000a0a, 0x16d72: 0xf000040a, 0x16d73: 0xf0000404, - 0x16d74: 0xe0000bac, 0x16d75: 0xe0000ba9, 0x16d76: 0x002d7888, 0x16d77: 0x00319488, - 0x16d78: 0xe0000d57, 0x16d79: 0xe0000d54, 0x16d7a: 0xe0000954, 0x16d7b: 0xe0000950, - 0x16d7c: 0xe00009ea, 0x16d7d: 0xe00009e5, 0x16d7e: 0xe0000e19, 0x16d7f: 0xe0000e15, - // Block 0x5b6, offset 0x16d80 - 0x16d80: 0xe0000b03, 0x16d81: 0xe0000aff, 0x16d82: 0xe0000b13, 0x16d83: 0xe0000b0f, - 0x16d84: 0xe0000b0b, 0x16d85: 0xe0000b07, 0x16d86: 0xe0000b75, 0x16d87: 0xe0000b71, - 0x16d88: 0xe0000c66, 0x16d89: 0xe0000c63, 0x16d8a: 0xe0000c78, 0x16d8b: 0xe0000c75, - 0x16d8c: 0xe0000e84, 0x16d8d: 0xe0000e81, 0x16d8e: 0xe0000e44, 0x16d8f: 0xe0000e41, - 0x16d90: 0xe000acf1, 0x16d91: 0xe000acee, 0x16d92: 0xe000acf7, 0x16d93: 0xe000acf4, - 0x16d94: 0xe000acfd, 0x16d95: 0xe000acfa, 0x16d96: 0xe0002946, 0x16d97: 0xe0002943, - 0x16d98: 0xe000ad03, 0x16d99: 0xe000ad00, 0x16d9a: 0xe0000e5d, 0x16d9b: 0xe0000e59, - 0x16d9c: 0xe0000e65, 0x16d9d: 0xe0000e61, 0x16d9e: 0xe0000e75, 0x16d9f: 0xe0000e71, - 0x16da0: 0xe0000e6d, 0x16da1: 0xe0000e69, 0x16da2: 0xe0000e7d, 0x16da3: 0xe0000e79, - 0x16da4: 0xe000108d, 0x16da5: 0xe000108a, 0x16da6: 0xe000104d, 0x16da7: 0xe000104a, - 0x16da8: 0xe0001066, 0x16da9: 0xe0001062, 0x16daa: 0xe000106e, 0x16dab: 0xe000106a, - 0x16dac: 0xe000107e, 0x16dad: 0xe000107a, 0x16dae: 0xe0001076, 0x16daf: 0xe0001072, - 0x16db0: 0xe0001086, 0x16db1: 0xe0001082, 0x16db2: 0xe0001108, 0x16db3: 0xe0001105, - 0x16db4: 0xe0001135, 0x16db5: 0xe0001132, 0x16db6: 0xe000112f, 0x16db7: 0xe000112c, - 0x16db8: 0xe000111d, 0x16db9: 0xe000111a, 0x16dba: 0xe0000d0a, 0x16dbb: 0xe0000d07, - 0x16dbc: 0x0030d888, 0x16dbd: 0x4030d820, 0x16dbe: 0x00312088, 0x16dbf: 0x40312020, - // Block 0x5b7, offset 0x16dc0 - 0x16dc0: 0xa0000000, 0x16dc1: 0xa0000000, 0x16dc2: 0xa0000000, 0x16dc3: 0xa0000000, - 0x16dc4: 0xa0000000, 0x16dc5: 0xa0000000, 0x16dc6: 0xa0000000, 0x16dc7: 0xa0000000, - 0x16dc8: 0xa0000000, 0x16dc9: 0x40020020, 0x16dca: 0x40020220, 0x16dcb: 0x40020420, - 0x16dcc: 0x40020620, 0x16dcd: 0x40020820, 0x16dce: 0xa0000000, 0x16dcf: 0xa0000000, - 0x16dd0: 0xa0000000, 0x16dd1: 0xa0000000, 0x16dd2: 0xa0000000, 0x16dd3: 0xa0000000, - 0x16dd4: 0xa0000000, 0x16dd5: 0xa0000000, 0x16dd6: 0xa0000000, 0x16dd7: 0xa0000000, - 0x16dd8: 0xa0000000, 0x16dd9: 0xa0000000, 0x16dda: 0xa0000000, 0x16ddb: 0xa0000000, - 0x16ddc: 0xa0000000, 0x16ddd: 0xa0000000, 0x16dde: 0xa0000000, 0x16ddf: 0xa0000000, - 0x16de0: 0x40021220, 0x16de1: 0x4002ba20, 0x16de2: 0x4003e020, 0x16de3: 0x4004ea20, - 0x16de4: 0x4027de20, 0x16de5: 0x4004ec20, 0x16de6: 0x4004e620, 0x16de7: 0x4003d220, - 0x16de8: 0x4003f420, 0x16de9: 0x4003f620, 0x16dea: 0x4004d820, 0x16deb: 0x40093820, - 0x16dec: 0x40024020, 0x16ded: 0x40021a20, 0x16dee: 0x4002e420, 0x16def: 0x4004e220, - 0x16df0: 0x4029cc20, 0x16df1: 0x4029ce20, 0x16df2: 0x4029d020, 0x16df3: 0x4029d220, - 0x16df4: 0x4029d420, 0x16df5: 0x4029d620, 0x16df6: 0x4029d820, 0x16df7: 0x4029da20, - 0x16df8: 0x4029dc20, 0x16df9: 0x4029de20, 0x16dfa: 0x40026c20, 0x16dfb: 0x40026220, - 0x16dfc: 0x40094020, 0x16dfd: 0x40094220, 0x16dfe: 0x40094420, 0x16dff: 0x4002c420, - // Block 0x5b8, offset 0x16e00 - 0x16e00: 0x4004d620, 0x16e01: 0x002bde88, 0x16e02: 0x002c0a88, 0x16e03: 0xc5872851, - 0x16e04: 0x002c6288, 0x16e05: 0x002c9888, 0x16e06: 0x002d0888, 0x16e07: 0x002d2288, - 0x16e08: 0x002d6888, 0x16e09: 0x002d9a88, 0x16e0a: 0x002dcc88, 0x16e0b: 0x002dfe88, - 0x16e0c: 0xc0030002, 0x16e0d: 0x002e8288, 0x16e0e: 0x002e9e88, 0x16e0f: 0x002ee288, - 0x16e10: 0x002f2c88, 0x16e11: 0x002f5688, 0x16e12: 0x002f7a88, 0x16e13: 0xc3430991, - 0x16e14: 0x00302c88, 0x16e15: 0x00306c88, 0x16e16: 0x0030be88, 0x16e17: 0x0030e288, - 0x16e18: 0x0030f688, 0x16e19: 0x00310088, 0x16e1a: 0xc3630991, 0x16e1b: 0x4003f820, - 0x16e1c: 0x4004e420, 0x16e1d: 0x4003fa20, 0x16e1e: 0x40062420, 0x16e1f: 0x40021620, - 0x16e20: 0x40061e20, 0x16e21: 0x402bde20, 0x16e22: 0x402c0a20, 0x16e23: 0xc5842851, - 0x16e24: 0x402c6220, 0x16e25: 0x402c9820, 0x16e26: 0x402d0820, 0x16e27: 0x402d2220, - 0x16e28: 0x402d6820, 0x16e29: 0x402d9a20, 0x16e2a: 0x402dcc20, 0x16e2b: 0x402dfe20, - 0x16e2c: 0xc0000002, 0x16e2d: 0x402e8220, 0x16e2e: 0x402e9e20, 0x16e2f: 0x402ee220, - 0x16e30: 0x402f2c20, 0x16e31: 0x402f5620, 0x16e32: 0x402f7a20, 0x16e33: 0xc3410991, - 0x16e34: 0x40302c20, 0x16e35: 0x40306c20, 0x16e36: 0x4030be20, 0x16e37: 0x4030e220, - 0x16e38: 0x4030f620, 0x16e39: 0x40310020, 0x16e3a: 0xc3610991, 0x16e3b: 0x4003fc20, - 0x16e3c: 0x40094820, 0x16e3d: 0x4003fe20, 0x16e3e: 0x40094c20, 0x16e3f: 0xa0000000, - // Block 0x5b9, offset 0x16e40 - 0x16e40: 0xe0000983, 0x16e41: 0xe0000980, 0x16e42: 0xe00008fb, 0x16e43: 0xe00008f8, - 0x16e44: 0xe000097d, 0x16e45: 0xe000097a, 0x16e46: 0x002c3e83, 0x16e47: 0x402c3e20, - 0x16e48: 0xe0000a3e, 0x16e49: 0xe0000a3b, 0x16e4a: 0xe0000a4a, 0x16e4b: 0xe0000a47, - 0x16e4c: 0x002c3c83, 0x16e4d: 0x402c3c20, 0x16e4e: 0xe0000a86, 0x16e4f: 0xe0000a83, - 0x16e50: 0x002c6483, 0x16e51: 0x402c6420, 0x16e52: 0xe0000b46, 0x16e53: 0xe0000b43, - 0x16e54: 0xe0000aee, 0x16e55: 0xe0000aeb, 0x16e56: 0xe0000b2c, 0x16e57: 0xe0000b29, - 0x16e58: 0xe0000b40, 0x16e59: 0xe0000b3d, 0x16e5a: 0xe0000b1a, 0x16e5b: 0xe0000b17, - 0x16e5c: 0xe0000bb8, 0x16e5d: 0xe0000bb5, 0x16e5e: 0xe0000bb2, 0x16e5f: 0xe0000baf, - 0x16e60: 0xe0000bc4, 0x16e61: 0xe0000bc1, 0x16e62: 0xe0000bca, 0x16e63: 0xe0000bc7, - 0x16e64: 0xe0000bee, 0x16e65: 0xe0000beb, 0x16e66: 0xe0000c1b, 0x16e67: 0xe0000c18, - 0x16e68: 0xe0000c51, 0x16e69: 0xe0000c4e, 0x16e6a: 0xe0000c60, 0x16e6b: 0xe0000c5d, - 0x16e6c: 0xe0000c31, 0x16e6d: 0xe0000c2e, 0x16e6e: 0xe0000c5a, 0x16e6f: 0xe0000c57, - 0x16e70: 0xe0000c54, 0x16e71: 0x402da220, 0x16e72: 0xf0000a0a, 0x16e73: 0xf0000404, - 0x16e74: 0xe0000c8a, 0x16e75: 0xe0000c87, 0x16e76: 0xe0000c9f, 0x16e77: 0xe0000c9c, - 0x16e78: 0x402f7220, 0x16e79: 0xe0000ccc, 0x16e7a: 0xe0000cc9, 0x16e7b: 0xe0000cd8, - 0x16e7c: 0xe0000cd5, 0x16e7d: 0xe0000cd2, 0x16e7e: 0xe0000ccf, 0x16e7f: 0xe0000d04, - // Block 0x5ba, offset 0x16e80 - 0x16e80: 0xa0000000, 0x16e81: 0xa0000000, 0x16e82: 0xa0000000, 0x16e83: 0xa0000000, - 0x16e84: 0xa0000000, 0x16e85: 0xa0000000, 0x16e86: 0xa0000000, 0x16e87: 0xa0000000, - 0x16e88: 0xa0000000, 0x16e89: 0x40020020, 0x16e8a: 0x40020220, 0x16e8b: 0x40020420, - 0x16e8c: 0x40020620, 0x16e8d: 0x40020820, 0x16e8e: 0xa0000000, 0x16e8f: 0xa0000000, - 0x16e90: 0xa0000000, 0x16e91: 0xa0000000, 0x16e92: 0xa0000000, 0x16e93: 0xa0000000, - 0x16e94: 0xa0000000, 0x16e95: 0xa0000000, 0x16e96: 0xa0000000, 0x16e97: 0xa0000000, - 0x16e98: 0xa0000000, 0x16e99: 0xa0000000, 0x16e9a: 0xa0000000, 0x16e9b: 0xa0000000, - 0x16e9c: 0xa0000000, 0x16e9d: 0xa0000000, 0x16e9e: 0xa0000000, 0x16e9f: 0xa0000000, - 0x16ea0: 0x40021220, 0x16ea1: 0x4002ba20, 0x16ea2: 0x4003e020, 0x16ea3: 0x4004ea20, - 0x16ea4: 0x4027de20, 0x16ea5: 0x4004ec20, 0x16ea6: 0x4004e620, 0x16ea7: 0x4003d220, - 0x16ea8: 0x4003f420, 0x16ea9: 0x4003f620, 0x16eaa: 0x4004d820, 0x16eab: 0x40093820, - 0x16eac: 0x40024020, 0x16ead: 0x40021a20, 0x16eae: 0x4002e420, 0x16eaf: 0x4004e220, - 0x16eb0: 0x4029cc20, 0x16eb1: 0x4029ce20, 0x16eb2: 0x4029d020, 0x16eb3: 0x4029d220, - 0x16eb4: 0x4029d420, 0x16eb5: 0x4029d620, 0x16eb6: 0x4029d820, 0x16eb7: 0x4029da20, - 0x16eb8: 0x4029dc20, 0x16eb9: 0x4029de20, 0x16eba: 0x40026c20, 0x16ebb: 0x40026220, - 0x16ebc: 0x40094020, 0x16ebd: 0x40094220, 0x16ebe: 0x40094420, 0x16ebf: 0x4002c420, - // Block 0x5bb, offset 0x16ec0 - 0x16ec0: 0x4004d620, 0x16ec1: 0x002bde88, 0x16ec2: 0x002c0a88, 0x16ec3: 0xcab40911, - 0x16ec4: 0xce8909c2, 0x16ec5: 0xc6220071, 0x16ec6: 0x002d0888, 0x16ec7: 0xce8c2a12, - 0x16ec8: 0x002d6888, 0x16ec9: 0x002d9a88, 0x16eca: 0x002dcc88, 0x16ecb: 0x002dfe88, - 0x16ecc: 0xce930ac4, 0x16ecd: 0x002e8288, 0x16ece: 0xce982a12, 0x16ecf: 0x002ee288, - 0x16ed0: 0x002f2c88, 0x16ed1: 0x002f5688, 0x16ed2: 0xce9b9602, 0x16ed3: 0xce9e09c2, - 0x16ed4: 0xcea309c2, 0x16ed5: 0x00306c88, 0x16ed6: 0x0030be88, 0x16ed7: 0x0030e288, - 0x16ed8: 0xcea809c2, 0x16ed9: 0x00310088, 0x16eda: 0xceab09c2, 0x16edb: 0x4003f820, - 0x16edc: 0x4004e420, 0x16edd: 0x4003fa20, 0x16ede: 0x40062420, 0x16edf: 0x40021620, - 0x16ee0: 0x40061e20, 0x16ee1: 0x402bde20, 0x16ee2: 0x402c0a20, 0x16ee3: 0xcab20911, - 0x16ee4: 0xce8709b1, 0x16ee5: 0xc6200071, 0x16ee6: 0x402d0820, 0x16ee7: 0xcab62a01, - 0x16ee8: 0x402d6820, 0x16ee9: 0x402d9a20, 0x16eea: 0x402dcc20, 0x16eeb: 0x402dfe20, - 0x16eec: 0xce8f0a73, 0x16eed: 0x402e8220, 0x16eee: 0xcac62a01, 0x16eef: 0x402ee220, - 0x16ef0: 0x402f2c20, 0x16ef1: 0x402f5620, 0x16ef2: 0xcaca95f1, 0x16ef3: 0xcace09b1, - 0x16ef4: 0xcea109b1, 0x16ef5: 0x40306c20, 0x16ef6: 0x4030be20, 0x16ef7: 0x4030e220, - 0x16ef8: 0xcea609b1, 0x16ef9: 0x40310020, 0x16efa: 0xcad209b1, 0x16efb: 0x4003fc20, - 0x16efc: 0x40094820, 0x16efd: 0x4003fe20, 0x16efe: 0x40094c20, 0x16eff: 0xa0000000, - // Block 0x5bc, offset 0x16f00 - 0x16f00: 0xe00008f5, 0x16f01: 0xe00008ef, 0x16f02: 0xe0000921, 0x16f03: 0xe0000969, - 0x16f04: 0xe000095b, 0x16f05: 0xe000094d, 0x16f06: 0xe00009dd, 0x16f07: 0x002c6083, - 0x16f08: 0xe0000ae8, 0x16f09: 0xe0000ae2, 0x16f0a: 0xe0000af4, 0x16f0b: 0x002d0683, - 0x16f0c: 0xe0000c2b, 0x16f0d: 0xe0000c25, 0x16f0e: 0xe0000c37, 0x16f0f: 0xe0000c43, - 0x16f10: 0xe0000ab3, 0x16f11: 0xe0000d63, 0x16f12: 0xe0000d9a, 0x16f13: 0xe0000d94, - 0x16f14: 0xe0000da6, 0x16f15: 0xe0000de6, 0x16f16: 0xe0000dd2, 0x16f17: 0x40093e20, - 0x16f18: 0xe0000e12, 0x16f19: 0xe0000fe1, 0x16f1a: 0xe0000fdb, 0x16f1b: 0xe0000fed, - 0x16f1c: 0xe0000fff, 0x16f1d: 0xe0001102, 0x16f1e: 0x00318888, 0x16f1f: 0xe0000f7b, - 0x16f20: 0xe00008f2, 0x16f21: 0xe00008ec, 0x16f22: 0xe000091e, 0x16f23: 0xe0000966, - 0x16f24: 0xe0000958, 0x16f25: 0xe000094a, 0x16f26: 0xe00009d5, 0x16f27: 0x402c6020, - 0x16f28: 0xe0000ae5, 0x16f29: 0xe0000adf, 0x16f2a: 0xe0000af1, 0x16f2b: 0x402d0620, - 0x16f2c: 0xe0000c28, 0x16f2d: 0xe0000c22, 0x16f2e: 0xe0000c34, 0x16f2f: 0xe0000c40, - 0x16f30: 0xe0000aad, 0x16f31: 0xe0000d60, 0x16f32: 0xe0000d97, 0x16f33: 0xe0000d91, - 0x16f34: 0xe0000da3, 0x16f35: 0xe0000de3, 0x16f36: 0xe0000dcf, 0x16f37: 0x40093c20, - 0x16f38: 0xe0000e0f, 0x16f39: 0xe0000fde, 0x16f3a: 0xe0000fd8, 0x16f3b: 0xe0000fea, - 0x16f3c: 0xe0000ffc, 0x16f3d: 0xe00010ff, 0x16f3e: 0x40318820, 0x16f3f: 0xe0001114, - // Block 0x5bd, offset 0x16f40 - 0x16f40: 0xe00009b1, 0x16f41: 0xe00009ae, 0x16f42: 0xe0000a22, 0x16f43: 0xe0000a1f, - 0x16f44: 0xe0000a28, 0x16f45: 0xe0000a25, 0x16f46: 0xe0000a2e, 0x16f47: 0xe0000a2b, - 0x16f48: 0xe000ad7e, 0x16f49: 0xe000ad7b, 0x16f4a: 0xe0000a8c, 0x16f4b: 0xe0000a89, - 0x16f4c: 0xe0000a98, 0x16f4d: 0xe0000a95, 0x16f4e: 0xe0000aa4, 0x16f4f: 0xe0000aa1, - 0x16f50: 0xe0000a92, 0x16f51: 0xe0000a8f, 0x16f52: 0xe0000a9e, 0x16f53: 0xe0000a9b, - 0x16f54: 0xe0000b55, 0x16f55: 0xe0000b51, 0x16f56: 0xe0000b4d, 0x16f57: 0xe0000b49, - 0x16f58: 0xe0000b7c, 0x16f59: 0xe0000b79, 0x16f5a: 0xe0000b82, 0x16f5b: 0xe0000b7f, - 0x16f5c: 0xe0000b39, 0x16f5d: 0xe0000b35, 0x16f5e: 0xe0000b8c, 0x16f5f: 0xe0000b89, - 0x16f60: 0xe0000bd0, 0x16f61: 0xe0000bcd, 0x16f62: 0xe0000c00, 0x16f63: 0xe0000bfd, - 0x16f64: 0xe0000c0c, 0x16f65: 0xe0000c09, 0x16f66: 0xe0000bfa, 0x16f67: 0xe0000bf7, - 0x16f68: 0xe0000c06, 0x16f69: 0xe0000c03, 0x16f6a: 0xe0000c12, 0x16f6b: 0xe0000c0f, - 0x16f6c: 0xe0000c7e, 0x16f6d: 0xe0000c7b, 0x16f6e: 0xe0000c4a, 0x16f6f: 0xe0000c46, - 0x16f70: 0xe0000c93, 0x16f71: 0xe0000c90, 0x16f72: 0xe0000cab, 0x16f73: 0xe0000ca8, - 0x16f74: 0xe0000cb1, 0x16f75: 0xe0000cae, 0x16f76: 0xe0000cde, 0x16f77: 0xe0000cdb, - 0x16f78: 0xe0000ce5, 0x16f79: 0xe0000ce1, 0x16f7a: 0xe0000cf2, 0x16f7b: 0xe0000cef, - 0x16f7c: 0xe0000cec, 0x16f7d: 0xe0000ce9, 0x16f7e: 0xe0000d1e, 0x16f7f: 0xe0000d1b, - // Block 0x5be, offset 0x16f80 - 0x16f80: 0xa0000000, 0x16f81: 0xa0000000, 0x16f82: 0xa0000000, 0x16f83: 0xa0000000, - 0x16f84: 0xa0000000, 0x16f85: 0xa0000000, 0x16f86: 0xa0000000, 0x16f87: 0xa0000000, - 0x16f88: 0xa0000000, 0x16f89: 0x40020020, 0x16f8a: 0x40020220, 0x16f8b: 0x40020420, - 0x16f8c: 0x40020620, 0x16f8d: 0x40020820, 0x16f8e: 0xa0000000, 0x16f8f: 0xa0000000, - 0x16f90: 0xa0000000, 0x16f91: 0xa0000000, 0x16f92: 0xa0000000, 0x16f93: 0xa0000000, - 0x16f94: 0xa0000000, 0x16f95: 0xa0000000, 0x16f96: 0xa0000000, 0x16f97: 0xa0000000, - 0x16f98: 0xa0000000, 0x16f99: 0xa0000000, 0x16f9a: 0xa0000000, 0x16f9b: 0xa0000000, - 0x16f9c: 0xa0000000, 0x16f9d: 0xa0000000, 0x16f9e: 0xa0000000, 0x16f9f: 0xa0000000, - 0x16fa0: 0x40021220, 0x16fa1: 0x4002ba20, 0x16fa2: 0x4003e020, 0x16fa3: 0x4004ea20, - 0x16fa4: 0x4027de20, 0x16fa5: 0x4004ec20, 0x16fa6: 0x4004e620, 0x16fa7: 0x4003d220, - 0x16fa8: 0x4003f420, 0x16fa9: 0x4003f620, 0x16faa: 0x4004d820, 0x16fab: 0x40093820, - 0x16fac: 0x40024020, 0x16fad: 0x40021a20, 0x16fae: 0x4002e420, 0x16faf: 0x4004e220, - 0x16fb0: 0x4029cc20, 0x16fb1: 0x4029ce20, 0x16fb2: 0x4029d020, 0x16fb3: 0x4029d220, - 0x16fb4: 0x4029d420, 0x16fb5: 0x4029d620, 0x16fb6: 0x4029d820, 0x16fb7: 0x4029da20, - 0x16fb8: 0x4029dc20, 0x16fb9: 0x4029de20, 0x16fba: 0x40026c20, 0x16fbb: 0x40026220, - 0x16fbc: 0x40094020, 0x16fbd: 0x40094220, 0x16fbe: 0x40094420, 0x16fbf: 0x4002c420, - // Block 0x5bf, offset 0x16fc0 - 0x16fc0: 0x4004d620, 0x16fc1: 0xc56727b1, 0x16fc2: 0x002c0a88, 0x16fc3: 0x002c3a88, - 0x16fc4: 0x002c6288, 0x16fc5: 0xceb00be1, 0x16fc6: 0x002d0888, 0x16fc7: 0x002d2288, - 0x16fc8: 0x002d6888, 0x16fc9: 0x002d9a88, 0x16fca: 0x002dcc88, 0x16fcb: 0x002dfe88, - 0x16fcc: 0xc0030002, 0x16fcd: 0x002e8288, 0x16fce: 0x002e9e88, 0x16fcf: 0xceb69621, - 0x16fd0: 0x002f2c88, 0x16fd1: 0x002f5688, 0x16fd2: 0x002f7a88, 0x16fd3: 0x002fe688, - 0x16fd4: 0x00302c88, 0x16fd5: 0xc3900b21, 0x16fd6: 0x0030be88, 0x16fd7: 0x0030e288, - 0x16fd8: 0x0030f688, 0x16fd9: 0x00310088, 0x16fda: 0x00312a88, 0x16fdb: 0x4003f820, - 0x16fdc: 0x4004e420, 0x16fdd: 0x4003fa20, 0x16fde: 0x40062420, 0x16fdf: 0x40021620, - 0x16fe0: 0x40061e20, 0x16fe1: 0xc56427b1, 0x16fe2: 0x402c0a20, 0x16fe3: 0x402c3a20, - 0x16fe4: 0x402c6220, 0x16fe5: 0xceae0be1, 0x16fe6: 0x402d0820, 0x16fe7: 0x402d2220, - 0x16fe8: 0x402d6820, 0x16fe9: 0x402d9a20, 0x16fea: 0x402dcc20, 0x16feb: 0x402dfe20, - 0x16fec: 0xc0000002, 0x16fed: 0x402e8220, 0x16fee: 0x402e9e20, 0x16fef: 0xceb29621, - 0x16ff0: 0x402f2c20, 0x16ff1: 0x402f5620, 0x16ff2: 0x402f7a20, 0x16ff3: 0x402fe620, - 0x16ff4: 0x40302c20, 0x16ff5: 0xc38d0b21, 0x16ff6: 0x4030be20, 0x16ff7: 0x4030e220, - 0x16ff8: 0x4030f620, 0x16ff9: 0x40310020, 0x16ffa: 0x40312a20, 0x16ffb: 0x4003fc20, - 0x16ffc: 0x40094820, 0x16ffd: 0x4003fe20, 0x16ffe: 0x40094c20, 0x16fff: 0xa0000000, - // Block 0x5c0, offset 0x17000 - 0x17000: 0xe00008f5, 0x17001: 0xe00008ef, 0x17002: 0xe0000921, 0x17003: 0xe0000969, - 0x17004: 0x00320e83, 0x17005: 0x00320c83, 0x17006: 0x00320ea3, 0x17007: 0xe0000a53, - 0x17008: 0xe0000ae8, 0x17009: 0xe0000ae2, 0x1700a: 0xe0000af4, 0x1700b: 0xe0000b20, - 0x1700c: 0xe0000c2b, 0x1700d: 0xe0000c25, 0x1700e: 0xe0000c37, 0x1700f: 0xe0000c43, - 0x17010: 0x002c62c3, 0x17011: 0xe0000d63, 0x17012: 0xe0000d9a, 0x17013: 0xe0000d94, - 0x17014: 0x00321103, 0x17015: 0xe0000de6, 0x17016: 0x00321083, 0x17017: 0x40093e20, - 0x17018: 0x003210a3, 0x17019: 0xe0000fe1, 0x1701a: 0xe0000fdb, 0x1701b: 0xe0000fed, - 0x1701c: 0x003100a3, 0x1701d: 0xe0001102, 0x1701e: 0xe0002973, 0x1701f: 0xe0000f7b, - 0x17020: 0xe00008f2, 0x17021: 0xe00008ec, 0x17022: 0xe000091e, 0x17023: 0xe0000966, - 0x17024: 0x40320e20, 0x17025: 0x40320c20, 0x17026: 0x40320e21, 0x17027: 0xe0000a4d, - 0x17028: 0xe0000ae5, 0x17029: 0xe0000adf, 0x1702a: 0xe0000af1, 0x1702b: 0xe0000b1d, - 0x1702c: 0xe0000c28, 0x1702d: 0xe0000c22, 0x1702e: 0xe0000c34, 0x1702f: 0xe0000c40, - 0x17030: 0x402c6222, 0x17031: 0xe0000d60, 0x17032: 0xe0000d97, 0x17033: 0xe0000d91, - 0x17034: 0x40321024, 0x17035: 0xe0000de3, 0x17036: 0x40321020, 0x17037: 0x40093c20, - 0x17038: 0x40321021, 0x17039: 0xe0000fde, 0x1703a: 0xe0000fd8, 0x1703b: 0xe0000fea, - 0x1703c: 0x40310021, 0x1703d: 0xe00010ff, 0x1703e: 0xe0002970, 0x1703f: 0xe0001114, - // Block 0x5c1, offset 0x17040 - 0x17040: 0xe0000983, 0x17041: 0xe0000980, 0x17042: 0xe00008fb, 0x17043: 0xe00008f8, - 0x17044: 0xe000097d, 0x17045: 0xe000097a, 0x17046: 0xe0000a38, 0x17047: 0xe0000a35, - 0x17048: 0xe0000a3e, 0x17049: 0xe0000a3b, 0x1704a: 0xe0000a4a, 0x1704b: 0xe0000a47, - 0x1704c: 0xe0000a44, 0x1704d: 0xe0000a41, 0x1704e: 0xe0000a86, 0x1704f: 0xe0000a83, - 0x17050: 0x002c62a3, 0x17051: 0x402c6221, 0x17052: 0xe0000b46, 0x17053: 0xe0000b43, - 0x17054: 0xe0000aee, 0x17055: 0xe0000aeb, 0x17056: 0xe0000b2c, 0x17057: 0xe0000b29, - 0x17058: 0x00320ec3, 0x17059: 0x40320e22, 0x1705a: 0xe0000b1a, 0x1705b: 0xe0000b17, - 0x1705c: 0xe0000bb8, 0x1705d: 0xe0000bb5, 0x1705e: 0xe0000bb2, 0x1705f: 0xe0000baf, - 0x17060: 0xe0000bc4, 0x17061: 0xe0000bc1, 0x17062: 0xe0000bca, 0x17063: 0xe0000bc7, - 0x17064: 0xe0000bee, 0x17065: 0xe0000beb, 0x17066: 0xe0000c1b, 0x17067: 0xe0000c18, - 0x17068: 0xe0000c51, 0x17069: 0xe0000c4e, 0x1706a: 0xe0000c60, 0x1706b: 0xe0000c5d, - 0x1706c: 0xe0000c31, 0x1706d: 0xe0000c2e, 0x1706e: 0xe0000c5a, 0x1706f: 0xe0000c57, - 0x17070: 0xe0000c54, 0x17071: 0x402da220, 0x17072: 0xf0000a0a, 0x17073: 0xf0000404, - 0x17074: 0xe0000c8a, 0x17075: 0xe0000c87, 0x17076: 0xe0000c9f, 0x17077: 0xe0000c9c, - 0x17078: 0x402f7220, 0x17079: 0xe0000ccc, 0x1707a: 0xe0000cc9, 0x1707b: 0xe0000cd8, - 0x1707c: 0xe0000cd5, 0x1707d: 0xe0000cd2, 0x1707e: 0xe0000ccf, 0x1707f: 0xe0000d04, - // Block 0x5c2, offset 0x17080 - 0x17080: 0xe0000cfe, 0x17081: 0xe0000cf8, 0x17082: 0xe0000cf5, 0x17083: 0xe0000d51, - 0x17084: 0xe0000d4e, 0x17085: 0xe0000d6f, 0x17086: 0xe0000d6c, 0x17087: 0xe0000d5d, - 0x17088: 0xe0000d5a, 0x17089: 0xf0000404, 0x1708a: 0x002eda88, 0x1708b: 0x402eda20, - 0x1708c: 0xe0000e2e, 0x1708d: 0xe0000e2b, 0x1708e: 0xe0000da0, 0x1708f: 0xe0000d9d, - 0x17090: 0x003210c3, 0x17091: 0x40321022, 0x17092: 0x003210e3, 0x17093: 0x40321023, - 0x17094: 0xe0000eca, 0x17095: 0xe0000ec7, 0x17096: 0xe0000edc, 0x17097: 0xe0000ed9, - 0x17098: 0xe0000ed0, 0x17099: 0xe0000ecd, 0x1709a: 0xe0000f1f, 0x1709b: 0xe0000f1c, - 0x1709c: 0xe0000f2d, 0x1709d: 0xe0000f2a, 0x1709e: 0xe0000f47, 0x1709f: 0xe0000f44, - 0x170a0: 0xe0000f33, 0x170a1: 0xe0000f30, 0x170a2: 0xe0000f99, 0x170a3: 0xe0000f96, - 0x170a4: 0xe0000f8a, 0x170a5: 0xe0000f87, 0x170a6: 0x00303688, 0x170a7: 0x40303620, - 0x170a8: 0xe000102b, 0x170a9: 0xe0001028, 0x170aa: 0xe000103f, 0x170ab: 0xe000103c, - 0x170ac: 0xe0000fe7, 0x170ad: 0xe0000fe4, 0x170ae: 0xe0000ff9, 0x170af: 0xe0000ff6, - 0x170b0: 0x003100c3, 0x170b1: 0x40310022, 0x170b2: 0xe0001039, 0x170b3: 0xe0001036, - 0x170b4: 0xe00010d8, 0x170b5: 0xe00010d5, 0x170b6: 0xe000110e, 0x170b7: 0xe000110b, - 0x170b8: 0xe0001117, 0x170b9: 0xe000113b, 0x170ba: 0xe0001138, 0x170bb: 0xe000114d, - 0x170bc: 0xe000114a, 0x170bd: 0xe0001147, 0x170be: 0xe0001144, 0x170bf: 0xe0000f64, - // Block 0x5c3, offset 0x170c0 - 0x170c0: 0x40321220, 0x170c1: 0x40321a20, 0x170c2: 0x40322220, 0x170c3: 0x40322a20, - 0x170c4: 0xe0000ad5, 0x170c5: 0xe0000ad1, 0x170c6: 0xe0000acd, 0x170c7: 0xf0000a0a, - 0x170c8: 0xf000040a, 0x170c9: 0xf0000404, 0x170ca: 0xf0000a0a, 0x170cb: 0xf000040a, - 0x170cc: 0xf0000404, 0x170cd: 0xe0000947, 0x170ce: 0xe0000944, 0x170cf: 0xe0000c3d, - 0x170d0: 0xe0000c3a, 0x170d1: 0xe0000dcc, 0x170d2: 0xe0000dc9, 0x170d3: 0xe0000ff3, - 0x170d4: 0xe0000ff0, 0x170d5: 0xe000298b, 0x170d6: 0xe0002988, 0x170d7: 0xe0002979, - 0x170d8: 0xe0002976, 0x170d9: 0xe0002985, 0x170da: 0xe0002982, 0x170db: 0xe000297f, - 0x170dc: 0xe000297c, 0x170dd: 0x402cae20, 0x170de: 0xe000379e, 0x170df: 0xe000379b, - 0x170e0: 0xe0000976, 0x170e1: 0xe0000972, 0x170e2: 0xe00029af, 0x170e3: 0xe00029ac, - 0x170e4: 0x002d3a88, 0x170e5: 0x402d3a20, 0x170e6: 0xe0000bbe, 0x170e7: 0xe0000bbb, - 0x170e8: 0xe0000c99, 0x170e9: 0xe0000c96, 0x170ea: 0xe0000e20, 0x170eb: 0xe0000e1d, - 0x170ec: 0xe0000e27, 0x170ed: 0xe0000e23, 0x170ee: 0xe0001162, 0x170ef: 0xe000115f, - 0x170f0: 0xe0000c8d, 0x170f1: 0xf0000a0a, 0x170f2: 0xf000040a, 0x170f3: 0xf0000404, - 0x170f4: 0xe0000bac, 0x170f5: 0xe0000ba9, 0x170f6: 0x002d7888, 0x170f7: 0x00319488, - 0x170f8: 0xe0000d57, 0x170f9: 0xe0000d54, 0x170fa: 0xe0002991, 0x170fb: 0xe000298e, - 0x170fc: 0xe00037a4, 0x170fd: 0xe00037a1, 0x170fe: 0xe00037b6, 0x170ff: 0xe00037b3, - // Block 0x5c4, offset 0x17100 - 0x17100: 0xe0000b03, 0x17101: 0xe0000aff, 0x17102: 0xe0000b13, 0x17103: 0xe0000b0f, - 0x17104: 0xe0000b0b, 0x17105: 0xe0000b07, 0x17106: 0xe0000b75, 0x17107: 0xe0000b71, - 0x17108: 0xe0000c66, 0x17109: 0xe0000c63, 0x1710a: 0xe0000c78, 0x1710b: 0xe0000c75, - 0x1710c: 0xe0000e84, 0x1710d: 0xe0000e81, 0x1710e: 0xe0000e44, 0x1710f: 0xe0000e41, - 0x17110: 0xe000ad84, 0x17111: 0xe000ad81, 0x17112: 0xe000ad8a, 0x17113: 0xe000ad87, - 0x17114: 0xe000ad96, 0x17115: 0xe000ad93, 0x17116: 0xe000ad90, 0x17117: 0xe000ad8d, - 0x17118: 0xe000ad9c, 0x17119: 0xe000ad99, 0x1711a: 0xe0000e5d, 0x1711b: 0xe0000e59, - 0x1711c: 0xe0000e65, 0x1711d: 0xe0000e61, 0x1711e: 0xe0000e75, 0x1711f: 0xe0000e71, - 0x17120: 0xe0000e6d, 0x17121: 0xe0000e69, 0x17122: 0xe0000e7d, 0x17123: 0xe0000e79, - 0x17124: 0xe000108d, 0x17125: 0xe000108a, 0x17126: 0xe000104d, 0x17127: 0xe000104a, - 0x17128: 0xe0001066, 0x17129: 0xe0001062, 0x1712a: 0xe000106e, 0x1712b: 0xe000106a, - 0x1712c: 0xe000107e, 0x1712d: 0xe000107a, 0x1712e: 0xe0001076, 0x1712f: 0xe0001072, - 0x17130: 0xe0001086, 0x17131: 0xe0001082, 0x17132: 0xe0001108, 0x17133: 0xe0001105, - 0x17134: 0xe0001135, 0x17135: 0xe0001132, 0x17136: 0xe000112f, 0x17137: 0xe000112c, - 0x17138: 0xe000111d, 0x17139: 0xe000111a, 0x1713a: 0xe0000d0a, 0x1713b: 0xe0000d07, - 0x1713c: 0x0030d888, 0x1713d: 0x4030d820, 0x1713e: 0x00312088, 0x1713f: 0x40312020, - // Block 0x5c5, offset 0x17140 - 0x17142: 0x40429620, 0x17143: 0x40429820, - 0x17145: 0x40427e20, 0x17146: 0x40428020, 0x17147: 0x40428220, - 0x17148: 0x40428420, 0x17149: 0x40428620, 0x1714a: 0x40428820, - 0x1714e: 0x40428a20, 0x1714f: 0x40428c20, - 0x17150: 0x40428e20, 0x17152: 0xc0610231, 0x17153: 0x40429220, - 0x17154: 0x40429420, 0x17155: 0xceba9661, - 0x17159: 0xcebe96f1, 0x1715a: 0xcec096f1, - 0x1715c: 0xcee096f1, 0x1715e: 0xcec296f1, 0x1715f: 0xcec496f1, - 0x17163: 0xcec696f1, - 0x17164: 0xcec896f1, - 0x17168: 0xceca96f1, 0x17169: 0xcede96f1, 0x1716a: 0xcecc96f1, - 0x1716e: 0xcece96f1, 0x1716f: 0xced096f1, - 0x17170: 0xced296f1, 0x17171: 0xcedc96f1, 0x17172: 0xced496f1, 0x17173: 0xceda96f1, - 0x17174: 0xced896f1, 0x17175: 0xced696f1, 0x17176: 0xcee296f1, 0x17177: 0xcee496f1, - 0x17178: 0xcee696f1, 0x17179: 0xcee896f1, - 0x1717e: 0x4042c620, 0x1717f: 0x4042c820, - // Block 0x5c6, offset 0x17180 - 0x17181: 0x40430020, 0x17182: 0x40430220, 0x17183: 0x40430420, - 0x17185: 0x4042e020, 0x17186: 0x4042e220, 0x17187: 0x4042e420, - 0x17188: 0x4042e620, 0x17189: 0x4042e820, 0x1718a: 0x4042ea20, 0x1718b: 0x4042ec20, - 0x1718c: 0x4042f020, 0x1718e: 0x4042f420, 0x1718f: 0x4042f620, - 0x17190: 0x4042f820, 0x17192: 0x4042fa20, 0x17193: 0x4042fc20, - 0x17194: 0x4042fe20, 0x17195: 0x40430020, 0x17196: 0x40430220, 0x17197: 0x40430420, - 0x17198: 0x40430620, 0x17199: 0x40430820, 0x1719a: 0x40430a20, 0x1719b: 0x40430e20, - 0x1719c: 0x40431020, 0x1719d: 0x40431420, 0x1719e: 0x40431620, 0x1719f: 0x40431820, - 0x171a0: 0x40431a20, 0x171a1: 0x40431c20, 0x171a2: 0x40431e20, 0x171a3: 0x40432020, - 0x171a4: 0x40432220, 0x171a5: 0x40432420, 0x171a6: 0x40432620, 0x171a7: 0x40432820, - 0x171a8: 0x40432a20, 0x171aa: 0x40432c20, 0x171ab: 0x40432e20, - 0x171ac: 0x40433020, 0x171ad: 0x40433220, 0x171ae: 0x40433420, 0x171af: 0x40433620, - 0x171b0: 0x40433820, 0x171b1: 0x40433a20, 0x171b2: 0x40433c20, 0x171b3: 0x40434820, - 0x171b5: 0x40433e20, 0x171b6: 0x40434020, 0x171b7: 0x40434220, - 0x171b8: 0x40434420, 0x171b9: 0x40434620, - 0x171bd: 0x40434a20, 0x171be: 0x40434c20, 0x171bf: 0x40434e20, - // Block 0x5c7, offset 0x171c0 - 0x171c1: 0x40491020, 0x171c2: 0x40491220, 0x171c3: 0x40491420, - 0x171c4: 0x40491620, 0x171c5: 0x40491820, 0x171c6: 0x40491a20, 0x171c7: 0x40491c20, - 0x171c8: 0x40491e20, 0x171c9: 0x40492020, 0x171ca: 0x40492220, 0x171cb: 0x40492420, - 0x171cc: 0x40492620, 0x171cd: 0x40492820, 0x171ce: 0x40492a20, 0x171cf: 0x40492c20, - 0x171d0: 0x40492e20, 0x171d1: 0x40493020, 0x171d2: 0x40493220, 0x171d3: 0x40493420, - 0x171d4: 0x40493620, 0x171d5: 0x40493820, 0x171d6: 0x40493a20, 0x171d7: 0x40493c20, - 0x171d8: 0x40493e20, 0x171d9: 0x40494020, 0x171da: 0x40494220, 0x171db: 0x40494420, - 0x171dc: 0x40494620, 0x171dd: 0x40494820, 0x171de: 0x40494a20, 0x171df: 0x40494c20, - 0x171e0: 0x40494e20, 0x171e1: 0x40495020, 0x171e2: 0x40495220, 0x171e3: 0x40495420, - 0x171e4: 0x40495620, 0x171e5: 0x40495820, 0x171e6: 0x40495a20, 0x171e7: 0x40495c20, - 0x171e8: 0x40495e20, 0x171e9: 0x40496020, 0x171ea: 0x40496220, 0x171eb: 0x40496420, - 0x171ec: 0x40496620, 0x171ed: 0x40496820, 0x171ee: 0x40496a20, 0x171ef: 0x40057820, - 0x171f0: 0x40496e20, 0x171f1: 0x40497020, 0x171f2: 0x40497220, 0x171f3: 0xe000ada2, - 0x171f4: 0x40497620, 0x171f5: 0x40497820, 0x171f6: 0x40497a20, 0x171f7: 0x40497c20, - 0x171f8: 0x826724bf, 0x171f9: 0x826724c0, 0x171fa: 0x40498e20, - 0x171ff: 0x4027f420, - // Block 0x5c8, offset 0x17200 - 0x17200: 0xc07f04e1, 0x17201: 0xc0ae04e1, 0x17202: 0xc0dd04e1, 0x17203: 0xc10c04e1, - 0x17204: 0xc13b04e1, 0x17205: 0x00497283, 0x17206: 0x40057e20, 0x17207: 0xa000ff02, - 0x17208: 0xa6b10002, 0x17209: 0xa6b10102, 0x1720a: 0xa6b10202, 0x1720b: 0xa6b10302, - 0x1720c: 0xa000ff02, 0x1720d: 0xceea9721, 0x1720e: 0xa000fe02, 0x1720f: 0x40057820, - 0x17210: 0xe000019a, 0x17211: 0xe000022e, 0x17212: 0xe0000346, 0x17213: 0xe0000420, - 0x17214: 0xe00004f5, 0x17215: 0xe00005bf, 0x17216: 0xe000068a, 0x17217: 0xe0000732, - 0x17218: 0xe00007de, 0x17219: 0xe0000883, 0x1721a: 0x40057a20, 0x1721b: 0x40057c20, - // Block 0x5c9, offset 0x17240 - 0x17240: 0xa0000000, 0x17241: 0xa0000000, 0x17242: 0xa0000000, 0x17243: 0xa0000000, - 0x17244: 0xa0000000, 0x17245: 0xa0000000, 0x17246: 0xa0000000, 0x17247: 0xa0000000, - 0x17248: 0xa0000000, 0x17249: 0x40020020, 0x1724a: 0x40020220, 0x1724b: 0x40020420, - 0x1724c: 0x40020620, 0x1724d: 0x40020820, 0x1724e: 0xa0000000, 0x1724f: 0xa0000000, - 0x17250: 0xa0000000, 0x17251: 0xa0000000, 0x17252: 0xa0000000, 0x17253: 0xa0000000, - 0x17254: 0xa0000000, 0x17255: 0xa0000000, 0x17256: 0xa0000000, 0x17257: 0xa0000000, - 0x17258: 0xa0000000, 0x17259: 0xa0000000, 0x1725a: 0xa0000000, 0x1725b: 0xa0000000, - 0x1725c: 0xa0000000, 0x1725d: 0xa0000000, 0x1725e: 0xa0000000, 0x1725f: 0xa0000000, - 0x17260: 0x40021220, 0x17261: 0x4002ba20, 0x17262: 0x4003e020, 0x17263: 0x4004ea20, - 0x17264: 0x4027de20, 0x17265: 0x4004ec20, 0x17266: 0x4004e620, 0x17267: 0x4003d220, - 0x17268: 0x4003f420, 0x17269: 0x4003f620, 0x1726a: 0x4004d820, 0x1726b: 0x40093820, - 0x1726c: 0x40024020, 0x1726d: 0x40021a20, 0x1726e: 0x4002e420, 0x1726f: 0x4004e220, - 0x17270: 0x4029cc20, 0x17271: 0x4029ce20, 0x17272: 0x4029d020, 0x17273: 0x4029d220, - 0x17274: 0x4029d420, 0x17275: 0x4029d620, 0x17276: 0x4029d820, 0x17277: 0x4029da20, - 0x17278: 0x4029dc20, 0x17279: 0x4029de20, 0x1727a: 0x40026c20, 0x1727b: 0x40026220, - 0x1727c: 0x40094020, 0x1727d: 0x40094220, 0x1727e: 0x40094420, 0x1727f: 0x4002c420, - // Block 0x5ca, offset 0x17280 - 0x17280: 0x4004d620, 0x17281: 0xcef09771, 0x17282: 0x002c0a88, 0x17283: 0x002c3a88, - 0x17284: 0x002c6288, 0x17285: 0xcef69771, 0x17286: 0x002d0888, 0x17287: 0x002d2288, - 0x17288: 0x002d6888, 0x17289: 0xcefc9771, 0x1728a: 0x002dcc88, 0x1728b: 0x002dfe88, - 0x1728c: 0xc0030002, 0x1728d: 0x002e8288, 0x1728e: 0xc5290a52, 0x1728f: 0xcf029771, - 0x17290: 0x002f2c88, 0x17291: 0x002f5688, 0x17292: 0x002f7a88, 0x17293: 0x002fe688, - 0x17294: 0x00302c88, 0x17295: 0xcf089771, 0x17296: 0x0030be88, 0x17297: 0x0030e288, - 0x17298: 0x0030f688, 0x17299: 0x00310088, 0x1729a: 0x00312a88, 0x1729b: 0x4003f820, - 0x1729c: 0x4004e420, 0x1729d: 0x4003fa20, 0x1729e: 0x40062420, 0x1729f: 0x40021620, - 0x172a0: 0x40061e20, 0x172a1: 0xceed9771, 0x172a2: 0x402c0a20, 0x172a3: 0x402c3a20, - 0x172a4: 0x402c6220, 0x172a5: 0xcef39771, 0x172a6: 0x402d0820, 0x172a7: 0x402d2220, - 0x172a8: 0x402d6820, 0x172a9: 0xcef99771, 0x172aa: 0x402dcc20, 0x172ab: 0x402dfe20, - 0x172ac: 0xc0000002, 0x172ad: 0x402e8220, 0x172ae: 0xc5270a41, 0x172af: 0xceff9771, - 0x172b0: 0x402f2c20, 0x172b1: 0x402f5620, 0x172b2: 0x402f7a20, 0x172b3: 0x402fe620, - 0x172b4: 0x40302c20, 0x172b5: 0xcf059771, 0x172b6: 0x4030be20, 0x172b7: 0x4030e220, - 0x172b8: 0x4030f620, 0x172b9: 0x40310020, 0x172ba: 0x40312a20, 0x172bb: 0x4003fc20, - 0x172bc: 0x40094820, 0x172bd: 0x4003fe20, 0x172be: 0x40094c20, 0x172bf: 0xa0000000, - // Block 0x5cb, offset 0x172c0 - 0x172c0: 0xe00008f5, 0x172c1: 0x002bdea3, 0x172c2: 0xe0000921, 0x172c3: 0xe0000969, - 0x172c4: 0xe000095b, 0x172c5: 0xe000094d, 0x172c6: 0xe00009dd, 0x172c7: 0xe0000a53, - 0x172c8: 0xe0000ae8, 0x172c9: 0x002c98a3, 0x172ca: 0xe0000af4, 0x172cb: 0xe0000b20, - 0x172cc: 0xe0000c2b, 0x172cd: 0x002d9aa3, 0x172ce: 0xe0000c37, 0x172cf: 0xe0000c43, - 0x172d0: 0xe0000ab3, 0x172d1: 0xe0000d63, 0x172d2: 0xe0000d9a, 0x172d3: 0x002ee2a3, - 0x172d4: 0xe0000da6, 0x172d5: 0xe0000de6, 0x172d6: 0xe0000dd2, 0x172d7: 0x40093e20, - 0x172d8: 0xe0000e12, 0x172d9: 0xe0000fe1, 0x172da: 0x00306ca3, 0x172db: 0xe0000fed, - 0x172dc: 0xe0000fff, 0x172dd: 0xe0001102, 0x172de: 0x00318888, 0x172df: 0xe0000f7b, - 0x172e0: 0xe00008f2, 0x172e1: 0x402bde21, 0x172e2: 0xe000091e, 0x172e3: 0xe0000966, - 0x172e4: 0xe0000958, 0x172e5: 0xe000094a, 0x172e6: 0xe00009d5, 0x172e7: 0xe0000a4d, - 0x172e8: 0xe0000ae5, 0x172e9: 0x402c9821, 0x172ea: 0xe0000af1, 0x172eb: 0xe0000b1d, - 0x172ec: 0xe0000c28, 0x172ed: 0x402d9a21, 0x172ee: 0xe0000c34, 0x172ef: 0xe0000c40, - 0x172f0: 0xe0000aad, 0x172f1: 0xe0000d60, 0x172f2: 0xe0000d97, 0x172f3: 0x402ee221, - 0x172f4: 0xe0000da3, 0x172f5: 0xe0000de3, 0x172f6: 0xe0000dcf, 0x172f7: 0x40093c20, - 0x172f8: 0xe0000e0f, 0x172f9: 0xe0000fde, 0x172fa: 0x40306c21, 0x172fb: 0xe0000fea, - 0x172fc: 0xe0000ffc, 0x172fd: 0xe00010ff, 0x172fe: 0x40318820, 0x172ff: 0xe0001114, - // Block 0x5cc, offset 0x17300 - 0x17300: 0x002bdec3, 0x17301: 0x402bde22, 0x17302: 0xe00008fb, 0x17303: 0xe00008f8, - 0x17304: 0xe000097d, 0x17305: 0xe000097a, 0x17306: 0xe0000a38, 0x17307: 0xe0000a35, - 0x17308: 0xe0000a3e, 0x17309: 0xe0000a3b, 0x1730a: 0xe0000a4a, 0x1730b: 0xe0000a47, - 0x1730c: 0xe0000a44, 0x1730d: 0xe0000a41, 0x1730e: 0xe0000a86, 0x1730f: 0xe0000a83, - 0x17310: 0xe0000aaa, 0x17311: 0xe0000aa7, 0x17312: 0x002c98c3, 0x17313: 0x402c9822, - 0x17314: 0xe0000aee, 0x17315: 0xe0000aeb, 0x17316: 0xe0000b2c, 0x17317: 0xe0000b29, - 0x17318: 0xe0000b40, 0x17319: 0xe0000b3d, 0x1731a: 0xe0000b1a, 0x1731b: 0xe0000b17, - 0x1731c: 0xe0000bb8, 0x1731d: 0xe0000bb5, 0x1731e: 0xe0000bb2, 0x1731f: 0xe0000baf, - 0x17320: 0xe0000bc4, 0x17321: 0xe0000bc1, 0x17322: 0xe0000bca, 0x17323: 0xe0000bc7, - 0x17324: 0xe0000bee, 0x17325: 0xe0000beb, 0x17326: 0xe0000c1b, 0x17327: 0xe0000c18, - 0x17328: 0xe0000c51, 0x17329: 0xe0000c4e, 0x1732a: 0x002d9ac3, 0x1732b: 0x402d9a22, - 0x1732c: 0xe0000c31, 0x1732d: 0xe0000c2e, 0x1732e: 0xe0000c5a, 0x1732f: 0xe0000c57, - 0x17330: 0xe0000c54, 0x17331: 0x402da220, 0x17332: 0xf0000a0a, 0x17333: 0xf0000404, - 0x17334: 0xe0000c8a, 0x17335: 0xe0000c87, 0x17336: 0xe0000c9f, 0x17337: 0xe0000c9c, - 0x17338: 0x402f7220, 0x17339: 0xe0000ccc, 0x1733a: 0xe0000cc9, 0x1733b: 0xe0000cd8, - 0x1733c: 0xe0000cd5, 0x1733d: 0xe0000cd2, 0x1733e: 0xe0000ccf, 0x1733f: 0xe0000d04, - // Block 0x5cd, offset 0x17340 - 0x17340: 0xe0000cfe, 0x17341: 0xe0000cf8, 0x17342: 0xe0000cf5, 0x17343: 0xe0000d51, - 0x17344: 0xe0000d4e, 0x17345: 0xe0000d6f, 0x17346: 0xe0000d6c, 0x17347: 0xe0000d5d, - 0x17348: 0xe0000d5a, 0x17349: 0xf0000404, 0x1734a: 0x002ea086, 0x1734b: 0x002ea085, - 0x1734c: 0x002ee2c3, 0x1734d: 0x402ee222, 0x1734e: 0xe0000da0, 0x1734f: 0xe0000d9d, - 0x17350: 0xe0000de0, 0x17351: 0xe0000ddd, 0x17352: 0xe0000e93, 0x17353: 0xe0000e8f, - 0x17354: 0xe0000eca, 0x17355: 0xe0000ec7, 0x17356: 0xe0000edc, 0x17357: 0xe0000ed9, - 0x17358: 0xe0000ed0, 0x17359: 0xe0000ecd, 0x1735a: 0xe0000f1f, 0x1735b: 0xe0000f1c, - 0x1735c: 0xe0000f2d, 0x1735d: 0xe0000f2a, 0x1735e: 0xe0000f47, 0x1735f: 0xe0000f44, - 0x17360: 0xe0000f33, 0x17361: 0xe0000f30, 0x17362: 0xe0000f99, 0x17363: 0xe0000f96, - 0x17364: 0xe0000f8a, 0x17365: 0xe0000f87, 0x17366: 0x00303688, 0x17367: 0x40303620, - 0x17368: 0xe000102b, 0x17369: 0xe0001028, 0x1736a: 0x00306cc3, 0x1736b: 0x40306c22, - 0x1736c: 0xe0000fe7, 0x1736d: 0xe0000fe4, 0x1736e: 0xe0000ff9, 0x1736f: 0xe0000ff6, - 0x17370: 0xe0001025, 0x17371: 0xe0001022, 0x17372: 0xe0001039, 0x17373: 0xe0001036, - 0x17374: 0xe00010d8, 0x17375: 0xe00010d5, 0x17376: 0xe000110e, 0x17377: 0xe000110b, - 0x17378: 0xe0001117, 0x17379: 0xe000113b, 0x1737a: 0xe0001138, 0x1737b: 0xe000114d, - 0x1737c: 0xe000114a, 0x1737d: 0xe0001147, 0x1737e: 0xe0001144, 0x1737f: 0xe0000f64, - // Block 0x5ce, offset 0x17380 - 0x17380: 0x40321220, 0x17381: 0x40321a20, 0x17382: 0x40322220, 0x17383: 0x40322a20, - 0x17384: 0xe0000ad5, 0x17385: 0xe0000ad1, 0x17386: 0xe0000acd, 0x17387: 0xf0000a0a, - 0x17388: 0xf000040a, 0x17389: 0xf0000404, 0x1738a: 0xf0000a0a, 0x1738b: 0xf000040a, - 0x1738c: 0xf0000404, 0x1738d: 0xe0000947, 0x1738e: 0xe0000944, 0x1738f: 0xe0000c3d, - 0x17390: 0xe0000c3a, 0x17391: 0xe0000dcc, 0x17392: 0xe0000dc9, 0x17393: 0xe0000ff3, - 0x17394: 0xe0000ff0, 0x17395: 0xe000a965, 0x17396: 0xe000a962, 0x17397: 0xe000ae14, - 0x17398: 0xe000ae11, 0x17399: 0xe0001016, 0x1739a: 0xe0001012, 0x1739b: 0xe000100e, - 0x1739c: 0xe000100a, 0x1739d: 0x402cae20, 0x1739e: 0xe000adba, 0x1739f: 0xe000adb7, - 0x173a0: 0xe000adc0, 0x173a1: 0xe000adbd, 0x173a2: 0xe00009f4, 0x173a3: 0xe00009ef, - 0x173a4: 0x002d3a88, 0x173a5: 0x402d3a20, 0x173a6: 0xe0000bbe, 0x173a7: 0xe0000bbb, - 0x173a8: 0xe0000c99, 0x173a9: 0xe0000c96, 0x173aa: 0xe0000e20, 0x173ab: 0xe0000e1d, - 0x173ac: 0xe000ae0e, 0x173ad: 0xe000ae0b, 0x173ae: 0xe0001162, 0x173af: 0xe000115f, - 0x173b0: 0xe0000c8d, 0x173b1: 0xf0000a0a, 0x173b2: 0xf000040a, 0x173b3: 0xf0000404, - 0x173b4: 0xe0000bac, 0x173b5: 0xe0000ba9, 0x173b6: 0x002d7888, 0x173b7: 0x00319488, - 0x173b8: 0xe0000d57, 0x173b9: 0xe0000d54, 0x173ba: 0xe000adb4, 0x173bb: 0xe000adb1, - 0x173bc: 0xe00009ea, 0x173bd: 0xe00009e5, 0x173be: 0xe0000e19, 0x173bf: 0xe0000e15, - // Block 0x5cf, offset 0x173c0 - 0x173c0: 0xe000098f, 0x173c1: 0xe000098c, 0x173c2: 0xe0000995, 0x173c3: 0xe0000992, - 0x173c4: 0xe0000b62, 0x173c5: 0xe0000b5f, 0x173c6: 0xe0000b68, 0x173c7: 0xe0000b65, - 0x173c8: 0xe0000c6c, 0x173c9: 0xe0000c69, 0x173ca: 0xe0000c72, 0x173cb: 0xe0000c6f, - 0x173cc: 0xe0000e4a, 0x173cd: 0xe0000e47, 0x173ce: 0xe0000e50, 0x173cf: 0xe0000e4d, - 0x173d0: 0xe0000ee8, 0x173d1: 0xe0000ee5, 0x173d2: 0xe0000eee, 0x173d3: 0xe0000eeb, - 0x173d4: 0xe0001053, 0x173d5: 0xe0001050, 0x173d6: 0xe0001059, 0x173d7: 0xe0001056, - 0x173d8: 0xe0000f61, 0x173d9: 0xe0000f5e, 0x173da: 0xe0000fa5, 0x173db: 0xe0000fa2, - 0x173dc: 0x00312288, 0x173dd: 0x40312220, 0x173de: 0xe0000bf4, 0x173df: 0xe0000bf1, - 0x173e0: 0x002ebc88, 0x173e1: 0x402c8c20, 0x173e2: 0x002f2288, 0x173e3: 0x402f2220, - 0x173e4: 0x00314088, 0x173e5: 0x40314020, 0x173e6: 0xe000096f, 0x173e7: 0xe000096c, - 0x173e8: 0xe0000b32, 0x173e9: 0xe0000b2f, 0x173ea: 0xe000adfc, 0x173eb: 0xe000adf9, - 0x173ec: 0xe000ae02, 0x173ed: 0xe000adff, 0x173ee: 0xe0000e04, 0x173ef: 0xe0000e01, - 0x173f0: 0xe000ae08, 0x173f1: 0xe000ae05, 0x173f2: 0xe0001129, 0x173f3: 0xe0001126, - 0x173f4: 0x402e5e20, 0x173f5: 0x402ed020, 0x173f6: 0x40305a20, 0x173f7: 0x402dd420, - 0x173f8: 0xe0000abf, 0x173f9: 0xe0000ec4, 0x173fa: 0x002be888, 0x173fb: 0x002c4488, - 0x173fc: 0x402c4420, 0x173fd: 0x002e3888, 0x173fe: 0x00303e88, 0x173ff: 0x402ffc20, - // Block 0x5d0, offset 0x17400 - 0x17400: 0x402f8220, 0x17401: 0x402fd820, 0x17402: 0x402ff420, 0x17403: 0x40300820, - 0x17404: 0x402df620, 0x17405: 0x40301a20, 0x17406: 0x40302420, 0x17407: 0x40306420, - 0x17408: 0x40305220, 0x17409: 0x40307c20, 0x1740a: 0x4030b420, 0x1740b: 0x4030cc20, - 0x1740c: 0x4030da20, 0x1740d: 0x4030ee20, 0x1740e: 0x402e7a20, 0x1740f: 0x40310820, - 0x17410: 0x40314820, 0x17411: 0x40315020, 0x17412: 0x40316420, 0x17413: 0x40318020, - 0x17414: 0x4031cc20, 0x17415: 0x4031e820, 0x17416: 0x40320a20, 0x17417: 0x40323220, - 0x17418: 0x40323a20, 0x17419: 0x402c1220, 0x1741a: 0x402cf820, 0x1741b: 0x402d4c20, - 0x1741c: 0x402d7020, 0x1741d: 0x402de620, 0x1741e: 0x402e1a20, 0x1741f: 0x402e2a20, - 0x17420: 0x402f6220, 0x17421: 0x4031fa20, 0x17422: 0x40320220, 0x17423: 0xe0000aca, - 0x17424: 0xe0000adc, 0x17425: 0xe0000ad9, 0x17426: 0xe0000fcc, 0x17427: 0xe0000fcf, - 0x17428: 0xe0000fba, 0x17429: 0xe0000ba1, 0x1742a: 0xe0000d11, 0x1742b: 0xe0000d18, - 0x1742c: 0x40324220, 0x1742d: 0x40324a20, 0x1742e: 0x40309020, 0x1742f: 0x40309820, - 0x17430: 0x002d6894, 0x17431: 0x002d8094, 0x17432: 0x002dcc94, 0x17433: 0x002f7a94, - 0x17434: 0x002f9894, 0x17435: 0x002fac94, 0x17436: 0x002fd894, 0x17437: 0x0030e294, - 0x17438: 0x00310094, 0x17439: 0x40064020, 0x1743a: 0x40064420, 0x1743b: 0x40312c20, - 0x1743c: 0x4031de20, 0x1743d: 0x00312c83, 0x1743e: 0x4031e220, 0x1743f: 0x4031f020, - // Block 0x5d1, offset 0x17440 - 0x17440: 0xe00009b1, 0x17441: 0xe00009ae, 0x17442: 0xe0000a22, 0x17443: 0xe0000a1f, - 0x17444: 0xe0000a28, 0x17445: 0xe0000a25, 0x17446: 0xe0000a2e, 0x17447: 0xe0000a2b, - 0x17448: 0xe0000a5a, 0x17449: 0xe0000a56, 0x1744a: 0xe0000a8c, 0x1744b: 0xe0000a89, - 0x1744c: 0xe0000a98, 0x1744d: 0xe0000a95, 0x1744e: 0xe0000aa4, 0x1744f: 0xe0000aa1, - 0x17450: 0xe0000a92, 0x17451: 0xe0000a8f, 0x17452: 0xe0000a9e, 0x17453: 0xe0000a9b, - 0x17454: 0xe000add2, 0x17455: 0xe000adcf, 0x17456: 0xe000adcc, 0x17457: 0xe000adc9, - 0x17458: 0xe0000b7c, 0x17459: 0xe0000b79, 0x1745a: 0xe0000b82, 0x1745b: 0xe0000b7f, - 0x1745c: 0xe0000b39, 0x1745d: 0xe0000b35, 0x1745e: 0xe0000b8c, 0x1745f: 0xe0000b89, - 0x17460: 0xe0000bd0, 0x17461: 0xe0000bcd, 0x17462: 0xe0000c00, 0x17463: 0xe0000bfd, - 0x17464: 0xe0000c0c, 0x17465: 0xe0000c09, 0x17466: 0xe0000bfa, 0x17467: 0xe0000bf7, - 0x17468: 0xe0000c06, 0x17469: 0xe0000c03, 0x1746a: 0xe0000c12, 0x1746b: 0xe0000c0f, - 0x1746c: 0xe0000c7e, 0x1746d: 0xe0000c7b, 0x1746e: 0xe000add8, 0x1746f: 0xe000add5, - 0x17470: 0xe0000c93, 0x17471: 0xe0000c90, 0x17472: 0xe0000cab, 0x17473: 0xe0000ca8, - 0x17474: 0xe0000cb1, 0x17475: 0xe0000cae, 0x17476: 0xe0000cde, 0x17477: 0xe0000cdb, - 0x17478: 0xe0000ce5, 0x17479: 0xe0000ce1, 0x1747a: 0xe0000cf2, 0x1747b: 0xe0000cef, - 0x1747c: 0xe0000cec, 0x1747d: 0xe0000ce9, 0x1747e: 0xe0000d1e, 0x1747f: 0xe0000d1b, - // Block 0x5d2, offset 0x17480 - 0x17480: 0xe0000d24, 0x17481: 0xe0000d21, 0x17482: 0xe0000d2a, 0x17483: 0xe0000d27, - 0x17484: 0xe0000d69, 0x17485: 0xe0000d66, 0x17486: 0xe0000d7b, 0x17487: 0xe0000d78, - 0x17488: 0xe0000d87, 0x17489: 0xe0000d84, 0x1748a: 0xe0000d81, 0x1748b: 0xe0000d7e, - 0x1748c: 0xe000ade4, 0x1748d: 0xe000ade1, 0x1748e: 0xe0000df5, 0x1748f: 0xe0000df1, - 0x17490: 0xe000adf6, 0x17491: 0xe000adf3, 0x17492: 0xe000adf0, 0x17493: 0xe000aded, - 0x17494: 0xe0000ea7, 0x17495: 0xe0000ea4, 0x17496: 0xe0000ead, 0x17497: 0xe0000eaa, - 0x17498: 0xe0000ed6, 0x17499: 0xe0000ed3, 0x1749a: 0xe0000ef4, 0x1749b: 0xe0000ef1, - 0x1749c: 0xe0000efb, 0x1749d: 0xe0000ef7, 0x1749e: 0xe0000f02, 0x1749f: 0xe0000eff, - 0x174a0: 0xe0000f41, 0x174a1: 0xe0000f3e, 0x174a2: 0xe0000f53, 0x174a3: 0xe0000f50, - 0x174a4: 0xe0000f26, 0x174a5: 0xe0000f22, 0x174a6: 0xe0000f3a, 0x174a7: 0xe0000f36, - 0x174a8: 0xe0000f5a, 0x174a9: 0xe0000f56, 0x174aa: 0xe0000f93, 0x174ab: 0xe0000f90, - 0x174ac: 0xe0000f9f, 0x174ad: 0xe0000f9c, 0x174ae: 0xe0000fb1, 0x174af: 0xe0000fae, - 0x174b0: 0xe0000fab, 0x174b1: 0xe0000fa8, 0x174b2: 0xe0001093, 0x174b3: 0xe0001090, - 0x174b4: 0xe000109f, 0x174b5: 0xe000109c, 0x174b6: 0xe0001099, 0x174b7: 0xe0001096, - 0x174b8: 0xe000ae1a, 0x174b9: 0xe000ae17, 0x174ba: 0xe000a965, 0x174bb: 0xe000a962, - 0x174bc: 0xe00010a9, 0x174bd: 0xe00010a6, 0x174be: 0xe00010af, 0x174bf: 0xe00010ac, - // Block 0x5d3, offset 0x174c0 - 0x174c0: 0xe00010d2, 0x174c1: 0xe00010cf, 0x174c2: 0xe00010cc, 0x174c3: 0xe00010c9, - 0x174c4: 0xe00010e1, 0x174c5: 0xe00010de, 0x174c6: 0xe00010e7, 0x174c7: 0xe00010e4, - 0x174c8: 0xe00010ed, 0x174c9: 0xe00010ea, 0x174ca: 0xe00010fc, 0x174cb: 0xe00010f9, - 0x174cc: 0xe00010f6, 0x174cd: 0xe00010f3, 0x174ce: 0xe0001123, 0x174cf: 0xe0001120, - 0x174d0: 0xe0001141, 0x174d1: 0xe000113e, 0x174d2: 0xe0001153, 0x174d3: 0xe0001150, - 0x174d4: 0xe0001159, 0x174d5: 0xe0001156, 0x174d6: 0xe0000c15, 0x174d7: 0xe0000f8d, - 0x174d8: 0xe00010db, 0x174d9: 0xe0001111, 0x174da: 0xf0000404, 0x174db: 0xe0000f70, - 0x174dc: 0x40300420, 0x174dd: 0x40300620, 0x174de: 0xe0000f7f, 0x174df: 0x402c9620, - 0x174e0: 0xe000099b, 0x174e1: 0xe0000998, 0x174e2: 0xe0000989, 0x174e3: 0xe0000986, - 0x174e4: 0xe000adae, 0x174e5: 0xe000adab, 0x174e6: 0xe0000930, 0x174e7: 0xe000092c, - 0x174e8: 0xe0000940, 0x174e9: 0xe000093c, 0x174ea: 0xe0000938, 0x174eb: 0xe0000934, - 0x174ec: 0xe00009aa, 0x174ed: 0xe00009a6, 0x174ee: 0xe000ada8, 0x174ef: 0xe000ada5, - 0x174f0: 0xe000090a, 0x174f1: 0xe0000906, 0x174f2: 0xe000091a, 0x174f3: 0xe0000916, - 0x174f4: 0xe0000912, 0x174f5: 0xe000090e, 0x174f6: 0xe00009a2, 0x174f7: 0xe000099e, - 0x174f8: 0xe0000b6e, 0x174f9: 0xe0000b6b, 0x174fa: 0xe0000b5c, 0x174fb: 0xe0000b59, - 0x174fc: 0xe0000b26, 0x174fd: 0xe0000b23, 0x174fe: 0xe000adc6, 0x174ff: 0xe000adc3, - // Block 0x5d4, offset 0x17500 - 0x17500: 0xe0000b03, 0x17501: 0xe0000aff, 0x17502: 0xe0000b13, 0x17503: 0xe0000b0f, - 0x17504: 0xe0000b0b, 0x17505: 0xe0000b07, 0x17506: 0xe0000b75, 0x17507: 0xe0000b71, - 0x17508: 0xe0000c66, 0x17509: 0xe0000c63, 0x1750a: 0xe0000c78, 0x1750b: 0xe0000c75, - 0x1750c: 0xe0000e84, 0x1750d: 0xe0000e81, 0x1750e: 0xe0000e44, 0x1750f: 0xe0000e41, - 0x17510: 0xe000adde, 0x17511: 0xe000addb, 0x17512: 0xe0000db5, 0x17513: 0xe0000db1, - 0x17514: 0xe0000dc5, 0x17515: 0xe0000dc1, 0x17516: 0xe0000dbd, 0x17517: 0xe0000db9, - 0x17518: 0xe0000e8b, 0x17519: 0xe0000e87, 0x1751a: 0xe000adea, 0x1751b: 0xe000ade7, - 0x1751c: 0xe0000e65, 0x1751d: 0xe0000e61, 0x1751e: 0xe0000e75, 0x1751f: 0xe0000e71, - 0x17520: 0xe0000e6d, 0x17521: 0xe0000e69, 0x17522: 0xe0000e7d, 0x17523: 0xe0000e79, - 0x17524: 0xe000108d, 0x17525: 0xe000108a, 0x17526: 0xe000104d, 0x17527: 0xe000104a, - 0x17528: 0xe000ae20, 0x17529: 0xe000ae1d, 0x1752a: 0xe000106e, 0x1752b: 0xe000106a, - 0x1752c: 0xe000107e, 0x1752d: 0xe000107a, 0x1752e: 0xe0001076, 0x1752f: 0xe0001072, - 0x17530: 0xe0001086, 0x17531: 0xe0001082, 0x17532: 0xe0001108, 0x17533: 0xe0001105, - 0x17534: 0xe0001135, 0x17535: 0xe0001132, 0x17536: 0xe000112f, 0x17537: 0xe000112c, - 0x17538: 0xe000111d, 0x17539: 0xe000111a, 0x1753a: 0xe0000d0a, 0x1753b: 0xe0000d07, - 0x1753c: 0x0030d888, 0x1753d: 0x4030d820, 0x1753e: 0x00312088, 0x1753f: 0x40312020, - // Block 0x5d5, offset 0x17540 - 0x17540: 0xa0000000, 0x17541: 0xa0000000, 0x17542: 0xa0000000, 0x17543: 0xa0000000, - 0x17544: 0xa0000000, 0x17545: 0xa0000000, 0x17546: 0xa0000000, 0x17547: 0xa0000000, - 0x17548: 0xa0000000, 0x17549: 0x40020020, 0x1754a: 0x40020220, 0x1754b: 0x40020420, - 0x1754c: 0x40020620, 0x1754d: 0x40020820, 0x1754e: 0xa0000000, 0x1754f: 0xa0000000, - 0x17550: 0xa0000000, 0x17551: 0xa0000000, 0x17552: 0xa0000000, 0x17553: 0xa0000000, - 0x17554: 0xa0000000, 0x17555: 0xa0000000, 0x17556: 0xa0000000, 0x17557: 0xa0000000, - 0x17558: 0xa0000000, 0x17559: 0xa0000000, 0x1755a: 0xa0000000, 0x1755b: 0xa0000000, - 0x1755c: 0xa0000000, 0x1755d: 0xa0000000, 0x1755e: 0xa0000000, 0x1755f: 0xa0000000, - 0x17560: 0x40021220, 0x17561: 0x4002ba20, 0x17562: 0x4003e020, 0x17563: 0x4004ea20, - 0x17564: 0x4027de20, 0x17565: 0x4004ec20, 0x17566: 0x4004e620, 0x17567: 0x4003d220, - 0x17568: 0x4003f420, 0x17569: 0x4003f620, 0x1756a: 0x4004d820, 0x1756b: 0x40093820, - 0x1756c: 0x40024020, 0x1756d: 0x40021a20, 0x1756e: 0x4002e420, 0x1756f: 0x4004e220, - 0x17570: 0x4029cc20, 0x17571: 0x4029ce20, 0x17572: 0x4029d020, 0x17573: 0x4029d220, - 0x17574: 0x4029d420, 0x17575: 0x4029d620, 0x17576: 0x4029d820, 0x17577: 0x4029da20, - 0x17578: 0x4029dc20, 0x17579: 0x4029de20, 0x1757a: 0x40026c20, 0x1757b: 0x40026220, - 0x1757c: 0x40094020, 0x1757d: 0x40094220, 0x1757e: 0x40094420, 0x1757f: 0x4002c420, - // Block 0x5d6, offset 0x17580 - 0x17580: 0x4004d620, 0x17581: 0x002bde88, 0x17582: 0x002c0a88, 0x17583: 0xc3350911, - 0x17584: 0x002c6288, 0x17585: 0x002c9888, 0x17586: 0x002d0888, 0x17587: 0xc33900d1, - 0x17588: 0x002d6888, 0x17589: 0xc33b0931, 0x1758a: 0x002dcc88, 0x1758b: 0x002dfe88, - 0x1758c: 0xc0030002, 0x1758d: 0x002e8288, 0x1758e: 0x002e9e88, 0x1758f: 0xc33f0071, - 0x17590: 0x002f2c88, 0x17591: 0x002f5688, 0x17592: 0x002f7a88, 0x17593: 0xc3430911, - 0x17594: 0x00302c88, 0x17595: 0xc3470071, 0x17596: 0x0030be88, 0x17597: 0x0030e288, - 0x17598: 0x0030f688, 0x17599: 0x00310088, 0x1759a: 0x00312a88, 0x1759b: 0x4003f820, - 0x1759c: 0x4004e420, 0x1759d: 0x4003fa20, 0x1759e: 0x40062420, 0x1759f: 0x40021620, - 0x175a0: 0x40061e20, 0x175a1: 0x402bde20, 0x175a2: 0x402c0a20, 0x175a3: 0xc3330911, - 0x175a4: 0x402c6220, 0x175a5: 0x402c9820, 0x175a6: 0x402d0820, 0x175a7: 0xc33700d1, - 0x175a8: 0x402d6820, 0x175a9: 0x402d9a20, 0x175aa: 0x402dcc20, 0x175ab: 0x402dfe20, - 0x175ac: 0xc0000002, 0x175ad: 0x402e8220, 0x175ae: 0x402e9e20, 0x175af: 0xc33d0071, - 0x175b0: 0x402f2c20, 0x175b1: 0x402f5620, 0x175b2: 0x402f7a20, 0x175b3: 0xc3410911, - 0x175b4: 0x40302c20, 0x175b5: 0xc3450071, 0x175b6: 0x4030be20, 0x175b7: 0x4030e220, - 0x175b8: 0x4030f620, 0x175b9: 0x40310020, 0x175ba: 0x40312a20, 0x175bb: 0x4003fc20, - 0x175bc: 0x40094820, 0x175bd: 0x4003fe20, 0x175be: 0x40094c20, 0x175bf: 0xa0000000, - // Block 0x5d7, offset 0x175c0 - 0x175c0: 0x00093685, 0x175c1: 0x40083620, 0x175c2: 0x40083820, 0x175c3: 0x40083a20, - 0x175c4: 0x40083c20, 0x175c5: 0x002c628b, 0x175c6: 0x002c6285, 0x175c7: 0x002c9885, - 0x175c8: 0x002d9a85, 0x175c9: 0x002dcc85, 0x175ca: 0x40083e20, 0x175cb: 0x400a6e20, - 0x175cc: 0x40084020, 0x175cd: 0xe00009c4, 0x175ce: 0x402d1e20, 0x175cf: 0x40084220, - 0x175d0: 0xe00002cb, 0x175d1: 0xe00002d3, 0x175d2: 0xe00002b2, 0x175d3: 0xe00002bb, - 0x175d4: 0xe00003cd, 0x175d5: 0xe00002c3, 0x175d6: 0xe00003d1, 0x175d7: 0xe00004ab, - 0x175d8: 0xe0000579, 0x175d9: 0xe00002c7, 0x175da: 0xe0000640, 0x175db: 0xe00002cf, - 0x175dc: 0xe00004af, 0x175dd: 0xe0000644, 0x175de: 0xe0000798, 0x175df: 0xf0001e1e, - 0x175e0: 0x002d9a8a, 0x175e1: 0xe00027d4, 0x175e2: 0xe00027db, 0x175e3: 0xe00027ee, - 0x175e4: 0x0030be8a, 0x175e5: 0xe0002848, 0x175e6: 0xe000284f, 0x175e7: 0xe00010bb, - 0x175e8: 0xe00027f4, 0x175e9: 0x0030f68a, 0x175ea: 0xe0002883, 0x175eb: 0xe000288a, - 0x175ec: 0x002e228a, 0x175ed: 0x002c3a8a, 0x175ee: 0x002c628a, 0x175ef: 0x002e828a, - 0x175f0: 0x002d9a84, 0x175f1: 0xf0001f04, 0x175f2: 0xf0000404, 0x175f3: 0xf0001f04, - 0x175f4: 0x0030be84, 0x175f5: 0xf0001f04, 0x175f6: 0xf0000404, 0x175f7: 0xe00010b6, - 0x175f8: 0xf0001f04, 0x175f9: 0x0030f684, 0x175fa: 0xf0001f04, 0x175fb: 0xf0000404, - 0x175fc: 0x002e2284, 0x175fd: 0x002c3a84, 0x175fe: 0x002c6284, 0x175ff: 0x002e8284, - // Block 0x5d8, offset 0x17600 - 0x17600: 0xf0001f04, 0x17601: 0xf0001f04, 0x17602: 0xf0001f04, 0x17603: 0xf0001f04, - 0x17604: 0xf0001f04, 0x17605: 0xf0001f04, 0x17606: 0xf0001f04, 0x17607: 0xf0001f04, - 0x17608: 0xf0001f04, 0x17609: 0xf0001f04, 0x1760a: 0xf0001f04, - 0x17610: 0xf0000a04, 0x17611: 0xf0000a04, 0x17612: 0xf0000a04, 0x17613: 0xf0000a04, - 0x17614: 0xf0000a04, 0x17615: 0xf0000a04, 0x17616: 0xf0000a04, 0x17617: 0xf0000a04, - 0x17618: 0xe00024b3, 0x17619: 0xf0000a04, 0x1761a: 0xf0000a04, 0x1761b: 0xf0000a04, - 0x1761c: 0xf0000a04, 0x1761d: 0xf0000a04, 0x1761e: 0xf0000a04, 0x1761f: 0xf0000a04, - 0x17620: 0xf0000a04, 0x17621: 0xf0000a04, 0x17622: 0xf0000a04, 0x17623: 0xf0000a04, - 0x17624: 0xf0000a04, 0x17625: 0xf0000a04, 0x17626: 0xf0000a04, 0x17627: 0xf0000a04, - 0x17628: 0xf0000a04, 0x17629: 0xf0000a04, 0x1762a: 0xf0000a04, 0x1762b: 0x002c3a8c, - 0x1762c: 0x002f7a8c, 0x1762d: 0xf0000c0c, 0x1762e: 0xf0000c0c, - 0x17630: 0x002bde9d, 0x17631: 0x002c0a9d, 0x17632: 0x002c3a9d, 0x17633: 0x002c629d, - 0x17634: 0x002c989d, 0x17635: 0x002d089d, 0x17636: 0x002d229d, 0x17637: 0x002d689d, - 0x17638: 0x002d9a9d, 0x17639: 0x002dcc9d, 0x1763a: 0x002dfe9d, 0x1763b: 0x002e229d, - 0x1763c: 0x002e829d, 0x1763d: 0x002e9e9d, 0x1763e: 0x002ee29d, 0x1763f: 0x002f2c9d, - // Block 0x5d9, offset 0x17640 - 0x17640: 0x00352088, 0x17641: 0x40352020, 0x17642: 0x40070620, 0x17643: 0xae608302, - 0x17644: 0xae605f02, 0x17645: 0xae602a02, 0x17646: 0xae602202, 0x17647: 0xae605f02, - 0x17648: 0xa0000000, 0x17649: 0xa0000000, 0x1764a: 0x00341c88, 0x1764b: 0x40341c20, - 0x1764c: 0x00369688, 0x1764d: 0x40369620, 0x1764e: 0x00353088, 0x1764f: 0x40353020, - 0x17650: 0x00336483, 0x17651: 0x40336420, 0x17652: 0x00336a88, 0x17653: 0x40336a20, - 0x17654: 0x00337a88, 0x17655: 0x40337a20, 0x17656: 0x0033dc88, 0x17657: 0x4033dc20, - 0x17658: 0x0033aa88, 0x17659: 0x4033aa20, 0x1765a: 0x00345888, 0x1765b: 0x40345820, - 0x1765c: 0x00347888, 0x1765d: 0x40347820, 0x1765e: 0x00347088, 0x1765f: 0x40347020, - 0x17660: 0x00346888, 0x17661: 0x40346820, 0x17662: 0x0034ca88, 0x17663: 0x4034ca20, - 0x17664: 0x0034dc88, 0x17665: 0x4034dc20, 0x17666: 0x00351888, 0x17667: 0x40351820, - 0x17668: 0x00372688, 0x17669: 0x40372620, 0x1766a: 0x00354488, 0x1766b: 0x40354420, - 0x1766c: 0x00355888, 0x1766d: 0x40355820, 0x1766e: 0x00359288, 0x1766f: 0x40359220, - 0x17670: 0x00359a88, 0x17671: 0x40359a20, 0x17672: 0x0035cc88, 0x17673: 0x4035cc20, - 0x17674: 0x00360e88, 0x17675: 0x40360e20, 0x17676: 0x00362a88, 0x17677: 0x40362a20, - 0x17678: 0x00363a88, 0x17679: 0x40363a20, 0x1767a: 0x0035d488, 0x1767b: 0x4035d420, - 0x1767c: 0x00364488, 0x1767d: 0x40364420, 0x1767e: 0x00364c88, 0x1767f: 0x40364c20, - // Block 0x5da, offset 0x17680 - 0x17680: 0xa0000000, 0x17681: 0xa0000000, 0x17682: 0xa0000000, 0x17683: 0xa0000000, - 0x17684: 0xa0000000, 0x17686: 0x40096620, 0x17687: 0x40096a20, - 0x17688: 0x40070820, 0x17689: 0x4004f220, 0x1768a: 0x4004f620, 0x1768b: 0x4027e620, - 0x1768c: 0x40024820, 0x1768d: 0x40024a20, 0x1768e: 0x40070e20, 0x1768f: 0x40071020, - 0x17690: 0xa0000001, 0x17691: 0xa0000002, 0x17692: 0xa0000004, 0x17693: 0xa0000003, - 0x17694: 0xa0000005, 0x17695: 0xae600000, 0x17696: 0xae600000, 0x17697: 0xae600000, - 0x17698: 0xa1e00000, 0x17699: 0xa1f00000, 0x1769a: 0xa2000000, 0x1769b: 0x40026420, - 0x1769e: 0x40027020, 0x1769f: 0x4002cc20, - 0x176a0: 0x403aa220, 0x176a1: 0x4039a620, 0x176a2: 0x40393a20, 0x176a3: 0x40393821, - 0x176a4: 0x40399c21, 0x176a5: 0x40392820, 0x176a6: 0x4039a821, 0x176a7: 0xcf0b0151, - 0x176a8: 0xcf0f97a1, 0x176a9: 0x40395420, 0x176aa: 0xcf1397a1, 0x176ab: 0x40394c20, - 0x176ac: 0xcf1797a1, 0x176ad: 0x40395620, 0x176ae: 0x40395820, 0x176af: 0xcf1b97a1, - 0x176b0: 0x40396220, 0x176b1: 0xcf1f97a1, 0x176b2: 0x40396c20, 0x176b3: 0x40397020, - 0x176b4: 0x40397220, 0x176b5: 0x40397420, 0x176b6: 0x40397620, 0x176b7: 0x40397820, - 0x176b8: 0x40397a20, 0x176b9: 0x40397c20, 0x176ba: 0x40397e20, 0x176bb: 0x403a3820, - 0x176bc: 0x403a3a20, 0x176bd: 0x403a9c20, 0x176be: 0x403a9e20, 0x176bf: 0x403aa020, - // Block 0x5db, offset 0x176c0 - 0x176c0: 0xa0000000, 0x176c1: 0x40398020, 0x176c2: 0x40398220, 0x176c3: 0x403a1a20, - 0x176c4: 0xcf2797a1, 0x176c5: 0xcf2997a1, 0x176c6: 0xcf2b97a1, 0x176c7: 0x403a6820, - 0x176c8: 0xcf2f97c2, 0x176c9: 0x403a8e20, 0x176ca: 0xcf340171, 0x176cb: 0xa000c302, - 0x176cc: 0xa000c502, 0x176cd: 0xa000c402, 0x176ce: 0xa000bd02, 0x176cf: 0xa000bf02, - 0x176d0: 0xa000be02, 0x176d1: 0xa000c702, 0x176d2: 0xa220bc02, 0x176d3: 0xa000c902, - 0x176d4: 0xa000c602, 0x176d5: 0xadc0bf02, 0x176d6: 0xa000c102, 0x176d7: 0xa000c202, - 0x176d8: 0xa000c802, 0x176d9: 0xae60c402, 0x176da: 0xae60c502, 0x176db: 0xae60c602, - 0x176dc: 0xadc0c702, 0x176dd: 0xae60c802, 0x176de: 0xae60c902, 0x176df: 0xadc0c002, - 0x176e0: 0xe000015e, 0x176e1: 0xe00001e6, 0x176e2: 0xe0000301, 0x176e3: 0xe00003db, - 0x176e4: 0xe00004b6, 0x176e5: 0xe0000580, 0x176e6: 0xe000064b, 0x176e7: 0xe00006f3, - 0x176e8: 0xe000079f, 0x176e9: 0xe0000844, 0x176ea: 0x4004ee20, 0x176eb: 0x40024c20, - 0x176ec: 0x40024e20, 0x176ed: 0x4004de20, 0x176ee: 0x40393a20, 0x176ef: 0x403a1020, - 0x176f0: 0xa000c002, 0x176f1: 0x40392420, 0x176f2: 0x40392220, 0x176f3: 0x40392a20, - 0x176f4: 0x00391c84, 0x176f5: 0xf0000404, 0x176f6: 0xe000b00c, 0x176f7: 0xf0000404, - 0x176f8: 0xf0000404, 0x176f9: 0xcf1597a1, 0x176fa: 0x40395c20, 0x176fb: 0x40393e20, - 0x176fc: 0x40395e20, 0x176fd: 0x40396020, 0x176fe: 0xcf1197a1, 0x176ff: 0x40396220, - // Block 0x5dc, offset 0x17700 - 0x17700: 0x40394220, 0x17701: 0x40397620, 0x17702: 0x40397820, 0x17703: 0x40396620, - 0x17704: 0x40396820, 0x17705: 0x40397a20, 0x17706: 0xcf1997a1, 0x17707: 0x40396e20, - 0x17708: 0xcf1d97a1, 0x17709: 0x40398e20, 0x1770a: 0x40399020, 0x1770b: 0x40399220, - 0x1770c: 0x40399420, 0x1770d: 0x40399620, 0x1770e: 0x40399820, 0x1770f: 0x40399a20, - 0x17710: 0x40399c20, 0x17711: 0xcf2197a1, 0x17712: 0x4039aa20, 0x17713: 0x4039ac20, - 0x17714: 0x4039ae20, 0x17715: 0x4039b020, 0x17716: 0x4039b220, 0x17717: 0x4039b420, - 0x17718: 0x40396e20, 0x17719: 0x4039b820, 0x1771a: 0x4039ca20, 0x1771b: 0x4039cc20, - 0x1771c: 0x4039ce20, 0x1771d: 0x4039e020, 0x1771e: 0x4039e220, 0x1771f: 0x4039ea20, - 0x17720: 0x4039f220, 0x17721: 0x4039fe20, 0x17722: 0x403a0020, 0x17723: 0x403a0220, - 0x17724: 0x403a0420, 0x17725: 0x403a0820, 0x17726: 0x403a0a20, 0x17727: 0x403a1420, - 0x17728: 0x403a1620, 0x17729: 0xcf2397a1, 0x1772a: 0x403a1e20, 0x1772b: 0x403a2020, - 0x1772c: 0x403a2220, 0x1772d: 0x403a2620, 0x1772e: 0x403a2820, 0x1772f: 0xcf2597a1, - 0x17730: 0x403a2c20, 0x17731: 0x403a2e20, 0x17732: 0x403a3020, 0x17733: 0x403a3220, - 0x17734: 0x403a3420, 0x17735: 0x403a4220, 0x17736: 0x403a4420, 0x17737: 0x403a4620, - 0x17738: 0x403a4820, 0x17739: 0x403a6020, 0x1773a: 0xcf2d97a1, 0x1773b: 0x403a5a20, - 0x1773c: 0x403a5c20, 0x1773d: 0x403a5e20, 0x1773e: 0x4039a220, 0x1773f: 0x40396c20, - // Block 0x5dd, offset 0x17740 - 0x17740: 0xe000b009, 0x17741: 0xcf320171, 0x17742: 0x4039a021, 0x17743: 0x4039a420, - 0x17744: 0x403a7620, 0x17745: 0x403a7820, 0x17746: 0x403a7a20, 0x17747: 0x403a7c20, - 0x17748: 0x403a7e20, 0x17749: 0x403a8020, 0x1774a: 0x403a8220, 0x1774b: 0x403a8420, - 0x1774c: 0xcf3697a1, 0x1774d: 0x403a9420, 0x1774e: 0x403a9620, 0x1774f: 0x403a8620, - 0x17750: 0x403a9820, 0x17751: 0x403a9a20, 0x17752: 0xcf380171, 0x17753: 0x4039ac21, - 0x17754: 0x4002e820, 0x17755: 0x403a7220, 0x17756: 0xae600000, 0x17757: 0xae600000, - 0x17758: 0xae600000, 0x17759: 0xae600000, 0x1775a: 0xae600000, 0x1775b: 0xae600000, - 0x1775c: 0xae600000, 0x1775d: 0xa0000000, 0x1775e: 0x40071220, 0x1775f: 0xae600000, - 0x17760: 0xae600000, 0x17761: 0xae600000, 0x17762: 0xae600000, 0x17763: 0xadc00000, - 0x17764: 0xae600000, 0x17765: 0x003a7484, 0x17766: 0x003a9084, 0x17767: 0xae600000, - 0x17768: 0xae600000, 0x17769: 0x40071420, 0x1776a: 0xadc00000, 0x1776b: 0xae600000, - 0x1776c: 0xae600000, 0x1776d: 0xadc00000, 0x1776e: 0x40399e20, 0x1776f: 0x4039ba20, - 0x17770: 0xe0000161, 0x17771: 0xe00001e9, 0x17772: 0xe0000304, 0x17773: 0xe00003de, - 0x17774: 0xe00004b9, 0x17775: 0xe0000583, 0x17776: 0xe000064e, 0x17777: 0xe00006f6, - 0x17778: 0xe00007a2, 0x17779: 0xe0000847, 0x1777a: 0x4039d020, 0x1777b: 0x4039e420, - 0x1777c: 0x4039f420, 0x1777d: 0xe0001553, 0x1777e: 0xe0001779, 0x1777f: 0x403a7020, - // Block 0x5de, offset 0x17780 - 0x17780: 0xe000155f, 0x17781: 0xe0001565, 0x17782: 0xe000157a, 0x17783: 0xe00015b0, - 0x17784: 0xe00015b6, 0x17785: 0xe000ae29, 0x17786: 0xe000ae2f, 0x17787: 0xe000ae35, - 0x17788: 0xe000ae47, 0x17789: 0xf0001a1a, 0x1778a: 0xf0001a1a, 0x1778b: 0xe000ae50, - 0x1778c: 0xe000ae56, 0x1778d: 0xe000ae5c, 0x1778e: 0xe000ae6e, 0x1778f: 0xe000289a, - 0x17790: 0xe0003667, 0x17791: 0xe000ae74, 0x17792: 0xe000ae86, 0x17793: 0xe00028a0, - 0x17794: 0xe0003670, 0x17795: 0xe000ae8f, 0x17796: 0xe000ae95, 0x17797: 0xe000ae9b, - 0x17798: 0xe000aea1, 0x17799: 0xe000aea7, 0x1779a: 0xe000aeaa, 0x1779b: 0xe000aeb0, - 0x1779c: 0xe000aebf, 0x1779d: 0xe000aec8, 0x1779e: 0xe000aed1, 0x1779f: 0xe000aee0, - 0x177a0: 0xe000af1c, 0x177a1: 0xe000af2b, 0x177a2: 0xe000af31, 0x177a3: 0xe000af37, - 0x177a4: 0xe000af3d, 0x177a5: 0xe000af49, 0x177a6: 0xe000af4f, 0x177a7: 0xe000af58, - 0x177a8: 0xe000af61, 0x177a9: 0xe000af67, 0x177aa: 0xe000af6d, 0x177ab: 0xe000af73, - 0x177ac: 0xe000af79, 0x177ad: 0xe000af7f, 0x177ae: 0xe000af85, 0x177af: 0xe000af8b, - 0x177b0: 0xe000af91, 0x177b1: 0xe00028e2, 0x177b2: 0xe00036be, 0x177b3: 0xe000af97, - 0x177b4: 0xe000af9d, 0x177b5: 0xe00028e8, 0x177b6: 0xe00036c4, 0x177b7: 0xf0001a1a, - 0x177b8: 0xe00036d0, 0x177b9: 0xe00036d6, 0x177ba: 0xe00036dc, 0x177bb: 0xe00036e8, - 0x177bc: 0xe00036f4, 0x177bd: 0xf0001a1a, 0x177be: 0xf0001a1a, 0x177bf: 0xe000afa9, - // Block 0x5df, offset 0x177c0 - 0x177c0: 0xe000afaf, 0x177c1: 0xe000afb5, 0x177c2: 0xe000afc1, 0x177c3: 0xe00028f4, - 0x177c4: 0xe0003703, 0x177c5: 0xe000afca, 0x177c6: 0xe000afd0, 0x177c7: 0xe000afd6, - 0x177c8: 0xe000afdf, 0x177c9: 0xe00028f7, 0x177ca: 0xe0003706, 0x177cb: 0xe000afe5, - 0x177cc: 0xe000afeb, 0x177cd: 0xe000aff1, 0x177ce: 0xe000b003, 0x177cf: 0xe00028fd, - 0x177d0: 0xe0003712, 0x177d1: 0xe000371b, 0x177d2: 0xe0003721, 0x177d3: 0xf0001a1a, - 0x177d4: 0xf0001a1a, 0x177d5: 0xe000373c, 0x177d6: 0xe0003742, 0x177d7: 0xe0003748, - 0x177d8: 0xe000375a, 0x177d9: 0xf0001a1a, 0x177da: 0xf0001a1a, 0x177db: 0xe000aeb3, - 0x177dc: 0xe000aeb6, 0x177dd: 0xe0003733, 0x177de: 0xe0000003, 0x177df: 0xe0000006, - 0x177e0: 0xe0000009, 0x177e1: 0xe000000c, 0x177e2: 0xe000000f, 0x177e3: 0xe0000012, - 0x177e4: 0xe000156b, 0x177e5: 0xe000156e, 0x177e6: 0xe0001577, 0x177e7: 0xe000157d, - 0x177e8: 0xe00015aa, 0x177e9: 0xe00015b3, 0x177ea: 0xe000ae38, 0x177eb: 0xe000ae3b, - 0x177ec: 0xe000ae44, 0x177ed: 0xe000ae4a, 0x177ee: 0xf0001919, 0x177ef: 0xf0001919, - 0x177f0: 0xe000ae5f, 0x177f1: 0xe000ae62, 0x177f2: 0xe000ae6b, 0x177f3: 0xe000ae71, - 0x177f4: 0xe0002897, 0x177f5: 0xe0003664, 0x177f6: 0xe000ae77, 0x177f7: 0xe000ae7a, - 0x177f8: 0xe000ae83, 0x177f9: 0xe000ae89, 0x177fa: 0xe000289d, 0x177fb: 0xe000366d, - 0x177fc: 0xe00028df, 0x177fd: 0xe00036bb, 0x177fe: 0xe00028e5, 0x177ff: 0xe00036c1, - // Block 0x5e0, offset 0x17800 - 0x17800: 0xf0001919, 0x17801: 0xe00036e5, 0x17802: 0xe00036f1, 0x17803: 0xf0001919, - 0x17804: 0xf0001919, 0x17805: 0xe000afbe, 0x17806: 0xe00028f1, 0x17807: 0xe0003700, - 0x17808: 0xe000afc4, 0x17809: 0xe000afdc, 0x1780a: 0xe000aff4, 0x1780b: 0xe000aff7, - 0x1780c: 0xe000b000, 0x1780d: 0xe000b006, 0x1780e: 0xe00028fa, 0x1780f: 0xe000370f, - 0x17810: 0xe0003730, 0x17811: 0xe000374b, 0x17812: 0xe000374e, 0x17813: 0xe0003757, - 0x17814: 0xe000375d, 0x17815: 0xf0001919, 0x17816: 0xf0001919, 0x17817: 0xe000155c, - 0x17818: 0xe0001562, 0x17819: 0xe0001568, 0x1781a: 0xe0001571, 0x1781b: 0xe0001580, - 0x1781c: 0xe000ae26, 0x1781d: 0xe000ae2c, 0x1781e: 0xe000ae32, 0x1781f: 0xe000ae3e, - 0x17820: 0xf0001717, 0x17821: 0xe000ae4d, 0x17822: 0xe000ae53, 0x17823: 0xe000ae59, - 0x17824: 0xe000ae65, 0x17825: 0xe000365e, 0x17826: 0xe000ae7d, 0x17827: 0xe000ae8c, - 0x17828: 0xe000ae92, 0x17829: 0xe000ae98, 0x1782a: 0xe000ae9e, 0x1782b: 0xe000aea4, - 0x1782c: 0xe000aead, 0x1782d: 0xe000aeb9, 0x1782e: 0xe000aec2, 0x1782f: 0xe000aecb, - 0x17830: 0xe000aeda, 0x17831: 0xe000af19, 0x17832: 0xe000af1f, 0x17833: 0xe000af28, - 0x17834: 0xe000af2e, 0x17835: 0xe000af34, 0x17836: 0xe000af3a, 0x17837: 0xe000af46, - 0x17838: 0xe000af4c, 0x17839: 0xe000af5b, 0x1783a: 0xe000af64, 0x1783b: 0xe000af6a, - 0x1783c: 0xe000af70, 0x1783d: 0xe000af76, 0x1783e: 0xe000af7c, 0x1783f: 0xe000af82, - // Block 0x5e1, offset 0x17840 - 0x17840: 0xe000af88, 0x17841: 0xe000af8e, 0x17842: 0xe000af94, 0x17843: 0xe000af9a, - 0x17844: 0xe00036cd, 0x17845: 0xe00036d3, 0x17846: 0xe00036d9, 0x17847: 0xe00036df, - 0x17848: 0xe00036eb, 0x17849: 0xe000afa6, 0x1784a: 0xe000afac, 0x1784b: 0xe000afb2, - 0x1784c: 0xe000afb8, 0x1784d: 0xe00036fd, 0x1784e: 0xe000afc7, 0x1784f: 0xe000afcd, - 0x17850: 0xe000afd3, 0x17851: 0xe000afd9, 0x17852: 0xe000afe2, 0x17853: 0xe000afe8, - 0x17854: 0xe000afee, 0x17855: 0xe000affa, 0x17856: 0xe0003709, 0x17857: 0xe0003718, - 0x17858: 0xe000371e, 0x17859: 0xe0003715, 0x1785a: 0xe0003739, 0x1785b: 0xe000373f, - 0x1785c: 0xe0003745, 0x1785d: 0xe0003751, 0x1785e: 0xf0001717, 0x1785f: 0xe0001574, - 0x17860: 0xe0001583, 0x17861: 0xe000ae41, 0x17862: 0xf0001818, 0x17863: 0xe000ae68, - 0x17864: 0xe0003661, 0x17865: 0xe000ae80, 0x17866: 0xe000366a, 0x17867: 0xe000aedd, - 0x17868: 0xe0003688, 0x17869: 0xe000af10, 0x1786a: 0xe0003694, 0x1786b: 0xe00036e2, - 0x1786c: 0xe00036ee, 0x1786d: 0xe000afbb, 0x1786e: 0xe000affd, 0x1786f: 0xe000370c, - 0x17870: 0xe0003754, 0x17871: 0xf0001818, 0x17872: 0xe000ae23, 0x17873: 0xe0003646, - 0x17874: 0xe0003649, 0x17875: 0xe00028d0, 0x17876: 0xe00036ac, 0x17877: 0xe00028d6, - 0x17878: 0xe00036b2, 0x17879: 0xe00028dc, 0x1787a: 0xe00036b8, 0x1787b: 0xe00028b8, - 0x1787c: 0xe000368e, 0x1787d: 0xe00028be, 0x1787e: 0xe000369a, 0x1787f: 0xe00028ac, - // Block 0x5e2, offset 0x17880 - 0x17880: 0xe000367c, 0x17881: 0xe00028a6, 0x17882: 0xe0003676, 0x17883: 0xe00028b2, - 0x17884: 0xe0003682, 0x17885: 0xe00028c4, 0x17886: 0xe00036a0, 0x17887: 0xe00028ca, - 0x17888: 0xe00036a6, 0x17889: 0xe000aeec, 0x1788a: 0xe000aef8, 0x1788b: 0xe000af04, - 0x1788c: 0xe000af16, 0x1788d: 0xe000af0a, 0x1788e: 0xe000aed7, 0x1788f: 0xe000af25, - 0x17890: 0xe000af43, 0x17891: 0xe00028cd, 0x17892: 0xe00036a9, 0x17893: 0xe00028d3, - 0x17894: 0xe00036af, 0x17895: 0xe00028d9, 0x17896: 0xe00036b5, 0x17897: 0xe00028b5, - 0x17898: 0xe000368b, 0x17899: 0xe00028bb, 0x1789a: 0xe0003697, 0x1789b: 0xe00028a9, - 0x1789c: 0xe0003679, 0x1789d: 0xe00028a3, 0x1789e: 0xe0003673, 0x1789f: 0xe00028af, - 0x178a0: 0xe000367f, 0x178a1: 0xe00028c1, 0x178a2: 0xe000369d, 0x178a3: 0xe00028c7, - 0x178a4: 0xe00036a3, 0x178a5: 0xe000aee9, 0x178a6: 0xe000aef5, 0x178a7: 0xe000af01, - 0x178a8: 0xe000af13, 0x178a9: 0xe000af07, 0x178aa: 0xe000aed4, 0x178ab: 0xe000af22, - 0x178ac: 0xe000af40, 0x178ad: 0xe000aee3, 0x178ae: 0xe000aeef, 0x178af: 0xe000aefb, - 0x178b0: 0xe000af0d, 0x178b1: 0xe0003685, 0x178b2: 0xe0003691, 0x178b3: 0xe000af52, - 0x178b4: 0xe000aebc, 0x178b5: 0xe000aec5, 0x178b6: 0xe000aece, 0x178b7: 0xe000aee6, - 0x178b8: 0xe000aef2, 0x178b9: 0xe000aefe, 0x178ba: 0xe000af55, 0x178bb: 0xe000af5e, - 0x178bc: 0xe000364c, 0x178bd: 0xe000364f, 0x178be: 0x4004c020, 0x178bf: 0x4004c220, - // Block 0x5e3, offset 0x178c0 - 0x178c0: 0x0039de98, 0x178c1: 0x0039e69a, 0x178c2: 0x0039e699, 0x178c3: 0x0039e697, - 0x178c4: 0x0039e698, 0x178c5: 0x0039e89a, 0x178c6: 0x0039e899, 0x178c7: 0x0039e897, - 0x178c8: 0x0039e898, 0x178c9: 0x0039ee9a, 0x178ca: 0x0039ee99, 0x178cb: 0x0039ee97, - 0x178cc: 0x0039ee98, 0x178cd: 0x0039f09a, 0x178ce: 0x0039f099, 0x178cf: 0x0039f097, - 0x178d0: 0x0039f098, 0x178d1: 0x0039fc9a, 0x178d2: 0x0039fc99, 0x178d3: 0x0039fc97, - 0x178d4: 0x0039fc98, 0x178d5: 0x003a129a, 0x178d6: 0x003a1299, 0x178d7: 0x003a1297, - 0x178d8: 0x003a1298, 0x178d9: 0x003a1a9a, 0x178da: 0x003a1a99, 0x178db: 0x003a1a97, - 0x178dc: 0x003a1a98, 0x178dd: 0x003a409a, 0x178de: 0x003a4099, 0x178df: 0x003a4097, - 0x178e0: 0x003a4098, 0x178e1: 0x003a4e9a, 0x178e2: 0x003a4e99, 0x178e3: 0x003a4e97, - 0x178e4: 0x003a4e98, 0x178e5: 0x003a569a, 0x178e6: 0x003a5699, 0x178e7: 0x003a5697, - 0x178e8: 0x003a5698, 0x178e9: 0x003a689a, 0x178ea: 0x003a6899, 0x178eb: 0x003a6897, - 0x178ec: 0x003a6898, 0x178ed: 0x003a749a, 0x178ee: 0x003a7499, 0x178ef: 0x003a8e9a, - 0x178f0: 0x003a8e99, 0x178f1: 0x003a909a, 0x178f2: 0x003a9099, 0x178f3: 0x003a9097, - 0x178f4: 0x003a9098, 0x178f5: 0xe0001732, 0x178f6: 0xe000172f, 0x178f7: 0xe0001738, - 0x178f8: 0xe0001735, 0x178f9: 0xe000173e, 0x178fa: 0xe000173b, 0x178fb: 0xe000afa3, - 0x178fc: 0xe000afa0, 0x178ff: 0xa0000000, - // Block 0x5e4, offset 0x17900 - 0x17900: 0xa0000000, 0x17901: 0xa0000000, 0x17902: 0xa0000000, 0x17903: 0xa0000000, - 0x17904: 0xa0000000, 0x17905: 0xa0000000, 0x17906: 0xa0000000, 0x17907: 0xa0000000, - 0x17908: 0xa0000000, 0x17909: 0x40020020, 0x1790a: 0x40020220, 0x1790b: 0x40020420, - 0x1790c: 0x40020620, 0x1790d: 0x40020820, 0x1790e: 0xa0000000, 0x1790f: 0xa0000000, - 0x17910: 0xa0000000, 0x17911: 0xa0000000, 0x17912: 0xa0000000, 0x17913: 0xa0000000, - 0x17914: 0xa0000000, 0x17915: 0xa0000000, 0x17916: 0xa0000000, 0x17917: 0xa0000000, - 0x17918: 0xa0000000, 0x17919: 0xa0000000, 0x1791a: 0xa0000000, 0x1791b: 0xa0000000, - 0x1791c: 0xa0000000, 0x1791d: 0xa0000000, 0x1791e: 0xa0000000, 0x1791f: 0xa0000000, - 0x17920: 0x40021220, 0x17921: 0x4002ba20, 0x17922: 0x4003e020, 0x17923: 0x4004ea20, - 0x17924: 0x4027de20, 0x17925: 0x4004ec20, 0x17926: 0x4004e620, 0x17927: 0x4003d220, - 0x17928: 0x4003f420, 0x17929: 0x4003f620, 0x1792a: 0x4004d820, 0x1792b: 0x40093820, - 0x1792c: 0x40024020, 0x1792d: 0x40021a20, 0x1792e: 0x4002e420, 0x1792f: 0x4004e220, - 0x17930: 0x4029cc20, 0x17931: 0x4029ce20, 0x17932: 0x4029d020, 0x17933: 0x4029d220, - 0x17934: 0x4029d420, 0x17935: 0x4029d620, 0x17936: 0x4029d820, 0x17937: 0x4029da20, - 0x17938: 0x4029dc20, 0x17939: 0x4029de20, 0x1793a: 0x40026c20, 0x1793b: 0x40026220, - 0x1793c: 0x40094020, 0x1793d: 0x40094220, 0x1793e: 0x40094420, 0x1793f: 0x4002c420, - // Block 0x5e5, offset 0x17940 - 0x17940: 0x4004d620, 0x17941: 0xce4a94d1, 0x17942: 0x002c0a88, 0x17943: 0x002c3a88, - 0x17944: 0x002c6288, 0x17945: 0xce0a2741, 0x17946: 0x002d0888, 0x17947: 0x002d2288, - 0x17948: 0x002d6888, 0x17949: 0x002d9a88, 0x1794a: 0x002dcc88, 0x1794b: 0x002dfe88, - 0x1794c: 0xc0030002, 0x1794d: 0x002e8288, 0x1794e: 0x002e9e88, 0x1794f: 0xcf3d9801, - 0x17950: 0x002f2c88, 0x17951: 0x002f5688, 0x17952: 0x002f7a88, 0x17953: 0x002fe688, - 0x17954: 0x00302c88, 0x17955: 0xc3479831, 0x17956: 0x0030be88, 0x17957: 0x0030e288, - 0x17958: 0x0030f688, 0x17959: 0x00310088, 0x1795a: 0x00312a88, 0x1795b: 0x4003f820, - 0x1795c: 0x4004e420, 0x1795d: 0x4003fa20, 0x1795e: 0x40062420, 0x1795f: 0x40021620, - 0x17960: 0x40061e20, 0x17961: 0xce4794d1, 0x17962: 0x402c0a20, 0x17963: 0x402c3a20, - 0x17964: 0x402c6220, 0x17965: 0xce082741, 0x17966: 0x402d0820, 0x17967: 0x402d2220, - 0x17968: 0x402d6820, 0x17969: 0x402d9a20, 0x1796a: 0x402dcc20, 0x1796b: 0x402dfe20, - 0x1796c: 0xc0000002, 0x1796d: 0x402e8220, 0x1796e: 0x402e9e20, 0x1796f: 0xcf3a9801, - 0x17970: 0x402f2c20, 0x17971: 0x402f5620, 0x17972: 0x402f7a20, 0x17973: 0x402fe620, - 0x17974: 0x40302c20, 0x17975: 0xc3459831, 0x17976: 0x4030be20, 0x17977: 0x4030e220, - 0x17978: 0x4030f620, 0x17979: 0x40310020, 0x1797a: 0x40312a20, 0x1797b: 0x4003fc20, - 0x1797c: 0x40094820, 0x1797d: 0x4003fe20, 0x1797e: 0x40094c20, 0x1797f: 0xa0000000, - // Block 0x5e6, offset 0x17980 - 0x17980: 0xe00008f5, 0x17981: 0xe000b02a, 0x17982: 0x002be283, 0x17983: 0xe000b024, - 0x17984: 0xe000095b, 0x17985: 0xe000094d, 0x17986: 0xe00009dd, 0x17987: 0xe0000a53, - 0x17988: 0xe0000ae8, 0x17989: 0xe000b09e, 0x1798a: 0x002c9a83, 0x1798b: 0xe0000b20, - 0x1798c: 0xe0000c2b, 0x1798d: 0xe000b0e2, 0x1798e: 0xe0000c37, 0x1798f: 0xe0000c43, - 0x17990: 0xe0000ab3, 0x17991: 0xe000b122, 0x17992: 0xe0000d9a, 0x17993: 0xe000b158, - 0x17994: 0x002ee483, 0x17995: 0xe000b13a, 0x17996: 0xe0000dd2, 0x17997: 0x40093e20, - 0x17998: 0xe0000e12, 0x17999: 0xe0000fe1, 0x1799a: 0xe000b1fa, 0x1799b: 0xe0000fed, - 0x1799c: 0xe0000fff, 0x1799d: 0xe000b24a, 0x1799e: 0x00318888, 0x1799f: 0xe0000f7b, - 0x179a0: 0xe00008f2, 0x179a1: 0xe000b027, 0x179a2: 0x402be220, 0x179a3: 0xe000b021, - 0x179a4: 0xe0000958, 0x179a5: 0xe000094a, 0x179a6: 0xe00009d5, 0x179a7: 0xe0000a4d, - 0x179a8: 0xe0000ae5, 0x179a9: 0xe000b09b, 0x179aa: 0x402c9a20, 0x179ab: 0xe0000b1d, - 0x179ac: 0xe0000c28, 0x179ad: 0xe000b0df, 0x179ae: 0xe0000c34, 0x179af: 0xe0000c40, - 0x179b0: 0xe0000aad, 0x179b1: 0xe000b11f, 0x179b2: 0xe0000d97, 0x179b3: 0xe000b155, - 0x179b4: 0x402ee420, 0x179b5: 0xe000b137, 0x179b6: 0xe0000dcf, 0x179b7: 0x40093c20, - 0x179b8: 0xe0000e0f, 0x179b9: 0xe0000fde, 0x179ba: 0xe000b1f7, 0x179bb: 0xe0000fea, - 0x179bc: 0xe0000ffc, 0x179bd: 0xe000b247, 0x179be: 0x40318820, 0x179bf: 0xe0001114, - // Block 0x5e7, offset 0x179c0 - 0x179c0: 0xe0000983, 0x179c1: 0xe0000980, 0x179c2: 0x002be083, 0x179c3: 0x402be020, - 0x179c4: 0xe000097d, 0x179c5: 0xe000097a, 0x179c6: 0xe000b07e, 0x179c7: 0xe000b07b, - 0x179c8: 0xe0000a3e, 0x179c9: 0xe0000a3b, 0x179ca: 0xe0000a4a, 0x179cb: 0xe0000a47, - 0x179cc: 0xe0000a44, 0x179cd: 0xe0000a41, 0x179ce: 0xe0000a86, 0x179cf: 0xe0000a83, - 0x179d0: 0x002c6483, 0x179d1: 0x402c6420, 0x179d2: 0xe0000b46, 0x179d3: 0xe0000b43, - 0x179d4: 0xe0000aee, 0x179d5: 0xe0000aeb, 0x179d6: 0xe0000b2c, 0x179d7: 0xe0000b29, - 0x179d8: 0xe0000b40, 0x179d9: 0xe0000b3d, 0x179da: 0xe0000b1a, 0x179db: 0xe0000b17, - 0x179dc: 0xe0000bb8, 0x179dd: 0xe0000bb5, 0x179de: 0xe0000bb2, 0x179df: 0xe0000baf, - 0x179e0: 0xe0000bc4, 0x179e1: 0xe0000bc1, 0x179e2: 0xe0000bca, 0x179e3: 0xe0000bc7, - 0x179e4: 0xe0000bee, 0x179e5: 0xe0000beb, 0x179e6: 0xe0000c1b, 0x179e7: 0xe0000c18, - 0x179e8: 0xe000b0dc, 0x179e9: 0xe000b0d9, 0x179ea: 0xe0000c60, 0x179eb: 0xe0000c5d, - 0x179ec: 0xe0000c31, 0x179ed: 0xe0000c2e, 0x179ee: 0xe0000c5a, 0x179ef: 0xe0000c57, - 0x179f0: 0xe0000c54, 0x179f1: 0x402da220, 0x179f2: 0xf0000a0a, 0x179f3: 0xf0000404, - 0x179f4: 0xe0000c8a, 0x179f5: 0xe0000c87, 0x179f6: 0xe0000c9f, 0x179f7: 0xe0000c9c, - 0x179f8: 0x402f7220, 0x179f9: 0xe000b102, 0x179fa: 0xe000b0ff, 0x179fb: 0xe0000cd8, - 0x179fc: 0xe0000cd5, 0x179fd: 0xe0000cd2, 0x179fe: 0xe0000ccf, 0x179ff: 0xe0000d04, - // Block 0x5e8, offset 0x17a00 - 0x17a00: 0xe0000cfe, 0x17a01: 0xe0000cf8, 0x17a02: 0xe0000cf5, 0x17a03: 0xe000b128, - 0x17a04: 0xe000b125, 0x17a05: 0xe0000d6f, 0x17a06: 0xe0000d6c, 0x17a07: 0xe0000d5d, - 0x17a08: 0xe0000d5a, 0x17a09: 0xf0000404, 0x17a0a: 0x002eda88, 0x17a0b: 0x402eda20, - 0x17a0c: 0xe0000e2e, 0x17a0d: 0xe0000e2b, 0x17a0e: 0xe0000da0, 0x17a0f: 0xe0000d9d, - 0x17a10: 0xe0000de0, 0x17a11: 0xe0000ddd, 0x17a12: 0xe0000e93, 0x17a13: 0xe0000e8f, - 0x17a14: 0xe000b1b0, 0x17a15: 0xe000b1ad, 0x17a16: 0xe0000edc, 0x17a17: 0xe0000ed9, - 0x17a18: 0xe0000ed0, 0x17a19: 0xe0000ecd, 0x17a1a: 0xe000b1c4, 0x17a1b: 0xe000b1c1, - 0x17a1c: 0xe0000f2d, 0x17a1d: 0xe0000f2a, 0x17a1e: 0xe0000f47, 0x17a1f: 0xe0000f44, - 0x17a20: 0xe0000f33, 0x17a21: 0xe0000f30, 0x17a22: 0xe0000f99, 0x17a23: 0xe0000f96, - 0x17a24: 0xe0000f8a, 0x17a25: 0xe0000f87, 0x17a26: 0x00303688, 0x17a27: 0x40303620, - 0x17a28: 0xe000b1ec, 0x17a29: 0xe000b1e9, 0x17a2a: 0xe000103f, 0x17a2b: 0xe000103c, - 0x17a2c: 0xe0000fe7, 0x17a2d: 0xe0000fe4, 0x17a2e: 0xe0000ff9, 0x17a2f: 0xe0000ff6, - 0x17a30: 0xe0001025, 0x17a31: 0xe0001022, 0x17a32: 0xe0001039, 0x17a33: 0xe0001036, - 0x17a34: 0xe00010d8, 0x17a35: 0xe00010d5, 0x17a36: 0xe000110e, 0x17a37: 0xe000110b, - 0x17a38: 0xe0001117, 0x17a39: 0xe000b256, 0x17a3a: 0xe000b253, 0x17a3b: 0xe000114d, - 0x17a3c: 0xe000114a, 0x17a3d: 0xe0001147, 0x17a3e: 0xe0001144, 0x17a3f: 0xe0000f64, - // Block 0x5e9, offset 0x17a40 - 0x17a40: 0x402c1a20, 0x17a41: 0x002c2a88, 0x17a42: 0x002c3288, 0x17a43: 0x402c3220, - 0x17a44: 0x0031c488, 0x17a45: 0x4031c420, 0x17a46: 0x002efa88, 0x17a47: 0x002c4e88, - 0x17a48: 0x402c4e20, 0x17a49: 0x002c7288, 0x17a4a: 0x002c7a88, 0x17a4b: 0x002c8488, - 0x17a4c: 0x402c8420, 0x17a4d: 0xe000115c, 0x17a4e: 0x002cae88, 0x17a4f: 0x002cb888, - 0x17a50: 0x002cc288, 0x17a51: 0x002d1688, 0x17a52: 0x402d1620, 0x17a53: 0x002d4488, - 0x17a54: 0x002d5888, 0x17a55: 0x402d7820, 0x17a56: 0x002dc288, 0x17a57: 0x002db688, - 0x17a58: 0x002e0a88, 0x17a59: 0x402e0a20, 0x17a5a: 0x402e3820, 0x17a5b: 0x402e7220, - 0x17a5c: 0x0030a088, 0x17a5d: 0x002eb488, 0x17a5e: 0x402ebc20, 0x17a5f: 0x002f1088, - 0x17a60: 0x002ee683, 0x17a61: 0x402ee620, 0x17a62: 0x002d6088, 0x17a63: 0x402d6020, - 0x17a64: 0x002f3e88, 0x17a65: 0x402f3e20, 0x17a66: 0x002f8288, 0x17a67: 0x0031b488, - 0x17a68: 0x4031b420, 0x17a69: 0x00300888, 0x17a6a: 0x40301220, 0x17a6b: 0x40304220, - 0x17a6c: 0x00304a88, 0x17a6d: 0x40304a20, 0x17a6e: 0x00305288, 0x17a6f: 0x00306e83, - 0x17a70: 0x40306e20, 0x17a71: 0x0030b488, 0x17a72: 0x0030cc88, 0x17a73: 0x00311888, - 0x17a74: 0x40311820, 0x17a75: 0x00313488, 0x17a76: 0x40313420, 0x17a77: 0x00316488, - 0x17a78: 0x00316e88, 0x17a79: 0x40316e20, 0x17a7a: 0x40317820, 0x17a7b: 0x4031a620, - 0x17a7c: 0x0031bc88, 0x17a7d: 0x4031bc20, 0x17a7e: 0xe0000fc9, 0x17a7f: 0x40319420, - // Block 0x5ea, offset 0x17a80 - 0x17a80: 0x40321220, 0x17a81: 0x40321a20, 0x17a82: 0x40322220, 0x17a83: 0x40322a20, - 0x17a84: 0xe0000ad5, 0x17a85: 0xe0000ad1, 0x17a86: 0xe0000acd, 0x17a87: 0xf0000a0a, - 0x17a88: 0xf000040a, 0x17a89: 0xf0000404, 0x17a8a: 0xf0000a0a, 0x17a8b: 0xf000040a, - 0x17a8c: 0xf0000404, 0x17a8d: 0xe0000947, 0x17a8e: 0xe0000944, 0x17a8f: 0xe0000c3d, - 0x17a90: 0xe0000c3a, 0x17a91: 0xe0000dcc, 0x17a92: 0xe0000dc9, 0x17a93: 0xe0000ff3, - 0x17a94: 0xe0000ff0, 0x17a95: 0xe000101e, 0x17a96: 0xe000101a, 0x17a97: 0xe000b207, - 0x17a98: 0xe000b203, 0x17a99: 0xe0001016, 0x17a9a: 0xe0001012, 0x17a9b: 0xe000100e, - 0x17a9c: 0xe000100a, 0x17a9d: 0x402cae20, 0x17a9e: 0xe0000962, 0x17a9f: 0xe000095e, - 0x17aa0: 0xe0000976, 0x17aa1: 0xe0000972, 0x17aa2: 0xe00009f4, 0x17aa3: 0xe00009ef, - 0x17aa4: 0x002d3a88, 0x17aa5: 0x402d3a20, 0x17aa6: 0xe0000bbe, 0x17aa7: 0xe0000bbb, - 0x17aa8: 0xe0000c99, 0x17aa9: 0xe0000c96, 0x17aaa: 0xe0000e20, 0x17aab: 0xe0000e1d, - 0x17aac: 0xe0000e27, 0x17aad: 0xe0000e23, 0x17aae: 0xe0001162, 0x17aaf: 0xe000115f, - 0x17ab0: 0xe0000c8d, 0x17ab1: 0xf0000a0a, 0x17ab2: 0xf000040a, 0x17ab3: 0xf0000404, - 0x17ab4: 0xe000b0ca, 0x17ab5: 0xe000b0c7, 0x17ab6: 0x002d7888, 0x17ab7: 0x00319488, - 0x17ab8: 0xe0000d57, 0x17ab9: 0xe0000d54, 0x17aba: 0xe000b037, 0x17abb: 0xe000b033, - 0x17abc: 0xe000b040, 0x17abd: 0xe000b03b, 0x17abe: 0xe000b165, 0x17abf: 0xe000b161, - // Block 0x5eb, offset 0x17ac0 - 0x17ac0: 0xe000098f, 0x17ac1: 0xe000098c, 0x17ac2: 0xe0000995, 0x17ac3: 0xe0000992, - 0x17ac4: 0xe0000b62, 0x17ac5: 0xe0000b5f, 0x17ac6: 0xe0000b68, 0x17ac7: 0xe0000b65, - 0x17ac8: 0xe0000c6c, 0x17ac9: 0xe0000c69, 0x17aca: 0xe0000c72, 0x17acb: 0xe0000c6f, - 0x17acc: 0xe0000e4a, 0x17acd: 0xe0000e47, 0x17ace: 0xe0000e50, 0x17acf: 0xe0000e4d, - 0x17ad0: 0xe0000ee8, 0x17ad1: 0xe0000ee5, 0x17ad2: 0xe0000eee, 0x17ad3: 0xe0000eeb, - 0x17ad4: 0xe0001053, 0x17ad5: 0xe0001050, 0x17ad6: 0xe0001059, 0x17ad7: 0xe0001056, - 0x17ad8: 0xe0000f61, 0x17ad9: 0xe0000f5e, 0x17ada: 0xe0000fa5, 0x17adb: 0xe0000fa2, - 0x17adc: 0x00312288, 0x17add: 0x40312220, 0x17ade: 0xe0000bf4, 0x17adf: 0xe0000bf1, - 0x17ae0: 0x002ebc88, 0x17ae1: 0x402c8c20, 0x17ae2: 0x002f2288, 0x17ae3: 0x402f2220, - 0x17ae4: 0x00314088, 0x17ae5: 0x40314020, 0x17ae6: 0xe000096f, 0x17ae7: 0xe000096c, - 0x17ae8: 0xe0000b32, 0x17ae9: 0xe0000b2f, 0x17aea: 0xe0000dd9, 0x17aeb: 0xe0000dd5, - 0x17aec: 0xe000b151, 0x17aed: 0xe000b14d, 0x17aee: 0xe0000e04, 0x17aef: 0xe0000e01, - 0x17af0: 0xe0000e0b, 0x17af1: 0xe0000e07, 0x17af2: 0xe0001129, 0x17af3: 0xe0001126, - 0x17af4: 0x402e5e20, 0x17af5: 0x402ed020, 0x17af6: 0x40305a20, 0x17af7: 0x402dd420, - 0x17af8: 0xe0000abf, 0x17af9: 0xe0000ec4, 0x17afa: 0x002be888, 0x17afb: 0x002c4488, - 0x17afc: 0x402c4420, 0x17afd: 0x002e3888, 0x17afe: 0x00303e88, 0x17aff: 0x402ffc20, - // Block 0x5ec, offset 0x17b00 - 0x17b00: 0xae603502, 0x17b01: 0xae603802, 0x17b02: 0xae603c02, 0x17b03: 0xae603702, - 0x17b04: 0xae605b02, 0x17b05: 0xae606302, 0x17b06: 0xae603702, 0x17b07: 0xae605202, - 0x17b08: 0xae604702, 0x17b09: 0xae603602, 0x17b0a: 0xae604302, 0x17b0b: 0xae604d02, - 0x17b0c: 0xae604102, 0x17b0d: 0xae605f02, 0x17b0e: 0xae605f02, 0x17b0f: 0xae606502, - 0x17b10: 0xae606602, 0x17b11: 0xae606702, 0x17b12: 0xae605f02, 0x17b13: 0xae602202, - 0x17b14: 0xae602a02, 0x17b15: 0xae805f02, 0x17b16: 0xadc06002, 0x17b17: 0xadc06002, - 0x17b18: 0xadc06002, 0x17b19: 0xadc06002, 0x17b1a: 0xae805f02, 0x17b1b: 0xad806802, - 0x17b1c: 0xadc06002, 0x17b1d: 0xadc06002, 0x17b1e: 0xadc06002, 0x17b1f: 0xadc06002, - 0x17b20: 0xadc06002, 0x17b21: 0xaca06e02, 0x17b22: 0xaca06f02, 0x17b23: 0xae603902, - 0x17b24: 0xadc07502, 0x17b25: 0xadc07602, 0x17b26: 0xadc07702, 0x17b27: 0xaca05602, - 0x17b28: 0xaca05902, 0x17b29: 0xadc06002, 0x17b2a: 0xadc06002, 0x17b2b: 0xadc06002, - 0x17b2c: 0xadc06002, 0x17b2d: 0xadc07802, 0x17b2e: 0xadc07902, 0x17b2f: 0xadc06002, - 0x17b30: 0xadc07a02, 0x17b31: 0xadc07b02, 0x17b32: 0xadc02102, 0x17b33: 0xadc06002, - 0x17b34: 0xa0107c02, 0x17b35: 0xa0107d02, 0x17b36: 0xa0106102, 0x17b37: 0xa0106102, - 0x17b38: 0xa0105402, 0x17b39: 0xadc07e02, 0x17b3a: 0xadc06002, 0x17b3b: 0xadc06002, - 0x17b3c: 0xadc06002, 0x17b3d: 0xae605f02, 0x17b3e: 0xae605f02, 0x17b3f: 0xae605f02, - // Block 0x5ed, offset 0x17b40 - 0x17b40: 0xae603502, 0x17b41: 0xae603802, 0x17b42: 0xae604502, 0x17b43: 0xae602202, - 0x17b44: 0xe000b00f, 0x17b45: 0xaf007f02, 0x17b46: 0xae605f02, 0x17b47: 0xadc06002, - 0x17b48: 0xadc06002, 0x17b49: 0xadc06002, 0x17b4a: 0xae605f02, 0x17b4b: 0xae605f02, - 0x17b4c: 0xae605f02, 0x17b4d: 0xadc06002, 0x17b4e: 0xadc06002, 0x17b4f: 0xa0000000, - 0x17b50: 0xae605f02, 0x17b51: 0xae605f02, 0x17b52: 0xae605f02, 0x17b53: 0xadc06002, - 0x17b54: 0xadc06002, 0x17b55: 0xadc06002, 0x17b56: 0xadc06002, 0x17b57: 0xae605f02, - 0x17b58: 0xae808002, 0x17b59: 0xadc06002, 0x17b5a: 0xadc06002, 0x17b5b: 0xae605f02, - 0x17b5c: 0xae906002, 0x17b5d: 0xaea05f02, 0x17b5e: 0xaea05f02, 0x17b5f: 0xae906002, - 0x17b60: 0xaea08102, 0x17b61: 0xaea08202, 0x17b62: 0xae906002, 0x17b63: 0x84e615ef, - 0x17b64: 0x84e6164c, 0x17b65: 0x84e616cd, 0x17b66: 0x84e61771, 0x17b67: 0x84e61836, - 0x17b68: 0x84e6161d, 0x17b69: 0x84e61631, 0x17b6a: 0x84e616b4, 0x17b6b: 0x84e61741, - 0x17b6c: 0x84e617bd, 0x17b6d: 0x84e61816, 0x17b6e: 0x84e6185f, 0x17b6f: 0x84e6187b, - 0x17b70: 0x00326688, 0x17b71: 0x40326620, 0x17b72: 0x0032a688, 0x17b73: 0x4032a620, - 0x17b74: 0x40064020, 0x17b75: 0x40064220, 0x17b76: 0x00326088, 0x17b77: 0x40326020, - 0x17b7a: 0x00326c84, 0x17b7b: 0x40329220, - 0x17b7c: 0x40329020, 0x17b7d: 0x40329420, 0x17b7e: 0x40026220, - // Block 0x5ee, offset 0x17b80 - 0x17b84: 0x40062020, 0x17b85: 0xe000b012, 0x17b86: 0xe000b286, 0x17b87: 0x40030620, - 0x17b88: 0xe000b2a0, 0x17b89: 0xe000b2ca, 0x17b8a: 0xe000b2e4, - 0x17b8c: 0xe000b2fe, 0x17b8e: 0xe000b310, 0x17b8f: 0xe000b33e, - 0x17b90: 0xe000b2e7, 0x17b91: 0x00325288, 0x17b92: 0x00325488, 0x17b93: 0x00325688, - 0x17b94: 0x00325a88, 0x17b95: 0x00325c88, 0x17b96: 0x00326488, 0x17b97: 0x00326888, - 0x17b98: 0x00326a88, 0x17b99: 0x00326c88, 0x17b9a: 0x00327088, 0x17b9b: 0x00327288, - 0x17b9c: 0x00327688, 0x17b9d: 0x00327888, 0x17b9e: 0x00327a88, 0x17b9f: 0x00327c88, - 0x17ba0: 0x00327e88, 0x17ba1: 0x00328888, 0x17ba3: 0x00328e88, - 0x17ba4: 0x00329688, 0x17ba5: 0x00329888, 0x17ba6: 0x00329a88, 0x17ba7: 0x00329c88, - 0x17ba8: 0x00329e88, 0x17ba9: 0x0032a288, 0x17baa: 0xe000134f, 0x17bab: 0xe00013f2, - 0x17bac: 0xe000b283, 0x17bad: 0xe000b29d, 0x17bae: 0xe000b2c7, 0x17baf: 0xe000b2e1, - 0x17bb0: 0xe000b313, 0x17bb1: 0x40325220, 0x17bb2: 0x40325420, 0x17bb3: 0x40325620, - 0x17bb4: 0x40325a20, 0x17bb5: 0x40325c20, 0x17bb6: 0x40326420, 0x17bb7: 0x40326820, - 0x17bb8: 0x40326a20, 0x17bb9: 0x40326c20, 0x17bba: 0x40327020, 0x17bbb: 0x40327220, - 0x17bbc: 0x40327620, 0x17bbd: 0x40327820, 0x17bbe: 0x40327a20, 0x17bbf: 0x40327c20, - // Block 0x5ef, offset 0x17bc0 - 0x17bc0: 0x40327e20, 0x17bc1: 0x40328820, 0x17bc2: 0x00328e99, 0x17bc3: 0x40328e20, - 0x17bc4: 0x40329620, 0x17bc5: 0x40329820, 0x17bc6: 0x40329a20, 0x17bc7: 0x40329c20, - 0x17bc8: 0x40329e20, 0x17bc9: 0x4032a220, 0x17bca: 0xe000134c, 0x17bcb: 0xe00013ef, - 0x17bcc: 0xe000b2fb, 0x17bcd: 0xe000b30d, 0x17bce: 0xe000b33b, 0x17bcf: 0xe0001368, - 0x17bd0: 0x00325484, 0x17bd1: 0x00326a84, 0x17bd2: 0x0032988a, 0x17bd3: 0xf000020a, - 0x17bd4: 0xf000020a, 0x17bd5: 0x00329a84, 0x17bd6: 0x00327e84, 0x17bd7: 0xe0001364, - 0x17bd8: 0x00328688, 0x17bd9: 0x40328620, 0x17bda: 0x00326288, 0x17bdb: 0x40326220, - 0x17bdc: 0x00325e88, 0x17bdd: 0x40325e20, 0x17bde: 0x00328488, 0x17bdf: 0x40328420, - 0x17be0: 0x0032a488, 0x17be1: 0x4032a420, 0x17be2: 0x0032e888, 0x17be3: 0x4032e820, - 0x17be4: 0x0032f288, 0x17be5: 0x4032f220, 0x17be6: 0x0032f488, 0x17be7: 0x4032f420, - 0x17be8: 0x0032fa88, 0x17be9: 0x4032fa20, 0x17bea: 0x00330888, 0x17beb: 0x40330820, - 0x17bec: 0x00330e88, 0x17bed: 0x40330e20, 0x17bee: 0x00331688, 0x17bef: 0x40331620, - 0x17bf0: 0x00327084, 0x17bf1: 0x00328884, 0x17bf2: 0x00328e84, 0x17bf3: 0x40326e20, - 0x17bf4: 0x00326a8a, 0x17bf5: 0x00325c84, 0x17bf6: 0x40092e20, 0x17bf7: 0x0032a888, - 0x17bf8: 0x4032a820, 0x17bf9: 0x00328e8a, 0x17bfa: 0x00328288, 0x17bfb: 0x40328220, - 0x17bfc: 0x40328c20, 0x17bfd: 0x00329288, 0x17bfe: 0x00329088, 0x17bff: 0x00329488, - // Block 0x5f0, offset 0x17c00 - 0x17c00: 0xe00009b1, 0x17c01: 0xe00009ae, 0x17c02: 0xe0000a22, 0x17c03: 0xe0000a1f, - 0x17c04: 0xe000b078, 0x17c05: 0xe000b075, 0x17c06: 0xe0000a2e, 0x17c07: 0xe0000a2b, - 0x17c08: 0xe000b085, 0x17c09: 0xe000b081, 0x17c0a: 0xe0000a8c, 0x17c0b: 0xe0000a89, - 0x17c0c: 0xe000b08c, 0x17c0d: 0xe000b089, 0x17c0e: 0xe0000aa4, 0x17c0f: 0xe0000aa1, - 0x17c10: 0xe0000a92, 0x17c11: 0xe0000a8f, 0x17c12: 0xe0000a9e, 0x17c13: 0xe0000a9b, - 0x17c14: 0xe0000b55, 0x17c15: 0xe0000b51, 0x17c16: 0xe000b0ab, 0x17c17: 0xe000b0a7, - 0x17c18: 0xe0000b7c, 0x17c19: 0xe0000b79, 0x17c1a: 0xe0000b82, 0x17c1b: 0xe0000b7f, - 0x17c1c: 0xe0000b39, 0x17c1d: 0xe0000b35, 0x17c1e: 0xe0000b8c, 0x17c1f: 0xe0000b89, - 0x17c20: 0xe0000bd0, 0x17c21: 0xe0000bcd, 0x17c22: 0xe0000c00, 0x17c23: 0xe0000bfd, - 0x17c24: 0xe000b0d0, 0x17c25: 0xe000b0cd, 0x17c26: 0xe0000bfa, 0x17c27: 0xe0000bf7, - 0x17c28: 0xe0000c06, 0x17c29: 0xe0000c03, 0x17c2a: 0xe0000c12, 0x17c2b: 0xe0000c0f, - 0x17c2c: 0xe0000c7e, 0x17c2d: 0xe0000c7b, 0x17c2e: 0xe000b0ef, 0x17c2f: 0xe000b0eb, - 0x17c30: 0xe000b0f6, 0x17c31: 0xe000b0f3, 0x17c32: 0xe000b0fc, 0x17c33: 0xe000b0f9, - 0x17c34: 0xe0000cb1, 0x17c35: 0xe0000cae, 0x17c36: 0xe000b108, 0x17c37: 0xe000b105, - 0x17c38: 0xe000b10f, 0x17c39: 0xe000b10b, 0x17c3a: 0xe0000cf2, 0x17c3b: 0xe0000cef, - 0x17c3c: 0xe0000cec, 0x17c3d: 0xe0000ce9, 0x17c3e: 0xe000b116, 0x17c3f: 0xe000b113, - // Block 0x5f1, offset 0x17c40 - 0x17c40: 0xe0000d24, 0x17c41: 0xe0000d21, 0x17c42: 0xe000b11c, 0x17c43: 0xe000b119, - 0x17c44: 0xe0000d69, 0x17c45: 0xe0000d66, 0x17c46: 0xe000b12e, 0x17c47: 0xe000b12b, - 0x17c48: 0xe0000d87, 0x17c49: 0xe0000d84, 0x17c4a: 0xe0000d81, 0x17c4b: 0xe0000d7e, - 0x17c4c: 0xe000b141, 0x17c4d: 0xe000b13d, 0x17c4e: 0xe000b149, 0x17c4f: 0xe000b145, - 0x17c50: 0xe0000e3d, 0x17c51: 0xe0000e39, 0x17c52: 0xe000b16d, 0x17c53: 0xe000b169, - 0x17c54: 0xe000b1aa, 0x17c55: 0xe000b1a7, 0x17c56: 0xe0000ead, 0x17c57: 0xe0000eaa, - 0x17c58: 0xe0000ed6, 0x17c59: 0xe0000ed3, 0x17c5a: 0xe000b1b6, 0x17c5b: 0xe000b1b3, - 0x17c5c: 0xe000b1bd, 0x17c5d: 0xe000b1b9, 0x17c5e: 0xe0000f02, 0x17c5f: 0xe0000eff, - 0x17c60: 0xe0000f41, 0x17c61: 0xe0000f3e, 0x17c62: 0xe000b1d2, 0x17c63: 0xe000b1cf, - 0x17c64: 0xe000b1cb, 0x17c65: 0xe000b1c7, 0x17c66: 0xe0000f3a, 0x17c67: 0xe0000f36, - 0x17c68: 0xe000b1d9, 0x17c69: 0xe000b1d5, 0x17c6a: 0xe0000f93, 0x17c6b: 0xe0000f90, - 0x17c6c: 0xe000b1e0, 0x17c6d: 0xe000b1dd, 0x17c6e: 0xe0000fb1, 0x17c6f: 0xe0000fae, - 0x17c70: 0xe0000fab, 0x17c71: 0xe0000fa8, 0x17c72: 0xe0001093, 0x17c73: 0xe0001090, - 0x17c74: 0xe000109f, 0x17c75: 0xe000109c, 0x17c76: 0xe0001099, 0x17c77: 0xe0001096, - 0x17c78: 0xe000b1f3, 0x17c79: 0xe000b1ef, 0x17c7a: 0xe0001046, 0x17c7b: 0xe0001042, - 0x17c7c: 0xe000b226, 0x17c7d: 0xe000b223, 0x17c7e: 0xe000b22c, 0x17c7f: 0xe000b229, - // Block 0x5f2, offset 0x17c80 - 0x17c80: 0xe00010d2, 0x17c81: 0xe00010cf, 0x17c82: 0xe000b232, 0x17c83: 0xe000b22f, - 0x17c84: 0xe00010e1, 0x17c85: 0xe00010de, 0x17c86: 0xe00010e7, 0x17c87: 0xe00010e4, - 0x17c88: 0xe000b238, 0x17c89: 0xe000b235, 0x17c8a: 0xe00010fc, 0x17c8b: 0xe00010f9, - 0x17c8c: 0xe00010f6, 0x17c8d: 0xe00010f3, 0x17c8e: 0xe0001123, 0x17c8f: 0xe0001120, - 0x17c90: 0xe0001141, 0x17c91: 0xe000113e, 0x17c92: 0xe000b25c, 0x17c93: 0xe000b259, - 0x17c94: 0xe0001159, 0x17c95: 0xe0001156, 0x17c96: 0xe0000c15, 0x17c97: 0xe0000f8d, - 0x17c98: 0xe00010db, 0x17c99: 0xe0001111, 0x17c9a: 0xf0000404, 0x17c9b: 0xe0000f70, - 0x17c9c: 0x40300420, 0x17c9d: 0x40300620, 0x17c9e: 0xe0000f7f, 0x17c9f: 0x402c9620, - 0x17ca0: 0xe000b030, 0x17ca1: 0xe000b02d, 0x17ca2: 0xe000b01e, 0x17ca3: 0xe000b01b, - 0x17ca4: 0xe000b06c, 0x17ca5: 0xe000b069, 0x17ca6: 0xe00038cc, 0x17ca7: 0xe00038c9, - 0x17ca8: 0xe000b060, 0x17ca9: 0xe000b05d, 0x17caa: 0xe000b066, 0x17cab: 0xe000b063, - 0x17cac: 0xe000b072, 0x17cad: 0xe000b06f, 0x17cae: 0xe000b054, 0x17caf: 0xe000b051, - 0x17cb0: 0xe0003826, 0x17cb1: 0xe0003823, 0x17cb2: 0xe000b048, 0x17cb3: 0xe000b045, - 0x17cb4: 0xe000b04e, 0x17cb5: 0xe000b04b, 0x17cb6: 0xe000b05a, 0x17cb7: 0xe000b057, - 0x17cb8: 0xe000b0a4, 0x17cb9: 0xe000b0a1, 0x17cba: 0xe000b092, 0x17cbb: 0xe000b08f, - 0x17cbc: 0xe000b098, 0x17cbd: 0xe000b095, 0x17cbe: 0xe000b0be, 0x17cbf: 0xe000b0bb, - // Block 0x5f3, offset 0x17cc0 - 0x17cc0: 0xe000acd9, 0x17cc1: 0xe000acd6, 0x17cc2: 0xe000b0b2, 0x17cc3: 0xe000b0af, - 0x17cc4: 0xe000b0b8, 0x17cc5: 0xe000b0b5, 0x17cc6: 0xe000b0c4, 0x17cc7: 0xe000b0c1, - 0x17cc8: 0xe000b0d6, 0x17cc9: 0xe000b0d3, 0x17cca: 0xe000b0e8, 0x17ccb: 0xe000b0e5, - 0x17ccc: 0xe000b15e, 0x17ccd: 0xe000b15b, 0x17cce: 0xe000b134, 0x17ccf: 0xe000b131, - 0x17cd0: 0xe000b180, 0x17cd1: 0xe000b17d, 0x17cd2: 0xe000acf7, 0x17cd3: 0xe000acf4, - 0x17cd4: 0xe000b174, 0x17cd5: 0xe000b171, 0x17cd6: 0xe000b17a, 0x17cd7: 0xe000b177, - 0x17cd8: 0xe000b186, 0x17cd9: 0xe000b183, 0x17cda: 0xe000b19e, 0x17cdb: 0xe000b19b, - 0x17cdc: 0xe000b18c, 0x17cdd: 0xe000b189, 0x17cde: 0xe000b192, 0x17cdf: 0xe000b18f, - 0x17ce0: 0xe000b198, 0x17ce1: 0xe000b195, 0x17ce2: 0xe000b1a4, 0x17ce3: 0xe000b1a1, - 0x17ce4: 0xe000b200, 0x17ce5: 0xe000b1fd, 0x17ce6: 0xe000b1e6, 0x17ce7: 0xe000b1e3, - 0x17ce8: 0xe000b21a, 0x17ce9: 0xe000b217, 0x17cea: 0xe0002958, 0x17ceb: 0xe0002955, - 0x17cec: 0xe000b20e, 0x17ced: 0xe000b20b, 0x17cee: 0xe000b214, 0x17cef: 0xe000b211, - 0x17cf0: 0xe000b220, 0x17cf1: 0xe000b21d, 0x17cf2: 0xe0001108, 0x17cf3: 0xe0001105, - 0x17cf4: 0xe000b250, 0x17cf5: 0xe000b24d, 0x17cf6: 0xe000b23e, 0x17cf7: 0xe000b23b, - 0x17cf8: 0xe000b244, 0x17cf9: 0xe000b241, 0x17cfa: 0xe0000d0a, 0x17cfb: 0xe0000d07, - 0x17cfc: 0x0030d888, 0x17cfd: 0x4030d820, 0x17cfe: 0x00312088, 0x17cff: 0x40312020, - // Block 0x5f4, offset 0x17d00 - 0x17d00: 0xe0001165, 0x17d01: 0xe00011a9, 0x17d02: 0xe000117d, 0x17d03: 0xe00011c1, - 0x17d04: 0xe000b25f, 0x17d05: 0xe000b271, 0x17d06: 0xe000118f, 0x17d07: 0xe00011d3, - 0x17d08: 0xe0001168, 0x17d09: 0xe00011ac, 0x17d0a: 0xe0001181, 0x17d0b: 0xe00011c5, - 0x17d0c: 0xe000b263, 0x17d0d: 0xe000b275, 0x17d0e: 0xe0001193, 0x17d0f: 0xe00011d7, - 0x17d10: 0xe000121a, 0x17d11: 0xe0001230, 0x17d12: 0xe0001228, 0x17d13: 0xe000123e, - 0x17d14: 0xe000b28d, 0x17d15: 0xe000b295, - 0x17d18: 0xe000121d, 0x17d19: 0xe0001233, 0x17d1a: 0xe000122c, 0x17d1b: 0xe0001242, - 0x17d1c: 0xe000b291, 0x17d1d: 0xe000b299, - 0x17d20: 0xe0001252, 0x17d21: 0xe0001296, 0x17d22: 0xe000126a, 0x17d23: 0xe00012ae, - 0x17d24: 0xe000b2a3, 0x17d25: 0xe000b2b5, 0x17d26: 0xe000127c, 0x17d27: 0xe00012c0, - 0x17d28: 0xe0001255, 0x17d29: 0xe0001299, 0x17d2a: 0xe000126e, 0x17d2b: 0xe00012b2, - 0x17d2c: 0xe000b2a7, 0x17d2d: 0xe000b2b9, 0x17d2e: 0xe0001280, 0x17d2f: 0xe00012c4, - 0x17d30: 0xe00012fb, 0x17d31: 0xe0001319, 0x17d32: 0xe0001309, 0x17d33: 0xe0001327, - 0x17d34: 0xe000b2d1, 0x17d35: 0xe000b2d9, 0x17d36: 0xe0001311, 0x17d37: 0xe000132f, - 0x17d38: 0xe00012fe, 0x17d39: 0xe000131c, 0x17d3a: 0xe000130d, 0x17d3b: 0xe000132b, - 0x17d3c: 0xe000b2d5, 0x17d3d: 0xe000b2dd, 0x17d3e: 0xe0001315, 0x17d3f: 0xe0001333, - // Block 0x5f5, offset 0x17d40 - 0x17d40: 0xe000136c, 0x17d41: 0xe0001382, 0x17d42: 0xe000137a, 0x17d43: 0xe0001390, - 0x17d44: 0xe000b2eb, 0x17d45: 0xe000b2f3, - 0x17d48: 0xe000136f, 0x17d49: 0xe0001385, 0x17d4a: 0xe000137e, 0x17d4b: 0xe0001394, - 0x17d4c: 0xe000b2ef, 0x17d4d: 0xe000b2f7, - 0x17d50: 0xe00013ad, 0x17d51: 0xe00013bc, 0x17d52: 0xe00013b4, 0x17d53: 0xe00013ca, - 0x17d54: 0xe000b301, 0x17d55: 0xe000b305, 0x17d56: 0xe00013b8, 0x17d57: 0xe00013d2, - 0x17d59: 0xe00013bf, 0x17d5b: 0xe00013ce, - 0x17d5d: 0xe000b309, 0x17d5f: 0xe00013d6, - 0x17d60: 0xe0001407, 0x17d61: 0xe000144b, 0x17d62: 0xe000141f, 0x17d63: 0xe0001463, - 0x17d64: 0xe000b317, 0x17d65: 0xe000b329, 0x17d66: 0xe0001431, 0x17d67: 0xe0001475, - 0x17d68: 0xe000140a, 0x17d69: 0xe000144e, 0x17d6a: 0xe0001423, 0x17d6b: 0xe0001467, - 0x17d6c: 0xe000b31b, 0x17d6d: 0xe000b32d, 0x17d6e: 0xe0001435, 0x17d6f: 0xe0001479, - 0x17d70: 0xe00011f7, 0x17d71: 0xe000b283, 0x17d72: 0xe000124c, 0x17d73: 0xe000b29d, - 0x17d74: 0xe00012e4, 0x17d75: 0xe000b2c7, 0x17d76: 0xe000133d, 0x17d77: 0xe000b2e1, - 0x17d78: 0xe000139e, 0x17d79: 0xe000b2fb, 0x17d7a: 0xe00013e0, 0x17d7b: 0xe000b30d, - 0x17d7c: 0xe0001499, 0x17d7d: 0xe000b33b, - // Block 0x5f6, offset 0x17d80 - 0x17d80: 0xe00011a1, 0x17d81: 0xe00011e5, 0x17d82: 0xe0001185, 0x17d83: 0xe00011c9, - 0x17d84: 0xe000b267, 0x17d85: 0xe000b279, 0x17d86: 0xe0001197, 0x17d87: 0xe00011db, - 0x17d88: 0xe00011a5, 0x17d89: 0xe00011e9, 0x17d8a: 0xe000118a, 0x17d8b: 0xe00011ce, - 0x17d8c: 0xe000b26c, 0x17d8d: 0xe000b27e, 0x17d8e: 0xe000119c, 0x17d8f: 0xe00011e0, - 0x17d90: 0xe000128e, 0x17d91: 0xe00012d2, 0x17d92: 0xe0001272, 0x17d93: 0xe00012b6, - 0x17d94: 0xe000b2ab, 0x17d95: 0xe000b2bd, 0x17d96: 0xe0001284, 0x17d97: 0xe00012c8, - 0x17d98: 0xe0001292, 0x17d99: 0xe00012d6, 0x17d9a: 0xe0001277, 0x17d9b: 0xe00012bb, - 0x17d9c: 0xe000b2b0, 0x17d9d: 0xe000b2c2, 0x17d9e: 0xe0001289, 0x17d9f: 0xe00012cd, - 0x17da0: 0xe0001443, 0x17da1: 0xe0001487, 0x17da2: 0xe0001427, 0x17da3: 0xe000146b, - 0x17da4: 0xe000b31f, 0x17da5: 0xe000b331, 0x17da6: 0xe0001439, 0x17da7: 0xe000147d, - 0x17da8: 0xe0001447, 0x17da9: 0xe000148b, 0x17daa: 0xe000142c, 0x17dab: 0xe0001470, - 0x17dac: 0xe000b324, 0x17dad: 0xe000b336, 0x17dae: 0xe000143e, 0x17daf: 0xe0001482, - 0x17db0: 0xe0001201, 0x17db1: 0xe000120e, 0x17db2: 0xe00011fd, 0x17db3: 0xe0001214, - 0x17db4: 0xe000b289, 0x17db6: 0xe0001207, 0x17db7: 0xe000120a, - 0x17db8: 0xe0001204, 0x17db9: 0xe0001211, 0x17dba: 0xe00011fa, 0x17dbb: 0xe000b286, - 0x17dbc: 0xe0001217, 0x17dbd: 0x40063620, 0x17dbe: 0x40326c20, 0x17dbf: 0x40063620, - // Block 0x5f7, offset 0x17dc0 - 0x17dc0: 0x40063a20, 0x17dc1: 0xe00000b1, 0x17dc2: 0xe00012ea, 0x17dc3: 0xe00012f5, - 0x17dc4: 0xe000b2cd, 0x17dc6: 0xe00012ee, 0x17dc7: 0xe00012f1, - 0x17dc8: 0xe000124f, 0x17dc9: 0xe000b2a0, 0x17dca: 0xe00012e7, 0x17dcb: 0xe000b2ca, - 0x17dcc: 0xe00012f8, 0x17dcd: 0xe00000b7, 0x17dce: 0xe000b015, 0x17dcf: 0xe00000ba, - 0x17dd0: 0xe0001343, 0x17dd1: 0xe000135e, 0x17dd2: 0xe0001356, 0x17dd3: 0xe000b2e7, - 0x17dd6: 0xe0001349, 0x17dd7: 0xe000135a, - 0x17dd8: 0xe0001346, 0x17dd9: 0xe0001361, 0x17dda: 0xe0001340, 0x17ddb: 0xe000b2e4, - 0x17ddd: 0xe00000c0, 0x17dde: 0xe000b018, 0x17ddf: 0xe00000c3, - 0x17de0: 0xe00013e6, 0x17de1: 0xe0001401, 0x17de2: 0xe00013f9, 0x17de3: 0xe000b313, - 0x17de4: 0xe00013a4, 0x17de5: 0xe00013a7, 0x17de6: 0xe00013ec, 0x17de7: 0xe00013fd, - 0x17de8: 0xe00013e9, 0x17de9: 0xe0001404, 0x17dea: 0xe00013e3, 0x17deb: 0xe000b310, - 0x17dec: 0xe00013aa, 0x17ded: 0xe00000ae, 0x17dee: 0xe000b012, 0x17def: 0x40061e20, - 0x17df2: 0xe000149f, 0x17df3: 0xe00014aa, - 0x17df4: 0xe000b341, 0x17df6: 0xe00014a3, 0x17df7: 0xe00014a6, - 0x17df8: 0xe00013a1, 0x17df9: 0xe000b2fe, 0x17dfa: 0xe000149c, 0x17dfb: 0xe000b33e, - 0x17dfc: 0xe00014ad, 0x17dfd: 0x40062020, 0x17dfe: 0x40063820, - // Block 0x5f8, offset 0x17e00 - 0x17e00: 0xa0000000, 0x17e01: 0xa0000000, 0x17e02: 0xa0000000, 0x17e03: 0xa0000000, - 0x17e04: 0xa0000000, 0x17e05: 0xa0000000, 0x17e06: 0xa0000000, 0x17e07: 0xa0000000, - 0x17e08: 0xa0000000, 0x17e09: 0x40020020, 0x17e0a: 0x40020220, 0x17e0b: 0x40020420, - 0x17e0c: 0x40020620, 0x17e0d: 0x40020820, 0x17e0e: 0xa0000000, 0x17e0f: 0xa0000000, - 0x17e10: 0xa0000000, 0x17e11: 0xa0000000, 0x17e12: 0xa0000000, 0x17e13: 0xa0000000, - 0x17e14: 0xa0000000, 0x17e15: 0xa0000000, 0x17e16: 0xa0000000, 0x17e17: 0xa0000000, - 0x17e18: 0xa0000000, 0x17e19: 0xa0000000, 0x17e1a: 0xa0000000, 0x17e1b: 0xa0000000, - 0x17e1c: 0xa0000000, 0x17e1d: 0xa0000000, 0x17e1e: 0xa0000000, 0x17e1f: 0xa0000000, - 0x17e20: 0x40021220, 0x17e21: 0x4002ba20, 0x17e22: 0x4003e020, 0x17e23: 0x4004ea20, - 0x17e24: 0x4027de20, 0x17e25: 0x4004ec20, 0x17e26: 0x4004e620, 0x17e27: 0x4003d220, - 0x17e28: 0x4003f420, 0x17e29: 0x4003f620, 0x17e2a: 0x4004d820, 0x17e2b: 0x40093820, - 0x17e2c: 0x40024020, 0x17e2d: 0x40021a20, 0x17e2e: 0x4002e420, 0x17e2f: 0x4004e220, - 0x17e30: 0x4029cc20, 0x17e31: 0x4029ce20, 0x17e32: 0x4029d020, 0x17e33: 0x4029d220, - 0x17e34: 0x4029d420, 0x17e35: 0x4029d620, 0x17e36: 0x4029d820, 0x17e37: 0x4029da20, - 0x17e38: 0x4029dc20, 0x17e39: 0x4029de20, 0x17e3a: 0x40026c20, 0x17e3b: 0x40026220, - 0x17e3c: 0x40094020, 0x17e3d: 0x40094220, 0x17e3e: 0x40094420, 0x17e3f: 0x4002c420, - // Block 0x5f9, offset 0x17e40 - 0x17e40: 0x4004d620, 0x17e41: 0x002bde88, 0x17e42: 0x002c0a88, 0x17e43: 0x002c3a88, - 0x17e44: 0x002c6288, 0x17e45: 0x002c9888, 0x17e46: 0x002d0888, 0x17e47: 0x002d2288, - 0x17e48: 0x002d6888, 0x17e49: 0x002d9a88, 0x17e4a: 0x002dcc88, 0x17e4b: 0x002dfe88, - 0x17e4c: 0xc0030002, 0x17e4d: 0x002e8288, 0x17e4e: 0x002e9e88, 0x17e4f: 0x002ee288, - 0x17e50: 0x002f2c88, 0x17e51: 0x002f5688, 0x17e52: 0x002f7a88, 0x17e53: 0x002fe688, - 0x17e54: 0x00302c88, 0x17e55: 0x00306c88, 0x17e56: 0x0030be88, 0x17e57: 0x0030e288, - 0x17e58: 0x0030f688, 0x17e59: 0x00310088, 0x17e5a: 0x00312a88, 0x17e5b: 0x4003f820, - 0x17e5c: 0x4004e420, 0x17e5d: 0x4003fa20, 0x17e5e: 0x40062420, 0x17e5f: 0x40021620, - 0x17e60: 0x40061e20, 0x17e61: 0xcf409852, 0x17e62: 0x402c0a20, 0x17e63: 0xcf4509b1, - 0x17e64: 0x402c6220, 0x17e65: 0xcf4798d1, 0x17e66: 0x402d0820, 0x17e67: 0x402d2220, - 0x17e68: 0x402d6820, 0x17e69: 0xcf4998e1, 0x17e6a: 0x402dcc20, 0x17e6b: 0x402dfe20, - 0x17e6c: 0xc0000002, 0x17e6d: 0x402e8220, 0x17e6e: 0x402e9e20, 0x17e6f: 0xcf4b98f2, - 0x17e70: 0x402f2c20, 0x17e71: 0x402f5620, 0x17e72: 0x402f7a20, 0x17e73: 0xcf509971, - 0x17e74: 0x40302c20, 0x17e75: 0xcf529992, 0x17e76: 0x4030be20, 0x17e77: 0x4030e220, - 0x17e78: 0x4030f620, 0x17e79: 0x40310020, 0x17e7a: 0x40312a20, 0x17e7b: 0x4003fc20, - 0x17e7c: 0x40094820, 0x17e7d: 0x4003fe20, 0x17e7e: 0x40094c20, 0x17e7f: 0xa0000000, - // Block 0x5fa, offset 0x17e80 - 0x17e80: 0xe00008f5, 0x17e81: 0xe00008ef, 0x17e82: 0xe0000921, 0x17e83: 0xe0000969, - 0x17e84: 0xe000095b, 0x17e85: 0xe000094d, 0x17e86: 0xe00009dd, 0x17e87: 0xe0000a53, - 0x17e88: 0xe0000ae8, 0x17e89: 0xe0000ae2, 0x17e8a: 0xe0000af4, 0x17e8b: 0xe0000b20, - 0x17e8c: 0xe0000c2b, 0x17e8d: 0xe0000c25, 0x17e8e: 0xe0000c37, 0x17e8f: 0xe0000c43, - 0x17e90: 0xe0000ab3, 0x17e91: 0xe0000d63, 0x17e92: 0xe0000d9a, 0x17e93: 0xe0000d94, - 0x17e94: 0xe0000da6, 0x17e95: 0xe0000de6, 0x17e96: 0xe0000dd2, 0x17e97: 0x40093e20, - 0x17e98: 0xe0000e12, 0x17e99: 0xe0000fe1, 0x17e9a: 0xe0000fdb, 0x17e9b: 0xe0000fed, - 0x17e9c: 0xe0000fff, 0x17e9d: 0xe0001102, 0x17e9e: 0x00318888, 0x17e9f: 0xe0000f7b, - 0x17ea0: 0xe00008f2, 0x17ea1: 0xe00008ec, 0x17ea2: 0xe000091e, 0x17ea3: 0xe0000966, - 0x17ea4: 0xcf4398b1, 0x17ea5: 0xe000094a, 0x17ea6: 0xe00009d5, 0x17ea7: 0xe0000a4d, - 0x17ea8: 0xe0000ae5, 0x17ea9: 0xe0000adf, 0x17eaa: 0xe0000af1, 0x17eab: 0xe0000b1d, - 0x17eac: 0xe0000c28, 0x17ead: 0xe0000c22, 0x17eae: 0xe0000c34, 0x17eaf: 0xe0000c40, - 0x17eb0: 0xe0000aad, 0x17eb1: 0xe0000d60, 0x17eb2: 0xe0000d97, 0x17eb3: 0xe0000d91, - 0x17eb4: 0xe0000da3, 0x17eb5: 0xe0000de3, 0x17eb6: 0xcf4e9951, 0x17eb7: 0x40093c20, - 0x17eb8: 0xe0000e0f, 0x17eb9: 0xe0000fde, 0x17eba: 0xe0000fd8, 0x17ebb: 0xe0000fea, - 0x17ebc: 0xcf5599f1, 0x17ebd: 0xe00010ff, 0x17ebe: 0x40318820, 0x17ebf: 0xe0001114, - // Block 0x5fb, offset 0x17ec0 - 0x17ec0: 0xa0000000, 0x17ec1: 0xa0000000, 0x17ec2: 0xa0000000, 0x17ec3: 0xa0000000, - 0x17ec4: 0xa0000000, 0x17ec5: 0xa0000000, 0x17ec6: 0xa0000000, 0x17ec7: 0xa0000000, - 0x17ec8: 0xa0000000, 0x17ec9: 0x40020020, 0x17eca: 0x40020220, 0x17ecb: 0x40020420, - 0x17ecc: 0x40020620, 0x17ecd: 0x40020820, 0x17ece: 0xa0000000, 0x17ecf: 0xa0000000, - 0x17ed0: 0xa0000000, 0x17ed1: 0xa0000000, 0x17ed2: 0xa0000000, 0x17ed3: 0xa0000000, - 0x17ed4: 0xa0000000, 0x17ed5: 0xa0000000, 0x17ed6: 0xa0000000, 0x17ed7: 0xa0000000, - 0x17ed8: 0xa0000000, 0x17ed9: 0xa0000000, 0x17eda: 0xa0000000, 0x17edb: 0xa0000000, - 0x17edc: 0xa0000000, 0x17edd: 0xa0000000, 0x17ede: 0xa0000000, 0x17edf: 0xa0000000, - 0x17ee0: 0x40021220, 0x17ee1: 0x4002ba20, 0x17ee2: 0x4003e020, 0x17ee3: 0x4004ea20, - 0x17ee4: 0x4027de20, 0x17ee5: 0x4004ec20, 0x17ee6: 0x4004e620, 0x17ee7: 0x4003d220, - 0x17ee8: 0x4003f420, 0x17ee9: 0x4003f620, 0x17eea: 0x4004d820, 0x17eeb: 0x40093820, - 0x17eec: 0x40024020, 0x17eed: 0x40021a20, 0x17eee: 0x4002e420, 0x17eef: 0x4004e220, - 0x17ef0: 0x4029cc20, 0x17ef1: 0x4029ce20, 0x17ef2: 0x4029d020, 0x17ef3: 0x4029d220, - 0x17ef4: 0x4029d420, 0x17ef5: 0x4029d620, 0x17ef6: 0x4029d820, 0x17ef7: 0x4029da20, - 0x17ef8: 0x4029dc20, 0x17ef9: 0x4029de20, 0x17efa: 0x40026c20, 0x17efb: 0x40026220, - 0x17efc: 0x40094020, 0x17efd: 0x40094220, 0x17efe: 0x40094420, 0x17eff: 0x4002c420, - // Block 0x5fc, offset 0x17f00 - 0x17f00: 0x4004d620, 0x17f01: 0x002bde88, 0x17f02: 0x002c0a88, 0x17f03: 0x002c3a88, - 0x17f04: 0x002c6288, 0x17f05: 0xce0a3041, 0x17f06: 0x002d0888, 0x17f07: 0xc51f2692, - 0x17f08: 0x002d6888, 0x17f09: 0x002d9a88, 0x17f0a: 0x002dcc88, 0x17f0b: 0x002dfe88, - 0x17f0c: 0xc0030002, 0x17f0d: 0x002e8288, 0x17f0e: 0x002e9e88, 0x17f0f: 0xc33f3041, - 0x17f10: 0x002f2c88, 0x17f11: 0x002f5688, 0x17f12: 0x002f7a88, 0x17f13: 0xc3433041, - 0x17f14: 0x00302c88, 0x17f15: 0x00306c88, 0x17f16: 0x0030be88, 0x17f17: 0x0030e288, - 0x17f18: 0x0030f688, 0x17f19: 0x00310088, 0x17f1a: 0x00312a88, 0x17f1b: 0x4003f820, - 0x17f1c: 0x4004e420, 0x17f1d: 0x4003fa20, 0x17f1e: 0x40062420, 0x17f1f: 0x40021620, - 0x17f20: 0x40061e20, 0x17f21: 0x402bde20, 0x17f22: 0x402c0a20, 0x17f23: 0x402c3a20, - 0x17f24: 0x402c6220, 0x17f25: 0xce083041, 0x17f26: 0x402d0820, 0x17f27: 0xc3372681, - 0x17f28: 0x402d6820, 0x17f29: 0x402d9a20, 0x17f2a: 0x402dcc20, 0x17f2b: 0x402dfe20, - 0x17f2c: 0xc0000002, 0x17f2d: 0x402e8220, 0x17f2e: 0x402e9e20, 0x17f2f: 0xc33d3041, - 0x17f30: 0x402f2c20, 0x17f31: 0x402f5620, 0x17f32: 0x402f7a20, 0x17f33: 0xc3413041, - 0x17f34: 0x40302c20, 0x17f35: 0x40306c20, 0x17f36: 0x4030be20, 0x17f37: 0x4030e220, - 0x17f38: 0x4030f620, 0x17f39: 0x40310020, 0x17f3a: 0x40312a20, 0x17f3b: 0x4003fc20, - 0x17f3c: 0x40094820, 0x17f3d: 0x4003fe20, 0x17f3e: 0x40094c20, 0x17f3f: 0xa0000000, - // Block 0x5fd, offset 0x17f40 - 0x17f40: 0xe0000d24, 0x17f41: 0xe0000d21, 0x17f42: 0xe0000d2a, 0x17f43: 0xe0000d27, - 0x17f44: 0xe0000d69, 0x17f45: 0xe0000d66, 0x17f46: 0xe0000d7b, 0x17f47: 0xe0000d78, - 0x17f48: 0xe0000d87, 0x17f49: 0xe0000d84, 0x17f4a: 0xe0000d81, 0x17f4b: 0xe0000d7e, - 0x17f4c: 0xe0000ded, 0x17f4d: 0xe0000de9, 0x17f4e: 0xe0000df5, 0x17f4f: 0xe0000df1, - 0x17f50: 0xe0000e3d, 0x17f51: 0xe0000e39, 0x17f52: 0xe0000e35, 0x17f53: 0xe0000e31, - 0x17f54: 0xe0000ea7, 0x17f55: 0xe0000ea4, 0x17f56: 0xe0000ead, 0x17f57: 0xe0000eaa, - 0x17f58: 0xe0000ed6, 0x17f59: 0xe0000ed3, 0x17f5a: 0xe0000ef4, 0x17f5b: 0xe0000ef1, - 0x17f5c: 0xe0000efb, 0x17f5d: 0xe0000ef7, 0x17f5e: 0xe0000f02, 0x17f5f: 0xe0000eff, - 0x17f60: 0xe0000f41, 0x17f61: 0xe0000f3e, 0x17f62: 0x002fe883, 0x17f63: 0x402fe820, - 0x17f64: 0xe0000f26, 0x17f65: 0xe0000f22, 0x17f66: 0xe0000f3a, 0x17f67: 0xe0000f36, - 0x17f68: 0xe000296a, 0x17f69: 0xe0002967, 0x17f6a: 0xe0000f93, 0x17f6b: 0xe0000f90, - 0x17f6c: 0xe0000f9f, 0x17f6d: 0xe0000f9c, 0x17f6e: 0xe0000fb1, 0x17f6f: 0xe0000fae, - 0x17f70: 0xe0000fab, 0x17f71: 0xe0000fa8, 0x17f72: 0xe0001093, 0x17f73: 0xe0001090, - 0x17f74: 0xe000109f, 0x17f75: 0xe000109c, 0x17f76: 0xe0001099, 0x17f77: 0xe0001096, - 0x17f78: 0xe0001032, 0x17f79: 0xe000102e, 0x17f7a: 0xe0001046, 0x17f7b: 0xe0001042, - 0x17f7c: 0xe00010a9, 0x17f7d: 0xe00010a6, 0x17f7e: 0xe00010af, 0x17f7f: 0xe00010ac, - // Block 0x5fe, offset 0x17f80 - 0x17f80: 0xe00010d2, 0x17f81: 0xe00010cf, 0x17f82: 0xe00010cc, 0x17f83: 0xe00010c9, - 0x17f84: 0xe00010e1, 0x17f85: 0xe00010de, 0x17f86: 0xe00010e7, 0x17f87: 0xe00010e4, - 0x17f88: 0xe00010ed, 0x17f89: 0xe00010ea, 0x17f8a: 0xe00010fc, 0x17f8b: 0xe00010f9, - 0x17f8c: 0xe00010f6, 0x17f8d: 0xe00010f3, 0x17f8e: 0xe0001123, 0x17f8f: 0xe0001120, - 0x17f90: 0xe0001141, 0x17f91: 0xe000113e, 0x17f92: 0xe0001153, 0x17f93: 0xe0001150, - 0x17f94: 0xe0001159, 0x17f95: 0xe0001156, 0x17f96: 0xe0000c15, 0x17f97: 0xe0000f8d, - 0x17f98: 0xe00010db, 0x17f99: 0xe0001111, 0x17f9a: 0xf0000404, 0x17f9b: 0xe0000f70, - 0x17f9c: 0x40300420, 0x17f9d: 0x40300620, 0x17f9e: 0xe0000f7f, 0x17f9f: 0x402c9620, - 0x17fa0: 0xe000099b, 0x17fa1: 0xe0000998, 0x17fa2: 0xe0000989, 0x17fa3: 0xe0000986, - 0x17fa4: 0xe0000928, 0x17fa5: 0xe0000924, 0x17fa6: 0xe0000930, 0x17fa7: 0xe000092c, - 0x17fa8: 0xe0000940, 0x17fa9: 0xe000093c, 0x17faa: 0xe0000938, 0x17fab: 0xe0000934, - 0x17fac: 0xe00009aa, 0x17fad: 0xe00009a6, 0x17fae: 0xe0000902, 0x17faf: 0xe00008fe, - 0x17fb0: 0xe000090a, 0x17fb1: 0xe0000906, 0x17fb2: 0xe000091a, 0x17fb3: 0xe0000916, - 0x17fb4: 0xe0000912, 0x17fb5: 0xe000090e, 0x17fb6: 0xe00009a2, 0x17fb7: 0xe000099e, - 0x17fb8: 0x002c9a83, 0x17fb9: 0x402c9a20, 0x17fba: 0xe0000b5c, 0x17fbb: 0xe0000b59, - 0x17fbc: 0xe0000b26, 0x17fbd: 0xe0000b23, 0x17fbe: 0xe0000afb, 0x17fbf: 0xe0000af7, - // Block 0x5ff, offset 0x17fc0 - 0x17fc0: 0xe0000b03, 0x17fc1: 0xe0000aff, 0x17fc2: 0xe0000b13, 0x17fc3: 0xe0000b0f, - 0x17fc4: 0xe0000b0b, 0x17fc5: 0xe0000b07, 0x17fc6: 0xe000b357, 0x17fc7: 0xe000b354, - 0x17fc8: 0xe0000c66, 0x17fc9: 0xe0000c63, 0x17fca: 0xe0000c78, 0x17fcb: 0xe0000c75, - 0x17fcc: 0x002ee483, 0x17fcd: 0x402ee420, 0x17fce: 0xe0000e44, 0x17fcf: 0xe0000e41, - 0x17fd0: 0xe0000dad, 0x17fd1: 0xe0000da9, 0x17fd2: 0xe0000db5, 0x17fd3: 0xe0000db1, - 0x17fd4: 0xe0000dc5, 0x17fd5: 0xe0000dc1, 0x17fd6: 0xe0000dbd, 0x17fd7: 0xe0000db9, - 0x17fd8: 0xe0003c28, 0x17fd9: 0xe0003c25, 0x17fda: 0xe0000e5d, 0x17fdb: 0xe0000e59, - 0x17fdc: 0xe0000e65, 0x17fdd: 0xe0000e61, 0x17fde: 0xe0000e75, 0x17fdf: 0xe0000e71, - 0x17fe0: 0xe0000e6d, 0x17fe1: 0xe0000e69, 0x17fe2: 0xe0003c2e, 0x17fe3: 0xe0003c2b, - 0x17fe4: 0xe000108d, 0x17fe5: 0xe000108a, 0x17fe6: 0xe000104d, 0x17fe7: 0xe000104a, - 0x17fe8: 0xe0001066, 0x17fe9: 0xe0001062, 0x17fea: 0xe000106e, 0x17feb: 0xe000106a, - 0x17fec: 0xe000107e, 0x17fed: 0xe000107a, 0x17fee: 0xe0001076, 0x17fef: 0xe0001072, - 0x17ff0: 0xe0001086, 0x17ff1: 0xe0001082, 0x17ff2: 0xe0001108, 0x17ff3: 0xe0001105, - 0x17ff4: 0xe0001135, 0x17ff5: 0xe0001132, 0x17ff6: 0xe000112f, 0x17ff7: 0xe000112c, - 0x17ff8: 0xe000111d, 0x17ff9: 0xe000111a, 0x17ffa: 0xe0000d0a, 0x17ffb: 0xe0000d07, - 0x17ffc: 0x0030d888, 0x17ffd: 0x4030d820, 0x17ffe: 0x00312088, 0x17fff: 0x40312020, - // Block 0x600, offset 0x18000 - 0x18000: 0xa0000000, 0x18001: 0xa0000000, 0x18002: 0xa0000000, 0x18003: 0xa0000000, - 0x18004: 0xa0000000, 0x18005: 0xa0000000, 0x18006: 0xa0000000, 0x18007: 0xa0000000, - 0x18008: 0xa0000000, 0x18009: 0x40020020, 0x1800a: 0x40020220, 0x1800b: 0x40020420, - 0x1800c: 0x40020620, 0x1800d: 0x40020820, 0x1800e: 0xa0000000, 0x1800f: 0xa0000000, - 0x18010: 0xa0000000, 0x18011: 0xa0000000, 0x18012: 0xa0000000, 0x18013: 0xa0000000, - 0x18014: 0xa0000000, 0x18015: 0xa0000000, 0x18016: 0xa0000000, 0x18017: 0xa0000000, - 0x18018: 0xa0000000, 0x18019: 0xa0000000, 0x1801a: 0xa0000000, 0x1801b: 0xa0000000, - 0x1801c: 0xa0000000, 0x1801d: 0xa0000000, 0x1801e: 0xa0000000, 0x1801f: 0xa0000000, - 0x18020: 0x40021220, 0x18021: 0x4002ba20, 0x18022: 0x4003e020, 0x18023: 0x4004ea20, - 0x18024: 0x4027de20, 0x18025: 0x4004ec20, 0x18026: 0x4004e620, 0x18027: 0x4003d220, - 0x18028: 0x4003f420, 0x18029: 0x4003f620, 0x1802a: 0x4004d820, 0x1802b: 0x40093820, - 0x1802c: 0x40024020, 0x1802d: 0x40021a20, 0x1802e: 0x4002e420, 0x1802f: 0x4004e220, - 0x18030: 0x4029cc20, 0x18031: 0x4029ce20, 0x18032: 0x4029d020, 0x18033: 0x4029d220, - 0x18034: 0x4029d420, 0x18035: 0x4029d620, 0x18036: 0x4029d820, 0x18037: 0x4029da20, - 0x18038: 0x4029dc20, 0x18039: 0x4029de20, 0x1803a: 0x40026c20, 0x1803b: 0x40026220, - 0x1803c: 0x40094020, 0x1803d: 0x40094220, 0x1803e: 0x40094420, 0x1803f: 0x4002c420, - // Block 0x601, offset 0x18040 - 0x18040: 0x4004d620, 0x18041: 0xcf5c9a11, 0x18042: 0x002c0a88, 0x18043: 0x002c3a88, - 0x18044: 0x002c6288, 0x18045: 0xcf6a9a51, 0x18046: 0x002d0888, 0x18047: 0x002d2288, - 0x18048: 0x002d6888, 0x18049: 0xcf7e9a11, 0x1804a: 0x002dcc88, 0x1804b: 0x002dfe88, - 0x1804c: 0xc0030002, 0x1804d: 0xcf889a11, 0x1804e: 0xcf929a11, 0x1804f: 0xcf9c9a11, - 0x18050: 0x002f2c88, 0x18051: 0x002f5688, 0x18052: 0x002f7a88, 0x18053: 0x002fe688, - 0x18054: 0x00302c88, 0x18055: 0xcfab9b11, 0x18056: 0x0030be88, 0x18057: 0x0030e288, - 0x18058: 0x0030f688, 0x18059: 0x00310088, 0x1805a: 0x00312a88, 0x1805b: 0x4003f820, - 0x1805c: 0x4004e420, 0x1805d: 0x4003fa20, 0x1805e: 0x40062420, 0x1805f: 0x40021620, - 0x18060: 0x40061e20, 0x18061: 0xcf579a11, 0x18062: 0x402c0a20, 0x18063: 0x402c3a20, - 0x18064: 0x402c6220, 0x18065: 0xcf619a51, 0x18066: 0x402d0820, 0x18067: 0x402d2220, - 0x18068: 0x402d6820, 0x18069: 0xcf799a11, 0x1806a: 0x402dcc20, 0x1806b: 0x402dfe20, - 0x1806c: 0xc0000002, 0x1806d: 0xcf839a11, 0x1806e: 0xcf8d9a11, 0x1806f: 0xcf979a11, - 0x18070: 0x402f2c20, 0x18071: 0x402f5620, 0x18072: 0x402f7a20, 0x18073: 0x402fe620, - 0x18074: 0x40302c20, 0x18075: 0xcfa19b11, 0x18076: 0x4030be20, 0x18077: 0x4030e220, - 0x18078: 0x4030f620, 0x18079: 0x40310020, 0x1807a: 0x40312a20, 0x1807b: 0x4003fc20, - 0x1807c: 0x40094820, 0x1807d: 0x4003fe20, 0x1807e: 0x40094c20, 0x1807f: 0xa0000000, - // Block 0x602, offset 0x18080 - 0x18080: 0x002bde63, 0x18081: 0x002bde23, 0x18082: 0xe0000921, 0x18083: 0xe0000969, - 0x18084: 0xe000095b, 0x18085: 0xe000094d, 0x18086: 0xe00009dd, 0x18087: 0xe0000a53, - 0x18088: 0x002c9863, 0x18089: 0x002c9823, 0x1808a: 0xcf769ae1, 0x1808b: 0xe0000b20, - 0x1808c: 0x002d9a63, 0x1808d: 0x002d9a23, 0x1808e: 0xe0000c37, 0x1808f: 0xe0000c43, - 0x18090: 0xe0000ab3, 0x18091: 0xe0000d63, 0x18092: 0x002ee263, 0x18093: 0x002ee223, - 0x18094: 0xe0000da6, 0x18095: 0xe0000de6, 0x18096: 0xe0000dd2, 0x18097: 0x40093e20, - 0x18098: 0xe0000e12, 0x18099: 0x00306c63, 0x1809a: 0x00306c23, 0x1809b: 0xe0000fed, - 0x1809c: 0x00306d23, 0x1809d: 0xe0001102, 0x1809e: 0x00318888, 0x1809f: 0xe0000f7b, - 0x180a0: 0x402bde1f, 0x180a1: 0x402bde1d, 0x180a2: 0xe000091e, 0x180a3: 0xe0000966, - 0x180a4: 0xe0000958, 0x180a5: 0xe000094a, 0x180a6: 0xe00009d5, 0x180a7: 0xe0000a4d, - 0x180a8: 0x402c981f, 0x180a9: 0x402c981d, 0x180aa: 0xcf739ae1, 0x180ab: 0xe0000b1d, - 0x180ac: 0x402d9a1f, 0x180ad: 0x402d9a1d, 0x180ae: 0xe0000c34, 0x180af: 0xe0000c40, - 0x180b0: 0xe0000aad, 0x180b1: 0xe0000d60, 0x180b2: 0x402ee21f, 0x180b3: 0x402ee21d, - 0x180b4: 0xe0000da3, 0x180b5: 0xe0000de3, 0x180b6: 0xe0000dcf, 0x180b7: 0x40093c20, - 0x180b8: 0xe0000e0f, 0x180b9: 0x40306c1f, 0x180ba: 0x40306c1d, 0x180bb: 0xe0000fea, - 0x180bc: 0x40306c25, 0x180bd: 0xe00010ff, 0x180be: 0x40318820, 0x180bf: 0xe0001114, - // Block 0x603, offset 0x180c0 - 0x180c0: 0x002bde03, 0x180c1: 0x402bde1c, 0x180c2: 0xe00008fb, 0x180c3: 0xe00008f8, - 0x180c4: 0xe000097d, 0x180c5: 0xe000097a, 0x180c6: 0xe0000a38, 0x180c7: 0xe0000a35, - 0x180c8: 0xe0000a3e, 0x180c9: 0xe0000a3b, 0x180ca: 0xe0000a4a, 0x180cb: 0xe0000a47, - 0x180cc: 0xe0000a44, 0x180cd: 0xe0000a41, 0x180ce: 0xe0000a86, 0x180cf: 0xe0000a83, - 0x180d0: 0xe0000aaa, 0x180d1: 0xe0000aa7, 0x180d2: 0x002c9803, 0x180d3: 0x402c981c, - 0x180d4: 0xe0000aee, 0x180d5: 0xe0000aeb, 0x180d6: 0xe0000b2c, 0x180d7: 0xe0000b29, - 0x180d8: 0xe0000b40, 0x180d9: 0xe0000b3d, 0x180da: 0x002c9843, 0x180db: 0x402c981e, - 0x180dc: 0xe0000bb8, 0x180dd: 0xe0000bb5, 0x180de: 0xe0000bb2, 0x180df: 0xe0000baf, - 0x180e0: 0xe0000bc4, 0x180e1: 0xe0000bc1, 0x180e2: 0xe0000bca, 0x180e3: 0xe0000bc7, - 0x180e4: 0xe0000bee, 0x180e5: 0xe0000beb, 0x180e6: 0xe0000c1b, 0x180e7: 0xe0000c18, - 0x180e8: 0xe0000c51, 0x180e9: 0xe0000c4e, 0x180ea: 0x002d9a03, 0x180eb: 0x402d9a1c, - 0x180ec: 0xe0000c31, 0x180ed: 0xe0000c2e, 0x180ee: 0xe0000c5a, 0x180ef: 0xe0000c57, - 0x180f0: 0xe0000c54, 0x180f1: 0x402da220, 0x180f2: 0xf0000a0a, 0x180f3: 0xf0000404, - 0x180f4: 0xe0000c8a, 0x180f5: 0xe0000c87, 0x180f6: 0xe0000c9f, 0x180f7: 0xe0000c9c, - 0x180f8: 0x402f7220, 0x180f9: 0xe0000ccc, 0x180fa: 0xe0000cc9, 0x180fb: 0xe0000cd8, - 0x180fc: 0xe0000cd5, 0x180fd: 0xe0000cd2, 0x180fe: 0xe0000ccf, 0x180ff: 0xe0000d04, - // Block 0x604, offset 0x18100 - 0x18100: 0xe0000cfe, 0x18101: 0xe0000cf8, 0x18102: 0xe0000cf5, 0x18103: 0x002e9e23, - 0x18104: 0x402e9e1d, 0x18105: 0xe0000d6f, 0x18106: 0xe0000d6c, 0x18107: 0x002e9e43, - 0x18108: 0x402e9e1e, 0x18109: 0xf0000404, 0x1810a: 0x002eda88, 0x1810b: 0x402eda20, - 0x1810c: 0x002ee203, 0x1810d: 0x402ee21c, 0x1810e: 0xe0000da0, 0x1810f: 0xe0000d9d, - 0x18110: 0xe0000de0, 0x18111: 0xe0000ddd, 0x18112: 0xe0000e93, 0x18113: 0xe0000e8f, - 0x18114: 0xe0000eca, 0x18115: 0xe0000ec7, 0x18116: 0xe0000edc, 0x18117: 0xe0000ed9, - 0x18118: 0xe0000ed0, 0x18119: 0xe0000ecd, 0x1811a: 0xe0000f1f, 0x1811b: 0xe0000f1c, - 0x1811c: 0xe0000f2d, 0x1811d: 0xe0000f2a, 0x1811e: 0xe0000f47, 0x1811f: 0xe0000f44, - 0x18120: 0xe0000f33, 0x18121: 0xe0000f30, 0x18122: 0xe0000f99, 0x18123: 0xe0000f96, - 0x18124: 0xe0000f8a, 0x18125: 0xe0000f87, 0x18126: 0x00303688, 0x18127: 0x40303620, - 0x18128: 0xe000102b, 0x18129: 0xe0001028, 0x1812a: 0x00306c03, 0x1812b: 0x40306c1c, - 0x1812c: 0xe0000fe7, 0x1812d: 0xe0000fe4, 0x1812e: 0xe0000ff9, 0x1812f: 0xe0000ff6, - 0x18130: 0xe0001025, 0x18131: 0xe0001022, 0x18132: 0xe0001039, 0x18133: 0xe0001036, - 0x18134: 0xe00010d8, 0x18135: 0xe00010d5, 0x18136: 0xe000110e, 0x18137: 0xe000110b, - 0x18138: 0xe0001117, 0x18139: 0xe000113b, 0x1813a: 0xe0001138, 0x1813b: 0xe000114d, - 0x1813c: 0xe000114a, 0x1813d: 0xe0001147, 0x1813e: 0xe0001144, 0x1813f: 0xe0000f64, - // Block 0x605, offset 0x18140 - 0x18140: 0x40321220, 0x18141: 0x40321a20, 0x18142: 0x40322220, 0x18143: 0x40322a20, - 0x18144: 0xe0000ad5, 0x18145: 0xe0000ad1, 0x18146: 0xe0000acd, 0x18147: 0xf0000a0a, - 0x18148: 0xf000040a, 0x18149: 0xf0000404, 0x1814a: 0xf0000a0a, 0x1814b: 0xf000040a, - 0x1814c: 0xf0000404, 0x1814d: 0x002bde43, 0x1814e: 0x402bde1e, 0x1814f: 0x002d9a43, - 0x18150: 0x402d9a1e, 0x18151: 0x002ee243, 0x18152: 0x402ee21e, 0x18153: 0x00306c43, - 0x18154: 0x40306c1e, 0x18155: 0x00306ca3, 0x18156: 0x40306c21, 0x18157: 0x00306cc3, - 0x18158: 0x40306c22, 0x18159: 0x00306ce3, 0x1815a: 0x40306c23, 0x1815b: 0x00306d03, - 0x1815c: 0x40306c24, 0x1815d: 0x402cae20, 0x1815e: 0xe000b4b1, 0x1815f: 0xe000b4ae, - 0x18160: 0xe000b4b7, 0x18161: 0xe000b4b4, 0x18162: 0xe00009f4, 0x18163: 0xe00009ef, - 0x18164: 0x002d3a88, 0x18165: 0x402d3a20, 0x18166: 0xe0000bbe, 0x18167: 0xe0000bbb, - 0x18168: 0xe0000c99, 0x18169: 0xe0000c96, 0x1816a: 0xe0000e20, 0x1816b: 0xe0000e1d, - 0x1816c: 0xe000b50b, 0x1816d: 0xe000b508, 0x1816e: 0xe0001162, 0x1816f: 0xe000115f, - 0x18170: 0xe0000c8d, 0x18171: 0xf0000a0a, 0x18172: 0xf000040a, 0x18173: 0xf0000404, - 0x18174: 0xe0000bac, 0x18175: 0xe0000ba9, 0x18176: 0x002d7888, 0x18177: 0x00319488, - 0x18178: 0x002e9e63, 0x18179: 0x402e9e1f, 0x1817a: 0xe000b4c9, 0x1817b: 0xe000b4c6, - 0x1817c: 0xe00009ea, 0x1817d: 0xe00009e5, 0x1817e: 0xe0000e19, 0x1817f: 0xe0000e15, - // Block 0x606, offset 0x18180 - 0x18180: 0xe000098f, 0x18181: 0xe000098c, 0x18182: 0xe0000995, 0x18183: 0xe0000992, - 0x18184: 0xe0000b62, 0x18185: 0xe0000b5f, 0x18186: 0xe0000b68, 0x18187: 0xe0000b65, - 0x18188: 0xe0000c6c, 0x18189: 0xe0000c69, 0x1818a: 0xe0000c72, 0x1818b: 0xe0000c6f, - 0x1818c: 0xe0000e4a, 0x1818d: 0xe0000e47, 0x1818e: 0xe0000e50, 0x1818f: 0xe0000e4d, - 0x18190: 0xe0000ee8, 0x18191: 0xe0000ee5, 0x18192: 0xe0000eee, 0x18193: 0xe0000eeb, - 0x18194: 0xe0001053, 0x18195: 0xe0001050, 0x18196: 0xe0001059, 0x18197: 0xe0001056, - 0x18198: 0xe0000f61, 0x18199: 0xe0000f5e, 0x1819a: 0xe0000fa5, 0x1819b: 0xe0000fa2, - 0x1819c: 0x00312288, 0x1819d: 0x40312220, 0x1819e: 0xe0000bf4, 0x1819f: 0xe0000bf1, - 0x181a0: 0x002ebc88, 0x181a1: 0x402c8c20, 0x181a2: 0x002f2288, 0x181a3: 0x402f2220, - 0x181a4: 0x00314088, 0x181a5: 0x40314020, 0x181a6: 0xe000096f, 0x181a7: 0xe000096c, - 0x181a8: 0xe0000b32, 0x181a9: 0xe0000b2f, 0x181aa: 0xe000b4f9, 0x181ab: 0xe000b4f6, - 0x181ac: 0xe000b4ff, 0x181ad: 0xe000b4fc, 0x181ae: 0xe0000e04, 0x181af: 0xe0000e01, - 0x181b0: 0xe000b505, 0x181b1: 0xe000b502, 0x181b2: 0xe0001129, 0x181b3: 0xe0001126, - 0x181b4: 0x402e5e20, 0x181b5: 0x402ed020, 0x181b6: 0x40305a20, 0x181b7: 0x402dd420, - 0x181b8: 0xe0000abf, 0x181b9: 0xe0000ec4, 0x181ba: 0x002be888, 0x181bb: 0x002c4488, - 0x181bc: 0x402c4420, 0x181bd: 0x002e3888, 0x181be: 0x00303e88, 0x181bf: 0x402ffc20, - // Block 0x607, offset 0x181c0 - 0x181c0: 0xe00009b1, 0x181c1: 0xe00009ae, 0x181c2: 0xe0000a22, 0x181c3: 0xe0000a1f, - 0x181c4: 0xe0000a28, 0x181c5: 0xe0000a25, 0x181c6: 0xe0000a2e, 0x181c7: 0xe0000a2b, - 0x181c8: 0xe0000a5a, 0x181c9: 0xe0000a56, 0x181ca: 0xe0000a8c, 0x181cb: 0xe0000a89, - 0x181cc: 0xe0000a98, 0x181cd: 0xe0000a95, 0x181ce: 0xe0000aa4, 0x181cf: 0xe0000aa1, - 0x181d0: 0xe0000a92, 0x181d1: 0xe0000a8f, 0x181d2: 0xe0000a9e, 0x181d3: 0xe0000a9b, - 0x181d4: 0xe000b4e1, 0x181d5: 0xe000b4de, 0x181d6: 0xe000b4db, 0x181d7: 0xe000b4d8, - 0x181d8: 0xe0000b7c, 0x181d9: 0xe0000b79, 0x181da: 0xe0000b82, 0x181db: 0xe0000b7f, - 0x181dc: 0xe0000b39, 0x181dd: 0xe0000b35, 0x181de: 0xe0000b8c, 0x181df: 0xe0000b89, - 0x181e0: 0xe0000bd0, 0x181e1: 0xe0000bcd, 0x181e2: 0xe0000c00, 0x181e3: 0xe0000bfd, - 0x181e4: 0xe0000c0c, 0x181e5: 0xe0000c09, 0x181e6: 0xe0000bfa, 0x181e7: 0xe0000bf7, - 0x181e8: 0xe0000c06, 0x181e9: 0xe0000c03, 0x181ea: 0xe0000c12, 0x181eb: 0xe0000c0f, - 0x181ec: 0xe0000c7e, 0x181ed: 0xe0000c7b, 0x181ee: 0xe000b4e7, 0x181ef: 0xe000b4e4, - 0x181f0: 0xe0000c93, 0x181f1: 0xe0000c90, 0x181f2: 0xe0000cab, 0x181f3: 0xe0000ca8, - 0x181f4: 0xe0000cb1, 0x181f5: 0xe0000cae, 0x181f6: 0xe0000cde, 0x181f7: 0xe0000cdb, - 0x181f8: 0xe0000ce5, 0x181f9: 0xe0000ce1, 0x181fa: 0xe0000cf2, 0x181fb: 0xe0000cef, - 0x181fc: 0xe0000cec, 0x181fd: 0xe0000ce9, 0x181fe: 0x002e8223, 0x181ff: 0x402e821d, - // Block 0x608, offset 0x18200 - 0x18200: 0xe0000d24, 0x18201: 0xe0000d21, 0x18202: 0xe0000d2a, 0x18203: 0xe0000d27, - 0x18204: 0xe0000d69, 0x18205: 0xe0000d66, 0x18206: 0xe0000d7b, 0x18207: 0xe0000d78, - 0x18208: 0xe0000d87, 0x18209: 0xe0000d84, 0x1820a: 0xe0000d81, 0x1820b: 0xe0000d7e, - 0x1820c: 0xe000b517, 0x1820d: 0xe000b514, 0x1820e: 0xe0000df5, 0x1820f: 0xe0000df1, - 0x18210: 0xe000b4f3, 0x18211: 0xe000b4f0, 0x18212: 0xe000b4ed, 0x18213: 0xe000b4ea, - 0x18214: 0xe0000ea7, 0x18215: 0xe0000ea4, 0x18216: 0xe0000ead, 0x18217: 0xe0000eaa, - 0x18218: 0xe0000ed6, 0x18219: 0xe0000ed3, 0x1821a: 0xe0000ef4, 0x1821b: 0xe0000ef1, - 0x1821c: 0xe0000efb, 0x1821d: 0xe0000ef7, 0x1821e: 0xe0000f02, 0x1821f: 0xe0000eff, - 0x18220: 0xe0000f41, 0x18221: 0xe0000f3e, 0x18222: 0xe0000f53, 0x18223: 0xe0000f50, - 0x18224: 0xe0000f26, 0x18225: 0xe0000f22, 0x18226: 0xe0000f3a, 0x18227: 0xe0000f36, - 0x18228: 0xe0000f5a, 0x18229: 0xe0000f56, 0x1822a: 0xe0000f93, 0x1822b: 0xe0000f90, - 0x1822c: 0xe0000f9f, 0x1822d: 0xe0000f9c, 0x1822e: 0xe0000fb1, 0x1822f: 0xe0000fae, - 0x18230: 0xe0000fab, 0x18231: 0xe0000fa8, 0x18232: 0xe0001093, 0x18233: 0xe0001090, - 0x18234: 0xe000109f, 0x18235: 0xe000109c, 0x18236: 0xe0001099, 0x18237: 0xe0001096, - 0x18238: 0xe000b535, 0x18239: 0xe000b532, 0x1823a: 0xe000b52f, 0x1823b: 0xe000b52c, - 0x1823c: 0xe00010a9, 0x1823d: 0xe00010a6, 0x1823e: 0xe00010af, 0x1823f: 0xe00010ac, - // Block 0x609, offset 0x18240 - 0x18240: 0xe00010d2, 0x18241: 0xe00010cf, 0x18242: 0xe00010cc, 0x18243: 0xe00010c9, - 0x18244: 0xe00010e1, 0x18245: 0xe00010de, 0x18246: 0xe00010e7, 0x18247: 0xe00010e4, - 0x18248: 0xe00010ed, 0x18249: 0xe00010ea, 0x1824a: 0xe00010fc, 0x1824b: 0xe00010f9, - 0x1824c: 0xe00010f6, 0x1824d: 0xe00010f3, 0x1824e: 0xe0001123, 0x1824f: 0xe0001120, - 0x18250: 0xe0001141, 0x18251: 0xe000113e, 0x18252: 0xe0001153, 0x18253: 0xe0001150, - 0x18254: 0xe0001159, 0x18255: 0xe0001156, 0x18256: 0xe0000c15, 0x18257: 0xe0000f8d, - 0x18258: 0xe00010db, 0x18259: 0xe0001111, 0x1825a: 0xf0000404, 0x1825b: 0xe0000f70, - 0x1825c: 0x40300420, 0x1825d: 0x40300620, 0x1825e: 0xe0000f7f, 0x1825f: 0x402c9620, - 0x18260: 0xe000099b, 0x18261: 0xe0000998, 0x18262: 0xe0000989, 0x18263: 0xe0000986, - 0x18264: 0xe000b4c3, 0x18265: 0xe000b4c0, 0x18266: 0xe000b4d5, 0x18267: 0xe000b4d2, - 0x18268: 0xe0000940, 0x18269: 0xe000093c, 0x1826a: 0xe0000938, 0x1826b: 0xe0000934, - 0x1826c: 0xe00009aa, 0x1826d: 0xe00009a6, 0x1826e: 0xe000b4bd, 0x1826f: 0xe000b4ba, - 0x18270: 0xe000b4cf, 0x18271: 0xe000b4cc, 0x18272: 0xe000091a, 0x18273: 0xe0000916, - 0x18274: 0xe0000912, 0x18275: 0xe000090e, 0x18276: 0xe00009a2, 0x18277: 0xe000099e, - 0x18278: 0xe0000b6e, 0x18279: 0xe0000b6b, 0x1827a: 0xe0000b5c, 0x1827b: 0xe0000b59, - 0x1827c: 0xe0000b26, 0x1827d: 0xe0000b23, 0x1827e: 0x002c98c3, 0x1827f: 0x402c9822, - // Block 0x60a, offset 0x18280 - 0x18280: 0x002c9903, 0x18281: 0x402c9824, 0x18282: 0xe0000b13, 0x18283: 0xe0000b0f, - 0x18284: 0xe0000b0b, 0x18285: 0xe0000b07, 0x18286: 0xe0000b75, 0x18287: 0xe0000b71, - 0x18288: 0xe0000c66, 0x18289: 0xe0000c63, 0x1828a: 0xe0000c78, 0x1828b: 0xe0000c75, - 0x1828c: 0xe0000e84, 0x1828d: 0xe0000e81, 0x1828e: 0xe0000e44, 0x1828f: 0xe0000e41, - 0x18290: 0xe000b511, 0x18291: 0xe000b50e, 0x18292: 0xe000b523, 0x18293: 0xe000b520, - 0x18294: 0xe0000dc5, 0x18295: 0xe0000dc1, 0x18296: 0xe0000dbd, 0x18297: 0xe0000db9, - 0x18298: 0xe0000e8b, 0x18299: 0xe0000e87, 0x1829a: 0xe000b51d, 0x1829b: 0xe000b51a, - 0x1829c: 0xe000b529, 0x1829d: 0xe000b526, 0x1829e: 0xe0000e75, 0x1829f: 0xe0000e71, - 0x182a0: 0xe0000e6d, 0x182a1: 0xe0000e69, 0x182a2: 0xe0000e7d, 0x182a3: 0xe0000e79, - 0x182a4: 0xe000108d, 0x182a5: 0xe000108a, 0x182a6: 0xe000104d, 0x182a7: 0xe000104a, - 0x182a8: 0xe000b53b, 0x182a9: 0xe000b538, 0x182aa: 0xe000b541, 0x182ab: 0xe000b53e, - 0x182ac: 0xe000107e, 0x182ad: 0xe000107a, 0x182ae: 0xe0001076, 0x182af: 0xe0001072, - 0x182b0: 0xe0001086, 0x182b1: 0xe0001082, 0x182b2: 0xe0001108, 0x182b3: 0xe0001105, - 0x182b4: 0xe0001135, 0x182b5: 0xe0001132, 0x182b6: 0xe000112f, 0x182b7: 0xe000112c, - 0x182b8: 0xe000111d, 0x182b9: 0xe000111a, 0x182ba: 0xe0000d0a, 0x182bb: 0xe0000d07, - 0x182bc: 0x0030d888, 0x182bd: 0x4030d820, 0x182be: 0x00312088, 0x182bf: 0x40312020, - // Block 0x60b, offset 0x182c0 - 0x182c0: 0x6d200220, 0x182c1: 0x6c16fe20, 0x182c2: 0x6d0bdc20, 0x182c3: 0x6d1b3420, - 0x182c4: 0x6d0bd620, 0x182c5: 0x6cc58020, 0x182c6: 0x6c6ece20, 0x182c7: 0xe000240a, - 0x182c8: 0x6c29ae20, 0x182c9: 0x6c29ca20, 0x182ca: 0x6c100220, 0x182cb: 0x6c6b9220, - 0x182cc: 0x6cff9e20, 0x182cd: 0x6cffa020, 0x182ce: 0x6cf39620, 0x182cf: 0x6cedd020, - 0x182d0: 0x6cedd220, 0x182d1: 0x6cf39820, 0x182d2: 0x6cd8fa20, 0x182d3: 0x6d10c420, - 0x182d4: 0x6c630820, 0x182d5: 0x6c616620, 0x182d6: 0x6d036620, 0x182d7: 0x6d036820, - 0x182d8: 0x6cd49220, 0x182d9: 0x6cdbee20, 0x182db: 0x6cc64c20, - 0x182dc: 0x6cc63420, 0x182dd: 0x6d266620, 0x182de: 0x6c271e20, 0x182df: 0x2ca22083, - 0x182e0: 0x6c9f8820, 0x182e1: 0x6cd74220, 0x182e2: 0x6cd74420, 0x182e3: 0x6c0c6c20, - 0x182e4: 0x6d2ff820, 0x182e5: 0x6d2ff220, 0x182e6: 0x6cbb3620, 0x182e7: 0x6ca96420, - 0x182e8: 0x6cc38820, 0x182e9: 0xe000243f, 0x182ea: 0xe0002442, 0x182eb: 0x6ca2c020, - 0x182ec: 0x6cd2f220, 0x182ed: 0x6cd40820, 0x182ee: 0x6cd30220, 0x182ef: 0x6cd86820, - 0x182f0: 0x6cd86a20, 0x182f1: 0x6c429620, 0x182f2: 0x6cee4220, 0x182f3: 0xe0002451, - 0x182f4: 0x6cee4020, 0x182f5: 0xe000244e, 0x182f6: 0x6cc5ba20, 0x182f7: 0x6cc60a20, - 0x182f8: 0x02ff1684, 0x182f9: 0x03000484, 0x182fa: 0x6d24ba20, 0x182fb: 0x6d24bc20, - 0x182fc: 0x6cc78020, 0x182fd: 0x6c719e20, 0x182fe: 0x6c12be20, 0x182ff: 0x6c12c220, - // Block 0x60c, offset 0x18300 - 0x18300: 0x6c12c420, 0x18301: 0x6c562e20, 0x18302: 0x6d199a20, 0x18303: 0x6cf76620, - 0x18304: 0x6cf94e20, 0x18305: 0x6c673620, 0x18306: 0x0313a484, 0x18307: 0xe000246c, - 0x18308: 0x6d0d2e20, 0x18309: 0x6c077420, 0x1830a: 0xe000246f, 0x1830b: 0x6c17e220, - 0x1830c: 0x6c21a220, 0x1830d: 0x6c21a620, 0x1830e: 0x6c21f020, 0x1830f: 0x6c3f9a20, - 0x18310: 0x6c6c7c20, 0x18311: 0x6c16dc20, 0x18312: 0x6c16de20, 0x18313: 0x6d2f1620, - 0x18314: 0x6c9ae820, 0x18315: 0xe000247b, 0x18316: 0x6c3f9c20, 0x18317: 0x6d222020, - 0x18318: 0x6cbe6a20, 0x18319: 0x6cef7e20, 0x1831a: 0x6d13ae20, 0x1831b: 0x6c3c9820, - 0x1831c: 0x6c3a3020, 0x1831d: 0x6cd29c20, 0x1831e: 0xe0002481, 0x1831f: 0x6cd29e20, - 0x18320: 0x6cd2a020, 0x18321: 0xe0002484, 0x18322: 0x6c96ae20, 0x18323: 0x6c476c20, - 0x18324: 0x6c4b2420, 0x18325: 0x6d220e20, 0x18326: 0x6ca7ce20, 0x18327: 0x6c920a20, - 0x18328: 0x6c975620, 0x18329: 0x6c5a4020, 0x1832a: 0x6c9e4820, 0x1832b: 0x6cb6bc20, - 0x1832c: 0x6cb6be20, 0x1832d: 0x6c1bd020, 0x1832e: 0x6c1bd220, 0x1832f: 0x6c902820, - 0x18330: 0x6c902a20, 0x18331: 0x6c4ab620, 0x18332: 0x6c4ab420, 0x18333: 0x2c4a3883, - // Block 0x60d, offset 0x18340 - 0x18340: 0x2d13b686, 0x18341: 0x2c4bb683, 0x18342: 0x2d3a5283, 0x18343: 0x2cb1dc83, - 0x18344: 0x2d15aa84, 0x18345: 0x2c73be83, 0x18346: 0x2c37b486, 0x18347: 0x2ce7e283, - 0x18348: 0x2cc55a84, 0x18349: 0x2c372e83, 0x1834a: 0x2cc80e83, 0x1834b: 0x2c030a84, - 0x1834c: 0x2c6ed083, 0x1834d: 0x2c9d1683, 0x1834e: 0x2c0d9e83, 0x1834f: 0x2c610c83, - 0x18350: 0x2cb9ec83, 0x18351: 0x2c29b083, 0x18352: 0x2c855c83, 0x18353: 0x2c059c83, - 0x18354: 0x2c08aa83, 0x18355: 0x2c397e83, 0x18356: 0x2cf83483, 0x18357: 0x2cd22485, - 0x18358: 0x2c100483, 0x18359: 0x2c6a4e83, 0x1835a: 0x2c16e083, 0x1835b: 0x2cd7b483, - 0x1835c: 0x2d200483, 0x1835d: 0x2c79c883, 0x1835e: 0x2ceed683, 0x1835f: 0x2ce91084, - 0x18360: 0x2cd2e283, 0x18361: 0x2d34ca83, 0x18362: 0x2cdba683, 0x18363: 0x2cf55a83, - 0x18364: 0x2c26e483, 0x18365: 0x2caa6e84, 0x18366: 0x2d3f6883, 0x18367: 0x2c9db683, - 0x18368: 0x2c25b083, 0x18369: 0x2cffa283, 0x1836a: 0x2d1edc83, 0x1836b: 0x2cd18a83, - 0x1836c: 0x2c17fa83, 0x1836d: 0x2cccb083, 0x1836e: 0x2c1fd683, 0x1836f: 0x2c454a83, - 0x18370: 0x2c610e83, 0x18371: 0x2c6c1a83, 0x18372: 0x2c420a83, 0x18373: 0x2d107e83, - 0x18374: 0x2c4a0283, 0x18375: 0x2d1ac083, 0x18376: 0x2c45cc83, 0x18377: 0x2d163c83, - 0x18378: 0x2c454c83, 0x18379: 0x2c616883, 0x1837a: 0x2cccb283, 0x1837b: 0x2c1bd483, - 0x1837c: 0x2d02a283, 0x1837d: 0x2c436083, 0x1837e: 0x2c563883, 0x1837f: 0x2cd43684, - // Block 0x60e, offset 0x18380 - 0x18380: 0x2d337e83, 0x18381: 0x2cb3fc83, 0x18382: 0x2cf17a84, 0x18383: 0x2c30f883, - 0x18384: 0x2c6c1e83, 0x18385: 0x2c398083, 0x18386: 0x2cf39a83, 0x18387: 0x2cc63684, - 0x18388: 0x2d264283, 0x18389: 0x2d266885, 0x1838a: 0x2ca25c84, 0x1838b: 0x2cba3883, - 0x1838c: 0x2d34cc83, 0x1838d: 0x2c271283, 0x1838e: 0x2cd49883, 0x1838f: 0x2cf39c83, - 0x18390: 0x2c08ac83, 0x18391: 0x2c98c083, 0x18392: 0x2cd2e483, 0x18393: 0x2cb72683, - 0x18394: 0x2cd70284, 0x18395: 0x2c5d8484, 0x18396: 0x2d2f8083, 0x18397: 0x2c3fa083, - 0x18398: 0x2d10c683, 0x18399: 0x2cac5083, 0x1839a: 0x2cb14483, 0x1839b: 0x2d0b0883, - 0x1839c: 0x2ca96683, 0x1839d: 0x2cc34c83, 0x1839e: 0x2d07fa83, 0x1839f: 0x2d22b883, - 0x183a0: 0x2c483e83, 0x183a1: 0x2cec0c83, 0x183a2: 0x2c415c83, 0x183a3: 0x2cd0d284, - 0x183a4: 0x2d1e6c83, 0x183a5: 0x2ce47e83, 0x183a6: 0x2cb04483, 0x183a7: 0x2ca54083, - 0x183a8: 0x2c0e4683, 0x183a9: 0x2c040883, 0x183aa: 0x2cafa883, 0x183ab: 0x2c9f8a83, - 0x183ac: 0x2ca26483, 0x183ad: 0x2c98c283, 0x183ae: 0x2cd2a883, 0x183af: 0x2cd22c83, - 0x183b0: 0x2cd2f483, 0x183b1: 0x2cc74083, 0x183b2: 0x2c50b283, 0x183b3: 0x2d08f283, - 0x183b4: 0x2c856c83, 0x183b5: 0x2d39f083, 0x183b6: 0x2c9cd683, 0x183b7: 0x2c9d1a83, - 0x183b8: 0x2c3d1a83, 0x183b9: 0x2cedf483, 0x183ba: 0x2d0f7683, 0x183bb: 0x2d221c83, - 0x183bc: 0x2c819a83, 0x183bd: 0x2c373083, 0x183be: 0x2c82b283, 0x183bf: 0x2c378483, - // Block 0x60f, offset 0x183c0 - 0x183c0: 0x2d22c683, 0x183c1: 0x2cc78283, 0x183c2: 0x2c189483, 0x183c3: 0x2d3f2a83, - 0x183c4: 0x2d357083, 0x183c5: 0x2c6fd083, 0x183c6: 0x2ccf0683, 0x183c7: 0x2c201683, - 0x183c8: 0x2d385283, 0x183c9: 0x2c449e83, 0x183ca: 0x2ccb1483, 0x183cb: 0x2c12aa83, - 0x183cc: 0x2c549483, 0x183cd: 0x2c1d0883, 0x183ce: 0x2d093883, 0x183cf: 0x2d03ba83, - 0x183d0: 0x2d13be83, 0x183d1: 0x2d0b7083, 0x183d2: 0x2c665283, 0x183d3: 0x2c68c683, - 0x183d4: 0x2d0c5c83, 0x183d5: 0x2c475c83, 0x183d6: 0x2c30fa83, 0x183d7: 0x2cd2b083, - 0x183d8: 0x2d357c83, 0x183d9: 0x2c06dc83, 0x183da: 0x2c1be883, 0x183db: 0x2d407e84, - 0x183dc: 0x2d40a683, 0x183dd: 0x2ccfa483, 0x183de: 0x2c17ce83, 0x183df: 0x2d02ae83, - 0x183e0: 0x2c18a083, 0x183e1: 0x2c21a883, 0x183e2: 0x2d169e83, 0x183e3: 0x2d1fa483, - 0x183e4: 0x2c0b7883, 0x183e5: 0x2c84fc83, 0x183e6: 0x2c6c2e84, 0x183e7: 0x2d2f0083, - 0x183e8: 0x2c9ac683, 0x183e9: 0x2c3fba83, 0x183ea: 0x2c859883, 0x183eb: 0x2d3c5683, - 0x183ec: 0x2d222283, 0x183ed: 0x2cbe3083, 0x183ee: 0x2c39f283, 0x183ef: 0x2c9e5683, - 0x183f0: 0x2c43d083, 0x183f1: 0x2ceeee83, 0x183f2: 0x2c6fb483, 0x183f3: 0x2d19ba83, - 0x183f4: 0x2d12dc83, 0x183f5: 0x2c3c2c83, 0x183f6: 0x2c39f483, 0x183f7: 0x2cd25883, - 0x183f8: 0x2cd44283, 0x183f9: 0x2cfd6683, 0x183fa: 0x2c969883, 0x183fb: 0x2c476e83, - 0x183fc: 0x2c42bc83, 0x183fd: 0x2c0bf483, 0x183fe: 0x2c310e83, 0x183ff: 0x2c170e83, - // Block 0x610, offset 0x18400 - 0x18400: 0x2c43e083, 0x18401: 0x2c4ae283, 0x18402: 0x2d211283, 0x18403: 0x2ca79a83, - 0x18404: 0x2c91bc83, 0x18405: 0x2c924c83, 0x18406: 0x2c973283, 0x18407: 0x2c966883, - 0x18408: 0x2c59ce83, 0x18409: 0x2cd56083, 0x1840a: 0x2c521c83, 0x1840b: 0x2d353483, - 0x1840c: 0x2c9e3283, 0x1840d: 0x2c2f7483, 0x1840e: 0x2c47a683, 0x1840f: 0x2cd56683, - 0x18410: 0x2c08a283, 0x18411: 0x2cb63483, 0x18412: 0x2c1bc283, 0x18413: 0x2c8fb083, - 0x18414: 0x2c4a9683, 0x18415: 0x2d26f683, - 0x18430: 0x40273a20, 0x18431: 0x40273c20, 0x18432: 0x40273e20, 0x18433: 0x40274020, - 0x18434: 0x40274220, 0x18435: 0x40274420, 0x18436: 0x40274620, 0x18437: 0x40274820, - 0x18438: 0x40274a20, 0x18439: 0x40274c20, 0x1843a: 0x40274e20, 0x1843b: 0x40275020, - // Block 0x611, offset 0x18440 - 0x18440: 0x00021283, 0x18441: 0x40025c20, 0x18442: 0x40030420, 0x18443: 0x40051220, - 0x18444: 0x40279a20, 0x18445: 0x4027ca20, 0x18446: 0xe0002206, 0x18447: 0x6c8c9620, - 0x18448: 0x40049c20, 0x18449: 0x40049e20, 0x1844a: 0x4004a020, 0x1844b: 0x4004a220, - 0x1844c: 0x4004a420, 0x1844d: 0x4004a620, 0x1844e: 0x4004a820, 0x1844f: 0x4004aa20, - 0x18450: 0x4004ac20, 0x18451: 0x4004ae20, 0x18452: 0x40279c20, 0x18453: 0x40279e20, - 0x18454: 0x4004b020, 0x18455: 0x4004b220, 0x18456: 0x4004b420, 0x18457: 0x4004b620, - 0x18458: 0x4004b820, 0x18459: 0x4004ba20, 0x1845a: 0x4004bc20, 0x1845b: 0x4004be20, - 0x1845c: 0x40023820, 0x1845d: 0x4003ea20, 0x1845e: 0x4003ec20, 0x1845f: 0x4003ee20, - 0x18460: 0x4027a020, 0x18461: 0xe0000267, 0x18462: 0xe000037f, 0x18463: 0xe0000459, - 0x18464: 0xe000052e, 0x18465: 0xe00005f8, 0x18466: 0xe00006c3, 0x18467: 0xe000076b, - 0x18468: 0xe0000817, 0x18469: 0xe00008bc, 0x1846a: 0xada12202, 0x1846b: 0xae412302, - 0x1846c: 0xae812402, 0x1846d: 0xade12502, 0x1846e: 0xae012602, 0x1846f: 0xae012702, - 0x18470: 0x40023a20, 0x18471: 0x4027ce20, 0x18472: 0xe0000152, 0x18473: 0x4027d020, - 0x18474: 0xe0000155, 0x18475: 0x4027d220, 0x18476: 0x00279c84, 0x18477: 0x4027a220, - 0x18478: 0x2cd22484, 0x18479: 0x2ca75483, 0x1847a: 0x2cc96283, 0x1847b: 0x4027cc20, - 0x1847c: 0xe000231a, 0x1847d: 0x40051420, 0x1847e: 0x4027a420, 0x1847f: 0x4027a620, - // Block 0x612, offset 0x18480 - 0x18480: 0x00633a84, 0x18481: 0x00634484, 0x18482: 0x0064f684, 0x18483: 0x0064f884, - 0x18484: 0x00635a84, 0x18485: 0x00635c84, 0x18486: 0x00635e84, 0x18487: 0x0063ee84, - 0x18488: 0x0063f084, 0x18489: 0x0063f684, 0x1848a: 0x00640884, 0x1848b: 0x00640a84, - 0x1848c: 0x00640e84, 0x1848d: 0x00642284, 0x1848e: 0x00642884, - 0x18490: 0x4027a820, 0x18491: 0x4027aa20, 0x18492: 0x2d13b685, 0x18493: 0x2c37b485, - 0x18494: 0x2cc9f285, 0x18495: 0x2cd87484, 0x18496: 0x2cce4884, 0x18497: 0x2d378285, - 0x18498: 0x2cfa2684, 0x18499: 0x2c63fc83, 0x1849a: 0x2d15aa83, 0x1849b: 0x2c0dba83, - 0x1849c: 0x2c2f4083, 0x1849d: 0x2ce45484, 0x1849e: 0x2c2a8a83, 0x1849f: 0x2cc55a83, - 0x184a0: 0xe000237a, 0x184a1: 0xe0002383, 0x184a2: 0xe0002380, 0x184a3: 0xe000237d, - 0x184a4: 0x40661c20, 0x184a5: 0xe000238c, 0x184a6: 0x40661620, 0x184a7: 0xe0002389, - 0x184a8: 0xe000239e, 0x184a9: 0xe0002386, 0x184aa: 0xe0002395, 0x184ab: 0xe000239b, - 0x184ac: 0x40663420, 0x184ad: 0x4065f220, 0x184ae: 0xe000238f, 0x184af: 0xe0002392, - 0x184b0: 0x40663020, 0x184b1: 0x40663220, 0x184b2: 0x40662c20, 0x184b3: 0xe0002398, - 0x184b4: 0x0065dc99, 0x184b5: 0x0065e699, 0x184b6: 0x0065ee99, 0x184b7: 0x0065f499, - 0x184b8: 0x40660c20, 0x184b9: 0x40660e20, 0x184ba: 0x40661020, - // Block 0x613, offset 0x184c0 - 0x184c0: 0xf0000404, 0x184c1: 0xf0000404, 0x184c2: 0xf0000404, 0x184c3: 0xf0000404, - 0x184c4: 0xf0000404, 0x184c5: 0xf0000404, 0x184c6: 0xf0000404, 0x184c7: 0xf0000404, - 0x184c8: 0xf0000404, 0x184c9: 0xf0000404, 0x184ca: 0xf0000404, 0x184cb: 0xf0000404, - 0x184cc: 0xf0000404, 0x184cd: 0xf0000404, 0x184ce: 0xe000004c, 0x184cf: 0xe0000051, - 0x184d0: 0xe0000056, 0x184d1: 0xe000005b, 0x184d2: 0xe0000060, 0x184d3: 0xe0000065, - 0x184d4: 0xe000006a, 0x184d5: 0xe000006f, 0x184d6: 0xe0000083, 0x184d7: 0xe000008d, - 0x184d8: 0xe0000092, 0x184d9: 0xe0000097, 0x184da: 0xe000009c, 0x184db: 0xe00000a1, - 0x184dc: 0xe0000088, 0x184dd: 0xe0000074, 0x184de: 0xe000007c, - 0x184e0: 0xe000b3ca, 0x184e1: 0xe000b366, 0x184e2: 0xe000b39e, 0x184e3: 0xe000b3ae, - 0x184e4: 0xe000b3ba, 0x184e5: 0xe000b386, 0x184e6: 0xe000b392, 0x184e7: 0xe000b35a, - 0x184e8: 0xe000b37e, 0x184e9: 0xe000b3a6, 0x184ea: 0xe000b3d2, 0x184eb: 0xe000b36e, - 0x184ec: 0xe000b3aa, 0x184ed: 0xe000b38e, 0x184ee: 0xe000b37a, 0x184ef: 0xe000b3b6, - 0x184f0: 0xe000b39a, 0x184f1: 0xe000b3da, 0x184f2: 0xe000b3ce, 0x184f3: 0xe000b3a2, - 0x184f4: 0xe000b38a, 0x184f5: 0xe000b3b2, 0x184f6: 0xe000b35e, 0x184f7: 0xe000b3de, - 0x184f8: 0xe000b382, 0x184f9: 0xe000b362, 0x184fa: 0xe000b36a, 0x184fb: 0xe000b3c6, - 0x184fc: 0xe000b376, 0x184fd: 0xe000b396, 0x184fe: 0xe000b3e2, 0x184ff: 0xe000b3be, - // Block 0x614, offset 0x18500 - 0x18500: 0xe000b372, 0x18501: 0xe000b3c2, 0x18502: 0xe000b3e6, 0x18503: 0xe000b3d6, - 0x18504: 0x2cf20683, 0x18505: 0x2d200c83, 0x18506: 0x2cf17a83, 0x18507: 0x2d32e283, - 0x18508: 0xe00002e3, 0x18509: 0xe00003d8, 0x1850a: 0xe00004b3, 0x1850b: 0xe000057d, - 0x1850c: 0xe0000648, 0x1850d: 0xe00006f0, 0x1850e: 0xe000079c, 0x1850f: 0xe0000841, - 0x18510: 0xe0000ec0, 0x18511: 0xf0000606, 0x18512: 0xf0000606, 0x18513: 0xf0000606, - 0x18514: 0xf0000606, 0x18515: 0xf0000606, 0x18516: 0xf0000606, 0x18517: 0xf0000606, - 0x18518: 0xf0000606, 0x18519: 0xf0000606, 0x1851a: 0xf0000606, 0x1851b: 0xf0000606, - 0x1851c: 0xf0000606, 0x1851d: 0xf0000606, 0x1851e: 0xf0000606, 0x1851f: 0xf0000606, - 0x18520: 0x0062ac86, 0x18521: 0x0062b086, 0x18522: 0x0062b286, 0x18523: 0x0062b686, - 0x18524: 0x0062b886, 0x18525: 0x0062ba86, 0x18526: 0x0062be86, 0x18527: 0x0062c286, - 0x18528: 0x0062c486, 0x18529: 0x0062c886, 0x1852a: 0x0062ca86, 0x1852b: 0x0062cc86, - 0x1852c: 0x0062ce86, 0x1852d: 0x0062d086, 0x1852e: 0xf0000606, 0x1852f: 0xf0000606, - 0x18530: 0xf0000606, 0x18531: 0xf0000606, 0x18532: 0xf0000606, 0x18533: 0xf0000606, - 0x18534: 0xf0000606, 0x18535: 0xf0000606, 0x18536: 0xf0000606, 0x18537: 0xf0000606, - 0x18538: 0xf0000606, 0x18539: 0xf0000606, 0x1853a: 0xf0000606, 0x1853b: 0xf0000606, - 0x1853c: 0xe0002127, 0x1853d: 0xe0002122, 0x1853e: 0xf0000606, 0x1853f: 0x4027ac20, - // Block 0x615, offset 0x18540 - 0x18540: 0x2d13b684, 0x18541: 0x2c37b484, 0x18542: 0x2cc9f284, 0x18543: 0x2cd87483, - 0x18544: 0x2cf41483, 0x18545: 0x2c8f2483, 0x18546: 0x2cb4c683, 0x18547: 0x2c030a83, - 0x18548: 0x2c6f9a83, 0x18549: 0x2cd22483, 0x1854a: 0x2d266884, 0x1854b: 0x2c5d8483, - 0x1854c: 0x2cd70283, 0x1854d: 0x2ca25c83, 0x1854e: 0x2c6c2e83, 0x1854f: 0x2ce91083, - 0x18550: 0x2cc63683, 0x18551: 0x2d399283, 0x18552: 0x2d1f9884, 0x18553: 0x2ccf3683, - 0x18554: 0x2c9fe683, 0x18555: 0x2ce27083, 0x18556: 0x2c110e83, 0x18557: 0x2d3ac683, - 0x18558: 0x2c814083, 0x18559: 0x2c9d3483, 0x1855a: 0x2ca3e283, 0x1855b: 0x2caa6e83, - 0x1855c: 0x2cd3bc83, 0x1855d: 0x2d1eb483, 0x1855e: 0x2d1b3683, 0x1855f: 0x2d3ab083, - 0x18560: 0x2cfe3a83, 0x18561: 0x2d04b283, 0x18562: 0x2d013e83, 0x18563: 0x2d333683, - 0x18564: 0x2cce4883, 0x18565: 0x2d378284, 0x18566: 0x2cfa2683, 0x18567: 0x2d426084, - 0x18568: 0x2d200884, 0x18569: 0x2d13c083, 0x1856a: 0x2d3f7083, 0x1856b: 0x2d08f883, - 0x1856c: 0x2c64ca83, 0x1856d: 0x2cb6c883, 0x1856e: 0x2d3e6083, 0x1856f: 0x2d007083, - 0x18570: 0x2d12ca83, 0x18571: 0xf0000606, 0x18572: 0xf0000606, 0x18573: 0xf0000606, - 0x18574: 0xf0000606, 0x18575: 0xf0000606, 0x18576: 0xf0000606, 0x18577: 0xf0000606, - 0x18578: 0xf0000606, 0x18579: 0xf0000606, 0x1857a: 0xf0000606, 0x1857b: 0xf0000606, - 0x1857c: 0xf0000606, 0x1857d: 0xf0000606, 0x1857e: 0xf0000606, 0x1857f: 0xf0000606, - // Block 0x616, offset 0x18580 - 0x18580: 0xf0000203, 0x18581: 0xf0000203, 0x18582: 0xf0000203, 0x18583: 0xf0000203, - 0x18584: 0xf0000203, 0x18585: 0xf0000203, 0x18586: 0xf0000203, 0x18587: 0xf0000203, - 0x18588: 0xf0000203, 0x18589: 0xe000b416, 0x1858a: 0xe000b422, 0x1858b: 0xe000b42e, - 0x1858c: 0xf0001c1d, 0x1858d: 0xe0000b85, 0x1858e: 0xf0001d1c, 0x1858f: 0xe0000d14, - 0x18590: 0x00657693, 0x18591: 0x00657893, 0x18592: 0x00657a93, 0x18593: 0x00657e93, - 0x18594: 0x00658093, 0x18595: 0x00658293, 0x18596: 0x00658493, 0x18597: 0x00658693, - 0x18598: 0x00658893, 0x18599: 0x00658a93, 0x1859a: 0x00658c93, 0x1859b: 0x00658e93, - 0x1859c: 0x00659093, 0x1859d: 0x00659293, 0x1859e: 0x00659493, 0x1859f: 0x00659693, - 0x185a0: 0x00659893, 0x185a1: 0x00659a93, 0x185a2: 0x00659c93, 0x185a3: 0x00659e93, - 0x185a4: 0x0065a093, 0x185a5: 0x0065a293, 0x185a6: 0x0065a493, 0x185a7: 0x0065a693, - 0x185a8: 0x0065a893, 0x185a9: 0x0065aa93, 0x185aa: 0x0065ac93, 0x185ab: 0x0065ae93, - 0x185ac: 0x0065b093, 0x185ad: 0x0065b293, 0x185ae: 0x0065b493, 0x185af: 0x0065b693, - 0x185b0: 0x0065b893, 0x185b1: 0x0065ba93, 0x185b2: 0x0065bc93, 0x185b3: 0x0065be93, - 0x185b4: 0x0065c093, 0x185b5: 0x0065c493, 0x185b6: 0x0065c693, 0x185b7: 0x0065c893, - 0x185b8: 0x0065ca93, 0x185b9: 0x0065cc93, 0x185ba: 0x0065ce93, 0x185bb: 0x0065d093, - 0x185bc: 0x0065d293, 0x185bd: 0x0065d493, 0x185be: 0x0065d693, - // Block 0x617, offset 0x185c0 - 0x185c0: 0xe000230b, 0x185c1: 0xe00022f8, 0x185c2: 0xe00022fc, 0x185c3: 0xe0002311, - 0x185c4: 0xe0002316, 0x185c5: 0xe000231d, 0x185c6: 0xe0002321, 0x185c7: 0xe0002325, - 0x185c8: 0xe000232b, 0x185c9: 0xf0001c1c, 0x185ca: 0xe0002330, 0x185cb: 0xe000233c, - 0x185cc: 0xe0002340, 0x185cd: 0xe0002337, 0x185ce: 0xe0002346, 0x185cf: 0xe000234b, - 0x185d0: 0xe000234f, 0x185d1: 0xe0002353, 0x185d2: 0xf0001c1c, 0x185d3: 0xe000235e, - 0x185d4: 0xe0002358, 0x185d5: 0xf0001c1c, 0x185d6: 0xe0002363, 0x185d7: 0xe000236d, - 0x185d8: 0xf0000203, 0x185d9: 0xf0000203, 0x185da: 0xf0000203, 0x185db: 0xf0000203, - 0x185dc: 0xf0000203, 0x185dd: 0xf0000203, 0x185de: 0xf0000203, 0x185df: 0xf0000203, - 0x185e0: 0xf0000203, 0x185e1: 0xf0000203, 0x185e2: 0xe000b40e, 0x185e3: 0xe000b41a, - 0x185e4: 0xe000b426, 0x185e5: 0xe000b432, 0x185e6: 0xe000b43a, 0x185e7: 0xe000b442, - 0x185e8: 0xe000b44a, 0x185e9: 0xe000b452, 0x185ea: 0xe000b45a, 0x185eb: 0xe000b462, - 0x185ec: 0xe000b46a, 0x185ed: 0xe000b472, 0x185ee: 0xe000b47a, 0x185ef: 0xe000b482, - 0x185f0: 0xe000b48a, 0x185f1: 0xe0000c1e, 0x185f2: 0xf0001c1c, 0x185f3: 0xf0001d1d, - 0x185f4: 0xe0000a31, 0x185f5: 0xf0001d1c, 0x185f6: 0xf0001c1c, 0x185f7: 0xf0001c1c, - 0x185f8: 0xe0000ac2, 0x185f9: 0xe0000ac6, 0x185fa: 0xf0001d1d, 0x185fb: 0xf0000203, - 0x185fc: 0xf0000203, 0x185fd: 0xf0000203, 0x185fe: 0xf0000203, 0x185ff: 0xe000b544, - // Block 0x618, offset 0x18600 - 0x18600: 0xf0001d1c, 0x18601: 0xf0001d1d, 0x18602: 0xe00009b7, 0x18603: 0xf0001c1d, - 0x18604: 0xf0001c1c, 0x18605: 0xf0001c1c, 0x18606: 0xe0000a66, 0x18607: 0xe0000a7a, - 0x18608: 0xf0001d1c, 0x18609: 0xf0001c1d, 0x1860a: 0xf0001c1c, 0x1860b: 0xf0001d1d, - 0x1860c: 0xf0001c1c, 0x1860d: 0xf0001d1d, 0x1860e: 0xf0001d1d, 0x1860f: 0xf0001c1c, - 0x18610: 0xf0001c1c, 0x18611: 0xf0001c1c, 0x18612: 0xe0000d0d, 0x18613: 0xf0001c1c, - 0x18614: 0xf0001c1c, 0x18615: 0xe0000d3a, 0x18616: 0xe0000d46, 0x18617: 0xf0001d1d, - 0x18618: 0xe0000eb0, 0x18619: 0xe0000eb8, 0x1861a: 0xf0001d1d, 0x1861b: 0xf0001c1c, - 0x1861c: 0xf0001c1d, 0x1861d: 0xf0001c1d, 0x1861e: 0xe00010b2, 0x1861f: 0xe00009c8, - 0x18620: 0xf0000203, 0x18621: 0xf0000203, 0x18622: 0xf0000203, 0x18623: 0xf0000203, - 0x18624: 0xf0000203, 0x18625: 0xf0000203, 0x18626: 0xf0000203, 0x18627: 0xf0000203, - 0x18628: 0xf0000203, 0x18629: 0xe000b412, 0x1862a: 0xe000b41e, 0x1862b: 0xe000b42a, - 0x1862c: 0xe000b436, 0x1862d: 0xe000b43e, 0x1862e: 0xe000b446, 0x1862f: 0xe000b44e, - 0x18630: 0xe000b456, 0x18631: 0xe000b45e, 0x18632: 0xe000b466, 0x18633: 0xe000b46e, - 0x18634: 0xe000b476, 0x18635: 0xe000b47e, 0x18636: 0xe000b486, 0x18637: 0xe000b48e, - 0x18638: 0xe000b492, 0x18639: 0xe000b496, 0x1863a: 0xe000b49a, 0x1863b: 0xe000b49e, - 0x1863c: 0xe000b4a2, 0x1863d: 0xe000b4a6, 0x1863e: 0xe000b4aa, 0x1863f: 0xe0000bdf, - // Block 0x619, offset 0x18640 - 0x18640: 0x6cbf9220, 0x18641: 0x6ce52c20, - 0x18644: 0x6c7ae020, 0x18645: 0x6cf41220, 0x18646: 0x6d1ac620, - 0x1864c: 0x6d144820, - 0x18656: 0x6d006c20, - 0x1865c: 0x6c1d9020, - 0x18661: 0x6caae820, - 0x18664: 0x6c27da20, - 0x18668: 0x6d067820, 0x18669: 0x6d03c420, 0x1866b: 0x6d044c20, - 0x1866c: 0x6c8e4020, 0x1866d: 0x6c8c1820, 0x1866e: 0x6cfd7e20, 0x1866f: 0x6d1dbe20, - 0x18670: 0x6d030e20, 0x18671: 0x6d31ac20, 0x18672: 0x6c272020, 0x18673: 0x6cf49420, - 0x18674: 0x6cac3820, 0x18677: 0x6c968e20, - 0x18678: 0x6cba3c20, 0x18679: 0x6d165420, 0x1867a: 0x6d1a2020, 0x1867b: 0x6ca58220, - 0x1867c: 0x6c1a7e20, 0x1867d: 0x6c3c1020, - // Block 0x61a, offset 0x18680 - 0x18681: 0x6d3cec20, 0x18682: 0x6c39ba20, 0x18683: 0x6c029620, - 0x18684: 0x6cf41c20, 0x18685: 0x6d427220, 0x18687: 0x6d38f620, - 0x18688: 0x6c304e20, 0x18689: 0x6cda7e20, 0x1868a: 0x6d16a020, 0x1868b: 0x6cbefc20, - 0x1868c: 0x6c7b8220, 0x1868d: 0x6c831e20, 0x1868e: 0x6ca4da20, 0x1868f: 0x6d3aa820, - 0x18690: 0x6cd4a220, - 0x18694: 0x6d062820, 0x18697: 0x6ccfb620, - 0x18698: 0x6c6bc820, 0x18699: 0x6c2e6620, 0x1869a: 0x6caab620, 0x1869b: 0x6cda8420, - 0x1869c: 0x6d16d820, 0x1869d: 0x6c905020, 0x1869e: 0x6d1d3220, 0x1869f: 0x6c081020, - 0x186a3: 0x6c7f9220, - 0x186a4: 0x6c9e7220, 0x186a5: 0x6d171820, 0x186a6: 0x6c85be20, 0x186a7: 0x6c61c020, - 0x186a8: 0x6d223420, 0x186a9: 0x6c953c20, 0x186aa: 0x6c147420, - 0x186ae: 0x6c5ce420, 0x186af: 0x6d063820, - 0x186b0: 0x6c5bb220, 0x186b1: 0x6cc53820, 0x186b3: 0x6d392620, - 0x186b5: 0x6c4ebe20, 0x186b6: 0x6cf88220, 0x186b7: 0x6cdf7420, - 0x186b8: 0x6d10f020, 0x186b9: 0x6c5bba20, 0x186ba: 0x6c75b820, 0x186bb: 0x6c96c020, - 0x186bc: 0x6c94ac20, 0x186bd: 0x6ce0fa20, 0x186be: 0x6d110220, 0x186bf: 0x6d2fba20, - // Block 0x61b, offset 0x186c0 - 0x186c0: 0x6d2cf420, 0x186c1: 0x6d226420, 0x186c2: 0x6d3d7620, 0x186c3: 0x6c37d620, - 0x186c4: 0x6cc4cc20, 0x186c5: 0x6cb70820, 0x186c6: 0x6c1c3e20, 0x186c7: 0x6cf45620, - 0x186c8: 0x6c4eda20, 0x186c9: 0x6ce17820, 0x186ca: 0x6ccb3220, - 0x186cc: 0x6cbf4820, 0x186cd: 0x6c824020, 0x186ce: 0x6cc97c20, - 0x186d1: 0x6c7cda20, 0x186d2: 0x6cb44620, 0x186d3: 0x6cde8a20, - 0x186d4: 0x6cd53020, 0x186d5: 0x6d0f6820, 0x186d6: 0x6cab8a20, 0x186d7: 0x6cdf3620, - 0x186d9: 0x6c9dd220, 0x186da: 0x6d1b7820, 0x186db: 0x6c2e3a20, - 0x186dc: 0x6d228820, 0x186dd: 0x6c9eec20, 0x186de: 0x6c75ee20, 0x186df: 0x6ca7b820, - 0x186e0: 0x6d023a20, 0x186e1: 0x6d1f8820, - 0x186e4: 0x6c185420, 0x186e5: 0x6c3c7620, 0x186e6: 0x6c82f820, 0x186e7: 0x6c874020, - 0x186e9: 0x6c95d420, 0x186eb: 0x6c617420, - 0x186f0: 0x6cc2b020, 0x186f2: 0x6c110220, 0x186f3: 0x6c898420, - 0x186f4: 0x6c475620, 0x186f5: 0x6c994020, 0x186f7: 0x6c489020, - 0x186f8: 0x6cdc2820, 0x186fb: 0x6c996a20, - 0x186fc: 0x6c976220, 0x186fd: 0x6cc29820, 0x186fe: 0x6cd39420, 0x186ff: 0x6c84b620, - // Block 0x61c, offset 0x18700 - 0x18701: 0x6cedee20, 0x18702: 0x6c79d820, 0x18703: 0x6c325420, - 0x18704: 0x6d325a20, 0x18705: 0x6ce62020, - 0x18708: 0x6c0e0620, 0x18709: 0x6c5d9e20, 0x1870a: 0x6c305420, 0x1870b: 0x6c460e20, - 0x1870c: 0x6c195220, 0x1870e: 0x6cbd2020, 0x1870f: 0x6c6f0020, - 0x18710: 0x6c922620, 0x18711: 0x6d042020, 0x18713: 0x6ca3f820, - 0x18714: 0x6d01a220, 0x18716: 0x6c09be20, 0x18717: 0x6c6b0420, - 0x18718: 0x6cda9c20, 0x1871a: 0x6c455220, - 0x1871c: 0x6d200620, 0x1871d: 0x6d03b620, 0x1871e: 0x6cb83c20, 0x1871f: 0x6cafae20, - 0x18720: 0x6c2d3620, 0x18721: 0x6c3f3c20, 0x18722: 0x6c95de20, 0x18723: 0x6cb84220, - 0x18724: 0x6cb84420, 0x18725: 0x6ce0ba20, 0x18726: 0x6c03fa20, 0x18727: 0x6c418420, - 0x18728: 0x6c222420, 0x18729: 0x6d077e20, 0x1872a: 0x6c80f620, - 0x1872d: 0x6ccf0c20, 0x1872f: 0x6c83a820, - 0x18730: 0x6c578820, 0x18731: 0x6ce7ea20, 0x18732: 0x6cb0f020, 0x18733: 0x6c2b2420, - 0x18734: 0x6cc85e20, 0x18735: 0x6c360820, 0x18736: 0x6cbcb020, 0x18737: 0x6d178c20, - 0x18738: 0x6d3d0020, 0x18739: 0x6cc8cc20, 0x1873a: 0x6c649420, - 0x1873c: 0x6c1c2e20, 0x1873d: 0x6c1d1820, 0x1873e: 0x6cf66220, - // Block 0x61d, offset 0x18740 - 0x18740: 0x6c94b420, 0x18741: 0x6c2aa020, 0x18742: 0x6c8bbe20, 0x18743: 0x6c747020, - 0x18744: 0x6cdae020, 0x18745: 0x6cfffa20, 0x18746: 0x6d299020, - 0x18749: 0x6d3a7620, 0x1874a: 0x6d2e0e20, 0x1874b: 0x6c64f020, - 0x1874c: 0x6d408c20, 0x1874d: 0x6c1fa020, 0x1874e: 0x6d022a20, 0x1874f: 0x6c869820, - 0x18751: 0x6c1c8e20, 0x18752: 0x6cf7b820, 0x18753: 0x6c656020, - 0x18755: 0x6c5fc020, 0x18757: 0x6c3a7c20, - 0x18758: 0x6c1f0620, 0x18759: 0x6c07d420, 0x1875a: 0x6c6a7820, - 0x1875c: 0x6c036c20, 0x1875d: 0x6c898a20, 0x1875e: 0x6c7b1e20, - 0x18760: 0x6cf95e20, 0x18761: 0x6c0ca420, 0x18762: 0x6c747420, 0x18763: 0x6c825c20, - 0x18764: 0x6d035020, 0x18765: 0x6c045820, 0x18766: 0x6d103220, 0x18767: 0x6c940a20, - 0x18768: 0x6c070a20, 0x18769: 0x6c362420, 0x1876a: 0x6c91c220, - 0x1876d: 0x6c181220, 0x1876e: 0x6caad020, 0x1876f: 0x6d07fe20, - 0x18770: 0x6c525220, 0x18771: 0x6d224420, 0x18773: 0x6c4b0620, - 0x18774: 0x6d17dc20, 0x18775: 0x6d085020, 0x18776: 0x6c462c20, 0x18777: 0x6c910020, - 0x18778: 0x6ce2f020, 0x18779: 0x6c820420, 0x1877a: 0x6cd2f820, - 0x1877c: 0x6cdcee20, 0x1877d: 0x6d11ec20, 0x1877e: 0x6cfa6820, 0x1877f: 0x6d408420, - // Block 0x61e, offset 0x18780 - 0x18781: 0x6cc3a220, 0x18782: 0x6d1a2220, 0x18783: 0x6cf56420, - 0x18784: 0x6d34d420, 0x18785: 0x6c639620, 0x18786: 0x6c564e20, 0x18787: 0x6c7e3620, - 0x18788: 0x6d15c620, 0x18789: 0x6c788020, 0x1878a: 0x6c3d4620, 0x1878b: 0x6cbd6020, - 0x1878c: 0x6c009220, 0x1878e: 0x6c78ac20, 0x1878f: 0x6c1e8820, - 0x18790: 0x6d014620, 0x18791: 0x6c1e9a20, 0x18792: 0x6ceeac20, - 0x18795: 0x6c58ea20, 0x18796: 0x6cda8a20, 0x18797: 0x6d203a20, - 0x18799: 0x6c75e020, 0x1879a: 0x6d2f7e20, 0x1879b: 0x6d066620, - 0x1879c: 0x6cd2ac20, 0x1879e: 0x6cd64220, 0x1879f: 0x6c7cea20, - 0x187a0: 0x6cd6a220, 0x187a1: 0x6c515420, 0x187a2: 0x6c414e20, 0x187a3: 0x6d0d3020, - 0x187a4: 0x6cbfec20, 0x187a5: 0x6ccf9820, 0x187a6: 0x6c577a20, 0x187a7: 0x6cf56820, - 0x187a8: 0x6c391820, 0x187a9: 0x6cad2420, 0x187aa: 0x6c281e20, 0x187ab: 0x6c39bc20, - 0x187ac: 0x6c455c20, 0x187ad: 0x6c022620, 0x187ae: 0x6c3f3020, 0x187af: 0x6ca54420, - 0x187b0: 0x6d093a20, 0x187b1: 0x6d1ee420, 0x187b2: 0x6c572620, - 0x187b4: 0x6c189620, 0x187b5: 0x6c4c5420, 0x187b6: 0x6ca2c820, 0x187b7: 0x6c577e20, - 0x187b8: 0x6c858820, 0x187b9: 0x6c37fa20, 0x187ba: 0x6cfe8020, 0x187bb: 0x6cb3ea20, - 0x187bd: 0x6cd88820, - // Block 0x61f, offset 0x187c0 - 0x187c0: 0x6c821c20, 0x187c1: 0x6c8c4820, 0x187c2: 0x6d16dc20, 0x187c3: 0x6c544c20, - 0x187c5: 0x6d068c20, 0x187c6: 0x6cc17620, 0x187c7: 0x6c373a20, - 0x187ca: 0x6d09e220, - 0x187cf: 0x6ca80020, - 0x187d0: 0x6cef9a20, 0x187d1: 0x6d017820, 0x187d2: 0x6ce31420, 0x187d3: 0x6c532620, - 0x187d4: 0x6cea7820, 0x187d5: 0x6ca80220, 0x187d6: 0x6ca80420, 0x187d7: 0x6d1a4020, - 0x187d8: 0x6d313420, - 0x187de: 0x6cec5020, 0x187df: 0x6cd45a20, - 0x187e0: 0x6caaea20, 0x187e1: 0x6d12e420, 0x187e2: 0x6cb5b620, 0x187e3: 0x6ce82620, - 0x187e4: 0x6c4df820, 0x187e5: 0x6c75ac20, 0x187e6: 0x6c302c20, 0x187e7: 0x6c5cba20, - 0x187e8: 0x6c923220, 0x187e9: 0x6c707a20, 0x187ea: 0x6c5db820, 0x187eb: 0x6c8cdc20, - 0x187ed: 0x6ce4e420, 0x187ee: 0x6c94e820, - 0x187f5: 0x6c43e220, 0x187f6: 0x6d0c0620, 0x187f7: 0x6cd26420, - 0x187f8: 0x6d090c20, 0x187f9: 0x6cae3020, 0x187fa: 0x6c217820, 0x187fb: 0x6ca96c20, - 0x187fc: 0x6c348a20, 0x187fd: 0x6d2aca20, 0x187fe: 0x6c362820, 0x187ff: 0x6d00a820, - // Block 0x620, offset 0x18800 - 0x18800: 0x6d1ea020, 0x18801: 0x6c362a20, 0x18802: 0x6cd13420, 0x18803: 0x6cf1dc20, - 0x18804: 0x6c7a3e20, 0x18805: 0x6c555020, 0x18806: 0x6c43e620, 0x18807: 0x6cf9c020, - 0x18808: 0x6c97dc20, 0x18809: 0x6c94a820, 0x1880a: 0x6c602a20, 0x1880b: 0x6c53f620, - 0x1880c: 0x6d361620, 0x1880f: 0x6cec5420, - 0x18811: 0x6c046820, 0x18812: 0x6c00a020, 0x18813: 0x6d3c6220, - 0x18814: 0x6cb8ec20, 0x18815: 0x6c46ac20, 0x18816: 0x6c289220, 0x18817: 0x6c06a820, - 0x18818: 0x6c0f0e20, 0x18819: 0x6c1e6020, 0x1881a: 0x6c862820, 0x1881b: 0x6cfff620, - 0x1881c: 0x6d054020, - 0x18822: 0x6c537020, 0x18823: 0x6ce40620, - 0x18824: 0x6c244220, 0x18825: 0x6c7e0a20, 0x18826: 0x6c816020, 0x18827: 0x6d367820, - 0x18828: 0x6d004e20, 0x18829: 0x6cf66620, 0x1882b: 0x6cbcce20, - 0x1882c: 0x6d2be820, 0x1882d: 0x6cf66820, - 0x18830: 0x6c23a220, 0x18831: 0x6c607a20, 0x18832: 0x6c5dec20, 0x18833: 0x6cde1220, - 0x18834: 0x6d0cbe20, 0x18835: 0x6d072420, 0x18836: 0x6cb31c20, 0x18837: 0x6cc9dc20, - 0x1883b: 0x6c4c3a20, - 0x1883c: 0x6d133620, 0x1883d: 0x6cfdfe20, 0x1883e: 0x6d08e620, 0x1883f: 0x6c516c20, - // Block 0x621, offset 0x18840 - 0x18840: 0x6d42aa20, 0x18841: 0x6d188020, 0x18842: 0x6c226620, - 0x18844: 0x6c837020, 0x18845: 0x6cfba620, 0x18846: 0x6cdf5620, 0x18847: 0x6cc6bc20, - 0x18848: 0x6d18be20, 0x18849: 0x6d372220, 0x1884a: 0x6cf6fe20, 0x1884b: 0x6cfbb420, - 0x1884c: 0x6c72aa20, 0x1884d: 0x6c60d620, 0x1884e: 0x6c4e6820, - 0x18850: 0x6cad9e20, 0x18851: 0x6c86e620, 0x18853: 0x6c7fe020, - 0x18854: 0x6cc9e020, 0x18855: 0x6c4e7020, 0x18856: 0x6d0cfe20, 0x18857: 0x6cc16020, - 0x18859: 0x6d0d1620, 0x1885a: 0x6c4e7420, 0x1885b: 0x6c76ba20, - 0x1885c: 0x6c1bce20, 0x1885d: 0x6ca7e820, 0x1885e: 0x6c5d9620, - 0x18860: 0x6c092820, 0x18861: 0x6cf98a20, 0x18862: 0x6cf24820, 0x18863: 0x6d080420, - 0x18864: 0x6cec9420, 0x18865: 0x6d1f8a20, 0x18866: 0x6cbd4c20, 0x18867: 0x6d066c20, - 0x18868: 0x6ca7f020, 0x18869: 0x6c091620, 0x1886a: 0x6c501020, 0x1886b: 0x6c6e0820, - 0x1886c: 0x6c02bc20, 0x1886d: 0x6c02be20, - 0x18870: 0x6d311e20, 0x18871: 0x6cdf8a20, 0x18872: 0x6c70f220, - 0x18874: 0x6d427a20, 0x18875: 0x6c106220, 0x18876: 0x6c6a8a20, 0x18877: 0x6c009020, - 0x18878: 0x6d29fc20, 0x18879: 0x6c222620, 0x1887a: 0x6c37fc20, - 0x1887f: 0x6ca80620, - // Block 0x622, offset 0x18880 - 0x18880: 0x6c8f2a20, 0x18881: 0x6c99e220, 0x18882: 0x6c334420, 0x18883: 0x6c052020, - 0x18884: 0x6c095a20, 0x18885: 0x6c05ee20, 0x18887: 0x6c1f2c20, - 0x18888: 0x6cfa3620, 0x18889: 0x6ce4e820, 0x1888a: 0x6c16a220, - 0x1888d: 0x6c342420, 0x1888e: 0x6cee7e20, 0x1888f: 0x6c3fea20, - 0x18890: 0x6c348c20, 0x18891: 0x6d225420, 0x18892: 0x6d12ac20, 0x18893: 0x6c7c7620, - 0x18894: 0x6cefb620, 0x18895: 0x6c7b2220, 0x18897: 0x6cee8020, - 0x18898: 0x6d10a420, 0x18899: 0x6c903420, 0x1889a: 0x6d037a20, 0x1889b: 0x6d3b7c20, - 0x1889c: 0x6c1b3020, 0x1889d: 0x6d00b420, 0x1889e: 0x6ca83a20, 0x1889f: 0x6c810020, - 0x188a0: 0x6d13fe20, 0x188a1: 0x6d3f9e20, 0x188a2: 0x6c976a20, 0x188a3: 0x6d2f3820, - 0x188a4: 0x6cfa4220, 0x188a5: 0x6c4bfe20, 0x188a6: 0x6d00c820, - 0x188a8: 0x6c625c20, 0x188a9: 0x6c8a0220, 0x188aa: 0x6d184820, 0x188ab: 0x6c607c20, - 0x188ac: 0x6d1a8e20, 0x188ae: 0x6c266020, 0x188af: 0x6d184a20, - 0x188b0: 0x6d020a20, 0x188b1: 0x6c506220, 0x188b2: 0x6d1e5c20, 0x188b3: 0x6c76ea20, - 0x188b4: 0x6c163220, 0x188b5: 0x6cdf3e20, 0x188b6: 0x6ce13020, 0x188b7: 0x6d34a220, - 0x188b8: 0x6c066e20, 0x188b9: 0x6c9b5220, 0x188ba: 0x6c7ca220, 0x188bb: 0x6c153620, - 0x188bc: 0x6c82e020, 0x188be: 0x6cf91220, - // Block 0x623, offset 0x188c0 - 0x188c0: 0x6cf72820, 0x188c1: 0x6cbc7220, 0x188c2: 0x6ca47e20, 0x188c3: 0x6d274e20, - 0x188c5: 0x6c8f7220, 0x188c6: 0x6c3fbe20, 0x188c7: 0x6d3f7220, - 0x188c9: 0x6c475e20, 0x188ca: 0x6c762820, 0x188cb: 0x6c2dd420, - 0x188cc: 0x6c57aa20, 0x188cd: 0x6c7ce020, 0x188cf: 0x6c42fc20, - 0x188d0: 0x6ce26020, 0x188d2: 0x6ccd2a20, 0x188d3: 0x6c7f3a20, - 0x188d4: 0x6ca7f420, 0x188d5: 0x6c3de220, 0x188d6: 0x6c42fe20, 0x188d7: 0x6cbc8420, - 0x188d8: 0x6c04e420, 0x188d9: 0x6c632620, 0x188da: 0x6c796a20, 0x188db: 0x6cf85620, - 0x188dc: 0x6d230820, 0x188dd: 0x6d3c5a20, 0x188de: 0x6cd05820, 0x188df: 0x6c21ba20, - 0x188e0: 0x6cfed420, 0x188e1: 0x6c615220, 0x188e2: 0x6caa3820, 0x188e3: 0x6cff6a20, - 0x188e4: 0x6d165a20, 0x188e5: 0x6d20a820, 0x188e6: 0x6d145420, 0x188e7: 0x6d0d3620, - 0x188e8: 0x6cd04020, 0x188e9: 0x6cc4aa20, 0x188ea: 0x6c501220, 0x188eb: 0x6cc96620, - 0x188ec: 0x6c755820, 0x188ed: 0x6d1ee820, 0x188ef: 0x6d02fc20, - 0x188f0: 0x6cadae20, 0x188f1: 0x6cbfa020, 0x188f2: 0x6c14b820, - 0x188f4: 0x6c106420, 0x188f5: 0x6c2fdc20, 0x188f6: 0x6cd88a20, 0x188f7: 0x6c378620, - 0x188f9: 0x6c992820, 0x188fa: 0x6d281820, 0x188fb: 0x6c5e8a20, - 0x188fd: 0x6cbc1e20, 0x188fe: 0x6d045820, 0x188ff: 0x6cad4a20, - // Block 0x624, offset 0x18900 - 0x18900: 0x6c1e7420, 0x18901: 0x6cae5220, 0x18902: 0x6caad620, 0x18903: 0x6c6a8c20, - 0x18904: 0x6d13d420, 0x18905: 0x6c37c220, 0x18906: 0x6c34d420, - 0x1890a: 0x6c347c20, - 0x1890d: 0x6cbca420, 0x1890e: 0x6c938220, 0x1890f: 0x6cc02620, - 0x18910: 0x6cda1020, 0x18911: 0x6c11f020, 0x18912: 0x6c310020, 0x18913: 0x6cf5b820, - 0x18914: 0x6c3c2e20, 0x18915: 0x6d172220, 0x18916: 0x6cdd0e20, 0x18917: 0x6cbc7a20, - 0x18918: 0x6cb37620, 0x18919: 0x6d02c020, 0x1891a: 0x6ce7b020, 0x1891b: 0x6d032820, - 0x1891c: 0x6d1f1220, 0x1891d: 0x6c06fe20, 0x1891e: 0x6c905820, - 0x18923: 0x6d279820, - 0x18924: 0x6c83ac20, 0x18925: 0x6cde4420, 0x18926: 0x6c802620, 0x18927: 0x6c97b820, - 0x18928: 0x6cbb3a20, 0x18929: 0x6d38d220, 0x1892a: 0x6d0e5c20, 0x1892b: 0x6cf5de20, - 0x1892c: 0x6c923620, 0x1892d: 0x6cf5e020, 0x1892e: 0x6ccae220, 0x1892f: 0x6c395220, - 0x18931: 0x6cefb820, 0x18932: 0x6c383a20, 0x18933: 0x6d179020, - 0x18934: 0x6ca4f420, 0x18935: 0x6c196c20, 0x18936: 0x6ce09820, 0x18937: 0x6c5ec620, - 0x18938: 0x6cd5d020, 0x18939: 0x6cb10e20, 0x1893a: 0x6c012e20, 0x1893b: 0x6c7ac420, - 0x1893c: 0x6c139820, 0x1893e: 0x6cfb5a20, 0x1893f: 0x6d361c20, - // Block 0x625, offset 0x18940 - 0x18942: 0x6c3c4820, 0x18943: 0x6c88f420, - 0x18944: 0x6d0a0a20, 0x18945: 0x6d06ee20, 0x18946: 0x6c9d5020, 0x18947: 0x6c5bd620, - 0x18948: 0x6ca29220, 0x18949: 0x6d1d8c20, 0x1894a: 0x6d2df420, 0x1894b: 0x6d17de20, - 0x1894c: 0x6caa1e20, 0x1894d: 0x6ce10020, 0x1894e: 0x6cf63e20, 0x1894f: 0x6d27ac20, - 0x18950: 0x6cd5e220, 0x18951: 0x6c3e9420, 0x18952: 0x6d17e020, 0x18953: 0x6c26b020, - 0x18955: 0x6c881e20, 0x18956: 0x6c127a20, 0x18957: 0x6c116e20, - 0x18958: 0x6c725e20, 0x18959: 0x6c927a20, 0x1895a: 0x6cdae220, 0x1895b: 0x6ca59a20, - 0x1895c: 0x6c02dc20, 0x1895d: 0x6c018c20, 0x1895e: 0x6cba6420, - 0x18960: 0x6c24d420, 0x18961: 0x6c232420, 0x18963: 0x6cc48220, - 0x18964: 0x6ca73220, 0x18965: 0x6c96fe20, 0x18966: 0x6d030220, 0x18967: 0x6d26e020, - 0x18968: 0x6ca38220, 0x18969: 0x6c02ee20, 0x1896a: 0x6cd01620, 0x1896b: 0x6c96dc20, - 0x1896e: 0x6c807a20, 0x1896f: 0x6cf6e620, - 0x18970: 0x6d26f820, 0x18971: 0x6d372620, 0x18972: 0x6cf26420, 0x18973: 0x6c57f620, - 0x18974: 0x6c9c1820, 0x18975: 0x6ca7bc20, 0x18976: 0x6ced6620, 0x18977: 0x6c9c9c20, - 0x18978: 0x6ca89e20, 0x18979: 0x6cc1f820, 0x1897a: 0x6d29b820, 0x1897b: 0x6c893e20, - 0x1897c: 0x6d34c620, 0x1897d: 0x6d3eda20, 0x1897e: 0x6c4d1a20, 0x1897f: 0x6d066e20, - // Block 0x626, offset 0x18980 - 0x18980: 0x6c501820, 0x18981: 0x6d078020, 0x18982: 0x6d35b020, 0x18983: 0x6c9e1220, - 0x18984: 0x6c214820, 0x18985: 0x6c46b020, 0x18987: 0x6c216020, - 0x18988: 0x6c946a20, 0x18989: 0x6d3a9820, 0x1898a: 0x6cd43820, 0x1898b: 0x6c8a5e20, - 0x1898c: 0x6c6fcc20, 0x1898d: 0x6d014020, 0x1898e: 0x6c2f9220, 0x1898f: 0x6c6bae20, - 0x18990: 0x6cc65220, 0x18991: 0x6c982e20, 0x18993: 0x6c788a20, - 0x18994: 0x6d119620, 0x18995: 0x6ca8fc20, 0x18996: 0x6d148e20, 0x18997: 0x6c80a620, - 0x18998: 0x6d1df020, 0x18999: 0x6d1a4420, 0x1899a: 0x6d0c7e20, 0x1899b: 0x6cda9e20, - 0x1899d: 0x6c8baa20, 0x1899e: 0x6d0aec20, 0x1899f: 0x6c98d820, - 0x189a0: 0x6c9ff420, 0x189a1: 0x6d41aa20, 0x189a2: 0x6d225620, 0x189a3: 0x6d179220, - 0x189a4: 0x6c46b220, 0x189a5: 0x6c9cfa20, 0x189a6: 0x6c75c820, 0x189a7: 0x6cf1e420, - 0x189a9: 0x6c773a20, 0x189aa: 0x6c2d7020, 0x189ab: 0x6c8f9820, - 0x189ad: 0x6d040620, 0x189ae: 0x6c255420, 0x189af: 0x6cbbec20, - 0x189b0: 0x6c9dde20, 0x189b1: 0x6c9c1c20, 0x189b2: 0x6cbdf420, - 0x189b4: 0x6cecc220, 0x189b5: 0x6c2a5e20, 0x189b6: 0x6c009420, - 0x189b8: 0x6c0b8c20, 0x189b9: 0x6ca9fe20, 0x189ba: 0x6c882020, 0x189bb: 0x6c6caa20, - 0x189bc: 0x6d207020, 0x189bd: 0x6c20bc20, 0x189be: 0x6d426420, 0x189bf: 0x6c0fe020, - // Block 0x627, offset 0x189c0 - 0x189c0: 0x6c5a9020, 0x189c1: 0x6d11f020, 0x189c2: 0x6ce9e020, 0x189c3: 0x6c61e220, - 0x189c4: 0x6c012420, 0x189c5: 0x6c95fa20, 0x189c6: 0x6c613220, 0x189c7: 0x6cefba20, - 0x189c8: 0x6c0e7420, 0x189c9: 0x6d289020, 0x189ca: 0x6d06f020, 0x189cb: 0x6ca71220, - 0x189cc: 0x6d281420, 0x189ce: 0x6c039820, 0x189cf: 0x6d301a20, - 0x189d0: 0x6c705420, 0x189d1: 0x6cef9020, 0x189d2: 0x6d016e20, 0x189d3: 0x6cb75420, - 0x189d4: 0x6d149020, 0x189d5: 0x6d017020, 0x189d6: 0x6c222a20, 0x189d7: 0x6cc02820, - 0x189d8: 0x6c316a20, 0x189d9: 0x6ca7d420, 0x189da: 0x6cb78a20, 0x189db: 0x6c613c20, - 0x189dc: 0x6ce99420, 0x189de: 0x6cd94c20, 0x189df: 0x6c2d7420, - 0x189e0: 0x6c816820, 0x189e1: 0x6d2e2c20, - 0x189e4: 0x6d1a1c20, 0x189e5: 0x6c132620, 0x189e6: 0x6c611220, 0x189e7: 0x6c5b8620, - 0x189e8: 0x6d3ede20, 0x189e9: 0x6c7f8820, 0x189ea: 0x6ca49020, 0x189eb: 0x6c71f020, - 0x189ec: 0x6cbdfc20, 0x189ed: 0x6c272620, 0x189ef: 0x6c6a6020, - 0x189f0: 0x6d062620, 0x189f1: 0x6c22fa20, 0x189f2: 0x6d1e6e20, 0x189f3: 0x6c30d820, - 0x189f4: 0x6c1afe20, 0x189f6: 0x6c9f9020, 0x189f7: 0x6c59a820, - 0x189f8: 0x6cdc2020, 0x189f9: 0x6c785620, 0x189fa: 0x6d40aa20, 0x189fb: 0x6c501a20, - 0x189fc: 0x6c19ba20, 0x189fd: 0x6d094220, 0x189fe: 0x6ca5bc20, 0x189ff: 0x6c1bec20, - // Block 0x628, offset 0x18a00 - 0x18a00: 0x6c87f020, 0x18a01: 0x6c01a020, 0x18a02: 0x6ca22a20, 0x18a03: 0x6cd7ca20, - 0x18a04: 0x6cfdb220, 0x18a05: 0x6d0f9020, 0x18a06: 0x6c572c20, 0x18a07: 0x6c261620, - 0x18a08: 0x6cc02a20, 0x18a09: 0x6c814c20, 0x18a0a: 0x6c3e2e20, 0x18a0b: 0x6c334620, - 0x18a0c: 0x6c984c20, 0x18a0d: 0x6c80a820, 0x18a0e: 0x6ceb7220, 0x18a0f: 0x6c4df220, - 0x18a10: 0x6c988820, 0x18a11: 0x6c0ed220, 0x18a12: 0x6cc43220, 0x18a13: 0x6cb59e20, - 0x18a14: 0x6c4df420, 0x18a16: 0x6c905c20, - 0x18a18: 0x6ce57e20, 0x18a19: 0x6d2aba20, 0x18a1a: 0x6cb5ba20, 0x18a1b: 0x6d298a20, - 0x18a1c: 0x6c9c4620, 0x18a1d: 0x6cadd220, 0x18a1e: 0x6d2e5620, 0x18a1f: 0x6cfe2c20, - 0x18a20: 0x6c429c20, 0x18a22: 0x6cb5bc20, - 0x18a24: 0x6c923820, 0x18a26: 0x6d283020, 0x18a27: 0x6c362e20, - 0x18a28: 0x6c329a20, 0x18a29: 0x6c9f5020, 0x18a2a: 0x6cee8420, 0x18a2b: 0x6cc2ec20, - 0x18a2c: 0x6cda1c20, 0x18a2d: 0x6c9f5220, 0x18a2e: 0x6ce85e20, - 0x18a30: 0x6ca03620, 0x18a31: 0x6d11b420, 0x18a32: 0x6c746220, 0x18a33: 0x6c862c20, - 0x18a34: 0x6c7b2620, 0x18a35: 0x6c42a420, 0x18a36: 0x6d257e20, 0x18a37: 0x6c26fa20, - 0x18a39: 0x6c816220, 0x18a3a: 0x6c909c20, 0x18a3b: 0x6cba6620, - 0x18a3c: 0x6c025c20, 0x18a3d: 0x6c0c7620, 0x18a3e: 0x6d1d9a20, 0x18a3f: 0x6c989820, - // Block 0x629, offset 0x18a40 - 0x18a40: 0x6c29e020, 0x18a42: 0x6c025e20, - 0x18a44: 0x6cf78e20, 0x18a45: 0x6c3ed420, 0x18a46: 0x6c27f820, 0x18a47: 0x6c701420, - 0x18a48: 0x6cc90220, 0x18a49: 0x6ce77a20, 0x18a4a: 0x6cc13220, 0x18a4b: 0x6c368220, - 0x18a4c: 0x6cb51a20, 0x18a4d: 0x6c607e20, 0x18a4e: 0x6c608020, 0x18a4f: 0x6c574c20, - 0x18a50: 0x6c69b820, 0x18a51: 0x6d41cc20, 0x18a52: 0x6c0c7a20, 0x18a53: 0x6c9b4620, - 0x18a54: 0x6c045620, 0x18a55: 0x6cf01420, 0x18a56: 0x6d160e20, 0x18a57: 0x6c02f020, - 0x18a58: 0x6d229e20, 0x18a59: 0x6c4ff020, 0x18a5a: 0x6c336620, 0x18a5b: 0x6cf31a20, - 0x18a5c: 0x6ca6d620, 0x18a5d: 0x6c249e20, 0x18a5f: 0x6c846e20, - 0x18a60: 0x6c916c20, 0x18a61: 0x6ca7be20, 0x18a62: 0x6c57f820, 0x18a63: 0x6c86f020, - 0x18a65: 0x6c941c20, 0x18a66: 0x6c3c7e20, 0x18a67: 0x6c9d0c20, - 0x18a68: 0x6d249e20, 0x18a6a: 0x6c71e620, - 0x18a6d: 0x6d2dec20, 0x18a6e: 0x6cae8220, 0x18a6f: 0x6d15b220, - 0x18a71: 0x6c61e420, 0x18a72: 0x6c08ae20, - 0x18a74: 0x6cc5b420, 0x18a75: 0x6c597220, 0x18a76: 0x6c388020, 0x18a77: 0x6c43c220, - 0x18a78: 0x6c7a8020, 0x18a79: 0x6c6bb420, 0x18a7a: 0x6ccbc220, - 0x18a7c: 0x6cd7c220, 0x18a7d: 0x6ce71620, 0x18a7e: 0x6d24c820, 0x18a7f: 0x6d3e0420, - // Block 0x62a, offset 0x18a80 - 0x18a80: 0x6c092c20, 0x18a81: 0x6c7ad820, 0x18a82: 0x6c859e20, 0x18a83: 0x6c598220, - 0x18a84: 0x6d09e620, 0x18a85: 0x6caad820, 0x18a87: 0x6d303820, - 0x18a88: 0x6cf20220, 0x18a89: 0x6cfb4420, 0x18a8a: 0x6cb85a20, 0x18a8b: 0x6d127a20, - 0x18a8c: 0x6c996c20, 0x18a8f: 0x6cd5d420, - 0x18a91: 0x6cbb7a20, 0x18a92: 0x6d3cd220, 0x18a93: 0x6c7d6020, - 0x18a94: 0x6cf4ea20, 0x18a95: 0x6d1bb820, 0x18a96: 0x6c207220, 0x18a97: 0x6ce33e20, - 0x18a98: 0x6c880e20, 0x18a99: 0x6c087820, 0x18a9a: 0x6c464e20, 0x18a9b: 0x6c986820, - 0x18a9c: 0x6d01d020, 0x18a9d: 0x6c3cec20, 0x18a9e: 0x6c909e20, 0x18a9f: 0x6d2a1820, - 0x18aa0: 0x6d335e20, 0x18aa1: 0x6c1ea220, 0x18aa2: 0x6c980020, 0x18aa3: 0x6c8faa20, - 0x18aa5: 0x6d1b8620, 0x18aa6: 0x6cb1f020, 0x18aa7: 0x6d337020, - 0x18aa8: 0x6c653020, 0x18aa9: 0x6c945420, 0x18aaa: 0x6ca7e420, 0x18aab: 0x6d179a20, - 0x18aad: 0x6c623420, 0x18aae: 0x6c60a420, 0x18aaf: 0x6d2d1a20, - 0x18ab0: 0x6d221a20, 0x18ab1: 0x6c6fa620, 0x18ab2: 0x6c585620, 0x18ab3: 0x6d34e220, - 0x18ab4: 0x6c7e3c20, 0x18ab5: 0x6c8ca820, 0x18ab6: 0x6d34f020, 0x18ab7: 0x6c079420, - 0x18ab8: 0x6d2cae20, 0x18ab9: 0x6c705820, 0x18aba: 0x6c286620, 0x18abb: 0x6c8a9020, - 0x18abc: 0x6d16e820, 0x18abd: 0x6d2fa020, 0x18abe: 0x6cfc8e20, 0x18abf: 0x6c1bf820, - // Block 0x62b, offset 0x18ac0 - 0x18ac0: 0x6c22ba20, 0x18ac1: 0x6c1b8420, 0x18ac2: 0x6d0d5420, 0x18ac3: 0x6c80aa20, - 0x18ac4: 0x6c310220, 0x18ac5: 0x6c905e20, 0x18ac6: 0x6c14ec20, - 0x18ac8: 0x6ce9a020, 0x18ac9: 0x6c13da20, 0x18aca: 0x6c006620, 0x18acb: 0x6c1b9c20, - 0x18acd: 0x6d1cec20, 0x18ace: 0x6d305a20, 0x18acf: 0x6ce7ee20, - 0x18ad1: 0x6ce9a620, 0x18ad2: 0x6c13f420, 0x18ad3: 0x6d11be20, - 0x18ad4: 0x6d3ffe20, 0x18ad6: 0x6cac4020, 0x18ad7: 0x6cbc5620, - 0x18ad8: 0x6c883220, 0x18ad9: 0x6cbd9c20, 0x18ada: 0x6c91d820, 0x18adb: 0x6d0eb820, - 0x18adc: 0x6c778e20, 0x18add: 0x6cda5e20, 0x18ade: 0x6d192820, 0x18adf: 0x6c14b420, - 0x18ae0: 0x6c6ef620, 0x18ae1: 0x6c67b020, 0x18ae3: 0x6c6ea820, - 0x18ae5: 0x6c305c20, 0x18ae7: 0x6c733620, - 0x18ae8: 0x6c4e8420, 0x18ae9: 0x6c2c1020, - 0x18aec: 0x6c52f620, 0x18aee: 0x6c1b0820, 0x18aef: 0x6c2dae20, - 0x18af0: 0x6c093020, 0x18af2: 0x6d0a6e20, 0x18af3: 0x6c913e20, - 0x18af5: 0x6d007e20, 0x18af6: 0x6c094420, - 0x18af8: 0x6c095c20, 0x18afa: 0x6cfb4620, 0x18afb: 0x6cc8c820, - 0x18afc: 0x6c0d1420, 0x18afd: 0x6c379620, 0x18afe: 0x6c736220, - // Block 0x62c, offset 0x18b00 - 0x18b00: 0x6d324820, 0x18b01: 0x6c072e20, 0x18b02: 0x6c365620, 0x18b03: 0x6d227a20, - 0x18b04: 0x6cc1b220, 0x18b05: 0x6d299420, 0x18b06: 0x6c9ca820, 0x18b07: 0x6d16b220, - 0x18b08: 0x6cd8e620, - 0x18b0c: 0x6ccd6e20, 0x18b0d: 0x6cdf1620, 0x18b0e: 0x6ca28220, 0x18b0f: 0x6c6e8220, - 0x18b10: 0x6c0b9620, 0x18b11: 0x6cc68e20, 0x18b12: 0x6c136e20, 0x18b13: 0x6c120220, - 0x18b14: 0x6c2f4820, - 0x18b19: 0x6c2b5620, 0x18b1a: 0x6ce7ac20, 0x18b1b: 0x6cde3220, - 0x18b1c: 0x6d03ce20, 0x18b1d: 0x6cd90a20, 0x18b1e: 0x6c343e20, 0x18b1f: 0x6cf85e20, - 0x18b20: 0x6ce1b220, 0x18b22: 0x6ce31620, 0x18b23: 0x6ccd7820, - 0x18b24: 0x6c667620, 0x18b25: 0x6d35da20, 0x18b26: 0x6cee7220, 0x18b27: 0x6d1b4620, - 0x18b2a: 0x6c58d620, 0x18b2b: 0x6d37f220, - 0x18b2c: 0x6cb78c20, 0x18b2d: 0x6d3f8820, 0x18b2f: 0x6d01c220, - 0x18b30: 0x6d01d220, 0x18b31: 0x6d2ade20, 0x18b32: 0x6cef1e20, - 0x18b35: 0x6cde9820, 0x18b36: 0x6d2d9820, 0x18b37: 0x6ca95820, - 0x18b3b: 0x6d166620, - 0x18b3c: 0x6cc58420, 0x18b3d: 0x6cd59620, 0x18b3e: 0x6c142a20, 0x18b3f: 0x6d3d1e20, - // Block 0x62d, offset 0x18b40 - 0x18b41: 0x6c9e0620, 0x18b42: 0x6c5fdc20, 0x18b43: 0x6c39a420, - 0x18b44: 0x6cadfe20, 0x18b45: 0x6c008e20, 0x18b46: 0x6c392020, 0x18b47: 0x6c029a20, - 0x18b48: 0x6cbe0220, 0x18b49: 0x6cb82220, 0x18b4a: 0x6cffd020, 0x18b4b: 0x6c3b1020, - 0x18b4c: 0x6c417420, 0x18b4d: 0x6cbb6620, 0x18b4e: 0x6c437a20, 0x18b4f: 0x6ce71c20, - 0x18b50: 0x6c14ba20, 0x18b51: 0x6d201620, 0x18b52: 0x6c42b420, 0x18b53: 0x6c07a820, - 0x18b54: 0x6c3fb420, 0x18b55: 0x6c1f0c20, 0x18b56: 0x6d3aac20, - 0x18b58: 0x6d390020, 0x18b5a: 0x6c4f6220, 0x18b5b: 0x6ca8e420, - 0x18b5c: 0x6c73f820, 0x18b5d: 0x6c1cb020, 0x18b5e: 0x6c143820, 0x18b5f: 0x6c799c20, - 0x18b60: 0x6c8ae820, 0x18b61: 0x6c85a020, 0x18b62: 0x6d22e020, - 0x18b64: 0x6d20d620, 0x18b65: 0x6c4d5820, 0x18b66: 0x6c85a220, 0x18b67: 0x6c53ee20, - 0x18b68: 0x6c45d820, 0x18b69: 0x6c789820, 0x18b6a: 0x6d260c20, 0x18b6b: 0x6c2a6220, - 0x18b6c: 0x6c5b9a20, 0x18b6e: 0x6c4a2220, 0x18b6f: 0x6c6f0620, - 0x18b70: 0x6d429a20, 0x18b71: 0x6c3fce20, 0x18b72: 0x6cbcb220, 0x18b73: 0x6c06c820, - 0x18b74: 0x6c180a20, 0x18b75: 0x6c223e20, 0x18b76: 0x6c985020, 0x18b77: 0x6c4d9820, - 0x18b78: 0x6cf86a20, 0x18b79: 0x6cc02e20, 0x18b7a: 0x6c5a4620, - 0x18b7d: 0x6c1d9620, 0x18b7e: 0x6cca4c20, 0x18b7f: 0x6d0bf420, - // Block 0x62e, offset 0x18b80 - 0x18b80: 0x6d345620, 0x18b81: 0x6c2a6c20, 0x18b82: 0x6ce27420, 0x18b83: 0x6c9aec20, - 0x18b84: 0x6c8ce220, 0x18b85: 0x6cd45e20, 0x18b86: 0x6ce9fa20, 0x18b87: 0x6c119220, - 0x18b88: 0x6c2ea020, 0x18b89: 0x6c181420, 0x18b8a: 0x6cae9c20, 0x18b8b: 0x6d13f020, - 0x18b8c: 0x6c711220, 0x18b8d: 0x6c61e820, 0x18b8e: 0x6c7f0620, 0x18b8f: 0x6ce4ea20, - 0x18b90: 0x6d261a20, 0x18b92: 0x6c112820, 0x18b93: 0x6cb4e420, - 0x18b94: 0x6d230e20, 0x18b95: 0x6c880220, 0x18b96: 0x6c231420, - 0x18b9a: 0x6d212020, 0x18b9b: 0x6c603220, - 0x18b9c: 0x6cf09420, 0x18b9d: 0x6c9cf020, 0x18b9e: 0x6cdc3e20, 0x18b9f: 0x6d00aa20, - 0x18ba0: 0x6d059620, 0x18ba1: 0x6c1c1c20, 0x18ba2: 0x6cc06020, 0x18ba3: 0x6c5bde20, - 0x18ba5: 0x6d212220, 0x18ba6: 0x6cbcc620, 0x18ba7: 0x6cd74e20, - 0x18ba8: 0x6cd72620, 0x18ba9: 0x6c349020, 0x18baa: 0x6c908820, - 0x18bac: 0x6cad0620, 0x18bad: 0x6cdf7820, 0x18bae: 0x6d393020, 0x18baf: 0x6d1af420, - 0x18bb0: 0x6ccab420, 0x18bb1: 0x6c3a5a20, 0x18bb2: 0x6c187620, 0x18bb3: 0x6d258020, - 0x18bb4: 0x6d151620, 0x18bb5: 0x6c5d2a20, 0x18bb6: 0x6ccb3420, 0x18bb7: 0x6d131020, - 0x18bb8: 0x6c9fbc20, 0x18bb9: 0x6c3bbe20, 0x18bba: 0x6c513620, - 0x18bbc: 0x6d1b6420, 0x18bbd: 0x6c130220, 0x18bbe: 0x6ca6b620, 0x18bbf: 0x6c02e820, - // Block 0x62f, offset 0x18bc0 - 0x18bc0: 0x6c3cb420, 0x18bc1: 0x6c883420, 0x18bc2: 0x6c16be20, 0x18bc3: 0x6c15c820, - 0x18bc4: 0x6c967020, 0x18bc5: 0x6c2e5a20, 0x18bc6: 0x6c54e620, 0x18bc7: 0x6c928020, - 0x18bc9: 0x6d184c20, 0x18bca: 0x6c574e20, 0x18bcb: 0x6d2bf220, - 0x18bcc: 0x6c550020, 0x18bcd: 0x6c368420, 0x18bce: 0x6c5dee20, 0x18bcf: 0x6cdcf820, - 0x18bd0: 0x6ca6bc20, 0x18bd1: 0x6cfcf620, 0x18bd2: 0x6c842620, 0x18bd3: 0x6cfcf820, - 0x18bd4: 0x6d0eba20, 0x18bd5: 0x6c8fa420, 0x18bd6: 0x6c9af620, 0x18bd7: 0x6c6c5c20, - 0x18bd8: 0x6c5f5020, 0x18bda: 0x6c0b5a20, 0x18bdb: 0x6d22a420, - 0x18bdc: 0x6c5e0620, 0x18bdd: 0x6c9ea420, 0x18bde: 0x6c1df220, 0x18bdf: 0x6c970620, - 0x18be1: 0x6c822c20, 0x18be2: 0x6c6b5620, 0x18be3: 0x6cf10a20, - 0x18be4: 0x6d192a20, 0x18be5: 0x6d07e020, 0x18be6: 0x6cf91420, 0x18be7: 0x6c11e220, - 0x18be8: 0x6c7fe420, 0x18be9: 0x6d1b2220, 0x18bea: 0x6d027220, 0x18beb: 0x6d28a620, - 0x18bec: 0x6c95d220, 0x18bed: 0x6c8dd220, 0x18bee: 0x6cb97020, 0x18bef: 0x6c5d9a20, - 0x18bf0: 0x6c646a20, 0x18bf1: 0x6cf2a820, - 0x18bf4: 0x6c43d420, 0x18bf5: 0x6d399020, 0x18bf6: 0x6c2e8220, 0x18bf7: 0x6d1e2c20, - 0x18bf8: 0x6c614220, 0x18bf9: 0x6d0fc020, 0x18bfa: 0x6cc82220, 0x18bfb: 0x6cf79a20, - 0x18bfc: 0x6cd6f020, 0x18bfd: 0x6d240820, 0x18bfe: 0x6d146020, 0x18bff: 0x6cb9f220, - // Block 0x630, offset 0x18c00 - 0x18c00: 0x6c5fde20, 0x18c01: 0x6cc26420, 0x18c02: 0x6ce48a20, 0x18c03: 0x6cd42820, - 0x18c04: 0x6cb9ee20, 0x18c05: 0x6ca26020, 0x18c06: 0x6c6c2620, 0x18c07: 0x6c992420, - 0x18c08: 0x6d1ac820, 0x18c09: 0x6c412a20, 0x18c0a: 0x6cb2ee20, 0x18c0b: 0x6d084020, - 0x18c0c: 0x6c994220, 0x18c0d: 0x6c39c020, 0x18c0e: 0x6d0b1020, 0x18c0f: 0x6c425420, - 0x18c10: 0x6cd95020, 0x18c11: 0x6c5a8a20, 0x18c12: 0x6d22d620, 0x18c13: 0x6c484820, - 0x18c14: 0x6c48e820, 0x18c15: 0x6c8ef820, 0x18c16: 0x6c35de20, 0x18c17: 0x6d3eec20, - 0x18c18: 0x6d3f3220, 0x18c19: 0x6c093820, 0x18c1a: 0x6cec1620, - 0x18c1c: 0x6c8acc20, 0x18c1f: 0x6c7af620, - 0x18c21: 0x6c4d5a20, 0x18c22: 0x6d19b020, 0x18c23: 0x6d398820, - 0x18c24: 0x6c1d4820, 0x18c25: 0x6cfbea20, 0x18c26: 0x6d087420, - 0x18c28: 0x6cc01420, 0x18c29: 0x6cae0c20, 0x18c2a: 0x6c4ad620, 0x18c2b: 0x6c373e20, - 0x18c2c: 0x6c45dc20, 0x18c2d: 0x6cbf0820, 0x18c2e: 0x6c54ac20, 0x18c2f: 0x6c81a620, - 0x18c30: 0x6c85a420, 0x18c31: 0x6c192220, 0x18c32: 0x6cca1620, 0x18c33: 0x6d3df420, - 0x18c34: 0x6cf2ae20, 0x18c35: 0x6cb3d420, 0x18c36: 0x6c793020, 0x18c37: 0x6cea8820, - 0x18c38: 0x6cae5c20, 0x18c39: 0x6ce27620, 0x18c3a: 0x6cde4a20, 0x18c3b: 0x6d3d4c20, - 0x18c3c: 0x6c0c8e20, 0x18c3d: 0x6c480e20, 0x18c3e: 0x6c54be20, - // Block 0x631, offset 0x18c40 - 0x18c40: 0x6c0de020, 0x18c41: 0x6d35de20, 0x18c42: 0x6c302e20, 0x18c43: 0x6c332220, - 0x18c44: 0x6d387220, 0x18c45: 0x6ca58a20, 0x18c46: 0x6c8c1c20, 0x18c47: 0x6cb32a20, - 0x18c48: 0x6c613420, 0x18c49: 0x6c9f5420, 0x18c4a: 0x6cefc220, 0x18c4b: 0x6c17ea20, - 0x18c4c: 0x6c46b620, 0x18c4d: 0x6c053220, 0x18c4e: 0x6cc7aa20, 0x18c4f: 0x6cdfa820, - 0x18c50: 0x6c103a20, 0x18c51: 0x6d3f8c20, 0x18c52: 0x6c7c3c20, 0x18c53: 0x6c815820, - 0x18c54: 0x6c4ec220, 0x18c55: 0x6d1c7020, 0x18c56: 0x6d362620, 0x18c57: 0x6c6ac620, - 0x18c58: 0x6d040220, 0x18c59: 0x6d00b820, 0x18c5a: 0x6d0a1620, 0x18c5b: 0x6ccd4620, - 0x18c5c: 0x6cb9a620, 0x18c5d: 0x6d004620, 0x18c5e: 0x6cdacc20, 0x18c5f: 0x6c4d1820, - 0x18c60: 0x6c9d5820, 0x18c61: 0x6c5cee20, 0x18c62: 0x6caf7220, - 0x18c64: 0x6c5be020, 0x18c65: 0x6ca34c20, 0x18c66: 0x6cd96220, 0x18c67: 0x6c07bc20, - 0x18c68: 0x6c1d7220, 0x18c69: 0x6c6ae220, 0x18c6a: 0x6c5a6e20, 0x18c6b: 0x6c802c20, - 0x18c6d: 0x6c56b420, 0x18c6e: 0x6c30b620, 0x18c6f: 0x6c5de420, - 0x18c70: 0x6c4bd420, 0x18c71: 0x6d111c20, 0x18c72: 0x6c130420, 0x18c73: 0x6c4b1220, - 0x18c74: 0x6c66a620, 0x18c75: 0x6c65c020, 0x18c76: 0x6c29e620, 0x18c77: 0x6c6d2420, - 0x18c78: 0x6c96cc20, 0x18c79: 0x6c5bf820, 0x18c7a: 0x6c9e3420, 0x18c7b: 0x6c11a820, - 0x18c7c: 0x6c94ba20, 0x18c7d: 0x6cb0aa20, 0x18c7e: 0x6d105a20, 0x18c7f: 0x6c726420, - // Block 0x632, offset 0x18c80 - 0x18c80: 0x6c726620, 0x18c81: 0x6cc3dc20, 0x18c83: 0x6cb91220, - 0x18c84: 0x6ccc8e20, 0x18c86: 0x6c701820, 0x18c87: 0x6c5df020, - 0x18c88: 0x6d27fa20, 0x18c89: 0x6c26b820, 0x18c8a: 0x6d07ba20, 0x18c8b: 0x6cff0420, - 0x18c8c: 0x6c3ac620, 0x18c8d: 0x6c131020, 0x18c8e: 0x6d132420, - 0x18c90: 0x6c2a9820, 0x18c92: 0x6cbda020, 0x18c93: 0x6c5b6a20, - 0x18c94: 0x6cea6c20, 0x18c96: 0x6cbb2420, 0x18c97: 0x6cf7a020, - 0x18c98: 0x6ca64a20, 0x18c99: 0x6cc9ce20, 0x18c9a: 0x6c9b5620, 0x18c9b: 0x6ce95e20, - 0x18c9c: 0x6c804220, 0x18c9d: 0x6c4ff220, 0x18c9e: 0x6c22e620, 0x18c9f: 0x6d2d4e20, - 0x18ca0: 0x6c023220, 0x18ca1: 0x6c95c420, 0x18ca2: 0x6c9efa20, - 0x18ca4: 0x6c3daa20, 0x18ca6: 0x6d010c20, 0x18ca7: 0x6c0f8c20, - 0x18ca8: 0x6c5c6820, 0x18ca9: 0x6cbeb820, 0x18caa: 0x6d010e20, - 0x18cad: 0x6c0fa220, 0x18cae: 0x6cb9dc20, 0x18caf: 0x6cb34020, - 0x18cb0: 0x6c696820, 0x18cb1: 0x6c750a20, 0x18cb2: 0x6c7dc620, 0x18cb3: 0x6cd97a20, - 0x18cb4: 0x6c718e20, 0x18cb5: 0x6c36f020, 0x18cb6: 0x6ca8c020, 0x18cb7: 0x6cb95a20, - 0x18cb8: 0x6c2f1a20, 0x18cb9: 0x6c2f1c20, 0x18cbb: 0x6cb4da20, - 0x18cbc: 0x6d33c220, 0x18cbd: 0x6cb5c620, 0x18cbe: 0x6d3c8620, 0x18cbf: 0x6c7a1c20, - // Block 0x633, offset 0x18cc0 - 0x18cc0: 0x6d20b420, 0x18cc1: 0x6cbd5820, 0x18cc2: 0x6c7a2620, 0x18cc3: 0x6c50d420, - 0x18cc4: 0x6c3e0a20, 0x18cc6: 0x6c2be220, 0x18cc7: 0x6cfca620, - 0x18cc8: 0x6c4b3c20, 0x18cc9: 0x6c50ee20, 0x18cca: 0x6cc44620, 0x18ccb: 0x6c4eaa20, - 0x18ccc: 0x6ce7b420, 0x18ccd: 0x6c0ee620, 0x18cce: 0x6ccd3e20, 0x18ccf: 0x6c08de20, - 0x18cd0: 0x6c924e20, 0x18cd1: 0x6d12f020, 0x18cd2: 0x6ca5e220, 0x18cd3: 0x6c1fba20, - 0x18cd4: 0x6cca5020, 0x18cd5: 0x6c2e2820, 0x18cd6: 0x6c925020, 0x18cd7: 0x6ce81220, - 0x18cd8: 0x6c88bc20, 0x18cd9: 0x6c786620, 0x18cda: 0x6cca5220, 0x18cdb: 0x6d31e420, - 0x18cdc: 0x6c1fc020, 0x18cdd: 0x6c890220, 0x18cde: 0x6c998c20, - 0x18ce0: 0x6cb90620, 0x18ce1: 0x6c769220, 0x18ce2: 0x6cceb620, 0x18ce3: 0x6cfeea20, - 0x18ce4: 0x6c0a2020, 0x18ce5: 0x6d2bf420, 0x18ce6: 0x6d1b7220, 0x18ce7: 0x6cf6bc20, - 0x18ce8: 0x6ccdaa20, 0x18ce9: 0x6cdb1220, 0x18cea: 0x6cc98e20, 0x18ceb: 0x6cc8e820, - 0x18cec: 0x6c219c20, 0x18ced: 0x6c917c20, 0x18cee: 0x6c8d9820, 0x18cef: 0x6c13c620, - 0x18cf1: 0x6c593020, - 0x18cf4: 0x6c63a220, 0x18cf5: 0x6c04ee20, 0x18cf6: 0x6c553220, 0x18cf7: 0x6c30ec20, - 0x18cf9: 0x6c90f020, 0x18cfa: 0x6c70d220, 0x18cfb: 0x6c73a620, - 0x18cfc: 0x6c785c20, 0x18cfd: 0x6cdd5220, 0x18cfe: 0x6c95f020, 0x18cff: 0x6d303c20, - // Block 0x634, offset 0x18d00 - 0x18d00: 0x6c2f7220, 0x18d01: 0x6c32d220, 0x18d02: 0x6d3b1c20, 0x18d03: 0x6d0d3a20, - 0x18d04: 0x6cacf420, 0x18d05: 0x6c13d820, - 0x18d0a: 0x6d15e620, - 0x18d0d: 0x6d1f3420, 0x18d0e: 0x6c5ae620, 0x18d0f: 0x6d11c820, - 0x18d10: 0x6d118020, 0x18d11: 0x6d34d620, 0x18d12: 0x6c45d220, 0x18d13: 0x6cb6d420, - 0x18d14: 0x6c44ac20, 0x18d17: 0x6c545c20, - 0x18d18: 0x6c9d2420, 0x18d19: 0x6c3df020, 0x18d1a: 0x6c54a020, 0x18d1b: 0x6c4a1a20, - 0x18d1c: 0x6ce05620, 0x18d1d: 0x6c2b1a20, 0x18d1f: 0x6d0c7220, - 0x18d22: 0x6cc26620, - 0x18d24: 0x6c16e420, 0x18d25: 0x6ca02e20, 0x18d26: 0x6ce1bc20, 0x18d27: 0x6c063c20, - 0x18d28: 0x6c011e20, 0x18d2b: 0x6cfbf620, - 0x18d2f: 0x6c996e20, - 0x18d30: 0x6c811c20, 0x18d31: 0x6ca42220, 0x18d32: 0x6c070c20, 0x18d33: 0x6c18be20, - 0x18d35: 0x6c3a0420, 0x18d36: 0x6d38e620, 0x18d37: 0x6c5ece20, - 0x18d38: 0x6c6a1420, 0x18d39: 0x6cd5d620, 0x18d3b: 0x6c7dd220, - 0x18d3c: 0x6c2ea620, 0x18d3d: 0x6c925220, - // Block 0x635, offset 0x18d40 - 0x18d42: 0x6d215020, 0x18d43: 0x6cdf2620, - 0x18d44: 0x6c162e20, 0x18d45: 0x6c97de20, 0x18d46: 0x6c9fb820, 0x18d47: 0x6c593220, - 0x18d48: 0x6cf15420, 0x18d49: 0x6caa9220, 0x18d4a: 0x6c593420, 0x18d4b: 0x6c540a20, - 0x18d4c: 0x6c6e8e20, 0x18d4d: 0x6c0f2620, 0x18d4e: 0x6cfc2020, 0x18d4f: 0x6c864820, - 0x18d50: 0x6c6d2620, 0x18d52: 0x6c989c20, 0x18d53: 0x6cb1ba20, - 0x18d54: 0x6c4fde20, 0x18d55: 0x6d0fd620, 0x18d57: 0x6cfd0a20, - 0x18d58: 0x6cdb1420, 0x18d59: 0x6cf01620, 0x18d5a: 0x6c183c20, 0x18d5b: 0x6cf6be20, - 0x18d5c: 0x6c6d4c20, 0x18d5d: 0x6c135a20, 0x18d5e: 0x6c51e420, 0x18d5f: 0x6c3b4020, - 0x18d60: 0x6ccca620, 0x18d61: 0x6c8d6a20, 0x18d63: 0x6c337220, - 0x18d64: 0x6cb54220, 0x18d65: 0x6cb4b820, 0x18d66: 0x6d26fa20, 0x18d67: 0x6c0f8e20, - 0x18d69: 0x6c5c7820, 0x18d6a: 0x6c2f0220, 0x18d6b: 0x6d0ef620, - 0x18d6c: 0x6c72d020, 0x18d6d: 0x6c69e020, 0x18d6e: 0x6ca44c20, 0x18d6f: 0x6c8b8620, - 0x18d70: 0x6d20aa20, 0x18d71: 0x6ce41c20, 0x18d72: 0x6ce47620, 0x18d73: 0x6cf42a20, - 0x18d74: 0x6c53a220, 0x18d75: 0x6cff7220, 0x18d76: 0x6c503620, - 0x18d78: 0x6ce55c20, 0x18d79: 0x6d32ca20, 0x18d7b: 0x6c59a020, - 0x18d7c: 0x6c403420, 0x18d7f: 0x6cea2c20, - // Block 0x636, offset 0x18d80 - 0x18d81: 0x6cc61a20, 0x18d82: 0x6c68ba20, - 0x18d84: 0x6d031c20, 0x18d87: 0x6d260020, - 0x18d88: 0x6c73ee20, 0x18d89: 0x6c572820, 0x18d8b: 0x6c056020, - 0x18d8c: 0x6ca1c420, 0x18d8e: 0x6c425e20, 0x18d8f: 0x6cef9220, - 0x18d91: 0x6c9a8020, 0x18d92: 0x6cd89c20, 0x18d93: 0x6c0b8820, - 0x18d94: 0x6c914220, 0x18d95: 0x6cc0e620, - 0x18d98: 0x6c43da20, 0x18d99: 0x6d303e20, 0x18d9a: 0x6c938c20, 0x18d9b: 0x6cac2020, - 0x18d9c: 0x6cc66220, 0x18d9d: 0x6cc03020, 0x18d9e: 0x6c8aea20, 0x18d9f: 0x6c45e020, - 0x18da0: 0x6cfbf820, 0x18da1: 0x6cf86e20, 0x18da2: 0x6d02c620, - 0x18da4: 0x6ca79620, - 0x18da8: 0x6d00a220, 0x18da9: 0x6c8afe20, 0x18daa: 0x6c3d6420, 0x18dab: 0x6c25d620, - 0x18dac: 0x6d3d4e20, 0x18dad: 0x6c034820, 0x18dae: 0x6d429c20, 0x18daf: 0x6d305020, - 0x18db0: 0x6d416e20, 0x18db1: 0x6c510620, 0x18db2: 0x6c601a20, - 0x18db4: 0x6c648620, - 0x18db8: 0x6ce8b020, 0x18db9: 0x6cfb5c20, 0x18dba: 0x6d0d8620, 0x18dbb: 0x6ce0f420, - 0x18dbc: 0x6cde5620, 0x18dbd: 0x6c2bf620, 0x18dbe: 0x6c744c20, 0x18dbf: 0x6c01fc20, - // Block 0x637, offset 0x18dc0 - 0x18dc0: 0x6c4e1020, 0x18dc1: 0x6cff8820, 0x18dc2: 0x6c712020, 0x18dc3: 0x6cee8c20, - 0x18dc4: 0x6c054c20, 0x18dc5: 0x6d3c5e20, 0x18dc6: 0x6ca82e20, 0x18dc7: 0x6ce53820, - 0x18dc8: 0x6ca3c020, 0x18dcb: 0x6d1fd420, - 0x18dcc: 0x6c9dc620, 0x18dcf: 0x6ca3c820, - 0x18dd0: 0x6cd13c20, 0x18dd1: 0x6c13a220, 0x18dd2: 0x6d0c1020, 0x18dd3: 0x6c44b620, - 0x18dd4: 0x6c1d5420, 0x18dd5: 0x6cc86420, 0x18dd6: 0x6c63ca20, 0x18dd7: 0x6cbd8220, - 0x18dd8: 0x6c98e620, 0x18dd9: 0x6c365c20, 0x18dda: 0x6c863220, 0x18ddb: 0x6c1b3420, - 0x18ddc: 0x6d29da20, 0x18ddd: 0x6c513820, 0x18dde: 0x6c6ae420, 0x18ddf: 0x6ca72c20, - 0x18de1: 0x6c499020, 0x18de2: 0x6c540c20, 0x18de3: 0x6c414220, - 0x18de5: 0x6c07be20, 0x18de6: 0x6cdd8020, 0x18de7: 0x6cf37220, - 0x18de8: 0x6c623820, 0x18de9: 0x6cf66a20, 0x18dea: 0x6cbf4a20, 0x18deb: 0x6c515820, - 0x18dec: 0x6cf23020, 0x18ded: 0x6cfb7220, 0x18dee: 0x6c6b0820, 0x18def: 0x6c5cf820, - 0x18df0: 0x6cb00420, 0x18df1: 0x6cd00620, 0x18df2: 0x6c1d7620, 0x18df3: 0x6d324e20, - 0x18df5: 0x6d2d8a20, 0x18df6: 0x6cd78a20, 0x18df7: 0x6c5f0420, - 0x18df8: 0x6cd99420, 0x18df9: 0x6d354220, 0x18dfa: 0x6c07a220, - 0x18dfe: 0x6c810e20, 0x18dff: 0x6c0a2220, - // Block 0x638, offset 0x18e00 - 0x18e00: 0x6d08ae20, 0x18e01: 0x6cade820, 0x18e02: 0x6c278a20, - 0x18e04: 0x6d340e20, 0x18e05: 0x6cb00e20, 0x18e06: 0x6c15d420, 0x18e07: 0x6c0a2420, - 0x18e08: 0x6cdafa20, 0x18e09: 0x6c5df220, 0x18e0a: 0x6c523420, 0x18e0b: 0x6c6f2a20, - 0x18e0c: 0x6c200620, 0x18e0d: 0x6c67b420, 0x18e0e: 0x6ca5a020, 0x18e0f: 0x6c47be20, - 0x18e10: 0x6c39de20, 0x18e13: 0x6cde9a20, - 0x18e14: 0x6c256020, 0x18e15: 0x6cf6c220, 0x18e16: 0x6c2a8420, 0x18e17: 0x6cfb9020, - 0x18e18: 0x6c7b7220, 0x18e19: 0x6d308a20, 0x18e1a: 0x6cddfc20, 0x18e1b: 0x6c55ae20, - 0x18e1c: 0x6c256220, 0x18e1d: 0x6c92c820, 0x18e1e: 0x6c738c20, 0x18e1f: 0x6c92ca20, - 0x18e20: 0x6cba7220, 0x18e21: 0x6cad9620, 0x18e22: 0x6d326c20, - 0x18e24: 0x6c867a20, 0x18e25: 0x6c128e20, 0x18e26: 0x6cb64a20, - 0x18e29: 0x6ce41e20, 0x18e2a: 0x6c8d6c20, 0x18e2b: 0x6cc1d420, - 0x18e2c: 0x6c88cc20, 0x18e2d: 0x6c91e020, 0x18e2e: 0x6cd54020, 0x18e2f: 0x6c462620, - 0x18e30: 0x6d309a20, 0x18e31: 0x6cad3c20, 0x18e32: 0x6c6d5a20, 0x18e33: 0x6cbe9020, - 0x18e36: 0x6d3fc420, 0x18e37: 0x6cb46620, - 0x18e38: 0x6c6cbc20, 0x18e39: 0x6c0c8620, 0x18e3a: 0x6c66ee20, 0x18e3b: 0x6c4bf220, - 0x18e3e: 0x6d2a3020, 0x18e3f: 0x6c8b5a20, - // Block 0x639, offset 0x18e40 - 0x18e40: 0x6c848a20, 0x18e41: 0x6c95c620, 0x18e42: 0x6cd08620, 0x18e43: 0x6c9de220, - 0x18e44: 0x6c66fc20, 0x18e45: 0x6c2bb020, 0x18e46: 0x6c076a20, - 0x18e48: 0x6c88d420, 0x18e4a: 0x6cfbc620, 0x18e4b: 0x6cb22220, - 0x18e4c: 0x6cc41620, 0x18e4d: 0x6c8fda20, 0x18e4e: 0x6d41e020, - 0x18e50: 0x6c74fe20, 0x18e51: 0x6ccd2020, 0x18e52: 0x6d092620, - 0x18e54: 0x6d027820, 0x18e56: 0x6c804e20, 0x18e57: 0x6cb6aa20, - 0x18e58: 0x6d159820, 0x18e59: 0x6caad420, 0x18e5a: 0x6c84ca20, 0x18e5b: 0x6d271e20, - 0x18e5d: 0x6d15be20, 0x18e5e: 0x6c1a9220, 0x18e5f: 0x6c619620, - 0x18e60: 0x6c4f4a20, 0x18e61: 0x6d015e20, 0x18e62: 0x6c792a20, 0x18e63: 0x6d3e1020, - 0x18e64: 0x6c509220, 0x18e65: 0x6cf86220, 0x18e66: 0x6cc26820, 0x18e67: 0x6c4d1020, - 0x18e68: 0x6cf95220, 0x18e69: 0x6c4d1220, 0x18e6a: 0x6c4a4820, 0x18e6b: 0x6c14c220, - 0x18e6c: 0x6d09fa20, 0x18e6d: 0x6d058220, 0x18e6e: 0x6cd09c20, 0x18e6f: 0x6c79e820, - 0x18e70: 0x6cf96020, 0x18e71: 0x6ccc4a20, 0x18e72: 0x6d208a20, 0x18e73: 0x6d0bae20, - 0x18e74: 0x6cb3f220, 0x18e75: 0x6d40bc20, 0x18e76: 0x6d1fc820, 0x18e77: 0x6d3f3e20, - 0x18e78: 0x6c88be20, 0x18e79: 0x6cfaaa20, 0x18e7a: 0x6cfa3e20, 0x18e7b: 0x6d15f620, - 0x18e7c: 0x6ccc5820, 0x18e7d: 0x6d0e8420, 0x18e7e: 0x6c69a220, 0x18e7f: 0x6cf66e20, - // Block 0x63a, offset 0x18e80 - 0x18e80: 0x6c1bb620, 0x18e81: 0x6cd3b220, 0x18e82: 0x6c774620, 0x18e83: 0x6d1afc20, - 0x18e84: 0x6c522420, 0x18e85: 0x6d189620, 0x18e86: 0x6cf6e820, 0x18e87: 0x6ccb6a20, - 0x18e88: 0x6c6d5c20, 0x18e89: 0x6d135e20, 0x18e8a: 0x6d1ec420, 0x18e8b: 0x6cc41820, - 0x18e8c: 0x6d129a20, 0x18e8d: 0x6c945e20, 0x18e8e: 0x6c7d9c20, 0x18e8f: 0x6d333820, - 0x18e94: 0x6d003a20, 0x18e96: 0x6c253a20, 0x18e97: 0x6d04e420, - 0x18e98: 0x6c01d820, 0x18e99: 0x6d051e20, 0x18e9a: 0x6c118820, 0x18e9b: 0x6c201820, - 0x18e9c: 0x6d2c1e20, 0x18e9e: 0x6d16f420, 0x18e9f: 0x6caf4420, - 0x18ea0: 0x6c7a3020, 0x18ea1: 0x6cd0fa20, 0x18ea2: 0x6c80bc20, 0x18ea3: 0x6ce9e420, - 0x18ea4: 0x6cf61020, 0x18ea5: 0x6c8d0620, 0x18ea6: 0x6cb4f820, 0x18ea7: 0x6cf2f020, - 0x18ea8: 0x6c88fa20, 0x18ea9: 0x6c319e20, 0x18eaa: 0x6c9af420, 0x18eab: 0x6c807220, - 0x18eac: 0x6cefdc20, 0x18ead: 0x6c32ca20, 0x18eae: 0x6c7b2a20, 0x18eaf: 0x6c004c20, - 0x18eb0: 0x6d291a20, 0x18eb1: 0x6c5bfa20, 0x18eb2: 0x6d182620, 0x18eb3: 0x6ca14c20, - 0x18eb4: 0x6d3f5e20, 0x18eb5: 0x6c3be820, 0x18eb6: 0x6caec420, - 0x18eb8: 0x6c0a6c20, 0x18eb9: 0x6c871e20, 0x18eba: 0x6c918220, 0x18ebb: 0x6c964620, - 0x18ebc: 0x6c4d0a20, 0x18ebd: 0x6d31bc20, 0x18ebe: 0x6c40ee20, 0x18ebf: 0x6cc3ac20, - // Block 0x63b, offset 0x18ec0 - 0x18ec0: 0x6d315220, 0x18ec1: 0x6c797a20, 0x18ec2: 0x6c1a0420, 0x18ec3: 0x6c6ffe20, - 0x18ec4: 0x6c746420, 0x18ec5: 0x6c623a20, 0x18ec6: 0x6c8d5620, - 0x18ec8: 0x6cceaa20, 0x18ec9: 0x6cc40020, 0x18eca: 0x6cc8ea20, 0x18ecb: 0x6c21ac20, - 0x18ecc: 0x6ca5b220, 0x18ecd: 0x6d339820, 0x18ece: 0x6c907a20, 0x18ecf: 0x6cad3620, - 0x18ed2: 0x6c063820, 0x18ed3: 0x6cc66420, - 0x18ed4: 0x6cfa9a20, 0x18ed5: 0x6c832c20, 0x18ed6: 0x6cfeb420, 0x18ed7: 0x6c3d6620, - 0x18ed8: 0x6cc18620, 0x18eda: 0x6ccbe820, 0x18edb: 0x6d352c20, - 0x18edc: 0x6cdfe020, 0x18edd: 0x6cc70e20, 0x18ede: 0x6cda4a20, 0x18edf: 0x6d1cf620, - 0x18ee0: 0x6c98e820, 0x18ee1: 0x6ca3ca20, 0x18ee2: 0x6c0baa20, - 0x18ee4: 0x6cd65820, 0x18ee5: 0x6ce11020, 0x18ee6: 0x6c4ee220, 0x18ee7: 0x6ccaf620, - 0x18ee8: 0x6cc69420, 0x18eea: 0x6c2aa820, 0x18eeb: 0x6cb44e20, - 0x18eec: 0x6c687820, 0x18eed: 0x6ce07620, 0x18eef: 0x6cc48e20, - 0x18ef0: 0x6ca92c20, 0x18ef1: 0x6c8b5c20, 0x18ef2: 0x6c2f2020, 0x18ef3: 0x6c2e8620, - 0x18ef4: 0x6d381620, 0x18ef6: 0x6c93f420, 0x18ef7: 0x6c28b020, - 0x18ef8: 0x6cf56020, 0x18ef9: 0x6c4aba20, 0x18efa: 0x6c5fbe20, 0x18efb: 0x6ca67620, - 0x18efc: 0x6d164a20, 0x18efd: 0x6ca75820, 0x18efe: 0x6d221e20, 0x18eff: 0x6cedf220, - // Block 0x63c, offset 0x18f00 - 0x18f00: 0x6c4ce620, 0x18f01: 0x6d2b3c20, 0x18f02: 0x6d0c5820, 0x18f03: 0x6c251a20, - 0x18f04: 0x6cfb2620, 0x18f05: 0x6c68be20, 0x18f06: 0x6ce80620, 0x18f07: 0x6c3fac20, - 0x18f08: 0x6cae0020, 0x18f0a: 0x6d1e9220, 0x18f0b: 0x6cbfa220, - 0x18f0c: 0x6d0ad620, 0x18f0d: 0x6c107220, 0x18f0e: 0x6c0b7c20, 0x18f0f: 0x6cd31c20, - 0x18f10: 0x6d2c2220, 0x18f11: 0x6d16c020, 0x18f12: 0x6c0b7e20, - 0x18f14: 0x6c333820, 0x18f15: 0x6c7f8e20, 0x18f16: 0x6d13d820, 0x18f17: 0x6c149220, - 0x18f18: 0x6c1cb220, 0x18f19: 0x6d087820, 0x18f1a: 0x6d069220, 0x18f1b: 0x6d20d820, - 0x18f1c: 0x6d04c020, - 0x18f20: 0x6cde3620, 0x18f21: 0x6c4c1620, - 0x18f25: 0x6c906420, 0x18f26: 0x6d018220, 0x18f27: 0x6c180c20, - 0x18f28: 0x6c657e20, 0x18f29: 0x6cdf9820, 0x18f2a: 0x6cb08c20, 0x18f2b: 0x6d296820, - 0x18f2c: 0x6d080620, 0x18f2d: 0x6cfb3c20, 0x18f2e: 0x6ca7d220, - 0x18f34: 0x6c9d3820, 0x18f35: 0x6c61f020, 0x18f36: 0x6caa1c20, 0x18f37: 0x6c54c020, - 0x18f38: 0x6c571020, 0x18f39: 0x6cee1020, 0x18f3a: 0x6d1f2a20, 0x18f3b: 0x6d2ac020, - 0x18f3c: 0x6c09a020, 0x18f3d: 0x6c9cee20, 0x18f3e: 0x6cbab020, 0x18f3f: 0x6d019220, - // Block 0x63d, offset 0x18f40 - 0x18f40: 0x6c394420, 0x18f41: 0x6d176020, 0x18f42: 0x6cdfa020, 0x18f43: 0x6c832e20, - 0x18f44: 0x6d1e2e20, 0x18f46: 0x6c6d0220, 0x18f47: 0x6ccf4a20, - 0x18f48: 0x6d1b4820, 0x18f49: 0x6c613820, 0x18f4b: 0x6cdaa620, - 0x18f4f: 0x6cee1c20, - 0x18f50: 0x6c9e5820, 0x18f51: 0x6cdab420, 0x18f52: 0x6d17a620, 0x18f53: 0x6ccc8820, - 0x18f54: 0x6cf61420, 0x18f55: 0x6c603e20, 0x18f56: 0x6c960020, 0x18f57: 0x6d1ea620, - 0x18f58: 0x6c998220, 0x18f59: 0x6d2c7c20, 0x18f5a: 0x6cdc4020, 0x18f5b: 0x6d362a20, - 0x18f5c: 0x6c0b9c20, 0x18f5d: 0x6c83d820, - 0x18f65: 0x6cbc4820, 0x18f66: 0x6c498e20, 0x18f67: 0x6cf64a20, - 0x18f68: 0x6d324a20, 0x18f69: 0x6d1d9020, 0x18f6a: 0x6ca84020, 0x18f6b: 0x6c75ca20, - 0x18f6c: 0x6d01c620, 0x18f6d: 0x6d11b620, 0x18f6e: 0x6d01c820, 0x18f6f: 0x6d33f020, - 0x18f70: 0x6ca5a820, 0x18f72: 0x6cd7f420, 0x18f73: 0x6c903620, - 0x18f74: 0x6c18d220, 0x18f75: 0x6c9d5c20, 0x18f76: 0x6cc3cc20, 0x18f77: 0x6c27e420, - 0x18f78: 0x6ccd4820, - 0x18f7c: 0x6cdae820, 0x18f7d: 0x6d01da20, 0x18f7e: 0x6c0f2820, 0x18f7f: 0x6c2f7a20, - // Block 0x63e, offset 0x18f80 - 0x18f80: 0x6d40ca20, 0x18f82: 0x6cd5f220, 0x18f83: 0x6ccf2220, - 0x18f84: 0x6c4ee420, 0x18f85: 0x6cdfb220, 0x18f86: 0x6c431420, - 0x18f8a: 0x6ca36420, 0x18f8b: 0x6c9d7a20, - 0x18f8c: 0x6d0a3020, 0x18f8d: 0x6c9afa20, 0x18f8e: 0x6c66b420, 0x18f8f: 0x6c24fe20, - 0x18f90: 0x6c749220, 0x18f91: 0x6c51de20, 0x18f92: 0x6c3ac820, 0x18f93: 0x6cd28220, - 0x18f94: 0x6c17f220, 0x18f95: 0x6cd0c220, 0x18f96: 0x6caa8a20, 0x18f97: 0x6cb2c420, - 0x18f98: 0x6c980220, - 0x18f9d: 0x6d189a20, 0x18f9e: 0x6c1dda20, - 0x18fa0: 0x6c7a6220, 0x18fa1: 0x6c05d420, 0x18fa2: 0x6c825a20, 0x18fa3: 0x6c787020, - 0x18fa4: 0x6ccc7820, 0x18fa5: 0x6c0a4e20, 0x18fa6: 0x6cdbfc20, 0x18fa7: 0x6c443420, - 0x18fa8: 0x6cb0c020, 0x18fa9: 0x6d189c20, 0x18faa: 0x6cfb9220, 0x18fab: 0x6ca6c820, - 0x18fac: 0x6d1c9820, 0x18fad: 0x6d3a8020, 0x18fae: 0x6c216220, 0x18faf: 0x6c3cbc20, - 0x18fb0: 0x6d074620, 0x18fb1: 0x6cb19c20, 0x18fb2: 0x6cf48020, 0x18fb3: 0x6c8a2420, - 0x18fb4: 0x6c124c20, 0x18fb5: 0x6d409020, 0x18fb6: 0x6d422a20, 0x18fb7: 0x6c0bc620, - 0x18fb8: 0x6d122a20, 0x18fb9: 0x6c58a420, 0x18fba: 0x6cac3220, 0x18fbb: 0x6d04fa20, - 0x18fbd: 0x6c82ea20, 0x18fbe: 0x6cbee420, 0x18fbf: 0x6d001220, - // Block 0x63f, offset 0x18fc0 - 0x18fc0: 0x6c689620, 0x18fc1: 0x6c4c9420, - 0x18fc4: 0x6d0cf020, 0x18fc5: 0x6d092420, 0x18fc6: 0x6d39e220, 0x18fc7: 0x6c527e20, - 0x18fc8: 0x6d1cb820, 0x18fc9: 0x6cf71620, - 0x18fcc: 0x6c889220, 0x18fcd: 0x6cfc4820, 0x18fce: 0x6c58bc20, 0x18fcf: 0x6d1a1620, - 0x18fd1: 0x6c892a20, 0x18fd2: 0x6ccd6020, 0x18fd3: 0x6c125220, - 0x18fd4: 0x6c077020, 0x18fd5: 0x6c662220, 0x18fd6: 0x6cd63020, 0x18fd7: 0x6c397a20, - 0x18fd8: 0x6c2d9820, 0x18fda: 0x6c03d820, 0x18fdb: 0x6d21fe20, - 0x18fde: 0x6ca47420, 0x18fdf: 0x6c831420, - 0x18fe0: 0x6d198220, 0x18fe1: 0x6c272820, 0x18fe3: 0x6c14ea20, - 0x18fe4: 0x6c178e20, 0x18fe5: 0x6c416a20, 0x18fe6: 0x6c6cdc20, 0x18fe7: 0x6ca59220, - 0x18feb: 0x6c8a6a20, - 0x18fec: 0x6ca0e620, 0x18fed: 0x6d1fb220, 0x18fef: 0x6c8f2820, - 0x18ff0: 0x6c4de620, 0x18ff2: 0x6d1e7420, 0x18ff3: 0x6c6cf020, - 0x18ff4: 0x6c1b8c20, 0x18ff5: 0x6cc5dc20, 0x18ff6: 0x6ca9b620, - 0x18ff9: 0x6c53ba20, 0x18ffa: 0x6ce53620, - 0x18ffc: 0x6c002420, 0x18ffd: 0x6c485620, 0x18ffe: 0x6c0bf820, 0x18fff: 0x6c0eea20, - // Block 0x640, offset 0x19000 - 0x19000: 0x6cbf1420, 0x19002: 0x6cd5d820, 0x19003: 0x6c20ee20, - 0x19004: 0x6c5b5420, 0x19005: 0x6c179a20, 0x19006: 0x6c3ff220, 0x19007: 0x6c5ab620, - 0x19008: 0x6c363a20, 0x19009: 0x6cf09a20, 0x1900a: 0x6c3b7820, 0x1900b: 0x6cdfe220, - 0x1900d: 0x6c94fa20, 0x1900e: 0x6c51cc20, 0x1900f: 0x6d1e4a20, - 0x19010: 0x6c5b5a20, 0x19012: 0x6d215820, 0x19013: 0x6d3ff820, - 0x19014: 0x6d0e8a20, 0x19015: 0x6cc07420, 0x19016: 0x6d2fbc20, 0x19017: 0x6c6f1a20, - 0x19018: 0x6cdf2820, - 0x1901f: 0x6cea0820, - 0x19020: 0x6c8bc220, 0x19021: 0x6c6f2620, 0x19022: 0x6d2c8220, 0x19023: 0x6d038620, - 0x19024: 0x6c56ba20, 0x19026: 0x6d071020, - 0x1902a: 0x6c254c20, 0x1902b: 0x6cbeb020, - 0x1902c: 0x6ca14e20, 0x1902e: 0x6d2a2220, 0x1902f: 0x6c084c20, - 0x19030: 0x6c1ace20, 0x19033: 0x6d0ebc20, - 0x19034: 0x6c443620, 0x19035: 0x6ca16220, 0x19036: 0x6c075c20, 0x19037: 0x6c732820, - 0x19038: 0x6c2ee620, 0x19039: 0x6d2fe020, 0x1903b: 0x6cf3ea20, - 0x1903c: 0x6d0ebe20, 0x1903e: 0x6c74c620, 0x1903f: 0x6cfade20, - // Block 0x641, offset 0x19040 - 0x19040: 0x6cdf4a20, 0x19041: 0x6c4e6620, 0x19043: 0x6c2d2c20, - 0x19044: 0x6c62ac20, 0x19045: 0x6c6b6020, 0x19047: 0x6d414c20, - 0x19049: 0x6d025820, 0x1904a: 0x6c7f7620, 0x1904b: 0x6c38e220, - 0x1904c: 0x6c5e4020, 0x1904d: 0x6cf92820, 0x1904e: 0x6ca8b620, 0x1904f: 0x6c9cb820, - 0x19050: 0x6cc49c20, 0x19051: 0x6c24c220, 0x19052: 0x6d1a3220, 0x19053: 0x6c9d2820, - 0x19055: 0x6c747e20, 0x19056: 0x6cc0ea20, 0x19057: 0x6ce73820, - 0x19058: 0x6ced7a20, 0x19059: 0x6d2ffc20, 0x1905a: 0x6c84fe20, 0x1905b: 0x6cce9c20, - 0x1905c: 0x6c79a620, 0x1905d: 0x6cfa7e20, 0x1905e: 0x6d301e20, 0x1905f: 0x6d33c420, - 0x19060: 0x6ce5be20, 0x19061: 0x6cd4bc20, 0x19062: 0x6c073e20, 0x19063: 0x6d136220, - 0x19064: 0x6cb14c20, 0x19065: 0x6c164420, 0x19066: 0x6c563e20, 0x19067: 0x6c791620, - 0x19068: 0x6c6f4a20, 0x19069: 0x6c011620, 0x1906a: 0x6c213020, 0x1906b: 0x6cb97620, - 0x1906c: 0x6c06ea20, 0x1906d: 0x6c032620, 0x1906e: 0x6c3b6020, 0x1906f: 0x6c77d620, - 0x19070: 0x6ceafc20, 0x19071: 0x6ceafe20, 0x19072: 0x6d423020, 0x19073: 0x6c8cbc20, - 0x19075: 0x6c4aea20, 0x19076: 0x6d0be620, 0x19077: 0x6cd35420, - 0x19078: 0x6c545220, 0x19079: 0x6c8b0020, 0x1907a: 0x6ccbee20, 0x1907b: 0x6cd8b220, - 0x1907d: 0x6c071020, 0x1907e: 0x6cc5e820, 0x1907f: 0x6c319820, - // Block 0x642, offset 0x19080 - 0x19080: 0x6c0eec20, 0x19081: 0x6c895620, 0x19082: 0x6cba0c20, 0x19083: 0x6c3aac20, - 0x19084: 0x6c624220, 0x19085: 0x6d3ffa20, 0x19086: 0x6c5ac820, 0x19087: 0x6c514020, - 0x19088: 0x6c83e420, 0x19089: 0x6d259620, 0x1908a: 0x6d26ce20, 0x1908b: 0x6d04e620, - 0x1908c: 0x6c15d620, 0x1908d: 0x6c2b8c20, 0x1908e: 0x6c825020, 0x1908f: 0x6c6cae20, - 0x19090: 0x6c1d1c20, 0x19091: 0x6cd8ec20, 0x19092: 0x6cb49a20, 0x19093: 0x6d11d420, - 0x19094: 0x6c678620, 0x19095: 0x6c583620, 0x19096: 0x6c595620, 0x19097: 0x6ce1f620, - 0x19098: 0x6cc82c20, 0x19099: 0x6cf26620, 0x1909a: 0x6d1ccc20, 0x1909b: 0x6cc53420, - 0x1909c: 0x6d1a3420, 0x1909d: 0x6cd30e20, 0x1909e: 0x6d1a2620, 0x1909f: 0x6c73e220, - 0x190a0: 0x6cea4020, 0x190a1: 0x6d080020, 0x190a2: 0x6c632e20, 0x190a3: 0x6d379e20, - 0x190a4: 0x6cbc9820, 0x190a5: 0x6d3ab220, 0x190a6: 0x6c2db020, - 0x190a8: 0x6d201820, 0x190ab: 0x6d14a420, - 0x190ac: 0x6cd2c220, 0x190ad: 0x6d16fa20, 0x190ae: 0x6ca0e820, - 0x190b1: 0x6cc3ae20, 0x190b2: 0x6cfea420, 0x190b3: 0x6cf3ba20, - 0x190b4: 0x6c44c020, 0x190b5: 0x6d1ce620, 0x190b6: 0x6ce66820, 0x190b7: 0x6cd2c620, - 0x190b8: 0x6ca5cc20, 0x190b9: 0x6c44c620, 0x190ba: 0x6cde5020, 0x190bb: 0x6cf28a20, - 0x190bc: 0x6c711820, 0x190bd: 0x6c15a820, 0x190be: 0x6cb19620, 0x190bf: 0x6d3d5420, - // Block 0x643, offset 0x190c0 - 0x190c0: 0x6c54c420, 0x190c1: 0x6ca4fa20, 0x190c2: 0x6d0c9820, 0x190c3: 0x6c468620, - 0x190c4: 0x6d225c20, 0x190c5: 0x6c540420, 0x190c7: 0x6cd7f620, - 0x190c8: 0x6c1aba20, 0x190c9: 0x6c56a420, 0x190ca: 0x6d105220, 0x190cb: 0x6cf22e20, - 0x190cc: 0x6cfcd020, 0x190cd: 0x6cb21020, 0x190ce: 0x6cc69c20, 0x190cf: 0x6c90a820, - 0x190d0: 0x6c81b420, 0x190d1: 0x6cccfe20, 0x190d2: 0x6cfef020, 0x190d3: 0x6d2ae220, - 0x190d4: 0x6c4d7820, 0x190d5: 0x6c38b420, 0x190d6: 0x6c4e6220, 0x190d7: 0x6c14d420, - 0x190d8: 0x6d2e7620, 0x190da: 0x6cde1620, 0x190db: 0x6d3b2a20, - 0x190dc: 0x6ca9c820, 0x190dd: 0x6c4f1820, 0x190de: 0x6d21b620, 0x190df: 0x6d3db420, - 0x190e0: 0x6d205c20, 0x190e1: 0x6c86fc20, 0x190e2: 0x6c5e2a20, 0x190e3: 0x6cf73e20, - 0x190e4: 0x6cfb0020, 0x190e5: 0x6c155820, 0x190e6: 0x6c889420, - 0x190e8: 0x6cd7be20, 0x190e9: 0x6c6fce20, 0x190ea: 0x6cb42820, 0x190eb: 0x6cbffc20, - 0x190ec: 0x6c45d620, 0x190ed: 0x6d3ee820, 0x190ee: 0x6d20bc20, - 0x190f1: 0x6cc62820, 0x190f2: 0x6ca98420, 0x190f3: 0x6c99d820, - 0x190f4: 0x6c032820, 0x190f5: 0x6c6f9820, 0x190f7: 0x6d069620, - 0x190f8: 0x6cb29020, 0x190f9: 0x6c0b8a20, 0x190fa: 0x6c995420, - 0x190ff: 0x6d14ce20, - // Block 0x644, offset 0x19100 - 0x19100: 0x6d20f620, 0x19102: 0x6cb29220, 0x19103: 0x6cc0f220, - 0x19104: 0x6c05f420, 0x19105: 0x6c5bae20, - 0x19109: 0x6c109420, 0x1910a: 0x6c985820, 0x1910b: 0x6c7e7020, - 0x1910c: 0x6ce8a820, 0x1910d: 0x6cf3c220, 0x1910e: 0x6c85ec20, 0x1910f: 0x6c8cea20, - 0x19111: 0x6c620220, 0x19112: 0x6c75bc20, 0x19113: 0x6d405620, - 0x19114: 0x6c349220, 0x19115: 0x6c745020, 0x19116: 0x6c277020, 0x19117: 0x6c073220, - 0x1911d: 0x6c7e8020, 0x1911e: 0x6c0d3e20, 0x1911f: 0x6cdbf820, - 0x19120: 0x6ce8c220, 0x19121: 0x6d08e220, - 0x19127: 0x6c350c20, - 0x1912a: 0x6cdc5420, 0x1912b: 0x6c0a2e20, - 0x1912c: 0x6ce87420, 0x1912d: 0x6ccb4a20, 0x1912e: 0x6c120020, 0x1912f: 0x6ce8e420, - 0x19130: 0x6c9e3620, 0x19131: 0x6c6c5220, 0x19132: 0x6c93b020, - 0x19135: 0x6d2e8020, 0x19136: 0x6c08f620, 0x19137: 0x6c60ac20, - 0x19138: 0x6d2b7420, 0x19139: 0x6d07d620, 0x1913a: 0x6c86a020, - 0x1913d: 0x6cdc8220, 0x1913e: 0x6d1dc220, 0x1913f: 0x6cd57620, - // Block 0x645, offset 0x19140 - 0x19142: 0x6c358620, - 0x19147: 0x6cbf8620, - 0x19148: 0x6c958020, 0x19149: 0x6d322220, 0x1914a: 0x6cea4620, 0x1914b: 0x6c46fe20, - 0x1914c: 0x6d223c20, 0x1914d: 0x6c82be20, 0x1914e: 0x6c0eee20, 0x1914f: 0x6ca56e20, - 0x19150: 0x6cb12020, 0x19151: 0x6c890e20, 0x19152: 0x6ce17a20, 0x19153: 0x6c883820, - 0x19154: 0x6cf16220, 0x19155: 0x6c291020, 0x19156: 0x6c87be20, 0x19157: 0x6ce65e20, - 0x19158: 0x6cec1820, 0x19159: 0x6d390220, 0x1915a: 0x6c426620, 0x1915b: 0x6d03d220, - 0x1915c: 0x6c021420, 0x1915d: 0x6c393820, 0x1915e: 0x6caf0e20, 0x1915f: 0x6c0eda20, - 0x19160: 0x6ceb0620, 0x19161: 0x6cd4d020, 0x19162: 0x6d14e420, 0x19163: 0x6c0ef020, - 0x19164: 0x6cbcb820, 0x19165: 0x6ce80e20, 0x19166: 0x6c45e820, 0x19167: 0x6ce74820, - 0x19168: 0x6c4e1220, 0x19169: 0x6c1a0820, 0x1916a: 0x6c6ace20, 0x1916b: 0x6c593a20, - 0x1916c: 0x6d042c20, 0x1916d: 0x6c2d6220, 0x1916e: 0x6c146a20, 0x1916f: 0x6c308020, - 0x19170: 0x6caffc20, 0x19171: 0x6cc86a20, 0x19172: 0x6c8b2220, 0x19173: 0x6cd14020, - 0x19174: 0x6cab8420, 0x19175: 0x6c2c8020, 0x19176: 0x6d217020, 0x19177: 0x6c200220, - 0x19178: 0x6cc6a220, 0x19179: 0x6c774820, 0x1917a: 0x6ce12420, 0x1917b: 0x6c23b620, - 0x1917c: 0x6cb18220, 0x1917d: 0x6c209820, 0x1917e: 0x6c92ce20, 0x1917f: 0x6ce79020, - // Block 0x646, offset 0x19180 - 0x19180: 0x6d336620, 0x19181: 0x6c86a420, 0x19182: 0x6cc9a020, 0x19183: 0x6cac4420, - 0x19184: 0x6cd82e20, 0x19186: 0x6c291220, 0x19187: 0x6c55de20, - 0x19188: 0x6d190c20, 0x19189: 0x6cfd3220, 0x1918a: 0x6d028020, 0x1918b: 0x6c958820, - 0x1918c: 0x6c8f5e20, 0x1918e: 0x6cdfea20, 0x1918f: 0x6c422e20, - 0x19191: 0x6ce01c20, - 0x19195: 0x6d1ef020, 0x19196: 0x6ca3e020, - 0x19198: 0x6c429a20, 0x19199: 0x6c759820, 0x1919a: 0x6c1bfe20, 0x1919b: 0x6c464020, - 0x1919c: 0x6cecfa20, 0x1919d: 0x6c85ee20, 0x1919e: 0x6c8e5420, 0x1919f: 0x6c8b0a20, - 0x191a0: 0x6cf9c420, 0x191a1: 0x6c06ac20, 0x191a2: 0x6c018a20, 0x191a3: 0x6d237220, - 0x191a4: 0x6c713220, 0x191a5: 0x6cc75820, 0x191a6: 0x6d0a3420, 0x191a7: 0x6d3e7a20, - 0x191a8: 0x6c25ee20, 0x191a9: 0x6c120620, 0x191aa: 0x6d2baa20, 0x191ab: 0x6d1dc420, - 0x191ac: 0x6c407420, 0x191ad: 0x6cc88a20, 0x191af: 0x6cf7cc20, - 0x191b0: 0x6cd5e620, 0x191b1: 0x6c68c020, 0x191b2: 0x6c68c220, 0x191b3: 0x6d057020, - 0x191b4: 0x6d2f2620, 0x191b7: 0x6cd71220, - 0x191b8: 0x6c18a820, 0x191b9: 0x6c390820, 0x191ba: 0x6c5ff820, 0x191bb: 0x6d33a820, - 0x191bd: 0x6c480420, 0x191be: 0x6cf4d620, - // Block 0x647, offset 0x191c0 - 0x191c0: 0x6cbcae20, 0x191c1: 0x6cd5bc20, 0x191c2: 0x6c4d1420, 0x191c3: 0x6ceb0820, - 0x191c4: 0x6c319020, 0x191c5: 0x6d3f0220, 0x191c6: 0x6cc46e20, 0x191c7: 0x6ca27820, - 0x191c8: 0x6c3fd020, 0x191c9: 0x6c8cca20, 0x191ca: 0x6c601e20, 0x191cb: 0x6d04ce20, - 0x191cc: 0x6d084c20, 0x191cd: 0x6ca37820, 0x191ce: 0x6d0aee20, 0x191cf: 0x6c6be020, - 0x191d0: 0x6c85f020, 0x191d1: 0x6c269c20, 0x191d2: 0x6cc7a020, 0x191d3: 0x6d24ee20, - 0x191d4: 0x6c939c20, 0x191d5: 0x6cd06220, 0x191d6: 0x6c851820, 0x191d7: 0x6c89bc20, - 0x191d8: 0x6c450e20, 0x191d9: 0x6d033820, 0x191da: 0x6d004420, 0x191db: 0x6cbdd820, - 0x191dc: 0x6cbcc220, 0x191dd: 0x6c182020, 0x191de: 0x6d1f3c20, 0x191df: 0x6c109a20, - 0x191e0: 0x6c7bc220, 0x191e1: 0x6cc3be20, 0x191e2: 0x6c00aa20, 0x191e3: 0x6cbd3420, - 0x191e4: 0x6cbac020, 0x191e5: 0x6c1f5220, 0x191e6: 0x6cae1e20, 0x191e7: 0x6c7e0620, - 0x191e8: 0x6d13fa20, 0x191e9: 0x6c48ce20, 0x191ea: 0x6cd14220, 0x191eb: 0x6cb0fa20, - 0x191ed: 0x6d393820, 0x191ee: 0x6c59de20, 0x191ef: 0x6c5ad620, - 0x191f0: 0x6c557e20, 0x191f1: 0x6c074220, - 0x191f4: 0x6d2bec20, 0x191f5: 0x6c624620, 0x191f6: 0x6c47c220, 0x191f7: 0x6cf6a420, - 0x191f8: 0x6c431620, 0x191f9: 0x6c148620, 0x191fa: 0x6c96d620, 0x191fb: 0x6d3b2020, - 0x191fc: 0x6ce9ea20, 0x191fd: 0x6d3ca020, 0x191fe: 0x6cface20, 0x191ff: 0x6c80de20, - // Block 0x648, offset 0x19200 - 0x19203: 0x6d36e820, - 0x19204: 0x6c00cc20, 0x19205: 0x6cfc2e20, 0x19206: 0x6c4c3c20, 0x19207: 0x6cf7a220, - 0x19209: 0x6ce9f020, 0x1920a: 0x6c11de20, 0x1920b: 0x6ccb0420, - 0x1920c: 0x6cfaea20, 0x1920d: 0x6c6c0e20, 0x1920e: 0x6c3bfa20, 0x1920f: 0x6cc45a20, - 0x19211: 0x6d123a20, 0x19212: 0x6c29fa20, 0x19213: 0x6c63f420, - 0x19214: 0x6c82fc20, 0x19215: 0x6d0d0220, 0x19216: 0x6c918e20, 0x19217: 0x6ce9d620, - 0x19218: 0x6d1cd220, 0x19219: 0x6cb0de20, 0x1921a: 0x6c964a20, 0x1921b: 0x6c87a420, - 0x1921c: 0x6c0d1220, 0x1921e: 0x6c995620, 0x1921f: 0x6c040e20, - 0x19220: 0x6c5a6a20, 0x19222: 0x6d121220, 0x19223: 0x6c50a420, - 0x19224: 0x6c218420, 0x19225: 0x6c516420, 0x19226: 0x6ca95620, 0x19227: 0x6c1e0220, - 0x19228: 0x6c874620, 0x19229: 0x6ce19420, 0x1922a: 0x6c585a20, 0x1922b: 0x6c095420, - 0x1922c: 0x6c033420, 0x1922d: 0x6c181020, 0x1922e: 0x6d104620, 0x1922f: 0x6c269e20, - 0x19230: 0x6c024420, 0x19231: 0x6d091020, 0x19233: 0x6d3e5220, - 0x19234: 0x6c265a20, 0x19235: 0x6cc4ce20, 0x19236: 0x6c053820, 0x19237: 0x6c25f020, - 0x19238: 0x6ced4e20, 0x19239: 0x6cdebe20, 0x1923a: 0x6c05dc20, 0x1923b: 0x6c417a20, - 0x1923c: 0x6d0c7620, 0x1923d: 0x6cf5a620, 0x1923e: 0x6d3ad420, 0x1923f: 0x6d0b4e20, - // Block 0x649, offset 0x19240 - 0x19240: 0x6c393a20, 0x19241: 0x6d203c20, 0x19242: 0x6c012820, 0x19243: 0x6ce9a420, - 0x19244: 0x6c9b2020, 0x19245: 0x6ccf5c20, 0x19246: 0x6c6d2e20, 0x19247: 0x6c47ce20, - 0x19248: 0x6c627820, 0x19249: 0x6cbc0020, 0x1924a: 0x6c695820, 0x1924b: 0x6d0d0420, - 0x1924c: 0x6cf92e20, 0x1924d: 0x6c772020, 0x1924e: 0x6c9e0220, 0x1924f: 0x6d086a20, - 0x19250: 0x6cccc420, 0x19251: 0x6cf2d820, 0x19252: 0x6cb8b420, 0x19253: 0x6c58f620, - 0x19254: 0x6cc5d020, 0x19255: 0x6d322420, 0x19256: 0x6ce45c20, 0x19257: 0x6c740020, - 0x19258: 0x6d008620, 0x19259: 0x6cb75820, 0x1925a: 0x6c01f820, 0x1925b: 0x6c9a8220, - 0x1925c: 0x6c476820, 0x1925e: 0x6ce1b820, 0x1925f: 0x6c389220, - 0x19260: 0x6c722c20, 0x19261: 0x6c162820, 0x19262: 0x6cd74c20, 0x19263: 0x6c096820, - 0x19264: 0x6c996220, 0x19265: 0x6cd77820, 0x19266: 0x6c477220, 0x19267: 0x6c53a420, - 0x19268: 0x6c579620, 0x19269: 0x6c95fe20, 0x1926a: 0x6c4f7420, 0x1926b: 0x6c63b820, - 0x1926c: 0x6cc2e220, 0x1926d: 0x6c40f420, 0x1926e: 0x6c599020, 0x1926f: 0x6c103c20, - 0x19270: 0x6c478e20, 0x19271: 0x6c3c4e20, 0x19272: 0x6ca28820, 0x19273: 0x6c009c20, - 0x19274: 0x6d1cee20, 0x19275: 0x6cd75020, 0x19276: 0x6c89be20, 0x19277: 0x6c6ad020, - 0x19278: 0x6c1c2220, 0x19279: 0x6c6ad220, 0x1927a: 0x6c1d7020, 0x1927b: 0x6cb2e820, - 0x1927c: 0x6c186a20, 0x1927d: 0x6d0c9a20, 0x1927e: 0x6c321c20, 0x1927f: 0x6c2c5a20, - // Block 0x64a, offset 0x19280 - 0x19281: 0x6c89c220, 0x19282: 0x6cfcd220, 0x19283: 0x6c0c0420, - 0x19284: 0x6d042e20, 0x19285: 0x6c9bda20, 0x19286: 0x6d130220, 0x19287: 0x6c9d5e20, - 0x19288: 0x6cb7a020, 0x19289: 0x6cb7a220, 0x1928a: 0x6cf30620, 0x1928b: 0x6d01dc20, - 0x1928c: 0x6d239820, 0x1928d: 0x6cb87020, 0x1928e: 0x6c1a2820, 0x1928f: 0x6d11c220, - 0x19290: 0x6d1bd420, 0x19291: 0x6d0fd420, 0x19292: 0x6c606820, 0x19293: 0x6d3fa220, - 0x19294: 0x6d07b220, 0x19295: 0x6c9f6e20, 0x19296: 0x6c907620, 0x19297: 0x6c766e20, - 0x19298: 0x6d11ca20, 0x19299: 0x6d0dcc20, 0x1929a: 0x6cdcfa20, 0x1929b: 0x6c4b6c20, - 0x1929c: 0x6c5a7a20, 0x1929d: 0x6d1c8e20, 0x1929e: 0x6cd14420, 0x1929f: 0x6c140220, - 0x192a0: 0x6c883c20, 0x192a2: 0x6d082420, 0x192a3: 0x6c200e20, - 0x192a4: 0x6c184220, 0x192a5: 0x6ca6ca20, 0x192a6: 0x6cc27820, 0x192a7: 0x6c9e7e20, - 0x192a8: 0x6c5dfe20, 0x192a9: 0x6d21a420, 0x192aa: 0x6d2e1620, 0x192ab: 0x6c55c820, - 0x192ac: 0x6c136020, 0x192ad: 0x6c0c2c20, 0x192ae: 0x6cb9d020, 0x192af: 0x6cf6ee20, - 0x192b0: 0x6c67c220, 0x192b1: 0x6c79c620, 0x192b2: 0x6c970220, 0x192b3: 0x6c98a220, - 0x192b4: 0x6d2e2220, 0x192b5: 0x6c0b5c20, 0x192b6: 0x6c5f6c20, 0x192b7: 0x6c74d820, - 0x192b8: 0x6ca45820, 0x192b9: 0x6c0a9020, 0x192ba: 0x6cd3f420, 0x192bb: 0x6cd7ac20, - 0x192bc: 0x6ca18820, 0x192bd: 0x6c8b6420, 0x192be: 0x6c9f0820, 0x192bf: 0x6ca19420, - // Block 0x64b, offset 0x192c0 - 0x192c0: 0x6cf74820, 0x192c1: 0x6c156820, 0x192c2: 0x6cc21620, 0x192c3: 0x6c69e620, - 0x192c4: 0x6c5e5a20, 0x192c5: 0x6cfb1a20, 0x192c6: 0x6d068820, 0x192c7: 0x6ca98820, - 0x192c8: 0x6ce74020, 0x192c9: 0x6c542220, 0x192ca: 0x6d240e20, - 0x192cc: 0x6c1ce220, 0x192cd: 0x6c0fbc20, 0x192ce: 0x6d415820, 0x192cf: 0x6c2dba20, - 0x192d0: 0x6d3cfa20, 0x192d1: 0x6c5ea620, 0x192d2: 0x6cb86220, - 0x192d4: 0x6d043020, 0x192d5: 0x6c5c0020, 0x192d6: 0x6cd23420, 0x192d7: 0x6c7a1e20, - 0x192d9: 0x6c32f220, 0x192da: 0x6d10da20, 0x192db: 0x6d20da20, - 0x192dc: 0x6c056420, 0x192dd: 0x6c6a9220, 0x192de: 0x6d30e820, 0x192df: 0x6c634620, - 0x192e0: 0x6cd2c820, 0x192e1: 0x6c2bea20, 0x192e2: 0x6c302a20, 0x192e3: 0x6c223a20, - 0x192e4: 0x6c3fd220, 0x192e5: 0x6c9f4020, 0x192e6: 0x6d314020, 0x192e7: 0x6d31d020, - 0x192e9: 0x6d0e6420, 0x192ea: 0x6cbc2020, 0x192eb: 0x6c4f4e20, - 0x192ec: 0x6c45ea20, 0x192ed: 0x6cbb6e20, 0x192ee: 0x6c94a220, 0x192ef: 0x6c48f620, - 0x192f0: 0x6c7e7620, 0x192f1: 0x6cc8ce20, 0x192f2: 0x6c383420, 0x192f3: 0x6c260a20, - 0x192f4: 0x6d0c9c20, 0x192f5: 0x6c458a20, 0x192f6: 0x6c6ad420, 0x192f7: 0x6c48d020, - 0x192f8: 0x6c4c7020, 0x192f9: 0x6cdd7c20, 0x192fa: 0x6cf2ba20, 0x192fb: 0x6d335220, - 0x192fc: 0x6ca84220, 0x192fd: 0x6c2e2c20, 0x192fe: 0x6c7f3c20, 0x192ff: 0x6cde6420, - // Block 0x64c, offset 0x19300 - 0x19300: 0x6c254620, 0x19301: 0x6d0af420, 0x19302: 0x6c4bd020, - 0x19305: 0x6c2b3420, 0x19307: 0x6c9dc820, - 0x19308: 0x6c6a2a20, 0x19309: 0x6c9f7020, 0x1930a: 0x6c71ca20, 0x1930b: 0x6d217420, - 0x1930c: 0x6d318020, 0x1930d: 0x6d2fc820, 0x1930e: 0x6d2cd220, 0x1930f: 0x6d038820, - 0x19311: 0x6c049420, 0x19312: 0x6c516620, 0x19313: 0x6c46d220, - 0x19314: 0x6c538220, 0x19315: 0x6c816e20, 0x19316: 0x6cf51620, 0x19317: 0x6c0e8c20, - 0x19318: 0x6c795420, 0x19319: 0x6c92d420, 0x1931a: 0x6c246420, 0x1931b: 0x6c885020, - 0x1931c: 0x6d141820, 0x1931d: 0x6cbc6020, 0x1931e: 0x6cd53820, - 0x19320: 0x6d08b220, 0x19321: 0x6c6c6220, 0x19322: 0x6cbd4220, 0x19323: 0x6c5b7020, - 0x19324: 0x6cdb3620, 0x19325: 0x6c207c20, 0x19326: 0x6c33b420, 0x19327: 0x6c8fb220, - 0x19329: 0x6ca4c820, 0x1932a: 0x6ce02220, 0x1932b: 0x6c285220, - 0x1932c: 0x6cf03e20, 0x1932d: 0x6c41f220, 0x1932e: 0x6c26c620, 0x1932f: 0x6c86d420, - 0x19330: 0x6c10de20, 0x19331: 0x6cfd3e20, 0x19332: 0x6cac8c20, 0x19333: 0x6c7eb620, - 0x19334: 0x6d39ec20, 0x19335: 0x6ca7c420, 0x19336: 0x6c580220, 0x19337: 0x6d1cce20, - 0x19338: 0x6cfd4620, 0x19339: 0x6c809020, 0x1933a: 0x6ca0a020, 0x1933b: 0x6c03e220, - 0x1933d: 0x6c4adc20, 0x1933e: 0x6c08c620, 0x1933f: 0x6c3d5020, - // Block 0x64d, offset 0x19340 - 0x19340: 0x6c5da820, 0x19341: 0x6d173c20, 0x19342: 0x6c8f2c20, - 0x19344: 0x6d19cc20, 0x19345: 0x6c735c20, 0x19346: 0x6c5d7420, 0x19347: 0x6c1a0a20, - 0x19348: 0x6c311c20, 0x19349: 0x6c356a20, 0x1934b: 0x6d0da620, - 0x1934c: 0x6d3c9420, 0x1934d: 0x6d2cce20, 0x1934e: 0x6cb70420, 0x1934f: 0x6d216220, - 0x19350: 0x6cc37620, 0x19351: 0x6c5d7a20, 0x19352: 0x6ca84420, 0x19353: 0x6c59e220, - 0x19354: 0x6c71cc20, 0x19355: 0x6ccf6820, - 0x19358: 0x6caebe20, 0x19359: 0x6ca01820, 0x1935a: 0x6c129220, 0x1935b: 0x6c90ba20, - 0x1935c: 0x6c843e20, 0x1935d: 0x6c205e20, 0x1935f: 0x6c24f020, - 0x19360: 0x6ccdc820, 0x19361: 0x6c280a20, 0x19362: 0x6cb68220, - 0x19364: 0x6c7f7a20, 0x19365: 0x6c8de620, 0x19366: 0x6c8a6220, 0x19367: 0x6cc62220, - 0x19368: 0x6d20c820, 0x19369: 0x6d16ca20, 0x1936a: 0x6c2df820, 0x1936b: 0x6cb6dc20, - 0x1936c: 0x6d147820, 0x1936d: 0x6ca6f420, 0x1936e: 0x6c3d5220, 0x1936f: 0x6c657420, - 0x19370: 0x6d0b1c20, 0x19371: 0x6c398c20, 0x19372: 0x6cc8c420, 0x19373: 0x6cfa8c20, - 0x19376: 0x6c096a20, 0x19377: 0x6cd25e20, - 0x19378: 0x6cb38020, 0x19379: 0x6ca6fc20, 0x1937a: 0x6d35f620, 0x1937b: 0x6ce22020, - 0x1937c: 0x6ce4f020, 0x1937d: 0x6ce4f220, 0x1937e: 0x6cc81620, 0x1937f: 0x6d176a20, - // Block 0x64e, offset 0x19380 - 0x19380: 0x6c8b0420, 0x19381: 0x6c01bc20, 0x19382: 0x6c511020, 0x19383: 0x6cbf1620, - 0x19384: 0x6c85f420, 0x19385: 0x6c4a5c20, 0x19386: 0x6d3f4a20, 0x19387: 0x6cdaaa20, - 0x19388: 0x6d261020, 0x19389: 0x6d0ba220, 0x1938a: 0x6c13dc20, 0x1938b: 0x6ced2420, - 0x1938c: 0x6c72f420, 0x1938d: 0x6ce6cc20, 0x1938e: 0x6d1fd020, 0x1938f: 0x6c5bc620, - 0x19390: 0x6c659c20, 0x19391: 0x6cc89e20, 0x19392: 0x6c986420, 0x19393: 0x6c71b820, - 0x19394: 0x6d3e5620, 0x19395: 0x6c70a820, 0x19396: 0x6c013a20, 0x19397: 0x6cdc5020, - 0x19398: 0x6c7f1620, 0x19399: 0x6c5d3020, 0x1939a: 0x6cc35e20, 0x1939b: 0x6c167220, - 0x1939c: 0x6c34fa20, 0x1939d: 0x6c798020, 0x1939e: 0x6ca55020, 0x1939f: 0x6c11d220, - 0x193a0: 0x6ce35620, 0x193a1: 0x6d064c20, 0x193a2: 0x6c701020, 0x193a3: 0x6c59e420, - 0x193a4: 0x6cb7b820, 0x193a5: 0x6c6b0e20, 0x193a6: 0x6c98f220, 0x193a7: 0x6d0c2020, - 0x193a9: 0x6d354820, 0x193aa: 0x6ce9b020, - 0x193ac: 0x6c00c220, 0x193ad: 0x6cad0a20, 0x193ae: 0x6c125a20, 0x193af: 0x6ce12820, - 0x193b0: 0x6c372220, 0x193b1: 0x6c5d3c20, 0x193b2: 0x6cb63e20, 0x193b3: 0x6c1ea620, - 0x193b4: 0x6cdd9020, 0x193b5: 0x6d3d8820, 0x193b6: 0x6caa2620, 0x193b7: 0x6ce8f220, - 0x193b8: 0x6cd01a20, 0x193b9: 0x6c90f820, 0x193ba: 0x6c0c2020, 0x193bb: 0x6c844020, - 0x193bc: 0x6c977c20, 0x193bd: 0x6d02f020, 0x193be: 0x6c133c20, 0x193bf: 0x6c5a0a20, - // Block 0x64f, offset 0x193c0 - 0x193c0: 0x6c9a6c20, 0x193c1: 0x6c42e620, 0x193c2: 0x6c887620, 0x193c3: 0x6c2a3e20, - 0x193c4: 0x6d2e2420, 0x193c5: 0x6d3eaa20, - 0x193c8: 0x6d375620, 0x193c9: 0x6c03d020, 0x193ca: 0x6c258a20, 0x193cb: 0x6cbfe420, - 0x193cd: 0x6c8fea20, 0x193ce: 0x6cfb0a20, 0x193cf: 0x6c3afa20, - 0x193d0: 0x6c4cac20, 0x193d1: 0x6c19b820, 0x193d2: 0x6c6fda20, 0x193d3: 0x6c35f620, - 0x193d4: 0x6c1cb420, 0x193d5: 0x6d269220, 0x193d6: 0x6c531620, 0x193d7: 0x6d119e20, - 0x193d8: 0x6d0ae220, 0x193d9: 0x6d10e620, 0x193da: 0x6ce74420, 0x193db: 0x6d2cc020, - 0x193dc: 0x6d204020, 0x193dd: 0x6d095620, 0x193de: 0x6d11aa20, 0x193df: 0x6c78a820, - 0x193e0: 0x6c591620, 0x193e1: 0x6c80cc20, 0x193e2: 0x6d26ba20, 0x193e3: 0x6c18ca20, - 0x193e6: 0x6cd0b220, - 0x193e8: 0x6ca90e20, 0x193e9: 0x6ca00a20, 0x193ea: 0x6c52ba20, 0x193eb: 0x6c205820, - 0x193ec: 0x6d27fe20, 0x193ed: 0x6d07be20, 0x193ee: 0x6c6d4420, 0x193ef: 0x6d3d9c20, - 0x193f0: 0x6d209c20, 0x193f1: 0x6cdfbc20, 0x193f2: 0x6c775420, 0x193f3: 0x6cbf6420, - 0x193f5: 0x6c1a4c20, 0x193f6: 0x6c6f8820, 0x193f7: 0x6d097620, - 0x193f8: 0x6d32fa20, 0x193f9: 0x6c1ce420, 0x193fa: 0x6cac4a20, 0x193fb: 0x6cbc6620, - 0x193fd: 0x6cc1e620, 0x193fe: 0x6c7fd620, 0x193ff: 0x6d190e20, - // Block 0x650, offset 0x19400 - 0x19400: 0x6cc6de20, 0x19401: 0x6cd84e20, 0x19402: 0x6cb89c20, 0x19403: 0x6cd89220, - 0x19405: 0x6c380420, 0x19407: 0x6c9b1020, - 0x19408: 0x6c578e20, 0x1940b: 0x6c4d6620, - 0x1940c: 0x6cbc4420, 0x1940d: 0x6c1f4620, 0x1940e: 0x6cc3d420, 0x1940f: 0x6c334e20, - 0x19410: 0x6c863820, 0x19411: 0x6c03b820, 0x19412: 0x6c6c0420, 0x19413: 0x6d05ee20, - 0x19414: 0x6c963620, 0x19416: 0x6d27de20, 0x19417: 0x6d37ae20, - 0x19418: 0x6c568220, 0x19419: 0x6d1ad220, 0x1941b: 0x6d351020, - 0x1941c: 0x6cb9fa20, 0x1941e: 0x6c419420, 0x1941f: 0x6c667c20, - 0x19420: 0x6d3ae220, 0x19421: 0x6d3ae420, 0x19422: 0x6c7a7820, 0x19423: 0x6ca81a20, - 0x19424: 0x6cc8ca20, 0x19425: 0x6d2ac220, 0x19426: 0x6c020820, 0x19427: 0x6d363820, - 0x19428: 0x6c461a20, 0x19429: 0x6d17b220, 0x1942a: 0x6c1ab020, 0x1942b: 0x6c5ed620, - 0x1942c: 0x6d39a620, 0x1942d: 0x6c81b220, 0x1942e: 0x6cc5ee20, 0x1942f: 0x6cc67620, - 0x19430: 0x6d32c620, 0x19431: 0x6ca34220, 0x19432: 0x6c12ec20, - 0x19435: 0x6d151e20, 0x19436: 0x6c746820, 0x19437: 0x6c0cee20, - 0x19438: 0x6c1a1e20, 0x19439: 0x6c75ce20, 0x1943a: 0x6c312620, 0x1943b: 0x6cefe420, - 0x1943c: 0x6d17fa20, 0x1943d: 0x6d306020, 0x1943e: 0x6d0cae20, - // Block 0x651, offset 0x19440 - 0x19440: 0x6cca0220, 0x19441: 0x6c950220, 0x19442: 0x6cb2be20, 0x19443: 0x6d2f9020, - 0x19444: 0x6c4e2020, 0x19445: 0x6d239a20, 0x19446: 0x6c278220, 0x19447: 0x6d2fca20, - 0x19448: 0x6c3a3e20, 0x19449: 0x6ccc6620, 0x1944a: 0x6c8d3820, 0x1944b: 0x6cde7a20, - 0x1944c: 0x6cc12220, 0x1944d: 0x6c986e20, 0x1944e: 0x6d132c20, 0x1944f: 0x6c05d220, - 0x19450: 0x6c4b6e20, 0x19451: 0x6c489e20, 0x19452: 0x6ca43620, 0x19453: 0x6c442420, - 0x19455: 0x6cd28420, 0x19456: 0x6c782820, 0x19457: 0x6cdd9220, - 0x19458: 0x6c225c20, 0x19459: 0x6d394620, 0x1945a: 0x6cdf3820, 0x1945b: 0x6c7b3420, - 0x1945c: 0x6cbe2420, 0x1945d: 0x6d05d820, 0x1945e: 0x6c322820, 0x1945f: 0x6c131220, - 0x19460: 0x6c58da20, 0x19461: 0x6c234420, 0x19462: 0x6cc9de20, 0x19463: 0x6d336020, - 0x19464: 0x6cb9be20, 0x19465: 0x6c6c5420, 0x19466: 0x6d3fb420, 0x19467: 0x6cf00020, - 0x1946a: 0x6cf8de20, 0x1946b: 0x6ca36c20, - 0x1946c: 0x6cb45420, 0x1946d: 0x6cd9e020, 0x1946e: 0x6c729420, 0x1946f: 0x6d319620, - 0x19470: 0x6cce8620, 0x19471: 0x6ce1e820, 0x19472: 0x6c049c20, 0x19473: 0x6cdea020, - 0x19474: 0x6cba7c20, 0x19475: 0x6cf23a20, 0x19476: 0x6cc6ae20, 0x19477: 0x6c962820, - 0x19478: 0x6c55ca20, 0x19479: 0x6cda2e20, 0x1947a: 0x6d37cc20, 0x1947b: 0x6cb46020, - 0x1947c: 0x6c9ef620, 0x1947d: 0x6c6c6420, 0x1947e: 0x6cce8a20, 0x1947f: 0x6c9d8e20, - // Block 0x652, offset 0x19480 - 0x19480: 0x6cd61c20, 0x19481: 0x6c8d7020, 0x19482: 0x6c82de20, 0x19483: 0x6c67c420, - 0x19484: 0x6c838a20, 0x19485: 0x6d370e20, 0x19486: 0x6c2e0020, - 0x19488: 0x6cca2e20, 0x19489: 0x6c473e20, 0x1948a: 0x6c397220, 0x1948b: 0x6c9ab220, - 0x1948c: 0x6cdc9e20, 0x1948d: 0x6c65f620, 0x1948e: 0x6ce15020, 0x1948f: 0x6d025e20, - 0x19490: 0x6c7a6a20, 0x19491: 0x6cf3fe20, 0x19492: 0x6c38d220, 0x19493: 0x6c963820, - 0x19494: 0x6c117820, 0x19495: 0x6c136620, 0x19496: 0x6c8d7a20, 0x19497: 0x6d142620, - 0x19498: 0x6c23be20, 0x19499: 0x6d27ce20, 0x1949a: 0x6c9b7420, 0x1949b: 0x6d245020, - 0x1949c: 0x6d374220, 0x1949d: 0x6d162020, 0x1949e: 0x6c285620, 0x1949f: 0x6c5e2c20, - 0x194a0: 0x6cef5a20, 0x194a1: 0x6ce03220, 0x194a2: 0x6ccb7e20, 0x194a3: 0x6d024420, - 0x194a4: 0x6cda3620, 0x194a5: 0x6cd97620, 0x194a6: 0x6cb94c20, 0x194a7: 0x6c8eda20, - 0x194a8: 0x6d194620, 0x194aa: 0x6c835a20, 0x194ab: 0x6c84aa20, - 0x194ac: 0x6c3af420, 0x194ad: 0x6c8b6a20, 0x194ae: 0x6c8c8820, 0x194af: 0x6cfd4820, - 0x194b0: 0x6d002c20, 0x194b1: 0x6cab6420, 0x194b2: 0x6c9cbc20, 0x194b3: 0x6cfb1220, - 0x194b4: 0x6cc4f820, 0x194b5: 0x6d3c0220, 0x194b6: 0x6cd6be20, 0x194b7: 0x6d0d1e20, - 0x194b8: 0x6c0be020, 0x194b9: 0x6c8df020, 0x194ba: 0x6c531a20, 0x194bb: 0x6cb5a620, - 0x194bc: 0x6c8a9620, 0x194bd: 0x6c04ca20, 0x194be: 0x6c097e20, 0x194bf: 0x6c554820, - // Block 0x653, offset 0x194c0 - 0x194c0: 0x6c554a20, 0x194c2: 0x6c12f220, 0x194c3: 0x6cae1c20, - 0x194c4: 0x6cbf2c20, 0x194c5: 0x6c9ffe20, 0x194c6: 0x6c700220, 0x194c7: 0x6c10a220, - 0x194c8: 0x6c9a1420, 0x194c9: 0x6cca1e20, 0x194ca: 0x6cf0a820, - 0x194cd: 0x6c841e20, 0x194ce: 0x6cc36220, - 0x194d0: 0x6c5cfa20, 0x194d1: 0x6cfdf220, 0x194d3: 0x6cd3c620, - 0x194d4: 0x6d1c9020, 0x194d6: 0x6ca43820, 0x194d7: 0x6c59f220, - 0x194d8: 0x6c701a20, 0x194d9: 0x6d0c2620, 0x194db: 0x6cc99020, - 0x194dc: 0x6ce96220, 0x194dd: 0x6d022e20, 0x194de: 0x6d309c20, 0x194df: 0x6c9ada20, - 0x194e0: 0x6cf8f420, 0x194e1: 0x6c978a20, 0x194e3: 0x6c5a1820, - 0x194e4: 0x6ce02420, 0x194e5: 0x6d001420, 0x194e6: 0x6d137220, 0x194e7: 0x6c0a9420, - 0x194e8: 0x6c955a20, 0x194e9: 0x6c38d420, 0x194ea: 0x6c870620, 0x194eb: 0x6c251220, - 0x194ec: 0x6c1fa620, 0x194ed: 0x6c2a4620, 0x194ee: 0x6c2bb620, 0x194ef: 0x6c7c1c20, - 0x194f0: 0x6c1ecc20, 0x194f1: 0x6cfb1420, 0x194f2: 0x6c165220, 0x194f3: 0x6c9cce20, - 0x194f4: 0x6cba8e20, 0x194f5: 0x6cc00820, 0x194f6: 0x6d322620, - 0x194fa: 0x6c568620, 0x194fb: 0x6c418c20, - 0x194fc: 0x6c1b9220, 0x194fd: 0x6c48f220, 0x194fe: 0x6ca27a20, 0x194ff: 0x6c0ede20, - // Block 0x654, offset 0x19500 - 0x19500: 0x6c579020, 0x19501: 0x6c44fc20, 0x19502: 0x6d10e820, 0x19503: 0x6c996420, - 0x19504: 0x6cee0820, - 0x19508: 0x6cc7a420, 0x19509: 0x6d090820, 0x1950a: 0x6d32b820, 0x1950b: 0x6c9f4a20, - 0x1950c: 0x6c67a420, 0x1950e: 0x6d2e5a20, 0x1950f: 0x6d423820, - 0x19510: 0x6d26a620, 0x19511: 0x6c8b0620, 0x19513: 0x6d392420, - 0x19514: 0x6c098020, 0x19515: 0x6cc5f020, 0x19516: 0x6d234e20, - 0x19518: 0x6c21c020, 0x19519: 0x6c379820, 0x1951a: 0x6d17b420, 0x1951b: 0x6c9cf620, - 0x1951c: 0x6cbeca20, 0x1951e: 0x6cee1e20, 0x1951f: 0x6c621e20, - 0x19520: 0x6c104020, 0x19522: 0x6c0cae20, 0x19523: 0x6c38a820, - 0x19524: 0x6d26c820, 0x19525: 0x6c83ee20, 0x19526: 0x6c38aa20, 0x19527: 0x6cc1a820, - 0x19528: 0x6c3f7620, 0x19529: 0x6c376220, 0x1952a: 0x6c354420, 0x1952b: 0x6d32e420, - 0x1952c: 0x6ce47020, 0x1952d: 0x6d239c20, 0x1952e: 0x6c6d3020, 0x1952f: 0x6cb70c20, - 0x19530: 0x6c714220, 0x19531: 0x6c7f1e20, 0x19532: 0x6c17f020, 0x19533: 0x6c06d020, - 0x19534: 0x6ca9a820, 0x19535: 0x6d186020, 0x19536: 0x6d065420, 0x19537: 0x6ca1e020, - 0x19538: 0x6d0a3620, 0x19539: 0x6c3eda20, 0x1953b: 0x6ca8ec20, - 0x1953c: 0x6ce64820, 0x1953d: 0x6c082c20, 0x1953e: 0x6d2c8a20, 0x1953f: 0x6ceeae20, - // Block 0x655, offset 0x19540 - 0x19540: 0x6c782a20, 0x19541: 0x6d10b020, 0x19542: 0x6caba420, 0x19543: 0x6cff0820, - 0x19544: 0x6c451a20, 0x19545: 0x6ce13820, 0x19546: 0x6c4b7620, 0x19547: 0x6c5c3a20, - 0x19548: 0x6cddfe20, 0x1954a: 0x6d114620, 0x1954b: 0x6c266820, - 0x1954c: 0x6cb7ea20, 0x1954d: 0x6c6cba20, 0x1954e: 0x6c94c220, 0x1954f: 0x6c9d9020, - 0x19550: 0x6c9d9220, 0x19551: 0x6c64fe20, 0x19552: 0x6c92ec20, 0x19553: 0x6c38c820, - 0x19554: 0x6cab5620, 0x19555: 0x6c9c7e20, 0x19556: 0x6c6b6420, 0x19557: 0x6c3f9220, - 0x19558: 0x6c0d1a20, 0x19559: 0x6c5a7c20, 0x1955a: 0x6cda5c20, 0x1955b: 0x6d115e20, - 0x1955c: 0x6ca89620, 0x1955d: 0x6c6c6c20, 0x1955e: 0x6c88d620, 0x1955f: 0x6c0faa20, - 0x19560: 0x6c652420, 0x19561: 0x6ce3ca20, 0x19562: 0x6c8d8220, 0x19563: 0x6d415220, - 0x19564: 0x6cd20e20, 0x19565: 0x6d1b2620, 0x19566: 0x6c2a4820, 0x19567: 0x6c1e0620, - 0x19568: 0x6c10e220, 0x19569: 0x6c9f1220, 0x1956a: 0x6d0e1620, 0x1956b: 0x6c805620, - 0x1956c: 0x6c1d3420, 0x1956d: 0x6c68b020, 0x1956e: 0x6cd6bc20, 0x1956f: 0x6cc2ac20, - 0x19570: 0x6ca8c820, 0x19571: 0x6c964c20, 0x19573: 0x6cd21e20, - 0x19574: 0x6c965020, 0x19575: 0x6d3a4c20, 0x19577: 0x6c1d6e20, - 0x19578: 0x6c734e20, 0x19579: 0x6c6f0c20, 0x1957a: 0x6c379a20, 0x1957b: 0x6d17b820, - 0x1957c: 0x6cc8d620, 0x1957d: 0x6c113c20, 0x1957e: 0x6cc57a20, 0x1957f: 0x6c3edc20, - // Block 0x656, offset 0x19580 - 0x19580: 0x6c7fb820, 0x19581: 0x6cdcaa20, 0x19582: 0x6d20e220, 0x19583: 0x6d1f1c20, - 0x19584: 0x6c2d1820, 0x19585: 0x6c8cf420, 0x19586: 0x6d3aec20, 0x19587: 0x6cde5220, - 0x19588: 0x6cb29e20, 0x19589: 0x6d2d2a20, 0x1958a: 0x6c684c20, 0x1958b: 0x6c20de20, - 0x1958c: 0x6c10ac20, 0x1958d: 0x6c7a0620, 0x1958e: 0x6c25b620, - 0x19590: 0x6c4e5220, 0x19591: 0x6c4e5420, 0x19592: 0x6ca20020, 0x19593: 0x6c567420, - 0x19594: 0x6c457220, 0x19595: 0x6c2b2020, 0x19596: 0x6c3e3c20, 0x19597: 0x6d088020, - 0x19598: 0x6c9c4c20, 0x19599: 0x6c9a0420, 0x1959a: 0x6c811e20, 0x1959b: 0x6c481e20, - 0x1959c: 0x6d2fc020, 0x1959d: 0x6cde6620, 0x1959e: 0x6d23a220, 0x1959f: 0x6d402820, - 0x195a0: 0x6c844820, 0x195a1: 0x6c92d820, 0x195a2: 0x6cf3f620, 0x195a3: 0x6c826c20, - 0x195a4: 0x6c615e20, 0x195a5: 0x6c875220, 0x195a6: 0x6c84d820, - 0x195a8: 0x6cb30420, 0x195a9: 0x6d101020, 0x195aa: 0x6cec2e20, 0x195ab: 0x6ceb1a20, - 0x195ac: 0x6cae6e20, 0x195ae: 0x6d2fb420, 0x195af: 0x6c4b0220, - 0x195b1: 0x6d061e20, 0x195b2: 0x6ca38020, 0x195b3: 0x6cc3e420, - 0x195b4: 0x6ceff620, 0x195b5: 0x6d32e620, 0x195b6: 0x6c300e20, 0x195b7: 0x6cf00820, - 0x195b8: 0x6c0f6020, 0x195ba: 0x6c595820, 0x195bb: 0x6d08c020, - 0x195bc: 0x6d295620, 0x195bd: 0x6c877220, 0x195be: 0x6d0d6020, 0x195bf: 0x6c59ae20, - // Block 0x657, offset 0x195c0 - 0x195c0: 0x6d095820, 0x195c1: 0x6c554c20, 0x195c2: 0x6c05f820, 0x195c3: 0x6cc4c220, - 0x195c4: 0x6cfeba20, 0x195c5: 0x6cb38620, 0x195c6: 0x6c8a9820, 0x195c7: 0x6d388a20, - 0x195c8: 0x6d17ba20, 0x195c9: 0x6d06e220, 0x195ca: 0x6c960820, 0x195cb: 0x6c77be20, - 0x195cc: 0x6c1f5620, 0x195ce: 0x6ca35620, 0x195cf: 0x6c4e2220, - 0x195d0: 0x6c17a220, 0x195d1: 0x6c929220, 0x195d2: 0x6d2e0620, 0x195d3: 0x6cde7c20, - 0x195d4: 0x6c3da220, 0x195d5: 0x6c52c820, 0x195d6: 0x6d2ba020, 0x195d7: 0x6cbc0620, - 0x195d8: 0x6cdb5020, 0x195d9: 0x6cb1fa20, 0x195da: 0x6c49ba20, - 0x195dc: 0x6c5cd020, 0x195dd: 0x6c1e8020, 0x195df: 0x6c374420, - 0x195e0: 0x6c374620, 0x195e1: 0x6cc85a20, 0x195e2: 0x6cb6e220, 0x195e3: 0x6cd8ba20, - 0x195e4: 0x6c713620, 0x195e6: 0x6d0dbe20, 0x195e7: 0x6c058220, - 0x195e8: 0x6d131e20, 0x195e9: 0x6d3e6c20, 0x195ea: 0x6ca55220, 0x195eb: 0x6c20b220, - 0x195ec: 0x6c03c220, 0x195ed: 0x6c126c20, 0x195ee: 0x6ce42c20, 0x195ef: 0x6c4f1c20, - 0x195f0: 0x6d425220, 0x195f1: 0x6c03d420, 0x195f2: 0x6d301420, 0x195f3: 0x6cec2820, - 0x195f4: 0x6c44c420, 0x195f5: 0x6c098220, 0x195f6: 0x6c37ca20, 0x195f7: 0x6d3af820, - 0x195f8: 0x6cf50220, 0x195f9: 0x6cf19a20, 0x195fa: 0x6d369820, 0x195fb: 0x6d393c20, - 0x195fc: 0x6c929420, 0x195fd: 0x6cf1a020, 0x195fe: 0x6c4bdc20, 0x195ff: 0x6cc08e20, - // Block 0x658, offset 0x19600 - 0x19600: 0x6c7e9420, 0x19601: 0x6d292020, 0x19602: 0x6cda2820, 0x19603: 0x6c9dd420, - 0x19604: 0x6c2c0620, 0x19605: 0x6cb7ec20, 0x19606: 0x6c129a20, 0x19607: 0x6cb1bc20, - 0x19608: 0x6c887820, 0x19609: 0x6cd21020, 0x1960a: 0x6c8ff620, 0x1960b: 0x6cdad620, - 0x1960c: 0x6cb73220, 0x1960d: 0x6d25fa20, 0x1960e: 0x6c3c9e20, 0x1960f: 0x6d056820, - 0x19610: 0x6c73f620, 0x19611: 0x6c2c3020, 0x19612: 0x6cb14820, 0x19613: 0x6c494a20, - 0x19614: 0x6ca98620, 0x19615: 0x6cc5d220, 0x19616: 0x6d321c20, 0x19617: 0x6c412e20, - 0x19618: 0x6cb08a20, 0x19619: 0x6ce05420, 0x1961a: 0x6c179220, 0x1961b: 0x6c217220, - 0x1961c: 0x6c508e20, 0x1961d: 0x6d3b7220, 0x1961e: 0x6ca0ec20, 0x1961f: 0x6c0ce020, - 0x19620: 0x6cb75e20, 0x19621: 0x6cd34620, 0x19622: 0x6c08ca20, 0x19623: 0x6c740620, - 0x19624: 0x6cd8a420, 0x19626: 0x6c485220, 0x19627: 0x6ca32a20, - 0x19628: 0x6c5b4e20, 0x19629: 0x6cf5ca20, 0x1962a: 0x6c37c820, 0x1962b: 0x6d04ca20, - 0x1962c: 0x6ca1ca20, 0x1962e: 0x6cf77220, 0x1962f: 0x6d360220, - 0x19630: 0x6cc8fc20, 0x19631: 0x6c711a20, 0x19632: 0x6c2e9420, 0x19633: 0x6d30f420, - 0x19634: 0x6cced820, 0x19635: 0x6c9bd220, 0x19636: 0x6c098420, 0x19637: 0x6c4eb420, - 0x19638: 0x6d210420, 0x19639: 0x6cfcb820, 0x1963a: 0x6cacd420, 0x1963b: 0x6ca5a620, - 0x1963c: 0x6c119820, 0x1963d: 0x6c109c20, 0x1963f: 0x6cb70020, - // Block 0x659, offset 0x19640 - 0x19640: 0x6c620820, 0x19641: 0x6d3d6420, 0x19642: 0x6c925e20, 0x19643: 0x6c75c220, - 0x19644: 0x6cfccc20, 0x19645: 0x6cf62620, 0x19646: 0x6c113220, 0x19647: 0x6cf1e220, - 0x19648: 0x6d346a20, 0x19649: 0x6d3f5820, 0x1964a: 0x6c7d6820, 0x1964b: 0x6c231a20, - 0x1964c: 0x6ce4f820, 0x1964d: 0x6c1f5820, 0x1964e: 0x6c2b3620, 0x1964f: 0x6c218220, - 0x19650: 0x6cbfb620, 0x19651: 0x6d306220, 0x19652: 0x6d2be220, 0x19653: 0x6cc75420, - 0x19654: 0x6c0d7c20, 0x19655: 0x6c605c20, 0x19656: 0x6cf65420, 0x19657: 0x6d39b220, - 0x19658: 0x6c746a20, 0x19659: 0x6c440a20, 0x1965a: 0x6c5eee20, 0x1965b: 0x6c265620, - 0x1965c: 0x6c187c20, 0x1965d: 0x6cddce20, 0x1965e: 0x6cc92820, 0x1965f: 0x6cfdf420, - 0x19660: 0x6c5a5c20, 0x19661: 0x6cb65020, 0x19662: 0x6d3b1820, 0x19663: 0x6cdcf620, - 0x19664: 0x6c146c20, 0x19665: 0x6cf25a20, 0x19666: 0x6c781a20, 0x19667: 0x6c77c420, - 0x19668: 0x6c47b820, 0x19669: 0x6c410220, 0x1966a: 0x6c396620, 0x1966b: 0x6c234c20, - 0x1966c: 0x6c128c20, 0x1966d: 0x6d36bc20, 0x1966e: 0x6c15d820, 0x1966f: 0x6c825420, - 0x19670: 0x6d04ee20, 0x19671: 0x6d2d4820, 0x19672: 0x6d308220, 0x19673: 0x6d218a20, - 0x19674: 0x6c4b7020, 0x19675: 0x6c45ae20, 0x19676: 0x6d295020, 0x19677: 0x6c27fe20, - 0x19678: 0x6c5e0020, 0x19679: 0x6cd9e220, 0x1967a: 0x6ce0ac20, 0x1967b: 0x6c473020, - 0x1967c: 0x6cf8e620, 0x1967d: 0x6c978020, 0x1967e: 0x6c346620, 0x1967f: 0x6c02f420, - // Block 0x65a, offset 0x19680 - 0x19680: 0x6cb0c420, 0x19681: 0x6cf52a20, 0x19682: 0x6c007c20, 0x19683: 0x6c9b7620, - 0x19684: 0x6cb0d220, 0x19685: 0x6c9b7820, 0x19686: 0x6d103a20, 0x19687: 0x6d374420, - 0x19688: 0x6c0fac20, 0x19689: 0x6d1cc820, 0x1968a: 0x6cef6020, 0x1968b: 0x6cc50e20, - 0x1968c: 0x6c7ffa20, 0x1968d: 0x6d0c4620, 0x1968e: 0x6c161220, 0x1968f: 0x6cc33620, - 0x19690: 0x6d31d820, 0x19691: 0x6cb46a20, 0x19693: 0x6cdf2a20, - 0x19694: 0x6c3a9e20, 0x19695: 0x6cd55620, 0x19697: 0x6c298820, - 0x19698: 0x6c25f220, 0x19699: 0x6cdf9c20, 0x1969a: 0x6ce49820, 0x1969b: 0x6c1ba020, - 0x1969c: 0x6cde9020, 0x1969d: 0x6c642a20, 0x1969e: 0x6cd75e20, 0x1969f: 0x6c5a3220, - 0x196a0: 0x6c8a6820, 0x196a3: 0x6c185e20, - 0x196a4: 0x6c6cf820, 0x196a5: 0x6c360020, 0x196a6: 0x6c464620, 0x196a7: 0x6c3e6420, - 0x196a8: 0x6c34f020, 0x196aa: 0x6c363e20, 0x196ab: 0x6c07f020, - 0x196ac: 0x6ce1ca20, 0x196ad: 0x6c2c6020, 0x196af: 0x6c2c7020, - 0x196b0: 0x6c10a620, 0x196b1: 0x6ced3820, 0x196b2: 0x6d2fd020, 0x196b3: 0x6c950620, - 0x196b4: 0x6cb62620, 0x196b5: 0x6ca2a420, 0x196b6: 0x6cba6c20, - 0x196b8: 0x6d3fae20, 0x196b9: 0x6cd9d620, 0x196bb: 0x6d1f6220, - 0x196bc: 0x6d38ac20, 0x196bd: 0x6cdea620, 0x196bf: 0x6cdb3c20, - // Block 0x65b, offset 0x196c0 - 0x196c0: 0x6c10c220, 0x196c1: 0x6cf7aa20, 0x196c2: 0x6c67c620, 0x196c3: 0x6c12ba20, - 0x196c4: 0x6c406620, 0x196c5: 0x6ce2b820, 0x196c6: 0x6c185220, 0x196c7: 0x6c407820, - 0x196c8: 0x6c3ae020, 0x196c9: 0x6cf48c20, 0x196ca: 0x6cf5ac20, 0x196cb: 0x6d101620, - 0x196cc: 0x6ca04820, 0x196cd: 0x6cad2020, 0x196ce: 0x6c98a620, 0x196cf: 0x6ccbba20, - 0x196d0: 0x6c9bb420, 0x196d1: 0x6c12a820, 0x196d2: 0x6ce57220, 0x196d3: 0x6c764820, - 0x196d4: 0x6c043620, 0x196d5: 0x6cffa620, 0x196d6: 0x6d032620, 0x196d7: 0x6cb76220, - 0x196da: 0x6cceb020, 0x196db: 0x6c590a20, - 0x196dc: 0x6ca96a20, 0x196dd: 0x6cff7820, 0x196de: 0x6c18b220, 0x196df: 0x6c27ce20, - 0x196e0: 0x6c3c3820, 0x196e1: 0x6d1ad420, 0x196e2: 0x6c01fa20, 0x196e3: 0x6cc4be20, - 0x196e4: 0x6cc64420, 0x196e5: 0x6c976020, 0x196e6: 0x6c394c20, 0x196e7: 0x6cc10220, - 0x196e8: 0x6cd2ce20, 0x196e9: 0x6c511820, 0x196ea: 0x6c0b9220, 0x196eb: 0x6c276220, - 0x196ec: 0x6ca11420, 0x196ed: 0x6c2aca20, - 0x196f0: 0x6c7ba020, 0x196f2: 0x6c144220, 0x196f3: 0x6c349620, - 0x196f4: 0x6d1fd220, 0x196f5: 0x6c504020, 0x196f7: 0x6c486020, - 0x196f8: 0x6d095c20, 0x196f9: 0x6c833620, 0x196fa: 0x6c6c9220, 0x196fb: 0x6cb70220, - 0x196fc: 0x6cc11020, 0x196fd: 0x6cee2220, 0x196fe: 0x6d13f620, 0x196ff: 0x6c89e620, - // Block 0x65c, offset 0x19700 - 0x19702: 0x6d0cb020, 0x19703: 0x6d180220, - 0x19704: 0x6d1a7620, 0x19705: 0x6cb60020, 0x19706: 0x6d306420, 0x19707: 0x6cf8a620, - 0x19708: 0x6d180420, 0x19709: 0x6d128620, 0x1970a: 0x6cf3d820, 0x1970b: 0x6d33fa20, - 0x1970c: 0x6d366a20, 0x1970d: 0x6c4e5a20, 0x1970e: 0x6c21c820, 0x1970f: 0x6c3d8420, - 0x19710: 0x6c215220, 0x19711: 0x6cb2b620, 0x19712: 0x6c7afa20, 0x19713: 0x6c1dc220, - 0x19715: 0x6ceb8a20, 0x19716: 0x6cbf4220, 0x19717: 0x6c233020, - 0x19718: 0x6c42d220, 0x19719: 0x6c7acc20, 0x1971a: 0x6cc12620, 0x1971b: 0x6cc12820, - 0x1971c: 0x6d340020, 0x1971d: 0x6c9c0a20, 0x1971e: 0x6c865220, 0x1971f: 0x6d389c20, - 0x19720: 0x6cde8420, 0x19721: 0x6d340220, 0x19722: 0x6c482420, 0x19723: 0x6c899c20, - 0x19724: 0x6c54ee20, 0x19725: 0x6c7e8820, 0x19726: 0x6c2d2620, 0x19727: 0x6c22d820, - 0x19728: 0x6d1bde20, 0x1972b: 0x6cb62a20, - 0x1972d: 0x6c144620, 0x1972e: 0x6c99b020, 0x1972f: 0x6c31b020, - 0x19730: 0x6d19fe20, 0x19731: 0x6c148820, 0x19732: 0x6cc8dc20, 0x19733: 0x6c524020, - 0x19734: 0x6cc87820, 0x19735: 0x6c3d9420, 0x19736: 0x6c7f4e20, 0x19737: 0x6d043420, - 0x19738: 0x6c64e020, 0x19739: 0x6d186220, 0x1973a: 0x6c9a6820, - 0x1973c: 0x6c987620, 0x1973d: 0x6c627e20, 0x1973e: 0x6cdd3a20, 0x1973f: 0x6c4f0c20, - // Block 0x65d, offset 0x19740 - 0x19741: 0x6c868420, 0x19742: 0x6d3f2220, 0x19743: 0x6d412820, - 0x19744: 0x6d114820, 0x19745: 0x6c43a820, 0x19746: 0x6c844c20, 0x19747: 0x6cb71c20, - 0x19748: 0x6c462420, 0x19749: 0x6c868620, 0x1974a: 0x6c0db220, 0x1974b: 0x6cdd3c20, - 0x1974e: 0x6cdb3e20, 0x1974f: 0x6c1e4c20, - 0x19750: 0x6c650220, 0x19751: 0x6d010020, 0x19752: 0x6c076420, 0x19753: 0x6d066020, - 0x19754: 0x6c6eb620, 0x19755: 0x6cb46220, 0x19756: 0x6c8d7220, 0x19757: 0x6cfdd620, - 0x19758: 0x6d42ac20, 0x19759: 0x6c2e4420, 0x1975a: 0x6c216a20, 0x1975b: 0x6cbeb620, - 0x1975c: 0x6ca41020, 0x1975d: 0x6d2cfe20, 0x1975e: 0x6c940820, 0x1975f: 0x6d157420, - 0x19760: 0x6cceba20, 0x19761: 0x6d21ba20, 0x19762: 0x6c575c20, 0x19763: 0x6c845e20, - 0x19764: 0x6cabce20, 0x19767: 0x6c846020, - 0x1976a: 0x6cd6e620, - 0x1976c: 0x6d18d620, 0x1976d: 0x6ca95c20, 0x1976e: 0x6cd83820, 0x1976f: 0x6c7ab020, - 0x19770: 0x6c407a20, 0x19771: 0x6d142820, 0x19772: 0x6c2ab820, 0x19773: 0x6cc49620, - 0x19774: 0x6c131e20, 0x19776: 0x6ce39820, 0x19777: 0x6cbdb420, - 0x19778: 0x6c0c8820, 0x19779: 0x6cdca420, 0x1977a: 0x6cef4c20, 0x1977b: 0x6c33bc20, - 0x1977c: 0x6ccb7a20, 0x1977d: 0x6c00f620, 0x1977e: 0x6cb7f420, 0x1977f: 0x6d420e20, - // Block 0x65e, offset 0x19780 - 0x19780: 0x6c7b7620, 0x19781: 0x6c3a7420, 0x19783: 0x6d1b9620, - 0x19785: 0x6ccaea20, 0x19786: 0x6c314820, 0x19787: 0x6c5c8220, - 0x19788: 0x6d026220, 0x19789: 0x6d2b1c20, 0x1978a: 0x6ce03420, 0x1978b: 0x6ce15a20, - 0x1978c: 0x6d374620, 0x1978d: 0x6d191620, 0x1978e: 0x6c3f1c20, 0x1978f: 0x6c359420, - 0x19791: 0x6c75fc20, 0x19792: 0x6c638e20, 0x19793: 0x6c141220, - 0x19794: 0x6cfbca20, 0x19795: 0x6c981420, 0x19797: 0x6c0aba20, - 0x19798: 0x6c8d9220, 0x19799: 0x6c6b7620, 0x1979a: 0x6c7d3620, 0x1979b: 0x6c63f620, - 0x1979d: 0x6c19a420, 0x1979e: 0x6c813420, 0x1979f: 0x6d03b420, - 0x197a0: 0x6c3af620, 0x197a1: 0x6c936e20, 0x197a2: 0x6d2c9e20, 0x197a3: 0x6c51a420, - 0x197a4: 0x6c5f9420, 0x197a5: 0x6ca66220, 0x197a6: 0x6d1cd620, 0x197a7: 0x6d002e20, - 0x197a8: 0x6ce2d820, 0x197a9: 0x6c81c820, 0x197aa: 0x6d2b2820, 0x197ab: 0x6c7cba20, - 0x197ad: 0x6cb9e620, 0x197ae: 0x6c719020, 0x197af: 0x6cb18c20, - 0x197b0: 0x6c38f220, 0x197b1: 0x6ce80020, 0x197b2: 0x6c8c4020, 0x197b3: 0x6c9cc020, - 0x197b4: 0x6d3de820, 0x197b5: 0x6d013020, 0x197b6: 0x6c56ee20, 0x197b7: 0x6c9cc220, - 0x197b8: 0x6c6a4820, 0x197b9: 0x6d28e220, 0x197ba: 0x6c23d620, 0x197bb: 0x6c87b220, - 0x197bc: 0x6cc4a020, 0x197bd: 0x6d3a4a20, 0x197be: 0x6d1ab820, 0x197bf: 0x6c4f4020, - // Block 0x65f, offset 0x197c0 - 0x197c1: 0x6d198620, 0x197c2: 0x6c948020, 0x197c3: 0x6d274420, - 0x197c4: 0x6cc4a420, 0x197c5: 0x6c8df620, 0x197c6: 0x6ca78620, 0x197c7: 0x6d24b620, - 0x197c8: 0x6caaa020, 0x197ca: 0x6d174020, 0x197cb: 0x6caaa420, - 0x197cc: 0x6d174220, 0x197cd: 0x6cb98020, 0x197ce: 0x6cf9b620, 0x197cf: 0x6c1edc20, - 0x197d0: 0x6d1a6820, 0x197d1: 0x6c9d4820, 0x197d2: 0x6cf65820, 0x197d3: 0x6ca35a20, - 0x197d4: 0x6c76de20, 0x197d5: 0x6d412020, 0x197d6: 0x6cf9da20, 0x197d7: 0x6d0cc620, - 0x197d8: 0x6ce8f420, 0x197d9: 0x6ce30020, 0x197da: 0x6cf38820, 0x197db: 0x6cdda820, - 0x197dc: 0x6d1aaa20, 0x197dd: 0x6c1d0a20, 0x197de: 0x6d38de20, 0x197df: 0x6c988620, - 0x197e0: 0x6d254820, 0x197e1: 0x6caa8020, 0x197e2: 0x6c9e7020, 0x197e3: 0x6d2a4820, - 0x197e4: 0x6ced1420, 0x197e5: 0x6c83ca20, 0x197e6: 0x6cc10420, 0x197e7: 0x6ca33a20, - 0x197e8: 0x6cd26220, 0x197e9: 0x6c098c20, 0x197ea: 0x6d3e2a20, 0x197eb: 0x6c056c20, - 0x197ed: 0x6c736c20, 0x197ee: 0x6cfde620, 0x197ef: 0x6c7c7c20, - 0x197f0: 0x6cac2c20, 0x197f1: 0x6c7ba220, 0x197f2: 0x6d0a1220, 0x197f3: 0x6d2cc620, - 0x197f4: 0x6d10fc20, 0x197f5: 0x6c7d6a20, 0x197f6: 0x6c5acc20, 0x197f7: 0x6cf65a20, - 0x197f8: 0x6c357420, 0x197f9: 0x6d0fcc20, 0x197fa: 0x6ce59020, 0x197fb: 0x6d1f4e20, - 0x197fc: 0x6c746c20, 0x197fd: 0x6c83f620, 0x197ff: 0x6c842020, - // Block 0x660, offset 0x19800 - 0x19800: 0x6c198020, 0x19801: 0x6c624e20, 0x19802: 0x6c562a20, 0x19803: 0x6d2e7020, - 0x19804: 0x6c3f7a20, 0x19805: 0x6c16ba20, 0x19806: 0x6c495c20, 0x19807: 0x6c714420, - 0x19808: 0x6c9b3220, 0x19809: 0x6c167820, 0x1980a: 0x6ce0a620, 0x1980b: 0x6ca1e220, - 0x1980c: 0x6d039e20, 0x1980d: 0x6c852620, 0x1980e: 0x6d0c2a20, 0x1980f: 0x6cd9da20, - 0x19810: 0x6cd1ee20, 0x19811: 0x6d186420, 0x19812: 0x6c0e2a20, 0x19813: 0x6c234e20, - 0x19814: 0x6c542c20, 0x19815: 0x6ced3a20, 0x19816: 0x6c2c9620, 0x19817: 0x6c5f4420, - 0x19818: 0x6c443820, 0x19819: 0x6c4e3420, 0x1981a: 0x6c0f6220, 0x1981b: 0x6d04f420, - 0x1981c: 0x6c8ea220, 0x1981d: 0x6c11ae20, 0x1981e: 0x6c11b020, 0x1981f: 0x6d18d820, - 0x19820: 0x6d082c20, 0x19821: 0x6d0ce020, 0x19822: 0x6d2a5c20, 0x19823: 0x6c4f1e20, - 0x19824: 0x6d1e0020, 0x19825: 0x6d3fc820, 0x19827: 0x6c775820, - 0x19828: 0x6d21bc20, 0x19829: 0x6cb53820, 0x1982a: 0x6d310620, 0x1982b: 0x6c967e20, - 0x1982e: 0x6cd6e820, 0x1982f: 0x6c6d6a20, - 0x19830: 0x6c49b020, 0x19831: 0x6cb46c20, 0x19832: 0x6c8c7220, - 0x19834: 0x6ce69c20, 0x19835: 0x6c679420, 0x19836: 0x6c7eac20, 0x19837: 0x6d191820, - 0x19838: 0x6d1dce20, 0x19839: 0x6c22ec20, 0x1983a: 0x6d0dfe20, 0x1983b: 0x6c6b7020, - 0x1983c: 0x6d09c820, 0x1983d: 0x6cf11020, 0x1983e: 0x6cfc4c20, 0x1983f: 0x6ca93620, - // Block 0x661, offset 0x19840 - 0x19840: 0x6c408c20, 0x19841: 0x6c445c20, 0x19843: 0x6ca19c20, - 0x19844: 0x6d3b4620, 0x19845: 0x6ca38a20, 0x19846: 0x6cfc5620, 0x19847: 0x6cf1c420, - 0x19848: 0x6c877820, 0x19849: 0x6c11c220, 0x1984a: 0x6c9f1c20, 0x1984b: 0x6c655220, - 0x1984c: 0x6ca6e220, 0x1984d: 0x6c14b020, 0x1984e: 0x6cecb020, 0x1984f: 0x6d069c20, - 0x19850: 0x6caa8220, 0x19851: 0x6c973020, 0x19852: 0x6d417020, 0x19853: 0x6c770c20, - 0x19854: 0x6c761620, 0x19855: 0x6c4f7020, - 0x19858: 0x6d23f420, 0x19859: 0x6cf11220, 0x1985a: 0x6d39fa20, - 0x1985d: 0x6d170a20, 0x1985f: 0x6c2dbc20, - 0x19860: 0x6c3e4420, 0x19861: 0x6c08d620, 0x19862: 0x6d3a6820, 0x19863: 0x6d3f0c20, - 0x19864: 0x6cd5cc20, 0x19865: 0x6cf9ba20, 0x19866: 0x6ca5e020, - 0x19868: 0x6c68fe20, 0x19869: 0x6d0a1420, 0x1986a: 0x6c1cc620, 0x1986b: 0x6caa2220, - 0x1986c: 0x6cc67e20, 0x1986d: 0x6d364220, 0x1986e: 0x6cca6e20, - 0x19870: 0x6cccf020, 0x19871: 0x6d237e20, 0x19873: 0x6c6c4e20, - 0x19875: 0x6c929c20, 0x19876: 0x6c4db020, 0x19877: 0x6c0cb220, - 0x19878: 0x6d183a20, 0x19879: 0x6d41c020, 0x1987a: 0x6d2e7220, 0x1987b: 0x6d23ac20, - 0x1987c: 0x6ced3c20, 0x1987d: 0x6ca5fe20, 0x1987e: 0x6c495e20, 0x1987f: 0x6c748420, - // Block 0x662, offset 0x19880 - 0x19880: 0x6c082820, 0x19881: 0x6c11a220, 0x19883: 0x6c351220, - 0x19884: 0x6cb7c620, 0x19885: 0x6d10b420, 0x19886: 0x6c7d1820, 0x19887: 0x6cc84820, - 0x19888: 0x6c542e20, 0x19889: 0x6d0a3820, 0x1988a: 0x6d020020, - 0x1988c: 0x6c7d1a20, 0x1988e: 0x6d00f020, 0x1988f: 0x6c0f6420, - 0x19890: 0x6c78d820, 0x19891: 0x6c24ec20, 0x19892: 0x6d074020, 0x19893: 0x6c042820, - 0x19894: 0x6cab5820, 0x19895: 0x6d400c20, 0x19897: 0x6ce42e20, - 0x19898: 0x6c1ef220, 0x19899: 0x6c1b5820, 0x1989a: 0x6ca7b420, 0x1989b: 0x6c49ac20, - 0x1989c: 0x6c3cbe20, 0x1989d: 0x6d023020, 0x1989e: 0x6c2aba20, 0x1989f: 0x6cef4e20, - 0x198a0: 0x6c74e220, 0x198a1: 0x6c7d2e20, 0x198a2: 0x6d2bb420, 0x198a3: 0x6cc9ac20, - 0x198a4: 0x6c34bc20, 0x198a5: 0x6c8d8420, 0x198a6: 0x6c9b9a20, - 0x198a8: 0x6c4cde20, 0x198a9: 0x6c9b9c20, 0x198aa: 0x6c8fec20, - 0x198ac: 0x6d1d5e20, 0x198ae: 0x6c49c620, 0x198af: 0x6c248820, - 0x198b0: 0x6c84e620, 0x198b1: 0x6c320c20, 0x198b3: 0x6c0bf220, - 0x198b5: 0x6cf62c20, 0x198b7: 0x6c2a6620, - 0x198b8: 0x6c2a6820, 0x198b9: 0x6cfcba20, 0x198ba: 0x6c880020, - 0x198bc: 0x6ccedc20, 0x198bd: 0x6d00b020, 0x198be: 0x6cd1c420, 0x198bf: 0x6cf09e20, - // Block 0x663, offset 0x198c0 - 0x198c2: 0x6c51d820, 0x198c3: 0x6d1f5a20, - 0x198c4: 0x6c92b220, 0x198c5: 0x6c7f5020, 0x198c6: 0x6d1d0e20, 0x198c7: 0x6cd14c20, - 0x198c8: 0x6c739220, 0x198c9: 0x6cb7e420, 0x198ca: 0x6c65ea20, 0x198cb: 0x6d285c20, - 0x198cd: 0x6cb7f620, 0x198cf: 0x6c8c7c20, - 0x198d0: 0x6c60ea20, 0x198d1: 0x6c970a20, 0x198d2: 0x6c208220, 0x198d3: 0x6ca74620, - 0x198d4: 0x6c0d6e20, 0x198d5: 0x6c87c020, 0x198d6: 0x6c8dfa20, 0x198d7: 0x6c427a20, - 0x198d8: 0x6c1a2020, 0x198d9: 0x6d07b020, 0x198da: 0x6cfc1a20, 0x198db: 0x6c558620, - 0x198dc: 0x6c088620, 0x198dd: 0x6d40d020, 0x198de: 0x6c271a20, 0x198df: 0x6c271c20, - 0x198e0: 0x6c5d3e20, 0x198e1: 0x6cc9d020, 0x198e2: 0x6c184420, 0x198e3: 0x6ce37c20, - 0x198e5: 0x6cab1a20, 0x198e6: 0x6d371420, 0x198e7: 0x6c8ebe20, - 0x198e8: 0x6c3aea20, 0x198e9: 0x6c695e20, 0x198ea: 0x6c493620, 0x198eb: 0x6cf7ba20, - 0x198ec: 0x6c8bf820, 0x198ed: 0x6d07f820, 0x198ee: 0x6cc62a20, 0x198ef: 0x6ce25a20, - 0x198f0: 0x6cb05820, 0x198f1: 0x6d032a20, 0x198f2: 0x6ccd7c20, 0x198f3: 0x6d360e20, - 0x198f4: 0x6cec3220, 0x198f5: 0x6ce81020, 0x198f6: 0x6ce46620, 0x198f7: 0x6d13e820, - 0x198f8: 0x6d019c20, 0x198f9: 0x6cb05c20, 0x198fa: 0x6d10ec20, 0x198fb: 0x6d10ee20, - 0x198fc: 0x6caa8620, 0x198fd: 0x6c503a20, 0x198fe: 0x6ca8e820, 0x198ff: 0x6d1b4a20, - // Block 0x664, offset 0x19900 - 0x19900: 0x6c390a20, 0x19901: 0x6ca3fa20, 0x19902: 0x6d109c20, 0x19903: 0x6ced7e20, - 0x19904: 0x6d25e820, 0x19905: 0x6cf9c820, 0x19906: 0x6d392c20, 0x19907: 0x6d25ea20, - 0x19908: 0x6cd38a20, 0x19909: 0x6c9e5a20, 0x1990a: 0x6cf62e20, 0x1990b: 0x6c621220, - 0x1990c: 0x6ce22a20, 0x1990d: 0x6c3ab020, 0x1990e: 0x6d096020, 0x1990f: 0x6ca5e820, - 0x19910: 0x6c224620, 0x19911: 0x6c9d4a20, 0x19912: 0x6c0ba220, - 0x19914: 0x6ca2e620, 0x19915: 0x6d238020, 0x19916: 0x6c366220, 0x19917: 0x6d353a20, - 0x19918: 0x6cc57420, 0x19919: 0x6d070020, 0x1991a: 0x6c94b020, 0x1991b: 0x6c5be820, - 0x1991c: 0x6d0a9620, 0x1991d: 0x6ca4b820, 0x1991e: 0x6c4eee20, 0x1991f: 0x6c63d620, - 0x19920: 0x6c312e20, 0x19921: 0x6c57b420, 0x19922: 0x6ce86c20, 0x19923: 0x6cb26220, - 0x19924: 0x6c244c20, 0x19925: 0x6cf68220, 0x19926: 0x6cd99820, 0x19927: 0x6c9c6c20, - 0x19928: 0x6d034420, 0x19929: 0x6cf51a20, 0x1992a: 0x6cbf5420, 0x1992b: 0x6d2edc20, - 0x1992c: 0x6ce23620, 0x1992d: 0x6d043620, 0x1992e: 0x6c701e20, 0x1992f: 0x6c728220, - 0x19930: 0x6c5d4020, 0x19931: 0x6ce36e20, 0x19932: 0x6c977420, 0x19933: 0x6d0ea420, - 0x19934: 0x6c5f2020, 0x19935: 0x6cd47a20, 0x19936: 0x6c82d620, 0x19937: 0x6ced4420, - 0x19938: 0x6c183820, 0x19939: 0x6c120a20, 0x1993a: 0x6c6c0620, 0x1993b: 0x6d205820, - 0x1993c: 0x6c5b6620, 0x1993d: 0x6d2c9420, 0x1993e: 0x6cdb4820, 0x1993f: 0x6c444220, - // Block 0x665, offset 0x19940 - 0x19940: 0x6ca51a20, 0x19941: 0x6cf8f820, 0x19943: 0x6c331a20, - 0x19944: 0x6c1b6420, 0x19945: 0x6cef5020, 0x19946: 0x6d30ae20, 0x19947: 0x6c4bf420, - 0x19948: 0x6c175620, 0x19949: 0x6c1ae020, 0x1994a: 0x6d2a2820, 0x1994b: 0x6c5c8420, - 0x1994c: 0x6c944820, 0x1994d: 0x6c8a4620, 0x1994e: 0x6c818a20, 0x1994f: 0x6cead820, - 0x19950: 0x6c5b0420, 0x19951: 0x6cf54620, 0x19952: 0x6c02fa20, 0x19953: 0x6ccf8620, - 0x19954: 0x6cdc0220, 0x19955: 0x6c974c20, 0x19956: 0x6ce0b620, 0x19957: 0x6d035a20, - 0x19958: 0x6c6e4020, 0x19959: 0x6c017620, 0x1995a: 0x6cdee220, 0x1995b: 0x6c156420, - 0x1995c: 0x6cf11a20, 0x1995d: 0x6ce98420, 0x1995e: 0x6c62dc20, 0x1995f: 0x6c18fa20, - 0x19960: 0x6c185820, 0x19961: 0x6d247c20, 0x19962: 0x6cfc6020, 0x19963: 0x6d02d020, - 0x19967: 0x6ca51c20, - 0x19969: 0x6d0f1020, 0x1996a: 0x6cc01e20, 0x1996b: 0x6c675820, - 0x1996c: 0x6cd95c20, 0x1996d: 0x6c75c420, 0x1996e: 0x6c89fc20, 0x1996f: 0x6c714e20, - 0x19971: 0x6c97d220, 0x19972: 0x6c8b7220, - 0x19974: 0x6c1f3820, 0x19975: 0x6c1bae20, 0x19976: 0x6cfdcc20, 0x19977: 0x6cbd3a20, - 0x19978: 0x6c9a6220, 0x19979: 0x6cd5fa20, 0x1997a: 0x6c149020, 0x1997b: 0x6c1bc420, - 0x1997c: 0x6c474620, 0x1997d: 0x6d21a820, 0x1997e: 0x6d1a0420, - // Block 0x666, offset 0x19980 - 0x19980: 0x6c8eac20, 0x19981: 0x6c818020, 0x19982: 0x6cd61e20, 0x19983: 0x6d30be20, - 0x19984: 0x6cd6c420, 0x19985: 0x6c5aac20, - 0x19988: 0x6c364620, 0x1998a: 0x6ccc7020, 0x1998b: 0x6d402e20, - 0x1998c: 0x6c74a620, 0x1998d: 0x6c75ec20, 0x1998e: 0x6ce93820, 0x1998f: 0x6c90ca20, - 0x19990: 0x6cef5c20, 0x19991: 0x6c1cf420, 0x19992: 0x6d3b4820, 0x19993: 0x6c8b7420, - 0x19995: 0x6d30cc20, 0x19996: 0x6d2f8c20, - 0x19998: 0x6d178020, 0x19999: 0x6c1e5c20, 0x1999a: 0x6ca5ea20, 0x1999b: 0x6c0e7820, - 0x1999c: 0x6cdb8620, 0x1999d: 0x6d160620, 0x1999e: 0x6c506020, 0x1999f: 0x6d0bc820, - 0x199a0: 0x6c58ac20, 0x199a1: 0x6c980a20, 0x199a2: 0x6c980c20, 0x199a3: 0x6cc1f220, - 0x199a4: 0x6c81c420, 0x199a5: 0x6c4ffe20, 0x199a6: 0x6d37d620, 0x199a7: 0x6c9f4e20, - 0x199a8: 0x6cfb5620, 0x199a9: 0x6d324420, 0x199aa: 0x6cd55e20, 0x199ab: 0x6d423e20, - 0x199ac: 0x6d3afc20, 0x199ad: 0x6c46aa20, 0x199ae: 0x6d089820, 0x199af: 0x6d17c620, - 0x199b0: 0x6d366e20, 0x199b1: 0x6d00c620, 0x199b2: 0x6c6d1e20, 0x199b3: 0x6c11a420, - 0x199b5: 0x6c10ae20, 0x199b6: 0x6c896a20, 0x199b7: 0x6d341020, - 0x199b8: 0x6c626c20, 0x199b9: 0x6ced4620, 0x199ba: 0x6c49a420, 0x199bb: 0x6c70bc20, - 0x199bc: 0x6c6ea220, 0x199bd: 0x6c00c420, 0x199be: 0x6c404220, 0x199bf: 0x6c4b7220, - // Block 0x667, offset 0x199c0 - 0x199c0: 0x6c548020, 0x199c1: 0x6d0ec620, 0x199c2: 0x6cc87e20, 0x199c3: 0x6d36ee20, - 0x199c4: 0x6c0c9420, 0x199c5: 0x6d157620, 0x199c6: 0x6cdd9e20, 0x199c7: 0x6c2efa20, - 0x199c8: 0x6c4b9620, 0x199c9: 0x6cd18020, 0x199ca: 0x6d0ab820, 0x199cb: 0x6c194620, - 0x199cc: 0x6ccf2020, 0x199cd: 0x6cbe8a20, - 0x199d0: 0x6c218a20, 0x199d1: 0x6c533820, 0x199d2: 0x6c308220, 0x199d3: 0x6c198220, - 0x199d4: 0x6ceff820, 0x199d5: 0x6cc7ea20, 0x199d6: 0x6cd55420, 0x199d7: 0x6c10f220, - 0x199d8: 0x6c600e20, 0x199d9: 0x6d28b620, 0x199da: 0x6cb5d420, 0x199db: 0x6d0c0220, - 0x199dc: 0x6c3fe820, 0x199dd: 0x6d235820, 0x199de: 0x6c3e9020, 0x199df: 0x6cb39220, - 0x199e0: 0x6d33e620, 0x199e1: 0x6ce06220, 0x199e2: 0x6d424020, 0x199e3: 0x6c17ec20, - 0x199e4: 0x6cc19a20, 0x199e5: 0x6d204e20, 0x199e6: 0x6c514a20, 0x199e7: 0x6c547420, - 0x199e8: 0x6c4b0e20, 0x199e9: 0x6c366620, 0x199ea: 0x6c67ea20, 0x199eb: 0x6d27f620, - 0x199ec: 0x6ce83020, 0x199ed: 0x6c259820, 0x199ee: 0x6ce87020, 0x199ef: 0x6c402a20, - 0x199f0: 0x6d424c20, 0x199f1: 0x6c558820, 0x199f3: 0x6c0f4a20, - 0x199f4: 0x6d2f6e20, 0x199f5: 0x6c754a20, 0x199f6: 0x6ce0d020, 0x199f7: 0x6c74aa20, - 0x199f8: 0x6c404620, 0x199f9: 0x6c5a0220, 0x199fa: 0x6c211820, 0x199fb: 0x6d1e5e20, - 0x199fc: 0x6c20f020, 0x199fd: 0x6cdda020, 0x199fe: 0x6c1b5c20, 0x199ff: 0x6cb92a20, - // Block 0x668, offset 0x19a00 - 0x19a00: 0x6c10fc20, 0x19a01: 0x6cff9c20, 0x19a02: 0x6c979220, 0x19a03: 0x6c117c20, - 0x19a04: 0x6cb7f820, 0x19a05: 0x6c66f620, 0x19a06: 0x6c0a9a20, 0x19a07: 0x6c5f8420, - 0x19a08: 0x6d34b820, 0x19a09: 0x6d3a3620, 0x19a0a: 0x6cc1f420, 0x19a0b: 0x6d2e3420, - 0x19a0c: 0x6c60fa20, 0x19a0d: 0x6c0b2420, 0x19a0f: 0x6c878020, - 0x19a10: 0x6c879420, 0x19a11: 0x6d272a20, 0x19a12: 0x6cc34020, 0x19a13: 0x6c195a20, - 0x19a14: 0x6c3fcc20, 0x19a15: 0x6c144020, 0x19a16: 0x6ce19c20, 0x19a17: 0x6cd37420, - 0x19a18: 0x6c4f9620, 0x19a19: 0x6cbcbe20, 0x19a1a: 0x6cb5d620, 0x19a1b: 0x6c0efc20, - 0x19a1c: 0x6ca33e20, 0x19a1d: 0x6ce82a20, 0x19a1e: 0x6c1e7a20, 0x19a1f: 0x6c243c20, - 0x19a20: 0x6d26c020, 0x19a21: 0x6d33e820, 0x19a22: 0x6c18cc20, 0x19a23: 0x6c1f4a20, - 0x19a24: 0x6c09b420, 0x19a25: 0x6c9b1c20, 0x19a26: 0x6c038020, 0x19a27: 0x6ce4a220, - 0x19a28: 0x6c9f5a20, 0x19a29: 0x6c8aba20, 0x19a2a: 0x6c3ccc20, 0x19a2b: 0x6c197420, - 0x19a2c: 0x6cc0b820, 0x19a2d: 0x6ce58820, 0x19a2e: 0x6c3eac20, 0x19a2f: 0x6c7e0820, - 0x19a30: 0x6c65b820, - 0x19a34: 0x6d325620, 0x19a35: 0x6cc08a20, 0x19a36: 0x6d42a820, 0x19a37: 0x6c1c4c20, - 0x19a38: 0x6c7c9420, 0x19a39: 0x6c8b2420, 0x19a3a: 0x6c074a20, 0x19a3b: 0x6c326e20, - 0x19a3c: 0x6cf46c20, 0x19a3e: 0x6d3d9220, 0x19a3f: 0x6c92ba20, - // Block 0x669, offset 0x19a40 - 0x19a40: 0x6ce0d220, 0x19a42: 0x6c1eaa20, 0x19a43: 0x6c89a020, - 0x19a44: 0x6ce51820, 0x19a45: 0x6c7dbe20, 0x19a46: 0x6c16c420, 0x19a47: 0x6c74ac20, - 0x19a48: 0x6ce8ec20, 0x19a49: 0x6c594e20, 0x19a4a: 0x6c3aca20, 0x19a4b: 0x6c0a3c20, - 0x19a4d: 0x6cf97c20, 0x19a4e: 0x6cf31820, 0x19a4f: 0x6c628a20, - 0x19a50: 0x6cc27a20, 0x19a51: 0x6c7cdc20, 0x19a52: 0x6c55c220, 0x19a53: 0x6cbfca20, - 0x19a54: 0x6cdc7c20, 0x19a55: 0x6c10fa20, 0x19a57: 0x6cc0bc20, - 0x19a58: 0x6cb0c820, 0x19a59: 0x6cad1020, 0x19a5a: 0x6cec4020, 0x19a5b: 0x6d115620, - 0x19a5c: 0x6cc6c220, 0x19a5d: 0x6d09b620, 0x19a5e: 0x6c246c20, 0x19a5f: 0x6c2efc20, - 0x19a60: 0x6c1c8a20, 0x19a61: 0x6c25f620, 0x19a62: 0x6c9c1220, 0x19a63: 0x6d086420, - 0x19a64: 0x6c34be20, 0x19a65: 0x6c0d0420, 0x19a66: 0x6d310a20, 0x19a67: 0x6c1ec620, - 0x19a68: 0x6c164220, 0x19a69: 0x6c4b9e20, 0x19a6a: 0x6c32e620, 0x19a6b: 0x6d409420, - 0x19a6c: 0x6c2afe20, 0x19a6d: 0x6c7f3820, 0x19a6e: 0x6ce2da20, 0x19a6f: 0x6d272c20, - 0x19a70: 0x6cc34220, 0x19a71: 0x6d3a5020, 0x19a72: 0x6c8d1020, 0x19a73: 0x6c186c20, - 0x19a74: 0x6d31e020, 0x19a75: 0x6c400220, 0x19a76: 0x6ccf4e20, 0x19a77: 0x6ce5c620, - 0x19a78: 0x6c7ac820, 0x19a79: 0x6c004420, 0x19a7b: 0x6cbf5620, - 0x19a7c: 0x6cd61220, 0x19a7d: 0x6c4d3420, 0x19a7e: 0x6ccd5e20, 0x19a7f: 0x6cec7620, - // Block 0x66a, offset 0x19a80 - 0x19a80: 0x6d2e3620, 0x19a81: 0x6c904a20, 0x19a82: 0x6c6f6220, 0x19a83: 0x6c85b820, - 0x19a85: 0x6c210220, 0x19a86: 0x6cc66c20, 0x19a87: 0x6d26ac20, - 0x19a88: 0x6c743a20, 0x19a89: 0x6c776c20, 0x19a8a: 0x6c390c20, 0x19a8b: 0x6cb5da20, - 0x19a8c: 0x6c534220, 0x19a8d: 0x6c3e7220, 0x19a8e: 0x6c915220, 0x19a8f: 0x6c535820, - 0x19a90: 0x6ceb2a20, 0x19a91: 0x6c9f5c20, 0x19a92: 0x6ce4a420, 0x19a93: 0x6c737c20, - 0x19a94: 0x6cb70620, 0x19a95: 0x6d332620, 0x19a96: 0x6cbece20, 0x19a97: 0x6c45f220, - 0x19a98: 0x6ce4b620, 0x19a99: 0x6c80dc20, 0x19a9a: 0x6c99a620, 0x19a9b: 0x6d1b6a20, - 0x19a9c: 0x6c92c020, 0x19a9d: 0x6d250e20, 0x19a9e: 0x6c715420, 0x19a9f: 0x6cb0b820, - 0x19aa1: 0x6d00f420, 0x19aa2: 0x6c0bbe20, 0x19aa3: 0x6c5cd820, - 0x19aa4: 0x6d39cc20, 0x19aa5: 0x6cc6c820, 0x19aa6: 0x6cca8e20, 0x19aa7: 0x6cf38420, - 0x19aa8: 0x6c144e20, 0x19aa9: 0x6c795820, 0x19aaa: 0x6ccdc420, 0x19aab: 0x6caede20, - 0x19aac: 0x6c980e20, 0x19aad: 0x6d050620, 0x19aaf: 0x6c237020, - 0x19ab0: 0x6c796020, 0x19ab1: 0x6d3bb220, 0x19ab2: 0x6c154620, 0x19ab3: 0x6cd84220, - 0x19ab4: 0x6c1cf620, 0x19ab5: 0x6cdcae20, 0x19ab6: 0x6c076e20, 0x19ab7: 0x6c769e20, - 0x19ab9: 0x6d376020, 0x19aba: 0x6cf12620, 0x19abb: 0x6c9f8420, - 0x19abc: 0x6c8db220, 0x19abd: 0x6d414220, 0x19abe: 0x6ca8d420, 0x19abf: 0x6c8dfc20, - // Block 0x66b, offset 0x19ac0 - 0x19ac0: 0x6cb77420, 0x19ac1: 0x6d26b020, 0x19ac3: 0x6d186820, - 0x19ac4: 0x6cf82220, 0x19ac5: 0x6c18d820, 0x19ac7: 0x6cc71e20, - 0x19ac8: 0x6c18f820, 0x19ac9: 0x6ca9da20, 0x19aca: 0x6d1ef220, 0x19acb: 0x6c618c20, - 0x19acc: 0x6c0ebe20, 0x19acd: 0x6c39ca20, - 0x19ad0: 0x6c242220, 0x19ad1: 0x6c2be820, 0x19ad2: 0x6c684020, 0x19ad3: 0x6d20fc20, - 0x19ad4: 0x6c50fe20, 0x19ad5: 0x6d06b220, 0x19ad6: 0x6d22f820, 0x19ad7: 0x6cc0f620, - 0x19ad9: 0x6c044420, 0x19ada: 0x6c44cc20, 0x19adb: 0x6c6f0e20, - 0x19add: 0x6d0bb820, 0x19ade: 0x6cd5de20, 0x19adf: 0x6d1f3e20, - 0x19ae0: 0x6cd98e20, 0x19ae1: 0x6d130820, 0x19ae2: 0x6c125820, 0x19ae3: 0x6d112a20, - 0x19ae4: 0x6cd5fc20, 0x19ae5: 0x6d0cba20, 0x19ae6: 0x6cd67220, 0x19ae7: 0x6c8aa220, - 0x19ae8: 0x6c235020, 0x19ae9: 0x6d23d420, 0x19aea: 0x6c0f6620, 0x19aeb: 0x6cdbfe20, - 0x19aed: 0x6d0eca20, 0x19aee: 0x6c834820, 0x19aef: 0x6c8bf420, - 0x19af0: 0x6ce30220, 0x19af1: 0x6c31de20, 0x19af2: 0x6d272e20, 0x19af3: 0x6c611620, - 0x19af5: 0x6d278620, - 0x19af8: 0x6c706220, 0x19af9: 0x6c71a820, 0x19afa: 0x6c1e5820, 0x19afb: 0x6c18ac20, - 0x19afc: 0x6c457820, 0x19afd: 0x6cfe4220, 0x19afe: 0x6cfbee20, 0x19aff: 0x6c011c20, - // Block 0x66c, offset 0x19b00 - 0x19b00: 0x6c4ae020, 0x19b01: 0x6d223220, 0x19b02: 0x6c82bc20, - 0x19b04: 0x6ce89c20, 0x19b05: 0x6c18b820, 0x19b06: 0x6d03e020, 0x19b07: 0x6cc03e20, - 0x19b08: 0x6c4f9a20, 0x19b0a: 0x6c292c20, 0x19b0b: 0x6c112e20, - 0x19b0c: 0x6c2bf420, 0x19b0d: 0x6d0d7020, 0x19b0e: 0x6d3e3020, - 0x19b10: 0x6d1bc020, 0x19b11: 0x6c14fa20, 0x19b13: 0x6c840020, - 0x19b14: 0x6cdd7e20, 0x19b15: 0x6c969c20, 0x19b16: 0x6c96a620, - 0x19b18: 0x6ce11e20, 0x19b19: 0x6cade620, 0x19b1a: 0x6c90ae20, 0x19b1b: 0x6cb51820, - 0x19b1c: 0x6c25ec20, 0x19b1d: 0x6ce8ee20, 0x19b1e: 0x6c369a20, 0x19b1f: 0x6c11aa20, - 0x19b20: 0x6c6b2c20, 0x19b21: 0x6d156420, 0x19b22: 0x6c60d020, 0x19b23: 0x6c294220, - 0x19b24: 0x6c752220, 0x19b25: 0x6c08cc20, 0x19b26: 0x6c832620, 0x19b27: 0x6d174a20, - 0x19b28: 0x6c214020, 0x19b29: 0x6c214620, 0x19b2a: 0x6cb38820, 0x19b2b: 0x6c83cc20, - 0x19b2c: 0x6d291420, 0x19b2d: 0x6cdf7020, 0x19b2e: 0x6cb39420, 0x19b2f: 0x6c242620, - 0x19b30: 0x6c725020, 0x19b31: 0x6d070620, 0x19b32: 0x6c395820, - 0x19b34: 0x6d070820, 0x19b35: 0x6c37d420, 0x19b36: 0x6c5d7e20, 0x19b37: 0x6d39b820, - 0x19b38: 0x6cc4c820, 0x19b39: 0x6c381c20, 0x19b3a: 0x6c72fc20, 0x19b3b: 0x6c4db620, - 0x19b3c: 0x6c896e20, 0x19b3d: 0x6d341220, 0x19b3e: 0x6c9d8220, 0x19b3f: 0x6d209a20, - // Block 0x66d, offset 0x19b40 - 0x19b41: 0x6c133a20, 0x19b42: 0x6c9a2c20, 0x19b43: 0x6d1a0620, - 0x19b44: 0x6c9e4220, 0x19b45: 0x6ce8f620, 0x19b46: 0x6c7c9e20, - 0x19b49: 0x6c9d9a20, 0x19b4a: 0x6cc6ca20, 0x19b4b: 0x6d241c20, - 0x19b4c: 0x6cbae620, 0x19b4d: 0x6c9c8c20, 0x19b4e: 0x6c718020, 0x19b4f: 0x6cb07e20, - 0x19b50: 0x6c6cc620, 0x19b51: 0x6cee5e20, 0x19b52: 0x6c62c020, 0x19b53: 0x6c9baa20, - 0x19b54: 0x6c672020, 0x19b55: 0x6d098020, 0x19b56: 0x6c068220, 0x19b57: 0x6c420220, - 0x19b58: 0x6c161e20, 0x19b59: 0x6c87cc20, 0x19b5a: 0x6c851620, 0x19b5b: 0x6cc04020, - 0x19b5c: 0x6c33ee20, 0x19b5d: 0x6d1d3e20, 0x19b5e: 0x6d27ea20, 0x19b5f: 0x6c18ce20, - 0x19b60: 0x6d353220, 0x19b61: 0x6cc4ca20, 0x19b63: 0x6c94b220, - 0x19b64: 0x6c763a20, 0x19b65: 0x6c4b1420, 0x19b66: 0x6d26d620, 0x19b67: 0x6c5c0820, - 0x19b68: 0x6cb0b220, 0x19b69: 0x6c13f820, 0x19b6a: 0x6c34a820, 0x19b6b: 0x6c152220, - 0x19b6c: 0x6ccc1020, 0x19b6d: 0x6cd3c820, 0x19b6e: 0x6ccf7620, 0x19b6f: 0x6d03fa20, - 0x19b70: 0x6d1c9420, 0x19b71: 0x6cd3ca20, 0x19b72: 0x6c1c6420, 0x19b73: 0x6d134820, - 0x19b74: 0x6c4e3620, 0x19b75: 0x6c3ad420, 0x19b76: 0x6d134a20, 0x19b77: 0x6d0de220, - 0x19b78: 0x6d416220, 0x19b79: 0x6cd9ee20, 0x19b7a: 0x6c6c6620, 0x19b7b: 0x6c351a20, - 0x19b7c: 0x6cfd2220, 0x19b7d: 0x6c492e20, 0x19b7e: 0x6ce1f820, 0x19b7f: 0x6cbcfa20, - // Block 0x66e, offset 0x19b80 - 0x19b80: 0x6c15f420, 0x19b81: 0x6c4e4420, 0x19b82: 0x6c9c1420, 0x19b83: 0x6d26fc20, - 0x19b84: 0x6c247020, 0x19b85: 0x6cba8420, 0x19b86: 0x6c6cc420, 0x19b87: 0x6ccdd020, - 0x19b88: 0x6ca25820, 0x19b89: 0x6d251e20, 0x19b8b: 0x6cae8a20, - 0x19b8c: 0x6d336e20, 0x19b8d: 0x6d374a20, 0x19b8e: 0x6c216c20, 0x19b8f: 0x6d22aa20, - 0x19b90: 0x6ca1f820, 0x19b91: 0x6cedae20, 0x19b92: 0x6c681020, 0x19b93: 0x6cb54c20, - 0x19b94: 0x6cdb5e20, 0x19b95: 0x6cb1e220, 0x19b96: 0x6ce4d020, 0x19b97: 0x6c7b7820, - 0x19b98: 0x6c247a20, 0x19b99: 0x6cdcb820, 0x19b9b: 0x6c6a4220, - 0x19b9c: 0x6c671420, 0x19b9d: 0x6c028820, 0x19b9e: 0x6c696e20, 0x19b9f: 0x6d138e20, - 0x19ba1: 0x6d139020, 0x19ba2: 0x6c8ff020, 0x19ba3: 0x6d2a3620, - 0x19ba4: 0x6c05de20, 0x19ba5: 0x6c889a20, 0x19ba7: 0x6c58c620, - 0x19ba8: 0x6c942620, 0x19ba9: 0x6cef7820, 0x19baa: 0x6cfc5820, 0x19bab: 0x6ce60a20, - 0x19bac: 0x6c0fc820, 0x19bad: 0x6d337620, 0x19bae: 0x6d3a3e20, 0x19baf: 0x6c06c420, - 0x19bb0: 0x6c9bba20, 0x19bb1: 0x6d015220, 0x19bb2: 0x6cab6820, 0x19bb3: 0x6d1ed820, - 0x19bb5: 0x6cffc820, 0x19bb6: 0x6c87aa20, 0x19bb7: 0x6d2c6e20, - 0x19bb8: 0x6c9cd020, 0x19bba: 0x6d128420, - 0x19bbd: 0x6cb31620, 0x19bbe: 0x6d014220, - // Block 0x66f, offset 0x19bc0 - 0x19bc2: 0x6ccdd220, 0x19bc3: 0x6d3d1420, - 0x19bc5: 0x6ccddc20, 0x19bc6: 0x6c754020, 0x19bc7: 0x6c61fc20, - 0x19bc8: 0x6c6a2620, 0x19bca: 0x6ca7a420, 0x19bcb: 0x6c028420, - 0x19bcc: 0x6c1f3a20, 0x19bcd: 0x6cf4e420, 0x19bce: 0x6c495420, 0x19bcf: 0x6d01b820, - 0x19bd0: 0x6ce6d020, 0x19bd1: 0x6d096220, 0x19bd2: 0x6c297220, 0x19bd3: 0x6d2d8620, - 0x19bd4: 0x6ce06620, 0x19bd5: 0x6cae7c20, 0x19bd6: 0x6d00d420, 0x19bd7: 0x6d072020, - 0x19bd8: 0x6cfcf220, 0x19bd9: 0x6cd8d820, 0x19bda: 0x6c7aee20, 0x19bdb: 0x6d335a20, - 0x19bdc: 0x6cf3e620, 0x19bdd: 0x6c5d5c20, 0x19bde: 0x6cc90620, 0x19bdf: 0x6cf1ee20, - 0x19be0: 0x6c317a20, 0x19be1: 0x6c58a020, 0x19be2: 0x6c7e1420, 0x19be3: 0x6c405a20, - 0x19be4: 0x6c1fd020, 0x19be5: 0x6cfba420, 0x19be6: 0x6cbdae20, 0x19be7: 0x6cbc8820, - 0x19be8: 0x6c7fba20, 0x19bea: 0x6d0bca20, 0x19beb: 0x6d1c0220, - 0x19bec: 0x6cc40820, 0x19bed: 0x6c4f5620, 0x19bee: 0x6c218c20, 0x19bef: 0x6d371e20, - 0x19bf1: 0x6cf05620, 0x19bf2: 0x6d0d0620, 0x19bf3: 0x6cfe6a20, - 0x19bf4: 0x6d194c20, 0x19bf5: 0x6ca66a20, 0x19bf6: 0x6d335c20, 0x19bf7: 0x6c1fca20, - 0x19bf9: 0x6cd23020, 0x19bfa: 0x6c2f4a20, 0x19bfb: 0x6d3ee020, - 0x19bfc: 0x6c73e820, 0x19bfd: 0x6d067620, 0x19bfe: 0x6d255a20, - // Block 0x670, offset 0x19c00 - 0x19c01: 0x6d063020, 0x19c02: 0x6c2a0220, 0x19c03: 0x6ce48620, - 0x19c04: 0x6c448020, 0x19c05: 0x6d14b420, 0x19c06: 0x6c532420, 0x19c07: 0x6d13dc20, - 0x19c09: 0x6c851220, 0x19c0a: 0x6c7a3820, 0x19c0b: 0x6cfc0820, - 0x19c0c: 0x6cdbbe20, 0x19c0d: 0x6cf87620, 0x19c0e: 0x6d088620, - 0x19c11: 0x6c2b2a20, 0x19c12: 0x6c7f0420, 0x19c13: 0x6d387e20, - 0x19c14: 0x6ca76420, 0x19c15: 0x6c19f820, 0x19c16: 0x6c668620, 0x19c17: 0x6c09ba20, - 0x19c18: 0x6d3bc820, 0x19c19: 0x6c8d1620, 0x19c1a: 0x6c504e20, 0x19c1b: 0x6c058020, - 0x19c1c: 0x6ce10a20, 0x19c1d: 0x6c1ac220, 0x19c1e: 0x6c96c820, 0x19c1f: 0x6cfce420, - 0x19c20: 0x6cd69420, 0x19c21: 0x6d1da020, 0x19c22: 0x6cc12c20, - 0x19c24: 0x6cb44c20, 0x19c25: 0x6c5c2020, 0x19c26: 0x6cef3620, 0x19c27: 0x6d161620, - 0x19c28: 0x6d134c20, 0x19c2a: 0x6c184820, 0x19c2b: 0x6c4ff820, - 0x19c2c: 0x6c0d5a20, 0x19c2e: 0x6cfd3620, 0x19c2f: 0x6c155e20, - 0x19c30: 0x6c5d4e20, 0x19c32: 0x6c4ebc20, 0x19c33: 0x6c224220, - 0x19c34: 0x6d33ec20, 0x19c35: 0x6cb5f220, 0x19c36: 0x6c7c7e20, 0x19c37: 0x6cc75620, - 0x19c39: 0x6d1bca20, 0x19c3a: 0x6d047e20, - 0x19c3c: 0x6c55a020, 0x19c3d: 0x6c250620, 0x19c3f: 0x6cc3fc20, - // Block 0x671, offset 0x19c40 - 0x19c40: 0x6c2b9220, 0x19c41: 0x6cf53020, 0x19c42: 0x6cbfd020, - 0x19c44: 0x6d0eee20, 0x19c45: 0x6c8a5020, 0x19c46: 0x6c08a620, - 0x19c48: 0x6c0d7220, 0x19c4a: 0x6d252c20, 0x19c4b: 0x6caaa620, - 0x19c4c: 0x6c05c620, 0x19c4d: 0x6d1cf220, 0x19c4e: 0x6c536c20, 0x19c4f: 0x6c225820, - 0x19c50: 0x6cb87220, 0x19c51: 0x6ce35a20, 0x19c52: 0x6d23b220, 0x19c53: 0x6c824c20, - 0x19c54: 0x6c05d020, 0x19c56: 0x6c625620, 0x19c57: 0x6c3ee820, - 0x19c58: 0x6cfd0420, 0x19c59: 0x6c133820, 0x19c5a: 0x6c550620, 0x19c5b: 0x6ccb6620, - 0x19c5c: 0x6c080a20, 0x19c5d: 0x6cbe5620, 0x19c5e: 0x6d22a020, 0x19c5f: 0x6cebf620, - 0x19c60: 0x6c007a20, 0x19c61: 0x6c4e3c20, 0x19c62: 0x6c28d020, 0x19c63: 0x6c444620, - 0x19c64: 0x6c2b9c20, 0x19c65: 0x6c5e2020, 0x19c66: 0x6cace420, - 0x19c68: 0x6d3c6a20, 0x19c69: 0x6c8d7c20, 0x19c6a: 0x6c970820, 0x19c6b: 0x6c974820, - 0x19c6c: 0x6c888c20, 0x19c6d: 0x6cff4220, 0x19c6e: 0x6d093220, 0x19c6f: 0x6d327820, - 0x19c70: 0x6cb3b820, 0x19c71: 0x6c408e20, 0x19c72: 0x6caa0e20, 0x19c73: 0x6cf93220, - 0x19c74: 0x6c338e20, 0x19c75: 0x6c28f020, 0x19c76: 0x6d280c20, 0x19c77: 0x6cfd5220, - 0x19c78: 0x6d1b3020, 0x19c79: 0x6cd52220, 0x19c7a: 0x6c339420, 0x19c7b: 0x6c086820, - 0x19c7c: 0x6c56e620, 0x19c7d: 0x6c3a5420, 0x19c7e: 0x6c3aa820, 0x19c7f: 0x6d28be20, - // Block 0x672, offset 0x19c80 - 0x19c80: 0x6c075620, 0x19c81: 0x6c3a2820, 0x19c82: 0x6cfab820, 0x19c83: 0x6cd3ae20, - 0x19c84: 0x6c9e3020, 0x19c85: 0x6d2e0820, 0x19c86: 0x6d2e0a20, 0x19c87: 0x6d2d8c20, - 0x19c88: 0x6c5c4820, 0x19c89: 0x6c3f8820, 0x19c8a: 0x6ced5a20, 0x19c8b: 0x6ca0b420, - 0x19c8c: 0x6cbc1020, 0x19c8d: 0x6c8a8a20, 0x19c8f: 0x6c9f1e20, - 0x19c90: 0x6c54d820, 0x19c91: 0x6c535e20, 0x19c92: 0x6d213c20, 0x19c93: 0x6cb60820, - 0x19c94: 0x6c350420, 0x19c95: 0x6c020020, 0x19c97: 0x6c03ba20, - 0x19c98: 0x6c2c7820, 0x19c99: 0x6d08aa20, 0x19c9a: 0x6c2c8a20, 0x19c9b: 0x6c0a0e20, - 0x19c9c: 0x6d393e20, 0x19c9d: 0x6cad6020, 0x19c9e: 0x6ce5f620, 0x19c9f: 0x6d155020, - 0x19ca1: 0x6c63ea20, 0x19ca2: 0x6d36f220, 0x19ca3: 0x6ce8f820, - 0x19ca4: 0x6d00f820, 0x19ca5: 0x6c28ba20, 0x19ca6: 0x6ce5a620, 0x19ca7: 0x6d022620, - 0x19ca8: 0x6c172620, 0x19ca9: 0x6d25f220, 0x19caa: 0x6c496a20, 0x19cab: 0x6c89a420, - 0x19cac: 0x6c083220, 0x19cae: 0x6c930020, 0x19caf: 0x6c60e420, - 0x19cb0: 0x6d08c220, 0x19cb1: 0x6cd62420, 0x19cb2: 0x6c318220, 0x19cb3: 0x6cd9f420, - 0x19cb4: 0x6c55e220, 0x19cb5: 0x6d286420, 0x19cb6: 0x6c160820, 0x19cb7: 0x6c054620, - 0x19cb8: 0x6cc6da20, 0x19cb9: 0x6c359c20, 0x19cba: 0x6cf24020, 0x19cbb: 0x6c03ca20, - 0x19cbc: 0x6c3cc220, 0x19cbd: 0x6d209e20, 0x19cbe: 0x6d310c20, 0x19cbf: 0x6c3bae20, - // Block 0x673, offset 0x19cc0 - 0x19cc0: 0x6c496c20, 0x19cc1: 0x6c104c20, 0x19cc2: 0x6c446220, 0x19cc3: 0x6c33c420, - 0x19cc4: 0x6c5a3420, 0x19cc5: 0x6c31f820, 0x19cc6: 0x6ce3ce20, 0x19cc7: 0x6c0fcc20, - 0x19cc8: 0x6cba8a20, 0x19cc9: 0x6c8b8220, 0x19cca: 0x6c901620, 0x19ccb: 0x6cf13420, - 0x19ccc: 0x6d2eac20, 0x19ccd: 0x6c801820, 0x19cce: 0x6cdbea20, 0x19ccf: 0x6ca36020, - 0x19cd0: 0x6c0a1020, 0x19cd1: 0x6ceb3e20, 0x19cd2: 0x6d3b1a20, 0x19cd3: 0x6c2e5c20, - 0x19cd4: 0x6c104620, 0x19cd5: 0x6c716820, 0x19cd6: 0x6cb3b020, 0x19cd7: 0x6cfa0c20, - 0x19cd8: 0x6cf04420, 0x19cd9: 0x6cb3b420, 0x19cda: 0x6c267420, 0x19cdb: 0x6c387220, - 0x19cdc: 0x6c14e420, 0x19cdd: 0x6c56f020, 0x19cde: 0x6d28c020, - 0x19ce4: 0x6c38f020, 0x19ce5: 0x6d028a20, 0x19ce6: 0x6c536020, 0x19ce7: 0x6c1b2e20, - 0x19ce8: 0x6c05c820, 0x19ce9: 0x6d1a7a20, 0x19ceb: 0x6c6dd220, - 0x19cec: 0x6c0f6820, 0x19ced: 0x6cc88820, 0x19cee: 0x6c1e3a20, 0x19cef: 0x6d1c1220, - 0x19cf0: 0x6d143a20, 0x19cf1: 0x6c411820, 0x19cf2: 0x6c7d6c20, 0x19cf3: 0x6d27f020, - 0x19cf4: 0x6d31ec20, 0x19cf5: 0x6d0b5a20, 0x19cf6: 0x6c70b820, 0x19cf7: 0x6c547a20, - 0x19cf8: 0x6c9f7620, 0x19cf9: 0x6c040220, 0x19cfa: 0x6c441c20, 0x19cfb: 0x6c0bb220, - 0x19cfc: 0x6d3d0820, 0x19cfd: 0x6c505420, 0x19cfe: 0x6d31ee20, 0x19cff: 0x6cd14a20, - // Block 0x674, offset 0x19d00 - 0x19d00: 0x6c44a020, 0x19d01: 0x6c0a3e20, 0x19d02: 0x6c34b220, 0x19d03: 0x6c216820, - 0x19d04: 0x6c1fb220, 0x19d05: 0x6cca5a20, 0x19d06: 0x6c1a4620, 0x19d07: 0x6cc48a20, - 0x19d08: 0x6c191220, 0x19d09: 0x6c99b820, 0x19d0a: 0x6cadf220, 0x19d0b: 0x6ceec220, - 0x19d0c: 0x6cb07420, 0x19d0d: 0x6c3f8c20, 0x19d0e: 0x6d3d0e20, 0x19d0f: 0x6cb53c20, - 0x19d10: 0x6c8bec20, 0x19d11: 0x6d142020, 0x19d12: 0x6c9adc20, 0x19d13: 0x6cf3f820, - 0x19d14: 0x6cb7fa20, 0x19d15: 0x6c2f0020, 0x19d16: 0x6c191a20, 0x19d17: 0x6cfa0e20, - 0x19d18: 0x6c518e20, 0x19d19: 0x6cca9220, 0x19d1a: 0x6c487e20, 0x19d1b: 0x6c543e20, - 0x19d1c: 0x6c023420, 0x19d1d: 0x6c3f9420, 0x19d1e: 0x6cbbc620, 0x19d1f: 0x6c5d4c20, - 0x19d20: 0x6cafa220, 0x19d21: 0x6d0cf820, 0x19d22: 0x6cd84420, 0x19d23: 0x6cf7b420, - 0x19d24: 0x6ca02420, 0x19d25: 0x6c7ce420, 0x19d26: 0x6c445620, - 0x19d28: 0x6c02fc20, 0x19d29: 0x6cca4220, 0x19d2a: 0x6cd6ee20, 0x19d2b: 0x6c90d820, - 0x19d2c: 0x6d320620, 0x19d2d: 0x6c5c9a20, 0x19d2e: 0x6c156620, - 0x19d30: 0x6c8c8420, 0x19d31: 0x6ca2ee20, 0x19d32: 0x6c4f3c20, 0x19d33: 0x6c31fc20, - 0x19d34: 0x6c6d7820, 0x19d35: 0x6c9df420, 0x19d36: 0x6c38fa20, 0x19d37: 0x6c370020, - 0x19d38: 0x6c174220, 0x19d39: 0x6c536220, 0x19d3a: 0x6c536e20, 0x19d3b: 0x6d238820, - 0x19d3c: 0x6d096a20, 0x19d3d: 0x6cad3a20, 0x19d3e: 0x6c088220, 0x19d3f: 0x6c175220, - // Block 0x675, offset 0x19d40 - 0x19d40: 0x6d1fe220, 0x19d41: 0x6d153a20, 0x19d42: 0x6d096e20, 0x19d43: 0x6cc97e20, - 0x19d44: 0x6d073420, 0x19d45: 0x6c866820, 0x19d46: 0x6c868a20, 0x19d47: 0x6d263220, - 0x19d48: 0x6c336220, 0x19d49: 0x6c5e0420, 0x19d4a: 0x6ccc7e20, 0x19d4b: 0x6c838c20, - 0x19d4c: 0x6cb3ce20, 0x19d4d: 0x6c550e20, 0x19d4e: 0x6c4c8e20, 0x19d4f: 0x6c10c420, - 0x19d50: 0x6cc8a620, 0x19d51: 0x6cf0fa20, 0x19d52: 0x6cd9f620, 0x19d53: 0x6c01dc20, - 0x19d54: 0x6d21cc20, 0x19d55: 0x6cfd8e20, 0x19d56: 0x6c527c20, 0x19d57: 0x6d0fea20, - 0x19d58: 0x6cff4420, 0x19d59: 0x6d116820, 0x19d5b: 0x6c0ac020, - 0x19d5d: 0x6c528420, 0x19d5e: 0x6ce25620, 0x19d5f: 0x6c8eee20, - 0x19d61: 0x6d3b3420, 0x19d63: 0x6cf89a20, - 0x19d64: 0x6d298e20, 0x19d65: 0x6d17d420, 0x19d66: 0x6c312a20, 0x19d67: 0x6d259020, - 0x19d68: 0x6c700820, 0x19d6a: 0x6c0f2020, 0x19d6b: 0x6ce35c20, - 0x19d6c: 0x6d1d0220, 0x19d6e: 0x6d154020, 0x19d6f: 0x6ca70420, - 0x19d70: 0x6ccee220, 0x19d71: 0x6c07c020, 0x19d72: 0x6c465620, 0x19d73: 0x6c04d420, - 0x19d74: 0x6ca14820, 0x19d75: 0x6c410420, 0x19d76: 0x6c372620, 0x19d77: 0x6ccf2e20, - 0x19d79: 0x6d36d620, 0x19d7a: 0x6d106c20, 0x19d7b: 0x6c66ca20, - 0x19d7c: 0x6d263420, 0x19d7d: 0x6cd73020, 0x19d7e: 0x6ce38420, 0x19d7f: 0x6cf02020, - // Block 0x676, offset 0x19d80 - 0x19d80: 0x6d0aaa20, 0x19d81: 0x6d36f620, 0x19d82: 0x6d18bc20, 0x19d83: 0x6cc59c20, - 0x19d84: 0x6cd3ee20, 0x19d85: 0x6c55d420, 0x19d86: 0x6ca55620, 0x19d87: 0x6d126a20, - 0x19d88: 0x6c66f820, 0x19d89: 0x6cdc1220, 0x19d8a: 0x6d1d1e20, 0x19d8b: 0x6c061a20, - 0x19d8c: 0x6c55e420, 0x19d8d: 0x6c55e620, 0x19d8e: 0x6d137a20, - 0x19d90: 0x6d107420, 0x19d91: 0x6c888e20, 0x19d92: 0x6cf72620, 0x19d93: 0x6c372820, - 0x19d94: 0x6c331c20, 0x19d95: 0x6d297e20, 0x19d96: 0x6d3b4420, 0x19d97: 0x6d1d2820, - 0x19d98: 0x6d1d2c20, 0x19d99: 0x6c6cca20, 0x19d9a: 0x6c208820, 0x19d9b: 0x6c28ec20, - 0x19d9d: 0x6c7b4a20, 0x19d9e: 0x6d196020, 0x19d9f: 0x6d139a20, - 0x19da0: 0x6c662e20, 0x19da1: 0x6c372a20, 0x19da2: 0x6ca93e20, 0x19da3: 0x6c228820, - 0x19da4: 0x6cba3420, 0x19da5: 0x6d098220, 0x19da6: 0x6c0ea420, 0x19da7: 0x6c9d1420, - 0x19da8: 0x6cd73a20, 0x19da9: 0x6ca0a620, 0x19daa: 0x6c897c20, 0x19dab: 0x6cb71820, - 0x19dac: 0x6cb71a20, 0x19dad: 0x6cd44c20, 0x19dae: 0x6c3f2020, 0x19daf: 0x6c0f3a20, - 0x19db0: 0x6c085820, 0x19db1: 0x6c0d0020, 0x19db2: 0x6d161c20, 0x19db3: 0x6cf13a20, - 0x19db4: 0x6c587e20, 0x19db5: 0x6c38ac20, 0x19db6: 0x6cb60e20, 0x19db7: 0x6c98f620, - 0x19db8: 0x6c060820, 0x19db9: 0x6c020420, 0x19dba: 0x6c020a20, 0x19dbb: 0x6c403020, - 0x19dbc: 0x6cb63020, 0x19dbd: 0x6cc45020, 0x19dbe: 0x6ceb4020, 0x19dbf: 0x6d187420, - // Block 0x677, offset 0x19dc0 - 0x19dc0: 0x6c0f5420, 0x19dc1: 0x6cb12820, 0x19dc2: 0x6c039220, - 0x19dc4: 0x6d082220, 0x19dc7: 0x6d23fe20, - 0x19dc8: 0x6c1b5620, 0x19dc9: 0x6c915e20, 0x19dca: 0x6d156820, 0x19dcb: 0x6c868c20, - 0x19dcd: 0x6ca7b020, 0x19dce: 0x6cf90220, 0x19dcf: 0x6cf3fa20, - 0x19dd1: 0x6c834a20, 0x19dd2: 0x6cb41a20, 0x19dd3: 0x6d3d1220, - 0x19dd4: 0x6d417e20, 0x19dd5: 0x6d3dc620, 0x19dd6: 0x6c168220, 0x19dd7: 0x6c01de20, - 0x19dd8: 0x6c377220, 0x19dd9: 0x6d244620, 0x19dda: 0x6c839c20, 0x19ddb: 0x6c408220, - 0x19ddc: 0x6d2c6420, 0x19ddd: 0x6c5d0a20, 0x19dde: 0x6c218e20, 0x19ddf: 0x6cd9fe20, - 0x19de0: 0x6c089a20, 0x19de1: 0x6c0ab420, 0x19de2: 0x6d2c6620, - 0x19de4: 0x6c519e20, 0x19de5: 0x6c873a20, 0x19de7: 0x6c4f3220, - 0x19de8: 0x6d292220, 0x19de9: 0x6c474a20, 0x19dea: 0x6c1a5e20, 0x19deb: 0x6c90dc20, - 0x19dec: 0x6ca19e20, 0x19ded: 0x6c9daa20, 0x19dee: 0x6c975020, 0x19def: 0x6c030420, - 0x19df0: 0x6d30c020, 0x19df1: 0x6d3a3a20, 0x19df2: 0x6c5a3820, 0x19df3: 0x6c38f620, - 0x19df4: 0x6c2b0220, 0x19df5: 0x6ce7a420, 0x19df7: 0x6c320220, - 0x19df8: 0x6cf33620, 0x19df9: 0x6cf13020, 0x19dfa: 0x6c62f620, 0x19dfb: 0x6c1ca020, - 0x19dfc: 0x6c8c1220, 0x19dfd: 0x6c0c6420, 0x19dfe: 0x6c901e20, 0x19dff: 0x6c664a20, - // Block 0x678, offset 0x19e00 - 0x19e00: 0x6ca8da20, 0x19e01: 0x6c959e20, 0x19e02: 0x6cd03420, - 0x19e04: 0x6c487a20, 0x19e05: 0x6ca8a820, 0x19e06: 0x6d178a20, 0x19e07: 0x6c7a4820, - 0x19e08: 0x6cece220, 0x19e09: 0x6cebee20, 0x19e0a: 0x6cb87620, 0x19e0b: 0x6c0f5620, - 0x19e0c: 0x6c779220, 0x19e0d: 0x6c8d5020, 0x19e0e: 0x6c423020, 0x19e0f: 0x6c487820, - 0x19e10: 0x6c4d2c20, 0x19e11: 0x6c7bb020, 0x19e12: 0x6c527420, 0x19e13: 0x6c7c4620, - 0x19e14: 0x6d2b0a20, 0x19e15: 0x6ce64e20, 0x19e16: 0x6c80ee20, 0x19e17: 0x6c0a8020, - 0x19e18: 0x6c595a20, 0x19e19: 0x6cb3aa20, 0x19e1a: 0x6d11de20, 0x19e1b: 0x6cedaa20, - 0x19e1c: 0x6ce43c20, 0x19e1d: 0x6cdc1620, 0x19e1e: 0x6c7ad020, 0x19e1f: 0x6c337e20, - 0x19e20: 0x6c02b620, 0x19e21: 0x6c671620, 0x19e22: 0x6ca09c20, 0x19e23: 0x6c7d4220, - 0x19e24: 0x6c7b4c20, 0x19e25: 0x6c01e620, 0x19e26: 0x6c96ea20, 0x19e27: 0x6cbeaa20, - 0x19e28: 0x6cbb8820, 0x19e2a: 0x6c77b820, 0x19e2b: 0x6c508220, - 0x19e2c: 0x6c34c820, 0x19e2d: 0x6cfaa820, 0x19e2e: 0x6ca37c20, 0x19e2f: 0x6cdd3420, - 0x19e30: 0x6c6bf820, 0x19e31: 0x6caf8220, 0x19e32: 0x6cabcc20, 0x19e33: 0x6cd93020, - 0x19e34: 0x6c16bc20, 0x19e35: 0x6ca86c20, 0x19e36: 0x6c977620, 0x19e37: 0x6cd93e20, - 0x19e38: 0x6c22e420, 0x19e39: 0x6cfae420, 0x19e3a: 0x6c7e2420, - 0x19e3c: 0x6c2b9e20, 0x19e3d: 0x6cb3e420, 0x19e3e: 0x6ce5ac20, 0x19e3f: 0x6d40f420, - // Block 0x679, offset 0x19e40 - 0x19e40: 0x6cf2c820, 0x19e41: 0x6c3ae420, 0x19e42: 0x6c115020, 0x19e43: 0x6caee220, - 0x19e44: 0x6cc9d620, 0x19e46: 0x6cc76e20, 0x19e47: 0x6cb68620, - 0x19e48: 0x6c25fc20, 0x19e49: 0x6cac8e20, 0x19e4a: 0x6c0fc020, 0x19e4b: 0x6c979c20, - 0x19e4c: 0x6d401420, 0x19e4d: 0x6c22f220, 0x19e4e: 0x6c7d4420, 0x19e4f: 0x6c62f820, - 0x19e50: 0x6c801420, 0x19e52: 0x6c9bc220, 0x19e53: 0x6c9df820, - 0x19e54: 0x6cac9620, 0x19e55: 0x6c91aa20, 0x19e56: 0x6d416020, - 0x19e58: 0x6c8ee220, 0x19e59: 0x6d160020, 0x19e5a: 0x6cf1a820, 0x19e5b: 0x6c866c20, - 0x19e5c: 0x6c868e20, 0x19e5d: 0x6d2bb820, 0x19e5e: 0x6d3a9220, 0x19e5f: 0x6c5cfc20, - 0x19e60: 0x6cd03c20, 0x19e61: 0x6c1c6620, 0x19e62: 0x6d043c20, 0x19e63: 0x6cee3a20, - 0x19e64: 0x6c302020, 0x19e65: 0x6c5e2220, 0x19e66: 0x6cb07a20, 0x19e67: 0x6c551420, - 0x19e68: 0x6c9ab420, 0x19e69: 0x6c17f420, 0x19e6a: 0x6c9ab820, 0x19e6b: 0x6c175820, - 0x19e6c: 0x6c719620, 0x19e6d: 0x6caa3420, 0x19e6f: 0x6d197620, - 0x19e70: 0x6cc7f020, 0x19e71: 0x6c8e0420, 0x19e72: 0x6d0bba20, - 0x19e74: 0x6cb7bc20, 0x19e75: 0x6d3e7620, 0x19e77: 0x6c058c20, - 0x19e78: 0x6c45aa20, 0x19e79: 0x6d2af620, 0x19e7a: 0x6c6bfe20, 0x19e7b: 0x6d219a20, - 0x19e7c: 0x6cbd9820, 0x19e7d: 0x6c075820, 0x19e7e: 0x6c035820, 0x19e7f: 0x6ceb5020, - // Block 0x67a, offset 0x19e80 - 0x19e80: 0x6d0f6c20, 0x19e81: 0x6cbbfc20, 0x19e82: 0x6d1ff220, 0x19e83: 0x6d36fa20, - 0x19e84: 0x6c6c0a20, 0x19e85: 0x6ca16a20, 0x19e86: 0x6cd12420, 0x19e87: 0x6ccdb820, - 0x19e88: 0x6cb65620, 0x19e89: 0x6ccdba20, 0x19e8a: 0x6c9d0420, 0x19e8b: 0x6c460220, - 0x19e8c: 0x6d157c20, 0x19e8d: 0x6c453e20, 0x19e8e: 0x6c454020, 0x19e8f: 0x6ce82020, - 0x19e90: 0x6c3dac20, 0x19e91: 0x6d092220, 0x19e92: 0x6d137e20, 0x19e93: 0x6ce69a20, - 0x19e94: 0x6ce5ae20, 0x19e95: 0x6ca1f620, 0x19e96: 0x6c8ec620, 0x19e97: 0x6c117e20, - 0x19e98: 0x6c848020, 0x19e99: 0x6cd51820, 0x19e9a: 0x6c932420, 0x19e9b: 0x6c5e3a20, - 0x19e9c: 0x6c263c20, 0x19e9d: 0x6cac1220, 0x19e9e: 0x6c8ed420, 0x19e9f: 0x6c72b820, - 0x19ea0: 0x6d2e9220, 0x19ea1: 0x6c718220, 0x19ea2: 0x6d330a20, 0x19ea3: 0x6d40f820, - 0x19ea4: 0x6cfd3820, 0x19ea5: 0x6d375020, - 0x19ea8: 0x6c7eb020, 0x19eab: 0x6c7ebe20, - 0x19eac: 0x6d060a20, 0x19ead: 0x6c454220, 0x19eae: 0x6c35a220, 0x19eaf: 0x6ca21e20, - 0x19eb0: 0x6d384a20, 0x19eb1: 0x6ce3aa20, 0x19eb2: 0x6d25ce20, 0x19eb3: 0x6d2dc020, - 0x19eb4: 0x6c454420, 0x19eb5: 0x6cf24420, 0x19eb6: 0x6c80f420, 0x19eb7: 0x6d21f620, - 0x19eb8: 0x6cda0820, 0x19eb9: 0x6d2ca020, 0x19eba: 0x6c4d3620, 0x19ebb: 0x6c576e20, - 0x19ebc: 0x6d2e3e20, 0x19ebe: 0x6c90de20, 0x19ebf: 0x6c165020, - // Block 0x67b, offset 0x19ec0 - 0x19ec0: 0x6d376c20, 0x19ec1: 0x6cf12820, 0x19ec2: 0x6d083c20, 0x19ec3: 0x6d2a6420, - 0x19ec4: 0x6c9f8620, 0x19ec5: 0x6c4aac20, 0x19ec6: 0x6cda7020, - 0x19ec9: 0x6cd85420, 0x19eca: 0x6c352820, 0x19ecb: 0x6c134220, - 0x19ecc: 0x6c7b7a20, 0x19ecd: 0x6ce2dc20, 0x19ece: 0x6ca57c20, 0x19ecf: 0x6c819620, - 0x19ed0: 0x6c920820, 0x19ed1: 0x6d159e20, 0x19ed2: 0x6d029220, 0x19ed3: 0x6d0e2a20, - 0x19ed4: 0x6cbe9820, 0x19ed5: 0x6cb42420, 0x19ed6: 0x6c1e1220, 0x19ed7: 0x6cfbe020, - 0x19ed8: 0x6c497020, 0x19ed9: 0x6c6b8a20, 0x19eda: 0x6c7f8220, 0x19edb: 0x6c9bca20, - 0x19edc: 0x6d13ac20, 0x19ede: 0x6c869420, 0x19edf: 0x6d1b8420, - 0x19ee0: 0x6c212620, 0x19ee1: 0x6cbfde20, 0x19ee2: 0x6ce2d220, 0x19ee3: 0x6d21f820, - 0x19ee6: 0x6c278420, 0x19ee7: 0x6c327420, - 0x19ee8: 0x6c537e20, 0x19eea: 0x6cf8c220, - 0x19eec: 0x6cb64820, 0x19eee: 0x6d25a620, 0x19eef: 0x6c609e20, - 0x19ef0: 0x6d285020, 0x19ef1: 0x6c39dc20, 0x19ef2: 0x6c45ac20, 0x19ef3: 0x6c4f8820, - 0x19ef4: 0x6d326620, 0x19ef5: 0x6cc3f620, - 0x19ef8: 0x6c6c0220, 0x19ef9: 0x6cb02020, 0x19efa: 0x6c423220, 0x19efb: 0x6d082820, - 0x19efc: 0x6cd11420, 0x19efd: 0x6cd28c20, 0x19efe: 0x6cbc2a20, 0x19eff: 0x6c227020, - // Block 0x67c, offset 0x19f00 - 0x19f00: 0x6c2eee20, 0x19f01: 0x6c0f7220, 0x19f02: 0x6c2de620, 0x19f03: 0x6ced5020, - 0x19f04: 0x6c227220, 0x19f05: 0x6d355420, 0x19f06: 0x6c041220, 0x19f07: 0x6cf47e20, - 0x19f08: 0x6c061820, 0x19f09: 0x6c28be20, 0x19f0a: 0x6c039420, 0x19f0b: 0x6ce79620, - 0x19f0d: 0x6c45bc20, 0x19f0e: 0x6c702e20, 0x19f0f: 0x6c4b8620, - 0x19f10: 0x6c22e820, 0x19f11: 0x6d1ff420, 0x19f12: 0x6d25ba20, 0x19f13: 0x6c81be20, - 0x19f14: 0x6c716e20, 0x19f15: 0x6c3f1820, 0x19f16: 0x6ca88e20, 0x19f17: 0x6c358c20, - 0x19f18: 0x6c358e20, 0x19f19: 0x6d040e20, 0x19f1a: 0x6c771620, 0x19f1b: 0x6d0ee220, - 0x19f1c: 0x6ce90220, 0x19f1d: 0x6cb3f820, 0x19f1e: 0x6c083820, 0x19f1f: 0x6ca02620, - 0x19f20: 0x6cd73620, 0x19f21: 0x6d0ef220, 0x19f22: 0x6cb68c20, 0x19f23: 0x6d25ca20, - 0x19f24: 0x6c0cca20, 0x19f26: 0x6d07f220, 0x19f27: 0x6c544220, - 0x19f28: 0x6c5a3020, 0x19f29: 0x6d10c220, 0x19f2a: 0x6c73a220, 0x19f2b: 0x6c7cb220, - 0x19f2c: 0x6c36de20, 0x19f2d: 0x6c60f620, 0x19f2e: 0x6ca19220, 0x19f2f: 0x6c1d2e20, - 0x19f30: 0x6c062220, 0x19f31: 0x6cf54e20, 0x19f32: 0x6d327a20, 0x19f33: 0x6d076620, - 0x19f34: 0x6cdee820, 0x19f35: 0x6c1c9620, 0x19f36: 0x6cf74a20, 0x19f37: 0x6c23d220, - 0x19f38: 0x6c968620, 0x19f39: 0x6c7a1020, 0x19f3a: 0x6d0f0820, 0x19f3b: 0x6c11c420, - 0x19f3d: 0x6c520e20, 0x19f3e: 0x6c2ac620, 0x19f3f: 0x6cc49e20, - // Block 0x67d, offset 0x19f40 - 0x19f40: 0x6ce7a820, 0x19f41: 0x6d248c20, 0x19f42: 0x6cfe7020, 0x19f43: 0x6ca4d820, - 0x19f44: 0x6cd76420, 0x19f45: 0x6c3bb220, 0x19f46: 0x6cb47820, 0x19f47: 0x6c8dba20, - 0x19f48: 0x6c02ba20, 0x19f49: 0x6c58d020, 0x19f4a: 0x6d15a020, 0x19f4b: 0x6c58d220, - 0x19f4c: 0x6c9bc620, 0x19f4d: 0x6d1c4e20, 0x19f4e: 0x6c831820, 0x19f4f: 0x6d0f2e20, - 0x19f50: 0x6c062820, 0x19f51: 0x6c2f2c20, 0x19f52: 0x6c8e0620, 0x19f53: 0x6cd1f820, - 0x19f54: 0x6c689020, 0x19f55: 0x6c8b4420, 0x19f56: 0x6c6dee20, 0x19f57: 0x6c718c20, - 0x19f58: 0x6ce30a20, 0x19f59: 0x6cb0e620, 0x19f5a: 0x6c42a620, 0x19f5b: 0x6cff3420, - 0x19f5c: 0x6cec5e20, 0x19f5d: 0x6c1fd420, 0x19f5e: 0x6c2bc420, 0x19f5f: 0x6c588e20, - 0x19f60: 0x6d11d220, 0x19f61: 0x6c866e20, 0x19f62: 0x6c9c7020, 0x19f63: 0x6c550a20, - 0x19f64: 0x6cd11620, 0x19f65: 0x6c638a20, 0x19f66: 0x6d1aa620, 0x19f67: 0x6ceec620, - 0x19f69: 0x6cb18e20, 0x19f6a: 0x6c934420, 0x19f6b: 0x6c8dbc20, - 0x19f6c: 0x6d184420, 0x19f6d: 0x6c111620, 0x19f6e: 0x6ccd9820, 0x19f6f: 0x6c54fe20, - 0x19f70: 0x6cd53620, 0x19f71: 0x6cead420, 0x19f72: 0x6ca16e20, 0x19f73: 0x6c575820, - 0x19f74: 0x6ce61a20, 0x19f75: 0x6c0dfe20, 0x19f76: 0x6caee620, 0x19f77: 0x6c5d0820, - 0x19f78: 0x6c3dae20, 0x19f79: 0x6c4cdc20, 0x19f7a: 0x6c10d020, 0x19f7b: 0x6c849820, - 0x19f7c: 0x6c163e20, 0x19f7d: 0x6cb03420, 0x19f7e: 0x6c260020, 0x19f7f: 0x6c9bb220, - // Block 0x67e, offset 0x19f80 - 0x19f80: 0x6cddc020, 0x19f81: 0x6cbb6020, 0x19f82: 0x6d34c420, 0x19f83: 0x6c7c2420, - 0x19f84: 0x6c08a820, 0x19f85: 0x6c029220, 0x19f86: 0x6c9bc820, 0x19f87: 0x6cfd0620, - 0x19f88: 0x6c7ab420, 0x19f89: 0x6ce7fc20, 0x19f8a: 0x6ce93c20, 0x19f8b: 0x6cf04a20, - 0x19f8c: 0x6cfaf820, 0x19f8e: 0x6ce94220, 0x19f8f: 0x6c81cc20, - 0x19f90: 0x6c162220, 0x19f91: 0x6ca6c420, 0x19f92: 0x6ca6d020, 0x19f93: 0x6c845220, - 0x19f94: 0x6c304620, 0x19f95: 0x6c72c620, 0x19f96: 0x6cba8620, 0x19f97: 0x6c0fc620, - 0x19f98: 0x6cccac20, 0x19f99: 0x6d2c0e20, 0x19f9a: 0x6ce25e20, 0x19f9b: 0x6cba8c20, - 0x19f9c: 0x6ca9ee20, 0x19f9d: 0x6d181620, 0x19f9e: 0x6c6e9e20, 0x19f9f: 0x6c41e820, - 0x19fa0: 0x6c2ba020, 0x19fa1: 0x6c65de20, 0x19fa2: 0x6c9ab020, 0x19fa3: 0x6c26c420, - 0x19fa4: 0x6c660620, 0x19fa5: 0x6d244a20, 0x19fa6: 0x6d024c20, 0x19fa7: 0x6d294820, - 0x19fa8: 0x6c988020, 0x19fa9: 0x6c849a20, 0x19faa: 0x6c4c0a20, 0x19fab: 0x6d09ca20, - 0x19fac: 0x6cdedc20, 0x19fad: 0x6d310e20, 0x19fae: 0x6d107620, 0x19faf: 0x6ce98620, - 0x19fb0: 0x6cce2e20, 0x19fb1: 0x6cf93e20, 0x19fb2: 0x6cbbcc20, 0x19fb3: 0x6cf13620, - 0x19fb4: 0x6d1d6220, 0x19fb5: 0x6c1fa820, 0x19fb6: 0x6cc1ec20, 0x19fb7: 0x6cebfa20, - 0x19fb9: 0x6d343220, 0x19fba: 0x6ce6e420, 0x19fbb: 0x6c47f820, - 0x19fbc: 0x6cce3020, 0x19fbd: 0x6c10ec20, 0x19fbe: 0x6c3f1a20, 0x19fbf: 0x6ce61e20, - // Block 0x67f, offset 0x19fc0 - 0x19fc0: 0x6cded220, 0x19fc1: 0x6cdeea20, 0x19fc2: 0x6d3da620, 0x19fc3: 0x6c4e4020, - 0x19fc4: 0x6cb2da20, 0x19fc5: 0x6c519a20, 0x19fc6: 0x6d3c7420, 0x19fc7: 0x6d396e20, - 0x19fc8: 0x6c0fd220, 0x19fc9: 0x6c8eec20, 0x19fca: 0x6caa8c20, 0x19fcb: 0x6cf71220, - 0x19fcc: 0x6cada220, 0x19fcd: 0x6c2cb420, 0x19fce: 0x6c50ac20, 0x19fcf: 0x6ce44620, - 0x19fd0: 0x6cec8020, 0x19fd1: 0x6ce44a20, 0x19fd2: 0x6cb66a20, 0x19fd3: 0x6c62a820, - 0x19fd4: 0x6c1b6620, 0x19fd5: 0x6c03cc20, 0x19fd6: 0x6c6d7020, 0x19fd7: 0x6c78e820, - 0x19fd8: 0x6c873e20, 0x19fd9: 0x6c72c820, 0x19fda: 0x6cc25620, 0x19fdb: 0x6c7ec820, - 0x19fdc: 0x6c47f020, 0x19fdd: 0x6cb88620, 0x19fde: 0x6cb6b420, 0x19fdf: 0x6cfd5020, - 0x19fe0: 0x6c664220, 0x19fe1: 0x6cd29a20, 0x19fe2: 0x6c655420, 0x19fe3: 0x6c005e20, - 0x19fe4: 0x6c577220, 0x19fe5: 0x6d2c1420, 0x19fe6: 0x6d2b2e20, 0x19fe7: 0x6d11e820, - 0x19fe8: 0x6d2dd820, 0x19fe9: 0x6c630420, 0x19fea: 0x6c145c20, 0x19feb: 0x6d0f3420, - 0x19fec: 0x6c654c20, 0x19fee: 0x6d0e1020, - 0x19ff0: 0x6c68a820, 0x19ff1: 0x6ce7a220, 0x19ff2: 0x6ca41820, 0x19ff3: 0x6d271a20, - 0x19ff5: 0x6c1b6e20, - // Block 0x680, offset 0x1a000 - 0x1a000: 0x6d13b620, 0x1a001: 0x6c2f4020, 0x1a002: 0x6c779820, 0x1a003: 0x6cb4c620, - 0x1a004: 0x6cce4620, 0x1a005: 0x6cfa2420, 0x1a006: 0x6c4e4c20, 0x1a007: 0x6ced6820, - 0x1a008: 0x6d2f1820, 0x1a009: 0x6cc9f220, 0x1a00a: 0x6cce4820, 0x1a00b: 0x6cfa2620, - 0x1a00c: 0x6c5e6220, 0x1a00d: 0x6c105620, 0x1a00e: 0x6d221020, 0x1a00f: 0x6c9dfa20, - 0x1a010: 0x6c411e20, 0x1a011: 0x6c1e1820, 0x1a012: 0x6c1e1a20, 0x1a013: 0x6d3b6c20, - 0x1a014: 0x6cbc8e20, 0x1a015: 0x6caf2220, 0x1a016: 0x6cd2ea20, 0x1a017: 0x6cd2e820, - 0x1a018: 0x6cbf9420, 0x1a019: 0x6c0dba20, 0x1a01a: 0x6d12b820, 0x1a01b: 0x6c237e20, - 0x1a01c: 0x6c2fd620, 0x1a01d: 0x6cd7b820, 0x1a01e: 0x6c19b020, 0x1a01f: 0x6c2fca20, - 0x1a020: 0x6cbf9620, 0x1a021: 0x6c898020, 0x1a022: 0x6c2fcc20, 0x1a023: 0x6d1f9a20, - 0x1a024: 0x6c898220, 0x1a025: 0x6d0c5420, 0x1a026: 0x6c0e0820, 0x1a027: 0x6cca9c20, - 0x1a028: 0x6c4bb620, 0x1a029: 0x6c6f3620, 0x1a02a: 0x6c447a20, 0x1a02b: 0x6d0ac420, - 0x1a02c: 0x6cbb0220, 0x1a02d: 0x6d378220, 0x1a02e: 0x6c611020, 0x1a02f: 0x6c6ba220, - 0x1a030: 0x6c3c0c20, 0x1a031: 0x6c497420, 0x1a032: 0x6c202c20, 0x1a033: 0x6c159620, - 0x1a034: 0x6c8ba220, 0x1a035: 0x6d3d3620, 0x1a036: 0x6d3a5220, 0x1a037: 0x6c4d0420, - 0x1a038: 0x6cecb420, 0x1a039: 0x6c27b220, 0x1a03a: 0x6cf06a20, 0x1a03b: 0x6d3a5420, - 0x1a03c: 0x6c6e0020, 0x1a03d: 0x6c857420, 0x1a03e: 0x6c71aa20, 0x1a03f: 0x6cb1dc20, - // Block 0x681, offset 0x1a040 - 0x1a040: 0x6c3dc220, 0x1a041: 0x6d144620, 0x1a042: 0x6d163420, 0x1a043: 0x6ca38c20, - 0x1a044: 0x6cf55020, 0x1a045: 0x6c6f9c20, 0x1a046: 0x6c6f9e20, 0x1a047: 0x6cea9020, - 0x1a048: 0x6c99c220, 0x1a049: 0x6d163820, 0x1a04a: 0x6d13b820, 0x1a04b: 0x6d337c20, - 0x1a04c: 0x6cf33c20, 0x1a04d: 0x6d2ca620, 0x1a04e: 0x6c56f820, 0x1a04f: 0x6c37f420, - 0x1a050: 0x6c820820, 0x1a051: 0x6d1a1e20, 0x1a052: 0x6cb24620, 0x1a053: 0x6caccc20, - 0x1a054: 0x6cbbce20, 0x1a055: 0x6c560e20, 0x1a056: 0x6c48c220, 0x1a057: 0x6c19c420, - 0x1a058: 0x6c19d420, 0x1a059: 0x6d15aa20, 0x1a05a: 0x6d1abc20, 0x1a05b: 0x6d0bd820, - 0x1a05c: 0x6c9ebc20, 0x1a05d: 0x6c6f9a20, 0x1a05e: 0x6cb6c020, 0x1a05f: 0x6d129c20, - 0x1a060: 0x6cf76820, 0x1a061: 0x6cfd5e20, 0x1a062: 0x6c412020, 0x1a063: 0x6c6fa020, - 0x1a064: 0x6cfa2820, 0x1a065: 0x6c563020, 0x1a066: 0x6cd49620, 0x1a067: 0x6c315a20, - 0x1a068: 0x6cd2aa20, 0x1a069: 0x6c5e7020, 0x1a06a: 0x6ca45420, 0x1a06b: 0x6c631a20, - 0x1a06c: 0x6c71ec20, 0x1a06d: 0x6cd23220, 0x1a06e: 0x6c992220, 0x1a06f: 0x6c549020, - 0x1a070: 0x6c971020, 0x1a071: 0x6c949020, 0x1a072: 0x6d3dfe20, 0x1a073: 0x6cc7f820, - 0x1a074: 0x6d08f620, 0x1a075: 0x6d0d4220, 0x1a076: 0x6c3f3a20, 0x1a077: 0x6ccbcc20, - 0x1a078: 0x6ca2f020, 0x1a079: 0x6c418220, 0x1a07a: 0x6cdd5020, 0x1a07b: 0x6d20d020, - 0x1a07c: 0x6c258c20, 0x1a07d: 0x6d30d420, 0x1a07e: 0x6c419020, 0x1a07f: 0x6d35d220, - // Block 0x682, offset 0x1a080 - 0x1a080: 0x6c4a5020, 0x1a081: 0x6c419820, 0x1a082: 0x6c949a20, 0x1a083: 0x6c8c2220, - 0x1a084: 0x6d17d820, 0x1a085: 0x6c73be20, 0x1a086: 0x6c823620, 0x1a087: 0x6c96ec20, - 0x1a088: 0x6d221220, 0x1a089: 0x6d328020, 0x1a08a: 0x6cd30620, 0x1a08b: 0x6cd31020, - 0x1a08c: 0x6c37b420, 0x1a08d: 0x6c1f0020, 0x1a08e: 0x6d20a220, 0x1a08f: 0x6c7c3020, - 0x1a090: 0x6d20a020, 0x1a091: 0x6d277420, 0x1a092: 0x6c563220, 0x1a093: 0x6cb56020, - 0x1a094: 0x6cf41420, 0x1a095: 0x6c6dfe20, 0x1a096: 0x6cd87220, 0x1a097: 0x6cdc1c20, - 0x1a098: 0x6c44a620, 0x1a099: 0x6c44a820, 0x1a09a: 0x6d0b6c20, 0x1a09b: 0x6d003620, - 0x1a09c: 0x6d0b7420, 0x1a09d: 0x6cb57820, 0x1a09e: 0x6d0b7c20, 0x1a09f: 0x6c5fd820, - 0x1a0a0: 0x6ce7e220, 0x1a0a1: 0x6cedd420, 0x1a0a2: 0x6c777420, 0x1a0a3: 0x6cde2a20, - 0x1a0a4: 0x6c682220, 0x1a0a5: 0x6c4d4e20, 0x1a0a6: 0x6d165220, 0x1a0a7: 0x6c158c20, - 0x1a0a8: 0x6c524420, 0x1a0a9: 0x6ca22220, 0x1a0aa: 0x6d13b220, 0x1a0ab: 0x6cfdd820, - 0x1a0ac: 0x6c6d8e20, 0x1a0ad: 0x6ce66220, 0x1a0ae: 0x6c89aa20, 0x1a0af: 0x6cfdda20, - 0x1a0b0: 0x6c6d9620, 0x1a0b1: 0x6d12d420, 0x1a0b2: 0x6cbd1c20, 0x1a0b3: 0x6c0ece20, - 0x1a0b4: 0x6d204420, 0x1a0b5: 0x6d01a020, 0x1a0b6: 0x6c283820, 0x1a0b7: 0x6c880820, - 0x1a0b8: 0x6c34b420, 0x1a0b9: 0x6c9ae020, 0x1a0ba: 0x6cc55a20, 0x1a0bb: 0x6cc55c20, - 0x1a0bc: 0x6c5fb620, 0x1a0bd: 0x6c630a20, 0x1a0be: 0x6cedd620, 0x1a0bf: 0x6d163a20, - // Block 0x683, offset 0x1a0c0 - 0x1a0c0: 0x6cd03620, 0x1a0c1: 0x6cc55e20, 0x1a0c2: 0x6c820220, 0x1a0c3: 0x6c2f4220, - 0x1a0c4: 0x6d2b3220, 0x1a0c5: 0x6c6c7e20, 0x1a0c6: 0x6cb3fa20, 0x1a0c7: 0x6c1d8c20, - 0x1a0c8: 0x6c030c20, 0x1a0c9: 0x6d2ef620, 0x1a0ca: 0x6c6c1c20, 0x1a0cb: 0x6c6ba420, - 0x1a0cc: 0x6c0da020, 0x1a0cd: 0x6cc61220, 0x1a0ce: 0x6c237c20, 0x1a0cf: 0x6c3d0820, - 0x1a0d0: 0x6cca1220, 0x1a0d1: 0x6c94d420, 0x1a0d2: 0x6c0da220, 0x1a0d3: 0x6c121c20, - 0x1a0d4: 0x6d3ed620, 0x1a0d5: 0x6cd2ee20, 0x1a0d6: 0x6cddda20, 0x1a0d7: 0x6d2f1a20, - 0x1a0d8: 0x6c3fa420, 0x1a0d9: 0x6cfd5620, 0x1a0da: 0x6cfa6a20, 0x1a0db: 0x6cea9220, - 0x1a0dc: 0x6c52e820, 0x1a0dd: 0x6ce70a20, 0x1a0de: 0x6cc5a620, 0x1a0df: 0x6cb88e20, - 0x1a0e0: 0x6c41c220, 0x1a0e1: 0x6c436220, 0x1a0e2: 0x6c0ea620, 0x1a0e3: 0x6c272220, - 0x1a0e4: 0x6c8e1820, 0x1a0e5: 0x6d15ae20, 0x1a0e6: 0x6c17b020, 0x1a0e7: 0x6c169020, - 0x1a0e8: 0x6cc93e20, 0x1a0e9: 0x6cce5a20, 0x1a0ea: 0x6d144a20, 0x1a0eb: 0x6ca25e20, - 0x1a0ec: 0x6c9b0220, 0x1a0ed: 0x6cc5a820, 0x1a0ee: 0x6c63fe20, 0x1a0ef: 0x6c17b220, - 0x1a0f0: 0x6d0ffc20, 0x1a0f1: 0x6cb96820, 0x1a0f2: 0x6d380e20, 0x1a0f3: 0x6cb04620, - 0x1a0f4: 0x6cf2cc20, 0x1a0f5: 0x6cf41820, 0x1a0f6: 0x6c665020, 0x1a0f7: 0x6c643620, - 0x1a0f8: 0x6d117e20, 0x1a0f9: 0x6c3c1220, 0x1a0fa: 0x6c121e20, 0x1a0fb: 0x6cc5ac20, - 0x1a0fc: 0x6ceddc20, 0x1a0fd: 0x6c3bc420, 0x1a0fe: 0x6c2b0c20, 0x1a0ff: 0x6c39b620, - // Block 0x684, offset 0x1a100 - 0x1a100: 0x6d378420, 0x1a101: 0x6cb6c820, 0x1a102: 0x6cadf820, 0x1a103: 0x6d20a620, - 0x1a104: 0x6c2e0620, 0x1a105: 0x6c33d220, 0x1a106: 0x6cf49c20, 0x1a107: 0x6d165620, - 0x1a108: 0x6d030a20, 0x1a109: 0x6c777620, 0x1a10a: 0x6d13bc20, 0x1a10b: 0x6c5fbc20, - 0x1a10c: 0x6c008620, 0x1a10d: 0x6cf55420, 0x1a10e: 0x6c617220, 0x1a10f: 0x6c3dca20, - 0x1a110: 0x6c37f620, 0x1a111: 0x6d04b220, 0x1a112: 0x6c6ccc20, 0x1a113: 0x6caf2420, - 0x1a114: 0x6c281820, 0x1a115: 0x6c3d3420, 0x1a116: 0x6ce16c20, 0x1a117: 0x6d381020, - 0x1a118: 0x6d1e8820, 0x1a119: 0x6c5d8620, 0x1a11a: 0x6c5b8a20, 0x1a11b: 0x6d221420, - 0x1a11c: 0x6c251620, 0x1a11d: 0x6c1fee20, 0x1a11e: 0x6cca1420, 0x1a11f: 0x6cef8220, - 0x1a120: 0x6c1ff020, 0x1a121: 0x6c17cc20, 0x1a122: 0x6d0b0a20, 0x1a123: 0x6cfc7020, - 0x1a124: 0x6ccdfe20, 0x1a125: 0x6c165e20, 0x1a126: 0x6c94d620, 0x1a127: 0x6c122020, - 0x1a128: 0x6d0a6420, 0x1a129: 0x6d031220, 0x1a12a: 0x6cef8420, 0x1a12b: 0x6d3a9a20, - 0x1a12c: 0x6d2b5820, 0x1a12d: 0x6cfb2220, 0x1a12e: 0x6caa4820, 0x1a12f: 0x6c0eaa20, - 0x1a130: 0x6c46e620, 0x1a131: 0x6ca62020, 0x1a132: 0x6ca67a20, 0x1a133: 0x6d015420, - 0x1a134: 0x6c04de20, 0x1a135: 0x6d066a20, 0x1a136: 0x6c8e2c20, 0x1a137: 0x6d38f820, - 0x1a138: 0x6ccfa020, 0x1a139: 0x6cc0ca20, 0x1a13a: 0x6c22ac20, 0x1a13b: 0x6c07ce20, - 0x1a13c: 0x6cd2f620, 0x1a13d: 0x6c631e20, 0x1a13e: 0x6caf2620, 0x1a13f: 0x6d167220, - // Block 0x685, offset 0x1a140 - 0x1a140: 0x6cd87c20, 0x1a141: 0x6d15b620, 0x1a142: 0x6d328220, 0x1a143: 0x6c2d3420, - 0x1a144: 0x6c4d9020, 0x1a145: 0x6c972220, 0x1a146: 0x6c286220, 0x1a147: 0x6d3a9c20, - 0x1a148: 0x6c105a20, 0x1a149: 0x6cc0cc20, 0x1a14a: 0x6c08b420, 0x1a14b: 0x6d2f5020, - 0x1a14c: 0x6c228c20, 0x1a14d: 0x6cf06e20, 0x1a14e: 0x6c2b0e20, 0x1a14f: 0x6d3a9e20, - 0x1a150: 0x6d426220, 0x1a151: 0x6d200e20, 0x1a152: 0x6d0ffe20, 0x1a153: 0x6ce3ba20, - 0x1a154: 0x6d2e4820, 0x1a155: 0x6c50b820, 0x1a156: 0x6c091020, 0x1a157: 0x6ceae420, - 0x1a158: 0x6ccf0820, 0x1a159: 0x6d20ac20, 0x1a15a: 0x6d167420, 0x1a15b: 0x6c3dd020, - 0x1a15c: 0x6d427420, 0x1a15d: 0x6c463420, 0x1a15e: 0x6ca95020, 0x1a15f: 0x6ce70e20, - 0x1a160: 0x6ca62220, 0x1a161: 0x6cfa7620, 0x1a162: 0x6cc17220, 0x1a163: 0x6d1d7c20, - 0x1a164: 0x6cec0e20, 0x1a165: 0x6cb8a220, 0x1a166: 0x6cd40a20, 0x1a167: 0x6c761a20, - 0x1a168: 0x6c068820, 0x1a169: 0x6cae0420, 0x1a16a: 0x6c5b1a20, 0x1a16b: 0x6c51b620, - 0x1a16c: 0x6c819c20, 0x1a16d: 0x6cfdac20, 0x1a16e: 0x6c43c420, 0x1a16f: 0x6d0f8420, - 0x1a170: 0x6c041820, 0x1a171: 0x6c382c20, 0x1a172: 0x6ca02a20, 0x1a173: 0x6c632420, - 0x1a174: 0x6c37bc20, 0x1a175: 0x6c0e0a20, 0x1a176: 0x6c5fda20, 0x1a177: 0x6c523820, - 0x1a178: 0x6c5d6c20, 0x1a179: 0x6c4ac420, 0x1a17a: 0x6cc2b620, 0x1a17b: 0x6ce54820, - 0x1a17c: 0x6c68c820, 0x1a17d: 0x6c22b020, 0x1a17e: 0x6d16a220, 0x1a17f: 0x6cd2b220, - // Block 0x686, offset 0x1a180 - 0x1a180: 0x6d03c620, 0x1a181: 0x6ccfa620, 0x1a182: 0x6ceaa620, 0x1a183: 0x6c76c020, - 0x1a184: 0x6d343a20, 0x1a185: 0x6c40dc20, 0x1a186: 0x6c7ee220, 0x1a187: 0x6d146c20, - 0x1a188: 0x6c1b7a20, 0x1a189: 0x6c7ad220, 0x1a18a: 0x6c49d420, 0x1a18b: 0x6c858620, - 0x1a18c: 0x6d19a820, 0x1a18d: 0x6cd31220, 0x1a18e: 0x6c9cda20, 0x1a18f: 0x6d398220, - 0x1a190: 0x6d067a20, 0x1a191: 0x6d201420, 0x1a192: 0x6c011820, 0x1a193: 0x6c921620, - 0x1a194: 0x6ca1c020, 0x1a195: 0x6c373420, 0x1a196: 0x6c94de20, 0x1a197: 0x6c305220, - 0x1a198: 0x6c143020, 0x1a199: 0x6c1a9420, 0x1a19a: 0x6d0a6a20, 0x1a19b: 0x6c456220, - 0x1a19c: 0x6d385620, 0x1a19d: 0x6d13ca20, 0x1a19e: 0x6cc78c20, 0x1a19f: 0x6c25a220, - 0x1a1a0: 0x6cf98820, 0x1a1a1: 0x6cd88620, 0x1a1a2: 0x6d292c20, 0x1a1a3: 0x6c937820, - 0x1a1a4: 0x6cdefc20, 0x1a1a5: 0x6c68ca20, 0x1a1a6: 0x6d312220, 0x1a1a7: 0x6c12ca20, - 0x1a1a8: 0x6cbbd020, 0x1a1a9: 0x6c7b1220, 0x1a1aa: 0x6c147020, 0x1a1ab: 0x6ca95220, - 0x1a1ac: 0x6ca9b020, 0x1a1ad: 0x6c6c8420, 0x1a1ae: 0x6cf43220, 0x1a1af: 0x6c53ec20, - 0x1a1b0: 0x6c6efe20, 0x1a1b1: 0x6c1a6420, 0x1a1b2: 0x6d321e20, 0x1a1b3: 0x6d428220, - 0x1a1b4: 0x6c1e2620, 0x1a1b5: 0x6cbd1e20, 0x1a1b6: 0x6c937a20, 0x1a1b7: 0x6c70f820, - 0x1a1b8: 0x6cd5a420, 0x1a1b9: 0x6ce6b420, 0x1a1ba: 0x6cd09220, 0x1a1bb: 0x6ce9f420, - 0x1a1bc: 0x6c0ec020, 0x1a1bd: 0x6ca3e820, 0x1a1be: 0x6cfe8820, 0x1a1bf: 0x6c0b8220, - // Block 0x687, offset 0x1a1c0 - 0x1a1c0: 0x6ce9de20, 0x1a1c1: 0x6d222420, 0x1a1c2: 0x6cf85220, 0x1a1c3: 0x6c242e20, - 0x1a1c4: 0x6c354e20, 0x1a1c5: 0x6cc01020, 0x1a1c6: 0x6d061620, 0x1a1c7: 0x6c4a1820, - 0x1a1c8: 0x6c7a8420, 0x1a1c9: 0x6cf43420, 0x1a1ca: 0x6c759620, 0x1a1cb: 0x6d16da20, - 0x1a1cc: 0x6c3f4620, 0x1a1cd: 0x6c894820, 0x1a1ce: 0x6d410e20, 0x1a1cf: 0x6cbc3020, - 0x1a1d0: 0x6c859a20, 0x1a1d1: 0x6d1e1620, 0x1a1d2: 0x6c5d1c20, 0x1a1d3: 0x6c6e5220, - 0x1a1d4: 0x6cba4220, 0x1a1d5: 0x6cca4820, 0x1a1d6: 0x6cadf420, 0x1a1d7: 0x6cda7220, - 0x1a1d8: 0x6c3e0620, 0x1a1d9: 0x6cf59820, 0x1a1da: 0x6c850020, 0x1a1db: 0x6c3f4820, - 0x1a1dc: 0x6cb24a20, 0x1a1dd: 0x6c05ea20, 0x1a1de: 0x6d20d220, 0x1a1df: 0x6cb59020, - 0x1a1e0: 0x6cf99020, 0x1a1e1: 0x6d032220, 0x1a1e2: 0x6d04b620, 0x1a1e3: 0x6d222620, - 0x1a1e4: 0x6c2c2420, 0x1a1e5: 0x6c17d020, 0x1a1e6: 0x6c1d9220, 0x1a1e7: 0x6d377c20, - 0x1a1e8: 0x6d0d4e20, 0x1a1e9: 0x6c87e820, 0x1a1ea: 0x6c859c20, 0x1a1eb: 0x6c7ee420, - 0x1a1ec: 0x6cd8fc20, 0x1a1ed: 0x6c656a20, 0x1a1ee: 0x6d04b820, 0x1a1ef: 0x6c3f5220, - 0x1a1f0: 0x6c5daa20, 0x1a1f1: 0x6c721e20, 0x1a1f2: 0x6cffd820, 0x1a1f3: 0x6cabf620, - 0x1a1f4: 0x6c666420, 0x1a1f5: 0x6c0c8c20, 0x1a1f6: 0x6c1f2020, 0x1a1f7: 0x6c3a9420, - 0x1a1f8: 0x6c3cde20, 0x1a1f9: 0x6d0b8a20, 0x1a1fa: 0x6c017a20, 0x1a1fb: 0x6c06f820, - 0x1a1fc: 0x6d22ea20, 0x1a1fd: 0x6d02bc20, 0x1a1fe: 0x6c08ce20, 0x1a1ff: 0x6c561620, - // Block 0x688, offset 0x1a200 - 0x1a200: 0x6c166220, 0x1a201: 0x6d33be20, 0x1a202: 0x6c0e1020, 0x1a203: 0x6c6fe420, - 0x1a204: 0x6d10de20, 0x1a205: 0x6c252020, 0x1a206: 0x6c87ea20, 0x1a207: 0x6cecf420, - 0x1a208: 0x6c7ee620, 0x1a209: 0x6c122820, 0x1a20a: 0x6d401c20, 0x1a20b: 0x6c448220, - 0x1a20c: 0x6c490a20, 0x1a20d: 0x6c06fa20, 0x1a20e: 0x6ce4dc20, 0x1a20f: 0x6cd4b420, - 0x1a210: 0x6cd4b620, 0x1a211: 0x6c9b0420, 0x1a212: 0x6c2a0620, 0x1a213: 0x6cdfd420, - 0x1a214: 0x6c740e20, 0x1a215: 0x6c20c220, 0x1a216: 0x6d041e20, 0x1a217: 0x6cae9420, - 0x1a218: 0x6ce17020, 0x1a219: 0x6c548e20, 0x1a21a: 0x6d15da20, 0x1a21b: 0x6cb4d620, - 0x1a21c: 0x6ce3de20, 0x1a21d: 0x6c421420, 0x1a21e: 0x6c6e5e20, 0x1a21f: 0x6c6bd620, - 0x1a220: 0x6cdbb220, 0x1a221: 0x6c170a20, 0x1a222: 0x6c6a9e20, 0x1a223: 0x6c39ce20, - 0x1a224: 0x6d344420, 0x1a225: 0x6c796c20, 0x1a226: 0x6c734220, 0x1a227: 0x6d3f7420, - 0x1a228: 0x6c722020, 0x1a229: 0x6cba4620, 0x1a22a: 0x6ca5c820, 0x1a22b: 0x6c94e420, - 0x1a22c: 0x6d3cf420, 0x1a22d: 0x6cf27e20, 0x1a22e: 0x6c95a820, 0x1a22f: 0x6cd91020, - 0x1a230: 0x6c839220, 0x1a231: 0x6c5d1e20, 0x1a232: 0x6c2fea20, 0x1a233: 0x6d3f3620, - 0x1a234: 0x6c07aa20, 0x1a235: 0x6cf43820, 0x1a236: 0x6c722220, 0x1a237: 0x6ca39e20, - 0x1a238: 0x6c112020, 0x1a239: 0x6c657820, 0x1a23a: 0x6d2d3820, 0x1a23b: 0x6d125a20, - 0x1a23c: 0x6d344620, 0x1a23d: 0x6ccc4020, 0x1a23e: 0x6cbe3820, 0x1a23f: 0x6cbd1220, - // Block 0x689, offset 0x1a240 - 0x1a240: 0x6d1ba420, 0x1a241: 0x6c196620, 0x1a242: 0x6c648020, 0x1a243: 0x6d0d6220, - 0x1a244: 0x6cc85c20, 0x1a245: 0x6d382420, 0x1a246: 0x6c217620, 0x1a247: 0x6c641220, - 0x1a248: 0x6c61da20, 0x1a249: 0x6cefa820, 0x1a24a: 0x6d224220, 0x1a24b: 0x6c0e1820, - 0x1a24c: 0x6cc91620, 0x1a24d: 0x6ce31a20, 0x1a24e: 0x6cee7020, 0x1a24f: 0x6cb0ee20, - 0x1a250: 0x6d0e5a20, 0x1a251: 0x6c3c3a20, 0x1a252: 0x6ce17220, 0x1a253: 0x6cf2e020, - 0x1a254: 0x6c360620, 0x1a255: 0x6d009a20, 0x1a256: 0x6c17e820, 0x1a257: 0x6cd13020, - 0x1a258: 0x6c76ca20, 0x1a259: 0x6c2c3820, 0x1a25a: 0x6d429620, 0x1a25b: 0x6c138e20, - 0x1a25c: 0x6ce66c20, 0x1a25d: 0x6c070620, 0x1a25e: 0x6d018820, 0x1a25f: 0x6c59b020, - 0x1a260: 0x6d11a820, 0x1a261: 0x6d2e5420, 0x1a262: 0x6c1e2a20, 0x1a263: 0x6d0bec20, - 0x1a264: 0x6d1f2820, 0x1a265: 0x6c666820, 0x1a266: 0x6d063a20, 0x1a267: 0x6d2bd220, - 0x1a268: 0x6c220220, 0x1a269: 0x6c3fdc20, 0x1a26a: 0x6c087020, 0x1a26b: 0x6d35d420, - 0x1a26c: 0x6d3fea20, 0x1a26d: 0x6c9e1620, 0x1a26e: 0x6c601020, 0x1a26f: 0x6d15e420, - 0x1a270: 0x6d018a20, 0x1a271: 0x6d0a0420, 0x1a272: 0x6c10f420, 0x1a273: 0x6c329420, - 0x1a274: 0x6c12da20, 0x1a275: 0x6d314c20, 0x1a276: 0x6cab7c20, 0x1a277: 0x6ce7d420, - 0x1a278: 0x6ce7d620, 0x1a279: 0x6c070820, 0x1a27a: 0x6d28b220, 0x1a27b: 0x6c908420, - 0x1a27c: 0x6c6aac20, 0x1a27d: 0x6cefaa20, 0x1a27e: 0x6c3bd620, 0x1a27f: 0x6c16a020, - // Block 0x68a, offset 0x1a280 - 0x1a280: 0x6c4a5220, 0x1a281: 0x6cda1420, 0x1a282: 0x6d361420, 0x1a283: 0x6cdab020, - 0x1a284: 0x6cf96620, 0x1a285: 0x6c40b020, 0x1a286: 0x6d261420, 0x1a287: 0x6cc70420, - 0x1a288: 0x6c860420, 0x1a289: 0x6caa6420, 0x1a28a: 0x6d282c20, 0x1a28b: 0x6c67a620, - 0x1a28c: 0x6c96bc20, 0x1a28d: 0x6c056e20, 0x1a28e: 0x6c2cc820, 0x1a28f: 0x6ce0ee20, - 0x1a290: 0x6c503c20, 0x1a291: 0x6c6ac220, 0x1a292: 0x6cf60820, 0x1a293: 0x6ccd8820, - 0x1a294: 0x6cba5020, 0x1a295: 0x6c744020, 0x1a296: 0x6c122c20, 0x1a297: 0x6c1f3c20, - 0x1a298: 0x6cca1820, 0x1a299: 0x6c071c20, 0x1a29a: 0x6cffe820, 0x1a29b: 0x6d1e3420, - 0x1a29c: 0x6d10f220, 0x1a29d: 0x6ce09620, 0x1a29e: 0x6cdd1420, 0x1a29f: 0x6d101c20, - 0x1a2a0: 0x6c37ea20, 0x1a2a1: 0x6c0e1c20, 0x1a2a2: 0x6c635a20, 0x1a2a3: 0x6c271820, - 0x1a2a4: 0x6d293620, 0x1a2a5: 0x6ce17620, 0x1a2a6: 0x6c483820, 0x1a2a7: 0x6c0d3420, - 0x1a2a8: 0x6c1ede20, 0x1a2a9: 0x6caabc20, 0x1a2aa: 0x6c116c20, 0x1a2ab: 0x6c82c820, - 0x1a2ac: 0x6c24ca20, 0x1a2ad: 0x6d1d8820, 0x1a2ae: 0x6d2a1420, 0x1a2af: 0x6d3ff620, - 0x1a2b0: 0x6c07f420, 0x1a2b1: 0x6cd95e20, 0x1a2b2: 0x6c02ce20, 0x1a2b3: 0x6c1ffe20, - 0x1a2b4: 0x6d226620, 0x1a2b5: 0x6d2d4220, 0x1a2b6: 0x6d40c220, 0x1a2b7: 0x6cce0620, - 0x1a2b8: 0x6c208e20, 0x1a2b9: 0x6c6e8c20, 0x1a2ba: 0x6c1c2c20, 0x1a2bb: 0x6ccc3220, - 0x1a2bc: 0x6c4ecc20, 0x1a2bd: 0x6d2eb820, 0x1a2be: 0x6cbe4c20, 0x1a2bf: 0x6d0e8020, - // Block 0x68b, offset 0x1a2c0 - 0x1a2c0: 0x6c2c6620, 0x1a2c1: 0x6d01bc20, 0x1a2c2: 0x6c909220, 0x1a2c3: 0x6c072020, - 0x1a2c4: 0x6cb1b020, 0x1a2c5: 0x6c6c9420, 0x1a2c6: 0x6c88f020, 0x1a2c7: 0x6c926020, - 0x1a2c8: 0x6c976620, 0x1a2c9: 0x6cb8ea20, 0x1a2ca: 0x6cfaba20, 0x1a2cb: 0x6ce09c20, - 0x1a2cc: 0x6d1c7a20, 0x1a2cd: 0x6c307e20, 0x1a2ce: 0x6d3bd220, 0x1a2cf: 0x6cfe3c20, - 0x1a2d0: 0x6ccd9220, 0x1a2d1: 0x6cbbe220, 0x1a2d2: 0x6c6f2220, 0x1a2d3: 0x6ce9e820, - 0x1a2d4: 0x6d420620, 0x1a2d5: 0x6cb44220, 0x1a2d6: 0x6cf66020, 0x1a2d7: 0x6c815e20, - 0x1a2d8: 0x6c16f020, 0x1a2d9: 0x6c49ec20, 0x1a2da: 0x6c89ec20, 0x1a2db: 0x6cb50420, - 0x1a2dc: 0x6c197820, 0x1a2dd: 0x6c150820, 0x1a2de: 0x6cefee20, 0x1a2df: 0x6c5efe20, - 0x1a2e0: 0x6c0e8220, 0x1a2e1: 0x6c5bf020, 0x1a2e2: 0x6c202420, 0x1a2e3: 0x6ce5fc20, - 0x1a2e4: 0x6c289a20, 0x1a2e5: 0x6c691220, 0x1a2e6: 0x6c700a20, 0x1a2e7: 0x6ccbb820, - 0x1a2e8: 0x6c3be020, 0x1a2e9: 0x6cfce620, 0x1a2ea: 0x6c713c20, 0x1a2eb: 0x6c366c20, - 0x1a2ec: 0x6c685820, 0x1a2ed: 0x6c66a420, 0x1a2ee: 0x6ce76420, 0x1a2ef: 0x6c8c5620, - 0x1a2f0: 0x6c0f2420, 0x1a2f1: 0x6c482220, 0x1a2f2: 0x6cfd5820, 0x1a2f3: 0x6cdade20, - 0x1a2f4: 0x6cfce820, 0x1a2f5: 0x6c676e20, 0x1a2f6: 0x6c9fc020, 0x1a2f7: 0x6d130e20, - 0x1a2f8: 0x6c6d3220, 0x1a2f9: 0x6c644e20, 0x1a2fa: 0x6cbc5220, 0x1a2fb: 0x6cb0b420, - 0x1a2fc: 0x6c3c6020, 0x1a2fd: 0x6d394220, 0x1a2fe: 0x6c00c020, 0x1a2ff: 0x6cc9e820, - // Block 0x68c, offset 0x1a300 - 0x1a300: 0x6d154220, 0x1a301: 0x6c75d220, 0x1a302: 0x6ca9be20, 0x1a303: 0x6c151620, - 0x1a304: 0x6d184620, 0x1a305: 0x6c297c20, 0x1a306: 0x6c6e2420, 0x1a307: 0x6d07b620, - 0x1a308: 0x6c7b3020, 0x1a309: 0x6c65c820, 0x1a30a: 0x6c1f6820, 0x1a30b: 0x6c27f420, - 0x1a30c: 0x6c692020, 0x1a30d: 0x6ccc3420, 0x1a30e: 0x6d294020, 0x1a30f: 0x6c121820, - 0x1a310: 0x6c0d5020, 0x1a311: 0x6c017220, 0x1a312: 0x6cc7c420, 0x1a313: 0x6cdf3c20, - 0x1a314: 0x6c1dd820, 0x1a315: 0x6c148a20, 0x1a316: 0x6c7fb220, 0x1a317: 0x6ca64620, - 0x1a318: 0x6c6cb420, 0x1a319: 0x6cba7020, 0x1a31a: 0x6c9b3420, 0x1a31b: 0x6cf47620, - 0x1a31c: 0x6ca91820, 0x1a31d: 0x6cbf5a20, 0x1a31e: 0x6ca64820, 0x1a31f: 0x6c16c820, - 0x1a320: 0x6c8b2e20, 0x1a321: 0x6c82dc20, 0x1a322: 0x6c93b820, 0x1a323: 0x6c7bd020, - 0x1a324: 0x6c066c20, 0x1a325: 0x6d240420, 0x1a326: 0x6c0c2a20, 0x1a327: 0x6d297820, - 0x1a328: 0x6d349e20, 0x1a329: 0x6cd8f220, 0x1a32a: 0x6d1eb420, 0x1a32b: 0x6c4fe820, - 0x1a32c: 0x6c193220, 0x1a32d: 0x6c193620, 0x1a32e: 0x6c86bc20, 0x1a32f: 0x6ce2be20, - 0x1a330: 0x6cf02420, 0x1a331: 0x6c903a20, 0x1a332: 0x6c1eee20, 0x1a333: 0x6c154020, - 0x1a334: 0x6cc4e020, 0x1a335: 0x6cd51220, 0x1a336: 0x6c5c8820, 0x1a337: 0x6c874220, - 0x1a338: 0x6c956820, 0x1a339: 0x6d298020, 0x1a33a: 0x6caace20, 0x1a33b: 0x6ce18820, - 0x1a33c: 0x6d0e1220, 0x1a33d: 0x6c829420, 0x1a33e: 0x6ca47c20, 0x1a33f: 0x6c372e20, - // Block 0x68d, offset 0x1a340 - 0x1a340: 0x6cf49020, 0x1a341: 0x6d27d220, 0x1a342: 0x6d294a20, 0x1a343: 0x6d252e20, - 0x1a344: 0x6d044a20, 0x1a345: 0x6c1ca820, 0x1a346: 0x6d2f9620, 0x1a347: 0x6d044e20, - 0x1a348: 0x6cfa6e20, 0x1a349: 0x6c49d020, 0x1a34a: 0x6c332e20, 0x1a34b: 0x6c787820, - 0x1a34c: 0x6c333020, 0x1a34d: 0x6c9dfe20, 0x1a34e: 0x6ce91c20, 0x1a34f: 0x6c169420, - 0x1a350: 0x6c373220, 0x1a351: 0x6c333220, 0x1a352: 0x6c373620, 0x1a353: 0x6c6c2c20, - 0x1a354: 0x6ce92020, 0x1a355: 0x6cd87e20, 0x1a356: 0x6d0d4420, 0x1a357: 0x6d0d5020, - 0x1a358: 0x6cd2bc20, 0x1a35a: 0x6c292a20, 0x1a35b: 0x6cb8c220, - 0x1a35c: 0x6c30a820, 0x1a35d: 0x6c3b2820, 0x1a35e: 0x6c98d620, 0x1a35f: 0x6ccfe220, - 0x1a360: 0x6c30aa20, 0x1a362: 0x6c6dc620, 0x1a363: 0x6c852e20, - 0x1a364: 0x6c5a2a20, 0x1a365: 0x6cc80e20, 0x1a366: 0x6cedd820, 0x1a367: 0x6ca57e20, - 0x1a368: 0x6cc2b220, 0x1a369: 0x6c898820, 0x1a36a: 0x6d20d420, 0x1a36b: 0x6c030a20, - 0x1a36c: 0x6c454e20, 0x1a36d: 0x6c8f2420, 0x1a36e: 0x6cf55c20, 0x1a36f: 0x6c4f4220, - 0x1a370: 0x6c7f8620, 0x1a371: 0x6c460a20, 0x1a372: 0x6ce45620, 0x1a373: 0x6c490020, - 0x1a374: 0x6d041020, 0x1a375: 0x6c0daa20, 0x1a376: 0x6cb57a20, 0x1a377: 0x6c720620, - 0x1a378: 0x6c2d0620, 0x1a379: 0x6d3e0820, 0x1a37a: 0x6c3b2020, 0x1a37b: 0x6d100620, - 0x1a37c: 0x6c647a20, 0x1a37d: 0x6cd45820, 0x1a37e: 0x6c621420, 0x1a37f: 0x6d17da20, - // Block 0x68e, offset 0x1a380 - 0x1a380: 0x6c627020, 0x1a381: 0x6c15ec20, 0x1a382: 0x6c6ed020, 0x1a383: 0x6c993e20, - 0x1a384: 0x6cc4a620, 0x1a385: 0x6ca58020, 0x1a386: 0x6d253020, 0x1a387: 0x6c991c20, - 0x1a388: 0x6c424c20, 0x1a389: 0x6cc4a820, 0x1a38a: 0x6c12c620, 0x1a38b: 0x6c6ed220, - 0x1a38c: 0x6c12c820, 0x1a38d: 0x6d292620, 0x1a38e: 0x6c488820, 0x1a38f: 0x6c6ef020, - 0x1a390: 0x6c994820, 0x1a391: 0x6d390820, 0x1a392: 0x6c994e20, 0x1a393: 0x6c46a020, - 0x1a394: 0x6d063220, 0x1a395: 0x6c9e1820, 0x1a396: 0x6c9d1620, 0x1a397: 0x6cc6ec20, - 0x1a398: 0x6d1a1a20, 0x1a399: 0x6d013e20, 0x1a39a: 0x6c76bc20, 0x1a39b: 0x6c755020, - 0x1a39c: 0x6ca9ae20, 0x1a39d: 0x6d145a20, 0x1a39e: 0x6c9c3420, 0x1a39f: 0x6cd32820, - 0x1a3a0: 0x6c490620, 0x1a3a1: 0x6c9b0e20, 0x1a3a2: 0x6d37ec20, 0x1a3a3: 0x6c722620, - 0x1a3a4: 0x6d24d020, 0x1a3a5: 0x6c9ff220, 0x1a3a6: 0x6c79de20, 0x1a3a7: 0x6c8ba420, - 0x1a3a8: 0x6c3fe020, 0x1a3a9: 0x6d014420, 0x1a3aa: 0x6c9d7620, 0x1a3ab: 0x6c0d9e20, - 0x1a3ac: 0x6c2fd820, 0x1a3ad: 0x6cdf0c20, 0x1a3ae: 0x6c425020, 0x1a3af: 0x6c3c9a20, - 0x1a3b0: 0x6c0da620, 0x1a3b1: 0x6c564620, 0x1a3b2: 0x6c1caa20, 0x1a3b3: 0x6c73cc20, - 0x1a3b4: 0x6c564820, 0x1a3b5: 0x6c7bdc20, 0x1a3b6: 0x6d12a220, 0x1a3b7: 0x6c839020, - 0x1a3b8: 0x6cac9a20, 0x1a3b9: 0x6c3dd220, 0x1a3ba: 0x6c9f8c20, 0x1a3bb: 0x6c305020, - 0x1a3bc: 0x6cfbe620, 0x1a3bd: 0x6c8ac620, 0x1a3be: 0x6cb84020, 0x1a3bf: 0x6c646820, - // Block 0x68f, offset 0x1a3c0 - 0x1a3c0: 0x6c6e4a20, 0x1a3c1: 0x6cd5a620, 0x1a3c2: 0x6c9a4c20, 0x1a3c3: 0x6ce88a20, - 0x1a3c4: 0x6cb4d820, 0x1a3c5: 0x6c480220, 0x1a3c6: 0x6d3cda20, 0x1a3c7: 0x6cd91220, - 0x1a3c8: 0x6c6e6020, 0x1a3c9: 0x6c894a20, 0x1a3ca: 0x6cbec420, 0x1a3cb: 0x6c2db820, - 0x1a3cc: 0x6c8cc420, 0x1a3cd: 0x6c306c20, 0x1a3ce: 0x6c421620, 0x1a3cf: 0x6c658220, - 0x1a3d0: 0x6d19c620, 0x1a3d1: 0x6c23ea20, 0x1a3d2: 0x6d14f220, 0x1a3d3: 0x6c860620, - 0x1a3d4: 0x6c20a820, 0x1a3d5: 0x6ca03420, 0x1a3d6: 0x6d3ce820, 0x1a3d7: 0x6c24cc20, - 0x1a3d8: 0x6cd7fe20, 0x1a3d9: 0x6c345c20, 0x1a3da: 0x6c6d3420, 0x1a3db: 0x6c8c2620, - 0x1a3dc: 0x6c8c2820, 0x1a3dd: 0x6ca91a20, 0x1a3de: 0x6cf6b620, 0x1a3df: 0x6c31be20, - 0x1a3e0: 0x6c610c20, 0x1a3e1: 0x6c387820, 0x1a3e2: 0x6c387a20, 0x1a3e3: 0x6c387c20, - 0x1a3e4: 0x6c3cd620, 0x1a3e5: 0x6c704a20, 0x1a3e6: 0x6c1ed220, 0x1a3e7: 0x6d337a20, - 0x1a3e8: 0x6c3c1420, 0x1a3e9: 0x6ca2c220, 0x1a3ea: 0x6d377a20, 0x1a3eb: 0x6c3dcc20, - 0x1a3ec: 0x6c3c1620, 0x1a3ed: 0x6cb27220, 0x1a3ee: 0x6c3c2020, 0x1a3ef: 0x6c764420, - 0x1a3f0: 0x6c59b220, 0x1a3f1: 0x6c765220, 0x1a3f2: 0x6c419a20, 0x1a3f3: 0x6c2ad820, - 0x1a3f4: 0x6cb2bc20, 0x1a3f5: 0x6cb9ec20, 0x1a3f6: 0x6d044820, 0x1a3f7: 0x6c7b0a20, - 0x1a3f8: 0x6ce83620, 0x1a3f9: 0x6c022420, 0x1a3fa: 0x6c1e5020, 0x1a3fb: 0x6c5e6820, - 0x1a3fc: 0x6c295020, 0x1a3fd: 0x6c4dd220, 0x1a3fe: 0x6c4dda20, 0x1a3ff: 0x6d2a3420, - // Block 0x690, offset 0x1a400 - 0x1a400: 0x6c29b020, 0x1a401: 0x6c2da220, 0x1a402: 0x6c29b220, 0x1a403: 0x6cc5a020, - 0x1a404: 0x6cc5a220, 0x1a405: 0x6c204a20, 0x1a406: 0x6c3b0820, 0x1a407: 0x6cbc9020, - 0x1a408: 0x6d163e20, 0x1a409: 0x6c5e6a20, 0x1a40a: 0x6c76a020, 0x1a40b: 0x6cba3a20, - 0x1a40c: 0x6c25ac20, 0x1a40d: 0x6c1e7220, 0x1a40e: 0x6cf1c620, 0x1a40f: 0x6c5e7220, - 0x1a410: 0x6c281c20, 0x1a411: 0x6d03b820, 0x1a412: 0x6c577820, 0x1a413: 0x6cecb620, - 0x1a414: 0x6c73ce20, 0x1a415: 0x6c839e20, 0x1a416: 0x6d267020, 0x1a417: 0x6c8abc20, - 0x1a418: 0x6c8e3e20, 0x1a419: 0x6d2aa220, 0x1a41a: 0x6c425220, 0x1a41b: 0x6c209e20, - 0x1a41c: 0x6c3dd420, 0x1a41d: 0x6c1e5420, 0x1a41e: 0x6cc26020, 0x1a41f: 0x6c704c20, - 0x1a420: 0x6cccb820, 0x1a421: 0x6c9f8e20, 0x1a422: 0x6c8c9a20, 0x1a423: 0x6d378a20, - 0x1a424: 0x6cac9c20, 0x1a425: 0x6c0cd820, 0x1a426: 0x6c6a6420, 0x1a427: 0x6c6a6620, - 0x1a428: 0x6cad4420, 0x1a429: 0x6c857620, 0x1a42a: 0x6cccba20, 0x1a42b: 0x6c0cda20, - 0x1a42c: 0x6c158e20, 0x1a42d: 0x6c6e0620, 0x1a42e: 0x6c484420, 0x1a42f: 0x6c44b820, - 0x1a430: 0x6c2a0020, 0x1a431: 0x6c20a220, 0x1a432: 0x6c7c3220, 0x1a433: 0x6c7a2020, - 0x1a434: 0x6c34ca20, 0x1a435: 0x6c37be20, 0x1a436: 0x6d358020, 0x1a437: 0x6cd64020, - 0x1a438: 0x6cc36e20, 0x1a439: 0x6ccbce20, 0x1a43a: 0x6c22b220, 0x1a43b: 0x6c787a20, - 0x1a43c: 0x6c6a7620, 0x1a43d: 0x6c4b2a20, 0x1a43e: 0x6c22b420, 0x1a43f: 0x6c4b2c20, - // Block 0x691, offset 0x1a440 - 0x1a440: 0x6c764620, 0x1a441: 0x6c34cc20, 0x1a442: 0x6c619020, 0x1a443: 0x6ce3d820, - 0x1a444: 0x6c6e1420, 0x1a445: 0x6c907c20, 0x1a446: 0x6c95a620, 0x1a447: 0x6d2ab220, - 0x1a448: 0x6d24cc20, 0x1a449: 0x6c260c20, 0x1a44a: 0x6d08da20, 0x1a44b: 0x6c788220, - 0x1a44c: 0x6c7e5a20, 0x1a44d: 0x6cb97820, 0x1a44e: 0x6ccbd020, 0x1a44f: 0x6c20a420, - 0x1a450: 0x6c489420, 0x1a451: 0x6c665820, 0x1a452: 0x6c261020, 0x1a453: 0x6c83aa20, - 0x1a454: 0x6ce2e820, 0x1a455: 0x6c3a9620, 0x1a456: 0x6cb3c620, 0x1a457: 0x6c15a020, - 0x1a458: 0x6cb59c20, 0x1a459: 0x6c20a620, 0x1a45a: 0x6d3f3820, 0x1a45b: 0x6c426c20, - 0x1a45c: 0x6cec8420, 0x1a45d: 0x6c0e5a20, 0x1a45e: 0x6c5e9e20, 0x1a45f: 0x6c342220, - 0x1a460: 0x6cbe7220, 0x1a461: 0x6ccd7420, 0x1a462: 0x6c316620, 0x1a463: 0x6c666a20, - 0x1a464: 0x6c61c220, 0x1a465: 0x6c0e5c20, 0x1a466: 0x6d0be220, 0x1a467: 0x6c722820, - 0x1a468: 0x6c5d5420, 0x1a469: 0x6cd16220, 0x1a46a: 0x6c658420, 0x1a46b: 0x6c344420, - 0x1a46c: 0x6c329620, 0x1a46d: 0x6cf36220, 0x1a46e: 0x6c489820, 0x1a46f: 0x6c3fe220, - 0x1a470: 0x6cd15a20, 0x1a471: 0x6c667420, 0x1a472: 0x6c438c20, 0x1a473: 0x6c269420, - 0x1a474: 0x6c765420, 0x1a475: 0x6c20aa20, 0x1a476: 0x6c1fe220, 0x1a477: 0x6c15bc20, - 0x1a478: 0x6ce94e20, 0x1a479: 0x6c926220, 0x1a47a: 0x6c83de20, 0x1a47b: 0x6caf0a20, - 0x1a47c: 0x6ccce820, 0x1a47d: 0x6cb15620, 0x1a47e: 0x6c79bc20, 0x1a47f: 0x6c690220, - // Block 0x692, offset 0x1a480 - 0x1a480: 0x6c486620, 0x1a481: 0x6cbb8a20, 0x1a482: 0x6c747220, 0x1a483: 0x6c57a820, - 0x1a484: 0x6d2be620, 0x1a485: 0x6d3df620, 0x1a486: 0x6c882a20, 0x1a487: 0x6c727420, - 0x1a488: 0x6caf8420, 0x1a489: 0x6c8e8020, 0x1a48a: 0x6c4b5e20, 0x1a48b: 0x6c692220, - 0x1a48c: 0x6c4b6020, 0x1a48d: 0x6c66b020, 0x1a48e: 0x6c66b220, 0x1a48f: 0x6ce0c820, - 0x1a490: 0x6c5d5a20, 0x1a491: 0x6c627220, 0x1a492: 0x6c66cc20, 0x1a493: 0x6d187e20, - 0x1a494: 0x6c66ce20, 0x1a495: 0x6d370020, 0x1a496: 0x6c154220, 0x1a497: 0x6c662020, - 0x1a498: 0x6ca09820, 0x1a499: 0x6c84c820, 0x1a49a: 0x6d3a8c20, 0x1a49b: 0x6c855c20, - 0x1a49c: 0x6d0b6220, 0x1a49d: 0x6cc36c20, 0x1a49e: 0x6c04da20, 0x1a49f: 0x6c455420, - 0x1a4a0: 0x6c631620, 0x1a4a1: 0x6cf55220, 0x1a4a2: 0x6c971e20, 0x1a4a3: 0x6c8abe20, - 0x1a4a4: 0x6c6cce20, 0x1a4a5: 0x6c792020, 0x1a4a6: 0x6d006420, 0x1a4a7: 0x6d34d220, - 0x1a4a8: 0x6c304c20, 0x1a4a9: 0x6d3aa020, 0x1a4aa: 0x6caa4a20, 0x1a4ab: 0x6c6a6820, - 0x1a4ac: 0x6cc17420, 0x1a4ad: 0x6ccec020, 0x1a4ae: 0x6d167620, 0x1a4af: 0x6d398020, - 0x1a4b0: 0x6ca0c020, 0x1a4b1: 0x6c857a20, 0x1a4b2: 0x6c6cd020, 0x1a4b3: 0x6c813e20, - 0x1a4b4: 0x6c814020, 0x1a4b5: 0x6c733e20, 0x1a4b6: 0x6c79ce20, 0x1a4b7: 0x6d0f8620, - 0x1a4b8: 0x6cebc620, 0x1a4b9: 0x6cffd420, 0x1a4ba: 0x6ca1c220, 0x1a4bb: 0x6c7b8420, - 0x1a4bc: 0x6c6a7a20, 0x1a4bd: 0x6c8aca20, 0x1a4be: 0x6c50ba20, 0x1a4bf: 0x6cd31420, - // Block 0x693, offset 0x1a4c0 - 0x1a4c0: 0x6c788420, 0x1a4c1: 0x6c6ce020, 0x1a4c2: 0x6c433620, 0x1a4c3: 0x6c0ec220, - 0x1a4c4: 0x6c9f9820, 0x1a4c5: 0x6c1bf420, 0x1a4c6: 0x6c80a020, 0x1a4c7: 0x6d1e1820, - 0x1a4c8: 0x6d1e1a20, 0x1a4c9: 0x6c9e0c20, 0x1a4ca: 0x6c788620, 0x1a4cb: 0x6d099220, - 0x1a4cc: 0x6c734420, 0x1a4cd: 0x6cbe7420, 0x1a4ce: 0x6c922820, 0x1a4cf: 0x6c107c20, - 0x1a4d0: 0x6c9bcc20, 0x1a4d1: 0x6c1c0420, 0x1a4d2: 0x6c823c20, 0x1a4d3: 0x6c768620, - 0x1a4d4: 0x6c9e1a20, 0x1a4d5: 0x6c307220, 0x1a4d6: 0x6d06b420, 0x1a4d7: 0x6d06ba20, - 0x1a4d8: 0x6c76a620, 0x1a4d9: 0x6cf55620, 0x1a4da: 0x6d175020, 0x1a4db: 0x6d099820, - 0x1a4dc: 0x6cf24a20, 0x1a4dd: 0x6cd16420, 0x1a4de: 0x6c815620, 0x1a4df: 0x6ca28420, - 0x1a4e0: 0x6c926420, 0x1a4e1: 0x6cb1b220, 0x1a4e2: 0x6cd39620, 0x1a4e3: 0x6c5ee220, - 0x1a4e4: 0x6cbd7c20, 0x1a4e5: 0x6c67ee20, 0x1a4e6: 0x6c174c20, 0x1a4e7: 0x6cc37420, - 0x1a4e8: 0x6cfe3e20, 0x1a4e9: 0x6d181c20, 0x1a4ea: 0x6c747620, 0x1a4eb: 0x6c385220, - 0x1a4ec: 0x6c72fa20, 0x1a4ed: 0x6ce76620, 0x1a4ee: 0x6c727620, 0x1a4ef: 0x6c27f620, - 0x1a4f0: 0x6d00d620, 0x1a4f1: 0x6c973820, 0x1a4f2: 0x6d09a420, 0x1a4f3: 0x6d09a820, - 0x1a4f4: 0x6c940220, 0x1a4f5: 0x6c867020, 0x1a4f6: 0x6c184e20, 0x1a4f7: 0x6cc4e220, - 0x1a4f8: 0x6cc37c20, 0x1a4f9: 0x6c059c20, 0x1a4fa: 0x6cce9420, 0x1a4fb: 0x6d277620, - 0x1a4fc: 0x6c6f4220, 0x1a4fd: 0x6c062c20, 0x1a4fe: 0x6c463220, 0x1a4ff: 0x6cf49220, - // Block 0x694, offset 0x1a500 - 0x1a500: 0x6d277820, 0x1a501: 0x6cf17820, 0x1a502: 0x6c0ade20, 0x1a503: 0x6c412220, - 0x1a504: 0x6c412420, 0x1a505: 0x6c059e20, 0x1a506: 0x6c22f420, 0x1a507: 0x6d198a20, - 0x1a508: 0x6d045020, 0x1a509: 0x6cae5020, 0x1a50a: 0x6c705020, 0x1a50b: 0x6ce20420, - 0x1a50c: 0x6c43c620, 0x1a50d: 0x6cb42c20, 0x1a50e: 0x6c35f820, 0x1a50f: 0x6cad5a20, - 0x1a510: 0x6c3e4820, 0x1a511: 0x6c458820, 0x1a512: 0x6c269620, 0x1a513: 0x6c6fee20, - 0x1a514: 0x6cbef220, 0x1a515: 0x6c08aa20, 0x1a516: 0x6c577620, 0x1a517: 0x6c06c620, - 0x1a518: 0x6ca4ea20, 0x1a519: 0x6cd41420, 0x1a51a: 0x6c397e20, 0x1a51b: 0x6c6fc620, - 0x1a51c: 0x6d144c20, 0x1a51d: 0x6d288020, 0x1a51e: 0x6c67d020, 0x1a51f: 0x6c777820, - 0x1a520: 0x6c681820, 0x1a521: 0x6c7b8020, 0x1a522: 0x6c549220, 0x1a523: 0x6cf98420, - 0x1a524: 0x6cc0ce20, 0x1a525: 0x6c0b6820, 0x1a526: 0x6c4ac620, 0x1a527: 0x6cbc9c20, - 0x1a528: 0x6d29d020, 0x1a529: 0x6c7b8a20, 0x1a52a: 0x6c3a4c20, 0x1a52b: 0x6c54b420, - 0x1a52c: 0x6d224620, 0x1a52d: 0x6c4aee20, 0x1a52e: 0x6c7cf020, 0x1a52f: 0x6c5bd220, - 0x1a530: 0x6c27ea20, 0x1a531: 0x6c4b5c20, 0x1a532: 0x6c881a20, 0x1a533: 0x6c882c20, - 0x1a534: 0x6cdb9420, 0x1a535: 0x6c31c220, 0x1a536: 0x6c703420, 0x1a537: 0x6c74fa20, - 0x1a538: 0x6cf83420, 0x1a539: 0x6cb04020, 0x1a53a: 0x6cc0c420, 0x1a53b: 0x6d13c020, - 0x1a53c: 0x6c77d420, 0x1a53d: 0x6d0d5220, 0x1a53e: 0x6c0b3220, 0x1a53f: 0x6ca68c20, - // Block 0x695, offset 0x1a540 - 0x1a540: 0x6cc0f820, 0x1a541: 0x6cd22420, 0x1a542: 0x6d0a6020, 0x1a543: 0x6cb88c20, - 0x1a544: 0x6ca75420, 0x1a545: 0x6cc96220, 0x1a546: 0x6d40a220, 0x1a547: 0x6cd0d020, - 0x1a548: 0x6cf41620, 0x1a549: 0x6c5b8420, 0x1a54a: 0x6c04dc20, 0x1a54b: 0x6cd2fa20, - 0x1a54c: 0x6cf83620, 0x1a54d: 0x6ced6a20, 0x1a54e: 0x6c572420, 0x1a54f: 0x6d006620, - 0x1a550: 0x6ced6c20, 0x1a551: 0x6c068e20, 0x1a552: 0x6d40a820, 0x1a553: 0x6d3cee20, - 0x1a554: 0x6d007020, 0x1a555: 0x6c27ba20, 0x1a556: 0x6c972820, 0x1a557: 0x6ca3ea20, - 0x1a558: 0x6c27c020, 0x1a559: 0x6c601220, 0x1a55a: 0x6c0efe20, 0x1a55b: 0x6cd67c20, - 0x1a55c: 0x6c100420, 0x1a55d: 0x6c7bd420, 0x1a55e: 0x6c0b6420, 0x1a55f: 0x6c102a20, - 0x1a560: 0x6d2e4620, 0x1a561: 0x6c761820, 0x1a562: 0x6c913020, 0x1a563: 0x6d1f9c20, - 0x1a564: 0x6c91b420, 0x1a565: 0x6cf58420, 0x1a566: 0x6c48a620, 0x1a567: 0x6cf2d420, - 0x1a568: 0x6d017620, 0x1a569: 0x6c6a4e20, 0x1a56a: 0x6c6a5020, 0x1a56b: 0x6cf06820, - 0x1a56c: 0x6c01f020, 0x1a56d: 0x6cbef420, 0x1a56e: 0x6d338020, 0x1a56f: 0x6c991e20, - 0x1a570: 0x6d1b3620, 0x1a571: 0x6cee6620, 0x1a572: 0x6ccec420, 0x1a573: 0x6c5fd220, - 0x1a574: 0x6cc3a020, 0x1a575: 0x6c948c20, 0x1a576: 0x6c1b7c20, 0x1a577: 0x6c731020, - 0x1a578: 0x6d016a20, 0x1a579: 0x6d067e20, 0x1a57a: 0x6c6c8620, 0x1a57b: 0x6cc3a620, - 0x1a57c: 0x6cf4be20, 0x1a57d: 0x6c5fec20, 0x1a57e: 0x6c360a20, 0x1a57f: 0x6cbe3a20, - // Block 0x696, offset 0x1a580 - 0x1a580: 0x6cf63820, 0x1a581: 0x6cca6620, 0x1a582: 0x6c16e020, 0x1a583: 0x6cef8020, - 0x1a584: 0x6c35c020, 0x1a585: 0x6ce62220, 0x1a586: 0x6c856020, 0x1a587: 0x6d300c20, - 0x1a588: 0x6c4e4e20, 0x1a589: 0x6c856420, 0x1a58a: 0x6d0b4620, 0x1a58b: 0x6d0ac820, - 0x1a58c: 0x6d0e3620, 0x1a58d: 0x6ccf3020, 0x1a58e: 0x6c2bca20, 0x1a58f: 0x6d2c7020, - 0x1a590: 0x6cacf020, 0x1a591: 0x6d0b0c20, 0x1a592: 0x6c50bc20, 0x1a593: 0x6d0b1620, - 0x1a594: 0x6d358220, 0x1a595: 0x6c12cc20, 0x1a596: 0x6cacf620, 0x1a597: 0x6ce31020, - 0x1a598: 0x6c83a420, 0x1a599: 0x6ccf3820, 0x1a59a: 0x6c546020, 0x1a59b: 0x6ce63420, - 0x1a59c: 0x6d416820, 0x1a59d: 0x6c261220, 0x1a59e: 0x6c3a9820, 0x1a59f: 0x6d254c20, - 0x1a5a0: 0x6c12dc20, 0x1a5a1: 0x6d255e20, 0x1a5a2: 0x6cfd6a20, 0x1a5a3: 0x6d0d6420, - 0x1a5a4: 0x6c860c20, 0x1a5a5: 0x6c744220, 0x1a5a6: 0x6ccc5020, 0x1a5a7: 0x6c2cca20, - 0x1a5a8: 0x6c1e7c20, 0x1a5a9: 0x6c6ff020, 0x1a5aa: 0x6c6c9620, 0x1a5ab: 0x6c024620, - 0x1a5ac: 0x6c4b1020, 0x1a5ad: 0x6d0e9020, 0x1a5ae: 0x6cd80020, 0x1a5af: 0x6c862620, - 0x1a5b0: 0x6c16f220, 0x1a5b1: 0x6c7faa20, 0x1a5b2: 0x6c864620, 0x1a5b3: 0x6d0cd020, - 0x1a5b4: 0x6d0df620, 0x1a5b5: 0x6d25dc20, 0x1a5b6: 0x6cd7b420, 0x1a5b7: 0x6c455020, - 0x1a5b8: 0x6c8b9c20, 0x1a5b9: 0x6cc73e20, 0x1a5ba: 0x6cc25a20, 0x1a5bb: 0x6cc25c20, - 0x1a5bc: 0x6c377c20, 0x1a5bd: 0x6c82b020, 0x1a5be: 0x6c315e20, 0x1a5bf: 0x6cfc7420, - // Block 0x697, offset 0x1a5c0 - 0x1a5c0: 0x6d3b6e20, 0x1a5c1: 0x6cc9fa20, 0x1a5c2: 0x6c115a20, 0x1a5c3: 0x6c115e20, - 0x1a5c4: 0x6c116020, 0x1a5c5: 0x6c116620, 0x1a5c6: 0x6c00b420, 0x1a5c7: 0x6c278620, - 0x1a5c8: 0x6d200420, 0x1a5c9: 0x6c137220, 0x1a5ca: 0x6c5fb820, 0x1a5cb: 0x6d206820, - 0x1a5cc: 0x6cd6a020, 0x1a5cd: 0x6c390020, 0x1a5ce: 0x6cd42620, 0x1a5cf: 0x6c48e420, - 0x1a5d0: 0x6c035c20, 0x1a5d1: 0x6c37e220, 0x1a5d2: 0x6cc91020, 0x1a5d3: 0x6cd30820, - 0x1a5d4: 0x6cd4a620, 0x1a5d5: 0x6d3d2a20, 0x1a5d6: 0x6cc23c20, 0x1a5d7: 0x6cd45220, - 0x1a5d8: 0x6c0b7a20, 0x1a5d9: 0x6d068a20, 0x1a5da: 0x6c640420, 0x1a5db: 0x6cacaa20, - 0x1a5dc: 0x6cda0c20, 0x1a5dd: 0x6c433820, 0x1a5de: 0x6cf08020, 0x1a5df: 0x6cda0e20, - 0x1a5e0: 0x6c2ebc20, 0x1a5e1: 0x6cc8e220, 0x1a5e2: 0x6c23bc20, 0x1a5e3: 0x6c79c820, - 0x1a5e4: 0x6c475020, 0x1a5e5: 0x6c71ea20, 0x1a5e6: 0x6c8e1a20, 0x1a5e7: 0x6c488a20, - 0x1a5e8: 0x6c29b420, 0x1a5e9: 0x6c79d420, 0x1a5ea: 0x6d34ce20, 0x1a5eb: 0x6c697a20, - 0x1a5ec: 0x6d2f9420, 0x1a5ed: 0x6c03e820, 0x1a5ee: 0x6c2f4420, 0x1a5ef: 0x6c785220, - 0x1a5f0: 0x6cdf0e20, 0x1a5f1: 0x6c1bd620, 0x1a5f2: 0x6cd2a420, 0x1a5f3: 0x6d200820, - 0x1a5f4: 0x6cbfee20, 0x1a5f5: 0x6cb34620, 0x1a5f6: 0x6d12ba20, 0x1a5f7: 0x6c500e20, - 0x1a5f8: 0x6cd7bc20, 0x1a5f9: 0x6ce08a20, 0x1a5fa: 0x6c1b7220, 0x1a5fb: 0x6c820a20, - 0x1a5fc: 0x6c2daa20, 0x1a5fd: 0x6c5e6c20, 0x1a5fe: 0x6c8a5c20, 0x1a5ff: 0x6c529020, - // Block 0x698, offset 0x1a600 - 0x1a600: 0x6c9ebe20, 0x1a601: 0x6d056020, 0x1a602: 0x6c982420, 0x1a603: 0x6c1a9020, - 0x1a604: 0x6c447c20, 0x1a605: 0x6d077820, 0x1a606: 0x6d108620, 0x1a607: 0x6d3ed820, - 0x1a608: 0x6c50b620, 0x1a609: 0x6c5fc220, 0x1a60a: 0x6c2e0820, 0x1a60b: 0x6c25b220, - 0x1a60c: 0x6ce70c20, 0x1a60d: 0x6c9fe620, 0x1a60e: 0x6c545a20, 0x1a60f: 0x6c856e20, - 0x1a610: 0x6ce91620, 0x1a611: 0x6cfe1620, 0x1a612: 0x6d2bc220, 0x1a613: 0x6cfa2a20, - 0x1a614: 0x6d12a020, 0x1a615: 0x6c937420, 0x1a616: 0x6d0aca20, 0x1a617: 0x6c96ee20, - 0x1a618: 0x6cab7420, 0x1a619: 0x6c5d5220, 0x1a61a: 0x6d13c220, 0x1a61b: 0x6c755420, - 0x1a61c: 0x6c1e1c20, 0x1a61d: 0x6c8c4420, 0x1a61e: 0x6cea1620, 0x1a61f: 0x6d1a2420, - 0x1a620: 0x6c3a7e20, 0x1a621: 0x6c08b820, 0x1a622: 0x6cbdfe20, 0x1a623: 0x6cbe0020, - 0x1a624: 0x6c6ba820, 0x1a625: 0x6c105c20, 0x1a626: 0x6c3d1c20, 0x1a627: 0x6c03ea20, - 0x1a628: 0x6c339620, 0x1a629: 0x6c3b0c20, 0x1a62a: 0x6c354820, 0x1a62b: 0x6c4dce20, - 0x1a62c: 0x6ce62c20, 0x1a62d: 0x6c792420, 0x1a62e: 0x6cd74620, 0x1a62f: 0x6cb6d020, - 0x1a630: 0x6c52f020, 0x1a631: 0x6d338620, 0x1a632: 0x6d1aca20, 0x1a633: 0x6cf3a020, - 0x1a634: 0x6cf3a220, 0x1a635: 0x6c178c20, 0x1a636: 0x6ca55820, 0x1a637: 0x6d093c20, - 0x1a638: 0x6cf56a20, 0x1a639: 0x6c20b420, 0x1a63a: 0x6c309e20, 0x1a63b: 0x6cf1c820, - 0x1a63c: 0x6c544820, 0x1a63d: 0x6c529220, 0x1a63e: 0x6cf3a420, 0x1a63f: 0x6c433220, - // Block 0x699, offset 0x1a640 - 0x1a640: 0x6d0bda20, 0x1a641: 0x6c759420, 0x1a642: 0x6c937620, 0x1a643: 0x6c35d020, - 0x1a644: 0x6c43c020, 0x1a645: 0x6c99ce20, 0x1a646: 0x6c270420, 0x1a647: 0x6cb6d220, - 0x1a648: 0x6c19b620, 0x1a649: 0x6cf3a620, 0x1a64a: 0x6c433420, 0x1a64b: 0x6c3d3820, - 0x1a64c: 0x6c698020, 0x1a64d: 0x6c529420, 0x1a64e: 0x6c1b7820, 0x1a64f: 0x6cd0da20, - 0x1a650: 0x6ca55a20, 0x1a651: 0x6cea1820, 0x1a652: 0x6c3f3220, 0x1a653: 0x6d167820, - 0x1a654: 0x6c270620, 0x1a655: 0x6cab7620, 0x1a656: 0x6c857c20, 0x1a657: 0x6c077620, - 0x1a658: 0x6d253820, 0x1a659: 0x6c4c0e20, 0x1a65a: 0x6cf21a20, 0x1a65b: 0x6cba9c20, - 0x1a65c: 0x6cf35020, 0x1a65d: 0x6c35da20, 0x1a65e: 0x6cd19820, 0x1a65f: 0x6c731220, - 0x1a660: 0x6cae4620, 0x1a661: 0x6cf1ce20, 0x1a662: 0x6ca55c20, 0x1a663: 0x6c965a20, - 0x1a664: 0x6c8e1c20, 0x1a665: 0x6cc46020, 0x1a666: 0x6d1e9420, 0x1a667: 0x6c2bd420, - 0x1a668: 0x6d385a20, 0x1a669: 0x6cd31620, 0x1a66a: 0x6d38fa20, 0x1a66b: 0x6ce60e20, - 0x1a66c: 0x6cf84420, 0x1a66d: 0x6d16a820, 0x1a66e: 0x6cb74220, 0x1a66f: 0x6cb27420, - 0x1a670: 0x6d3ef420, 0x1a671: 0x6c46ea20, 0x1a672: 0x6c21f420, 0x1a673: 0x6cf07220, - 0x1a674: 0x6d062a20, 0x1a675: 0x6c000420, 0x1a676: 0x6ca49220, 0x1a677: 0x6c40be20, - 0x1a678: 0x6cadac20, 0x1a679: 0x6d16aa20, 0x1a67a: 0x6cfe8220, 0x1a67b: 0x6ccfa820, - 0x1a67c: 0x6c549820, 0x1a67d: 0x6ca04020, 0x1a67e: 0x6c267a20, 0x1a67f: 0x6cc26220, - // Block 0x69a, offset 0x1a680 - 0x1a680: 0x6c71a220, 0x1a681: 0x6c4dd420, 0x1a682: 0x6d288820, 0x1a683: 0x6ceaa820, - 0x1a684: 0x6c341a20, 0x1a685: 0x6cb3ec20, 0x1a686: 0x6cad4620, 0x1a687: 0x6c0cdc20, - 0x1a688: 0x6c3de020, 0x1a689: 0x6d0f4420, 0x1a68a: 0x6c50be20, 0x1a68b: 0x6d28e820, - 0x1a68c: 0x6c50c020, 0x1a68d: 0x6c4d0c20, 0x1a68e: 0x6c6fd420, 0x1a68f: 0x6d1e1220, - 0x1a690: 0x6c40aa20, 0x1a691: 0x6c264020, 0x1a692: 0x6d38fc20, 0x1a693: 0x6cec1220, - 0x1a694: 0x6c760c20, 0x1a695: 0x6c483220, 0x1a696: 0x6c760e20, 0x1a697: 0x6d42b820, - 0x1a698: 0x6c106020, 0x1a699: 0x6c8f6a20, 0x1a69a: 0x6c2fda20, 0x1a69b: 0x6ca8f420, - 0x1a69c: 0x6cdefe20, 0x1a69d: 0x6cd7c820, 0x1a69e: 0x6cfc7820, 0x1a69f: 0x6c5da420, - 0x1a6a0: 0x6cb75020, 0x1a6a1: 0x6c37c020, 0x1a6a2: 0x6c35e420, 0x1a6a3: 0x6c49da20, - 0x1a6a4: 0x6d2cb220, 0x1a6a5: 0x6cf85420, 0x1a6a6: 0x6d148a20, 0x1a6a7: 0x6c8b9220, - 0x1a6a8: 0x6d3e0a20, 0x1a6a9: 0x6c9ec020, 0x1a6aa: 0x6c9c2e20, 0x1a6ab: 0x6d34fa20, - 0x1a6ac: 0x6d119420, 0x1a6ad: 0x6c5e9220, 0x1a6ae: 0x6d390a20, 0x1a6af: 0x6c437820, - 0x1a6b0: 0x6cd5a820, 0x1a6b1: 0x6d295e20, 0x1a6b2: 0x6cffd620, 0x1a6b3: 0x6c4d0e20, - 0x1a6b4: 0x6c5a8e20, 0x1a6b5: 0x6c7ad420, 0x1a6b6: 0x6c580c20, 0x1a6b7: 0x6ce20820, - 0x1a6b8: 0x6cfb3020, 0x1a6b9: 0x6c35e620, 0x1a6ba: 0x6d084220, 0x1a6bb: 0x6d04ba20, - 0x1a6bc: 0x6c4c1020, 0x1a6bd: 0x6d0e4220, 0x1a6be: 0x6c81a020, 0x1a6bf: 0x6d13ce20, - // Block 0x69b, offset 0x1a6c0 - 0x1a6c0: 0x6c001620, 0x1a6c1: 0x6cb23820, 0x1a6c2: 0x6cd04a20, 0x1a6c3: 0x6ce72020, - 0x1a6c4: 0x6c529a20, 0x1a6c5: 0x6d045c20, 0x1a6c6: 0x6c341c20, 0x1a6c7: 0x6cec4c20, - 0x1a6c8: 0x6c4cf820, 0x1a6c9: 0x6d28f820, 0x1a6ca: 0x6d201e20, 0x1a6cb: 0x6c2f3020, - 0x1a6cc: 0x6cac1c20, 0x1a6cd: 0x6cfddc20, 0x1a6ce: 0x6c001420, 0x1a6cf: 0x6c449c20, - 0x1a6d0: 0x6c7b8c20, 0x1a6d1: 0x6d0b4a20, 0x1a6d2: 0x6c264220, 0x1a6d3: 0x6cfe8a20, - 0x1a6d4: 0x6c094220, 0x1a6d5: 0x6c5b9620, 0x1a6d6: 0x6ca77420, 0x1a6d7: 0x6c570a20, - 0x1a6d8: 0x6d044220, 0x1a6d9: 0x6c7b1820, 0x1a6da: 0x6c347620, 0x1a6db: 0x6c3b1c20, - 0x1a6dc: 0x6c619c20, 0x1a6dd: 0x6ca9b220, 0x1a6de: 0x6ca1ba20, 0x1a6df: 0x6d1d7620, - 0x1a6e0: 0x6c502420, 0x1a6e1: 0x6d254e20, 0x1a6e2: 0x6c905620, 0x1a6e3: 0x6cb3ee20, - 0x1a6e4: 0x6c984820, 0x1a6e5: 0x6c438020, 0x1a6e6: 0x6cab2820, 0x1a6e7: 0x6c1a9a20, - 0x1a6e8: 0x6ccece20, 0x1a6e9: 0x6c87dc20, 0x1a6ea: 0x6ca2f420, 0x1a6eb: 0x6d40ae20, - 0x1a6ec: 0x6c50ea20, 0x1a6ed: 0x6c7a3420, 0x1a6ee: 0x6cfe9220, 0x1a6ef: 0x6cfc9a20, - 0x1a6f0: 0x6c814820, 0x1a6f1: 0x6c0e5e20, 0x1a6f2: 0x6d302c20, 0x1a6f3: 0x6d2bd020, - 0x1a6f4: 0x6c89ac20, 0x1a6f5: 0x6c033620, 0x1a6f6: 0x6c9ec220, 0x1a6f7: 0x6c8ae220, - 0x1a6f8: 0x6cdbb420, 0x1a6f9: 0x6c3e2a20, 0x1a6fa: 0x6c103420, 0x1a6fb: 0x6c4e9020, - 0x1a6fc: 0x6c524620, 0x1a6fd: 0x6c44f220, 0x1a6fe: 0x6cd76820, 0x1a6ff: 0x6c447420, - // Block 0x69c, offset 0x1a700 - 0x1a700: 0x6d203620, 0x1a701: 0x6d0e4c20, 0x1a702: 0x6c46fc20, 0x1a703: 0x6c477020, - 0x1a704: 0x6c077820, 0x1a705: 0x6c4dec20, 0x1a706: 0x6cdd0c20, 0x1a707: 0x6c213820, - 0x1a708: 0x6d171c20, 0x1a709: 0x6c001820, 0x1a70a: 0x6c63ae20, 0x1a70b: 0x6ce84620, - 0x1a70c: 0x6cfb3220, 0x1a70d: 0x6cecf620, 0x1a70e: 0x6c85c420, 0x1a70f: 0x6cf5b220, - 0x1a710: 0x6ce0e820, 0x1a711: 0x6d428a20, 0x1a712: 0x6cc02420, 0x1a713: 0x6c17d420, - 0x1a714: 0x6cf3ac20, 0x1a715: 0x6d2a6e20, 0x1a716: 0x6d0b4c20, 0x1a717: 0x6c30a420, - 0x1a718: 0x6cb6e420, 0x1a719: 0x6c2b6020, 0x1a71a: 0x6cbe0c20, 0x1a71b: 0x6c96ba20, - 0x1a71c: 0x6ca0ee20, 0x1a71d: 0x6c461220, 0x1a71e: 0x6c30e620, 0x1a71f: 0x6cc26c20, - 0x1a720: 0x6c814a20, 0x1a721: 0x6c898c20, 0x1a722: 0x6cdd5420, 0x1a723: 0x6d2a7020, - 0x1a724: 0x6c58fe20, 0x1a725: 0x6c813620, 0x1a726: 0x6ccbd620, 0x1a727: 0x6c5ea020, - 0x1a728: 0x6d426820, 0x1a729: 0x6cf28420, 0x1a72a: 0x6c3cca20, 0x1a72b: 0x6c6cfc20, - 0x1a72c: 0x6c56fc20, 0x1a72d: 0x6cb77620, 0x1a72e: 0x6cd45c20, 0x1a72f: 0x6ceefa20, - 0x1a730: 0x6cd64420, 0x1a731: 0x6c171020, 0x1a732: 0x6c374e20, 0x1a733: 0x6c85e620, - 0x1a734: 0x6cbb5620, 0x1a735: 0x6c017e20, 0x1a736: 0x6d2ab620, 0x1a737: 0x6d1d7820, - 0x1a738: 0x6ca75e20, 0x1a739: 0x6d208420, 0x1a73a: 0x6ce4e620, 0x1a73b: 0x6c7f4420, - 0x1a73c: 0x6ccc4220, 0x1a73d: 0x6cf5d820, 0x1a73e: 0x6ceba020, 0x1a73f: 0x6c54b820, - // Block 0x69d, offset 0x1a740 - 0x1a740: 0x6c003c20, 0x1a741: 0x6d2f6420, 0x1a742: 0x6caa1420, 0x1a743: 0x6c790220, - 0x1a744: 0x6d3d4420, 0x1a745: 0x6d3d4620, 0x1a746: 0x6cce0220, 0x1a747: 0x6c2c3a20, - 0x1a748: 0x6c524a20, 0x1a749: 0x6c8ba820, 0x1a74a: 0x6c001020, 0x1a74b: 0x6c112220, - 0x1a74c: 0x6cfd6c20, 0x1a74d: 0x6cea1e20, 0x1a74e: 0x6cf43e20, 0x1a74f: 0x6cf20620, - 0x1a750: 0x6c253020, 0x1a751: 0x6ccc4420, 0x1a752: 0x6c477a20, 0x1a753: 0x6cb6ec20, - 0x1a754: 0x6cb6ee20, 0x1a755: 0x6ce21620, 0x1a756: 0x6c287420, 0x1a757: 0x6c287620, - 0x1a758: 0x6d12e620, 0x1a759: 0x6d3f1020, 0x1a75a: 0x6c08d820, 0x1a75b: 0x6c253220, - 0x1a75c: 0x6c1fc220, 0x1a75d: 0x6c510220, 0x1a75e: 0x6d0b5020, 0x1a75f: 0x6cb6f420, - 0x1a760: 0x6d304820, 0x1a761: 0x6c39f620, 0x1a762: 0x6c898e20, 0x1a763: 0x6cfb5820, - 0x1a764: 0x6cafd820, 0x1a765: 0x6ccc4620, 0x1a766: 0x6c7ed420, 0x1a767: 0x6d2ab820, - 0x1a768: 0x6d1baa20, 0x1a769: 0x6c48ae20, 0x1a76a: 0x6cabc220, 0x1a76b: 0x6d30d620, - 0x1a76c: 0x6ccb2020, 0x1a76d: 0x6d3bc220, 0x1a76e: 0x6ca81020, 0x1a76f: 0x6c4cf620, - 0x1a770: 0x6c953020, 0x1a771: 0x6d0bf020, 0x1a772: 0x6c2c3c20, 0x1a773: 0x6cc2d220, - 0x1a774: 0x6c15a420, 0x1a775: 0x6c100620, 0x1a776: 0x6c2fa020, 0x1a777: 0x6c809e20, - 0x1a778: 0x6cffe420, 0x1a779: 0x6c710c20, 0x1a77a: 0x6ce0f220, 0x1a77b: 0x6c1c1a20, - 0x1a77c: 0x6ce31e20, 0x1a77d: 0x6c016c20, 0x1a77e: 0x6c6f7020, 0x1a77f: 0x6c288620, - // Block 0x69e, offset 0x1a780 - 0x1a780: 0x6c761020, 0x1a781: 0x6d1df420, 0x1a782: 0x6cf08a20, 0x1a783: 0x6ca3fc20, - 0x1a784: 0x6ccd8a20, 0x1a785: 0x6d232a20, 0x1a786: 0x6d305820, 0x1a787: 0x6c7e6220, - 0x1a788: 0x6c6a0820, 0x1a789: 0x6c53f820, 0x1a78a: 0x6c4e5820, 0x1a78b: 0x6c2e9820, - 0x1a78c: 0x6d388220, 0x1a78d: 0x6c147e20, 0x1a78e: 0x6cec5220, 0x1a78f: 0x6caaec20, - 0x1a790: 0x6d230020, 0x1a791: 0x6d19d820, 0x1a792: 0x6d28b820, 0x1a793: 0x6d10a220, - 0x1a794: 0x6cab2420, 0x1a795: 0x6c9e2020, 0x1a796: 0x6c555220, 0x1a797: 0x6d27e820, - 0x1a798: 0x6c201e20, 0x1a799: 0x6c5bbc20, 0x1a79a: 0x6c591a20, 0x1a79b: 0x6c591c20, - 0x1a79c: 0x6cf7e620, 0x1a79d: 0x6c509c20, 0x1a79e: 0x6c5ec220, 0x1a79f: 0x6c7cf420, - 0x1a7a0: 0x6d37ee20, 0x1a7a1: 0x6cef0620, 0x1a7a2: 0x6ccc5220, 0x1a7a3: 0x6d06cc20, - 0x1a7a4: 0x6c59ba20, 0x1a7a5: 0x6c344a20, 0x1a7a6: 0x6ca82620, 0x1a7a7: 0x6d079020, - 0x1a7a8: 0x6c89b420, 0x1a7a9: 0x6d232c20, 0x1a7aa: 0x6cca9e20, 0x1a7ab: 0x6c1aae20, - 0x1a7ac: 0x6cbbe020, 0x1a7ad: 0x6d0e6a20, 0x1a7ae: 0x6c27dc20, 0x1a7af: 0x6cae4a20, - 0x1a7b0: 0x6c116820, 0x1a7b1: 0x6c83d020, 0x1a7b2: 0x6d1d7a20, 0x1a7b3: 0x6d2bd620, - 0x1a7b4: 0x6cee7c20, 0x1a7b5: 0x6c9e6c20, 0x1a7b6: 0x6d1c6220, 0x1a7b7: 0x6cae3220, - 0x1a7b8: 0x6c103820, 0x1a7b9: 0x6c7c7420, 0x1a7ba: 0x6cf88420, 0x1a7bb: 0x6d232e20, - 0x1a7bc: 0x6c6ac420, 0x1a7bd: 0x6c912820, 0x1a7be: 0x6c7a9620, 0x1a7bf: 0x6d2a8220, - // Block 0x69f, offset 0x1a7c0 - 0x1a7c0: 0x6c56a220, 0x1a7c1: 0x6ce33c20, 0x1a7c2: 0x6d110420, 0x1a7c3: 0x6c51ca20, - 0x1a7c4: 0x6c000e20, 0x1a7c5: 0x6d054220, 0x1a7c6: 0x6cbabe20, 0x1a7c7: 0x6ccb2e20, - 0x1a7c8: 0x6d1d8a20, 0x1a7c9: 0x6cdabe20, 0x1a7ca: 0x6c53a620, 0x1a7cb: 0x6d00b220, - 0x1a7cc: 0x6c00a220, 0x1a7cd: 0x6cdd2420, 0x1a7ce: 0x6c96f020, 0x1a7cf: 0x6c139620, - 0x1a7d0: 0x6c4d6c20, 0x1a7d1: 0x6c780420, 0x1a7d2: 0x6c264c20, 0x1a7d3: 0x6cca7e20, - 0x1a7d4: 0x6c187220, 0x1a7d5: 0x6cc81820, 0x1a7d6: 0x6cd9aa20, 0x1a7d7: 0x6cebdc20, - 0x1a7d8: 0x6c5ee420, 0x1a7d9: 0x6cad1c20, 0x1a7da: 0x6cf36e20, 0x1a7db: 0x6cba1020, - 0x1a7dc: 0x6cd39820, 0x1a7dd: 0x6c440020, 0x1a7de: 0x6d3e3220, 0x1a7df: 0x6c6a0a20, - 0x1a7e0: 0x6c960c20, 0x1a7e1: 0x6cf22820, 0x1a7e2: 0x6cec3420, 0x1a7e3: 0x6cd8c820, - 0x1a7e4: 0x6c1ab420, 0x1a7e5: 0x6c4fca20, 0x1a7e6: 0x6cddd820, - 0x1a7e8: 0x6c4d1620, 0x1a7e9: 0x6cdd7020, 0x1a7ea: 0x6cbd7e20, 0x1a7eb: 0x6ca83820, - 0x1a7ec: 0x6c50a020, 0x1a7ed: 0x6d347020, 0x1a7ee: 0x6cc9e220, 0x1a7ef: 0x6ca2c620, - 0x1a7f0: 0x6c448a20, 0x1a7f1: 0x6ca2e420, 0x1a7f2: 0x6c2cb820, 0x1a7f3: 0x6c002c20, - 0x1a7f4: 0x6cbb6220, 0x1a7f5: 0x6ce6f620, 0x1a7f6: 0x6c09c220, 0x1a7f7: 0x6c024a20, - 0x1a7f8: 0x6c024c20, 0x1a7f9: 0x6c880c20, 0x1a7fa: 0x6d417420, 0x1a7fb: 0x6d300020, - 0x1a7fc: 0x6ca12420, 0x1a7fd: 0x6cda4620, 0x1a7fe: 0x6cda2020, 0x1a7ff: 0x6ce06820, - // Block 0x6a0, offset 0x1a800 - 0x1a800: 0x6c2b7820, 0x1a801: 0x6cb50820, 0x1a802: 0x6c69aa20, 0x1a803: 0x6c1cd020, - 0x1a804: 0x6c685a20, 0x1a805: 0x6c765620, 0x1a806: 0x6ce0a020, 0x1a807: 0x6cccf820, - 0x1a808: 0x6c127820, 0x1a809: 0x6c637620, 0x1a80a: 0x6c004620, 0x1a80b: 0x6cfee620, - 0x1a80c: 0x6cb1b420, 0x1a80d: 0x6c912a20, 0x1a80e: 0x6c40c020, 0x1a80f: 0x6c47aa20, - 0x1a810: 0x6cfee820, 0x1a811: 0x6c54e220, 0x1a812: 0x6c5bf220, 0x1a813: 0x6c4c2c20, - 0x1a814: 0x6cab8220, 0x1a815: 0x6cfabc20, 0x1a816: 0x6d2ad820, 0x1a817: 0x6c16b420, - 0x1a818: 0x6d05b820, 0x1a819: 0x6cb32e20, 0x1a81a: 0x6c2a5c20, 0x1a81b: 0x6c96f420, - 0x1a81c: 0x6c96ca20, 0x1a81d: 0x6c557820, 0x1a81e: 0x6c836c20, 0x1a81f: 0x6c317220, - 0x1a820: 0x6c40c220, 0x1a821: 0x6ce0c420, 0x1a822: 0x6d12ae20, 0x1a823: 0x6c07fe20, - 0x1a824: 0x6d1bcc20, 0x1a825: 0x6cc9f020, 0x1a826: 0x6c69ac20, 0x1a827: 0x6c9d6420, - 0x1a828: 0x6cfffc20, 0x1a829: 0x6c571220, 0x1a82a: 0x6c971620, 0x1a82b: 0x6cc48020, - 0x1a82c: 0x6c1fc420, 0x1a82d: 0x6cae7e20, 0x1a82e: 0x6c816420, 0x1a82f: 0x6d000420, - 0x1a830: 0x6c5f1020, 0x1a831: 0x6d3a7c20, 0x1a832: 0x6c177020, 0x1a833: 0x6c7d0820, - 0x1a834: 0x6d419820, 0x1a835: 0x6cfefe20, 0x1a836: 0x6cd80c20, 0x1a837: 0x6c4fdc20, - 0x1a838: 0x6c3f7e20, 0x1a839: 0x6c8a0020, 0x1a83a: 0x6cbbe820, 0x1a83b: 0x6cf68e20, - 0x1a83c: 0x6c1f6a20, 0x1a83d: 0x6c15d020, 0x1a83e: 0x6c28a420, 0x1a83f: 0x6c521e20, - // Block 0x6a1, offset 0x1a840 - 0x1a840: 0x6d0aa020, 0x1a841: 0x6c35b620, 0x1a842: 0x6d420a20, 0x1a843: 0x6c385420, - 0x1a844: 0x6c1acc20, 0x1a845: 0x6c5ae220, 0x1a846: 0x6d297220, 0x1a847: 0x6c207420, - 0x1a848: 0x6c245220, 0x1a849: 0x6c289c20, 0x1a84a: 0x6d23ba20, 0x1a84b: 0x6cea2420, - 0x1a84c: 0x6c134a20, 0x1a84d: 0x6c69b620, 0x1a84e: 0x6d126220, 0x1a84f: 0x6cf69020, - 0x1a850: 0x6cb7be20, 0x1a851: 0x6c4fd020, 0x1a852: 0x6c882e20, 0x1a853: 0x6d05ca20, - 0x1a854: 0x6c2aa420, 0x1a855: 0x6c5ae820, 0x1a856: 0x6d1a8c20, 0x1a857: 0x6cb40c20, - 0x1a858: 0x6c73b220, 0x1a859: 0x6cbd9220, 0x1a85a: 0x6d0a2e20, 0x1a85b: 0x6ca85a20, - 0x1a85c: 0x6c912c20, 0x1a85d: 0x6cd80e20, 0x1a85e: 0x6d0dd420, 0x1a85f: 0x6d1d4820, - 0x1a860: 0x6c265e20, 0x1a861: 0x6d2d9420, 0x1a862: 0x6cab2620, 0x1a863: 0x6d394e20, - 0x1a864: 0x6c6d4820, 0x1a865: 0x6ca9c420, 0x1a866: 0x6c5c2620, 0x1a867: 0x6d01f420, - 0x1a868: 0x6cb7ce20, 0x1a869: 0x6c36a620, 0x1a86a: 0x6d2a8e20, 0x1a86b: 0x6d140e20, - 0x1a86c: 0x6cd3d620, 0x1a86d: 0x6c69c220, 0x1a86e: 0x6d263020, 0x1a86f: 0x6c003420, - 0x1a870: 0x6d1dac20, 0x1a871: 0x6c74b420, 0x1a872: 0x6c7b3820, 0x1a873: 0x6d228a20, - 0x1a874: 0x6cae3420, 0x1a875: 0x6c2a2820, 0x1a876: 0x6c40c820, 0x1a877: 0x6c528e20, - 0x1a878: 0x6c33aa20, 0x1a879: 0x6c290220, 0x1a87a: 0x6d036420, 0x1a87b: 0x6cc9cc20, - 0x1a87c: 0x6caf8e20, 0x1a87d: 0x6cb07220, 0x1a87e: 0x6d1a0e20, 0x1a87f: 0x6d41a020, - // Block 0x6a2, offset 0x1a880 - 0x1a880: 0x6ca92020, 0x1a881: 0x6c2b9620, 0x1a882: 0x6c807820, 0x1a883: 0x6cddfa20, - 0x1a884: 0x6c5d5e20, 0x1a885: 0x6cc7cc20, 0x1a886: 0x6c4fac20, 0x1a887: 0x6cfa4820, - 0x1a888: 0x6d135220, 0x1a889: 0x6c343820, 0x1a88a: 0x6cb0be20, 0x1a88b: 0x6c1de020, - 0x1a88c: 0x6c629020, 0x1a88d: 0x6c6d5620, 0x1a88e: 0x6c4fec20, 0x1a88f: 0x6ce42820, - 0x1a890: 0x6c16ca20, 0x1a891: 0x6d0ac220, 0x1a892: 0x6c99c620, 0x1a893: 0x6c10d820, - 0x1a894: 0x6ce43820, 0x1a895: 0x6c91e420, 0x1a896: 0x6c5c6420, 0x1a897: 0x6c0f8820, - 0x1a898: 0x6d1eba20, 0x1a899: 0x6ca88620, 0x1a89a: 0x6d1a9e20, 0x1a89b: 0x6c56d620, - 0x1a89c: 0x6c99ca20, 0x1a89d: 0x6c52d220, 0x1a89e: 0x6d30a820, 0x1a89f: 0x6c846c20, - 0x1a8a0: 0x6c8eb220, 0x1a8a1: 0x6c4d8e20, 0x1a8a2: 0x6ca45620, 0x1a8a3: 0x6cff2e20, - 0x1a8a4: 0x6ca08220, 0x1a8a5: 0x6d0ee620, 0x1a8a6: 0x6c86e820, 0x1a8a7: 0x6c916820, - 0x1a8a8: 0x6c8fba20, 0x1a8a9: 0x6ca08c20, 0x1a8aa: 0x6c28dc20, 0x1a8ab: 0x6c193a20, - 0x1a8ac: 0x6cb21e20, 0x1a8ad: 0x6cb07c20, 0x1a8ae: 0x6cfe5c20, 0x1a8af: 0x6c5e2420, - 0x1a8b0: 0x6ca08e20, 0x1a8b1: 0x6cf91e20, 0x1a8b2: 0x6c34c220, 0x1a8b3: 0x6c7ab220, - 0x1a8b4: 0x6d0ce820, 0x1a8b5: 0x6c154e20, 0x1a8b6: 0x6d1c1820, 0x1a8b7: 0x6cc50420, - 0x1a8b8: 0x6c2d3020, 0x1a8b9: 0x6c7ede20, 0x1a8ba: 0x6cded620, 0x1a8bb: 0x6cff4c20, - 0x1a8bc: 0x6c74fc20, 0x1a8bd: 0x6c21e420, 0x1a8be: 0x6c583c20, 0x1a8bf: 0x6c5e3c20, - // Block 0x6a3, offset 0x1a8c0 - 0x1a8c0: 0x6d3bfe20, 0x1a8c1: 0x6ca8aa20, 0x1a8c2: 0x6cff4e20, 0x1a8c3: 0x6c10ee20, - 0x1a8c4: 0x6c84a420, 0x1a8c5: 0x6c161620, 0x1a8c6: 0x6c14a820, 0x1a8c7: 0x6c876020, - 0x1a8c8: 0x6d194020, 0x1a8c9: 0x6c953620, 0x1a8ca: 0x6ca45e20, 0x1a8cb: 0x6d28dc20, - 0x1a8cc: 0x6cda6e20, 0x1a8cd: 0x6cf82420, 0x1a8ce: 0x6d2b7e20, 0x1a8cf: 0x6c654e20, - 0x1a8d0: 0x6d28de20, 0x1a8d1: 0x6d3a8e20, 0x1a8d2: 0x6c800620, 0x1a8d3: 0x6ca8c220, - 0x1a8d4: 0x6ca45220, 0x1a8d5: 0x6c806220, 0x1a8d6: 0x6c8f6420, 0x1a8d7: 0x6ceed620, - 0x1a8d8: 0x6c5b1220, 0x1a8d9: 0x6d199c20, 0x1a8da: 0x6cbff020, 0x1a8db: 0x6cd87420, - 0x1a8dc: 0x6ca8e220, 0x1a8dd: 0x6c656220, 0x1a8de: 0x6c5b1420, 0x1a8df: 0x6d031420, - 0x1a8e0: 0x6d199e20, 0x1a8e1: 0x6ca3dc20, 0x1a8e2: 0x6ce94420, 0x1a8e3: 0x6ce94620, - 0x1a8e4: 0x6c33d620, 0x1a8e5: 0x6c777c20, 0x1a8e6: 0x6d24c620, 0x1a8e7: 0x6c6ef420, - 0x1a8e8: 0x6cb0ec20, 0x1a8e9: 0x6d277c20, 0x1a8ea: 0x6c22f620, 0x1a8eb: 0x6c551c20, - 0x1a8ec: 0x6c5b1820, 0x1a8ed: 0x6d253a20, 0x1a8ee: 0x6c354a20, 0x1a8ef: 0x6c4c5620, - 0x1a8f0: 0x6c7dca20, 0x1a8f1: 0x6c22f820, 0x1a8f2: 0x6ce6ee20, 0x1a8f3: 0x6ce88420, - 0x1a8f4: 0x6ceedc20, 0x1a8f5: 0x6c94d820, 0x1a8f6: 0x6c4c5a20, 0x1a8f7: 0x6cc43020, - 0x1a8f8: 0x6cc64020, 0x1a8f9: 0x6c8c9e20, 0x1a8fa: 0x6c47fe20, 0x1a8fb: 0x6c4c5c20, - 0x1a8fc: 0x6cdf0020, 0x1a8fd: 0x6c4c5e20, 0x1a8fe: 0x6ce88820, 0x1a8ff: 0x6d202020, - // Block 0x6a4, offset 0x1a900 - 0x1a900: 0x6c4c6220, 0x1a901: 0x6d1a4220, 0x1a902: 0x6c5d2020, 0x1a903: 0x6cb48620, - 0x1a904: 0x6d223820, 0x1a905: 0x6c4dee20, 0x1a906: 0x6d255020, 0x1a907: 0x6c94ea20, - 0x1a908: 0x6cc29620, 0x1a909: 0x6d224820, 0x1a90a: 0x6cbe3e20, 0x1a90b: 0x6c4c6620, - 0x1a90c: 0x6c1ffa20, 0x1a90d: 0x6cef0820, 0x1a90e: 0x6d256020, 0x1a90f: 0x6cc29a20, - 0x1a910: 0x6c7a4020, 0x1a911: 0x6c400a20, 0x1a912: 0x6d257420, 0x1a913: 0x6d257620, - 0x1a914: 0x6d0bbc20, 0x1a915: 0x6ce8b620, 0x1a916: 0x6ce8d420, 0x1a917: 0x6ce8d620, - 0x1a918: 0x6ce95020, 0x1a919: 0x6c94b820, 0x1a91a: 0x6c5c0c20, 0x1a91b: 0x6d188220, - 0x1a91c: 0x6c589220, 0x1a91d: 0x6c944a20, 0x1a91e: 0x6c946e20, 0x1a91f: 0x6ce91020, - 0x1a920: 0x6d0b6620, 0x1a921: 0x6ce91220, 0x1a922: 0x6ce6aa20, 0x1a923: 0x6cd15220, - 0x1a924: 0x6cb48020, 0x1a925: 0x6c920c20, 0x1a926: 0x6c7b5020, 0x1a927: 0x6d0ac620, - 0x1a928: 0x6d292820, 0x1a929: 0x6ceeda20, 0x1a92a: 0x6c436620, 0x1a92b: 0x6d22be20, - 0x1a92c: 0x6cf34020, 0x1a92d: 0x6c4a3420, 0x1a92e: 0x6cb04820, 0x1a92f: 0x6d145020, - 0x1a930: 0x6c2a8a20, 0x1a931: 0x6cb89220, 0x1a932: 0x6cb89420, 0x1a933: 0x6d320e20, - 0x1a934: 0x6d3d1a20, 0x1a935: 0x6c295220, 0x1a936: 0x6cb83e20, 0x1a937: 0x6cfa6220, - 0x1a938: 0x6ccdf620, 0x1a939: 0x6c7bd820, 0x1a93a: 0x6c16e220, 0x1a93b: 0x6cb56e20, - 0x1a93c: 0x6ca7f220, 0x1a93d: 0x6ca0c220, 0x1a93e: 0x6c5e7620, 0x1a93f: 0x6c639820, - // Block 0x6a5, offset 0x1a940 - 0x1a940: 0x6d34dc20, 0x1a941: 0x6d34de20, 0x1a942: 0x6c04b420, 0x1a943: 0x6d098e20, - 0x1a944: 0x6d167a20, 0x1a945: 0x6cbdc620, 0x1a946: 0x6c99d020, 0x1a947: 0x6c755620, - 0x1a948: 0x6cc6f220, 0x1a949: 0x6cea3c20, 0x1a94a: 0x6c39e820, 0x1a94b: 0x6c07a420, - 0x1a94c: 0x6c07a620, 0x1a94d: 0x6cdf8820, 0x1a94e: 0x6c76be20, 0x1a94f: 0x6c580a20, - 0x1a950: 0x6d427620, 0x1a951: 0x6c792620, 0x1a952: 0x6c091820, 0x1a953: 0x6c6e0a20, - 0x1a954: 0x6c2c1220, 0x1a955: 0x6c6d8620, 0x1a956: 0x6c617c20, 0x1a957: 0x6c7b0c20, - 0x1a958: 0x6c2bcc20, 0x1a959: 0x6c6d8820, 0x1a95a: 0x6c646220, 0x1a95b: 0x6cdfca20, - 0x1a95c: 0x6c857e20, 0x1a95d: 0x6c03a620, 0x1a95e: 0x6cf4a420, 0x1a95f: 0x6c3b5020, - 0x1a960: 0x6d3c7a20, 0x1a961: 0x6cb2f620, 0x1a962: 0x6c04e220, 0x1a963: 0x6ce0bc20, - 0x1a964: 0x6c7d4a20, 0x1a965: 0x6cc0da20, 0x1a966: 0x6ce05220, 0x1a967: 0x6d339420, - 0x1a968: 0x6ceaea20, 0x1a969: 0x6c417020, 0x1a96a: 0x6cb27620, 0x1a96b: 0x6c2d3a20, - 0x1a96c: 0x6c48a820, 0x1a96d: 0x6ca5ba20, 0x1a96e: 0x6cdf1420, 0x1a96f: 0x6caf3020, - 0x1a970: 0x6c6ed620, 0x1a971: 0x6d100020, 0x1a972: 0x6c3d0a20, 0x1a973: 0x6c02c420, - 0x1a974: 0x6c921820, 0x1a975: 0x6cbf9c20, 0x1a976: 0x6ca22620, 0x1a977: 0x6c785420, - 0x1a978: 0x6c469220, 0x1a979: 0x6d094020, 0x1a97a: 0x6c036220, 0x1a97b: 0x6c1b0420, - 0x1a97c: 0x6c180020, 0x1a97d: 0x6c8ca020, 0x1a97e: 0x6d3aaa20, 0x1a97f: 0x6c3fb020, - // Block 0x6a6, offset 0x1a980 - 0x1a980: 0x6c549a20, 0x1a981: 0x6d358420, 0x1a982: 0x6c20be20, 0x1a983: 0x6c7e3a20, - 0x1a984: 0x6c902e20, 0x1a985: 0x6c903020, 0x1a986: 0x6c913820, 0x1a987: 0x6c02c620, - 0x1a988: 0x6c272e20, 0x1a989: 0x6cad4820, 0x1a98a: 0x6c9fe220, 0x1a98b: 0x6d03ca20, - 0x1a98c: 0x6c305620, 0x1a98d: 0x6c619e20, 0x1a98e: 0x6c51ba20, 0x1a98f: 0x6c93ce20, - 0x1a990: 0x6c222820, 0x1a991: 0x6c1b8220, 0x1a992: 0x6c82ba20, 0x1a993: 0x6c40e420, - 0x1a994: 0x6d19aa20, 0x1a995: 0x6c546220, 0x1a996: 0x6c32f420, 0x1a997: 0x6d2f9c20, - 0x1a998: 0x6c3e0820, 0x1a999: 0x6c49dc20, 0x1a99a: 0x6d10d420, 0x1a99b: 0x6c347820, - 0x1a99c: 0x6c347a20, 0x1a99d: 0x6c4ad020, 0x1a99e: 0x6c13ca20, 0x1a99f: 0x6d0f8e20, - 0x1a9a0: 0x6d1a3820, 0x1a9a1: 0x6c37fe20, 0x1a9a2: 0x6c469a20, 0x1a9a3: 0x6d254420, - 0x1a9a4: 0x6c2e6a20, 0x1a9a5: 0x6d007620, 0x1a9a6: 0x6c78fa20, 0x1a9a7: 0x6cce3220, - 0x1a9a8: 0x6cd43e20, 0x1a9a9: 0x6c35ec20, 0x1a9aa: 0x6c0e4020, 0x1a9ab: 0x6c2d4020, - 0x1a9ac: 0x6c530c20, 0x1a9ad: 0x6d0ad820, 0x1a9ae: 0x6c7ad620, 0x1a9af: 0x6c26f820, - 0x1a9b0: 0x6c762020, 0x1a9b1: 0x6c295a20, 0x1a9b2: 0x6c764a20, 0x1a9b3: 0x6c4f9e20, - 0x1a9b4: 0x6ca4dc20, 0x1a9b5: 0x6c017820, 0x1a9b6: 0x6d036c20, 0x1a9b7: 0x6cfc9c20, - 0x1a9b8: 0x6d260820, 0x1a9b9: 0x6c051a20, 0x1a9ba: 0x6c3d5a20, 0x1a9bb: 0x6c03ae20, - 0x1a9bc: 0x6d172020, 0x1a9bd: 0x6d1b4220, 0x1a9be: 0x6c4e9220, 0x1a9bf: 0x6d06a020, - // Block 0x6a7, offset 0x1a9c0 - 0x1a9c0: 0x6c20c420, 0x1a9c1: 0x6cbd6220, 0x1a9c2: 0x6c44f420, 0x1a9c3: 0x6c001c20, - 0x1a9c4: 0x6c081620, 0x1a9c5: 0x6c39aa20, 0x1a9c6: 0x6cc3a820, 0x1a9c7: 0x6d1e2020, - 0x1a9c8: 0x6c75a020, 0x1a9c9: 0x6c633e20, 0x1a9ca: 0x6c2c2a20, 0x1a9cb: 0x6c96fa20, - 0x1a9cc: 0x6c811420, 0x1a9cd: 0x6c731820, 0x1a9ce: 0x6c19c620, 0x1a9cf: 0x6ccccc20, - 0x1a9d0: 0x6c6c3c20, 0x1a9d1: 0x6d303020, 0x1a9d2: 0x6c8ae420, 0x1a9d3: 0x6c8ae620, - 0x1a9d4: 0x6c107e20, 0x1a9d5: 0x6c19d820, 0x1a9d6: 0x6c57d820, 0x1a9d7: 0x6c108020, - 0x1a9d8: 0x6cd25a20, 0x1a9d9: 0x6d099420, 0x1a9da: 0x6c4c1820, 0x1a9db: 0x6c6eda20, - 0x1a9dc: 0x6d12a820, 0x1a9dd: 0x6ca76020, 0x1a9de: 0x6c2bee20, 0x1a9df: 0x6d230420, - 0x1a9e0: 0x6c109220, 0x1a9e1: 0x6d0ae820, 0x1a9e2: 0x6cc2d420, 0x1a9e3: 0x6cdc3420, - 0x1a9e4: 0x6cafdc20, 0x1a9e5: 0x6cbe4020, 0x1a9e6: 0x6cecfe20, 0x1a9e7: 0x6c723820, - 0x1a9e8: 0x6c951420, 0x1a9e9: 0x6d329220, 0x1a9ea: 0x6c796e20, 0x1a9eb: 0x6c1d3820, - 0x1a9ec: 0x6c2fee20, 0x1a9ed: 0x6c275a20, 0x1a9ee: 0x6ce09220, 0x1a9ef: 0x6c018020, - 0x1a9f0: 0x6c114220, 0x1a9f1: 0x6c1f2e20, 0x1a9f2: 0x6c081820, 0x1a9f3: 0x6c76ce20, - 0x1a9f4: 0x6d344c20, 0x1a9f5: 0x6c348420, 0x1a9f6: 0x6d175220, 0x1a9f7: 0x6d344e20, - 0x1a9f8: 0x6d175420, 0x1a9f9: 0x6cadd020, 0x1a9fa: 0x6c5eb420, 0x1a9fb: 0x6d3cdc20, - 0x1a9fc: 0x6cb5b820, 0x1a9fd: 0x6ccaee20, 0x1a9fe: 0x6c723a20, 0x1a9ff: 0x6ca5d420, - // Block 0x6a8, offset 0x1aa00 - 0x1aa00: 0x6c7a3a20, 0x1aa01: 0x6c78a020, 0x1aa02: 0x6ce0ec20, 0x1aa03: 0x6c7d5020, - 0x1aa04: 0x6ca69620, 0x1aa05: 0x6c648220, 0x1aa06: 0x6c32fa20, 0x1aa07: 0x6c6c8e20, - 0x1aa08: 0x6c427620, 0x1aa09: 0x6d230620, 0x1aa0a: 0x6c360c20, 0x1aa0b: 0x6cae9820, - 0x1aa0c: 0x6c480820, 0x1aa0d: 0x6ce92220, 0x1aa0e: 0x6c839420, 0x1aa0f: 0x6c39ea20, - 0x1aa10: 0x6d0b2420, 0x1aa11: 0x6cba4c20, 0x1aa12: 0x6c7ddc20, 0x1aa13: 0x6c01b620, - 0x1aa14: 0x6cd0ca20, 0x1aa15: 0x6c34e620, 0x1aa16: 0x6ca4f220, 0x1aa17: 0x6ce85c20, - 0x1aa18: 0x6c19fa20, 0x1aa19: 0x6d19da20, 0x1aa1a: 0x6c5cea20, 0x1aa1b: 0x6c099420, - 0x1aa1c: 0x6c88f220, 0x1aa1d: 0x6c4c1c20, 0x1aa1e: 0x6c2e9a20, 0x1aa1f: 0x6d3bc420, - 0x1aa20: 0x6c547020, 0x1aa21: 0x6c05fa20, 0x1aa22: 0x6c05fc20, 0x1aa23: 0x6d211420, - 0x1aa24: 0x6c2b2e20, 0x1aa25: 0x6c98e220, 0x1aa26: 0x6c6a0c20, 0x1aa27: 0x6cc83c20, - 0x1aa28: 0x6d12ec20, 0x1aa29: 0x6c452e20, 0x1aa2a: 0x6c76aa20, 0x1aa2b: 0x6d3f8020, - 0x1aa2c: 0x6d211620, 0x1aa2d: 0x6c59bc20, 0x1aa2e: 0x6c362c20, 0x1aa2f: 0x6d10f620, - 0x1aa30: 0x6d0e6c20, 0x1aa31: 0x6c064c20, 0x1aa32: 0x6c223620, 0x1aa33: 0x6c99f620, - 0x1aa34: 0x6c16ec20, 0x1aa35: 0x6c321420, 0x1aa36: 0x6ceb1c20, 0x1aa37: 0x6d1b5020, - 0x1aa38: 0x6c3ca620, 0x1aa39: 0x6d382820, 0x1aa3a: 0x6c6be820, 0x1aa3b: 0x6c6c4420, - 0x1aa3c: 0x6c528820, 0x1aa3d: 0x6c428620, 0x1aa3e: 0x6c210620, 0x1aa3f: 0x6c658e20, - // Block 0x6a9, offset 0x1aa40 - 0x1aa40: 0x6cb2ec20, 0x1aa41: 0x6c836a20, 0x1aa42: 0x6cfe3220, 0x1aa43: 0x6c599220, - 0x1aa44: 0x6c837620, 0x1aa45: 0x6c32c020, 0x1aa46: 0x6cec8e20, 0x1aa47: 0x6d079220, - 0x1aa48: 0x6c61fe20, 0x1aa49: 0x6c604a20, 0x1aa4a: 0x6c7b2420, 0x1aa4b: 0x6d1c7c20, - 0x1aa4c: 0x6cddee20, 0x1aa4d: 0x6c1a1620, 0x1aa4e: 0x6d1e4220, 0x1aa4f: 0x6c765c20, - 0x1aa50: 0x6cdac020, 0x1aa51: 0x6cdac220, 0x1aa52: 0x6cd26e20, 0x1aa53: 0x6c9d4e20, - 0x1aa54: 0x6cde0820, 0x1aa55: 0x6cf24e20, 0x1aa56: 0x6c1a1820, 0x1aa57: 0x6ce8b820, - 0x1aa58: 0x6ce0fe20, 0x1aa59: 0x6cc3c820, 0x1aa5a: 0x6d37f420, 0x1aa5b: 0x6c862a20, - 0x1aa5c: 0x6d37f620, 0x1aa5d: 0x6c057620, 0x1aa5e: 0x6cc9c620, 0x1aa5f: 0x6d2a0620, - 0x1aa60: 0x6c330020, 0x1aa61: 0x6ce4a820, 0x1aa62: 0x6cf4f820, 0x1aa63: 0x6d335020, - 0x1aa64: 0x6d099c20, 0x1aa65: 0x6c440420, 0x1aa66: 0x6d324020, 0x1aa67: 0x6c00a420, - 0x1aa68: 0x6c459020, 0x1aa69: 0x6d0ca620, 0x1aa6a: 0x6c76da20, 0x1aa6b: 0x6ce4aa20, - 0x1aa6c: 0x6d257820, 0x1aa6d: 0x6cf14e20, 0x1aa6e: 0x6d01be20, 0x1aa6f: 0x6c8f3220, - 0x1aa70: 0x6c4d8c20, 0x1aa71: 0x6c810220, 0x1aa72: 0x6c16b620, 0x1aa73: 0x6caea820, - 0x1aa74: 0x6c084820, 0x1aa75: 0x6c18da20, 0x1aa76: 0x6c927820, 0x1aa77: 0x6c91c620, - 0x1aa78: 0x6cab3c20, 0x1aa79: 0x6cba6220, 0x1aa7a: 0x6c9a1620, 0x1aa7b: 0x6ca12620, - 0x1aa7c: 0x6d3b8220, 0x1aa7d: 0x6cd6d420, 0x1aa7e: 0x6cd52e20, 0x1aa7f: 0x6c90e820, - // Block 0x6aa, offset 0x1aa80 - 0x1aa80: 0x6c1b4620, 0x1aa81: 0x6c97e220, 0x1aa82: 0x6c0c0620, 0x1aa83: 0x6c6e9420, - 0x1aa84: 0x6c130020, 0x1aa85: 0x6cd5ee20, 0x1aa86: 0x6d367a20, 0x1aa87: 0x6d2ec020, - 0x1aa88: 0x6c770a20, 0x1aa89: 0x6d1d9620, 0x1aa8a: 0x6c2d6e20, 0x1aa8b: 0x6c190820, - 0x1aa8c: 0x6d347c20, 0x1aa8d: 0x6cf8ac20, 0x1aa8e: 0x6c4c2420, 0x1aa8f: 0x6cbb4620, - 0x1aa90: 0x6c6d2220, 0x1aa91: 0x6c2c7a20, 0x1aa92: 0x6cce0a20, 0x1aa93: 0x6ca29020, - 0x1aa94: 0x6c24d220, 0x1aa95: 0x6d0e9220, 0x1aa96: 0x6cde1020, 0x1aa97: 0x6d2b8220, - 0x1aa98: 0x6cb9ac20, 0x1aa99: 0x6cbb1020, 0x1aa9a: 0x6c895e20, 0x1aa9b: 0x6cf14220, - 0x1aa9c: 0x6d3c9a20, 0x1aa9d: 0x6cbb9820, 0x1aa9e: 0x6d2b8620, 0x1aa9f: 0x6d05ba20, - 0x1aaa0: 0x6ccd9a20, 0x1aaa1: 0x6ccd9c20, 0x1aaa2: 0x6c038e20, 0x1aaa3: 0x6cb44820, - 0x1aaa4: 0x6c7b3220, 0x1aaa5: 0x6c303220, 0x1aaa6: 0x6c38b020, 0x1aaa7: 0x6cc3e820, - 0x1aaa8: 0x6ca16020, 0x1aaa9: 0x6c33a020, 0x1aaaa: 0x6c33a220, 0x1aaab: 0x6d41ea20, - 0x1aaac: 0x6c2c7c20, 0x1aaad: 0x6cd17220, 0x1aaae: 0x6c350820, 0x1aaaf: 0x6c350e20, - 0x1aab0: 0x6cdffc20, 0x1aab1: 0x6c2ae020, 0x1aab2: 0x6ca21820, 0x1aab3: 0x6c3b8420, - 0x1aab4: 0x6c59d820, 0x1aab5: 0x6cdffe20, 0x1aab6: 0x6c26fe20, 0x1aab7: 0x6d12fa20, - 0x1aab8: 0x6d3b5220, 0x1aab9: 0x6c673a20, 0x1aaba: 0x6c02e420, 0x1aabb: 0x6cbb1e20, - 0x1aabc: 0x6c5f2c20, 0x1aabd: 0x6cbba220, 0x1aabe: 0x6c790a20, 0x1aabf: 0x6d188420, - // Block 0x6ab, offset 0x1aac0 - 0x1aac0: 0x6cb01a20, 0x1aac1: 0x6c0a4420, 0x1aac2: 0x6c2d7c20, 0x1aac3: 0x6c677820, - 0x1aac4: 0x6d12b420, 0x1aac5: 0x6d1dae20, 0x1aac6: 0x6d091620, 0x1aac7: 0x6ce00c20, - 0x1aac8: 0x6c803820, 0x1aac9: 0x6c728820, 0x1aaca: 0x6c581420, 0x1aacb: 0x6c298e20, - 0x1aacc: 0x6cc50220, 0x1aacd: 0x6cba8020, 0x1aace: 0x6d09ae20, 0x1aacf: 0x6cfd1820, - 0x1aad0: 0x6cf81620, 0x1aad1: 0x6c51ee20, 0x1aad2: 0x6c00c620, 0x1aad3: 0x6d0b0020, - 0x1aad4: 0x6c29ee20, 0x1aad5: 0x6c4fee20, 0x1aad6: 0x6cc84a20, 0x1aad7: 0x6c6d8220, - 0x1aad8: 0x6c82e220, 0x1aad9: 0x6c7c0620, 0x1aada: 0x6c916a20, 0x1aadb: 0x6d0cea20, - 0x1aadc: 0x6ce03020, 0x1aadd: 0x6cf03820, 0x1aade: 0x6c581820, 0x1aadf: 0x6c903e20, - 0x1aae0: 0x6c904020, 0x1aae1: 0x6cc8ec20, 0x1aae2: 0x6c86ea20, 0x1aae3: 0x6c8bfe20, - 0x1aae4: 0x6cc50620, 0x1aae5: 0x6c165c20, 0x1aae6: 0x6d09c420, 0x1aae7: 0x6d0d0c20, - 0x1aae8: 0x6c829620, 0x1aae9: 0x6c03da20, 0x1aaea: 0x6ceca620, 0x1aaeb: 0x6cd2e220, - 0x1aaec: 0x6cc56020, 0x1aaed: 0x6cca6220, 0x1aaee: 0x6d3c2c20, 0x1aaef: 0x6d3c2e20, - 0x1aaf0: 0x6cd0dc20, 0x1aaf1: 0x6d13c620, 0x1aaf2: 0x6c972420, 0x1aaf3: 0x6c784a20, - 0x1aaf4: 0x6d3aba20, 0x1aaf5: 0x6d3c3620, 0x1aaf6: 0x6c553020, 0x1aaf7: 0x6c554020, - 0x1aaf8: 0x6c7da620, 0x1aaf9: 0x6d13ee20, 0x1aafa: 0x6c555420, 0x1aafb: 0x6d06d020, - 0x1aafc: 0x6c7db220, 0x1aafd: 0x6cd46e20, 0x1aafe: 0x6c989420, 0x1aaff: 0x6d41ec20, - // Block 0x6ac, offset 0x1ab00 - 0x1ab00: 0x6cd47020, 0x1ab01: 0x6d141220, 0x1ab02: 0x6d34ca20, 0x1ab03: 0x6c474e20, - 0x1ab04: 0x6c1f0220, 0x1ab05: 0x6c67d220, 0x1ab06: 0x6c3c9c20, 0x1ab07: 0x6c06e020, - 0x1ab08: 0x6d2d5820, 0x1ab09: 0x6c0b8420, 0x1ab0a: 0x6cdba620, 0x1ab0b: 0x6cc42e20, - 0x1ab0c: 0x6c8ca220, 0x1ab0d: 0x6c3fc020, 0x1ab0e: 0x6c261420, 0x1ab0f: 0x6cfa3220, - 0x1ab10: 0x6d049a20, 0x1ab11: 0x6d02a020, 0x1ab12: 0x6ca4cc20, 0x1ab13: 0x6cfa5a20, - 0x1ab14: 0x6c7cb420, 0x1ab15: 0x6cf55a20, 0x1ab16: 0x6cec6820, 0x1ab17: 0x6d25f820, - 0x1ab18: 0x6c992020, 0x1ab19: 0x6cda7c20, 0x1ab1a: 0x6c341620, 0x1ab1b: 0x6c341820, - 0x1ab1c: 0x6d12ca20, 0x1ab1d: 0x6cbe6c20, 0x1ab1e: 0x6cec6e20, 0x1ab1f: 0x6c46a220, - 0x1ab20: 0x6c46a420, 0x1ab21: 0x6cb78820, 0x1ab22: 0x6c9c0420, 0x1ab23: 0x6c9c0820, - 0x1ab24: 0x6d1a8020, 0x1ab25: 0x6c5d9420, 0x1ab26: 0x6c190c20, 0x1ab27: 0x6c26e420, - 0x1ab28: 0x6d2b3020, 0x1ab29: 0x6ce45420, 0x1ab2a: 0x6cdf5a20, 0x1ab2b: 0x6c40a620, - 0x1ab2c: 0x6c48e220, 0x1ab2d: 0x6d108020, 0x1ab2e: 0x6d0f4020, 0x1ab2f: 0x6c4f4620, - 0x1ab30: 0x6c42fa20, 0x1ab31: 0x6cd18e20, 0x1ab32: 0x6ce1aa20, 0x1ab33: 0x6cdf5c20, - 0x1ab34: 0x6ce7e420, 0x1ab35: 0x6d0d3420, 0x1ab36: 0x6c08b020, 0x1ab37: 0x6d145220, - 0x1ab38: 0x6c7ab820, 0x1ab39: 0x6c631c20, 0x1ab3a: 0x6c343a20, 0x1ab3b: 0x6c577c20, - 0x1ab3c: 0x6c7bce20, 0x1ab3d: 0x6d27d620, 0x1ab3e: 0x6c632020, 0x1ab3f: 0x6c031820, - // Block 0x6ad, offset 0x1ab40 - 0x1ab40: 0x6c370e20, 0x1ab41: 0x6c87ec20, 0x1ab42: 0x6c58ee20, 0x1ab43: 0x6c2b1220, - 0x1ab44: 0x6d0d4620, 0x1ab45: 0x6cad7e20, 0x1ab46: 0x6c733c20, 0x1ab47: 0x6cb57c20, - 0x1ab48: 0x6ca3ac20, 0x1ab49: 0x6c3cd820, 0x1ab4a: 0x6d007820, 0x1ab4b: 0x6c3bcc20, - 0x1ab4c: 0x6c2d0820, 0x1ab4d: 0x6d107820, 0x1ab4e: 0x6c7c5e20, 0x1ab4f: 0x6d408620, - 0x1ab50: 0x6c58f820, 0x1ab51: 0x6cb75220, 0x1ab52: 0x6c762620, 0x1ab53: 0x6d2bc820, - 0x1ab54: 0x6c077c20, 0x1ab55: 0x6d16e020, 0x1ab56: 0x6c679e20, 0x1ab57: 0x6ce26220, - 0x1ab58: 0x6d29fe20, 0x1ab59: 0x6c079820, 0x1ab5a: 0x6cf5b420, 0x1ab5b: 0x6c5a5020, - 0x1ab5c: 0x6c3a5020, 0x1ab5d: 0x6c2dc020, 0x1ab5e: 0x6d0a8620, 0x1ab5f: 0x6c07e020, - 0x1ab60: 0x6c2d5620, 0x1ab61: 0x6c02d020, 0x1ab62: 0x6cceea20, 0x1ab63: 0x6cf24c20, - 0x1ab64: 0x6c4d0220, 0x1ab65: 0x6c02d220, 0x1ab66: 0x6cf4fa20, 0x1ab67: 0x6c02d420, - 0x1ab68: 0x6c67ac20, 0x1ab69: 0x6c881c20, 0x1ab6a: 0x6c345a20, 0x1ab6b: 0x6d275e20, - 0x1ab6c: 0x6c67ae20, 0x1ab6d: 0x6cd3c420, 0x1ab6e: 0x6c3be620, 0x1ab6f: 0x6c5df620, - 0x1ab70: 0x6c0a8620, 0x1ab71: 0x6c944c20, 0x1ab72: 0x6c34c620, 0x1ab73: 0x6caa6e20, - 0x1ab74: 0x6caa3a20, 0x1ab75: 0x6c2f6820, 0x1ab76: 0x6ca38e20, 0x1ab77: 0x6cb89620, - 0x1ab78: 0x6c645c20, 0x1ab79: 0x6cddde20, 0x1ab7a: 0x6c6fa220, 0x1ab7b: 0x6caa8e20, - 0x1ab7c: 0x6c142820, 0x1ab7d: 0x6c500620, 0x1ab7e: 0x6cfa7020, 0x1ab7f: 0x6c391a20, - // Block 0x6ae, offset 0x1ab80 - 0x1ab80: 0x6c611a20, 0x1ab81: 0x6cd76e20, 0x1ab82: 0x6cc78a20, 0x1ab83: 0x6c39f020, - 0x1ab84: 0x6cee4420, 0x1ab85: 0x6c52ec20, 0x1ab86: 0x6d3c0620, 0x1ab87: 0x6c3fa620, - 0x1ab88: 0x6c965c20, 0x1ab89: 0x6c27b420, 0x1ab8a: 0x6cc5be20, 0x1ab8b: 0x6c3d3a20, - 0x1ab8c: 0x6c6e4820, 0x1ab8d: 0x6d0c5620, 0x1ab8e: 0x6c4d5420, 0x1ab8f: 0x6cf1fc20, - 0x1ab90: 0x6d378e20, 0x1ab91: 0x6cabb020, 0x1ab92: 0x6c323220, 0x1ab93: 0x6c617e20, - 0x1ab94: 0x6c792820, 0x1ab95: 0x6d381220, 0x1ab96: 0x6d108a20, 0x1ab97: 0x6c6cd420, - 0x1ab98: 0x6d277e20, 0x1ab99: 0x6c9eaa20, 0x1ab9a: 0x6c3d1e20, 0x1ab9b: 0x6c1ca420, - 0x1ab9c: 0x6d267a20, 0x1ab9d: 0x6d3c0a20, 0x1ab9e: 0x6ca96220, 0x1ab9f: 0x6d0e3a20, - 0x1aba0: 0x6ca30620, 0x1aba1: 0x6d02a820, 0x1aba2: 0x6c3b5220, 0x1aba3: 0x6c08ba20, - 0x1aba4: 0x6d20ae20, 0x1aba5: 0x6ceb6e20, 0x1aba6: 0x6c3c1820, 0x1aba7: 0x6ced7220, - 0x1aba8: 0x6c39a220, 0x1aba9: 0x6cf41e20, 0x1abaa: 0x6d22cc20, 0x1abab: 0x6c4a3620, - 0x1abac: 0x6c323a20, 0x1abad: 0x6c036420, 0x1abae: 0x6ca5b420, 0x1abaf: 0x6d38cc20, - 0x1abb0: 0x6d3d2c20, 0x1abb1: 0x6d2f5620, 0x1abb2: 0x6c267c20, 0x1abb3: 0x6ca39820, - 0x1abb4: 0x6d25fe20, 0x1abb5: 0x6ce80820, 0x1abb6: 0x6cfb2a20, 0x1abb7: 0x6d343c20, - 0x1abb8: 0x6c353020, 0x1abb9: 0x6c9a7420, 0x1abba: 0x6ca0c620, 0x1abbb: 0x6cb4d020, - 0x1abbc: 0x6c092a20, 0x1abbd: 0x6ccfaa20, 0x1abbe: 0x6cbc9420, 0x1abbf: 0x6c353220, - // Block 0x6af, offset 0x1abc0 - 0x1abc0: 0x6c50c420, 0x1abc1: 0x6d062c20, 0x1abc2: 0x6c37f820, 0x1abc3: 0x6d328420, - 0x1abc4: 0x6c9f2820, 0x1abc5: 0x6c04e620, 0x1abc6: 0x6ca22820, 0x1abc7: 0x6c3d3e20, - 0x1abc8: 0x6c8ca420, 0x1abc9: 0x6d3ee220, 0x1abca: 0x6d3ee420, 0x1abcb: 0x6cd2b420, - 0x1abcc: 0x6cc4ac20, 0x1abcd: 0x6cccc020, 0x1abce: 0x6d0f4620, 0x1abcf: 0x6c975c20, - 0x1abd0: 0x6c6c1620, 0x1abd1: 0x6c46ee20, 0x1abd2: 0x6cd88020, 0x1abd3: 0x6d041420, - 0x1abd4: 0x6cef8e20, 0x1abd5: 0x6d3e0c20, 0x1abd6: 0x6c71f620, 0x1abd7: 0x6cccc220, - 0x1abd8: 0x6cb1e820, 0x1abd9: 0x6cc5d420, 0x1abda: 0x6d10d620, 0x1abdb: 0x6c305820, - 0x1abdc: 0x6c674c20, 0x1abdd: 0x6cd4b020, 0x1abde: 0x6c5ff020, 0x1abdf: 0x6c40e620, - 0x1abe0: 0x6cfe1c20, 0x1abe1: 0x6c572a20, 0x1abe2: 0x6c72da20, 0x1abe3: 0x6c682c20, - 0x1abe4: 0x6c469c20, 0x1abe5: 0x6c81a220, 0x1abe6: 0x6c647420, 0x1abe7: 0x6c647620, - 0x1abe8: 0x6d148c20, 0x1abe9: 0x6ca75c20, 0x1abea: 0x6d344220, 0x1abeb: 0x6c5e9820, - 0x1abec: 0x6c5ea220, 0x1abed: 0x6cfc8a20, 0x1abee: 0x6c525620, 0x1abef: 0x6c49de20, - 0x1abf0: 0x6c756020, 0x1abf1: 0x6c7ac020, 0x1abf2: 0x6d0e4420, 0x1abf3: 0x6ca02c20, - 0x1abf4: 0x6c8ad020, 0x1abf5: 0x6cae0a20, 0x1abf6: 0x6c35ee20, 0x1abf7: 0x6d202220, - 0x1abf8: 0x6d0c6e20, 0x1abf9: 0x6c143420, 0x1abfa: 0x6ccfb820, 0x1abfb: 0x6d19ae20, - 0x1abfc: 0x6cd24e20, 0x1abfd: 0x6c4ad220, 0x1abfe: 0x6cc2be20, 0x1abff: 0x6d3e0e20, - // Block 0x6b0, offset 0x1ac00 - 0x1ac00: 0x6cd90820, 0x1ac01: 0x6cee6820, 0x1ac02: 0x6c530e20, 0x1ac03: 0x6cec0420, - 0x1ac04: 0x6c907e20, 0x1ac05: 0x6d0b8420, 0x1ac06: 0x6cc52020, 0x1ac07: 0x6c682e20, - 0x1ac08: 0x6c942e20, 0x1ac09: 0x6cb24e20, 0x1ac0a: 0x6cfc9e20, 0x1ac0b: 0x6cced020, - 0x1ac0c: 0x6c850820, 0x1ac0d: 0x6c19c820, 0x1ac0e: 0x6d017a20, 0x1ac0f: 0x6c984a20, - 0x1ac10: 0x6c3d5c20, 0x1ac11: 0x6cdd1020, 0x1ac12: 0x6c99e420, 0x1ac13: 0x6cef9c20, - 0x1ac14: 0x6c789420, 0x1ac15: 0x6c21ae20, 0x1ac16: 0x6c21b020, 0x1ac17: 0x6ce6b820, - 0x1ac18: 0x6ca78820, 0x1ac19: 0x6d03da20, 0x1ac1a: 0x6ca3ee20, 0x1ac1b: 0x6d20ec20, - 0x1ac1c: 0x6ca31a20, 0x1ac1d: 0x6cb3c820, 0x1ac1e: 0x6ca56820, 0x1ac1f: 0x6c72e220, - 0x1ac20: 0x6ccfc620, 0x1ac21: 0x6d35ae20, 0x1ac22: 0x6c4df020, 0x1ac23: 0x6c2c2c20, - 0x1ac24: 0x6d3c1020, 0x1ac25: 0x6c355220, 0x1ac26: 0x6cb20820, 0x1ac27: 0x6ce9f820, - 0x1ac28: 0x6cfca020, 0x1ac29: 0x6c9e1020, 0x1ac2a: 0x6cf3ae20, 0x1ac2b: 0x6d0c7020, - 0x1ac2c: 0x6cf44220, 0x1ac2d: 0x6c001e20, 0x1ac2e: 0x6d0c7c20, 0x1ac2f: 0x6d20ee20, - 0x1ac30: 0x6cd89a20, 0x1ac31: 0x6d20f020, 0x1ac32: 0x6cebd020, 0x1ac33: 0x6c87de20, - 0x1ac34: 0x6cfb3a20, 0x1ac35: 0x6c707c20, 0x1ac36: 0x6cc24220, 0x1ac37: 0x6d3c8020, - 0x1ac38: 0x6cb4e220, 0x1ac39: 0x6cfb4020, 0x1ac3a: 0x6d3d4820, 0x1ac3b: 0x6c2ff020, - 0x1ac3c: 0x6c166420, 0x1ac3d: 0x6c923420, 0x1ac3e: 0x6c006420, 0x1ac3f: 0x6c353620, - // Block 0x6b1, offset 0x1ac40 - 0x1ac40: 0x6c353820, 0x1ac41: 0x6c908620, 0x1ac42: 0x6c9dbe20, 0x1ac43: 0x6c239020, - 0x1ac44: 0x6cb3f020, 0x1ac45: 0x6c710e20, 0x1ac46: 0x6cb32820, 0x1ac47: 0x6c10f620, - 0x1ac48: 0x6c8cde20, 0x1ac49: 0x6ced0020, 0x1ac4a: 0x6c0c7220, 0x1ac4b: 0x6cfeb020, - 0x1ac4c: 0x6cd52620, 0x1ac4d: 0x6cb6f020, 0x1ac4e: 0x6c5ab020, 0x1ac4f: 0x6c394020, - 0x1ac50: 0x6cf2b220, 0x1ac51: 0x6cc89820, 0x1ac52: 0x6cdfda20, 0x1ac53: 0x6c39f820, - 0x1ac54: 0x6c3b0420, 0x1ac55: 0x6c6aae20, 0x1ac56: 0x6ce46020, 0x1ac57: 0x6ca5d620, - 0x1ac58: 0x6cc2d820, 0x1ac59: 0x6c6e5820, 0x1ac5a: 0x6c5cbc20, 0x1ac5b: 0x6c6da420, - 0x1ac5c: 0x6cb8d220, 0x1ac5d: 0x6c2d4c20, 0x1ac5e: 0x6d042620, 0x1ac5f: 0x6c568a20, - 0x1ac60: 0x6cec8820, 0x1ac61: 0x6c7ef220, 0x1ac62: 0x6c097420, 0x1ac63: 0x6d19dc20, - 0x1ac64: 0x6c1d6820, 0x1ac65: 0x6ca52e20, 0x1ac66: 0x6c3fe420, 0x1ac67: 0x6c6e6e20, - 0x1ac68: 0x6c94ec20, 0x1ac69: 0x6c01b820, 0x1ac6a: 0x6c7f9420, 0x1ac6b: 0x6c7d5220, - 0x1ac6c: 0x6d1a5220, 0x1ac6d: 0x6d0b9220, 0x1ac6e: 0x6c707e20, 0x1ac6f: 0x6c85e820, - 0x1ac70: 0x6c2d1220, 0x1ac71: 0x6cfb4220, 0x1ac72: 0x6c57da20, 0x1ac73: 0x6c579220, - 0x1ac74: 0x6d1bac20, 0x1ac75: 0x6c14ee20, 0x1ac76: 0x6cd05a20, 0x1ac77: 0x6ce66e20, - 0x1ac78: 0x6c296420, 0x1ac79: 0x6d11ac20, 0x1ac7a: 0x6cf4e620, 0x1ac7b: 0x6ca44820, - 0x1ac7c: 0x6c21b220, 0x1ac7d: 0x6c641420, 0x1ac7e: 0x6ce7d820, 0x1ac7f: 0x6d06d220, - // Block 0x6b2, offset 0x1ac80 - 0x1ac80: 0x6d233020, 0x1ac81: 0x6cef0a20, 0x1ac82: 0x6c2c5420, 0x1ac83: 0x6cc74820, - 0x1ac84: 0x6c9a5620, 0x1ac85: 0x6c27de20, 0x1ac86: 0x6cc86220, 0x1ac87: 0x6cbd2c20, - 0x1ac88: 0x6c5ab220, 0x1ac89: 0x6cf2ea20, 0x1ac8a: 0x6cb99420, 0x1ac8b: 0x6c210820, - 0x1ac8c: 0x6c9e7420, 0x1ac8d: 0x6c3fec20, 0x1ac8e: 0x6c6b9620, 0x1ac8f: 0x6c329820, - 0x1ac90: 0x6d151420, 0x1ac91: 0x6d382a20, 0x1ac92: 0x6c99f820, 0x1ac93: 0x6c59be20, - 0x1ac94: 0x6c9dc220, 0x1ac95: 0x6c013020, 0x1ac96: 0x6d1bae20, 0x1ac97: 0x6d079420, - 0x1ac98: 0x6c6a0e20, 0x1ac99: 0x6cee8220, 0x1ac9a: 0x6c9a8e20, 0x1ac9b: 0x6d261620, - 0x1ac9c: 0x6d32c220, 0x1ac9d: 0x6cbfae20, 0x1ac9e: 0x6cd37a20, 0x1ac9f: 0x6d01a820, - 0x1aca0: 0x6ceb7c20, 0x1aca1: 0x6c88f620, 0x1aca2: 0x6c997820, 0x1aca3: 0x6cc4c420, - 0x1aca4: 0x6cd7e620, 0x1aca5: 0x6cb0f220, 0x1aca6: 0x6cf08e20, 0x1aca7: 0x6cebd820, - 0x1aca8: 0x6c6ff420, 0x1aca9: 0x6c555620, 0x1acaa: 0x6c02a620, 0x1acab: 0x6cbd1420, - 0x1acac: 0x6c05fe20, 0x1acad: 0x6d059220, 0x1acae: 0x6ce7da20, 0x1acaf: 0x6c4a6420, - 0x1acb0: 0x6c1e8a20, 0x1acb1: 0x6d110620, 0x1acb2: 0x6cb09e20, 0x1acb3: 0x6cf78420, - 0x1acb4: 0x6d257a20, 0x1acb5: 0x6d1d4020, 0x1acb6: 0x6cc67020, 0x1acb7: 0x6cc81a20, - 0x1acb8: 0x6c1ab620, 0x1acb9: 0x6c8e6620, 0x1acba: 0x6c9a5e20, 0x1acbb: 0x6cac5c20, - 0x1acbc: 0x6c02a820, 0x1acbd: 0x6c966020, 0x1acbe: 0x6c46ae20, 0x1acbf: 0x6c7cf620, - // Block 0x6b3, offset 0x1acc0 - 0x1acc0: 0x6cbd8020, 0x1acc1: 0x6c644820, 0x1acc2: 0x6ccae420, 0x1acc3: 0x6d315e20, - 0x1acc4: 0x6d257c20, 0x1acc5: 0x6c6a1020, 0x1acc6: 0x6cc68020, 0x1acc7: 0x6ca00420, - 0x1acc8: 0x6d1bc220, 0x1acc9: 0x6c604c20, 0x1acca: 0x6cdac820, 0x1accb: 0x6ca79c20, - 0x1accc: 0x6cfb6c20, 0x1accd: 0x6ce1ce20, 0x1acce: 0x6cad0020, 0x1accf: 0x6c80b220, - 0x1acd0: 0x6ca4fc20, 0x1acd1: 0x6c05ca20, 0x1acd2: 0x6c00a620, 0x1acd3: 0x6cb0a020, - 0x1acd4: 0x6cb20e20, 0x1acd5: 0x6d182020, 0x1acd6: 0x6cb17e20, 0x1acd7: 0x6d238a20, - 0x1acd8: 0x6c824220, 0x1acd9: 0x6d081820, 0x1acda: 0x6c975820, 0x1acdb: 0x6d140020, - 0x1acdc: 0x6d2ec220, 0x1acdd: 0x6c773820, 0x1acde: 0x6d1d9820, 0x1acdf: 0x6ca6a820, - 0x1ace0: 0x6c840e20, 0x1ace1: 0x6c2b7a20, 0x1ace2: 0x6c4a7820, 0x1ace3: 0x6d0c1a20, - 0x1ace4: 0x6c6c9c20, 0x1ace5: 0x6d3b8420, 0x1ace6: 0x6c16b820, 0x1ace7: 0x6d2ada20, - 0x1ace8: 0x6c4dac20, 0x1ace9: 0x6ca59c20, 0x1acea: 0x6c81d820, 0x1aceb: 0x6ca05c20, - 0x1acec: 0x6d300220, 0x1aced: 0x6c56ae20, 0x1acee: 0x6c56b020, 0x1acef: 0x6c02d620, - 0x1acf0: 0x6ca59e20, 0x1acf1: 0x6cbb1220, 0x1acf2: 0x6c96f620, 0x1acf3: 0x6cb1e420, - 0x1acf4: 0x6c472a20, 0x1acf5: 0x6cf46020, 0x1acf6: 0x6cbbea20, 0x1acf7: 0x6ceb8820, - 0x1acf8: 0x6d2e1020, 0x1acf9: 0x6c98f020, 0x1acfa: 0x6cfb7820, 0x1acfb: 0x6cfb7a20, - 0x1acfc: 0x6ca14a20, 0x1acfd: 0x6c8a0420, 0x1acfe: 0x6c883020, 0x1acff: 0x6c57b820, - // Block 0x6b4, offset 0x1ad00 - 0x1ad00: 0x6c4a8420, 0x1ad01: 0x6c2aa620, 0x1ad02: 0x6d348c20, 0x1ad03: 0x6d05ce20, - 0x1ad04: 0x6d140a20, 0x1ad05: 0x6c579c20, 0x1ad06: 0x6cf69220, 0x1ad07: 0x6c7d0a20, - 0x1ad08: 0x6cc52820, 0x1ad09: 0x6cf69420, 0x1ad0a: 0x6d0ea020, 0x1ad0b: 0x6c151820, - 0x1ad0c: 0x6c686420, 0x1ad0d: 0x6c9a6620, 0x1ad0e: 0x6c396820, 0x1ad0f: 0x6c385620, - 0x1ad10: 0x6cfad420, 0x1ad11: 0x6d188620, 0x1ad12: 0x6c5c2a20, 0x1ad13: 0x6c69c420, - 0x1ad14: 0x6c405220, 0x1ad15: 0x6cd3d820, 0x1ad16: 0x6c0a4620, 0x1ad17: 0x6ccda420, - 0x1ad18: 0x6cdc5a20, 0x1ad19: 0x6cbb2020, 0x1ad1a: 0x6c88c820, 0x1ad1b: 0x6c589420, - 0x1ad1c: 0x6d02ec20, 0x1ad1d: 0x6ca7aa20, 0x1ad1e: 0x6c303420, 0x1ad1f: 0x6d188820, - 0x1ad20: 0x6c117020, 0x1ad21: 0x6c00c820, 0x1ad22: 0x6ca77820, 0x1ad23: 0x6ca92220, - 0x1ad24: 0x6c966420, 0x1ad25: 0x6ce5ce20, 0x1ad26: 0x6c1de220, 0x1ad27: 0x6c6d5820, - 0x1ad28: 0x6c226820, 0x1ad29: 0x6d219e20, 0x1ad2a: 0x6cb21620, 0x1ad2b: 0x6cc6be20, - 0x1ad2c: 0x6cc7ce20, 0x1ad2d: 0x6ca3a820, 0x1ad2e: 0x6d0c3220, 0x1ad2f: 0x6cdf4620, - 0x1ad30: 0x6d1bfc20, 0x1ad31: 0x6c11b620, 0x1ad32: 0x6ca7b220, 0x1ad33: 0x6d26ea20, - 0x1ad34: 0x6d1c9620, 0x1ad35: 0x6c9dd620, 0x1ad36: 0x6c0ae620, 0x1ad37: 0x6c966620, - 0x1ad38: 0x6cd08020, 0x1ad39: 0x6d043e20, 0x1ad3a: 0x6ca6d420, 0x1ad3b: 0x6c31c820, - 0x1ad3c: 0x6c8f2020, 0x1ad3d: 0x6d251c20, 0x1ad3e: 0x6c804820, 0x1ad3f: 0x6d0ee820, - // Block 0x6b5, offset 0x1ad40 - 0x1ad40: 0x6cd6a820, 0x1ad41: 0x6c8d8c20, 0x1ad42: 0x6c696620, 0x1ad43: 0x6ca77a20, - 0x1ad44: 0x6c804c20, 0x1ad45: 0x6cb94420, 0x1ad46: 0x6d1c1a20, 0x1ad47: 0x6cd6ae20, - 0x1ad48: 0x6c5c9020, 0x1ad49: 0x6cc32620, 0x1ad4a: 0x6c9d0a20, 0x1ad4b: 0x6c84b820, - 0x1ad4c: 0x6c944e20, 0x1ad4d: 0x6d0d0e20, 0x1ad4e: 0x6d3a4020, 0x1ad4f: 0x6c805820, - 0x1ad50: 0x6d3f6820, 0x1ad51: 0x6c6a5220, 0x1ad52: 0x6c73c420, 0x1ad53: 0x6c73c620, - 0x1ad54: 0x6c799220, 0x1ad55: 0x6d281220, 0x1ad56: 0x6c965e20, 0x1ad57: 0x6d3f2820, - 0x1ad58: 0x6c25a020, 0x1ad59: 0x6cdcca20, 0x1ad5a: 0x6c3dd620, 0x1ad5b: 0x6c06d620, - 0x1ad5c: 0x6d3e0020, 0x1ad5d: 0x6cffcc20, 0x1ad5e: 0x6d031a20, 0x1ad5f: 0x6c9bfe20, - 0x1ad60: 0x6cd88c20, 0x1ad61: 0x6cdf0220, 0x1ad62: 0x6c05a420, 0x1ad63: 0x6c619220, - 0x1ad64: 0x6c46f020, 0x1ad65: 0x6caa3c20, 0x1ad66: 0x6d08f820, 0x1ad67: 0x6d206a20, - 0x1ad68: 0x6d3ba220, 0x1ad69: 0x6c4d1e20, 0x1ad6a: 0x6c943020, 0x1ad6b: 0x6cdcd020, - 0x1ad6c: 0x6ca48e20, 0x1ad6d: 0x6c9ec420, 0x1ad6e: 0x6c239220, 0x1ad6f: 0x6cb8d420, - 0x1ad70: 0x6cd52820, 0x1ad71: 0x6c11f620, 0x1ad72: 0x6d0aea20, 0x1ad73: 0x6d3e3420, - 0x1ad74: 0x6ca63e20, 0x1ad75: 0x6c3d8820, 0x1ad76: 0x6d3e4e20, 0x1ad77: 0x6c841020, - 0x1ad78: 0x6d091820, 0x1ad79: 0x6c0ff620, 0x1ad7a: 0x6cc7d020, 0x1ad7b: 0x6ca38820, - 0x1ad7c: 0x6ca89020, 0x1ad7d: 0x6ca89220, 0x1ad7e: 0x6d1c1c20, 0x1ad7f: 0x6c945020, - // Block 0x6b6, offset 0x1ad80 - 0x1ad80: 0x6c9db620, 0x1ad81: 0x6ca8f220, 0x1ad82: 0x6cc6ee20, 0x1ad83: 0x6cdddc20, - 0x1ad84: 0x6c4ab820, 0x1ad85: 0x6d2d1820, 0x1ad86: 0x6cbef820, 0x1ad87: 0x6d221620, - 0x1ad88: 0x6cd43a20, 0x1ad89: 0x6c011220, 0x1ad8a: 0x6ce83820, 0x1ad8b: 0x6cd97e20, - 0x1ad8c: 0x6cecc020, 0x1ad8d: 0x6cc78420, 0x1ad8e: 0x6d118220, 0x1ad8f: 0x6c52f220, - 0x1ad90: 0x6d145e20, 0x1ad91: 0x6c6e0c20, 0x1ad92: 0x6d3cc820, 0x1ad93: 0x6c9d2220, - 0x1ad94: 0x6d3a5820, 0x1ad95: 0x6c295620, 0x1ad96: 0x6c530020, 0x1ad97: 0x6d3f7020, - 0x1ad98: 0x6c490420, 0x1ad99: 0x6d38fe20, 0x1ad9a: 0x6c2f9620, 0x1ad9b: 0x6cecee20, - 0x1ad9c: 0x6d198e20, 0x1ad9d: 0x6c05e220, 0x1ad9e: 0x6cd24220, 0x1ad9f: 0x6cd24420, - 0x1ada0: 0x6c1d3620, 0x1ada1: 0x6cd04620, 0x1ada2: 0x6c788c20, 0x1ada3: 0x6d078220, - 0x1ada4: 0x6cd32c20, 0x1ada5: 0x6d202420, 0x1ada6: 0x6c58fa20, 0x1ada7: 0x6d14b820, - 0x1ada8: 0x6ce5b820, 0x1ada9: 0x6cd2be20, 0x1adaa: 0x6cfc8c20, 0x1adab: 0x6c456e20, - 0x1adac: 0x6c19ca20, 0x1adad: 0x6cc44220, 0x1adae: 0x6c457a20, 0x1adaf: 0x6cfe9420, - 0x1adb0: 0x6d291220, 0x1adb1: 0x6d2cba20, 0x1adb2: 0x6c05f020, 0x1adb3: 0x6c4d5e20, - 0x1adb4: 0x6d0e4e20, 0x1adb5: 0x6cfe9620, 0x1adb6: 0x6c634020, 0x1adb7: 0x6cd05020, - 0x1adb8: 0x6c18ae20, 0x1adb9: 0x6cc66020, 0x1adba: 0x6c5a4c20, 0x1adbb: 0x6c9d3020, - 0x1adbc: 0x6c79e020, 0x1adbd: 0x6c7b5220, 0x1adbe: 0x6c0d2e20, 0x1adbf: 0x6cdaa020, - // Block 0x6b7, offset 0x1adc0 - 0x1adc0: 0x6c112420, 0x1adc1: 0x6d296620, 0x1adc2: 0x6c61de20, 0x1adc3: 0x6d24da20, - 0x1adc4: 0x6c61e020, 0x1adc5: 0x6d1a5420, 0x1adc6: 0x6c9d3620, 0x1adc7: 0x6c79e620, - 0x1adc8: 0x6cbe4220, 0x1adc9: 0x6cc3b420, 0x1adca: 0x6d315620, 0x1adcb: 0x6c668820, - 0x1adcc: 0x6c3fee20, 0x1adcd: 0x6ca90420, 0x1adce: 0x6c0e1e20, 0x1adcf: 0x6c587420, - 0x1add0: 0x6c9a9020, 0x1add1: 0x6cbdd620, 0x1add2: 0x6c4e0c20, 0x1add3: 0x6d233220, - 0x1add4: 0x6cd26620, 0x1add5: 0x6ca90620, 0x1add6: 0x6c6d1020, 0x1add7: 0x6ca90a20, - 0x1add8: 0x6d365020, 0x1add9: 0x6d226820, 0x1adda: 0x6c060220, 0x1addb: 0x6c7b5620, - 0x1addc: 0x6ca90c20, 0x1addd: 0x6cbddc20, 0x1adde: 0x6ca12820, 0x1addf: 0x6c13f220, - 0x1ade0: 0x6c726020, 0x1ade1: 0x6c489c20, 0x1ade2: 0x6cbde220, 0x1ade3: 0x6c54e420, - 0x1ade4: 0x6cf50a20, 0x1ade5: 0x6c89f020, 0x1ade6: 0x6cd27a20, 0x1ade7: 0x6ca91020, - 0x1ade8: 0x6d2d4620, 0x1ade9: 0x6cd06820, 0x1adea: 0x6ceffc20, 0x1adeb: 0x6d014820, - 0x1adec: 0x6c7b5820, 0x1aded: 0x6c5c0e20, 0x1adee: 0x6c8a0620, 0x1adef: 0x6c75e220, - 0x1adf0: 0x6c589620, 0x1adf1: 0x6d18c020, 0x1adf2: 0x6d156a20, 0x1adf3: 0x6c061c20, - 0x1adf4: 0x6cbd4a20, 0x1adf5: 0x6c1d4620, 0x1adf6: 0x6c062020, 0x1adf7: 0x6c3c7c20, - 0x1adf8: 0x6c25b020, 0x1adf9: 0x6c332c20, 0x1adfa: 0x6cd87820, 0x1adfb: 0x6d09d420, - 0x1adfc: 0x6c29ce20, 0x1adfd: 0x6c93ca20, 0x1adfe: 0x6c333620, 0x1adff: 0x6cd45020, - // Block 0x6b8, offset 0x1ae00 - 0x1ae00: 0x6cb34a20, 0x1ae01: 0x6c3c2420, 0x1ae02: 0x6d3b7420, 0x1ae03: 0x6c3d5e20, - 0x1ae04: 0x6ccf3a20, 0x1ae05: 0x6c789620, 0x1ae06: 0x6c674e20, 0x1ae07: 0x6c675c20, - 0x1ae08: 0x6d3b7a20, 0x1ae09: 0x6cf08420, 0x1ae0a: 0x6d41e820, 0x1ae0b: 0x6d0a0c20, - 0x1ae0c: 0x6cd5d220, 0x1ae0d: 0x6c335420, 0x1ae0e: 0x6c29e820, 0x1ae0f: 0x6cffa220, - 0x1ae10: 0x6c6a5420, 0x1ae11: 0x6cceac20, 0x1ae12: 0x6c377e20, 0x1ae13: 0x6c378020, - 0x1ae14: 0x6c378220, 0x1ae15: 0x6c40d020, 0x1ae16: 0x6c645e20, 0x1ae17: 0x6cd49a20, - 0x1ae18: 0x6c189220, 0x1ae19: 0x6cce4a20, 0x1ae1a: 0x6cce4c20, 0x1ae1b: 0x6ca1b420, - 0x1ae1c: 0x6c40c620, 0x1ae1d: 0x6c169e20, 0x1ae1e: 0x6c8a9a20, 0x1ae1f: 0x6cfc1020, - 0x1ae20: 0x6cfc1220, 0x1ae21: 0x6c7dde20, 0x1ae22: 0x6d1edc20, 0x1ae23: 0x6cedbc20, - 0x1ae24: 0x6d1ede20, 0x1ae25: 0x6c8a8c20, 0x1ae26: 0x6c8a8e20, 0x1ae27: 0x6d10ca20, - 0x1ae28: 0x6c983020, 0x1ae29: 0x6cedc620, 0x1ae2a: 0x6cedc020, 0x1ae2b: 0x6cedc220, - 0x1ae2c: 0x6c40d420, 0x1ae2d: 0x6d10cc20, 0x1ae2e: 0x6c34d620, 0x1ae2f: 0x6c7cec20, - 0x1ae30: 0x6d37f020, 0x1ae31: 0x6c6ff620, 0x1ae32: 0x6c419c20, 0x1ae33: 0x6c478820, - 0x1ae34: 0x6c419e20, 0x1ae35: 0x6ce9b420, 0x1ae36: 0x6c41b620, 0x1ae37: 0x6c41b820, - 0x1ae38: 0x6cd18a20, 0x1ae39: 0x6d1ac220, 0x1ae3a: 0x6c1b7020, 0x1ae3b: 0x6c779020, - 0x1ae3c: 0x6ca5b620, 0x1ae3d: 0x6c6c8020, 0x1ae3e: 0x6cef8620, 0x1ae3f: 0x6ca7d020, - // Block 0x6b9, offset 0x1ae40 - 0x1ae40: 0x6c70f020, 0x1ae41: 0x6cb08620, 0x1ae42: 0x6c134e20, 0x1ae43: 0x6cf83c20, - 0x1ae44: 0x6c086c20, 0x1ae45: 0x6c705620, 0x1ae46: 0x6c6bbe20, 0x1ae47: 0x6ce48020, - 0x1ae48: 0x6cc0dc20, 0x1ae49: 0x6ce44c20, 0x1ae4a: 0x6c6bc020, 0x1ae4b: 0x6cf35620, - 0x1ae4c: 0x6c2dfa20, 0x1ae4d: 0x6cd1a220, 0x1ae4e: 0x6cd2c020, 0x1ae4f: 0x6cb28020, - 0x1ae50: 0x6c5ea420, 0x1ae51: 0x6d017c20, 0x1ae52: 0x6d31c620, 0x1ae53: 0x6d017e20, - 0x1ae54: 0x6ca5ca20, 0x1ae55: 0x6d2de020, 0x1ae56: 0x6cf5ba20, 0x1ae57: 0x6cef9e20, - 0x1ae58: 0x6c97b420, 0x1ae59: 0x6c353a20, 0x1ae5a: 0x6c910620, 0x1ae5b: 0x6cb29820, - 0x1ae5c: 0x6ce44e20, 0x1ae5d: 0x6c3aa420, 0x1ae5e: 0x6cd55820, 0x1ae5f: 0x6d01aa20, - 0x1ae60: 0x6ce8a020, 0x1ae61: 0x6c939a20, 0x1ae62: 0x6c93a620, 0x1ae63: 0x6cf7f820, - 0x1ae64: 0x6c135420, 0x1ae65: 0x6c93ae20, 0x1ae66: 0x6c727820, 0x1ae67: 0x6d01f620, - 0x1ae68: 0x6c72a420, 0x1ae69: 0x6c73ba20, 0x1ae6a: 0x6c8a3020, 0x1ae6b: 0x6c74e620, - 0x1ae6c: 0x6cd58820, 0x1ae6d: 0x6cf93a20, 0x1ae6e: 0x6c17fa20, 0x1ae6f: 0x6cea3620, - 0x1ae70: 0x6ca67420, 0x1ae71: 0x6cccb020, 0x1ae72: 0x6cec4820, 0x1ae73: 0x6cfa6c20, - 0x1ae74: 0x6c856820, 0x1ae75: 0x6c35c620, 0x1ae76: 0x6c2a5420, 0x1ae77: 0x6c5ca820, - 0x1ae78: 0x6c8f6820, 0x1ae79: 0x6d165c20, 0x1ae7a: 0x6cb6ca20, 0x1ae7b: 0x6cc5b020, - 0x1ae7c: 0x6cf49e20, 0x1ae7d: 0x6c4e8020, 0x1ae7e: 0x6ccf9c20, 0x1ae7f: 0x6d221820, - // Block 0x6ba, offset 0x1ae80 - 0x1ae80: 0x6c1e5220, 0x1ae81: 0x6cdc1e20, 0x1ae82: 0x6cb6cc20, 0x1ae83: 0x6cc5b220, - 0x1ae84: 0x6d267c20, 0x1ae85: 0x6c04b820, 0x1ae86: 0x6d118420, 0x1ae87: 0x6c01f220, - 0x1ae88: 0x6d0b0e20, 0x1ae89: 0x6cf4a620, 0x1ae8a: 0x6c6a6e20, 0x1ae8b: 0x6c35cc20, - 0x1ae8c: 0x6c5fc620, 0x1ae8d: 0x6cb8a420, 0x1ae8e: 0x6c3b5420, 0x1ae8f: 0x6cecc420, - 0x1ae90: 0x6cb57020, 0x1ae91: 0x6c132820, 0x1ae92: 0x6cb96a20, 0x1ae93: 0x6cb57220, - 0x1ae94: 0x6c142e20, 0x1ae95: 0x6c6bb020, 0x1ae96: 0x6cc0d020, 0x1ae97: 0x6c429820, - 0x1ae98: 0x6cfc7a20, 0x1ae99: 0x6c02c020, 0x1ae9a: 0x6c7f8a20, 0x1ae9b: 0x6c29d020, - 0x1ae9c: 0x6c031a20, 0x1ae9d: 0x6d427c20, 0x1ae9e: 0x6d427e20, 0x1ae9f: 0x6d100220, - 0x1aea0: 0x6c71f820, 0x1aea1: 0x6c425c20, 0x1aea2: 0x6c785820, 0x1aea3: 0x6c466e20, - 0x1aea4: 0x6d08fa20, 0x1aea5: 0x6cb2fa20, 0x1aea6: 0x6c858a20, 0x1aea7: 0x6ce56e20, - 0x1aea8: 0x6cc0e020, 0x1aea9: 0x6d0c6220, 0x1aeaa: 0x6c3de420, 0x1aeab: 0x6d052e20, - 0x1aeac: 0x6c640020, 0x1aead: 0x6c8e0a20, 0x1aeae: 0x6ceaec20, 0x1aeaf: 0x6cafb220, - 0x1aeb0: 0x6c02c820, 0x1aeb1: 0x6c273020, 0x1aeb2: 0x6c7be020, 0x1aeb3: 0x6d268620, - 0x1aeb4: 0x6cc0e220, 0x1aeb5: 0x6c566220, 0x1aeb6: 0x6cb36620, 0x1aeb7: 0x6c9f2a20, - 0x1aeb8: 0x6c01a220, 0x1aeb9: 0x6ce57020, 0x1aeba: 0x6c8ca620, 0x1aebb: 0x6c1b0620, - 0x1aebc: 0x6cb2ea20, 0x1aebd: 0x6c2fde20, 0x1aebe: 0x6c4e8c20, 0x1aebf: 0x6c7c3420, - // Block 0x6bb, offset 0x1aec0 - 0x1aec0: 0x6d053020, 0x1aec1: 0x6c992a20, 0x1aec2: 0x6ce71420, 0x1aec3: 0x6d08fc20, - 0x1aec4: 0x6d16ae20, 0x1aec5: 0x6c0be220, 0x1aec6: 0x6c50d220, 0x1aec7: 0x6c032c20, - 0x1aec8: 0x6c95e620, 0x1aec9: 0x6c35f020, 0x1aeca: 0x6c3fc220, 0x1aecb: 0x6d09e420, - 0x1aecc: 0x6c2e6c20, 0x1aecd: 0x6c921e20, 0x1aece: 0x6c371e20, 0x1aecf: 0x6c373c20, - 0x1aed0: 0x6c40e820, 0x1aed1: 0x6cc28c20, 0x1aed2: 0x6c305a20, 0x1aed3: 0x6d149420, - 0x1aed4: 0x6ca22e20, 0x1aed5: 0x6cd25020, 0x1aed6: 0x6c011a20, 0x1aed7: 0x6ceee820, - 0x1aed8: 0x6c586220, 0x1aed9: 0x6d359620, 0x1aeda: 0x6c9d2c20, 0x1aedb: 0x6c850220, - 0x1aedc: 0x6c61a420, 0x1aedd: 0x6ce72220, 0x1aede: 0x6ceeea20, 0x1aedf: 0x6d202620, - 0x1aee0: 0x6c483420, 0x1aee1: 0x6cf99420, 0x1aee2: 0x6c850420, 0x1aee3: 0x6d10d820, - 0x1aee4: 0x6c698620, 0x1aee5: 0x6d329420, 0x1aee6: 0x6c943220, 0x1aee7: 0x6c683020, - 0x1aee8: 0x6c355420, 0x1aee9: 0x6c355620, 0x1aeea: 0x6d22ee20, 0x1aeeb: 0x6d007a20, - 0x1aeec: 0x6c100e20, 0x1aeed: 0x6cbc3620, 0x1aeee: 0x6cc43420, 0x1aeef: 0x6c3c3220, - 0x1aef0: 0x6c3c3420, 0x1aef1: 0x6ca4a220, 0x1aef2: 0x6c850a20, 0x1aef3: 0x6d1f1420, - 0x1aef4: 0x6cfca220, 0x1aef5: 0x6c532820, 0x1aef6: 0x6c29d220, 0x1aef7: 0x6ccfc820, - 0x1aef8: 0x6c19cc20, 0x1aef9: 0x6ce88e20, 0x1aefa: 0x6c44f620, 0x1aefb: 0x6c75a220, - 0x1aefc: 0x6c502620, 0x1aefd: 0x6cf9a020, 0x1aefe: 0x6d1a4620, 0x1aeff: 0x6d223a20, - // Block 0x6bc, offset 0x1af00 - 0x1af00: 0x6c811620, 0x1af01: 0x6c770820, 0x1af02: 0x6c814e20, 0x1af03: 0x6c7ee820, - 0x1af04: 0x6cfbf220, 0x1af05: 0x6cc3aa20, 0x1af06: 0x6c797020, 0x1af07: 0x6c1d1020, - 0x1af08: 0x6c1d1220, 0x1af09: 0x6cde4620, 0x1af0a: 0x6c8bac20, 0x1af0b: 0x6c578a20, - 0x1af0c: 0x6c708420, 0x1af0d: 0x6c7ef420, 0x1af0e: 0x6cb5be20, 0x1af0f: 0x6c9f4420, - 0x1af10: 0x6c7d5420, 0x1af11: 0x6c7d5620, 0x1af12: 0x6d40b420, 0x1af13: 0x6c480a20, - 0x1af14: 0x6c24c820, 0x1af15: 0x6d0b2620, 0x1af16: 0x6d0b2820, 0x1af17: 0x6c429e20, - 0x1af18: 0x6c94ee20, 0x1af19: 0x6c94f020, 0x1af1a: 0x6c837420, 0x1af1b: 0x6c742020, - 0x1af1c: 0x6c342820, 0x1af1d: 0x6d32ac20, 0x1af1e: 0x6c4c1e20, 0x1af1f: 0x6d1a5620, - 0x1af20: 0x6c2ff220, 0x1af21: 0x6c4dfa20, 0x1af22: 0x6d32ae20, 0x1af23: 0x6cefac20, - 0x1af24: 0x6cff7e20, 0x1af25: 0x6cafde20, 0x1af26: 0x6d0bf220, 0x1af27: 0x6cd91420, - 0x1af28: 0x6c6ab220, 0x1af29: 0x6c07e220, 0x1af2a: 0x6d40b620, 0x1af2b: 0x6c7a3c20, - 0x1af2c: 0x6c2ff420, 0x1af2d: 0x6d2de420, 0x1af2e: 0x6c480c20, 0x1af2f: 0x6d1a5820, - 0x1af30: 0x6d3f6a20, 0x1af31: 0x6d2b4e20, 0x1af32: 0x6c59c020, 0x1af33: 0x6d211820, - 0x1af34: 0x6cec6220, 0x1af35: 0x6d0fb220, 0x1af36: 0x6c3c4a20, 0x1af37: 0x6cc05c20, - 0x1af38: 0x6d0fb420, 0x1af39: 0x6ce32020, 0x1af3a: 0x6d15ec20, 0x1af3b: 0x6d361e20, - 0x1af3c: 0x6cd37c20, 0x1af3d: 0x6d291620, 0x1af3e: 0x6d11ae20, 0x1af3f: 0x6c363020, - // Block 0x6bd, offset 0x1af40 - 0x1af40: 0x6d3af220, 0x1af41: 0x6c76ac20, 0x1af42: 0x6c93dc20, 0x1af43: 0x6d0d7a20, - 0x1af44: 0x6c9a5820, 0x1af45: 0x6c4e0e20, 0x1af46: 0x6c5ec820, 0x1af47: 0x6c5eca20, - 0x1af48: 0x6c591e20, 0x1af49: 0x6ce67020, 0x1af4a: 0x6cd16a20, 0x1af4b: 0x6c99fa20, - 0x1af4c: 0x6cba5220, 0x1af4d: 0x6cf4e820, 0x1af4e: 0x6d211a20, 0x1af4f: 0x6d3f8420, - 0x1af50: 0x6c7f9a20, 0x1af51: 0x6c786420, 0x1af52: 0x6d0c9220, 0x1af53: 0x6d0c9420, - 0x1af54: 0x6cefbc20, 0x1af55: 0x6d3f8620, 0x1af56: 0x6c13e020, 0x1af57: 0x6cdc3c20, - 0x1af58: 0x6cc67220, 0x1af59: 0x6c78ee20, 0x1af5a: 0x6cbd2e20, 0x1af5b: 0x6d211c20, - 0x1af5c: 0x6ce45220, 0x1af5d: 0x6c90e220, 0x1af5e: 0x6ce8ba20, 0x1af5f: 0x6c330420, - 0x1af60: 0x6cf64220, 0x1af61: 0x6cf25220, 0x1af62: 0x6c123020, 0x1af63: 0x6c296c20, - 0x1af64: 0x6cc68220, 0x1af65: 0x6c6ae020, 0x1af66: 0x6c765e20, 0x1af67: 0x6c8e6820, - 0x1af68: 0x6cf4fc20, 0x1af69: 0x6cd92420, 0x1af6a: 0x6cbb7c20, 0x1af6b: 0x6d3e3620, - 0x1af6c: 0x6cef0c20, 0x1af6d: 0x6c07f620, 0x1af6e: 0x6c2ccc20, 0x1af6f: 0x6c25da20, - 0x1af70: 0x6cba1220, 0x1af71: 0x6d1e4420, 0x1af72: 0x6ca83e20, 0x1af73: 0x6c25dc20, - 0x1af74: 0x6c614820, 0x1af75: 0x6cd41620, 0x1af76: 0x6cc93c20, 0x1af77: 0x6cd96820, - 0x1af78: 0x6d3fa020, 0x1af79: 0x6c67f420, 0x1af7a: 0x6c89f220, 0x1af7b: 0x6c773c20, - 0x1af7c: 0x6c15c620, 0x1af7d: 0x6c2ec820, 0x1af7e: 0x6c132420, 0x1af7f: 0x6c2f7820, - // Block 0x6be, offset 0x1af80 - 0x1af80: 0x6ce86820, 0x1af81: 0x6c90ec20, 0x1af82: 0x6d2f3a20, 0x1af83: 0x6d2dfe20, - 0x1af84: 0x6d2e0020, 0x1af85: 0x6c024e20, 0x1af86: 0x6c127c20, 0x1af87: 0x6cc11e20, - 0x1af88: 0x6cbac820, 0x1af89: 0x6c24d620, 0x1af8a: 0x6d418e20, 0x1af8b: 0x6c29e220, - 0x1af8c: 0x6c29e420, 0x1af8d: 0x6cf79020, 0x1af8e: 0x6d238c20, 0x1af8f: 0x6cae2620, - 0x1af90: 0x6c8f9a20, 0x1af91: 0x6cfe4420, 0x1af92: 0x6c135620, 0x1af93: 0x6c0e8620, - 0x1af94: 0x6cbd3c20, 0x1af95: 0x6c686620, 0x1af96: 0x6d0dc620, 0x1af97: 0x6c816a20, - 0x1af98: 0x6d2e7420, 0x1af99: 0x6c8bcc20, 0x1af9a: 0x6c8a0820, 0x1af9b: 0x6c8a0a20, - 0x1af9c: 0x6c6c5020, 0x1af9d: 0x6c2ae220, 0x1af9e: 0x6c350a20, 0x1af9f: 0x6d41ee20, - 0x1afa0: 0x6c69ba20, 0x1afa1: 0x6c4b6220, 0x1afa2: 0x6d113420, 0x1afa3: 0x6c686820, - 0x1afa4: 0x6d113620, 0x1afa5: 0x6c748e20, 0x1afa6: 0x6d2d9620, 0x1afa7: 0x6d188a20, - 0x1afa8: 0x6d091a20, 0x1afa9: 0x6ca4be20, 0x1afaa: 0x6d133820, 0x1afab: 0x6d133a20, - 0x1afac: 0x6d155a20, 0x1afad: 0x6ca87020, 0x1afae: 0x6cfc2a20, 0x1afaf: 0x6c608220, - 0x1afb0: 0x6d020c20, 0x1afb1: 0x6c786e20, 0x1afb2: 0x6cf69820, 0x1afb3: 0x6c2c9a20, - 0x1afb4: 0x6c02e620, 0x1afb5: 0x6d419c20, 0x1afb6: 0x6cf14820, 0x1afb7: 0x6d156c20, - 0x1afb8: 0x6cc6c020, 0x1afb9: 0x6c29f020, 0x1afba: 0x6c8e1420, 0x1afbb: 0x6d28cc20, - 0x1afbc: 0x6d228c20, 0x1afbd: 0x6d26f220, 0x1afbe: 0x6d1b0c20, 0x1afbf: 0x6cc83820, - // Block 0x6bf, offset 0x1afc0 - 0x1afc0: 0x6c6b5420, 0x1afc1: 0x6c869c20, 0x1afc2: 0x6c4a9820, 0x1afc3: 0x6c8fbe20, - 0x1afc4: 0x6c8fc020, 0x1afc5: 0x6c2ce420, 0x1afc6: 0x6cc6d620, 0x1afc7: 0x6cf72a20, - 0x1afc8: 0x6c718620, 0x1afc9: 0x6c155020, 0x1afca: 0x6d1d2220, 0x1afcb: 0x6c7c5420, - 0x1afcc: 0x6d0cee20, 0x1afcd: 0x6ceec820, 0x1afce: 0x6ca4d420, 0x1afcf: 0x6cc32820, - 0x1afd0: 0x6c17ac20, 0x1afd1: 0x6c24a420, 0x1afd2: 0x6c945220, 0x1afd3: 0x6c2cf420, - 0x1afd4: 0x6c2cf620, 0x1afd5: 0x6ca8e020, 0x1afd6: 0x6d0d1220, 0x1afd7: 0x6d0d1020, - 0x1afd8: 0x6d0e2020, 0x1afd9: 0x6c7cbc20, 0x1afda: 0x6d0e2220, 0x1afdb: 0x6c1fd620, - 0x1afdc: 0x6c7b0820, 0x1afdd: 0x6c1fd820, 0x1afde: 0x6d385020, 0x1afdf: 0x6c597020, - 0x1afe0: 0x6c6d8a20, 0x1afe1: 0x6d09d820, 0x1afe2: 0x6c175e20, 0x1afe3: 0x6c176020, - 0x1afe4: 0x6c8b2620, 0x1afe5: 0x6c454a20, 0x1afe6: 0x6d426020, 0x1afe7: 0x6cbc1a20, - 0x1afe8: 0x6c71e820, 0x1afe9: 0x6c45ce20, 0x1afea: 0x6c71f220, 0x1afeb: 0x6cf35220, - 0x1afec: 0x6cb4be20, 0x1afed: 0x6cb4c020, 0x1afee: 0x6c143620, 0x1afef: 0x6cc05e20, - 0x1aff0: 0x6cc08220, 0x1aff1: 0x6c610e20, 0x1aff2: 0x6d15ac20, 0x1aff3: 0x6cd87020, - 0x1aff4: 0x6c03e620, 0x1aff5: 0x6d338a20, 0x1aff6: 0x6d2f5820, 0x1aff7: 0x6cfe1e20, - 0x1aff8: 0x6d14bc20, 0x1aff9: 0x6c6c8820, 0x1affa: 0x6d0a6c20, 0x1affb: 0x6c734020, - 0x1affc: 0x6c033820, 0x1affd: 0x6d0a8c20, 0x1affe: 0x6c6c1a20, 0x1afff: 0x6c3dc620, - // Block 0x6c0, offset 0x1b000 - 0x1b000: 0x6d287e20, 0x1b001: 0x6c090220, 0x1b002: 0x6cd2f020, 0x1b003: 0x6c105820, - 0x1b004: 0x6c2f4620, 0x1b005: 0x6cd66220, 0x1b006: 0x6c384a20, 0x1b007: 0x6ca7ec20, - 0x1b008: 0x6cd19020, 0x1b009: 0x6c3b0e20, 0x1b00a: 0x6cabe420, 0x1b00b: 0x6d34e020, - 0x1b00c: 0x6cf57a20, 0x1b00d: 0x6c565420, 0x1b00e: 0x6c286420, 0x1b00f: 0x6ceede20, - 0x1b010: 0x6d2f2020, 0x1b011: 0x6ce16e20, 0x1b012: 0x6c273220, 0x1b013: 0x6ca0c820, - 0x1b014: 0x6cae0620, 0x1b015: 0x6cabe620, 0x1b016: 0x6ce5e820, 0x1b017: 0x6c0e4c20, - 0x1b018: 0x6c87f220, 0x1b019: 0x6d358620, 0x1b01a: 0x6d397620, 0x1b01b: 0x6c0eb420, - 0x1b01c: 0x6d358820, 0x1b01d: 0x6c2c2620, 0x1b01e: 0x6ca0de20, 0x1b01f: 0x6d16e220, - 0x1b020: 0x6d16e420, 0x1b021: 0x6cb28220, 0x1b022: 0x6cb84820, 0x1b023: 0x6c731420, - 0x1b024: 0x6cc79220, 0x1b025: 0x6cd66420, 0x1b026: 0x6c274020, 0x1b027: 0x6d334020, - 0x1b028: 0x6cd71420, 0x1b029: 0x6cbc3820, 0x1b02a: 0x6d313620, 0x1b02b: 0x6cd1b020, - 0x1b02c: 0x6cc44420, 0x1b02d: 0x6cf77020, 0x1b02e: 0x6c051c20, 0x1b02f: 0x6c275020, - 0x1b030: 0x6c4a4420, 0x1b031: 0x6c1d9420, 0x1b032: 0x6cb29a20, 0x1b033: 0x6d2f2c20, - 0x1b034: 0x6cca4a20, 0x1b035: 0x6cec8a20, 0x1b036: 0x6c275c20, 0x1b037: 0x6ceefc20, - 0x1b038: 0x6c16a420, 0x1b039: 0x6ccc4820, 0x1b03a: 0x6cb5c220, 0x1b03b: 0x6d2abe20, - 0x1b03c: 0x6c4c6820, 0x1b03d: 0x6c997a20, 0x1b03e: 0x6c321620, 0x1b03f: 0x6c540020, - // Block 0x6c1, offset 0x1b040 - 0x1b040: 0x6d334c20, 0x1b041: 0x6d059420, 0x1b042: 0x6c9d4420, 0x1b043: 0x6cef0e20, - 0x1b044: 0x6cf2ec20, 0x1b045: 0x6c3e7620, 0x1b046: 0x6d179620, 0x1b047: 0x6c052e20, - 0x1b048: 0x6cb2a420, 0x1b049: 0x6c2f3a20, 0x1b04a: 0x6c459220, 0x1b04b: 0x6cac5e20, - 0x1b04c: 0x6c5a5420, 0x1b04d: 0x6ce1d220, 0x1b04e: 0x6c9d5420, 0x1b04f: 0x6c644a20, - 0x1b050: 0x6ce2a020, 0x1b051: 0x6c5ad020, 0x1b052: 0x6d37c020, 0x1b053: 0x6cccfa20, - 0x1b054: 0x6c97e620, 0x1b055: 0x6ca29420, 0x1b056: 0x6c0c0820, 0x1b057: 0x6c4c7220, - 0x1b058: 0x6d2adc20, 0x1b059: 0x6ca29620, 0x1b05a: 0x6c053420, 0x1b05b: 0x6d2f3c20, - 0x1b05c: 0x6c6e2820, 0x1b05d: 0x6c15d220, 0x1b05e: 0x6c3ed620, 0x1b05f: 0x6d36a620, - 0x1b060: 0x6c54f420, 0x1b061: 0x6c385820, 0x1b062: 0x6c207620, 0x1b063: 0x6c09f220, - 0x1b064: 0x6c0ae220, 0x1b065: 0x6d2f4820, 0x1b066: 0x6c9d8420, 0x1b067: 0x6cbba420, - 0x1b068: 0x6c14d820, 0x1b069: 0x6c3b8620, 0x1b06a: 0x6c9b4820, 0x1b06b: 0x6c053e20, - 0x1b06c: 0x6c1de420, 0x1b06d: 0x6c9eee20, 0x1b06e: 0x6c1eb820, 0x1b06f: 0x6c6b3220, - 0x1b070: 0x6cfc3e20, 0x1b071: 0x6c7fe220, 0x1b072: 0x6c420a20, 0x1b073: 0x6cb26e20, - 0x1b074: 0x6ca6f220, 0x1b075: 0x6c646020, 0x1b076: 0x6c0e0420, 0x1b077: 0x6c0e0c20, - 0x1b078: 0x6d041620, 0x1b079: 0x6c422620, 0x1b07a: 0x6d107e20, 0x1b07b: 0x6c58ec20, - 0x1b07c: 0x6d200c20, 0x1b07d: 0x6d1e9a20, 0x1b07e: 0x6c613e20, 0x1b07f: 0x6c4a0220, - // Block 0x6c2, offset 0x1b080 - 0x1b080: 0x6cb04220, 0x1b081: 0x6ce62420, 0x1b082: 0x6d2b3420, 0x1b083: 0x6c4a0420, - 0x1b084: 0x6d3c0820, 0x1b085: 0x6ca1b020, 0x1b086: 0x6cbec220, 0x1b087: 0x6c091c20, - 0x1b088: 0x6cbd5220, 0x1b089: 0x6c33d820, 0x1b08a: 0x6c206c20, 0x1b08b: 0x6c4ac220, - 0x1b08c: 0x6d0b4820, 0x1b08d: 0x6c043020, 0x1b08e: 0x6c6bb620, 0x1b08f: 0x6d067020, - 0x1b090: 0x6c913420, 0x1b091: 0x6cf42020, 0x1b092: 0x6d3c5420, 0x1b093: 0x6c7a8220, - 0x1b094: 0x6d1b9e20, 0x1b095: 0x6c2bd620, 0x1b096: 0x6cad4c20, 0x1b097: 0x6c2d3c20, - 0x1b098: 0x6d0ad020, 0x1b099: 0x6c9eac20, 0x1b09a: 0x6c44ba20, 0x1b09b: 0x6c22b820, - 0x1b09c: 0x6c3f3e20, 0x1b09d: 0x6ce71820, 0x1b09e: 0x6cacf220, 0x1b09f: 0x6c3a8220, - 0x1b0a0: 0x6cfdb420, 0x1b0a1: 0x6d15ce20, 0x1b0a2: 0x6d359820, 0x1b0a3: 0x6ce54e20, - 0x1b0a4: 0x6d359a20, 0x1b0a5: 0x6d04be20, 0x1b0a6: 0x6c324420, 0x1b0a7: 0x6d428e20, - 0x1b0a8: 0x6cfe9c20, 0x1b0a9: 0x6ce89020, 0x1b0aa: 0x6c4ae620, 0x1b0ab: 0x6c7a8820, - 0x1b0ac: 0x6c984e20, 0x1b0ad: 0x6ce66420, 0x1b0ae: 0x6d1fb620, 0x1b0af: 0x6c101020, - 0x1b0b0: 0x6c0e0e20, 0x1b0b1: 0x6c1a6e20, 0x1b0b2: 0x6c7ef620, 0x1b0b3: 0x6c097620, - 0x1b0b4: 0x6c601620, 0x1b0b5: 0x6c012620, 0x1b0b6: 0x6cd5c220, 0x1b0b7: 0x6c772c20, - 0x1b0b8: 0x6d1d8420, 0x1b0b9: 0x6ceb7820, 0x1b0ba: 0x6cd91620, 0x1b0bb: 0x6cd5c420, - 0x1b0bc: 0x6cbea620, 0x1b0bd: 0x6d233620, 0x1b0be: 0x6d224a20, 0x1b0bf: 0x6c9eb420, - // Block 0x6c3, offset 0x1b0c0 - 0x1b0c0: 0x6cd9ac20, 0x1b0c1: 0x6c12e620, 0x1b0c2: 0x6cfd7220, 0x1b0c3: 0x6c3aaa20, - 0x1b0c4: 0x6c6ff820, 0x1b0c5: 0x6c365420, 0x1b0c6: 0x6c4a6620, 0x1b0c7: 0x6c8f3420, - 0x1b0c8: 0x6ccc5620, 0x1b0c9: 0x6c881020, 0x1b0ca: 0x6c80b420, 0x1b0cb: 0x6cd9ae20, - 0x1b0cc: 0x6d365220, 0x1b0cd: 0x6cb3f620, 0x1b0ce: 0x6cbeac20, 0x1b0cf: 0x6c700e20, - 0x1b0d0: 0x6c6ffa20, 0x1b0d1: 0x6c6c9e20, 0x1b0d2: 0x6c025020, 0x1b0d3: 0x6c7e0420, - 0x1b0d4: 0x6c90a020, 0x1b0d5: 0x6d1b5e20, 0x1b0d6: 0x6c8a9e20, 0x1b0d7: 0x6c277e20, - 0x1b0d8: 0x6c927c20, 0x1b0d9: 0x6d182220, 0x1b0da: 0x6c1ea420, 0x1b0db: 0x6c151a20, - 0x1b0dc: 0x6ce8d820, 0x1b0dd: 0x6cd81220, 0x1b0de: 0x6d02e420, 0x1b0df: 0x6c9eb820, - 0x1b0e0: 0x6c16f420, 0x1b0e1: 0x6cf46220, 0x1b0e2: 0x6c3ac420, 0x1b0e3: 0x6c4a0820, - 0x1b0e4: 0x6c7aa620, 0x1b0e5: 0x6c7b3c20, 0x1b0e6: 0x6c0a4820, 0x1b0e7: 0x6cbb2220, - 0x1b0e8: 0x6d021020, 0x1b0e9: 0x6c8c2c20, 0x1b0ea: 0x6c8c2e20, 0x1b0eb: 0x6c8a3220, - 0x1b0ec: 0x6c916e20, 0x1b0ed: 0x6c631220, 0x1b0ee: 0x6d1d2420, 0x1b0ef: 0x6cfafa20, - 0x1b0f0: 0x6ce65420, 0x1b0f1: 0x6d1dd820, 0x1b0f2: 0x6c84bc20, 0x1b0f3: 0x6ce65820, - 0x1b0f4: 0x6d1ac020, 0x1b0f5: 0x6d09d220, 0x1b0f6: 0x6d0c5220, 0x1b0f7: 0x6ce65c20, - 0x1b0f8: 0x6c2b5220, 0x1b0f9: 0x6cac1420, 0x1b0fa: 0x6c665420, 0x1b0fb: 0x6c5b1c20, - 0x1b0fc: 0x6ca39a20, 0x1b0fd: 0x6c5b2220, 0x1b0fe: 0x6c45cc20, 0x1b0ff: 0x6ca75620, - // Block 0x6c4, offset 0x1b100 - 0x1b100: 0x6c762420, 0x1b101: 0x6c0b6620, 0x1b102: 0x6d166220, 0x1b103: 0x6cb73620, - 0x1b104: 0x6ca9f020, 0x1b105: 0x6c3bc620, 0x1b106: 0x6c71a420, 0x1b107: 0x6d0d5620, - 0x1b108: 0x6d16ea20, 0x1b109: 0x6d2a0020, 0x1b10a: 0x6c09f420, 0x1b10b: 0x6d163c20, - 0x1b10c: 0x6d13ba20, 0x1b10d: 0x6c37b820, 0x1b10e: 0x6cc9f820, 0x1b10f: 0x6cd2fc20, - 0x1b110: 0x6c37ba20, 0x1b111: 0x6cd38020, 0x1b112: 0x6cd39a20, 0x1b113: 0x6c454c20, - 0x1b114: 0x6c2e0420, 0x1b115: 0x6d1ac420, 0x1b116: 0x6c563620, 0x1b117: 0x6c3dc820, - 0x1b118: 0x6c52ea20, 0x1b119: 0x6cf34420, 0x1b11a: 0x6ce99c20, 0x1b11b: 0x6c1af420, - 0x1b11c: 0x6c67d420, 0x1b11d: 0x6c03a820, 0x1b11e: 0x6cd04420, 0x1b11f: 0x6c2c1420, - 0x1b120: 0x6d2eb020, 0x1b121: 0x6c73dc20, 0x1b122: 0x6ce1b020, 0x1b123: 0x6c3f4020, - 0x1b124: 0x6c2bd820, 0x1b125: 0x6c9c3820, 0x1b126: 0x6cfb2c20, 0x1b127: 0x6c552220, - 0x1b128: 0x6c173820, 0x1b129: 0x6caa4e20, 0x1b12a: 0x6c6e4c20, 0x1b12b: 0x6d31be20, - 0x1b12c: 0x6d14be20, 0x1b12d: 0x6c9ce020, 0x1b12e: 0x6cc28e20, 0x1b12f: 0x6cec8220, - 0x1b130: 0x6cce5e20, 0x1b131: 0x6cc91820, 0x1b132: 0x6d078620, 0x1b133: 0x6c6e6420, - 0x1b134: 0x6c2dc220, 0x1b135: 0x6d2eb420, 0x1b136: 0x6c67de20, 0x1b137: 0x6cbb0820, - 0x1b138: 0x6cae9a20, 0x1b139: 0x6c287820, 0x1b13a: 0x6cbb0e20, 0x1b13b: 0x6c099620, - 0x1b13c: 0x6c099820, 0x1b13d: 0x6ccf4820, 0x1b13e: 0x6c288820, 0x1b13f: 0x6c65aa20, - // Block 0x6c5, offset 0x1b140 - 0x1b140: 0x6c46b420, 0x1b141: 0x6c448e20, 0x1b142: 0x6c37f020, 0x1b143: 0x6c09c420, - 0x1b144: 0x6c79c020, 0x1b145: 0x6c673820, 0x1b146: 0x6c0d1820, 0x1b147: 0x6cff1420, - 0x1b148: 0x6c28a620, 0x1b149: 0x6c4c2e20, 0x1b14a: 0x6c67f820, 0x1b14b: 0x6c538620, - 0x1b14c: 0x6c9c7820, 0x1b14d: 0x6c4c4420, 0x1b14e: 0x6ceca420, 0x1b14f: 0x6c751620, - 0x1b150: 0x6c616820, 0x1b151: 0x6c616a20, 0x1b152: 0x6c4a3220, 0x1b153: 0x6c28f820, - 0x1b154: 0x6c921a20, 0x1b155: 0x6c921c20, 0x1b156: 0x6ce98820, 0x1b157: 0x6c5bb420, - 0x1b158: 0x6d362220, 0x1b159: 0x6c5bda20, 0x1b15a: 0x6c5bdc20, 0x1b15b: 0x6d155c20, - 0x1b15c: 0x6d155e20, 0x1b15d: 0x6d158020, 0x1b15e: 0x6d158220, 0x1b15f: 0x6d265e20, - 0x1b160: 0x6d266220, 0x1b161: 0x6cccb220, 0x1b162: 0x6d03c020, 0x1b163: 0x6cf17c20, - 0x1b164: 0x6ce71020, 0x1b165: 0x6d0e4620, 0x1b166: 0x6d0e4820, 0x1b167: 0x6d22f020, - 0x1b168: 0x6c1a9c20, 0x1b169: 0x6c112620, 0x1b16a: 0x6c0bfa20, 0x1b16b: 0x6c2dc420, - 0x1b16c: 0x6c0d3020, 0x1b16d: 0x6cae9e20, 0x1b16e: 0x6d1e4620, 0x1b16f: 0x6cb19820, - 0x1b170: 0x6d2ec420, 0x1b171: 0x6d1d0420, 0x1b172: 0x6c1af020, 0x1b173: 0x6c1bd420, - 0x1b174: 0x6d3d1c20, 0x1b175: 0x6ceb6c20, 0x1b176: 0x6c5fc820, 0x1b177: 0x6c39be20, - 0x1b178: 0x6d379220, 0x1b179: 0x6d168420, 0x1b17a: 0x6cedde20, 0x1b17b: 0x6c17fe20, - 0x1b17c: 0x6c08c020, 0x1b17d: 0x6c2b1620, 0x1b17e: 0x6c8caa20, 0x1b17f: 0x6c3dea20, - // Block 0x6c6, offset 0x1b180 - 0x1b180: 0x6cedfa20, 0x1b181: 0x6d328820, 0x1b182: 0x6c241e20, 0x1b183: 0x6cedfc20, - 0x1b184: 0x6c6e4e20, 0x1b185: 0x6c274220, 0x1b186: 0x6cf59e20, 0x1b187: 0x6d0a7020, - 0x1b188: 0x6c523a20, 0x1b189: 0x6d0f9420, 0x1b18a: 0x6c57e820, 0x1b18b: 0x6c93d020, - 0x1b18c: 0x6c546420, 0x1b18d: 0x6cee0220, 0x1b18e: 0x6c1a6620, 0x1b18f: 0x6d35b220, - 0x1b190: 0x6d061820, 0x1b191: 0x6c6e6620, 0x1b192: 0x6ce89220, 0x1b193: 0x6c238e20, - 0x1b194: 0x6d377e20, 0x1b195: 0x6c7eea20, 0x1b196: 0x6c239620, 0x1b197: 0x6c2a9020, - 0x1b198: 0x6cabf820, 0x1b199: 0x6cf7dc20, 0x1b19a: 0x6c300020, 0x1b19b: 0x6c61e620, - 0x1b19c: 0x6c16a620, 0x1b19d: 0x6d35dc20, 0x1b19e: 0x6c239820, 0x1b19f: 0x6d387020, - 0x1b1a0: 0x6c7ef820, 0x1b1a1: 0x6d233820, 0x1b1a2: 0x6d018e20, 0x1b1a3: 0x6c6bdc20, - 0x1b1a4: 0x6c667820, 0x1b1a5: 0x6cd38220, 0x1b1a6: 0x6c641620, 0x1b1a7: 0x6c0b9820, - 0x1b1a8: 0x6c59c220, 0x1b1a9: 0x6c3ff020, 0x1b1aa: 0x6d0a0e20, 0x1b1ab: 0x6cefbe20, - 0x1b1ac: 0x6cad0420, 0x1b1ad: 0x6d110c20, 0x1b1ae: 0x6cee9820, 0x1b1af: 0x6cf64820, - 0x1b1b0: 0x6d32d020, 0x1b1b1: 0x6cb1b620, 0x1b1b2: 0x6ce36220, 0x1b1b3: 0x6c2a7c20, - 0x1b1b4: 0x6d32de20, 0x1b1b5: 0x6d32f020, 0x1b1b6: 0x6c0cf420, 0x1b1b7: 0x6c2a7e20, - 0x1b1b8: 0x6c1cd420, 0x1b1b9: 0x6c183020, 0x1b1ba: 0x6c692620, 0x1b1bb: 0x6c5c2c20, - 0x1b1bc: 0x6c693c20, 0x1b1bd: 0x6c5af220, 0x1b1be: 0x6c9a2e20, 0x1b1bf: 0x6c906c20, - // Block 0x6c7, offset 0x1b1c0 - 0x1b1c0: 0x6cfd9220, 0x1b1c1: 0x6c067a20, 0x1b1c2: 0x6cc1fe20, 0x1b1c3: 0x6d02a220, - 0x1b1c4: 0x6d036220, 0x1b1c5: 0x6c090420, 0x1b1c6: 0x6d164020, 0x1b1c7: 0x6c820c20, - 0x1b1c8: 0x6cc56420, 0x1b1c9: 0x6c29b620, 0x1b1ca: 0x6c2f8e20, 0x1b1cb: 0x6c410820, - 0x1b1cc: 0x6c618020, 0x1b1cd: 0x6cc58620, 0x1b1ce: 0x6cc56a20, 0x1b1cf: 0x6c162620, - 0x1b1d0: 0x6ce05020, 0x1b1d1: 0x6ce26820, 0x1b1d2: 0x6ce26a20, 0x1b1d3: 0x6c416020, - 0x1b1d4: 0x6cb72a20, 0x1b1d5: 0x6cd2fe20, 0x1b1d6: 0x6c25ae20, 0x1b1d7: 0x6d357420, - 0x1b1d8: 0x6cee4620, 0x1b1d9: 0x6c982820, 0x1b1da: 0x6cf56e20, 0x1b1db: 0x6c388220, - 0x1b1dc: 0x6d1ba020, 0x1b1dd: 0x6ce4d820, 0x1b1de: 0x6c9f2c20, 0x1b1df: 0x6cf1ca20, - 0x1b1e0: 0x6d379620, 0x1b1e1: 0x6c1cac20, 0x1b1e2: 0x6cf4b620, 0x1b1e3: 0x6c5fca20, - 0x1b1e4: 0x6cf42220, 0x1b1e5: 0x6cf84620, 0x1b1e6: 0x6c639a20, 0x1b1e7: 0x6d1e8e20, - 0x1b1e8: 0x6ced7420, 0x1b1e9: 0x6c230220, 0x1b1ea: 0x6cd90220, 0x1b1eb: 0x6c7b0e20, - 0x1b1ec: 0x6d22d020, 0x1b1ed: 0x6c0b6c20, 0x1b1ee: 0x6d357620, 0x1b1ef: 0x6cb57420, - 0x1b1f0: 0x6c251820, 0x1b1f1: 0x6c189a20, 0x1b1f2: 0x6cdf5e20, 0x1b1f3: 0x6cea3e20, - 0x1b1f4: 0x6cb96e20, 0x1b1f5: 0x6ca75a20, 0x1b1f6: 0x6c5cde20, 0x1b1f7: 0x6d045420, - 0x1b1f8: 0x6ca97620, 0x1b1f9: 0x6c7bb620, 0x1b1fa: 0x6cfa7820, 0x1b1fb: 0x6d02aa20, - 0x1b1fc: 0x6c772420, 0x1b1fd: 0x6c549e20, 0x1b1fe: 0x6c767c20, 0x1b1ff: 0x6c3bce20, - // Block 0x6c8, offset 0x1b200 - 0x1b200: 0x6c57e620, 0x1b201: 0x6cdf6220, 0x1b202: 0x6cd95220, 0x1b203: 0x6cf42420, - 0x1b204: 0x6cab9a20, 0x1b205: 0x6c170220, 0x1b206: 0x6c20a020, 0x1b207: 0x6c71fa20, - 0x1b208: 0x6d16b420, 0x1b209: 0x6c05e620, 0x1b20a: 0x6c173a20, 0x1b20b: 0x6c9f2e20, - 0x1b20c: 0x6cadb020, 0x1b20d: 0x6d428020, 0x1b20e: 0x6d2b7620, 0x1b20f: 0x6d104020, - 0x1b210: 0x6c720a20, 0x1b211: 0x6c04e820, 0x1b212: 0x6caa5e20, 0x1b213: 0x6ca49420, - 0x1b214: 0x6d328a20, 0x1b215: 0x6cabe820, 0x1b216: 0x6c106a20, 0x1b217: 0x6ce5ea20, - 0x1b218: 0x6c567020, 0x1b219: 0x6c566420, 0x1b21a: 0x6c720c20, 0x1b21b: 0x6c267e20, - 0x1b21c: 0x6c87f420, 0x1b21d: 0x6cd7d420, 0x1b21e: 0x6c1d8e20, 0x1b21f: 0x6c2c2020, - 0x1b220: 0x6c274420, 0x1b221: 0x6d147020, 0x1b222: 0x6ce84020, 0x1b223: 0x6d1f0620, - 0x1b224: 0x6c3d4820, 0x1b225: 0x6c5ff420, 0x1b226: 0x6cae5420, 0x1b227: 0x6d041820, - 0x1b228: 0x6d260420, 0x1b229: 0x6ca5be20, 0x1b22a: 0x6c48e620, 0x1b22b: 0x6c3dec20, - 0x1b22c: 0x6cf84820, 0x1b22d: 0x6c093220, 0x1b22e: 0x6d1e9620, 0x1b22f: 0x6cbc9620, - 0x1b230: 0x6d086e20, 0x1b231: 0x6c230820, 0x1b232: 0x6c0dc220, 0x1b233: 0x6c5a4220, - 0x1b234: 0x6d068020, 0x1b235: 0x6c1f0e20, 0x1b236: 0x6c093420, 0x1b237: 0x6cd5ac20, - 0x1b238: 0x6cf5a020, 0x1b239: 0x6cdf9620, 0x1b23a: 0x6d1e8220, 0x1b23b: 0x6d3fe820, - 0x1b23c: 0x6c334220, 0x1b23d: 0x6ca1b220, 0x1b23e: 0x6d34f220, 0x1b23f: 0x6d16b620, - // Block 0x6c9, offset 0x1b240 - 0x1b240: 0x6cd33220, 0x1b241: 0x6ca59420, 0x1b242: 0x6d09e820, 0x1b243: 0x6cd33420, - 0x1b244: 0x6cf86020, 0x1b245: 0x6c81a420, 0x1b246: 0x6c525820, 0x1b247: 0x6c7b8e20, - 0x1b248: 0x6ca1c620, 0x1b249: 0x6d34fe20, 0x1b24a: 0x6d008020, 0x1b24b: 0x6c88e820, - 0x1b24c: 0x6ce55220, 0x1b24d: 0x6c5a4820, 0x1b24e: 0x6c2e7020, 0x1b24f: 0x6c502820, - 0x1b250: 0x6c799e20, 0x1b251: 0x6c4ad420, 0x1b252: 0x6c525a20, 0x1b253: 0x6cf5a220, - 0x1b254: 0x6c68ce20, 0x1b255: 0x6cd5b820, 0x1b256: 0x6cd8fe20, 0x1b257: 0x6c54aa20, - 0x1b258: 0x6cbfa420, 0x1b259: 0x6d104220, 0x1b25a: 0x6c5ba820, 0x1b25b: 0x6c5b2420, - 0x1b25c: 0x6c1bfa20, 0x1b25d: 0x6c63b020, 0x1b25e: 0x6d149a20, 0x1b25f: 0x6d045e20, - 0x1b260: 0x6c48ec20, 0x1b261: 0x6c8c4c20, 0x1b262: 0x6c5a9220, 0x1b263: 0x6d3f3a20, - 0x1b264: 0x6d068e20, 0x1b265: 0x6c1b8a20, 0x1b266: 0x6cce4e20, 0x1b267: 0x6caa7c20, - 0x1b268: 0x6c524220, 0x1b269: 0x6c371020, 0x1b26a: 0x6c788e20, 0x1b26b: 0x6c305e20, - 0x1b26c: 0x6ce48820, 0x1b26d: 0x6c457c20, 0x1b26e: 0x6cc29020, 0x1b26f: 0x6cf94220, - 0x1b270: 0x6cb84a20, 0x1b271: 0x6d268c20, 0x1b272: 0x6cae5820, 0x1b273: 0x6c790020, - 0x1b274: 0x6c2a6420, 0x1b275: 0x6c5baa20, 0x1b276: 0x6c35fa20, 0x1b277: 0x6d003220, - 0x1b278: 0x6ce7c620, 0x1b279: 0x6d0be020, 0x1b27a: 0x6c764c20, 0x1b27b: 0x6c12ce20, - 0x1b27c: 0x6ca4e020, 0x1b27d: 0x6d282020, 0x1b27e: 0x6c984020, 0x1b27f: 0x6d1e2a20, - // Block 0x6ca, offset 0x1b280 - 0x1b280: 0x6d1e2220, 0x1b281: 0x6d24d420, 0x1b282: 0x6caf5220, 0x1b283: 0x6c7da020, - 0x1b284: 0x6cbb6a20, 0x1b285: 0x6d269420, 0x1b286: 0x6d230c20, 0x1b287: 0x6ce89420, - 0x1b288: 0x6c6bd820, 0x1b289: 0x6cf5e220, 0x1b28a: 0x6d304a20, 0x1b28b: 0x6c8c4e20, - 0x1b28c: 0x6ce3e020, 0x1b28d: 0x6c4e9620, 0x1b28e: 0x6c502a20, 0x1b28f: 0x6cbca820, - 0x1b290: 0x6ce3ea20, 0x1b291: 0x6c108220, 0x1b292: 0x6d172620, 0x1b293: 0x6cba4a20, - 0x1b294: 0x6c5b4c20, 0x1b295: 0x6cf5bc20, 0x1b296: 0x6c070020, 0x1b297: 0x6c975e20, - 0x1b298: 0x6d13e420, 0x1b299: 0x6c524820, 0x1b29a: 0x6cd95620, 0x1b29b: 0x6cc29420, - 0x1b29c: 0x6c1a6820, 0x1b29d: 0x6c7c3820, 0x1b29e: 0x6cf4d020, 0x1b29f: 0x6cf4d220, - 0x1b2a0: 0x6d1e9e20, 0x1b2a1: 0x6c83b620, 0x1b2a2: 0x6c89ae20, 0x1b2a3: 0x6c590e20, - 0x1b2a4: 0x6c230c20, 0x1b2a5: 0x6d175a20, 0x1b2a6: 0x6d269620, 0x1b2a7: 0x6c85c820, - 0x1b2a8: 0x6ca8e620, 0x1b2a9: 0x6ca4e620, 0x1b2aa: 0x6c360e20, 0x1b2ab: 0x6cc3b620, - 0x1b2ac: 0x6d080e20, 0x1b2ad: 0x6cb8c420, 0x1b2ae: 0x6cf4d420, 0x1b2af: 0x6c9fa420, - 0x1b2b0: 0x6c239a20, 0x1b2b1: 0x6c3a5220, 0x1b2b2: 0x6c069c20, 0x1b2b3: 0x6c344c20, - 0x1b2b4: 0x6c253420, 0x1b2b5: 0x6c171220, 0x1b2b6: 0x6c9af220, 0x1b2b7: 0x6cca4e20, - 0x1b2b8: 0x6c61ea20, 0x1b2b9: 0x6c498820, 0x1b2ba: 0x6c497e20, 0x1b2bb: 0x6d042820, - 0x1b2bc: 0x6c2a0e20, 0x1b2bd: 0x6cb4e620, 0x1b2be: 0x6c797420, 0x1b2bf: 0x6ce4ec20, - // Block 0x6cb, offset 0x1b2c0 - 0x1b2c0: 0x6c94f220, 0x1b2c1: 0x6cf60a20, 0x1b2c2: 0x6c76d220, 0x1b2c3: 0x6c4bc020, - 0x1b2c4: 0x6ca6a020, 0x1b2c5: 0x6cbe7620, 0x1b2c6: 0x6c1da020, 0x1b2c7: 0x6c339820, - 0x1b2c8: 0x6c4cb620, 0x1b2c9: 0x6d2d7420, 0x1b2ca: 0x6c6da820, 0x1b2cb: 0x6ced0420, - 0x1b2cc: 0x6d24ea20, 0x1b2cd: 0x6c6c4220, 0x1b2ce: 0x6c620020, 0x1b2cf: 0x6c7f9620, - 0x1b2d0: 0x6d231020, 0x1b2d1: 0x6c5dca20, 0x1b2d2: 0x6c512620, 0x1b2d3: 0x6cc2da20, - 0x1b2d4: 0x6cdfdc20, 0x1b2d5: 0x6ce3ec20, 0x1b2d6: 0x6ce3f420, 0x1b2d7: 0x6ca81620, - 0x1b2d8: 0x6cee0e20, 0x1b2d9: 0x6c21b420, 0x1b2da: 0x6c54bc20, 0x1b2db: 0x6c5cc020, - 0x1b2dc: 0x6cf5e420, 0x1b2dd: 0x6c16ea20, 0x1b2de: 0x6d02ca20, 0x1b2df: 0x6ceefe20, - 0x1b2e0: 0x6c5bc020, 0x1b2e1: 0x6c363420, 0x1b2e2: 0x6cdd6620, 0x1b2e3: 0x6d3fee20, - 0x1b2e4: 0x6c648420, 0x1b2e5: 0x6d1e3620, 0x1b2e6: 0x6c2d4e20, 0x1b2e7: 0x6c723c20, - 0x1b2e8: 0x6c11ce20, 0x1b2e9: 0x6c19fc20, 0x1b2ea: 0x6c2a6e20, 0x1b2eb: 0x6c072220, - 0x1b2ec: 0x6cbcb420, 0x1b2ed: 0x6c119420, 0x1b2ee: 0x6c287a20, 0x1b2ef: 0x6c498020, - 0x1b2f0: 0x6c34f420, 0x1b2f1: 0x6ca4f820, 0x1b2f2: 0x6d283220, 0x1b2f3: 0x6cfdea20, - 0x1b2f4: 0x6d3c8420, 0x1b2f5: 0x6c2ea220, 0x1b2f6: 0x6c59c420, 0x1b2f7: 0x6c217e20, - 0x1b2f8: 0x6cbf2220, 0x1b2f9: 0x6cc54c20, 0x1b2fa: 0x6d037220, 0x1b2fb: 0x6c12e820, - 0x1b2fc: 0x6c0b3e20, 0x1b2fd: 0x6c9fac20, 0x1b2fe: 0x6d3f8a20, 0x1b2ff: 0x6ce32220, - // Block 0x6cc, offset 0x1b300 - 0x1b300: 0x6cbc2620, 0x1b301: 0x6c1db820, 0x1b302: 0x6c073020, 0x1b303: 0x6d079820, - 0x1b304: 0x6cee8620, 0x1b305: 0x6c43ea20, 0x1b306: 0x6cb8ee20, 0x1b307: 0x6cefc020, - 0x1b308: 0x6d236a20, 0x1b309: 0x6d212420, 0x1b30a: 0x6c099a20, 0x1b30b: 0x6d079a20, - 0x1b30c: 0x6c592020, 0x1b30d: 0x6c9fb620, 0x1b30e: 0x6c099c20, 0x1b30f: 0x6d17e220, - 0x1b310: 0x6c9e2420, 0x1b311: 0x6d1e3820, 0x1b312: 0x6c768820, 0x1b313: 0x6c296620, - 0x1b314: 0x6d19e020, 0x1b315: 0x6c363620, 0x1b316: 0x6c18c620, 0x1b317: 0x6c998a20, - 0x1b318: 0x6cb86820, 0x1b319: 0x6c78b820, 0x1b31a: 0x6d214820, 0x1b31b: 0x6c00a820, - 0x1b31c: 0x6cbcc020, 0x1b31d: 0x6d0d7e20, 0x1b31e: 0x6caaf620, 0x1b31f: 0x6c41dc20, - 0x1b320: 0x6d283420, 0x1b321: 0x6d3ff020, 0x1b322: 0x6cc9c220, 0x1b323: 0x6c839620, - 0x1b324: 0x6c3bd820, 0x1b325: 0x6d1d6620, 0x1b326: 0x6c7cf820, 0x1b327: 0x6c7cfa20, - 0x1b328: 0x6cc3d820, 0x1b329: 0x6c459420, 0x1b32a: 0x6d27ae20, 0x1b32b: 0x6cdaca20, - 0x1b32c: 0x6cdae420, 0x1b32d: 0x6cb5f820, 0x1b32e: 0x6d110e20, 0x1b32f: 0x6cd96020, - 0x1b330: 0x6c5a6c20, 0x1b331: 0x6c604e20, 0x1b332: 0x6c478c20, 0x1b333: 0x6c726220, - 0x1b334: 0x6c20ae20, 0x1b335: 0x6ca6aa20, 0x1b336: 0x6d00b620, 0x1b337: 0x6c766020, - 0x1b338: 0x6d332a20, 0x1b339: 0x6d1e4820, 0x1b33a: 0x6c12ae20, 0x1b33b: 0x6d0a9a20, - 0x1b33c: 0x6cd0aa20, 0x1b33d: 0x6c0f1020, 0x1b33e: 0x6c768e20, 0x1b33f: 0x6d262820, - // Block 0x6cd, offset 0x1b340 - 0x1b340: 0x6cf89e20, 0x1b341: 0x6c5d3420, 0x1b342: 0x6d1e5020, 0x1b343: 0x6d102420, - 0x1b344: 0x6c862e20, 0x1b345: 0x6ccaaa20, 0x1b346: 0x6ce1d420, 0x1b347: 0x6d19f220, - 0x1b348: 0x6c224e20, 0x1b349: 0x6d06f220, 0x1b34a: 0x6cba5820, 0x1b34b: 0x6cdf7c20, - 0x1b34c: 0x6c599420, 0x1b34d: 0x6d283a20, 0x1b34e: 0x6cd0ac20, 0x1b34f: 0x6ca03820, - 0x1b350: 0x6c463020, 0x1b351: 0x6ccf5020, 0x1b352: 0x6c23a420, 0x1b353: 0x6cb15820, - 0x1b354: 0x6ca29820, 0x1b355: 0x6ca2a020, 0x1b356: 0x6c4c7620, 0x1b357: 0x6c1c5620, - 0x1b358: 0x6c11d420, 0x1b359: 0x6c11a620, 0x1b35a: 0x6c119c20, 0x1b35b: 0x6c24da20, - 0x1b35c: 0x6c9fc220, 0x1b35d: 0x6ce27e20, 0x1b35e: 0x6d2ec820, 0x1b35f: 0x6ce7ce20, - 0x1b360: 0x6c02d820, 0x1b361: 0x6cd6d620, 0x1b362: 0x6c97e820, 0x1b363: 0x6c499620, - 0x1b364: 0x6cc3ea20, 0x1b365: 0x6d2a8420, 0x1b366: 0x6c701620, 0x1b367: 0x6c5c1020, - 0x1b368: 0x6c765820, 0x1b369: 0x6c881220, 0x1b36a: 0x6cab9e20, 0x1b36b: 0x6cd96c20, - 0x1b36c: 0x6cbd8e20, 0x1b36d: 0x6d1b7020, 0x1b36e: 0x6c93f220, 0x1b36f: 0x6cce0c20, - 0x1b370: 0x6cf0b820, 0x1b371: 0x6ce95220, 0x1b372: 0x6c976c20, 0x1b373: 0x6cb8fe20, - 0x1b374: 0x6ccf6220, 0x1b375: 0x6d1d9c20, 0x1b376: 0x6cbed620, 0x1b377: 0x6c773e20, - 0x1b378: 0x6c2c8e20, 0x1b379: 0x6d348e20, 0x1b37a: 0x6c90a220, 0x1b37b: 0x6c738220, - 0x1b37c: 0x6cb51c20, 0x1b37d: 0x6cb50c20, 0x1b37e: 0x6d23c020, 0x1b37f: 0x6cb2c220, - // Block 0x6ce, offset 0x1b380 - 0x1b380: 0x6c89f620, 0x1b381: 0x6c23da20, 0x1b382: 0x6d1eae20, 0x1b383: 0x6c1cd620, - 0x1b384: 0x6d36aa20, 0x1b385: 0x6ce7d020, 0x1b386: 0x6c197a20, 0x1b387: 0x6cb7c020, - 0x1b388: 0x6cc12020, 0x1b389: 0x6caebc20, 0x1b38a: 0x6c075a20, 0x1b38b: 0x6c0cb820, - 0x1b38c: 0x6cbf5c20, 0x1b38d: 0x6c686a20, 0x1b38e: 0x6d2b8a20, 0x1b38f: 0x6c1c4220, - 0x1b390: 0x6c883620, 0x1b391: 0x6cb2cc20, 0x1b392: 0x6c7d0c20, 0x1b393: 0x6c5c1220, - 0x1b394: 0x6cbbf020, 0x1b395: 0x6c1a3620, 0x1b396: 0x6d1b7a20, 0x1b397: 0x6d1b7c20, - 0x1b398: 0x6cf80620, 0x1b399: 0x6cf6ba20, 0x1b39a: 0x6c28a820, 0x1b39b: 0x6ce00220, - 0x1b39c: 0x6c34a220, 0x1b39d: 0x6c335e20, 0x1b39e: 0x6c335a20, 0x1b39f: 0x6cdaf820, - 0x1b3a0: 0x6c74b620, 0x1b3a1: 0x6c130e20, 0x1b3a2: 0x6cff0220, 0x1b3a3: 0x6c385a20, - 0x1b3a4: 0x6c3be420, 0x1b3a5: 0x6c817220, 0x1b3a6: 0x6c81da20, 0x1b3a7: 0x6c1cd820, - 0x1b3a8: 0x6c4db820, 0x1b3a9: 0x6cb7d220, 0x1b3aa: 0x6cfb7c20, 0x1b3ab: 0x6c9fc420, - 0x1b3ac: 0x6c6e2a20, 0x1b3ad: 0x6c8a7420, 0x1b3ae: 0x6cf46420, 0x1b3af: 0x6c11da20, - 0x1b3b0: 0x6c749020, 0x1b3b1: 0x6c245420, 0x1b3b2: 0x6cfd0820, 0x1b3b3: 0x6ce06e20, - 0x1b3b4: 0x6cd12220, 0x1b3b5: 0x6caf9820, 0x1b3b6: 0x6d188e20, 0x1b3b7: 0x6c1f7420, - 0x1b3b8: 0x6cfad620, 0x1b3b9: 0x6ca4c020, 0x1b3ba: 0x6c28ac20, 0x1b3bb: 0x6ce07420, - 0x1b3bc: 0x6c6e2c20, 0x1b3bd: 0x6cd93220, 0x1b3be: 0x6c4f0220, 0x1b3bf: 0x6c693e20, - // Block 0x6cf, offset 0x1b3c0 - 0x1b3c0: 0x6cf0cc20, 0x1b3c1: 0x6d07cc20, 0x1b3c2: 0x6c303620, 0x1b3c3: 0x6cbdb020, - 0x1b3c4: 0x6cbd9e20, 0x1b3c5: 0x6c728a20, 0x1b3c6: 0x6c12b220, 0x1b3c7: 0x6c791020, - 0x1b3c8: 0x6d021420, 0x1b3c9: 0x6d1bfe20, 0x1b3ca: 0x6c02ea20, 0x1b3cb: 0x6c99ba20, - 0x1b3cc: 0x6d189020, 0x1b3cd: 0x6c8c3020, 0x1b3ce: 0x6ccb5420, 0x1b3cf: 0x6c75e420, - 0x1b3d0: 0x6c57f220, 0x1b3d1: 0x6c9afe20, 0x1b3d2: 0x6c803c20, 0x1b3d3: 0x6c00ca20, - 0x1b3d4: 0x6c8c3220, 0x1b3d5: 0x6d0c3c20, 0x1b3d6: 0x6c7e2620, 0x1b3d7: 0x6cfa4a20, - 0x1b3d8: 0x6c1c8420, 0x1b3d9: 0x6d228e20, 0x1b3da: 0x6d1b8820, 0x1b3db: 0x6c270e20, - 0x1b3dc: 0x6c9be420, 0x1b3dd: 0x6c00d820, 0x1b3de: 0x6c9b4a20, 0x1b3df: 0x6c337020, - 0x1b3e0: 0x6cb65c20, 0x1b3e1: 0x6ca0ac20, 0x1b3e2: 0x6c7fbe20, 0x1b3e3: 0x6c9b0020, - 0x1b3e4: 0x6c1de620, 0x1b3e5: 0x6d370220, 0x1b3e6: 0x6cab1620, 0x1b3e7: 0x6cab1820, - 0x1b3e8: 0x6d0c3420, 0x1b3e9: 0x6d103420, 0x1b3ea: 0x6c0f8a20, 0x1b3eb: 0x6d372820, - 0x1b3ec: 0x6c7c0c20, 0x1b3ed: 0x6c7bd220, 0x1b3ee: 0x6d1ff820, 0x1b3ef: 0x6c3db220, - 0x1b3f0: 0x6c8eb420, 0x1b3f1: 0x6c9ef020, 0x1b3f2: 0x6c1a5420, 0x1b3f3: 0x6c5cb020, - 0x1b3f4: 0x6c163820, 0x1b3f5: 0x6c9bea20, 0x1b3f6: 0x6c804a20, 0x1b3f7: 0x6c57fa20, - 0x1b3f8: 0x6d083620, 0x1b3f9: 0x6cc51a20, 0x1b3fa: 0x6c164020, 0x1b3fb: 0x6c62b820, - 0x1b3fc: 0x6c72ca20, 0x1b3fd: 0x6c583e20, 0x1b3fe: 0x6ccf8820, 0x1b3ff: 0x6d195a20, - // Block 0x6d0, offset 0x1b400 - 0x1b400: 0x6c893820, 0x1b401: 0x6ca44020, 0x1b402: 0x6c9cb020, 0x1b403: 0x6ce18c20, - 0x1b404: 0x6c751a20, 0x1b405: 0x6c42b020, 0x1b406: 0x6c42b220, 0x1b407: 0x6d3c5220, - 0x1b408: 0x6c436020, 0x1b409: 0x6d266e20, 0x1b40a: 0x6cf49820, 0x1b40b: 0x6c645a20, - 0x1b40c: 0x6d056420, 0x1b40d: 0x6cd59420, 0x1b40e: 0x6cc65020, 0x1b40f: 0x6cf83820, - 0x1b410: 0x6c19b220, 0x1b411: 0x6cf2a620, 0x1b412: 0x6c6bb820, 0x1b413: 0x6c436e20, - 0x1b414: 0x6c646c20, 0x1b415: 0x6cbaa020, 0x1b416: 0x6c5da020, 0x1b417: 0x6cbaa220, - 0x1b418: 0x6d2e4a20, 0x1b419: 0x6c306e20, 0x1b41a: 0x6cb81220, 0x1b41b: 0x6c63b620, - 0x1b41c: 0x6c2e9220, 0x1b41d: 0x6d2b5e20, 0x1b41e: 0x6c63be20, 0x1b41f: 0x6c614420, - 0x1b420: 0x6d33de20, 0x1b421: 0x6c76b020, 0x1b422: 0x6c603420, 0x1b423: 0x6c7c8620, - 0x1b424: 0x6c414020, 0x1b425: 0x6c2ace20, 0x1b426: 0x6d2e6820, 0x1b427: 0x6cbaca20, - 0x1b428: 0x6c439e20, 0x1b429: 0x6c65bc20, 0x1b42a: 0x6c6b0620, 0x1b42b: 0x6d238e20, - 0x1b42c: 0x6c65be20, 0x1b42d: 0x6d0dc820, 0x1b42e: 0x6c92a020, 0x1b42f: 0x6c54f620, - 0x1b430: 0x6d2e7e20, 0x1b431: 0x6cf8da20, 0x1b432: 0x6cf8ec20, 0x1b433: 0x6c219a20, - 0x1b434: 0x6c279420, 0x1b435: 0x6cc20420, 0x1b436: 0x6c563820, 0x1b437: 0x6c563a20, - 0x1b438: 0x6c563c20, 0x1b439: 0x6c35c820, 0x1b43a: 0x6cd30c20, 0x1b43b: 0x6ce3d220, - 0x1b43c: 0x6c992620, 0x1b43d: 0x6c566620, 0x1b43e: 0x6c858c20, 0x1b43f: 0x6c39a620, - // Block 0x6d1, offset 0x1b440 - 0x1b440: 0x6cdd4e20, 0x1b441: 0x6c0b2e20, 0x1b442: 0x6c2d4220, 0x1b443: 0x6c6ed820, - 0x1b444: 0x6cce3420, 0x1b445: 0x6d14c020, 0x1b446: 0x6d15dc20, 0x1b447: 0x6ccd7a20, - 0x1b448: 0x6c568c20, 0x1b449: 0x6c3a0220, 0x1b44a: 0x6d0d8020, 0x1b44b: 0x6cd43620, - 0x1b44c: 0x6cd48e20, 0x1b44d: 0x6c10fe20, 0x1b44e: 0x6d2bc020, 0x1b44f: 0x6cbff220, - 0x1b450: 0x6c820e20, 0x1b451: 0x6cb3fe20, 0x1b452: 0x6c031020, 0x1b453: 0x6c26e020, - 0x1b454: 0x6cc61020, 0x1b455: 0x6c390220, 0x1b456: 0x6cc83020, 0x1b457: 0x6d292a20, - 0x1b458: 0x6cea9620, 0x1b459: 0x6d2f1e20, 0x1b45a: 0x6c2df620, 0x1b45b: 0x6c776620, - 0x1b45c: 0x6d207220, 0x1b45d: 0x6c7a1820, 0x1b45e: 0x6c41c420, 0x1b45f: 0x6ccf9e20, - 0x1b460: 0x6c137820, 0x1b461: 0x6cea9820, 0x1b462: 0x6c475420, 0x1b463: 0x6c79d620, - 0x1b464: 0x6cf4a220, 0x1b465: 0x6c2a9420, 0x1b466: 0x6cb89820, 0x1b467: 0x6d343620, - 0x1b468: 0x6cc5b620, 0x1b469: 0x6c7de620, 0x1b46a: 0x6c9ac020, 0x1b46b: 0x6ccade20, - 0x1b46c: 0x6d0f7420, 0x1b46d: 0x6ca97820, 0x1b46e: 0x6c051220, 0x1b46f: 0x6c17e620, - 0x1b470: 0x6cc53620, 0x1b471: 0x6cf57020, 0x1b472: 0x6cb97220, 0x1b473: 0x6c047020, - 0x1b474: 0x6c639c20, 0x1b475: 0x6d20b220, 0x1b476: 0x6c3dda20, 0x1b477: 0x6c02c220, - 0x1b478: 0x6cf57e20, 0x1b479: 0x6caf2a20, 0x1b47a: 0x6d34e620, 0x1b47b: 0x6d357820, - 0x1b47c: 0x6c35d220, 0x1b47d: 0x6c2a9620, 0x1b47e: 0x6d2f8420, 0x1b47f: 0x6c19bc20, - // Block 0x6d2, offset 0x1b480 - 0x1b480: 0x6c618420, 0x1b481: 0x6d0d3c20, 0x1b482: 0x6c7bb820, 0x1b483: 0x6c0b6e20, - 0x1b484: 0x6c173220, 0x1b485: 0x6c704e20, 0x1b486: 0x6cf1cc20, 0x1b487: 0x6c551e20, - 0x1b488: 0x6d267e20, 0x1b489: 0x6c73de20, 0x1b48a: 0x6c039a20, 0x1b48b: 0x6cbe0420, - 0x1b48c: 0x6c282020, 0x1b48d: 0x6d331820, 0x1b48e: 0x6d27d820, 0x1b48f: 0x6cecc820, - 0x1b490: 0x6ca54820, 0x1b491: 0x6d168820, 0x1b492: 0x6cd49e20, 0x1b493: 0x6d3b5420, - 0x1b494: 0x6cb3d020, 0x1b495: 0x6ce7e620, 0x1b496: 0x6c30da20, 0x1b497: 0x6c777e20, - 0x1b498: 0x6d301220, 0x1b499: 0x6cb3d220, 0x1b49a: 0x6c3f3620, 0x1b49b: 0x6cad3220, - 0x1b49c: 0x6c036020, 0x1b49d: 0x6c029c20, 0x1b49e: 0x6d2aa420, 0x1b49f: 0x6ce94820, - 0x1b4a0: 0x6c79b220, 0x1b4a1: 0x6c94d020, 0x1b4a2: 0x6cbb3820, 0x1b4a3: 0x6d287a20, - 0x1b4a4: 0x6c565620, 0x1b4a5: 0x6c063020, 0x1b4a6: 0x6c0dc420, 0x1b4a7: 0x6d34f420, - 0x1b4a8: 0x6cae5620, 0x1b4a9: 0x6cdf8c20, 0x1b4aa: 0x6c106c20, 0x1b4ab: 0x6caf3620, - 0x1b4ac: 0x6cdf1820, 0x1b4ad: 0x6d118c20, 0x1b4ae: 0x6d31b820, 0x1b4af: 0x6d2bc620, - 0x1b4b0: 0x6d0f4820, 0x1b4b1: 0x6c063220, 0x1b4b2: 0x6c508c20, 0x1b4b3: 0x6ca62820, - 0x1b4b4: 0x6d12ce20, 0x1b4b5: 0x6c2bda20, 0x1b4b6: 0x6c1bee20, 0x1b4b7: 0x6caf3820, - 0x1b4b8: 0x6c632220, 0x1b4b9: 0x6ca0a820, 0x1b4ba: 0x6c9a7620, 0x1b4bb: 0x6c185a20, - 0x1b4bc: 0x6d0ad220, 0x1b4bd: 0x6c1d6420, 0x1b4be: 0x6cc0e420, 0x1b4bf: 0x6c9f9420, - // Block 0x6d3, offset 0x1b4c0 - 0x1b4c0: 0x6c1f1020, 0x1b4c1: 0x6c632a20, 0x1b4c2: 0x6c3dee20, 0x1b4c3: 0x6d2c7220, - 0x1b4c4: 0x6d3a5c20, 0x1b4c5: 0x6c27bc20, 0x1b4c6: 0x6c146020, 0x1b4c7: 0x6ca2c420, - 0x1b4c8: 0x6ca6ec20, 0x1b4c9: 0x6c7e3e20, 0x1b4ca: 0x6c3f4220, 0x1b4cb: 0x6cad3420, - 0x1b4cc: 0x6c04ea20, 0x1b4cd: 0x6cabee20, 0x1b4ce: 0x6c8b9a20, 0x1b4cf: 0x6ca2d020, - 0x1b4d0: 0x6c48d820, 0x1b4d1: 0x6cb97420, 0x1b4d2: 0x6c71fc20, 0x1b4d3: 0x6cde2e20, - 0x1b4d4: 0x6c036820, 0x1b4d5: 0x6ceaac20, 0x1b4d6: 0x6ceaae20, 0x1b4d7: 0x6c02a020, - 0x1b4d8: 0x6c705a20, 0x1b4d9: 0x6d3cf020, 0x1b4da: 0x6caca020, 0x1b4db: 0x6d2f5a20, - 0x1b4dc: 0x6c043c20, 0x1b4dd: 0x6c043220, 0x1b4de: 0x6c2bdc20, 0x1b4df: 0x6ca62420, - 0x1b4e0: 0x6c720e20, 0x1b4e1: 0x6c7de820, 0x1b4e2: 0x6c903220, 0x1b4e3: 0x6c656420, - 0x1b4e4: 0x6cb83420, 0x1b4e5: 0x6d1d7e20, 0x1b4e6: 0x6c7f8c20, 0x1b4e7: 0x6ca8f620, - 0x1b4e8: 0x6c0e5020, 0x1b4e9: 0x6d2aa820, 0x1b4ea: 0x6cb8bc20, 0x1b4eb: 0x6c522e20, - 0x1b4ec: 0x6c7dea20, 0x1b4ed: 0x6cd33620, 0x1b4ee: 0x6c6a8e20, 0x1b4ef: 0x6d331e20, - 0x1b4f0: 0x6ca8ee20, 0x1b4f1: 0x6c45da20, 0x1b4f2: 0x6c45de20, 0x1b4f3: 0x6cc2ca20, - 0x1b4f4: 0x6cd68020, 0x1b4f5: 0x6c25a620, 0x1b4f6: 0x6d288a20, 0x1b4f7: 0x6c77a020, - 0x1b4f8: 0x6d149c20, 0x1b4f9: 0x6d008220, 0x1b4fa: 0x6c12d020, 0x1b4fb: 0x6c5a9420, - 0x1b4fc: 0x6cb1ea20, 0x1b4fd: 0x6d3b6620, 0x1b4fe: 0x6cd41020, 0x1b4ff: 0x6ca2d620, - // Block 0x6d4, offset 0x1b500 - 0x1b500: 0x6c03fc20, 0x1b501: 0x6c1b0c20, 0x1b502: 0x6c48ac20, 0x1b503: 0x6d359c20, - 0x1b504: 0x6c7dec20, 0x1b505: 0x6c348020, 0x1b506: 0x6c348220, 0x1b507: 0x6d350020, - 0x1b508: 0x6cbcaa20, 0x1b509: 0x6c01a420, 0x1b50a: 0x6ca9f220, 0x1b50b: 0x6d322020, - 0x1b50c: 0x6c43ca20, 0x1b50d: 0x6c698820, 0x1b50e: 0x6c7ae620, 0x1b50f: 0x6c306020, - 0x1b510: 0x6ca2d820, 0x1b511: 0x6ce55420, 0x1b512: 0x6c8ad220, 0x1b513: 0x6d2bca20, - 0x1b514: 0x6c937c20, 0x1b515: 0x6c2e7220, 0x1b516: 0x6cebca20, 0x1b517: 0x6c73fa20, - 0x1b518: 0x6c8b9420, 0x1b519: 0x6c71b020, 0x1b51a: 0x6d35b820, 0x1b51b: 0x6c943420, - 0x1b51c: 0x6d0b8620, 0x1b51d: 0x6cf27c20, 0x1b51e: 0x6cde3420, 0x1b51f: 0x6d008420, - 0x1b520: 0x6ca49c20, 0x1b521: 0x6c292820, 0x1b522: 0x6c68d020, 0x1b523: 0x6d329820, - 0x1b524: 0x6c612a20, 0x1b525: 0x6c5a9620, 0x1b526: 0x6cfb3420, 0x1b527: 0x6d24be20, - 0x1b528: 0x6c002020, 0x1b529: 0x6ceab420, 0x1b52a: 0x6caab820, 0x1b52b: 0x6c261c20, - 0x1b52c: 0x6c0ed420, 0x1b52d: 0x6c44fa20, 0x1b52e: 0x6ce3be20, 0x1b52f: 0x6d322c20, - 0x1b530: 0x6c19dc20, 0x1b531: 0x6cc94220, 0x1b532: 0x6cc94420, 0x1b533: 0x6c793220, - 0x1b534: 0x6c9a5020, 0x1b535: 0x6c906220, 0x1b536: 0x6c706820, 0x1b537: 0x6cae9020, - 0x1b538: 0x6c657a20, 0x1b539: 0x6d172820, 0x1b53a: 0x6ce6ba20, 0x1b53b: 0x6cccce20, - 0x1b53c: 0x6cc83a20, 0x1b53d: 0x6cecf820, 0x1b53e: 0x6d008a20, 0x1b53f: 0x6c138820, - // Block 0x6d5, offset 0x1b540 - 0x1b540: 0x6c3ca020, 0x1b541: 0x6c68da20, 0x1b542: 0x6cf43c20, 0x1b543: 0x6c75a420, - 0x1b544: 0x6c6fe820, 0x1b545: 0x6ce7b220, 0x1b546: 0x6c7da220, 0x1b547: 0x6c5dac20, - 0x1b548: 0x6ce89620, 0x1b549: 0x6d3cf620, 0x1b54a: 0x6cb3d620, 0x1b54b: 0x6c938820, - 0x1b54c: 0x6c033a20, 0x1b54d: 0x6c4e9820, 0x1b54e: 0x6cce6020, 0x1b54f: 0x6ca7da20, - 0x1b550: 0x6c72e420, 0x1b551: 0x6d2b4620, 0x1b552: 0x6cd5ba20, 0x1b553: 0x6d127620, - 0x1b554: 0x6c741220, 0x1b555: 0x6c103620, 0x1b556: 0x6cecd020, 0x1b557: 0x6c108420, - 0x1b558: 0x6d421620, 0x1b559: 0x6d172a20, 0x1b55a: 0x6d2ce820, 0x1b55b: 0x6c937e20, - 0x1b55c: 0x6cd9a420, 0x1b55d: 0x6ceab620, 0x1b55e: 0x6c813a20, 0x1b55f: 0x6cdce620, - 0x1b560: 0x6c052220, 0x1b561: 0x6c657c20, 0x1b562: 0x6c590220, 0x1b563: 0x6c29d420, - 0x1b564: 0x6cf13c20, 0x1b565: 0x6ced7820, 0x1b566: 0x6cbd6e20, 0x1b567: 0x6caf0220, - 0x1b568: 0x6ccf2c20, 0x1b569: 0x6c8af820, 0x1b56a: 0x6c9f4620, 0x1b56b: 0x6c9aca20, - 0x1b56c: 0x6c3f5a20, 0x1b56d: 0x6c041e20, 0x1b56e: 0x6c723e20, 0x1b56f: 0x6c29cc20, - 0x1b570: 0x6cf2b420, 0x1b571: 0x6c003e20, 0x1b572: 0x6c731c20, 0x1b573: 0x6d26a420, - 0x1b574: 0x6d3fec20, 0x1b575: 0x6c186420, 0x1b576: 0x6c20c820, 0x1b577: 0x6c6ab620, - 0x1b578: 0x6ce85420, 0x1b579: 0x6c07ae20, 0x1b57a: 0x6ca33220, 0x1b57b: 0x6ca72020, - 0x1b57c: 0x6cc90e20, 0x1b57d: 0x6d423620, 0x1b57e: 0x6cf2e220, 0x1b57f: 0x6cf5e820, - // Block 0x6d6, offset 0x1b580 - 0x1b580: 0x6cfa9820, 0x1b581: 0x6c19e620, 0x1b582: 0x6c2cc420, 0x1b583: 0x6ccae020, - 0x1b584: 0x6c94d220, 0x1b585: 0x6cbec620, 0x1b586: 0x6c427820, 0x1b587: 0x6c342a20, - 0x1b588: 0x6cd46020, 0x1b589: 0x6c2e1820, 0x1b58a: 0x6cb3d820, 0x1b58b: 0x6c2bf020, - 0x1b58c: 0x6d2f0420, 0x1b58d: 0x6c5d2420, 0x1b58e: 0x6c613620, 0x1b58f: 0x6ce1c220, - 0x1b590: 0x6cb82820, 0x1b591: 0x6cb5c420, 0x1b592: 0x6cabfa20, 0x1b593: 0x6cd4c820, - 0x1b594: 0x6cb8e220, 0x1b595: 0x6c8ce420, 0x1b596: 0x6d125c20, 0x1b597: 0x6d0b9c20, - 0x1b598: 0x6c742420, 0x1b599: 0x6d32b020, 0x1b59a: 0x6c899020, 0x1b59b: 0x6c48b020, - 0x1b59c: 0x6d175c20, 0x1b59d: 0x6c5dc220, 0x1b59e: 0x6ccd8220, 0x1b59f: 0x6d332020, - 0x1b5a0: 0x6c361020, 0x1b5a1: 0x6c112a20, 0x1b5a2: 0x6ce09420, 0x1b5a3: 0x6c181e20, - 0x1b5a4: 0x6c0db020, 0x1b5a5: 0x6c69fa20, 0x1b5a6: 0x6ce3ee20, 0x1b5a7: 0x6c79a420, - 0x1b5a8: 0x6ce99020, 0x1b5a9: 0x6d0d6620, 0x1b5aa: 0x6c262220, 0x1b5ab: 0x6d387420, - 0x1b5ac: 0x6c708a20, 0x1b5ad: 0x6ce53420, 0x1b5ae: 0x6cb98820, 0x1b5af: 0x6c791820, - 0x1b5b0: 0x6c040020, 0x1b5b1: 0x6cabd420, 0x1b5b2: 0x6c69fc20, 0x1b5b3: 0x6c91ba20, - 0x1b5b4: 0x6c48cc20, 0x1b5b5: 0x6ca04e20, 0x1b5b6: 0x6c454620, 0x1b5b7: 0x6d35e020, - 0x1b5b8: 0x6c283420, 0x1b5b9: 0x6c9c2a20, 0x1b5ba: 0x6c11f220, 0x1b5bb: 0x6ccaa620, - 0x1b5bc: 0x6c498220, 0x1b5bd: 0x6caf1020, 0x1b5be: 0x6d261c20, 0x1b5bf: 0x6caaee20, - // Block 0x6d7, offset 0x1b5c0 - 0x1b5c0: 0x6c659020, 0x1b5c1: 0x6d32c420, 0x1b5c2: 0x6c6f7220, 0x1b5c3: 0x6c659220, - 0x1b5c4: 0x6d212620, 0x1b5c5: 0x6d0ca820, 0x1b5c6: 0x6c7c7820, 0x1b5c7: 0x6ca42620, - 0x1b5c8: 0x6c52a420, 0x1b5c9: 0x6cc74a20, 0x1b5ca: 0x6cb09620, 0x1b5cb: 0x6cee8820, - 0x1b5cc: 0x6cc9c420, 0x1b5cd: 0x6d408820, 0x1b5ce: 0x6d079c20, 0x1b5cf: 0x6c9e7620, - 0x1b5d0: 0x6ce32420, 0x1b5d1: 0x6ca7dc20, 0x1b5d2: 0x6c139c20, 0x1b5d3: 0x6cd38620, - 0x1b5d4: 0x6d3ff220, 0x1b5d5: 0x6d324220, 0x1b5d6: 0x6d13f220, 0x1b5d7: 0x6d0a1020, - 0x1b5d8: 0x6d1df620, 0x1b5d9: 0x6c0af220, 0x1b5da: 0x6d0fb620, 0x1b5db: 0x6c592220, - 0x1b5dc: 0x6d0d8220, 0x1b5dd: 0x6d296a20, 0x1b5de: 0x6c018620, 0x1b5df: 0x6d059a20, - 0x1b5e0: 0x6d0bac20, 0x1b5e1: 0x6cf2ee20, 0x1b5e2: 0x6c784c20, 0x1b5e3: 0x6c1fb420, - 0x1b5e4: 0x6c600020, 0x1b5e5: 0x6ce3fa20, 0x1b5e6: 0x6c7e5e20, 0x1b5e7: 0x6c7e7a20, - 0x1b5e8: 0x6c18c820, 0x1b5e9: 0x6c762e20, 0x1b5ea: 0x6c6f7420, 0x1b5eb: 0x6c6f7c20, - 0x1b5ec: 0x6ce8ae20, 0x1b5ed: 0x6c6a1220, 0x1b5ee: 0x6c5ab420, 0x1b5ef: 0x6c44b420, - 0x1b5f0: 0x6c1d5020, 0x1b5f1: 0x6cfed620, 0x1b5f2: 0x6c2ea420, 0x1b5f3: 0x6d004020, - 0x1b5f4: 0x6d256220, 0x1b5f5: 0x6cb98a20, 0x1b5f6: 0x6d127c20, 0x1b5f7: 0x6c139e20, - 0x1b5f8: 0x6d2bda20, 0x1b5f9: 0x6c069e20, 0x1b5fa: 0x6d10f820, 0x1b5fb: 0x6cee8a20, - 0x1b5fc: 0x6c086a20, 0x1b5fd: 0x6c802820, 0x1b5fe: 0x6cf20c20, 0x1b5ff: 0x6cbe1420, - // Block 0x6d8, offset 0x1b600 - 0x1b600: 0x6c14ca20, 0x1b601: 0x6c439220, 0x1b602: 0x6c90e420, 0x1b603: 0x6d3ff420, - 0x1b604: 0x6c44ce20, 0x1b605: 0x6c68f220, 0x1b606: 0x6c46b820, 0x1b607: 0x6cbe1a20, - 0x1b608: 0x6cc68420, 0x1b609: 0x6cc3ca20, 0x1b60a: 0x6c1d7420, 0x1b60b: 0x6c1fb620, - 0x1b60c: 0x6d2df620, 0x1b60d: 0x6cdcf020, 0x1b60e: 0x6cdcd420, 0x1b60f: 0x6c0f1220, - 0x1b610: 0x6c1f4e20, 0x1b611: 0x6cc67420, 0x1b612: 0x6c057a20, 0x1b613: 0x6c25ba20, - 0x1b614: 0x6ccaac20, 0x1b615: 0x6c780620, 0x1b616: 0x6d111020, 0x1b617: 0x6c29dc20, - 0x1b618: 0x6d33ee20, 0x1b619: 0x6caa6620, 0x1b61a: 0x6c7e4820, 0x1b61b: 0x6c64b020, - 0x1b61c: 0x6cd9b020, 0x1b61d: 0x6cc0ae20, 0x1b61e: 0x6c430820, 0x1b61f: 0x6cfc1420, - 0x1b620: 0x6cd78620, 0x1b621: 0x6cca8020, 0x1b622: 0x6c6d1420, 0x1b623: 0x6c9edc20, - 0x1b624: 0x6c365820, 0x1b625: 0x6c20ce20, 0x1b626: 0x6caafc20, 0x1b627: 0x6cccea20, - 0x1b628: 0x6cde5c20, 0x1b629: 0x6d2c7e20, 0x1b62a: 0x6ce10220, 0x1b62b: 0x6cac6420, - 0x1b62c: 0x6c048620, 0x1b62d: 0x6c265020, 0x1b62e: 0x6c863020, 0x1b62f: 0x6ce1d620, - 0x1b630: 0x6c555c20, 0x1b631: 0x6d365620, 0x1b632: 0x6cebe220, 0x1b633: 0x6c574220, - 0x1b634: 0x6cb90220, 0x1b635: 0x6cf20e20, 0x1b636: 0x6cbb3e20, 0x1b637: 0x6ce4ac20, - 0x1b638: 0x6d316220, 0x1b639: 0x6c365a20, 0x1b63a: 0x6d00ba20, 0x1b63b: 0x6cab0220, - 0x1b63c: 0x6cc2fc20, 0x1b63d: 0x6c13e220, 0x1b63e: 0x6d2ccc20, 0x1b63f: 0x6c441020, - // Block 0x6d9, offset 0x1b640 - 0x1b640: 0x6cf44e20, 0x1b641: 0x6c372420, 0x1b642: 0x6ccf5220, 0x1b643: 0x6c776820, - 0x1b644: 0x6ccf5420, 0x1b645: 0x6cd4e820, 0x1b646: 0x6c042620, 0x1b647: 0x6d111220, - 0x1b648: 0x6c0d8020, 0x1b649: 0x6cd9be20, 0x1b64a: 0x6cdfae20, 0x1b64b: 0x6cc97820, - 0x1b64c: 0x6c15ca20, 0x1b64d: 0x6cdd2a20, 0x1b64e: 0x6c6f8020, 0x1b64f: 0x6c1cd220, - 0x1b650: 0x6c205620, 0x1b651: 0x6c48d220, 0x1b652: 0x6c0de620, 0x1b653: 0x6c3cac20, - 0x1b654: 0x6cd65620, 0x1b655: 0x6c2c7e20, 0x1b656: 0x6cb7ae20, 0x1b657: 0x6cd9cc20, - 0x1b658: 0x6d2cf820, 0x1b659: 0x6c88c220, 0x1b65a: 0x6c197c20, 0x1b65b: 0x6c1ab820, - 0x1b65c: 0x6c499820, 0x1b65d: 0x6c928220, 0x1b65e: 0x6c961420, 0x1b65f: 0x6c90ee20, - 0x1b660: 0x6d400020, 0x1b661: 0x6c413420, 0x1b662: 0x6c56b620, 0x1b663: 0x6d2bea20, - 0x1b664: 0x6c209420, 0x1b665: 0x6ce19e20, 0x1b666: 0x6c57ac20, 0x1b667: 0x6c24dc20, - 0x1b668: 0x6ca38420, 0x1b669: 0x6ca07220, 0x1b66a: 0x6c676820, 0x1b66b: 0x6c4a7a20, - 0x1b66c: 0x6d1cfc20, 0x1b66d: 0x6d348020, 0x1b66e: 0x6c026020, 0x1b66f: 0x6d36ae20, - 0x1b670: 0x6ca85c20, 0x1b671: 0x6c97ea20, 0x1b672: 0x6c163020, 0x1b673: 0x6c79c220, - 0x1b674: 0x6c1e6220, 0x1b675: 0x6ccf6420, 0x1b676: 0x6ce95420, 0x1b677: 0x6c691420, - 0x1b678: 0x6ca05620, 0x1b679: 0x6ca06820, 0x1b67a: 0x6d306c20, 0x1b67b: 0x6c11fc20, - 0x1b67c: 0x6c794820, 0x1b67d: 0x6c0c0a20, 0x1b67e: 0x6c67f620, 0x1b67f: 0x6d19f420, - // Block 0x6da, offset 0x1b680 - 0x1b680: 0x6c46ce20, 0x1b681: 0x6cb90420, 0x1b682: 0x6c8aa020, 0x1b683: 0x6c608420, - 0x1b684: 0x6d1bce20, 0x1b685: 0x6c73b420, 0x1b686: 0x6cb1d020, 0x1b687: 0x6cb1ca20, - 0x1b688: 0x6c813c20, 0x1b689: 0x6c33ac20, 0x1b68a: 0x6cfcfa20, 0x1b68b: 0x6cc84420, - 0x1b68c: 0x6c4b6620, 0x1b68d: 0x6d297420, 0x1b68e: 0x6d185020, 0x1b68f: 0x6cfb7e20, - 0x1b690: 0x6c198820, 0x1b691: 0x6c198a20, 0x1b692: 0x6cc94620, 0x1b693: 0x6ca4ba20, - 0x1b694: 0x6c53ca20, 0x1b695: 0x6cd81620, 0x1b696: 0x6c4ee020, 0x1b697: 0x6c4a2620, - 0x1b698: 0x6c266420, 0x1b699: 0x6d420c20, 0x1b69a: 0x6ca73420, 0x1b69b: 0x6c8c2a20, - 0x1b69c: 0x6d332c20, 0x1b69d: 0x6c5ae420, 0x1b69e: 0x6d3c4820, 0x1b69f: 0x6c692820, - 0x1b6a0: 0x6c615020, 0x1b6a1: 0x6c126620, 0x1b6a2: 0x6c283c20, 0x1b6a3: 0x6c283e20, - 0x1b6a4: 0x6c183220, 0x1b6a5: 0x6c0e8820, 0x1b6a6: 0x6c17ee20, 0x1b6a7: 0x6c73b620, - 0x1b6a8: 0x6c3f8020, 0x1b6a9: 0x6c89d220, 0x1b6aa: 0x6c07c220, 0x1b6ab: 0x6c3f8220, - 0x1b6ac: 0x6cbc5820, 0x1b6ad: 0x6c0e8a20, 0x1b6ae: 0x6c25c620, 0x1b6af: 0x6d3d7a20, - 0x1b6b0: 0x6d3bda20, 0x1b6b1: 0x6ceff020, 0x1b6b2: 0x6cb40e20, 0x1b6b3: 0x6cbe2220, - 0x1b6b4: 0x6c33a620, 0x1b6b5: 0x6ca73620, 0x1b6b6: 0x6c574420, 0x1b6b7: 0x6d00d820, - 0x1b6b8: 0x6c912e20, 0x1b6b9: 0x6c692a20, 0x1b6ba: 0x6c249020, 0x1b6bb: 0x6cde8c20, - 0x1b6bc: 0x6c4f0420, 0x1b6bd: 0x6cbc5c20, 0x1b6be: 0x6cf29a20, 0x1b6bf: 0x6c65d620, - // Block 0x6db, offset 0x1b6c0 - 0x1b6c0: 0x6c41ea20, 0x1b6c1: 0x6d1db220, 0x1b6c2: 0x6c825620, 0x1b6c3: 0x6ca46e20, - 0x1b6c4: 0x6c91da20, 0x1b6c5: 0x6ccda820, 0x1b6c6: 0x6d3d7c20, 0x1b6c7: 0x6d2afa20, - 0x1b6c8: 0x6cb41420, 0x1b6c9: 0x6c21d620, 0x1b6ca: 0x6c5f5220, 0x1b6cb: 0x6c293420, - 0x1b6cc: 0x6ccb5620, 0x1b6cd: 0x6c126820, 0x1b6ce: 0x6cbe8c20, 0x1b6cf: 0x6cbe8420, - 0x1b6d0: 0x6c595220, 0x1b6d1: 0x6c6a3020, 0x1b6d2: 0x6cbd9420, 0x1b6d3: 0x6c7b0220, - 0x1b6d4: 0x6c27fa20, 0x1b6d5: 0x6d00dc20, 0x1b6d6: 0x6c761420, 0x1b6d7: 0x6cb06e20, - 0x1b6d8: 0x6c040620, 0x1b6d9: 0x6c02f220, 0x1b6da: 0x6c728c20, 0x1b6db: 0x6d132620, - 0x1b6dc: 0x6c370620, 0x1b6dd: 0x6c9c2c20, 0x1b6de: 0x6cda2620, 0x1b6df: 0x6c9c7a20, - 0x1b6e0: 0x6c615420, 0x1b6e1: 0x6cdf4820, 0x1b6e2: 0x6d3da820, 0x1b6e3: 0x6c29f220, - 0x1b6e4: 0x6d040a20, 0x1b6e5: 0x6c804420, 0x1b6e6: 0x6c10da20, 0x1b6e7: 0x6c71d820, - 0x1b6e8: 0x6d129220, 0x1b6e9: 0x6cc80620, 0x1b6ea: 0x6d136820, 0x1b6eb: 0x6d135a20, - 0x1b6ec: 0x6ca65220, 0x1b6ed: 0x6cf31420, 0x1b6ee: 0x6c60bc20, 0x1b6ef: 0x6c0d8820, - 0x1b6f0: 0x6ca92420, 0x1b6f1: 0x6c43b420, 0x1b6f2: 0x6d370420, 0x1b6f3: 0x6d36de20, - 0x1b6f4: 0x6c7e1a20, 0x1b6f5: 0x6ca08620, 0x1b6f6: 0x6c66ec20, 0x1b6f7: 0x6d011020, - 0x1b6f8: 0x6c8b4c20, 0x1b6f9: 0x6cdfc020, 0x1b6fa: 0x6c042a20, 0x1b6fb: 0x6cda3020, - 0x1b6fc: 0x6c91e820, 0x1b6fd: 0x6c94ca20, 0x1b6fe: 0x6cc54220, 0x1b6ff: 0x6ce2fe20, - // Block 0x6dc, offset 0x1b700 - 0x1b700: 0x6cac4c20, 0x1b701: 0x6d103620, 0x1b702: 0x6c834c20, 0x1b703: 0x6c10dc20, - 0x1b704: 0x6cd51420, 0x1b705: 0x6d297a20, 0x1b706: 0x6ca74220, 0x1b707: 0x6cfc4020, - 0x1b708: 0x6c75fa20, 0x1b709: 0x6c5d6620, 0x1b70a: 0x6c86f420, 0x1b70b: 0x6c7ea420, - 0x1b70c: 0x6c58e420, 0x1b70d: 0x6d1cb620, 0x1b70e: 0x6c917020, 0x1b70f: 0x6c904420, - 0x1b710: 0x6cb93a20, 0x1b711: 0x6cb93c20, 0x1b712: 0x6d297c20, 0x1b713: 0x6cb94620, - 0x1b714: 0x6c7fe620, 0x1b715: 0x6cfafc20, 0x1b716: 0x6d1c1e20, 0x1b717: 0x6c9a3a20, - 0x1b718: 0x6cc50820, 0x1b719: 0x6c14e020, 0x1b71a: 0x6d1d6c20, 0x1b71b: 0x6c249820, - 0x1b71c: 0x6d012420, 0x1b71d: 0x6ccf8a20, 0x1b71e: 0x6c957420, 0x1b71f: 0x6c760820, - 0x1b720: 0x6c9cb220, 0x1b721: 0x6c84a620, 0x1b722: 0x6d298220, 0x1b723: 0x6c945820, - 0x1b724: 0x6cdfc420, 0x1b725: 0x6d416420, 0x1b726: 0x6c876620, 0x1b727: 0x6c2cf820, - 0x1b728: 0x6cec0020, 0x1b729: 0x6c293c20, 0x1b72a: 0x6c697420, 0x1b72b: 0x6c751c20, - 0x1b72c: 0x6c805c20, 0x1b72d: 0x6c879e20, 0x1b72e: 0x6ca47620, 0x1b72f: 0x6d337e20, - 0x1b730: 0x6c4b2820, 0x1b731: 0x6c4ad820, 0x1b732: 0x6cb4f020, 0x1b733: 0x6d0a3a20, - 0x1b734: 0x6cb3fc20, 0x1b735: 0x6cdba820, 0x1b736: 0x6cd42a20, 0x1b737: 0x6c779a20, - 0x1b738: 0x6d1e9020, 0x1b739: 0x6c410c20, 0x1b73a: 0x6d15bc20, 0x1b73b: 0x6c455e20, - 0x1b73c: 0x6c416620, 0x1b73d: 0x6c047220, 0x1b73e: 0x6c39e220, 0x1b73f: 0x6d334220, - // Block 0x6dd, offset 0x1b740 - 0x1b740: 0x6cb36c20, 0x1b741: 0x6c2cc020, 0x1b742: 0x6c79da20, 0x1b743: 0x6c9f9a20, - 0x1b744: 0x6cf4c420, 0x1b745: 0x6c480020, 0x1b746: 0x6c50f020, 0x1b747: 0x6c12d620, - 0x1b748: 0x6cffdc20, 0x1b749: 0x6c9ce620, 0x1b74a: 0x6c1f2420, 0x1b74b: 0x6c43d620, - 0x1b74c: 0x6c2b6220, 0x1b74d: 0x6d06b620, 0x1b74e: 0x6c699a20, 0x1b74f: 0x6c9fa820, - 0x1b750: 0x6c18bc20, 0x1b751: 0x6c6ff220, 0x1b752: 0x6ccfda20, 0x1b753: 0x6c344620, - 0x1b754: 0x6d224e20, 0x1b755: 0x6c1c0e20, 0x1b756: 0x6c024020, 0x1b757: 0x6c044020, - 0x1b758: 0x6d06b820, 0x1b759: 0x6c699c20, 0x1b75a: 0x6c344820, 0x1b75b: 0x6c88b420, - 0x1b75c: 0x6ca82c20, 0x1b75d: 0x6c097820, 0x1b75e: 0x6c172c20, 0x1b75f: 0x6c2d1a20, - 0x1b760: 0x6c342e20, 0x1b761: 0x6d179c20, 0x1b762: 0x6c41d420, 0x1b763: 0x6cca5420, - 0x1b764: 0x6c786820, 0x1b765: 0x6d0e7020, 0x1b766: 0x6c339a20, 0x1b767: 0x6c5ecc20, - 0x1b768: 0x6ce81420, 0x1b769: 0x6cffea20, 0x1b76a: 0x6c345020, 0x1b76b: 0x6c690620, - 0x1b76c: 0x6c6e8420, 0x1b76d: 0x6d0fc220, 0x1b76e: 0x6cf9ce20, 0x1b76f: 0x6c9f5e20, - 0x1b770: 0x6cd5e420, 0x1b771: 0x6c004820, 0x1b772: 0x6cbb8c20, 0x1b773: 0x6c004a20, - 0x1b774: 0x6d333220, 0x1b775: 0x6c2b8820, 0x1b776: 0x6d324c20, 0x1b777: 0x6c3d8e20, - 0x1b778: 0x6cd60020, 0x1b779: 0x6c8a1020, 0x1b77a: 0x6cc13620, 0x1b77b: 0x6d049e20, - 0x1b77c: 0x6d161020, 0x1b77d: 0x6c694020, 0x1b77e: 0x6ccdfc20, 0x1b77f: 0x6c694220, - // Block 0x6de, offset 0x1b780 - 0x1b780: 0x6d3daa20, 0x1b781: 0x6d18c220, 0x1b782: 0x6c88ca20, 0x1b783: 0x6c0a6820, - 0x1b784: 0x6c848820, 0x1b785: 0x6d002220, 0x1b786: 0x6d002420, 0x1b787: 0x6cf17a20, - 0x1b788: 0x6d08f420, 0x1b789: 0x6cb58220, 0x1b78a: 0x6cb5a220, 0x1b78b: 0x6d2cea20, - 0x1b78c: 0x6c0d3620, 0x1b78d: 0x6c742620, 0x1b78e: 0x6d2cf020, 0x1b78f: 0x6c80b820, - 0x1b790: 0x6c3a5620, 0x1b791: 0x6c048020, 0x1b792: 0x6c048820, 0x1b793: 0x6c7fb420, - 0x1b794: 0x6d22a620, 0x1b795: 0x6c7ff620, 0x1b796: 0x6cf06420, 0x1b797: 0x6c30f820, - 0x1b798: 0x6cd0de20, 0x1b799: 0x6c8a9420, 0x1b79a: 0x6c640a20, 0x1b79b: 0x6c554420, - 0x1b79c: 0x6d00a020, 0x1b79d: 0x6c641820, 0x1b79e: 0x6d225820, 0x1b79f: 0x6d316420, - 0x1b7a0: 0x6c69ae20, 0x1b7a1: 0x6cf30220, 0x1b7a2: 0x6ce5ca20, 0x1b7a3: 0x6c313a20, - 0x1b7a4: 0x6c6c1e20, 0x1b7a5: 0x6c1bdc20, 0x1b7a6: 0x6d1a2e20, 0x1b7a7: 0x6c3f4420, - 0x1b7a8: 0x6cbaa420, 0x1b7a9: 0x6d2ddc20, 0x1b7aa: 0x6cc17820, 0x1b7ab: 0x6d3d3220, - 0x1b7ac: 0x6d2de620, 0x1b7ad: 0x6c32ba20, 0x1b7ae: 0x6c262820, 0x1b7af: 0x6cd7e820, - 0x1b7b0: 0x6d02dc20, 0x1b7b1: 0x6d3d5c20, 0x1b7b2: 0x6d3d7e20, 0x1b7b3: 0x6cbd9620, - 0x1b7b4: 0x6c8bda20, 0x1b7b5: 0x6d3dac20, 0x1b7b6: 0x6c1f7c20, 0x1b7b7: 0x6c32e020, - 0x1b7b8: 0x6d3a9020, 0x1b7b9: 0x6c398020, 0x1b7ba: 0x6c159820, 0x1b7bb: 0x6c4f5e20, - 0x1b7bc: 0x6d20c220, 0x1b7bd: 0x6cd1aa20, 0x1b7be: 0x6cae0e20, 0x1b7bf: 0x6d1f0820, - // Block 0x6df, offset 0x1b7c0 - 0x1b7c0: 0x6c9a7c20, 0x1b7c1: 0x6cacfa20, 0x1b7c2: 0x6cb5a420, 0x1b7c3: 0x6d2d6820, - 0x1b7c4: 0x6c98d020, 0x1b7c5: 0x6c938a20, 0x1b7c6: 0x6cae1220, 0x1b7c7: 0x6caf6020, - 0x1b7c8: 0x6c8e4e20, 0x1b7c9: 0x6c3d6220, 0x1b7ca: 0x6c39d020, 0x1b7cb: 0x6d081020, - 0x1b7cc: 0x6c6daa20, 0x1b7cd: 0x6c6dac20, 0x1b7ce: 0x6ca63620, 0x1b7cf: 0x6d40b820, - 0x1b7d0: 0x6d2fb020, 0x1b7d1: 0x6d15ee20, 0x1b7d2: 0x6c8e6a20, 0x1b7d3: 0x6cce7420, - 0x1b7d4: 0x6c668a20, 0x1b7d5: 0x6d214c20, 0x1b7d6: 0x6d15fe20, 0x1b7d7: 0x6cb61a20, - 0x1b7d8: 0x6d36e020, 0x1b7d9: 0x6c385e20, 0x1b7da: 0x6cb16620, 0x1b7db: 0x6c386020, - 0x1b7dc: 0x6d2db220, 0x1b7dd: 0x6c7b4420, 0x1b7de: 0x6cdc9a20, 0x1b7df: 0x6d21d420, - 0x1b7e0: 0x6cf39a20, 0x1b7e1: 0x6c616c20, 0x1b7e2: 0x6c61a820, 0x1b7e3: 0x6c61ec20, - 0x1b7e4: 0x6c5dce20, 0x1b7e5: 0x6cc63620, 0x1b7e6: 0x6c285e20, 0x1b7e7: 0x6c6fca20, - 0x1b7e8: 0x6d34d820, 0x1b7e9: 0x6d2a3a20, 0x1b7ea: 0x6d006820, 0x1b7eb: 0x6ce54620, - 0x1b7ec: 0x6d09d620, 0x1b7ed: 0x6d066820, 0x1b7ee: 0x6c40bc20, 0x1b7ef: 0x6c7e5820, - 0x1b7f0: 0x6c420c20, 0x1b7f1: 0x6c4e8a20, 0x1b7f2: 0x6cdf1020, 0x1b7f3: 0x6c2c1620, - 0x1b7f4: 0x6d056620, 0x1b7f5: 0x6c159420, 0x1b7f6: 0x6cd23a20, 0x1b7f7: 0x6c7bde20, - 0x1b7f8: 0x6d0f7c20, 0x1b7f9: 0x6cd24620, 0x1b7fa: 0x6cee4c20, 0x1b7fb: 0x6c9f3020, - 0x1b7fc: 0x6c9f3220, 0x1b7fd: 0x6cea8620, 0x1b7fe: 0x6c20fc20, 0x1b7ff: 0x6cf42820, - // Block 0x6e0, offset 0x1b800 - 0x1b800: 0x6d278820, 0x1b801: 0x6c06e620, 0x1b802: 0x6c01f420, 0x1b803: 0x6d2b3e20, - 0x1b804: 0x6c04ba20, 0x1b805: 0x6c6a7420, 0x1b806: 0x6c7d4c20, 0x1b807: 0x6cd0e020, - 0x1b808: 0x6c566820, 0x1b809: 0x6c39c420, 0x1b80a: 0x6c501c20, 0x1b80b: 0x6c4b2e20, - 0x1b80c: 0x6c166020, 0x1b80d: 0x6d077c20, 0x1b80e: 0x6c9fe820, 0x1b80f: 0x6c5cb220, - 0x1b810: 0x6c3b1620, 0x1b811: 0x6cbdc820, 0x1b812: 0x6c54a220, 0x1b813: 0x6d16ba20, - 0x1b814: 0x6cf58620, 0x1b815: 0x6d02b220, 0x1b816: 0x6d0c6420, 0x1b817: 0x6d2b4020, - 0x1b818: 0x6c39c620, 0x1b819: 0x6cdfd220, 0x1b81a: 0x6cd09420, 0x1b81b: 0x6c721020, - 0x1b81c: 0x6d0f9620, 0x1b81d: 0x6d296020, 0x1b81e: 0x6c0dcc20, 0x1b81f: 0x6d036a20, - 0x1b820: 0x6d1d3420, 0x1b821: 0x6d087620, 0x1b822: 0x6cb36e20, 0x1b823: 0x6d31c020, - 0x1b824: 0x6c8cb420, 0x1b825: 0x6c210020, 0x1b826: 0x6c502020, 0x1b827: 0x6c9a7e20, - 0x1b828: 0x6d422e20, 0x1b829: 0x6ca0e020, 0x1b82a: 0x6c0b8620, 0x1b82b: 0x6d069020, - 0x1b82c: 0x6c5cb420, 0x1b82d: 0x6d2f5c20, 0x1b82e: 0x6d401820, 0x1b82f: 0x6cd33820, - 0x1b830: 0x6cd33a20, 0x1b831: 0x6d22e220, 0x1b832: 0x6c3a8e20, 0x1b833: 0x6c2e7420, - 0x1b834: 0x6c993220, 0x1b835: 0x6ca68620, 0x1b836: 0x6c16e620, 0x1b837: 0x6cf14a20, - 0x1b838: 0x6c2fe420, 0x1b839: 0x6c006220, 0x1b83a: 0x6c0dce20, 0x1b83b: 0x6c01f620, - 0x1b83c: 0x6d390e20, 0x1b83d: 0x6c8f7420, 0x1b83e: 0x6cfbec20, 0x1b83f: 0x6c7be820, - // Block 0x6e1, offset 0x1b840 - 0x1b840: 0x6ce5ba20, 0x1b841: 0x6c175c20, 0x1b842: 0x6cd25c20, 0x1b843: 0x6c5a8220, - 0x1b844: 0x6c5a4e20, 0x1b845: 0x6d084820, 0x1b846: 0x6c7c6220, 0x1b847: 0x6d058020, - 0x1b848: 0x6c68dc20, 0x1b849: 0x6c6cea20, 0x1b84a: 0x6d35ba20, 0x1b84b: 0x6c6cec20, - 0x1b84c: 0x6cce3620, 0x1b84d: 0x6ce72e20, 0x1b84e: 0x6c53a020, 0x1b84f: 0x6d0e5020, - 0x1b850: 0x6c40ec20, 0x1b851: 0x6cfde020, 0x1b852: 0x6ccc9c20, 0x1b853: 0x6cffa820, - 0x1b854: 0x6d12de20, 0x1b855: 0x6d274c20, 0x1b856: 0x6c5aa220, 0x1b857: 0x6c4dfe20, - 0x1b858: 0x6c4eac20, 0x1b859: 0x6c75ae20, 0x1b85a: 0x6ced0820, 0x1b85b: 0x6cfcb020, - 0x1b85c: 0x6c7d5820, 0x1b85d: 0x6d392020, 0x1b85e: 0x6cf5ea20, 0x1b85f: 0x6c19de20, - 0x1b860: 0x6cd15820, 0x1b861: 0x6c101420, 0x1b862: 0x6d304c20, 0x1b863: 0x6d304e20, - 0x1b864: 0x6cf4dc20, 0x1b865: 0x6c4eae20, 0x1b866: 0x6c5bb620, 0x1b867: 0x6c503420, - 0x1b868: 0x6c194e20, 0x1b869: 0x6ced1820, 0x1b86a: 0x6ce4f420, 0x1b86b: 0x6d3d5e20, - 0x1b86c: 0x6d41b220, 0x1b86d: 0x6d38e820, 0x1b86e: 0x6cb48c20, 0x1b86f: 0x6c6e2020, - 0x1b870: 0x6cf60c20, 0x1b871: 0x6ccd4020, 0x1b872: 0x6ca63820, 0x1b873: 0x6cf60e20, - 0x1b874: 0x6cbe7a20, 0x1b875: 0x6cb6fc20, 0x1b876: 0x6c6db420, 0x1b877: 0x6c4afc20, - 0x1b878: 0x6d332220, 0x1b879: 0x6d179e20, 0x1b87a: 0x6d362820, 0x1b87b: 0x6c01c220, - 0x1b87c: 0x6ced1a20, 0x1b87d: 0x6c8bb220, 0x1b87e: 0x6c89b820, 0x1b87f: 0x6c166e20, - // Block 0x6e2, offset 0x1b880 - 0x1b880: 0x6cee1820, 0x1b881: 0x6cffac20, 0x1b882: 0x6d298c20, 0x1b883: 0x6c3b0620, - 0x1b884: 0x6d07a620, 0x1b885: 0x6c453420, 0x1b886: 0x6d151820, 0x1b887: 0x6cf9d020, - 0x1b888: 0x6d275420, 0x1b889: 0x6c5ac220, 0x1b88a: 0x6d064220, 0x1b88b: 0x6c9fba20, - 0x1b88c: 0x6c7c8820, 0x1b88d: 0x6d126020, 0x1b88e: 0x6d1d3a20, 0x1b88f: 0x6cd55c20, - 0x1b890: 0x6cefd820, 0x1b891: 0x6cd55a20, 0x1b892: 0x6cbe8220, 0x1b893: 0x6c998e20, - 0x1b894: 0x6ca40020, 0x1b895: 0x6c65ac20, 0x1b896: 0x6caa9420, 0x1b897: 0x6c01c620, - 0x1b898: 0x6d0fc420, 0x1b899: 0x6c210a20, 0x1b89a: 0x6d111e20, 0x1b89b: 0x6cdd7820, - 0x1b89c: 0x6c6d2820, 0x1b89d: 0x6ca00e20, 0x1b89e: 0x6c691620, 0x1b89f: 0x6c766620, - 0x1b8a0: 0x6c430e20, 0x1b8a1: 0x6cf25620, 0x1b8a2: 0x6c171c20, 0x1b8a3: 0x6cb7b020, - 0x1b8a4: 0x6c505220, 0x1b8a5: 0x6d0e9420, 0x1b8a6: 0x6c864a20, 0x1b8a7: 0x6c00ba20, - 0x1b8a8: 0x6c623620, 0x1b8a9: 0x6c626020, 0x1b8aa: 0x6c9af820, 0x1b8ab: 0x6d299620, - 0x1b8ac: 0x6d01f820, 0x1b8ad: 0x6c505820, 0x1b8ae: 0x6ca2a220, 0x1b8af: 0x6ca14020, - 0x1b8b0: 0x6c233820, 0x1b8b1: 0x6ca6b820, 0x1b8b2: 0x6d2ed420, 0x1b8b3: 0x6c5c1420, - 0x1b8b4: 0x6c066220, 0x1b8b5: 0x6c4ef820, 0x1b8b6: 0x6d081e20, 0x1b8b7: 0x6c200420, - 0x1b8b8: 0x6c8a1820, 0x1b8b9: 0x6cfacc20, 0x1b8ba: 0x6c28ae20, 0x1b8bb: 0x6c6e2e20, - 0x1b8bc: 0x6cb1d220, 0x1b8bd: 0x6c8bdc20, 0x1b8be: 0x6cea2820, 0x1b8bf: 0x6cf80e20, - // Block 0x6e3, offset 0x1b8c0 - 0x1b8c0: 0x6d189220, 0x1b8c1: 0x6c627620, 0x1b8c2: 0x6c5a7620, 0x1b8c3: 0x6c278820, - 0x1b8c4: 0x6d131220, 0x1b8c5: 0x6d131420, 0x1b8c6: 0x6c867820, 0x1b8c7: 0x6ce00e20, - 0x1b8c8: 0x6ce78220, 0x1b8c9: 0x6cffba20, 0x1b8ca: 0x6c3ace20, 0x1b8cb: 0x6cd07420, - 0x1b8cc: 0x6d2fde20, 0x1b8cd: 0x6c506620, 0x1b8ce: 0x6d18c420, 0x1b8cf: 0x6cfdfc20, - 0x1b8d0: 0x6d03a220, 0x1b8d1: 0x6cd02620, 0x1b8d2: 0x6c694a20, 0x1b8d3: 0x6c067020, - 0x1b8d4: 0x6c6eaa20, 0x1b8d5: 0x6d0ed020, 0x1b8d6: 0x6c00de20, 0x1b8d7: 0x6d135c20, - 0x1b8d8: 0x6cc7dc20, 0x1b8d9: 0x6cd57420, 0x1b8da: 0x6c9b5820, 0x1b8db: 0x6d09b820, - 0x1b8dc: 0x6d122e20, 0x1b8dd: 0x6cb4bc20, 0x1b8de: 0x6c86ca20, 0x1b8df: 0x6c18f620, - 0x1b8e0: 0x6c7c0e20, 0x1b8e1: 0x6c2f0420, 0x1b8e2: 0x6c8a7e20, 0x1b8e3: 0x6d0ef820, - 0x1b8e4: 0x6c5e3e20, 0x1b8e5: 0x6c917e20, 0x1b8e6: 0x6cf73220, 0x1b8e7: 0x6cc6dc20, - 0x1b8e8: 0x6c8fd620, 0x1b8e9: 0x6ca47220, 0x1b8ea: 0x6c95d620, 0x1b8eb: 0x6c945a20, - 0x1b8ec: 0x6cccae20, 0x1b8ed: 0x6ce18e20, 0x1b8ee: 0x6d0e2420, 0x1b8ef: 0x6d3a4420, - 0x1b8f0: 0x6d264220, 0x1b8f1: 0x6d264420, 0x1b8f2: 0x6cc0c620, 0x1b8f3: 0x6d12bc20, - 0x1b8f4: 0x6c452620, 0x1b8f5: 0x6d12c420, 0x1b8f6: 0x6c54a420, 0x1b8f7: 0x6c50d620, - 0x1b8f8: 0x6cd4b820, 0x1b8f9: 0x6c127420, 0x1b8fa: 0x6c127020, 0x1b8fb: 0x6cd18620, - 0x1b8fc: 0x6c97da20, 0x1b8fd: 0x6c134820, 0x1b8fe: 0x6c135020, 0x1b8ff: 0x6ce3fc20, - // Block 0x6e4, offset 0x1b900 - 0x1b900: 0x6d41b020, 0x1b901: 0x6c11d020, 0x1b902: 0x6d06d620, 0x1b903: 0x6c5be220, - 0x1b904: 0x6d1af620, 0x1b905: 0x6cbcd220, 0x1b906: 0x6c3b4220, 0x1b907: 0x6cb03820, - 0x1b908: 0x6d266820, 0x1b909: 0x6d1f9820, 0x1b90a: 0x6cc85020, 0x1b90b: 0x6cae8e20, - 0x1b90c: 0x6c3b5a20, 0x1b90d: 0x6c3df220, 0x1b90e: 0x6c8cb620, 0x1b90f: 0x6c3a4820, - 0x1b910: 0x6cc17a20, 0x1b911: 0x6ce3da20, 0x1b912: 0x6caa7e20, 0x1b913: 0x6ce5bc20, - 0x1b914: 0x6cd77620, 0x1b915: 0x6d322e20, 0x1b916: 0x6c80fa20, 0x1b917: 0x6c80f820, - 0x1b918: 0x6d416c20, 0x1b919: 0x6c9ff620, 0x1b91a: 0x6c598c20, 0x1b91b: 0x6cee5220, - 0x1b91c: 0x6cea2020, 0x1b91d: 0x6c176220, 0x1b91e: 0x6c5ed220, 0x1b91f: 0x6cb4f220, - 0x1b920: 0x6d1bba20, 0x1b921: 0x6d3f9820, 0x1b922: 0x6cee5820, 0x1b923: 0x6ce78420, - 0x1b924: 0x6c811220, 0x1b925: 0x6c81fa20, 0x1b926: 0x6c9b5a20, 0x1b927: 0x6c8fd820, - 0x1b928: 0x6ca25c20, 0x1b929: 0x6c2ac820, 0x1b92a: 0x6cf06c20, 0x1b92b: 0x6ca0bc20, - 0x1b92c: 0x6c079220, 0x1b92d: 0x6d2c1620, 0x1b92e: 0x6cd59020, 0x1b92f: 0x6cd59220, - 0x1b930: 0x6ca26220, 0x1b931: 0x6d397e20, 0x1b932: 0x6cc56620, 0x1b933: 0x6c031420, - 0x1b934: 0x6cb48220, 0x1b935: 0x6c352a20, 0x1b936: 0x6c347020, 0x1b937: 0x6c29ba20, - 0x1b938: 0x6c857220, 0x1b939: 0x6c4abe20, 0x1b93a: 0x6c5e7820, 0x1b93b: 0x6c6f4820, - 0x1b93c: 0x6c08b220, 0x1b93d: 0x6d051c20, 0x1b93e: 0x6c19b420, 0x1b93f: 0x6c22a820, - // Block 0x6e5, offset 0x1b940 - 0x1b940: 0x6ccbc020, 0x1b941: 0x6cc83420, 0x1b942: 0x6d28ac20, 0x1b943: 0x6cc2b420, - 0x1b944: 0x6cb8a620, 0x1b945: 0x6d20b620, 0x1b946: 0x6c416820, 0x1b947: 0x6cf35420, - 0x1b948: 0x6c137c20, 0x1b949: 0x6cccbc20, 0x1b94a: 0x6d09dc20, 0x1b94b: 0x6c388420, - 0x1b94c: 0x6cf4aa20, 0x1b94d: 0x6d3ee620, 0x1b94e: 0x6c87d820, 0x1b94f: 0x6d041220, - 0x1b950: 0x6c110820, 0x1b951: 0x6c259220, 0x1b952: 0x6cc5c220, 0x1b953: 0x6c0bea20, - 0x1b954: 0x6ceaa220, 0x1b955: 0x6c2c1820, 0x1b956: 0x6d2f2220, 0x1b957: 0x6c983220, - 0x1b958: 0x6c1be220, 0x1b959: 0x6d168a20, 0x1b95a: 0x6c412c20, 0x1b95b: 0x6c456020, - 0x1b95c: 0x6c323420, 0x1b95d: 0x6c83a220, 0x1b95e: 0x6cb6d620, 0x1b95f: 0x6cd59820, - 0x1b960: 0x6c425620, 0x1b961: 0x6ce56a20, 0x1b962: 0x6c681a20, 0x1b963: 0x6ccdf820, - 0x1b964: 0x6cedb620, 0x1b965: 0x6c7ee020, 0x1b966: 0x6c704420, 0x1b967: 0x6c983420, - 0x1b968: 0x6d0f7e20, 0x1b969: 0x6c96b220, 0x1b96a: 0x6c9e8820, 0x1b96b: 0x6cd88e20, - 0x1b96c: 0x6d254020, 0x1b96d: 0x6c4f6020, 0x1b96e: 0x6c3a8620, 0x1b96f: 0x6c069020, - 0x1b970: 0x6c6a7e20, 0x1b971: 0x6c2fe020, 0x1b972: 0x6c430020, 0x1b973: 0x6d118e20, - 0x1b974: 0x6cfa7c20, 0x1b975: 0x6c1ed620, 0x1b976: 0x6c20fe20, 0x1b977: 0x6cabd020, - 0x1b978: 0x6cd4a820, 0x1b979: 0x6c578220, 0x1b97a: 0x6d02b420, 0x1b97b: 0x6c1e2020, - 0x1b97c: 0x6d3aae20, 0x1b97d: 0x6c1e2220, 0x1b97e: 0x6cd90420, 0x1b97f: 0x6c04bc20, - // Block 0x6e6, offset 0x1b980 - 0x1b980: 0x6cd90620, 0x1b981: 0x6c5fd420, 0x1b982: 0x6cf2d620, 0x1b983: 0x6c6cda20, - 0x1b984: 0x6c469420, 0x1b985: 0x6c5e8e20, 0x1b986: 0x6c98c620, 0x1b987: 0x6cafb820, - 0x1b988: 0x6c093a20, 0x1b989: 0x6cee6220, 0x1b98a: 0x6c021220, 0x1b98b: 0x6c398820, - 0x1b98c: 0x6c3b5c20, 0x1b98d: 0x6d16bc20, 0x1b98e: 0x6c3df420, 0x1b98f: 0x6ca3e420, - 0x1b990: 0x6cf58820, 0x1b991: 0x6c566a20, 0x1b992: 0x6d0ad420, 0x1b993: 0x6c30dc20, - 0x1b994: 0x6d02fe20, 0x1b995: 0x6d31ba20, 0x1b996: 0x6d109020, 0x1b997: 0x6c8ba020, - 0x1b998: 0x6cc8c220, 0x1b999: 0x6c35ac20, 0x1b99a: 0x6c99d620, 0x1b99b: 0x6d2f9a20, - 0x1b99c: 0x6c4cae20, 0x1b99d: 0x6d339620, 0x1b99e: 0x6c230420, 0x1b99f: 0x6d281c20, - 0x1b9a0: 0x6d41e420, 0x1b9a1: 0x6c30de20, 0x1b9a2: 0x6cd4aa20, 0x1b9a3: 0x6d2a3c20, - 0x1b9a4: 0x6c352c20, 0x1b9a5: 0x6c858e20, 0x1b9a6: 0x6c934620, 0x1b9a7: 0x6c656620, - 0x1b9a8: 0x6c19be20, 0x1b9a9: 0x6cd9a020, 0x1b9aa: 0x6cbaa620, 0x1b9ab: 0x6c3c2220, - 0x1b9ac: 0x6ca3e620, 0x1b9ad: 0x6cfe8620, 0x1b9ae: 0x6cfa8a20, 0x1b9af: 0x6c7a2e20, - 0x1b9b0: 0x6cb28420, 0x1b9b1: 0x6cdf1c20, 0x1b9b2: 0x6cf7d420, 0x1b9b3: 0x6d350220, - 0x1b9b4: 0x6c48da20, 0x1b9b5: 0x6cfe8c20, 0x1b9b6: 0x6c643a20, 0x1b9b7: 0x6c633420, - 0x1b9b8: 0x6c467620, 0x1b9b9: 0x6c05aa20, 0x1b9ba: 0x6ca0e220, 0x1b9bb: 0x6d16f220, - 0x1b9bc: 0x6d12d820, 0x1b9bd: 0x6d12e020, 0x1b9be: 0x6cd33c20, 0x1b9bf: 0x6ca7fa20, - // Block 0x6e7, offset 0x1b9c0 - 0x1b9c0: 0x6c08c220, 0x1b9c1: 0x6c34d820, 0x1b9c2: 0x6d149e20, 0x1b9c3: 0x6c8cb820, - 0x1b9c4: 0x6c0dd020, 0x1b9c5: 0x6ca63020, 0x1b9c6: 0x6c7e4020, 0x1b9c7: 0x6c50d820, - 0x1b9c8: 0x6c04f020, 0x1b9c9: 0x6c388620, 0x1b9ca: 0x6d37a420, 0x1b9cb: 0x6c274620, - 0x1b9cc: 0x6c222c20, 0x1b9cd: 0x6d100a20, 0x1b9ce: 0x6c3d4a20, 0x1b9cf: 0x6c041a20, - 0x1b9d0: 0x6ca1fe20, 0x1b9d1: 0x6c418620, 0x1b9d2: 0x6cb4d420, 0x1b9d3: 0x6cc4ba20, - 0x1b9d4: 0x6cc74220, 0x1b9d5: 0x6c995220, 0x1b9d6: 0x6cce9a20, 0x1b9d7: 0x6cd90e20, - 0x1b9d8: 0x6d30e620, 0x1b9d9: 0x6cf99620, 0x1b9da: 0x6d202a20, 0x1b9db: 0x6ccfba20, - 0x1b9dc: 0x6c4b3020, 0x1b9dd: 0x6ceb9a20, 0x1b9de: 0x6d2cb420, 0x1b9df: 0x6ca3ec20, - 0x1b9e0: 0x6ca8fe20, 0x1b9e1: 0x6d1e2420, 0x1b9e2: 0x6c2be420, 0x1b9e3: 0x6d359e20, - 0x1b9e4: 0x6d2bcc20, 0x1b9e5: 0x6c13cc20, 0x1b9e6: 0x6c287020, 0x1b9e7: 0x6c46f820, - 0x1b9e8: 0x6c107620, 0x1b9e9: 0x6c6fdc20, 0x1b9ea: 0x6c022820, 0x1b9eb: 0x6c3e0c20, - 0x1b9ec: 0x6c657020, 0x1b9ed: 0x6c032e20, 0x1b9ee: 0x6c34da20, 0x1b9ef: 0x6c77de20, - 0x1b9f0: 0x6ca3b020, 0x1b9f1: 0x6d3abe20, 0x1b9f2: 0x6c094820, 0x1b9f3: 0x6c8efa20, - 0x1b9f4: 0x6c147620, 0x1b9f5: 0x6cccd020, 0x1b9f6: 0x6cd89e20, 0x1b9f7: 0x6c1f1820, - 0x1b9f8: 0x6cadb620, 0x1b9f9: 0x6cd31a20, 0x1b9fa: 0x6c48dc20, 0x1b9fb: 0x6d2bce20, - 0x1b9fc: 0x6d119820, 0x1b9fd: 0x6c195620, 0x1b9fe: 0x6c6fde20, 0x1b9ff: 0x6cd33e20, - // Block 0x6e8, offset 0x1ba00 - 0x1ba00: 0x6d33a620, 0x1ba01: 0x6c8efc20, 0x1ba02: 0x6c99de20, 0x1ba03: 0x6c87da20, - 0x1ba04: 0x6cc65620, 0x1ba05: 0x6d2cb620, 0x1ba06: 0x6d2aa020, 0x1ba07: 0x6c0bec20, - 0x1ba08: 0x6d2e4c20, 0x1ba09: 0x6d35a020, 0x1ba0a: 0x6c8f7620, 0x1ba0b: 0x6c306220, - 0x1ba0c: 0x6c914420, 0x1ba0d: 0x6cd0ea20, 0x1ba0e: 0x6c85a620, 0x1ba0f: 0x6c7f9020, - 0x1ba10: 0x6d1e1c20, 0x1ba11: 0x6cd5ae20, 0x1ba12: 0x6d09f620, 0x1ba13: 0x6cd68420, - 0x1ba14: 0x6cb76820, 0x1ba15: 0x6d313820, 0x1ba16: 0x6cb4dc20, 0x1ba17: 0x6c85ca20, - 0x1ba18: 0x6d14c220, 0x1ba19: 0x6cfdba20, 0x1ba1a: 0x6d323020, 0x1ba1b: 0x6c85cc20, - 0x1ba1c: 0x6ccb1a20, 0x1ba1d: 0x6c484e20, 0x1ba1e: 0x6c76a420, 0x1ba1f: 0x6c078420, - 0x1ba20: 0x6cc58e20, 0x1ba21: 0x6cffde20, 0x1ba22: 0x6c041c20, 0x1ba23: 0x6cc59020, - 0x1ba24: 0x6c0e1220, 0x1ba25: 0x6d3e1620, 0x1ba26: 0x6c1d9820, 0x1ba27: 0x6d172c20, - 0x1ba28: 0x6c22be20, 0x1ba29: 0x6d063420, 0x1ba2a: 0x6d399220, 0x1ba2b: 0x6c666c20, - 0x1ba2c: 0x6d41a820, 0x1ba2d: 0x6c374a20, 0x1ba2e: 0x6c378e20, 0x1ba2f: 0x6d1fb820, - 0x1ba30: 0x6c380c20, 0x1ba31: 0x6c45e220, 0x1ba32: 0x6c77a620, 0x1ba33: 0x6c81ac20, - 0x1ba34: 0x6d2d6a20, 0x1ba35: 0x6c8aec20, 0x1ba36: 0x6d19be20, 0x1ba37: 0x6d104420, - 0x1ba38: 0x6c50f220, 0x1ba39: 0x6c449820, 0x1ba3a: 0x6d172e20, 0x1ba3b: 0x6cd34e20, - 0x1ba3c: 0x6c43dc20, 0x1ba3d: 0x6d28fc20, 0x1ba3e: 0x6c943620, 0x1ba3f: 0x6c3e3420, - // Block 0x6e9, offset 0x1ba40 - 0x1ba40: 0x6c6aa620, 0x1ba41: 0x6c525c20, 0x1ba42: 0x6c4b3e20, 0x1ba43: 0x6ce21020, - 0x1ba44: 0x6c49e420, 0x1ba45: 0x6ceef420, 0x1ba46: 0x6c7b9820, 0x1ba47: 0x6cc79620, - 0x1ba48: 0x6c01ac20, 0x1ba49: 0x6c012020, 0x1ba4a: 0x6c734a20, 0x1ba4b: 0x6d14c420, - 0x1ba4c: 0x6d3cf820, 0x1ba4d: 0x6c7a3620, 0x1ba4e: 0x6d35bc20, 0x1ba4f: 0x6cbf0420, - 0x1ba50: 0x6ce73020, 0x1ba51: 0x6cca6c20, 0x1ba52: 0x6cca6a20, 0x1ba53: 0x6c586a20, - 0x1ba54: 0x6c710420, 0x1ba55: 0x6c6fea20, 0x1ba56: 0x6d094c20, 0x1ba57: 0x6c34e020, - 0x1ba58: 0x6d3c7c20, 0x1ba59: 0x6d20f220, 0x1ba5a: 0x6d296420, - 0x1ba5c: 0x6d1ba620, 0x1ba5d: 0x6c6c1820, 0x1ba5e: 0x6c8f6220, 0x1ba5f: 0x6d2e5020, - 0x1ba60: 0x6d0ade20, 0x1ba61: 0x6cc52620, 0x1ba62: 0x6d313a20, 0x1ba63: 0x6c295e20, - 0x1ba64: 0x6cb4de20, 0x1ba65: 0x6cbbd820, 0x1ba66: 0x6c578c20, 0x1ba67: 0x6c4b4020, - 0x1ba68: 0x6c67a220, 0x1ba69: 0x6d3c1220, 0x1ba6a: 0x6d09f820, 0x1ba6b: 0x6cdd1620, - 0x1ba6c: 0x6ccbe620, 0x1ba6d: 0x6d314e20, 0x1ba6e: 0x6c069a20, 0x1ba6f: 0x6ce64020, - 0x1ba70: 0x6c7df220, 0x1ba71: 0x6c6e7020, 0x1ba72: 0x6cb3c220, 0x1ba73: 0x6c07b020, - 0x1ba74: 0x6c3e4e20, 0x1ba75: 0x6cc89a20, 0x1ba76: 0x6ce7b620, 0x1ba77: 0x6c742820, - 0x1ba78: 0x6cf5ec20, 0x1ba79: 0x6c80ba20, 0x1ba7a: 0x6c8f0420, 0x1ba7b: 0x6c3c3c20, - 0x1ba7c: 0x6cb4e820, 0x1ba7d: 0x6cf1d420, 0x1ba7e: 0x6c756c20, 0x1ba7f: 0x6c41d620, - // Block 0x6ea, offset 0x1ba80 - 0x1ba80: 0x6cdaa220, 0x1ba81: 0x6c894c20, 0x1ba82: 0x6cc04620, 0x1ba83: 0x6ce6be20, - 0x1ba84: 0x6d1fc020, 0x1ba85: 0x6c99ec20, 0x1ba86: 0x6c052420, 0x1ba87: 0x6c906620, - 0x1ba88: 0x6cae6820, 0x1ba89: 0x6d3c1620, 0x1ba8a: 0x6c2c4020, 0x1ba8b: 0x6d078c20, - 0x1ba8c: 0x6ce8a220, 0x1ba8d: 0x6d2a7e20, 0x1ba8e: 0x6c022a20, 0x1ba8f: 0x6c481020, - 0x1ba90: 0x6c097a20, 0x1ba91: 0x6c2b6820, 0x1ba92: 0x6c4e0020, 0x1ba93: 0x6d3f0820, - 0x1ba94: 0x6d33d420, 0x1ba95: 0x6cc5e620, 0x1ba96: 0x6c070e20, 0x1ba97: 0x6c450820, - 0x1ba98: 0x6c658620, 0x1ba99: 0x6c591020, 0x1ba9a: 0x6ced0a20, 0x1ba9b: 0x6caaba20, - 0x1ba9c: 0x6c634a20, 0x1ba9d: 0x6ce57c20, 0x1ba9e: 0x6c61ee20, 0x1ba9f: 0x6cfeb220, - 0x1baa0: 0x6c938e20, 0x1baa1: 0x6c5ce620, 0x1baa2: 0x6cce6820, 0x1baa3: 0x6c133020, - 0x1baa4: 0x6c3b6c20, 0x1baa5: 0x6cd91a20, 0x1baa6: 0x6c9c0220, 0x1baa7: 0x6cf3c020, - 0x1baa8: 0x6c83bc20, 0x1baa9: 0x6c83be20, 0x1baaa: 0x6c311020, 0x1baab: 0x6cbdd020, - 0x1baac: 0x6d1cea20, 0x1baad: 0x6cdd1820, 0x1baae: 0x6c708c20, 0x1baaf: 0x6ce2ea20, - 0x1bab0: 0x6d019020, 0x1bab1: 0x6c7da820, 0x1bab2: 0x6d3d5020, 0x1bab3: 0x6cd4ca20, - 0x1bab4: 0x6c14c020, 0x1bab5: 0x6c394220, 0x1bab6: 0x6cefae20, 0x1bab7: 0x6c6e7220, - 0x1bab8: 0x6c83c020, 0x1bab9: 0x6c0d3220, 0x1baba: 0x6cfa6420, 0x1babb: 0x6c3d1020, - 0x1babc: 0x6ce21c20, 0x1babd: 0x6d35e220, 0x1babe: 0x6c7efa20, 0x1babf: 0x6c87fc20, - // Block 0x6eb, offset 0x1bac0 - 0x1bac0: 0x6c658820, 0x1bac1: 0x6d3cfc20, 0x1bac2: 0x6c8ce620, 0x1bac3: 0x6c83d420, - 0x1bac4: 0x6cb79220, 0x1bac5: 0x6c0e2220, 0x1bac6: 0x6c94f820, 0x1bac7: 0x6c231620, - 0x1bac8: 0x6cba5420, 0x1bac9: 0x6c9dc420, 0x1baca: 0x6cb5e620, 0x1bacb: 0x6cb5e820, - 0x1bacc: 0x6c114620, 0x1bacd: 0x6c4bf820, 0x1bace: 0x6c14f420, 0x1bacf: 0x6c2a7020, - 0x1bad0: 0x6c3a5820, 0x1bad1: 0x6cabfe20, 0x1bad2: 0x6c057020, 0x1bad3: 0x6c057220, - 0x1bad4: 0x6c5cca20, 0x1bad5: 0x6d3f8e20, 0x1bad6: 0x6c1a0020, 0x1bad7: 0x6d2a4c20, - 0x1bad8: 0x6c603820, 0x1bad9: 0x6c861020, 0x1bada: 0x6caea020, 0x1badb: 0x6d233e20, - 0x1badc: 0x6d234020, 0x1badd: 0x6c481420, 0x1bade: 0x6c75ba20, 0x1badf: 0x6c307620, - 0x1bae0: 0x6ce0f620, 0x1bae1: 0x6c428020, 0x1bae2: 0x6cee1a20, 0x1bae3: 0x6c2c5620, - 0x1bae4: 0x6c262a20, 0x1bae5: 0x6c389c20, 0x1bae6: 0x6c195c20, 0x1bae7: 0x6d2e6220, - 0x1bae8: 0x6cb6fe20, 0x1bae9: 0x6d24f620, 0x1baea: 0x6d0d8820, 0x1baeb: 0x6d234220, - 0x1baec: 0x6cc29e20, 0x1baed: 0x6d17a020, 0x1baee: 0x6ccbaa20, 0x1baef: 0x6cc59820, - 0x1baf0: 0x6c20d220, 0x1baf1: 0x6c837820, 0x1baf2: 0x6cb4f420, 0x1baf3: 0x6d3d0220, - 0x1baf4: 0x6c3e7a20, 0x1baf5: 0x6c77f820, 0x1baf6: 0x6c7f0820, 0x1baf7: 0x6d405220, - 0x1baf8: 0x6d405420, 0x1baf9: 0x6d2fb220, 0x1bafa: 0x6c491620, 0x1bafb: 0x6c3b2a20, - 0x1bafc: 0x6c3b7420, 0x1bafd: 0x6ccfe620, 0x1bafe: 0x6cbe7c20, 0x1baff: 0x6ca5e420, - // Block 0x6ec, offset 0x1bb00 - 0x1bb00: 0x6ced1c20, 0x1bb01: 0x6c4cc020, 0x1bb02: 0x6c925420, 0x1bb03: 0x6c4fc620, - 0x1bb04: 0x6c6a1620, 0x1bb05: 0x6d15f020, 0x1bb06: 0x6c1dae20, 0x1bb07: 0x6c71b620, - 0x1bb08: 0x6c712220, 0x1bb09: 0x6c1a0220, 0x1bb0a: 0x6d423a20, 0x1bb0b: 0x6c895420, - 0x1bb0c: 0x6cbab820, 0x1bb0d: 0x6d346020, 0x1bb0e: 0x6c20d420, 0x1bb0f: 0x6d0af020, - 0x1bb10: 0x6c709220, 0x1bb11: 0x6c06a020, 0x1bb12: 0x6c684620, 0x1bb13: 0x6d3d6020, - 0x1bb14: 0x6d3e3a20, 0x1bb15: 0x6c0d3820, 0x1bb16: 0x6caea220, 0x1bb17: 0x6c2fa620, - 0x1bb18: 0x6c1eda20, 0x1bb19: 0x6c172e20, 0x1bb1a: 0x6c9b0620, 0x1bb1b: 0x6c57dc20, - 0x1bb1c: 0x6c659420, 0x1bb1d: 0x6c4a6820, 0x1bb1e: 0x6cf88820, 0x1bb1f: 0x6c319c20, - 0x1bb20: 0x6cba5620, 0x1bb21: 0x6c2a5820, 0x1bb22: 0x6c4bb420, 0x1bb23: 0x6c2da020, - 0x1bb24: 0x6c954620, 0x1bb25: 0x6d33e020, 0x1bb26: 0x6cc38220, 0x1bb27: 0x6ca04420, - 0x1bb28: 0x6c40b220, 0x1bb29: 0x6c454820, 0x1bb2a: 0x6caf1220, 0x1bb2b: 0x6d2dee20, - 0x1bb2c: 0x6d199420, 0x1bb2d: 0x6ceb7e20, 0x1bb2e: 0x6ccbac20, 0x1bb2f: 0x6c349a20, - 0x1bb30: 0x6d125e20, 0x1bb31: 0x6c400c20, 0x1bb32: 0x6cefda20, 0x1bb33: 0x6cee9a20, - 0x1bb34: 0x6c32c820, 0x1bb35: 0x6c641a20, 0x1bb36: 0x6d3f9a20, 0x1bb37: 0x6c64b220, - 0x1bb38: 0x6d151a20, 0x1bb39: 0x6cd0ae20, 0x1bb3a: 0x6cf78620, 0x1bb3b: 0x6d0e8220, - 0x1bb3c: 0x6d0da220, 0x1bb3d: 0x6c200020, 0x1bb3e: 0x6c64b420, 0x1bb3f: 0x6c210c20, - // Block 0x6ed, offset 0x1bb40 - 0x1bb40: 0x6d226a20, 0x1bb41: 0x6c513a20, 0x1bb42: 0x6d2be020, 0x1bb43: 0x6cf2fa20, - 0x1bb44: 0x6cb11420, 0x1bb45: 0x6c087a20, 0x1bb46: 0x6d10ac20, 0x1bb47: 0x6c5dd020, - 0x1bb48: 0x6d05b220, 0x1bb49: 0x6cc92020, 0x1bb4a: 0x6d0fc620, 0x1bb4b: 0x6c7e7c20, - 0x1bb4c: 0x6d0caa20, 0x1bb4d: 0x6c079e20, 0x1bb4e: 0x6c5ac420, 0x1bb4f: 0x6c7c8a20, - 0x1bb50: 0x6c6bea20, 0x1bb51: 0x6c7c8c20, 0x1bb52: 0x6cd7f220, 0x1bb53: 0x6c3c5420, - 0x1bb54: 0x6d004820, 0x1bb55: 0x6ceb8220, 0x1bb56: 0x6d35e420, 0x1bb57: 0x6c668c20, - 0x1bb58: 0x6ca29a20, 0x1bb59: 0x6c999020, 0x1bb5a: 0x6c1f9420, 0x1bb5b: 0x6c569e20, - 0x1bb5c: 0x6c556c20, 0x1bb5d: 0x6c890420, 0x1bb5e: 0x6c837a20, 0x1bb5f: 0x6ce67e20, - 0x1bb60: 0x6ca40220, 0x1bb61: 0x6d215220, 0x1bb62: 0x6d1f4620, 0x1bb63: 0x6c9a0820, - 0x1bb64: 0x6cd96620, 0x1bb65: 0x6d089a20, 0x1bb66: 0x6d089c20, 0x1bb67: 0x6d101e20, - 0x1bb68: 0x6d316620, 0x1bb69: 0x6cb11620, 0x1bb6a: 0x6d12fe20, 0x1bb6b: 0x6c605220, - 0x1bb6c: 0x6c6ae620, 0x1bb6d: 0x6d130020, 0x1bb6e: 0x6c1ee020, 0x1bb6f: 0x6c33fa20, - 0x1bb70: 0x6d212820, 0x1bb71: 0x6d408a20, 0x1bb72: 0x6cee9c20, 0x1bb73: 0x6c9a0a20, - 0x1bb74: 0x6ce40220, 0x1bb75: 0x6c603a20, 0x1bb76: 0x6c6ae820, 0x1bb77: 0x6c766220, - 0x1bb78: 0x6cbfb420, 0x1bb79: 0x6d1c7e20, 0x1bb7a: 0x6cc77a20, 0x1bb7b: 0x6c59d020, - 0x1bb7c: 0x6c909620, 0x1bb7d: 0x6c822220, 0x1bb7e: 0x6cc38420, 0x1bb7f: 0x6cfe7620, - // Block 0x6ee, offset 0x1bb80 - 0x1bb80: 0x6cb23c20, 0x1bb81: 0x6cd41820, 0x1bb82: 0x6c414420, 0x1bb83: 0x6cdfe820, - 0x1bb84: 0x6c802e20, 0x1bb85: 0x6cf15620, 0x1bb86: 0x6d215420, 0x1bb87: 0x6c192c20, - 0x1bb88: 0x6c935620, 0x1bb89: 0x6c71be20, 0x1bb8a: 0x6cd0cc20, 0x1bb8b: 0x6c1f9620, - 0x1bb8c: 0x6cb0ea20, 0x1bb8d: 0x6d01d420, 0x1bb8e: 0x6c642420, 0x1bb8f: 0x6d182420, - 0x1bb90: 0x6d2e0220, 0x1bb91: 0x6c3ec020, 0x1bb92: 0x6cab0620, 0x1bb93: 0x6c9d6620, - 0x1bb94: 0x6c80c220, 0x1bb95: 0x6cc69020, 0x1bb96: 0x6c47ae20, 0x1bb97: 0x6c66a820, - 0x1bb98: 0x6c71c020, 0x1bb99: 0x6cddf220, 0x1bb9a: 0x6d11c020, 0x1bb9b: 0x6d317a20, - 0x1bb9c: 0x6c055220, 0x1bb9d: 0x6ccc0820, 0x1bb9e: 0x6d259220, 0x1bb9f: 0x6d3f2020, - 0x1bba0: 0x6ca01020, 0x1bba1: 0x6cdae620, 0x1bba2: 0x6c644c20, 0x1bba3: 0x6d112020, - 0x1bba4: 0x6c6b0a20, 0x1bba5: 0x6c5a7420, 0x1bba6: 0x6c422a20, 0x1bba7: 0x6c3a6220, - 0x1bba8: 0x6d2cd020, 0x1bba9: 0x6cb9ae20, 0x1bbaa: 0x6c96ce20, 0x1bbab: 0x6cdcf420, - 0x1bbac: 0x6d259420, 0x1bbad: 0x6d01d620, 0x1bbae: 0x6cc69220, 0x1bbaf: 0x6cd27c20, - 0x1bbb0: 0x6d33fe20, 0x1bbb1: 0x6c24de20, 0x1bbb2: 0x6d27ba20, 0x1bbb3: 0x6ce68020, - 0x1bbb4: 0x6c8e7a20, 0x1bbb5: 0x6cc68620, 0x1bbb6: 0x6ce10e20, 0x1bbb7: 0x6cc3de20, - 0x1bbb8: 0x6d2cfa20, 0x1bbb9: 0x6cd80220, 0x1bbba: 0x6cd17420, 0x1bbbb: 0x6cde7020, - 0x1bbbc: 0x6c781420, 0x1bbbd: 0x6cf66c20, 0x1bbbe: 0x6c479c20, 0x1bbbf: 0x6cb51020, - // Block 0x6ef, offset 0x1bbc0 - 0x1bbc0: 0x6c431020, 0x1bbc1: 0x6c431220, 0x1bbc2: 0x6cdcdc20, 0x1bbc3: 0x6cac6620, - 0x1bbc4: 0x6ce1da20, 0x1bbc5: 0x6c441220, 0x1bbc6: 0x6d0a1a20, 0x1bbc7: 0x6c2cd420, - 0x1bbc8: 0x6caa2420, 0x1bbc9: 0x6c606420, 0x1bbca: 0x6cd78c20, 0x1bbcb: 0x6c46c220, - 0x1bbcc: 0x6c20d820, 0x1bbcd: 0x6cbacc20, 0x1bbce: 0x6c13ec20, 0x1bbcf: 0x6cba1620, - 0x1bbd0: 0x6c57ec20, 0x1bbd1: 0x6c9a1820, 0x1bbd2: 0x6d070a20, 0x1bbd3: 0x6c42ac20, - 0x1bbd4: 0x6c42cc20, 0x1bbd5: 0x6d3d8020, 0x1bbd6: 0x6ceb3620, 0x1bbd7: 0x6cbc7420, - 0x1bbd8: 0x6d105c20, 0x1bbd9: 0x6c2cd620, 0x1bbda: 0x6c642620, 0x1bbdb: 0x6c76e220, - 0x1bbdc: 0x6d41be20, 0x1bbdd: 0x6c2a5a20, 0x1bbde: 0x6c907220, 0x1bbdf: 0x6c0d4420, - 0x1bbe0: 0x6d39ba20, 0x1bbe1: 0x6ccaa420, 0x1bbe2: 0x6cf79c20, 0x1bbe3: 0x6c5f1420, - 0x1bbe4: 0x6c882220, 0x1bbe5: 0x6c5c1620, 0x1bbe6: 0x6d1da420, 0x1bbe7: 0x6cba7420, - 0x1bbe8: 0x6c4cc220, 0x1bbe9: 0x6c414620, 0x1bbea: 0x6c415020, 0x1bbeb: 0x6ce95820, - 0x1bbec: 0x6c57bc20, 0x1bbed: 0x6cb52020, 0x1bbee: 0x6ccbae20, 0x1bbef: 0x6c24e220, - 0x1bbf0: 0x6caeb220, 0x1bbf1: 0x6d1fe420, 0x1bbf2: 0x6c559020, 0x1bbf3: 0x6c67b620, - 0x1bbf4: 0x6c56be20, 0x1bbf5: 0x6c594a20, 0x1bbf6: 0x6c4b6820, 0x1bbf7: 0x6ca85e20, - 0x1bbf8: 0x6d185220, 0x1bbf9: 0x6c42d820, 0x1bbfa: 0x6c774420, 0x1bbfb: 0x6c4a8620, - 0x1bbfc: 0x6c4a8820, 0x1bbfd: 0x6c128a20, 0x1bbfe: 0x6c97fa20, 0x1bbff: 0x6c6cac20, - // Block 0x6f0, offset 0x1bc00 - 0x1bc00: 0x6c2b4020, 0x1bc01: 0x6d3c2220, 0x1bc02: 0x6c822620, 0x1bc03: 0x6c810a20, - 0x1bc04: 0x6c18dc20, 0x1bc05: 0x6c233a20, 0x1bc06: 0x6c841820, 0x1bc07: 0x6d04e220, - 0x1bc08: 0x6cbe8620, 0x1bc09: 0x6cd6da20, 0x1bc0a: 0x6c38b220, 0x1bc0b: 0x6ce7c220, - 0x1bc0c: 0x6c499e20, 0x1bc0d: 0x6d2ae820, 0x1bc0e: 0x6cdafc20, 0x1bc0f: 0x6c82d020, - 0x1bc10: 0x6c91d220, 0x1bc11: 0x6c896620, 0x1bc12: 0x6c9d7820, 0x1bc13: 0x6c90b020, - 0x1bc14: 0x6c177420, 0x1bc15: 0x6cdafe20, 0x1bc16: 0x6c782220, 0x1bc17: 0x6c1e6620, - 0x1bc18: 0x6ce12020, 0x1bc19: 0x6c0c1620, 0x1bc1a: 0x6c92a220, 0x1bc1b: 0x6c6f8420, - 0x1bc1c: 0x6d30fc20, 0x1bc1d: 0x6d2bf620, 0x1bc1e: 0x6cd50020, 0x1bc1f: 0x6d2ed620, - 0x1bc20: 0x6c977020, 0x1bc21: 0x6ca06a20, 0x1bc22: 0x6ca7a820, 0x1bc23: 0x6d106a20, - 0x1bc24: 0x6ce59820, 0x1bc25: 0x6caeb420, 0x1bc26: 0x6d3b1e20, 0x1bc27: 0x6ccc0e20, - 0x1bc28: 0x6cf6c020, 0x1bc29: 0x6cc31020, 0x1bc2a: 0x6c526c20, 0x1bc2b: 0x6c64ce20, - 0x1bc2c: 0x6c233c20, 0x1bc2d: 0x6c630e20, 0x1bc2e: 0x6d0f3a20, 0x1bc2f: 0x6cbb1820, - 0x1bc30: 0x6d098820, 0x1bc31: 0x6d1be420, 0x1bc32: 0x6c37de20, 0x1bc33: 0x6d0a3c20, - 0x1bc34: 0x6d349820, 0x1bc35: 0x6cbbf620, 0x1bc36: 0x6d417c20, 0x1bc37: 0x6c23b420, - 0x1bc38: 0x6cb49620, 0x1bc39: 0x6cd60a20, 0x1bc3a: 0x6c57ae20, 0x1bc3b: 0x6c7d1e20, - 0x1bc3c: 0x6d319020, 0x1bc3d: 0x6d41f220, 0x1bc3e: 0x6d26ec20, 0x1bc3f: 0x6ccdac20, - // Block 0x6f1, offset 0x1bc40 - 0x1bc40: 0x6cf6c420, 0x1bc41: 0x6c211420, 0x1bc42: 0x6c2d8020, 0x1bc43: 0x6c382620, - 0x1bc44: 0x6c41e620, 0x1bc45: 0x6ca07620, 0x1bc46: 0x6cf47a20, 0x1bc47: 0x6cbbaa20, - 0x1bc48: 0x6cc52c20, 0x1bc49: 0x6c8c6020, 0x1bc4a: 0x6c8e9620, 0x1bc4b: 0x6cbbf820, - 0x1bc4c: 0x6cfd0c20, 0x1bc4d: 0x6cc90820, 0x1bc4e: 0x6c38ba20, 0x1bc4f: 0x6d2e1420, - 0x1bc50: 0x6ceb4820, 0x1bc51: 0x6c81bc20, 0x1bc52: 0x6d27c620, 0x1bc53: 0x6cd75a20, - 0x1bc54: 0x6c33ae20, 0x1bc55: 0x6c199220, 0x1bc56: 0x6ce13220, 0x1bc57: 0x6c9b3820, - 0x1bc58: 0x6c715a20, 0x1bc59: 0x6c1a4220, 0x1bc5a: 0x6cdb3020, 0x1bc5b: 0x6c74ba20, - 0x1bc5c: 0x6c74bc20, 0x1bc5d: 0x6c2d8220, 0x1bc5e: 0x6c5c3020, 0x1bc5f: 0x6c5f3020, - 0x1bc60: 0x6caae020, 0x1bc61: 0x6cfe4e20, 0x1bc62: 0x6ceb8e20, 0x1bc63: 0x6ca94620, - 0x1bc64: 0x6cc8b020, 0x1bc65: 0x6d39c420, 0x1bc66: 0x6ce78620, 0x1bc67: 0x6d2b8e20, - 0x1bc68: 0x6c3b9420, 0x1bc69: 0x6cbf6020, 0x1bc6a: 0x6cc4d220, 0x1bc6b: 0x6c526e20, - 0x1bc6c: 0x6cb9c820, 0x1bc6d: 0x6c472e20, 0x1bc6e: 0x6c8f1a20, 0x1bc6f: 0x6c81e020, - 0x1bc70: 0x6c42dc20, 0x1bc71: 0x6c1eae20, 0x1bc72: 0x6cf94620, 0x1bc73: 0x6cd18820, - 0x1bc74: 0x6d3f6c20, 0x1bc75: 0x6cca6820, 0x1bc76: 0x6c60a620, 0x1bc77: 0x6c30c620, - 0x1bc78: 0x6c6eca20, 0x1bc79: 0x6c91dc20, 0x1bc7a: 0x6c673c20, 0x1bc7b: 0x6c1f9820, - 0x1bc7c: 0x6d25aa20, 0x1bc7d: 0x6cde9c20, 0x1bc7e: 0x6cd50c20, 0x1bc7f: 0x6c678220, - // Block 0x6f2, offset 0x1bc80 - 0x1bc80: 0x6ce01820, 0x1bc81: 0x6c8c3820, 0x1bc82: 0x6ca9cc20, 0x1bc83: 0x6d1b0620, - 0x1bc84: 0x6cf7a820, 0x1bc85: 0x6cdc8020, 0x1bc86: 0x6ccd1020, 0x1bc87: 0x6d41d020, - 0x1bc88: 0x6d082a20, 0x1bc89: 0x6c199a20, 0x1bc8a: 0x6c423420, 0x1bc8b: 0x6c716220, - 0x1bc8c: 0x6d41d820, 0x1bc8d: 0x6d18c620, 0x1bc8e: 0x6cbda220, 0x1bc8f: 0x6cb49c20, - 0x1bc90: 0x6d0cd620, 0x1bc91: 0x6c826020, 0x1bc92: 0x6c3c6a20, 0x1bc93: 0x6c5b6c20, - 0x1bc94: 0x6c299220, 0x1bc95: 0x6c629620, 0x1bc96: 0x6cdc7020, 0x1bc97: 0x6c0ff820, - 0x1bc98: 0x6cb2d420, 0x1bc99: 0x6c1a4420, 0x1bc9a: 0x6c1ef020, 0x1bc9b: 0x6d3b5a20, - 0x1bc9c: 0x6c4b7c20, 0x1bc9d: 0x6c60aa20, 0x1bc9e: 0x6c6ba020, 0x1bc9f: 0x6c643020, - 0x1bca0: 0x6cbe8e20, 0x1bca1: 0x6d2d2020, 0x1bca2: 0x6c65e020, 0x1bca3: 0x6cbb2820, - 0x1bca4: 0x6c2a3420, 0x1bca5: 0x6d161a20, 0x1bca6: 0x6c0c8220, 0x1bca7: 0x6cd93a20, - 0x1bca8: 0x6ccefe20, 0x1bca9: 0x6c8c3a20, 0x1bcaa: 0x6c87e420, 0x1bcab: 0x6c140e20, - 0x1bcac: 0x6c9b5c20, 0x1bcad: 0x6d1aa020, 0x1bcae: 0x6ce24820, 0x1bcaf: 0x6cdf4e20, - 0x1bcb0: 0x6c9de020, 0x1bcb1: 0x6cb67020, 0x1bcb2: 0x6ce96820, 0x1bcb3: 0x6c0d5c20, - 0x1bcb4: 0x6c5e0820, 0x1bcb5: 0x6c62aa20, 0x1bcb6: 0x6cb93420, 0x1bcb7: 0x6ca65820, - 0x1bcb8: 0x6ca92a20, 0x1bcb9: 0x6d142220, 0x1bcba: 0x6c432a20, 0x1bcbb: 0x6c76f620, - 0x1bcbc: 0x6d1b9220, 0x1bcbd: 0x6caa2c20, 0x1bcbe: 0x6cbeba20, 0x1bcbf: 0x6d0de620, - // Block 0x6f3, offset 0x1bcc0 - 0x1bcc0: 0x6cb67220, 0x1bcc1: 0x6c9d9e20, 0x1bcc2: 0x6d2fe820, 0x1bcc3: 0x6c4b8820, - 0x1bcc4: 0x6c212220, 0x1bcc5: 0x6c5f6a20, 0x1bcc6: 0x6c7ca420, 0x1bcc7: 0x6cb33c20, - 0x1bcc8: 0x6c2af020, 0x1bcc9: 0x6c1eba20, 0x1bcca: 0x6c449020, 0x1bccb: 0x6c9de420, - 0x1bccc: 0x6d1ec220, 0x1bccd: 0x6d373e20, 0x1bcce: 0x6c5a6620, 0x1bccf: 0x6cb93e20, - 0x1bcd0: 0x6c82f420, 0x1bcd1: 0x6c827020, 0x1bcd2: 0x6cc9a820, 0x1bcd3: 0x6c91f220, - 0x1bcd4: 0x6c86cc20, 0x1bcd5: 0x6c24a220, 0x1bcd6: 0x6c941220, 0x1bcd7: 0x6c9efc20, - 0x1bcd8: 0x6c5c7a20, 0x1bcd9: 0x6cab5c20, 0x1bcda: 0x6c916220, 0x1bcdb: 0x6d370620, - 0x1bcdc: 0x6c42ea20, 0x1bcdd: 0x6c31d020, 0x1bcde: 0x6d25c620, 0x1bcdf: 0x6c86f620, - 0x1bce0: 0x6c3ae820, 0x1bce1: 0x6d3dba20, 0x1bce2: 0x6cda3420, 0x1bce3: 0x6c886020, - 0x1bce4: 0x6c681c20, 0x1bce5: 0x6c1ec420, 0x1bce6: 0x6cbeec20, 0x1bce7: 0x6d39e020, - 0x1bce8: 0x6c918020, 0x1bce9: 0x6d0cfc20, 0x1bcea: 0x6c871a20, 0x1bceb: 0x6d39de20, - 0x1bcec: 0x6c193e20, 0x1bced: 0x6c6b5a20, 0x1bcee: 0x6c36d820, 0x1bcef: 0x6cda6820, - 0x1bcf0: 0x6c580020, 0x1bcf1: 0x6ca8a220, 0x1bcf2: 0x6d244e20, 0x1bcf3: 0x6c8fdc20, - 0x1bcf4: 0x6c7f7420, 0x1bcf5: 0x6c69f020, 0x1bcf6: 0x6cfc4620, 0x1bcf7: 0x6c4aa820, - 0x1bcf8: 0x6c71de20, 0x1bcf9: 0x6cff4820, 0x1bcfa: 0x6c8d9a20, 0x1bcfb: 0x6d1c2a20, - 0x1bcfc: 0x6c653c20, 0x1bcfd: 0x6d1b2420, 0x1bcfe: 0x6d1f9620, 0x1bcff: 0x6d1cc420, - // Block 0x6f4, offset 0x1bd00 - 0x1bd00: 0x6cfd9a20, 0x1bd01: 0x6ca9e020, 0x1bd02: 0x6c0fb620, 0x1bd03: 0x6c156020, - 0x1bd04: 0x6c7ff820, 0x1bd05: 0x6c71e220, 0x1bd06: 0x6cd6b220, 0x1bd07: 0x6ccf9020, - 0x1bd08: 0x6cef7420, 0x1bd09: 0x6c23cc20, 0x1bd0a: 0x6cc33020, 0x1bd0b: 0x6cc20620, - 0x1bd0c: 0x6c126220, 0x1bd0d: 0x6c704820, 0x1bd0e: 0x6d247a20, 0x1bd0f: 0x6c957e20, - 0x1bd10: 0x6c878a20, 0x1bd11: 0x6c24a820, 0x1bd12: 0x6c945c20, 0x1bd13: 0x6c294420, - 0x1bd14: 0x6c752820, 0x1bd15: 0x6d0f3e20, 0x1bd16: 0x6c806420, 0x1bd17: 0x6c800e20, - 0x1bd18: 0x6d3a4620, 0x1bd19: 0x6c82a220, 0x1bd1a: 0x6c855420, 0x1bd1b: 0x6c03e020, - 0x1bd1c: 0x6ca46620, 0x1bd1d: 0x6d249220, 0x1bd1e: 0x6c8dd820, 0x1bd1f: 0x6c4a3020, - 0x1bd20: 0x6cba3820, 0x1bd21: 0x6c22aa20, 0x1bd22: 0x6c596a20, 0x1bd23: 0x6d02b620, - 0x1bd24: 0x6d20b820, 0x1bd25: 0x6d16be20, 0x1bd26: 0x6cb8b220, 0x1bd27: 0x6cab3020, - 0x1bd28: 0x6d057820, 0x1bd29: 0x6c173c20, 0x1bd2a: 0x6c1f1a20, 0x1bd2b: 0x6cb78020, - 0x1bd2c: 0x6c768220, 0x1bd2d: 0x6d173020, 0x1bd2e: 0x6c741420, 0x1bd2f: 0x6cf87020, - 0x1bd30: 0x6d06a420, 0x1bd31: 0x6c509820, 0x1bd32: 0x6d231420, 0x1bd33: 0x6c7cf220, - 0x1bd34: 0x6c80ac20, 0x1bd35: 0x6c7b6220, 0x1bd36: 0x6cd77c20, 0x1bd37: 0x6cf5ee20, - 0x1bd38: 0x6c002220, 0x1bd39: 0x6d13f420, 0x1bd3a: 0x6cb4f620, 0x1bd3b: 0x6c1f9e20, - 0x1bd3c: 0x6c1ba620, 0x1bd3d: 0x6cbd3020, 0x1bd3e: 0x6c7b6620, 0x1bd3f: 0x6c76d420, - // Block 0x6f5, offset 0x1bd40 - 0x1bd40: 0x6c7b6820, 0x1bd41: 0x6c76dc20, 0x1bd42: 0x6c202220, 0x1bd43: 0x6ccc5a20, - 0x1bd44: 0x6c485a20, 0x1bd45: 0x6d19ea20, 0x1bd46: 0x6d02de20, 0x1bd47: 0x6d004a20, - 0x1bd48: 0x6d215620, 0x1bd49: 0x6cba6820, 0x1bd4a: 0x6cfeec20, 0x1bd4b: 0x6d131620, - 0x1bd4c: 0x6c43a020, 0x1bd4d: 0x6cf37420, 0x1bd4e: 0x6ce0a820, 0x1bd4f: 0x6c6d3e20, - 0x1bd50: 0x6cab4820, 0x1bd51: 0x6c54f820, 0x1bd52: 0x6ce40e20, 0x1bd53: 0x6c582c20, - 0x1bd54: 0x6d05d420, 0x1bd55: 0x6cae3820, 0x1bd56: 0x6cf81020, 0x1bd57: 0x6d000820, - 0x1bd58: 0x6c1fa220, 0x1bd59: 0x6ccf7820, 0x1bd5a: 0x6ccdae20, 0x1bd5b: 0x6c4dbe20, - 0x1bd5c: 0x6c1f7e20, 0x1bd5d: 0x6d18c820, 0x1bd5e: 0x6c36c420, 0x1bd5f: 0x6d21b420, - 0x1bd60: 0x6c21e220, 0x1bd61: 0x6c596e20, 0x1bd62: 0x6d34cc20, 0x1bd63: 0x6d333620, - 0x1bd64: 0x6c228a20, 0x1bd65: 0x6c105e20, 0x1bd66: 0x6cf42c20, 0x1bd67: 0x6cb58420, - 0x1bd68: 0x6c106e20, 0x1bd69: 0x6c107020, 0x1bd6a: 0x6cec4e20, 0x1bd6b: 0x6c721220, - 0x1bd6c: 0x6cb97e20, 0x1bd6d: 0x6c1b1620, 0x1bd6e: 0x6ccb2a20, 0x1bd6f: 0x6c1ba820, - 0x1bd70: 0x6ccb3620, 0x1bd71: 0x6d37fa20, 0x1bd72: 0x6cdc4620, 0x1bd73: 0x6cdc4820, - 0x1bd74: 0x6c864c20, 0x1bd75: 0x6c263420, 0x1bd76: 0x6d218220, 0x1bd77: 0x6c867c20, - 0x1bd78: 0x6c4a9a20, 0x1bd79: 0x6c271220, 0x1bd7a: 0x6c35ca20, 0x1bd7b: 0x6cd86c20, - 0x1bd7c: 0x6c646420, 0x1bd7d: 0x6d301c20, 0x1bd7e: 0x6ca0cc20, 0x1bd7f: 0x6ca0ce20, - // Block 0x6f6, offset 0x1bd80 - 0x1bd80: 0x6d109220, 0x1bd81: 0x6ca0d020, 0x1bd82: 0x6c242020, 0x1bd83: 0x6d0f5020, - 0x1bd84: 0x6ce4da20, 0x1bd85: 0x6cd0ee20, 0x1bd86: 0x6c274820, 0x1bd87: 0x6cce0020, - 0x1bd88: 0x6d06a620, 0x1bd89: 0x6d0a7c20, 0x1bd8a: 0x6cd4ba20, 0x1bd8b: 0x6c118c20, - 0x1bd8c: 0x6c742a20, 0x1bd8d: 0x6cb19420, 0x1bd8e: 0x6cb85c20, 0x1bd8f: 0x6cc04820, - 0x1bd90: 0x6cdaa420, 0x1bd91: 0x6cbe7820, 0x1bd92: 0x6d27e620, 0x1bd93: 0x6c88ee20, - 0x1bd94: 0x6d17a220, 0x1bd95: 0x6c3d2a20, 0x1bd96: 0x6d346220, 0x1bd97: 0x6d12f220, - 0x1bd98: 0x6c119620, 0x1bd99: 0x6c5cce20, 0x1bd9a: 0x6c27e020, 0x1bd9b: 0x6c603c20, - 0x1bd9c: 0x6c2ebe20, 0x1bd9d: 0x6d317c20, 0x1bd9e: 0x6d27f220, 0x1bd9f: 0x6cf15820, - 0x1bda0: 0x6c1e4820, 0x1bda1: 0x6c0d8220, 0x1bda2: 0x6ce41220, 0x1bda3: 0x6c6d4020, - 0x1bda4: 0x6cce1620, 0x1bda5: 0x6d1a9220, 0x1bda6: 0x6c2dda20, 0x1bda7: 0x6c702220, - 0x1bda8: 0x6c5c3220, 0x1bda9: 0x6c24b020, 0x1bdaa: 0x6d189820, 0x1bdab: 0x6c27fc20, - 0x1bdac: 0x6c327e20, 0x1bdad: 0x6c678420, 0x1bdae: 0x6c892020, 0x1bdaf: 0x6c0d8c20, - 0x1bdb0: 0x6c31d220, 0x1bdb1: 0x6c674020, 0x1bdb2: 0x6c653e20, 0x1bdb3: 0x6cd49820, - 0x1bdb4: 0x6cab3220, 0x1bdb5: 0x6c32b620, 0x1bdb6: 0x6d3ac020, 0x1bdb7: 0x6d19c020, - 0x1bdb8: 0x6cbec820, 0x1bdb9: 0x6d175e20, 0x1bdba: 0x6ccbda20, 0x1bdbb: 0x6cbc4020, - 0x1bdbc: 0x6c784e20, 0x1bdbd: 0x6cff8a20, 0x1bdbe: 0x6d0a8e20, 0x1bdbf: 0x6c2d5e20, - // Block 0x6f7, offset 0x1bdc0 - 0x1bdc0: 0x6c5b5620, 0x1bdc1: 0x6c5b5820, 0x1bdc2: 0x6c47a020, 0x1bdc3: 0x6cbb9020, - 0x1bdc4: 0x6c5f0620, 0x1bdc5: 0x6d185420, 0x1bdc6: 0x6cab4a20, 0x1bdc7: 0x6c5b6220, - 0x1bdc8: 0x6c32da20, 0x1bdc9: 0x6d142420, 0x1bdca: 0x6cff5c20, 0x1bdcb: 0x6cf39c20, - 0x1bdcc: 0x6c497220, 0x1bdcd: 0x6ca22020, 0x1bdce: 0x6c9a4820, 0x1bdcf: 0x6c9a4a20, - 0x1bdd0: 0x6c006020, 0x1bdd1: 0x6c6b9420, 0x1bdd2: 0x6c318820, 0x1bdd3: 0x6d239020, - 0x1bdd4: 0x6c08ac20, 0x1bdd5: 0x6c090a20, 0x1bdd6: 0x6c094e20, 0x1bdd7: 0x6cafc220, - 0x1bdd8: 0x6cafc420, 0x1bdd9: 0x6c095e20, 0x1bdda: 0x6c152c20, 0x1bddb: 0x6c98c020, - 0x1bddc: 0x6c4fbc20, 0x1bddd: 0x6c111a20, 0x1bdde: 0x6cafba20, 0x1bddf: 0x6c8b9020, - 0x1bde0: 0x6c633820, 0x1bde1: 0x6d2d6420, 0x1bde2: 0x6cc9c020, 0x1bde3: 0x6ca27620, - 0x1bde4: 0x6ceb9e20, 0x1bde5: 0x6d09fc20, 0x1bde6: 0x6c379020, 0x1bde7: 0x6cc66620, - 0x1bde8: 0x6cfbfa20, 0x1bde9: 0x6c710620, 0x1bdea: 0x6ca21020, 0x1bdeb: 0x6c4fc420, - 0x1bdec: 0x6cc04a20, 0x1bded: 0x6c311220, 0x1bdee: 0x6ccbea20, 0x1bdef: 0x6ce06020, - 0x1bdf0: 0x6cadd620, 0x1bdf1: 0x6c712420, 0x1bdf2: 0x6c343020, 0x1bdf3: 0x6c253c20, - 0x1bdf4: 0x6c087220, 0x1bdf5: 0x6cca0020, 0x1bdf6: 0x6cca6420, 0x1bdf7: 0x6c999420, - 0x1bdf8: 0x6cc9c820, 0x1bdf9: 0x6cd4ea20, 0x1bdfa: 0x6d208e20, 0x1bdfb: 0x6cebac20, - 0x1bdfc: 0x6c513c20, 0x1bdfd: 0x6c668e20, 0x1bdfe: 0x6cde7420, 0x1bdff: 0x6cca0620, - // Block 0x6f8, offset 0x1be00 - 0x1be00: 0x6c935e20, 0x1be01: 0x6ca21620, 0x1be02: 0x6c98fa20, 0x1be03: 0x6ce78820, - 0x1be04: 0x6cc72220, 0x1be05: 0x6c16f820, 0x1be06: 0x6cb49820, 0x1be07: 0x6c934e20, - 0x1be08: 0x6d2da820, 0x1be09: 0x6ccafc20, 0x1be0a: 0x6d2daa20, 0x1be0b: 0x6c9b5e20, - 0x1be0c: 0x6c91f420, 0x1be0d: 0x6cc20820, 0x1be0e: 0x6c2f2220, 0x1be0f: 0x6cd2e420, - 0x1be10: 0x6c2b0a20, 0x1be11: 0x6c9f2620, 0x1be12: 0x6c73d220, 0x1be13: 0x6c983620, - 0x1be14: 0x6cb72620, 0x1be15: 0x6cb1c420, 0x1be16: 0x6ca39220, 0x1be17: 0x6cb72e20, - 0x1be18: 0x6c29bc20, 0x1be19: 0x6cfa7a20, 0x1be1a: 0x6c1fde20, 0x1be1b: 0x6c3b1a20, - 0x1be1c: 0x6d0f8820, 0x1be1d: 0x6ca58620, 0x1be1e: 0x6c0d9a20, 0x1be1f: 0x6c3e1020, - 0x1be20: 0x6ccfbc20, 0x1be21: 0x6c2fe620, 0x1be22: 0x6cbe3420, 0x1be23: 0x6cb76a20, - 0x1be24: 0x6d19c220, 0x1be25: 0x6cf5c020, 0x1be26: 0x6c4d6020, 0x1be27: 0x6d100e20, - 0x1be28: 0x6c012220, 0x1be29: 0x6d0b8e20, 0x1be2a: 0x6c78a620, 0x1be2b: 0x6cbe4420, - 0x1be2c: 0x6d0bb020, 0x1be2d: 0x6c300220, 0x1be2e: 0x6c288a20, 0x1be2f: 0x6c93e020, - 0x1be30: 0x6cbe7e20, 0x1be31: 0x6d102620, 0x1be32: 0x6d275620, 0x1be33: 0x6d275c20, - 0x1be34: 0x6cd70220, 0x1be35: 0x6cd73c20, 0x1be36: 0x6d331620, 0x1be37: 0x6c0da420, - 0x1be38: 0x6d1e0c20, 0x1be39: 0x6c294e20, 0x1be3a: 0x6cd73e20, 0x1be3b: 0x6c821020, - 0x1be3c: 0x6ca67820, 0x1be3d: 0x6cea7620, 0x1be3e: 0x6c391420, 0x1be3f: 0x6c4abc20, - // Block 0x6f9, offset 0x1be40 - 0x1be40: 0x6ce62620, 0x1be41: 0x6d338220, 0x1be42: 0x6cc00020, 0x1be43: 0x6c0d1e20, - 0x1be44: 0x6d2b3620, 0x1be45: 0x6c9dfc20, 0x1be46: 0x6c248c20, 0x1be47: 0x6c5b8820, - 0x1be48: 0x6c2dac20, 0x1be49: 0x6c4e7c20, 0x1be4a: 0x6c142c20, 0x1be4b: 0x6d3d2020, - 0x1be4c: 0x6c202a20, 0x1be4d: 0x6cecba20, 0x1be4e: 0x6c391c20, 0x1be4f: 0x6c26e820, - 0x1be50: 0x6cf57220, 0x1be51: 0x6cea9c20, 0x1be52: 0x6c982a20, 0x1be53: 0x6cbffa20, - 0x1be54: 0x6cb73020, 0x1be55: 0x6ccd6a20, 0x1be56: 0x6cb24220, 0x1be57: 0x6c4e8620, - 0x1be58: 0x6cb89a20, 0x1be59: 0x6cf34620, 0x1be5a: 0x6cf34820, 0x1be5b: 0x6d0a6620, - 0x1be5c: 0x6cd87a20, 0x1be5d: 0x6cc7f420, 0x1be5e: 0x6c45d420, 0x1be5f: 0x6c674220, - 0x1be60: 0x6c1af620, 0x1be61: 0x6cf34a20, 0x1be62: 0x6ce92c20, 0x1be63: 0x6c704220, - 0x1be64: 0x6ce0b820, 0x1be65: 0x6d338c20, 0x1be66: 0x6d34e820, 0x1be67: 0x6cb8a820, - 0x1be68: 0x6c9d1c20, 0x1be69: 0x6c475820, 0x1be6a: 0x6cedc420, 0x1be6b: 0x6c6e0e20, - 0x1be6c: 0x6c6e1020, 0x1be6d: 0x6cc8be20, 0x1be6e: 0x6c755a20, 0x1be6f: 0x6c52f820, - 0x1be70: 0x6cdf6020, 0x1be71: 0x6cc34e20, 0x1be72: 0x6c5fcc20, 0x1be73: 0x6c0b7020, - 0x1be74: 0x6c0b7220, 0x1be75: 0x6c420e20, 0x1be76: 0x6cf1fe20, 0x1be77: 0x6d378820, - 0x1be78: 0x6c398420, 0x1be79: 0x6d045620, 0x1be7a: 0x6c73e020, 0x1be7b: 0x6c561020, - 0x1be7c: 0x6ca96820, 0x1be7d: 0x6cb73820, 0x1be7e: 0x6c3b5620, 0x1be7f: 0x6d067220, - // Block 0x6fa, offset 0x1be80 - 0x1be80: 0x6d068420, 0x1be81: 0x6cbe0620, 0x1be82: 0x6d146220, 0x1be83: 0x6cf2ce20, - 0x1be84: 0x6d278020, 0x1be85: 0x6d253e20, 0x1be86: 0x6c4f9020, 0x1be87: 0x6d0d3e20, - 0x1be88: 0x6c189c20, 0x1be89: 0x6c189e20, 0x1be8a: 0x6c286820, 0x1be8b: 0x6d1eec20, - 0x1be8c: 0x6c33da20, 0x1be8d: 0x6c565820, 0x1be8e: 0x6c5d9c20, 0x1be8f: 0x6cb4cc20, - 0x1be90: 0x6ca26820, 0x1be91: 0x6caa7620, 0x1be92: 0x6c99d220, 0x1be93: 0x6c268220, - 0x1be94: 0x6c9e0020, 0x1be95: 0x6c9d1e20, 0x1be96: 0x6c1cae20, 0x1be97: 0x6cacce20, - 0x1be98: 0x6c08bc20, 0x1be99: 0x6ccbc420, 0x1be9a: 0x6d34ea20, 0x1be9b: 0x6cae0220, - 0x1be9c: 0x6cac9e20, 0x1be9d: 0x6d3c7620, 0x1be9e: 0x6d288420, 0x1be9f: 0x6c463820, - 0x1bea0: 0x6c8e4220, 0x1bea1: 0x6c99d420, 0x1bea2: 0x6d2aa620, 0x1bea3: 0x6c3c1c20, - 0x1bea4: 0x6cab2e20, 0x1bea5: 0x6c858020, 0x1bea6: 0x6c94da20, 0x1bea7: 0x6c122220, - 0x1bea8: 0x6c3c1e20, 0x1bea9: 0x6ceee020, 0x1beaa: 0x6c565a20, 0x1beab: 0x6ca0d220, - 0x1beac: 0x6c9a7820, 0x1bead: 0x6cd59e20, 0x1beae: 0x6c71a620, 0x1beaf: 0x6d296220, - 0x1beb0: 0x6ceab020, 0x1beb1: 0x6ceaee20, 0x1beb2: 0x6ceaf020, 0x1beb3: 0x6c50c820, - 0x1beb4: 0x6c859020, 0x1beb5: 0x6c9cdc20, 0x1beb6: 0x6d147220, 0x1beb7: 0x6c37e420, - 0x1beb8: 0x6c3a8820, 0x1beb9: 0x6d1efe20, 0x1beba: 0x6ce48420, 0x1bebb: 0x6d358a20, - 0x1bebc: 0x6d2f8820, 0x1bebd: 0x6c46f220, 0x1bebe: 0x6d2d6020, 0x1bebf: 0x6d0c6820, - // Block 0x6fb, offset 0x1bec0 - 0x1bec0: 0x6cd7ce20, 0x1bec1: 0x6c7be420, 0x1bec2: 0x6c6ef820, 0x1bec3: 0x6c705c20, - 0x1bec4: 0x6d016020, 0x1bec5: 0x6cc00620, 0x1bec6: 0x6d16c220, 0x1bec7: 0x6c632c20, - 0x1bec8: 0x6d379a20, 0x1bec9: 0x6cc2c220, 0x1beca: 0x6cb2fc20, 0x1becb: 0x6c5b9020, - 0x1becc: 0x6c9d2620, 0x1becd: 0x6c077e20, 0x1bece: 0x6d2aaa20, 0x1becf: 0x6d39f420, - 0x1bed0: 0x6c821820, 0x1bed1: 0x6d1e9820, 0x1bed2: 0x6c46f420, 0x1bed3: 0x6c530420, - 0x1bed4: 0x6c417620, 0x1bed5: 0x6c382e20, 0x1bed6: 0x6c992e20, 0x1bed7: 0x6cd89020, - 0x1bed8: 0x6c54a620, 0x1bed9: 0x6cb27a20, 0x1beda: 0x6c229220, 0x1bedb: 0x6c392220, - 0x1bedc: 0x6d339a20, 0x1bedd: 0x6cda8020, 0x1bede: 0x6ca95420, 0x1bedf: 0x6c195420, - 0x1bee0: 0x6c8cac20, 0x1bee1: 0x6cad8220, 0x1bee2: 0x6c0e5220, 0x1bee3: 0x6cb74620, - 0x1bee4: 0x6cd88220, 0x1bee5: 0x6ca5c020, 0x1bee6: 0x6c70f620, 0x1bee7: 0x6cc96a20, - 0x1bee8: 0x6d3ab020, 0x1bee9: 0x6cd0e220, 0x1beea: 0x6c832020, 0x1beeb: 0x6d087020, - 0x1beec: 0x6c73f020, 0x1beed: 0x6c3df620, 0x1beee: 0x6caca220, 0x1beef: 0x6c9f9620, - 0x1bef0: 0x6cdf6820, 0x1bef1: 0x6d0f4a20, 0x1bef2: 0x6c612020, 0x1bef3: 0x6d1e1420, - 0x1bef4: 0x6c497c20, 0x1bef5: 0x6c083a20, 0x1bef6: 0x6d090020, 0x1bef7: 0x6c8f6c20, - 0x1bef8: 0x6c913a20, 0x1bef9: 0x6c28f420, 0x1befa: 0x6c95e020, 0x1befb: 0x6d016220, - 0x1befc: 0x6cb3c020, 0x1befd: 0x6d2aac20, 0x1befe: 0x6c6d9020, 0x1beff: 0x6d1a3c20, - // Block 0x6fc, offset 0x1bf00 - 0x1bf00: 0x6cac5420, 0x1bf01: 0x6c6a9020, 0x1bf02: 0x6d16f620, 0x1bf03: 0x6c5a9820, - 0x1bf04: 0x6c5b2620, 0x1bf05: 0x6d293020, 0x1bf06: 0x6c19ce20, 0x1bf07: 0x6d19b420, - 0x1bf08: 0x6ceeec20, 0x1bf09: 0x6c546620, 0x1bf0a: 0x6c665a20, 0x1bf0b: 0x6d0f9820, - 0x1bf0c: 0x6c8ad420, 0x1bf0d: 0x6cd8a820, 0x1bf0e: 0x6c61aa20, 0x1bf0f: 0x6c374020, - 0x1bf10: 0x6d03d020, 0x1bf11: 0x6c3e1220, 0x1bf12: 0x6cc94c20, 0x1bf13: 0x6ccb1820, - 0x1bf14: 0x6d350420, 0x1bf15: 0x6d1b3e20, 0x1bf16: 0x6cf3b620, 0x1bf17: 0x6cf7d620, - 0x1bf18: 0x6c77a420, 0x1bf19: 0x6d398a20, 0x1bf1a: 0x6c67da20, 0x1bf1b: 0x6c95e820, - 0x1bf1c: 0x6c95f420, 0x1bf1d: 0x6c01a620, 0x1bf1e: 0x6c306420, 0x1bf1f: 0x6ce3dc20, - 0x1bf20: 0x6ca1c820, 0x1bf21: 0x6c832220, 0x1bf22: 0x6d13da20, 0x1bf23: 0x6c9ce420, - 0x1bf24: 0x6cc2c420, 0x1bf25: 0x6c6c3020, 0x1bf26: 0x6cb37020, 0x1bf27: 0x6cef9820, - 0x1bf28: 0x6cff7020, 0x1bf29: 0x6d017220, 0x1bf2a: 0x6c531420, 0x1bf2b: 0x6d069420, - 0x1bf2c: 0x6cda8620, 0x1bf2d: 0x6c7b9220, 0x1bf2e: 0x6ce20a20, 0x1bf2f: 0x6cbcac20, - 0x1bf30: 0x6c71fe20, 0x1bf31: 0x6c378a20, 0x1bf32: 0x6d386020, 0x1bf33: 0x6cc81220, - 0x1bf34: 0x6cb28620, 0x1bf35: 0x6d09ec20, 0x1bf36: 0x6d046020, 0x1bf37: 0x6d35a220, - 0x1bf38: 0x6c49e020, 0x1bf39: 0x6c586420, 0x1bf3a: 0x6c9fec20, 0x1bf3b: 0x6c5d7020, - 0x1bf3c: 0x6cebcc20, 0x1bf3d: 0x6cb84c20, 0x1bf3e: 0x6cac1e20, 0x1bf3f: 0x6cf35820, - // Block 0x6fd, offset 0x1bf40 - 0x1bf40: 0x6cc0e820, 0x1bf41: 0x6c8e4a20, 0x1bf42: 0x6d16f820, 0x1bf43: 0x6c633a20, - 0x1bf44: 0x6c6e5a20, 0x1bf45: 0x6cb9f420, 0x1bf46: 0x6c675420, 0x1bf47: 0x6c683220, - 0x1bf48: 0x6d312a20, 0x1bf49: 0x6cd1ac20, 0x1bf4a: 0x6d3d3420, 0x1bf4b: 0x6c12d420, - 0x1bf4c: 0x6c380020, 0x1bf4d: 0x6c5b9c20, 0x1bf4e: 0x6c61ac20, 0x1bf4f: 0x6c8e4620, - 0x1bf50: 0x6c159c20, 0x1bf51: 0x6c5ce020, 0x1bf52: 0x6c561420, 0x1bf53: 0x6ca9b420, - 0x1bf54: 0x6d09ee20, 0x1bf55: 0x6c6ce220, 0x1bf56: 0x6c8aee20, 0x1bf57: 0x6cc03220, - 0x1bf58: 0x6cefa220, 0x1bf59: 0x6d30ea20, 0x1bf5a: 0x6c75a620, 0x1bf5b: 0x6c4df620, - 0x1bf5c: 0x6c052620, 0x1bf5d: 0x6c985220, 0x1bf5e: 0x6d3d3a20, 0x1bf5f: 0x6d1f1820, - 0x1bf60: 0x6cf5c220, 0x1bf61: 0x6c0ed620, 0x1bf62: 0x6c310420, 0x1bf63: 0x6c590420, - 0x1bf64: 0x6c532a20, 0x1bf65: 0x6d173220, 0x1bf66: 0x6cb48820, 0x1bf67: 0x6d1ce420, - 0x1bf68: 0x6c802420, 0x1bf69: 0x6c502e20, 0x1bf6a: 0x6c811820, 0x1bf6b: 0x6c4e5620, - 0x1bf6c: 0x6c850c20, 0x1bf6d: 0x6c44be20, 0x1bf6e: 0x6c3e3620, 0x1bf6f: 0x6cf3b820, - 0x1bf70: 0x6c88ea20, 0x1bf71: 0x6c213a20, 0x1bf72: 0x6c3ca220, 0x1bf73: 0x6d173420, - 0x1bf74: 0x6d22f220, 0x1bf75: 0x6ce73420, 0x1bf76: 0x6c815420, 0x1bf77: 0x6c4d3a20, - 0x1bf78: 0x6c6cee20, 0x1bf79: 0x6c634220, 0x1bf7a: 0x6c1cb820, 0x1bf7b: 0x6c6f0820, - 0x1bf7c: 0x6c9a5220, 0x1bf7d: 0x6cdbb820, 0x1bf7e: 0x6c195e20, 0x1bf7f: 0x6cae1420, - // Block 0x6fe, offset 0x1bf80 - 0x1bf80: 0x6cfcaa20, 0x1bf81: 0x6cd09820, 0x1bf82: 0x6ce92e20, 0x1bf83: 0x6c7dd020, - 0x1bf84: 0x6cb25020, 0x1bf85: 0x6ca80820, 0x1bf86: 0x6c4e9c20, 0x1bf87: 0x6c6da020, - 0x1bf88: 0x6cfea220, 0x1bf89: 0x6ccf3c20, 0x1bf8a: 0x6ca71e20, 0x1bf8b: 0x6ce84e20, - 0x1bf8c: 0x6d1e2620, 0x1bf8d: 0x6cffe020, 0x1bf8e: 0x6cfb3620, 0x1bf8f: 0x6ce6bc20, - 0x1bf90: 0x6c355820, 0x1bf91: 0x6cda8e20, 0x1bf92: 0x6cea1c20, 0x1bf93: 0x6c72e620, - 0x1bf94: 0x6c132c20, 0x1bf95: 0x6ce3e220, 0x1bf96: 0x6c85d020, 0x1bf97: 0x6cd71620, - 0x1bf98: 0x6cd8aa20, 0x1bf99: 0x6c832820, 0x1bf9a: 0x6cd71820, 0x1bf9b: 0x6ce1be20, - 0x1bf9c: 0x6c318e20, 0x1bf9d: 0x6c81ce20, 0x1bf9e: 0x6c7eec20, 0x1bf9f: 0x6c87f620, - 0x1bfa0: 0x6ceef620, 0x1bfa1: 0x6cf28020, 0x1bfa2: 0x6d279a20, 0x1bfa3: 0x6c590620, - 0x1bfa4: 0x6c2b6420, 0x1bfa5: 0x6c528a20, 0x1bfa6: 0x6cc8fa20, 0x1bfa7: 0x6c666e20, - 0x1bfa8: 0x6d2f0220, 0x1bfa9: 0x6ccb1c20, 0x1bfaa: 0x6c3e5220, 0x1bfab: 0x6c498420, - 0x1bfac: 0x6d042a20, 0x1bfad: 0x6cd46420, 0x1bfae: 0x6cd69020, 0x1bfaf: 0x6d0b2a20, - 0x1bfb0: 0x6c21b620, 0x1bfb1: 0x6d2f2e20, 0x1bfb2: 0x6d12e820, 0x1bfb3: 0x6c797620, - 0x1bfb4: 0x6cf2e420, 0x1bfb5: 0x6c4e0220, 0x1bfb6: 0x6ceac020, 0x1bfb7: 0x6c2ffa20, - 0x1bfb8: 0x6c510820, 0x1bfb9: 0x6cf28620, 0x1bfba: 0x6c708e20, 0x1bfbb: 0x6ccf4020, - 0x1bfbc: 0x6c894e20, 0x1bfbd: 0x6c5cc220, 0x1bfbe: 0x6cde4e20, 0x1bfbf: 0x6d3cfe20, - // Block 0x6ff, offset 0x1bfc0 - 0x1bfc0: 0x6c2d5220, 0x1bfc1: 0x6cbcb620, 0x1bfc2: 0x6c2a6a20, 0x1bfc3: 0x6c735620, - 0x1bfc4: 0x6d3e2420, 0x1bfc5: 0x6cf5f020, 0x1bfc6: 0x6cff8220, 0x1bfc7: 0x6cb5ca20, - 0x1bfc8: 0x6c477e20, 0x1bfc9: 0x6c4cb820, 0x1bfca: 0x6d0bf620, 0x1bfcb: 0x6c8bb020, - 0x1bfcc: 0x6ce17420, 0x1bfcd: 0x6d387620, 0x1bfce: 0x6caf0420, 0x1bfcf: 0x6c503820, - 0x1bfd0: 0x6c166620, 0x1bfd1: 0x6cd4cc20, 0x1bfd2: 0x6cb4ea20, 0x1bfd3: 0x6c399020, - 0x1bfd4: 0x6d345820, 0x1bfd5: 0x6c923c20, 0x1bfd6: 0x6ca53020, 0x1bfd7: 0x6c711420, - 0x1bfd8: 0x6ce21e20, 0x1bfd9: 0x6c239c20, 0x1bfda: 0x6c833020, 0x1bfdb: 0x6d30f020, - 0x1bfdc: 0x6cb29c20, 0x1bfdd: 0x6c3a3420, 0x1bfde: 0x6cd91c20, 0x1bfdf: 0x6ce4ee20, - 0x1bfe0: 0x6cb09020, 0x1bfe1: 0x6c288020, 0x1bfe2: 0x6d231620, 0x1bfe3: 0x6ca5d820, - 0x1bfe4: 0x6d208620, 0x1bfe5: 0x6c923e20, 0x1bfe6: 0x6c421a20, 0x1bfe7: 0x6c9d3a20, - 0x1bfe8: 0x6c6e7420, 0x1bfe9: 0x6c8ce820, 0x1bfea: 0x6c94f420, 0x1bfeb: 0x6d1a5c20, - 0x1bfec: 0x6c253620, 0x1bfed: 0x6cc18820, 0x1bfee: 0x6c57ea20, 0x1bfef: 0x6d231820, - 0x1bff0: 0x6ca72220, 0x1bff1: 0x6ccfde20, 0x1bff2: 0x6c0bf620, 0x1bff3: 0x6c214220, - 0x1bff4: 0x6c54c220, 0x1bff5: 0x6d24ec20, 0x1bff6: 0x6c7efc20, 0x1bff7: 0x6c5d2620, - 0x1bff8: 0x6cbe4620, 0x1bff9: 0x6d0bf820, 0x1bffa: 0x6cba0220, 0x1bffb: 0x6ce46220, - 0x1bffc: 0x6c9e9020, 0x1bffd: 0x6d350c20, 0x1bffe: 0x6d1ae420, 0x1bfff: 0x6c9d3c20, - // Block 0x700, offset 0x1c000 - 0x1c000: 0x6c07b220, 0x1c001: 0x6d24de20, 0x1c002: 0x6cf20820, 0x1c003: 0x6cc91c20, - 0x1c004: 0x6c39fa20, 0x1c005: 0x6cbe4820, 0x1c006: 0x6d24e020, 0x1c007: 0x6c786220, - 0x1c008: 0x6c61f220, 0x1c009: 0x6ccf4220, 0x1c00a: 0x6d24e220, 0x1c00b: 0x6ccba420, - 0x1c00c: 0x6c924020, 0x1c00d: 0x6d3f4420, 0x1c00e: 0x6c319620, 0x1c00f: 0x6cb81420, - 0x1c010: 0x6c667a20, 0x1c011: 0x6c9e1c20, 0x1c012: 0x6cb09220, 0x1c013: 0x6cf94420, - 0x1c014: 0x6d210220, 0x1c015: 0x6d24e420, 0x1c016: 0x6cd05c20, 0x1c017: 0x6cd09e20, - 0x1c018: 0x6cc74c20, 0x1c019: 0x6c592420, 0x1c01a: 0x6d3a6420, 0x1c01b: 0x6c659620, - 0x1c01c: 0x6caa9020, 0x1c01d: 0x6d212a20, 0x1c01e: 0x6cc06220, 0x1c01f: 0x6ce67220, - 0x1c020: 0x6cc18a20, 0x1c021: 0x6c325c20, 0x1c022: 0x6c389e20, 0x1c023: 0x6d2bdc20, - 0x1c024: 0x6c0f0420, 0x1c025: 0x6cf2f220, 0x1c026: 0x6cf28820, 0x1c027: 0x6c2c5820, - 0x1c028: 0x6cee8e20, 0x1c029: 0x6cf15020, 0x1c02a: 0x6cc7ac20, 0x1c02b: 0x6d01ae20, - 0x1c02c: 0x6c12ea20, 0x1c02d: 0x6cf09820, 0x1c02e: 0x6c510a20, 0x1c02f: 0x6c42a220, - 0x1c030: 0x6d0d8a20, 0x1c031: 0x6c534a20, 0x1c032: 0x6d089420, 0x1c033: 0x6c9cf220, - 0x1c034: 0x6c786a20, 0x1c035: 0x6c98da20, 0x1c036: 0x6d1bb020, 0x1c037: 0x6d0d8c20, - 0x1c038: 0x6d1f3820, 0x1c039: 0x6c52a620, 0x1c03a: 0x6c9e9220, 0x1c03b: 0x6cd13a20, - 0x1c03c: 0x6c9a5a20, 0x1c03d: 0x6d290420, 0x1c03e: 0x6c5cec20, 0x1c03f: 0x6ca3c420, - // Block 0x701, offset 0x1c040 - 0x1c040: 0x6c4afe20, 0x1c041: 0x6c1c2020, 0x1c042: 0x6c363820, 0x1c043: 0x6cac2620, - 0x1c044: 0x6c99fc20, 0x1c045: 0x6c88fc20, 0x1c046: 0x6cb79620, 0x1c047: 0x6cb79820, - 0x1c048: 0x6c99fe20, 0x1c049: 0x6ce4a020, 0x1c04a: 0x6c23ec20, 0x1c04b: 0x6cef1020, - 0x1c04c: 0x6c116a20, 0x1c04d: 0x6ce93220, 0x1c04e: 0x6c9e2620, 0x1c04f: 0x6c5bc420, - 0x1c050: 0x6ca11a20, 0x1c051: 0x6d059c20, 0x1c052: 0x6c604020, 0x1c053: 0x6cae4020, - 0x1c054: 0x6c649e20, 0x1c055: 0x6c658a20, 0x1c056: 0x6c555e20, 0x1c057: 0x6c3ce020, - 0x1c058: 0x6cfd7420, 0x1c059: 0x6d17a820, 0x1c05a: 0x6d1b5420, 0x1c05b: 0x6d2e6420, - 0x1c05c: 0x6cd26a20, 0x1c05d: 0x6c6a1820, 0x1c05e: 0x6c197020, 0x1c05f: 0x6c59c620, - 0x1c060: 0x6ce09a20, 0x1c061: 0x6d212c20, 0x1c062: 0x6c09a220, 0x1c063: 0x6c9fb020, - 0x1c064: 0x6cd1be20, 0x1c065: 0x6ce86020, 0x1c066: 0x6cd10220, 0x1c067: 0x6d1e3a20, - 0x1c068: 0x6c712620, 0x1c069: 0x6c307820, 0x1c06a: 0x6ce98a20, 0x1c06b: 0x6c68f620, - 0x1c06c: 0x6c690820, 0x1c06d: 0x6cc06420, 0x1c06e: 0x6d0c0820, 0x1c06f: 0x6ce0c020, - 0x1c070: 0x6c8f9420, 0x1c071: 0x6c5dd220, 0x1c072: 0x6d256420, 0x1c073: 0x6ca42820, - 0x1c074: 0x6c04f620, 0x1c075: 0x6d1fcc20, 0x1c076: 0x6cc2f020, 0x1c077: 0x6d3c1820, - 0x1c078: 0x6c89ba20, 0x1c079: 0x6c14f620, 0x1c07a: 0x6d0c9620, 0x1c07b: 0x6c214c20, - 0x1c07c: 0x6ca83020, 0x1c07d: 0x6d3e3e20, 0x1c07e: 0x6cec9020, 0x1c07f: 0x6cd1c020, - // Block 0x702, offset 0x1c080 - 0x1c080: 0x6c97ba20, 0x1c081: 0x6d1c7220, 0x1c082: 0x6c7ed620, 0x1c083: 0x6c7cfc20, - 0x1c084: 0x6c3d0020, 0x1c085: 0x6c669020, 0x1c086: 0x6d06da20, 0x1c087: 0x6c908a20, - 0x1c088: 0x6cef1220, 0x1c089: 0x6c413620, 0x1c08a: 0x6cfa6620, 0x1c08b: 0x6d1c7420, - 0x1c08c: 0x6cb31020, 0x1c08d: 0x6c6d1820, 0x1c08e: 0x6d0e8620, 0x1c08f: 0x6ce10420, - 0x1c090: 0x6d258220, 0x1c091: 0x6cdd7a20, 0x1c092: 0x6d258420, 0x1c093: 0x6c881420, - 0x1c094: 0x6d11b820, 0x1c095: 0x6c9c0620, 0x1c096: 0x6d3cde20, 0x1c097: 0x6c1a1c20, - 0x1c098: 0x6c78ba20, 0x1c099: 0x6cdf7a20, 0x1c09a: 0x6cde0a20, 0x1c09b: 0x6cebe420, - 0x1c09c: 0x6c8e3620, 0x1c09d: 0x6c465220, 0x1c09e: 0x6ccaae20, 0x1c09f: 0x6ca00620, - 0x1c0a0: 0x6d2cc420, 0x1c0a1: 0x6cd27220, 0x1c0a2: 0x6d17e820, 0x1c0a3: 0x6c952220, - 0x1c0a4: 0x6c969a20, 0x1c0a5: 0x6cb48e20, 0x1c0a6: 0x6cee9e20, 0x1c0a7: 0x6c863420, - 0x1c0a8: 0x6c111220, 0x1c0a9: 0x6cf50020, 0x1c0aa: 0x6cf64c20, 0x1c0ab: 0x6cf15a20, - 0x1c0ac: 0x6cbaba20, 0x1c0ad: 0x6d2ace20, 0x1c0ae: 0x6cd1ce20, 0x1c0af: 0x6cdace20, - 0x1c0b0: 0x6c004220, 0x1c0b1: 0x6cbd8420, 0x1c0b2: 0x6cd9b220, 0x1c0b3: 0x6d27b220, - 0x1c0b4: 0x6d054420, 0x1c0b5: 0x6d19ec20, 0x1c0b6: 0x6cc68a20, 0x1c0b7: 0x6c5d2e20, - 0x1c0b8: 0x6cdad020, 0x1c0b9: 0x6cddcc20, 0x1c0ba: 0x6ca6ac20, 0x1c0bb: 0x6cddf420, - 0x1c0bc: 0x6cd1d020, 0x1c0bd: 0x6cc81c20, 0x1c0be: 0x6c002a20, 0x1c0bf: 0x6cacba20, - // Block 0x703, offset 0x1c0c0 - 0x1c0c0: 0x6c1f5020, 0x1c0c1: 0x6c1e7e20, 0x1c0c2: 0x6cacdc20, 0x1c0c3: 0x6cf22c20, - 0x1c0c4: 0x6c123220, 0x1c0c5: 0x6c9ede20, 0x1c0c6: 0x6c440620, 0x1c0c7: 0x6c2cce20, - 0x1c0c8: 0x6c504420, 0x1c0c9: 0x6c5a7020, 0x1c0ca: 0x6cf8a020, 0x1c0cb: 0x6d3e4020, - 0x1c0cc: 0x6c2b7220, 0x1c0cd: 0x6d365a20, 0x1c0ce: 0x6d03f220, 0x1c0cf: 0x6c3f6c20, - 0x1c0d0: 0x6c6aea20, 0x1c0d1: 0x6c573e20, 0x1c0d2: 0x6c439a20, 0x1c0d3: 0x6d3f1a20, - 0x1c0d4: 0x6ce1d820, 0x1c0d5: 0x6ce2aa20, 0x1c0d6: 0x6cdbc820, 0x1c0d7: 0x6c09c820, - 0x1c0d8: 0x6c69a420, 0x1c0d9: 0x6c5be620, 0x1c0da: 0x6c4bce20, 0x1c0db: 0x6d1a7020, - 0x1c0dc: 0x6c42ca20, 0x1c0dd: 0x6c8f9620, 0x1c0de: 0x6d362c20, 0x1c0df: 0x6d0e8820, - 0x1c0e0: 0x6ccf5820, 0x1c0e1: 0x6c97be20, 0x1c0e2: 0x6d1c8020, 0x1c0e3: 0x6c215020, - 0x1c0e4: 0x6c93e620, 0x1c0e5: 0x6c807420, 0x1c0e6: 0x6c943e20, 0x1c0e7: 0x6d003420, - 0x1c0e8: 0x6c0d3c20, 0x1c0e9: 0x6cdfb020, 0x1c0ea: 0x6d236e20, 0x1c0eb: 0x6d052420, - 0x1c0ec: 0x6c56b820, 0x1c0ed: 0x6c09ca20, 0x1c0ee: 0x6c0c0c20, 0x1c0ef: 0x6d368e20, - 0x1c0f0: 0x6c67f220, 0x1c0f1: 0x6c79f620, 0x1c0f2: 0x6cd0be20, 0x1c0f3: 0x6cce0e20, - 0x1c0f4: 0x6c2b3a20, 0x1c0f5: 0x6c9d6820, 0x1c0f6: 0x6c025220, 0x1c0f7: 0x6c91cc20, - 0x1c0f8: 0x6c562820, 0x1c0f9: 0x6c54e820, 0x1c0fa: 0x6d1eac20, 0x1c0fb: 0x6c15cc20, - 0x1c0fc: 0x6c396420, 0x1c0fd: 0x6d1d9e20, 0x1c0fe: 0x6c4bd620, 0x1c0ff: 0x6c97c420, - // Block 0x704, offset 0x1c100 - 0x1c100: 0x6cbeae20, 0x1c101: 0x6d216e20, 0x1c102: 0x6cb1b820, 0x1c103: 0x6c623e20, - 0x1c104: 0x6d0b3420, 0x1c105: 0x6c176e20, 0x1c106: 0x6cb51220, 0x1c107: 0x6cf7fe20, - 0x1c108: 0x6c624020, 0x1c109: 0x6c928620, 0x1c10a: 0x6c90a620, 0x1c10b: 0x6c8f9c20, - 0x1c10c: 0x6c6ca020, 0x1c10d: 0x6c4c7a20, 0x1c10e: 0x6c23a620, 0x1c10f: 0x6c910e20, - 0x1c110: 0x6d349020, 0x1c111: 0x6c414c20, 0x1c112: 0x6cbb1a20, 0x1c113: 0x6c83e220, - 0x1c114: 0x6d0db420, 0x1c115: 0x6c127e20, 0x1c116: 0x6c69b020, 0x1c117: 0x6c232a20, - 0x1c118: 0x6c215620, 0x1c119: 0x6ce95620, 0x1c11a: 0x6cab4020, 0x1c11b: 0x6ce2a820, - 0x1c11c: 0x6d12b020, 0x1c11d: 0x6cf79220, 0x1c11e: 0x6c9d6a20, 0x1c11f: 0x6ce11220, - 0x1c120: 0x6ca12c20, 0x1c121: 0x6cce1020, 0x1c122: 0x6c4ee620, 0x1c123: 0x6c881620, - 0x1c124: 0x6c803220, 0x1c125: 0x6cebe820, 0x1c126: 0x6c1b4820, 0x1c127: 0x6c41aa20, - 0x1c128: 0x6c3cae20, 0x1c129: 0x6d081a20, 0x1c12a: 0x6d140420, 0x1c12b: 0x6c97ec20, - 0x1c12c: 0x6d3f5c20, 0x1c12d: 0x6c989620, 0x1c12e: 0x6c774020, 0x1c12f: 0x6c961620, - 0x1c130: 0x6cae7a20, 0x1c131: 0x6cd5f420, 0x1c132: 0x6d2f0620, 0x1c133: 0x6d2eca20, - 0x1c134: 0x6d3c4620, 0x1c135: 0x6d070c20, 0x1c136: 0x6c594020, 0x1c137: 0x6c5d9020, - 0x1c138: 0x6c66aa20, 0x1c139: 0x6d0c1c20, 0x1c13a: 0x6cd6d820, 0x1c13b: 0x6c89f820, - 0x1c13c: 0x6c24fa20, 0x1c13d: 0x6ce36420, 0x1c13e: 0x6d106020, 0x1c13f: 0x6c677220, - // Block 0x705, offset 0x1c140 - 0x1c140: 0x6c23a820, 0x1c141: 0x6d1d0620, 0x1c142: 0x6c537220, 0x1c143: 0x6d0a1c20, - 0x1c144: 0x6cd5f620, 0x1c145: 0x6c499a20, 0x1c146: 0x6d1c8620, 0x1c147: 0x6cfeee20, - 0x1c148: 0x6d404220, 0x1c149: 0x6c7de020, 0x1c14a: 0x6d070e20, 0x1c14b: 0x6c890c20, - 0x1c14c: 0x6d369020, 0x1c14d: 0x6cef2020, 0x1c14e: 0x6cb0ac20, 0x1c14f: 0x6d23c420, - 0x1c150: 0x6c69be20, 0x1c151: 0x6cb3c420, 0x1c152: 0x6c297820, 0x1c153: 0x6c5c1820, - 0x1c154: 0x6c6b1c20, 0x1c155: 0x6cf46820, 0x1c156: 0x6cabdc20, 0x1c157: 0x6c608620, - 0x1c158: 0x6cac4220, 0x1c159: 0x6cef2c20, 0x1c15a: 0x6cdb1820, 0x1c15b: 0x6cb9b820, - 0x1c15c: 0x6cb9ba20, 0x1c15d: 0x6cf69c20, 0x1c15e: 0x6c92cc20, 0x1c15f: 0x6cf8c620, - 0x1c160: 0x6d0aa220, 0x1c161: 0x6c340620, 0x1c162: 0x6c59da20, 0x1c163: 0x6c9fc620, - 0x1c164: 0x6cc90420, 0x1c165: 0x6cdb0020, 0x1c166: 0x6c81b820, 0x1c167: 0x6d318a20, - 0x1c168: 0x6c23aa20, 0x1c169: 0x6d182820, 0x1c16a: 0x6d30fe20, 0x1c16b: 0x6cec9820, - 0x1c16c: 0x6ccd9e20, 0x1c16d: 0x6ce00420, 0x1c16e: 0x6c177620, 0x1c16f: 0x6d0a3220, - 0x1c170: 0x6c7d0e20, 0x1c171: 0x6d126420, 0x1c172: 0x6ccee420, 0x1c173: 0x6ce8da20, - 0x1c174: 0x6d39bc20, 0x1c175: 0x6cc95820, 0x1c176: 0x6c522220, 0x1c177: 0x6c0a2a20, - 0x1c178: 0x6ccd0820, 0x1c179: 0x6c151c20, 0x1c17a: 0x6c151e20, 0x1c17b: 0x6cd56820, - 0x1c17c: 0x6ce77c20, 0x1c17d: 0x6cb41020, 0x1c17e: 0x6c8bce20, 0x1c17f: 0x6cef2e20, - // Block 0x706, offset 0x1c180 - 0x1c180: 0x6ccb6c20, 0x1c181: 0x6ccb4620, 0x1c182: 0x6c1a3820, 0x1c183: 0x6c6f3020, - 0x1c184: 0x6c1a3a20, 0x1c185: 0x6c57be20, 0x1c186: 0x6c686c20, 0x1c187: 0x6c81dc20, - 0x1c188: 0x6c183420, 0x1c189: 0x6c41e020, 0x1c18a: 0x6c259c20, 0x1c18b: 0x6c53cc20, - 0x1c18c: 0x6cd81820, 0x1c18d: 0x6cd60220, 0x1c18e: 0x6cae8420, 0x1c18f: 0x6c4e2a20, - 0x1c190: 0x6d27c020, 0x1c191: 0x6c8f3c20, 0x1c192: 0x6c53ce20, 0x1c193: 0x6c3ed820, - 0x1c194: 0x6c505a20, 0x1c195: 0x6c513e20, 0x1c196: 0x6cfb8020, 0x1c197: 0x6c66b620, - 0x1c198: 0x6ccd0a20, 0x1c199: 0x6cf8c820, 0x1c19a: 0x6d24c220, 0x1c19b: 0x6c934c20, - 0x1c19c: 0x6c7fac20, 0x1c19d: 0x6ca96020, 0x1c19e: 0x6d21a220, 0x1c19f: 0x6c8c3420, - 0x1c1a0: 0x6c9e4020, 0x1c1a1: 0x6d2a5020, 0x1c1a2: 0x6c290420, 0x1c1a3: 0x6c595420, - 0x1c1a4: 0x6d2afc20, 0x1c1a5: 0x6d021620, 0x1c1a6: 0x6d23ea20, 0x1c1a7: 0x6c853020, - 0x1c1a8: 0x6cd3da20, 0x1c1a9: 0x6d091c20, 0x1c1aa: 0x6c8d5820, 0x1c1ab: 0x6ced9420, - 0x1c1ac: 0x6d3e8a20, 0x1c1ad: 0x6d1db420, 0x1c1ae: 0x6c5c3420, 0x1c1af: 0x6c120420, - 0x1c1b0: 0x6c891620, 0x1c1b1: 0x6c2d8420, 0x1c1b2: 0x6d134020, 0x1c1b3: 0x6c02ec20, - 0x1c1b4: 0x6c589820, 0x1c1b5: 0x6d319220, 0x1c1b6: 0x6c152420, 0x1c1b7: 0x6c980420, - 0x1c1b8: 0x6c284420, 0x1c1b9: 0x6c28b220, 0x1c1ba: 0x6d189e20, 0x1c1bb: 0x6cdc5c20, - 0x1c1bc: 0x6cb0ba20, 0x1c1bd: 0x6c728e20, 0x1c1be: 0x6cde8e20, 0x1c1bf: 0x6cbda420, - // Block 0x707, offset 0x1c1c0 - 0x1c1c0: 0x6c5f3420, 0x1c1c1: 0x6d3d9a20, 0x1c1c2: 0x6c884c20, 0x1c1c3: 0x6ca9c620, - 0x1c1c4: 0x6c4c3020, 0x1c1c5: 0x6c6d4e20, 0x1c1c6: 0x6c3b8c20, 0x1c1c7: 0x6ccb5a20, - 0x1c1c8: 0x6c608820, 0x1c1c9: 0x6cdbda20, 0x1c1ca: 0x6c5c3620, 0x1c1cb: 0x6c1eea20, - 0x1c1cc: 0x6cdeac20, 0x1c1cd: 0x6cd93620, 0x1c1ce: 0x6c2f7e20, 0x1c1cf: 0x6ccba620, - 0x1c1d0: 0x6d3a7e20, 0x1c1d1: 0x6c7f5620, 0x1c1d2: 0x6c0d5220, 0x1c1d3: 0x6c884e20, - 0x1c1d4: 0x6c9d0220, 0x1c1d5: 0x6cd20220, 0x1c1d6: 0x6cd60c20, 0x1c1d7: 0x6c9d8620, - 0x1c1d8: 0x6ca95a20, 0x1c1d9: 0x6d1ca220, 0x1c1da: 0x6d1ca420, 0x1c1db: 0x6c9b4c20, - 0x1c1dc: 0x6c6d5e20, 0x1c1dd: 0x6cb65e20, 0x1c1de: 0x6c0a7020, 0x1c1df: 0x6c629820, - 0x1c1e0: 0x6c4ff420, 0x1c1e1: 0x6cc7d220, 0x1c1e2: 0x6c256a20, 0x1c1e3: 0x6cf31c20, - 0x1c1e4: 0x6ce1f020, 0x1c1e5: 0x6d1b0e20, 0x1c1e6: 0x6d1b1020, 0x1c1e7: 0x6c336820, - 0x1c1e8: 0x6c226c20, 0x1c1e9: 0x6c5df820, 0x1c1ea: 0x6c6eb220, 0x1c1eb: 0x6c807c20, - 0x1c1ec: 0x6c75f020, 0x1c1ed: 0x6c007820, 0x1c1ee: 0x6cb45820, 0x1c1ef: 0x6d3db020, - 0x1c1f0: 0x6cef4020, 0x1c1f1: 0x6c0d5420, 0x1c1f2: 0x6c47d620, 0x1c1f3: 0x6cb9d620, - 0x1c1f4: 0x6d1ca620, 0x1c1f5: 0x6c0d9c20, 0x1c1f6: 0x6c7e1c20, 0x1c1f7: 0x6c3ade20, - 0x1c1f8: 0x6c125e20, 0x1c1f9: 0x6c99c820, 0x1c1fa: 0x6c66f020, 0x1c1fb: 0x6cf02620, - 0x1c1fc: 0x6c963420, 0x1c1fd: 0x6d29a420, 0x1c1fe: 0x6c940e20, 0x1c1ff: 0x6c869e20, - // Block 0x708, offset 0x1c200 - 0x1c200: 0x6d1ebe20, 0x1c201: 0x6d106e20, 0x1c202: 0x6c91ea20, 0x1c203: 0x6cd8f420, - 0x1c204: 0x6d36e220, 0x1c205: 0x6d1cb220, 0x1c206: 0x6c31cc20, 0x1c207: 0x6cee3c20, - 0x1c208: 0x6c5afc20, 0x1c209: 0x6d024020, 0x1c20a: 0x6cac8020, 0x1c20b: 0x6cd08420, - 0x1c20c: 0x6c0c3820, 0x1c20d: 0x6c153820, 0x1c20e: 0x6ca17220, 0x1c20f: 0x6c8eba20, - 0x1c210: 0x6c651620, 0x1c211: 0x6cb4ba20, 0x1c212: 0x6ccb7420, 0x1c213: 0x6c1a4e20, - 0x1c214: 0x6c47e220, 0x1c215: 0x6c0d6820, 0x1c216: 0x6c5e2820, 0x1c217: 0x6cfd3020, - 0x1c218: 0x6c917220, 0x1c219: 0x6cbe2620, 0x1c21a: 0x6c4f2c20, 0x1c21b: 0x6d1cba20, - 0x1c21c: 0x6cc6d820, 0x1c21d: 0x6c86f820, 0x1c21e: 0x6c6eb420, 0x1c21f: 0x6cff3a20, - 0x1c220: 0x6d1cbc20, 0x1c221: 0x6cdc0e20, 0x1c222: 0x6cf03c20, 0x1c223: 0x6d025620, - 0x1c224: 0x6c57fc20, 0x1c225: 0x6d097820, 0x1c226: 0x6d39d420, 0x1c227: 0x6c8fc620, - 0x1c228: 0x6c7f6a20, 0x1c229: 0x6c337820, 0x1c22a: 0x6c38de20, 0x1c22b: 0x6c55ee20, - 0x1c22c: 0x6c7f6c20, 0x1c22d: 0x6cd63420, 0x1c22e: 0x6c8e3220, 0x1c22f: 0x6d1cbe20, - 0x1c230: 0x6c9ca020, 0x1c231: 0x6c62c820, 0x1c232: 0x6c892c20, 0x1c233: 0x6c66fe20, - 0x1c234: 0x6d1cc620, 0x1c235: 0x6c3c0220, 0x1c236: 0x6c8c0020, 0x1c237: 0x6d192c20, - 0x1c238: 0x6c653220, 0x1c239: 0x6d270a20, 0x1c23a: 0x6c155620, 0x1c23b: 0x6c27a620, - 0x1c23c: 0x6cc4e620, 0x1c23d: 0x6c661820, 0x1c23e: 0x6c7fe820, 0x1c23f: 0x6c38e020, - // Block 0x709, offset 0x1c240 - 0x1c240: 0x6cd6f420, 0x1c241: 0x6d252620, 0x1c242: 0x6d3dd420, 0x1c243: 0x6c3c8020, - 0x1c244: 0x6ccf8c20, 0x1c245: 0x6c830220, 0x1c246: 0x6c7fea20, 0x1c247: 0x6c23c620, - 0x1c248: 0x6cc20020, 0x1c249: 0x6d1dda20, 0x1c24a: 0x6cb9e020, 0x1c24b: 0x6c383620, - 0x1c24c: 0x6c49b420, 0x1c24d: 0x6cc41a20, 0x1c24e: 0x6d0f2220, 0x1c24f: 0x6c507c20, - 0x1c250: 0x6d1d7020, 0x1c251: 0x6cc95c20, 0x1c252: 0x6d29ba20, 0x1c253: 0x6c946020, - 0x1c254: 0x6d0f0420, 0x1c255: 0x6c84a820, 0x1c256: 0x6c9d0e20, 0x1c257: 0x6ccde820, - 0x1c258: 0x6cdfc620, 0x1c259: 0x6c293e20, 0x1c25a: 0x6c697620, 0x1c25b: 0x6c161820, - 0x1c25c: 0x6d1d7220, 0x1c25d: 0x6c508420, 0x1c25e: 0x6c03dc20, 0x1c25f: 0x6d3a4220, - 0x1c260: 0x6c805e20, 0x1c261: 0x6c800820, 0x1c262: 0x6ca47820, 0x1c263: 0x6cecac20, - 0x1c264: 0x6c947020, 0x1c265: 0x6d0a5e20, 0x1c266: 0x6cfc6a20, 0x1c267: 0x6d0f2820, - 0x1c268: 0x6c424820, 0x1c269: 0x6d0f3220, 0x1c26a: 0x6d24ac20, 0x1c26b: 0x6c5d8420, - 0x1c26c: 0x6c0be820, 0x1c26d: 0x6c9eca20, 0x1c26e: 0x6c49d220, 0x1c26f: 0x6c2a9a20, - 0x1c270: 0x6c5a8620, 0x1c271: 0x6cfe7a20, 0x1c272: 0x6cfe7c20, 0x1c273: 0x6c5caa20, - 0x1c274: 0x6c529620, 0x1c275: 0x6c8c9c20, 0x1c276: 0x6d2a6620, 0x1c277: 0x6d3bbe20, - 0x1c278: 0x6c6faa20, 0x1c279: 0x6d2ca820, 0x1c27a: 0x6d015820, 0x1c27b: 0x6c1be420, - 0x1c27c: 0x6d3d2420, 0x1c27d: 0x6d28f220, 0x1c27e: 0x6d28f420, 0x1c27f: 0x6c11ec20, - // Block 0x70a, offset 0x1c280 - 0x1c280: 0x6d0f8020, 0x1c281: 0x6cb74820, 0x1c282: 0x6d379c20, 0x1c283: 0x6c3b5e20, - 0x1c284: 0x6ca98220, 0x1c285: 0x6c6efa20, 0x1c286: 0x6cf18220, 0x1c287: 0x6cb36820, - 0x1c288: 0x6d16c420, 0x1c289: 0x6c913c20, 0x1c28a: 0x6c20b620, 0x1c28b: 0x6caf4020, - 0x1c28c: 0x6c767e20, 0x1c28d: 0x6caca420, 0x1c28e: 0x6d0c6a20, 0x1c28f: 0x6c768020, - 0x1c290: 0x6cad2620, 0x1c291: 0x6ca26e20, 0x1c292: 0x6c179020, 0x1c293: 0x6c8a9220, - 0x1c294: 0x6c4b3420, 0x1c295: 0x6c778220, 0x1c296: 0x6c33dc20, 0x1c297: 0x6c49d620, - 0x1c298: 0x6d02b820, 0x1c299: 0x6d358c20, 0x1c29a: 0x6c4a2e20, 0x1c29b: 0x6c49d820, - 0x1c29c: 0x6cef9420, 0x1c29d: 0x6cbb5420, 0x1c29e: 0x6c0be420, 0x1c29f: 0x6c268420, - 0x1c2a0: 0x6cf99820, 0x1c2a1: 0x6d329a20, 0x1c2a2: 0x6d39fc20, 0x1c2a3: 0x6c785e20, - 0x1c2a4: 0x6d2fa220, 0x1c2a5: 0x6c3e1420, 0x1c2a6: 0x6c036e20, 0x1c2a7: 0x6d017420, - 0x1c2a8: 0x6c34dc20, 0x1c2a9: 0x6c8e1e20, 0x1c2aa: 0x6d3cf220, 0x1c2ab: 0x6d087a20, - 0x1c2ac: 0x6c721420, 0x1c2ad: 0x6ce08e20, 0x1c2ae: 0x6cad8420, 0x1c2af: 0x6c6f0220, - 0x1c2b0: 0x6cad5020, 0x1c2b1: 0x6cdf1e20, 0x1c2b2: 0x6cdf2020, 0x1c2b3: 0x6c0dd220, - 0x1c2b4: 0x6d100c20, 0x1c2b5: 0x6ce6f020, 0x1c2b6: 0x6c4d9420, 0x1c2b7: 0x6d3ac220, - 0x1c2b8: 0x6d2cb820, 0x1c2b9: 0x6c2d0a20, 0x1c2ba: 0x6cf07a20, 0x1c2bb: 0x6cd25220, - 0x1c2bc: 0x6c88e620, 0x1c2bd: 0x6c1bfc20, 0x1c2be: 0x6c5a4a20, 0x1c2bf: 0x6d397820, - // Block 0x70b, offset 0x1c2c0 - 0x1c2c0: 0x6c54ae20, 0x1c2c1: 0x6cd77020, 0x1c2c2: 0x6c806e20, 0x1c2c3: 0x6ce63620, - 0x1c2c4: 0x6c68de20, 0x1c2c5: 0x6d06a820, 0x1c2c6: 0x6c525e20, 0x1c2c7: 0x6cc35420, - 0x1c2c8: 0x6c8af020, 0x1c2c9: 0x6c590820, 0x1c2ca: 0x6d0fa020, 0x1c2cb: 0x6d04c420, - 0x1c2cc: 0x6d04c620, 0x1c2cd: 0x6cfbfe20, 0x1c2ce: 0x6d1a3020, 0x1c2cf: 0x6cf36020, - 0x1c2d0: 0x6d386620, 0x1c2d1: 0x6d10e220, 0x1c2d2: 0x6cd35020, 0x1c2d3: 0x6cee6e20, - 0x1c2d4: 0x6ce73620, 0x1c2d5: 0x6c9ece20, 0x1c2d6: 0x6d28fe20, 0x1c2d7: 0x6c768420, - 0x1c2d8: 0x6c529e20, 0x1c2d9: 0x6c81d020, 0x1c2da: 0x6cf9a820, 0x1c2db: 0x6d3a0420, - 0x1c2dc: 0x6d084a20, 0x1c2dd: 0x6d32a020, 0x1c2de: 0x6cb37820, 0x1c2df: 0x6d0be420, - 0x1c2e0: 0x6c5b2e20, 0x1c2e1: 0x6c49e620, 0x1c2e2: 0x6c180e20, 0x1c2e3: 0x6c5aa420, - 0x1c2e4: 0x6c77a820, 0x1c2e5: 0x6c194c20, 0x1c2e6: 0x6c389020, 0x1c2e7: 0x6cce6220, - 0x1c2e8: 0x6d12e220, 0x1c2e9: 0x6c5bac20, 0x1c2eb: 0x6ce19a20, - 0x1c2ec: 0x6c6cf220, 0x1c2ed: 0x6cc55020, 0x1c2ee: 0x6c8b9620, 0x1c2ef: 0x6cf5f220, - 0x1c2f0: 0x6c3e5420, 0x1c2f1: 0x6c6f0a20, 0x1c2f2: 0x6d019420, 0x1c2f3: 0x6cb48a20, - 0x1c2f4: 0x6ce64220, 0x1c2f5: 0x6d3d3c20, 0x1c2f6: 0x6ce6c020, 0x1c2f7: 0x6cecd420, - 0x1c2f8: 0x6c4d4020, 0x1c2f9: 0x6cae6a20, 0x1c2fa: 0x6c80fc20, 0x1c2fb: 0x6d0e5220, - 0x1c2fc: 0x6d06bc20, 0x1c2fd: 0x6c3c3e20, 0x1c2fe: 0x6c1c1020, 0x1c2ff: 0x6cc66820, - // Block 0x70c, offset 0x1c300 - 0x1c300: 0x6c554620, 0x1c301: 0x6cf5f420, 0x1c302: 0x6cd4ce20, 0x1c303: 0x6c51c420, - 0x1c304: 0x6d099620, 0x1c305: 0x6c7a9220, 0x1c306: 0x6c72e820, 0x1c307: 0x6cfeb620, - 0x1c308: 0x6cf5f620, 0x1c309: 0x6d0bfa20, 0x1c30a: 0x6c4eb220, 0x1c30b: 0x6d3c3c20, - 0x1c30c: 0x6c75b020, 0x1c30d: 0x6c2c4220, 0x1c30e: 0x6d019620, 0x1c30f: 0x6c601c20, - 0x1c310: 0x6cf4e020, 0x1c311: 0x6d0bfc20, 0x1c312: 0x6c942c20, 0x1c313: 0x6c4e0620, - 0x1c314: 0x6d0e6220, 0x1c315: 0x6c591220, 0x1c316: 0x6c9aee20, 0x1c317: 0x6c711620, - 0x1c318: 0x6c2a1020, 0x1c319: 0x6c072420, 0x1c31a: 0x6c3b7a20, 0x1c31b: 0x6c8c5220, - 0x1c31c: 0x6c7d6220, 0x1c31d: 0x6c5d2820, 0x1c31e: 0x6cea2220, 0x1c31f: 0x6cf61620, - 0x1c320: 0x6c253e20, 0x1c321: 0x6cf3c820, 0x1c322: 0x6c52a820, 0x1c323: 0x6c179c20, - 0x1c324: 0x6c3f6220, 0x1c325: 0x6cf2f420, 0x1c326: 0x6c684820, 0x1c327: 0x6c231820, - 0x1c328: 0x6c3ce220, 0x1c329: 0x6cb2a620, 0x1c32a: 0x6cbf2620, 0x1c32b: 0x6cc91e20, - 0x1c32c: 0x6cf61820, 0x1c32d: 0x6cbf2820, 0x1c32e: 0x6d033420, 0x1c32f: 0x6c174420, - 0x1c330: 0x6d0e7420, 0x1c331: 0x6d0e7620, 0x1c332: 0x6d17aa20, 0x1c333: 0x6c744e20, - 0x1c334: 0x6d234620, 0x1c335: 0x6c42a820, 0x1c336: 0x6cc47820, 0x1c337: 0x6caff020, - 0x1c338: 0x6d049420, 0x1c339: 0x6cee6420, 0x1c33a: 0x6cd10420, 0x1c33b: 0x6c171420, - 0x1c33c: 0x6cce6e20, 0x1c33d: 0x6d048420, 0x1c33e: 0x6ca72420, 0x1c33f: 0x6c44d020, - // Block 0x70d, offset 0x1c340 - 0x1c340: 0x6cf13e20, 0x1c341: 0x6c18d420, 0x1c342: 0x6c51ce20, 0x1c343: 0x6c7cd220, - 0x1c344: 0x6d37fe20, 0x1c345: 0x6c32cc20, 0x1c346: 0x6cf96a20, 0x1c347: 0x6c5ac620, - 0x1c348: 0x6c3ce420, 0x1c349: 0x6c890620, 0x1c34a: 0x6d07a820, 0x1c34b: 0x6d037e20, - 0x1c34c: 0x6c59d220, 0x1c34d: 0x6c690a20, 0x1c34e: 0x6c64b620, 0x1c34f: 0x6c09cc20, - 0x1c350: 0x6d1bbc20, 0x1c351: 0x6d3a7020, 0x1c352: 0x6cefde20, 0x1c353: 0x6ce93620, - 0x1c354: 0x6ccd4a20, 0x1c355: 0x6cf67020, 0x1c356: 0x6caa9620, 0x1c357: 0x6caa9820, - 0x1c358: 0x6c150220, 0x1c359: 0x6d0c1220, 0x1c35a: 0x6c6f1020, 0x1c35b: 0x6c6f2420, - 0x1c35c: 0x6d237020, 0x1c35d: 0x6c9a9c20, 0x1c35e: 0x6ccbfc20, 0x1c35f: 0x6cf0a620, - 0x1c360: 0x6d2c3820, 0x1c361: 0x6d033620, 0x1c362: 0x6cbf3e20, 0x1c363: 0x6cc75020, - 0x1c364: 0x6c9a0c20, 0x1c365: 0x6c593620, 0x1c366: 0x6d06f420, 0x1c367: 0x6d2fbe20, - 0x1c368: 0x6ceea020, 0x1c369: 0x6c38a620, 0x1c36a: 0x6cc07620, 0x1c36b: 0x6cdc4a20, - 0x1c36c: 0x6d0fc820, 0x1c36d: 0x6c8b1620, 0x1c36e: 0x6d3a6e20, 0x1c36f: 0x6c6a2220, - 0x1c370: 0x6c434e20, 0x1c371: 0x6c485c20, 0x1c372: 0x6c05b420, 0x1c373: 0x6c557020, - 0x1c374: 0x6d275820, 0x1c375: 0x6cf96c20, 0x1c376: 0x6cd41a20, 0x1c377: 0x6c89ce20, - 0x1c378: 0x6c0afa20, 0x1c379: 0x6c46c420, 0x1c37a: 0x6cea0020, 0x1c37b: 0x6ce11420, - 0x1c37c: 0x6c17a020, 0x1c37d: 0x6cccfc20, 0x1c37e: 0x6c371a20, 0x1c37f: 0x6c0f2a20, - // Block 0x70e, offset 0x1c380 - 0x1c380: 0x6c5a5a20, 0x1c381: 0x6d00ce20, 0x1c382: 0x6cf8ae20, 0x1c383: 0x6cf50e20, - 0x1c384: 0x6cf67220, 0x1c385: 0x6d284220, 0x1c386: 0x6c515a20, 0x1c387: 0x6c51d220, - 0x1c388: 0x6cf67420, 0x1c389: 0x6d27bc20, 0x1c38a: 0x6d048020, 0x1c38b: 0x6ca37e20, - 0x1c38c: 0x6ccd5020, 0x1c38d: 0x6cbf8e20, 0x1c38e: 0x6d121620, 0x1c38f: 0x6d099e20, - 0x1c390: 0x6c9d6c20, 0x1c391: 0x6c882420, 0x1c392: 0x6d1c8820, 0x1c393: 0x6cf45a20, - 0x1c394: 0x6cc69a20, 0x1c395: 0x6c459e20, 0x1c396: 0x6d0f3820, 0x1c397: 0x6cbb5820, - 0x1c398: 0x6c8e3820, 0x1c399: 0x6cf67620, 0x1c39a: 0x6c09f820, 0x1c39b: 0x6c0c1820, - 0x1c39c: 0x6c233e20, 0x1c39d: 0x6c92a620, 0x1c39e: 0x6c64d620, 0x1c39f: 0x6cd53420, - 0x1c3a0: 0x6d185620, 0x1c3a1: 0x6c90b220, 0x1c3a2: 0x6caeb620, 0x1c3a3: 0x6cdbd420, - 0x1c3a4: 0x6d185820, 0x1c3a5: 0x6ce28e20, 0x1c3a6: 0x6c749420, 0x1c3a7: 0x6d3fb220, - 0x1c3a8: 0x6d284620, 0x1c3a9: 0x6c56c020, 0x1c3aa: 0x6d154820, 0x1c3ab: 0x6d36b420, - 0x1c3ac: 0x6c026220, 0x1c3ad: 0x6cf0bc20, 0x1c3ae: 0x6c8f1420, 0x1c3af: 0x6c4efa20, - 0x1c3b0: 0x6cab4c20, 0x1c3b1: 0x6cc55420, 0x1c3b2: 0x6c6f2c20, 0x1c3b3: 0x6c97fc20, - 0x1c3b4: 0x6c7de220, 0x1c3b5: 0x6cce1820, 0x1c3b6: 0x6c24b220, 0x1c3b7: 0x6d2b9020, - 0x1c3b8: 0x6c64f620, 0x1c3b9: 0x6cf6c620, 0x1c3ba: 0x6cf6c820, 0x1c3bb: 0x6cf6ca20, - 0x1c3bc: 0x6d185a20, 0x1c3bd: 0x6d000c20, 0x1c3be: 0x6c1c6e20, 0x1c3bf: 0x6c59ea20, - // Block 0x70f, offset 0x1c3c0 - 0x1c3c0: 0x6c15e420, 0x1c3c1: 0x6d131820, 0x1c3c2: 0x6ce01020, 0x1c3c3: 0x6cc48820, - 0x1c3c4: 0x6d0ec020, 0x1c3c5: 0x6cfb9420, 0x1c3c6: 0x6cbbae20, 0x1c3c7: 0x6c75e820, - 0x1c3c8: 0x6c2aaa20, 0x1c3c9: 0x6c340a20, 0x1c3ca: 0x6cd01820, 0x1c3cb: 0x6c687a20, - 0x1c3cc: 0x6c3b9620, 0x1c3cd: 0x6cd82a20, 0x1c3ce: 0x6c8a1a20, 0x1c3cf: 0x6d23ee20, - 0x1c3d0: 0x6c8bde20, 0x1c3d1: 0x6ce78a20, 0x1c3d2: 0x6cce8420, 0x1c3d3: 0x6c3b4620, - 0x1c3d4: 0x6c38bc20, 0x1c3d5: 0x6d0ec220, 0x1c3d6: 0x6d0a3e20, 0x1c3d7: 0x6c807620, - 0x1c3d8: 0x6c9a6a20, 0x1c3d9: 0x6ce1a220, 0x1c3da: 0x6d18a220, 0x1c3db: 0x6c6e3020, - 0x1c3dc: 0x6c9afc20, 0x1c3dd: 0x6c6ecc20, 0x1c3de: 0x6c694420, 0x1c3df: 0x6d1c9a20, - 0x1c3e0: 0x6d23f020, 0x1c3e1: 0x6d18ca20, 0x1c3e2: 0x6d091e20, 0x1c3e3: 0x6c7fc020, - 0x1c3e4: 0x6cdf8020, 0x1c3e5: 0x6d2a9220, 0x1c3e6: 0x6c120c20, 0x1c3e7: 0x6cdc7420, - 0x1c3e8: 0x6cf6ea20, 0x1c3e9: 0x6cc40220, 0x1c3ea: 0x6c235420, 0x1c3eb: 0x6c886220, - 0x1c3ec: 0x6c5b6e20, 0x1c3ed: 0x6d3a2c20, 0x1c3ee: 0x6d022c20, 0x1c3ef: 0x6c8d6e20, - 0x1c3f0: 0x6ceec020, 0x1c3f1: 0x6d18cc20, 0x1c3f2: 0x6d00fc20, 0x1c3f3: 0x6d2fe220, - 0x1c3f4: 0x6c5c5220, 0x1c3f5: 0x6c270020, 0x1c3f6: 0x6ca9ce20, 0x1c3f7: 0x6c7fc220, - 0x1c3f8: 0x6cc7de20, 0x1c3f9: 0x6cfc3a20, 0x1c3fa: 0x6c77b620, 0x1c3fb: 0x6d09ba20, - 0x1c3fc: 0x6c6d6620, 0x1c3fd: 0x6c1df820, 0x1c3fe: 0x6c2a3a20, 0x1c3ff: 0x6d123020, - // Block 0x710, offset 0x1c400 - 0x1c400: 0x6c51fc20, 0x1c401: 0x6c807e20, 0x1c402: 0x6c0c4220, 0x1c403: 0x6cc6ce20, - 0x1c404: 0x6c86d020, 0x1c405: 0x6ca18220, 0x1c406: 0x6c067820, 0x1c407: 0x6cc93220, - 0x1c408: 0x6c941420, 0x1c409: 0x6c7ea620, 0x1c40a: 0x6c023620, 0x1c40b: 0x6d0ab020, - 0x1c40c: 0x6c7c1020, 0x1c40d: 0x6cd7aa20, 0x1c40e: 0x6c8ab420, 0x1c40f: 0x6c872020, - 0x1c410: 0x6c918420, 0x1c411: 0x6c74ea20, 0x1c412: 0x6c8a8620, 0x1c413: 0x6d0efa20, - 0x1c414: 0x6cf73a20, 0x1c415: 0x6d025a20, 0x1c416: 0x6c8fde20, 0x1c417: 0x6d136e20, - 0x1c418: 0x6c121a20, 0x1c419: 0x6cc50c20, 0x1c41a: 0x6d271420, 0x1c41b: 0x6c808820, - 0x1c41c: 0x6c23ce20, 0x1c41d: 0x6c750c20, 0x1c41e: 0x6c1d3220, 0x1c41f: 0x6c49b620, - 0x1c420: 0x6c72d620, 0x1c421: 0x6c185620, 0x1c422: 0x6c9cba20, 0x1c423: 0x6ce19220, - 0x1c424: 0x6c809220, 0x1c425: 0x6d3a4820, 0x1c426: 0x6c809a20, 0x1c427: 0x6c8dda20, - 0x1c428: 0x6c24c420, 0x1c429: 0x6d24b220, 0x1c42a: 0x6d2f8020, 0x1c42b: 0x6d2ff420, - 0x1c42c: 0x6cabd220, 0x1c42d: 0x6d328c20, 0x1c42e: 0x6cad5220, 0x1c42f: 0x6c195820, - 0x1c430: 0x6d254620, 0x1c431: 0x6c009620, 0x1c432: 0x6cf09c20, 0x1c433: 0x6c4f4420, - 0x1c434: 0x6c749620, 0x1c435: 0x6c74c820, 0x1c436: 0x6c3fa020, 0x1c437: 0x6d13b020, - 0x1c438: 0x6c03aa20, 0x1c439: 0x6c2e5620, 0x1c43a: 0x6d13b420, 0x1c43b: 0x6d10c620, - 0x1c43c: 0x6d411020, 0x1c43d: 0x6cd6d020, 0x1c43e: 0x6c379e20, 0x1c43f: 0x6cac5020, - // Block 0x711, offset 0x1c440 - 0x1c440: 0x6c206e20, 0x1c441: 0x6c77e220, 0x1c442: 0x6d29d420, 0x1c443: 0x6c2ec020, - 0x1c444: 0x6cbace20, 0x1c445: 0x6d1dfc20, 0x1c446: 0x6cbb2a20, 0x1c447: 0x6cb14420, - 0x1c448: 0x6c04be20, 0x1c449: 0x6cacac20, 0x1c44a: 0x6c175a20, 0x1c44b: 0x6c64a020, - 0x1c44c: 0x6cac0020, 0x1c44d: 0x6c31a020, 0x1c44e: 0x6c205420, 0x1c44f: 0x6d215a20, - 0x1c450: 0x6d2c3a20, 0x1c451: 0x6c0afc20, 0x1c452: 0x6c2ec220, 0x1c453: 0x6c055420, - 0x1c454: 0x6c0f2c20, 0x1c455: 0x6c205a20, 0x1c456: 0x6d1fea20, 0x1c457: 0x6d206e20, - 0x1c458: 0x6c31d620, 0x1c459: 0x6d0b0820, 0x1c45a: 0x6c197220, 0x1c45b: 0x6ca96620, - 0x1c45c: 0x6ca9ac20, 0x1c45d: 0x6cb24020, 0x1c45e: 0x6c6f4c20, 0x1c45f: 0x6ca1be20, - 0x1c460: 0x6cdde020, 0x1c461: 0x6ca22420, 0x1c462: 0x6c814220, 0x1c463: 0x6cc5c420, - 0x1c464: 0x6c981a20, 0x1c465: 0x6c398a20, 0x1c466: 0x6c98ca20, 0x1c467: 0x6ca27020, - 0x1c468: 0x6c426020, 0x1c469: 0x6cf4b820, 0x1c46a: 0x6d0e4020, 0x1c46b: 0x6c437420, - 0x1c46c: 0x6c06ec20, 0x1c46d: 0x6cd8a020, 0x1c46e: 0x6c665e20, 0x1c46f: 0x6c476620, - 0x1c470: 0x6d202c20, 0x1c471: 0x6c437e20, 0x1c472: 0x6cd0f220, 0x1c473: 0x6ca23020, - 0x1c474: 0x6c2be620, 0x1c475: 0x6cb8be20, 0x1c476: 0x6cc37020, 0x1c477: 0x6cc2cc20, - 0x1c478: 0x6d3f4020, 0x1c479: 0x6ce27020, 0x1c47a: 0x6cf5c420, 0x1c47b: 0x6c985620, - 0x1c47c: 0x6c793820, 0x1c47d: 0x6cb8d820, 0x1c47e: 0x6cf44620, 0x1c47f: 0x6c481220, - // Block 0x712, offset 0x1c480 - 0x1c480: 0x6cf61a20, 0x1c481: 0x6c83c220, 0x1c482: 0x6c83da20, 0x1c483: 0x6cb3f420, - 0x1c484: 0x6c5ed420, 0x1c485: 0x6c428220, 0x1c486: 0x6d346420, 0x1c487: 0x6c078820, - 0x1c488: 0x6cc2f220, 0x1c489: 0x6c214e20, 0x1c48a: 0x6c31a220, 0x1c48b: 0x6c724a20, - 0x1c48c: 0x6c636e20, 0x1c48d: 0x6c64a220, 0x1c48e: 0x6c3c5620, 0x1c48f: 0x6cb0f820, - 0x1c490: 0x6c780820, 0x1c491: 0x6c713020, 0x1c492: 0x6c77c220, 0x1c493: 0x6c1e9c20, - 0x1c494: 0x6cf8b220, 0x1c495: 0x6c074020, 0x1c496: 0x6c961820, 0x1c497: 0x6c6bf220, - 0x1c498: 0x6c967220, 0x1c499: 0x6cca0820, 0x1c49a: 0x6cf0be20, 0x1c49b: 0x6c98fc20, - 0x1c49c: 0x6c33b020, 0x1c49d: 0x6ce78c20, 0x1c49e: 0x6cbc7620, 0x1c49f: 0x6c67fc20, - 0x1c4a0: 0x6cf94820, 0x1c4a1: 0x6c86d220, 0x1c4a2: 0x6c31d820, 0x1c4a3: 0x6c8b5e20, - 0x1c4a4: 0x6cac1020, 0x1c4a5: 0x6cb16e20, 0x1c4a6: 0x6c0fa620, 0x1c4a7: 0x6cf73c20, - 0x1c4a8: 0x6c1d8620, 0x1c4a9: 0x6cef6820, 0x1c4aa: 0x6c7cc220, 0x1c4ab: 0x6c1d8a20, - 0x1c4ac: 0x6cc34c20, 0x1c4ad: 0x6cc38020, 0x1c4ae: 0x6c035e20, 0x1c4af: 0x6c391620, - 0x1c4b0: 0x6cbff420, 0x1c4b1: 0x6c611c20, 0x1c4b2: 0x6c110420, 0x1c4b3: 0x6d3d2220, - 0x1c4b4: 0x6c019c20, 0x1c4b5: 0x6c436820, 0x1c4b6: 0x6d3c3020, 0x1c4b7: 0x6c4a0620, - 0x1c4b8: 0x6c96b020, 0x1c4b9: 0x6d1eee20, 0x1c4ba: 0x6c778020, 0x1c4bb: 0x6c0eae20, - 0x1c4bc: 0x6c544a20, 0x1c4bd: 0x6d0b7620, 0x1c4be: 0x6d1a2820, 0x1c4bf: 0x6c582620, - // Block 0x713, offset 0x1c4c0 - 0x1c4c0: 0x6d3c3420, 0x1c4c1: 0x6d27da20, 0x1c4c2: 0x6c7bba20, 0x1c4c3: 0x6ca97a20, - 0x1c4c4: 0x6c2b5420, 0x1c4c5: 0x6cbe2e20, 0x1c4c6: 0x6d381420, 0x1c4c7: 0x6ca26a20, - 0x1c4c8: 0x6c06d820, 0x1c4c9: 0x6caf4220, 0x1c4ca: 0x6c70fc20, 0x1c4cb: 0x6d147420, - 0x1c4cc: 0x6cd0e420, 0x1c4cd: 0x6cad4e20, 0x1c4ce: 0x6cf98e20, 0x1c4cf: 0x6ceaf220, - 0x1c4d0: 0x6c552620, 0x1c4d1: 0x6c8cae20, 0x1c4d2: 0x6c3a8a20, 0x1c4d3: 0x6cafbe20, - 0x1c4d4: 0x6ca62a20, 0x1c4d5: 0x6d119020, 0x1c4d6: 0x6d201a20, 0x1c4d7: 0x6c467020, - 0x1c4d8: 0x6d094620, 0x1c4d9: 0x6c705e20, 0x1c4da: 0x6c286a20, 0x1c4db: 0x6c0eb820, - 0x1c4dc: 0x6c7a7420, 0x1c4dd: 0x6cfbe820, 0x1c4de: 0x6ca8f820, 0x1c4df: 0x6c586620, - 0x1c4e0: 0x6c523c20, 0x1c4e1: 0x6c68d420, 0x1c4e2: 0x6c50dc20, 0x1c4e3: 0x6d2fa420, - 0x1c4e4: 0x6c5ff620, 0x1c4e5: 0x6d0a7220, 0x1c4e6: 0x6cccd220, 0x1c4e7: 0x6cde3820, - 0x1c4e8: 0x6cc65820, 0x1c4e9: 0x6cd45620, 0x1c4ea: 0x6ce72820, 0x1c4eb: 0x6c81a820, - 0x1c4ec: 0x6c318a20, 0x1c4ed: 0x6cf99c20, 0x1c4ee: 0x6cd1ae20, 0x1c4ef: 0x6c7b1a20, - 0x1c4f0: 0x6d329c20, 0x1c4f1: 0x6d22e420, 0x1c4f2: 0x6cdccc20, 0x1c4f3: 0x6d20f420, - 0x1c4f4: 0x6c096220, 0x1c4f5: 0x6c985420, 0x1c4f6: 0x6cf5c620, 0x1c4f7: 0x6c734c20, - 0x1c4f8: 0x6c87e020, 0x1c4f9: 0x6cf9aa20, 0x1c4fa: 0x6d1a4820, 0x1c4fb: 0x6cdb7e20, - 0x1c4fc: 0x6c80ae20, 0x1c4fd: 0x6c070220, 0x1c4fe: 0x6d35c020, 0x1c4ff: 0x6d0c7420, - // Block 0x714, offset 0x1c500 - 0x1c500: 0x6ccbdc20, 0x1c501: 0x6c85d220, 0x1c502: 0x6c4e9e20, 0x1c503: 0x6cfc0020, - 0x1c504: 0x6c6dae20, 0x1c505: 0x6cabfc20, 0x1c506: 0x6c3a0620, 0x1c507: 0x6cfeb820, - 0x1c508: 0x6c044220, 0x1c509: 0x6cb5cc20, 0x1c50a: 0x6ca5da20, 0x1c50b: 0x6c0bfc20, - 0x1c50c: 0x6d1b5620, 0x1c50d: 0x6c7efe20, 0x1c50e: 0x6c8b0220, 0x1c50f: 0x6c648820, - 0x1c510: 0x6cbaac20, 0x1c511: 0x6c7d5a20, 0x1c512: 0x6d0c0a20, 0x1c513: 0x6c4cba20, - 0x1c514: 0x6d402020, 0x1c515: 0x6c9c4820, 0x1c516: 0x6c166820, 0x1c517: 0x6d13e620, - 0x1c518: 0x6d35e820, 0x1c519: 0x6d32b420, 0x1c51a: 0x6d0b2c20, 0x1c51b: 0x6c9bce20, - 0x1c51c: 0x6c10f820, 0x1c51d: 0x6c243620, 0x1c51e: 0x6cceec20, 0x1c51f: 0x6c8b9820, - 0x1c520: 0x6c2d1620, 0x1c521: 0x6c953e20, 0x1c522: 0x6c556020, 0x1c523: 0x6d3f9020, - 0x1c524: 0x6c4b4620, 0x1c525: 0x6cefc820, 0x1c526: 0x6c3c4c20, 0x1c527: 0x6cf28c20, - 0x1c528: 0x6d256620, 0x1c529: 0x6d037420, 0x1c52a: 0x6d399820, 0x1c52b: 0x6c98ba20, - 0x1c52c: 0x6cf14020, 0x1c52d: 0x6c1fe420, 0x1c52e: 0x6cfcce20, 0x1c52f: 0x6ce93420, - 0x1c530: 0x6d0bb220, 0x1c531: 0x6ca4ac20, 0x1c532: 0x6d004220, 0x1c533: 0x6c636020, - 0x1c534: 0x6c540620, 0x1c535: 0x6c0af420, 0x1c536: 0x6d1f3a20, 0x1c537: 0x6d1f4820, - 0x1c538: 0x6c9a0020, 0x1c539: 0x6c13e420, 0x1c53a: 0x6d111420, 0x1c53b: 0x6cdcd620, - 0x1c53c: 0x6c0f1420, 0x1c53d: 0x6ca00820, 0x1c53e: 0x6c574020, 0x1c53f: 0x6d258620, - // Block 0x715, offset 0x1c540 - 0x1c540: 0x6cd9b420, 0x1c541: 0x6c96c420, 0x1c542: 0x6d258820, 0x1c543: 0x6c270c20, - 0x1c544: 0x6d239220, 0x1c545: 0x6cd1d220, 0x1c546: 0x6c4fcc20, 0x1c547: 0x6cbb6420, - 0x1c548: 0x6d17ea20, 0x1c549: 0x6d316a20, 0x1c54a: 0x6c123420, 0x1c54b: 0x6c4fe220, - 0x1c54c: 0x6c97ee20, 0x1c54d: 0x6c6e9620, 0x1c54e: 0x6c67b820, 0x1c54f: 0x6ca12e20, - 0x1c550: 0x6d2ecc20, 0x1c551: 0x6c150a20, 0x1c552: 0x6c026420, 0x1c553: 0x6c025420, - 0x1c554: 0x6c4fd420, 0x1c555: 0x6c24e020, 0x1c556: 0x6c07c420, 0x1c557: 0x6c749820, - 0x1c558: 0x6c0a2c20, 0x1c559: 0x6c09fe20, 0x1c55a: 0x6c59dc20, 0x1c55b: 0x6cb44a20, - 0x1c55c: 0x6c8bd020, 0x1c55d: 0x6d072620, 0x1c55e: 0x6ce77e20, 0x1c55f: 0x6d121e20, - 0x1c560: 0x6c8a1220, 0x1c561: 0x6cd79020, 0x1c562: 0x6cff0620, 0x1c563: 0x6cd49020, - 0x1c564: 0x6c33a820, 0x1c565: 0x6c69c620, 0x1c566: 0x6c442020, 0x1c567: 0x6c739020, - 0x1c568: 0x6c31b420, 0x1c569: 0x6c5c3820, 0x1c56a: 0x6c7b3e20, 0x1c56b: 0x6cfc2c20, - 0x1c56c: 0x6d021820, 0x1c56d: 0x6cde1820, 0x1c56e: 0x6cfc3220, 0x1c56f: 0x6d09b020, - 0x1c570: 0x6ca92620, 0x1c571: 0x6cb21820, 0x1c572: 0x6c5dfc20, 0x1c573: 0x6caa2a20, - 0x1c574: 0x6c9be620, 0x1c575: 0x6c8b5420, 0x1c576: 0x6ca51e20, 0x1c577: 0x6c4a0c20, - 0x1c578: 0x6cd48420, 0x1c579: 0x6c917420, 0x1c57a: 0x6cde2020, 0x1c57b: 0x6cfd3c20, - 0x1c57c: 0x6c9ca220, 0x1c57d: 0x6cc4e820, 0x1c57e: 0x6c584020, 0x1c57f: 0x6ca52820, - // Block 0x716, offset 0x1c580 - 0x1c580: 0x6c957820, 0x1c581: 0x6cfc5420, 0x1c582: 0x6cb6ac20, 0x1c583: 0x6c751e20, - 0x1c584: 0x6d07fa20, 0x1c585: 0x6c9eae20, 0x1c586: 0x6d3e1a20, 0x1c587: 0x6c93d620, - 0x1c588: 0x6c914c20, 0x1c589: 0x6d22b820, 0x1c58a: 0x6cda7a20, 0x1c58b: 0x6cedda20, - 0x1c58c: 0x6cbff620, 0x1c58d: 0x6c40d220, 0x1c58e: 0x6c2f4c20, 0x1c58f: 0x6c821620, - 0x1c590: 0x6c031620, 0x1c591: 0x6c5e7c20, 0x1c592: 0x6c52fa20, 0x1c593: 0x6c2c1a20, - 0x1c594: 0x6c202e20, 0x1c595: 0x6c416c20, 0x1c596: 0x6c6fac20, 0x1c597: 0x6d20be20, - 0x1c598: 0x6cb6d820, 0x1c599: 0x6d20c020, 0x1c59a: 0x6c170620, 0x1c59b: 0x6c969020, - 0x1c59c: 0x6c456420, 0x1c59d: 0x6cf43020, 0x1c59e: 0x6c3d4220, 0x1c59f: 0x6cf18420, - 0x1c5a0: 0x6c6bc620, 0x1c5a1: 0x6d0b1a20, 0x1c5a2: 0x6c0d2620, 0x1c5a3: 0x6c0b8020, - 0x1c5a4: 0x6c056220, 0x1c5a5: 0x6d268820, 0x1c5a6: 0x6c73f220, 0x1c5a7: 0x6c9ac220, - 0x1c5a8: 0x6c73f420, 0x1c5a9: 0x6cecca20, 0x1c5aa: 0x6c646e20, 0x1c5ab: 0x6c99da20, - 0x1c5ac: 0x6c282420, 0x1c5ad: 0x6cb20420, 0x1c5ae: 0x6cef9620, 0x1c5af: 0x6c585820, - 0x1c5b0: 0x6cfc8020, 0x1c5b1: 0x6cbaa820, 0x1c5b2: 0x6c8cbe20, 0x1c5b3: 0x6c274a20, - 0x1c5b4: 0x6d16fc20, 0x1c5b5: 0x6c016820, 0x1c5b6: 0x6cb28820, 0x1c5b7: 0x6c2d4620, - 0x1c5b8: 0x6c3e1620, 0x1c5b9: 0x6d080220, 0x1c5ba: 0x6cf7da20, 0x1c5bb: 0x6c0e5820, - 0x1c5bc: 0x6c229420, 0x1c5bd: 0x6c467820, 0x1c5be: 0x6c640620, 0x1c5bf: 0x6cce9e20, - // Block 0x717, offset 0x1c5c0 - 0x1c5c0: 0x6cb37220, 0x1c5c1: 0x6c222220, 0x1c5c2: 0x6c77e420, 0x1c5c3: 0x6cc4bc20, - 0x1c5c4: 0x6cd0f420, 0x1c5c5: 0x6ccfbe20, 0x1c5c6: 0x6d14a820, 0x1c5c7: 0x6d411220, - 0x1c5c8: 0x6c633c20, 0x1c5c9: 0x6c9f3a20, 0x1c5ca: 0x6cccd420, 0x1c5cb: 0x6c8efe20, - 0x1c5cc: 0x6c095020, 0x1c5cd: 0x6d312c20, 0x1c5ce: 0x6d312e20, 0x1c5cf: 0x6c73fc20, - 0x1c5d0: 0x6c383820, 0x1c5d1: 0x6c8f7820, 0x1c5d2: 0x6c6c3e20, 0x1c5d3: 0x6c698e20, - 0x1c5d4: 0x6c667020, 0x1c5d5: 0x6c85d420, 0x1c5d6: 0x6c4a1e20, 0x1c5d7: 0x6cfa9220, - 0x1c5d8: 0x6d386820, 0x1c5d9: 0x6c45e420, 0x1c5da: 0x6d0be820, 0x1c5db: 0x6d053420, - 0x1c5dc: 0x6d0fa420, 0x1c5dd: 0x6d063620, 0x1c5de: 0x6c95f620, 0x1c5df: 0x6cda9020, - 0x1c5e0: 0x6d399420, 0x1c5e1: 0x6cbd6420, 0x1c5e2: 0x6d1a4a20, 0x1c5e3: 0x6d09fe20, - 0x1c5e4: 0x6c05f620, 0x1c5e5: 0x6c379220, 0x1c5e6: 0x6cfe2a20, 0x1c5e7: 0x6d10e420, - 0x1c5e8: 0x6cf9ac20, 0x1c5e9: 0x6c4f6620, 0x1c5ea: 0x6c4a4a20, 0x1c5eb: 0x6c1cba20, - 0x1c5ec: 0x6d06ac20, 0x1c5ed: 0x6c047820, 0x1c5ee: 0x6cae1620, 0x1c5ef: 0x6c81f020, - 0x1c5f0: 0x6c28fa20, 0x1c5f1: 0x6d1d6420, 0x1c5f2: 0x6c5aa620, 0x1c5f3: 0x6cf19220, - 0x1c5f4: 0x6c355c20, 0x1c5f5: 0x6c19e820, 0x1c5f6: 0x6c2c4420, 0x1c5f7: 0x6cf44c20, - 0x1c5f8: 0x6cf3c420, 0x1c5f9: 0x6c19e020, 0x1c5fa: 0x6c75b220, 0x1c5fb: 0x6c99ee20, - 0x1c5fc: 0x6c071220, 0x1c5fd: 0x6ce6c220, 0x1c5fe: 0x6cfcb420, 0x1c5ff: 0x6c1f3220, - // Block 0x718, offset 0x1c600 - 0x1c600: 0x6c4e0820, 0x1c601: 0x6d081220, 0x1c602: 0x6d0c8820, 0x1c603: 0x6cc05020, - 0x1c604: 0x6d088a20, 0x1c605: 0x6c80be20, 0x1c606: 0x6c851420, 0x1c607: 0x6d053c20, - 0x1c608: 0x6c3e5620, 0x1c609: 0x6c8e5020, 0x1c60a: 0x6d0b1e20, 0x1c60b: 0x6cf5f820, - 0x1c60c: 0x6c8cec20, 0x1c60d: 0x6c83c420, 0x1c60e: 0x6c6d0420, 0x1c60f: 0x6c88b620, - 0x1c610: 0x6cdd6020, 0x1c611: 0x6cddd620, 0x1c612: 0x6c3cfe20, 0x1c613: 0x6cecd620, - 0x1c614: 0x6c2d5a20, 0x1c615: 0x6cb20c20, 0x1c616: 0x6d2df020, 0x1c617: 0x6ccb2c20, - 0x1c618: 0x6c9f5620, 0x1c619: 0x6d234820, 0x1c61a: 0x6c709420, 0x1c61b: 0x6c186820, - 0x1c61c: 0x6c7f0a20, 0x1c61d: 0x6cf19620, 0x1c61e: 0x6cd16c20, 0x1c61f: 0x6cef1420, - 0x1c620: 0x6ce4f620, 0x1c621: 0x6c1f4020, 0x1c622: 0x6d423c20, 0x1c623: 0x6c081e20, - 0x1c624: 0x6c196020, 0x1c625: 0x6c562220, 0x1c626: 0x6cb5ea20, 0x1c627: 0x6c365e20, - 0x1c628: 0x6c7d6420, 0x1c629: 0x6c167020, 0x1c62a: 0x6cb5ec20, 0x1c62b: 0x6c082020, - 0x1c62c: 0x6ced2020, 0x1c62d: 0x6c925620, 0x1c62e: 0x6c239e20, 0x1c62f: 0x6c495220, - 0x1c630: 0x6d0d9020, 0x1c631: 0x6c2dca20, 0x1c632: 0x6c072620, 0x1c633: 0x6c8bb620, - 0x1c634: 0x6cbd7220, 0x1c635: 0x6caff220, 0x1c636: 0x6cabd620, 0x1c637: 0x6cc3b820, - 0x1c638: 0x6d3d6220, 0x1c639: 0x6cbd7420, 0x1c63a: 0x6c383c20, 0x1c63b: 0x6c6d8020, - 0x1c63c: 0x6cbf2a20, 0x1c63d: 0x6c321a20, 0x1c63e: 0x6c6bec20, 0x1c63f: 0x6c5cf220, - // Block 0x719, offset 0x1c640 - 0x1c640: 0x6d226c20, 0x1c641: 0x6c999820, 0x1c642: 0x6c9a1020, 0x1c643: 0x6c210e20, - 0x1c644: 0x6d07aa20, 0x1c645: 0x6ce34a20, 0x1c646: 0x6d038020, 0x1c647: 0x6c277a20, - 0x1c648: 0x6cc75220, 0x1c649: 0x6c9f6020, 0x1c64a: 0x6c64b820, 0x1c64b: 0x6cefe020, - 0x1c64c: 0x6cc86620, 0x1c64d: 0x6c593820, 0x1c64e: 0x6d00be20, 0x1c64f: 0x6c1fe820, - 0x1c650: 0x6c65ae20, 0x1c651: 0x6d3bce20, 0x1c652: 0x6c171620, 0x1c653: 0x6c890a20, - 0x1c654: 0x6cc2fe20, 0x1c655: 0x6cf9d420, 0x1c656: 0x6c32ce20, 0x1c657: 0x6d262220, - 0x1c658: 0x6d0b2e20, 0x1c659: 0x6ca50220, 0x1c65a: 0x6c557220, 0x1c65b: 0x6d1bbe20, - 0x1c65c: 0x6d215e20, 0x1c65d: 0x6c59d620, 0x1c65e: 0x6cc8d420, 0x1c65f: 0x6ccb3020, - 0x1c660: 0x6c8e7c20, 0x1c661: 0x6cd1de20, 0x1c662: 0x6cc69e20, 0x1c663: 0x6cdd8220, - 0x1c664: 0x6d112620, 0x1c665: 0x6cf15c20, 0x1c666: 0x6cf45c20, 0x1c667: 0x6d317e20, - 0x1c668: 0x6c6d2a20, 0x1c669: 0x6d1c8a20, 0x1c66a: 0x6c969e20, 0x1c66b: 0x6ce1dc20, - 0x1c66c: 0x6c8e8220, 0x1c66d: 0x6ce11820, 0x1c66e: 0x6c864e20, 0x1c66f: 0x6c80c420, - 0x1c670: 0x6c4a7020, 0x1c671: 0x6d325020, 0x1c672: 0x6cbad020, 0x1c673: 0x6c25be20, - 0x1c674: 0x6c748020, 0x1c675: 0x6d2f8e20, 0x1c676: 0x6d112820, 0x1c677: 0x6c00bc20, - 0x1c678: 0x6c0d4620, 0x1c679: 0x6cd4f620, 0x1c67a: 0x6c16c020, 0x1c67b: 0x6c7d8020, - 0x1c67c: 0x6d3b8820, 0x1c67d: 0x6c234020, 0x1c67e: 0x6c6cb020, 0x1c67f: 0x6d141620, - // Block 0x71a, offset 0x1c680 - 0x1c680: 0x6c250020, 0x1c681: 0x6c234220, 0x1c682: 0x6cb63820, 0x1c683: 0x6c841a20, - 0x1c684: 0x6d1d0820, 0x1c685: 0x6cdd8a20, 0x1c686: 0x6cc08c20, 0x1c687: 0x6d082020, - 0x1c688: 0x6c026620, 0x1c689: 0x6c88c420, 0x1c68a: 0x6c9ad420, 0x1c68b: 0x6d2eda20, - 0x1c68c: 0x6d1a9620, 0x1c68d: 0x6c57e220, 0x1c68e: 0x6d1be620, 0x1c68f: 0x6cf0ce20, - 0x1c690: 0x6c92e620, 0x1c691: 0x6cf3ec20, 0x1c692: 0x6c2aac20, 0x1c693: 0x6d054820, - 0x1c694: 0x6d2b9420, 0x1c695: 0x6d0a4220, 0x1c696: 0x6cc1b420, 0x1c697: 0x6c299420, - 0x1c698: 0x6c8be020, 0x1c699: 0x6c8a1c20, 0x1c69a: 0x6cbf6220, 0x1c69b: 0x6cdb3420, - 0x1c69c: 0x6c59ec20, 0x1c69d: 0x6c4a8c20, 0x1c69e: 0x6cb45220, 0x1c69f: 0x6c6e3220, - 0x1c6a0: 0x6c38be20, 0x1c6a1: 0x6c6d4220, 0x1c6a2: 0x6c8e9820, 0x1c6a3: 0x6c5f3620, - 0x1c6a4: 0x6c5cae20, 0x1c6a5: 0x6c6e3420, 0x1c6a6: 0x6c00e220, 0x1c6a7: 0x6c0a8e20, - 0x1c6a8: 0x6c120e20, 0x1c6a9: 0x6cc1d820, 0x1c6aa: 0x6d2a5820, 0x1c6ab: 0x6c290c20, - 0x1c6ac: 0x6c694c20, 0x1c6ad: 0x6c4c0420, 0x1c6ae: 0x6ce07e20, 0x1c6af: 0x6c5c5420, - 0x1c6b0: 0x6c58a620, 0x1c6b1: 0x6ccb7020, 0x1c6b2: 0x6cdc7620, 0x1c6b3: 0x6ce4c620, - 0x1c6b4: 0x6c1f9a20, 0x1c6b5: 0x6d21b820, 0x1c6b6: 0x6c6d6820, 0x1c6b7: 0x6c917620, - 0x1c6b8: 0x6c0d6020, 0x1c6b9: 0x6cd54220, 0x1c6ba: 0x6cf21820, 0x1c6bb: 0x6d41a220, - 0x1c6bc: 0x6c7fd020, 0x1c6bd: 0x6cf82020, 0x1c6be: 0x6d3ea820, 0x1c6bf: 0x6d083020, - // Block 0x71b, offset 0x1c6c0 - 0x1c6c0: 0x6cc88420, 0x1c6c1: 0x6cf31e20, 0x1c6c2: 0x6c415820, 0x1c6c3: 0x6c827220, - 0x1c6c4: 0x6c31da20, 0x1c6c5: 0x6c86fe20, 0x1c6c6: 0x6d374020, 0x1c6c7: 0x6cc76a20, - 0x1c6c8: 0x6c848e20, 0x1c6c9: 0x6d29ac20, 0x1c6ca: 0x6cbf7620, 0x1c6cb: 0x6ce43a20, - 0x1c6cc: 0x6c4aa420, 0x1c6cd: 0x6cdc0020, 0x1c6ce: 0x6c7eb220, 0x1c6cf: 0x6c8fe020, - 0x1c6d0: 0x6c918620, 0x1c6d1: 0x6c872620, 0x1c6d2: 0x6d29b220, 0x1c6d3: 0x6c808a20, - 0x1c6d4: 0x6d1c2e20, 0x1c6d5: 0x6c9cb420, 0x1c6d6: 0x6cfd9c20, 0x1c6d7: 0x6cbf8820, - 0x1c6d8: 0x6c49b820, 0x1c6d9: 0x6c2a5020, 0x1c6da: 0x6d29c020, 0x1c6db: 0x6c58ce20, - 0x1c6dc: 0x6c483e20, 0x1c6dd: 0x6c0eba20, 0x1c6de: 0x6c2e8820, 0x1c6df: 0x6c0ed820, - 0x1c6e0: 0x6c568e20, 0x1c6e1: 0x6d347620, 0x1c6e2: 0x6cb18020, 0x1c6e3: 0x6c050c20, - 0x1c6e4: 0x6cc4f020, 0x1c6e5: 0x6c87a220, 0x1c6e6: 0x6cec0c20, - 0x1c6e8: 0x6cfdaa20, 0x1c6e9: 0x6cb8aa20, 0x1c6ea: 0x6c04c020, 0x1c6eb: 0x6cae3a20, - 0x1c6ec: 0x6c39c820, 0x1c6ed: 0x6c282620, 0x1c6ee: 0x6cf26c20, 0x1c6ef: 0x6cab3420, - 0x1c6f2: 0x6cec4a20, 0x1c6f3: 0x6c552a20, - 0x1c6f4: 0x6c8cc020, 0x1c6f5: 0x6d14aa20, 0x1c6f6: 0x6cb29420, 0x1c6f7: 0x6c223820, - 0x1c6f8: 0x6c042020, 0x1c6f9: 0x6c72ea20, 0x1c6fa: 0x6c16a820, 0x1c6fb: 0x6c1aa820, - 0x1c6fd: 0x6c296820, 0x1c6fe: 0x6c9bd620, 0x1c6ff: 0x6c109820, - // Block 0x71c, offset 0x1c700 - 0x1c700: 0x6d3c8820, 0x1c701: 0x6cb2aa20, 0x1c702: 0x6c0afe20, 0x1c703: 0x6d393220, - 0x1c704: 0x6d316c20, 0x1c706: 0x6c225020, 0x1c707: 0x6d1bd220, - 0x1c708: 0x6cb7b220, 0x1c709: 0x6cfb7420, 0x1c70a: 0x6c90f220, 0x1c70b: 0x6c2c9220, - 0x1c70c: 0x6cab5020, 0x1c70d: 0x6c9b2e20, 0x1c70e: 0x6d3b8a20, 0x1c70f: 0x6c084e20, - 0x1c710: 0x6c8c6420, 0x1c711: 0x6d2bb020, 0x1c712: 0x6cf47c20, 0x1c713: 0x6cb0c220, - 0x1c714: 0x6c280220, 0x1c715: 0x6cf27420, 0x1c716: 0x6d1c0820, 0x1c717: 0x6d0e0420, - 0x1c718: 0x6c415c20, 0x1c719: 0x6c273420, 0x1c71a: 0x6cd03820, 0x1c71b: 0x6ce49a20, - 0x1c71c: 0x6ce49c20, 0x1c71d: 0x6c4e1c20, 0x1c71e: 0x6c16b020, 0x1c71f: 0x6cd0d220, - 0x1c720: 0x6cbe6e20, 0x1c721: 0x6ccfcc20, 0x1c722: 0x6c15aa20, 0x1c723: 0x6c15ac20, - 0x1c724: 0x6cc89c20, 0x1c725: 0x6cd10620, 0x1c726: 0x6cda4c20, 0x1c727: 0x6cd00820, - 0x1c728: 0x6d1e6c20, 0x1c729: 0x6cd66020, 0x1c72a: 0x6c920e20, 0x1c72b: 0x6c40a820, - 0x1c72c: 0x6d1e1020, 0x1c72d: 0x6c080e20, 0x1c72e: 0x6c3cdc20, 0x1c72f: 0x6ca90820, - 0x1c730: 0x6ce47e20, 0x1c731: 0x6d1ee020, 0x1c732: 0x6c63fc20, 0x1c733: 0x6ccf9a20, - 0x1c734: 0x6d2c1820, 0x1c735: 0x6c2d3220, 0x1c736: 0x6c3dce20, 0x1c737: 0x6ca3e220, - 0x1c738: 0x6c2cbc20, 0x1c739: 0x6cb24820, 0x1c73a: 0x6ce62e20, 0x1c73b: 0x6c578420, - 0x1c73c: 0x6ce6b220, 0x1c73d: 0x6d321a20, 0x1c73e: 0x6d28f620, 0x1c73f: 0x6c9b0820, - // Block 0x71d, offset 0x1c740 - 0x1c740: 0x6c093c20, 0x1c741: 0x6cb58620, 0x1c742: 0x6c8f2620, 0x1c743: 0x6d09de20, - 0x1c744: 0x6c8e4420, 0x1c745: 0x6c170820, 0x1c746: 0x6ca23220, 0x1c747: 0x6d278a20, - 0x1c748: 0x6c393620, 0x1c749: 0x6c3e1820, 0x1c74a: 0x6c44bc20, 0x1c74b: 0x6ce48e20, - 0x1c74c: 0x6c6bca20, 0x1c74d: 0x6c6bcc20, 0x1c74e: 0x6cc35220, 0x1c74f: 0x6cf07c20, - 0x1c750: 0x6c3e1a20, 0x1c751: 0x6ce49020, 0x1c752: 0x6ca23420, 0x1c753: 0x6c341e20, - 0x1c754: 0x6cacb020, 0x1c755: 0x6c675620, 0x1c756: 0x6cebd220, 0x1c757: 0x6c269020, - 0x1c758: 0x6ca3f020, 0x1c759: 0x6c8e4c20, 0x1c75a: 0x6c079a20, 0x1c75b: 0x6d31c820, - 0x1c75c: 0x6c1f2820, 0x1c75d: 0x6ca23820, 0x1c75e: 0x6ca23a20, 0x1c75f: 0x6c12d820, - 0x1c760: 0x6ce49620, 0x1c761: 0x6c40f220, 0x1c762: 0x6c096420, 0x1c763: 0x6c269a20, - 0x1c764: 0x6d35ea20, 0x1c765: 0x6c361220, 0x1c766: 0x6cb5ce20, 0x1c767: 0x6c94a020, - 0x1c768: 0x6cac3e20, 0x1c769: 0x6d199020, 0x1c76a: 0x6c384e20, 0x1c76b: 0x6c579820, - 0x1c76c: 0x6ccef220, 0x1c76d: 0x6d212e20, 0x1c76e: 0x6ca24220, 0x1c76f: 0x6c75be20, - 0x1c770: 0x6d176620, 0x1c771: 0x6c8e5820, 0x1c772: 0x6ccef420, 0x1c773: 0x6c2eac20, - 0x1c774: 0x6c1db020, 0x1c775: 0x6c579e20, 0x1c776: 0x6c290020, 0x1c777: 0x6d3c9020, - 0x1c778: 0x6c5eea20, 0x1c779: 0x6ced2a20, 0x1c77a: 0x6c676620, 0x1c77b: 0x6c1a2620, - 0x1c77c: 0x6c171e20, 0x1c77d: 0x6cea8020, 0x1c77e: 0x6c825220, 0x1c77f: 0x6c5f1620, - // Block 0x71e, offset 0x1c780 - 0x1c780: 0x6c13b020, 0x1c781: 0x6c8e9a20, 0x1c782: 0x6c2f3c20, 0x1c783: 0x6ce98220, - 0x1c784: 0x6c8c6c20, 0x1c785: 0x6c678c20, 0x1c786: 0x6c679020, 0x1c787: 0x6c1e0020, - 0x1c788: 0x6cb0d620, 0x1c789: 0x6c2f0620, 0x1c78a: 0x6c2f1020, 0x1c78b: 0x6cb04420, - 0x1c78c: 0x6c6a8220, 0x1c78d: 0x6c287220, 0x1c78e: 0x6cd4da20, 0x1c78f: 0x6cd4dc20, - 0x1c790: 0x6d369220, 0x1c791: 0x6d153420, 0x1c792: 0x6ca54020, 0x1c793: 0x6ca39420, - 0x1c794: 0x6c2f4e20, 0x1c795: 0x6c08be20, 0x1c796: 0x6c69f620, 0x1c797: 0x6c89da20, - 0x1c798: 0x6c426220, 0x1c799: 0x6c437620, 0x1c79a: 0x6c6fd620, 0x1c79b: 0x6d38da20, - 0x1c79c: 0x6cfa3020, 0x1c79d: 0x6ccd7220, 0x1c79e: 0x6d057220, 0x1c79f: 0x6caa9e20, - 0x1c7a0: 0x6c859220, 0x1c7a1: 0x6d0f8a20, 0x1c7a2: 0x6c192020, 0x1c7a3: 0x6d1f0c20, - 0x1c7a4: 0x6c033220, 0x1c7a5: 0x6c6bce20, 0x1c7a6: 0x6c73fe20, 0x1c7a7: 0x6cb59620, - 0x1c7a8: 0x6cf95620, 0x1c7a9: 0x6c251e20, 0x1c7aa: 0x6c095220, 0x1c7ab: 0x6d16fe20, - 0x1c7ac: 0x6c85aa20, 0x1c7ad: 0x6d401a20, 0x1c7ae: 0x6c204e20, 0x1c7af: 0x6c3c2620, - 0x1c7b0: 0x6d3ad220, 0x1c7b1: 0x6cad8620, 0x1c7b2: 0x6cafd020, 0x1c7b3: 0x6c418a20, - 0x1c7b4: 0x6c77ee20, 0x1c7b5: 0x6c21fa20, 0x1c7b6: 0x6d08de20, 0x1c7b7: 0x6d33c620, - 0x1c7b8: 0x6c283020, 0x1c7b9: 0x6d31ca20, 0x1c7ba: 0x6c380220, 0x1c7bb: 0x6d350e20, - 0x1c7bc: 0x6ce29c20, 0x1c7bd: 0x6c706a20, 0x1c7be: 0x6c600220, 0x1c7bf: 0x6c3a9a20, - // Block 0x71f, offset 0x1c7c0 - 0x1c7c0: 0x6c706c20, 0x1c7c1: 0x6cccda20, 0x1c7c2: 0x6c634420, 0x1c7c3: 0x6d080820, - 0x1c7c4: 0x6d2cbc20, 0x1c7c5: 0x6c0e1420, 0x1c7c6: 0x6ca80a20, 0x1c7c7: 0x6d334620, - 0x1c7c8: 0x6d1d8020, 0x1c7c9: 0x6c6e6820, 0x1c7ca: 0x6cc2e020, 0x1c7cb: 0x6ce29e20, - 0x1c7cc: 0x6ce6f420, 0x1c7cd: 0x6d14e620, 0x1c7ce: 0x6c6a0020, 0x1c7cf: 0x6cefb020, - 0x1c7d0: 0x6c5b3620, 0x1c7d1: 0x6cdfa220, 0x1c7d2: 0x6d101220, 0x1c7d3: 0x6c1c1220, - 0x1c7d4: 0x6d35ec20, 0x1c7d5: 0x6c523220, 0x1c7d6: 0x6d0b5220, 0x1c7d7: 0x6c9a9220, - 0x1c7d8: 0x6c311a20, 0x1c7d9: 0x6c6e8620, 0x1c7da: 0x6cfec020, 0x1c7db: 0x6ce7c820, - 0x1c7dc: 0x6ce86220, 0x1c7dd: 0x6c986020, 0x1c7de: 0x6cb05e20, 0x1c7df: 0x6cfec220, - 0x1c7e0: 0x6cdb8020, 0x1c7e1: 0x6c3d7020, 0x1c7e2: 0x6c861220, 0x1c7e3: 0x6d363420, - 0x1c7e4: 0x6c25de20, 0x1c7e5: 0x6c345220, 0x1c7e6: 0x6cf4ee20, 0x1c7e7: 0x6ccbf420, - 0x1c7e8: 0x6c815a20, 0x1c7e9: 0x6cd46a20, 0x1c7ea: 0x6c592620, 0x1c7eb: 0x6cfb5e20, - 0x1c7ec: 0x6d17ee20, 0x1c7ed: 0x6c07f820, 0x1c7ee: 0x6d2f3420, 0x1c7ef: 0x6c495620, - 0x1c7f0: 0x6cdfec20, 0x1c7f1: 0x6c3ab820, 0x1c7f2: 0x6c966a20, 0x1c7f3: 0x6c8bba20, - 0x1c7f4: 0x6c1abc20, 0x1c7f5: 0x6c621a20, 0x1c7f6: 0x6ce50220, 0x1c7f7: 0x6c013820, - 0x1c7f8: 0x6c1c3220, 0x1c7f9: 0x6c09d020, 0x1c7fa: 0x6c09d220, 0x1c7fb: 0x6c9f6220, - 0x1c7fc: 0x6c481a20, 0x1c7fd: 0x6c330820, 0x1c7fe: 0x6c354220, 0x1c7ff: 0x6cefe220, - // Block 0x720, offset 0x1c800 - 0x1c800: 0x6d209220, 0x1c801: 0x6c254420, 0x1c802: 0x6d0b5620, 0x1c803: 0x6d3a1620, - 0x1c804: 0x6c244020, 0x1c805: 0x6c27e620, 0x1c806: 0x6cd0b020, 0x1c807: 0x6d380220, - 0x1c808: 0x6c1c4620, 0x1c809: 0x6d239420, 0x1c80a: 0x6c541c20, 0x1c80b: 0x6c3c5c20, - 0x1c80c: 0x6c7e8420, 0x1c80d: 0x6d0fd220, 0x1c80e: 0x6c18de20, 0x1c80f: 0x6ce8c420, - 0x1c810: 0x6d226e20, 0x1c811: 0x6c4c2820, 0x1c812: 0x6cf19e20, 0x1c813: 0x6c594420, - 0x1c814: 0x6c7aa220, 0x1c815: 0x6c642820, 0x1c816: 0x6d19f620, 0x1c817: 0x6d182c20, - 0x1c818: 0x6c911020, 0x1c819: 0x6ccaf820, 0x1c81a: 0x6c749a20, 0x1c81b: 0x6c1c5a20, - 0x1c81c: 0x6cf6a620, 0x1c81d: 0x6c492220, 0x1c81e: 0x6d185c20, 0x1c81f: 0x6cf16020, - 0x1c820: 0x6c608c20, 0x1c821: 0x6c205c20, 0x1c822: 0x6c049220, 0x1c823: 0x6c5bfe20, - 0x1c824: 0x6c8e8420, 0x1c825: 0x6c149c20, 0x1c826: 0x6cd47220, 0x1c827: 0x6caaaa20, - 0x1c828: 0x6c2cd820, 0x1c829: 0x6c26fc20, 0x1c82a: 0x6c0d0e20, 0x1c82b: 0x6cdfb820, - 0x1c82c: 0x6d2f4020, 0x1c82d: 0x6c0c1c20, 0x1c82e: 0x6cd0c620, 0x1c82f: 0x6c246220, - 0x1c830: 0x6c95c020, 0x1c831: 0x6d18a420, 0x1c832: 0x6d403220, 0x1c833: 0x6c1d7c20, - 0x1c834: 0x6d2f4220, 0x1c835: 0x6d2d4a20, 0x1c836: 0x6cda4220, 0x1c837: 0x6ccb5e20, - 0x1c838: 0x6cc39c20, 0x1c839: 0x6c2e3c20, 0x1c83a: 0x6c911a20, 0x1c83b: 0x6c911c20, - 0x1c83c: 0x6ca15220, 0x1c83d: 0x6cbda620, 0x1c83e: 0x6d1b0820, 0x1c83f: 0x6d1d0a20, - // Block 0x721, offset 0x1c840 - 0x1c840: 0x6c59fa20, 0x1c841: 0x6c3f0820, 0x1c842: 0x6c8a2620, 0x1c843: 0x6c8fac20, - 0x1c844: 0x6cbbfe20, 0x1c845: 0x6c8ea820, 0x1c846: 0x6c817a20, 0x1c847: 0x6cfba820, - 0x1c848: 0x6c3ad620, 0x1c849: 0x6c280420, 0x1c84a: 0x6d1b7420, 0x1c84b: 0x6c51f020, - 0x1c84c: 0x6c005420, 0x1c84d: 0x6c04a620, 0x1c84e: 0x6cfbaa20, 0x1c84f: 0x6c492a20, - 0x1c850: 0x6c4b8c20, 0x1c851: 0x6ca9f620, 0x1c852: 0x6d242e20, 0x1c853: 0x6cef4a20, - 0x1c854: 0x6d18e820, 0x1c855: 0x6d1dc620, 0x1c856: 0x6cb07820, 0x1c857: 0x6c82ee20, - 0x1c858: 0x6c86a820, 0x1c859: 0x6cd57820, 0x1c85a: 0x6c28d820, 0x1c85b: 0x6c8c3c20, - 0x1c85c: 0x6c2d8c20, 0x1c85d: 0x6c8c3e20, 0x1c85e: 0x6c7f6420, 0x1c85f: 0x6c0d1020, - 0x1c860: 0x6c62ba20, 0x1c861: 0x6c1ae820, 0x1c862: 0x6d103820, 0x1c863: 0x6d086220, - 0x1c864: 0x6c6a3820, 0x1c865: 0x6d330e20, 0x1c866: 0x6c99cc20, 0x1c867: 0x6c874420, - 0x1c868: 0x6c5e4820, 0x1c869: 0x6c7f7820, 0x1c86a: 0x6c631420, 0x1c86b: 0x6c2cf220, - 0x1c86c: 0x6d086620, 0x1c86d: 0x6d1d2e20, 0x1c86e: 0x6d1b2820, 0x1c86f: 0x6cc21420, - 0x1c870: 0x6d1dea20, 0x1c871: 0x6cdfc820, 0x1c872: 0x6c2cfe20, 0x1c873: 0x6c95da20, - 0x1c874: 0x6c947c20, 0x1c875: 0x6c948420, 0x1c876: 0x6c0e4620, 0x1c877: 0x6c0e5420, - 0x1c878: 0x6c4ada20, 0x1c879: 0x6c037020, 0x1c87a: 0x6c37e620, 0x1c87b: 0x6c2a9c20, - 0x1c87c: 0x6c37ec20, 0x1c87d: 0x6c040820, 0x1c87e: 0x6c041620, 0x1c87f: 0x6cbc8020, - // Block 0x722, offset 0x1c880 - 0x1c880: 0x6c5fd620, 0x1c881: 0x6d2a6820, 0x1c882: 0x6d2a6a20, 0x1c883: 0x6c994420, - 0x1c884: 0x6c2a8c20, 0x1c885: 0x6cabb820, 0x1c886: 0x6c69f820, 0x1c887: 0x6c59ac20, - 0x1c888: 0x6c4a3e20, 0x1c889: 0x6c229620, 0x1c88a: 0x6c8ccc20, 0x1c88b: 0x6c42b620, - 0x1c88c: 0x6ca0f020, 0x1c88d: 0x6c5ffa20, 0x1c88e: 0x6c68e420, 0x1c88f: 0x6caf0620, - 0x1c890: 0x6c42be20, 0x1c891: 0x6c004020, 0x1c892: 0x6c356620, 0x1c893: 0x6c503e20, - 0x1c894: 0x6c4ec420, 0x1c895: 0x6c09a420, 0x1c896: 0x6ced2220, 0x1c897: 0x6c1dbc20, - 0x1c898: 0x6cba5c20, 0x1c899: 0x6cf65220, 0x1c89a: 0x6c005020, 0x1c89b: 0x6cffb820, - 0x1c89c: 0x6c505c20, 0x1c89d: 0x6c5a7820, 0x1c89e: 0x6c505e20, 0x1c89f: 0x6d2b0220, - 0x1c8a0: 0x6c251020, 0x1c8a1: 0x6c506c20, 0x1c8a2: 0x6cffc220, 0x1c8a3: 0x6d132820, - 0x1c8a4: 0x6cb33820, 0x1c8a5: 0x6c507220, 0x1c8a6: 0x6c695220, 0x1c8a7: 0x6c00f220, - 0x1c8a8: 0x6d03ae20, 0x1c8a9: 0x6c5a8020, 0x1c8aa: 0x6c872820, 0x1c8ab: 0x6cb1a620, - 0x1c8ac: 0x6c51a220, 0x1c8ad: 0x6c69e220, 0x1c8ae: 0x6cafa820, 0x1c8af: 0x6c41ca20, - 0x1c8b0: 0x6cad8820, 0x1c8b1: 0x6d391c20, 0x1c8b2: 0x6c756e20, 0x1c8b3: 0x6cc06620, - 0x1c8b4: 0x6c259420, 0x1c8b5: 0x6cc3ce20, 0x1c8b6: 0x6d2bee20, 0x1c8b7: 0x6c47b420, - 0x1c8b8: 0x6c757620, 0x1c8b9: 0x6c757820, 0x1c8ba: 0x6d394420, 0x1c8bb: 0x6d2bfe20, - 0x1c8bc: 0x6c47d820, 0x1c8bd: 0x6d2f7c20, 0x1c8be: 0x6c31e020, 0x1c8bf: 0x6c9f8a20, - // Block 0x723, offset 0x1c8c0 - 0x1c8c0: 0x6cb6da20, 0x1c8c1: 0x6d1c5620, 0x1c8c2: 0x6d20c620, 0x1c8c3: 0x6c069220, - 0x1c8c4: 0x6d2f5e20, 0x1c8c5: 0x6d37a820, 0x1c8c6: 0x6cae3c20, 0x1c8c7: 0x6c50de20, - 0x1c8c8: 0x6d1c5c20, 0x1c8c9: 0x6c50f420, 0x1c8ca: 0x6d173820, 0x1c8cb: 0x6c0e6020, - 0x1c8cc: 0x6cecfc20, 0x1c8cd: 0x6c50f620, 0x1c8ce: 0x6c021620, 0x1c8cf: 0x6d2de220, - 0x1c8d0: 0x6d0c8020, 0x1c8d1: 0x6c647e20, 0x1c8d2: 0x6c510e20, 0x1c8d3: 0x6d208820, - 0x1c8d4: 0x6c7c3a20, 0x1c8d5: 0x6c394620, 0x1c8d6: 0x6c413220, 0x1c8d7: 0x6c2a1220, - 0x1c8d8: 0x6cac5620, 0x1c8d9: 0x6c3f6620, 0x1c8da: 0x6cc06820, 0x1c8db: 0x6cd15e20, - 0x1c8dc: 0x6c2a1620, 0x1c8dd: 0x6c926a20, 0x1c8de: 0x6d2df820, 0x1c8df: 0x6c9b2220, - 0x1c8e0: 0x6c841c20, 0x1c8e1: 0x6c6ca220, 0x1c8e2: 0x6d071220, 0x1c8e3: 0x6c64ca20, - 0x1c8e4: 0x6cac6a20, 0x1c8e5: 0x6c49a620, 0x1c8e6: 0x6c014e20, 0x1c8e7: 0x6c915c20, - 0x1c8e8: 0x6d065e20, 0x1c8e9: 0x6d38b420, 0x1c8ea: 0x6c299620, 0x1c8eb: 0x6c015620, - 0x1c8ec: 0x6c47e420, 0x1c8ed: 0x6c872a20, 0x1c8ee: 0x6ca26420, 0x1c8ef: 0x6c2f5020, - 0x1c8f0: 0x6c421020, 0x1c8f1: 0x6d057420, 0x1c8f2: 0x6c983a20, 0x1c8f3: 0x6cee4e20, - 0x1c8f4: 0x6d344020, 0x1c8f5: 0x6cb74a20, 0x1c8f6: 0x6d25e020, 0x1c8f7: 0x6ce49220, - 0x1c8f8: 0x6cfd6420, 0x1c8f9: 0x6c33ca20, 0x1c8fa: 0x6d02ba20, 0x1c8fb: 0x6cf86620, - 0x1c8fc: 0x6cacae20, 0x1c8fd: 0x6c3c2820, 0x1c8fe: 0x6c33de20, 0x1c8ff: 0x6c9f3c20, - // Block 0x724, offset 0x1c900 - 0x1c900: 0x6c9fee20, 0x1c901: 0x6cd12c20, 0x1c902: 0x6cd34420, 0x1c903: 0x6d278c20, - 0x1c904: 0x6c9e0e20, 0x1c905: 0x6cac3a20, 0x1c906: 0x6c39cc20, 0x1c907: 0x6c9e8a20, - 0x1c908: 0x6c27c220, 0x1c909: 0x6c99e020, 0x1c90a: 0x6c995820, 0x1c90b: 0x6c770420, - 0x1c90c: 0x6cfc9020, 0x1c90d: 0x6c79ba20, 0x1c90e: 0x6cd35620, 0x1c90f: 0x6d0f5420, - 0x1c910: 0x6d32a220, 0x1c911: 0x6d119c20, 0x1c912: 0x6ccfce20, 0x1c913: 0x6c5dae20, - 0x1c914: 0x6c26ec20, 0x1c915: 0x6d31cc20, 0x1c916: 0x6c7bee20, 0x1c917: 0x6c706e20, - 0x1c918: 0x6cd09a20, 0x1c919: 0x6d14d020, 0x1c91a: 0x6cd12e20, 0x1c91b: 0x6c9a8a20, - 0x1c91c: 0x6ca0f420, 0x1c91d: 0x6d3ad620, 0x1c91e: 0x6d313c20, 0x1c91f: 0x6d313e20, - 0x1c920: 0x6c9dbc20, 0x1c921: 0x6cd35820, 0x1c922: 0x6d24d620, 0x1c923: 0x6c2e8a20, - 0x1c924: 0x6ca69020, 0x1c925: 0x6d3f4620, 0x1c926: 0x6d3f4820, 0x1c927: 0x6c179620, - 0x1c928: 0x6d2c7620, 0x1c929: 0x6d087e20, 0x1c92a: 0x6c0dda20, 0x1c92b: 0x6c9cea20, - 0x1c92c: 0x6c8f7e20, 0x1c92d: 0x6cdbc220, 0x1c92e: 0x6ce73e20, 0x1c92f: 0x6c9c3020, - 0x1c930: 0x6c2f3620, 0x1c931: 0x6c2c4620, 0x1c932: 0x6ca54c20, 0x1c933: 0x6c9ff820, - 0x1c934: 0x6d088c20, 0x1c935: 0x6c1aaa20, 0x1c936: 0x6c7bf420, 0x1c937: 0x6c735a20, - 0x1c938: 0x6ca1ce20, 0x1c939: 0x6d323a20, 0x1c93a: 0x6ce5d220, 0x1c93b: 0x6d0fac20, - 0x1c93c: 0x6d0d6c20, 0x1c93d: 0x6ca10620, 0x1c93e: 0x6d382620, 0x1c93f: 0x6ca0f620, - // Block 0x725, offset 0x1c940 - 0x1c940: 0x6d311220, 0x1c941: 0x6d32b620, 0x1c942: 0x6c9a0220, 0x1c943: 0x6cdd1e20, - 0x1c944: 0x6cceda20, 0x1c945: 0x6c4ec820, 0x1c946: 0x6c592820, 0x1c947: 0x6c2c5c20, - 0x1c948: 0x6c1a7620, 0x1c949: 0x6c25e020, 0x1c94a: 0x6c736420, 0x1c94b: 0x6c356820, - 0x1c94c: 0x6c97bc20, 0x1c94d: 0x6cfcc420, 0x1c94e: 0x6cf61e20, 0x1c94f: 0x6c7dd420, - 0x1c950: 0x6c7f4820, 0x1c951: 0x6c659820, 0x1c952: 0x6ccd4e20, 0x1c953: 0x6ce50420, - 0x1c954: 0x6c4bfc20, 0x1c955: 0x6ced2c20, 0x1c956: 0x6c839820, 0x1c957: 0x6cd39c20, - 0x1c958: 0x6cbf4020, 0x1c959: 0x6c8b1820, 0x1c95a: 0x6d0b3020, 0x1c95b: 0x6c6ec820, - 0x1c95c: 0x6d32d420, 0x1c95d: 0x6c83ea20, 0x1c95e: 0x6c7f4a20, 0x1c95f: 0x6cdc4c20, - 0x1c960: 0x6c737420, 0x1c961: 0x6cd72820, 0x1c962: 0x6cdbca20, 0x1c963: 0x6c317420, - 0x1c964: 0x6c09d420, 0x1c965: 0x6cb0a620, 0x1c966: 0x6ca29c20, 0x1c967: 0x6c5cd420, - 0x1c968: 0x6ca6ae20, 0x1c969: 0x6c926c20, 0x1c96a: 0x6d17f220, 0x1c96b: 0x6c6aec20, - 0x1c96c: 0x6c113620, 0x1c96d: 0x6d38ea20, 0x1c96e: 0x6d217220, 0x1c96f: 0x6c5cd620, - 0x1c970: 0x6c96c620, 0x1c971: 0x6cfa4420, 0x1c972: 0x6d040420, 0x1c973: 0x6c5ada20, - 0x1c974: 0x6c4c0220, 0x1c975: 0x6d290a20, 0x1c976: 0x6c218620, 0x1c977: 0x6c64ba20, - 0x1c978: 0x6c9a9e20, 0x1c979: 0x6c322620, 0x1c97a: 0x6c541e20, 0x1c97b: 0x6d07b420, - 0x1c97c: 0x6ce53c20, 0x1c97d: 0x6c7c9220, 0x1c97e: 0x6c42ce20, 0x1c97f: 0x6cc8da20, - // Block 0x726, offset 0x1c980 - 0x1c980: 0x6c99a020, 0x1c981: 0x6d071420, 0x1c982: 0x6c381e20, 0x1c983: 0x6cf30820, - 0x1c984: 0x6c9e7820, 0x1c985: 0x6c1e2e20, 0x1c986: 0x6c7d0620, 0x1c987: 0x6c9c3220, - 0x1c988: 0x6cf25e20, 0x1c989: 0x6c7a0020, 0x1c98a: 0x6c298420, 0x1c98b: 0x6c188220, - 0x1c98c: 0x6c782420, 0x1c98d: 0x6cda2420, 0x1c98e: 0x6cf97620, 0x1c98f: 0x6cbf5020, - 0x1c990: 0x6ca15420, 0x1c991: 0x6ca01620, 0x1c992: 0x6c977220, 0x1c993: 0x6cd72c20, - 0x1c994: 0x6d2b0420, 0x1c995: 0x6d2f4420, 0x1c996: 0x6d18a620, 0x1c997: 0x6c2dde20, - 0x1c998: 0x6c79c420, 0x1c999: 0x6ca15620, 0x1c99a: 0x6cd75c20, 0x1c99b: 0x6c235620, - 0x1c99c: 0x6c907820, 0x1c99d: 0x6c1ad020, 0x1c99e: 0x6c977820, 0x1c99f: 0x6cb19a20, - 0x1c9a0: 0x6c199420, 0x1c9a1: 0x6c4b1a20, 0x1c9a2: 0x6c9b3a20, 0x1c9a3: 0x6c596c20, - 0x1c9a4: 0x6cc8f220, 0x1c9a5: 0x6cb1d420, 0x1c9a6: 0x6cf6f020, 0x1c9a7: 0x6cbc0220, - 0x1c9a8: 0x6cb45a20, 0x1c9a9: 0x6d3a8420, 0x1c9aa: 0x6c2aea20, 0x1c9ab: 0x6cd07e20, - 0x1c9ac: 0x6cd76020, 0x1c9ad: 0x6c8a7c20, 0x1c9ae: 0x6c185020, 0x1c9af: 0x6cfbac20, - 0x1c9b0: 0x6c771220, 0x1c9b1: 0x6d132a20, 0x1c9b2: 0x6d074820, 0x1c9b3: 0x6ce79220, - 0x1c9b4: 0x6ca1ea20, 0x1c9b5: 0x6c8be620, 0x1c9b6: 0x6c4b7e20, 0x1c9b7: 0x6c66e020, - 0x1c9b8: 0x6d136420, 0x1c9b9: 0x6c00f420, 0x1c9ba: 0x6c5c6a20, 0x1c9bb: 0x6d2dac20, - 0x1c9bc: 0x6c65f220, 0x1c9bd: 0x6c47e620, 0x1c9be: 0x6d2fea20, 0x1c9bf: 0x6cc1e420, - // Block 0x727, offset 0x1c9c0 - 0x1c9c0: 0x6c9a3420, 0x1c9c1: 0x6c1e3620, 0x1c9c2: 0x6ccb0620, 0x1c9c3: 0x6ca94c20, - 0x1c9c4: 0x6d09c020, 0x1c9c5: 0x6d123e20, 0x1c9c6: 0x6c5e1820, 0x1c9c7: 0x6c9b7020, - 0x1c9c8: 0x6c9de620, 0x1c9c9: 0x6cb22020, 0x1c9ca: 0x6c9de820, 0x1c9cb: 0x6c870220, - 0x1c9cc: 0x6c7c1420, 0x1c9cd: 0x6c750020, 0x1c9ce: 0x6d07e220, 0x1c9cf: 0x6c9dee20, - 0x1c9d0: 0x6c5e4a20, 0x1c9d1: 0x6c919220, 0x1c9d2: 0x6c9b8e20, 0x1c9d3: 0x6c8fe420, - 0x1c9d4: 0x6c49bc20, 0x1c9d5: 0x6c97d620, 0x1c9d6: 0x6cf82e20, 0x1c9d7: 0x6c1f9020, - 0x1c9d8: 0x6ce19620, 0x1c9d9: 0x6c771c20, 0x1c9da: 0x6d3a9620, 0x1c9db: 0x6c98c220, - 0x1c9dc: 0x6c6c3220, 0x1c9dd: 0x6c8ba620, 0x1c9de: 0x6d234a20, 0x1c9df: 0x6cd78420, - 0x1c9e0: 0x6d2ad220, 0x1c9e1: 0x6c752c20, 0x1c9e2: 0x6cd2a820, 0x1c9e3: 0x6d15c020, - 0x1c9e4: 0x6cd04820, 0x1c9e5: 0x6d339c20, 0x1c9e6: 0x6c53f020, 0x1c9e7: 0x6cd04e20, - 0x1c9e8: 0x6d1ce020, 0x1c9e9: 0x6c72d420, 0x1c9ea: 0x6d387820, 0x1c9eb: 0x6c68e820, - 0x1c9ec: 0x6c25e220, 0x1c9ed: 0x6c32ae20, 0x1c9ee: 0x6c006820, 0x1c9ef: 0x6c695020, - 0x1c9f0: 0x6d2b9820, 0x1c9f1: 0x6d265c20, 0x1c9f2: 0x6c03ce20, 0x1c9f3: 0x6cd22c20, - 0x1c9f4: 0x6c2f9420, 0x1c9f5: 0x6cb73a20, 0x1c9f6: 0x6c5e8620, 0x1c9f7: 0x6d3eee20, - 0x1c9f8: 0x6c417c20, 0x1c9f9: 0x6cf4ba20, 0x1c9fa: 0x6d302020, 0x1c9fb: 0x6c7a2a20, - 0x1c9fc: 0x6c426420, 0x1c9fd: 0x6cf84c20, 0x1c9fe: 0x6c388820, 0x1c9ff: 0x6c7be620, - // Block 0x728, offset 0x1ca00 - 0x1ca00: 0x6c295820, 0x1ca01: 0x6c969220, 0x1ca02: 0x6ccbd220, 0x1ca03: 0x6c27c420, - 0x1ca04: 0x6c740220, 0x1ca05: 0x6c85ac20, 0x1ca06: 0x6c3d4e20, 0x1ca07: 0x6c9f3e20, - 0x1ca08: 0x6c35b020, 0x1ca09: 0x6c5da620, 0x1ca0a: 0x6c772820, 0x1ca0b: 0x6d350620, - 0x1ca0c: 0x6cb75c20, 0x1ca0d: 0x6c76c420, 0x1ca0e: 0x6c6bd020, 0x1ca0f: 0x6c0d2a20, - 0x1ca10: 0x6c35e020, 0x1ca11: 0x6d0b8820, 0x1ca12: 0x6caf4e20, 0x1ca13: 0x6d302420, - 0x1ca14: 0x6d0c7820, 0x1ca15: 0x6cdc2a20, 0x1ca16: 0x6d3b7820, 0x1ca17: 0x6c17d220, - 0x1ca18: 0x6c33e020, 0x1ca19: 0x6cac3c20, 0x1ca1a: 0x6d0e4a20, 0x1ca1b: 0x6c6d7e20, - 0x1ca1c: 0x6c3c2a20, 0x1ca1d: 0x6c381020, 0x1ca1e: 0x6ca0f820, 0x1ca1f: 0x6d2c7820, - 0x1ca20: 0x6c707020, 0x1ca21: 0x6d22f620, 0x1ca22: 0x6c77f020, 0x1ca23: 0x6ceb0a20, - 0x1ca24: 0x6ceb0c20, 0x1ca25: 0x6c2bec20, 0x1ca26: 0x6d2d3c20, 0x1ca27: 0x6d314220, - 0x1ca28: 0x6c35fc20, 0x1ca29: 0x6c3e3820, 0x1ca2a: 0x6ca23e20, 0x1ca2b: 0x6d3ad820, - 0x1ca2c: 0x6c7e5c20, 0x1ca2d: 0x6c0aee20, 0x1ca2e: 0x6caa5620, 0x1ca2f: 0x6cb25220, - 0x1ca30: 0x6cae6020, 0x1ca31: 0x6c8cce20, 0x1ca32: 0x6cad8a20, 0x1ca33: 0x6c821e20, - 0x1ca34: 0x6cb37c20, 0x1ca35: 0x6c0e6220, 0x1ca36: 0x6cb37e20, 0x1ca37: 0x6ccfd020, - 0x1ca38: 0x6d28b020, 0x1ca39: 0x6c009820, 0x1ca3a: 0x6c85d620, 0x1ca3b: 0x6c8f8020, - 0x1ca3c: 0x6ce73a20, 0x1ca3d: 0x6d1e8420, 0x1ca3e: 0x6c85d820, 0x1ca3f: 0x6c7c2a20, - // Block 0x729, offset 0x1ca40 - 0x1ca40: 0x6c1ed820, 0x1ca41: 0x6c793620, 0x1ca42: 0x6cc2e420, 0x1ca43: 0x6d399c20, - 0x1ca44: 0x6c7b9c20, 0x1ca45: 0x6c4a5a20, 0x1ca46: 0x6c361420, 0x1ca47: 0x6ca4a620, - 0x1ca48: 0x6cb86420, 0x1ca49: 0x6c924420, 0x1ca4a: 0x6cefb220, 0x1ca4b: 0x6c009a20, - 0x1ca4c: 0x6c448420, 0x1ca4d: 0x6cfcb620, 0x1ca4e: 0x6d03e220, 0x1ca4f: 0x6d0c8a20, - 0x1ca50: 0x6c307420, 0x1ca51: 0x6cae6c20, 0x1ca52: 0x6cf5fc20, 0x1ca53: 0x6c81f220, - 0x1ca54: 0x6c533c20, 0x1ca55: 0x6cd78020, 0x1ca56: 0x6cf9b020, 0x1ca57: 0x6cbb7020, - 0x1ca58: 0x6cbeea20, 0x1ca59: 0x6cef0220, 0x1ca5a: 0x6cbbdc20, 0x1ca5b: 0x6d176820, - 0x1ca5c: 0x6c793e20, 0x1ca5d: 0x6cfec620, 0x1ca5e: 0x6cc3c220, 0x1ca5f: 0x6c162a20, - 0x1ca60: 0x6c80c820, 0x1ca61: 0x6c52ac20, 0x1ca62: 0x6d213020, 0x1ca63: 0x6cfec820, - 0x1ca64: 0x6cf9c620, 0x1ca65: 0x6c988e20, 0x1ca66: 0x6c960220, 0x1ca67: 0x6d1e3c20, - 0x1ca68: 0x6c17dc20, 0x1ca69: 0x6c182220, 0x1ca6a: 0x6cf2f620, 0x1ca6b: 0x6c8e5c20, - 0x1ca6c: 0x6d1d3c20, 0x1ca6d: 0x6c985a20, 0x1ca6e: 0x6cc3c420, 0x1ca6f: 0x6d0e7820, - 0x1ca70: 0x6ccbf620, 0x1ca71: 0x6c7dac20, 0x1ca72: 0x6d234c20, 0x1ca73: 0x6c1c2420, - 0x1ca74: 0x6c57de20, 0x1ca75: 0x6c91be20, 0x1ca76: 0x6c190420, 0x1ca77: 0x6c659a20, - 0x1ca78: 0x6caaa820, 0x1ca79: 0x6cd92620, 0x1ca7a: 0x6d3d6e20, 0x1ca7b: 0x6c794620, - 0x1ca7c: 0x6caeaa20, 0x1ca7d: 0x6d0c1420, 0x1ca7e: 0x6d3c9220, 0x1ca7f: 0x6c797e20, - // Block 0x72a, offset 0x1ca80 - 0x1ca80: 0x6c19ec20, 0x1ca81: 0x6cb5fc20, 0x1ca82: 0x6d402220, 0x1ca83: 0x6cbecc20, - 0x1ca84: 0x6c8bbc20, 0x1ca85: 0x6c757420, 0x1ca86: 0x6c0e7e20, 0x1ca87: 0x6c2fac20, - 0x1ca88: 0x6c9f6420, 0x1ca89: 0x6c2dce20, 0x1ca8a: 0x6c64bc20, 0x1ca8b: 0x6c51d020, - 0x1ca8c: 0x6c926e20, 0x1ca8d: 0x6c00ac20, 0x1ca8e: 0x6cdc4e20, 0x1ca8f: 0x6cc3d220, - 0x1ca90: 0x6c837c20, 0x1ca91: 0x6c06b020, 0x1ca92: 0x6d1a7420, 0x1ca93: 0x6c334c20, - 0x1ca94: 0x6cf45220, 0x1ca95: 0x6cb5fe20, 0x1ca96: 0x6c951820, 0x1ca97: 0x6ced2e20, - 0x1ca98: 0x6c2d2020, 0x1ca99: 0x6ca4b220, 0x1ca9a: 0x6c073420, 0x1ca9b: 0x6cb7a420, - 0x1ca9c: 0x6c190620, 0x1ca9d: 0x6cc87020, 0x1ca9e: 0x6d0cb620, 0x1ca9f: 0x6c2ed220, - 0x1caa0: 0x6c2fb020, 0x1caa1: 0x6c31a820, 0x1caa2: 0x6ceb2e20, 0x1caa3: 0x6c6b0c20, - 0x1caa4: 0x6d1bc620, 0x1caa5: 0x6c0b4420, 0x1caa6: 0x6c78c620, 0x1caa7: 0x6c0a0220, - 0x1caa8: 0x6cf0b020, 0x1caa9: 0x6cd79220, 0x1caaa: 0x6d318220, 0x1caab: 0x6c32d420, - 0x1caac: 0x6cf9de20, 0x1caad: 0x6c297a20, 0x1caae: 0x6ce35420, 0x1caaf: 0x6ca50c20, - 0x1cab0: 0x6caf1420, 0x1cab1: 0x6c65c420, 0x1cab2: 0x6c2c8220, 0x1cab3: 0x6ce0a220, - 0x1cab4: 0x6c13f620, 0x1cab5: 0x6ce54220, 0x1cab6: 0x6cb7b420, 0x1cab7: 0x6c341420, - 0x1cab8: 0x6c3c5e20, 0x1cab9: 0x6d08a420, 0x1caba: 0x6cc3f020, 0x1cabb: 0x6cc3f220, - 0x1cabc: 0x6c96a020, 0x1cabd: 0x6c45a620, 0x1cabe: 0x6ca73820, 0x1cabf: 0x6cdb0820, - // Block 0x72b, offset 0x1cac0 - 0x1cac0: 0x6c357820, 0x1cac1: 0x6c225420, 0x1cac2: 0x6c8e8820, 0x1cac3: 0x6cd81a20, - 0x1cac4: 0x6ce12620, 0x1cac5: 0x6c058820, 0x1cac6: 0x6c574620, 0x1cac7: 0x6caf8620, - 0x1cac8: 0x6ceff420, 0x1cac9: 0x6cca8820, 0x1caca: 0x6c82d220, 0x1cacb: 0x6c25c420, - 0x1cacc: 0x6ce4ba20, 0x1cacd: 0x6cf9e620, 0x1cace: 0x6cf6aa20, 0x1cacf: 0x6c883e20, - 0x1cad0: 0x6cac7020, 0x1cad1: 0x6cef3020, 0x1cad2: 0x6d27fc20, 0x1cad3: 0x6c330e20, - 0x1cad4: 0x6d307e20, 0x1cad5: 0x6c782620, 0x1cad6: 0x6c7e6020, 0x1cad7: 0x6d3b8c20, - 0x1cad8: 0x6cbed820, 0x1cad9: 0x6c4be420, 0x1cada: 0x6d3b9220, 0x1cadb: 0x6c152620, - 0x1cadc: 0x6cb7da20, 0x1cadd: 0x6c026c20, 0x1cade: 0x6cae8620, 0x1cadf: 0x6c8f4020, - 0x1cae0: 0x6c91de20, 0x1cae1: 0x6c771420, 0x1cae2: 0x6c209a20, 0x1cae3: 0x6c190e20, - 0x1cae4: 0x6d1afe20, 0x1cae5: 0x6c82d820, 0x1cae6: 0x6c0c1e20, 0x1cae7: 0x6cb7dc20, - 0x1cae8: 0x6ca07c20, 0x1cae9: 0x6cb7de20, 0x1caea: 0x6c24e820, 0x1caeb: 0x6d3fc220, - 0x1caec: 0x6cbeda20, 0x1caed: 0x6c21da20, 0x1caee: 0x6c952a20, 0x1caef: 0x6c5f5420, - 0x1caf0: 0x6ccdbe20, 0x1caf1: 0x6c817c20, 0x1caf2: 0x6cc1c020, 0x1caf3: 0x6d2b9a20, - 0x1caf4: 0x6c2aec20, 0x1caf5: 0x6c66e220, 0x1caf6: 0x6cf8f220, 0x1caf7: 0x6c8be820, - 0x1caf8: 0x6c2fbe20, 0x1caf9: 0x6ce01e20, 0x1cafa: 0x6c59fc20, 0x1cafb: 0x6cac7620, - 0x1cafc: 0x6d28ce20, 0x1cafd: 0x6cbbb820, 0x1cafe: 0x6c2b4820, 0x1caff: 0x6c86aa20, - // Block 0x72c, offset 0x1cb00 - 0x1cb00: 0x6c673e20, 0x1cb01: 0x6c688220, 0x1cb02: 0x6cf94a20, 0x1cb03: 0x6d2f0e20, - 0x1cb04: 0x6cbc0420, 0x1cb05: 0x6c33b620, 0x1cb06: 0x6c65f420, 0x1cb07: 0x6d241220, - 0x1cb08: 0x6d3cb420, 0x1cb09: 0x6c518420, 0x1cb0a: 0x6c78e020, 0x1cb0b: 0x6d2b1420, - 0x1cb0c: 0x6c826a20, 0x1cb0d: 0x6c787220, 0x1cb0e: 0x6c1ef620, 0x1cb0f: 0x6d137020, - 0x1cb10: 0x6cc40c20, 0x1cb11: 0x6c299a20, 0x1cb12: 0x6d161e20, 0x1cb13: 0x6c678e20, - 0x1cb14: 0x6caf9e20, 0x1cb15: 0x6cafa020, 0x1cb16: 0x6d243020, 0x1cb17: 0x6cb1f420, - 0x1cb18: 0x6c36d020, 0x1cb19: 0x6c00fe20, 0x1cb1a: 0x6c783e20, 0x1cb1b: 0x6c652220, - 0x1cb1c: 0x6d243220, 0x1cb1d: 0x6cc88e20, 0x1cb1e: 0x6c9b7220, 0x1cb1f: 0x6cada020, - 0x1cb20: 0x6c227820, 0x1cb21: 0x6c0f9020, 0x1cb22: 0x6d107c20, 0x1cb23: 0x6c96e420, - 0x1cb24: 0x6c10e620, 0x1cb25: 0x6cfbc820, 0x1cb26: 0x6c7c1620, 0x1cb27: 0x6c828020, - 0x1cb28: 0x6c82fe20, 0x1cb29: 0x6d375420, 0x1cb2a: 0x6c870420, 0x1cb2b: 0x6c872e20, - 0x1cb2c: 0x6c38e420, 0x1cb2d: 0x6cc41c20, 0x1cb2e: 0x6cada620, 0x1cb2f: 0x6d1c3020, - 0x1cb30: 0x6c874a20, 0x1cb31: 0x6c8fe620, 0x1cb32: 0x6c8fe820, 0x1cb33: 0x6ca19620, - 0x1cb34: 0x6c0fc220, 0x1cb35: 0x6cd6b420, 0x1cb36: 0x6c49be20, 0x1cb37: 0x6c800020, - 0x1cb38: 0x6d298620, 0x1cb39: 0x6d0d1820, 0x1cb3a: 0x6cd2f420, 0x1cb3b: 0x6cd2e620, - 0x1cb3c: 0x6c84f420, 0x1cb3d: 0x6cc61c20, 0x1cb3e: 0x6ccf3620, 0x1cb3f: 0x6d268020, - // Block 0x72d, offset 0x1cb40 - 0x1cb40: 0x6cd88420, 0x1cb41: 0x6cb56820, 0x1cb42: 0x6cdde220, 0x1cb43: 0x6c96b420, - 0x1cb44: 0x6d016420, 0x1cb45: 0x6d109420, 0x1cb46: 0x6cfa8020, 0x1cb47: 0x6cb58820, - 0x1cb48: 0x6cb58a20, 0x1cb49: 0x6d34f820, 0x1cb4a: 0x6c07d820, 0x1cb4b: 0x6c333a20, - 0x1cb4c: 0x6d381820, 0x1cb4d: 0x6cc5d620, 0x1cb4e: 0x6d13cc20, 0x1cb4f: 0x6cd25420, - 0x1cb50: 0x6d203020, 0x1cb51: 0x6d35a820, 0x1cb52: 0x6ce57a20, 0x1cb53: 0x6c3e1e20, - 0x1cb54: 0x6c3fc420, 0x1cb55: 0x6c9d2e20, 0x1cb56: 0x6d411420, 0x1cb57: 0x6d33ac20, - 0x1cb58: 0x6cdb9620, 0x1cb59: 0x6c9a8420, 0x1cb5a: 0x6d428620, 0x1cb5b: 0x6cc0ec20, - 0x1cb5c: 0x6c567220, 0x1cb5d: 0x6d3ac620, 0x1cb5e: 0x6cd03a20, 0x1cb5f: 0x6cdc3020, - 0x1cb60: 0x6c223020, 0x1cb61: 0x6c147a20, 0x1cb62: 0x6c9c3e20, 0x1cb63: 0x6c939020, - 0x1cb64: 0x6d223e20, 0x1cb65: 0x6cfdbc20, 0x1cb66: 0x6cf3c620, 0x1cb67: 0x6ce55620, - 0x1cb68: 0x6cb1ae20, 0x1cb69: 0x6d3ada20, 0x1cb6a: 0x6c4aec20, 0x1cb6b: 0x6cf9ae20, - 0x1cb6c: 0x6d33c820, 0x1cb6d: 0x6c61f420, 0x1cb6e: 0x6c434620, 0x1cb6f: 0x6d314420, - 0x1cb70: 0x6c434820, 0x1cb71: 0x6cd71e20, 0x1cb72: 0x6c6d0620, 0x1cb73: 0x6cd0a020, - 0x1cb74: 0x6c40f620, 0x1cb75: 0x6c7daa20, 0x1cb76: 0x6c2c4820, 0x1cb77: 0x6c29d820, - 0x1cb78: 0x6c5dc620, 0x1cb79: 0x6ce22820, 0x1cb7a: 0x6cb5ee20, 0x1cb7b: 0x6c481620, - 0x1cb7c: 0x6c498a20, 0x1cb7d: 0x6d41b420, 0x1cb7e: 0x6c8d0820, 0x1cb7f: 0x6c925a20, - // Block 0x72e, offset 0x1cb80 - 0x1cb80: 0x6c0de820, 0x1cb81: 0x6c6d1a20, 0x1cb82: 0x6c29da20, 0x1cb83: 0x6d346620, - 0x1cb84: 0x6c925820, 0x1cb85: 0x6c14f820, 0x1cb86: 0x6c06a620, 0x1cb87: 0x6d30d820, - 0x1cb88: 0x6c5aca20, 0x1cb89: 0x6d1fd620, 0x1cb8a: 0x6cf8a220, 0x1cb8b: 0x6d19ee20, - 0x1cb8c: 0x6d3e5420, 0x1cb8d: 0x6c5dd420, 0x1cb8e: 0x6d316e20, 0x1cb8f: 0x6c3e9c20, - 0x1cb90: 0x6d262420, 0x1cb91: 0x6cf3d020, 0x1cb92: 0x6cfc1820, 0x1cb93: 0x6d0fca20, - 0x1cb94: 0x6d33f420, 0x1cb95: 0x6d13fc20, 0x1cb96: 0x6c9a1220, 0x1cb97: 0x6cd7f820, - 0x1cb98: 0x6c2c6c20, 0x1cb99: 0x6c077a20, 0x1cb9a: 0x6d3d8220, 0x1cb9b: 0x6d318420, - 0x1cb9c: 0x6d1e5620, 0x1cb9d: 0x6c606c20, 0x1cb9e: 0x6c435220, 0x1cb9f: 0x6ce11a20, - 0x1cba0: 0x6cd80420, 0x1cba1: 0x6c96d020, 0x1cba2: 0x6cde7820, 0x1cba3: 0x6c40b620, - 0x1cba4: 0x6d07bc20, 0x1cba5: 0x6cb63c20, 0x1cba6: 0x6d241420, 0x1cba7: 0x6cf81220, - 0x1cba8: 0x6c5f3a20, 0x1cba9: 0x6cd8e020, 0x1cbaa: 0x6c152820, 0x1cbab: 0x6c28b420, - 0x1cbac: 0x6c4b8020, 0x1cbad: 0x6cdc7820, 0x1cbae: 0x6c853820, 0x1cbaf: 0x6ca9d020, - 0x1cbb0: 0x6c9c8a20, 0x1cbb1: 0x6c29f820, 0x1cbb2: 0x6c86d620, 0x1cbb3: 0x6cc4ee20, - 0x1cbb4: 0x6d271620, 0x1cbb5: 0x6ce3b420, 0x1cbb6: 0x6d29c220, 0x1cbb7: 0x6c836420, - 0x1cbb8: 0x6cc74020, 0x1cbb9: 0x6d222e20, 0x1cbba: 0x6d20dc20, 0x1cbbb: 0x6c83ae20, - 0x1cbbc: 0x6d019820, 0x1cbbd: 0x6cbd7620, 0x1cbbe: 0x6c50b220, 0x1cbbf: 0x6ce83c20, - // Block 0x72f, offset 0x1cbc0 - 0x1cbc0: 0x6d052c20, 0x1cbc1: 0x6cd7c620, 0x1cbc2: 0x6cc56c20, 0x1cbc3: 0x6ce83e20, - 0x1cbc4: 0x6d3ef020, 0x1cbc5: 0x6c13c820, 0x1cbc6: 0x6c41cc20, 0x1cbc7: 0x6d16cc20, - 0x1cbc8: 0x6cfa8220, 0x1cbc9: 0x6c0dc620, 0x1cbca: 0x6ca6f620, 0x1cbcb: 0x6cbfa620, - 0x1cbcc: 0x6cbfa820, 0x1cbcd: 0x6d37e820, 0x1cbce: 0x6c3bd420, 0x1cbcf: 0x6c502220, - 0x1cbd0: 0x6d279020, 0x1cbd1: 0x6c77e620, 0x1cbd2: 0x6c9e8c20, 0x1cbd3: 0x6d33ae20, - 0x1cbd4: 0x6c6d9820, 0x1cbd5: 0x6c08c820, 0x1cbd6: 0x6d33b020, 0x1cbd7: 0x6d22e620, - 0x1cbd8: 0x6c9d3420, 0x1cbd9: 0x6c7a8a20, 0x1cbda: 0x6c04f420, 0x1cbdb: 0x6caf5620, - 0x1cbdc: 0x6ca5ce20, 0x1cbdd: 0x6c85da20, 0x1cbde: 0x6d1f1a20, 0x1cbdf: 0x6d409a20, - 0x1cbe0: 0x6caf5820, 0x1cbe1: 0x6c0edc20, 0x1cbe2: 0x6c8cd020, 0x1cbe3: 0x6ca0fc20, - 0x1cbe4: 0x6c1a8020, 0x1cbe5: 0x6ca6fe20, 0x1cbe6: 0x6cbd6620, 0x1cbe7: 0x6d0f5620, - 0x1cbe8: 0x6d423220, 0x1cbe9: 0x6d35c420, 0x1cbea: 0x6d33ca20, 0x1cbeb: 0x6cd52420, - 0x1cbec: 0x6c721a20, 0x1cbed: 0x6d3ef620, 0x1cbee: 0x6c5d7220, 0x1cbef: 0x6c5ea820, - 0x1cbf0: 0x6c196220, 0x1cbf1: 0x6ce74220, 0x1cbf2: 0x6d35f820, 0x1cbf3: 0x6c5d7620, - 0x1cbf4: 0x6c511220, 0x1cbf5: 0x6d19ce20, 0x1cbf6: 0x6d3e2620, 0x1cbf7: 0x6d35fa20, - 0x1cbf8: 0x6c6a0220, 0x1cbf9: 0x6cc59420, 0x1cbfa: 0x6c325020, 0x1cbfb: 0x6d14e820, - 0x1cbfc: 0x6d399e20, 0x1cbfd: 0x6c5bb820, 0x1cbfe: 0x6ca9ba20, 0x1cbff: 0x6c3ff420, - // Block 0x730, offset 0x1cc00 - 0x1cc00: 0x6cf62020, 0x1cc01: 0x6c77aa20, 0x1cc02: 0x6c80ca20, 0x1cc03: 0x6c3d7420, - 0x1cc04: 0x6d0a9020, 0x1cc05: 0x6cd72020, 0x1cc06: 0x6c939420, 0x1cc07: 0x6c7dae20, - 0x1cc08: 0x6c41da20, 0x1cc09: 0x6c6db820, 0x1cc0a: 0x6ce32e20, 0x1cc0b: 0x6c1a0c20, - 0x1cc0c: 0x6ce8b420, 0x1cc0d: 0x6cce7020, 0x1cc0e: 0x6cd72220, 0x1cc0f: 0x6d0bc020, - 0x1cc10: 0x6c951a20, 0x1cc11: 0x6c927020, 0x1cc12: 0x6c481c20, 0x1cc13: 0x6d424420, - 0x1cc14: 0x6cc59a20, 0x1cc15: 0x6d3ce620, 0x1cc16: 0x6c057c20, 0x1cc17: 0x6c044a20, - 0x1cc18: 0x6c5eec20, 0x1cc19: 0x6d33f620, 0x1cc1a: 0x6d366020, 0x1cc1b: 0x6c7db420, - 0x1cc1c: 0x6c837e20, 0x1cc1d: 0x6caeac20, 0x1cc1e: 0x6c780a20, 0x1cc1f: 0x6c0dea20, - 0x1cc20: 0x6c1dbe20, 0x1cc21: 0x6d41b620, 0x1cc22: 0x6d237420, 0x1cc23: 0x6cda5220, - 0x1cc24: 0x6c94ae20, 0x1cc25: 0x6cfd8020, 0x1cc26: 0x6d140620, 0x1cc27: 0x6cf8b620, - 0x1cc28: 0x6c0b4620, 0x1cc29: 0x6c624820, 0x1cc2a: 0x6c3ec420, 0x1cc2b: 0x6cb0b020, - 0x1cc2c: 0x6cab0820, 0x1cc2d: 0x6c6a2c20, 0x1cc2e: 0x6d380420, 0x1cc2f: 0x6d3fa820, - 0x1cc30: 0x6d064e20, 0x1cc31: 0x6c197e20, 0x1cc32: 0x6c2a2220, 0x1cc33: 0x6cf1e820, - 0x1cc34: 0x6cfb8220, 0x1cc35: 0x6d3e6820, 0x1cc36: 0x6d23c820, 0x1cc37: 0x6c626420, - 0x1cc38: 0x6d072e20, 0x1cc39: 0x6d31f420, 0x1cc3a: 0x6d36b820, 0x1cc3b: 0x6c2a2a20, - 0x1cc3c: 0x6c645420, 0x1cc3d: 0x6c5f1820, 0x1cc3e: 0x6c431820, 0x1cc3f: 0x6c431a20, - // Block 0x731, offset 0x1cc40 - 0x1cc40: 0x6c47c420, 0x1cc41: 0x6cc6a020, 0x1cc42: 0x6cdc6020, 0x1cc43: 0x6cc73c20, - 0x1cc44: 0x6c627a20, 0x1cc45: 0x6c775220, 0x1cc46: 0x6ca2ac20, 0x1cc47: 0x6c11dc20, - 0x1cc48: 0x6c9a2620, 0x1cc49: 0x6d370c20, 0x1cc4a: 0x6c624a20, 0x1cc4b: 0x6c92d620, - 0x1cc4c: 0x6cda5a20, 0x1cc4d: 0x6c5f3c20, 0x1cc4e: 0x6d1d0c20, 0x1cc4f: 0x6cf1f020, - 0x1cc50: 0x6cbfc420, 0x1cc51: 0x6ccb6020, 0x1cc52: 0x6c51e620, 0x1cc53: 0x6d18aa20, - 0x1cc54: 0x6c59fe20, 0x1cc55: 0x6cbce620, 0x1cc56: 0x6c615620, 0x1cc57: 0x6cdc8820, - 0x1cc58: 0x6cff2020, 0x1cc59: 0x6cb45e20, 0x1cc5a: 0x6c688420, 0x1cc5b: 0x6d3d0c20, - 0x1cc5c: 0x6d380c20, 0x1cc5d: 0x6d41e620, 0x1cc5e: 0x6c93ba20, 0x1cc5f: 0x6cdc8c20, - 0x1cc60: 0x6ca9d420, 0x1cc61: 0x6ccb7820, 0x1cc62: 0x6c5c6c20, 0x1cc63: 0x6cc4de20, - 0x1cc64: 0x6cab1e20, 0x1cc65: 0x6d243420, 0x1cc66: 0x6cb1f820, 0x1cc67: 0x6c62bc20, - 0x1cc68: 0x6ce9ce20, 0x1cc69: 0x6cf1f420, 0x1cc6a: 0x6c199e20, 0x1cc6b: 0x6c5e1a20, - 0x1cc6c: 0x6c7c1820, 0x1cc6d: 0x6c93c020, 0x1cc6e: 0x6c0c4c20, 0x1cc6f: 0x6ccba820, - 0x1cc70: 0x6cc4f420, 0x1cc71: 0x6d3d1620, 0x1cc72: 0x6c84d420, 0x1cc73: 0x6c24aa20, - 0x1cc74: 0x6d08f220, 0x1cc75: 0x6cebc420, 0x1cc76: 0x6c6f5620, 0x1cc77: 0x6cbefa20, - 0x1cc78: 0x6cf59020, 0x1cc79: 0x6cbefe20, 0x1cc7a: 0x6c796820, 0x1cc7b: 0x6d207a20, - 0x1cc7c: 0x6ccfc020, 0x1cc7d: 0x6c6e1a20, 0x1cc7e: 0x6d11f220, 0x1cc7f: 0x6c1fe020, - // Block 0x732, offset 0x1cc80 - 0x1cc80: 0x6d3cce20, 0x1cc81: 0x6ce84420, 0x1cc82: 0x6c814620, 0x1cc83: 0x6cbca020, - 0x1cc84: 0x6d2d2820, 0x1cc85: 0x6d11a020, 0x1cc86: 0x6c0b3020, 0x1cc87: 0x6c05c420, - 0x1cc88: 0x6d11a220, 0x1cc89: 0x6c0ddc20, 0x1cc8a: 0x6cebd420, 0x1cc8b: 0x6d3a0820, - 0x1cc8c: 0x6c699020, 0x1cc8d: 0x6cbc3a20, 0x1cc8e: 0x6c2e1020, 0x1cc8f: 0x6cf36620, - 0x1cc90: 0x6c4a5e20, 0x1cc91: 0x6d10ea20, 0x1cc92: 0x6d35fc20, 0x1cc93: 0x6c205020, - 0x1cc94: 0x6d120220, 0x1cc95: 0x6ce5c220, 0x1cc96: 0x6c69a020, 0x1cc97: 0x6c205220, - 0x1cc98: 0x6c6f1220, 0x1cc99: 0x6cfeca20, 0x1cc9a: 0x6c19f020, 0x1cc9b: 0x6c79ec20, - 0x1cc9c: 0x6c24ac20, 0x1cc9d: 0x6cf29420, 0x1cc9e: 0x6c289420, 0x1cc9f: 0x6c7a4a20, - 0x1cca0: 0x6c780c20, 0x1cca1: 0x6d3d7020, 0x1cca2: 0x6d05b420, 0x1cca3: 0x6cda5420, - 0x1cca4: 0x6c491c20, 0x1cca5: 0x6c7c3e20, 0x1cca6: 0x6c312420, 0x1cca7: 0x6d3dfa20, - 0x1cca8: 0x6d09a020, 0x1cca9: 0x6cf29620, 0x1ccaa: 0x6cebea20, 0x1ccab: 0x6d0bc620, - 0x1ccac: 0x6d217820, 0x1ccad: 0x6c726a20, 0x1ccae: 0x6cbf5220, 0x1ccaf: 0x6d113a20, - 0x1ccb0: 0x6d113c20, 0x1ccb1: 0x6ce5cc20, 0x1ccb2: 0x6c177820, 0x1ccb3: 0x6d228020, - 0x1ccb4: 0x6ce4bc20, 0x1ccb5: 0x6c2e3e20, 0x1ccb6: 0x6c729220, 0x1ccb7: 0x6c8aa820, - 0x1ccb8: 0x6cf6ce20, 0x1ccb9: 0x6cf52220, 0x1ccba: 0x6c7c4420, 0x1ccbb: 0x6c206220, - 0x1ccbc: 0x6d2f7220, 0x1ccbd: 0x6c7b7c20, 0x1ccbe: 0x6c7b7420, 0x1ccbf: 0x6c907420, - // Block 0x733, offset 0x1ccc0 - 0x1ccc0: 0x6c199c20, 0x1ccc1: 0x6c256c20, 0x1ccc2: 0x6cb18420, 0x1ccc3: 0x6d2a9420, - 0x1ccc4: 0x6c24ba20, 0x1ccc5: 0x6cbc6820, 0x1ccc6: 0x6cbf7820, 0x1ccc7: 0x6c314c20, - 0x1ccc8: 0x6d2a9e20, 0x1ccc9: 0x6c904620, 0x1ccca: 0x6cbd0a20, 0x1cccb: 0x6c856c20, - 0x1cccc: 0x6c1f0a20, 0x1cccd: 0x6cd40c20, 0x1ccce: 0x6c3fb820, 0x1cccf: 0x6cba9220, - 0x1ccd0: 0x6c1f1c20, 0x1ccd1: 0x6c531820, 0x1ccd2: 0x6cb59820, 0x1ccd3: 0x6c508620, - 0x1ccd4: 0x6cd18420, 0x1ccd5: 0x6c3c0820, 0x1ccd6: 0x6cd5b220, 0x1ccd7: 0x6c9eb020, - 0x1ccd8: 0x6cc24020, 0x1ccd9: 0x6d2e5220, 0x1ccda: 0x6d3adc20, 0x1ccdb: 0x6c8cd420, - 0x1ccdc: 0x6c8f8220, 0x1ccdd: 0x6c0e1620, 0x1ccde: 0x6c6e6a20, 0x1ccdf: 0x6c6e7e20, - 0x1cce0: 0x6d2eb620, 0x1cce1: 0x6c046620, 0x1cce2: 0x6cd8c220, 0x1cce3: 0x6c75c020, - 0x1cce4: 0x6c534e20, 0x1cce5: 0x6ce74a20, 0x1cce6: 0x6cd95a20, 0x1cce7: 0x6c6e8820, - 0x1cce8: 0x6c2e2e20, 0x1cce9: 0x6d17f820, 0x1ccea: 0x6cd5e820, 0x1cceb: 0x6c6e7820, - 0x1ccec: 0x6cc24c20, 0x1cced: 0x6c6b1020, 0x1ccee: 0x6cb26020, 0x1ccef: 0x6c329e20, - 0x1ccf0: 0x6ccea620, 0x1ccf1: 0x6d3bac20, 0x1ccf2: 0x6c136220, 0x1ccf3: 0x6c2ab020, - 0x1ccf4: 0x6c259e20, 0x1ccf5: 0x6cec5a20, 0x1ccf6: 0x6c6ec020, 0x1ccf7: 0x6c76fa20, - 0x1ccf8: 0x6c6ec420, 0x1ccf9: 0x6d39f020, 0x1ccfa: 0x6d39f620, 0x1ccfb: 0x6c821a20, - 0x1ccfc: 0x6cae9220, 0x1ccfd: 0x6d20e020, 0x1ccfe: 0x6c1b0e20, 0x1ccff: 0x6c418820, - // Block 0x734, offset 0x1cd00 - 0x1cd00: 0x6c984220, 0x1cd01: 0x6d39fe20, 0x1cd02: 0x6cedb820, 0x1cd03: 0x6c321220, - 0x1cd04: 0x6c5eac20, 0x1cd05: 0x6cff7420, 0x1cd06: 0x6c03f020, 0x1cd07: 0x6cdb9820, - 0x1cd08: 0x6c5ffc20, 0x1cd09: 0x6cbdce20, 0x1cd0a: 0x6d2faa20, 0x1cd0b: 0x6cdce820, - 0x1cd0c: 0x6d0b2020, 0x1cd0d: 0x6d3c7e20, 0x1cd0e: 0x6d255220, 0x1cd0f: 0x6c568420, - 0x1cd10: 0x6c4f6820, 0x1cd11: 0x6cffe220, 0x1cd12: 0x6c132e20, 0x1cd13: 0x6c096c20, - 0x1cd14: 0x6c08d020, 0x1cd15: 0x6c658020, 0x1cd16: 0x6d15de20, 0x1cd17: 0x6c2ffc20, - 0x1cd18: 0x6ccce220, 0x1cd19: 0x6cd0fe20, 0x1cd1a: 0x6c264820, 0x1cd1b: 0x6c2b6c20, - 0x1cd1c: 0x6d3a0e20, 0x1cd1d: 0x6ca33420, 0x1cd1e: 0x6c1aac20, 0x1cd1f: 0x6c470620, - 0x1cd20: 0x6c85f620, 0x1cd21: 0x6cbcba20, 0x1cd22: 0x6c9faa20, 0x1cd23: 0x6c05ae20, - 0x1cd24: 0x6ce58220, 0x1cd25: 0x6cd8b620, 0x1cd26: 0x6c3e5820, 0x1cd27: 0x6c12de20, - 0x1cd28: 0x6c07b420, 0x1cd29: 0x6cae1a20, 0x1cd2a: 0x6c26a020, 0x1cd2b: 0x6d3f0620, - 0x1cd2c: 0x6c2c4a20, 0x1cd2d: 0x6c8cee20, 0x1cd2e: 0x6d2ac420, 0x1cd2f: 0x6caa4220, - 0x1cd30: 0x6c3e5a20, 0x1cd31: 0x6c467e20, 0x1cd32: 0x6c389620, 0x1cd33: 0x6c634e20, - 0x1cd34: 0x6c41d820, 0x1cd35: 0x6c394820, 0x1cd36: 0x6cd2cc20, 0x1cd37: 0x6c993820, - 0x1cd38: 0x6cb35620, 0x1cd39: 0x6ce45020, 0x1cd3a: 0x6c648a20, 0x1cd3b: 0x6cbf1820, - 0x1cd3c: 0x6c8f8a20, 0x1cd3d: 0x6c9fe420, 0x1cd3e: 0x6c0af020, 0x1cd3f: 0x6c960420, - // Block 0x735, offset 0x1cd40 - 0x1cd40: 0x6c4b4c20, 0x1cd41: 0x6cc10c20, 0x1cd42: 0x6c1b2620, 0x1cd43: 0x6d19e220, - 0x1cd44: 0x6d120820, 0x1cd45: 0x6cfc0e20, 0x1cd46: 0x6c08e220, 0x1cd47: 0x6cbf1a20, - 0x1cd48: 0x6c7dfa20, 0x1cd49: 0x6c2acc20, 0x1cd4a: 0x6cff8c20, 0x1cd4b: 0x6c6c4620, - 0x1cd4c: 0x6cc2f420, 0x1cd4d: 0x6cdcec20, 0x1cd4e: 0x6cc7ae20, 0x1cd4f: 0x6c381420, - 0x1cd50: 0x6c7b9e20, 0x1cd51: 0x6d3af620, 0x1cd52: 0x6ce7b820, 0x1cd53: 0x6c5ed820, - 0x1cd54: 0x6c26a820, 0x1cd55: 0x6c4f7a20, 0x1cd56: 0x6c12ee20, 0x1cd57: 0x6d383020, - 0x1cd58: 0x6c79ee20, 0x1cd59: 0x6c7f0e20, 0x1cd5a: 0x6c09a820, 0x1cd5b: 0x6ccc8a20, - 0x1cd5c: 0x6c28fe20, 0x1cd5d: 0x6d32c820, 0x1cd5e: 0x6c12fa20, 0x1cd5f: 0x6c3d7e20, - 0x1cd60: 0x6d27b420, 0x1cd61: 0x6ce8c620, 0x1cd62: 0x6cabd820, 0x1cd63: 0x6c83ec20, - 0x1cd64: 0x6c80d020, 0x1cd65: 0x6c71ba20, 0x1cd66: 0x6c495820, 0x1cd67: 0x6c65b020, - 0x1cd68: 0x6c4e1e20, 0x1cd69: 0x6ce75620, 0x1cd6a: 0x6cf9d620, 0x1cd6b: 0x6d366220, - 0x1cd6c: 0x6c1a0e20, 0x1cd6d: 0x6cdb9a20, 0x1cd6e: 0x6cd39e20, 0x1cd6f: 0x6d3b0c20, - 0x1cd70: 0x6d424620, 0x1cd71: 0x6cffb020, 0x1cd72: 0x6cce7620, 0x1cd73: 0x6ce67620, - 0x1cd74: 0x6c12fc20, 0x1cd75: 0x6d0c9e20, 0x1cd76: 0x6c435020, 0x1cd77: 0x6c7b2c20, - 0x1cd78: 0x6c41a020, 0x1cd79: 0x6c1dc020, 0x1cd7a: 0x6c7c2e20, 0x1cd7b: 0x6c42aa20, - 0x1cd7c: 0x6d27b620, 0x1cd7d: 0x6cab2a20, 0x1cd7e: 0x6cb8f420, 0x1cd7f: 0x6cffb220, - // Block 0x736, offset 0x1cd80 - 0x1cd80: 0x6c65b220, 0x1cd81: 0x6cb3de20, 0x1cd82: 0x6c7f1c20, 0x1cd83: 0x6d405c20, - 0x1cd84: 0x6c08ec20, 0x1cd85: 0x6c0a0420, 0x1cd86: 0x6c0a0620, 0x1cd87: 0x6c448c20, - 0x1cd88: 0x6cdf3020, 0x1cd89: 0x6c48e020, 0x1cd8a: 0x6d209420, 0x1cd8b: 0x6c64cc20, - 0x1cd8c: 0x6c2a2420, 0x1cd8d: 0x6c472420, 0x1cd8e: 0x6c1b4420, 0x1cd8f: 0x6d32e220, - 0x1cd90: 0x6cbed220, 0x1cd91: 0x6ccc6820, 0x1cd92: 0x6d38ec20, 0x1cd93: 0x6c928e20, - 0x1cd94: 0x6c0f3020, 0x1cd95: 0x6c5f0a20, 0x1cd96: 0x6c8bc420, 0x1cd97: 0x6cdb9e20, - 0x1cd98: 0x6c75d420, 0x1cd99: 0x6c3ec820, 0x1cd9a: 0x6d2c4220, 0x1cd9b: 0x6c472620, - 0x1cd9c: 0x6c798620, 0x1cd9d: 0x6cb9b220, 0x1cd9e: 0x6cb90a20, 0x1cd9f: 0x6c75d620, - 0x1cda0: 0x6c20dc20, 0x1cda1: 0x6c495a20, 0x1cda2: 0x6d250420, 0x1cda3: 0x6c130820, - 0x1cda4: 0x6d40cc20, 0x1cda5: 0x6c0fe620, 0x1cda6: 0x6d2ae420, 0x1cda7: 0x6cbcd620, - 0x1cda8: 0x6cebb020, 0x1cda9: 0x6c954e20, 0x1cdaa: 0x6c27ec20, 0x1cdab: 0x6cfef420, - 0x1cdac: 0x6cc92620, 0x1cdad: 0x6c66ba20, 0x1cdae: 0x6d07c020, 0x1cdaf: 0x6c0b0020, - 0x1cdb0: 0x6cdcfc20, 0x1cdb1: 0x6cfd8620, 0x1cdb2: 0x6cfc2420, 0x1cdb3: 0x6cb2c620, - 0x1cdb4: 0x6d318c20, 0x1cdb5: 0x6d039420, 0x1cdb6: 0x6c559420, 0x1cdb7: 0x6d154a20, - 0x1cdb8: 0x6d3b1420, 0x1cdb9: 0x6d265820, 0x1cdba: 0x6c211020, 0x1cdbb: 0x6c93f620, - 0x1cdbc: 0x6cf37e20, 0x1cdbd: 0x6c303820, 0x1cdbe: 0x6cd79a20, 0x1cdbf: 0x6c609020, - // Block 0x737, offset 0x1cdc0 - 0x1cdc0: 0x6c6af220, 0x1cdc1: 0x6c59ee20, 0x1cdc2: 0x6d039620, 0x1cdc3: 0x6c9aa820, - 0x1cdc4: 0x6c396a20, 0x1cdc5: 0x6c200a20, 0x1cdc6: 0x6d3bde20, 0x1cdc7: 0x6cb0fc20, - 0x1cdc8: 0x6c3c6220, 0x1cdc9: 0x6d3a2820, 0x1cdca: 0x6c59f020, 0x1cdcb: 0x6cbce020, - 0x1cdcc: 0x6c542420, 0x1cdcd: 0x6cbfbe20, 0x1cdce: 0x6c9e9a20, 0x1cdcf: 0x6cba7620, - 0x1cdd0: 0x6c483c20, 0x1cdd1: 0x6c7d1020, 0x1cdd2: 0x6cd41c20, 0x1cdd3: 0x6c90f420, - 0x1cdd4: 0x6d27c820, 0x1cdd5: 0x6c517020, 0x1cdd6: 0x6ce13420, 0x1cdd7: 0x6d26ee20, - 0x1cdd8: 0x6c1d7e20, 0x1cdd9: 0x6c42de20, 0x1cdda: 0x6c3a7020, 0x1cddb: 0x6cc92e20, - 0x1cddc: 0x6d32f420, 0x1cddd: 0x6c465e20, 0x1cdde: 0x6ca87220, 0x1cddf: 0x6cba7e20, - 0x1cde0: 0x6cffbc20, 0x1cde1: 0x6c24b420, 0x1cde2: 0x6c903820, 0x1cde3: 0x6caec620, - 0x1cde4: 0x6c322e20, 0x1cde5: 0x6c867e20, 0x1cde6: 0x6c0a5420, 0x1cde7: 0x6d3d9e20, - 0x1cde8: 0x6c1ea820, 0x1cde9: 0x6ccc9020, 0x1cdea: 0x6c1b5220, 0x1cdeb: 0x6d3b2c20, - 0x1cdec: 0x6cbada20, 0x1cded: 0x6c8fae20, 0x1cdee: 0x6c7fb620, 0x1cdef: 0x6c64fa20, - 0x1cdf0: 0x6c10ba20, 0x1cdf1: 0x6c844220, 0x1cdf2: 0x6c5c5820, 0x1cdf3: 0x6c0a5620, - 0x1cdf4: 0x6c2b9020, 0x1cdf5: 0x6c236420, 0x1cdf6: 0x6d0c3620, 0x1cdf7: 0x6caf2020, - 0x1cdf8: 0x6c11e020, 0x1cdf9: 0x6d3be620, 0x1cdfa: 0x6cb02220, 0x1cdfb: 0x6cb19e20, - 0x1cdfc: 0x6c30c820, 0x1cdfd: 0x6d243620, 0x1cdfe: 0x6c9ef820, 0x1cdff: 0x6ce96020, - // Block 0x738, offset 0x1ce00 - 0x1ce00: 0x6d2b1020, 0x1ce01: 0x6ccc9220, 0x1ce02: 0x6c4b8420, 0x1ce03: 0x6d156e20, - 0x1ce04: 0x6c56cc20, 0x1ce05: 0x6c15e620, 0x1ce06: 0x6c7a0820, 0x1ce07: 0x6c246820, - 0x1ce08: 0x6cb2d620, 0x1ce09: 0x6d2a9020, 0x1ce0a: 0x6c5f5620, 0x1ce0b: 0x6c4b1c20, - 0x1ce0c: 0x6cdb3820, 0x1ce0d: 0x6c90fc20, 0x1ce0e: 0x6c131a20, 0x1ce0f: 0x6c92e820, - 0x1ce10: 0x6ca73e20, 0x1ce11: 0x6cdd3820, 0x1ce12: 0x6c24b620, 0x1ce13: 0x6c2e5420, - 0x1ce14: 0x6cdd4020, 0x1ce15: 0x6c822a20, 0x1ce16: 0x6c32dc20, 0x1ce17: 0x6c89d020, - 0x1ce18: 0x6cff2220, 0x1ce19: 0x6c0f9420, 0x1ce1a: 0x6c9da020, 0x1ce1b: 0x6ccc9420, - 0x1ce1c: 0x6c299c20, 0x1ce1d: 0x6c8a3620, 0x1ce1e: 0x6c280c20, 0x1ce1f: 0x6c2d8e20, - 0x1ce20: 0x6c3f9020, 0x1ce21: 0x6c65f820, 0x1ce22: 0x6c9fd020, 0x1ce23: 0x6c7d2820, - 0x1ce24: 0x6c27a020, 0x1ce25: 0x6c689820, 0x1ce26: 0x6c2ab620, 0x1ce27: 0x6c5a0c20, - 0x1ce28: 0x6cdd0020, 0x1ce29: 0x6c818220, 0x1ce2a: 0x6d295220, 0x1ce2b: 0x6cff3c20, - 0x1ce2c: 0x6c931e20, 0x1ce2d: 0x6cd3f620, 0x1ce2e: 0x6d295420, 0x1ce2f: 0x6cb81c20, - 0x1ce30: 0x6cac0a20, 0x1ce31: 0x6cb81e20, 0x1ce32: 0x6cac0c20, 0x1ce33: 0x6c41f620, - 0x1ce34: 0x6c72b220, 0x1ce35: 0x6c328a20, 0x1ce36: 0x6c930620, 0x1ce37: 0x6d0cf220, - 0x1ce38: 0x6c0fea20, 0x1ce39: 0x6c291820, 0x1ce3a: 0x6cc9ec20, 0x1ce3b: 0x6d3b5e20, - 0x1ce3c: 0x6c8fca20, 0x1ce3d: 0x6cb94020, 0x1ce3e: 0x6c888420, 0x1ce3f: 0x6c10cc20, - // Block 0x739, offset 0x1ce40 - 0x1ce40: 0x6d396220, 0x1ce41: 0x6c7f6e20, 0x1ce42: 0x6cd42020, 0x1ce43: 0x6c7fec20, - 0x1ce44: 0x6c7d3420, 0x1ce45: 0x6d21d620, 0x1ce46: 0x6d270420, 0x1ce47: 0x6c500020, - 0x1ce48: 0x6d31a220, 0x1ce49: 0x6cdf5020, 0x1ce4a: 0x6ce43e20, 0x1ce4b: 0x6ca8a420, - 0x1ce4c: 0x6c1e0420, 0x1ce4d: 0x6c60ec20, 0x1ce4e: 0x6d199820, 0x1ce4f: 0x6cb82020, - 0x1ce50: 0x6ce2ca20, 0x1ce51: 0x6d3c0020, 0x1ce52: 0x6d396820, 0x1ce53: 0x6c387020, - 0x1ce54: 0x6cda3c20, 0x1ce55: 0x6d396620, 0x1ce56: 0x6cba9820, 0x1ce57: 0x6d3de020, - 0x1ce58: 0x6ce2d420, 0x1ce59: 0x6c933a20, 0x1ce5a: 0x6c919420, 0x1ce5b: 0x6c662a20, - 0x1ce5c: 0x6cebbe20, 0x1ce5d: 0x6d1cd420, 0x1ce5e: 0x6d248620, 0x1ce5f: 0x6c7f7e20, - 0x1ce60: 0x6c8ff420, 0x1ce61: 0x6cbd1620, 0x1ce62: 0x6c88a220, 0x1ce63: 0x6c800a20, - 0x1ce64: 0x6cb95c20, 0x1ce65: 0x6d272020, 0x1ce66: 0x6d37e420, 0x1ce67: 0x6cc20e20, - 0x1ce68: 0x6c88a420, 0x1ce69: 0x6c0b2820, 0x1ce6a: 0x6c32ea20, 0x1ce6b: 0x6d415a20, - 0x1ce6c: 0x6c84d620, 0x1ce6d: 0x6cd86220, 0x1ce6e: 0x6c958e20, 0x1ce6f: 0x6d1cde20, - 0x1ce70: 0x6d273820, 0x1ce71: 0x6d3df220, 0x1ce72: 0x6d24ae20, 0x1ce73: 0x6c9cd620, - 0x1ce74: 0x6c2b5820, 0x1ce75: 0x6c388a20, 0x1ce76: 0x6ccfb020, 0x1ce77: 0x6d302820, - 0x1ce78: 0x6ccfc220, 0x1ce79: 0x6caa7220, 0x1ce7a: 0x6c50e220, 0x1ce7b: 0x6c832420, - 0x1ce7c: 0x6cfa8e20, 0x1ce7d: 0x6d3efa20, 0x1ce7e: 0x6ca5c620, 0x1ce7f: 0x6c25b420, - // Block 0x73a, offset 0x1ce80 - 0x1ce80: 0x6d2f4620, 0x1ce81: 0x6cb8c020, 0x1ce82: 0x6d2d5a20, 0x1ce83: 0x6c08d220, - 0x1ce84: 0x6c04c620, 0x1ce85: 0x6cf4d820, 0x1ce86: 0x6ccbde20, 0x1ce87: 0x6c772a20, - 0x1ce88: 0x6cc77620, 0x1ce89: 0x6c3bba20, 0x1ce8a: 0x6c096e20, 0x1ce8b: 0x6c252620, - 0x1ce8c: 0x6d1b9a20, 0x1ce8d: 0x6d304020, 0x1ce8e: 0x6c1b9020, 0x1ce8f: 0x6cdf8620, - 0x1ce90: 0x6c56fa20, 0x1ce91: 0x6c033c20, 0x1ce92: 0x6c85f820, 0x1ce93: 0x6c419620, - 0x1ce94: 0x6c722e20, 0x1ce95: 0x6cb38420, 0x1ce96: 0x6ca10c20, 0x1ce97: 0x6c241020, - 0x1ce98: 0x6d2d6e20, 0x1ce99: 0x6d392220, 0x1ce9a: 0x6c83c620, 0x1ce9b: 0x6cdaac20, - 0x1ce9c: 0x6ce5d620, 0x1ce9d: 0x6c85fa20, 0x1ce9e: 0x6cf62220, 0x1ce9f: 0x6cdab620, - 0x1cea0: 0x6c535020, 0x1cea1: 0x6ce74c20, 0x1cea2: 0x6d3e4420, 0x1cea3: 0x6c12e020, - 0x1cea4: 0x6d26bc20, 0x1cea5: 0x6d388620, 0x1cea6: 0x6c8bb820, 0x1cea7: 0x6d3c1a20, - 0x1cea8: 0x6c042220, 0x1cea9: 0x6c81f620, 0x1ceaa: 0x6c3bda20, 0x1ceab: 0x6c375820, - 0x1ceac: 0x6cc10e20, 0x1cead: 0x6c521620, 0x1ceae: 0x6c895a20, 0x1ceaf: 0x6cfcd820, - 0x1ceb0: 0x6c3ea020, 0x1ceb1: 0x6c895c20, 0x1ceb2: 0x6c11fa20, 0x1ceb3: 0x6c6dc220, - 0x1ceb4: 0x6c851c20, 0x1ceb5: 0x6d26c620, 0x1ceb6: 0x6c929020, 0x1ceb7: 0x6c714020, - 0x1ceb8: 0x6cb61e20, 0x1ceb9: 0x6c254e20, 0x1ceba: 0x6c045220, 0x1cebb: 0x6d2ece20, - 0x1cebc: 0x6c8bc620, 0x1cebd: 0x6d402620, 0x1cebe: 0x6c6dcc20, 0x1cebf: 0x6c4cc420, - // Block 0x73b, offset 0x1cec0 - 0x1cec0: 0x6c57e020, 0x1cec1: 0x6cca2220, 0x1cec2: 0x6cca2620, 0x1cec3: 0x6ce12a20, - 0x1cec4: 0x6c0b4c20, 0x1cec5: 0x6cc75c20, 0x1cec6: 0x6c9e5c20, 0x1cec7: 0x6c542620, - 0x1cec8: 0x6d065220, 0x1cec9: 0x6d402a20, 0x1ceca: 0x6c56fe20, 0x1cecb: 0x6c66be20, - 0x1cecc: 0x6d294e20, 0x1cecd: 0x6c225e20, 0x1cece: 0x6c843020, 0x1cecf: 0x6d021a20, - 0x1ced0: 0x6c3da020, 0x1ced1: 0x6cab1220, 0x1ced2: 0x6c076020, 0x1ced3: 0x6c47d020, - 0x1ced4: 0x6d052820, 0x1ced5: 0x6c42e020, 0x1ced6: 0x6ce13620, 0x1ced7: 0x6cc0b220, - 0x1ced8: 0x6c645620, 0x1ced9: 0x6c126a20, 0x1ceda: 0x6d3c2420, 0x1cedb: 0x6ce14020, - 0x1cedc: 0x6c9c7c20, 0x1cedd: 0x6cca2c20, 0x1cede: 0x6c3bf420, 0x1cedf: 0x6d2a2620, - 0x1cee0: 0x6c775620, 0x1cee1: 0x6c67fe20, 0x1cee2: 0x6ca07e20, 0x1cee3: 0x6cca3020, - 0x1cee4: 0x6cca3220, 0x1cee5: 0x6cab1c20, 0x1cee6: 0x6cf70820, 0x1cee7: 0x6c897420, - 0x1cee8: 0x6c680820, 0x1cee9: 0x6c7b4620, 0x1ceea: 0x6c0ffa20, 0x1ceeb: 0x6c58b620, - 0x1ceec: 0x6cd63620, 0x1ceed: 0x6d403e20, 0x1ceee: 0x6cfd4020, 0x1ceef: 0x6cab2020, - 0x1cef0: 0x6ce97020, 0x1cef1: 0x6ca8b820, 0x1cef2: 0x6c873020, 0x1cef3: 0x6d42b220, - 0x1cef4: 0x6c2bb820, 0x1cef5: 0x6ca8ba20, 0x1cef6: 0x6ce5e420, 0x1cef7: 0x6c809820, - 0x1cef8: 0x6c9d1a20, 0x1cef9: 0x6cd7c020, 0x1cefa: 0x6c6f5820, 0x1cefb: 0x6cf83e20, - 0x1cefc: 0x6c456620, 0x1cefd: 0x6d331c20, 0x1cefe: 0x6c6f5e20, 0x1ceff: 0x6d201c20, - // Block 0x73c, offset 0x1cf00 - 0x1cf00: 0x6c61b020, 0x1cf01: 0x6c143a20, 0x1cf02: 0x6d391020, 0x1cf03: 0x6d09f020, - 0x1cf04: 0x6d264a20, 0x1cf05: 0x6c531c20, 0x1cf06: 0x6d207e20, 0x1cf07: 0x6c50e420, - 0x1cf08: 0x6cecce20, 0x1cf09: 0x6cc5d820, 0x1cf0a: 0x6cf1d220, 0x1cf0b: 0x6cf18c20, - 0x1cf0c: 0x6cc03620, 0x1cf0d: 0x6ca32820, 0x1cf0e: 0x6d3e1c20, 0x1cf0f: 0x6ce80c20, - 0x1cf10: 0x6ca99020, 0x1cf11: 0x6c3d1420, 0x1cf12: 0x6c61d020, 0x1cf13: 0x6cd4c020, - 0x1cf14: 0x6c213c20, 0x1cf15: 0x6caf5a20, 0x1cf16: 0x6d323220, 0x1cf17: 0x6ccbe020, - 0x1cf18: 0x6c532e20, 0x1cf19: 0x6d351220, 0x1cf1a: 0x6c5ffe20, 0x1cf1b: 0x6c3b2220, - 0x1cf1c: 0x6d279e20, 0x1cf1d: 0x6cc5de20, 0x1cf1e: 0x6c283220, 0x1cf1f: 0x6c6c4020, - 0x1cf20: 0x6cda9420, 0x1cf21: 0x6c39d220, 0x1cf22: 0x6cdd5a20, 0x1cf23: 0x6c252820, - 0x1cf24: 0x6c6fb820, 0x1cf25: 0x6d288c20, 0x1cf26: 0x6c03f220, 0x1cf27: 0x6c6c8c20, - 0x1cf28: 0x6c3d6a20, 0x1cf29: 0x6d35fe20, 0x1cf2a: 0x6c229820, 0x1cf2b: 0x6d3f1620, - 0x1cf2c: 0x6c1da620, 0x1cf2d: 0x6c533e20, 0x1cf2e: 0x6d288e20, 0x1cf2f: 0x6c833420, - 0x1cf30: 0x6cf87a20, 0x1cf31: 0x6c3e5c20, 0x1cf32: 0x6d019a20, 0x1cf33: 0x6ccfe020, - 0x1cf34: 0x6c0e6c20, 0x1cf35: 0x6d3ae820, 0x1cf36: 0x6cc0fc20, 0x1cf37: 0x6c8cf020, - 0x1cf38: 0x6d3aea20, 0x1cf39: 0x6cced620, 0x1cf3a: 0x6c421e20, 0x1cf3b: 0x6d101420, - 0x1cf3c: 0x6c3e5e20, 0x1cf3d: 0x6ceb1820, 0x1cf3e: 0x6d31d420, 0x1cf3f: 0x6c275e20, - // Block 0x73d, offset 0x1cf40 - 0x1cf40: 0x6c1f3420, 0x1cf41: 0x6cd1b420, 0x1cf42: 0x6d37b620, 0x1cf43: 0x6cfb4e20, - 0x1cf44: 0x6d411a20, 0x1cf45: 0x6c6ede20, 0x1cf46: 0x6c04f820, 0x1cf47: 0x6cc18c20, - 0x1cf48: 0x6ca10e20, 0x1cf49: 0x6cd5c620, 0x1cf4a: 0x6d41ac20, 0x1cf4b: 0x6c7c2c20, - 0x1cf4c: 0x6c6db020, 0x1cf4d: 0x6cc5f220, 0x1cf4e: 0x6c4f7c20, 0x1cf4f: 0x6d01b220, - 0x1cf50: 0x6c6ad620, 0x1cf51: 0x6d39a820, 0x1cf52: 0x6c1db420, 0x1cf53: 0x6c48b620, - 0x1cf54: 0x6c042420, 0x1cf55: 0x6c745420, 0x1cf56: 0x6c7bf620, 0x1cf57: 0x6c556220, - 0x1cf58: 0x6c22c620, 0x1cf59: 0x6c587820, 0x1cf5a: 0x6c44d220, 0x1cf5b: 0x6ce1c820, - 0x1cf5c: 0x6c6ad820, 0x1cf5d: 0x6c7a9a20, 0x1cf5e: 0x6c68fc20, 0x1cf5f: 0x6cc2f620, - 0x1cf60: 0x6c411620, 0x1cf61: 0x6c960620, 0x1cf62: 0x6d089620, 0x1cf63: 0x6c07ee20, - 0x1cf64: 0x6cfcc620, 0x1cf65: 0x6c3e8620, 0x1cf66: 0x6c449420, 0x1cf67: 0x6c307a20, - 0x1cf68: 0x6cc67a20, 0x1cf69: 0x6ce5d820, 0x1cf6a: 0x6d19e420, 0x1cf6b: 0x6c82c220, - 0x1cf6c: 0x6d01b420, 0x1cf6d: 0x6c736820, 0x1cf6e: 0x6d06e020, 0x1cf6f: 0x6c40f820, - 0x1cf70: 0x6c2eae20, 0x1cf71: 0x6ce7ba20, 0x1cf72: 0x6cd7ea20, 0x1cf73: 0x6c67e820, - 0x1cf74: 0x6cfdc420, 0x1cf75: 0x6c5bc820, 0x1cf76: 0x6c745620, 0x1cf77: 0x6d346820, - 0x1cf78: 0x6c65b420, 0x1cf79: 0x6c737620, 0x1cf7a: 0x6c1ac020, 0x1cf7b: 0x6c9e2c20, - 0x1cf7c: 0x6d31e820, 0x1cf7d: 0x6c939e20, 0x1cf7e: 0x6c1a1020, 0x1cf7f: 0x6cc07a20, - // Block 0x73e, offset 0x1cf80 - 0x1cf80: 0x6cd4ec20, 0x1cf81: 0x6c055020, 0x1cf82: 0x6ce7bc20, 0x1cf83: 0x6cfedc20, - 0x1cf84: 0x6c588020, 0x1cf85: 0x6cbd3620, 0x1cf86: 0x6c451220, 0x1cf87: 0x6d052620, - 0x1cf88: 0x6ce34c20, 0x1cf89: 0x6ce82e20, 0x1cf8a: 0x6d00c020, 0x1cf8b: 0x6c536420, - 0x1cf8c: 0x6cf8a420, 0x1cf8d: 0x6c3ea220, 0x1cf8e: 0x6ce64620, 0x1cf8f: 0x6cdbcc20, - 0x1cf90: 0x6c335220, 0x1cf91: 0x6c7db620, 0x1cf92: 0x6c3d8020, 0x1cf93: 0x6c6dc420, - 0x1cf94: 0x6c56a620, 0x1cf95: 0x6d33f820, 0x1cf96: 0x6d0ca020, 0x1cf97: 0x6c6f1c20, - 0x1cf98: 0x6c3cb020, 0x1cf99: 0x6c622020, 0x1cf9a: 0x6d077420, 0x1cf9b: 0x6cc60c20, - 0x1cf9c: 0x6d3faa20, 0x1cf9d: 0x6c187820, 0x1cf9e: 0x6c34a420, 0x1cf9f: 0x6c865020, - 0x1cfa0: 0x6c93ec20, 0x1cfa1: 0x6c896020, 0x1cfa2: 0x6c1dcc20, 0x1cfa3: 0x6cc36420, - 0x1cfa4: 0x6ccede20, 0x1cfa5: 0x6cb62020, 0x1cfa6: 0x6cb62220, 0x1cfa7: 0x6d3ce020, - 0x1cfa8: 0x6cb62420, 0x1cfa9: 0x6ced3420, 0x1cfaa: 0x6cba6a20, 0x1cfab: 0x6cfcec20, - 0x1cfac: 0x6cd47420, 0x1cfad: 0x6cef2220, 0x1cfae: 0x6cb70e20, 0x1cfaf: 0x6ce23020, - 0x1cfb0: 0x6ced3620, 0x1cfb1: 0x6c428c20, 0x1cfb2: 0x6cee3020, 0x1cfb3: 0x6c080420, - 0x1cfb4: 0x6d3cc620, 0x1cfb5: 0x6c113a20, 0x1cfb6: 0x6c4cc620, 0x1cfb7: 0x6c255020, - 0x1cfb8: 0x6c950420, 0x1cfb9: 0x6c8f1020, 0x1cfba: 0x6cb71020, 0x1cfbb: 0x6d2e6e20, - 0x1cfbc: 0x6c0a0820, 0x1cfbd: 0x6c21cc20, 0x1cfbe: 0x6c8d3c20, 0x1cfbf: 0x6c9dca20, - // Block 0x73f, offset 0x1cfc0 - 0x1cfc0: 0x6cb51420, 0x1cfc1: 0x6cbcd820, 0x1cfc2: 0x6ce4b420, 0x1cfc3: 0x6d3fac20, - 0x1cfc4: 0x6c4bd820, 0x1cfc5: 0x6d405e20, 0x1cfc6: 0x6cf67c20, 0x1cfc7: 0x6d3e6a20, - 0x1cfc8: 0x6d043220, 0x1cfc9: 0x6c899a20, 0x1cfca: 0x6c6ca420, 0x1cfcb: 0x6c3a1220, - 0x1cfcc: 0x6cc8a020, 0x1cfcd: 0x6c9f7220, 0x1cfce: 0x6d239e20, 0x1cfcf: 0x6d400420, - 0x1cfd0: 0x6c38ae20, 0x1cfd1: 0x6c93ee20, 0x1cfd2: 0x6d071620, 0x1cfd3: 0x6d1bd820, - 0x1cfd4: 0x6cce5620, 0x1cfd5: 0x6cb81820, 0x1cfd6: 0x6d073020, 0x1cfd7: 0x6cfd8820, - 0x1cfd8: 0x6c64dc20, 0x1cfd9: 0x6c78ce20, 0x1cfda: 0x6cfcfe20, 0x1cfdb: 0x6cc87620, - 0x1cfdc: 0x6c9dcc20, 0x1cfdd: 0x6c5f1c20, 0x1cfde: 0x6c32d820, 0x1cfdf: 0x6c1d1e20, - 0x1cfe0: 0x6c2c9420, 0x1cfe1: 0x6c9f7820, 0x1cfe2: 0x6c9e7c20, 0x1cfe3: 0x6d259c20, - 0x1cfe4: 0x6d01fe20, 0x1cfe5: 0x6c060e20, 0x1cfe6: 0x6cd82020, 0x1cfe7: 0x6cbfc020, - 0x1cfe8: 0x6c0b0220, 0x1cfe9: 0x6c58dc20, 0x1cfea: 0x6c44d820, 0x1cfeb: 0x6c234620, - 0x1cfec: 0x6c9e3820, 0x1cfed: 0x6cf0c420, 0x1cfee: 0x6c403620, 0x1cfef: 0x6cf00620, - 0x1cff0: 0x6ce7f420, 0x1cff1: 0x6c465a20, 0x1cff2: 0x6c9e9c20, 0x1cff3: 0x6d00de20, - 0x1cff4: 0x6c891220, 0x1cff5: 0x6d3fb620, 0x1cff6: 0x6c0bb620, 0x1cff7: 0x6d284a20, - 0x1cff8: 0x6d19fc20, 0x1cff9: 0x6ce36820, 0x1cffa: 0x6c486c20, 0x1cffb: 0x6d36ea20, - 0x1cffc: 0x6d284c20, 0x1cffd: 0x6c198c20, 0x1cffe: 0x6c152020, 0x1cfff: 0x6c278c20, - // Block 0x740, offset 0x1d000 - 0x1d000: 0x6cf9ea20, 0x1d001: 0x6d259e20, 0x1d002: 0x6d400620, 0x1d003: 0x6d05da20, - 0x1d004: 0x6d1d6a20, 0x1d005: 0x6cf14420, 0x1d006: 0x6c44da20, 0x1d007: 0x6d07c220, - 0x1d008: 0x6d1c9c20, 0x1d009: 0x6c6d5220, 0x1d00a: 0x6d18ae20, 0x1d00b: 0x6d3ca220, - 0x1d00c: 0x6ca6c020, 0x1d00d: 0x6c053c20, 0x1d00e: 0x6c47c820, 0x1d00f: 0x6cac7220, - 0x1d010: 0x6d395420, 0x1d011: 0x6c64fc20, 0x1d012: 0x6c220a20, 0x1d013: 0x6cc31620, - 0x1d014: 0x6cd6e020, 0x1d015: 0x6d276620, 0x1d016: 0x6cf9f220, 0x1d017: 0x6c24ea20, - 0x1d018: 0x6cf6d220, 0x1d019: 0x6cc6a620, 0x1d01a: 0x6ce1ea20, 0x1d01b: 0x6c405420, - 0x1d01c: 0x6d27ca20, 0x1d01d: 0x6c188820, 0x1d01e: 0x6c432020, 0x1d01f: 0x6cc82820, - 0x1d020: 0x6c55b820, 0x1d021: 0x6d294620, 0x1d022: 0x6ce2b420, 0x1d023: 0x6cfd1020, - 0x1d024: 0x6cdb1e20, 0x1d025: 0x6d31fc20, 0x1d026: 0x6d403420, 0x1d027: 0x6ce1ec20, - 0x1d028: 0x6c5a8420, 0x1d029: 0x6c114a20, 0x1d02a: 0x6c0a5820, 0x1d02b: 0x6c3cf620, - 0x1d02c: 0x6c246a20, 0x1d02d: 0x6c844620, 0x1d02e: 0x6cdd4220, 0x1d02f: 0x6d0ddc20, - 0x1d030: 0x6cf81820, 0x1d031: 0x6d403820, 0x1d032: 0x6c826420, 0x1d033: 0x6c739820, - 0x1d034: 0x6cba8220, 0x1d035: 0x6c980820, 0x1d036: 0x6d34a420, 0x1d037: 0x6c93bc20, - 0x1d038: 0x6ca2b220, 0x1d039: 0x6cb1a020, 0x1d03a: 0x6c885220, 0x1d03b: 0x6c9c8020, - 0x1d03c: 0x6d08bc20, 0x1d03d: 0x6d400a20, 0x1d03e: 0x6c5f5820, 0x1d03f: 0x6ccd1220, - // Block 0x741, offset 0x1d040 - 0x1d040: 0x6cdc8e20, 0x1d041: 0x6c38ca20, 0x1d042: 0x6c940620, 0x1d043: 0x6c083020, - 0x1d044: 0x6d141e20, 0x1d045: 0x6ccac220, 0x1d046: 0x6ca1ec20, 0x1d047: 0x6d114c20, - 0x1d048: 0x6cbb4a20, 0x1d049: 0x6c5d0220, 0x1d04a: 0x6cfd5a20, 0x1d04b: 0x6c629a20, - 0x1d04c: 0x6ccc8620, 0x1d04d: 0x6d055220, 0x1d04e: 0x6cc49420, 0x1d04f: 0x6d08be20, - 0x1d050: 0x6cdca020, 0x1d051: 0x6cbbc020, 0x1d052: 0x6d2b9e20, 0x1d053: 0x6d427020, - 0x1d054: 0x6d341e20, 0x1d055: 0x6ccdca20, 0x1d056: 0x6cca3420, 0x1d057: 0x6c8bf020, - 0x1d058: 0x6d243820, 0x1d059: 0x6c386220, 0x1d05a: 0x6c8a3820, 0x1d05b: 0x6c21e020, - 0x1d05c: 0x6d41f820, 0x1d05d: 0x6c66f220, 0x1d05e: 0x6cc54a20, 0x1d05f: 0x6c15f020, - 0x1d060: 0x6cc8b620, 0x1d061: 0x6d055620, 0x1d062: 0x6c5c6e20, 0x1d063: 0x6c57ca20, - 0x1d064: 0x6d414a20, 0x1d065: 0x6cf70a20, 0x1d066: 0x6cbb4e20, 0x1d067: 0x6d287c20, - 0x1d068: 0x6c270220, 0x1d069: 0x6cd12620, 0x1d06a: 0x6c5c7e20, 0x1d06b: 0x6cf91620, - 0x1d06c: 0x6ccb8020, 0x1d06d: 0x6c660020, 0x1d06e: 0x6c679220, 0x1d06f: 0x6c58b820, - 0x1d070: 0x6d2a5e20, 0x1d071: 0x6c236e20, 0x1d072: 0x6d026020, 0x1d073: 0x6c695a20, - 0x1d074: 0x6c0aa820, 0x1d075: 0x6c28de20, 0x1d076: 0x6d191020, 0x1d077: 0x6ca9ec20, - 0x1d078: 0x6cdca220, 0x1d079: 0x6d191220, 0x1d07a: 0x6ccc9a20, 0x1d07b: 0x6d060420, - 0x1d07c: 0x6c62cc20, 0x1d07d: 0x6c0d6c20, 0x1d07e: 0x6cba3020, 0x1d07f: 0x6c7fee20, - // Block 0x742, offset 0x1d080 - 0x1d080: 0x6cb47020, 0x1d081: 0x6d09c620, 0x1d082: 0x6d415420, 0x1d083: 0x6cb69620, - 0x1d084: 0x6caee820, 0x1d085: 0x6d124620, 0x1d086: 0x6ca19a20, 0x1d087: 0x6c835c20, - 0x1d088: 0x6d012820, 0x1d089: 0x6d415620, 0x1d08a: 0x6c7c1a20, 0x1d08b: 0x6d1ed220, - 0x1d08c: 0x6d076220, 0x1d08d: 0x6c828420, 0x1d08e: 0x6cfb0420, 0x1d08f: 0x6c156220, - 0x1d090: 0x6c69f220, 0x1d091: 0x6c919620, 0x1d092: 0x6c156a20, 0x1d093: 0x6d1c4020, - 0x1d094: 0x6c111820, 0x1d095: 0x6cc51620, 0x1d096: 0x6cfb1620, 0x1d097: 0x6d418620, - 0x1d098: 0x6d415c20, 0x1d099: 0x6c965220, 0x1d09a: 0x6c84e020, 0x1d09b: 0x6c2a5220, - 0x1d09c: 0x6c806a20, 0x1d09d: 0x6c82ac20, 0x1d09e: 0x6c894020, 0x1d09f: 0x6cd7b620, - 0x1d0a0: 0x6c6f4620, 0x1d0a1: 0x6d207420, 0x1d0a2: 0x6c52ee20, 0x1d0a3: 0x6d38f420, - 0x1d0a4: 0x6cfa7420, 0x1d0a5: 0x6c436a20, 0x1d0a6: 0x6d264820, 0x1d0a7: 0x6c5fce20, - 0x1d0a8: 0x6cecbc20, 0x1d0a9: 0x6c7bda20, 0x1d0aa: 0x6c617a20, 0x1d0ab: 0x6cc5b820, - 0x1d0ac: 0x6cef8820, 0x1d0ad: 0x6d278220, 0x1d0ae: 0x6c52fc20, 0x1d0af: 0x6c213420, - 0x1d0b0: 0x6caf2c20, 0x1d0b1: 0x6ccbca20, 0x1d0b2: 0x6c425820, 0x1d0b3: 0x6ca30820, - 0x1d0b4: 0x6cc5c620, 0x1d0b5: 0x6d401620, 0x1d0b6: 0x6c94dc20, 0x1d0b7: 0x6c3b1220, - 0x1d0b8: 0x6d34ec20, 0x1d0b9: 0x6cf17e20, 0x1d0ba: 0x6c39c220, 0x1d0bb: 0x6d3aa420, - 0x1d0bc: 0x6d321420, 0x1d0bd: 0x6ca97c20, 0x1d0be: 0x6cd4a020, 0x1d0bf: 0x6cfc8220, - // Block 0x743, offset 0x1d0c0 - 0x1d0c0: 0x6c421220, 0x1d0c1: 0x6d016620, 0x1d0c2: 0x6c3dfa20, 0x1d0c3: 0x6c88e420, - 0x1d0c4: 0x6d410c20, 0x1d0c5: 0x6ccfb220, 0x1d0c6: 0x6cf84e20, 0x1d0c7: 0x6d33a020, - 0x1d0c8: 0x6d37a020, 0x1d0c9: 0x6d390420, 0x1d0ca: 0x6c04ec20, 0x1d0cb: 0x6c3dfc20, - 0x1d0cc: 0x6c1f1420, 0x1d0cd: 0x6ccec820, 0x1d0ce: 0x6d16ce20, 0x1d0cf: 0x6c6d9220, - 0x1d0d0: 0x6c273820, 0x1d0d1: 0x6c054a20, 0x1d0d2: 0x6cc65a20, 0x1d0d3: 0x6c6a9820, - 0x1d0d4: 0x6c7a8620, 0x1d0d5: 0x6cc54620, 0x1d0d6: 0x6c2e7620, 0x1d0d7: 0x6c4f6420, - 0x1d0d8: 0x6c5b9e20, 0x1d0d9: 0x6c449220, 0x1d0da: 0x6d087c20, 0x1d0db: 0x6c67dc20, - 0x1d0dc: 0x6c95ea20, 0x1d0dd: 0x6c740420, 0x1d0de: 0x6c68d620, 0x1d0df: 0x6ce7ae20, - 0x1d0e0: 0x6c450020, 0x1d0e1: 0x6cfea820, 0x1d0e2: 0x6c735020, 0x1d0e3: 0x6d053620, - 0x1d0e4: 0x6cf87220, 0x1d0e5: 0x6cdbf020, 0x1d0e6: 0x6ce1c020, 0x1d0e7: 0x6c61d220, - 0x1d0e8: 0x6ce31820, 0x1d0e9: 0x6c5eb820, 0x1d0ea: 0x6d06be20, 0x1d0eb: 0x6c8cf220, - 0x1d0ec: 0x6d1bb220, 0x1d0ed: 0x6d06c020, 0x1d0ee: 0x6cb6f620, 0x1d0ef: 0x6c39fc20, - 0x1d0f0: 0x6c21b820, 0x1d0f1: 0x6cce5220, 0x1d0f2: 0x6c4bc220, 0x1d0f3: 0x6cd11e20, - 0x1d0f4: 0x6cef0420, 0x1d0f5: 0x6c9dc020, 0x1d0f6: 0x6cd46820, 0x1d0f7: 0x6c081a20, - 0x1d0f8: 0x6c1da820, 0x1d0f9: 0x6ce22220, 0x1d0fa: 0x6c8f0620, 0x1d0fb: 0x6cc35a20, - 0x1d0fc: 0x6d3f7820, 0x1d0fd: 0x6d2e5c20, 0x1d0fe: 0x6ced0c20, 0x1d0ff: 0x6c93d820, - // Block 0x744, offset 0x1d100 - 0x1d100: 0x6d3cc420, 0x1d101: 0x6d3e2820, 0x1d102: 0x6c78b420, 0x1d103: 0x6cfd7820, - 0x1d104: 0x6c64a420, 0x1d105: 0x6c9e2820, 0x1d106: 0x6c802a20, 0x1d107: 0x6ce33020, - 0x1d108: 0x6c9e9420, 0x1d109: 0x6c5eda20, 0x1d10a: 0x6d275020, 0x1d10b: 0x6c5bca20, - 0x1d10c: 0x6cd7ec20, 0x1d10d: 0x6c348620, 0x1d10e: 0x6c32c420, 0x1d10f: 0x6c0ba020, - 0x1d110: 0x6cfcc820, 0x1d111: 0x6c464a20, 0x1d112: 0x6d3c8a20, 0x1d113: 0x6c58d820, - 0x1d114: 0x6c2c5e20, 0x1d115: 0x6c93a020, 0x1d116: 0x6c0af620, 0x1d117: 0x6c9f5820, - 0x1d118: 0x6d256820, 0x1d119: 0x6c6d1c20, 0x1d11a: 0x6c401020, 0x1d11b: 0x6cc81e20, - 0x1d11c: 0x6d31ea20, 0x1d11d: 0x6c3ce620, 0x1d11e: 0x6c24ce20, 0x1d11f: 0x6c430c20, - 0x1d120: 0x6c150420, 0x1d121: 0x6c83f020, 0x1d122: 0x6d17fc20, 0x1d123: 0x6c64be20, - 0x1d124: 0x6c0d4020, 0x1d125: 0x6cb15a20, 0x1d126: 0x6c97f020, 0x1d127: 0x6c824820, - 0x1d128: 0x6d1bda20, 0x1d129: 0x6cdd2e20, 0x1d12a: 0x6ca1d820, 0x1d12b: 0x6ccaba20, - 0x1d12c: 0x6d00e020, 0x1d12d: 0x6c8a1420, 0x1d12e: 0x6ccda220, 0x1d12f: 0x6d2b8c20, - 0x1d130: 0x6c677a20, 0x1d131: 0x6cba2420, 0x1d132: 0x6cbbb220, 0x1d133: 0x6c589a20, - 0x1d134: 0x6c694620, 0x1d135: 0x6d415020, 0x1d136: 0x6c3d1a20, 0x1d137: 0x6d016820, - 0x1d138: 0x6c426820, 0x1d139: 0x6c3d2420, 0x1d13a: 0x6cc38a20, 0x1d13b: 0x6c3d2620, - 0x1d13c: 0x6cb81020, 0x1d13d: 0x6c0e6e20, 0x1d13e: 0x6cb2ac20, 0x1d13f: 0x6cfe3420, - // Block 0x745, offset 0x1d140 - 0x1d140: 0x6d2ff620, 0x1d141: 0x6c428e20, 0x1d142: 0x6d1bdc20, 0x1d143: 0x6d1bea20, - 0x1d144: 0x6cbee020, 0x1d145: 0x6cfa4c20, 0x1d146: 0x6c49aa20, 0x1d147: 0x6d41fa20, - 0x1d148: 0x6ce02a20, 0x1d149: 0x6c126020, 0x1d14a: 0x6cb7fe20, 0x1d14b: 0x6cf27620, - 0x1d14c: 0x6d1c2220, 0x1d14d: 0x6c828620, 0x1d14e: 0x6ce04820, 0x1d14f: 0x6c919820, - 0x1d150: 0x6c49c420, 0x1d151: 0x6cedf420, 0x1d152: 0x6cedf020, 0x1d153: 0x6c424e20, - 0x1d154: 0x6cedfe20, 0x1d155: 0x6c4e5020, 0x1d156: 0x6c953820, 0x1d157: 0x6c952c20, - 0x1d158: 0x6c3e2220, 0x1d159: 0x6c9c3a20, 0x1d15a: 0x6c380620, 0x1d15b: 0x6c470020, - 0x1d15c: 0x6d3a6020, 0x1d15d: 0x6c707220, 0x1d15e: 0x6c98d420, 0x1d15f: 0x6c477420, - 0x1d160: 0x6c9f4220, 0x1d161: 0x6c427220, 0x1d162: 0x6c03f420, 0x1d163: 0x6c48b220, - 0x1d164: 0x6ce33220, 0x1d165: 0x6c736a20, 0x1d166: 0x6c3e8820, 0x1d167: 0x6cd0b420, - 0x1d168: 0x6d0da820, 0x1d169: 0x6d2fc220, 0x1d16a: 0x6d41b820, 0x1d16b: 0x6c48b820, - 0x1d16c: 0x6d3d7220, 0x1d16d: 0x6d237620, 0x1d16e: 0x6d366620, 0x1d16f: 0x6c018e20, - 0x1d170: 0x6c382020, 0x1d171: 0x6c803420, 0x1d172: 0x6cd56220, 0x1d173: 0x6cd80620, - 0x1d174: 0x6cb00820, 0x1d175: 0x6c96da20, 0x1d176: 0x6c8f1620, 0x1d177: 0x6c03f820, - 0x1d178: 0x6c382420, 0x1d179: 0x6c844a20, 0x1d17a: 0x6c177e20, 0x1d17b: 0x6cf0d020, - 0x1d17c: 0x6c0a3420, 0x1d17d: 0x6c629c20, 0x1d17e: 0x6d2b9c20, 0x1d17f: 0x6c1ce620, - // Block 0x746, offset 0x1d180 - 0x1d180: 0x6c8f2220, 0x1d181: 0x6c5f5a20, 0x1d182: 0x6c739e20, 0x1d183: 0x6c9da220, - 0x1d184: 0x6d2fec20, 0x1d185: 0x6c956220, 0x1d186: 0x6cb03220, 0x1d187: 0x6c5f9e20, - 0x1d188: 0x6c5fb020, 0x1d189: 0x6c946820, 0x1d18a: 0x6d0f7620, 0x1d18b: 0x6c9cde20, - 0x1d18c: 0x6cba9e20, 0x1d18d: 0x6c268820, 0x1d18e: 0x6c9a4e20, 0x1d18f: 0x6d0f9a20, - 0x1d190: 0x6d1fbc20, 0x1d191: 0x6d1fb420, 0x1d192: 0x6c3b6620, 0x1d193: 0x6c033e20, - 0x1d194: 0x6c42b820, 0x1d195: 0x6d104a20, 0x1d196: 0x6c477620, 0x1d197: 0x6cbaaa20, - 0x1d198: 0x6d29d620, 0x1d199: 0x6c42ba20, 0x1d19a: 0x6c8cf620, 0x1d19b: 0x6d176e20, - 0x1d19c: 0x6d3aee20, 0x1d19d: 0x6c2b2820, 0x1d19e: 0x6d04c820, 0x1d19f: 0x6cbb3c20, - 0x1d1a0: 0x6d14fa20, 0x1d1a1: 0x6cfcca20, 0x1d1a2: 0x6cc67c20, 0x1d1a3: 0x6cc44a20, - 0x1d1a4: 0x6cc44c20, 0x1d1a5: 0x6cbb4420, 0x1d1a6: 0x6c588220, 0x1d1a7: 0x6cdd2620, - 0x1d1a8: 0x6cfcdc20, 0x1d1a9: 0x6d17fe20, 0x1d1aa: 0x6d107a20, 0x1d1ab: 0x6cbad220, - 0x1d1ac: 0x6cb9c220, 0x1d1ad: 0x6d218820, 0x1d1ae: 0x6c44dc20, 0x1d1af: 0x6c6b2220, - 0x1d1b0: 0x6ce0cc20, 0x1d1b1: 0x6d25ac20, 0x1d1b2: 0x6cf6d420, 0x1d1b3: 0x6c38d820, - 0x1d1b4: 0x6ccd1a20, 0x1d1b5: 0x6c3ba220, 0x1d1b6: 0x6ccd1e20, 0x1d1b7: 0x6c88d820, - 0x1d1b8: 0x6c827420, 0x1d1b9: 0x6c44e420, 0x1d1ba: 0x6caa0820, 0x1d1bb: 0x6cbb5e20, - 0x1d1bc: 0x6c164620, 0x1d1bd: 0x6d221c20, 0x1d1be: 0x6c461020, 0x1d1bf: 0x6d170420, - // Block 0x747, offset 0x1d1c0 - 0x1d1c0: 0x6c1cbe20, 0x1d1c1: 0x6cf22220, 0x1d1c2: 0x6c3b2420, 0x1d1c3: 0x6c533020, - 0x1d1c4: 0x6c1c0820, 0x1d1c5: 0x6c1c0a20, 0x1d1c6: 0x6c252a20, 0x1d1c7: 0x6c3e6020, - 0x1d1c8: 0x6cf9b220, 0x1d1c9: 0x6c079c20, 0x1d1ca: 0x6d177020, 0x1d1cb: 0x6c7e4220, - 0x1d1cc: 0x6d177220, 0x1d1cd: 0x6caf6220, 0x1d1ce: 0x6c8cf820, 0x1d1cf: 0x6c8f2e20, - 0x1d1d0: 0x6d360020, 0x1d1d1: 0x6cc18e20, 0x1d1d2: 0x6cf77a20, 0x1d1d3: 0x6d00ae20, - 0x1d1d4: 0x6cfdc620, 0x1d1d5: 0x6cf62420, 0x1d1d6: 0x6cf88e20, 0x1d1d7: 0x6c785020, - 0x1d1d8: 0x6cbc4620, 0x1d1d9: 0x6c5bcc20, 0x1d1da: 0x6c5aba20, 0x1d1db: 0x6cfecc20, - 0x1d1dc: 0x6ccc5e20, 0x1d1dd: 0x6c536620, 0x1d1de: 0x6c676c20, 0x1d1df: 0x6c2b7e20, - 0x1d1e0: 0x6c255220, 0x1d1e1: 0x6c3a6420, 0x1d1e2: 0x6c2a2620, 0x1d1e3: 0x6ccc6a20, - 0x1d1e4: 0x6c1c4a20, 0x1d1e5: 0x6d3b1620, 0x1d1e6: 0x6c65d220, 0x1d1e7: 0x6d07c420, - 0x1d1e8: 0x6c1c6220, 0x1d1e9: 0x6cb0fe20, 0x1d1ea: 0x6d3fb820, 0x1d1eb: 0x6cece620, - 0x1d1ec: 0x6c5aea20, 0x1d1ed: 0x6c542820, 0x1d1ee: 0x6c517420, 0x1d1ef: 0x6c51e820, - 0x1d1f0: 0x6c4f0a20, 0x1d1f1: 0x6c027220, 0x1d1f2: 0x6cb16820, 0x1d1f3: 0x6d18d020, - 0x1d1f4: 0x6c885420, 0x1d1f5: 0x6c543420, 0x1d1f6: 0x6c030820, 0x1d1f7: 0x6c8bf220, - 0x1d1f8: 0x6cae4820, 0x1d1f9: 0x6cbc6a20, 0x1d1fa: 0x6c027e20, 0x1d1fb: 0x6c386420, - 0x1d1fc: 0x6d18d220, 0x1d1fd: 0x6c5c8020, 0x1d1fe: 0x6d07e420, 0x1d1ff: 0x6c2a4a20, - // Block 0x748, offset 0x1d200 - 0x1d200: 0x6d124420, 0x1d201: 0x6c819a20, 0x1d202: 0x6c819820, 0x1d203: 0x6c779c20, - 0x1d204: 0x6c996620, 0x1d205: 0x6d30d220, 0x1d206: 0x6cb5a820, 0x1d207: 0x6c467a20, - 0x1d208: 0x6c468020, 0x1d209: 0x6c467c20, 0x1d20a: 0x6c2f3420, 0x1d20b: 0x6c2eb020, - 0x1d20c: 0x6c373020, 0x1d20d: 0x6cd64620, 0x1d20e: 0x6cc85620, 0x1d20f: 0x6ca3b220, - 0x1d210: 0x6ca3b420, 0x1d211: 0x6c329220, 0x1d212: 0x6c82b220, 0x1d213: 0x6ce63220, - 0x1d214: 0x6d3efc20, 0x1d215: 0x6c44c220, 0x1d216: 0x6c17b620, 0x1d217: 0x6c503220, - 0x1d218: 0x6d27a020, 0x1d219: 0x6c03b020, 0x1d21a: 0x6caf6420, 0x1d21b: 0x6d14ec20, - 0x1d21c: 0x6cd8bc20, 0x1d21d: 0x6cc26e20, 0x1d21e: 0x6c635220, 0x1d21f: 0x6c723220, - 0x1d220: 0x6c5d5620, 0x1d221: 0x6c1e8e20, 0x1d222: 0x6c81d420, 0x1d223: 0x6c951c20, - 0x1d224: 0x6c607020, 0x1d225: 0x6ce0c620, 0x1d226: 0x6cab8e20, 0x1d227: 0x6c90b420, - 0x1d228: 0x6caa2820, 0x1d229: 0x6c67be20, 0x1d22a: 0x6cad1e20, 0x1d22b: 0x6d2c5620, - 0x1d22c: 0x6c90be20, 0x1d22d: 0x6c5f7020, 0x1d22e: 0x6c81e420, 0x1d22f: 0x6c5e2e20, - 0x1d230: 0x6d1ed420, 0x1d231: 0x6ca1a020, 0x1d232: 0x6c580420, 0x1d233: 0x6c378420, - 0x1d234: 0x6d169620, 0x1d235: 0x6c2f5420, 0x1d236: 0x6d127420, 0x1d237: 0x6c264420, - 0x1d238: 0x6cd95820, 0x1d239: 0x6cbd6820, 0x1d23a: 0x6d27a220, 0x1d23b: 0x6c1b9420, - 0x1d23c: 0x6c27ca20, 0x1d23d: 0x6c27cc20, 0x1d23e: 0x6c533420, 0x1d23f: 0x6c450220, - // Block 0x749, offset 0x1d240 - 0x1d240: 0x6d344820, 0x1d241: 0x6cacb220, 0x1d242: 0x6ca80c20, 0x1d243: 0x6c27d420, - 0x1d244: 0x6d31d620, 0x1d245: 0x6c181a20, 0x1d246: 0x6c8cfa20, 0x1d247: 0x6d32ba20, - 0x1d248: 0x6d1fc220, 0x1d249: 0x6cec3020, 0x1d24a: 0x6c89e420, 0x1d24b: 0x6c8f8c20, - 0x1d24c: 0x6d345c20, 0x1d24d: 0x6ca90220, 0x1d24e: 0x6ce55e20, 0x1d24f: 0x6c375c20, - 0x1d250: 0x6d0bb420, 0x1d251: 0x6ce5f020, 0x1d252: 0x6c485e20, 0x1d253: 0x6d077220, - 0x1d254: 0x6c880420, 0x1d255: 0x6c504620, 0x1d256: 0x6cd16e20, 0x1d257: 0x6c8b1a20, - 0x1d258: 0x6cb24420, 0x1d259: 0x6c6dce20, 0x1d25a: 0x6c726c20, 0x1d25b: 0x6c08ee20, - 0x1d25c: 0x6c2bfe20, 0x1d25d: 0x6c4c7c20, 0x1d25e: 0x6cf1a220, 0x1d25f: 0x6d071a20, - 0x1d260: 0x6cb25820, 0x1d261: 0x6c232e20, 0x1d262: 0x6c2fc820, 0x1d263: 0x6ca5f820, - 0x1d264: 0x6ce68c20, 0x1d265: 0x6c71d020, 0x1d266: 0x6c234820, 0x1d267: 0x6c7c4220, - 0x1d268: 0x6c894420, 0x1d269: 0x6c7d1220, 0x1d26a: 0x6c234a20, 0x1d26b: 0x6c884020, - 0x1d26c: 0x6cf26020, 0x1d26d: 0x6c7d1420, 0x1d26e: 0x6c885820, 0x1d26f: 0x6c886820, - 0x1d270: 0x6c236620, 0x1d271: 0x6c027420, 0x1d272: 0x6cd11820, 0x1d273: 0x6cd96e20, - 0x1d274: 0x6ce64c20, 0x1d275: 0x6c7d2a20, 0x1d276: 0x6ca88820, 0x1d277: 0x6d34aa20, - 0x1d278: 0x6c281020, 0x1d279: 0x6ca93420, 0x1d27a: 0x6cbc8a20, 0x1d27b: 0x6ca65e20, - 0x1d27c: 0x6ce65220, 0x1d27d: 0x6ce65620, 0x1d27e: 0x6c8ff820, 0x1d27f: 0x6d22c620, - // Block 0x74a, offset 0x1d280 - 0x1d280: 0x6d22b620, 0x1d281: 0x6d2fac20, 0x1d282: 0x6cd8ac20, 0x1d283: 0x6cda8220, - 0x1d284: 0x6d180020, 0x1d285: 0x6cdad820, 0x1d286: 0x6cd8ca20, 0x1d287: 0x6d2fcc20, - 0x1d288: 0x6d2fce20, 0x1d289: 0x6cc78220, 0x1d28a: 0x6d164c20, 0x1d28b: 0x6c81fe20, - 0x1d28c: 0x6c5e8020, 0x1d28d: 0x6cbffe20, 0x1d28e: 0x6c78f220, 0x1d28f: 0x6c12b620, - 0x1d290: 0x6c437020, 0x1d291: 0x6c0eb020, 0x1d292: 0x6c58f020, 0x1d293: 0x6c597a20, - 0x1d294: 0x6d15c220, 0x1d295: 0x6cc5c820, 0x1d296: 0x6cffd220, 0x1d297: 0x6cc7f620, - 0x1d298: 0x6d38d820, 0x1d299: 0x6d25fc20, 0x1d29a: 0x6c323820, 0x1d29b: 0x6c425a20, - 0x1d29c: 0x6cc65420, 0x1d29d: 0x6c416e20, 0x1d29e: 0x6c138020, 0x1d29f: 0x6cf2d220, - 0x1d2a0: 0x6c169820, 0x1d2a1: 0x6c476020, 0x1d2a2: 0x6d33a220, 0x1d2a3: 0x6c4dd620, - 0x1d2a4: 0x6c3d4420, 0x1d2a5: 0x6c3a3220, 0x1d2a6: 0x6c3b6420, 0x1d2a7: 0x6cadb220, - 0x1d2a8: 0x6cad2820, 0x1d2a9: 0x6c647020, 0x1d2aa: 0x6c39a820, 0x1d2ab: 0x6d3ccc20, - 0x1d2ac: 0x6d1f0220, 0x1d2ad: 0x6ca31420, 0x1d2ae: 0x6c01e820, 0x1d2af: 0x6c78f620, - 0x1d2b0: 0x6cc46420, 0x1d2b1: 0x6c456820, 0x1d2b2: 0x6d22da20, 0x1d2b3: 0x6cf1d020, - 0x1d2b4: 0x6d10d020, 0x1d2b5: 0x6cb58c20, 0x1d2b6: 0x6cafc020, 0x1d2b7: 0x6cb9f620, - 0x1d2b8: 0x6cf59220, 0x1d2b9: 0x6cf59420, 0x1d2ba: 0x6c3a8c20, 0x1d2bb: 0x6c78f820, - 0x1d2bc: 0x6c6e1220, 0x1d2bd: 0x6cdf6420, 0x1d2be: 0x6cd09020, 0x1d2bf: 0x6d37e620, - // Block 0x74b, offset 0x1d2c0 - 0x1d2c0: 0x6d2f2820, 0x1d2c1: 0x6d007220, 0x1d2c2: 0x6cd09620, 0x1d2c3: 0x6cf07e20, - 0x1d2c4: 0x6d391220, 0x1d2c5: 0x6c2e7820, 0x1d2c6: 0x6c282c20, 0x1d2c7: 0x6c3a9020, - 0x1d2c8: 0x6c037220, 0x1d2c9: 0x6c0ec820, 0x1d2ca: 0x6cc17c20, 0x1d2cb: 0x6ce49420, - 0x1d2cc: 0x6c06f220, 0x1d2cd: 0x6c484a20, 0x1d2ce: 0x6cdf0420, 0x1d2cf: 0x6d3ef220, - 0x1d2d0: 0x6c7a3220, 0x1d2d1: 0x6d33b420, 0x1d2d2: 0x6ca68820, 0x1d2d3: 0x6cb28a20, - 0x1d2d4: 0x6d3f5420, 0x1d2d5: 0x6c3f4c20, 0x1d2d6: 0x6cad2a20, 0x1d2d7: 0x6d313020, - 0x1d2d8: 0x6cfb3820, 0x1d2d9: 0x6d428820, 0x1d2da: 0x6cadb820, 0x1d2db: 0x6c640820, - 0x1d2dc: 0x6cd15620, 0x1d2dd: 0x6d33b620, 0x1d2de: 0x6c05ac20, 0x1d2df: 0x6ca23620, - 0x1d2e0: 0x6cc0ee20, 0x1d2e1: 0x6c552e20, 0x1d2e2: 0x6c77ea20, 0x1d2e3: 0x6c1b8620, - 0x1d2e4: 0x6d1b4020, 0x1d2e5: 0x6d057a20, 0x1d2e6: 0x6d0f5220, 0x1d2e7: 0x6c8f7a20, - 0x1d2e8: 0x6c306620, 0x1d2e9: 0x6c761c20, 0x1d2ea: 0x6c914620, 0x1d2eb: 0x6c6e5c20, - 0x1d2ec: 0x6caa5820, 0x1d2ed: 0x6d0bea20, 0x1d2ee: 0x6cacd020, 0x1d2ef: 0x6c7ae820, - 0x1d2f0: 0x6d14d620, 0x1d2f1: 0x6c49e820, 0x1d2f2: 0x6c4d3e20, 0x1d2f3: 0x6c438220, - 0x1d2f4: 0x6c307020, 0x1d2f5: 0x6c1aa220, 0x1d2f6: 0x6c683e20, 0x1d2f7: 0x6d046420, - 0x1d2f8: 0x6d046620, 0x1d2f9: 0x6c374c20, 0x1d2fa: 0x6c01b020, 0x1d2fb: 0x6c526020, - 0x1d2fc: 0x6cb10a20, 0x1d2fd: 0x6ca5a420, 0x1d2fe: 0x6d3f5620, 0x1d2ff: 0x6c4a4c20, - // Block 0x74c, offset 0x1d300 - 0x1d300: 0x6c19e220, 0x1d301: 0x6ce5c020, 0x1d302: 0x6d33ce20, 0x1d303: 0x6c252c20, - 0x1d304: 0x6c99e620, 0x1d305: 0x6d009220, 0x1d306: 0x6c252e20, 0x1d307: 0x6d009420, - 0x1d308: 0x6c972e20, 0x1d309: 0x6c972a20, 0x1d30a: 0x6c600420, 0x1d30b: 0x6d029e20, - 0x1d30c: 0x6ca8f020, 0x1d30d: 0x6c7b2020, 0x1d30e: 0x6cc97220, 0x1d30f: 0x6d2a0420, - 0x1d310: 0x6cb5aa20, 0x1d311: 0x6ca4e820, 0x1d312: 0x6c9cec20, 0x1d313: 0x6ca9b820, - 0x1d314: 0x6c943a20, 0x1d315: 0x6ced7c20, 0x1d316: 0x6c0ef420, 0x1d317: 0x6cf1d820, - 0x1d318: 0x6ced0e20, 0x1d319: 0x6d04d020, 0x1d31a: 0x6c68ea20, 0x1d31b: 0x6c6e7a20, - 0x1d31c: 0x6d1fc420, 0x1d31d: 0x6c524e20, 0x1d31e: 0x6c260820, 0x1d31f: 0x6c8b0820, - 0x1d320: 0x6cccdc20, 0x1d321: 0x6ce6c420, 0x1d322: 0x6c99f020, 0x1d323: 0x6c214420, - 0x1d324: 0x6cd0a220, 0x1d325: 0x6cba0420, 0x1d326: 0x6c2a9220, 0x1d327: 0x6c72ee20, - 0x1d328: 0x6c243820, 0x1d329: 0x6d04cc20, 0x1d32a: 0x6d032e20, 0x1d32b: 0x6ceac220, - 0x1d32c: 0x6cad3820, 0x1d32d: 0x6c19f220, 0x1d32e: 0x6ca56c20, 0x1d32f: 0x6cb43620, - 0x1d330: 0x6c311420, 0x1d331: 0x6ceac420, 0x1d332: 0x6ca7d620, 0x1d333: 0x6ca53e20, - 0x1d334: 0x6cb05a20, 0x1d335: 0x6c478220, 0x1d336: 0x6c954020, 0x1d337: 0x6c85fc20, - 0x1d338: 0x6c88b820, 0x1d339: 0x6d2f3020, 0x1d33a: 0x6c254020, 0x1d33b: 0x6c6a1c20, - 0x1d33c: 0x6c899420, 0x1d33d: 0x6cd6fc20, 0x1d33e: 0x6caff420, 0x1d33f: 0x6c0bfe20, - // Block 0x74d, offset 0x1d340 - 0x1d340: 0x6c94fc20, 0x1d341: 0x6cb11020, 0x1d342: 0x6c82c420, 0x1d343: 0x6c7cfe20, - 0x1d344: 0x6c20d620, 0x1d345: 0x6c288c20, 0x1d346: 0x6ce4fa20, 0x1d347: 0x6ca57020, - 0x1d348: 0x6c6dbc20, 0x1d349: 0x6ca37a20, 0x1d34a: 0x6c7e7820, 0x1d34b: 0x6d12f420, - 0x1d34c: 0x6d0c0e20, 0x1d34d: 0x6cc5f420, 0x1d34e: 0x6cd0a420, 0x1d34f: 0x6c21c220, - 0x1d350: 0x6c3f7820, 0x1d351: 0x6c3f6a20, 0x1d352: 0x6c709620, 0x1d353: 0x6c3a3620, - 0x1d354: 0x6cbabc20, 0x1d355: 0x6ced8820, 0x1d356: 0x6c307c20, 0x1d357: 0x6caff620, - 0x1d358: 0x6c4c6e20, 0x1d359: 0x6d3f9220, 0x1d35a: 0x6c2fa820, 0x1d35b: 0x6cf2fe20, - 0x1d35c: 0x6c9a6020, 0x1d35d: 0x6ca5f420, 0x1d35e: 0x6d3bd020, 0x1d35f: 0x6c1c3420, - 0x1d360: 0x6c23f020, 0x1d361: 0x6c954820, 0x1d362: 0x6cab8020, 0x1d363: 0x6c2c6e20, - 0x1d364: 0x6c013c20, 0x1d365: 0x6d038220, 0x1d366: 0x6ca50420, 0x1d367: 0x6cd5ea20, - 0x1d368: 0x6cd69220, 0x1d369: 0x6ca42e20, 0x1d36a: 0x6d283c20, 0x1d36b: 0x6d380020, - 0x1d36c: 0x6cc78620, 0x1d36d: 0x6c366020, 0x1d36e: 0x6cc9ca20, 0x1d36f: 0x6ce8c820, - 0x1d370: 0x6d10ae20, 0x1d371: 0x6c669220, 0x1d372: 0x6cefe620, 0x1d373: 0x6c690e20, - 0x1d374: 0x6d213220, 0x1d375: 0x6c637220, 0x1d376: 0x6c32d020, 0x1d377: 0x6c09d820, - 0x1d378: 0x6c16b220, 0x1d379: 0x6c401220, 0x1d37a: 0x6cfcde20, 0x1d37b: 0x6ca6b020, - 0x1d37c: 0x6c9e2e20, 0x1d37d: 0x6cec3820, 0x1d37e: 0x6ce2a220, 0x1d37f: 0x6ce9e620, - // Block 0x74e, offset 0x1d380 - 0x1d380: 0x6c055620, 0x1d381: 0x6cba1820, 0x1d382: 0x6c93a820, 0x1d383: 0x6cec3a20, - 0x1d384: 0x6cda3e20, 0x1d385: 0x6ce11c20, 0x1d386: 0x6cdaee20, 0x1d387: 0x6d3c9820, - 0x1d388: 0x6c441420, 0x1d389: 0x6d183220, 0x1d38a: 0x6c100a20, 0x1d38b: 0x6c89fa20, - 0x1d38c: 0x6c607220, 0x1d38d: 0x6cb00a20, 0x1d38e: 0x6d00d020, 0x1d38f: 0x6c42d020, - 0x1d390: 0x6c93b420, 0x1d391: 0x6c0d8420, 0x1d392: 0x6cab6c20, 0x1d393: 0x6c16c220, - 0x1d394: 0x6c92ae20, 0x1d395: 0x6c4c8220, 0x1d396: 0x6cace020, 0x1d397: 0x6c1fbc20, - 0x1d398: 0x6c0c1a20, 0x1d399: 0x6c67c020, 0x1d39a: 0x6c3d9220, 0x1d39b: 0x6ce12c20, - 0x1d39c: 0x6ca06e20, 0x1d39d: 0x6cf6ac20, 0x1d39e: 0x6d3b8e20, 0x1d39f: 0x6c93f820, - 0x1d3a0: 0x6c686e20, 0x1d3a1: 0x6d1d4420, 0x1d3a2: 0x6c936220, 0x1d3a3: 0x6d36be20, - 0x1d3a4: 0x6d098620, 0x1d3a5: 0x6c211e20, 0x1d3a6: 0x6c8c6620, 0x1d3a7: 0x6ce78e20, - 0x1d3a8: 0x6caec820, 0x1d3a9: 0x6ca6cc20, 0x1d3aa: 0x6c1fcc20, 0x1d3ab: 0x6c8a1e20, - 0x1d3ac: 0x6c256620, 0x1d3ad: 0x6c4a8e20, 0x1d3ae: 0x6cff1620, 0x1d3af: 0x6ce29020, - 0x1d3b0: 0x6c38c220, 0x1d3b1: 0x6d349a20, 0x1d3b2: 0x6c688020, 0x1d3b3: 0x6ccdb420, - 0x1d3b4: 0x6c550420, 0x1d3b5: 0x6c255c20, 0x1d3b6: 0x6cc90a20, 0x1d3b7: 0x6cfd8a20, - 0x1d3b8: 0x6cdc1020, 0x1d3b9: 0x6c3bf020, 0x1d3ba: 0x6d1c0020, 0x1d3bb: 0x6ccd1620, - 0x1d3bc: 0x6d3b5c20, 0x1d3bd: 0x6c284c20, 0x1d3be: 0x6c7b4020, 0x1d3bf: 0x6ca9d220, - // Block 0x74f, offset 0x1d3c0 - 0x1d3c0: 0x6cea7020, 0x1d3c1: 0x6c886a20, 0x1d3c2: 0x6c0a7620, 0x1d3c3: 0x6d1dc020, - 0x1d3c4: 0x6c74cc20, 0x1d3c5: 0x6c1f8020, 0x1d3c6: 0x6d18d420, 0x1d3c7: 0x6c732c20, - 0x1d3c8: 0x6c7e9820, 0x1d3c9: 0x6c88ce20, 0x1d3ca: 0x6ccac420, 0x1d3cb: 0x6cea7420, - 0x1d3cc: 0x6c47da20, 0x1d3cd: 0x6cb67820, 0x1d3ce: 0x6c257c20, 0x1d3cf: 0x6c0d8e20, - 0x1d3d0: 0x6d09bc20, 0x1d3d1: 0x6ca53a20, 0x1d3d2: 0x6cf32020, 0x1d3d3: 0x6d2a0e20, - 0x1d3d4: 0x6cfd3420, 0x1d3d5: 0x6c0c4420, 0x1d3d6: 0x6d044020, 0x1d3d7: 0x6c7b5c20, - 0x1d3d8: 0x6c7eaa20, 0x1d3d9: 0x6d0c4220, 0x1d3da: 0x6c918820, 0x1d3db: 0x6c5e4220, - 0x1d3dc: 0x6d28a020, 0x1d3dd: 0x6c95cc20, 0x1d3de: 0x6cc21020, 0x1d3df: 0x6d2a1020, - 0x1d3e0: 0x6c946c20, 0x1d3e1: 0x6ca61e20, 0x1d3e2: 0x6d28aa20, 0x1d3e3: 0x6c189420, - 0x1d3e4: 0x6cb8b620, 0x1d3e5: 0x6cf2da20, 0x1d3e6: 0x6c4a2420, 0x1d3e7: 0x6d29e220, - 0x1d3e8: 0x6c8bea20, 0x1d3e9: 0x6c4a0e20, 0x1d3ea: 0x6d3f2a20, 0x1d3eb: 0x6c68c420, - 0x1d3ec: 0x6ca80e20, 0x1d3ed: 0x6c1e4020, 0x1d3ee: 0x6c620c20, 0x1d3ef: 0x6c42c820, - 0x1d3f0: 0x6c1e4420, 0x1d3f1: 0x6c9dce20, 0x1d3f2: 0x6ca87420, 0x1d3f3: 0x6d357020, - 0x1d3f4: 0x6d35c620, 0x1d3f5: 0x6c43f220, 0x1d3f6: 0x6c669420, 0x1d3f7: 0x6c2eb220, - 0x1d3f8: 0x6d33e420, 0x1d3f9: 0x6d04d820, 0x1d3fa: 0x6cdf3220, 0x1d3fb: 0x6d319820, - 0x1d3fc: 0x6c6fd020, 0x1d3fd: 0x6cfc8420, 0x1d3fe: 0x6d20ca20, 0x1d3ff: 0x6c138620, - // Block 0x750, offset 0x1d400 - 0x1d400: 0x6d11a420, 0x1d401: 0x6d20e820, 0x1d402: 0x6c1cc220, 0x1d403: 0x6cf89020, - 0x1d404: 0x6cf89220, 0x1d405: 0x6c700620, 0x1d406: 0x6d217a20, 0x1d407: 0x6d227220, - 0x1d408: 0x6d043820, 0x1d409: 0x6c71d420, 0x1d40a: 0x6c702a20, 0x1d40b: 0x6d035820, - 0x1d40c: 0x6ccf0620, 0x1d40d: 0x6ccf2820, 0x1d40e: 0x6ccf9620, 0x1d40f: 0x6c6fb220, - 0x1d410: 0x6cd36020, 0x1d411: 0x6cdfa420, 0x1d412: 0x6cd4e220, 0x1d413: 0x6cd3b620, - 0x1d414: 0x6ce50820, 0x1d415: 0x6ce0a420, 0x1d416: 0x6cb4b020, 0x1d417: 0x6cb4b220, - 0x1d418: 0x6c496420, 0x1d419: 0x6c57cc20, 0x1d41a: 0x6ce54020, 0x1d41b: 0x6c201620, - 0x1d41c: 0x6cd75220, 0x1d41d: 0x6cf9d820, 0x1d41e: 0x6cf45e20, 0x1d41f: 0x6d385220, - 0x1d420: 0x6c29be20, 0x1d421: 0x6c1ff420, 0x1d422: 0x6cccd620, 0x1d423: 0x6d15d420, - 0x1d424: 0x6c397c20, 0x1d425: 0x6cabc020, 0x1d426: 0x6cdf6a20, 0x1d427: 0x6c389420, - 0x1d428: 0x6c04c820, 0x1d429: 0x6c1ff620, 0x1d42a: 0x6c4f6c20, 0x1d42b: 0x6c39d420, - 0x1d42c: 0x6c047a20, 0x1d42d: 0x6c08d420, 0x1d42e: 0x6c934820, 0x1d42f: 0x6d37b020, - 0x1d430: 0x6c667220, 0x1d431: 0x6c122a20, 0x1d432: 0x6c8cfc20, 0x1d433: 0x6d3a1020, - 0x1d434: 0x6d2ac620, 0x1d435: 0x6c34f220, 0x1d436: 0x6c0ef620, 0x1d437: 0x6cfb5020, - 0x1d438: 0x6c447620, 0x1d439: 0x6c1ff820, 0x1d43a: 0x6cf9b420, 0x1d43b: 0x6c914e20, - 0x1d43c: 0x6cbf2e20, 0x1d43d: 0x6cacfc20, 0x1d43e: 0x6cf62a20, 0x1d43f: 0x6c7af420, - // Block 0x751, offset 0x1d440 - 0x1d440: 0x6c3ea420, 0x1d441: 0x6d2a8620, 0x1d442: 0x6c3cb220, 0x1d443: 0x6c83f220, - 0x1d444: 0x6cce7820, 0x1d445: 0x6d216420, 0x1d446: 0x6c80d220, 0x1d447: 0x6ce6ce20, - 0x1d448: 0x6d237820, 0x1d449: 0x6cefe820, 0x1d44a: 0x6c0f3220, 0x1d44b: 0x6c9be020, - 0x1d44c: 0x6ca76c20, 0x1d44d: 0x6c70b420, 0x1d44e: 0x6c59f420, 0x1d44f: 0x6cd44a20, - 0x1d450: 0x6c78d020, 0x1d451: 0x6c0bb820, 0x1d452: 0x6ca2a620, 0x1d453: 0x6c2ede20, - 0x1d454: 0x6c315c20, 0x1d455: 0x6c059020, 0x1d456: 0x6c13ae20, 0x1d457: 0x6d18b220, - 0x1d458: 0x6cd9d820, 0x1d459: 0x6c123a20, 0x1d45a: 0x6c129c20, 0x1d45b: 0x6c90c020, - 0x1d45c: 0x6c279820, 0x1d45d: 0x6d098a20, 0x1d45e: 0x6d123420, 0x1d45f: 0x6c1cee20, - 0x1d460: 0x6c2b0820, 0x1d461: 0x6c291c20, 0x1d462: 0x6cbb2c20, 0x1d463: 0x6c91f620, - 0x1d464: 0x6d162220, 0x1d465: 0x6c60e020, 0x1d466: 0x6c670e20, 0x1d467: 0x6c5e3020, - 0x1d468: 0x6c9b8620, 0x1d469: 0x6cb69820, 0x1d46a: 0x6c91fe20, 0x1d46b: 0x6c919a20, - 0x1d46c: 0x6c157220, 0x1d46d: 0x6cd6c020, 0x1d46e: 0x6c449e20, 0x1d46f: 0x6c894620, - 0x1d470: 0x6c647220, 0x1d471: 0x6c650020, 0x1d472: 0x6ccb1420, 0x1d473: 0x6d0e5420, - 0x1d474: 0x6c3e6820, 0x1d475: 0x6cb25a20, 0x1d476: 0x6d0eea20, 0x1d477: 0x6d0f1c20, - 0x1d478: 0x6c12aa20, 0x1d479: 0x6c12c020, 0x1d47a: 0x6d164220, 0x1d47b: 0x6c821220, - 0x1d47c: 0x6ce62820, 0x1d47d: 0x6c681e20, 0x1d47e: 0x6c008420, 0x1d47f: 0x6ca39020, - // Block 0x752, offset 0x1d480 - 0x1d480: 0x6ce56820, 0x1d481: 0x6c682020, 0x1d482: 0x6c6a5a20, 0x1d483: 0x6cae8c20, - 0x1d484: 0x6cecbe20, 0x1d485: 0x6d167020, 0x1d486: 0x6c145e20, 0x1d487: 0x6c9db820, - 0x1d488: 0x6c9cd820, 0x1d489: 0x6c416220, 0x1d48a: 0x6cb89e20, 0x1d48b: 0x6d22c820, - 0x1d48c: 0x6d22ca20, 0x1d48d: 0x6cce9620, 0x1d48e: 0x6cbeee20, 0x1d48f: 0x6c323020, - 0x1d490: 0x6c564c20, 0x1d491: 0x6cb6ce20, 0x1d492: 0x6c982c20, 0x1d493: 0x6d3f2e20, - 0x1d494: 0x6c5ba020, 0x1d495: 0x6cdbaa20, 0x1d496: 0x6d357220, 0x1d497: 0x6cfd6020, - 0x1d498: 0x6cafb020, 0x1d499: 0x6c3ddc20, 0x1d49a: 0x6cea4220, 0x1d49b: 0x6cef8a20, - 0x1d49c: 0x6cf3a820, 0x1d49d: 0x6d338420, 0x1d49e: 0x6cb73e20, 0x1d49f: 0x6cccbe20, - 0x1d4a0: 0x6cf18020, 0x1d4a1: 0x6cba3e20, 0x1d4a2: 0x6cc56e20, 0x1d4a3: 0x6c3dde20, - 0x1d4a4: 0x6c79b620, 0x1d4a5: 0x6c6bba20, 0x1d4a6: 0x6c913620, 0x1d4a7: 0x6d067420, - 0x1d4a8: 0x6c5e8220, 0x1d4a9: 0x6cbd5420, 0x1d4aa: 0x6cb57620, 0x1d4ab: 0x6d0c5a20, - 0x1d4ac: 0x6c3b1420, 0x1d4ad: 0x6c032020, 0x1d4ae: 0x6cc8c020, 0x1d4af: 0x6d02ac20, - 0x1d4b0: 0x6c618a20, 0x1d4b1: 0x6c570620, 0x1d4b2: 0x6c570820, 0x1d4b3: 0x6c398620, - 0x1d4b4: 0x6cf4ae20, 0x1d4b5: 0x6c73e420, 0x1d4b6: 0x6c466c20, 0x1d4b7: 0x6d34ee20, - 0x1d4b8: 0x6d278420, 0x1d4b9: 0x6cbd5620, 0x1d4ba: 0x6c029e20, 0x1d4bb: 0x6c1e7820, - 0x1d4bc: 0x6c994620, 0x1d4bd: 0x6d0b1420, 0x1d4be: 0x6c3a8020, 0x1d4bf: 0x6cc63220, - // Block 0x753, offset 0x1d4c0 - 0x1d4c0: 0x6c4f5a20, 0x1d4c1: 0x6c22fc20, 0x1d4c2: 0x6d1a2a20, 0x1d4c3: 0x6d1fa220, - 0x1d4c4: 0x6c0b7420, 0x1d4c5: 0x6d169a20, 0x1d4c6: 0x6cbd1020, 0x1d4c7: 0x6cef8c20, - 0x1d4c8: 0x6c858420, 0x1d4c9: 0x6cb05420, 0x1d4ca: 0x6c35d420, 0x1d4cb: 0x6cfc7c20, - 0x1d4cc: 0x6c169a20, 0x1d4cd: 0x6c122420, 0x1d4ce: 0x6d3aa620, 0x1d4cf: 0x6cda4820, - 0x1d4d0: 0x6ce30e20, 0x1d4d1: 0x6d260220, 0x1d4d2: 0x6cc4ae20, 0x1d4d3: 0x6c8cb020, - 0x1d4d4: 0x6cdf1a20, 0x1d4d5: 0x6cce9820, 0x1d4d6: 0x6c2b5c20, 0x1d4d7: 0x6c9e6e20, - 0x1d4d8: 0x6cbe9c20, 0x1d4d9: 0x6c859620, 0x1d4da: 0x6d1e7220, 0x1d4db: 0x6c77d820, - 0x1d4dc: 0x6ca27220, 0x1d4dd: 0x6c06ee20, 0x1d4de: 0x6c05a820, 0x1d4df: 0x6c467220, - 0x1d4e0: 0x6c9f3420, 0x1d4e1: 0x6d15c420, 0x1d4e2: 0x6d15ca20, 0x1d4e3: 0x6c720020, - 0x1d4e4: 0x6cb1de20, 0x1d4e5: 0x6cc91420, 0x1d4e6: 0x6c7a7620, 0x1d4e7: 0x6ca8fa20, - 0x1d4e8: 0x6ca62c20, 0x1d4e9: 0x6c0ebc20, 0x1d4ea: 0x6c0dc820, 0x1d4eb: 0x6cccc620, - 0x1d4ec: 0x6d051a20, 0x1d4ed: 0x6d119220, 0x1d4ee: 0x6cfa8420, 0x1d4ef: 0x6c079620, - 0x1d4f0: 0x6c530620, 0x1d4f1: 0x6d1ba220, 0x1d4f2: 0x6d2c7420, 0x1d4f3: 0x6c2fe220, - 0x1d4f4: 0x6c706020, 0x1d4f5: 0x6c2e6220, 0x1d4f6: 0x6ca7de20, 0x1d4f7: 0x6c417e20, - 0x1d4f8: 0x6c54a820, 0x1d4f9: 0x6cb27c20, 0x1d4fa: 0x6c99dc20, 0x1d4fb: 0x6c3e0220, - 0x1d4fc: 0x6cd0e820, 0x1d4fd: 0x6c46f620, 0x1d4fe: 0x6c093e20, 0x1d4ff: 0x6cf07620, - // Block 0x754, offset 0x1d500 - 0x1d500: 0x6c3e0420, 0x1d501: 0x6d3d2e20, 0x1d502: 0x6c994c20, 0x1d503: 0x6c393220, - 0x1d504: 0x6c633020, 0x1d505: 0x6c98cc20, 0x1d506: 0x6c98ce20, 0x1d507: 0x6c036a20, - 0x1d508: 0x6c223220, 0x1d509: 0x6ca0d620, 0x1d50a: 0x6d3e0620, 0x1d50b: 0x6c2be020, - 0x1d50c: 0x6c1b0a20, 0x1d50d: 0x6c61b220, 0x1d50e: 0x6c6d9420, 0x1d50f: 0x6c8f6e20, - 0x1d510: 0x6c23e220, 0x1d511: 0x6ca78e20, 0x1d512: 0x6d256c20, 0x1d513: 0x6d08fe20, - 0x1d514: 0x6d1c5a20, 0x1d515: 0x6cbf0020, 0x1d516: 0x6c43cc20, 0x1d517: 0x6c9ff020, - 0x1d518: 0x6c85ae20, 0x1d519: 0x6cc65c20, 0x1d51a: 0x6d1b3c20, 0x1d51b: 0x6c44b020, - 0x1d51c: 0x6cba4420, 0x1d51d: 0x6c148e20, 0x1d51e: 0x6c18aa20, 0x1d51f: 0x6d22e820, - 0x1d520: 0x6c4fa220, 0x1d521: 0x6d3f3420, 0x1d522: 0x6c8adc20, 0x1d523: 0x6cf3bc20, - 0x1d524: 0x6c61b420, 0x1d525: 0x6c4a4020, 0x1d526: 0x6c22bc20, 0x1d527: 0x6c657620, - 0x1d528: 0x6c223420, 0x1d529: 0x6c469e20, 0x1d52a: 0x6c49e220, 0x1d52b: 0x6c984420, - 0x1d52c: 0x6c13ce20, 0x1d52d: 0x6c683620, 0x1d52e: 0x6c683820, 0x1d52f: 0x6c3e2420, - 0x1d530: 0x6d20ea20, 0x1d531: 0x6d398e20, 0x1d532: 0x6d3e1420, 0x1d533: 0x6c675220, - 0x1d534: 0x6c5b2820, 0x1d535: 0x6d19b620, 0x1d536: 0x6c13d020, 0x1d537: 0x6c380820, - 0x1d538: 0x6cc64e20, 0x1d539: 0x6cc79420, 0x1d53a: 0x6c1cb620, 0x1d53b: 0x6c989220, - 0x1d53c: 0x6ce72c20, 0x1d53d: 0x6d381c20, 0x1d53e: 0x6cb8ac20, 0x1d53f: 0x6d3a0220, - // Block 0x755, offset 0x1d540 - 0x1d540: 0x6d09f220, 0x1d541: 0x6c586820, 0x1d542: 0x6c3d5420, 0x1d543: 0x6cc2c620, - 0x1d544: 0x6c40ea20, 0x1d545: 0x6c264620, 0x1d546: 0x6c6d9a20, 0x1d547: 0x6d041c20, - 0x1d548: 0x6c201c20, 0x1d549: 0x6c12ac20, 0x1d54a: 0x6c6d9c20, 0x1d54b: 0x6c374820, - 0x1d54c: 0x6c01a820, 0x1d54d: 0x6cbbd420, 0x1d54e: 0x6c1b1220, 0x1d54f: 0x6cc58c20, - 0x1d550: 0x6c666020, 0x1d551: 0x6ce31220, 0x1d552: 0x6c598420, 0x1d553: 0x6cb28e20, - 0x1d554: 0x6c85b020, 0x1d555: 0x6c6c3620, 0x1d556: 0x6c81aa20, 0x1d557: 0x6cd5b620, - 0x1d558: 0x6d3c0e20, 0x1d559: 0x6c268c20, 0x1d55a: 0x6c63a820, 0x1d55b: 0x6cc52220, - 0x1d55c: 0x6c095620, 0x1d55d: 0x6d2ab420, 0x1d55e: 0x6cbbd620, 0x1d55f: 0x6c5ba220, - 0x1d560: 0x6c61b620, 0x1d561: 0x6c295c20, 0x1d562: 0x6d24c020, 0x1d563: 0x6cc65e20, - 0x1d564: 0x6c5cb620, 0x1d565: 0x6d03d420, 0x1d566: 0x6c95ec20, 0x1d567: 0x6d1c5e20, - 0x1d568: 0x6d09f420, 0x1d569: 0x6c6ce420, 0x1d56a: 0x6cdcce20, 0x1d56b: 0x6d19b820, - 0x1d56c: 0x6c971220, 0x1d56d: 0x6c532020, 0x1d56e: 0x6d391420, 0x1d56f: 0x6d11f620, - 0x1d570: 0x6c324c20, 0x1d571: 0x6cefa420, 0x1d572: 0x6c83b020, 0x1d573: 0x6c310820, - 0x1d574: 0x6c3d6020, 0x1d575: 0x6cc59220, 0x1d576: 0x6d1a4c20, 0x1d577: 0x6c50fc20, - 0x1d578: 0x6c08a020, 0x1d579: 0x6c108820, 0x1d57a: 0x6d27e220, 0x1d57b: 0x6c2b6620, - 0x1d57c: 0x6ce89820, 0x1d57d: 0x6cdbba20, 0x1d57e: 0x6cdbbc20, 0x1d57f: 0x6c19d020, - // Block 0x756, offset 0x1d580 - 0x1d580: 0x6c18b420, 0x1d581: 0x6cf3be20, 0x1d582: 0x6c0ce420, 0x1d583: 0x6cf5d020, - 0x1d584: 0x6c450420, 0x1d585: 0x6c85de20, 0x1d586: 0x6cb43420, 0x1d587: 0x6d3ae020, - 0x1d588: 0x6ca10020, 0x1d589: 0x6c85e020, 0x1d58a: 0x6d3c1420, 0x1d58b: 0x6d423420, - 0x1d58c: 0x6ceab820, 0x1d58d: 0x6cc03820, 0x1d58e: 0x6ccbe420, 0x1d58f: 0x6cdd1220, - 0x1d590: 0x6c18b620, 0x1d591: 0x6cae9620, 0x1d592: 0x6c71ae20, 0x1d593: 0x6c99e820, - 0x1d594: 0x6c9b1220, 0x1d595: 0x6d042420, 0x1d596: 0x6c6da220, 0x1d597: 0x6c17d820, - 0x1d598: 0x6ccfd420, 0x1d599: 0x6c756820, 0x1d59a: 0x6d0c7a20, 0x1d59b: 0x6ce66620, - 0x1d59c: 0x6d1f2020, 0x1d59d: 0x6c261e20, 0x1d59e: 0x6c494c20, 0x1d59f: 0x6c4ea020, - 0x1d5a0: 0x6d1fbe20, 0x1d5a1: 0x6c262020, 0x1d5a2: 0x6c63b420, 0x1d5a3: 0x6cede220, - 0x1d5a4: 0x6cda9620, 0x1d5a5: 0x6ca99220, 0x1d5a6: 0x6cce6420, 0x1d5a7: 0x6cfcac20, - 0x1d5a8: 0x6c811a20, 0x1d5a9: 0x6c3e4020, 0x1d5aa: 0x6c355a20, 0x1d5ab: 0x6ca10220, - 0x1d5ac: 0x6cf20420, 0x1d5ad: 0x6c6aa820, 0x1d5ae: 0x6ca3f420, 0x1d5af: 0x6ca27c20, - 0x1d5b0: 0x6c76c820, 0x1d5b1: 0x6c7eee20, 0x1d5b2: 0x6c87f820, 0x1d5b3: 0x6cd26020, - 0x1d5b4: 0x6cf28220, 0x1d5b5: 0x6ce93020, 0x1d5b6: 0x6cfa9620, 0x1d5b7: 0x6c5db220, - 0x1d5b8: 0x6d1f2220, 0x1d5b9: 0x6d1c6020, 0x1d5ba: 0x6d1ba820, 0x1d5bb: 0x6c461e20, - 0x1d5bc: 0x6c213e20, 0x1d5bd: 0x6c988a20, 0x1d5be: 0x6c988c20, 0x1d5bf: 0x6c22c220, - // Block 0x757, offset 0x1d5c0 - 0x1d5c0: 0x6ced1020, 0x1d5c1: 0x6c6db220, 0x1d5c2: 0x6c2c4e20, 0x1d5c3: 0x6cc18020, - 0x1d5c4: 0x6c2ffe20, 0x1d5c5: 0x6c648c20, 0x1d5c6: 0x6d405020, 0x1d5c7: 0x6c483a20, - 0x1d5c8: 0x6c7e4420, 0x1d5c9: 0x6c924820, 0x1d5ca: 0x6c711c20, 0x1d5cb: 0x6cf08620, - 0x1d5cc: 0x6c757020, 0x1d5cd: 0x6ca82220, 0x1d5ce: 0x6c7d5c20, 0x1d5cf: 0x6c511a20, - 0x1d5d0: 0x6cb43a20, 0x1d5d1: 0x6d290020, 0x1d5d2: 0x6c430420, 0x1d5d3: 0x6c4cbc20, - 0x1d5d4: 0x6c3e6c20, 0x1d5d5: 0x6c94f620, 0x1d5d6: 0x6c166a20, 0x1d5d7: 0x6c1daa20, - 0x1d5d8: 0x6cd91e20, 0x1d5d9: 0x6c20ca20, 0x1d5da: 0x6d2e5e20, 0x1d5db: 0x6c9acc20, - 0x1d5dc: 0x6c114420, 0x1d5dd: 0x6c037820, 0x1d5de: 0x6c83c820, 0x1d5df: 0x6ce8aa20, - 0x1d5e0: 0x6c0e7020, 0x1d5e1: 0x6c4eb620, 0x1d5e2: 0x6c064620, 0x1d5e3: 0x6cbe1220, - 0x1d5e4: 0x6c731e20, 0x1d5e5: 0x6cf60020, 0x1d5e6: 0x6cbd6a20, 0x1d5e7: 0x6c2bf220, - 0x1d5e8: 0x6c6a0420, 0x1d5e9: 0x6cb43820, 0x1d5ea: 0x6c296220, 0x1d5eb: 0x6c6c9020, - 0x1d5ec: 0x6cbbde20, 0x1d5ed: 0x6cdf2220, 0x1d5ee: 0x6c44c820, 0x1d5ef: 0x6c573420, - 0x1d5f0: 0x6c470c20, 0x1d5f1: 0x6c8cfe20, 0x1d5f2: 0x6c39fe20, 0x1d5f3: 0x6cbd7020, - 0x1d5f4: 0x6c012a20, 0x1d5f5: 0x6cee1620, 0x1d5f6: 0x6c081c20, 0x1d5f7: 0x6d38e220, - 0x1d5f8: 0x6d0c0020, 0x1d5f9: 0x6c709020, 0x1d5fa: 0x6c648e20, 0x1d5fb: 0x6c8c1e20, - 0x1d5fc: 0x6ce05c20, 0x1d5fd: 0x6cd4d420, 0x1d5fe: 0x6ce49e20, 0x1d5ff: 0x6c2a1420, - // Block 0x758, offset 0x1d600 - 0x1d600: 0x6c561c20, 0x1d601: 0x6cb5d020, 0x1d602: 0x6c511c20, 0x1d603: 0x6c253820, - 0x1d604: 0x6ce22420, 0x1d605: 0x6c210420, 0x1d606: 0x6c098a20, 0x1d607: 0x6c16aa20, - 0x1d608: 0x6c586e20, 0x1d609: 0x6c3aa620, 0x1d60a: 0x6c7f0020, 0x1d60b: 0x6cb4ee20, - 0x1d60c: 0x6c9b1420, 0x1d60d: 0x6cb2a020, 0x1d60e: 0x6cee7420, 0x1d60f: 0x6c288220, - 0x1d610: 0x6ccc4e20, 0x1d611: 0x6c587020, 0x1d612: 0x6d0d6e20, 0x1d613: 0x6d14ee20, - 0x1d614: 0x6ce58420, 0x1d615: 0x6cb5d220, 0x1d616: 0x6ced1220, 0x1d617: 0x6c12e220, - 0x1d618: 0x6ca3bc20, 0x1d619: 0x6d327c20, 0x1d61a: 0x6ceba420, 0x1d61b: 0x6c6f6c20, - 0x1d61c: 0x6ce5ee20, 0x1d61d: 0x6c954220, 0x1d61e: 0x6c0ae020, 0x1d61f: 0x6d199220, - 0x1d620: 0x6c9b1620, 0x1d621: 0x6c100820, 0x1d622: 0x6cada820, 0x1d623: 0x6c2fc620, - 0x1d624: 0x6d1c6420, 0x1d625: 0x6d1c6620, 0x1d626: 0x6d1c6820, 0x1d627: 0x6cfebc20, - 0x1d628: 0x6cc97420, 0x1d629: 0x6cbfb020, 0x1d62a: 0x6c77fc20, 0x1d62b: 0x6cfe3620, - 0x1d62c: 0x6ced8620, 0x1d62d: 0x6d226020, 0x1d62e: 0x6d213620, 0x1d62f: 0x6c3ffa20, - 0x1d630: 0x6c88fe20, 0x1d631: 0x6d07a220, 0x1d632: 0x6d07a420, 0x1d633: 0x6ca42a20, - 0x1d634: 0x6c12f620, 0x1d635: 0x6cf28e20, 0x1d636: 0x6c217a20, 0x1d637: 0x6cfece20, - 0x1d638: 0x6d210620, 0x1d639: 0x6c0b4020, 0x1d63a: 0x6c998420, 0x1d63b: 0x6c013420, - 0x1d63c: 0x6c364020, 0x1d63d: 0x6c960a20, 0x1d63e: 0x6d1c7820, 0x1d63f: 0x6c7dfc20, - // Block 0x759, offset 0x1d640 - 0x1d640: 0x6c7dfe20, 0x1d641: 0x6c676420, 0x1d642: 0x6c9e2a20, 0x1d643: 0x6d42a020, - 0x1d644: 0x6d42a220, 0x1d645: 0x6d409c20, 0x1d646: 0x6c060020, 0x1d647: 0x6cc74e20, - 0x1d648: 0x6cf7ec20, 0x1d649: 0x6d12f620, 0x1d64a: 0x6c013620, 0x1d64b: 0x6cc19420, - 0x1d64c: 0x6c64a820, 0x1d64d: 0x6c3e8e20, 0x1d64e: 0x6c93e420, 0x1d64f: 0x6c6dbe20, - 0x1d650: 0x6cae4220, 0x1d651: 0x6c3c5020, 0x1d652: 0x6c535220, 0x1d653: 0x6c535420, - 0x1d654: 0x6c540820, 0x1d655: 0x6d0e7a20, 0x1d656: 0x6ce86420, 0x1d657: 0x6d311420, - 0x1d658: 0x6d3e4620, 0x1d659: 0x6cfd7a20, 0x1d65a: 0x6cc5f620, 0x1d65b: 0x6c43f420, - 0x1d65c: 0x6cb82c20, 0x1d65d: 0x6cbe8020, 0x1d65e: 0x6c9cf820, 0x1d65f: 0x6c59c820, - 0x1d660: 0x6ccff220, 0x1d661: 0x6cb43c20, 0x1d662: 0x6c413820, 0x1d663: 0x6c303020, - 0x1d664: 0x6d392a20, 0x1d665: 0x6c669620, 0x1d666: 0x6cefcc20, 0x1d667: 0x6c0f0820, - 0x1d668: 0x6cee9220, 0x1d669: 0x6cabc620, 0x1d66a: 0x6c620e20, 0x1d66b: 0x6c556620, - 0x1d66c: 0x6d2a0820, 0x1d66d: 0x6c636220, 0x1d66e: 0x6c32c620, 0x1d66f: 0x6d120a20, - 0x1d670: 0x6cdbc420, 0x1d671: 0x6c231c20, 0x1d672: 0x6cc2fa20, 0x1d673: 0x6cee9420, - 0x1d674: 0x6d315820, 0x1d675: 0x6c7c7a20, 0x1d676: 0x6ce67820, 0x1d677: 0x6c5cd220, - 0x1d678: 0x6cf7ee20, 0x1d679: 0x6cd1c220, 0x1d67a: 0x6cb79a20, 0x1d67b: 0x6c7f9e20, - 0x1d67c: 0x6d3f9420, 0x1d67d: 0x6d10a820, 0x1d67e: 0x6d24f020, 0x1d67f: 0x6c9a0620, - // Block 0x75a, offset 0x1d680 - 0x1d680: 0x6d275220, 0x1d681: 0x6cd5c820, 0x1d682: 0x6c2c6220, 0x1d683: 0x6d3bc620, - 0x1d684: 0x6c491820, 0x1d685: 0x6cc4dc20, 0x1d686: 0x6d08e020, 0x1d687: 0x6c15b820, - 0x1d688: 0x6c765a20, 0x1d689: 0x6c7d0020, 0x1d68a: 0x6c571620, 0x1d68b: 0x6c67a820, - 0x1d68c: 0x6c908e20, 0x1d68d: 0x6cefce20, 0x1d68e: 0x6cac2a20, 0x1d68f: 0x6d206c20, - 0x1d690: 0x6cd9b620, 0x1d691: 0x6d1b6220, 0x1d692: 0x6cd1d420, 0x1d693: 0x6c215420, - 0x1d694: 0x6cd27620, 0x1d695: 0x6d275a20, 0x1d696: 0x6d317220, 0x1d697: 0x6c812220, - 0x1d698: 0x6cc7b420, 0x1d699: 0x6c9b2a20, 0x1d69a: 0x6c863a20, 0x1d69b: 0x6cc38e20, - 0x1d69c: 0x6cdb9c20, 0x1d69d: 0x6d258a20, 0x1d69e: 0x6c863c20, 0x1d69f: 0x6c71c420, - 0x1d6a0: 0x6cf65620, 0x1d6a1: 0x6c057e20, 0x1d6a2: 0x6c1e8220, 0x1d6a3: 0x6d062020, - 0x1d6a4: 0x6ce8cc20, 0x1d6a5: 0x6c8e7020, 0x1d6a6: 0x6c5de020, 0x1d6a7: 0x6c2d2220, - 0x1d6a8: 0x6cba5e20, 0x1d6a9: 0x6d409e20, 0x1d6aa: 0x6cb39820, 0x1d6ab: 0x6c25e420, - 0x1d6ac: 0x6d24fa20, 0x1d6ad: 0x6c1e9020, 0x1d6ae: 0x6d237a20, 0x1d6af: 0x6c7afe20, - 0x1d6b0: 0x6cac6220, 0x1d6b1: 0x6cb43e20, 0x1d6b2: 0x6cb44020, 0x1d6b3: 0x6ca35820, - 0x1d6b4: 0x6cd78820, 0x1d6b5: 0x6cf78820, 0x1d6b6: 0x6c3b7c20, 0x1d6b7: 0x6d27b820, - 0x1d6b8: 0x6d32d220, 0x1d6b9: 0x6c64c020, 0x1d6ba: 0x6c605e20, 0x1d6bb: 0x6cc92220, - 0x1d6bc: 0x6c123620, 0x1d6bd: 0x6c371820, 0x1d6be: 0x6c9c5820, 0x1d6bf: 0x6c4fa820, - // Block 0x75b, offset 0x1d6c0 - 0x1d6c0: 0x6cdcd820, 0x1d6c1: 0x6d317420, 0x1d6c2: 0x6ca00c20, 0x1d6c3: 0x6cd9b820, - 0x1d6c4: 0x6d06fe20, 0x1d6c5: 0x6c8e7220, 0x1d6c6: 0x6cf78a20, 0x1d6c7: 0x6c479220, - 0x1d6c8: 0x6c80c020, 0x1d6c9: 0x6cc68c20, 0x1d6ca: 0x6cf25420, 0x1d6cb: 0x6c414820, - 0x1d6cc: 0x6c263020, 0x1d6cd: 0x6cd1d620, 0x1d6ce: 0x6ce10820, 0x1d6cf: 0x6c95b620, - 0x1d6d0: 0x6cc82020, 0x1d6d1: 0x6cdd2820, 0x1d6d2: 0x6d07ae20, 0x1d6d3: 0x6c073620, - 0x1d6d4: 0x6d11ba20, 0x1d6d5: 0x6c4b5620, 0x1d6d6: 0x6c09da20, 0x1d6d7: 0x6d3ffc20, - 0x1d6d8: 0x6c4bd220, 0x1d6d9: 0x6d42ba20, 0x1d6da: 0x6ce58620, 0x1d6db: 0x6c12fe20, - 0x1d6dc: 0x6cae2e20, 0x1d6dd: 0x6c7fa420, 0x1d6de: 0x6c28b620, 0x1d6df: 0x6c622420, - 0x1d6e0: 0x6c83f420, 0x1d6e1: 0x6ccffa20, 0x1d6e2: 0x6c810620, 0x1d6e3: 0x6d237c20, - 0x1d6e4: 0x6c8e2e20, 0x1d6e5: 0x6d1c8420, 0x1d6e6: 0x6ca13020, 0x1d6e7: 0x6c2e3020, - 0x1d6e8: 0x6ce58e20, 0x1d6e9: 0x6c993c20, 0x1d6ea: 0x6ce6fa20, 0x1d6eb: 0x6c1f5a20, - 0x1d6ec: 0x6caeae20, 0x1d6ed: 0x6c014020, 0x1d6ee: 0x6c881820, 0x1d6ef: 0x6c233220, - 0x1d6f0: 0x6cf80220, 0x1d6f1: 0x6cb2ae20, 0x1d6f2: 0x6cbfb820, 0x1d6f3: 0x6c6ca620, - 0x1d6f4: 0x6c215820, 0x1d6f5: 0x6c6b1420, 0x1d6f6: 0x6cef2420, 0x1d6f7: 0x6ce99620, - 0x1d6f8: 0x6c128220, 0x1d6f9: 0x6d23ca20, 0x1d6fa: 0x6d183620, 0x1d6fb: 0x6d3ed220, - 0x1d6fc: 0x6c8a7220, 0x1d6fd: 0x6c09dc20, 0x1d6fe: 0x6c91ce20, 0x1d6ff: 0x6d077620, - // Block 0x75c, offset 0x1d700 - 0x1d700: 0x6c10a820, 0x1d701: 0x6d2ed020, 0x1d702: 0x6c824a20, 0x1d703: 0x6cbb1c20, - 0x1d704: 0x6c97f220, 0x1d705: 0x6d0cb820, 0x1d706: 0x6c8d3e20, 0x1d707: 0x6c621020, - 0x1d708: 0x6c0c0e20, 0x1d709: 0x6c4bde20, 0x1d70a: 0x6c4e5c20, 0x1d70b: 0x6c2b8220, - 0x1d70c: 0x6cdaf020, 0x1d70d: 0x6c929620, 0x1d70e: 0x6ccf6c20, 0x1d70f: 0x6cce1420, - 0x1d710: 0x6c2b8420, 0x1d711: 0x6c9ee420, 0x1d712: 0x6d09a220, 0x1d713: 0x6c97f420, - 0x1d714: 0x6c0f3420, 0x1d715: 0x6c2c8420, 0x1d716: 0x6c25ea20, 0x1d717: 0x6d311620, - 0x1d718: 0x6cd00a20, 0x1d719: 0x6d08a620, 0x1d71a: 0x6cf0b220, 0x1d71b: 0x6c558220, - 0x1d71c: 0x6c025620, 0x1d71d: 0x6c9cfc20, 0x1d71e: 0x6c90aa20, 0x1d71f: 0x6c244a20, - 0x1d720: 0x6d37c220, 0x1d721: 0x6c114820, 0x1d722: 0x6cb33220, 0x1d723: 0x6c67b220, - 0x1d724: 0x6c9d6e20, 0x1d725: 0x6c233420, 0x1d726: 0x6ca7a220, 0x1d727: 0x6c5c0220, - 0x1d728: 0x6c738620, 0x1d729: 0x6d1a8420, 0x1d72a: 0x6c66ac20, 0x1d72b: 0x6ca6f020, - 0x1d72c: 0x6cd50220, 0x1d72d: 0x6d19f020, 0x1d72e: 0x6c4c7e20, 0x1d72f: 0x6c18d620, - 0x1d730: 0x6c56bc20, 0x1d731: 0x6ccc0020, 0x1d732: 0x6c79fc20, 0x1d733: 0x6cba6e20, - 0x1d734: 0x6c966e20, 0x1d735: 0x6d29e420, 0x1d736: 0x6d2b5a20, 0x1d737: 0x6cbb1620, - 0x1d738: 0x6c30ba20, 0x1d739: 0x6c88c620, 0x1d73a: 0x6c8c5a20, 0x1d73b: 0x6c79fe20, - 0x1d73c: 0x6c007020, 0x1d73d: 0x6c0a0a20, 0x1d73e: 0x6c843220, 0x1d73f: 0x6cf00a20, - // Block 0x75d, offset 0x1d740 - 0x1d740: 0x6c609620, 0x1d741: 0x6cb9c420, 0x1d742: 0x6cd17620, 0x1d743: 0x6c385c20, - 0x1d744: 0x6c9b3c20, 0x1d745: 0x6cab9020, 0x1d746: 0x6c15dc20, 0x1d747: 0x6c2d2820, - 0x1d748: 0x6d0aa420, 0x1d749: 0x6c687020, 0x1d74a: 0x6cc8ac20, 0x1d74b: 0x6cc8ae20, - 0x1d74c: 0x6c82d420, 0x1d74d: 0x6d218e20, 0x1d74e: 0x6cbbf220, 0x1d74f: 0x6c1ea020, - 0x1d750: 0x6c575220, 0x1d751: 0x6c64e220, 0x1d752: 0x6c971a20, 0x1d753: 0x6d27c220, - 0x1d754: 0x6c05b820, 0x1d755: 0x6d1f6820, 0x1d756: 0x6cc1aa20, 0x1d757: 0x6c92da20, - 0x1d758: 0x6cc52a20, 0x1d759: 0x6c5c1e20, 0x1d75a: 0x6c369020, 0x1d75b: 0x6ce36a20, - 0x1d75c: 0x6c3a6a20, 0x1d75d: 0x6c749e20, 0x1d75e: 0x6d41c820, 0x1d75f: 0x6c384020, - 0x1d760: 0x6cc7c020, 0x1d761: 0x6c3b8e20, 0x1d762: 0x6c7d1620, 0x1d763: 0x6cd75820, - 0x1d764: 0x6cc8a220, 0x1d765: 0x6d0b5e20, 0x1d766: 0x6d05dc20, 0x1d767: 0x6c403c20, - 0x1d768: 0x6c74a020, 0x1d769: 0x6c298a20, 0x1d76a: 0x6cf3e420, 0x1d76b: 0x6c303a20, - 0x1d76c: 0x6cd82420, 0x1d76d: 0x6cff1820, 0x1d76e: 0x6cf8d020, 0x1d76f: 0x6c8fa020, - 0x1d770: 0x6cf16420, 0x1d771: 0x6ccee820, 0x1d772: 0x6cb64220, 0x1d773: 0x6c64e420, - 0x1d774: 0x6d284e20, 0x1d775: 0x6cdcde20, 0x1d776: 0x6c8d5a20, 0x1d777: 0x6d23f220, - 0x1d778: 0x6cf9ec20, 0x1d779: 0x6cf27220, 0x1d77a: 0x6c609820, 0x1d77b: 0x6c538820, - 0x1d77c: 0x6cd8ee20, 0x1d77d: 0x6ca9ca20, 0x1d77e: 0x6c82da20, 0x1d77f: 0x6d07ce20, - // Block 0x75e, offset 0x1d780 - 0x1d780: 0x6d285620, 0x1d781: 0x6d23cc20, 0x1d782: 0x6cf7a420, 0x1d783: 0x6c506e20, - 0x1d784: 0x6c05d620, 0x1d785: 0x6c4fae20, 0x1d786: 0x6c00d220, 0x1d787: 0x6ceeba20, - 0x1d788: 0x6c5c3c20, 0x1d789: 0x6c5c3e20, 0x1d78a: 0x6c628220, 0x1d78b: 0x6c226e20, - 0x1d78c: 0x6cfd8420, 0x1d78d: 0x6ced9a20, 0x1d78e: 0x6c9ee820, 0x1d78f: 0x6d18b420, - 0x1d790: 0x6c838820, 0x1d791: 0x6c677e20, 0x1d792: 0x6c120820, 0x1d793: 0x6cd01e20, - 0x1d794: 0x6cbb2620, 0x1d795: 0x6c885a20, 0x1d796: 0x6c781c20, 0x1d797: 0x6d25ae20, - 0x1d798: 0x6c26c020, 0x1d799: 0x6ce42220, 0x1d79a: 0x6ce0d420, 0x1d79b: 0x6d08e820, - 0x1d79c: 0x6c0a5c20, 0x1d79d: 0x6d2d9a20, 0x1d79e: 0x6cdce020, 0x1d79f: 0x6cfad820, - 0x1d7a0: 0x6c38c420, 0x1d7a1: 0x6c2f8220, 0x1d7a2: 0x6d021c20, 0x1d7a3: 0x6c47d220, - 0x1d7a4: 0x6d021e20, 0x1d7a5: 0x6cd56e20, 0x1d7a6: 0x6c66d420, 0x1d7a7: 0x6c4fb020, - 0x1d7a8: 0x6c52ca20, 0x1d7a9: 0x6cc99820, 0x1d7aa: 0x6d02f220, 0x1d7ab: 0x6d09aa20, - 0x1d7ac: 0x6d122420, 0x1d7ad: 0x6c046a20, 0x1d7ae: 0x6cda2c20, 0x1d7af: 0x6cd57020, - 0x1d7b0: 0x6d09b420, 0x1d7b1: 0x6c336a20, 0x1d7b2: 0x6cb21a20, 0x1d7b3: 0x6cf01820, - 0x1d7b4: 0x6ca92820, 0x1d7b5: 0x6c1df020, 0x1d7b6: 0x6c970420, 0x1d7b7: 0x6cc7d420, - 0x1d7b8: 0x6cb18620, 0x1d7b9: 0x6cdf4c20, 0x1d7ba: 0x6c62a020, 0x1d7bb: 0x6d2a5a20, - 0x1d7bc: 0x6c18f020, 0x1d7bd: 0x6d319a20, 0x1d7be: 0x6c37a820, 0x1d7bf: 0x6ca65420, - // Block 0x75f, offset 0x1d7c0 - 0x1d7c0: 0x6d1ca820, 0x1d7c1: 0x6c432620, 0x1d7c2: 0x6c23b820, 0x1d7c3: 0x6cff2420, - 0x1d7c4: 0x6cb66020, 0x1d7c5: 0x6c382820, 0x1d7c6: 0x6c65e420, 0x1d7c7: 0x6d073e20, - 0x1d7c8: 0x6c7ca620, 0x1d7c9: 0x6c60c620, 0x1d7ca: 0x6c0b5820, 0x1d7cb: 0x6c2e4620, - 0x1d7cc: 0x6c9d9420, 0x1d7cd: 0x6c7fc420, 0x1d7ce: 0x6c6d6420, 0x1d7cf: 0x6c124e20, - 0x1d7d0: 0x6c9ea020, 0x1d7d1: 0x6cbf6e20, 0x1d7d2: 0x6cbcec20, 0x1d7d3: 0x6cfc3420, - 0x1d7d4: 0x6c8a5420, 0x1d7d5: 0x6cab9820, 0x1d7d6: 0x6cfbb620, 0x1d7d7: 0x6cdb4020, - 0x1d7d8: 0x6c936a20, 0x1d7d9: 0x6d18f020, 0x1d7da: 0x6d075220, 0x1d7db: 0x6d014c20, - 0x1d7dc: 0x6c847220, 0x1d7dd: 0x6d18f220, 0x1d7de: 0x6c7e6620, 0x1d7df: 0x6c82f020, - 0x1d7e0: 0x6c69ca20, 0x1d7e1: 0x6c2b9a20, 0x1d7e2: 0x6d355a20, 0x1d7e3: 0x6c06bc20, - 0x1d7e4: 0x6ce2c220, 0x1d7e5: 0x6d123620, 0x1d7e6: 0x6ca17c20, 0x1d7e7: 0x6c595e20, - 0x1d7e8: 0x6c0c3e20, 0x1d7e9: 0x6c386820, 0x1d7ea: 0x6cda3220, 0x1d7eb: 0x6ce02e20, - 0x1d7ec: 0x6ce99a20, 0x1d7ed: 0x6cbf8020, 0x1d7ee: 0x6cbc0820, 0x1d7ef: 0x6cf0f620, - 0x1d7f0: 0x6c8ebc20, 0x1d7f1: 0x6c5c5c20, 0x1d7f2: 0x6cabac20, 0x1d7f3: 0x6c432c20, - 0x1d7f4: 0x6d286220, 0x1d7f5: 0x6c068a20, 0x1d7f6: 0x6c870a20, 0x1d7f7: 0x6cd57e20, - 0x1d7f8: 0x6c1ebe20, 0x1d7f9: 0x6c007e20, 0x1d7fa: 0x6c8c7a20, 0x1d7fb: 0x6d2a6020, - 0x1d7fc: 0x6d07e620, 0x1d7fd: 0x6cbe2820, 0x1d7fe: 0x6c7f7220, 0x1d7ff: 0x6c5e3220, - // Block 0x760, offset 0x1d800 - 0x1d800: 0x6cebb620, 0x1d801: 0x6cf54420, 0x1d802: 0x6cc8b820, 0x1d803: 0x6cc8ba20, - 0x1d804: 0x6cb68420, 0x1d805: 0x6c528020, 0x1d806: 0x6c917820, 0x1d807: 0x6cda6420, - 0x1d808: 0x6ce9d020, 0x1d809: 0x6c9b8a20, 0x1d80a: 0x6d287020, 0x1d80b: 0x6cb2dc20, - 0x1d80c: 0x6d22b020, 0x1d80d: 0x6d09c220, 0x1d80e: 0x6c62be20, 0x1d80f: 0x6c6eec20, - 0x1d810: 0x6d07e820, 0x1d811: 0x6ca09020, 0x1d812: 0x6cc0c220, 0x1d813: 0x6cda6620, - 0x1d814: 0x6c6eee20, 0x1d815: 0x6c3d0420, 0x1d816: 0x6ca8a620, 0x1d817: 0x6c0ffe20, - 0x1d818: 0x6cc4ea20, 0x1d819: 0x6d193020, 0x1d81a: 0x6cfc4a20, 0x1d81b: 0x6d21e420, - 0x1d81c: 0x6c718820, 0x1d81d: 0x6c892e20, 0x1d81e: 0x6c88dc20, 0x1d81f: 0x6d1b1e20, - 0x1d820: 0x6cbb2e20, 0x1d821: 0x6d1c2420, 0x1d822: 0x6c8fcc20, 0x1d823: 0x6ce82220, - 0x1d824: 0x6cf05420, 0x1d825: 0x6d270c20, 0x1d826: 0x6c8d9420, 0x1d827: 0x6cc1f020, - 0x1d828: 0x6d117020, 0x1d829: 0x6c38e620, 0x1d82a: 0x6c9a3c20, 0x1d82b: 0x6c4f3020, - 0x1d82c: 0x6c7c5620, 0x1d82d: 0x6c7ff020, 0x1d82e: 0x6c62d220, 0x1d82f: 0x6c29a220, - 0x1d830: 0x6c981820, 0x1d831: 0x6c836220, 0x1d832: 0x6c828820, 0x1d833: 0x6c5b0a20, - 0x1d834: 0x6c3c8220, 0x1d835: 0x6d342820, 0x1d836: 0x6cf10e20, 0x1d837: 0x6c7cb620, - 0x1d838: 0x6d2ea220, 0x1d839: 0x6c580620, 0x1d83a: 0x6c84ac20, 0x1d83b: 0x6c62e220, - 0x1d83c: 0x6c9cb620, 0x1d83d: 0x6c830a20, 0x1d83e: 0x6c582220, 0x1d83f: 0x6c957a20, - // Block 0x761, offset 0x1d840 - 0x1d840: 0x6c5fa020, 0x1d841: 0x6c7cbe20, 0x1d842: 0x6c934020, 0x1d843: 0x6c655020, - 0x1d844: 0x6cc9ba20, 0x1d845: 0x6ce2e620, 0x1d846: 0x6c829e20, 0x1d847: 0x6cc36820, - 0x1d848: 0x6cff6020, 0x1d849: 0x6d197420, 0x1d84a: 0x6c947220, 0x1d84b: 0x6c9ae620, - 0x1d84c: 0x6c0cd420, 0x1d84d: 0x6c549420, 0x1d84e: 0x6c561220, 0x1d84f: 0x6c91b820, - 0x1d850: 0x6caaa220, 0x1d851: 0x6c93d420, 0x1d852: 0x6cd7da20, 0x1d853: 0x6cfeaa20, - 0x1d854: 0x6cb98220, 0x1d855: 0x6c1f3620, 0x1d856: 0x6c54c620, 0x1d857: 0x6d058a20, - 0x1d858: 0x6c25d820, 0x1d859: 0x6c3e6e20, 0x1d85a: 0x6d058c20, 0x1d85b: 0x6d05a820, - 0x1d85c: 0x6c91c420, 0x1d85d: 0x6c562420, 0x1d85e: 0x6d216620, 0x1d85f: 0x6c504a20, - 0x1d860: 0x6c686020, 0x1d861: 0x6c725820, 0x1d862: 0x6c4c8620, 0x1d863: 0x6c066820, - 0x1d864: 0x6d0cd220, 0x1d865: 0x6d2e8220, 0x1d866: 0x6d2e8420, 0x1d867: 0x6c7c4820, - 0x1d868: 0x6c0d5620, 0x1d869: 0x6cf90620, 0x1d86a: 0x6cd63220, 0x1d86b: 0x6c1d0820, - 0x1d86c: 0x6cc00220, 0x1d86d: 0x6c2db220, 0x1d86e: 0x6c612620, 0x1d86f: 0x6cc00c20, - 0x1d870: 0x6c2f5820, 0x1d871: 0x6cd19a20, 0x1d872: 0x6cf95020, 0x1d873: 0x6c740820, - 0x1d874: 0x6d302a20, 0x1d875: 0x6ccf0a20, 0x1d876: 0x6d208020, 0x1d877: 0x6c4dea20, - 0x1d878: 0x6d3efe20, 0x1d879: 0x6c532220, 0x1d87a: 0x6c5a9a20, 0x1d87b: 0x6c9b0c20, - 0x1d87c: 0x6c447e20, 0x1d87d: 0x6cdbb020, 0x1d87e: 0x6cf95a20, 0x1d87f: 0x6c149420, - // Block 0x762, offset 0x1d880 - 0x1d880: 0x6cd25620, 0x1d881: 0x6d15d620, 0x1d882: 0x6c969620, 0x1d883: 0x6cfe2020, - 0x1d884: 0x6c399420, 0x1d885: 0x6c360220, 0x1d886: 0x6c034020, 0x1d887: 0x6c1b9620, - 0x1d888: 0x6cb8ca20, 0x1d889: 0x6cf18e20, 0x1d88a: 0x6cf19020, 0x1d88b: 0x6cc8c620, - 0x1d88c: 0x6c056620, 0x1d88d: 0x6cafd220, 0x1d88e: 0x6d269a20, 0x1d88f: 0x6d269c20, - 0x1d890: 0x6c756a20, 0x1d891: 0x6cb5ae20, 0x1d892: 0x6ce73c20, 0x1d893: 0x6d1ad620, - 0x1d894: 0x6cb5b020, 0x1d895: 0x6c119020, 0x1d896: 0x6d255420, 0x1d897: 0x6c741a20, - 0x1d898: 0x6c5b3020, 0x1d899: 0x6cbd6c20, 0x1d89a: 0x6cb5b220, 0x1d89b: 0x6d382220, - 0x1d89c: 0x6d0b2220, 0x1d89d: 0x6c4fc220, 0x1d89e: 0x6ca27e20, 0x1d89f: 0x6cede420, - 0x1d8a0: 0x6c3b6820, 0x1d8a1: 0x6c3b6a20, 0x1d8a2: 0x6c4f6e20, 0x1d8a3: 0x6c462e20, - 0x1d8a4: 0x6d2a4620, 0x1d8a5: 0x6c3fd420, 0x1d8a6: 0x6cc47020, 0x1d8a7: 0x6c6bda20, - 0x1d8a8: 0x6c3e4220, 0x1d8a9: 0x6c1aa420, 0x1d8aa: 0x6c30ea20, 0x1d8ab: 0x6c064820, - 0x1d8ac: 0x6cfc0620, 0x1d8ad: 0x6ca5de20, 0x1d8ae: 0x6ce27820, 0x1d8af: 0x6cbfac20, - 0x1d8b0: 0x6d1f2c20, 0x1d8b1: 0x6d2cc220, 0x1d8b2: 0x6cb2a220, 0x1d8b3: 0x6c1b1e20, - 0x1d8b4: 0x6d204220, 0x1d8b5: 0x6c511e20, 0x1d8b6: 0x6c4da020, 0x1d8b7: 0x6c723420, - 0x1d8b8: 0x6c85fe20, 0x1d8b9: 0x6c3fe620, 0x1d8ba: 0x6cc47620, 0x1d8bb: 0x6d2c2a20, - 0x1d8bc: 0x6c468220, 0x1d8bd: 0x6cafe220, 0x1d8be: 0x6cafe420, 0x1d8bf: 0x6cfb5220, - // Block 0x763, offset 0x1d8c0 - 0x1d8c0: 0x6d3af020, 0x1d8c1: 0x6c2dc820, 0x1d8c2: 0x6c0ce820, 0x1d8c3: 0x6c0de220, - 0x1d8c4: 0x6c470e20, 0x1d8c5: 0x6d2d7020, 0x1d8c6: 0x6cc10620, 0x1d8c7: 0x6ccf1220, - 0x1d8c8: 0x6ce5fa20, 0x1d8c9: 0x6c8d0020, 0x1d8ca: 0x6c478420, 0x1d8cb: 0x6c288420, - 0x1d8cc: 0x6c478620, 0x1d8cd: 0x6d1c6a20, 0x1d8ce: 0x6c860020, 0x1d8cf: 0x6c196a20, - 0x1d8d0: 0x6cc11220, 0x1d8d1: 0x6ca1d620, 0x1d8d2: 0x6c43f620, 0x1d8d3: 0x6c22ca20, - 0x1d8d4: 0x6c5b3820, 0x1d8d5: 0x6c5b3a20, 0x1d8d6: 0x6c986a20, 0x1d8d7: 0x6c3ffc20, - 0x1d8d8: 0x6d0fbc20, 0x1d8d9: 0x6cebde20, 0x1d8da: 0x6c8b0e20, 0x1d8db: 0x6d39ac20, - 0x1d8dc: 0x6d13f820, 0x1d8dd: 0x6cfb6220, 0x1d8de: 0x6c7e0020, 0x1d8df: 0x6c684e20, - 0x1d8e0: 0x6c861a20, 0x1d8e1: 0x6d17be20, 0x1d8e2: 0x6cb2b020, 0x1d8e3: 0x6cb4fc20, - 0x1d8e4: 0x6c4cfe20, 0x1d8e5: 0x6ccf1a20, 0x1d8e6: 0x6d14fc20, 0x1d8e7: 0x6cee2420, - 0x1d8e8: 0x6ca11c20, 0x1d8e9: 0x6cbf3220, 0x1d8ea: 0x6cbcc420, 0x1d8eb: 0x6c4b0420, - 0x1d8ec: 0x6cbf3420, 0x1d8ed: 0x6d364020, 0x1d8ee: 0x6c976420, 0x1d8ef: 0x6c81f820, - 0x1d8f0: 0x6d305c20, 0x1d8f1: 0x6c63c220, 0x1d8f2: 0x6ca4ae20, 0x1d8f3: 0x6cd7ee20, - 0x1d8f4: 0x6cb5f020, 0x1d8f5: 0x6d038420, 0x1d8f6: 0x6c6bee20, 0x1d8f7: 0x6cc07c20, - 0x1d8f8: 0x6cce7a20, 0x1d8f9: 0x6d1e4c20, 0x1d8fa: 0x6c63ce20, 0x1d8fb: 0x6cea0220, - 0x1d8fc: 0x6c17de20, 0x1d8fd: 0x6c044e20, 0x1d8fe: 0x6c357620, 0x1d8ff: 0x6c4ed420, - // Block 0x764, offset 0x1d900 - 0x1d900: 0x6cd56420, 0x1d901: 0x6d081620, 0x1d902: 0x6c3c5820, 0x1d903: 0x6cd0b820, - 0x1d904: 0x6cd0ba20, 0x1d905: 0x6c3f7020, 0x1d906: 0x6cfce020, 0x1d907: 0x6d2ffe20, - 0x1d908: 0x6cf3da20, 0x1d909: 0x6c3ea820, 0x1d90a: 0x6c83f820, 0x1d90b: 0x6c80d420, - 0x1d90c: 0x6c09de20, 0x1d90d: 0x6c1e9220, 0x1d90e: 0x6d24fc20, 0x1d90f: 0x6d1fd820, - 0x1d910: 0x6c6af820, 0x1d911: 0x6c288e20, 0x1d912: 0x6d0ca220, 0x1d913: 0x6ce67a20, - 0x1d914: 0x6c2d6820, 0x1d915: 0x6cea0420, 0x1d916: 0x6c5b3c20, 0x1d917: 0x6cf29820, - 0x1d918: 0x6d340420, 0x1d919: 0x6cd92c20, 0x1d91a: 0x6c3a1420, 0x1d91b: 0x6c70b620, - 0x1d91c: 0x6c9d7020, 0x1d91d: 0x6cb62c20, 0x1d91e: 0x6cb62e20, 0x1d91f: 0x6d23a820, - 0x1d920: 0x6c75da20, 0x1d921: 0x6c7e8a20, 0x1d922: 0x6c9be220, 0x1d923: 0x6cbac420, - 0x1d924: 0x6cd80820, 0x1d925: 0x6cf68020, 0x1d926: 0x6c950820, 0x1d927: 0x6c865420, - 0x1d928: 0x6c2ed620, 0x1d929: 0x6ce59a20, 0x1d92a: 0x6ce23220, 0x1d92b: 0x6c7d7a20, - 0x1d92c: 0x6c4e2620, 0x1d92d: 0x6c4eec20, 0x1d92e: 0x6d23aa20, 0x1d92f: 0x6c058420, - 0x1d930: 0x6c3a4020, 0x1d931: 0x6cb00c20, 0x1d932: 0x6ceea820, 0x1d933: 0x6c339e20, - 0x1d934: 0x6d183820, 0x1d935: 0x6d250c20, 0x1d936: 0x6cddd020, 0x1d937: 0x6cc30c20, - 0x1d938: 0x6cba1a20, 0x1d939: 0x6cc8d820, 0x1d93a: 0x6ca5fc20, 0x1d93b: 0x6cbe5220, - 0x1d93c: 0x6cf0b420, 0x1d93d: 0x6c899e20, 0x1d93e: 0x6c4cc820, 0x1d93f: 0x6cec9620, - // Block 0x765, offset 0x1d940 - 0x1d940: 0x6c301020, 0x1d941: 0x6c367220, 0x1d942: 0x6c04d020, 0x1d943: 0x6c2c8620, - 0x1d944: 0x6cee3420, 0x1d945: 0x6c11a020, 0x1d946: 0x6d102820, 0x1d947: 0x6d1d6820, - 0x1d948: 0x6c4c3220, 0x1d949: 0x6c150e20, 0x1d94a: 0x6c2fb420, 0x1d94b: 0x6c7e8c20, - 0x1d94c: 0x6c782c20, 0x1d94d: 0x6c6afa20, 0x1d94e: 0x6d005020, 0x1d94f: 0x6ce68e20, - 0x1d950: 0x6c99b220, 0x1d951: 0x6d05de20, 0x1d952: 0x6c9dd020, 0x1d953: 0x6d219020, - 0x1d954: 0x6c6a3220, 0x1d955: 0x6cd28020, 0x1d956: 0x6d07c820, 0x1d957: 0x6c59f620, - 0x1d958: 0x6d0dce20, 0x1d959: 0x6c0b0420, 0x1d95a: 0x6cc75e20, 0x1d95b: 0x6ceeb220, - 0x1d95c: 0x6c403e20, 0x1d95d: 0x6d25a020, 0x1d95e: 0x6c9aaa20, 0x1d95f: 0x6cf14620, - 0x1d960: 0x6c3ee220, 0x1d961: 0x6cc7c220, 0x1d962: 0x6d00e220, 0x1d963: 0x6d1f6a20, - 0x1d964: 0x6cc09020, 0x1d965: 0x6c990020, 0x1d966: 0x6cf97820, 0x1d967: 0x6d1be020, - 0x1d968: 0x6cd1f020, 0x1d969: 0x6c1d2020, 0x1d96a: 0x6ce0ce20, 0x1d96b: 0x6d39be20, - 0x1d96c: 0x6d3fba20, 0x1d96d: 0x6ce36c20, 0x1d96e: 0x6c404020, 0x1d96f: 0x6d25a220, - 0x1d970: 0x6c7c9820, 0x1d971: 0x6c9b3e20, 0x1d972: 0x6c7e9620, 0x1d973: 0x6c31b220, - 0x1d974: 0x6c559620, 0x1d975: 0x6cbfc220, 0x1d976: 0x6c2ee020, 0x1d977: 0x6c866420, - 0x1d978: 0x6cf29c20, 0x1d979: 0x6d276220, 0x1d97a: 0x6cc24e20, 0x1d97b: 0x6ca43a20, - 0x1d97c: 0x6c90b620, 0x1d97d: 0x6c211220, 0x1d97e: 0x6cc6a820, 0x1d97f: 0x6d1c9220, - // Block 0x766, offset 0x1d980 - 0x1d980: 0x6c677620, 0x1d981: 0x6c051420, 0x1d982: 0x6c80d820, 0x1d983: 0x6cad0e20, - 0x1d984: 0x6cd82c20, 0x1d985: 0x6cf6da20, 0x1d986: 0x6c22de20, 0x1d987: 0x6cf6dc20, - 0x1d988: 0x6d25b020, 0x1d989: 0x6cf23c20, 0x1d98a: 0x6c885c20, 0x1d98b: 0x6cd9dc20, - 0x1d98c: 0x6c04a020, 0x1d98d: 0x6cc6b220, 0x1d98e: 0x6cc6b420, 0x1d98f: 0x6c60b220, - 0x1d990: 0x6cf38220, 0x1d991: 0x6d055020, 0x1d992: 0x6c4f0e20, 0x1d993: 0x6cbdac20, - 0x1d994: 0x6d156020, 0x1d995: 0x6c089020, 0x1d996: 0x6c575420, 0x1d997: 0x6ce13c20, - 0x1d998: 0x6d161420, 0x1d999: 0x6c327c20, 0x1d99a: 0x6ca3d620, 0x1d99b: 0x6c517820, - 0x1d99c: 0x6c55c020, 0x1d99d: 0x6c4a8a20, 0x1d99e: 0x6c96a420, 0x1d99f: 0x6ca01a20, - 0x1d9a0: 0x6d18b620, 0x1d9a1: 0x6cf1b020, 0x1d9a2: 0x6d1ca020, 0x1d9a3: 0x6ce28420, - 0x1d9a4: 0x6d37ca20, 0x1d9a5: 0x6c123c20, 0x1d9a6: 0x6ccb1020, 0x1d9a7: 0x6cb81a20, - 0x1d9a8: 0x6c97c820, 0x1d9a9: 0x6ce5e620, 0x1d9aa: 0x6cce2020, 0x1d9ab: 0x6cd3e620, - 0x1d9ac: 0x6c129e20, 0x1d9ad: 0x6c1ad620, 0x1d9ae: 0x6c2ca620, 0x1d9af: 0x6c027620, - 0x1d9b0: 0x6c92fa20, 0x1d9b1: 0x6cf0e820, 0x1d9b2: 0x6d371220, 0x1d9b3: 0x6ce14220, - 0x1d9b4: 0x6c18ea20, 0x1d9b5: 0x6cb16a20, 0x1d9b6: 0x6cc1c420, 0x1d9b7: 0x6cb02420, - 0x1d9b8: 0x6d21be20, 0x1d9b9: 0x6c66e420, 0x1d9ba: 0x6c955820, 0x1d9bb: 0x6c90c220, - 0x1d9bc: 0x6cbdea20, 0x1d9bd: 0x6d37ce20, 0x1d9be: 0x6d1b1420, 0x1d9bf: 0x6c678820, - // Block 0x767, offset 0x1d9c0 - 0x1d9c0: 0x6cd67620, 0x1d9c1: 0x6cf1b820, 0x1d9c2: 0x6cff2620, 0x1d9c3: 0x6ceda020, - 0x1d9c4: 0x6d30a220, 0x1d9c5: 0x6d310820, 0x1d9c6: 0x6c96f820, 0x1d9c7: 0x6c967a20, - 0x1d9c8: 0x6c4c4820, 0x1d9c9: 0x6c8eaa20, 0x1d9ca: 0x6c990a20, 0x1d9cb: 0x6cf6f220, - 0x1d9cc: 0x6c236a20, 0x1d9cd: 0x6c846220, 0x1d9ce: 0x6c97d020, 0x1d9cf: 0x6cff2820, - 0x1d9d0: 0x6c173020, 0x1d9d1: 0x6d2ee220, 0x1d9d2: 0x6c98a020, 0x1d9d3: 0x6cfe5e20, - 0x1d9d4: 0x6ca17e20, 0x1d9d5: 0x6d418220, 0x1d9d6: 0x6cd83c20, 0x1d9d7: 0x6cbfd420, - 0x1d9d8: 0x6ce28820, 0x1d9d9: 0x6d34ac20, 0x1d9da: 0x6caed820, 0x1d9db: 0x6caeda20, - 0x1d9dc: 0x6c695620, 0x1d9dd: 0x6cc1dc20, 0x1d9de: 0x6c0cc220, 0x1d9df: 0x6c8a3c20, - 0x1d9e0: 0x6cac8220, 0x1d9e1: 0x6c4b2220, 0x1d9e2: 0x6cf81c20, 0x1d9e3: 0x6c615a20, - 0x1d9e4: 0x6d3b9620, 0x1d9e5: 0x6c5a0e20, 0x1d9e6: 0x6c3a4220, 0x1d9e7: 0x6c818420, - 0x1d9e8: 0x6c74de20, 0x1d9e9: 0x6c74e020, 0x1d9ea: 0x6c5c7220, 0x1d9eb: 0x6d1aa220, - 0x1d9ec: 0x6c153a20, 0x1d9ed: 0x6c689c20, 0x1d9ee: 0x6ccdcc20, 0x1d9ef: 0x6ca4ca20, - 0x1d9f0: 0x6cff3e20, 0x1d9f1: 0x6cf40020, 0x1d9f2: 0x6c1d2620, 0x1d9f3: 0x6d0a5020, - 0x1d9f4: 0x6cd83e20, 0x1d9f5: 0x6c1f9c20, 0x1d9f6: 0x6c19a020, 0x1d9f7: 0x6c291e20, - 0x1d9f8: 0x6c854420, 0x1d9f9: 0x6d026620, 0x1d9fa: 0x6ccdd420, 0x1d9fb: 0x6d162420, - 0x1d9fc: 0x6c6e3a20, 0x1d9fd: 0x6c26c820, 0x1d9fe: 0x6c154420, 0x1d9ff: 0x6cb80020, - // Block 0x768, offset 0x1da00 - 0x1da00: 0x6c221820, 0x1da01: 0x6cfe0220, 0x1da02: 0x6ccf7e20, 0x1da03: 0x6c95c820, - 0x1da04: 0x6cbdb620, 0x1da05: 0x6d1d6e20, 0x1da06: 0x6c14a220, 0x1da07: 0x6c86da20, - 0x1da08: 0x6d2b6a20, 0x1da09: 0x6d07ea20, 0x1da0a: 0x6c888820, 0x1da0b: 0x6d3a3220, - 0x1da0c: 0x6d2b1e20, 0x1da0d: 0x6d005a20, 0x1da0e: 0x6c98a420, 0x1da0f: 0x6d026820, - 0x1da10: 0x6cb69a20, 0x1da11: 0x6cc6e220, 0x1da12: 0x6c661a20, 0x1da13: 0x6c9bf220, - 0x1da14: 0x6c500220, 0x1da15: 0x6cc7e420, 0x1da16: 0x6c5e3420, 0x1da17: 0x6d3dda20, - 0x1da18: 0x6c6b7820, 0x1da19: 0x6cb22420, 0x1da1a: 0x6c50aa20, 0x1da1b: 0x6c9f0e20, - 0x1da1c: 0x6c38ee20, 0x1da1d: 0x6c828a20, 0x1da1e: 0x6c6b7220, 0x1da1f: 0x6c7ec420, - 0x1da20: 0x6c9fda20, 0x1da21: 0x6c84ae20, 0x1da22: 0x6c219020, 0x1da23: 0x6c873220, - 0x1da24: 0x6cbfe620, 0x1da25: 0x6ca8bc20, 0x1da26: 0x6c919c20, 0x1da27: 0x6c328c20, - 0x1da28: 0x6cff5620, 0x1da29: 0x6d39ee20, 0x1da2a: 0x6c8ffc20, 0x1da2b: 0x6c875620, - 0x1da2c: 0x6c8ffe20, 0x1da2d: 0x6c3c8620, 0x1da2e: 0x6d127220, 0x1da2f: 0x6c086620, - 0x1da30: 0x6ca46020, 0x1da31: 0x6c47f220, 0x1da32: 0x6c730e20, 0x1da33: 0x6d1c4220, - 0x1da34: 0x6cd63820, 0x1da35: 0x6cf75820, 0x1da36: 0x6c11c820, 0x1da37: 0x6cc22420, - 0x1da38: 0x6cc33c20, 0x1da39: 0x6c329020, 0x1da3a: 0x6c11ca20, 0x1da3b: 0x6c97ae20, - 0x1da3c: 0x6cc22e20, 0x1da3d: 0x6c6b8e20, 0x1da3e: 0x6d3a4e20, 0x1da3f: 0x6d3d1820, - // Block 0x769, offset 0x1da40 - 0x1da40: 0x6d093820, 0x1da41: 0x6c598620, 0x1da42: 0x6ca9a420, 0x1da43: 0x6cadba20, - 0x1da44: 0x6caa8420, 0x1da45: 0x6d033020, 0x1da46: 0x6d383220, 0x1da47: 0x6c973420, - 0x1da48: 0x6c37ce20, 0x1da49: 0x6c761220, 0x1da4a: 0x6c9f1020, 0x1da4b: 0x6cf93c20, - 0x1da4c: 0x6d03ba20, 0x1da4d: 0x6d0d5c20, 0x1da4e: 0x6c770620, 0x1da4f: 0x6d260e20, - 0x1da50: 0x6cc28820, 0x1da51: 0x6c8d0220, 0x1da52: 0x6d089020, 0x1da53: 0x6cd5ca20, - 0x1da54: 0x6cfb5420, 0x1da55: 0x6ce7cc20, 0x1da56: 0x6cfe3820, 0x1da57: 0x6c6a1e20, - 0x1da58: 0x6cfb7020, 0x1da59: 0x6d0b3220, 0x1da5a: 0x6c559a20, 0x1da5b: 0x6cf0ca20, - 0x1da5c: 0x6c2a2c20, 0x1da5d: 0x6c1cdc20, 0x1da5e: 0x6cf0d420, 0x1da5f: 0x6c2a3620, - 0x1da60: 0x6d3cd820, 0x1da61: 0x6c527020, 0x1da62: 0x6cc22620, 0x1da63: 0x6d13be20, - 0x1da64: 0x6d198c20, 0x1da65: 0x6c103220, 0x1da66: 0x6c41ce20, 0x1da67: 0x6d20cc20, - 0x1da68: 0x6c0c7020, 0x1da69: 0x6c141820, 0x1da6a: 0x6d147a20, 0x1da6b: 0x6cccc820, - 0x1da6c: 0x6c191e20, 0x1da6d: 0x6c3d5620, 0x1da6e: 0x6c4bbc20, 0x1da6f: 0x6c3b1e20, - 0x1da70: 0x6cd65220, 0x1da71: 0x6c6a8820, 0x1da72: 0x6ca32020, 0x1da73: 0x6d37aa20, - 0x1da74: 0x6c282e20, 0x1da75: 0x6d170c20, 0x1da76: 0x6d381e20, 0x1da77: 0x6d37b220, - 0x1da78: 0x6c6bd220, 0x1da79: 0x6d350820, 0x1da7a: 0x6d009820, 0x1da7b: 0x6cc46820, - 0x1da7c: 0x6d33ba20, 0x1da7d: 0x6cc5da20, 0x1da7e: 0x6cbd2620, 0x1da7f: 0x6c6c3820, - // Block 0x76a, offset 0x1da80 - 0x1da80: 0x6c756220, 0x1da81: 0x6d255820, 0x1da82: 0x6c9a8620, 0x1da83: 0x6c149620, - 0x1da84: 0x6c02a220, 0x1da85: 0x6ca79820, 0x1da86: 0x6c5a9e20, 0x1da87: 0x6cc46a20, - 0x1da88: 0x6c635620, 0x1da89: 0x6ceb1020, 0x1da8a: 0x6c8e0e20, 0x1da8b: 0x6c276620, - 0x1da8c: 0x6c064a20, 0x1da8d: 0x6cad5620, 0x1da8e: 0x6d120020, 0x1da8f: 0x6d429420, - 0x1da90: 0x6c097020, 0x1da91: 0x6cced220, 0x1da92: 0x6ce05820, 0x1da93: 0x6c723620, - 0x1da94: 0x6c51c220, 0x1da95: 0x6d090220, 0x1da96: 0x6d053820, 0x1da97: 0x6d31d220, - 0x1da98: 0x6d14da20, 0x1da99: 0x6cabea20, 0x1da9a: 0x6c0e6420, 0x1da9b: 0x6c2b2220, - 0x1da9c: 0x6cec2a20, 0x1da9d: 0x6c3fd620, 0x1da9e: 0x6c4bc420, 0x1da9f: 0x6d35ca20, - 0x1daa0: 0x6d360a20, 0x1daa1: 0x6cc47220, 0x1daa2: 0x6cacb420, 0x1daa3: 0x6d174620, - 0x1daa4: 0x6c997420, 0x1daa5: 0x6ceaba20, 0x1daa6: 0x6ca32e20, 0x1daa7: 0x6c464420, - 0x1daa8: 0x6d088220, 0x1daa9: 0x6d304220, 0x1daaa: 0x6cc0f420, 0x1daab: 0x6c070420, - 0x1daac: 0x6c4bc620, 0x1daad: 0x6cf77c20, 0x1daae: 0x6ca6ea20, 0x1daaf: 0x6c0ee020, - 0x1dab0: 0x6c0e7220, 0x1dab1: 0x6c40ac20, 0x1dab2: 0x6c1bac20, 0x1dab3: 0x6c1ba220, - 0x1dab4: 0x6c7a9420, 0x1dab5: 0x6cc5ea20, 0x1dab6: 0x6c67e220, 0x1dab7: 0x6c63ba20, - 0x1dab8: 0x6c667e20, 0x1dab9: 0x6c0efa20, 0x1daba: 0x6c6aba20, 0x1dabb: 0x6c375420, - 0x1dabc: 0x6c438620, 0x1dabd: 0x6cc7a620, 0x1dabe: 0x6d39a020, 0x1dabf: 0x6c4a6020, - // Block 0x76b, offset 0x1dac0 - 0x1dac0: 0x6d19d020, 0x1dac1: 0x6c111020, 0x1dac2: 0x6c8b1020, 0x1dac3: 0x6c762220, - 0x1dac4: 0x6d044420, 0x1dac5: 0x6d3c1c20, 0x1dac6: 0x6c28fc20, 0x1dac7: 0x6d05aa20, - 0x1dac8: 0x6c7d5e20, 0x1dac9: 0x6c791a20, 0x1daca: 0x6ca79e20, 0x1dacb: 0x6cd5dc20, - 0x1dacc: 0x6c63c420, 0x1dacd: 0x6c7db020, 0x1dace: 0x6c1a1220, 0x1dacf: 0x6c852220, - 0x1dad0: 0x6c72f620, 0x1dad1: 0x6ccff420, 0x1dad2: 0x6cb3da20, 0x1dad3: 0x6c43fa20, - 0x1dad4: 0x6d180820, 0x1dad5: 0x6d235620, 0x1dad6: 0x6d31da20, 0x1dad7: 0x6c8e6020, - 0x1dad8: 0x6cc07e20, 0x1dad9: 0x6cc44820, 0x1dada: 0x6c622620, 0x1dadb: 0x6d180a20, - 0x1dadc: 0x6c103e20, 0x1dadd: 0x6d3c1e20, 0x1dade: 0x6cd72420, 0x1dadf: 0x6ccc0420, - 0x1dae0: 0x6cc44e20, 0x1dae1: 0x6c87e220, 0x1dae2: 0x6c880620, 0x1dae3: 0x6c88c020, - 0x1dae4: 0x6c7a9e20, 0x1dae5: 0x6c659e20, 0x1dae6: 0x6c3d1820, 0x1dae7: 0x6c14d020, - 0x1dae8: 0x6c09e020, 0x1dae9: 0x6c7d7020, 0x1daea: 0x6ce22e20, 0x1daeb: 0x6d262a20, - 0x1daec: 0x6c8d2220, 0x1daed: 0x6c1bb420, 0x1daee: 0x6c167420, 0x1daef: 0x6c1dc420, - 0x1daf0: 0x6c343220, 0x1daf1: 0x6c0c7420, 0x1daf2: 0x6c899620, 0x1daf3: 0x6cce5c20, - 0x1daf4: 0x6cade020, 0x1daf5: 0x6cade220, 0x1daf6: 0x6c3a0e20, 0x1daf7: 0x6d24fe20, - 0x1daf8: 0x6c95b820, 0x1daf9: 0x6c4cca20, 0x1dafa: 0x6d0daa20, 0x1dafb: 0x6c31aa20, - 0x1dafc: 0x6ce40420, 0x1dafd: 0x6d369a20, 0x1dafe: 0x6c70ae20, 0x1daff: 0x6d15fa20, - // Block 0x76c, offset 0x1db00 - 0x1db00: 0x6c622820, 0x1db01: 0x6d346c20, 0x1db02: 0x6c48ba20, 0x1db03: 0x6c791c20, - 0x1db04: 0x6cb81620, 0x1db05: 0x6ce40a20, 0x1db06: 0x6ce35820, 0x1db07: 0x6c402420, - 0x1db08: 0x6c1d1a20, 0x1db09: 0x6d01f020, 0x1db0a: 0x6c0b4820, 0x1db0b: 0x6c2ed820, - 0x1db0c: 0x6c7d7c20, 0x1db0d: 0x6c32a020, 0x1db0e: 0x6d054a20, 0x1db0f: 0x6d054c20, - 0x1db10: 0x6c51d620, 0x1db11: 0x6d262c20, 0x1db12: 0x6c05ba20, 0x1db13: 0x6c060620, - 0x1db14: 0x6c402620, 0x1db15: 0x6d217c20, 0x1db16: 0x6ce98c20, 0x1db17: 0x6d0dc420, - 0x1db18: 0x6c5adc20, 0x1db19: 0x6c074420, 0x1db1a: 0x6c1ee220, 0x1db1b: 0x6c93aa20, - 0x1db1c: 0x6cadaa20, 0x1db1d: 0x6c27ee20, 0x1db1e: 0x6d27f420, 0x1db1f: 0x6cddf820, - 0x1db20: 0x6c465c20, 0x1db21: 0x6c265c20, 0x1db22: 0x6c57ee20, 0x1db23: 0x6cc6aa20, - 0x1db24: 0x6d262e20, 0x1db25: 0x6cc82620, 0x1db26: 0x6ca3d420, 0x1db27: 0x6c6f3220, - 0x1db28: 0x6cdd8620, 0x1db29: 0x6c04a220, 0x1db2a: 0x6cea0a20, 0x1db2b: 0x6c1bbe20, - 0x1db2c: 0x6cca8a20, 0x1db2d: 0x6ca7ae20, 0x1db2e: 0x6d1bec20, 0x1db2f: 0x6c6bfa20, - 0x1db30: 0x6cb91e20, 0x1db31: 0x6c57f420, 0x1db32: 0x6c7aa820, 0x1db33: 0x6c884220, - 0x1db34: 0x6c7fae20, 0x1db35: 0x6c843420, 0x1db36: 0x6d30de20, 0x1db37: 0x6cd1fc20, - 0x1db38: 0x6c93b620, 0x1db39: 0x6d18b820, 0x1db3a: 0x6c2e5e20, 0x1db3b: 0x6d023220, - 0x1db3c: 0x6cfae020, 0x1db3d: 0x6cf0ea20, 0x1db3e: 0x6c0c7e20, 0x1db3f: 0x6c129620, - // Block 0x76d, offset 0x1db40 - 0x1db40: 0x6c5f4620, 0x1db41: 0x6cbb4c20, 0x1db42: 0x6ccbb020, 0x1db43: 0x6c05bc20, - 0x1db44: 0x6cfd8c20, 0x1db45: 0x6c0ae420, 0x1db46: 0x6c3f0c20, 0x1db47: 0x6c65e620, - 0x1db48: 0x6d3bea20, 0x1db49: 0x6c65e820, 0x1db4a: 0x6c257020, 0x1db4b: 0x6c60c820, - 0x1db4c: 0x6c280620, 0x1db4d: 0x6d28d020, 0x1db4e: 0x6c38cc20, 0x1db4f: 0x6c0f7e20, - 0x1db50: 0x6cfe5a20, 0x1db51: 0x6d030420, 0x1db52: 0x6c0cf820, 0x1db53: 0x6cc52e20, - 0x1db54: 0x6c97ca20, 0x1db55: 0x6c7fc620, 0x1db56: 0x6c02b220, 0x1db57: 0x6d2b1620, - 0x1db58: 0x6c4b8e20, 0x1db59: 0x6c12bc20, 0x1db5a: 0x6cdc9220, 0x1db5b: 0x6ca9d620, - 0x1db5c: 0x6c14dc20, 0x1db5d: 0x6c88d220, 0x1db5e: 0x6c0aac20, 0x1db5f: 0x6c6c6a20, - 0x1db60: 0x6c291620, 0x1db61: 0x6cd58220, 0x1db62: 0x6ce08020, 0x1db63: 0x6c0aae20, - 0x1db64: 0x6c7fd820, 0x1db65: 0x6cb46e20, 0x1db66: 0x6cc7e020, 0x1db67: 0x6d355e20, - 0x1db68: 0x6c32ec20, 0x1db69: 0x6cd58620, 0x1db6a: 0x6cec4220, 0x1db6b: 0x6cd40020, - 0x1db6c: 0x6c042c20, 0x1db6d: 0x6d012020, 0x1db6e: 0x6c0fbe20, 0x1db6f: 0x6c194220, - 0x1db70: 0x6c7f7c20, 0x1db71: 0x6c8fee20, 0x1db72: 0x6cf7c420, 0x1db73: 0x6cfb0c20, - 0x1db74: 0x6c800220, 0x1db75: 0x6d30e220, 0x1db76: 0x6c27aa20, 0x1db77: 0x6c72d820, - 0x1db78: 0x6d29c620, 0x1db79: 0x6cd21c20, 0x1db7a: 0x6c663820, 0x1db7b: 0x6cacc620, - 0x1db7c: 0x6d196820, 0x1db7d: 0x6c809c20, 0x1db7e: 0x6d0b7020, 0x1db7f: 0x6cf94020, - // Block 0x76e, offset 0x1db80 - 0x1db80: 0x6cf57420, 0x1db81: 0x6d11f820, 0x1db82: 0x6c3cc820, 0x1db83: 0x6cdfe620, - 0x1db84: 0x6c40b420, 0x1db85: 0x6c3d0620, 0x1db86: 0x6c407e20, 0x1db87: 0x6c03c820, - 0x1db88: 0x6c519620, 0x1db89: 0x6c5fa420, 0x1db8a: 0x6c5fb420, 0x1db8b: 0x6c665220, - 0x1db8c: 0x6c490820, 0x1db8d: 0x6c0b9020, 0x1db8e: 0x6d0e5620, 0x1db8f: 0x6c4a6220, - 0x1db90: 0x6c743020, 0x1db91: 0x6cb13a20, 0x1db92: 0x6c997620, 0x1db93: 0x6c9d4020, - 0x1db94: 0x6c9d4220, 0x1db95: 0x6c9ed620, 0x1db96: 0x6cd36c20, 0x1db97: 0x6cd8c420, - 0x1db98: 0x6c14cc20, 0x1db99: 0x6c954a20, 0x1db9a: 0x6c745a20, 0x1db9b: 0x6c9d6020, - 0x1db9c: 0x6ce5da20, 0x1db9d: 0x6c882620, 0x1db9e: 0x6d121820, 0x1db9f: 0x6d369c20, - 0x1dba0: 0x6c757a20, 0x1dba1: 0x6cf79620, 0x1dba2: 0x6ccd5a20, 0x1dba3: 0x6ceeb620, - 0x1dba4: 0x6cf8d220, 0x1dba5: 0x6ce51220, 0x1dba6: 0x6d21a620, 0x1dba7: 0x6c803e20, - 0x1dba8: 0x6c36aa20, 0x1dba9: 0x6c322a20, 0x1dbaa: 0x6cbd3e20, 0x1dbab: 0x6cad2220, - 0x1dbac: 0x6c62a220, 0x1dbad: 0x6ca01e20, 0x1dbae: 0x6d1caa20, 0x1dbaf: 0x6c46dc20, - 0x1dbb0: 0x6cc15020, 0x1dbb1: 0x6d2e8c20, 0x1dbb2: 0x6c6d6c20, 0x1dbb3: 0x6c492c20, - 0x1dbb4: 0x6c2abc20, 0x1dbb5: 0x6c670420, 0x1dbb6: 0x6c956420, 0x1dbb7: 0x6cc28220, - 0x1dbb8: 0x6c652620, 0x1dbb9: 0x6cef6220, 0x1dbba: 0x6c750220, 0x1dbbb: 0x6cc15c20, - 0x1dbbc: 0x6c956a20, 0x1dbbd: 0x6c805420, 0x1dbbe: 0x6cd08a20, 0x1dbbf: 0x6c2bba20, - // Block 0x76f, offset 0x1dbc0 - 0x1dbc0: 0x6c494420, 0x1dbc1: 0x6c664e20, 0x1dbc2: 0x6c490220, 0x1dbc3: 0x6d0e3e20, - 0x1dbc4: 0x6c4a3a20, 0x1dbc5: 0x6c9d2a20, 0x1dbc6: 0x6cd32020, 0x1dbc7: 0x6c14be20, - 0x1dbc8: 0x6c802020, 0x1dbc9: 0x6c740a20, 0x1dbca: 0x6c61d620, 0x1dbcb: 0x6cf77e20, - 0x1dbcc: 0x6c2b6e20, 0x1dbcd: 0x6ce4fc20, 0x1dbce: 0x6d216820, 0x1dbcf: 0x6c46cc20, - 0x1dbd0: 0x6c6d4620, 0x1dbd1: 0x6cc27220, 0x1dbd2: 0x6c68c620, 0x1dbd3: 0x6cc01820, - 0x1dbd4: 0x6c6c3a20, 0x1dbd5: 0x6c241220, 0x1dbd6: 0x6c743220, 0x1dbd7: 0x6d360c20, - 0x1dbd8: 0x6c17bc20, 0x1dbd9: 0x6c600a20, 0x1dbda: 0x6c471220, 0x1dbdb: 0x6c289020, - 0x1dbdc: 0x6d3e5820, 0x1dbdd: 0x6c2bf820, 0x1dbde: 0x6cce0420, 0x1dbdf: 0x6c57a020, - 0x1dbe0: 0x6cc30220, 0x1dbe1: 0x6c440c20, 0x1dbe2: 0x6cd3a020, 0x1dbe3: 0x6c6b9820, - 0x1dbe4: 0x6c4b0a20, 0x1dbe5: 0x6c459820, 0x1dbe6: 0x6c1f5c20, 0x1dbe7: 0x6c6b9a20, - 0x1dbe8: 0x6c5d3a20, 0x1dbe9: 0x6cc08420, 0x1dbea: 0x6d039020, 0x1dbeb: 0x6cdaf220, - 0x1dbec: 0x6ca60220, 0x1dbed: 0x6c5f1e20, 0x1dbee: 0x6c92b420, 0x1dbef: 0x6d36c020, - 0x1dbf0: 0x6d2bfa20, 0x1dbf1: 0x6c0a5e20, 0x1dbf2: 0x6d03a620, 0x1dbf3: 0x6c55cc20, - 0x1dbf4: 0x6cce2220, 0x1dbf5: 0x6c45be20, 0x1dbf6: 0x6d374820, 0x1dbf7: 0x6d092820, - 0x1dbf8: 0x6c1f8a20, 0x1dbf9: 0x6cf71a20, 0x1dbfa: 0x6d159420, 0x1dbfb: 0x6c877e20, - 0x1dbfc: 0x6c750e20, 0x1dbfd: 0x6cf75020, 0x1dbfe: 0x6d0f0c20, 0x1dbff: 0x6cf75e20, - // Block 0x770, offset 0x1dc00 - 0x1dc00: 0x6d0c5c20, 0x1dc01: 0x6d0f3620, 0x1dc02: 0x6c2f9a20, 0x1dc03: 0x6c3fc620, - 0x1dc04: 0x6cc01a20, 0x1dc05: 0x6cc01c20, 0x1dc06: 0x6c698a20, 0x1dc07: 0x6c529c20, - 0x1dc08: 0x6c61b820, 0x1dc09: 0x6c384c20, 0x1dc0a: 0x6d0a7e20, 0x1dc0b: 0x6c2e1420, - 0x1dc0c: 0x6c53b820, 0x1dc0d: 0x6c149820, 0x1dc0e: 0x6ce25c20, 0x1dc0f: 0x6d058620, - 0x1dc10: 0x6c6aaa20, 0x1dc11: 0x6d14dc20, 0x1dc12: 0x6cc5e020, 0x1dc13: 0x6d0ac020, - 0x1dc14: 0x6d1a4e20, 0x1dc15: 0x6ccd7e20, 0x1dc16: 0x6cb77020, 0x1dc17: 0x6ceabc20, - 0x1dc18: 0x6c61d820, 0x1dc19: 0x6d0a8020, 0x1dc1a: 0x6d1a5020, 0x1dc1b: 0x6c356020, - 0x1dc1c: 0x6c3b2c20, 0x1dc1d: 0x6d0ba420, 0x1dc1e: 0x6d109e20, 0x1dc1f: 0x6cd98c20, - 0x1dc20: 0x6cd06020, 0x1dc21: 0x6d1a5e20, 0x1dc22: 0x6d02ce20, 0x1dc23: 0x6c743420, - 0x1dc24: 0x6cff8620, 0x1dc25: 0x6ca54e20, 0x1dc26: 0x6c18c020, 0x1dc27: 0x6d1f2e20, - 0x1dc28: 0x6d352220, 0x1dc29: 0x6d046820, 0x1dc2a: 0x6c39d620, 0x1dc2b: 0x6d033220, - 0x1dc2c: 0x6c174020, 0x1dc2d: 0x6ccf4420, 0x1dc2e: 0x6cfaa220, 0x1dc2f: 0x6cc94e20, - 0x1dc30: 0x6d3ce220, 0x1dc31: 0x6d063c20, 0x1dc32: 0x6d177820, 0x1dc33: 0x6d177a20, - 0x1dc34: 0x6cdb7a20, 0x1dc35: 0x6c1ab220, 0x1dc36: 0x6c509e20, 0x1dc37: 0x6ccff620, - 0x1dc38: 0x6c512c20, 0x1dc39: 0x6d06e620, 0x1dc3a: 0x6d31de20, 0x1dc3b: 0x6d3afa20, - 0x1dc3c: 0x6d334e20, 0x1dc3d: 0x6c46a820, 0x1dc3e: 0x6d3e5c20, 0x1dc3f: 0x6d3f1c20, - // Block 0x771, offset 0x1dc40 - 0x1dc40: 0x6d2d7820, 0x1dc41: 0x6c479420, 0x1dc42: 0x6c3ffe20, 0x1dc43: 0x6c65a020, - 0x1dc44: 0x6c2eb420, 0x1dc45: 0x6c8d0a20, 0x1dc46: 0x6c2bfa20, 0x1dc47: 0x6d104e20, - 0x1dc48: 0x6c861c20, 0x1dc49: 0x6ca4b020, 0x1dc4a: 0x6cacb820, 0x1dc4b: 0x6d392e20, - 0x1dc4c: 0x6c422220, 0x1dc4d: 0x6d17c420, 0x1dc4e: 0x6c724420, 0x1dc4f: 0x6d120c20, - 0x1dc50: 0x6d2cc820, 0x1dc51: 0x6d150020, 0x1dc52: 0x6d150220, 0x1dc53: 0x6cc24a20, - 0x1dc54: 0x6d2fb620, 0x1dc55: 0x6cb2b220, 0x1dc56: 0x6c09ac20, 0x1dc57: 0x6d049620, - 0x1dc58: 0x6cc11620, 0x1dc59: 0x6c037c20, 0x1dc5a: 0x6c26aa20, 0x1dc5b: 0x6d411e20, - 0x1dc5c: 0x6ce1cc20, 0x1dc5d: 0x6d3a7220, 0x1dc5e: 0x6c224820, 0x1dc5f: 0x6d305e20, - 0x1dc60: 0x6d1e3e20, 0x1dc61: 0x6d064620, 0x1dc62: 0x6d0a2020, 0x1dc63: 0x6d180c20, - 0x1dc64: 0x6c5a5620, 0x1dc65: 0x6c514420, 0x1dc66: 0x6cd3a220, 0x1dc67: 0x6c13f020, - 0x1dc68: 0x6cfff820, 0x1dc69: 0x6cd1d820, 0x1dc6a: 0x6c523e20, 0x1dc6b: 0x6c144420, - 0x1dc6c: 0x6c46ba20, 0x1dc6d: 0x6c4b0c20, 0x1dc6e: 0x6cc30420, 0x1dc6f: 0x6c5bea20, - 0x1dc70: 0x6c6afc20, 0x1dc71: 0x6c57a220, 0x1dc72: 0x6c40fc20, 0x1dc73: 0x6cfdca20, - 0x1dc74: 0x6ceea420, 0x1dc75: 0x6ccffc20, 0x1dc76: 0x6d393420, 0x1dc77: 0x6ce75c20, - 0x1dc78: 0x6c9c6220, 0x1dc79: 0x6d2d8420, 0x1dc7a: 0x6ca04620, 0x1dc7b: 0x6c366420, - 0x1dc7c: 0x6c5ace20, 0x1dc7d: 0x6d0cb220, 0x1dc7e: 0x6d046e20, 0x1dc7f: 0x6c48bc20, - // Block 0x772, offset 0x1dc80 - 0x1dc80: 0x6c37d220, 0x1dc81: 0x6c0e2420, 0x1dc82: 0x6ce5c420, 0x1dc83: 0x6d152020, - 0x1dc84: 0x6c82ca20, 0x1dc85: 0x6d39b420, 0x1dc86: 0x6c7ba420, 0x1dc87: 0x6c7ac620, - 0x1dc88: 0x6cf3dc20, 0x1dc89: 0x6d238220, 0x1dc8a: 0x6ce2a420, 0x1dc8b: 0x6c625220, - 0x1dc8c: 0x6d36a020, 0x1dc8d: 0x6cc60220, 0x1dc8e: 0x6c244e20, 0x1dc8f: 0x6c810c20, - 0x1dc90: 0x6c357a20, 0x1dc91: 0x6c7bc620, 0x1dc92: 0x6c370c20, 0x1dc93: 0x6cd3b820, - 0x1dc94: 0x6ce6d820, 0x1dc95: 0x6c289620, 0x1dc96: 0x6c074620, 0x1dc97: 0x6c151020, - 0x1dc98: 0x6d205620, 0x1dc99: 0x6c794a20, 0x1dc9a: 0x6cbc4e20, 0x1dc9b: 0x6cbd3820, - 0x1dc9c: 0x6cd65020, 0x1dc9d: 0x6c014220, 0x1dc9e: 0x6d227c20, 0x1dc9f: 0x6cfffe20, - 0x1dca0: 0x6c1a2220, 0x1dca1: 0x6c6bf420, 0x1dca2: 0x6cfcee20, 0x1dca3: 0x6cf37a20, - 0x1dca4: 0x6cf51020, 0x1dca5: 0x6c435620, 0x1dca6: 0x6cd99a20, 0x1dca7: 0x6c101a20, - 0x1dca8: 0x6c5c0420, 0x1dca9: 0x6c6e9820, 0x1dcaa: 0x6cd76a20, 0x1dcab: 0x6d325220, - 0x1dcac: 0x6cd76c20, 0x1dcad: 0x6c31ae20, 0x1dcae: 0x6c57e420, 0x1dcaf: 0x6c172420, - 0x1dcb0: 0x6cd6fe20, 0x1dcb1: 0x6c6b2820, 0x1dcb2: 0x6c78d420, 0x1dcb3: 0x6cc13a20, - 0x1dcb4: 0x6c23ac20, 0x1dcb5: 0x6cff9820, 0x1dcb6: 0x6cdc6420, 0x1dcb7: 0x6cee3620, - 0x1dcb8: 0x6cfb8620, 0x1dcb9: 0x6c3a6c20, 0x1dcba: 0x6c1ad220, 0x1dcbb: 0x6cde9220, - 0x1dcbc: 0x6d186620, 0x1dcbd: 0x6ca6c220, 0x1dcbe: 0x6d1a9a20, 0x1dcbf: 0x6c2e3820, - // Block 0x773, offset 0x1dcc0 - 0x1dcc0: 0x6cb06820, 0x1dcc1: 0x6d3d8c20, 0x1dcc2: 0x6c15de20, 0x1dcc3: 0x6c188420, - 0x1dcc4: 0x6d3cd620, 0x1dcc5: 0x6c626a20, 0x1dcc6: 0x6cb52820, 0x1dcc7: 0x6ce00820, - 0x1dcc8: 0x6d3ca420, 0x1dcc9: 0x6cf00c20, 0x1dcca: 0x6c714c20, 0x1dccb: 0x6cbeb220, - 0x1dccc: 0x6c303c20, 0x1dccd: 0x6d335420, 0x1dcce: 0x6d2af220, 0x1dccf: 0x6d406020, - 0x1dcd0: 0x6cb91620, 0x1dcd1: 0x6d3d8e20, 0x1dcd2: 0x6c89c820, 0x1dcd3: 0x6c66c020, - 0x1dcd4: 0x6c1f6e20, 0x1dcd5: 0x6c4fe420, 0x1dcd6: 0x6c952620, 0x1dcd7: 0x6cd06e20, - 0x1dcd8: 0x6c0c7820, 0x1dcd9: 0x6c581220, 0x1dcda: 0x6cb12620, 0x1dcdb: 0x6d219420, - 0x1dcdc: 0x6c2eea20, 0x1dcdd: 0x6d05e820, 0x1dcde: 0x6cb14220, 0x1dcdf: 0x6cd3de20, - 0x1dce0: 0x6d07d220, 0x1dce1: 0x6cd3e020, 0x1dce2: 0x6c5d4220, 0x1dce3: 0x6c57c020, - 0x1dce4: 0x6c36ac20, 0x1dce5: 0x6d384020, 0x1dce6: 0x6c2c9c20, 0x1dce7: 0x6d00f220, - 0x1dce8: 0x6c3ef620, 0x1dce9: 0x6cb49420, 0x1dcea: 0x6ce69020, 0x1dceb: 0x6c66d620, - 0x1dcec: 0x6cb71e20, 0x1dced: 0x6d23f620, 0x1dcee: 0x6d3e9020, 0x1dcef: 0x6d3b9420, - 0x1dcf0: 0x6cf81420, 0x1dcf1: 0x6c5c4220, 0x1dcf2: 0x6d1a0220, 0x1dcf3: 0x6c015020, - 0x1dcf4: 0x6cfb9e20, 0x1dcf5: 0x6ca40e20, 0x1dcf6: 0x6c18ec20, 0x1dcf7: 0x6c3cce20, - 0x1dcf8: 0x6d39c620, 0x1dcf9: 0x6d0fd820, 0x1dcfa: 0x6d0ec420, 0x1dcfb: 0x6c5a0020, - 0x1dcfc: 0x6d07d420, 0x1dcfd: 0x6c443a20, 0x1dcfe: 0x6cab0e20, 0x1dcff: 0x6cb53220, - // Block 0x774, offset 0x1dd00 - 0x1dd00: 0x6ca1e820, 0x1dd01: 0x6d134620, 0x1dd02: 0x6cf0d620, 0x1dd03: 0x6d044620, - 0x1dd04: 0x6ce2ba20, 0x1dd05: 0x6d38b620, 0x1dd06: 0x6ccdc020, 0x1dd07: 0x6c65ec20, - 0x1dd08: 0x6cb33a20, 0x1dd09: 0x6c7d2220, 0x1dd0a: 0x6c5a6420, 0x1dd0b: 0x6c5e0c20, - 0x1dd0c: 0x6c43b620, 0x1dd0d: 0x6d1cac20, 0x1dd0e: 0x6c9c7420, 0x1dd0f: 0x6cffc020, - 0x1dd10: 0x6c9d9820, 0x1dd11: 0x6cf81a20, 0x1dd12: 0x6cbae220, 0x1dd13: 0x6c188c20, - 0x1dd14: 0x6d097220, 0x1dd15: 0x6ce38820, 0x1dd16: 0x6cdb4a20, 0x1dd17: 0x6c059420, - 0x1dd18: 0x6c1b5a20, 0x1dd19: 0x6cb92820, 0x1dd1a: 0x6cd3ea20, 0x1dd1b: 0x6c67c820, - 0x1dd1c: 0x6d25b620, 0x1dd1d: 0x6d023620, 0x1dd1e: 0x6c51f620, 0x1dd1f: 0x6ce1f220, - 0x1dd20: 0x6d115020, 0x1dd21: 0x6d115220, 0x1dd22: 0x6d378020, 0x1dd23: 0x6d21c820, - 0x1dd24: 0x6c0c4020, 0x1dd25: 0x6c23e020, 0x1dd26: 0x6cbee620, 0x1dd27: 0x6c846420, - 0x1dd28: 0x6ca08020, 0x1dd29: 0x6ca17620, 0x1dd2a: 0x6cce2420, 0x1dd2b: 0x6d30b020, - 0x1dd2c: 0x6ca05420, 0x1dd2d: 0x6c660420, 0x1dd2e: 0x6d2b1820, 0x1dd2f: 0x6c6a3a20, - 0x1dd30: 0x6c886e20, 0x1dd31: 0x6c90c620, 0x1dd32: 0x6c121020, 0x1dd33: 0x6cab5e20, - 0x1dd34: 0x6c4c0620, 0x1dd35: 0x6cf7ae20, 0x1dd36: 0x6d3dc020, 0x1dd37: 0x6c027a20, - 0x1dd38: 0x6c027c20, 0x1dd39: 0x6c6cc220, 0x1dd3a: 0x6d30b220, 0x1dd3b: 0x6d158620, - 0x1dd3c: 0x6c551220, 0x1dd3d: 0x6c680e20, 0x1dd3e: 0x6c978e20, 0x1dd3f: 0x6c178a20, - // Block 0x775, offset 0x1dd40 - 0x1dd40: 0x6c4f2620, 0x1dd41: 0x6c576020, 0x1dd42: 0x6c160020, 0x1dd43: 0x6d060020, - 0x1dd44: 0x6d2ba420, 0x1dd45: 0x6ccb9220, 0x1dd46: 0x6cf71c20, 0x1dd47: 0x6d2c0420, - 0x1dd48: 0x6c337a20, 0x1dd49: 0x6d336c20, 0x1dd4a: 0x6ca4ce20, 0x1dd4b: 0x6c7fda20, - 0x1dd4c: 0x6c359820, 0x1dd4d: 0x6d1c2620, 0x1dd4e: 0x6c74ee20, 0x1dd4f: 0x6c5f8220, - 0x1dd50: 0x6d421220, 0x1dd51: 0x6c696020, 0x1dd52: 0x6c0ffc20, 0x1dd53: 0x6c5c8620, - 0x1dd54: 0x6d3bf420, 0x1dd55: 0x6cf40820, 0x1dd56: 0x6d2b7a20, 0x1dd57: 0x6d2c6220, - 0x1dd58: 0x6cd42220, 0x1dd59: 0x6cbc6c20, 0x1dd5a: 0x6ce03620, 0x1dd5b: 0x6d2b7c20, - 0x1dd5c: 0x6cb4a020, 0x1dd5d: 0x6cd12820, 0x1dd5e: 0x6d07ee20, 0x1dd5f: 0x6d2a9820, - 0x1dd60: 0x6ce04020, 0x1dd61: 0x6c293620, 0x1dd62: 0x6cdcac20, 0x1dd63: 0x6cfc4e20, - 0x1dd64: 0x6c5f8c20, 0x1dd65: 0x6c69d820, 0x1dd66: 0x6c6e3c20, 0x1dd67: 0x6d2e9820, - 0x1dd68: 0x6ca45c20, 0x1dd69: 0x6d143220, 0x1dd6a: 0x6c010420, 0x1dd6b: 0x6d2dbc20, - 0x1dd6c: 0x6cb0d820, 0x1dd6d: 0x6c5b7e20, 0x1dd6e: 0x6c57d420, 0x1dd6f: 0x6d193220, - 0x1dd70: 0x6d193420, 0x1dd71: 0x6ccdd620, 0x1dd72: 0x6cc51c20, 0x1dd73: 0x6caa3220, - 0x1dd74: 0x6cba3220, 0x1dd75: 0x6d3cbe20, 0x1dd76: 0x6cdee420, 0x1dd77: 0x6c56e020, - 0x1dd78: 0x6d38c420, 0x1dd79: 0x6c500420, 0x1dd7a: 0x6c010620, 0x1dd7b: 0x6d1c3420, - 0x1dd7c: 0x6c671a20, 0x1dd7d: 0x6d246620, 0x1dd7e: 0x6c662c20, 0x1dd7f: 0x6c5c9c20, - // Block 0x776, offset 0x1dd80 - 0x1dd80: 0x6c31f020, 0x1dd81: 0x6d30bc20, 0x1dd82: 0x6d08d020, 0x1dd83: 0x6d29bc20, - 0x1dd84: 0x6c830c20, 0x1dd85: 0x6cd08c20, 0x1dd86: 0x6cf12220, 0x1dd87: 0x6c161a20, - 0x1dd88: 0x6c879020, 0x1dd89: 0x6d159a20, 0x1dd8a: 0x6c0bdc20, 0x1dd8b: 0x6d30c820, - 0x1dd8c: 0x6d0f0e20, 0x1dd8d: 0x6c36f220, 0x1dd8e: 0x6c1e0e20, 0x1dd8f: 0x6cf12a20, - 0x1dd90: 0x6c1e1020, 0x1dd91: 0x6d125620, 0x1dd92: 0x6c157c20, 0x1dd93: 0x6cc51e20, - 0x1dd94: 0x6d1b2c20, 0x1dd95: 0x6c801020, 0x1dd96: 0x6c194820, 0x1dd97: 0x6d013820, - 0x1dd98: 0x6ca8cc20, 0x1dd99: 0x6c584c20, 0x1dd9a: 0x6d29ca20, 0x1dd9b: 0x6d197c20, - 0x1dd9c: 0x6c294a20, 0x1dd9d: 0x6d2dda20, 0x1dd9e: 0x6d0f2a20, 0x1dd9f: 0x6c321020, - 0x1dda0: 0x6d0c5020, 0x1dda1: 0x6c616e20, 0x1dda2: 0x6c2f8c20, 0x1dda3: 0x6c3fa220, - 0x1dda4: 0x6cc5a420, 0x1dda5: 0x6c5e6620, 0x1dda6: 0x6c6a5c20, 0x1dda7: 0x6c53b420, - 0x1dda8: 0x6ce25820, 0x1dda9: 0x6cc51820, 0x1ddaa: 0x6ccd6620, 0x1ddab: 0x6cb72820, - 0x1ddac: 0x6cea9420, 0x1ddad: 0x6d0abe20, 0x1ddae: 0x6d164e20, 0x1ddaf: 0x6d0a6220, - 0x1ddb0: 0x6c617020, 0x1ddb1: 0x6cc5aa20, 0x1ddb2: 0x6c679c20, 0x1ddb3: 0x6c5b8c20, - 0x1ddb4: 0x6cab2c20, 0x1ddb5: 0x6c71f420, 0x1ddb6: 0x6d0b7220, 0x1ddb7: 0x6ca54220, - 0x1ddb8: 0x6d062420, 0x1ddb9: 0x6c354620, 0x1ddba: 0x6c952020, 0x1ddbb: 0x6d045220, - 0x1ddbc: 0x6cd97c20, 0x1ddbd: 0x6c3cc420, 0x1ddbe: 0x6ccf3220, 0x1ddbf: 0x6c39b820, - // Block 0x777, offset 0x1ddc0 - 0x1ddc0: 0x6c73d620, 0x1ddc1: 0x6d333a20, 0x1ddc2: 0x6c475a20, 0x1ddc3: 0x6c508a20, - 0x1ddc4: 0x6cb27020, 0x1ddc5: 0x6d410820, 0x1ddc6: 0x6cd40e20, 0x1ddc7: 0x6d048620, - 0x1ddc8: 0x6d2caa20, 0x1ddc9: 0x6cdb7820, 0x1ddca: 0x6d31b420, 0x1ddcb: 0x6c2bce20, - 0x1ddcc: 0x6d385420, 0x1ddcd: 0x6c221e20, 0x1ddce: 0x6cc0d420, 0x1ddcf: 0x6d2f9820, - 0x1ddd0: 0x6c092020, 0x1ddd1: 0x6d169c20, 0x1ddd2: 0x6d146620, 0x1ddd3: 0x6c7b8620, - 0x1ddd4: 0x6c82b620, 0x1ddd5: 0x6cd32220, 0x1ddd6: 0x6c48aa20, 0x1ddd7: 0x6cd19c20, - 0x1ddd8: 0x6c5fe420, 0x1ddd9: 0x6c5a8c20, 0x1ddda: 0x6c19c020, 0x1dddb: 0x6d398420, - 0x1dddc: 0x6ccfb420, 0x1dddd: 0x6c578620, 0x1ddde: 0x6c286c20, 0x1dddf: 0x6c469620, - 0x1dde0: 0x6cc2ba20, 0x1dde1: 0x6c4aca20, 0x1dde2: 0x6d09e020, 0x1dde3: 0x6d16d220, - 0x1dde4: 0x6d328e20, 0x1dde5: 0x6c40de20, 0x1dde6: 0x6cfdb020, 0x1dde7: 0x6c143220, - 0x1dde8: 0x6c5d1a20, 0x1dde9: 0x6d062e20, 0x1ddea: 0x6d386220, 0x1ddeb: 0x6c6bd420, - 0x1ddec: 0x6cf35c20, 0x1dded: 0x6d223020, 0x1ddee: 0x6cbc3220, 0x1ddef: 0x6cf4ce20, - 0x1ddf0: 0x6c433c20, 0x1ddf1: 0x6d203220, 0x1ddf2: 0x6c5ba420, 0x1ddf3: 0x6c7bbc20, - 0x1ddf4: 0x6cd76620, 0x1ddf5: 0x6cd98220, 0x1ddf6: 0x6c370a20, 0x1ddf7: 0x6cbea220, - 0x1ddf8: 0x6d399620, 0x1ddf9: 0x6d404a20, 0x1ddfa: 0x6caae620, 0x1ddfb: 0x6c319420, - 0x1ddfc: 0x6d3d3e20, 0x1ddfd: 0x6c3a4e20, 0x1ddfe: 0x6c789c20, 0x1ddff: 0x6cefa620, - // Block 0x778, offset 0x1de00 - 0x1de00: 0x6d20f820, 0x1de01: 0x6cd6fa20, 0x1de02: 0x6cd05420, 0x1de03: 0x6c2e1620, - 0x1de04: 0x6c15a220, 0x1de05: 0x6c89b020, 0x1de06: 0x6d3cd020, 0x1de07: 0x6cdc3220, - 0x1de08: 0x6cdfd620, 0x1de09: 0x6cd05620, 0x1de0a: 0x6d174820, 0x1de0b: 0x6ca1d020, - 0x1de0c: 0x6c18c220, 0x1de0d: 0x6c2e9620, 0x1de0e: 0x6c5a5220, 0x1de0f: 0x6c668220, - 0x1de10: 0x6d00a620, 0x1de11: 0x6d095a20, 0x1de12: 0x6d12ea20, 0x1de13: 0x6cf08820, - 0x1de14: 0x6c361a20, 0x1de15: 0x6d232420, 0x1de16: 0x6d078e20, 0x1de17: 0x6c14f020, - 0x1de18: 0x6d3e2c20, 0x1de19: 0x6c012c20, 0x1de1a: 0x6d0e6620, 0x1de1b: 0x6c2c5020, - 0x1de1c: 0x6c9c4e20, 0x1de1d: 0x6cb13c20, 0x1de1e: 0x6d059020, 0x1de1f: 0x6ca05820, - 0x1de20: 0x6c292e20, 0x1de21: 0x6cdab820, 0x1de22: 0x6d01b620, 0x1de23: 0x6d10fe20, - 0x1de24: 0x6c057420, 0x1de25: 0x6cd38c20, 0x1de26: 0x6cb8e420, 0x1de27: 0x6c9d4c20, - 0x1de28: 0x6c6c9820, 0x1de29: 0x6c976820, 0x1de2a: 0x6d306620, 0x1de2b: 0x6c65b620, - 0x1de2c: 0x6ca05220, 0x1de2d: 0x6cdff420, 0x1de2e: 0x6d2b7820, 0x1de2f: 0x6cbbe420, - 0x1de30: 0x6c7fa820, 0x1de31: 0x6cb49020, 0x1de32: 0x6c748620, 0x1de33: 0x6d0ea820, - 0x1de34: 0x6cba1e20, 0x1de35: 0x6d2d9020, 0x1de36: 0x6c193c20, 0x1de37: 0x6c475c20, - 0x1de38: 0x6cb8cc20, 0x1de39: 0x6c534020, 0x1de3a: 0x6cf96420, 0x1de3b: 0x6c602420, - 0x1de3c: 0x6c536820, 0x1de3d: 0x6c4db220, 0x1de3e: 0x6c52c020, 0x1de3f: 0x6cf6f420, - // Block 0x779, offset 0x1de40 - 0x1de40: 0x6cf6f620, 0x1de41: 0x6c5d6220, 0x1de42: 0x6c8a3e20, 0x1de43: 0x6c4e6a20, - 0x1de44: 0x6c31f220, 0x1de45: 0x6c900420, 0x1de46: 0x6c30fa20, 0x1de47: 0x6c675a20, - 0x1de48: 0x6cb6e820, 0x1de49: 0x6cd37220, 0x1de4a: 0x6c852420, 0x1de4b: 0x6c2a9e20, - 0x1de4c: 0x6cec9a20, 0x1de4d: 0x6c088a20, 0x1de4e: 0x6cd60820, 0x1de4f: 0x6cfd1c20, - 0x1de50: 0x6c3c7020, 0x1de51: 0x6d375a20, 0x1de52: 0x6d377620, 0x1de53: 0x6d0f2c20, - 0x1de54: 0x6d0f3020, 0x1de55: 0x6cd2b020, 0x1de56: 0x6c1f1620, 0x1de57: 0x6c5aae20, - 0x1de58: 0x6cea4e20, 0x1de59: 0x6d177c20, 0x1de5a: 0x6cea5020, 0x1de5b: 0x6d177e20, - 0x1de5c: 0x6c649020, 0x1de5d: 0x6c034a20, 0x1de5e: 0x6c547220, 0x1de5f: 0x6c364820, - 0x1de60: 0x6c1e8420, 0x1de61: 0x6cfe3020, 0x1de62: 0x6c593e20, 0x1de63: 0x6c64c220, - 0x1de64: 0x6c790420, 0x1de65: 0x6c40fe20, 0x1de66: 0x6c725a20, 0x1de67: 0x6c3d8a20, - 0x1de68: 0x6cf68420, 0x1de69: 0x6c0d4820, 0x1de6a: 0x6c4fd620, 0x1de6b: 0x6d23ce20, - 0x1de6c: 0x6d39c820, 0x1de6d: 0x6c638420, 0x1de6e: 0x6c3b9a20, 0x1de6f: 0x6cf6f820, - 0x1de70: 0x6c0f8020, 0x1de71: 0x6cf16620, 0x1de72: 0x6c58aa20, 0x1de73: 0x6c0d5820, - 0x1de74: 0x6c2ba620, 0x1de75: 0x6d3fce20, 0x1de76: 0x6c3ba620, 0x1de77: 0x6d191c20, - 0x1de78: 0x6d357c20, 0x1de79: 0x6c064020, 0x1de7a: 0x6c147820, 0x1de7b: 0x6c01b420, - 0x1de7c: 0x6cafe620, 0x1de7d: 0x6ca33c20, 0x1de7e: 0x6caf6620, 0x1de7f: 0x6c468a20, - // Block 0x77a, offset 0x1de80 - 0x1de80: 0x6ca34620, 0x1de81: 0x6d204820, 0x1de82: 0x6c2dcc20, 0x1de83: 0x6ca11e20, - 0x1de84: 0x6cd8ce20, 0x1de85: 0x6d04dc20, 0x1de86: 0x6c588420, 0x1de87: 0x6c7d7220, - 0x1de88: 0x6c514820, 0x1de89: 0x6c4fce20, 0x1de8a: 0x6ca13220, 0x1de8b: 0x6c4ef020, - 0x1de8c: 0x6c99a420, 0x1de8d: 0x6c842220, 0x1de8e: 0x6ca60420, 0x1de8f: 0x6c08f420, - 0x1de90: 0x6d229620, 0x1de91: 0x6c638620, 0x1de92: 0x6ce93a20, 0x1de93: 0x6c98be20, - 0x1de94: 0x6cb02620, 0x1de95: 0x6cf6fa20, 0x1de96: 0x6c36b820, 0x1de97: 0x6c72ae20, - 0x1de98: 0x6ca17820, 0x1de99: 0x6c1e6a20, 0x1de9a: 0x6ce03820, 0x1de9b: 0x6c584e20, - 0x1de9c: 0x6c753620, 0x1de9d: 0x6c06dc20, 0x1de9e: 0x6d313220, 0x1de9f: 0x6d254a20, - 0x1dea0: 0x6c3fc820, 0x1dea1: 0x6c110e20, 0x1dea2: 0x6c461420, 0x1dea3: 0x6ce27220, - 0x1dea4: 0x6d14de20, 0x1dea5: 0x6c4f7820, 0x1dea6: 0x6ced8020, 0x1dea7: 0x6cb20a20, - 0x1dea8: 0x6c5dc820, 0x1dea9: 0x6c395020, 0x1deaa: 0x6cdfa620, 0x1deab: 0x6c498620, - 0x1deac: 0x6d2ac820, 0x1dead: 0x6d345e20, 0x1deae: 0x6c37cc20, 0x1deaf: 0x6d3afe20, - 0x1deb0: 0x6cd38e20, 0x1deb1: 0x6c09ae20, 0x1deb2: 0x6d3e5e20, 0x1deb3: 0x6c37d020, - 0x1deb4: 0x6c4b4e20, 0x1deb5: 0x6cb14020, 0x1deb6: 0x6c0b3a20, 0x1deb7: 0x6c971420, - 0x1deb8: 0x6c277220, 0x1deb9: 0x6cd16820, 0x1deba: 0x6c7bf820, 0x1debb: 0x6c3ab220, - 0x1debc: 0x6ce5f420, 0x1debd: 0x6d150620, 0x1debe: 0x6c1b2a20, 0x1debf: 0x6c998620, - // Block 0x77b, offset 0x1dec0 - 0x1dec0: 0x6c51c820, 0x1dec1: 0x6c09b020, 0x1dec2: 0x6c927420, 0x1dec3: 0x6c8c5420, - 0x1dec4: 0x6c5bec20, 0x1dec5: 0x6c410020, 0x1dec6: 0x6cb11a20, 0x1dec7: 0x6d3e6020, - 0x1dec8: 0x6c642020, 0x1dec9: 0x6d070420, 0x1deca: 0x6d2b6020, 0x1decb: 0x6c691020, - 0x1decc: 0x6c414a20, 0x1decd: 0x6d29dc20, 0x1dece: 0x6c669e20, 0x1decf: 0x6d1be220, - 0x1ded0: 0x6d0a9c20, 0x1ded1: 0x6d325420, 0x1ded2: 0x6ccef820, 0x1ded3: 0x6c0d4a20, - 0x1ded4: 0x6c0d4c20, 0x1ded5: 0x6cc08620, 0x1ded6: 0x6ccefa20, 0x1ded7: 0x6c203c20, - 0x1ded8: 0x6d29e620, 0x1ded9: 0x6d38a220, 0x1deda: 0x6c7f5220, 0x1dedb: 0x6d299820, - 0x1dedc: 0x6c22e020, 0x1dedd: 0x6c188620, 0x1dede: 0x6cce3a20, 0x1dedf: 0x6ce51620, - 0x1dee0: 0x6cadee20, 0x1dee1: 0x6c44de20, 0x1dee2: 0x6cfb8820, 0x1dee3: 0x6c974020, - 0x1dee4: 0x6c66c220, 0x1dee5: 0x6cdc6820, 0x1dee6: 0x6c404420, 0x1dee7: 0x6ce0aa20, - 0x1dee8: 0x6c23ae20, 0x1dee9: 0x6c23b020, 0x1deea: 0x6d36c620, 0x1deeb: 0x6c5f2220, - 0x1deec: 0x6d2f3e20, 0x1deed: 0x6c322c20, 0x1deee: 0x6c6d5420, 0x1deef: 0x6d047420, - 0x1def0: 0x6c218820, 0x1def1: 0x6d280420, 0x1def2: 0x6c061420, 0x1def3: 0x6d290c20, - 0x1def4: 0x6c7f5820, 0x1def5: 0x6c3cf820, 0x1def6: 0x6c125c20, 0x1def7: 0x6c5f6020, - 0x1def8: 0x6cd17e20, 0x1def9: 0x6d18da20, 0x1defa: 0x6d3bec20, 0x1defb: 0x6c406820, - 0x1defc: 0x6c46de20, 0x1defd: 0x6cc9ea20, 0x1defe: 0x6d2b1a20, 0x1deff: 0x6c8a4020, - // Block 0x77c, offset 0x1df00 - 0x1df00: 0x6d18f820, 0x1df01: 0x6c045e20, 0x1df02: 0x6c191620, 0x1df03: 0x6ceda620, - 0x1df04: 0x6d373220, 0x1df05: 0x6d3cb620, 0x1df06: 0x6c0c4620, 0x1df07: 0x6d276e20, - 0x1df08: 0x6d2bb620, 0x1df09: 0x6c28e020, 0x1df0a: 0x6d29ae20, 0x1df0b: 0x6d0eec20, - 0x1df0c: 0x6cb4c420, 0x1df0d: 0x6ccdd820, 0x1df0e: 0x6cedac20, 0x1df0f: 0x6d1cca20, - 0x1df10: 0x6c6d7220, 0x1df11: 0x6c423c20, 0x1df12: 0x6cfbd420, 0x1df13: 0x6d29f020, - 0x1df14: 0x6c0ac620, 0x1df15: 0x6c31f420, 0x1df16: 0x6cd54820, 0x1df17: 0x6d0f0620, - 0x1df18: 0x6cce4220, 0x1df19: 0x6d08d420, 0x1df1a: 0x6c907020, 0x1df1b: 0x6c424420, - 0x1df1c: 0x6d29f420, 0x1df1d: 0x6c06d220, 0x1df1e: 0x6d311c20, 0x1df1f: 0x6c3fa820, - 0x1df20: 0x6d253420, 0x1df21: 0x6c460c20, 0x1df22: 0x6c110c20, 0x1df23: 0x6d2aae20, - 0x1df24: 0x6cfb2e20, 0x1df25: 0x6c043820, 0x1df26: 0x6d2f2a20, 0x1df27: 0x6c5da220, - 0x1df28: 0x6d358e20, 0x1df29: 0x6c393420, 0x1df2a: 0x6cdf9220, 0x1df2b: 0x6cb20620, - 0x1df2c: 0x6c0b2a20, 0x1df2d: 0x6c469820, 0x1df2e: 0x6d3ab420, 0x1df2f: 0x6c497a20, - 0x1df30: 0x6c37c420, 0x1df31: 0x6c666220, 0x1df32: 0x6c078220, 0x1df33: 0x6cd34820, - 0x1df34: 0x6ce5ec20, 0x1df35: 0x6c4b3a20, 0x1df36: 0x6c7bec20, 0x1df37: 0x6c274e20, - 0x1df38: 0x6c995a20, 0x1df39: 0x6c3a9220, 0x1df3a: 0x6c51be20, 0x1df3b: 0x6d14b020, - 0x1df3c: 0x6d2b5c20, 0x1df3d: 0x6d35ce20, 0x1df3e: 0x6c640e20, 0x1df3f: 0x6c5bb020, - // Block 0x77d, offset 0x1df40 - 0x1df40: 0x6d3e1e20, 0x1df41: 0x6c8c5020, 0x1df42: 0x6c922c20, 0x1df43: 0x6d29d820, - 0x1df44: 0x6d3e2020, 0x1df45: 0x6c40f020, 0x1df46: 0x6c6cfa20, 0x1df47: 0x6cc05220, - 0x1df48: 0x6d323c20, 0x1df49: 0x6c7f4620, 0x1df4a: 0x6ccef020, 0x1df4b: 0x6c400020, - 0x1df4c: 0x6c322020, 0x1df4d: 0x6c5edc20, 0x1df4e: 0x6cd52c20, 0x1df4f: 0x6cce3820, - 0x1df50: 0x6c22ce20, 0x1df51: 0x6c09b220, 0x1df52: 0x6d388c20, 0x1df53: 0x6c44d420, - 0x1df54: 0x6cadda20, 0x1df55: 0x6c283620, 0x1df56: 0x6c7f4c20, 0x1df57: 0x6c3ce820, - 0x1df58: 0x6d3c9e20, 0x1df59: 0x6c402820, 0x1df5a: 0x6d3bd620, 0x1df5b: 0x6cc9e620, - 0x1df5c: 0x6d2af420, 0x1df5d: 0x6d0ec820, 0x1df5e: 0x6d299a20, 0x1df5f: 0x6d276820, - 0x1df60: 0x6d2bb220, 0x1df61: 0x6ccdc220, 0x1df62: 0x6d1cae20, 0x1df63: 0x6c423e20, - 0x1df64: 0x6c1be820, 0x1df65: 0x6cf60220, 0x1df66: 0x6ccf4620, 0x1df67: 0x6ca42420, - 0x1df68: 0x6ce75e20, 0x1df69: 0x6cf8a820, 0x1df6a: 0x6c197620, 0x1df6b: 0x6c51dc20, - 0x1df6c: 0x6c199620, 0x1df6d: 0x6d30dc20, 0x1df6e: 0x6cf9f620, 0x1df6f: 0x6ce14620, - 0x1df70: 0x6d407e20, 0x1df71: 0x6d407c20, 0x1df72: 0x6c85b620, 0x1df73: 0x6c6f6020, - 0x1df74: 0x6c3fca20, 0x1df75: 0x6d2fa620, 0x1df76: 0x6c41d220, 0x1df77: 0x6cb6ea20, - 0x1df78: 0x6ccd8020, 0x1df79: 0x6cbf1c20, 0x1df7a: 0x6d1adc20, 0x1df7b: 0x6cfc0c20, - 0x1df7c: 0x6c21fe20, 0x1df7d: 0x6c743620, 0x1df7e: 0x6cbdd420, 0x1df7f: 0x6c1b2020, - // Block 0x77e, offset 0x1df80 - 0x1df80: 0x6c220020, 0x1df81: 0x6c192820, 0x1df82: 0x6c192a20, 0x1df83: 0x6c2eb620, - 0x1df84: 0x6c70a020, 0x1df85: 0x6c174820, 0x1df86: 0x6c2b3020, 0x1df87: 0x6cf89620, - 0x1df88: 0x6d2d7a20, 0x1df89: 0x6c745c20, 0x1df8a: 0x6d26be20, 0x1df8b: 0x6cc11820, - 0x1df8c: 0x6c606220, 0x1df8d: 0x6c1b3e20, 0x1df8e: 0x6c1e9420, 0x1df8f: 0x6c486420, - 0x1df90: 0x6d096820, 0x1df91: 0x6d3e6220, 0x1df92: 0x6ce59420, 0x1df93: 0x6c349c20, - 0x1df94: 0x6c8b1c20, 0x1df95: 0x6c41e220, 0x1df96: 0x6cdd3220, 0x1df97: 0x6c245020, - 0x1df98: 0x6cf79820, 0x1df99: 0x6d2fd220, 0x1df9a: 0x6cdaf420, 0x1df9b: 0x6d1b0020, - 0x1df9c: 0x6c715020, 0x1df9d: 0x6c66c420, 0x1df9e: 0x6cc3f420, 0x1df9f: 0x6ce1a020, - 0x1dfa0: 0x6c21d020, 0x1dfa1: 0x6c250420, 0x1dfa2: 0x6c92b820, 0x1dfa3: 0x6cc27420, - 0x1dfa4: 0x6c298c20, 0x1dfa5: 0x6cbfc820, 0x1dfa6: 0x6d3e9220, 0x1dfa7: 0x6ce37e20, - 0x1dfa8: 0x6cc14a20, 0x1dfa9: 0x6c1c8820, 0x1dfaa: 0x6c5a1e20, 0x1dfab: 0x6cbc0a20, - 0x1dfac: 0x6cbbc220, 0x1dfad: 0x6c69ce20, 0x1dfae: 0x6d2a9a20, 0x1dfaf: 0x6ce44220, - 0x1dfb0: 0x6c37b020, 0x1dfb1: 0x6d298420, 0x1dfb2: 0x6d298820, 0x1dfb3: 0x6d40a620, - 0x1dfb4: 0x6cabbc20, 0x1dfb5: 0x6c064220, 0x1dfb6: 0x6c7a8c20, 0x1dfb7: 0x6c77f220, - 0x1dfb8: 0x6c33cc20, 0x1dfb9: 0x6c743820, 0x1dfba: 0x6c3d6c20, 0x1dfbb: 0x6c190020, - 0x1dfbc: 0x6c658c20, 0x1dfbd: 0x6c39e420, 0x1dfbe: 0x6d352420, 0x1dfbf: 0x6cdde620, - // Block 0x77f, offset 0x1dfc0 - 0x1dfc0: 0x6d26a820, 0x1dfc1: 0x6c03b620, 0x1dfc2: 0x6cb5d820, 0x1dfc3: 0x6d26aa20, - 0x1dfc4: 0x6cbab420, 0x1dfc5: 0x6ceba820, 0x1dfc6: 0x6cdf2420, 0x1dfc7: 0x6d17c820, - 0x1dfc8: 0x6ca72620, 0x1dfc9: 0x6c8d0e20, 0x1dfca: 0x6c9a9420, 0x1dfcb: 0x6c038220, - 0x1dfcc: 0x6c2e5820, 0x1dfcd: 0x6c7a4420, 0x1dfce: 0x6ceb2420, 0x1dfcf: 0x6c636620, - 0x1dfd0: 0x6c220620, 0x1dfd1: 0x6cad7820, 0x1dfd2: 0x6cb83820, 0x1dfd3: 0x6d3b0020, - 0x1dfd4: 0x6c70a220, 0x1dfd5: 0x6c2d1c20, 0x1dfd6: 0x6d346e20, 0x1dfd7: 0x6c3d7620, - 0x1dfd8: 0x6cac5a20, 0x1dfd9: 0x6c724e20, 0x1dfda: 0x6ccce620, 0x1dfdb: 0x6c0fe420, - 0x1dfdc: 0x6ca5ec20, 0x1dfdd: 0x6c724620, 0x1dfde: 0x6c861e20, 0x1dfdf: 0x6c449a20, - 0x1dfe0: 0x6d152420, 0x1dfe1: 0x6c5ef420, 0x1dfe2: 0x6c34fe20, 0x1dfe3: 0x6cfc1c20, - 0x1dfe4: 0x6c685420, 0x1dfe5: 0x6c350020, 0x1dfe6: 0x6d39b620, 0x1dfe7: 0x6cc30620, - 0x1dfe8: 0x6c7aec20, 0x1dfe9: 0x6d3b6820, 0x1dfea: 0x6c4b5a20, 0x1dfeb: 0x6cbf4420, - 0x1dfec: 0x6c7cd620, 0x1dfed: 0x6cfdce20, 0x1dfee: 0x6c1c3620, 0x1dfef: 0x6c927620, - 0x1dff0: 0x6cb11c20, 0x1dff1: 0x6d367020, 0x1dff2: 0x6c63d020, 0x1dff3: 0x6ce5dc20, - 0x1dff4: 0x6c113820, 0x1dff5: 0x6c669820, 0x1dff6: 0x6cde6a20, 0x1dff7: 0x6cbb8020, - 0x1dff8: 0x6c09e220, 0x1dff9: 0x6cfab220, 0x1dffa: 0x6c350220, 0x1dffb: 0x6c5ef620, - 0x1dffc: 0x6c714620, 0x1dffd: 0x6c625420, 0x1dffe: 0x6cd4fa20, 0x1dfff: 0x6ce8e020, - // Block 0x780, offset 0x1e000 - 0x1e000: 0x6c1f6420, 0x1e001: 0x6c6e9a20, 0x1e002: 0x6ca85620, 0x1e003: 0x6cfef820, - 0x1e004: 0x6c10b020, 0x1e005: 0x6d091420, 0x1e006: 0x6c259a20, 0x1e007: 0x6ca25020, - 0x1e008: 0x6cd4fc20, 0x1e009: 0x6c896220, 0x1e00a: 0x6d1e5420, 0x1e00b: 0x6c691820, - 0x1e00c: 0x6c1dce20, 0x1e00d: 0x6cbb9220, 0x1e00e: 0x6ca1da20, 0x1e00f: 0x6cde9420, - 0x1e010: 0x6c66c620, 0x1e011: 0x6cb64620, 0x1e012: 0x6cf29e20, 0x1e013: 0x6cf00e20, - 0x1e014: 0x6c219820, 0x1e015: 0x6c6b2a20, 0x1e016: 0x6c609a20, 0x1e017: 0x6ca86420, - 0x1e018: 0x6c70be20, 0x1e019: 0x6c70c020, 0x1e01a: 0x6c950c20, 0x1e01b: 0x6c92bc20, - 0x1e01c: 0x6c839a20, 0x1e01d: 0x6c57f020, 0x1e01e: 0x6c728420, 0x1e01f: 0x6c1b4e20, - 0x1e020: 0x6ced4820, 0x1e021: 0x6cc31420, 0x1e022: 0x6ce2fa20, 0x1e023: 0x6c0f4c20, - 0x1e024: 0x6d40d220, 0x1e025: 0x6cbce220, 0x1e026: 0x6d160820, 0x1e027: 0x6c245e20, - 0x1e028: 0x6d3fbc20, 0x1e029: 0x6c113e20, 0x1e02a: 0x6d3fbe20, 0x1e02b: 0x6caf1620, - 0x1e02c: 0x6d36c820, 0x1e02d: 0x6d32d820, 0x1e02e: 0x6c2d2a20, 0x1e02f: 0x6d349420, - 0x1e030: 0x6d21aa20, 0x1e031: 0x6c346220, 0x1e032: 0x6c340c20, 0x1e033: 0x6c202820, - 0x1e034: 0x6d1e6020, 0x1e035: 0x6d380820, 0x1e036: 0x6c2c9e20, 0x1e037: 0x6d2c9220, - 0x1e038: 0x6c191020, 0x1e039: 0x6c1fce20, 0x1e03a: 0x6c66c820, 0x1e03b: 0x6c486e20, - 0x1e03c: 0x6ce13e20, 0x1e03d: 0x6c71d620, 0x1e03e: 0x6c3efa20, 0x1e03f: 0x6d40d820, - // Block 0x781, offset 0x1e040 - 0x1e040: 0x6c2eec20, 0x1e041: 0x6cb12e20, 0x1e042: 0x6cc76020, 0x1e043: 0x6cab1020, - 0x1e044: 0x6ce38020, 0x1e045: 0x6c142020, 0x1e046: 0x6ce9ec20, 0x1e047: 0x6c65ee20, - 0x1e048: 0x6c29f420, 0x1e049: 0x6c25ca20, 0x1e04a: 0x6cb53a20, 0x1e04b: 0x6cdeb020, - 0x1e04c: 0x6cbae420, 0x1e04d: 0x6ca74020, 0x1e04e: 0x6c2ce020, 0x1e04f: 0x6ce38a20, - 0x1e050: 0x6c60ce20, 0x1e051: 0x6ca87e20, 0x1e052: 0x6cac7820, 0x1e053: 0x6c8e3a20, - 0x1e054: 0x6d29aa20, 0x1e055: 0x6c0a7a20, 0x1e056: 0x6c1cf220, 0x1e057: 0x6c931020, - 0x1e058: 0x6c8a4220, 0x1e059: 0x6c246e20, 0x1e05a: 0x6ce0da20, 0x1e05b: 0x6c27a420, - 0x1e05c: 0x6cdb5420, 0x1e05d: 0x6cf81e20, 0x1e05e: 0x6c7ce220, 0x1e05f: 0x6c5f7820, - 0x1e060: 0x6d34ae20, 0x1e061: 0x6cbaee20, 0x1e062: 0x6c2ba820, 0x1e063: 0x6cac8420, - 0x1e064: 0x6d3fd020, 0x1e065: 0x6c887020, 0x1e066: 0x6c085c20, 0x1e067: 0x6d2a2a20, - 0x1e068: 0x6ca74820, 0x1e069: 0x6c0d0220, 0x1e06a: 0x6ce9d220, 0x1e06b: 0x6c717e20, - 0x1e06c: 0x6c2ac020, 0x1e06d: 0x6c137020, 0x1e06e: 0x6cfaf420, 0x1e06f: 0x6c38dc20, - 0x1e070: 0x6c1ec820, 0x1e071: 0x6d37d820, 0x1e072: 0x6c33be20, 0x1e073: 0x6c0e9a20, - 0x1e074: 0x6c247420, 0x1e075: 0x6c247620, 0x1e076: 0x6c74f220, 0x1e077: 0x6c74f420, - 0x1e078: 0x6c8c7e20, 0x1e079: 0x6cde0620, 0x1e07a: 0x6cbbc420, 0x1e07b: 0x6c73bc20, - 0x1e07c: 0x6cb4a220, 0x1e07d: 0x6c89d420, 0x1e07e: 0x6c33c020, 0x1e07f: 0x6c249620, - // Block 0x782, offset 0x1e080 - 0x1e080: 0x6c7c1220, 0x1e081: 0x6d2a9c20, 0x1e082: 0x6c26d220, 0x1e083: 0x6c0abc20, - 0x1e084: 0x6c0abe20, 0x1e085: 0x6d3a3820, 0x1e086: 0x6c72be20, 0x1e087: 0x6c1ec020, - 0x1e088: 0x6cbc7020, 0x1e089: 0x6c33d020, 0x1e08a: 0x6c1e0820, 0x1e08b: 0x6c5f9620, - 0x1e08c: 0x6cf48e20, 0x1e08d: 0x6d271820, 0x1e08e: 0x6ca74c20, 0x1e08f: 0x6c8c8220, - 0x1e090: 0x6c8b7620, 0x1e091: 0x6d34c020, 0x1e092: 0x6c878220, 0x1e093: 0x6d376a20, - 0x1e094: 0x6c156e20, 0x1e095: 0x6c1ece20, 0x1e096: 0x6c32e820, 0x1e097: 0x6cf12420, - 0x1e098: 0x6c900620, 0x1e099: 0x6c8c8c20, 0x1e09a: 0x6cfb0e20, 0x1e09b: 0x6cf12e20, - 0x1e09c: 0x6d414020, 0x1e09d: 0x6c801220, 0x1e09e: 0x6d028e20, 0x1e09f: 0x6cc4fa20, - 0x1e0a0: 0x6cc95e20, 0x1e0a1: 0x6ca8ce20, 0x1e0a2: 0x6cdef620, 0x1e0a3: 0x6cc22c20, - 0x1e0a4: 0x6c6c1220, 0x1e0a5: 0x6c249a20, 0x1e0a6: 0x6c260620, 0x1e0a7: 0x6cf83020, - 0x1e0a8: 0x6c7cc620, 0x1e0a9: 0x6c753a20, 0x1e0aa: 0x6c8c9020, 0x1e0ab: 0x6ccfa420, - 0x1e0ac: 0x6c457e20, 0x1e0ad: 0x6c27d820, 0x1e0ae: 0x6c3c0a20, 0x1e0af: 0x6cc10820, - 0x1e0b0: 0x6ce3c220, 0x1e0b1: 0x6c349e20, 0x1e0b2: 0x6c34a020, 0x1e0b3: 0x6c459a20, - 0x1e0b4: 0x6c80da20, 0x1e0b5: 0x6cc60e20, 0x1e0b6: 0x6c95be20, 0x1e0b7: 0x6c007620, - 0x1e0b8: 0x6c5f2420, 0x1e0b9: 0x6c715220, 0x1e0ba: 0x6ce18020, 0x1e0bb: 0x6c79ae20, - 0x1e0bc: 0x6c81de20, 0x1e0bd: 0x6d0dd820, 0x1e0be: 0x6c9abc20, 0x1e0bf: 0x6c775c20, - // Block 0x783, offset 0x1e0c0 - 0x1e0c0: 0x6cc15420, 0x1e0c1: 0x6c90ce20, 0x1e0c2: 0x6c81ea20, 0x1e0c3: 0x6c34c020, - 0x1e0c4: 0x6d34b420, 0x1e0c5: 0x6d0f3c20, 0x1e0c6: 0x6ce3cc20, 0x1e0c7: 0x6c2a4e20, - 0x1e0c8: 0x6d1d7420, 0x1e0c9: 0x6d249a20, 0x1e0ca: 0x6c17ce20, 0x1e0cb: 0x6d0b8220, - 0x1e0cc: 0x6c4ade20, 0x1e0cd: 0x6c756420, 0x1e0ce: 0x6cf08220, 0x1e0cf: 0x6d269e20, - 0x1e0d0: 0x6d032c20, 0x1e0d1: 0x6c275420, 0x1e0d2: 0x6d078a20, 0x1e0d3: 0x6c393e20, - 0x1e0d4: 0x6cc5e420, 0x1e0d5: 0x6cccde20, 0x1e0d6: 0x6c7bc020, 0x1e0d7: 0x6cd4d620, - 0x1e0d8: 0x6cea5220, 0x1e0d9: 0x6c18c420, 0x1e0da: 0x6c276820, 0x1e0db: 0x6c361c20, - 0x1e0dc: 0x6ca34020, 0x1e0dd: 0x6cb5dc20, 0x1e0de: 0x6c98de20, 0x1e0df: 0x6cc86020, - 0x1e0e0: 0x6cc5ec20, 0x1e0e1: 0x6cb98c20, 0x1e0e2: 0x6d3ba620, 0x1e0e3: 0x6c52a020, - 0x1e0e4: 0x6c54d220, 0x1e0e5: 0x6cc19c20, 0x1e0e6: 0x6c7bfa20, 0x1e0e7: 0x6c2bfc20, - 0x1e0e8: 0x6c8d1220, 0x1e0e9: 0x6c277420, 0x1e0ea: 0x6c022c20, 0x1e0eb: 0x6d31e220, - 0x1e0ec: 0x6c395620, 0x1e0ed: 0x6c7baa20, 0x1e0ee: 0x6d102220, 0x1e0ef: 0x6cae7420, - 0x1e0f0: 0x6c072820, 0x1e0f1: 0x6c471420, 0x1e0f2: 0x6c471620, 0x1e0f3: 0x6cad5e20, - 0x1e0f4: 0x6d3b0420, 0x1e0f5: 0x6cc71020, 0x1e0f6: 0x6c364a20, 0x1e0f7: 0x6c038420, - 0x1e0f8: 0x6d38d420, 0x1e0f9: 0x6d353020, 0x1e0fa: 0x6d110020, 0x1e0fb: 0x6c780020, - 0x1e0fc: 0x6d17ca20, 0x1e0fd: 0x6d364420, 0x1e0fe: 0x6cd3a820, 0x1e0ff: 0x6cb2b820, - // Block 0x784, offset 0x1e100 - 0x1e100: 0x6c375e20, 0x1e101: 0x6c45f420, 0x1e102: 0x6c713a20, 0x1e103: 0x6c69a820, - 0x1e104: 0x6c49ee20, 0x1e105: 0x6c514c20, 0x1e106: 0x6c766420, 0x1e107: 0x6cc30820, - 0x1e108: 0x6d389420, 0x1e109: 0x6d293c20, 0x1e10a: 0x6d367220, 0x1e10b: 0x6ccef620, - 0x1e10c: 0x6c89c420, 0x1e10d: 0x6d23ae20, 0x1e10e: 0x6cce7c20, 0x1e10f: 0x6d1f5c20, - 0x1e110: 0x6ced9020, 0x1e111: 0x6d1af820, 0x1e112: 0x6d307420, 0x1e113: 0x6ced3e20, - 0x1e114: 0x6c3f7c20, 0x1e115: 0x6cbe5420, 0x1e116: 0x6d38a620, 0x1e117: 0x6ca60620, - 0x1e118: 0x6c838420, 0x1e119: 0x6d308420, 0x1e11a: 0x6d2e7a20, 0x1e11b: 0x6c89ca20, - 0x1e11c: 0x6d3e8220, 0x1e11d: 0x6c5aee20, 0x1e11e: 0x6cee3820, 0x1e11f: 0x6c21d220, - 0x1e120: 0x6c4ccc20, 0x1e121: 0x6c76e820, 0x1e122: 0x6d160a20, 0x1e123: 0x6caec220, - 0x1e124: 0x6cba7a20, 0x1e125: 0x6c4be620, 0x1e126: 0x6ca73a20, 0x1e127: 0x6cb2c820, - 0x1e128: 0x6c496020, 0x1e129: 0x6c075220, 0x1e12a: 0x6c950e20, 0x1e12b: 0x6cac0420, - 0x1e12c: 0x6c896c20, 0x1e12d: 0x6cc88020, 0x1e12e: 0x6cc76220, 0x1e12f: 0x6c631020, - 0x1e130: 0x6d0fda20, 0x1e131: 0x6cfba020, 0x1e132: 0x6c201020, 0x1e133: 0x6c23fe20, - 0x1e134: 0x6c211c20, 0x1e135: 0x6c443c20, 0x1e136: 0x6d1f7220, 0x1e137: 0x6c52cc20, - 0x1e138: 0x6cd50820, 0x1e139: 0x6c405820, 0x1e13a: 0x6d3e9420, 0x1e13b: 0x6c3efc20, - 0x1e13c: 0x6cf16820, 0x1e13d: 0x6c07cc20, 0x1e13e: 0x6d2e2020, 0x1e13f: 0x6d21c020, - // Block 0x785, offset 0x1e140 - 0x1e140: 0x6cf16a20, 0x1e141: 0x6ce1f420, 0x1e142: 0x6c47dc20, 0x1e143: 0x6d319e20, - 0x1e144: 0x6cfa0220, 0x1e145: 0x6d25b820, 0x1e146: 0x6c931220, 0x1e147: 0x6c689e20, - 0x1e148: 0x6c178620, 0x1e149: 0x6d3bb420, 0x1e14a: 0x6cf0f820, 0x1e14b: 0x6c5d0420, - 0x1e14c: 0x6d098c20, 0x1e14d: 0x6d30b820, 0x1e14e: 0x6c69d020, 0x1e14f: 0x6d2e9020, - 0x1e150: 0x6c102620, 0x1e151: 0x6c81c620, 0x1e152: 0x6c3ba820, 0x1e153: 0x6c386a20, - 0x1e154: 0x6c8bfc20, 0x1e155: 0x6c445220, 0x1e156: 0x6ccb8e20, 0x1e157: 0x6c76fc20, - 0x1e158: 0x6c58be20, 0x1e159: 0x6d162820, 0x1e15a: 0x6c60f020, 0x1e15b: 0x6d3cc020, - 0x1e15c: 0x6c377820, 0x1e15d: 0x6d246820, 0x1e15e: 0x6c671c20, 0x1e15f: 0x6c52e020, - 0x1e160: 0x6c829220, 0x1e161: 0x6cae2c20, 0x1e162: 0x6c878420, 0x1e163: 0x6c879a20, - 0x1e164: 0x6c91a020, 0x1e165: 0x6c8c9220, 0x1e166: 0x6c17ca20, 0x1e167: 0x6d0b6a20, - 0x1e168: 0x6c4ac020, 0x1e169: 0x6d077a20, 0x1e16a: 0x6c272a20, 0x1e16b: 0x6cc5ca20, - 0x1e16c: 0x6d3ba020, 0x1e16d: 0x6c35e220, 0x1e16e: 0x6c94e020, 0x1e16f: 0x6cc85420, - 0x1e170: 0x6c529820, 0x1e171: 0x6c46fa20, 0x1e172: 0x6c77ec20, 0x1e173: 0x6c914820, - 0x1e174: 0x6d38d020, 0x1e175: 0x6d350a20, 0x1e176: 0x6d171020, 0x1e177: 0x6c54b220, - 0x1e178: 0x6d31c420, 0x1e179: 0x6c85ba20, 0x1e17a: 0x6d10dc20, 0x1e17b: 0x6cbe3620, - 0x1e17c: 0x6cd36220, 0x1e17d: 0x6d293420, 0x1e17e: 0x6d35d020, 0x1e17f: 0x6c699620, - // Block 0x786, offset 0x1e180 - 0x1e180: 0x6d386c20, 0x1e181: 0x6cc2d020, 0x1e182: 0x6c922e20, 0x1e183: 0x6c699820, - 0x1e184: 0x6d305420, 0x1e185: 0x6c3f6020, 0x1e186: 0x6c89b220, 0x1e187: 0x6ca72a20, - 0x1e188: 0x6c072a20, 0x1e189: 0x6c5abc20, 0x1e18a: 0x6c4bcc20, 0x1e18b: 0x6cee2620, - 0x1e18c: 0x6c895820, 0x1e18d: 0x6c21c420, 0x1e18e: 0x6d3e4820, 0x1e18f: 0x6c23f420, - 0x1e190: 0x6c3eae20, 0x1e191: 0x6c630c20, 0x1e192: 0x6cf15e20, 0x1e193: 0x6cd4f020, - 0x1e194: 0x6cae2020, 0x1e195: 0x6d259a20, 0x1e196: 0x6cf9e220, 0x1e197: 0x6ca72e20, - 0x1e198: 0x6c92c420, 0x1e199: 0x6d309420, 0x1e19a: 0x6c8be220, 0x1e19b: 0x6d02ae20, - 0x1e19c: 0x6c471820, 0x1e19d: 0x6c224a20, 0x1e19e: 0x6c225220, 0x1e19f: 0x6cb0a820, - 0x1e1a0: 0x6d41ba20, 0x1e1a1: 0x6c0bb020, 0x1e1a2: 0x6c7e8e20, 0x1e1a3: 0x6c7e9020, - 0x1e1a4: 0x6c226020, 0x1e1a5: 0x6d08ea20, 0x1e1a6: 0x6c050620, 0x1e1a7: 0x6c0bc020, - 0x1e1a8: 0x6c0bc220, 0x1e1a9: 0x6c0bc420, 0x1e1aa: 0x6d08ec20, 0x1e1ab: 0x6c0bcc20, - 0x1e1ac: 0x6c04a820, 0x1e1ad: 0x6c227e20, 0x1e1ae: 0x6c0bd620, 0x1e1af: 0x6c0bda20, - 0x1e1b0: 0x6c18a020, 0x1e1b1: 0x6cc7fc20, 0x1e1b2: 0x6ca9bc20, 0x1e1b3: 0x6ca9c220, - 0x1e1b4: 0x6c160420, 0x1e1b5: 0x6c21a820, 0x1e1b6: 0x6c21a420, 0x1e1b7: 0x6d198820, - 0x1e1b8: 0x6cc61820, 0x1e1b9: 0x6c0ae820, 0x1e1ba: 0x6c0aea20, 0x1e1bb: 0x6cd22e20, - 0x1e1bc: 0x6cc83220, 0x1e1bd: 0x6c89d620, 0x1e1be: 0x6c267620, 0x1e1bf: 0x6c14b620, - // Block 0x787, offset 0x1e1c0 - 0x1e1c0: 0x6c416420, 0x1e1c1: 0x6cb8a020, 0x1e1c2: 0x6d207620, 0x1e1c3: 0x6d207820, - 0x1e1c4: 0x6cb73420, 0x1e1c5: 0x6d0a6820, 0x1e1c6: 0x6d145820, 0x1e1c7: 0x6c4ce420, - 0x1e1c8: 0x6c972020, 0x1e1c9: 0x6cb4ca20, 0x1e1ca: 0x6d288620, 0x1e1cb: 0x6cee4a20, - 0x1e1cc: 0x6ce91e20, 0x1e1cd: 0x6d3cca20, 0x1e1ce: 0x6d1c5820, 0x1e1cf: 0x6ce3d620, - 0x1e1d0: 0x6d281620, 0x1e1d1: 0x6c6cd620, 0x1e1d2: 0x6c4f5c20, 0x1e1d3: 0x6d0b7a20, - 0x1e1d4: 0x6c390620, 0x1e1d5: 0x6cf4b020, 0x1e1d6: 0x6c267820, 0x1e1d7: 0x6c354c20, - 0x1e1d8: 0x6c4d1c20, 0x1e1d9: 0x6d30e420, 0x1e1da: 0x6d384c20, 0x1e1db: 0x6c6cd820, - 0x1e1dc: 0x6d25de20, 0x1e1dd: 0x6ceee420, 0x1e1de: 0x6c87ee20, 0x1e1df: 0x6c1b0220, - 0x1e1e0: 0x6c180420, 0x1e1e1: 0x6ca68020, 0x1e1e2: 0x6ce57420, 0x1e1e3: 0x6d359020, - 0x1e1e4: 0x6d147c20, 0x1e1e5: 0x6c6efc20, 0x1e1e6: 0x6c633220, 0x1e1e7: 0x6c18a620, - 0x1e1e8: 0x6c273a20, 0x1e1e9: 0x6c378820, 0x1e1ea: 0x6c2b5e20, 0x1e1eb: 0x6cb36a20, - 0x1e1ec: 0x6d3ab620, 0x1e1ed: 0x6c2e6420, 0x1e1ee: 0x6d2ab020, 0x1e1ef: 0x6ce20620, - 0x1e1f0: 0x6cd5a220, 0x1e1f1: 0x6ceaf620, 0x1e1f2: 0x6cc28620, 0x1e1f3: 0x6c6e5020, - 0x1e1f4: 0x6c5b2a20, 0x1e1f5: 0x6c306820, 0x1e1f6: 0x6d203420, 0x1e1f7: 0x6c9c4020, - 0x1e1f8: 0x6c083c20, 0x1e1f9: 0x6c5e9c20, 0x1e1fa: 0x6ca39c20, 0x1e1fb: 0x6d14b220, - 0x1e1fc: 0x6c6a9a20, 0x1e1fd: 0x6d3c5820, 0x1e1fe: 0x6c8ade20, 0x1e1ff: 0x6d0a7420, - // Block 0x788, offset 0x1e200 - 0x1e200: 0x6ce9f620, 0x1e201: 0x6cd98420, 0x1e202: 0x6cd34a20, 0x1e203: 0x6ce20e20, - 0x1e204: 0x6cacf820, 0x1e205: 0x6c546820, 0x1e206: 0x6ca68a20, 0x1e207: 0x6c33e420, - 0x1e208: 0x6c6f0420, 0x1e209: 0x6d084620, 0x1e20a: 0x6d0a7620, 0x1e20b: 0x6c101220, - 0x1e20c: 0x6d1e9c20, 0x1e20d: 0x6cfeac20, 0x1e20e: 0x6cc03a20, 0x1e20f: 0x6ce82420, - 0x1e210: 0x6d3a0a20, 0x1e211: 0x6cc03c20, 0x1e212: 0x6c2c3420, 0x1e213: 0x6c2c3620, - 0x1e214: 0x6ce89a20, 0x1e215: 0x6c6e6c20, 0x1e216: 0x6ce3e620, 0x1e217: 0x6c310a20, - 0x1e218: 0x6d15e020, 0x1e219: 0x6d30ee20, 0x1e21a: 0x6ce6f220, 0x1e21b: 0x6c4a2020, - 0x1e21c: 0x6cf4da20, 0x1e21d: 0x6cd36420, 0x1e21e: 0x6c1a6a20, 0x1e21f: 0x6cda9820, - 0x1e220: 0x6d2a7a20, 0x1e221: 0x6cc43620, 0x1e222: 0x6c3ca420, 0x1e223: 0x6c87fa20, - 0x1e224: 0x6cddc820, 0x1e225: 0x6c5b3220, 0x1e226: 0x6c850e20, 0x1e227: 0x6c483620, - 0x1e228: 0x6c7f0220, 0x1e229: 0x6c07b820, 0x1e22a: 0x6c262420, 0x1e22b: 0x6c743e20, - 0x1e22c: 0x6c083e20, 0x1e22d: 0x6c591820, 0x1e22e: 0x6c271620, 0x1e22f: 0x6c924a20, - 0x1e230: 0x6d1f3220, 0x1e231: 0x6d387c20, 0x1e232: 0x6c6d0820, 0x1e233: 0x6d232620, - 0x1e234: 0x6c219620, 0x1e235: 0x6c7c6820, 0x1e236: 0x6cee7620, 0x1e237: 0x6ce3f020, - 0x1e238: 0x6d178420, 0x1e239: 0x6c26a220, 0x1e23a: 0x6d25e620, 0x1e23b: 0x6c954420, - 0x1e23c: 0x6c087420, 0x1e23d: 0x6caaf220, 0x1e23e: 0x6d213a20, 0x1e23f: 0x6c296a20, - // Block 0x789, offset 0x1e240 - 0x1e240: 0x6cdbf620, 0x1e241: 0x6c33f420, 0x1e242: 0x6cdc4220, 0x1e243: 0x6d0d9820, - 0x1e244: 0x6c1ffc20, 0x1e245: 0x6c1b2c20, 0x1e246: 0x6ce33420, 0x1e247: 0x6d235c20, - 0x1e248: 0x6cd26c20, 0x1e249: 0x6d315a20, 0x1e24a: 0x6d1f4020, 0x1e24b: 0x6d283820, - 0x1e24c: 0x6c364c20, 0x1e24d: 0x6c0ba420, 0x1e24e: 0x6c4cec20, 0x1e24f: 0x6c364e20, - 0x1e250: 0x6cf9ca20, 0x1e251: 0x6c59ca20, 0x1e252: 0x6cc07020, 0x1e253: 0x6c2a1820, - 0x1e254: 0x6c26ac20, 0x1e255: 0x6cef1620, 0x1e256: 0x6ca45020, 0x1e257: 0x6d150820, - 0x1e258: 0x6c46be20, 0x1e259: 0x6d111620, 0x1e25a: 0x6c1e4620, 0x1e25b: 0x6c8e7420, - 0x1e25c: 0x6d0a9820, 0x1e25d: 0x6cde6c20, 0x1e25e: 0x6c2c7420, 0x1e25f: 0x6c1b4020, - 0x1e260: 0x6d25ec20, 0x1e261: 0x6cdada20, 0x1e262: 0x6cde6e20, 0x1e263: 0x6cba1420, - 0x1e264: 0x6c96f220, 0x1e265: 0x6d111820, 0x1e266: 0x6c499c20, 0x1e267: 0x6d2ed220, - 0x1e268: 0x6c025820, 0x1e269: 0x6cd3bc20, 0x1e26a: 0x6c10ea20, 0x1e26b: 0x6c1c4e20, - 0x1e26c: 0x6cdaf620, 0x1e26d: 0x6d2a1c20, 0x1e26e: 0x6d300420, 0x1e26f: 0x6c340220, - 0x1e270: 0x6c2c8820, 0x1e271: 0x6c90ac20, 0x1e272: 0x6c1b5020, 0x1e273: 0x6c25c220, - 0x1e274: 0x6c8bd620, 0x1e275: 0x6d41f020, 0x1e276: 0x6cc54820, 0x1e277: 0x6cb91820, - 0x1e278: 0x6d085820, 0x1e279: 0x6d23d620, 0x1e27a: 0x6d154e20, 0x1e27b: 0x6cf51c20, - 0x1e27c: 0x6c8a1620, 0x1e27d: 0x6c729820, 0x1e27e: 0x6cd3e220, 0x1e27f: 0x6c0a6020, - // Block 0x78a, offset 0x1e280 - 0x1e280: 0x6d10bc20, 0x1e281: 0x6c974220, 0x1e282: 0x6d022220, 0x1e283: 0x6cdc9420, - 0x1e284: 0x6c4d2a20, 0x1e285: 0x6d2d9e20, 0x1e286: 0x6ce2b020, 0x1e287: 0x6c37aa20, - 0x1e288: 0x6c9ea220, 0x1e289: 0x6c0b0c20, 0x1e28a: 0x6c0b1420, 0x1e28b: 0x6c7e5220, - 0x1e28c: 0x6c847a20, 0x1e28d: 0x6d25c820, 0x1e28e: 0x6d117620, 0x1e28f: 0x6c957c20, - 0x1e290: 0x6c854c20, 0x1e291: 0x6d169e20, 0x1e292: 0x6ce65a20, 0x1e293: 0x6c2ad420, - 0x1e294: 0x6cb6c420, 0x1e295: 0x6d1d8220, 0x1e296: 0x6cccb420, 0x1e297: 0x6c4dc820, - 0x1e298: 0x6d20a420, 0x1e299: 0x6c982220, 0x1e29a: 0x6cc78820, 0x1e29b: 0x6cbef620, - 0x1e29c: 0x6cedb420, 0x1e29d: 0x6c7bd620, 0x1e29e: 0x6c3d3620, 0x1e29f: 0x6c777a20, - 0x1e2a0: 0x6c0d2020, 0x1e2a1: 0x6c398220, 0x1e2a2: 0x6d03bc20, 0x1e2a3: 0x6ca30220, - 0x1e2a4: 0x6d02a620, 0x1e2a5: 0x6cd04220, 0x1e2a6: 0x6c051620, 0x1e2a7: 0x6d253620, - 0x1e2a8: 0x6c259020, 0x1e2a9: 0x6c5d8a20, 0x1e2aa: 0x6d006a20, 0x1e2ab: 0x6c052c20, - 0x1e2ac: 0x6cf34e20, 0x1e2ad: 0x6c720220, 0x1e2ae: 0x6d1ef620, 0x1e2af: 0x6c4dd020, - 0x1e2b0: 0x6cdf1220, 0x1e2b1: 0x6cbf9820, 0x1e2b2: 0x6c092220, 0x1e2b3: 0x6caf2e20, - 0x1e2b4: 0x6c0dbe20, 0x1e2b5: 0x6ccec620, 0x1e2b6: 0x6c06de20, 0x1e2b7: 0x6cec1020, - 0x1e2b8: 0x6c2bd020, 0x1e2b9: 0x6d404620, 0x1e2ba: 0x6d12c820, 0x1e2bb: 0x6c8b9e20, - 0x1e2bc: 0x6c7b8820, 0x1e2bd: 0x6c4a3c20, 0x1e2be: 0x6d398620, 0x1e2bf: 0x6cd19e20, - // Block 0x78b, offset 0x1e2c0 - 0x1e2c0: 0x6c7a2c20, 0x1e2c1: 0x6d22dc20, 0x1e2c2: 0x6c40e020, 0x1e2c3: 0x6c50ce20, - 0x1e2c4: 0x6cbc9a20, 0x1e2c5: 0x6d359420, 0x1e2c6: 0x6c5fe620, 0x1e2c7: 0x6c585c20, - 0x1e2c8: 0x6c545e20, 0x1e2c9: 0x6d03c820, 0x1e2ca: 0x6c682a20, 0x1e2cb: 0x6cf76a20, - 0x1e2cc: 0x6c4a7620, 0x1e2cd: 0x6caab420, 0x1e2ce: 0x6c80a220, 0x1e2cf: 0x6c63a620, - 0x1e2d0: 0x6c7b1420, 0x1e2d1: 0x6d333e20, 0x1e2d2: 0x6c813820, 0x1e2d3: 0x6d281e20, - 0x1e2d4: 0x6d0c6c20, 0x1e2d5: 0x6c19c220, 0x1e2d6: 0x6c30fc20, 0x1e2d7: 0x6cf5ae20, - 0x1e2d8: 0x6c935220, 0x1e2d9: 0x6c3f4e20, 0x1e2da: 0x6cf3aa20, 0x1e2db: 0x6c3e2620, - 0x1e2dc: 0x6c433e20, 0x1e2dd: 0x6c500a20, 0x1e2de: 0x6c80a420, 0x1e2df: 0x6c63aa20, - 0x1e2e0: 0x6c44f020, 0x1e2e1: 0x6c759a20, 0x1e2e2: 0x6d1ce220, 0x1e2e3: 0x6c0eca20, - 0x1e2e4: 0x6cf86820, 0x1e2e5: 0x6c06f420, 0x1e2e6: 0x6c85bc20, 0x1e2e7: 0x6d279220, - 0x1e2e8: 0x6c108c20, 0x1e2e9: 0x6cff7a20, 0x1e2ea: 0x6cb4e020, 0x1e2eb: 0x6cafd420, - 0x1e2ec: 0x6cbe3c20, 0x1e2ed: 0x6c4c1a20, 0x1e2ee: 0x6d386e20, 0x1e2ef: 0x6cdfd820, - 0x1e2f0: 0x6d404c20, 0x1e2f1: 0x6cb27e20, 0x1e2f2: 0x6c7ef020, 0x1e2f3: 0x6ca5d020, - 0x1e2f4: 0x6c186220, 0x1e2f5: 0x6d1f2420, 0x1e2f6: 0x6c10b420, 0x1e2f7: 0x6cfd6820, - 0x1e2f8: 0x6c27d020, 0x1e2f9: 0x6c711e20, 0x1e2fa: 0x6d1dba20, 0x1e2fb: 0x6cbb7420, - 0x1e2fc: 0x6d13ea20, 0x1e2fd: 0x6c30a620, 0x1e2fe: 0x6d0d7220, 0x1e2ff: 0x6c99f220, - // Block 0x78c, offset 0x1e300 - 0x1e300: 0x6cc91a20, 0x1e301: 0x6c071820, 0x1e302: 0x6c361e20, 0x1e303: 0x6cd4d820, - 0x1e304: 0x6c735e20, 0x1e305: 0x6d225220, 0x1e306: 0x6d282820, 0x1e307: 0x6c53f420, - 0x1e308: 0x6c7c6a20, 0x1e309: 0x6cfd6e20, 0x1e30a: 0x6cfd7020, 0x1e30b: 0x6cd9a820, - 0x1e30c: 0x6ce0f820, 0x1e30d: 0x6ca00220, 0x1e30e: 0x6cf63220, 0x1e30f: 0x6cc7fe20, - 0x1e310: 0x6c1f4c20, 0x1e311: 0x6d3e4a20, 0x1e312: 0x6d405820, 0x1e313: 0x6d12f820, - 0x1e314: 0x6cf36c20, 0x1e315: 0x6cfd7c20, 0x1e316: 0x6d27a820, 0x1e317: 0x6c504220, - 0x1e318: 0x6d1d9220, 0x1e319: 0x6c08e620, 0x1e31a: 0x6c998820, 0x1e31b: 0x6c176420, - 0x1e31c: 0x6c3d8620, 0x1e31d: 0x6c8a6e20, 0x1e31e: 0x6d1a7820, 0x1e31f: 0x6d3b8020, - 0x1e320: 0x6c56a820, 0x1e321: 0x6cbb8220, 0x1e322: 0x6d0c1820, 0x1e323: 0x6d2ebc20, - 0x1e324: 0x6c97e020, 0x1e325: 0x6cbb8420, 0x1e326: 0x6d065020, 0x1e327: 0x6c2adc20, - 0x1e328: 0x6c0a9c20, 0x1e329: 0x6d0a2820, 0x1e32a: 0x6c0a0c20, 0x1e32b: 0x6d2b8420, - 0x1e32c: 0x6cef2620, 0x1e32d: 0x6d335820, 0x1e32e: 0x6c99a820, 0x1e32f: 0x6ccd9620, - 0x1e330: 0x6c8bc820, 0x1e331: 0x6cb33420, 0x1e332: 0x6c27f020, 0x1e333: 0x6c9b4020, - 0x1e334: 0x6d133220, 0x1e335: 0x6c12b820, 0x1e336: 0x6c7b3620, 0x1e337: 0x6c3c6420, - 0x1e338: 0x6c9b4220, 0x1e339: 0x6d406420, 0x1e33a: 0x6c7c0220, 0x1e33b: 0x6c88d020, - 0x1e33c: 0x6d29a220, 0x1e33d: 0x6c153020, 0x1e33e: 0x6d1eb820, 0x1e33f: 0x6c5f6420, - // Block 0x78d, offset 0x1e340 - 0x1e340: 0x6d0ed820, 0x1e341: 0x6c154820, 0x1e342: 0x6c25f820, 0x1e343: 0x6c8d8820, - 0x1e344: 0x6c583a20, 0x1e345: 0x6cf74020, 0x1e346: 0x6c3c7820, 0x1e347: 0x6d29b620, - 0x1e348: 0x6c875820, 0x1e349: 0x6d1fa420, 0x1e34a: 0x6c2f5a20, 0x1e34b: 0x6cc02020, - 0x1e34c: 0x6d3d4020, 0x1e34d: 0x6cae1820, 0x1e34e: 0x6d391e20, 0x1e34f: 0x6d15e220, - 0x1e350: 0x6c418e20, 0x1e351: 0x6d20fe20, 0x1e352: 0x6c6fba20, 0x1e353: 0x6d0d7420, - 0x1e354: 0x6d41ae20, 0x1e355: 0x6c98e020, 0x1e356: 0x6d323e20, 0x1e357: 0x6d06c820, - 0x1e358: 0x6c311820, 0x1e359: 0x6d315420, 0x1e35a: 0x6c3b3020, 0x1e35b: 0x6d263e20, - 0x1e35c: 0x6c40ae20, 0x1e35d: 0x6d282a20, 0x1e35e: 0x6cdf7220, 0x1e35f: 0x6ce46a20, - 0x1e360: 0x6cb83a20, 0x1e361: 0x6ceb2c20, 0x1e362: 0x6c243e20, 0x1e363: 0x6c4da820, - 0x1e364: 0x6c471a20, 0x1e365: 0x6cda5020, 0x1e366: 0x6c37ee20, 0x1e367: 0x6c1dc620, - 0x1e368: 0x6d293e20, 0x1e369: 0x6ca03a20, 0x1e36a: 0x6c81d620, 0x1e36b: 0x6c21ca20, - 0x1e36c: 0x6c1e4e20, 0x1e36d: 0x6d205020, 0x1e36e: 0x6ce76020, 0x1e36f: 0x6d353c20, - 0x1e370: 0x6cfab420, 0x1e371: 0x6c67ec20, 0x1e372: 0x6c1a3020, 0x1e373: 0x6d1b6c20, - 0x1e374: 0x6ce8e220, 0x1e375: 0x6c69b220, 0x1e376: 0x6c9a1a20, 0x1e377: 0x6c7aa420, - 0x1e378: 0x6cdb8820, 0x1e379: 0x6c833c20, 0x1e37a: 0x6cb44420, 0x1e37b: 0x6d41c220, - 0x1e37c: 0x6c4d4420, 0x1e37d: 0x6d0e9c20, 0x1e37e: 0x6ccc8c20, 0x1e37f: 0x6ca77e20, - // Block 0x78e, offset 0x1e380 - 0x1e380: 0x6cef3420, 0x1e381: 0x6c92c620, 0x1e382: 0x6c803620, 0x1e383: 0x6d0c2c20, - 0x1e384: 0x6ce23820, 0x1e385: 0x6cadc220, 0x1e386: 0x6d2e1220, 0x1e387: 0x6c215e20, - 0x1e388: 0x6ce00a20, 0x1e389: 0x6d41ca20, 0x1e38a: 0x6d3ca620, 0x1e38b: 0x6c246020, - 0x1e38c: 0x6c7d8220, 0x1e38d: 0x6ce38220, 0x1e38e: 0x6cfba220, 0x1e38f: 0x6c317620, - 0x1e390: 0x6c55c420, 0x1e391: 0x6d065c20, 0x1e392: 0x6d040820, 0x1e393: 0x6ce07c20, - 0x1e394: 0x6cc09a20, 0x1e395: 0x6c216420, 0x1e396: 0x6d285a20, 0x1e397: 0x6cb3a620, - 0x1e398: 0x6c783620, 0x1e399: 0x6cd9e620, 0x1e39a: 0x6c9c7620, 0x1e39b: 0x6cc31820, - 0x1e39c: 0x6c1e3220, 0x1e39d: 0x6c25cc20, 0x1e39e: 0x6d285e20, 0x1e39f: 0x6d1e7e20, - 0x1e3a0: 0x6c022220, 0x1e3a1: 0x6d2ce420, 0x1e3a2: 0x6c4d4a20, 0x1e3a3: 0x6ce14a20, - 0x1e3a4: 0x6c680020, 0x1e3a5: 0x6cb1a220, 0x1e3a6: 0x6c191820, 0x1e3a7: 0x6d244020, - 0x1e3a8: 0x6c846620, 0x1e3a9: 0x6d2a2c20, 0x1e3aa: 0x6c818620, 0x1e3ab: 0x6d142c20, - 0x1e3ac: 0x6c680a20, 0x1e3ad: 0x6c102820, 0x1e3ae: 0x6c69d420, 0x1e3af: 0x6cf71e20, - 0x1e3b0: 0x6ce03c20, 0x1e3b1: 0x6c37f220, 0x1e3b2: 0x6ca9dc20, 0x1e3b3: 0x6d193620, - 0x1e3b4: 0x6c854620, 0x1e3b5: 0x6c72c020, 0x1e3b6: 0x6d0efc20, 0x1e3b7: 0x6d193820, - 0x1e3b8: 0x6ca78020, 0x1e3b9: 0x6cc7ec20, 0x1e3ba: 0x6d09cc20, 0x1e3bb: 0x6c1e0a20, - 0x1e3bc: 0x6d0f1220, 0x1e3bd: 0x6c8db420, 0x1e3be: 0x6c9cc820, 0x1e3bf: 0x6c9cca20, - // Block 0x78f, offset 0x1e3c0 - 0x1e3c0: 0x6ca78420, 0x1e3c1: 0x6d036020, 0x1e3c2: 0x6c69ea20, 0x1e3c3: 0x6ccc9620, - 0x1e3c4: 0x6c9cd420, 0x1e3c5: 0x6d0f2420, 0x1e3c6: 0x6c0b7820, 0x1e3c7: 0x6c111e20, - 0x1e3c8: 0x6cd37620, 0x1e3c9: 0x6d204a20, 0x1e3ca: 0x6cd39220, 0x1e3cb: 0x6cd40220, - 0x1e3cc: 0x6c84fc20, 0x1e3cd: 0x6d382020, 0x1e3ce: 0x6d12aa20, 0x1e3cf: 0x6c89c020, - 0x1e3d0: 0x6c847c20, 0x1e3d1: 0x6c6c2e20, 0x1e3d2: 0x6c6d7c20, 0x1e3d3: 0x6cc02220, - 0x1e3d4: 0x6d15d820, 0x1e3d5: 0x6c8a6c20, 0x1e3d6: 0x6c29c020, 0x1e3d7: 0x6d2f6220, - 0x1e3d8: 0x6c2f5c20, 0x1e3d9: 0x6cb38220, 0x1e3da: 0x6cc04220, 0x1e3db: 0x6c034220, - 0x1e3dc: 0x6c3f5620, 0x1e3dd: 0x6d314820, 0x1e3de: 0x6d344a20, 0x1e3df: 0x6c034420, - 0x1e3e0: 0x6c949820, 0x1e3e1: 0x6c3f5820, 0x1e3e2: 0x6ca3a020, 0x1e3e3: 0x6c2e2020, - 0x1e3e4: 0x6ccd8620, 0x1e3e5: 0x6cbc2220, 0x1e3e6: 0x6c79ea20, 0x1e3e7: 0x6c203420, - 0x1e3e8: 0x6d3f0e20, 0x1e3e9: 0x6c390e20, 0x1e3ea: 0x6c573620, 0x1e3eb: 0x6c573820, - 0x1e3ec: 0x6c4eb820, 0x1e3ed: 0x6c427c20, 0x1e3ee: 0x6cb5de20, 0x1e3ef: 0x6c985c20, - 0x1e3f0: 0x6cc64620, 0x1e3f1: 0x6c2c5220, 0x1e3f2: 0x6cd8be20, 0x1e3f3: 0x6cf87e20, - 0x1e3f4: 0x6d178620, 0x1e3f5: 0x6c146620, 0x1e3f6: 0x6cd1b620, 0x1e3f7: 0x6ce91a20, - 0x1e3f8: 0x6cf60620, 0x1e3f9: 0x6caa7420, 0x1e3fa: 0x6cb8dc20, 0x1e3fb: 0x6cc0c020, - 0x1e3fc: 0x6c668420, 0x1e3fd: 0x6cb09a20, 0x1e3fe: 0x6d128220, 0x1e3ff: 0x6c6c4820, - // Block 0x790, offset 0x1e400 - 0x1e400: 0x6c03a020, 0x1e401: 0x6c399620, 0x1e402: 0x6c18d020, 0x1e403: 0x6d03ee20, - 0x1e404: 0x6c30ee20, 0x1e405: 0x6d26c220, 0x1e406: 0x6cb8e620, 0x1e407: 0x6c3d7820, - 0x1e408: 0x6caf6820, 0x1e409: 0x6ca34820, 0x1e40a: 0x6d02d820, 0x1e40b: 0x6c356e20, - 0x1e40c: 0x6c746020, 0x1e40d: 0x6c33f820, 0x1e40e: 0x6c464c20, 0x1e40f: 0x6d1ae620, - 0x1e410: 0x6cb99a20, 0x1e411: 0x6c04ce20, 0x1e412: 0x6cc97620, 0x1e413: 0x6cc57220, - 0x1e414: 0x6c174a20, 0x1e415: 0x6ca99620, 0x1e416: 0x6c3b3220, 0x1e417: 0x6d27ec20, - 0x1e418: 0x6c614620, 0x1e419: 0x6cbd7820, 0x1e41a: 0x6caf6a20, 0x1e41b: 0x6c4c2020, - 0x1e41c: 0x6c535a20, 0x1e41d: 0x6d1a6c20, 0x1e41e: 0x6c757220, 0x1e41f: 0x6cd1ca20, - 0x1e420: 0x6d17ce20, 0x1e421: 0x6d37ba20, 0x1e422: 0x6cf7f020, 0x1e423: 0x6c413a20, - 0x1e424: 0x6cc64820, 0x1e425: 0x6c5d8e20, 0x1e426: 0x6cdf7620, 0x1e427: 0x6c778820, - 0x1e428: 0x6d264020, 0x1e429: 0x6c934a20, 0x1e42a: 0x6c365020, 0x1e42b: 0x6cf21c20, - 0x1e42c: 0x6c345420, 0x1e42d: 0x6d3e7220, 0x1e42e: 0x6ca64020, 0x1e42f: 0x6ce8d020, - 0x1e430: 0x6cd3aa20, 0x1e431: 0x6c9f6820, 0x1e432: 0x6c472220, 0x1e433: 0x6c780e20, - 0x1e434: 0x6c8d2420, 0x1e435: 0x6c0dec20, 0x1e436: 0x6cd8d020, 0x1e437: 0x6c47a420, - 0x1e438: 0x6c0f1c20, 0x1e439: 0x6caf7820, 0x1e43a: 0x6d238420, 0x1e43b: 0x6cd8d220, - 0x1e43c: 0x6d424820, 0x1e43d: 0x6c101820, 0x1e43e: 0x6d1f5020, 0x1e43f: 0x6ce4b020, - // Block 0x791, offset 0x1e440 - 0x1e440: 0x6c642220, 0x1e441: 0x6d317620, 0x1e442: 0x6cd2d420, 0x1e443: 0x6cd3ac20, - 0x1e444: 0x6d347a20, 0x1e445: 0x6c725220, 0x1e446: 0x6c14d220, 0x1e447: 0x6cd1da20, - 0x1e448: 0x6cd1dc20, 0x1e449: 0x6d089e20, 0x1e44a: 0x6d2f6820, 0x1e44b: 0x6c065420, - 0x1e44c: 0x6c514e20, 0x1e44d: 0x6c09e620, 0x1e44e: 0x6cd10e20, 0x1e44f: 0x6c1e9620, - 0x1e450: 0x6cd27820, 0x1e451: 0x6c0f1e20, 0x1e452: 0x6d3b0e20, 0x1e453: 0x6c1c3820, - 0x1e454: 0x6d289220, 0x1e455: 0x6cb31420, 0x1e456: 0x6ce76220, 0x1e457: 0x6cb9aa20, - 0x1e458: 0x6c3eb020, 0x1e459: 0x6d2d3020, 0x1e45a: 0x6c8f0c20, 0x1e45b: 0x6cb8f820, - 0x1e45c: 0x6c3eb220, 0x1e45d: 0x6c864020, 0x1e45e: 0x6d26ca20, 0x1e45f: 0x6caf7a20, - 0x1e460: 0x6d0f5e20, 0x1e461: 0x6c04fe20, 0x1e462: 0x6c0e8020, 0x1e463: 0x6c6b0020, - 0x1e464: 0x6c465420, 0x1e465: 0x6cd5ec20, 0x1e466: 0x6d32da20, 0x1e467: 0x6ca24c20, - 0x1e468: 0x6cf7f220, 0x1e469: 0x6cf7f420, 0x1e46a: 0x6c2c7620, 0x1e46b: 0x6c637420, - 0x1e46c: 0x6ca29e20, 0x1e46d: 0x6ce06420, 0x1e46e: 0x6c588820, 0x1e46f: 0x6d15f220, - 0x1e470: 0x6cd7fa20, 0x1e471: 0x6c7bfe20, 0x1e472: 0x6c761e20, 0x1e473: 0x6c06ce20, - 0x1e474: 0x6c66a020, 0x1e475: 0x6ce77020, 0x1e476: 0x6d03f420, 0x1e477: 0x6c537820, - 0x1e478: 0x6c691c20, 0x1e479: 0x6c1bbc20, 0x1e47a: 0x6c37d820, 0x1e47b: 0x6c961a20, - 0x1e47c: 0x6c0dee20, 0x1e47d: 0x6cd3be20, 0x1e47e: 0x6ca1dc20, 0x1e47f: 0x6c637820, - // Block 0x792, offset 0x1e480 - 0x1e480: 0x6d1a8620, 0x1e481: 0x6c757c20, 0x1e482: 0x6d389e20, 0x1e483: 0x6c1d5620, - 0x1e484: 0x6cfdf620, 0x1e485: 0x6ce77220, 0x1e486: 0x6ca14220, 0x1e487: 0x6c833e20, - 0x1e488: 0x6c5f0e20, 0x1e489: 0x6d23b020, 0x1e48a: 0x6d071e20, 0x1e48b: 0x6cc57820, - 0x1e48c: 0x6d421a20, 0x1e48d: 0x6d36a220, 0x1e48e: 0x6cbf4c20, 0x1e48f: 0x6ccd8e20, - 0x1e490: 0x6c1c5020, 0x1e491: 0x6cfc2220, 0x1e492: 0x6d03f620, 0x1e493: 0x6cc30e20, - 0x1e494: 0x6caf8020, 0x1e495: 0x6ce5fe20, 0x1e496: 0x6d39c020, 0x1e497: 0x6cfe4820, - 0x1e498: 0x6ca01220, 0x1e499: 0x6c7ada20, 0x1e49a: 0x6d112c20, 0x1e49b: 0x6cfac220, - 0x1e49c: 0x6cfb7620, 0x1e49d: 0x6d04ea20, 0x1e49e: 0x6c757e20, 0x1e49f: 0x6c13aa20, - 0x1e4a0: 0x6c81b620, 0x1e4a1: 0x6c607820, 0x1e4a2: 0x6cb06620, 0x1e4a3: 0x6cc7ba20, - 0x1e4a4: 0x6c9cfe20, 0x1e4a5: 0x6d140820, 0x1e4a6: 0x6d19fa20, 0x1e4a7: 0x6c49f220, - 0x1e4a8: 0x6c019020, 0x1e4a9: 0x6c2fd420, 0x1e4aa: 0x6d1fe020, 0x1e4ab: 0x6ccb3820, - 0x1e4ac: 0x6c77c620, 0x1e4ad: 0x6cb9b620, 0x1e4ae: 0x6c944220, 0x1e4af: 0x6cd90020, - 0x1e4b0: 0x6c003020, 0x1e4b1: 0x6c2e3220, 0x1e4b2: 0x6c4efe20, 0x1e4b3: 0x6cc8de20, - 0x1e4b4: 0x6cd3cc20, 0x1e4b5: 0x6c795020, 0x1e4b6: 0x6cc09220, 0x1e4b7: 0x6cff0c20, - 0x1e4b8: 0x6d308620, 0x1e4b9: 0x6d054e20, 0x1e4ba: 0x6d2a0c20, 0x1e4bb: 0x6ce37020, - 0x1e4bc: 0x6c263820, 0x1e4bd: 0x6c487020, 0x1e4be: 0x6c53d220, 0x1e4bf: 0x6d37c820, - // Block 0x793, offset 0x1e4c0 - 0x1e4c0: 0x6ce7de20, 0x1e4c1: 0x6c93ac20, 0x1e4c2: 0x6c9a2220, 0x1e4c3: 0x6c80e220, - 0x1e4c4: 0x6ced4a20, 0x1e4c5: 0x6d02e620, 0x1e4c6: 0x6d27c420, 0x1e4c7: 0x6c075420, - 0x1e4c8: 0x6cf51e20, 0x1e4c9: 0x6cdb0c20, 0x1e4ca: 0x6d23dc20, 0x1e4cb: 0x6c151420, - 0x1e4cc: 0x6c2fb620, 0x1e4cd: 0x6c0f4e20, 0x1e4ce: 0x6c4f0020, 0x1e4cf: 0x6c63de20, - 0x1e4d0: 0x6c538420, 0x1e4d1: 0x6c249220, 0x1e4d2: 0x6c3c6620, 0x1e4d3: 0x6c14d620, - 0x1e4d4: 0x6ced4c20, 0x1e4d5: 0x6d36d020, 0x1e4d6: 0x6cd82620, 0x1e4d7: 0x6d07ca20, - 0x1e4d8: 0x6c575620, 0x1e4d9: 0x6d228220, 0x1e4da: 0x6ce59e20, 0x1e4db: 0x6c45fa20, - 0x1e4dc: 0x6d3d9420, 0x1e4dd: 0x6c94bc20, 0x1e4de: 0x6d03fc20, 0x1e4df: 0x6cbde620, - 0x1e4e0: 0x6cd0c420, 0x1e4e1: 0x6c4e2e20, 0x1e4e2: 0x6c94be20, 0x1e4e3: 0x6d128a20, - 0x1e4e4: 0x6c1eac20, 0x1e4e5: 0x6d2bae20, 0x1e4e6: 0x6c70c420, 0x1e4e7: 0x6cfd0220, - 0x1e4e8: 0x6ce60020, 0x1e4e9: 0x6c987020, 0x1e4ea: 0x6cb4b420, 0x1e4eb: 0x6c843620, - 0x1e4ec: 0x6cacc020, 0x1e4ed: 0x6cc8e020, 0x1e4ee: 0x6c1a3220, 0x1e4ef: 0x6c435820, - 0x1e4f0: 0x6c852820, 0x1e4f1: 0x6ce28220, 0x1e4f2: 0x6c0e4420, 0x1e4f3: 0x6d3b2420, - 0x1e4f4: 0x6d327e20, 0x1e4f5: 0x6ce87a20, 0x1e4f6: 0x6c8f1820, 0x1e4f7: 0x6d41d420, - 0x1e4f8: 0x6c729a20, 0x1e4f9: 0x6c16fa20, 0x1e4fa: 0x6d25f020, 0x1e4fb: 0x6c66d820, - 0x1e4fc: 0x6c429220, 0x1e4fd: 0x6c2e4020, 0x1e4fe: 0x6ce24020, 0x1e4ff: 0x6c16c620, - // Block 0x794, offset 0x1e500 - 0x1e500: 0x6c951020, 0x1e501: 0x6c4cd020, 0x1e502: 0x6c8d5c20, 0x1e503: 0x6c06ba20, - 0x1e504: 0x6c92de20, 0x1e505: 0x6c845020, 0x1e506: 0x6cbade20, 0x1e507: 0x6cb3e220, - 0x1e508: 0x6c732e20, 0x1e509: 0x6c9f7a20, 0x1e50a: 0x6d41d620, 0x1e50b: 0x6caeca20, - 0x1e50c: 0x6c01d020, 0x1e50d: 0x6caf9020, 0x1e50e: 0x6cfd1420, 0x1e50f: 0x6d0afa20, - 0x1e510: 0x6d3c6820, 0x1e511: 0x6c834620, 0x1e512: 0x6c783220, 0x1e513: 0x6c798a20, - 0x1e514: 0x6cdea820, 0x1e515: 0x6c7d8420, 0x1e516: 0x6c31bc20, 0x1e517: 0x6ca59020, - 0x1e518: 0x6c20e220, 0x1e519: 0x6d3e9820, 0x1e51a: 0x6d32ec20, 0x1e51b: 0x6c078c20, - 0x1e51c: 0x6ca87620, 0x1e51d: 0x6d403620, 0x1e51e: 0x6c216620, 0x1e51f: 0x6ce01420, - 0x1e520: 0x6c2fba20, 0x1e521: 0x6cb65420, 0x1e522: 0x6cb9cc20, 0x1e523: 0x6d3cac20, - 0x1e524: 0x6c5f4820, 0x1e525: 0x6d23fa20, 0x1e526: 0x6c6cb620, 0x1e527: 0x6c496620, - 0x1e528: 0x6c990820, 0x1e529: 0x6c167c20, 0x1e52a: 0x6ce51c20, 0x1e52b: 0x6cf6de20, - 0x1e52c: 0x6c891e20, 0x1e52d: 0x6ce24220, 0x1e52e: 0x6c482820, 0x1e52f: 0x6c263a20, - 0x1e530: 0x6cd61420, 0x1e531: 0x6d319c20, 0x1e532: 0x6c92e020, 0x1e533: 0x6c9be820, - 0x1e534: 0x6c92e220, 0x1e535: 0x6c571820, 0x1e536: 0x6c0c8020, 0x1e537: 0x6c40cc20, - 0x1e538: 0x6c7f2c20, 0x1e539: 0x6c790e20, 0x1e53a: 0x6c39ec20, 0x1e53b: 0x6cf55820, - 0x1e53c: 0x6ca3d820, 0x1e53d: 0x6ced9c20, 0x1e53e: 0x6d299c20, 0x1e53f: 0x6c570020, - // Block 0x795, offset 0x1e540 - 0x1e540: 0x6c2a8620, 0x1e541: 0x6cfada20, 0x1e542: 0x6cb10220, 0x1e543: 0x6c5d6020, - 0x1e544: 0x6c89cc20, 0x1e545: 0x6c384820, 0x1e546: 0x6c9ad820, 0x1e547: 0x6c767220, - 0x1e548: 0x6d1bf220, 0x1e549: 0x6c2b4a20, 0x1e54a: 0x6c892220, 0x1e54b: 0x6c4c4020, - 0x1e54c: 0x6cfc3620, 0x1e54d: 0x6c328220, 0x1e54e: 0x6ce8fc20, 0x1e54f: 0x6cef4420, - 0x1e550: 0x6d3fca20, 0x1e551: 0x6c406a20, 0x1e552: 0x6cc76620, 0x1e553: 0x6c60d220, - 0x1e554: 0x6c36ba20, 0x1e555: 0x6c758620, 0x1e556: 0x6c191420, 0x1e557: 0x6ce38c20, - 0x1e558: 0x6d2c5820, 0x1e559: 0x6c56d420, 0x1e55a: 0x6d0fe020, 0x1e55b: 0x6c32de20, - 0x1e55c: 0x6cfa0420, 0x1e55d: 0x6d21c220, 0x1e55e: 0x6c795a20, 0x1e55f: 0x6d03aa20, - 0x1e560: 0x6c5a1020, 0x1e561: 0x6cf03220, 0x1e562: 0x6c406c20, 0x1e563: 0x6d2f7620, - 0x1e564: 0x6c13b620, 0x1e565: 0x6cbcee20, 0x1e566: 0x6cd20620, 0x1e567: 0x6c52d620, - 0x1e568: 0x6c7ca820, 0x1e569: 0x6ce51e20, 0x1e56a: 0x6ca1ee20, 0x1e56b: 0x6cbbbc20, - 0x1e56c: 0x6cbbbe20, 0x1e56d: 0x6c543820, 0x1e56e: 0x6ce7e020, 0x1e56f: 0x6c236c20, - 0x1e570: 0x6c58ae20, 0x1e571: 0x6d136620, 0x1e572: 0x6c9f7e20, 0x1e573: 0x6c66e620, - 0x1e574: 0x6c32a420, 0x1e575: 0x6c66da20, 0x1e576: 0x6cd94220, 0x1e577: 0x6c7caa20, - 0x1e578: 0x6c55d220, 0x1e579: 0x6d07d820, 0x1e57a: 0x6c34b620, 0x1e57b: 0x6c6b4a20, - 0x1e57c: 0x6d31a020, 0x1e57d: 0x6c0b0e20, 0x1e57e: 0x6d37d020, 0x1e57f: 0x6d3ea220, - // Block 0x796, offset 0x1e580 - 0x1e580: 0x6d04fe20, 0x1e581: 0x6d129020, 0x1e582: 0x6c9a6e20, 0x1e583: 0x6cac3420, - 0x1e584: 0x6c003620, 0x1e585: 0x6c6c0c20, 0x1e586: 0x6cba9420, 0x1e587: 0x6c9a3220, - 0x1e588: 0x6cdda220, 0x1e589: 0x6c26ca20, 0x1e58a: 0x6c059620, 0x1e58b: 0x6cfa0a20, - 0x1e58c: 0x6c887a20, 0x1e58d: 0x6cddaa20, 0x1e58e: 0x6c769a20, 0x1e58f: 0x6c8ec020, - 0x1e590: 0x6d116420, 0x1e591: 0x6d137420, 0x1e592: 0x6caa2e20, 0x1e593: 0x6cf23e20, - 0x1e594: 0x6cc6d420, 0x1e595: 0x6ce15420, 0x1e596: 0x6cddac20, 0x1e597: 0x6cbaf220, - 0x1e598: 0x6c86e020, 0x1e599: 0x6cd7a620, 0x1e59a: 0x6c20e420, 0x1e59b: 0x6c0f9620, - 0x1e59c: 0x6cac8620, 0x1e59d: 0x6c266e20, 0x1e59e: 0x6c089620, 0x1e59f: 0x6cca9020, - 0x1e5a0: 0x6c429420, 0x1e5a1: 0x6d3ea620, 0x1e5a2: 0x6cf38c20, 0x1e5a3: 0x6d1cb420, - 0x1e5a4: 0x6c5a7e20, 0x1e5a5: 0x6ce5aa20, 0x1e5a6: 0x6c8ec220, 0x1e5a7: 0x6c767420, - 0x1e5a8: 0x6cdd0220, 0x1e5a9: 0x6ccc2220, 0x1e5aa: 0x6cd9f020, 0x1e5ab: 0x6ceda820, - 0x1e5ac: 0x6c507620, 0x1e5ad: 0x6d327020, 0x1e5ae: 0x6d327220, 0x1e5af: 0x6c80e820, - 0x1e5b0: 0x6d18fc20, 0x1e5b1: 0x6d25c420, 0x1e5b2: 0x6ce18620, 0x1e5b3: 0x6ca88a20, - 0x1e5b4: 0x6cf7b020, 0x1e5b5: 0x6c638c20, 0x1e5b6: 0x6c43ba20, 0x1e5b7: 0x6c96a820, - 0x1e5b8: 0x6c730620, 0x1e5b9: 0x6cd9a220, 0x1e5ba: 0x6d413420, 0x1e5bb: 0x6cddae20, - 0x1e5bc: 0x6cfa5620, 0x1e5bd: 0x6c3d0220, 0x1e5be: 0x6cf21e20, 0x1e5bf: 0x6ca2ec20, - // Block 0x797, offset 0x1e5c0 - 0x1e5c0: 0x6c91fa20, 0x1e5c1: 0x6cddb020, 0x1e5c2: 0x6cab6020, 0x1e5c3: 0x6d40f620, - 0x1e5c4: 0x6ce96e20, 0x1e5c5: 0x6d050820, 0x1e5c6: 0x6c49b220, 0x1e5c7: 0x6d08cc20, - 0x1e5c8: 0x6c892620, 0x1e5c9: 0x6cd48620, 0x1e5ca: 0x6c02f820, 0x1e5cb: 0x6c97d420, - 0x1e5cc: 0x6ca18020, 0x1e5cd: 0x6c956620, 0x1e5ce: 0x6c0a9e20, 0x1e5cf: 0x6cf0fe20, - 0x1e5d0: 0x6c8ed020, 0x1e5d1: 0x6c2bb220, 0x1e5d2: 0x6cca3620, 0x1e5d3: 0x6d401220, - 0x1e5d4: 0x6d158a20, 0x1e5d5: 0x6c932020, 0x1e5d6: 0x6c028220, 0x1e5d7: 0x6c796220, - 0x1e5d8: 0x6cbafa20, 0x1e5d9: 0x6c24f820, 0x1e5da: 0x6cb54e20, 0x1e5db: 0x6c16d220, - 0x1e5dc: 0x6ce0dc20, 0x1e5dd: 0x6c981020, 0x1e5de: 0x6d1dd020, 0x1e5df: 0x6c160620, - 0x1e5e0: 0x6c3c7220, 0x1e5e1: 0x6c6ebe20, 0x1e5e2: 0x6c0c4820, 0x1e5e3: 0x6cd62a20, - 0x1e5e4: 0x6c912420, 0x1e5e5: 0x6d055820, 0x1e5e6: 0x6c237420, 0x1e5e7: 0x6c8fce20, - 0x1e5e8: 0x6d29b020, 0x1e5e9: 0x6c670820, 0x1e5ea: 0x6c12a220, 0x1e5eb: 0x6c849220, - 0x1e5ec: 0x6cfa5c20, 0x1e5ed: 0x6cf72020, 0x1e5ee: 0x6c776020, 0x1e5ef: 0x6cd6f820, - 0x1e5f0: 0x6c086220, 0x1e5f1: 0x6d2f4a20, 0x1e5f2: 0x6cba9620, 0x1e5f3: 0x6c19a620, - 0x1e5f4: 0x6c933420, 0x1e5f5: 0x6c576820, 0x1e5f6: 0x6c60f220, 0x1e5f7: 0x6cb47220, - 0x1e5f8: 0x6c5c8c20, 0x1e5f9: 0x6cbb5020, 0x1e5fa: 0x6cb32420, 0x1e5fb: 0x6c8c0220, - 0x1e5fc: 0x6ccb9020, 0x1e5fd: 0x6d055a20, 0x1e5fe: 0x6cca3c20, 0x1e5ff: 0x6c19a820, - // Block 0x798, offset 0x1e600 - 0x1e600: 0x6c7d3a20, 0x1e601: 0x6cd84820, 0x1e602: 0x6c8f5420, 0x1e603: 0x6ca4d220, - 0x1e604: 0x6c5a2220, 0x1e605: 0x6cb1e020, 0x1e606: 0x6cdcb020, 0x1e607: 0x6c38ea20, - 0x1e608: 0x6cbc0e20, 0x1e609: 0x6cc2aa20, 0x1e60a: 0x6d0fee20, 0x1e60b: 0x6ce0de20, - 0x1e60c: 0x6cfe6620, 0x1e60d: 0x6c750420, 0x1e60e: 0x6c68a420, 0x1e60f: 0x6d41fc20, - 0x1e610: 0x6c8a4e20, 0x1e611: 0x6cbd0420, 0x1e612: 0x6c819020, 0x1e613: 0x6c338020, - 0x1e614: 0x6d030620, 0x1e615: 0x6d295820, 0x1e616: 0x6c5f8e20, 0x1e617: 0x6c661e20, - 0x1e618: 0x6d37da20, 0x1e619: 0x6c2af620, 0x1e61a: 0x6d0b0620, 0x1e61b: 0x6d1d5c20, - 0x1e61c: 0x6c331e20, 0x1e61d: 0x6c750620, 0x1e61e: 0x6caa3020, 0x1e61f: 0x6d295a20, - 0x1e620: 0x6cb4a420, 0x1e621: 0x6ce60620, 0x1e622: 0x6c38ec20, 0x1e623: 0x6d2f4c20, - 0x1e624: 0x6c2f8a20, 0x1e625: 0x6ccdda20, 0x1e626: 0x6c764220, 0x1e627: 0x6c653820, - 0x1e628: 0x6c3af020, 0x1e629: 0x6cdcba20, 0x1e62a: 0x6c920020, 0x1e62b: 0x6c730c20, - 0x1e62c: 0x6c5c9420, 0x1e62d: 0x6d246a20, 0x1e62e: 0x6c889c20, 0x1e62f: 0x6d3dcc20, - 0x1e630: 0x6cbbc820, 0x1e631: 0x6c672220, 0x1e632: 0x6d3dde20, 0x1e633: 0x6c828c20, - 0x1e634: 0x6c0ac820, 0x1e635: 0x6ce60820, 0x1e636: 0x6c58c220, 0x1e637: 0x6d138c20, - 0x1e638: 0x6c346c20, 0x1e639: 0x6c4cd620, 0x1e63a: 0x6c29ac20, 0x1e63b: 0x6c72ce20, - 0x1e63c: 0x6c3bac20, 0x1e63d: 0x6c26d620, 0x1e63e: 0x6c077220, 0x1e63f: 0x6d194a20, - // Block 0x799, offset 0x1e640 - 0x1e640: 0x6c010820, 0x1e641: 0x6d3fe220, 0x1e642: 0x6d0aba20, 0x1e643: 0x6c2e4e20, - 0x1e644: 0x6d3b4e20, 0x1e645: 0x6c528620, 0x1e646: 0x6d3cc220, 0x1e647: 0x6c5fa220, - 0x1e648: 0x6ca8be20, 0x1e649: 0x6c51a620, 0x1e64a: 0x6c5e4c20, 0x1e64b: 0x6cbe6020, - 0x1e64c: 0x6c0d7020, 0x1e64d: 0x6d1c3e20, 0x1e64e: 0x6c7d4020, 0x1e64f: 0x6ca93c20, - 0x1e650: 0x6d060e20, 0x1e651: 0x6c672620, 0x1e652: 0x6c672820, 0x1e653: 0x6cba9a20, - 0x1e654: 0x6c142620, 0x1e655: 0x6d377220, 0x1e656: 0x6c9f1620, 0x1e657: 0x6c84ce20, - 0x1e658: 0x6c829820, 0x1e659: 0x6c5fa620, 0x1e65a: 0x6d416620, 0x1e65b: 0x6c7c2220, - 0x1e65c: 0x6cce4420, 0x1e65d: 0x6caefc20, 0x1e65e: 0x6c7ece20, 0x1e65f: 0x6c320020, - 0x1e660: 0x6cd7b020, 0x1e661: 0x6c21ec20, 0x1e662: 0x6c942820, 0x1e663: 0x6c0c6220, - 0x1e664: 0x6c068420, 0x1e665: 0x6c920420, 0x1e666: 0x6cfd5c20, 0x1e667: 0x6c7b7e20, - 0x1e668: 0x6c901020, 0x1e669: 0x6c36fa20, 0x1e66a: 0x6c91a220, 0x1e66b: 0x6d02f820, - 0x1e66c: 0x6c672c20, 0x1e66d: 0x6c809420, 0x1e66e: 0x6c0fd620, 0x1e66f: 0x6c655620, - 0x1e670: 0x6d125820, 0x1e671: 0x6c157e20, 0x1e672: 0x6cfda620, 0x1e673: 0x6c673020, - 0x1e674: 0x6cf76220, 0x1e675: 0x6c49c820, 0x1e676: 0x6c125620, 0x1e677: 0x6ca8d220, - 0x1e678: 0x6c831620, 0x1e679: 0x6c249c20, 0x1e67a: 0x6cc23020, 0x1e67b: 0x6cacc820, - 0x1e67c: 0x6c959420, 0x1e67d: 0x6d414420, 0x1e67e: 0x6c947a20, 0x1e67f: 0x6d2a3820, - // Block 0x79a, offset 0x1e680 - 0x1e680: 0x6ca8d820, 0x1e681: 0x6c753e20, 0x1e682: 0x6ce19820, 0x1e683: 0x6cd58e20, - 0x1e684: 0x6c801c20, 0x1e685: 0x6c6c2220, 0x1e686: 0x6c40c420, 0x1e687: 0x6d15b420, - 0x1e688: 0x6d312020, 0x1e689: 0x6c2f5220, 0x1e68a: 0x6d2f5220, 0x1e68b: 0x6cb2f020, - 0x1e68c: 0x6c8a6620, 0x1e68d: 0x6ce91820, 0x1e68e: 0x6cb8ba20, 0x1e68f: 0x6c203220, - 0x1e690: 0x6cccca20, 0x1e691: 0x6c5fe820, 0x1e692: 0x6c388e20, 0x1e693: 0x6c2e0a20, - 0x1e694: 0x6c9ac420, 0x1e695: 0x6caa7020, 0x1e696: 0x6d0f8c20, 0x1e697: 0x6c146420, - 0x1e698: 0x6d03d620, 0x1e699: 0x6c413020, 0x1e69a: 0x6c107a20, 0x1e69b: 0x6cdf6620, - 0x1e69c: 0x6c721c20, 0x1e69d: 0x6c33e620, 0x1e69e: 0x6c173e20, 0x1e69f: 0x6d37ac20, - 0x1e6a0: 0x6ca32220, 0x1e6a1: 0x6c06f620, 0x1e6a2: 0x6c426a20, 0x1e6a3: 0x6c04c420, - 0x1e6a4: 0x6cb97a20, 0x1e6a5: 0x6d11fa20, 0x1e6a6: 0x6cbd2220, 0x1e6a7: 0x6c756620, - 0x1e6a8: 0x6cf35e20, 0x1e6a9: 0x6c463c20, 0x1e6aa: 0x6c778420, 0x1e6ab: 0x6c398e20, - 0x1e6ac: 0x6c5d8c20, 0x1e6ad: 0x6ce80a20, 0x1e6ae: 0x6ca98e20, 0x1e6af: 0x6c039c20, - 0x1e6b0: 0x6d22fa20, 0x1e6b1: 0x6cb98420, 0x1e6b2: 0x6d32aa20, 0x1e6b3: 0x6cb98620, - 0x1e6b4: 0x6c477820, 0x1e6b5: 0x6c0e6820, 0x1e6b6: 0x6c353c20, 0x1e6b7: 0x6cb35220, - 0x1e6b8: 0x6c108e20, 0x1e6b9: 0x6c0ee220, 0x1e6ba: 0x6d26a020, 0x1e6bb: 0x6d413820, - 0x1e6bc: 0x6ca28020, 0x1e6bd: 0x6ce05a20, 0x1e6be: 0x6c641020, 0x1e6bf: 0x6c2d4a20, - // Block 0x79b, offset 0x1e6c0 - 0x1e6c0: 0x6d1f2620, 0x1e6c1: 0x6ce5f820, 0x1e6c2: 0x6c0ee420, 0x1e6c3: 0x6c8cd620, - 0x1e6c4: 0x6cd77a20, 0x1e6c5: 0x6cb8d020, 0x1e6c6: 0x6c993620, 0x1e6c7: 0x6c064420, - 0x1e6c8: 0x6cd36620, 0x1e6c9: 0x6d088420, 0x1e6ca: 0x6cdde820, 0x1e6cb: 0x6c097220, - 0x1e6cc: 0x6ca5d220, 0x1e6cd: 0x6caf5e20, 0x1e6ce: 0x6c344220, 0x1e6cf: 0x6d03e420, - 0x1e6d0: 0x6c77bc20, 0x1e6d1: 0x6c81b020, 0x1e6d2: 0x6c379420, 0x1e6d3: 0x6c985e20, - 0x1e6d4: 0x6d0ba820, 0x1e6d5: 0x6d1fc620, 0x1e6d6: 0x6c19f620, 0x1e6d7: 0x6c63bc20, - 0x1e6d8: 0x6d127e20, 0x1e6d9: 0x6ca4a820, 0x1e6da: 0x6d361020, 0x1e6db: 0x6c29aa20, - 0x1e6dc: 0x6ce74620, 0x1e6dd: 0x6c939820, 0x1e6de: 0x6c2e2220, 0x1e6df: 0x6d19d220, - 0x1e6e0: 0x6c765020, 0x1e6e1: 0x6d2c2e20, 0x1e6e2: 0x6d39a220, 0x1e6e3: 0x6cf7e420, - 0x1e6e4: 0x6c2fa220, 0x1e6e5: 0x6c2fd220, 0x1e6e6: 0x6cfaa420, 0x1e6e7: 0x6c573a20, - 0x1e6e8: 0x6cc2e820, 0x1e6e9: 0x6ccbf020, 0x1e6ea: 0x6c4cfa20, 0x1e6eb: 0x6c2e2420, - 0x1e6ec: 0x6c448620, 0x1e6ed: 0x6c9ffc20, 0x1e6ee: 0x6d32be20, 0x1e6ef: 0x6ccb2620, - 0x1e6f0: 0x6c68ec20, 0x1e6f1: 0x6d13ec20, 0x1e6f2: 0x6c15b220, 0x1e6f3: 0x6c1d4e20, - 0x1e6f4: 0x6ce0be20, 0x1e6f5: 0x6c018220, 0x1e6f6: 0x6d1a6220, 0x1e6f7: 0x6cc7a820, - 0x1e6f8: 0x6d3b0620, 0x1e6f9: 0x6c815c20, 0x1e6fa: 0x6cb4ac20, 0x1e6fb: 0x6cf3cc20, - 0x1e6fc: 0x6c7f1020, 0x1e6fd: 0x6ce27c20, 0x1e6fe: 0x6c890020, 0x1e6ff: 0x6c794420, - // Block 0x79c, offset 0x1e700 - 0x1e700: 0x6cfed020, 0x1e701: 0x6cdd6820, 0x1e702: 0x6c851a20, 0x1e703: 0x6d2bac20, - 0x1e704: 0x6c1e8620, 0x1e705: 0x6c4c2220, 0x1e706: 0x6c434a20, 0x1e707: 0x6c357020, - 0x1e708: 0x6d053e20, 0x1e709: 0x6c262e20, 0x1e70a: 0x6c94aa20, 0x1e70b: 0x6c3c5220, - 0x1e70c: 0x6d02da20, 0x1e70d: 0x6c8f0a20, 0x1e70e: 0x6c763220, 0x1e70f: 0x6c65a220, - 0x1e710: 0x6cc8d020, 0x1e711: 0x6ce2f220, 0x1e712: 0x6c80ce20, 0x1e713: 0x6cbdda20, - 0x1e714: 0x6c70a420, 0x1e715: 0x6c000820, 0x1e716: 0x6cbac620, 0x1e717: 0x6d30da20, - 0x1e718: 0x6cab0020, 0x1e719: 0x6c263220, 0x1e71a: 0x6c98ee20, 0x1e71b: 0x6c078a20, - 0x1e71c: 0x6cb60620, 0x1e71d: 0x6c2a7820, 0x1e71e: 0x6c78be20, 0x1e71f: 0x6c7d7420, - 0x1e720: 0x6c167620, 0x1e721: 0x6cf65e20, 0x1e722: 0x6c482020, 0x1e723: 0x6c954c20, - 0x1e724: 0x6c20da20, 0x1e725: 0x6d3c6420, 0x1e726: 0x6c6c9a20, 0x1e727: 0x6d367420, - 0x1e728: 0x6cfab620, 0x1e729: 0x6c732220, 0x1e72a: 0x6c5d5820, 0x1e72b: 0x6caddc20, - 0x1e72c: 0x6cdfee20, 0x1e72d: 0x6c2fae20, 0x1e72e: 0x6c66a220, 0x1e72f: 0x6c725c20, - 0x1e730: 0x6c9bdc20, 0x1e731: 0x6d3e6620, 0x1e732: 0x6cbcdc20, 0x1e733: 0x6d1bc820, - 0x1e734: 0x6c766a20, 0x1e735: 0x6cbad420, 0x1e736: 0x6cd80a20, 0x1e737: 0x6c367820, - 0x1e738: 0x6c13ac20, 0x1e739: 0x6cbb9420, 0x1e73a: 0x6d37c420, 0x1e73b: 0x6c32d620, - 0x1e73c: 0x6cd9d220, 0x1e73d: 0x6c59e820, 0x1e73e: 0x6c588c20, 0x1e73f: 0x6c003220, - // Block 0x79d, offset 0x1e740 - 0x1e740: 0x6c327020, 0x1e741: 0x6c9a6420, 0x1e742: 0x6c911420, 0x1e743: 0x6d3e7420, - 0x1e744: 0x6c3ac020, 0x1e745: 0x6c9a1c20, 0x1e746: 0x6ca15820, 0x1e747: 0x6d325c20, - 0x1e748: 0x6c0f5020, 0x1e749: 0x6c442a20, 0x1e74a: 0x6ca86620, 0x1e74b: 0x6ce18220, - 0x1e74c: 0x6c730220, 0x1e74d: 0x6ca86820, 0x1e74e: 0x6ca2e820, 0x1e74f: 0x6c8e8e20, - 0x1e750: 0x6c431e20, 0x1e751: 0x6c058a20, 0x1e752: 0x6d186c20, 0x1e753: 0x6c638020, - 0x1e754: 0x6c0d4e20, 0x1e755: 0x6cc6ac20, 0x1e756: 0x6c0c2420, 0x1e757: 0x6ce0d620, - 0x1e758: 0x6c980620, 0x1e759: 0x6c955420, 0x1e75a: 0x6c085420, 0x1e75b: 0x6d1dbc20, - 0x1e75c: 0x6c6eae20, 0x1e75d: 0x6c2b4620, 0x1e75e: 0x6d40dc20, 0x1e75f: 0x6d08b420, - 0x1e760: 0x6c8ea620, 0x1e761: 0x6c153220, 0x1e762: 0x6c74d020, 0x1e763: 0x6c8aac20, - 0x1e764: 0x6cb46420, 0x1e765: 0x6c91e220, 0x1e766: 0x6c336e20, 0x1e767: 0x6c7fc820, - 0x1e768: 0x6cb49e20, 0x1e769: 0x6c249420, 0x1e76a: 0x6cbae820, 0x1e76b: 0x6c2aee20, - 0x1e76c: 0x6c5e1e20, 0x1e76d: 0x6c826e20, 0x1e76e: 0x6c58b220, 0x1e76f: 0x6d3dc420, - 0x1e770: 0x6c887c20, 0x1e771: 0x6d18fe20, 0x1e772: 0x6c142420, 0x1e773: 0x6c0c4e20, - 0x1e774: 0x6c7eba20, 0x1e775: 0x6c157020, 0x1e776: 0x6cfda020, 0x1e777: 0x6d2f0020, - 0x1e778: 0x6c169c20, 0x1e779: 0x6c6fbc20, 0x1e77a: 0x6c02a420, 0x1e77b: 0x6c2eb820, - 0x1e77c: 0x6cc13c20, 0x1e77d: 0x6c8a8420, 0x1e77e: 0x6c9caa20, 0x1e77f: 0x6d2efa20, - // Block 0x79e, offset 0x1e780 - 0x1e780: 0x6c9ac620, 0x1e781: 0x6c96b620, 0x1e782: 0x6cd68220, 0x1e783: 0x6ccd3c20, - 0x1e784: 0x6c5db420, 0x1e785: 0x6c9ac820, 0x1e786: 0x6d0c8e20, 0x1e787: 0x6c098e20, - 0x1e788: 0x6c4eba20, 0x1e789: 0x6c099020, 0x1e78a: 0x6ccdfa20, 0x1e78b: 0x6c763420, - 0x1e78c: 0x6c778a20, 0x1e78d: 0x6c07f220, 0x1e78e: 0x6c535c20, 0x1e78f: 0x6cc8fe20, - 0x1e790: 0x6cca5820, 0x1e791: 0x6cfb6420, 0x1e792: 0x6cfb6620, 0x1e793: 0x6c64ac20, - 0x1e794: 0x6c9fb420, 0x1e795: 0x6cf96820, 0x1e796: 0x6cd74020, 0x1e797: 0x6c312020, - 0x1e798: 0x6d2c3c20, 0x1e799: 0x6ca53420, 0x1e79a: 0x6d2d8820, 0x1e79b: 0x6cae7820, - 0x1e79c: 0x6cfa2220, 0x1e79d: 0x6c8d2820, 0x1e79e: 0x6c0bae20, 0x1e79f: 0x6c09e820, - 0x1e7a0: 0x6cc90020, 0x1e7a1: 0x6c00be20, 0x1e7a2: 0x6c492020, 0x1e7a3: 0x6c441620, - 0x1e7a4: 0x6c441820, 0x1e7a5: 0x6c382220, 0x1e7a6: 0x6c1f6620, 0x1e7a7: 0x6c53c820, - 0x1e7a8: 0x6c4a7e20, 0x1e7a9: 0x6c9fbe20, 0x1e7aa: 0x6ccb1220, 0x1e7ab: 0x6c7dc020, - 0x1e7ac: 0x6c812c20, 0x1e7ad: 0x6c935a20, 0x1e7ae: 0x6ce68820, 0x1e7af: 0x6ccc7620, - 0x1e7b0: 0x6c714820, 0x1e7b1: 0x6d26e420, 0x1e7b2: 0x6d26e620, 0x1e7b3: 0x6c15e020, - 0x1e7b4: 0x6cc27620, 0x1e7b5: 0x6c8c6a20, 0x1e7b6: 0x6c167e20, 0x1e7b7: 0x6ccca420, - 0x1e7b8: 0x6c7dc220, 0x1e7b9: 0x6d0c3020, 0x1e7ba: 0x6cf1b220, 0x1e7bb: 0x6d0cd420, - 0x1e7bc: 0x6c36b020, 0x1e7bd: 0x6c5cda20, 0x1e7be: 0x6d23fc20, 0x1e7bf: 0x6cf1b420, - // Block 0x79f, offset 0x1e7c0 - 0x1e7c0: 0x6cfe6020, 0x1e7c1: 0x6c05be20, 0x1e7c2: 0x6c53d620, 0x1e7c3: 0x6cc28020, - 0x1e7c4: 0x6d11dc20, 0x1e7c5: 0x6cf1ba20, 0x1e7c6: 0x6c04d820, 0x1e7c7: 0x6c01d220, - 0x1e7c8: 0x6cef4620, 0x1e7c9: 0x6d1a1020, 0x1e7ca: 0x6c7e2020, 0x1e7cb: 0x6cc40a20, - 0x1e7cc: 0x6c7fca20, 0x1e7cd: 0x6c317c20, 0x1e7ce: 0x6cc38620, 0x1e7cf: 0x6c3c6e20, - 0x1e7d0: 0x6ce4cc20, 0x1e7d1: 0x6ca88c20, 0x1e7d2: 0x6cdec420, 0x1e7d3: 0x6c767620, - 0x1e7d4: 0x6c518a20, 0x1e7d5: 0x6cc40e20, 0x1e7d6: 0x6c209c20, 0x1e7d7: 0x6c493020, - 0x1e7d8: 0x6c314620, 0x1e7d9: 0x6cb72420, 0x1e7da: 0x6c7c4e20, 0x1e7db: 0x6ce15c20, - 0x1e7dc: 0x6c493420, 0x1e7dd: 0x6cb18a20, 0x1e7de: 0x6c771820, 0x1e7df: 0x6cf92420, - 0x1e7e0: 0x6c5c8e20, 0x1e7e1: 0x6c160e20, 0x1e7e2: 0x6cb0dc20, 0x1e7e3: 0x6c29a420, - 0x1e7e4: 0x6c58c420, 0x1e7e5: 0x6cdeda20, 0x1e7e6: 0x6cf1c220, 0x1e7e7: 0x6cde0220, - 0x1e7e8: 0x6c9abe20, 0x1e7e9: 0x6cd67e20, 0x1e7ea: 0x6ccd2820, 0x1e7eb: 0x6d0e3820, - 0x1e7ec: 0x6c4e8820, 0x1e7ed: 0x6c090e20, 0x1e7ee: 0x6cf1f820, 0x1e7ef: 0x6c208c20, - 0x1e7f0: 0x6cc8f820, 0x1e7f1: 0x6ceee620, 0x1e7f2: 0x6cfb2820, 0x1e7f3: 0x6c52fe20, - 0x1e7f4: 0x6c646620, 0x1e7f5: 0x6c9f9220, 0x1e7f6: 0x6c772620, 0x1e7f7: 0x6c9aea20, - 0x1e7f8: 0x6d2c2420, 0x1e7f9: 0x6ca52a20, 0x1e7fa: 0x6c4a4220, 0x1e7fb: 0x6cf18820, - 0x1e7fc: 0x6cde3e20, 0x1e7fd: 0x6c9fa020, 0x1e7fe: 0x6c935420, 0x1e7ff: 0x6c764e20, - // Block 0x7a0, offset 0x1e800 - 0x1e800: 0x6c380a20, 0x1e801: 0x6c43ce20, 0x1e802: 0x6c50e620, 0x1e803: 0x6c7da420, - 0x1e804: 0x6c6f6820, 0x1e805: 0x6d26a220, 0x1e806: 0x6c80b020, 0x1e807: 0x6c316c20, - 0x1e808: 0x6d232820, 0x1e809: 0x6d0c0420, 0x1e80a: 0x6c166c20, 0x1e80b: 0x6cf88020, - 0x1e80c: 0x6cf19420, 0x1e80d: 0x6c5cc620, 0x1e80e: 0x6d0c9020, 0x1e80f: 0x6c362020, - 0x1e810: 0x6c15b420, 0x1e811: 0x6c7fa020, 0x1e812: 0x6cc27020, 0x1e813: 0x6c5bce20, - 0x1e814: 0x6c7e0220, 0x1e815: 0x6cc3c620, 0x1e816: 0x6c515020, 0x1e817: 0x6ce4b220, - 0x1e818: 0x6c26b220, 0x1e819: 0x6cc39020, 0x1e81a: 0x6c4e5e20, 0x1e81b: 0x6c58a220, - 0x1e81c: 0x6c3fba20, 0x1e81d: 0x6c3f9e20, 0x1e81e: 0x6c820620, 0x1e81f: 0x6c332a20, - 0x1e820: 0x6d031020, 0x1e821: 0x6cb89020, 0x1e822: 0x6cf49a20, 0x1e823: 0x6c412620, - 0x1e824: 0x6d356a20, 0x1e825: 0x6d19a020, 0x1e826: 0x6d0f7820, 0x1e827: 0x6c30d620, - 0x1e828: 0x6c35ce20, 0x1e829: 0x6cd0d620, 0x1e82a: 0x6c04b220, 0x1e82b: 0x6cadc620, - 0x1e82c: 0x6c792220, 0x1e82d: 0x6d27d420, 0x1e82e: 0x6cc84c20, 0x1e82f: 0x6d34da20, - 0x1e830: 0x6cafac20, 0x1e831: 0x6c6e0420, 0x1e832: 0x6c39a020, 0x1e833: 0x6d0f7a20, - 0x1e834: 0x6d19a220, 0x1e835: 0x6d321020, 0x1e836: 0x6c69f420, 0x1e837: 0x6c195020, - 0x1e838: 0x6c35d620, 0x1e839: 0x6cc0d620, 0x1e83a: 0x6c2bd220, 0x1e83b: 0x6d410a20, - 0x1e83c: 0x6d427820, 0x1e83d: 0x6c2d3820, 0x1e83e: 0x6c8e0820, 0x1e83f: 0x6c000220, - // Block 0x7a1, offset 0x1e840 - 0x1e840: 0x6ceae620, 0x1e841: 0x6ceae820, 0x1e842: 0x6c068c20, 0x1e843: 0x6c0dc020, - 0x1e844: 0x6c3fae20, 0x1e845: 0x6c618e20, 0x1e846: 0x6c921420, 0x1e847: 0x6c902c20, - 0x1e848: 0x6c18a220, 0x1e849: 0x6d03c220, 0x1e84a: 0x6c34ce20, 0x1e84b: 0x6c910220, - 0x1e84c: 0x6ca0da20, 0x1e84d: 0x6c67d620, 0x1e84e: 0x6cd4ae20, 0x1e84f: 0x6c34d020, - 0x1e850: 0x6cfc8620, 0x1e851: 0x6c373820, 0x1e852: 0x6c4acc20, 0x1e853: 0x6d207c20, - 0x1e854: 0x6c40e220, 0x1e855: 0x6ccd2e20, 0x1e856: 0x6c759e20, 0x1e857: 0x6cbc3420, - 0x1e858: 0x6d03d820, 0x1e859: 0x6c213620, 0x1e85a: 0x6c3fd820, 0x1e85b: 0x6c095820, - 0x1e85c: 0x6cf99e20, 0x1e85d: 0x6ccd3820, 0x1e85e: 0x6cd0f620, 0x1e85f: 0x6d35aa20, - 0x1e860: 0x6cb40420, 0x1e861: 0x6c30e420, 0x1e862: 0x6d260620, 0x1e863: 0x6d322820, - 0x1e864: 0x6c1e7620, 0x1e865: 0x6cfc9820, 0x1e866: 0x6c2a5620, 0x1e867: 0x6ca7fe20, - 0x1e868: 0x6d27e020, 0x1e869: 0x6cfbf020, 0x1e86a: 0x6cadce20, 0x1e86b: 0x6c3aa020, - 0x1e86c: 0x6d404e20, 0x1e86d: 0x6d174c20, 0x1e86e: 0x6c334820, 0x1e86f: 0x6c94e620, - 0x1e870: 0x6d19c420, 0x1e871: 0x6c707820, 0x1e872: 0x6c20c620, 0x1e873: 0x6c18ba20, - 0x1e874: 0x6cafd620, 0x1e875: 0x6c8cd820, 0x1e876: 0x6ce21420, 0x1e877: 0x6cfcae20, - 0x1e878: 0x6c923020, 0x1e879: 0x6cd0fc20, 0x1e87a: 0x6cfc0a20, 0x1e87b: 0x6d19d420, - 0x1e87c: 0x6d3a6220, 0x1e87d: 0x6d0fb020, 0x1e87e: 0x6cc62c20, 0x1e87f: 0x6cf9bc20, - // Block 0x7a2, offset 0x1e880 - 0x1e880: 0x6c1d1420, 0x1e881: 0x6d0e6820, 0x1e882: 0x6d19d620, 0x1e883: 0x6cd5ce20, - 0x1e884: 0x6c2b2c20, 0x1e885: 0x6d210c20, 0x1e886: 0x6c8f9220, 0x1e887: 0x6cee7820, - 0x1e888: 0x6cee7a20, 0x1e889: 0x6ca82420, 0x1e88a: 0x6c334a20, 0x1e88b: 0x6cdbf220, - 0x1e88c: 0x6c018420, 0x1e88d: 0x6c59b620, 0x1e88e: 0x6c6a0620, 0x1e88f: 0x6cdbf420, - 0x1e890: 0x6d1ae220, 0x1e891: 0x6c413c20, 0x1e892: 0x6d0d9a20, 0x1e893: 0x6c5abe20, - 0x1e894: 0x6c43fc20, 0x1e895: 0x6d27ee20, 0x1e896: 0x6cf4f220, 0x1e897: 0x6c7c6c20, - 0x1e898: 0x6c009e20, 0x1e899: 0x6cf89820, 0x1e89a: 0x6ce10c20, 0x1e89b: 0x6c623020, - 0x1e89c: 0x6d2f3620, 0x1e89d: 0x6c29de20, 0x1e89e: 0x6c024820, 0x1e89f: 0x6cf8aa20, - 0x1e8a0: 0x6d1aee20, 0x1e8a1: 0x6cc9be20, 0x1e8a2: 0x6cc53a20, 0x1e8a3: 0x6c8bca20, - 0x1e8a4: 0x6ce9b220, 0x1e8a5: 0x6c2ade20, 0x1e8a6: 0x6c693820, 0x1e8a7: 0x6cdc5820, - 0x1e8a8: 0x6cdbfa20, 0x1e8a9: 0x6c02e220, 0x1e8aa: 0x6cfc2620, 0x1e8ab: 0x6c3b8220, - 0x1e8ac: 0x6ca64c20, 0x1e8ad: 0x6c376820, 0x1e8ae: 0x6c5f4a20, 0x1e8af: 0x6c29ec20, - 0x1e8b0: 0x6cf7a620, 0x1e8b1: 0x6d1b0a20, 0x1e8b2: 0x6c358220, 0x1e8b3: 0x6c5af420, - 0x1e8b4: 0x6c903c20, 0x1e8b5: 0x6cf72220, 0x1e8b6: 0x6c859820, 0x1e8b7: 0x6c868820, - 0x1e8b8: 0x6c86b420, 0x1e8b9: 0x6d3c5620, 0x1e8ba: 0x6c553a20, 0x1e8bb: 0x6d33d220, - 0x1e8bc: 0x6cdcea20, 0x1e8bd: 0x6c735220, 0x1e8be: 0x6ca3f620, 0x1e8bf: 0x6d178820, - // Block 0x7a3, offset 0x1e8c0 - 0x1e8c0: 0x6cc3ba20, 0x1e8c1: 0x6d0e7e20, 0x1e8c2: 0x6cbd7a20, 0x1e8c3: 0x6cb8e820, - 0x1e8c4: 0x6d047c20, 0x1e8c5: 0x6d0b5420, 0x1e8c6: 0x6c604620, 0x1e8c7: 0x6c481820, - 0x1e8c8: 0x6c587a20, 0x1e8c9: 0x6d367620, 0x1e8ca: 0x6c46c020, 0x1e8cb: 0x6c736e20, - 0x1e8cc: 0x6c225620, 0x1e8cd: 0x6d1d9420, 0x1e8ce: 0x6c70b020, 0x1e8cf: 0x6c1e9820, - 0x1e8d0: 0x6c54f020, 0x1e8d1: 0x6d28c420, 0x1e8d2: 0x6c961c20, 0x1e8d3: 0x6d219620, - 0x1e8d4: 0x6c1dde20, 0x1e8d5: 0x6c2de020, 0x1e8d6: 0x6cdbe020, 0x1e8d7: 0x6c4f2820, - 0x1e8d8: 0x6cf32220, 0x1e8d9: 0x6cd6a620, 0x1e8da: 0x6c49ae20, 0x1e8db: 0x6c1ec220, - 0x1e8dc: 0x6d28d220, 0x1e8dd: 0x6d1dcc20, 0x1e8de: 0x6c5f7c20, 0x1e8df: 0x6cf70c20, - 0x1e8e0: 0x6c1dfe20, 0x1e8e1: 0x6c8f5220, 0x1e8e2: 0x6c847e20, 0x1e8e3: 0x6ca41420, - 0x1e8e4: 0x6d092c20, 0x1e8e5: 0x6d28e420, 0x1e8e6: 0x6c610820, 0x1e8e7: 0x6c610a20, - 0x1e8e8: 0x6d222220, 0x1e8e9: 0x6d211020, 0x1e8ea: 0x6d093020, 0x1e8eb: 0x6ca2f820, - 0x1e8ec: 0x6c3d2e20, 0x1e8ed: 0x6ccb2820, 0x1e8ee: 0x6ca28e20, 0x1e8ef: 0x6cf19820, - 0x1e8f0: 0x6c3b3620, 0x1e8f1: 0x6cacda20, 0x1e8f2: 0x6d27aa20, 0x1e8f3: 0x6c862220, - 0x1e8f4: 0x6c1c3a20, 0x1e8f5: 0x6d0f6020, 0x1e8f6: 0x6c8d2a20, 0x1e8f7: 0x6c823e20, - 0x1e8f8: 0x6c016e20, 0x1e8f9: 0x6c05ce20, 0x1e8fa: 0x6cf50420, 0x1e8fb: 0x6c2d6a20, - 0x1e8fc: 0x6c297420, 0x1e8fd: 0x6c56ac20, 0x1e8fe: 0x6cf50620, 0x1e8ff: 0x6c2e3420, - // Block 0x7a4, offset 0x1e900 - 0x1e900: 0x6d05c220, 0x1e901: 0x6c625820, 0x1e902: 0x6ca2a820, 0x1e903: 0x6c18e820, - 0x1e904: 0x6cff1020, 0x1e905: 0x6d2cde20, 0x1e906: 0x6ce68a20, 0x1e907: 0x6d325e20, - 0x1e908: 0x6cae2820, 0x1e909: 0x6c9a2420, 0x1e90a: 0x6c8d4c20, 0x1e90b: 0x6cb53420, - 0x1e90c: 0x6d38b020, 0x1e90d: 0x6c5e0220, 0x1e90e: 0x6ccc7c20, 0x1e90f: 0x6c3a1a20, - 0x1e910: 0x6c538a20, 0x1e911: 0x6d2da020, 0x1e912: 0x6d1a0820, 0x1e913: 0x6ca60820, - 0x1e914: 0x6d3b2e20, 0x1e915: 0x6cea6e20, 0x1e916: 0x6c8be420, 0x1e917: 0x6c8e3020, - 0x1e918: 0x6c308e20, 0x1e919: 0x6d1bf620, 0x1e91a: 0x6cf53220, 0x1e91b: 0x6c8d7420, - 0x1e91c: 0x6cd6a420, 0x1e91d: 0x6c8d7620, 0x1e91e: 0x6cfa0620, 0x1e91f: 0x6c539020, - 0x1e920: 0x6d1a1220, 0x1e921: 0x6c974420, 0x1e922: 0x6c974620, 0x1e923: 0x6d280620, - 0x1e924: 0x6c8f4c20, 0x1e925: 0x6c9c1620, 0x1e926: 0x6c0d6a20, 0x1e927: 0x6cf54020, - 0x1e928: 0x6cf10020, 0x1e929: 0x6c7e2a20, 0x1e92a: 0x6d1aac20, 0x1e92b: 0x6cf7b220, - 0x1e92c: 0x6d191e20, 0x1e92d: 0x6c008020, 0x1e92e: 0x6c28e420, 0x1e92f: 0x6ce2e420, - 0x1e930: 0x6cca4020, 0x1e931: 0x6d246c20, 0x1e932: 0x6c933620, 0x1e933: 0x6c8fd020, - 0x1e934: 0x6c27a820, 0x1e935: 0x6c60f420, 0x1e936: 0x6cacec20, 0x1e937: 0x6d0ff420, - 0x1e938: 0x6c03d620, 0x1e939: 0x6cafa420, 0x1e93a: 0x6cef7020, 0x1e93b: 0x6c3c8420, - 0x1e93c: 0x6cf93420, 0x1e93d: 0x6c62e420, 0x1e93e: 0x6c970e20, 0x1e93f: 0x6c9bac20, - // Block 0x7a5, offset 0x1e940 - 0x1e940: 0x6c9bae20, 0x1e941: 0x6c829a20, 0x1e942: 0x6c87ae20, 0x1e943: 0x6c5e5820, - 0x1e944: 0x6c008220, 0x1e945: 0x6c3b0220, 0x1e946: 0x6c27ae20, 0x1e947: 0x6c901220, - 0x1e948: 0x6c8db620, 0x1e949: 0x6c010e20, 0x1e94a: 0x6c3c8e20, 0x1e94b: 0x6c87c820, - 0x1e94c: 0x6c062620, 0x1e94d: 0x6c521820, 0x1e94e: 0x6c521020, 0x1e94f: 0x6c521420, - 0x1e950: 0x6c0e3e20, 0x1e951: 0x6cbe3020, 0x1e952: 0x6cbe3220, 0x1e953: 0x6c6e8a20, - 0x1e954: 0x6ce46c20, 0x1e955: 0x6d317820, 0x1e956: 0x6c6e9220, 0x1e957: 0x6c198420, - 0x1e958: 0x6cbed420, 0x1e959: 0x6c6e9c20, 0x1e95a: 0x6c6ea620, 0x1e95b: 0x6c2d8620, - 0x1e95c: 0x6c6eb020, 0x1e95d: 0x6ce47a20, 0x1e95e: 0x6c39f220, 0x1e95f: 0x6c3a0a20, - 0x1e960: 0x6c77c820, 0x1e961: 0x6c9c9220, 0x1e962: 0x6c9e5620, 0x1e963: 0x6c9e5020, - 0x1e964: 0x6c065a20, 0x1e965: 0x6d133420, 0x1e966: 0x6ce52020, 0x1e967: 0x6c5c9820, - 0x1e968: 0x6d139c20, 0x1e969: 0x6c43d020, 0x1e96a: 0x6c2f5e20, 0x1e96b: 0x6c13ea20, - 0x1e96c: 0x6cb9a020, 0x1e96d: 0x6cc5f820, 0x1e96e: 0x6c2b7020, 0x1e96f: 0x6c326020, - 0x1e970: 0x6cf4f420, 0x1e971: 0x6cc5fa20, 0x1e972: 0x6cbd8820, 0x1e973: 0x6c6d2020, - 0x1e974: 0x6d08e420, 0x1e975: 0x6ca99e20, 0x1e976: 0x6c03a220, 0x1e977: 0x6d1af020, - 0x1e978: 0x6cc95020, 0x1e979: 0x6ca35e20, 0x1e97a: 0x6ca14420, 0x1e97b: 0x6d412220, - 0x1e97c: 0x6c26b620, 0x1e97d: 0x6c050020, 0x1e97e: 0x6d183e20, 0x1e97f: 0x6d121a20, - // Block 0x7a6, offset 0x1e980 - 0x1e980: 0x6ce23420, 0x1e981: 0x6c074c20, 0x1e982: 0x6c63d820, 0x1e983: 0x6c537a20, - 0x1e984: 0x6cad6220, 0x1e985: 0x6d0f6420, 0x1e986: 0x6c0e4220, 0x1e987: 0x6d1a0020, - 0x1e988: 0x6c442c20, 0x1e989: 0x6ce23c20, 0x1e98a: 0x6c6b2e20, 0x1e98b: 0x6d00e420, - 0x1e98c: 0x6c014820, 0x1e98d: 0x6c014a20, 0x1e98e: 0x6c523620, 0x1e98f: 0x6c45fc20, - 0x1e990: 0x6cb88a20, 0x1e991: 0x6c26c220, 0x1e992: 0x6cbbf420, 0x1e993: 0x6ce64a20, - 0x1e994: 0x6c978620, 0x1e995: 0x6d1d4e20, 0x1e996: 0x6cdbde20, 0x1e997: 0x6ce5a020, - 0x1e998: 0x6cbc6220, 0x1e999: 0x6d08b820, 0x1e99a: 0x6c79ac20, 0x1e99b: 0x6c083420, - 0x1e99c: 0x6cdeb420, 0x1e99d: 0x6cce5820, 0x1e99e: 0x6c0dfa20, 0x1e99f: 0x6c7e2220, - 0x1e9a0: 0x6c70d420, 0x1e9a1: 0x6c7eda20, 0x1e9a2: 0x6d024a20, 0x1e9a3: 0x6cc76820, - 0x1e9a4: 0x6c054420, 0x1e9a5: 0x6c372c20, 0x1e9a6: 0x6cbfd620, 0x1e9a7: 0x6cbfd820, - 0x1e9a8: 0x6c518c20, 0x1e9a9: 0x6d001620, 0x1e9aa: 0x6ca2ba20, 0x1e9ab: 0x6c70da20, - 0x1e9ac: 0x6c650a20, 0x1e9ad: 0x6c0b1620, 0x1e9ae: 0x6c2b4c20, 0x1e9af: 0x6c651c20, - 0x1e9b0: 0x6cf16e20, 0x1e9b1: 0x6ce1fa20, 0x1e9b2: 0x6c466620, 0x1e9b3: 0x6cdec620, - 0x1e9b4: 0x6c076c20, 0x1e9b5: 0x6d011c20, 0x1e9b6: 0x6cac8820, 0x1e9b7: 0x6c445420, - 0x1e9b8: 0x6c0ab020, 0x1e9b9: 0x6c7e2e20, 0x1e9ba: 0x6ce0e020, 0x1e9bb: 0x6c90d420, - 0x1e9bc: 0x6c4ba420, 0x1e9bd: 0x6cbc1220, 0x1e9be: 0x6d08ee20, 0x1e9bf: 0x6c5f9820, - // Block 0x7a7, offset 0x1e9c0 - 0x1e9c0: 0x6c654820, 0x1e9c1: 0x6c679820, 0x1e9c2: 0x6c164c20, 0x1e9c3: 0x6c26d820, - 0x1e9c4: 0x6c56e820, 0x1e9c5: 0x6cfc6420, 0x1e9c6: 0x6cb96020, 0x1e9c7: 0x6c320420, - 0x1e9c8: 0x6cec4420, 0x1e9c9: 0x6c655a20, 0x1e9ca: 0x6c801e20, 0x1e9cb: 0x6ceeee20, - 0x1e9cc: 0x6cc5fc20, 0x1e9cd: 0x6c3ecc20, 0x1e9ce: 0x6c9aa220, 0x1e9cf: 0x6cc37820, - 0x1e9d0: 0x6c442e20, 0x1e9d1: 0x6cf01020, 0x1e9d2: 0x6cbc6420, 0x1e9d3: 0x6c4e3e20, - 0x1e9d4: 0x6c172820, 0x1e9d5: 0x6c7e3420, 0x1e9d6: 0x6cc77c20, 0x1e9d7: 0x6d286620, - 0x1e9d8: 0x6ccf8020, 0x1e9d9: 0x6cf04620, 0x1e9da: 0x6c444e20, 0x1e9db: 0x6c046220, - 0x1e9dc: 0x6ce1fc20, 0x1e9dd: 0x6c466820, 0x1e9de: 0x6d286c20, 0x1e9df: 0x6c435e20, - 0x1e9e0: 0x6c0ab220, 0x1e9e1: 0x6cf05220, 0x1e9e2: 0x6cdcc220, 0x1e9e3: 0x6c31fa20, - 0x1e9e4: 0x6cec4620, 0x1e9e5: 0x6c320620, 0x1e9e6: 0x6ceed820, 0x1e9e7: 0x6cc5cc20, - 0x1e9e8: 0x6c3e2820, 0x1e9e9: 0x6c4e1a20, 0x1e9ea: 0x6cefea20, 0x1e9eb: 0x6d283e20, - 0x1e9ec: 0x6ce1e020, 0x1e9ed: 0x6c6fb420, 0x1e9ee: 0x6c6fc420, 0x1e9ef: 0x6cfad220, - 0x1e9f0: 0x6d022820, 0x1e9f1: 0x6cfae220, 0x1e9f2: 0x6c5f8820, 0x1e9f3: 0x6d19ba20, - 0x1e9f4: 0x6d28c220, 0x1e9f5: 0x6d284020, 0x1e9f6: 0x6ccea820, 0x1e9f7: 0x6c822420, - 0x1e9f8: 0x6caecc20, 0x1e9f9: 0x6c5a2020, 0x1e9fa: 0x6d1c0420, 0x1e9fb: 0x6d287220, - 0x1e9fc: 0x6caef020, 0x1e9fd: 0x6c016020, 0x1e9fe: 0x6d1a1820, 0x1e9ff: 0x6cfe0a20, - // Block 0x7a8, offset 0x1ea00 - 0x1ea00: 0x6c56ea20, 0x1ea01: 0x6d12dc20, 0x1ea02: 0x6c2f6e20, 0x1ea03: 0x6cbea820, - 0x1ea04: 0x6c7c7020, 0x1ea05: 0x6cfe3a20, 0x1ea06: 0x6cd75420, 0x1ea07: 0x6c4daa20, - 0x1ea08: 0x6d05ae20, 0x1ea09: 0x6d152a20, 0x1ea0a: 0x6d05b620, 0x1ea0b: 0x6c35b420, - 0x1ea0c: 0x6cd99020, 0x1ea0d: 0x6c7cd820, 0x1ea0e: 0x6cb60c20, 0x1ea0f: 0x6c4f8220, - 0x1ea10: 0x6d238620, 0x1ea11: 0x6cece020, 0x1ea12: 0x6c048c20, 0x1ea13: 0x6c33fe20, - 0x1ea14: 0x6c2b8620, 0x1ea15: 0x6c27f220, 0x1ea16: 0x6cacbe20, 0x1ea17: 0x6cb31820, - 0x1ea18: 0x6c8e1220, 0x1ea19: 0x6c182e20, 0x1ea1a: 0x6c6e2620, 0x1ea1b: 0x6c834020, - 0x1ea1c: 0x6c516a20, 0x1ea1d: 0x6cbb9e20, 0x1ea1e: 0x6c36a020, 0x1ea1f: 0x6c357c20, - 0x1ea20: 0x6cf01220, 0x1ea21: 0x6d00e620, 0x1ea22: 0x6c7e1020, 0x1ea23: 0x6cd07020, - 0x1ea24: 0x6d156620, 0x1ea25: 0x6cd07a20, 0x1ea26: 0x6c4d2420, 0x1ea27: 0x6c332820, - 0x1ea28: 0x6d228420, 0x1ea29: 0x6cb26620, 0x1ea2a: 0x6c834220, 0x1ea2b: 0x6c3f8420, - 0x1ea2c: 0x6c63e020, 0x1ea2d: 0x6ce7f820, 0x1ea2e: 0x6c5c4a20, 0x1ea2f: 0x6c7ca020, - 0x1ea30: 0x6c63ec20, 0x1ea31: 0x6c953220, 0x1ea32: 0x6ce6e220, 0x1ea33: 0x6c199820, - 0x1ea34: 0x6d1d1020, 0x1ea35: 0x6d276a20, 0x1ea36: 0x6c55c620, 0x1ea37: 0x6c4f1020, - 0x1ea38: 0x6c6e3620, 0x1ea39: 0x6ce9be20, 0x1ea3a: 0x6ce9c020, 0x1ea3b: 0x6cb21420, - 0x1ea3c: 0x6c7f5a20, 0x1ea3d: 0x6ce9c220, 0x1ea3e: 0x6d3eb420, 0x1ea3f: 0x6d3eb220, - // Block 0x7a9, offset 0x1ea40 - 0x1ea40: 0x6c20e620, 0x1ea41: 0x6c2fc020, 0x1ea42: 0x6c7f5c20, 0x1ea43: 0x6ce02020, - 0x1ea44: 0x6c4f2220, 0x1ea45: 0x6cb93220, 0x1ea46: 0x6c783820, 0x1ea47: 0x6c257220, - 0x1ea48: 0x6d085e20, 0x1ea49: 0x6cbd4420, 0x1ea4a: 0x6d157820, 0x1ea4b: 0x6cc9d420, - 0x1ea4c: 0x6ce39e20, 0x1ea4d: 0x6c358a20, 0x1ea4e: 0x6c36ca20, 0x1ea4f: 0x6d0ce220, - 0x1ea50: 0x6cf21420, 0x1ea51: 0x6c76f820, 0x1ea52: 0x6d1e0220, 0x1ea53: 0x6d3b9820, - 0x1ea54: 0x6d0ce420, 0x1ea55: 0x6cfc3c20, 0x1ea56: 0x6d035220, 0x1ea57: 0x6d162620, - 0x1ea58: 0x6d263820, 0x1ea59: 0x6cca9620, 0x1ea5a: 0x6c2ce620, 0x1ea5b: 0x6c2ce820, - 0x1ea5c: 0x6c67ca20, 0x1ea5d: 0x6c7c4a20, 0x1ea5e: 0x6c835420, 0x1ea5f: 0x6c819220, - 0x1ea60: 0x6cb1a820, 0x1ea61: 0x6cec7820, 0x1ea62: 0x6c979a20, 0x1ea63: 0x6c247c20, - 0x1ea64: 0x6d117820, 0x1ea65: 0x6c507e20, 0x1ea66: 0x6cbc1420, 0x1ea67: 0x6c482e20, - 0x1ea68: 0x6d0ab620, 0x1ea69: 0x6d0e1a20, 0x1ea6a: 0x6c5c9e20, 0x1ea6b: 0x6c164e20, - 0x1ea6c: 0x6cc7ee20, 0x1ea6d: 0x6c9bb620, 0x1ea6e: 0x6c0d7420, 0x1ea6f: 0x6cfc6620, - 0x1ea70: 0x6cb23220, 0x1ea71: 0x6c91a620, 0x1ea72: 0x6c806620, 0x1ea73: 0x6ca8d620, - 0x1ea74: 0x6cc34620, 0x1ea75: 0x6d12be20, 0x1ea76: 0x6c2f6a20, 0x1ea77: 0x6cbe9e20, - 0x1ea78: 0x6c4d9620, 0x1ea79: 0x6cfe2420, 0x1ea7a: 0x6cd74a20, 0x1ea7b: 0x6d057e20, - 0x1ea7c: 0x6d058820, 0x1ea7d: 0x6cecd220, 0x1ea7e: 0x6c480620, 0x1ea7f: 0x6c33ec20, - // Block 0x7aa, offset 0x1ea80 - 0x1ea80: 0x6cb5b420, 0x1ea81: 0x6c047c20, 0x1ea82: 0x6cd98820, 0x1ea83: 0x6c4f7220, - 0x1ea84: 0x6d22fc20, 0x1ea85: 0x6c915420, 0x1ea86: 0x6c8e1020, 0x1ea87: 0x6cb30c20, - 0x1ea88: 0x6c6e1e20, 0x1ea89: 0x6c6ada20, 0x1ea8a: 0x6c63c820, 0x1ea8b: 0x6ce6d420, - 0x1ea8c: 0x6c513220, 0x1ea8d: 0x6d1cf420, 0x1ea8e: 0x6c6f1420, 0x1ea8f: 0x6c780220, - 0x1ea90: 0x6d152c20, 0x1ea91: 0x6cb21220, 0x1ea92: 0x6c5bee20, 0x1ea93: 0x6ce9a820, - 0x1ea94: 0x6c4ed620, 0x1ea95: 0x6d1cf820, 0x1ea96: 0x6d1cfa20, 0x1ea97: 0x6c781e20, - 0x1ea98: 0x6ce37420, 0x1ea99: 0x6d1dfe20, 0x1ea9a: 0x6c36a220, 0x1ea9b: 0x6d3b9020, - 0x1ea9c: 0x6d0ccc20, 0x1ea9d: 0x6c357e20, 0x1ea9e: 0x6ca87820, 0x1ea9f: 0x6c975a20, - 0x1eaa0: 0x6c2cdc20, 0x1eaa1: 0x6cca8c20, 0x1eaa2: 0x6c507820, 0x1eaa3: 0x6c835020, - 0x1eaa4: 0x6c163c20, 0x1eaa5: 0x6cc7e620, 0x1eaa6: 0x6cb22620, 0x1eaa7: 0x6cc33e20, - 0x1eaa8: 0x6c3c2c20, 0x1eaa9: 0x6c0c0020, 0x1eaaa: 0x6c48be20, 0x1eaab: 0x6c3eb820, - 0x1eaac: 0x6cf96e20, 0x1eaad: 0x6d2e0c20, 0x1eaae: 0x6c0c1020, 0x1eaaf: 0x6cc98020, - 0x1eab0: 0x6c038820, 0x1eab1: 0x6cdf3420, 0x1eab2: 0x6c8b2a20, 0x1eab3: 0x6c487420, - 0x1eab4: 0x6d08ba20, 0x1eab5: 0x6cce8820, 0x1eab6: 0x6c72a820, 0x1eab7: 0x6c0c3420, - 0x1eab8: 0x6cd84020, 0x1eab9: 0x6cf04820, 0x1eaba: 0x6d0fec20, 0x1eabb: 0x6d116a20, - 0x1eabc: 0x6cd9f820, 0x1eabd: 0x6c767820, 0x1eabe: 0x6cd9fa20, 0x1eabf: 0x6c386c20, - // Block 0x7ab, offset 0x1eac0 - 0x1eac0: 0x6c8ed220, 0x1eac1: 0x6cf7bc20, 0x1eac2: 0x6c8f5620, 0x1eac3: 0x6cb17020, - 0x1eac4: 0x6cb17220, 0x1eac5: 0x6c8ede20, 0x1eac6: 0x6c0c5620, 0x1eac7: 0x6c0c5820, - 0x1eac8: 0x6c0c5a20, 0x1eac9: 0x6c8a5620, 0x1eaca: 0x6c0c9e20, 0x1eacb: 0x6ccb9c20, - 0x1eacc: 0x6c3c9020, 0x1eacd: 0x6d051820, 0x1eace: 0x6c3c0e20, 0x1eacf: 0x6d0f8220, - 0x1ead0: 0x6d2dde20, 0x1ead1: 0x6c0bee20, 0x1ead2: 0x6cc97020, 0x1ead3: 0x6c725420, - 0x1ead4: 0x6cd7fc20, 0x1ead5: 0x6cd9c620, 0x1ead6: 0x6d112e20, 0x1ead7: 0x6c8e7e20, - 0x1ead8: 0x6cb16020, 0x1ead9: 0x6c0c2620, 0x1eada: 0x6c0c2820, 0x1eadb: 0x6c39f420, - 0x1eadc: 0x6c387420, 0x1eadd: 0x6c3a2e20, 0x1eade: 0x6c39ee20, 0x1eadf: 0x6cd25820, - 0x1eae0: 0x6cd24c20, 0x1eae1: 0x6c116220, 0x1eae2: 0x6c5eb020, 0x1eae3: 0x6c2f9e20, - 0x1eae4: 0x6cd8ae20, 0x1eae5: 0x6ceac620, 0x1eae6: 0x6d2d7220, 0x1eae7: 0x6cdcd220, - 0x1eae8: 0x6cfde820, 0x1eae9: 0x6cea5a20, 0x1eaea: 0x6cc5fe20, 0x1eaeb: 0x6d235e20, - 0x1eaec: 0x6c737e20, 0x1eaed: 0x6c1c2a20, 0x1eaee: 0x6d1af220, 0x1eaef: 0x6c395c20, - 0x1eaf0: 0x6c395e20, 0x1eaf1: 0x6cdcda20, 0x1eaf2: 0x6d1ae820, 0x1eaf3: 0x6ce81620, - 0x1eaf4: 0x6d152e20, 0x1eaf5: 0x6d42a620, 0x1eaf6: 0x6c09ec20, 0x1eaf7: 0x6c6b9c20, - 0x1eaf8: 0x6ce1e220, 0x1eaf9: 0x6c8f0e20, 0x1eafa: 0x6c226220, 0x1eafb: 0x6ce61420, - 0x1eafc: 0x6cd8d420, 0x1eafd: 0x6c060420, 0x1eafe: 0x6cd3b020, 0x1eaff: 0x6c350620, - // Block 0x7ac, offset 0x1eb00 - 0x1eb00: 0x6c4d7220, 0x1eb01: 0x6cc60420, 0x1eb02: 0x6ce51020, 0x1eb03: 0x6c691e20, - 0x1eb04: 0x6c63da20, 0x1eb05: 0x6c0df020, 0x1eb06: 0x6d113020, 0x1eb07: 0x6ce77420, - 0x1eb08: 0x6c226420, 0x1eb09: 0x6cfdf820, 0x1eb0a: 0x6d102a20, 0x1eb0b: 0x6c738a20, - 0x1eb0c: 0x6c37a220, 0x1eb0d: 0x6d0eb220, 0x1eb0e: 0x6c823a20, 0x1eb0f: 0x6cf68c20, - 0x1eb10: 0x6c117220, 0x1eb11: 0x6c0e8e20, 0x1eb12: 0x6ca57220, 0x1eb13: 0x6c36a420, - 0x1eb14: 0x6c10b620, 0x1eb15: 0x6c75e620, 0x1eb16: 0x6c313620, 0x1eb17: 0x6cdb0e20, - 0x1eb18: 0x6d219820, 0x1eb19: 0x6cd3d020, 0x1eb1a: 0x6d114a20, 0x1eb1b: 0x6c5d0020, - 0x1eb1c: 0x6c4cd220, 0x1eb1d: 0x6cd3d220, 0x1eb1e: 0x6c66dc20, 0x1eb1f: 0x6d3cae20, - 0x1eb20: 0x6c0df420, 0x1eb21: 0x6cfd1620, 0x1eb22: 0x6c10c020, 0x1eb23: 0x6d135020, - 0x1eb24: 0x6ce01620, 0x1eb25: 0x6c3a1e20, 0x1eb26: 0x6d2ede20, 0x1eb27: 0x6cf0de20, - 0x1eb28: 0x6c496820, 0x1eb29: 0x6c36b220, 0x1eb2a: 0x6caa9a20, 0x1eb2b: 0x6d286020, - 0x1eb2c: 0x6c55d620, 0x1eb2d: 0x6c5a1420, 0x1eb2e: 0x6ce61c20, 0x1eb2f: 0x6c5c6220, - 0x1eb30: 0x6c650c20, 0x1eb31: 0x6c543c20, 0x1eb32: 0x6c00e820, 0x1eb33: 0x6ce14c20, - 0x1eb34: 0x6c3b4820, 0x1eb35: 0x6cf0ee20, 0x1eb36: 0x6c47de20, 0x1eb37: 0x6c13b820, - 0x1eb38: 0x6cd99e20, 0x1eb39: 0x6ce15820, 0x1eb3a: 0x6c0f9820, 0x1eb3b: 0x6c42e820, - 0x1eb3c: 0x6cf90c20, 0x1eb3d: 0x6c7d2620, 0x1eb3e: 0x6c8f4e20, 0x1eb3f: 0x6cd9f220, - // Block 0x7ad, offset 0x1eb40 - 0x1eb40: 0x6ce24a20, 0x1eb41: 0x6d137c20, 0x1eb42: 0x6d27cc20, 0x1eb43: 0x6ca08a20, - 0x1eb44: 0x6ce16020, 0x1eb45: 0x6c979420, 0x1eb46: 0x6c0aa020, 0x1eb47: 0x6d245620, - 0x1eb48: 0x6d050a20, 0x1eb49: 0x6c6cc820, 0x1eb4a: 0x6cca4420, 0x1eb4b: 0x6c7d3c20, - 0x1eb4c: 0x6d3bfc20, 0x1eb4d: 0x6ccdde20, 0x1eb4e: 0x6c1c9020, 0x1eb4f: 0x6c28e620, - 0x1eb50: 0x6d193c20, 0x1eb51: 0x6c5f9020, 0x1eb52: 0x6cc53220, 0x1eb53: 0x6c19ac20, - 0x1eb54: 0x6d1de420, 0x1eb55: 0x6ce20220, 0x1eb56: 0x6cf11c20, 0x1eb57: 0x6cfe0e20, - 0x1eb58: 0x6d2dc620, 0x1eb59: 0x6c3b4a20, 0x1eb5a: 0x6c4d8a20, 0x1eb5b: 0x6c9bb020, - 0x1eb5c: 0x6d0f1420, 0x1eb5d: 0x6ca0a220, 0x1eb5e: 0x6c158020, 0x1eb5f: 0x6cfe1020, - 0x1eb60: 0x6c959820, 0x1eb61: 0x6d29cc20, 0x1eb62: 0x6ca46c20, 0x1eb63: 0x6cd22620, - 0x1eb64: 0x6c2f9020, 0x1eb65: 0x6c5e6e20, 0x1eb66: 0x6cea9e20, 0x1eb67: 0x6ce0e420, - 0x1eb68: 0x6cea4420, 0x1eb69: 0x6cf84020, 0x1eb6a: 0x6cc5ce20, 0x1eb6b: 0x6d22d220, - 0x1eb6c: 0x6c1bea20, 0x1eb6d: 0x6c392420, 0x1eb6e: 0x6d1acc20, 0x1eb6f: 0x6c665620, - 0x1eb70: 0x6cd32620, 0x1eb71: 0x6c05e820, 0x1eb72: 0x6cd89420, 0x1eb73: 0x6c34d220, - 0x1eb74: 0x6d147e20, 0x1eb75: 0x6c378c20, 0x1eb76: 0x6cc52420, 0x1eb77: 0x6cfdde20, - 0x1eb78: 0x6c50e820, 0x1eb79: 0x6c823820, 0x1eb7a: 0x6c68d820, 0x1eb7b: 0x6cf5b020, - 0x1eb7c: 0x6c0dd420, 0x1eb7d: 0x6c0e6a20, 0x1eb7e: 0x6c310c20, 0x1eb7f: 0x6c360420, - // Block 0x7ae, offset 0x1eb80 - 0x1eb80: 0x6d210020, 0x1eb81: 0x6ca56a20, 0x1eb82: 0x6c75a820, 0x1eb83: 0x6c4cbe20, - 0x1eb84: 0x6c5ce820, 0x1eb85: 0x6cfcbe20, 0x1eb86: 0x6c495020, 0x1eb87: 0x6c13a020, - 0x1eb88: 0x6c7d0220, 0x1eb89: 0x6c479820, 0x1eb8a: 0x6cd9ba20, 0x1eb8b: 0x6c14fc20, - 0x1eb8c: 0x6d130a20, 0x1eb8d: 0x6ca06020, 0x1eb8e: 0x6c0f2220, 0x1eb8f: 0x6c8e7620, - 0x1eb90: 0x6d04de20, 0x1eb91: 0x6c6ca820, 0x1eb92: 0x6c976e20, 0x1eb93: 0x6cca2820, - 0x1eb94: 0x6d3be020, 0x1eb95: 0x6ca46420, 0x1eb96: 0x6cd44220, 0x1eb97: 0x6c7c7220, - 0x1eb98: 0x6c4c9020, 0x1eb99: 0x6cfd6620, 0x1eb9a: 0x6c3b8020, 0x1eb9b: 0x6c0f3c20, - 0x1eb9c: 0x6ca64420, 0x1eb9d: 0x6c0a1420, 0x1eb9e: 0x6c0f6e20, 0x1eb9f: 0x6ce8fa20, - 0x1eba0: 0x6c4dbc20, 0x1eba1: 0x6c3a2020, 0x1eba2: 0x6c650e20, 0x1eba3: 0x6c015420, - 0x1eba4: 0x6c00fa20, 0x1eba5: 0x6c408020, 0x1eba6: 0x6cfaf620, 0x1eba7: 0x6d276c20, - 0x1eba8: 0x6d02f420, 0x1eba9: 0x6c3bb020, 0x1ebaa: 0x6cb1fe20, 0x1ebab: 0x6d02fa20, - 0x1ebac: 0x6c969820, 0x1ebad: 0x6d236020, 0x1ebae: 0x6c3caa20, 0x1ebaf: 0x6c4ed820, - 0x1ebb0: 0x6c2b7420, 0x1ebb1: 0x6ceb3220, 0x1ebb2: 0x6d306820, 0x1ebb3: 0x6c1b4220, - 0x1ebb4: 0x6d0a2420, 0x1ebb5: 0x6d3b1020, 0x1ebb6: 0x6d340c20, 0x1ebb7: 0x6cae2420, - 0x1ebb8: 0x6d034620, 0x1ebb9: 0x6cc64a20, 0x1ebba: 0x6cc97a20, 0x1ebbb: 0x6d27f820, - 0x1ebbc: 0x6cf1a420, 0x1ebbd: 0x6d348a20, 0x1ebbe: 0x6c28a020, 0x1ebbf: 0x6c935c20, - // Block 0x7af, offset 0x1ebc0 - 0x1ebc0: 0x6d1f5e20, 0x1ebc1: 0x6c0f3e20, 0x1ebc2: 0x6c060a20, 0x1ebc3: 0x6c748a20, - 0x1ebc4: 0x6ceb4220, 0x1ebc5: 0x6d184020, 0x1ebc6: 0x6cc13020, 0x1ebc7: 0x6cb4c220, - 0x1ebc8: 0x6cc13e20, 0x1ebc9: 0x6c6ee620, 0x1ebca: 0x6cb35c20, 0x1ebcb: 0x6d2f7020, - 0x1ebcc: 0x6d251220, 0x1ebcd: 0x6cadf020, 0x1ebce: 0x6d394c20, 0x1ebcf: 0x6c727220, - 0x1ebd0: 0x6d3b2620, 0x1ebd1: 0x6caa4420, 0x1ebd2: 0x6c70c820, 0x1ebd3: 0x6caf8820, - 0x1ebd4: 0x6d29fa20, 0x1ebd5: 0x6c645020, 0x1ebd6: 0x6c8d4e20, 0x1ebd7: 0x6d31f620, - 0x1ebd8: 0x6cdf3a20, 0x1ebd9: 0x6c404820, 0x1ebda: 0x6d103020, 0x1ebdb: 0x6cd2d820, - 0x1ebdc: 0x6c0a4020, 0x1ebdd: 0x6cebc220, 0x1ebde: 0x6ceb4620, 0x1ebdf: 0x6cd8e420, - 0x1ebe0: 0x6c8e9020, 0x1ebe1: 0x6c96de20, 0x1ebe2: 0x6cb13220, 0x1ebe3: 0x6ce24620, - 0x1ebe4: 0x6d36f820, 0x1ebe5: 0x6cc6b820, 0x1ebe6: 0x6ce2b620, 0x1ebe7: 0x6c308a20, - 0x1ebe8: 0x6d09ac20, 0x1ebe9: 0x6cc2a420, 0x1ebea: 0x6cd02220, 0x1ebeb: 0x6c6ee820, - 0x1ebec: 0x6c37a620, 0x1ebed: 0x6c4d7a20, 0x1ebee: 0x6c0f7020, 0x1ebef: 0x6d39ce20, - 0x1ebf0: 0x6d1a0c20, 0x1ebf1: 0x6c962a20, 0x1ebf2: 0x6d397a20, 0x1ebf3: 0x6c28bc20, - 0x1ebf4: 0x6d023820, 0x1ebf5: 0x6c8eb020, 0x1ebf6: 0x6c716a20, 0x1ebf7: 0x6cd97020, - 0x1ebf8: 0x6cbd4620, 0x1ebf9: 0x6c987a20, 0x1ebfa: 0x6c80ec20, 0x1ebfb: 0x6c4f2420, - 0x1ebfc: 0x6ce90020, 0x1ebfd: 0x6d07da20, 0x1ebfe: 0x6cea1420, 0x1ebff: 0x6c75f220, - // Block 0x7b0, offset 0x1ec00 - 0x1ec00: 0x6c35be20, 0x1ec01: 0x6c1a7a20, 0x1ec02: 0x6d03ac20, 0x1ec03: 0x6c005820, - 0x1ec04: 0x6c931420, 0x1ec05: 0x6d3c6c20, 0x1ec06: 0x6d38be20, 0x1ec07: 0x6ccf8220, - 0x1ec08: 0x6cb13620, 0x1ec09: 0x6c7d8c20, 0x1ec0a: 0x6ce24c20, 0x1ec0b: 0x6c7f2e20, - 0x1ec0c: 0x6d3fd220, 0x1ec0d: 0x6c78e220, 0x1ec0e: 0x6cb67c20, 0x1ec0f: 0x6cb67e20, - 0x1ec10: 0x6d0ede20, 0x1ec11: 0x6c3a2220, 0x1ec12: 0x6ccacc20, 0x1ec13: 0x6d0df020, - 0x1ec14: 0x6c445820, 0x1ec15: 0x6d11e220, 0x1ec16: 0x6cf54820, 0x1ec17: 0x6cb14e20, - 0x1ec18: 0x6c237620, 0x1ec19: 0x6cb15020, 0x1ec1a: 0x6cb9da20, 0x1ec1b: 0x6c3a2420, - 0x1ec1c: 0x6c5a2420, 0x1ec1d: 0x6cb9d420, 0x1ec1e: 0x6c5d6820, 0x1ec1f: 0x6d21de20, - 0x1ec20: 0x6ce3a820, 0x1ec21: 0x6cc32420, 0x1ec22: 0x6cfa1620, 0x1ec23: 0x6d3fd620, - 0x1ec24: 0x6c7cae20, 0x1ec25: 0x6cc76c20, 0x1ec26: 0x6cd84620, 0x1ec27: 0x6c488020, - 0x1ec28: 0x6ceb5c20, 0x1ec29: 0x6c4aa220, 0x1ec2a: 0x6cda0020, 0x1ec2b: 0x6cb94a20, - 0x1ec2c: 0x6c1a5a20, 0x1ec2d: 0x6d374e20, 0x1ec2e: 0x6c8ed620, 0x1ec2f: 0x6caef820, - 0x1ec30: 0x6ce2c820, 0x1ec31: 0x6cf7be20, 0x1ec32: 0x6c12b420, 0x1ec33: 0x6c31ea20, - 0x1ec34: 0x6d0efe20, 0x1ec35: 0x6d25cc20, 0x1ec36: 0x6d407220, 0x1ec37: 0x6ccad020, - 0x1ec38: 0x6ccde020, 0x1ec39: 0x6c84b020, 0x1ec3a: 0x6d376220, 0x1ec3b: 0x6cd6b020, - 0x1ec3c: 0x6c933820, 0x1ec3d: 0x6cf7c020, 0x1ec3e: 0x6c956c20, 0x1ec3f: 0x6d2eec20, - // Block 0x7b1, offset 0x1ec40 - 0x1ec40: 0x6ca19020, 0x1ec41: 0x6c030020, 0x1ec42: 0x6c118420, 0x1ec43: 0x6c0c5c20, - 0x1ec44: 0x6c237a20, 0x1ec45: 0x6cc16220, 0x1ec46: 0x6c0ac220, 0x1ec47: 0x6d376420, - 0x1ec48: 0x6d248020, 0x1ec49: 0x6d060c20, 0x1ec4a: 0x6c576c20, 0x1ec4b: 0x6c0e9e20, - 0x1ec4c: 0x6cdb7020, 0x1ec4d: 0x6cff5820, 0x1ec4e: 0x6c8c0a20, 0x1ec4f: 0x6d2ea420, - 0x1ec50: 0x6c33c620, 0x1ec51: 0x6c8eea20, 0x1ec52: 0x6ceb6220, 0x1ec53: 0x6c136a20, - 0x1ec54: 0x6c2d9e20, 0x1ec55: 0x6c68b220, 0x1ec56: 0x6ce60c20, 0x1ec57: 0x6d0f1620, - 0x1ec58: 0x6c958620, 0x1ec59: 0x6d2dca20, 0x1ec5a: 0x6c6df820, 0x1ec5b: 0x6d196a20, - 0x1ec5c: 0x6d139e20, 0x1ec5d: 0x6ceadc20, 0x1ec5e: 0x6cb20020, 0x1ec5f: 0x6d397220, - 0x1ec60: 0x6d0f2620, 0x1ec61: 0x6c902020, 0x1ec62: 0x6c937220, 0x1ec63: 0x6ce2e020, - 0x1ec64: 0x6cfda820, 0x1ec65: 0x6c630220, 0x1ec66: 0x6cd6ca20, 0x1ec67: 0x6c719c20, - 0x1ec68: 0x6cf7d020, 0x1ec69: 0x6c585020, 0x1ec6a: 0x6c84ee20, 0x1ec6b: 0x6c0c6820, - 0x1ec6c: 0x6c968c20, 0x1ec6d: 0x6d22ba20, 0x1ec6e: 0x6ceae220, 0x1ec6f: 0x6d09da20, - 0x1ec70: 0x6c1afa20, 0x1ec71: 0x6cc0d820, 0x1ec72: 0x6cc63e20, 0x1ec73: 0x6c0eb220, - 0x1ec74: 0x6c935020, 0x1ec75: 0x6d29f820, 0x1ec76: 0x6cd2ba20, 0x1ec77: 0x6cd89620, - 0x1ec78: 0x6c3fbc20, 0x1ec79: 0x6c706420, 0x1ec7a: 0x6d404820, 0x1ec7b: 0x6d3ab820, - 0x1ec7c: 0x6cebc020, 0x1ec7d: 0x6caa4020, 0x1ec7e: 0x6c643820, 0x1ec7f: 0x6d16d420, - // Block 0x7b2, offset 0x1ec80 - 0x1ec80: 0x6c273c20, 0x1ec81: 0x6cfe9020, 0x1ec82: 0x6c96b820, 0x1ec83: 0x6d19bc20, - 0x1ec84: 0x6c683a20, 0x1ec85: 0x6c572e20, 0x1ec86: 0x6c95ee20, 0x1ec87: 0x6c4d5c20, - 0x1ec88: 0x6cb10820, 0x1ec89: 0x6c0bf020, 0x1ec8a: 0x6c83b420, 0x1ec8b: 0x6c1a6c20, - 0x1ec8c: 0x6d0e5820, 0x1ec8d: 0x6d036e20, 0x1ec8e: 0x6cbd2820, 0x1ec8f: 0x6c75aa20, - 0x1ec90: 0x6cb5e220, 0x1ec91: 0x6cb5e420, 0x1ec92: 0x6c78aa20, 0x1ec93: 0x6d3c5c20, - 0x1ec94: 0x6d3f7e20, 0x1ec95: 0x6cdaae20, 0x1ec96: 0x6c116420, 0x1ec97: 0x6cb14a20, - 0x1ec98: 0x6d364820, 0x1ec99: 0x6c7c8220, 0x1ec9a: 0x6ccab020, 0x1ec9b: 0x6cf4f620, - 0x1ec9c: 0x6c02da20, 0x1ec9d: 0x6c8e7820, 0x1ec9e: 0x6cb8fa20, 0x1ec9f: 0x6ccd9020, - 0x1eca0: 0x6c0c1220, 0x1eca1: 0x6c955020, 0x1eca2: 0x6c233620, 0x1eca3: 0x6c15e220, - 0x1eca4: 0x6d395c20, 0x1eca5: 0x6c62c420, 0x1eca6: 0x6cd6ac20, 0x1eca7: 0x6cfd9420, - 0x1eca8: 0x6c476e20, 0x1eca9: 0x6cefb420, 0x1ecaa: 0x6cefd220, 0x1ecab: 0x6cefd420, - 0x1ecac: 0x6d214020, 0x1ecad: 0x6c422420, 0x1ecae: 0x6d17d620, 0x1ecaf: 0x6c01ec20, - 0x1ecb0: 0x6ce7f220, 0x1ecb1: 0x6c6bf020, 0x1ecb2: 0x6c065e20, 0x1ecb3: 0x6c074e20, - 0x1ecb4: 0x6c220c20, 0x1ecb5: 0x6ce3c620, 0x1ecb6: 0x6c2c0020, 0x1ecb7: 0x6c7a5620, - 0x1ecb8: 0x6c4d2820, 0x1ecb9: 0x6cbba020, 0x1ecba: 0x6c543020, 0x1ecbb: 0x6c7af020, - 0x1ecbc: 0x6c443220, 0x1ecbd: 0x6ce9ee20, 0x1ecbe: 0x6c452020, 0x1ecbf: 0x6cb12a20, - // Block 0x7b3, offset 0x1ecc0 - 0x1ecc0: 0x6c0a8220, 0x1ecc1: 0x6c783c20, 0x1ecc2: 0x6cb87a20, 0x1ecc3: 0x6d21ce20, - 0x1ecc4: 0x6cdc1420, 0x1ecc5: 0x6c90d020, 0x1ecc6: 0x6c0fb220, 0x1ecc7: 0x6cff4620, - 0x1ecc8: 0x6c055a20, 0x1ecc9: 0x6c0fb420, 0x1ecca: 0x6c221420, 0x1eccb: 0x6c7b5e20, - 0x1eccc: 0x6c0d9220, 0x1eccd: 0x6ca09420, 0x1ecce: 0x6c8a5220, 0x1eccf: 0x6c90da20, - 0x1ecd0: 0x6cff5220, 0x1ecd1: 0x6c31fe20, 0x1ecd2: 0x6d29f220, 0x1ecd3: 0x6cdc1a20, - 0x1ecd4: 0x6ce3d020, 0x1ecd5: 0x6c0d9620, 0x1ecd6: 0x6c7b6020, 0x1ecd7: 0x6c91a820, - 0x1ecd8: 0x6c42bc20, 0x1ecd9: 0x6c42c420, 0x1ecda: 0x6cbc5020, 0x1ecdb: 0x6c779420, - 0x1ecdc: 0x6cbc2c20, 0x1ecdd: 0x6c819420, 0x1ecde: 0x6ccb0c20, 0x1ecdf: 0x6c0bf420, - 0x1ece0: 0x6c7d6e20, 0x1ece1: 0x6c7d7620, 0x1ece2: 0x6c2b7620, 0x1ece3: 0x6c39da20, - 0x1ece4: 0x6d04ec20, 0x1ece5: 0x6cc47e20, 0x1ece6: 0x6c98f820, 0x1ece7: 0x6c28a220, - 0x1ece8: 0x6c7d7e20, 0x1ece9: 0x6c0d8620, 0x1ecea: 0x6c383e20, 0x1eceb: 0x6ce5a220, - 0x1ecec: 0x6caf8a20, 0x1eced: 0x6d3e9c20, 0x1ecee: 0x6c384220, 0x1ecef: 0x6cc48620, - 0x1ecf0: 0x6ce41a20, 0x1ecf1: 0x6c066420, 0x1ecf2: 0x6c0a4220, 0x1ecf3: 0x6c990420, - 0x1ecf4: 0x6c3eea20, 0x1ecf5: 0x6c376a20, 0x1ecf6: 0x6cc6ba20, 0x1ecf7: 0x6cc14420, - 0x1ecf8: 0x6c45b620, 0x1ecf9: 0x6d04f820, 0x1ecfa: 0x6c7e1620, 0x1ecfb: 0x6c628e20, - 0x1ecfc: 0x6caed220, 0x1ecfd: 0x6d3b6020, 0x1ecfe: 0x6cce8e20, 0x1ecff: 0x6cdd4420, - // Block 0x7b4, offset 0x1ed00 - 0x1ed00: 0x6ce43620, 0x1ed01: 0x6c86ba20, 0x1ed02: 0x6c0d8a20, 0x1ed03: 0x6d3fd420, - 0x1ed04: 0x6c2baa20, 0x1ed05: 0x6caee420, 0x1ed06: 0x6cd94820, 0x1ed07: 0x6d32f820, - 0x1ed08: 0x6cc32220, 0x1ed09: 0x6d3fd820, 0x1ed0a: 0x6cd76220, 0x1ed0b: 0x6c660e20, - 0x1ed0c: 0x6ceb9620, 0x1ed0d: 0x6c55f420, 0x1ed0e: 0x6c7eae20, 0x1ed0f: 0x6c6f8e20, - 0x1ed10: 0x6cb6a020, 0x1ed11: 0x6c889820, 0x1ed12: 0x6d320420, 0x1ed13: 0x6c0d9420, - 0x1ed14: 0x6caefa20, 0x1ed15: 0x6c96e620, 0x1ed16: 0x6cca0e20, 0x1ed17: 0x6c979e20, - 0x1ed18: 0x6c97a020, 0x1ed19: 0x6ccbbc20, 0x1ed1a: 0x6d061020, 0x1ed1b: 0x6c8b7a20, - 0x1ed1c: 0x6cb95420, 0x1ed1d: 0x6cb95220, 0x1ed1e: 0x6ca46220, 0x1ed1f: 0x6c58cc20, - 0x1ed20: 0x6c7e3220, 0x1ed21: 0x6ca94220, 0x1ed22: 0x6c0d9820, 0x1ed23: 0x6c8b8a20, - 0x1ed24: 0x6cc4fe20, 0x1ed25: 0x6c310e20, 0x1ed26: 0x6c313420, 0x1ed27: 0x6ca53620, - 0x1ed28: 0x6c53dc20, 0x1ed29: 0x6cf90e20, 0x1ed2a: 0x6c314e20, 0x1ed2b: 0x6c4e7220, - 0x1ed2c: 0x6c315420, 0x1ed2d: 0x6c315220, 0x1ed2e: 0x6c6f9620, 0x1ed2f: 0x6c170e20, - 0x1ed30: 0x6d249c20, 0x1ed31: 0x6d24a420, 0x1ed32: 0x6c43e020, 0x1ed33: 0x6d0ecc20, - 0x1ed34: 0x6c3f8e20, 0x1ed35: 0x6cbdb820, 0x1ed36: 0x6c4a9e20, 0x1ed37: 0x6d3fdc20, - 0x1ed38: 0x6c8f5820, 0x1ed39: 0x6c4aa620, 0x1ed3a: 0x6cce2a20, 0x1ed3b: 0x6d248220, - 0x1ed3c: 0x6c4ae220, 0x1ed3d: 0x6c9a9620, 0x1ed3e: 0x6c623220, 0x1ed3f: 0x6cb61220, - // Block 0x7b5, offset 0x1ed40 - 0x1ed40: 0x6c40da20, 0x1ed41: 0x6c7c9020, 0x1ed42: 0x6c5cf620, 0x1ed43: 0x6c038c20, - 0x1ed44: 0x6cb39c20, 0x1ed45: 0x6c9aa620, 0x1ed46: 0x6d05c820, 0x1ed47: 0x6d0dd220, - 0x1ed48: 0x6cff1a20, 0x1ed49: 0x6c89a220, 0x1ed4a: 0x6d242620, 0x1ed4b: 0x6ce9ca20, - 0x1ed4c: 0x6cb53e20, 0x1ed4d: 0x6cee3e20, 0x1ed4e: 0x6c89a820, 0x1ed4f: 0x6cf0f020, - 0x1ed50: 0x6c41bc20, 0x1ed51: 0x6c1aea20, 0x1ed52: 0x6cb17420, 0x1ed53: 0x6c0ab620, - 0x1ed54: 0x6ca09620, 0x1ed55: 0x6c616220, 0x1ed56: 0x6d060820, 0x1ed57: 0x6c1e3e20, - 0x1ed58: 0x6d0e2620, 0x1ed59: 0x6d2dcc20, 0x1ed5a: 0x6d211220, 0x1ed5b: 0x6c29c420, - 0x1ed5c: 0x6cc57620, 0x1ed5d: 0x6c6b0220, 0x1ed5e: 0x6c03f620, 0x1ed5f: 0x6c537c20, - 0x1ed60: 0x6ceacc20, 0x1ed61: 0x6c2e3620, 0x1ed62: 0x6c614e20, 0x1ed63: 0x6d073620, - 0x1ed64: 0x6c358020, 0x1ed65: 0x6c367c20, 0x1ed66: 0x6ccc1220, 0x1ed67: 0x6c4f8620, - 0x1ed68: 0x6cea6620, 0x1ed69: 0x6ca15e20, 0x1ed6a: 0x6c6c0020, 0x1ed6b: 0x6cd07220, - 0x1ed6c: 0x6c04d620, 0x1ed6d: 0x6d25a420, 0x1ed6e: 0x6cb01420, 0x1ed6f: 0x6c91d420, - 0x1ed70: 0x6cf1aa20, 0x1ed71: 0x6c55a620, 0x1ed72: 0x6c915a20, 0x1ed73: 0x6d289a20, - 0x1ed74: 0x6c39ae20, 0x1ed75: 0x6c3b9020, 0x1ed76: 0x6ca36820, 0x1ed77: 0x6d1f6c20, - 0x1ed78: 0x6cb15220, 0x1ed79: 0x6ca1b620, 0x1ed7a: 0x6c517e20, 0x1ed7b: 0x6cf9fa20, - 0x1ed7c: 0x6cc14620, 0x1ed7d: 0x6c4e3820, 0x1ed7e: 0x6caf9420, 0x1ed7f: 0x6c8d6220, - // Block 0x7b6, offset 0x1ed80 - 0x1ed80: 0x6ceb5220, 0x1ed81: 0x6c0e9820, 0x1ed82: 0x6cc0a020, 0x1ed83: 0x6cb2d220, - 0x1ed84: 0x6c3f0620, 0x1ed85: 0x6c0a6420, 0x1ed86: 0x6c22a420, 0x1ed87: 0x6cf0e020, - 0x1ed88: 0x6c70ce20, 0x1ed89: 0x6c2de220, 0x1ed8a: 0x6c03c620, 0x1ed8b: 0x6d1f7a20, - 0x1ed8c: 0x6c4bf020, 0x1ed8d: 0x6caf9620, 0x1ed8e: 0x6ca70620, 0x1ed8f: 0x6d03a020, - 0x1ed90: 0x6cdf4020, 0x1ed91: 0x6c066a20, 0x1ed92: 0x6c406020, 0x1ed93: 0x6d2c9820, - 0x1ed94: 0x6c728620, 0x1ed95: 0x6c473620, 0x1ed96: 0x6cd41e20, 0x1ed97: 0x6c309a20, - 0x1ed98: 0x6c27b020, 0x1ed99: 0x6cdeba20, 0x1ed9a: 0x6c6b4c20, 0x1ed9b: 0x6cd50e20, - 0x1ed9c: 0x6c548220, 0x1ed9d: 0x6cfe0420, 0x1ed9e: 0x6c376e20, 0x1ed9f: 0x6c01d620, - 0x1eda0: 0x6cef4820, 0x1eda1: 0x6d2fe620, 0x1eda2: 0x6d39d020, 0x1eda3: 0x6d1b8220, - 0x1eda4: 0x6c8b4020, 0x1eda5: 0x6c962e20, 0x1eda6: 0x6ce79420, 0x1eda7: 0x6ce3c820, - 0x1eda8: 0x6d18e220, 0x1eda9: 0x6c0e3020, 0x1edaa: 0x6cf03420, 0x1edab: 0x6c688a20, - 0x1edac: 0x6c7a6820, 0x1edad: 0x6c4a9220, 0x1edae: 0x6cfae620, 0x1edaf: 0x6c444820, - 0x1edb0: 0x6c5b4420, 0x1edb1: 0x6c81fc20, 0x1edb2: 0x6c40b820, 0x1edb3: 0x6c77ca20, - 0x1edb4: 0x6d055e20, 0x1edb5: 0x6c346820, 0x1edb6: 0x6c758820, 0x1edb7: 0x6ce3a020, - 0x1edb8: 0x6c9e4620, 0x1edb9: 0x6cce9220, 0x1edba: 0x6d2c9a20, 0x1edbb: 0x6cdd4620, - 0x1edbc: 0x6cbd4820, 0x1edbd: 0x6d21d020, 0x1edbe: 0x6ca57820, 0x1edbf: 0x6d30b420, - // Block 0x7b7, offset 0x1edc0 - 0x1edc0: 0x6c4bf620, 0x1edc1: 0x6c452420, 0x1edc2: 0x6cdb7c20, 0x1edc3: 0x6cf40220, - 0x1edc4: 0x6cc0a620, 0x1edc5: 0x6ccd1820, 0x1edc6: 0x6cb42020, 0x1edc7: 0x6c596220, - 0x1edc8: 0x6ce5a820, 0x1edc9: 0x6c854020, 0x1edca: 0x6ccc2420, 0x1edcb: 0x6ccc2620, - 0x1edcc: 0x6c77d020, 0x1edcd: 0x6c9b7e20, 0x1edce: 0x6c1a8e20, 0x1edcf: 0x6c87e620, - 0x1edd0: 0x6d409820, 0x1edd1: 0x6cf94c20, 0x1edd2: 0x6d1e6420, 0x1edd3: 0x6ca61020, - 0x1edd4: 0x6d3eba20, 0x1edd5: 0x6cb68820, 0x1edd6: 0x6d330c20, 0x1edd7: 0x6cfe0620, - 0x1edd8: 0x6ca57a20, 0x1edd9: 0x6c216e20, 0x1edda: 0x6c62c620, 0x1eddb: 0x6c2dec20, - 0x1eddc: 0x6cbd0020, 0x1eddd: 0x6c482c20, 0x1edde: 0x6d38f220, 0x1eddf: 0x6c302420, - 0x1ede0: 0x6c7f3020, 0x1ede1: 0x6c3aec20, 0x1ede2: 0x6ca61420, 0x1ede3: 0x6d192220, - 0x1ede4: 0x6c7d8e20, 0x1ede5: 0x6c932620, 0x1ede6: 0x6c703820, 0x1ede7: 0x6c168620, - 0x1ede8: 0x6c6de620, 0x1ede9: 0x6c951220, 0x1edea: 0x6c8d8a20, 0x1edeb: 0x6d406e20, - 0x1edec: 0x6c849420, 0x1eded: 0x6c9bf420, 0x1edee: 0x6d3fde20, 0x1edef: 0x6d375220, - 0x1edf0: 0x6ca70c20, 0x1edf1: 0x6c570420, 0x1edf2: 0x6d24c420, 0x1edf3: 0x6c2cb620, - 0x1edf4: 0x6cd20c20, 0x1edf5: 0x6cd02c20, 0x1edf6: 0x6c5d1620, 0x1edf7: 0x6ce3ac20, - 0x1edf8: 0x6c544020, 0x1edf9: 0x6d03b220, 0x1edfa: 0x6d39e420, 0x1edfb: 0x6c7ebc20, - 0x1edfc: 0x6d3fe020, 0x1edfd: 0x6d2b6820, 0x1edfe: 0x6c0b1820, 0x1edff: 0x6c0b1a20, - // Block 0x7b8, offset 0x1ee00 - 0x1ee00: 0x6c596420, 0x1ee01: 0x6cc32a20, 0x1ee02: 0x6d2b7020, 0x1ee03: 0x6ceeca20, - 0x1ee04: 0x6ceecc20, 0x1ee05: 0x6d21e620, 0x1ee06: 0x6c212420, 0x1ee07: 0x6cc77020, - 0x1ee08: 0x6c2f0a20, 0x1ee09: 0x6c5a2e20, 0x1ee0a: 0x6c893220, 0x1ee0b: 0x6d0e0620, - 0x1ee0c: 0x6cbfda20, 0x1ee0d: 0x6cbfdc20, 0x1ee0e: 0x6c661020, 0x1ee0f: 0x6c089c20, - 0x1ee10: 0x6c36dc20, 0x1ee11: 0x6d0ff220, 0x1ee12: 0x6c409020, 0x1ee13: 0x6cc9d820, - 0x1ee14: 0x6c41fa20, 0x1ee15: 0x6cf98220, 0x1ee16: 0x6ceb9820, 0x1ee17: 0x6c55fa20, - 0x1ee18: 0x6cd42420, 0x1ee19: 0x6cc93420, 0x1ee1a: 0x6d08d620, 0x1ee1b: 0x6cf17220, - 0x1ee1c: 0x6cba8820, 0x1ee1d: 0x6c508020, 0x1ee1e: 0x6cf39020, 0x1ee1f: 0x6c39b420, - 0x1ee20: 0x6ccad620, 0x1ee21: 0x6c8ee420, 0x1ee22: 0x6c96aa20, 0x1ee23: 0x6cd29620, - 0x1ee24: 0x6cd21420, 0x1ee25: 0x6c493a20, 0x1ee26: 0x6d3ec220, 0x1ee27: 0x6ce2d020, - 0x1ee28: 0x6cde2620, 0x1ee29: 0x6d117a20, 0x1ee2a: 0x6c35a820, 0x1ee2b: 0x6d1e0820, - 0x1ee2c: 0x6cb9e420, 0x1ee2d: 0x6cb6a420, 0x1ee2e: 0x6cf17420, 0x1ee2f: 0x6cc93820, - 0x1ee30: 0x6cd0ce20, 0x1ee31: 0x6c889e20, 0x1ee32: 0x6c028e20, 0x1ee33: 0x6c823420, - 0x1ee34: 0x6c5b0c20, 0x1ee35: 0x6c9fdc20, 0x1ee36: 0x6c62e620, 0x1ee37: 0x6ce5b620, - 0x1ee38: 0x6cc16820, 0x1ee39: 0x6c654a20, 0x1ee3a: 0x6cd03020, 0x1ee3b: 0x6c97a820, - 0x1ee3c: 0x6cf7c620, 0x1ee3d: 0x6cc0aa20, 0x1ee3e: 0x6c0c9c20, 0x1ee3f: 0x6c62e820, - // Block 0x7b9, offset 0x1ee40 - 0x1ee40: 0x6c62d820, 0x1ee41: 0x6d3a3c20, 0x1ee42: 0x6c679a20, 0x1ee43: 0x6d051420, - 0x1ee44: 0x6d3b9c20, 0x1ee45: 0x6d1de620, 0x1ee46: 0x6d2eee20, 0x1ee47: 0x6c776420, - 0x1ee48: 0x6d093620, 0x1ee49: 0x6c0cce20, 0x1ee4a: 0x6d248a20, 0x1ee4b: 0x6cc16a20, - 0x1ee4c: 0x6cfe6e20, 0x1ee4d: 0x6c0ea220, 0x1ee4e: 0x6c697820, 0x1ee4f: 0x6d0a5a20, - 0x1ee50: 0x6cdb7220, 0x1ee51: 0x6c5a3a20, 0x1ee52: 0x6d420020, 0x1ee53: 0x6ccdee20, - 0x1ee54: 0x6ccdf020, 0x1ee55: 0x6c387620, 0x1ee56: 0x6c4bae20, 0x1ee57: 0x6c8c0c20, - 0x1ee58: 0x6d0a5c20, 0x1ee59: 0x6c9e8620, 0x1ee5a: 0x6cf82c20, 0x1ee5b: 0x6d2bbe20, - 0x1ee5c: 0x6cfe7820, 0x1ee5d: 0x6c3c0620, 0x1ee5e: 0x6c494620, 0x1ee5f: 0x6c548a20, - 0x1ee60: 0x6c7b4e20, 0x1ee61: 0x6d2b7220, 0x1ee62: 0x6ccada20, 0x1ee63: 0x6d2dd020, - 0x1ee64: 0x6c420420, 0x1ee65: 0x6c4bb220, 0x1ee66: 0x6d1d6020, 0x1ee67: 0x6c855220, - 0x1ee68: 0x6c16da20, 0x1ee69: 0x6c836e20, 0x1ee6a: 0x6cd63a20, 0x1ee6b: 0x6c011020, - 0x1ee6c: 0x6cc7f220, 0x1ee6d: 0x6c62fe20, 0x1ee6e: 0x6d076e20, 0x1ee6f: 0x6c56f220, - 0x1ee70: 0x6cd63c20, 0x1ee71: 0x6c87bc20, 0x1ee72: 0x6c8b8e20, 0x1ee73: 0x6c87c620, - 0x1ee74: 0x6c9f2020, 0x1ee75: 0x6d31a620, 0x1ee76: 0x6cfe1220, 0x1ee77: 0x6c370220, - 0x1ee78: 0x6c91ac20, 0x1ee79: 0x6c49ca20, 0x1ee7a: 0x6c84f020, 0x1ee7b: 0x6cfb1c20, - 0x1ee7c: 0x6d20ce20, 0x1ee7d: 0x6c29c220, 0x1ee7e: 0x6c613a20, 0x1ee7f: 0x6d1f4220, - // Block 0x7ba, offset 0x1ee80 - 0x1ee80: 0x6cea5c20, 0x1ee81: 0x6c91c020, 0x1ee82: 0x6c39ac20, 0x1ee83: 0x6c035420, - 0x1ee84: 0x6c515220, 0x1ee85: 0x6c03be20, 0x1ee86: 0x6cb2ba20, 0x1ee87: 0x6ca70020, - 0x1ee88: 0x6c915620, 0x1ee89: 0x6d1f5220, 0x1ee8a: 0x6d2c8020, 0x1ee8b: 0x6c401420, - 0x1ee8c: 0x6c03c020, 0x1ee8d: 0x6c065620, 0x1ee8e: 0x6c547620, 0x1ee8f: 0x6cb00220, - 0x1ee90: 0x6cdf2c20, 0x1ee91: 0x6c4a8220, 0x1ee92: 0x6c6b1620, 0x1ee93: 0x6c77b420, - 0x1ee94: 0x6ceffa20, 0x1ee95: 0x6c376420, 0x1ee96: 0x6ce77620, 0x1ee97: 0x6d2b6220, - 0x1ee98: 0x6c547c20, 0x1ee99: 0x6c7b2e20, 0x1ee9a: 0x6c625a20, 0x1ee9b: 0x6c686220, - 0x1ee9c: 0x6cfac620, 0x1ee9d: 0x6d2c8820, 0x1ee9e: 0x6cfdfa20, 0x1ee9f: 0x6d0a2c20, - 0x1eea0: 0x6c451e20, 0x1eea1: 0x6c843820, 0x1eea2: 0x6c884620, 0x1eea3: 0x6c64ea20, - 0x1eea4: 0x6c852c20, 0x1eea5: 0x6cd28820, 0x1eea6: 0x6ce5a420, 0x1eea7: 0x6c4be820, - 0x1eea8: 0x6ccc1620, 0x1eea9: 0x6c595020, 0x1eeaa: 0x6c758020, 0x1eeab: 0x6c626e20, - 0x1eeac: 0x6d1e5a20, 0x1eead: 0x6cbe5820, 0x1eeae: 0x6c8d6420, 0x1eeaf: 0x6cb65820, - 0x1eeb0: 0x6d406820, 0x1eeb1: 0x6c3a1c20, 0x1eeb2: 0x6c7d8620, 0x1eeb3: 0x6c168020, - 0x1eeb4: 0x6c482a20, 0x1eeb5: 0x6ca60a20, 0x1eeb6: 0x6ca70820, 0x1eeb7: 0x6c2de420, - 0x1eeb8: 0x6c6dd420, 0x1eeb9: 0x6cd02420, 0x1eeba: 0x6cd20020, 0x1eebb: 0x6d3e9e20, - 0x1eebc: 0x6c3bf820, 0x1eebd: 0x6c2ef620, 0x1eebe: 0x6c089420, 0x1eebf: 0x6c16ce20, - // Block 0x7bb, offset 0x1eec0 - 0x1eec0: 0x6ce39020, 0x1eec1: 0x6cf16c20, 0x1eec2: 0x6ceec420, 0x1eec3: 0x6cc9d220, - 0x1eec4: 0x6c36c020, 0x1eec5: 0x6cbfd220, 0x1eec6: 0x6c407020, 0x1eec7: 0x6c5a1620, - 0x1eec8: 0x6cc31e20, 0x1eec9: 0x6c678a20, 0x1eeca: 0x6c0b1220, 0x1eecb: 0x6ccac820, - 0x1eecc: 0x6c028020, 0x1eecd: 0x6cb68020, 0x1eece: 0x6cde1e20, 0x1eecf: 0x6c493220, - 0x1eed0: 0x6d116620, 0x1eed1: 0x6cad1220, 0x1eed2: 0x6c651e20, 0x1eed3: 0x6c823020, - 0x1eed4: 0x6c0c9a20, 0x1eed5: 0x6d093420, 0x1eed6: 0x6c0cc820, 0x1eed7: 0x6c979820, - 0x1eed8: 0x6c9fd820, 0x1eed9: 0x6d1dd220, 0x1eeda: 0x6cf10420, 0x1eedb: 0x6cf7b620, - 0x1eedc: 0x6c4ba020, 0x1eedd: 0x6ccde220, 0x1eede: 0x6c8c0620, 0x1eedf: 0x6d41fe20, - 0x1eee0: 0x6c56e420, 0x1eee1: 0x6c41fe20, 0x1eee2: 0x6c854a20, 0x1eee3: 0x6d2dc820, - 0x1eee4: 0x6c496e20, 0x1eee5: 0x6ca79a20, 0x1eee6: 0x6d15f420, 0x1eee7: 0x6c3ebc20, - 0x1eee8: 0x6c864220, 0x1eee9: 0x6c6f7e20, 0x1eeea: 0x6c102220, 0x1eeeb: 0x6d0e8e20, - 0x1eeec: 0x6c3f5020, 0x1eeed: 0x6c2dd020, 0x1eeee: 0x6c5efc20, 0x1eeef: 0x6c3cea20, - 0x1eef0: 0x6cc83620, 0x1eef1: 0x6c41ac20, 0x1eef2: 0x6cd1e820, 0x1eef3: 0x6c3cee20, - 0x1eef4: 0x6ca01420, 0x1eef5: 0x6c060c20, 0x1eef6: 0x6d250820, 0x1eef7: 0x6d341420, - 0x1eef8: 0x6c56c420, 0x1eef9: 0x6cbd9a20, 0x1eefa: 0x6c3d9820, 0x1eefb: 0x6c049620, - 0x1eefc: 0x6cf1ac20, 0x1eefd: 0x6c64ec20, 0x1eefe: 0x6cd1f620, 0x1eeff: 0x6d23e420, - // Block 0x7bc, offset 0x1ef00 - 0x1ef00: 0x6c3d3220, 0x1ef01: 0x6d10b620, 0x1ef02: 0x6c74b020, 0x1ef03: 0x6c74b220, - 0x1ef04: 0x6cb06c20, 0x1ef05: 0x6c583020, 0x1ef06: 0x6d326820, 0x1ef07: 0x6c061220, - 0x1ef08: 0x6d0eb420, 0x1ef09: 0x6d0af620, 0x1ef0a: 0x6d336420, 0x1ef0b: 0x6c399c20, - 0x1ef0c: 0x6c3cf020, 0x1ef0d: 0x6cf1ae20, 0x1ef0e: 0x6cab5220, 0x1ef0f: 0x6c279220, - 0x1ef10: 0x6c43ac20, 0x1ef11: 0x6cc7ca20, 0x1ef12: 0x6c8d6620, 0x1ef13: 0x6c9eea20, - 0x1ef14: 0x6c3eec20, 0x1ef15: 0x6ceb5420, 0x1ef16: 0x6c9f7c20, 0x1ef17: 0x6c869620, - 0x1ef18: 0x6c0b5020, 0x1ef19: 0x6d36fc20, 0x1ef1a: 0x6c43ae20, 0x1ef1b: 0x6d251420, - 0x1ef1c: 0x6c227620, 0x1ef1d: 0x6cc1cc20, 0x1ef1e: 0x6cff1c20, 0x1ef1f: 0x6c1adc20, - 0x1ef20: 0x6c28c020, 0x1ef21: 0x6c70d020, 0x1ef22: 0x6d11d620, 0x1ef23: 0x6c473820, - 0x1ef24: 0x6c301820, 0x1ef25: 0x6d240020, 0x1ef26: 0x6d0f6e20, 0x1ef27: 0x6cc73a20, - 0x1ef28: 0x6d0afe20, 0x1ef29: 0x6ce60420, 0x1ef2a: 0x6d240220, 0x1ef2b: 0x6ce54420, - 0x1ef2c: 0x6d1bf820, 0x1ef2d: 0x6c331620, 0x1ef2e: 0x6cf38620, 0x1ef2f: 0x6c377020, - 0x1ef30: 0x6c487c20, 0x1ef31: 0x6c00d420, 0x1ef32: 0x6d341a20, 0x1ef33: 0x6d0ed620, - 0x1ef34: 0x6c527a20, 0x1ef35: 0x6cff2c20, 0x1ef36: 0x6c63f020, 0x1ef37: 0x6c8b4220, - 0x1ef38: 0x6d39d220, 0x1ef39: 0x6d0fe220, 0x1ef3a: 0x6ce39220, 0x1ef3b: 0x6c539220, - 0x1ef3c: 0x6c963020, 0x1ef3d: 0x6cc7da20, 0x1ef3e: 0x6ca1f220, 0x1ef3f: 0x6c43b820, - // Block 0x7bd, offset 0x1ef40 - 0x1ef40: 0x6cc57e20, 0x1ef41: 0x6c688c20, 0x1ef42: 0x6d050220, 0x1ef43: 0x6d38ba20, - 0x1ef44: 0x6d341c20, 0x1ef45: 0x6c963220, 0x1ef46: 0x6c528c20, 0x1ef47: 0x6ca77620, - 0x1ef48: 0x6c370820, 0x1ef49: 0x6c944620, 0x1ef4a: 0x6c63f220, 0x1ef4b: 0x6c62b420, - 0x1ef4c: 0x6ce90420, 0x1ef4d: 0x6c583820, 0x1ef4e: 0x6ceb9220, 0x1ef4f: 0x6c104a20, - 0x1ef50: 0x6cf40420, 0x1ef51: 0x6c730820, 0x1ef52: 0x6d244820, 0x1ef53: 0x6c0f9c20, - 0x1ef54: 0x6c75f620, 0x1ef55: 0x6d0aae20, 0x1ef56: 0x6c089220, 0x1ef57: 0x6cf71020, - 0x1ef58: 0x6c75f820, 0x1ef59: 0x6c717620, 0x1ef5a: 0x6ce87e20, 0x1ef5b: 0x6c6de420, - 0x1ef5c: 0x6ce3a220, 0x1ef5d: 0x6c359020, 0x1ef5e: 0x6c359220, 0x1ef5f: 0x6c7bcc20, - 0x1ef60: 0x6c55e820, 0x1ef61: 0x6cf48a20, 0x1ef62: 0x6cd02a20, 0x1ef63: 0x6c7f6620, - 0x1ef64: 0x6c69ee20, 0x1ef65: 0x6cacca20, 0x1ef66: 0x6c932820, 0x1ef67: 0x6cb02c20, - 0x1ef68: 0x6cd51a20, 0x1ef69: 0x6c3f2220, 0x1ef6a: 0x6c015e20, 0x1ef6b: 0x6d3dd020, - 0x1ef6c: 0x6caef420, 0x1ef6d: 0x6cbdba20, 0x1ef6e: 0x6cb94220, 0x1ef6f: 0x6c06be20, - 0x1ef70: 0x6c2dee20, 0x1ef71: 0x6c932a20, 0x1ef72: 0x6cc42c20, 0x1ef73: 0x6c652a20, - 0x1ef74: 0x6c718420, 0x1ef75: 0x6ce92a20, 0x1ef76: 0x6d0b0420, 0x1ef77: 0x6d252020, - 0x1ef78: 0x6cb68e20, 0x1ef79: 0x6c849620, 0x1ef7a: 0x6d138620, 0x1ef7b: 0x6d3c7020, - 0x1ef7c: 0x6c798e20, 0x1ef7d: 0x6c352020, 0x1ef7e: 0x6c7d9020, 0x1ef7f: 0x6cd11c20, - // Block 0x7be, offset 0x1ef80 - 0x1ef80: 0x6cb69020, 0x1ef81: 0x6c6de820, 0x1ef82: 0x6d192420, 0x1ef83: 0x6d192620, - 0x1ef84: 0x6c6dea20, 0x1ef85: 0x6d3ebc20, 0x1ef86: 0x6c7f3220, 0x1ef87: 0x6c302620, - 0x1ef88: 0x6cb55020, 0x1ef89: 0x6c219420, 0x1ef8a: 0x6c44e620, 0x1ef8b: 0x6c70e020, - 0x1ef8c: 0x6c74f620, 0x1ef8d: 0x6d199620, 0x1ef8e: 0x6d422420, 0x1ef8f: 0x6c5f8a20, - 0x1ef90: 0x6cd62c20, 0x1ef91: 0x6d1c1420, 0x1ef92: 0x6c1c9220, 0x1ef93: 0x6c9e8220, - 0x1ef94: 0x6cc77220, 0x1ef95: 0x6c016220, 0x1ef96: 0x6cbfe020, 0x1ef97: 0x6ce3ae20, - 0x1ef98: 0x6c55fc20, 0x1ef99: 0x6ce3b020, 0x1ef9a: 0x6c36e020, 0x1ef9b: 0x6c6a4420, - 0x1ef9c: 0x6c991220, 0x1ef9d: 0x6c3f2620, 0x1ef9e: 0x6c212820, 0x1ef9f: 0x6ce90820, - 0x1efa0: 0x6d0e0820, 0x1efa1: 0x6c51a020, 0x1efa2: 0x6d25d020, 0x1efa3: 0x6cb10620, - 0x1efa4: 0x6c7d9620, 0x1efa5: 0x6c9a3e20, 0x1efa6: 0x6c55fe20, 0x1efa7: 0x6d1c1620, - 0x1efa8: 0x6c204820, 0x1efa9: 0x6cf54c20, 0x1efaa: 0x6c718a20, 0x1efab: 0x6c309c20, - 0x1efac: 0x6c124420, 0x1efad: 0x6c39e020, 0x1efae: 0x6c520a20, 0x1efaf: 0x6d1c3620, - 0x1efb0: 0x6d25d220, 0x1efb1: 0x6cfb0620, 0x1efb2: 0x6cf24620, 0x1efb3: 0x6cd21620, - 0x1efb4: 0x6c520c20, 0x1efb5: 0x6c1eca20, 0x1efb6: 0x6ce16820, 0x1efb7: 0x6cfa1a20, - 0x1efb8: 0x6cc93a20, 0x1efb9: 0x6c8ee620, 0x1efba: 0x6c60fe20, 0x1efbb: 0x6c474c20, - 0x1efbc: 0x6c654620, 0x1efbd: 0x6cdd0420, 0x1efbe: 0x6c4f3a20, 0x1efbf: 0x6c228020, - // Block 0x7bf, offset 0x1efc0 - 0x1efc0: 0x6c228220, 0x1efc1: 0x6d195420, 0x1efc2: 0x6d124820, 0x1efc3: 0x6d0f0220, - 0x1efc4: 0x6c5f9a20, 0x1efc5: 0x6c875c20, 0x1efc6: 0x6ce4d220, 0x1efc7: 0x6c7a0e20, - 0x1efc8: 0x6ce30620, 0x1efc9: 0x6ce30820, 0x1efca: 0x6d195620, 0x1efcb: 0x6ce90c20, - 0x1efcc: 0x6c96ac20, 0x1efcd: 0x6c68ae20, 0x1efce: 0x6c42f420, 0x1efcf: 0x6ce4d420, - 0x1efd0: 0x6c18fe20, 0x1efd1: 0x6c610020, 0x1efd2: 0x6ce97620, 0x1efd3: 0x6d311020, - 0x1efd4: 0x6c029020, 0x1efd5: 0x6d11e620, 0x1efd6: 0x6d143c20, 0x1efd7: 0x6cab6620, - 0x1efd8: 0x6c1c9820, 0x1efd9: 0x6d376e20, 0x1efda: 0x6c8f5c20, 0x1efdb: 0x6d1de820, - 0x1efdc: 0x6c937020, 0x1efdd: 0x6c0aca20, 0x1efde: 0x6cd6b820, 0x1efdf: 0x6d3de420, - 0x1efe0: 0x6d21fa20, 0x1efe1: 0x6cf41020, 0x1efe2: 0x6c752620, 0x1efe3: 0x6d1ab620, - 0x1efe4: 0x6ce3b820, 0x1efe5: 0x6cd85620, 0x1efe6: 0x6c68b420, 0x1efe7: 0x6d196c20, - 0x1efe8: 0x6c577020, 0x1efe9: 0x6c0ad020, 0x1efea: 0x6d1c4620, 0x1efeb: 0x6cdb7420, - 0x1efec: 0x6c5a3c20, 0x1efed: 0x6c38f820, 0x1efee: 0x6c68b620, 0x1efef: 0x6c8a5a20, - 0x1eff0: 0x6d0f1820, 0x1eff1: 0x6c42f820, 0x1eff2: 0x6c704020, 0x1eff3: 0x6cfbda20, - 0x1eff4: 0x6cfbdc20, 0x1eff5: 0x6ce90e20, 0x1eff6: 0x6c971c20, 0x1eff7: 0x6d420220, - 0x1eff8: 0x6d248e20, 0x1eff9: 0x6d1c4a20, 0x1effa: 0x6c934220, 0x1effb: 0x6ce97820, - 0x1effc: 0x6cfbde20, 0x1effd: 0x6d092e20, 0x1effe: 0x6d197820, 0x1efff: 0x6cb0e020, - // Block 0x7c0, offset 0x1f000 - 0x1f000: 0x6c1efc20, 0x1f001: 0x6c958c20, 0x1f002: 0x6cf75c20, 0x1f003: 0x6d15a220, - 0x1f004: 0x6c5fb220, 0x1f005: 0x6d2b2c20, 0x1f006: 0x6d220820, 0x1f007: 0x6d2dd220, - 0x1f008: 0x6d13a420, 0x1f009: 0x6d0ffa20, 0x1f00a: 0x6cb0e220, 0x1f00b: 0x6ca94420, - 0x1f00c: 0x6c56f420, 0x1f00d: 0x6c9cd220, 0x1f00e: 0x6d1c5020, 0x1f00f: 0x6c9bc420, - 0x1f010: 0x6c2bc220, 0x1f011: 0x6d273620, 0x1f012: 0x6d249020, 0x1f013: 0x6c831a20, - 0x1f014: 0x6c068620, 0x1f015: 0x6c91ae20, 0x1f016: 0x6c521220, 0x1f017: 0x6c902220, - 0x1f018: 0x6cd6cc20, 0x1f019: 0x6d274020, 0x1f01a: 0x6d1c5220, 0x1f01b: 0x6c49cc20, - 0x1f01c: 0x6cc23820, 0x1f01d: 0x6c84f220, 0x1f01e: 0x6c948820, 0x1f01f: 0x6ca78a20, - 0x1f020: 0x6c6f5a20, 0x1f021: 0x6c5e8820, 0x1f022: 0x6d24ca20, 0x1f023: 0x6c9fea20, - 0x1f024: 0x6cd1a020, 0x1f025: 0x6cab3620, 0x1f026: 0x6d0ada20, 0x1f027: 0x6c122620, - 0x1f028: 0x6c05ec20, 0x1f029: 0x6d322a20, 0x1f02a: 0x6c470420, 0x1f02b: 0x6c2fec20, - 0x1f02c: 0x6c914a20, 0x1f02d: 0x6d0ae420, 0x1f02e: 0x6cfeae20, 0x1f02f: 0x6d0f5820, - 0x1f030: 0x6c8cda20, 0x1f031: 0x6c1aa620, 0x1f032: 0x6cc18220, 0x1f033: 0x6d24d820, - 0x1f034: 0x6d090420, 0x1f035: 0x6ceb1220, 0x1f036: 0x6cd7de20, 0x1f037: 0x6d361220, - 0x1f038: 0x6c375620, 0x1f039: 0x6c485820, 0x1f03a: 0x6d04d220, 0x1f03b: 0x6c526620, - 0x1f03c: 0x6d388020, 0x1f03d: 0x6c438a20, 0x1f03e: 0x6c943820, 0x1f03f: 0x6c534820, - // Block 0x7c1, offset 0x1f040 - 0x1f040: 0x6cf3ce20, 0x1f041: 0x6c0f0c20, 0x1f042: 0x6c83dc20, 0x1f043: 0x6c72f820, - 0x1f044: 0x6c479a20, 0x1f045: 0x6c357220, 0x1f046: 0x6d236220, 0x1f047: 0x6cfb6820, - 0x1f048: 0x6ce33a20, 0x1f049: 0x6cf45420, 0x1f04a: 0x6cc42a20, 0x1f04b: 0x6c9e7a20, - 0x1f04c: 0x6c013e20, 0x1f04d: 0x6c7d7820, 0x1f04e: 0x6c06b420, 0x1f04f: 0x6caeb020, - 0x1f050: 0x6cb8fc20, 0x1f051: 0x6c219220, 0x1f052: 0x6c44d620, 0x1f053: 0x6d250220, - 0x1f054: 0x6cdadc20, 0x1f055: 0x6c558e20, 0x1f056: 0x6c516020, 0x1f057: 0x6c367e20, - 0x1f058: 0x6c47bc20, 0x1f059: 0x6cbfba20, 0x1f05a: 0x6c225a20, 0x1f05b: 0x6c9a1e20, - 0x1f05c: 0x6cf51220, 0x1f05d: 0x6d187820, 0x1f05e: 0x6d122020, 0x1f05f: 0x6cf23820, - 0x1f060: 0x6c8e9420, 0x1f061: 0x6c60a020, 0x1f062: 0x6d187a20, 0x1f063: 0x6c64ee20, - 0x1f064: 0x6c51e220, 0x1f065: 0x6d141c20, 0x1f066: 0x6d1bfa20, 0x1f067: 0x6d310420, - 0x1f068: 0x6c8f4420, 0x1f069: 0x6c8a2e20, 0x1f06a: 0x6c689220, 0x1f06b: 0x6c703020, - 0x1f06c: 0x6d242a20, 0x1f06d: 0x6c931820, 0x1f06e: 0x6c58b420, 0x1f06f: 0x6d2db020, - 0x1f070: 0x6d1c0c20, 0x1f071: 0x6c56da20, 0x1f072: 0x6c9b8020, 0x1f073: 0x6c49c020, - 0x1f074: 0x6cd6ba20, 0x1f075: 0x6c91bc20, 0x1f076: 0x6c6c5820, 0x1f077: 0x6c8d6820, - 0x1f078: 0x6c661220, 0x1f079: 0x6cfbd020, 0x1f07a: 0x6c25fe20, 0x1f07b: 0x6c662620, - 0x1f07c: 0x6c664020, 0x1f07d: 0x6d0d1a20, 0x1f07e: 0x6c25f420, 0x1f07f: 0x6c924c20, - // Block 0x7c2, offset 0x1f080 - 0x1f080: 0x6d1eaa20, 0x1f081: 0x6c241620, 0x1f082: 0x6c614c20, 0x1f083: 0x6cad6820, - 0x1f084: 0x6c241820, 0x1f085: 0x6cad6c20, 0x1f086: 0x6d3b3220, 0x1f087: 0x6c758220, - 0x1f088: 0x6d3a8220, 0x1f089: 0x6c651020, 0x1f08a: 0x6c9c8420, 0x1f08b: 0x6c9c8620, - 0x1f08c: 0x6d22a820, 0x1f08d: 0x6c8ec820, 0x1f08e: 0x6c18f420, 0x1f08f: 0x6c758a20, - 0x1f090: 0x6c8bf620, 0x1f091: 0x6ca61a20, 0x1f092: 0x6cb69420, 0x1f093: 0x6c932c20, - 0x1f094: 0x6c703a20, 0x1f095: 0x6c758c20, 0x1f096: 0x6c6df020, 0x1f097: 0x6c871420, - 0x1f098: 0x6cfd9820, 0x1f099: 0x6cfbd220, 0x1f09a: 0x6c639020, 0x1f09b: 0x6c9ca620, - 0x1f09c: 0x6c875e20, 0x1f09d: 0x6ccf8e20, 0x1f09e: 0x6d2ef220, 0x1f09f: 0x6c8c1020, - 0x1f0a0: 0x6c6dfa20, 0x1f0a1: 0x6cb6b620, 0x1f0a2: 0x6c8de220, 0x1f0a3: 0x6d0d2820, - 0x1f0a4: 0x6c241a20, 0x1f0a5: 0x6c973220, 0x1f0a6: 0x6c972620, 0x1f0a7: 0x6c516220, - 0x1f0a8: 0x6c17a620, 0x1f0a9: 0x6c3d9c20, 0x1f0aa: 0x6c9e5e20, 0x1f0ab: 0x6c9e3e20, - 0x1f0ac: 0x6c3da820, 0x1f0ad: 0x6cad9c20, 0x1f0ae: 0x6cc27e20, 0x1f0af: 0x6cc14c20, - 0x1f0b0: 0x6ca1f420, 0x1f0b1: 0x6c3db020, 0x1f0b2: 0x6cfd2c20, 0x1f0b3: 0x6c7f3420, - 0x1f0b4: 0x6cc15820, 0x1f0b5: 0x6c9e6a20, 0x1f0b6: 0x6c1ca620, 0x1f0b7: 0x6c3c9420, - 0x1f0b8: 0x6c3d6e20, 0x1f0b9: 0x6cc14020, 0x1f0ba: 0x6c9e6420, 0x1f0bb: 0x6c966820, - 0x1f0bc: 0x6c99c420, 0x1f0bd: 0x6ca07020, 0x1f0be: 0x6c5af020, 0x1f0bf: 0x6ca1b820, - // Block 0x7c3, offset 0x1f0c0 - 0x1f0c0: 0x6d407020, 0x1f0c1: 0x6caaae20, 0x1f0c2: 0x6c3bb420, 0x1f0c3: 0x6c59ce20, - 0x1f0c4: 0x6c59b820, 0x1f0c5: 0x6c6c5a20, 0x1f0c6: 0x6c49f620, 0x1f0c7: 0x6ce47420, - 0x1f0c8: 0x6ce81c20, 0x1f0c9: 0x6c538c20, 0x1f0ca: 0x6c57c820, 0x1f0cb: 0x6c7c0820, - 0x1f0cc: 0x6c539a20, 0x1f0cd: 0x6cd56020, 0x1f0ce: 0x6c843a20, 0x1f0cf: 0x6ca70a20, - 0x1f0d0: 0x6c1af220, 0x1f0d1: 0x6c521c20, 0x1f0d2: 0x6c521a20, 0x1f0d3: 0x6d187c20, - 0x1f0d4: 0x6cb9ce20, 0x1f0d5: 0x6c284820, 0x1f0d6: 0x6cf8ea20, 0x1f0d7: 0x6cea2e20, - 0x1f0d8: 0x6ca17020, 0x1f0d9: 0x6ca15020, 0x1f0da: 0x6cb9d220, 0x1f0db: 0x6c279e20, - 0x1f0dc: 0x6c1f8420, 0x1f0dd: 0x6d1ff620, 0x1f0de: 0x6c2d2e20, 0x1f0df: 0x6d143020, - 0x1f0e0: 0x6cfa1220, 0x1f0e1: 0x6d0df220, 0x1f0e2: 0x6cc15a20, 0x1f0e3: 0x6c9a7220, - 0x1f0e4: 0x6d0e0a20, 0x1f0e5: 0x6cbe9420, 0x1f0e6: 0x6d271220, 0x1f0e7: 0x6c84a220, - 0x1f0e8: 0x6c293820, 0x1f0e9: 0x6c31ec20, 0x1f0ea: 0x6c11e820, 0x1f0eb: 0x6d0c4820, - 0x1f0ec: 0x6d0d0820, 0x1f0ed: 0x6d0e1420, 0x1f0ee: 0x6c285820, 0x1f0ef: 0x6c01e420, - 0x1f0f0: 0x6d320a20, 0x1f0f1: 0x6c27ac20, 0x1f0f2: 0x6c11ea20, 0x1f0f3: 0x6d144020, - 0x1f0f4: 0x6c9a4620, 0x1f0f5: 0x6d2e4220, 0x1f0f6: 0x6d0e3420, 0x1f0f7: 0x6c320e20, - 0x1f0f8: 0x6c91b020, 0x1f0f9: 0x6d353420, 0x1f0fa: 0x6c3bc220, 0x1f0fb: 0x6c3f1020, - 0x1f0fc: 0x6c3f9820, 0x1f0fd: 0x6c9e3220, 0x1f0fe: 0x6c9e0a20, 0x1f0ff: 0x6d25bc20, - // Block 0x7c4, offset 0x1f100 - 0x1f100: 0x6c247220, 0x1f101: 0x6cc28420, 0x1f102: 0x6c178820, 0x1f103: 0x6cebfc20, - 0x1f104: 0x6d39e620, 0x1f105: 0x6d342a20, 0x1f106: 0x6c9bbe20, 0x1f107: 0x6c029420, - 0x1f108: 0x6c0cd020, 0x1f109: 0x6ceb6a20, 0x1f10a: 0x6c0ada20, 0x1f10b: 0x6d257220, - 0x1f10c: 0x6c176620, 0x1f10d: 0x6ceb5e20, 0x1f10e: 0x6c2f7420, 0x1f10f: 0x6c9d7420, - 0x1f110: 0x6ca3d020, 0x1f111: 0x6c2f7c20, 0x1f112: 0x6d3e8420, 0x1f113: 0x6c47a620, - 0x1f114: 0x6c47a820, 0x1f115: 0x6c302220, 0x1f116: 0x6c3ba420, 0x1f117: 0x6ce25020, - 0x1f118: 0x6d252820, 0x1f119: 0x6cb03a20, 0x1f11a: 0x6c168e20, 0x1f11b: 0x6c42f620, - 0x1f11c: 0x6cb80820, 0x1f11d: 0x6d252a20, 0x1f11e: 0x6ce0e220, 0x1f11f: 0x6ce29820, - 0x1f120: 0x6cd56620, 0x1f121: 0x6cd55220, 0x1f122: 0x6c3b9e20, 0x1f123: 0x6c3adc20, - 0x1f124: 0x6cf1be20, 0x1f125: 0x6c039620, 0x1f126: 0x6c2dea20, 0x1f127: 0x6ceb5a20, - 0x1f128: 0x6d37d420, 0x1f129: 0x6cc1ee20, 0x1f12a: 0x6cd11a20, 0x1f12b: 0x6cd28e20, - 0x1f12c: 0x6d205e20, 0x1f12d: 0x6cd29420, 0x1f12e: 0x6ce69e20, 0x1f12f: 0x6cf40c20, - 0x1f130: 0x6ca77220, 0x1f131: 0x6c6df620, 0x1f132: 0x6c5d1020, 0x1f133: 0x6c719820, - 0x1f134: 0x6d0e1e20, 0x1f135: 0x6ce88020, 0x1f136: 0x6cd85c20, 0x1f137: 0x6cf75420, - 0x1f138: 0x6cfd4e20, 0x1f139: 0x6d0e2820, 0x1f13a: 0x6c82ae20, 0x1f13b: 0x6c08a220, - 0x1f13c: 0x6d11da20, 0x1f13d: 0x6cc0a220, 0x1f13e: 0x6c4dc020, 0x1f13f: 0x6cf53a20, - // Block 0x7c5, offset 0x1f140 - 0x1f140: 0x6cf54220, 0x1f141: 0x6c53e620, 0x1f142: 0x6d028620, 0x1f143: 0x6c36f820, - 0x1f144: 0x6d2c1020, 0x1f145: 0x6d055c20, 0x1f146: 0x6cf27820, 0x1f147: 0x6d2c1220, - 0x1f148: 0x6ca9f820, 0x1f149: 0x6ca48c20, 0x1f14a: 0x6cb63420, 0x1f14b: 0x6d2d0020, - 0x1f14c: 0x6c62b620, 0x1f14d: 0x6d3ebe20, 0x1f14e: 0x6c5f9c20, 0x1f14f: 0x6c5fac20, - 0x1f150: 0x6cb56c20, 0x1f151: 0x6c5f2820, 0x1f152: 0x6c1bc220, 0x1f153: 0x6c193020, - 0x1f154: 0x6c193420, 0x1f155: 0x6c519220, 0x1f156: 0x6d0b3a20, 0x1f157: 0x6d1aae20, - 0x1f158: 0x6d026c20, 0x1f159: 0x6c05c020, 0x1f15a: 0x6d2b2620, 0x1f15b: 0x6d027620, - 0x1f15c: 0x6c148c20, 0x1f15d: 0x6c1aec20, 0x1f15e: 0x6d0e0c20, 0x1f15f: 0x6c71e020, - 0x1f160: 0x6ce5b220, 0x1f161: 0x6c8d9620, 0x1f162: 0x6c8d7820, 0x1f163: 0x6c1e6e20, - 0x1f164: 0x6cc33220, 0x1f165: 0x6d027e20, 0x1f166: 0x6c791420, 0x1f167: 0x6ca8ae20, - 0x1f168: 0x6c703e20, 0x1f169: 0x6d11e420, 0x1f16a: 0x6c21e820, 0x1f16b: 0x6c7dc820, - 0x1f16c: 0x6d22b220, 0x1f16d: 0x6c1efa20, 0x1f16e: 0x6d163020, 0x1f16f: 0x6ca61c20, - 0x1f170: 0x6d2b2a20, 0x1f171: 0x6d407820, 0x1f172: 0x6cc25820, 0x1f173: 0x6d281020, - 0x1f174: 0x6d0e3020, 0x1f175: 0x6cab6e20, 0x1f176: 0x6c36fe20, 0x1f177: 0x6cf33820, - 0x1f178: 0x6d198020, 0x1f179: 0x6c221a20, 0x1f17a: 0x6d407a20, 0x1f17b: 0x6c2d0020, - 0x1f17c: 0x6c1efe20, 0x1f17d: 0x6c6d7a20, 0x1f17e: 0x6d0bd420, 0x1f17f: 0x6c1b8020, - // Block 0x7c6, offset 0x1f180 - 0x1f180: 0x6c192420, 0x1f181: 0x6c512220, 0x1f182: 0x6d1a6e20, 0x1f183: 0x6c71c620, - 0x1f184: 0x6c8d3220, 0x1f185: 0x6c05b620, 0x1f186: 0x6ce59620, 0x1f187: 0x6d3e7820, - 0x1f188: 0x6c790620, 0x1f189: 0x6d228620, 0x1f18a: 0x6c21d420, 0x1f18b: 0x6cc25220, - 0x1f18c: 0x6cf32620, 0x1f18d: 0x6c8fb020, 0x1f18e: 0x6cad1420, 0x1f18f: 0x6c45c020, - 0x1f190: 0x6cad1620, 0x1f191: 0x6d0e0e20, 0x1f192: 0x6c8ff220, 0x1f193: 0x6c904820, - 0x1f194: 0x6c45c820, 0x1f195: 0x6c76b820, 0x1f196: 0x6c26dc20, 0x1f197: 0x6c8e0020, - 0x1f198: 0x6c26de20, 0x1f199: 0x6c8f6620, 0x1f19a: 0x6c458620, 0x1f19b: 0x6c76a820, - 0x1f19c: 0x6c4a9620, 0x1f19d: 0x6cbfea20, 0x1f19e: 0x6c0cd620, 0x1f19f: 0x6c4a3820, - 0x1f1a0: 0x6d26f620, 0x1f1a1: 0x6c20f820, 0x1f1a2: 0x6c51aa20, 0x1f1a3: 0x6c753020, - 0x1f1a4: 0x6d013c20, 0x1f1a5: 0x6d249820, - // Block 0x7c7, offset 0x1f1c0 - 0x1f1c3: 0x6ccd4220, - // Block 0x7c8, offset 0x1f200 - 0x1f200: 0x6cb6e820, 0x1f201: 0x6c452620, 0x1f202: 0x6c17ce20, 0x1f203: 0x6c642020, - 0x1f204: 0x6c573e20, 0x1f205: 0x6c202c20, 0x1f206: 0x6c71ea20, 0x1f207: 0x6c4a9620, - 0x1f208: 0x6c4a9620, 0x1f209: 0x6cb75220, 0x1f20a: 0x6c6c2e20, 0x1f20b: 0x6c7e6220, - 0x1f20c: 0x6ca3ac20, 0x1f20d: 0x6c804a20, 0x1f20e: 0x6c7f7820, 0x1f20f: 0x6c956220, - 0x1f210: 0x6c957a20, 0x1f211: 0x6c955820, 0x1f212: 0x6c95b820, 0x1f213: 0x6c957c20, - 0x1f214: 0x6c822620, 0x1f215: 0x6c95e820, 0x1f216: 0x6c81d020, 0x1f217: 0x6c95f620, - 0x1f218: 0x6c960a20, 0x1f219: 0x6c81d620, 0x1f21a: 0x6c962a20, 0x1f21b: 0x6c949a20, - 0x1f21c: 0x6c948c20, 0x1f21d: 0x6c7ff820, 0x1f21e: 0x6c808820, 0x1f21f: 0x6c7ff020, - 0x1f220: 0x6c948820, 0x1f221: 0x6c7f9a20, 0x1f222: 0x6c807c20, 0x1f223: 0x6c7fc420, - 0x1f224: 0x6c7fd820, 0x1f225: 0x6c7e3e20, 0x1f226: 0x6c7eaa20, 0x1f227: 0x6c7ec420, - 0x1f228: 0x6c80b420, 0x1f229: 0x6c80f820, 0x1f22a: 0x6c811820, 0x1f22b: 0x6c80ae20, - 0x1f22c: 0x6c80a220, 0x1f22d: 0x6c7ee220, 0x1f22e: 0x6c839020, 0x1f22f: 0x6c815620, - 0x1f230: 0x6c91da20, 0x1f231: 0x6c91f220, 0x1f232: 0x6c918420, 0x1f233: 0x6c915c20, - 0x1f234: 0x6c819a20, 0x1f235: 0x6c917820, 0x1f236: 0x6c91c420, 0x1f237: 0x6c927620, - 0x1f238: 0x6c933620, 0x1f239: 0x6c91d420, 0x1f23a: 0x6c934220, 0x1f23b: 0x6c926e20, - 0x1f23c: 0x6c925a20, 0x1f23d: 0x6c93ec20, 0x1f23e: 0x6c924820, 0x1f23f: 0x6c92de20, - // Block 0x7c9, offset 0x1f240 - 0x1f240: 0x6c924c20, 0x1f241: 0x6c952620, 0x1f242: 0x6c903e20, 0x1f243: 0x6ca9f020, - 0x1f244: 0x6c8ff420, 0x1f245: 0x6c8ff820, 0x1f246: 0x6c814220, 0x1f247: 0x6c82d220, - 0x1f248: 0x6c927420, 0x1f249: 0x6c823e20, 0x1f24a: 0x6c82e220, 0x1f24b: 0x6c93a620, - 0x1f24c: 0x6c90b020, 0x1f24d: 0x6c833020, 0x1f24e: 0x6c910e20, 0x1f24f: 0x6c833420, - 0x1f250: 0x6c93bc20, 0x1f251: 0x6c910220, 0x1f252: 0x6c823c20, 0x1f253: 0x6c81fe20, - 0x1f254: 0x6c8c2820, 0x1f255: 0x6c8cc420, 0x1f256: 0x6c837e20, 0x1f257: 0x6c8d3c20, - 0x1f258: 0x6c8cfe20, 0x1f259: 0x6c8cd820, 0x1f25a: 0x6c31f020, 0x1f25b: 0x6ca2d020, - 0x1f25c: 0x6c822620, 0x1f25d: 0x6cab0e20, 0x1f25e: 0x6c27b220, 0x1f25f: 0x6ca91020, - 0x1f260: 0x6caa5e20, 0x1f261: 0x6c93d620, 0x1f262: 0x6d176620, 0x1f263: 0x6c06c620, - 0x1f264: 0x6cac7620, 0x1f265: 0x6c0b8220, 0x1f266: 0x6c3ff020, 0x1f267: 0x6c105620, - 0x1f268: 0x6c9d2620, 0x1f269: 0x6cd60020, 0x1f26a: 0x6cdd5a20, 0x1f26b: 0x6c115e20, - 0x1f26c: 0x6cc9c620, 0x1f26d: 0x6cd12c20, 0x1f26e: 0x6d12f620, 0x1f26f: 0x6cd76a20, - 0x1f270: 0x6ccbda20, 0x1f271: 0x6c18a020, 0x1f272: 0x6c189c20, 0x1f273: 0x6cd41020, - 0x1f274: 0x6cc91420, 0x1f275: 0x6c361020, 0x1f276: 0x6c361220, 0x1f277: 0x6c89aa20, - 0x1f278: 0x6c898820, 0x1f279: 0x6c894a20, 0x1f27a: 0x6c894c20, 0x1f27b: 0x6c897420, - 0x1f27c: 0x6c894620, 0x1f27d: 0x6c89c820, 0x1f27e: 0x6c89c020, 0x1f27f: 0x6c867020, - // Block 0x7ca, offset 0x1f280 - 0x1f280: 0x6c937620, 0x1f281: 0x6caa6e20, 0x1f282: 0x6c916e20, 0x1f283: 0x6c938a20, - 0x1f284: 0x6c940e20, 0x1f285: 0x6c870420, 0x1f286: 0x6c935a20, 0x1f287: 0x6c84ee20, - 0x1f288: 0x6c871420, 0x1f289: 0x6c843a20, 0x1f28a: 0x6c855c20, 0x1f28b: 0x6c867820, - 0x1f28c: 0x6c867c20, 0x1f28d: 0x6c878420, 0x1f28e: 0x6ca6f220, 0x1f28f: 0x6c883620, - 0x1f290: 0x6c893820, 0x1f291: 0x6ca73420, 0x1f292: 0x6c881620, 0x1f293: 0x6c890620, - 0x1f294: 0x6c88c420, 0x1f295: 0x6ca6f620, 0x1f296: 0x6c891220, 0x1f297: 0x6c886820, - 0x1f298: 0x6ca73a20, 0x1f299: 0x6c881820, 0x1f29a: 0x6c87fa20, 0x1f29b: 0x6c892220, - 0x1f29c: 0x6c8abc20, 0x1f29d: 0x6c8abe20, 0x1f29e: 0x6d0e4220, 0x1f29f: 0x6c8af020, - 0x1f2a0: 0x6c8b1020, 0x1f2a1: 0x6cd76a20, 0x1f2a2: 0x6c881020, 0x1f2a3: 0x6ca75a20, - 0x1f2a4: 0x6ca72020, 0x1f2a5: 0x6c892020, 0x1f2a6: 0x6c888420, 0x1f2a7: 0x6c8b5420, - 0x1f2a8: 0x6c8e1820, 0x1f2a9: 0x6c8c9e20, 0x1f2aa: 0x6ca91020, 0x1f2ab: 0x6c8e1420, - 0x1f2ac: 0x6c87f420, 0x1f2ad: 0x6c8cbe20, 0x1f2ae: 0x6d1c8a20, 0x1f2af: 0x6c8cf620, - 0x1f2b0: 0x6c8cfa20, 0x1f2b1: 0x6c8d2420, 0x1f2b2: 0x6c8d2a20, 0x1f2b3: 0x6c8db620, - 0x1f2b4: 0x6c8e1220, 0x1f2b5: 0x6c858620, 0x1f2b6: 0x6c853820, 0x1f2b7: 0x6c854620, - 0x1f2b8: 0x6c86b420, 0x1f2b9: 0x6c363420, 0x1f2ba: 0x6c823620, 0x1f2bb: 0x6c89ec20, - 0x1f2bc: 0x6c8a0620, 0x1f2bd: 0x6ca7d020, 0x1f2be: 0x6c8a9420, 0x1f2bf: 0x6c822620, - // Block 0x7cb, offset 0x1f2c0 - 0x1f2c0: 0x6c8a1a20, 0x1f2c1: 0x6c8a2620, 0x1f2c2: 0x6c8a7220, 0x1f2c3: 0x6c8a1620, - 0x1f2c4: 0x6c8fb020, 0x1f2c5: 0x6d275420, 0x1f2c6: 0x6cc84c20, 0x1f2c7: 0x6c8e8020, - 0x1f2c8: 0x6c1e2020, 0x1f2c9: 0x6c8efa20, 0x1f2ca: 0x6c8e4a20, 0x1f2cb: 0x6c8e3620, - 0x1f2cc: 0x6c8e5020, 0x1f2cd: 0x6c8e4c20, 0x1f2ce: 0x6c8e5c20, 0x1f2cf: 0x6ca99020, - 0x1f2d0: 0x6c835420, 0x1f2d1: 0x6c8f2420, 0x1f2d2: 0x6c92a020, 0x1f2d3: 0x6c923020, - 0x1f2d4: 0x6c94e420, 0x1f2d5: 0x6c94f020, 0x1f2d6: 0x6c94f420, 0x1f2d7: 0x6c950e20, - 0x1f2d8: 0x6c93d020, 0x1f2d9: 0x6c862e20, 0x1f2da: 0x6c85ca20, 0x1f2db: 0x6c93d620, - 0x1f2dc: 0x6c8f9220, 0x1f2dd: 0x6c857620, 0x1f2de: 0x6c856e20, 0x1f2df: 0x6c93ae20, - 0x1f2e0: 0x6d16ba20, 0x1f2e1: 0x6c87d820, 0x1f2e2: 0x6c83bc20, 0x1f2e3: 0x6ca5c020, - 0x1f2e4: 0x6c851420, 0x1f2e5: 0x6c861220, 0x1f2e6: 0x6c844a20, 0x1f2e7: 0x6c852220, - 0x1f2e8: 0x6c87e220, 0x1f2e9: 0x6c84fc20, 0x1f2ea: 0x6c847e20, 0x1f2eb: 0x6ca68c20, - 0x1f2ec: 0x6ca6ac20, 0x1f2ed: 0x6c8c4420, 0x1f2ee: 0x6c8bde20, 0x1f2ef: 0x6c8be020, - 0x1f2f0: 0x6c8c7a20, 0x1f2f1: 0x6c8bca20, 0x1f2f2: 0x6c8c0c20, 0x1f2f3: 0x6c8c1020, - 0x1f2f4: 0x6c8ba020, 0x1f2f5: 0x6c8bb020, 0x1f2f6: 0x6c8bea20, 0x1f2f7: 0x6c856c20, - 0x1f2f8: 0x6c85f620, 0x1f2f9: 0x6c85f820, 0x1f2fa: 0x6d3c3420, 0x1f2fb: 0x6d358c20, - 0x1f2fc: 0x6cd42220, 0x1f2fd: 0x6cd03620, 0x1f2fe: 0x6c13d020, 0x1f2ff: 0x6c22b220, - // Block 0x7cc, offset 0x1f300 - 0x1f300: 0x6cbc9020, 0x1f301: 0x6c324420, 0x1f302: 0x6cde2e20, 0x1f303: 0x6ce13620, - 0x1f304: 0x6d2d1820, 0x1f305: 0x6c306420, 0x1f306: 0x6c066220, 0x1f307: 0x6c3efc20, - 0x1f308: 0x6d03ba20, 0x1f309: 0x6c67d620, 0x1f30a: 0x6c665220, 0x1f30b: 0x6c7e0420, - 0x1f30c: 0x6cf49020, 0x1f30d: 0x6c56a220, 0x1f30e: 0x43f41c20, 0x1f30f: 0x43f41e20, - 0x1f310: 0x6d37f420, 0x1f311: 0x43f42220, 0x1f312: 0x6cbe7a20, 0x1f313: 0x43f42620, - 0x1f314: 0x43f42820, 0x1f315: 0x6cf6b620, 0x1f316: 0x6d399820, 0x1f317: 0x6d173820, - 0x1f318: 0x6c84f420, 0x1f319: 0x6cd03a20, 0x1f31a: 0x6cfdbc20, 0x1f31b: 0x6c3e9c20, - 0x1f31c: 0x6c6e9220, 0x1f31d: 0x6c6dcc20, 0x1f31e: 0x6d221c20, 0x1f31f: 0x43f43e20, - 0x1f320: 0x6cc0c220, 0x1f321: 0x43f44220, 0x1f322: 0x6d39c620, 0x1f323: 0x43f44620, - 0x1f324: 0x43f44820, 0x1f325: 0x6d178420, 0x1f326: 0x6c30a620, 0x1f327: 0x43f44e20, - 0x1f328: 0x43f45020, 0x1f329: 0x43f45220, 0x1f32a: 0x6c395c20, 0x1f32b: 0x6cd8d420, - 0x1f32c: 0x6c496820, 0x1f32d: 0x6c520c20, 0x1f32e: 0x6c80a420, 0x1f32f: 0x6c868820, - 0x1f330: 0x6cf43220, 0x1f331: 0x6ccbb820, 0x1f332: 0x6c9dfe20, 0x1f333: 0x6c9e0c20, - 0x1f334: 0x6cbd7c20, 0x1f335: 0x6c068e20, 0x1f336: 0x6c509c20, 0x1f337: 0x6ce0a020, - 0x1f338: 0x6cb7ce20, 0x1f339: 0x6cb2ec20, 0x1f33a: 0x6ca16020, 0x1f33b: 0x6c135420, - 0x1f33c: 0x6c17fa20, 0x1f33d: 0x6c5b4c20, 0x1f33e: 0x6c765820, 0x1f33f: 0x6d2b8a20, - // Block 0x7cd, offset 0x1f340 - 0x1f340: 0x6c1a5420, 0x1f341: 0x6c9fa820, 0x1f342: 0x6c61a820, 0x1f343: 0x6cd55a20, - 0x1f344: 0x6c99ec20, 0x1f345: 0x6c4d3a20, 0x1f346: 0x6d3a6420, 0x1f347: 0x6c4ee620, - 0x1f348: 0x6d3a6e20, 0x1f349: 0x6d2ff420, 0x1f34a: 0x6d423c20, 0x1f34b: 0x6c06b020, - 0x1f34c: 0x6ccf3620, 0x1f34d: 0x6d34f820, 0x1f34e: 0x6cb58a20, 0x1f34f: 0x6d203020, - 0x1f350: 0x6d411420, 0x1f351: 0x6d3ac620, 0x1f352: 0x6c5dd420, 0x1f353: 0x6d316e20, - 0x1f354: 0x6c47c420, 0x1f355: 0x6ce84420, 0x1f356: 0x6c6af220, 0x1f357: 0x6c891220, - 0x1f358: 0x6c6d5220, 0x1f359: 0x6c38ca20, 0x1f35a: 0x6cd56220, 0x1f35b: 0x6d30d220, - 0x1f35c: 0x6c1e4020, 0x1f35d: 0x6c12c020, 0x1f35e: 0x6c12c020, 0x1f35f: 0x6d311420, - 0x1f360: 0x6c51d620, 0x1f361: 0x6cd36c20, 0x1f362: 0x6d134620, 0x1f363: 0x6c6cc220, - 0x1f364: 0x6c0d4a20, 0x1f365: 0x6d2bb620, 0x1f366: 0x6c21a420, 0x1f367: 0x6d178420, - 0x1f368: 0x6ca41420, 0x1f369: 0x6cfe0a20, 0x1f36a: 0x6cb21420, 0x1f36b: 0x6c5baa20, - 0x1f36c: 0x4885dc20, 0x1f36d: 0x6c496420, - 0x1f370: 0x6c0e0820, 0x1f371: 0x6c7bdc20, 0x1f372: 0x6cc2b220, 0x1f373: 0x6d03c620, - 0x1f374: 0x6c1ca820, 0x1f375: 0x6c627020, 0x1f376: 0x6d1e1820, 0x1f377: 0x6cce9420, - 0x1f378: 0x6c509c20, 0x1f379: 0x6ce21620, 0x1f37a: 0x6c5bbc20, 0x1f37b: 0x6cec3420, - 0x1f37c: 0x6d37f420, 0x1f37d: 0x6c3b8420, 0x1f37e: 0x6d0d4620, 0x1f37f: 0x6c077c20, - // Block 0x7ce, offset 0x1f380 - 0x1f380: 0x6c097420, 0x1f381: 0x6c226820, 0x1f382: 0x6c025020, 0x1f383: 0x6d182220, - 0x1f384: 0x6c112620, 0x1f385: 0x6d110c20, 0x1f386: 0x6cee0e20, 0x1f387: 0x6cd0ac20, - 0x1f388: 0x6d236a20, 0x1f389: 0x6d2b8a20, 0x1f38a: 0x6c02d820, 0x1f38b: 0x6c1a5420, - 0x1f38c: 0x6c279420, 0x1f38d: 0x6d212620, 0x1f38e: 0x6cd9b020, 0x1f38f: 0x6c0de620, - 0x1f390: 0x6c024020, 0x1f391: 0x6cbe7a20, 0x1f392: 0x6c80f820, 0x1f393: 0x6cee5220, - 0x1f394: 0x6d2f2220, 0x1f395: 0x6c271220, 0x1f396: 0x6ccbda20, 0x1f397: 0x6c8e4a20, - 0x1f398: 0x6d1a7020, 0x1f399: 0x6d3e4020, 0x1f39a: 0x6c4ee620, 0x1f39b: 0x6c6eb420, - 0x1f39c: 0x6d3a6e20, 0x1f39d: 0x6cbc0220, 0x1f39e: 0x6c74c820, 0x1f39f: 0x6c391620, - 0x1f3a0: 0x6d399820, 0x1f3a1: 0x6d325020, 0x1f3a2: 0x6c225020, 0x1f3a3: 0x6c578420, - 0x1f3a4: 0x6c492220, 0x1f3a5: 0x6cf16020, 0x1f3a6: 0x6d173820, 0x1f3a7: 0x6cd15e20, - 0x1f3a8: 0x6d344020, 0x1f3a9: 0x6c736420, 0x1f3aa: 0x6d311220, 0x1f3ab: 0x6ce4ba20, - 0x1f3ac: 0x6ce5cc20, 0x1f3ad: 0x6c6af220, 0x1f3ae: 0x6c832420, 0x1f3af: 0x6ce1c820, - 0x1f3b0: 0x6c891220, 0x1f3b1: 0x6cb2ac20, 0x1f3b2: 0x6d30d220, 0x1f3b3: 0x6c598420, - 0x1f3b4: 0x6c573420, 0x1f3b5: 0x6d276220, 0x1f3b6: 0x6cbb4c20, 0x1f3b7: 0x6c407e20, - 0x1f3b8: 0x6cd36c20, 0x1f3b9: 0x6c2e3820, 0x1f3ba: 0x6d39c620, 0x1f3bb: 0x6cbeb220, - 0x1f3bc: 0x6d134620, 0x1f3bd: 0x6cab0e20, 0x1f3be: 0x6d23f620, 0x1f3bf: 0x6c6cc220, - // Block 0x7cf, offset 0x1f3c0 - 0x1f3c0: 0x6c0bdc20, 0x1f3c1: 0x6d2bb620, 0x1f3c2: 0x6cd50820, 0x1f3c3: 0x6c1b5020, - 0x1f3c4: 0x6cd9e620, 0x1f3c5: 0x6d03f420, 0x1f3c6: 0x6d3a6220, 0x1f3c7: 0x6ca41420, - 0x1f3c8: 0x6c6e9220, 0x1f3c9: 0x6c046220, 0x1f3ca: 0x6cfe0a20, 0x1f3cb: 0x6c35b420, - 0x1f3cc: 0x6cb21420, 0x1f3cd: 0x6d320420, 0x1f3ce: 0x6c4a9620, 0x1f3cf: 0x48509420, - 0x1f3d0: 0x48508820, 0x1f3d1: 0x4867aa20, 0x1f3d2: 0x6c513820, 0x1f3d3: 0x6d008620, - 0x1f3d4: 0x6c6ad220, 0x1f3d5: 0x48a49220, 0x1f3d6: 0x6cba2c20, 0x1f3d7: 0x6c084620, - 0x1f3d8: 0x6c36f820, 0x1f3d9: 0x6cad1420, - // Block 0x7d0, offset 0x1f400 - 0x1f400: 0xf0001c1c, 0x1f401: 0xf0001c1c, 0x1f402: 0x00658c9c, - 0x1f410: 0x2cd43683, 0x1f411: 0x2d3f2883, 0x1f412: 0x2cd6a083, 0x1f413: 0xf0001c1c, - 0x1f414: 0x2c37b483, 0x1f415: 0x2c341683, 0x1f416: 0x2c6b9883, 0x1f417: 0x2ce45483, - 0x1f418: 0x2c682283, 0x1f419: 0x2d1d3483, 0x1f41a: 0x2cf3c883, 0x1f41b: 0x2c8a9483, - 0x1f41c: 0x2cb97883, 0x1f41d: 0x2c546483, 0x1f41e: 0x2d292683, 0x1f41f: 0x2d02dc83, - 0x1f420: 0x2c1e5483, 0x1f421: 0x2d37b683, 0x1f422: 0x2cd0d283, 0x1f423: 0x2c395083, - 0x1f424: 0x2cd0dc83, 0x1f425: 0x2c20b483, 0x1f426: 0x2d0db483, 0x1f427: 0x2ce7e683, - 0x1f428: 0x2c103683, 0x1f429: 0x2d13b683, 0x1f42a: 0x2cc9f283, 0x1f42b: 0x2d1f4083, - 0x1f42c: 0x2d426083, 0x1f42d: 0x2d378283, 0x1f42e: 0x2d200883, 0x1f42f: 0x2d350083, - 0x1f430: 0x2d407e83, 0x1f431: 0x2c26e083, 0x1f432: 0x2c6d1a83, 0x1f433: 0x2c796883, - 0x1f434: 0x2c50b683, 0x1f435: 0x2c97ba83, 0x1f436: 0x2d1f9883, 0x1f437: 0x2d266883, - 0x1f438: 0x2ccf9a83, 0x1f439: 0x2c438c83, 0x1f43a: 0x2d1c6283, - // Block 0x7d1, offset 0x1f440 - 0x1f440: 0xe000b3f2, 0x1f441: 0xe000b406, 0x1f442: 0xe000b402, 0x1f443: 0xe000b3ea, - 0x1f444: 0xe000b3fe, 0x1f445: 0xe000b3f6, 0x1f446: 0xe000b3fa, 0x1f447: 0xe000b40a, - 0x1f448: 0xe000b3ee, - 0x1f450: 0x2c2a9083, 0x1f451: 0x2c785283, - // Block 0x7d2, offset 0x1f480 - 0x1f480: 0x6c508820, 0x1f481: 0x6cb4c820, 0x1f483: 0x6cbc8c20, - 0x1f485: 0x6c4d4c20, - 0x1f489: 0x6cbf9020, 0x1f48a: 0x6c126420, - 0x1f48d: 0x6cd2ec20, - 0x1f493: 0x6cd7ba20, - 0x1f494: 0x6c73ca20, - 0x1f49b: 0x6d22c020, - 0x1f49d: 0x6c796620, - 0x1f4a2: 0x6d3dfc20, - 0x1f4a6: 0x6d03be20, - 0x1f4b1: 0x6ca1fc20, - 0x1f4b7: 0x6c5e9420, - 0x1f4b8: 0x6d12d220, 0x1f4b9: 0x6c755e20, - 0x1f4bc: 0x6cb97c20, 0x1f4bd: 0x6c922420, - // Block 0x7d3, offset 0x1f4c0 - 0x1f4c9: 0x6c1e5e20, - 0x1f4d7: 0x6cd3d420, - 0x1f4e0: 0x6cbd0220, - 0x1f4e5: 0x6c40ce20, - 0x1f4ed: 0x6cb58e20, - 0x1f4f7: 0x6c15c420, - // Block 0x7d4, offset 0x1f500 - 0x1f504: 0x6c582a20, 0x1f506: 0x6d163620, 0x1f507: 0x6d425e20, - 0x1f508: 0x6c6a4a20, - 0x1f511: 0x6d404420, - 0x1f514: 0x6d3ed420, - 0x1f51f: 0x6c6c2020, - 0x1f522: 0x6cac1620, - 0x1f524: 0x6c32ee20, 0x1f525: 0x6c238220, 0x1f527: 0x6cd08e20, - 0x1f538: 0x6c59aa20, - // Block 0x7d5, offset 0x1f540 - 0x1f54a: 0x6d1abe20, - 0x1f54c: 0x6c4bb820, - 0x1f556: 0x6c6f3a20, - 0x1f56b: 0x6ccfa220, - 0x1f57a: 0x6c6fe220, - // Block 0x7d6, offset 0x1f580 - 0x1f585: 0x6d130c20, - 0x1f589: 0x6c308c20, - 0x1f58c: 0x6c73c020, 0x1f58d: 0x6c6a4c20, 0x1f58f: 0x6c2df020, - 0x1f591: 0x6c73c220, 0x1f592: 0x6c20ba20, - 0x1f596: 0x6c8c9820, - 0x1f59a: 0x6ce63e20, - 0x1f5a3: 0x6c44aa20, - 0x1f5ae: 0x6d0b7e20, - 0x1f5b1: 0x6d148020, - 0x1f5bf: 0x6cef1c20, - // Block 0x7d7, offset 0x1f5c0 - 0x1f5c2: 0x6c6a5820, - 0x1f5cc: 0x6d146a20, - 0x1f5d7: 0x6c2f3220, - 0x1f5da: 0x6cb59a20, - 0x1f5ec: 0x6c05b020, - 0x1f5f1: 0x6d01a620, - 0x1f5f9: 0x6d2f3220, - // Block 0x7d8, offset 0x1f600 - 0x1f60c: 0x6d1daa20, - 0x1f610: 0x6d073820, - 0x1f619: 0x6c2f3820, 0x1f61b: 0x6c280820, - 0x1f61f: 0x6cf06220, - 0x1f623: 0x6c488620, - 0x1f629: 0x6c391220, - 0x1f62e: 0x6ca0ba20, - 0x1f631: 0x6cf56220, 0x1f632: 0x6d0d3220, - 0x1f635: 0x6ca5b820, 0x1f636: 0x6c286020, - // Block 0x7d9, offset 0x1f640 - 0x1f64b: 0x6c281a20, - 0x1f64f: 0x6ce1ac20, - 0x1f652: 0x6c455620, - 0x1f657: 0x6c7abc20, - 0x1f658: 0x6c1f0420, - 0x1f66f: 0x6cc25e20, - 0x1f671: 0x6ca0be20, 0x1f673: 0x6cd19220, - 0x1f675: 0x6c41c620, 0x1f677: 0x6cd0d820, - // Block 0x7da, offset 0x1f680 - 0x1f681: 0x6ceaa020, - 0x1f685: 0x6cd42c20, - 0x1f68a: 0x6ca7e620, - 0x1f6a4: 0x6d281a20, 0x1f6a5: 0x6c489220, - 0x1f6ac: 0x6cfe7e20, 0x1f6ad: 0x6c814420, - 0x1f6b0: 0x6c286e20, 0x1f6b1: 0x6cdd0620, - 0x1f6b5: 0x6c988420, 0x1f6b6: 0x6d148220, - 0x1f6b8: 0x6ce26e20, 0x1f6ba: 0x6c094020, - // Block 0x7db, offset 0x1f6c0 - 0x1f6c2: 0x6cde3020, - 0x1f6d7: 0x6c95e420, - 0x1f6e2: 0x6cf7d220, 0x1f6e3: 0x6c5cb820, - 0x1f6e4: 0x6c268e20, 0x1f6e7: 0x6c722420, - 0x1f6e9: 0x6c318c20, - 0x1f6ec: 0x6c017c20, - // Block 0x7dc, offset 0x1f700 - 0x1f709: 0x6c9a8820, - 0x1f70c: 0x6cc46c20, 0x1f70e: 0x6c003820, 0x1f70f: 0x6d22ec20, - 0x1f712: 0x6c666620, - 0x1f714: 0x6cb76620, - 0x1f71f: 0x6c9fa220, - 0x1f723: 0x6d391620, - 0x1f724: 0x6d35ac20, 0x1f725: 0x6d37ea20, 0x1f726: 0x6ca4e220, 0x1f727: 0x6c0e1a20, - 0x1f729: 0x6d3bc020, 0x1f72a: 0x6cd5be20, 0x1f72b: 0x6d0a8420, - 0x1f72c: 0x6c741e20, 0x1f72d: 0x6cb9fe20, - 0x1f730: 0x6c489a20, 0x1f732: 0x6ce85220, - 0x1f736: 0x6d1d3820, 0x1f737: 0x6d35d620, - 0x1f73e: 0x6c7c6620, - // Block 0x7dd, offset 0x1f740 - 0x1f746: 0x6c192620, - 0x1f756: 0x6c88ec20, 0x1f757: 0x6d0ae620, - 0x1f75c: 0x6c4ce820, 0x1f75d: 0x6c9e8e20, 0x1f75e: 0x6ccf0e20, 0x1f75f: 0x6d223620, - 0x1f761: 0x6cd8b020, 0x1f762: 0x6cda1220, - 0x1f764: 0x6d35d820, 0x1f767: 0x6cbc7c20, - 0x1f769: 0x6c3fde20, - 0x1f76c: 0x6c710a20, 0x1f76d: 0x6c071e20, 0x1f76f: 0x6c099220, - 0x1f772: 0x6cdd6220, - 0x1f775: 0x6cba0820, 0x1f776: 0x6ca03220, 0x1f777: 0x6c15b620, - 0x1f77a: 0x6ccaa820, 0x1f77b: 0x6c5ec020, - // Block 0x7de, offset 0x1f780 - 0x1f795: 0x6c461620, 0x1f796: 0x6cbf1e20, - 0x1f79a: 0x6cc73820, - 0x1f79e: 0x6cda1a20, 0x1f79f: 0x6cda1e20, - 0x1f7a0: 0x6d10f420, - 0x1f7aa: 0x6c1d6a20, - 0x1f7ad: 0x6cd66620, 0x1f7ae: 0x6d2ffa20, 0x1f7af: 0x6c862420, - 0x1f7b0: 0x6c413e20, 0x1f7b1: 0x6cdbc620, 0x1f7b2: 0x6d2d7c20, - 0x1f7b4: 0x6d3c4220, - 0x1f7bd: 0x6c400820, - // Block 0x7df, offset 0x1f7c0 - 0x1f7c3: 0x6c5ee020, - 0x1f7c4: 0x6c30b220, - 0x1f7d7: 0x6c5bd020, - 0x1f7da: 0x6c65a420, 0x1f7db: 0x6d0d9c20, - 0x1f7dc: 0x6d364a20, - 0x1f7e8: 0x6c9a5c20, 0x1f7e9: 0x6d120e20, 0x1f7ea: 0x6c2b3220, 0x1f7eb: 0x6d150e20, - 0x1f7ef: 0x6c0cf220, - 0x1f7f2: 0x6cc1a220, 0x1f7f3: 0x6d181a20, - 0x1f7f5: 0x6d105420, - 0x1f7f9: 0x6d2c3e20, - 0x1f7fd: 0x6ccc6020, - // Block 0x7e0, offset 0x1f800 - 0x1f819: 0x6c7f1820, - 0x1f82e: 0x6c746e20, - 0x1f830: 0x6cb50620, 0x1f833: 0x6d216a20, - 0x1f836: 0x6d291820, 0x1f837: 0x6cc98220, - 0x1f838: 0x6ccb3a20, 0x1f83b: 0x6c340420, - 0x1f83f: 0x6c6b9e20, - // Block 0x7e1, offset 0x1f840 - 0x1f840: 0x6c782020, 0x1f843: 0x6d265420, - 0x1f847: 0x6c65ca20, - 0x1f848: 0x6d113220, - 0x1f853: 0x6cfaca20, - 0x1f855: 0x6d000220, 0x1f856: 0x6cbb9620, - 0x1f85a: 0x6d23b820, 0x1f85b: 0x6cc1ae20, - 0x1f861: 0x6cfac820, 0x1f862: 0x6c962020, - 0x1f864: 0x6c4a0a20, 0x1f867: 0x6c198620, - 0x1f868: 0x6c209620, 0x1f869: 0x6d155620, 0x1f86b: 0x6d333020, - 0x1f86d: 0x6d403020, 0x1f86e: 0x6c335c20, - 0x1f870: 0x6d2d3420, - 0x1f87f: 0x6c3a6e20, - // Block 0x7e2, offset 0x1f880 - 0x1f880: 0x6d155820, 0x1f881: 0x6c9b4420, - 0x1f888: 0x6c0b0a20, 0x1f889: 0x6c6b4020, 0x1f88a: 0x6cd61820, 0x1f88b: 0x6c8a2220, - 0x1f88c: 0x6c08fa20, 0x1f88d: 0x6cda7620, - 0x1f891: 0x6c2ca220, - 0x1f8a1: 0x6c076220, 0x1f8a2: 0x6cf21220, - 0x1f8a7: 0x6c9b6a20, - 0x1f8a9: 0x6c15ea20, - 0x1f8b5: 0x6c29f620, - 0x1f8ba: 0x6cb21c20, 0x1f8bb: 0x6c660820, - 0x1f8bc: 0x6c8c7420, 0x1f8bd: 0x6c4b9220, 0x1f8be: 0x6cb54620, 0x1f8bf: 0x6c52dc20, - // Block 0x7e3, offset 0x1f8c0 - 0x1f8c3: 0x6c60e820, - 0x1f8c4: 0x6d024e20, 0x1f8c5: 0x6d330820, 0x1f8c6: 0x6c15fa20, - 0x1f8d0: 0x6d116c20, 0x1f8d1: 0x6c160a20, - 0x1f8d8: 0x6c2cee20, 0x1f8d9: 0x6c1d6020, 0x1f8da: 0x6ca56220, 0x1f8db: 0x6ca56420, - 0x1f8de: 0x6d2d5420, 0x1f8df: 0x6c0b1e20, - 0x1f8e1: 0x6c161020, - 0x1f8ea: 0x6cff5a20, - 0x1f8ef: 0x6c248620, - 0x1f8f0: 0x6d02f620, 0x1f8f1: 0x6c6e4420, 0x1f8f2: 0x6cb96620, - 0x1f8f4: 0x6cbe6820, - 0x1f8f9: 0x6c475220, - // Block 0x7e4, offset 0x1f900 - 0x1f904: 0x6cf4b420, - 0x1f91c: 0x6d25e420, 0x1f91d: 0x6c0dde20, - 0x1f922: 0x6cecde20, - 0x1f930: 0x6ca7a620, - 0x1f935: 0x6c891020, - 0x1f938: 0x6cc53e20, - 0x1f93e: 0x6c396e20, 0x1f93f: 0x6c2b9420, - // Block 0x7e5, offset 0x1f940 - 0x1f94a: 0x6c5af820, 0x1f94b: 0x6d190620, - 0x1f94c: 0x6cfbbc20, - 0x1f956: 0x6c800420, 0x1f957: 0x6c40a020, - 0x1f959: 0x6d04ae20, - 0x1f95c: 0x6c897e20, 0x1f95d: 0x6ce1a620, 0x1f95e: 0x6c5fba20, - 0x1f962: 0x6c6ba620, 0x1f963: 0x6d2c1a20, - 0x1f964: 0x6cd19420, - 0x1f96a: 0x6cb59220, 0x1f96b: 0x6c0b2c20, - 0x1f96d: 0x6c802220, 0x1f96e: 0x6c8c1a20, - 0x1f976: 0x6d364c20, 0x1f977: 0x6c09bc20, - 0x1f978: 0x6cd17020, - 0x1f97d: 0x6cd17a20, 0x1f97f: 0x6cbdbc20, - // Block 0x7e6, offset 0x1f980 - 0x1f982: 0x6c0be620, 0x1f983: 0x6cf55e20, - 0x1f989: 0x6c733a20, 0x1f98b: 0x6c5e8420, - 0x1f98d: 0x6cf57620, 0x1f98e: 0x6cbdc420, - 0x1f991: 0x6c4d5620, - 0x1f995: 0x6c94e220, - 0x1f9a0: 0x6d26b420, - 0x1f9a8: 0x6c880a20, - 0x1f9af: 0x6c048e20, - 0x1f9b2: 0x6c526820, - 0x1f9b6: 0x6cb54020, - 0x1f9ba: 0x6cb93820, 0x1f9bb: 0x6d337820, - 0x1f9bc: 0x6c991a20, - // Block 0x7e7, offset 0x1f9c0 - 0x1f9c1: 0x6c238020, - 0x1f9c4: 0x6ca30020, - 0x1f9ca: 0x6ce6a820, - 0x1f9cc: 0x6d3f6e20, - 0x1f9d5: 0x6c6ed420, 0x1f9d6: 0x6d2f8620, - 0x1f9df: 0x6ca71c20, - 0x1f9e0: 0x6c19e420, 0x1f9e3: 0x6cb86620, - 0x1f9e6: 0x6d236420, 0x1f9e7: 0x6c690020, - 0x1f9ed: 0x6d2fda20, - 0x1f9f3: 0x6c2b5020, - 0x1f9f4: 0x6c6f3c20, - 0x1f9f8: 0x6cdc0a20, 0x1f9fb: 0x6d108220, - 0x1f9ff: 0x6cedbe20, - // Block 0x7e8, offset 0x1fa00 - 0x1fa02: 0x6c89d820, - 0x1fa04: 0x6ce71220, 0x1fa06: 0x6c9bfc20, - 0x1fa0b: 0x6d1faa20, - 0x1fa13: 0x6cd7e020, - 0x1fa1b: 0x6c910820, - 0x1fa1f: 0x6d19f820, - 0x1fa25: 0x6c1d4420, - 0x1fa2b: 0x6c420020, - 0x1fa2c: 0x6c6f3820, - 0x1fa36: 0x6cbdf820, 0x1fa37: 0x6c6ef220, - 0x1fa39: 0x6d006e20, - // Block 0x7e9, offset 0x1fa40 - 0x1fa42: 0x6c51b820, - 0x1fa46: 0x6ce1ae20, - 0x1fa48: 0x6cc01220, 0x1fa49: 0x6d007420, 0x1fa4a: 0x6c6e5420, 0x1fa4b: 0x6ca71620, - 0x1fa4c: 0x6c6e5620, 0x1fa4f: 0x6c5fea20, - 0x1fa58: 0x6ce4de20, 0x1fa5a: 0x6c252220, 0x1fa5b: 0x6c2e7c20, - 0x1fa5d: 0x6cbea020, - 0x1fa65: 0x6cb2e620, 0x1fa66: 0x6cb29620, - 0x1fa68: 0x6c2e9020, 0x1fa69: 0x6c910420, - 0x1fa73: 0x6c88ba20, - 0x1fa74: 0x6c4e0a20, 0x1fa75: 0x6cacd620, 0x1fa76: 0x6ce0f020, - 0x1fa7a: 0x6d151020, 0x1fa7b: 0x6d081420, - 0x1fa7c: 0x6cddca20, 0x1fa7d: 0x6c8e6420, 0x1fa7e: 0x6cd6d220, 0x1fa7f: 0x6cd0a820, - // Block 0x7ea, offset 0x1fa80 - 0x1fa81: 0x6c10a020, 0x1fa82: 0x6cd9bc20, - 0x1fa85: 0x6cbd8c20, 0x1fa86: 0x6cd06620, - 0x1fa8a: 0x6ca9f420, 0x1fa8b: 0x6ce6de20, - 0x1fa8c: 0x6c677020, - 0x1fa95: 0x6cf6b820, 0x1fa96: 0x6d36fe20, - 0x1fa9d: 0x6c7f5e20, 0x1fa9e: 0x6c86be20, 0x1fa9f: 0x6c86c020, - 0x1faa2: 0x6c519420, 0x1faa3: 0x6c69cc20, - 0x1faa5: 0x6d0d0a20, 0x1faa7: 0x6cd49420, - 0x1faaa: 0x6cd2a220, - 0x1fab1: 0x6d31ae20, 0x1fab3: 0x6d1e8620, - 0x1faba: 0x6cddc620, 0x1fabb: 0x6cf39e20, - // Block 0x7eb, offset 0x1fac0 - 0x1fac1: 0x6c169620, 0x1fac2: 0x6c238820, - 0x1fac6: 0x6c720820, - 0x1face: 0x6cd4a420, - 0x1fad4: 0x6c6fe620, 0x1fad5: 0x6ceef020, - 0x1fade: 0x6c5db620, - 0x1fae4: 0x6c6a2020, - 0x1faec: 0x6d2a4e20, - 0x1faf6: 0x6cab7220, - 0x1fafc: 0x6c488c20, - // Block 0x7ec, offset 0x1fb00 - 0x1fb03: 0x6c4fba20, - 0x1fb04: 0x6c84f620, 0x1fb05: 0x6d356c20, 0x1fb06: 0x6cfc7220, - 0x1fb09: 0x6c100c20, 0x1fb0a: 0x6c170020, - 0x1fb13: 0x6d274a20, - 0x1fb14: 0x6c510020, - 0x1fb1c: 0x6ce1e420, - 0x1fb20: 0x6c0c4a20, - 0x1fb25: 0x6c2da420, 0x1fb27: 0x6c37b620, - 0x1fb28: 0x6c6f3e20, - 0x1fb2d: 0x6c2c0a20, 0x1fb2e: 0x6d164420, 0x1fb2f: 0x6c7d4620, - 0x1fb31: 0x6d300a20, 0x1fb33: 0x6c7de420, - 0x1fb34: 0x6d384e20, 0x1fb35: 0x6c71ee20, - 0x1fb39: 0x6ccd6820, 0x1fb3a: 0x6ccc3820, 0x1fb3b: 0x6c2da820, - 0x1fb3c: 0x6c046c20, 0x1fb3d: 0x6c5e7420, - // Block 0x7ed, offset 0x1fb40 - 0x1fb40: 0x6d378620, 0x1fb43: 0x6d144e20, - 0x1fb45: 0x6c79b020, 0x1fb46: 0x6cf33e20, - 0x1fb4a: 0x6c436420, 0x1fb4b: 0x6c031220, - 0x1fb4e: 0x6c463620, - 0x1fb51: 0x6cfb2420, 0x1fb52: 0x6c484020, 0x1fb53: 0x6c8ef620, - 0x1fb54: 0x6c1b7620, 0x1fb55: 0x6c48c020, 0x1fb56: 0x6c1fdc20, - 0x1fb58: 0x6c83a020, 0x1fb59: 0x6c242a20, 0x1fb5a: 0x6cd63e20, - 0x1fb61: 0x6c08b620, - 0x1fb65: 0x6c0dbc20, 0x1fb66: 0x6c857820, - 0x1fb69: 0x6c6fae20, 0x1fb6a: 0x6ce54a20, 0x1fb6b: 0x6c347220, - 0x1fb6d: 0x6d0bde20, 0x1fb6e: 0x6cc28a20, - 0x1fb71: 0x6c8ac820, 0x1fb73: 0x6c787c20, - 0x1fb75: 0x6c449620, 0x1fb76: 0x6d312420, - 0x1fb78: 0x6c3b5820, - // Block 0x7ee, offset 0x1fb80 - 0x1fb81: 0x6d146e20, 0x1fb83: 0x6c6fd220, - 0x1fb84: 0x6d067c20, 0x1fb85: 0x6c68cc20, - 0x1fb88: 0x6c93cc20, 0x1fb89: 0x6c6fb020, 0x1fb8b: 0x6c1e1e20, - 0x1fb8e: 0x6cfc7e20, - 0x1fb90: 0x6c7b1620, 0x1fb91: 0x6c333e20, - 0x1fb96: 0x6c952e20, 0x1fb97: 0x6cf59a20, - 0x1fb98: 0x6cbe0820, 0x1fb99: 0x6c107420, - 0x1fba4: 0x6cb84620, - 0x1fbb1: 0x6caf5020, 0x1fbb2: 0x6d0adc20, 0x1fbb3: 0x6c07da20, - 0x1fbb4: 0x6c4cb220, 0x1fbb5: 0x6c484c20, - 0x1fbb9: 0x6c710020, - 0x1fbbc: 0x6cb82420, 0x1fbbe: 0x6c741020, - // Block 0x7ef, offset 0x1fbc0 - 0x1fbc4: 0x6c85c020, - 0x1fbd0: 0x6c570c20, 0x1fbd1: 0x6c683c20, - 0x1fbd8: 0x6cb84e20, 0x1fbda: 0x6d2c2620, 0x1fbdb: 0x6cb82620, - 0x1fbdd: 0x6d304620, 0x1fbde: 0x6c139020, 0x1fbdf: 0x6d1ce820, - 0x1fbe2: 0x6d0bee20, - 0x1fbe4: 0x6c1cc020, - 0x1fbe8: 0x6c1b9a20, 0x1fbea: 0x6cec8620, - 0x1fbec: 0x6cd9a620, - 0x1fbf2: 0x6c76cc20, 0x1fbf3: 0x6d255c20, - 0x1fbfd: 0x6c1d9c20, 0x1fbff: 0x6cdd6420, - // Block 0x7f0, offset 0x1fc00 - 0x1fc00: 0x6ce85820, 0x1fc03: 0x6d305620, - 0x1fc04: 0x6ce2ee20, 0x1fc06: 0x6cf36820, - 0x1fc08: 0x6c264a20, 0x1fc09: 0x6c860820, 0x1fc0a: 0x6c139420, - 0x1fc15: 0x6cc66e20, 0x1fc16: 0x6c461820, 0x1fc17: 0x6cc3bc20, - 0x1fc19: 0x6c83ce20, - 0x1fc1e: 0x6ce1c620, - 0x1fc24: 0x6c860a20, 0x1fc27: 0x6c9c5c20, - 0x1fc29: 0x6c1c3020, - 0x1fc2c: 0x6c4bfa20, 0x1fc2d: 0x6c909420, 0x1fc2e: 0x6c209020, 0x1fc2f: 0x6cdd6e20, - 0x1fc30: 0x6c690420, 0x1fc31: 0x6c6d0c20, - 0x1fc35: 0x6c381620, 0x1fc36: 0x6d2cf620, - 0x1fc3e: 0x6c6d0e20, 0x1fc3f: 0x6c254220, - // Block 0x7f1, offset 0x1fc40 - 0x1fc42: 0x6c136c20, 0x1fc43: 0x6d420820, - 0x1fc45: 0x6d2fc420, - 0x1fc48: 0x6cb1c620, 0x1fc49: 0x6d2dfc20, 0x1fc4a: 0x6cf66420, 0x1fc4b: 0x6d121420, - 0x1fc4c: 0x6c3f7420, 0x1fc4d: 0x6c1cce20, - 0x1fc53: 0x6c254a20, - 0x1fc57: 0x6c486820, - 0x1fc63: 0x6c5f0020, - 0x1fc66: 0x6ccb3c20, 0x1fc67: 0x6d2d8e20, - 0x1fc68: 0x6c8e2420, 0x1fc69: 0x6ccb3e20, 0x1fc6a: 0x6d132220, - 0x1fc70: 0x6c70ba20, - 0x1fc76: 0x6ce87220, - 0x1fc7a: 0x6cc7c620, 0x1fc7b: 0x6d2af820, - 0x1fc7c: 0x6c589020, - // Block 0x7f2, offset 0x1fc80 - 0x1fc81: 0x6cfc2820, 0x1fc83: 0x6cb91a20, - 0x1fc84: 0x6d2fdc20, - 0x1fc8b: 0x6c11b220, - 0x1fc8e: 0x6c7e1820, 0x1fc8f: 0x6c869a20, - 0x1fc90: 0x6cc76420, - 0x1fc94: 0x6c31c020, 0x1fc97: 0x6c8b3020, - 0x1fc9c: 0x6d1c0620, 0x1fc9d: 0x6c86c220, - 0x1fca0: 0x6c31c620, 0x1fca2: 0x6c8d8020, - 0x1fcaa: 0x6ceca220, - 0x1fcaf: 0x6c2f1820, - 0x1fcb3: 0x6c6f4020, - 0x1fcb5: 0x6c855e20, 0x1fcb6: 0x6c7a1620, 0x1fcb7: 0x6c791e20, - 0x1fcb9: 0x6d31b220, - // Block 0x7f3, offset 0x1fcc0 - 0x1fcc0: 0x6c51b420, 0x1fcc2: 0x6c091220, - 0x1fcc4: 0x6caf2820, - 0x1fcca: 0x6c4f4820, - 0x1fcd1: 0x6d3d2820, 0x1fcd2: 0x6c332020, - 0x1fcd4: 0x6d16a420, - 0x1fcdc: 0x6c787e20, 0x1fcdd: 0x6d16a620, 0x1fcde: 0x6ca0dc20, - 0x1fce1: 0x6c118a20, 0x1fce3: 0x6c44ee20, - 0x1fce4: 0x6c788820, 0x1fce5: 0x6cd32a20, - 0x1fced: 0x6c8cc620, 0x1fcee: 0x6c07dc20, - 0x1fcf1: 0x6c32b820, - 0x1fcf6: 0x6c72e020, 0x1fcf7: 0x6ca4e420, - 0x1fcf8: 0x6d3f0020, 0x1fcfb: 0x6d401e20, - // Block 0x7f4, offset 0x1fd00 - 0x1fd03: 0x6ce0ea20, - 0x1fd06: 0x6cf9be20, 0x1fd07: 0x6c4ec020, - 0x1fd0c: 0x6c94a620, 0x1fd0d: 0x6cb99020, - 0x1fd13: 0x6ca12220, - 0x1fd14: 0x6cab3a20, 0x1fd15: 0x6c4fc820, - 0x1fd19: 0x6d2c3420, 0x1fd1a: 0x6c737020, 0x1fd1b: 0x6c23a020, - 0x1fd20: 0x6c864420, 0x1fd21: 0x6d2c4020, 0x1fd22: 0x6d1fdc20, 0x1fd23: 0x6c2d6c20, - 0x1fd24: 0x6c747820, 0x1fd25: 0x6c073a20, - 0x1fd29: 0x6d11bc20, 0x1fd2a: 0x6cb1c820, - 0x1fd31: 0x6c6d3620, 0x1fd32: 0x6c766c20, 0x1fd33: 0x6ccb4020, - 0x1fd34: 0x6d102c20, 0x1fd35: 0x6c6d3820, - 0x1fd39: 0x6c78dc20, - // Block 0x7f5, offset 0x1fd40 - 0x1fd44: 0x6c14de20, 0x1fd47: 0x6ca74a20, - 0x1fd49: 0x6cedb020, 0x1fd4a: 0x6c942a20, - 0x1fd50: 0x6d277a20, 0x1fd51: 0x6d108420, 0x1fd52: 0x6c05a020, - 0x1fd55: 0x6c755220, 0x1fd56: 0x6d07fc20, - 0x1fd58: 0x6d385820, - 0x1fd60: 0x6c7ce820, 0x1fd61: 0x6c3cda20, - 0x1fd6a: 0x6cc17e20, 0x1fd6b: 0x6ccecc20, - 0x1fd6c: 0x6cdce420, - 0x1fd70: 0x6c316820, 0x1fd72: 0x6c7af820, 0x1fd73: 0x6cad8c20, - 0x1fd7a: 0x6c065020, - 0x1fd7e: 0x6c401620, 0x1fd7f: 0x6c700c20, - // Block 0x7f6, offset 0x1fd80 - 0x1fd80: 0x6cc47c20, - 0x1fd84: 0x6c70ca20, - 0x1fd8a: 0x6cbf6a20, - 0x1fd8d: 0x6d38c220, 0x1fd8e: 0x6c577420, 0x1fd8f: 0x6c05e020, - 0x1fd95: 0x6d145c20, 0x1fd97: 0x6d148420, - 0x1fd98: 0x6d148620, - 0x1fd9d: 0x6c995020, - 0x1fda6: 0x6cc86c20, - 0x1fdab: 0x6c227c20, - 0x1fdae: 0x6c4dca20, - 0x1fdb0: 0x6c238420, - 0x1fdb4: 0x6cf83a20, - 0x1fdb9: 0x6cc2b820, 0x1fdba: 0x6ce56c20, - 0x1fdbc: 0x6c2e0c20, 0x1fdbe: 0x6c4ddc20, - // Block 0x7f7, offset 0x1fdc0 - 0x1fdc7: 0x6d12a620, - 0x1fdcd: 0x6c353420, 0x1fdce: 0x6ceef820, - 0x1fdd0: 0x6c122e20, 0x1fdd1: 0x6c2e2620, - 0x1fdd5: 0x6c362620, 0x1fdd6: 0x6c2c6820, - 0x1fdd8: 0x6cdb9220, 0x1fdd9: 0x6cc30a20, - 0x1fddc: 0x6c368020, 0x1fddd: 0x6cab4420, 0x1fdde: 0x6d081c20, - 0x1fde2: 0x6cf47820, - 0x1fde6: 0x6d190820, - 0x1fde8: 0x6ca1fa20, - 0x1fdf0: 0x6c549620, - 0x1fdf4: 0x6c4dde20, - 0x1fdff: 0x6cd22820, - // Block 0x7f8, offset 0x1fe00 - 0x1fe03: 0x6cc96420, - 0x1fe08: 0x6c090820, 0x1fe0a: 0x6c4dcc20, 0x1fe0b: 0x6c6e4620, - 0x1fe0e: 0x6cbdfa20, 0x1fe0f: 0x6c25d420, - 0x1fe10: 0x6c22a620, 0x1fe12: 0x6c046e20, - 0x1fe17: 0x6c32f020, - 0x1fe1c: 0x6cf84220, - 0x1fe27: 0x6d33c020, - 0x1fe28: 0x6c949220, 0x1fe2a: 0x6c54b620, 0x1fe2b: 0x6c601420, - 0x1fe2c: 0x6c48c820, - 0x1fe32: 0x6cacd820, - // Block 0x7f9, offset 0x1fe40 - 0x1fe40: 0x6d39c220, - 0x1fe45: 0x6c08fc20, 0x1fe47: 0x6d21ae20, - 0x1fe52: 0x6cb6c220, - 0x1fe55: 0x6c50b420, 0x1fe56: 0x6c1ed420, - 0x1fe59: 0x6ccec220, 0x1fe5a: 0x6c1be020, 0x1fe5b: 0x6c0eac20, - 0x1fe5f: 0x6cc62420, - 0x1fe60: 0x6d1ef820, - 0x1fe64: 0x6ca39620, - 0x1fe69: 0x6c5b9420, 0x1fe6a: 0x6ce57620, 0x1fe6b: 0x6c04c220, - 0x1fe70: 0x6d057620, - 0x1fe74: 0x6d1f1020, 0x1fe75: 0x6c1c0620, - 0x1fe7f: 0x6c526220, - // Block 0x7fa, offset 0x1fe80 - 0x1fe83: 0x6cec7020, - 0x1fe86: 0x6d01ce20, - 0x1fe8a: 0x6c748c20, - 0x1fe8c: 0x6cdbec20, 0x1fe8d: 0x6cbe2c20, 0x1fe8e: 0x6d3bbc20, - 0x1fe95: 0x6c617620, - 0x1fe98: 0x6c091420, 0x1fe9a: 0x6cf59c20, - 0x1fea0: 0x6c602820, 0x1fea2: 0x6c75c620, - 0x1fea5: 0x6c89ee20, 0x1fea6: 0x6d1eb620, - 0x1fead: 0x6c70ea20, - 0x1feb2: 0x6d266a20, - 0x1feb5: 0x6c055e20, - 0x1feb8: 0x6cafaa20, 0x1febb: 0x6d2b3820, - 0x1febe: 0x6d165820, 0x1febf: 0x6c2bc820, - // Block 0x7fb, offset 0x1fec0 - 0x1fec2: 0x6cbc9220, - 0x1fec4: 0x6cdd4c20, 0x1fec6: 0x6c22ae20, - 0x1fec8: 0x6d3aa220, 0x1fec9: 0x6d267420, - 0x1fecf: 0x6c682820, - 0x1fed4: 0x6cd23e20, 0x1fed7: 0x6d148820, - 0x1fed8: 0x6cf99220, - 0x1fee0: 0x6d254220, - 0x1fee5: 0x6c4c6020, 0x1fee7: 0x6c789020, - 0x1feea: 0x6c252420, 0x1feeb: 0x6d171a20, - 0x1fef5: 0x6c85c220, 0x1fef7: 0x6c2d0c20, - 0x1fefa: 0x6cf5d620, - 0x1feff: 0x6c09c020, - // Block 0x7fc, offset 0x1ff00 - 0x1ff02: 0x6c0b3420, 0x1ff03: 0x6c99ea20, - 0x1ff04: 0x6c85e420, 0x1ff07: 0x6cda1820, - 0x1ff10: 0x6c8e5620, 0x1ff11: 0x6c4b5420, 0x1ff12: 0x6c78b620, - 0x1ff17: 0x6d151220, - 0x1ff19: 0x6cf7f620, 0x1ff1a: 0x6d1a7c20, - 0x1ff1f: 0x6c78c020, - 0x1ff23: 0x6ccf6020, - 0x1ff27: 0x6cf2bc20, - 0x1ff2e: 0x6cb0b620, - 0x1ff36: 0x6d26dc20, 0x1ff37: 0x6c538020, - 0x1ff3a: 0x6c867220, 0x1ff3b: 0x6c405020, - // Block 0x7fd, offset 0x1ff40 - 0x1ff43: 0x6c74d620, - 0x1ff44: 0x6cfae820, - 0x1ff49: 0x6c2cf020, - 0x1ff4c: 0x6c878820, - 0x1ff53: 0x6ce83420, - 0x1ff58: 0x6c645820, 0x1ff5b: 0x6c041420, - 0x1ff5c: 0x6c2c0c20, 0x1ff5d: 0x6d2efc20, - 0x1ff63: 0x6d22bc20, - 0x1ff68: 0x6c333420, - 0x1ff6d: 0x6c115c20, 0x1ff6e: 0x6ce88620, - 0x1ff76: 0x6cdf9420, 0x1ff77: 0x6c5fee20, - 0x1ff78: 0x6cb59420, 0x1ff79: 0x6ccd7620, 0x1ff7a: 0x6ca6fa20, - // Block 0x7fe, offset 0x1ff80 - 0x1ff86: 0x6c498c20, - 0x1ff88: 0x6c08e420, 0x1ff8b: 0x6d037820, - 0x1ff93: 0x6d31fa20, - 0x1ff99: 0x6cc94a20, 0x1ff9b: 0x6ca0b820, - 0x1ff9d: 0x6c3dc420, - 0x1ffa2: 0x6ce1a820, 0x1ffa3: 0x6c055c20, - 0x1ffaa: 0x6c0c8a20, - 0x1ffac: 0x6cf56620, 0x1ffae: 0x6c6a5e20, - 0x1ffb6: 0x6c6cd220, - 0x1ffbe: 0x6cb8b020, - // Block 0x7ff, offset 0x1ffc0 - 0x1ffc8: 0x6cd89820, 0x1ffc9: 0x6c6e1620, 0x1ffcb: 0x6c1b8820, - 0x1ffd7: 0x6c6e1c20, - 0x1ffe5: 0x6cdc3a20, - 0x1ffef: 0x6d2bde20, - 0x1fff0: 0x6c83e020, - 0x1fff4: 0x6d3d0620, - 0x1fff9: 0x6c0ba820, - 0x1ffff: 0x6cea6220, - // Block 0x800, offset 0x20000 - 0x20003: 0x6c0a1820, - 0x20006: 0x6c3ac220, - 0x2000a: 0x6c2a8220, - 0x2000c: 0x6d3a2620, - 0x20011: 0x6c70dc20, - 0x20019: 0x6d15b020, - 0x2001c: 0x6d0b6420, 0x2001f: 0x6c1bd820, - 0x20020: 0x6c488e20, 0x20021: 0x6d34d020, - 0x20028: 0x6cc61620, 0x2002b: 0x6d1e8a20, - 0x2002d: 0x6c0ea820, 0x2002f: 0x6c611820, - 0x20030: 0x6cb23620, 0x20033: 0x6d1b9c20, - 0x20034: 0x6d0f4220, 0x20035: 0x6c98b420, - 0x2003d: 0x6c904e20, 0x2003e: 0x6ca2ca20, 0x2003f: 0x6cc9bc20, - // Block 0x801, offset 0x20040 - 0x20040: 0x6c1fda20, 0x20042: 0x6c221c20, 0x20043: 0x6cf41a20, - 0x20044: 0x6cc5ae20, - 0x20048: 0x6c272420, 0x20049: 0x6c5fc420, 0x2004b: 0x6d15b820, - 0x2004d: 0x6cc45e20, - 0x20050: 0x6c5d9820, 0x20051: 0x6c484220, 0x20053: 0x6d301020, - 0x20054: 0x6cb08220, 0x20057: 0x6d288220, - 0x20058: 0x6c04e020, 0x20059: 0x6c6a6a20, - 0x2005c: 0x6c53e220, 0x2005f: 0x6cfc7620, - 0x20060: 0x6c5a8820, - 0x20069: 0x6d2bc420, 0x2006a: 0x6c270820, 0x2006b: 0x6c436c20, - 0x2006d: 0x6cb08420, 0x2006f: 0x6cb14620, - 0x20070: 0x6cd23620, 0x20071: 0x6c898620, 0x20072: 0x6d267620, 0x20073: 0x6c565020, - 0x20074: 0x6c0b6a20, 0x20077: 0x6cc61e20, - 0x20079: 0x6cc62020, - // Block 0x802, offset 0x20080 - 0x20084: 0x6d13c420, 0x20085: 0x6d338820, 0x20087: 0x6c6c2820, - 0x20088: 0x6cf22020, 0x20089: 0x6c173420, 0x2008b: 0x6cbf9a20, - 0x2008d: 0x6d3a5620, 0x2008f: 0x6d2c1c20, - 0x20090: 0x6cb34820, 0x20091: 0x6c019e20, 0x20093: 0x6c50c220, - 0x20095: 0x6c1e5620, 0x20096: 0x6d0c6020, - 0x2009a: 0x6cd31820, 0x2009b: 0x6c566020, - 0x2009c: 0x6c35dc20, - 0x200b4: 0x6cd24020, - 0x200b9: 0x6ceaaa20, 0x200ba: 0x6c272c20, 0x200bb: 0x6cec6a20, - 0x200bc: 0x6cb2f420, 0x200bd: 0x6cc6f420, 0x200be: 0x6c705220, - // Block 0x803, offset 0x200c0 - 0x200c0: 0x6c0e4a20, - 0x200d0: 0x6d222820, 0x200d1: 0x6c30a220, 0x200d3: 0x6c4ace20, - 0x200d4: 0x6cd45420, 0x200d7: 0x6cdd0820, - 0x200d8: 0x6ca68220, 0x200d9: 0x6d385c20, 0x200da: 0x6c905220, 0x200db: 0x6c0dca20, - 0x200dc: 0x6d421420, 0x200dd: 0x6d12d620, 0x200de: 0x6cc4b420, - 0x200e0: 0x6c8cb220, 0x200e1: 0x6cc96c20, - 0x200e4: 0x6c82b820, 0x200e5: 0x6c35e820, 0x200e7: 0x6d381a20, - 0x200e8: 0x6c612820, 0x200eb: 0x6c35ea20, - 0x200ef: 0x6d428420, - 0x200f2: 0x6ca31820, 0x200f3: 0x6d27dc20, - // Block 0x804, offset 0x20100 - 0x2010a: 0x6d016c20, 0x2010b: 0x6d418a20, - 0x2010c: 0x6cd5aa20, 0x2010d: 0x6c2fce20, 0x2010e: 0x6c384620, 0x2010f: 0x6cc58a20, - 0x20111: 0x6c051820, 0x20112: 0x6c4de020, 0x20113: 0x6c530a20, - 0x20114: 0x6d13d020, 0x20116: 0x6d13d220, - 0x20119: 0x6c77da20, 0x2011a: 0x6d16de20, 0x2011b: 0x6c5b1e20, - 0x2011c: 0x6d329020, - 0x2012e: 0x6c6e6220, - 0x20131: 0x6c43d220, - 0x20134: 0x6ca9fa20, 0x20135: 0x6cbca220, 0x20137: 0x6c2e7e20, - 0x20139: 0x6c61c420, 0x2013a: 0x6d171e20, 0x2013b: 0x6d14b620, - 0x2013d: 0x6c3e2c20, 0x2013e: 0x6cd77220, 0x2013f: 0x6cd77420, - // Block 0x805, offset 0x20140 - 0x20140: 0x6d1e1e20, 0x20141: 0x6c78fe20, 0x20142: 0x6c573020, 0x20143: 0x6c53b620, - 0x20147: 0x6c50ec20, - 0x2014a: 0x6c509620, 0x2014b: 0x6cb9f820, - 0x2014c: 0x6cb85020, 0x2014e: 0x6cd8a620, - 0x20150: 0x6c051e20, - 0x2016c: 0x6c6d9e20, 0x2016d: 0x6c789220, - 0x20173: 0x6c001a20, - 0x20174: 0x6c908020, 0x20176: 0x6ce84820, - 0x20179: 0x6c207020, - 0x2017c: 0x6cd98620, 0x2017d: 0x6c19d620, 0x2017f: 0x6cee6a20, - // Block 0x806, offset 0x20180 - 0x20182: 0x6caa5220, - 0x20184: 0x6c6fb620, 0x20187: 0x6c0d2c20, - 0x201a1: 0x6cffda20, 0x201a2: 0x6cd0f820, 0x201a3: 0x6c545020, - 0x201a6: 0x6d3ad020, - 0x201a8: 0x6c490e20, 0x201a9: 0x6c5eb220, 0x201ab: 0x6c61dc20, - 0x201ad: 0x6cf5da20, 0x201af: 0x6ccf3e20, - 0x201b0: 0x6cab7e20, 0x201b1: 0x6c553c20, 0x201b2: 0x6cde4220, 0x201b3: 0x6cff7c20, - 0x201b5: 0x6d2a7c20, - 0x201b8: 0x6c0fee20, 0x201b9: 0x6cb77820, 0x201ba: 0x6cebd620, 0x201bb: 0x6ceabe20, - 0x201bc: 0x6c2a0c20, 0x201be: 0x6ca33020, - // Block 0x807, offset 0x201c0 - 0x201e0: 0x6d2cee20, 0x201e3: 0x6d0b9020, - 0x201e6: 0x6cf44020, 0x201e7: 0x6d31aa20, - 0x201e8: 0x6c2a8e20, 0x201e9: 0x6c509a20, 0x201eb: 0x6c01ea20, - 0x201ec: 0x6cafda20, 0x201ed: 0x6ccb2220, 0x201ee: 0x6c3bbc20, 0x201ef: 0x6c485420, - 0x201f3: 0x6cb35420, - 0x201f7: 0x6d088820, - 0x201f8: 0x6c4d9c20, 0x201f9: 0x6c427420, 0x201fa: 0x6c034620, 0x201fb: 0x6d3f7620, - 0x201fc: 0x6c9c0020, 0x201fe: 0x6c5dba20, - // Block 0x808, offset 0x20200 - 0x20227: 0x6c2cc220, - 0x20228: 0x6cf5dc20, 0x2022b: 0x6c26ee20, - 0x2022c: 0x6ca47a20, - 0x20230: 0x6c2dbe20, 0x20231: 0x6c95f820, 0x20232: 0x6c789e20, - 0x20237: 0x6d178e20, - 0x20238: 0x6c744420, 0x20239: 0x6c512420, 0x2023b: 0x6c602c20, - 0x2023e: 0x6c51c620, 0x2023f: 0x6ca82820, - // Block 0x809, offset 0x20240 - 0x20240: 0x6cc8f620, 0x20241: 0x6cb99220, 0x20242: 0x6c276c20, 0x20243: 0x6cce6c20, - 0x20244: 0x6c78ae20, 0x20245: 0x6d3a1220, 0x20247: 0x6cd1b820, - 0x20248: 0x6c93da20, 0x20249: 0x6c635c20, 0x2024a: 0x6cb10c20, 0x2024b: 0x6c546e20, - 0x2024c: 0x6c5ec420, 0x2024d: 0x6cde5420, 0x2024e: 0x6c1dac20, 0x2024f: 0x6cf29020, - 0x20250: 0x6c6e8020, 0x20251: 0x6cb30e20, 0x20252: 0x6d2cf220, 0x20253: 0x6d02d420, - 0x20256: 0x6c0b9420, - 0x20259: 0x6d06ce20, - 0x2025e: 0x6c471020, 0x2025f: 0x6c6be620, - 0x20262: 0x6cfb6a20, - 0x20278: 0x6c356420, 0x2027a: 0x6c0f0020, 0x2027b: 0x6cb15420, - 0x2027f: 0x6d28ea20, - // Block 0x80a, offset 0x20280 - 0x20281: 0x6cac2420, 0x20282: 0x6ce85a20, - 0x20284: 0x6d1bb420, - 0x202ae: 0x6cfde220, - 0x202b1: 0x6caaf420, 0x202b2: 0x6c438e20, 0x202b3: 0x6c0f0220, - 0x202b4: 0x6d01a420, - 0x202b8: 0x6d315c20, 0x202b9: 0x6d214620, 0x202ba: 0x6ca6a420, - // Block 0x80b, offset 0x202c0 - 0x202c0: 0x6d0a9220, 0x202c1: 0x6cec3620, 0x202c3: 0x6c021820, - 0x202c4: 0x6c4ece20, 0x202c5: 0x6c52b220, 0x202c6: 0x6c27e220, - 0x202c8: 0x6caac220, 0x202ca: 0x6c12b020, 0x202cb: 0x6c604820, - 0x202cc: 0x6ca5ae20, 0x202cd: 0x6d1e4020, 0x202ce: 0x6cfed220, - 0x202d0: 0x6c1faa20, 0x202d1: 0x6d121020, 0x202d3: 0x6c440220, - 0x202d4: 0x6ce0fc20, 0x202d5: 0x6c065220, 0x202d6: 0x6c15be20, - 0x202d8: 0x6d06ec20, 0x202db: 0x6c4d2020, - 0x202dd: 0x6c1db620, 0x202df: 0x6c65a620, - 0x202e0: 0x6d422620, - 0x202e4: 0x6cf0a420, 0x202e5: 0x6c265220, 0x202e6: 0x6caf6c20, - // Block 0x80c, offset 0x20300 - 0x20310: 0x6c592c20, 0x20312: 0x6cf63a20, - 0x20314: 0x6cae4c20, 0x20315: 0x6c8e3420, 0x20316: 0x6ca24a20, 0x20317: 0x6c9ec620, - 0x20318: 0x6c812020, 0x20319: 0x6ce9fe20, 0x2031a: 0x6c048420, - 0x2031d: 0x6c439820, 0x2031f: 0x6c7aa020, - 0x20322: 0x6c636a20, 0x20323: 0x6c0e7c20, - // Block 0x80d, offset 0x20340 - 0x2034d: 0x6c592e20, 0x2034f: 0x6d40c420, - 0x20350: 0x6c960e20, - 0x20357: 0x6c840a20, - 0x20359: 0x6c515620, 0x2035a: 0x6ca06220, - 0x2035c: 0x6cd72a20, 0x2035d: 0x6cd00420, 0x2035e: 0x6c777020, 0x2035f: 0x6c1c4020, - 0x20360: 0x6c8d3420, 0x20361: 0x6c95ba20, - 0x20364: 0x6d0dae20, 0x20365: 0x6d2fc620, 0x20366: 0x6c1fae20, 0x20367: 0x6c47ac20, - 0x20368: 0x6cbde020, 0x2036a: 0x6cdff220, 0x2036b: 0x6c3be220, - 0x2036c: 0x6ce8d220, - 0x20371: 0x6c8d3620, - 0x20374: 0x6c810820, - // Block 0x80e, offset 0x20380 - 0x20396: 0x6c7fa620, 0x20397: 0x6d299220, - 0x20398: 0x6cf50820, - 0x2039d: 0x6c840c20, 0x2039e: 0x6c000a20, 0x2039f: 0x6c94b620, - 0x203a0: 0x6d353e20, 0x203a1: 0x6c1dc820, 0x203a2: 0x6c67f020, - 0x203a4: 0x6c64c620, - 0x203a9: 0x6c950020, 0x203aa: 0x6d153020, - 0x203ac: 0x6cce0820, - 0x203bb: 0x6c5f0220, - // Block 0x80f, offset 0x203c0 - 0x203dc: 0x6d181e20, 0x203dd: 0x6ca8ea20, - 0x203e1: 0x6c5c0a20, 0x203e3: 0x6d2bf020, - 0x203e6: 0x6c4e6020, - 0x203e8: 0x6d1afa20, 0x203e9: 0x6c0a1a20, 0x203ea: 0x6c014620, 0x203eb: 0x6cf97220, - 0x203ec: 0x6ca60020, - 0x203f0: 0x6c2b3e20, 0x203f1: 0x6c65cc20, 0x203f2: 0x6cac6820, - 0x203f5: 0x6d23bc20, 0x203f6: 0x6c1fc620, 0x203f7: 0x6d289820, - 0x203f9: 0x6c13fc20, 0x203fb: 0x6d307620, - 0x203fc: 0x6ccb4220, 0x203fe: 0x6cae3620, 0x203ff: 0x6c472820, - // Block 0x810, offset 0x20400 - 0x20400: 0x6d307820, - 0x20406: 0x6c842420, 0x20407: 0x6c30be20, - 0x20409: 0x6c1dd020, 0x2040b: 0x6d419620, - 0x2040c: 0x6cb39e20, 0x2040f: 0x6ccefc20, - 0x20410: 0x6c8fa220, - 0x20422: 0x6cd5fe20, - 0x20424: 0x6c6d3a20, 0x20425: 0x6c8d4820, - 0x20428: 0x6c774220, 0x20429: 0x6c7e9220, 0x2042b: 0x6d05cc20, - 0x2042c: 0x6c6d3c20, 0x2042e: 0x6c1fea20, - 0x20432: 0x6d26de20, - // Block 0x811, offset 0x20440 - 0x20446: 0x6c971820, 0x20447: 0x6d020820, - 0x20448: 0x6c6f8620, 0x20449: 0x6c627420, 0x2044b: 0x6d26e820, - 0x2044f: 0x6c64f220, - 0x20451: 0x6c4e3020, 0x20453: 0x6cc98a20, - 0x20454: 0x6c5c2820, 0x20455: 0x6cbc5a20, 0x20457: 0x6ccb5220, - 0x20458: 0x6d419a20, 0x2045b: 0x6c91d620, - 0x2045c: 0x6c57c420, 0x2045d: 0x6c1e6820, 0x2045e: 0x6ccd5c20, 0x2045f: 0x6cf31220, - 0x20460: 0x6c60a220, 0x20461: 0x6d3d9620, 0x20462: 0x6cfb8c20, 0x20463: 0x6d141020, - 0x20464: 0x6c4c8820, 0x20465: 0x6c7d1c20, - // Block 0x812, offset 0x20480 - 0x20491: 0x6d38a820, - 0x20494: 0x6c929e20, 0x20496: 0x6c0e9020, 0x20497: 0x6cd28a20, - 0x20498: 0x6d1d4a20, 0x20499: 0x6c7a5c20, - 0x204b9: 0x6d36d820, 0x204ba: 0x6d00e820, - 0x204bd: 0x6d135420, 0x204be: 0x6c36b420, 0x204bf: 0x6c940420, - // Block 0x813, offset 0x204c0 - 0x204c0: 0x6c4f1420, 0x204c1: 0x6d135620, - 0x204c6: 0x6c962c20, 0x204c7: 0x6c21dc20, - 0x204c8: 0x6c397020, 0x204c9: 0x6d34a020, 0x204ca: 0x6d1d5020, 0x204cb: 0x6cf1f220, - 0x204cc: 0x6cebf220, 0x204cd: 0x6c00d620, 0x204ce: 0x6d21b020, - 0x204d1: 0x6c571a20, 0x204d3: 0x6c8b3220, - 0x204d4: 0x6c6dd620, 0x204d5: 0x6d28ca20, - 0x204e7: 0x6d29e820, - 0x204e8: 0x6c336420, 0x204ea: 0x6c629220, - 0x204ee: 0x6cf2a220, - 0x204f0: 0x6c60ba20, 0x204f1: 0x6cf6e420, 0x204f3: 0x6d2e8620, - 0x204f4: 0x6ce95c20, - // Block 0x814, offset 0x20500 - 0x2050a: 0x6d21b220, - 0x2050f: 0x6c8b4620, - 0x20512: 0x6d372420, 0x20513: 0x6cd20a20, - 0x20515: 0x6c81c220, 0x20516: 0x6c7f6020, 0x20517: 0x6cf03620, - 0x20518: 0x6cad7220, 0x20519: 0x6c1b6220, 0x2051a: 0x6d1d1420, 0x2051b: 0x6c314020, - 0x2051d: 0x6c314220, 0x2051f: 0x6c067620, - 0x20520: 0x6cbcf020, 0x20521: 0x6cd62020, 0x20523: 0x6d34a820, - 0x20529: 0x6c8b4820, 0x2052b: 0x6caed620, - 0x2052d: 0x6d300620, - 0x2053f: 0x6cab5a20, - // Block 0x815, offset 0x20540 - 0x20542: 0x6d023c20, 0x20543: 0x6c60d820, - 0x20544: 0x6c7f6220, 0x20545: 0x6d1cb020, 0x20546: 0x6c134c20, - 0x20556: 0x6c820020, - 0x2055d: 0x6c952820, - 0x20561: 0x6c8fbc20, 0x20562: 0x6cf91020, - 0x20566: 0x6c8c7620, - 0x20569: 0x6c4aa020, - 0x20573: 0x6d03b020, - 0x20577: 0x6c848620, - 0x20578: 0x6c221620, - // Block 0x816, offset 0x20580 - 0x20587: 0x6cbebc20, - 0x20591: 0x6c652e20, 0x20592: 0x6c2a4420, 0x20593: 0x6c661420, - 0x20594: 0x6cbee820, 0x20595: 0x6d026e20, 0x20596: 0x6d1d5a20, - 0x2059f: 0x6c4d0020, - 0x205a1: 0x6d311820, 0x205a2: 0x6ccf0420, 0x205a3: 0x6c9c9a20, - 0x205a4: 0x6c58ba20, - 0x205b1: 0x6c248220, 0x205b2: 0x6cc7e820, 0x205b3: 0x6cc95a20, - 0x205b4: 0x6c5e4620, 0x205b5: 0x6d143420, 0x205b7: 0x6c2b4e20, - 0x205b9: 0x6c949e20, 0x205bb: 0x6d193e20, - // Block 0x817, offset 0x205c0 - 0x205c2: 0x6c100020, 0x205c3: 0x6cad1820, - 0x205c4: 0x6ce04220, 0x205c5: 0x6c35a420, 0x205c6: 0x6d29ee20, 0x205c7: 0x6c23c420, - 0x205d3: 0x6d2d0a20, - 0x205d5: 0x6cf82620, 0x205d6: 0x6c98b020, - 0x205d8: 0x6c7eca20, 0x205d9: 0x6d287820, - 0x205e1: 0x6c36e620, - 0x205e5: 0x6c2f0e20, - 0x205ed: 0x6c493c20, - 0x205f1: 0x6c596620, - 0x205f5: 0x6cd40620, 0x205f6: 0x6c663220, - 0x205f9: 0x6d2dce20, 0x205fa: 0x6c610620, 0x205fb: 0x6c596820, - // Block 0x818, offset 0x20600 - 0x20605: 0x6cedb220, 0x20606: 0x6c95d820, - 0x2060f: 0x6c315620, - 0x20615: 0x6c893c20, - 0x20623: 0x6ca7ea20, - 0x20624: 0x6ca41c20, 0x20625: 0x6c6fc820, 0x20626: 0x6d266c20, - 0x20629: 0x6d108820, 0x2062a: 0x6c204c20, - 0x2062e: 0x6c11cc20, 0x2062f: 0x6c84f820, - 0x20630: 0x6c33d420, 0x20631: 0x6ca41e20, 0x20632: 0x6ca42020, - 0x20638: 0x6cc63820, - 0x2063d: 0x6d267820, - // Block 0x819, offset 0x20640 - 0x20640: 0x6d1ee620, 0x20642: 0x6d19a420, - 0x20644: 0x6c4c5820, - 0x20648: 0x6c295420, - 0x20651: 0x6d312620, 0x20652: 0x6c9c3c20, 0x20653: 0x6c2e6820, - 0x20656: 0x6d312820, - 0x2065a: 0x6c7abe20, - 0x2065c: 0x6c4de220, 0x2065d: 0x6cd98020, 0x2065e: 0x6c50d020, 0x2065f: 0x6c5e9620, - 0x20660: 0x6d302e20, - 0x20664: 0x6c0dd620, 0x20666: 0x6ceef220, 0x20667: 0x6ce7d220, - 0x20669: 0x6ce88c20, - 0x2066c: 0x6c426e20, 0x2066d: 0x6c908220, 0x2066e: 0x6cc2c820, 0x2066f: 0x6c5d2220, - 0x20670: 0x6d3ba420, 0x20671: 0x6cc3b220, 0x20673: 0x6c533a20, - 0x20675: 0x6c296020, 0x20676: 0x6c510420, 0x20677: 0x6cdf6e20, - 0x20678: 0x6c48ca20, 0x2067a: 0x6d230220, - 0x2067c: 0x6d0baa20, 0x2067f: 0x6cec8c20, - // Block 0x81a, offset 0x20680 - 0x20680: 0x6cc43820, - 0x20685: 0x6c744620, 0x20686: 0x6cab3820, - 0x20689: 0x6cc29c20, 0x2068a: 0x6d347220, - 0x2068d: 0x6c8d1820, 0x2068e: 0x6cf37020, 0x2068f: 0x6d033c20, - 0x20690: 0x6c26ae20, 0x20692: 0x6d24f220, 0x20693: 0x6d261e20, - 0x20697: 0x6ca13820, - 0x20699: 0x6d1f5420, - 0x2069e: 0x6cf45820, - 0x206a0: 0x6d2ebe20, 0x206a3: 0x6d07b820, - 0x206a6: 0x6cc53c20, 0x206a7: 0x6c4be220, - 0x206a8: 0x6d23be20, - 0x206ae: 0x6cf9fc20, 0x206af: 0x6c0b5220, - 0x206b0: 0x6d1f7e20, 0x206b2: 0x6d1a1420, - 0x206b4: 0x6d083220, 0x206b5: 0x6d1f8c20, 0x206b6: 0x6c827a20, - 0x206bc: 0x6ce6a620, 0x206bf: 0x6d311a20, - // Block 0x81b, offset 0x206c0 - 0x206c4: 0x6d292420, 0x206c5: 0x6c40ba20, 0x206c6: 0x6c7e5620, - 0x206c9: 0x6cc39e20, - 0x206ce: 0x6c70ec20, - 0x206d0: 0x6c20fa20, 0x206d1: 0x6c263e20, 0x206d2: 0x6cea3a20, 0x206d3: 0x6c001220, - 0x206d7: 0x6d3edc20, - 0x206da: 0x6c59a620, 0x206db: 0x6d167c20, - 0x206e9: 0x6c062e20, 0x206ea: 0x6c1afc20, - 0x206ed: 0x6cc63a20, - 0x206f4: 0x6c913220, 0x206f7: 0x6c6a6c20, - 0x206f8: 0x6cd30a20, 0x206fa: 0x6d413620, - // Block 0x81c, offset 0x20700 - 0x20701: 0x6d167e20, - 0x20704: 0x6c3bc820, 0x20705: 0x6c3bca20, - 0x20709: 0x6ca0c420, - 0x2070d: 0x6cd59a20, - 0x2071b: 0x6c023e20, - 0x2071d: 0x6cb05620, 0x2071e: 0x6cb27820, 0x2071f: 0x6cb2f820, - 0x20720: 0x6c639e20, 0x20721: 0x6d38ca20, 0x20723: 0x6cbf9e20, - 0x20727: 0x6d1fa620, - 0x20728: 0x6cdfd020, 0x2072b: 0x6cc6f620, - 0x2072d: 0x6c9d2020, - 0x20736: 0x6d16ac20, - 0x20738: 0x6cc6fc20, 0x2073b: 0x6c8ace20, - 0x2073c: 0x6cbf0220, - // Block 0x81d, offset 0x20740 - 0x20759: 0x6c5b2020, 0x2075a: 0x6c61a020, - 0x2075f: 0x6c433a20, - 0x20767: 0x6d1f0420, - 0x20768: 0x6c138220, 0x20769: 0x6c2a6020, 0x2076a: 0x6d19ac20, - 0x2076c: 0x6d22de20, 0x2076d: 0x6c06fc20, 0x2076f: 0x6c0ed020, - // Block 0x81e, offset 0x20780 - 0x20794: 0x6cbb6820, - 0x2079a: 0x6c141c20, - 0x2079c: 0x6d02be20, 0x2079e: 0x6c1b1420, - 0x207a3: 0x6d2a7220, - 0x207a4: 0x6c7c6020, 0x207a6: 0x6c3aa220, - 0x207a9: 0x6cddea20, 0x207aa: 0x6c48f420, - 0x207ad: 0x6c342620, - 0x207b2: 0x6c4a5420, - 0x207b4: 0x6d345020, - // Block 0x81f, offset 0x207c0 - 0x207cc: 0x6c15a620, 0x207cd: 0x6ca4ec20, - 0x207d0: 0x6c553e20, 0x207d2: 0x6ce21820, - 0x207e1: 0x6d175620, - 0x207e4: 0x6ca82a20, 0x207e5: 0x6d2d3e20, 0x207e6: 0x6c587220, - 0x207e8: 0x6c325620, 0x207ea: 0x6cb78620, 0x207eb: 0x6c12e420, - 0x207ee: 0x6c20cc20, - 0x207f2: 0x6c264e20, - 0x207f6: 0x6d361820, 0x207f7: 0x6c453020, - 0x207fb: 0x6cf26e20, - // Block 0x820, offset 0x20800 - 0x20809: 0x6c325820, - 0x2080d: 0x6c1b2420, - 0x20811: 0x6c01be20, 0x20812: 0x6c7df820, - 0x20814: 0x6cf2e820, - 0x20818: 0x6d1bb620, 0x2081a: 0x6cb13e20, - 0x2082b: 0x6d2c3020, - 0x2082c: 0x6d3b6420, 0x2082e: 0x6cdac420, - 0x20833: 0x6ca6a620, - 0x2083a: 0x6d3a1420, 0x2083b: 0x6c14fe20, - 0x2083e: 0x6c084020, 0x2083f: 0x6ca5f220, - // Block 0x821, offset 0x20840 - 0x20840: 0x6d347420, 0x20841: 0x6c5bd420, - 0x20858: 0x6cfa3a20, 0x2085a: 0x6d364e20, 0x2085b: 0x6cf63c20, - 0x2085e: 0x6c67aa20, - 0x20869: 0x6c330220, 0x2086a: 0x6c3d7c20, - 0x2086d: 0x6c685c20, 0x2086e: 0x6c176820, 0x2086f: 0x6c045020, - 0x20875: 0x6c8b1e20, - 0x2087c: 0x6c025a20, - // Block 0x822, offset 0x20880 - 0x2088b: 0x6d2a1620, - 0x2088c: 0x6c1f6020, 0x2088f: 0x6ceb8620, - 0x20892: 0x6c4fd220, 0x20893: 0x6c773620, - 0x20894: 0x6d1a7e20, 0x20896: 0x6cfcea20, - 0x2089d: 0x6c401820, 0x2089e: 0x6c0cb620, - 0x208a0: 0x6c7c4020, - 0x208a4: 0x6cbcde20, 0x208a5: 0x6cc98420, - 0x208bf: 0x6c266220, - // Block 0x823, offset 0x208c0 - 0x208c0: 0x6d12b220, - 0x208c4: 0x6d2f0820, 0x208c6: 0x6c896420, - 0x208c8: 0x6c332620, - 0x208cd: 0x6c816620, 0x208ce: 0x6d09a620, - 0x208d8: 0x6d36a420, 0x208da: 0x6c7a5a20, - 0x208de: 0x6cdc6a20, 0x208df: 0x6cf2a020, - 0x208e3: 0x6c7a5e20, - 0x208ef: 0x6c65d420, - 0x208f6: 0x6c67ba20, - 0x208fb: 0x6d3caa20, - 0x208fd: 0x6cd6dc20, 0x208fe: 0x6d219c20, - // Block 0x824, offset 0x20900 - 0x20901: 0x6cc98c20, 0x20903: 0x6d23e620, - 0x20904: 0x6c803a20, - 0x2090a: 0x6d240620, - 0x2090c: 0x6cba2820, 0x2090d: 0x6c72a220, 0x2090f: 0x6c8b3420, - 0x20912: 0x6cd53e20, 0x20913: 0x6cfd1a20, - 0x20916: 0x6c415420, - 0x20922: 0x6cdf4420, - 0x20927: 0x6ce52220, - 0x2092f: 0x6c9c1020, - 0x20931: 0x6c2ba220, 0x20933: 0x6c9ddc20, - 0x2093e: 0x6c5afa20, - // Block 0x825, offset 0x20940 - 0x20949: 0x6c351c20, - 0x2094d: 0x6c8b4a20, - 0x20952: 0x6c7f6820, 0x20953: 0x6d1aa820, - 0x20954: 0x6c804620, 0x20956: 0x6c68a020, - 0x20958: 0x6c5e2620, - 0x20963: 0x6c4c4c20, - 0x20966: 0x6d2e9420, - 0x2096d: 0x6c9d0820, - 0x20970: 0x6c7c5020, - 0x20977: 0x6c352620, - 0x2097f: 0x6d1ab020, - // Block 0x826, offset 0x20980 - 0x20987: 0x6c836020, - 0x20995: 0x6c462a20, - 0x2099b: 0x6ce6ac20, - 0x2099c: 0x6d10c820, 0x2099e: 0x6cedf620, - 0x209a3: 0x6c6aa020, - 0x209a8: 0x6d04c220, 0x209aa: 0x6cd5c020, - 0x209b1: 0x6cf08c20, - 0x209b4: 0x6d236620, - // Block 0x827, offset 0x209c0 - 0x209c1: 0x6d2da620, - 0x209c9: 0x6c01ee20, - 0x209cf: 0x6cca9a20, - 0x209d0: 0x6c1e0c20, 0x209d2: 0x6c7ae220, - 0x209d6: 0x6c71a020, 0x209d7: 0x6c4d5220, - 0x209e2: 0x6c9e0420, - 0x209e7: 0x6c4f9420, - 0x209ea: 0x6c1d9e20, - 0x209ee: 0x6c8d1a20, - 0x209f0: 0x6d3f9620, - // Block 0x828, offset 0x20a00 - 0x20a09: 0x6c7d4820, - 0x20a0c: 0x6d378c20, 0x20a0e: 0x6d2f5420, - 0x20a10: 0x6c2f2e20, 0x20a11: 0x6c467420, 0x20a12: 0x6d279620, 0x20a13: 0x6c27c620, - 0x20a14: 0x6caada20, - 0x20a1b: 0x6c0dd820, - 0x20a1d: 0x6cc47420, 0x20a1e: 0x6c14c420, - 0x20a22: 0x6cc70620, 0x20a23: 0x6d19c820, - 0x20a24: 0x6c14c620, 0x20a27: 0x6d361a20, - 0x20a2a: 0x6c48f820, 0x20a2b: 0x6caabe20, - 0x20a2c: 0x6ccfe420, 0x20a2f: 0x6cdac620, - 0x20a32: 0x6cf2b820, 0x20a33: 0x6c1bb220, - 0x20a3a: 0x6c9ee220, 0x20a3b: 0x6d347e20, - 0x20a3e: 0x6cb50a20, - // Block 0x829, offset 0x20a40 - 0x20a41: 0x6c465820, - 0x20a46: 0x6c90fa20, - 0x20a48: 0x6d3ea020, - 0x20a4d: 0x6c293a20, 0x20a4f: 0x6cfc6820, - 0x20a51: 0x6cc77e20, - 0x20a57: 0x6caefe20, - 0x20a5e: 0x6cf56c20, - 0x20a62: 0x6c7aba20, - 0x20a64: 0x6c4b2620, 0x20a65: 0x6c212e20, 0x20a66: 0x6c6baa20, - 0x20a72: 0x6c6bac20, 0x20a73: 0x6cf57820, - 0x20a75: 0x6c7a1a20, 0x20a77: 0x6c46ec20, - 0x20a78: 0x6d2cac20, 0x20a79: 0x6c392620, - 0x20a7c: 0x6d015a20, - // Block 0x82a, offset 0x20a80 - 0x20a8d: 0x6c585e20, 0x20a8f: 0x6ca79020, - 0x20a90: 0x6cf85820, - 0x20a9b: 0x6c240820, - 0x20a9d: 0x6c4bba20, - 0x20aa1: 0x6cf5b620, - 0x20aa7: 0x6cb83620, - 0x20aaa: 0x6c981c20, - 0x20aad: 0x6d303220, - 0x20ab0: 0x6c734620, - 0x20ab4: 0x6c0ca020, - // Block 0x82b, offset 0x20ac0 - 0x20ac0: 0x6c0ca220, - 0x20ac5: 0x6cc2d620, - 0x20acb: 0x6cf88620, - 0x20ace: 0x6c68f020, - 0x20ad0: 0x6cc2ea20, 0x20ad1: 0x6d352620, 0x20ad2: 0x6ce46820, 0x20ad3: 0x6c762a20, - 0x20ad8: 0x6cca1a20, 0x20adb: 0x6d3e4c20, - 0x20ae3: 0x6c6adc20, - 0x20aea: 0x6c0cec20, - 0x20aec: 0x6c312c20, 0x20aed: 0x6d417620, - 0x20af6: 0x6d0db020, - // Block 0x82c, offset 0x20b00 - 0x20b01: 0x6c0a1c20, - 0x20b05: 0x6c7b0020, 0x20b07: 0x6d0eb620, - 0x20b08: 0x6cef3820, 0x20b0a: 0x6c583420, - 0x20b0c: 0x6c506420, - 0x20b11: 0x6c45b820, - 0x20b14: 0x6c9b5420, 0x20b17: 0x6c82e420, - 0x20b19: 0x6c2cae20, 0x20b1b: 0x6c0e0220, - 0x20b1c: 0x6c584420, 0x20b1f: 0x6cebfe20, - 0x20b20: 0x6c751420, - 0x20b28: 0x6c1bda20, - 0x20b2d: 0x6c030e20, 0x20b2e: 0x6c6fa420, - 0x20b37: 0x6c2c0e20, - 0x20b39: 0x6d2f1c20, 0x20b3b: 0x6c26e620, - 0x20b3c: 0x6cd23820, 0x20b3d: 0x6c501420, - // Block 0x82d, offset 0x20b40 - 0x20b4c: 0x6d12c020, - 0x20b57: 0x6c091a20, - 0x20b58: 0x6cb05020, 0x20b59: 0x6d118820, - 0x20b5c: 0x6c2b1420, 0x20b5d: 0x6c11ee20, 0x20b5e: 0x6cb20220, 0x20b5f: 0x6d268420, - 0x20b60: 0x6cbc7820, 0x20b61: 0x6caf3220, - 0x20b75: 0x6ceb7020, 0x20b76: 0x6d015c20, - 0x20b7d: 0x6d12cc20, - // Block 0x82e, offset 0x20b80 - 0x20b80: 0x6c392820, 0x20b81: 0x6c484620, 0x20b82: 0x6c566e20, 0x20b83: 0x6cc7fa20, - 0x20b89: 0x6cc4b620, 0x20b8a: 0x6c3d2020, 0x20b8b: 0x6c598020, - 0x20b9a: 0x6cc79020, - 0x20ba2: 0x6c993020, - 0x20ba5: 0x6c32f620, 0x20ba6: 0x6c5b9820, 0x20ba7: 0x6cf85a20, - 0x20ba8: 0x6d04bc20, 0x20bab: 0x6cc4b820, - 0x20bac: 0x6d13d620, 0x20baf: 0x6d303420, - 0x20bb1: 0x6c61c620, 0x20bb2: 0x6c434020, 0x20bb3: 0x6d203820, - 0x20bb5: 0x6cb40620, - // Block 0x82f, offset 0x20bc0 - 0x20bc8: 0x6c1f2220, 0x20bc9: 0x6c240a20, 0x20bca: 0x6d303620, 0x20bcb: 0x6ca79220, - 0x20bcd: 0x6cbca620, - 0x20bd0: 0x6c13d220, 0x20bd2: 0x6ca79420, 0x20bd3: 0x6cdbb620, - 0x20bd9: 0x6c13d420, 0x20bda: 0x6c19da20, 0x20bdb: 0x6d10e020, - 0x20bdc: 0x6c324820, 0x20bdd: 0x6cedc820, 0x20bdf: 0x6ca76220, - 0x20be0: 0x6c9c4420, - 0x20be6: 0x6caa1620, 0x20be7: 0x6cf87820, - 0x20be9: 0x6d109820, 0x20beb: 0x6c14c820, - // Block 0x830, offset 0x20c00 - 0x20c18: 0x6d018c20, 0x20c19: 0x6c9ed420, 0x20c1a: 0x6c796420, - 0x20c1c: 0x6c243a20, 0x20c1e: 0x6cd13620, 0x20c1f: 0x6cacb620, - 0x20c20: 0x6c569c20, 0x20c22: 0x6c78b020, 0x20c23: 0x6cfcc220, - 0x20c25: 0x6c53fa20, 0x20c26: 0x6cbf2020, 0x20c27: 0x6d3f8220, - 0x20c2a: 0x6c3e7420, 0x20c2b: 0x6ca3be20, - 0x20c2d: 0x6ca69e20, 0x20c2f: 0x6c7a7a20, - 0x20c3e: 0x6ca59820, - // Block 0x831, offset 0x20c40 - 0x20c4d: 0x6c439020, - 0x20c51: 0x6c53fc20, 0x20c53: 0x6c002620, - 0x20c55: 0x6cd1ba20, - 0x20c5e: 0x6d04d420, 0x20c5f: 0x6c230e20, - 0x20c60: 0x6c684420, 0x20c62: 0x6d2c3220, 0x20c63: 0x6cfebe20, - 0x20c64: 0x6c88f820, 0x20c65: 0x6cc24820, - 0x20c68: 0x6ccd4420, 0x20c69: 0x6d01c020, 0x20c6b: 0x6c461c20, - 0x20c6c: 0x6c9ed820, 0x20c6d: 0x6c148020, 0x20c6f: 0x6c371620, - 0x20c73: 0x6c312220, - // Block 0x832, offset 0x20c80 - 0x20c86: 0x6c79f020, - 0x20c8a: 0x6ce58a20, 0x20c8b: 0x6cd1cc20, - 0x20c8f: 0x6cca7020, - 0x20c92: 0x6c491a20, - 0x20c96: 0x6c505620, 0x20c97: 0x6d367c20, - 0x20c98: 0x6d106620, 0x20c99: 0x6ce70020, 0x20c9a: 0x6c09ee20, - 0x20c9c: 0x6ca06420, 0x20c9e: 0x6c3ebe20, - 0x20ca5: 0x6cbb1420, - 0x20cb9: 0x6d367e20, - 0x20cbc: 0x6cd9ca20, 0x20cbf: 0x6ca7a020, - // Block 0x833, offset 0x20cc0 - 0x20cc0: 0x6c738020, 0x20cc2: 0x6d105620, - 0x20cc4: 0x6c599e20, - 0x20cc8: 0x6c080020, 0x20cc9: 0x6ca06620, 0x20cca: 0x6c176a20, - 0x20cce: 0x6c93a420, 0x20ccf: 0x6cce8220, - 0x20cd0: 0x6c104220, 0x20cd1: 0x6d2b8820, 0x20cd2: 0x6cd81020, - 0x20cd4: 0x6d41c420, 0x20cd5: 0x6d265620, 0x20cd6: 0x6d294c20, 0x20cd7: 0x6c948e20, - 0x20ce5: 0x6cc1b020, - 0x20cfa: 0x6c9e9820, - // Block 0x834, offset 0x20d00 - 0x20d00: 0x6d3bd820, - 0x20d08: 0x6c297e20, 0x20d0a: 0x6d250a20, - 0x20d12: 0x6c71d220, - 0x20d15: 0x6c5b6020, 0x20d16: 0x6cb7d020, - 0x20d18: 0x6d285220, 0x20d1a: 0x6c97fe20, - 0x20d1c: 0x6ca0aa20, - 0x20d31: 0x6cb16220, 0x20d33: 0x6c6d4a20, - 0x20d39: 0x6d10b820, - // Block 0x835, offset 0x20d40 - 0x20d40: 0x6c1c6820, 0x20d41: 0x6ca6c620, 0x20d42: 0x6cd9de20, - 0x20d48: 0x6cd61a20, 0x20d4b: 0x6cb16420, - 0x20d54: 0x6c4f1620, - 0x20d60: 0x6d10be20, 0x20d62: 0x6ca56020, - 0x20d6a: 0x6cd3f020, - 0x20d6c: 0x6d251820, 0x20d6e: 0x6c114c20, 0x20d6f: 0x6c6b5220, - 0x20d79: 0x6d023e20, - 0x20d7d: 0x6d0cec20, 0x20d7e: 0x6cff3620, - // Block 0x836, offset 0x20d80 - 0x20d8b: 0x6d025020, - 0x20d8c: 0x6c86ec20, 0x20d8e: 0x6c397620, - 0x20d97: 0x6d3b3c20, - 0x20d99: 0x6ca37220, 0x20d9b: 0x6d3bb620, - 0x20d9e: 0x6c7c4c20, - 0x20da2: 0x6c957020, - 0x20dab: 0x6cb83220, - 0x20db6: 0x6ceca820, - 0x20dbd: 0x6cd54c20, 0x20dbf: 0x6c1a7c20, - // Block 0x837, offset 0x20dc0 - 0x20dc1: 0x6d164620, - 0x20dc6: 0x6c500820, - 0x20dc8: 0x6c698220, 0x20dcb: 0x6c5b8e20, - 0x20dcd: 0x6cffce20, 0x20dce: 0x6c222020, - 0x20dde: 0x6c61a220, - 0x20de6: 0x6ca62e20, - 0x20de8: 0x6ca63420, 0x20de9: 0x6ce3bc20, - 0x20df6: 0x6c724820, - 0x20df8: 0x6ca04220, - 0x20dfd: 0x6c83d220, 0x20dff: 0x6d382c20, - // Block 0x838, offset 0x20e00 - 0x20e01: 0x6d06d420, 0x20e03: 0x6cbf3820, - 0x20e04: 0x6c3e9620, 0x20e06: 0x6c0d7e20, - 0x20e0a: 0x6c621620, - 0x20e0d: 0x6cb5f420, 0x20e0e: 0x6cf89c20, - 0x20e14: 0x6c2ada20, 0x20e15: 0x6c376020, - 0x20e1b: 0x6cd53220, - 0x20e1c: 0x6ce77820, 0x20e1d: 0x6cff9620, 0x20e1f: 0x6cb01c20, - 0x20e28: 0x6c284020, 0x20e2a: 0x6c60da20, - 0x20e33: 0x6d002020, - 0x20e37: 0x6c23ca20, - 0x20e3b: 0x6c0d1c20, - 0x20e3c: 0x6cc6f020, - // Block 0x839, offset 0x20e40 - 0x20e4d: 0x6c9e4a20, - 0x20e52: 0x6c9e4c20, - 0x20e54: 0x6cd49c20, 0x20e55: 0x6cff6c20, 0x20e56: 0x6c05e420, 0x20e57: 0x6cec2220, - 0x20e59: 0x6cad8020, - 0x20e63: 0x6c410e20, - 0x20e65: 0x6c549c20, 0x20e66: 0x6c525420, - 0x20e68: 0x6d39f220, 0x20e69: 0x6c48c420, - 0x20e6d: 0x6c4b3820, - 0x20e79: 0x6c273e20, - 0x20e7c: 0x6c0d2820, 0x20e7d: 0x6c5a4420, - // Block 0x83a, offset 0x20e80 - 0x20e80: 0x6c13d620, - 0x20e84: 0x6cfa3420, 0x20e85: 0x6c710220, 0x20e87: 0x6d119a20, - 0x20e96: 0x6c3bb620, 0x20e97: 0x6d2a7420, - 0x20e9b: 0x6c3c3020, - 0x20ea2: 0x6c708020, 0x20ea3: 0x6d230a20, - 0x20ea9: 0x6c5cbe20, - 0x20eb2: 0x6c6ab020, 0x20eb3: 0x6d049020, - 0x20eb5: 0x6ca3ba20, - 0x20ebb: 0x6caa1820, - 0x20ebd: 0x6cd13820, 0x20ebf: 0x6d233420, - // Block 0x83b, offset 0x20ec0 - 0x20ec2: 0x6c587620, 0x20ec3: 0x6c450c20, - 0x20ec4: 0x6ced1620, 0x20ec6: 0x6ceb1e20, 0x20ec7: 0x6cbb7820, - 0x20ed8: 0x6d1b5220, 0x20eda: 0x6c635e20, - 0x20ee1: 0x6cdd7220, 0x20ee3: 0x6c6ade20, - 0x20ee4: 0x6cf64020, 0x20ee5: 0x6cf25020, - 0x20ee9: 0x6c986620, - 0x20ef6: 0x6d0fbe20, - 0x20ef8: 0x6d110820, - 0x20efd: 0x6c986c20, 0x20efe: 0x6cab3e20, - // Block 0x83c, offset 0x20f00 - 0x20f01: 0x6c017020, - 0x20f05: 0x6c910c20, - 0x20f11: 0x6c366e20, 0x20f12: 0x6d3f1e20, - 0x20f17: 0x6c367020, - 0x20f19: 0x6c01c820, - 0x20f1e: 0x6c5de220, - 0x20f20: 0x6c135220, - 0x20f30: 0x6d049c20, 0x20f31: 0x6c625e20, 0x20f33: 0x6d424e20, - 0x20f35: 0x6cb63620, - 0x20f3a: 0x6d32ee20, - // Block 0x83d, offset 0x20f40 - 0x20f40: 0x6c5f2e20, 0x20f41: 0x6cb52e20, 0x20f42: 0x6c732420, 0x20f43: 0x6ca91c20, - 0x20f5f: 0x6ccb7220, - 0x20f65: 0x6c51fa20, 0x20f66: 0x6cc72c20, 0x20f67: 0x6cbdec20, - 0x20f6c: 0x6c70de20, 0x20f6f: 0x6c86ee20, - 0x20f75: 0x6cd29020, - 0x20f78: 0x6ca6da20, 0x20f79: 0x6cfbc420, 0x20f7a: 0x6c3dbc20, - 0x20f7d: 0x6cc80820, - // Block 0x83e, offset 0x20f80 - 0x20f81: 0x6d04ac20, 0x20f82: 0x6c4ba220, - 0x20f84: 0x6c62e020, 0x20f86: 0x6c9bf820, 0x20f87: 0x6c3dc020, - 0x20f89: 0x6cc9ee20, 0x20f8a: 0x6d247820, 0x20f8b: 0x6c69de20, - 0x20f8c: 0x6c9c2220, 0x20f8d: 0x6c900e20, 0x20f8e: 0x6cbb0020, - 0x20f90: 0x6c9cc620, 0x20f93: 0x6d15a420, - 0x20f96: 0x6c4dc620, 0x20f97: 0x6ca6e620, - 0x20f98: 0x6c81ee20, 0x20f99: 0x6ccbbe20, - 0x20f9c: 0x6c8c4220, 0x20f9e: 0x6d22c220, - 0x20fa5: 0x6caab020, - 0x20fab: 0x6cf4c020, - 0x20faf: 0x6c0b3620, - 0x20fb2: 0x6c0b3820, 0x20fb3: 0x6d079620, - 0x20fb5: 0x6c649620, - 0x20fb8: 0x6c0b3c20, - // Block 0x83f, offset 0x20fc0 - 0x20fc2: 0x6c2a7a20, - 0x20fc7: 0x6d3b8620, - 0x20fcb: 0x6cc72020, - 0x20fd0: 0x6cd69820, - 0x20fd8: 0x6c631820, 0x20fdb: 0x6c5b4a20, - 0x20fde: 0x6d2d5c20, - 0x20fe2: 0x6c042e20, 0x20fe3: 0x6c8ac420, - 0x20fe5: 0x6d003820, - 0x20fed: 0x6c656c20, 0x20fee: 0x6cd44020, - 0x20ff3: 0x6c77ba20, - 0x20ff7: 0x6c490c20, - 0x20ff8: 0x6c949420, - 0x20ffe: 0x6caa1a20, 0x20fff: 0x6c16e820, - // Block 0x840, offset 0x21000 - 0x2100e: 0x6c895220, - 0x21019: 0x6ca3c620, 0x2101a: 0x6cc80020, - 0x2101e: 0x6d368020, - 0x21026: 0x6c128620, - 0x21030: 0x6c867420, - 0x2103b: 0x6c7fcc20, - 0x2103f: 0x6c14e220, - // Block 0x841, offset 0x21040 - 0x21041: 0x6cedba20, - 0x21044: 0x6c856620, 0x21047: 0x6cf49620, - 0x21048: 0x6cad4220, 0x21049: 0x6d200a20, 0x2104b: 0x6c415e20, - 0x2104f: 0x6c011420, - 0x21050: 0x6d04b420, 0x21051: 0x6cd70420, 0x21052: 0x6cc8aa20, - 0x21058: 0x6c04b620, 0x21059: 0x6d1eea20, - 0x21062: 0x6c5d6e20, - 0x21065: 0x6c5a9c20, - 0x21068: 0x6d428c20, 0x21069: 0x6cfe9820, 0x2106b: 0x6c9dba20, - 0x21070: 0x6c40d620, 0x21071: 0x6d25e220, 0x21073: 0x6c0ff020, - 0x21074: 0x6c17ba20, 0x21075: 0x6ce9e220, 0x21077: 0x6c0ff220, - 0x2107d: 0x6c40d820, 0x2107f: 0x6ce55820, - // Block 0x842, offset 0x21080 - 0x21080: 0x6ca2dc20, - 0x21085: 0x6c556a20, 0x21086: 0x6ca83c20, - 0x2108b: 0x6c5b3e20, - 0x2108c: 0x6c90ea20, 0x2108e: 0x6ce35020, - 0x21090: 0x6cbc5420, 0x21091: 0x6cbbee20, 0x21092: 0x6d380620, - 0x21096: 0x6c2b4220, - 0x2109a: 0x6c8bd820, - 0x2109d: 0x6cc32c20, 0x2109e: 0x6d3b9a20, - 0x210a0: 0x6c828e20, 0x210a2: 0x6d013620, - 0x210a5: 0x6cc56220, - 0x210a8: 0x6c28f620, 0x210aa: 0x6c316020, 0x210ab: 0x6ca71420, - 0x210af: 0x6cd2ae20, - 0x210b2: 0x6cfb2020, - 0x210b9: 0x6d343820, - 0x210bd: 0x6c008820, 0x210be: 0x6c21f220, 0x210bf: 0x6cb42a20, - // Block 0x843, offset 0x210c0 - 0x210c1: 0x6cd2b620, - 0x210c5: 0x6cc0de20, 0x210c6: 0x6cd55020, 0x210c7: 0x6c2cbe20, - 0x210c9: 0x6cffa420, 0x210ca: 0x6cd70a20, - 0x210cc: 0x6c586020, - 0x210d0: 0x6d149220, 0x210d1: 0x6c72dc20, - 0x210d4: 0x6d34fc20, - 0x210dc: 0x6d2f9e20, - 0x210e3: 0x6d06a220, - 0x210ef: 0x6c905a20, - 0x210f1: 0x6d3aca20, 0x210f3: 0x6cdd5620, - 0x210f7: 0x6c2e8020, - 0x210fa: 0x6cc18420, - 0x210fc: 0x6c78a220, 0x210fd: 0x6c54ba20, 0x210fe: 0x6c708220, - // Block 0x844, offset 0x21100 - 0x21100: 0x6cbea420, - 0x2110d: 0x6c0dae20, - 0x21115: 0x6ce3f220, 0x21117: 0x6c744820, - 0x2111a: 0x6cc05a20, - 0x21123: 0x6c67e420, - 0x2112a: 0x6d282e20, - 0x2112d: 0x6c9a9a20, 0x2112e: 0x6caf6e20, - 0x21130: 0x6cc1a020, - 0x2113c: 0x6c9d5220, 0x2113f: 0x6ce3fe20, - // Block 0x845, offset 0x21140 - 0x21142: 0x6c768c20, - 0x21144: 0x6c08e820, 0x21146: 0x6cc11c20, - 0x2114f: 0x6ce56620, - 0x21151: 0x6c1f6c20, - 0x21158: 0x6c714a20, 0x2115a: 0x6cf69620, - 0x2115e: 0x6c8c5e20, - 0x2116d: 0x6c1bca20, 0x2116e: 0x6c5f7e20, - 0x21174: 0x6c917a20, - 0x21178: 0x6c876220, - 0x2117e: 0x6c73c820, - // Block 0x846, offset 0x21180 - 0x21185: 0x6d397c20, 0x21186: 0x6c921020, - 0x2118e: 0x6ca7f620, - 0x21194: 0x6cc2c020, - 0x211ad: 0x6d0b6820, 0x211af: 0x6c35c220, - 0x211b1: 0x6c564020, - // Block 0x847, offset 0x211c0 - 0x211c0: 0x6c982620, - 0x211c9: 0x6cf4a020, - 0x211cc: 0x6c137620, - 0x211d1: 0x6cbd1820, 0x211d2: 0x6c6a6220, 0x211d3: 0x6c52f420, - 0x211d5: 0x6c27b620, 0x211d6: 0x6c371c20, 0x211d7: 0x6d2b3a20, - 0x211d8: 0x6c565220, 0x211d9: 0x6c020e20, 0x211da: 0x6c6bb220, 0x211db: 0x6c3faa20, - 0x211dc: 0x6d1e7020, 0x211de: 0x6c3c1a20, - 0x211ec: 0x6ca26620, - 0x211f6: 0x6ccb1620, 0x211f7: 0x6c238a20, - 0x211fb: 0x6c772220, - // Block 0x848, offset 0x21200 - 0x21202: 0x6d11ea20, 0x21203: 0x6c008c20, - 0x21204: 0x6c05a620, 0x21206: 0x6cb34c20, - 0x21208: 0x6cd2b820, 0x21209: 0x6c392a20, 0x2120b: 0x6c70f420, - 0x2120c: 0x6cafb420, 0x2120e: 0x6cf07420, 0x2120f: 0x6c7a2220, - 0x21210: 0x6cbc8620, 0x21211: 0x6c417220, - 0x21222: 0x6c7be220, 0x21223: 0x6cdc2420, - 0x21224: 0x6c07d620, 0x21225: 0x6c632820, 0x21226: 0x6d0b8020, - 0x2122a: 0x6c76fe20, 0x2122b: 0x6ca7f820, - 0x2122d: 0x6d03cc20, 0x2122f: 0x6cf85c20, - 0x21231: 0x6c8c4a20, 0x21232: 0x6c347e20, - 0x21234: 0x6c159a20, - // Block 0x849, offset 0x21240 - 0x21248: 0x6cd32e20, 0x2124b: 0x6c334020, - 0x2124d: 0x6c675020, 0x2124e: 0x6d222a20, 0x2124f: 0x6c922020, - 0x21250: 0x6c372020, 0x21253: 0x6c476420, - 0x21255: 0x6cefa020, 0x21256: 0x6c17d620, 0x21257: 0x6c590020, - 0x21258: 0x6c0ce220, 0x2125b: 0x6c4e9420, - 0x2125c: 0x6ce99e20, 0x2125d: 0x6ca32420, 0x2125e: 0x6cb6e620, - 0x21260: 0x6ce7e820, 0x21261: 0x6d24d220, 0x21262: 0x6cede020, - 0x21264: 0x6cf3b020, 0x21265: 0x6c434220, - 0x21268: 0x6c792e20, 0x2126a: 0x6d14ba20, - 0x21278: 0x6cfe9a20, 0x2127a: 0x6c4ae420, 0x2127b: 0x6d0b8c20, - 0x2127c: 0x6cdc2e20, 0x2127d: 0x6cd95420, 0x2127f: 0x6d3d3820, - // Block 0x84a, offset 0x21280 - 0x21282: 0x6ce84a20, 0x21283: 0x6cfbf420, - 0x21288: 0x6d2b4420, 0x21289: 0x6c85c620, - 0x2128c: 0x6d3acc20, 0x2128e: 0x6c6aa220, - 0x21291: 0x6ce3e820, - 0x21294: 0x6d009c20, 0x21295: 0x6cbf1220, 0x21297: 0x6d0b9420, - 0x21298: 0x6c708620, 0x2129b: 0x6d1a5a20, - 0x2129c: 0x6d345220, 0x2129e: 0x6c76d020, 0x2129f: 0x6d3e2220, - 0x212a1: 0x6c77f420, 0x212a3: 0x6ca81220, - 0x212a4: 0x6cbb0620, 0x212a5: 0x6ced0220, 0x212a6: 0x6d2abc20, - 0x212a8: 0x6c708820, 0x212aa: 0x6d3f4220, - // Block 0x84b, offset 0x212c0 - 0x212c4: 0x6d0b9620, 0x212c7: 0x6c8bae20, - 0x212c9: 0x6cb5c020, - 0x212ce: 0x6c5b3420, - 0x212d3: 0x6cb77a20, - 0x212d5: 0x6d0fa820, 0x212d6: 0x6cdc3620, - 0x212d8: 0x6cb6f220, 0x212d9: 0x6c4a5620, - 0x212e2: 0x6cbe1020, 0x212e3: 0x6c353e20, - 0x212e5: 0x6d429820, - 0x212e8: 0x6d2b4820, 0x212e9: 0x6cb77c20, 0x212ea: 0x6c602e20, - 0x212ec: 0x6ceb2020, 0x212ed: 0x6c2e9c20, 0x212ef: 0x6c5bbe20, - 0x212f0: 0x6c98e420, 0x212f2: 0x6d063e20, - 0x212f5: 0x6c53fe20, 0x212f6: 0x6d0d7c20, 0x212f7: 0x6cfdc220, - 0x212f8: 0x6c231020, 0x212f9: 0x6c555820, - 0x212fc: 0x6c01c020, 0x212fe: 0x6c0de420, - // Block 0x84c, offset 0x21300 - 0x21307: 0x6c348e20, - 0x21310: 0x6d3a6a20, 0x21311: 0x6c2e9e20, 0x21312: 0x6d1ea220, 0x21313: 0x6cb6fa20, - 0x21314: 0x6cd26820, 0x21315: 0x6d099a20, 0x21316: 0x6d1ea420, 0x21317: 0x6c76ae20, - 0x21318: 0x6cbc2420, 0x2131b: 0x6cbab620, - 0x2131c: 0x6cae3e20, 0x2131f: 0x6cc2ee20, - 0x21321: 0x6d1c6e20, - 0x21327: 0x6ccbf220, - 0x2132b: 0x6ce1d020, - 0x2132d: 0x6c53c020, 0x2132e: 0x6cb06220, 0x2132f: 0x6d110a20, - 0x21334: 0x6ce8bc20, 0x21335: 0x6c148220, 0x21337: 0x6cfa3c20, - 0x21338: 0x6cb5f620, 0x2133a: 0x6cbf3a20, - 0x2133d: 0x6c6d1220, - // Block 0x84d, offset 0x21340 - 0x21348: 0x6d316020, - 0x2134c: 0x6d39ae20, 0x2134e: 0x6cf64420, - 0x21350: 0x6cf22a20, 0x21351: 0x6d37f820, - 0x21355: 0x6cdc4420, - 0x21358: 0x6c781020, 0x21359: 0x6c7e0c20, 0x2135a: 0x6c777220, - 0x2135d: 0x6c176c20, 0x2135e: 0x6c09f020, 0x2135f: 0x6ca13a20, - 0x21360: 0x6d3b1220, 0x21361: 0x6c4edc20, 0x21362: 0x6d227820, 0x21363: 0x6d153220, - 0x21364: 0x6c966c20, 0x21367: 0x6cb7aa20, - 0x21368: 0x6c4c0020, 0x21369: 0x6c97e420, 0x2136a: 0x6c89f420, 0x2136b: 0x6c8bc020, - 0x2136c: 0x6d40c620, 0x2136d: 0x6c82cc20, 0x2136e: 0x6c56b220, 0x2136f: 0x6c209220, - 0x21370: 0x6cb7ac20, 0x21371: 0x6c824420, - // Block 0x84e, offset 0x21380 - 0x21381: 0x6c1ac420, 0x21383: 0x6cb33020, - 0x21384: 0x6c2eca20, - 0x2138a: 0x6c82ce20, - 0x2138e: 0x6d160420, - 0x21393: 0x6c2d7620, - 0x21396: 0x6c33a420, 0x21397: 0x6c42d620, - 0x21398: 0x6c54f220, 0x2139a: 0x6cff0020, 0x2139b: 0x6c40ca20, - 0x2139c: 0x6cae8020, - 0x213ac: 0x6cd06a20, - 0x213b1: 0x6cef2a20, - 0x213bb: 0x6c335820, - 0x213bc: 0x6c177220, 0x213bd: 0x6d1b0420, 0x213be: 0x6c7b3a20, 0x213bf: 0x6c7a6020, - // Block 0x84f, offset 0x213c0 - 0x213c1: 0x6d41ce20, 0x213c2: 0x6c47ca20, - 0x213c5: 0x6d285420, 0x213c6: 0x6d36da20, - 0x213c9: 0x6c629420, 0x213ca: 0x6c199020, - 0x213d6: 0x6d020e20, - 0x213db: 0x6d419e20, - 0x213dc: 0x6c017420, 0x213dd: 0x6c4fb220, - 0x213e0: 0x6cb36020, 0x213e2: 0x6c2b9820, 0x213e3: 0x6d135820, - 0x213e7: 0x6ca4c420, - 0x213f1: 0x6c6b4220, 0x213f2: 0x6c059220, 0x213f3: 0x6c804020, - 0x213f4: 0x6c124820, 0x213f6: 0x6c0a6620, - 0x213fb: 0x6d2e1a20, - 0x213fc: 0x6cb7e620, - // Block 0x850, offset 0x21400 - 0x21402: 0x6ca4c620, - 0x21405: 0x6c940c20, 0x21407: 0x6c7c0a20, - 0x21409: 0x6ca08420, 0x2140b: 0x6c82e620, - 0x2140c: 0x6cad7420, - 0x21412: 0x6c86c420, 0x21413: 0x6c136420, - 0x21415: 0x6c299820, 0x21416: 0x6c82e820, - 0x21419: 0x6c36cc20, 0x2141b: 0x6c086020, - 0x2141c: 0x6c74e820, - 0x21425: 0x6d083420, 0x21426: 0x6ca89420, - 0x21428: 0x6c4d7c20, - 0x2142e: 0x6cfc4220, - 0x21430: 0x6c661620, 0x21431: 0x6c9c9e20, 0x21432: 0x6ca8a020, - 0x2143b: 0x6c124a20, - 0x2143c: 0x6cd97820, 0x2143d: 0x6d2ba820, 0x2143e: 0x6d194220, - // Block 0x851, offset 0x21440 - 0x21442: 0x6c1d3020, - 0x21444: 0x6c125020, - 0x21449: 0x6c830620, 0x2144a: 0x6caad220, 0x2144b: 0x6c876420, - 0x2144e: 0x6c84ba20, 0x2144f: 0x6c957220, - 0x21453: 0x6ce18a20, - 0x21456: 0x6ca8c420, 0x21457: 0x6ca8c620, - 0x21459: 0x6c5fae20, 0x2145b: 0x6c831220, - 0x2145d: 0x6ca48020, - 0x21460: 0x6c8c1420, 0x21461: 0x6c8dce20, - 0x21464: 0x6cfbe220, 0x21465: 0x6d24a820, 0x21467: 0x6d28ec20, - 0x21468: 0x6cc34a20, 0x21469: 0x6c8ac020, - 0x2146f: 0x6d22ce20, - 0x21470: 0x6c597620, - 0x2147a: 0x6ca4de20, - 0x2147c: 0x6d0a7820, 0x2147e: 0x6c711020, 0x2147f: 0x6c5dbc20, - // Block 0x852, offset 0x21480 - 0x21481: 0x6d179420, - 0x2148a: 0x6cf71420, 0x2148b: 0x6ccb8a20, - 0x2148c: 0x6c697020, 0x2148d: 0x6d1de020, - 0x21495: 0x6cd18c20, 0x21496: 0x6c6d8420, 0x21497: 0x6ced6e20, - 0x21498: 0x6d129e20, 0x21499: 0x6c6f4420, - 0x2149c: 0x6c45d020, - 0x214a1: 0x6c5aa020, - 0x214aa: 0x6c37a420, - 0x214b5: 0x6c4e7a20, - 0x214bc: 0x6c3e3020, - // Block 0x853, offset 0x214c0 - 0x214c0: 0x6c3e4a20, 0x214c1: 0x6d3d4a20, 0x214c2: 0x6c5eb620, - 0x214cf: 0x6c053a20, - 0x214d2: 0x6cb56620, 0x214d3: 0x6cd2a620, - 0x214d5: 0x6c2df420, 0x214d6: 0x6cadfa20, 0x214d7: 0x6cfbe420, - 0x214d8: 0x6cc9f620, - 0x214dd: 0x6c169220, 0x214de: 0x6d264620, - 0x214e0: 0x6c455820, 0x214e2: 0x6cf34220, - 0x214e4: 0x6c3b0a20, 0x214e7: 0x6c159020, - 0x214e9: 0x6ca58420, 0x214ea: 0x6c73d820, - 0x214ec: 0x6d2f8220, 0x214ee: 0x6cb96c20, - 0x214f1: 0x6c029820, - 0x214f6: 0x6cedf820, 0x214f7: 0x6d379020, - 0x214f9: 0x6c597820, 0x214fb: 0x6c106620, - 0x214fc: 0x6d3a5a20, 0x214fd: 0x6c092e20, 0x214fe: 0x6c173620, 0x214ff: 0x6d328620, - // Block 0x854, offset 0x21500 - 0x21500: 0x6c3de620, 0x21501: 0x6c79b820, 0x21503: 0x6d422c20, - 0x21504: 0x6d086c20, 0x21506: 0x6c3fb220, - 0x2150a: 0x6d118a20, - 0x2150d: 0x6c0e4e20, 0x2150f: 0x6c06e220, - 0x21510: 0x6d007c20, 0x21511: 0x6cd33020, 0x21512: 0x6d149620, - 0x21514: 0x6c531020, 0x21515: 0x6c251c20, 0x21517: 0x6d16e620, - 0x21518: 0x6d3b7620, - 0x2151d: 0x6c1bf620, - 0x21524: 0x6cb2fe20, - 0x21528: 0x6d1a3a20, - 0x21531: 0x6d260a20, - 0x21536: 0x6c6edc20, - 0x21539: 0x6c995c20, 0x2153a: 0x6cba4820, - 0x2153c: 0x6d172420, - // Block 0x855, offset 0x21540 - 0x21540: 0x6cf3b220, - 0x2154d: 0x6c069820, 0x2154e: 0x6c5dbe20, 0x2154f: 0x6c239420, - 0x21550: 0x6c797220, - 0x21555: 0x6cde4820, 0x21557: 0x6c4ea620, - 0x21558: 0x6cba4e20, - 0x2155c: 0x6d345420, - 0x21562: 0x6ccb2420, - 0x21565: 0x6cb8d620, 0x21566: 0x6c4cb420, - 0x21569: 0x6c4bbe20, - 0x2156c: 0x6c649820, 0x2156d: 0x6d37b820, 0x2156e: 0x6c9e2220, 0x2156f: 0x6c4afa20, - 0x21570: 0x6cd37e20, 0x21571: 0x6ca1d220, 0x21572: 0x6c363220, 0x21573: 0x6c039e20, - 0x21574: 0x6c7e7220, - 0x21578: 0x6d392820, 0x2157a: 0x6c603020, - // Block 0x856, offset 0x21580 - 0x21580: 0x6d2a4a20, - 0x21584: 0x6d2bd820, 0x21585: 0x6d179820, 0x21587: 0x6c468420, - 0x2158a: 0x6c4a6e20, 0x2158b: 0x6d1bc420, - 0x2158c: 0x6ccc9820, 0x2158d: 0x6c513420, 0x2158e: 0x6c057820, 0x2158f: 0x6ca12a20, - 0x21590: 0x6c9b1e20, 0x21593: 0x6cf4fe20, - 0x21594: 0x6c277620, 0x21597: 0x6c6f1620, - 0x2159c: 0x6c4ed020, 0x2159f: 0x6ce70220, - 0x215a0: 0x6c79be20, 0x215a1: 0x6c841220, 0x215a2: 0x6d368220, 0x215a3: 0x6c5bf420, - 0x215a4: 0x6d296e20, 0x215a6: 0x6c2dfc20, 0x215a7: 0x6c244420, - 0x215b1: 0x6d368420, 0x215b3: 0x6c7adc20, - 0x215b5: 0x6cfe4a20, 0x215b6: 0x6c57ba20, 0x215b7: 0x6c8a0c20, - 0x215b8: 0x6c255620, 0x215b9: 0x6cbb9a20, 0x215ba: 0x6c692420, - 0x215bc: 0x6d05d020, 0x215bd: 0x6c37da20, 0x215bf: 0x6cead020, - // Block 0x857, offset 0x215c0 - 0x215c0: 0x6ce00020, 0x215c1: 0x6d36a820, - 0x215c8: 0x6ca51020, 0x215c9: 0x6c99ac20, 0x215ca: 0x6c2c8c20, 0x215cb: 0x6c135820, - 0x215ce: 0x6c693a20, 0x215cf: 0x6c884820, - 0x215d1: 0x6ccc1820, 0x215d2: 0x6c28aa20, - 0x215d5: 0x6cdc6c20, 0x215d6: 0x6c884a20, 0x215d7: 0x6c4cf020, - 0x215da: 0x6c0c7c20, - 0x215dc: 0x6c22e220, 0x215dd: 0x6c2d7e20, 0x215de: 0x6c93fc20, 0x215df: 0x6ca64e20, - 0x215e0: 0x6d0dda20, 0x215e1: 0x6c7fbc20, - 0x215e4: 0x6c415620, 0x215e5: 0x6c1eb420, - 0x215e9: 0x6c0a8820, 0x215ea: 0x6d40ea20, 0x215eb: 0x6c5c6620, - 0x215ed: 0x6c7f4220, 0x215ee: 0x6cfbba20, 0x215ef: 0x6c3bfc20, - 0x215f0: 0x6c520220, - 0x215f9: 0x6d124020, 0x215fa: 0x6d2e3220, - 0x215fc: 0x6ca56620, 0x215fe: 0x6c95d020, - // Block 0x858, offset 0x21600 - 0x21600: 0x6d25d620, 0x21602: 0x6ca5ac20, - 0x21609: 0x6cc58220, - 0x2161c: 0x6c43e820, 0x2161e: 0x6c65a820, 0x2161f: 0x6cb2b420, - 0x21623: 0x6c0d1620, - 0x21626: 0x6c66d020, - 0x21629: 0x6c0e2e20, - 0x2162f: 0x6c9d1820, - 0x21630: 0x6c563420, - 0x21634: 0x6c2df220, 0x21636: 0x6d1e8c20, 0x21637: 0x6d108c20, - 0x21638: 0x6c07d020, 0x2163a: 0x6c189820, 0x2163b: 0x6c5e8c20, - 0x2163d: 0x6d108e20, - // Block 0x859, offset 0x21640 - 0x21647: 0x6c491020, - 0x21648: 0x6d0e5e20, - 0x21655: 0x6c1bc820, 0x21657: 0x6ccc3a20, - 0x21658: 0x6d0d3820, 0x21659: 0x6d165e20, 0x2165a: 0x6d166020, 0x2165b: 0x6c17fc20, - 0x2165e: 0x6c4e8220, 0x2165f: 0x6c597420, - 0x21664: 0x6cd71020, 0x21665: 0x6cdc2220, 0x21666: 0x6cc56820, 0x21667: 0x6cdfcc20, - 0x21668: 0x6d34e420, 0x2166a: 0x6c391e20, 0x2166b: 0x6c3cc620, - 0x21670: 0x6cdfce20, 0x21672: 0x6c9c3620, 0x21673: 0x6cafb620, - 0x21674: 0x6c106820, 0x21675: 0x6ca30e20, 0x21676: 0x6ce48220, 0x21677: 0x6c036620, - 0x21678: 0x6d16b020, - // Block 0x85a, offset 0x21680 - 0x21682: 0x6d0d4820, - 0x21684: 0x6ce54c20, 0x21686: 0x6d10ce20, 0x21687: 0x6cd04c20, - 0x21688: 0x6c77dc20, 0x21689: 0x6ce72420, 0x2168b: 0x6d084420, - 0x21693: 0x6d202820, - 0x21695: 0x6c043a20, - 0x21699: 0x6cf9a220, 0x2169a: 0x6c938420, 0x2169b: 0x6c7dce20, - 0x2169c: 0x6d29d220, 0x2169d: 0x6cc02c20, - 0x216a0: 0x6c243020, 0x216a1: 0x6d416a20, 0x216a2: 0x6c90e020, - 0x216a4: 0x6cf9a420, - 0x216af: 0x6ccfca20, - 0x216b2: 0x6cb43020, - 0x216b4: 0x6c6da620, 0x216b5: 0x6cbaae20, 0x216b6: 0x6d175820, - 0x216b8: 0x6ca81420, 0x216b9: 0x6c32fc20, 0x216bb: 0x6c6ab420, - 0x216bc: 0x6cdc3820, 0x216bd: 0x6d2e5820, 0x216be: 0x6c23e420, - // Block 0x85b, offset 0x216c0 - 0x216c1: 0x6c07e420, 0x216c2: 0x6c491220, 0x216c3: 0x6ccf2a20, - 0x216c5: 0x6c6cfe20, 0x216c6: 0x6c2c3e20, - 0x216d1: 0x6c27d220, 0x216d3: 0x6ca3a220, - 0x216d5: 0x6ca9fc20, 0x216d7: 0x6c601820, - 0x216d8: 0x6d0c8220, 0x216da: 0x6caa2020, - 0x216dc: 0x6c325a20, 0x216dd: 0x6cf09020, 0x216de: 0x6cb0f420, - 0x216e2: 0x6c555a20, - 0x216e4: 0x6c644020, 0x216e5: 0x6d12ee20, 0x216e6: 0x6c759220, 0x216e7: 0x6c7f9c20, - 0x216e8: 0x6c7e7420, 0x216e9: 0x6d19de20, - 0x216ed: 0x6ce9a220, - 0x216f5: 0x6ca4f620, - 0x216fa: 0x6d411c20, - 0x216ff: 0x6c96c220, - // Block 0x85c, offset 0x21700 - 0x21700: 0x6cd7f020, 0x21701: 0x6d365420, - 0x21704: 0x6c5ac020, 0x21705: 0x6d3c8e20, 0x21707: 0x6c5bd820, - 0x2170d: 0x6c1e8c20, 0x2170f: 0x6c182420, - 0x21712: 0x6d04da20, 0x21713: 0x6c7fa220, - 0x21715: 0x6c232620, 0x21716: 0x6cd0bc20, 0x21717: 0x6ca13c20, - 0x21718: 0x6d140220, 0x21719: 0x6d111a20, 0x2171a: 0x6cf7fa20, 0x2171b: 0x6d419020, - 0x2171c: 0x6c0e2820, - 0x21727: 0x6d216c20, - 0x21729: 0x6c927e20, - 0x2172e: 0x6ce9b620, 0x2172f: 0x6ceffe20, - 0x21731: 0x6c3b8820, 0x21732: 0x6cd06c20, - 0x2173b: 0x6c8a0e20, - // Block 0x85d, offset 0x21740 - 0x21742: 0x6cd56a20, 0x21743: 0x6c284220, - 0x21744: 0x6c732620, 0x21745: 0x6d21a020, 0x21746: 0x6d034a20, 0x21747: 0x6d114220, - 0x21748: 0x6cda5820, - 0x21752: 0x6c5d8020, - 0x21754: 0x6cb92220, - 0x2175a: 0x6c967c20, - 0x2175d: 0x6c767020, - 0x21761: 0x6c91e620, 0x21763: 0x6d1ebc20, - 0x2176e: 0x6cfd2e20, - 0x21779: 0x6cf40620, 0x2177b: 0x6d1b2020, - 0x2177c: 0x6cf72c20, 0x2177f: 0x6d2d0820, - // Block 0x85e, offset 0x21780 - 0x21780: 0x6d027020, - 0x21784: 0x6cc1fa20, - 0x21788: 0x6c84be20, - 0x2178d: 0x6cb95820, - 0x21794: 0x6c8dd020, 0x21795: 0x6c947820, - 0x2179a: 0x6c14b220, - 0x217a6: 0x6d334420, - 0x217a8: 0x6d0c8420, - 0x217b2: 0x6d1b3820, 0x217b3: 0x6c7c5c20, - 0x217b7: 0x6cc0d220, - 0x217b9: 0x6c3dd820, 0x217bb: 0x6d22d420, - // Block 0x85f, offset 0x217c0 - 0x217c1: 0x6cb57e20, - 0x217c6: 0x6cb75620, 0x217c7: 0x6c61a620, - 0x217c8: 0x6d24ce20, - 0x217ce: 0x6c434420, 0x217cf: 0x6c734820, - 0x217d1: 0x6cb5a020, 0x217d3: 0x6c411020, - 0x217d5: 0x6cc37220, - 0x217da: 0x6cf09220, - 0x217e7: 0x6d368620, - 0x217eb: 0x6c65ba20, - 0x217ed: 0x6cd8d620, - 0x217f0: 0x6d188c20, 0x217f1: 0x6cb91c20, - 0x217fc: 0x6c856220, 0x217ff: 0x6d29ce20, - // Block 0x860, offset 0x21800 - 0x21800: 0x6d168020, 0x21802: 0x6c110620, 0x21803: 0x6d168220, - 0x21804: 0x6c437220, 0x21806: 0x6c2e6e20, - 0x21808: 0x6d33a420, 0x21809: 0x6d16ec20, 0x2180b: 0x6d28fa20, - 0x2180c: 0x6c275220, 0x2180e: 0x6cdab220, - 0x21814: 0x6c6b4420, 0x21815: 0x6c193820, 0x21816: 0x6cc1fc20, - 0x21818: 0x6c4e7820, 0x21819: 0x6cfb1e20, - 0x21820: 0x6cc2ae20, 0x21821: 0x6c6a5620, - 0x21825: 0x6c733820, - 0x2182a: 0x6c285c20, - 0x2182d: 0x6c6c2420, - 0x21834: 0x6c0da820, 0x21835: 0x6c551a20, - 0x21839: 0x6c73da20, 0x2183b: 0x6d20b020, - // Block 0x861, offset 0x21840 - 0x21843: 0x6c84fa20, - 0x21844: 0x6cbb0420, 0x21845: 0x6cd70620, 0x21846: 0x6c7a2420, - 0x21848: 0x6d31b620, - 0x2184d: 0x6c3de820, 0x2184e: 0x6ccfac20, - 0x21852: 0x6c20c020, - 0x21855: 0x6ce72620, 0x21857: 0x6d16ee20, - 0x21859: 0x6d0f9220, - 0x2185c: 0x6ceafa20, 0x2185d: 0x6d385e20, 0x2185e: 0x6c5ff220, - 0x21864: 0x6d0a7a20, 0x21866: 0x6cd05220, 0x21867: 0x6d078820, - 0x2186d: 0x6c8e4820, 0x2186e: 0x6d24dc20, 0x2186f: 0x6c554220, - 0x21870: 0x6d334820, 0x21873: 0x6cae6620, - 0x21877: 0x6c742220, - // Block 0x862, offset 0x21880 - 0x21882: 0x6d362020, 0x21883: 0x6cb0f620, - 0x21884: 0x6d261820, 0x21886: 0x6c649a20, - 0x2188a: 0x6cad0220, - 0x2188e: 0x6d3bca20, - 0x21890: 0x6cfb6e20, 0x21892: 0x6c080220, - 0x21894: 0x6c232820, 0x21896: 0x6ca13e20, - 0x2189a: 0x6c4c7420, - 0x2189e: 0x6c1a3420, 0x2189f: 0x6cbb9c20, - 0x218a6: 0x6c0a4a20, - 0x218a9: 0x6cbb4820, 0x218ab: 0x6d38aa20, - 0x218b2: 0x6c38d020, 0x218b3: 0x6c0cc420, - 0x218be: 0x6c0fa020, 0x218bf: 0x6cc73220, - // Block 0x863, offset 0x218c0 - 0x218c5: 0x6c2f8820, 0x218c6: 0x6cc32e20, 0x218c7: 0x6c703c20, - 0x218c8: 0x6d117420, - 0x218d3: 0x6cf98620, - 0x218d6: 0x6d2a3e20, - 0x218dd: 0x6c27c820, 0x218df: 0x6cf44420, - 0x218e0: 0x6ceb1420, 0x218e2: 0x6c54c820, - 0x218e7: 0x6cf64620, - 0x218ec: 0x6c7f1a20, 0x218ee: 0x6c3a1620, - 0x218f9: 0x6c55ec20, - // Block 0x864, offset 0x21900 - 0x21906: 0x6cfa7220, - 0x21909: 0x6ccd2c20, - 0x2190d: 0x6c3a8420, - 0x21910: 0x6c261820, 0x21912: 0x6c3e3220, - 0x21914: 0x6c1f3020, - 0x2191d: 0x6c2fd020, 0x2191e: 0x6c807020, - 0x21929: 0x6cf7fc20, - 0x2192f: 0x6c0c1420, - 0x21930: 0x6d23e820, 0x21931: 0x6cdc6e20, 0x21932: 0x6cf80c20, - 0x21937: 0x6cb3e620, - 0x2193e: 0x6c697c20, - // Block 0x865, offset 0x21940 - 0x21940: 0x6d166420, 0x21943: 0x6cecb820, - 0x21944: 0x6c611e20, 0x21946: 0x6cecc620, 0x21947: 0x6ce9f220, - 0x2194b: 0x6c021020, - 0x2194d: 0x6ce45820, 0x2194e: 0x6c1b0020, - 0x21952: 0x6cc46220, - 0x21954: 0x6cc96820, 0x21955: 0x6d1a2c20, 0x21956: 0x6caf3420, 0x21957: 0x6c228e20, - 0x21958: 0x6ce71a20, 0x21959: 0x6d1ace20, - 0x2195c: 0x6c43c820, 0x2195d: 0x6ce55020, 0x2195e: 0x6d329620, 0x2195f: 0x6d390c20, - 0x21961: 0x6d149820, 0x21962: 0x6c7ae420, 0x21963: 0x6cd90c20, - 0x21967: 0x6c2c2820, - 0x2196c: 0x6d008820, 0x2196e: 0x6cfe9e20, 0x2196f: 0x6c4a1c20, - 0x21970: 0x6ceb7420, 0x21971: 0x6c3c3620, 0x21972: 0x6cf3b420, - 0x21975: 0x6d053220, - 0x2197f: 0x6d1f1620, - // Block 0x866, offset 0x21980 - 0x21981: 0x6c8ce020, 0x21982: 0x6d0e6020, - 0x21985: 0x6c2ff620, 0x21986: 0x6cb77e20, 0x21987: 0x6ce21a20, - 0x21988: 0x6c4dfc20, 0x2198a: 0x6c1b1c20, 0x2198b: 0x6cd91820, - 0x21991: 0x6cc35820, - 0x21994: 0x6c4ea820, - 0x2199f: 0x6cc77820, - 0x219a0: 0x6cb78e20, 0x219a1: 0x6c762c20, 0x219a2: 0x6d211e20, 0x219a3: 0x6c139a20, - 0x219a4: 0x6c1a8220, 0x219a5: 0x6d233a20, 0x219a7: 0x6c0e2020, - 0x219a9: 0x6c231220, 0x219aa: 0x6d39a420, - 0x219ac: 0x6d235420, - 0x219b1: 0x6c744a20, 0x219b2: 0x6c8f3620, 0x219b3: 0x6ccab220, - 0x219b4: 0x6d236820, - // Block 0x867, offset 0x219c0 - 0x219c5: 0x6cd66820, - 0x219cb: 0x6d262020, - 0x219ce: 0x6d2eba20, - 0x219d1: 0x6cd66a20, 0x219d3: 0x6c1ee420, - 0x219d4: 0x6d2ec620, 0x219d5: 0x6cca2020, 0x219d6: 0x6cfabe20, - 0x219d8: 0x6c24d820, 0x219d9: 0x6c9bde20, 0x219da: 0x6c2b7c20, - 0x219de: 0x6d368820, 0x219df: 0x6c02de20, - 0x219e6: 0x6d04e020, - 0x219e8: 0x6cb11e20, 0x219ea: 0x6c69bc20, 0x219eb: 0x6c7b6c20, - 0x219ec: 0x6cc98620, 0x219ed: 0x6cfcf420, 0x219ee: 0x6d2cda20, 0x219ef: 0x6c2d7820, - 0x219f7: 0x6d154420, - 0x219fa: 0x6c5c2e20, 0x219fb: 0x6ccda620, - // Block 0x868, offset 0x21a00 - 0x21a04: 0x6c1d2220, 0x21a05: 0x6d156220, 0x21a06: 0x6d021220, 0x21a07: 0x6d36dc20, - 0x21a08: 0x6ce5e020, 0x21a0a: 0x6cb26c20, 0x21a0b: 0x6cfbb020, - 0x21a0e: 0x6cfadc20, 0x21a0f: 0x6cdb4c20, - 0x21a11: 0x6c24a020, - 0x21a17: 0x6cd97220, - 0x21a1b: 0x6c522820, - 0x21a1d: 0x6cfd3a20, 0x21a1f: 0x6d1f8e20, - 0x21a21: 0x6d246420, - 0x21a24: 0x6cdf5220, 0x21a26: 0x6c751820, 0x21a27: 0x6ca48220, - 0x21a29: 0x6c2cba20, 0x21a2b: 0x6d164820, - 0x21a2c: 0x6c090620, - 0x21a33: 0x6d056220, - 0x21a34: 0x6d166820, 0x21a35: 0x6cc81020, 0x21a37: 0x6c455a20, - 0x21a3a: 0x6d166a20, - 0x21a3f: 0x6d356e20, - // Block 0x869, offset 0x21a40 - 0x21a40: 0x6d02a420, 0x21a42: 0x6c617820, - 0x21a44: 0x6cfa2c20, - 0x21a48: 0x6d2f4e20, 0x21a49: 0x6ca54620, 0x21a4a: 0x6d015620, - 0x21a4e: 0x6d168620, - 0x21a6b: 0x6c3f3420, - 0x21a6d: 0x6ccf3420, 0x21a6f: 0x6d253c20, - 0x21a70: 0x6c390420, 0x21a72: 0x6c3d3c20, 0x21a73: 0x6cf4a820, - 0x21a74: 0x6cf57c20, 0x21a75: 0x6c539c20, - 0x21a79: 0x6c618220, 0x21a7a: 0x6c170420, - 0x21a7f: 0x6ca0ca20, - // Block 0x86a, offset 0x21a80 - 0x21a80: 0x6cae0820, 0x21a83: 0x6ca20e20, - 0x21a84: 0x6cc00420, 0x21a85: 0x6c994a20, 0x21a87: 0x6c268020, - 0x21a89: 0x6cf98c20, 0x21a8a: 0x6ccfae20, 0x21a8b: 0x6ce26c20, - 0x21a8c: 0x6c530220, 0x21a8d: 0x6c093620, - 0x21a9d: 0x6ca62620, 0x21a9f: 0x6cbbd220, - 0x21aa7: 0x6cc84e20, - 0x21ab8: 0x6c67d820, 0x21ab9: 0x6c138420, 0x21aba: 0x6c9ce220, - 0x21abd: 0x6d16f020, 0x21abf: 0x6cdd0a20, - // Block 0x86b, offset 0x21ac0 - 0x21ac1: 0x6cf4c220, 0x21ac2: 0x6d078420, - 0x21ac5: 0x6cf76c20, 0x21ac7: 0x6d15d020, - 0x21ad0: 0x6ca49a20, 0x21ad3: 0x6cf07820, - 0x21aee: 0x6c770220, - 0x21af1: 0x6c906020, 0x21af2: 0x6c938620, 0x21af3: 0x6d3c2a20, - 0x21afa: 0x6d35b420, - 0x21afc: 0x6d042220, 0x21afe: 0x6c44f820, 0x21aff: 0x6c6ce620, - // Block 0x86c, offset 0x21b00 - 0x21b00: 0x6cfca420, 0x21b01: 0x6c61c820, 0x21b02: 0x6c261a20, - 0x21b04: 0x6c815020, 0x21b05: 0x6c3bb820, 0x21b06: 0x6c722a20, - 0x21b0b: 0x6c9eb220, - 0x21b0c: 0x6cf9a620, - 0x21b11: 0x6cda8c20, - 0x21b28: 0x6d35b620, 0x21b2a: 0x6c567e20, 0x21b2b: 0x6c79e220, - 0x21b2d: 0x6cdd5820, 0x21b2e: 0x6ca68e20, - 0x21b3a: 0x6ce28c20, 0x21b3b: 0x6d3ace20, - // Block 0x86d, offset 0x21b40 - 0x21b41: 0x6c269820, 0x21b43: 0x6cc04420, - 0x21b44: 0x6d0b9820, 0x21b46: 0x6cfb4820, - 0x21b49: 0x6ca58820, - 0x21b4d: 0x6d351420, 0x21b4e: 0x6c0ce620, - 0x21b52: 0x6c1d3a20, 0x21b53: 0x6c7f9820, - 0x21b54: 0x6c2ff820, 0x21b55: 0x6cc43a20, 0x21b56: 0x6cfe2e20, - 0x21b58: 0x6cff8020, 0x21b59: 0x6ced0620, 0x21b5a: 0x6cc81420, 0x21b5b: 0x6cee5020, - 0x21b5c: 0x6ca69820, 0x21b5e: 0x6c03fe20, 0x21b5f: 0x6d0b9a20, - 0x21b65: 0x6cd7e220, 0x21b66: 0x6d1ad820, - 0x21b68: 0x6d231220, - 0x21b6e: 0x6c83b820, 0x21b6f: 0x6c5dc020, - // Block 0x86e, offset 0x21b80 - 0x21b97: 0x6c056820, - 0x21ba3: 0x6cf5e620, - 0x21ba5: 0x6c6f6a20, - 0x21ba8: 0x6d01ac20, 0x21ba9: 0x6cb8e020, 0x21baa: 0x6caaf820, 0x21bab: 0x6d040020, - 0x21bac: 0x6c344e20, 0x21bad: 0x6c614020, 0x21bae: 0x6cf44a20, 0x21baf: 0x6ca21220, - 0x21bb0: 0x6d0e6e20, 0x21bb1: 0x6cb79020, 0x21bb2: 0x6ca2de20, 0x21bb3: 0x6c1c1e20, - 0x21bb4: 0x6c540220, 0x21bb6: 0x6ccaf220, - 0x21bb8: 0x6ca4aa20, 0x21bbb: 0x6c1a7020, - 0x21bbc: 0x6c1a7220, 0x21bbd: 0x6c7cd020, 0x21bbf: 0x6c644220, - // Block 0x86f, offset 0x21bc0 - 0x21bc0: 0x6ce8ac20, 0x21bc2: 0x6c319a20, - 0x21bc5: 0x6cf9c220, 0x21bc6: 0x6d382e20, 0x21bc7: 0x6c5dcc20, - 0x21bc8: 0x6c1d1620, 0x21bc9: 0x6c26a420, - 0x21bcc: 0x6c997c20, 0x21bcd: 0x6d120620, - 0x21bd3: 0x6c72f220, - 0x21bec: 0x6cd38420, 0x21bef: 0x6d1a6420, - 0x21bf3: 0x6c478a20, - 0x21bf4: 0x6cf4ec20, - 0x21bf8: 0x6c4cee20, 0x21bf9: 0x6ce3f620, 0x21bfb: 0x6c52a220, - // Block 0x870, offset 0x21c00 - 0x21c07: 0x6cc54e20, - 0x21c09: 0x6d14f420, 0x21c0b: 0x6cea7c20, - 0x21c0f: 0x6cbf3c20, - 0x21c10: 0x6c4d6e20, 0x21c12: 0x6cb79e20, - 0x21c15: 0x6c5dd820, 0x21c16: 0x6ce40020, 0x21c17: 0x6caf7020, - 0x21c1a: 0x6c451020, - 0x21c1c: 0x6d01c420, 0x21c1e: 0x6c9d5620, 0x21c1f: 0x6c434c20, - 0x21c20: 0x6cddf020, 0x21c21: 0x6cfdec20, 0x21c23: 0x6cd4e620, - 0x21c26: 0x6c3e9820, - 0x21c2c: 0x6d3b7e20, 0x21c2d: 0x6c8f3820, - // Block 0x871, offset 0x21c40 - 0x21c45: 0x6d1f4420, - 0x21c4a: 0x6c1a7820, 0x21c4b: 0x6c330620, - 0x21c62: 0x6c841420, 0x21c63: 0x6d105820, - 0x21c64: 0x6c841620, 0x21c67: 0x6c91c820, - 0x21c68: 0x6ca24e20, 0x21c69: 0x6cdc5220, 0x21c6a: 0x6c00b620, - 0x21c6d: 0x6c79f420, 0x21c6f: 0x6d306a20, - 0x21c70: 0x6c00b820, 0x21c71: 0x6ce2a620, 0x21c73: 0x6c93ea20, - 0x21c74: 0x6ce9ac20, 0x21c75: 0x6c088020, - 0x21c7e: 0x6c5bf620, 0x21c7f: 0x6c588a20, - // Block 0x872, offset 0x21c80 - 0x21c9b: 0x6c7e0e20, - 0x21c9d: 0x6d02e020, - 0x21ca1: 0x6ccaf420, - 0x21cab: 0x6cd5f020, - 0x21cac: 0x6cc3da20, 0x21cad: 0x6c035620, 0x21cae: 0x6cea0620, - 0x21cb2: 0x6c403220, 0x21cb3: 0x6c0cba20, - 0x21cb5: 0x6ce17e20, 0x21cb7: 0x6cfe4c20, - 0x21cb9: 0x6cd81420, 0x21cba: 0x6c0f4020, - 0x21cbc: 0x6c970020, 0x21cbd: 0x6c298020, 0x21cbf: 0x6c4b6420, - // Block 0x873, offset 0x21cc0 - 0x21cc0: 0x6c522020, 0x21cc1: 0x6cf69a20, 0x21cc2: 0x6c298220, 0x21cc3: 0x6d184e20, - 0x21cc5: 0x6c088420, 0x21cc7: 0x6c472c20, - 0x21cc8: 0x6c255820, 0x21cc9: 0x6ccb4420, - 0x21ccd: 0x6c441e20, 0x21cce: 0x6d23c220, 0x21ccf: 0x6ca2fa20, - 0x21cd1: 0x6c865620, 0x21cd2: 0x6d36ac20, - 0x21cf0: 0x6d2fd420, - 0x21cf4: 0x6c5f1220, 0x21cf5: 0x6cc87220, - 0x21cf9: 0x6c1d5820, - // Block 0x874, offset 0x21d00 - 0x21d02: 0x6c6b1820, - 0x21d0c: 0x6c172020, 0x21d0d: 0x6d307a20, - 0x21d12: 0x6cdb1020, 0x21d13: 0x6d1db020, - 0x21d16: 0x6cb7d420, 0x21d17: 0x6d3d9820, - 0x21d1a: 0x6c769620, - 0x21d1c: 0x6d133c20, 0x21d1e: 0x6cb7d620, - 0x21d39: 0x6d04a420, - // Block 0x875, offset 0x21d40 - 0x21d49: 0x6d141420, 0x21d4a: 0x6c1e3020, - 0x21d4e: 0x6ce98020, 0x21d4f: 0x6c00da20, - 0x21d50: 0x6cb1f220, 0x21d53: 0x6c8b3620, - 0x21d54: 0x6c9dd820, 0x21d55: 0x6c00dc20, 0x21d57: 0x6ca0ae20, - 0x21d58: 0x6cf0e220, 0x21d59: 0x6d1d5220, 0x21d5a: 0x6ca65020, - 0x21d5e: 0x6c0f7420, - 0x21d60: 0x6c8f4620, - 0x21d73: 0x6cc8e620, - 0x21d7b: 0x6c936620, - 0x21d7c: 0x6c140c20, 0x21d7f: 0x6c1f8620, - // Block 0x876, offset 0x21d80 - 0x21d81: 0x6ccb0220, 0x21d82: 0x6c847020, - 0x21d84: 0x6cd94620, 0x21d86: 0x6c86c620, - 0x21d8b: 0x6cf90420, - 0x21d8d: 0x6d0c3e20, 0x21d8e: 0x6c25ce20, - 0x21d90: 0x6c8eb620, - 0x21d98: 0x6c9b6c20, 0x21d9a: 0x6d2e8a20, - 0x21da4: 0x6d3c4c20, 0x21da7: 0x6c9ea620, - 0x21da9: 0x6c86f220, 0x21dab: 0x6c71da20, - 0x21daf: 0x6d025220, - 0x21db0: 0x6d025420, 0x21db1: 0x6c904220, 0x21db2: 0x6c8fc220, - // Block 0x877, offset 0x21dc0 - 0x21dc2: 0x6ce2c620, 0x21dc3: 0x6d3b3820, - 0x21dcb: 0x6c155220, - 0x21dcc: 0x6cfc4420, 0x21dcf: 0x6d1cc220, - 0x21dd0: 0x6cae2a20, - 0x21dd8: 0x6d012220, 0x21dda: 0x6c69dc20, - 0x21dde: 0x6c1cf820, - 0x21df3: 0x6c50ae20, - 0x21dfd: 0x6cea8420, - // Block 0x878, offset 0x21e00 - 0x21e05: 0x6c53b220, - 0x21e08: 0x6c97b020, 0x21e0a: 0x6c6c7a20, - 0x21e0c: 0x6cc17020, 0x21e0d: 0x6c30d420, 0x21e0e: 0x6cbff820, 0x21e0f: 0x6d28ee20, - 0x21e11: 0x6cd0d420, 0x21e12: 0x6d28f020, - 0x21e15: 0x6d15ba20, - 0x21e1a: 0x6c578020, - 0x21e1f: 0x6c76a220, - 0x21e30: 0x6d268e20, 0x21e31: 0x6ca68420, 0x21e32: 0x6cd7d620, - 0x21e34: 0x6cf2aa20, - 0x21e38: 0x6c118e20, 0x21e3a: 0x6c647c20, - 0x21e3c: 0x6c9ecc20, 0x21e3d: 0x6ccea020, 0x21e3f: 0x6cc70820, - // Block 0x879, offset 0x21e40 - 0x21e40: 0x6c419220, - 0x21e45: 0x6cbb0a20, 0x21e47: 0x6cd52a20, - 0x21e48: 0x6d3d5820, - 0x21e4f: 0x6cd1bc20, - 0x21e51: 0x6ce3f820, - 0x21e56: 0x6d2c3620, 0x21e57: 0x6d2d7e20, - 0x21e5d: 0x6c3bdc20, 0x21e5e: 0x6c9eda20, - 0x21e60: 0x6d2b5220, - 0x21e64: 0x6d368a20, 0x21e65: 0x6cb90020, 0x21e66: 0x6c4ede20, 0x21e67: 0x6c440e20, - 0x21e6e: 0x6c119e20, - 0x21e70: 0x6c4c7820, 0x21e71: 0x6c685e20, 0x21e73: 0x6d1da220, - 0x21e74: 0x6c026820, - 0x21e7b: 0x6d2c4620, - 0x21e7d: 0x6cf8c420, - // Block 0x87a, offset 0x21e80 - 0x21e81: 0x6d05d220, 0x21e82: 0x6cf46620, - 0x21e8f: 0x6c74b820, - 0x21e90: 0x6c5f2a20, 0x21e92: 0x6c1c6a20, - 0x21e94: 0x6ced5420, 0x21e96: 0x6c9ef220, 0x21e97: 0x6d2b6420, - 0x21e9c: 0x6c6b6e20, 0x21e9d: 0x6cd29220, 0x21e9f: 0x6cf72e20, - 0x21ea1: 0x6c36e220, - 0x21ea5: 0x6c564220, 0x21ea6: 0x6c564a20, - 0x21ea8: 0x6c857020, 0x21eab: 0x6c1f0820, - 0x21eae: 0x6d13c820, 0x21eaf: 0x6c992c20, - 0x21eb0: 0x6d056c20, 0x21eb1: 0x6d379820, 0x21eb3: 0x6d16b820, - 0x21eba: 0x6c89de20, - 0x21ebf: 0x6c647820, - // Block 0x87b, offset 0x21ec0 - 0x21ec0: 0x6c656e20, 0x21ec1: 0x6c70fa20, - 0x21ec4: 0x6d3abc20, - 0x21ec8: 0x6cf43a20, - 0x21ecf: 0x6c78a420, - 0x21ed0: 0x6c786020, 0x21ed1: 0x6c860e20, 0x21ed2: 0x6c08dc20, 0x21ed3: 0x6c43ec20, - 0x21ed5: 0x6d059820, 0x21ed6: 0x6ccbfa20, 0x21ed7: 0x6c8d1c20, - 0x21ed8: 0x6c781220, - 0x21ede: 0x6c0f4220, 0x21edf: 0x6c0b0820, - 0x21ee0: 0x6cd68820, 0x21ee1: 0x6cb66e20, 0x21ee2: 0x6ccde420, - 0x21ee6: 0x6c5e6420, - 0x21ee8: 0x6cbc1c20, - 0x21eee: 0x6d166c20, 0x21eef: 0x6c73d020, - 0x21ef0: 0x6d2efe20, 0x21ef2: 0x6d031620, - 0x21ef7: 0x6cea9a20, - 0x21ef8: 0x6c4d5020, 0x21ef9: 0x6cfa2e20, 0x21efb: 0x6ceae020, - 0x21efc: 0x6d145620, - // Block 0x87c, offset 0x21f00 - 0x21f03: 0x6c242c20, - 0x21f07: 0x6c674620, - 0x21f08: 0x6ca3de20, 0x21f0b: 0x6caf0020, - 0x21f0d: 0x6c6a7020, 0x21f0e: 0x6d08d820, 0x21f0f: 0x6c552020, - 0x21f25: 0x6d1f9e20, 0x21f26: 0x6caa4c20, 0x21f27: 0x6d12c220, - 0x21f2a: 0x6d1b3a20, - 0x21f2c: 0x6c799420, - 0x21f36: 0x6cfe8420, 0x21f37: 0x6cfd6220, - 0x21f3c: 0x6ca49620, 0x21f3e: 0x6d2f2420, - // Block 0x87d, offset 0x21f40 - 0x21f50: 0x6c6a7c20, 0x21f53: 0x6caa5020, - 0x21f54: 0x6ccd7020, - 0x21f62: 0x6c63a020, - 0x21f67: 0x6d38dc20, - 0x21f68: 0x6cc6fe20, 0x21f6b: 0x6c922220, - 0x21f6c: 0x6cc96e20, 0x21f6d: 0x6caa6020, 0x21f6f: 0x6c0ec420, - 0x21f70: 0x6d302220, 0x21f72: 0x6cbdca20, - 0x21f74: 0x6c21f620, 0x21f75: 0x6d40ac20, 0x21f77: 0x6cf2ac20, - 0x21f78: 0x6cf43620, 0x21f7b: 0x6ca7e020, - 0x21f7f: 0x6cfa8820, - // Block 0x87e, offset 0x21f80 - 0x21f80: 0x6c531220, - 0x21fab: 0x6ce6e820, - 0x21fac: 0x6c6c8a20, - 0x21fb1: 0x6c6aa420, 0x21fb2: 0x6c51c020, 0x21fb3: 0x6ce84c20, - 0x21fb4: 0x6d303a20, 0x21fb5: 0x6cb1ec20, 0x21fb6: 0x6c6ce820, 0x21fb7: 0x6ca44420, - 0x21fbc: 0x6c33e820, 0x21fbe: 0x6cf5be20, 0x21fbf: 0x6d018020, - // Block 0x87f, offset 0x21fc0 - 0x21fc1: 0x6cf86c20, 0x21fc2: 0x6c815220, 0x21fc3: 0x6c32ac20, - 0x21fc4: 0x6c61ca20, 0x21fc5: 0x6c138a20, 0x21fc6: 0x6c1d6620, - 0x21fc8: 0x6c427020, - 0x21fce: 0x6cfdb820, 0x21fcf: 0x6c29d620, - 0x21fe5: 0x6c0b8e20, 0x21fe6: 0x6cfea020, 0x21fe7: 0x6d02c220, - // Block 0x880, offset 0x22000 - 0x22001: 0x6d224c20, 0x22002: 0x6cfb4a20, 0x22003: 0x6c83ba20, - 0x22004: 0x6cba0020, 0x22007: 0x6c9a5420, - 0x22009: 0x6cbb6c20, 0x2200a: 0x6d0b9e20, - 0x2200c: 0x6cb82a20, 0x2200d: 0x6cbf8a20, 0x2200f: 0x6c056a20, - 0x22010: 0x6d32b220, - 0x2201a: 0x6d2b4a20, 0x2201b: 0x6cd68e20, - 0x2201e: 0x6ccaf020, - // Block 0x881, offset 0x22040 - 0x22045: 0x6c923a20, - 0x22049: 0x6d009e20, 0x2204b: 0x6c3f5c20, - 0x2204c: 0x6d2d3a20, - 0x22069: 0x6d2b5020, 0x2206b: 0x6c32c220, - 0x2206d: 0x6c2ad620, 0x2206e: 0x6d233c20, - 0x22070: 0x6c93de20, 0x22072: 0x6ced8220, 0x22073: 0x6d090e20, - 0x22074: 0x6c68f420, 0x22075: 0x6d266420, 0x22076: 0x6d362420, 0x22077: 0x6cefc420, - 0x22079: 0x6c43ee20, 0x2207a: 0x6c71b420, - 0x2207c: 0x6d0d8420, 0x2207d: 0x6c262620, 0x2207e: 0x6c997e20, - // Block 0x882, offset 0x22080 - 0x22086: 0x6c3e7820, 0x22087: 0x6c002820, - 0x2208a: 0x6d079e20, - 0x2208c: 0x6c427e20, 0x2208d: 0x6c013220, - 0x22092: 0x6c603620, - 0x22098: 0x6cafea20, 0x22099: 0x6d352820, - 0x2209c: 0x6caac020, - 0x220bf: 0x6cacbc20, - // Block 0x883, offset 0x220c0 - 0x220c1: 0x6d14f620, - 0x220c4: 0x6c6ac820, 0x220c6: 0x6d3e3820, - 0x220c8: 0x6c644420, 0x220c9: 0x6cec6420, - 0x220cc: 0x6c644620, - 0x220df: 0x6c15c020, - 0x220e1: 0x6cdd7420, 0x220e2: 0x6cdd7620, 0x220e3: 0x6c605020, - 0x220e4: 0x6cd96420, 0x220e6: 0x6ce2f420, 0x220e7: 0x6caf7420, - 0x220e8: 0x6cb32c20, - 0x220ee: 0x6c9d5a20, - 0x220f4: 0x6d12fc20, 0x220f6: 0x6cbe1c20, 0x220f7: 0x6c6d1620, - 0x220fa: 0x6c73ae20, - 0x220fd: 0x6d24f420, 0x220fe: 0x6cc83e20, - // Block 0x884, offset 0x22100 - 0x22114: 0x6c04fa20, - 0x22130: 0x6c0d3a20, - 0x22134: 0x6cf0ae20, 0x22135: 0x6d2a8820, 0x22136: 0x6cbcd020, 0x22137: 0x6cd9ce20, - 0x22138: 0x6c91ca20, - 0x2213c: 0x6c2ecc20, 0x2213d: 0x6c1fb820, 0x2213e: 0x6c09f620, 0x2213f: 0x6d3a1a20, - // Block 0x885, offset 0x22140 - 0x22140: 0x6c966220, 0x22141: 0x6c3aba20, 0x22142: 0x6cb1cc20, 0x22143: 0x6d1b6620, - 0x22144: 0x6d08a220, 0x22146: 0x6c02e020, 0x22147: 0x6d3d7820, - 0x22148: 0x6d40c820, 0x2214b: 0x6c08ea20, - 0x22151: 0x6c812620, 0x22153: 0x6ce40820, - 0x22159: 0x6ce5c820, 0x2215a: 0x6c64c820, - 0x2215f: 0x6ce7c020, - 0x2217d: 0x6c343420, 0x2217e: 0x6c308420, - // Block 0x886, offset 0x22180 - 0x22182: 0x6c0b4220, - 0x221a0: 0x6d36b020, 0x221a2: 0x6c3b8a20, - 0x221a6: 0x6c776a20, 0x221a7: 0x6d36b220, - 0x221a8: 0x6d2cfc20, 0x221a9: 0x6c0a1e20, 0x221aa: 0x6c7b6e20, - 0x221ac: 0x6c050220, 0x221ad: 0x6c73b820, 0x221ae: 0x6cc13420, - 0x221b0: 0x6cb51e20, 0x221b1: 0x6c824e20, 0x221b2: 0x6d00da20, 0x221b3: 0x6ce0ca20, - 0x221bc: 0x6cd9d420, 0x221be: 0x6c075020, - // Block 0x887, offset 0x221c0 - 0x221c7: 0x6d106820, - 0x221c8: 0x6c65ce20, - 0x221e5: 0x6d2a8a20, - // Block 0x888, offset 0x22200 - 0x22200: 0x6d3b6a20, 0x22203: 0x6c38b820, - 0x22205: 0x6ccf2420, 0x22207: 0x6cbf5e20, - 0x22209: 0x6cb3a020, 0x2220b: 0x6ce60220, - 0x2220c: 0x6ccc1a20, 0x2220d: 0x6d28c820, - 0x22211: 0x6ca7ac20, 0x22212: 0x6c48fa20, 0x22213: 0x6c250a20, - 0x22221: 0x6cbc5e20, 0x22223: 0x6c2ee420, - 0x22233: 0x6cb1ee20, - 0x22234: 0x6c226a20, 0x22236: 0x6c058e20, - // Block 0x889, offset 0x22240 - 0x2224d: 0x6d1b8a20, - 0x22251: 0x6cfc3020, - 0x22254: 0x6d161820, 0x22255: 0x6c9e9e20, 0x22256: 0x6c32b220, 0x22257: 0x6d395620, - 0x22259: 0x6c798c20, - 0x22262: 0x6d2ee020, - 0x22276: 0x6c8eb820, - 0x22278: 0x6d355820, 0x22279: 0x6c15ee20, 0x2227a: 0x6c31ca20, 0x2227b: 0x6d25c020, - 0x2227e: 0x6cddd220, 0x2227f: 0x6c6b5820, - // Block 0x88a, offset 0x22280 - 0x22280: 0x6c86c820, 0x22281: 0x6c460420, - 0x2228c: 0x6c054220, - 0x22297: 0x6c4c9220, - 0x22298: 0x6c8a3420, 0x22299: 0x6cd08220, - 0x222a3: 0x6ca7c020, - 0x222a5: 0x6c24bc20, 0x222a6: 0x6cf04c20, - 0x222a8: 0x6cead620, 0x222ab: 0x6cda6020, - 0x222ad: 0x6c8fc420, - 0x222b3: 0x6cff3820, - 0x222b4: 0x6d0df820, - // Block 0x88b, offset 0x222c0 - 0x222c3: 0x6cbebe20, - 0x222cd: 0x6cf73020, 0x222cf: 0x6d21e220, - 0x222d1: 0x6d337220, 0x222d2: 0x6d027420, 0x222d3: 0x6c146e20, - 0x222d4: 0x6c3c0020, 0x222d6: 0x6c4c9c20, - 0x222d8: 0x6c6e3e20, 0x222d9: 0x6c808220, 0x222da: 0x6cfafe20, - 0x222dd: 0x6c8d8e20, - 0x222ee: 0x6c830020, - 0x222f2: 0x6c760220, 0x222f3: 0x6d002a20, - 0x222fc: 0x6d28d820, - // Block 0x88c, offset 0x22300 - 0x22304: 0x6c493e20, 0x22305: 0x6cbd0820, 0x22306: 0x6c963e20, 0x22307: 0x6d124a20, - 0x22308: 0x6c945620, 0x22309: 0x6cdeee20, - 0x22311: 0x6c964020, - 0x2231e: 0x6c03a420, 0x2231f: 0x6c165420, - 0x22321: 0x6d3dec20, - 0x2232b: 0x6ce5d020, - 0x2232f: 0x6cecaa20, - 0x22330: 0x6c8dd420, - 0x22334: 0x6d24aa20, 0x22335: 0x6cb72c20, 0x22337: 0x6cb58020, - 0x2233c: 0x6c619420, 0x2233d: 0x6c0eb620, 0x2233f: 0x6cd1a420, - // Block 0x88d, offset 0x22340 - 0x22340: 0x6c3f4a20, 0x22342: 0x6c4a4620, - 0x22345: 0x6c2d0e20, 0x22347: 0x6c4fa420, - 0x22349: 0x6c411220, 0x2234b: 0x6cb5c820, - 0x22353: 0x6c19fe20, - 0x22354: 0x6c5bc220, 0x22357: 0x6cf9cc20, - 0x22358: 0x6cd27020, 0x22359: 0x6d365820, 0x2235a: 0x6cb61420, - 0x2235c: 0x6c4d7420, 0x2235f: 0x6c692c20, - 0x22360: 0x6c867620, 0x22362: 0x6c8a7820, - 0x22364: 0x6cbba620, - 0x22368: 0x6cc99c20, 0x2236a: 0x6cb55220, 0x2236b: 0x6cd19620, - 0x2236e: 0x6c6a7220, - 0x22375: 0x6c06e420, 0x22376: 0x6c0aec20, 0x22377: 0x6c032420, - 0x22378: 0x6c755c20, 0x22379: 0x6caf3a20, - 0x2237c: 0x6c282220, 0x2237f: 0x6ce0e620, - // Block 0x88e, offset 0x22380 - 0x22380: 0x6c7cca20, 0x22381: 0x6c7a2820, 0x22383: 0x6c79d020, - 0x22389: 0x6cd1a620, 0x2238a: 0x6cd1a820, 0x2238b: 0x6c5e9a20, - 0x2238c: 0x6c063620, - 0x22390: 0x6c785a20, 0x22391: 0x6c7b9020, - 0x22396: 0x6c9f9c20, - 0x22399: 0x6c89e020, 0x2239a: 0x6c35f220, 0x2239b: 0x6c43d820, - 0x2239f: 0x6cee0420, - 0x223a0: 0x6c344020, 0x223a3: 0x6cb85220, - 0x223a4: 0x6c573220, 0x223a6: 0x6c539e20, - 0x223a9: 0x6cae5e20, 0x223ab: 0x6c698c20, - 0x223b0: 0x6cc0f020, 0x223b1: 0x6d3f3c20, 0x223b2: 0x6d391820, 0x223b3: 0x6c7b9620, - 0x223b5: 0x6ccbd820, 0x223b7: 0x6c61cc20, - 0x223b8: 0x6cee6c20, 0x223b9: 0x6cb40820, 0x223ba: 0x6d090620, - 0x223bc: 0x6cce6620, - // Block 0x88f, offset 0x223c0 - 0x223c2: 0x6c80b620, 0x223c3: 0x6d351620, - 0x223c4: 0x6ce6c620, 0x223c7: 0x6c26f020, - 0x223d5: 0x6d0faa20, 0x223d6: 0x6c6d0020, 0x223d7: 0x6d351820, - 0x223da: 0x6d3d5a20, - 0x223dc: 0x6d28b420, 0x223dd: 0x6c14f220, - 0x223e2: 0x6c998020, - 0x223e6: 0x6c797820, 0x223e7: 0x6d388420, - 0x223e8: 0x6c54ca20, 0x223e9: 0x6cae7220, - 0x223ed: 0x6c6ffc20, - 0x223f8: 0x6c21bc20, 0x223f9: 0x6c9fae20, - 0x223fe: 0x6cffec20, - // Block 0x890, offset 0x22400 - 0x22400: 0x6c322220, 0x22401: 0x6cef1820, 0x22403: 0x6c119a20, - 0x22404: 0x6d214a20, 0x22405: 0x6c326220, 0x22406: 0x6c763620, 0x22407: 0x6cb0a220, - 0x2240a: 0x6c1a1a20, - 0x2240e: 0x6c218020, - 0x22410: 0x6cceb420, 0x22411: 0x6d0d9e20, 0x22412: 0x6c7b2820, - 0x22414: 0x6d265020, - 0x22426: 0x6cb61620, 0x22427: 0x6d32e020, - 0x22429: 0x6c78c220, 0x2242a: 0x6cb61820, 0x2242b: 0x6d354020, - 0x2242c: 0x6c928420, - 0x22431: 0x6caf7c20, 0x22432: 0x6cab0420, 0x22433: 0x6cad7c20, - 0x2243a: 0x6c3a6020, - 0x2243f: 0x6cf19c20, - // Block 0x891, offset 0x22440 - 0x22442: 0x6c9b2c20, - 0x22448: 0x6ccd5620, - 0x2244c: 0x6d04a020, 0x2244e: 0x6c351020, 0x2244f: 0x6c0c9220, - 0x2245a: 0x6d1eb020, - 0x2245c: 0x6c97f620, 0x2245e: 0x6c8a7a20, - 0x22461: 0x6d00ea20, 0x22462: 0x6c949c20, 0x22463: 0x6cbba820, - 0x22464: 0x6c2ae620, 0x22466: 0x6c1a3e20, 0x22467: 0x6c1a4020, - 0x2246d: 0x6c21d820, - 0x22478: 0x6c131420, - // Block 0x892, offset 0x22480 - 0x22480: 0x6c825e20, 0x22481: 0x6d2e1c20, 0x22482: 0x6c853620, 0x22483: 0x6c885e20, - 0x22484: 0x6cc45820, - 0x2248d: 0x6c18ee20, 0x2248f: 0x6c1a4820, - 0x22490: 0x6c473c20, 0x22492: 0x6d403a20, 0x22493: 0x6c1df420, - 0x22494: 0x6c204420, - 0x2249c: 0x6c835220, 0x2249d: 0x6cd7a820, 0x2249e: 0x6c941020, - 0x224a3: 0x6c3f2420, - 0x224a5: 0x6c871620, 0x224a7: 0x6cca6020, - 0x224ab: 0x6cca0c20, - 0x224af: 0x6cc9b220, - 0x224b3: 0x6ca8b020, - 0x224b6: 0x6d413c20, 0x224b7: 0x6c855020, - 0x224bb: 0x6cd58c20, - 0x224be: 0x6c3f2a20, - // Block 0x893, offset 0x224c0 - 0x224c9: 0x6c094620, - 0x224cd: 0x6c2a0820, - 0x224d2: 0x6cd1b220, - 0x224d6: 0x6c422020, 0x224d7: 0x6ce09e20, - 0x224dc: 0x6c97f820, 0x224df: 0x6c842820, - 0x224e2: 0x6c0a4c20, - 0x224e6: 0x6cac7e20, - 0x224e8: 0x6d1eca20, - 0x224ed: 0x6c6f5020, 0x224ef: 0x6c4c1220, - 0x224f0: 0x6c89dc20, 0x224f3: 0x6cf2de20, - 0x224f4: 0x6cb85420, 0x224f5: 0x6c30e820, 0x224f7: 0x6c8afa20, - 0x224f9: 0x6c68e020, 0x224fb: 0x6c8afc20, - // Block 0x894, offset 0x22500 - 0x22501: 0x6ce56020, - 0x22504: 0x6c4c2620, 0x22506: 0x6cacde20, 0x22507: 0x6cbb8e20, - 0x22509: 0x6c2b8a20, 0x2250a: 0x6d284420, - 0x22512: 0x6c821420, - 0x22516: 0x6cd7cc20, 0x22517: 0x6d02b020, - 0x2251c: 0x6d02c420, 0x2251d: 0x6cfe2620, 0x2251e: 0x6c95ac20, - 0x22524: 0x6c07e820, 0x22525: 0x6ce55a20, - 0x2252c: 0x6cffee20, 0x2252e: 0x6c30b420, - 0x22533: 0x6c296e20, - 0x22534: 0x6ce67c20, 0x22535: 0x6d3bcc20, - 0x2253b: 0x6cab4620, - 0x2253d: 0x6cf30e20, - // Block 0x895, offset 0x22540 - 0x22544: 0x6d02ee20, 0x22545: 0x6cc87a20, - 0x22548: 0x6d3dae20, 0x22549: 0x6c299020, - 0x2254d: 0x6c257420, - 0x22551: 0x6d3dc820, - 0x22557: 0x6c238620, - 0x22558: 0x6c159220, - 0x2255d: 0x6d100820, - 0x22567: 0x6d0d5e20, - 0x22573: 0x6d0d6820, - 0x22575: 0x6d323620, - 0x2257d: 0x6caade20, 0x2257e: 0x6d0e7220, - // Block 0x896, offset 0x22580 - 0x22585: 0x6c39d820, - 0x22589: 0x6d0da020, 0x2258a: 0x6d214e20, - 0x2258d: 0x6ce34020, 0x2258e: 0x6c401a20, 0x2258f: 0x6c07a020, - 0x22591: 0x6d0db220, 0x22593: 0x6c5ad220, - 0x22599: 0x6c5a6220, - 0x2259c: 0x6c4b7420, 0x2259d: 0x6d0ece20, 0x2259f: 0x6c55da20, - 0x225a0: 0x6c0c3620, - 0x225a7: 0x6cdcc420, - 0x225ae: 0x6d3f3020, 0x225af: 0x6c618620, - 0x225b0: 0x6c35ae20, 0x225b1: 0x6c61ce20, 0x225b2: 0x6c7ccc20, - 0x225b4: 0x6c89b620, - 0x225b8: 0x6c5dda20, 0x225ba: 0x6cef3a20, 0x225bb: 0x6d3cea20, - 0x225bf: 0x6ce6ae20, - // Block 0x897, offset 0x225c0 - 0x225c3: 0x6d290e20, - 0x225c4: 0x6d201020, - 0x225c9: 0x6cc5c020, - 0x225cd: 0x6c9e4e20, - 0x225da: 0x6ca31020, - 0x225dd: 0x6ce84220, 0x225df: 0x6c27be20, - 0x225e1: 0x6c73ec20, - 0x225e4: 0x6d056e20, 0x225e5: 0x6c2b1820, - 0x225f0: 0x6cfe1a20, - 0x225f7: 0x6d048a20, - 0x225fa: 0x6d1fac20, 0x225fb: 0x6c489620, - 0x225fe: 0x6cf5a420, - // Block 0x898, offset 0x22600 - 0x22608: 0x6c51bc20, - 0x2260d: 0x6c2f6c20, - 0x22610: 0x6c914020, 0x22612: 0x6d061a20, - 0x22614: 0x6d391a20, 0x22615: 0x6cfca820, 0x22616: 0x6c598820, 0x22617: 0x6c138c20, - 0x22618: 0x6cd2c420, 0x22619: 0x6c421820, 0x2261a: 0x6caadc20, 0x2261b: 0x6c01aa20, - 0x2261f: 0x6d003c20, - 0x22627: 0x6c502c20, - 0x22632: 0x6cbd2a20, 0x22633: 0x6c450620, - 0x22634: 0x6ccce020, 0x22635: 0x6c3e4c20, - 0x2263d: 0x6d2b4c20, - // Block 0x899, offset 0x22640 - 0x22647: 0x6c287c20, - 0x22656: 0x6c2d1420, 0x22657: 0x6ccfdc20, - 0x22659: 0x6d411820, - 0x22662: 0x6c0ca620, - 0x22666: 0x6c20d020, 0x22667: 0x6d30f820, - 0x22668: 0x6c276e20, 0x2266b: 0x6cf2b620, - 0x2266c: 0x6cbf2420, - 0x22670: 0x6c8bb420, 0x22672: 0x6c5cc820, 0x22673: 0x6c5ed020, - // Block 0x89a, offset 0x22680 - 0x22685: 0x6c127620, - 0x2268a: 0x6ca28620, - 0x2268d: 0x6c2ea820, 0x2268e: 0x6cf09620, - 0x226a0: 0x6c0b9a20, 0x226a1: 0x6ce3c020, - 0x226a5: 0x6ce8be20, - 0x226b6: 0x6c453620, - // Block 0x89b, offset 0x226c0 - 0x226c4: 0x6c1b3220, 0x226c5: 0x6c23ee20, 0x226c6: 0x6ce3c420, - 0x226d2: 0x6c5de620, 0x226d3: 0x6cb50e20, - 0x226d4: 0x6ccab820, 0x226d5: 0x6ccaa020, 0x226d6: 0x6d085220, 0x226d7: 0x6c021c20, - 0x226d8: 0x6ca3ce20, 0x226da: 0x6d0fd020, 0x226db: 0x6cd4f420, - 0x226dc: 0x6ccc0620, - 0x226e1: 0x6ce6d620, - 0x226e9: 0x6d0bc420, 0x226ea: 0x6c5a5820, - 0x226ee: 0x6c0d4220, - 0x226fe: 0x6caba020, 0x226ff: 0x6c128820, - // Block 0x89c, offset 0x22700 - 0x22701: 0x6c026a20, 0x22703: 0x6c99ae20, - 0x22714: 0x6c9b3620, 0x22716: 0x6ce47220, - 0x2271d: 0x6ccaa220, 0x2271e: 0x6d073a20, 0x2271f: 0x6c771020, - 0x22727: 0x6c811020, - 0x22736: 0x6c0cc020, 0x22737: 0x6c23b220, - 0x2273a: 0x6cfb8e20, - // Block 0x89d, offset 0x22740 - 0x22744: 0x6cea2a20, - 0x22749: 0x6d240a20, 0x2274a: 0x6c28c220, 0x2274b: 0x6d1d5420, - 0x2274d: 0x6d2f7820, 0x2274f: 0x6cb4b620, - 0x22758: 0x6c5c4e20, - 0x2275e: 0x6c00ea20, 0x2275f: 0x6ca0b220, - 0x22762: 0x6c6dde20, 0x22763: 0x6c7fce20, - 0x22772: 0x6c8b5820, 0x22773: 0x6cb1a420, - 0x22775: 0x6c0fa420, 0x22776: 0x6cbf8220, - 0x22779: 0x6c0aa220, - 0x2277f: 0x6d1dd420, - // Block 0x89e, offset 0x22780 - 0x22785: 0x6c871820, - 0x2278d: 0x6ca8b220, 0x2278f: 0x6c2a8820, - 0x22793: 0x6c584620, - 0x22797: 0x6d272420, - 0x2279a: 0x6c212c20, - 0x2279c: 0x6c87b020, 0x2279e: 0x6d2ef420, 0x2279f: 0x6c8dd620, - 0x227a0: 0x6c217020, - 0x227a7: 0x6c12d220, - 0x227a8: 0x6d09ea20, - 0x227ac: 0x6c71ac20, 0x227ad: 0x6c5cac20, - 0x227be: 0x6ce6f820, - // Block 0x89f, offset 0x227c0 - 0x227c6: 0x6ca91220, 0x227c7: 0x6c727a20, - 0x227cf: 0x6c144c20, - 0x227d6: 0x6d2a2e20, - 0x227db: 0x6d24a020, - 0x227df: 0x6c78f420, - 0x227e6: 0x6c7bea20, 0x227e7: 0x6c3a4a20, - 0x227ef: 0x6d282620, - 0x227f0: 0x6cb9fc20, - 0x227f4: 0x6cc2dc20, - 0x227f8: 0x6cb38a20, 0x227fa: 0x6cadf620, - // Block 0x8a0, offset 0x22800 - 0x22804: 0x6c453820, 0x22805: 0x6d17e420, 0x22806: 0x6c961020, - 0x22811: 0x6c7b5a20, 0x22813: 0x6d085420, - 0x22814: 0x6ca76e20, - 0x2281a: 0x6c55ac20, 0x2281b: 0x6c715820, - 0x22829: 0x6d136a20, - 0x2282e: 0x6cf73420, - 0x22831: 0x6d271c20, 0x22832: 0x6ce19020, 0x22833: 0x6cb23e20, - 0x22834: 0x6c33c820, 0x22835: 0x6c06d420, - 0x22838: 0x6c8a6020, - // Block 0x8a1, offset 0x22840 - 0x22840: 0x6d1e0e20, - 0x2284e: 0x6d0acc20, - 0x22851: 0x6c68bc20, - 0x22854: 0x6c7dcc20, 0x22856: 0x6d321820, 0x22857: 0x6cd59c20, - 0x2285a: 0x6cd24820, - 0x2285e: 0x6d1efa20, 0x2285f: 0x6cac1a20, - 0x22860: 0x6cff6e20, 0x22861: 0x6c5fe020, - 0x22876: 0x6cb4d220, 0x22877: 0x6c50c620, - 0x2287a: 0x6c799620, - // Block 0x8a2, offset 0x22880 - 0x22882: 0x6d12d020, 0x22883: 0x6c1bf020, - 0x2288a: 0x6c77a220, 0x2288b: 0x6d269020, - 0x2288e: 0x6cec1a20, 0x2288f: 0x6ca71820, - 0x22891: 0x6c222e20, 0x22893: 0x6d14a020, - 0x228a4: 0x6c704620, - 0x228ab: 0x6d0f4e20, - 0x228ac: 0x6c83a620, 0x228ae: 0x6c270a20, 0x228af: 0x6c1d0c20, - 0x228b5: 0x6d14c620, - 0x228ba: 0x6c4e9a20, - 0x228bf: 0x6d13de20, - // Block 0x8a3, offset 0x228c0 - 0x228c1: 0x6c1d4a20, 0x228c2: 0x6c568020, 0x228c3: 0x6d3b6220, - 0x228e6: 0x6cbf0a20, 0x228e7: 0x6c34de20, - 0x228f8: 0x6ce73220, 0x228f9: 0x6cfa9020, - 0x228ff: 0x6c3e5020, - // Block 0x8a4, offset 0x22900 - 0x22902: 0x6c2d5020, 0x22903: 0x6cf77820, - 0x22904: 0x6d003e20, 0x22905: 0x6d323820, 0x22906: 0x6cbc3e20, 0x22907: 0x6ce85620, - 0x22937: 0x6c4eb020, - 0x22938: 0x6c7bf220, 0x22939: 0x6cdd1a20, 0x2293b: 0x6cd46220, - 0x2293c: 0x6ce58020, - // Block 0x8a5, offset 0x22940 - 0x22940: 0x6d315020, 0x22943: 0x6ca58c20, - 0x22945: 0x6cba0a20, 0x22946: 0x6d1a6620, - 0x22948: 0x6c899220, 0x22949: 0x6ccc5420, 0x2294a: 0x6d3f4c20, 0x2294b: 0x6cafec20, - 0x2294c: 0x6c42c620, 0x2294f: 0x6c6d0a20, - 0x22950: 0x6d1f3620, 0x22952: 0x6ccd8c20, - 0x22954: 0x6c9d4620, 0x22955: 0x6cab9c20, 0x22957: 0x6c54cc20, - 0x2295b: 0x6d204620, - 0x2295d: 0x6c9bd420, - // Block 0x8a6, offset 0x22980 - 0x22990: 0x6d352a20, 0x22993: 0x6c08e020, - 0x22997: 0x6ccfe820, - 0x22998: 0x6cb79420, 0x22999: 0x6cfaa620, 0x2299a: 0x6cac5820, 0x2299b: 0x6c776e20, - 0x229ab: 0x6cd68620, - 0x229ac: 0x6cafee20, 0x229ae: 0x6d290220, 0x229af: 0x6d3a6c20, - 0x229b1: 0x6cd9c020, 0x229b2: 0x6c6f1820, - 0x229b5: 0x6c150020, 0x229b6: 0x6c38a420, 0x229b7: 0x6cff8e20, - 0x229b8: 0x6d1aec20, 0x229b9: 0x6c540e20, 0x229ba: 0x6c999220, 0x229bb: 0x6ce8c020, - 0x229bd: 0x6c621820, - // Block 0x8a7, offset 0x229c0 - 0x229c1: 0x6d151c20, 0x229c3: 0x6d236c20, - 0x229c4: 0x6c6ee020, 0x229c5: 0x6cad9220, 0x229c7: 0x6cfed820, - 0x229c9: 0x6c468c20, - 0x229cc: 0x6c465020, 0x229cd: 0x6cdcf220, 0x229ce: 0x6cfc1620, 0x229cf: 0x6d3baa20, - 0x229fe: 0x6c1dba20, - // Block 0x8a8, offset 0x22a00 - 0x22a04: 0x6cbb7e20, 0x22a05: 0x6ce34220, 0x22a06: 0x6d27b020, - 0x22a09: 0x6cccec20, 0x22a0a: 0x6c8b1420, - 0x22a0c: 0x6d353620, - 0x22a10: 0x6cabf220, - 0x22a23: 0x6c712e20, - 0x22a24: 0x6c7f1220, - 0x22a28: 0x6d3f1820, 0x22a2a: 0x6cc1a420, 0x22a2b: 0x6c47b020, - 0x22a2c: 0x6c747a20, 0x22a2d: 0x6d348220, 0x22a2e: 0x6c021e20, 0x22a2f: 0x6cbe2020, - 0x22a30: 0x6cb00620, 0x22a31: 0x6d417820, 0x22a33: 0x6cb9b020, - 0x22a35: 0x6c25e620, 0x22a37: 0x6c606620, - 0x22a38: 0x6ce35220, 0x22a39: 0x6cc7b620, 0x22a3b: 0x6c4d4220, - 0x22a3c: 0x6d0a2620, 0x22a3e: 0x6c073c20, 0x22a3f: 0x6d348420, - // Block 0x8a9, offset 0x22a40 - 0x22a41: 0x6c340020, - 0x22a4b: 0x6c293220, - 0x22a50: 0x6cc62e20, - 0x22a72: 0x6c41a820, - 0x22a75: 0x6c42ae20, 0x22a76: 0x6cde7220, - 0x22a78: 0x6cebae20, 0x22a79: 0x6d105e20, 0x22a7a: 0x6c7a4e20, 0x22a7b: 0x6d368c20, - // Block 0x8aa, offset 0x22a80 - 0x22a96: 0x6c64d020, 0x22a97: 0x6ca6be20, - 0x22a98: 0x6cd00e20, 0x22a99: 0x6c058620, 0x22a9a: 0x6cd66e20, 0x22a9b: 0x6c30c020, - 0x22a9d: 0x6cb91420, 0x22a9e: 0x6c4e2820, 0x22a9f: 0x6cb83020, - 0x22aa0: 0x6c41e420, 0x22aa3: 0x6c215a20, - 0x22aa4: 0x6c13fe20, 0x22aa5: 0x6c0a2620, 0x22aa6: 0x6d140c20, 0x22aa7: 0x6c3d9020, - 0x22aa8: 0x6c35b820, 0x22aaa: 0x6c816c20, 0x22aab: 0x6c4fe020, - 0x22aac: 0x6c842a20, - 0x22ab1: 0x6ce28020, 0x22ab2: 0x6cd01020, - 0x22ab4: 0x6d1a9020, 0x22ab7: 0x6c64d220, - 0x22abb: 0x6c140020, - // Block 0x8ab, offset 0x22ac0 - 0x22ad7: 0x6ca86020, - 0x22ad8: 0x6c23f620, 0x22adb: 0x6d154620, - 0x22adf: 0x6ce12220, - 0x22ae2: 0x6c738820, - 0x22af0: 0x6c1c5820, 0x22af1: 0x6c468e20, - 0x22af4: 0x6c6b1a20, 0x22af5: 0x6d307c20, 0x22af6: 0x6c559220, 0x22af7: 0x6c987220, - 0x22afb: 0x6d406220, - 0x22afc: 0x6cd8e820, 0x22aff: 0x6c3ad020, - // Block 0x8ac, offset 0x22b00 - 0x22b00: 0x6d3e8620, 0x22b01: 0x6d3e8820, 0x22b03: 0x6c6b3420, - 0x22b04: 0x6cd82820, 0x22b06: 0x6c211620, 0x22b07: 0x6cad9820, - 0x22b0b: 0x6d128e20, - 0x22b0c: 0x6c2b4420, 0x22b0e: 0x6c825820, 0x22b0f: 0x6d05e420, - 0x22b10: 0x6cc7c820, 0x22b12: 0x6cabde20, 0x22b13: 0x6c738e20, - 0x22b14: 0x6cf8dc20, 0x22b15: 0x6d133e20, 0x22b16: 0x6c014c20, - 0x22b18: 0x6d189420, 0x22b19: 0x6c64f420, - 0x22b1c: 0x6cd93820, 0x22b1d: 0x6cf2c420, 0x22b1f: 0x6ccb5820, - 0x22b20: 0x6d355020, 0x22b21: 0x6c088e20, 0x22b22: 0x6d3be220, - 0x22b26: 0x6c67fa20, 0x22b27: 0x6c506820, - 0x22b29: 0x6c1c6c20, 0x22b2a: 0x6c340820, - // Block 0x8ad, offset 0x22b40 - 0x22b53: 0x6c0f5820, - 0x22b54: 0x6c60a820, 0x22b55: 0x6c1fb020, 0x22b57: 0x6c962620, - 0x22b5a: 0x6cc8b220, - 0x22b6b: 0x6c55b020, - 0x22b71: 0x6c28c420, - 0x22b74: 0x6c4e6420, 0x22b75: 0x6cc3fe20, 0x22b76: 0x6ccc1e20, 0x22b77: 0x6d2e1e20, - 0x22b78: 0x6d2b0e20, 0x22b79: 0x6c201220, 0x22b7a: 0x6cb53620, 0x22b7b: 0x6c2ef020, - 0x22b7d: 0x6d2ce220, 0x22b7e: 0x6ce83220, - // Block 0x8ae, offset 0x22b80 - 0x22b81: 0x6c221220, 0x22b82: 0x6cc99e20, - 0x22b84: 0x6c955620, 0x22b87: 0x6c60be20, - 0x22ba2: 0x6c95c220, 0x22ba3: 0x6cbdb220, - 0x22ba7: 0x6cbf6c20, - 0x22ba8: 0x6c739420, - 0x22bac: 0x6c00e020, 0x22bad: 0x6c65e220, - 0x22bb9: 0x6ce42a20, 0x22bba: 0x6cf1b620, - 0x22bbd: 0x6cbbb620, - // Block 0x8af, offset 0x22bc0 - 0x22bc1: 0x6cac0820, 0x22bc2: 0x6c5d0620, - 0x22bc5: 0x6c00ec20, 0x22bc7: 0x6cd7a220, - 0x22bc8: 0x6c887220, 0x22bc9: 0x6c337420, 0x22bcb: 0x6cdebc20, - 0x22bcc: 0x6c6cbe20, 0x22bcd: 0x6c0a8a20, 0x22bce: 0x6d0de820, 0x22bcf: 0x6c435a20, - 0x22bd0: 0x6cb18820, 0x22bd1: 0x6d242c20, 0x22bd2: 0x6ccf7c20, - 0x22bd5: 0x6c651420, 0x22bd7: 0x6c55dc20, - 0x22bda: 0x6c8b4e20, - 0x22bdc: 0x6c0bce20, 0x22bdd: 0x6cdb4e20, 0x22bde: 0x6c689420, - 0x22bf8: 0x6d3cb820, - 0x22bfd: 0x6c4dc220, - // Block 0x8b0, offset 0x22c00 - 0x22c07: 0x6c340e20, - 0x22c10: 0x6d014e20, 0x22c11: 0x6c9b8220, 0x22c12: 0x6c3db420, 0x22c13: 0x6c931a20, - 0x22c14: 0x6ce0b220, 0x22c17: 0x6c8ecc20, - 0x22c18: 0x6cfaee20, 0x22c19: 0x6cca9420, - 0x22c1c: 0x6c240220, 0x22c1d: 0x6d3c2620, 0x22c1f: 0x6c188e20, - 0x22c30: 0x6c892820, - 0x22c34: 0x6c848c20, - // Block 0x8b1, offset 0x22c40 - 0x22c40: 0x6caf1a20, 0x22c41: 0x6ceb9420, - 0x22c44: 0x6cebb820, 0x22c46: 0x6c8a4a20, 0x22c47: 0x6d002620, - 0x22c48: 0x6c20f620, 0x22c49: 0x6c581a20, 0x22c4a: 0x6ca7c220, 0x22c4b: 0x6cb94820, - 0x22c4c: 0x6c871c20, 0x22c4f: 0x6cad3e20, - 0x22c50: 0x6ce5b020, 0x22c51: 0x6c8ece20, 0x22c52: 0x6cf40a20, - 0x22c64: 0x6d1d2620, 0x22c66: 0x6d2c6820, - 0x22c70: 0x6d21ee20, 0x22c72: 0x6cfc5020, 0x22c73: 0x6d083820, - 0x22c74: 0x6cd68a20, 0x22c75: 0x6cf74220, - 0x22c78: 0x6c9a4220, 0x22c79: 0x6ccbb420, 0x22c7a: 0x6c893420, - 0x22c7c: 0x6c6f9020, 0x22c7d: 0x6c81ec20, - // Block 0x8b2, offset 0x22c80 - 0x22c8e: 0x6cff5020, 0x22c8f: 0x6d407420, - 0x22c9a: 0x6c8ee820, - 0x22c9c: 0x6d2ff020, 0x22c9e: 0x6d30c220, - 0x22ca0: 0x6c830820, - 0x22cad: 0x6c32b420, - 0x22cb7: 0x6c663420, - 0x22cb8: 0x6cd68c20, 0x22cb9: 0x6d425620, 0x22cba: 0x6cbd0c20, - 0x22cbc: 0x6c81ca20, - // Block 0x8b3, offset 0x22cc0 - 0x22cc9: 0x6d248420, 0x22cca: 0x6d196620, 0x22ccb: 0x6ca66e20, - 0x22cce: 0x6c134620, - 0x22cd5: 0x6d0f1a20, 0x22cd7: 0x6cc89020, - 0x22cde: 0x6d0d1c20, 0x22cdf: 0x6c2f1e20, - 0x22ce0: 0x6c9df620, - 0x22ce7: 0x6c82a420, - 0x22ce9: 0x6cecae20, - 0x22cf0: 0x6ca2fe20, - 0x22cf6: 0x6d0d2420, - 0x22cfa: 0x6c831c20, - 0x22cfd: 0x6ccc3020, 0x22cfe: 0x6c551620, - // Block 0x8b4, offset 0x22d00 - 0x22d01: 0x6cf58020, 0x22d02: 0x6cf58220, - 0x22d04: 0x6d1fa020, 0x22d05: 0x6c4d9220, 0x22d07: 0x6c4d0820, - 0x22d09: 0x6cebc820, 0x22d0a: 0x6d068220, 0x22d0b: 0x6caf3c20, - 0x22d0c: 0x6cdf8e20, 0x22d0d: 0x6cf58a20, 0x22d0e: 0x6cf58c20, 0x22d0f: 0x6c0d2420, - 0x22d10: 0x6cbd1a20, 0x22d11: 0x6cf58e20, 0x22d12: 0x6d20c420, 0x22d13: 0x6cf84a20, - 0x22d15: 0x6c22b620, 0x22d16: 0x6cba4020, 0x22d17: 0x6cf95420, - 0x22d1a: 0x6cec0620, 0x22d1b: 0x6c35f420, - 0x22d1c: 0x6d1fae20, 0x22d1d: 0x6d041a20, 0x22d1e: 0x6ca5c220, 0x22d1f: 0x6c4de420, - 0x22d20: 0x6c094a20, 0x22d21: 0x6cd0ec20, - 0x22d24: 0x6d2d6220, 0x22d25: 0x6c2d4420, 0x22d26: 0x6d222c20, - 0x22d28: 0x6cab7a20, 0x22d2a: 0x6c4ae820, 0x22d2b: 0x6cee0620, - 0x22d2c: 0x6cb8c620, 0x22d2d: 0x6d14c820, - 0x22d30: 0x6d40b020, 0x22d32: 0x6cb8c820, 0x22d33: 0x6c2f9c20, - 0x22d34: 0x6c793420, 0x22d36: 0x6c1f2620, 0x22d37: 0x6d13e020, - 0x22d3a: 0x6c4d9e20, 0x22d3b: 0x6c7b6420, - // Block 0x8b5, offset 0x22d40 - 0x22d48: 0x6c2d5820, 0x22d49: 0x6cf88a20, 0x22d4a: 0x6d3e3c20, 0x22d4b: 0x6c8d0420, - 0x22d4c: 0x6d3f4e20, 0x22d4e: 0x6d234420, 0x22d4f: 0x6c5ccc20, - 0x22d51: 0x6cd86e20, 0x22d52: 0x6c76d620, - 0x22d5a: 0x6c01c420, - 0x22d5c: 0x6d1fca20, 0x22d5d: 0x6c605420, 0x22d5e: 0x6c5d2c20, 0x22d5f: 0x6cb82e20, - 0x22d60: 0x6c541020, 0x22d61: 0x6c541220, 0x22d63: 0x6c2d5c20, - 0x22d69: 0x6d004c20, - 0x22d6d: 0x6ccf5620, 0x22d6e: 0x6ccc5c20, - 0x22d72: 0x6d00ca20, 0x22d73: 0x6d112220, - 0x22d74: 0x6c26f420, 0x22d76: 0x6d01d820, 0x22d77: 0x6c1ac620, - 0x22d78: 0x6d1fde20, 0x22d79: 0x6c50a220, 0x22d7a: 0x6ccc6220, - 0x22d7f: 0x6cdf2e20, - // Block 0x8b6, offset 0x22d80 - 0x22d81: 0x6d3a1c20, 0x22d83: 0x6c006c20, - 0x22d87: 0x6cc3e020, - 0x22d88: 0x6d2aea20, 0x22d8a: 0x6c7e4a20, 0x22d8b: 0x6c911620, - 0x22d8c: 0x6c1fc820, 0x22d8e: 0x6d1fe620, - 0x22d96: 0x6ce41020, - 0x22d98: 0x6cd1fa20, - 0x22da1: 0x6d000a20, 0x22da2: 0x6cf8ee20, - 0x22da8: 0x6c5e1220, 0x22da9: 0x6c1c8620, 0x22daa: 0x6d18e620, - 0x22daf: 0x6cd54420, - 0x22db0: 0x6d270020, 0x22db1: 0x6c155420, 0x22db2: 0x6c36da20, 0x22db3: 0x6cf73620, - 0x22db4: 0x6cf74420, 0x22db5: 0x6d1d2a20, 0x22db6: 0x6d410020, 0x22db7: 0x6d28a220, - 0x22dba: 0x6d28a820, - // Block 0x8b7, offset 0x22dc0 - 0x22dc2: 0x6cde2c20, 0x22dc3: 0x6ced7020, - 0x22dc7: 0x6d031e20, - 0x22dca: 0x6cee4820, 0x22dcb: 0x6c3f3820, - 0x22dd0: 0x6c91b620, - 0x22dde: 0x6c656820, - 0x22de1: 0x6d0c6620, 0x22de3: 0x6c094c20, - 0x22de4: 0x6c78fc20, 0x22de5: 0x6c497820, - 0x22de8: 0x6d3e1820, - 0x22dee: 0x6c7cce20, 0x22def: 0x6d38e020, - 0x22df0: 0x6d35be20, 0x22df3: 0x6ce8a420, - 0x22df7: 0x6cde4c20, - 0x22df9: 0x6c1f3e20, 0x22dfa: 0x6c196e20, 0x22dfb: 0x6c1a7420, - 0x22dfc: 0x6d3af420, 0x22dfe: 0x6c26f220, - // Block 0x8b8, offset 0x22e00 - 0x22e07: 0x6c09c620, - 0x22e09: 0x6c641c20, - 0x22e0c: 0x6d17e620, 0x22e0f: 0x6d26c420, - 0x22e10: 0x6c428a20, - 0x22e16: 0x6c41ae20, - 0x22e1c: 0x6cbbac20, - 0x22e20: 0x6c1eb020, 0x22e21: 0x6c1eb620, 0x22e22: 0x6c0a6a20, - 0x22e26: 0x6c4b8a20, - 0x22e29: 0x6c47e020, 0x22e2a: 0x6c0e0020, 0x22e2b: 0x6d1b9420, - 0x22e2c: 0x6d3cbc20, 0x22e2d: 0x6c47ec20, 0x22e2f: 0x6c876820, - 0x22e35: 0x6c35c420, 0x22e36: 0x6c271420, - 0x22e3c: 0x6c118620, - // Block 0x8b9, offset 0x22e40 - 0x22e42: 0x6ce3d420, 0x22e43: 0x6c323620, - 0x22e44: 0x6d168c20, - 0x22e48: 0x6c2e6020, 0x22e4a: 0x6ca97e20, - 0x22e4c: 0x6d094420, 0x22e4d: 0x6ca54a20, 0x22e4e: 0x6c4b3220, 0x22e4f: 0x6c779e20, - 0x22e52: 0x6c201a20, - 0x22e56: 0x6d2c2020, 0x22e57: 0x6d1efc20, - 0x22e59: 0x6c043420, 0x22e5a: 0x6cd24a20, 0x22e5b: 0x6c2d3e20, - 0x22e5c: 0x6cabb420, 0x22e5d: 0x6cc01620, - 0x22e61: 0x6d094820, 0x22e63: 0x6ca0e420, - 0x22e64: 0x6c77e020, 0x22e65: 0x6d1fb020, 0x22e66: 0x6c68d220, 0x22e67: 0x6c0ec620, - 0x22e6c: 0x6d052020, - 0x22e72: 0x6c9ce820, 0x22e73: 0x6c95f220, - 0x22e75: 0x6d094e20, 0x22e77: 0x6c34e220, - 0x22e79: 0x6c37c620, 0x22e7a: 0x6cccd820, - 0x22e7c: 0x6c7cee20, 0x22e7d: 0x6ca52c20, 0x22e7e: 0x6c9e1420, 0x22e7f: 0x6c85ce20, - // Block 0x8ba, offset 0x22e80 - 0x22e80: 0x6c949620, 0x22e82: 0x6c2e8420, - 0x22e84: 0x6cb85620, 0x22e85: 0x6c832a20, 0x22e87: 0x6c997020, - 0x22e89: 0x6c524c20, 0x22e8a: 0x6c181620, 0x22e8b: 0x6d35e620, - 0x22e8d: 0x6c477c20, 0x22e8e: 0x6c25b820, - 0x22e93: 0x6cf4de20, - 0x22e94: 0x6ce26420, 0x22e97: 0x6cf61220, - 0x22e98: 0x6d10a620, 0x22e99: 0x6cefc620, 0x22e9b: 0x6d40be20, - 0x22e9c: 0x6c96be20, 0x22e9d: 0x6d225a20, 0x22e9e: 0x6caf0820, 0x22e9f: 0x6d17a420, - 0x22ea0: 0x6cbe1620, 0x22ea1: 0x6d26b620, 0x22ea2: 0x6c754c20, 0x22ea3: 0x6c67e620, - 0x22ea4: 0x6d06d820, 0x22ea5: 0x6c07ea20, - 0x22eaa: 0x6c95b020, 0x22eab: 0x6d3c6020, - 0x22eb2: 0x6c326420, 0x22eb3: 0x6cfe4020, - 0x22eb6: 0x6c5be420, - 0x22eba: 0x6c479e20, 0x22ebb: 0x6c77b020, - 0x22ebe: 0x6d037c20, 0x22ebf: 0x6c5cf020, - // Block 0x8bb, offset 0x22ec0 - 0x22ec0: 0x6c0af820, - 0x22ec4: 0x6c78c420, 0x22ec5: 0x6c77b220, - 0x22ec8: 0x6c25e820, - 0x22ecf: 0x6c92a420, - 0x22ed1: 0x6d41c620, 0x22ed2: 0x6d2a2020, 0x22ed3: 0x6c692e20, - 0x22ed4: 0x6c49a020, - 0x22ed9: 0x6d0c2220, 0x22eda: 0x6c376620, - 0x22edc: 0x6cbe8820, 0x22edf: 0x6c2ae820, - 0x22ee0: 0x6cd8ea20, 0x22ee1: 0x6cdc7220, 0x22ee2: 0x6c8aa420, - 0x22ee7: 0x6ccdb020, - 0x22ee9: 0x6c0a6e20, 0x22eea: 0x6cf0e420, 0x22eeb: 0x6d136020, - 0x22eed: 0x6d2d5020, 0x22eef: 0x6d129420, - 0x22ef0: 0x6c2e4c20, 0x22ef1: 0x6c00ee20, - 0x22ef4: 0x6c680620, 0x22ef7: 0x6cda6220, - 0x22ef9: 0x6c581c20, 0x22efa: 0x6d246020, - 0x22efd: 0x6cc50a20, - // Block 0x8bc, offset 0x22f00 - 0x22f00: 0x6c2cfa20, 0x22f01: 0x6d413e20, 0x22f02: 0x6c047420, - 0x22f04: 0x6cbd5a20, 0x22f07: 0x6c633620, - 0x22f09: 0x6cafcc20, - 0x22f0c: 0x6ce7ec20, - 0x22f10: 0x6c1da220, - 0x22f15: 0x6c4af020, - 0x22f20: 0x6c5ee620, - 0x22f28: 0x6d096420, 0x22f2a: 0x6c2d6020, - 0x22f2d: 0x6c0bac20, 0x22f2e: 0x6d291c20, 0x22f2f: 0x6ce76820, - 0x22f36: 0x6ccd5820, - 0x22f38: 0x6c482620, 0x22f39: 0x6cc3ec20, - // Block 0x8bd, offset 0x22f40 - 0x22f40: 0x6c47cc20, - 0x22f48: 0x6c55b220, 0x22f49: 0x6c7b0420, - 0x22f4c: 0x6c46d820, 0x22f4e: 0x6cdb3220, - 0x22f50: 0x6c1df620, 0x22f52: 0x6c795c20, - 0x22f54: 0x6c317e20, - 0x22f59: 0x6d190a20, - 0x22f5c: 0x6c2a4220, 0x22f5d: 0x6cbaf820, - 0x22f63: 0x6c900220, - 0x22f65: 0x6c84cc20, 0x22f67: 0x6c87a020, - 0x22f68: 0x6cbe6420, 0x22f6a: 0x6ceed420, - 0x22f6c: 0x6ca1bc20, - 0x22f71: 0x6cb74420, 0x22f73: 0x6c67a020, - 0x22f74: 0x6d008c20, - 0x22f79: 0x6c277820, 0x22f7b: 0x6c90a420, - // Block 0x8be, offset 0x22f80 - 0x22f82: 0x6c497620, - 0x22f86: 0x6cadc820, - 0x22f89: 0x6cafce20, 0x22f8b: 0x6c735420, - 0x22f8d: 0x6c06aa20, 0x22f8e: 0x6c747c20, 0x22f8f: 0x6c738420, - 0x22f90: 0x6cd3b420, - 0x22f95: 0x6d014a20, - 0x22f98: 0x6cc8a820, 0x22f99: 0x6c6ec220, 0x22f9a: 0x6cb3be20, 0x22f9b: 0x6cc9f420, - 0x22fa0: 0x6c5e7a20, - 0x22fa9: 0x6c3b1820, 0x22faa: 0x6c06e820, 0x22fab: 0x6c6bc220, - 0x22fac: 0x6cc94020, 0x22fae: 0x6caf3e20, - 0x22fb4: 0x6c2c2220, 0x22fb5: 0x6c98c820, 0x22fb6: 0x6c03ec20, 0x22fb7: 0x6c03ee20, - 0x22fb8: 0x6ce57820, 0x22fb9: 0x6c8cba20, 0x22fba: 0x6cd0f020, 0x22fbb: 0x6d31c220, - 0x22fbc: 0x6caf4620, 0x22fbd: 0x6cf4c620, 0x22fbf: 0x6d2b4220, - // Block 0x8bf, offset 0x22fc0 - 0x22fc0: 0x6c063a20, - 0x22fc7: 0x6c938020, - 0x22fd6: 0x6c4fa020, 0x22fd7: 0x6c30e020, - 0x22fd8: 0x6c3e0e20, 0x22fd9: 0x6ca5c420, - 0x22fdd: 0x6c43de20, - 0x22fe0: 0x6cc79820, 0x22fe1: 0x6cfbfc20, - 0x22fe4: 0x6c096020, - 0x22fee: 0x6c98d220, - 0x22ff2: 0x6cc70a20, 0x22ff3: 0x6cc04c20, - 0x22ff7: 0x6c0ee820, - 0x22ff9: 0x6c4fa620, 0x22ffa: 0x6ca4ee20, 0x22ffb: 0x6d0c8620, - // Block 0x8c0, offset 0x23000 - 0x23003: 0x6cad5c20, - 0x23004: 0x6cdbc020, 0x23006: 0x6ceba220, - 0x23008: 0x6cc10a20, 0x23009: 0x6c83d620, 0x2300a: 0x6c2a7220, - 0x2300c: 0x6c6aca20, 0x2300d: 0x6c6acc20, 0x2300e: 0x6c4bc820, 0x2300f: 0x6c649c20, - 0x23010: 0x6c099e20, - 0x23020: 0x6cca5620, 0x23021: 0x6c053020, 0x23022: 0x6c214a20, - 0x23026: 0x6ca3c220, 0x23027: 0x6c054e20, - 0x2302a: 0x6cc68820, 0x2302b: 0x6c636c20, - 0x2302c: 0x6cd9c220, - 0x23030: 0x6c2a7420, - 0x2303e: 0x6cfaac20, 0x2303f: 0x6d2d8020, - // Block 0x8c1, offset 0x23040 - 0x23040: 0x6c999620, 0x23043: 0x6d3e5020, - 0x23045: 0x6c623c20, 0x23046: 0x6cb61c20, - 0x2304b: 0x6cc82420, - 0x2304c: 0x6cdd2c20, 0x2304d: 0x6cc71620, 0x2304e: 0x6cf50c20, 0x2304f: 0x6cc69620, - 0x23050: 0x6cc69820, - 0x2305a: 0x6cde7620, - 0x2305c: 0x6cd9d020, - 0x23064: 0x6c842c20, 0x23067: 0x6c24fc20, - 0x23068: 0x6d3fb020, 0x23069: 0x6c9ad220, 0x2306a: 0x6cf80820, - 0x2306c: 0x6c989e20, 0x2306d: 0x6ca86220, 0x2306f: 0x6cdbd220, - 0x23071: 0x6cadea20, - 0x23074: 0x6c0a2820, 0x23075: 0x6c2c9020, - 0x23078: 0x6cc1be20, 0x23079: 0x6cbbfa20, 0x2307b: 0x6c3b4420, - 0x2307c: 0x6cdb1620, - // Block 0x8c2, offset 0x23080 - 0x23083: 0x6d05e620, - 0x23087: 0x6cc72420, - 0x23088: 0x6c5f3220, 0x2308b: 0x6cc1d620, - 0x2308c: 0x6c8b3820, - 0x23095: 0x6ccafe20, - 0x23098: 0x6c7dd620, 0x2309a: 0x6c257620, 0x2309b: 0x6d136c20, - 0x2309c: 0x6c0e3220, 0x2309e: 0x6c6b5c20, - 0x230a0: 0x6cc1e020, 0x230a1: 0x6cc1e220, - 0x230a5: 0x6c9b6e20, 0x230a6: 0x6cc49020, - 0x230a8: 0x6c0d5e20, 0x230a9: 0x6c178220, - 0x230ac: 0x6c31d420, - 0x230b6: 0x6cc4ec20, 0x230b7: 0x6cfb0220, - 0x230ba: 0x6ce25220, 0x230bb: 0x6cc20a20, - 0x230bc: 0x6ca8b420, 0x230bf: 0x6cd51c20, - // Block 0x8c3, offset 0x230c0 - 0x230c0: 0x6c920220, 0x230c2: 0x6c7dda20, - 0x230c8: 0x6c9f3620, 0x230c9: 0x6c9f9e20, - 0x230cd: 0x6c287e20, - 0x230d0: 0x6d1b6820, 0x230d3: 0x6d001020, - 0x230d7: 0x6c618820, - 0x230dc: 0x6d19b220, - 0x230e6: 0x6c3b3820, 0x230e7: 0x6d383420, - 0x230eb: 0x6c47c020, - 0x230f1: 0x6c13c420, 0x230f3: 0x6c8e3c20, - 0x230f6: 0x6c102c20, - 0x230fa: 0x6cabae20, 0x230fb: 0x6cd87620, - 0x230fc: 0x6c29b820, 0x230fd: 0x6d31b020, - // Block 0x8c4, offset 0x23100 - 0x23100: 0x6cccb620, 0x23102: 0x6c1fbe20, - 0x23104: 0x6c6fa820, - 0x2310a: 0x6c787620, 0x2310b: 0x6c1af820, - 0x23111: 0x6c565c20, 0x23112: 0x6c858220, 0x23113: 0x6ccbc620, - 0x23116: 0x6cac1820, 0x23117: 0x6ceee220, - 0x23118: 0x6cf42620, - 0x2311c: 0x6d1c5420, - 0x23121: 0x6ccbc820, 0x23122: 0x6c2b1020, - 0x23125: 0x6c27b820, - 0x23131: 0x6ce83a20, 0x23132: 0x6c50ca20, 0x23133: 0x6cb34e20, - 0x23135: 0x6d34f620, 0x23136: 0x6ca98020, 0x23137: 0x6ca67e20, - 0x2313d: 0x6cc6f820, 0x2313e: 0x6c48ea20, - // Block 0x8c5, offset 0x23140 - 0x23140: 0x6d343e20, 0x23143: 0x6c5fe220, - 0x2315c: 0x6c392c20, 0x2315f: 0x6c6a8020, - 0x23160: 0x6c4d3820, - 0x23164: 0x6d2e4e20, 0x23166: 0x6cf86420, - 0x23169: 0x6d3e1220, - 0x2316c: 0x6cf76e20, 0x2316d: 0x6cb1ac20, - 0x23170: 0x6c078020, 0x23172: 0x6c657220, - // Block 0x8c6, offset 0x23180 - 0x23193: 0x6c665c20, - 0x23196: 0x6d28ae20, - 0x2319e: 0x6c07ac20, 0x2319f: 0x6c995e20, - 0x231a2: 0x6d2a7620, 0x231a3: 0x6d3c3820, - 0x231a5: 0x6c7bbe20, - 0x231a8: 0x6c089e20, 0x231aa: 0x6cac2220, - 0x231bc: 0x6c996020, 0x231bd: 0x6ce09020, - // Block 0x8c7, offset 0x231c0 - 0x231de: 0x6cea7a20, 0x231df: 0x6c95aa20, - 0x231e2: 0x6cdf9a20, - 0x231f1: 0x6c016a20, - 0x231f7: 0x6c4e0420, - 0x231f8: 0x6d3a0c20, 0x231fa: 0x6c34e820, 0x231fb: 0x6c34ea20, - 0x231fc: 0x6c421c20, - // Block 0x8c8, offset 0x23200 - 0x23206: 0x6cbf8c20, - 0x23208: 0x6cee1220, 0x2320a: 0x6ca10420, 0x2320b: 0x6d30f220, - 0x2320c: 0x6cf1d620, 0x2320d: 0x6d3c3a20, 0x2320f: 0x6c69fe20, - 0x23210: 0x6cad8e20, - 0x23218: 0x6cdaa820, - 0x2321d: 0x6c724020, - 0x23220: 0x6cb4ec20, 0x23221: 0x6c11f420, 0x23223: 0x6ce94a20, - 0x23224: 0x6ccbec20, 0x23226: 0x6ceb1620, - 0x23229: 0x6c579420, 0x2322b: 0x6d176220, - // Block 0x8c9, offset 0x23240 - 0x23260: 0x6c9f4820, 0x23261: 0x6d37b420, - 0x23265: 0x6cd77e20, - 0x23269: 0x6d176420, 0x2326a: 0x6cee1420, 0x2326b: 0x6c024220, - 0x23276: 0x6cda7820, - 0x2327e: 0x6c4b0020, 0x2327f: 0x6ceb8020, - // Block 0x8ca, offset 0x23280 - 0x23280: 0x6c5b5220, 0x23283: 0x6d06dc20, - 0x23284: 0x6d296c20, 0x23286: 0x6d3f1220, 0x23287: 0x6c0b9e20, - 0x23289: 0x6c26a620, 0x2328a: 0x6d19ca20, 0x2328b: 0x6cc35c20, - 0x2328e: 0x6c580e20, 0x2328f: 0x6ca2e020, - 0x23290: 0x6d28ba20, 0x23292: 0x6ce32620, - 0x23298: 0x6d14f820, 0x23299: 0x6cdfaa20, 0x2329a: 0x6ccf1820, 0x2329b: 0x6cd78220, - 0x2329d: 0x6d03e620, - 0x232a0: 0x6d1fce20, 0x232a3: 0x6c3b7620, - // Block 0x8cb, offset 0x232c0 - 0x232c7: 0x6c78b220, - 0x232cb: 0x6c3e7c20, - 0x232d2: 0x6c9fb220, - 0x232da: 0x6cb09820, - 0x232dc: 0x6c604220, 0x232dd: 0x6cbc4a20, 0x232de: 0x6d37fc20, 0x232df: 0x6c422820, - 0x232e0: 0x6d24f820, 0x232e1: 0x6c1b3620, - 0x232e5: 0x6cba5a20, 0x232e7: 0x6d424220, - 0x232e9: 0x6d00bc20, 0x232ea: 0x6c98ea20, - 0x232ec: 0x6c556e20, 0x232ee: 0x6cb0a420, 0x232ef: 0x6d0a9420, - 0x232f1: 0x6cf9d220, 0x232f2: 0x6ce34420, - 0x232f5: 0x6ca34e20, 0x232f6: 0x6c1fac20, - // Block 0x8cc, offset 0x23300 - 0x23300: 0x6cf45020, - 0x2332c: 0x6c599820, 0x2332d: 0x6d096620, 0x2332e: 0x6ce26620, - 0x23330: 0x6cbc4c20, 0x23333: 0x6c685020, - 0x2333c: 0x6c293020, 0x2333d: 0x6c044620, - // Block 0x8cd, offset 0x23340 - 0x2334d: 0x6c297620, 0x2334e: 0x6c79f820, - 0x23350: 0x6c70b220, 0x23351: 0x6ccc0a20, 0x23352: 0x6c6dc820, - 0x23355: 0x6ca06c20, 0x23356: 0x6caa0220, - 0x23358: 0x6cd78e20, 0x2335a: 0x6cd5f820, 0x2335b: 0x6d3c2020, - 0x2335c: 0x6c3ec220, 0x2335f: 0x6d29de20, - 0x23360: 0x6d00cc20, 0x23361: 0x6c812820, 0x23362: 0x6ce70420, - 0x23369: 0x6d306e20, - 0x2336c: 0x6c11fe20, 0x2336e: 0x6d26cc20, - 0x23371: 0x6d393620, - // Block 0x8ce, offset 0x23380 - 0x2339a: 0x6cdfb420, - 0x2339e: 0x6d0cb420, 0x2339f: 0x6c928820, - 0x233a0: 0x6d0db620, - 0x233a6: 0x6d2ae020, 0x233a7: 0x6cd66c20, - // Block 0x8cf, offset 0x233c0 - 0x233c5: 0x6c4c3620, 0x233c6: 0x6d3a2020, - 0x233c8: 0x6cc7bc20, 0x233c9: 0x6cc7be20, - 0x233cc: 0x6c76e620, 0x233cd: 0x6c626220, 0x233ce: 0x6c42da20, - 0x233d2: 0x6d01fa20, - 0x233d5: 0x6caba220, 0x233d6: 0x6c64d420, - 0x233da: 0x6d349220, 0x233db: 0x6d2c4820, - 0x233dd: 0x6c53a820, 0x233df: 0x6c7b7020, - 0x233e1: 0x6c0f4420, - 0x233e4: 0x6ccb4820, 0x233e5: 0x6c01cc20, 0x233e6: 0x6c66b820, - 0x233e8: 0x6ce2ac20, 0x233eb: 0x6cd93420, - 0x233ed: 0x6c9c0c20, 0x233ee: 0x6d1a9420, 0x233ef: 0x6cdfb620, - 0x233f0: 0x6c4c3820, 0x233f3: 0x6cc84620, - 0x233f4: 0x6cf0ba20, 0x233f7: 0x6cd8de20, - // Block 0x8d0, offset 0x23400 - 0x23424: 0x6cb7c220, 0x23426: 0x6d2f0a20, - // Block 0x8d1, offset 0x23440 - 0x23445: 0x6c304020, 0x23446: 0x6c3eee20, 0x23447: 0x6cd07620, - 0x23448: 0x6cdb1a20, 0x23449: 0x6d18a020, 0x2344a: 0x6c891820, - 0x2344c: 0x6c516e20, 0x2344e: 0x6d319420, - 0x23450: 0x6d2afe20, 0x23452: 0x6c250c20, 0x23453: 0x6c250e20, - 0x2345d: 0x6c3cf220, 0x2345e: 0x6c853220, 0x2345f: 0x6c7a0220, - 0x23463: 0x6d000620, - 0x23464: 0x6d1fee20, - // Block 0x8d2, offset 0x23480 - 0x23483: 0x6c4fea20, - 0x23489: 0x6c4f0620, 0x2348a: 0x6c790c20, - 0x2349d: 0x6d23ec20, - 0x234a3: 0x6c58e220, - 0x234a4: 0x6cdd3e20, 0x234a6: 0x6c7e9c20, - 0x234a8: 0x6c313c20, 0x234a9: 0x6c66de20, 0x234aa: 0x6cb32020, 0x234ab: 0x6c0b5420, - 0x234b0: 0x6d097420, 0x234b2: 0x6c0bc820, - 0x234b7: 0x6cf0e620, - // Block 0x8d3, offset 0x234c0 - 0x234e1: 0x6c28d620, 0x234e2: 0x6c6b5e20, 0x234e3: 0x6c046020, - 0x234e5: 0x6ca74420, 0x234e6: 0x6cfd2620, 0x234e7: 0x6ccb7620, - 0x234ea: 0x6c576420, 0x234eb: 0x6c1fa420, - 0x234ee: 0x6caba620, 0x234ef: 0x6c8b5020, - 0x234f0: 0x6c2ba420, 0x234f1: 0x6c114e20, 0x234f3: 0x6d2c5e20, - 0x234f5: 0x6c936820, - 0x234f9: 0x6c5e1420, - 0x234fc: 0x6c86ce20, 0x234fd: 0x6d1d1620, 0x234ff: 0x6cf03a20, - // Block 0x8d4, offset 0x23500 - 0x23500: 0x6c0a8c20, 0x23501: 0x6c4c9620, 0x23503: 0x6cb0ce20, - 0x23506: 0x6c0c3a20, - 0x23520: 0x6d0dea20, - 0x23524: 0x6d3bee20, - 0x23532: 0x6c539420, - 0x23536: 0x6c8c7820, 0x23537: 0x6c36ce20, - 0x23539: 0x6d1b1820, 0x2353a: 0x6c808020, - 0x2353c: 0x6d123820, 0x2353f: 0x6d08c820, - // Block 0x8d5, offset 0x23540 - 0x23540: 0x6c86fa20, - 0x23568: 0x6c808420, 0x23569: 0x6c8d9020, 0x2356a: 0x6cf73820, 0x2356b: 0x6c52de20, - 0x2356d: 0x6c696a20, 0x2356e: 0x6d3dd220, - 0x23572: 0x6d34b620, - 0x23575: 0x6c0fb820, 0x23576: 0x6ce29620, 0x23577: 0x6c019820, - 0x2357a: 0x6d0a5220, 0x2357b: 0x6c82fa20, - 0x2357c: 0x6d29ec20, 0x2357d: 0x6c5b7c20, - // Block 0x8d6, offset 0x23580 - 0x2358e: 0x6cf92620, 0x2358f: 0x6c539820, - 0x23591: 0x6c397820, 0x23592: 0x6c662420, 0x23593: 0x6c23c820, - 0x23594: 0x6d28da20, 0x23596: 0x6c10e020, - 0x23598: 0x6d1ece20, 0x2359b: 0x6c338820, - 0x2359c: 0x6cac4e20, - 0x235a5: 0x6cdede20, 0x235a7: 0x6cacc420, - 0x235ab: 0x6c386e20, - 0x235ac: 0x6cf74620, - 0x235b6: 0x6d124c20, 0x235b7: 0x6c957620, - 0x235ba: 0x6c0b2220, - 0x235bc: 0x6c6d7420, 0x235bd: 0x6c876a20, - // Block 0x8d7, offset 0x235c0 - 0x235ca: 0x6d0f0a20, 0x235cb: 0x6c315020, - 0x235ce: 0x6c981620, - 0x235d0: 0x6c45ca20, 0x235d1: 0x6cc51420, 0x235d2: 0x6c121220, - 0x235e3: 0x6c9ae420, - 0x235f1: 0x6c47fc20, 0x235f2: 0x6cd69e20, - 0x235f8: 0x6d0d2020, 0x235f9: 0x6c0adc20, - // Block 0x8d8, offset 0x23600 - 0x23600: 0x6c0c6a20, 0x23601: 0x6c1a6220, 0x23602: 0x6c7ce620, - 0x23604: 0x6c5d8820, - 0x2360d: 0x6c1be620, 0x2360f: 0x6cf2d020, - 0x23611: 0x6c23e820, 0x23612: 0x6d357a20, - 0x23619: 0x6cd70820, - 0x2361c: 0x6c48a220, 0x2361d: 0x6cb40020, 0x2361e: 0x6d068620, 0x2361f: 0x6cd7d020, - 0x23621: 0x6cf42e20, - 0x2362e: 0x6c3d4020, - 0x23630: 0x6cd31e20, 0x23633: 0x6c5b9220, - 0x23634: 0x6c597c20, 0x23635: 0x6cabb620, - 0x2363c: 0x6d3a5e20, 0x2363e: 0x6d14a220, - // Block 0x8d9, offset 0x23640 - 0x23643: 0x6c85a820, - 0x23644: 0x6ccd3420, - 0x2365c: 0x6c9f3820, 0x2365e: 0x6c437c20, - 0x23660: 0x6c54b020, - 0x2366f: 0x6c371220, - 0x23670: 0x6c380e20, 0x23673: 0x6d06aa20, - 0x23674: 0x6d14ca20, - 0x2367e: 0x6d1d3620, - // Block 0x8da, offset 0x23680 - 0x23694: 0x6c1b1820, - 0x23699: 0x6d14cc20, - 0x236a5: 0x6c2b6a20, 0x236a6: 0x6c5b5020, 0x236a7: 0x6c510c20, - 0x236a9: 0x6d2c7a20, - 0x236b6: 0x6d27a420, 0x236b7: 0x6cfa9c20, - // Block 0x8db, offset 0x236c0 - 0x236cc: 0x6cfb4c20, 0x236cd: 0x6c81d220, 0x236ce: 0x6cced420, 0x236cf: 0x6cd36820, - 0x236d0: 0x6d3d5220, - 0x236e4: 0x6c0ca820, 0x236e5: 0x6c6fc020, 0x236e6: 0x6cf29220, 0x236e7: 0x6c68f820, - 0x236e8: 0x6c3e7e20, 0x236ea: 0x6cfd7620, 0x236eb: 0x6c768a20, - // Block 0x8dc, offset 0x23700 - 0x23732: 0x6ca4fe20, - 0x23734: 0x6c5ddc20, 0x23735: 0x6c605620, 0x23736: 0x6c7e7e20, - 0x2373b: 0x6c3d1220, - 0x2373c: 0x6ccd4c20, 0x2373d: 0x6c8a9c20, 0x2373e: 0x6c9ee020, 0x2373f: 0x6c182620, - // Block 0x8dd, offset 0x23740 - 0x23742: 0x6ca05e20, - 0x2374f: 0x6c909820, - 0x23768: 0x6c34f620, 0x2376b: 0x6ca50020, - 0x2376d: 0x6c5ee820, - 0x23770: 0x6d3b0820, - // Block 0x8de, offset 0x23780 - 0x23782: 0x6cdad220, 0x23783: 0x6c34f820, - 0x23787: 0x6c6f2820, - 0x2378a: 0x6d291e20, 0x2378b: 0x6c5b5c20, - 0x2378c: 0x6d1cfe20, 0x2378d: 0x6c557a20, 0x2378e: 0x6c8c5820, 0x2378f: 0x6cf25820, - 0x23790: 0x6c4ee820, - 0x23794: 0x6ca40620, - 0x237b7: 0x6cf8b020, - 0x237b9: 0x6c422c20, - 0x237be: 0x6c51d420, 0x237bf: 0x6c5f0820, - // Block 0x8df, offset 0x237c0 - 0x237c0: 0x6cfdf020, 0x237c1: 0x6ccc0c20, - 0x237d0: 0x6cea0c20, 0x237d2: 0x6d2f6c20, 0x237d3: 0x6cd60420, - 0x237d5: 0x6d1fe820, 0x237d6: 0x6c64d820, - 0x237dc: 0x6d2a8c20, - 0x237e4: 0x6d2ed820, - 0x237fd: 0x6cc92c20, - // Block 0x8e0, offset 0x23800 - 0x23804: 0x6d0c2420, - 0x2380b: 0x6c255a20, - 0x23817: 0x6c608a20, - 0x23818: 0x6cce1a20, - 0x23823: 0x6c36a820, - 0x23824: 0x6c817420, 0x23825: 0x6ce07820, 0x23827: 0x6d3b2820, - 0x2382d: 0x6c8c3620, 0x2382f: 0x6d2b9220, - 0x23831: 0x6c732a20, 0x23832: 0x6c550220, - // Block 0x8e1, offset 0x23840 - 0x23857: 0x6cd07820, - 0x23858: 0x6c5dfa20, - 0x2385c: 0x6c7d2020, - 0x23871: 0x6c1f7620, 0x23872: 0x6d395020, - 0x23876: 0x6c023020, - 0x23878: 0x6d3db220, - 0x2387d: 0x6d03a420, 0x2387f: 0x6c9ef420, - // Block 0x8e2, offset 0x23880 - 0x23880: 0x6c550c20, - 0x23894: 0x6ce01a20, - 0x23899: 0x6c0a7220, - 0x238a3: 0x6c2f8420, - 0x238a9: 0x6c769820, 0x238ab: 0x6c0c3c20, - 0x238b0: 0x6c5e1620, 0x238b1: 0x6c8b5220, 0x238b2: 0x6c24b820, - // Block 0x8e3, offset 0x238c0 - 0x238c3: 0x6cfd2820, - 0x238c4: 0x6cc55620, - 0x238d3: 0x6d270220, - 0x238d5: 0x6d09be20, 0x238d7: 0x6c8a8020, - 0x238e3: 0x6ccc2a20, - 0x238e6: 0x6cd3fc20, - 0x238ea: 0x6d025c20, - 0x238f3: 0x6cff4a20, - 0x238f7: 0x6d129620, - 0x238f8: 0x6c805020, 0x238f9: 0x6d192e20, - 0x238ff: 0x6c88da20, - // Block 0x8e4, offset 0x23900 - 0x23914: 0x6c0fba20, 0x23915: 0x6c126e20, - 0x2391d: 0x6d124220, - 0x23926: 0x6c893620, - 0x2393b: 0x6cdef020, - // Block 0x8e5, offset 0x23940 - 0x23951: 0x6c62ec20, - 0x23954: 0x6cf75220, 0x23955: 0x6d377020, - 0x2395a: 0x6cf75620, - 0x2395d: 0x6d273220, - 0x23964: 0x6cfc6c20, 0x23966: 0x6d3df820, - 0x2396f: 0x6d2ef820, - 0x23975: 0x6d410620, 0x23977: 0x6ca2ce20, - 0x2397e: 0x6c2a0420, 0x2397f: 0x6c8ad620, - // Block 0x8e6, offset 0x23980 - 0x23980: 0x6ca2d220, - 0x23989: 0x6cad5420, 0x2398b: 0x6c721620, - 0x23996: 0x6c95b220, - 0x23999: 0x6cd64820, 0x2399a: 0x6cce5420, - 0x2399d: 0x6c95b420, 0x2399f: 0x6c3b3a20, - 0x239a3: 0x6c065820, - 0x239a8: 0x6c865820, 0x239ab: 0x6d04a220, - 0x239b6: 0x6c290820, - // Block 0x8e7, offset 0x239c0 - 0x239c0: 0x6c1a8c20, - 0x239c4: 0x6d2f1420, 0x239c7: 0x6cda3a20, - 0x239ca: 0x6cd03e20, - 0x239d2: 0x6c447220, - 0x239d8: 0x6d209020, 0x239da: 0x6c5ad420, 0x239db: 0x6c183e20, - 0x239dd: 0x6c698420, 0x239de: 0x6d3ac420, 0x239df: 0x6cd4b220, - 0x239e2: 0x6cff8420, - 0x239e6: 0x6ca91420, - 0x239ed: 0x6c674420, 0x239ef: 0x6c674820, - 0x239f7: 0x6c2e0e20, - 0x239fd: 0x6cbb0c20, 0x239fe: 0x6cc04e20, - // Block 0x8e8, offset 0x23a00 - 0x23a00: 0x6c3c4020, - 0x23a06: 0x6d2e6620, 0x23a07: 0x6c77fa20, - 0x23a12: 0x6c2ece20, 0x23a13: 0x6d2aec20, - 0x23a16: 0x6c49f820, 0x23a17: 0x6ccb5c20, - 0x23a18: 0x6c3bea20, 0x23a1b: 0x6c67bc20, - 0x23a1d: 0x6d0cd820, 0x23a1e: 0x6d370820, - 0x23a22: 0x6c872220, - 0x23a26: 0x6c8ddc20, - 0x23a2a: 0x6d146420, - 0x23a2c: 0x6cc23e20, 0x23a2d: 0x6cac5220, 0x23a2e: 0x6c463a20, - 0x23a30: 0x6c640220, 0x23a31: 0x6c50da20, 0x23a33: 0x6caf0c20, - 0x23a35: 0x6c721820, 0x23a37: 0x6c180620, - 0x23a3a: 0x6c8af220, 0x23a3b: 0x6cd35220, - 0x23a3c: 0x6cb37a20, 0x23a3d: 0x6cfe2820, 0x23a3f: 0x6cb08e20, - // Block 0x8e9, offset 0x23a40 - 0x23a40: 0x6c95ae20, 0x23a41: 0x6c243420, 0x23a43: 0x6d225020, - 0x23a47: 0x6c79a820, - 0x23a48: 0x6d01b020, - 0x23a4d: 0x6ced1e20, 0x23a4e: 0x6d0d8e20, 0x23a4f: 0x6cadd820, - 0x23a53: 0x6c1a0620, - 0x23a58: 0x6ce34620, 0x23a59: 0x6c182820, 0x23a5a: 0x6c09ce20, 0x23a5b: 0x6c890820, - 0x23a5c: 0x6c641e20, 0x23a5e: 0x6ce68220, - 0x23a62: 0x6ce2f620, - 0x23a68: 0x6c2edc20, 0x23a6a: 0x6cd60620, 0x23a6b: 0x6c842e20, - 0x23a6c: 0x6c936020, 0x23a6d: 0x6cf97420, 0x23a6f: 0x6c24e420, - 0x23a73: 0x6c0e9220, - 0x23a74: 0x6ce9ba20, 0x23a75: 0x6cb45020, 0x23a77: 0x6c8c6220, - 0x23a78: 0x6c3bec20, 0x23a7a: 0x6c0f7620, 0x23a7b: 0x6c163620, - 0x23a7e: 0x6c290a20, 0x23a7f: 0x6cdf5820, - // Block 0x8ea, offset 0x23a80 - 0x23a80: 0x6c2a3c20, 0x23a83: 0x6c872420, - 0x23a85: 0x6d0b1220, 0x23a86: 0x6d0b1820, 0x23a87: 0x6d2d6620, - 0x23a8a: 0x6d14e220, - 0x23a8c: 0x6cb4fa20, - 0x23a94: 0x6c564420, 0x23a96: 0x6ce62a20, - 0x23a98: 0x6c79cc20, 0x23a9b: 0x6c213220, - 0x23a9c: 0x6d1f0020, 0x23a9d: 0x6c3bd020, 0x23a9f: 0x6caab220, - 0x23aa0: 0x6ce53020, 0x23aa1: 0x6c6cde20, 0x23aa2: 0x6cafbc20, 0x23aa3: 0x6c18a420, - 0x23aa4: 0x6cb08820, 0x23aa6: 0x6c6bc420, 0x23aa7: 0x6c4ac820, - 0x23ab2: 0x6d3c3220, - 0x23ab5: 0x6c552420, 0x23ab6: 0x6c1e2420, 0x23ab7: 0x6cd5a020, - 0x23ab8: 0x6ce1b420, 0x23ab9: 0x6cafc620, 0x23aba: 0x6cc70020, 0x23abb: 0x6cc70220, - 0x23abd: 0x6c544e20, 0x23abe: 0x6cae5a20, - // Block 0x8eb, offset 0x23ac0 - 0x23ac5: 0x6c043e20, 0x23ac7: 0x6cf99a20, - 0x23acb: 0x6cbdcc20, - 0x23acc: 0x6ca63220, 0x23ace: 0x6ce1b620, 0x23acf: 0x6cc26a20, - 0x23ad2: 0x6d008e20, - 0x23ad4: 0x6d2fa820, 0x23ad5: 0x6c570e20, 0x23ad6: 0x6d02c820, - 0x23ad8: 0x6cd42e20, 0x23adb: 0x6ce8a620, - 0x23add: 0x6c895020, 0x23ade: 0x6c097c20, 0x23adf: 0x6c1e5a20, - 0x23ae1: 0x6d037020, 0x23ae3: 0x6d02cc20, - 0x23ae4: 0x6c3d6820, - 0x23ae9: 0x6c6bde20, - 0x23aed: 0x6c3f5e20, - 0x23af0: 0x6ce27a20, 0x23af1: 0x6ccf4c20, - 0x23af4: 0x6c174620, 0x23af5: 0x6c20b820, - 0x23afc: 0x6cc47a20, 0x23afd: 0x6c545620, 0x23afe: 0x6c07ec20, - // Block 0x8ec, offset 0x23b00 - 0x23b00: 0x6c113020, - 0x23b05: 0x6ca21420, - 0x23b09: 0x6d059e20, 0x23b0a: 0x6c2eaa20, - 0x23b0d: 0x6c15c220, 0x23b0e: 0x6d215c20, 0x23b0f: 0x6d383620, - 0x23b13: 0x6c83e620, - 0x23b14: 0x6cd43420, - 0x23b1a: 0x6c31a420, - 0x23b1c: 0x6c98bc20, 0x23b1d: 0x6c59d420, 0x23b1f: 0x6ce22c20, - 0x23b21: 0x6c326620, 0x23b22: 0x6ce34820, 0x23b23: 0x6cd10820, - 0x23b24: 0x6c9a0e20, - 0x23b28: 0x6d316820, 0x23b29: 0x6cbd9020, 0x23b2a: 0x6cb0ae20, 0x23b2b: 0x6ce11620, - 0x23b2c: 0x6c123820, 0x23b2d: 0x6d112420, 0x23b2f: 0x6d054620, - 0x23b30: 0x6c053620, 0x23b31: 0x6c47b220, - 0x23b35: 0x6c10aa20, - 0x23b3c: 0x6c46c620, 0x23b3d: 0x6c0f2e20, - // Block 0x8ed, offset 0x23b40 - 0x23b41: 0x6cf21020, - 0x23b44: 0x6c624420, - 0x23b4a: 0x6c7e4c20, - 0x23b4d: 0x6c24e620, 0x23b4e: 0x6c9fc820, 0x23b4f: 0x6c242820, - 0x23b50: 0x6cab4e20, 0x23b51: 0x6d1da620, - 0x23b56: 0x6c98fe20, 0x23b57: 0x6c78c820, - 0x23b58: 0x6c981e20, 0x23b59: 0x6c2f8020, 0x23b5a: 0x6c582e20, 0x23b5b: 0x6c34ac20, - 0x23b5c: 0x6c677420, 0x23b5d: 0x6cdb0220, - 0x23b62: 0x6c135c20, 0x23b63: 0x6cde9e20, - 0x23b65: 0x6c59f820, 0x23b66: 0x6c74be20, 0x23b67: 0x6d0a4020, - 0x23b6a: 0x6d04a620, - 0x23b6c: 0x6c9d8820, 0x23b6d: 0x6cc45620, 0x23b6e: 0x6c817620, - 0x23b71: 0x6d370a20, 0x23b72: 0x6cf02820, - 0x23b77: 0x6ccb6e20, - 0x23b7b: 0x6d29ea20, - // Block 0x8ee, offset 0x23b80 - 0x23b81: 0x6c019620, 0x23b82: 0x6cf10c20, - 0x23b84: 0x6c581e20, 0x23b87: 0x6d2e9e20, - 0x23b89: 0x6d1c2c20, 0x23b8a: 0x6c43bc20, 0x23b8b: 0x6c5c9220, - 0x23b8d: 0x6cc33420, - 0x23b93: 0x6c8b7c20, - 0x23b94: 0x6c719a20, 0x23b95: 0x6c03de20, 0x23b96: 0x6c82a620, - 0x23b98: 0x6c97ac20, 0x23b99: 0x6c8dde20, - 0x23b9c: 0x6c856a20, 0x23b9d: 0x6c611420, - 0x23ba1: 0x6c5b1620, 0x23ba2: 0x6d031820, 0x23ba3: 0x6cd30020, - 0x23ba4: 0x6d300e20, 0x23ba7: 0x6c0e4820, - 0x23bab: 0x6c137a20, - 0x23baf: 0x6c137e20, - 0x23bb0: 0x6c6d8c20, 0x23bb1: 0x6c031c20, 0x23bb2: 0x6c06da20, - 0x23bb5: 0x6d0e3c20, 0x23bb7: 0x6c565e20, - 0x23bb9: 0x6d20ba20, 0x23bbb: 0x6c091e20, - 0x23bbc: 0x6c1ff220, 0x23bbe: 0x6c612220, - // Block 0x8ef, offset 0x23bc0 - 0x23bc2: 0x6ca26c20, - 0x23bc4: 0x6c98c420, 0x23bc5: 0x6d379420, 0x23bc7: 0x6d12c620, - 0x23bc8: 0x6c30a020, 0x23bc9: 0x6d12a420, - 0x23bcd: 0x6cc63c20, 0x23bce: 0x6d19a620, - 0x23bd0: 0x6c501e20, 0x23bd2: 0x6ca31220, 0x23bd3: 0x6ce61020, - 0x23bd4: 0x6c3fb620, 0x23bd5: 0x6ca22c20, 0x23bd6: 0x6d291020, - 0x23bd8: 0x6c552820, 0x23bda: 0x6c185c20, 0x23bdb: 0x6ceaf420, - 0x23bde: 0x6c1f1220, 0x23bdf: 0x6c3df820, - 0x23be7: 0x6c063420, - 0x23bec: 0x6c2bde20, 0x23bed: 0x6c111c20, 0x23bee: 0x6c921220, 0x23bef: 0x6cb35020, - 0x23bf0: 0x6c268620, 0x23bf1: 0x6d12da20, 0x23bf3: 0x6d15d220, - 0x23bf7: 0x6cfdb620, - 0x23bf8: 0x6c086e20, 0x23bf9: 0x6d398c20, 0x23bfb: 0x6d14a620, - 0x23bfd: 0x6c93d220, 0x23bff: 0x6c7b9420, - // Block 0x8f0, offset 0x23c00 - 0x23c02: 0x6d35a420, - 0x23c07: 0x6cec0820, - 0x23c08: 0x6c2b1c20, 0x23c09: 0x6cd5b020, 0x23c0a: 0x6c8ad820, 0x23c0b: 0x6d2a4220, - 0x23c0c: 0x6d35a620, 0x23c0d: 0x6ca49e20, - 0x23c17: 0x6c147220, - 0x23c1a: 0x6cfea620, 0x23c1b: 0x6d2a0220, - 0x23c1e: 0x6d22f420, 0x23c1f: 0x6c310620, - 0x23c20: 0x6c143e20, 0x23c21: 0x6d009020, 0x23c22: 0x6d0fa220, - 0x23c24: 0x6cfc0220, 0x23c25: 0x6c05f220, - 0x23c2e: 0x6d2cec20, - 0x23c30: 0x6cc03420, 0x23c32: 0x6c553420, 0x23c33: 0x6d293220, - 0x23c34: 0x6c741620, 0x23c36: 0x6c4d9a20, - 0x23c3f: 0x6c01ae20, - // Block 0x8f1, offset 0x23c40 - 0x23c40: 0x6d2a7820, 0x23c43: 0x6ccc4c20, - 0x23c45: 0x6cfcb220, 0x23c46: 0x6c1b9e20, 0x23c47: 0x6d0d6a20, - 0x23c49: 0x6c01ba20, - 0x23c4d: 0x6d305220, 0x23c4e: 0x6c742c20, - 0x23c51: 0x6c85ea20, 0x23c53: 0x6c822020, - 0x23c56: 0x6c112c20, - 0x23c58: 0x6c924220, 0x23c5a: 0x6c634c20, - 0x23c5d: 0x6cfa3820, 0x23c5e: 0x6cfff020, 0x23c5f: 0x6d0c0c20, - 0x23c60: 0x6d05a020, 0x23c62: 0x6c33f020, 0x23c63: 0x6d1c7620, - 0x23c64: 0x6c5ab820, 0x23c65: 0x6ce32820, 0x23c66: 0x6caa0020, 0x23c67: 0x6cf7e820, - 0x23c6a: 0x6ce8b220, - 0x23c77: 0x6cec5620, - 0x23c78: 0x6c186620, - 0x23c7c: 0x6c52aa20, 0x23c7e: 0x6ce32a20, 0x23c7f: 0x6d07a020, - // Block 0x8f2, offset 0x23c80 - 0x23c80: 0x6d28bc20, - 0x23c87: 0x6c43f020, - 0x23c8b: 0x6c908c20, - 0x23c8c: 0x6c147c20, 0x23c8d: 0x6cac6020, 0x23c8e: 0x6c605820, - 0x23c90: 0x6cde5e20, 0x23c93: 0x6cf64e20, - 0x23c96: 0x6cfeda20, - 0x23c98: 0x6ccab620, 0x23c99: 0x6c637020, 0x23c9a: 0x6cdad420, 0x23c9b: 0x6c599a20, - 0x23c9d: 0x6c25bc20, 0x23c9f: 0x6cde6020, - 0x23ca0: 0x6cd65420, - 0x23caa: 0x6c3e9a20, 0x23cab: 0x6c863620, - 0x23cad: 0x6ccf5a20, 0x23caf: 0x6ce10620, - 0x23cb6: 0x6c2cd020, - 0x23cba: 0x6c09fa20, - 0x23cbc: 0x6c46c820, 0x23cbd: 0x6c244620, 0x23cbf: 0x6cb90820, - // Block 0x8f3, offset 0x23cc0 - 0x23cc2: 0x6c824620, 0x23cc3: 0x6cdaea20, - 0x23cc6: 0x6d402420, 0x23cc7: 0x6c4faa20, - 0x23ccf: 0x6c1c4420, - 0x23cd0: 0x6c128020, 0x23cd3: 0x6cf30420, - 0x23cd4: 0x6cfef220, 0x23cd5: 0x6c8b2020, 0x23cd6: 0x6d0c1e20, - 0x23cdd: 0x6c09fc20, 0x23cdf: 0x6c594220, - 0x23ce1: 0x6cf67820, 0x23ce2: 0x6c1ac820, 0x23ce3: 0x6d05d620, - 0x23ce4: 0x6ca4bc20, 0x23ce5: 0x6d0cc020, 0x23ce7: 0x6d01fc20, - 0x23ce8: 0x6d2c4a20, 0x23cea: 0x6cdc5e20, - 0x23cec: 0x6cf8ca20, 0x23ced: 0x6c080620, 0x23cee: 0x6cc48420, 0x23cef: 0x6cd79820, - 0x23cf0: 0x6c049020, 0x23cf1: 0x6c4b6a20, 0x23cf2: 0x6c763c20, 0x23cf3: 0x6c188020, - 0x23cf6: 0x6d072820, - 0x23cfe: 0x6c368620, 0x23cff: 0x6c865a20, - // Block 0x8f4, offset 0x23d00 - 0x23d00: 0x6cf69e20, 0x23d01: 0x6c594c20, 0x23d02: 0x6cdb0420, - 0x23d04: 0x6c16f620, - 0x23d0a: 0x6c92a820, 0x23d0b: 0x6d0cc220, - 0x23d0e: 0x6c290620, 0x23d0f: 0x6c284620, - 0x23d10: 0x6d0f6a20, 0x23d12: 0x6d2d3620, 0x23d13: 0x6c729020, - 0x23d15: 0x6c345e20, 0x23d16: 0x6ccabe20, 0x23d17: 0x6c7f2a20, - 0x23d18: 0x6cdb1c20, - 0x23d1f: 0x6d2b0020, - 0x23d23: 0x6c0a5020, - 0x23d26: 0x6d1b8c20, - 0x23d28: 0x6c4fb420, 0x23d2a: 0x6c8b3a20, - 0x23d2d: 0x6c4ff620, 0x23d2e: 0x6d0fdc20, - 0x23d34: 0x6cd7a420, 0x23d35: 0x6c00f020, 0x23d36: 0x6cbf7420, - 0x23d39: 0x6c82ec20, 0x23d3a: 0x6d011220, - 0x23d3c: 0x6cd3f220, - // Block 0x8f5, offset 0x23d40 - 0x23d43: 0x6c91ec20, - 0x23d45: 0x6cc41220, 0x23d46: 0x6c888020, - 0x23d4c: 0x6d001a20, 0x23d4e: 0x6d1c2020, - 0x23d51: 0x6d012620, - 0x23d58: 0x6c8d9e20, 0x23d59: 0x6d1ed620, - 0x23d5e: 0x6c294020, 0x23d5f: 0x6c806020, - 0x23d60: 0x6cff5e20, - 0x23d68: 0x6d182a20, - 0x23d6c: 0x6cf34c20, 0x23d6e: 0x6d168e20, 0x23d6f: 0x6ceaa420, - 0x23d70: 0x6c102e20, 0x23d72: 0x6d032020, - 0x23d75: 0x6cd7c420, 0x23d76: 0x6c6c2a20, - 0x23d78: 0x6c031e20, 0x23d79: 0x6c383020, 0x23d7b: 0x6ca0d420, - 0x23d7c: 0x6cc91220, - // Block 0x8f6, offset 0x23d80 - 0x23d8a: 0x6c26ea20, 0x23d8b: 0x6c619820, - 0x23d90: 0x6cda8820, 0x23d91: 0x6cbf0620, 0x23d92: 0x6c033020, - 0x23da6: 0x6ce48c20, 0x23da7: 0x6d1f0a20, - 0x23da9: 0x6ceb0020, 0x23dab: 0x6cec6c20, - 0x23dac: 0x6d202e20, 0x23dae: 0x6c2fe820, - 0x23db1: 0x6cf7d820, 0x23db2: 0x6c799820, - 0x23db6: 0x6cbf0c20, 0x23db7: 0x6c32f820, - 0x23db8: 0x6c34e420, 0x23dba: 0x6d173620, - // Block 0x8f7, offset 0x23dc0 - 0x23dd2: 0x6cf5c820, 0x23dd3: 0x6cbd2420, - 0x23dd4: 0x6cda9220, 0x23dd7: 0x6c8e5220, - 0x23dd9: 0x6cecd820, - 0x23ded: 0x6c17da20, 0x23dee: 0x6d399a20, - 0x23df0: 0x6c997220, - 0x23df7: 0x6cc2de20, - 0x23dfd: 0x6d208c20, 0x23dff: 0x6d17ac20, - // Block 0x8f8, offset 0x23e00 - 0x23e00: 0x6c9c5020, 0x23e03: 0x6c7f0c20, - 0x23e04: 0x6d362e20, - 0x23e24: 0x6ca5e620, 0x23e26: 0x6c048220, - 0x23e2a: 0x6c300420, - 0x23e2e: 0x6d363020, - // Block 0x8f9, offset 0x23e40 - 0x23e55: 0x6d17ec20, - 0x23e58: 0x6c8d1e20, 0x23e59: 0x6d216020, 0x23e5a: 0x6c231e20, 0x23e5b: 0x6c2c6a20, - 0x23e5c: 0x6d365c20, - 0x23e60: 0x6cc86820, 0x23e63: 0x6c669a20, - 0x23e69: 0x6ced8c20, 0x23e6b: 0x6c6d2c20, - 0x23e6d: 0x6cad0820, - // Block 0x8fa, offset 0x23e80 - 0x23e8d: 0x6c928a20, 0x23e8e: 0x6cc1a620, - 0x23e90: 0x6cf80020, 0x23e91: 0x6c26b420, - 0x23e96: 0x6c56c220, 0x23e97: 0x6c95bc20, - 0x23e99: 0x6c822820, - 0x23eb6: 0x6c45f820, - 0x23ebb: 0x6c8e2620, - // Block 0x8fb, offset 0x23ec0 - 0x23ec2: 0x6c817820, - 0x23ec4: 0x6d3be420, - 0x23ee8: 0x6d2a5220, 0x23ee9: 0x6c506a20, 0x23eea: 0x6cfe5420, - 0x23eed: 0x6c507020, 0x23eee: 0x6c86a220, - 0x23ef1: 0x6c2d8820, 0x23ef2: 0x6c444020, - 0x23efd: 0x6c58a820, - // Block 0x8fc, offset 0x23f00 - 0x23f04: 0x6c36b620, 0x23f06: 0x6cf9fe20, - 0x23f0b: 0x6c651820, - 0x23f0c: 0x6cb67420, 0x23f0d: 0x6cfa0820, 0x23f0e: 0x6d1ffa20, - 0x23f21: 0x6d330420, - 0x23f2a: 0x6d3bf220, - 0x23f2e: 0x6c163a20, - // Block 0x8fd, offset 0x23f40 - 0x23f49: 0x6d027a20, - 0x23f55: 0x6ca4d620, - 0x23f5d: 0x6c62ee20, 0x23f5e: 0x6ce4d620, - 0x23f63: 0x6d0e3220, - 0x23f67: 0x6c500c20, - 0x23f68: 0x6d030820, 0x23f69: 0x6c8de020, 0x23f6b: 0x6c047620, - 0x23f6c: 0x6c081220, - 0x23f71: 0x6c463e20, 0x23f72: 0x6c8cc820, - 0x23f75: 0x6c7df420, 0x23f76: 0x6cb85e20, 0x23f77: 0x6c699e20, - 0x23f79: 0x6c371420, 0x23f7a: 0x6d10fa20, 0x23f7b: 0x6c316e20, - // Block 0x8fe, offset 0x23f80 - 0x23f81: 0x6c5d9220, 0x23f82: 0x6c322420, 0x23f83: 0x6cadbe20, - 0x23f8c: 0x6d259820, 0x23f8f: 0x6c90b820, - 0x23f90: 0x6d03f820, 0x23f93: 0x6c883a20, - 0x23f94: 0x6d113820, 0x23f95: 0x6cf6a020, 0x23f96: 0x6d114420, - 0x23f98: 0x6cf70020, 0x23f9b: 0x6c918a20, - 0x23f9d: 0x6d0f0020, - 0x23fa0: 0x6cc33820, - 0x23fa5: 0x6cc50020, 0x23fa6: 0x6cec2020, 0x23fa7: 0x6d40a420, - 0x23fa8: 0x6c392e20, 0x23fa9: 0x6d16c620, 0x23faa: 0x6c323c20, 0x23fab: 0x6cdc2620, - 0x23fad: 0x6caf4820, 0x23faf: 0x6c4de820, - 0x23fb1: 0x6d069820, 0x23fb3: 0x6c45e620, - 0x23fb5: 0x6c2c2e20, 0x23fb7: 0x6ca32620, - 0x23fbe: 0x6c34ec20, 0x23fbf: 0x6cebda20, - // Block 0x8ff, offset 0x23fc0 - 0x23fc2: 0x6ca81820, - 0x23fc8: 0x6c2e1a20, 0x23fc9: 0x6c598e20, - 0x23fcc: 0x6ce32c20, 0x23fcd: 0x6c395420, - 0x23fd1: 0x6cf3ca20, 0x23fd2: 0x6c01fe20, - 0x23fd4: 0x6cb2a820, - 0x23fd9: 0x6c4e1420, 0x23fdb: 0x6c428820, - 0x23fdc: 0x6c83e820, 0x23fde: 0x6c339c20, 0x23fdf: 0x6c400e20, - 0x23fe0: 0x6ca35020, 0x23fe2: 0x6c132220, - 0x23fe7: 0x6c6a2820, - 0x23fe9: 0x6cbed020, 0x23feb: 0x6d1bd020, - 0x23fec: 0x6cfdd220, - 0x23ff1: 0x6c557c20, - 0x23ff4: 0x6cdaec20, - 0x23ffb: 0x6c43a420, - 0x23ffc: 0x6c368820, 0x23ffd: 0x6d072a20, - // Block 0x900, offset 0x24000 - 0x24006: 0x6cf6cc20, - 0x2400a: 0x6c774c20, 0x2400b: 0x6c4c8a20, - 0x2400c: 0x6c6a3620, 0x2400d: 0x6c200c20, 0x2400e: 0x6c826220, 0x2400f: 0x6c527620, - 0x24010: 0x6d41f420, - 0x24015: 0x6cb1e620, - 0x24018: 0x6c2ab420, 0x24019: 0x6cf70220, 0x2401a: 0x6c826820, - 0x2401c: 0x6ccdc620, - 0x24027: 0x6c918c20, - 0x24029: 0x6c338a20, 0x2402a: 0x6c760420, - 0x2402d: 0x6c164820, 0x2402f: 0x6d012c20, - 0x24030: 0x6cec0220, 0x24031: 0x6d30c420, 0x24033: 0x6d3b9e20, - 0x24037: 0x6c8f6020, - 0x24038: 0x6c82aa20, - 0x2403c: 0x6c273620, 0x2403d: 0x6c417820, - // Block 0x901, offset 0x24040 - 0x24044: 0x6cd34020, 0x24047: 0x6d0da420, - 0x2404c: 0x6c41b420, - 0x24050: 0x6d0d0020, - 0x24056: 0x6cdbac20, - 0x2405a: 0x6d37a620, - 0x2405c: 0x6cd34220, - 0x24061: 0x6cd15c20, - 0x24065: 0x6c15ae20, - 0x24077: 0x6c5a0820, - 0x24078: 0x6d1b8e20, 0x2407b: 0x6c9bee20, - // Block 0x902, offset 0x24080 - 0x24082: 0x6cc4f220, - 0x24085: 0x6cfdae20, - 0x24088: 0x6c071420, - 0x2408c: 0x6c200820, - 0x24091: 0x6cb47620, - 0x24099: 0x6c77d220, 0x2409a: 0x6c7e3820, - 0x2409d: 0x6cc35020, 0x2409f: 0x6c4f9220, - 0x240a0: 0x6c1bf220, 0x240a1: 0x6c983820, - 0x240a6: 0x6d2cb020, - 0x240aa: 0x6c3bd220, - 0x240ac: 0x6c17b420, - 0x240b3: 0x6c6e1820, - // Block 0x903, offset 0x240c0 - 0x240c3: 0x6c8ada20, - 0x240c5: 0x6ca31c20, 0x240c6: 0x6ca31e20, 0x240c7: 0x6ce72a20, - 0x240cb: 0x6cc46620, - 0x240cc: 0x6d411620, 0x240cd: 0x6caf5420, 0x240ce: 0x6d1fba20, - 0x240d0: 0x6cd4be20, - 0x240db: 0x6c8af420, - 0x240dc: 0x6cd43020, 0x240dd: 0x6ce97e20, 0x240df: 0x6c430220, - 0x240e0: 0x6ccea220, 0x240e1: 0x6ceb0420, 0x240e3: 0x6ca3f220, - 0x240e7: 0x6ceb7a20, - 0x240e8: 0x6c458220, 0x240e9: 0x6c2e1c20, - 0x240f4: 0x6c9bd020, 0x240f5: 0x6c052820, 0x240f7: 0x6d00a420, - 0x240f8: 0x6cd8b420, 0x240f9: 0x6ce6c820, 0x240fa: 0x6c4b4220, - 0x240fd: 0x6c3e8020, 0x240fe: 0x6c4b4820, - // Block 0x904, offset 0x24100 - 0x24109: 0x6c4b4a20, - 0x24111: 0x6d3a7420, 0x24113: 0x6c7f1420, - 0x24115: 0x6c951620, 0x24116: 0x6ce50020, 0x24117: 0x6cc4c620, - 0x2411a: 0x6c300820, - 0x24128: 0x6c737220, 0x24129: 0x6d0cac20, - 0x2412c: 0x6cc84020, 0x2412d: 0x6c283a20, - 0x24130: 0x6c999e20, - 0x24136: 0x6c944020, - 0x24138: 0x6d072c20, 0x2413a: 0x6cf6a220, - // Block 0x905, offset 0x24140 - 0x24142: 0x6c967420, 0x24143: 0x6cb52220, - 0x24145: 0x6c144820, - 0x24148: 0x6cce1e20, 0x24149: 0x6c4f0820, 0x2414a: 0x6cb2ce20, - 0x2414e: 0x6c5f3820, - 0x24153: 0x6c86a620, - 0x24155: 0x6d240c20, 0x24156: 0x6c04a420, - 0x24158: 0x6ce29220, - 0x2415d: 0x6c1de820, - 0x24160: 0x6c1dea20, - 0x24164: 0x6cb54420, 0x24165: 0x6cf70420, 0x24166: 0x6c076820, - 0x2416a: 0x6d138020, - 0x2416d: 0x6c4a1020, 0x2416f: 0x6d3b3a20, - 0x24173: 0x6c827c20, - 0x24174: 0x6c827e20, 0x24175: 0x6c13be20, - // Block 0x906, offset 0x24180 - 0x24180: 0x6c4a1420, - 0x2418d: 0x6c2f2420, - 0x24193: 0x6d0b4420, - 0x24198: 0x6ca7fc20, 0x24199: 0x6cd4de20, 0x2419b: 0x6d363220, - 0x2419f: 0x6d36e420, - 0x241a2: 0x6d36e620, 0x241a3: 0x6cb07620, - 0x241a5: 0x6c6f4e20, 0x241a6: 0x6c6f5220, 0x241a7: 0x6d169020, - 0x241a8: 0x6d201220, 0x241aa: 0x6c6f5420, - 0x241af: 0x6c58f220, - 0x241b1: 0x6c323e20, - 0x241bb: 0x6ce20c20, - 0x241bc: 0x6cbc9e20, 0x241bd: 0x6cbd5c20, 0x241be: 0x6d032420, 0x241bf: 0x6c14bc20, - // Block 0x907, offset 0x241c0 - 0x241c0: 0x6c61ae20, 0x241c2: 0x6cbe0a20, - 0x241ca: 0x6c324620, 0x241cb: 0x6d33aa20, - 0x241ce: 0x6cab7820, - 0x241d0: 0x6cf4c820, 0x241d2: 0x6cf18620, - 0x241d8: 0x6c096620, 0x241db: 0x6c069420, - 0x241dd: 0x6ca23c20, 0x241de: 0x6c6cf420, 0x241df: 0x6ce21220, - 0x241e0: 0x6c89e220, - 0x241e5: 0x6c127220, 0x241e6: 0x6d2c2820, - 0x241ec: 0x6c1b8e20, 0x241ed: 0x6d0ae020, 0x241ee: 0x6c7c6420, 0x241ef: 0x6d1b4420, - 0x241f8: 0x6c8f8820, 0x241f9: 0x6cb86020, 0x241fb: 0x6c4f4c20, - 0x241fc: 0x6cce5020, 0x241fd: 0x6c4d6420, 0x241fe: 0x6c139220, - // Block 0x908, offset 0x24200 - 0x24200: 0x6c68e220, 0x24201: 0x6c81ae20, - 0x24208: 0x6cf5fa20, 0x2420b: 0x6c0ef220, - 0x24213: 0x6d351a20, - 0x24215: 0x6cea8a20, 0x24216: 0x6c3e8220, - 0x24218: 0x6c54ce20, 0x2421a: 0x6ca83220, 0x2421b: 0x6d17ae20, - 0x2421c: 0x6d3c4020, - 0x24220: 0x6c13e620, - 0x24224: 0x6cdb8220, 0x24227: 0x6d283620, - 0x2422e: 0x6c325e20, - 0x24230: 0x6cf61c20, 0x24231: 0x6c203620, 0x24232: 0x6d03e820, 0x24233: 0x6c68fa20, - 0x24234: 0x6ccfea20, - // Block 0x909, offset 0x24240 - 0x24240: 0x6cedca20, 0x24241: 0x6c06a220, 0x24242: 0x6c3a3a20, 0x24243: 0x6c669c20, - 0x24244: 0x6cc30020, 0x24245: 0x6d17f020, 0x24246: 0x6c300a20, 0x24247: 0x6d06f620, - 0x24248: 0x6ca35220, 0x24249: 0x6c605a20, - 0x2424c: 0x6d31e620, 0x2424d: 0x6cb5fa20, 0x2424e: 0x6c330a20, 0x2424f: 0x6d1a7220, - 0x24251: 0x6c700420, 0x24252: 0x6caffe20, 0x24253: 0x6d033e20, - 0x24254: 0x6c94fe20, 0x24255: 0x6c113420, 0x24256: 0x6c8e2020, 0x24257: 0x6c0cac20, - 0x24258: 0x6c2a1c20, 0x24259: 0x6c2a7620, - 0x2425f: 0x6c7ed820, - 0x24261: 0x6cf65020, 0x24262: 0x6c725620, - 0x24264: 0x6cff9020, 0x24266: 0x6c6dc020, - 0x24279: 0x6cec7220, 0x2427b: 0x6ca50a20, - 0x2427c: 0x6cfd8220, 0x2427d: 0x6cc3e220, 0x2427e: 0x6cbcd420, 0x2427f: 0x6ce86a20, - // Block 0x90a, offset 0x24280 - 0x24280: 0x6d064a20, 0x24281: 0x6c5bfc20, - 0x24285: 0x6c9f6c20, 0x24286: 0x6ceff220, - 0x24288: 0x6d1f5620, 0x24289: 0x6ce9ae20, 0x2428a: 0x6c278020, - 0x2428e: 0x6c786c20, 0x2428f: 0x6ca36220, - 0x24291: 0x6c401c20, 0x24292: 0x6d239620, 0x24293: 0x6d354420, - 0x24295: 0x6c4dae20, 0x24296: 0x6c002e20, 0x24297: 0x6c401e20, - 0x242a1: 0x6d0f6220, - 0x242a4: 0x6cd27e20, 0x242a6: 0x6c150c20, - 0x242aa: 0x6c1c5c20, 0x242ab: 0x6d284820, - 0x242ac: 0x6cd65a20, 0x242ae: 0x6cdb0620, 0x242af: 0x6cca8620, - 0x242b1: 0x6c368a20, 0x242b2: 0x6d332e20, 0x242b3: 0x6c004e20, - 0x242b4: 0x6cdd8c20, 0x242b5: 0x6c10b220, 0x242b7: 0x6cc45220, - 0x242b8: 0x6d185e20, 0x242b9: 0x6d0dca20, 0x242bb: 0x6ca36620, - 0x242bc: 0x6cf46a20, - // Block 0x90b, offset 0x242c0 - 0x242c7: 0x6c865c20, - 0x242c8: 0x6c865e20, 0x242ca: 0x6cf6a820, 0x242cb: 0x6c749c20, - 0x242cc: 0x6cd1ea20, 0x242ce: 0x6d0b5c20, - 0x242db: 0x6c18e420, - 0x242dc: 0x6d1c8c20, 0x242dd: 0x6c0a5220, 0x242de: 0x6c184020, - 0x242e1: 0x6d2bfc20, 0x242e2: 0x6ceb9020, 0x242e3: 0x6c56c620, - 0x242e4: 0x6ce2b220, 0x242e5: 0x6d1d4c20, 0x242e6: 0x6c08f820, 0x242e7: 0x6ca91e20, - 0x242e8: 0x6c891a20, 0x242e9: 0x6d034c20, 0x242ea: 0x6d229020, - 0x242f2: 0x6c075e20, - 0x242f4: 0x6ca07820, 0x242f5: 0x6c331420, 0x242f7: 0x6c29ea20, - 0x242f8: 0x6cb64c20, - // Block 0x90c, offset 0x24300 - 0x24300: 0x6cd65c20, 0x24303: 0x6cff1e20, - 0x24304: 0x6d380a20, 0x24305: 0x6d3cb220, 0x24307: 0x6c0bca20, - 0x24309: 0x6cf02a20, 0x2430a: 0x6cf6ec20, - 0x2430c: 0x6c2aae20, 0x2430e: 0x6d005620, 0x2430f: 0x6cac4620, - 0x24310: 0x6ca87a20, 0x24313: 0x6c0cfa20, - 0x24314: 0x6ccf7a20, 0x24315: 0x6c3ad820, 0x24316: 0x6c9fcc20, 0x24317: 0x6cb7e820, - 0x2432a: 0x6ccdbc20, 0x2432b: 0x6cdd9c20, - 0x24337: 0x6c60c020, - 0x2433a: 0x6c285020, 0x2433b: 0x6c739c20, - 0x2433c: 0x6c930420, 0x2433e: 0x6c02f620, - // Block 0x90d, offset 0x24340 - 0x24342: 0x6d18ea20, 0x24343: 0x6cd57a20, - 0x24344: 0x6cdc9c20, 0x24345: 0x6cf0f220, 0x24346: 0x6cecec20, 0x24347: 0x6c1ef420, - 0x2434c: 0x6cf32820, - 0x24356: 0x6c0aa420, - 0x24358: 0x6d1b1a20, 0x24359: 0x6c5d8220, - 0x2435c: 0x6c769c20, 0x2435d: 0x6ca93020, - 0x24362: 0x6c00fc20, - 0x24364: 0x6c870020, 0x24366: 0x6d2d0220, - 0x24371: 0x6c933020, - 0x24376: 0x6c0bd420, 0x24377: 0x6cac8a20, - 0x2437f: 0x6c4b9c20, - // Block 0x90e, offset 0x24380 - 0x24380: 0x6cda6a20, 0x24381: 0x6c9ba020, 0x24382: 0x6cfc5220, 0x24383: 0x6c906e20, - 0x24385: 0x6cb80220, - 0x2438b: 0x6c164a20, - 0x2438c: 0x6d195c20, 0x2438d: 0x6c4f8e20, 0x2438f: 0x6c88e020, - 0x24390: 0x6c49c220, 0x24392: 0x6cf06020, - 0x24397: 0x6c752020, - 0x24398: 0x6c829c20, 0x24399: 0x6c946620, 0x2439a: 0x6c87a620, - 0x2439c: 0x6cb03e20, - 0x243a2: 0x6c58e820, - 0x243ae: 0x6c4a5820, - 0x243b3: 0x6c713420, - 0x243b6: 0x6c2aa220, - 0x243ba: 0x6c3ad220, - // Block 0x90f, offset 0x243c0 - 0x243c1: 0x6d338e20, 0x243c3: 0x6c9a7a20, - 0x243c5: 0x6c58f420, - 0x243c9: 0x6cabba20, 0x243ca: 0x6c08c420, - 0x243cc: 0x6cb30020, - 0x243d3: 0x6c374220, - 0x243d5: 0x6c58fc20, - 0x243e3: 0x6c170c20, - 0x243e5: 0x6c95fc20, 0x243e6: 0x6c3d2820, - 0x243ef: 0x6c1db220, - 0x243f1: 0x6d40c020, 0x243f2: 0x6ca3fe20, 0x243f3: 0x6cffae20, - 0x243f9: 0x6c044820, 0x243fa: 0x6c926620, - 0x243fc: 0x6c961220, 0x243ff: 0x6ca76620, - // Block 0x910, offset 0x24400 - 0x24400: 0x6d2ad020, - 0x24404: 0x6d3b0a20, 0x24405: 0x6c557420, - 0x24408: 0x6c5ad820, 0x24409: 0x6ce17c20, 0x2440a: 0x6c1dca20, - 0x24411: 0x6c59e020, 0x24412: 0x6c30b820, - 0x2441b: 0x6c9eba20, - 0x2441d: 0x6c0f5a20, - 0x24420: 0x6c2ca420, 0x24422: 0x6c2ad020, 0x24423: 0x6cb41620, - 0x24425: 0x6cd94020, 0x24426: 0x6c1dec20, - 0x2442b: 0x6d123c20, - 0x2442c: 0x6c9bf020, 0x2442d: 0x6c8fc820, - 0x24432: 0x6c888220, - 0x24435: 0x6c0d0620, - 0x2443a: 0x6c93c220, - 0x2443f: 0x6ccba020, - // Block 0x911, offset 0x24440 - 0x24440: 0x6d425820, - 0x24444: 0x6c25aa20, 0x24445: 0x6c8de420, 0x24446: 0x6d331a20, 0x24447: 0x6cb05220, - 0x24448: 0x6c05c220, 0x2444b: 0x6cc3a420, - 0x2444e: 0x6caf4a20, 0x2444f: 0x6ca44220, - 0x24450: 0x6caf4c20, 0x24451: 0x6c0fe220, 0x24452: 0x6c06f020, 0x24453: 0x6c37e820, - 0x24455: 0x6c9fa620, 0x24456: 0x6ca0f220, 0x24457: 0x6cec2420, - 0x24458: 0x6d2f6020, 0x24459: 0x6d35c220, 0x2445a: 0x6c240c20, - 0x2445f: 0x6d0a0620, - 0x24460: 0x6c602020, 0x24461: 0x6c4b4420, 0x24463: 0x6c19ea20, - 0x24467: 0x6c4ec620, - 0x24468: 0x6cfff220, 0x24469: 0x6cc3c020, 0x2446b: 0x6c21be20, - 0x2446d: 0x6c3f6420, - 0x24473: 0x6cbdde20, - 0x24474: 0x6c926820, 0x24475: 0x6cc3d020, 0x24476: 0x6c2d1e20, 0x24477: 0x6cb8f020, - 0x2447c: 0x6c16ee20, 0x2447d: 0x6cde6220, 0x2447e: 0x6c06ae20, - // Block 0x912, offset 0x24480 - 0x24481: 0x6c326c20, 0x24482: 0x6c082620, 0x24483: 0x6c547820, - 0x24488: 0x6d2c8420, 0x24489: 0x6d2c8620, - 0x2448e: 0x6cc3ee20, 0x2448f: 0x6c967620, - 0x24490: 0x6c4e2c20, 0x24493: 0x6c8e8620, - 0x24494: 0x6c92d020, 0x24496: 0x6d3e8c20, - 0x24498: 0x6cb07020, 0x24499: 0x6d395220, 0x2449b: 0x6d2a2420, - 0x2449d: 0x6ca9a020, - 0x244a0: 0x6c5c5620, 0x244a3: 0x6d092020, - 0x244a5: 0x6c7ea020, - 0x244ab: 0x6caa0620, - 0x244ac: 0x6d0dfa20, 0x244ad: 0x6cc4d820, 0x244ae: 0x6ca52220, - 0x244b0: 0x6c7eb420, 0x244b1: 0x6c4a1220, 0x244b2: 0x6c31e220, - 0x244b5: 0x6c919020, - 0x244b9: 0x6c663c20, 0x244ba: 0x6d028c20, 0x244bb: 0x6cb80e20, - 0x244be: 0x6cfe7420, - // Block 0x913, offset 0x244c0 - 0x244c1: 0x6c4cb020, 0x244c2: 0x6c6a8420, 0x244c3: 0x6c98b620, - 0x244c6: 0x6cf95820, 0x244c7: 0x6c7c3620, - 0x244ce: 0x6d1e7620, - 0x244d0: 0x6c4d3c20, 0x244d1: 0x6c9d3220, 0x244d2: 0x6d11fc20, - 0x244d5: 0x6cf14c20, - 0x244df: 0x6c85f220, - 0x244e0: 0x6c735820, 0x244e1: 0x6cf36420, 0x244e2: 0x6cbbda20, - 0x244ee: 0x6c2e2a20, 0x244ef: 0x6c1f4220, - 0x244f2: 0x6cdd1c20, - 0x244f5: 0x6c1cc420, - 0x244f8: 0x6cc2a020, 0x244f9: 0x6ccf5e20, - // Block 0x914, offset 0x24500 - 0x24502: 0x6c9bd820, 0x24503: 0x6c726820, - 0x2450b: 0x6ce8e620, - 0x24512: 0x6ca9c020, 0x24513: 0x6ca07a20, - 0x24519: 0x6c3bee20, - 0x24522: 0x6c027020, 0x24523: 0x6c4c3e20, - 0x24524: 0x6c55b420, 0x24525: 0x6c11b820, 0x24526: 0x6c33b220, 0x24527: 0x6c4d4820, - 0x24528: 0x6c694e20, - 0x24530: 0x6c473a20, - 0x24535: 0x6c6c6020, - 0x24538: 0x6d0fe420, - // Block 0x915, offset 0x24540 - 0x24540: 0x6c145020, - 0x2454c: 0x6c5b0820, - 0x24554: 0x6cc20c20, 0x24555: 0x6c784420, - 0x2455f: 0x6cbe6620, - 0x24560: 0x6d197a20, 0x24563: 0x6c767a20, - 0x24564: 0x6c68b820, 0x24567: 0x6c1d6220, - 0x24568: 0x6c103020, 0x24569: 0x6c44ae20, 0x2456a: 0x6c682620, 0x2456b: 0x6d339020, - 0x2456e: 0x6cf20020, - 0x24570: 0x6c0d2220, - 0x24574: 0x6d048820, 0x24575: 0x6c393020, - 0x24578: 0x6d147620, 0x24579: 0x6c203020, 0x2457a: 0x6d11ee20, - 0x2457d: 0x6d0f4c20, 0x2457e: 0x6c324020, 0x2457f: 0x6d0d4a20, - // Block 0x916, offset 0x24580 - 0x24581: 0x6c9b0a20, - 0x24587: 0x6c1a9620, - 0x24588: 0x6ca27420, 0x24589: 0x6c683420, 0x2458b: 0x6caa7a20, - 0x2458d: 0x6c4c6420, 0x2458e: 0x6d094a20, - 0x24591: 0x6c3e1c20, 0x24592: 0x6d08dc20, 0x24593: 0x6c3d4c20, - 0x24594: 0x6cae1020, 0x24595: 0x6ca0ea20, 0x24596: 0x6cf5a820, 0x24597: 0x6cf2dc20, - 0x24598: 0x6ccd3620, 0x2459b: 0x6cf5aa20, - 0x2459c: 0x6cb75a20, 0x2459d: 0x6c9e5220, - 0x245a6: 0x6c282820, - 0x245a8: 0x6c1e2820, - 0x245b1: 0x6c3a9c20, 0x245b2: 0x6c9ec820, - 0x245b4: 0x6d095020, 0x245b5: 0x6d06ae20, 0x245b6: 0x6cd7dc20, 0x245b7: 0x6c71b220, - 0x245b8: 0x6c993420, 0x245b9: 0x6c063e20, 0x245bb: 0x6d14d220, - 0x245bc: 0x6c485020, 0x245bd: 0x6ca69220, 0x245bf: 0x6d14d420, - // Block 0x917, offset 0x245c0 - 0x245c1: 0x6d429020, - 0x245c4: 0x6caa5420, - 0x245d1: 0x6c2d4820, 0x245d2: 0x6c393c20, 0x245d3: 0x6d173a20, - 0x245d4: 0x6cd35a20, 0x245d7: 0x6c240e20, - 0x245d8: 0x6d31ce20, - 0x245de: 0x6cd36a20, 0x245df: 0x6c68e620, - 0x245e0: 0x6c546a20, 0x245e1: 0x6c375020, - 0x245e6: 0x6c833220, 0x245e7: 0x6d095420, - 0x245e8: 0x6c452c20, 0x245ea: 0x6cd43220, - 0x245ec: 0x6c72ec20, - 0x245f4: 0x6c6ab820, 0x245f5: 0x6cef0020, 0x245f7: 0x6cd44620, - 0x245f8: 0x6c6e7620, 0x245fa: 0x6d061c20, 0x245fb: 0x6c1d4c20, - // Block 0x918, offset 0x24600 - 0x24605: 0x6c675e20, 0x24606: 0x6ca20a20, - 0x24609: 0x6d231a20, - 0x2460c: 0x6c745220, - 0x24611: 0x6ce6ea20, - 0x24614: 0x6cfec420, 0x24616: 0x6c30ac20, - 0x24618: 0x6c4c6c20, 0x24619: 0x6c986220, 0x2461a: 0x6cedcc20, 0x2461b: 0x6d06de20, - 0x2461c: 0x6cee5420, 0x2461d: 0x6cdd2020, 0x2461e: 0x6c736620, 0x2461f: 0x6d26b820, - 0x24621: 0x6c4e1620, 0x24623: 0x6ccfec20, - 0x24625: 0x6d00ac20, 0x24626: 0x6c8e5a20, 0x24627: 0x6cc8f020, - 0x2462f: 0x6c09a620, - 0x24632: 0x6ca53220, - 0x24636: 0x6ced8420, 0x24637: 0x6c700020, - 0x24638: 0x6cc38c20, - // Block 0x919, offset 0x24640 - 0x24644: 0x6ca6a220, 0x24646: 0x6c9c5220, 0x24647: 0x6cdd2220, - 0x24649: 0x6cbb4020, - 0x2464c: 0x6c4ed220, 0x2464d: 0x6d3d6c20, 0x2464e: 0x6c9c5e20, 0x2464f: 0x6d06f820, - 0x24651: 0x6c810420, 0x24652: 0x6c6aee20, 0x24653: 0x6c2faa20, - 0x24654: 0x6c171820, 0x24655: 0x6d365e20, 0x24656: 0x6c3a0c20, 0x24657: 0x6c63cc20, - 0x24658: 0x6c75cc20, 0x24659: 0x6c5dde20, 0x2465a: 0x6cb4fe20, 0x2465b: 0x6c70a620, - 0x2465c: 0x6d3cd420, 0x2465e: 0x6c2d6420, 0x2465f: 0x6c690c20, - 0x24660: 0x6d0af220, 0x24662: 0x6d2dfa20, - 0x2466d: 0x6d33f220, 0x2466f: 0x6c973620, - 0x24670: 0x6c54da20, 0x24671: 0x6d01ca20, 0x24672: 0x6cd27420, 0x24673: 0x6c4a7220, - 0x2467f: 0x6d06fa20, - // Block 0x91a, offset 0x24680 - 0x24682: 0x6c606a20, - 0x24684: 0x6c20b020, 0x24686: 0x6c99a220, 0x24687: 0x6cc84220, - 0x24688: 0x6d05bc20, 0x24689: 0x6c594620, 0x2468a: 0x6ccc6420, 0x2468b: 0x6c71c820, - 0x2468f: 0x6c7c0020, - 0x24691: 0x6c542020, 0x24692: 0x6c491e20, 0x24693: 0x6c486a20, - 0x24695: 0x6c9c6420, 0x24696: 0x6c2ed020, 0x24697: 0x6c0a0020, - 0x24698: 0x6c899820, 0x24699: 0x6c7e8620, 0x2469a: 0x6ccd5220, 0x2469b: 0x6c928c20, - 0x2469c: 0x6cf8b420, 0x2469f: 0x6cda2220, - 0x246ac: 0x6cab4220, 0x246ae: 0x6c838020, - 0x246b7: 0x6c7a5020, - 0x246b8: 0x6c4a7c20, 0x246bb: 0x6cf67a20, - 0x246bc: 0x6cac6c20, 0x246bd: 0x6ccb4c20, 0x246be: 0x6c754e20, 0x246bf: 0x6c53d020, - // Block 0x91b, offset 0x246c0 - 0x246c0: 0x6c49a220, 0x246c1: 0x6c727c20, 0x246c3: 0x6ca3d220, - 0x246c4: 0x6c575020, 0x246c5: 0x6c442220, 0x246c6: 0x6c866020, 0x246c7: 0x6c46d020, - 0x246c8: 0x6ce41420, 0x246ca: 0x6c96d820, 0x246cb: 0x6ce2ae20, - 0x246cc: 0x6c26ba20, - 0x246d0: 0x6cb52420, 0x246d1: 0x6d23c620, 0x246d2: 0x6c693020, 0x246d3: 0x6c9ee620, - 0x246d4: 0x6c451820, 0x246d5: 0x6c9c0e20, 0x246d6: 0x6cf0c020, - 0x246d8: 0x6ce36620, 0x246d9: 0x6cb63a20, - 0x246dc: 0x6c18e620, 0x246dd: 0x6c30c220, 0x246df: 0x6cac6e20, - 0x246f0: 0x6c4efc20, - 0x246f4: 0x6c9d8a20, 0x246f5: 0x6c967820, 0x246f6: 0x6c92d220, 0x246f7: 0x6cb53020, - 0x246f8: 0x6c795220, 0x246fa: 0x6c2ee820, 0x246fb: 0x6cb7d820, - 0x246fc: 0x6c687c20, 0x246fd: 0x6c774e20, 0x246fe: 0x6cbbb020, 0x246ff: 0x6c9d8c20, - // Block 0x91c, offset 0x24700 - 0x24700: 0x6ccd0c20, - 0x24707: 0x6c64da20, - 0x24708: 0x6c843c20, 0x24709: 0x6c78d620, 0x2470a: 0x6d073c20, - 0x24711: 0x6c977a20, 0x24712: 0x6c3cf420, 0x24713: 0x6c163420, - 0x24714: 0x6c5b6420, - 0x24727: 0x6c7a0420, - 0x2472a: 0x6cf02c20, 0x2472b: 0x6c49a820, - 0x2472c: 0x6c60c220, 0x2472d: 0x6d421c20, 0x2472e: 0x6c5e0a20, 0x2472f: 0x6d00fe20, - 0x24734: 0x6cdc8420, 0x24736: 0x6cc88220, - 0x24738: 0x6ce28620, - 0x2473c: 0x6d336820, 0x2473d: 0x6c7d8820, 0x2473e: 0x6cfe0020, 0x2473f: 0x6c9dda20, - // Block 0x91d, offset 0x24740 - 0x24741: 0x6cf8f020, - 0x2474c: 0x6cc94820, - 0x24759: 0x6c36c620, 0x2475a: 0x6c9efe20, 0x2475b: 0x6d3a8820, - 0x2475c: 0x6d406c20, 0x2475d: 0x6c9bec20, 0x2475f: 0x6cf70620, - 0x24761: 0x6ce14e20, 0x24763: 0x6c645220, - 0x24764: 0x6c16d020, 0x24765: 0x6c60dc20, - 0x2476e: 0x6d3dbc20, - 0x2477f: 0x6c520420, - // Block 0x91e, offset 0x24780 - 0x24780: 0x6c141020, 0x24781: 0x6cb7fc20, 0x24782: 0x6c9dea20, 0x24783: 0x6d320220, - 0x24784: 0x6c7a6c20, 0x24785: 0x6d138220, 0x24786: 0x6d38c020, - 0x24788: 0x6c652020, 0x2478a: 0x6cacc220, - 0x2478d: 0x6c5b0220, 0x2478f: 0x6ca02220, - 0x24790: 0x6c8f5020, - 0x24798: 0x6cd73420, 0x2479a: 0x6c974a20, 0x2479b: 0x6c849c20, - 0x2479e: 0x6cd7ae20, 0x2479f: 0x6d159020, - 0x247a4: 0x6c872c20, - 0x247a8: 0x6d005e20, 0x247a9: 0x6ce28a20, 0x247aa: 0x6d051020, - 0x247ad: 0x6d08ce20, 0x247ae: 0x6c874820, 0x247af: 0x6c9ba220, - 0x247b0: 0x6cef6a20, 0x247b1: 0x6c9ba420, - 0x247ba: 0x6d124e20, 0x247bb: 0x6c7ffe20, - 0x247bc: 0x6c8da020, 0x247bd: 0x6d1c3820, 0x247be: 0x6d1c3a20, 0x247bf: 0x6c876c20, - // Block 0x91f, offset 0x247c0 - 0x247c0: 0x6c662820, 0x247c1: 0x6c4aaa20, - 0x247c5: 0x6c494020, 0x247c6: 0x6d028220, - 0x247c9: 0x6ccf9220, 0x247cb: 0x6d418420, - 0x247d3: 0x6c771e20, - 0x247d4: 0x6c82a820, - 0x247da: 0x6c0bde20, - 0x247dd: 0x6cd54e20, 0x247de: 0x6caa7820, 0x247df: 0x6d069a20, - 0x247e3: 0x6c503020, - 0x247e8: 0x6c4af220, 0x247ea: 0x6d2d4020, 0x247eb: 0x6c80c620, - 0x247ec: 0x6c248e20, 0x247ed: 0x6d363620, 0x247ee: 0x6c3ca820, 0x247ef: 0x6cbd3220, - 0x247f1: 0x6d2acc20, 0x247f2: 0x6ca35420, 0x247f3: 0x6ca99a20, - 0x247f4: 0x6d17f420, 0x247f7: 0x6c232c20, - 0x247f8: 0x6cd1e020, 0x247f9: 0x6c65c220, 0x247fa: 0x6d3fa420, 0x247fb: 0x6d0db820, - 0x247fc: 0x6d1bd620, - // Block 0x920, offset 0x24800 - 0x24800: 0x6cc86e20, 0x24802: 0x6cc6a420, 0x24803: 0x6cf8cc20, - 0x24805: 0x6c492420, 0x24806: 0x6c769420, - 0x24808: 0x6cf51420, 0x2480a: 0x6cbda820, 0x2480b: 0x6c235820, - 0x2480d: 0x6d2b0620, 0x2480e: 0x6d024220, - 0x24810: 0x6d241020, 0x24811: 0x6d29a020, 0x24812: 0x6c206620, 0x24813: 0x6c853c20, - 0x24814: 0x6c853e20, 0x24815: 0x6d075020, 0x24816: 0x6c9c9020, 0x24817: 0x6d075420, - 0x24818: 0x6cc88c20, 0x2481b: 0x6c4b9420, - 0x2481c: 0x6cc73020, 0x2481f: 0x6c991420, - 0x24821: 0x6cbdbe20, 0x24822: 0x6c24be20, 0x24823: 0x6c24c020, - 0x24824: 0x6c24c620, - 0x2482e: 0x6cf35a20, - 0x24830: 0x6c383220, 0x24831: 0x6c037620, - 0x24838: 0x6cb85820, 0x24839: 0x6d35ee20, 0x2483a: 0x6ce5d420, - // Block 0x921, offset 0x24840 - 0x24844: 0x6d35f020, 0x24845: 0x6d345a20, 0x24847: 0x6c591420, - 0x24848: 0x6c1da420, 0x2484a: 0x6d35f220, - 0x2484e: 0x6d1cf020, - 0x24852: 0x6cf4f020, 0x24853: 0x6c06a420, - 0x24855: 0x6c534c20, 0x24856: 0x6cd06420, - 0x24858: 0x6c746620, 0x24859: 0x6c7d0420, - 0x2485c: 0x6d15f820, 0x2485d: 0x6d0bbe20, - 0x24860: 0x6c087c20, - 0x24864: 0x6c7aea20, 0x24865: 0x6cb8f220, - 0x24868: 0x6d2f6620, 0x2486a: 0x6c766820, 0x2486b: 0x6cce1220, - 0x2486e: 0x6c01ca20, 0x2486f: 0x6d307020, - 0x24870: 0x6d369420, - 0x24877: 0x6d36b620, - 0x24879: 0x6c693220, - // Block 0x922, offset 0x24880 - 0x24880: 0x6cd83020, 0x24881: 0x6cb45c20, 0x24882: 0x6cab9420, - 0x2488a: 0x6d3dbe20, - 0x24891: 0x6d1c3c20, 0x24893: 0x6c584a20, - 0x24895: 0x6d0b6e20, - 0x24898: 0x6cd23c20, 0x24899: 0x6cabb220, 0x2489a: 0x6cb48420, - 0x2489e: 0x6c983c20, 0x2489f: 0x6c146220, - 0x248a9: 0x6d278e20, - 0x248ac: 0x6c476a20, - 0x248b9: 0x6c282a20, 0x248bb: 0x6ca4a020, - 0x248bd: 0x6d302620, 0x248bf: 0x6c552c20, - // Block 0x923, offset 0x248c0 - 0x248c5: 0x6c792c20, 0x248c7: 0x6c2e8c20, - 0x248c8: 0x6ce63c20, 0x248cb: 0x6c48ee20, - 0x248ce: 0x6cbef020, 0x248cf: 0x6cd2ca20, - 0x248d0: 0x6c640c20, 0x248d1: 0x6c02ca20, 0x248d2: 0x6ca2f620, 0x248d3: 0x6cb23a20, - 0x248d4: 0x6c63b220, - 0x248e1: 0x6d30ec20, 0x248e2: 0x6c108620, 0x248e3: 0x6cf2b020, - 0x248e5: 0x6c141e20, - 0x248ea: 0x6ca4a420, 0x248eb: 0x6c76c620, - 0x248ef: 0x6c319220, - 0x248f0: 0x6c48f020, 0x248f1: 0x6cbf0e20, 0x248f3: 0x6cc66a20, - 0x248f4: 0x6d15e820, 0x248f5: 0x6c32fe20, 0x248f6: 0x6c82c020, - 0x248f8: 0x6d387a20, 0x248f9: 0x6c7ac220, 0x248fa: 0x6c354020, 0x248fb: 0x6cfa9e20, - 0x248fc: 0x6c2d5420, 0x248fd: 0x6caaf020, 0x248fe: 0x6c361620, 0x248ff: 0x6d1d8620, - // Block 0x924, offset 0x24900 - 0x24900: 0x6cf4e220, 0x24901: 0x6c793a20, - 0x24913: 0x6d35f420, - 0x24917: 0x6d351c20, - 0x24918: 0x6d0a0820, 0x2491b: 0x6d334a20, - 0x2491e: 0x6d0fae20, - 0x24920: 0x6c5dc420, 0x24921: 0x6c602220, 0x24922: 0x6ca4f020, - 0x24927: 0x6d0ba020, - 0x24928: 0x6c924620, 0x2492b: 0x6c3d7220, - 0x2492c: 0x6cca1c20, 0x2492d: 0x6c1f4420, 0x2492e: 0x6cefca20, - 0x24930: 0x6c3f6820, 0x24931: 0x6c794020, 0x24932: 0x6cd8c020, 0x24933: 0x6c778620, - 0x24935: 0x6d17b020, 0x24936: 0x6c579a20, - 0x2493e: 0x6d225e20, - // Block 0x925, offset 0x24940 - 0x24943: 0x6c861420, - 0x24946: 0x6c8c2020, 0x24947: 0x6c321e20, - 0x24948: 0x6c363c20, - 0x2494c: 0x6cbb4220, 0x2494d: 0x6c31a620, - 0x24950: 0x6c6af020, 0x24951: 0x6c21c620, 0x24952: 0x6cfcd420, - 0x24956: 0x6c430a20, - 0x2496c: 0x6c2a1e20, - 0x24970: 0x6c52b420, - 0x2497b: 0x6d3fa620, - 0x2497e: 0x6cb7b620, 0x2497f: 0x6ceb3820, - // Block 0x926, offset 0x24980 - 0x24980: 0x6c52b820, 0x24981: 0x6cb06420, 0x24982: 0x6c453c20, - 0x24984: 0x6ca85020, 0x24987: 0x6c798420, - 0x2498a: 0x6d354620, - 0x24991: 0x6cffb420, - 0x249a1: 0x6ccf6620, 0x249a2: 0x6d217620, 0x249a3: 0x6c676a20, - 0x249a9: 0x6cb70a20, 0x249aa: 0x6c190a20, 0x249ab: 0x6cca8220, - 0x249ad: 0x6cdd8e20, 0x249ae: 0x6cb9bc20, 0x249af: 0x6c5c1a20, - 0x249b1: 0x6ccda020, 0x249b2: 0x6c368c20, - 0x249bb: 0x6cbfbc20, - 0x249bd: 0x6c78ca20, - // Block 0x927, offset 0x249c0 - 0x249c0: 0x6cf23420, 0x249c1: 0x6d3e7c20, 0x249c2: 0x6c608e20, - 0x249c7: 0x6c26e220, - 0x249c9: 0x6c263620, - 0x249cd: 0x6c90f620, 0x249ce: 0x6c775020, 0x249cf: 0x6c7e1220, - 0x249d0: 0x6c2b8e20, 0x249d1: 0x6cbc7e20, 0x249d3: 0x6ca16420, - 0x249d6: 0x6c4cce20, 0x249d7: 0x6c52c620, - 0x249d8: 0x6c177c20, 0x249d9: 0x6c522620, - 0x249e2: 0x6c129020, 0x249e3: 0x6d308c20, - 0x249e6: 0x6c4bea20, - 0x249f0: 0x6d05ec20, 0x249f1: 0x6caece20, 0x249f2: 0x6c74ca20, - 0x249f5: 0x6c41ee20, 0x249f6: 0x6cd83220, - 0x249f8: 0x6cdc8620, 0x249f9: 0x6cc40420, 0x249fb: 0x6cf3f220, - 0x249fc: 0x6d0cda20, 0x249fd: 0x6caf1820, 0x249fe: 0x6cffc420, 0x249ff: 0x6cac4820, - // Block 0x928, offset 0x24a00 - 0x24a0d: 0x6c7e9e20, - 0x24a17: 0x6c085a20, - 0x24a18: 0x6d320020, 0x24a19: 0x6c60de20, - 0x24a1c: 0x6c6cc020, 0x24a1d: 0x6c887420, 0x24a1e: 0x6c791220, - 0x24a20: 0x6d38d620, - 0x24a28: 0x6d2a9620, 0x24a2a: 0x6c822e20, 0x24a2b: 0x6cb54820, - 0x24a2c: 0x6c0e3820, - 0x24a35: 0x6d1b1c20, 0x24a36: 0x6cb1f620, - 0x24a3b: 0x6cda3820, - 0x24a3c: 0x6c941620, 0x24a3e: 0x6c2bb420, 0x24a3f: 0x6c31e420, - // Block 0x929, offset 0x24a40 - 0x24a40: 0x6c8a8820, 0x24a41: 0x6d3dd620, - 0x24a4a: 0x6c16fc20, - 0x24a52: 0x6c194020, 0x24a53: 0x6cdee020, - 0x24a59: 0x6cc41e20, 0x24a5a: 0x6c2a4c20, - 0x24a5d: 0x6cc51020, 0x24a5f: 0x6cb3ba20, - 0x24a66: 0x6d37e020, 0x24a67: 0x6d006020, - 0x24a6a: 0x6c679620, 0x24a6b: 0x6cc21820, - 0x24a6c: 0x6c831020, 0x24a6d: 0x6c10f020, 0x24a6e: 0x6cc39a20, - 0x24a75: 0x6cfe7220, 0x24a76: 0x6c836820, - 0x24a7a: 0x6c809620, - 0x24a7f: 0x6c7e6820, - // Block 0x92a, offset 0x24a80 - 0x24a81: 0x6c7e6a20, - 0x24a84: 0x6d24b420, - 0x24a8a: 0x6c697e20, 0x24a8b: 0x6cbd4e20, - 0x24a8c: 0x6c5e7e20, 0x24a8f: 0x6c41c820, - 0x24a92: 0x6d169220, - 0x24aa0: 0x6d16c820, 0x24aa1: 0x6d339e20, - 0x24aa4: 0x6c0c6e20, 0x24aa5: 0x6cd0e620, 0x24aa6: 0x6c6fd820, - 0x24aab: 0x6c509420, - 0x24aac: 0x6c3e2020, 0x24aae: 0x6c706620, - // Block 0x92b, offset 0x24ac0 - 0x24ac0: 0x6d426620, 0x24ac1: 0x6d14ac20, - 0x24ac6: 0x6cfc9420, 0x24ac7: 0x6d14ae20, - 0x24ac9: 0x6cd8a220, 0x24acb: 0x6c20f220, - 0x24ace: 0x6ca0fa20, - 0x24ae1: 0x6d2d6c20, 0x24ae3: 0x6d0a0020, - 0x24ae6: 0x6cc79a20, - 0x24ae8: 0x6c5db020, - 0x24aec: 0x6cce6a20, - 0x24af0: 0x6cd46620, - 0x24afe: 0x6d203e20, 0x24aff: 0x6d231c20, - // Block 0x92c, offset 0x24b00 - 0x24b02: 0x6c75b420, - 0x24b09: 0x6d3e4220, 0x24b0a: 0x6c925c20, - 0x24b1a: 0x6c1baa20, 0x24b1b: 0x6c7d6620, - 0x24b20: 0x6d3ce420, - 0x24b26: 0x6c541420, - 0x24b29: 0x6d064420, - 0x24b3e: 0x6d3f9c20, 0x24b3f: 0x6d1d4220, - // Block 0x92d, offset 0x24b40 - 0x24b42: 0x6d39b020, - 0x24b45: 0x6c8f3a20, - 0x24b51: 0x6caa6820, - 0x24b58: 0x6c0a3020, 0x24b5a: 0x6c1c5e20, - 0x24b5c: 0x6d412420, 0x24b5d: 0x6c3cb820, 0x24b5e: 0x6c92aa20, 0x24b5f: 0x6cb49220, - 0x24b65: 0x6d3bdc20, 0x24b67: 0x6d308020, - 0x24b68: 0x6cd1ec20, 0x24b69: 0x6d227e20, 0x24b6a: 0x6c92ac20, 0x24b6b: 0x6c896820, - 0x24b6f: 0x6c74c020, - 0x24b70: 0x6c8aa620, 0x24b71: 0x6c080820, - // Block 0x92e, offset 0x24b80 - 0x24b83: 0x6d18ce20, - 0x24b84: 0x6c492820, - 0x24b8c: 0x6c02ae20, 0x24b8f: 0x6c4b8220, - 0x24b90: 0x6c9fce20, 0x24b92: 0x6d0dec20, 0x24b93: 0x6c7fd220, - 0x24b96: 0x6c0f9220, - 0x24b99: 0x6d29a620, 0x24b9a: 0x6d1ffe20, - 0x24ba5: 0x6d194420, 0x24ba6: 0x6ca66020, - 0x24bac: 0x6ca66620, 0x24bad: 0x6c4ce020, 0x24bae: 0x6c760a20, - 0x24bb0: 0x6cd21820, 0x24bb2: 0x6cfc5c20, - 0x24bb4: 0x6cb95e20, 0x24bb5: 0x6cc42020, 0x24bb6: 0x6c7cc420, - // Block 0x92f, offset 0x24bc0 - 0x24bc0: 0x6ccf1620, 0x24bc2: 0x6c5dd620, - 0x24bc4: 0x6ced8e20, - 0x24bca: 0x6c3af220, 0x24bcb: 0x6c3b0020, - 0x24bcd: 0x6d22c420, - 0x24bd1: 0x6d339220, 0x24bd2: 0x6c48a420, - 0x24bd4: 0x6c6a8620, 0x24bd5: 0x6c983e20, 0x24bd6: 0x6c50cc20, - 0x24bd8: 0x6d1fa820, - 0x24bdf: 0x6c324220, - 0x24be0: 0x6cd7d220, 0x24be2: 0x6c859420, - 0x24be5: 0x6c6a9420, 0x24be6: 0x6ca98a20, 0x24be7: 0x6c03ac20, - 0x24be8: 0x6d20de20, - 0x24bee: 0x6d33b220, - 0x24bf8: 0x6c50e020, 0x24bf9: 0x6c77e820, - 0x24bfe: 0x6c324a20, 0x24bff: 0x6c634820, - // Block 0x930, offset 0x24c00 - 0x24c01: 0x6c186020, 0x24c03: 0x6c20f420, - 0x24c04: 0x6c50f820, 0x24c05: 0x6d2d2620, - 0x24c0a: 0x6c9a8c20, - 0x24c0d: 0x6c50fa20, 0x24c0e: 0x6d3f0420, 0x24c0f: 0x6d3a0620, - 0x24c12: 0x6ceb0e20, - 0x24c18: 0x6d421820, 0x24c1a: 0x6cc7a220, 0x24c1b: 0x6c34ee20, - 0x24c1c: 0x6c67e020, - 0x24c27: 0x6c526420, - 0x24c29: 0x6c07e620, 0x24c2a: 0x6ca10820, - 0x24c2f: 0x6d40ba20, - 0x24c32: 0x6c0caa20, - 0x24c34: 0x6c7a9820, 0x24c35: 0x6c63c020, - 0x24c3a: 0x6d3d0420, - 0x24c3c: 0x6d04d620, - // Block 0x931, offset 0x24c40 - 0x24c43: 0x6c512820, - 0x24c45: 0x6cbb7220, - 0x24c4d: 0x6c3a5c20, 0x24c4e: 0x6cd10a20, - 0x24c52: 0x6d3c9620, 0x24c53: 0x6c7b6a20, - 0x24c54: 0x6d2b5420, 0x24c55: 0x6cfaae20, 0x24c57: 0x6c09d620, - 0x24c58: 0x6d17f620, 0x24c5a: 0x6c171a20, - 0x24c6a: 0x6c999a20, - 0x24c76: 0x6ced3020, - 0x24c7d: 0x6cf37620, 0x24c7e: 0x6c7a5220, 0x24c7f: 0x6cf2be20, - // Block 0x932, offset 0x24c80 - 0x24c80: 0x6d038a20, 0x24c81: 0x6c781620, 0x24c83: 0x6c6f8220, - 0x24c84: 0x6c329c20, 0x24c85: 0x6c594820, - 0x24c88: 0x6d369620, 0x24c89: 0x6c130620, 0x24c8a: 0x6cc75a20, 0x24c8b: 0x6c606e20, - 0x24c8d: 0x6d131a20, - 0x24c9b: 0x6c6dca20, - 0x24c9c: 0x6d106220, - 0x24ca1: 0x6d400220, - 0x24ca9: 0x6c11d620, - 0x24cb1: 0x6cd81c20, 0x24cb2: 0x6c866220, 0x24cb3: 0x6c47c620, - 0x24cb4: 0x6c172220, 0x24cb6: 0x6c3a6820, 0x24cb7: 0x6c8e8a20, - 0x24cb9: 0x6c6b1e20, 0x24cba: 0x6d276020, - 0x24cbd: 0x6d36ba20, - // Block 0x933, offset 0x24cc0 - 0x24cc0: 0x6c1dd220, 0x24cc1: 0x6c0cbc20, - 0x24cd2: 0x6c5f1a20, - 0x24cdc: 0x6c955220, 0x24cdd: 0x6c64f820, 0x24cdf: 0x6c206020, - 0x24ce0: 0x6cd6de20, 0x24ce2: 0x6c93fe20, 0x24ce3: 0x6c75ea20, - 0x24ce4: 0x6c69c820, 0x24ce6: 0x6ce42020, 0x24ce7: 0x6d2c0020, - 0x24cea: 0x6d18a820, - 0x24cec: 0x6c235a20, 0x24ced: 0x6ca57420, 0x24cee: 0x6c638220, - 0x24cf4: 0x6c627c20, - 0x24cfd: 0x6c00ce20, - // Block 0x934, offset 0x24d00 - 0x24d07: 0x6c65d820, - 0x24d0a: 0x6c07ca20, - 0x24d0c: 0x6c38c620, 0x24d0d: 0x6cdc8a20, 0x24d0e: 0x6d421e20, - 0x24d10: 0x6c42e420, 0x24d11: 0x6c432420, 0x24d12: 0x6c817e20, - 0x24d14: 0x6d3db620, - 0x24d1f: 0x6c56ca20, - 0x24d22: 0x6ce9c420, - 0x24d26: 0x6c0a7420, 0x24d27: 0x6c716420, - 0x24d2e: 0x6c575a20, - 0x24d32: 0x6c1a4a20, - 0x24d36: 0x6c7b4220, 0x24d37: 0x6c291420, - 0x24d38: 0x6c444c20, 0x24d39: 0x6d011420, 0x24d3b: 0x6c6b6220, - 0x24d3d: 0x6c117620, - // Block 0x935, offset 0x24d40 - 0x24d46: 0x6d40ec20, - 0x24d48: 0x6cb46820, 0x24d4b: 0x6cd57c20, - 0x24d4c: 0x6c104820, - 0x24d57: 0x6ca93220, - 0x24d58: 0x6d0dfc20, 0x24d59: 0x6d396020, 0x24d5b: 0x6c9b8420, - 0x24d5d: 0x6c0b5e20, 0x24d5f: 0x6cfe6420, - 0x24d64: 0x6c931c20, 0x24d65: 0x6c849020, - 0x24d69: 0x6c62ca20, 0x24d6b: 0x6c9f0a20, - 0x24d6c: 0x6c835620, 0x24d6e: 0x6d375820, 0x24d6f: 0x6d1ecc20, - 0x24d70: 0x6c0b6020, - 0x24d78: 0x6ca2bc20, 0x24d79: 0x6cc4da20, - // Block 0x936, offset 0x24d80 - 0x24d82: 0x6ca7c620, - 0x24d8a: 0x6cc33a20, 0x24d8b: 0x6d30c620, - 0x24d90: 0x6c836620, - 0x24d97: 0x6c294820, - 0x24d98: 0x6c752e20, - 0x24d9c: 0x6c8dc420, 0x24d9e: 0x6c8de820, 0x24d9f: 0x6d0d2620, - 0x24da3: 0x6d118620, - 0x24da4: 0x6d321220, 0x24da5: 0x6cb4ce20, 0x24da6: 0x6c008a20, - 0x24da8: 0x6caa3e20, 0x24da9: 0x6c988220, - 0x24db1: 0x6c76c220, 0x24db3: 0x6c6f5c20, - 0x24db4: 0x6d0d5820, 0x24db5: 0x6c9e5420, 0x24db7: 0x6d1a3e20, - 0x24db8: 0x6ceccc20, 0x24db9: 0x6d11f420, 0x24dba: 0x6cebce20, 0x24dbb: 0x6cafc820, - 0x24dbc: 0x6cdc2c20, - // Block 0x937, offset 0x24dc0 - 0x24dc5: 0x6c799a20, - 0x24dc8: 0x6c532c20, 0x24dca: 0x6ca03020, 0x24dcb: 0x6c8cd220, - 0x24dcc: 0x6d173e20, 0x24dcd: 0x6ccfd220, 0x24dcf: 0x6d429220, - 0x24ddb: 0x6ce85020, - 0x24ddd: 0x6d1e7820, 0x24ddf: 0x6cec2620, - 0x24de0: 0x6c4af420, 0x24de1: 0x6c53bc20, - 0x24de5: 0x6cd36e20, 0x24de7: 0x6d049220, - 0x24de9: 0x6c000620, - 0x24df1: 0x6c19ee20, 0x24df3: 0x6c793c20, - 0x24df4: 0x6d176c20, 0x24df5: 0x6d104820, 0x24df6: 0x6ce67420, 0x24df7: 0x6c311e20, - 0x24df8: 0x6c13e820, 0x24df9: 0x6c8f3020, - 0x24dfd: 0x6cc06a20, 0x24dfe: 0x6d084e20, 0x24dff: 0x6ccfee20, - // Block 0x938, offset 0x24e00 - 0x24e00: 0x6c7b5420, 0x24e01: 0x6ce7ca20, 0x24e03: 0x6cba0e20, - 0x24e05: 0x6c1e4220, - 0x24e0a: 0x6cf1de20, - 0x24e0c: 0x6c906820, 0x24e0d: 0x6c018820, - 0x24e14: 0x6c76d820, 0x24e16: 0x6d11b020, - 0x24e18: 0x6c3e8420, - 0x24e1c: 0x6c084220, 0x24e1d: 0x6c803020, 0x24e1e: 0x6cb86c20, 0x24e1f: 0x6c2d6620, - 0x24e22: 0x6c69a620, 0x24e23: 0x6c4a7420, - 0x24e25: 0x6d049820, - 0x24e28: 0x6c78bc20, - 0x24e36: 0x6cfcd620, 0x24e37: 0x6cf33a20, - // Block 0x939, offset 0x24e40 - 0x24e42: 0x6c45f620, - 0x24e46: 0x6cab8620, 0x24e47: 0x6c781820, - 0x24e4b: 0x6c7a5420, - 0x24e51: 0x6ce4be20, 0x24e52: 0x6c46d420, 0x24e53: 0x6c96a220, - 0x24e55: 0x6c8f3e20, - 0x24e59: 0x6cf0c220, 0x24e5a: 0x6cf1ec20, - 0x24e61: 0x6c462020, 0x24e63: 0x6ce8e820, - 0x24e64: 0x6ca91620, 0x24e67: 0x6c9d7c20, - 0x24e6b: 0x6c80e020, - 0x24e6c: 0x6cba2220, 0x24e6d: 0x6c977e20, 0x24e6e: 0x6d308e20, - 0x24e70: 0x6c57c620, 0x24e71: 0x6d1db620, 0x24e72: 0x6c6d5020, - 0x24e74: 0x6c9aae20, 0x24e77: 0x6c3ef020, - 0x24e7b: 0x6cc1c220, - // Block 0x93a, offset 0x24e80 - 0x24e8c: 0x6c8f4820, 0x24e8d: 0x6c406220, 0x24e8e: 0x6c28c620, - 0x24e90: 0x6c460020, 0x24e92: 0x6c256e20, - 0x24e95: 0x6d040c20, - 0x24e9c: 0x6ce87c20, 0x24e9d: 0x6cd48020, - 0x24eaa: 0x6cbf8420, - 0x24eb3: 0x6cc6e020, - 0x24ebb: 0x6c874c20, - 0x24ebf: 0x6c5f9220, - // Block 0x93b, offset 0x24ec0 - 0x24ec0: 0x6cebbc20, - 0x24ecc: 0x6ce7aa20, - 0x24ed2: 0x6ce04c20, - 0x24ed4: 0x6c8dea20, 0x24ed6: 0x6d169420, 0x24ed7: 0x6cc85220, - 0x24ed9: 0x6cabe220, - 0x24edd: 0x6c10e820, - 0x24ee1: 0x6d269820, 0x24ee2: 0x6cc3b020, 0x24ee3: 0x6d3ade20, - 0x24ee4: 0x6c4d6220, - 0x24ef1: 0x6c381220, 0x24ef2: 0x6c4d6820, - // Block 0x93c, offset 0x24f00 - 0x24f00: 0x6c101620, 0x24f01: 0x6cb25620, 0x24f02: 0x6c8b0c20, - 0x24f0a: 0x6c7cd420, 0x24f0b: 0x6c3e9e20, - 0x24f0c: 0x6ce50620, 0x24f0d: 0x6cf2fc20, 0x24f0f: 0x6c70aa20, - 0x24f18: 0x6d318620, 0x24f1a: 0x6c3ec620, - 0x24f22: 0x6c8f9e20, - 0x24f26: 0x6cf8ce20, 0x24f27: 0x6ce4c020, - 0x24f2b: 0x6c626620, - 0x24f2f: 0x6d122c20, - 0x24f31: 0x6c246620, - 0x24f34: 0x6cad3020, 0x24f35: 0x6cbce820, - 0x24f3b: 0x6c8fb420, - 0x24f3c: 0x6c615820, - // Block 0x93d, offset 0x24f40 - 0x24f42: 0x6ce79a20, 0x24f43: 0x6d158420, - 0x24f45: 0x6c168420, - 0x24f4b: 0x6c45c220, - 0x24f4e: 0x6c309620, - 0x24f56: 0x6cfda420, - 0x24f59: 0x6ce6b620, 0x24f5b: 0x6d3b7020, - 0x24f5c: 0x6d15c820, 0x24f5d: 0x6d170020, 0x24f5e: 0x6d3ef820, 0x24f5f: 0x6cb6e020, - 0x24f62: 0x6c141a20, - 0x24f6c: 0x6c33e220, 0x24f6f: 0x6c1cbc20, - 0x24f70: 0x6c922a20, 0x24f71: 0x6c33ea20, 0x24f73: 0x6c399220, - 0x24f74: 0x6cd35c20, 0x24f75: 0x6ce3e420, 0x24f76: 0x6c5eaa20, 0x24f77: 0x6cbfaa20, - 0x24f78: 0x6cd70e20, 0x24f79: 0x6c18b020, - 0x24f7c: 0x6c5a6820, 0x24f7d: 0x6cd41220, - // Block 0x93e, offset 0x24f80 - 0x24f80: 0x6d279c20, - 0x24f86: 0x6c8f8420, - 0x24f88: 0x6c97b620, 0x24f89: 0x6c464220, - 0x24f8d: 0x6cfaa020, 0x24f8e: 0x6ca10a20, - 0x24f90: 0x6cd05e20, 0x24f92: 0x6cb30820, 0x24f93: 0x6d120420, - 0x24f94: 0x6cc0fa20, 0x24f95: 0x6cc4c020, - 0x24f99: 0x6c724220, - 0x24f9c: 0x6d1ada20, 0x24f9d: 0x6c041020, 0x24f9e: 0x6ca81c20, - 0x24fa0: 0x6c1d6c20, - 0x24faa: 0x6cc67820, 0x24fab: 0x6c202020, - 0x24fac: 0x6ca83420, 0x24fad: 0x6c861620, 0x24fae: 0x6c676220, 0x24faf: 0x6c77ac20, - 0x24fb0: 0x6c12f020, 0x24fb1: 0x6c1d5220, 0x24fb2: 0x6d3b5620, 0x24fb3: 0x6d3f1420, - 0x24fb4: 0x6d0fb820, - 0x24fbc: 0x6cf1e020, - // Block 0x93f, offset 0x24fc0 - 0x24fcb: 0x6c620420, - 0x24fcc: 0x6c620620, - 0x24fd0: 0x6c93e820, 0x24fd1: 0x6cc07820, 0x24fd2: 0x6c33fc20, 0x24fd3: 0x6c05cc20, - 0x24fd4: 0x6c14ce20, 0x24fd6: 0x6c0f1620, - 0x24fd8: 0x6c1abe20, 0x24fd9: 0x6d30fa20, 0x24fda: 0x6c98b820, - 0x24fdc: 0x6c621c20, 0x24fdd: 0x6c9eb620, 0x24fde: 0x6d262620, - 0x24fe0: 0x6cf3d220, 0x24fe1: 0x6d366420, 0x24fe2: 0x6cb25c20, - 0x24fe5: 0x6c1ccc20, - 0x24feb: 0x6c9c6020, - 0x24fec: 0x6c3a3c20, 0x24fed: 0x6c25c020, 0x24fee: 0x6c9b2420, - // Block 0x940, offset 0x25000 - 0x2500d: 0x6d1a8220, 0x2500e: 0x6c989a20, 0x2500f: 0x6c2d2420, - 0x25010: 0x6c2dd620, 0x25012: 0x6cb9b420, - 0x25015: 0x6c4f9820, 0x25016: 0x6d348620, 0x25017: 0x6c713e20, - 0x25018: 0x6ca76820, - 0x2501c: 0x6c9c6620, 0x2501d: 0x6c47b620, - 0x25023: 0x6d3b5820, - 0x25024: 0x6ca85220, 0x25025: 0x6d3d8420, 0x25027: 0x6d131c20, - 0x25028: 0x6c23dc20, 0x2502a: 0x6d05be20, - 0x2502c: 0x6cf8b820, 0x2502f: 0x6c0e8420, - 0x2503e: 0x6c11d820, - // Block 0x941, offset 0x25040 - 0x25043: 0x6d0dba20, - 0x25051: 0x6c6cb220, - 0x25054: 0x6c71ce20, 0x25055: 0x6c298620, 0x25056: 0x6c327620, - 0x25058: 0x6d128c20, 0x25059: 0x6c6ea020, 0x2505a: 0x6c78cc20, 0x2505b: 0x6c962220, - 0x2505c: 0x6cf00220, 0x2505d: 0x6ce87620, 0x2505e: 0x6d1f6020, 0x2505f: 0x6cac3020, - 0x25061: 0x6cb01020, 0x25062: 0x6c2fb820, - 0x25064: 0x6cf00420, 0x25065: 0x6c183620, 0x25066: 0x6c66bc20, - 0x25068: 0x6cd81e20, 0x25069: 0x6d3d8a20, 0x2506a: 0x6cda4020, - 0x2506c: 0x6cc87420, 0x2506e: 0x6d218420, - 0x25073: 0x6c368e20, - 0x25076: 0x6c7a7e20, - 0x25078: 0x6d3b2220, - 0x2507e: 0x6cf9e820, - // Block 0x942, offset 0x25080 - 0x2509b: 0x6c3ef220, - 0x2509c: 0x6ce23e20, 0x2509d: 0x6cf6d020, 0x2509e: 0x6c1d8020, 0x2509f: 0x6c41ec20, - 0x250a0: 0x6c936420, 0x250a1: 0x6c131620, 0x250a2: 0x6ccdb220, 0x250a3: 0x6c8e9c20, - 0x250a5: 0x6cf8e020, 0x250a6: 0x6c5f3e20, 0x250a7: 0x6d161220, - 0x250a8: 0x6ce01220, 0x250aa: 0x6c55b620, - 0x250ad: 0x6c25c820, 0x250ae: 0x6c447820, - 0x250b0: 0x6cd3dc20, 0x250b1: 0x6ccac020, 0x250b2: 0x6c53d420, 0x250b3: 0x6cfd0e20, - 0x250b6: 0x6cf9f020, - 0x250bb: 0x6ca2ae20, - 0x250bc: 0x6cdd9620, 0x250be: 0x6d2d4c20, - // Block 0x943, offset 0x250c0 - 0x250c0: 0x6c3d9e20, 0x250c1: 0x6ccb6220, 0x250c2: 0x6caa4620, 0x250c3: 0x6d18ac20, - 0x250e7: 0x6cbdaa20, - 0x250e8: 0x6cbedc20, - 0x250f5: 0x6c5c5a20, 0x250f6: 0x6cd6e220, 0x250f7: 0x6c284a20, - 0x250f8: 0x6cab5420, 0x250f9: 0x6ca17420, 0x250fa: 0x6cb92420, 0x250fb: 0x6c1c8020, - 0x250fc: 0x6cac0620, 0x250fd: 0x6c739620, - // Block 0x944, offset 0x25100 - 0x25100: 0x6c178020, 0x25101: 0x6c8b3c20, 0x25102: 0x6c0db420, 0x25103: 0x6c7a0a20, - 0x25104: 0x6c28c820, 0x25105: 0x6c1dee20, 0x25106: 0x6ce70620, 0x25107: 0x6c28ca20, - 0x25108: 0x6c97ce20, 0x25109: 0x6c56ce20, 0x2510a: 0x6c8a2820, 0x2510b: 0x6cfbae20, - 0x2510d: 0x6c129820, 0x2510e: 0x6c92ea20, 0x2510f: 0x6c204220, - 0x25110: 0x6cf3f420, 0x25111: 0x6c978820, - 0x25115: 0x6d3f2420, 0x25117: 0x6c328020, - 0x2511a: 0x6cd6f220, 0x2511b: 0x6c406420, - 0x2511c: 0x6c72a620, 0x2511d: 0x6d395820, 0x2511f: 0x6c2e4220, - 0x25120: 0x6cee5a20, 0x25121: 0x6c206820, 0x25122: 0x6cb92620, 0x25123: 0x6cea1220, - 0x25125: 0x6c886420, 0x25126: 0x6c0c2e20, 0x25127: 0x6c845420, - 0x2512a: 0x6c845620, - // Block 0x945, offset 0x25140 - 0x25146: 0x6c0a9220, 0x25147: 0x6c407620, - 0x25148: 0x6c257820, 0x25149: 0x6c318020, 0x2514b: 0x6d29a820, - 0x2514c: 0x6c8fb620, 0x2514d: 0x6d0a4a20, 0x2514e: 0x6cbf7a20, 0x2514f: 0x6c5f6e20, - 0x25150: 0x6cba2c20, 0x25152: 0x6c65fa20, 0x25153: 0x6cce9020, - 0x25154: 0x6c351e20, 0x25155: 0x6cd51620, 0x25156: 0x6c10c820, 0x25157: 0x6d05f820, - 0x25158: 0x6c304420, 0x2515a: 0x6cc49220, - 0x2515c: 0x6d0fe620, 0x2515d: 0x6cc8b420, 0x2515e: 0x6c8c7020, 0x2515f: 0x6c65fc20, - 0x25160: 0x6c2ca820, 0x25161: 0x6c3ba020, 0x25162: 0x6c2d9020, 0x25163: 0x6d41dc20, - 0x25165: 0x6ca94820, - 0x2516a: 0x6cdba020, 0x2516b: 0x6ce52420, - 0x2516c: 0x6c01da20, 0x2516f: 0x6c131c20, - 0x25170: 0x6c2fc220, 0x25171: 0x6cd02820, 0x25172: 0x6c328420, 0x25173: 0x6ce39420, - 0x25174: 0x6c695420, 0x25175: 0x6d41de20, 0x25176: 0x6d2f1020, 0x25177: 0x6c65fe20, - 0x25178: 0x6c28da20, 0x25179: 0x6c285420, 0x2517a: 0x6cd97420, - // Block 0x946, offset 0x25180 - 0x25190: 0x6d2e2620, 0x25191: 0x6ce69620, 0x25192: 0x6d372a20, - 0x25195: 0x6d1f8220, 0x25196: 0x6cac0e20, - 0x251a1: 0x6c854220, - 0x251a4: 0x6cb9d820, 0x251a6: 0x6cdca620, 0x251a7: 0x6c71dc20, - 0x251a8: 0x6c010020, 0x251a9: 0x6c445020, 0x251aa: 0x6c72b420, 0x251ab: 0x6cea7220, - 0x251ac: 0x6c0aa620, 0x251ad: 0x6cb87e20, 0x251ae: 0x6c0fa820, 0x251af: 0x6c5c7c20, - 0x251b1: 0x6c670020, - 0x251b4: 0x6c466420, 0x251b5: 0x6cdba420, - 0x251ba: 0x6c227a20, 0x251bb: 0x6cbb5c20, - 0x251bf: 0x6d0cf420, - // Block 0x947, offset 0x251c0 - 0x251cf: 0x6c2d9420, - 0x251d2: 0x6c9f0420, - 0x251dc: 0x6cb3b620, 0x251dd: 0x6c8e1620, 0x251de: 0x6c6b7420, 0x251df: 0x6d3b3e20, - 0x251e0: 0x6c47ee20, 0x251e3: 0x6c32aa20, - 0x251e4: 0x6d2fee20, 0x251e6: 0x6ccebe20, 0x251e7: 0x6cbdf020, - 0x251e8: 0x6c9ca420, 0x251ea: 0x6cb2e220, 0x251eb: 0x6c23c020, - 0x251ec: 0x6c1d8820, 0x251ef: 0x6cc9ae20, - 0x251f6: 0x6ce52620, - // Block 0x948, offset 0x25200 - 0x25205: 0x6c8edc20, 0x25206: 0x6c936c20, 0x25207: 0x6c91fc20, - 0x25208: 0x6d407620, - 0x2520c: 0x6c941e20, 0x2520d: 0x6c58e620, 0x2520f: 0x6ce5b420, - 0x25210: 0x6ce9d820, 0x25211: 0x6cbb5220, 0x25212: 0x6c8c8020, 0x25213: 0x6c06c220, - 0x25214: 0x6cad7620, 0x25215: 0x6d2dc420, 0x25217: 0x6c874e20, - 0x2521b: 0x6ce3b220, - 0x2521c: 0x6c560020, - 0x25222: 0x6c8b6c20, - 0x25235: 0x6c5b8020, 0x25236: 0x6cc16420, 0x25237: 0x6d086820, - 0x25239: 0x6c6ec620, 0x2523a: 0x6c2f1220, 0x2523b: 0x6cdc0820, - 0x2523d: 0x6cf11e20, 0x2523f: 0x6d0d1420, - // Block 0x949, offset 0x25240 - 0x25240: 0x6d0c4a20, 0x25241: 0x6c050e20, 0x25243: 0x6c67ce20, - 0x25244: 0x6ca66820, 0x25245: 0x6c876e20, 0x25246: 0x6c560620, 0x25247: 0x6cb80420, - 0x25248: 0x6d37e220, - 0x25251: 0x6c0acc20, - 0x25254: 0x6d220020, 0x25255: 0x6c2f1420, 0x25256: 0x6c8c8a20, 0x25257: 0x6c878c20, - 0x25258: 0x6d3de620, 0x25259: 0x6c62f020, 0x2525a: 0x6c70e620, - 0x2525c: 0x6c3c8820, 0x2525e: 0x6d248820, - 0x25268: 0x6c8b7e20, 0x25269: 0x6d28e020, 0x2526a: 0x6cb9e820, 0x2526b: 0x6c6a4620, - 0x2526c: 0x6c494220, 0x2526e: 0x6d3dee20, - 0x25271: 0x6c40a220, - 0x25279: 0x6ccba220, - 0x2527c: 0x6c248a20, - // Block 0x94a, offset 0x25280 - 0x25283: 0x6c5b8220, - 0x25288: 0x6c29a620, 0x25289: 0x6c901c20, 0x2528a: 0x6d198420, - 0x25297: 0x6cc96020, - 0x25298: 0x6d274220, 0x2529a: 0x6c2bc620, - 0x252a1: 0x6c420820, 0x252a2: 0x6d295c20, 0x252a3: 0x6ccdf420, - 0x252a4: 0x6d24b020, 0x252a5: 0x6c0fde20, 0x252a7: 0x6c2f9820, - 0x252a8: 0x6c388c20, 0x252aa: 0x6d22d820, - 0x252ac: 0x6ccfc420, - 0x252b2: 0x6c457020, - 0x252b4: 0x6c9ed020, 0x252b5: 0x6cea4a20, - 0x252b8: 0x6c8af620, - // Block 0x94b, offset 0x252c0 - 0x252c1: 0x6d2bd420, 0x252c2: 0x6cadbc20, - 0x252c4: 0x6c9c4a20, 0x252c6: 0x6c9ffa20, 0x252c7: 0x6c394a20, - 0x252c9: 0x6ca33620, 0x252ca: 0x6cd8b820, 0x252cb: 0x6d14ea20, - 0x252cc: 0x6c635020, 0x252cd: 0x6d3ae620, - 0x252d3: 0x6c047e20, - 0x252d4: 0x6d231e20, 0x252d6: 0x6cb35820, - 0x252da: 0x6c582820, 0x252db: 0x6c11f820, - 0x252dc: 0x6c684a20, - 0x252e0: 0x6cdfe420, - 0x252e9: 0x6d363a20, 0x252eb: 0x6c9cf420, - 0x252ec: 0x6c77ae20, - 0x252f1: 0x6d109a20, 0x252f2: 0x6c335020, 0x252f3: 0x6cc36020, - 0x252f4: 0x6c10a420, 0x252f5: 0x6c1f5420, 0x252f6: 0x6cbc2820, 0x252f7: 0x6c8e6c20, - 0x252f8: 0x6c0f1820, 0x252fa: 0x6c772e20, 0x252fb: 0x6c3bde20, - // Block 0x94c, offset 0x25300 - 0x25305: 0x6c2a2020, - 0x25309: 0x6c312820, 0x2530a: 0x6c440820, - 0x25319: 0x6c8d3a20, 0x2531a: 0x6cf79420, - 0x2531c: 0x6ca6ba20, 0x2531d: 0x6d389620, 0x2531e: 0x6d389820, - 0x25323: 0x6c1d7820, - 0x25334: 0x6ca6ee20, 0x25335: 0x6c5f0c20, 0x25337: 0x6cc12420, - // Block 0x94d, offset 0x25340 - 0x25344: 0x6c763e20, 0x25347: 0x6cfcfc20, - 0x25349: 0x6c516820, 0x2534b: 0x6c8bd220, - 0x2534d: 0x6d3e7e20, - 0x25351: 0x6cab8c20, 0x25352: 0x6c245620, - 0x25357: 0x6c140420, - 0x2535d: 0x6d383820, 0x2535e: 0x6c102420, - 0x25364: 0x6c1d8220, 0x25365: 0x6cf8e220, 0x25366: 0x6cc99220, 0x25367: 0x6cfb9620, - 0x25368: 0x6ccb6420, 0x25369: 0x6c9e6020, 0x2536b: 0x6c38c020, - 0x2536c: 0x6d341620, 0x2536e: 0x6c256420, - 0x25374: 0x6cfa4620, - 0x2537e: 0x6cab1420, 0x2537f: 0x6c845820, - // Block 0x94e, offset 0x25380 - 0x25380: 0x6d40de20, 0x25382: 0x6c24f220, 0x25383: 0x6d2b1220, - 0x25385: 0x6c845a20, - 0x25398: 0x6cb67620, 0x2539a: 0x6d3d1020, 0x2539b: 0x6c257a20, - 0x2539c: 0x6cb41e20, 0x2539e: 0x6c38d620, 0x2539f: 0x6ce02620, - 0x253a9: 0x6d3eac20, 0x253aa: 0x6d412a20, 0x253ab: 0x6d38bc20, - 0x253ac: 0x6cc6d020, 0x253ad: 0x6c8bee20, 0x253ae: 0x6ce02820, - 0x253b6: 0x6cd3fe20, - 0x253ba: 0x6c251420, 0x253bb: 0x6d3eb820, - 0x253bc: 0x6c3db620, - // Block 0x94f, offset 0x253c0 - 0x253c1: 0x6d001c20, - 0x253c8: 0x6c3c7420, - 0x253cf: 0x6cfd4220, - 0x253d0: 0x6c670c20, 0x253d2: 0x6c3c0420, - 0x253d7: 0x6c875020, - 0x253d8: 0x6ca19820, - 0x253df: 0x6d1ed020, - 0x253e5: 0x6c5e5020, 0x253e7: 0x6cc16620, - 0x253ec: 0x6ca78220, - 0x253f0: 0x6c9cbe20, 0x253f3: 0x6cb80a20, - 0x253f6: 0x6c51ae20, - 0x253f8: 0x6c893a20, - 0x253ff: 0x6d42b420, - // Block 0x950, offset 0x25400 - 0x25402: 0x6c8df220, - 0x25405: 0x6d39f820, 0x25407: 0x6ca78c20, - 0x2540a: 0x6c612420, 0x2540b: 0x6cc62620, - 0x2540c: 0x6c6a9620, 0x2540d: 0x6c41d020, - 0x25410: 0x6d170220, 0x25413: 0x6d38ce20, - 0x25415: 0x6cf4ca20, - 0x2541a: 0x6c44fe20, 0x2541b: 0x6c243220, - 0x2541d: 0x6c9ed220, - 0x25421: 0x6d0a0220, 0x25423: 0x6d33cc20, - 0x25424: 0x6cff7620, 0x25427: 0x6c3e3a20, - 0x25428: 0x6c553620, - 0x2542c: 0x6c2b1e20, 0x2542e: 0x6c741820, 0x2542f: 0x6c2e1220, - 0x25439: 0x6cd44420, - 0x2543c: 0x6cee0a20, - // Block 0x951, offset 0x25440 - 0x25443: 0x6ca33820, - 0x25444: 0x6c2b2620, 0x25445: 0x6cd37020, 0x25446: 0x6c224020, 0x25447: 0x6cd4d220, - 0x25449: 0x6cec2c20, 0x2544a: 0x6c181820, 0x2544b: 0x6c389820, - 0x2544d: 0x6c470820, 0x2544e: 0x6d24e620, - 0x25451: 0x6c491420, - 0x2545a: 0x6cbcbc20, - 0x2545c: 0x6d2de820, 0x2545d: 0x6c276020, 0x2545e: 0x6cceee20, - 0x25466: 0x6d388820, 0x25467: 0x6cfde420, - 0x25468: 0x6ca00020, 0x25469: 0x6d3f5020, 0x2546a: 0x6c599620, 0x2546b: 0x6c9c5420, - 0x2546d: 0x6cf88c20, 0x2546e: 0x6d363c20, 0x2546f: 0x6cac2820, - 0x25470: 0x6c349420, - 0x25474: 0x6c22c820, 0x25475: 0x6ca1d420, 0x25477: 0x6c17be20, - 0x25479: 0x6d17b620, 0x2547a: 0x6c464820, - // Block 0x952, offset 0x25480 - 0x25487: 0x6c6dba20, - 0x25493: 0x6d2b8020, - 0x25494: 0x6cb25e20, 0x25495: 0x6d130420, 0x25496: 0x6c6af420, - 0x25498: 0x6caf7620, 0x2549b: 0x6ccbfe20, - 0x2549c: 0x6d3c4420, 0x2549d: 0x6c6f1e20, - 0x254a0: 0x6c8e6e20, 0x254a1: 0x6d227020, 0x254a3: 0x6c70ac20, - 0x254a8: 0x6caafe20, - 0x254b8: 0x6c999c20, - // Block 0x953, offset 0x254c0 - 0x254c4: 0x6c187420, 0x254c6: 0x6d3bd420, 0x254c7: 0x6ca76a20, - 0x254c8: 0x6c79aa20, 0x254c9: 0x6c6a2e20, 0x254ca: 0x6c57b020, - 0x254cd: 0x6d02e220, 0x254ce: 0x6d424a20, 0x254cf: 0x6d0e9620, - 0x254d0: 0x6c748220, - 0x254d5: 0x6c54ea20, 0x254d6: 0x6d393a20, 0x254d7: 0x6ccf6a20, - 0x254d9: 0x6d0dbc20, 0x254db: 0x6d01de20, - 0x254dc: 0x6c2ed420, 0x254df: 0x6c187a20, - 0x254f2: 0x6c65c620, 0x254f3: 0x6c624c20, - 0x254f6: 0x6c21ce20, 0x254f7: 0x6c537420, - // Block 0x954, offset 0x25500 - 0x25500: 0x6c26bc20, - 0x25504: 0x6c764020, 0x25505: 0x6d039820, 0x25506: 0x6c5c1c20, 0x25507: 0x6c65d020, - 0x25508: 0x6d394820, 0x25509: 0x6d2c8c20, 0x2550a: 0x6c403820, 0x2550b: 0x6c1c6020, - 0x2550c: 0x6c082e20, 0x2550d: 0x6cab0a20, - 0x25511: 0x6c626820, 0x25512: 0x6cb9c020, - 0x25514: 0x6ced9620, 0x25515: 0x6cab6a20, 0x25516: 0x6c0a3220, 0x25517: 0x6cd79c20, - 0x25520: 0x6c6dd020, 0x25521: 0x6d132e20, - // Block 0x955, offset 0x25540 - 0x25544: 0x6c3a7220, 0x25547: 0x6c844420, - 0x2554a: 0x6c868020, 0x2554b: 0x6cb01e20, - 0x25552: 0x6cdc7a20, 0x25553: 0x6c8e9e20, - 0x25554: 0x6c517220, 0x25555: 0x6c5d1420, 0x25556: 0x6ce07a20, 0x25557: 0x6cd79e20, - 0x25558: 0x6d36ec20, 0x25559: 0x6c0f5c20, - 0x2555d: 0x6cf8e420, - 0x25561: 0x6cb33620, 0x25562: 0x6cc45c20, - 0x25564: 0x6ca2b020, - 0x2557d: 0x6d1db820, - // Block 0x956, offset 0x25580 - 0x25582: 0x6c279620, - 0x2558a: 0x6cb72220, 0x2558b: 0x6c2e0220, - 0x2558c: 0x6ca87c20, 0x2558d: 0x6cd6e420, 0x2558f: 0x6cce8c20, - 0x25590: 0x6c7dc420, 0x25591: 0x6cdc9020, 0x25593: 0x6c30ca20, - 0x25594: 0x6c2ef220, - 0x2559c: 0x6c45ba20, - 0x255af: 0x6d3bb020, - 0x255b0: 0x6c4c8c20, - 0x255bc: 0x6d05fa20, 0x255bd: 0x6cc1e820, - // Block 0x957, offset 0x255c0 - 0x255c0: 0x6d0a4c20, 0x255c3: 0x6c689a20, - 0x255c4: 0x6d30aa20, 0x255c6: 0x6c2d9220, 0x255c7: 0x6cca7620, - 0x255c8: 0x6c080c20, 0x255ca: 0x6cdda620, 0x255cb: 0x6cba2e20, - 0x255cf: 0x6d05fc20, - 0x255d1: 0x6d0a4e20, - 0x255d4: 0x6ca17a20, - 0x255f5: 0x6cdca820, 0x255f6: 0x6c7ea820, 0x255f7: 0x6d3a8a20, - 0x255f8: 0x6d396420, 0x255fa: 0x6c870820, - 0x255fc: 0x6c280e20, 0x255fd: 0x6c717820, 0x255ff: 0x6d286e20, - // Block 0x958, offset 0x25600 - 0x25600: 0x6c15fc20, 0x25601: 0x6c956020, - 0x25604: 0x6ccb8220, 0x25606: 0x6c888620, - 0x25608: 0x6d414e20, 0x2560b: 0x6c7f7020, - 0x2560c: 0x6cd6ec20, 0x2560d: 0x6cbcfe20, - 0x25618: 0x6c30ce20, - 0x2561e: 0x6cf54a20, 0x2561f: 0x6c9b9020, - 0x25621: 0x6c62ce20, - 0x25624: 0x6c1aee20, 0x25626: 0x6ca65c20, - 0x25638: 0x6d116e20, 0x2563b: 0x6c7ec020, - 0x2563e: 0x6c942020, - // Block 0x959, offset 0x25640 - 0x25640: 0x6cdcbe20, 0x25641: 0x6c3dbe20, - 0x25644: 0x6c830420, 0x25645: 0x6cf05820, - 0x2564e: 0x6c237820, - 0x25654: 0x6c877020, 0x25656: 0x6cb22820, - 0x25658: 0x6c759020, 0x25659: 0x6c71e420, 0x2565b: 0x6c7ecc20, - 0x25667: 0x6c62f220, - 0x2566a: 0x6c9f1a20, - 0x2566c: 0x6d125020, 0x2566d: 0x6c0b2620, - 0x25671: 0x6c23d420, 0x25672: 0x6cd85e20, - 0x25675: 0x6cd86020, - 0x25678: 0x6c51b020, - // Block 0x95a, offset 0x25680 - 0x25683: 0x6ca48820, - 0x25685: 0x6c2f2620, - 0x25688: 0x6c180220, 0x25689: 0x6d282220, 0x2568b: 0x6d052220, - 0x2568c: 0x6cd4c220, 0x2568e: 0x6c15b020, 0x2568f: 0x6c9f4c20, - 0x25690: 0x6c87fe20, 0x25691: 0x6d19e620, 0x25692: 0x6d037620, 0x25693: 0x6cee9020, - 0x25694: 0x6c479020, 0x25695: 0x6ce7f020, 0x25696: 0x6cddf620, 0x25697: 0x6c3a5e20, - 0x25698: 0x6c265420, 0x25699: 0x6ca84620, 0x2569a: 0x6c244820, 0x2569b: 0x6d426e20, - 0x2569c: 0x6c6b2020, 0x2569d: 0x6d08b020, 0x2569e: 0x6c0f5e20, 0x2569f: 0x6c6c5e20, - 0x256a0: 0x6d1b1220, 0x256a1: 0x6d05f020, 0x256a3: 0x6d20e420, - 0x256a4: 0x6d048c20, 0x256a6: 0x6cb76c20, 0x256a7: 0x6c069620, - 0x256a8: 0x6d03dc20, 0x256a9: 0x6c45ec20, - 0x256ac: 0x6d418c20, - 0x256b0: 0x6c6a1a20, 0x256b2: 0x6c763020, - 0x256b5: 0x6d03f020, 0x256b6: 0x6c06b220, 0x256b7: 0x6cd4ee20, - 0x256b8: 0x6d23a020, 0x256ba: 0x6d38ee20, 0x256bb: 0x6d2e0420, - // Block 0x95b, offset 0x256c0 - 0x256c2: 0x6d37c620, - 0x256c6: 0x6c140620, - 0x256c8: 0x6c20e020, 0x256c9: 0x6c8f4220, - 0x256ce: 0x6cdbdc20, - 0x256d0: 0x6d3a8620, - 0x256d9: 0x6c0bd220, - 0x256dd: 0x6d035420, 0x256df: 0x6d0bce20, - 0x256e2: 0x6c8daa20, - 0x256e7: 0x6d0bd220, - 0x256ec: 0x6ce63020, - 0x256f9: 0x6c2b5a20, - // Block 0x95c, offset 0x25700 - 0x25701: 0x6cafca20, 0x25702: 0x6c567620, 0x25703: 0x6c132a20, - 0x2570a: 0x6ce45e20, 0x2570b: 0x6ca20220, - 0x2570c: 0x6c731620, 0x2570e: 0x6ca20420, - 0x25710: 0x6c723020, 0x25711: 0x6c8f0020, 0x25713: 0x6c8e0c20, - 0x25717: 0x6c8f0220, - 0x25718: 0x6c568820, - 0x25726: 0x6c3e3e20, 0x25727: 0x6c553820, - 0x2572a: 0x6c361820, 0x2572b: 0x6c458420, - 0x2572c: 0x6c470a20, - 0x25731: 0x6c48b420, - 0x25739: 0x6c94a420, 0x2573b: 0x6c389a20, - 0x2573c: 0x6c93e220, 0x2573d: 0x6c9b1820, 0x2573e: 0x6c3e8a20, 0x2573f: 0x6c8e5e20, - // Block 0x95d, offset 0x25740 - 0x25745: 0x6d00c220, 0x25746: 0x6c471e20, - 0x25748: 0x6cfcda20, 0x25749: 0x6c0f1a20, 0x2574b: 0x6c622220, - 0x25753: 0x6cc2a220, - 0x25754: 0x6c927220, - 0x2575e: 0x6cd79420, - 0x25761: 0x6ca20820, 0x25762: 0x6d23a420, 0x25763: 0x6c4eea20, - 0x25769: 0x6d26d020, 0x2576a: 0x6c289e20, - 0x2576f: 0x6d218620, - 0x25770: 0x6c64de20, 0x25773: 0x6c429020, - 0x2577f: 0x6c129420, - // Block 0x95e, offset 0x25780 - 0x25780: 0x6cd0c820, 0x25781: 0x6c8f1c20, - 0x25786: 0x6c687e20, - 0x25789: 0x6cdb2020, 0x2578a: 0x6cdb2220, 0x2578b: 0x6d383e20, - 0x25792: 0x6c8aaa20, - 0x25794: 0x6d085c20, 0x25795: 0x6c92ee20, 0x25797: 0x6c629e20, - 0x2579a: 0x6d0cdc20, - 0x2579f: 0x6c930820, - 0x257a1: 0x6c9fd220, 0x257a2: 0x6ce39620, - 0x257a6: 0x6c595c20, - 0x257a9: 0x6d18ec20, 0x257aa: 0x6ce08220, - 0x257ac: 0x6cf48820, - 0x257b0: 0x6c5f8020, - 0x257b7: 0x6c31e620, - 0x257b8: 0x6c7d9420, 0x257ba: 0x6c758e20, - 0x257bf: 0x6cd21a20, - // Block 0x95f, offset 0x257c0 - 0x257c0: 0x6ca44e20, 0x257c1: 0x6cb3bc20, - 0x257c4: 0x6cd52020, 0x257c5: 0x6cc37e20, - 0x257cc: 0x6cc5bc20, 0x257cf: 0x6c3b6220, - 0x257d2: 0x6cde3a20, 0x257d3: 0x6cea4820, - 0x257d5: 0x6d0f9c20, - 0x257e6: 0x6c342c20, 0x257e7: 0x6c21fc20, - 0x257e9: 0x6c478020, 0x257ea: 0x6c3b6e20, - 0x257ed: 0x6cc74620, - 0x257f1: 0x6c42c020, 0x257f2: 0x6cfdbe20, - 0x257f4: 0x6cfdc020, 0x257f5: 0x6c545420, 0x257f7: 0x6ce1c420, - 0x257f8: 0x6ccd8420, 0x257f9: 0x6d0fba20, 0x257fa: 0x6d3f5220, - 0x257fc: 0x6d256a20, - // Block 0x960, offset 0x25800 - 0x25804: 0x6cda7420, 0x25807: 0x6c203820, - 0x25808: 0x6cfdc820, 0x2580a: 0x6c048a20, - 0x2580c: 0x6c97c020, 0x2580e: 0x6c3f6e20, 0x2580f: 0x6c7e6420, - 0x25810: 0x6c851e20, 0x25812: 0x6c6af620, 0x25813: 0x6d1ea820, - 0x25818: 0x6d23a620, 0x2581a: 0x6c1c4820, - 0x2581c: 0x6c203a20, 0x2581d: 0x6d182e20, 0x2581e: 0x6ccd0020, - 0x25822: 0x6c609220, 0x25823: 0x6d0c2820, - 0x25826: 0x6cf51820, 0x25827: 0x6c215c20, - 0x25828: 0x6c987420, - 0x2582d: 0x6c3ede20, 0x2582e: 0x6c637c20, 0x2582f: 0x6c46d620, - 0x25830: 0x6c474420, 0x25831: 0x6c63e420, - 0x25835: 0x6cfb9820, 0x25837: 0x6c6d6020, - 0x25838: 0x6d3f6420, 0x25839: 0x6c90bc20, - 0x2583c: 0x6c46da20, - // Block 0x961, offset 0x25840 - 0x25840: 0x6cc57c20, 0x25842: 0x6ccd1420, - 0x25845: 0x6c74da20, 0x25846: 0x6ce79c20, 0x25847: 0x6d1ffc20, - 0x25854: 0x6c651a20, 0x25855: 0x6c31dc20, 0x25857: 0x6c55f020, - 0x2585b: 0x6ccace20, - 0x2585c: 0x6d246220, - 0x25862: 0x6c974e20, - 0x25864: 0x6d342620, 0x25865: 0x6d0c4420, 0x25866: 0x6c42f020, - 0x25868: 0x6c582020, - 0x2586e: 0x6cc34420, - 0x25871: 0x6d103e20, 0x25873: 0x6d418820, - 0x25877: 0x6cfe8e20, - 0x25878: 0x6d170620, 0x25879: 0x6d0d5a20, 0x2587a: 0x6c531e20, 0x2587b: 0x6d20e620, - 0x2587f: 0x6c1c0020, - // Block 0x962, offset 0x25880 - 0x25881: 0x6c1b1020, - 0x25884: 0x6c4f6a20, 0x25885: 0x6ccb1e20, 0x25886: 0x6cabbe20, 0x25887: 0x6cde4020, - 0x25888: 0x6c3b2620, 0x25889: 0x6c1aa020, - 0x2588c: 0x6c533220, 0x2588d: 0x6d095220, - 0x25896: 0x6d351e20, - 0x2589b: 0x6cc19020, - 0x258a0: 0x6cf5fe20, 0x258a1: 0x6c3e6220, 0x258a3: 0x6cd4e020, - 0x258a4: 0x6c4d6a20, 0x258a6: 0x6cb38c20, - 0x258a8: 0x6c229a20, - 0x258b0: 0x6c149a20, 0x258b3: 0x6c52ae20, - 0x258b8: 0x6cad7a20, 0x258b9: 0x6ccff820, 0x258ba: 0x6cfede20, - 0x258bd: 0x6d07ac20, 0x258be: 0x6c229e20, 0x258bf: 0x6ce68420, - // Block 0x963, offset 0x258c0 - 0x258c0: 0x6cb39620, - 0x258c7: 0x6cde7e20, - 0x258c8: 0x6c13a820, 0x258cb: 0x6d40ce20, - 0x258cc: 0x6c5de820, 0x258cd: 0x6d071820, 0x258ce: 0x6d0e9820, 0x258cf: 0x6c149e20, - 0x258d1: 0x6ceb3420, - 0x258d8: 0x6cfb8420, 0x258d9: 0x6d07c620, 0x258da: 0x6c542a20, 0x258db: 0x6c58de20, - 0x258dc: 0x6c442620, 0x258dd: 0x6c1d3c20, 0x258de: 0x6c0a3620, 0x258df: 0x6c52bc20, - 0x258e0: 0x6c52be20, 0x258e1: 0x6c1b4a20, 0x258e3: 0x6c140820, - 0x258ef: 0x6d2c8e20, - 0x258f1: 0x6d2d1e20, 0x258f2: 0x6cdea220, - 0x258f5: 0x6cb3a220, 0x258f6: 0x6cdea420, - 0x258f8: 0x6d1f6e20, 0x258f9: 0x6c3ef420, 0x258fa: 0x6c220e20, 0x258fb: 0x6c26be20, - 0x258fc: 0x6cde1a20, 0x258fe: 0x6c8ea020, - // Block 0x964, offset 0x25900 - 0x25901: 0x6c221020, 0x25903: 0x6c52d420, - 0x25905: 0x6c4f1a20, 0x25906: 0x6c7e5020, - 0x25908: 0x6cd20420, - 0x2590d: 0x6ce79e20, 0x2590e: 0x6c5c7020, 0x2590f: 0x6c518620, - 0x25910: 0x6cb1d820, 0x25911: 0x6d243a20, - 0x2591c: 0x6cfaf020, 0x2591d: 0x6c4e6c20, 0x2591f: 0x6cb3ac20, - 0x25926: 0x6c7ec220, 0x25927: 0x6c5e5220, - 0x25930: 0x6cdf8420, - 0x25934: 0x6c819e20, 0x25936: 0x6cd5b420, - 0x2593a: 0x6c2a0a20, 0x2593b: 0x6c2d1020, - // Block 0x965, offset 0x25940 - 0x25948: 0x6d04a820, 0x2594b: 0x6cee6020, - 0x2594d: 0x6c17f820, 0x2594e: 0x6ca3ae20, - 0x25950: 0x6c73d420, 0x25953: 0x6c375220, - 0x25954: 0x6c375a20, 0x25955: 0x6caa6c20, 0x25956: 0x6caa8820, - 0x2595d: 0x6d3bae20, - 0x25962: 0x6cab2220, - 0x25964: 0x6c8ac220, 0x25965: 0x6c82b420, 0x25967: 0x6c032a20, - 0x2596c: 0x6c196820, 0x2596f: 0x6c4a6a20, - 0x25970: 0x6cc2f820, 0x25971: 0x6c448820, 0x25973: 0x6c45ee20, - 0x25974: 0x6ccee020, - 0x25979: 0x6c7f2020, 0x2597a: 0x6d32e820, 0x2597b: 0x6d183020, - 0x2597c: 0x6c4bda20, 0x2597d: 0x6ceea620, 0x2597e: 0x6c951e20, - // Block 0x966, offset 0x25980 - 0x25982: 0x6cd28620, 0x25983: 0x6d1be820, - 0x25984: 0x6cd14620, 0x25985: 0x6ce8ea20, 0x25986: 0x6c0a3820, - 0x25988: 0x6d2aee20, 0x25989: 0x6d383a20, 0x2598b: 0x6cc72620, - 0x2598c: 0x6cb64e20, 0x2598d: 0x6c405620, 0x2598e: 0x6c131820, - 0x25993: 0x6c845c20, - 0x25994: 0x6c978c20, 0x25996: 0x6c886620, 0x25997: 0x6c0c3020, - 0x2599b: 0x6c207e20, - 0x2599c: 0x6d18ee20, - 0x259a0: 0x6cac3620, - 0x259a5: 0x6d191420, 0x259a6: 0x6c7b4820, - 0x259a9: 0x6c0c5220, 0x259ab: 0x6c1c9e20, - 0x259ac: 0x6cc22020, 0x259ad: 0x6ca1ae20, 0x259ae: 0x6d301620, 0x259af: 0x6ccc3c20, - 0x259b0: 0x6ccc3e20, - 0x259b7: 0x6d109620, - 0x259b8: 0x6c457420, 0x259b9: 0x6ca3b620, - 0x259bc: 0x6d018420, 0x259bf: 0x6ce53220, - // Block 0x967, offset 0x259c0 - 0x259c6: 0x6d127820, - 0x259c9: 0x6ccbe220, - 0x259cf: 0x6ccaec20, - 0x259d2: 0x6c2cc620, 0x259d3: 0x6d06c220, - 0x259d9: 0x6cc19220, - 0x259e0: 0x6c52b020, 0x259e1: 0x6cd16620, 0x259e2: 0x6ce6ec20, - 0x259f0: 0x6c352e20, - 0x259f5: 0x6c89ea20, 0x259f7: 0x6c53c220, - 0x259f8: 0x6c852020, 0x259fa: 0x6cfdee20, - 0x259fd: 0x6cd0b620, - // Block 0x968, offset 0x25a00 - 0x25a00: 0x6c3d8220, - 0x25a08: 0x6d0dc020, 0x25a09: 0x6cee3220, 0x25a0a: 0x6cb51620, 0x25a0b: 0x6c34a620, - 0x25a0d: 0x6c57b220, 0x25a0e: 0x6cb90c20, - 0x25a10: 0x6d01e020, - 0x25a1d: 0x6c22d620, 0x25a1e: 0x6cd11020, - 0x25a22: 0x6c37dc20, - 0x25a24: 0x6d039a20, 0x25a26: 0x6cea0e20, 0x25a27: 0x6d0ea220, - 0x25a29: 0x6c8b2820, - 0x25a2c: 0x6c9c6e20, - 0x25a38: 0x6d402c20, 0x25a3a: 0x6d3e8020, - 0x25a3c: 0x6c55ba20, 0x25a3d: 0x6d1c9e20, 0x25a3e: 0x6c885620, 0x25a3f: 0x6c266a20, - // Block 0x969, offset 0x25a40 - 0x25a40: 0x6ce4c420, 0x25a41: 0x6ce53e20, - 0x25a4b: 0x6cc6b020, - 0x25a4d: 0x6c00d020, - 0x25a50: 0x6c00e420, 0x25a51: 0x6d309e20, 0x25a52: 0x6c4c4620, 0x25a53: 0x6c92f020, - 0x25a54: 0x6d2f7a20, 0x25a55: 0x6c9c8220, 0x25a56: 0x6c8a2a20, 0x25a57: 0x6d30a020, - 0x25a5b: 0x6cc25020, - 0x25a5c: 0x6c236820, 0x25a5f: 0x6ce65020, - 0x25a61: 0x6ce02c20, 0x25a62: 0x6d2e2820, 0x25a63: 0x6c55e020, - 0x25a65: 0x6cb1da20, 0x25a67: 0x6c267020, - 0x25a68: 0x6cc6d220, - 0x25a6e: 0x6ca52020, - 0x25a73: 0x6ca45a20, - 0x25a74: 0x6c291a20, 0x25a75: 0x6c695c20, - 0x25a7b: 0x6c72b620, - 0x25a7c: 0x6c37ac20, - // Block 0x96a, offset 0x25a80 - 0x25a8a: 0x6c877420, - 0x25a8c: 0x6c4c4e20, 0x25a8d: 0x6cec7e20, - 0x25a92: 0x6ca7ee20, - 0x25a94: 0x6c6c3420, - 0x25aa9: 0x6cb04a20, 0x25aaa: 0x6c1bde20, - 0x25ab2: 0x6cb04c20, 0x25ab3: 0x6d166e20, - 0x25ab4: 0x6c316220, 0x25ab5: 0x6cec1420, 0x25ab6: 0x6d099020, - 0x25ab8: 0x6cb73c20, 0x25ab9: 0x6ccd6c20, - 0x25abc: 0x6d056a20, 0x25abf: 0x6c509020, - // Block 0x96b, offset 0x25ac0 - 0x25ac0: 0x6caca620, 0x25ac2: 0x6cadb420, - 0x25ac4: 0x6d045a20, 0x25ac6: 0x6c1b7e20, 0x25ac7: 0x6cdf9020, - 0x25ac8: 0x6d41a620, 0x25ac9: 0x6d414820, 0x25aca: 0x6cb74c20, 0x25acb: 0x6c316420, - 0x25ad9: 0x6cd70c20, - 0x25adc: 0x6ca2f220, 0x25add: 0x6cf59620, - 0x25ae7: 0x6c179420, - 0x25ae8: 0x6d16d020, 0x25aeb: 0x6d329e20, - 0x25aee: 0x6c70fe20, 0x25aef: 0x6c274c20, - 0x25af1: 0x6cc9fc20, - 0x25af4: 0x6d3ac820, 0x25af5: 0x6ced7620, - 0x25af8: 0x6cc9fe20, 0x25af9: 0x6c04f220, 0x25afa: 0x6c643c20, 0x25afb: 0x6c972c20, - // Block 0x96c, offset 0x25b00 - 0x25b08: 0x6ceb9c20, 0x25b0a: 0x6cb76020, - 0x25b0f: 0x6d3c0c20, - 0x25b10: 0x6ceb0220, 0x25b13: 0x6cb28c20, - 0x25b1d: 0x6cae6220, 0x25b1e: 0x6c7b9a20, 0x25b1f: 0x6d14d820, - 0x25b21: 0x6d018620, 0x25b22: 0x6d264c20, 0x25b23: 0x6c523020, - 0x25b25: 0x6c53f220, 0x25b26: 0x6d32a420, 0x25b27: 0x6c217420, - 0x25b28: 0x6cd35e20, 0x25b29: 0x6cec1c20, 0x25b2b: 0x6d009620, - 0x25b38: 0x6c452a20, - // Block 0x96d, offset 0x25b40 - 0x25b45: 0x6c35fe20, - 0x25b4f: 0x6c7a7220, - 0x25b50: 0x6ca32c20, 0x25b53: 0x6c707420, - 0x25b54: 0x6d088e20, 0x25b55: 0x6cc0fe20, 0x25b56: 0x6c181c20, 0x25b57: 0x6c939620, - 0x25b58: 0x6c511420, 0x25b59: 0x6cd16020, 0x25b5a: 0x6ca44620, - 0x25b5c: 0x6c511620, 0x25b5d: 0x6c13de20, 0x25b5e: 0x6d0bfe20, 0x25b5f: 0x6c450a20, - 0x25b60: 0x6ca81e20, 0x25b62: 0x6c4c6a20, 0x25b63: 0x6d0c8c20, - 0x25b64: 0x6c494e20, 0x25b67: 0x6d360420, - 0x25b68: 0x6c81f420, - 0x25b6f: 0x6c321820, - 0x25b70: 0x6cb78220, 0x25b71: 0x6cc10020, 0x25b72: 0x6c742e20, - // Block 0x96e, offset 0x25b80 - 0x25b81: 0x6c3c4220, 0x25b83: 0x6d06c420, - 0x25b84: 0x6ce9fc20, 0x25b86: 0x6c4e1820, 0x25b87: 0x6c7a4220, - 0x25b8a: 0x6ccff020, 0x25b8b: 0x6d363e20, - 0x25b8d: 0x6cad2c20, 0x25b8e: 0x6d32cc20, 0x25b8f: 0x6c861820, - 0x25b90: 0x6ced2620, 0x25b92: 0x6c391020, 0x25b93: 0x6d033a20, - 0x25b96: 0x6d0bb620, - 0x25b9b: 0x6c709820, - 0x25b9c: 0x6cd0a620, - 0x25bad: 0x6c989020, 0x25baf: 0x6cea7e20, - 0x25bb0: 0x6d3d6620, 0x25bb1: 0x6cf62820, 0x25bb2: 0x6d1b5820, 0x25bb3: 0x6c6db620, - 0x25bb4: 0x6cea5420, 0x25bb7: 0x6c453220, - 0x25bb8: 0x6c620a20, - // Block 0x96f, offset 0x25bc0 - 0x25bcf: 0x6d3ba820, - 0x25bd2: 0x6ce5f220, - 0x25bd4: 0x6d33e220, 0x25bd6: 0x6c604420, - 0x25bda: 0x6d1c8220, 0x25bdb: 0x6cf0aa20, - 0x25bdd: 0x6c593c20, 0x25bde: 0x6ce68620, 0x25bdf: 0x6c150620, - 0x25be2: 0x6c7c8e20, 0x25be3: 0x6cb86e20, - 0x25be4: 0x6c04fc20, 0x25be5: 0x6c13a420, 0x25be6: 0x6ceb8420, 0x25be7: 0x6ca43020, - 0x25be8: 0x6c6a2420, 0x25bea: 0x6d0c1620, - 0x25bec: 0x6ce8ca20, 0x25bee: 0x6cf1e620, - 0x25bf0: 0x6c232020, 0x25bf3: 0x6d06fc20, - 0x25bf4: 0x6d1b6020, 0x25bf7: 0x6c084420, - 0x25bfc: 0x6c935820, - // Block 0x970, offset 0x25c00 - 0x25c01: 0x6d290620, 0x25c02: 0x6c265820, - 0x25c06: 0x6ca84820, 0x25c07: 0x6c71c220, - 0x25c08: 0x6c541620, - 0x25c0c: 0x6c453a20, - 0x25c15: 0x6c541820, 0x25c16: 0x6c76b220, 0x25c17: 0x6c459620, - 0x25c19: 0x6c5b5e20, 0x25c1a: 0x6d01e220, - 0x25c1d: 0x6cf8ba20, 0x25c1e: 0x6c4e2420, 0x25c1f: 0x6c9c6820, - 0x25c21: 0x6cf25c20, 0x25c22: 0x6c5d3620, 0x25c23: 0x6ccabc20, - 0x25c24: 0x6d034220, 0x25c25: 0x6d307220, 0x25c26: 0x6c5dea20, - 0x25c28: 0x6c45a020, 0x25c2b: 0x6cc9e420, - 0x25c2c: 0x6c6c4a20, 0x25c2d: 0x6cebec20, - 0x25c31: 0x6c332420, 0x25c32: 0x6c1aca20, - 0x25c3d: 0x6cf67e20, - // Block 0x971, offset 0x25c40 - 0x25c42: 0x6c9c6a20, 0x25c43: 0x6d29e020, - 0x25c44: 0x6cca8420, - 0x25c53: 0x6cea5e20, - 0x25c54: 0x6d366820, 0x25c55: 0x6cf1ea20, - 0x25c58: 0x6d1a9820, 0x25c59: 0x6cea8220, 0x25c5b: 0x6c1cda20, - 0x25c5c: 0x6d2af020, 0x25c5e: 0x6cff0a20, 0x25c5f: 0x6ca07420, - 0x25c60: 0x6c245820, 0x25c63: 0x6c0b4e20, - 0x25c64: 0x6d04f020, 0x25c67: 0x6d154c20, - 0x25c6e: 0x6c5a6020, - 0x25c70: 0x6d2bf820, 0x25c71: 0x6cdd3620, 0x25c72: 0x6c5cfe20, 0x25c73: 0x6c727e20, - // Block 0x972, offset 0x25c80 - 0x25c81: 0x6c245a20, - 0x25c84: 0x6c5f4020, 0x25c85: 0x6d0a4420, 0x25c86: 0x6cdcfe20, 0x25c87: 0x6c135e20, - 0x25c89: 0x6d18b020, - 0x25c8e: 0x6c0c2220, - 0x25c92: 0x6c74c220, 0x25c93: 0x6c868220, - 0x25c96: 0x6cad9a20, - 0x25c9b: 0x6d289c20, - 0x25c9c: 0x6d134220, 0x25c9e: 0x6c0a5a20, 0x25c9f: 0x6d310020, - 0x25ca0: 0x6d310220, 0x25ca2: 0x6c702420, 0x25ca3: 0x6d309020, - 0x25ca6: 0x6cd60e20, - 0x25caa: 0x6cf6d620, - 0x25cb7: 0x6d065820, - 0x25cb8: 0x6ca3a620, 0x25cb9: 0x6cfb9a20, 0x25cba: 0x6c4bec20, 0x25cbb: 0x6cf0d220, - 0x25cbe: 0x6c60c420, 0x25cbf: 0x6cc9a220, - // Block 0x973, offset 0x25cc0 - 0x25cc2: 0x6c304220, 0x25cc3: 0x6caac820, - 0x25cc4: 0x6c327a20, 0x25cc5: 0x6d32fc20, 0x25cc6: 0x6c7a6420, - 0x25cc9: 0x6ca01c20, - 0x25cd5: 0x6c05d820, 0x25cd6: 0x6c5c5020, - 0x25cd9: 0x6d3fc620, - 0x25ce8: 0x6cca5c20, 0x25cea: 0x6ce29420, 0x25ceb: 0x6d157220, - 0x25ced: 0x6d241620, - 0x25cf1: 0x6d123220, 0x25cf2: 0x6ca94a20, - 0x25cf4: 0x6c1dfa20, 0x25cf5: 0x6c5d4820, 0x25cf7: 0x6c337620, - 0x25cf9: 0x6cb7f220, 0x25cfa: 0x6d1d1820, 0x25cfb: 0x6c0e3420, - 0x25cfc: 0x6ca92e20, 0x25cfd: 0x6c5a1a20, - // Block 0x974, offset 0x25d00 - 0x25d06: 0x6d1d1a20, - 0x25d0a: 0x6c05da20, - 0x25d0e: 0x6c4a2820, 0x25d0f: 0x6c82f620, - 0x25d10: 0x6d421020, - 0x25d19: 0x6c15fe20, - 0x25d23: 0x6c660a20, - 0x25d27: 0x6c9b9220, - 0x25d29: 0x6d002820, - 0x25d2f: 0x6d035620, - 0x25d31: 0x6c849e20, - 0x25d3a: 0x6cbc2e20, - 0x25d3f: 0x6cf05c20, - // Block 0x975, offset 0x25d40 - 0x25d40: 0x6ca37620, 0x25d42: 0x6cacee20, - 0x25d44: 0x6c829020, 0x25d47: 0x6c958220, - 0x25d4b: 0x6c946220, - 0x25d4d: 0x6c44ea20, 0x25d4f: 0x6c946420, - 0x25d52: 0x6cc22220, - 0x25d56: 0x6c959020, - 0x25d58: 0x6ca46820, 0x25d5b: 0x6c959220, - 0x25d5c: 0x6d273e20, - 0x25d62: 0x6cd71a20, - 0x25d65: 0x6c9d3e20, 0x25d66: 0x6cede820, 0x25d67: 0x6c12f420, - 0x25d68: 0x6c64a620, 0x25d69: 0x6cee2020, - 0x25d6f: 0x6c637e20, - 0x25d74: 0x6c58c020, - 0x25d78: 0x6c894220, 0x25d79: 0x6d3f2c20, 0x25d7a: 0x6c040a20, 0x25d7b: 0x6cd43c20, - 0x25d7e: 0x6cecf220, - // Block 0x976, offset 0x25d80 - 0x25d82: 0x6cd4c420, - 0x25d87: 0x6c4a4e20, - 0x25d88: 0x6cf5cc20, 0x25d8a: 0x6cc79c20, 0x25d8b: 0x6d11fe20, - 0x25d8e: 0x6c42c220, - 0x25d95: 0x6d26d220, - 0x25d98: 0x6d1da820, 0x25d99: 0x6cec3c20, 0x25d9a: 0x6c0f4620, - 0x25d9f: 0x6d034e20, - 0x25da2: 0x6cb0c620, 0x25da3: 0x6c0f7820, - 0x25da6: 0x6c4d7e20, 0x25da7: 0x6d2d5220, - 0x25da8: 0x6cf33020, 0x25daa: 0x6d138420, 0x25dab: 0x6c0ab820, - 0x25dac: 0x6c4d8620, - 0x25db8: 0x6c1c0220, 0x25dbb: 0x6d360620, - 0x25dbd: 0x6ca5dc20, - // Block 0x977, offset 0x25dc0 - 0x25dc1: 0x6cf3d420, 0x25dc2: 0x6c006e20, - 0x25dc8: 0x6c006a20, 0x25dc9: 0x6d229220, 0x25dca: 0x6c1c7020, - 0x25dcd: 0x6c6eac20, 0x25dce: 0x6d371020, 0x25dcf: 0x6d372c20, - 0x25dd0: 0x6d372e20, 0x25dd1: 0x6c70ee20, - 0x25dd6: 0x6c4dd820, - 0x25dda: 0x6cb24c20, - 0x25ddd: 0x6d11a620, - 0x25de3: 0x6d1f1e20, - 0x25de4: 0x6cb25420, 0x25de6: 0x6ca11020, - 0x25dec: 0x6d429e20, 0x25ded: 0x6cb38e20, 0x25def: 0x6d091220, - 0x25df0: 0x6c7bc420, 0x25df1: 0x6d17bc20, 0x25df2: 0x6cb39020, - 0x25dfb: 0x6d3c9c20, - // Block 0x978, offset 0x25e00 - 0x25e03: 0x6ca5fa20, - 0x25e04: 0x6cc0b020, 0x25e05: 0x6c23f820, - 0x25e0c: 0x6d11cc20, - 0x25e11: 0x6c3b9820, - 0x25e15: 0x6cf9f420, 0x25e17: 0x6c677c20, - 0x25e18: 0x6c13b220, 0x25e1b: 0x6d000e20, - 0x25e1c: 0x6c13b420, - 0x25e22: 0x6c1a5020, 0x25e23: 0x6c257e20, - 0x25e27: 0x6cbf7c20, - 0x25e29: 0x6d245220, 0x25e2b: 0x6d21d820, - 0x25e2f: 0x6cf21620, - 0x25e31: 0x6c13c020, 0x25e32: 0x6d22ae20, - 0x25e39: 0x6d425420, 0x25e3a: 0x6c29fc20, - 0x25e3d: 0x6c73a820, 0x25e3e: 0x6c29fe20, 0x25e3f: 0x6d1c4c20, - // Block 0x979, offset 0x25e40 - 0x25e41: 0x6c3cd420, - 0x25e45: 0x6cf27a20, - 0x25e48: 0x6c6cf620, 0x25e49: 0x6cb76e20, 0x25e4b: 0x6cbe0e20, - 0x25e4d: 0x6c7dee20, 0x25e4f: 0x6cdf9e20, - 0x25e50: 0x6cfa9420, 0x25e52: 0x6ce46420, - 0x25e54: 0x6c7df620, 0x25e56: 0x6ce53a20, - 0x25e58: 0x6c556420, 0x25e59: 0x6d39aa20, 0x25e5a: 0x6d2d7620, 0x25e5b: 0x6cde5820, - 0x25e5d: 0x6ce46e20, 0x25e5e: 0x6cde6820, 0x25e5f: 0x6cde8020, - 0x25e60: 0x6c574820, 0x25e61: 0x6d0dc220, 0x25e62: 0x6ce61620, - 0x25e64: 0x6ce61820, 0x25e65: 0x6cde8220, - 0x25e6c: 0x6c581020, 0x25e6e: 0x6c63e620, 0x25e6f: 0x6cb7e020, - 0x25e71: 0x6cdeae20, - 0x25e74: 0x6cdfc220, 0x25e75: 0x6c57ce20, - 0x25e78: 0x6d3bf620, 0x25e79: 0x6c572220, - 0x25e7c: 0x6c800c20, - // Block 0x97a, offset 0x25e80 - 0x25e86: 0x6d420420, 0x25e87: 0x6d169820, - 0x25e88: 0x6c3dfe20, 0x25e89: 0x6cf4bc20, 0x25e8b: 0x6c3e0020, - 0x25e8d: 0x6c2f5620, 0x25e8e: 0x6cde3c20, - 0x25e96: 0x6c17b820, - 0x25e99: 0x6cc64220, 0x25e9a: 0x6cc35620, - 0x25e9c: 0x6c438420, - 0x25ea1: 0x6c3e6620, 0x25ea2: 0x6c2c4c20, 0x25ea3: 0x6c2dc620, - 0x25ea4: 0x6d1e3020, 0x25ea6: 0x6c643e20, - 0x25ea9: 0x6c8f8e20, - 0x25eac: 0x6d1e3220, 0x25ead: 0x6cafe020, 0x25eaf: 0x6c5d7820, - 0x25eb0: 0x6cbf3020, 0x25eb2: 0x6c38a020, 0x25eb3: 0x6cf3d620, - 0x25eb4: 0x6ce74e20, 0x25eb5: 0x6c4f7e20, - 0x25eb8: 0x6cdfac20, - 0x25ebe: 0x6c525020, - // Block 0x97b, offset 0x25ec0 - 0x25ec4: 0x6ce56220, - 0x25ec8: 0x6d388e20, 0x25ecb: 0x6c045420, - 0x25ecc: 0x6d01e420, 0x25ecd: 0x6c29c620, 0x25ecf: 0x6c6c4c20, - 0x25ed5: 0x6c54ec20, 0x25ed6: 0x6c06b620, - 0x25ed8: 0x6c2fb220, - 0x25edc: 0x6caac420, 0x25edd: 0x6cf0c620, 0x25ede: 0x6d218c20, - 0x25ee0: 0x6d039c20, 0x25ee1: 0x6c3ee020, 0x25ee2: 0x6cfd0020, 0x25ee3: 0x6cb7c420, - 0x25ee4: 0x6ce87820, 0x25ee7: 0x6c609420, - 0x25ee9: 0x6d1d4620, 0x25eeb: 0x6c2ae420, - 0x25eec: 0x6ceeb020, 0x25eed: 0x6cf6ae20, 0x25eef: 0x6cac0220, - 0x25ef1: 0x6cd12020, 0x25ef2: 0x6d1fec20, - 0x25ef4: 0x6c005220, 0x25ef5: 0x6c66d220, 0x25ef7: 0x6c466020, - 0x25ef8: 0x6cc93020, - 0x25efc: 0x6c462220, 0x25eff: 0x6ccc6e20, - // Block 0x97c, offset 0x25f00 - 0x25f00: 0x6ce13a20, - 0x25f07: 0x6c92f220, - 0x25f08: 0x6c027820, 0x25f0a: 0x6cb7ee20, 0x25f0b: 0x6d04fc20, - 0x25f0d: 0x6c271020, - 0x25f11: 0x6c382a20, 0x25f12: 0x6cf0f420, - 0x25f14: 0x6c341020, 0x25f15: 0x6c8a3a20, 0x25f16: 0x6c386620, 0x25f17: 0x6c5a1c20, - 0x25f18: 0x6c74dc20, 0x25f19: 0x6cdec020, 0x25f1a: 0x6d422020, 0x25f1b: 0x6cc53020, - 0x25f1c: 0x6c117a20, 0x25f1d: 0x6ce2c020, - 0x25f20: 0x6c57d020, 0x25f21: 0x6d05fe20, 0x25f23: 0x6d2dae20, - 0x25f27: 0x6c41f420, - 0x25f2a: 0x6caeea20, 0x25f2b: 0x6c118020, - 0x25f2c: 0x6d005820, 0x25f2d: 0x6c26d020, - 0x25f31: 0x6c62d020, - 0x25f36: 0x6c854820, - 0x25f39: 0x6cac9020, - 0x25f3d: 0x6c8ffa20, 0x25f3e: 0x6c877620, 0x25f3f: 0x6cf7c220, - // Block 0x97d, offset 0x25f40 - 0x25f40: 0x6ce2d620, 0x25f43: 0x6c8dac20, - 0x25f48: 0x6c855820, 0x25f49: 0x6cc4a220, 0x25f4a: 0x6c8df420, - 0x25f4e: 0x6c4bca20, - 0x25f54: 0x6cb30a20, 0x25f55: 0x6ca11220, 0x25f56: 0x6cabf020, - 0x25f59: 0x6c03b420, - 0x25f61: 0x6cb62820, - 0x25f64: 0x6d0cc420, - 0x25f6a: 0x6cec3e20, 0x25f6b: 0x6c020c20, - 0x25f6d: 0x6ca04a20, 0x25f6e: 0x6c9fca20, 0x25f6f: 0x6d0ab220, - 0x25f70: 0x6c9b9420, 0x25f73: 0x6c48d620, - 0x25f76: 0x6c682420, - 0x25f7b: 0x6c410a20, - // Block 0x97e, offset 0x25f80 - 0x25f81: 0x6c110a20, 0x25f82: 0x6cf4ac20, 0x25f83: 0x6d301820, - 0x25f84: 0x6cc58820, 0x25f85: 0x6c79b420, - 0x25f94: 0x6d2f8a20, 0x25f95: 0x6d37a220, 0x25f96: 0x6cc00a20, 0x25f97: 0x6c4c1420, - 0x25f98: 0x6c456a20, 0x25f99: 0x6cb40220, 0x25f9a: 0x6c566c20, 0x25f9b: 0x6c9e0820, - 0x25f9e: 0x6ce45a20, - 0x25fa3: 0x6cee0020, - 0x25fb8: 0x6d3a0020, 0x25fb9: 0x6c268a20, 0x25fba: 0x6d048e20, 0x25fbb: 0x6ca2d420, - 0x25fbe: 0x6c72de20, - // Block 0x97f, offset 0x25fc0 - 0x25fc1: 0x6ca71a20, - 0x25fc8: 0x6c567820, 0x25fc9: 0x6ccbd420, - 0x25fdc: 0x6d33b820, 0x25fdf: 0x6cdde420, - 0x25fe1: 0x6cd7d820, - 0x25fe5: 0x6d170820, - 0x25fed: 0x6cbf1020, 0x25fee: 0x6d35c820, 0x25fef: 0x6c939220, - 0x25ff0: 0x6cc79e20, 0x25ff2: 0x6cb5ac20, 0x25ff3: 0x6d224020, - 0x25ff4: 0x6d386a20, 0x25ff5: 0x6d0fa620, 0x25ff6: 0x6cfc0420, 0x25ff7: 0x6ca1cc20, - 0x25ff8: 0x6c1d9a20, 0x25ff9: 0x6c5aa820, 0x25ffa: 0x6c6f6420, 0x25ffb: 0x6c6fec20, - 0x25ffc: 0x6cb19220, - // Block 0x980, offset 0x26000 - 0x26001: 0x6c699220, 0x26003: 0x6c48c620, - 0x26005: 0x6ca0fe20, - 0x26010: 0x6cf5ce20, 0x26011: 0x6cb43220, - 0x2602f: 0x6c61d420, - 0x26036: 0x6cf1da20, 0x26037: 0x6c071620, - 0x26038: 0x6d15ea20, 0x26039: 0x6c3e6a20, 0x2603a: 0x6cd7e420, 0x2603b: 0x6c72f020, - 0x2603c: 0x6c61f620, 0x2603e: 0x6ca69a20, - // Block 0x981, offset 0x26040 - 0x26040: 0x6c07b620, - 0x26045: 0x6d06c620, - 0x26048: 0x6cbdd220, 0x26049: 0x6c0ef820, - 0x2604c: 0x6cede620, 0x2604d: 0x6d30f620, 0x2604f: 0x6cf2e620, - 0x26050: 0x6ccea420, 0x26051: 0x6d2a8020, 0x26052: 0x6d101820, - 0x26055: 0x6cd98a20, 0x26056: 0x6ca82020, - 0x2605b: 0x6c098620, - 0x26063: 0x6c242420, - 0x26064: 0x6cbab220, - 0x2606a: 0x6cffe620, 0x2606b: 0x6d33d620, - 0x2606c: 0x6ccf1020, 0x2606f: 0x6d360820, - 0x26070: 0x6cae7020, - // Block 0x982, offset 0x26080 - 0x2608f: 0x6c2e1e20, - 0x26096: 0x6cf2f820, - 0x26098: 0x6d352020, 0x26099: 0x6c098820, 0x2609b: 0x6c3b7020, - 0x260a5: 0x6c052a20, - 0x260aa: 0x6cc06c20, 0x260ab: 0x6ca63a20, - 0x260ac: 0x6c0f0620, 0x260ad: 0x6c33f220, 0x260af: 0x6cd2d020, - 0x260b0: 0x6d05a220, 0x260b1: 0x6c16ac20, 0x260b2: 0x6d05a420, 0x260b3: 0x6d128020, - 0x260b4: 0x6c9c5620, - 0x260b8: 0x6d02d620, 0x260b9: 0x6d3d6820, 0x260ba: 0x6c3ff620, - 0x260bd: 0x6cb06020, 0x260be: 0x6d095e20, - // Block 0x983, offset 0x260c0 - 0x260c0: 0x6d235020, 0x260c1: 0x6cfb6020, 0x260c2: 0x6d235220, 0x260c3: 0x6d213420, - 0x260c5: 0x6c709a20, 0x260c6: 0x6cddec20, 0x260c7: 0x6c797c20, - 0x260ca: 0x6d32ce20, 0x260cb: 0x6c9b1a20, - 0x260cc: 0x6c428420, - 0x260d2: 0x6ca28a20, 0x260d3: 0x6cf7ea20, - 0x260d4: 0x6c09aa20, 0x260d6: 0x6c3ff820, - 0x260dc: 0x6cfff420, - 0x260e0: 0x6c6f7620, 0x260e3: 0x6c468820, - 0x260f0: 0x6c1b2820, 0x260f1: 0x6c6f7820, 0x260f2: 0x6c6f7a20, - 0x260f5: 0x6ccbf820, 0x260f7: 0x6c3a0820, - // Block 0x984, offset 0x26100 - 0x2612b: 0x6c3e8c20, - 0x2612f: 0x6ced8a20, - 0x26130: 0x6d05a620, 0x26131: 0x6c0e7620, - // Block 0x985, offset 0x26140 - 0x26141: 0x6c504820, 0x26143: 0x6d00c420, - 0x26144: 0x6cb11820, 0x26145: 0x6d227420, 0x26147: 0x6ce4ae20, - 0x26148: 0x6cb00020, 0x2614a: 0x6cd2d220, 0x2614b: 0x6c7afc20, - 0x2614c: 0x6c5ef020, 0x2614f: 0x6d2be420, - 0x26150: 0x6ca3cc20, 0x26151: 0x6ca20620, 0x26153: 0x6c3ea620, - 0x26154: 0x6c326820, 0x26157: 0x6cd13e20, - 0x26158: 0x6c13ee20, 0x2615a: 0x6c1b3820, 0x2615b: 0x6c4b0820, - 0x2615c: 0x6c9f6620, 0x2615d: 0x6ce0c220, 0x2615e: 0x6c044c20, 0x2615f: 0x6cbac220, - 0x26161: 0x6d3d7420, 0x26162: 0x6cf0ac20, 0x26163: 0x6d0a1e20, - 0x26165: 0x6c9e9620, 0x26166: 0x6d290820, 0x26167: 0x6d1f4a20, - 0x26169: 0x6d204c20, 0x2616b: 0x6cccee20, - 0x2616c: 0x6c514220, 0x2616d: 0x6c93a220, 0x2616e: 0x6d347820, - 0x26172: 0x6c6e9020, 0x26173: 0x6d317020, - 0x26176: 0x6c9b2620, 0x26177: 0x6d1f4c20, - 0x26179: 0x6cf30020, 0x2617a: 0x6c038620, - 0x2617d: 0x6c737820, 0x2617e: 0x6cc7b220, 0x2617f: 0x6c23f220, - // Block 0x986, offset 0x26180 - 0x26180: 0x6d33fc20, - 0x26189: 0x6c557620, 0x2618a: 0x6d0f5c20, - 0x2618c: 0x6c75d020, 0x2618d: 0x6ccf1c20, 0x2618e: 0x6c79f220, - 0x26191: 0x6cb9a820, - 0x26194: 0x6c9b2820, - 0x2619a: 0x6ce58c20, - // Block 0x987, offset 0x261c0 - 0x261d0: 0x6ca84a20, - 0x261df: 0x6c1b3a20, - 0x261e1: 0x6d047220, 0x261e3: 0x6c5d3820, - 0x261e6: 0x6c2b8020, 0x261e7: 0x6c80d620, - 0x261e9: 0x6d2a1a20, 0x261ea: 0x6c130a20, 0x261eb: 0x6cdd8420, - 0x261ec: 0x6d412c20, 0x261ed: 0x6cdbd020, 0x261ef: 0x6cf9e020, - 0x261f1: 0x6d01e620, - 0x261f4: 0x6c6b1220, 0x261f5: 0x6d1f5820, 0x261f7: 0x6c46ca20, - 0x261f8: 0x6c451620, - 0x261fc: 0x6c75d820, 0x261fd: 0x6c5a5e20, 0x261fe: 0x6c607420, 0x261ff: 0x6cb3ca20, - // Block 0x988, offset 0x26200 - 0x26200: 0x6cf37820, 0x26202: 0x6d183420, - 0x26205: 0x6ca3a420, 0x26207: 0x6cc71820, - 0x26208: 0x6ca40820, 0x2620a: 0x6cb2c020, 0x2620b: 0x6ccd9420, - 0x2620c: 0x6c2dd820, 0x2620d: 0x6c607620, 0x2620e: 0x6c571420, 0x2620f: 0x6c335620, - 0x26210: 0x6c79a020, 0x26211: 0x6cde8620, 0x26213: 0x6c53c620, - 0x26215: 0x6cd4f820, - 0x26219: 0x6c526a20, 0x2621a: 0x6c3bc020, - 0x26232: 0x6c79fa20, - // Block 0x989, offset 0x26240 - 0x26259: 0x6ca70220, - 0x2625d: 0x6c1e9e20, - 0x26266: 0x6cbb5a20, - 0x26272: 0x6cf8bc20, 0x26273: 0x6c558020, - 0x26274: 0x6cd99620, 0x26275: 0x6cf30a20, 0x26277: 0x6c4d7620, - 0x26278: 0x6cc7b820, 0x26279: 0x6c9b3020, 0x2627b: 0x6cca2420, - 0x2627d: 0x6cf3de20, 0x2627f: 0x6d1f6420, - // Block 0x98a, offset 0x26280 - 0x26281: 0x6cdfba20, 0x26282: 0x6cd01220, - 0x26286: 0x6cb71220, - 0x26288: 0x6c4c8420, 0x26289: 0x6cb87420, 0x2628a: 0x6cfad020, - 0x2628f: 0x6cdbd620, - 0x26290: 0x6c92b020, 0x26293: 0x6cb52620, - 0x26294: 0x6c2ddc20, 0x26297: 0x6cb64020, - 0x26298: 0x6c63dc20, 0x26299: 0x6d1f6620, 0x2629a: 0x6cf79e20, 0x2629b: 0x6c177a20, - 0x262a1: 0x6c9d7e20, 0x262a2: 0x6c911820, 0x262a3: 0x6c08f220, - 0x262aa: 0x6cadec20, - 0x262ae: 0x6d318e20, 0x262af: 0x6cd01420, - 0x262b0: 0x6c15da20, 0x262b1: 0x6c403a20, - 0x262b6: 0x6cc13820, 0x262b7: 0x6cd82220, - 0x262ba: 0x6d417a20, - // Block 0x98b, offset 0x262c0 - 0x262eb: 0x6d2fd620, - 0x262fd: 0x6cb01220, - // Block 0x98c, offset 0x26300 - 0x26300: 0x6c23fa20, - 0x26306: 0x6c42e220, 0x26307: 0x6c31b620, - 0x26309: 0x6c3da420, 0x2630a: 0x6c492620, 0x2630b: 0x6ccae620, - 0x2630c: 0x6cda2a20, 0x2630d: 0x6c65da20, 0x2630e: 0x6cb3e020, - 0x26310: 0x6c11ac20, 0x26311: 0x6c085020, 0x26312: 0x6ca20c20, 0x26313: 0x6d2f7420, - 0x26314: 0x6cff9a20, 0x26316: 0x6c715c20, 0x26317: 0x6cd50620, - 0x26318: 0x6c65dc20, 0x26319: 0x6c844e20, 0x2631b: 0x6c203e20, - 0x2631c: 0x6c81e220, 0x2631e: 0x6c51ea20, 0x2631f: 0x6c55bc20, - 0x26320: 0x6c473220, 0x26321: 0x6d2f0c20, 0x26322: 0x6c6b3620, 0x26323: 0x6cfe5620, - 0x26325: 0x6c317820, 0x26326: 0x6c4e3220, 0x26327: 0x6c63e820, - 0x26328: 0x6cfe5820, 0x26329: 0x6c60ae20, 0x2632a: 0x6cd56c20, 0x2632b: 0x6c812e20, - 0x2632c: 0x6c5f4220, 0x2632d: 0x6ccd0e20, - 0x26330: 0x6ce1ee20, 0x26331: 0x6d3e8e20, 0x26332: 0x6cd69620, - 0x26334: 0x6c60b020, 0x26335: 0x6c1f7820, 0x26336: 0x6c628020, 0x26337: 0x6cd01c20, - 0x26338: 0x6c8c6820, 0x26339: 0x6c8a2020, 0x2633b: 0x6cca2a20, - 0x2633d: 0x6c019220, 0x2633e: 0x6cc87c20, - // Block 0x98d, offset 0x26340 - 0x26340: 0x6ce37820, 0x26341: 0x6c28b820, 0x26343: 0x6c589c20, - 0x26345: 0x6cc99420, - // Block 0x98e, offset 0x26380 - 0x26386: 0x6cc8a420, 0x26387: 0x6cf38020, - 0x26388: 0x6c729620, 0x26389: 0x6c589e20, 0x2638a: 0x6c838620, 0x2638b: 0x6c92dc20, - 0x2638e: 0x6cdfbe20, 0x2638f: 0x6d2b9620, - 0x26393: 0x6cb9ca20, - 0x26397: 0x6cf6d820, - 0x263a1: 0x6c22a220, 0x263a2: 0x6ccf2620, - 0x263a7: 0x6cc99620, - 0x263aa: 0x6c99bc20, 0x263ab: 0x6cc1da20, - 0x263ad: 0x6c0f7a20, 0x263ae: 0x6c41f020, - 0x263b0: 0x6cbcea20, 0x263b1: 0x6c739a20, 0x263b2: 0x6c290e20, 0x263b3: 0x6c16cc20, - 0x263b4: 0x6d0fde20, 0x263b5: 0x6c518020, 0x263b7: 0x6c5f5c20, - 0x263b9: 0x6c0df820, 0x263bb: 0x6c9a3020, - 0x263bf: 0x6c33b820, - // Block 0x98f, offset 0x263c0 - 0x263c0: 0x6c02b020, 0x263c1: 0x6c6dd820, 0x263c2: 0x6c92f420, 0x263c3: 0x6c9e6620, - 0x263c4: 0x6c2d8a20, 0x263c5: 0x6c51f220, 0x263c7: 0x6c650420, - 0x263ca: 0x6c575e20, 0x263cb: 0x6c466220, - 0x263ce: 0x6c92f620, 0x263cf: 0x6c3f0a20, - 0x263d0: 0x6c5b7220, 0x263d2: 0x6d2b6620, - 0x263d4: 0x6c6d6220, 0x263d5: 0x6cd83420, 0x263d6: 0x6cc43e20, - 0x263dc: 0x6c28cc20, 0x263de: 0x6ced9e20, 0x263df: 0x6c0b5620, - 0x263e4: 0x6c63ee20, - 0x263eb: 0x6c284e20, - 0x263ec: 0x6c6f8a20, 0x263ed: 0x6cfb9c20, 0x263ee: 0x6c0f7c20, - // Block 0x990, offset 0x26400 - 0x2640f: 0x6cfa0020, - 0x26411: 0x6c0c3220, - 0x26415: 0x6cb3a820, - 0x26418: 0x6ccae820, 0x26419: 0x6c076620, 0x2641a: 0x6ccc8020, 0x2641b: 0x6cf02e20, - 0x2641d: 0x6c123e20, 0x2641e: 0x6c92f820, - 0x26429: 0x6c28ce20, 0x2642b: 0x6c47e820, - 0x2642c: 0x6d289e20, 0x2642d: 0x6c055820, 0x2642e: 0x6c423820, - 0x26431: 0x6c175420, 0x26432: 0x6c62ae20, 0x26433: 0x6c8ab620, - 0x26435: 0x6cbf7e20, 0x26436: 0x6c66f420, 0x26437: 0x6c930a20, - 0x26438: 0x6c32a620, 0x26439: 0x6cdb8a20, 0x2643a: 0x6d116020, 0x2643b: 0x6d1b1620, - 0x2643d: 0x6cdec220, 0x2643e: 0x6d116220, 0x2643f: 0x6c6de020, - // Block 0x991, offset 0x26440 - 0x26440: 0x6c1ebc20, 0x26441: 0x6c3f1220, 0x26442: 0x6d25c220, 0x26443: 0x6ccebc20, - 0x26445: 0x6c0e3620, 0x26446: 0x6c299e20, 0x26447: 0x6cd3f820, - 0x2644a: 0x6c916420, 0x2644b: 0x6cbcf220, - 0x2644c: 0x6c955c20, 0x2644d: 0x6cb3ae20, 0x2644f: 0x6c9b7a20, - 0x26450: 0x6c6b6620, 0x26453: 0x6c5f7220, - 0x26456: 0x6c930c20, - // Block 0x992, offset 0x26480 - 0x26484: 0x6c172a20, 0x26485: 0x6c9f0020, 0x26486: 0x6c9b7c20, 0x26487: 0x6c660220, - 0x2648a: 0x6c114020, - 0x2648c: 0x6cdb5220, - 0x26494: 0x6c51fe20, 0x26495: 0x6cc9aa20, 0x26497: 0x6d3eae20, - 0x26498: 0x6c795e20, 0x26499: 0x6c452220, 0x2649a: 0x6cd83a20, - 0x264a0: 0x6ce3a420, 0x264a1: 0x6d2e8e20, 0x264a2: 0x6d026420, 0x264a3: 0x6cd70020, - 0x264a4: 0x6c1bcc20, 0x264a5: 0x6d1ec620, 0x264a6: 0x6c91f820, 0x264a7: 0x6c9c1a20, - 0x264a8: 0x6c8b6020, 0x264a9: 0x6cd8f620, - 0x264ac: 0x6cf71820, 0x264ad: 0x6c38da20, 0x264ae: 0x6c3db820, 0x264af: 0x6cd08820, - 0x264b0: 0x6ce3a620, 0x264b1: 0x6c14a420, 0x264b2: 0x6d270620, - 0x264b4: 0x6c3dba20, 0x264b5: 0x6c670220, 0x264b6: 0x6c2cb020, - 0x264ba: 0x6d011a20, 0x264bb: 0x6c281220, - 0x264bf: 0x6d34b020, - // Block 0x993, offset 0x264c0 - 0x264c3: 0x6d075620, - 0x264c8: 0x6ca89820, 0x264c9: 0x6c397420, 0x264ca: 0x6c9b8820, 0x264cb: 0x6c9fd420, - 0x264fe: 0x6c90d220, 0x264ff: 0x6c31e820, - // Block 0x994, offset 0x26500 - 0x26501: 0x6d2e9620, 0x26502: 0x6c671020, 0x26503: 0x6c4f2e20, - 0x26504: 0x6c28e220, 0x26505: 0x6ccbb220, 0x26506: 0x6c671220, 0x26507: 0x6ce03e20, - 0x26508: 0x6c696c20, 0x26509: 0x6cb34220, 0x2650b: 0x6cb2e420, - 0x2650d: 0x6d3bf820, 0x2650f: 0x6c8a4c20, - 0x26510: 0x6d3f6620, 0x26512: 0x6d3dd820, - 0x26514: 0x6c56de20, - 0x26519: 0x6cf92020, 0x2651b: 0x6c9b9620, - 0x2651c: 0x6c72ba20, 0x2651d: 0x6c9f0c20, 0x2651e: 0x6cfbcc20, - 0x26520: 0x6c7d3820, 0x26521: 0x6c9b9820, 0x26522: 0x6c653420, - 0x26526: 0x6caa0a20, - 0x26528: 0x6c2cb220, 0x26529: 0x6ccad220, - // Block 0x995, offset 0x26540 - 0x2654f: 0x6c1f8c20, - 0x26550: 0x6d34bc20, 0x26551: 0x6cb9e220, 0x26552: 0x6c93c420, - 0x26554: 0x6d3ddc20, - 0x26558: 0x6d42b020, 0x26559: 0x6c4e4820, 0x2655a: 0x6cdc1820, 0x2655b: 0x6c46e220, - 0x2655d: 0x6c1e3c20, 0x2655e: 0x6c62da20, 0x2655f: 0x6d194820, - 0x26560: 0x6d21f020, - 0x26568: 0x6caa0c20, 0x26569: 0x6ca66420, 0x2656a: 0x6cc93620, - 0x2656e: 0x6c8c0820, - 0x26571: 0x6ca93820, - // Block 0x996, offset 0x26580 - 0x2658d: 0x6cbc1620, 0x2658e: 0x6d117c20, 0x2658f: 0x6c409c20, - 0x26590: 0x6cd6b620, 0x26591: 0x6c7d3e20, 0x26592: 0x6cc21220, 0x26593: 0x6c304a20, - 0x26594: 0x6cd58a20, - 0x2659a: 0x6c84c020, 0x2659b: 0x6c719220, - 0x2659c: 0x6cc8bc20, - 0x265a0: 0x6d2c6c20, - 0x265a4: 0x6cff5420, - 0x265b8: 0x6c9ae220, 0x265b9: 0x6cd29820, 0x265ba: 0x6c2cfc20, 0x265bb: 0x6c878e20, - 0x265bc: 0x6c2b0420, 0x265bd: 0x6d29c420, 0x265bf: 0x6c958420, - // Block 0x997, offset 0x265c0 - 0x265c0: 0x6c11c620, 0x265c3: 0x6c023c20, - 0x265c6: 0x6c663620, - 0x265c8: 0x6c2e5020, 0x265cb: 0x6d1cd820, - 0x265d6: 0x6d197220, 0x265d7: 0x6c294620, - 0x265d8: 0x6caa1220, 0x265da: 0x6d272620, - 0x265ee: 0x6c855620, 0x265ef: 0x6c84e220, - 0x265f0: 0x6c56f620, 0x265f2: 0x6d206420, - 0x265fa: 0x6ca48420, - // Block 0x998, offset 0x26600 - 0x26602: 0x6c194a20, - 0x26609: 0x6c3c9220, 0x2660a: 0x6c0cd220, - 0x2660f: 0x6c97d820, - 0x26610: 0x6c424a20, 0x26611: 0x6c5e6020, 0x26613: 0x6c241c20, - 0x26615: 0x6d200020, - 0x26618: 0x6d206620, - 0x2661c: 0x6d057c20, - 0x26621: 0x6d06b020, 0x26622: 0x6c561820, 0x26623: 0x6c915020, - 0x26625: 0x6cf9b820, 0x26626: 0x6d177420, - 0x2662e: 0x6c561e20, 0x2662f: 0x6c569020, - 0x26630: 0x6d3f0a20, - 0x26637: 0x6c458c20, - 0x26638: 0x6ce99220, 0x26639: 0x6cf36a20, 0x2663a: 0x6c8d2020, 0x2663b: 0x6c472020, - 0x2663c: 0x6d37be20, - // Block 0x999, offset 0x26640 - 0x26644: 0x6c915820, - 0x26648: 0x6d412e20, - 0x2664c: 0x6ce76a20, 0x2664d: 0x6cf97020, 0x2664e: 0x6c515c20, - 0x26653: 0x6d26e220, - 0x26659: 0x6ca40c20, 0x2665a: 0x6c0f4820, 0x2665b: 0x6c54fa20, - 0x2665c: 0x6cb7e220, 0x2665d: 0x6cd53a20, 0x2665e: 0x6cbadc20, 0x2665f: 0x6d38ae20, - 0x26660: 0x6d122620, 0x26661: 0x6c473420, - 0x26665: 0x6c049e20, 0x26666: 0x6c76ec20, - 0x2666e: 0x6c517620, 0x2666f: 0x6c628420, - 0x26670: 0x6c55be20, 0x26671: 0x6d0cde20, - 0x26676: 0x6c212020, 0x26677: 0x6c2f8620, - 0x26678: 0x6cbfce20, 0x26679: 0x6c543620, - 0x2667c: 0x6c507420, 0x2667f: 0x6d413220, - // Block 0x99a, offset 0x26680 - 0x26681: 0x6cfbb820, - 0x26684: 0x6cfa5220, 0x26685: 0x6cf91820, - 0x26688: 0x6ccb8420, - 0x2668c: 0x6c445a20, 0x2668d: 0x6cf92220, - 0x26691: 0x6c445e20, - 0x26694: 0x6c93c620, 0x26696: 0x6c446020, 0x26697: 0x6c78ea20, - 0x26699: 0x6cd48a20, 0x2669a: 0x6d3b5020, - 0x2669c: 0x6ce2de20, 0x2669d: 0x6d0b7820, 0x2669e: 0x6ca67c20, - 0x266a6: 0x6c95e220, 0x266a7: 0x6cdbae20, - 0x266aa: 0x6c159e20, - 0x266ad: 0x6cf4cc20, 0x266af: 0x6d208220, - 0x266b9: 0x6d2a4420, 0x266bb: 0x6d174420, - 0x266bc: 0x6cf5d220, 0x266bd: 0x6c533620, 0x266be: 0x6cc2ce20, 0x266bf: 0x6cee0c20, - // Block 0x99b, offset 0x266c0 - 0x266c0: 0x6c1b9820, 0x266c1: 0x6cf87420, 0x266c2: 0x6ce4e020, 0x266c3: 0x6d27e420, - 0x266c5: 0x6d13e220, 0x266c6: 0x6c600620, 0x266c7: 0x6c5aaa20, - 0x266c8: 0x6c3d1620, 0x266ca: 0x6c3f5420, - 0x266cd: 0x6c600820, 0x266ce: 0x6d080a20, - 0x266d1: 0x6cdf6c20, 0x266d3: 0x6c324e20, - 0x266d7: 0x6d255620, - 0x266db: 0x6c2c3220, - 0x266de: 0x6d3a6620, 0x266df: 0x6cdf0620, - 0x266e1: 0x6cc70c20, 0x266e2: 0x6d090a20, 0x266e3: 0x6d232020, - 0x266e4: 0x6c394e20, 0x266e5: 0x6c06ca20, 0x266e7: 0x6cc24420, - 0x266e9: 0x6c109620, 0x266ea: 0x6c635420, 0x266eb: 0x6d2c2c20, - 0x266ed: 0x6caa5a20, 0x266ee: 0x6ccf1420, - 0x266f2: 0x6c860220, - // Block 0x99c, offset 0x26700 - 0x26704: 0x6c4af620, 0x26705: 0x6c48de20, 0x26707: 0x6c276420, - 0x2670f: 0x6c40fa20, - 0x26712: 0x6c22cc20, - 0x26714: 0x6d0d9220, 0x26715: 0x6cd92220, 0x26716: 0x6cd38820, - 0x26718: 0x6c7a9c20, 0x26719: 0x6d352e20, 0x2671a: 0x6ce75020, 0x2671b: 0x6cc19620, - 0x2671c: 0x6c364220, 0x2671e: 0x6d03ea20, 0x2671f: 0x6cc7b020, - 0x26720: 0x6d213820, 0x26723: 0x6d17c020, - 0x26724: 0x6d17c220, 0x26725: 0x6d06e420, 0x26726: 0x6c3d2c20, 0x26727: 0x6c43f820, - 0x2672c: 0x6c512a20, 0x2672d: 0x6d19e820, 0x2672f: 0x6c53be20, - 0x26731: 0x6c349820, - 0x2673d: 0x6d03ec20, 0x2673e: 0x6c38a220, - // Block 0x99d, offset 0x26740 - 0x26749: 0x6cb50020, 0x2674a: 0x6ccc0220, - 0x2674c: 0x6c326a20, 0x2674d: 0x6c2c7220, 0x2674e: 0x6c83fa20, 0x2674f: 0x6d180620, - 0x26750: 0x6cf78c20, 0x26751: 0x6c451420, 0x26752: 0x6ce75820, 0x26753: 0x6c77c020, - 0x26754: 0x6c53c420, 0x26755: 0x6c7db820, 0x26756: 0x6ca84c20, 0x26757: 0x6c1b3c20, - 0x26758: 0x6ce34e20, 0x2675a: 0x6ce75a20, - 0x26760: 0x6c83fc20, 0x26761: 0x6ca35c20, - 0x26771: 0x6d2d8220, 0x26772: 0x6c06cc20, - // Block 0x99e, offset 0x26780 - 0x26781: 0x6ce59220, 0x26783: 0x6d289420, - 0x26784: 0x6c367420, 0x26785: 0x6cd47620, 0x26786: 0x6c798820, 0x26787: 0x6caeb820, - 0x26788: 0x6c402020, 0x26789: 0x6c929820, 0x2678a: 0x6d01e820, 0x2678b: 0x6d01ea20, - 0x2678c: 0x6d04e820, 0x2678d: 0x6c929a20, 0x2678e: 0x6ce50a20, 0x2678f: 0x6cde8820, - 0x26790: 0x6c22da20, 0x26791: 0x6cc12a20, 0x26793: 0x6c402220, - 0x26794: 0x6d340620, 0x26796: 0x6d01ec20, 0x26797: 0x6d408220, - 0x26798: 0x6c3abe20, 0x26799: 0x6c9f7420, 0x2679a: 0x6d038c20, - 0x2679d: 0x6ce76c20, 0x2679e: 0x6cb60220, - 0x267a0: 0x6cb15c20, 0x267a2: 0x6cdc5620, 0x267a3: 0x6c37a020, - 0x267a7: 0x6c562c20, - 0x267bb: 0x6cd92e20, - 0x267bd: 0x6c0cb020, 0x267be: 0x6c2f6620, 0x267bf: 0x6c04d220, - // Block 0x99f, offset 0x267c0 - 0x267c0: 0x6cd1e220, 0x267c1: 0x6d01ee20, 0x267c2: 0x6cff9420, 0x267c3: 0x6c3a6620, - 0x267d2: 0x6c202620, 0x267d3: 0x6cd67020, - 0x267d4: 0x6d10b220, 0x267d5: 0x6c74a220, 0x267d6: 0x6cd14820, - 0x267d8: 0x6d1eb220, 0x267d9: 0x6c396c20, - 0x267dc: 0x6c7c9a20, 0x267dd: 0x6c2c9820, 0x267df: 0x6c990220, - 0x267e0: 0x6c6b2420, 0x267e2: 0x6d0cc820, - 0x267e5: 0x6ceeb420, - 0x267e8: 0x6cca7220, 0x267e9: 0x6c6b2620, 0x267ea: 0x6d219220, 0x267eb: 0x6cf0c820, - 0x267ec: 0x6c369220, 0x267ed: 0x6cc31220, 0x267ee: 0x6c6f2e20, 0x267ef: 0x6c3cba20, - 0x267f0: 0x6c8fa620, 0x267f1: 0x6c2ee220, 0x267f2: 0x6cb12420, - 0x267f4: 0x6c891420, 0x267f5: 0x6c559820, 0x267f6: 0x6c93fa20, - 0x267ff: 0x6c2d7a20, - // Block 0x9a0, offset 0x26800 - 0x26803: 0x6c255e20, - 0x26804: 0x6ca1e420, - 0x26815: 0x6cedea20, 0x26816: 0x6c72fe20, 0x26817: 0x6c782e20, - 0x26818: 0x6d0cca20, 0x26819: 0x6c693420, - 0x26821: 0x6c45b020, 0x26823: 0x6cc6b620, - 0x26824: 0x6cdce220, 0x26825: 0x6ccdb620, - 0x26828: 0x6c1b5420, 0x2682a: 0x6cb65220, 0x2682b: 0x6cdd9820, - 0x2682d: 0x6d134420, 0x2682e: 0x6d2a5420, 0x2682f: 0x6cc39620, - 0x26830: 0x6d2e1820, 0x26831: 0x6c035a20, 0x26832: 0x6d40d620, 0x26833: 0x6cdd9a20, - 0x26834: 0x6d309220, 0x26835: 0x6cf8e820, 0x26837: 0x6c1eec20, - 0x26838: 0x6c694820, 0x26839: 0x6d41d220, 0x2683a: 0x6c43aa20, 0x2683b: 0x6cf52420, - 0x2683e: 0x6c94c020, 0x2683f: 0x6c60b420, - // Block 0x9a1, offset 0x26840 - 0x26842: 0x6d00ec20, 0x26843: 0x6d00ee20, - 0x26846: 0x6c30f620, - 0x2684b: 0x6cbfc620, - 0x26851: 0x6cb2d020, 0x26853: 0x6c8ea420, - 0x26865: 0x6c6b3820, 0x26867: 0x6c5c4020, - 0x2686b: 0x6ccc7a20, - 0x26878: 0x6d34a620, 0x26879: 0x6c00e620, 0x2687a: 0x6d074a20, 0x2687b: 0x6c0a7820, - 0x2687d: 0x6d126820, 0x2687e: 0x6ca6d820, 0x2687f: 0x6d3a2e20, - // Block 0x9a2, offset 0x26880 - 0x26881: 0x6cdb4220, 0x26883: 0x6d010220, - 0x26884: 0x6d241820, 0x26885: 0x6cc14820, - 0x26888: 0x6d40e020, 0x26889: 0x6d341820, 0x2688a: 0x6d2ee420, 0x2688b: 0x6c94c420, - 0x2688c: 0x6cf03020, 0x2688d: 0x6c1ce820, 0x2688e: 0x6c9d9620, - 0x26890: 0x6c5f5e20, 0x26892: 0x6cdb4420, 0x26893: 0x6d12b620, - 0x26894: 0x6cf7ac20, 0x26895: 0x6ce96420, 0x26896: 0x6c886c20, 0x26897: 0x6d082e20, - 0x26899: 0x6cf52c20, - 0x2689f: 0x6c990c20, - 0x268ac: 0x6c538e20, 0x268af: 0x6c94c620, - 0x268b0: 0x6c31ce20, 0x268b1: 0x6c23ba20, 0x268b2: 0x6c152e20, 0x268b3: 0x6c92fc20, - 0x268b4: 0x6cdb4620, - // Block 0x9a3, offset 0x268c0 - 0x268c0: 0x6c94c820, - 0x268c6: 0x6d37d220, 0x268c7: 0x6c847420, - 0x268c8: 0x6c3ae220, 0x268ca: 0x6c6e3820, 0x268cb: 0x6c7d2c20, - 0x268cc: 0x6d18f420, 0x268cd: 0x6c576620, 0x268ce: 0x6c258020, - 0x268d0: 0x6d243c20, 0x268d1: 0x6c083620, 0x268d2: 0x6cea3020, 0x268d3: 0x6cd58020, - 0x268d4: 0x6c27a220, 0x268d5: 0x6cf38a20, 0x268d6: 0x6c22ea20, 0x268d7: 0x6ca95e20, - 0x268d8: 0x6c29a020, 0x268d9: 0x6d40ee20, 0x268da: 0x6c4e4220, - 0x268dc: 0x6cb02e20, 0x268dd: 0x6c204620, - 0x268e0: 0x6c328620, 0x268e1: 0x6cabe020, - 0x268e4: 0x6d39d620, 0x268e6: 0x6d011620, 0x268e7: 0x6d30ac20, - 0x268e8: 0x6cbcf420, 0x268e9: 0x6d07dc20, 0x268eb: 0x6ccb0820, - // Block 0x9a4, offset 0x26900 - 0x26900: 0x6c0a9620, 0x26902: 0x6c407c20, - 0x26908: 0x6c86d820, - 0x2690e: 0x6c359620, - 0x26910: 0x6d126e20, 0x26911: 0x6cd58420, 0x26913: 0x6ccb8620, - 0x26915: 0x6cb54a20, 0x26916: 0x6c4cf220, 0x26917: 0x6ccb8820, - 0x26919: 0x6c408620, 0x2691a: 0x6c990e20, - 0x2691c: 0x6c827620, 0x2691d: 0x6d2db420, - 0x26928: 0x6c14a620, - 0x2692d: 0x6cf0fc20, - 0x2693d: 0x6c827820, 0x2693f: 0x6d2b6c20, - // Block 0x9a5, offset 0x26940 - 0x26940: 0x6d1c0e20, 0x26941: 0x6c010220, 0x26942: 0x6d005c20, - 0x26944: 0x6c0aaa20, - 0x2694b: 0x6c155a20, - 0x2694e: 0x6cb03620, 0x2694f: 0x6c23c220, - 0x26950: 0x6c8b6620, 0x26951: 0x6cb69c20, 0x26953: 0x6c62d420, - 0x26954: 0x6c6df220, 0x26955: 0x6c302820, 0x26956: 0x6c3a4620, 0x26957: 0x6d159220, - 0x26958: 0x6ce97220, - 0x26968: 0x6c9bf620, 0x26969: 0x6c11be20, 0x2696a: 0x6d0b3c20, - 0x26972: 0x6d103c20, - 0x26974: 0x6ce6a220, - 0x26978: 0x6d34be20, 0x2697a: 0x6d027c20, 0x2697b: 0x6c942220, - 0x2697d: 0x6c875420, 0x2697f: 0x6c991620, - // Block 0x9a6, offset 0x26980 - 0x26982: 0x6cfa1820, - 0x26985: 0x6cda4420, - 0x26996: 0x6cda6c20, 0x26997: 0x6d097e20, - 0x2699d: 0x6c877a20, 0x2699e: 0x6d25d820, - 0x269a1: 0x6d2e4020, 0x269a3: 0x6cdef220, - 0x269a4: 0x6d083a20, 0x269a5: 0x6cf12020, 0x269a6: 0x6d139620, 0x269a7: 0x6cad1a20, - 0x269a8: 0x6c991820, 0x269a9: 0x6ce3b620, 0x269aa: 0x6cb22a20, - 0x269ac: 0x6c328e20, 0x269ad: 0x6cc0a820, 0x269ae: 0x6d162c20, - 0x269b3: 0x6ceb6020, - 0x269b4: 0x6c14aa20, 0x269b7: 0x6c6d7620, - 0x269bc: 0x6c35aa20, - // Block 0x9a7, offset 0x269c0 - 0x269c3: 0x6c157420, - 0x269c4: 0x6d1c4420, 0x269c5: 0x6c8dae20, 0x269c7: 0x6cfc5e20, - 0x269c9: 0x6cb55a20, 0x269cb: 0x6d272220, - 0x269cc: 0x6c94ce20, 0x269cd: 0x6d1cda20, 0x269ce: 0x6cc21a20, - 0x269d2: 0x6c3a7820, 0x269d3: 0x6d3eca20, - 0x269d9: 0x6cbe6220, - 0x269dd: 0x6ca94020, 0x269de: 0x6cf13220, 0x269df: 0x6cd6c220, - 0x269e1: 0x6c40a420, - 0x269e4: 0x6ca1aa20, 0x269e5: 0x6ca1ac20, 0x269e6: 0x6ceb6820, 0x269e7: 0x6c14ae20, - 0x269e8: 0x6d2a1220, - 0x269ee: 0x6c84da20, 0x269ef: 0x6c84e420, - 0x269f1: 0x6cfa2020, 0x269f2: 0x6c733420, - 0x269f4: 0x6ca41a20, 0x269f5: 0x6c9db420, - 0x269f8: 0x6c5a3e20, 0x269fa: 0x6cd6f620, - 0x269fc: 0x6d066420, 0x269ff: 0x6c3a7a20, - // Block 0x9a8, offset 0x26a00 - 0x26a01: 0x6d029420, - 0x26a06: 0x6cdefa20, 0x26a07: 0x6d1e6a20, - 0x26a09: 0x6d2e4420, - 0x26a11: 0x6cbb3420, 0x26a12: 0x6ca46a20, - 0x26a14: 0x6c8c9420, - 0x26a18: 0x6c948220, 0x26a19: 0x6cfc6e20, 0x26a1a: 0x6c3f2c20, - 0x26a1c: 0x6c8df820, - 0x26a20: 0x6ccadc20, 0x26a22: 0x6c5ca620, - 0x26a28: 0x6ce66020, 0x26a2a: 0x6cbe7020, - 0x26a2c: 0x6c598a20, 0x26a2e: 0x6c01b220, - 0x26a35: 0x6c97c220, 0x26a37: 0x6ca6b220, - 0x26a3b: 0x6c4c8020, - 0x26a3c: 0x6cab8820, 0x26a3f: 0x6cfe4620, - // Block 0x9a9, offset 0x26a40 - 0x26a41: 0x6c6c5620, - 0x26a46: 0x6d32f620, - 0x26a48: 0x6ca2cc20, 0x26a4b: 0x6cca5e20, - 0x26a4c: 0x6c56d020, 0x26a4e: 0x6d40f020, 0x26a4f: 0x6c5b7620, - 0x26a52: 0x6c5f7420, - 0x26a56: 0x6d138a20, - 0x26a66: 0x6d03de20, - 0x26a69: 0x6c7e6c20, 0x26a6a: 0x6d232220, 0x26a6b: 0x6c745820, - 0x26a71: 0x6cd5da20, 0x26a72: 0x6d32d620, - 0x26a74: 0x6d1e4e20, 0x26a76: 0x6c439c20, - 0x26a78: 0x6c66ae20, 0x26a79: 0x6d034820, - 0x26a7c: 0x6c5aec20, 0x26a7f: 0x6cd67820, - // Block 0x9aa, offset 0x26a80 - 0x26a82: 0x6c1cf020, 0x26a83: 0x6c4f8a20, - 0x26a88: 0x6c8a6420, - 0x26a8d: 0x6c674a20, 0x26a8f: 0x6c456c20, - 0x26a91: 0x6d3d3020, - 0x26a97: 0x6cb6de20, - 0x26a9c: 0x6cb8b820, 0x26a9e: 0x6c30e220, 0x26a9f: 0x6cb30220, - 0x26aa2: 0x6c567a20, - 0x26aa5: 0x6ca98c20, 0x26aa7: 0x6cb76420, - 0x26aa8: 0x6c2db420, 0x26aa9: 0x6c2db620, 0x26aab: 0x6c85b220, - 0x26aae: 0x6d046220, - 0x26abd: 0x6ca2da20, 0x26abf: 0x6d32a620, - // Block 0x9ab, offset 0x26ac0 - 0x26ac0: 0x6c7e6e20, 0x26ac1: 0x6d35cc20, 0x26ac3: 0x6c35b220, - 0x26ac4: 0x6c0e6620, 0x26ac5: 0x6cb30620, 0x26ac6: 0x6d058420, 0x26ac7: 0x6d1e7a20, - 0x26ac8: 0x6c223c20, 0x26ac9: 0x6c85e220, - 0x26acc: 0x6cad5820, 0x26acf: 0x6d053a20, - 0x26adb: 0x6cb4a820, - 0x26add: 0x6c17e420, 0x26ade: 0x6cb78420, - 0x26ae1: 0x6d177620, 0x26ae3: 0x6ce31c20, - 0x26ae4: 0x6c348820, 0x26ae5: 0x6c8f9020, 0x26ae7: 0x6c668020, - 0x26aed: 0x6d2e6020, 0x26aee: 0x6d261220, - 0x26af6: 0x6d210820, - 0x26af8: 0x6c44ca20, 0x26afa: 0x6c546c20, - 0x26afe: 0x6cb6f820, - // Block 0x9ac, offset 0x26b00 - 0x26b00: 0x6ca28c20, 0x26b01: 0x6c592a20, 0x26b02: 0x6c906a20, 0x26b03: 0x6cf89420, - 0x26b04: 0x6c356c20, 0x26b05: 0x6c80fe20, 0x26b06: 0x6c3aae20, 0x26b07: 0x6ced2820, - 0x26b09: 0x6c259620, 0x26b0b: 0x6caea420, - 0x26b0f: 0x6c262c20, - 0x26b10: 0x6cf22420, - 0x26b21: 0x6c430620, - 0x26b25: 0x6c254820, - 0x26b28: 0x6cb7a620, 0x26b29: 0x6c83fe20, 0x26b2a: 0x6cbcc820, 0x26b2b: 0x6cba6020, - 0x26b2c: 0x6c798220, 0x26b2d: 0x6c082220, 0x26b2f: 0x6cd46c20, - 0x26b37: 0x6ceea220, - // Block 0x9ad, offset 0x26b40 - 0x26b44: 0x6cccf220, - 0x26b4f: 0x6d3e6e20, - 0x26b52: 0x6ce40c20, 0x26b53: 0x6cb90e20, - 0x26b54: 0x6c31ac20, 0x26b57: 0x6ce8dc20, - 0x26b5a: 0x6ceeaa20, - 0x26b5e: 0x6c558420, 0x26b5f: 0x6d038e20, - 0x26b61: 0x6ccd0220, 0x26b62: 0x6d354a20, - 0x26b67: 0x6c1bb820, - 0x26b78: 0x6d394a20, 0x26b79: 0x6cf23620, 0x26b7a: 0x6c1b4c20, 0x26b7b: 0x6cdd9420, - 0x26b7c: 0x6d020220, 0x26b7e: 0x6c78d220, - // Block 0x9ae, offset 0x26b80 - 0x26b81: 0x6ccca220, 0x26b82: 0x6cd1f220, 0x26b83: 0x6cd47820, - 0x26b85: 0x6c6bfc20, - 0x26b89: 0x6c431c20, 0x26b8a: 0x6c93b220, - 0x26b94: 0x6d020420, - 0x26b9a: 0x6d354c20, - 0x26b9e: 0x6c978220, - 0x26ba0: 0x6cd67420, 0x26ba1: 0x6c78da20, 0x26ba3: 0x6c2dfe20, - 0x26ba4: 0x6d141a20, 0x26ba6: 0x6cdb2420, 0x26ba7: 0x6c206420, - 0x26bb1: 0x6c256820, 0x26bb2: 0x6cebb220, - 0x26bb5: 0x6d022020, - 0x26bbd: 0x6d082620, - // Block 0x9af, offset 0x26bc0 - 0x26bc2: 0x6c51f420, 0x26bc3: 0x6c74ce20, - 0x26bc6: 0x6ce43020, 0x26bc7: 0x6c3ada20, - 0x26bc9: 0x6d355620, 0x26bca: 0x6cd3e820, 0x26bcb: 0x6ce9c620, - 0x26bce: 0x6c1cea20, - 0x26bd0: 0x6ce43220, 0x26bd1: 0x6d2e8820, 0x26bd2: 0x6c527820, - 0x26bd4: 0x6cc1de20, 0x26bd5: 0x6cef4220, 0x26bd7: 0x6c33ba20, - 0x26bd8: 0x6c067220, - 0x26bdc: 0x6c8a2c20, - 0x26be4: 0x6cd83620, - 0x26bea: 0x6c0c8420, 0x26beb: 0x6d023420, - 0x26bec: 0x6c0cfc20, 0x26bee: 0x6c23d820, - 0x26bf2: 0x6c72ac20, 0x26bf3: 0x6c518820, - 0x26bf7: 0x6c7d3020, - 0x26bf8: 0x6d1dc820, - // Block 0x9b0, offset 0x26c00 - 0x26c00: 0x6cd62220, - 0x26c0d: 0x6ca89a20, 0x26c0f: 0x6d21da20, - 0x26c10: 0x6d3dca20, 0x26c11: 0x6c9b8c20, 0x26c12: 0x6c55f220, - 0x26c15: 0x6c8b6220, - 0x26c1d: 0x6c6a4020, 0x26c1e: 0x6d048220, - 0x26c23: 0x6d0e0020, - 0x26c29: 0x6c6b7a20, 0x26c2a: 0x6c7eb820, 0x26c2b: 0x6cd62e20, - 0x26c2c: 0x6c6b7c20, 0x26c2d: 0x6c828220, - 0x26c30: 0x6d40fc20, 0x26c32: 0x6cd40420, - 0x26c38: 0x6cef6c20, 0x26c39: 0x6c318620, 0x26c3a: 0x6cdb6420, - // Block 0x9b1, offset 0x26c40 - 0x26c43: 0x6d012e20, - 0x26c44: 0x6cc4f620, - 0x26c4c: 0x6c964e20, - 0x26c51: 0x6cb96420, - 0x26c58: 0x6ca48620, 0x26c59: 0x6c8dec20, - 0x26c5c: 0x6c630620, - 0x26c60: 0x6ca03e20, 0x26c63: 0x6c476220, - 0x26c68: 0x6d080c20, - 0x26c6c: 0x6d058e20, - 0x26c71: 0x6c0f3620, - 0x26c7c: 0x6ceebc20, - // Block 0x9b2, offset 0x26c80 - 0x26c82: 0x6c7a6e20, - 0x26c86: 0x6cecf020, - 0x26c88: 0x6c143c20, 0x26c8a: 0x6c996820, 0x26c8b: 0x6c789a20, - 0x26c8e: 0x6c22c420, - 0x26c92: 0x6cfcbc20, 0x26c93: 0x6ca11620, - 0x26c9a: 0x6c5cc420, 0x26c9b: 0x6c162c20, - 0x26c9c: 0x6cd1c620, 0x26c9d: 0x6d31dc20, 0x26c9e: 0x6c364420, 0x26c9f: 0x6c9c5a20, - 0x26ca1: 0x6cd1c820, 0x26ca2: 0x6cc11420, 0x26ca3: 0x6cd4e420, - 0x26ca5: 0x6c220420, 0x26ca6: 0x6d0d9420, - 0x26ca9: 0x6c54dc20, 0x26caa: 0x6cb50220, 0x26cab: 0x6d366c20, - 0x26cac: 0x6c599c20, - 0x26cb4: 0x6d353820, 0x26cb6: 0x6d1fda20, - 0x26cbc: 0x6c435420, 0x26cbd: 0x6d11c420, 0x26cbe: 0x6cb3cc20, - // Block 0x9b3, offset 0x26cc0 - 0x26cc7: 0x6d153620, - 0x26cc8: 0x6c1a8420, 0x26cc9: 0x6c625020, 0x26ccb: 0x6c007420, - 0x26ccd: 0x6c308620, 0x26ccf: 0x6cdc6220, - 0x26cd1: 0x6c701c20, - 0x26cd8: 0x6cb7c820, 0x26cd9: 0x6c884420, 0x26cda: 0x6d085620, - 0x26cdc: 0x6c8a7620, - 0x26ce1: 0x6d285820, 0x26ce2: 0x6d085a20, 0x26ce3: 0x6c23e620, - 0x26ce4: 0x6cb10020, 0x26ce6: 0x6c7c9c20, - 0x26ce8: 0x6ce37a20, 0x26ce9: 0x6c58e020, 0x26cea: 0x6c280020, 0x26ceb: 0x6c4b7820, - 0x26cec: 0x6c188a20, 0x26cee: 0x6cce3c20, 0x26cef: 0x6c628620, - 0x26cf4: 0x6c891c20, 0x26cf5: 0x6c76b620, 0x26cf6: 0x6cd17820, - 0x26cf8: 0x6c30cc20, 0x26cf9: 0x6d1f8020, 0x26cfa: 0x6cb66220, - 0x26cfc: 0x6cffc620, - // Block 0x9b4, offset 0x26d00 - 0x26d02: 0x6d18f620, 0x26d03: 0x6c90c420, - 0x26d06: 0x6c206a20, - 0x26d0b: 0x6c81e620, - 0x26d0c: 0x6c42ec20, - 0x26d10: 0x6d2ba220, 0x26d12: 0x6cef6420, - 0x26d16: 0x6c653620, - 0x26d1b: 0x6d1c3220, - 0x26d1c: 0x6c38f420, 0x26d1d: 0x6c877c20, 0x26d1e: 0x6cb94e20, - 0x26d22: 0x6d125420, - 0x26d26: 0x6c7c5a20, 0x26d27: 0x6cef7a20, - 0x26d29: 0x6cc42620, - 0x26d2c: 0x6cffca20, 0x26d2d: 0x6cc42820, - 0x26d30: 0x6c551820, - 0x26d35: 0x6c342020, 0x26d36: 0x6c1f1e20, - 0x26d39: 0x6ccfd620, - 0x26d3c: 0x6d3d5620, 0x26d3d: 0x6c355e20, 0x26d3e: 0x6c61f820, - // Block 0x9b5, offset 0x26d40 - 0x26d41: 0x6cdfde20, 0x26d43: 0x6cabc420, - 0x26d4b: 0x6c6be220, - 0x26d4c: 0x6cbc4220, - 0x26d51: 0x6cb99620, 0x26d52: 0x6c724c20, - 0x26d55: 0x6cc06e20, 0x26d56: 0x6ceb2220, - 0x26d5a: 0x6caafa20, 0x26d5b: 0x6cd8c620, - 0x26d5f: 0x6d14fe20, - 0x26d61: 0x6c47a220, 0x26d62: 0x6c5d3220, 0x26d63: 0x6cabda20, - 0x26d64: 0x6d3e5a20, 0x26d66: 0x6c685220, - 0x26d69: 0x6cf80420, 0x26d6a: 0x6cceb820, - 0x26d6c: 0x6d153820, 0x26d6d: 0x6d369e20, - 0x26d75: 0x6c952420, 0x26d77: 0x6d38a020, - 0x26d78: 0x6c74a420, 0x26d79: 0x6ce00620, 0x26d7a: 0x6cab0c20, 0x26d7b: 0x6c728020, - 0x26d7c: 0x6c559c20, 0x26d7e: 0x6d36c220, - // Block 0x9b6, offset 0x26d80 - 0x26d83: 0x6c088820, - 0x26d8d: 0x6c1c7220, 0x26d8e: 0x6d07d020, 0x26d8f: 0x6c60b620, - 0x26d90: 0x6c48a020, 0x26d91: 0x6c715e20, 0x26d92: 0x6cf31620, 0x26d93: 0x6ceb4a20, - 0x26d95: 0x6cc09820, 0x26d96: 0x6ceebe20, 0x26d97: 0x6c32a220, - 0x26d99: 0x6cd47c20, 0x26d9b: 0x6d31fe20, - 0x26d9c: 0x6ca55420, 0x26d9f: 0x6cf8f620, - 0x26da0: 0x6d30a420, 0x26da1: 0x6d371620, 0x26da3: 0x6ca2ea20, - 0x26da8: 0x6c650620, - 0x26dae: 0x6d114e20, 0x26daf: 0x6c4c9820, - 0x26db2: 0x6c2c0820, - 0x26db4: 0x6c5e1c20, 0x26db5: 0x6c6de220, - 0x26dbc: 0x6c74ec20, 0x26dbd: 0x6d270820, - // Block 0x9b7, offset 0x26dc0 - 0x26dc4: 0x6c60ee20, 0x26dc6: 0x6cdb5c20, - 0x26dc8: 0x6c654020, 0x26dca: 0x6c7d9820, 0x26dcb: 0x6cf33220, - 0x26dcc: 0x6c7c1e20, 0x26dcd: 0x6c0c6020, 0x26dce: 0x6c751220, - 0x26dd1: 0x6c0ad620, 0x26dd3: 0x6c157a20, - 0x26dd5: 0x6d3ecc20, 0x26dd6: 0x6c87c220, - 0x26dda: 0x6c3d0e20, 0x26ddb: 0x6cb9f020, - 0x26ddc: 0x6d0d4020, 0x26dde: 0x6ce08c20, 0x26ddf: 0x6ca0d820, - 0x26de3: 0x6c79e420, - 0x26de4: 0x6cf5d420, - 0x26dee: 0x6c569220, 0x26def: 0x6c569420, - 0x26df1: 0x6c3e7020, - 0x26df4: 0x6d104c20, 0x26df5: 0x6c4cea20, 0x26df7: 0x6cc57020, - 0x26df8: 0x6d1b4c20, 0x26df9: 0x6c3c4420, 0x26dfa: 0x6c75b620, - 0x26dfc: 0x6d27a620, 0x26dff: 0x6d0a8820, - // Block 0x9b8, offset 0x26e00 - 0x26e01: 0x6cf87c20, - 0x26e0e: 0x6cf96220, - 0x26e11: 0x6c4f7620, - 0x26e1a: 0x6c569620, - 0x26e1d: 0x6c54d020, 0x26e1e: 0x6cb4aa20, 0x26e1f: 0x6c385020, - 0x26e24: 0x6c636420, 0x26e27: 0x6d150420, - 0x26e2d: 0x6ceac820, 0x26e2e: 0x6ca2e220, - 0x26e38: 0x6d1a6a20, 0x26e39: 0x6d1b5a20, - // Block 0x9b9, offset 0x26e40 - 0x26e43: 0x6c622a20, - 0x26e44: 0x6cee5620, 0x26e45: 0x6cd3a420, 0x26e46: 0x6c330c20, 0x26e47: 0x6c34fc20, - 0x26e49: 0x6ceb3020, 0x26e4a: 0x6cebe620, 0x26e4b: 0x6c863e20, - 0x26e4f: 0x6cc55220, - 0x26e52: 0x6c22d020, 0x26e53: 0x6d070220, - 0x26e54: 0x6d389020, 0x26e55: 0x6d3f5a20, - 0x26e5c: 0x6cee2a20, 0x26e5d: 0x6d0b5820, 0x26e5f: 0x6c622c20, - 0x26e60: 0x6c179e20, - 0x26e69: 0x6c606020, - 0x26e75: 0x6ccd5420, 0x26e76: 0x6ce8de20, - 0x26e78: 0x6c0cf620, 0x26e79: 0x6cf8be20, 0x26e7a: 0x6caf7e20, 0x26e7b: 0x6d2cd420, - 0x26e7e: 0x6c5c0620, - // Block 0x9ba, offset 0x26e80 - 0x26e80: 0x6cdd3020, 0x26e82: 0x6c51da20, - 0x26e84: 0x6d265220, 0x26e86: 0x6cf37c20, - 0x26e88: 0x6c8d4020, 0x26e8a: 0x6d2cd620, 0x26e8b: 0x6c574a20, - 0x26e97: 0x6c151220, - 0x26e9f: 0x6c367620, - 0x26ea1: 0x6c18e020, - 0x26ea7: 0x6cdc6620, - 0x26ea9: 0x6ce51420, - 0x26eb0: 0x6d36c420, 0x26eb1: 0x6ce41620, 0x26eb2: 0x6c022e20, 0x26eb3: 0x6d3d9020, - 0x26eb4: 0x6d3f6020, 0x26eb5: 0x6c783020, 0x26eb7: 0x6ccb4e20, - 0x26eb8: 0x6ce4c220, 0x26eb9: 0x6c92b620, - 0x26ebe: 0x6ccd2620, 0x26ebf: 0x6d2c9020, - // Block 0x9bb, offset 0x26ec0 - 0x26ec3: 0x6c1cde20, - 0x26ec5: 0x6d0ea620, - 0x26ed2: 0x6ca25420, 0x26ed3: 0x6c54fc20, - 0x26eda: 0x6c1ad420, - 0x26edd: 0x6cdb0a20, - 0x26ee3: 0x6ca51420, - 0x26ee6: 0x6c60b820, 0x26ee7: 0x6c346020, - 0x26ee8: 0x6c547e20, 0x26eea: 0x6c23de20, 0x26eeb: 0x6d2c0220, - 0x26eec: 0x6d1a9c20, 0x26eee: 0x6cffbe20, - 0x26ef0: 0x6c0bbc20, 0x26ef1: 0x6c085220, 0x26ef2: 0x6c7e9a20, - 0x26ef4: 0x6c1ad820, 0x26ef6: 0x6cb87820, - 0x26ef8: 0x6c015220, 0x26ef9: 0x6cd1fe20, - 0x26efc: 0x6c1c7420, - // Block 0x9bc, offset 0x26f00 - 0x26f05: 0x6caa6a20, 0x26f07: 0x6c628820, - 0x26f13: 0x6cab9220, - 0x26f15: 0x6cf97a20, - 0x26f18: 0x6c14a020, 0x26f1a: 0x6c005620, - 0x26f1d: 0x6cd17c20, 0x26f1e: 0x6c518220, - 0x26f20: 0x6c60ca20, 0x26f21: 0x6c1ade20, 0x26f22: 0x6cf8fa20, 0x26f23: 0x6d32fe20, - 0x26f26: 0x6cde0020, - 0x26f28: 0x6c96e220, 0x26f2b: 0x6caf9a20, - 0x26f2e: 0x6d05f220, 0x26f2f: 0x6cba2a20, - 0x26f39: 0x6cfa4e20, - // Block 0x9bd, offset 0x26f40 - 0x26f4a: 0x6d241a20, - 0x26f51: 0x6c6b4620, 0x26f52: 0x6cfa5420, 0x26f53: 0x6c91ee20, - 0x26f55: 0x6cbcf620, 0x26f57: 0x6c145220, - 0x26f5b: 0x6d107020, - 0x26f5c: 0x6c62b020, 0x26f5d: 0x6ccc3620, 0x26f5e: 0x6c912020, - 0x26f60: 0x6c5f7620, 0x26f61: 0x6d373020, 0x26f62: 0x6cee5c20, - 0x26f64: 0x6c0a9820, 0x26f65: 0x6c015820, 0x26f66: 0x6d142a20, 0x26f67: 0x6c015a20, - 0x26f6c: 0x6c847620, - 0x26f79: 0x6cfaec20, - 0x26f7e: 0x6c703620, 0x26f7f: 0x6ce08420, - // Block 0x9be, offset 0x26f80 - 0x26f81: 0x6c507a20, 0x26f82: 0x6c520620, - 0x26f85: 0x6d2c0620, 0x26f86: 0x6d2e2e20, 0x26f87: 0x6d191a20, - 0x26f88: 0x6cf91a20, 0x26f8a: 0x6cf91c20, 0x26f8b: 0x6c384420, - 0x26f8c: 0x6d0cf620, 0x26f8f: 0x6ca25620, - 0x26f95: 0x6c474020, - 0x26f9e: 0x6d27d020, - 0x26fa4: 0x6d384820, 0x26fa6: 0x6c160220, 0x26fa7: 0x6c208620, - 0x26fa8: 0x6c5c8a20, 0x26fa9: 0x6d28d620, 0x26faa: 0x6c4c0820, 0x26fab: 0x6c661c20, - 0x26fac: 0x6d0b3e20, - 0x26fb0: 0x6cfe6820, 0x26fb1: 0x6c520820, - // Block 0x9bf, offset 0x26fc0 - 0x26fc3: 0x6c28e820, - 0x26fc7: 0x6c9df020, - 0x26fc8: 0x6ca93a20, 0x26fca: 0x6c9ba620, - 0x26fcc: 0x6c8b6e20, 0x26fcd: 0x6d396a20, 0x26fce: 0x6cb42220, 0x26fcf: 0x6cdf0a20, - 0x26fd3: 0x6d1cd020, - 0x26fd4: 0x6ce2cc20, 0x26fd5: 0x6c4ca220, - 0x26fda: 0x6cbb3020, - 0x26fdc: 0x6c942420, 0x26fdd: 0x6cc9b820, 0x26fde: 0x6c8b7020, 0x26fdf: 0x6c1b6c20, - 0x26fe0: 0x6d015020, 0x26fe3: 0x6c4ca820, - 0x26fe4: 0x6c067e20, 0x26fe5: 0x6c964220, 0x26fe6: 0x6c73a420, - 0x26fea: 0x6c36e820, - 0x26ff3: 0x6c51a820, - 0x26ff5: 0x6c9aba20, - 0x26ff8: 0x6d028820, 0x26ff9: 0x6cb22c20, 0x26ffb: 0x6c4dc420, - 0x26ffc: 0x6c194420, 0x26ffd: 0x6ccdec20, 0x26ffe: 0x6c5ca020, - // Block 0x9c0, offset 0x27000 - 0x27006: 0x6d1c4820, - 0x27008: 0x6c663e20, - 0x2700d: 0x6c016620, - 0x27011: 0x6cdef420, 0x27012: 0x6d144220, 0x27013: 0x6ce9dc20, - 0x27017: 0x6c8ef220, - 0x27019: 0x6d425a20, 0x2701b: 0x6c84ec20, - 0x2701d: 0x6cb23420, 0x2701e: 0x6d098420, - 0x27020: 0x6ca5a220, 0x27021: 0x6c315820, - 0x27024: 0x6c806c20, - 0x2702a: 0x6d2d5e20, 0x2702b: 0x6c73e620, - 0x2702c: 0x6d314620, 0x2702d: 0x6c600c20, 0x2702e: 0x6cb8ce20, - 0x27030: 0x6c4da220, 0x27031: 0x6c3b7220, 0x27033: 0x6c4da420, - 0x27034: 0x6c535620, 0x27035: 0x6c514620, 0x27036: 0x6c541a20, - 0x2703a: 0x6d2e7820, 0x2703b: 0x6c1dd420, - 0x2703c: 0x6cdf7e20, 0x2703d: 0x6cba7820, 0x2703f: 0x6ccf7420, - // Block 0x9c1, offset 0x27040 - 0x27040: 0x6d1bee20, 0x27043: 0x6cbd4020, - 0x27046: 0x6c5e0e20, - 0x27048: 0x6cf8fc20, 0x27049: 0x6c51f820, 0x2704a: 0x6cf90820, 0x2704b: 0x6cf97e20, - 0x2704c: 0x6c4fb620, 0x2704d: 0x6c81e820, 0x2704f: 0x6c870c20, - 0x27052: 0x6c19a220, - 0x27056: 0x6c760620, 0x27057: 0x6cf76020, - 0x27058: 0x6c4e7620, - 0x2705e: 0x6c311620, - 0x27060: 0x6c30ae20, 0x27061: 0x6cec9220, - 0x27064: 0x6c30b020, 0x27065: 0x6d293820, 0x27066: 0x6c737a20, - 0x27068: 0x6c90e620, 0x27069: 0x6c1f6220, 0x2706b: 0x6d32ea20, - 0x2706f: 0x6cb64420, - 0x27070: 0x6c770e20, 0x27071: 0x6c5df420, 0x27072: 0x6c7f2420, - 0x2707a: 0x6c410620, - 0x2707c: 0x6cd48220, 0x2707e: 0x6c301a20, - // Block 0x9c2, offset 0x27080 - 0x27083: 0x6c90c820, - 0x27084: 0x6ce93e20, 0x27087: 0x6d21ca20, - 0x27088: 0x6cf52e20, 0x2708a: 0x6ce4ce20, - 0x27092: 0x6c4c9e20, - 0x27098: 0x6ce04420, 0x27099: 0x6cb6ae20, - 0x270a0: 0x6c8b8020, 0x270a1: 0x6c87b420, 0x270a3: 0x6d09d020, - 0x270a8: 0x6c452820, 0x270a9: 0x6ce63820, 0x270aa: 0x6c4ea220, 0x270ab: 0x6c1f2a20, - 0x270ad: 0x6cea4c20, 0x270af: 0x6d047a20, - 0x270b0: 0x6d1f3020, 0x270b1: 0x6ca11820, 0x270b2: 0x6c1ba420, - 0x270b4: 0x6c562020, 0x270b5: 0x6c317020, 0x270b7: 0x6ca24420, - 0x270b9: 0x6ca34420, 0x270bb: 0x6c8d0c20, - 0x270bf: 0x6c00ae20, - // Block 0x9c3, offset 0x270c0 - 0x270c0: 0x6cfab020, - 0x270c4: 0x6c76e020, 0x270c5: 0x6cd8cc20, 0x270c6: 0x6cca0420, - 0x270ca: 0x6d180e20, - 0x270cf: 0x6d183c20, - 0x270d0: 0x6d000020, 0x270d2: 0x6d340820, 0x270d3: 0x6c313020, - 0x270d8: 0x6c973e20, - 0x270dc: 0x6c950a20, 0x270dd: 0x6c74a820, - 0x270e1: 0x6cbad620, 0x270e2: 0x6c8d4a20, - 0x270e9: 0x6cb12c20, 0x270ea: 0x6c23fc20, 0x270eb: 0x6c351820, - 0x270ec: 0x6d229420, - 0x270f0: 0x6d3d0a20, 0x270f2: 0x6cf8fe20, 0x270f3: 0x6c581620, - 0x270f4: 0x6ca02020, 0x270f5: 0x6ce14420, - 0x270f9: 0x6cb41820, 0x270fb: 0x6c9da420, - 0x270fc: 0x6c979020, 0x270fe: 0x6c48d420, - // Block 0x9c4, offset 0x27100 - 0x27100: 0x6cb93620, 0x27102: 0x6c8bfa20, 0x27103: 0x6c9fd620, - 0x27104: 0x6cf04e20, 0x27105: 0x6c136820, 0x27107: 0x6c56e220, - 0x27108: 0x6cdc0420, 0x2710b: 0x6c72bc20, - 0x2710c: 0x6ccc8420, 0x2710d: 0x6c9ba820, - 0x27117: 0x6cef7620, - 0x27118: 0x6cf75a20, 0x27119: 0x6c8e2a20, - 0x2711c: 0x6c0ad820, 0x2711d: 0x6cf13820, - 0x27121: 0x6c85b420, 0x27122: 0x6d304420, - 0x27124: 0x6d1df220, 0x27125: 0x6c554e20, 0x27126: 0x6cecda20, 0x27127: 0x6c034c20, - 0x27128: 0x6c649220, - 0x2712d: 0x6d426a20, 0x2712e: 0x6d2df220, 0x2712f: 0x6c0e7a20, - 0x27130: 0x6cbfb220, 0x27131: 0x6d0f5a20, - 0x27134: 0x6c300620, 0x27135: 0x6cc19820, - 0x2713a: 0x6caff820, 0x2713b: 0x6d2d2c20, - 0x2713e: 0x6cccf420, 0x2713f: 0x6c46bc20, - // Block 0x9c5, offset 0x27140 - 0x27140: 0x6c0c9020, 0x27141: 0x6d152220, 0x27142: 0x6c3eaa20, - 0x27144: 0x6d034020, 0x27145: 0x6cd3a620, 0x27146: 0x6ce6fc20, - 0x27149: 0x6c2f6220, - 0x2714c: 0x6ce86e20, 0x2714d: 0x6cfef620, 0x2714e: 0x6cf3e020, 0x2714f: 0x6cade420, - 0x27150: 0x6c5ade20, - 0x27155: 0x6c7f2220, - 0x27159: 0x6cd8e220, 0x2715a: 0x6c250220, 0x2715b: 0x6ccc7220, - 0x2715c: 0x6d38f020, 0x2715d: 0x6d2fd820, 0x2715e: 0x6cef3220, 0x2715f: 0x6c7f2620, - 0x27160: 0x6c0a3a20, 0x27163: 0x6c303e20, - 0x27166: 0x6ca51620, 0x27167: 0x6d005420, - 0x27168: 0x6cc54020, 0x27169: 0x6ce98e20, 0x2716a: 0x6cf0d820, 0x2716b: 0x6d1f7020, - 0x2716c: 0x6c9a2820, 0x2716d: 0x6d25b220, 0x2716e: 0x6d384220, - 0x27176: 0x6cd9ea20, - 0x27178: 0x6c474820, 0x27179: 0x6ccee620, 0x2717b: 0x6d2f9220, - 0x2717c: 0x6cb02820, 0x2717f: 0x6ce70820, - // Block 0x9c6, offset 0x27180 - 0x27181: 0x6c1ae220, 0x27182: 0x6caedc20, 0x27183: 0x6c153c20, - 0x27184: 0x6d1dca20, 0x27185: 0x6cd6ea20, 0x27187: 0x6cf48420, - 0x27189: 0x6cb03020, 0x2718a: 0x6c596020, - 0x2718c: 0x6c3f1e20, 0x2718e: 0x6c0c9620, - 0x27193: 0x6ca4d020, - 0x27195: 0x6c0c9820, 0x27196: 0x6cf11420, 0x27197: 0x6d1dd620, - 0x27199: 0x6ca52620, 0x2719a: 0x6c48fe20, - 0x271a0: 0x6c879220, 0x271a2: 0x6d035e20, 0x271a3: 0x6d0d2220, - 0x271a4: 0x6cb37420, 0x271a5: 0x6cadca20, - 0x271aa: 0x6cdd5c20, - 0x271ac: 0x6cc5e220, 0x271ad: 0x6ccd3a20, - 0x271b2: 0x6cdd5e20, - 0x271b8: 0x6c27d620, 0x271ba: 0x6c9af020, - // Block 0x9c7, offset 0x271c0 - 0x271c3: 0x6cd44820, - 0x271c8: 0x6c46a620, 0x271ca: 0x6c4da620, 0x271cb: 0x6cd39020, - 0x271cc: 0x6d102020, 0x271ce: 0x6c479620, - 0x271db: 0x6c77fe20, - 0x271de: 0x6c709c20, - 0x271e0: 0x6cac2e20, 0x271e1: 0x6c12f820, 0x271e2: 0x6c05b220, 0x271e3: 0x6d047020, - 0x271e4: 0x6c111420, 0x271e7: 0x6c8c2420, - 0x271e8: 0x6c00b020, - 0x271ec: 0x6c9d6220, 0x271ed: 0x6c7f3e20, - 0x271f1: 0x6cfee020, 0x271f3: 0x6ccf1e20, - 0x271fb: 0x6c5d7c20, - 0x271fc: 0x6ca6b420, - // Block 0x9c8, offset 0x27200 - 0x27204: 0x6d335620, 0x27206: 0x6c8c5c20, 0x27207: 0x6d2c4420, - 0x2720a: 0x6d27be20, - 0x2720d: 0x6d071c20, - 0x27214: 0x6c1a2a20, 0x27215: 0x6cf2c020, 0x27216: 0x6cf68620, - 0x27219: 0x6c074820, - 0x2721c: 0x6cce1c20, - 0x27220: 0x6d23d020, 0x27221: 0x6c9d8020, - 0x27232: 0x6c32b020, - 0x27235: 0x6c144a20, 0x27237: 0x6d2b0820, - 0x27238: 0x6c1a8820, 0x2723a: 0x6ce69220, - // Block 0x9c9, offset 0x27240 - 0x27245: 0x6d157020, - 0x2724b: 0x6d10ba20, - 0x2724e: 0x6c7a6620, - 0x27250: 0x6c3b9c20, 0x27251: 0x6d010420, 0x27252: 0x6c1a8a20, - 0x2725b: 0x6c7d2420, - 0x2725f: 0x6c0d6220, - 0x27261: 0x6c90cc20, - 0x27265: 0x6d18fa20, 0x27266: 0x6c9da620, 0x27267: 0x6d024620, - 0x27271: 0x6c4a9c20, 0x27273: 0x6c955e20, - 0x27276: 0x6ccdce20, - 0x2727e: 0x6c717a20, 0x2727f: 0x6c318420, - // Block 0x9ca, offset 0x27280 - 0x27282: 0x6cfaf220, - 0x27285: 0x6d356020, - 0x27288: 0x6c0d9020, - 0x27295: 0x6d356220, 0x27296: 0x6d3bfa20, 0x27297: 0x6d092a20, - 0x27298: 0x6c893020, 0x27299: 0x6cdcb220, - 0x272a6: 0x6c808c20, 0x272a7: 0x6c72cc20, - 0x272a8: 0x6c9df220, 0x272a9: 0x6d0ab420, 0x272aa: 0x6d2ea020, 0x272ab: 0x6c4c0c20, - 0x272b2: 0x6d376820, - 0x272bd: 0x6cf12c20, 0x272be: 0x6cc36a20, 0x272bf: 0x6c14ac20, - // Block 0x9cb, offset 0x272c0 - 0x272c8: 0x6cc63020, 0x272ca: 0x6d272820, - 0x272cc: 0x6d3ece20, - 0x272d0: 0x6c965420, 0x272d1: 0x6c4b3620, 0x272d3: 0x6c19f420, - 0x272d5: 0x6c709e20, 0x272d6: 0x6ce4fe20, 0x272d7: 0x6ced9820, - 0x272db: 0x6d33d820, - 0x272de: 0x6ca42c20, - 0x272e3: 0x6c4db420, - 0x272e8: 0x6cf6b020, 0x272e9: 0x6c8bd420, - 0x272ec: 0x6d0c2e20, 0x272ed: 0x6d074220, - 0x272f2: 0x6c56d220, 0x272f3: 0x6c423620, - 0x272f4: 0x6d074c20, 0x272f6: 0x6cf90a20, - 0x272fa: 0x6c258420, - 0x272fd: 0x6cf92a20, 0x272fe: 0x6c560220, - // Block 0x9cc, offset 0x27300 - 0x27305: 0x6d0c4c20, - 0x2730e: 0x6d170e20, 0x2730f: 0x6c1b1a20, - 0x27310: 0x6c741c20, 0x27312: 0x6d40b220, - 0x2731c: 0x6c699420, 0x2731d: 0x6d178220, 0x2731f: 0x6ce05e20, - 0x27320: 0x6c1c1420, 0x27321: 0x6c037a20, 0x27322: 0x6ce82820, 0x27323: 0x6d3f7a20, - 0x27324: 0x6cc05420, 0x27327: 0x6c1c1620, - 0x27328: 0x6cf7e020, - 0x27330: 0x6ca69c20, 0x27332: 0x6c241420, - 0x27334: 0x6cf44820, 0x27336: 0x6c1f4820, 0x27337: 0x6cda4e20, - 0x27338: 0x6d1df820, 0x27339: 0x6c71bc20, 0x2733a: 0x6c037e20, - 0x2733c: 0x6c229c20, 0x2733d: 0x6c2c6420, 0x2733e: 0x6cac9820, 0x2733f: 0x6c1c2620, - // Block 0x9cd, offset 0x27340 - 0x27341: 0x6cc0ac20, 0x27343: 0x6d0ca420, - 0x2734d: 0x6d2d2e20, - 0x27352: 0x6cfce220, 0x27353: 0x6c084620, - 0x27354: 0x6c7ba620, 0x27355: 0x6cb7a820, 0x27356: 0x6d389220, 0x27357: 0x6c713820, - 0x27358: 0x6cbcca20, 0x27359: 0x6ca13420, 0x2735a: 0x6d258c20, - 0x2735c: 0x6c4b5820, 0x2735d: 0x6d417220, - 0x27367: 0x6cbccc20, - 0x27370: 0x6c558a20, 0x27371: 0x6cc08820, 0x27372: 0x6c4d2220, 0x27373: 0x6c402c20, - 0x27374: 0x6c812a20, 0x27375: 0x6ccc6c20, 0x27376: 0x6cf68820, 0x27377: 0x6c101c20, - 0x27378: 0x6cd3ba20, 0x27379: 0x6d1e5220, 0x2737a: 0x6c49f020, - 0x2737c: 0x6ca85420, 0x2737f: 0x6c545820, - // Block 0x9ce, offset 0x27380 - 0x2738a: 0x6c9d7220, - 0x2738e: 0x6c369420, 0x2738f: 0x6cfb8a20, - 0x27390: 0x6d280020, 0x27391: 0x6d073220, 0x27392: 0x6cbde420, 0x27393: 0x6c301220, - 0x27394: 0x6c838220, 0x27395: 0x6cb7ca20, 0x27396: 0x6c7fb020, 0x27397: 0x6c3ee420, - 0x27398: 0x6cb71420, 0x27399: 0x6c1d3e20, - 0x2739c: 0x6c245c20, 0x2739f: 0x6ca16620, - 0x273a0: 0x6c06b820, - 0x273a4: 0x6c2a2e20, - 0x273a8: 0x6c6b3a20, 0x273a9: 0x6c1d5c20, 0x273aa: 0x6c1c7620, 0x273ab: 0x6d23f820, - 0x273ac: 0x6c24ee20, 0x273ad: 0x6cdb2620, 0x273ae: 0x6ce42420, 0x273af: 0x6cd61020, - 0x273b0: 0x6d2c4c20, 0x273b1: 0x6c3ef820, 0x273b3: 0x6c184620, - 0x273b4: 0x6c3d0c20, 0x273b5: 0x6c543220, 0x273b6: 0x6d2c4e20, - // Block 0x9cf, offset 0x273c0 - 0x273c4: 0x6c6b3c20, 0x273c5: 0x6d2c5020, 0x273c6: 0x6d2d9c20, - 0x273c9: 0x6d0dde20, 0x273ca: 0x6c4d3020, 0x273cb: 0x6cf48220, - 0x273cc: 0x6c576220, 0x273cd: 0x6c2cde20, 0x273ce: 0x6d115420, 0x273cf: 0x6cd9ec20, - 0x273d0: 0x6cb92c20, 0x273d1: 0x6c60cc20, 0x273d2: 0x6d04aa20, 0x273d3: 0x6cb7f020, - 0x273d4: 0x6c758420, 0x273d6: 0x6c4d3220, - 0x273de: 0x6d0dee20, 0x273df: 0x6c6b6820, - 0x273e0: 0x6c24f420, 0x273e2: 0x6ce96a20, 0x273e3: 0x6d2ee620, - 0x273e4: 0x6cb16c20, 0x273e5: 0x6c930e20, 0x273e6: 0x6d342020, 0x273e7: 0x6c1f8820, - 0x273e8: 0x6c9da820, 0x273e9: 0x6cbaec20, 0x273eb: 0x6c892420, - 0x273f2: 0x6c86dc20, - 0x273f6: 0x6c359a20, 0x273f7: 0x6cdb5820, - 0x273f8: 0x6c74f020, 0x273fb: 0x6c717c20, - 0x273fc: 0x6ce03a20, 0x273fd: 0x6c8a4820, 0x273fe: 0x6cca0a20, 0x273ff: 0x6c309220, - // Block 0x9d0, offset 0x27400 - 0x27401: 0x6d28d420, 0x27402: 0x6d34b220, - 0x27406: 0x6d08ca20, 0x27407: 0x6c8d8620, - 0x2740a: 0x6c2abe20, - 0x2740d: 0x6d2dbe20, 0x2740e: 0x6d07f020, 0x2740f: 0x6cbdf220, - 0x27410: 0x6c69da20, 0x27411: 0x6cb0da20, - 0x27414: 0x6c4e6e20, - 0x2741a: 0x6d21f220, 0x2741b: 0x6c4ca420, - 0x2741d: 0x6d0a5420, - 0x27420: 0x6d0a5620, 0x27421: 0x6c156c20, 0x27422: 0x6c6b8020, 0x27423: 0x6c719420, - 0x27424: 0x6d0e1820, 0x27425: 0x6c31f620, 0x27427: 0x6c53e020, - 0x27428: 0x6cfd4a20, 0x27429: 0x6d0a5820, - 0x2742e: 0x6c8db020, 0x2742f: 0x6c6b8620, - 0x27430: 0x6d197e20, 0x27431: 0x6cc22a20, 0x27432: 0x6c41c020, 0x27433: 0x6c3c8c20, - 0x27435: 0x6c753820, 0x27436: 0x6cc16e20, - 0x2743b: 0x6c6fe020, - 0x2743d: 0x6c61ba20, 0x2743e: 0x6c612c20, - // Block 0x9d1, offset 0x27440 - 0x27445: 0x6cf77420, 0x27446: 0x6cacd220, - 0x27448: 0x6c7bf020, 0x27449: 0x6c7a8e20, 0x2744b: 0x6c7a9020, - 0x2744c: 0x6d2cbe20, 0x2744f: 0x6c03b220, - 0x27452: 0x6c190220, 0x27453: 0x6c569820, - 0x27454: 0x6caa6220, 0x27455: 0x6c356220, 0x27456: 0x6d046a20, 0x27457: 0x6c33ce20, - 0x27458: 0x6cd10020, 0x27459: 0x6cecdc20, 0x2745a: 0x6c3b2e20, - 0x2745d: 0x6cf60420, 0x2745e: 0x6d3e2e20, - 0x27460: 0x6c569a20, - 0x27465: 0x6c0cea20, 0x27467: 0x6ceba620, - 0x27468: 0x6c04cc20, 0x27469: 0x6c43e420, 0x2746b: 0x6c77f620, - 0x27472: 0x6d3c8c20, 0x27473: 0x6c3e9220, - 0x27474: 0x6ca12020, 0x27475: 0x6c63c620, 0x27476: 0x6ceb2620, 0x27477: 0x6d235a20, - 0x27479: 0x6ca24620, 0x2747a: 0x6c745e20, 0x2747b: 0x6c712820, - 0x2747c: 0x6c486220, 0x2747d: 0x6cb35a20, - // Block 0x9d2, offset 0x27480 - 0x27480: 0x6ca63c20, - 0x27484: 0x6cec1e20, 0x27485: 0x6d0d9620, - 0x27494: 0x6c1e2c20, 0x27495: 0x6c7ba820, 0x27496: 0x6c4d7020, - 0x27498: 0x6cfdd020, 0x27499: 0x6cf65c20, 0x2749b: 0x6c25a820, - 0x2749c: 0x6ce6fe20, 0x2749d: 0x6cc92420, 0x2749f: 0x6c345820, - 0x274a0: 0x6c182a20, - 0x274a4: 0x6c833820, 0x274a5: 0x6d3e6420, 0x274a7: 0x6d332420, - 0x274a8: 0x6d426c20, 0x274ab: 0x6c773020, - 0x274ac: 0x6d293a20, 0x274ae: 0x6d250020, 0x274af: 0x6cbf4620, - 0x274b3: 0x6c381820, - 0x274b4: 0x6d0a2220, 0x274b6: 0x6c622e20, - 0x274b8: 0x6c13a620, - // Block 0x9d3, offset 0x274c0 - 0x274c0: 0x6cd4fe20, 0x274c1: 0x6d08a820, 0x274c2: 0x6d00d220, 0x274c3: 0x6ce2f820, - 0x274c4: 0x6c4ef220, 0x274c5: 0x6cfac020, 0x274c6: 0x6ccd0420, 0x274c7: 0x6cea8c20, - 0x274c8: 0x6c4f8420, 0x274c9: 0x6c7dbc20, 0x274ca: 0x6c133620, 0x274cb: 0x6c30bc20, - 0x274cc: 0x6caac620, 0x274cd: 0x6d0e9a20, 0x274ce: 0x6c1a2c20, 0x274cf: 0x6cb40a20, - 0x274d0: 0x6cb7ba20, 0x274d1: 0x6d26d420, 0x274d2: 0x6c3d8c20, - 0x274d7: 0x6ce6dc20, - 0x274df: 0x6cf2c220, - 0x274e0: 0x6cd11220, 0x274e1: 0x6ceb8c20, - 0x274f4: 0x6ce06a20, 0x274f6: 0x6d0b6020, 0x274f7: 0x6d36ca20, - 0x274f8: 0x6c92be20, 0x274f9: 0x6d0dd020, 0x274fa: 0x6c70c220, - 0x274fd: 0x6c2a8020, 0x274ff: 0x6c1f7020, - // Block 0x9d4, offset 0x27500 - 0x27500: 0x6d412620, 0x27501: 0x6c369620, 0x27502: 0x6d349620, 0x27503: 0x6caec020, - 0x27505: 0x6c0cbe20, 0x27507: 0x6c2c0220, - 0x27510: 0x6c7f2820, 0x27512: 0x6d133020, - 0x2751c: 0x6c4fe620, 0x2751d: 0x6cac7420, 0x2751e: 0x6ce0ae20, 0x2751f: 0x6c774a20, - 0x27520: 0x6d05ea20, 0x27521: 0x6d408e20, 0x27522: 0x6c628c20, 0x27523: 0x6cf52620, - 0x27526: 0x6c204020, - 0x27529: 0x6cb3a420, 0x2752a: 0x6d0dd620, 0x2752b: 0x6cebb420, - 0x2752d: 0x6c31b820, 0x2752f: 0x6cb13020, - 0x27530: 0x6c1c7820, 0x27531: 0x6c5d4420, 0x27532: 0x6cb26820, - 0x27534: 0x6c235c20, 0x27535: 0x6d2c9620, - 0x2753a: 0x6cec9e20, - 0x2753f: 0x6cec6620, - // Block 0x9d5, offset 0x27540 - 0x27543: 0x6c36ae20, - 0x27544: 0x6cf0da20, 0x27545: 0x6c040420, 0x27547: 0x6c678020, - 0x27553: 0x6c140a20, - 0x27555: 0x6c1f8220, 0x27556: 0x6c7af220, 0x27557: 0x6ce2bc20, - 0x27558: 0x6d406a20, 0x27559: 0x6c86ac20, 0x2755a: 0x6cdeb220, 0x2755b: 0x6cc9a420, - 0x2755e: 0x6cac7a20, 0x2755f: 0x6cac7c20, - 0x27563: 0x6ccb0020, - 0x27564: 0x6cbbba20, - 0x2756d: 0x6d40e220, 0x2756f: 0x6d371820, - 0x27570: 0x6d0de020, 0x27572: 0x6c6b4820, 0x27573: 0x6ca5aa20, - // Block 0x9d6, offset 0x27580 - 0x27584: 0x6c944420, 0x27585: 0x6cc15220, 0x27587: 0x6c2af220, - 0x27588: 0x6c897620, 0x27589: 0x6c15f220, 0x2758a: 0x6cbcf820, 0x2758b: 0x6c912220, - 0x2758c: 0x6c2efe20, 0x2758d: 0x6c24f620, - 0x27590: 0x6c615c20, 0x27593: 0x6c178420, - 0x27594: 0x6cd69a20, 0x27595: 0x6d40f220, 0x27597: 0x6c775a20, - 0x2759a: 0x6cbaf020, 0x2759b: 0x6c847820, - 0x275ae: 0x6cd65e20, 0x275af: 0x6d243e20, - 0x275b0: 0x6d2ee820, 0x275b1: 0x6c82f220, - // Block 0x9d7, offset 0x275c0 - 0x275c5: 0x6cb33e20, - 0x275ca: 0x6d30b620, 0x275cb: 0x6d001e20, - 0x275cd: 0x6ce08620, 0x275ce: 0x6c258620, 0x275cf: 0x6c7fdc20, - 0x275d1: 0x6d060220, 0x275d2: 0x6cd62820, 0x275d3: 0x6d2c9c20, - 0x275d4: 0x6c11ba20, 0x275d7: 0x6c08fe20, - 0x275d8: 0x6caf1c20, - 0x275dd: 0x6c1a5620, - 0x275e3: 0x6cbc0c20, - 0x275e4: 0x6c5f8620, - 0x275ea: 0x6d2d0420, - 0x275ec: 0x6c7fde20, - // Block 0x9d8, offset 0x27600 - 0x27601: 0x6ce52820, 0x27602: 0x6cc9b020, 0x27603: 0x6c6c6e20, - 0x27604: 0x6d3b4020, 0x27605: 0x6c352220, 0x27607: 0x6c145620, - 0x27608: 0x6c73a020, 0x27609: 0x6ce16220, 0x2760a: 0x6c086420, - 0x2760c: 0x6c38e820, 0x2760d: 0x6c8b6820, 0x2760e: 0x6d2b6e20, 0x2760f: 0x6cdcb420, - 0x27619: 0x6ccb8c20, - 0x27627: 0x6d375c20, - 0x27628: 0x6ce9d420, 0x2762a: 0x6cbe5e20, - 0x2762c: 0x6c21e620, - 0x27630: 0x6cdee620, 0x27631: 0x6c0e3c20, 0x27632: 0x6cf1f620, - 0x27635: 0x6cb36220, - 0x2763d: 0x6ca09a20, 0x2763e: 0x6c10e420, - // Block 0x9d9, offset 0x27640 - 0x27641: 0x6c7c2020, 0x27643: 0x6c260220, - 0x27644: 0x6cc54420, 0x27645: 0x6c068020, 0x27646: 0x6c7f8020, - 0x2764d: 0x6ca75220, 0x2764e: 0x6c84c220, - 0x27655: 0x6c697220, 0x27656: 0x6c919e20, 0x27657: 0x6c879620, - 0x27658: 0x6c900820, 0x27659: 0x6c4baa20, - 0x2765d: 0x6c161c20, - 0x27664: 0x6cfb1820, 0x27666: 0x6c165620, - 0x27668: 0x6d029020, 0x27669: 0x6d2ea820, - 0x2766f: 0x6cd6c620, - 0x2767b: 0x6c9d1220, - 0x2767c: 0x6c947420, 0x2767d: 0x6c965620, - // Block 0x9da, offset 0x27680 - 0x27680: 0x6c2d0220, - 0x27688: 0x6c2f2820, 0x2768a: 0x6cecb220, 0x2768b: 0x6d274620, - 0x2768c: 0x6c948620, 0x2768e: 0x6c948a20, - 0x27693: 0x6c837220, - 0x27695: 0x6cec6020, 0x27696: 0x6c2f3e20, 0x27697: 0x6ca59620, - 0x27698: 0x6cceb220, 0x27699: 0x6d019e20, 0x2769a: 0x6cafe820, - 0x276a5: 0x6c98dc20, 0x276a7: 0x6d1ade20, - 0x276a9: 0x6c0f0a20, 0x276ab: 0x6d3b0220, - 0x276ae: 0x6c1cc820, - 0x276b6: 0x6ca24820, 0x276b7: 0x6ceb2820, - 0x276b9: 0x6ce7be20, 0x276ba: 0x6d128820, - // Block 0x9db, offset 0x276c0 - 0x276c1: 0x6c5a7220, 0x276c3: 0x6cc60020, - 0x276c5: 0x6d130620, - 0x276cb: 0x6ceb3a20, - 0x276d6: 0x6d413a20, 0x276d7: 0x6d23d220, - 0x276da: 0x6c000c20, - 0x276dc: 0x6d38a420, 0x276dd: 0x6cec9c20, - 0x276e1: 0x6c34ae20, 0x276e2: 0x6d384420, 0x276e3: 0x6c4cfc20, - 0x276e4: 0x6c5a0420, 0x276e5: 0x6c9e6220, - 0x276e9: 0x6c211a20, 0x276ea: 0x6cbce420, 0x276eb: 0x6c45b220, - 0x276ec: 0x6ce69420, 0x276ed: 0x6c9a2a20, - 0x276f1: 0x6ce1a420, - 0x276f4: 0x6cc6c420, 0x276f7: 0x6cc6c620, - 0x276f8: 0x6cb66420, 0x276f9: 0x6c4c9a20, - 0x276fd: 0x6cfe6220, 0x276fe: 0x6ce4ca20, - // Block 0x9dc, offset 0x27700 - 0x27705: 0x6cff4020, - 0x27708: 0x6d2db620, 0x27709: 0x6c258820, - 0x27714: 0x6c7ffc20, - 0x27718: 0x6cd02e20, 0x2771a: 0x6c830e20, 0x2771b: 0x6c879820, - 0x2771d: 0x6c14e620, 0x2771e: 0x6ca8d020, 0x2771f: 0x6c947620, - 0x27721: 0x6ce63a20, 0x27722: 0x6c5ba620, - 0x27727: 0x6c458020, - 0x27730: 0x6cb77220, 0x27731: 0x6d20fa20, 0x27733: 0x6d02d220, - 0x27738: 0x6d26ae20, 0x27739: 0x6c034e20, 0x2773a: 0x6c276a20, 0x2773b: 0x6c5eba20, - 0x2773c: 0x6d089220, 0x2773f: 0x6c743c20, - // Block 0x9dd, offset 0x27740 - 0x27740: 0x6ca99420, - 0x27748: 0x6c325220, 0x27749: 0x6c602620, - 0x27750: 0x6cabc820, 0x27751: 0x6c45f020, 0x27752: 0x6c07ba20, - 0x27754: 0x6c794220, 0x27755: 0x6d105020, 0x27756: 0x6c8f0820, 0x27757: 0x6ca5ee20, - 0x27758: 0x6d2cca20, 0x27759: 0x6d1b5c20, 0x2775a: 0x6ca72820, 0x2775b: 0x6cad9020, - 0x2775d: 0x6c458e20, 0x2775e: 0x6c109e20, 0x2775f: 0x6c512e20, - 0x27760: 0x6cc71220, 0x27761: 0x6c4b5020, - 0x27765: 0x6c09b620, 0x27766: 0x6cf63020, 0x27767: 0x6c712a20, - 0x27768: 0x6c5cf420, 0x27769: 0x6c09e420, 0x2776b: 0x6ce56420, - 0x2776c: 0x6d332820, 0x2776f: 0x6d181020, - 0x27770: 0x6c22d220, 0x27772: 0x6c0e2620, - 0x27777: 0x6c459c20, - 0x2777a: 0x6c381a20, - 0x2777d: 0x6d0fce20, 0x2777e: 0x6d064820, - // Block 0x9de, offset 0x27780 - 0x27781: 0x6c52b620, - 0x27784: 0x6d2a0a20, 0x27785: 0x6c148420, 0x27786: 0x6c537620, - 0x27788: 0x6ce4b820, - 0x2778c: 0x6d340a20, 0x2778d: 0x6d039220, 0x2778e: 0x6d062220, - 0x27791: 0x6d325820, - 0x27794: 0x6ced4020, - 0x27798: 0x6c75dc20, - 0x2779d: 0x6cf30c20, - 0x277a0: 0x6c92c220, 0x277a2: 0x6d32f220, 0x277a3: 0x6cc71a20, - 0x277a4: 0x6c1a3c20, 0x277a5: 0x6c3ee620, 0x277a7: 0x6c369820, - 0x277a8: 0x6ce1e620, 0x277a9: 0x6ce12e20, 0x277ab: 0x6c730020, - 0x277ac: 0x6c17c020, 0x277ad: 0x6cde9620, 0x277ae: 0x6c2c0420, - 0x277b0: 0x6d3fc020, 0x277b3: 0x6c794c20, - 0x277b4: 0x6ce99820, 0x277b6: 0x6c794e20, - // Block 0x9df, offset 0x277c0 - 0x277c5: 0x6cc71c20, 0x277c6: 0x6d276420, 0x277c7: 0x6c517a20, - 0x277c8: 0x6d400820, 0x277c9: 0x6c235e20, 0x277ca: 0x6cbfcc20, - 0x277ce: 0x6ca2b420, 0x277cf: 0x6c346420, - 0x277d0: 0x6d065a20, 0x277d1: 0x6c795620, 0x277d2: 0x6cfd1220, - 0x277db: 0x6c31ba20, - 0x277dc: 0x6c76ee20, 0x277de: 0x6d1bf020, - 0x277e2: 0x6d3e9620, - 0x277e7: 0x6c5a0620, - 0x277e9: 0x6caed020, 0x277eb: 0x6c86ae20, - 0x277ed: 0x6c0f8220, 0x277ee: 0x6c444420, 0x277ef: 0x6c716620, - 0x277f0: 0x6c783420, 0x277f2: 0x6c55ce20, 0x277f3: 0x6d115820, - 0x277f4: 0x6ce14820, 0x277f6: 0x6cbf7020, 0x277f7: 0x6cc72820, - 0x277f8: 0x6c8f1e20, 0x277f9: 0x6c5c5e20, 0x277fa: 0x6c5f6220, - // Block 0x9e0, offset 0x27800 - 0x27809: 0x6d371a20, 0x2780b: 0x6ce15220, - 0x2780c: 0x6d355c20, 0x2780d: 0x6c775e20, - 0x27814: 0x6d107220, 0x27816: 0x6ce18420, 0x27817: 0x6c52d820, - 0x2781b: 0x6c897820, - 0x2781d: 0x6c12a020, - 0x27821: 0x6ca3aa20, 0x27822: 0x6d400e20, - 0x27824: 0x6c2af420, 0x27826: 0x6c68a220, 0x27827: 0x6caeec20, - 0x27829: 0x6c49fa20, 0x2782a: 0x6c377420, 0x2782b: 0x6c670620, - 0x2782c: 0x6c69d220, 0x2782d: 0x6caaca20, 0x2782e: 0x6d2a6220, - 0x27833: 0x6caef620, - 0x27834: 0x6c292020, 0x27836: 0x6cc1f620, 0x27837: 0x6c889620, - 0x27838: 0x6ca2be20, 0x27839: 0x6c805220, - 0x2783e: 0x6c3baa20, - // Block 0x9e1, offset 0x27840 - 0x27842: 0x6c5d0e20, - 0x27846: 0x6c7bb420, - 0x27848: 0x6d1b2a20, 0x27849: 0x6cd69c20, 0x2784a: 0x6c671e20, - 0x27852: 0x6c964420, - 0x27854: 0x6c933c20, - 0x2785a: 0x6c446a20, 0x2785b: 0x6cc51220, - 0x2785e: 0x6cb22e20, - 0x27860: 0x6c900a20, - 0x27864: 0x6d320c20, 0x27865: 0x6cfd4c20, - 0x27868: 0x6c8c8e20, 0x27869: 0x6c88aa20, 0x2786a: 0x6ccd2420, 0x2786b: 0x6c0fd420, - 0x2786c: 0x6c87a820, - 0x27873: 0x6d013a20, - 0x27874: 0x6c446e20, 0x27875: 0x6c9fe020, 0x27876: 0x6c88ae20, - 0x27879: 0x6c753c20, 0x2787a: 0x6d38c820, - 0x2787f: 0x6c784820, - // Block 0x9e2, offset 0x27880 - 0x27881: 0x6c2f2a20, 0x27883: 0x6d30ce20, - 0x27885: 0x6cd4ac20, 0x27886: 0x6c5e9020, 0x27887: 0x6c8f7c20, - 0x27888: 0x6c49ea20, 0x27889: 0x6d2a5620, 0x2788a: 0x6cfd4420, 0x2788b: 0x6cb8ae20, - 0x2788d: 0x6ccfd820, - 0x27890: 0x6d1ae020, 0x27891: 0x6c6be420, - 0x27894: 0x6ccffe20, 0x27895: 0x6cd00020, 0x27896: 0x6cc95220, - 0x2789b: 0x6cf8c020, - 0x278a1: 0x6c7aac20, 0x278a3: 0x6cc1c620, - 0x278a5: 0x6c443e20, 0x278a6: 0x6c050820, - 0x278a8: 0x6c0a7c20, 0x278a9: 0x6cb92e20, - 0x278b0: 0x6c0d6420, 0x278b1: 0x6c050a20, 0x278b3: 0x6d42ae20, - 0x278b4: 0x6cb0d020, 0x278b6: 0x6c5e3620, - 0x278be: 0x6c051020, - // Block 0x9e3, offset 0x278c0 - 0x278ca: 0x6ca9d820, - 0x278cc: 0x6c18fc20, 0x278ce: 0x6cae4e20, - 0x278d1: 0x6c3f2e20, 0x278d2: 0x6ce88220, - 0x278dc: 0x6cb04e20, 0x278dd: 0x6cb36420, - 0x278e0: 0x6c1b7420, 0x278e3: 0x6d093e20, - 0x278e4: 0x6cb74020, 0x278e5: 0x6cf4b220, - 0x278e8: 0x6d357e20, 0x278e9: 0x6c2c1c20, 0x278ea: 0x6c22fe20, 0x278eb: 0x6d1ef420, - 0x278f9: 0x6c230020, - 0x278fc: 0x6c2c1e20, 0x278fd: 0x6d3d2620, 0x278ff: 0x6d408020, - // Block 0x9e4, offset 0x27900 - 0x27900: 0x6c238c20, 0x27903: 0x6caca820, - 0x27904: 0x6d0d4c20, 0x27905: 0x6cb74e20, 0x27906: 0x6cc6fa20, 0x27907: 0x6c63a420, - 0x27909: 0x6d359220, 0x2790a: 0x6cc00e20, 0x2790b: 0x6d268a20, - 0x2790d: 0x6cd32420, - 0x27911: 0x6c4fc020, - 0x27919: 0x6ceab220, - 0x2791c: 0x6c0cde20, 0x2791e: 0x6c770020, - 0x27922: 0x6c21aa20, - 0x27924: 0x6c229020, 0x27926: 0x6d1ad020, 0x27927: 0x6cd34c20, - 0x27928: 0x6ca3b820, 0x27929: 0x6cc85820, 0x2792b: 0x6d0f9e20, - 0x2792c: 0x6c1a9820, 0x2792e: 0x6c21f820, - 0x27931: 0x6c457620, 0x27932: 0x6c9c4220, - 0x27934: 0x6c612e20, - 0x2793c: 0x6c44b220, 0x2793d: 0x6d2a6c20, - // Block 0x9e5, offset 0x27940 - 0x27941: 0x6c081420, - 0x27947: 0x6d030c20, - 0x27948: 0x6c7df020, 0x2794a: 0x6c2e8e20, - 0x2794d: 0x6ce66a20, - 0x2795a: 0x6cd71c20, - 0x2795e: 0x6c275620, - 0x27966: 0x6c851020, - 0x27968: 0x6d1e2820, 0x27969: 0x6c684220, - 0x2796c: 0x6cde0420, 0x2796d: 0x6cc24620, 0x2796e: 0x6d1a6020, 0x2796f: 0x6d24e820, - 0x27970: 0x6c6abc20, 0x27972: 0x6cb8da20, 0x27973: 0x6d10a020, - 0x27974: 0x6d0ba620, 0x27977: 0x6cbe4a20, - 0x2797f: 0x6cadd420, - // Block 0x9e6, offset 0x27980 - 0x27997: 0x6c635820, - 0x27999: 0x6ce82c20, 0x2799b: 0x6ce2ec20, - 0x279a1: 0x6c33f620, 0x279a2: 0x6c15ba20, 0x279a3: 0x6c636820, - 0x279a4: 0x6c1c2820, 0x279a5: 0x6c64aa20, 0x279a6: 0x6cd5e020, - 0x279af: 0x6cde5a20, - // Block 0x9e7, offset 0x279c0 - 0x279d5: 0x6d33ea20, 0x279d7: 0x6d256e20, - 0x279da: 0x6c54d420, - 0x279dc: 0x6c8b1220, - 0x279e0: 0x6d2ad420, 0x279e2: 0x6c1f5e20, - 0x279e6: 0x6cc0ba20, 0x279e7: 0x6c07fa20, - 0x279f9: 0x6c588620, 0x279fa: 0x6c7aca20, 0x279fb: 0x6cd10c20, - 0x279fd: 0x6c6afe20, 0x279ff: 0x6cee2c20, - // Block 0x9e8, offset 0x27a00 - 0x27a03: 0x6c54de20, - 0x27a0a: 0x6d2ae620, 0x27a0b: 0x6d297020, - 0x27a0c: 0x6d106420, 0x27a0e: 0x6c1bba20, 0x27a0f: 0x6c701220, - 0x27a1a: 0x6c89fe20, 0x27a1b: 0x6d209620, - 0x27a20: 0x6c0b4a20, 0x27a22: 0x6c7bc820, - 0x27a2c: 0x6c1e4a20, 0x27a2d: 0x6d0b3620, 0x27a2e: 0x6d3d8620, - 0x27a30: 0x6cbcda20, 0x27a31: 0x6cfcf020, 0x27a33: 0x6d250620, - 0x27a34: 0x6cf46e20, 0x27a35: 0x6c693620, 0x27a36: 0x6cfe5020, 0x27a37: 0x6ccc7420, - 0x27a39: 0x6d36cc20, - 0x27a3c: 0x6c1d5a20, 0x27a3e: 0x6c0b0620, 0x27a3f: 0x6ceeb820, - // Block 0x9e9, offset 0x27a40 - 0x27a53: 0x6c2a3220, - 0x27a5d: 0x6d23d820, 0x27a5e: 0x6ce9b820, - 0x27a61: 0x6c17c220, - 0x27a65: 0x6c5c4420, 0x27a66: 0x6cba2620, - 0x27a68: 0x6cf01a20, - 0x27a70: 0x6d1f7420, - 0x27a7c: 0x6c2ca020, 0x27a7e: 0x6c26f620, - // Block 0x9ea, offset 0x27a80 - 0x27a81: 0x6d1f7620, 0x27a82: 0x6c702620, 0x27a83: 0x6ce9bc20, - 0x27a84: 0x6d297620, 0x27a87: 0x6c5c6020, - 0x27a89: 0x6ccc8220, - 0x27a8c: 0x6c5e1020, - 0x27a94: 0x6d115a20, - 0x27a99: 0x6cfd1e20, - 0x27a9e: 0x6cfd2020, - 0x27aac: 0x6c2caa20, 0x27aae: 0x6c703220, - 0x27ab2: 0x6c5c7420, - 0x27ab4: 0x6c77cc20, 0x27ab5: 0x6d1f8420, - 0x27ab8: 0x6c870e20, - 0x27abc: 0x6c201420, 0x27abe: 0x6c1b6820, - // Block 0x9eb, offset 0x27ac0 - 0x27ac0: 0x6c5e3820, 0x27ac2: 0x6d1f9020, - 0x27ac4: 0x6d270e20, - 0x27ace: 0x6cded820, 0x27acf: 0x6d29b420, - 0x27ad3: 0x6ca8ac20, - 0x27ad4: 0x6d3b4a20, - 0x27ae1: 0x6cfc6220, - 0x27ae9: 0x6cd22a20, 0x27aeb: 0x6c79ca20, - 0x27aec: 0x6cb6c620, 0x27aed: 0x6ce91420, 0x27aee: 0x6c387e20, 0x27aef: 0x6c258e20, - 0x27af2: 0x6cea3820, 0x27af3: 0x6c137420, - 0x27af4: 0x6c110020, 0x27af5: 0x6cfe1420, 0x27af6: 0x6cadfc20, 0x27af7: 0x6c6e0220, - 0x27af8: 0x6cb56a20, 0x27af9: 0x6cceae20, 0x27afa: 0x6ca97420, 0x27afb: 0x6ca30420, - 0x27afd: 0x6cbd5020, - // Block 0x9ec, offset 0x27b00 - 0x27b0d: 0x6c090c20, - 0x27b13: 0x6c092420, - 0x27b14: 0x6c05a220, 0x27b15: 0x6c0b7620, 0x27b16: 0x6d3e0220, 0x27b17: 0x6ca30a20, - 0x27b18: 0x6cf07020, 0x27b19: 0x6c4fbe20, - 0x27b21: 0x6c6c8220, 0x27b23: 0x6d333c20, - 0x27b27: 0x6cbc8220, - 0x27b2e: 0x6c501620, 0x27b2f: 0x6ce71e20, - 0x27b30: 0x6d2a4020, 0x27b31: 0x6cd15420, 0x27b32: 0x6c25a420, 0x27b33: 0x6c597e20, - 0x27b34: 0x6cc78e20, 0x27b35: 0x6d292e20, 0x27b36: 0x6ca6f820, - 0x27b3e: 0x6cfa8620, - // Block 0x9ed, offset 0x27b40 - 0x27b48: 0x6cc2bc20, 0x27b49: 0x6c619a20, 0x27b4a: 0x6d1a3620, 0x27b4b: 0x6c850620, - 0x27b4c: 0x6c984620, 0x27b4d: 0x6cceca20, 0x27b4e: 0x6c4e8e20, 0x27b4f: 0x6c260e20, - 0x27b50: 0x6c759c20, 0x27b51: 0x6c61bc20, 0x27b52: 0x6c107820, 0x27b53: 0x6c905420, - 0x27b54: 0x6c3d2220, 0x27b55: 0x6d1f0e20, 0x27b56: 0x6c7b1c20, - 0x27b5c: 0x6cfe2220, - 0x27b61: 0x6d279420, 0x27b63: 0x6cbd5e20, - 0x27b64: 0x6c5b2c20, 0x27b65: 0x6cb42e20, - 0x27b6b: 0x6c83b220, - 0x27b6c: 0x6cadcc20, 0x27b6d: 0x6cd4c620, 0x27b6e: 0x6c707620, 0x27b6f: 0x6d14e020, - 0x27b70: 0x6d32a820, 0x27b71: 0x6c1d0e20, 0x27b73: 0x6cf77620, - 0x27b75: 0x6c561a20, 0x27b76: 0x6cc74420, - // Block 0x9ee, offset 0x27b80 - 0x27b8c: 0x6c590c20, 0x27b8d: 0x6cbc3c20, 0x27b8e: 0x6d33d020, 0x27b8f: 0x6d1c6c20, - 0x27b90: 0x6cf7e220, 0x27b91: 0x6cbb7620, 0x27b92: 0x6c61fa20, 0x27b93: 0x6d32bc20, - 0x27b94: 0x6c59b420, 0x27b96: 0x6d210a20, 0x27b97: 0x6d405a20, - 0x27b98: 0x6c99f420, - 0x27b9c: 0x6cd13220, - 0x27ba9: 0x6cc2e620, - 0x27bb0: 0x6c676020, 0x27bb1: 0x6c512020, 0x27bb3: 0x6ce75220, - 0x27bb4: 0x6c513020, 0x27bb5: 0x6cf15220, 0x27bb6: 0x6d17cc20, 0x27bb7: 0x6cacfe20, - 0x27bba: 0x6cf22620, 0x27bbb: 0x6cb99820, - 0x27bbc: 0x6c862020, 0x27bbd: 0x6d150a20, 0x27bbe: 0x6c20ac20, 0x27bbf: 0x6d06e820, - // Block 0x9ef, offset 0x27bc0 - 0x27bc0: 0x6cefd020, - 0x27bc6: 0x6c439420, - 0x27bc8: 0x6d226220, 0x27bcb: 0x6d2d4420, - 0x27bcc: 0x6c41a220, 0x27bcd: 0x6cb8f620, 0x27bce: 0x6c773220, 0x27bcf: 0x6c840220, - 0x27bd0: 0x6cd00220, 0x27bd1: 0x6c499220, 0x27bd3: 0x6cb17c20, - 0x27bd6: 0x6c840420, - 0x27bd8: 0x6c562620, 0x27bdb: 0x6ce8ce20, - 0x27bdc: 0x6cd75620, 0x27bde: 0x6c56aa20, 0x27bdf: 0x6c840620, - 0x27be2: 0x6c910a20, - 0x27be6: 0x6c297020, - 0x27be8: 0x6d42a420, 0x27be9: 0x6cccf620, 0x27beb: 0x6ccf6e20, - 0x27bed: 0x6c3cb620, 0x27bee: 0x6c726e20, 0x27bef: 0x6ce76e20, - 0x27bf0: 0x6c691a20, 0x27bf1: 0x6cbbe620, 0x27bf2: 0x6c42d420, 0x27bf3: 0x6d3e7020, - 0x27bf4: 0x6c59e620, 0x27bf5: 0x6ccd0620, - 0x27bf8: 0x6cdff620, - // Block 0x9f0, offset 0x27c00 - 0x27c0c: 0x6ceaca20, 0x27c0e: 0x6c8e2220, - 0x27c10: 0x6c1a2e20, 0x27c11: 0x6cf27020, 0x27c12: 0x6d425020, 0x27c13: 0x6d23da20, - 0x27c15: 0x6d3a2220, 0x27c17: 0x6cc45420, - 0x27c18: 0x6cf80a20, 0x27c19: 0x6cc1b620, 0x27c1b: 0x6c442820, - 0x27c22: 0x6cb52a20, 0x27c23: 0x6d05e020, - 0x27c28: 0x6c415220, 0x27c29: 0x6cc3f820, 0x27c2a: 0x6c1ddc20, 0x27c2b: 0x6c9b4e20, - 0x27c32: 0x6cd02020, 0x27c33: 0x6cc1c820, - 0x27c36: 0x6cbbb420, 0x27c37: 0x6c11b420, - 0x27c3a: 0x6c86b020, - 0x27c3c: 0x6ceda220, 0x27c3d: 0x6c826620, 0x27c3e: 0x6d03a820, 0x27c3f: 0x6c80ea20, - // Block 0x9f1, offset 0x27c40 - 0x27c42: 0x6cd3ec20, 0x27c43: 0x6d330020, - 0x27c44: 0x6c38ce20, - 0x27c4a: 0x6d371c20, - 0x27c4f: 0x6d1aa420, - 0x27c51: 0x6c86de20, - 0x27c56: 0x6ca08820, 0x27c57: 0x6cf04020, - 0x27c59: 0x6d1c1020, 0x27c5a: 0x6cc4e420, - 0x27c60: 0x6cc2a820, - 0x27c65: 0x6c95ce20, - 0x27c72: 0x6c275820, - 0x27c74: 0x6d1b4e20, 0x27c75: 0x6c08da20, 0x27c76: 0x6c438820, - 0x27c78: 0x6cf20a20, 0x27c79: 0x6d0d7620, 0x27c7a: 0x6c9e1e20, - 0x27c7c: 0x6c42a020, 0x27c7d: 0x6cc05620, 0x27c7e: 0x6d33da20, - // Block 0x9f2, offset 0x27c80 - 0x27c8b: 0x6c471c20, - 0x27c8c: 0x6ce75420, 0x27c8e: 0x6c8d1420, 0x27c8f: 0x6ce33620, - 0x27c90: 0x6c224c20, 0x27c91: 0x6d150c20, 0x27c92: 0x6c395a20, 0x27c93: 0x6cb31220, - 0x27c94: 0x6c09b820, 0x27c96: 0x6c064e20, - 0x27c9f: 0x6cae7620, - 0x27ca1: 0x6cdb8420, - 0x27ca4: 0x6cd92820, 0x27ca5: 0x6cef1a20, 0x27ca6: 0x6cff9220, - 0x27cac: 0x6c504c20, 0x27cad: 0x6d0dac20, - 0x27cb6: 0x6d152620, 0x27cb7: 0x6d2a1e20, - 0x27cb8: 0x6d1d0020, 0x27cb9: 0x6ca43220, - 0x27cbf: 0x6d289620, - // Block 0x9f3, offset 0x27cc0 - 0x27cc1: 0x6ce50c20, 0x27cc2: 0x6cf68a20, 0x27cc3: 0x6c69b420, - 0x27cc4: 0x6d0cbc20, - 0x27ccc: 0x6ca55e20, 0x27ccd: 0x6ce07020, 0x27cce: 0x6d0eaa20, 0x27ccf: 0x6ce51a20, - 0x27cd0: 0x6d36ce20, 0x27cd1: 0x6c1d7a20, 0x27cd2: 0x6ce23a20, - 0x27cd7: 0x6d2cdc20, - 0x27cde: 0x6c9e3a20, - 0x27ce1: 0x6cf47020, 0x27ce2: 0x6d1b0220, 0x27ce3: 0x6d0eac20, - 0x27ce4: 0x6c81ba20, - 0x27ce9: 0x6cb31e20, 0x27ceb: 0x6c5d4620, - 0x27cec: 0x6c4d4620, 0x27ced: 0x6ca21a20, 0x27cee: 0x6c236020, - 0x27cf1: 0x6c7aae20, 0x27cf2: 0x6c1d8420, - 0x27cf4: 0x6d1ff020, - 0x27cf8: 0x6d3da020, 0x27cfb: 0x6cd9e420, - // Block 0x9f4, offset 0x27d00 - 0x27d02: 0x6d1b7e20, - 0x27d05: 0x6d41da20, 0x27d06: 0x6cca7420, 0x27d07: 0x6c8f4a20, - 0x27d08: 0x6c4f2020, 0x27d09: 0x6cf0ec20, 0x27d0a: 0x6c9b6020, 0x27d0b: 0x6c55d020, - 0x27d0c: 0x6c86b220, 0x27d0e: 0x6c9d9c20, - 0x27d10: 0x6c054020, 0x27d11: 0x6c65f020, - 0x27d1c: 0x6cc40620, - 0x27d20: 0x6c9b6220, 0x27d22: 0x6ca21c20, 0x27d23: 0x6c53ac20, - 0x27d24: 0x6c56d820, 0x27d25: 0x6c9c8e20, 0x27d26: 0x6ccca820, - 0x27d29: 0x6cce2620, 0x27d2a: 0x6c17c620, - 0x27d2c: 0x6d3dc220, 0x27d2e: 0x6d342220, 0x27d2f: 0x6ca77020, - 0x27d35: 0x6c62b220, - 0x27d38: 0x6c784020, 0x27d39: 0x6d330620, - 0x27d3f: 0x6c281420, - // Block 0x9f5, offset 0x27d40 - 0x27d40: 0x6c8a8220, 0x27d41: 0x6d2e3020, 0x27d42: 0x6c460620, 0x27d43: 0x6c818c20, - 0x27d44: 0x6c571e20, 0x27d45: 0x6c1fd220, 0x27d47: 0x6c660c20, - 0x27d48: 0x6c7d3220, - 0x27d4d: 0x6ccf0220, - 0x27d54: 0x6c191c20, 0x27d55: 0x6ce08820, 0x27d57: 0x6c55f820, - 0x27d58: 0x6c9b9e20, 0x27d59: 0x6cada420, 0x27d5a: 0x6d2e3820, 0x27d5b: 0x6c16d620, - 0x27d5d: 0x6c41f820, - 0x27d60: 0x6d193a20, 0x27d62: 0x6cdcb620, - 0x27d66: 0x6d076420, 0x27d67: 0x6c62de20, - 0x27d68: 0x6c808e20, - 0x27d6c: 0x6d159620, 0x27d6f: 0x6c9dae20, - 0x27d71: 0x6c9f1420, - 0x27d75: 0x6c24a620, - 0x27d78: 0x6c805a20, 0x27d7b: 0x6d0c4e20, - 0x27d7e: 0x6c9ccc20, - // Block 0x9f6, offset 0x27d80 - 0x27d82: 0x6d1e6820, 0x27d83: 0x6c125420, - 0x27d84: 0x6c664420, 0x27d87: 0x6cda0a20, - 0x27d8e: 0x6d0d2a20, - 0x27d91: 0x6c736020, - 0x27d95: 0x6c369c20, - 0x27d98: 0x6c3bf220, 0x27d9a: 0x6c3bf620, - 0x27da1: 0x6c4a2a20, 0x27da2: 0x6c96fc20, - 0x27da4: 0x6c8ab820, - 0x27da9: 0x6c1cca20, 0x27dab: 0x6c840820, - 0x27db1: 0x6d349c20, - 0x27db4: 0x6d024820, 0x27db7: 0x6c1dfc20, - 0x27db9: 0x6c60fc20, - 0x27dbd: 0x6caf5c20, - // Block 0x9f7, offset 0x27dc0 - 0x27dc2: 0x6c6abe20, - 0x27dc7: 0x6d38e420, - 0x27dcd: 0x6d046c20, - 0x27dd1: 0x6c7bfc20, - 0x27dd9: 0x6c6e2220, 0x27ddb: 0x6c56a020, - 0x27dde: 0x6cb99c20, - 0x27de3: 0x6c133220, - 0x27de6: 0x6cb60420, 0x27de7: 0x6ced3220, - 0x27de8: 0x6c98ec20, 0x27dea: 0x6c30f020, - 0x27df4: 0x6c79d220, 0x27df6: 0x6c277c20, - 0x27df8: 0x6ca4b420, 0x27dfa: 0x6c536a20, - // Block 0x9f8, offset 0x27e00 - 0x27e02: 0x6c7f4020, 0x27e03: 0x6c34aa20, - 0x27e04: 0x6cb91020, 0x27e06: 0x6d1a8820, - 0x27e16: 0x6c911220, 0x27e17: 0x6c5ae020, - 0x27e1b: 0x6c402e20, - 0x27e1c: 0x6c98f420, 0x27e1e: 0x6d389a20, - 0x27e21: 0x6d1dfa20, - 0x27e2d: 0x6c817020, 0x27e2e: 0x6c609c20, 0x27e2f: 0x6d186a20, - 0x27e30: 0x6c8e8c20, 0x27e31: 0x6c235220, 0x27e33: 0x6ca43c20, - // Block 0x9f9, offset 0x27e40 - 0x27e50: 0x6cea2620, 0x27e51: 0x6cfe5220, - 0x27e55: 0x6c0bba20, 0x27e56: 0x6c207820, 0x27e57: 0x6cf52020, - 0x27e59: 0x6c70c620, - 0x27e65: 0x6d005220, 0x27e66: 0x6caf9220, 0x27e67: 0x6d3da220, - 0x27e68: 0x6cc8e420, 0x27e6a: 0x6ccafa20, 0x27e6b: 0x6d3f6220, - 0x27e6d: 0x6d336220, - 0x27e70: 0x6d40da20, 0x27e71: 0x6cc14220, 0x27e73: 0x6c1c7a20, - 0x27e75: 0x6d36f020, - // Block 0x9fa, offset 0x27e80 - 0x27e97: 0x6cc37a20, - 0x27e98: 0x6cb92020, 0x27e99: 0x6d0afc20, 0x27e9a: 0x6c17c420, 0x27e9b: 0x6c517c20, - 0x27e9c: 0x6cc80420, - 0x27ea0: 0x6c70cc20, 0x27ea1: 0x6cf52820, - 0x27eac: 0x6c1c7c20, 0x27ead: 0x6c7c0420, 0x27eaf: 0x6c240020, - 0x27eb0: 0x6cc89220, 0x27eb1: 0x6c7e1e20, 0x27eb2: 0x6c1b5e20, 0x27eb3: 0x6d40e420, - 0x27eb4: 0x6c688620, 0x27eb6: 0x6d21c420, 0x27eb7: 0x6ce8fe20, - 0x27eb8: 0x6c9b6420, 0x27eb9: 0x6c266c20, 0x27eba: 0x6cd7a020, - // Block 0x9fb, offset 0x27ec0 - 0x27ee5: 0x6c3c6c20, 0x27ee6: 0x6c469020, 0x27ee7: 0x6c301c20, - 0x27ee8: 0x6c142220, 0x27ee9: 0x6c99be20, 0x27eea: 0x6c15e820, 0x27eeb: 0x6c0b1020, - 0x27eec: 0x6d241e20, 0x27eef: 0x6cecea20, - 0x27ef0: 0x6d40e620, 0x27ef2: 0x6d3ea420, - 0x27ef4: 0x6c1fec20, 0x27ef5: 0x6ced5620, 0x27ef6: 0x6cebf420, - 0x27ef8: 0x6cc2a620, 0x27efb: 0x6ced5820, - 0x27efd: 0x6cfa5020, - // Block 0x9fc, offset 0x27f00 - 0x27f04: 0x6d1d5620, 0x27f05: 0x6c66e820, - 0x27f08: 0x6cf04220, 0x27f09: 0x6ce39a20, 0x27f0a: 0x6ccaca20, - 0x27f0c: 0x6cb67a20, 0x27f0d: 0x6ccc2020, 0x27f0e: 0x6d244220, 0x27f0f: 0x6c60e220, - 0x27f10: 0x6c314420, 0x27f11: 0x6c15f620, 0x27f12: 0x6ce96c20, - 0x27f15: 0x6c8ec420, 0x27f17: 0x6d3cba20, - 0x27f33: 0x6cc89420, - 0x27f36: 0x6d0eda20, 0x27f37: 0x6c47ea20, - 0x27f39: 0x6c86e220, 0x27f3a: 0x6c13ba20, - 0x27f3e: 0x6c2cac20, - // Block 0x9fd, offset 0x27f40 - 0x27f40: 0x6d2e2a20, 0x27f41: 0x6cb32220, - 0x27f52: 0x6c912620, - 0x27f54: 0x6d374c20, - // Block 0x9fe, offset 0x27f80 - 0x27f81: 0x6c888a20, - 0x27f85: 0x6c95ca20, - 0x27f8d: 0x6c352420, - 0x27f90: 0x6c750820, 0x27f91: 0x6c873420, 0x27f92: 0x6c7ff220, - 0x27f94: 0x6cc89620, 0x27f95: 0x6c474220, 0x27f96: 0x6c155c20, 0x27f97: 0x6d060620, - 0x27f9a: 0x6d356420, - // Block 0x9ff, offset 0x27fc0 - 0x27fc1: 0x6d097c20, 0x27fc2: 0x6c0e9c20, 0x27fc3: 0x6c19aa20, - 0x27fc5: 0x6d3b4220, 0x27fc6: 0x6c522a20, - 0x27fc9: 0x6c04ac20, - 0x27fd3: 0x6c2f0820, - 0x27fd6: 0x6d2e3a20, 0x27fd7: 0x6c4ca620, - 0x27fda: 0x6c0c5420, 0x27fdb: 0x6c7ec620, - 0x27ffa: 0x6c6c7620, - // Block 0xa00, offset 0x28000 - 0x28002: 0x6c411c20, - 0x28012: 0x6c9c1e20, - 0x28014: 0x6d247e20, - 0x2802a: 0x6cf82a20, - 0x2802c: 0x6cb17820, 0x2802d: 0x6cd85020, - 0x28034: 0x6c2b0020, - 0x28038: 0x6c219e20, 0x28039: 0x6c2bbe20, 0x2803a: 0x6c5fa820, 0x2803b: 0x6c157620, - 0x2803f: 0x6d3dea20, - // Block 0xa01, offset 0x28040 - 0x28053: 0x6c115220, - 0x2805e: 0x6c681620, - 0x28072: 0x6ce80220, - 0x2807d: 0x6c84e820, - // Block 0xa02, offset 0x28080 - 0x28082: 0x6cba9020, - 0x28086: 0x6c21a020, - 0x2808f: 0x6cdef820, - 0x28091: 0x6c2e5220, 0x28093: 0x6c664820, - 0x2809b: 0x6d356820, - 0x2809c: 0x6c753220, 0x2809e: 0x6ca0a420, - 0x280a0: 0x6c959620, - 0x280a6: 0x6c062420, - 0x280ad: 0x6d415e20, - 0x280b5: 0x6d300820, - 0x280b8: 0x6d220c20, 0x280bb: 0x6c062a20, - 0x280be: 0x6c969420, 0x280bf: 0x6cf85020, - // Block 0xa03, offset 0x280c0 - 0x280c0: 0x6c567c20, 0x280c1: 0x6d171220, 0x280c2: 0x6c355020, 0x280c3: 0x6c470220, - 0x280c4: 0x6ce89e20, 0x280c5: 0x6d314a20, 0x280c7: 0x6cc07220, - 0x280c8: 0x6cdaba20, 0x280c9: 0x6c89c620, 0x280ca: 0x6cc11a20, 0x280cb: 0x6c8d2620, - 0x280cc: 0x6c499420, 0x280cd: 0x6c80e420, 0x280ce: 0x6ce7dc20, 0x280cf: 0x6c266620, - 0x280d0: 0x6c911e20, 0x280d1: 0x6c5a1220, 0x280d2: 0x6cd47e20, 0x280d3: 0x6c688820, - 0x280d4: 0x6d41f620, 0x280d5: 0x6c411a20, 0x280d6: 0x6cef5220, - 0x280d9: 0x6c7d4e20, 0x280da: 0x6c32bc20, 0x280db: 0x6cd92020, - 0x280dc: 0x6cb5e020, 0x280dd: 0x6d101a20, - 0x280e1: 0x6cd37820, 0x280e3: 0x6c411420, - 0x280e6: 0x6c2a1a20, 0x280e7: 0x6d11b220, - 0x280eb: 0x6cb99e20, - 0x280ed: 0x6cce7220, 0x280ee: 0x6c16ae20, 0x280ef: 0x6ca05020, - 0x280f1: 0x6ca05a20, - 0x280f5: 0x6ca50620, - 0x280f8: 0x6c232220, 0x280fa: 0x6ca84e20, 0x280fb: 0x6d2f6a20, - 0x280fc: 0x6c133420, 0x280ff: 0x6cd92a20, - // Block 0xa04, offset 0x28100 - 0x28100: 0x6ca85820, 0x28101: 0x6c22dc20, - 0x28104: 0x6c75de20, 0x28106: 0x6cce7e20, - 0x28108: 0x6d3a2420, 0x28109: 0x6c34b020, 0x2810a: 0x6c01ce20, 0x2810b: 0x6c088c20, - 0x2810e: 0x6ce41820, - 0x28110: 0x6cb06a20, 0x28111: 0x6cf9ee20, 0x28112: 0x6cc09420, 0x28113: 0x6cd14e20, - 0x28117: 0x6ce0d820, - 0x2811b: 0x6c978420, - 0x2811c: 0x6cb10420, 0x2811e: 0x6ce43420, 0x2811f: 0x6cc6cc20, - 0x28127: 0x6c237220, - 0x2812a: 0x6c5f7a20, 0x2812b: 0x6c3cc020, - 0x2812c: 0x6cf53c20, 0x2812d: 0x6c69d620, 0x2812e: 0x6c818e20, 0x2812f: 0x6d2ba620, - 0x28130: 0x6caeee20, 0x28131: 0x6c11e420, 0x28133: 0x6ca9de20, - 0x28135: 0x6c160c20, - 0x2813e: 0x6c97a420, 0x2813f: 0x6c4ba820, - // Block 0xa05, offset 0x28140 - 0x28140: 0x6ca7d820, 0x28141: 0x6c1d0220, 0x28142: 0x6c165820, - 0x28146: 0x6ca48a20, - 0x28149: 0x6cf95c20, 0x2814a: 0x6c6f6620, 0x2814b: 0x6c613020, - 0x2814c: 0x6d323420, - 0x28151: 0x6ce6ca20, - 0x28154: 0x6c9ace20, 0x28155: 0x6d26b220, 0x28157: 0x6d37bc20, - 0x28158: 0x6cea5620, 0x28159: 0x6cc8d220, 0x2815a: 0x6d01ba20, 0x2815b: 0x6cf63420, - 0x2815d: 0x6ce6d220, 0x2815e: 0x6ca99820, - 0x28160: 0x6cee2820, 0x28161: 0x6c64ae20, 0x28163: 0x6c3b3420, - 0x28172: 0x6c0ba620, - 0x28177: 0x6d152820, - 0x2817a: 0x6c2ec420, 0x2817b: 0x6c5ef820, - 0x2817c: 0x6c41de20, 0x2817f: 0x6c64c420, - // Block 0xa06, offset 0x28180 - 0x28180: 0x6c6ee220, - 0x28186: 0x6c763820, - 0x2818a: 0x6cc3d620, - 0x2818c: 0x6ca40420, 0x2818d: 0x6ca1de20, 0x2818e: 0x6d072220, 0x2818f: 0x6cd96a20, - 0x28190: 0x6cd0c020, 0x28191: 0x6c7bac20, 0x28192: 0x6cc3e620, 0x28193: 0x6cef2820, - 0x28197: 0x6c2eda20, - 0x28198: 0x6ca40a20, 0x2819a: 0x6cc92a20, 0x2819b: 0x6c45a220, - 0x2819c: 0x6c313220, 0x2819e: 0x6ca73020, - 0x281a1: 0x6c175020, 0x281a2: 0x6c515e20, 0x281a3: 0x6d0e9e20, - 0x281a9: 0x6ce8f020, 0x281aa: 0x6c104420, - 0x281ac: 0x6c559e20, 0x281ad: 0x6d1e5820, 0x281af: 0x6cd2d620, - 0x281b0: 0x6c1f7220, - 0x281b9: 0x6cff0e20, 0x281ba: 0x6c9ad620, 0x281bb: 0x6c852a20, - 0x281bc: 0x6ce37220, 0x281be: 0x6c64e620, - // Block 0xa07, offset 0x281c0 - 0x281c2: 0x6d354e20, 0x281c3: 0x6c487220, - 0x281c4: 0x6c496220, 0x281c6: 0x6cb7cc20, - 0x281c8: 0x6c3a1820, 0x281c9: 0x6d229820, 0x281ca: 0x6d309620, 0x281cb: 0x6cf01c20, - 0x281cc: 0x6c35ba20, 0x281cd: 0x6c14da20, 0x281ce: 0x6cf6e020, - 0x281d0: 0x6c47d420, - 0x281d7: 0x6cc3fa20, - 0x281d8: 0x6c5c4620, 0x281da: 0x6d00f620, 0x281db: 0x6d1bf420, - 0x281dd: 0x6cdeaa20, 0x281de: 0x6cec5820, 0x281df: 0x6c3efe20, - 0x281e0: 0x6c6c0820, 0x281e1: 0x6cb0bc20, - 0x281e5: 0x6cd15020, 0x281e6: 0x6d21c620, 0x281e7: 0x6c7ace20, - 0x281e9: 0x6cb0ca20, 0x281ea: 0x6d010620, 0x281eb: 0x6caaac20, - 0x281ec: 0x6cfd2420, 0x281ed: 0x6c66ea20, 0x281ee: 0x6d074e20, - 0x281f0: 0x6c0a7e20, - 0x281f4: 0x6ca41220, 0x281f6: 0x6c897020, - 0x281f8: 0x6cb13420, - 0x281fc: 0x6c6eb820, - // Block 0xa08, offset 0x28200 - 0x28200: 0x6cde1c20, 0x28201: 0x6d0edc20, 0x28202: 0x6c00f820, - 0x28205: 0x6cff3020, 0x28206: 0x6cbaf420, 0x28207: 0x6cf48620, - 0x28208: 0x6ce15620, 0x2820a: 0x6c75f420, - 0x28210: 0x6c7e2820, - 0x28217: 0x6c813220, - 0x28219: 0x6ca5b020, - 0x2821c: 0x6c314a20, 0x2821d: 0x6cd54620, 0x2821f: 0x6c696220, - 0x28220: 0x6ca89c20, 0x28222: 0x6d21dc20, - 0x28228: 0x6c132020, 0x2822a: 0x6c696420, - 0x2822c: 0x6c57d620, 0x2822d: 0x6cf1c020, 0x2822e: 0x6d127020, 0x2822f: 0x6c35a020, - 0x28230: 0x6c49fe20, 0x28231: 0x6c572020, 0x28232: 0x6c68a620, - 0x2823a: 0x6c835820, - 0x2823c: 0x6cce2820, 0x2823d: 0x6d1e8020, 0x2823f: 0x6c2ac220, - // Block 0xa09, offset 0x28240 - 0x28240: 0x6c493820, 0x28241: 0x6ca97220, 0x28243: 0x6cdcc020, - 0x28244: 0x6cfe6c20, 0x28246: 0x6cc9b420, 0x28247: 0x6c168c20, - 0x2824e: 0x6cc90c20, - 0x28250: 0x6d277020, 0x28252: 0x6c3b4c20, 0x28253: 0x6c672420, - 0x28254: 0x6d076a20, - 0x28258: 0x6cf93020, 0x28259: 0x6cd54a20, - 0x28265: 0x6d013220, 0x28266: 0x6c87ac20, - 0x28269: 0x6ce80420, - 0x2826c: 0x6c9d1020, 0x2826d: 0x6c162020, 0x2826e: 0x6c5d6a20, - 0x28271: 0x6d3bb820, 0x28272: 0x6d273420, - 0x2827b: 0x6c801a20, - 0x2827d: 0x6d0d2c20, 0x2827e: 0x6c29a820, 0x2827f: 0x6cfe1820, - // Block 0xa0a, offset 0x28280 - 0x28280: 0x6d267220, 0x28281: 0x6ce6b020, 0x28282: 0x6c07d220, 0x28283: 0x6cca4620, - 0x28284: 0x6cfc9620, 0x28285: 0x6c2e7a20, 0x28286: 0x6cb09c20, 0x28287: 0x6cb11220, - 0x28289: 0x6cde0c20, 0x2828b: 0x6c687220, - 0x2828c: 0x6d126620, 0x2828e: 0x6d271020, - 0x28290: 0x6cc61420, 0x28291: 0x6cbc1820, 0x28292: 0x6cb56220, 0x28293: 0x6c2da620, - 0x28294: 0x6cb56420, 0x28297: 0x6c4e7e20, - 0x28298: 0x6d253220, 0x28299: 0x6d1ee220, 0x2829a: 0x6c5fd020, 0x2829b: 0x6c412820, - 0x2829c: 0x6c4d0620, 0x2829d: 0x6cd30420, 0x2829f: 0x6cc0c820, - 0x282a9: 0x6cf1fa20, - 0x282ac: 0x6d321620, 0x282ad: 0x6cb2f220, 0x282ae: 0x6d0c5e20, 0x282af: 0x6c46e820, - 0x282b0: 0x6c720420, 0x282b1: 0x6ce52e20, - 0x282b7: 0x6c35d820, - 0x282ba: 0x6d0ace20, 0x282bb: 0x6c8c4620, - 0x282bc: 0x6c092620, - // Block 0xa0b, offset 0x282c0 - 0x282c0: 0x6d3eea20, 0x282c1: 0x6c530820, 0x282c3: 0x6c347420, - 0x282c5: 0x6c333c20, 0x282c6: 0x6d087220, - 0x282c8: 0x6ccd3020, 0x282ca: 0x6ccd3220, 0x282cb: 0x6d10d220, - 0x282cc: 0x6cc4b020, - 0x282d4: 0x6ceaf820, 0x282d7: 0x6c0dac20, - 0x282d8: 0x6d069e20, 0x282d9: 0x6cea1a20, 0x282da: 0x6c19d220, - 0x282dc: 0x6c30fe20, 0x282dd: 0x6d171420, - 0x282e1: 0x6c180820, - 0x282f5: 0x6c731a20, 0x282f6: 0x6c5eae20, - 0x282f8: 0x6d2fae20, 0x282f9: 0x6c07de20, 0x282fb: 0x6ce4e220, - // Block 0xa0c, offset 0x28300 - 0x28300: 0x6cae6420, - 0x28305: 0x6c3fda20, - 0x28316: 0x6ceb7620, - 0x28318: 0x6cfb3e20, 0x28319: 0x6ca69420, 0x2831a: 0x6c8f8620, - 0x2831d: 0x6d3d4220, 0x2831f: 0x6d32c020, - 0x28320: 0x6cd74820, 0x28321: 0x6d3f7c20, 0x28322: 0x6c3c4620, 0x28323: 0x6c32be20, - 0x28324: 0x6cb09420, 0x28325: 0x6d0d7820, 0x28326: 0x6cda1620, 0x28327: 0x6cc05820, - 0x28328: 0x6c362220, 0x28329: 0x6cb98e20, 0x2832b: 0x6cba0620, - 0x2832d: 0x6c10d420, 0x2832e: 0x6d0a8a20, - 0x28335: 0x6d3c8220, - 0x28338: 0x6c993a20, 0x28339: 0x6c68ee20, - 0x2833f: 0x6d2dea20, - // Block 0xa0d, offset 0x28340 - 0x28340: 0x6caffa20, 0x28341: 0x6cf63620, 0x28342: 0x6d0e7c20, 0x28343: 0x6c3ab420, - 0x28344: 0x6ca83620, 0x28346: 0x6d364620, - 0x28348: 0x6cdd6a20, 0x2834a: 0x6d17d020, - 0x2834c: 0x6c82c620, 0x2834d: 0x6d06ea20, 0x2834f: 0x6d17d220, - 0x28352: 0x6cee9620, - 0x28355: 0x6c5ede20, 0x28356: 0x6c186e20, 0x28357: 0x6c2eba20, - 0x28363: 0x6d257020, - 0x28365: 0x6cf78020, 0x28367: 0x6c8e6220, - 0x28368: 0x6cdd6c20, - 0x28371: 0x6c07fc20, 0x28372: 0x6cfa4020, 0x28373: 0x6d0e8c20, - 0x28375: 0x6c24d020, 0x28377: 0x6c773420, - 0x2837a: 0x6cbe4e20, 0x2837b: 0x6c909a20, - 0x2837c: 0x6c087e20, - // Block 0xa0e, offset 0x28380 - 0x28388: 0x6d2e6a20, 0x28389: 0x6c24ae20, 0x2838a: 0x6cf3e220, 0x2838b: 0x6d05c020, - 0x2838c: 0x6c187e20, 0x2838d: 0x6c4fd820, 0x2838e: 0x6c748820, - 0x28390: 0x6c192e20, 0x28391: 0x6c13fa20, 0x28392: 0x6c15ce20, 0x28393: 0x6d348820, - 0x28394: 0x6d0a2a20, - 0x283a3: 0x6c441a20, - 0x283a4: 0x6c18e220, 0x283a5: 0x6d132020, - 0x283aa: 0x6c1ee820, 0x283ab: 0x6cc1b820, - 0x283ac: 0x6d020620, 0x283ae: 0x6d2e7c20, 0x283af: 0x6c790820, - 0x283b1: 0x6c74ae20, - 0x283bd: 0x6cc1ba20, 0x283bf: 0x6c9b5020, - // Block 0xa0f, offset 0x283c0 - 0x283c0: 0x6d134e20, 0x283c1: 0x6d406620, 0x283c2: 0x6cb45620, - 0x283c4: 0x6cd3e420, - 0x283c9: 0x6cd57220, 0x283ca: 0x6c152a20, - 0x283cd: 0x6c31c420, 0x283cf: 0x6c4c4a20, - 0x283d0: 0x6c92fe20, 0x283d1: 0x6d0c3820, - 0x283d6: 0x6ca7ba20, 0x283d7: 0x6c0d6620, - 0x283df: 0x6ce9cc20, - 0x283e6: 0x6ca6dc20, 0x283e7: 0x6c584220, - 0x283e8: 0x6cb9de20, - 0x283ef: 0x6cfa6020, - 0x283f2: 0x6c8dc620, - 0x283f7: 0x6c882820, - 0x283f9: 0x6d186e20, 0x283fb: 0x6c866620, - 0x283fc: 0x6cd8f020, 0x283ff: 0x6c279a20, - // Block 0xa10, offset 0x28400 - 0x28402: 0x6cf11620, - 0x28405: 0x6c22c020, - 0x28409: 0x6c6fbe20, 0x2840a: 0x6c534420, - 0x2840c: 0x6d210e20, 0x2840e: 0x6c7c6e20, - 0x28412: 0x6c4f8020, 0x28413: 0x6c439620, - 0x28414: 0x6c39e620, 0x28417: 0x6c7c8020, - 0x2841a: 0x6c4a6c20, 0x2841b: 0x6c1bb020, - 0x2841e: 0x6c6fc220, - 0x28421: 0x6cdbce20, - 0x28424: 0x6c2ec620, - 0x2842c: 0x6cdc0c20, - 0x28430: 0x6cbd8620, - 0x28434: 0x6c4a8020, - 0x2843b: 0x6d3c6620, - 0x2843e: 0x6ce5de20, - // Block 0xa11, offset 0x28440 - 0x28441: 0x6d26d820, - 0x28447: 0x6d419220, - 0x2844f: 0x6cf3e820, - 0x28450: 0x6c250820, - 0x2845b: 0x6d36d220, - 0x28460: 0x6cd72e20, 0x28462: 0x6c301420, - 0x2846d: 0x6cef3c20, - 0x2847f: 0x6c1d4220, - // Block 0xa12, offset 0x28480 - 0x2848b: 0x6cc8f420, - 0x28496: 0x6c60d420, - 0x2849c: 0x6c2de820, 0x2849e: 0x6c124020, - 0x284a0: 0x6c7a0c20, 0x284a3: 0x6cef5420, - 0x284a7: 0x6c11bc20, - 0x284aa: 0x6c968020, 0x284ab: 0x6caba820, - 0x284b2: 0x6cca3820, - 0x284b6: 0x6cef6620, - 0x284bc: 0x6cca3e20, 0x284bf: 0x6c6c7020, - // Block 0xa13, offset 0x284c0 - 0x284cc: 0x6cef6e20, - 0x284de: 0x6c115420, 0x284df: 0x6c84d020, - 0x284ef: 0x6d273a20, - 0x284f4: 0x6d277220, 0x284f7: 0x6c196420, - 0x284fa: 0x6ccce420, - // Block 0xa14, offset 0x28500 - 0x28502: 0x6c54d620, 0x28503: 0x6ccc9e20, - 0x28504: 0x6cea5820, 0x28506: 0x6c3d3020, - 0x28508: 0x6cbe1820, 0x28509: 0x6d05ac20, - 0x2850d: 0x6c1fe620, 0x2850e: 0x6c400420, - 0x28512: 0x6d181220, 0x28513: 0x6c300c20, - 0x28514: 0x6c3eb420, 0x28515: 0x6c3eb620, 0x28516: 0x6d2ad620, 0x28517: 0x6cb4ae20, - 0x28519: 0x6c8d2c20, - 0x2851d: 0x6ccca020, 0x2851e: 0x6cad9420, - 0x28522: 0x6d1a8a20, 0x28523: 0x6c961e20, - 0x28524: 0x6c57b620, 0x28525: 0x6d1b6e20, 0x28526: 0x6c084a20, 0x28527: 0x6d209820, - 0x28528: 0x6ccf7020, 0x2852a: 0x6d01f220, 0x2852b: 0x6c1ee620, - 0x28534: 0x6ccf7220, 0x28535: 0x6c2d7220, - 0x28539: 0x6d187020, 0x2853b: 0x6c183a20, - 0x2853c: 0x6c451c20, 0x2853d: 0x6c8fa820, 0x2853e: 0x6cb2ca20, 0x2853f: 0x6d280220, - // Block 0xa15, offset 0x28540 - 0x28540: 0x6d0eae20, 0x28541: 0x6ca15a20, 0x28543: 0x6cdbd820, - 0x2854b: 0x6c6ea420, - 0x2854d: 0x6cd99c20, 0x2854e: 0x6cad0c20, - 0x28550: 0x6d0b3820, 0x28551: 0x6ccb5020, 0x28552: 0x6c34b820, - 0x28555: 0x6c207a20, 0x28556: 0x6d022420, - 0x28558: 0x6ce95a20, 0x28559: 0x6c45b420, 0x2855a: 0x6d08b620, - 0x2855c: 0x6c7e4e20, 0x2855e: 0x6c8d5e20, - 0x28560: 0x6c279020, 0x28561: 0x6d2c5220, - 0x2856c: 0x6d1a0a20, 0x2856d: 0x6cd93c20, 0x2856f: 0x6d229a20, - 0x28570: 0x6ceb4c20, 0x28571: 0x6ceb4e20, - 0x28574: 0x6c03c420, 0x28575: 0x6cc4d620, 0x28576: 0x6c0f8420, 0x28577: 0x6c279c20, - 0x28579: 0x6d2c5a20, 0x2857a: 0x6c543a20, - 0x2857e: 0x6c5b7820, - // Block 0xa16, offset 0x28580 - 0x28585: 0x6c916020, - 0x2858a: 0x6c8e2820, 0x2858b: 0x6cc7d620, - 0x28595: 0x6c28d220, 0x28596: 0x6c9b6620, 0x28597: 0x6cfa5820, - 0x28598: 0x6cf26220, 0x28599: 0x6c4e4620, 0x2859a: 0x6d3eb020, 0x2859b: 0x6d327420, - 0x2859c: 0x6ccb7c20, 0x2859d: 0x6c25fa20, 0x2859e: 0x6c86e420, - 0x285a0: 0x6c2ce220, 0x285a1: 0x6c887e20, 0x285a2: 0x6c46e020, - 0x285a6: 0x6caee020, - 0x285aa: 0x6d1c0a20, - 0x285ac: 0x6c548420, 0x285ae: 0x6c336c20, 0x285af: 0x6cf53e20, - 0x285b7: 0x6cb1be20, - 0x285b8: 0x6c520020, 0x285ba: 0x6c8fb820, 0x285bb: 0x6ca18420, - 0x285bc: 0x6c3a7620, 0x285bd: 0x6c93be20, 0x285be: 0x6d2b2020, 0x285bf: 0x6c0fae20, - // Block 0xa17, offset 0x285c0 - 0x285c0: 0x6c2d9620, 0x285c1: 0x6c98aa20, 0x285c3: 0x6d3c4e20, - 0x285c4: 0x6c932220, 0x285c5: 0x6cace820, 0x285c6: 0x6c337c20, 0x285c7: 0x6c10ce20, - 0x285cc: 0x6c189020, 0x285cd: 0x6c981220, - 0x285d6: 0x6cf72420, - 0x285dd: 0x6c019a20, 0x285de: 0x6d37dc20, - 0x285e0: 0x6ca44a20, 0x285e1: 0x6cebba20, 0x285e2: 0x6c519c20, - 0x285e5: 0x6c338220, 0x285e6: 0x6ceca020, 0x285e7: 0x6d37de20, - 0x285e8: 0x6c133e20, 0x285e9: 0x6c873620, 0x285ea: 0x6cd6aa20, - 0x285ee: 0x6c134020, - 0x285f0: 0x6cd84a20, 0x285f2: 0x6c338420, - 0x285f4: 0x6c5cdc20, - 0x285fc: 0x6c654220, 0x285fd: 0x6ca9e220, 0x285fe: 0x6c28ea20, 0x285ff: 0x6c409820, - // Block 0xa18, offset 0x28600 - 0x28600: 0x6c5e4e20, 0x28601: 0x6c5c9620, 0x28602: 0x6c228420, - 0x28604: 0x6d1e6620, 0x28605: 0x6cc9b620, 0x28606: 0x6ce6a420, - 0x2860e: 0x6c8f5a20, - 0x28611: 0x6cdb8c20, 0x28612: 0x6c8da220, 0x28613: 0x6c97a620, - 0x28614: 0x6c2d9c20, - 0x28618: 0x6cad4020, 0x2861a: 0x6c8da420, - 0x2861d: 0x6c878620, 0x2861f: 0x6caa1020, - 0x28623: 0x6c8b7820, - 0x28624: 0x6ccd6220, 0x28626: 0x6c3afe20, - 0x2862b: 0x6ccd6420, - 0x2862e: 0x6c8db820, 0x2862f: 0x6d2eaa20, - 0x28631: 0x6c0d7820, 0x28632: 0x6c84dc20, - 0x28635: 0x6cd86420, 0x28636: 0x6cc4fc20, 0x28637: 0x6c655820, - 0x28638: 0x6d3df020, 0x2863b: 0x6c8dbe20, - 0x2863c: 0x6c8dc020, 0x2863d: 0x6c9c2420, 0x2863f: 0x6cd6c820, - // Block 0xa19, offset 0x28640 - 0x28644: 0x6c8dc820, 0x28647: 0x6c5d5020, - 0x2864e: 0x6c8dee20, 0x2864f: 0x6c655e20, - 0x28650: 0x6cc23a20, - 0x28654: 0x6ca9ea20, 0x28655: 0x6c6e7c20, 0x28656: 0x6c187020, - 0x2865c: 0x6d318820, 0x2865d: 0x6cbede20, 0x2865f: 0x6cbee220, - 0x28660: 0x6c36c820, 0x28663: 0x6ccb9420, - 0x28669: 0x6c071a20, 0x2866b: 0x6c3a0020, - 0x2866e: 0x6c3ab620, 0x2866f: 0x6c3a3820, - 0x28674: 0x6c399820, 0x28675: 0x6c7a7c20, - 0x2867a: 0x6d28c620, 0x2867b: 0x6c5c2220, - 0x2867d: 0x6c3a4420, - // Block 0xa1a, offset 0x28680 - 0x28681: 0x6c338620, - 0x28686: 0x6cabca20, 0x28687: 0x6ca99c20, - 0x28688: 0x6cad2e20, 0x28689: 0x6c289820, 0x2868a: 0x6c27e820, 0x2868b: 0x6c00b220, - 0x2868d: 0x6ce50e20, 0x2868e: 0x6c17a420, 0x2868f: 0x6c02ac20, - 0x28690: 0x6c9aa020, 0x28691: 0x6ca43420, - 0x28694: 0x6c0ff420, 0x28695: 0x6d23b420, 0x28696: 0x6cfac420, 0x28697: 0x6c973a20, - 0x2869a: 0x6cb26420, - 0x2869c: 0x6c331020, 0x2869e: 0x6c2a3020, - 0x286a1: 0x6d043a20, 0x286a2: 0x6ca6ce20, 0x286a3: 0x6c4dba20, - 0x286a4: 0x6c1f7a20, 0x286a5: 0x6cd64a20, 0x286a6: 0x6c97cc20, - 0x286ac: 0x6ceda420, 0x286ad: 0x6d18dc20, 0x286ae: 0x6c2e4820, 0x286af: 0x6d0c3a20, - 0x286b1: 0x6cf32420, 0x286b2: 0x6cdba220, - 0x286b4: 0x6c019420, 0x286b5: 0x6c7fd420, 0x286b6: 0x6ca43e20, - 0x286b8: 0x6cc0b620, 0x286b9: 0x6c9e6820, 0x286ba: 0x6caae420, 0x286bb: 0x6c11c020, - 0x286bc: 0x6c11e620, - // Block 0xa1b, offset 0x286c0 - 0x286c0: 0x6c808620, 0x286c1: 0x6ce52a20, 0x286c2: 0x6d139220, - 0x286c4: 0x6ca74e20, 0x286c6: 0x6cd64e20, - 0x286cb: 0x6c228620, - 0x286cd: 0x6c663a20, - 0x286d0: 0x6c424020, - 0x286d4: 0x6c673220, 0x286d5: 0x6c4caa20, 0x286d7: 0x6d2dd620, - 0x286d9: 0x6c95dc20, - 0x286dc: 0x6c5ebc20, 0x286dd: 0x6c4b5220, - 0x286e1: 0x6c63d220, 0x286e2: 0x6c614a20, - 0x286e5: 0x6d08a020, 0x286e7: 0x6c3c5a20, - 0x286eb: 0x6c09ea20, - 0x286ec: 0x6cb60a20, 0x286ef: 0x6d258e20, - 0x286f0: 0x6c021a20, 0x286f1: 0x6c2b3820, - 0x286f4: 0x6c366820, 0x286f5: 0x6c3b7e20, - 0x286f8: 0x6c727020, 0x286f9: 0x6ca64220, 0x286fa: 0x6ceb3c20, - 0x286fc: 0x6cd00c20, 0x286fd: 0x6c3eca20, 0x286fe: 0x6cf9e420, 0x286ff: 0x6cc1ac20, - // Block 0xa1c, offset 0x28700 - 0x28700: 0x6cb39a20, 0x28701: 0x6ced4220, 0x28702: 0x6c8d4220, 0x28703: 0x6c96d220, - 0x28704: 0x6d394020, 0x28705: 0x6c065c20, 0x28707: 0x6d23b620, - 0x2870c: 0x6c082a20, 0x2870d: 0x6c973c20, 0x2870f: 0x6c637a20, - 0x28711: 0x6d102e20, 0x28713: 0x6c7ade20, - 0x28714: 0x6c69c020, 0x28716: 0x6c0df220, - 0x2871a: 0x6c962420, 0x2871b: 0x6c4b1820, - 0x2871c: 0x6c351420, 0x2871d: 0x6d36d420, - 0x28721: 0x6d326020, 0x28722: 0x6c369e20, 0x28723: 0x6d39ca20, - 0x28724: 0x6c039020, - 0x28728: 0x6d326220, 0x28729: 0x6c3c6820, 0x2872a: 0x6c313820, 0x2872b: 0x6ca73c20, - 0x2872c: 0x6c10bc20, 0x2872d: 0x6c336020, 0x2872e: 0x6ccc1c20, 0x2872f: 0x6ccb6820, - 0x28730: 0x6c0a6220, - 0x28734: 0x6d36f420, 0x28735: 0x6d309820, 0x28736: 0x6c10be20, - 0x2873a: 0x6c74c420, 0x2873b: 0x6d0aa820, - 0x2873f: 0x6cf90020, - // Block 0xa1d, offset 0x28740 - 0x28741: 0x6d3db820, 0x28742: 0x6c045a20, 0x28743: 0x6d115c20, - 0x28744: 0x6c1e3420, 0x28745: 0x6cdeb620, 0x28746: 0x6cb93020, - 0x28748: 0x6ca53820, 0x28749: 0x6d242020, 0x2874a: 0x6c36bc20, 0x2874b: 0x6c650820, - 0x2874c: 0x6d18de20, 0x2874d: 0x6cff2a20, 0x2874f: 0x6ca88020, - 0x28752: 0x6c0db620, - 0x28757: 0x6c4cd420, - 0x28758: 0x6d010820, 0x28759: 0x6c2e4a20, - 0x2875c: 0x6c70d620, 0x2875d: 0x6cdda420, 0x2875e: 0x6c2ef420, 0x2875f: 0x6c3f1420, - 0x28760: 0x6c9e4420, 0x28761: 0x6cd3fa20, 0x28762: 0x6d08c420, 0x28763: 0x6ce39c20, - 0x28764: 0x6d244420, 0x28767: 0x6d011820, - 0x28768: 0x6c3f1620, 0x28769: 0x6d373420, 0x2876a: 0x6ca65a20, 0x2876b: 0x6d08c620, - 0x2876c: 0x6d0fe820, 0x2876e: 0x6c3cd020, 0x2876f: 0x6d403c20, - 0x28770: 0x6d395e20, 0x28771: 0x6d07de20, - 0x28775: 0x6d39d820, 0x28777: 0x6c7edc20, - 0x28779: 0x6d1d5820, 0x2877a: 0x6c435c20, 0x2877b: 0x6c7e2c20, - 0x2877d: 0x6c358820, 0x2877e: 0x6cef5620, 0x2877f: 0x6c9a3620, - // Block 0xa1e, offset 0x28780 - 0x28783: 0x6c57fe20, - 0x28784: 0x6c1e3820, 0x28786: 0x6cddb220, 0x28787: 0x6cdec820, - 0x28788: 0x6cddb420, 0x28789: 0x6cdeca20, 0x2878a: 0x6d097a20, - 0x2878c: 0x6c460820, 0x2878d: 0x6c643220, 0x2878f: 0x6c0fb020, - 0x28790: 0x6cdecc20, 0x28791: 0x6d25f620, - 0x28798: 0x6cdece20, - 0x2879d: 0x6c20ec20, - 0x287a0: 0x6d047820, 0x287a1: 0x6c519820, 0x287a2: 0x6cdd4820, - 0x287a7: 0x6ca18a20, - 0x287a8: 0x6c1d2c20, 0x287a9: 0x6cdbe420, 0x287aa: 0x6d2b2220, 0x287ab: 0x6c933220, - 0x287ac: 0x6d2eea20, 0x287ad: 0x6c963c20, 0x287ae: 0x6d075820, 0x287af: 0x6c653a20, - 0x287b0: 0x6ccd2220, 0x287b2: 0x6d075a20, - 0x287be: 0x6c67cc20, - // Block 0xa1f, offset 0x287c0 - 0x287c2: 0x6c067c20, 0x287c3: 0x6c970c20, - 0x287c5: 0x6ce7a020, 0x287c6: 0x6cf92c20, - 0x287c9: 0x6cc6e620, 0x287cb: 0x6cd12a20, - 0x287cc: 0x6d396c20, 0x287ce: 0x6c654420, 0x287cf: 0x6c409a20, - 0x287d0: 0x6c2afa20, 0x287d3: 0x6d1de220, - 0x287d4: 0x6c70e420, 0x287d6: 0x6d195e20, 0x287d7: 0x6c054820, - 0x287d9: 0x6ccb9620, 0x287da: 0x6cdcc620, - 0x287dc: 0x6c346e20, 0x287dd: 0x6d028420, - 0x287e1: 0x6c58c820, - 0x287e5: 0x6cc80c20, 0x287e6: 0x6ca66c20, 0x287e7: 0x6d397020, - 0x287e8: 0x6c4bac20, 0x287ea: 0x6c964820, - 0x287f2: 0x6d342e20, 0x287f3: 0x6d076c20, - 0x287f5: 0x6d343020, 0x287f7: 0x6c752a20, - 0x287f8: 0x6c70e820, 0x287fb: 0x6d25da20, - 0x287fc: 0x6c91a420, 0x287ff: 0x6c0fda20, - // Block 0xa20, offset 0x28800 - 0x28802: 0x6cc6ea20, 0x28803: 0x6d029620, - 0x28809: 0x6cf83220, 0x2880a: 0x6c959a20, - 0x2880e: 0x6c447020, - 0x28811: 0x6d414620, 0x28812: 0x6c4eca20, - 0x28814: 0x6c685620, 0x28815: 0x6cc95420, 0x28816: 0x6cbd8a20, 0x28817: 0x6cc43c20, - 0x28818: 0x6cad6420, 0x28819: 0x6d26da20, 0x2881a: 0x6c182c20, 0x2881b: 0x6c3ece20, - 0x2881c: 0x6cadc020, 0x2881f: 0x6c9aa420, - 0x28822: 0x6ce1de20, - 0x28824: 0x6c78f020, 0x28825: 0x6cf8d420, - 0x2882b: 0x6c351620, - 0x2882d: 0x6d187220, - 0x28830: 0x6cdc7e20, 0x28832: 0x6cf9f820, 0x28833: 0x6c730420, - 0x28835: 0x6cef3e20, 0x28837: 0x6d18ba20, - 0x28839: 0x6d242220, 0x2883b: 0x6c045c20, - 0x2883c: 0x6ceb5820, 0x2883d: 0x6cdeb820, 0x2883e: 0x6cad6e20, - // Block 0xa21, offset 0x28840 - 0x28842: 0x6c0dfc20, - 0x28845: 0x6d286820, 0x28846: 0x6d286a20, 0x28847: 0x6c32e220, - 0x28848: 0x6cc88620, 0x28849: 0x6cef5820, - 0x2884f: 0x6cf05020, - 0x28850: 0x6c4b9820, 0x28852: 0x6c26d420, 0x28853: 0x6cfa1420, - 0x28856: 0x6c5d4a20, 0x28857: 0x6c733220, - 0x28858: 0x6cdbe620, 0x2885a: 0x6cdcbc20, - 0x2885d: 0x6c90d620, 0x2885e: 0x6c046420, 0x2885f: 0x6d246e20, - 0x28860: 0x6d337420, 0x28861: 0x6c4ba620, 0x28863: 0x6c7c5820, - 0x28864: 0x6c42f220, 0x28865: 0x6c281620, - 0x28869: 0x6cfc5a20, 0x2886a: 0x6d2d2420, 0x2886b: 0x6ccb9820, - 0x2886d: 0x6c784620, 0x2886e: 0x6c105020, 0x2886f: 0x6c0fce20, - 0x28872: 0x6cdcc820, - 0x28874: 0x6d249420, 0x28875: 0x6c105220, 0x28876: 0x6c6f9220, 0x28877: 0x6c6f9420, - 0x28879: 0x6c73aa20, 0x2887a: 0x6c754220, - 0x2887c: 0x6ca31620, 0x2887d: 0x6d2d1c20, 0x2887e: 0x6ce1ba20, 0x2887f: 0x6cefec20, - // Block 0xa22, offset 0x28880 - 0x28880: 0x6cf9dc20, 0x28881: 0x6d01cc20, - 0x28885: 0x6cc9a620, 0x28886: 0x6c5f6620, - 0x28889: 0x6d026a20, - 0x2888c: 0x6c338c20, 0x2888d: 0x6d3f2620, - 0x28898: 0x6d25ee20, 0x28899: 0x6cbe1e20, 0x2889a: 0x6c3ed020, 0x2889b: 0x6caeba20, - 0x2889c: 0x6cad6620, 0x2889e: 0x6d1b7620, - 0x288a0: 0x6c52c220, 0x288a1: 0x6d40d420, 0x288a3: 0x6c45a820, - 0x288a4: 0x6c308820, 0x288a5: 0x6c50a820, 0x288a6: 0x6cf31020, - 0x288a8: 0x6cace220, 0x288ab: 0x6cdb2820, - 0x288ac: 0x6c76f020, 0x288ad: 0x6ca88220, 0x288ae: 0x6c4ffa20, 0x288af: 0x6c3cfa20, - 0x288b0: 0x6c36be20, 0x288b1: 0x6d137620, - 0x288b4: 0x6ce69820, 0x288b5: 0x6c309420, 0x288b6: 0x6d30ba20, 0x288b7: 0x6cca7820, - 0x288bb: 0x6ca18c20, - 0x288bc: 0x6cdb6020, 0x288be: 0x6c823220, - // Block 0xa23, offset 0x288c0 - 0x288c0: 0x6cb4a620, 0x288c1: 0x6c35a620, 0x288c2: 0x6d3de220, 0x288c3: 0x6d139820, - 0x288c7: 0x6cfda220, - 0x288c8: 0x6c4a2c20, 0x288c9: 0x6cc59e20, 0x288ca: 0x6c8dfe20, - 0x288cd: 0x6c02cc20, - 0x288d0: 0x6c146820, 0x288d2: 0x6c345620, 0x288d3: 0x6cbf3620, - 0x288d4: 0x6c7a4620, 0x288d5: 0x6d05b020, 0x288d6: 0x6c587c20, 0x288d7: 0x6d10aa20, - 0x288d8: 0x6d324620, 0x288d9: 0x6ce6da20, 0x288da: 0x6c082420, - 0x288dd: 0x6c020220, 0x288df: 0x6c76b420, - 0x288e1: 0x6c7a4c20, 0x288e2: 0x6cadde20, 0x288e3: 0x6d205220, - 0x288e4: 0x6c02aa20, 0x288e5: 0x6c9ad020, 0x288e6: 0x6ca13620, - 0x288ec: 0x6c3f7220, 0x288ed: 0x6cbe5020, 0x288ee: 0x6c7e8220, 0x288ef: 0x6c30f220, - 0x288f0: 0x6ce06c20, 0x288f3: 0x6cba1c20, - 0x288f4: 0x6d121c20, 0x288f5: 0x6cf0b620, 0x288f6: 0x6c558c20, 0x288f7: 0x6ca14620, - 0x288f8: 0x6c50a620, 0x288f9: 0x6d08ac20, 0x288fb: 0x6c0a1220, - 0x288fc: 0x6cb31a20, 0x288fe: 0x6c2b3c20, - // Block 0xa24, offset 0x28900 - 0x28900: 0x6d31f020, 0x28902: 0x6cd1e420, 0x28903: 0x6c76e420, - 0x28904: 0x6c130c20, 0x28907: 0x6d05c420, - 0x28908: 0x6d31f220, 0x2890a: 0x6d3a7820, - 0x2890f: 0x6c5c2420, - 0x28910: 0x6c1bc020, 0x28913: 0x6c53aa20, - 0x28914: 0x6caa0420, 0x28915: 0x6ca86a20, 0x28916: 0x6d0eb020, - 0x28918: 0x6c1d4020, 0x28919: 0x6c3f8620, 0x2891a: 0x6c49f420, 0x2891b: 0x6cb52c20, - 0x2891d: 0x6c44a220, 0x2891e: 0x6ce6e020, - 0x28922: 0x6ce07220, 0x28923: 0x6cba2020, - 0x28926: 0x6c702020, 0x28927: 0x6d05e220, - 0x28928: 0x6cb71620, 0x2892a: 0x6d326420, - 0x2892e: 0x6cc09c20, - 0x28930: 0x6c35bc20, 0x28933: 0x6c5c4c20, - 0x28934: 0x6c53d820, 0x28935: 0x6cbeb420, 0x28937: 0x6c17e020, - 0x2893a: 0x6c405c20, - 0x2893c: 0x6c52ce20, 0x2893d: 0x6cf6e220, 0x2893e: 0x6cf3ee20, 0x2893f: 0x6c987820, - // Block 0xa25, offset 0x28940 - 0x28942: 0x6ce2fc20, - 0x28945: 0x6c52d020, - 0x28950: 0x6c0f6a20, 0x28952: 0x6cbde820, 0x28953: 0x6c44a420, - 0x28956: 0x6c3f0020, 0x28957: 0x6c7cde20, - 0x2895d: 0x6c0cfe20, 0x2895e: 0x6c6eba20, 0x2895f: 0x6c76f220, - 0x28960: 0x6c4a9020, 0x28962: 0x6c432820, 0x28963: 0x6d05f420, - 0x28964: 0x6c01d420, 0x28965: 0x6d26f420, 0x28966: 0x6cf53420, 0x28967: 0x6d157a20, - 0x28968: 0x6c6dda20, 0x2896a: 0x6c930220, 0x2896b: 0x6cc31c20, - 0x2896c: 0x6ce9c820, 0x2896e: 0x6c62a420, - 0x2897a: 0x6c6f3420, 0x2897b: 0x6c74d420, - 0x2897c: 0x6cb1d620, 0x2897d: 0x6c7d8a20, - // Block 0xa26, offset 0x28980 - 0x28980: 0x6cec7420, 0x28981: 0x6c5c7620, 0x28982: 0x6c341220, 0x28983: 0x6d25f420, - 0x28984: 0x6c6b6a20, 0x28986: 0x6c4b9020, 0x28987: 0x6c432e20, - 0x28988: 0x6cb3b220, 0x28989: 0x6c9ade20, 0x2898a: 0x6d3bf020, 0x2898b: 0x6c4f9c20, - 0x28994: 0x6d1e0420, 0x28995: 0x6cc0a420, 0x28997: 0x6c834e20, - 0x28998: 0x6c020620, 0x28999: 0x6cb08020, 0x2899a: 0x6cf24220, - 0x2899d: 0x6cbe2a20, 0x2899f: 0x6cbdee20, - 0x289a0: 0x6c9f0620, 0x289a1: 0x6c30d020, 0x289a2: 0x6c9c9420, 0x289a3: 0x6d2db820, - 0x289a5: 0x6cbec020, 0x289a6: 0x6d158c20, - 0x289ae: 0x6c04aa20, - 0x289b1: 0x6c730a20, 0x289b3: 0x6d2b2420, - 0x289b4: 0x6d075c20, 0x289b5: 0x6c7ff420, 0x289b6: 0x6c968220, 0x289b7: 0x6c968420, - 0x289b8: 0x6cab6220, 0x289b9: 0x6c06c020, 0x289bb: 0x6cb3e820, - 0x289bc: 0x6d075e20, - // Block 0xa27, offset 0x289c0 - 0x289c0: 0x6c02fe20, - 0x289c6: 0x6c53ae20, - 0x289c9: 0x6c53b020, 0x289ca: 0x6d2e3c20, - 0x289cc: 0x6ccbb620, 0x289cd: 0x6c433020, 0x289cf: 0x6cb34420, - 0x289d0: 0x6c8aae20, - 0x289d5: 0x6cec7a20, 0x289d6: 0x6d07f420, - 0x289dc: 0x6c7cb820, 0x289df: 0x6c36ea20, - 0x289e0: 0x6c4f3e20, 0x289e1: 0x6ccb9a20, - 0x289e4: 0x6c28ee20, - 0x289ea: 0x6d07f620, - 0x289ec: 0x6c36f420, 0x289ed: 0x6c415a20, 0x289ef: 0x6c29c820, - 0x289f1: 0x6c9bfa20, 0x289f2: 0x6d143e20, 0x289f3: 0x6ca94e20, - 0x289f5: 0x6cb23020, - 0x289f9: 0x6c124620, - 0x289fe: 0x6d263c20, - // Block 0xa28, offset 0x28a00 - 0x28a00: 0x6c36fc20, 0x28a01: 0x6ca8ca20, - 0x28a04: 0x6d1b2e20, 0x28a07: 0x6cbbca20, - 0x28a09: 0x6c52e220, 0x28a0a: 0x6c8dca20, - 0x28a0c: 0x6c14e820, 0x28a0d: 0x6d1d3020, - 0x28a12: 0x6c494820, - 0x28a14: 0x6ca7ca20, 0x28a15: 0x6d05c620, 0x28a16: 0x6cdff820, 0x28a17: 0x6c6d6e20, - 0x28a1b: 0x6caea620, - 0x28a1d: 0x6c89e820, - 0x28a20: 0x6c072c20, 0x28a23: 0x6d030020, - 0x28a24: 0x6cea6020, 0x28a25: 0x6c174e20, 0x28a26: 0x6c41a420, - 0x28a28: 0x6c54e020, 0x28a29: 0x6cee2e20, - 0x28a2c: 0x6c3eba20, 0x28a2d: 0x6cae2220, 0x28a2f: 0x6ca4b620, - 0x28a30: 0x6d0a1820, 0x28a31: 0x6d096c20, - 0x28a34: 0x6c8f1220, 0x28a35: 0x6c8d4420, 0x28a36: 0x6d097020, 0x28a37: 0x6cc12e20, - 0x28a38: 0x6c4fda20, 0x28a39: 0x6d153c20, 0x28a3a: 0x6c4ef420, - 0x28a3c: 0x6c3ed220, 0x28a3d: 0x6c038a20, 0x28a3e: 0x6d153e20, - // Block 0xa29, offset 0x28a40 - 0x28a40: 0x6c0f3820, - 0x28a44: 0x6c52c420, 0x28a45: 0x6c866a20, - 0x28a49: 0x6cc98820, 0x28a4a: 0x6cf6b220, - 0x28a4e: 0x6cd3ce20, 0x28a4f: 0x6cb15e20, - 0x28a50: 0x6c57c220, 0x28a51: 0x6d155220, 0x28a52: 0x6c0f5220, 0x28a53: 0x6c0f6c20, - 0x28a54: 0x6ca57620, 0x28a55: 0x6cc09e20, - 0x28a58: 0x6cf01e20, 0x28a59: 0x6c184a20, 0x28a5a: 0x6d1f7820, - 0x28a5c: 0x6cf0dc20, 0x28a5d: 0x6c5b6820, 0x28a5e: 0x6cc99a20, - 0x28a62: 0x6c53da20, 0x28a63: 0x6cd9e820, - 0x28a64: 0x6c4f1220, 0x28a65: 0x6cad6a20, 0x28a67: 0x6c39b020, - 0x28a69: 0x6c8eae20, 0x28a6a: 0x6d395a20, 0x28a6b: 0x6cb02a20, - 0x28a6d: 0x6c86b620, - 0x28a70: 0x6c20e820, 0x28a71: 0x6cf6fc20, 0x28a72: 0x6d330220, - 0x28a74: 0x6c085620, 0x28a75: 0x6d333420, 0x28a76: 0x6cdc9620, 0x28a77: 0x6d0de420, - 0x28a7c: 0x6cbe5a20, 0x28a7d: 0x6cf53620, 0x28a7e: 0x6c89a620, - // Block 0xa2a, offset 0x28a80 - 0x28a80: 0x6d2fe420, 0x28a81: 0x6c897220, - 0x28a85: 0x6c6a3c20, 0x28a87: 0x6c52da20, - 0x28a88: 0x6d1ec020, 0x28a8a: 0x6c7ea220, 0x28a8b: 0x6c548620, - 0x28a8d: 0x6d263620, 0x28a8e: 0x6c539620, 0x28a8f: 0x6d137820, - 0x28a91: 0x6d1d1c20, 0x28a92: 0x6d086020, 0x28a93: 0x6d1f8620, - 0x28a98: 0x6cc32020, - 0x28a9c: 0x6ce15e20, 0x28a9d: 0x6cddb620, 0x28a9f: 0x6c871020, - 0x28aa0: 0x6cd9fc20, 0x28aa1: 0x6c871220, - 0x28aa4: 0x6d245420, 0x28aa7: 0x6d192020, - 0x28aad: 0x6d051220, 0x28aae: 0x6c028620, 0x28aaf: 0x6ce97420, - 0x28ab0: 0x6cdb6220, 0x28ab1: 0x6cd67a20, 0x28ab3: 0x6d247020, - 0x28ab5: 0x6c3c7a20, - 0x28ab9: 0x6cdb6620, 0x28aba: 0x6ce9da20, 0x28abb: 0x6d247220, - 0x28abc: 0x6d331020, 0x28abd: 0x6d331220, 0x28abf: 0x6ce25420, - // Block 0xa2b, offset 0x28ac0 - 0x28ac4: 0x6c8ee020, 0x28ac6: 0x6c1a5c20, 0x28ac7: 0x6cdc0620, - 0x28ac8: 0x6ccad820, - 0x28acf: 0x6c47f420, - 0x28ad0: 0x6c3c8a20, 0x28ad1: 0x6c8b8420, 0x28ad2: 0x6cb17a20, - 0x28ad6: 0x6c87b620, - 0x28ad8: 0x6c901820, 0x28ad9: 0x6c1e7020, 0x28ada: 0x6cff6220, 0x28adb: 0x6c52e420, - 0x28adc: 0x6d029820, 0x28add: 0x6ccf9420, - 0x28ae0: 0x6c902620, 0x28ae1: 0x6c53ea20, 0x28ae2: 0x6d083e20, 0x28ae3: 0x6c3c9620, - 0x28ae5: 0x6c037420, 0x28ae6: 0x6c0ecc20, 0x28ae7: 0x6ce22620, - 0x28ae8: 0x6cdabc20, 0x28ae9: 0x6d2fb820, 0x28aea: 0x6c0c0220, 0x28aeb: 0x6cd9c420, - 0x28aec: 0x6ce9aa20, 0x28aed: 0x6cdd8820, 0x28aee: 0x6cfefa20, 0x28aef: 0x6c527220, - 0x28af0: 0x6ccac620, 0x28af2: 0x6c3a1020, - 0x28af7: 0x6ca9aa20, - 0x28af8: 0x6c98ac20, - 0x28afd: 0x6c58ca20, 0x28afe: 0x6d343420, - // Block 0xa2c, offset 0x28b00 - 0x28b02: 0x6d171620, - 0x28b04: 0x6d22fe20, 0x28b07: 0x6d14f020, - 0x28b08: 0x6d264e20, 0x28b09: 0x6c1b2220, - 0x28b15: 0x6d1aea20, 0x28b16: 0x6ca9a620, 0x28b17: 0x6cc71420, - 0x28b1b: 0x6ca34a20, - 0x28b23: 0x6ce4a620, - 0x28b25: 0x6c035020, - 0x28b2a: 0x6c379c20, 0x28b2b: 0x6d32dc20, - 0x28b2c: 0x6c366a20, 0x28b2d: 0x6cb3dc20, 0x28b2e: 0x6c5efa20, 0x28b2f: 0x6ca5f620, - 0x28b31: 0x6c6f2020, 0x28b32: 0x6c63d420, - 0x28b35: 0x6c41a620, - 0x28b39: 0x6c8d2e20, 0x28b3b: 0x6d41bc20, - 0x28b3e: 0x6c073820, - // Block 0xa2d, offset 0x28b40 - 0x28b45: 0x6cd4f220, 0x28b46: 0x6d15fc20, 0x28b47: 0x6cabf420, - 0x28b4b: 0x6ca50e20, - 0x28b4c: 0x6cd3c020, 0x28b4e: 0x6c97c620, 0x28b4f: 0x6cd3c220, - 0x28b51: 0x6ce35e20, - 0x28b58: 0x6c45a420, - 0x28b5d: 0x6c834420, 0x28b5e: 0x6c061020, 0x28b5f: 0x6d251020, - 0x28b60: 0x6d422820, 0x28b61: 0x6c80e620, 0x28b62: 0x6d04f220, - 0x28b65: 0x6d294220, 0x28b66: 0x6c1a8620, 0x28b67: 0x6c64e820, - 0x28b68: 0x6c99b420, 0x28b69: 0x6c63e220, 0x28b6a: 0x6d23de20, - 0x28b6d: 0x6d23e020, 0x28b6e: 0x6d155420, - 0x28b72: 0x6c982020, 0x28b73: 0x6d294420, - 0x28b75: 0x6d3ca820, 0x28b76: 0x6ce37620, - 0x28b79: 0x6cf8d620, 0x28b7a: 0x6c716020, 0x28b7b: 0x6d299e20, - 0x28b7c: 0x6c92e420, 0x28b7d: 0x6ce24420, - // Block 0xa2e, offset 0x28b80 - 0x28b80: 0x6d3cb020, 0x28b81: 0x6c8d6020, 0x28b83: 0x6c729c20, - 0x28b86: 0x6c5f4c20, 0x28b87: 0x6c733020, - 0x28b8a: 0x6d3e9a20, - 0x28b8c: 0x6d265a20, 0x28b8d: 0x6c301620, - 0x28b92: 0x6ca47020, - 0x28b96: 0x6c1d2420, - 0x28b9f: 0x6c022020, - 0x28ba3: 0x6c44e020, - 0x28ba5: 0x6c0e9420, 0x28ba6: 0x6c2fbc20, 0x28ba7: 0x6cf02220, - 0x28bac: 0x6cc31a20, 0x28bad: 0x6c783a20, - 0x28bb0: 0x6cb0cc20, 0x28bb1: 0x6c76f420, 0x28bb2: 0x6c3f0e20, 0x28bb3: 0x6d1e6220, - 0x28bb5: 0x6ce96620, 0x28bb6: 0x6ce81e20, 0x28bb7: 0x6d205a20, - 0x28bb8: 0x6d10c020, 0x28bba: 0x6d126c20, - 0x28bbd: 0x6d0ed220, - // Block 0xa2f, offset 0x28bc0 - 0x28bc8: 0x6cfbb220, 0x28bca: 0x6ce38e20, - 0x28bcc: 0x6cdc9820, - 0x28bd0: 0x6c227420, - 0x28bd4: 0x6d066220, 0x28bd5: 0x6cf53820, 0x28bd6: 0x6c117420, 0x28bd7: 0x6d242420, - 0x28bda: 0x6c15f820, 0x28bdb: 0x6cfa1020, - 0x28bdd: 0x6c77ce20, 0x28bde: 0x6c124220, 0x28bdf: 0x6c13bc20, - 0x28be0: 0x6cc0b420, 0x28be3: 0x6c267220, - 0x28be5: 0x6cdb5620, - 0x28be8: 0x6c571c20, - 0x28bf7: 0x6cf38e20, - 0x28bf8: 0x6d251a20, - 0x28bfd: 0x6c681220, 0x28bfe: 0x6cfe0820, 0x28bff: 0x6d2d0620, - // Block 0xa30, offset 0x28c00 - 0x28c00: 0x6cca3a20, 0x28c01: 0x6ca09220, 0x28c03: 0x6cce3e20, - 0x28c04: 0x6c12a420, 0x28c05: 0x6cdbe220, 0x28c06: 0x6c208420, 0x28c07: 0x6c9c9620, - 0x28c08: 0x6d3a3420, 0x28c09: 0x6c1d2820, 0x28c0a: 0x6c62c220, 0x28c0b: 0x6c1d2a20, - 0x28c19: 0x6c889020, - 0x28c1e: 0x6c4d8020, - 0x28c24: 0x6c33c220, 0x28c25: 0x6cfe0c20, 0x28c26: 0x6c19ae20, 0x28c27: 0x6cce4020, - 0x28c28: 0x6c873820, 0x28c29: 0x6c5a2c20, - 0x28c2c: 0x6c2af820, 0x28c2f: 0x6c897a20, - 0x28c36: 0x6d28a420, - 0x28c3a: 0x6c5e4420, 0x28c3b: 0x6c8c0420, - 0x28c3e: 0x6c31ee20, 0x28c3f: 0x6c4f3620, - // Block 0xa31, offset 0x28c40 - 0x28c40: 0x6d1ddc20, 0x28c41: 0x6d263a20, 0x28c42: 0x6c4cf420, 0x28c43: 0x6c8d9c20, - 0x28c45: 0x6c88de20, 0x28c47: 0x6c030220, - 0x28c48: 0x6c292220, 0x28c49: 0x6d194e20, 0x28c4a: 0x6ca9e420, 0x28c4b: 0x6ccde620, - 0x28c4d: 0x6d035c20, - 0x28c50: 0x6c26da20, 0x28c51: 0x6d247420, 0x28c52: 0x6c118220, 0x28c53: 0x6cf33420, - 0x28c54: 0x6c141420, 0x28c55: 0x6c0fca20, 0x28c57: 0x6c663020, - 0x28c5e: 0x6c9bb820, 0x28c5f: 0x6cf05e20, - 0x28c60: 0x6ca09e20, - 0x28c65: 0x6cd73820, 0x28c66: 0x6c6b8220, 0x28c67: 0x6cd7b220, - 0x28c68: 0x6c5e5420, 0x28c6b: 0x6c21ee20, - 0x28c6d: 0x6c901420, 0x28c6e: 0x6c582420, - 0x28c70: 0x6ceada20, 0x28c73: 0x6d220620, - 0x28c76: 0x6c165a20, 0x28c77: 0x6d1dee20, - 0x28c78: 0x6c5e5e20, 0x28c7a: 0x6c806820, - 0x28c7f: 0x6ca30c20, - // Block 0xa32, offset 0x28c80 - 0x28c80: 0x6c032220, 0x28c81: 0x6c418020, 0x28c82: 0x6d15cc20, 0x28c83: 0x6c63ac20, - 0x28c85: 0x6c269220, 0x28c86: 0x6c2fa420, 0x28c87: 0x6d0a8220, - 0x28c88: 0x6cc59620, 0x28c89: 0x6c732020, 0x28c8a: 0x6ce94c20, 0x28c8b: 0x6d064020, - 0x28c8c: 0x6cd99220, 0x28c8e: 0x6c128420, 0x28c8f: 0x6c198e20, - 0x28c91: 0x6c2f7020, - 0x28c9a: 0x6c4d2620, - 0x28c9f: 0x6cf47220, - 0x28ca6: 0x6cb72020, - 0x28ca8: 0x6c5f6820, - 0x28cae: 0x6c7cac20, 0x28caf: 0x6cef5e20, - 0x28cb6: 0x6cd44e20, 0x28cb7: 0x6c3f2820, - 0x28cb9: 0x6ce97a20, 0x28cbb: 0x6c0cf020, - 0x28cbd: 0x6cdff020, 0x28cbe: 0x6c4f5220, 0x28cbf: 0x6cb1ce20, - // Block 0xa33, offset 0x28cc0 - 0x28cc3: 0x6d217e20, - 0x28cc4: 0x6cdffa20, - 0x28ccc: 0x6cfd9020, 0x28cce: 0x6d050c20, - 0x28cd3: 0x6cf26820, - 0x28cd4: 0x6c4d8220, 0x28cd5: 0x6caef220, - 0x28cdd: 0x6ce04620, 0x28cdf: 0x6c0d0a20, - 0x28ce0: 0x6cfd9e20, 0x28ce3: 0x6d162e20, - 0x28ce6: 0x6cb19020, 0x28ce7: 0x6c586c20, - 0x28ce8: 0x6ca24020, 0x28ce9: 0x6c035220, 0x28ceb: 0x6c396020, - 0x28cef: 0x6c2f6020, - 0x28cf7: 0x6c3b3c20, - 0x28cfa: 0x6c6bf620, - 0x28cfe: 0x6cdd4a20, - // Block 0xa34, offset 0x28d00 - 0x28d04: 0x6ced9220, 0x28d05: 0x6c43a220, - 0x28d08: 0x6c3b3e20, 0x28d0a: 0x6ceb4420, - 0x28d0c: 0x6cf1a620, 0x28d0d: 0x6c487620, 0x28d0e: 0x6c343620, - 0x28d10: 0x6d308820, 0x28d11: 0x6c22a020, 0x28d12: 0x6d11ce20, - 0x28d14: 0x6c050420, 0x28d15: 0x6c10b820, 0x28d16: 0x6ca15c20, - 0x28d18: 0x6cb35e20, 0x28d1b: 0x6c443020, - 0x28d1e: 0x6c8e9220, - 0x28d21: 0x6cc4d020, - 0x28d28: 0x6c41b020, 0x28d2a: 0x6c55a220, 0x28d2b: 0x6ca1e620, - 0x28d2e: 0x6d04f620, 0x28d2f: 0x6c59a220, - 0x28d30: 0x6c3f0220, 0x28d31: 0x6c5b4220, 0x28d33: 0x6cc1ca20, - 0x28d34: 0x6c6b3e20, 0x28d35: 0x6cead220, 0x28d36: 0x6d21ac20, 0x28d37: 0x6ca16820, - 0x28d38: 0x6d38b220, 0x28d39: 0x6c702820, 0x28d3b: 0x6cd53c20, - 0x28d3c: 0x6c7bae20, 0x28d3d: 0x6cbf6620, 0x28d3e: 0x6c8b2c20, 0x28d3f: 0x6c405e20, - // Block 0xa35, offset 0x28d40 - 0x28d4a: 0x6d074420, - 0x28d56: 0x6c8c6e20, - 0x28d58: 0x6ca88420, 0x28d5a: 0x6caf9c20, - 0x28d5c: 0x6c406e20, 0x28d5d: 0x6c10c620, 0x28d5e: 0x6d18e020, - 0x28d61: 0x6c0f8620, 0x28d63: 0x6c358420, - 0x28d69: 0x6d30a620, 0x28d6b: 0x6c86b820, - 0x28d6e: 0x6ce92620, 0x28d6f: 0x6c26cc20, - 0x28d71: 0x6c931620, 0x28d72: 0x6d0c4020, 0x28d73: 0x6c301e20, - 0x28d74: 0x6cbcfc20, 0x28d75: 0x6ced5c20, 0x28d76: 0x6ca03c20, 0x28d77: 0x6d418020, - 0x28d78: 0x6c408420, 0x28d79: 0x6cc15620, 0x28d7a: 0x6c078e20, 0x28d7b: 0x6c02b420, - 0x28d7c: 0x6cbaf620, - // Block 0xa36, offset 0x28d80 - 0x28d81: 0x6cc44020, - 0x28d88: 0x6cc41020, 0x28d89: 0x6c576a20, 0x28d8a: 0x6cfd2a20, 0x28d8b: 0x6c7dd820, - 0x28d8f: 0x6c258220, - 0x28d92: 0x6d158820, - 0x28d96: 0x6c1ae420, 0x28d97: 0x6d404020, - 0x28d98: 0x6ca52420, 0x28d99: 0x6c1a5820, 0x28d9a: 0x6c32a820, 0x28d9b: 0x6d1e0620, - 0x28d9c: 0x6d30e020, 0x28d9e: 0x6ce0b020, 0x28d9f: 0x6d0ff020, - 0x28da0: 0x6d011e20, 0x28da1: 0x6d07ec20, 0x28da3: 0x6c32e420, - 0x28da4: 0x6cd64c20, 0x28da5: 0x6cfbbe20, 0x28da6: 0x6cfbc020, - 0x28da9: 0x6c359e20, - 0x28db2: 0x6c7e5420, - 0x28db8: 0x6cf10220, 0x28db9: 0x6d1ec820, 0x28dba: 0x6d21e020, - 0x28dbd: 0x6ce30420, 0x28dbf: 0x6c6c7220, - // Block 0xa37, offset 0x28dc0 - 0x28dc1: 0x6ce16420, 0x28dc2: 0x6cb69e20, - 0x28dc4: 0x6c2cec20, 0x28dc5: 0x6ce1fe20, 0x28dc6: 0x6c941820, 0x28dc7: 0x6d2e9a20, - 0x28dc8: 0x6cf17020, 0x28dc9: 0x6c62d620, 0x28dca: 0x6c023820, 0x28dcb: 0x6cabaa20, - 0x28dcc: 0x6cb88420, - 0x28dd0: 0x6cd21220, 0x28dd1: 0x6cde2420, - 0x28dd4: 0x6ca18e20, - 0x28dd8: 0x6d1f9220, - 0x28de0: 0x6d2c6a20, 0x28de3: 0x6d117220, - 0x28deb: 0x6c1cfa20, - 0x28dec: 0x6c84b220, 0x28ded: 0x6d21f420, 0x28dee: 0x6c161420, 0x28def: 0x6d143620, - 0x28df2: 0x6c1c9420, - 0x28df4: 0x6c84b420, - 0x28dfd: 0x6ce90a20, 0x28dff: 0x6d40fe20, - // Block 0xa38, offset 0x28e00 - 0x28e02: 0x6cfbd620, - 0x28e07: 0x6cf93620, - 0x28e09: 0x6c0d0c20, 0x28e0a: 0x6c4e4a20, 0x28e0b: 0x6cb6b020, - 0x28e0c: 0x6cca7a20, 0x28e0e: 0x6c3a2c20, - 0x28e10: 0x6ccdea20, - 0x28e18: 0x6c584820, - 0x28e20: 0x6c059a20, 0x28e21: 0x6d220220, 0x28e22: 0x6d220420, - 0x28e24: 0x6c610420, - 0x28e31: 0x6c7b0620, 0x28e32: 0x6d3fe420, - 0x28e39: 0x6cfd5420, 0x28e3a: 0x6c9bc020, - // Block 0xa39, offset 0x28e40 - 0x28e43: 0x6c87b820, - 0x28e44: 0x6d377820, 0x28e45: 0x6c38fc20, 0x28e46: 0x6c8b8820, 0x28e47: 0x6c115620, - 0x28e48: 0x6c320a20, 0x28e49: 0x6c4a0020, 0x28e4a: 0x6d04b020, 0x28e4b: 0x6c84ea20, - 0x28e4c: 0x6cb80c20, 0x28e4f: 0x6c753420, - 0x28e50: 0x6ceade20, 0x28e52: 0x6c72d220, 0x28e53: 0x6cff6420, - 0x28e58: 0x6cc23420, - 0x28e5c: 0x6d3bba20, - 0x28e61: 0x6c754420, - 0x28e66: 0x6c6bbc20, - 0x28e68: 0x6d390620, 0x28e69: 0x6cfc8820, 0x28e6a: 0x6c8f7020, 0x28e6b: 0x6d100420, - 0x28e6c: 0x6cc4b220, 0x28e6d: 0x6d16d620, 0x28e6e: 0x6c8ae020, 0x28e6f: 0x6c0e5620, - 0x28e70: 0x6c5ce220, 0x28e71: 0x6c61be20, 0x28e72: 0x6c306a20, 0x28e73: 0x6d386420, - 0x28e74: 0x6cc29220, 0x28e75: 0x6c6a9c20, - 0x28e7a: 0x6c710820, - 0x28e7c: 0x6c078620, 0x28e7f: 0x6c087620, - // Block 0xa3a, offset 0x28e80 - 0x28e80: 0x6c43fe20, 0x28e81: 0x6c217c20, 0x28e83: 0x6cb9a220, - 0x28e84: 0x6cd9c820, 0x28e85: 0x6cf0a020, 0x28e86: 0x6c1a1420, 0x28e87: 0x6c909020, - 0x28e88: 0x6d213e20, 0x28e89: 0x6c7e4620, 0x28e8a: 0x6cb9a420, 0x28e8b: 0x6c2cd220, - 0x28e8c: 0x6cde0e20, 0x28e8d: 0x6d2e6c20, 0x28e8f: 0x6c38b620, - 0x28e90: 0x6c8b5620, 0x28e91: 0x6ce64420, 0x28e92: 0x6c5ebe20, 0x28e93: 0x6cb8de20, - 0x28e94: 0x6c556820, 0x28e97: 0x6d214220, - 0x28e98: 0x6cb79c20, 0x28e99: 0x6d214420, 0x28e9a: 0x6cebe020, - 0x28e9c: 0x6c03bc20, 0x28e9d: 0x6cb61020, 0x28e9e: 0x6cc95620, 0x28e9f: 0x6cbb8620, - 0x28ea0: 0x6d0bc220, 0x28ea1: 0x6cfc1e20, - 0x28ea8: 0x6c220820, 0x28ea9: 0x6c396220, 0x28eab: 0x6c7dba20, - 0x28eac: 0x6c4be020, 0x28ead: 0x6cc39220, 0x28eae: 0x6c367a20, 0x28eaf: 0x6cbf4e20, - 0x28eb2: 0x6c96d420, 0x28eb3: 0x6c7a5820, - 0x28eb4: 0x6d11c620, 0x28eb7: 0x6cc39420, - 0x28eb8: 0x6c1e6420, 0x28eb9: 0x6c642c20, 0x28ebb: 0x6d3a7a20, - 0x28ebd: 0x6c331220, 0x28ebe: 0x6cec0a20, - // Block 0xa3b, offset 0x28ec0 - 0x28ec0: 0x6ca51220, - 0x28ec4: 0x6d0cce20, 0x28ec5: 0x6ce78020, - 0x28ecb: 0x6d03fe20, - 0x28ecc: 0x6c4bee20, 0x28ecd: 0x6cb26a20, - 0x28ed1: 0x6d229c20, 0x28ed2: 0x6c51ec20, - 0x28ed4: 0x6d3da420, 0x28ed7: 0x6ccf0020, - 0x28ed8: 0x6d22a220, 0x28edb: 0x6c62a620, - 0x28edd: 0x6cbaea20, 0x28ede: 0x6cd73220, 0x28edf: 0x6c21de20, - 0x28ee0: 0x6d40e820, 0x28ee1: 0x6c838e20, 0x28ee2: 0x6ca60e20, - 0x28ee4: 0x6cebf820, 0x28ee5: 0x6d2c5c20, 0x28ee7: 0x6c28d420, - 0x28eee: 0x6c328820, 0x28eef: 0x6c0bd020, - 0x28ef0: 0x6c6a3e20, 0x28ef1: 0x6cb87c20, 0x28ef2: 0x6c519020, 0x28ef3: 0x6c1d5e20, - 0x28ef4: 0x6d0ce620, 0x28ef6: 0x6d0ee020, - 0x28efa: 0x6cd94e20, 0x28efb: 0x6ce2c420, - 0x28efc: 0x6d11e020, 0x28efe: 0x6c779620, - // Block 0xa3c, offset 0x28f00 - 0x28f00: 0x6d3c6e20, 0x28f01: 0x6c4b9a20, 0x28f02: 0x6c005a20, 0x28f03: 0x6c4d8420, - 0x28f08: 0x6cddb820, 0x28f09: 0x6d076020, 0x28f0a: 0x6c0c5020, - 0x28f0c: 0x6c3cfc20, 0x28f0d: 0x6cc15e20, 0x28f0e: 0x6c98ae20, - 0x28f10: 0x6c4ca020, - 0x28f16: 0x6c0ac420, 0x28f17: 0x6c751020, - 0x28f18: 0x6c208a20, 0x28f1b: 0x6cb47420, - 0x28f1f: 0x6d195020, - 0x28f22: 0x6cb95020, 0x28f23: 0x6d196220, - 0x28f24: 0x6c36ec20, 0x28f25: 0x6c8da620, 0x28f27: 0x6c0ace20, - 0x28f2d: 0x6c5e5620, 0x28f2e: 0x6ca0b620, - 0x28f31: 0x6d09ce20, - 0x28f34: 0x6d0f1e20, - 0x28f38: 0x6c87ba20, 0x28f3a: 0x6ce04e20, - 0x28f3e: 0x6c947e20, - // Block 0xa3d, offset 0x28f40 - 0x28f40: 0x6c769020, 0x28f41: 0x6c99aa20, 0x28f42: 0x6cfefc20, - 0x28f47: 0x6c007220, - 0x28f4a: 0x6cde1420, - 0x28f4d: 0x6c9aac20, 0x28f4f: 0x6c4c4220, - 0x28f53: 0x6c432220, - 0x28f54: 0x6ca4c220, 0x28f55: 0x6c4ffc20, - 0x28f60: 0x6cc39820, - 0x28f65: 0x6c12a620, 0x28f66: 0x6ccb0a20, - 0x28f6b: 0x6cb03c20, - 0x28f72: 0x6d006220, 0x28f73: 0x6cff6620, - 0x28f74: 0x6c712c20, - 0x28f79: 0x6c1a2420, 0x28f7a: 0x6ca50820, - // Block 0xa3e, offset 0x28f80 - 0x28f80: 0x6ca58e20, - 0x28f8d: 0x6ca25220, 0x28f8f: 0x6cce8020, - 0x28f91: 0x6c2cda20, - 0x28f94: 0x6c8d5220, 0x28f96: 0x6d31f820, 0x28f97: 0x6d11d020, - 0x28f99: 0x6c404a20, 0x28f9a: 0x6cb9c620, 0x28f9b: 0x6cbf5820, - 0x28f9c: 0x6c715620, 0x28f9d: 0x6c0e2c20, 0x28f9e: 0x6c990620, 0x28f9f: 0x6d2ce020, - 0x28fa0: 0x6cdf0820, - 0x28fa4: 0x6c1ce020, - 0x28fab: 0x6d2d3220, - 0x28fad: 0x6cd1f420, 0x28fae: 0x6d1e7c20, - 0x28fb0: 0x6cbf6820, 0x28fb1: 0x6c2a3820, 0x28fb2: 0x6ce42620, 0x28fb3: 0x6d3c7820, - 0x28fb5: 0x6d1b8020, 0x28fb7: 0x6ca51820, - 0x28fb8: 0x6c0e9620, 0x28fb9: 0x6c7bb220, 0x28fba: 0x6d355220, 0x28fbb: 0x6c34ba20, - 0x28fbc: 0x6c236220, 0x28fbd: 0x6c061620, - // Block 0xa3f, offset 0x28fc0 - 0x28fc7: 0x6c846820, - 0x28fca: 0x6c716c20, 0x28fcb: 0x6cf1bc20, - 0x28fcc: 0x6c8b3e20, 0x28fcf: 0x6cf2c620, - 0x28fd0: 0x6cd2de20, 0x28fd1: 0x6ca7b620, 0x28fd2: 0x6c987c20, 0x28fd3: 0x6c6f8c20, - 0x28fd8: 0x6d050020, - 0x28fdd: 0x6cf2a420, 0x28fdf: 0x6c2a4020, - 0x28fe1: 0x6cf70e20, 0x28fe2: 0x6c01e020, 0x28fe3: 0x6c26ce20, - 0x28fe4: 0x6d401020, 0x28fe5: 0x6c4f2a20, 0x28fe6: 0x6c20ea20, 0x28fe7: 0x6c089820, - 0x28fe9: 0x6c309020, 0x28feb: 0x6d2f1220, - 0x28fef: 0x6d0b0220, - 0x28ff2: 0x6c2bac20, 0x28ff3: 0x6c5d6420, - 0x28ff7: 0x6c9f8020, - 0x28ffa: 0x6c408820, - 0x28ffc: 0x6c061e20, 0x28ffd: 0x6c78e420, 0x28ffe: 0x6c991020, 0x28fff: 0x6cc55820, - // Block 0xa40, offset 0x29000 - 0x29000: 0x6d3fda20, 0x29001: 0x6cb88020, 0x29002: 0x6cf98020, 0x29003: 0x6cda0220, - 0x29004: 0x6d050e20, 0x29005: 0x6ca36e20, - 0x29009: 0x6c979620, - 0x2900e: 0x6d2c0820, 0x2900f: 0x6c154a20, - 0x29010: 0x6ccf8420, 0x29011: 0x6cf2ca20, - 0x29016: 0x6c005c20, 0x29017: 0x6c059820, - 0x29018: 0x6c4fb820, 0x2901a: 0x6ccad420, 0x2901b: 0x6cddba20, - 0x2901c: 0x6ce44020, 0x2901d: 0x6d0bcc20, 0x2901f: 0x6c0e3a20, - 0x29020: 0x6cc6e420, - 0x2902b: 0x6ccc2c20, - 0x2902c: 0x6cf26a20, 0x2902f: 0x6c028a20, - 0x29031: 0x6d3c2820, 0x29033: 0x6cb1c020, - 0x29034: 0x6cdbe820, 0x29035: 0x6d143820, 0x29036: 0x6cda0420, 0x29037: 0x6c30d220, - 0x29038: 0x6cda0620, 0x29039: 0x6c956e20, - // Block 0xa41, offset 0x29040 - 0x29043: 0x6c3afc20, - 0x29044: 0x6d422220, 0x29046: 0x6ca53c20, 0x29047: 0x6c2ac420, - 0x29048: 0x6d34c220, 0x29049: 0x6c25d020, 0x2904a: 0x6c8a5820, 0x2904b: 0x6c616420, - 0x2904c: 0x6c0ea020, 0x2904d: 0x6c23d020, 0x2904e: 0x6c1a6020, 0x2904f: 0x6c104e20, - 0x29051: 0x6cca1020, 0x29052: 0x6d29be20, - 0x29058: 0x6c69e420, 0x2905b: 0x6d125220, - 0x2905c: 0x6c920620, 0x2905e: 0x6c121420, - 0x29068: 0x6ca67020, - 0x29070: 0x6c6b8820, 0x29071: 0x6cb47c20, 0x29072: 0x6d3c5020, 0x29073: 0x6d29c820, - 0x2907a: 0x6c87c420, - 0x2907d: 0x6c7ed020, - // Block 0xa42, offset 0x29080 - 0x29080: 0x6c1d0620, 0x29083: 0x6d2eae20, - 0x2908d: 0x6c0bb420, 0x2908e: 0x6cf23220, - 0x29093: 0x6c53de20, - 0x29097: 0x6cb1fc20, - 0x29099: 0x6ccb9e20, - 0x2909e: 0x6ca67220, 0x2909f: 0x6c3b4e20, - 0x290a0: 0x6d065620, 0x290a2: 0x6cd2da20, - 0x290a4: 0x6c72c220, - 0x290a8: 0x6c752420, 0x290aa: 0x6d24a220, - 0x290ac: 0x6c4c2a20, 0x290ad: 0x6c4c3420, 0x290af: 0x6c55a420, - 0x290b2: 0x6c869020, 0x290b3: 0x6d00fa20, - 0x290b4: 0x6c376c20, 0x290b5: 0x6d25b420, 0x290b6: 0x6c4d2e20, - 0x290b9: 0x6c6ebc20, 0x290bb: 0x6c78de20, - 0x290bd: 0x6d3fcc20, 0x290be: 0x6c3ae620, - // Block 0xa43, offset 0x290c0 - 0x290c0: 0x6cae8820, 0x290c1: 0x6c44e220, 0x290c3: 0x6c652820, - 0x290c4: 0x6ca61220, 0x290c6: 0x6cfbc220, 0x290c7: 0x6c873c20, - 0x290c8: 0x6c17a820, 0x290ca: 0x6c377620, 0x290cb: 0x6c44e820, - 0x290cc: 0x6d247620, 0x290cd: 0x6c560420, 0x290ce: 0x6c3af820, 0x290cf: 0x6c028c20, - 0x290d3: 0x6c37b220, - 0x290d8: 0x6c78ec20, 0x290d9: 0x6c7ab620, 0x290da: 0x6c0fd020, - 0x290dd: 0x6d13a020, 0x290de: 0x6c69e820, - 0x290e6: 0x6c17ae20, 0x290e7: 0x6c44ec20, - 0x290e8: 0x6cc82e20, 0x290ea: 0x6d273c20, - 0x290ec: 0x6c8c1620, - 0x290f1: 0x6d24a620, 0x290f2: 0x6d274820, 0x290f3: 0x6d2d1220, - 0x290f4: 0x6cff6820, 0x290f7: 0x6c9f2420, - 0x290fb: 0x6c4af820, - 0x290fc: 0x6c6f6e20, 0x290fe: 0x6cebaa20, - // Block 0xa44, offset 0x29100 - 0x29101: 0x6cf78220, 0x29102: 0x6cefd620, 0x29103: 0x6d3d6a20, - 0x29104: 0x6cf0a220, 0x29105: 0x6c7c8420, - 0x29108: 0x6c9a9820, 0x2910a: 0x6c505020, 0x2910b: 0x6c4f5020, - 0x2910c: 0x6c399a20, 0x2910d: 0x6ca96e20, 0x2910e: 0x6d205420, 0x2910f: 0x6c57a420, - 0x29112: 0x6c812420, - 0x29120: 0x6d3a1820, 0x29121: 0x6c4b1620, 0x29122: 0x6c0a1620, 0x29123: 0x6c642e20, - 0x29124: 0x6ce59c20, 0x29126: 0x6c93f020, 0x29127: 0x6c79a220, - 0x29128: 0x6d419420, 0x29129: 0x6c8d4620, 0x2912a: 0x6cb63220, - 0x2912c: 0x6d3a1e20, - 0x29131: 0x6c47ba20, 0x29132: 0x6d413020, - 0x29134: 0x6d0f6620, 0x29135: 0x6cda5620, 0x29137: 0x6c7c9620, - 0x29139: 0x6c167a20, 0x2913b: 0x6d113e20, - 0x2913e: 0x6d23e220, - // Block 0xa45, offset 0x29140 - 0x29145: 0x6cd50420, 0x29146: 0x6c7f5420, 0x29147: 0x6d187620, - 0x29148: 0x6c30c420, - 0x2914c: 0x6cf3f020, 0x2914d: 0x6d1d1220, 0x2914e: 0x6c3f0420, 0x2914f: 0x6d3be820, - 0x29150: 0x6c3f8a20, 0x29152: 0x6cdb2a20, 0x29153: 0x6c853420, - 0x29154: 0x6d122820, 0x29155: 0x6cea1020, - 0x2915d: 0x6c4b7a20, - 0x29161: 0x6c940020, 0x29162: 0x6d0ed420, 0x29163: 0x6cb66620, - 0x29164: 0x6c813020, 0x29165: 0x6d3a3020, 0x29167: 0x6c4b1e20, - 0x29168: 0x6c551020, - 0x2916f: 0x6c6ddc20, - 0x29172: 0x6c1bc620, - 0x29175: 0x6c717220, 0x29176: 0x6d2c6020, - 0x29178: 0x6c9e8020, - // Block 0xa46, offset 0x29180 - 0x29180: 0x6d39da20, 0x29181: 0x6c41ba20, 0x29182: 0x6d047620, 0x29183: 0x6c60e620, - 0x29187: 0x6cccaa20, - 0x29188: 0x6c9ab620, 0x29189: 0x6d287420, - 0x2918d: 0x6cd48820, - 0x29190: 0x6c941a20, 0x29191: 0x6d206020, 0x29192: 0x6c681420, 0x29193: 0x6caacc20, - 0x29198: 0x6c72c420, 0x29199: 0x6d206220, - 0x2919c: 0x6d195220, 0x2919d: 0x6ce2ce20, 0x2919e: 0x6cef7220, 0x2919f: 0x6c17f620, - 0x291a0: 0x6c8c8620, 0x291a1: 0x6c483020, 0x291a3: 0x6c875a20, - 0x291a4: 0x6c8ab020, 0x291a7: 0x6c68ac20, - 0x291a8: 0x6d0ff620, 0x291a9: 0x6c0c5e20, 0x291aa: 0x6cb6a220, - 0x291ae: 0x6d196420, - 0x291b1: 0x6c0d7620, 0x291b2: 0x6c9bbc20, 0x291b3: 0x6c145a20, - 0x291b5: 0x6c41be20, - 0x291b9: 0x6cc21c20, 0x291ba: 0x6c2bc020, 0x291bb: 0x6c82a020, - // Block 0xa47, offset 0x291c0 - 0x291c0: 0x6c8dcc20, - 0x291c4: 0x6c585220, 0x291c5: 0x6cc23220, 0x291c7: 0x6c959c20, - 0x291c9: 0x6c7cc820, - 0x291cd: 0x6cc08020, 0x291ce: 0x6d227620, 0x291cf: 0x6c57a620, - 0x291d3: 0x6c833a20, - 0x291d5: 0x6cc60620, 0x291d6: 0x6cffb620, 0x291d7: 0x6cd8da20, - 0x291da: 0x6c327220, 0x291db: 0x6c0cb420, - 0x291e0: 0x6ca97020, 0x291e2: 0x6c51e020, 0x291e3: 0x6cadc420, - 0x291e5: 0x6c3acc20, 0x291e6: 0x6ca2aa20, - 0x291e9: 0x6c3d9620, - 0x291ec: 0x6c55a820, 0x291ed: 0x6cedec20, 0x291ee: 0x6ccc1420, - 0x291f0: 0x6c687420, 0x291f1: 0x6cf47420, - 0x291f9: 0x6c404c20, - // Block 0xa48, offset 0x29200 - 0x29201: 0x6c0df620, 0x29202: 0x6d3b3020, - 0x29204: 0x6d3a2a20, 0x29205: 0x6c1ada20, 0x29207: 0x6cd07c20, - 0x29208: 0x6c550820, 0x29209: 0x6c101e20, - 0x2920e: 0x6cc4d420, - 0x29216: 0x6ca2b620, - 0x29218: 0x6c869220, 0x2921b: 0x6c638820, - 0x2921e: 0x6c96e020, - 0x29221: 0x6c9b6820, 0x29222: 0x6ca1f020, 0x29223: 0x6d38b820, - 0x29224: 0x6cfc3820, 0x29225: 0x6c5b7420, 0x29226: 0x6c48fc20, 0x29227: 0x6c702c20, - 0x29229: 0x6ca2b820, 0x2922b: 0x6cc82a20, - 0x2922d: 0x6cf3fc20, 0x2922f: 0x6cc7d820, - 0x29231: 0x6d2ce620, - // Block 0xa49, offset 0x29240 - 0x29241: 0x6caae220, 0x29242: 0x6d010a20, - 0x29244: 0x6c680220, - 0x2924b: 0x6c853a20, - 0x2924c: 0x6cd51020, 0x2924d: 0x6d190020, 0x2924e: 0x6c2bae20, 0x2924f: 0x6cbe9220, - 0x29250: 0x6c717420, 0x29253: 0x6d373620, - 0x29255: 0x6c80f020, 0x29256: 0x6c10ca20, 0x29257: 0x6c7bca20, - 0x29258: 0x6d190220, 0x2925a: 0x6c0f9a20, - 0x29267: 0x6c1c8c20, - 0x2926d: 0x6c680c20, 0x2926f: 0x6cf32a20, - 0x29270: 0x6d0aac20, - 0x29275: 0x6cea3220, 0x29276: 0x6c987e20, - 0x29278: 0x6c39b220, 0x29279: 0x6d3dce20, 0x2927b: 0x6cb88220, - 0x2927d: 0x6cde2220, 0x2927e: 0x6cb68a20, - // Block 0xa4a, offset 0x29280 - 0x29280: 0x6caf1e20, 0x29281: 0x6c0cc620, 0x29282: 0x6c3bfe20, 0x29283: 0x6ce92820, - 0x29284: 0x6c57d220, 0x29287: 0x6c36d220, - 0x2928b: 0x6c36d420, - 0x2928e: 0x6c2fc420, - 0x29290: 0x6cc7e220, - 0x29296: 0x6c36d620, - 0x2929e: 0x6d0ef020, 0x2929f: 0x6cd8f820, - 0x292a5: 0x6d1cc020, 0x292a6: 0x6ca61620, 0x292a7: 0x6ca61820, - 0x292a8: 0x6d158e20, - 0x292b9: 0x6c9c9820, - 0x292be: 0x6d129820, 0x292bf: 0x6cb32620, - // Block 0xa4b, offset 0x292c0 - 0x292c0: 0x6c240420, 0x292c2: 0x6cf11820, - 0x292c4: 0x6c4d8820, 0x292c5: 0x6d1c2820, 0x292c7: 0x6ce6a020, - 0x292c8: 0x6d375e20, 0x292c9: 0x6c3a2a20, 0x292ca: 0x6d1f9420, - 0x292cd: 0x6c7cb020, 0x292ce: 0x6c01e220, 0x292cf: 0x6c03d220, - 0x292d1: 0x6c4f3420, - 0x292de: 0x6ca41620, 0x292df: 0x6ca3da20, - 0x292e2: 0x6c6df420, - 0x292e5: 0x6ceece20, - 0x292f1: 0x6c1f8e20, 0x292f3: 0x6cddbe20, - 0x292f4: 0x6ce20020, 0x292f5: 0x6cb6a620, 0x292f6: 0x6ce16620, 0x292f7: 0x6cf05a20, - 0x292f8: 0x6c41fc20, 0x292fa: 0x6c446420, - 0x292fc: 0x6c4f3820, 0x292fe: 0x6ca37420, 0x292ff: 0x6c446620, - // Block 0xa4c, offset 0x29300 - 0x29304: 0x6d331420, - 0x29317: 0x6cde2820, - 0x2931b: 0x6cd84c20, - 0x2931d: 0x6ca6de20, 0x2931e: 0x6cca9820, - 0x2932b: 0x6d012a20, - 0x2932f: 0x6d410220, - 0x29330: 0x6d21fc20, 0x29331: 0x6ca6e020, 0x29332: 0x6cb55420, - 0x29335: 0x6cd03220, - 0x2933c: 0x6c102020, - // Block 0xa4d, offset 0x29340 - 0x2934b: 0x6c7d9a20, - 0x2934c: 0x6c84c420, 0x2934e: 0x6c488220, - 0x29356: 0x6d0e1c20, 0x29357: 0x6c10d220, - 0x29358: 0x6c672a20, 0x2935a: 0x6cf40e20, 0x2935b: 0x6c134420, - 0x2935c: 0x6c8c0e20, 0x2935d: 0x6d3c0420, 0x2935f: 0x6c5b0e20, - 0x29361: 0x6ce7a620, 0x29362: 0x6d2ca220, - 0x29364: 0x6c522c20, 0x29367: 0x6c4ce220, - 0x29371: 0x6c6e4220, - 0x29375: 0x6c2f1620, 0x29377: 0x6d1cdc20, - 0x2937c: 0x6d377420, - // Block 0xa4e, offset 0x29380 - 0x29382: 0x6cf06620, - 0x29384: 0x6c62fa20, 0x29385: 0x6cc73620, - 0x29388: 0x6c030620, 0x29389: 0x6c292420, 0x2938a: 0x6c958a20, 0x2938b: 0x6d13a220, - 0x2938c: 0x6ceed220, - 0x29392: 0x6cbb3220, - 0x29399: 0x6c446c20, 0x2939a: 0x6c62fc20, - 0x293a6: 0x6d409620, - 0x293a8: 0x6d15a620, 0x293ab: 0x6d2ca420, - 0x293ad: 0x6c8b8c20, - 0x293b4: 0x6d13a820, - 0x293bc: 0x6d2dd420, - // Block 0xa4f, offset 0x293c0 - 0x293c0: 0x6c1e1620, 0x293c1: 0x6c0c6620, - 0x293c6: 0x6d077020, 0x293c7: 0x6d1eda20, - 0x293cd: 0x6d029a20, 0x293ce: 0x6cef7c20, 0x293cf: 0x6c87ca20, - 0x293db: 0x6c0fdc20, - 0x293dc: 0x6c664c20, 0x293dd: 0x6c158220, 0x293de: 0x6c7d9e20, - 0x293e1: 0x6cbe9a20, - 0x293e7: 0x6cd6ce20, - 0x293e8: 0x6cf76420, 0x293e9: 0x6cc23620, - 0x293f0: 0x6c95a020, 0x293f3: 0x6c294c20, - 0x293f4: 0x6ca71020, 0x293f5: 0x6c855a20, 0x293f7: 0x6c03e420, - 0x293f9: 0x6c365220, 0x293fa: 0x6c3d7a20, 0x293fb: 0x6c400620, - 0x293fc: 0x6c5d1220, 0x293fd: 0x6d2cd820, 0x293fe: 0x6c014420, - // Block 0xa50, offset 0x29400 - 0x29401: 0x6cc09620, 0x29402: 0x6c1dd620, 0x29403: 0x6c9e3c20, - 0x29404: 0x6d0aa620, 0x29405: 0x6ce92420, 0x29406: 0x6ca60c20, 0x29407: 0x6c570220, - 0x29408: 0x6cd50a20, 0x2940a: 0x6d05f620, 0x2940b: 0x6d384620, - 0x2940c: 0x6c776220, - 0x29412: 0x6cfee220, 0x29413: 0x6cfee420, - 0x29414: 0x6c22d420, 0x29415: 0x6c1c3c20, 0x29417: 0x6c2dd220, - 0x29418: 0x6d181420, 0x2941a: 0x6c2f6420, - 0x2941d: 0x6c4ef620, 0x2941e: 0x6cece420, - 0x29420: 0x6d160220, 0x29421: 0x6c066020, 0x29422: 0x6d184220, - 0x29427: 0x6d0a9e20, - 0x2942c: 0x6cfdd420, - 0x29433: 0x6c08a420, - 0x29436: 0x6c6b3020, 0x29437: 0x6c43a620, - 0x29438: 0x6d2b5620, 0x2943a: 0x6d326a20, 0x2943b: 0x6c55aa20, - 0x2943c: 0x6cf6b420, 0x2943d: 0x6d02e820, 0x2943e: 0x6cff1220, 0x2943f: 0x6c404e20, - // Block 0xa51, offset 0x29440 - 0x29440: 0x6d383c20, 0x29442: 0x6c99b620, 0x29443: 0x6d02ea20, - 0x29444: 0x6cbad820, - 0x29448: 0x6c3b9220, 0x29449: 0x6c049820, 0x2944a: 0x6c583220, - 0x29451: 0x6c687620, 0x29453: 0x6c066620, - 0x29454: 0x6d0af820, 0x29455: 0x6d114020, - 0x2945b: 0x6cf8d820, - 0x2945d: 0x6c729e20, 0x2945f: 0x6cc27c20, - 0x29460: 0x6d26f020, 0x29461: 0x6cdf4220, 0x29462: 0x6ce81820, 0x29463: 0x6ca16c20, - 0x29464: 0x6d2c5420, 0x29465: 0x6cc1ce20, 0x29467: 0x6c3da620, - 0x29469: 0x6cc1d020, 0x2946a: 0x6c1c7e20, - 0x2946c: 0x6d1f7c20, - 0x29477: 0x6ce38620, - 0x2947a: 0x6cebf020, - 0x2947d: 0x6ceb5620, 0x2947f: 0x6c1eb220, - // Block 0xa52, offset 0x29480 - 0x29481: 0x6c43b020, - 0x29488: 0x6d251620, 0x29489: 0x6c43b220, 0x2948a: 0x6cc1d220, - 0x2948f: 0x6c72a020, - 0x29492: 0x6c2ef820, 0x29493: 0x6d157e20, - 0x29494: 0x6cd20820, 0x29495: 0x6d18e420, 0x29497: 0x6c4b2020, - 0x29498: 0x6c680420, 0x2949a: 0x6cd94420, 0x2949b: 0x6cbf7220, - 0x2949d: 0x6c36c220, 0x2949e: 0x6c59a420, 0x2949f: 0x6c5b4620, - 0x294a0: 0x6d0a4620, 0x294a3: 0x6c717020, - 0x294a5: 0x6d2d2220, 0x294a6: 0x6c1c8220, 0x294a7: 0x6c81c020, - 0x294a9: 0x6cb66820, 0x294aa: 0x6d050420, - 0x294ac: 0x6c5af620, 0x294ad: 0x6ce79820, - 0x294ba: 0x6c407220, - 0x294bd: 0x6d0a4820, 0x294be: 0x6c6b4e20, 0x294bf: 0x6c9d0620, - // Block 0xa53, offset 0x294c0 - 0x294c0: 0x6d242820, - 0x294c8: 0x6d3c4a20, 0x294c9: 0x6c688e20, 0x294ca: 0x6d373820, 0x294cb: 0x6c1a5220, - 0x294cd: 0x6c6b6c20, 0x294ce: 0x6cff3220, 0x294cf: 0x6c18f220, - 0x294d0: 0x6c848220, 0x294d1: 0x6d26fe20, 0x294d3: 0x6d373a20, - 0x294d4: 0x6c818820, 0x294d5: 0x6cf32c20, 0x294d6: 0x6cc1ea20, - 0x294d8: 0x6cedce20, 0x294da: 0x6d142e20, 0x294db: 0x6d190420, - 0x294dc: 0x6c80f220, 0x294de: 0x6ce7fa20, 0x294df: 0x6c015c20, - 0x294e0: 0x6c74e420, 0x294e1: 0x6d0ee420, - 0x294e5: 0x6c72b020, 0x294e7: 0x6d327620, - 0x294e9: 0x6d373c20, 0x294ea: 0x6c98a820, - 0x294ee: 0x6d055420, - 0x294f1: 0x6c208020, 0x294f2: 0x6c1e6c20, - 0x294f8: 0x6cbafc20, 0x294f9: 0x6c3a2620, 0x294fa: 0x6c16d420, - 0x294fc: 0x6c9dec20, 0x294fd: 0x6cdb5a20, 0x294fe: 0x6c02b820, - // Block 0xa54, offset 0x29500 - 0x29500: 0x6c3f9620, - 0x29504: 0x6cf10620, 0x29505: 0x6d342420, 0x29506: 0x6c9f8220, 0x29507: 0x6c168820, - 0x29508: 0x6d0cfa20, 0x29509: 0x6d245820, 0x2950b: 0x6c408a20, - 0x2950c: 0x6cded020, 0x2950d: 0x6c616020, 0x2950f: 0x6c3aee20, - 0x29512: 0x6c55f620, 0x29513: 0x6c70e220, - 0x29515: 0x6d22ac20, - 0x2951b: 0x6cb69220, - 0x2951c: 0x6c9a3820, 0x2951f: 0x6c0ccc20, - 0x29520: 0x6c4cd820, - 0x29524: 0x6ca04c20, 0x29526: 0x6ced5e20, 0x29527: 0x6ced6020, - 0x29534: 0x6c6dec20, 0x29535: 0x6d245a20, 0x29536: 0x6cfbce20, - 0x29539: 0x6c212a20, 0x2953a: 0x6c60f820, - 0x2953c: 0x6cfd9620, 0x2953d: 0x6cae4420, 0x2953e: 0x6c409220, - // Block 0xa55, offset 0x29540 - 0x29542: 0x6c8ed820, - 0x29544: 0x6cc9da20, 0x29545: 0x6d08f020, 0x29546: 0x6d409220, - 0x29548: 0x6c6b7e20, 0x2954b: 0x6d2dc220, - 0x2954d: 0x6d21e820, 0x2954e: 0x6d21ea20, 0x2954f: 0x6c9a4020, - 0x29550: 0x6c9ea820, 0x29551: 0x6c99c020, 0x29552: 0x6c346a20, 0x29553: 0x6c409420, - 0x2955b: 0x6c671820, - 0x29566: 0x6c9e8420, - 0x29568: 0x6c023a20, - 0x2956d: 0x6c78e620, - 0x29576: 0x6c544420, - 0x2957a: 0x6c46e420, - 0x2957c: 0x6cf74c20, 0x2957e: 0x6cc6e820, 0x2957f: 0x6c43be20, - // Block 0xa56, offset 0x29580 - 0x29580: 0x6cac9220, 0x29581: 0x6d25d420, 0x29582: 0x6cfa5e20, - 0x29585: 0x6ccc2e20, 0x29586: 0x6cafa620, - 0x29588: 0x6cbe9620, 0x29589: 0x6d1dde20, 0x2958a: 0x6cc20220, - 0x2958c: 0x6c462820, 0x2958e: 0x6c446820, 0x2958f: 0x6cfb0820, - 0x29591: 0x6cdb6820, - 0x29595: 0x6c04ae20, 0x29596: 0x6cb6a820, 0x29597: 0x6c548820, - 0x2959b: 0x6cf74e20, - 0x2959d: 0x6cf39220, - 0x295ad: 0x6cb55620, 0x295ae: 0x6c56ec20, 0x295af: 0x6c4aae20, - 0x295b1: 0x6c2bbc20, 0x295b2: 0x6cce2c20, 0x295b3: 0x6c975220, - 0x295b4: 0x6c9fde20, 0x295b5: 0x6c62ea20, 0x295b6: 0x6cf7c820, 0x295b7: 0x6cfb1020, - 0x295b8: 0x6c610220, 0x295b9: 0x6c16d820, 0x295ba: 0x6c7a1220, 0x295bb: 0x6c1cfc20, - // Block 0xa57, offset 0x295c0 - 0x295c2: 0x6d2ef020, 0x295c3: 0x6cb1aa20, - 0x295c4: 0x6cdb6c20, 0x295c5: 0x6c94cc20, 0x295c6: 0x6c84c620, 0x295c7: 0x6c9c2020, - 0x295c8: 0x6c1cfe20, 0x295c9: 0x6ce47c20, 0x295cb: 0x6c8da820, - 0x295cd: 0x6c1c9a20, - 0x295d6: 0x6c1d0020, - 0x295d9: 0x6c1c9c20, - 0x295dd: 0x6ca7c820, 0x295df: 0x6d1e0a20, - 0x295ee: 0x6c9db020, - 0x295f0: 0x6cd51e20, 0x295f2: 0x6cf93820, - 0x295f4: 0x6c36f620, 0x295f5: 0x6d3ec820, - 0x295f8: 0x6c6b8420, 0x295f9: 0x6c5faa20, 0x295fa: 0x6c53e820, 0x295fb: 0x6cd18220, - 0x295fc: 0x6c879c20, 0x295fe: 0x6cb55c20, - // Block 0xa58, offset 0x29600 - 0x29600: 0x6d38c620, 0x29601: 0x6cd85820, 0x29602: 0x6cc21e20, - 0x2960b: 0x6d013420, - 0x29617: 0x6cd85a20, - 0x2961b: 0x6d061220, - 0x29620: 0x6c409e20, - 0x2962f: 0x6ca9e620, - 0x29630: 0x6d0bd020, 0x29631: 0x6c8ef020, 0x29632: 0x6c643420, 0x29633: 0x6c4ab020, - 0x29634: 0x6c7cc020, 0x29635: 0x6c1ca220, 0x29636: 0x6c121620, 0x29637: 0x6c1ed020, - 0x29639: 0x6c4c5020, 0x2963b: 0x6c285a20, - 0x2963f: 0x6c672e20, - // Block 0xa59, offset 0x29640 - 0x29641: 0x6c292620, 0x29642: 0x6c548c20, - 0x29644: 0x6c7a1420, 0x29646: 0x6c1f9220, 0x29647: 0x6cb96220, - 0x29648: 0x6c010c20, 0x2964a: 0x6cb0e420, - 0x29651: 0x6d0abc20, 0x29652: 0x6c6dfc20, 0x29653: 0x6c9c2620, - 0x29655: 0x6c0d7a20, 0x29656: 0x6c801620, 0x29657: 0x6c47fa20, - 0x29658: 0x6c1e1420, 0x2965b: 0x6d1dec20, - 0x2965c: 0x6c488420, 0x2965d: 0x6d220a20, 0x2965e: 0x6d397420, - 0x2966d: 0x6c115820, 0x2966f: 0x6c8ef420, - 0x29670: 0x6c105420, 0x29671: 0x6c965820, 0x29672: 0x6c6b8c20, 0x29673: 0x6d31a820, - 0x29674: 0x6c9f2220, 0x29675: 0x6c4a1620, 0x29677: 0x6c63f820, - 0x29679: 0x6c7ed220, - // Block 0xa5a, offset 0x29680 - 0x29680: 0x6cd48c20, 0x29683: 0x6c4c5220, - 0x29686: 0x6c9c2820, 0x29687: 0x6cb9ea20, - 0x29688: 0x6c7f8420, 0x2968a: 0x6c51b220, 0x2968b: 0x6ce97c20, - 0x29691: 0x6c5b1020, - 0x29698: 0x6c52e620, - 0x2969c: 0x6c93c820, 0x2969f: 0x6c63fa20, - 0x296a5: 0x6c4ab220, - 0x296a8: 0x6d144420, 0x296a9: 0x6c585420, - 0x296b0: 0x6c95a220, - 0x296b4: 0x6c754620, - 0x296b8: 0x6c49ce20, 0x296bb: 0x6cc34820, - 0x296bc: 0x6ca7cc20, 0x296bf: 0x6c97b220, - // Block 0xa5b, offset 0x296c0 - 0x296c2: 0x6d282420, 0x296c3: 0x6cf18a20, - 0x296c4: 0x6c1c0c20, 0x296c5: 0x6c1c1820, 0x296c6: 0x6d33dc20, - 0x296c8: 0x6c224420, 0x296c9: 0x6d3c3e20, 0x296ca: 0x6c573c20, 0x296cb: 0x6c6ac020, - 0x296cc: 0x6cc19e20, 0x296cd: 0x6ce86620, 0x296ce: 0x6c9f6a20, 0x296cf: 0x6c9a2020, - 0x296d0: 0x6d218020, 0x296d1: 0x6c026e20, 0x296d2: 0x6c049a20, - 0x296d4: 0x6caf8c20, 0x296d5: 0x6d31a420, 0x296d6: 0x6c91d020, 0x296d7: 0x6c1c5420, - 0x296d8: 0x6ce7f620, 0x296da: 0x6c6a3420, - 0x296dc: 0x6d2da420, - 0x296e2: 0x6c6c6820, 0x296e3: 0x6c91f020, - 0x296e6: 0x6c670a20, 0x296e7: 0x6ce0b420, - 0x296e8: 0x6c168a20, 0x296ea: 0x6c22ee20, - 0x296ed: 0x6cec5c20, 0x296ee: 0x6c240620, 0x296ef: 0x6c771a20, - 0x296f1: 0x6c0bd820, - 0x296f8: 0x6cf17620, 0x296fb: 0x6cb95620, - 0x296ff: 0x6c424220, - // Block 0xa5c, offset 0x29700 - 0x29702: 0x6c5ca220, - 0x29704: 0x6c420620, 0x29706: 0x6c630020, 0x29707: 0x6c424620, - 0x29709: 0x6c580820, - 0x2970d: 0x6cd8dc20, - 0x29710: 0x6c3d9a20, - 0x29715: 0x6cb01620, 0x29717: 0x6c10d620, - 0x2971c: 0x6c07c620, - 0x29722: 0x6cd2dc20, - 0x29725: 0x6c58b020, 0x29727: 0x6c4a9420, - 0x2972a: 0x6cab9620, - 0x29733: 0x6cad7020, - 0x29735: 0x6d1d2020, 0x29736: 0x6ce6e620, 0x29737: 0x6d001820, - 0x29739: 0x6d3b3620, 0x2973b: 0x6d21d220, - // Block 0xa5d, offset 0x29740 - 0x29741: 0x6c66fa20, - 0x29744: 0x6cc25420, 0x29745: 0x6ced6220, 0x29746: 0x6c7d9220, 0x29747: 0x6d3c7220, - 0x29749: 0x6d245c20, 0x2974a: 0x6c4cda20, 0x2974b: 0x6cb2de20, - 0x2974c: 0x6d41a420, 0x2974d: 0x6d40fa20, 0x2974f: 0x6d39e820, - 0x29750: 0x6caa9c20, 0x29751: 0x6d39ea20, - 0x29756: 0x6cb17620, 0x29757: 0x6c9cac20, - 0x2975c: 0x6c0ad220, 0x2975d: 0x6cdb6e20, - 0x29761: 0x6cb47a20, 0x29762: 0x6c9cc420, - 0x2976b: 0x6d13a620, - 0x2976c: 0x6d22b420, 0x2976e: 0x6d249620, - 0x29770: 0x6d3a9420, 0x29773: 0x6c8dc220, - 0x2977a: 0x6caa3620, - 0x2977e: 0x6c8d3020, - // Block 0xa5e, offset 0x29780 - 0x29780: 0x6c8a7020, 0x29782: 0x6ceace20, - 0x29784: 0x6c08f020, 0x29785: 0x6ca36a20, 0x29786: 0x6cc1bc20, - 0x29788: 0x6cb01820, 0x29789: 0x6c30f420, 0x2978a: 0x6ca86e20, 0x2978b: 0x6cea6820, - 0x2978d: 0x6c5f2620, 0x2978f: 0x6c8d5420, - 0x29793: 0x6c7aaa20, - 0x29794: 0x6cdb2c20, - 0x29798: 0x6ce81a20, - 0x2979e: 0x6ca38620, 0x2979f: 0x6d2b0c20, - 0x297a2: 0x6ce7c420, 0x297a3: 0x6c444a20, - 0x297a4: 0x6c331820, 0x297a7: 0x6c6b5020, - 0x297a9: 0x6ce4c820, 0x297aa: 0x6ce5e220, 0x297ab: 0x6c1b6020, - 0x297ac: 0x6cc14e20, 0x297ae: 0x6ccc2820, - 0x297b0: 0x6c0f9e20, 0x297b1: 0x6c848420, 0x297b3: 0x6c963a20, - 0x297b5: 0x6c8a4420, 0x297b6: 0x6cd62620, 0x297b7: 0x6c2ad220, - 0x297b9: 0x6c1ae620, 0x297ba: 0x6c9f0220, - 0x297bc: 0x6ce24e20, 0x297bd: 0x6c5d0c20, 0x297bf: 0x6ca7e220, - // Block 0xa5f, offset 0x297c0 - 0x297c1: 0x6c75fe20, 0x297c2: 0x6c56dc20, - 0x297c4: 0x6c932e20, 0x297c5: 0x6d138820, 0x297c7: 0x6ca18620, - 0x297c8: 0x6c17c820, - 0x297cc: 0x6cddd420, 0x297ce: 0x6c784220, 0x297cf: 0x6c409620, - 0x297d1: 0x6c17aa20, - 0x297d4: 0x6cddbc20, 0x297d7: 0x6cbfe220, - 0x297db: 0x6cdb6a20, - 0x297dd: 0x6d287620, 0x297df: 0x6cddc220, - 0x297e0: 0x6c7a7020, 0x297e1: 0x6c0fc420, 0x297e3: 0x6c90fe20, - 0x297e4: 0x6ca1a220, 0x297e6: 0x6c88e220, 0x297e7: 0x6d08d220, - 0x297e8: 0x6cddc420, 0x297e9: 0x6c97aa20, 0x297ea: 0x6c0ad420, - 0x297f2: 0x6ce44820, - 0x297f4: 0x6c88a620, 0x297f5: 0x6ce04a20, 0x297f6: 0x6ccdf220, - 0x297f8: 0x6cc22820, 0x297f9: 0x6c320820, 0x297fa: 0x6c58d420, 0x297fb: 0x6ccb0e20, - 0x297ff: 0x6c7c2620, - // Block 0xa60, offset 0x29800 - 0x29803: 0x6ca8dc20, - 0x29805: 0x6ca8de20, 0x29806: 0x6c95a420, 0x29807: 0x6d425c20, - 0x29808: 0x6d174e20, 0x29809: 0x6cfcc020, 0x2980a: 0x6c179820, 0x2980b: 0x6ce61220, - 0x29812: 0x6cd79620, - 0x29814: 0x6c9d0020, 0x29817: 0x6c9c7220, - 0x2981b: 0x6ced5220, - 0x2981d: 0x6c07c820, 0x2981e: 0x6cbae020, - 0x29820: 0x6ca0b020, 0x29823: 0x6c8eca20, - 0x29824: 0x6cf32e20, 0x29826: 0x6c9a7020, - 0x29828: 0x6ce7fe20, 0x2982b: 0x6ca25a20, - 0x2982d: 0x6c9a4420, - 0x29832: 0x6d42b620, - 0x29834: 0x6cea6420, 0x29835: 0x6c778c20, 0x29836: 0x6cea6a20, - 0x2983a: 0x6c184c20, 0x2983b: 0x6d336a20, - 0x2983d: 0x6c1cec20, 0x2983e: 0x6ce47820, - // Block 0xa61, offset 0x29840 - 0x29840: 0x6d372020, 0x29841: 0x6c153420, 0x29842: 0x6c153e20, - 0x29845: 0x6cbe5c20, 0x29846: 0x6cea3420, 0x29847: 0x6c5b7a20, - 0x29848: 0x6cc41420, 0x29849: 0x6d2dba20, 0x2984a: 0x6c652c20, 0x2984b: 0x6c154c20, - 0x2984d: 0x6c5a2620, 0x2984f: 0x6c5b0620, - 0x29850: 0x6c1b6a20, 0x29852: 0x6c5a2820, 0x29853: 0x6c528220, - 0x29854: 0x6d280820, 0x29856: 0x6ce94020, 0x29857: 0x6c0b1c20, - 0x29859: 0x6c5a3620, 0x2985a: 0x6d280a20, - 0x2985f: 0x6ca1a420, - 0x29860: 0x6c45c420, 0x29862: 0x6c45c620, - 0x29864: 0x6c4bb020, 0x29866: 0x6c157820, - 0x29868: 0x6cc42220, 0x29869: 0x6cc8ee20, 0x2986a: 0x6c7c2820, 0x2986b: 0x6cb1c220, - 0x2986e: 0x6cc80220, - 0x29872: 0x6ca9a220, 0x29873: 0x6c56c820, - 0x29874: 0x6c6cb820, 0x29875: 0x6ca6d220, 0x29876: 0x6c067420, - 0x29878: 0x6ca65620, 0x2987a: 0x6c0a8420, 0x2987b: 0x6c55d820, - 0x2987c: 0x6c846a20, 0x2987f: 0x6d39dc20, - // Block 0xa62, offset 0x29880 - 0x29880: 0x6ca2fc20, 0x29882: 0x6cc36620, 0x29883: 0x6c3cd220, - 0x29884: 0x6c090020, 0x29885: 0x6c84a020, 0x29886: 0x6c0d0820, 0x29887: 0x6ca70e20, - 0x29888: 0x6c304820, 0x2988b: 0x6c88a020, - 0x2988c: 0x6ca6e420, 0x2988d: 0x6c88a820, 0x2988e: 0x6c968820, 0x2988f: 0x6d30ca20, - 0x29893: 0x6c639420, - 0x29894: 0x6d15a820, 0x29896: 0x6c904c20, - 0x29898: 0x6d181820, - 0x2989d: 0x6c278e20, 0x2989e: 0x6c327820, - 0x298a3: 0x6d160c20, - 0x298a5: 0x6cdf8220, 0x298a6: 0x6c4f5420, 0x298a7: 0x6cd61620, - 0x298ac: 0x6cece820, 0x298ae: 0x6cdb2e20, 0x298af: 0x6d11d820, - 0x298b0: 0x6c37e020, 0x298b2: 0x6d326e20, - 0x298ba: 0x6c313e20, 0x298bb: 0x6c651220, - 0x298bf: 0x6cace620, - // Block 0xa63, offset 0x298c0 - 0x298c0: 0x6c5afe20, 0x298c2: 0x6c145420, 0x298c3: 0x6ccd1c20, - 0x298c4: 0x6c916620, 0x298c6: 0x6d244c20, - 0x298c8: 0x6d0ef420, 0x298c9: 0x6ced6420, 0x298ca: 0x6cbc6e20, 0x298cb: 0x6c953420, - 0x298cc: 0x6d245e20, 0x298cf: 0x6ce90620, - 0x298d0: 0x6cf10820, 0x298d2: 0x6cea8e20, - 0x298d5: 0x6c5d1820, 0x298d6: 0x6c079020, 0x298d7: 0x6cbd0620, - 0x298d9: 0x6c6c7420, 0x298da: 0x6c7f3620, - 0x298dc: 0x6d356620, 0x298dd: 0x6d21ec20, 0x298df: 0x6c22f020, - 0x298e6: 0x6d139420, 0x298e7: 0x6c2f0c20, - 0x298e8: 0x6c145820, 0x298e9: 0x6c2d9a20, 0x298ea: 0x6c97a220, - 0x298ec: 0x6c2afc20, 0x298ed: 0x6ceed020, 0x298ee: 0x6ca75020, 0x298ef: 0x6c835e20, - 0x298f0: 0x6c0db820, 0x298f1: 0x6cf39420, 0x298f3: 0x6d320820, - 0x298f6: 0x6cc77420, 0x298f7: 0x6cec7c20, - 0x298f8: 0x6c9dac20, 0x298f9: 0x6c6c1020, 0x298fb: 0x6c544620, - 0x298fd: 0x6d2d5620, 0x298fe: 0x6cc80a20, 0x298ff: 0x6d3ec620, - // Block 0xa64, offset 0x29900 - 0x29900: 0x6cac9420, 0x29902: 0x6ca1a620, - 0x29904: 0x6c9db220, 0x29906: 0x6cb55820, 0x29907: 0x6ca1a820, - 0x2990a: 0x6d342c20, 0x2990b: 0x6c04b020, - 0x2990d: 0x6c9f1820, 0x2990f: 0x6c933e20, - 0x29911: 0x6cb55e20, 0x29912: 0x6c1d0420, - 0x29914: 0x6c84d220, 0x29915: 0x6d196e20, - 0x29918: 0x6c2b0620, 0x29919: 0x6c25d220, 0x2991b: 0x6c339020, - 0x2991c: 0x6c96e820, 0x2991d: 0x6d0e2c20, 0x2991f: 0x6d2bba20, - 0x29920: 0x6d0e2e20, 0x29921: 0x6c339220, 0x29922: 0x6cb42620, - 0x29925: 0x6d273020, - 0x29929: 0x6c5e5c20, 0x2992a: 0x6c975420, 0x2992b: 0x6c664620, - 0x2992c: 0x6ca9e820, 0x2992d: 0x6cbdc020, 0x2992f: 0x6cbdc220, - 0x29932: 0x6d13aa20, - 0x29934: 0x6cdf5420, - 0x29939: 0x6c655c20, - 0x2993c: 0x6c141620, 0x2993e: 0x6c28f220, 0x2993f: 0x6ce2e220, - // Block 0xa65, offset 0x29940 - 0x29940: 0x6c87ce20, 0x29943: 0x6ca77c20, - 0x29944: 0x6c158420, 0x29945: 0x6d29f620, - 0x2994a: 0x6d24b820, - 0x2994c: 0x6d41e220, 0x2994d: 0x6c0b2020, - 0x29950: 0x6c1ef820, - 0x29958: 0x6cc48c20, 0x2995a: 0x6cc49820, 0x2995b: 0x6d0f7020, - 0x2995c: 0x6c0fe820, - 0x29961: 0x6c247820, - 0x2996c: 0x6c9cae20, 0x2996e: 0x6c787420, - 0x29970: 0x6c248420, - 0x29977: 0x6cf7ce20, - 0x29979: 0x6c968a20, 0x2997b: 0x6cd22020, - 0x2997c: 0x6c2d0420, 0x2997f: 0x6cd22220, - // Block 0xa66, offset 0x29980 - 0x29982: 0x6c2f7620, 0x29983: 0x6c6ee420, - 0x29985: 0x6d25a820, 0x29986: 0x6c41b220, - 0x2998a: 0x6c5ca420, 0x2998b: 0x6c5f4e20, - 0x2998d: 0x6caed420, 0x2998f: 0x6c2ab220, - 0x29991: 0x6c085e20, - 0x29994: 0x6cacea20, 0x29995: 0x6cded420, 0x29997: 0x6d252220, - 0x29998: 0x6c42ee20, 0x29999: 0x6d252420, - 0x2999f: 0x6c639220, - 0x299a3: 0x6c799020, - 0x299a6: 0x6c309820, - 0x299a9: 0x6cfbd820, 0x299aa: 0x6cb80620, - 0x299ac: 0x6cca7c20, - 0x299b0: 0x6d1b9820, 0x299b3: 0x6c901a20, - 0x299b6: 0x6ce29a20, 0x299b7: 0x6c902420, - 0x299ba: 0x6cc60820, - 0x299bd: 0x6d1b9020, 0x299be: 0x6cb2d820, 0x299bf: 0x6cb41c20, - // Block 0xa67, offset 0x299c0 - 0x299c0: 0x6d25be20, 0x299c1: 0x6cc72a20, 0x299c3: 0x6c399e20, - 0x299c7: 0x6c4f5820, - 0x299c8: 0x6c9c8820, 0x299c9: 0x6c55ea20, 0x299ca: 0x6d3eb620, - 0x299cc: 0x6c8d7e20, 0x299cd: 0x6c6eea20, 0x299ce: 0x6cc72e20, - 0x299d2: 0x6cb2e020, 0x299d3: 0x6c49fc20, - 0x299d4: 0x6c37ae20, - 0x299dd: 0x6c247e20, 0x299de: 0x6c760020, - 0x299e6: 0x6d052a20, - 0x299e8: 0x6c377a20, 0x299e9: 0x6ce44420, 0x299eb: 0x6d0ff820, - 0x299ed: 0x6c010a20, 0x299ee: 0x6c560820, 0x299ef: 0x6cf7ca20, - 0x299f1: 0x6c560a20, 0x299f3: 0x6cd85220, - 0x299f4: 0x6c854e20, 0x299f6: 0x6d197020, 0x299f7: 0x6c47f620, - 0x299f9: 0x6ce16a20, - // Block 0xa68, offset 0x29a00 - 0x29a00: 0x6cc42420, 0x29a01: 0x6d3fe620, 0x29a02: 0x6c84de20, - 0x29a04: 0x6c69ec20, 0x29a07: 0x6c38fe20, - 0x29a08: 0x6cb47e20, 0x29a09: 0x6cd86620, 0x29a0b: 0x6c6b9020, - 0x29a0c: 0x6c91b220, 0x29a0d: 0x6c87d020, 0x29a0e: 0x6c158620, - 0x29a10: 0x6d122220, - 0x29a15: 0x6c5b0020, - 0x29a19: 0x6c53e420, 0x29a1a: 0x6c2cea20, 0x29a1b: 0x6cc0be20, - 0x29a1c: 0x6c74f820, 0x29a1e: 0x6cb0d420, - 0x29a22: 0x6c7c5220, - 0x29a25: 0x6cf82820, 0x29a26: 0x6ce30c20, - 0x29a29: 0x6d076820, - 0x29a2f: 0x6c0b6220, - 0x29a32: 0x6c50b020, 0x29a33: 0x6c88ac20, - 0x29a36: 0x6cdb7620, 0x29a37: 0x6c8ab220, - 0x29a3c: 0x6c6c7820, - // Block 0xa69, offset 0x29a40 - 0x29a41: 0x6c87d220, 0x29a42: 0x6c158820, - 0x29a45: 0x6cb65a20, 0x29a46: 0x6cb66c20, - 0x29a49: 0x6d3ec020, 0x29a4b: 0x6d3ec420, - 0x29a4d: 0x6cb6b220, 0x29a4f: 0x6cb6b820, - 0x29a50: 0x6d3ed020, 0x29a52: 0x6d2d1020, 0x29a53: 0x6d2d1420, - 0x29a54: 0x6cabec20, 0x29a56: 0x6c70d820, - 0x29a59: 0x6d0df420, - 0x29a5c: 0x6c4f8c20, 0x29a5d: 0x6ca37020, - 0x29a64: 0x6d0e0220, 0x29a66: 0x6d2e9c20, 0x29a67: 0x6cd2e020, - 0x29a68: 0x6d34ba20, - 0x29a6d: 0x6d2c0a20, - 0x29a74: 0x6cc73420, 0x29a75: 0x6d2c0c20, 0x29a77: 0x6d195820, - 0x29a78: 0x6ca02820, 0x29a79: 0x6d0b4020, 0x29a7b: 0x6d376620, - 0x29a7d: 0x6c7e3020, 0x29a7e: 0x6cfa1c20, - // Block 0xa6a, offset 0x29a80 - 0x29a80: 0x6cb13820, 0x29a81: 0x6cdeec20, 0x29a83: 0x6d162a20, - 0x29a86: 0x6d051620, 0x29a87: 0x6d2d0c20, - 0x29a89: 0x6c34c420, 0x29a8a: 0x6c36e420, - 0x29a8e: 0x6d1ab420, - 0x29a90: 0x6c36ee20, 0x29a91: 0x6cdb8e20, 0x29a92: 0x6c016420, 0x29a93: 0x6c260420, - 0x29a95: 0x6ceb6420, 0x29a97: 0x6ceb6620, - 0x29a98: 0x6cfa1e20, 0x29a9b: 0x6c21ea20, - 0x29a9d: 0x6cdb9020, - 0x29aa5: 0x6c62f420, 0x29aa6: 0x6cba3620, 0x29aa7: 0x6d410420, - 0x29aa8: 0x6d2d0e20, 0x29aa9: 0x6d280e20, 0x29aaa: 0x6d2ea620, - 0x29aac: 0x6d159c20, - 0x29ab2: 0x6d0b4220, 0x29ab3: 0x6d266020, - 0x29ab9: 0x6c51ac20, 0x29aba: 0x6cb88820, - 0x29abe: 0x6c13c220, - // Block 0xa6b, offset 0x29ac0 - 0x29ac3: 0x6cab7020, - 0x29ac8: 0x6c560c20, 0x29aca: 0x6d0f2020, - 0x29acc: 0x6cbd0e20, 0x29acd: 0x6c0fd820, 0x29ace: 0x6cbafe20, 0x29acf: 0x6c6c1420, - 0x29adb: 0x6ca6e820, - 0x29ade: 0x6c162420, 0x29adf: 0x6cbdf620, - 0x29ae1: 0x6d2a3220, - 0x29ae4: 0x6d1b3220, 0x29ae5: 0x6d029c20, 0x29ae7: 0x6cb6ba20, - 0x29ae8: 0x6c673420, 0x29aeb: 0x6d061420, - 0x29aed: 0x6d2bbc20, 0x29aef: 0x6c370420, - 0x29af3: 0x6d40a020, - 0x29af4: 0x6d163220, - 0x29af9: 0x6d34c820, 0x29afa: 0x6c87d420, - 0x29afd: 0x6c87d620, 0x29afe: 0x6d1aba20, - // Block 0xa6c, offset 0x29b00 - 0x29b01: 0x6c88b220, 0x29b03: 0x6c158a20, - 0x29b05: 0x6c754820, 0x29b07: 0x6d28e620, - 0x29b0e: 0x6d2d1620, 0x29b0f: 0x6cb12220, - 0x29b11: 0x6c8fd220, 0x29b13: 0x6c8fd420, - 0x29b18: 0x6c8fe220, - 0x29b1d: 0x6c900020, - 0x29b20: 0x6c900c20, 0x29b22: 0x6c98b220, - 0x29b25: 0x6d30d020, - 0x29b2c: 0x6c423a20, 0x29b2d: 0x6c466a20, 0x29b2e: 0x6cc49a20, 0x29b2f: 0x6c248020, - 0x29b30: 0x6c68aa20, - 0x29b37: 0x6c0fec20, - 0x29b39: 0x6d3b4c20, 0x29b3a: 0x6cbfe820, 0x29b3b: 0x6d0f7220, - // Block 0xa6d, offset 0x29b40 - 0x29b40: 0x6d003020, 0x29b42: 0x6c5b4820, 0x29b43: 0x6cc16c20, - 0x29b48: 0x6c8e0220, 0x29b4a: 0x6d1ab220, - 0x29b4e: 0x6cb0e820, - 0x29b52: 0x6c88b020, - // Block 0xa6e, offset 0x29b80 - 0x29b9d: 0x6c343c20, - // Block 0xa6f, offset 0x29bc0 - 0x29bc8: 0x6c040c20, - 0x29bcf: 0x6d2d9220, - // Block 0xa70, offset 0x29c00 - 0x29c2e: 0x6c943c20, - // Block 0xa71, offset 0x29c40 - 0x29c4a: 0x6cd94a20, - 0x29c57: 0x6c73ac20, - // Block 0xa72, offset 0x29c80 - 0x29c9d: 0x6d1d8e20, - // Block 0xa73, offset 0x29cc0 - 0x29cf9: 0x6caa5c20, - // Block 0xa74, offset 0x29d00 - 0x29d10: 0x6c230620, - // Block 0xa75, offset 0x29d40 - 0x29d62: 0x6cfc9220, - // Block 0xa76, offset 0x29d80 - 0x29da1: 0x6c85dc20, - // Block 0xa77, offset 0x29dc0 - 0x29dc8: 0x6c3abc20, - 0x29dd9: 0x6cdb3a20, - // Block 0xa78, offset 0x29e00 - 0x29e1c: 0x6c79dc20, - // Block 0xa79, offset 0x29e40 - 0x29e68: 0x6c1a9e20, - 0x29e78: 0x6d09b220, - // Block 0xa7a, offset 0x29e80 - 0x29eb0: 0x6cb86a20, - // Block 0xa7b, offset 0x29ec0 - 0x29ed0: 0x6c45fe20, - // Block 0xa7c, offset 0x29f00 - 0x29f00: 0x6c5ef220, - 0x29f28: 0x6c953a20, - // Block 0xa7d, offset 0x29f40 - 0x29f59: 0x6d165020, - 0x29f5f: 0x6d146820, - 0x29f62: 0x6ca49820, - 0x29f70: 0x6cf7de20, 0x29f72: 0x6cffaa20, - // Block 0xa7e, offset 0x29f80 - 0x29f8b: 0x6c73b020, - // Block 0xa7f, offset 0x29fc0 - 0x29fc4: 0x6d268220, 0x29fc6: 0x6c7b1020, - 0x29fc9: 0x6c8cc220, - 0x29fd0: 0x6ca5f020, 0x29fd3: 0x6c108a20, - // Block 0xa80, offset 0x2a000 - 0x2a036: 0x6c4e3a20, - // Block 0xa81, offset 0x2a040 - 0x2a067: 0x6c3d5820, - 0x2a069: 0x6c230a20, - // Block 0xa82, offset 0x2a080 - 0x2a08e: 0x6c74d220, - // Block 0xa83, offset 0x2a0c0 - 0x2a0e0: 0x6d2eb220, - 0x2a0e6: 0x6c109020, 0x2a0e7: 0x6cda9a20, - 0x2a0ee: 0x6c59cc20, - 0x2a0f4: 0x6d2da220, - // Block 0xa84, offset 0x2a100 - 0x2a11d: 0x6c73ea20, - 0x2a123: 0x6c4ea420, - 0x2a124: 0x6c003a20, - 0x2a128: 0x6ce33820, - // Block 0xa85, offset 0x2a140 - 0x2a148: 0x6d06ca20, 0x2a149: 0x6c534620, - 0x2a152: 0x6c3e4620, - 0x2a154: 0x6c5b4020, 0x2a155: 0x6cd1e620, - 0x2a159: 0x6cb41220, - // Block 0xa86, offset 0x2a180 - 0x2a19b: 0x6d33bc20, - 0x2a19e: 0x6c740c20, - 0x2a1a2: 0x6ca90020, - 0x2a1b6: 0x6c1c5220, - 0x2a1b8: 0x6ce36020, - // Block 0xa87, offset 0x2a1c0 - 0x2a1c0: 0x6c857420, 0x2a1c1: 0x6cecb420, 0x2a1c2: 0x6d144620, 0x2a1c3: 0x48024420, - 0x2a1c4: 0x6ca62220, 0x2a1c5: 0x6cf43220, 0x2a1c6: 0x6ce9f420, 0x2a1c7: 0x6c0e1020, - 0x2a1c8: 0x6d28b220, 0x2a1c9: 0x6c071c20, 0x2a1ca: 0x6ccbb820, 0x2a1cb: 0x6cfe3c20, - 0x2a1cc: 0x6c75ee20, 0x2a1cd: 0x6cddc620, 0x2a1ce: 0x6c9dfe20, 0x2a1cf: 0x6ce92020, - 0x2a1d0: 0x6c5a2a20, 0x2a1d1: 0x6c720620, 0x2a1d2: 0x480a3820, 0x2a1d3: 0x44697220, - 0x2a1d4: 0x6ca57e20, 0x2a1d5: 0x6d292620, 0x2a1d6: 0x480a9620, 0x2a1d7: 0x6cc6ec20, - 0x2a1d8: 0x6d24d020, 0x2a1d9: 0x6c0da020, 0x2a1da: 0x6c2fd820, 0x2a1db: 0x6c7bdc20, - 0x2a1dc: 0x6cbee220, 0x2a1dd: 0x6cb9ec20, 0x2a1de: 0x6cc5a020, 0x2a1df: 0x6cafae20, - 0x2a1e0: 0x6c787a20, 0x2a1e1: 0x6c95a620, 0x2a1e2: 0x6c438c20, 0x2a1e3: 0x6c15bc20, - 0x2a1e4: 0x6c5fc020, 0x2a1e5: 0x6d1e1820, 0x2a1e6: 0x6c9e0c20, 0x2a1e7: 0x6cbd7c20, - 0x2a1e8: 0x6cce9420, 0x2a1e9: 0x6c059e20, 0x2a1ea: 0x6c22f420, 0x2a1eb: 0x6c06c620, - 0x2a1ec: 0x6c5b8420, 0x2a1ed: 0x6c068e20, 0x2a1ee: 0x6c0efe20, 0x2a1ef: 0x6c5fd220, - 0x2a1f0: 0x6c5fec20, 0x2a1f1: 0x6cbe3a20, 0x2a1f2: 0x6cbe3a20, 0x2a1f3: 0x6cbe3a20, - 0x2a1f4: 0x48145820, 0x2a1f5: 0x6c5a8620, 0x2a1f6: 0x6c5fb820, 0x2a1f7: 0x6cda0e20, - 0x2a1f8: 0x4816c620, 0x2a1f9: 0x6c697a20, 0x2a1fa: 0x6c1bd620, 0x2a1fb: 0x6d108620, - 0x2a1fc: 0x6cfc7820, 0x2a1fd: 0x6cf56a20, 0x2a1fe: 0x6c19b620, 0x2a1ff: 0x6d385a20, - // Block 0xa88, offset 0x2a200 - 0x2a200: 0x6c35e420, 0x2a201: 0x6c9ec220, 0x2a202: 0x6ce0e820, 0x2a203: 0x6cb6ec20, - 0x2a204: 0x6cfb5820, 0x2a205: 0x6ccd8a20, 0x2a206: 0x6ccd8a20, 0x2a207: 0x6c5bbc20, - 0x2a208: 0x6c1aae20, 0x2a209: 0x6d2bd620, 0x2a20a: 0x6d110420, 0x2a20b: 0x6ce8d420, - 0x2a20c: 0x6ce0a020, 0x2a20d: 0x6ce8d620, 0x2a20e: 0x6c4fd020, 0x2a20f: 0x6cae3420, - 0x2a210: 0x6cbc9020, 0x2a211: 0x6d3c2c20, 0x2a212: 0x6c19c620, 0x2a213: 0x6d344c20, - 0x2a214: 0x6ce92220, 0x2a215: 0x6d03ca20, 0x2a216: 0x6c223620, 0x2a217: 0x6c064c20, - 0x2a218: 0x6c2c7c20, 0x2a219: 0x4829c820, 0x2a21a: 0x6c972420, 0x2a21b: 0x6c554020, - 0x2a21c: 0x6c3c9c20, 0x2a21d: 0x6c341620, 0x2a21e: 0x6c9c0420, 0x2a21f: 0x6cceea20, - 0x2a220: 0x6c1bda20, 0x2a221: 0x482dd420, 0x2a222: 0x6c5ea220, 0x2a223: 0x6d20ec20, - 0x2a224: 0x6ce9f820, 0x2a225: 0x6cb1e820, 0x2a226: 0x6c3fe420, 0x2a227: 0x6ccae220, - 0x2a228: 0x6c139820, 0x2a229: 0x6cc52820, 0x2a22a: 0x6c804820, 0x2a22b: 0x6c804820, - 0x2a22c: 0x48339020, 0x2a22d: 0x6d24da20, 0x2a22e: 0x6d365020, 0x2a22f: 0x6ca91020, - 0x2a230: 0x6c061c20, 0x2a231: 0x6c81ee20, 0x2a232: 0x6cd45020, 0x2a233: 0x6c674e20, - 0x2a234: 0x6c28f820, 0x2a235: 0x6d1edc20, 0x2a236: 0x6d11f020, 0x2a237: 0x6ce8a020, - 0x2a238: 0x6c17fa20, 0x2a239: 0x6d053020, 0x2a23a: 0x6cb8a420, 0x2a23b: 0x6cf3b020, - 0x2a23c: 0x6d0d7a20, 0x2a23d: 0x483bcc20, 0x2a23e: 0x6c2ccc20, 0x2a23f: 0x6d3e3620, - // Block 0xa89, offset 0x2a240 - 0x2a240: 0x6c15c620, 0x2a241: 0x6d09d820, 0x2a242: 0x6c175e20, 0x2a243: 0x6d15b220, - 0x2a244: 0x6d0a8c20, 0x2a245: 0x6cd71420, 0x2a246: 0x6c997a20, 0x2a247: 0x6c3b8620, - 0x2a248: 0x6c980020, 0x2a249: 0x48430620, 0x2a24a: 0x6d16e820, 0x2a24b: 0x6c0e0e20, - 0x2a24c: 0x6c097620, 0x2a24d: 0x6cd5c220, 0x2a24e: 0x6c80b420, 0x2a24f: 0x6cd79620, - 0x2a250: 0x6c45cc20, 0x2a251: 0x48466220, 0x2a252: 0x48466220, 0x2a253: 0x6d20e820, - 0x2a254: 0x6ce1b020, 0x2a255: 0x6ce1b020, 0x2a256: 0x6d16b220, 0x2a257: 0x48657020, - 0x2a258: 0x48c3b420, 0x2a259: 0x6d03c020, 0x2a25a: 0x6c2dc420, 0x2a25b: 0x6ccd7820, - 0x2a25c: 0x6c300020, 0x2a25d: 0x6cc58620, 0x2a25e: 0x6d357420, 0x2a25f: 0x6c7bb620, - 0x2a260: 0x6d24d420, 0x2a261: 0x6c5a4620, 0x2a262: 0x6c73f820, 0x2a263: 0x6c5b4c20, - 0x2a264: 0x6c2ff820, 0x2a265: 0x6c339820, 0x2a266: 0x6c224e20, 0x2a267: 0x6c599420, - 0x2a268: 0x6cd0ac20, 0x2a269: 0x6c599420, 0x2a26a: 0x6c90a220, 0x2a26b: 0x6d2b8a20, - 0x2a26c: 0x6cfd0820, 0x2a26d: 0x6c3be420, 0x2a26e: 0x6c11da20, 0x2a26f: 0x6c9b4a20, - 0x2a270: 0x6c1a5420, 0x2a271: 0x6c804a20, 0x2a272: 0x6c19b220, 0x2a273: 0x6c63b620, - 0x2a274: 0x6c7a1820, 0x2a275: 0x6c063220, 0x2a276: 0x6c036820, 0x2a277: 0x6c72e420, - 0x2a278: 0x48561820, 0x2a279: 0x6cecf820, 0x2a27a: 0x6cb1ea20, 0x2a27b: 0x6ccf2c20, - 0x2a27c: 0x6ccae020, 0x2a27d: 0x6c600020, 0x2a27e: 0x4857e220, 0x2a27f: 0x6c6d1420, - // Block 0xa8a, offset 0x2a280 - 0x2a280: 0x6d0ca820, 0x2a281: 0x6d0d6620, 0x2a282: 0x6c30b620, 0x2a283: 0x6ca07220, - 0x2a284: 0x6c67f620, 0x2a285: 0x6c5ae420, 0x2a286: 0x6c691420, 0x2a287: 0x4474d820, - 0x2a288: 0x6c9fa820, 0x2a289: 0x6c6e8420, 0x2a28a: 0x48601420, 0x2a28b: 0x6c61ec20, - 0x2a28c: 0x6cd4b820, 0x2a28d: 0x6c6cea20, 0x2a28e: 0x6cf01620, 0x2a28f: 0x6cd55a20, - 0x2a290: 0x6cf15420, 0x2a291: 0x6c16e420, 0x2a292: 0x6c994e20, 0x2a293: 0x6c9e1820, - 0x2a294: 0x6d41b020, 0x2a295: 0x6c6d2820, 0x2a296: 0x6ca31420, 0x2a297: 0x6ce05420, - 0x2a298: 0x6c80f820, 0x2a299: 0x6cee5220, 0x2a29a: 0x6d3f9820, 0x2a29b: 0x6cb6d620, - 0x2a29c: 0x6c0bea20, 0x2a29d: 0x48678620, 0x2a29e: 0x6c572820, 0x2a29f: 0x6c48dc20, - 0x2a2a0: 0x6c5e8e20, 0x2a2a1: 0x6cca6a20, 0x2a2a2: 0x6c99ec20, 0x2a2a3: 0x4868da20, - 0x2a2a4: 0x6c022a20, 0x2a2a5: 0x6c078420, 0x2a2a6: 0x6d3e3a20, 0x2a2a7: 0x6c513820, - 0x2a2a8: 0x6d2be020, 0x2a2a9: 0x6d112020, 0x2a2aa: 0x6c415020, 0x2a2ab: 0x6ccefe20, - 0x2a2ac: 0x486d4620, 0x2a2ad: 0x6d370620, 0x2a2ae: 0x6d159820, 0x2a2af: 0x6c22aa20, - 0x2a2b0: 0x48714e20, 0x2a2b1: 0x6d05d420, 0x2a2b2: 0x6c7d9c20, 0x2a2b3: 0x6cdc4620, - 0x2a2b4: 0x6cf15820, 0x2a2b5: 0x6ccbda20, 0x2a2b6: 0x6cbc4020, 0x2a2b7: 0x48751a20, - 0x2a2b8: 0x483a1620, 0x2a2b9: 0x4875f420, 0x2a2ba: 0x6c391c20, 0x2a2bb: 0x48797820, - 0x2a2bc: 0x6d0c6820, 0x2a2bd: 0x6c077e20, 0x2a2be: 0x6cb8a820, 0x2a2bf: 0x6cf3b620, - // Block 0xa8b, offset 0x2a2c0 - 0x2a2c0: 0x6cac1e20, 0x2a2c1: 0x6c4d3a20, 0x2a2c2: 0x6c8e4a20, 0x2a2c3: 0x6c502e20, - 0x2a2c4: 0x6c6cee20, 0x2a2c5: 0x6ca80820, 0x2a2c6: 0x6c07ac20, 0x2a2c7: 0x6cb28620, - 0x2a2c8: 0x6c42a220, 0x2a2c9: 0x6d0c0820, 0x2a2ca: 0x6c903620, 0x2a2cb: 0x6d3e4020, - 0x2a2cc: 0x6c2cce20, 0x2a2cd: 0x6ccc0a20, 0x2a2ce: 0x6d0bf820, 0x2a2cf: 0x6c177620, - 0x2a2d0: 0x487ebc20, 0x2a2d1: 0x487f1c20, 0x2a2d2: 0x6c3b8c20, 0x2a2d3: 0x6d270a20, - 0x2a2d4: 0x6c6eb420, 0x2a2d5: 0x6d1cba20, 0x2a2d6: 0x6cd63020, 0x2a2d7: 0x6cb9e020, - 0x2a2d8: 0x6d28f220, 0x2a2d9: 0x6d3bbe20, 0x2a2da: 0x6ce08e20, 0x2a2db: 0x480a4a20, - 0x2a2dc: 0x6c32cc20, 0x2a2dd: 0x4884c620, 0x2a2de: 0x6c233e20, 0x2a2df: 0x48875620, - 0x2a2e0: 0x6c24c420, 0x2a2e1: 0x6c74c820, 0x2a2e2: 0x6d2c3a20, 0x2a2e3: 0x488c1020, - 0x2a2e4: 0x6cf61a20, 0x2a2e5: 0x6c074020, 0x2a2e6: 0x6d0e3c20, 0x2a2e7: 0x48902820, - 0x2a2e8: 0x6cde2020, 0x2a2e9: 0x6cedda20, 0x2a2ea: 0x6c45d620, 0x2a2eb: 0x6d268820, - 0x2a2ec: 0x6cb29020, 0x2a2ed: 0x6cb29020, 0x2a2ee: 0x6c277a20, 0x2a2ef: 0x6d215e20, - 0x2a2f0: 0x6d325020, 0x2a2f1: 0x6cdd8a20, 0x2a2f2: 0x6cbf7620, 0x2a2f3: 0x6d03d220, - 0x2a2f4: 0x6cc89c20, 0x2a2f5: 0x48986c20, 0x2a2f6: 0x6d28f620, 0x2a2f7: 0x48992420, - 0x2a2f8: 0x6d176620, 0x2a2f9: 0x6cb2b420, 0x2a2fa: 0x6d226e20, 0x2a2fb: 0x489f4220, - 0x2a2fc: 0x489f7020, 0x2a2fd: 0x48a08820, 0x2a2fe: 0x6d0c7620, 0x2a2ff: 0x6c627820, - // Block 0xa8c, offset 0x2a300 - 0x2a300: 0x6d344020, 0x2a301: 0x48a1e620, 0x2a302: 0x48a1e420, 0x2a303: 0x48a23220, - 0x2a304: 0x48a26620, 0x2a305: 0x6d313c20, 0x2a306: 0x6d313e20, 0x2a307: 0x6d313e20, - 0x2a308: 0x6c736420, 0x2a309: 0x6c6ad220, 0x2a30a: 0x6c188220, 0x2a30b: 0x6d130220, - 0x2a30c: 0x6cd23420, 0x2a30d: 0x48a83a20, 0x2a30e: 0x6d03e220, 0x2a30f: 0x6c926e20, - 0x2a310: 0x6ce4ba20, 0x2a311: 0x6c5b7020, 0x2a312: 0x6c6fd820, 0x2a313: 0x6d411420, - 0x2a314: 0x6c1baa20, 0x2a315: 0x6c8f3a20, 0x2a316: 0x6c3e9c20, 0x2a317: 0x6cd52420, - 0x2a318: 0x6c657420, 0x2a319: 0x6c47c420, 0x2a31a: 0x6c624a20, 0x2a31b: 0x6cf1f020, - 0x2a31c: 0x48b2f820, 0x2a31d: 0x6ce4c020, 0x2a31e: 0x6ce4c020, 0x2a31f: 0x6cb26020, - 0x2a320: 0x6cb2be20, 0x2a321: 0x48b75620, 0x2a322: 0x6d3bde20, 0x2a323: 0x6d3a2820, - 0x2a324: 0x6cf00020, 0x2a325: 0x6c178020, 0x2a326: 0x6c076020, 0x2a327: 0x6cf8f420, - 0x2a328: 0x6c680820, 0x2a329: 0x6cca3020, 0x2a32a: 0x6c61b020, 0x2a32b: 0x48bf0c20, - 0x2a32c: 0x6c07ee20, 0x2a32d: 0x6d10b020, 0x2a32e: 0x6d3e6a20, 0x2a32f: 0x6d400620, - 0x2a330: 0x6ccac220, 0x2a331: 0x6c965020, 0x2a332: 0x6d03dc20, 0x2a333: 0x48c48e20, - 0x2a334: 0x6c9a0420, 0x2a335: 0x48c5b220, 0x2a336: 0x6c177e20, 0x2a337: 0x48c67c20, - 0x2a338: 0x6d104a20, 0x2a339: 0x6c027e20, 0x2a33a: 0x6d30d220, 0x2a33b: 0x48c9b420, - 0x2a33c: 0x48ca4620, 0x2a33d: 0x6cb25820, 0x2a33e: 0x48cb5020, 0x2a33f: 0x6c236620, - // Block 0xa8d, offset 0x2a340 - 0x2a340: 0x6c78f420, 0x2a341: 0x6cc5d220, 0x2a342: 0x6d22da20, 0x2a343: 0x6c252c20, - 0x2a344: 0x6c231a20, 0x2a345: 0x6caff420, 0x2a346: 0x6d1d4020, 0x2a347: 0x48cf4e20, - 0x2a348: 0x48cf6a20, 0x2a349: 0x6d085420, 0x2a34a: 0x48673820, 0x2a34b: 0x6d20e820, - 0x2a34c: 0x6cf89220, 0x2a34d: 0x6c225220, 0x2a34e: 0x6c07f020, 0x2a34f: 0x6cb6ce20, - 0x2a350: 0x6d22c820, 0x2a351: 0x6d338420, 0x2a352: 0x6c813e20, 0x2a353: 0x6c570620, - 0x2a354: 0x6c398620, 0x2a355: 0x6d0b1420, 0x2a356: 0x6c7a7620, 0x2a357: 0x48d67820, - 0x2a358: 0x6cc91420, 0x2a359: 0x6c148e20, 0x2a35a: 0x6cc65e20, 0x2a35b: 0x6c6aa820, - 0x2a35c: 0x6cf3bc20, 0x2a35d: 0x6c988a20, 0x2a35e: 0x6c2bf220, 0x2a35f: 0x6d311420, - 0x2a360: 0x6cb28e20, 0x2a361: 0x6c711c20, 0x2a362: 0x6c757020, 0x2a363: 0x6c114420, - 0x2a364: 0x48d86c20, 0x2a365: 0x6cdd8420, 0x2a366: 0x48d9aa20, 0x2a367: 0x448a5620, - 0x2a368: 0x6cb2ae20, 0x2a369: 0x6c6ca620, 0x2a36a: 0x6c25ea20, 0x2a36b: 0x48e79420, - 0x2a36c: 0x6cc8a220, 0x2a36d: 0x48de5820, 0x2a36e: 0x6c19a420, 0x2a36f: 0x6c936e20, - 0x2a370: 0x6c175420, 0x2a371: 0x6c93c420, 0x2a372: 0x6c7cba20, 0x2a373: 0x6caaa220, - 0x2a374: 0x6c91c420, 0x2a375: 0x6c7c4820, 0x2a376: 0x6cf90620, 0x2a377: 0x6c1aa420, - 0x2a378: 0x6cb8ca20, 0x2a379: 0x6d24fc20, 0x2a37a: 0x6cb2b020, 0x2a37b: 0x6d276220, - 0x2a37c: 0x6c2ed620, 0x2a37d: 0x6d39be20, 0x2a37e: 0x6c22de20, 0x2a37f: 0x6c5f4420, - // Block 0xa8e, offset 0x2a380 - 0x2a380: 0x6c4b2220, 0x2a381: 0x6cfe0220, 0x2a382: 0x6c22ec20, 0x2a383: 0x6d3cd820, - 0x2a384: 0x6d13be20, 0x2a385: 0x6c668020, 0x2a386: 0x6c8e6020, 0x2a387: 0x6cd72420, - 0x2a388: 0x6c929c20, 0x2a389: 0x6d0daa20, 0x2a38a: 0x6c996a20, 0x2a38b: 0x48f15c20, - 0x2a38c: 0x48f2cc20, 0x2a38d: 0x6ca8e820, 0x2a38e: 0x6d25ea20, 0x2a38f: 0x6c1a2220, - 0x2a390: 0x6d23f620, 0x2a391: 0x6c0bdc20, 0x2a392: 0x6cd2b020, 0x2a393: 0x6c649220, - 0x2a394: 0x6c498620, 0x2a395: 0x6c09b020, 0x2a396: 0x6c424420, 0x2a397: 0x6cb6ea20, - 0x2a398: 0x6cd61020, 0x2a399: 0x6d2fdc20, 0x2a39a: 0x6c038220, 0x2a39b: 0x6c658c20, - 0x2a39c: 0x6cb11c20, 0x2a39d: 0x4811bc20, 0x2a39e: 0x6cc5e420, 0x2a39f: 0x6cd50820, - 0x2a3a0: 0x490ba420, 0x2a3a1: 0x490bda20, 0x2a3a2: 0x6cb6c420, 0x2a3a3: 0x6cb27e20, - 0x2a3a4: 0x6d3e4a20, 0x2a3a5: 0x490e5c20, 0x2a3a6: 0x6c176420, 0x2a3a7: 0x6c0f1c20, - 0x2a3a8: 0x6d07ca20, 0x2a3a9: 0x6c575620, 0x2a3aa: 0x6c0dee20, 0x2a3ab: 0x6cbb5020, - 0x2a3ac: 0x6d295820, 0x2a3ad: 0x4917f420, 0x2a3ae: 0x6c763420, 0x2a3af: 0x6cae7c20, - 0x2a3b0: 0x6ccca420, 0x2a3b1: 0x491aee20, 0x2a3b2: 0x6cef3620, 0x2a3b3: 0x6cb8e820, - 0x2a3b4: 0x6cf69820, 0x2a3b5: 0x6d280620, 0x2a3b6: 0x6cace820, 0x2a3b7: 0x6cb26420, - 0x2a3b8: 0x6c930020, 0x2a3b9: 0x6c160820, 0x2a3ba: 0x6c0ab220, 0x2a3bb: 0x49281420, - 0x2a3bc: 0x6c7d6c20, 0x2a3bd: 0x6d0eb020, 0x2a3be: 0x6c35b420, 0x2a3bf: 0x6c35b420, - // Block 0xa8f, offset 0x2a3c0 - 0x2a3c0: 0x6cb26620, 0x2a3c1: 0x6d097020, 0x2a3c2: 0x6c5eb020, 0x2a3c3: 0x6c04d420, - 0x2a3c4: 0x6c36b220, 0x2a3c5: 0x6d276c20, 0x2a3c6: 0x6c060a20, 0x2a3c7: 0x6cea1420, - 0x2a3c8: 0x6c423020, 0x2a3c9: 0x6cbf6820, 0x2a3ca: 0x6d320420, 0x2a3cb: 0x6c62d820, - 0x2a3cc: 0x6c64ec20, 0x2a3cd: 0x6c702e20, 0x2a3ce: 0x6c60f620, 0x2a3cf: 0x6cb02c20, - 0x2a3d0: 0x6d21ea20, 0x2a3d1: 0x6c968620, 0x2a3d2: 0x6ccc2e20, 0x2a3d3: 0x49441c20, - 0x2a3d4: 0x49452220, 0x2a3d5: 0x6c966820, 0x2a3d6: 0x6cba8620, 0x2a3d7: 0x6d353420, - 0x2a3d8: 0x6c9e0a20, 0x2a3d9: 0x6d342a20, 0x2a3da: 0x6c9d7420, 0x2a3db: 0x6c3ba420, - 0x2a3dc: 0x6c08a220, 0x2a3dd: 0x6cb13820, - // Block 0xa90, offset 0x2a400 - 0x2a400: 0x6c00c220, 0x2a401: 0xe0002416, 0x2a402: 0x029cb684, 0x2a403: 0x029cb484, - 0x2a404: 0x6c000e20, 0x2a405: 0x029d7684, 0x2a406: 0x6c008a20, 0x2a407: 0x6c009220, - 0x2a408: 0x6c009e20, 0x2a409: 0x02a40484, 0x2a40a: 0x6c00b820, 0x2a40b: 0xe0002413, - 0x2a40c: 0x6c01a420, 0x2a40d: 0x6c01a620, 0x2a40e: 0xe000241f, 0x2a40f: 0x02b84684, - 0x2a410: 0x02b84484, 0x2a411: 0xe0002422, 0x2a412: 0x02bbe684, 0x2a413: 0x02bcf484, - 0x2a414: 0x02bea284, 0x2a415: 0x6c01e620, 0x2a416: 0x02bf8884, 0x2a417: 0xe0002428, - 0x2a418: 0x02c49884, 0x2a419: 0x02ca6a84, 0x2a41b: 0x02cbc284, - 0x2a41c: 0x6c049420, 0x2a41d: 0x6c049a20, 0x2a41e: 0xe0002436, 0x2a41f: 0x2c098083, - 0x2a420: 0x02d82284, 0x2a421: 0x02d86a84, 0x2a422: 0x02d87484, 0x2a423: 0x02e0d884, - 0x2a424: 0x02e45684, 0x2a425: 0x6c04d420, 0x2a426: 0x029c5884, 0x2a427: 0x6c04ee20, - 0x2a428: 0x02e55a84, 0x2a429: 0xe000243f, 0x2a42a: 0x6c0a1820, 0x2a42b: 0xe0002445, - 0x2a42c: 0x6c0a3220, 0x2a42d: 0x02f27684, 0x2a42e: 0x6c13f420, 0x2a42f: 0x02f9f284, - 0x2a430: 0x02fd3e84, 0x2a431: 0x02fea684, 0x2a432: 0x02fea484, 0x2a433: 0xe0002451, - 0x2a434: 0xe0002454, 0x2a435: 0xe000244e, 0x2a436: 0x6c143820, 0x2a437: 0xe000245a, - 0x2a438: 0x02ff1684, 0x2a439: 0x03000484, 0x2a43a: 0x03010084, 0x2a43b: 0xe000245d, - 0x2a43c: 0x6c050a20, 0x2a43d: 0xe0002463, 0x2a43e: 0x6c020220, 0x2a43f: 0xe0002466, - // Block 0xa91, offset 0x2a440 - 0x2a440: 0xe0002469, 0x2a441: 0x030c9c84, 0x2a442: 0x0310c884, 0x2a443: 0x03130084, - 0x2a444: 0x0312fe84, 0x2a445: 0x03138284, 0x2a446: 0x6c26a420, 0x2a447: 0xe000246c, - 0x2a448: 0x03174084, 0x2a449: 0x031a3a84, 0x2a44a: 0x6c270020, 0x2a44b: 0x031ecc84, - 0x2a44c: 0x6c020620, 0x2a44d: 0x6c051c20, 0x2a44e: 0xe0002475, 0x2a44f: 0x6c00cc20, - 0x2a450: 0x03290a84, 0x2a451: 0x032aee84, 0x2a452: 0x032af084, 0x2a453: 0x032afe84, - 0x2a454: 0x032bd084, 0x2a455: 0xe000247b, 0x2a456: 0x6c00ce20, 0x2a457: 0x6c427620, - 0x2a458: 0x032ea484, 0x2a459: 0x032fcc84, 0x2a45a: 0x0330ea84, 0x2a45b: 0x03319c84, - 0x2a45c: 0x0331bc84, 0x2a45d: 0x0331be84, 0x2a45e: 0x6c636020, 0x2a45f: 0x0331c084, - 0x2a460: 0x0332c684, 0x2a461: 0xe0002484, 0x2a462: 0x0334d884, 0x2a463: 0x6c63aa20, - 0x2a464: 0xe000248a, 0x2a465: 0x0338f884, 0x2a466: 0x033c3e84, 0x2a467: 0xe000248d, - 0x2a468: 0x033d4c84, 0x2a469: 0x033d8884, 0x2a46a: 0x033dfc84, 0x2a46b: 0xe0002490, - 0x2a46c: 0x033ea084, 0x2a46d: 0xe0002493, 0x2a46e: 0x033efe84, 0x2a46f: 0xe0002496, - 0x2a470: 0x033f3284, 0x2a471: 0xe0002499, 0x2a472: 0xe000249c, 0x2a473: 0x2c28ac83, - // Block 0xa92, offset 0x2a480 - 0x2a480: 0x2c000286, 0x2a481: 0x2c000483, 0x2a482: 0x2c000683, 0x2a483: 0x2c000883, - 0x2a484: 0x2c001084, 0x2a485: 0x2c002483, 0x2a486: 0x2c007486, 0x2a487: 0x2c007c83, - 0x2a488: 0x2c007e84, 0x2a489: 0x2c008483, 0x2a48a: 0x2c008683, 0x2a48b: 0x2c008884, - 0x2a48c: 0x2c008c83, 0x2a48d: 0x2c008e83, 0x2a48e: 0x2c009083, 0x2a48f: 0x2c009483, - 0x2a490: 0x2c009a83, 0x2a491: 0x2c00a083, 0x2a492: 0x2c00a883, 0x2a493: 0x2c00aa83, - 0x2a494: 0x2c00ac83, 0x2a495: 0x2c00b083, 0x2a496: 0x2c00b483, 0x2a497: 0x2c00b685, - 0x2a498: 0x2c00ba83, 0x2a499: 0x2c00bc83, 0x2a49a: 0x2c00be83, 0x2a49b: 0x2c00c083, - 0x2a49c: 0x2c00c483, 0x2a49d: 0x2c018083, 0x2a49e: 0x2c018283, 0x2a49f: 0x2c018484, - 0x2a4a0: 0x2c018683, 0x2a4a1: 0x2c018883, 0x2a4a2: 0x2c018c83, 0x2a4a3: 0x2c018e83, - 0x2a4a4: 0x2c019083, 0x2a4a5: 0x2c019484, 0x2a4a6: 0x2c019683, 0x2a4a7: 0x2c01a083, - 0x2a4a8: 0x2c01a283, 0x2a4a9: 0x2c01a883, 0x2a4aa: 0x2c01ac83, 0x2a4ab: 0x2c01b283, - 0x2a4ac: 0x2c01b683, 0x2a4ad: 0x2c01ba83, 0x2a4ae: 0x2c01bc83, 0x2a4af: 0x2c01c483, - 0x2a4b0: 0x2c01c683, 0x2a4b1: 0x2c01cc83, 0x2a4b2: 0x2c01ce83, 0x2a4b3: 0x2c01d283, - 0x2a4b4: 0x2c01d483, 0x2a4b5: 0x2c01d683, 0x2a4b6: 0x2c01d883, 0x2a4b7: 0x2c01dc83, - 0x2a4b8: 0x2c01e083, 0x2a4b9: 0x2c01e883, 0x2a4ba: 0x2c01ec83, 0x2a4bb: 0x2c01ee83, - 0x2a4bc: 0x2c046683, 0x2a4bd: 0x2c046c83, 0x2a4be: 0x2c046e83, 0x2a4bf: 0x2c047484, - // Block 0xa93, offset 0x2a4c0 - 0x2a4c0: 0x2c047e83, 0x2a4c1: 0x2c048083, 0x2a4c2: 0x2c048484, 0x2a4c3: 0x2c048683, - 0x2a4c4: 0x2c048a83, 0x2a4c5: 0x2c048e83, 0x2a4c6: 0x2c049083, 0x2a4c7: 0x2c049684, - 0x2a4c8: 0x2c049883, 0x2a4c9: 0x2c049c85, 0x2a4ca: 0x2c049e84, 0x2a4cb: 0x2c04a683, - 0x2a4cc: 0x2c04a883, 0x2a4cd: 0x2c04ae83, 0x2a4ce: 0x2c04b483, 0x2a4cf: 0x2c04b683, - 0x2a4d0: 0x2c04bc83, 0x2a4d1: 0x2c04be83, 0x2a4d2: 0x2c04c283, 0x2a4d3: 0x2c04c483, - 0x2a4d4: 0x2c04c684, 0x2a4d5: 0x2c04d084, 0x2a4d6: 0x2c04d683, 0x2a4d7: 0x2c04de83, - 0x2a4d8: 0x2c04e083, 0x2a4d9: 0x2c04e483, 0x2a4da: 0x2c04e883, 0x2a4db: 0x2c04ec83, - 0x2a4dc: 0x2c04f083, 0x2a4dd: 0x2c04f483, 0x2a4de: 0x2c09ee83, 0x2a4df: 0x2c09f283, - 0x2a4e0: 0x2c09fa83, 0x2a4e1: 0x2c09fc83, 0x2a4e2: 0x2c09fe83, 0x2a4e3: 0x2c0a0284, - 0x2a4e4: 0x2c0a0683, 0x2a4e5: 0x2c0a0a83, 0x2a4e6: 0x2c0a1a83, 0x2a4e7: 0x2c0a2083, - 0x2a4e8: 0x2c0a2283, 0x2a4e9: 0x2c0a2483, 0x2a4ea: 0x2c0a2683, 0x2a4eb: 0x2c0a2883, - 0x2a4ec: 0x2c0a2a83, 0x2a4ed: 0x2c0a2c83, 0x2a4ee: 0x2c0a2e83, 0x2a4ef: 0x2c0a3083, - 0x2a4f0: 0x2c0a3483, 0x2a4f1: 0x2c0a3883, 0x2a4f2: 0x2c0a3c83, 0x2a4f3: 0x2c0a4083, - 0x2a4f4: 0x2c0a4483, 0x2a4f5: 0x2c141083, 0x2a4f6: 0x2c141483, 0x2a4f7: 0x2c141683, - 0x2a4f8: 0x2c143083, 0x2a4f9: 0x2c143483, 0x2a4fa: 0x2c143a83, 0x2a4fb: 0x2c144283, - 0x2a4fc: 0x2c144483, 0x2a4fd: 0x2c144883, 0x2a4fe: 0x2c144c83, 0x2a4ff: 0x2c145083, - // Block 0xa94, offset 0x2a500 - 0x2a500: 0x2c145283, 0x2a501: 0x2c145683, 0x2a502: 0x2c147a83, 0x2a503: 0x2c147e83, - 0x2a504: 0x2c148283, 0x2a505: 0x2c148883, 0x2a506: 0x2c149083, 0x2a507: 0x2c149283, - 0x2a508: 0x2c149483, 0x2a509: 0x2c149883, 0x2a50a: 0x2c149a83, 0x2a50b: 0x2c149e83, - 0x2a50c: 0x2c14ca83, 0x2a50d: 0x2c14cc83, 0x2a50e: 0x2c14ce83, 0x2a50f: 0x2c14d083, - 0x2a510: 0x2c14d283, 0x2a511: 0x2c14d483, 0x2a512: 0x2c26a083, 0x2a513: 0x2c26a683, - 0x2a514: 0x2c26aa83, 0x2a515: 0x2c26e683, 0x2a516: 0x2c26ea83, 0x2a517: 0x2c26ec83, - 0x2a518: 0x2c26f283, 0x2a519: 0x2c26f483, 0x2a51a: 0x2c26fa83, 0x2a51b: 0x2c26fc84, - 0x2a51c: 0x2c270283, 0x2a51d: 0x2c270683, 0x2a51e: 0x2c270e83, 0x2a51f: 0x2c271c83, - 0x2a520: 0x2c272083, 0x2a521: 0x2c272683, 0x2a522: 0x2c278a83, 0x2a523: 0x2c27ec83, - 0x2a524: 0x2c27ee83, 0x2a525: 0x2c27f083, 0x2a526: 0x2c41dc84, 0x2a527: 0x2c41fe83, - 0x2a528: 0x2c420283, 0x2a529: 0x2c421083, 0x2a52a: 0x2c427283, 0x2a52b: 0x2c427483, - 0x2a52c: 0x2c427883, 0x2a52d: 0x2c427a83, 0x2a52e: 0x2c427e83, 0x2a52f: 0x2c632e83, - 0x2a530: 0x2c633283, 0x2a531: 0x2c633483, 0x2a532: 0x2c633c83, 0x2a533: 0x2c633e83, - 0x2a534: 0x2c634083, 0x2a535: 0x2c634e83, 0x2a536: 0x2c635c83, 0x2a537: 0x2c636283, - 0x2a538: 0x2c637e83, 0x2a539: 0x2c638283, 0x2a53a: 0x2c8a8e83, 0x2a53b: 0x2c8aae83, - 0x2a53c: 0x2c8ab083, 0x2a53d: 0x2c8ab283, 0x2a53e: 0x2c8ab483, 0x2a53f: 0x2c8aba83, - // Block 0xa95, offset 0x2a540 - 0x2a540: 0x2c8abc83, 0x2a541: 0x2c8abe83, 0x2a542: 0x2cb74483, 0x2a543: 0x2cb75283, - 0x2a544: 0x2cb78283, 0x2a545: 0x2cb78683, 0x2a546: 0x2cb78a83, 0x2a547: 0x2cb79483, - 0x2a548: 0x2ce8b483, 0x2a549: 0x2ce8b883, 0x2a54a: 0x2ce8ba83, 0x2a54b: 0x2ce8be83, - 0x2a54c: 0x2d187483, 0x2a54d: 0x2d187883, 0x2a54e: 0x2d187a83, 0x2a54f: 0x2d188083, - 0x2a550: 0x2d478083, 0x2a551: 0x2d478283, 0x2a552: 0x2d75b683, 0x2a553: 0x2d9f9c83, - 0x2a554: 0x2d9f9e83, 0x2a555: 0x2dc24283, - 0x2a570: 0x40273a20, 0x2a571: 0x40273c20, 0x2a572: 0x40273e20, 0x2a573: 0x40274020, - 0x2a574: 0x40274220, 0x2a575: 0x40274420, 0x2a576: 0x40274620, 0x2a577: 0x40274820, - 0x2a578: 0x40274a20, 0x2a579: 0x40274c20, 0x2a57a: 0x40274e20, 0x2a57b: 0x40275020, - // Block 0xa96, offset 0x2a580 - 0x2a580: 0x00021283, 0x2a581: 0x40025c20, 0x2a582: 0x40030420, 0x2a583: 0x40051220, - 0x2a584: 0x40279a20, 0x2a585: 0x6c021420, 0x2a586: 0x6c002820, 0x2a587: 0x6c002a20, - 0x2a588: 0x40049c20, 0x2a589: 0x40049e20, 0x2a58a: 0x4004a020, 0x2a58b: 0x4004a220, - 0x2a58c: 0x4004a420, 0x2a58d: 0x4004a620, 0x2a58e: 0x4004a820, 0x2a58f: 0x4004aa20, - 0x2a590: 0x4004ac20, 0x2a591: 0x4004ae20, 0x2a592: 0x40279c20, 0x2a593: 0x40279e20, - 0x2a594: 0x4004b020, 0x2a595: 0x4004b220, 0x2a596: 0x4004b420, 0x2a597: 0x4004b620, - 0x2a598: 0x4004b820, 0x2a599: 0x4004ba20, 0x2a59a: 0x4004bc20, 0x2a59b: 0x4004be20, - 0x2a59c: 0x40023820, 0x2a59d: 0x4003ea20, 0x2a59e: 0x4003ec20, 0x2a59f: 0x4003ee20, - 0x2a5a0: 0x4027a020, 0x2a5a1: 0x6c002c20, 0x2a5a2: 0x6c00d220, 0x2a5a3: 0x6c021620, - 0x2a5a4: 0x6c00d420, 0x2a5a5: 0x6c002e20, 0x2a5a6: 0x6c00d620, 0x2a5a7: 0x6c021820, - 0x2a5a8: 0x6c053820, 0x2a5a9: 0x6c053a20, 0x2a5aa: 0xada12202, 0x2a5ab: 0xae412302, - 0x2a5ac: 0xae812402, 0x2a5ad: 0xade12502, 0x2a5ae: 0xae012602, 0x2a5af: 0xae012702, - 0x2a5b0: 0x40023a20, 0x2a5b1: 0x4027ce20, 0x2a5b2: 0xe0000152, 0x2a5b3: 0x4027d020, - 0x2a5b4: 0xe0000155, 0x2a5b5: 0x4027d220, 0x2a5b6: 0x00279c84, 0x2a5b7: 0x4027a220, - 0x2a5b8: 0x2c00b684, 0x2a5b9: 0x2c00e683, 0x2a5ba: 0x2c036883, 0x2a5bb: 0x6c003020, - 0x2a5bc: 0xe000231a, 0x2a5bd: 0x40051420, 0x2a5be: 0x4027a420, 0x2a5bf: 0x4027a620, - // Block 0xa97, offset 0x2a5c0 - 0x2a5c0: 0x00633a84, 0x2a5c1: 0x00634484, 0x2a5c2: 0x0064f684, 0x2a5c3: 0x0064f884, - 0x2a5c4: 0x00635a84, 0x2a5c5: 0x00635c84, 0x2a5c6: 0x00635e84, 0x2a5c7: 0x0063ee84, - 0x2a5c8: 0x0063f084, 0x2a5c9: 0x0063f684, 0x2a5ca: 0x00640884, 0x2a5cb: 0x00640a84, - 0x2a5cc: 0x00640e84, 0x2a5cd: 0x00642284, 0x2a5ce: 0x00642884, - 0x2a5d0: 0x4027a820, 0x2a5d1: 0x4027aa20, 0x2a5d2: 0x2c000285, 0x2a5d3: 0x2c007485, - 0x2a5d4: 0x2c00dc85, 0x2a5d5: 0x2c079084, 0x2a5d6: 0x2c00de84, 0x2a5d7: 0x2c023685, - 0x2a5d8: 0x2c00e084, 0x2a5d9: 0x2c0a0e83, 0x2a5da: 0x2c001083, 0x2a5db: 0x2c054883, - 0x2a5dc: 0x2c003283, 0x2a5dd: 0x2c03de84, 0x2a5de: 0x2c0ed083, 0x2a5df: 0x2c007e83, - 0x2a5e0: 0xe000237a, 0x2a5e1: 0xe0002383, 0x2a5e2: 0xe0002380, 0x2a5e3: 0xe000237d, - 0x2a5e4: 0x40661c20, 0x2a5e5: 0xe000238c, 0x2a5e6: 0x40661620, 0x2a5e7: 0xe0002389, - 0x2a5e8: 0xe000239e, 0x2a5e9: 0xe0002386, 0x2a5ea: 0xe0002395, 0x2a5eb: 0xe000239b, - 0x2a5ec: 0x40663420, 0x2a5ed: 0x4065f220, 0x2a5ee: 0xe000238f, 0x2a5ef: 0xe0002392, - 0x2a5f0: 0x40663020, 0x2a5f1: 0x40663220, 0x2a5f2: 0x40662c20, 0x2a5f3: 0xe0002398, - 0x2a5f4: 0x0065dc99, 0x2a5f5: 0x0065e699, 0x2a5f6: 0x0065ee99, 0x2a5f7: 0x0065f499, - 0x2a5f8: 0x40660c20, 0x2a5f9: 0x40660e20, 0x2a5fa: 0x40661020, - // Block 0xa98, offset 0x2a600 - 0x2a600: 0xf0000404, 0x2a601: 0xf0000404, 0x2a602: 0xf0000404, 0x2a603: 0xf0000404, - 0x2a604: 0xf0000404, 0x2a605: 0xf0000404, 0x2a606: 0xf0000404, 0x2a607: 0xf0000404, - 0x2a608: 0xf0000404, 0x2a609: 0xf0000404, 0x2a60a: 0xf0000404, 0x2a60b: 0xf0000404, - 0x2a60c: 0xf0000404, 0x2a60d: 0xf0000404, 0x2a60e: 0xe000004c, 0x2a60f: 0xe0000051, - 0x2a610: 0xe0000056, 0x2a611: 0xe000005b, 0x2a612: 0xe0000060, 0x2a613: 0xe0000065, - 0x2a614: 0xe000006a, 0x2a615: 0xe000006f, 0x2a616: 0xe0000083, 0x2a617: 0xe000008d, - 0x2a618: 0xe0000092, 0x2a619: 0xe0000097, 0x2a61a: 0xe000009c, 0x2a61b: 0xe00000a1, - 0x2a61c: 0xe0000088, 0x2a61d: 0xe0000074, 0x2a61e: 0xe000007c, - 0x2a620: 0xe000b549, 0x2a621: 0xe000b555, 0x2a622: 0xe000b561, 0x2a623: 0xe000b589, - 0x2a624: 0xe000b569, 0x2a625: 0xe000b56d, 0x2a626: 0xe000b54d, 0x2a627: 0xe000b559, - 0x2a628: 0xe000b551, 0x2a629: 0xe000b55d, 0x2a62a: 0xe000b575, 0x2a62b: 0xe000b581, - 0x2a62c: 0xe000b57d, 0x2a62d: 0xe000b579, 0x2a62e: 0xe000b5b9, 0x2a62f: 0xe000b565, - 0x2a630: 0xe000b571, 0x2a631: 0xe000b5bd, 0x2a632: 0xe000b599, 0x2a633: 0xe000b5b5, - 0x2a634: 0xe000b595, 0x2a635: 0xe000b5c1, 0x2a636: 0xe000b5c9, 0x2a637: 0xe000b5c5, - 0x2a638: 0xe000b5a5, 0x2a639: 0xe000b585, 0x2a63a: 0xe000b5ad, 0x2a63b: 0xe000b5b1, - 0x2a63c: 0xe000b5d5, 0x2a63d: 0xe000b58d, 0x2a63e: 0xe000b5d1, 0x2a63f: 0xe000b5a9, - // Block 0xa99, offset 0x2a640 - 0x2a640: 0xe000b5cd, 0x2a641: 0xe000b591, 0x2a642: 0xe000b59d, 0x2a643: 0xe000b5a1, - 0x2a644: 0x2c8e8e83, 0x2a645: 0x2c08be83, 0x2a646: 0x2c048483, 0x2a647: 0x2d326883, - 0x2a648: 0xe00002e3, 0x2a649: 0xe00003d8, 0x2a64a: 0xe00004b3, 0x2a64b: 0xe000057d, - 0x2a64c: 0xe0000648, 0x2a64d: 0xe00006f0, 0x2a64e: 0xe000079c, 0x2a64f: 0xe0000841, - 0x2a650: 0xe0000ec0, 0x2a651: 0xf0000606, 0x2a652: 0xf0000606, 0x2a653: 0xf0000606, - 0x2a654: 0xf0000606, 0x2a655: 0xf0000606, 0x2a656: 0xf0000606, 0x2a657: 0xf0000606, - 0x2a658: 0xf0000606, 0x2a659: 0xf0000606, 0x2a65a: 0xf0000606, 0x2a65b: 0xf0000606, - 0x2a65c: 0xf0000606, 0x2a65d: 0xf0000606, 0x2a65e: 0xf0000606, 0x2a65f: 0xf0000606, - 0x2a660: 0x0062ac86, 0x2a661: 0x0062b086, 0x2a662: 0x0062b286, 0x2a663: 0x0062b686, - 0x2a664: 0x0062b886, 0x2a665: 0x0062ba86, 0x2a666: 0x0062be86, 0x2a667: 0x0062c286, - 0x2a668: 0x0062c486, 0x2a669: 0x0062c886, 0x2a66a: 0x0062ca86, 0x2a66b: 0x0062cc86, - 0x2a66c: 0x0062ce86, 0x2a66d: 0x0062d086, 0x2a66e: 0xf0000606, 0x2a66f: 0xf0000606, - 0x2a670: 0xf0000606, 0x2a671: 0xf0000606, 0x2a672: 0xf0000606, 0x2a673: 0xf0000606, - 0x2a674: 0xf0000606, 0x2a675: 0xf0000606, 0x2a676: 0xf0000606, 0x2a677: 0xf0000606, - 0x2a678: 0xf0000606, 0x2a679: 0xf0000606, 0x2a67a: 0xf0000606, 0x2a67b: 0xf0000606, - 0x2a67c: 0xe0002127, 0x2a67d: 0xe0002122, 0x2a67e: 0xf0000606, 0x2a67f: 0x4027ac20, - // Block 0xa9a, offset 0x2a680 - 0x2a680: 0x2c000284, 0x2a681: 0x2c007484, 0x2a682: 0x2c00dc84, 0x2a683: 0x2c079083, - 0x2a684: 0x2c028883, 0x2a685: 0x2c02d883, 0x2a686: 0x2c003683, 0x2a687: 0x2c008883, - 0x2a688: 0x2c006283, 0x2a689: 0x2c00b683, 0x2a68a: 0x2c049c84, 0x2a68b: 0x2c04d083, - 0x2a68c: 0x2c04c683, 0x2a68d: 0x2c049e83, 0x2a68e: 0x2c41dc83, 0x2a68f: 0x2c018483, - 0x2a690: 0x2c049683, 0x2a691: 0x2c741683, 0x2a692: 0x2c127484, 0x2a693: 0x2c3cee83, - 0x2a694: 0x2c0e3e83, 0x2a695: 0x2c791683, 0x2a696: 0x2c86f083, 0x2a697: 0x2c7de083, - 0x2a698: 0x2c185283, 0x2a699: 0x2c7e3883, 0x2a69a: 0x2c24b683, 0x2a69b: 0x2c019483, - 0x2a69c: 0x2d6c7483, 0x2a69d: 0x2d9fc483, 0x2a69e: 0x2c0db883, 0x2a69f: 0x2c38fa83, - 0x2a6a0: 0x2ce74883, 0x2a6a1: 0x2c0bc083, 0x2a6a2: 0x2c063e83, 0x2a6a3: 0x2c097683, - 0x2a6a4: 0x2c00de83, 0x2a6a5: 0x2c023684, 0x2a6a6: 0x2c00e083, 0x2a6a7: 0x2c089284, - 0x2a6a8: 0x2c075484, 0x2a6a9: 0x2c18a683, 0x2a6aa: 0x2c300483, 0x2a6ab: 0x2c2fd883, - 0x2a6ac: 0x2d2efa83, 0x2a6ad: 0x2c0ba083, 0x2a6ae: 0x2d0f3883, 0x2a6af: 0x2c2bb283, - 0x2a6b0: 0x2c2e8e83, 0x2a6b1: 0xf0000606, 0x2a6b2: 0xf0000606, 0x2a6b3: 0xf0000606, - 0x2a6b4: 0xf0000606, 0x2a6b5: 0xf0000606, 0x2a6b6: 0xf0000606, 0x2a6b7: 0xf0000606, - 0x2a6b8: 0xf0000606, 0x2a6b9: 0xf0000606, 0x2a6ba: 0xf0000606, 0x2a6bb: 0xf0000606, - 0x2a6bc: 0xf0000606, 0x2a6bd: 0xf0000606, 0x2a6be: 0xf0000606, 0x2a6bf: 0xf0000606, - // Block 0xa9b, offset 0x2a6c0 - 0x2a6c0: 0xf0000203, 0x2a6c1: 0xf0000203, 0x2a6c2: 0xf0000203, 0x2a6c3: 0xf0000203, - 0x2a6c4: 0xf0000203, 0x2a6c5: 0xf0000203, 0x2a6c6: 0xf0000203, 0x2a6c7: 0xf0000203, - 0x2a6c8: 0xf0000203, 0x2a6c9: 0xe000b601, 0x2a6ca: 0xe000b60d, 0x2a6cb: 0xe000b619, - 0x2a6cc: 0xf0001c1d, 0x2a6cd: 0xe0000b85, 0x2a6ce: 0xf0001d1c, 0x2a6cf: 0xe0000d14, - 0x2a6d0: 0x00657693, 0x2a6d1: 0x00657893, 0x2a6d2: 0x00657a93, 0x2a6d3: 0x00657e93, - 0x2a6d4: 0x00658093, 0x2a6d5: 0x00658293, 0x2a6d6: 0x00658493, 0x2a6d7: 0x00658693, - 0x2a6d8: 0x00658893, 0x2a6d9: 0x00658a93, 0x2a6da: 0x00658c93, 0x2a6db: 0x00658e93, - 0x2a6dc: 0x00659093, 0x2a6dd: 0x00659293, 0x2a6de: 0x00659493, 0x2a6df: 0x00659693, - 0x2a6e0: 0x00659893, 0x2a6e1: 0x00659a93, 0x2a6e2: 0x00659c93, 0x2a6e3: 0x00659e93, - 0x2a6e4: 0x0065a093, 0x2a6e5: 0x0065a293, 0x2a6e6: 0x0065a493, 0x2a6e7: 0x0065a693, - 0x2a6e8: 0x0065a893, 0x2a6e9: 0x0065aa93, 0x2a6ea: 0x0065ac93, 0x2a6eb: 0x0065ae93, - 0x2a6ec: 0x0065b093, 0x2a6ed: 0x0065b293, 0x2a6ee: 0x0065b493, 0x2a6ef: 0x0065b693, - 0x2a6f0: 0x0065b893, 0x2a6f1: 0x0065ba93, 0x2a6f2: 0x0065bc93, 0x2a6f3: 0x0065be93, - 0x2a6f4: 0x0065c093, 0x2a6f5: 0x0065c493, 0x2a6f6: 0x0065c693, 0x2a6f7: 0x0065c893, - 0x2a6f8: 0x0065ca93, 0x2a6f9: 0x0065cc93, 0x2a6fa: 0x0065ce93, 0x2a6fb: 0x0065d093, - 0x2a6fc: 0x0065d293, 0x2a6fd: 0x0065d493, 0x2a6fe: 0x0065d693, - // Block 0xa9c, offset 0x2a700 - 0x2a700: 0xe000230b, 0x2a701: 0xe00022f8, 0x2a702: 0xe00022fc, 0x2a703: 0xe0002311, - 0x2a704: 0xe0002316, 0x2a705: 0xe000231d, 0x2a706: 0xe0002321, 0x2a707: 0xe0002325, - 0x2a708: 0xe000232b, 0x2a709: 0xf0001c1c, 0x2a70a: 0xe0002330, 0x2a70b: 0xe000233c, - 0x2a70c: 0xe0002340, 0x2a70d: 0xe0002337, 0x2a70e: 0xe0002346, 0x2a70f: 0xe000234b, - 0x2a710: 0xe000234f, 0x2a711: 0xe0002353, 0x2a712: 0xf0001c1c, 0x2a713: 0xe000235e, - 0x2a714: 0xe0002358, 0x2a715: 0xf0001c1c, 0x2a716: 0xe0002363, 0x2a717: 0xe000236d, - 0x2a718: 0xf0000203, 0x2a719: 0xf0000203, 0x2a71a: 0xf0000203, 0x2a71b: 0xf0000203, - 0x2a71c: 0xf0000203, 0x2a71d: 0xf0000203, 0x2a71e: 0xf0000203, 0x2a71f: 0xf0000203, - 0x2a720: 0xf0000203, 0x2a721: 0xf0000203, 0x2a722: 0xe000b605, 0x2a723: 0xe000b611, - 0x2a724: 0xe000b61d, 0x2a725: 0xe000b625, 0x2a726: 0xe000b62d, 0x2a727: 0xe000b635, - 0x2a728: 0xe000b63d, 0x2a729: 0xe000b645, 0x2a72a: 0xe000b64d, 0x2a72b: 0xe000b655, - 0x2a72c: 0xe000b65d, 0x2a72d: 0xe000b665, 0x2a72e: 0xe000b66d, 0x2a72f: 0xe000b675, - 0x2a730: 0xe000b67d, 0x2a731: 0xe0000c1e, 0x2a732: 0xf0001c1c, 0x2a733: 0xf0001d1d, - 0x2a734: 0xe0000a31, 0x2a735: 0xf0001d1c, 0x2a736: 0xf0001c1c, 0x2a737: 0xf0001c1c, - 0x2a738: 0xe0000ac2, 0x2a739: 0xe0000ac6, 0x2a73a: 0xf0001d1d, 0x2a73b: 0xf0000203, - 0x2a73c: 0xf0000203, 0x2a73d: 0xf0000203, 0x2a73e: 0xf0000203, 0x2a73f: 0xe000b69d, - // Block 0xa9d, offset 0x2a740 - 0x2a740: 0xf0001d1c, 0x2a741: 0xf0001d1d, 0x2a742: 0xe00009b7, 0x2a743: 0xf0001c1d, - 0x2a744: 0xf0001c1c, 0x2a745: 0xf0001c1c, 0x2a746: 0xe0000a66, 0x2a747: 0xe0000a7a, - 0x2a748: 0xf0001d1c, 0x2a749: 0xf0001c1d, 0x2a74a: 0xf0001c1c, 0x2a74b: 0xf0001d1d, - 0x2a74c: 0xf0001c1c, 0x2a74d: 0xf0001d1d, 0x2a74e: 0xf0001d1d, 0x2a74f: 0xf0001c1c, - 0x2a750: 0xf0001c1c, 0x2a751: 0xf0001c1c, 0x2a752: 0xe0000d0d, 0x2a753: 0xf0001c1c, - 0x2a754: 0xf0001c1c, 0x2a755: 0xe0000d3a, 0x2a756: 0xe0000d46, 0x2a757: 0xf0001d1d, - 0x2a758: 0xe0000eb0, 0x2a759: 0xe0000eb8, 0x2a75a: 0xf0001d1d, 0x2a75b: 0xf0001c1c, - 0x2a75c: 0xf0001c1d, 0x2a75d: 0xf0001c1d, 0x2a75e: 0xe00010b2, 0x2a75f: 0xe00009c8, - 0x2a760: 0xf0000203, 0x2a761: 0xf0000203, 0x2a762: 0xf0000203, 0x2a763: 0xf0000203, - 0x2a764: 0xf0000203, 0x2a765: 0xf0000203, 0x2a766: 0xf0000203, 0x2a767: 0xf0000203, - 0x2a768: 0xf0000203, 0x2a769: 0xe000b5fd, 0x2a76a: 0xe000b609, 0x2a76b: 0xe000b615, - 0x2a76c: 0xe000b621, 0x2a76d: 0xe000b629, 0x2a76e: 0xe000b631, 0x2a76f: 0xe000b639, - 0x2a770: 0xe000b641, 0x2a771: 0xe000b649, 0x2a772: 0xe000b651, 0x2a773: 0xe000b659, - 0x2a774: 0xe000b661, 0x2a775: 0xe000b669, 0x2a776: 0xe000b671, 0x2a777: 0xe000b679, - 0x2a778: 0xe000b681, 0x2a779: 0xe000b685, 0x2a77a: 0xe000b689, 0x2a77b: 0xe000b68d, - 0x2a77c: 0xe000b691, 0x2a77d: 0xe000b695, 0x2a77e: 0xe000b699, 0x2a77f: 0xe0000bdf, - // Block 0xa9e, offset 0x2a780 - 0x2a780: 0x6c053e20, 0x2a781: 0x6c0acc20, 0x2a782: 0x6c0ace20, 0x2a783: 0x6c00f620, - 0x2a784: 0x6c00f820, 0x2a785: 0x6c004e20, 0x2a786: 0x6c0aee20, 0x2a787: 0x6c011a20, - 0x2a788: 0x6c011c20, 0x2a789: 0x6c011e20, 0x2a78a: 0x6c025820, 0x2a78b: 0x6c025a20, - 0x2a78c: 0x6c059820, 0x2a78d: 0x6c059a20, 0x2a78e: 0x6c059c20, 0x2a78f: 0x6c059e20, - 0x2a790: 0x6c0b0e20, 0x2a791: 0x6c0b1020, 0x2a792: 0x6c0b1220, 0x2a793: 0x6c0b1420, - 0x2a794: 0x6c0b1620, 0x2a795: 0x6c0b1820, 0x2a796: 0x6c160a20, 0x2a797: 0x6c160c20, - 0x2a798: 0x6c160e20, 0x2a799: 0x6c28d820, 0x2a79a: 0x6c28da20, 0x2a79b: 0x6c28dc20, - 0x2a79c: 0x6c430a20, 0x2a79d: 0x6c430c20, 0x2a79e: 0x6c430e20, 0x2a79f: 0x6c431020, - 0x2a7a0: 0x6c431220, 0x2a7a1: 0x6c8b0620, 0x2a7a2: 0x6c8b0820, 0x2a7a3: 0x6c8b0a20, - 0x2a7a4: 0x6cb7b020, 0x2a7a5: 0x6d75d620, 0x2a7a6: 0x6de00620, 0x2a7a7: 0x6c027820, - 0x2a7a8: 0x6c28f220, 0x2a7a9: 0x6c28fa20, 0x2a7aa: 0x6c0b5020, 0x2a7ab: 0x6c0b5220, - 0x2a7ac: 0x6c163420, 0x2a7ad: 0x6c290c20, 0x2a7ae: 0x6ce8e420, 0x2a7af: 0x6d9fa820, - 0x2a7b0: 0x6c05b820, 0x2a7b1: 0x6c05ba20, 0x2a7b2: 0x6c05bc20, 0x2a7b3: 0x6c05be20, - 0x2a7b4: 0x6c05c020, 0x2a7b5: 0x6c05c220, 0x2a7b6: 0x6c05c420, 0x2a7b7: 0x6c05c620, - 0x2a7b8: 0x6c0b6820, 0x2a7b9: 0x6c0b6a20, 0x2a7ba: 0x6c0b6c20, 0x2a7bb: 0x6c0b6e20, - 0x2a7bc: 0x6c0b7020, 0x2a7bd: 0x6c0b7220, 0x2a7be: 0x6c0b7420, 0x2a7bf: 0x6c0b7620, - // Block 0xa9f, offset 0x2a7c0 - 0x2a7c0: 0x6c0b7820, 0x2a7c1: 0x6c164620, 0x2a7c2: 0x6c164820, 0x2a7c3: 0x6c164a20, - 0x2a7c4: 0x6c164c20, 0x2a7c5: 0x6c164e20, 0x2a7c6: 0x6c165020, 0x2a7c7: 0x6c165220, - 0x2a7c8: 0x6c165420, 0x2a7c9: 0x6c292220, 0x2a7ca: 0x6c292420, 0x2a7cb: 0x6c292620, - 0x2a7cc: 0x6c292820, 0x2a7cd: 0x6c292a20, 0x2a7ce: 0x6c292c20, 0x2a7cf: 0x6c292e20, - 0x2a7d0: 0x6c293020, 0x2a7d1: 0x6c293220, 0x2a7d2: 0x6c293420, 0x2a7d3: 0x6c293620, - 0x2a7d4: 0x6c293820, 0x2a7d5: 0x6c293a20, 0x2a7d6: 0x6c293c20, 0x2a7d7: 0x6c434620, - 0x2a7d8: 0x6c434820, 0x2a7d9: 0x6c434a20, 0x2a7da: 0x6c434c20, 0x2a7db: 0x6c434e20, - 0x2a7dc: 0x6c435020, 0x2a7dd: 0x6c435220, 0x2a7de: 0x6c435420, 0x2a7df: 0x6c435620, - 0x2a7e0: 0x6c435820, 0x2a7e1: 0x6c435a20, 0x2a7e2: 0x6c435c20, 0x2a7e3: 0x6c641a20, - 0x2a7e4: 0x6c8b3e20, 0x2a7e5: 0x6c641c20, 0x2a7e6: 0x6c641e20, 0x2a7e7: 0x6c642020, - 0x2a7e8: 0x6c642220, 0x2a7e9: 0x6c642420, 0x2a7ea: 0x6c642620, 0x2a7eb: 0x6c642820, - 0x2a7ec: 0x6c642a20, 0x2a7ed: 0x6c642c20, 0x2a7ee: 0x6c8b4020, 0x2a7ef: 0x6c8b4220, - 0x2a7f0: 0x6c8b4420, 0x2a7f1: 0x6c8b4620, 0x2a7f2: 0x6c8b4820, 0x2a7f3: 0x6cb7da20, - 0x2a7f4: 0x6cb7dc20, 0x2a7f5: 0x6cb7de20, 0x2a7f6: 0x6cb7e020, 0x2a7f7: 0x6cb7e220, - 0x2a7f8: 0x6cb7e420, 0x2a7f9: 0x6cb7e620, 0x2a7fa: 0x6cb7e820, 0x2a7fb: 0x6ce8fe20, - 0x2a7fc: 0x6ce90020, 0x2a7fd: 0x6ce90220, 0x2a7fe: 0x6ce90420, 0x2a7ff: 0x6ce90620, - // Block 0xaa0, offset 0x2a800 - 0x2a800: 0x6ce90820, 0x2a801: 0x6ce90a20, 0x2a802: 0x6d18ae20, 0x2a803: 0x6d18b020, - 0x2a804: 0x6d18b220, 0x2a805: 0x6d18b420, 0x2a806: 0x6d18b620, 0x2a807: 0x6d18b820, - 0x2a808: 0x6d18ba20, 0x2a809: 0x6d18bc20, 0x2a80a: 0x6d18be20, 0x2a80b: 0x6d18c020, - 0x2a80c: 0x6d18c220, 0x2a80d: 0x6d18c420, 0x2a80e: 0x6d18c620, 0x2a80f: 0x6d18c820, - 0x2a810: 0x6d18ca20, 0x2a811: 0x6d47b220, 0x2a812: 0x6d47b420, 0x2a813: 0x6d47b620, - 0x2a814: 0x6d47b820, 0x2a815: 0x6d47ba20, 0x2a816: 0x6d47bc20, 0x2a817: 0x6d47be20, - 0x2a818: 0x6d47c020, 0x2a819: 0x6d75f420, 0x2a81a: 0x6d75f620, 0x2a81b: 0x6d75f820, - 0x2a81c: 0x6d75fa20, 0x2a81d: 0x6d9faa20, 0x2a81e: 0x6d9fac20, 0x2a81f: 0x6dc24a20, - 0x2a820: 0x6dc24c20, 0x2a821: 0x6de00e20, 0x2a822: 0x6de01020, 0x2a823: 0x6de01220, - 0x2a824: 0x6df86e20, 0x2a825: 0x6df87020, 0x2a826: 0x6df87220, 0x2a827: 0x6e0c3e20, - 0x2a828: 0x6e0c4020, 0x2a829: 0x6e284a20, 0x2a82a: 0x6e3ce220, 0x2a82b: 0x6c0c4420, - 0x2a82c: 0x6c2a2c20, 0x2a82d: 0x6c657020, 0x2a82e: 0x6c8c6620, 0x2a82f: 0x6dc28c20, - 0x2a830: 0x6c061620, 0x2a831: 0x6c061820, 0x2a832: 0x6c0c5820, 0x2a833: 0x6c174e20, - 0x2a834: 0x6c175020, 0x2a835: 0x6c175c20, 0x2a836: 0x6c175e20, 0x2a837: 0x6c176020, - 0x2a838: 0x6c447420, 0x2a839: 0x6df89620, 0x2a83a: 0x6c2a5c20, 0x2a83b: 0x6c8c8420, - 0x2a83c: 0x6c8c8620, 0x2a83d: 0x6cb8f220, 0x2a83e: 0x6cea0820, 0x2a83f: 0x6e1c1c20, - // Block 0xaa1, offset 0x2a840 - 0x2a840: 0x6c02fa20, 0x2a841: 0x6c02fc20, 0x2a842: 0x6c449020, 0x2a843: 0x6cb8fc20, - 0x2a844: 0x6d487620, 0x2a845: 0x6c030620, 0x2a846: 0x6c0c9820, 0x2a847: 0x6c0c9a20, - 0x2a848: 0x6c178e20, 0x2a849: 0x6c2a7420, 0x2a84a: 0x6c2a7620, 0x2a84b: 0x6c2a7820, - 0x2a84c: 0x6c2a7a20, 0x2a84d: 0x6c2a7c20, 0x2a84e: 0x6c44a020, 0x2a84f: 0x6c44a220, - 0x2a850: 0x6c65c220, 0x2a851: 0x6c65c420, 0x2a852: 0x6c65c620, 0x2a853: 0x6c8c9620, - 0x2a854: 0x6cb90c20, 0x2a855: 0x6cb90e20, 0x2a856: 0x6cea1220, 0x2a857: 0x6d19ea20, - 0x2a858: 0x6c8cbe20, 0x2a859: 0x6c0cd220, 0x2a85a: 0x6c067c20, 0x2a85b: 0x6c067e20, - 0x2a85c: 0x6c068020, 0x2a85d: 0x6c0ce620, 0x2a85e: 0x6c0ce820, 0x2a85f: 0x6c17da20, - 0x2a860: 0x6c17dc20, 0x2a861: 0x6c2abc20, 0x2a862: 0x6c2abe20, 0x2a863: 0x6c2ac020, - 0x2a864: 0x6c2ac220, 0x2a865: 0x6c2ac420, 0x2a866: 0x6c2ac620, 0x2a867: 0x6c44e020, - 0x2a868: 0x6c44e220, 0x2a869: 0x6c44e420, 0x2a86a: 0x6c44e620, 0x2a86b: 0x6c44e820, - 0x2a86c: 0x6c661220, 0x2a86d: 0x6c661420, 0x2a86e: 0x6c661620, 0x2a86f: 0x6c661820, - 0x2a870: 0x6c661a20, 0x2a871: 0x6c8cd820, 0x2a872: 0x6c8cda20, 0x2a873: 0x6c8cdc20, - 0x2a874: 0x6c8cde20, 0x2a875: 0x6c8ce020, 0x2a876: 0x6c8ce220, 0x2a877: 0x6cb94620, - 0x2a878: 0x6cb94820, 0x2a879: 0x6cb94a20, 0x2a87a: 0x6cb94c20, 0x2a87b: 0x6cb94e20, - 0x2a87c: 0x6cea3c20, 0x2a87d: 0x6cea3e20, 0x2a87e: 0x6d1a0e20, 0x2a87f: 0x6d1a1020, - // Block 0xaa2, offset 0x2a880 - 0x2a880: 0x6d1a1220, 0x2a881: 0x6d1a1420, 0x2a882: 0x6d1a1620, 0x2a883: 0x6d1a1820, - 0x2a884: 0x6d1a1a20, 0x2a885: 0x6d1a1c20, 0x2a886: 0x6d1a1e20, 0x2a887: 0x6d1a2020, - 0x2a888: 0x6d1a2220, 0x2a889: 0x6d1a2420, 0x2a88a: 0x6d489620, 0x2a88b: 0x6d76a420, - 0x2a88c: 0x6d76a620, 0x2a88d: 0x6d76a820, 0x2a88e: 0x6da03020, 0x2a88f: 0x6da03220, - 0x2a890: 0x6dc2b620, 0x2a891: 0x6de05620, 0x2a892: 0x6df8a620, 0x2a893: 0x6c06a020, - 0x2a894: 0x6c0d3a20, 0x2a895: 0x6c0d3c20, 0x2a896: 0x6c0d3e20, 0x2a897: 0x6c183820, - 0x2a898: 0x6c183a20, 0x2a899: 0x6c2b4c20, 0x2a89a: 0x6c2b4e20, 0x2a89b: 0x6c2b5020, - 0x2a89c: 0x6c454e20, 0x2a89d: 0x6c66a620, 0x2a89e: 0x6c66a820, 0x2a89f: 0x6c66aa20, - 0x2a8a0: 0x6c8d4220, 0x2a8a1: 0x6cb9aa20, 0x2a8a2: 0x6d1a7620, 0x2a8a3: 0x6da05420, - 0x2a8a4: 0x6da05620, 0x2a8a5: 0x6da05820, 0x2a8a6: 0x6da05a20, 0x2a8a7: 0x6dc2c420, - 0x2a8a8: 0x6c8d6a20, 0x2a8a9: 0x6cb9d420, 0x2a8aa: 0x6ceac220, 0x2a8ab: 0x6c035820, - 0x2a8ac: 0x6c2b9a20, 0x2a8ad: 0x6c8d8020, 0x2a8ae: 0x6e123e20, 0x2a8af: 0x6c188c20, - 0x2a8b0: 0x6c188e20, 0x2a8b1: 0x6c8d8620, 0x2a8b2: 0x6cead220, 0x2a8b3: 0x6cead420, - 0x2a8b4: 0x6cead620, 0x2a8b5: 0x6d1aba20, 0x2a8b6: 0x6e3cf020, 0x2a8b7: 0x6c18a420, - 0x2a8b8: 0x6cb9f020, 0x2a8b9: 0x6c036620, 0x2a8ba: 0x6c0d8020, 0x2a8bb: 0x6c0d8220, - 0x2a8bc: 0x6ceae020, 0x2a8bd: 0x6c2bd420, 0x2a8be: 0x6c016e20, 0x2a8bf: 0x6c017020, - // Block 0xaa3, offset 0x2a8c0 - 0x2a8c0: 0x6c18d020, 0x2a8c1: 0x6c2bf220, 0x2a8c2: 0x6c0dc820, 0x2a8c3: 0x6c0dca20, - 0x2a8c4: 0x6c0dcc20, 0x2a8c5: 0x6c18dc20, 0x2a8c6: 0x6c18de20, 0x2a8c7: 0x6c18e020, - 0x2a8c8: 0x6c2c0020, 0x2a8c9: 0x6c2c0220, 0x2a8ca: 0x6c45f620, 0x2a8cb: 0x6c673220, - 0x2a8cc: 0x6c673420, 0x2a8cd: 0x6c673620, 0x2a8ce: 0x6cba0a20, 0x2a8cf: 0x6ceb0220, - 0x2a8d0: 0x6d1adc20, 0x2a8d1: 0x6d1ade20, 0x2a8d2: 0x6d491820, 0x2a8d3: 0x6da08620, - 0x2a8d4: 0x6e319620, 0x2a8d5: 0x6c039020, 0x2a8d6: 0x6c677020, 0x2a8d7: 0x6c8de220, - 0x2a8d8: 0x6c8de420, 0x2a8d9: 0x6d493a20, 0x2a8da: 0x6c039c20, 0x2a8db: 0x6c039e20, - 0x2a8dc: 0x6c0e0620, 0x2a8dd: 0x6c190c20, 0x2a8de: 0x6c2c3a20, 0x2a8df: 0x6c463e20, - 0x2a8e0: 0x6cba4220, 0x2a8e1: 0x6d1b2020, 0x2a8e2: 0x6d3d7420, 0x2a8e3: 0x6c073020, - 0x2a8e4: 0x6c073220, 0x2a8e5: 0x6c073420, 0x2a8e6: 0x6c0e1c20, 0x2a8e7: 0x6c0e1e20, - 0x2a8e8: 0x6c0e2020, 0x2a8e9: 0x6c192220, 0x2a8ea: 0x6c192420, 0x2a8eb: 0x6c192620, - 0x2a8ec: 0x6c192820, 0x2a8ed: 0x6c192a20, 0x2a8ee: 0x6c192c20, 0x2a8ef: 0x6c192e20, - 0x2a8f0: 0x6c193020, 0x2a8f1: 0x6c193220, 0x2a8f2: 0x6c193420, 0x2a8f3: 0x6c193620, - 0x2a8f4: 0x6c193820, 0x2a8f5: 0x6c193a20, 0x2a8f6: 0x6c193c20, 0x2a8f7: 0x6c2c5620, - 0x2a8f8: 0x6c2c5820, 0x2a8f9: 0x6c2c5a20, 0x2a8fa: 0x6c2c5c20, 0x2a8fb: 0x6c2c5e20, - 0x2a8fc: 0x6c2c6020, 0x2a8fd: 0x6c2c6220, 0x2a8fe: 0x6c2c6420, 0x2a8ff: 0x6c2c6620, - // Block 0xaa4, offset 0x2a900 - 0x2a900: 0x6c466820, 0x2a901: 0x6c466a20, 0x2a902: 0x6c466c20, 0x2a903: 0x6c466e20, - 0x2a904: 0x6c467020, 0x2a905: 0x6c467220, 0x2a906: 0x6c467420, 0x2a907: 0x6c467620, - 0x2a908: 0x6c467820, 0x2a909: 0x6c467a20, 0x2a90a: 0x6c467c20, 0x2a90b: 0x6c467e20, - 0x2a90c: 0x6c468020, 0x2a90d: 0x6c468220, 0x2a90e: 0x6c468420, 0x2a90f: 0x6c679a20, - 0x2a910: 0x6c679c20, 0x2a911: 0x6c679e20, 0x2a912: 0x6c67a020, 0x2a913: 0x6c67a220, - 0x2a914: 0x6c67a420, 0x2a915: 0x6c67a620, 0x2a916: 0x6c67a820, 0x2a917: 0x6c67aa20, - 0x2a918: 0x6c67ac20, 0x2a919: 0x6c67ae20, 0x2a91a: 0x6c67b020, 0x2a91b: 0x6c67b220, - 0x2a91c: 0x6c67b420, 0x2a91d: 0x6c67b620, 0x2a91e: 0x6c67b820, 0x2a91f: 0x6c8e1220, - 0x2a920: 0x6c8e1420, 0x2a921: 0x6c8e1620, 0x2a922: 0x6c8e1820, 0x2a923: 0x6c8e1a20, - 0x2a924: 0x6c8e1c20, 0x2a925: 0x6c8e1e20, 0x2a926: 0x6c8e2020, 0x2a927: 0x6c8e2220, - 0x2a928: 0x6c8e2420, 0x2a929: 0x6c8e2620, 0x2a92a: 0x6c8e2820, 0x2a92b: 0x6c8e2a20, - 0x2a92c: 0x6c8e2c20, 0x2a92d: 0x6c8e2e20, 0x2a92e: 0x6c8e3020, 0x2a92f: 0x6c8e3220, - 0x2a930: 0x6c8e3420, 0x2a931: 0x6c8e3620, 0x2a932: 0x6c8e3820, 0x2a933: 0x6c8e3a20, - 0x2a934: 0x6c8e3c20, 0x2a935: 0x6c8e3e20, 0x2a936: 0x6cba5c20, 0x2a937: 0x6cba5e20, - 0x2a938: 0x6cba6020, 0x2a939: 0x6cba6220, 0x2a93a: 0x6cba6420, 0x2a93b: 0x6cba6620, - 0x2a93c: 0x6cba6820, 0x2a93d: 0x6cba6a20, 0x2a93e: 0x6cba6c20, 0x2a93f: 0x6cba6e20, - // Block 0xaa5, offset 0x2a940 - 0x2a940: 0x6cba7020, 0x2a941: 0x6cba7220, 0x2a942: 0x6cba7420, 0x2a943: 0x6cba7620, - 0x2a944: 0x6cba7820, 0x2a945: 0x6cba7a20, 0x2a946: 0x6cba7c20, 0x2a947: 0x6cba7e20, - 0x2a948: 0x6cba8020, 0x2a949: 0x6cba8220, 0x2a94a: 0x6cba8420, 0x2a94b: 0x6cba8620, - 0x2a94c: 0x6cba8820, 0x2a94d: 0x6cba8a20, 0x2a94e: 0x6cba8c20, 0x2a94f: 0x6cba8e20, - 0x2a950: 0x6cba9020, 0x2a951: 0x6cba9220, 0x2a952: 0x6ceb4e20, 0x2a953: 0x6ceb5020, - 0x2a954: 0x6ceb5220, 0x2a955: 0x6ceb5420, 0x2a956: 0x6ceb5620, 0x2a957: 0x6ceb5820, - 0x2a958: 0x6ceb5a20, 0x2a959: 0x6ceb5c20, 0x2a95a: 0x6ceb5e20, 0x2a95b: 0x6ceb6020, - 0x2a95c: 0x6ceb6220, 0x2a95d: 0x6ceb6420, 0x2a95e: 0x6ceb6620, 0x2a95f: 0x6ceb6820, - 0x2a960: 0x6ceb6a20, 0x2a961: 0x6ceb6c20, 0x2a962: 0x6d1b3420, 0x2a963: 0x6d1b3620, - 0x2a964: 0x6d1b3820, 0x2a965: 0x6d1b3a20, 0x2a966: 0x6d1b3c20, 0x2a967: 0x6d1b3e20, - 0x2a968: 0x6d1b4020, 0x2a969: 0x6d1b4220, 0x2a96a: 0x6d1b4420, 0x2a96b: 0x6d1b4620, - 0x2a96c: 0x6d1b4820, 0x2a96d: 0x6d1b4a20, 0x2a96e: 0x6d1b4c20, 0x2a96f: 0x6d1b4e20, - 0x2a970: 0x6d1b5020, 0x2a971: 0x6d494e20, 0x2a972: 0x6d495020, 0x2a973: 0x6d495220, - 0x2a974: 0x6d495420, 0x2a975: 0x6d495620, 0x2a976: 0x6d495820, 0x2a977: 0x6d495a20, - 0x2a978: 0x6d495c20, 0x2a979: 0x6d495e20, 0x2a97a: 0x6d496020, 0x2a97b: 0x6d770e20, - 0x2a97c: 0x6d771020, 0x2a97d: 0x6d771220, 0x2a97e: 0x6d771420, 0x2a97f: 0x6d771620, - // Block 0xaa6, offset 0x2a980 - 0x2a980: 0x6d771820, 0x2a981: 0x6d771a20, 0x2a982: 0x6d771c20, 0x2a983: 0x6d771e20, - 0x2a984: 0x6d772020, 0x2a985: 0x6da09a20, 0x2a986: 0x6da09c20, 0x2a987: 0x6da09e20, - 0x2a988: 0x6da0a020, 0x2a989: 0x6dc2fa20, 0x2a98a: 0x6dc2fc20, 0x2a98b: 0x6dc2fe20, - 0x2a98c: 0x6dc30020, 0x2a98d: 0x6dc30220, 0x2a98e: 0x6dc30420, 0x2a98f: 0x6dc30620, - 0x2a990: 0x6de07e20, 0x2a991: 0x6de08020, 0x2a992: 0x6de08220, 0x2a993: 0x6df8cc20, - 0x2a994: 0x6df8ce20, 0x2a995: 0x6e0c9220, 0x2a996: 0x6e0c9420, 0x2a997: 0x6e0c9620, - 0x2a998: 0x6e1c2e20, 0x2a999: 0x6e287220, 0x2a99a: 0x6e287420, 0x2a99b: 0x6e384620, - 0x2a99c: 0x6e3cf820, 0x2a99d: 0x6c078820, 0x2a99e: 0x6c06a220, 0x2a99f: 0x6c0e9620, - 0x2a9a0: 0x6c2d7e20, 0x2a9a1: 0x6c2d8020, 0x2a9a2: 0x6c47dc20, 0x2a9a3: 0x6c694e20, - 0x2a9a4: 0x6d1cf020, 0x2a9a5: 0x6df92a20, 0x2a9a6: 0x6c07a020, 0x2a9a7: 0x6c1a9820, - 0x2a9a8: 0x6c1a9a20, 0x2a9a9: 0x6c1a9c20, 0x2a9aa: 0x6c1a9e20, 0x2a9ab: 0x6c1aa020, - 0x2a9ac: 0x6c1aa220, 0x2a9ad: 0x6c1aa420, 0x2a9ae: 0x6c1aa620, 0x2a9af: 0x6c1aa820, - 0x2a9b0: 0x6c1aaa20, 0x2a9b1: 0x6c2daa20, 0x2a9b2: 0x6c2dac20, 0x2a9b3: 0x6c2dae20, - 0x2a9b4: 0x6c2db020, 0x2a9b5: 0x6c2db220, 0x2a9b6: 0x6c480020, 0x2a9b7: 0x6c480220, - 0x2a9b8: 0x6c480420, 0x2a9b9: 0x6c480620, 0x2a9ba: 0x6c480820, 0x2a9bb: 0x6c480a20, - 0x2a9bc: 0x6c480c20, 0x2a9bd: 0x6c480e20, 0x2a9be: 0x6c481020, 0x2a9bf: 0x6c697e20, - // Block 0xaa7, offset 0x2a9c0 - 0x2a9c0: 0x6c698020, 0x2a9c1: 0x6c698220, 0x2a9c2: 0x6c698420, 0x2a9c3: 0x6c698620, - 0x2a9c4: 0x6c698820, 0x2a9c5: 0x6c698a20, 0x2a9c6: 0x6c698c20, 0x2a9c7: 0x6c904620, - 0x2a9c8: 0x6c904820, 0x2a9c9: 0x6c904a20, 0x2a9ca: 0x6c904c20, 0x2a9cb: 0x6c904e20, - 0x2a9cc: 0x6c905020, 0x2a9cd: 0x6c905220, 0x2a9ce: 0x6cbc6420, 0x2a9cf: 0x6cbc6620, - 0x2a9d0: 0x6cbc6820, 0x2a9d1: 0x6cbc6a20, 0x2a9d2: 0x6cbc6c20, 0x2a9d3: 0x6cbc6e20, - 0x2a9d4: 0x6cbc7020, 0x2a9d5: 0x6cbc7220, 0x2a9d6: 0x6cbc7420, 0x2a9d7: 0x6cbc7620, - 0x2a9d8: 0x6cbc7820, 0x2a9d9: 0x6ced4a20, 0x2a9da: 0x6ced4c20, 0x2a9db: 0x6ced4e20, - 0x2a9dc: 0x6ced5020, 0x2a9dd: 0x6ced5220, 0x2a9de: 0x6ced5420, 0x2a9df: 0x6ced5620, - 0x2a9e0: 0x6d1d1620, 0x2a9e1: 0x6d1d1820, 0x2a9e2: 0x6d1d1a20, 0x2a9e3: 0x6d1d1c20, - 0x2a9e4: 0x6d1d1e20, 0x2a9e5: 0x6d1d2020, 0x2a9e6: 0x6d1d2220, 0x2a9e7: 0x6d4ac820, - 0x2a9e8: 0x6d4aca20, 0x2a9e9: 0x6d4acc20, 0x2a9ea: 0x6d4ace20, 0x2a9eb: 0x6d4ad020, - 0x2a9ec: 0x6d4ad220, 0x2a9ed: 0x6d4ad420, 0x2a9ee: 0x6d4ad620, 0x2a9ef: 0x6d4ad820, - 0x2a9f0: 0x6d786620, 0x2a9f1: 0x6d786820, 0x2a9f2: 0x6d786a20, 0x2a9f3: 0x6d786c20, - 0x2a9f4: 0x6d786e20, 0x2a9f5: 0x6d787020, 0x2a9f6: 0x6d787220, 0x2a9f7: 0x6da18820, - 0x2a9f8: 0x6da18a20, 0x2a9f9: 0x6da18c20, 0x2a9fa: 0x6da18e20, 0x2a9fb: 0x6dc3e020, - 0x2a9fc: 0x6dc3e220, 0x2a9fd: 0x6dc3e420, 0x2a9fe: 0x6de10220, 0x2a9ff: 0x6de10420, - // Block 0xaa8, offset 0x2aa00 - 0x2aa00: 0x6df93220, 0x2aa01: 0x6e31c220, 0x2aa02: 0x6e385e20, 0x2aa03: 0x6cbd8620, - 0x2aa04: 0x6d4ba020, 0x2aa05: 0x6c48f020, 0x2aa06: 0x6c48f420, 0x2aa07: 0x6c48f620, - 0x2aa08: 0x6c07ce20, 0x2aa09: 0x6c2e8c20, 0x2aa0a: 0x6cbd9820, 0x2aa0b: 0x6d1e0c20, - 0x2aa0c: 0x6d1e0e20, 0x2aa0d: 0x6dc44620, 0x2aa0e: 0x6c07dc20, 0x2aa0f: 0x6c0f2c20, - 0x2aa10: 0x6c0f2e20, 0x2aa11: 0x6c0f3020, 0x2aa12: 0x6c1b8a20, 0x2aa13: 0x6c1b8c20, - 0x2aa14: 0x6c2e9a20, 0x2aa15: 0x6c2e9c20, 0x2aa16: 0x6c2e9e20, 0x2aa17: 0x6c2ea020, - 0x2aa18: 0x6c2ea220, 0x2aa19: 0x6c2ea420, 0x2aa1a: 0x6c490220, 0x2aa1b: 0x6c490420, - 0x2aa1c: 0x6c919820, 0x2aa1d: 0x6c919a20, 0x2aa1e: 0x6c919c20, 0x2aa1f: 0x6cbdb620, - 0x2aa20: 0x6cee7620, 0x2aa21: 0x6d791c20, 0x2aa22: 0x6c07fc20, 0x2aa23: 0x6c0f5620, - 0x2aa24: 0x6c0f5820, 0x2aa25: 0x6c0f5a20, 0x2aa26: 0x6c0f5c20, 0x2aa27: 0x6c0f5e20, - 0x2aa28: 0x6c0f6020, 0x2aa29: 0x6c1bc420, 0x2aa2a: 0x6c1bc620, 0x2aa2b: 0x6c1bc820, - 0x2aa2c: 0x6c1bca20, 0x2aa2d: 0x6c1bcc20, 0x2aa2e: 0x6c1bce20, 0x2aa2f: 0x6c1bd020, - 0x2aa30: 0x6c2ef420, 0x2aa31: 0x6c2ef620, 0x2aa32: 0x6c2ef820, 0x2aa33: 0x6c2efa20, - 0x2aa34: 0x6c2efc20, 0x2aa35: 0x6c2efe20, 0x2aa36: 0x6c2f0020, 0x2aa37: 0x6c2f0220, - 0x2aa38: 0x6c2f0420, 0x2aa39: 0x6c2f0620, 0x2aa3a: 0x6c2f0820, 0x2aa3b: 0x6c2f0a20, - 0x2aa3c: 0x6c2f0c20, 0x2aa3d: 0x6c2f0e20, 0x2aa3e: 0x6c2f1020, 0x2aa3f: 0x6c2f1220, - // Block 0xaa9, offset 0x2aa40 - 0x2aa40: 0x6c2f1420, 0x2aa41: 0x6c2f1620, 0x2aa42: 0x6c493e20, 0x2aa43: 0x6c494020, - 0x2aa44: 0x6c494220, 0x2aa45: 0x6c494420, 0x2aa46: 0x6c494620, 0x2aa47: 0x6c494820, - 0x2aa48: 0x6c494a20, 0x2aa49: 0x6c494c20, 0x2aa4a: 0x6c494e20, 0x2aa4b: 0x6c495020, - 0x2aa4c: 0x6c495220, 0x2aa4d: 0x6c6aea20, 0x2aa4e: 0x6c6aec20, 0x2aa4f: 0x6c6aee20, - 0x2aa50: 0x6c6af020, 0x2aa51: 0x6c6af220, 0x2aa52: 0x6c6af420, 0x2aa53: 0x6c6af620, - 0x2aa54: 0x6c6af820, 0x2aa55: 0x6c6afa20, 0x2aa56: 0x6c6afc20, 0x2aa57: 0x6c6afe20, - 0x2aa58: 0x6c6b0020, 0x2aa59: 0x6c6b0220, 0x2aa5a: 0x6c6b0420, 0x2aa5b: 0x6c6b0620, - 0x2aa5c: 0x6c6b0820, 0x2aa5d: 0x6c6b0a20, 0x2aa5e: 0x6c6b0c20, 0x2aa5f: 0x6c6b0e20, - 0x2aa60: 0x6c1bd220, 0x2aa61: 0x6c6b1020, 0x2aa62: 0x6c6b1220, 0x2aa63: 0x6c6b1420, - 0x2aa64: 0x6c6b1620, 0x2aa65: 0x6c91da20, 0x2aa66: 0x6c91dc20, 0x2aa67: 0x6c91de20, - 0x2aa68: 0x6c91e020, 0x2aa69: 0x6c91e220, 0x2aa6a: 0x6c91e420, 0x2aa6b: 0x6c91e620, - 0x2aa6c: 0x6c91e820, 0x2aa6d: 0x6c91ea20, 0x2aa6e: 0x6cbdf220, 0x2aa6f: 0x6cbdf420, - 0x2aa70: 0x6cbdf620, 0x2aa71: 0x6cbdf820, 0x2aa72: 0x6cbdfa20, 0x2aa73: 0x6cbdfc20, - 0x2aa74: 0x6cbdfe20, 0x2aa75: 0x6cbe0020, 0x2aa76: 0x6cbe0220, 0x2aa77: 0x6cbe0420, - 0x2aa78: 0x6cbe0620, 0x2aa79: 0x6cbe0820, 0x2aa7a: 0x6cbe0a20, 0x2aa7b: 0x6cbe0c20, - 0x2aa7c: 0x6cbe0e20, 0x2aa7d: 0x6cbe1020, 0x2aa7e: 0x6cbe1220, 0x2aa7f: 0x6cbe1420, - // Block 0xaaa, offset 0x2aa80 - 0x2aa80: 0x6cbe1620, 0x2aa81: 0x6cbe1820, 0x2aa82: 0x6cbe1a20, 0x2aa83: 0x6cbe1c20, - 0x2aa84: 0x6cbe1e20, 0x2aa85: 0x6ceea620, 0x2aa86: 0x6ceea820, 0x2aa87: 0x6ceeaa20, - 0x2aa88: 0x6ceeac20, 0x2aa89: 0x6ceeae20, 0x2aa8a: 0x6ceeb020, 0x2aa8b: 0x6ceeb220, - 0x2aa8c: 0x6ceeb420, 0x2aa8d: 0x6ceeb620, 0x2aa8e: 0x6ceeb820, 0x2aa8f: 0x6ceeba20, - 0x2aa90: 0x6ceebc20, 0x2aa91: 0x6ceebe20, 0x2aa92: 0x6ceec020, 0x2aa93: 0x6ceec220, - 0x2aa94: 0x6ceec420, 0x2aa95: 0x6d1e5220, 0x2aa96: 0x6d1e5420, 0x2aa97: 0x6d1e5620, - 0x2aa98: 0x6d1e5820, 0x2aa99: 0x6d1e5a20, 0x2aa9a: 0x6d1e5c20, 0x2aa9b: 0x6d1e5e20, - 0x2aa9c: 0x6d1e6020, 0x2aa9d: 0x6d1e6220, 0x2aa9e: 0x6d1e6420, 0x2aa9f: 0x6d1e6620, - 0x2aaa0: 0x6d1e6820, 0x2aaa1: 0x6d1e6a20, 0x2aaa2: 0x6d1e6c20, 0x2aaa3: 0x6d4bde20, - 0x2aaa4: 0x6d4be020, 0x2aaa5: 0x6d4be220, 0x2aaa6: 0x6d4be420, 0x2aaa7: 0x6d4be620, - 0x2aaa8: 0x6d4be820, 0x2aaa9: 0x6d793820, 0x2aaaa: 0x6d793a20, 0x2aaab: 0x6d793c20, - 0x2aaac: 0x6d793e20, 0x2aaad: 0x6d794020, 0x2aaae: 0x6da22220, 0x2aaaf: 0x6da22420, - 0x2aab0: 0x6dc45420, 0x2aab1: 0x6dc45620, 0x2aab2: 0x6de15a20, 0x2aab3: 0x6de15c20, - 0x2aab4: 0x6de15e20, 0x2aab5: 0x6de16020, 0x2aab6: 0x6df95c20, 0x2aab7: 0x6df95e20, - 0x2aab8: 0x6df96020, 0x2aab9: 0x6e0d2820, 0x2aaba: 0x6e1c9820, 0x2aabb: 0x6e3d1620, - 0x2aabc: 0x6e3d1820, 0x2aabd: 0x6c0fa620, 0x2aabe: 0x6c1c6220, 0x2aabf: 0x6c1c6420, - // Block 0xaab, offset 0x2aac0 - 0x2aac0: 0x6c2fc820, 0x2aac1: 0x6c4a1c20, 0x2aac2: 0x6c6bdc20, 0x2aac3: 0x6c6bde20, - 0x2aac4: 0x6cbf4220, 0x2aac5: 0x6cef7820, 0x2aac6: 0x6d4cb620, 0x2aac7: 0x6d79e020, - 0x2aac8: 0x6e386820, 0x2aac9: 0x6c03f620, 0x2aaca: 0x6c081e20, 0x2aacb: 0x6c082020, - 0x2aacc: 0x6c0fb820, 0x2aacd: 0x6c0fba20, 0x2aace: 0x6c1c8620, 0x2aacf: 0x6c1c8820, - 0x2aad0: 0x6c1c8a20, 0x2aad1: 0x6c1c8c20, 0x2aad2: 0x6c2ffa20, 0x2aad3: 0x6c4a4020, - 0x2aad4: 0x6c4a4220, 0x2aad5: 0x6c4a4420, 0x2aad6: 0x6c4a4620, 0x2aad7: 0x6c6bf620, - 0x2aad8: 0x6c6bf820, 0x2aad9: 0x6c6bfa20, 0x2aada: 0x6c6bfc20, 0x2aadb: 0x6c932220, - 0x2aadc: 0x6c932420, 0x2aadd: 0x6c932620, 0x2aade: 0x6c932820, 0x2aadf: 0x6c932a20, - 0x2aae0: 0x6c932c20, 0x2aae1: 0x6c932e20, 0x2aae2: 0x6cbf6420, 0x2aae3: 0x6cbf6620, - 0x2aae4: 0x6cef9a20, 0x2aae5: 0x6cef9c20, 0x2aae6: 0x6cef9e20, 0x2aae7: 0x6cefa020, - 0x2aae8: 0x6cefa220, 0x2aae9: 0x6d1f3c20, 0x2aaea: 0x6d1f3e20, 0x2aaeb: 0x6d1f4020, - 0x2aaec: 0x6d1f4220, 0x2aaed: 0x6d4cc820, 0x2aaee: 0x6d4cca20, 0x2aaef: 0x6d4ccc20, - 0x2aaf0: 0x6dc49420, 0x2aaf1: 0x6e0d4620, 0x2aaf2: 0x6e3d1a20, 0x2aaf3: 0x6c083020, - 0x2aaf4: 0x6c1cbc20, 0x2aaf5: 0x6c304420, 0x2aaf6: 0x6c6c7220, 0x2aaf7: 0x6cbfd420, - 0x2aaf8: 0x6c6c7c20, 0x2aaf9: 0x6cbfea20, 0x2aafa: 0x6d1fba20, 0x2aafb: 0x6d4d3820, - 0x2aafc: 0x6c0ffa20, 0x2aafd: 0x6c1cd620, 0x2aafe: 0x6c306a20, 0x2aaff: 0x6c306c20, - // Block 0xaac, offset 0x2ab00 - 0x2ab00: 0x6c4aba20, 0x2ab01: 0x6c4abc20, 0x2ab02: 0x6c6c9420, 0x2ab03: 0x6c93b820, - 0x2ab04: 0x6c93ba20, 0x2ab05: 0x6c93bc20, 0x2ab06: 0x6c93be20, 0x2ab07: 0x6cc00220, - 0x2ab08: 0x6cc00420, 0x2ab09: 0x6cf01220, 0x2ab0a: 0x6cf01420, 0x2ab0b: 0x6c085020, - 0x2ab0c: 0x6c100a20, 0x2ab0d: 0x6c100c20, 0x2ab0e: 0x6c1cf820, 0x2ab0f: 0x6c308020, - 0x2ab10: 0x6c308220, 0x2ab11: 0x6c308420, 0x2ab12: 0x6c4acc20, 0x2ab13: 0x6c4ace20, - 0x2ab14: 0x6c4ad020, 0x2ab15: 0x6c4ad220, 0x2ab16: 0x6c4ad420, 0x2ab17: 0x6c6cac20, - 0x2ab18: 0x6c93cc20, 0x2ab19: 0x6c93ce20, 0x2ab1a: 0x6cc02020, 0x2ab1b: 0x6cc02220, - 0x2ab1c: 0x6d1fda20, 0x2ab1d: 0x6d1fdc20, 0x2ab1e: 0x6d1fde20, 0x2ab1f: 0x6d4d5e20, - 0x2ab20: 0x6d4d6020, 0x2ab21: 0x6de1be20, 0x2ab22: 0x6c040c20, 0x2ab23: 0x6c1d1e20, - 0x2ab24: 0x6c086420, 0x2ab25: 0x6c086620, 0x2ab26: 0x6c086820, 0x2ab27: 0x6c086a20, - 0x2ab28: 0x6c103620, 0x2ab29: 0x6c103820, 0x2ab2a: 0x6c103a20, 0x2ab2b: 0x6c103c20, - 0x2ab2c: 0x6c103e20, 0x2ab2d: 0x6c104020, 0x2ab2e: 0x6c104220, 0x2ab2f: 0x6c104420, - 0x2ab30: 0x6c1d2c20, 0x2ab31: 0x6c1d2e20, 0x2ab32: 0x6c1d3020, 0x2ab33: 0x6c1d3220, - 0x2ab34: 0x6c1d3420, 0x2ab35: 0x6c1d3620, 0x2ab36: 0x6c1d3820, 0x2ab37: 0x6c1d2020, - 0x2ab38: 0x6c1d3a20, 0x2ab39: 0x6c30b820, 0x2ab3a: 0x6c30ba20, 0x2ab3b: 0x6c30bc20, - 0x2ab3c: 0x6c30be20, 0x2ab3d: 0x6c30c020, 0x2ab3e: 0x6c30c220, 0x2ab3f: 0x6c30c420, - // Block 0xaad, offset 0x2ab40 - 0x2ab40: 0x6c30c620, 0x2ab41: 0x6c30c820, 0x2ab42: 0x6c30ca20, 0x2ab43: 0x6c30cc20, - 0x2ab44: 0x6c4b2020, 0x2ab45: 0x6c4b2220, 0x2ab46: 0x6c4b2420, 0x2ab47: 0x6c6d0020, - 0x2ab48: 0x6c6d0220, 0x2ab49: 0x6c6d0420, 0x2ab4a: 0x6c6d0620, 0x2ab4b: 0x6c6d0820, - 0x2ab4c: 0x6c6d0a20, 0x2ab4d: 0x6c6d0c20, 0x2ab4e: 0x6c6d0e20, 0x2ab4f: 0x6c6d1020, - 0x2ab50: 0x6c6d1220, 0x2ab51: 0x6c6d1420, 0x2ab52: 0x6c6d1620, 0x2ab53: 0x6c6d1820, - 0x2ab54: 0x6c6d1a20, 0x2ab55: 0x6c6d1c20, 0x2ab56: 0x6c6d1e20, 0x2ab57: 0x6c941620, - 0x2ab58: 0x6c941820, 0x2ab59: 0x6c941a20, 0x2ab5a: 0x6c941c20, 0x2ab5b: 0x6c941e20, - 0x2ab5c: 0x6c942020, 0x2ab5d: 0x6c942220, 0x2ab5e: 0x6c942420, 0x2ab5f: 0x6c942620, - 0x2ab60: 0x6c942820, 0x2ab61: 0x6c942a20, 0x2ab62: 0x6c942c20, 0x2ab63: 0x6c942e20, - 0x2ab64: 0x6c943020, 0x2ab65: 0x6c943220, 0x2ab66: 0x6cc07020, 0x2ab67: 0x6cc07220, - 0x2ab68: 0x6cc07420, 0x2ab69: 0x6cc07620, 0x2ab6a: 0x6cc07820, 0x2ab6b: 0x6cc07a20, - 0x2ab6c: 0x6cc07c20, 0x2ab6d: 0x6cc07e20, 0x2ab6e: 0x6cc08020, 0x2ab6f: 0x6cc08220, - 0x2ab70: 0x6cf06820, 0x2ab71: 0x6cf06a20, 0x2ab72: 0x6cf06c20, 0x2ab73: 0x6cf06e20, - 0x2ab74: 0x6cf07020, 0x2ab75: 0x6cf07220, 0x2ab76: 0x6cf07420, 0x2ab77: 0x6cf07620, - 0x2ab78: 0x6cf07820, 0x2ab79: 0x6d200020, 0x2ab7a: 0x6d200220, 0x2ab7b: 0x6d200420, - 0x2ab7c: 0x6d200620, 0x2ab7d: 0x6d200820, 0x2ab7e: 0x6d200a20, 0x2ab7f: 0x6d200c20, - // Block 0xaae, offset 0x2ab80 - 0x2ab80: 0x6d200e20, 0x2ab81: 0x6d201020, 0x2ab82: 0x6d201220, 0x2ab83: 0x6d201420, - 0x2ab84: 0x6d201620, 0x2ab85: 0x6d4d9420, 0x2ab86: 0x6d4d9620, 0x2ab87: 0x6d4d9820, - 0x2ab88: 0x6d4d9a20, 0x2ab89: 0x6d4d9c20, 0x2ab8a: 0x6d4d9e20, 0x2ab8b: 0x6d4da020, - 0x2ab8c: 0x6d4da220, 0x2ab8d: 0x6d4da420, 0x2ab8e: 0x6d4da620, 0x2ab8f: 0x6d4da820, - 0x2ab90: 0x6d4daa20, 0x2ab91: 0x6d7a6020, 0x2ab92: 0x6d7a6220, 0x2ab93: 0x6d7a6420, - 0x2ab94: 0x6d7a6620, 0x2ab95: 0x6d7a6820, 0x2ab96: 0x6d7a6a20, 0x2ab97: 0x6d7a6c20, - 0x2ab98: 0x6da2e220, 0x2ab99: 0x6da2e420, 0x2ab9a: 0x6da2e620, 0x2ab9b: 0x6da2e820, - 0x2ab9c: 0x6da2ea20, 0x2ab9d: 0x6dc4d020, 0x2ab9e: 0x6dc4d220, 0x2ab9f: 0x6dc4d420, - 0x2aba0: 0x6de1d020, 0x2aba1: 0x6de1d220, 0x2aba2: 0x6de1d420, 0x2aba3: 0x6de1d620, - 0x2aba4: 0x6df9b020, 0x2aba5: 0x6e0d7020, 0x2aba6: 0x6e0d7220, 0x2aba7: 0x6e1cd620, - 0x2aba8: 0x6e429020, 0x2aba9: 0x6c109220, 0x2abaa: 0x6c041c20, 0x2abab: 0x6c6de820, - 0x2abac: 0x6c6dea20, 0x2abad: 0x6cc16e20, 0x2abae: 0x6d4e4c20, 0x2abaf: 0x6c08a020, - 0x2abb0: 0x6c318820, 0x2abb1: 0x6c955820, 0x2abb2: 0x6c08a620, 0x2abb3: 0x6c08a820, - 0x2abb4: 0x6c10ae20, 0x2abb5: 0x6c10b020, 0x2abb6: 0x6c10b220, 0x2abb7: 0x6c1dea20, - 0x2abb8: 0x6c1dec20, 0x2abb9: 0x6c1dee20, 0x2abba: 0x6c1df020, 0x2abbb: 0x6c1df220, - 0x2abbc: 0x6c1df420, 0x2abbd: 0x6c319220, 0x2abbe: 0x6c319420, 0x2abbf: 0x6c319620, - // Block 0xaaf, offset 0x2abc0 - 0x2abc0: 0x6c319820, 0x2abc1: 0x6c4bf020, 0x2abc2: 0x6c4bf220, 0x2abc3: 0x6c4bf420, - 0x2abc4: 0x6c4bf620, 0x2abc5: 0x6c4bf820, 0x2abc6: 0x6c4bfa20, 0x2abc7: 0x6c6dfc20, - 0x2abc8: 0x6c6dfe20, 0x2abc9: 0x6c956420, 0x2abca: 0x6c956620, 0x2abcb: 0x6c956820, - 0x2abcc: 0x6c956a20, 0x2abcd: 0x6c956c20, 0x2abce: 0x6c956e20, 0x2abcf: 0x6cc18820, - 0x2abd0: 0x6cc18a20, 0x2abd1: 0x6cc18c20, 0x2abd2: 0x6cc18e20, 0x2abd3: 0x6cc19020, - 0x2abd4: 0x6cc19220, 0x2abd5: 0x6cc19420, 0x2abd6: 0x6cc19620, 0x2abd7: 0x6cf11a20, - 0x2abd8: 0x6cf11c20, 0x2abd9: 0x6cf11e20, 0x2abda: 0x6cf12020, 0x2abdb: 0x6cf12220, - 0x2abdc: 0x6d20c020, 0x2abdd: 0x6d20c220, 0x2abde: 0x6d20c420, 0x2abdf: 0x6d20c620, - 0x2abe0: 0x6d4e5a20, 0x2abe1: 0x6d4e5c20, 0x2abe2: 0x6d7ae820, 0x2abe3: 0x6d7aea20, - 0x2abe4: 0x6d7aec20, 0x2abe5: 0x6da35c20, 0x2abe6: 0x6da35e20, 0x2abe7: 0x6df9dc20, - 0x2abe8: 0x6df9de20, 0x2abe9: 0x6e1d0420, 0x2abea: 0x6e1d0620, 0x2abeb: 0x6cc1fc20, - 0x2abec: 0x6cc1fe20, 0x2abed: 0x6d210c20, 0x2abee: 0x6d7b2420, 0x2abef: 0x6c10e420, - 0x2abf0: 0x6c10e620, 0x2abf1: 0x6c10e820, 0x2abf2: 0x6c1e4220, 0x2abf3: 0x6c1e4420, - 0x2abf4: 0x6c31f220, 0x2abf5: 0x6c31f420, 0x2abf6: 0x6c31f620, 0x2abf7: 0x6c31f820, - 0x2abf8: 0x6c31fa20, 0x2abf9: 0x6c31fc20, 0x2abfa: 0x6c31fe20, 0x2abfb: 0x6c320020, - 0x2abfc: 0x6c4c6820, 0x2abfd: 0x6c4c6a20, 0x2abfe: 0x6c4c6c20, 0x2abff: 0x6c4c6e20, - // Block 0xab0, offset 0x2ac00 - 0x2ac00: 0x6c4c7020, 0x2ac01: 0x6c4c7220, 0x2ac02: 0x6c4c7420, 0x2ac03: 0x6c6e6020, - 0x2ac04: 0x6c6e6220, 0x2ac05: 0x6c6e6420, 0x2ac06: 0x6c6e6620, 0x2ac07: 0x6c6e6820, - 0x2ac08: 0x6c95d820, 0x2ac09: 0x6c95da20, 0x2ac0a: 0x6c95dc20, 0x2ac0b: 0x6c95de20, - 0x2ac0c: 0x6c95e020, 0x2ac0d: 0x6cc20420, 0x2ac0e: 0x6cc20620, 0x2ac0f: 0x6cc20820, - 0x2ac10: 0x6cc20a20, 0x2ac11: 0x6cf16a20, 0x2ac12: 0x6d211620, 0x2ac13: 0x6d211820, - 0x2ac14: 0x6d211a20, 0x2ac15: 0x6d211c20, 0x2ac16: 0x6d4eb620, 0x2ac17: 0x6d4eb820, - 0x2ac18: 0x6d4eba20, 0x2ac19: 0x6d7b2620, 0x2ac1a: 0x6d7b2820, 0x2ac1b: 0x6d7b2a20, - 0x2ac1c: 0x6d7b2c20, 0x2ac1d: 0x6de23020, 0x2ac1e: 0x6df9ec20, 0x2ac1f: 0x6c110820, - 0x2ac20: 0x6c324420, 0x2ac21: 0x6d217420, 0x2ac22: 0x6d4f0020, 0x2ac23: 0x6d7b5c20, - 0x2ac24: 0x6c1ea620, 0x2ac25: 0x6c4ce020, 0x2ac26: 0x6cf1b820, 0x2ac27: 0x6c044820, - 0x2ac28: 0x6c112020, 0x2ac29: 0x6c112220, 0x2ac2a: 0x6c112420, 0x2ac2b: 0x6c112620, - 0x2ac2c: 0x6c1eb220, 0x2ac2d: 0x6c1eb420, 0x2ac2e: 0x6c326020, 0x2ac2f: 0x6c326220, - 0x2ac30: 0x6c326420, 0x2ac31: 0x6c326620, 0x2ac32: 0x6c4cec20, 0x2ac33: 0x6c4cee20, - 0x2ac34: 0x6c4cf020, 0x2ac35: 0x6c4cf220, 0x2ac36: 0x6c4cf420, 0x2ac37: 0x6c4cf620, - 0x2ac38: 0x6c6ed820, 0x2ac39: 0x6c6eda20, 0x2ac3a: 0x6c966820, 0x2ac3b: 0x6c966a20, - 0x2ac3c: 0x6c966c20, 0x2ac3d: 0x6cc27e20, 0x2ac3e: 0x6cc28020, 0x2ac3f: 0x6cc28220, - // Block 0xab1, offset 0x2ac40 - 0x2ac40: 0x6cf1c220, 0x2ac41: 0x6cf1c420, 0x2ac42: 0x6cf1c620, 0x2ac43: 0x6d218420, - 0x2ac44: 0x6d4f0820, 0x2ac45: 0x6d4f0a20, 0x2ac46: 0x6e0dac20, 0x2ac47: 0x6c329a20, - 0x2ac48: 0x6d7b7820, 0x2ac49: 0x6c115620, 0x2ac4a: 0x6c1ede20, 0x2ac4b: 0x6c32a420, - 0x2ac4c: 0x6c32a620, 0x2ac4d: 0x6c32a820, 0x2ac4e: 0x6c96aa20, 0x2ac4f: 0x6cc2ae20, - 0x2ac50: 0x6cc2b020, 0x2ac51: 0x6d21b220, 0x2ac52: 0x6d4f2620, 0x2ac53: 0x6d7b8220, - 0x2ac54: 0x6c090020, 0x2ac55: 0x6c116020, 0x2ac56: 0x6c1eea20, 0x2ac57: 0x6c1eec20, - 0x2ac58: 0x6c32b420, 0x2ac59: 0x6c32b620, 0x2ac5a: 0x6c4d3c20, 0x2ac5b: 0x6c4d3e20, - 0x2ac5c: 0x6c4d4020, 0x2ac5d: 0x6c4d4220, 0x2ac5e: 0x6c4d4420, 0x2ac5f: 0x6c4d4620, - 0x2ac60: 0x6c4d4820, 0x2ac61: 0x6c4d4a20, 0x2ac62: 0x6c6f1220, 0x2ac63: 0x6c6f1420, - 0x2ac64: 0x6c96c620, 0x2ac65: 0x6c96c820, 0x2ac66: 0x6c96ca20, 0x2ac67: 0x6c96cc20, - 0x2ac68: 0x6c96ce20, 0x2ac69: 0x6c96d020, 0x2ac6a: 0x6cc2c020, 0x2ac6b: 0x6cc2c220, - 0x2ac6c: 0x6cc2c420, 0x2ac6d: 0x6cc2c620, 0x2ac6e: 0x6cc2c820, 0x2ac6f: 0x6cf1f620, - 0x2ac70: 0x6d21bc20, 0x2ac71: 0x6d21be20, 0x2ac72: 0x6d21c020, 0x2ac73: 0x6d4f3620, - 0x2ac74: 0x6d4f3820, 0x2ac75: 0x6d7b8c20, 0x2ac76: 0x6d7b8e20, 0x2ac77: 0x6da3c020, - 0x2ac78: 0x6de27220, 0x2ac79: 0x6dfa1a20, 0x2ac7a: 0x6c090620, 0x2ac7b: 0x6c116e20, - 0x2ac7c: 0x6c117220, 0x2ac7d: 0x6c1f1c20, 0x2ac7e: 0x6c117420, 0x2ac7f: 0x6c117620, - // Block 0xab2, offset 0x2ac80 - 0x2ac80: 0x6c1f1e20, 0x2ac81: 0x6c32e020, 0x2ac82: 0x6c32e220, 0x2ac83: 0x6c1f3220, - 0x2ac84: 0x6c1f3420, 0x2ac85: 0x6c32e420, 0x2ac86: 0x6c1f3620, 0x2ac87: 0x6c1f3820, - 0x2ac88: 0x6c1f3a20, 0x2ac89: 0x6c1f3c20, 0x2ac8a: 0x6c1f3e20, 0x2ac8b: 0x6c1f4020, - 0x2ac8c: 0x6c32fc20, 0x2ac8d: 0x6c4d7c20, 0x2ac8e: 0x6c4d7e20, 0x2ac8f: 0x6c32fe20, - 0x2ac90: 0x6c330020, 0x2ac91: 0x6c330220, 0x2ac92: 0x6c330420, 0x2ac93: 0x6c330620, - 0x2ac94: 0x6c330820, 0x2ac95: 0x6c330a20, 0x2ac96: 0x6c330c20, 0x2ac97: 0x6c4d8020, - 0x2ac98: 0x6c330e20, 0x2ac99: 0x6c4d8220, 0x2ac9a: 0x6c4da220, 0x2ac9b: 0x6c4da420, - 0x2ac9c: 0x6c4da620, 0x2ac9d: 0x6c4da820, 0x2ac9e: 0x6c4daa20, 0x2ac9f: 0x6c6f5620, - 0x2aca0: 0x6c6f5820, 0x2aca1: 0x6c4dac20, 0x2aca2: 0x6c4dae20, 0x2aca3: 0x6c6f5a20, - 0x2aca4: 0x6c4db020, 0x2aca5: 0x6c4db220, 0x2aca6: 0x6c4db420, 0x2aca7: 0x6c4db620, - 0x2aca8: 0x6c4db820, 0x2aca9: 0x6c6f5c20, 0x2acaa: 0x6c6f5e20, 0x2acab: 0x6c6f6020, - 0x2acac: 0x6c4dba20, 0x2acad: 0x6c4dbc20, 0x2acae: 0x6c972e20, 0x2acaf: 0x6c6f8a20, - 0x2acb0: 0x6c973020, 0x2acb1: 0x6c6f8c20, 0x2acb2: 0x6c973220, 0x2acb3: 0x6c6f8e20, - 0x2acb4: 0x6c6f9020, 0x2acb5: 0x6c973420, 0x2acb6: 0x6c6f9220, 0x2acb7: 0x6c6f9420, - 0x2acb8: 0x6c6f9620, 0x2acb9: 0x6c6f9820, 0x2acba: 0x6c4dbe20, 0x2acbb: 0x6c973620, - 0x2acbc: 0x6c6f9a20, 0x2acbd: 0x6c6f9c20, 0x2acbe: 0x6c975620, 0x2acbf: 0x6c975820, - // Block 0xab3, offset 0x2acc0 - 0x2acc0: 0x6c975a20, 0x2acc1: 0x6cc30420, 0x2acc2: 0x6c975c20, 0x2acc3: 0x6c975e20, - 0x2acc4: 0x6c976020, 0x2acc5: 0x6c976220, 0x2acc6: 0x6c976420, 0x2acc7: 0x6c976620, - 0x2acc8: 0x6cc30620, 0x2acc9: 0x6c976820, 0x2acca: 0x6c976a20, 0x2accb: 0x6cc30820, - 0x2accc: 0x6c976c20, 0x2accd: 0x6c976e20, 0x2acce: 0x6cc30a20, 0x2accf: 0x6c977020, - 0x2acd0: 0x6cc30c20, 0x2acd1: 0x6cc30e20, 0x2acd2: 0x6c977220, 0x2acd3: 0x6c977420, - 0x2acd4: 0x6c977620, 0x2acd5: 0x6cc31020, 0x2acd6: 0x6cc31220, 0x2acd7: 0x6c977820, - 0x2acd8: 0x6c977a20, 0x2acd9: 0x6c977c20, 0x2acda: 0x6cc33c20, 0x2acdb: 0x6cc33e20, - 0x2acdc: 0x6cc34020, 0x2acdd: 0x6cc34220, 0x2acde: 0x6cc34420, 0x2acdf: 0x6cc34620, - 0x2ace0: 0x6cc34820, 0x2ace1: 0x6cc34a20, 0x2ace2: 0x6cc34c20, 0x2ace3: 0x6cf24220, - 0x2ace4: 0x6cf24420, 0x2ace5: 0x6cc34e20, 0x2ace6: 0x6cf24620, 0x2ace7: 0x6cc35020, - 0x2ace8: 0x6cf24820, 0x2ace9: 0x6cc35220, 0x2acea: 0x6cc35420, 0x2aceb: 0x6cc35620, - 0x2acec: 0x6cf26620, 0x2aced: 0x6cf26820, 0x2acee: 0x6cf26a20, 0x2acef: 0x6d220420, - 0x2acf0: 0x6cf26c20, 0x2acf1: 0x6cf26e20, 0x2acf2: 0x6d220620, 0x2acf3: 0x6cf27020, - 0x2acf4: 0x6cf27220, 0x2acf5: 0x6cf27420, 0x2acf6: 0x6d220820, 0x2acf7: 0x6d220a20, - 0x2acf8: 0x6d220c20, 0x2acf9: 0x6d220e20, 0x2acfa: 0x6cf27620, 0x2acfb: 0x6d221020, - 0x2acfc: 0x6d222a20, 0x2acfd: 0x6d222c20, 0x2acfe: 0x6d222e20, 0x2acff: 0x6d4f6420, - // Block 0xab4, offset 0x2ad00 - 0x2ad00: 0x6d223020, 0x2ad01: 0x6d4f6620, 0x2ad02: 0x6d4f6820, 0x2ad03: 0x6d223220, - 0x2ad04: 0x6d4f6a20, 0x2ad05: 0x6d223420, 0x2ad06: 0x6d223620, 0x2ad07: 0x6d223820, - 0x2ad08: 0x6d223a20, 0x2ad09: 0x6d4f9820, 0x2ad0a: 0x6d4f9a20, 0x2ad0b: 0x6d4f9c20, - 0x2ad0c: 0x6d7bb220, 0x2ad0d: 0x6d4f9e20, 0x2ad0e: 0x6d4fa020, 0x2ad0f: 0x6d4fa220, - 0x2ad10: 0x6d4fa420, 0x2ad11: 0x6d4fa620, 0x2ad12: 0x6d4fa820, 0x2ad13: 0x6d4faa20, - 0x2ad14: 0x6d7bb420, 0x2ad15: 0x6d4fac20, 0x2ad16: 0x6d4fae20, 0x2ad17: 0x6d7bce20, - 0x2ad18: 0x6da3d420, 0x2ad19: 0x6d7bd020, 0x2ad1a: 0x6dc57420, 0x2ad1b: 0x6dc57620, - 0x2ad1c: 0x6da3e620, 0x2ad1d: 0x6dc57820, 0x2ad1e: 0x6dc57a20, 0x2ad1f: 0x6dc57c20, - 0x2ad20: 0x6da3e820, 0x2ad21: 0x6dc58820, 0x2ad22: 0x6dc58a20, 0x2ad23: 0x6dfa2a20, - 0x2ad24: 0x6dfa2c20, 0x2ad25: 0x6de28420, 0x2ad26: 0x6de28620, 0x2ad27: 0x6de28820, - 0x2ad28: 0x6dfa3020, 0x2ad29: 0x6dfa3220, 0x2ad2a: 0x6dfa3420, 0x2ad2b: 0x6e1d3420, - 0x2ad2c: 0x6e1d3620, 0x2ad2d: 0x6e403c20, 0x2ad2e: 0x6c1ffc20, 0x2ad2f: 0x6c1ffe20, - 0x2ad30: 0x6c33dc20, 0x2ad31: 0x6c33de20, 0x2ad32: 0x6c33e020, 0x2ad33: 0x6c4e9e20, - 0x2ad34: 0x6c709620, 0x2ad35: 0x6c709820, 0x2ad36: 0x6c709a20, 0x2ad37: 0x6c98b620, - 0x2ad38: 0x6cc48e20, 0x2ad39: 0x6cf37620, 0x2ad3a: 0x6d233220, 0x2ad3b: 0x6d50be20, - 0x2ad3c: 0x6d50c020, 0x2ad3d: 0x6da46820, 0x2ad3e: 0x6c201620, 0x2ad3f: 0x6c340220, - // Block 0xab5, offset 0x2ad40 - 0x2ad40: 0x6c340420, 0x2ad41: 0x6c4ec820, 0x2ad42: 0x6c4eca20, 0x2ad43: 0x6c093220, - 0x2ad44: 0x6c093420, 0x2ad45: 0x6c093620, 0x2ad46: 0x6c11d620, 0x2ad47: 0x6c11d820, - 0x2ad48: 0x6c11da20, 0x2ad49: 0x6c202820, 0x2ad4a: 0x6c202a20, 0x2ad4b: 0x6c202c20, - 0x2ad4c: 0x6c202e20, 0x2ad4d: 0x6c203020, 0x2ad4e: 0x6c203220, 0x2ad4f: 0x6c203420, - 0x2ad50: 0x6c203620, 0x2ad51: 0x6c203820, 0x2ad52: 0x6c341e20, 0x2ad53: 0x6c342020, - 0x2ad54: 0x6c342220, 0x2ad55: 0x6c342420, 0x2ad56: 0x6c342620, 0x2ad57: 0x6c342820, - 0x2ad58: 0x6c4ef220, 0x2ad59: 0x6c342a20, 0x2ad5a: 0x6c342c20, 0x2ad5b: 0x6c342e20, - 0x2ad5c: 0x6c343020, 0x2ad5d: 0x6c343220, 0x2ad5e: 0x6c343420, 0x2ad5f: 0x6c343620, - 0x2ad60: 0x6c343820, 0x2ad61: 0x6c4ef820, 0x2ad62: 0x6c4efa20, 0x2ad63: 0x6c4efc20, - 0x2ad64: 0x6c4efe20, 0x2ad65: 0x6c4f0020, 0x2ad66: 0x6c4f0220, 0x2ad67: 0x6c4f0420, - 0x2ad68: 0x6c4f0620, 0x2ad69: 0x6c4f0820, 0x2ad6a: 0x6c4f0a20, 0x2ad6b: 0x6c4f0c20, - 0x2ad6c: 0x6c70ca20, 0x2ad6d: 0x6c70cc20, 0x2ad6e: 0x6c4f0e20, 0x2ad6f: 0x6c4f1020, - 0x2ad70: 0x6c4f1220, 0x2ad71: 0x6c70ce20, 0x2ad72: 0x6c70e020, 0x2ad73: 0x6c98e220, - 0x2ad74: 0x6c70e220, 0x2ad75: 0x6c70e420, 0x2ad76: 0x6c70e620, 0x2ad77: 0x6c70e820, - 0x2ad78: 0x6c70ea20, 0x2ad79: 0x6c98e820, 0x2ad7a: 0x6c98ea20, 0x2ad7b: 0x6c98ec20, - 0x2ad7c: 0x6c98ee20, 0x2ad7d: 0x6c98f020, 0x2ad7e: 0x6c98f220, 0x2ad7f: 0x6c98f420, - // Block 0xab6, offset 0x2ad80 - 0x2ad80: 0x6c98f620, 0x2ad81: 0x6c98f820, 0x2ad82: 0x6c98fa20, 0x2ad83: 0x6c98fc20, - 0x2ad84: 0x6c98fe20, 0x2ad85: 0x6c990020, 0x2ad86: 0x6c990220, 0x2ad87: 0x6cc4bc20, - 0x2ad88: 0x6c990420, 0x2ad89: 0x6cc4c820, 0x2ad8a: 0x6cc4ca20, 0x2ad8b: 0x6cc4cc20, - 0x2ad8c: 0x6cf3a820, 0x2ad8d: 0x6cf3aa20, 0x2ad8e: 0x6cc4ce20, 0x2ad8f: 0x6cc4d020, - 0x2ad90: 0x6cc4d220, 0x2ad91: 0x6cc4d420, 0x2ad92: 0x6cc4d620, 0x2ad93: 0x6cc4d820, - 0x2ad94: 0x6cc4da20, 0x2ad95: 0x6cc4dc20, 0x2ad96: 0x6cc66c20, 0x2ad97: 0x6cc4de20, - 0x2ad98: 0x6cc4e020, 0x2ad99: 0x6cf3b220, 0x2ad9a: 0x6cf3b420, 0x2ad9b: 0x6cf3b620, - 0x2ad9c: 0x6cf3b820, 0x2ad9d: 0x6cf3ba20, 0x2ad9e: 0x6cf3bc20, 0x2ad9f: 0x6cf3be20, - 0x2ada0: 0x6cf3c020, 0x2ada1: 0x6cf3c220, 0x2ada2: 0x6cf3c420, 0x2ada3: 0x6cf3c620, - 0x2ada4: 0x6cf3c820, 0x2ada5: 0x6cf3ca20, 0x2ada6: 0x6cf3cc20, 0x2ada7: 0x6cf3ce20, - 0x2ada8: 0x6cf3d020, 0x2ada9: 0x6cf3d220, 0x2adaa: 0x6cf3d420, 0x2adab: 0x6cf3d620, - 0x2adac: 0x6cf3d820, 0x2adad: 0x6d237220, 0x2adae: 0x6d237420, 0x2adaf: 0x6d237620, - 0x2adb0: 0x6d237820, 0x2adb1: 0x6d237a20, 0x2adb2: 0x6d237c20, 0x2adb3: 0x6d237e20, - 0x2adb4: 0x6d238020, 0x2adb5: 0x6d238220, 0x2adb6: 0x6d238420, 0x2adb7: 0x6d238620, - 0x2adb8: 0x6d238820, 0x2adb9: 0x6d238a20, 0x2adba: 0x6d238c20, 0x2adbb: 0x6d50fc20, - 0x2adbc: 0x6d50fe20, 0x2adbd: 0x6d238e20, 0x2adbe: 0x6d239020, 0x2adbf: 0x6d239220, - // Block 0xab7, offset 0x2adc0 - 0x2adc0: 0x6d239420, 0x2adc1: 0x6d239620, 0x2adc2: 0x6d239820, 0x2adc3: 0x6d511020, - 0x2adc4: 0x6d511220, 0x2adc5: 0x6d511420, 0x2adc6: 0x6d511620, 0x2adc7: 0x6d511820, - 0x2adc8: 0x6d511a20, 0x2adc9: 0x6d511c20, 0x2adca: 0x6d511e20, 0x2adcb: 0x6d512020, - 0x2adcc: 0x6d512220, 0x2adcd: 0x6d512420, 0x2adce: 0x6d512620, 0x2adcf: 0x6d512820, - 0x2add0: 0x6d512a20, 0x2add1: 0x6d512c20, 0x2add2: 0x6d7cb420, 0x2add3: 0x6da47a20, - 0x2add4: 0x6d7cb620, 0x2add5: 0x6d7cb820, 0x2add6: 0x6d7cba20, 0x2add7: 0x6d7cbc20, - 0x2add8: 0x6d7cbe20, 0x2add9: 0x6d7cc020, 0x2adda: 0x6da48220, 0x2addb: 0x6da48420, - 0x2addc: 0x6da48620, 0x2addd: 0x6da48820, 0x2adde: 0x6da48a20, 0x2addf: 0x6da48c20, - 0x2ade0: 0x6dc60e20, 0x2ade1: 0x6dc61020, 0x2ade2: 0x6dc61220, 0x2ade3: 0x6dc61420, - 0x2ade4: 0x6dc61620, 0x2ade5: 0x6dc61820, 0x2ade6: 0x6dc61a20, 0x2ade7: 0x6dc61c20, - 0x2ade8: 0x6dc61e20, 0x2ade9: 0x6dc62020, 0x2adea: 0x6dc62220, 0x2adeb: 0x6dc62420, - 0x2adec: 0x6de2ea20, 0x2aded: 0x6de2ec20, 0x2adee: 0x6dfa5c20, 0x2adef: 0x6dfa5e20, - 0x2adf0: 0x6dfa6020, 0x2adf1: 0x6e0df020, 0x2adf2: 0x6e0df220, 0x2adf3: 0x6e0df420, - 0x2adf4: 0x6e0df620, 0x2adf5: 0x6e28f820, 0x2adf6: 0x6e28fa20, 0x2adf7: 0x6e28fc20, - 0x2adf8: 0x6e389020, 0x2adf9: 0x6e389220, 0x2adfa: 0x6c352e20, 0x2adfb: 0x6c722220, - 0x2adfc: 0x6c722420, 0x2adfd: 0x6c9a9420, 0x2adfe: 0x6cc67020, 0x2adff: 0x6c211c20, - // Block 0xab8, offset 0x2ae00 - 0x2ae00: 0x6c211e20, 0x2ae01: 0x6c354020, 0x2ae02: 0x6c354220, 0x2ae03: 0x6c503420, - 0x2ae04: 0x6c503620, 0x2ae05: 0x6c503820, 0x2ae06: 0x6c503a20, 0x2ae07: 0x6c723620, - 0x2ae08: 0x6c723820, 0x2ae09: 0x6c723a20, 0x2ae0a: 0x6c9aa020, 0x2ae0b: 0x6c9aa220, - 0x2ae0c: 0x6c9aa420, 0x2ae0d: 0x6c9aa620, 0x2ae0e: 0x6c9aa820, 0x2ae0f: 0x6cc68220, - 0x2ae10: 0x6cc68420, 0x2ae11: 0x6cc68620, 0x2ae12: 0x6cc68820, 0x2ae13: 0x6cc68a20, - 0x2ae14: 0x6cc68c20, 0x2ae15: 0x6cc68e20, 0x2ae16: 0x6cc69020, 0x2ae17: 0x6cc69220, - 0x2ae18: 0x6cc69420, 0x2ae19: 0x6cc69620, 0x2ae1a: 0x6cc69820, 0x2ae1b: 0x6cf52c20, - 0x2ae1c: 0x6cf52e20, 0x2ae1d: 0x6cf53020, 0x2ae1e: 0x6cf53220, 0x2ae1f: 0x6cf53420, - 0x2ae20: 0x6d24f020, 0x2ae21: 0x6d24f220, 0x2ae22: 0x6d24f420, 0x2ae23: 0x6d24f620, - 0x2ae24: 0x6d527220, 0x2ae25: 0x6d527420, 0x2ae26: 0x6d527620, 0x2ae27: 0x6d7dae20, - 0x2ae28: 0x6d7db020, 0x2ae29: 0x6d7db220, 0x2ae2a: 0x6d7db420, 0x2ae2b: 0x6dc6b620, - 0x2ae2c: 0x6dc6b820, 0x2ae2d: 0x6dfab220, 0x2ae2e: 0x6e0e2c20, 0x2ae2f: 0x6c213a20, - 0x2ae30: 0x6c728c20, 0x2ae31: 0x6cf58c20, 0x2ae32: 0x6c124020, 0x2ae33: 0x6c124220, - 0x2ae34: 0x6c358220, 0x2ae35: 0x6c507a20, 0x2ae36: 0x6c729a20, 0x2ae37: 0x6c9b2820, - 0x2ae38: 0x6cc71420, 0x2ae39: 0x6d52cc20, 0x2ae3a: 0x6da54220, 0x2ae3b: 0x6e292a20, - 0x2ae3c: 0x6c508220, 0x2ae3d: 0x6c508420, 0x2ae3e: 0x6c72aa20, 0x2ae3f: 0x6c72ac20, - // Block 0xab9, offset 0x2ae40 - 0x2ae40: 0x6cc72420, 0x2ae41: 0x6d255620, 0x2ae42: 0x6d52d620, 0x2ae43: 0x6c124620, - 0x2ae44: 0x6c359e20, 0x2ae45: 0x6c72b420, 0x2ae46: 0x6c508e20, 0x2ae47: 0x6c72b620, - 0x2ae48: 0x6c72b820, 0x2ae49: 0x6c72ba20, 0x2ae4a: 0x6c9b4220, 0x2ae4b: 0x6c9b4420, - 0x2ae4c: 0x6c9b4620, 0x2ae4d: 0x6cc74420, 0x2ae4e: 0x6d52e420, 0x2ae4f: 0x6d52e620, - 0x2ae50: 0x6c124c20, 0x2ae51: 0x6c124e20, 0x2ae52: 0x6c215020, 0x2ae53: 0x6c215220, - 0x2ae54: 0x6c215420, 0x2ae55: 0x6c215620, 0x2ae56: 0x6c215820, 0x2ae57: 0x6c215a20, - 0x2ae58: 0x6c35b020, 0x2ae59: 0x6c35b220, 0x2ae5a: 0x6c35b420, 0x2ae5b: 0x6c50b020, - 0x2ae5c: 0x6c50b220, 0x2ae5d: 0x6c50b420, 0x2ae5e: 0x6c50b620, 0x2ae5f: 0x6c50b820, - 0x2ae60: 0x6c50ba20, 0x2ae61: 0x6c50bc20, 0x2ae62: 0x6c50be20, 0x2ae63: 0x6c50c020, - 0x2ae64: 0x6c50c220, 0x2ae65: 0x6c72f020, 0x2ae66: 0x6c72f220, 0x2ae67: 0x6c72f420, - 0x2ae68: 0x6c72f620, 0x2ae69: 0x6c72f820, 0x2ae6a: 0x6c72fa20, 0x2ae6b: 0x6c72fc20, - 0x2ae6c: 0x6c72fe20, 0x2ae6d: 0x6c730020, 0x2ae6e: 0x6c730220, 0x2ae6f: 0x6c9b7020, - 0x2ae70: 0x6c9b7220, 0x2ae71: 0x6c9b7420, 0x2ae72: 0x6c9b7620, 0x2ae73: 0x6c9b7820, - 0x2ae74: 0x6c9b7a20, 0x2ae75: 0x6cc76e20, 0x2ae76: 0x6cc77020, 0x2ae77: 0x6cc77220, - 0x2ae78: 0x6cc77420, 0x2ae79: 0x6cc77620, 0x2ae7a: 0x6cc77820, 0x2ae7b: 0x6cc77a20, - 0x2ae7c: 0x6cc77c20, 0x2ae7d: 0x6cc77e20, 0x2ae7e: 0x6cc78020, 0x2ae7f: 0x6cc78220, - // Block 0xaba, offset 0x2ae80 - 0x2ae80: 0x6cc78420, 0x2ae81: 0x6cf5d820, 0x2ae82: 0x6cf5da20, 0x2ae83: 0x6cf5dc20, - 0x2ae84: 0x6cf5de20, 0x2ae85: 0x6cf5e020, 0x2ae86: 0x6cf5e220, 0x2ae87: 0x6cf5e420, - 0x2ae88: 0x6cf5e620, 0x2ae89: 0x6cf5e820, 0x2ae8a: 0x6cf5ea20, 0x2ae8b: 0x6cf5ec20, - 0x2ae8c: 0x6cf5ee20, 0x2ae8d: 0x6d257620, 0x2ae8e: 0x6d257820, 0x2ae8f: 0x6d257a20, - 0x2ae90: 0x6d257c20, 0x2ae91: 0x6d52f420, 0x2ae92: 0x6d52f620, 0x2ae93: 0x6d52f820, - 0x2ae94: 0x6d52fa20, 0x2ae95: 0x6d52fc20, 0x2ae96: 0x6d52fe20, 0x2ae97: 0x6d7e3220, - 0x2ae98: 0x6d7e3420, 0x2ae99: 0x6d7e3620, 0x2ae9a: 0x6d7e3820, 0x2ae9b: 0x6d7e3a20, - 0x2ae9c: 0x6d7e3c20, 0x2ae9d: 0x6d7e3e20, 0x2ae9e: 0x6d7e4020, 0x2ae9f: 0x6d7e4220, - 0x2aea0: 0x6da55e20, 0x2aea1: 0x6da56020, 0x2aea2: 0x6da56220, 0x2aea3: 0x6dc6fa20, - 0x2aea4: 0x6dc6fc20, 0x2aea5: 0x6dc6fe20, 0x2aea6: 0x6dc70020, 0x2aea7: 0x6dc70220, - 0x2aea8: 0x6dc70420, 0x2aea9: 0x6de38420, 0x2aeaa: 0x6de38620, 0x2aeab: 0x6dfade20, - 0x2aeac: 0x6e1d9a20, 0x2aead: 0x6e1d9c20, 0x2aeae: 0x6e292e20, 0x2aeaf: 0x6e38a620, - 0x2aeb0: 0x6c126e20, 0x2aeb1: 0x6d7ed420, 0x2aeb2: 0x6da5aa20, 0x2aeb3: 0x6c364a20, - 0x2aeb4: 0x6c73aa20, 0x2aeb5: 0x6c73ac20, 0x2aeb6: 0x6c9c1620, 0x2aeb7: 0x6c9c1820, - 0x2aeb8: 0x6cc85820, 0x2aeb9: 0x6cd95a20, 0x2aeba: 0x6d260220, 0x2aebb: 0x6d260420, - 0x2aebc: 0x6d538020, 0x2aebd: 0x6d538220, 0x2aebe: 0x6d538420, 0x2aebf: 0x6d7ee420, - // Block 0xabb, offset 0x2aec0 - 0x2aec0: 0x6da5b020, 0x2aec1: 0x6c127a20, 0x2aec2: 0x6c21b020, 0x2aec3: 0x6c21b220, - 0x2aec4: 0x6c21b420, 0x2aec5: 0x6c21b620, 0x2aec6: 0x6c21b820, 0x2aec7: 0x6c365820, - 0x2aec8: 0x6c365a20, 0x2aec9: 0x6c365c20, 0x2aeca: 0x6c365e20, 0x2aecb: 0x6c366020, - 0x2aecc: 0x6c366220, 0x2aecd: 0x6c366420, 0x2aece: 0x6c366620, 0x2aecf: 0x6c366820, - 0x2aed0: 0x6c366a20, 0x2aed1: 0x6c518620, 0x2aed2: 0x6c518820, 0x2aed3: 0x6c518a20, - 0x2aed4: 0x6c518c20, 0x2aed5: 0x6c518e20, 0x2aed6: 0x6c519020, 0x2aed7: 0x6c519220, - 0x2aed8: 0x6c73c620, 0x2aed9: 0x6c73c820, 0x2aeda: 0x6c73ca20, 0x2aedb: 0x6c73cc20, - 0x2aedc: 0x6c73ce20, 0x2aedd: 0x6c73d020, 0x2aede: 0x6c73d220, 0x2aedf: 0x6c73d420, - 0x2aee0: 0x6c73d620, 0x2aee1: 0x6c73d820, 0x2aee2: 0x6c73da20, 0x2aee3: 0x6c73dc20, - 0x2aee4: 0x6c73de20, 0x2aee5: 0x6c73e020, 0x2aee6: 0x6c73e220, 0x2aee7: 0x6c73e420, - 0x2aee8: 0x6c9c3620, 0x2aee9: 0x6c9c3820, 0x2aeea: 0x6c9c3a20, 0x2aeeb: 0x6c9c3c20, - 0x2aeec: 0x6c9c3e20, 0x2aeed: 0x6c9c4020, 0x2aeee: 0x6c9c4220, 0x2aeef: 0x6c9c4420, - 0x2aef0: 0x6c9c4620, 0x2aef1: 0x6c9c4820, 0x2aef2: 0x6c9c4a20, 0x2aef3: 0x6c9c4c20, - 0x2aef4: 0x6c9c4e20, 0x2aef5: 0x6c9c5020, 0x2aef6: 0x6cc88620, 0x2aef7: 0x6c9c5220, - 0x2aef8: 0x6cc88820, 0x2aef9: 0x6cc88a20, 0x2aefa: 0x6cc88c20, 0x2aefb: 0x6cc88e20, - 0x2aefc: 0x6cc89020, 0x2aefd: 0x6cc89220, 0x2aefe: 0x6cc89420, 0x2aeff: 0x6cc89620, - // Block 0xabc, offset 0x2af00 - 0x2af00: 0x6cc89820, 0x2af01: 0x6cc89a20, 0x2af02: 0x6cc89c20, 0x2af03: 0x6cc89e20, - 0x2af04: 0x6cc8a020, 0x2af05: 0x6cc8a220, 0x2af06: 0x6cc8a420, 0x2af07: 0x6cc8a620, - 0x2af08: 0x6cc8a820, 0x2af09: 0x6cc8aa20, 0x2af0a: 0x6cc8ac20, 0x2af0b: 0x6cf6b220, - 0x2af0c: 0x6cf6b420, 0x2af0d: 0x6cf6b620, 0x2af0e: 0x6cf6b820, 0x2af0f: 0x6cf6ba20, - 0x2af10: 0x6cf6bc20, 0x2af11: 0x6cf6be20, 0x2af12: 0x6cf6c020, 0x2af13: 0x6cf6c220, - 0x2af14: 0x6cf6c420, 0x2af15: 0x6cf6c620, 0x2af16: 0x6cf6c820, 0x2af17: 0x6cf6ca20, - 0x2af18: 0x6cf6cc20, 0x2af19: 0x6cf6ce20, 0x2af1a: 0x6cf6d020, 0x2af1b: 0x6cf6d220, - 0x2af1c: 0x6cf6d420, 0x2af1d: 0x6cf6d620, 0x2af1e: 0x6cf6d820, 0x2af1f: 0x6cf6da20, - 0x2af20: 0x6cf6dc20, 0x2af21: 0x6cfbd820, 0x2af22: 0x6cf6de20, 0x2af23: 0x6cf6e020, - 0x2af24: 0x6d261a20, 0x2af25: 0x6d261c20, 0x2af26: 0x6d261e20, 0x2af27: 0x6d262020, - 0x2af28: 0x6d262220, 0x2af29: 0x6d262420, 0x2af2a: 0x6d262620, 0x2af2b: 0x6d262820, - 0x2af2c: 0x6d262a20, 0x2af2d: 0x6d262c20, 0x2af2e: 0x6d262e20, 0x2af2f: 0x6d263020, - 0x2af30: 0x6d263220, 0x2af31: 0x6d263420, 0x2af32: 0x6d263620, 0x2af33: 0x6d263820, - 0x2af34: 0x6d263a20, 0x2af35: 0x6d263c20, 0x2af36: 0x6d263e20, 0x2af37: 0x6d264020, - 0x2af38: 0x6d264220, 0x2af39: 0x6d264420, 0x2af3a: 0x6d264620, 0x2af3b: 0x6d264820, - 0x2af3c: 0x6d264a20, 0x2af3d: 0x6d264c20, 0x2af3e: 0x6d539e20, 0x2af3f: 0x6d53a020, - // Block 0xabd, offset 0x2af40 - 0x2af40: 0x6d53a220, 0x2af41: 0x6d53a420, 0x2af42: 0x6d53a620, 0x2af43: 0x6d53a820, - 0x2af44: 0x6d53aa20, 0x2af45: 0x6d53ac20, 0x2af46: 0x6d53ae20, 0x2af47: 0x6d53b020, - 0x2af48: 0x6d53b220, 0x2af49: 0x6d53b420, 0x2af4a: 0x6d53b620, 0x2af4b: 0x6d53b820, - 0x2af4c: 0x6d53ba20, 0x2af4d: 0x6d53bc20, 0x2af4e: 0x6d53be20, 0x2af4f: 0x6d53c020, - 0x2af50: 0x6d7f0220, 0x2af51: 0x6d53c220, 0x2af52: 0x6d53c420, 0x2af53: 0x6d7f0420, - 0x2af54: 0x6d7f0620, 0x2af55: 0x6d7f0820, 0x2af56: 0x6d7f0a20, 0x2af57: 0x6d7f0c20, - 0x2af58: 0x6d7f0e20, 0x2af59: 0x6d7f1020, 0x2af5a: 0x6d7f1220, 0x2af5b: 0x6d7f1420, - 0x2af5c: 0x6d7f1620, 0x2af5d: 0x6d7f1820, 0x2af5e: 0x6d7f1a20, 0x2af5f: 0x6d7f1c20, - 0x2af60: 0x6d53c620, 0x2af61: 0x6d7f1e20, 0x2af62: 0x6d7f2020, 0x2af63: 0x6d7f2220, - 0x2af64: 0x6d7f2420, 0x2af65: 0x6d7f2620, 0x2af66: 0x6d7f2820, 0x2af67: 0x6d7f2a20, - 0x2af68: 0x6d7f2c20, 0x2af69: 0x6d7f2e20, 0x2af6a: 0x6da5c220, 0x2af6b: 0x6da5c420, - 0x2af6c: 0x6da5c620, 0x2af6d: 0x6da5c820, 0x2af6e: 0x6da5ca20, 0x2af6f: 0x6da5cc20, - 0x2af70: 0x6da5ce20, 0x2af71: 0x6da5d020, 0x2af72: 0x6da5d220, 0x2af73: 0x6da5d420, - 0x2af74: 0x6da5d620, 0x2af75: 0x6da5d820, 0x2af76: 0x6da5da20, 0x2af77: 0x6dc75420, - 0x2af78: 0x6dc75620, 0x2af79: 0x6dc75820, 0x2af7a: 0x6dc75a20, 0x2af7b: 0x6dc75c20, - 0x2af7c: 0x6dc75e20, 0x2af7d: 0x6dc76020, 0x2af7e: 0x6de3b420, 0x2af7f: 0x6de3b620, - // Block 0xabe, offset 0x2af80 - 0x2af80: 0x6de3b820, 0x2af81: 0x6de3ba20, 0x2af82: 0x6de3bc20, 0x2af83: 0x6de3be20, - 0x2af84: 0x6de3c020, 0x2af85: 0x6de3c220, 0x2af86: 0x6de3c420, 0x2af87: 0x6de3c620, - 0x2af88: 0x6de3c820, 0x2af89: 0x6dfb0820, 0x2af8a: 0x6dfb0a20, 0x2af8b: 0x6dfb0c20, - 0x2af8c: 0x6dfb0e20, 0x2af8d: 0x6dfb1020, 0x2af8e: 0x6dfb1220, 0x2af8f: 0x6dfb1420, - 0x2af90: 0x6dfb1620, 0x2af91: 0x6dfb1820, 0x2af92: 0x6dfb1a20, 0x2af93: 0x6dfb1c20, - 0x2af94: 0x6e0e5e20, 0x2af95: 0x6e0e6020, 0x2af96: 0x6dfb1e20, 0x2af97: 0x6e1db220, - 0x2af98: 0x6e1db420, 0x2af99: 0x6e293a20, 0x2af9a: 0x6e293c20, 0x2af9b: 0x6e293e20, - 0x2af9c: 0x6e294020, 0x2af9d: 0x6c223820, 0x2af9e: 0x6c223a20, 0x2af9f: 0x6c376620, - 0x2afa0: 0x6c376820, 0x2afa1: 0x6c376a20, 0x2afa2: 0x6c376c20, 0x2afa3: 0x6c52c220, - 0x2afa4: 0x6c52c420, 0x2afa5: 0x6c52c620, 0x2afa6: 0x6c52c820, 0x2afa7: 0x6c52ca20, - 0x2afa8: 0x6c52cc20, 0x2afa9: 0x6c754820, 0x2afaa: 0x6c754a20, 0x2afab: 0x6c754c20, - 0x2afac: 0x6c754e20, 0x2afad: 0x6c755020, 0x2afae: 0x6c9da620, 0x2afaf: 0x6c9da820, - 0x2afb0: 0x6c9daa20, 0x2afb1: 0x6c9dac20, 0x2afb2: 0x6cca8c20, 0x2afb3: 0x6cca8e20, - 0x2afb4: 0x6cca9020, 0x2afb5: 0x6cca9220, 0x2afb6: 0x6cca9420, 0x2afb7: 0x6c75a620, - 0x2afb8: 0x6cca9620, 0x2afb9: 0x6cf8bc20, 0x2afba: 0x6cf8be20, 0x2afbb: 0x6cf8c020, - 0x2afbc: 0x6cf8c220, 0x2afbd: 0x6cf8c420, 0x2afbe: 0x6cf8c620, 0x2afbf: 0x6d280220, - // Block 0xabf, offset 0x2afc0 - 0x2afc0: 0x6d280420, 0x2afc1: 0x6d280620, 0x2afc2: 0x6d555220, 0x2afc3: 0x6d555420, - 0x2afc4: 0x6d80d020, 0x2afc5: 0x6d80d220, 0x2afc6: 0x6da6f420, 0x2afc7: 0x6da6f620, - 0x2afc8: 0x6da6f820, 0x2afc9: 0x6da6fa20, 0x2afca: 0x6de47a20, 0x2afcb: 0x6dfb9a20, - 0x2afcc: 0x6e1e0c20, 0x2afcd: 0x6e297620, 0x2afce: 0x6e38d620, 0x2afcf: 0x6c12ba20, - 0x2afd0: 0x6c224e20, 0x2afd1: 0x6c225020, 0x2afd2: 0x6c52f820, 0x2afd3: 0x6c52fa20, - 0x2afd4: 0x6c52fc20, 0x2afd5: 0x6ccad220, 0x2afd6: 0x6ccad420, 0x2afd7: 0x6d284220, - 0x2afd8: 0x6dc85c20, 0x2afd9: 0x6c12c220, 0x2afda: 0x6c37ca20, 0x2afdb: 0x6c37cc20, - 0x2afdc: 0x6c37ce20, 0x2afdd: 0x6c37d020, 0x2afde: 0x6c530820, 0x2afdf: 0x6c530a20, - 0x2afe0: 0x6c530c20, 0x2afe1: 0x6c75a820, 0x2afe2: 0x6c9de820, 0x2afe3: 0x6c9dea20, - 0x2afe4: 0x6ccaf820, 0x2afe5: 0x6ccafa20, 0x2afe6: 0x6ccafc20, 0x2afe7: 0x6ccafe20, - 0x2afe8: 0x6ccb0020, 0x2afe9: 0x6ccb0220, 0x2afea: 0x6cf92220, 0x2afeb: 0x6cf92420, - 0x2afec: 0x6cf92620, 0x2afed: 0x6cf92820, 0x2afee: 0x6cf92a20, 0x2afef: 0x6d285020, - 0x2aff0: 0x6d285220, 0x2aff1: 0x6d285420, 0x2aff2: 0x6d285620, 0x2aff3: 0x6d559a20, - 0x2aff4: 0x6d559c20, 0x2aff5: 0x6d810220, 0x2aff6: 0x6d810420, 0x2aff7: 0x6d810620, - 0x2aff8: 0x6da71e20, 0x2aff9: 0x6dfba420, 0x2affa: 0x6dfba620, 0x2affb: 0x6e297e20, - 0x2affc: 0x6c227420, 0x2affd: 0x6c380420, 0x2affe: 0x6c75dc20, 0x2afff: 0x6c75de20, - // Block 0xac0, offset 0x2b000 - 0x2b000: 0x6c9e2020, 0x2b001: 0x6ccb4a20, 0x2b002: 0x6ccb4c20, 0x2b003: 0x6ccb4e20, - 0x2b004: 0x6cf95620, 0x2b005: 0x6d287620, 0x2b006: 0x6d812820, 0x2b007: 0x6d812a20, - 0x2b008: 0x6d812c20, 0x2b009: 0x6da73620, 0x2b00a: 0x6dc87e20, 0x2b00b: 0x6c535620, - 0x2b00c: 0x6c12da20, 0x2b00d: 0x6c382020, 0x2b00e: 0x6c382220, 0x2b00f: 0x6c382420, - 0x2b010: 0x6c382620, 0x2b011: 0x6c382820, 0x2b012: 0x6c535e20, 0x2b013: 0x6c75f620, - 0x2b014: 0x6c9e5420, 0x2b015: 0x6c9e5620, 0x2b016: 0x6c9e5820, 0x2b017: 0x6c9e5a20, - 0x2b018: 0x6c9e5c20, 0x2b019: 0x6c9e5e20, 0x2b01a: 0x6c9e6020, 0x2b01b: 0x6ccb6a20, - 0x2b01c: 0x6ccb6c20, 0x2b01d: 0x6ccb6e20, 0x2b01e: 0x6ccb7020, 0x2b01f: 0x6cf98220, - 0x2b020: 0x6cf98420, 0x2b021: 0x6cf98620, 0x2b022: 0x6cf98820, 0x2b023: 0x6cf98a20, - 0x2b024: 0x6d289e20, 0x2b025: 0x6d28a020, 0x2b026: 0x6d28a220, 0x2b027: 0x6d28a420, - 0x2b028: 0x6d28a620, 0x2b029: 0x6d28a820, 0x2b02a: 0x6d815c20, 0x2b02b: 0x6d815e20, - 0x2b02c: 0x6d816020, 0x2b02d: 0x6d816220, 0x2b02e: 0x6d816420, 0x2b02f: 0x6dc89220, - 0x2b030: 0x6dc89420, 0x2b031: 0x6de4a220, 0x2b032: 0x6e3d4820, 0x2b033: 0x6c763820, - 0x2b034: 0x6c385620, 0x2b035: 0x6c9ea020, 0x2b036: 0x6d561220, 0x2b037: 0x6d819620, - 0x2b038: 0x6c04c820, 0x2b039: 0x6c099620, 0x2b03a: 0x6c099820, 0x2b03b: 0x6c12f420, - 0x2b03c: 0x6c099a20, 0x2b03d: 0x6c12fa20, 0x2b03e: 0x6c22a020, 0x2b03f: 0x6c12fc20, - // Block 0xac1, offset 0x2b040 - 0x2b040: 0x6c22a620, 0x2b041: 0x6c22a820, 0x2b042: 0x6c22aa20, 0x2b043: 0x6c22ac20, - 0x2b044: 0x6c22ae20, 0x2b045: 0x6c22b020, 0x2b046: 0x6c22b220, 0x2b047: 0x6c22b420, - 0x2b048: 0x6c22b620, 0x2b049: 0x6c22b820, 0x2b04a: 0x6c22ba20, 0x2b04b: 0x6c387020, - 0x2b04c: 0x6c387220, 0x2b04d: 0x6c387420, 0x2b04e: 0x6c387620, 0x2b04f: 0x6c387820, - 0x2b050: 0x6c387a20, 0x2b051: 0x6c387c20, 0x2b052: 0x6c387e20, 0x2b053: 0x6c388020, - 0x2b054: 0x6c388220, 0x2b055: 0x6c388420, 0x2b056: 0x6c53d820, 0x2b057: 0x6c53da20, - 0x2b058: 0x6c53dc20, 0x2b059: 0x6c53de20, 0x2b05a: 0x6c53e020, 0x2b05b: 0x6c53e220, - 0x2b05c: 0x6c53e420, 0x2b05d: 0x6c53e620, 0x2b05e: 0x6c53e820, 0x2b05f: 0x6c9eaa20, - 0x2b060: 0x6c53ea20, 0x2b061: 0x6c53ec20, 0x2b062: 0x6c53ee20, 0x2b063: 0x6c53f020, - 0x2b064: 0x6c765220, 0x2b065: 0x6c765420, 0x2b066: 0x6c765620, 0x2b067: 0x6c765820, - 0x2b068: 0x6c765a20, 0x2b069: 0x6c765c20, 0x2b06a: 0x6c765e20, 0x2b06b: 0x6c9eac20, - 0x2b06c: 0x6c766020, 0x2b06d: 0x6c766220, 0x2b06e: 0x6c766420, 0x2b06f: 0x6c766620, - 0x2b070: 0x6c766820, 0x2b071: 0x6c766a20, 0x2b072: 0x6c766c20, 0x2b073: 0x6c766e20, - 0x2b074: 0x6c9eb020, 0x2b075: 0x6c9eb220, 0x2b076: 0x6c9eb420, 0x2b077: 0x6c9eb620, - 0x2b078: 0x6c9eb820, 0x2b079: 0x6c9eba20, 0x2b07a: 0x6c9ebc20, 0x2b07b: 0x6c9ebe20, - 0x2b07c: 0x6ccbd620, 0x2b07d: 0x6c9ec020, 0x2b07e: 0x6c9ec220, 0x2b07f: 0x6c9ec420, - // Block 0xac2, offset 0x2b080 - 0x2b080: 0x6c9ec620, 0x2b081: 0x6c9ec820, 0x2b082: 0x6c9eca20, 0x2b083: 0x6c9ecc20, - 0x2b084: 0x6c9ece20, 0x2b085: 0x6ccbd820, 0x2b086: 0x6c9ed020, 0x2b087: 0x6ccbda20, - 0x2b088: 0x6c9ed220, 0x2b089: 0x6c9ed420, 0x2b08a: 0x6c9ed620, 0x2b08b: 0x6c9ed820, - 0x2b08c: 0x6c9eda20, 0x2b08d: 0x6c9edc20, 0x2b08e: 0x6c9ede20, 0x2b08f: 0x6ccbe020, - 0x2b090: 0x6ccbe220, 0x2b091: 0x6ccbe420, 0x2b092: 0x6ccbe620, 0x2b093: 0x6ccbe820, - 0x2b094: 0x6ccbea20, 0x2b095: 0x6ccbec20, 0x2b096: 0x6ccbee20, 0x2b097: 0x6ccbf020, - 0x2b098: 0x6ccbf220, 0x2b099: 0x6ccbf420, 0x2b09a: 0x6ccbf620, 0x2b09b: 0x6ccbf820, - 0x2b09c: 0x6ccbfa20, 0x2b09d: 0x6ccbfc20, 0x2b09e: 0x6ccbfe20, 0x2b09f: 0x6ccc0020, - 0x2b0a0: 0x6ccc0220, 0x2b0a1: 0x6ccc0420, 0x2b0a2: 0x6ccc0620, 0x2b0a3: 0x6ccc0820, - 0x2b0a4: 0x6ccc0a20, 0x2b0a5: 0x6cf9e420, 0x2b0a6: 0x6cf9e620, 0x2b0a7: 0x6cf9e820, - 0x2b0a8: 0x6cf9ea20, 0x2b0a9: 0x6cf9ec20, 0x2b0aa: 0x6cf9ee20, 0x2b0ab: 0x6cf9f020, - 0x2b0ac: 0x6cf9f220, 0x2b0ad: 0x6cf9f420, 0x2b0ae: 0x6cf9f620, 0x2b0af: 0x6cf9f820, - 0x2b0b0: 0x6cf9fa20, 0x2b0b1: 0x6cf9fc20, 0x2b0b2: 0x6cf9fe20, 0x2b0b3: 0x6cfa0020, - 0x2b0b4: 0x6cfa0220, 0x2b0b5: 0x6cfa0420, 0x2b0b6: 0x6cfa0620, 0x2b0b7: 0x6cfa0820, - 0x2b0b8: 0x6cfa0a20, 0x2b0b9: 0x6cfa0c20, 0x2b0ba: 0x6cfa0e20, 0x2b0bb: 0x6cfa1020, - 0x2b0bc: 0x6d28f620, 0x2b0bd: 0x6d28f820, 0x2b0be: 0x6d28fa20, 0x2b0bf: 0x6d28fc20, - // Block 0xac3, offset 0x2b0c0 - 0x2b0c0: 0x6d28fe20, 0x2b0c1: 0x6d290020, 0x2b0c2: 0x6d290220, 0x2b0c3: 0x6d290420, - 0x2b0c4: 0x6d290620, 0x2b0c5: 0x6d290820, 0x2b0c6: 0x6d290a20, 0x2b0c7: 0x6d290c20, - 0x2b0c8: 0x6d290e20, 0x2b0c9: 0x6d291020, 0x2b0ca: 0x6d562420, 0x2b0cb: 0x6d562620, - 0x2b0cc: 0x6d562820, 0x2b0cd: 0x6d562a20, 0x2b0ce: 0x6d562c20, 0x2b0cf: 0x6d562e20, - 0x2b0d0: 0x6d563020, 0x2b0d1: 0x6d563220, 0x2b0d2: 0x6d563420, 0x2b0d3: 0x6d563620, - 0x2b0d4: 0x6d563820, 0x2b0d5: 0x6d563a20, 0x2b0d6: 0x6d563c20, 0x2b0d7: 0x6d563e20, - 0x2b0d8: 0x6d819820, 0x2b0d9: 0x6d564020, 0x2b0da: 0x6d564220, 0x2b0db: 0x6d564420, - 0x2b0dc: 0x6d564620, 0x2b0dd: 0x6d819e20, 0x2b0de: 0x6d81a020, 0x2b0df: 0x6d81a220, - 0x2b0e0: 0x6d81a420, 0x2b0e1: 0x6d81a620, 0x2b0e2: 0x6d81a820, 0x2b0e3: 0x6d81aa20, - 0x2b0e4: 0x6d81ac20, 0x2b0e5: 0x6d81ae20, 0x2b0e6: 0x6d81b020, 0x2b0e7: 0x6d81b220, - 0x2b0e8: 0x6da77620, 0x2b0e9: 0x6d81b420, 0x2b0ea: 0x6d81b620, 0x2b0eb: 0x6d81b820, - 0x2b0ec: 0x6d81ba20, 0x2b0ed: 0x6d81bc20, 0x2b0ee: 0x6d81be20, 0x2b0ef: 0x6da77c20, - 0x2b0f0: 0x6da77e20, 0x2b0f1: 0x6da78020, 0x2b0f2: 0x6da78220, 0x2b0f3: 0x6da78420, - 0x2b0f4: 0x6da78620, 0x2b0f5: 0x6da78820, 0x2b0f6: 0x6da78a20, 0x2b0f7: 0x6da78c20, - 0x2b0f8: 0x6da78e20, 0x2b0f9: 0x6da79020, 0x2b0fa: 0x6da79220, 0x2b0fb: 0x6da79420, - 0x2b0fc: 0x6da79620, 0x2b0fd: 0x6dc8c420, 0x2b0fe: 0x6dc8c620, 0x2b0ff: 0x6dc8c820, - // Block 0xac4, offset 0x2b100 - 0x2b100: 0x6dc8ca20, 0x2b101: 0x6dc8cc20, 0x2b102: 0x6dc8ce20, 0x2b103: 0x6dc8d020, - 0x2b104: 0x6de4b220, 0x2b105: 0x6de4b420, 0x2b106: 0x6de4b620, 0x2b107: 0x6de4b820, - 0x2b108: 0x6de4ba20, 0x2b109: 0x6de4bc20, 0x2b10a: 0x6de4be20, 0x2b10b: 0x6de4c020, - 0x2b10c: 0x6dfbc420, 0x2b10d: 0x6dfbc620, 0x2b10e: 0x6dfbc820, 0x2b10f: 0x6dfbca20, - 0x2b110: 0x6dfbcc20, 0x2b111: 0x6dfbce20, 0x2b112: 0x6e0efa20, 0x2b113: 0x6e0efc20, - 0x2b114: 0x6e0efe20, 0x2b115: 0x6e0f0020, 0x2b116: 0x6e0f0220, 0x2b117: 0x6e1e2e20, - 0x2b118: 0x6e0f0420, 0x2b119: 0x6e1e3020, 0x2b11a: 0x6e1e3220, 0x2b11b: 0x6e299820, - 0x2b11c: 0x6e299a20, 0x2b11d: 0x6e299c20, 0x2b11e: 0x6e329e20, 0x2b11f: 0x6e32a020, - 0x2b120: 0x6e3d5020, 0x2b121: 0x6c135620, 0x2b122: 0x6c135820, 0x2b123: 0x6c238a20, - 0x2b124: 0x6c238c20, 0x2b125: 0x6c238e20, 0x2b126: 0x6c399420, 0x2b127: 0x6c399620, - 0x2b128: 0x6c399820, 0x2b129: 0x6c399a20, 0x2b12a: 0x6c399c20, 0x2b12b: 0x6c551820, - 0x2b12c: 0x6c551a20, 0x2b12d: 0x6c551c20, 0x2b12e: 0x6c551e20, 0x2b12f: 0x6c552020, - 0x2b130: 0x6c552220, 0x2b131: 0x6c552420, 0x2b132: 0x6c552620, 0x2b133: 0x6c77ea20, - 0x2b134: 0x6c77ec20, 0x2b135: 0x6c77ee20, 0x2b136: 0x6c77f020, 0x2b137: 0x6c77f220, - 0x2b138: 0x6c77f420, 0x2b139: 0x6ca0de20, 0x2b13a: 0x6ca0e020, 0x2b13b: 0x6ca0e220, - 0x2b13c: 0x6ca0e420, 0x2b13d: 0x6ca0e620, 0x2b13e: 0x6ca0e820, 0x2b13f: 0x6ca0ea20, - // Block 0xac5, offset 0x2b140 - 0x2b140: 0x6ca0ec20, 0x2b141: 0x6ca0ee20, 0x2b142: 0x6ccdde20, 0x2b143: 0x6ccde020, - 0x2b144: 0x6ccde220, 0x2b145: 0x6ccde420, 0x2b146: 0x6ccde620, 0x2b147: 0x6ccde820, - 0x2b148: 0x6ccdea20, 0x2b149: 0x6ccdec20, 0x2b14a: 0x6ccdee20, 0x2b14b: 0x6ccdf020, - 0x2b14c: 0x6ccdf220, 0x2b14d: 0x6ccdf420, 0x2b14e: 0x6cfbda20, 0x2b14f: 0x6cfbdc20, - 0x2b150: 0x6cfbde20, 0x2b151: 0x6cfbe020, 0x2b152: 0x6cfbe220, 0x2b153: 0x6cfbe420, - 0x2b154: 0x6cfbe620, 0x2b155: 0x6cfbe820, 0x2b156: 0x6cfbea20, 0x2b157: 0x6cfbec20, - 0x2b158: 0x6cfbee20, 0x2b159: 0x6cfbf020, 0x2b15a: 0x6cfbf220, 0x2b15b: 0x6cfbf420, - 0x2b15c: 0x6cfbf620, 0x2b15d: 0x6cfbf820, 0x2b15e: 0x6cfbfa20, 0x2b15f: 0x6d2ad220, - 0x2b160: 0x6d2ad420, 0x2b161: 0x6d2ad620, 0x2b162: 0x6d2ad820, 0x2b163: 0x6d2ada20, - 0x2b164: 0x6d2adc20, 0x2b165: 0x6d2ade20, 0x2b166: 0x6d2ae020, 0x2b167: 0x6d2ae220, - 0x2b168: 0x6d2ae420, 0x2b169: 0x6d2ae620, 0x2b16a: 0x6d2ae820, 0x2b16b: 0x6d580e20, - 0x2b16c: 0x6d581020, 0x2b16d: 0x6d581220, 0x2b16e: 0x6d581420, 0x2b16f: 0x6d581620, - 0x2b170: 0x6d581820, 0x2b171: 0x6d581a20, 0x2b172: 0x6d581c20, 0x2b173: 0x6d82fe20, - 0x2b174: 0x6d830020, 0x2b175: 0x6d830220, 0x2b176: 0x6d830420, 0x2b177: 0x6d830620, - 0x2b178: 0x6d830820, 0x2b179: 0x6d830a20, 0x2b17a: 0x6d830c20, 0x2b17b: 0x6d830e20, - 0x2b17c: 0x6d831020, 0x2b17d: 0x6d831220, 0x2b17e: 0x6da87020, 0x2b17f: 0x6da87220, - // Block 0xac6, offset 0x2b180 - 0x2b180: 0x6da87420, 0x2b181: 0x6da87620, 0x2b182: 0x6da87820, 0x2b183: 0x6da87a20, - 0x2b184: 0x6dc9ba20, 0x2b185: 0x6dc9bc20, 0x2b186: 0x6de57220, 0x2b187: 0x6de57420, - 0x2b188: 0x6dfc4a20, 0x2b189: 0x6de57620, 0x2b18a: 0x6dfc4c20, 0x2b18b: 0x6dfc4e20, - 0x2b18c: 0x6dfc5020, 0x2b18d: 0x6e0f7c20, 0x2b18e: 0x6e1e6e20, 0x2b18f: 0x6e29d620, - 0x2b190: 0x6e29d820, 0x2b191: 0x6e3d6620, 0x2b192: 0x6c3a2420, 0x2b193: 0x6c3a2620, - 0x2b194: 0x6ca1ce20, 0x2b195: 0x6d2bda20, 0x2b196: 0x6c561420, 0x2b197: 0x6c78d420, - 0x2b198: 0x6ca1da20, 0x2b199: 0x6cfd3e20, 0x2b19a: 0x6c3a4020, 0x2b19b: 0x6c561e20, - 0x2b19c: 0x6ccf2820, 0x2b19d: 0x6c3a4e20, 0x2b19e: 0x6c3a5020, 0x2b19f: 0x6c78ee20, - 0x2b1a0: 0x6c78f020, 0x2b1a1: 0x6c78f220, 0x2b1a2: 0x6d2bfa20, 0x2b1a3: 0x6da93c20, - 0x2b1a4: 0x6dca4420, 0x2b1a5: 0x6e0fb620, 0x2b1a6: 0x6c04ea20, 0x2b1a7: 0x6c790220, - 0x2b1a8: 0x6c137e20, 0x2b1a9: 0x6c23e820, 0x2b1aa: 0x6c23ea20, 0x2b1ab: 0x6c3a6220, - 0x2b1ac: 0x6c3a6420, 0x2b1ad: 0x6c3a6620, 0x2b1ae: 0x6c3a6820, 0x2b1af: 0x6c3a6a20, - 0x2b1b0: 0x6c564220, 0x2b1b1: 0x6c564420, 0x2b1b2: 0x6c564620, 0x2b1b3: 0x6c564820, - 0x2b1b4: 0x6c564a20, 0x2b1b5: 0x6c790820, 0x2b1b6: 0x6c790a20, 0x2b1b7: 0x6c790c20, - 0x2b1b8: 0x6c790e20, 0x2b1b9: 0x6ca20e20, 0x2b1ba: 0x6ca21020, 0x2b1bb: 0x6ca21220, - 0x2b1bc: 0x6ca21420, 0x2b1bd: 0x6ca21620, 0x2b1be: 0x6ca21820, 0x2b1bf: 0x6ca21a20, - // Block 0xac7, offset 0x2b1c0 - 0x2b1c0: 0x6ca21c20, 0x2b1c1: 0x6ccf7220, 0x2b1c2: 0x6ccf7420, 0x2b1c3: 0x6ccf7620, - 0x2b1c4: 0x6d2c0e20, 0x2b1c5: 0x6cfd7020, 0x2b1c6: 0x6cfd7220, 0x2b1c7: 0x6cfd7420, - 0x2b1c8: 0x6cfd7620, 0x2b1c9: 0x6d2c1020, 0x2b1ca: 0x6d2c1220, 0x2b1cb: 0x6d2c1420, - 0x2b1cc: 0x6d594620, 0x2b1cd: 0x6d594820, 0x2b1ce: 0x6d594a20, 0x2b1cf: 0x6d594c20, - 0x2b1d0: 0x6d594e20, 0x2b1d1: 0x6d845220, 0x2b1d2: 0x6d845420, 0x2b1d3: 0x6d845620, - 0x2b1d4: 0x6da94820, 0x2b1d5: 0x6da94a20, 0x2b1d6: 0x6da94c20, 0x2b1d7: 0x6dca5020, - 0x2b1d8: 0x6dca5220, 0x2b1d9: 0x6de5e420, 0x2b1da: 0x6e0fba20, 0x2b1db: 0x6e1e9a20, - 0x2b1dc: 0x6c3ab420, 0x2b1dd: 0x6c240220, 0x2b1de: 0x6c240420, 0x2b1df: 0x6c240620, - 0x2b1e0: 0x6c240820, 0x2b1e1: 0x6c3ab820, 0x2b1e2: 0x6c3aba20, 0x2b1e3: 0x6c3abc20, - 0x2b1e4: 0x6c3abe20, 0x2b1e5: 0x6c3ac020, 0x2b1e6: 0x6c3ac220, 0x2b1e7: 0x6c3ac420, - 0x2b1e8: 0x6c3ac620, 0x2b1e9: 0x6c3ac820, 0x2b1ea: 0x6c3aca20, 0x2b1eb: 0x6c569820, - 0x2b1ec: 0x6c569a20, 0x2b1ed: 0x6c569c20, 0x2b1ee: 0x6c569e20, 0x2b1ef: 0x6c56a020, - 0x2b1f0: 0x6c56a220, 0x2b1f1: 0x6c793420, 0x2b1f2: 0x6c793620, 0x2b1f3: 0x6c793820, - 0x2b1f4: 0x6c793a20, 0x2b1f5: 0x6c793c20, 0x2b1f6: 0x6c793e20, 0x2b1f7: 0x6c794020, - 0x2b1f8: 0x6c794220, 0x2b1f9: 0x6ca25420, 0x2b1fa: 0x6ca25620, 0x2b1fb: 0x6ca25820, - 0x2b1fc: 0x6ca25a20, 0x2b1fd: 0x6ca25c20, 0x2b1fe: 0x6ca25e20, 0x2b1ff: 0x6ca26020, - // Block 0xac8, offset 0x2b200 - 0x2b200: 0x6ca26220, 0x2b201: 0x6ccfd820, 0x2b202: 0x6ccfda20, 0x2b203: 0x6ccfdc20, - 0x2b204: 0x6ccfde20, 0x2b205: 0x6ccfe020, 0x2b206: 0x6ccfe220, 0x2b207: 0x6cfdc420, - 0x2b208: 0x6cfdc620, 0x2b209: 0x6cfdc820, 0x2b20a: 0x6cfdca20, 0x2b20b: 0x6cfdcc20, - 0x2b20c: 0x6cfdce20, 0x2b20d: 0x6cfdd020, 0x2b20e: 0x6d2c6c20, 0x2b20f: 0x6d2c6e20, - 0x2b210: 0x6d2c7020, 0x2b211: 0x6d2c7220, 0x2b212: 0x6d2c7420, 0x2b213: 0x6d2c7620, - 0x2b214: 0x6d598820, 0x2b215: 0x6d598a20, 0x2b216: 0x6d598c20, 0x2b217: 0x6d598e20, - 0x2b218: 0x6d599020, 0x2b219: 0x6d599220, 0x2b21a: 0x6d848020, 0x2b21b: 0x6d848220, - 0x2b21c: 0x6d848420, 0x2b21d: 0x6da96420, 0x2b21e: 0x6da96620, 0x2b21f: 0x6da96820, - 0x2b220: 0x6dca5820, 0x2b221: 0x6de60220, 0x2b222: 0x6de60420, 0x2b223: 0x6dfce820, - 0x2b224: 0x6dfcea20, 0x2b225: 0x6dfcec20, 0x2b226: 0x6dfcee20, 0x2b227: 0x6e32d420, - 0x2b228: 0x6c13b620, 0x2b229: 0x6c13b820, 0x2b22a: 0x6c13ba20, 0x2b22b: 0x6c13bc20, - 0x2b22c: 0x6c246c20, 0x2b22d: 0x6c246e20, 0x2b22e: 0x6c247020, 0x2b22f: 0x6c247220, - 0x2b230: 0x6c3b3820, 0x2b231: 0x6c572a20, 0x2b232: 0x6c3b3a20, 0x2b233: 0x6c3b3c20, - 0x2b234: 0x6c3b3e20, 0x2b235: 0x6c3b4020, 0x2b236: 0x6c3b4220, 0x2b237: 0x6c572c20, - 0x2b238: 0x6c79bc20, 0x2b239: 0x6c572e20, 0x2b23a: 0x6c573020, 0x2b23b: 0x6c573220, - 0x2b23c: 0x6c573420, 0x2b23d: 0x6c573620, 0x2b23e: 0x6c573820, 0x2b23f: 0x6c79c220, - // Block 0xac9, offset 0x2b240 - 0x2b240: 0x6c79c420, 0x2b241: 0x6c79c620, 0x2b242: 0x6c79c820, 0x2b243: 0x6c79ca20, - 0x2b244: 0x6c79cc20, 0x2b245: 0x6c79ce20, 0x2b246: 0x6c79d020, 0x2b247: 0x6c79d220, - 0x2b248: 0x6c79d420, 0x2b249: 0x6ca2da20, 0x2b24a: 0x6ca2dc20, 0x2b24b: 0x6ca2de20, - 0x2b24c: 0x6ca2e020, 0x2b24d: 0x6ca2e220, 0x2b24e: 0x6ca2e420, 0x2b24f: 0x6ca2e620, - 0x2b250: 0x6ca2e820, 0x2b251: 0x6cd07620, 0x2b252: 0x6cd07820, 0x2b253: 0x6cd07a20, - 0x2b254: 0x6cd07c20, 0x2b255: 0x6cd07e20, 0x2b256: 0x6cd08020, 0x2b257: 0x6cfe4a20, - 0x2b258: 0x6cd08220, 0x2b259: 0x6cd08420, 0x2b25a: 0x6cd08620, 0x2b25b: 0x6cd08820, - 0x2b25c: 0x6cd08a20, 0x2b25d: 0x6cfe4e20, 0x2b25e: 0x6cfe5020, 0x2b25f: 0x6cfe5220, - 0x2b260: 0x6cfe5420, 0x2b261: 0x6cfe5620, 0x2b262: 0x6cfe5820, 0x2b263: 0x6cfe5a20, - 0x2b264: 0x6cfe5c20, 0x2b265: 0x6cfe5e20, 0x2b266: 0x6cfe6020, 0x2b267: 0x6d2ce220, - 0x2b268: 0x6d2ce420, 0x2b269: 0x6d2ce620, 0x2b26a: 0x6d2ce820, 0x2b26b: 0x6d5a0a20, - 0x2b26c: 0x6d5a0c20, 0x2b26d: 0x6d5a0e20, 0x2b26e: 0x6d5a1020, 0x2b26f: 0x6d5a1220, - 0x2b270: 0x6d5a1420, 0x2b271: 0x6d5a1620, 0x2b272: 0x6d5a1820, 0x2b273: 0x6d5a1a20, - 0x2b274: 0x6d5a1c20, 0x2b275: 0x6d84ce20, 0x2b276: 0x6d84d020, 0x2b277: 0x6d84d220, - 0x2b278: 0x6d84d420, 0x2b279: 0x6da99620, 0x2b27a: 0x6da99820, 0x2b27b: 0x6d84d620, - 0x2b27c: 0x6d84d820, 0x2b27d: 0x6da99e20, 0x2b27e: 0x6dca8420, 0x2b27f: 0x6da9a020, - // Block 0xaca, offset 0x2b280 - 0x2b280: 0x6da9a220, 0x2b281: 0x6da9a420, 0x2b282: 0x6dca8620, 0x2b283: 0x6de62020, - 0x2b284: 0x6de62220, 0x2b285: 0x6de62420, 0x2b286: 0x6de62620, 0x2b287: 0x6dfcfe20, - 0x2b288: 0x6e2a1a20, 0x2b289: 0x6c57c620, 0x2b28a: 0x6c57c820, 0x2b28b: 0x6c7a7420, - 0x2b28c: 0x6c7a7620, 0x2b28d: 0x6ca37c20, 0x2b28e: 0x6ca37e20, 0x2b28f: 0x6cd16020, - 0x2b290: 0x6d2d8620, 0x2b291: 0x6d2d8820, 0x2b292: 0x6d2d8a20, 0x2b293: 0x6d5ab220, - 0x2b294: 0x6d5ab420, 0x2b295: 0x6dcae220, 0x2b296: 0x6e3d7020, 0x2b297: 0x6c24a020, - 0x2b298: 0x6c3bb220, 0x2b299: 0x6c3bb420, 0x2b29a: 0x6c57d620, 0x2b29b: 0x6c57d820, - 0x2b29c: 0x6c7a8620, 0x2b29d: 0x6c7a8820, 0x2b29e: 0x6c7a8a20, 0x2b29f: 0x6c7a8c20, - 0x2b2a0: 0x6c7a8e20, 0x2b2a1: 0x6ca38c20, 0x2b2a2: 0x6ca38e20, 0x2b2a3: 0x6ca39020, - 0x2b2a4: 0x6ca39220, 0x2b2a5: 0x6ca39420, 0x2b2a6: 0x6ca39620, 0x2b2a7: 0x6cd17020, - 0x2b2a8: 0x6cd17220, 0x2b2a9: 0x6cd17420, 0x2b2aa: 0x6cd17620, 0x2b2ab: 0x6cff5220, - 0x2b2ac: 0x6cff5420, 0x2b2ad: 0x6cff5620, 0x2b2ae: 0x6cff5820, 0x2b2af: 0x6cff5a20, - 0x2b2b0: 0x6cff5c20, 0x2b2b1: 0x6cff5e20, 0x2b2b2: 0x6d2d9820, 0x2b2b3: 0x6d2d9a20, - 0x2b2b4: 0x6d2d9c20, 0x2b2b5: 0x6d2d9e20, 0x2b2b6: 0x6d2da020, 0x2b2b7: 0x6d2da220, - 0x2b2b8: 0x6d5ac620, 0x2b2b9: 0x6d5ac820, 0x2b2ba: 0x6d5aca20, 0x2b2bb: 0x6d857220, - 0x2b2bc: 0x6d857420, 0x2b2bd: 0x6d857620, 0x2b2be: 0x6d857820, 0x2b2bf: 0x6daa1220, - // Block 0xacb, offset 0x2b2c0 - 0x2b2c0: 0x6daa1420, 0x2b2c1: 0x6daa1620, 0x2b2c2: 0x6daa1820, 0x2b2c3: 0x6daa1a20, - 0x2b2c4: 0x6daa1c20, 0x2b2c5: 0x6daa1e20, 0x2b2c6: 0x6dcaea20, 0x2b2c7: 0x6dcaec20, - 0x2b2c8: 0x6de66a20, 0x2b2c9: 0x6de66c20, 0x2b2ca: 0x6e1ecc20, 0x2b2cb: 0x6e32e820, - 0x2b2cc: 0x6e392220, 0x2b2cd: 0x6c7aae20, 0x2b2ce: 0x6cff8820, 0x2b2cf: 0x6d2dd220, - 0x2b2d0: 0x6d5af020, 0x2b2d1: 0x6daa3a20, 0x2b2d2: 0x6cd1a220, 0x2b2d3: 0x6d5af620, - 0x2b2d4: 0x6d859a20, 0x2b2d5: 0x6c24b020, 0x2b2d6: 0x6c24b220, 0x2b2d7: 0x6c24b420, - 0x2b2d8: 0x6c581e20, 0x2b2d9: 0x6c582020, 0x2b2da: 0x6c582220, 0x2b2db: 0x6c7aba20, - 0x2b2dc: 0x6c7abc20, 0x2b2dd: 0x6ca3d220, 0x2b2de: 0x6ca3d420, 0x2b2df: 0x6cd1ba20, - 0x2b2e0: 0x6cd1bc20, 0x2b2e1: 0x6cffa220, 0x2b2e2: 0x6cffa420, 0x2b2e3: 0x6cffa620, - 0x2b2e4: 0x6cffa820, 0x2b2e5: 0x6d2de020, 0x2b2e6: 0x6d5afe20, 0x2b2e7: 0x6d5b0020, - 0x2b2e8: 0x6d5b0220, 0x2b2e9: 0x6d859e20, 0x2b2ea: 0x6daa4420, 0x2b2eb: 0x6dcb0a20, - 0x2b2ec: 0x6dcb0c20, 0x2b2ed: 0x6de67e20, 0x2b2ee: 0x6dfd3420, 0x2b2ef: 0x6e2a4020, - 0x2b2f0: 0x6cfff020, 0x2b2f1: 0x6c24d420, 0x2b2f2: 0x6c24d620, 0x2b2f3: 0x6c3c1820, - 0x2b2f4: 0x6c3c1a20, 0x2b2f5: 0x6c3c1c20, 0x2b2f6: 0x6c3c1e20, 0x2b2f7: 0x6c589020, - 0x2b2f8: 0x6c589220, 0x2b2f9: 0x6c589420, 0x2b2fa: 0x6c589620, 0x2b2fb: 0x6c589820, - 0x2b2fc: 0x6c589a20, 0x2b2fd: 0x6c7b1220, 0x2b2fe: 0x6c7b1420, 0x2b2ff: 0x6c7b1620, - // Block 0xacc, offset 0x2b300 - 0x2b300: 0x6c7b1820, 0x2b301: 0x6c7b1a20, 0x2b302: 0x6c7b1c20, 0x2b303: 0x6c7b1e20, - 0x2b304: 0x6c7b2020, 0x2b305: 0x6c7b2220, 0x2b306: 0x6c7b2420, 0x2b307: 0x6c7b2620, - 0x2b308: 0x6c7b2820, 0x2b309: 0x6c7b2a20, 0x2b30a: 0x6ca41c20, 0x2b30b: 0x6ca41e20, - 0x2b30c: 0x6ca42020, 0x2b30d: 0x6ca42220, 0x2b30e: 0x6ca42420, 0x2b30f: 0x6ca42620, - 0x2b310: 0x6ca42820, 0x2b311: 0x6ca42a20, 0x2b312: 0x6ca42c20, 0x2b313: 0x6cd21220, - 0x2b314: 0x6cd21420, 0x2b315: 0x6cd21620, 0x2b316: 0x6cd21820, 0x2b317: 0x6cd21a20, - 0x2b318: 0x6cd21c20, 0x2b319: 0x6cd21e20, 0x2b31a: 0x6cd22020, 0x2b31b: 0x6cd22220, - 0x2b31c: 0x6cd22420, 0x2b31d: 0x6cd22620, 0x2b31e: 0x6cd22820, 0x2b31f: 0x6cd22a20, - 0x2b320: 0x6cd22c20, 0x2b321: 0x6cd22e20, 0x2b322: 0x6cfff620, 0x2b323: 0x6cfff820, - 0x2b324: 0x6cfffa20, 0x2b325: 0x6cfffc20, 0x2b326: 0x6cfffe20, 0x2b327: 0x6d000020, - 0x2b328: 0x6d000220, 0x2b329: 0x6d000420, 0x2b32a: 0x6d2e0820, 0x2b32b: 0x6d2e0a20, - 0x2b32c: 0x6d2e0c20, 0x2b32d: 0x6d2e0e20, 0x2b32e: 0x6d2e1020, 0x2b32f: 0x6d2e1220, - 0x2b330: 0x6d2e1420, 0x2b331: 0x6d2e1620, 0x2b332: 0x6d2e1820, 0x2b333: 0x6d2e1a20, - 0x2b334: 0x6d2e1c20, 0x2b335: 0x6d2e1e20, 0x2b336: 0x6d5b3220, 0x2b337: 0x6d5b3420, - 0x2b338: 0x6d5b3620, 0x2b339: 0x6d5b3820, 0x2b33a: 0x6d5b3a20, 0x2b33b: 0x6d5b3c20, - 0x2b33c: 0x6d5b3e20, 0x2b33d: 0x6d5b4020, 0x2b33e: 0x6d5b4220, 0x2b33f: 0x6d5b4420, - // Block 0xacd, offset 0x2b340 - 0x2b340: 0x6d5b4620, 0x2b341: 0x6d5b4820, 0x2b342: 0x6d85c620, 0x2b343: 0x6d85c820, - 0x2b344: 0x6d85ca20, 0x2b345: 0x6d85cc20, 0x2b346: 0x6d85ce20, 0x2b347: 0x6d85d020, - 0x2b348: 0x6d85d220, 0x2b349: 0x6daa7020, 0x2b34a: 0x6daa7220, 0x2b34b: 0x6dcb2020, - 0x2b34c: 0x6dcb2220, 0x2b34d: 0x6dcb2420, 0x2b34e: 0x6dcb2620, 0x2b34f: 0x6dcb2820, - 0x2b350: 0x6dcb2a20, 0x2b351: 0x6de69620, 0x2b352: 0x6de69820, 0x2b353: 0x6de69a20, - 0x2b354: 0x6dfd4a20, 0x2b355: 0x6e101e20, 0x2b356: 0x6e102020, 0x2b357: 0x6e102220, - 0x2b358: 0x6e1ee820, 0x2b359: 0x6e2a4820, 0x2b35a: 0x6e32ee20, 0x2b35b: 0x6e32f020, - 0x2b35c: 0x6e42c820, 0x2b35d: 0x6c24f820, 0x2b35e: 0x6c590c20, 0x2b35f: 0x6c7baa20, - 0x2b360: 0x6ca48e20, 0x2b361: 0x6ca49020, 0x2b362: 0x6d00ba20, 0x2b363: 0x6d2ea820, - 0x2b364: 0x6d2eaa20, 0x2b365: 0x6d5bdc20, 0x2b366: 0x6d865220, 0x2b367: 0x6de6dc20, - 0x2b368: 0x6e104420, 0x2b369: 0x6e393020, 0x2b36a: 0x6c3c5420, 0x2b36b: 0x6c593a20, - 0x2b36c: 0x6c593c20, 0x2b36d: 0x6c7bd420, 0x2b36e: 0x6c7bd620, 0x2b36f: 0x6ca4a820, - 0x2b370: 0x6ca4aa20, 0x2b371: 0x6cd2ee20, 0x2b372: 0x6d00e420, 0x2b373: 0x6d00e620, - 0x2b374: 0x6d2ec820, 0x2b375: 0x6d2eca20, 0x2b376: 0x6d5bf820, 0x2b377: 0x6d5bfa20, - 0x2b378: 0x6d866420, 0x2b379: 0x6dcb9220, 0x2b37a: 0x6dfd8020, 0x2b37b: 0x6c3c6620, - 0x2b37c: 0x6c594e20, 0x2b37d: 0x6c595020, 0x2b37e: 0x6c7bf020, 0x2b37f: 0x6c7bf220, - // Block 0xace, offset 0x2b380 - 0x2b380: 0x6c7bf420, 0x2b381: 0x6ca4be20, 0x2b382: 0x6ca4c020, 0x2b383: 0x6cd30a20, - 0x2b384: 0x6d010820, 0x2b385: 0x6d010a20, 0x2b386: 0x6d2ef220, 0x2b387: 0x6d867e20, - 0x2b388: 0x6d868020, 0x2b389: 0x6dab1e20, 0x2b38a: 0x6de6fa20, 0x2b38b: 0x6e105420, - 0x2b38c: 0x6e1f0820, 0x2b38d: 0x6e443e20, 0x2b38e: 0x6c251420, 0x2b38f: 0x6c251620, - 0x2b390: 0x6c3c7620, 0x2b391: 0x6c3c7820, 0x2b392: 0x6c3c7a20, 0x2b393: 0x6c3c7c20, - 0x2b394: 0x6c3c7e20, 0x2b395: 0x6c597420, 0x2b396: 0x6c597620, 0x2b397: 0x6c597820, - 0x2b398: 0x6c597a20, 0x2b399: 0x6c597c20, 0x2b39a: 0x6c597e20, 0x2b39b: 0x6c598020, - 0x2b39c: 0x6c598220, 0x2b39d: 0x6c598420, 0x2b39e: 0x6c598620, 0x2b39f: 0x6c7c2e20, - 0x2b3a0: 0x6c7c3020, 0x2b3a1: 0x6c7c3220, 0x2b3a2: 0x6c7c3420, 0x2b3a3: 0x6c7c3620, - 0x2b3a4: 0x6c7c3820, 0x2b3a5: 0x6c7c3a20, 0x2b3a6: 0x6c7c3c20, 0x2b3a7: 0x6ca4f220, - 0x2b3a8: 0x6ca4f420, 0x2b3a9: 0x6ca4f620, 0x2b3aa: 0x6ca4f820, 0x2b3ab: 0x6ca4fa20, - 0x2b3ac: 0x6ca4fc20, 0x2b3ad: 0x6ca4fe20, 0x2b3ae: 0x6ca50020, 0x2b3af: 0x6cd32c20, - 0x2b3b0: 0x6cd32e20, 0x2b3b1: 0x6cd33020, 0x2b3b2: 0x6cd33220, 0x2b3b3: 0x6cd33420, - 0x2b3b4: 0x6cd33620, 0x2b3b5: 0x6cd33820, 0x2b3b6: 0x6cd33a20, 0x2b3b7: 0x6cd33c20, - 0x2b3b8: 0x6cd33e20, 0x2b3b9: 0x6cd34020, 0x2b3ba: 0x6cd34220, 0x2b3bb: 0x6cd34420, - 0x2b3bc: 0x6cd34620, 0x2b3bd: 0x6cd34820, 0x2b3be: 0x6cd34a20, 0x2b3bf: 0x6cd34c20, - // Block 0xacf, offset 0x2b3c0 - 0x2b3c0: 0x6cd34e20, 0x2b3c1: 0x6d013020, 0x2b3c2: 0x6d013220, 0x2b3c3: 0x6d013420, - 0x2b3c4: 0x6d013620, 0x2b3c5: 0x6d013820, 0x2b3c6: 0x6d013a20, 0x2b3c7: 0x6d013c20, - 0x2b3c8: 0x6d013e20, 0x2b3c9: 0x6d014020, 0x2b3ca: 0x6d2f0820, 0x2b3cb: 0x6d2f0a20, - 0x2b3cc: 0x6d2f0c20, 0x2b3cd: 0x6d2f0e20, 0x2b3ce: 0x6d2f1020, 0x2b3cf: 0x6d2f1220, - 0x2b3d0: 0x6d2f1420, 0x2b3d1: 0x6d2f1620, 0x2b3d2: 0x6d2f1820, 0x2b3d3: 0x6d2f1a20, - 0x2b3d4: 0x6d2f1c20, 0x2b3d5: 0x6d2f1e20, 0x2b3d6: 0x6d2f2020, 0x2b3d7: 0x6d5c2820, - 0x2b3d8: 0x6d5c2a20, 0x2b3d9: 0x6d5c2c20, 0x2b3da: 0x6d5c2e20, 0x2b3db: 0x6d5c3020, - 0x2b3dc: 0x6d5c3220, 0x2b3dd: 0x6d5c3420, 0x2b3de: 0x6d5c3620, 0x2b3df: 0x6d5c3820, - 0x2b3e0: 0x6d5c3a20, 0x2b3e1: 0x6d5c3c20, 0x2b3e2: 0x6d86ae20, 0x2b3e3: 0x6d86b020, - 0x2b3e4: 0x6d86b220, 0x2b3e5: 0x6d86b420, 0x2b3e6: 0x6d86b620, 0x2b3e7: 0x6d86b820, - 0x2b3e8: 0x6d86ba20, 0x2b3e9: 0x6d86bc20, 0x2b3ea: 0x6d86be20, 0x2b3eb: 0x6dab4e20, - 0x2b3ec: 0x6dab5020, 0x2b3ed: 0x6dab5220, 0x2b3ee: 0x6dab5420, 0x2b3ef: 0x6dab5620, - 0x2b3f0: 0x6dab5820, 0x2b3f1: 0x6dab5a20, 0x2b3f2: 0x6dab5c20, 0x2b3f3: 0x6dab5e20, - 0x2b3f4: 0x6dcbbe20, 0x2b3f5: 0x6dcbc020, 0x2b3f6: 0x6dcbc220, 0x2b3f7: 0x6dcbc420, - 0x2b3f8: 0x6dcbc620, 0x2b3f9: 0x6dcbc820, 0x2b3fa: 0x6dcbca20, 0x2b3fb: 0x6dfda620, - 0x2b3fc: 0x6dfda820, 0x2b3fd: 0x6dfdaa20, 0x2b3fe: 0x6dfdac20, 0x2b3ff: 0x6e105c20, - // Block 0xad0, offset 0x2b400 - 0x2b400: 0x6e105e20, 0x2b401: 0x6e1f1620, 0x2b402: 0x6e2a6820, 0x2b403: 0x6e2a6a20, - 0x2b404: 0x6e393820, 0x2b405: 0x6e452e20, 0x2b406: 0x6c3cb220, 0x2b407: 0x6c5a1a20, - 0x2b408: 0x6ca59420, 0x2b409: 0x6d2fce20, 0x2b40a: 0x6dabea20, 0x2b40b: 0x6dabec20, - 0x2b40c: 0x6dabee20, 0x2b40d: 0x6dfde020, 0x2b40e: 0x6e332220, 0x2b40f: 0x6c7ce420, - 0x2b410: 0x6c7ce620, 0x2b411: 0x6c7cfc20, 0x2b412: 0x6ca59c20, 0x2b413: 0x6cd40a20, - 0x2b414: 0x6d020620, 0x2b415: 0x6d2fe820, 0x2b416: 0x6c13ee20, 0x2b417: 0x6c253820, - 0x2b418: 0x6c3cbc20, 0x2b419: 0x6c3cbe20, 0x2b41a: 0x6c5a3c20, 0x2b41b: 0x6c5a3e20, - 0x2b41c: 0x6c5a4020, 0x2b41d: 0x6c5a4220, 0x2b41e: 0x6c5a4420, 0x2b41f: 0x6c7cfe20, - 0x2b420: 0x6c7d0020, 0x2b421: 0x6c7d0220, 0x2b422: 0x6c7d0420, 0x2b423: 0x6c7d0620, - 0x2b424: 0x6c7d0820, 0x2b425: 0x6c7d0a20, 0x2b426: 0x6c7d0c20, 0x2b427: 0x6c7d0e20, - 0x2b428: 0x6c7d1020, 0x2b429: 0x6ca5d020, 0x2b42a: 0x6ca5d220, 0x2b42b: 0x6ca5d420, - 0x2b42c: 0x6ca5d620, 0x2b42d: 0x6ca5d820, 0x2b42e: 0x6ca5da20, 0x2b42f: 0x6ca5dc20, - 0x2b430: 0x6cd42620, 0x2b431: 0x6cd42820, 0x2b432: 0x6cd42a20, 0x2b433: 0x6cd42c20, - 0x2b434: 0x6cd42e20, 0x2b435: 0x6cd43020, 0x2b436: 0x6cd43220, 0x2b437: 0x6d023020, - 0x2b438: 0x6d023220, 0x2b439: 0x6d023420, 0x2b43a: 0x6d023620, 0x2b43b: 0x6d023820, - 0x2b43c: 0x6d023a20, 0x2b43d: 0x6d023c20, 0x2b43e: 0x6d023e20, 0x2b43f: 0x6d024020, - // Block 0xad1, offset 0x2b440 - 0x2b440: 0x6d024220, 0x2b441: 0x6d024420, 0x2b442: 0x6d024620, 0x2b443: 0x6d024820, - 0x2b444: 0x6d024a20, 0x2b445: 0x6d024c20, 0x2b446: 0x6d024e20, 0x2b447: 0x6d025020, - 0x2b448: 0x6d2ffc20, 0x2b449: 0x6d2ffe20, 0x2b44a: 0x6d300020, 0x2b44b: 0x6d300220, - 0x2b44c: 0x6d300420, 0x2b44d: 0x6d300620, 0x2b44e: 0x6d300820, 0x2b44f: 0x6d300a20, - 0x2b450: 0x6d300c20, 0x2b451: 0x6d5cf820, 0x2b452: 0x6d5cfa20, 0x2b453: 0x6d5cfc20, - 0x2b454: 0x6d5cfe20, 0x2b455: 0x6d5d0020, 0x2b456: 0x6d5d0220, 0x2b457: 0x6d5d0420, - 0x2b458: 0x6d876a20, 0x2b459: 0x6d876c20, 0x2b45a: 0x6d876e20, 0x2b45b: 0x6d877020, - 0x2b45c: 0x6d877220, 0x2b45d: 0x6d877420, 0x2b45e: 0x6d877620, 0x2b45f: 0x6dac0a20, - 0x2b460: 0x6d877820, 0x2b461: 0x6dac0c20, 0x2b462: 0x6dac0e20, 0x2b463: 0x6dac1020, - 0x2b464: 0x6dac1220, 0x2b465: 0x6dac1420, 0x2b466: 0x6dac1620, 0x2b467: 0x6dac1820, - 0x2b468: 0x6dac1a20, 0x2b469: 0x6dcc4220, 0x2b46a: 0x6dcc4420, 0x2b46b: 0x6dcc4620, - 0x2b46c: 0x6dcc4820, 0x2b46d: 0x6dcc4a20, 0x2b46e: 0x6dcc4c20, 0x2b46f: 0x6dcc4e20, - 0x2b470: 0x6de76a20, 0x2b471: 0x6dfdec20, 0x2b472: 0x6dfdee20, 0x2b473: 0x6dfdf020, - 0x2b474: 0x6e108c20, 0x2b475: 0x6e108e20, 0x2b476: 0x6e109020, 0x2b477: 0x6e109220, - 0x2b478: 0x6e1f3420, 0x2b479: 0x6e1f3620, 0x2b47a: 0x6e332420, 0x2b47b: 0x6e3d9620, - 0x2b47c: 0x6c254c20, 0x2b47d: 0x6c5abe20, 0x2b47e: 0x6c5ac020, 0x2b47f: 0x6c5ac220, - // Block 0xad2, offset 0x2b480 - 0x2b480: 0x6c5ac420, 0x2b481: 0x6c7dbe20, 0x2b482: 0x6c7dc020, 0x2b483: 0x6c7dc220, - 0x2b484: 0x6ca68c20, 0x2b485: 0x6ca68e20, 0x2b486: 0x6ca69020, 0x2b487: 0x6cd4b820, - 0x2b488: 0x6cd4ba20, 0x2b489: 0x6cd4bc20, 0x2b48a: 0x6cd4be20, 0x2b48b: 0x6d030820, - 0x2b48c: 0x6d030a20, 0x2b48d: 0x6d030c20, 0x2b48e: 0x6d030e20, 0x2b48f: 0x6d031020, - 0x2b490: 0x6d031220, 0x2b491: 0x6d031420, 0x2b492: 0x6d031620, 0x2b493: 0x6d30b420, - 0x2b494: 0x6d30b620, 0x2b495: 0x6d30b820, 0x2b496: 0x6d30ba20, 0x2b497: 0x6d30bc20, - 0x2b498: 0x6d5d8820, 0x2b499: 0x6d5d8a20, 0x2b49a: 0x6d87f420, 0x2b49b: 0x6d87f620, - 0x2b49c: 0x6d87f820, 0x2b49d: 0x6d87fa20, 0x2b49e: 0x6d87fc20, 0x2b49f: 0x6dac9e20, - 0x2b4a0: 0x6dcca020, 0x2b4a1: 0x6dcca220, 0x2b4a2: 0x6de7aa20, 0x2b4a3: 0x6dfe3820, - 0x2b4a4: 0x6e10bc20, 0x2b4a5: 0x6e444820, 0x2b4a6: 0x6c256420, 0x2b4a7: 0x6c256620, - 0x2b4a8: 0x6c3d2e20, 0x2b4a9: 0x6c3d3020, 0x2b4aa: 0x6c3d3220, 0x2b4ab: 0x6c3d3420, - 0x2b4ac: 0x6c3d3620, 0x2b4ad: 0x6c3d3820, 0x2b4ae: 0x6c5b2e20, 0x2b4af: 0x6c5b3020, - 0x2b4b0: 0x6c5b3220, 0x2b4b1: 0x6c5b3420, 0x2b4b2: 0x6c5b3620, 0x2b4b3: 0x6c5b3820, - 0x2b4b4: 0x6c5b3a20, 0x2b4b5: 0x6c5b3c20, 0x2b4b6: 0x6c7e3020, 0x2b4b7: 0x6c7e3220, - 0x2b4b8: 0x6c7e3420, 0x2b4b9: 0x6c7e3620, 0x2b4ba: 0x6ca6f820, 0x2b4bb: 0x6ca6fa20, - 0x2b4bc: 0x6ca6fc20, 0x2b4bd: 0x6ca6fe20, 0x2b4be: 0x6ca70020, 0x2b4bf: 0x6ca70220, - // Block 0xad3, offset 0x2b4c0 - 0x2b4c0: 0x6ca70420, 0x2b4c1: 0x6ca70620, 0x2b4c2: 0x6ca70820, 0x2b4c3: 0x6ca70a20, - 0x2b4c4: 0x6ca70c20, 0x2b4c5: 0x6ca70e20, 0x2b4c6: 0x6ca71020, 0x2b4c7: 0x6ca71220, - 0x2b4c8: 0x6ca71420, 0x2b4c9: 0x6ca71620, 0x2b4ca: 0x6ca71820, 0x2b4cb: 0x6cd52e20, - 0x2b4cc: 0x6cd53020, 0x2b4cd: 0x6cd53220, 0x2b4ce: 0x6cd53420, 0x2b4cf: 0x6cd53620, - 0x2b4d0: 0x6cd53820, 0x2b4d1: 0x6cd53a20, 0x2b4d2: 0x6cd53c20, 0x2b4d3: 0x6cd53e20, - 0x2b4d4: 0x6d037c20, 0x2b4d5: 0x6d037e20, 0x2b4d6: 0x6d038020, 0x2b4d7: 0x6d038220, - 0x2b4d8: 0x6d038420, 0x2b4d9: 0x6d038620, 0x2b4da: 0x6d038820, 0x2b4db: 0x6d038a20, - 0x2b4dc: 0x6d038c20, 0x2b4dd: 0x6d038e20, 0x2b4de: 0x6d039020, 0x2b4df: 0x6d039220, - 0x2b4e0: 0x6d311a20, 0x2b4e1: 0x6d311c20, 0x2b4e2: 0x6d311e20, 0x2b4e3: 0x6d312020, - 0x2b4e4: 0x6d312220, 0x2b4e5: 0x6d312420, 0x2b4e6: 0x6d312620, 0x2b4e7: 0x6d312820, - 0x2b4e8: 0x6d312a20, 0x2b4e9: 0x6d312c20, 0x2b4ea: 0x6d312e20, 0x2b4eb: 0x6d313020, - 0x2b4ec: 0x6d5dd820, 0x2b4ed: 0x6d5dda20, 0x2b4ee: 0x6d5ddc20, 0x2b4ef: 0x6d5dde20, - 0x2b4f0: 0x6d5de020, 0x2b4f1: 0x6d5de220, 0x2b4f2: 0x6d5de420, 0x2b4f3: 0x6d5de620, - 0x2b4f4: 0x6d5de820, 0x2b4f5: 0x6d5dea20, 0x2b4f6: 0x6d5dec20, 0x2b4f7: 0x6d883420, - 0x2b4f8: 0x6d883620, 0x2b4f9: 0x6d883820, 0x2b4fa: 0x6d883a20, 0x2b4fb: 0x6d883c20, - 0x2b4fc: 0x6d883e20, 0x2b4fd: 0x6d884020, 0x2b4fe: 0x6dacce20, 0x2b4ff: 0x6dacd020, - // Block 0xad4, offset 0x2b500 - 0x2b500: 0x6dacd220, 0x2b501: 0x6dccc020, 0x2b502: 0x6dccc220, 0x2b503: 0x6dccc420, - 0x2b504: 0x6dccc620, 0x2b505: 0x6dccc820, 0x2b506: 0x6dccca20, 0x2b507: 0x6dcccc20, - 0x2b508: 0x6dfe4620, 0x2b509: 0x6dfe4820, 0x2b50a: 0x6e10ca20, 0x2b50b: 0x6e10cc20, - 0x2b50c: 0x6e10ce20, 0x2b50d: 0x6e10d020, 0x2b50e: 0x6e1f6620, 0x2b50f: 0x6e1f6820, - 0x2b510: 0x6e453020, 0x2b511: 0x6c257a20, 0x2b512: 0x6c3d6820, 0x2b513: 0x6c5b9220, - 0x2b514: 0x6c5b9420, 0x2b515: 0x6c5b9620, 0x2b516: 0x6c5b9820, 0x2b517: 0x6c7ea620, - 0x2b518: 0x6c7ea820, 0x2b519: 0x6c7eaa20, 0x2b51a: 0x6ca77820, 0x2b51b: 0x6ca77a20, - 0x2b51c: 0x6ca77c20, 0x2b51d: 0x6ca77e20, 0x2b51e: 0x6ca78020, 0x2b51f: 0x6ca78220, - 0x2b520: 0x6ca78420, 0x2b521: 0x6cd5a220, 0x2b522: 0x6cd5a420, 0x2b523: 0x6cd5a620, - 0x2b524: 0x6cd5a820, 0x2b525: 0x6cd5aa20, 0x2b526: 0x6d042a20, 0x2b527: 0x6d042c20, - 0x2b528: 0x6d042e20, 0x2b529: 0x6d043020, 0x2b52a: 0x6d31c420, 0x2b52b: 0x6d31c620, - 0x2b52c: 0x6d5e6a20, 0x2b52d: 0x6d5e6c20, 0x2b52e: 0x6d5e6e20, 0x2b52f: 0x6d88bc20, - 0x2b530: 0x6d88be20, 0x2b531: 0x6d88c020, 0x2b532: 0x6d88c220, 0x2b533: 0x6d88c420, - 0x2b534: 0x6d88c620, 0x2b535: 0x6dad4220, 0x2b536: 0x6dad4420, 0x2b537: 0x6dad4620, - 0x2b538: 0x6dad4820, 0x2b539: 0x6dad4a20, 0x2b53a: 0x6dad4c20, 0x2b53b: 0x6dad4e20, - 0x2b53c: 0x6dcd1c20, 0x2b53d: 0x6dcd1e20, 0x2b53e: 0x6de7f220, 0x2b53f: 0x6de7f420, - // Block 0xad5, offset 0x2b540 - 0x2b540: 0x6dfe8420, 0x2b541: 0x6e1f7620, 0x2b542: 0x6c140e20, 0x2b543: 0x6c3d8c20, - 0x2b544: 0x6c3d8e20, 0x2b545: 0x6c5bd220, 0x2b546: 0x6c5bd420, 0x2b547: 0x6c7ef620, - 0x2b548: 0x6c7ef820, 0x2b549: 0x6c7efa20, 0x2b54a: 0x6c7efc20, 0x2b54b: 0x6ca7c620, - 0x2b54c: 0x6cd60a20, 0x2b54d: 0x6cd60c20, 0x2b54e: 0x6d048620, 0x2b54f: 0x6d048820, - 0x2b550: 0x6d048a20, 0x2b551: 0x6d048c20, 0x2b552: 0x6d892020, 0x2b553: 0x6dad8820, - 0x2b554: 0x6dcd3820, 0x2b555: 0x6de80620, 0x2b556: 0x6c5bf620, 0x2b557: 0x6c7f3220, - 0x2b558: 0x6c7f3420, 0x2b559: 0x6c7f3620, 0x2b55a: 0x6c7f3820, 0x2b55b: 0x6c7f3a20, - 0x2b55c: 0x6c7f3c20, 0x2b55d: 0x6c7f3e20, 0x2b55e: 0x6ca7e820, 0x2b55f: 0x6ca7ea20, - 0x2b560: 0x6ca7ec20, 0x2b561: 0x6ca7ee20, 0x2b562: 0x6ca7f020, 0x2b563: 0x6ca7f220, - 0x2b564: 0x6ca7f420, 0x2b565: 0x6ca7f620, 0x2b566: 0x6ca7f820, 0x2b567: 0x6cd63620, - 0x2b568: 0x6cd63820, 0x2b569: 0x6cd63a20, 0x2b56a: 0x6cd63c20, 0x2b56b: 0x6cd63e20, - 0x2b56c: 0x6cd64020, 0x2b56d: 0x6cd64220, 0x2b56e: 0x6cd64420, 0x2b56f: 0x6cd64620, - 0x2b570: 0x6cd64820, 0x2b571: 0x6cd64a20, 0x2b572: 0x6cd64c20, 0x2b573: 0x6cd64e20, - 0x2b574: 0x6cd65020, 0x2b575: 0x6d04b620, 0x2b576: 0x6d04b820, 0x2b577: 0x6d04ba20, - 0x2b578: 0x6d04bc20, 0x2b579: 0x6d04be20, 0x2b57a: 0x6d04c020, 0x2b57b: 0x6d04c220, - 0x2b57c: 0x6d04c420, 0x2b57d: 0x6d04c620, 0x2b57e: 0x6d04c820, 0x2b57f: 0x6d04ca20, - // Block 0xad6, offset 0x2b580 - 0x2b580: 0x6d04cc20, 0x2b581: 0x6d323220, 0x2b582: 0x6d323420, 0x2b583: 0x6d323620, - 0x2b584: 0x6d323820, 0x2b585: 0x6d323a20, 0x2b586: 0x6d323c20, 0x2b587: 0x6d323e20, - 0x2b588: 0x6d324020, 0x2b589: 0x6d324220, 0x2b58a: 0x6d324420, 0x2b58b: 0x6d324620, - 0x2b58c: 0x6d324820, 0x2b58d: 0x6d324a20, 0x2b58e: 0x6d5ecc20, 0x2b58f: 0x6d5ece20, - 0x2b590: 0x6d5ed020, 0x2b591: 0x6d5ed220, 0x2b592: 0x6d5ed420, 0x2b593: 0x6d5ed620, - 0x2b594: 0x6d5ed820, 0x2b595: 0x6d5eda20, 0x2b596: 0x6d5edc20, 0x2b597: 0x6d5ede20, - 0x2b598: 0x6d5ee020, 0x2b599: 0x6d5ee220, 0x2b59a: 0x6d5ee420, 0x2b59b: 0x6d5ee620, - 0x2b59c: 0x6d5ee820, 0x2b59d: 0x6d5eea20, 0x2b59e: 0x6d5eec20, 0x2b59f: 0x6d5eee20, - 0x2b5a0: 0x6d5ef020, 0x2b5a1: 0x6d5ef220, 0x2b5a2: 0x6d5ef420, 0x2b5a3: 0x6d5ef620, - 0x2b5a4: 0x6d5ef820, 0x2b5a5: 0x6d5efa20, 0x2b5a6: 0x6d5efc20, 0x2b5a7: 0x6d5efe20, - 0x2b5a8: 0x6d5f0020, 0x2b5a9: 0x6d5f0220, 0x2b5aa: 0x6d892e20, 0x2b5ab: 0x6d893020, - 0x2b5ac: 0x6d893220, 0x2b5ad: 0x6d893420, 0x2b5ae: 0x6d893620, 0x2b5af: 0x6d893820, - 0x2b5b0: 0x6d893a20, 0x2b5b1: 0x6d893c20, 0x2b5b2: 0x6d893e20, 0x2b5b3: 0x6d894020, - 0x2b5b4: 0x6d894220, 0x2b5b5: 0x6d894420, 0x2b5b6: 0x6d894620, 0x2b5b7: 0x6d894820, - 0x2b5b8: 0x6dada820, 0x2b5b9: 0x6dadaa20, 0x2b5ba: 0x6dadac20, 0x2b5bb: 0x6dadae20, - 0x2b5bc: 0x6dadb020, 0x2b5bd: 0x6dadb220, 0x2b5be: 0x6dadb420, 0x2b5bf: 0x6dadb620, - // Block 0xad7, offset 0x2b5c0 - 0x2b5c0: 0x6dadb820, 0x2b5c1: 0x6dadba20, 0x2b5c2: 0x6dadbc20, 0x2b5c3: 0x6dadbe20, - 0x2b5c4: 0x6dadc020, 0x2b5c5: 0x6dadc220, 0x2b5c6: 0x6dadc420, 0x2b5c7: 0x6dadc620, - 0x2b5c8: 0x6dcd4c20, 0x2b5c9: 0x6dcd4e20, 0x2b5ca: 0x6dcd5020, 0x2b5cb: 0x6dcd5220, - 0x2b5cc: 0x6dcd5420, 0x2b5cd: 0x6dcd5620, 0x2b5ce: 0x6dcd5820, 0x2b5cf: 0x6de81420, - 0x2b5d0: 0x6dcd5a20, 0x2b5d1: 0x6dcd5c20, 0x2b5d2: 0x6dcd5e20, 0x2b5d3: 0x6dcd6020, - 0x2b5d4: 0x6dcd6220, 0x2b5d5: 0x6dcd6420, 0x2b5d6: 0x6dcd6620, 0x2b5d7: 0x6dcd6820, - 0x2b5d8: 0x6dcd6a20, 0x2b5d9: 0x6dcd6c20, 0x2b5da: 0x6dcd6e20, 0x2b5db: 0x6de81620, - 0x2b5dc: 0x6de81820, 0x2b5dd: 0x6de81a20, 0x2b5de: 0x6de81c20, 0x2b5df: 0x6de81e20, - 0x2b5e0: 0x6de82020, 0x2b5e1: 0x6de82220, 0x2b5e2: 0x6de82420, 0x2b5e3: 0x6dcd7020, - 0x2b5e4: 0x6de82620, 0x2b5e5: 0x6dfeaa20, 0x2b5e6: 0x6e110820, 0x2b5e7: 0x6e110a20, - 0x2b5e8: 0x6e110c20, 0x2b5e9: 0x6e110e20, 0x2b5ea: 0x6e111020, 0x2b5eb: 0x6e111220, - 0x2b5ec: 0x6e111420, 0x2b5ed: 0x6e111620, 0x2b5ee: 0x6e1f8620, 0x2b5ef: 0x6e1f8820, - 0x2b5f0: 0x6e1f8a20, 0x2b5f1: 0x6e1f8c20, 0x2b5f2: 0x6e2ac620, 0x2b5f3: 0x6e2ac820, - 0x2b5f4: 0x6e2aca20, 0x2b5f5: 0x6e2e7820, 0x2b5f6: 0x6e335220, 0x2b5f7: 0x6e3dac20, - 0x2b5f8: 0x6e408e20, 0x2b5f9: 0x6e453220, 0x2b5fa: 0x6c5c2e20, 0x2b5fb: 0x6c7faa20, - 0x2b5fc: 0x6c7fac20, 0x2b5fd: 0x6ca89220, 0x2b5fe: 0x6ca89420, 0x2b5ff: 0x6ca89620, - // Block 0xad8, offset 0x2b600 - 0x2b600: 0x6ca89820, 0x2b601: 0x6cd6e020, 0x2b602: 0x6cd6e220, 0x2b603: 0x6cd6e420, - 0x2b604: 0x6cd6e620, 0x2b605: 0x6cd6e820, 0x2b606: 0x6cd6ea20, 0x2b607: 0x6d059820, - 0x2b608: 0x6d059a20, 0x2b609: 0x6d059c20, 0x2b60a: 0x6d059e20, 0x2b60b: 0x6d05a020, - 0x2b60c: 0x6d05a220, 0x2b60d: 0x6d333820, 0x2b60e: 0x6d333a20, 0x2b60f: 0x6d333c20, - 0x2b610: 0x6d333e20, 0x2b611: 0x6d334020, 0x2b612: 0x6d334220, 0x2b613: 0x6d5fee20, - 0x2b614: 0x6d5ff020, 0x2b615: 0x6d5ff220, 0x2b616: 0x6d5ff420, 0x2b617: 0x6d5ff620, - 0x2b618: 0x6d5ff820, 0x2b619: 0x6d5ffa20, 0x2b61a: 0x6d8a5220, 0x2b61b: 0x6d8a5420, - 0x2b61c: 0x6daec620, 0x2b61d: 0x6daec820, 0x2b61e: 0x6daeca20, 0x2b61f: 0x6daecc20, - 0x2b620: 0x6daece20, 0x2b621: 0x6daed020, 0x2b622: 0x6daed220, 0x2b623: 0x6dce6420, - 0x2b624: 0x6dce6620, 0x2b625: 0x6dce6820, 0x2b626: 0x6dce6a20, 0x2b627: 0x6dce6c20, - 0x2b628: 0x6dce6e20, 0x2b629: 0x6dce7020, 0x2b62a: 0x6de8c220, 0x2b62b: 0x6de8c420, - 0x2b62c: 0x6de8c620, 0x2b62d: 0x6dff1c20, 0x2b62e: 0x6dff1e20, 0x2b62f: 0x6e118a20, - 0x2b630: 0x6e1fe220, 0x2b631: 0x6e2b0420, 0x2b632: 0x6e2b0620, 0x2b633: 0x6e398420, - 0x2b634: 0x6e398620, 0x2b635: 0x6c3dba20, 0x2b636: 0x6c5c5e20, 0x2b637: 0x6c5c6020, - 0x2b638: 0x6c5c6220, 0x2b639: 0x6c5c6420, 0x2b63a: 0x6c7fee20, 0x2b63b: 0x6c7ff020, - 0x2b63c: 0x6c7ff220, 0x2b63d: 0x6c7ff420, 0x2b63e: 0x6c7ff620, 0x2b63f: 0x6c7ff820, - // Block 0xad9, offset 0x2b640 - 0x2b640: 0x6c7ffa20, 0x2b641: 0x6c7ffc20, 0x2b642: 0x6c7ffe20, 0x2b643: 0x6c800020, - 0x2b644: 0x6c800220, 0x2b645: 0x6c800420, 0x2b646: 0x6c800620, 0x2b647: 0x6c800820, - 0x2b648: 0x6ca8f220, 0x2b649: 0x6ca8f420, 0x2b64a: 0x6ca8f620, 0x2b64b: 0x6ca8f820, - 0x2b64c: 0x6ca8fa20, 0x2b64d: 0x6ca8fc20, 0x2b64e: 0x6ca8fe20, 0x2b64f: 0x6ca90020, - 0x2b650: 0x6ca90220, 0x2b651: 0x6ca90420, 0x2b652: 0x6ca90620, 0x2b653: 0x6ca90820, - 0x2b654: 0x6ca90a20, 0x2b655: 0x6cd74620, 0x2b656: 0x6cd74820, 0x2b657: 0x6cd74a20, - 0x2b658: 0x6cd74c20, 0x2b659: 0x6cd74e20, 0x2b65a: 0x6cd75020, 0x2b65b: 0x6cd75220, - 0x2b65c: 0x6cd75420, 0x2b65d: 0x6cd75620, 0x2b65e: 0x6cd75820, 0x2b65f: 0x6d060420, - 0x2b660: 0x6d060620, 0x2b661: 0x6d060820, 0x2b662: 0x6d060a20, 0x2b663: 0x6d060c20, - 0x2b664: 0x6d060e20, 0x2b665: 0x6d061020, 0x2b666: 0x6d061220, 0x2b667: 0x6d33b820, - 0x2b668: 0x6d33ba20, 0x2b669: 0x6d33bc20, 0x2b66a: 0x6d33be20, 0x2b66b: 0x6d33c020, - 0x2b66c: 0x6d33c220, 0x2b66d: 0x6d33c420, 0x2b66e: 0x6d33c620, 0x2b66f: 0x6d33c820, - 0x2b670: 0x6d33ca20, 0x2b671: 0x6d33cc20, 0x2b672: 0x6d33ce20, 0x2b673: 0x6d606420, - 0x2b674: 0x6d606620, 0x2b675: 0x6d606820, 0x2b676: 0x6d606a20, 0x2b677: 0x6d606c20, - 0x2b678: 0x6d606e20, 0x2b679: 0x6d607020, 0x2b67a: 0x6d607220, 0x2b67b: 0x6d607420, - 0x2b67c: 0x6d607620, 0x2b67d: 0x6d607820, 0x2b67e: 0x6d607a20, 0x2b67f: 0x6d607c20, - // Block 0xada, offset 0x2b680 - 0x2b680: 0x6d607e20, 0x2b681: 0x6d608020, 0x2b682: 0x6d608220, 0x2b683: 0x6d608420, - 0x2b684: 0x6d608620, 0x2b685: 0x6d8aac20, 0x2b686: 0x6d8aae20, 0x2b687: 0x6d8ab020, - 0x2b688: 0x6d8ab220, 0x2b689: 0x6d8ab420, 0x2b68a: 0x6d8ab620, 0x2b68b: 0x6d8ab820, - 0x2b68c: 0x6daf2020, 0x2b68d: 0x6daf2220, 0x2b68e: 0x6daf2420, 0x2b68f: 0x6daf2620, - 0x2b690: 0x6daf2820, 0x2b691: 0x6daf2a20, 0x2b692: 0x6daf2c20, 0x2b693: 0x6daf2e20, - 0x2b694: 0x6daf3020, 0x2b695: 0x6daf3220, 0x2b696: 0x6dcec020, 0x2b697: 0x6dcec220, - 0x2b698: 0x6dcec420, 0x2b699: 0x6dcec620, 0x2b69a: 0x6dcec820, 0x2b69b: 0x6dceca20, - 0x2b69c: 0x6de90c20, 0x2b69d: 0x6de90e20, 0x2b69e: 0x6de91020, 0x2b69f: 0x6de91220, - 0x2b6a0: 0x6de91420, 0x2b6a1: 0x6de91620, 0x2b6a2: 0x6de91820, 0x2b6a3: 0x6dff3820, - 0x2b6a4: 0x6dff3a20, 0x2b6a5: 0x6dff3c20, 0x2b6a6: 0x6dff3e20, 0x2b6a7: 0x6dff4020, - 0x2b6a8: 0x6e11a620, 0x2b6a9: 0x6e11a820, 0x2b6aa: 0x6e200020, 0x2b6ab: 0x6e200220, - 0x2b6ac: 0x6e200420, 0x2b6ad: 0x6e200620, 0x2b6ae: 0x6e2b1420, 0x2b6af: 0x6e338a20, - 0x2b6b0: 0x6e338c20, 0x2b6b1: 0x6e338e20, 0x2b6b2: 0x6e339020, 0x2b6b3: 0x6e399420, - 0x2b6b4: 0x6e399620, 0x2b6b5: 0x6e40a420, 0x2b6b6: 0x6c5c9820, 0x2b6b7: 0x6ca99e20, - 0x2b6b8: 0x6c809c20, 0x2b6b9: 0x6ca9a020, 0x2b6ba: 0x6cd80e20, 0x2b6bb: 0x6cd81020, - 0x2b6bc: 0x6d06cc20, 0x2b6bd: 0x6d34c620, 0x2b6be: 0x6d617c20, 0x2b6bf: 0x6d617e20, - // Block 0xadb, offset 0x2b6c0 - 0x2b6c0: 0x6d8b9420, 0x2b6c1: 0x6de9a020, 0x2b6c2: 0x6c5cc420, 0x2b6c3: 0x6c80c420, - 0x2b6c4: 0x6ca9e220, 0x2b6c5: 0x6ca9e420, 0x2b6c6: 0x6ca9e620, 0x2b6c7: 0x6ca9e820, - 0x2b6c8: 0x6ca9ea20, 0x2b6c9: 0x6ca9ec20, 0x2b6ca: 0x6cd85220, 0x2b6cb: 0x6d34e020, - 0x2b6cc: 0x6d34e220, 0x2b6cd: 0x6d8ba620, 0x2b6ce: 0x6e2b3220, 0x2b6cf: 0x6c0a4820, - 0x2b6d0: 0x6c3e0220, 0x2b6d1: 0x6c5cce20, 0x2b6d2: 0x6c5cd020, 0x2b6d3: 0x6c5cd220, - 0x2b6d4: 0x6c5cd420, 0x2b6d5: 0x6c80d220, 0x2b6d6: 0x6c80d420, 0x2b6d7: 0x6c80d620, - 0x2b6d8: 0x6ca9fe20, 0x2b6d9: 0x6cd86420, 0x2b6da: 0x6cd86620, 0x2b6db: 0x6d06fc20, - 0x2b6dc: 0x6d06fe20, 0x2b6dd: 0x6d070020, 0x2b6de: 0x6d34fc20, 0x2b6df: 0x6d34fe20, - 0x2b6e0: 0x6d8bba20, 0x2b6e1: 0x6d8bbc20, 0x2b6e2: 0x6db00620, 0x2b6e3: 0x6dcf8c20, - 0x2b6e4: 0x6de9b420, 0x2b6e5: 0x6e120820, 0x2b6e6: 0x6e33ae20, 0x2b6e7: 0x6c812420, - 0x2b6e8: 0x6c812620, 0x2b6e9: 0x6c812820, 0x2b6ea: 0x6caa2a20, 0x2b6eb: 0x6caa2c20, - 0x2b6ec: 0x6caa2e20, 0x2b6ed: 0x6caa3020, 0x2b6ee: 0x6cd88220, 0x2b6ef: 0x6cd88420, - 0x2b6f0: 0x6cd88620, 0x2b6f1: 0x6d074620, 0x2b6f2: 0x6d352e20, 0x2b6f3: 0x6d353020, - 0x2b6f4: 0x6d353220, 0x2b6f5: 0x6d353420, 0x2b6f6: 0x6d353620, 0x2b6f7: 0x6d61ca20, - 0x2b6f8: 0x6d8bf220, 0x2b6f9: 0x6d8bf420, 0x2b6fa: 0x6db02c20, 0x2b6fb: 0x6dcfa820, - 0x2b6fc: 0x6dcfaa20, 0x2b6fd: 0x6e204220, 0x2b6fe: 0x6c815620, 0x2b6ff: 0x6c815820, - // Block 0xadc, offset 0x2b700 - 0x2b700: 0x6caa6e20, 0x2b701: 0x6caa7020, 0x2b702: 0x6caa7220, 0x2b703: 0x6caa7420, - 0x2b704: 0x6caa7620, 0x2b705: 0x6caa7820, 0x2b706: 0x6caa7a20, 0x2b707: 0x6cd8aa20, - 0x2b708: 0x6cd8ac20, 0x2b709: 0x6cd8ae20, 0x2b70a: 0x6cd8b020, 0x2b70b: 0x6d077c20, - 0x2b70c: 0x6d077e20, 0x2b70d: 0x6d078020, 0x2b70e: 0x6d078220, 0x2b70f: 0x6d355020, - 0x2b710: 0x6d355220, 0x2b711: 0x6d355420, 0x2b712: 0x6d355620, 0x2b713: 0x6d355820, - 0x2b714: 0x6d8c0c20, 0x2b715: 0x6d8c0e20, 0x2b716: 0x6dcfd820, 0x2b717: 0x6dcfda20, - 0x2b718: 0x6dcfdc20, 0x2b719: 0x6dffb220, 0x2b71a: 0x6e122220, 0x2b71b: 0x6c5d2e20, - 0x2b71c: 0x6cd8f220, 0x2b71d: 0x6cd8f420, 0x2b71e: 0x6cd8f620, 0x2b71f: 0x6c5d3a20, - 0x2b720: 0x6c5d3c20, 0x2b721: 0x6c81a620, 0x2b722: 0x6c5d4820, 0x2b723: 0x6caaba20, - 0x2b724: 0x6d07b020, 0x2b725: 0x6d07b220, 0x2b726: 0x6d359420, 0x2b727: 0x6d359620, - 0x2b728: 0x6d359820, 0x2b729: 0x6d359a20, 0x2b72a: 0x6d359c20, 0x2b72b: 0x6d624c20, - 0x2b72c: 0x6d624e20, 0x2b72d: 0x6db07e20, 0x2b72e: 0x6db08020, 0x2b72f: 0x6db08220, - 0x2b730: 0x6dd01020, 0x2b731: 0x6e122c20, 0x2b732: 0x6c25e420, 0x2b733: 0x6c81b620, - 0x2b734: 0x6c81b820, 0x2b735: 0x6caad020, 0x2b736: 0x6caad220, 0x2b737: 0x6cd90e20, - 0x2b738: 0x6d07c020, 0x2b739: 0x6d07c220, 0x2b73a: 0x6d35ba20, 0x2b73b: 0x6d35bc20, - 0x2b73c: 0x6d35be20, 0x2b73d: 0x6d35c020, 0x2b73e: 0x6d35c220, 0x2b73f: 0x6d626820, - // Block 0xadd, offset 0x2b740 - 0x2b740: 0x6d626a20, 0x2b741: 0x6d8c6220, 0x2b742: 0x6d8c6420, 0x2b743: 0x6d8c6620, - 0x2b744: 0x6db09820, 0x2b745: 0x6db09a20, 0x2b746: 0x6db09c20, 0x2b747: 0x6db09e20, - 0x2b748: 0x6dd02a20, 0x2b749: 0x6dffc620, 0x2b74a: 0x6e205c20, 0x2b74b: 0x6d07fc20, - 0x2b74c: 0x6c145820, 0x2b74d: 0x6c145a20, 0x2b74e: 0x6c25ea20, 0x2b74f: 0x6c25ec20, - 0x2b750: 0x6c3e6220, 0x2b751: 0x6c81fe20, 0x2b752: 0x6c3e6420, 0x2b753: 0x6c3e6620, - 0x2b754: 0x6c3e6820, 0x2b755: 0x6c3e6a20, 0x2b756: 0x6c3e6c20, 0x2b757: 0x6c3e6e20, - 0x2b758: 0x6c3e7020, 0x2b759: 0x6c3e7220, 0x2b75a: 0x6c3e7420, 0x2b75b: 0x6c3e7620, - 0x2b75c: 0x6c3e7820, 0x2b75d: 0x6c3e7a20, 0x2b75e: 0x6c5d6220, 0x2b75f: 0x6c5d6420, - 0x2b760: 0x6c5d6620, 0x2b761: 0x6c5d6820, 0x2b762: 0x6c5d6a20, 0x2b763: 0x6c5d6c20, - 0x2b764: 0x6c5d6e20, 0x2b765: 0x6c5d7020, 0x2b766: 0x6c820020, 0x2b767: 0x6c820220, - 0x2b768: 0x6c820420, 0x2b769: 0x6c820620, 0x2b76a: 0x6c820820, 0x2b76b: 0x6c820a20, - 0x2b76c: 0x6c820c20, 0x2b76d: 0x6c820e20, 0x2b76e: 0x6c821020, 0x2b76f: 0x6cab1220, - 0x2b770: 0x6cab1420, 0x2b771: 0x6cab1620, 0x2b772: 0x6cab1820, 0x2b773: 0x6cab1a20, - 0x2b774: 0x6cab1c20, 0x2b775: 0x6cab1e20, 0x2b776: 0x6cab2020, 0x2b777: 0x6cab2220, - 0x2b778: 0x6cab2420, 0x2b779: 0x6cab2620, 0x2b77a: 0x6cab2820, 0x2b77b: 0x6cab2a20, - 0x2b77c: 0x6cd95c20, 0x2b77d: 0x6cd95e20, 0x2b77e: 0x6cd96020, 0x2b77f: 0x6cd96220, - // Block 0xade, offset 0x2b780 - 0x2b780: 0x6cd96420, 0x2b781: 0x6cd96620, 0x2b782: 0x6cd96820, 0x2b783: 0x6cd96a20, - 0x2b784: 0x6cd96c20, 0x2b785: 0x6cd96e20, 0x2b786: 0x6cd97020, 0x2b787: 0x6cd97220, - 0x2b788: 0x6cd97420, 0x2b789: 0x6cd97620, 0x2b78a: 0x6cd97820, 0x2b78b: 0x6cd97a20, - 0x2b78c: 0x6cd97c20, 0x2b78d: 0x6d080a20, 0x2b78e: 0x6d080c20, 0x2b78f: 0x6d080e20, - 0x2b790: 0x6d081020, 0x2b791: 0x6d081220, 0x2b792: 0x6d081420, 0x2b793: 0x6d081620, - 0x2b794: 0x6d081820, 0x2b795: 0x6d081a20, 0x2b796: 0x6d081c20, 0x2b797: 0x6d081e20, - 0x2b798: 0x6d082020, 0x2b799: 0x6d082220, 0x2b79a: 0x6d082420, 0x2b79b: 0x6d082620, - 0x2b79c: 0x6d361c20, 0x2b79d: 0x6d361e20, 0x2b79e: 0x6d362020, 0x2b79f: 0x6d362220, - 0x2b7a0: 0x6d362420, 0x2b7a1: 0x6d8c9e20, 0x2b7a2: 0x6d362620, 0x2b7a3: 0x6d362820, - 0x2b7a4: 0x6d362a20, 0x2b7a5: 0x6d362c20, 0x2b7a6: 0x6d362e20, 0x2b7a7: 0x6d363020, - 0x2b7a8: 0x6d363220, 0x2b7a9: 0x6d363420, 0x2b7aa: 0x6d363620, 0x2b7ab: 0x6d62bc20, - 0x2b7ac: 0x6d62be20, 0x2b7ad: 0x6d62c020, 0x2b7ae: 0x6d62c220, 0x2b7af: 0x6d62c420, - 0x2b7b0: 0x6d62c620, 0x2b7b1: 0x6d62c820, 0x2b7b2: 0x6d62ca20, 0x2b7b3: 0x6d62cc20, - 0x2b7b4: 0x6d62ce20, 0x2b7b5: 0x6d8ca220, 0x2b7b6: 0x6d8ca420, 0x2b7b7: 0x6d8ca620, - 0x2b7b8: 0x6d8ca820, 0x2b7b9: 0x6d8caa20, 0x2b7ba: 0x6d8cac20, 0x2b7bb: 0x6d8cae20, - 0x2b7bc: 0x6d8cb020, 0x2b7bd: 0x6d8cb220, 0x2b7be: 0x6db0d620, 0x2b7bf: 0x6db0d820, - // Block 0xadf, offset 0x2b7c0 - 0x2b7c0: 0x6db0da20, 0x2b7c1: 0x6db0dc20, 0x2b7c2: 0x6dd05e20, 0x2b7c3: 0x6dd06020, - 0x2b7c4: 0x6dd06220, 0x2b7c5: 0x6dd06420, 0x2b7c6: 0x6dea2020, 0x2b7c7: 0x6dea2220, - 0x2b7c8: 0x6dea2420, 0x2b7c9: 0x6dffe020, 0x2b7ca: 0x6dffe220, 0x2b7cb: 0x6e124020, - 0x2b7cc: 0x6e124220, 0x2b7cd: 0x6e124420, 0x2b7ce: 0x6e124620, 0x2b7cf: 0x6e206820, - 0x2b7d0: 0x6cabdc20, 0x2b7d1: 0x6dd0b020, 0x2b7d2: 0x6c5e4020, 0x2b7d3: 0x6d08fc20, - 0x2b7d4: 0x6c82fa20, 0x2b7d5: 0x6cabf220, 0x2b7d6: 0x6d370020, 0x2b7d7: 0x6d637020, - 0x2b7d8: 0x6d8d7420, 0x2b7d9: 0x6c831020, 0x2b7da: 0x6c831220, 0x2b7db: 0x6cac0420, - 0x2b7dc: 0x6d638620, 0x2b7dd: 0x6d372e20, 0x2b7de: 0x6d8d9620, 0x2b7df: 0x6e126a20, - 0x2b7e0: 0x6c3f3420, 0x2b7e1: 0x6c5e5a20, 0x2b7e2: 0x6c5e5c20, 0x2b7e3: 0x6c5e5e20, - 0x2b7e4: 0x6c832820, 0x2b7e5: 0x6c832a20, 0x2b7e6: 0x6cac1020, 0x2b7e7: 0x6cac1220, - 0x2b7e8: 0x6cac1420, 0x2b7e9: 0x6cac1620, 0x2b7ea: 0x6cdac020, 0x2b7eb: 0x6cdac220, - 0x2b7ec: 0x6cdac420, 0x2b7ed: 0x6cdac620, 0x2b7ee: 0x6cdac820, 0x2b7ef: 0x6d091e20, - 0x2b7f0: 0x6d092020, 0x2b7f1: 0x6d373220, 0x2b7f2: 0x6d373420, 0x2b7f3: 0x6d373620, - 0x2b7f4: 0x6d373820, 0x2b7f5: 0x6d373a20, 0x2b7f6: 0x6d373c20, 0x2b7f7: 0x6d373e20, - 0x2b7f8: 0x6d374020, 0x2b7f9: 0x6d639c20, 0x2b7fa: 0x6d639e20, 0x2b7fb: 0x6d63a020, - 0x2b7fc: 0x6d8d9820, 0x2b7fd: 0x6d8d9a20, 0x2b7fe: 0x6d8d9c20, 0x2b7ff: 0x6db18e20, - // Block 0xae0, offset 0x2b800 - 0x2b800: 0x6db19020, 0x2b801: 0x6db19220, 0x2b802: 0x6db19420, 0x2b803: 0x6db19620, - 0x2b804: 0x6db19820, 0x2b805: 0x6db19a20, 0x2b806: 0x6dd0dc20, 0x2b807: 0x6dd0de20, - 0x2b808: 0x6dd0e020, 0x2b809: 0x6e003420, 0x2b80a: 0x6c5e7a20, 0x2b80b: 0x6cac4c20, - 0x2b80c: 0x6d8dca20, 0x2b80d: 0x6d8dcc20, 0x2b80e: 0x6dd11820, 0x2b80f: 0x6dd11a20, - 0x2b810: 0x6e209c20, 0x2b811: 0x6c149c20, 0x2b812: 0x6c3f4620, 0x2b813: 0x6c3f4820, - 0x2b814: 0x6c3f4a20, 0x2b815: 0x6c5e7e20, 0x2b816: 0x6c5e8020, 0x2b817: 0x6c5e8220, - 0x2b818: 0x6c5e8420, 0x2b819: 0x6c5e8620, 0x2b81a: 0x6c836020, 0x2b81b: 0x6c836220, - 0x2b81c: 0x6c836420, 0x2b81d: 0x6c836620, 0x2b81e: 0x6c836820, 0x2b81f: 0x6c836a20, - 0x2b820: 0x6c836c20, 0x2b821: 0x6c836e20, 0x2b822: 0x6c837020, 0x2b823: 0x6c837220, - 0x2b824: 0x6c837420, 0x2b825: 0x6c837620, 0x2b826: 0x6cac5c20, 0x2b827: 0x6cac5e20, - 0x2b828: 0x6cac6020, 0x2b829: 0x6cac6220, 0x2b82a: 0x6cac6420, 0x2b82b: 0x6cac6620, - 0x2b82c: 0x6cac6820, 0x2b82d: 0x6cac6a20, 0x2b82e: 0x6cac6c20, 0x2b82f: 0x6cac6e20, - 0x2b830: 0x6cdaf220, 0x2b831: 0x6cdaf420, 0x2b832: 0x6cdaf620, 0x2b833: 0x6cdaf820, - 0x2b834: 0x6cdafa20, 0x2b835: 0x6cdafc20, 0x2b836: 0x6cdafe20, 0x2b837: 0x6cdb0020, - 0x2b838: 0x6cdb0220, 0x2b839: 0x6cdb0420, 0x2b83a: 0x6cdb0620, 0x2b83b: 0x6cdb0820, - 0x2b83c: 0x6cdb0a20, 0x2b83d: 0x6cdb0c20, 0x2b83e: 0x6cdb0e20, 0x2b83f: 0x6cdb1020, - // Block 0xae1, offset 0x2b840 - 0x2b840: 0x6cdb1220, 0x2b841: 0x6cdb1420, 0x2b842: 0x6d095a20, 0x2b843: 0x6d095c20, - 0x2b844: 0x6d095e20, 0x2b845: 0x6d096020, 0x2b846: 0x6d096220, 0x2b847: 0x6d096420, - 0x2b848: 0x6d096620, 0x2b849: 0x6d096820, 0x2b84a: 0x6d096a20, 0x2b84b: 0x6d096c20, - 0x2b84c: 0x6d096e20, 0x2b84d: 0x6d097020, 0x2b84e: 0x6d097220, 0x2b84f: 0x6d097420, - 0x2b850: 0x6d097620, 0x2b851: 0x6d097820, 0x2b852: 0x6d097a20, 0x2b853: 0x6d097c20, - 0x2b854: 0x6d097e20, 0x2b855: 0x6d378020, 0x2b856: 0x6d098020, 0x2b857: 0x6d378220, - 0x2b858: 0x6d378420, 0x2b859: 0x6d378620, 0x2b85a: 0x6d378820, 0x2b85b: 0x6d378a20, - 0x2b85c: 0x6d378c20, 0x2b85d: 0x6d378e20, 0x2b85e: 0x6d379020, 0x2b85f: 0x6d379220, - 0x2b860: 0x6d379420, 0x2b861: 0x6d379620, 0x2b862: 0x6d379820, 0x2b863: 0x6d379a20, - 0x2b864: 0x6d379c20, 0x2b865: 0x6d379e20, 0x2b866: 0x6d37a020, 0x2b867: 0x6d37a220, - 0x2b868: 0x6d37a420, 0x2b869: 0x6d37a620, 0x2b86a: 0x6d37a820, 0x2b86b: 0x6d37aa20, - 0x2b86c: 0x6d37ac20, 0x2b86d: 0x6d37ae20, 0x2b86e: 0x6d63f220, 0x2b86f: 0x6d63f420, - 0x2b870: 0x6d63f620, 0x2b871: 0x6d63f820, 0x2b872: 0x6d63fa20, 0x2b873: 0x6d63fc20, - 0x2b874: 0x6d63fe20, 0x2b875: 0x6d640020, 0x2b876: 0x6d640220, 0x2b877: 0x6d640420, - 0x2b878: 0x6d640620, 0x2b879: 0x6d640820, 0x2b87a: 0x6d640a20, 0x2b87b: 0x6d640c20, - 0x2b87c: 0x6d8dda20, 0x2b87d: 0x6d8ddc20, 0x2b87e: 0x6d8dde20, 0x2b87f: 0x6d8de020, - // Block 0xae2, offset 0x2b880 - 0x2b880: 0x6d8de220, 0x2b881: 0x6d8de420, 0x2b882: 0x6d8de620, 0x2b883: 0x6d8de820, - 0x2b884: 0x6d8dea20, 0x2b885: 0x6d8dec20, 0x2b886: 0x6d8dee20, 0x2b887: 0x6d8df020, - 0x2b888: 0x6d8df220, 0x2b889: 0x6d8df420, 0x2b88a: 0x6d8df620, 0x2b88b: 0x6d8df820, - 0x2b88c: 0x6d8dfa20, 0x2b88d: 0x6d8dfc20, 0x2b88e: 0x6db1c020, 0x2b88f: 0x6db1c220, - 0x2b890: 0x6db1c420, 0x2b891: 0x6db1c620, 0x2b892: 0x6db1c820, 0x2b893: 0x6db1ca20, - 0x2b894: 0x6db1cc20, 0x2b895: 0x6db1ce20, 0x2b896: 0x6db1d020, 0x2b897: 0x6db1d220, - 0x2b898: 0x6db1d420, 0x2b899: 0x6db1d620, 0x2b89a: 0x6db1d820, 0x2b89b: 0x6db1da20, - 0x2b89c: 0x6db1dc20, 0x2b89d: 0x6db1de20, 0x2b89e: 0x6db1e020, 0x2b89f: 0x6db1e220, - 0x2b8a0: 0x6db1e420, 0x2b8a1: 0x6db1e620, 0x2b8a2: 0x6db1e820, 0x2b8a3: 0x6db1ea20, - 0x2b8a4: 0x6db1ec20, 0x2b8a5: 0x6db1ee20, 0x2b8a6: 0x6db1f020, 0x2b8a7: 0x6db1f220, - 0x2b8a8: 0x6db1f420, 0x2b8a9: 0x6db1f620, 0x2b8aa: 0x6db1f820, 0x2b8ab: 0x6db1fa20, - 0x2b8ac: 0x6db1fc20, 0x2b8ad: 0x6dd11c20, 0x2b8ae: 0x6dd11e20, 0x2b8af: 0x6dd12020, - 0x2b8b0: 0x6dd12220, 0x2b8b1: 0x6dd12420, 0x2b8b2: 0x6dd12620, 0x2b8b3: 0x6dd12820, - 0x2b8b4: 0x6dd12a20, 0x2b8b5: 0x6dd12c20, 0x2b8b6: 0x6dd12e20, 0x2b8b7: 0x6dd13020, - 0x2b8b8: 0x6dd13220, 0x2b8b9: 0x6dd13420, 0x2b8ba: 0x6dd13620, 0x2b8bb: 0x6dd13820, - 0x2b8bc: 0x6dd13a20, 0x2b8bd: 0x6dd13c20, 0x2b8be: 0x6dd13e20, 0x2b8bf: 0x6dd14020, - // Block 0xae3, offset 0x2b8c0 - 0x2b8c0: 0x6dd14220, 0x2b8c1: 0x6dd14420, 0x2b8c2: 0x6dd14620, 0x2b8c3: 0x6dd14820, - 0x2b8c4: 0x6dd14a20, 0x2b8c5: 0x6deaa420, 0x2b8c6: 0x6deaa620, 0x2b8c7: 0x6deaa820, - 0x2b8c8: 0x6deaaa20, 0x2b8c9: 0x6deaac20, 0x2b8ca: 0x6deaae20, 0x2b8cb: 0x6deab020, - 0x2b8cc: 0x6deab220, 0x2b8cd: 0x6deab420, 0x2b8ce: 0x6deab620, 0x2b8cf: 0x6deab820, - 0x2b8d0: 0x6deaba20, 0x2b8d1: 0x6deabc20, 0x2b8d2: 0x6e005220, 0x2b8d3: 0x6e005420, - 0x2b8d4: 0x6e005620, 0x2b8d5: 0x6e005820, 0x2b8d6: 0x6e005a20, 0x2b8d7: 0x6e005c20, - 0x2b8d8: 0x6e005e20, 0x2b8d9: 0x6e006020, 0x2b8da: 0x6e006220, 0x2b8db: 0x6e006420, - 0x2b8dc: 0x6e006620, 0x2b8dd: 0x6e006820, 0x2b8de: 0x6e127a20, 0x2b8df: 0x6e127c20, - 0x2b8e0: 0x6e127e20, 0x2b8e1: 0x6e128020, 0x2b8e2: 0x6e128220, 0x2b8e3: 0x6e128420, - 0x2b8e4: 0x6e128620, 0x2b8e5: 0x6e128820, 0x2b8e6: 0x6e209e20, 0x2b8e7: 0x6e20a020, - 0x2b8e8: 0x6e20a220, 0x2b8e9: 0x6e20a420, 0x2b8ea: 0x6e20a620, 0x2b8eb: 0x6e20a820, - 0x2b8ec: 0x6e20aa20, 0x2b8ed: 0x6e20ac20, 0x2b8ee: 0x6e20ae20, 0x2b8ef: 0x6e20b020, - 0x2b8f0: 0x6e20b220, 0x2b8f1: 0x6e20b420, 0x2b8f2: 0x6e20b620, 0x2b8f3: 0x6e2b7420, - 0x2b8f4: 0x6e2b7620, 0x2b8f5: 0x6e2b7820, 0x2b8f6: 0x6e2b7a20, 0x2b8f7: 0x6e2b7c20, - 0x2b8f8: 0x6e33e620, 0x2b8f9: 0x6e33e820, 0x2b8fa: 0x6e33ea20, 0x2b8fb: 0x6e39c420, - 0x2b8fc: 0x6e39c620, 0x2b8fd: 0x6e39c820, 0x2b8fe: 0x6e3df220, 0x2b8ff: 0x6e40c820, - // Block 0xae4, offset 0x2b900 - 0x2b900: 0x6e40ca20, 0x2b901: 0x6e42ee20, 0x2b902: 0x6e446020, 0x2b903: 0x6e446220, - 0x2b904: 0x6e446420, 0x2b905: 0x6e454820, 0x2b906: 0x6e454a20, 0x2b907: 0x6e46ce20, - 0x2b908: 0x6c400e20, 0x2b909: 0x6c5f9420, 0x2b90a: 0x6c84c620, 0x2b90b: 0x6c84c820, - 0x2b90c: 0x6c84ca20, 0x2b90d: 0x6c84cc20, 0x2b90e: 0x6cae2220, 0x2b90f: 0x6cae2420, - 0x2b910: 0x6cdd4820, 0x2b911: 0x6cdd4a20, 0x2b912: 0x6d0bc220, 0x2b913: 0x6d0bc420, - 0x2b914: 0x6d0bc620, 0x2b915: 0x6d0bc820, 0x2b916: 0x6d0bca20, 0x2b917: 0x6d65f420, - 0x2b918: 0x6d8fc820, 0x2b919: 0x6db39820, 0x2b91a: 0x6dd29620, 0x2b91b: 0x6dd29820, - 0x2b91c: 0x6debd220, 0x2b91d: 0x6c268820, 0x2b91e: 0x6c5fa220, 0x2b91f: 0x6c5fa420, - 0x2b920: 0x6c5fa620, 0x2b921: 0x6c84de20, 0x2b922: 0x6c84e020, 0x2b923: 0x6c84e220, - 0x2b924: 0x6cae4e20, 0x2b925: 0x6cae5020, 0x2b926: 0x6cae5220, 0x2b927: 0x6cae5420, - 0x2b928: 0x6cae5620, 0x2b929: 0x6cae5820, 0x2b92a: 0x6cae5a20, 0x2b92b: 0x6cae5c20, - 0x2b92c: 0x6cae5e20, 0x2b92d: 0x6cdd6620, 0x2b92e: 0x6cdd6820, 0x2b92f: 0x6cdd6a20, - 0x2b930: 0x6cdd6c20, 0x2b931: 0x6cdd6e20, 0x2b932: 0x6cdd7020, 0x2b933: 0x6cdd7220, - 0x2b934: 0x6cdd7420, 0x2b935: 0x6cdd7620, 0x2b936: 0x6d0bde20, 0x2b937: 0x6d0be020, - 0x2b938: 0x6d0be220, 0x2b939: 0x6d0be420, 0x2b93a: 0x6d0be620, 0x2b93b: 0x6d0be820, - 0x2b93c: 0x6d0bea20, 0x2b93d: 0x6d0bec20, 0x2b93e: 0x6d0bee20, 0x2b93f: 0x6d39e220, - // Block 0xae5, offset 0x2b940 - 0x2b940: 0x6d39e420, 0x2b941: 0x6d39e620, 0x2b942: 0x6d39e820, 0x2b943: 0x6d39ea20, - 0x2b944: 0x6d39ec20, 0x2b945: 0x6d39ee20, 0x2b946: 0x6d39f020, 0x2b947: 0x6d39f220, - 0x2b948: 0x6d39f420, 0x2b949: 0x6d39f620, 0x2b94a: 0x6d39f820, 0x2b94b: 0x6d661220, - 0x2b94c: 0x6d661420, 0x2b94d: 0x6d661620, 0x2b94e: 0x6d661820, 0x2b94f: 0x6d661a20, - 0x2b950: 0x6d661c20, 0x2b951: 0x6d661e20, 0x2b952: 0x6d662020, 0x2b953: 0x6d662220, - 0x2b954: 0x6d662420, 0x2b955: 0x6d39fa20, 0x2b956: 0x6d662620, 0x2b957: 0x6d8ffa20, - 0x2b958: 0x6d8ffc20, 0x2b959: 0x6d8ffe20, 0x2b95a: 0x6d900020, 0x2b95b: 0x6d900220, - 0x2b95c: 0x6d900420, 0x2b95d: 0x6d900620, 0x2b95e: 0x6d900820, 0x2b95f: 0x6db3b420, - 0x2b960: 0x6db3b620, 0x2b961: 0x6db3b820, 0x2b962: 0x6db3ba20, 0x2b963: 0x6db3bc20, - 0x2b964: 0x6db3be20, 0x2b965: 0x6db3c020, 0x2b966: 0x6db3c220, 0x2b967: 0x6db3c420, - 0x2b968: 0x6db3c620, 0x2b969: 0x6db3c820, 0x2b96a: 0x6db3ca20, 0x2b96b: 0x6db3cc20, - 0x2b96c: 0x6db3ce20, 0x2b96d: 0x6db3d020, 0x2b96e: 0x6db3d220, 0x2b96f: 0x6dd2b020, - 0x2b970: 0x6dd2b220, 0x2b971: 0x6dd2b420, 0x2b972: 0x6dd2b620, 0x2b973: 0x6dd2b820, - 0x2b974: 0x6debe620, 0x2b975: 0x6debe820, 0x2b976: 0x6debea20, 0x2b977: 0x6debec20, - 0x2b978: 0x6debee20, 0x2b979: 0x6debf020, 0x2b97a: 0x6debf220, 0x2b97b: 0x6debf420, - 0x2b97c: 0x6e016420, 0x2b97d: 0x6e016620, 0x2b97e: 0x6e016820, 0x2b97f: 0x6e016a20, - // Block 0xae6, offset 0x2b980 - 0x2b980: 0x6e016c20, 0x2b981: 0x6e016e20, 0x2b982: 0x6e135020, 0x2b983: 0x6e135220, - 0x2b984: 0x6e135420, 0x2b985: 0x6e212220, 0x2b986: 0x6e212420, 0x2b987: 0x6e212620, - 0x2b988: 0x6e212820, 0x2b989: 0x6e212a20, 0x2b98a: 0x6e2bdc20, 0x2b98b: 0x6e2bde20, - 0x2b98c: 0x6e2be020, 0x2b98d: 0x6e39ea20, 0x2b98e: 0x6e42fc20, 0x2b98f: 0x6c5ff620, - 0x2b990: 0x6c858220, 0x2b991: 0x6caf1a20, 0x2b992: 0x6d0cbc20, 0x2b993: 0x6d3b1020, - 0x2b994: 0x6d673a20, 0x2b995: 0x6c859420, 0x2b996: 0x6cde5020, 0x2b997: 0x6d912020, - 0x2b998: 0x6d912220, 0x2b999: 0x6e01e020, 0x2b99a: 0x6c404420, 0x2b99b: 0x6c404620, - 0x2b99c: 0x6c600c20, 0x2b99d: 0x6c600e20, 0x2b99e: 0x6c601020, 0x2b99f: 0x6c85a020, - 0x2b9a0: 0x6c85a220, 0x2b9a1: 0x6c85a420, 0x2b9a2: 0x6caf3420, 0x2b9a3: 0x6caf3620, - 0x2b9a4: 0x6caf3820, 0x2b9a5: 0x6caf3a20, 0x2b9a6: 0x6caf3c20, 0x2b9a7: 0x6caf3e20, - 0x2b9a8: 0x6cde6a20, 0x2b9a9: 0x6cde6c20, 0x2b9aa: 0x6cde6e20, 0x2b9ab: 0x6cde7020, - 0x2b9ac: 0x6cde7220, 0x2b9ad: 0x6cde7420, 0x2b9ae: 0x6cde7620, 0x2b9af: 0x6d0cd820, - 0x2b9b0: 0x6d0cda20, 0x2b9b1: 0x6d0cdc20, 0x2b9b2: 0x6d0cde20, 0x2b9b3: 0x6d3b2820, - 0x2b9b4: 0x6d3b2a20, 0x2b9b5: 0x6d3b2c20, 0x2b9b6: 0x6d3b2e20, 0x2b9b7: 0x6d3b3020, - 0x2b9b8: 0x6d3b3220, 0x2b9b9: 0x6d3b3420, 0x2b9ba: 0x6d3b3620, 0x2b9bb: 0x6d3b3820, - 0x2b9bc: 0x6d3b3a20, 0x2b9bd: 0x6d3b3c20, 0x2b9be: 0x6d3b3e20, 0x2b9bf: 0x6d3b4020, - // Block 0xae7, offset 0x2b9c0 - 0x2b9c0: 0x6d3b4220, 0x2b9c1: 0x6d3b4420, 0x2b9c2: 0x6d3b4620, 0x2b9c3: 0x6d675820, - 0x2b9c4: 0x6d675a20, 0x2b9c5: 0x6d675c20, 0x2b9c6: 0x6d675e20, 0x2b9c7: 0x6d676020, - 0x2b9c8: 0x6d676220, 0x2b9c9: 0x6d676420, 0x2b9ca: 0x6d676620, 0x2b9cb: 0x6d676820, - 0x2b9cc: 0x6d676a20, 0x2b9cd: 0x6d676c20, 0x2b9ce: 0x6d913020, 0x2b9cf: 0x6d913220, - 0x2b9d0: 0x6d913420, 0x2b9d1: 0x6d913620, 0x2b9d2: 0x6d913820, 0x2b9d3: 0x6d913a20, - 0x2b9d4: 0x6db4da20, 0x2b9d5: 0x6db4dc20, 0x2b9d6: 0x6db4de20, 0x2b9d7: 0x6db4e020, - 0x2b9d8: 0x6db4e220, 0x2b9d9: 0x6db4e420, 0x2b9da: 0x6db4e620, 0x2b9db: 0x6db4e820, - 0x2b9dc: 0x6db4ea20, 0x2b9dd: 0x6db4ec20, 0x2b9de: 0x6dd3aa20, 0x2b9df: 0x6dd3ac20, - 0x2b9e0: 0x6dd3ae20, 0x2b9e1: 0x6dd3b020, 0x2b9e2: 0x6dd3b220, 0x2b9e3: 0x6dd3b420, - 0x2b9e4: 0x6decac20, 0x2b9e5: 0x6decae20, 0x2b9e6: 0x6e01e420, 0x2b9e7: 0x6e01e620, - 0x2b9e8: 0x6e01e820, 0x2b9e9: 0x6e01ea20, 0x2b9ea: 0x6e13d020, 0x2b9eb: 0x6e218c20, - 0x2b9ec: 0x6e2c2220, 0x2b9ed: 0x6e2c2420, 0x2b9ee: 0x6e346020, 0x2b9ef: 0x6e346220, - 0x2b9f0: 0x6e3a0a20, 0x2b9f1: 0x6e40fe20, 0x2b9f2: 0x6c606420, 0x2b9f3: 0x6c862220, - 0x2b9f4: 0x6cafe220, 0x2b9f5: 0x6cdefa20, 0x2b9f6: 0x6cdefc20, 0x2b9f7: 0x6c862a20, - 0x2b9f8: 0x6c862c20, 0x2b9f9: 0x6cafee20, 0x2b9fa: 0x6caff020, 0x2b9fb: 0x6caff220, - 0x2b9fc: 0x6cdf0a20, 0x2b9fd: 0x6cdf0c20, 0x2b9fe: 0x6cdf0e20, 0x2b9ff: 0x6cdf1020, - // Block 0xae8, offset 0x2ba00 - 0x2ba00: 0x6d0d7c20, 0x2ba01: 0x6d0d7e20, 0x2ba02: 0x6d3bec20, 0x2ba03: 0x6d3bee20, - 0x2ba04: 0x6d67f820, 0x2ba05: 0x6d67fa20, 0x2ba06: 0x6d91c220, 0x2ba07: 0x6d91c420, - 0x2ba08: 0x6d91c620, 0x2ba09: 0x6d91c820, 0x2ba0a: 0x6db58020, 0x2ba0b: 0x6db58220, - 0x2ba0c: 0x6db58420, 0x2ba0d: 0x6dd41420, 0x2ba0e: 0x6dd41620, 0x2ba0f: 0x6ded0420, - 0x2ba10: 0x6ded0620, 0x2ba11: 0x6ded0820, 0x2ba12: 0x6ded0a20, 0x2ba13: 0x6ded0c20, - 0x2ba14: 0x6e13fc20, 0x2ba15: 0x6e3e2e20, 0x2ba16: 0x6e45d820, 0x2ba17: 0x6cb01e20, - 0x2ba18: 0x6d0db020, 0x2ba19: 0x6d0db220, 0x2ba1a: 0x6d0db420, 0x2ba1b: 0x6d3c2020, - 0x2ba1c: 0x6d683a20, 0x2ba1d: 0x6d683c20, 0x2ba1e: 0x6d683e20, 0x2ba1f: 0x6d684020, - 0x2ba20: 0x6d684220, 0x2ba21: 0x6d920220, 0x2ba22: 0x6d920420, 0x2ba23: 0x6d920620, - 0x2ba24: 0x6d920820, 0x2ba25: 0x6db5a820, 0x2ba26: 0x6db5aa20, 0x2ba27: 0x6dd43620, - 0x2ba28: 0x6ded2420, 0x2ba29: 0x6ded2620, 0x2ba2a: 0x6e022e20, 0x2ba2b: 0x6e023020, - 0x2ba2c: 0x6ded2820, 0x2ba2d: 0x6e3a3620, 0x2ba2e: 0x6c608620, 0x2ba2f: 0x6c608820, - 0x2ba30: 0x6c608a20, 0x2ba31: 0x6c864a20, 0x2ba32: 0x6c864c20, 0x2ba33: 0x6cb05620, - 0x2ba34: 0x6cb05820, 0x2ba35: 0x6cb05a20, 0x2ba36: 0x6cb05c20, 0x2ba37: 0x6cb05e20, - 0x2ba38: 0x6cb06020, 0x2ba39: 0x6cb06220, 0x2ba3a: 0x6cb06420, 0x2ba3b: 0x6cb06620, - 0x2ba3c: 0x6cb06820, 0x2ba3d: 0x6cb06a20, 0x2ba3e: 0x6cb06c20, 0x2ba3f: 0x6cb06e20, - // Block 0xae9, offset 0x2ba40 - 0x2ba40: 0x6cb07020, 0x2ba41: 0x6cb07220, 0x2ba42: 0x6cb07420, 0x2ba43: 0x6cb07620, - 0x2ba44: 0x6cdf6020, 0x2ba45: 0x6cdf6220, 0x2ba46: 0x6cdf6420, 0x2ba47: 0x6cdf6620, - 0x2ba48: 0x6cdf6820, 0x2ba49: 0x6cdf6a20, 0x2ba4a: 0x6cdf6c20, 0x2ba4b: 0x6cdf6e20, - 0x2ba4c: 0x6cdf7020, 0x2ba4d: 0x6cdf7220, 0x2ba4e: 0x6cdf7420, 0x2ba4f: 0x6cdf7620, - 0x2ba50: 0x6cdf7820, 0x2ba51: 0x6cdf7a20, 0x2ba52: 0x6cdf7c20, 0x2ba53: 0x6cdf7e20, - 0x2ba54: 0x6d0de020, 0x2ba55: 0x6d0de220, 0x2ba56: 0x6d0de420, 0x2ba57: 0x6d0de620, - 0x2ba58: 0x6d0de820, 0x2ba59: 0x6d0dea20, 0x2ba5a: 0x6d0dec20, 0x2ba5b: 0x6d0dee20, - 0x2ba5c: 0x6d0df020, 0x2ba5d: 0x6d3c4220, 0x2ba5e: 0x6d3c4420, 0x2ba5f: 0x6d3c4620, - 0x2ba60: 0x6d3c4820, 0x2ba61: 0x6d3c4a20, 0x2ba62: 0x6d3c4c20, 0x2ba63: 0x6d3c4e20, - 0x2ba64: 0x6d3c5020, 0x2ba65: 0x6d3c5220, 0x2ba66: 0x6d3c5420, 0x2ba67: 0x6d3c5620, - 0x2ba68: 0x6d3c5820, 0x2ba69: 0x6d687e20, 0x2ba6a: 0x6d688020, 0x2ba6b: 0x6d688220, - 0x2ba6c: 0x6d688420, 0x2ba6d: 0x6d688620, 0x2ba6e: 0x6d688820, 0x2ba6f: 0x6d688a20, - 0x2ba70: 0x6d688c20, 0x2ba71: 0x6d688e20, 0x2ba72: 0x6d689020, 0x2ba73: 0x6d689220, - 0x2ba74: 0x6d689420, 0x2ba75: 0x6d689620, 0x2ba76: 0x6d689820, 0x2ba77: 0x6d689a20, - 0x2ba78: 0x6d689c20, 0x2ba79: 0x6d923220, 0x2ba7a: 0x6d923420, 0x2ba7b: 0x6d923620, - 0x2ba7c: 0x6d923820, 0x2ba7d: 0x6d923a20, 0x2ba7e: 0x6db5d620, 0x2ba7f: 0x6db5d820, - // Block 0xaea, offset 0x2ba80 - 0x2ba80: 0x6db5da20, 0x2ba81: 0x6db5dc20, 0x2ba82: 0x6db5de20, 0x2ba83: 0x6dd45220, - 0x2ba84: 0x6dd45420, 0x2ba85: 0x6dd45620, 0x2ba86: 0x6dd45820, 0x2ba87: 0x6dd45a20, - 0x2ba88: 0x6dd45c20, 0x2ba89: 0x6dd45e20, 0x2ba8a: 0x6dd46020, 0x2ba8b: 0x6ded4220, - 0x2ba8c: 0x6ded4420, 0x2ba8d: 0x6ded4620, 0x2ba8e: 0x6ded4820, 0x2ba8f: 0x6ded4a20, - 0x2ba90: 0x6ded4c20, 0x2ba91: 0x6ded4e20, 0x2ba92: 0x6e024020, 0x2ba93: 0x6e024220, - 0x2ba94: 0x6e024420, 0x2ba95: 0x6e024620, 0x2ba96: 0x6e024820, 0x2ba97: 0x6e024a20, - 0x2ba98: 0x6e024c20, 0x2ba99: 0x6e141620, 0x2ba9a: 0x6e141820, 0x2ba9b: 0x6e141a20, - 0x2ba9c: 0x6e141c20, 0x2ba9d: 0x6e141e20, 0x2ba9e: 0x6e142020, 0x2ba9f: 0x6e21c220, - 0x2baa0: 0x6e21c420, 0x2baa1: 0x6e21c620, 0x2baa2: 0x6e2c4420, 0x2baa3: 0x6cb10a20, - 0x2baa4: 0x6d0eb220, 0x2baa5: 0x6d697a20, 0x2baa6: 0x6db69820, 0x2baa7: 0x6db69a20, - 0x2baa8: 0x6dd4fc20, 0x2baa9: 0x6e2c7620, 0x2baaa: 0x6c60be20, 0x2baab: 0x6c86c420, - 0x2baac: 0x6ce04820, 0x2baad: 0x6ce04a20, 0x2baae: 0x6d3d1620, 0x2baaf: 0x6d698420, - 0x2bab0: 0x6db69e20, 0x2bab1: 0x6dd4fe20, 0x2bab2: 0x6e221620, 0x2bab3: 0x6c40b620, - 0x2bab4: 0x6cb15020, 0x2bab5: 0x6ce05020, 0x2bab6: 0x6d0eca20, 0x2bab7: 0x6d3d1e20, - 0x2bab8: 0x6d3d2020, 0x2bab9: 0x6d3d2220, 0x2baba: 0x6d699620, 0x2babb: 0x6d930c20, - 0x2babc: 0x6d930e20, 0x2babd: 0x6d931020, 0x2babe: 0x6d931220, 0x2babf: 0x6d931420, - // Block 0xaeb, offset 0x2bac0 - 0x2bac0: 0x6db6ae20, 0x2bac1: 0x6db6b020, 0x2bac2: 0x6db6b220, 0x2bac3: 0x6e147020, - 0x2bac4: 0x6e3a5420, 0x2bac5: 0x6c86d820, 0x2bac6: 0x6cb15820, 0x2bac7: 0x6cb15a20, - 0x2bac8: 0x6ce05c20, 0x2bac9: 0x6d0ed620, 0x2baca: 0x6d69b420, 0x2bacb: 0x6d69b620, - 0x2bacc: 0x6d69b820, 0x2bacd: 0x6d932020, 0x2bace: 0x6d932220, 0x2bacf: 0x6dd51420, - 0x2bad0: 0x6dee0620, 0x2bad1: 0x6dee0820, 0x2bad2: 0x6e147620, 0x2bad3: 0x6e222220, - 0x2bad4: 0x6e3a5c20, 0x2bad5: 0x6e3a5e20, 0x2bad6: 0x6cb17820, 0x2bad7: 0x6cb17a20, - 0x2bad8: 0x6cb17c20, 0x2bad9: 0x6cb17e20, 0x2bada: 0x6ce07a20, 0x2badb: 0x6ce07c20, - 0x2badc: 0x6d3d4e20, 0x2badd: 0x6d69dc20, 0x2bade: 0x6d69de20, 0x2badf: 0x6d934020, - 0x2bae0: 0x6db6e220, 0x2bae1: 0x6dd52820, 0x2bae2: 0x6dd52a20, 0x2bae3: 0x6dee1820, - 0x2bae4: 0x6dee1a20, 0x2bae5: 0x6dee1c20, 0x2bae6: 0x6dee1e20, 0x2bae7: 0x6cb19420, - 0x2bae8: 0x6cb19620, 0x2bae9: 0x6ce0ae20, 0x2baea: 0x6ce0b020, 0x2baeb: 0x6ce0b220, - 0x2baec: 0x6ce0b420, 0x2baed: 0x6ce0b620, 0x2baee: 0x6ce0b820, 0x2baef: 0x6ce0ba20, - 0x2baf0: 0x6d0f2820, 0x2baf1: 0x6d0f2a20, 0x2baf2: 0x6d0f2c20, 0x2baf3: 0x6d3d7620, - 0x2baf4: 0x6d3d7820, 0x2baf5: 0x6d3d7a20, 0x2baf6: 0x6d6a0020, 0x2baf7: 0x6d6a0220, - 0x2baf8: 0x6d6a0420, 0x2baf9: 0x6d6a0620, 0x2bafa: 0x6d6a0820, 0x2bafb: 0x6d6a0a20, - 0x2bafc: 0x6d6a0c20, 0x2bafd: 0x6d6a0e20, 0x2bafe: 0x6d6a1020, 0x2baff: 0x6d6a1220, - // Block 0xaec, offset 0x2bb00 - 0x2bb00: 0x6d936820, 0x2bb01: 0x6d936a20, 0x2bb02: 0x6d936c20, 0x2bb03: 0x6d936e20, - 0x2bb04: 0x6d937020, 0x2bb05: 0x6db70420, 0x2bb06: 0x6db70620, 0x2bb07: 0x6dd54620, - 0x2bb08: 0x6dee3620, 0x2bb09: 0x6e02e220, 0x2bb0a: 0x6e223020, 0x2bb0b: 0x6e2c8a20, - 0x2bb0c: 0x6d0f9020, 0x2bb0d: 0x6d6a6e20, 0x2bb0e: 0x6d6a7020, 0x2bb0f: 0x6d93be20, - 0x2bb10: 0x6d93c020, 0x2bb11: 0x6c872620, 0x2bb12: 0x6d0f9820, 0x2bb13: 0x6d3dca20, - 0x2bb14: 0x6d3dcc20, 0x2bb15: 0x6e14a620, 0x2bb16: 0x6c872820, 0x2bb17: 0x6c872a20, - 0x2bb18: 0x6c872c20, 0x2bb19: 0x6cb1f220, 0x2bb1a: 0x6cb1f420, 0x2bb1b: 0x6cb1f620, - 0x2bb1c: 0x6cb1f820, 0x2bb1d: 0x6ce13e20, 0x2bb1e: 0x6ce14020, 0x2bb1f: 0x6ce14220, - 0x2bb20: 0x6ce14420, 0x2bb21: 0x6ce14620, 0x2bb22: 0x6ce14820, 0x2bb23: 0x6ce14a20, - 0x2bb24: 0x6ce14c20, 0x2bb25: 0x6d0fa820, 0x2bb26: 0x6d0faa20, 0x2bb27: 0x6d0fac20, - 0x2bb28: 0x6d0fae20, 0x2bb29: 0x6d0fb020, 0x2bb2a: 0x6d0fb220, 0x2bb2b: 0x6d3dd820, - 0x2bb2c: 0x6d3dda20, 0x2bb2d: 0x6d3ddc20, 0x2bb2e: 0x6d3dde20, 0x2bb2f: 0x6d3de020, - 0x2bb30: 0x6d3de220, 0x2bb31: 0x6d3de420, 0x2bb32: 0x6d3de620, 0x2bb33: 0x6d6a8420, - 0x2bb34: 0x6d6a8620, 0x2bb35: 0x6d6a8820, 0x2bb36: 0x6d6a8a20, 0x2bb37: 0x6d6a8c20, - 0x2bb38: 0x6d6a8e20, 0x2bb39: 0x6d93dc20, 0x2bb3a: 0x6d93de20, 0x2bb3b: 0x6d93e020, - 0x2bb3c: 0x6d93e220, 0x2bb3d: 0x6db74e20, 0x2bb3e: 0x6db75020, 0x2bb3f: 0x6db75220, - // Block 0xaed, offset 0x2bb40 - 0x2bb40: 0x6db75420, 0x2bb41: 0x6dd59c20, 0x2bb42: 0x6dd59e20, 0x2bb43: 0x6dd5a020, - 0x2bb44: 0x6dd5a220, 0x2bb45: 0x6dd5a420, 0x2bb46: 0x6dd5a620, 0x2bb47: 0x6dee8620, - 0x2bb48: 0x6e030a20, 0x2bb49: 0x6e030c20, 0x2bb4a: 0x6e030e20, 0x2bb4b: 0x6e031020, - 0x2bb4c: 0x6e14ae20, 0x2bb4d: 0x6e225c20, 0x2bb4e: 0x6e225e20, 0x2bb4f: 0x6e226020, - 0x2bb50: 0x6e2cae20, 0x2bb51: 0x6e34ba20, 0x2bb52: 0x6e3a6e20, 0x2bb53: 0x6c611620, - 0x2bb54: 0x6c611820, 0x2bb55: 0x6c875020, 0x2bb56: 0x6c875220, 0x2bb57: 0x6cb23e20, - 0x2bb58: 0x6cb24020, 0x2bb59: 0x6cb24220, 0x2bb5a: 0x6cb24420, 0x2bb5b: 0x6cb24620, - 0x2bb5c: 0x6cb24820, 0x2bb5d: 0x6cb24a20, 0x2bb5e: 0x6cb24c20, 0x2bb5f: 0x6ce19c20, - 0x2bb60: 0x6ce19e20, 0x2bb61: 0x6ce1a020, 0x2bb62: 0x6ce1a220, 0x2bb63: 0x6ce1a420, - 0x2bb64: 0x6ce1a620, 0x2bb65: 0x6ce1a820, 0x2bb66: 0x6ce1aa20, 0x2bb67: 0x6ce1ac20, - 0x2bb68: 0x6ce1ae20, 0x2bb69: 0x6ce1b020, 0x2bb6a: 0x6ce1b220, 0x2bb6b: 0x6ce1b420, - 0x2bb6c: 0x6ce1b620, 0x2bb6d: 0x6ce1b820, 0x2bb6e: 0x6d100a20, 0x2bb6f: 0x6d100c20, - 0x2bb70: 0x6d100e20, 0x2bb71: 0x6d101020, 0x2bb72: 0x6d101220, 0x2bb73: 0x6d101420, - 0x2bb74: 0x6d3e3a20, 0x2bb75: 0x6d3e3c20, 0x2bb76: 0x6d3e3e20, 0x2bb77: 0x6d3e4020, - 0x2bb78: 0x6d3e4220, 0x2bb79: 0x6d3e4420, 0x2bb7a: 0x6d3e4620, 0x2bb7b: 0x6d3e4820, - 0x2bb7c: 0x6d6ada20, 0x2bb7d: 0x6d3e4a20, 0x2bb7e: 0x6d6adc20, 0x2bb7f: 0x6d6ade20, - // Block 0xaee, offset 0x2bb80 - 0x2bb80: 0x6d6ae020, 0x2bb81: 0x6d6ae220, 0x2bb82: 0x6d6ae420, 0x2bb83: 0x6d6ae620, - 0x2bb84: 0x6d6ae820, 0x2bb85: 0x6d6aea20, 0x2bb86: 0x6d6aec20, 0x2bb87: 0x6d6aee20, - 0x2bb88: 0x6d6af020, 0x2bb89: 0x6d6af220, 0x2bb8a: 0x6d6af420, 0x2bb8b: 0x6d6af620, - 0x2bb8c: 0x6d6af820, 0x2bb8d: 0x6d943220, 0x2bb8e: 0x6d943420, 0x2bb8f: 0x6d943620, - 0x2bb90: 0x6d943820, 0x2bb91: 0x6d943a20, 0x2bb92: 0x6d943c20, 0x2bb93: 0x6d943e20, - 0x2bb94: 0x6d944020, 0x2bb95: 0x6d944220, 0x2bb96: 0x6d944420, 0x2bb97: 0x6db78420, - 0x2bb98: 0x6db78620, 0x2bb99: 0x6db78820, 0x2bb9a: 0x6db78a20, 0x2bb9b: 0x6db78c20, - 0x2bb9c: 0x6db78e20, 0x2bb9d: 0x6db79020, 0x2bb9e: 0x6dd5de20, 0x2bb9f: 0x6dd5e020, - 0x2bba0: 0x6dd5e220, 0x2bba1: 0x6dd5e420, 0x2bba2: 0x6dd5e620, 0x2bba3: 0x6deebe20, - 0x2bba4: 0x6deec020, 0x2bba5: 0x6deec220, 0x2bba6: 0x6deec420, 0x2bba7: 0x6deec620, - 0x2bba8: 0x6e032c20, 0x2bba9: 0x6e032e20, 0x2bbaa: 0x6e14c420, 0x2bbab: 0x6e14c620, - 0x2bbac: 0x6e227020, 0x2bbad: 0x6e2cbe20, 0x2bbae: 0x6e2cc020, 0x2bbaf: 0x6e34c020, - 0x2bbb0: 0x6e3a7a20, 0x2bbb1: 0x6e432220, 0x2bbb2: 0x6ce23a20, 0x2bbb3: 0x6ce23c20, - 0x2bbb4: 0x6ce23e20, 0x2bbb5: 0x6ce24020, 0x2bbb6: 0x6ce24220, 0x2bbb7: 0x6d10b020, - 0x2bbb8: 0x6d10b220, 0x2bbb9: 0x6d10b420, 0x2bbba: 0x6d10b620, 0x2bbbb: 0x6d6b9c20, - 0x2bbbc: 0x6d94e220, 0x2bbbd: 0x6db81620, 0x2bbbe: 0x6db81820, 0x2bbbf: 0x6def6a20, - // Block 0xaef, offset 0x2bbc0 - 0x2bbc0: 0x6e039a20, 0x2bbc1: 0x6e2ce820, 0x2bbc2: 0x6c612c20, 0x2bbc3: 0x6c612e20, - 0x2bbc4: 0x6c613020, 0x2bbc5: 0x6c878c20, 0x2bbc6: 0x6cb2d220, 0x2bbc7: 0x6cb2d420, - 0x2bbc8: 0x6cb2d620, 0x2bbc9: 0x6cb2d820, 0x2bbca: 0x6cb2da20, 0x2bbcb: 0x6cb2dc20, - 0x2bbcc: 0x6cb2de20, 0x2bbcd: 0x6cb2e020, 0x2bbce: 0x6cb2e220, 0x2bbcf: 0x6ce26420, - 0x2bbd0: 0x6ce26620, 0x2bbd1: 0x6ce26820, 0x2bbd2: 0x6ce26a20, 0x2bbd3: 0x6d10e020, - 0x2bbd4: 0x6d10e220, 0x2bbd5: 0x6d10e420, 0x2bbd6: 0x6d10e620, 0x2bbd7: 0x6d10e820, - 0x2bbd8: 0x6d3f0220, 0x2bbd9: 0x6d3f0420, 0x2bbda: 0x6d3f0620, 0x2bbdb: 0x6d3f0820, - 0x2bbdc: 0x6d6bc820, 0x2bbdd: 0x6d6bca20, 0x2bbde: 0x6d6bcc20, 0x2bbdf: 0x6d6bce20, - 0x2bbe0: 0x6d94fe20, 0x2bbe1: 0x6d950020, 0x2bbe2: 0x6d950220, 0x2bbe3: 0x6d950420, - 0x2bbe4: 0x6d950620, 0x2bbe5: 0x6db83620, 0x2bbe6: 0x6db83820, 0x2bbe7: 0x6db83a20, - 0x2bbe8: 0x6db83c20, 0x2bbe9: 0x6db83e20, 0x2bbea: 0x6db84020, 0x2bbeb: 0x6dd6c020, - 0x2bbec: 0x6dd6c220, 0x2bbed: 0x6dd6c420, 0x2bbee: 0x6dd6c620, 0x2bbef: 0x6dd6c820, - 0x2bbf0: 0x6dd6ca20, 0x2bbf1: 0x6dd6cc20, 0x2bbf2: 0x6def9220, 0x2bbf3: 0x6def9420, - 0x2bbf4: 0x6def9620, 0x2bbf5: 0x6def9820, 0x2bbf6: 0x6e03ac20, 0x2bbf7: 0x6e151220, - 0x2bbf8: 0x6e151420, 0x2bbf9: 0x6e151620, 0x2bbfa: 0x6e22b420, 0x2bbfb: 0x6e22b620, - 0x2bbfc: 0x6e34e020, 0x2bbfd: 0x6e3e5e20, 0x2bbfe: 0x6e412e20, 0x2bbff: 0x6e45de20, - // Block 0xaf0, offset 0x2bc00 - 0x2bc00: 0x6c87b820, 0x2bc01: 0x6cb33820, 0x2bc02: 0x6c614420, 0x2bc03: 0x6d6c5420, - 0x2bc04: 0x6e03ec20, 0x2bc05: 0x6d115e20, 0x2bc06: 0x6d3f7620, 0x2bc07: 0x6d6c6020, - 0x2bc08: 0x6e03f820, 0x2bc09: 0x6e03fa20, 0x2bc0a: 0x6c272820, 0x2bc0b: 0x6c272a20, - 0x2bc0c: 0x6c40f820, 0x2bc0d: 0x6c40fa20, 0x2bc0e: 0x6c40fc20, 0x2bc0f: 0x6c40fe20, - 0x2bc10: 0x6c616620, 0x2bc11: 0x6c616820, 0x2bc12: 0x6c87d820, 0x2bc13: 0x6c87da20, - 0x2bc14: 0x6c87dc20, 0x2bc15: 0x6c87de20, 0x2bc16: 0x6c87e020, 0x2bc17: 0x6c87e220, - 0x2bc18: 0x6c87e420, 0x2bc19: 0x6cb34820, 0x2bc1a: 0x6cb34a20, 0x2bc1b: 0x6cb34c20, - 0x2bc1c: 0x6ce2fa20, 0x2bc1d: 0x6ce2fc20, 0x2bc1e: 0x6ce2fe20, 0x2bc1f: 0x6ce30020, - 0x2bc20: 0x6ce30220, 0x2bc21: 0x6d116820, 0x2bc22: 0x6d3f7820, 0x2bc23: 0x6d3f7a20, - 0x2bc24: 0x6d3f7c20, 0x2bc25: 0x6d3f7e20, 0x2bc26: 0x6d6c6620, 0x2bc27: 0x6d6c6820, - 0x2bc28: 0x6d6c6a20, 0x2bc29: 0x6d6c6c20, 0x2bc2a: 0x6d959620, 0x2bc2b: 0x6d959820, - 0x2bc2c: 0x6d959a20, 0x2bc2d: 0x6d959c20, 0x2bc2e: 0x6db8b020, 0x2bc2f: 0x6dd71e20, - 0x2bc30: 0x6dd72020, 0x2bc31: 0x6defda20, 0x2bc32: 0x6e34f820, 0x2bc33: 0x6c0a8c20, - 0x2bc34: 0x6c153a20, 0x2bc35: 0x6c278c20, 0x2bc36: 0x6c278e20, 0x2bc37: 0x6c279020, - 0x2bc38: 0x6c417c20, 0x2bc39: 0x6c417e20, 0x2bc3a: 0x6c418020, 0x2bc3b: 0x6c61d220, - 0x2bc3c: 0x6c61d420, 0x2bc3d: 0x6d11fc20, 0x2bc3e: 0x6c61d620, 0x2bc3f: 0x6c61d820, - // Block 0xaf1, offset 0x2bc40 - 0x2bc40: 0x6c61da20, 0x2bc41: 0x6c61dc20, 0x2bc42: 0x6c61de20, 0x2bc43: 0x6c886c20, - 0x2bc44: 0x6c886e20, 0x2bc45: 0x6c887020, 0x2bc46: 0x6c887220, 0x2bc47: 0x6c887420, - 0x2bc48: 0x6d400420, 0x2bc49: 0x6d400620, 0x2bc4a: 0x6cb40020, 0x2bc4b: 0x6cb40220, - 0x2bc4c: 0x6cb40420, 0x2bc4d: 0x6cb40620, 0x2bc4e: 0x6cb40820, 0x2bc4f: 0x6cb40a20, - 0x2bc50: 0x6ce3c020, 0x2bc51: 0x6ce3c220, 0x2bc52: 0x6ce3c420, 0x2bc53: 0x6d120020, - 0x2bc54: 0x6d120220, 0x2bc55: 0x6d120420, 0x2bc56: 0x6db90420, 0x2bc57: 0x6d120620, - 0x2bc58: 0x6d400a20, 0x2bc59: 0x6d400c20, 0x2bc5a: 0x6d400e20, 0x2bc5b: 0x6d401020, - 0x2bc5c: 0x6d401220, 0x2bc5d: 0x6d6cfa20, 0x2bc5e: 0x6d6cfc20, 0x2bc5f: 0x6d6cfe20, - 0x2bc60: 0x6d6d0020, 0x2bc61: 0x6d95fc20, 0x2bc62: 0x6db90620, 0x2bc63: 0x6e2d1620, - 0x2bc64: 0x6e2d1820, 0x2bc65: 0x6c625620, 0x2bc66: 0x6c625820, 0x2bc67: 0x6c88ea20, - 0x2bc68: 0x6c88ec20, 0x2bc69: 0x6cb47420, 0x2bc6a: 0x6cb47620, 0x2bc6b: 0x6cb47820, - 0x2bc6c: 0x6cb47a20, 0x2bc6d: 0x6cb47c20, 0x2bc6e: 0x6ce42020, 0x2bc6f: 0x6ce42220, - 0x2bc70: 0x6ce42420, 0x2bc71: 0x6d126a20, 0x2bc72: 0x6ce42620, 0x2bc73: 0x6ce42820, - 0x2bc74: 0x6d126c20, 0x2bc75: 0x6d126e20, 0x2bc76: 0x6d127020, 0x2bc77: 0x6d127220, - 0x2bc78: 0x6d127420, 0x2bc79: 0x6d127620, 0x2bc7a: 0x6d407a20, 0x2bc7b: 0x6d407c20, - 0x2bc7c: 0x6d6d4820, 0x2bc7d: 0x6d6d4a20, 0x2bc7e: 0x6d6d4c20, 0x2bc7f: 0x6d6d4e20, - // Block 0xaf2, offset 0x2bc80 - 0x2bc80: 0x6d963020, 0x2bc81: 0x6d963220, 0x2bc82: 0x6d963420, 0x2bc83: 0x6d963620, - 0x2bc84: 0x6d963820, 0x2bc85: 0x6d963a20, 0x2bc86: 0x6d963c20, 0x2bc87: 0x6d963e20, - 0x2bc88: 0x6d964020, 0x2bc89: 0x6db93420, 0x2bc8a: 0x6db93620, 0x2bc8b: 0x6db93820, - 0x2bc8c: 0x6db93a20, 0x2bc8d: 0x6dd78020, 0x2bc8e: 0x6df00a20, 0x2bc8f: 0x6df00c20, - 0x2bc90: 0x6df00e20, 0x2bc91: 0x6df01020, 0x2bc92: 0x6df01220, 0x2bc93: 0x6e155c20, - 0x2bc94: 0x6e155e20, 0x2bc95: 0x6e22f020, 0x2bc96: 0x6e22f220, 0x2bc97: 0x6e34fe20, - 0x2bc98: 0x6e350020, 0x2bc99: 0x6e433820, 0x2bc9a: 0x6cb4ca20, 0x2bc9b: 0x6c890c20, - 0x2bc9c: 0x6cb4d420, 0x2bc9d: 0x6ce47c20, 0x2bc9e: 0x6ce47e20, 0x2bc9f: 0x6ce48020, - 0x2bca0: 0x6ce48220, 0x2bca1: 0x6d12c020, 0x2bca2: 0x6d12c220, 0x2bca3: 0x6d12c420, - 0x2bca4: 0x6d40d620, 0x2bca5: 0x6d40d820, 0x2bca6: 0x6d40da20, 0x2bca7: 0x6d40dc20, - 0x2bca8: 0x6d40de20, 0x2bca9: 0x6d40e020, 0x2bcaa: 0x6d40e220, 0x2bcab: 0x6d6db220, - 0x2bcac: 0x6d6db420, 0x2bcad: 0x6d6db620, 0x2bcae: 0x6d6db820, 0x2bcaf: 0x6d6dba20, - 0x2bcb0: 0x6d6dbc20, 0x2bcb1: 0x6d6dbe20, 0x2bcb2: 0x6d6dc020, 0x2bcb3: 0x6d969a20, - 0x2bcb4: 0x6d969c20, 0x2bcb5: 0x6d969e20, 0x2bcb6: 0x6d96a020, 0x2bcb7: 0x6db9a020, - 0x2bcb8: 0x6db9a220, 0x2bcb9: 0x6db9a420, 0x2bcba: 0x6db9a620, 0x2bcbb: 0x6db9a820, - 0x2bcbc: 0x6db9aa20, 0x2bcbd: 0x6dd7d820, 0x2bcbe: 0x6dd7da20, 0x2bcbf: 0x6dd7dc20, - // Block 0xaf3, offset 0x2bcc0 - 0x2bcc0: 0x6dd7de20, 0x2bcc1: 0x6dd7e020, 0x2bcc2: 0x6dd7e220, 0x2bcc3: 0x6dd7e420, - 0x2bcc4: 0x6dd7e620, 0x2bcc5: 0x6dd7e820, 0x2bcc6: 0x6dd7ea20, 0x2bcc7: 0x6dd7ec20, - 0x2bcc8: 0x6df05620, 0x2bcc9: 0x6df05820, 0x2bcca: 0x6df05a20, 0x2bccb: 0x6df05c20, - 0x2bccc: 0x6df05e20, 0x2bccd: 0x6df06020, 0x2bcce: 0x6df06220, 0x2bccf: 0x6df06420, - 0x2bcd0: 0x6df06620, 0x2bcd1: 0x6df06820, 0x2bcd2: 0x6df06a20, 0x2bcd3: 0x6df06c20, - 0x2bcd4: 0x6e046a20, 0x2bcd5: 0x6e046c20, 0x2bcd6: 0x6e046e20, 0x2bcd7: 0x6e047020, - 0x2bcd8: 0x6e047220, 0x2bcd9: 0x6e047420, 0x2bcda: 0x6e047620, 0x2bcdb: 0x6e047820, - 0x2bcdc: 0x6e047a20, 0x2bcdd: 0x6e158020, 0x2bcde: 0x6e158220, 0x2bcdf: 0x6e158420, - 0x2bce0: 0x6e158620, 0x2bce1: 0x6e158820, 0x2bce2: 0x6e158a20, 0x2bce3: 0x6e158c20, - 0x2bce4: 0x6e158e20, 0x2bce5: 0x6e159020, 0x2bce6: 0x6e159220, 0x2bce7: 0x6e230620, - 0x2bce8: 0x6e230820, 0x2bce9: 0x6e230a20, 0x2bcea: 0x6e230c20, 0x2bceb: 0x6e230e20, - 0x2bcec: 0x6e231020, 0x2bced: 0x6e231220, 0x2bcee: 0x6e231420, 0x2bcef: 0x6e2d3a20, - 0x2bcf0: 0x6e2d3c20, 0x2bcf1: 0x6e2d3e20, 0x2bcf2: 0x6e2d4020, 0x2bcf3: 0x6e2d4220, - 0x2bcf4: 0x6e2d4420, 0x2bcf5: 0x6e351620, 0x2bcf6: 0x6e351820, 0x2bcf7: 0x6e351a20, - 0x2bcf8: 0x6e3ab220, 0x2bcf9: 0x6e449220, 0x2bcfa: 0x6ce52420, 0x2bcfb: 0x6ce52620, - 0x2bcfc: 0x6ce52820, 0x2bcfd: 0x6d139e20, 0x2bcfe: 0x6d13a020, 0x2bcff: 0x6d13a220, - // Block 0xaf4, offset 0x2bd00 - 0x2bd00: 0x6d41c220, 0x2bd01: 0x6d6ed020, 0x2bd02: 0x6dd8fa20, 0x2bd03: 0x6e058c20, - 0x2bd04: 0x6e058e20, 0x2bd05: 0x6e059020, 0x2bd06: 0x6e435820, 0x2bd07: 0x6cb58820, - 0x2bd08: 0x6d13f620, 0x2bd09: 0x6d13f820, 0x2bd0a: 0x6d41fc20, 0x2bd0b: 0x6df16420, - 0x2bd0c: 0x6cb5a620, 0x2bd0d: 0x6cb5a820, 0x2bd0e: 0x6ce58c20, 0x2bd0f: 0x6ce58e20, - 0x2bd10: 0x6ce59020, 0x2bd11: 0x6ce59220, 0x2bd12: 0x6d141820, 0x2bd13: 0x6d141a20, - 0x2bd14: 0x6d141c20, 0x2bd15: 0x6d420c20, 0x2bd16: 0x6d420e20, 0x2bd17: 0x6d421020, - 0x2bd18: 0x6d421220, 0x2bd19: 0x6d421420, 0x2bd1a: 0x6d421620, 0x2bd1b: 0x6d421820, - 0x2bd1c: 0x6d6f1c20, 0x2bd1d: 0x6d6f1e20, 0x2bd1e: 0x6d6f2020, 0x2bd1f: 0x6d6f2220, - 0x2bd20: 0x6d982420, 0x2bd21: 0x6d982620, 0x2bd22: 0x6d982820, 0x2bd23: 0x6d982a20, - 0x2bd24: 0x6d982c20, 0x2bd25: 0x6d982e20, 0x2bd26: 0x6d983020, 0x2bd27: 0x6d983220, - 0x2bd28: 0x6d983420, 0x2bd29: 0x6dbb2620, 0x2bd2a: 0x6dbb2820, 0x2bd2b: 0x6dbb2a20, - 0x2bd2c: 0x6dbb2c20, 0x2bd2d: 0x6dbb2e20, 0x2bd2e: 0x6dbb3020, 0x2bd2f: 0x6dbb3220, - 0x2bd30: 0x6df17420, 0x2bd31: 0x6e05a020, 0x2bd32: 0x6e165620, 0x2bd33: 0x6e165820, - 0x2bd34: 0x6e165a20, 0x2bd35: 0x6e23a420, 0x2bd36: 0x6d426220, 0x2bd37: 0x6d6f8220, - 0x2bd38: 0x6dbb8620, 0x2bd39: 0x6c0ab020, 0x2bd3a: 0x6c0ab220, 0x2bd3b: 0x6c15a220, - 0x2bd3c: 0x6c281e20, 0x2bd3d: 0x6c282020, 0x2bd3e: 0x6c89a220, 0x2bd3f: 0x6c282220, - // Block 0xaf5, offset 0x2bd40 - 0x2bd40: 0x6c282420, 0x2bd41: 0x6c421220, 0x2bd42: 0x6c421420, 0x2bd43: 0x6c421620, - 0x2bd44: 0x6c62cc20, 0x2bd45: 0x6c62ce20, 0x2bd46: 0x6c62d020, 0x2bd47: 0x6c62d220, - 0x2bd48: 0x6c62d420, 0x2bd49: 0x6c89a420, 0x2bd4a: 0x6c89a620, 0x2bd4b: 0x6c89a820, - 0x2bd4c: 0x6c89aa20, 0x2bd4d: 0x6c89ac20, 0x2bd4e: 0x6c89ae20, 0x2bd4f: 0x6c89b020, - 0x2bd50: 0x6cb5da20, 0x2bd51: 0x6cb5dc20, 0x2bd52: 0x6cb5de20, 0x2bd53: 0x6cb5e020, - 0x2bd54: 0x6cb5e220, 0x2bd55: 0x6cb5e420, 0x2bd56: 0x6cb5e620, 0x2bd57: 0x6ce5fc20, - 0x2bd58: 0x6ce5fe20, 0x2bd59: 0x6ce60020, 0x2bd5a: 0x6d148020, 0x2bd5b: 0x6d148220, - 0x2bd5c: 0x6d148420, 0x2bd5d: 0x6d148620, 0x2bd5e: 0x6d148820, 0x2bd5f: 0x6d148a20, - 0x2bd60: 0x6d426c20, 0x2bd61: 0x6d426e20, 0x2bd62: 0x6d427020, 0x2bd63: 0x6d427220, - 0x2bd64: 0x6d6f8820, 0x2bd65: 0x6d6f8a20, 0x2bd66: 0x6d6f8c20, 0x2bd67: 0x6d989220, - 0x2bd68: 0x6d989420, 0x2bd69: 0x6d6f8e20, 0x2bd6a: 0x6d989620, 0x2bd6b: 0x6dbb8c20, - 0x2bd6c: 0x6dbb8e20, 0x2bd6d: 0x6dbb9020, 0x2bd6e: 0x6df1a220, 0x2bd6f: 0x6e05da20, - 0x2bd70: 0x6e169020, 0x2bd71: 0x6c8a3020, 0x2bd72: 0x6cb66020, 0x2bd73: 0x6cb66220, - 0x2bd74: 0x6ce68a20, 0x2bd75: 0x6ce68c20, 0x2bd76: 0x6ce68e20, 0x2bd77: 0x6d14e020, - 0x2bd78: 0x6d14e220, 0x2bd79: 0x6d14e420, 0x2bd7a: 0x6d14e620, 0x2bd7b: 0x6d42d020, - 0x2bd7c: 0x6d6fcc20, 0x2bd7d: 0x6d6fce20, 0x2bd7e: 0x6d98c820, 0x2bd7f: 0x6d98ca20, - // Block 0xaf6, offset 0x2bd80 - 0x2bd80: 0x6d8a5620, 0x2bd81: 0x6dbbb620, 0x2bd82: 0x6dbbb820, 0x2bd83: 0x6dd98a20, - 0x2bd84: 0x6df1ae20, 0x2bd85: 0x6e05ee20, 0x2bd86: 0x6e05f020, 0x2bd87: 0x6e05f220, - 0x2bd88: 0x6e23be20, 0x2bd89: 0x6e3afa20, 0x2bd8a: 0x6e464620, 0x2bd8b: 0x6cb67c20, - 0x2bd8c: 0x6ce6be20, 0x2bd8d: 0x6ce6c020, 0x2bd8e: 0x6d151820, 0x2bd8f: 0x6d430c20, - 0x2bd90: 0x6d430e20, 0x2bd91: 0x6d431020, 0x2bd92: 0x6d431220, 0x2bd93: 0x6d431420, - 0x2bd94: 0x6d431620, 0x2bd95: 0x6d431820, 0x2bd96: 0x6d431a20, 0x2bd97: 0x6d6ffc20, - 0x2bd98: 0x6d6ffe20, 0x2bd99: 0x6d700020, 0x2bd9a: 0x6d990e20, 0x2bd9b: 0x6d991020, - 0x2bd9c: 0x6d991220, 0x2bd9d: 0x6d991420, 0x2bd9e: 0x6dbbec20, 0x2bd9f: 0x6dbbee20, - 0x2bda0: 0x6dbbf020, 0x2bda1: 0x6dbbf220, 0x2bda2: 0x6dbbf420, 0x2bda3: 0x6dbbf620, - 0x2bda4: 0x6dbbf820, 0x2bda5: 0x6dd9be20, 0x2bda6: 0x6dd9c020, 0x2bda7: 0x6dd9c220, - 0x2bda8: 0x6dd9c420, 0x2bda9: 0x6dd9c620, 0x2bdaa: 0x6dd9c820, 0x2bdab: 0x6df1d420, - 0x2bdac: 0x6df1d620, 0x2bdad: 0x6df1d820, 0x2bdae: 0x6df1da20, 0x2bdaf: 0x6df1dc20, - 0x2bdb0: 0x6e061a20, 0x2bdb1: 0x6e061c20, 0x2bdb2: 0x6e23d220, 0x2bdb3: 0x6e23d420, - 0x2bdb4: 0x6e23d620, 0x2bdb5: 0x6e2de620, 0x2bdb6: 0x6e2de820, 0x2bdb7: 0x6e358e20, - 0x2bdb8: 0x6e3b0220, 0x2bdb9: 0x6e416620, 0x2bdba: 0x6e46f020, 0x2bdbb: 0x6e473e20, - 0x2bdbc: 0x6e240c20, 0x2bdbd: 0x6cb69c20, 0x2bdbe: 0x6cb69e20, 0x2bdbf: 0x6ce6fe20, - // Block 0xaf7, offset 0x2bdc0 - 0x2bdc0: 0x6d705020, 0x2bdc1: 0x6e067220, 0x2bdc2: 0x6d156820, 0x2bdc3: 0x6d156a20, - 0x2bdc4: 0x6d156c20, 0x2bdc5: 0x6d435c20, 0x2bdc6: 0x6d435e20, 0x2bdc7: 0x6d436020, - 0x2bdc8: 0x6d998620, 0x2bdc9: 0x6d998820, 0x2bdca: 0x6dbc5620, 0x2bdcb: 0x6e067c20, - 0x2bdcc: 0x6e16f020, 0x2bdcd: 0x6e16f220, 0x2bdce: 0x6e240e20, 0x2bdcf: 0x6e35b420, - 0x2bdd0: 0x6ce71820, 0x2bdd1: 0x6ce71a20, 0x2bdd2: 0x6ce71c20, 0x2bdd3: 0x6d157c20, - 0x2bdd4: 0x6d157e20, 0x2bdd5: 0x6d158020, 0x2bdd6: 0x6d158220, 0x2bdd7: 0x6d158420, - 0x2bdd8: 0x6d158620, 0x2bdd9: 0x6d437e20, 0x2bdda: 0x6d438020, 0x2bddb: 0x6d438220, - 0x2bddc: 0x6d438420, 0x2bddd: 0x6d438620, 0x2bdde: 0x6d438820, 0x2bddf: 0x6d707220, - 0x2bde0: 0x6d99a220, 0x2bde1: 0x6d99a420, 0x2bde2: 0x6d99a620, 0x2bde3: 0x6d99a820, - 0x2bde4: 0x6d99aa20, 0x2bde5: 0x6d99ac20, 0x2bde6: 0x6d99ae20, 0x2bde7: 0x6d99b020, - 0x2bde8: 0x6dbc6620, 0x2bde9: 0x6dbc6820, 0x2bdea: 0x6dbc6a20, 0x2bdeb: 0x6dbc6c20, - 0x2bdec: 0x6dbc6e20, 0x2bded: 0x6dbc7020, 0x2bdee: 0x6dbc7220, 0x2bdef: 0x6dda3020, - 0x2bdf0: 0x6dda3220, 0x2bdf1: 0x6dda3420, 0x2bdf2: 0x6dda3620, 0x2bdf3: 0x6dda3820, - 0x2bdf4: 0x6dda3a20, 0x2bdf5: 0x6dda3c20, 0x2bdf6: 0x6df24220, 0x2bdf7: 0x6df24420, - 0x2bdf8: 0x6df24620, 0x2bdf9: 0x6df24820, 0x2bdfa: 0x6df24a20, 0x2bdfb: 0x6df24c20, - 0x2bdfc: 0x6e068a20, 0x2bdfd: 0x6e068c20, 0x2bdfe: 0x6e068e20, 0x2bdff: 0x6e170a20, - // Block 0xaf8, offset 0x2be00 - 0x2be00: 0x6e170c20, 0x2be01: 0x6e170e20, 0x2be02: 0x6e171020, 0x2be03: 0x6e171220, - 0x2be04: 0x6e171420, 0x2be05: 0x6e241420, 0x2be06: 0x6e241620, 0x2be07: 0x6e2e0a20, - 0x2be08: 0x6e2e0c20, 0x2be09: 0x6e35ba20, 0x2be0a: 0x6e3b2020, 0x2be0b: 0x6e3b2220, - 0x2be0c: 0x6e3edc20, 0x2be0d: 0x6e3ede20, 0x2be0e: 0x6e417620, 0x2be0f: 0x6d15c620, - 0x2be10: 0x6d43d820, 0x2be11: 0x6d43da20, 0x2be12: 0x6d43dc20, 0x2be13: 0x6d43de20, - 0x2be14: 0x6d99ec20, 0x2be15: 0x6dbcc420, 0x2be16: 0x6ddaa420, 0x2be17: 0x6ddaa620, - 0x2be18: 0x6ddaa820, 0x2be19: 0x6df2a420, 0x2be1a: 0x6df2a620, 0x2be1b: 0x6e174020, - 0x2be1c: 0x6e244620, 0x2be1d: 0x6e2e2c20, 0x2be1e: 0x6d15de20, 0x2be1f: 0x6d70e020, - 0x2be20: 0x6dbce820, 0x2be21: 0x6df2c220, 0x2be22: 0x6df2c420, 0x2be23: 0x6e06ea20, - 0x2be24: 0x6e175620, 0x2be25: 0x6e2e3620, 0x2be26: 0x6ce73c20, 0x2be27: 0x6ce73e20, - 0x2be28: 0x6ce74020, 0x2be29: 0x6d15e620, 0x2be2a: 0x6d440220, 0x2be2b: 0x6d9a0820, - 0x2be2c: 0x6d9a0a20, 0x2be2d: 0x6ddaca20, 0x2be2e: 0x6df2cc20, 0x2be2f: 0x6df2ce20, - 0x2be30: 0x6e245c20, 0x2be31: 0x6ce74420, 0x2be32: 0x6ce74620, 0x2be33: 0x6d15f420, - 0x2be34: 0x6d15f620, 0x2be35: 0x6d15f820, 0x2be36: 0x6d441420, 0x2be37: 0x6d441620, - 0x2be38: 0x6d441820, 0x2be39: 0x6d441a20, 0x2be3a: 0x6d441c20, 0x2be3b: 0x6d441e20, - 0x2be3c: 0x6d442020, 0x2be3d: 0x6d442220, 0x2be3e: 0x6d442420, 0x2be3f: 0x6d70f820, - // Block 0xaf9, offset 0x2be40 - 0x2be40: 0x6d70fa20, 0x2be41: 0x6d70fc20, 0x2be42: 0x6d70fe20, 0x2be43: 0x6d9a1a20, - 0x2be44: 0x6d9a1c20, 0x2be45: 0x6d9a1e20, 0x2be46: 0x6d9a2020, 0x2be47: 0x6d9a2220, - 0x2be48: 0x6d9a2420, 0x2be49: 0x6d9a2620, 0x2be4a: 0x6d9a2820, 0x2be4b: 0x6dbcfa20, - 0x2be4c: 0x6dbcfc20, 0x2be4d: 0x6dbcfe20, 0x2be4e: 0x6dbd0020, 0x2be4f: 0x6dbd0220, - 0x2be50: 0x6dbd0420, 0x2be51: 0x6dbd0620, 0x2be52: 0x6dbd0820, 0x2be53: 0x6dbd0a20, - 0x2be54: 0x6ddadc20, 0x2be55: 0x6ddade20, 0x2be56: 0x6ddae020, 0x2be57: 0x6ddae220, - 0x2be58: 0x6ddae420, 0x2be59: 0x6ddae620, 0x2be5a: 0x6ddae820, 0x2be5b: 0x6ddaea20, - 0x2be5c: 0x6ddaec20, 0x2be5d: 0x6ddaee20, 0x2be5e: 0x6df2dc20, 0x2be5f: 0x6df2de20, - 0x2be60: 0x6df2e020, 0x2be61: 0x6df2e220, 0x2be62: 0x6df2e420, 0x2be63: 0x6df2e620, - 0x2be64: 0x6df2e820, 0x2be65: 0x6df2ea20, 0x2be66: 0x6df2ec20, 0x2be67: 0x6df2ee20, - 0x2be68: 0x6e070620, 0x2be69: 0x6e070820, 0x2be6a: 0x6e070a20, 0x2be6b: 0x6e070c20, - 0x2be6c: 0x6e176620, 0x2be6d: 0x6e176820, 0x2be6e: 0x6e176a20, 0x2be6f: 0x6e176c20, - 0x2be70: 0x6e176e20, 0x2be71: 0x6e177020, 0x2be72: 0x6e246820, 0x2be73: 0x6e246a20, - 0x2be74: 0x6e246c20, 0x2be75: 0x6e35da20, 0x2be76: 0x6e35dc20, 0x2be77: 0x6e3b3620, - 0x2be78: 0x6cb6cc20, 0x2be79: 0x6ce77820, 0x2be7a: 0x6d165020, 0x2be7b: 0x6d165220, - 0x2be7c: 0x6d165420, 0x2be7d: 0x6d165620, 0x2be7e: 0x6d447e20, 0x2be7f: 0x6d448020, - // Block 0xafa, offset 0x2be80 - 0x2be80: 0x6d448220, 0x2be81: 0x6d448420, 0x2be82: 0x6d448620, 0x2be83: 0x6d448820, - 0x2be84: 0x6d716c20, 0x2be85: 0x6d716e20, 0x2be86: 0x6d9abc20, 0x2be87: 0x6d9abe20, - 0x2be88: 0x6d9ac020, 0x2be89: 0x6d9ac220, 0x2be8a: 0x6d9ac420, 0x2be8b: 0x6dbd6c20, - 0x2be8c: 0x6dbd6e20, 0x2be8d: 0x6dbd7020, 0x2be8e: 0x6dbd7220, 0x2be8f: 0x6dbd7420, - 0x2be90: 0x6dbd7620, 0x2be91: 0x6ddb4220, 0x2be92: 0x6ddb4420, 0x2be93: 0x6ddb4620, - 0x2be94: 0x6ddb4820, 0x2be95: 0x6ddb4a20, 0x2be96: 0x6ddb4c20, 0x2be97: 0x6ddb4e20, - 0x2be98: 0x6df33c20, 0x2be99: 0x6df33e20, 0x2be9a: 0x6df34020, 0x2be9b: 0x6e074a20, - 0x2be9c: 0x6e074c20, 0x2be9d: 0x6e17ae20, 0x2be9e: 0x6e2e6e20, 0x2be9f: 0x6e35f220, - 0x2bea0: 0x6dbdbc20, 0x2bea1: 0x6ddb8620, 0x2bea2: 0x6cb6d620, 0x2bea3: 0x6ce79820, - 0x2bea4: 0x6ce79a20, 0x2bea5: 0x6ce79c20, 0x2bea6: 0x6d168a20, 0x2bea7: 0x6d168c20, - 0x2bea8: 0x6d168e20, 0x2bea9: 0x6d169020, 0x2beaa: 0x6d169220, 0x2beab: 0x6d44c220, - 0x2beac: 0x6d44c420, 0x2bead: 0x6d44c620, 0x2beae: 0x6d44c820, 0x2beaf: 0x6d44ca20, - 0x2beb0: 0x6d44cc20, 0x2beb1: 0x6d44ce20, 0x2beb2: 0x6d44d020, 0x2beb3: 0x6d44d220, - 0x2beb4: 0x6d44d420, 0x2beb5: 0x6d719820, 0x2beb6: 0x6d719a20, 0x2beb7: 0x6d719c20, - 0x2beb8: 0x6d719e20, 0x2beb9: 0x6d71a020, 0x2beba: 0x6d71a220, 0x2bebb: 0x6d71a420, - 0x2bebc: 0x6d9afa20, 0x2bebd: 0x6d9afc20, 0x2bebe: 0x6d9afe20, 0x2bebf: 0x6d9b0020, - // Block 0xafb, offset 0x2bec0 - 0x2bec0: 0x6d9b0220, 0x2bec1: 0x6d9b0420, 0x2bec2: 0x6d9b0620, 0x2bec3: 0x6dbdc020, - 0x2bec4: 0x6dbdc220, 0x2bec5: 0x6dbdc420, 0x2bec6: 0x6dbdc620, 0x2bec7: 0x6dbdc820, - 0x2bec8: 0x6ddb8a20, 0x2bec9: 0x6ddb8c20, 0x2beca: 0x6ddb8e20, 0x2becb: 0x6ddb9020, - 0x2becc: 0x6ddb9220, 0x2becd: 0x6ddb9420, 0x2bece: 0x6ddb9620, 0x2becf: 0x6ddb9820, - 0x2bed0: 0x6df37e20, 0x2bed1: 0x6df38020, 0x2bed2: 0x6df38220, 0x2bed3: 0x6df38420, - 0x2bed4: 0x6df38620, 0x2bed5: 0x6e076e20, 0x2bed6: 0x6e077020, 0x2bed7: 0x6e077220, - 0x2bed8: 0x6e17e220, 0x2bed9: 0x6e17e420, 0x2beda: 0x6e17e620, 0x2bedb: 0x6e17e820, - 0x2bedc: 0x6e17ea20, 0x2bedd: 0x6e24a620, 0x2bede: 0x6e24a820, 0x2bedf: 0x6e24aa20, - 0x2bee0: 0x6e24ac20, 0x2bee1: 0x6e2e7a20, 0x2bee2: 0x6e2e7c20, 0x2bee3: 0x6e2e7e20, - 0x2bee4: 0x6e2e8020, 0x2bee5: 0x6e360020, 0x2bee6: 0x6e3f0420, 0x2bee7: 0x6e3f0620, - 0x2bee8: 0x6e419620, 0x2bee9: 0x6e437420, 0x2beea: 0x6e182020, 0x2beeb: 0x6d720820, - 0x2beec: 0x6d720a20, 0x2beed: 0x6ddbfa20, 0x2beee: 0x6df3e420, 0x2beef: 0x6d453420, - 0x2bef0: 0x6dbe5020, 0x2bef1: 0x6dbe5220, 0x2bef2: 0x6dbe5420, 0x2bef3: 0x6e419e20, - 0x2bef4: 0x6ce7f020, 0x2bef5: 0x6d171020, 0x2bef6: 0x6d171220, 0x2bef7: 0x6d454820, - 0x2bef8: 0x6d454a20, 0x2bef9: 0x6d454c20, 0x2befa: 0x6d454e20, 0x2befb: 0x6d455020, - 0x2befc: 0x6d455220, 0x2befd: 0x6d455420, 0x2befe: 0x6d455620, 0x2beff: 0x6d722420, - // Block 0xafc, offset 0x2bf00 - 0x2bf00: 0x6d722620, 0x2bf01: 0x6d722820, 0x2bf02: 0x6d722a20, 0x2bf03: 0x6d722c20, - 0x2bf04: 0x6d722e20, 0x2bf05: 0x6d723020, 0x2bf06: 0x6d9baa20, 0x2bf07: 0x6d9bac20, - 0x2bf08: 0x6d9bae20, 0x2bf09: 0x6d9bb020, 0x2bf0a: 0x6d9bb220, 0x2bf0b: 0x6d9bb420, - 0x2bf0c: 0x6d9bb620, 0x2bf0d: 0x6d9bb820, 0x2bf0e: 0x6dbe6620, 0x2bf0f: 0x6dbe6820, - 0x2bf10: 0x6dbe6a20, 0x2bf11: 0x6dbe6c20, 0x2bf12: 0x6dbe6e20, 0x2bf13: 0x6ddc1620, - 0x2bf14: 0x6ddc1820, 0x2bf15: 0x6ddc1a20, 0x2bf16: 0x6ddc1c20, 0x2bf17: 0x6ddc1e20, - 0x2bf18: 0x6ddc2020, 0x2bf19: 0x6ddc2220, 0x2bf1a: 0x6ddc2420, 0x2bf1b: 0x6ddc2620, - 0x2bf1c: 0x6df3fc20, 0x2bf1d: 0x6df3fe20, 0x2bf1e: 0x6df40020, 0x2bf1f: 0x6df40220, - 0x2bf20: 0x6df40420, 0x2bf21: 0x6df40620, 0x2bf22: 0x6df40820, 0x2bf23: 0x6e07d820, - 0x2bf24: 0x6e07da20, 0x2bf25: 0x6e07dc20, 0x2bf26: 0x6e07de20, 0x2bf27: 0x6e07e020, - 0x2bf28: 0x6e07e220, 0x2bf29: 0x6e07e420, 0x2bf2a: 0x6e183220, 0x2bf2b: 0x6e183420, - 0x2bf2c: 0x6e183620, 0x2bf2d: 0x6e183820, 0x2bf2e: 0x6e183a20, 0x2bf2f: 0x6e183c20, - 0x2bf30: 0x6e183e20, 0x2bf31: 0x6e184020, 0x2bf32: 0x6e24e420, 0x2bf33: 0x6e24e620, - 0x2bf34: 0x6e24e820, 0x2bf35: 0x6e24ea20, 0x2bf36: 0x6e24ec20, 0x2bf37: 0x6e2e9e20, - 0x2bf38: 0x6e2ea020, 0x2bf39: 0x6e2ea220, 0x2bf3a: 0x6e361c20, 0x2bf3b: 0x6e361e20, - 0x2bf3c: 0x6e362020, 0x2bf3d: 0x6e3b5620, 0x2bf3e: 0x6e3f1220, 0x2bf3f: 0x6e41a220, - // Block 0xafd, offset 0x2bf40 - 0x2bf40: 0x6e437820, 0x2bf41: 0x6e44c020, 0x2bf42: 0x6e46b820, 0x2bf43: 0x6d9c3020, - 0x2bf44: 0x6dbec220, 0x2bf45: 0x6e086c20, 0x2bf46: 0x6cb72e20, 0x2bf47: 0x6ce82a20, - 0x2bf48: 0x6d45b820, 0x2bf49: 0x6d45ba20, 0x2bf4a: 0x6d72b220, 0x2bf4b: 0x6d72b420, - 0x2bf4c: 0x6d72b620, 0x2bf4d: 0x6d72b820, 0x2bf4e: 0x6d72ba20, 0x2bf4f: 0x6d9c3620, - 0x2bf50: 0x6d9c3820, 0x2bf51: 0x6d9c3a20, 0x2bf52: 0x6d9c3c20, 0x2bf53: 0x6d9c3e20, - 0x2bf54: 0x6d9c4020, 0x2bf55: 0x6dbec620, 0x2bf56: 0x6dbec820, 0x2bf57: 0x6dbeca20, - 0x2bf58: 0x6dbecc20, 0x2bf59: 0x6dbece20, 0x2bf5a: 0x6dbed020, 0x2bf5b: 0x6ddca820, - 0x2bf5c: 0x6ddcaa20, 0x2bf5d: 0x6df48420, 0x2bf5e: 0x6df48620, 0x2bf5f: 0x6df48820, - 0x2bf60: 0x6df48a20, 0x2bf61: 0x6e087420, 0x2bf62: 0x6e189220, 0x2bf63: 0x6e254420, - 0x2bf64: 0x6e2ee420, 0x2bf65: 0x6e364220, 0x2bf66: 0x6e3b7220, 0x2bf67: 0x6ce83e20, - 0x2bf68: 0x6d177220, 0x2bf69: 0x6d45e420, 0x2bf6a: 0x6df4a420, 0x2bf6b: 0x6e256220, - 0x2bf6c: 0x6e3b7e20, 0x2bf6d: 0x6ce84220, 0x2bf6e: 0x6ce84420, 0x2bf6f: 0x6d45fa20, - 0x2bf70: 0x6d45fc20, 0x2bf71: 0x6d45fe20, 0x2bf72: 0x6d460020, 0x2bf73: 0x6d460220, - 0x2bf74: 0x6d460420, 0x2bf75: 0x6d72ee20, 0x2bf76: 0x6d72f020, 0x2bf77: 0x6d9c7c20, - 0x2bf78: 0x6d9c7e20, 0x2bf79: 0x6dbf0c20, 0x2bf7a: 0x6dbf0e20, 0x2bf7b: 0x6dbf1020, - 0x2bf7c: 0x6dbf1220, 0x2bf7d: 0x6ddce420, 0x2bf7e: 0x6ddce620, 0x2bf7f: 0x6ddce820, - // Block 0xafe, offset 0x2bf80 - 0x2bf80: 0x6ddcea20, 0x2bf81: 0x6ddcec20, 0x2bf82: 0x6ddcee20, 0x2bf83: 0x6ddcf020, - 0x2bf84: 0x6df4aa20, 0x2bf85: 0x6df4ac20, 0x2bf86: 0x6df4ae20, 0x2bf87: 0x6df4b020, - 0x2bf88: 0x6e08aa20, 0x2bf89: 0x6e08ac20, 0x2bf8a: 0x6e08ae20, 0x2bf8b: 0x6e08b020, - 0x2bf8c: 0x6e18b020, 0x2bf8d: 0x6e18b220, 0x2bf8e: 0x6e256a20, 0x2bf8f: 0x6e365420, - 0x2bf90: 0x6e365620, 0x2bf91: 0x6e365820, 0x2bf92: 0x6e365a20, 0x2bf93: 0x6e3b8220, - 0x2bf94: 0x6e3b8420, 0x2bf95: 0x6e3f3020, 0x2bf96: 0x6e44c820, 0x2bf97: 0x6e08ec20, - 0x2bf98: 0x6e18e820, 0x2bf99: 0x6d464420, 0x2bf9a: 0x6d464620, 0x2bf9b: 0x6d734c20, - 0x2bf9c: 0x6d9cc620, 0x2bf9d: 0x6e25ac20, 0x2bf9e: 0x6e3b9c20, 0x2bf9f: 0x6d464e20, - 0x2bfa0: 0x6d735420, 0x2bfa1: 0x6d735620, 0x2bfa2: 0x6d9cda20, 0x2bfa3: 0x6d9cdc20, - 0x2bfa4: 0x6ddd4e20, 0x2bfa5: 0x6ddd5020, 0x2bfa6: 0x6ddd5220, 0x2bfa7: 0x6ddd5420, - 0x2bfa8: 0x6df50420, 0x2bfa9: 0x6df50620, 0x2bfaa: 0x6e090020, 0x2bfab: 0x6e25b820, - 0x2bfac: 0x6e25ba20, 0x2bfad: 0x6e25bc20, 0x2bfae: 0x6e2f3420, 0x2bfaf: 0x6e368620, - 0x2bfb0: 0x6e368820, 0x2bfb1: 0x6e46ba20, 0x2bfb2: 0x6ce86c20, 0x2bfb3: 0x6d17c420, - 0x2bfb4: 0x6d468c20, 0x2bfb5: 0x6d468e20, 0x2bfb6: 0x6d469020, 0x2bfb7: 0x6d738620, - 0x2bfb8: 0x6d738820, 0x2bfb9: 0x6d738a20, 0x2bfba: 0x6d738c20, 0x2bfbb: 0x6d738e20, - 0x2bfbc: 0x6d739020, 0x2bfbd: 0x6d739220, 0x2bfbe: 0x6d739420, 0x2bfbf: 0x6d9d0e20, - // Block 0xaff, offset 0x2bfc0 - 0x2bfc0: 0x6d9d1020, 0x2bfc1: 0x6d9d1220, 0x2bfc2: 0x6d9d1420, 0x2bfc3: 0x6d9d1620, - 0x2bfc4: 0x6d9d1820, 0x2bfc5: 0x6d9d1a20, 0x2bfc6: 0x6d9d1c20, 0x2bfc7: 0x6d9d1e20, - 0x2bfc8: 0x6d9d2020, 0x2bfc9: 0x6d9d2220, 0x2bfca: 0x6dbf9220, 0x2bfcb: 0x6dbf9420, - 0x2bfcc: 0x6dbf9620, 0x2bfcd: 0x6dbf9820, 0x2bfce: 0x6dbf9a20, 0x2bfcf: 0x6ddd8420, - 0x2bfd0: 0x6ddd8620, 0x2bfd1: 0x6ddd8820, 0x2bfd2: 0x6ddd8a20, 0x2bfd3: 0x6ddd8c20, - 0x2bfd4: 0x6ddd8e20, 0x2bfd5: 0x6ddd9020, 0x2bfd6: 0x6ddd9220, 0x2bfd7: 0x6ddd9420, - 0x2bfd8: 0x6ddd9620, 0x2bfd9: 0x6df51e20, 0x2bfda: 0x6df52020, 0x2bfdb: 0x6df52220, - 0x2bfdc: 0x6df52420, 0x2bfdd: 0x6df52620, 0x2bfde: 0x6df52820, 0x2bfdf: 0x6df52a20, - 0x2bfe0: 0x6df52c20, 0x2bfe1: 0x6df52e20, 0x2bfe2: 0x6df53020, 0x2bfe3: 0x6df53220, - 0x2bfe4: 0x6df53420, 0x2bfe5: 0x6df53620, 0x2bfe6: 0x6df53820, 0x2bfe7: 0x6df53a20, - 0x2bfe8: 0x6df53c20, 0x2bfe9: 0x6df53e20, 0x2bfea: 0x6df54020, 0x2bfeb: 0x6e091e20, - 0x2bfec: 0x6e092020, 0x2bfed: 0x6e092220, 0x2bfee: 0x6e092420, 0x2bfef: 0x6e092620, - 0x2bff0: 0x6e092820, 0x2bff1: 0x6e092a20, 0x2bff2: 0x6e092c20, 0x2bff3: 0x6e092e20, - 0x2bff4: 0x6e093020, 0x2bff5: 0x6e193420, 0x2bff6: 0x6e193620, 0x2bff7: 0x6e193820, - 0x2bff8: 0x6e193a20, 0x2bff9: 0x6e193c20, 0x2bffa: 0x6e193e20, 0x2bffb: 0x6e194020, - 0x2bffc: 0x6e194220, 0x2bffd: 0x6e194420, 0x2bffe: 0x6e25c820, 0x2bfff: 0x6e25ca20, - // Block 0xb00, offset 0x2c000 - 0x2c000: 0x6e25cc20, 0x2c001: 0x6e25ce20, 0x2c002: 0x6e25d020, 0x2c003: 0x6e25d220, - 0x2c004: 0x6e25d420, 0x2c005: 0x6e25d620, 0x2c006: 0x6e25d820, 0x2c007: 0x6e25da20, - 0x2c008: 0x6e25dc20, 0x2c009: 0x6e2f4820, 0x2c00a: 0x6e2f4a20, 0x2c00b: 0x6e2f4c20, - 0x2c00c: 0x6e2f4e20, 0x2c00d: 0x6e2f5020, 0x2c00e: 0x6e2f5220, 0x2c00f: 0x6e2f5420, - 0x2c010: 0x6e369a20, 0x2c011: 0x6e369c20, 0x2c012: 0x6e369e20, 0x2c013: 0x6e36a020, - 0x2c014: 0x6e36a220, 0x2c015: 0x6e36a420, 0x2c016: 0x6e3ba620, 0x2c017: 0x6e3ba820, - 0x2c018: 0x6e3baa20, 0x2c019: 0x6e3f5220, 0x2c01a: 0x6e41d620, 0x2c01b: 0x6e41d820, - 0x2c01c: 0x6e473220, 0x2c01d: 0x6d740a20, 0x2c01e: 0x6d9dac20, 0x2c01f: 0x6d9dae20, - 0x2c020: 0x6e09e820, 0x2c021: 0x6e09ea20, 0x2c022: 0x6e19f220, 0x2c023: 0x6e19f420, - 0x2c024: 0x6e19f620, 0x2c025: 0x6d180620, 0x2c026: 0x6d46e820, 0x2c027: 0x6d46ea20, - 0x2c028: 0x6d46ec20, 0x2c029: 0x6d46ee20, 0x2c02a: 0x6d46f020, 0x2c02b: 0x6d46f220, - 0x2c02c: 0x6d743620, 0x2c02d: 0x6d743820, 0x2c02e: 0x6d743a20, 0x2c02f: 0x6d743c20, - 0x2c030: 0x6d743e20, 0x2c031: 0x6d744020, 0x2c032: 0x6d744220, 0x2c033: 0x6d744420, - 0x2c034: 0x6d744620, 0x2c035: 0x6d744820, 0x2c036: 0x6d744a20, 0x2c037: 0x6d744c20, - 0x2c038: 0x6d744e20, 0x2c039: 0x6d9de220, 0x2c03a: 0x6d9de420, 0x2c03b: 0x6d9de620, - 0x2c03c: 0x6d9de820, 0x2c03d: 0x6d9dea20, 0x2c03e: 0x6d9dec20, 0x2c03f: 0x6d9dee20, - // Block 0xb01, offset 0x2c040 - 0x2c040: 0x6d9df020, 0x2c041: 0x6d9df220, 0x2c042: 0x6d9df420, 0x2c043: 0x6d9df620, - 0x2c044: 0x6d9df820, 0x2c045: 0x6d9dfa20, 0x2c046: 0x6d9dfc20, 0x2c047: 0x6d9dfe20, - 0x2c048: 0x6d9e0020, 0x2c049: 0x6d9e0220, 0x2c04a: 0x6d9e0420, 0x2c04b: 0x6dc06c20, - 0x2c04c: 0x6dc06e20, 0x2c04d: 0x6dc07020, 0x2c04e: 0x6dc07220, 0x2c04f: 0x6dc07420, - 0x2c050: 0x6dc07620, 0x2c051: 0x6dc07820, 0x2c052: 0x6dc07a20, 0x2c053: 0x6dc07c20, - 0x2c054: 0x6dc07e20, 0x2c055: 0x6dde3e20, 0x2c056: 0x6dde4020, 0x2c057: 0x6dde4220, - 0x2c058: 0x6dde4420, 0x2c059: 0x6dde4620, 0x2c05a: 0x6dde4820, 0x2c05b: 0x6dde4a20, - 0x2c05c: 0x6dde4c20, 0x2c05d: 0x6df63a20, 0x2c05e: 0x6df63c20, 0x2c05f: 0x6df63e20, - 0x2c060: 0x6df64020, 0x2c061: 0x6df64220, 0x2c062: 0x6df64420, 0x2c063: 0x6df64620, - 0x2c064: 0x6df64820, 0x2c065: 0x6df64a20, 0x2c066: 0x6e09f820, 0x2c067: 0x6e09fa20, - 0x2c068: 0x6e09fc20, 0x2c069: 0x6e09fe20, 0x2c06a: 0x6e0a0020, 0x2c06b: 0x6e0a0220, - 0x2c06c: 0x6e0a0420, 0x2c06d: 0x6e0a0620, 0x2c06e: 0x6e0a0820, 0x2c06f: 0x6e0a0a20, - 0x2c070: 0x6e0a0c20, 0x2c071: 0x6e1a0420, 0x2c072: 0x6e1a0620, 0x2c073: 0x6e1a0820, - 0x2c074: 0x6e1a0a20, 0x2c075: 0x6e1a0c20, 0x2c076: 0x6e1a0e20, 0x2c077: 0x6e267820, - 0x2c078: 0x6e267a20, 0x2c079: 0x6e267c20, 0x2c07a: 0x6e267e20, 0x2c07b: 0x6e268020, - 0x2c07c: 0x6e268220, 0x2c07d: 0x6e268420, 0x2c07e: 0x6e2fe020, 0x2c07f: 0x6e2fe220, - // Block 0xb02, offset 0x2c080 - 0x2c080: 0x6e2fe420, 0x2c081: 0x6e2fe620, 0x2c082: 0x6e2fe820, 0x2c083: 0x6e2fea20, - 0x2c084: 0x6e2fec20, 0x2c085: 0x6e2fee20, 0x2c086: 0x6e2ff020, 0x2c087: 0x6e371820, - 0x2c088: 0x6e371a20, 0x2c089: 0x6e371c20, 0x2c08a: 0x6e371e20, 0x2c08b: 0x6e372020, - 0x2c08c: 0x6e3be620, 0x2c08d: 0x6e3be820, 0x2c08e: 0x6e3f8620, 0x2c08f: 0x6e41f820, - 0x2c090: 0x6e45fe20, 0x2c091: 0x6e46bc20, 0x2c092: 0x6e46d420, 0x2c093: 0x6d74de20, - 0x2c094: 0x6dc13420, 0x2c095: 0x6dc13620, 0x2c096: 0x6df72e20, 0x2c097: 0x6e0ad420, - 0x2c098: 0x6e1ac220, 0x2c099: 0x6e378a20, 0x2c09a: 0x6d74fe20, 0x2c09b: 0x6ddef020, - 0x2c09c: 0x6e1ac420, 0x2c09d: 0x6e30a820, 0x2c09e: 0x6e3c3220, 0x2c09f: 0x6d474a20, - 0x2c0a0: 0x6d750c20, 0x2c0a1: 0x6d750e20, 0x2c0a2: 0x6d751020, 0x2c0a3: 0x6d9edc20, - 0x2c0a4: 0x6d9ede20, 0x2c0a5: 0x6d9ee020, 0x2c0a6: 0x6ddefa20, 0x2c0a7: 0x6df74620, - 0x2c0a8: 0x6e1ad420, 0x2c0a9: 0x6e274220, 0x2c0aa: 0x6e379620, 0x2c0ab: 0x6e379820, - 0x2c0ac: 0x6d475020, 0x2c0ad: 0x6d475220, 0x2c0ae: 0x6d475420, 0x2c0af: 0x6d753020, - 0x2c0b0: 0x6d753220, 0x2c0b1: 0x6d9efe20, 0x2c0b2: 0x6d9f0020, 0x2c0b3: 0x6d9f0220, - 0x2c0b4: 0x6d9f0420, 0x2c0b5: 0x6dc16e20, 0x2c0b6: 0x6ddf2820, 0x2c0b7: 0x6ddf2a20, - 0x2c0b8: 0x6ddf2c20, 0x2c0b9: 0x6df76a20, 0x2c0ba: 0x6df76c20, 0x2c0bb: 0x6df76e20, - 0x2c0bc: 0x6df77020, 0x2c0bd: 0x6df77220, 0x2c0be: 0x6e1ae420, 0x2c0bf: 0x6e1ae620, - // Block 0xb03, offset 0x2c0c0 - 0x2c0c0: 0x6e1ae820, 0x2c0c1: 0x6e275020, 0x2c0c2: 0x6e275220, 0x2c0c3: 0x6e30c820, - 0x2c0c4: 0x6e37a420, 0x2c0c5: 0x6e275420, 0x2c0c6: 0x6e3c4820, 0x2c0c7: 0x6d756220, - 0x2c0c8: 0x6e0b2620, 0x2c0c9: 0x6e0b2820, 0x2c0ca: 0x6d9f3220, 0x2c0cb: 0x6ddf5820, - 0x2c0cc: 0x6df7a420, 0x2c0cd: 0x6e0b3020, 0x2c0ce: 0x6e1afe20, 0x2c0cf: 0x6e30de20, - 0x2c0d0: 0x6e37b620, 0x2c0d1: 0x6d757e20, 0x2c0d2: 0x6d9f3a20, 0x2c0d3: 0x6d9f3c20, - 0x2c0d4: 0x6e0b3e20, 0x2c0d5: 0x6e0b4020, 0x2c0d6: 0x6e0b4220, 0x2c0d7: 0x6e1b0c20, - 0x2c0d8: 0x6e1b0e20, 0x2c0d9: 0x6e1b1020, 0x2c0da: 0x6e278220, 0x2c0db: 0x6e30e620, - 0x2c0dc: 0x6e3c4e20, 0x2c0dd: 0x6d187020, 0x2c0de: 0x6d477220, 0x2c0df: 0x6d758620, - 0x2c0e0: 0x6dc1bc20, 0x2c0e1: 0x6d9f4a20, 0x2c0e2: 0x6dc1be20, 0x2c0e3: 0x6dc1c020, - 0x2c0e4: 0x6ddf6a20, 0x2c0e5: 0x6ddf6c20, 0x2c0e6: 0x6ddf6e20, 0x2c0e7: 0x6ddf7020, - 0x2c0e8: 0x6df7c220, 0x2c0e9: 0x6df7c420, 0x2c0ea: 0x6e0b4e20, 0x2c0eb: 0x6e0b5020, - 0x2c0ec: 0x6e0b5220, 0x2c0ed: 0x6e1b1a20, 0x2c0ee: 0x6e1b1c20, 0x2c0ef: 0x6e1b1e20, - 0x2c0f0: 0x6e30f020, 0x2c0f1: 0x6e37c020, 0x2c0f2: 0x6e3c5220, 0x2c0f3: 0x6e3c5420, - 0x2c0f4: 0x6e3c5620, 0x2c0f5: 0x6e3fc620, 0x2c0f6: 0x6ddf8c20, 0x2c0f7: 0x6df7e220, - 0x2c0f8: 0x6e27ae20, 0x2c0f9: 0x6e37e420, 0x2c0fa: 0x6d9f7620, 0x2c0fb: 0x6e37e820, - 0x2c0fc: 0x6e37ea20, 0x2c0fd: 0x6ddfa420, 0x2c0fe: 0x6ddfa620, 0x2c0ff: 0x6ddfa820, - // Block 0xb04, offset 0x2c100 - 0x2c100: 0x6df7f620, 0x2c101: 0x6e1b6c20, 0x2c102: 0x6d9f8020, 0x2c103: 0x6dc20020, - 0x2c104: 0x6ddfb620, 0x2c105: 0x6df80a20, 0x2c106: 0x6e1b7e20, 0x2c107: 0x6e27d620, - 0x2c108: 0x6e311820, 0x2c109: 0x6e311a20, 0x2c10a: 0x6ddfdc20, 0x2c10b: 0x6ddfde20, - 0x2c10c: 0x6df82020, 0x2c10d: 0x6e0bc420, 0x2c10e: 0x6e0bc620, 0x2c10f: 0x6e1b8820, - 0x2c110: 0x6e424c20, 0x2c111: 0x6e45a820, 0x2c112: 0x6dc22820, 0x2c113: 0x6dc22a20, - 0x2c114: 0x6ddff420, 0x2c115: 0x6df83a20, 0x2c116: 0x6df83c20, 0x2c117: 0x6e0bd420, - 0x2c118: 0x6e0bd620, 0x2c119: 0x6e0bd820, 0x2c11a: 0x6e1ba020, 0x2c11b: 0x6e1ba220, - 0x2c11c: 0x6e27fc20, 0x2c11d: 0x6e27fe20, 0x2c11e: 0x6e314620, 0x2c11f: 0x6e314820, - 0x2c120: 0x6e380c20, 0x2c121: 0x6e380e20, 0x2c122: 0x6e381020, 0x2c123: 0x6e3ca420, - 0x2c124: 0x6e3ca620, 0x2c125: 0x6e3fe620, 0x2c126: 0x6e3fe820, 0x2c127: 0x6e425620, - 0x2c128: 0x6e440420, 0x2c129: 0x6e450c20, 0x2c12a: 0x6e450e20, 0x2c12b: 0x6e46da20, - 0x2c12c: 0x6e283620, 0x2c12d: 0x6e0c2020, 0x2c12e: 0x6e0c2220, 0x2c12f: 0x6df86420, - 0x2c130: 0x6e0c2420, 0x2c131: 0x6e1be620, 0x2c132: 0x6e1be820, 0x2c133: 0x6e1bfe20, - 0x2c134: 0x6e3cd820, 0x2c135: 0x6e427e20, - // Block 0xb05, offset 0x2c140 - 0x2c140: 0x6c000220, 0x2c141: 0x6c003220, 0x2c142: 0x6c003420, 0x2c143: 0x6c003620, - 0x2c144: 0x6c003820, 0x2c145: 0x6c003a20, 0x2c146: 0x6c003c20, 0x2c147: 0x6c00d820, - 0x2c148: 0x6c00da20, 0x2c149: 0x6c00dc20, 0x2c14a: 0x6c00de20, 0x2c14b: 0x6c00e020, - 0x2c14c: 0x6c00e220, 0x2c14d: 0x6c021a20, 0x2c14e: 0x6c021c20, 0x2c14f: 0x6c021e20, - 0x2c150: 0x6c022020, 0x2c151: 0x6c022220, 0x2c152: 0x6c022420, 0x2c153: 0x6c022620, - 0x2c154: 0x6c054020, 0x2c155: 0x6c054220, 0x2c156: 0x6c054420, 0x2c157: 0x6c053c20, - 0x2c158: 0x6c054620, 0x2c159: 0x6c054820, 0x2c15a: 0x6c054a20, 0x2c15b: 0x6c054c20, - 0x2c15c: 0x6c054e20, 0x2c15d: 0x6c055020, 0x2c15e: 0x6c0ad020, 0x2c15f: 0x6c0ad220, - 0x2c160: 0x6c0ad420, 0x2c161: 0x6c0ad620, 0x2c162: 0x6c0ad820, 0x2c163: 0x6c15e420, - 0x2c164: 0x6c15e620, 0x2c165: 0x6c15e820, 0x2c166: 0x6c28ae20, 0x2c167: 0x6c28b020, - 0x2c168: 0x6c000420, 0x2c169: 0x6c004420, 0x2c16a: 0x6c00fa20, 0x2c16b: 0x6c00fc20, - 0x2c16c: 0x6c04e220, 0x2c16d: 0x6c023620, 0x2c16e: 0x6c023820, 0x2c16f: 0x6c023a20, - 0x2c170: 0x6c023c20, 0x2c171: 0x6c056820, 0x2c172: 0x6c160020, 0x2c173: 0x6c28c420, - 0x2c174: 0x6c42f620, 0x2c175: 0x6c63d820, 0x2c176: 0x6c000620, 0x2c177: 0x6c004a20, - 0x2c178: 0x6c00fe20, 0x2c179: 0x6c024220, 0x2c17a: 0x6c024420, 0x2c17b: 0x6c056c20, - 0x2c17c: 0x6c056e20, 0x2c17d: 0x6c15ea20, 0x2c17e: 0x6c430020, 0x2c17f: 0x6c000820, - // Block 0xb06, offset 0x2c180 - 0x2c180: 0x6c000a20, 0x2c181: 0x6c000c20, 0x2c182: 0x6c005020, 0x2c183: 0x6c005220, - 0x2c184: 0x6c005420, 0x2c185: 0x6c010620, 0x2c186: 0x6c010820, 0x2c187: 0x6c010a20, - 0x2c188: 0x6c010c20, 0x2c189: 0x6c010020, 0x2c18a: 0x6c010e20, 0x2c18b: 0x6c024820, - 0x2c18c: 0x6c024a20, 0x2c18d: 0x6c057420, 0x2c18e: 0x6c057620, 0x2c18f: 0x6c057820, - 0x2c190: 0x6c057a20, 0x2c191: 0x6c0af020, 0x2c192: 0x6c0af220, 0x2c193: 0x6c0af420, - 0x2c194: 0x6c0af620, 0x2c195: 0x6c160620, 0x2c196: 0x6c28d020, 0x2c197: 0x6c430220, - 0x2c198: 0x6c63e020, 0x2c199: 0x6c001020, 0x2c19a: 0x6c001220, 0x2c19b: 0x6c001420, - 0x2c19c: 0x6c006020, 0x2c19d: 0x6c006220, 0x2c19e: 0x6c012020, 0x2c19f: 0x6c012220, - 0x2c1a0: 0x6c012420, 0x2c1a1: 0x6c01d020, 0x2c1a2: 0x6c041020, 0x2c1a3: 0x6c025c20, - 0x2c1a4: 0x6c025e20, 0x2c1a5: 0x6c026020, 0x2c1a6: 0x6c026220, 0x2c1a7: 0x6c05a020, - 0x2c1a8: 0x6c0b1a20, 0x2c1a9: 0x6c0b1c20, 0x2c1aa: 0x6c0b1e20, 0x2c1ab: 0x6c0b2020, - 0x2c1ac: 0x6c0b2220, 0x2c1ad: 0x6c0b2420, 0x2c1ae: 0x6c0b2620, 0x2c1af: 0x6c0b2820, - 0x2c1b0: 0x6c0b2a20, 0x2c1b1: 0x6c161020, 0x2c1b2: 0x6c161220, 0x2c1b3: 0x6c28de20, - 0x2c1b4: 0x6c28e020, 0x2c1b5: 0x6c28e220, 0x2c1b6: 0x6c28e420, 0x2c1b7: 0x6c28e620, - 0x2c1b8: 0x6c28e820, 0x2c1b9: 0x6c431420, 0x2c1ba: 0x6c431620, 0x2c1bb: 0x6c431820, - 0x2c1bc: 0x6c431a20, 0x2c1bd: 0x6c63f220, 0x2c1be: 0x6c8b0c20, 0x2c1bf: 0x6c8b0e20, - // Block 0xb07, offset 0x2c1c0 - 0x2c1c0: 0x6c8b1020, 0x2c1c1: 0x6cb7b220, 0x2c1c2: 0x6ce8d220, 0x2c1c3: 0x6ce8d420, - 0x2c1c4: 0x6ce8d620, 0x2c1c5: 0x6c002420, 0x2c1c6: 0x6c006a20, 0x2c1c7: 0x6c012c20, - 0x2c1c8: 0x6c027a20, 0x2c1c9: 0x6c0b3820, 0x2c1ca: 0x6c162020, 0x2c1cb: 0x6c28f420, - 0x2c1cc: 0x6c007420, 0x2c1cd: 0x6c013020, 0x2c1ce: 0x6c013220, 0x2c1cf: 0x6c013420, - 0x2c1d0: 0x6c00e420, 0x2c1d1: 0x6c028220, 0x2c1d2: 0x6c028420, 0x2c1d3: 0x6c028620, - 0x2c1d4: 0x6c028820, 0x2c1d5: 0x6c028a20, 0x2c1d6: 0x6c028c20, 0x2c1d7: 0x6c05b020, - 0x2c1d8: 0x6c0b3e20, 0x2c1d9: 0x6c0b4020, 0x2c1da: 0x6c0b4220, 0x2c1db: 0x6c28f820, - 0x2c1dc: 0x6c162a20, 0x2c1dd: 0x6c28fc20, 0x2c1de: 0x6c28fe20, 0x2c1df: 0x6c290020, - 0x2c1e0: 0x6c007c20, 0x2c1e1: 0x6c013620, 0x2c1e2: 0x6c029020, 0x2c1e3: 0x6c029220, - 0x2c1e4: 0x6c0b5420, 0x2c1e5: 0x6c0b5620, 0x2c1e6: 0x6c0b5820, 0x2c1e7: 0x6c0b5a20, - 0x2c1e8: 0x6c163620, 0x2c1e9: 0x6c163820, 0x2c1ea: 0x6c163a20, 0x2c1eb: 0x6c290e20, - 0x2c1ec: 0x6c291020, 0x2c1ed: 0x6c433420, 0x2c1ee: 0x6c433620, 0x2c1ef: 0x6c433820, - 0x2c1f0: 0x6c433a20, 0x2c1f1: 0x6c433c20, 0x2c1f2: 0x6c433e20, 0x2c1f3: 0x6c640a20, - 0x2c1f4: 0x6cb7c020, 0x2c1f5: 0x6cb7c220, 0x2c1f6: 0x6ce8e620, 0x2c1f7: 0x6ce8e820, - 0x2c1f8: 0x6d75da20, 0x2c1f9: 0x6e1c0620, 0x2c1fa: 0x6c007e20, 0x2c1fb: 0x6c008020, - 0x2c1fc: 0x6c013820, 0x2c1fd: 0x6c013a20, 0x2c1fe: 0x6c013c20, 0x2c1ff: 0x6c013e20, - // Block 0xb08, offset 0x2c200 - 0x2c200: 0x6c029620, 0x2c201: 0x6c029820, 0x2c202: 0x6c029a20, 0x2c203: 0x6c029c20, - 0x2c204: 0x6c029e20, 0x2c205: 0x6c02a020, 0x2c206: 0x6c02a220, 0x2c207: 0x6c02a420, - 0x2c208: 0x6c02a620, 0x2c209: 0x6c02a820, 0x2c20a: 0x6c02aa20, 0x2c20b: 0x6c02ac20, - 0x2c20c: 0x6c02ae20, 0x2c20d: 0x6c02b020, 0x2c20e: 0x6c02b220, 0x2c20f: 0x6c02b420, - 0x2c210: 0x6c02b620, 0x2c211: 0x6c02b820, 0x2c212: 0x6c02ba20, 0x2c213: 0x6c02bc20, - 0x2c214: 0x6c05c820, 0x2c215: 0x6c05ca20, 0x2c216: 0x6c05cc20, 0x2c217: 0x6c05ce20, - 0x2c218: 0x6c05d020, 0x2c219: 0x6c05d220, 0x2c21a: 0x6c05d420, 0x2c21b: 0x6c05d620, - 0x2c21c: 0x6c05d820, 0x2c21d: 0x6c05da20, 0x2c21e: 0x6c05dc20, 0x2c21f: 0x6c05de20, - 0x2c220: 0x6c05e020, 0x2c221: 0x6c05e220, 0x2c222: 0x6c05e420, 0x2c223: 0x6c05e620, - 0x2c224: 0x6c05e820, 0x2c225: 0x6c05ea20, 0x2c226: 0x6c05ec20, 0x2c227: 0x6c05ee20, - 0x2c228: 0x6c05f020, 0x2c229: 0x6c05f220, 0x2c22a: 0x6c05f420, 0x2c22b: 0x6c05f620, - 0x2c22c: 0x6c05f820, 0x2c22d: 0x6c05fa20, 0x2c22e: 0x6c0b7a20, 0x2c22f: 0x6c0b7c20, - 0x2c230: 0x6c0b7e20, 0x2c231: 0x6c0b8020, 0x2c232: 0x6c0b8220, 0x2c233: 0x6c0b8420, - 0x2c234: 0x6c0b8620, 0x2c235: 0x6c0b8820, 0x2c236: 0x6c0b8a20, 0x2c237: 0x6c0b8c20, - 0x2c238: 0x6c0b8e20, 0x2c239: 0x6c0b9020, 0x2c23a: 0x6c0b9220, 0x2c23b: 0x6c0b9420, - 0x2c23c: 0x6c0b9620, 0x2c23d: 0x6c0b9820, 0x2c23e: 0x6c0b9a20, 0x2c23f: 0x6c0b9c20, - // Block 0xb09, offset 0x2c240 - 0x2c240: 0x6c0b9e20, 0x2c241: 0x6c0ba020, 0x2c242: 0x6c0ba220, 0x2c243: 0x6c0ba420, - 0x2c244: 0x6c0ba620, 0x2c245: 0x6c0ba820, 0x2c246: 0x6c0baa20, 0x2c247: 0x6c0bac20, - 0x2c248: 0x6c0bae20, 0x2c249: 0x6c0bb020, 0x2c24a: 0x6c0bb220, 0x2c24b: 0x6c0bb420, - 0x2c24c: 0x6c0bb620, 0x2c24d: 0x6c0bb820, 0x2c24e: 0x6c0bba20, 0x2c24f: 0x6c0bbc20, - 0x2c250: 0x6c0bbe20, 0x2c251: 0x6c0bc020, 0x2c252: 0x6c0bc220, 0x2c253: 0x6c0bc420, - 0x2c254: 0x6c0bc620, 0x2c255: 0x6c0bc820, 0x2c256: 0x6c0bca20, 0x2c257: 0x6c0bcc20, - 0x2c258: 0x6c0bce20, 0x2c259: 0x6c0bd020, 0x2c25a: 0x6c0bd220, 0x2c25b: 0x6c0bd420, - 0x2c25c: 0x6c0bd620, 0x2c25d: 0x6c0bd820, 0x2c25e: 0x6c0bda20, 0x2c25f: 0x6c0bdc20, - 0x2c260: 0x6c0bde20, 0x2c261: 0x6c0be020, 0x2c262: 0x6c0be220, 0x2c263: 0x6c0be420, - 0x2c264: 0x6c0be620, 0x2c265: 0x6c0be820, 0x2c266: 0x6c0bea20, 0x2c267: 0x6c0bec20, - 0x2c268: 0x6c0bee20, 0x2c269: 0x6c0bf020, 0x2c26a: 0x6c0bf220, 0x2c26b: 0x6c0bf420, - 0x2c26c: 0x6c0bf620, 0x2c26d: 0x6c165620, 0x2c26e: 0x6c165820, 0x2c26f: 0x6c165a20, - 0x2c270: 0x6c165c20, 0x2c271: 0x6c165e20, 0x2c272: 0x6c166020, 0x2c273: 0x6c166220, - 0x2c274: 0x6c166420, 0x2c275: 0x6c166620, 0x2c276: 0x6c166820, 0x2c277: 0x6c166a20, - 0x2c278: 0x6c166c20, 0x2c279: 0x6c166e20, 0x2c27a: 0x6c167020, 0x2c27b: 0x6c167220, - 0x2c27c: 0x6c167420, 0x2c27d: 0x6c167620, 0x2c27e: 0x6c167820, 0x2c27f: 0x6c167a20, - // Block 0xb0a, offset 0x2c280 - 0x2c280: 0x6c167c20, 0x2c281: 0x6c167e20, 0x2c282: 0x6c168020, 0x2c283: 0x6c168220, - 0x2c284: 0x6c168420, 0x2c285: 0x6c168620, 0x2c286: 0x6c168820, 0x2c287: 0x6c168a20, - 0x2c288: 0x6c168c20, 0x2c289: 0x6c168e20, 0x2c28a: 0x6c169020, 0x2c28b: 0x6c169220, - 0x2c28c: 0x6c292020, 0x2c28d: 0x6c169420, 0x2c28e: 0x6c169620, 0x2c28f: 0x6c169820, - 0x2c290: 0x6c169a20, 0x2c291: 0x6c169c20, 0x2c292: 0x6c169e20, 0x2c293: 0x6c16a020, - 0x2c294: 0x6c16a220, 0x2c295: 0x6c16a420, 0x2c296: 0x6c16a620, 0x2c297: 0x6c16a820, - 0x2c298: 0x6c16aa20, 0x2c299: 0x6c16ac20, 0x2c29a: 0x6c16ae20, 0x2c29b: 0x6c16b020, - 0x2c29c: 0x6c16b220, 0x2c29d: 0x6c16b420, 0x2c29e: 0x6c16b620, 0x2c29f: 0x6c16b820, - 0x2c2a0: 0x6c16ba20, 0x2c2a1: 0x6c16bc20, 0x2c2a2: 0x6c16be20, 0x2c2a3: 0x6c16c020, - 0x2c2a4: 0x6c0bf820, 0x2c2a5: 0x6c16c220, 0x2c2a6: 0x6c16c420, 0x2c2a7: 0x6c16c620, - 0x2c2a8: 0x6c16c820, 0x2c2a9: 0x6c293e20, 0x2c2aa: 0x6c294020, 0x2c2ab: 0x6c294220, - 0x2c2ac: 0x6c294420, 0x2c2ad: 0x6c294620, 0x2c2ae: 0x6c294820, 0x2c2af: 0x6c294a20, - 0x2c2b0: 0x6c294c20, 0x2c2b1: 0x6c294e20, 0x2c2b2: 0x6c295020, 0x2c2b3: 0x6c295220, - 0x2c2b4: 0x6c295420, 0x2c2b5: 0x6c295620, 0x2c2b6: 0x6c295820, 0x2c2b7: 0x6c295a20, - 0x2c2b8: 0x6c295c20, 0x2c2b9: 0x6c295e20, 0x2c2ba: 0x6c296020, 0x2c2bb: 0x6c296220, - 0x2c2bc: 0x6c296420, 0x2c2bd: 0x6c296620, 0x2c2be: 0x6c296820, 0x2c2bf: 0x6c296a20, - // Block 0xb0b, offset 0x2c2c0 - 0x2c2c0: 0x6c296c20, 0x2c2c1: 0x6c296e20, 0x2c2c2: 0x6c297020, 0x2c2c3: 0x6c297220, - 0x2c2c4: 0x6c297420, 0x2c2c5: 0x6c297620, 0x2c2c6: 0x6c297820, 0x2c2c7: 0x6c297a20, - 0x2c2c8: 0x6c297c20, 0x2c2c9: 0x6c297e20, 0x2c2ca: 0x6c298020, 0x2c2cb: 0x6c298220, - 0x2c2cc: 0x6c298420, 0x2c2cd: 0x6c298620, 0x2c2ce: 0x6c298820, 0x2c2cf: 0x6c298a20, - 0x2c2d0: 0x6c298c20, 0x2c2d1: 0x6c298e20, 0x2c2d2: 0x6c299020, 0x2c2d3: 0x6c299220, - 0x2c2d4: 0x6c299420, 0x2c2d5: 0x6c299620, 0x2c2d6: 0x6c299820, 0x2c2d7: 0x6c299a20, - 0x2c2d8: 0x6c299c20, 0x2c2d9: 0x6c299e20, 0x2c2da: 0x6c29a020, 0x2c2db: 0x6c29a220, - 0x2c2dc: 0x6c29a420, 0x2c2dd: 0x6c29a620, 0x2c2de: 0x6c29a820, 0x2c2df: 0x6c29aa20, - 0x2c2e0: 0x6c29ac20, 0x2c2e1: 0x6c29ae20, 0x2c2e2: 0x6c29b020, 0x2c2e3: 0x6c29b220, - 0x2c2e4: 0x6c29b420, 0x2c2e5: 0x6c29b620, 0x2c2e6: 0x6c29b820, 0x2c2e7: 0x6c29ba20, - 0x2c2e8: 0x6c29bc20, 0x2c2e9: 0x6c29be20, 0x2c2ea: 0x6c29c020, 0x2c2eb: 0x6c29c220, - 0x2c2ec: 0x6c29c420, 0x2c2ed: 0x6c29c620, 0x2c2ee: 0x6c435e20, 0x2c2ef: 0x6c436020, - 0x2c2f0: 0x6c436220, 0x2c2f1: 0x6c436420, 0x2c2f2: 0x6c436620, 0x2c2f3: 0x6c436820, - 0x2c2f4: 0x6c436a20, 0x2c2f5: 0x6c436c20, 0x2c2f6: 0x6c436e20, 0x2c2f7: 0x6c437020, - 0x2c2f8: 0x6c437220, 0x2c2f9: 0x6c437420, 0x2c2fa: 0x6c437620, 0x2c2fb: 0x6c437820, - 0x2c2fc: 0x6c437a20, 0x2c2fd: 0x6c437c20, 0x2c2fe: 0x6c437e20, 0x2c2ff: 0x6c438020, - // Block 0xb0c, offset 0x2c300 - 0x2c300: 0x6c438220, 0x2c301: 0x6c438420, 0x2c302: 0x6c438620, 0x2c303: 0x6c438820, - 0x2c304: 0x6c438a20, 0x2c305: 0x6c438c20, 0x2c306: 0x6c438e20, 0x2c307: 0x6c439020, - 0x2c308: 0x6c439220, 0x2c309: 0x6c439420, 0x2c30a: 0x6c439620, 0x2c30b: 0x6c439820, - 0x2c30c: 0x6c439a20, 0x2c30d: 0x6c439c20, 0x2c30e: 0x6c439e20, 0x2c30f: 0x6c43a020, - 0x2c310: 0x6c43a220, 0x2c311: 0x6c43a420, 0x2c312: 0x6c43a620, 0x2c313: 0x6c43a820, - 0x2c314: 0x6c43aa20, 0x2c315: 0x6c43ac20, 0x2c316: 0x6c43ae20, 0x2c317: 0x6c43b020, - 0x2c318: 0x6c43b220, 0x2c319: 0x6c43b420, 0x2c31a: 0x6c43b620, 0x2c31b: 0x6c43b820, - 0x2c31c: 0x6c43ba20, 0x2c31d: 0x6c43bc20, 0x2c31e: 0x6c43be20, 0x2c31f: 0x6c43c020, - 0x2c320: 0x6c43c220, 0x2c321: 0x6c43c420, 0x2c322: 0x6c43c620, 0x2c323: 0x6c43c820, - 0x2c324: 0x6c43ca20, 0x2c325: 0x6c43cc20, 0x2c326: 0x6c43ce20, 0x2c327: 0x6c43d020, - 0x2c328: 0x6c43d220, 0x2c329: 0x6c43d420, 0x2c32a: 0x6c43d620, 0x2c32b: 0x6c43d820, - 0x2c32c: 0x6c43da20, 0x2c32d: 0x6c43dc20, 0x2c32e: 0x6c642e20, 0x2c32f: 0x6c643020, - 0x2c330: 0x6c643220, 0x2c331: 0x6c643420, 0x2c332: 0x6c643620, 0x2c333: 0x6c643820, - 0x2c334: 0x6c643a20, 0x2c335: 0x6c643c20, 0x2c336: 0x6c643e20, 0x2c337: 0x6c644020, - 0x2c338: 0x6c644220, 0x2c339: 0x6c644420, 0x2c33a: 0x6c644620, 0x2c33b: 0x6c644820, - 0x2c33c: 0x6c644a20, 0x2c33d: 0x6c644c20, 0x2c33e: 0x6c644e20, 0x2c33f: 0x6c645020, - // Block 0xb0d, offset 0x2c340 - 0x2c340: 0x6c645220, 0x2c341: 0x6c645420, 0x2c342: 0x6c645620, 0x2c343: 0x6c645820, - 0x2c344: 0x6c645a20, 0x2c345: 0x6c645c20, 0x2c346: 0x6c645e20, 0x2c347: 0x6c646020, - 0x2c348: 0x6c646220, 0x2c349: 0x6c646420, 0x2c34a: 0x6c646620, 0x2c34b: 0x6c646820, - 0x2c34c: 0x6c646a20, 0x2c34d: 0x6c646c20, 0x2c34e: 0x6c646e20, 0x2c34f: 0x6c647020, - 0x2c350: 0x6c647220, 0x2c351: 0x6c647420, 0x2c352: 0x6c647620, 0x2c353: 0x6c647820, - 0x2c354: 0x6c647a20, 0x2c355: 0x6c647c20, 0x2c356: 0x6c647e20, 0x2c357: 0x6c648020, - 0x2c358: 0x6c648220, 0x2c359: 0x6c648420, 0x2c35a: 0x6c648620, 0x2c35b: 0x6c648820, - 0x2c35c: 0x6c648a20, 0x2c35d: 0x6c648c20, 0x2c35e: 0x6c648e20, 0x2c35f: 0x6c649020, - 0x2c360: 0x6c649220, 0x2c361: 0x6c649420, 0x2c362: 0x6c649620, 0x2c363: 0x6c649820, - 0x2c364: 0x6c649a20, 0x2c365: 0x6c649c20, 0x2c366: 0x6c649e20, 0x2c367: 0x6c64a020, - 0x2c368: 0x6c64a220, 0x2c369: 0x6c64a420, 0x2c36a: 0x6c64a620, 0x2c36b: 0x6c64a820, - 0x2c36c: 0x6c64aa20, 0x2c36d: 0x6c64ac20, 0x2c36e: 0x6c64ae20, 0x2c36f: 0x6c64b020, - 0x2c370: 0x6c64b220, 0x2c371: 0x6c64b420, 0x2c372: 0x6c64b620, 0x2c373: 0x6c64b820, - 0x2c374: 0x6c64ba20, 0x2c375: 0x6c64bc20, 0x2c376: 0x6c64be20, 0x2c377: 0x6c64c020, - 0x2c378: 0x6c64c220, 0x2c379: 0x6c64c420, 0x2c37a: 0x6c64c620, 0x2c37b: 0x6c64c820, - 0x2c37c: 0x6c64ca20, 0x2c37d: 0x6c64cc20, 0x2c37e: 0x6c64ce20, 0x2c37f: 0x6c64d020, - // Block 0xb0e, offset 0x2c380 - 0x2c380: 0x6c8b4a20, 0x2c381: 0x6c8b4c20, 0x2c382: 0x6c8b4e20, 0x2c383: 0x6c8b5020, - 0x2c384: 0x6c8b5220, 0x2c385: 0x6c8b5420, 0x2c386: 0x6c8b5620, 0x2c387: 0x6c8b5820, - 0x2c388: 0x6c8b5a20, 0x2c389: 0x6c8b5c20, 0x2c38a: 0x6c8b5e20, 0x2c38b: 0x6c8b6020, - 0x2c38c: 0x6c8b6220, 0x2c38d: 0x6c8b6420, 0x2c38e: 0x6c8b6620, 0x2c38f: 0x6c8b6820, - 0x2c390: 0x6c8b6a20, 0x2c391: 0x6c8b6c20, 0x2c392: 0x6c8b6e20, 0x2c393: 0x6c8b7020, - 0x2c394: 0x6c8b7220, 0x2c395: 0x6c8b7420, 0x2c396: 0x6c656e20, 0x2c397: 0x6c8b7620, - 0x2c398: 0x6c8b7820, 0x2c399: 0x6c8b7a20, 0x2c39a: 0x6c8b7c20, 0x2c39b: 0x6c8b7e20, - 0x2c39c: 0x6c8b8020, 0x2c39d: 0x6c8b8220, 0x2c39e: 0x6c8b8420, 0x2c39f: 0x6c8b8620, - 0x2c3a0: 0x6c8b8820, 0x2c3a1: 0x6c8b8a20, 0x2c3a2: 0x6c8b8c20, 0x2c3a3: 0x6c8b8e20, - 0x2c3a4: 0x6c8b9020, 0x2c3a5: 0x6c8b9220, 0x2c3a6: 0x6c8b9420, 0x2c3a7: 0x6c8b9620, - 0x2c3a8: 0x6cb7d820, 0x2c3a9: 0x6c8b9820, 0x2c3aa: 0x6c8b9a20, 0x2c3ab: 0x6c8b9c20, - 0x2c3ac: 0x6c8b9e20, 0x2c3ad: 0x6c8ba020, 0x2c3ae: 0x6c8ba220, 0x2c3af: 0x6c8ba420, - 0x2c3b0: 0x6c8ba620, 0x2c3b1: 0x6c8ba820, 0x2c3b2: 0x6c8baa20, 0x2c3b3: 0x6c8bac20, - 0x2c3b4: 0x6c8bae20, 0x2c3b5: 0x6c8bb020, 0x2c3b6: 0x6c8bb220, 0x2c3b7: 0x6c8bb420, - 0x2c3b8: 0x6c8bb620, 0x2c3b9: 0x6c8bb820, 0x2c3ba: 0x6c8bba20, 0x2c3bb: 0x6c8bbc20, - 0x2c3bc: 0x6c8bbe20, 0x2c3bd: 0x6c8bc020, 0x2c3be: 0x6c8bc220, 0x2c3bf: 0x6c8bc420, - // Block 0xb0f, offset 0x2c3c0 - 0x2c3c0: 0x6cb7ea20, 0x2c3c1: 0x6cb7ec20, 0x2c3c2: 0x6cb7ee20, 0x2c3c3: 0x6cb7f020, - 0x2c3c4: 0x6cb7f220, 0x2c3c5: 0x6cb7f420, 0x2c3c6: 0x6cb7f620, 0x2c3c7: 0x6cb7f820, - 0x2c3c8: 0x6cb7fa20, 0x2c3c9: 0x6cb7fc20, 0x2c3ca: 0x6cb7fe20, 0x2c3cb: 0x6cb80020, - 0x2c3cc: 0x6cb80220, 0x2c3cd: 0x6cb80420, 0x2c3ce: 0x6cb80620, 0x2c3cf: 0x6cb80820, - 0x2c3d0: 0x6cb80a20, 0x2c3d1: 0x6cb80c20, 0x2c3d2: 0x6cb80e20, 0x2c3d3: 0x6cb81020, - 0x2c3d4: 0x6cb81220, 0x2c3d5: 0x6cb81420, 0x2c3d6: 0x6cb81620, 0x2c3d7: 0x6cb81820, - 0x2c3d8: 0x6cb81a20, 0x2c3d9: 0x6cb81c20, 0x2c3da: 0x6cb81e20, 0x2c3db: 0x6cb82020, - 0x2c3dc: 0x6cb82220, 0x2c3dd: 0x6cb82420, 0x2c3de: 0x6cb82620, 0x2c3df: 0x6cb82820, - 0x2c3e0: 0x6cb82a20, 0x2c3e1: 0x6cb82c20, 0x2c3e2: 0x6cb82e20, 0x2c3e3: 0x6cb83020, - 0x2c3e4: 0x6cb83220, 0x2c3e5: 0x6cb83420, 0x2c3e6: 0x6cb83620, 0x2c3e7: 0x6cb83820, - 0x2c3e8: 0x6cb83a20, 0x2c3e9: 0x6cb83c20, 0x2c3ea: 0x6ce90c20, 0x2c3eb: 0x6ce90e20, - 0x2c3ec: 0x6ce91020, 0x2c3ed: 0x6ce91220, 0x2c3ee: 0x6ce91420, 0x2c3ef: 0x6ce91620, - 0x2c3f0: 0x6ce91820, 0x2c3f1: 0x6ce91a20, 0x2c3f2: 0x6ce91c20, 0x2c3f3: 0x6ce91e20, - 0x2c3f4: 0x6ce92020, 0x2c3f5: 0x6ce92220, 0x2c3f6: 0x6ce92420, 0x2c3f7: 0x6ce92620, - 0x2c3f8: 0x6ce92820, 0x2c3f9: 0x6ce92a20, 0x2c3fa: 0x6ce92c20, 0x2c3fb: 0x6ce92e20, - 0x2c3fc: 0x6ce93020, 0x2c3fd: 0x6ce93220, 0x2c3fe: 0x6ce93420, 0x2c3ff: 0x6ce93620, - // Block 0xb10, offset 0x2c400 - 0x2c400: 0x6ce93820, 0x2c401: 0x6ce93a20, 0x2c402: 0x6ce93c20, 0x2c403: 0x6ce93e20, - 0x2c404: 0x6ce94020, 0x2c405: 0x6ce94220, 0x2c406: 0x6ce94420, 0x2c407: 0x6ce94620, - 0x2c408: 0x6ce94820, 0x2c409: 0x6ce94a20, 0x2c40a: 0x6ce94c20, 0x2c40b: 0x6ce94e20, - 0x2c40c: 0x6ce95020, 0x2c40d: 0x6ce95220, 0x2c40e: 0x6d18cc20, 0x2c40f: 0x6d18ce20, - 0x2c410: 0x6d18d020, 0x2c411: 0x6d18d220, 0x2c412: 0x6d18d420, 0x2c413: 0x6d18d620, - 0x2c414: 0x6d18d820, 0x2c415: 0x6d18da20, 0x2c416: 0x6d18dc20, 0x2c417: 0x6d18de20, - 0x2c418: 0x6d18e020, 0x2c419: 0x6d18e220, 0x2c41a: 0x6d18e420, 0x2c41b: 0x6d18e620, - 0x2c41c: 0x6d18e820, 0x2c41d: 0x6d18ea20, 0x2c41e: 0x6d18ec20, 0x2c41f: 0x6d18ee20, - 0x2c420: 0x6d18f020, 0x2c421: 0x6d18f220, 0x2c422: 0x6d18f420, 0x2c423: 0x6d18f620, - 0x2c424: 0x6d18f820, 0x2c425: 0x6d18fa20, 0x2c426: 0x6d18fc20, 0x2c427: 0x6d18fe20, - 0x2c428: 0x6d190020, 0x2c429: 0x6d190220, 0x2c42a: 0x6d190420, 0x2c42b: 0x6d190620, - 0x2c42c: 0x6d190820, 0x2c42d: 0x6d190a20, 0x2c42e: 0x6d190c20, 0x2c42f: 0x6d190e20, - 0x2c430: 0x6d191020, 0x2c431: 0x6d191220, 0x2c432: 0x6d19b420, 0x2c433: 0x6d191420, - 0x2c434: 0x6d191620, 0x2c435: 0x6d47c220, 0x2c436: 0x6d47c420, 0x2c437: 0x6d191820, - 0x2c438: 0x6d47c620, 0x2c439: 0x6d47c820, 0x2c43a: 0x6d47ca20, 0x2c43b: 0x6d47cc20, - 0x2c43c: 0x6d47ce20, 0x2c43d: 0x6d47d020, 0x2c43e: 0x6d47d220, 0x2c43f: 0x6d47d420, - // Block 0xb11, offset 0x2c440 - 0x2c440: 0x6d47d620, 0x2c441: 0x6d47d820, 0x2c442: 0x6d47da20, 0x2c443: 0x6d47dc20, - 0x2c444: 0x6d47de20, 0x2c445: 0x6d47e020, 0x2c446: 0x6d47e220, 0x2c447: 0x6d47e420, - 0x2c448: 0x6d47e620, 0x2c449: 0x6d47e820, 0x2c44a: 0x6d47ea20, 0x2c44b: 0x6d47ec20, - 0x2c44c: 0x6d47ee20, 0x2c44d: 0x6d47f020, 0x2c44e: 0x6d47f220, 0x2c44f: 0x6d47f420, - 0x2c450: 0x6d75fc20, 0x2c451: 0x6d75fe20, 0x2c452: 0x6d760020, 0x2c453: 0x6d760220, - 0x2c454: 0x6d760420, 0x2c455: 0x6d760620, 0x2c456: 0x6d760820, 0x2c457: 0x6d760a20, - 0x2c458: 0x6d760c20, 0x2c459: 0x6d760e20, 0x2c45a: 0x6d761020, 0x2c45b: 0x6d761220, - 0x2c45c: 0x6d761420, 0x2c45d: 0x6d761620, 0x2c45e: 0x6d761820, 0x2c45f: 0x6d9fae20, - 0x2c460: 0x6d9fb020, 0x2c461: 0x6d9fb220, 0x2c462: 0x6d9fb420, 0x2c463: 0x6d9fb620, - 0x2c464: 0x6d9fb820, 0x2c465: 0x6d9fba20, 0x2c466: 0x6d9fbc20, 0x2c467: 0x6d9fbe20, - 0x2c468: 0x6d9fc020, 0x2c469: 0x6d9fc220, 0x2c46a: 0x6d9fc420, 0x2c46b: 0x6d761a20, - 0x2c46c: 0x6d9fc620, 0x2c46d: 0x6dc24e20, 0x2c46e: 0x6dc25020, 0x2c46f: 0x6dc25220, - 0x2c470: 0x6d485a20, 0x2c471: 0x6dc25420, 0x2c472: 0x6da00220, 0x2c473: 0x6de01420, - 0x2c474: 0x6de01620, 0x2c475: 0x6de01820, 0x2c476: 0x6df87420, 0x2c477: 0x6e0c4220, - 0x2c478: 0x6e0c4420, 0x2c479: 0x6e0c4620, 0x2c47a: 0x6e0c4820, 0x2c47b: 0x6e1c0820, - 0x2c47c: 0x6e1c0a20, 0x2c47d: 0x6e284c20, 0x2c47e: 0x6e318820, 0x2c47f: 0x6c008420, - // Block 0xb12, offset 0x2c480 - 0x2c480: 0x6c014620, 0x2c481: 0x6c02c620, 0x2c482: 0x6c02c820, 0x2c483: 0x6c02ca20, - 0x2c484: 0x6c060e20, 0x2c485: 0x6c061420, 0x2c486: 0x6c0c4620, 0x2c487: 0x6c0c4820, - 0x2c488: 0x6c0c4a20, 0x2c489: 0x6c0c4c20, 0x2c48a: 0x6c0c4e20, 0x2c48b: 0x6c173420, - 0x2c48c: 0x6c173620, 0x2c48d: 0x6c173820, 0x2c48e: 0x6c173a20, 0x2c48f: 0x6c173c20, - 0x2c490: 0x6c173e20, 0x2c491: 0x6c174020, 0x2c492: 0x6c2a2e20, 0x2c493: 0x6c2a3020, - 0x2c494: 0x6c2a3220, 0x2c495: 0x6c2a3420, 0x2c496: 0x6c2a3620, 0x2c497: 0x6c445a20, - 0x2c498: 0x6c445c20, 0x2c499: 0x6c445e20, 0x2c49a: 0x6c657220, 0x2c49b: 0x6c657420, - 0x2c49c: 0x6c8c6820, 0x2c49d: 0x6c8c6a20, 0x2c49e: 0x6c8c6c20, 0x2c49f: 0x6cb8c620, - 0x2c4a0: 0x6cb8c820, 0x2c4a1: 0x6ce9e220, 0x2c4a2: 0x6d19b620, 0x2c4a3: 0x6d766620, - 0x2c4a4: 0x6e0c6420, 0x2c4a5: 0x6c008620, 0x2c4a6: 0x6c014820, 0x2c4a7: 0x6c02ce20, - 0x2c4a8: 0x6c0c5a20, 0x2c4a9: 0x6c2a4c20, 0x2c4aa: 0x6c446c20, 0x2c4ab: 0x6c008820, - 0x2c4ac: 0x6c02d620, 0x2c4ad: 0x6c02d820, 0x2c4ae: 0x6c02da20, 0x2c4af: 0x6c02dc20, - 0x2c4b0: 0x6c061c20, 0x2c4b1: 0x6c0c6820, 0x2c4b2: 0x6c0c6a20, 0x2c4b3: 0x6c0c6c20, - 0x2c4b4: 0x6c0c6e20, 0x2c4b5: 0x6c176220, 0x2c4b6: 0x6c2a5020, 0x2c4b7: 0x6c2a5220, - 0x2c4b8: 0x6c2a5420, 0x2c4b9: 0x6c447620, 0x2c4ba: 0x6c659020, 0x2c4bb: 0x6c447820, - 0x2c4bc: 0x6c659220, 0x2c4bd: 0x6c8c7e20, 0x2c4be: 0x6ce9f420, 0x2c4bf: 0x6ce9f620, - // Block 0xb13, offset 0x2c4c0 - 0x2c4c0: 0x6d767a20, 0x2c4c1: 0x6dc29820, 0x2c4c2: 0x6c008c20, 0x2c4c3: 0x6c02e620, - 0x2c4c4: 0x6c02e820, 0x2c4c5: 0x6c02ea20, 0x2c4c6: 0x6c02ec20, 0x2c4c7: 0x6c02ee20, - 0x2c4c8: 0x6c02f020, 0x2c4c9: 0x6c062220, 0x2c4ca: 0x6c062420, 0x2c4cb: 0x6c062620, - 0x2c4cc: 0x6c062820, 0x2c4cd: 0x6c0c7820, 0x2c4ce: 0x6c0c7a20, 0x2c4cf: 0x6c177020, - 0x2c4d0: 0x6c2a5e20, 0x2c4d1: 0x6c448620, 0x2c4d2: 0x6c448820, 0x2c4d3: 0x6c659a20, - 0x2c4d4: 0x6c659c20, 0x2c4d5: 0x6c8c8820, 0x2c4d6: 0x6c008e20, 0x2c4d7: 0x6c02fe20, - 0x2c4d8: 0x6c030020, 0x2c4d9: 0x6c063e20, 0x2c4da: 0x6c064020, 0x2c4db: 0x6c0c8620, - 0x2c4dc: 0x6c0c8820, 0x2c4dd: 0x6c178020, 0x2c4de: 0x6c2a6a20, 0x2c4df: 0x6c449220, - 0x2c4e0: 0x6c449420, 0x2c4e1: 0x6c65a420, 0x2c4e2: 0x6c65a620, 0x2c4e3: 0x6c65a820, - 0x2c4e4: 0x6c65aa20, 0x2c4e5: 0x6c65ac20, 0x2c4e6: 0x6c65ae20, 0x2c4e7: 0x6c65b020, - 0x2c4e8: 0x6c8c9020, 0x2c4e9: 0x6d19e020, 0x2c4ea: 0x6d768820, 0x2c4eb: 0x6c009020, - 0x2c4ec: 0x6c064a20, 0x2c4ed: 0x6c064c20, 0x2c4ee: 0x6c064e20, 0x2c4ef: 0x6c065020, - 0x2c4f0: 0x6c0c9c20, 0x2c4f1: 0x6c0c9e20, 0x2c4f2: 0x6c0ca020, 0x2c4f3: 0x6c0ca220, - 0x2c4f4: 0x6c0ca420, 0x2c4f5: 0x6c179020, 0x2c4f6: 0x6c179220, 0x2c4f7: 0x6c179420, - 0x2c4f8: 0x6c179620, 0x2c4f9: 0x6c179820, 0x2c4fa: 0x6c179a20, 0x2c4fb: 0x6c179c20, - 0x2c4fc: 0x6c2a7e20, 0x2c4fd: 0x6c2a8020, 0x2c4fe: 0x6c2a8220, 0x2c4ff: 0x6c2a8420, - // Block 0xb14, offset 0x2c500 - 0x2c500: 0x6c2a8620, 0x2c501: 0x6c44a420, 0x2c502: 0x6c44a620, 0x2c503: 0x6c44a820, - 0x2c504: 0x6c65c820, 0x2c505: 0x6c65ca20, 0x2c506: 0x6c65cc20, 0x2c507: 0x6c65ce20, - 0x2c508: 0x6c65d020, 0x2c509: 0x6c65d220, 0x2c50a: 0x6c65d420, 0x2c50b: 0x6c65d620, - 0x2c50c: 0x6c65d820, 0x2c50d: 0x6c65da20, 0x2c50e: 0x6c65dc20, 0x2c50f: 0x6c8c9820, - 0x2c510: 0x6c8c9a20, 0x2c511: 0x6c8c9c20, 0x2c512: 0x6cb91020, 0x2c513: 0x6cb91220, - 0x2c514: 0x6cb91420, 0x2c515: 0x6cb91620, 0x2c516: 0x6cb91820, 0x2c517: 0x6cea1420, - 0x2c518: 0x6d19ec20, 0x2c519: 0x6d487820, 0x2c51a: 0x6d487a20, 0x2c51b: 0x6d487c20, - 0x2c51c: 0x6d487e20, 0x2c51d: 0x6d768e20, 0x2c51e: 0x6d769020, 0x2c51f: 0x6da01a20, - 0x2c520: 0x6c009420, 0x2c521: 0x6c015220, 0x2c522: 0x6c015420, 0x2c523: 0x6c015620, - 0x2c524: 0x6c030a20, 0x2c525: 0x6c065a20, 0x2c526: 0x6c065c20, 0x2c527: 0x6c065e20, - 0x2c528: 0x6c0cba20, 0x2c529: 0x6c0cbc20, 0x2c52a: 0x6c0cbe20, 0x2c52b: 0x6c0cc020, - 0x2c52c: 0x6c17b820, 0x2c52d: 0x6c2a9820, 0x2c52e: 0x6c2a9a20, 0x2c52f: 0x6c2a9c20, - 0x2c530: 0x6c8cc020, 0x2c531: 0x6cb93020, 0x2c532: 0x6cb93220, 0x2c533: 0x6d19fe20, - 0x2c534: 0x6d1a0020, 0x2c535: 0x6c009a20, 0x2c536: 0x6c031c20, 0x2c537: 0x6c066820, - 0x2c538: 0x6c066a20, 0x2c539: 0x6c066c20, 0x2c53a: 0x6c066e20, 0x2c53b: 0x6c067020, - 0x2c53c: 0x6c0cd420, 0x2c53d: 0x6c2ab220, 0x2c53e: 0x6c44d820, 0x2c53f: 0x6cb94020, - // Block 0xb15, offset 0x2c540 - 0x2c540: 0x6c00a020, 0x2c541: 0x6c00a220, 0x2c542: 0x6c00a420, 0x2c543: 0x6c015a20, - 0x2c544: 0x6c015c20, 0x2c545: 0x6c032420, 0x2c546: 0x6c032620, 0x2c547: 0x6c032820, - 0x2c548: 0x6c032a20, 0x2c549: 0x6c068220, 0x2c54a: 0x6c068420, 0x2c54b: 0x6c068620, - 0x2c54c: 0x6c068820, 0x2c54d: 0x6c068a20, 0x2c54e: 0x6c0cea20, 0x2c54f: 0x6c0cec20, - 0x2c550: 0x6c0cee20, 0x2c551: 0x6c0cf020, 0x2c552: 0x6c0cf220, 0x2c553: 0x6c0cf420, - 0x2c554: 0x6c0cf620, 0x2c555: 0x6c0cf820, 0x2c556: 0x6c0cfa20, 0x2c557: 0x6c0cfc20, - 0x2c558: 0x6c0cfe20, 0x2c559: 0x6c0d0020, 0x2c55a: 0x6c0d0220, 0x2c55b: 0x6c0d0420, - 0x2c55c: 0x6c17de20, 0x2c55d: 0x6c17e020, 0x2c55e: 0x6c17e220, 0x2c55f: 0x6c17e420, - 0x2c560: 0x6c17e620, 0x2c561: 0x6c17e820, 0x2c562: 0x6c17ea20, 0x2c563: 0x6c17ec20, - 0x2c564: 0x6c17ee20, 0x2c565: 0x6c17f020, 0x2c566: 0x6c17f220, 0x2c567: 0x6c17f420, - 0x2c568: 0x6c17f620, 0x2c569: 0x6c17f820, 0x2c56a: 0x6c17fa20, 0x2c56b: 0x6c17fc20, - 0x2c56c: 0x6c17fe20, 0x2c56d: 0x6c180020, 0x2c56e: 0x6c2ac820, 0x2c56f: 0x6c2aca20, - 0x2c570: 0x6c2acc20, 0x2c571: 0x6c2ace20, 0x2c572: 0x6c2ad020, 0x2c573: 0x6c2ad220, - 0x2c574: 0x6c2ad420, 0x2c575: 0x6c2ad620, 0x2c576: 0x6c2ad820, 0x2c577: 0x6c2ada20, - 0x2c578: 0x6c2adc20, 0x2c579: 0x6c2ade20, 0x2c57a: 0x6c2ae020, 0x2c57b: 0x6c2ae220, - 0x2c57c: 0x6c2ae420, 0x2c57d: 0x6c2ae620, 0x2c57e: 0x6c2ae820, 0x2c57f: 0x6c2aea20, - // Block 0xb16, offset 0x2c580 - 0x2c580: 0x6c2aec20, 0x2c581: 0x6c2aee20, 0x2c582: 0x6c2af020, 0x2c583: 0x6c44ea20, - 0x2c584: 0x6c44ec20, 0x2c585: 0x6c44ee20, 0x2c586: 0x6c2b4a20, 0x2c587: 0x6c44f020, - 0x2c588: 0x6c44f220, 0x2c589: 0x6c44f420, 0x2c58a: 0x6c44f620, 0x2c58b: 0x6c44f820, - 0x2c58c: 0x6c44fa20, 0x2c58d: 0x6c44fc20, 0x2c58e: 0x6c44fe20, 0x2c58f: 0x6c450020, - 0x2c590: 0x6c450220, 0x2c591: 0x6c450420, 0x2c592: 0x6c661c20, 0x2c593: 0x6c661e20, - 0x2c594: 0x6c662020, 0x2c595: 0x6c662220, 0x2c596: 0x6c662420, 0x2c597: 0x6c662620, - 0x2c598: 0x6c662820, 0x2c599: 0x6c662a20, 0x2c59a: 0x6c662c20, 0x2c59b: 0x6c662e20, - 0x2c59c: 0x6c663020, 0x2c59d: 0x6c663220, 0x2c59e: 0x6c663420, 0x2c59f: 0x6c663620, - 0x2c5a0: 0x6c663820, 0x2c5a1: 0x6c663a20, 0x2c5a2: 0x6c663c20, 0x2c5a3: 0x6c663e20, - 0x2c5a4: 0x6c664020, 0x2c5a5: 0x6c664220, 0x2c5a6: 0x6c664420, 0x2c5a7: 0x6c664620, - 0x2c5a8: 0x6c8ce420, 0x2c5a9: 0x6cb95020, 0x2c5aa: 0x6c8ce620, 0x2c5ab: 0x6c8ce820, - 0x2c5ac: 0x6c8cea20, 0x2c5ad: 0x6c8cec20, 0x2c5ae: 0x6c8cee20, 0x2c5af: 0x6c8cf020, - 0x2c5b0: 0x6c8cf220, 0x2c5b1: 0x6c8cf420, 0x2c5b2: 0x6cb95220, 0x2c5b3: 0x6cb95420, - 0x2c5b4: 0x6cb95620, 0x2c5b5: 0x6cb95820, 0x2c5b6: 0x6c8cf620, 0x2c5b7: 0x6cea4020, - 0x2c5b8: 0x6cea4220, 0x2c5b9: 0x6cea4420, 0x2c5ba: 0x6cea4620, 0x2c5bb: 0x6cea4820, - 0x2c5bc: 0x6cea4a20, 0x2c5bd: 0x6cea4c20, 0x2c5be: 0x6cea4e20, 0x2c5bf: 0x6cea5020, - // Block 0xb17, offset 0x2c5c0 - 0x2c5c0: 0x6d1a2620, 0x2c5c1: 0x6d1a2820, 0x2c5c2: 0x6d1a2a20, 0x2c5c3: 0x6d1a2c20, - 0x2c5c4: 0x6d1a2e20, 0x2c5c5: 0x6d489820, 0x2c5c6: 0x6d489a20, 0x2c5c7: 0x6d489c20, - 0x2c5c8: 0x6d489e20, 0x2c5c9: 0x6d48a020, 0x2c5ca: 0x6d48a220, 0x2c5cb: 0x6d48a420, - 0x2c5cc: 0x6d48a620, 0x2c5cd: 0x6d48a820, 0x2c5ce: 0x6d48aa20, 0x2c5cf: 0x6d48ac20, - 0x2c5d0: 0x6d76aa20, 0x2c5d1: 0x6d76ac20, 0x2c5d2: 0x6d76ae20, 0x2c5d3: 0x6d76b020, - 0x2c5d4: 0x6d76b220, 0x2c5d5: 0x6da03420, 0x2c5d6: 0x6de05820, 0x2c5d7: 0x6e0c7220, - 0x2c5d8: 0x6e0c7420, 0x2c5d9: 0x6e286020, 0x2c5da: 0x6e286220, 0x2c5db: 0x6c00a820, - 0x2c5dc: 0x6c016020, 0x2c5dd: 0x6c033c20, 0x2c5de: 0x6c033e20, 0x2c5df: 0x6c06a420, - 0x2c5e0: 0x6c06a620, 0x2c5e1: 0x6c06a820, 0x2c5e2: 0x6c06aa20, 0x2c5e3: 0x6c0d4020, - 0x2c5e4: 0x6c0d4220, 0x2c5e5: 0x6c0d4420, 0x2c5e6: 0x6c0d4620, 0x2c5e7: 0x6c0d4820, - 0x2c5e8: 0x6c0d4a20, 0x2c5e9: 0x6c183c20, 0x2c5ea: 0x6c183e20, 0x2c5eb: 0x6c184020, - 0x2c5ec: 0x6c184220, 0x2c5ed: 0x6c184420, 0x2c5ee: 0x6c184620, 0x2c5ef: 0x6c184820, - 0x2c5f0: 0x6c184a20, 0x2c5f1: 0x6c184c20, 0x2c5f2: 0x6c184e20, 0x2c5f3: 0x6c185020, - 0x2c5f4: 0x6c185220, 0x2c5f5: 0x6c2b5220, 0x2c5f6: 0x6c2b5420, 0x2c5f7: 0x6c2b5620, - 0x2c5f8: 0x6c2b5820, 0x2c5f9: 0x6c2b5a20, 0x2c5fa: 0x6c2b5c20, 0x2c5fb: 0x6c2b5e20, - 0x2c5fc: 0x6c2b6020, 0x2c5fd: 0x6c2b6220, 0x2c5fe: 0x6c2b6420, 0x2c5ff: 0x6c2b6620, - // Block 0xb18, offset 0x2c600 - 0x2c600: 0x6c455020, 0x2c601: 0x6c455220, 0x2c602: 0x6c455420, 0x2c603: 0x6c455620, - 0x2c604: 0x6c455820, 0x2c605: 0x6c455a20, 0x2c606: 0x6c2b8620, 0x2c607: 0x6c455c20, - 0x2c608: 0x6c455e20, 0x2c609: 0x6c456020, 0x2c60a: 0x6c456220, 0x2c60b: 0x6c456420, - 0x2c60c: 0x6c66ac20, 0x2c60d: 0x6c66ae20, 0x2c60e: 0x6c66b020, 0x2c60f: 0x6c66b220, - 0x2c610: 0x6c66b420, 0x2c611: 0x6c66b620, 0x2c612: 0x6c8d4420, 0x2c613: 0x6c8d4620, - 0x2c614: 0x6c8d4820, 0x2c615: 0x6c8d4a20, 0x2c616: 0x6c8d4c20, 0x2c617: 0x6c9b7c20, - 0x2c618: 0x6c8d4e20, 0x2c619: 0x6c8d5020, 0x2c61a: 0x6c8d5220, 0x2c61b: 0x6cb9ac20, - 0x2c61c: 0x6cb9ae20, 0x2c61d: 0x6cb9b020, 0x2c61e: 0x6cb9b220, 0x2c61f: 0x6cea9220, - 0x2c620: 0x6cea9420, 0x2c621: 0x6cea9620, 0x2c622: 0x6cea9820, 0x2c623: 0x6cea9a20, - 0x2c624: 0x6cea9c20, 0x2c625: 0x6cea9e20, 0x2c626: 0x6ceaa020, 0x2c627: 0x6ceaa220, - 0x2c628: 0x6d1a7820, 0x2c629: 0x6d1a7a20, 0x2c62a: 0x6d1a7c20, 0x2c62b: 0x6d1a7e20, - 0x2c62c: 0x6d1a8020, 0x2c62d: 0x6d1a8220, 0x2c62e: 0x6d48da20, 0x2c62f: 0x6d48dc20, - 0x2c630: 0x6d48de20, 0x2c631: 0x6d48e020, 0x2c632: 0x6d48e220, 0x2c633: 0x6d76da20, - 0x2c634: 0x6da05c20, 0x2c635: 0x6da05e20, 0x2c636: 0x6da06020, 0x2c637: 0x6de06020, - 0x2c638: 0x6de06620, 0x2c639: 0x6c00aa20, 0x2c63a: 0x6c016420, 0x2c63b: 0x6c034620, - 0x2c63c: 0x6c034820, 0x2c63d: 0x6c034a20, 0x2c63e: 0x6c034c20, 0x2c63f: 0x6c034e20, - // Block 0xb19, offset 0x2c640 - 0x2c640: 0x6c035020, 0x2c641: 0x6c035220, 0x2c642: 0x6c035420, 0x2c643: 0x6c06b420, - 0x2c644: 0x6c06b620, 0x2c645: 0x6c06b820, 0x2c646: 0x6c06ba20, 0x2c647: 0x6c06bc20, - 0x2c648: 0x6c0d5e20, 0x2c649: 0x6c187820, 0x2c64a: 0x6c2b8820, 0x2c64b: 0x6c2b8a20, - 0x2c64c: 0x6c2b8c20, 0x2c64d: 0x6c458220, 0x2c64e: 0x6c66de20, 0x2c64f: 0x6c8d6c20, - 0x2c650: 0x6c8d6e20, 0x2c651: 0x6cb9d620, 0x2c652: 0x6cb9d820, 0x2c653: 0x6c8d7e20, - 0x2c654: 0x6d48f220, 0x2c655: 0x6c00ac20, 0x2c656: 0x6c035a20, 0x2c657: 0x6c06c620, - 0x2c658: 0x6c8d8220, 0x2c659: 0x6c8d8420, 0x2c65a: 0x6c00b020, 0x2c65b: 0x6c06ca20, - 0x2c65c: 0x6c06cc20, 0x2c65d: 0x6c06ce20, 0x2c65e: 0x6c06d020, 0x2c65f: 0x6c0d6820, - 0x2c660: 0x6c0d6a20, 0x2c661: 0x6c0d6c20, 0x2c662: 0x6c0d6e20, 0x2c663: 0x6c189020, - 0x2c664: 0x6c189220, 0x2c665: 0x6c189420, 0x2c666: 0x6c2b9e20, 0x2c667: 0x6c45a020, - 0x2c668: 0x6c45a220, 0x2c669: 0x6c45a420, 0x2c66a: 0x6c66fc20, 0x2c66b: 0x6c66fe20, - 0x2c66c: 0x6c8d8820, 0x2c66d: 0x6c8d8a20, 0x2c66e: 0x6c8d8c20, 0x2c66f: 0x6cead820, - 0x2c670: 0x6d1abc20, 0x2c671: 0x6d1abe20, 0x2c672: 0x6d1ac020, 0x2c673: 0x6d48f620, - 0x2c674: 0x6d76ea20, 0x2c675: 0x6da07820, 0x2c676: 0x6de06820, 0x2c677: 0x6df8ba20, - 0x2c678: 0x6c00b420, 0x2c679: 0x6c036020, 0x2c67a: 0x6c036220, 0x2c67b: 0x6c18a620, - 0x2c67c: 0x6c2ba820, 0x2c67d: 0x6c45c020, 0x2c67e: 0x6c8d9220, 0x2c67f: 0x6c8d9420, - // Block 0xb1a, offset 0x2c680 - 0x2c680: 0x6c8d9620, 0x2c681: 0x6c00b620, 0x2c682: 0x6c016820, 0x2c683: 0x6c016a20, - 0x2c684: 0x6c00e620, 0x2c685: 0x6c036820, 0x2c686: 0x6c036a20, 0x2c687: 0x6c036c20, - 0x2c688: 0x6c036e20, 0x2c689: 0x6c06d220, 0x2c68a: 0x6c06d420, 0x2c68b: 0x6c0d8420, - 0x2c68c: 0x6c06d620, 0x2c68d: 0x6c0d8620, 0x2c68e: 0x6c0d8820, 0x2c68f: 0x6c0d8a20, - 0x2c690: 0x6c0d8c20, 0x2c691: 0x6c2bac20, 0x2c692: 0x6c2bae20, 0x2c693: 0x6c2bb020, - 0x2c694: 0x6c2bb220, 0x2c695: 0x6c2bb420, 0x2c696: 0x6c2bb620, 0x2c697: 0x6c45c820, - 0x2c698: 0x6c45ca20, 0x2c699: 0x6c8d9820, 0x2c69a: 0x6cb9f220, 0x2c69b: 0x6e0c8420, - 0x2c69c: 0x6c00ba20, 0x2c69d: 0x6c037620, 0x2c69e: 0x6c037820, 0x2c69f: 0x6c06e220, - 0x2c6a0: 0x6c06e420, 0x2c6a1: 0x6c06e620, 0x2c6a2: 0x6c06e820, 0x2c6a3: 0x6c18c020, - 0x2c6a4: 0x6c18c220, 0x2c6a5: 0x6c2bd620, 0x2c6a6: 0x6c2bd820, 0x2c6a7: 0x6c2bda20, - 0x2c6a8: 0x6c8da820, 0x2c6a9: 0x6c00bc20, 0x2c6aa: 0x6c017220, 0x2c6ab: 0x6c017420, - 0x2c6ac: 0x6c037c20, 0x2c6ad: 0x6c06ec20, 0x2c6ae: 0x6c06ee20, 0x2c6af: 0x6c06f020, - 0x2c6b0: 0x6c0db820, 0x2c6b1: 0x6c0dba20, 0x2c6b2: 0x6c18d220, 0x2c6b3: 0x6c18d420, - 0x2c6b4: 0x6c18d620, 0x2c6b5: 0x6c18d820, 0x2c6b6: 0x6c2bf420, 0x2c6b7: 0x6c2bf620, - 0x2c6b8: 0x6c2bf820, 0x2c6b9: 0x6c2bfa20, 0x2c6ba: 0x6c2bfc20, 0x2c6bb: 0x6c45e420, - 0x2c6bc: 0x6c45e620, 0x2c6bd: 0x6c45e820, 0x2c6be: 0x6c8db620, 0x2c6bf: 0x6c673020, - // Block 0xb1b, offset 0x2c6c0 - 0x2c6c0: 0x6ceaf820, 0x2c6c1: 0x6ceafa20, 0x2c6c2: 0x6c00be20, 0x2c6c3: 0x6c038620, - 0x2c6c4: 0x6c038820, 0x2c6c5: 0x6c038a20, 0x2c6c6: 0x6c038c20, 0x2c6c7: 0x6c06f420, - 0x2c6c8: 0x6c06f620, 0x2c6c9: 0x6c06f820, 0x2c6ca: 0x6c0dce20, 0x2c6cb: 0x6c0dd020, - 0x2c6cc: 0x6c0dd220, 0x2c6cd: 0x6c0dd420, 0x2c6ce: 0x6c18e220, 0x2c6cf: 0x6c18e420, - 0x2c6d0: 0x6c18e620, 0x2c6d1: 0x6c18e820, 0x2c6d2: 0x6c2c0420, 0x2c6d3: 0x6c2c0620, - 0x2c6d4: 0x6c2c0820, 0x2c6d5: 0x6c2c0a20, 0x2c6d6: 0x6c45f820, 0x2c6d7: 0x6c45fa20, - 0x2c6d8: 0x6c45fc20, 0x2c6d9: 0x6c45fe20, 0x2c6da: 0x6c460020, 0x2c6db: 0x6c460220, - 0x2c6dc: 0x6c673820, 0x2c6dd: 0x6c673a20, 0x2c6de: 0x6c673c20, 0x2c6df: 0x6c673e20, - 0x2c6e0: 0x6c8db820, 0x2c6e1: 0x6c8dba20, 0x2c6e2: 0x6c8dbc20, 0x2c6e3: 0x6c8dbe20, - 0x2c6e4: 0x6cba0c20, 0x2c6e5: 0x6cba0e20, 0x2c6e6: 0x6cba1020, 0x2c6e7: 0x6cba1220, - 0x2c6e8: 0x6cba1420, 0x2c6e9: 0x6c8dc020, 0x2c6ea: 0x6ceb0420, 0x2c6eb: 0x6ceb0620, - 0x2c6ec: 0x6d1ae020, 0x2c6ed: 0x6d1ae220, 0x2c6ee: 0x6d1ae420, 0x2c6ef: 0x6ceb2020, - 0x2c6f0: 0x6d1ae620, 0x2c6f1: 0x6d491a20, 0x2c6f2: 0x6d491c20, 0x2c6f3: 0x6da08820, - 0x2c6f4: 0x6de07020, 0x2c6f5: 0x6e451620, 0x2c6f6: 0x6c00c020, 0x2c6f7: 0x6c039220, - 0x2c6f8: 0x6c039420, 0x2c6f9: 0x6c039620, 0x2c6fa: 0x6c070a20, 0x2c6fb: 0x6c070c20, - 0x2c6fc: 0x6c070e20, 0x2c6fd: 0x6c0df220, 0x2c6fe: 0x6c0df420, 0x2c6ff: 0x6c190420, - // Block 0xb1c, offset 0x2c700 - 0x2c700: 0x6c2c2820, 0x2c701: 0x6c2c2a20, 0x2c702: 0x6c2c2c20, 0x2c703: 0x6c8de620, - 0x2c704: 0x6c8de820, 0x2c705: 0x6cba2e20, 0x2c706: 0x6d1b1420, 0x2c707: 0x6d493c20, - 0x2c708: 0x6c00c420, 0x2c709: 0x6c017e20, 0x2c70a: 0x6c03a020, 0x2c70b: 0x6c03a220, - 0x2c70c: 0x6c03a420, 0x2c70d: 0x6c03a620, 0x2c70e: 0x6c03a820, 0x2c70f: 0x6c071a20, - 0x2c710: 0x6c071c20, 0x2c711: 0x6c071e20, 0x2c712: 0x6c0e0820, 0x2c713: 0x6c190e20, - 0x2c714: 0x6c2c3c20, 0x2c715: 0x6c2c3e20, 0x2c716: 0x6c2c4020, 0x2c717: 0x6c2c4220, - 0x2c718: 0x6c2c4420, 0x2c719: 0x6c464020, 0x2c71a: 0x6c464220, 0x2c71b: 0x6c464420, - 0x2c71c: 0x6c464620, 0x2c71d: 0x6c464820, 0x2c71e: 0x6c677c20, 0x2c71f: 0x6c677e20, - 0x2c720: 0x6ceb3220, 0x2c721: 0x6d76fc20, 0x2c722: 0x6dc2f620, 0x2c723: 0x6c018020, - 0x2c724: 0x6c073620, 0x2c725: 0x6c073820, 0x2c726: 0x6c073a20, 0x2c727: 0x6c073c20, - 0x2c728: 0x6c073e20, 0x2c729: 0x6c074020, 0x2c72a: 0x6c074220, 0x2c72b: 0x6c074420, - 0x2c72c: 0x6c074620, 0x2c72d: 0x6c074820, 0x2c72e: 0x6c074a20, 0x2c72f: 0x6c074c20, - 0x2c730: 0x6c074e20, 0x2c731: 0x6c075020, 0x2c732: 0x6c075220, 0x2c733: 0x6c075420, - 0x2c734: 0x6c075620, 0x2c735: 0x6c075820, 0x2c736: 0x6c075a20, 0x2c737: 0x6c075c20, - 0x2c738: 0x6c075e20, 0x2c739: 0x6c076020, 0x2c73a: 0x6c076220, 0x2c73b: 0x6c076420, - 0x2c73c: 0x6c076620, 0x2c73d: 0x6c076820, 0x2c73e: 0x6c076a20, 0x2c73f: 0x6c0e2220, - // Block 0xb1d, offset 0x2c740 - 0x2c740: 0x6c0e2420, 0x2c741: 0x6c0e2620, 0x2c742: 0x6c0e2820, 0x2c743: 0x6c0e2a20, - 0x2c744: 0x6c0e2c20, 0x2c745: 0x6c0e2e20, 0x2c746: 0x6c0e3020, 0x2c747: 0x6c0e3220, - 0x2c748: 0x6c0e3420, 0x2c749: 0x6c0e3620, 0x2c74a: 0x6c0e3820, 0x2c74b: 0x6c0e3a20, - 0x2c74c: 0x6c0e3c20, 0x2c74d: 0x6c0e3e20, 0x2c74e: 0x6c0e4020, 0x2c74f: 0x6c0e4220, - 0x2c750: 0x6c0e4420, 0x2c751: 0x6c0e4620, 0x2c752: 0x6c0e4820, 0x2c753: 0x6c0e4a20, - 0x2c754: 0x6c0e4c20, 0x2c755: 0x6c0e4e20, 0x2c756: 0x6c0e5020, 0x2c757: 0x6c0e5220, - 0x2c758: 0x6c193e20, 0x2c759: 0x6c194020, 0x2c75a: 0x6c194220, 0x2c75b: 0x6c194420, - 0x2c75c: 0x6c194620, 0x2c75d: 0x6c194820, 0x2c75e: 0x6c194a20, 0x2c75f: 0x6c194c20, - 0x2c760: 0x6c194e20, 0x2c761: 0x6c195020, 0x2c762: 0x6c195220, 0x2c763: 0x6c195420, - 0x2c764: 0x6c195620, 0x2c765: 0x6c195820, 0x2c766: 0x6c195a20, 0x2c767: 0x6c195c20, - 0x2c768: 0x6c195e20, 0x2c769: 0x6c196020, 0x2c76a: 0x6c196220, 0x2c76b: 0x6c196420, - 0x2c76c: 0x6c196620, 0x2c76d: 0x6c196820, 0x2c76e: 0x6c196a20, 0x2c76f: 0x6c196c20, - 0x2c770: 0x6c196e20, 0x2c771: 0x6c197020, 0x2c772: 0x6c197220, 0x2c773: 0x6c197420, - 0x2c774: 0x6c197620, 0x2c775: 0x6c197820, 0x2c776: 0x6c197a20, 0x2c777: 0x6c197c20, - 0x2c778: 0x6c197e20, 0x2c779: 0x6c198020, 0x2c77a: 0x6c198220, 0x2c77b: 0x6c198420, - 0x2c77c: 0x6c198620, 0x2c77d: 0x6c198820, 0x2c77e: 0x6c198a20, 0x2c77f: 0x6c198c20, - // Block 0xb1e, offset 0x2c780 - 0x2c780: 0x6c198e20, 0x2c781: 0x6c199020, 0x2c782: 0x6c199220, 0x2c783: 0x6c199420, - 0x2c784: 0x6c199620, 0x2c785: 0x6c199820, 0x2c786: 0x6c199a20, 0x2c787: 0x6c199c20, - 0x2c788: 0x6c199e20, 0x2c789: 0x6c19a020, 0x2c78a: 0x6c19a220, 0x2c78b: 0x6c19a420, - 0x2c78c: 0x6c19a620, 0x2c78d: 0x6c19a820, 0x2c78e: 0x6c19aa20, 0x2c78f: 0x6c19ac20, - 0x2c790: 0x6c19ae20, 0x2c791: 0x6c19b020, 0x2c792: 0x6c19b220, 0x2c793: 0x6c19b420, - 0x2c794: 0x6c19b620, 0x2c795: 0x6c19b820, 0x2c796: 0x6c19ba20, 0x2c797: 0x6c19bc20, - 0x2c798: 0x6c19be20, 0x2c799: 0x6c19c020, 0x2c79a: 0x6c19c220, 0x2c79b: 0x6c19c420, - 0x2c79c: 0x6c19c620, 0x2c79d: 0x6c2c6820, 0x2c79e: 0x6c2c6a20, 0x2c79f: 0x6c2c6c20, - 0x2c7a0: 0x6c2c6e20, 0x2c7a1: 0x6c2c7020, 0x2c7a2: 0x6c2c7220, 0x2c7a3: 0x6c2c7420, - 0x2c7a4: 0x6c2c7620, 0x2c7a5: 0x6c2c7820, 0x2c7a6: 0x6c2c7a20, 0x2c7a7: 0x6c2c7c20, - 0x2c7a8: 0x6c2c7e20, 0x2c7a9: 0x6c2c8020, 0x2c7aa: 0x6c2c8220, 0x2c7ab: 0x6c2c8420, - 0x2c7ac: 0x6c2c8620, 0x2c7ad: 0x6c2c8820, 0x2c7ae: 0x6c2c8a20, 0x2c7af: 0x6c2c8c20, - 0x2c7b0: 0x6c466420, 0x2c7b1: 0x6c2c8e20, 0x2c7b2: 0x6c466620, 0x2c7b3: 0x6c2c9020, - 0x2c7b4: 0x6c2c9220, 0x2c7b5: 0x6c2c9420, 0x2c7b6: 0x6c2c9620, 0x2c7b7: 0x6c2c9820, - 0x2c7b8: 0x6c2c9a20, 0x2c7b9: 0x6c2c9c20, 0x2c7ba: 0x6c2c9e20, 0x2c7bb: 0x6c2ca020, - 0x2c7bc: 0x6c2ca220, 0x2c7bd: 0x6c2ca420, 0x2c7be: 0x6c2ca620, 0x2c7bf: 0x6c2ca820, - // Block 0xb1f, offset 0x2c7c0 - 0x2c7c0: 0x6c2caa20, 0x2c7c1: 0x6c2cac20, 0x2c7c2: 0x6c2cae20, 0x2c7c3: 0x6c2cb020, - 0x2c7c4: 0x6c2cb220, 0x2c7c5: 0x6c2cb420, 0x2c7c6: 0x6c2cb620, 0x2c7c7: 0x6c2cb820, - 0x2c7c8: 0x6c2cba20, 0x2c7c9: 0x6c2cbc20, 0x2c7ca: 0x6c2cbe20, 0x2c7cb: 0x6c2cc020, - 0x2c7cc: 0x6c2cc220, 0x2c7cd: 0x6c2cc420, 0x2c7ce: 0x6c2cc620, 0x2c7cf: 0x6c2cc820, - 0x2c7d0: 0x6c2cca20, 0x2c7d1: 0x6c2ccc20, 0x2c7d2: 0x6c2cce20, 0x2c7d3: 0x6c2cd020, - 0x2c7d4: 0x6c2cd220, 0x2c7d5: 0x6c2cd420, 0x2c7d6: 0x6c2cd620, 0x2c7d7: 0x6c2cd820, - 0x2c7d8: 0x6c2cda20, 0x2c7d9: 0x6c2cdc20, 0x2c7da: 0x6c2cde20, 0x2c7db: 0x6c2ce020, - 0x2c7dc: 0x6c2ce220, 0x2c7dd: 0x6c2ce420, 0x2c7de: 0x6c468620, 0x2c7df: 0x6c468820, - 0x2c7e0: 0x6c468a20, 0x2c7e1: 0x6c468c20, 0x2c7e2: 0x6c468e20, 0x2c7e3: 0x6c469020, - 0x2c7e4: 0x6c469220, 0x2c7e5: 0x6c469420, 0x2c7e6: 0x6c469620, 0x2c7e7: 0x6c469820, - 0x2c7e8: 0x6c469a20, 0x2c7e9: 0x6c469c20, 0x2c7ea: 0x6c469e20, 0x2c7eb: 0x6c46a020, - 0x2c7ec: 0x6c46a220, 0x2c7ed: 0x6c46a420, 0x2c7ee: 0x6c46a620, 0x2c7ef: 0x6c46a820, - 0x2c7f0: 0x6c46aa20, 0x2c7f1: 0x6c46ac20, 0x2c7f2: 0x6c46ae20, 0x2c7f3: 0x6c46b020, - 0x2c7f4: 0x6c46b220, 0x2c7f5: 0x6c46b420, 0x2c7f6: 0x6c46b620, 0x2c7f7: 0x6c46b820, - 0x2c7f8: 0x6c46ba20, 0x2c7f9: 0x6c46bc20, 0x2c7fa: 0x6c46be20, 0x2c7fb: 0x6c46c020, - 0x2c7fc: 0x6c46c220, 0x2c7fd: 0x6c46c420, 0x2c7fe: 0x6c46c620, 0x2c7ff: 0x6c46c820, - // Block 0xb20, offset 0x2c800 - 0x2c800: 0x6c46ca20, 0x2c801: 0x6c46cc20, 0x2c802: 0x6c46ce20, 0x2c803: 0x6c46d020, - 0x2c804: 0x6c46d220, 0x2c805: 0x6c46d420, 0x2c806: 0x6c46d620, 0x2c807: 0x6c46d820, - 0x2c808: 0x6c46da20, 0x2c809: 0x6c46dc20, 0x2c80a: 0x6c46de20, 0x2c80b: 0x6c46e020, - 0x2c80c: 0x6c46e220, 0x2c80d: 0x6c46e420, 0x2c80e: 0x6c46e620, 0x2c80f: 0x6c46e820, - 0x2c810: 0x6c46ea20, 0x2c811: 0x6c46ec20, 0x2c812: 0x6c46ee20, 0x2c813: 0x6c46f020, - 0x2c814: 0x6c46f220, 0x2c815: 0x6c46f420, 0x2c816: 0x6c46f620, 0x2c817: 0x6c46f820, - 0x2c818: 0x6c46fa20, 0x2c819: 0x6c46fc20, 0x2c81a: 0x6c46fe20, 0x2c81b: 0x6c470020, - 0x2c81c: 0x6c470220, 0x2c81d: 0x6c470420, 0x2c81e: 0x6c470620, 0x2c81f: 0x6c470820, - 0x2c820: 0x6c67ba20, 0x2c821: 0x6c67bc20, 0x2c822: 0x6c67be20, 0x2c823: 0x6c67c020, - 0x2c824: 0x6c67c220, 0x2c825: 0x6c67c420, 0x2c826: 0x6c67c620, 0x2c827: 0x6c67c820, - 0x2c828: 0x6c67ca20, 0x2c829: 0x6c67cc20, 0x2c82a: 0x6c67ce20, 0x2c82b: 0x6c67d020, - 0x2c82c: 0x6c67d220, 0x2c82d: 0x6c67d420, 0x2c82e: 0x6c67d620, 0x2c82f: 0x6c67d820, - 0x2c830: 0x6c67da20, 0x2c831: 0x6c67dc20, 0x2c832: 0x6c67de20, 0x2c833: 0x6c67e020, - 0x2c834: 0x6c67e220, 0x2c835: 0x6c67e420, 0x2c836: 0x6c67e620, 0x2c837: 0x6c67e820, - 0x2c838: 0x6c67ea20, 0x2c839: 0x6c67ec20, 0x2c83a: 0x6c67ee20, 0x2c83b: 0x6c67f020, - 0x2c83c: 0x6c67f220, 0x2c83d: 0x6c67f420, 0x2c83e: 0x6c67f620, 0x2c83f: 0x6c67f820, - // Block 0xb21, offset 0x2c840 - 0x2c840: 0x6c67fa20, 0x2c841: 0x6c67fc20, 0x2c842: 0x6c67fe20, 0x2c843: 0x6c680020, - 0x2c844: 0x6c680220, 0x2c845: 0x6c680420, 0x2c846: 0x6c680620, 0x2c847: 0x6c680820, - 0x2c848: 0x6c680a20, 0x2c849: 0x6c680c20, 0x2c84a: 0x6c680e20, 0x2c84b: 0x6c681020, - 0x2c84c: 0x6c8e1020, 0x2c84d: 0x6c681220, 0x2c84e: 0x6c681420, 0x2c84f: 0x6c681620, - 0x2c850: 0x6c681820, 0x2c851: 0x6c681a20, 0x2c852: 0x6c681c20, 0x2c853: 0x6c681e20, - 0x2c854: 0x6c682020, 0x2c855: 0x6c682220, 0x2c856: 0x6c682420, 0x2c857: 0x6c682620, - 0x2c858: 0x6c682820, 0x2c859: 0x6c682a20, 0x2c85a: 0x6c682c20, 0x2c85b: 0x6c682e20, - 0x2c85c: 0x6c683020, 0x2c85d: 0x6c683220, 0x2c85e: 0x6c683420, 0x2c85f: 0x6c683620, - 0x2c860: 0x6c683820, 0x2c861: 0x6c683a20, 0x2c862: 0x6c683c20, 0x2c863: 0x6c683e20, - 0x2c864: 0x6c684020, 0x2c865: 0x6c684220, 0x2c866: 0x6c684420, 0x2c867: 0x6c684620, - 0x2c868: 0x6c8e4020, 0x2c869: 0x6c8e4220, 0x2c86a: 0x6c8e4420, 0x2c86b: 0x6c8e4620, - 0x2c86c: 0x6c8e4820, 0x2c86d: 0x6c8e4a20, 0x2c86e: 0x6c8e4c20, 0x2c86f: 0x6c8e4e20, - 0x2c870: 0x6c8e5020, 0x2c871: 0x6c8e5220, 0x2c872: 0x6c8e5420, 0x2c873: 0x6c8e5620, - 0x2c874: 0x6c8e5820, 0x2c875: 0x6c8e5a20, 0x2c876: 0x6c8e5c20, 0x2c877: 0x6c8e5e20, - 0x2c878: 0x6c8e6020, 0x2c879: 0x6c8e6220, 0x2c87a: 0x6c8e6420, 0x2c87b: 0x6c8e6620, - 0x2c87c: 0x6c8e6820, 0x2c87d: 0x6c8e6a20, 0x2c87e: 0x6c8e6c20, 0x2c87f: 0x6c8e6e20, - // Block 0xb22, offset 0x2c880 - 0x2c880: 0x6c8e7020, 0x2c881: 0x6c8e7220, 0x2c882: 0x6c8e7420, 0x2c883: 0x6c8e7620, - 0x2c884: 0x6c8e7820, 0x2c885: 0x6c8e7a20, 0x2c886: 0x6c8e7c20, 0x2c887: 0x6c8e7e20, - 0x2c888: 0x6c8e8020, 0x2c889: 0x6c8e8220, 0x2c88a: 0x6c8e8420, 0x2c88b: 0x6c8e8620, - 0x2c88c: 0x6c8e8820, 0x2c88d: 0x6c8e8a20, 0x2c88e: 0x6c8e8c20, 0x2c88f: 0x6c8e8e20, - 0x2c890: 0x6c8e9020, 0x2c891: 0x6c8e9220, 0x2c892: 0x6c8e9420, 0x2c893: 0x6c8e9620, - 0x2c894: 0x6c8e9820, 0x2c895: 0x6c8e9a20, 0x2c896: 0x6c8e9c20, 0x2c897: 0x6c8e9e20, - 0x2c898: 0x6c8ea020, 0x2c899: 0x6cba9420, 0x2c89a: 0x6c8ea220, 0x2c89b: 0x6c8ea420, - 0x2c89c: 0x6c8ea620, 0x2c89d: 0x6c8ea820, 0x2c89e: 0x6c8eaa20, 0x2c89f: 0x6c9aaa20, - 0x2c8a0: 0x6c8eac20, 0x2c8a1: 0x6c8eae20, 0x2c8a2: 0x6c8eb020, 0x2c8a3: 0x6c8eb220, - 0x2c8a4: 0x6c8eb420, 0x2c8a5: 0x6c8eb620, 0x2c8a6: 0x6c8eb820, 0x2c8a7: 0x6c8eba20, - 0x2c8a8: 0x6c8ebc20, 0x2c8a9: 0x6c8ebe20, 0x2c8aa: 0x6c8ec020, 0x2c8ab: 0x6c901820, - 0x2c8ac: 0x6c8ec220, 0x2c8ad: 0x6c8ec420, 0x2c8ae: 0x6c8ec620, 0x2c8af: 0x6c8ec820, - 0x2c8b0: 0x6c8eca20, 0x2c8b1: 0x6c8ecc20, 0x2c8b2: 0x6c8ece20, 0x2c8b3: 0x6c8ed020, - 0x2c8b4: 0x6c8ed220, 0x2c8b5: 0x6c8ed420, 0x2c8b6: 0x6c8ed620, 0x2c8b7: 0x6c8ed820, - 0x2c8b8: 0x6c8eda20, 0x2c8b9: 0x6c8edc20, 0x2c8ba: 0x6cba9620, 0x2c8bb: 0x6cba9820, - 0x2c8bc: 0x6cba9a20, 0x2c8bd: 0x6cba9c20, 0x2c8be: 0x6cba9e20, 0x2c8bf: 0x6cbaa020, - // Block 0xb23, offset 0x2c8c0 - 0x2c8c0: 0x6cbaa220, 0x2c8c1: 0x6cbaa420, 0x2c8c2: 0x6cbaa620, 0x2c8c3: 0x6cbaa820, - 0x2c8c4: 0x6cbaaa20, 0x2c8c5: 0x6cbaac20, 0x2c8c6: 0x6cbaae20, 0x2c8c7: 0x6cbab020, - 0x2c8c8: 0x6cbab220, 0x2c8c9: 0x6cbab420, 0x2c8ca: 0x6cbab620, 0x2c8cb: 0x6cbab820, - 0x2c8cc: 0x6cbaba20, 0x2c8cd: 0x6ceb6e20, 0x2c8ce: 0x6cbabc20, 0x2c8cf: 0x6cbabe20, - 0x2c8d0: 0x6cbac020, 0x2c8d1: 0x6cbac220, 0x2c8d2: 0x6cbac420, 0x2c8d3: 0x6cbac620, - 0x2c8d4: 0x6cbac820, 0x2c8d5: 0x6cbaca20, 0x2c8d6: 0x6cbacc20, 0x2c8d7: 0x6cbace20, - 0x2c8d8: 0x6cbad020, 0x2c8d9: 0x6cbad220, 0x2c8da: 0x6cbad420, 0x2c8db: 0x6cbad620, - 0x2c8dc: 0x6cbad820, 0x2c8dd: 0x6cbada20, 0x2c8de: 0x6cbadc20, 0x2c8df: 0x6cbade20, - 0x2c8e0: 0x6cbae020, 0x2c8e1: 0x6cbae220, 0x2c8e2: 0x6cbae420, 0x2c8e3: 0x6cbae620, - 0x2c8e4: 0x6cbae820, 0x2c8e5: 0x6cbaea20, 0x2c8e6: 0x6cbaec20, 0x2c8e7: 0x6cbaee20, - 0x2c8e8: 0x6cbaf020, 0x2c8e9: 0x6cbaf220, 0x2c8ea: 0x6cbaf420, 0x2c8eb: 0x6cbaf620, - 0x2c8ec: 0x6cbaf820, 0x2c8ed: 0x6cbafa20, 0x2c8ee: 0x6cbafc20, 0x2c8ef: 0x6cbafe20, - 0x2c8f0: 0x6cbb0020, 0x2c8f1: 0x6cbb0220, 0x2c8f2: 0x6cbb0420, 0x2c8f3: 0x6cbb0620, - 0x2c8f4: 0x6cbb0820, 0x2c8f5: 0x6cbb0a20, 0x2c8f6: 0x6c901a20, 0x2c8f7: 0x6cbb0c20, - 0x2c8f8: 0x6cbb0e20, 0x2c8f9: 0x6cbb1020, 0x2c8fa: 0x6cbb1220, 0x2c8fb: 0x6cbb1420, - 0x2c8fc: 0x6cbb1620, 0x2c8fd: 0x6cbb1820, 0x2c8fe: 0x6cbb1a20, 0x2c8ff: 0x6ceb7020, - // Block 0xb24, offset 0x2c900 - 0x2c900: 0x6ceb7220, 0x2c901: 0x6ceb7420, 0x2c902: 0x6ceb7620, 0x2c903: 0x6ceb7820, - 0x2c904: 0x6ceb7a20, 0x2c905: 0x6ceb7c20, 0x2c906: 0x6ceb7e20, 0x2c907: 0x6ceb8020, - 0x2c908: 0x6ceb8220, 0x2c909: 0x6ceb8420, 0x2c90a: 0x6ceb8620, 0x2c90b: 0x6ceb8820, - 0x2c90c: 0x6ceb8a20, 0x2c90d: 0x6ceb8c20, 0x2c90e: 0x6ceb8e20, 0x2c90f: 0x6ceb9020, - 0x2c910: 0x6ceb9220, 0x2c911: 0x6ceb9420, 0x2c912: 0x6ceb9620, 0x2c913: 0x6ceb9820, - 0x2c914: 0x6ceb9a20, 0x2c915: 0x6ceb9c20, 0x2c916: 0x6ceb9e20, 0x2c917: 0x6ceba020, - 0x2c918: 0x6ceba220, 0x2c919: 0x6ceba420, 0x2c91a: 0x6ceba620, 0x2c91b: 0x6ceba820, - 0x2c91c: 0x6cebaa20, 0x2c91d: 0x6cebac20, 0x2c91e: 0x6cbc3e20, 0x2c91f: 0x6cebae20, - 0x2c920: 0x6cebb020, 0x2c921: 0x6cebb220, 0x2c922: 0x6cebb420, 0x2c923: 0x6cebb620, - 0x2c924: 0x6cebb820, 0x2c925: 0x6cebba20, 0x2c926: 0x6cebbc20, 0x2c927: 0x6cebbe20, - 0x2c928: 0x6cebc020, 0x2c929: 0x6cebc220, 0x2c92a: 0x6cebc420, 0x2c92b: 0x6cebc620, - 0x2c92c: 0x6cebc820, 0x2c92d: 0x6cebca20, 0x2c92e: 0x6cebcc20, 0x2c92f: 0x6cebce20, - 0x2c930: 0x6cebd020, 0x2c931: 0x6cebd220, 0x2c932: 0x6cebd420, 0x2c933: 0x6cebd620, - 0x2c934: 0x6cebd820, 0x2c935: 0x6cebda20, 0x2c936: 0x6d1b5220, 0x2c937: 0x6d1b5420, - 0x2c938: 0x6d1b5620, 0x2c939: 0x6d1b5820, 0x2c93a: 0x6d1b5a20, 0x2c93b: 0x6d1b5c20, - 0x2c93c: 0x6d1b5e20, 0x2c93d: 0x6d1b6020, 0x2c93e: 0x6d1b6220, 0x2c93f: 0x6d1b6420, - // Block 0xb25, offset 0x2c940 - 0x2c940: 0x6d1b6620, 0x2c941: 0x6d1b6820, 0x2c942: 0x6d1b6a20, 0x2c943: 0x6d1b6c20, - 0x2c944: 0x6d1b6e20, 0x2c945: 0x6d1b7020, 0x2c946: 0x6d1b7220, 0x2c947: 0x6d1b7420, - 0x2c948: 0x6d1b7620, 0x2c949: 0x6d1b7820, 0x2c94a: 0x6d1b7a20, 0x2c94b: 0x6d1b7c20, - 0x2c94c: 0x6d1b7e20, 0x2c94d: 0x6d1b8020, 0x2c94e: 0x6d1b8220, 0x2c94f: 0x6d1b8420, - 0x2c950: 0x6d1b8620, 0x2c951: 0x6d1b8820, 0x2c952: 0x6d1b8a20, 0x2c953: 0x6d1b8c20, - 0x2c954: 0x6d1b8e20, 0x2c955: 0x6d1b9020, 0x2c956: 0x6d1b9220, 0x2c957: 0x6d1b9420, - 0x2c958: 0x6d1b9620, 0x2c959: 0x6d1b9820, 0x2c95a: 0x6d1b9a20, 0x2c95b: 0x6d1b9c20, - 0x2c95c: 0x6d1b9e20, 0x2c95d: 0x6d1ba020, 0x2c95e: 0x6d1ba220, 0x2c95f: 0x6d1cec20, - 0x2c960: 0x6d496220, 0x2c961: 0x6d1ba420, 0x2c962: 0x6d1ba620, 0x2c963: 0x6d1ba820, - 0x2c964: 0x6d1baa20, 0x2c965: 0x6d1bac20, 0x2c966: 0x6d1bae20, 0x2c967: 0x6d1bb020, - 0x2c968: 0x6d1cee20, 0x2c969: 0x6d496420, 0x2c96a: 0x6d496620, 0x2c96b: 0x6d496820, - 0x2c96c: 0x6d496a20, 0x2c96d: 0x6d496c20, 0x2c96e: 0x6d496e20, 0x2c96f: 0x6d497020, - 0x2c970: 0x6d497220, 0x2c971: 0x6d497420, 0x2c972: 0x6d497620, 0x2c973: 0x6d497820, - 0x2c974: 0x6d497a20, 0x2c975: 0x6d497c20, 0x2c976: 0x6d497e20, 0x2c977: 0x6d498020, - 0x2c978: 0x6d498220, 0x2c979: 0x6d498420, 0x2c97a: 0x6d498620, 0x2c97b: 0x6d498820, - 0x2c97c: 0x6d498a20, 0x2c97d: 0x6d498c20, 0x2c97e: 0x6d498e20, 0x2c97f: 0x6d499020, - // Block 0xb26, offset 0x2c980 - 0x2c980: 0x6d499220, 0x2c981: 0x6d499420, 0x2c982: 0x6d499620, 0x2c983: 0x6d499820, - 0x2c984: 0x6d499a20, 0x2c985: 0x6cbb1c20, 0x2c986: 0x6d499c20, 0x2c987: 0x6d499e20, - 0x2c988: 0x6d49a020, 0x2c989: 0x6d49a220, 0x2c98a: 0x6d49a420, 0x2c98b: 0x6d49a620, - 0x2c98c: 0x6d49a820, 0x2c98d: 0x6d49aa20, 0x2c98e: 0x6d49ac20, 0x2c98f: 0x6d49ae20, - 0x2c990: 0x6d49b020, 0x2c991: 0x6d1bb220, 0x2c992: 0x6d49b220, 0x2c993: 0x6d494c20, - 0x2c994: 0x6d49b420, 0x2c995: 0x6d590220, 0x2c996: 0x6d49b620, 0x2c997: 0x6d49b820, - 0x2c998: 0x6d49ba20, 0x2c999: 0x6d49bc20, 0x2c99a: 0x6d49be20, 0x2c99b: 0x6d49c020, - 0x2c99c: 0x6d49c220, 0x2c99d: 0x6d49c420, 0x2c99e: 0x6d772220, 0x2c99f: 0x6d772420, - 0x2c9a0: 0x6d772620, 0x2c9a1: 0x6d772820, 0x2c9a2: 0x6d772a20, 0x2c9a3: 0x6d772c20, - 0x2c9a4: 0x6d772e20, 0x2c9a5: 0x6d773020, 0x2c9a6: 0x6d773220, 0x2c9a7: 0x6d773420, - 0x2c9a8: 0x6d773620, 0x2c9a9: 0x6d773820, 0x2c9aa: 0x6d773a20, 0x2c9ab: 0x6d773c20, - 0x2c9ac: 0x6d773e20, 0x2c9ad: 0x6d774020, 0x2c9ae: 0x6d774220, 0x2c9af: 0x6d774420, - 0x2c9b0: 0x6d774620, 0x2c9b1: 0x6d774820, 0x2c9b2: 0x6d774a20, 0x2c9b3: 0x6d774c20, - 0x2c9b4: 0x6d49c620, 0x2c9b5: 0x6d774e20, 0x2c9b6: 0x6d775020, 0x2c9b7: 0x6d775220, - 0x2c9b8: 0x6d775420, 0x2c9b9: 0x6d775620, 0x2c9ba: 0x6d775820, 0x2c9bb: 0x6d775a20, - 0x2c9bc: 0x6d775c20, 0x2c9bd: 0x6da0a220, 0x2c9be: 0x6da0a420, 0x2c9bf: 0x6da0a620, - // Block 0xb27, offset 0x2c9c0 - 0x2c9c0: 0x6da0a820, 0x2c9c1: 0x6da0aa20, 0x2c9c2: 0x6da0ac20, 0x2c9c3: 0x6da0ae20, - 0x2c9c4: 0x6da0b020, 0x2c9c5: 0x6da0b220, 0x2c9c6: 0x6da0b420, 0x2c9c7: 0x6da0b620, - 0x2c9c8: 0x6da0b820, 0x2c9c9: 0x6da0ba20, 0x2c9ca: 0x6da0bc20, 0x2c9cb: 0x6da0be20, - 0x2c9cc: 0x6da0c020, 0x2c9cd: 0x6da0c220, 0x2c9ce: 0x6da0c420, 0x2c9cf: 0x6da0c620, - 0x2c9d0: 0x6da0c820, 0x2c9d1: 0x6da0ca20, 0x2c9d2: 0x6da0cc20, 0x2c9d3: 0x6da0ce20, - 0x2c9d4: 0x6dc30820, 0x2c9d5: 0x6dc30a20, 0x2c9d6: 0x6dc30c20, 0x2c9d7: 0x6dc30e20, - 0x2c9d8: 0x6dc31020, 0x2c9d9: 0x6dc31220, 0x2c9da: 0x6dc31420, 0x2c9db: 0x6dc31620, - 0x2c9dc: 0x6dc31820, 0x2c9dd: 0x6dc31a20, 0x2c9de: 0x6dc31c20, 0x2c9df: 0x6dc31e20, - 0x2c9e0: 0x6dc32020, 0x2c9e1: 0x6dc32220, 0x2c9e2: 0x6dc32420, 0x2c9e3: 0x6dc32620, - 0x2c9e4: 0x6dc32820, 0x2c9e5: 0x6de08420, 0x2c9e6: 0x6de08620, 0x2c9e7: 0x6de08820, - 0x2c9e8: 0x6de08a20, 0x2c9e9: 0x6de08c20, 0x2c9ea: 0x6de08e20, 0x2c9eb: 0x6de09020, - 0x2c9ec: 0x6de09220, 0x2c9ed: 0x6de09420, 0x2c9ee: 0x6dc3dc20, 0x2c9ef: 0x6de09620, - 0x2c9f0: 0x6de09820, 0x2c9f1: 0x6df8d020, 0x2c9f2: 0x6df8d220, 0x2c9f3: 0x6df8d420, - 0x2c9f4: 0x6df8d620, 0x2c9f5: 0x6df8d820, 0x2c9f6: 0x6df8da20, 0x2c9f7: 0x6df8dc20, - 0x2c9f8: 0x6df8de20, 0x2c9f9: 0x6df8e020, 0x2c9fa: 0x6e0c9020, 0x2c9fb: 0x6e0c9820, - 0x2c9fc: 0x6df92820, 0x2c9fd: 0x6e0c9a20, 0x2c9fe: 0x6e0c9c20, 0x2c9ff: 0x6e0c9e20, - // Block 0xb28, offset 0x2ca00 - 0x2ca00: 0x6e0ca020, 0x2ca01: 0x6e0ca220, 0x2ca02: 0x6e0ca420, 0x2ca03: 0x6e0ca620, - 0x2ca04: 0x6e0ca820, 0x2ca05: 0x6e1c3020, 0x2ca06: 0x6e1c3220, 0x2ca07: 0x6e1c3420, - 0x2ca08: 0x6e1c3620, 0x2ca09: 0x6e1c3820, 0x2ca0a: 0x6e1c3a20, 0x2ca0b: 0x6e1c3c20, - 0x2ca0c: 0x6e287620, 0x2ca0d: 0x6e0caa20, 0x2ca0e: 0x6e1c3e20, 0x2ca0f: 0x6e287820, - 0x2ca10: 0x6e287a20, 0x2ca11: 0x6e319e20, 0x2ca12: 0x6e31a020, 0x2ca13: 0x6e31a220, - 0x2ca14: 0x6e384820, 0x2ca15: 0x6e384a20, 0x2ca16: 0x6e428420, 0x2ca17: 0x6c018220, - 0x2ca18: 0x6c078a20, 0x2ca19: 0x6c078c20, 0x2ca1a: 0x6c078e20, 0x2ca1b: 0x6c079020, - 0x2ca1c: 0x6c079220, 0x2ca1d: 0x6c0e9820, 0x2ca1e: 0x6c0e9a20, 0x2ca1f: 0x6c0e9c20, - 0x2ca20: 0x6c0e9e20, 0x2ca21: 0x6c0ea020, 0x2ca22: 0x6c0ea220, 0x2ca23: 0x6c0ea420, - 0x2ca24: 0x6c1a4a20, 0x2ca25: 0x6c1a4c20, 0x2ca26: 0x6c1a4e20, 0x2ca27: 0x6c1a5020, - 0x2ca28: 0x6c1a5220, 0x2ca29: 0x6c1a5420, 0x2ca2a: 0x6c1a5620, 0x2ca2b: 0x6c1a5820, - 0x2ca2c: 0x6c1a5a20, 0x2ca2d: 0x6c1a5c20, 0x2ca2e: 0x6c1a5e20, 0x2ca2f: 0x6c1a6020, - 0x2ca30: 0x6c1a6220, 0x2ca31: 0x6c1a6420, 0x2ca32: 0x6c1a6620, 0x2ca33: 0x6c1a6820, - 0x2ca34: 0x6c1a6a20, 0x2ca35: 0x6c1a6c20, 0x2ca36: 0x6c2d8220, 0x2ca37: 0x6c2d8420, - 0x2ca38: 0x6c2d8620, 0x2ca39: 0x6c2d8820, 0x2ca3a: 0x6c2d8a20, 0x2ca3b: 0x6c2d8c20, - 0x2ca3c: 0x6c2d8e20, 0x2ca3d: 0x6c2d9020, 0x2ca3e: 0x6c2d9220, 0x2ca3f: 0x6c47de20, - // Block 0xb29, offset 0x2ca40 - 0x2ca40: 0x6c47e020, 0x2ca41: 0x6c695020, 0x2ca42: 0x6c695220, 0x2ca43: 0x6c695420, - 0x2ca44: 0x6c695620, 0x2ca45: 0x6c695820, 0x2ca46: 0x6c695a20, 0x2ca47: 0x6c901c20, - 0x2ca48: 0x6c901e20, 0x2ca49: 0x6c902020, 0x2ca4a: 0x6c902220, 0x2ca4b: 0x6c902420, - 0x2ca4c: 0x6cbc4020, 0x2ca4d: 0x6cbc4220, 0x2ca4e: 0x6cbc4420, 0x2ca4f: 0x6c902620, - 0x2ca50: 0x6cbc4620, 0x2ca51: 0x6ced2820, 0x2ca52: 0x6ced2a20, 0x2ca53: 0x6ced2c20, - 0x2ca54: 0x6ced2e20, 0x2ca55: 0x6ced3020, 0x2ca56: 0x6d1cf220, 0x2ca57: 0x6d1cf420, - 0x2ca58: 0x6d1cf620, 0x2ca59: 0x6d1cf820, 0x2ca5a: 0x6d4ab620, 0x2ca5b: 0x6d785820, - 0x2ca5c: 0x6d785a20, 0x2ca5d: 0x6e1c7420, 0x2ca5e: 0x6e3d0e20, 0x2ca5f: 0x6c018420, - 0x2ca60: 0x6c03ce20, 0x2ca61: 0x6c03d020, 0x2ca62: 0x6c07a220, 0x2ca63: 0x6c07a420, - 0x2ca64: 0x6c07a620, 0x2ca65: 0x6c07a820, 0x2ca66: 0x6c07aa20, 0x2ca67: 0x6c07ac20, - 0x2ca68: 0x6c0ec020, 0x2ca69: 0x6c0ec220, 0x2ca6a: 0x6c0ec420, 0x2ca6b: 0x6c0ec620, - 0x2ca6c: 0x6c0ec820, 0x2ca6d: 0x6c0eca20, 0x2ca6e: 0x6c0ecc20, 0x2ca6f: 0x6c0ece20, - 0x2ca70: 0x6c0ed020, 0x2ca71: 0x6c0ed220, 0x2ca72: 0x6c0ed420, 0x2ca73: 0x6c0ed620, - 0x2ca74: 0x6c0ed820, 0x2ca75: 0x6c0eda20, 0x2ca76: 0x6c0edc20, 0x2ca77: 0x6c0ede20, - 0x2ca78: 0x6c0ee020, 0x2ca79: 0x6c0ee220, 0x2ca7a: 0x6c0ee420, 0x2ca7b: 0x6c1aac20, - 0x2ca7c: 0x6c1aae20, 0x2ca7d: 0x6c1ab020, 0x2ca7e: 0x6c1ab220, 0x2ca7f: 0x6c1ab420, - // Block 0xb2a, offset 0x2ca80 - 0x2ca80: 0x6c1ab620, 0x2ca81: 0x6c1ab820, 0x2ca82: 0x6c1aba20, 0x2ca83: 0x6c1abc20, - 0x2ca84: 0x6c1abe20, 0x2ca85: 0x6c1ac020, 0x2ca86: 0x6c1ac220, 0x2ca87: 0x6c1ac420, - 0x2ca88: 0x6c1ac620, 0x2ca89: 0x6c1ac820, 0x2ca8a: 0x6c1aca20, 0x2ca8b: 0x6c1acc20, - 0x2ca8c: 0x6c1ace20, 0x2ca8d: 0x6c1ad020, 0x2ca8e: 0x6c1ad220, 0x2ca8f: 0x6c1ad420, - 0x2ca90: 0x6c1ad620, 0x2ca91: 0x6c1ad820, 0x2ca92: 0x6c1ada20, 0x2ca93: 0x6c1adc20, - 0x2ca94: 0x6c1ade20, 0x2ca95: 0x6c1ae020, 0x2ca96: 0x6c1ae220, 0x2ca97: 0x6c1ae420, - 0x2ca98: 0x6c1ae620, 0x2ca99: 0x6c1ae820, 0x2ca9a: 0x6c1aea20, 0x2ca9b: 0x6c1aec20, - 0x2ca9c: 0x6c1aee20, 0x2ca9d: 0x6c1af020, 0x2ca9e: 0x6c1af220, 0x2ca9f: 0x6c1af420, - 0x2caa0: 0x6c1af620, 0x2caa1: 0x6c2db420, 0x2caa2: 0x6c2db620, 0x2caa3: 0x6c2db820, - 0x2caa4: 0x6c2dba20, 0x2caa5: 0x6c2dbc20, 0x2caa6: 0x6c2dbe20, 0x2caa7: 0x6c2dc020, - 0x2caa8: 0x6c2dc220, 0x2caa9: 0x6c2dc420, 0x2caaa: 0x6c2dc620, 0x2caab: 0x6c2dc820, - 0x2caac: 0x6c2dca20, 0x2caad: 0x6c2dcc20, 0x2caae: 0x6c2dce20, 0x2caaf: 0x6c2dd020, - 0x2cab0: 0x6c2dd220, 0x2cab1: 0x6c2dd420, 0x2cab2: 0x6c2dd620, 0x2cab3: 0x6c2dd820, - 0x2cab4: 0x6c2dda20, 0x2cab5: 0x6c2ddc20, 0x2cab6: 0x6c2dde20, 0x2cab7: 0x6c2de020, - 0x2cab8: 0x6c2de220, 0x2cab9: 0x6c2de420, 0x2caba: 0x6c2de620, 0x2cabb: 0x6c2de820, - 0x2cabc: 0x6c2dea20, 0x2cabd: 0x6c2dec20, 0x2cabe: 0x6c2dee20, 0x2cabf: 0x6c2df020, - // Block 0xb2b, offset 0x2cac0 - 0x2cac0: 0x6c2df220, 0x2cac1: 0x6c2df420, 0x2cac2: 0x6c2df620, 0x2cac3: 0x6c2df820, - 0x2cac4: 0x6c2dfa20, 0x2cac5: 0x6c2dfc20, 0x2cac6: 0x6c2dfe20, 0x2cac7: 0x6c2e0020, - 0x2cac8: 0x6c2e0220, 0x2cac9: 0x6c2e0420, 0x2caca: 0x6c2e0620, 0x2cacb: 0x6c481220, - 0x2cacc: 0x6c481420, 0x2cacd: 0x6c481620, 0x2cace: 0x6c481820, 0x2cacf: 0x6c481a20, - 0x2cad0: 0x6c481c20, 0x2cad1: 0x6c481e20, 0x2cad2: 0x6c482020, 0x2cad3: 0x6c482220, - 0x2cad4: 0x6c482420, 0x2cad5: 0x6c482620, 0x2cad6: 0x6c482820, 0x2cad7: 0x6c482a20, - 0x2cad8: 0x6c482c20, 0x2cad9: 0x6c482e20, 0x2cada: 0x6c483020, 0x2cadb: 0x6c483220, - 0x2cadc: 0x6c483420, 0x2cadd: 0x6c483620, 0x2cade: 0x6c483820, 0x2cadf: 0x6c483a20, - 0x2cae0: 0x6c483c20, 0x2cae1: 0x6c483e20, 0x2cae2: 0x6c484020, 0x2cae3: 0x6c484220, - 0x2cae4: 0x6c484420, 0x2cae5: 0x6c484620, 0x2cae6: 0x6c484820, 0x2cae7: 0x6c484a20, - 0x2cae8: 0x6c484c20, 0x2cae9: 0x6c484e20, 0x2caea: 0x6c485020, 0x2caeb: 0x6c485220, - 0x2caec: 0x6c485420, 0x2caed: 0x6c485620, 0x2caee: 0x6c485820, 0x2caef: 0x6c485a20, - 0x2caf0: 0x6c485c20, 0x2caf1: 0x6c485e20, 0x2caf2: 0x6c486020, 0x2caf3: 0x6c486220, - 0x2caf4: 0x6c486420, 0x2caf5: 0x6c486620, 0x2caf6: 0x6c698e20, 0x2caf7: 0x6c699020, - 0x2caf8: 0x6c699220, 0x2caf9: 0x6c699420, 0x2cafa: 0x6c699620, 0x2cafb: 0x6c699820, - 0x2cafc: 0x6c699a20, 0x2cafd: 0x6c699c20, 0x2cafe: 0x6c699e20, 0x2caff: 0x6c69a020, - // Block 0xb2c, offset 0x2cb00 - 0x2cb00: 0x6c69a220, 0x2cb01: 0x6c69a420, 0x2cb02: 0x6c69a620, 0x2cb03: 0x6c69a820, - 0x2cb04: 0x6c69aa20, 0x2cb05: 0x6c69ac20, 0x2cb06: 0x6c69ae20, 0x2cb07: 0x6c69b020, - 0x2cb08: 0x6c69b220, 0x2cb09: 0x6c69b420, 0x2cb0a: 0x6c69b620, 0x2cb0b: 0x6c69b820, - 0x2cb0c: 0x6c69ba20, 0x2cb0d: 0x6c69bc20, 0x2cb0e: 0x6c486820, 0x2cb0f: 0x6c69be20, - 0x2cb10: 0x6c69c020, 0x2cb11: 0x6c69c220, 0x2cb12: 0x6c69c420, 0x2cb13: 0x6c69c620, - 0x2cb14: 0x6c69c820, 0x2cb15: 0x6c69ca20, 0x2cb16: 0x6c69cc20, 0x2cb17: 0x6c69ce20, - 0x2cb18: 0x6c69d020, 0x2cb19: 0x6c69d220, 0x2cb1a: 0x6c69d420, 0x2cb1b: 0x6c69d620, - 0x2cb1c: 0x6c905420, 0x2cb1d: 0x6c905620, 0x2cb1e: 0x6c905820, 0x2cb1f: 0x6c905a20, - 0x2cb20: 0x6c905c20, 0x2cb21: 0x6c905e20, 0x2cb22: 0x6c906020, 0x2cb23: 0x6c906220, - 0x2cb24: 0x6c906420, 0x2cb25: 0x6c906620, 0x2cb26: 0x6c906820, 0x2cb27: 0x6c906a20, - 0x2cb28: 0x6c906c20, 0x2cb29: 0x6c906e20, 0x2cb2a: 0x6c915e20, 0x2cb2b: 0x6c907020, - 0x2cb2c: 0x6c907220, 0x2cb2d: 0x6c907420, 0x2cb2e: 0x6c907620, 0x2cb2f: 0x6c907820, - 0x2cb30: 0x6c907a20, 0x2cb31: 0x6c907c20, 0x2cb32: 0x6c907e20, 0x2cb33: 0x6c908020, - 0x2cb34: 0x6c908220, 0x2cb35: 0x6c908420, 0x2cb36: 0x6c908620, 0x2cb37: 0x6c908820, - 0x2cb38: 0x6c908a20, 0x2cb39: 0x6c908c20, 0x2cb3a: 0x6c908e20, 0x2cb3b: 0x6c909020, - 0x2cb3c: 0x6c909220, 0x2cb3d: 0x6c909420, 0x2cb3e: 0x6c909620, 0x2cb3f: 0x6c909820, - // Block 0xb2d, offset 0x2cb40 - 0x2cb40: 0x6c909a20, 0x2cb41: 0x6c909c20, 0x2cb42: 0x6c909e20, 0x2cb43: 0x6c90a020, - 0x2cb44: 0x6c90a220, 0x2cb45: 0x6c90a420, 0x2cb46: 0x6c90a620, 0x2cb47: 0x6c90a820, - 0x2cb48: 0x6c90aa20, 0x2cb49: 0x6c90ac20, 0x2cb4a: 0x6c90ae20, 0x2cb4b: 0x6c90b020, - 0x2cb4c: 0x6c90b220, 0x2cb4d: 0x6c90b420, 0x2cb4e: 0x6c90b620, 0x2cb4f: 0x6c90b820, - 0x2cb50: 0x6c90ba20, 0x2cb51: 0x6c90bc20, 0x2cb52: 0x6c90be20, 0x2cb53: 0x6c90c020, - 0x2cb54: 0x6c90c220, 0x2cb55: 0x6c90c420, 0x2cb56: 0x6cbc7a20, 0x2cb57: 0x6cbc7c20, - 0x2cb58: 0x6cbc7e20, 0x2cb59: 0x6cbc8020, 0x2cb5a: 0x6cbc8220, 0x2cb5b: 0x6cbc8420, - 0x2cb5c: 0x6cbc8620, 0x2cb5d: 0x6cbc8820, 0x2cb5e: 0x6cbc8a20, 0x2cb5f: 0x6cbc8c20, - 0x2cb60: 0x6cbc8e20, 0x2cb61: 0x6cbc9020, 0x2cb62: 0x6cbc9220, 0x2cb63: 0x6cbc9420, - 0x2cb64: 0x6cbc9620, 0x2cb65: 0x6cbc9820, 0x2cb66: 0x6cbc9a20, 0x2cb67: 0x6cbc9c20, - 0x2cb68: 0x6cbc9e20, 0x2cb69: 0x6cbca020, 0x2cb6a: 0x6cbca220, 0x2cb6b: 0x6cbca420, - 0x2cb6c: 0x6cbca620, 0x2cb6d: 0x6cbca820, 0x2cb6e: 0x6cbcaa20, 0x2cb6f: 0x6cbcac20, - 0x2cb70: 0x6cbcae20, 0x2cb71: 0x6cbcb020, 0x2cb72: 0x6c6a6e20, 0x2cb73: 0x6cbcb220, - 0x2cb74: 0x6cbcb420, 0x2cb75: 0x6c916020, 0x2cb76: 0x6cbcb620, 0x2cb77: 0x6cbcb820, - 0x2cb78: 0x6cbcba20, 0x2cb79: 0x6cbcbc20, 0x2cb7a: 0x6cbcbe20, 0x2cb7b: 0x6cbcc020, - 0x2cb7c: 0x6cbcc220, 0x2cb7d: 0x6ced5820, 0x2cb7e: 0x6cbcc420, 0x2cb7f: 0x6cbcc620, - // Block 0xb2e, offset 0x2cb80 - 0x2cb80: 0x6cbcc820, 0x2cb81: 0x6cbcca20, 0x2cb82: 0x6cbccc20, 0x2cb83: 0x6ced5a20, - 0x2cb84: 0x6cbcce20, 0x2cb85: 0x6cbcd020, 0x2cb86: 0x6cbcd220, 0x2cb87: 0x6cbcd420, - 0x2cb88: 0x6cbcd620, 0x2cb89: 0x6ced5c20, 0x2cb8a: 0x6ced5e20, 0x2cb8b: 0x6ced6020, - 0x2cb8c: 0x6ced6220, 0x2cb8d: 0x6ced6420, 0x2cb8e: 0x6ced6620, 0x2cb8f: 0x6ced6820, - 0x2cb90: 0x6ced6a20, 0x2cb91: 0x6ced6c20, 0x2cb92: 0x6ced6e20, 0x2cb93: 0x6ced7020, - 0x2cb94: 0x6ced7220, 0x2cb95: 0x6ced7420, 0x2cb96: 0x6ced7620, 0x2cb97: 0x6ced7820, - 0x2cb98: 0x6ced7a20, 0x2cb99: 0x6ced7c20, 0x2cb9a: 0x6ced7e20, 0x2cb9b: 0x6ced8020, - 0x2cb9c: 0x6ced8220, 0x2cb9d: 0x6ced8420, 0x2cb9e: 0x6ced8620, 0x2cb9f: 0x6ced8820, - 0x2cba0: 0x6ced8a20, 0x2cba1: 0x6ced8c20, 0x2cba2: 0x6ced8e20, 0x2cba3: 0x6ced9020, - 0x2cba4: 0x6ced9220, 0x2cba5: 0x6ced9420, 0x2cba6: 0x6ced9620, 0x2cba7: 0x6ced9820, - 0x2cba8: 0x6ced9a20, 0x2cba9: 0x6ced9c20, 0x2cbaa: 0x6ced9e20, 0x2cbab: 0x6ceda020, - 0x2cbac: 0x6ceda220, 0x2cbad: 0x6ceda420, 0x2cbae: 0x6ceda620, 0x2cbaf: 0x6ceda820, - 0x2cbb0: 0x6cedaa20, 0x2cbb1: 0x6cedac20, 0x2cbb2: 0x6d1d2420, 0x2cbb3: 0x6d1d2620, - 0x2cbb4: 0x6d1d2820, 0x2cbb5: 0x6d1d2a20, 0x2cbb6: 0x6d1d2c20, 0x2cbb7: 0x6d1d2e20, - 0x2cbb8: 0x6d1d3020, 0x2cbb9: 0x6d1d3220, 0x2cbba: 0x6d1d3420, 0x2cbbb: 0x6d1d3620, - 0x2cbbc: 0x6d1d3820, 0x2cbbd: 0x6d1d3a20, 0x2cbbe: 0x6d1d3c20, 0x2cbbf: 0x6d1d3e20, - // Block 0xb2f, offset 0x2cbc0 - 0x2cbc0: 0x6d4ac620, 0x2cbc1: 0x6d1d4020, 0x2cbc2: 0x6d1d4220, 0x2cbc3: 0x6d1d4420, - 0x2cbc4: 0x6d1d4620, 0x2cbc5: 0x6d1d4820, 0x2cbc6: 0x6d1d4a20, 0x2cbc7: 0x6d1d4c20, - 0x2cbc8: 0x6d1d4e20, 0x2cbc9: 0x6d1d5020, 0x2cbca: 0x6d1d5220, 0x2cbcb: 0x6d1d5420, - 0x2cbcc: 0x6d1d5620, 0x2cbcd: 0x6d1d5820, 0x2cbce: 0x6d1d5a20, 0x2cbcf: 0x6d1d5c20, - 0x2cbd0: 0x6d1d5e20, 0x2cbd1: 0x6d1d6020, 0x2cbd2: 0x6d1d6220, 0x2cbd3: 0x6d1d6420, - 0x2cbd4: 0x6d1d6620, 0x2cbd5: 0x6d1d6820, 0x2cbd6: 0x6d1d6a20, 0x2cbd7: 0x6d1d6c20, - 0x2cbd8: 0x6d1d6e20, 0x2cbd9: 0x6d1d7020, 0x2cbda: 0x6d1d7220, 0x2cbdb: 0x6d1d7420, - 0x2cbdc: 0x6d4ada20, 0x2cbdd: 0x6d4adc20, 0x2cbde: 0x6d4ade20, 0x2cbdf: 0x6d4ae020, - 0x2cbe0: 0x6d4ae220, 0x2cbe1: 0x6d4ae420, 0x2cbe2: 0x6d4ae620, 0x2cbe3: 0x6d4ae820, - 0x2cbe4: 0x6d4aea20, 0x2cbe5: 0x6d4aec20, 0x2cbe6: 0x6d4aee20, 0x2cbe7: 0x6d4af020, - 0x2cbe8: 0x6d758820, 0x2cbe9: 0x6d4af220, 0x2cbea: 0x6d4af420, 0x2cbeb: 0x6d4af620, - 0x2cbec: 0x6d4af820, 0x2cbed: 0x6d1df220, 0x2cbee: 0x6d4afa20, 0x2cbef: 0x6d4afc20, - 0x2cbf0: 0x6d4afe20, 0x2cbf1: 0x6d4b0020, 0x2cbf2: 0x6d4b0220, 0x2cbf3: 0x6d4b0420, - 0x2cbf4: 0x6d4b0620, 0x2cbf5: 0x6d4b0820, 0x2cbf6: 0x6d4b0a20, 0x2cbf7: 0x6d4b0c20, - 0x2cbf8: 0x6d4b0e20, 0x2cbf9: 0x6d4b1020, 0x2cbfa: 0x6d787420, 0x2cbfb: 0x6d787620, - 0x2cbfc: 0x6d787820, 0x2cbfd: 0x6d787a20, 0x2cbfe: 0x6d787c20, 0x2cbff: 0x6d787e20, - // Block 0xb30, offset 0x2cc00 - 0x2cc00: 0x6d788020, 0x2cc01: 0x6d788220, 0x2cc02: 0x6d788420, 0x2cc03: 0x6d788620, - 0x2cc04: 0x6d788820, 0x2cc05: 0x6d788a20, 0x2cc06: 0x6d788c20, 0x2cc07: 0x6d788e20, - 0x2cc08: 0x6d789020, 0x2cc09: 0x6d789220, 0x2cc0a: 0x6d789420, 0x2cc0b: 0x6d789620, - 0x2cc0c: 0x6d789820, 0x2cc0d: 0x6da19020, 0x2cc0e: 0x6da19220, 0x2cc0f: 0x6da19420, - 0x2cc10: 0x6da19620, 0x2cc11: 0x6da19820, 0x2cc12: 0x6da19a20, 0x2cc13: 0x6da19c20, - 0x2cc14: 0x6da19e20, 0x2cc15: 0x6da1a020, 0x2cc16: 0x6da1a220, 0x2cc17: 0x6da1a420, - 0x2cc18: 0x6dc3e620, 0x2cc19: 0x6dc3e820, 0x2cc1a: 0x6de10620, 0x2cc1b: 0x6de10820, - 0x2cc1c: 0x6de10a20, 0x2cc1d: 0x6de10c20, 0x2cc1e: 0x6de10e20, 0x2cc1f: 0x6de11020, - 0x2cc20: 0x6de11220, 0x2cc21: 0x6de07820, 0x2cc22: 0x6de11420, 0x2cc23: 0x6df93420, - 0x2cc24: 0x6df93620, 0x2cc25: 0x6df93820, 0x2cc26: 0x6e0cfc20, 0x2cc27: 0x6e288e20, - 0x2cc28: 0x6e289020, 0x2cc29: 0x6e31c420, 0x2cc2a: 0x6e386020, 0x2cc2b: 0x6c018620, - 0x2cc2c: 0x6c03da20, 0x2cc2d: 0x6c07c420, 0x2cc2e: 0x6c0f0e20, 0x2cc2f: 0x6c1b6620, - 0x2cc30: 0x6c1b6820, 0x2cc31: 0x6c1b6a20, 0x2cc32: 0x6c1b6c20, 0x2cc33: 0x6c1b6e20, - 0x2cc34: 0x6c48e620, 0x2cc35: 0x6c48e820, 0x2cc36: 0x6c6a7020, 0x2cc37: 0x6c916220, - 0x2cc38: 0x6c916420, 0x2cc39: 0x6cbd8820, 0x2cc3a: 0x6cbd8a20, 0x2cc3b: 0x6cbd8c20, - 0x2cc3c: 0x6cee4e20, 0x2cc3d: 0x6d1df420, 0x2cc3e: 0x6d1df620, 0x2cc3f: 0x6d4ba220, - // Block 0xb31, offset 0x2cc40 - 0x2cc40: 0x6d4ba420, 0x2cc41: 0x6d790020, 0x2cc42: 0x6c018820, 0x2cc43: 0x6c03dc20, - 0x2cc44: 0x6c07c820, 0x2cc45: 0x6c0f1220, 0x2cc46: 0x6c1b7420, 0x2cc47: 0x6c2e8020, - 0x2cc48: 0x6c48f220, 0x2cc49: 0x6c48f820, 0x2cc4a: 0x6c018c20, 0x2cc4b: 0x6c1b7c20, - 0x2cc4c: 0x6c2e8220, 0x2cc4d: 0x6c48fa20, 0x2cc4e: 0x6c6a8420, 0x2cc4f: 0x6c6a8620, - 0x2cc50: 0x6d1e0220, 0x2cc51: 0x6dc43a20, 0x2cc52: 0x6de14820, 0x2cc53: 0x6dc43c20, - 0x2cc54: 0x6e0d1e20, 0x2cc55: 0x6c018e20, 0x2cc56: 0x6c07d020, 0x2cc57: 0x6c07d220, - 0x2cc58: 0x6c07d420, 0x2cc59: 0x6c0f1c20, 0x2cc5a: 0x6c0f1e20, 0x2cc5b: 0x6c0f2020, - 0x2cc5c: 0x6c2e8e20, 0x2cc5d: 0x6c2e9020, 0x2cc5e: 0x6c6a8c20, 0x2cc5f: 0x6c918020, - 0x2cc60: 0x6c918220, 0x2cc61: 0x6cbd9a20, 0x2cc62: 0x6d1e1020, 0x2cc63: 0x6d1e1220, - 0x2cc64: 0x6d1e1420, 0x2cc65: 0x6d1e1620, 0x2cc66: 0x6d4bae20, 0x2cc67: 0x6c019020, - 0x2cc68: 0x6c019220, 0x2cc69: 0x6c03de20, 0x2cc6a: 0x6c03e020, 0x2cc6b: 0x6c03e220, - 0x2cc6c: 0x6c03e420, 0x2cc6d: 0x6c03e620, 0x2cc6e: 0x6c07de20, 0x2cc6f: 0x6c07e020, - 0x2cc70: 0x6c07e220, 0x2cc71: 0x6c07e420, 0x2cc72: 0x6c07e620, 0x2cc73: 0x6c07e820, - 0x2cc74: 0x6c07ea20, 0x2cc75: 0x6c0f3220, 0x2cc76: 0x6c0f3420, 0x2cc77: 0x6c0f3620, - 0x2cc78: 0x6c0f3820, 0x2cc79: 0x6c0f3a20, 0x2cc7a: 0x6c0f3c20, 0x2cc7b: 0x6c0f3e20, - 0x2cc7c: 0x6c0f4020, 0x2cc7d: 0x6c1b8e20, 0x2cc7e: 0x6c1b9020, 0x2cc7f: 0x6c1b9220, - // Block 0xb32, offset 0x2cc80 - 0x2cc80: 0x6c1b9420, 0x2cc81: 0x6c1b9620, 0x2cc82: 0x6c1b9820, 0x2cc83: 0x6c2ea620, - 0x2cc84: 0x6c2ea820, 0x2cc85: 0x6c2eaa20, 0x2cc86: 0x6c2eac20, 0x2cc87: 0x6c2eae20, - 0x2cc88: 0x6c2eb020, 0x2cc89: 0x6c2eb220, 0x2cc8a: 0x6c6aaa20, 0x2cc8b: 0x6c2eb420, - 0x2cc8c: 0x6c2eb620, 0x2cc8d: 0x6c2eb820, 0x2cc8e: 0x6c490620, 0x2cc8f: 0x6c490820, - 0x2cc90: 0x6c490a20, 0x2cc91: 0x6c490c20, 0x2cc92: 0x6c490e20, 0x2cc93: 0x6c491020, - 0x2cc94: 0x6c2ef220, 0x2cc95: 0x6c491220, 0x2cc96: 0x6c491420, 0x2cc97: 0x6c6aac20, - 0x2cc98: 0x6c6aae20, 0x2cc99: 0x6c6ab020, 0x2cc9a: 0x6c6ab220, 0x2cc9b: 0x6c919e20, - 0x2cc9c: 0x6c91a020, 0x2cc9d: 0x6c91a220, 0x2cc9e: 0x6c91a420, 0x2cc9f: 0x6c91d220, - 0x2cca0: 0x6cbdb820, 0x2cca1: 0x6cbdba20, 0x2cca2: 0x6c91d420, 0x2cca3: 0x6cbdbc20, - 0x2cca4: 0x6cbdbe20, 0x2cca5: 0x6cbdc020, 0x2cca6: 0x6cee7820, 0x2cca7: 0x6cee7a20, - 0x2cca8: 0x6cee7c20, 0x2cca9: 0x6d1e2e20, 0x2ccaa: 0x6d1e3020, 0x2ccab: 0x6d1e3220, - 0x2ccac: 0x6d1e3420, 0x2ccad: 0x6d4bb820, 0x2ccae: 0x6d791e20, 0x2ccaf: 0x6d792020, - 0x2ccb0: 0x6dc44c20, 0x2ccb1: 0x6e1c9220, 0x2ccb2: 0x6e28a420, 0x2ccb3: 0x6c019420, - 0x2ccb4: 0x6c07fe20, 0x2ccb5: 0x6c080020, 0x2ccb6: 0x6c080220, 0x2ccb7: 0x6c0f6220, - 0x2ccb8: 0x6c0f6420, 0x2ccb9: 0x6c0f6620, 0x2ccba: 0x6c0f6820, 0x2ccbb: 0x6c0f6a20, - 0x2ccbc: 0x6c0f6c20, 0x2ccbd: 0x6c0f6e20, 0x2ccbe: 0x6c0f7020, 0x2ccbf: 0x6c0f7220, - // Block 0xb33, offset 0x2ccc0 - 0x2ccc0: 0x6c0f7420, 0x2ccc1: 0x6c0f7620, 0x2ccc2: 0x6c0f7820, 0x2ccc3: 0x6c0f7a20, - 0x2ccc4: 0x6c0f7c20, 0x2ccc5: 0x6c0f7e20, 0x2ccc6: 0x6c0f8020, 0x2ccc7: 0x6c0f8220, - 0x2ccc8: 0x6c0f8420, 0x2ccc9: 0x6c1bd420, 0x2ccca: 0x6c1bd620, 0x2cccb: 0x6c1bd820, - 0x2cccc: 0x6c1bda20, 0x2cccd: 0x6c495420, 0x2ccce: 0x6c1bdc20, 0x2cccf: 0x6c1bde20, - 0x2ccd0: 0x6c1be020, 0x2ccd1: 0x6c1be220, 0x2ccd2: 0x6c1be420, 0x2ccd3: 0x6c1be620, - 0x2ccd4: 0x6c1be820, 0x2ccd5: 0x6c1bea20, 0x2ccd6: 0x6c1bec20, 0x2ccd7: 0x6c1bee20, - 0x2ccd8: 0x6c1bf020, 0x2ccd9: 0x6c1bf220, 0x2ccda: 0x6c1bf420, 0x2ccdb: 0x6c1bf620, - 0x2ccdc: 0x6c1bf820, 0x2ccdd: 0x6c1bfa20, 0x2ccde: 0x6c1bfc20, 0x2ccdf: 0x6c1bfe20, - 0x2cce0: 0x6c1c0020, 0x2cce1: 0x6c1c0220, 0x2cce2: 0x6c1c0420, 0x2cce3: 0x6c1c0620, - 0x2cce4: 0x6c1c0820, 0x2cce5: 0x6c1c0a20, 0x2cce6: 0x6c1c0c20, 0x2cce7: 0x6c1c0e20, - 0x2cce8: 0x6c1c1020, 0x2cce9: 0x6c1c1220, 0x2ccea: 0x6c1c1420, 0x2cceb: 0x6c1c1620, - 0x2ccec: 0x6c2f1820, 0x2cced: 0x6c2f1a20, 0x2ccee: 0x6c2f1c20, 0x2ccef: 0x6c2f1e20, - 0x2ccf0: 0x6c2f2020, 0x2ccf1: 0x6c2f2220, 0x2ccf2: 0x6c2f2420, 0x2ccf3: 0x6c2f2620, - 0x2ccf4: 0x6c2f2820, 0x2ccf5: 0x6c2f2a20, 0x2ccf6: 0x6c2f2c20, 0x2ccf7: 0x6c2f2e20, - 0x2ccf8: 0x6c2f3020, 0x2ccf9: 0x6c2f3220, 0x2ccfa: 0x6c2f3420, 0x2ccfb: 0x6c2f3620, - 0x2ccfc: 0x6c2f3820, 0x2ccfd: 0x6c2f3a20, 0x2ccfe: 0x6c2f3c20, 0x2ccff: 0x6c2f3e20, - // Block 0xb34, offset 0x2cd00 - 0x2cd00: 0x6c2f4020, 0x2cd01: 0x6c2f4220, 0x2cd02: 0x6c2f4420, 0x2cd03: 0x6c2f4620, - 0x2cd04: 0x6c2f4820, 0x2cd05: 0x6c2f4a20, 0x2cd06: 0x6c2f4c20, 0x2cd07: 0x6c2f4e20, - 0x2cd08: 0x6c2f5020, 0x2cd09: 0x6c2f5220, 0x2cd0a: 0x6c2f5420, 0x2cd0b: 0x6c2f5620, - 0x2cd0c: 0x6c2f5820, 0x2cd0d: 0x6c2f5a20, 0x2cd0e: 0x6c2f5c20, 0x2cd0f: 0x6c2f5e20, - 0x2cd10: 0x6c2f6020, 0x2cd11: 0x6c2f6220, 0x2cd12: 0x6c2f6420, 0x2cd13: 0x6c2f6620, - 0x2cd14: 0x6c2f6820, 0x2cd15: 0x6c493c20, 0x2cd16: 0x6c2f6a20, 0x2cd17: 0x6c2f6c20, - 0x2cd18: 0x6c495620, 0x2cd19: 0x6c495820, 0x2cd1a: 0x6c495a20, 0x2cd1b: 0x6c495c20, - 0x2cd1c: 0x6c495e20, 0x2cd1d: 0x6c496020, 0x2cd1e: 0x6c496220, 0x2cd1f: 0x6c496420, - 0x2cd20: 0x6c496620, 0x2cd21: 0x6c496820, 0x2cd22: 0x6c496a20, 0x2cd23: 0x6c496c20, - 0x2cd24: 0x6c496e20, 0x2cd25: 0x6c497020, 0x2cd26: 0x6c497220, 0x2cd27: 0x6c497420, - 0x2cd28: 0x6c497620, 0x2cd29: 0x6c497820, 0x2cd2a: 0x6c497a20, 0x2cd2b: 0x6c497c20, - 0x2cd2c: 0x6c6b1820, 0x2cd2d: 0x6c497e20, 0x2cd2e: 0x6c498020, 0x2cd2f: 0x6c498220, - 0x2cd30: 0x6c498420, 0x2cd31: 0x6c498620, 0x2cd32: 0x6c498820, 0x2cd33: 0x6c498a20, - 0x2cd34: 0x6c498c20, 0x2cd35: 0x6c498e20, 0x2cd36: 0x6c499020, 0x2cd37: 0x6c499220, - 0x2cd38: 0x6c499420, 0x2cd39: 0x6c499620, 0x2cd3a: 0x6c499820, 0x2cd3b: 0x6c499a20, - 0x2cd3c: 0x6c499c20, 0x2cd3d: 0x6c499e20, 0x2cd3e: 0x6c49a020, 0x2cd3f: 0x6c49a220, - // Block 0xb35, offset 0x2cd40 - 0x2cd40: 0x6c49a420, 0x2cd41: 0x6c49a620, 0x2cd42: 0x6c49a820, 0x2cd43: 0x6c49aa20, - 0x2cd44: 0x6c5c3020, 0x2cd45: 0x6c49ac20, 0x2cd46: 0x6c49ae20, 0x2cd47: 0x6c49b020, - 0x2cd48: 0x6c49b220, 0x2cd49: 0x6c6b1a20, 0x2cd4a: 0x6c6b1c20, 0x2cd4b: 0x6c6b1e20, - 0x2cd4c: 0x6c6b2020, 0x2cd4d: 0x6c4a1a20, 0x2cd4e: 0x6c6b2220, 0x2cd4f: 0x6c6b2420, - 0x2cd50: 0x6c6b2620, 0x2cd51: 0x6c6b2820, 0x2cd52: 0x6c6b2a20, 0x2cd53: 0x6c6b2c20, - 0x2cd54: 0x6c6b2e20, 0x2cd55: 0x6c6b3020, 0x2cd56: 0x6c6b3220, 0x2cd57: 0x6c6b3420, - 0x2cd58: 0x6c6b3620, 0x2cd59: 0x6c6b3820, 0x2cd5a: 0x6c6b3a20, 0x2cd5b: 0x6c6b3c20, - 0x2cd5c: 0x6c6b3e20, 0x2cd5d: 0x6c6b4020, 0x2cd5e: 0x6c6b4220, 0x2cd5f: 0x6c6b4420, - 0x2cd60: 0x6c6b4620, 0x2cd61: 0x6c6b4820, 0x2cd62: 0x6c6b4a20, 0x2cd63: 0x6c6b4c20, - 0x2cd64: 0x6c6b4e20, 0x2cd65: 0x6c6b5020, 0x2cd66: 0x6c6b5220, 0x2cd67: 0x6c6b5420, - 0x2cd68: 0x6c6b5620, 0x2cd69: 0x6c6b5820, 0x2cd6a: 0x6c6b5a20, 0x2cd6b: 0x6c91d620, - 0x2cd6c: 0x6c91ec20, 0x2cd6d: 0x6c6b5c20, 0x2cd6e: 0x6c6b5e20, 0x2cd6f: 0x6c6b6020, - 0x2cd70: 0x6c6b6220, 0x2cd71: 0x6c6b6420, 0x2cd72: 0x6c6b6620, 0x2cd73: 0x6c6b6820, - 0x2cd74: 0x6c6b6a20, 0x2cd75: 0x6c91ee20, 0x2cd76: 0x6c91f020, 0x2cd77: 0x6c91f220, - 0x2cd78: 0x6c91f420, 0x2cd79: 0x6c91f620, 0x2cd7a: 0x6c91f820, 0x2cd7b: 0x6c91fa20, - 0x2cd7c: 0x6c91fc20, 0x2cd7d: 0x6c91d820, 0x2cd7e: 0x6c91fe20, 0x2cd7f: 0x6c920020, - // Block 0xb36, offset 0x2cd80 - 0x2cd80: 0x6c920220, 0x2cd81: 0x6c920420, 0x2cd82: 0x6c920620, 0x2cd83: 0x6c920820, - 0x2cd84: 0x6c920a20, 0x2cd85: 0x6c920c20, 0x2cd86: 0x6c920e20, 0x2cd87: 0x6c921020, - 0x2cd88: 0x6c921220, 0x2cd89: 0x6c921420, 0x2cd8a: 0x6c921620, 0x2cd8b: 0x6c921820, - 0x2cd8c: 0x6c921a20, 0x2cd8d: 0x6c921c20, 0x2cd8e: 0x6c921e20, 0x2cd8f: 0x6c922020, - 0x2cd90: 0x6c922220, 0x2cd91: 0x6c922420, 0x2cd92: 0x6c922620, 0x2cd93: 0x6c922820, - 0x2cd94: 0x6c922a20, 0x2cd95: 0x6c922c20, 0x2cd96: 0x6c922e20, 0x2cd97: 0x6c923020, - 0x2cd98: 0x6c923220, 0x2cd99: 0x6c923420, 0x2cd9a: 0x6c923620, 0x2cd9b: 0x6c923820, - 0x2cd9c: 0x6c923a20, 0x2cd9d: 0x6c923c20, 0x2cd9e: 0x6c923e20, 0x2cd9f: 0x6c924020, - 0x2cda0: 0x6c924220, 0x2cda1: 0x6c924420, 0x2cda2: 0x6c924620, 0x2cda3: 0x6c924820, - 0x2cda4: 0x6c924a20, 0x2cda5: 0x6c924c20, 0x2cda6: 0x6c924e20, 0x2cda7: 0x6c925020, - 0x2cda8: 0x6c925220, 0x2cda9: 0x6c925420, 0x2cdaa: 0x6c925620, 0x2cdab: 0x6c925820, - 0x2cdac: 0x6c925a20, 0x2cdad: 0x6c925c20, 0x2cdae: 0x6c925e20, 0x2cdaf: 0x6c926020, - 0x2cdb0: 0x6c926220, 0x2cdb1: 0x6c926420, 0x2cdb2: 0x6c926620, 0x2cdb3: 0x6c926820, - 0x2cdb4: 0x6c926a20, 0x2cdb5: 0x6c926c20, 0x2cdb6: 0x6c926e20, 0x2cdb7: 0x6cbe2020, - 0x2cdb8: 0x6cbe2220, 0x2cdb9: 0x6cbe2420, 0x2cdba: 0x6cbe2620, 0x2cdbb: 0x6cbe2820, - 0x2cdbc: 0x6cbe2a20, 0x2cdbd: 0x6cbe2c20, 0x2cdbe: 0x6cbe2e20, 0x2cdbf: 0x6cbe3020, - // Block 0xb37, offset 0x2cdc0 - 0x2cdc0: 0x6cbe3220, 0x2cdc1: 0x6cbe3420, 0x2cdc2: 0x6cbe3620, 0x2cdc3: 0x6cbe3820, - 0x2cdc4: 0x6cbe3a20, 0x2cdc5: 0x6cbe3c20, 0x2cdc6: 0x6cbe3e20, 0x2cdc7: 0x6cbe4020, - 0x2cdc8: 0x6cbe4220, 0x2cdc9: 0x6cbe4420, 0x2cdca: 0x6cbe4620, 0x2cdcb: 0x6cbe4820, - 0x2cdcc: 0x6cbe4a20, 0x2cdcd: 0x6cbe4c20, 0x2cdce: 0x6c930220, 0x2cdcf: 0x6cbe4e20, - 0x2cdd0: 0x6ceec620, 0x2cdd1: 0x6cbe5020, 0x2cdd2: 0x6cbe5220, 0x2cdd3: 0x6cbe5420, - 0x2cdd4: 0x6cbe5620, 0x2cdd5: 0x6cbe5820, 0x2cdd6: 0x6cbe5a20, 0x2cdd7: 0x6cbe5c20, - 0x2cdd8: 0x6cbe5e20, 0x2cdd9: 0x6cbe6020, 0x2cdda: 0x6cbe6220, 0x2cddb: 0x6cbe6420, - 0x2cddc: 0x6cbe6620, 0x2cddd: 0x6cbe6820, 0x2cdde: 0x6cbe6a20, 0x2cddf: 0x6cbe6c20, - 0x2cde0: 0x6cbe6e20, 0x2cde1: 0x6cbe7020, 0x2cde2: 0x6cbe7220, 0x2cde3: 0x6cbe7420, - 0x2cde4: 0x6cbe7620, 0x2cde5: 0x6cbe7820, 0x2cde6: 0x6cbe7a20, 0x2cde7: 0x6cbe7c20, - 0x2cde8: 0x6cbe7e20, 0x2cde9: 0x6cbe8020, 0x2cdea: 0x6cbe8220, 0x2cdeb: 0x6cbe8420, - 0x2cdec: 0x6cbe8620, 0x2cded: 0x6cbe8820, 0x2cdee: 0x6cbe8a20, 0x2cdef: 0x6cbe8c20, - 0x2cdf0: 0x6ceec820, 0x2cdf1: 0x6ceeca20, 0x2cdf2: 0x6ceecc20, 0x2cdf3: 0x6ceece20, - 0x2cdf4: 0x6ceed020, 0x2cdf5: 0x6ceed220, 0x2cdf6: 0x6ceed420, 0x2cdf7: 0x6ceed620, - 0x2cdf8: 0x6ceed820, 0x2cdf9: 0x6ceeda20, 0x2cdfa: 0x6ceedc20, 0x2cdfb: 0x6ceede20, - 0x2cdfc: 0x6ceee020, 0x2cdfd: 0x6ceee220, 0x2cdfe: 0x6ceee420, 0x2cdff: 0x6ceee620, - // Block 0xb38, offset 0x2ce00 - 0x2ce00: 0x6ceee820, 0x2ce01: 0x6ceeea20, 0x2ce02: 0x6ceeec20, 0x2ce03: 0x6ceeee20, - 0x2ce04: 0x6ceef020, 0x2ce05: 0x6ceef220, 0x2ce06: 0x6ceef420, 0x2ce07: 0x6ceef620, - 0x2ce08: 0x6ceef820, 0x2ce09: 0x6ceefa20, 0x2ce0a: 0x6ceefc20, 0x2ce0b: 0x6ceefe20, - 0x2ce0c: 0x6cef0020, 0x2ce0d: 0x6cef0220, 0x2ce0e: 0x6cef0420, 0x2ce0f: 0x6cbe8e20, - 0x2ce10: 0x6cef0620, 0x2ce11: 0x6cef0820, 0x2ce12: 0x6cef0a20, 0x2ce13: 0x6cef0c20, - 0x2ce14: 0x6cef0e20, 0x2ce15: 0x6d1e6e20, 0x2ce16: 0x6d1e7020, 0x2ce17: 0x6d1e7220, - 0x2ce18: 0x6d1e7420, 0x2ce19: 0x6d1e7620, 0x2ce1a: 0x6d1e7820, 0x2ce1b: 0x6d1e7a20, - 0x2ce1c: 0x6d1e7c20, 0x2ce1d: 0x6d1e7e20, 0x2ce1e: 0x6d1e8020, 0x2ce1f: 0x6d1e8220, - 0x2ce20: 0x6d1e8420, 0x2ce21: 0x6d1e8620, 0x2ce22: 0x6d1e8820, 0x2ce23: 0x6d1e8a20, - 0x2ce24: 0x6d1e8c20, 0x2ce25: 0x6d1e8e20, 0x2ce26: 0x6d1e9020, 0x2ce27: 0x6d1e9220, - 0x2ce28: 0x6d1e9420, 0x2ce29: 0x6d1e9620, 0x2ce2a: 0x6d1e9820, 0x2ce2b: 0x6d1e9a20, - 0x2ce2c: 0x6d1e9c20, 0x2ce2d: 0x6d1e9e20, 0x2ce2e: 0x6d1ea020, 0x2ce2f: 0x6d1ea220, - 0x2ce30: 0x6d1ea420, 0x2ce31: 0x6d1ea620, 0x2ce32: 0x6d1ea820, 0x2ce33: 0x6d1f2820, - 0x2ce34: 0x6d4bea20, 0x2ce35: 0x6d4bec20, 0x2ce36: 0x6d4bee20, 0x2ce37: 0x6d4bf020, - 0x2ce38: 0x6d4bf220, 0x2ce39: 0x6d4bf420, 0x2ce3a: 0x6d4bf620, 0x2ce3b: 0x6d4bf820, - 0x2ce3c: 0x6d4bfa20, 0x2ce3d: 0x6d4bfc20, 0x2ce3e: 0x6d4bfe20, 0x2ce3f: 0x6d4c0020, - // Block 0xb39, offset 0x2ce40 - 0x2ce40: 0x6d4c0220, 0x2ce41: 0x6d4c0420, 0x2ce42: 0x6d4c0620, 0x2ce43: 0x6d4c0820, - 0x2ce44: 0x6d4c0a20, 0x2ce45: 0x6d4c0c20, 0x2ce46: 0x6d4c0e20, 0x2ce47: 0x6d4c1020, - 0x2ce48: 0x6d4c1220, 0x2ce49: 0x6d4c1420, 0x2ce4a: 0x6d4c1620, 0x2ce4b: 0x6d4c1820, - 0x2ce4c: 0x6d4c1a20, 0x2ce4d: 0x6d4c1c20, 0x2ce4e: 0x6d4c1e20, 0x2ce4f: 0x6d4c2020, - 0x2ce50: 0x6d794220, 0x2ce51: 0x6d794420, 0x2ce52: 0x6d794620, 0x2ce53: 0x6d794820, - 0x2ce54: 0x6d794a20, 0x2ce55: 0x6d794c20, 0x2ce56: 0x6d794e20, 0x2ce57: 0x6d795020, - 0x2ce58: 0x6d795220, 0x2ce59: 0x6d795420, 0x2ce5a: 0x6d795620, 0x2ce5b: 0x6d795820, - 0x2ce5c: 0x6d795a20, 0x2ce5d: 0x6d795c20, 0x2ce5e: 0x6d795e20, 0x2ce5f: 0x6d796020, - 0x2ce60: 0x6d796220, 0x2ce61: 0x6d796420, 0x2ce62: 0x6d796620, 0x2ce63: 0x6da22620, - 0x2ce64: 0x6da22820, 0x2ce65: 0x6da22a20, 0x2ce66: 0x6da22c20, 0x2ce67: 0x6da22e20, - 0x2ce68: 0x6d79de20, 0x2ce69: 0x6da23020, 0x2ce6a: 0x6da23220, 0x2ce6b: 0x6da23420, - 0x2ce6c: 0x6da23620, 0x2ce6d: 0x6da23820, 0x2ce6e: 0x6da23a20, 0x2ce6f: 0x6da23c20, - 0x2ce70: 0x6da23e20, 0x2ce71: 0x6da24020, 0x2ce72: 0x6da24220, 0x2ce73: 0x6da24420, - 0x2ce74: 0x6d796820, 0x2ce75: 0x6da24620, 0x2ce76: 0x6da24820, 0x2ce77: 0x6da24a20, - 0x2ce78: 0x6dc45820, 0x2ce79: 0x6de16220, 0x2ce7a: 0x6dc45a20, 0x2ce7b: 0x6dc45c20, - 0x2ce7c: 0x6dc45e20, 0x2ce7d: 0x6de15820, 0x2ce7e: 0x6de16420, 0x2ce7f: 0x6de16620, - // Block 0xb3a, offset 0x2ce80 - 0x2ce80: 0x6df96220, 0x2ce81: 0x6df96420, 0x2ce82: 0x6df96620, 0x2ce83: 0x6df96820, - 0x2ce84: 0x6df96a20, 0x2ce85: 0x6df96c20, 0x2ce86: 0x6df96e20, 0x2ce87: 0x6e0d2a20, - 0x2ce88: 0x6e0d2c20, 0x2ce89: 0x6e0d2e20, 0x2ce8a: 0x6e1c9a20, 0x2ce8b: 0x6e1c9c20, - 0x2ce8c: 0x6e1c9e20, 0x2ce8d: 0x6e28a620, 0x2ce8e: 0x6e31d820, 0x2ce8f: 0x6e31da20, - 0x2ce90: 0x6c019620, 0x2ce91: 0x6c019820, 0x2ce92: 0x6c019a20, 0x2ce93: 0x6c019c20, - 0x2ce94: 0x6c03f220, 0x2ce95: 0x6c081220, 0x2ce96: 0x6c0fa820, 0x2ce97: 0x6c0faa20, - 0x2ce98: 0x6c0fac20, 0x2ce99: 0x6c0fae20, 0x2ce9a: 0x6c1c6620, 0x2ce9b: 0x6c1c6820, - 0x2ce9c: 0x6c1c6a20, 0x2ce9d: 0x6c1c6c20, 0x2ce9e: 0x6c1c6e20, 0x2ce9f: 0x6c2fca20, - 0x2cea0: 0x6c2fcc20, 0x2cea1: 0x6c2fce20, 0x2cea2: 0x6c2fd020, 0x2cea3: 0x6c2fd220, - 0x2cea4: 0x6c2fd420, 0x2cea5: 0x6c2fd620, 0x2cea6: 0x6c2fd820, 0x2cea7: 0x6c2fda20, - 0x2cea8: 0x6c4a1e20, 0x2cea9: 0x6c4a2020, 0x2ceaa: 0x6c4a2220, 0x2ceab: 0x6c6be020, - 0x2ceac: 0x6c6be220, 0x2cead: 0x6c6be420, 0x2ceae: 0x6c930420, 0x2ceaf: 0x6c930620, - 0x2ceb0: 0x6c930820, 0x2ceb1: 0x6cbf4420, 0x2ceb2: 0x6c930a20, 0x2ceb3: 0x6cbf6220, - 0x2ceb4: 0x6cef7a20, 0x2ceb5: 0x6d1f2a20, 0x2ceb6: 0x6cef9820, 0x2ceb7: 0x6d1f2c20, - 0x2ceb8: 0x6d79e220, 0x2ceb9: 0x6d79e420, 0x2ceba: 0x6da29620, 0x2cebb: 0x6da29820, - 0x2cebc: 0x6de19020, 0x2cebd: 0x6df98620, 0x2cebe: 0x6df98820, 0x2cebf: 0x6e1cb420, - // Block 0xb3b, offset 0x2cec0 - 0x2cec0: 0x6c01a020, 0x2cec1: 0x6c082220, 0x2cec2: 0x6c082420, 0x2cec3: 0x6c082620, - 0x2cec4: 0x6c082820, 0x2cec5: 0x6c0fbc20, 0x2cec6: 0x6c0fbe20, 0x2cec7: 0x6c0fc020, - 0x2cec8: 0x6c0fc220, 0x2cec9: 0x6c0fc420, 0x2ceca: 0x6c1c8e20, 0x2cecb: 0x6c1c9020, - 0x2cecc: 0x6c1c9220, 0x2cecd: 0x6c1c9420, 0x2cece: 0x6c1c9620, 0x2cecf: 0x6c1c9820, - 0x2ced0: 0x6c1c9a20, 0x2ced1: 0x6c1c9c20, 0x2ced2: 0x6c1c9e20, 0x2ced3: 0x6c2ffc20, - 0x2ced4: 0x6c2ffe20, 0x2ced5: 0x6c300020, 0x2ced6: 0x6c300220, 0x2ced7: 0x6c300420, - 0x2ced8: 0x6c300620, 0x2ced9: 0x6c300820, 0x2ceda: 0x6c300a20, 0x2cedb: 0x6c300c20, - 0x2cedc: 0x6c300e20, 0x2cedd: 0x6c301020, 0x2cede: 0x6c301220, 0x2cedf: 0x6c301420, - 0x2cee0: 0x6c301620, 0x2cee1: 0x6c301820, 0x2cee2: 0x6c4a4820, 0x2cee3: 0x6c4a4a20, - 0x2cee4: 0x6c4a4c20, 0x2cee5: 0x6c4a4e20, 0x2cee6: 0x6c4a5020, 0x2cee7: 0x6c6bfe20, - 0x2cee8: 0x6c4a5220, 0x2cee9: 0x6c4a5420, 0x2ceea: 0x6c4a5620, 0x2ceeb: 0x6c4a5820, - 0x2ceec: 0x6c6c0020, 0x2ceed: 0x6c6c0220, 0x2ceee: 0x6c6c0420, 0x2ceef: 0x6c6c0620, - 0x2cef0: 0x6c6c0820, 0x2cef1: 0x6c6c0a20, 0x2cef2: 0x6c6c0c20, 0x2cef3: 0x6c6c0e20, - 0x2cef4: 0x6c6c1020, 0x2cef5: 0x6c6c1220, 0x2cef6: 0x6c6c1420, 0x2cef7: 0x6c6c1620, - 0x2cef8: 0x6c6c1820, 0x2cef9: 0x6c6c1a20, 0x2cefa: 0x6c6c1c20, 0x2cefb: 0x6c6c1e20, - 0x2cefc: 0x6c6c2020, 0x2cefd: 0x6c6c2220, 0x2cefe: 0x6c6c2420, 0x2ceff: 0x6c933020, - // Block 0xb3c, offset 0x2cf00 - 0x2cf00: 0x6c933220, 0x2cf01: 0x6c933420, 0x2cf02: 0x6c933620, 0x2cf03: 0x6c933820, - 0x2cf04: 0x6c933a20, 0x2cf05: 0x6c933c20, 0x2cf06: 0x6c933e20, 0x2cf07: 0x6c934020, - 0x2cf08: 0x6c934220, 0x2cf09: 0x6c934420, 0x2cf0a: 0x6cbf6820, 0x2cf0b: 0x6cbf6a20, - 0x2cf0c: 0x6cbf6c20, 0x2cf0d: 0x6cbf6e20, 0x2cf0e: 0x6cbf7020, 0x2cf0f: 0x6cbf7220, - 0x2cf10: 0x6cbf7420, 0x2cf11: 0x6cbf7620, 0x2cf12: 0x6cbf7820, 0x2cf13: 0x6cbf7a20, - 0x2cf14: 0x6cbf7c20, 0x2cf15: 0x6cbf7e20, 0x2cf16: 0x6cefa420, 0x2cf17: 0x6cefa620, - 0x2cf18: 0x6cefa820, 0x2cf19: 0x6cefaa20, 0x2cf1a: 0x6cefac20, 0x2cf1b: 0x6cefae20, - 0x2cf1c: 0x6cefb020, 0x2cf1d: 0x6cefb220, 0x2cf1e: 0x6d1f4420, 0x2cf1f: 0x6d1f4620, - 0x2cf20: 0x6d1f4820, 0x2cf21: 0x6d1f4a20, 0x2cf22: 0x6d1f4c20, 0x2cf23: 0x6d1f4e20, - 0x2cf24: 0x6d1f5020, 0x2cf25: 0x6d1f5220, 0x2cf26: 0x6d1f5420, 0x2cf27: 0x6d1f5620, - 0x2cf28: 0x6d1f5820, 0x2cf29: 0x6d4cce20, 0x2cf2a: 0x6cbf8020, 0x2cf2b: 0x6d4cd020, - 0x2cf2c: 0x6d4cd220, 0x2cf2d: 0x6d4cd420, 0x2cf2e: 0x6d4cd620, 0x2cf2f: 0x6d79fe20, - 0x2cf30: 0x6d7a0020, 0x2cf31: 0x6da2a020, 0x2cf32: 0x6da2a220, 0x2cf33: 0x6de19a20, - 0x2cf34: 0x6de19c20, 0x2cf35: 0x6de19e20, 0x2cf36: 0x6df99620, 0x2cf37: 0x6e0d4820, - 0x2cf38: 0x6c01a220, 0x2cf39: 0x6c083220, 0x2cf3a: 0x6c0fe220, 0x2cf3b: 0x6c0fe420, - 0x2cf3c: 0x6c0fe620, 0x2cf3d: 0x6c1cbe20, 0x2cf3e: 0x6c1cc020, 0x2cf3f: 0x6c1cc220, - // Block 0xb3d, offset 0x2cf40 - 0x2cf40: 0x6c304620, 0x2cf41: 0x6c4a8e20, 0x2cf42: 0x6c4a9020, 0x2cf43: 0x6c6c7420, - 0x2cf44: 0x6c6c7620, 0x2cf45: 0x6c6c7820, 0x2cf46: 0x6c4a9220, 0x2cf47: 0x6c938220, - 0x2cf48: 0x6c938420, 0x2cf49: 0x6c938620, 0x2cf4a: 0x6cbfd620, 0x2cf4b: 0x6cbfd820, - 0x2cf4c: 0x6cbfda20, 0x2cf4d: 0x6d1fac20, 0x2cf4e: 0x6d4d2220, 0x2cf4f: 0x6c01a820, - 0x2cf50: 0x6c03fc20, 0x2cf51: 0x6c03fe20, 0x2cf52: 0x6c083420, 0x2cf53: 0x6c083620, - 0x2cf54: 0x6c083820, 0x2cf55: 0x6c083a20, 0x2cf56: 0x6c0fec20, 0x2cf57: 0x6c0fee20, - 0x2cf58: 0x6c0ff020, 0x2cf59: 0x6c305820, 0x2cf5a: 0x6c305a20, 0x2cf5b: 0x6c4aa020, - 0x2cf5c: 0x6c4aa220, 0x2cf5d: 0x6c4aa420, 0x2cf5e: 0x6cbfec20, 0x2cf5f: 0x6cf00020, - 0x2cf60: 0x6cf00220, 0x2cf61: 0x6d1fbc20, 0x2cf62: 0x6c01ac20, 0x2cf63: 0x6c040420, - 0x2cf64: 0x6c040620, 0x2cf65: 0x6c0ffc20, 0x2cf66: 0x6c0ffe20, 0x2cf67: 0x6c100020, - 0x2cf68: 0x6c1cd820, 0x2cf69: 0x6c1cda20, 0x2cf6a: 0x6c1cdc20, 0x2cf6b: 0x6c1cde20, - 0x2cf6c: 0x6c1ce020, 0x2cf6d: 0x6c306e20, 0x2cf6e: 0x6c4abe20, 0x2cf6f: 0x6c4ac020, - 0x2cf70: 0x6cc00620, 0x2cf71: 0x6cc00820, 0x2cf72: 0x6cf01620, 0x2cf73: 0x6cf01820, - 0x2cf74: 0x6cf01a20, 0x2cf75: 0x6d4d5020, 0x2cf76: 0x6da2d220, 0x2cf77: 0x6da2d420, - 0x2cf78: 0x6c01b220, 0x2cf79: 0x6c024c20, 0x2cf7a: 0x6c040a20, 0x2cf7b: 0x6c085220, - 0x2cf7c: 0x6c085420, 0x2cf7d: 0x6c100e20, 0x2cf7e: 0x6c1cfa20, 0x2cf7f: 0x6c1cfc20, - // Block 0xb3e, offset 0x2cf80 - 0x2cf80: 0x6c1cfe20, 0x2cf81: 0x6c1d0020, 0x2cf82: 0x6c1d0220, 0x2cf83: 0x6c1d0420, - 0x2cf84: 0x6c308620, 0x2cf85: 0x6c308820, 0x2cf86: 0x6c308a20, 0x2cf87: 0x6c308c20, - 0x2cf88: 0x6c308e20, 0x2cf89: 0x6c309020, 0x2cf8a: 0x6c309220, 0x2cf8b: 0x6c4ad620, - 0x2cf8c: 0x6c4ad820, 0x2cf8d: 0x6c4ada20, 0x2cf8e: 0x6c4adc20, 0x2cf8f: 0x6c4ade20, - 0x2cf90: 0x6c6cae20, 0x2cf91: 0x6c6cb020, 0x2cf92: 0x6c6cb220, 0x2cf93: 0x6c6cb420, - 0x2cf94: 0x6c6cb620, 0x2cf95: 0x6c6cb820, 0x2cf96: 0x6c6cba20, 0x2cf97: 0x6c6cbc20, - 0x2cf98: 0x6c6cbe20, 0x2cf99: 0x6c93d020, 0x2cf9a: 0x6c93d220, 0x2cf9b: 0x6c93d420, - 0x2cf9c: 0x6c93d620, 0x2cf9d: 0x6c93d820, 0x2cf9e: 0x6cc02420, 0x2cf9f: 0x6cc02620, - 0x2cfa0: 0x6c941020, 0x2cfa1: 0x6cc02820, 0x2cfa2: 0x6d1fe020, 0x2cfa3: 0x6d1fe220, - 0x2cfa4: 0x6d4d6220, 0x2cfa5: 0x6d4d6420, 0x2cfa6: 0x6d4d6620, 0x2cfa7: 0x6d4d6820, - 0x2cfa8: 0x6da2da20, 0x2cfa9: 0x6dc4c620, 0x2cfaa: 0x6dc4c820, 0x2cfab: 0x6de1c020, - 0x2cfac: 0x6e0d6420, 0x2cfad: 0x6e31f020, 0x2cfae: 0x6c01b620, 0x2cfaf: 0x6c040e20, - 0x2cfb0: 0x6c102820, 0x2cfb1: 0x6c01ba20, 0x2cfb2: 0x6c041220, 0x2cfb3: 0x6c086c20, - 0x2cfb4: 0x6c086e20, 0x2cfb5: 0x6c087020, 0x2cfb6: 0x6c087220, 0x2cfb7: 0x6c087420, - 0x2cfb8: 0x6c104620, 0x2cfb9: 0x6c104820, 0x2cfba: 0x6c104a20, 0x2cfbb: 0x6c104c20, - 0x2cfbc: 0x6c104e20, 0x2cfbd: 0x6c105020, 0x2cfbe: 0x6c105220, 0x2cfbf: 0x6c105420, - // Block 0xb3f, offset 0x2cfc0 - 0x2cfc0: 0x6c105620, 0x2cfc1: 0x6c105820, 0x2cfc2: 0x6c105a20, 0x2cfc3: 0x6c105c20, - 0x2cfc4: 0x6c1d3c20, 0x2cfc5: 0x6c1d3e20, 0x2cfc6: 0x6c1d4020, 0x2cfc7: 0x6c1d4220, - 0x2cfc8: 0x6c1d4420, 0x2cfc9: 0x6c1d4620, 0x2cfca: 0x6c1d4820, 0x2cfcb: 0x6c1d4a20, - 0x2cfcc: 0x6c1d4c20, 0x2cfcd: 0x6c1dd220, 0x2cfce: 0x6c1d4e20, 0x2cfcf: 0x6c1d5020, - 0x2cfd0: 0x6c1d5220, 0x2cfd1: 0x6c1d5420, 0x2cfd2: 0x6c1d5620, 0x2cfd3: 0x6c1d5820, - 0x2cfd4: 0x6c1d5a20, 0x2cfd5: 0x6c1d5c20, 0x2cfd6: 0x6c1d5e20, 0x2cfd7: 0x6c1d6020, - 0x2cfd8: 0x6c1d6220, 0x2cfd9: 0x6c1d6420, 0x2cfda: 0x6c1d6620, 0x2cfdb: 0x6c1d6820, - 0x2cfdc: 0x6c1d6a20, 0x2cfdd: 0x6c30ce20, 0x2cfde: 0x6c30d020, 0x2cfdf: 0x6c30d220, - 0x2cfe0: 0x6c30d420, 0x2cfe1: 0x6c30d620, 0x2cfe2: 0x6c30d820, 0x2cfe3: 0x6c30da20, - 0x2cfe4: 0x6c30dc20, 0x2cfe5: 0x6c30de20, 0x2cfe6: 0x6c30e020, 0x2cfe7: 0x6c30e220, - 0x2cfe8: 0x6c30e420, 0x2cfe9: 0x6c30e620, 0x2cfea: 0x6c30e820, 0x2cfeb: 0x6c30ea20, - 0x2cfec: 0x6c30ec20, 0x2cfed: 0x6c30ee20, 0x2cfee: 0x6c30f020, 0x2cfef: 0x6c30f220, - 0x2cff0: 0x6c30f420, 0x2cff1: 0x6c30f620, 0x2cff2: 0x6c30f820, 0x2cff3: 0x6c30fa20, - 0x2cff4: 0x6c30fc20, 0x2cff5: 0x6c30fe20, 0x2cff6: 0x6c310020, 0x2cff7: 0x6c310220, - 0x2cff8: 0x6c310420, 0x2cff9: 0x6c310620, 0x2cffa: 0x6c310820, 0x2cffb: 0x6c310a20, - 0x2cffc: 0x6c310c20, 0x2cffd: 0x6c310e20, 0x2cffe: 0x6c311020, 0x2cfff: 0x6c311220, - // Block 0xb40, offset 0x2d000 - 0x2d000: 0x6c311420, 0x2d001: 0x6c311620, 0x2d002: 0x6c311820, 0x2d003: 0x6c311a20, - 0x2d004: 0x6c311c20, 0x2d005: 0x6c311e20, 0x2d006: 0x6c4b2620, 0x2d007: 0x6c4b2820, - 0x2d008: 0x6c4b2a20, 0x2d009: 0x6c4b2c20, 0x2d00a: 0x6c4b2e20, 0x2d00b: 0x6c4b3020, - 0x2d00c: 0x6c4b3220, 0x2d00d: 0x6c4b3420, 0x2d00e: 0x6c4b3620, 0x2d00f: 0x6c4b3820, - 0x2d010: 0x6c4b3a20, 0x2d011: 0x6c4b3c20, 0x2d012: 0x6c4b3e20, 0x2d013: 0x6c4b4020, - 0x2d014: 0x6c4b4220, 0x2d015: 0x6c4b4420, 0x2d016: 0x6c4b4620, 0x2d017: 0x6c4b4820, - 0x2d018: 0x6c4b4a20, 0x2d019: 0x6c4b4c20, 0x2d01a: 0x6c4b4e20, 0x2d01b: 0x6c4b5020, - 0x2d01c: 0x6c4b5220, 0x2d01d: 0x6c4b5420, 0x2d01e: 0x6c4b5620, 0x2d01f: 0x6c4b5820, - 0x2d020: 0x6c4b5a20, 0x2d021: 0x6c4b5c20, 0x2d022: 0x6c4b5e20, 0x2d023: 0x6c4b6020, - 0x2d024: 0x6c4b6220, 0x2d025: 0x6c4b6420, 0x2d026: 0x6c4b6620, 0x2d027: 0x6c4b6820, - 0x2d028: 0x6c6d2020, 0x2d029: 0x6c6d2220, 0x2d02a: 0x6c6d2420, 0x2d02b: 0x6c6d2620, - 0x2d02c: 0x6c6d2820, 0x2d02d: 0x6c6d2a20, 0x2d02e: 0x6c6d2c20, 0x2d02f: 0x6c6d2e20, - 0x2d030: 0x6c6d3020, 0x2d031: 0x6c6d3220, 0x2d032: 0x6c6d3420, 0x2d033: 0x6c6d3620, - 0x2d034: 0x6c6d3820, 0x2d035: 0x6c6d3a20, 0x2d036: 0x6c6d3c20, 0x2d037: 0x6c6d3e20, - 0x2d038: 0x6c4bcc20, 0x2d039: 0x6c6d4020, 0x2d03a: 0x6c6d4220, 0x2d03b: 0x6c6d4420, - 0x2d03c: 0x6c6d4620, 0x2d03d: 0x6c6d4820, 0x2d03e: 0x6c6d4a20, 0x2d03f: 0x6c6d4c20, - // Block 0xb41, offset 0x2d040 - 0x2d040: 0x6c6d4e20, 0x2d041: 0x6c6d5020, 0x2d042: 0x6c6d5220, 0x2d043: 0x6c6d5420, - 0x2d044: 0x6c6d5620, 0x2d045: 0x6c6d5820, 0x2d046: 0x6c943420, 0x2d047: 0x6c943620, - 0x2d048: 0x6c943820, 0x2d049: 0x6c943a20, 0x2d04a: 0x6c943c20, 0x2d04b: 0x6c943e20, - 0x2d04c: 0x6c944020, 0x2d04d: 0x6c944220, 0x2d04e: 0x6c944420, 0x2d04f: 0x6c944620, - 0x2d050: 0x6c944820, 0x2d051: 0x6c944a20, 0x2d052: 0x6c944c20, 0x2d053: 0x6c944e20, - 0x2d054: 0x6c945020, 0x2d055: 0x6c945220, 0x2d056: 0x6c945420, 0x2d057: 0x6c945620, - 0x2d058: 0x6c945820, 0x2d059: 0x6c945a20, 0x2d05a: 0x6c945c20, 0x2d05b: 0x6c945e20, - 0x2d05c: 0x6c946020, 0x2d05d: 0x6c946220, 0x2d05e: 0x6c946420, 0x2d05f: 0x6c946620, - 0x2d060: 0x6c946820, 0x2d061: 0x6c946a20, 0x2d062: 0x6c946c20, 0x2d063: 0x6c946e20, - 0x2d064: 0x6c947020, 0x2d065: 0x6c947220, 0x2d066: 0x6c947420, 0x2d067: 0x6c947620, - 0x2d068: 0x6c947820, 0x2d069: 0x6c947a20, 0x2d06a: 0x6c947c20, 0x2d06b: 0x6c947e20, - 0x2d06c: 0x6c948020, 0x2d06d: 0x6c948220, 0x2d06e: 0x6c948420, 0x2d06f: 0x6c948620, - 0x2d070: 0x6c948820, 0x2d071: 0x6cc08420, 0x2d072: 0x6cc08620, 0x2d073: 0x6cc08820, - 0x2d074: 0x6cc08a20, 0x2d075: 0x6cc08c20, 0x2d076: 0x6cc08e20, 0x2d077: 0x6cc09020, - 0x2d078: 0x6cc09220, 0x2d079: 0x6cc09420, 0x2d07a: 0x6cc09620, 0x2d07b: 0x6cc09820, - 0x2d07c: 0x6cc09a20, 0x2d07d: 0x6cc09c20, 0x2d07e: 0x6cc09e20, 0x2d07f: 0x6cc0a020, - // Block 0xb42, offset 0x2d080 - 0x2d080: 0x6cc0a220, 0x2d081: 0x6cc0a420, 0x2d082: 0x6cc0a620, 0x2d083: 0x6cc0a820, - 0x2d084: 0x6cc0aa20, 0x2d085: 0x6cc0ac20, 0x2d086: 0x6cc0ae20, 0x2d087: 0x6cc0b020, - 0x2d088: 0x6cc0b220, 0x2d089: 0x6cc0b420, 0x2d08a: 0x6cf07a20, 0x2d08b: 0x6cc0b620, - 0x2d08c: 0x6cc0b820, 0x2d08d: 0x6cc0ba20, 0x2d08e: 0x6cc0bc20, 0x2d08f: 0x6cc0be20, - 0x2d090: 0x6cc0c020, 0x2d091: 0x6cc0c220, 0x2d092: 0x6cc0c420, 0x2d093: 0x6cc0c620, - 0x2d094: 0x6cc0c820, 0x2d095: 0x6cc0ca20, 0x2d096: 0x6cc0cc20, 0x2d097: 0x6cc0ce20, - 0x2d098: 0x6cc0d020, 0x2d099: 0x6cc0d220, 0x2d09a: 0x6cc0d420, 0x2d09b: 0x6cc0d620, - 0x2d09c: 0x6cc0d820, 0x2d09d: 0x6cc0da20, 0x2d09e: 0x6cf07c20, 0x2d09f: 0x6cf07e20, - 0x2d0a0: 0x6cf08020, 0x2d0a1: 0x6cf08220, 0x2d0a2: 0x6cf08420, 0x2d0a3: 0x6cf08620, - 0x2d0a4: 0x6cf08820, 0x2d0a5: 0x6cf08a20, 0x2d0a6: 0x6cf08c20, 0x2d0a7: 0x6cf08e20, - 0x2d0a8: 0x6cf09020, 0x2d0a9: 0x6cf09220, 0x2d0aa: 0x6cf09420, 0x2d0ab: 0x6cc16a20, - 0x2d0ac: 0x6cf09620, 0x2d0ad: 0x6cf09820, 0x2d0ae: 0x6cf09a20, 0x2d0af: 0x6cf09c20, - 0x2d0b0: 0x6cf09e20, 0x2d0b1: 0x6cf0a020, 0x2d0b2: 0x6cf0a220, 0x2d0b3: 0x6cf0a420, - 0x2d0b4: 0x6cf0a620, 0x2d0b5: 0x6cf0a820, 0x2d0b6: 0x6cf0aa20, 0x2d0b7: 0x6d201820, - 0x2d0b8: 0x6d201a20, 0x2d0b9: 0x6d201c20, 0x2d0ba: 0x6d201e20, 0x2d0bb: 0x6d202020, - 0x2d0bc: 0x6d202220, 0x2d0bd: 0x6d202420, 0x2d0be: 0x6d202620, 0x2d0bf: 0x6d202820, - // Block 0xb43, offset 0x2d0c0 - 0x2d0c0: 0x6d202a20, 0x2d0c1: 0x6d202c20, 0x2d0c2: 0x6d202e20, 0x2d0c3: 0x6d203020, - 0x2d0c4: 0x6d203220, 0x2d0c5: 0x6d203420, 0x2d0c6: 0x6d203620, 0x2d0c7: 0x6d203820, - 0x2d0c8: 0x6d203a20, 0x2d0c9: 0x6d203c20, 0x2d0ca: 0x6d203e20, 0x2d0cb: 0x6d204020, - 0x2d0cc: 0x6d204220, 0x2d0cd: 0x6d204420, 0x2d0ce: 0x6d204620, 0x2d0cf: 0x6d4dac20, - 0x2d0d0: 0x6d4dae20, 0x2d0d1: 0x6d4db020, 0x2d0d2: 0x6d4db220, 0x2d0d3: 0x6d4db420, - 0x2d0d4: 0x6d4db620, 0x2d0d5: 0x6d4db820, 0x2d0d6: 0x6d4dba20, 0x2d0d7: 0x6d4dbc20, - 0x2d0d8: 0x6d4dbe20, 0x2d0d9: 0x6d4dc020, 0x2d0da: 0x6d4dc220, 0x2d0db: 0x6d4dc420, - 0x2d0dc: 0x6d4dc620, 0x2d0dd: 0x6d4dc820, 0x2d0de: 0x6d4dca20, 0x2d0df: 0x6d4dcc20, - 0x2d0e0: 0x6d4dce20, 0x2d0e1: 0x6d4dd020, 0x2d0e2: 0x6d4dd220, 0x2d0e3: 0x6d4dd420, - 0x2d0e4: 0x6d4dd620, 0x2d0e5: 0x6d4dd820, 0x2d0e6: 0x6d7a6e20, 0x2d0e7: 0x6d7a7020, - 0x2d0e8: 0x6d7a7220, 0x2d0e9: 0x6d7a7420, 0x2d0ea: 0x6d7a7620, 0x2d0eb: 0x6d7a7820, - 0x2d0ec: 0x6d7a7a20, 0x2d0ed: 0x6d7a7c20, 0x2d0ee: 0x6d7a7e20, 0x2d0ef: 0x6d7a8020, - 0x2d0f0: 0x6d7a8220, 0x2d0f1: 0x6d7a8420, 0x2d0f2: 0x6d7a8620, 0x2d0f3: 0x6d7a8820, - 0x2d0f4: 0x6d7a8a20, 0x2d0f5: 0x6d7a8c20, 0x2d0f6: 0x6d7a8e20, 0x2d0f7: 0x6da2ec20, - 0x2d0f8: 0x6da2ee20, 0x2d0f9: 0x6da2f020, 0x2d0fa: 0x6da2f220, 0x2d0fb: 0x6da35220, - 0x2d0fc: 0x6da2f420, 0x2d0fd: 0x6da2f620, 0x2d0fe: 0x6da2f820, 0x2d0ff: 0x6da2fa20, - // Block 0xb44, offset 0x2d100 - 0x2d100: 0x6dc4d620, 0x2d101: 0x6dc4d820, 0x2d102: 0x6dc4da20, 0x2d103: 0x6de1d820, - 0x2d104: 0x6de1da20, 0x2d105: 0x6de1dc20, 0x2d106: 0x6df9b220, 0x2d107: 0x6df9b420, - 0x2d108: 0x6df9b620, 0x2d109: 0x6df9b820, 0x2d10a: 0x6df9ba20, 0x2d10b: 0x6e0d6e20, - 0x2d10c: 0x6df9bc20, 0x2d10d: 0x6e0d7420, 0x2d10e: 0x6e1cd820, 0x2d10f: 0x6e0d7620, - 0x2d110: 0x6e0d7820, 0x2d111: 0x6e1cda20, 0x2d112: 0x6e1cdc20, 0x2d113: 0x6e1cde20, - 0x2d114: 0x6e1ce020, 0x2d115: 0x6e1ce220, 0x2d116: 0x6e28b220, 0x2d117: 0x6e1ce420, - 0x2d118: 0x6e28b420, 0x2d119: 0x6e31f420, 0x2d11a: 0x6e28b620, 0x2d11b: 0x6c01bc20, - 0x2d11c: 0x6c00c620, 0x2d11d: 0x6c01be20, 0x2d11e: 0x6c109420, 0x2d11f: 0x6c109620, - 0x2d120: 0x6c1dd420, 0x2d121: 0x6c272c20, 0x2d122: 0x6c954a20, 0x2d123: 0x6c954c20, - 0x2d124: 0x6d4e4820, 0x2d125: 0x6c01c420, 0x2d126: 0x6c089220, 0x2d127: 0x6c089420, - 0x2d128: 0x6c089620, 0x2d129: 0x6c10a220, 0x2d12a: 0x6c10a420, 0x2d12b: 0x6c1dde20, - 0x2d12c: 0x6c4bda20, 0x2d12d: 0x6c4bdc20, 0x2d12e: 0x6c6dec20, 0x2d12f: 0x6cc17020, - 0x2d130: 0x6cf11020, 0x2d131: 0x6c01c620, 0x2d132: 0x6c01c820, 0x2d133: 0x6c01ca20, - 0x2d134: 0x6c042820, 0x2d135: 0x6c1de620, 0x2d136: 0x6c318a20, 0x2d137: 0x6c4be020, - 0x2d138: 0x6c4be220, 0x2d139: 0x6c4be420, 0x2d13a: 0x6c4be620, 0x2d13b: 0x6c4be820, - 0x2d13c: 0x6c6df220, 0x2d13d: 0x6cc17820, 0x2d13e: 0x6c01cc20, 0x2d13f: 0x6c042c20, - // Block 0xb45, offset 0x2d140 - 0x2d140: 0x6c042e20, 0x2d141: 0x6c043020, 0x2d142: 0x6c08aa20, 0x2d143: 0x6c08ac20, - 0x2d144: 0x6c08ae20, 0x2d145: 0x6c08b020, 0x2d146: 0x6c10b420, 0x2d147: 0x6c10b620, - 0x2d148: 0x6c10b820, 0x2d149: 0x6c1df620, 0x2d14a: 0x6c1df820, 0x2d14b: 0x6c1dfa20, - 0x2d14c: 0x6c1dfc20, 0x2d14d: 0x6c1dfe20, 0x2d14e: 0x6c1e0020, 0x2d14f: 0x6c1e0220, - 0x2d150: 0x6c1e0420, 0x2d151: 0x6c319a20, 0x2d152: 0x6c319c20, 0x2d153: 0x6c319e20, - 0x2d154: 0x6c31a020, 0x2d155: 0x6c31a220, 0x2d156: 0x6c31a420, 0x2d157: 0x6c31a620, - 0x2d158: 0x6c31a820, 0x2d159: 0x6c31aa20, 0x2d15a: 0x6c31ac20, 0x2d15b: 0x6c31ae20, - 0x2d15c: 0x6c31b020, 0x2d15d: 0x6c4bfc20, 0x2d15e: 0x6c4bfe20, 0x2d15f: 0x6c4c0020, - 0x2d160: 0x6c4c0220, 0x2d161: 0x6c4c0420, 0x2d162: 0x6c4c0620, 0x2d163: 0x6c4c0820, - 0x2d164: 0x6c4c0a20, 0x2d165: 0x6c4c0c20, 0x2d166: 0x6c4c0e20, 0x2d167: 0x6c4c1020, - 0x2d168: 0x6c6e0020, 0x2d169: 0x6c6e0220, 0x2d16a: 0x6c6e0420, 0x2d16b: 0x6c6e0620, - 0x2d16c: 0x6c6e0820, 0x2d16d: 0x6c6e0a20, 0x2d16e: 0x6c6e0c20, 0x2d16f: 0x6c6e0e20, - 0x2d170: 0x6c6e1020, 0x2d171: 0x6c6e1220, 0x2d172: 0x6c957020, 0x2d173: 0x6c957220, - 0x2d174: 0x6c957420, 0x2d175: 0x6c957620, 0x2d176: 0x6c957820, 0x2d177: 0x6c957a20, - 0x2d178: 0x6c957c20, 0x2d179: 0x6c957e20, 0x2d17a: 0x6c958020, 0x2d17b: 0x6c958220, - 0x2d17c: 0x6c958420, 0x2d17d: 0x6cc19820, 0x2d17e: 0x6c95ca20, 0x2d17f: 0x6cc19a20, - // Block 0xb46, offset 0x2d180 - 0x2d180: 0x6cc19c20, 0x2d181: 0x6cc19e20, 0x2d182: 0x6cc1a020, 0x2d183: 0x6cc1a220, - 0x2d184: 0x6cc1a420, 0x2d185: 0x6cc1a620, 0x2d186: 0x6cc1a820, 0x2d187: 0x6cc1aa20, - 0x2d188: 0x6cc1f220, 0x2d189: 0x6cc1ac20, 0x2d18a: 0x6cf12420, 0x2d18b: 0x6cf12620, - 0x2d18c: 0x6cf12820, 0x2d18d: 0x6cf12a20, 0x2d18e: 0x6cf12c20, 0x2d18f: 0x6cf12e20, - 0x2d190: 0x6d082820, 0x2d191: 0x6d20c820, 0x2d192: 0x6d20ca20, 0x2d193: 0x6d20cc20, - 0x2d194: 0x6d20ce20, 0x2d195: 0x6d20d020, 0x2d196: 0x6d20d220, 0x2d197: 0x6d20d420, - 0x2d198: 0x6d20d620, 0x2d199: 0x6d20d820, 0x2d19a: 0x6d4e5e20, 0x2d19b: 0x6d20da20, - 0x2d19c: 0x6d4e6020, 0x2d19d: 0x6d4e6220, 0x2d19e: 0x6d4e6420, 0x2d19f: 0x6d4e6620, - 0x2d1a0: 0x6d4e6820, 0x2d1a1: 0x6d4e6a20, 0x2d1a2: 0x6d4e6c20, 0x2d1a3: 0x6d210620, - 0x2d1a4: 0x6d4e6e20, 0x2d1a5: 0x6d4e7020, 0x2d1a6: 0x6d7aee20, 0x2d1a7: 0x6d7af020, - 0x2d1a8: 0x6d7af220, 0x2d1a9: 0x6d4ea820, 0x2d1aa: 0x6da36020, 0x2d1ab: 0x6da36220, - 0x2d1ac: 0x6da36420, 0x2d1ad: 0x6dc51020, 0x2d1ae: 0x6dc51220, 0x2d1af: 0x6d7b1a20, - 0x2d1b0: 0x6de21220, 0x2d1b1: 0x6df9e020, 0x2d1b2: 0x6c01ce20, 0x2d1b3: 0x6c08ba20, - 0x2d1b4: 0x6c10da20, 0x2d1b5: 0x6c10dc20, 0x2d1b6: 0x6c10de20, 0x2d1b7: 0x6c31dc20, - 0x2d1b8: 0x6c31de20, 0x2d1b9: 0x6cf15a20, 0x2d1ba: 0x6c01d220, 0x2d1bb: 0x6c043220, - 0x2d1bc: 0x6c08be20, 0x2d1bd: 0x6c4c5e20, 0x2d1be: 0x6cc20020, 0x2d1bf: 0x6c01d420, - // Block 0xb47, offset 0x2d1c0 - 0x2d1c0: 0x6c08c820, 0x2d1c1: 0x6c08ca20, 0x2d1c2: 0x6c08cc20, 0x2d1c3: 0x6c08ce20, - 0x2d1c4: 0x6c10ea20, 0x2d1c5: 0x6c10ec20, 0x2d1c6: 0x6c10ee20, 0x2d1c7: 0x6c1e4620, - 0x2d1c8: 0x6c1e4820, 0x2d1c9: 0x6c1e4a20, 0x2d1ca: 0x6c1e4c20, 0x2d1cb: 0x6c1e4e20, - 0x2d1cc: 0x6c1e5020, 0x2d1cd: 0x6c1e5220, 0x2d1ce: 0x6c1e5420, 0x2d1cf: 0x6c1e5620, - 0x2d1d0: 0x6c1e5820, 0x2d1d1: 0x6c1e5a20, 0x2d1d2: 0x6c1e5c20, 0x2d1d3: 0x6c1e5e20, - 0x2d1d4: 0x6c1e6020, 0x2d1d5: 0x6c320220, 0x2d1d6: 0x6c320420, 0x2d1d7: 0x6c320620, - 0x2d1d8: 0x6c31f020, 0x2d1d9: 0x6c320820, 0x2d1da: 0x6c320a20, 0x2d1db: 0x6c4c6620, - 0x2d1dc: 0x6c320c20, 0x2d1dd: 0x6c320e20, 0x2d1de: 0x6c321020, 0x2d1df: 0x6c321220, - 0x2d1e0: 0x6c4c7620, 0x2d1e1: 0x6c4c7820, 0x2d1e2: 0x6c4c7a20, 0x2d1e3: 0x6c4c7c20, - 0x2d1e4: 0x6c4c7e20, 0x2d1e5: 0x6c4c8020, 0x2d1e6: 0x6c4c8220, 0x2d1e7: 0x6c6e6a20, - 0x2d1e8: 0x6c6e6c20, 0x2d1e9: 0x6c6e6e20, 0x2d1ea: 0x6c6e7020, 0x2d1eb: 0x6c6e7220, - 0x2d1ec: 0x6c6e7420, 0x2d1ed: 0x6c6e7620, 0x2d1ee: 0x6c6e7820, 0x2d1ef: 0x6c6e7a20, - 0x2d1f0: 0x6c4cac20, 0x2d1f1: 0x6c95e220, 0x2d1f2: 0x6c95e420, 0x2d1f3: 0x6c95e620, - 0x2d1f4: 0x6c95e820, 0x2d1f5: 0x6c95ea20, 0x2d1f6: 0x6c95ec20, 0x2d1f7: 0x6c95ee20, - 0x2d1f8: 0x6c95f020, 0x2d1f9: 0x6c95f220, 0x2d1fa: 0x6c95f420, 0x2d1fb: 0x6c95f620, - 0x2d1fc: 0x6c95f820, 0x2d1fd: 0x6cc20c20, 0x2d1fe: 0x6c965020, 0x2d1ff: 0x6cc20e20, - // Block 0xb48, offset 0x2d200 - 0x2d200: 0x6cc21020, 0x2d201: 0x6cc21220, 0x2d202: 0x6cc21420, 0x2d203: 0x6cc21620, - 0x2d204: 0x6cc26420, 0x2d205: 0x6cf16c20, 0x2d206: 0x6cf16e20, 0x2d207: 0x6cf17020, - 0x2d208: 0x6cf17220, 0x2d209: 0x6cf17420, 0x2d20a: 0x6cc21820, 0x2d20b: 0x6cf17620, - 0x2d20c: 0x6cf17820, 0x2d20d: 0x6d211e20, 0x2d20e: 0x6d212020, 0x2d20f: 0x6d212220, - 0x2d210: 0x6d212420, 0x2d211: 0x6d212620, 0x2d212: 0x6d212820, 0x2d213: 0x6d212a20, - 0x2d214: 0x6d212c20, 0x2d215: 0x6d212e20, 0x2d216: 0x6d213020, 0x2d217: 0x6d213220, - 0x2d218: 0x6d213420, 0x2d219: 0x6d216c20, 0x2d21a: 0x6d4ebc20, 0x2d21b: 0x6d4ebe20, - 0x2d21c: 0x6d216e20, 0x2d21d: 0x6d4ec020, 0x2d21e: 0x6d4ec220, 0x2d21f: 0x6d4ec420, - 0x2d220: 0x6d4ec620, 0x2d221: 0x6d4ec820, 0x2d222: 0x6d4eca20, 0x2d223: 0x6d4ecc20, - 0x2d224: 0x6d4ece20, 0x2d225: 0x6d7b2e20, 0x2d226: 0x6d7b3020, 0x2d227: 0x6d7b3220, - 0x2d228: 0x6d7b3420, 0x2d229: 0x6d7b3620, 0x2d22a: 0x6d7b3820, 0x2d22b: 0x6dc52020, - 0x2d22c: 0x6de23220, 0x2d22d: 0x6de23420, 0x2d22e: 0x6df9ee20, 0x2d22f: 0x6df9f020, - 0x2d230: 0x6df9f220, 0x2d231: 0x6e0da020, 0x2d232: 0x6e1d1220, 0x2d233: 0x6e388020, - 0x2d234: 0x6c01d620, 0x2d235: 0x6c110a20, 0x2d236: 0x6c324220, 0x2d237: 0x6c1e8420, - 0x2d238: 0x6c324620, 0x2d239: 0x6c324820, 0x2d23a: 0x6c4cae20, 0x2d23b: 0x6c4cb020, - 0x2d23c: 0x6c4cb220, 0x2d23d: 0x6c6eba20, 0x2d23e: 0x6c01d820, 0x2d23f: 0x6c043c20, - // Block 0xb49, offset 0x2d240 - 0x2d240: 0x6c043e20, 0x2d241: 0x6c08da20, 0x2d242: 0x6c110e20, 0x2d243: 0x6c1e9020, - 0x2d244: 0x6c1e9220, 0x2d245: 0x6c1e9420, 0x2d246: 0x6c324c20, 0x2d247: 0x6c4cc220, - 0x2d248: 0x6c4cc420, 0x2d249: 0x6c6ec220, 0x2d24a: 0x6d218220, 0x2d24b: 0x6c01dc20, - 0x2d24c: 0x6c044220, 0x2d24d: 0x6c08e020, 0x2d24e: 0x6c111620, 0x2d24f: 0x6c111820, - 0x2d250: 0x6c111a20, 0x2d251: 0x6cc27a20, 0x2d252: 0x6cf1ba20, 0x2d253: 0x6c01e020, - 0x2d254: 0x6c044a20, 0x2d255: 0x6c044c20, 0x2d256: 0x6c044e20, 0x2d257: 0x6c08e220, - 0x2d258: 0x6c08e420, 0x2d259: 0x6c112820, 0x2d25a: 0x6c112a20, 0x2d25b: 0x6c112c20, - 0x2d25c: 0x6c112e20, 0x2d25d: 0x6c1eb620, 0x2d25e: 0x6c1eb820, 0x2d25f: 0x6c1eba20, - 0x2d260: 0x6c1ebc20, 0x2d261: 0x6c326820, 0x2d262: 0x6c326a20, 0x2d263: 0x6c326c20, - 0x2d264: 0x6c326e20, 0x2d265: 0x6c327020, 0x2d266: 0x6c327220, 0x2d267: 0x6c327420, - 0x2d268: 0x6c327620, 0x2d269: 0x6c327820, 0x2d26a: 0x6c327a20, 0x2d26b: 0x6c4cf820, - 0x2d26c: 0x6c4cfa20, 0x2d26d: 0x6c4cfc20, 0x2d26e: 0x6c4cfe20, 0x2d26f: 0x6c4d0020, - 0x2d270: 0x6c6edc20, 0x2d271: 0x6c6ede20, 0x2d272: 0x6c6ee020, 0x2d273: 0x6c6ee220, - 0x2d274: 0x6c966e20, 0x2d275: 0x6c967020, 0x2d276: 0x6c967220, 0x2d277: 0x6c967420, - 0x2d278: 0x6c967620, 0x2d279: 0x6c967820, 0x2d27a: 0x6cc28420, 0x2d27b: 0x6cc28620, - 0x2d27c: 0x6cc28820, 0x2d27d: 0x6cc28a20, 0x2d27e: 0x6cc28c20, 0x2d27f: 0x6cf1c820, - // Block 0xb4a, offset 0x2d280 - 0x2d280: 0x6cf1ca20, 0x2d281: 0x6cf1cc20, 0x2d282: 0x6cf1ce20, 0x2d283: 0x6d218620, - 0x2d284: 0x6d218820, 0x2d285: 0x6d218a20, 0x2d286: 0x6d21a620, 0x2d287: 0x6d4f0c20, - 0x2d288: 0x6d4f0e20, 0x2d289: 0x6d4f1020, 0x2d28a: 0x6d7b6820, 0x2d28b: 0x6d7b6a20, - 0x2d28c: 0x6da3aa20, 0x2d28d: 0x6dc54020, 0x2d28e: 0x6e1d2220, 0x2d28f: 0x6e28ca20, - 0x2d290: 0x6c01e820, 0x2d291: 0x6c01ea20, 0x2d292: 0x6c08f820, 0x2d293: 0x6c114a20, - 0x2d294: 0x6c329c20, 0x2d295: 0x6c329e20, 0x2d296: 0x6c4d2a20, 0x2d297: 0x6c96a020, - 0x2d298: 0x6cc2a620, 0x2d299: 0x6cf1e020, 0x2d29a: 0x6cf1e220, 0x2d29b: 0x6d7b7a20, - 0x2d29c: 0x6d7b7c20, 0x2d29d: 0x6dc54e20, 0x2d29e: 0x6dc55020, 0x2d29f: 0x6de26820, - 0x2d2a0: 0x6e3d2420, 0x2d2a1: 0x6c01ec20, 0x2d2a2: 0x6c1ee020, 0x2d2a3: 0x6c1ee220, - 0x2d2a4: 0x6c1ee420, 0x2d2a5: 0x6c4d3420, 0x2d2a6: 0x6c4d3620, 0x2d2a7: 0x6c6f0020, - 0x2d2a8: 0x6c6f0220, 0x2d2a9: 0x6c96ac20, 0x2d2aa: 0x6cae2020, 0x2d2ab: 0x6c96ae20, - 0x2d2ac: 0x6c96b020, 0x2d2ad: 0x6cc2b220, 0x2d2ae: 0x6cf1ea20, 0x2d2af: 0x6d21b420, - 0x2d2b0: 0x6d21b620, 0x2d2b1: 0x6d4f2820, 0x2d2b2: 0x6e1d2820, 0x2d2b3: 0x6c01ee20, - 0x2d2b4: 0x6c116220, 0x2d2b5: 0x6c116420, 0x2d2b6: 0x6c1eee20, 0x2d2b7: 0x6c1ef020, - 0x2d2b8: 0x6c1ef220, 0x2d2b9: 0x6c1ef420, 0x2d2ba: 0x6c1ef620, 0x2d2bb: 0x6c1ef820, - 0x2d2bc: 0x6c32b820, 0x2d2bd: 0x6c32ba20, 0x2d2be: 0x6c32bc20, 0x2d2bf: 0x6c32be20, - // Block 0xb4b, offset 0x2d2c0 - 0x2d2c0: 0x6c32c020, 0x2d2c1: 0x6c32c220, 0x2d2c2: 0x6c32c420, 0x2d2c3: 0x6c32c620, - 0x2d2c4: 0x6c32c820, 0x2d2c5: 0x6c4d4c20, 0x2d2c6: 0x6c4d4e20, 0x2d2c7: 0x6c4d5020, - 0x2d2c8: 0x6c4d5220, 0x2d2c9: 0x6c4d5420, 0x2d2ca: 0x6c4d5620, 0x2d2cb: 0x6c4d5820, - 0x2d2cc: 0x6c4d5a20, 0x2d2cd: 0x6c4d5c20, 0x2d2ce: 0x6c6f1620, 0x2d2cf: 0x6c6f1820, - 0x2d2d0: 0x6c6f1a20, 0x2d2d1: 0x6c6f1c20, 0x2d2d2: 0x6c6f1e20, 0x2d2d3: 0x6c6f2020, - 0x2d2d4: 0x6c4d5e20, 0x2d2d5: 0x6c6f2220, 0x2d2d6: 0x6c96d220, 0x2d2d7: 0x6c96d420, - 0x2d2d8: 0x6c96d620, 0x2d2d9: 0x6c96d820, 0x2d2da: 0x6cc2ca20, 0x2d2db: 0x6c96da20, - 0x2d2dc: 0x6c96dc20, 0x2d2dd: 0x6c96de20, 0x2d2de: 0x6c96e020, 0x2d2df: 0x6c96e220, - 0x2d2e0: 0x6c96e420, 0x2d2e1: 0x6c96e620, 0x2d2e2: 0x6c96e820, 0x2d2e3: 0x6c96ea20, - 0x2d2e4: 0x6c96ec20, 0x2d2e5: 0x6cc2cc20, 0x2d2e6: 0x6cc2ce20, 0x2d2e7: 0x6cc2d020, - 0x2d2e8: 0x6cc2d220, 0x2d2e9: 0x6cc2d420, 0x2d2ea: 0x6cc2d620, 0x2d2eb: 0x6cc2d820, - 0x2d2ec: 0x6cf1f820, 0x2d2ed: 0x6cf1fa20, 0x2d2ee: 0x6cf1fc20, 0x2d2ef: 0x6cf1fe20, - 0x2d2f0: 0x6cf20020, 0x2d2f1: 0x6d21c220, 0x2d2f2: 0x6d4f3a20, 0x2d2f3: 0x6d21c420, - 0x2d2f4: 0x6d21c620, 0x2d2f5: 0x6d4f3c20, 0x2d2f6: 0x6d220220, 0x2d2f7: 0x6d4f3e20, - 0x2d2f8: 0x6d4f4020, 0x2d2f9: 0x6d4f4220, 0x2d2fa: 0x6d4f4420, 0x2d2fb: 0x6d7b9020, - 0x2d2fc: 0x6d7b9220, 0x2d2fd: 0x6da3c220, 0x2d2fe: 0x6da3c420, 0x2d2ff: 0x6de27420, - // Block 0xb4c, offset 0x2d300 - 0x2d300: 0x6dfa1c20, 0x2d301: 0x6dfa1e20, 0x2d302: 0x6e0dba20, 0x2d303: 0x6c046620, - 0x2d304: 0x6c01f020, 0x2d305: 0x6c090820, 0x2d306: 0x6c046820, 0x2d307: 0x6c090a20, - 0x2d308: 0x6c117020, 0x2d309: 0x6c090c20, 0x2d30a: 0x6c090e20, 0x2d30b: 0x6c117820, - 0x2d30c: 0x6c1f2020, 0x2d30d: 0x6c1f2220, 0x2d30e: 0x6c1f2420, 0x2d30f: 0x6c117a20, - 0x2d310: 0x6c1f2620, 0x2d311: 0x6c1f2820, 0x2d312: 0x6c1f2a20, 0x2d313: 0x6c117c20, - 0x2d314: 0x6c117e20, 0x2d315: 0x6c118020, 0x2d316: 0x6c118220, 0x2d317: 0x6c1f2c20, - 0x2d318: 0x6c1f2e20, 0x2d319: 0x6c118420, 0x2d31a: 0x6c118620, 0x2d31b: 0x6c118820, - 0x2d31c: 0x6c1f3020, 0x2d31d: 0x6c32e620, 0x2d31e: 0x6c32e820, 0x2d31f: 0x6c1f4220, - 0x2d320: 0x6c32ea20, 0x2d321: 0x6c1f4420, 0x2d322: 0x6c32ec20, 0x2d323: 0x6c1f4620, - 0x2d324: 0x6c1f4820, 0x2d325: 0x6c32ee20, 0x2d326: 0x6c1f4a20, 0x2d327: 0x6c1f4c20, - 0x2d328: 0x6c1f4e20, 0x2d329: 0x6c32f020, 0x2d32a: 0x6c1f5020, 0x2d32b: 0x6c1f5220, - 0x2d32c: 0x6c1f5420, 0x2d32d: 0x6c1f5620, 0x2d32e: 0x6c1f5820, 0x2d32f: 0x6c1f5a20, - 0x2d330: 0x6c1f5c20, 0x2d331: 0x6c1f5e20, 0x2d332: 0x6c1f6020, 0x2d333: 0x6c1f6220, - 0x2d334: 0x6c1f6420, 0x2d335: 0x6c32f220, 0x2d336: 0x6c1f6620, 0x2d337: 0x6c1f6820, - 0x2d338: 0x6c1f6a20, 0x2d339: 0x6c1f6c20, 0x2d33a: 0x6c1f6e20, 0x2d33b: 0x6c1f7020, - 0x2d33c: 0x6c1f7220, 0x2d33d: 0x6c32f420, 0x2d33e: 0x6c1f7420, 0x2d33f: 0x6c32f620, - // Block 0xb4d, offset 0x2d340 - 0x2d340: 0x6c1f7620, 0x2d341: 0x6c32f820, 0x2d342: 0x6c32fa20, 0x2d343: 0x6c1f7820, - 0x2d344: 0x6c1f7a20, 0x2d345: 0x6c1f7c20, 0x2d346: 0x6c1f7e20, 0x2d347: 0x6c331020, - 0x2d348: 0x6c331220, 0x2d349: 0x6c331420, 0x2d34a: 0x6c331620, 0x2d34b: 0x6c331820, - 0x2d34c: 0x6c331a20, 0x2d34d: 0x6c331c20, 0x2d34e: 0x6c4d8420, 0x2d34f: 0x6c331e20, - 0x2d350: 0x6c332020, 0x2d351: 0x6c332220, 0x2d352: 0x6c4d8620, 0x2d353: 0x6c332420, - 0x2d354: 0x6c332620, 0x2d355: 0x6c332820, 0x2d356: 0x6c332a20, 0x2d357: 0x6c332c20, - 0x2d358: 0x6c4d8820, 0x2d359: 0x6c332e20, 0x2d35a: 0x6c333020, 0x2d35b: 0x6c333220, - 0x2d35c: 0x6c333420, 0x2d35d: 0x6c4d8a20, 0x2d35e: 0x6c333620, 0x2d35f: 0x6c333820, - 0x2d360: 0x6c4d8c20, 0x2d361: 0x6c333a20, 0x2d362: 0x6c333c20, 0x2d363: 0x6c4d8e20, - 0x2d364: 0x6c4d9020, 0x2d365: 0x6c4d9220, 0x2d366: 0x6c333e20, 0x2d367: 0x6c334020, - 0x2d368: 0x6c4d9420, 0x2d369: 0x6c334220, 0x2d36a: 0x6c334420, 0x2d36b: 0x6c334620, - 0x2d36c: 0x6c334820, 0x2d36d: 0x6c334a20, 0x2d36e: 0x6c334c20, 0x2d36f: 0x6c334e20, - 0x2d370: 0x6c335020, 0x2d371: 0x6c4d9620, 0x2d372: 0x6c335220, 0x2d373: 0x6c335420, - 0x2d374: 0x6c335620, 0x2d375: 0x6c335820, 0x2d376: 0x6c335a20, 0x2d377: 0x6c4d9820, - 0x2d378: 0x6c4d9a20, 0x2d379: 0x6c4d9c20, 0x2d37a: 0x6c335c20, 0x2d37b: 0x6c4d9e20, - 0x2d37c: 0x6c4da020, 0x2d37d: 0x6c335e20, 0x2d37e: 0x6c336020, 0x2d37f: 0x6c336220, - // Block 0xb4e, offset 0x2d380 - 0x2d380: 0x6c4dc020, 0x2d381: 0x6c6f6220, 0x2d382: 0x6c4dc220, 0x2d383: 0x6c4dc420, - 0x2d384: 0x6c4dc620, 0x2d385: 0x6c4dc820, 0x2d386: 0x6c4dca20, 0x2d387: 0x6c4dcc20, - 0x2d388: 0x6c4dce20, 0x2d389: 0x6c4dd020, 0x2d38a: 0x6c4dd220, 0x2d38b: 0x6c6f6420, - 0x2d38c: 0x6c4dd420, 0x2d38d: 0x6c4dd620, 0x2d38e: 0x6c4dd820, 0x2d38f: 0x6c6f6620, - 0x2d390: 0x6c6f6820, 0x2d391: 0x6c4dda20, 0x2d392: 0x6c4ddc20, 0x2d393: 0x6c4dde20, - 0x2d394: 0x6c4de020, 0x2d395: 0x6c6f6a20, 0x2d396: 0x6c6f6c20, 0x2d397: 0x6c4de220, - 0x2d398: 0x6c4de420, 0x2d399: 0x6c6f6e20, 0x2d39a: 0x6c6f7020, 0x2d39b: 0x6c4de620, - 0x2d39c: 0x6c4de820, 0x2d39d: 0x6c6f7220, 0x2d39e: 0x6c4dea20, 0x2d39f: 0x6c4dec20, - 0x2d3a0: 0x6c4dee20, 0x2d3a1: 0x6c4df020, 0x2d3a2: 0x6c4df220, 0x2d3a3: 0x6c6f7420, - 0x2d3a4: 0x6c4df420, 0x2d3a5: 0x6c6f7620, 0x2d3a6: 0x6c4df620, 0x2d3a7: 0x6c6f7820, - 0x2d3a8: 0x6c4df820, 0x2d3a9: 0x6c6f7a20, 0x2d3aa: 0x6c4dfa20, 0x2d3ab: 0x6c4dfc20, - 0x2d3ac: 0x6c4dfe20, 0x2d3ad: 0x6c6f7c20, 0x2d3ae: 0x6c4e0020, 0x2d3af: 0x6c6f7e20, - 0x2d3b0: 0x6c4e0220, 0x2d3b1: 0x6c4e0420, 0x2d3b2: 0x6c4e0620, 0x2d3b3: 0x6c6f8020, - 0x2d3b4: 0x6c6f8220, 0x2d3b5: 0x6c6f8420, 0x2d3b6: 0x6c6f8620, 0x2d3b7: 0x6c6f8820, - 0x2d3b8: 0x6c4e0820, 0x2d3b9: 0x6c4e0a20, 0x2d3ba: 0x6c4e0c20, 0x2d3bb: 0x6c4e0e20, - 0x2d3bc: 0x6c4e1020, 0x2d3bd: 0x6c4e1220, 0x2d3be: 0x6c6f9e20, 0x2d3bf: 0x6c973820, - // Block 0xb4f, offset 0x2d3c0 - 0x2d3c0: 0x6c6fa020, 0x2d3c1: 0x6c6fa220, 0x2d3c2: 0x6c6fa420, 0x2d3c3: 0x6c6fa620, - 0x2d3c4: 0x6c6fa820, 0x2d3c5: 0x6c6faa20, 0x2d3c6: 0x6c973a20, 0x2d3c7: 0x6c6fac20, - 0x2d3c8: 0x6c6fae20, 0x2d3c9: 0x6c973c20, 0x2d3ca: 0x6c973e20, 0x2d3cb: 0x6c6fb020, - 0x2d3cc: 0x6c6fb220, 0x2d3cd: 0x6c6fb420, 0x2d3ce: 0x6c6fb620, 0x2d3cf: 0x6c6fb820, - 0x2d3d0: 0x6c974020, 0x2d3d1: 0x6c6fba20, 0x2d3d2: 0x6c6fbc20, 0x2d3d3: 0x6c6fbe20, - 0x2d3d4: 0x6c6fc020, 0x2d3d5: 0x6c6fc220, 0x2d3d6: 0x6c6fc420, 0x2d3d7: 0x6c6fc620, - 0x2d3d8: 0x6c974220, 0x2d3d9: 0x6c6fc820, 0x2d3da: 0x6c6fca20, 0x2d3db: 0x6c6fcc20, - 0x2d3dc: 0x6c6fce20, 0x2d3dd: 0x6c6fd020, 0x2d3de: 0x6c6fd220, 0x2d3df: 0x6c6fd420, - 0x2d3e0: 0x6c974420, 0x2d3e1: 0x6c974620, 0x2d3e2: 0x6c6fd620, 0x2d3e3: 0x6c974820, - 0x2d3e4: 0x6c974a20, 0x2d3e5: 0x6c974c20, 0x2d3e6: 0x6c6fd820, 0x2d3e7: 0x6c6fda20, - 0x2d3e8: 0x6c974e20, 0x2d3e9: 0x6c6fdc20, 0x2d3ea: 0x6c975020, 0x2d3eb: 0x6c975220, - 0x2d3ec: 0x6c975420, 0x2d3ed: 0x6c6fde20, 0x2d3ee: 0x6c6fe020, 0x2d3ef: 0x6c6fe220, - 0x2d3f0: 0x6c977e20, 0x2d3f1: 0x6c978020, 0x2d3f2: 0x6cc31420, 0x2d3f3: 0x6cc31620, - 0x2d3f4: 0x6c978220, 0x2d3f5: 0x6c978420, 0x2d3f6: 0x6cc31820, 0x2d3f7: 0x6c978620, - 0x2d3f8: 0x6c978820, 0x2d3f9: 0x6cc31a20, 0x2d3fa: 0x6c978a20, 0x2d3fb: 0x6c978c20, - 0x2d3fc: 0x6c978e20, 0x2d3fd: 0x6c979020, 0x2d3fe: 0x6c979220, 0x2d3ff: 0x6c979420, - // Block 0xb50, offset 0x2d400 - 0x2d400: 0x6c979620, 0x2d401: 0x6cc31c20, 0x2d402: 0x6c979820, 0x2d403: 0x6c979a20, - 0x2d404: 0x6cc31e20, 0x2d405: 0x6c979c20, 0x2d406: 0x6c979e20, 0x2d407: 0x6c97a020, - 0x2d408: 0x6c97a220, 0x2d409: 0x6cc32020, 0x2d40a: 0x6c97a420, 0x2d40b: 0x6c97a620, - 0x2d40c: 0x6cc32220, 0x2d40d: 0x6c97a820, 0x2d40e: 0x6cc32420, 0x2d40f: 0x6c97aa20, - 0x2d410: 0x6c97ac20, 0x2d411: 0x6cc32620, 0x2d412: 0x6cc32820, 0x2d413: 0x6c97ae20, - 0x2d414: 0x6c97b020, 0x2d415: 0x6c97b220, 0x2d416: 0x6cc32a20, 0x2d417: 0x6c97b420, - 0x2d418: 0x6c97b620, 0x2d419: 0x6c97b820, 0x2d41a: 0x6c97ba20, 0x2d41b: 0x6c97bc20, - 0x2d41c: 0x6c97be20, 0x2d41d: 0x6c97c020, 0x2d41e: 0x6c97c220, 0x2d41f: 0x6c97c420, - 0x2d420: 0x6cc32c20, 0x2d421: 0x6cc32e20, 0x2d422: 0x6cc33020, 0x2d423: 0x6cc33220, - 0x2d424: 0x6c97c620, 0x2d425: 0x6cc33420, 0x2d426: 0x6c97c820, 0x2d427: 0x6c97ca20, - 0x2d428: 0x6c97cc20, 0x2d429: 0x6cc33620, 0x2d42a: 0x6cc33820, 0x2d42b: 0x6cc33a20, - 0x2d42c: 0x6c97ce20, 0x2d42d: 0x6c97d020, 0x2d42e: 0x6c97d220, 0x2d42f: 0x6c97d420, - 0x2d430: 0x6cc35820, 0x2d431: 0x6cc35a20, 0x2d432: 0x6cc35c20, 0x2d433: 0x6cf24a20, - 0x2d434: 0x6cc35e20, 0x2d435: 0x6cc36020, 0x2d436: 0x6cc36220, 0x2d437: 0x6cf24c20, - 0x2d438: 0x6cc36420, 0x2d439: 0x6cf24e20, 0x2d43a: 0x6cc36620, 0x2d43b: 0x6cc36820, - 0x2d43c: 0x6cc36a20, 0x2d43d: 0x6cc36c20, 0x2d43e: 0x6cc36e20, 0x2d43f: 0x6cc37020, - // Block 0xb51, offset 0x2d440 - 0x2d440: 0x6cc37220, 0x2d441: 0x6cf25020, 0x2d442: 0x6cf25220, 0x2d443: 0x6cc37420, - 0x2d444: 0x6cc37620, 0x2d445: 0x6cc37820, 0x2d446: 0x6cf25420, 0x2d447: 0x6cc37a20, - 0x2d448: 0x6cf25620, 0x2d449: 0x6cc37c20, 0x2d44a: 0x6cc37e20, 0x2d44b: 0x6cc38020, - 0x2d44c: 0x6cc38220, 0x2d44d: 0x6cf25820, 0x2d44e: 0x6cc38420, 0x2d44f: 0x6cf25a20, - 0x2d450: 0x6cc38620, 0x2d451: 0x6cc38820, 0x2d452: 0x6cc38a20, 0x2d453: 0x6cc38c20, - 0x2d454: 0x6cc38e20, 0x2d455: 0x6cc39020, 0x2d456: 0x6cc39220, 0x2d457: 0x6cf25c20, - 0x2d458: 0x6cc39420, 0x2d459: 0x6cf25e20, 0x2d45a: 0x6cf26020, 0x2d45b: 0x6cf26220, - 0x2d45c: 0x6cc39620, 0x2d45d: 0x6cc39820, 0x2d45e: 0x6cc39a20, 0x2d45f: 0x6cf26420, - 0x2d460: 0x6cc39c20, 0x2d461: 0x6cc39e20, 0x2d462: 0x6cc3a020, 0x2d463: 0x6cc3a220, - 0x2d464: 0x6cc3a420, 0x2d465: 0x6cc3a620, 0x2d466: 0x6cc3a820, 0x2d467: 0x6cf27820, - 0x2d468: 0x6d221220, 0x2d469: 0x6cf27a20, 0x2d46a: 0x6cf27c20, 0x2d46b: 0x6cf27e20, - 0x2d46c: 0x6d221420, 0x2d46d: 0x6cf28020, 0x2d46e: 0x6cf28220, 0x2d46f: 0x6cf28420, - 0x2d470: 0x6cf28620, 0x2d471: 0x6cf28820, 0x2d472: 0x6cf28a20, 0x2d473: 0x6d221620, - 0x2d474: 0x6cf28c20, 0x2d475: 0x6cf28e20, 0x2d476: 0x6cf29020, 0x2d477: 0x6cf29220, - 0x2d478: 0x6d221820, 0x2d479: 0x6cf29420, 0x2d47a: 0x6cf29620, 0x2d47b: 0x6d221a20, - 0x2d47c: 0x6cf29820, 0x2d47d: 0x6cf29a20, 0x2d47e: 0x6cf29c20, 0x2d47f: 0x6d221c20, - // Block 0xb52, offset 0x2d480 - 0x2d480: 0x6cf29e20, 0x2d481: 0x6d221e20, 0x2d482: 0x6d222020, 0x2d483: 0x6cf2a020, - 0x2d484: 0x6cf2a220, 0x2d485: 0x6cf2a420, 0x2d486: 0x6cf2a620, 0x2d487: 0x6d222220, - 0x2d488: 0x6d222420, 0x2d489: 0x6cf2a820, 0x2d48a: 0x6cf2aa20, 0x2d48b: 0x6d222620, - 0x2d48c: 0x6cf2ac20, 0x2d48d: 0x6cf2ae20, 0x2d48e: 0x6cf2b020, 0x2d48f: 0x6cf2b220, - 0x2d490: 0x6d222820, 0x2d491: 0x6cf2b420, 0x2d492: 0x6d223c20, 0x2d493: 0x6d223e20, - 0x2d494: 0x6d224020, 0x2d495: 0x6d4f6c20, 0x2d496: 0x6d224220, 0x2d497: 0x6d4f6e20, - 0x2d498: 0x6d224420, 0x2d499: 0x6d4f7020, 0x2d49a: 0x6d224620, 0x2d49b: 0x6d224820, - 0x2d49c: 0x6d4f7220, 0x2d49d: 0x6d4f7420, 0x2d49e: 0x6d224a20, 0x2d49f: 0x6d224c20, - 0x2d4a0: 0x6d224e20, 0x2d4a1: 0x6d225020, 0x2d4a2: 0x6d225220, 0x2d4a3: 0x6d225420, - 0x2d4a4: 0x6d4f7620, 0x2d4a5: 0x6d225620, 0x2d4a6: 0x6d4f7820, 0x2d4a7: 0x6d4f7a20, - 0x2d4a8: 0x6cc3aa20, 0x2d4a9: 0x6d225820, 0x2d4aa: 0x6d225a20, 0x2d4ab: 0x6d4f7c20, - 0x2d4ac: 0x6d225c20, 0x2d4ad: 0x6d4fb020, 0x2d4ae: 0x6d4f7e20, 0x2d4af: 0x6d225e20, - 0x2d4b0: 0x6d4f8020, 0x2d4b1: 0x6d226020, 0x2d4b2: 0x6d226220, 0x2d4b3: 0x6d226420, - 0x2d4b4: 0x6d226620, 0x2d4b5: 0x6d226820, 0x2d4b6: 0x6d4f8220, 0x2d4b7: 0x6d226a20, - 0x2d4b8: 0x6d4f8420, 0x2d4b9: 0x6d4f8620, 0x2d4ba: 0x6d226c20, 0x2d4bb: 0x6d226e20, - 0x2d4bc: 0x6d4f8820, 0x2d4bd: 0x6d227020, 0x2d4be: 0x6d4f8a20, 0x2d4bf: 0x6d4f8c20, - // Block 0xb53, offset 0x2d4c0 - 0x2d4c0: 0x6d227220, 0x2d4c1: 0x6d227420, 0x2d4c2: 0x6d4f8e20, 0x2d4c3: 0x6d4f9020, - 0x2d4c4: 0x6d4f9220, 0x2d4c5: 0x6d4f9420, 0x2d4c6: 0x6d227620, 0x2d4c7: 0x6d4f9620, - 0x2d4c8: 0x6d227820, 0x2d4c9: 0x6d4fb220, 0x2d4ca: 0x6d7bb620, 0x2d4cb: 0x6d4fb420, - 0x2d4cc: 0x6d7bb820, 0x2d4cd: 0x6d4fb620, 0x2d4ce: 0x6d4fb820, 0x2d4cf: 0x6d4fba20, - 0x2d4d0: 0x6d4fbc20, 0x2d4d1: 0x6d7bba20, 0x2d4d2: 0x6d4fbe20, 0x2d4d3: 0x6d4fc020, - 0x2d4d4: 0x6d4fc220, 0x2d4d5: 0x6d4fc420, 0x2d4d6: 0x6d7bbc20, 0x2d4d7: 0x6d7bbe20, - 0x2d4d8: 0x6d4fc620, 0x2d4d9: 0x6d7bc020, 0x2d4da: 0x6d4fc820, 0x2d4db: 0x6d4fca20, - 0x2d4dc: 0x6d4fcc20, 0x2d4dd: 0x6d7bc220, 0x2d4de: 0x6d4fce20, 0x2d4df: 0x6d4fd020, - 0x2d4e0: 0x6d7bc420, 0x2d4e1: 0x6d4fd220, 0x2d4e2: 0x6d4fd420, 0x2d4e3: 0x6d4fd620, - 0x2d4e4: 0x6d4fd820, 0x2d4e5: 0x6d7bc620, 0x2d4e6: 0x6d4fda20, 0x2d4e7: 0x6d4fdc20, - 0x2d4e8: 0x6d7bc820, 0x2d4e9: 0x6d7bca20, 0x2d4ea: 0x6d4fde20, 0x2d4eb: 0x6d4fe020, - 0x2d4ec: 0x6d4fe220, 0x2d4ed: 0x6d4fe420, 0x2d4ee: 0x6d4fe620, 0x2d4ef: 0x6d4fe820, - 0x2d4f0: 0x6d4fea20, 0x2d4f1: 0x6d4fec20, 0x2d4f2: 0x6d7bcc20, 0x2d4f3: 0x6d4fee20, - 0x2d4f4: 0x6d7bd220, 0x2d4f5: 0x6da3d620, 0x2d4f6: 0x6d7bd420, 0x2d4f7: 0x6d7bd620, - 0x2d4f8: 0x6d7bd820, 0x2d4f9: 0x6d7bda20, 0x2d4fa: 0x6d7bdc20, 0x2d4fb: 0x6d7c8e20, - 0x2d4fc: 0x6da3d820, 0x2d4fd: 0x6d7bde20, 0x2d4fe: 0x6d7be020, 0x2d4ff: 0x6d7be220, - // Block 0xb54, offset 0x2d500 - 0x2d500: 0x6d7be420, 0x2d501: 0x6d7be620, 0x2d502: 0x6da3da20, 0x2d503: 0x6da3dc20, - 0x2d504: 0x6d7be820, 0x2d505: 0x6d7bea20, 0x2d506: 0x6d7bec20, 0x2d507: 0x6da3de20, - 0x2d508: 0x6d7bee20, 0x2d509: 0x6da3e020, 0x2d50a: 0x6d7bf020, 0x2d50b: 0x6da3e220, - 0x2d50c: 0x6d7bf220, 0x2d50d: 0x6d7bf420, 0x2d50e: 0x6d7bf620, 0x2d50f: 0x6d7bf820, - 0x2d510: 0x6d7bfa20, 0x2d511: 0x6da3e420, 0x2d512: 0x6d7bfc20, 0x2d513: 0x6d7bfe20, - 0x2d514: 0x6d7c0020, 0x2d515: 0x6dc57e20, 0x2d516: 0x6dc58020, 0x2d517: 0x6da3ea20, - 0x2d518: 0x6dc58220, 0x2d519: 0x6da3ec20, 0x2d51a: 0x6da3ee20, 0x2d51b: 0x6da3f020, - 0x2d51c: 0x6da3f220, 0x2d51d: 0x6da3f420, 0x2d51e: 0x6da3f620, 0x2d51f: 0x6dc58420, - 0x2d520: 0x6da3f820, 0x2d521: 0x6da3fa20, 0x2d522: 0x6da3fc20, 0x2d523: 0x6dc58620, - 0x2d524: 0x6da3fe20, 0x2d525: 0x6da40020, 0x2d526: 0x6da40220, 0x2d527: 0x6da40420, - 0x2d528: 0x6da40620, 0x2d529: 0x6dc58c20, 0x2d52a: 0x6dc58e20, 0x2d52b: 0x6dc59020, - 0x2d52c: 0x6de27e20, 0x2d52d: 0x6dc59220, 0x2d52e: 0x6dc59420, 0x2d52f: 0x6de28020, - 0x2d530: 0x6dc59620, 0x2d531: 0x6dc59820, 0x2d532: 0x6de28220, 0x2d533: 0x6dc59a20, - 0x2d534: 0x6dc59c20, 0x2d535: 0x6de28a20, 0x2d536: 0x6de28c20, 0x2d537: 0x6de28e20, - 0x2d538: 0x6dfa2e20, 0x2d539: 0x6dfa3620, 0x2d53a: 0x6dfa3820, 0x2d53b: 0x6de2de20, - 0x2d53c: 0x6e0dc020, 0x2d53d: 0x6e0dc220, 0x2d53e: 0x6e0dc420, 0x2d53f: 0x6e1d3220, - // Block 0xb55, offset 0x2d540 - 0x2d540: 0x6e28d020, 0x2d541: 0x6e28d220, 0x2d542: 0x6e1d3820, 0x2d543: 0x6e28d420, - 0x2d544: 0x6e28d620, 0x2d545: 0x6e388a20, 0x2d546: 0x6e388c20, 0x2d547: 0x6e429820, - 0x2d548: 0x6c046c20, 0x2d549: 0x6c092020, 0x2d54a: 0x6c092220, 0x2d54b: 0x6c092420, - 0x2d54c: 0x6c11ba20, 0x2d54d: 0x6c11bc20, 0x2d54e: 0x6c11be20, 0x2d54f: 0x6c11c020, - 0x2d550: 0x6c11c220, 0x2d551: 0x6c200020, 0x2d552: 0x6c200220, 0x2d553: 0x6c200420, - 0x2d554: 0x6c33e220, 0x2d555: 0x6c33e420, 0x2d556: 0x6c33e620, 0x2d557: 0x6c33e820, - 0x2d558: 0x6c4ea020, 0x2d559: 0x6c709c20, 0x2d55a: 0x6c98b820, 0x2d55b: 0x6c98ba20, - 0x2d55c: 0x6c98bc20, 0x2d55d: 0x6c98be20, 0x2d55e: 0x6cc49020, 0x2d55f: 0x6cc49220, - 0x2d560: 0x6cf37820, 0x2d561: 0x6cf37a20, 0x2d562: 0x6cf37c20, 0x2d563: 0x6cf37e20, - 0x2d564: 0x6cf38020, 0x2d565: 0x6cf38220, 0x2d566: 0x6cf37420, 0x2d567: 0x6d233420, - 0x2d568: 0x6d233620, 0x2d569: 0x6d233820, 0x2d56a: 0x6d233a20, 0x2d56b: 0x6d233c20, - 0x2d56c: 0x6d233e20, 0x2d56d: 0x6d50c220, 0x2d56e: 0x6d50c420, 0x2d56f: 0x6d50c620, - 0x2d570: 0x6d7c9220, 0x2d571: 0x6d7c9020, 0x2d572: 0x6da46a20, 0x2d573: 0x6dc60020, - 0x2d574: 0x6da46c20, 0x2d575: 0x6e1d5220, 0x2d576: 0x6c046e20, 0x2d577: 0x6c047020, - 0x2d578: 0x6c047220, 0x2d579: 0x6c092c20, 0x2d57a: 0x6c201820, 0x2d57b: 0x6c201a20, - 0x2d57c: 0x6c201c20, 0x2d57d: 0x6c340620, 0x2d57e: 0x6c340820, 0x2d57f: 0x6c340a20, - // Block 0xb56, offset 0x2d580 - 0x2d580: 0x6c340c20, 0x2d581: 0x6c4ecc20, 0x2d582: 0x6c4ece20, 0x2d583: 0x6c4ed020, - 0x2d584: 0x6c70b220, 0x2d585: 0x6c70b420, 0x2d586: 0x6c70b620, 0x2d587: 0x6c70b820, - 0x2d588: 0x6c98d620, 0x2d589: 0x6cc4ae20, 0x2d58a: 0x6cc4b020, 0x2d58b: 0x6c047420, - 0x2d58c: 0x6c01f420, 0x2d58d: 0x6c01f620, 0x2d58e: 0x6c047620, 0x2d58f: 0x6c095020, - 0x2d590: 0x6c093820, 0x2d591: 0x6c093a20, 0x2d592: 0x6c093c20, 0x2d593: 0x6c093e20, - 0x2d594: 0x6c094020, 0x2d595: 0x6c094220, 0x2d596: 0x6c094420, 0x2d597: 0x6c11dc20, - 0x2d598: 0x6c11de20, 0x2d599: 0x6c11e020, 0x2d59a: 0x6c11e220, 0x2d59b: 0x6c11e420, - 0x2d59c: 0x6c11e620, 0x2d59d: 0x6c11e820, 0x2d59e: 0x6c11ea20, 0x2d59f: 0x6c123420, - 0x2d5a0: 0x6c11ec20, 0x2d5a1: 0x6c11ee20, 0x2d5a2: 0x6c11f020, 0x2d5a3: 0x6c11f220, - 0x2d5a4: 0x6c11f420, 0x2d5a5: 0x6c11f620, 0x2d5a6: 0x6c11f820, 0x2d5a7: 0x6c11fa20, - 0x2d5a8: 0x6c11fc20, 0x2d5a9: 0x6c11fe20, 0x2d5aa: 0x6c120020, 0x2d5ab: 0x6c120220, - 0x2d5ac: 0x6c120420, 0x2d5ad: 0x6c203a20, 0x2d5ae: 0x6c203c20, 0x2d5af: 0x6c203e20, - 0x2d5b0: 0x6c204020, 0x2d5b1: 0x6c204220, 0x2d5b2: 0x6c204420, 0x2d5b3: 0x6c204620, - 0x2d5b4: 0x6c204820, 0x2d5b5: 0x6c204a20, 0x2d5b6: 0x6c204c20, 0x2d5b7: 0x6c204e20, - 0x2d5b8: 0x6c211820, 0x2d5b9: 0x6c205020, 0x2d5ba: 0x6c205220, 0x2d5bb: 0x6c205420, - 0x2d5bc: 0x6c205620, 0x2d5bd: 0x6c205820, 0x2d5be: 0x6c205a20, 0x2d5bf: 0x6c341c20, - // Block 0xb57, offset 0x2d5c0 - 0x2d5c0: 0x6c205c20, 0x2d5c1: 0x6c205e20, 0x2d5c2: 0x6c206020, 0x2d5c3: 0x6c206220, - 0x2d5c4: 0x6c206420, 0x2d5c5: 0x6c206620, 0x2d5c6: 0x6c206820, 0x2d5c7: 0x6c206a20, - 0x2d5c8: 0x6c206c20, 0x2d5c9: 0x6c206e20, 0x2d5ca: 0x6c207020, 0x2d5cb: 0x6c207220, - 0x2d5cc: 0x6c207420, 0x2d5cd: 0x6c207620, 0x2d5ce: 0x6c207820, 0x2d5cf: 0x6c207a20, - 0x2d5d0: 0x6c207c20, 0x2d5d1: 0x6c207e20, 0x2d5d2: 0x6c208020, 0x2d5d3: 0x6c208220, - 0x2d5d4: 0x6c208420, 0x2d5d5: 0x6c208620, 0x2d5d6: 0x6c208820, 0x2d5d7: 0x6c208a20, - 0x2d5d8: 0x6c208c20, 0x2d5d9: 0x6c208e20, 0x2d5da: 0x6c209020, 0x2d5db: 0x6c209220, - 0x2d5dc: 0x6c209420, 0x2d5dd: 0x6c209620, 0x2d5de: 0x6c209820, 0x2d5df: 0x6c209a20, - 0x2d5e0: 0x6c209c20, 0x2d5e1: 0x6c209e20, 0x2d5e2: 0x6c20a020, 0x2d5e3: 0x6c20a220, - 0x2d5e4: 0x6c20a420, 0x2d5e5: 0x6c20a620, 0x2d5e6: 0x6c343a20, 0x2d5e7: 0x6c343c20, - 0x2d5e8: 0x6c343e20, 0x2d5e9: 0x6c344020, 0x2d5ea: 0x6c344220, 0x2d5eb: 0x6c344420, - 0x2d5ec: 0x6c344620, 0x2d5ed: 0x6c344820, 0x2d5ee: 0x6c344a20, 0x2d5ef: 0x6c344c20, - 0x2d5f0: 0x6c344e20, 0x2d5f1: 0x6c345020, 0x2d5f2: 0x6c345220, 0x2d5f3: 0x6c345420, - 0x2d5f4: 0x6c345620, 0x2d5f5: 0x6c345820, 0x2d5f6: 0x6c345a20, 0x2d5f7: 0x6c345c20, - 0x2d5f8: 0x6c345e20, 0x2d5f9: 0x6c346020, 0x2d5fa: 0x6c346220, 0x2d5fb: 0x6c346420, - 0x2d5fc: 0x6c346620, 0x2d5fd: 0x6c346820, 0x2d5fe: 0x6c346a20, 0x2d5ff: 0x6c346c20, - // Block 0xb58, offset 0x2d600 - 0x2d600: 0x6c346e20, 0x2d601: 0x6c347020, 0x2d602: 0x6c347220, 0x2d603: 0x6c347420, - 0x2d604: 0x6c347620, 0x2d605: 0x6c347820, 0x2d606: 0x6c347a20, 0x2d607: 0x6c347c20, - 0x2d608: 0x6c347e20, 0x2d609: 0x6c348020, 0x2d60a: 0x6c348220, 0x2d60b: 0x6c348420, - 0x2d60c: 0x6c348620, 0x2d60d: 0x6c348820, 0x2d60e: 0x6c348a20, 0x2d60f: 0x6c4ef420, - 0x2d610: 0x6c348c20, 0x2d611: 0x6c348e20, 0x2d612: 0x6c349020, 0x2d613: 0x6c349220, - 0x2d614: 0x6c349420, 0x2d615: 0x6c349620, 0x2d616: 0x6c349820, 0x2d617: 0x6c349a20, - 0x2d618: 0x6c349c20, 0x2d619: 0x6c349e20, 0x2d61a: 0x6c34a020, 0x2d61b: 0x6c34a220, - 0x2d61c: 0x6c4ef620, 0x2d61d: 0x6c34a420, 0x2d61e: 0x6c34a620, 0x2d61f: 0x6c34a820, - 0x2d620: 0x6c34aa20, 0x2d621: 0x6c34ac20, 0x2d622: 0x6c34ae20, 0x2d623: 0x6c34b020, - 0x2d624: 0x6c34b220, 0x2d625: 0x6c34b420, 0x2d626: 0x6c34b620, 0x2d627: 0x6c34b820, - 0x2d628: 0x6c34ba20, 0x2d629: 0x6c34bc20, 0x2d62a: 0x6c4f1420, 0x2d62b: 0x6c4f1620, - 0x2d62c: 0x6c4f1820, 0x2d62d: 0x6c4f1a20, 0x2d62e: 0x6c4f1c20, 0x2d62f: 0x6c4f1e20, - 0x2d630: 0x6c4f2020, 0x2d631: 0x6c4f2220, 0x2d632: 0x6c70d020, 0x2d633: 0x6c70d220, - 0x2d634: 0x6c4f2420, 0x2d635: 0x6c4f2620, 0x2d636: 0x6c4f2820, 0x2d637: 0x6c4f2a20, - 0x2d638: 0x6c4f2c20, 0x2d639: 0x6c4f2e20, 0x2d63a: 0x6c4f3020, 0x2d63b: 0x6c4f3220, - 0x2d63c: 0x6c4f3420, 0x2d63d: 0x6c4f3620, 0x2d63e: 0x6c4f3820, 0x2d63f: 0x6c70d420, - // Block 0xb59, offset 0x2d640 - 0x2d640: 0x6c4f3a20, 0x2d641: 0x6c4f3c20, 0x2d642: 0x6c4f3e20, 0x2d643: 0x6c4f4020, - 0x2d644: 0x6c4f4220, 0x2d645: 0x6c4f4420, 0x2d646: 0x6c4f4620, 0x2d647: 0x6c4f4820, - 0x2d648: 0x6c70d620, 0x2d649: 0x6c4f4a20, 0x2d64a: 0x6c4f4c20, 0x2d64b: 0x6c4f4e20, - 0x2d64c: 0x6c4f5020, 0x2d64d: 0x6c4f5220, 0x2d64e: 0x6c4f5420, 0x2d64f: 0x6c4f5620, - 0x2d650: 0x6c70d820, 0x2d651: 0x6c4f5820, 0x2d652: 0x6c4f5a20, 0x2d653: 0x6c4f5c20, - 0x2d654: 0x6c4f5e20, 0x2d655: 0x6c4f6020, 0x2d656: 0x6c4f6220, 0x2d657: 0x6c4f6420, - 0x2d658: 0x6c4f6620, 0x2d659: 0x6c70da20, 0x2d65a: 0x6c70dc20, 0x2d65b: 0x6c70de20, - 0x2d65c: 0x6c4f6820, 0x2d65d: 0x6c4f6a20, 0x2d65e: 0x6c4f6c20, 0x2d65f: 0x6c4f6e20, - 0x2d660: 0x6c4f7020, 0x2d661: 0x6c4f7220, 0x2d662: 0x6c4f7420, 0x2d663: 0x6c4f7620, - 0x2d664: 0x6c4f7820, 0x2d665: 0x6c4f7a20, 0x2d666: 0x6c4f7c20, 0x2d667: 0x6c4f7e20, - 0x2d668: 0x6c70ec20, 0x2d669: 0x6c70ee20, 0x2d66a: 0x6c70f020, 0x2d66b: 0x6c70f220, - 0x2d66c: 0x6c70f420, 0x2d66d: 0x6c70f620, 0x2d66e: 0x6c70f820, 0x2d66f: 0x6c70fa20, - 0x2d670: 0x6c70fc20, 0x2d671: 0x6c70fe20, 0x2d672: 0x6c98e420, 0x2d673: 0x6c710020, - 0x2d674: 0x6c710220, 0x2d675: 0x6c710420, 0x2d676: 0x6c710620, 0x2d677: 0x6c710820, - 0x2d678: 0x6c710a20, 0x2d679: 0x6c710c20, 0x2d67a: 0x6c710e20, 0x2d67b: 0x6c98e620, - 0x2d67c: 0x6c711020, 0x2d67d: 0x6c711220, 0x2d67e: 0x6c711420, 0x2d67f: 0x6c711620, - // Block 0xb5a, offset 0x2d680 - 0x2d680: 0x6c711820, 0x2d681: 0x6c711a20, 0x2d682: 0x6c711c20, 0x2d683: 0x6c711e20, - 0x2d684: 0x6c712020, 0x2d685: 0x6c712220, 0x2d686: 0x6c712420, 0x2d687: 0x6c712620, - 0x2d688: 0x6c712820, 0x2d689: 0x6c712a20, 0x2d68a: 0x6c712c20, 0x2d68b: 0x6c712e20, - 0x2d68c: 0x6c713020, 0x2d68d: 0x6c713220, 0x2d68e: 0x6c713420, 0x2d68f: 0x6c713620, - 0x2d690: 0x6c713820, 0x2d691: 0x6c713a20, 0x2d692: 0x6c713c20, 0x2d693: 0x6c713e20, - 0x2d694: 0x6c714020, 0x2d695: 0x6c714220, 0x2d696: 0x6c714420, 0x2d697: 0x6c714620, - 0x2d698: 0x6c714820, 0x2d699: 0x6c714a20, 0x2d69a: 0x6c714c20, 0x2d69b: 0x6c714e20, - 0x2d69c: 0x6c715020, 0x2d69d: 0x6c715220, 0x2d69e: 0x6c715420, 0x2d69f: 0x6c715620, - 0x2d6a0: 0x6c715820, 0x2d6a1: 0x6c715a20, 0x2d6a2: 0x6c715c20, 0x2d6a3: 0x6c715e20, - 0x2d6a4: 0x6c716020, 0x2d6a5: 0x6c990620, 0x2d6a6: 0x6c990820, 0x2d6a7: 0x6c990a20, - 0x2d6a8: 0x6c990c20, 0x2d6a9: 0x6c990e20, 0x2d6aa: 0x6c991020, 0x2d6ab: 0x6c991220, - 0x2d6ac: 0x6c991420, 0x2d6ad: 0x6c991620, 0x2d6ae: 0x6c991820, 0x2d6af: 0x6c991a20, - 0x2d6b0: 0x6c991c20, 0x2d6b1: 0x6c991e20, 0x2d6b2: 0x6c992020, 0x2d6b3: 0x6c992220, - 0x2d6b4: 0x6c992420, 0x2d6b5: 0x6c992620, 0x2d6b6: 0x6c992820, 0x2d6b7: 0x6c992a20, - 0x2d6b8: 0x6c992c20, 0x2d6b9: 0x6c992e20, 0x2d6ba: 0x6c993020, 0x2d6bb: 0x6c993220, - 0x2d6bc: 0x6c993420, 0x2d6bd: 0x6c993620, 0x2d6be: 0x6c993820, 0x2d6bf: 0x6c993a20, - // Block 0xb5b, offset 0x2d6c0 - 0x2d6c0: 0x6c993c20, 0x2d6c1: 0x6c993e20, 0x2d6c2: 0x6c994020, 0x2d6c3: 0x6c994220, - 0x2d6c4: 0x6c994420, 0x2d6c5: 0x6c994620, 0x2d6c6: 0x6c994820, 0x2d6c7: 0x6c994a20, - 0x2d6c8: 0x6c994c20, 0x2d6c9: 0x6c994e20, 0x2d6ca: 0x6c995020, 0x2d6cb: 0x6c995220, - 0x2d6cc: 0x6cc4be20, 0x2d6cd: 0x6c995420, 0x2d6ce: 0x6c995620, 0x2d6cf: 0x6c995820, - 0x2d6d0: 0x6c995a20, 0x2d6d1: 0x6c995c20, 0x2d6d2: 0x6c995e20, 0x2d6d3: 0x6c996020, - 0x2d6d4: 0x6cc4c020, 0x2d6d5: 0x6c996220, 0x2d6d6: 0x6c996420, 0x2d6d7: 0x6c996620, - 0x2d6d8: 0x6c996820, 0x2d6d9: 0x6c996a20, 0x2d6da: 0x6c996c20, 0x2d6db: 0x6c996e20, - 0x2d6dc: 0x6c997020, 0x2d6dd: 0x6c997220, 0x2d6de: 0x6c997420, 0x2d6df: 0x6c997620, - 0x2d6e0: 0x6c997820, 0x2d6e1: 0x6c997a20, 0x2d6e2: 0x6c997c20, 0x2d6e3: 0x6cc4c220, - 0x2d6e4: 0x6c997e20, 0x2d6e5: 0x6c998020, 0x2d6e6: 0x6c998220, 0x2d6e7: 0x6c998420, - 0x2d6e8: 0x6c998620, 0x2d6e9: 0x6c998820, 0x2d6ea: 0x6c998a20, 0x2d6eb: 0x6c998c20, - 0x2d6ec: 0x6c998e20, 0x2d6ed: 0x6c999020, 0x2d6ee: 0x6c999220, 0x2d6ef: 0x6c999420, - 0x2d6f0: 0x6cc4c420, 0x2d6f1: 0x6cc4c620, 0x2d6f2: 0x6c9a9220, 0x2d6f3: 0x6c999620, - 0x2d6f4: 0x6c999820, 0x2d6f5: 0x6c999a20, 0x2d6f6: 0x6c999c20, 0x2d6f7: 0x6c999e20, - 0x2d6f8: 0x6c99a020, 0x2d6f9: 0x6c99a220, 0x2d6fa: 0x6c99a420, 0x2d6fb: 0x6c99a620, - 0x2d6fc: 0x6c99a820, 0x2d6fd: 0x6c99aa20, 0x2d6fe: 0x6cc4e220, 0x2d6ff: 0x6cc4e420, - // Block 0xb5c, offset 0x2d700 - 0x2d700: 0x6cc4e620, 0x2d701: 0x6cc4e820, 0x2d702: 0x6cc4ea20, 0x2d703: 0x6cc4ec20, - 0x2d704: 0x6cc4ee20, 0x2d705: 0x6cf51c20, 0x2d706: 0x6cc4f020, 0x2d707: 0x6cc4f220, - 0x2d708: 0x6cc4f420, 0x2d709: 0x6cc4f620, 0x2d70a: 0x6cc4f820, 0x2d70b: 0x6cc4fa20, - 0x2d70c: 0x6cc4fc20, 0x2d70d: 0x6cc4fe20, 0x2d70e: 0x6cc50020, 0x2d70f: 0x6cc50220, - 0x2d710: 0x6cc50420, 0x2d711: 0x6cc50620, 0x2d712: 0x6cc50820, 0x2d713: 0x6cc50a20, - 0x2d714: 0x6cc50c20, 0x2d715: 0x6cc50e20, 0x2d716: 0x6cc51020, 0x2d717: 0x6cc51220, - 0x2d718: 0x6cc51420, 0x2d719: 0x6cc51620, 0x2d71a: 0x6cc51820, 0x2d71b: 0x6cc51a20, - 0x2d71c: 0x6cc51c20, 0x2d71d: 0x6cc51e20, 0x2d71e: 0x6cc52020, 0x2d71f: 0x6cc52220, - 0x2d720: 0x6cc52420, 0x2d721: 0x6cc52620, 0x2d722: 0x6cc52820, 0x2d723: 0x6cc52a20, - 0x2d724: 0x6c722020, 0x2d725: 0x6cc52c20, 0x2d726: 0x6cc52e20, 0x2d727: 0x6cf3ac20, - 0x2d728: 0x6cc53020, 0x2d729: 0x6cc53220, 0x2d72a: 0x6cc53420, 0x2d72b: 0x6cf3ae20, - 0x2d72c: 0x6cc53620, 0x2d72d: 0x6cc53820, 0x2d72e: 0x6cc53a20, 0x2d72f: 0x6cc53c20, - 0x2d730: 0x6cc53e20, 0x2d731: 0x6cf3b020, 0x2d732: 0x6cc54020, 0x2d733: 0x6cc54220, - 0x2d734: 0x6cc54420, 0x2d735: 0x6cc54620, 0x2d736: 0x6cc54820, 0x2d737: 0x6cc54a20, - 0x2d738: 0x6cc54c20, 0x2d739: 0x6cc54e20, 0x2d73a: 0x6cc55020, 0x2d73b: 0x6cc55220, - 0x2d73c: 0x6cc55420, 0x2d73d: 0x6cc55620, 0x2d73e: 0x6cc55820, 0x2d73f: 0x6cc55a20, - // Block 0xb5d, offset 0x2d740 - 0x2d740: 0x6cc55c20, 0x2d741: 0x6cc55e20, 0x2d742: 0x6cc56020, 0x2d743: 0x6cc56220, - 0x2d744: 0x6cc56420, 0x2d745: 0x6cc56620, 0x2d746: 0x6cf3da20, 0x2d747: 0x6cf3dc20, - 0x2d748: 0x6cf3de20, 0x2d749: 0x6cf3e020, 0x2d74a: 0x6cf3e220, 0x2d74b: 0x6cf3e420, - 0x2d74c: 0x6cf3e620, 0x2d74d: 0x6cf3e820, 0x2d74e: 0x6cf3ea20, 0x2d74f: 0x6cf3ec20, - 0x2d750: 0x6cf3ee20, 0x2d751: 0x6cf3f020, 0x2d752: 0x6cf3f220, 0x2d753: 0x6cf3f420, - 0x2d754: 0x6cf3f620, 0x2d755: 0x6cf3f820, 0x2d756: 0x6cf3fa20, 0x2d757: 0x6cf3fc20, - 0x2d758: 0x6cf3fe20, 0x2d759: 0x6cf40020, 0x2d75a: 0x6cf40220, 0x2d75b: 0x6cf40420, - 0x2d75c: 0x6cf40620, 0x2d75d: 0x6cf40820, 0x2d75e: 0x6cf40a20, 0x2d75f: 0x6cf40c20, - 0x2d760: 0x6cf40e20, 0x2d761: 0x6cf41020, 0x2d762: 0x6cf41220, 0x2d763: 0x6cf41420, - 0x2d764: 0x6cf41620, 0x2d765: 0x6cf41820, 0x2d766: 0x6cf41a20, 0x2d767: 0x6cf41c20, - 0x2d768: 0x6cf41e20, 0x2d769: 0x6cf42020, 0x2d76a: 0x6cf42220, 0x2d76b: 0x6d236a20, - 0x2d76c: 0x6cf42420, 0x2d76d: 0x6cf42620, 0x2d76e: 0x6cf42820, 0x2d76f: 0x6cf42a20, - 0x2d770: 0x6cf42c20, 0x2d771: 0x6cf51e20, 0x2d772: 0x6cf42e20, 0x2d773: 0x6cf43020, - 0x2d774: 0x6d236c20, 0x2d775: 0x6cf43220, 0x2d776: 0x6cf43420, 0x2d777: 0x6cf43620, - 0x2d778: 0x6cf43820, 0x2d779: 0x6cf43a20, 0x2d77a: 0x6cf43c20, 0x2d77b: 0x6d236e20, - 0x2d77c: 0x6cf43e20, 0x2d77d: 0x6cf44020, 0x2d77e: 0x6cf44220, 0x2d77f: 0x6d237020, - // Block 0xb5e, offset 0x2d780 - 0x2d780: 0x6cf44420, 0x2d781: 0x6cf44620, 0x2d782: 0x6cf44820, 0x2d783: 0x6cf44a20, - 0x2d784: 0x6cf44c20, 0x2d785: 0x6cf44e20, 0x2d786: 0x6cf45020, 0x2d787: 0x6cf45220, - 0x2d788: 0x6cf45420, 0x2d789: 0x6cf45620, 0x2d78a: 0x6cf45820, 0x2d78b: 0x6d239a20, - 0x2d78c: 0x6d239c20, 0x2d78d: 0x6d239e20, 0x2d78e: 0x6d23a020, 0x2d78f: 0x6d23a220, - 0x2d790: 0x6d23a420, 0x2d791: 0x6d23a620, 0x2d792: 0x6cc56820, 0x2d793: 0x6d23a820, - 0x2d794: 0x6d23aa20, 0x2d795: 0x6d23ac20, 0x2d796: 0x6d24e620, 0x2d797: 0x6d23ae20, - 0x2d798: 0x6d23b020, 0x2d799: 0x6d23b220, 0x2d79a: 0x6d23b420, 0x2d79b: 0x6d23b620, - 0x2d79c: 0x6d23b820, 0x2d79d: 0x6d23ba20, 0x2d79e: 0x6d23bc20, 0x2d79f: 0x6d23be20, - 0x2d7a0: 0x6d23c020, 0x2d7a1: 0x6cc66e20, 0x2d7a2: 0x6d23c220, 0x2d7a3: 0x6d23c420, - 0x2d7a4: 0x6d23c620, 0x2d7a5: 0x6d23c820, 0x2d7a6: 0x6d23ca20, 0x2d7a7: 0x6d23cc20, - 0x2d7a8: 0x6d510020, 0x2d7a9: 0x6d510220, 0x2d7aa: 0x6d23ce20, 0x2d7ab: 0x6d23d020, - 0x2d7ac: 0x6d23d220, 0x2d7ad: 0x6d23d420, 0x2d7ae: 0x6d510420, 0x2d7af: 0x6d510620, - 0x2d7b0: 0x6d510820, 0x2d7b1: 0x6d23d620, 0x2d7b2: 0x6d23d820, 0x2d7b3: 0x6d23da20, - 0x2d7b4: 0x6d23dc20, 0x2d7b5: 0x6d23de20, 0x2d7b6: 0x6d23e020, 0x2d7b7: 0x6d23e220, - 0x2d7b8: 0x6d23e420, 0x2d7b9: 0x6d510a20, 0x2d7ba: 0x6d23e620, 0x2d7bb: 0x6d23e820, - 0x2d7bc: 0x6d23ea20, 0x2d7bd: 0x6d23ec20, 0x2d7be: 0x6d23ee20, 0x2d7bf: 0x6d23f020, - // Block 0xb5f, offset 0x2d7c0 - 0x2d7c0: 0x6d510c20, 0x2d7c1: 0x6d23f220, 0x2d7c2: 0x6d23f420, 0x2d7c3: 0x6d510e20, - 0x2d7c4: 0x6d23f620, 0x2d7c5: 0x6d512e20, 0x2d7c6: 0x6d513020, 0x2d7c7: 0x6d23f820, - 0x2d7c8: 0x6d513220, 0x2d7c9: 0x6d7cb220, 0x2d7ca: 0x6d513420, 0x2d7cb: 0x6d513620, - 0x2d7cc: 0x6d513820, 0x2d7cd: 0x6d513a20, 0x2d7ce: 0x6d513c20, 0x2d7cf: 0x6d513e20, - 0x2d7d0: 0x6d514020, 0x2d7d1: 0x6d514220, 0x2d7d2: 0x6d514420, 0x2d7d3: 0x6d514620, - 0x2d7d4: 0x6d514820, 0x2d7d5: 0x6d514a20, 0x2d7d6: 0x6d514c20, 0x2d7d7: 0x6d514e20, - 0x2d7d8: 0x6d515020, 0x2d7d9: 0x6d515220, 0x2d7da: 0x6d515420, 0x2d7db: 0x6d515620, - 0x2d7dc: 0x6d515820, 0x2d7dd: 0x6d515a20, 0x2d7de: 0x6d515c20, 0x2d7df: 0x6d515e20, - 0x2d7e0: 0x6d516020, 0x2d7e1: 0x6d516220, 0x2d7e2: 0x6d516420, 0x2d7e3: 0x6d516620, - 0x2d7e4: 0x6d516820, 0x2d7e5: 0x6d516a20, 0x2d7e6: 0x6d24e820, 0x2d7e7: 0x6d516c20, - 0x2d7e8: 0x6d516e20, 0x2d7e9: 0x6d517020, 0x2d7ea: 0x6d517220, 0x2d7eb: 0x6d517420, - 0x2d7ec: 0x6d517620, 0x2d7ed: 0x6d517820, 0x2d7ee: 0x6d517a20, 0x2d7ef: 0x6d517c20, - 0x2d7f0: 0x6d517e20, 0x2d7f1: 0x6d518020, 0x2d7f2: 0x6d518220, 0x2d7f3: 0x6d518420, - 0x2d7f4: 0x6d518620, 0x2d7f5: 0x6d518820, 0x2d7f6: 0x6d518a20, 0x2d7f7: 0x6d518c20, - 0x2d7f8: 0x6d518e20, 0x2d7f9: 0x6d519020, 0x2d7fa: 0x6d519220, 0x2d7fb: 0x6d7cc220, - 0x2d7fc: 0x6d7cc420, 0x2d7fd: 0x6d7cc620, 0x2d7fe: 0x6d7cc820, 0x2d7ff: 0x6d7cca20, - // Block 0xb60, offset 0x2d800 - 0x2d800: 0x6d7ccc20, 0x2d801: 0x6d7cce20, 0x2d802: 0x6d7cd020, 0x2d803: 0x6d7cd220, - 0x2d804: 0x6d7cd420, 0x2d805: 0x6d7cd620, 0x2d806: 0x6d519420, 0x2d807: 0x6d7cd820, - 0x2d808: 0x6d7cda20, 0x2d809: 0x6d7cdc20, 0x2d80a: 0x6da47c20, 0x2d80b: 0x6d7cde20, - 0x2d80c: 0x6d7ce020, 0x2d80d: 0x6d7ce220, 0x2d80e: 0x6da47e20, 0x2d80f: 0x6d7ce420, - 0x2d810: 0x6d7ce620, 0x2d811: 0x6d7ce820, 0x2d812: 0x6d7cea20, 0x2d813: 0x6d7cec20, - 0x2d814: 0x6d7cee20, 0x2d815: 0x6d7cf020, 0x2d816: 0x6d7cf220, 0x2d817: 0x6d7cf420, - 0x2d818: 0x6da48020, 0x2d819: 0x6d7cf620, 0x2d81a: 0x6d7cf820, 0x2d81b: 0x6d7cfa20, - 0x2d81c: 0x6d7cfc20, 0x2d81d: 0x6d7cfe20, 0x2d81e: 0x6d7d0020, 0x2d81f: 0x6da48e20, - 0x2d820: 0x6da49020, 0x2d821: 0x6da49220, 0x2d822: 0x6da49420, 0x2d823: 0x6da49620, - 0x2d824: 0x6da49820, 0x2d825: 0x6dc62620, 0x2d826: 0x6da49a20, 0x2d827: 0x6dc60a20, - 0x2d828: 0x6da49c20, 0x2d829: 0x6da49e20, 0x2d82a: 0x6dc60c20, 0x2d82b: 0x6da4a020, - 0x2d82c: 0x6da4a220, 0x2d82d: 0x6da4a420, 0x2d82e: 0x6da4a620, 0x2d82f: 0x6da4a820, - 0x2d830: 0x6da4aa20, 0x2d831: 0x6da4ac20, 0x2d832: 0x6dc62820, 0x2d833: 0x6d7d9e20, - 0x2d834: 0x6dc62a20, 0x2d835: 0x6dc62c20, 0x2d836: 0x6dc62e20, 0x2d837: 0x6dc63020, - 0x2d838: 0x6dc63220, 0x2d839: 0x6dc63420, 0x2d83a: 0x6dc63620, 0x2d83b: 0x6dc63820, - 0x2d83c: 0x6dc63a20, 0x2d83d: 0x6dc63c20, 0x2d83e: 0x6dc63e20, 0x2d83f: 0x6dc64020, - // Block 0xb61, offset 0x2d840 - 0x2d840: 0x6de2e820, 0x2d841: 0x6dc64220, 0x2d842: 0x6dc64420, 0x2d843: 0x6dc64620, - 0x2d844: 0x6dc64820, 0x2d845: 0x6dc64a20, 0x2d846: 0x6dc64c20, 0x2d847: 0x6de2ee20, - 0x2d848: 0x6de2f020, 0x2d849: 0x6de2f220, 0x2d84a: 0x6de2f420, 0x2d84b: 0x6de2f620, - 0x2d84c: 0x6de2f820, 0x2d84d: 0x6de2fa20, 0x2d84e: 0x6de2fc20, 0x2d84f: 0x6de2fe20, - 0x2d850: 0x6de30020, 0x2d851: 0x6e0dee20, 0x2d852: 0x6de30220, 0x2d853: 0x6dfa6220, - 0x2d854: 0x6dfa6420, 0x2d855: 0x6dfa6620, 0x2d856: 0x6dfa6820, 0x2d857: 0x6dfa6a20, - 0x2d858: 0x6dfa6c20, 0x2d859: 0x6dfa6e20, 0x2d85a: 0x6dfa7020, 0x2d85b: 0x6e0df820, - 0x2d85c: 0x6e0dfa20, 0x2d85d: 0x6e0dfc20, 0x2d85e: 0x6e1d5620, 0x2d85f: 0x6e1d5820, - 0x2d860: 0x6e1d5a20, 0x2d861: 0x6e1d5c20, 0x2d862: 0x6e1d5e20, 0x2d863: 0x6e28f620, - 0x2d864: 0x6e1d6020, 0x2d865: 0x6e28fe20, 0x2d866: 0x6e1d6220, 0x2d867: 0x6e1d6420, - 0x2d868: 0x6e290020, 0x2d869: 0x6e290220, 0x2d86a: 0x6e290420, 0x2d86b: 0x6e290620, - 0x2d86c: 0x6e322620, 0x2d86d: 0x6e322820, 0x2d86e: 0x6e389420, 0x2d86f: 0x6c047e20, - 0x2d870: 0x6c123620, 0x2d871: 0x6c502a20, 0x2d872: 0x6cc67220, 0x2d873: 0x6d7da020, - 0x2d874: 0x6c048020, 0x2d875: 0x6c048220, 0x2d876: 0x6c123a20, 0x2d877: 0x6c123c20, - 0x2d878: 0x6c212020, 0x2d879: 0x6c212220, 0x2d87a: 0x6c212420, 0x2d87b: 0x6c212620, - 0x2d87c: 0x6c212820, 0x2d87d: 0x6c354420, 0x2d87e: 0x6c354620, 0x2d87f: 0x6c503220, - // Block 0xb62, offset 0x2d880 - 0x2d880: 0x6c503c20, 0x2d881: 0x6c503e20, 0x2d882: 0x6c504020, 0x2d883: 0x6c504220, - 0x2d884: 0x6c504420, 0x2d885: 0x6c504620, 0x2d886: 0x6c723c20, 0x2d887: 0x6c723e20, - 0x2d888: 0x6c724020, 0x2d889: 0x6c724220, 0x2d88a: 0x6c724420, 0x2d88b: 0x6c724620, - 0x2d88c: 0x6c724820, 0x2d88d: 0x6c9aac20, 0x2d88e: 0x6c9aae20, 0x2d88f: 0x6c9ab020, - 0x2d890: 0x6c9ab220, 0x2d891: 0x6c9ab420, 0x2d892: 0x6c9ab620, 0x2d893: 0x6c9ab820, - 0x2d894: 0x6c9aba20, 0x2d895: 0x6c9abc20, 0x2d896: 0x6c9abe20, 0x2d897: 0x6c9ac020, - 0x2d898: 0x6c9ac220, 0x2d899: 0x6c9ac420, 0x2d89a: 0x6c9ac620, 0x2d89b: 0x6c9ac820, - 0x2d89c: 0x6cc69a20, 0x2d89d: 0x6c9b1420, 0x2d89e: 0x6cc69c20, 0x2d89f: 0x6cc69e20, - 0x2d8a0: 0x6cc6a020, 0x2d8a1: 0x6cc6a220, 0x2d8a2: 0x6cc6a420, 0x2d8a3: 0x6cc6a620, - 0x2d8a4: 0x6cc6a820, 0x2d8a5: 0x6cc6aa20, 0x2d8a6: 0x6cc6ac20, 0x2d8a7: 0x6cc6ae20, - 0x2d8a8: 0x6cc6b020, 0x2d8a9: 0x6cc6b220, 0x2d8aa: 0x6cc6b420, 0x2d8ab: 0x6cf53620, - 0x2d8ac: 0x6cf53820, 0x2d8ad: 0x6cf52a20, 0x2d8ae: 0x6cf53a20, 0x2d8af: 0x6cf53c20, - 0x2d8b0: 0x6cf53e20, 0x2d8b1: 0x6d24f820, 0x2d8b2: 0x6d24fa20, 0x2d8b3: 0x6d24fc20, - 0x2d8b4: 0x6d7dac20, 0x2d8b5: 0x6d527820, 0x2d8b6: 0x6d527a20, 0x2d8b7: 0x6d527c20, - 0x2d8b8: 0x6d527e20, 0x2d8b9: 0x6d528020, 0x2d8ba: 0x6d528220, 0x2d8bb: 0x6d528420, - 0x2d8bc: 0x6d7db620, 0x2d8bd: 0x6d7db820, 0x2d8be: 0x6d7dba20, 0x2d8bf: 0x6d7dbc20, - // Block 0xb63, offset 0x2d8c0 - 0x2d8c0: 0x6da51420, 0x2d8c1: 0x6da51620, 0x2d8c2: 0x6da51820, 0x2d8c3: 0x6da53e20, - 0x2d8c4: 0x6de35a20, 0x2d8c5: 0x6dfab420, 0x2d8c6: 0x6dfab620, 0x2d8c7: 0x6c048420, - 0x2d8c8: 0x6c213c20, 0x2d8c9: 0x6c357620, 0x2d8ca: 0x6c728e20, 0x2d8cb: 0x6c729020, - 0x2d8cc: 0x6cc70220, 0x2d8cd: 0x6c9b1620, 0x2d8ce: 0x6c9b1820, 0x2d8cf: 0x6c9b1a20, - 0x2d8d0: 0x6cc70420, 0x2d8d1: 0x6cc70620, 0x2d8d2: 0x6cf58e20, 0x2d8d3: 0x6d7e0420, - 0x2d8d4: 0x6dc6dc20, 0x2d8d5: 0x6e0e3c20, 0x2d8d6: 0x6e292620, 0x2d8d7: 0x6c048620, - 0x2d8d8: 0x6c214220, 0x2d8d9: 0x6c729c20, 0x2d8da: 0x6c729e20, 0x2d8db: 0x6c9b2a20, - 0x2d8dc: 0x6c9b2c20, 0x2d8dd: 0x6cc71620, 0x2d8de: 0x6cc72220, 0x2d8df: 0x6cf59820, - 0x2d8e0: 0x6d254820, 0x2d8e1: 0x6d254a20, 0x2d8e2: 0x6d7e0a20, 0x2d8e3: 0x6da54420, - 0x2d8e4: 0x6c048a20, 0x2d8e5: 0x6c095220, 0x2d8e6: 0x6c358a20, 0x2d8e7: 0x6c358c20, - 0x2d8e8: 0x6c358e20, 0x2d8e9: 0x6c359020, 0x2d8ea: 0x6c508620, 0x2d8eb: 0x6c508820, - 0x2d8ec: 0x6c9b3820, 0x2d8ed: 0x6c9b3a20, 0x2d8ee: 0x6cc72620, 0x2d8ef: 0x6cc72820, - 0x2d8f0: 0x6cf5a220, 0x2d8f1: 0x6cc74220, 0x2d8f2: 0x6d255820, 0x2d8f3: 0x6d52d820, - 0x2d8f4: 0x6d7e0c20, 0x2d8f5: 0x6da54c20, 0x2d8f6: 0x6da54e20, 0x2d8f7: 0x6dc6e020, - 0x2d8f8: 0x6e38a220, 0x2d8f9: 0x6c048e20, 0x2d8fa: 0x6c35a020, 0x2d8fb: 0x6c35a220, - 0x2d8fc: 0x6c35a420, 0x2d8fd: 0x6c509020, 0x2d8fe: 0x6c509220, 0x2d8ff: 0x6c509420, - // Block 0xb64, offset 0x2d900 - 0x2d900: 0x6c509620, 0x2d901: 0x6c72bc20, 0x2d902: 0x6c72be20, 0x2d903: 0x6c72c020, - 0x2d904: 0x6c72c220, 0x2d905: 0x6c72c420, 0x2d906: 0x6c72c620, 0x2d907: 0x6c9b4820, - 0x2d908: 0x6c9b4a20, 0x2d909: 0x6c9b4c20, 0x2d90a: 0x6c72c820, 0x2d90b: 0x6c9b4e20, - 0x2d90c: 0x6c9b5020, 0x2d90d: 0x6c9b5220, 0x2d90e: 0x6c9b5420, 0x2d90f: 0x6c9b5620, - 0x2d910: 0x6cc74620, 0x2d911: 0x6cc74820, 0x2d912: 0x6cf5b620, 0x2d913: 0x6cf5b820, - 0x2d914: 0x6cf5ba20, 0x2d915: 0x6cf5bc20, 0x2d916: 0x6d256420, 0x2d917: 0x6d256620, - 0x2d918: 0x6d7e1c20, 0x2d919: 0x6d7e1e20, 0x2d91a: 0x6da55a20, 0x2d91b: 0x6dc6ec20, - 0x2d91c: 0x6de37820, 0x2d91d: 0x6de37a20, 0x2d91e: 0x6de37c20, 0x2d91f: 0x6dfad820, - 0x2d920: 0x6c049020, 0x2d921: 0x6c049220, 0x2d922: 0x6c50ac20, 0x2d923: 0x6c9b6e20, - 0x2d924: 0x6cf5ce20, 0x2d925: 0x6c049620, 0x2d926: 0x6c095420, 0x2d927: 0x6c095620, - 0x2d928: 0x6c125020, 0x2d929: 0x6c125220, 0x2d92a: 0x6c125420, 0x2d92b: 0x6c125620, - 0x2d92c: 0x6c125820, 0x2d92d: 0x6c125a20, 0x2d92e: 0x6c125c20, 0x2d92f: 0x6c125e20, - 0x2d930: 0x6c215c20, 0x2d931: 0x6c215e20, 0x2d932: 0x6c216020, 0x2d933: 0x6c216220, - 0x2d934: 0x6c216420, 0x2d935: 0x6c216620, 0x2d936: 0x6c216820, 0x2d937: 0x6c216a20, - 0x2d938: 0x6c216c20, 0x2d939: 0x6c35b620, 0x2d93a: 0x6c35b820, 0x2d93b: 0x6c35ba20, - 0x2d93c: 0x6c35bc20, 0x2d93d: 0x6c35be20, 0x2d93e: 0x6c35c020, 0x2d93f: 0x6c35c220, - // Block 0xb65, offset 0x2d940 - 0x2d940: 0x6c35c420, 0x2d941: 0x6c35c620, 0x2d942: 0x6c35c820, 0x2d943: 0x6c35ca20, - 0x2d944: 0x6c35cc20, 0x2d945: 0x6c35ce20, 0x2d946: 0x6c35d020, 0x2d947: 0x6c35d220, - 0x2d948: 0x6c35d420, 0x2d949: 0x6c35d620, 0x2d94a: 0x6c35d820, 0x2d94b: 0x6c35da20, - 0x2d94c: 0x6c35dc20, 0x2d94d: 0x6c35de20, 0x2d94e: 0x6c35e020, 0x2d94f: 0x6c35e220, - 0x2d950: 0x6c35e420, 0x2d951: 0x6c35e620, 0x2d952: 0x6c35e820, 0x2d953: 0x6c35ea20, - 0x2d954: 0x6c35ec20, 0x2d955: 0x6c35ee20, 0x2d956: 0x6c35f020, 0x2d957: 0x6c35f220, - 0x2d958: 0x6c35f420, 0x2d959: 0x6c35f620, 0x2d95a: 0x6c50c420, 0x2d95b: 0x6c50c620, - 0x2d95c: 0x6c50c820, 0x2d95d: 0x6c50ca20, 0x2d95e: 0x6c50cc20, 0x2d95f: 0x6c50ce20, - 0x2d960: 0x6c50d020, 0x2d961: 0x6c50d220, 0x2d962: 0x6c50d420, 0x2d963: 0x6c50d620, - 0x2d964: 0x6c50d820, 0x2d965: 0x6c50da20, 0x2d966: 0x6c50dc20, 0x2d967: 0x6c50de20, - 0x2d968: 0x6c50e020, 0x2d969: 0x6c50e220, 0x2d96a: 0x6c50e420, 0x2d96b: 0x6c50e620, - 0x2d96c: 0x6c50e820, 0x2d96d: 0x6c50ea20, 0x2d96e: 0x6c50ec20, 0x2d96f: 0x6c50ee20, - 0x2d970: 0x6c50f020, 0x2d971: 0x6c50f220, 0x2d972: 0x6c50f420, 0x2d973: 0x6c50f620, - 0x2d974: 0x6c50f820, 0x2d975: 0x6c50fa20, 0x2d976: 0x6c50fc20, 0x2d977: 0x6c50fe20, - 0x2d978: 0x6c510020, 0x2d979: 0x6c510220, 0x2d97a: 0x6c510420, 0x2d97b: 0x6c510620, - 0x2d97c: 0x6c510820, 0x2d97d: 0x6c510a20, 0x2d97e: 0x6c510c20, 0x2d97f: 0x6c510e20, - // Block 0xb66, offset 0x2d980 - 0x2d980: 0x6c730420, 0x2d981: 0x6c730620, 0x2d982: 0x6c730820, 0x2d983: 0x6c730a20, - 0x2d984: 0x6c730c20, 0x2d985: 0x6c730e20, 0x2d986: 0x6c731020, 0x2d987: 0x6c731220, - 0x2d988: 0x6c731420, 0x2d989: 0x6c731620, 0x2d98a: 0x6c731820, 0x2d98b: 0x6c731a20, - 0x2d98c: 0x6c731c20, 0x2d98d: 0x6c731e20, 0x2d98e: 0x6c732020, 0x2d98f: 0x6c732220, - 0x2d990: 0x6c732420, 0x2d991: 0x6c732620, 0x2d992: 0x6c732820, 0x2d993: 0x6c732a20, - 0x2d994: 0x6c732c20, 0x2d995: 0x6c732e20, 0x2d996: 0x6c733020, 0x2d997: 0x6c9b7e20, - 0x2d998: 0x6c9b8020, 0x2d999: 0x6c9b8220, 0x2d99a: 0x6c9b8420, 0x2d99b: 0x6c9b8620, - 0x2d99c: 0x6c9b8820, 0x2d99d: 0x6c9b8a20, 0x2d99e: 0x6c9b8c20, 0x2d99f: 0x6c738c20, - 0x2d9a0: 0x6c738e20, 0x2d9a1: 0x6c9b8e20, 0x2d9a2: 0x6c9b9020, 0x2d9a3: 0x6c9b9220, - 0x2d9a4: 0x6c9b9420, 0x2d9a5: 0x6c9b9620, 0x2d9a6: 0x6c9b9820, 0x2d9a7: 0x6c9b9a20, - 0x2d9a8: 0x6c9b9c20, 0x2d9a9: 0x6c9b9e20, 0x2d9aa: 0x6cc78620, 0x2d9ab: 0x6cc78820, - 0x2d9ac: 0x6cc78a20, 0x2d9ad: 0x6cc78c20, 0x2d9ae: 0x6cc78e20, 0x2d9af: 0x6cc79020, - 0x2d9b0: 0x6cc79220, 0x2d9b1: 0x6cc79420, 0x2d9b2: 0x6cc79620, 0x2d9b3: 0x6cc79820, - 0x2d9b4: 0x6cc79a20, 0x2d9b5: 0x6cc79c20, 0x2d9b6: 0x6cc79e20, 0x2d9b7: 0x6cc7a020, - 0x2d9b8: 0x6cf5d620, 0x2d9b9: 0x6cc7a220, 0x2d9ba: 0x6cc7a420, 0x2d9bb: 0x6cc7a620, - 0x2d9bc: 0x6cc7a820, 0x2d9bd: 0x6cc7aa20, 0x2d9be: 0x6cc7ac20, 0x2d9bf: 0x6cc7ae20, - // Block 0xb67, offset 0x2d9c0 - 0x2d9c0: 0x6cc7b020, 0x2d9c1: 0x6cc7b220, 0x2d9c2: 0x6cc7b420, 0x2d9c3: 0x6cc7b620, - 0x2d9c4: 0x6cf5f020, 0x2d9c5: 0x6cf5f220, 0x2d9c6: 0x6cf5f420, 0x2d9c7: 0x6cf5f620, - 0x2d9c8: 0x6cf5f820, 0x2d9c9: 0x6cf5fa20, 0x2d9ca: 0x6cf5fc20, 0x2d9cb: 0x6cf5fe20, - 0x2d9cc: 0x6cf60020, 0x2d9cd: 0x6cf60220, 0x2d9ce: 0x6cf60420, 0x2d9cf: 0x6cf60620, - 0x2d9d0: 0x6cf60820, 0x2d9d1: 0x6cc7b820, 0x2d9d2: 0x6cf60a20, 0x2d9d3: 0x6cf60c20, - 0x2d9d4: 0x6cf60e20, 0x2d9d5: 0x6cf61020, 0x2d9d6: 0x6cf61220, 0x2d9d7: 0x6cf61420, - 0x2d9d8: 0x6cf61620, 0x2d9d9: 0x6cf61820, 0x2d9da: 0x6d257e20, 0x2d9db: 0x6d258020, - 0x2d9dc: 0x6d258220, 0x2d9dd: 0x6d258420, 0x2d9de: 0x6d258620, 0x2d9df: 0x6d258820, - 0x2d9e0: 0x6d258a20, 0x2d9e1: 0x6d258c20, 0x2d9e2: 0x6d258e20, 0x2d9e3: 0x6d259020, - 0x2d9e4: 0x6d259220, 0x2d9e5: 0x6d259420, 0x2d9e6: 0x6d259620, 0x2d9e7: 0x6d259820, - 0x2d9e8: 0x6d259a20, 0x2d9e9: 0x6d530020, 0x2d9ea: 0x6d530220, 0x2d9eb: 0x6d530420, - 0x2d9ec: 0x6d530620, 0x2d9ed: 0x6d530820, 0x2d9ee: 0x6d530a20, 0x2d9ef: 0x6d530c20, - 0x2d9f0: 0x6d530e20, 0x2d9f1: 0x6d531020, 0x2d9f2: 0x6d531220, 0x2d9f3: 0x6d531420, - 0x2d9f4: 0x6d531620, 0x2d9f5: 0x6d531820, 0x2d9f6: 0x6d531a20, 0x2d9f7: 0x6d531c20, - 0x2d9f8: 0x6d7e4420, 0x2d9f9: 0x6d7e4620, 0x2d9fa: 0x6d7e4820, 0x2d9fb: 0x6d7e4a20, - 0x2d9fc: 0x6d537220, 0x2d9fd: 0x6d7e4c20, 0x2d9fe: 0x6d7e4e20, 0x2d9ff: 0x6d7e5020, - // Block 0xb68, offset 0x2da00 - 0x2da00: 0x6d7e5220, 0x2da01: 0x6d7e5420, 0x2da02: 0x6d7e5620, 0x2da03: 0x6d7e5820, - 0x2da04: 0x6d7e5a20, 0x2da05: 0x6d7e5c20, 0x2da06: 0x6d7e5e20, 0x2da07: 0x6d7e6020, - 0x2da08: 0x6d7e6220, 0x2da09: 0x6d7e6420, 0x2da0a: 0x6d7e6620, 0x2da0b: 0x6d7e6820, - 0x2da0c: 0x6d7e6a20, 0x2da0d: 0x6d7e6c20, 0x2da0e: 0x6da56420, 0x2da0f: 0x6d7ed220, - 0x2da10: 0x6da56620, 0x2da11: 0x6da56820, 0x2da12: 0x6da56a20, 0x2da13: 0x6da56c20, - 0x2da14: 0x6da56e20, 0x2da15: 0x6da57020, 0x2da16: 0x6da57220, 0x2da17: 0x6da57420, - 0x2da18: 0x6dc70620, 0x2da19: 0x6da5a820, 0x2da1a: 0x6da57620, 0x2da1b: 0x6dc70820, - 0x2da1c: 0x6dc70a20, 0x2da1d: 0x6de38820, 0x2da1e: 0x6de38a20, 0x2da1f: 0x6de38c20, - 0x2da20: 0x6de38e20, 0x2da21: 0x6de39020, 0x2da22: 0x6de39220, 0x2da23: 0x6dfae020, - 0x2da24: 0x6dfae220, 0x2da25: 0x6dfae420, 0x2da26: 0x6dfae620, 0x2da27: 0x6dfae820, - 0x2da28: 0x6dfaea20, 0x2da29: 0x6e0e4620, 0x2da2a: 0x6e293020, 0x2da2b: 0x6e293220, - 0x2da2c: 0x6e293420, 0x2da2d: 0x6e324a20, 0x2da2e: 0x6e324c20, 0x2da2f: 0x6e38a820, - 0x2da30: 0x6c049820, 0x2da31: 0x6c095e20, 0x2da32: 0x6c127020, 0x2da33: 0x6c127220, - 0x2da34: 0x6c219c20, 0x2da35: 0x6c219e20, 0x2da36: 0x6c364020, 0x2da37: 0x6c515c20, - 0x2da38: 0x6c739020, 0x2da39: 0x6c9c0a20, 0x2da3a: 0x6c739220, 0x2da3b: 0x6c73a820, - 0x2da3c: 0x6c9c0c20, 0x2da3d: 0x6c9ba020, 0x2da3e: 0x6cc84a20, 0x2da3f: 0x6cc84c20, - // Block 0xb69, offset 0x2da40 - 0x2da40: 0x6cb8f420, 0x2da41: 0x6cc84e20, 0x2da42: 0x6cc85020, 0x2da43: 0x6cf68820, - 0x2da44: 0x6d25f820, 0x2da45: 0x6d25fa20, 0x2da46: 0x6d7ed620, 0x2da47: 0x6e0e5820, - 0x2da48: 0x6c049c20, 0x2da49: 0x6c127420, 0x2da4a: 0x6c364c20, 0x2da4b: 0x6c364e20, - 0x2da4c: 0x6c365020, 0x2da4d: 0x6c365220, 0x2da4e: 0x6c516c20, 0x2da4f: 0x6c516e20, - 0x2da50: 0x6c517020, 0x2da51: 0x6c517220, 0x2da52: 0x6c73ae20, 0x2da53: 0x6c73b020, - 0x2da54: 0x6c73b220, 0x2da55: 0x6c73b420, 0x2da56: 0x6c9c1a20, 0x2da57: 0x6c73be20, - 0x2da58: 0x6c9c1c20, 0x2da59: 0x6c9c1e20, 0x2da5a: 0x6c9c2020, 0x2da5b: 0x6c9c2220, - 0x2da5c: 0x6cc85a20, 0x2da5d: 0x6cc85c20, 0x2da5e: 0x6cc85e20, 0x2da5f: 0x6cc86020, - 0x2da60: 0x6cf69420, 0x2da61: 0x6cf69620, 0x2da62: 0x6d260620, 0x2da63: 0x6d7ee620, - 0x2da64: 0x6d7ee820, 0x2da65: 0x6d7eea20, 0x2da66: 0x6dc74820, 0x2da67: 0x6dfb0220, - 0x2da68: 0x6c049e20, 0x2da69: 0x6c04a020, 0x2da6a: 0x6c096220, 0x2da6b: 0x6c096420, - 0x2da6c: 0x6c096620, 0x2da6d: 0x6c096820, 0x2da6e: 0x6c096a20, 0x2da6f: 0x6c096c20, - 0x2da70: 0x6c096e20, 0x2da71: 0x6c127c20, 0x2da72: 0x6c127e20, 0x2da73: 0x6c128020, - 0x2da74: 0x6c128220, 0x2da75: 0x6c128420, 0x2da76: 0x6c128620, 0x2da77: 0x6c128820, - 0x2da78: 0x6c128a20, 0x2da79: 0x6c128c20, 0x2da7a: 0x6c128e20, 0x2da7b: 0x6c129020, - 0x2da7c: 0x6c129220, 0x2da7d: 0x6c129420, 0x2da7e: 0x6c129620, 0x2da7f: 0x6c129820, - // Block 0xb6a, offset 0x2da80 - 0x2da80: 0x6c129a20, 0x2da81: 0x6c129c20, 0x2da82: 0x6c129e20, 0x2da83: 0x6c12a020, - 0x2da84: 0x6c21ba20, 0x2da85: 0x6c21bc20, 0x2da86: 0x6c21be20, 0x2da87: 0x6c21c020, - 0x2da88: 0x6c21c220, 0x2da89: 0x6c21c420, 0x2da8a: 0x6c21c620, 0x2da8b: 0x6c21c820, - 0x2da8c: 0x6c21ca20, 0x2da8d: 0x6c21cc20, 0x2da8e: 0x6c21ce20, 0x2da8f: 0x6c21d020, - 0x2da90: 0x6c21d220, 0x2da91: 0x6c21d420, 0x2da92: 0x6c21d620, 0x2da93: 0x6c21d820, - 0x2da94: 0x6c21da20, 0x2da95: 0x6c21dc20, 0x2da96: 0x6c21de20, 0x2da97: 0x6c21e020, - 0x2da98: 0x6c21e220, 0x2da99: 0x6c21e420, 0x2da9a: 0x6c21e620, 0x2da9b: 0x6c21e820, - 0x2da9c: 0x6c21ea20, 0x2da9d: 0x6c21ec20, 0x2da9e: 0x6c21ee20, 0x2da9f: 0x6c21f020, - 0x2daa0: 0x6c21f220, 0x2daa1: 0x6c21f420, 0x2daa2: 0x6c21f620, 0x2daa3: 0x6c21f820, - 0x2daa4: 0x6c21fa20, 0x2daa5: 0x6c21fc20, 0x2daa6: 0x6c21fe20, 0x2daa7: 0x6c220020, - 0x2daa8: 0x6c220220, 0x2daa9: 0x6c220420, 0x2daaa: 0x6c366c20, 0x2daab: 0x6c366e20, - 0x2daac: 0x6c367020, 0x2daad: 0x6c367220, 0x2daae: 0x6c367420, 0x2daaf: 0x6c367620, - 0x2dab0: 0x6c367820, 0x2dab1: 0x6c367a20, 0x2dab2: 0x6c367c20, 0x2dab3: 0x6c367e20, - 0x2dab4: 0x6c368020, 0x2dab5: 0x6c368220, 0x2dab6: 0x6c368420, 0x2dab7: 0x6c368620, - 0x2dab8: 0x6c368820, 0x2dab9: 0x6c368a20, 0x2daba: 0x6c368c20, 0x2dabb: 0x6c368e20, - 0x2dabc: 0x6c369020, 0x2dabd: 0x6c369220, 0x2dabe: 0x6c369420, 0x2dabf: 0x6c369620, - // Block 0xb6b, offset 0x2dac0 - 0x2dac0: 0x6c369820, 0x2dac1: 0x6c220620, 0x2dac2: 0x6c369a20, 0x2dac3: 0x6c369c20, - 0x2dac4: 0x6c369e20, 0x2dac5: 0x6c36a020, 0x2dac6: 0x6c36a220, 0x2dac7: 0x6c36a420, - 0x2dac8: 0x6c36a620, 0x2dac9: 0x6c36a820, 0x2daca: 0x6c36aa20, 0x2dacb: 0x6c36ac20, - 0x2dacc: 0x6c36ae20, 0x2dacd: 0x6c36b020, 0x2dace: 0x6c36b220, 0x2dacf: 0x6c36b420, - 0x2dad0: 0x6c36b620, 0x2dad1: 0x6c36b820, 0x2dad2: 0x6c36ba20, 0x2dad3: 0x6c36bc20, - 0x2dad4: 0x6c36be20, 0x2dad5: 0x6c36c020, 0x2dad6: 0x6c36c220, 0x2dad7: 0x6c36c420, - 0x2dad8: 0x6c36c620, 0x2dad9: 0x6c36c820, 0x2dada: 0x6c36ca20, 0x2dadb: 0x6c36cc20, - 0x2dadc: 0x6c36ce20, 0x2dadd: 0x6c36d020, 0x2dade: 0x6c36d220, 0x2dadf: 0x6c36d420, - 0x2dae0: 0x6c36d620, 0x2dae1: 0x6c36d820, 0x2dae2: 0x6c36da20, 0x2dae3: 0x6c36dc20, - 0x2dae4: 0x6c36de20, 0x2dae5: 0x6c36e020, 0x2dae6: 0x6c36e220, 0x2dae7: 0x6c36e420, - 0x2dae8: 0x6c36e620, 0x2dae9: 0x6c36e820, 0x2daea: 0x6c36ea20, 0x2daeb: 0x6c36ec20, - 0x2daec: 0x6c36ee20, 0x2daed: 0x6c36f020, 0x2daee: 0x6c519420, 0x2daef: 0x6c519620, - 0x2daf0: 0x6c519820, 0x2daf1: 0x6c519a20, 0x2daf2: 0x6c519c20, 0x2daf3: 0x6c519e20, - 0x2daf4: 0x6c51a020, 0x2daf5: 0x6c51a220, 0x2daf6: 0x6c51a420, 0x2daf7: 0x6c51a620, - 0x2daf8: 0x6c51a820, 0x2daf9: 0x6c51aa20, 0x2dafa: 0x6c51ac20, 0x2dafb: 0x6c51ae20, - 0x2dafc: 0x6c51b020, 0x2dafd: 0x6c73c020, 0x2dafe: 0x6c51b220, 0x2daff: 0x6c51b420, - // Block 0xb6c, offset 0x2db00 - 0x2db00: 0x6c51b620, 0x2db01: 0x6c51b820, 0x2db02: 0x6c51ba20, 0x2db03: 0x6c51bc20, - 0x2db04: 0x6c51be20, 0x2db05: 0x6c51c020, 0x2db06: 0x6c51c220, 0x2db07: 0x6c51c420, - 0x2db08: 0x6c51c620, 0x2db09: 0x6c51c820, 0x2db0a: 0x6c51ca20, 0x2db0b: 0x6c51cc20, - 0x2db0c: 0x6c51ce20, 0x2db0d: 0x6c51d020, 0x2db0e: 0x6c51d220, 0x2db0f: 0x6c51d420, - 0x2db10: 0x6c51d620, 0x2db11: 0x6c51d820, 0x2db12: 0x6c51da20, 0x2db13: 0x6c51dc20, - 0x2db14: 0x6c51de20, 0x2db15: 0x6c51e020, 0x2db16: 0x6c51e220, 0x2db17: 0x6c51e420, - 0x2db18: 0x6c51e620, 0x2db19: 0x6c51e820, 0x2db1a: 0x6c51ea20, 0x2db1b: 0x6c51ec20, - 0x2db1c: 0x6c51ee20, 0x2db1d: 0x6c51f020, 0x2db1e: 0x6c51f220, 0x2db1f: 0x6c51f420, - 0x2db20: 0x6c51f620, 0x2db21: 0x6c73c220, 0x2db22: 0x6c51f820, 0x2db23: 0x6c51fa20, - 0x2db24: 0x6c51fc20, 0x2db25: 0x6c51fe20, 0x2db26: 0x6c520020, 0x2db27: 0x6c520220, - 0x2db28: 0x6c520420, 0x2db29: 0x6c520620, 0x2db2a: 0x6c520820, 0x2db2b: 0x6c520a20, - 0x2db2c: 0x6c520c20, 0x2db2d: 0x6c520e20, 0x2db2e: 0x6c521020, 0x2db2f: 0x6c521220, - 0x2db30: 0x6c521420, 0x2db31: 0x6c521620, 0x2db32: 0x6c521820, 0x2db33: 0x6c521a20, - 0x2db34: 0x6c73c420, 0x2db35: 0x6c521c20, 0x2db36: 0x6c521e20, 0x2db37: 0x6c522020, - 0x2db38: 0x6c522220, 0x2db39: 0x6c376420, 0x2db3a: 0x6c522420, 0x2db3b: 0x6c522620, - 0x2db3c: 0x6c522820, 0x2db3d: 0x6c522a20, 0x2db3e: 0x6c522c20, 0x2db3f: 0x6c522e20, - // Block 0xb6d, offset 0x2db40 - 0x2db40: 0x6c523020, 0x2db41: 0x6c523220, 0x2db42: 0x6c523420, 0x2db43: 0x6c523620, - 0x2db44: 0x6c523820, 0x2db45: 0x6c523a20, 0x2db46: 0x6c523c20, 0x2db47: 0x6c523e20, - 0x2db48: 0x6c524020, 0x2db49: 0x6c524220, 0x2db4a: 0x6c524420, 0x2db4b: 0x6c524620, - 0x2db4c: 0x6c524820, 0x2db4d: 0x6c524a20, 0x2db4e: 0x6c524c20, 0x2db4f: 0x6c524e20, - 0x2db50: 0x6c525020, 0x2db51: 0x6c525220, 0x2db52: 0x6c73e620, 0x2db53: 0x6c73e820, - 0x2db54: 0x6c73ea20, 0x2db55: 0x6c73ec20, 0x2db56: 0x6c73ee20, 0x2db57: 0x6c73f020, - 0x2db58: 0x6c73f220, 0x2db59: 0x6c73f420, 0x2db5a: 0x6c73f620, 0x2db5b: 0x6c73f820, - 0x2db5c: 0x6c73fa20, 0x2db5d: 0x6c73fc20, 0x2db5e: 0x6c73fe20, 0x2db5f: 0x6c740020, - 0x2db60: 0x6c740220, 0x2db61: 0x6c740420, 0x2db62: 0x6c740620, 0x2db63: 0x6c740820, - 0x2db64: 0x6c740a20, 0x2db65: 0x6c740c20, 0x2db66: 0x6c740e20, 0x2db67: 0x6c741020, - 0x2db68: 0x6c741220, 0x2db69: 0x6c741420, 0x2db6a: 0x6c741620, 0x2db6b: 0x6c741820, - 0x2db6c: 0x6c741a20, 0x2db6d: 0x6c741c20, 0x2db6e: 0x6c741e20, 0x2db6f: 0x6c742020, - 0x2db70: 0x6c742220, 0x2db71: 0x6c742420, 0x2db72: 0x6c742620, 0x2db73: 0x6c742820, - 0x2db74: 0x6c742a20, 0x2db75: 0x6c742c20, 0x2db76: 0x6c742e20, 0x2db77: 0x6c743020, - 0x2db78: 0x6c743220, 0x2db79: 0x6c743420, 0x2db7a: 0x6c743620, 0x2db7b: 0x6c743820, - 0x2db7c: 0x6c743a20, 0x2db7d: 0x6c743c20, 0x2db7e: 0x6c743e20, 0x2db7f: 0x6c744020, - // Block 0xb6e, offset 0x2db80 - 0x2db80: 0x6c744220, 0x2db81: 0x6c744420, 0x2db82: 0x6c744620, 0x2db83: 0x6c744820, - 0x2db84: 0x6c744a20, 0x2db85: 0x6c744c20, 0x2db86: 0x6c744e20, 0x2db87: 0x6c745020, - 0x2db88: 0x6c745220, 0x2db89: 0x6c745420, 0x2db8a: 0x6c745620, 0x2db8b: 0x6c745820, - 0x2db8c: 0x6c745a20, 0x2db8d: 0x6c745c20, 0x2db8e: 0x6c745e20, 0x2db8f: 0x6c746020, - 0x2db90: 0x6c746220, 0x2db91: 0x6c746420, 0x2db92: 0x6c52c020, 0x2db93: 0x6c746620, - 0x2db94: 0x6c746820, 0x2db95: 0x6c746a20, 0x2db96: 0x6c746c20, 0x2db97: 0x6c746e20, - 0x2db98: 0x6c747020, 0x2db99: 0x6c747220, 0x2db9a: 0x6c747420, 0x2db9b: 0x6c747620, - 0x2db9c: 0x6c747820, 0x2db9d: 0x6c747a20, 0x2db9e: 0x6c747c20, 0x2db9f: 0x6c747e20, - 0x2dba0: 0x6c748020, 0x2dba1: 0x6c748220, 0x2dba2: 0x6c748420, 0x2dba3: 0x6c748620, - 0x2dba4: 0x6c748820, 0x2dba5: 0x6c748a20, 0x2dba6: 0x6c748c20, 0x2dba7: 0x6c748e20, - 0x2dba8: 0x6c749020, 0x2dba9: 0x6c749220, 0x2dbaa: 0x6c749420, 0x2dbab: 0x6c9c5420, - 0x2dbac: 0x6c9c5620, 0x2dbad: 0x6c9c5820, 0x2dbae: 0x6c9c5a20, 0x2dbaf: 0x6c9c5c20, - 0x2dbb0: 0x6c9c5e20, 0x2dbb1: 0x6c9c6020, 0x2dbb2: 0x6c9c6220, 0x2dbb3: 0x6c9c6420, - 0x2dbb4: 0x6c9c6620, 0x2dbb5: 0x6c9c6820, 0x2dbb6: 0x6c9c6a20, 0x2dbb7: 0x6c9c6c20, - 0x2dbb8: 0x6c9c6e20, 0x2dbb9: 0x6c9c7020, 0x2dbba: 0x6c9c7220, 0x2dbbb: 0x6c9c7420, - 0x2dbbc: 0x6c9c7620, 0x2dbbd: 0x6c9c7820, 0x2dbbe: 0x6c9c7a20, 0x2dbbf: 0x6c9c7c20, - // Block 0xb6f, offset 0x2dbc0 - 0x2dbc0: 0x6c9c7e20, 0x2dbc1: 0x6c9c8020, 0x2dbc2: 0x6c9c8220, 0x2dbc3: 0x6c9c8420, - 0x2dbc4: 0x6c9c8620, 0x2dbc5: 0x6c9c8820, 0x2dbc6: 0x6c9c8a20, 0x2dbc7: 0x6c9c8c20, - 0x2dbc8: 0x6c9c8e20, 0x2dbc9: 0x6c9c9020, 0x2dbca: 0x6c9c9220, 0x2dbcb: 0x6c9c9420, - 0x2dbcc: 0x6c9c9620, 0x2dbcd: 0x6c9c9820, 0x2dbce: 0x6c9c9a20, 0x2dbcf: 0x6c9c9c20, - 0x2dbd0: 0x6c9c9e20, 0x2dbd1: 0x6c9ca020, 0x2dbd2: 0x6c9ca220, 0x2dbd3: 0x6c9ca420, - 0x2dbd4: 0x6c9ca620, 0x2dbd5: 0x6c9ca820, 0x2dbd6: 0x6c9caa20, 0x2dbd7: 0x6c9cac20, - 0x2dbd8: 0x6c9cae20, 0x2dbd9: 0x6c9cb020, 0x2dbda: 0x6c9cb220, 0x2dbdb: 0x6c9cb420, - 0x2dbdc: 0x6c9cb620, 0x2dbdd: 0x6c9cb820, 0x2dbde: 0x6c9cba20, 0x2dbdf: 0x6c9cbc20, - 0x2dbe0: 0x6c9cbe20, 0x2dbe1: 0x6c9cc020, 0x2dbe2: 0x6c9cc220, 0x2dbe3: 0x6c9cc420, - 0x2dbe4: 0x6c9cc620, 0x2dbe5: 0x6c9cc820, 0x2dbe6: 0x6c9cca20, 0x2dbe7: 0x6c9ccc20, - 0x2dbe8: 0x6c9cce20, 0x2dbe9: 0x6c9cd020, 0x2dbea: 0x6c9cd220, 0x2dbeb: 0x6c9cd420, - 0x2dbec: 0x6c9cd620, 0x2dbed: 0x6c9cd820, 0x2dbee: 0x6c9cda20, 0x2dbef: 0x6c9cdc20, - 0x2dbf0: 0x6c9cde20, 0x2dbf1: 0x6c9ce020, 0x2dbf2: 0x6c9ce220, 0x2dbf3: 0x6c9ce420, - 0x2dbf4: 0x6cc88420, 0x2dbf5: 0x6c9ce620, 0x2dbf6: 0x6c9ce820, 0x2dbf7: 0x6c9cea20, - 0x2dbf8: 0x6c9cec20, 0x2dbf9: 0x6c9cee20, 0x2dbfa: 0x6c9cf020, 0x2dbfb: 0x6c9cf220, - 0x2dbfc: 0x6c9cf420, 0x2dbfd: 0x6c9cf620, 0x2dbfe: 0x6c9cf820, 0x2dbff: 0x6c9cfa20, - // Block 0xb70, offset 0x2dc00 - 0x2dc00: 0x6c9cfc20, 0x2dc01: 0x6c9cfe20, 0x2dc02: 0x6c9d0020, 0x2dc03: 0x6cc8ae20, - 0x2dc04: 0x6cc8b020, 0x2dc05: 0x6cc8b220, 0x2dc06: 0x6cc8b420, 0x2dc07: 0x6cc8b620, - 0x2dc08: 0x6cc8b820, 0x2dc09: 0x6cc8ba20, 0x2dc0a: 0x6cc8bc20, 0x2dc0b: 0x6cc8be20, - 0x2dc0c: 0x6cc8c020, 0x2dc0d: 0x6cc8c220, 0x2dc0e: 0x6cc8c420, 0x2dc0f: 0x6cc8c620, - 0x2dc10: 0x6cc8c820, 0x2dc11: 0x6cc8ca20, 0x2dc12: 0x6cc8cc20, 0x2dc13: 0x6cc8ce20, - 0x2dc14: 0x6cc8d020, 0x2dc15: 0x6cc8d220, 0x2dc16: 0x6cc8d420, 0x2dc17: 0x6cc8d620, - 0x2dc18: 0x6cc8d820, 0x2dc19: 0x6cc8da20, 0x2dc1a: 0x6cc8dc20, 0x2dc1b: 0x6cc8de20, - 0x2dc1c: 0x6cc8e020, 0x2dc1d: 0x6cc8e220, 0x2dc1e: 0x6cc8e420, 0x2dc1f: 0x6cc8e620, - 0x2dc20: 0x6cc8e820, 0x2dc21: 0x6cc8ea20, 0x2dc22: 0x6cc8ec20, 0x2dc23: 0x6cc8ee20, - 0x2dc24: 0x6cc8f020, 0x2dc25: 0x6cc8f220, 0x2dc26: 0x6cc8f420, 0x2dc27: 0x6cc8f620, - 0x2dc28: 0x6cc8f820, 0x2dc29: 0x6cc8fa20, 0x2dc2a: 0x6cc8fc20, 0x2dc2b: 0x6cc8fe20, - 0x2dc2c: 0x6cc90020, 0x2dc2d: 0x6cc90220, 0x2dc2e: 0x6cc90420, 0x2dc2f: 0x6cc90620, - 0x2dc30: 0x6cc90820, 0x2dc31: 0x6cc90a20, 0x2dc32: 0x6cc90c20, 0x2dc33: 0x6cc90e20, - 0x2dc34: 0x6cc91020, 0x2dc35: 0x6cc91220, 0x2dc36: 0x6cc91420, 0x2dc37: 0x6cc91620, - 0x2dc38: 0x6cc91820, 0x2dc39: 0x6cc91a20, 0x2dc3a: 0x6cc91c20, 0x2dc3b: 0x6cc91e20, - 0x2dc3c: 0x6cc92020, 0x2dc3d: 0x6cc92220, 0x2dc3e: 0x6cc92420, 0x2dc3f: 0x6cc92620, - // Block 0xb71, offset 0x2dc40 - 0x2dc40: 0x6cc92820, 0x2dc41: 0x6cc92a20, 0x2dc42: 0x6cc92c20, 0x2dc43: 0x6cc92e20, - 0x2dc44: 0x6cc93020, 0x2dc45: 0x6cc93220, 0x2dc46: 0x6cc93420, 0x2dc47: 0x6cc93620, - 0x2dc48: 0x6cc93820, 0x2dc49: 0x6cc93a20, 0x2dc4a: 0x6cc93c20, 0x2dc4b: 0x6cc93e20, - 0x2dc4c: 0x6cc94020, 0x2dc4d: 0x6cc94220, 0x2dc4e: 0x6cc94420, 0x2dc4f: 0x6cc94620, - 0x2dc50: 0x6cc94820, 0x2dc51: 0x6cc94a20, 0x2dc52: 0x6cc94c20, 0x2dc53: 0x6cc94e20, - 0x2dc54: 0x6cc95020, 0x2dc55: 0x6cc95220, 0x2dc56: 0x6cc95420, 0x2dc57: 0x6cc95620, - 0x2dc58: 0x6cc95820, 0x2dc59: 0x6cc95a20, 0x2dc5a: 0x6cc95c20, 0x2dc5b: 0x6cc95e20, - 0x2dc5c: 0x6cc96020, 0x2dc5d: 0x6cc96220, 0x2dc5e: 0x6cc96420, 0x2dc5f: 0x6cc96620, - 0x2dc60: 0x6cc96820, 0x2dc61: 0x6cc96a20, 0x2dc62: 0x6cc96c20, 0x2dc63: 0x6cc96e20, - 0x2dc64: 0x6cc97020, 0x2dc65: 0x6cc97220, 0x2dc66: 0x6cc97420, 0x2dc67: 0x6cc97620, - 0x2dc68: 0x6cc97820, 0x2dc69: 0x6cc97a20, 0x2dc6a: 0x6cc97c20, 0x2dc6b: 0x6cc97e20, - 0x2dc6c: 0x6cc98020, 0x2dc6d: 0x6cc98220, 0x2dc6e: 0x6cc98420, 0x2dc6f: 0x6cf6e220, - 0x2dc70: 0x6cf6e420, 0x2dc71: 0x6cf6e620, 0x2dc72: 0x6cf6e820, 0x2dc73: 0x6cf6ea20, - 0x2dc74: 0x6cf6ec20, 0x2dc75: 0x6cf6ee20, 0x2dc76: 0x6cf6f020, 0x2dc77: 0x6cf6f220, - 0x2dc78: 0x6cf6f420, 0x2dc79: 0x6cf6f620, 0x2dc7a: 0x6cf6f820, 0x2dc7b: 0x6cf6fa20, - 0x2dc7c: 0x6cf6fc20, 0x2dc7d: 0x6cf6fe20, 0x2dc7e: 0x6cf70020, 0x2dc7f: 0x6cf70220, - // Block 0xb72, offset 0x2dc80 - 0x2dc80: 0x6cf70420, 0x2dc81: 0x6cf70620, 0x2dc82: 0x6cf70820, 0x2dc83: 0x6cf70a20, - 0x2dc84: 0x6cf70c20, 0x2dc85: 0x6cf70e20, 0x2dc86: 0x6cf71020, 0x2dc87: 0x6cf71220, - 0x2dc88: 0x6cf71420, 0x2dc89: 0x6cf71620, 0x2dc8a: 0x6cf71820, 0x2dc8b: 0x6cf71a20, - 0x2dc8c: 0x6cf71c20, 0x2dc8d: 0x6cf71e20, 0x2dc8e: 0x6cf72020, 0x2dc8f: 0x6cf72220, - 0x2dc90: 0x6cf72420, 0x2dc91: 0x6cf72620, 0x2dc92: 0x6cf72820, 0x2dc93: 0x6cf72a20, - 0x2dc94: 0x6cf72c20, 0x2dc95: 0x6cf72e20, 0x2dc96: 0x6c9da420, 0x2dc97: 0x6cf73020, - 0x2dc98: 0x6cf73220, 0x2dc99: 0x6cf73420, 0x2dc9a: 0x6cf73620, 0x2dc9b: 0x6cf73820, - 0x2dc9c: 0x6cf73a20, 0x2dc9d: 0x6cf73c20, 0x2dc9e: 0x6cf73e20, 0x2dc9f: 0x6cf74020, - 0x2dca0: 0x6cf74220, 0x2dca1: 0x6cf74420, 0x2dca2: 0x6cf74620, 0x2dca3: 0x6cf74820, - 0x2dca4: 0x6cf74a20, 0x2dca5: 0x6cf74c20, 0x2dca6: 0x6cf74e20, 0x2dca7: 0x6cf75020, - 0x2dca8: 0x6cf75220, 0x2dca9: 0x6cf75420, 0x2dcaa: 0x6cf75620, 0x2dcab: 0x6cf75820, - 0x2dcac: 0x6cf75a20, 0x2dcad: 0x6cf75c20, 0x2dcae: 0x6cca8820, 0x2dcaf: 0x6cf75e20, - 0x2dcb0: 0x6cca8a20, 0x2dcb1: 0x6cf76020, 0x2dcb2: 0x6cf76220, 0x2dcb3: 0x6cf76420, - 0x2dcb4: 0x6cf76620, 0x2dcb5: 0x6cf76820, 0x2dcb6: 0x6cf76a20, 0x2dcb7: 0x6cf76c20, - 0x2dcb8: 0x6cf76e20, 0x2dcb9: 0x6cf77020, 0x2dcba: 0x6cf77220, 0x2dcbb: 0x6cf77420, - 0x2dcbc: 0x6cf77620, 0x2dcbd: 0x6cf77820, 0x2dcbe: 0x6cf77a20, 0x2dcbf: 0x6cf77c20, - // Block 0xb73, offset 0x2dcc0 - 0x2dcc0: 0x6cf77e20, 0x2dcc1: 0x6cf78020, 0x2dcc2: 0x6cf78220, 0x2dcc3: 0x6cf78420, - 0x2dcc4: 0x6cf78620, 0x2dcc5: 0x6cf78820, 0x2dcc6: 0x6cf78a20, 0x2dcc7: 0x6cf78c20, - 0x2dcc8: 0x6cf78e20, 0x2dcc9: 0x6cf79020, 0x2dcca: 0x6d264e20, 0x2dccb: 0x6cf79220, - 0x2dccc: 0x6cf79420, 0x2dccd: 0x6d265020, 0x2dcce: 0x6d265220, 0x2dccf: 0x6d265420, - 0x2dcd0: 0x6d265620, 0x2dcd1: 0x6d265820, 0x2dcd2: 0x6d265a20, 0x2dcd3: 0x6d265c20, - 0x2dcd4: 0x6cf79620, 0x2dcd5: 0x6d265e20, 0x2dcd6: 0x6d266020, 0x2dcd7: 0x6d266220, - 0x2dcd8: 0x6cf79820, 0x2dcd9: 0x6d266420, 0x2dcda: 0x6d266620, 0x2dcdb: 0x6d266820, - 0x2dcdc: 0x6d266a20, 0x2dcdd: 0x6d266c20, 0x2dcde: 0x6d266e20, 0x2dcdf: 0x6d267020, - 0x2dce0: 0x6d267220, 0x2dce1: 0x6d267420, 0x2dce2: 0x6d267620, 0x2dce3: 0x6d267820, - 0x2dce4: 0x6d267a20, 0x2dce5: 0x6d267c20, 0x2dce6: 0x6d267e20, 0x2dce7: 0x6d268020, - 0x2dce8: 0x6d268220, 0x2dce9: 0x6d268420, 0x2dcea: 0x6d268620, 0x2dceb: 0x6d268820, - 0x2dcec: 0x6d268a20, 0x2dced: 0x6d268c20, 0x2dcee: 0x6d268e20, 0x2dcef: 0x6d269020, - 0x2dcf0: 0x6d269220, 0x2dcf1: 0x6d269420, 0x2dcf2: 0x6d269620, 0x2dcf3: 0x6d269820, - 0x2dcf4: 0x6d269a20, 0x2dcf5: 0x6d269c20, 0x2dcf6: 0x6d269e20, 0x2dcf7: 0x6d26a020, - 0x2dcf8: 0x6d26a220, 0x2dcf9: 0x6d26a420, 0x2dcfa: 0x6d26a620, 0x2dcfb: 0x6d26a820, - 0x2dcfc: 0x6d26aa20, 0x2dcfd: 0x6d26ac20, 0x2dcfe: 0x6d26ae20, 0x2dcff: 0x6d26b020, - // Block 0xb74, offset 0x2dd00 - 0x2dd00: 0x6d26b220, 0x2dd01: 0x6d26b420, 0x2dd02: 0x6d26b620, 0x2dd03: 0x6d26b820, - 0x2dd04: 0x6d26ba20, 0x2dd05: 0x6d26bc20, 0x2dd06: 0x6d26be20, 0x2dd07: 0x6d26c020, - 0x2dd08: 0x6d26c220, 0x2dd09: 0x6d26c420, 0x2dd0a: 0x6d26c620, 0x2dd0b: 0x6d26c820, - 0x2dd0c: 0x6d26ca20, 0x2dd0d: 0x6d26cc20, 0x2dd0e: 0x6d26ce20, 0x2dd0f: 0x6d26d020, - 0x2dd10: 0x6d26d220, 0x2dd11: 0x6d26d420, 0x2dd12: 0x6d26d620, 0x2dd13: 0x6d26d820, - 0x2dd14: 0x6d26da20, 0x2dd15: 0x6d26dc20, 0x2dd16: 0x6d26de20, 0x2dd17: 0x6d26e020, - 0x2dd18: 0x6d26e220, 0x2dd19: 0x6d26e420, 0x2dd1a: 0x6d26e620, 0x2dd1b: 0x6d26e820, - 0x2dd1c: 0x6d26ea20, 0x2dd1d: 0x6d26ec20, 0x2dd1e: 0x6d26ee20, 0x2dd1f: 0x6d26f020, - 0x2dd20: 0x6d26f220, 0x2dd21: 0x6d26f420, 0x2dd22: 0x6d53c820, 0x2dd23: 0x6d53ca20, - 0x2dd24: 0x6d53cc20, 0x2dd25: 0x6d53ce20, 0x2dd26: 0x6d53d020, 0x2dd27: 0x6d53d220, - 0x2dd28: 0x6d53d420, 0x2dd29: 0x6d539c20, 0x2dd2a: 0x6d53d620, 0x2dd2b: 0x6d53d820, - 0x2dd2c: 0x6d53da20, 0x2dd2d: 0x6d53dc20, 0x2dd2e: 0x6d53de20, 0x2dd2f: 0x6d53e020, - 0x2dd30: 0x6d53e220, 0x2dd31: 0x6d53e420, 0x2dd32: 0x6d53e620, 0x2dd33: 0x6d53e820, - 0x2dd34: 0x6d53ea20, 0x2dd35: 0x6d53ec20, 0x2dd36: 0x6d53ee20, 0x2dd37: 0x6d53f020, - 0x2dd38: 0x6d53f220, 0x2dd39: 0x6d53f420, 0x2dd3a: 0x6d53f620, 0x2dd3b: 0x6d53f820, - 0x2dd3c: 0x6d53fa20, 0x2dd3d: 0x6d53fc20, 0x2dd3e: 0x6d53fe20, 0x2dd3f: 0x6d540020, - // Block 0xb75, offset 0x2dd40 - 0x2dd40: 0x6d540220, 0x2dd41: 0x6d540420, 0x2dd42: 0x6d540620, 0x2dd43: 0x6d280020, - 0x2dd44: 0x6d540820, 0x2dd45: 0x6d540a20, 0x2dd46: 0x6d540c20, 0x2dd47: 0x6d540e20, - 0x2dd48: 0x6d541020, 0x2dd49: 0x6d541220, 0x2dd4a: 0x6d541420, 0x2dd4b: 0x6d541620, - 0x2dd4c: 0x6d541820, 0x2dd4d: 0x6d541a20, 0x2dd4e: 0x6d541c20, 0x2dd4f: 0x6d541e20, - 0x2dd50: 0x6d542020, 0x2dd51: 0x6d542220, 0x2dd52: 0x6d542420, 0x2dd53: 0x6d542620, - 0x2dd54: 0x6d542820, 0x2dd55: 0x6d542a20, 0x2dd56: 0x6d542c20, 0x2dd57: 0x6d542e20, - 0x2dd58: 0x6d543020, 0x2dd59: 0x6d543220, 0x2dd5a: 0x6d543420, 0x2dd5b: 0x6d543620, - 0x2dd5c: 0x6d543820, 0x2dd5d: 0x6d543a20, 0x2dd5e: 0x6d543c20, 0x2dd5f: 0x6d543e20, - 0x2dd60: 0x6d544020, 0x2dd61: 0x6d544220, 0x2dd62: 0x6d544420, 0x2dd63: 0x6d544620, - 0x2dd64: 0x6d544820, 0x2dd65: 0x6d544a20, 0x2dd66: 0x6d544c20, 0x2dd67: 0x6d544e20, - 0x2dd68: 0x6d7efe20, 0x2dd69: 0x6d545020, 0x2dd6a: 0x6d545220, 0x2dd6b: 0x6d545420, - 0x2dd6c: 0x6d545620, 0x2dd6d: 0x6d545820, 0x2dd6e: 0x6d26f620, 0x2dd6f: 0x6d545a20, - 0x2dd70: 0x6d545c20, 0x2dd71: 0x6d545e20, 0x2dd72: 0x6d7f3020, 0x2dd73: 0x6d7f3220, - 0x2dd74: 0x6d7f3420, 0x2dd75: 0x6d7f3620, 0x2dd76: 0x6d7f3820, 0x2dd77: 0x6d7f3a20, - 0x2dd78: 0x6d7f3c20, 0x2dd79: 0x6d7f3e20, 0x2dd7a: 0x6d7f4020, 0x2dd7b: 0x6d7f4220, - 0x2dd7c: 0x6d7f4420, 0x2dd7d: 0x6d7f4620, 0x2dd7e: 0x6d7f4820, 0x2dd7f: 0x6d7f4a20, - // Block 0xb76, offset 0x2dd80 - 0x2dd80: 0x6d7f4c20, 0x2dd81: 0x6d7f4e20, 0x2dd82: 0x6d7f5020, 0x2dd83: 0x6d7f5220, - 0x2dd84: 0x6d7f5420, 0x2dd85: 0x6d7f5620, 0x2dd86: 0x6d7f5820, 0x2dd87: 0x6d7f5a20, - 0x2dd88: 0x6d7f5c20, 0x2dd89: 0x6d7f5e20, 0x2dd8a: 0x6d7f6020, 0x2dd8b: 0x6d7f6220, - 0x2dd8c: 0x6d7f6420, 0x2dd8d: 0x6d7f6620, 0x2dd8e: 0x6d7f6820, 0x2dd8f: 0x6d7f6a20, - 0x2dd90: 0x6d7f6c20, 0x2dd91: 0x6d7f6e20, 0x2dd92: 0x6d7f7020, 0x2dd93: 0x6d7f7220, - 0x2dd94: 0x6d7f7420, 0x2dd95: 0x6d7f7620, 0x2dd96: 0x6d7f7820, 0x2dd97: 0x6d7f7a20, - 0x2dd98: 0x6d7f7c20, 0x2dd99: 0x6d7f7e20, 0x2dd9a: 0x6d7f8020, 0x2dd9b: 0x6d7f8220, - 0x2dd9c: 0x6d7f8420, 0x2dd9d: 0x6d7f8620, 0x2dd9e: 0x6d7f8820, 0x2dd9f: 0x6d7f8a20, - 0x2dda0: 0x6d7f8c20, 0x2dda1: 0x6d7f8e20, 0x2dda2: 0x6d7f9020, 0x2dda3: 0x6d7f9220, - 0x2dda4: 0x6d7f9420, 0x2dda5: 0x6d546020, 0x2dda6: 0x6d7f9620, 0x2dda7: 0x6d7f9820, - 0x2dda8: 0x6d7f9a20, 0x2dda9: 0x6d7f9c20, 0x2ddaa: 0x6d7f9e20, 0x2ddab: 0x6d7fa020, - 0x2ddac: 0x6d7fa220, 0x2ddad: 0x6d7fa420, 0x2ddae: 0x6d7fa620, 0x2ddaf: 0x6d7fa820, - 0x2ddb0: 0x6d7faa20, 0x2ddb1: 0x6d7fac20, 0x2ddb2: 0x6d7fae20, 0x2ddb3: 0x6d7fb020, - 0x2ddb4: 0x6d7f0020, 0x2ddb5: 0x6d7fb220, 0x2ddb6: 0x6d7fb420, 0x2ddb7: 0x6d7fb620, - 0x2ddb8: 0x6d7fb820, 0x2ddb9: 0x6d7fba20, 0x2ddba: 0x6d7fbc20, 0x2ddbb: 0x6d7fbe20, - 0x2ddbc: 0x6d7fc020, 0x2ddbd: 0x6da5dc20, 0x2ddbe: 0x6da5de20, 0x2ddbf: 0x6da5e020, - // Block 0xb77, offset 0x2ddc0 - 0x2ddc0: 0x6da5e220, 0x2ddc1: 0x6da5e420, 0x2ddc2: 0x6da5e620, 0x2ddc3: 0x6da5e820, - 0x2ddc4: 0x6da5ea20, 0x2ddc5: 0x6da5ec20, 0x2ddc6: 0x6da5ee20, 0x2ddc7: 0x6da5f020, - 0x2ddc8: 0x6da5f220, 0x2ddc9: 0x6da5f420, 0x2ddca: 0x6da5f620, 0x2ddcb: 0x6da5f820, - 0x2ddcc: 0x6da5fa20, 0x2ddcd: 0x6da5fc20, 0x2ddce: 0x6da5fe20, 0x2ddcf: 0x6da60020, - 0x2ddd0: 0x6da60220, 0x2ddd1: 0x6da60420, 0x2ddd2: 0x6da60620, 0x2ddd3: 0x6da60820, - 0x2ddd4: 0x6da60a20, 0x2ddd5: 0x6da60c20, 0x2ddd6: 0x6da60e20, 0x2ddd7: 0x6da61020, - 0x2ddd8: 0x6da61220, 0x2ddd9: 0x6da61420, 0x2ddda: 0x6da61620, 0x2dddb: 0x6da61820, - 0x2dddc: 0x6da61a20, 0x2dddd: 0x6da61c20, 0x2ddde: 0x6da61e20, 0x2dddf: 0x6da62020, - 0x2dde0: 0x6da62220, 0x2dde1: 0x6da62420, 0x2dde2: 0x6da62620, 0x2dde3: 0x6da62820, - 0x2dde4: 0x6da62a20, 0x2dde5: 0x6da62c20, 0x2dde6: 0x6da62e20, 0x2dde7: 0x6da63020, - 0x2dde8: 0x6da63220, 0x2dde9: 0x6da63420, 0x2ddea: 0x6da63620, 0x2ddeb: 0x6dc76220, - 0x2ddec: 0x6dc76420, 0x2dded: 0x6dc76620, 0x2ddee: 0x6dc76820, 0x2ddef: 0x6dc76a20, - 0x2ddf0: 0x6dc76c20, 0x2ddf1: 0x6dc76e20, 0x2ddf2: 0x6dc77020, 0x2ddf3: 0x6dc77220, - 0x2ddf4: 0x6dc77420, 0x2ddf5: 0x6dc77620, 0x2ddf6: 0x6dc77820, 0x2ddf7: 0x6dc77a20, - 0x2ddf8: 0x6dc77c20, 0x2ddf9: 0x6dc77e20, 0x2ddfa: 0x6dc78020, 0x2ddfb: 0x6dc78220, - 0x2ddfc: 0x6dc78420, 0x2ddfd: 0x6dc78620, 0x2ddfe: 0x6dc78820, 0x2ddff: 0x6dc78a20, - // Block 0xb78, offset 0x2de00 - 0x2de00: 0x6dc78c20, 0x2de01: 0x6dc78e20, 0x2de02: 0x6dc79020, 0x2de03: 0x6dc79220, - 0x2de04: 0x6dc79420, 0x2de05: 0x6dc79620, 0x2de06: 0x6dc79820, 0x2de07: 0x6dc79a20, - 0x2de08: 0x6dc79c20, 0x2de09: 0x6dc79e20, 0x2de0a: 0x6dc7a020, 0x2de0b: 0x6de3ca20, - 0x2de0c: 0x6de3cc20, 0x2de0d: 0x6de3ce20, 0x2de0e: 0x6de3d020, 0x2de0f: 0x6de3d220, - 0x2de10: 0x6de3d420, 0x2de11: 0x6de3d620, 0x2de12: 0x6de3d820, 0x2de13: 0x6de3da20, - 0x2de14: 0x6de3dc20, 0x2de15: 0x6de3de20, 0x2de16: 0x6de3e020, 0x2de17: 0x6de3e220, - 0x2de18: 0x6de3e420, 0x2de19: 0x6de3e620, 0x2de1a: 0x6de3e820, 0x2de1b: 0x6da6f220, - 0x2de1c: 0x6de3ea20, 0x2de1d: 0x6de3ec20, 0x2de1e: 0x6de3ee20, 0x2de1f: 0x6de3f020, - 0x2de20: 0x6de3f220, 0x2de21: 0x6dc84c20, 0x2de22: 0x6de3f420, 0x2de23: 0x6de3f620, - 0x2de24: 0x6de3f820, 0x2de25: 0x6de3fa20, 0x2de26: 0x6de3fc20, 0x2de27: 0x6de47820, - 0x2de28: 0x6dfb2020, 0x2de29: 0x6dfb2220, 0x2de2a: 0x6dfb2420, 0x2de2b: 0x6de3fe20, - 0x2de2c: 0x6dfb2620, 0x2de2d: 0x6dc84e20, 0x2de2e: 0x6dfb2820, 0x2de2f: 0x6dfb2a20, - 0x2de30: 0x6dfb2c20, 0x2de31: 0x6dfb2e20, 0x2de32: 0x6dfb3020, 0x2de33: 0x6dfb3220, - 0x2de34: 0x6dfb3420, 0x2de35: 0x6dfb3620, 0x2de36: 0x6dfb3820, 0x2de37: 0x6e1db620, - 0x2de38: 0x6e0e6220, 0x2de39: 0x6dfb9820, 0x2de3a: 0x6e0e6420, 0x2de3b: 0x6e0e6620, - 0x2de3c: 0x6e0e6820, 0x2de3d: 0x6e0e6a20, 0x2de3e: 0x6e0e6c20, 0x2de3f: 0x6e0e6e20, - // Block 0xb79, offset 0x2de40 - 0x2de40: 0x6e0e7020, 0x2de41: 0x6e0e7220, 0x2de42: 0x6e0e7420, 0x2de43: 0x6e0e7620, - 0x2de44: 0x6e0e7820, 0x2de45: 0x6e0e7a20, 0x2de46: 0x6e1db820, 0x2de47: 0x6e1dba20, - 0x2de48: 0x6e1dbc20, 0x2de49: 0x6e1dbe20, 0x2de4a: 0x6e1dc020, 0x2de4b: 0x6e1dc220, - 0x2de4c: 0x6e0e7c20, 0x2de4d: 0x6e1dc420, 0x2de4e: 0x6e1dc620, 0x2de4f: 0x6e294220, - 0x2de50: 0x6e294420, 0x2de51: 0x6e294620, 0x2de52: 0x6e294820, 0x2de53: 0x6e325e20, - 0x2de54: 0x6e326020, 0x2de55: 0x6e326220, 0x2de56: 0x6e38b020, 0x2de57: 0x6e38b220, - 0x2de58: 0x6e38b420, 0x2de59: 0x6e38b620, 0x2de5a: 0x6e38b820, 0x2de5b: 0x6e38ba20, - 0x2de5c: 0x6e3d3020, 0x2de5d: 0x6e38d420, 0x2de5e: 0x6e42a620, 0x2de5f: 0x6e42a820, - 0x2de60: 0x6c04a620, 0x2de61: 0x6c12b420, 0x2de62: 0x6c12b620, 0x2de63: 0x6c376e20, - 0x2de64: 0x6c223c20, 0x2de65: 0x6c377020, 0x2de66: 0x6c377220, 0x2de67: 0x6c377420, - 0x2de68: 0x6c52ce20, 0x2de69: 0x6c52d020, 0x2de6a: 0x6c52d220, 0x2de6b: 0x6c755220, - 0x2de6c: 0x6c755420, 0x2de6d: 0x6c755620, 0x2de6e: 0x6c755820, 0x2de6f: 0x6c755a20, - 0x2de70: 0x6c755c20, 0x2de71: 0x6c755e20, 0x2de72: 0x6c9dae20, 0x2de73: 0x6c9db020, - 0x2de74: 0x6c758620, 0x2de75: 0x6c9db220, 0x2de76: 0x6c9db420, 0x2de77: 0x6c9db620, - 0x2de78: 0x6c9db820, 0x2de79: 0x6cca9820, 0x2de7a: 0x6cca9a20, 0x2de7b: 0x6cca9c20, - 0x2de7c: 0x6cca9e20, 0x2de7d: 0x6ccaa020, 0x2de7e: 0x6ccaa220, 0x2de7f: 0x6ccaa420, - // Block 0xb7a, offset 0x2de80 - 0x2de80: 0x6cf8c820, 0x2de81: 0x6cf8ca20, 0x2de82: 0x6cf8cc20, 0x2de83: 0x6cf8ce20, - 0x2de84: 0x6cf8d020, 0x2de85: 0x6cf8d220, 0x2de86: 0x6cf8d420, 0x2de87: 0x6cf8d620, - 0x2de88: 0x6cf8d820, 0x2de89: 0x6d280820, 0x2de8a: 0x6d280a20, 0x2de8b: 0x6d280c20, - 0x2de8c: 0x6d280e20, 0x2de8d: 0x6d281020, 0x2de8e: 0x6d555620, 0x2de8f: 0x6d555820, - 0x2de90: 0x6d555a20, 0x2de91: 0x6d555c20, 0x2de92: 0x6d555e20, 0x2de93: 0x6d556020, - 0x2de94: 0x6d80d420, 0x2de95: 0x6d80d620, 0x2de96: 0x6d80d820, 0x2de97: 0x6d80da20, - 0x2de98: 0x6d80dc20, 0x2de99: 0x6d80de20, 0x2de9a: 0x6d80e020, 0x2de9b: 0x6da6fc20, - 0x2de9c: 0x6da6fe20, 0x2de9d: 0x6da70020, 0x2de9e: 0x6dc85020, 0x2de9f: 0x6dc85220, - 0x2dea0: 0x6de47c20, 0x2dea1: 0x6e1e0e20, 0x2dea2: 0x6c04a820, 0x2dea3: 0x6c097620, - 0x2dea4: 0x6c12bc20, 0x2dea5: 0x6c225220, 0x2dea6: 0x6c379420, 0x2dea7: 0x6c379620, - 0x2dea8: 0x6c379820, 0x2dea9: 0x6c379a20, 0x2deaa: 0x6c52fe20, 0x2deab: 0x6c530020, - 0x2deac: 0x6c758820, 0x2dead: 0x6c758a20, 0x2deae: 0x6ccad620, 0x2deaf: 0x6ccad820, - 0x2deb0: 0x6d284020, 0x2deb1: 0x6cf90620, 0x2deb2: 0x6cf90820, 0x2deb3: 0x6cf90a20, - 0x2deb4: 0x6d284420, 0x2deb5: 0x6d558420, 0x2deb6: 0x6d558620, 0x2deb7: 0x6d80f220, - 0x2deb8: 0x6dc85e20, 0x2deb9: 0x6c04ae20, 0x2deba: 0x6c097c20, 0x2debb: 0x6c12c420, - 0x2debc: 0x6c225e20, 0x2debd: 0x6c37d220, 0x2debe: 0x6c37d420, 0x2debf: 0x6c37d620, - // Block 0xb7b, offset 0x2dec0 - 0x2dec0: 0x6c37d820, 0x2dec1: 0x6c37da20, 0x2dec2: 0x6c530e20, 0x2dec3: 0x6c531020, - 0x2dec4: 0x6c531220, 0x2dec5: 0x6c531420, 0x2dec6: 0x6c531620, 0x2dec7: 0x6c531820, - 0x2dec8: 0x6c75aa20, 0x2dec9: 0x6c75ac20, 0x2deca: 0x6c75ae20, 0x2decb: 0x6c75b020, - 0x2decc: 0x6c9dec20, 0x2decd: 0x6c9dee20, 0x2dece: 0x6c9df020, 0x2decf: 0x6c9df220, - 0x2ded0: 0x6c9df420, 0x2ded1: 0x6c9df620, 0x2ded2: 0x6c9df820, 0x2ded3: 0x6c9dfa20, - 0x2ded4: 0x6ccb0420, 0x2ded5: 0x6ccb0620, 0x2ded6: 0x6ccb0820, 0x2ded7: 0x6ccb0a20, - 0x2ded8: 0x6ccb0c20, 0x2ded9: 0x6ccb0e20, 0x2deda: 0x6ccb1020, 0x2dedb: 0x6cf92c20, - 0x2dedc: 0x6cf92e20, 0x2dedd: 0x6d285820, 0x2dede: 0x6d285a20, 0x2dedf: 0x6d285c20, - 0x2dee0: 0x6d285e20, 0x2dee1: 0x6d286020, 0x2dee2: 0x6d559e20, 0x2dee3: 0x6d55a020, - 0x2dee4: 0x6d55a220, 0x2dee5: 0x6d55a420, 0x2dee6: 0x6d55a620, 0x2dee7: 0x6d810820, - 0x2dee8: 0x6d810a20, 0x2dee9: 0x6d810c20, 0x2deea: 0x6d810e20, 0x2deeb: 0x6d811020, - 0x2deec: 0x6da72020, 0x2deed: 0x6da72220, 0x2deee: 0x6da72420, 0x2deef: 0x6dc86c20, - 0x2def0: 0x6de48a20, 0x2def1: 0x6de48c20, 0x2def2: 0x6e0ee220, 0x2def3: 0x6c04b420, - 0x2def4: 0x6c380620, 0x2def5: 0x6c534820, 0x2def6: 0x6c534a20, 0x2def7: 0x6c75e020, - 0x2def8: 0x6c9e2220, 0x2def9: 0x6c9e2420, 0x2defa: 0x6c9e2620, 0x2defb: 0x6c9e2820, - 0x2defc: 0x6ccb5020, 0x2defd: 0x6ccb5220, 0x2defe: 0x6ccb6820, 0x2deff: 0x6cf95820, - // Block 0xb7c, offset 0x2df00 - 0x2df00: 0x6cf95a20, 0x2df01: 0x6cf95c20, 0x2df02: 0x6cf95e20, 0x2df03: 0x6d287820, - 0x2df04: 0x6d287a20, 0x2df05: 0x6d55ca20, 0x2df06: 0x6d55cc20, 0x2df07: 0x6d812e20, - 0x2df08: 0x6d813020, 0x2df09: 0x6dc89020, 0x2df0a: 0x6e298620, 0x2df0b: 0x6c04b620, - 0x2df0c: 0x6c04b820, 0x2df0d: 0x6c098020, 0x2df0e: 0x6c12d420, 0x2df0f: 0x6c227620, - 0x2df10: 0x6c227820, 0x2df11: 0x6c380e20, 0x2df12: 0x6c535220, 0x2df13: 0x6cf97c20, - 0x2df14: 0x6c04bc20, 0x2df15: 0x6c12d820, 0x2df16: 0x6c535820, 0x2df17: 0x6c535a20, - 0x2df18: 0x6c535c20, 0x2df19: 0x6c75ee20, 0x2df1a: 0x6da74620, 0x2df1b: 0x6c04be20, - 0x2df1c: 0x6c228220, 0x2df1d: 0x6c228420, 0x2df1e: 0x6c382a20, 0x2df1f: 0x6c382c20, - 0x2df20: 0x6c536020, 0x2df21: 0x6c536220, 0x2df22: 0x6c75f820, 0x2df23: 0x6c75fa20, - 0x2df24: 0x6c75fc20, 0x2df25: 0x6c75fe20, 0x2df26: 0x6c760020, 0x2df27: 0x6c760220, - 0x2df28: 0x6c760420, 0x2df29: 0x6c760620, 0x2df2a: 0x6c760820, 0x2df2b: 0x6c9e6220, - 0x2df2c: 0x6c9e6420, 0x2df2d: 0x6c9e6620, 0x2df2e: 0x6c9e6820, 0x2df2f: 0x6ccb7220, - 0x2df30: 0x6ccb7420, 0x2df31: 0x6ccb7620, 0x2df32: 0x6ccb7820, 0x2df33: 0x6ccb7a20, - 0x2df34: 0x6ccb7c20, 0x2df35: 0x6ccb7e20, 0x2df36: 0x6ccb8020, 0x2df37: 0x6cf98c20, - 0x2df38: 0x6cf98e20, 0x2df39: 0x6cf99020, 0x2df3a: 0x6cf99220, 0x2df3b: 0x6cf99420, - 0x2df3c: 0x6cf99620, 0x2df3d: 0x6cf99820, 0x2df3e: 0x6d28aa20, 0x2df3f: 0x6d55de20, - // Block 0xb7d, offset 0x2df40 - 0x2df40: 0x6d55e020, 0x2df41: 0x6d55e220, 0x2df42: 0x6d55e420, 0x2df43: 0x6d816620, - 0x2df44: 0x6d816820, 0x2df45: 0x6d816a20, 0x2df46: 0x6d816c20, 0x2df47: 0x6d816e20, - 0x2df48: 0x6da74a20, 0x2df49: 0x6da74c20, 0x2df4a: 0x6da74e20, 0x2df4b: 0x6dc89620, - 0x2df4c: 0x6de4a420, 0x2df4d: 0x6e1e2420, 0x2df4e: 0x6e3d4a20, 0x2df4f: 0x6c04c220, - 0x2df50: 0x6c098420, 0x2df51: 0x6c098620, 0x2df52: 0x6c12e620, 0x2df53: 0x6c385020, - 0x2df54: 0x6c04c420, 0x2df55: 0x6c098a20, 0x2df56: 0x6c12ea20, 0x2df57: 0x6c12ec20, - 0x2df58: 0x6c12ee20, 0x2df59: 0x6c229620, 0x2df5a: 0x6c229820, 0x2df5b: 0x6c385820, - 0x2df5c: 0x6c385a20, 0x2df5d: 0x6c385c20, 0x2df5e: 0x6c53b820, 0x2df5f: 0x6c53ba20, - 0x2df60: 0x6c53bc20, 0x2df61: 0x6c53be20, 0x2df62: 0x6c53c020, 0x2df63: 0x6c763a20, - 0x2df64: 0x6c763c20, 0x2df65: 0x6c763e20, 0x2df66: 0x6c764020, 0x2df67: 0x6c764220, - 0x2df68: 0x6c764420, 0x2df69: 0x6c764620, 0x2df6a: 0x6c9ea220, 0x2df6b: 0x6c9ea420, - 0x2df6c: 0x6ccbc620, 0x2df6d: 0x6ccbc820, 0x2df6e: 0x6ccbca20, 0x2df6f: 0x6ccbcc20, - 0x2df70: 0x6ccbce20, 0x2df71: 0x6cf9d820, 0x2df72: 0x6d28ec20, 0x2df73: 0x6d28ee20, - 0x2df74: 0x6c04c620, 0x2df75: 0x6c01fa20, 0x2df76: 0x6c098e20, 0x2df77: 0x6c099020, - 0x2df78: 0x6c099220, 0x2df79: 0x6c099420, 0x2df7a: 0x6c098c20, 0x2df7b: 0x6c099c20, - 0x2df7c: 0x6c12f620, 0x2df7d: 0x6c0c5c20, 0x2df7e: 0x6c099e20, 0x2df7f: 0x6c09a020, - // Block 0xb7e, offset 0x2df80 - 0x2df80: 0x6c09a220, 0x2df81: 0x6c09a420, 0x2df82: 0x6c229e20, 0x2df83: 0x6c09a620, - 0x2df84: 0x6c09a820, 0x2df85: 0x6c09aa20, 0x2df86: 0x6c12f820, 0x2df87: 0x6c09ac20, - 0x2df88: 0x6c09ae20, 0x2df89: 0x6c09b020, 0x2df8a: 0x6c12fe20, 0x2df8b: 0x6c130020, - 0x2df8c: 0x6c130220, 0x2df8d: 0x6c130420, 0x2df8e: 0x6c130620, 0x2df8f: 0x6c130820, - 0x2df90: 0x6c130a20, 0x2df91: 0x6c130c20, 0x2df92: 0x6c130e20, 0x2df93: 0x6c131020, - 0x2df94: 0x6c131220, 0x2df95: 0x6c131420, 0x2df96: 0x6c22a220, 0x2df97: 0x6c131620, - 0x2df98: 0x6c131820, 0x2df99: 0x6c131a20, 0x2df9a: 0x6c131c20, 0x2df9b: 0x6c131e20, - 0x2df9c: 0x6c132020, 0x2df9d: 0x6c132220, 0x2df9e: 0x6c22a420, 0x2df9f: 0x6c132420, - 0x2dfa0: 0x6c132620, 0x2dfa1: 0x6c132820, 0x2dfa2: 0x6c132a20, 0x2dfa3: 0x6c132c20, - 0x2dfa4: 0x6c132e20, 0x2dfa5: 0x6c22bc20, 0x2dfa6: 0x6c22be20, 0x2dfa7: 0x6c22c020, - 0x2dfa8: 0x6c22c220, 0x2dfa9: 0x6c22c420, 0x2dfaa: 0x6c22c620, 0x2dfab: 0x6c22c820, - 0x2dfac: 0x6c386620, 0x2dfad: 0x6c22ca20, 0x2dfae: 0x6c22cc20, 0x2dfaf: 0x6c22ce20, - 0x2dfb0: 0x6c22d020, 0x2dfb1: 0x6c22d220, 0x2dfb2: 0x6c22d420, 0x2dfb3: 0x6c22d620, - 0x2dfb4: 0x6c22d820, 0x2dfb5: 0x6c22da20, 0x2dfb6: 0x6c22dc20, 0x2dfb7: 0x6c135420, - 0x2dfb8: 0x6c22de20, 0x2dfb9: 0x6c22e020, 0x2dfba: 0x6c22e220, 0x2dfbb: 0x6c22e420, - 0x2dfbc: 0x6c22e620, 0x2dfbd: 0x6c22e820, 0x2dfbe: 0x6c22ea20, 0x2dfbf: 0x6c22ec20, - // Block 0xb7f, offset 0x2dfc0 - 0x2dfc0: 0x6c386820, 0x2dfc1: 0x6c22ee20, 0x2dfc2: 0x6c22f020, 0x2dfc3: 0x6c22f220, - 0x2dfc4: 0x6c22f420, 0x2dfc5: 0x6c22f620, 0x2dfc6: 0x6c22f820, 0x2dfc7: 0x6c22fa20, - 0x2dfc8: 0x6c22fc20, 0x2dfc9: 0x6c22fe20, 0x2dfca: 0x6c386a20, 0x2dfcb: 0x6c230020, - 0x2dfcc: 0x6c230220, 0x2dfcd: 0x6c230420, 0x2dfce: 0x6c230620, 0x2dfcf: 0x6c230820, - 0x2dfd0: 0x6c230a20, 0x2dfd1: 0x6c230c20, 0x2dfd2: 0x6c230e20, 0x2dfd3: 0x6c386c20, - 0x2dfd4: 0x6c231020, 0x2dfd5: 0x6c231220, 0x2dfd6: 0x6c231420, 0x2dfd7: 0x6c53ce20, - 0x2dfd8: 0x6c231620, 0x2dfd9: 0x6c231820, 0x2dfda: 0x6c231a20, 0x2dfdb: 0x6c231c20, - 0x2dfdc: 0x6c231e20, 0x2dfdd: 0x6c386e20, 0x2dfde: 0x6c232020, 0x2dfdf: 0x6c232220, - 0x2dfe0: 0x6c232420, 0x2dfe1: 0x6c232620, 0x2dfe2: 0x6c232820, 0x2dfe3: 0x6c232a20, - 0x2dfe4: 0x6c232c20, 0x2dfe5: 0x6c232e20, 0x2dfe6: 0x6c233020, 0x2dfe7: 0x6c233220, - 0x2dfe8: 0x6c233420, 0x2dfe9: 0x6c233620, 0x2dfea: 0x6c233820, 0x2dfeb: 0x6c388620, - 0x2dfec: 0x6c388820, 0x2dfed: 0x6c388a20, 0x2dfee: 0x6c388c20, 0x2dfef: 0x6c53d020, - 0x2dff0: 0x6c388e20, 0x2dff1: 0x6c389020, 0x2dff2: 0x6c389220, 0x2dff3: 0x6c389420, - 0x2dff4: 0x6c389620, 0x2dff5: 0x6c389820, 0x2dff6: 0x6c389a20, 0x2dff7: 0x6c389c20, - 0x2dff8: 0x6c389e20, 0x2dff9: 0x6c38a020, 0x2dffa: 0x6c38a220, 0x2dffb: 0x6c38a420, - 0x2dffc: 0x6c38a620, 0x2dffd: 0x6c38a820, 0x2dffe: 0x6c38aa20, 0x2dfff: 0x6c38ac20, - // Block 0xb80, offset 0x2e000 - 0x2e000: 0x6c38ae20, 0x2e001: 0x6c38b020, 0x2e002: 0x6c38b220, 0x2e003: 0x6c38b420, - 0x2e004: 0x6c38b620, 0x2e005: 0x6c38b820, 0x2e006: 0x6c38ba20, 0x2e007: 0x6c38bc20, - 0x2e008: 0x6c38be20, 0x2e009: 0x6c53d220, 0x2e00a: 0x6c38c020, 0x2e00b: 0x6c38c220, - 0x2e00c: 0x6c38c420, 0x2e00d: 0x6c38c620, 0x2e00e: 0x6c38c820, 0x2e00f: 0x6c38ca20, - 0x2e010: 0x6c38cc20, 0x2e011: 0x6c38ce20, 0x2e012: 0x6c38d020, 0x2e013: 0x6c38d220, - 0x2e014: 0x6c38d420, 0x2e015: 0x6c38d620, 0x2e016: 0x6c38d820, 0x2e017: 0x6c38da20, - 0x2e018: 0x6c38dc20, 0x2e019: 0x6c38de20, 0x2e01a: 0x6c53f220, 0x2e01b: 0x6c38e020, - 0x2e01c: 0x6c38e220, 0x2e01d: 0x6c38e420, 0x2e01e: 0x6c38e620, 0x2e01f: 0x6c38e820, - 0x2e020: 0x6c38ea20, 0x2e021: 0x6c38ec20, 0x2e022: 0x6c38ee20, 0x2e023: 0x6c38f020, - 0x2e024: 0x6c38f220, 0x2e025: 0x6c38f420, 0x2e026: 0x6c38f620, 0x2e027: 0x6c38f820, - 0x2e028: 0x6c38fa20, 0x2e029: 0x6c38fc20, 0x2e02a: 0x6c38fe20, 0x2e02b: 0x6c390020, - 0x2e02c: 0x6c390220, 0x2e02d: 0x6c390420, 0x2e02e: 0x6c390620, 0x2e02f: 0x6c390820, - 0x2e030: 0x6c764a20, 0x2e031: 0x6c390a20, 0x2e032: 0x6c390c20, 0x2e033: 0x6c390e20, - 0x2e034: 0x6c53d420, 0x2e035: 0x6c5a4620, 0x2e036: 0x6c53d620, 0x2e037: 0x6c391020, - 0x2e038: 0x6c391220, 0x2e039: 0x6c391420, 0x2e03a: 0x6c391620, 0x2e03b: 0x6c391820, - 0x2e03c: 0x6c391a20, 0x2e03d: 0x6c391c20, 0x2e03e: 0x6c391e20, 0x2e03f: 0x6c53f420, - // Block 0xb81, offset 0x2e040 - 0x2e040: 0x6c53f620, 0x2e041: 0x6c53f820, 0x2e042: 0x6c53fa20, 0x2e043: 0x6c53fc20, - 0x2e044: 0x6c53fe20, 0x2e045: 0x6c540020, 0x2e046: 0x6c540220, 0x2e047: 0x6c540420, - 0x2e048: 0x6c540620, 0x2e049: 0x6c540820, 0x2e04a: 0x6c540a20, 0x2e04b: 0x6c540c20, - 0x2e04c: 0x6c540e20, 0x2e04d: 0x6c767020, 0x2e04e: 0x6c541020, 0x2e04f: 0x6c541220, - 0x2e050: 0x6c541420, 0x2e051: 0x6c541620, 0x2e052: 0x6c541820, 0x2e053: 0x6c541a20, - 0x2e054: 0x6c541c20, 0x2e055: 0x6c541e20, 0x2e056: 0x6c767220, 0x2e057: 0x6c542020, - 0x2e058: 0x6c542220, 0x2e059: 0x6c542420, 0x2e05a: 0x6c542620, 0x2e05b: 0x6c542820, - 0x2e05c: 0x6c764c20, 0x2e05d: 0x6c542a20, 0x2e05e: 0x6c542c20, 0x2e05f: 0x6c542e20, - 0x2e060: 0x6c543020, 0x2e061: 0x6c543220, 0x2e062: 0x6c543420, 0x2e063: 0x6c543620, - 0x2e064: 0x6c543820, 0x2e065: 0x6c543a20, 0x2e066: 0x6c543c20, 0x2e067: 0x6c543e20, - 0x2e068: 0x6c544020, 0x2e069: 0x6c544220, 0x2e06a: 0x6c544420, 0x2e06b: 0x6c544620, - 0x2e06c: 0x6c544820, 0x2e06d: 0x6c544a20, 0x2e06e: 0x6c544c20, 0x2e06f: 0x6c764e20, - 0x2e070: 0x6c399020, 0x2e071: 0x6c544e20, 0x2e072: 0x6c545020, 0x2e073: 0x6c545220, - 0x2e074: 0x6c545420, 0x2e075: 0x6c545620, 0x2e076: 0x6c545820, 0x2e077: 0x6c545a20, - 0x2e078: 0x6c545c20, 0x2e079: 0x6c545e20, 0x2e07a: 0x6c546020, 0x2e07b: 0x6c546220, - 0x2e07c: 0x6c546420, 0x2e07d: 0x6c546620, 0x2e07e: 0x6c546820, 0x2e07f: 0x6c546a20, - // Block 0xb82, offset 0x2e080 - 0x2e080: 0x6c546c20, 0x2e081: 0x6c546e20, 0x2e082: 0x6c547020, 0x2e083: 0x6c547220, - 0x2e084: 0x6c547420, 0x2e085: 0x6c547620, 0x2e086: 0x6c765020, 0x2e087: 0x6c547820, - 0x2e088: 0x6c547a20, 0x2e089: 0x6c547c20, 0x2e08a: 0x6c547e20, 0x2e08b: 0x6c548020, - 0x2e08c: 0x6c548220, 0x2e08d: 0x6c548420, 0x2e08e: 0x6c548620, 0x2e08f: 0x6c548820, - 0x2e090: 0x6c548a20, 0x2e091: 0x6c548c20, 0x2e092: 0x6c548e20, 0x2e093: 0x6c549020, - 0x2e094: 0x6c549220, 0x2e095: 0x6c549420, 0x2e096: 0x6c767420, 0x2e097: 0x6c767620, - 0x2e098: 0x6c767820, 0x2e099: 0x6c767a20, 0x2e09a: 0x6c767c20, 0x2e09b: 0x6c767e20, - 0x2e09c: 0x6c768020, 0x2e09d: 0x6c768220, 0x2e09e: 0x6c768420, 0x2e09f: 0x6c768620, - 0x2e0a0: 0x6c768820, 0x2e0a1: 0x6c768a20, 0x2e0a2: 0x6c768c20, 0x2e0a3: 0x6c768e20, - 0x2e0a4: 0x6c769020, 0x2e0a5: 0x6c769220, 0x2e0a6: 0x6c769420, 0x2e0a7: 0x6c769620, - 0x2e0a8: 0x6c769820, 0x2e0a9: 0x6c769a20, 0x2e0aa: 0x6c769c20, 0x2e0ab: 0x6c769e20, - 0x2e0ac: 0x6c76a020, 0x2e0ad: 0x6c76a220, 0x2e0ae: 0x6c76a420, 0x2e0af: 0x6c76a620, - 0x2e0b0: 0x6c76a820, 0x2e0b1: 0x6c76aa20, 0x2e0b2: 0x6c76ac20, 0x2e0b3: 0x6c76ae20, - 0x2e0b4: 0x6c76b020, 0x2e0b5: 0x6c76b220, 0x2e0b6: 0x6c76b420, 0x2e0b7: 0x6c76b620, - 0x2e0b8: 0x6c76b820, 0x2e0b9: 0x6c76ba20, 0x2e0ba: 0x6c76bc20, 0x2e0bb: 0x6c76be20, - 0x2e0bc: 0x6c76c020, 0x2e0bd: 0x6c76c220, 0x2e0be: 0x6c76c420, 0x2e0bf: 0x6c76c620, - // Block 0xb83, offset 0x2e0c0 - 0x2e0c0: 0x6c76c820, 0x2e0c1: 0x6c76ca20, 0x2e0c2: 0x6c76cc20, 0x2e0c3: 0x6c76ce20, - 0x2e0c4: 0x6c76d020, 0x2e0c5: 0x6c76d220, 0x2e0c6: 0x6c76d420, 0x2e0c7: 0x6c76d620, - 0x2e0c8: 0x6c76d820, 0x2e0c9: 0x6c76da20, 0x2e0ca: 0x6c76dc20, 0x2e0cb: 0x6c76de20, - 0x2e0cc: 0x6c76e020, 0x2e0cd: 0x6c76e220, 0x2e0ce: 0x6c9eae20, 0x2e0cf: 0x6c76e420, - 0x2e0d0: 0x6c76e620, 0x2e0d1: 0x6c76e820, 0x2e0d2: 0x6c76ea20, 0x2e0d3: 0x6c76ec20, - 0x2e0d4: 0x6c76ee20, 0x2e0d5: 0x6c76f020, 0x2e0d6: 0x6c76f220, 0x2e0d7: 0x6c76f420, - 0x2e0d8: 0x6c76f620, 0x2e0d9: 0x6c9ee020, 0x2e0da: 0x6c76f820, 0x2e0db: 0x6c76fa20, - 0x2e0dc: 0x6c76fc20, 0x2e0dd: 0x6c76fe20, 0x2e0de: 0x6c770020, 0x2e0df: 0x6c770220, - 0x2e0e0: 0x6c770420, 0x2e0e1: 0x6c770620, 0x2e0e2: 0x6c770820, 0x2e0e3: 0x6c770a20, - 0x2e0e4: 0x6c770c20, 0x2e0e5: 0x6c770e20, 0x2e0e6: 0x6c771020, 0x2e0e7: 0x6c771220, - 0x2e0e8: 0x6c771420, 0x2e0e9: 0x6c771620, 0x2e0ea: 0x6c9ee220, 0x2e0eb: 0x6c9ee420, - 0x2e0ec: 0x6c9ee620, 0x2e0ed: 0x6c9ee820, 0x2e0ee: 0x6c9eea20, 0x2e0ef: 0x6c9eec20, - 0x2e0f0: 0x6c9eee20, 0x2e0f1: 0x6c9ef020, 0x2e0f2: 0x6c9ef220, 0x2e0f3: 0x6c9ef420, - 0x2e0f4: 0x6c9ef620, 0x2e0f5: 0x6c9ef820, 0x2e0f6: 0x6c9efa20, 0x2e0f7: 0x6c9efc20, - 0x2e0f8: 0x6c9efe20, 0x2e0f9: 0x6c9f0020, 0x2e0fa: 0x6c9f0220, 0x2e0fb: 0x6c9f0420, - 0x2e0fc: 0x6c9f0620, 0x2e0fd: 0x6c9f0820, 0x2e0fe: 0x6c9f0a20, 0x2e0ff: 0x6c9f0c20, - // Block 0xb84, offset 0x2e100 - 0x2e100: 0x6c9f0e20, 0x2e101: 0x6c9f1020, 0x2e102: 0x6c9f1220, 0x2e103: 0x6c9f1420, - 0x2e104: 0x6c9f1620, 0x2e105: 0x6c9f1820, 0x2e106: 0x6c9f1a20, 0x2e107: 0x6c9f1c20, - 0x2e108: 0x6c9f1e20, 0x2e109: 0x6c9f2020, 0x2e10a: 0x6c9f2220, 0x2e10b: 0x6c9f2420, - 0x2e10c: 0x6c9f2620, 0x2e10d: 0x6c9f2820, 0x2e10e: 0x6c9f2a20, 0x2e10f: 0x6c9f2c20, - 0x2e110: 0x6c9f2e20, 0x2e111: 0x6c9f3020, 0x2e112: 0x6c9f3220, 0x2e113: 0x6c9f3420, - 0x2e114: 0x6c9f3620, 0x2e115: 0x6c9f3820, 0x2e116: 0x6c9f3a20, 0x2e117: 0x6c9f3c20, - 0x2e118: 0x6c9f3e20, 0x2e119: 0x6c9f4020, 0x2e11a: 0x6c9f4220, 0x2e11b: 0x6c9f4420, - 0x2e11c: 0x6c9f4620, 0x2e11d: 0x6c9f4820, 0x2e11e: 0x6c9f4a20, 0x2e11f: 0x6c9f4c20, - 0x2e120: 0x6c9f4e20, 0x2e121: 0x6c9f5020, 0x2e122: 0x6c9f5220, 0x2e123: 0x6c9f5420, - 0x2e124: 0x6c9f5620, 0x2e125: 0x6c9f5820, 0x2e126: 0x6c9f5a20, 0x2e127: 0x6c9f5c20, - 0x2e128: 0x6c9f5e20, 0x2e129: 0x6c9f6020, 0x2e12a: 0x6c9f6220, 0x2e12b: 0x6c9f6420, - 0x2e12c: 0x6c9f6620, 0x2e12d: 0x6c9f6820, 0x2e12e: 0x6c9f6a20, 0x2e12f: 0x6c9f6c20, - 0x2e130: 0x6c9f6e20, 0x2e131: 0x6c9f7020, 0x2e132: 0x6c9f7220, 0x2e133: 0x6c9f7420, - 0x2e134: 0x6c9f7620, 0x2e135: 0x6c9f7820, 0x2e136: 0x6c9f7a20, 0x2e137: 0x6c9f7c20, - 0x2e138: 0x6c9f7e20, 0x2e139: 0x6c9f8020, 0x2e13a: 0x6c9f8220, 0x2e13b: 0x6c9f8420, - 0x2e13c: 0x6ccbdc20, 0x2e13d: 0x6c9f8620, 0x2e13e: 0x6ccbde20, 0x2e13f: 0x6c9f8820, - // Block 0xb85, offset 0x2e140 - 0x2e140: 0x6c9f8a20, 0x2e141: 0x6c9f8c20, 0x2e142: 0x6c9f8e20, 0x2e143: 0x6ccc0c20, - 0x2e144: 0x6c9f9020, 0x2e145: 0x6c9f9220, 0x2e146: 0x6c9f9420, 0x2e147: 0x6c9f9620, - 0x2e148: 0x6c9f9820, 0x2e149: 0x6c9f9a20, 0x2e14a: 0x6c9f9c20, 0x2e14b: 0x6c9f9e20, - 0x2e14c: 0x6c9fa020, 0x2e14d: 0x6c9fa220, 0x2e14e: 0x6c9fa420, 0x2e14f: 0x6c9fa620, - 0x2e150: 0x6c9fa820, 0x2e151: 0x6c9faa20, 0x2e152: 0x6c9fac20, 0x2e153: 0x6c9fae20, - 0x2e154: 0x6c9fb020, 0x2e155: 0x6c9fb220, 0x2e156: 0x6c9fb420, 0x2e157: 0x6c9fb620, - 0x2e158: 0x6ccc0e20, 0x2e159: 0x6ccc1020, 0x2e15a: 0x6c9fb820, 0x2e15b: 0x6ccc1220, - 0x2e15c: 0x6ccc1420, 0x2e15d: 0x6ccc1620, 0x2e15e: 0x6ccc1820, 0x2e15f: 0x6ccc1a20, - 0x2e160: 0x6ccc1c20, 0x2e161: 0x6ccc1e20, 0x2e162: 0x6ccc2020, 0x2e163: 0x6ccc2220, - 0x2e164: 0x6ccc2420, 0x2e165: 0x6ccc2620, 0x2e166: 0x6ccc2820, 0x2e167: 0x6ccc2a20, - 0x2e168: 0x6ccc2c20, 0x2e169: 0x6ccc2e20, 0x2e16a: 0x6ccc3020, 0x2e16b: 0x6ccc3220, - 0x2e16c: 0x6ccc3420, 0x2e16d: 0x6ccc3620, 0x2e16e: 0x6ccc3820, 0x2e16f: 0x6ccc3a20, - 0x2e170: 0x6ccc3c20, 0x2e171: 0x6ccc3e20, 0x2e172: 0x6ccc4020, 0x2e173: 0x6ccc4220, - 0x2e174: 0x6ccc4420, 0x2e175: 0x6ccc4620, 0x2e176: 0x6ccc4820, 0x2e177: 0x6ccc4a20, - 0x2e178: 0x6ccc4c20, 0x2e179: 0x6ccc4e20, 0x2e17a: 0x6ccc5020, 0x2e17b: 0x6ccc5220, - 0x2e17c: 0x6ccc5420, 0x2e17d: 0x6ccc5620, 0x2e17e: 0x6ccc5820, 0x2e17f: 0x6ccc5a20, - // Block 0xb86, offset 0x2e180 - 0x2e180: 0x6ccc5c20, 0x2e181: 0x6ccc5e20, 0x2e182: 0x6ccc6020, 0x2e183: 0x6ccc6220, - 0x2e184: 0x6ccc6420, 0x2e185: 0x6ccc6620, 0x2e186: 0x6ccc6820, 0x2e187: 0x6ccc6a20, - 0x2e188: 0x6ccc6c20, 0x2e189: 0x6ccc6e20, 0x2e18a: 0x6ccc7020, 0x2e18b: 0x6ccc7220, - 0x2e18c: 0x6ccc7420, 0x2e18d: 0x6ccc7620, 0x2e18e: 0x6ccc7820, 0x2e18f: 0x6ccc7a20, - 0x2e190: 0x6ccc7c20, 0x2e191: 0x6ccc7e20, 0x2e192: 0x6ccc8020, 0x2e193: 0x6ccc8220, - 0x2e194: 0x6ccc8420, 0x2e195: 0x6ccc8620, 0x2e196: 0x6ccc8820, 0x2e197: 0x6ccc8a20, - 0x2e198: 0x6ccc8c20, 0x2e199: 0x6ccc8e20, 0x2e19a: 0x6ccc9020, 0x2e19b: 0x6ccc9220, - 0x2e19c: 0x6ccc9420, 0x2e19d: 0x6ccc9620, 0x2e19e: 0x6ccc9820, 0x2e19f: 0x6ccc9a20, - 0x2e1a0: 0x6ccc9c20, 0x2e1a1: 0x6ccc9e20, 0x2e1a2: 0x6ccca020, 0x2e1a3: 0x6ccca220, - 0x2e1a4: 0x6ccca420, 0x2e1a5: 0x6ccca620, 0x2e1a6: 0x6ccca820, 0x2e1a7: 0x6cccaa20, - 0x2e1a8: 0x6cccac20, 0x2e1a9: 0x6cccae20, 0x2e1aa: 0x6cccb020, 0x2e1ab: 0x6cccb220, - 0x2e1ac: 0x6cf9e220, 0x2e1ad: 0x6cccb420, 0x2e1ae: 0x6cccb620, 0x2e1af: 0x6cccb820, - 0x2e1b0: 0x6cccba20, 0x2e1b1: 0x6cccbc20, 0x2e1b2: 0x6cccbe20, 0x2e1b3: 0x6cccc020, - 0x2e1b4: 0x6c9fba20, 0x2e1b5: 0x6cccc220, 0x2e1b6: 0x6cccc420, 0x2e1b7: 0x6cccc620, - 0x2e1b8: 0x6cccc820, 0x2e1b9: 0x6cccca20, 0x2e1ba: 0x6ccccc20, 0x2e1bb: 0x6cccce20, - 0x2e1bc: 0x6cccd020, 0x2e1bd: 0x6cccd220, 0x2e1be: 0x6cccd420, 0x2e1bf: 0x6cccd620, - // Block 0xb87, offset 0x2e1c0 - 0x2e1c0: 0x6cccd820, 0x2e1c1: 0x6cccda20, 0x2e1c2: 0x6cccdc20, 0x2e1c3: 0x6cccde20, - 0x2e1c4: 0x6ccce020, 0x2e1c5: 0x6ccce220, 0x2e1c6: 0x6ccce420, 0x2e1c7: 0x6ccce620, - 0x2e1c8: 0x6ccce820, 0x2e1c9: 0x6cccea20, 0x2e1ca: 0x6cccec20, 0x2e1cb: 0x6cccee20, - 0x2e1cc: 0x6cccf020, 0x2e1cd: 0x6cfa1220, 0x2e1ce: 0x6cfa1420, 0x2e1cf: 0x6cfa1620, - 0x2e1d0: 0x6cfa1820, 0x2e1d1: 0x6cfa1a20, 0x2e1d2: 0x6cfa1c20, 0x2e1d3: 0x6cfa1e20, - 0x2e1d4: 0x6cfa2020, 0x2e1d5: 0x6cfa2220, 0x2e1d6: 0x6cfa2420, 0x2e1d7: 0x6cfa2620, - 0x2e1d8: 0x6cfa2820, 0x2e1d9: 0x6cfa2a20, 0x2e1da: 0x6cfa2c20, 0x2e1db: 0x6cfa2e20, - 0x2e1dc: 0x6cfa3020, 0x2e1dd: 0x6cfa3220, 0x2e1de: 0x6cfa3420, 0x2e1df: 0x6cfa3620, - 0x2e1e0: 0x6cfa3820, 0x2e1e1: 0x6cfa3a20, 0x2e1e2: 0x6cfa3c20, 0x2e1e3: 0x6cfa3e20, - 0x2e1e4: 0x6cfa4020, 0x2e1e5: 0x6cfa4220, 0x2e1e6: 0x6cfa4420, 0x2e1e7: 0x6cfa4620, - 0x2e1e8: 0x6cfa4820, 0x2e1e9: 0x6cfa4a20, 0x2e1ea: 0x6cfa4c20, 0x2e1eb: 0x6cfa4e20, - 0x2e1ec: 0x6cfa5020, 0x2e1ed: 0x6cfa5220, 0x2e1ee: 0x6cfa5420, 0x2e1ef: 0x6cfa5620, - 0x2e1f0: 0x6cfa5820, 0x2e1f1: 0x6cfa5a20, 0x2e1f2: 0x6cfa5c20, 0x2e1f3: 0x6cfa5e20, - 0x2e1f4: 0x6cfa6020, 0x2e1f5: 0x6cfa6220, 0x2e1f6: 0x6cfa6420, 0x2e1f7: 0x6cfa6620, - 0x2e1f8: 0x6cfa6820, 0x2e1f9: 0x6cfa6a20, 0x2e1fa: 0x6cfa6c20, 0x2e1fb: 0x6cfa6e20, - 0x2e1fc: 0x6cfa7020, 0x2e1fd: 0x6cfa7220, 0x2e1fe: 0x6cfa7420, 0x2e1ff: 0x6cfa7620, - // Block 0xb88, offset 0x2e200 - 0x2e200: 0x6cfa7820, 0x2e201: 0x6cfa7a20, 0x2e202: 0x6cfa7c20, 0x2e203: 0x6cfa7e20, - 0x2e204: 0x6cfa8020, 0x2e205: 0x6cfa8220, 0x2e206: 0x6cfa8420, 0x2e207: 0x6cfa8620, - 0x2e208: 0x6cfa8820, 0x2e209: 0x6cfa8a20, 0x2e20a: 0x6cfa8c20, 0x2e20b: 0x6cccf220, - 0x2e20c: 0x6d291220, 0x2e20d: 0x6cfa8e20, 0x2e20e: 0x6d28f420, 0x2e20f: 0x6cfa9020, - 0x2e210: 0x6cfa9220, 0x2e211: 0x6cfa9420, 0x2e212: 0x6cfa9620, 0x2e213: 0x6cfa9820, - 0x2e214: 0x6cfa9a20, 0x2e215: 0x6d561820, 0x2e216: 0x6cfa9c20, 0x2e217: 0x6cfa9e20, - 0x2e218: 0x6cfaa020, 0x2e219: 0x6cfaa220, 0x2e21a: 0x6cfbd620, 0x2e21b: 0x6cfaa420, - 0x2e21c: 0x6cfaa620, 0x2e21d: 0x6cfaa820, 0x2e21e: 0x6cccf420, 0x2e21f: 0x6cfaaa20, - 0x2e220: 0x6cfaac20, 0x2e221: 0x6cfaae20, 0x2e222: 0x6cfab020, 0x2e223: 0x6cfab220, - 0x2e224: 0x6cfab420, 0x2e225: 0x6cfab620, 0x2e226: 0x6cfab820, 0x2e227: 0x6cfaba20, - 0x2e228: 0x6cfabc20, 0x2e229: 0x6cfabe20, 0x2e22a: 0x6cfac020, 0x2e22b: 0x6d291420, - 0x2e22c: 0x6d291620, 0x2e22d: 0x6d291820, 0x2e22e: 0x6d291a20, 0x2e22f: 0x6d291c20, - 0x2e230: 0x6d291e20, 0x2e231: 0x6d292020, 0x2e232: 0x6d292220, 0x2e233: 0x6d292420, - 0x2e234: 0x6d292620, 0x2e235: 0x6d292820, 0x2e236: 0x6d292a20, 0x2e237: 0x6d292c20, - 0x2e238: 0x6d292e20, 0x2e239: 0x6d293020, 0x2e23a: 0x6d293220, 0x2e23b: 0x6d293420, - 0x2e23c: 0x6d293620, 0x2e23d: 0x6d293820, 0x2e23e: 0x6d293a20, 0x2e23f: 0x6d293c20, - // Block 0xb89, offset 0x2e240 - 0x2e240: 0x6d561a20, 0x2e241: 0x6d293e20, 0x2e242: 0x6d294020, 0x2e243: 0x6d294220, - 0x2e244: 0x6d294420, 0x2e245: 0x6d294620, 0x2e246: 0x6d294820, 0x2e247: 0x6d294a20, - 0x2e248: 0x6d294c20, 0x2e249: 0x6d294e20, 0x2e24a: 0x6d295020, 0x2e24b: 0x6d564820, - 0x2e24c: 0x6d295220, 0x2e24d: 0x6d295420, 0x2e24e: 0x6d295620, 0x2e24f: 0x6d295820, - 0x2e250: 0x6d561c20, 0x2e251: 0x6d295a20, 0x2e252: 0x6d295c20, 0x2e253: 0x6cfac220, - 0x2e254: 0x6d295e20, 0x2e255: 0x6d296020, 0x2e256: 0x6d296220, 0x2e257: 0x6d296420, - 0x2e258: 0x6d296620, 0x2e259: 0x6d296820, 0x2e25a: 0x6d296a20, 0x2e25b: 0x6d296c20, - 0x2e25c: 0x6d296e20, 0x2e25d: 0x6d297020, 0x2e25e: 0x6d297220, 0x2e25f: 0x6d297420, - 0x2e260: 0x6d297620, 0x2e261: 0x6d297820, 0x2e262: 0x6d297a20, 0x2e263: 0x6d297c20, - 0x2e264: 0x6d297e20, 0x2e265: 0x6d298020, 0x2e266: 0x6d561e20, 0x2e267: 0x6d298220, - 0x2e268: 0x6d298420, 0x2e269: 0x6d298620, 0x2e26a: 0x6d298820, 0x2e26b: 0x6d298a20, - 0x2e26c: 0x6d298c20, 0x2e26d: 0x6d298e20, 0x2e26e: 0x6d299020, 0x2e26f: 0x6d299220, - 0x2e270: 0x6d299420, 0x2e271: 0x6d299620, 0x2e272: 0x6d299820, 0x2e273: 0x6d299a20, - 0x2e274: 0x6d299c20, 0x2e275: 0x6d299e20, 0x2e276: 0x6d29a020, 0x2e277: 0x6d29a220, - 0x2e278: 0x6d29a420, 0x2e279: 0x6d29a620, 0x2e27a: 0x6d29a820, 0x2e27b: 0x6d29aa20, - 0x2e27c: 0x6d29ac20, 0x2e27d: 0x6d564a20, 0x2e27e: 0x6d29ae20, 0x2e27f: 0x6d562020, - // Block 0xb8a, offset 0x2e280 - 0x2e280: 0x6d29b020, 0x2e281: 0x6d562220, 0x2e282: 0x6d29b220, 0x2e283: 0x6d29b420, - 0x2e284: 0x6d29b620, 0x2e285: 0x6d29b820, 0x2e286: 0x6d29ba20, 0x2e287: 0x6d29bc20, - 0x2e288: 0x6d29be20, 0x2e289: 0x6d29c020, 0x2e28a: 0x6d29c220, 0x2e28b: 0x6d29c420, - 0x2e28c: 0x6d29c620, 0x2e28d: 0x6d29c820, 0x2e28e: 0x6d2aca20, 0x2e28f: 0x6d564c20, - 0x2e290: 0x6d564e20, 0x2e291: 0x6d565020, 0x2e292: 0x6d565220, 0x2e293: 0x6d565420, - 0x2e294: 0x6d565620, 0x2e295: 0x6d565820, 0x2e296: 0x6d565a20, 0x2e297: 0x6d565c20, - 0x2e298: 0x6d565e20, 0x2e299: 0x6d566020, 0x2e29a: 0x6d566220, 0x2e29b: 0x6d566420, - 0x2e29c: 0x6d566620, 0x2e29d: 0x6d566820, 0x2e29e: 0x6d819a20, 0x2e29f: 0x6d566a20, - 0x2e2a0: 0x6d566c20, 0x2e2a1: 0x6d566e20, 0x2e2a2: 0x6d567020, 0x2e2a3: 0x6d567220, - 0x2e2a4: 0x6d567420, 0x2e2a5: 0x6d567620, 0x2e2a6: 0x6d567820, 0x2e2a7: 0x6d567a20, - 0x2e2a8: 0x6d567c20, 0x2e2a9: 0x6d567e20, 0x2e2aa: 0x6d568020, 0x2e2ab: 0x6d568220, - 0x2e2ac: 0x6d568420, 0x2e2ad: 0x6d568620, 0x2e2ae: 0x6d568820, 0x2e2af: 0x6d568a20, - 0x2e2b0: 0x6d568c20, 0x2e2b1: 0x6d568e20, 0x2e2b2: 0x6d569020, 0x2e2b3: 0x6d2acc20, - 0x2e2b4: 0x6d569220, 0x2e2b5: 0x6d569420, 0x2e2b6: 0x6d569620, 0x2e2b7: 0x6d569820, - 0x2e2b8: 0x6d569a20, 0x2e2b9: 0x6d569c20, 0x2e2ba: 0x6d569e20, 0x2e2bb: 0x6d56a020, - 0x2e2bc: 0x6d56a220, 0x2e2bd: 0x6d56a420, 0x2e2be: 0x6d56a620, 0x2e2bf: 0x6d56a820, - // Block 0xb8b, offset 0x2e2c0 - 0x2e2c0: 0x6da79820, 0x2e2c1: 0x6d56aa20, 0x2e2c2: 0x6d56ac20, 0x2e2c3: 0x6d819c20, - 0x2e2c4: 0x6d56ae20, 0x2e2c5: 0x6d56b020, 0x2e2c6: 0x6d56b220, 0x2e2c7: 0x6d56b420, - 0x2e2c8: 0x6d56b620, 0x2e2c9: 0x6d56b820, 0x2e2ca: 0x6d56ba20, 0x2e2cb: 0x6d56bc20, - 0x2e2cc: 0x6d56be20, 0x2e2cd: 0x6d56c020, 0x2e2ce: 0x6d56c220, 0x2e2cf: 0x6d56c420, - 0x2e2d0: 0x6d56c620, 0x2e2d1: 0x6d56c820, 0x2e2d2: 0x6d56ca20, 0x2e2d3: 0x6d56cc20, - 0x2e2d4: 0x6d56ce20, 0x2e2d5: 0x6d56d020, 0x2e2d6: 0x6d56d220, 0x2e2d7: 0x6d56d420, - 0x2e2d8: 0x6d56d620, 0x2e2d9: 0x6d81c020, 0x2e2da: 0x6d56d820, 0x2e2db: 0x6d56da20, - 0x2e2dc: 0x6d56dc20, 0x2e2dd: 0x6d56de20, 0x2e2de: 0x6d81c220, 0x2e2df: 0x6d81c420, - 0x2e2e0: 0x6d81c620, 0x2e2e1: 0x6d81c820, 0x2e2e2: 0x6d81ca20, 0x2e2e3: 0x6d81cc20, - 0x2e2e4: 0x6d81ce20, 0x2e2e5: 0x6d81d020, 0x2e2e6: 0x6d81d220, 0x2e2e7: 0x6d81d420, - 0x2e2e8: 0x6d81d620, 0x2e2e9: 0x6da77820, 0x2e2ea: 0x6d81d820, 0x2e2eb: 0x6d81da20, - 0x2e2ec: 0x6d81dc20, 0x2e2ed: 0x6d81de20, 0x2e2ee: 0x6d81e020, 0x2e2ef: 0x6d81e220, - 0x2e2f0: 0x6d81e420, 0x2e2f1: 0x6d81e620, 0x2e2f2: 0x6d81e820, 0x2e2f3: 0x6d81ea20, - 0x2e2f4: 0x6d81ec20, 0x2e2f5: 0x6d81ee20, 0x2e2f6: 0x6d81f020, 0x2e2f7: 0x6d81f220, - 0x2e2f8: 0x6d81f420, 0x2e2f9: 0x6d81f620, 0x2e2fa: 0x6d81f820, 0x2e2fb: 0x6d81fa20, - 0x2e2fc: 0x6d81fc20, 0x2e2fd: 0x6d81fe20, 0x2e2fe: 0x6d820020, 0x2e2ff: 0x6d820220, - // Block 0xb8c, offset 0x2e300 - 0x2e300: 0x6d820420, 0x2e301: 0x6d820620, 0x2e302: 0x6d820820, 0x2e303: 0x6d820a20, - 0x2e304: 0x6d820c20, 0x2e305: 0x6d820e20, 0x2e306: 0x6d580a20, 0x2e307: 0x6d821020, - 0x2e308: 0x6d821220, 0x2e309: 0x6d821420, 0x2e30a: 0x6d821620, 0x2e30b: 0x6d821820, - 0x2e30c: 0x6da77a20, 0x2e30d: 0x6d821a20, 0x2e30e: 0x6d821c20, 0x2e30f: 0x6d821e20, - 0x2e310: 0x6d56e020, 0x2e311: 0x6d822020, 0x2e312: 0x6d822220, 0x2e313: 0x6d822420, - 0x2e314: 0x6da79a20, 0x2e315: 0x6da79c20, 0x2e316: 0x6d822620, 0x2e317: 0x6da79e20, - 0x2e318: 0x6da7a020, 0x2e319: 0x6da7a220, 0x2e31a: 0x6da7a420, 0x2e31b: 0x6da7a620, - 0x2e31c: 0x6da7a820, 0x2e31d: 0x6da7aa20, 0x2e31e: 0x6da7ac20, 0x2e31f: 0x6da7ae20, - 0x2e320: 0x6da7b020, 0x2e321: 0x6da7b220, 0x2e322: 0x6da7b420, 0x2e323: 0x6da7b620, - 0x2e324: 0x6da7b820, 0x2e325: 0x6da7ba20, 0x2e326: 0x6da7bc20, 0x2e327: 0x6da7be20, - 0x2e328: 0x6da7c020, 0x2e329: 0x6da7c220, 0x2e32a: 0x6da7c420, 0x2e32b: 0x6da7c620, - 0x2e32c: 0x6da7c820, 0x2e32d: 0x6da7ca20, 0x2e32e: 0x6da7cc20, 0x2e32f: 0x6da7ce20, - 0x2e330: 0x6da7d020, 0x2e331: 0x6da7d220, 0x2e332: 0x6da7d420, 0x2e333: 0x6de4c220, - 0x2e334: 0x6da7d620, 0x2e335: 0x6da7d820, 0x2e336: 0x6da7da20, 0x2e337: 0x6dc8c220, - 0x2e338: 0x6da7dc20, 0x2e339: 0x6dc8d220, 0x2e33a: 0x6dc8d420, 0x2e33b: 0x6dc8d620, - 0x2e33c: 0x6dc8d820, 0x2e33d: 0x6dc8da20, 0x2e33e: 0x6dc8dc20, 0x2e33f: 0x6dc8de20, - // Block 0xb8d, offset 0x2e340 - 0x2e340: 0x6dc8e020, 0x2e341: 0x6dc8e220, 0x2e342: 0x6dc8e420, 0x2e343: 0x6dc8e620, - 0x2e344: 0x6d82fc20, 0x2e345: 0x6dc8e820, 0x2e346: 0x6dc8ea20, 0x2e347: 0x6dc8ec20, - 0x2e348: 0x6dc8ee20, 0x2e349: 0x6dc8f020, 0x2e34a: 0x6dc8f220, 0x2e34b: 0x6dc8f420, - 0x2e34c: 0x6dc8f620, 0x2e34d: 0x6dc8f820, 0x2e34e: 0x6dc8fa20, 0x2e34f: 0x6dc8fc20, - 0x2e350: 0x6dc8fe20, 0x2e351: 0x6dc90020, 0x2e352: 0x6dc90220, 0x2e353: 0x6dc90420, - 0x2e354: 0x6dc90620, 0x2e355: 0x6de4c420, 0x2e356: 0x6de4c620, 0x2e357: 0x6de4c820, - 0x2e358: 0x6de4ca20, 0x2e359: 0x6de4cc20, 0x2e35a: 0x6de4ce20, 0x2e35b: 0x6de4d020, - 0x2e35c: 0x6de4d220, 0x2e35d: 0x6de4d420, 0x2e35e: 0x6de4d620, 0x2e35f: 0x6de4d820, - 0x2e360: 0x6de4da20, 0x2e361: 0x6de4dc20, 0x2e362: 0x6de4de20, 0x2e363: 0x6de4e020, - 0x2e364: 0x6de4e220, 0x2e365: 0x6de4e420, 0x2e366: 0x6dc9b820, 0x2e367: 0x6de4e620, - 0x2e368: 0x6de4e820, 0x2e369: 0x6de4ea20, 0x2e36a: 0x6dfbc220, 0x2e36b: 0x6de4ec20, - 0x2e36c: 0x6de4ee20, 0x2e36d: 0x6de4f020, 0x2e36e: 0x6de4f220, 0x2e36f: 0x6dfbd020, - 0x2e370: 0x6dfbd220, 0x2e371: 0x6dfbd420, 0x2e372: 0x6dfbd620, 0x2e373: 0x6dfbd820, - 0x2e374: 0x6dfbda20, 0x2e375: 0x6dfbdc20, 0x2e376: 0x6dfbde20, 0x2e377: 0x6dfbe020, - 0x2e378: 0x6dfbe220, 0x2e379: 0x6dfbe420, 0x2e37a: 0x6dfbe620, 0x2e37b: 0x6dfbe820, - 0x2e37c: 0x6dfbea20, 0x2e37d: 0x6dfbec20, 0x2e37e: 0x6dfbee20, 0x2e37f: 0x6dfbf020, - // Block 0xb8e, offset 0x2e380 - 0x2e380: 0x6dfbf220, 0x2e381: 0x6dfbf420, 0x2e382: 0x6dfc4820, 0x2e383: 0x6e0f0620, - 0x2e384: 0x6e0f0820, 0x2e385: 0x6e0f0a20, 0x2e386: 0x6e0f0c20, 0x2e387: 0x6e0f0e20, - 0x2e388: 0x6e0f1020, 0x2e389: 0x6e0f1220, 0x2e38a: 0x6e0f1420, 0x2e38b: 0x6e0f1620, - 0x2e38c: 0x6e0f1820, 0x2e38d: 0x6e0f1a20, 0x2e38e: 0x6e3d5220, 0x2e38f: 0x6e0f1c20, - 0x2e390: 0x6e0f1e20, 0x2e391: 0x6e1e3420, 0x2e392: 0x6e1e3620, 0x2e393: 0x6e299620, - 0x2e394: 0x6e1e3820, 0x2e395: 0x6e1e3a20, 0x2e396: 0x6e1e3c20, 0x2e397: 0x6e1e3e20, - 0x2e398: 0x6e1e4020, 0x2e399: 0x6e299e20, 0x2e39a: 0x6e29a020, 0x2e39b: 0x6e29a220, - 0x2e39c: 0x6e29a420, 0x2e39d: 0x6e32a220, 0x2e39e: 0x6e32a420, 0x2e39f: 0x6e32a620, - 0x2e3a0: 0x6e32a820, 0x2e3a1: 0x6e32aa20, 0x2e3a2: 0x6e38e020, 0x2e3a3: 0x6e38e220, - 0x2e3a4: 0x6e3d5420, 0x2e3a5: 0x6e405c20, 0x2e3a6: 0x6e3d5620, 0x2e3a7: 0x6e405e20, - 0x2e3a8: 0x6e406020, 0x2e3a9: 0x6e45c420, 0x2e3aa: 0x6e463020, 0x2e3ab: 0x6c04d020, - 0x2e3ac: 0x6c04d220, 0x2e3ad: 0x6c09ca20, 0x2e3ae: 0x6c135a20, 0x2e3af: 0x6c135c20, - 0x2e3b0: 0x6c135e20, 0x2e3b1: 0x6c136020, 0x2e3b2: 0x6c136220, 0x2e3b3: 0x6c136420, - 0x2e3b4: 0x6c239020, 0x2e3b5: 0x6c239220, 0x2e3b6: 0x6c239420, 0x2e3b7: 0x6c239620, - 0x2e3b8: 0x6c239820, 0x2e3b9: 0x6c239a20, 0x2e3ba: 0x6c239c20, 0x2e3bb: 0x6c239e20, - 0x2e3bc: 0x6c23a020, 0x2e3bd: 0x6c23a220, 0x2e3be: 0x6c23a420, 0x2e3bf: 0x6c23a620, - // Block 0xb8f, offset 0x2e3c0 - 0x2e3c0: 0x6c23a820, 0x2e3c1: 0x6c399e20, 0x2e3c2: 0x6c39a020, 0x2e3c3: 0x6c39a220, - 0x2e3c4: 0x6c39a420, 0x2e3c5: 0x6c39a620, 0x2e3c6: 0x6c39a820, 0x2e3c7: 0x6c399220, - 0x2e3c8: 0x6c39aa20, 0x2e3c9: 0x6c39ac20, 0x2e3ca: 0x6c39ae20, 0x2e3cb: 0x6c39b020, - 0x2e3cc: 0x6c39b220, 0x2e3cd: 0x6c39b420, 0x2e3ce: 0x6c39b620, 0x2e3cf: 0x6c39b820, - 0x2e3d0: 0x6c39ba20, 0x2e3d1: 0x6c39bc20, 0x2e3d2: 0x6c39be20, 0x2e3d3: 0x6c39c020, - 0x2e3d4: 0x6c39c220, 0x2e3d5: 0x6c39c420, 0x2e3d6: 0x6c39c620, 0x2e3d7: 0x6c39c820, - 0x2e3d8: 0x6c39ca20, 0x2e3d9: 0x6c39cc20, 0x2e3da: 0x6c39ce20, 0x2e3db: 0x6c39d020, - 0x2e3dc: 0x6c39d220, 0x2e3dd: 0x6c39d420, 0x2e3de: 0x6c39d620, 0x2e3df: 0x6c552820, - 0x2e3e0: 0x6c552a20, 0x2e3e1: 0x6c552c20, 0x2e3e2: 0x6c552e20, 0x2e3e3: 0x6c553020, - 0x2e3e4: 0x6c553220, 0x2e3e5: 0x6c553420, 0x2e3e6: 0x6c553620, 0x2e3e7: 0x6c553820, - 0x2e3e8: 0x6c553a20, 0x2e3e9: 0x6c553c20, 0x2e3ea: 0x6c553e20, 0x2e3eb: 0x6c554020, - 0x2e3ec: 0x6c554220, 0x2e3ed: 0x6c554420, 0x2e3ee: 0x6c554620, 0x2e3ef: 0x6c554820, - 0x2e3f0: 0x6c554a20, 0x2e3f1: 0x6c554c20, 0x2e3f2: 0x6c554e20, 0x2e3f3: 0x6c555020, - 0x2e3f4: 0x6c555220, 0x2e3f5: 0x6c555420, 0x2e3f6: 0x6c555620, 0x2e3f7: 0x6c555820, - 0x2e3f8: 0x6c555a20, 0x2e3f9: 0x6c555c20, 0x2e3fa: 0x6c555e20, 0x2e3fb: 0x6c556020, - 0x2e3fc: 0x6c556220, 0x2e3fd: 0x6c556420, 0x2e3fe: 0x6c556620, 0x2e3ff: 0x6c556820, - // Block 0xb90, offset 0x2e400 - 0x2e400: 0x6c556a20, 0x2e401: 0x6c556c20, 0x2e402: 0x6c556e20, 0x2e403: 0x6c557020, - 0x2e404: 0x6c77f620, 0x2e405: 0x6c77f820, 0x2e406: 0x6c77fa20, 0x2e407: 0x6c77fc20, - 0x2e408: 0x6c77fe20, 0x2e409: 0x6c780020, 0x2e40a: 0x6c780220, 0x2e40b: 0x6c780420, - 0x2e40c: 0x6c780620, 0x2e40d: 0x6c780820, 0x2e40e: 0x6c780a20, 0x2e40f: 0x6c780c20, - 0x2e410: 0x6c780e20, 0x2e411: 0x6c781020, 0x2e412: 0x6c781220, 0x2e413: 0x6c781420, - 0x2e414: 0x6c781620, 0x2e415: 0x6c781820, 0x2e416: 0x6c781a20, 0x2e417: 0x6c781c20, - 0x2e418: 0x6c781e20, 0x2e419: 0x6c782020, 0x2e41a: 0x6c782220, 0x2e41b: 0x6c782420, - 0x2e41c: 0x6c782620, 0x2e41d: 0x6c782820, 0x2e41e: 0x6c782a20, 0x2e41f: 0x6c782c20, - 0x2e420: 0x6c782e20, 0x2e421: 0x6c783020, 0x2e422: 0x6c783220, 0x2e423: 0x6c783420, - 0x2e424: 0x6c783620, 0x2e425: 0x6c783820, 0x2e426: 0x6c783a20, 0x2e427: 0x6c783c20, - 0x2e428: 0x6c783e20, 0x2e429: 0x6c784020, 0x2e42a: 0x6c784220, 0x2e42b: 0x6c784420, - 0x2e42c: 0x6c784620, 0x2e42d: 0x6c784820, 0x2e42e: 0x6c784a20, 0x2e42f: 0x6ca0f020, - 0x2e430: 0x6ca0f220, 0x2e431: 0x6ca0f420, 0x2e432: 0x6ca0f620, 0x2e433: 0x6ca0f820, - 0x2e434: 0x6ca0fa20, 0x2e435: 0x6ca0fc20, 0x2e436: 0x6ca0fe20, 0x2e437: 0x6ca10020, - 0x2e438: 0x6ca10220, 0x2e439: 0x6ca10420, 0x2e43a: 0x6ca10620, 0x2e43b: 0x6ccddc20, - 0x2e43c: 0x6ca10820, 0x2e43d: 0x6ca10a20, 0x2e43e: 0x6ca10c20, 0x2e43f: 0x6ca10e20, - // Block 0xb91, offset 0x2e440 - 0x2e440: 0x6ca11020, 0x2e441: 0x6ca11220, 0x2e442: 0x6ca11420, 0x2e443: 0x6ca11620, - 0x2e444: 0x6ca11820, 0x2e445: 0x6ca11a20, 0x2e446: 0x6ca11c20, 0x2e447: 0x6ca11e20, - 0x2e448: 0x6ca12020, 0x2e449: 0x6ca12220, 0x2e44a: 0x6ca12420, 0x2e44b: 0x6ca12620, - 0x2e44c: 0x6ca12820, 0x2e44d: 0x6ca12a20, 0x2e44e: 0x6ca12c20, 0x2e44f: 0x6ca12e20, - 0x2e450: 0x6ca13020, 0x2e451: 0x6ca13220, 0x2e452: 0x6ca13420, 0x2e453: 0x6ca13620, - 0x2e454: 0x6ca1cc20, 0x2e455: 0x6ca13820, 0x2e456: 0x6ca13a20, 0x2e457: 0x6ca13c20, - 0x2e458: 0x6ca13e20, 0x2e459: 0x6ccdf620, 0x2e45a: 0x6ccdf820, 0x2e45b: 0x6ccdfa20, - 0x2e45c: 0x6ccdfc20, 0x2e45d: 0x6ccdfe20, 0x2e45e: 0x6cce0020, 0x2e45f: 0x6cce0220, - 0x2e460: 0x6cce0420, 0x2e461: 0x6cce0620, 0x2e462: 0x6cce0820, 0x2e463: 0x6cce0a20, - 0x2e464: 0x6cce0c20, 0x2e465: 0x6cce0e20, 0x2e466: 0x6cce1020, 0x2e467: 0x6cce1220, - 0x2e468: 0x6cce1420, 0x2e469: 0x6cce1620, 0x2e46a: 0x6cce1820, 0x2e46b: 0x6cce1a20, - 0x2e46c: 0x6cce1c20, 0x2e46d: 0x6cce1e20, 0x2e46e: 0x6cce2020, 0x2e46f: 0x6cce2220, - 0x2e470: 0x6cce2420, 0x2e471: 0x6cce2620, 0x2e472: 0x6cce2820, 0x2e473: 0x6cce2a20, - 0x2e474: 0x6cce2c20, 0x2e475: 0x6cce2e20, 0x2e476: 0x6cce3020, 0x2e477: 0x6cce3220, - 0x2e478: 0x6cce3420, 0x2e479: 0x6cce3620, 0x2e47a: 0x6cce3820, 0x2e47b: 0x6cce3a20, - 0x2e47c: 0x6cce3c20, 0x2e47d: 0x6cce3e20, 0x2e47e: 0x6cce4020, 0x2e47f: 0x6cce4220, - // Block 0xb92, offset 0x2e480 - 0x2e480: 0x6cce4420, 0x2e481: 0x6cfbfc20, 0x2e482: 0x6cfbfe20, 0x2e483: 0x6cfc0020, - 0x2e484: 0x6cfc0220, 0x2e485: 0x6cfc0420, 0x2e486: 0x6cfc0620, 0x2e487: 0x6cfc0820, - 0x2e488: 0x6cfc0a20, 0x2e489: 0x6cfc0c20, 0x2e48a: 0x6cfc0e20, 0x2e48b: 0x6cfc1020, - 0x2e48c: 0x6cfc1220, 0x2e48d: 0x6cfc1420, 0x2e48e: 0x6cfc1620, 0x2e48f: 0x6cfc1820, - 0x2e490: 0x6cfc1a20, 0x2e491: 0x6cfc1c20, 0x2e492: 0x6cfc1e20, 0x2e493: 0x6cfc2020, - 0x2e494: 0x6cfc2220, 0x2e495: 0x6d2ace20, 0x2e496: 0x6cfc2420, 0x2e497: 0x6cfc2620, - 0x2e498: 0x6cfc2820, 0x2e499: 0x6cfc2a20, 0x2e49a: 0x6cfc2c20, 0x2e49b: 0x6d2ad020, - 0x2e49c: 0x6cfc2e20, 0x2e49d: 0x6cfc3020, 0x2e49e: 0x6cfc3220, 0x2e49f: 0x6cfc3420, - 0x2e4a0: 0x6cfc3620, 0x2e4a1: 0x6cfc3820, 0x2e4a2: 0x6cfc3a20, 0x2e4a3: 0x6cfc3c20, - 0x2e4a4: 0x6cfc3e20, 0x2e4a5: 0x6cfc4020, 0x2e4a6: 0x6cfc4220, 0x2e4a7: 0x6cfc4420, - 0x2e4a8: 0x6cfc4620, 0x2e4a9: 0x6cfc4820, 0x2e4aa: 0x6cfc4a20, 0x2e4ab: 0x6cfc4c20, - 0x2e4ac: 0x6cfc4e20, 0x2e4ad: 0x6cfc5020, 0x2e4ae: 0x6cce4620, 0x2e4af: 0x6cfc5220, - 0x2e4b0: 0x6cfc5420, 0x2e4b1: 0x6cfc5620, 0x2e4b2: 0x6cfc5820, 0x2e4b3: 0x6cfc5a20, - 0x2e4b4: 0x6cfc5c20, 0x2e4b5: 0x6cfc5e20, 0x2e4b6: 0x6cfc6020, 0x2e4b7: 0x6cfc6220, - 0x2e4b8: 0x6cfc6420, 0x2e4b9: 0x6d2aea20, 0x2e4ba: 0x6cfc6620, 0x2e4bb: 0x6d2aec20, - 0x2e4bc: 0x6d2aee20, 0x2e4bd: 0x6d2af020, 0x2e4be: 0x6d2af220, 0x2e4bf: 0x6d2af420, - // Block 0xb93, offset 0x2e4c0 - 0x2e4c0: 0x6d2af620, 0x2e4c1: 0x6d2af820, 0x2e4c2: 0x6d2afa20, 0x2e4c3: 0x6d2afc20, - 0x2e4c4: 0x6d2afe20, 0x2e4c5: 0x6d2b0020, 0x2e4c6: 0x6d2b0220, 0x2e4c7: 0x6d2b0420, - 0x2e4c8: 0x6d2b0620, 0x2e4c9: 0x6d2b0820, 0x2e4ca: 0x6d2b0a20, 0x2e4cb: 0x6d2b0c20, - 0x2e4cc: 0x6d2b0e20, 0x2e4cd: 0x6d2b1020, 0x2e4ce: 0x6d2b1220, 0x2e4cf: 0x6d2b1420, - 0x2e4d0: 0x6d2b1620, 0x2e4d1: 0x6d2b1820, 0x2e4d2: 0x6d2b1a20, 0x2e4d3: 0x6d2b1c20, - 0x2e4d4: 0x6d2b1e20, 0x2e4d5: 0x6d2b2020, 0x2e4d6: 0x6d2b2220, 0x2e4d7: 0x6d2b2420, - 0x2e4d8: 0x6d2b2620, 0x2e4d9: 0x6d2b2820, 0x2e4da: 0x6d581e20, 0x2e4db: 0x6d582020, - 0x2e4dc: 0x6d582220, 0x2e4dd: 0x6d582420, 0x2e4de: 0x6d582620, 0x2e4df: 0x6d582820, - 0x2e4e0: 0x6d582a20, 0x2e4e1: 0x6d582c20, 0x2e4e2: 0x6d582e20, 0x2e4e3: 0x6d583020, - 0x2e4e4: 0x6d583220, 0x2e4e5: 0x6d583420, 0x2e4e6: 0x6d580c20, 0x2e4e7: 0x6d583620, - 0x2e4e8: 0x6d583820, 0x2e4e9: 0x6d583a20, 0x2e4ea: 0x6d583c20, 0x2e4eb: 0x6d583e20, - 0x2e4ec: 0x6d584020, 0x2e4ed: 0x6d584220, 0x2e4ee: 0x6d584420, 0x2e4ef: 0x6d584620, - 0x2e4f0: 0x6d584820, 0x2e4f1: 0x6d584a20, 0x2e4f2: 0x6d584c20, 0x2e4f3: 0x6d584e20, - 0x2e4f4: 0x6d585020, 0x2e4f5: 0x6d585220, 0x2e4f6: 0x6d831420, 0x2e4f7: 0x6d831620, - 0x2e4f8: 0x6d831820, 0x2e4f9: 0x6d831a20, 0x2e4fa: 0x6d831c20, 0x2e4fb: 0x6d831e20, - 0x2e4fc: 0x6d832020, 0x2e4fd: 0x6d832220, 0x2e4fe: 0x6d832420, 0x2e4ff: 0x6d832620, - // Block 0xb94, offset 0x2e500 - 0x2e500: 0x6d832820, 0x2e501: 0x6d832a20, 0x2e502: 0x6d832c20, 0x2e503: 0x6d832e20, - 0x2e504: 0x6d833020, 0x2e505: 0x6d833220, 0x2e506: 0x6d833420, 0x2e507: 0x6d833620, - 0x2e508: 0x6d833820, 0x2e509: 0x6d833a20, 0x2e50a: 0x6d833c20, 0x2e50b: 0x6d833e20, - 0x2e50c: 0x6d834020, 0x2e50d: 0x6d834220, 0x2e50e: 0x6d834420, 0x2e50f: 0x6d834620, - 0x2e510: 0x6d834820, 0x2e511: 0x6d834a20, 0x2e512: 0x6d834c20, 0x2e513: 0x6d834e20, - 0x2e514: 0x6d835020, 0x2e515: 0x6d835220, 0x2e516: 0x6d835420, 0x2e517: 0x6d835620, - 0x2e518: 0x6d835820, 0x2e519: 0x6d835a20, 0x2e51a: 0x6d835c20, 0x2e51b: 0x6d835e20, - 0x2e51c: 0x6d836020, 0x2e51d: 0x6d836220, 0x2e51e: 0x6d836420, 0x2e51f: 0x6da87c20, - 0x2e520: 0x6da87e20, 0x2e521: 0x6da88020, 0x2e522: 0x6da88220, 0x2e523: 0x6da88420, - 0x2e524: 0x6da88620, 0x2e525: 0x6da88820, 0x2e526: 0x6da88a20, 0x2e527: 0x6da88c20, - 0x2e528: 0x6da88e20, 0x2e529: 0x6da89020, 0x2e52a: 0x6da89220, 0x2e52b: 0x6da89420, - 0x2e52c: 0x6da89620, 0x2e52d: 0x6da89820, 0x2e52e: 0x6da89a20, 0x2e52f: 0x6da89c20, - 0x2e530: 0x6da89e20, 0x2e531: 0x6da8a020, 0x2e532: 0x6da8a220, 0x2e533: 0x6da8a420, - 0x2e534: 0x6da8a620, 0x2e535: 0x6da8a820, 0x2e536: 0x6da8aa20, 0x2e537: 0x6da8ac20, - 0x2e538: 0x6dc9be20, 0x2e539: 0x6dc9c020, 0x2e53a: 0x6dc9c220, 0x2e53b: 0x6dc9c420, - 0x2e53c: 0x6dc9c620, 0x2e53d: 0x6dc9c820, 0x2e53e: 0x6dc9ca20, 0x2e53f: 0x6dc9cc20, - // Block 0xb95, offset 0x2e540 - 0x2e540: 0x6dc9ce20, 0x2e541: 0x6dc9d020, 0x2e542: 0x6de57020, 0x2e543: 0x6dc9d220, - 0x2e544: 0x6de57820, 0x2e545: 0x6de57a20, 0x2e546: 0x6de57c20, 0x2e547: 0x6de57e20, - 0x2e548: 0x6de58020, 0x2e549: 0x6de58220, 0x2e54a: 0x6de58420, 0x2e54b: 0x6dfc5220, - 0x2e54c: 0x6de58620, 0x2e54d: 0x6de58820, 0x2e54e: 0x6de58a20, 0x2e54f: 0x6dfc5420, - 0x2e550: 0x6dfc5620, 0x2e551: 0x6dfc5820, 0x2e552: 0x6dfc5a20, 0x2e553: 0x6dfc5c20, - 0x2e554: 0x6dfc5e20, 0x2e555: 0x6de58c20, 0x2e556: 0x6dfc6020, 0x2e557: 0x6dfc6220, - 0x2e558: 0x6dfc6420, 0x2e559: 0x6e0f7e20, 0x2e55a: 0x6e0f8020, 0x2e55b: 0x6e0f8220, - 0x2e55c: 0x6e1e7020, 0x2e55d: 0x6e0fb220, 0x2e55e: 0x6e1e7220, 0x2e55f: 0x6e1e7420, - 0x2e560: 0x6e1e7620, 0x2e561: 0x6e29da20, 0x2e562: 0x6e29dc20, 0x2e563: 0x6e32c020, - 0x2e564: 0x6e38f220, 0x2e565: 0x6e38f420, 0x2e566: 0x6e38f620, 0x2e567: 0x6e42b620, - 0x2e568: 0x6e443420, 0x2e569: 0x6e468220, 0x2e56a: 0x6c04d620, 0x2e56b: 0x6c04d820, - 0x2e56c: 0x6c3a2820, 0x2e56d: 0x6c3a2a20, 0x2e56e: 0x6c55ee20, 0x2e56f: 0x6c55f020, - 0x2e570: 0x6c55f220, 0x2e571: 0x6c78ca20, 0x2e572: 0x6ccf0a20, 0x2e573: 0x6d2bdc20, - 0x2e574: 0x6d590420, 0x2e575: 0x6da93020, 0x2e576: 0x6c04de20, 0x2e577: 0x6c137a20, - 0x2e578: 0x6c3a3a20, 0x2e579: 0x6c78d620, 0x2e57a: 0x6cfd4020, 0x2e57b: 0x6c04e020, - 0x2e57c: 0x6c561820, 0x2e57d: 0x6ca1e020, 0x2e57e: 0x6d2bec20, 0x2e57f: 0x6c04e420, - // Block 0xb96, offset 0x2e580 - 0x2e580: 0x6c3a4620, 0x2e581: 0x6c562020, 0x2e582: 0x6c78e220, 0x2e583: 0x6cfd4820, - 0x2e584: 0x6d2bf020, 0x2e585: 0x6d591e20, 0x2e586: 0x6da93220, 0x2e587: 0x6c04e820, - 0x2e588: 0x6c3a5220, 0x2e589: 0x6c562a20, 0x2e58a: 0x6c562c20, 0x2e58b: 0x6ccf3c20, - 0x2e58c: 0x6ccf3e20, 0x2e58d: 0x6ccf4020, 0x2e58e: 0x6cfd5020, 0x2e58f: 0x6cfd5220, - 0x2e590: 0x6cfd5420, 0x2e591: 0x6cfd5620, 0x2e592: 0x6cfd5820, 0x2e593: 0x6d2bfc20, - 0x2e594: 0x6d2bfe20, 0x2e595: 0x6d592820, 0x2e596: 0x6d592a20, 0x2e597: 0x6d592c20, - 0x2e598: 0x6de5e220, 0x2e599: 0x6c04ec20, 0x2e59a: 0x6ccf6620, 0x2e59b: 0x6c04f020, - 0x2e59c: 0x6c04f220, 0x2e59d: 0x6c138020, 0x2e59e: 0x6c138220, 0x2e59f: 0x6c138420, - 0x2e5a0: 0x6c23ec20, 0x2e5a1: 0x6c23ee20, 0x2e5a2: 0x6c23f020, 0x2e5a3: 0x6c23f220, - 0x2e5a4: 0x6c23f420, 0x2e5a5: 0x6c3a6c20, 0x2e5a6: 0x6c3a6e20, 0x2e5a7: 0x6c3a7020, - 0x2e5a8: 0x6c3a7220, 0x2e5a9: 0x6c3a7420, 0x2e5aa: 0x6c3a7620, 0x2e5ab: 0x6c3a7820, - 0x2e5ac: 0x6c3a7a20, 0x2e5ad: 0x6c564c20, 0x2e5ae: 0x6c564e20, 0x2e5af: 0x6c565020, - 0x2e5b0: 0x6c565220, 0x2e5b1: 0x6c565420, 0x2e5b2: 0x6c565620, 0x2e5b3: 0x6c565820, - 0x2e5b4: 0x6c565a20, 0x2e5b5: 0x6c565c20, 0x2e5b6: 0x6c791020, 0x2e5b7: 0x6c791220, - 0x2e5b8: 0x6c791420, 0x2e5b9: 0x6c791620, 0x2e5ba: 0x6c791820, 0x2e5bb: 0x6ca21e20, - 0x2e5bc: 0x6ca22020, 0x2e5bd: 0x6ca22220, 0x2e5be: 0x6ca22420, 0x2e5bf: 0x6ca22620, - // Block 0xb97, offset 0x2e5c0 - 0x2e5c0: 0x6ccf7820, 0x2e5c1: 0x6ca22820, 0x2e5c2: 0x6ccf7a20, 0x2e5c3: 0x6ccf7c20, - 0x2e5c4: 0x6ccf7e20, 0x2e5c5: 0x6ccf8020, 0x2e5c6: 0x6ccf8220, 0x2e5c7: 0x6ccf8420, - 0x2e5c8: 0x6ccf8620, 0x2e5c9: 0x6ccf8820, 0x2e5ca: 0x6ccf8a20, 0x2e5cb: 0x6ccf8c20, - 0x2e5cc: 0x6cfd7820, 0x2e5cd: 0x6cfd7a20, 0x2e5ce: 0x6cfd7c20, 0x2e5cf: 0x6cfd7e20, - 0x2e5d0: 0x6cfd8020, 0x2e5d1: 0x6cfd8220, 0x2e5d2: 0x6d2c1620, 0x2e5d3: 0x6d2c1820, - 0x2e5d4: 0x6d2c1a20, 0x2e5d5: 0x6d2c1c20, 0x2e5d6: 0x6d2c1e20, 0x2e5d7: 0x6d2c2020, - 0x2e5d8: 0x6d595020, 0x2e5d9: 0x6d595220, 0x2e5da: 0x6d595420, 0x2e5db: 0x6d595620, - 0x2e5dc: 0x6d845820, 0x2e5dd: 0x6d845a20, 0x2e5de: 0x6d845c20, 0x2e5df: 0x6d845e20, - 0x2e5e0: 0x6da94e20, 0x2e5e1: 0x6de5e620, 0x2e5e2: 0x6de5e820, 0x2e5e3: 0x6de5ea20, - 0x2e5e4: 0x6de5ec20, 0x2e5e5: 0x6de5ee20, 0x2e5e6: 0x6de5f020, 0x2e5e7: 0x6dfcd820, - 0x2e5e8: 0x6dfcda20, 0x2e5e9: 0x6e1e9c20, 0x2e5ea: 0x6e390e20, 0x2e5eb: 0x6e407820, - 0x2e5ec: 0x6c04f420, 0x2e5ed: 0x6c01fe20, 0x2e5ee: 0x6c09dc20, 0x2e5ef: 0x6c09de20, - 0x2e5f0: 0x6c09e020, 0x2e5f1: 0x6c138c20, 0x2e5f2: 0x6c138e20, 0x2e5f3: 0x6c139020, - 0x2e5f4: 0x6c139220, 0x2e5f5: 0x6c139420, 0x2e5f6: 0x6c240020, 0x2e5f7: 0x6c139620, - 0x2e5f8: 0x6c139820, 0x2e5f9: 0x6c240a20, 0x2e5fa: 0x6c240c20, 0x2e5fb: 0x6c240e20, - 0x2e5fc: 0x6c241020, 0x2e5fd: 0x6c241220, 0x2e5fe: 0x6c241420, 0x2e5ff: 0x6c241620, - // Block 0xb98, offset 0x2e600 - 0x2e600: 0x6c3ab620, 0x2e601: 0x6c241820, 0x2e602: 0x6c241a20, 0x2e603: 0x6c241c20, - 0x2e604: 0x6c241e20, 0x2e605: 0x6c242020, 0x2e606: 0x6c242220, 0x2e607: 0x6c242420, - 0x2e608: 0x6c242620, 0x2e609: 0x6c3acc20, 0x2e60a: 0x6c569620, 0x2e60b: 0x6c3ace20, - 0x2e60c: 0x6c3ad020, 0x2e60d: 0x6c3ad220, 0x2e60e: 0x6c3ad420, 0x2e60f: 0x6c3ad620, - 0x2e610: 0x6c3ad820, 0x2e611: 0x6c3ada20, 0x2e612: 0x6c3adc20, 0x2e613: 0x6c3ade20, - 0x2e614: 0x6c3ae020, 0x2e615: 0x6c3ae220, 0x2e616: 0x6c3ae420, 0x2e617: 0x6c3ae620, - 0x2e618: 0x6c3ae820, 0x2e619: 0x6c3aea20, 0x2e61a: 0x6c3aec20, 0x2e61b: 0x6c3aee20, - 0x2e61c: 0x6c3af020, 0x2e61d: 0x6c3af220, 0x2e61e: 0x6c3af420, 0x2e61f: 0x6c56a420, - 0x2e620: 0x6c56a620, 0x2e621: 0x6c56a820, 0x2e622: 0x6c56aa20, 0x2e623: 0x6c56ac20, - 0x2e624: 0x6c56ae20, 0x2e625: 0x6c56b020, 0x2e626: 0x6c56b220, 0x2e627: 0x6c56b420, - 0x2e628: 0x6c56b620, 0x2e629: 0x6c56b820, 0x2e62a: 0x6c56ba20, 0x2e62b: 0x6c56bc20, - 0x2e62c: 0x6c56be20, 0x2e62d: 0x6c56c020, 0x2e62e: 0x6c56c220, 0x2e62f: 0x6c56c420, - 0x2e630: 0x6c56c620, 0x2e631: 0x6c56c820, 0x2e632: 0x6c56ca20, 0x2e633: 0x6c794420, - 0x2e634: 0x6c794620, 0x2e635: 0x6c794820, 0x2e636: 0x6c794a20, 0x2e637: 0x6c794c20, - 0x2e638: 0x6c794e20, 0x2e639: 0x6c795020, 0x2e63a: 0x6c795220, 0x2e63b: 0x6c795420, - 0x2e63c: 0x6c795620, 0x2e63d: 0x6c795820, 0x2e63e: 0x6c795a20, 0x2e63f: 0x6ca25220, - // Block 0xb99, offset 0x2e640 - 0x2e640: 0x6c795c20, 0x2e641: 0x6c795e20, 0x2e642: 0x6c796020, 0x2e643: 0x6c796220, - 0x2e644: 0x6ca26420, 0x2e645: 0x6ca26620, 0x2e646: 0x6ccfce20, 0x2e647: 0x6ca26820, - 0x2e648: 0x6ca26a20, 0x2e649: 0x6ca26c20, 0x2e64a: 0x6ca26e20, 0x2e64b: 0x6ccfd020, - 0x2e64c: 0x6ccfd220, 0x2e64d: 0x6ca27020, 0x2e64e: 0x6ca27220, 0x2e64f: 0x6ca27420, - 0x2e650: 0x6ca27620, 0x2e651: 0x6ca27820, 0x2e652: 0x6ccfd420, 0x2e653: 0x6ca27a20, - 0x2e654: 0x6ca27c20, 0x2e655: 0x6ca27e20, 0x2e656: 0x6ca28020, 0x2e657: 0x6ca28220, - 0x2e658: 0x6ca28420, 0x2e659: 0x6ca28620, 0x2e65a: 0x6ca28820, 0x2e65b: 0x6ca28a20, - 0x2e65c: 0x6ca28c20, 0x2e65d: 0x6ca28e20, 0x2e65e: 0x6ca29020, 0x2e65f: 0x6ca29220, - 0x2e660: 0x6ca29420, 0x2e661: 0x6ca29620, 0x2e662: 0x6ccfe420, 0x2e663: 0x6ccfe620, - 0x2e664: 0x6ccfe820, 0x2e665: 0x6ccfea20, 0x2e666: 0x6ccfec20, 0x2e667: 0x6ccfee20, - 0x2e668: 0x6ccff020, 0x2e669: 0x6ccff220, 0x2e66a: 0x6ca29820, 0x2e66b: 0x6ccfd620, - 0x2e66c: 0x6ccff420, 0x2e66d: 0x6ccff620, 0x2e66e: 0x6cfdbe20, 0x2e66f: 0x6ccff820, - 0x2e670: 0x6ccffa20, 0x2e671: 0x6ccffc20, 0x2e672: 0x6ccffe20, 0x2e673: 0x6cd00020, - 0x2e674: 0x6cd00220, 0x2e675: 0x6cd00420, 0x2e676: 0x6cd00620, 0x2e677: 0x6cfdc020, - 0x2e678: 0x6cd00820, 0x2e679: 0x6cd00a20, 0x2e67a: 0x6cfdd220, 0x2e67b: 0x6cfdd420, - 0x2e67c: 0x6cfdd620, 0x2e67d: 0x6cfdd820, 0x2e67e: 0x6cfdda20, 0x2e67f: 0x6cfddc20, - // Block 0xb9a, offset 0x2e680 - 0x2e680: 0x6cfdde20, 0x2e681: 0x6cfdc220, 0x2e682: 0x6cfde020, 0x2e683: 0x6d2c6a20, - 0x2e684: 0x6d2c7820, 0x2e685: 0x6cfde220, 0x2e686: 0x6cfde420, 0x2e687: 0x6cfde620, - 0x2e688: 0x6cfde820, 0x2e689: 0x6cfdea20, 0x2e68a: 0x6cfdec20, 0x2e68b: 0x6d599420, - 0x2e68c: 0x6d2c7a20, 0x2e68d: 0x6d2c7c20, 0x2e68e: 0x6d598620, 0x2e68f: 0x6d2c7e20, - 0x2e690: 0x6d2c8020, 0x2e691: 0x6d2c8220, 0x2e692: 0x6d2c8420, 0x2e693: 0x6d2c6820, - 0x2e694: 0x6d2c8620, 0x2e695: 0x6d2c8820, 0x2e696: 0x6d599620, 0x2e697: 0x6d599820, - 0x2e698: 0x6d599a20, 0x2e699: 0x6d599c20, 0x2e69a: 0x6d599e20, 0x2e69b: 0x6d59a020, - 0x2e69c: 0x6d59a220, 0x2e69d: 0x6d59a420, 0x2e69e: 0x6d59a620, 0x2e69f: 0x6d59a820, - 0x2e6a0: 0x6d59aa20, 0x2e6a1: 0x6d59ac20, 0x2e6a2: 0x6d59ae20, 0x2e6a3: 0x6d847e20, - 0x2e6a4: 0x6d59b020, 0x2e6a5: 0x6d848620, 0x2e6a6: 0x6d848820, 0x2e6a7: 0x6d848a20, - 0x2e6a8: 0x6d848c20, 0x2e6a9: 0x6d848e20, 0x2e6aa: 0x6d849020, 0x2e6ab: 0x6d849220, - 0x2e6ac: 0x6d849420, 0x2e6ad: 0x6d849620, 0x2e6ae: 0x6da96a20, 0x2e6af: 0x6da96c20, - 0x2e6b0: 0x6da96e20, 0x2e6b1: 0x6da97020, 0x2e6b2: 0x6da97220, 0x2e6b3: 0x6da97420, - 0x2e6b4: 0x6da97620, 0x2e6b5: 0x6dca5a20, 0x2e6b6: 0x6dca5c20, 0x2e6b7: 0x6dca5e20, - 0x2e6b8: 0x6de60020, 0x2e6b9: 0x6de60620, 0x2e6ba: 0x6de60820, 0x2e6bb: 0x6dfce620, - 0x2e6bc: 0x6dfcf020, 0x2e6bd: 0x6dfcf220, 0x2e6be: 0x6e0fc820, 0x2e6bf: 0x6e1ea820, - // Block 0xb9b, offset 0x2e6c0 - 0x2e6c0: 0x6e1eaa20, 0x2e6c1: 0x6e2a0c20, 0x2e6c2: 0x6e2a0e20, 0x2e6c3: 0x6e2a1020, - 0x2e6c4: 0x6c09ee20, 0x2e6c5: 0x6c572620, 0x2e6c6: 0x6c79ba20, 0x2e6c7: 0x6ca2d620, - 0x2e6c8: 0x6ca2d820, 0x2e6c9: 0x6c09f220, 0x2e6ca: 0x6c09f420, 0x2e6cb: 0x6c04fa20, - 0x2e6cc: 0x6c09f620, 0x2e6cd: 0x6c09f820, 0x2e6ce: 0x6c13be20, 0x2e6cf: 0x6c13c020, - 0x2e6d0: 0x6c13c220, 0x2e6d1: 0x6c13c420, 0x2e6d2: 0x6c247420, 0x2e6d3: 0x6c247620, - 0x2e6d4: 0x6c247820, 0x2e6d5: 0x6c247a20, 0x2e6d6: 0x6c247c20, 0x2e6d7: 0x6c247e20, - 0x2e6d8: 0x6c248020, 0x2e6d9: 0x6c248220, 0x2e6da: 0x6c248420, 0x2e6db: 0x6c248620, - 0x2e6dc: 0x6c3b4420, 0x2e6dd: 0x6c3b4620, 0x2e6de: 0x6c3b4820, 0x2e6df: 0x6c3b4a20, - 0x2e6e0: 0x6c3b4c20, 0x2e6e1: 0x6c3b4e20, 0x2e6e2: 0x6c3b5020, 0x2e6e3: 0x6c3b5220, - 0x2e6e4: 0x6c3b5420, 0x2e6e5: 0x6c3b5620, 0x2e6e6: 0x6c3b5820, 0x2e6e7: 0x6c3b5a20, - 0x2e6e8: 0x6c3b5c20, 0x2e6e9: 0x6c3b5e20, 0x2e6ea: 0x6c3b6020, 0x2e6eb: 0x6c3b6220, - 0x2e6ec: 0x6c3b6420, 0x2e6ed: 0x6c3b6620, 0x2e6ee: 0x6c3b6820, 0x2e6ef: 0x6c3b6a20, - 0x2e6f0: 0x6c3b6c20, 0x2e6f1: 0x6c3b6e20, 0x2e6f2: 0x6c573a20, 0x2e6f3: 0x6c573c20, - 0x2e6f4: 0x6c573e20, 0x2e6f5: 0x6c574020, 0x2e6f6: 0x6c574220, 0x2e6f7: 0x6c574420, - 0x2e6f8: 0x6c574620, 0x2e6f9: 0x6c574820, 0x2e6fa: 0x6c79be20, 0x2e6fb: 0x6c574a20, - 0x2e6fc: 0x6c79c020, 0x2e6fd: 0x6c574c20, 0x2e6fe: 0x6c574e20, 0x2e6ff: 0x6c575020, - // Block 0xb9c, offset 0x2e700 - 0x2e700: 0x6c575220, 0x2e701: 0x6c575420, 0x2e702: 0x6c575620, 0x2e703: 0x6c575820, - 0x2e704: 0x6c575a20, 0x2e705: 0x6c575c20, 0x2e706: 0x6c575e20, 0x2e707: 0x6c576020, - 0x2e708: 0x6c576220, 0x2e709: 0x6c576420, 0x2e70a: 0x6c576620, 0x2e70b: 0x6c576820, - 0x2e70c: 0x6c576a20, 0x2e70d: 0x6c576c20, 0x2e70e: 0x6c576e20, 0x2e70f: 0x6c577020, - 0x2e710: 0x6c577220, 0x2e711: 0x6c577420, 0x2e712: 0x6c79d620, 0x2e713: 0x6c79d820, - 0x2e714: 0x6c79da20, 0x2e715: 0x6c79dc20, 0x2e716: 0x6c79de20, 0x2e717: 0x6c79e020, - 0x2e718: 0x6c79e220, 0x2e719: 0x6c79e420, 0x2e71a: 0x6c79e620, 0x2e71b: 0x6c79e820, - 0x2e71c: 0x6c79ea20, 0x2e71d: 0x6c79ec20, 0x2e71e: 0x6c79ee20, 0x2e71f: 0x6c79f020, - 0x2e720: 0x6c79f220, 0x2e721: 0x6c79f420, 0x2e722: 0x6c79f620, 0x2e723: 0x6c79f820, - 0x2e724: 0x6c79fa20, 0x2e725: 0x6c79fc20, 0x2e726: 0x6c79fe20, 0x2e727: 0x6c7a0020, - 0x2e728: 0x6c7a0220, 0x2e729: 0x6c7a0420, 0x2e72a: 0x6c7a0620, 0x2e72b: 0x6c7a0820, - 0x2e72c: 0x6c7a0a20, 0x2e72d: 0x6c7a0c20, 0x2e72e: 0x6c7a0e20, 0x2e72f: 0x6c7a1020, - 0x2e730: 0x6c7a1220, 0x2e731: 0x6c7a1420, 0x2e732: 0x6c7a1620, 0x2e733: 0x6ca2ea20, - 0x2e734: 0x6ca2ec20, 0x2e735: 0x6ca2ee20, 0x2e736: 0x6ca2f020, 0x2e737: 0x6cd08c20, - 0x2e738: 0x6ca2f220, 0x2e739: 0x6c7a7220, 0x2e73a: 0x6ca2f420, 0x2e73b: 0x6ca2f620, - 0x2e73c: 0x6ca2f820, 0x2e73d: 0x6ca2fa20, 0x2e73e: 0x6ca2fc20, 0x2e73f: 0x6ca2fe20, - // Block 0xb9d, offset 0x2e740 - 0x2e740: 0x6ca30020, 0x2e741: 0x6ca30220, 0x2e742: 0x6ca30420, 0x2e743: 0x6ca30620, - 0x2e744: 0x6ca30820, 0x2e745: 0x6ca30a20, 0x2e746: 0x6ca30c20, 0x2e747: 0x6ca30e20, - 0x2e748: 0x6ca31020, 0x2e749: 0x6c7a1820, 0x2e74a: 0x6ca31220, 0x2e74b: 0x6ca31420, - 0x2e74c: 0x6ca31620, 0x2e74d: 0x6ca31820, 0x2e74e: 0x6ca31a20, 0x2e74f: 0x6ca31c20, - 0x2e750: 0x6ca31e20, 0x2e751: 0x6ca32020, 0x2e752: 0x6ca32220, 0x2e753: 0x6ca32420, - 0x2e754: 0x6cd08e20, 0x2e755: 0x6cd09020, 0x2e756: 0x6cd09220, 0x2e757: 0x6cd09420, - 0x2e758: 0x6cd09620, 0x2e759: 0x6cd09820, 0x2e75a: 0x6cd09a20, 0x2e75b: 0x6cd09c20, - 0x2e75c: 0x6cd09e20, 0x2e75d: 0x6cd0a020, 0x2e75e: 0x6cfe6220, 0x2e75f: 0x6cd0a220, - 0x2e760: 0x6cd0a420, 0x2e761: 0x6cd0a620, 0x2e762: 0x6cd0a820, 0x2e763: 0x6cd0aa20, - 0x2e764: 0x6cd0ac20, 0x2e765: 0x6cd0ae20, 0x2e766: 0x6cd0b020, 0x2e767: 0x6cfe4c20, - 0x2e768: 0x6cd0b220, 0x2e769: 0x6cd0b420, 0x2e76a: 0x6cd0b620, 0x2e76b: 0x6cd0b820, - 0x2e76c: 0x6cd0ba20, 0x2e76d: 0x6cd0bc20, 0x2e76e: 0x6cd0be20, 0x2e76f: 0x6cd0c020, - 0x2e770: 0x6cd0c220, 0x2e771: 0x6cd0c420, 0x2e772: 0x6cd0c620, 0x2e773: 0x6cd0c820, - 0x2e774: 0x6cd0ca20, 0x2e775: 0x6cd0cc20, 0x2e776: 0x6cd0ce20, 0x2e777: 0x6cd0d020, - 0x2e778: 0x6cd0d220, 0x2e779: 0x6cd0d420, 0x2e77a: 0x6cd0d620, 0x2e77b: 0x6cd0d820, - 0x2e77c: 0x6cd0da20, 0x2e77d: 0x6cfe6420, 0x2e77e: 0x6cfe6620, 0x2e77f: 0x6cfe6820, - // Block 0xb9e, offset 0x2e780 - 0x2e780: 0x6cfe6a20, 0x2e781: 0x6cfe6c20, 0x2e782: 0x6cfe6e20, 0x2e783: 0x6cfe7020, - 0x2e784: 0x6cfe7220, 0x2e785: 0x6cfe7420, 0x2e786: 0x6cfe7620, 0x2e787: 0x6cfe7820, - 0x2e788: 0x6cfe7a20, 0x2e789: 0x6cfe7c20, 0x2e78a: 0x6cfe7e20, 0x2e78b: 0x6cfe8020, - 0x2e78c: 0x6cfe8220, 0x2e78d: 0x6cfe8420, 0x2e78e: 0x6cfe8620, 0x2e78f: 0x6cfe8820, - 0x2e790: 0x6cfe8a20, 0x2e791: 0x6cfe8c20, 0x2e792: 0x6cfe8e20, 0x2e793: 0x6cfe9020, - 0x2e794: 0x6cfe9220, 0x2e795: 0x6cfe9420, 0x2e796: 0x6cfe9620, 0x2e797: 0x6cfe9820, - 0x2e798: 0x6cfe9a20, 0x2e799: 0x6cfe9c20, 0x2e79a: 0x6cfe9e20, 0x2e79b: 0x6cfea020, - 0x2e79c: 0x6cfea220, 0x2e79d: 0x6cfea420, 0x2e79e: 0x6cfea620, 0x2e79f: 0x6cfea820, - 0x2e7a0: 0x6d2cea20, 0x2e7a1: 0x6d2cec20, 0x2e7a2: 0x6d2cee20, 0x2e7a3: 0x6d2cf020, - 0x2e7a4: 0x6d2cf220, 0x2e7a5: 0x6d2cf420, 0x2e7a6: 0x6d2cf620, 0x2e7a7: 0x6d2cf820, - 0x2e7a8: 0x6d2cfa20, 0x2e7a9: 0x6d5a0620, 0x2e7aa: 0x6d2cfc20, 0x2e7ab: 0x6d2cfe20, - 0x2e7ac: 0x6d5a0820, 0x2e7ad: 0x6d2d0020, 0x2e7ae: 0x6d2d0220, 0x2e7af: 0x6cff4020, - 0x2e7b0: 0x6d2d0420, 0x2e7b1: 0x6d2d0620, 0x2e7b2: 0x6d2d0820, 0x2e7b3: 0x6d2d0a20, - 0x2e7b4: 0x6d2d0c20, 0x2e7b5: 0x6d2d0e20, 0x2e7b6: 0x6d2d1020, 0x2e7b7: 0x6d2d1220, - 0x2e7b8: 0x6d2d1420, 0x2e7b9: 0x6d5a1e20, 0x2e7ba: 0x6d5a2020, 0x2e7bb: 0x6d5a2220, - 0x2e7bc: 0x6d5a2420, 0x2e7bd: 0x6d5a2620, 0x2e7be: 0x6d5a2820, 0x2e7bf: 0x6d84cc20, - // Block 0xb9f, offset 0x2e7c0 - 0x2e7c0: 0x6d5a2a20, 0x2e7c1: 0x6d5a2c20, 0x2e7c2: 0x6d5a2e20, 0x2e7c3: 0x6d5a3020, - 0x2e7c4: 0x6d5a3220, 0x2e7c5: 0x6d5a3420, 0x2e7c6: 0x6d5a3620, 0x2e7c7: 0x6d5a3820, - 0x2e7c8: 0x6d5a3a20, 0x2e7c9: 0x6d5a3c20, 0x2e7ca: 0x6d5a3e20, 0x2e7cb: 0x6d5a4020, - 0x2e7cc: 0x6d5a4220, 0x2e7cd: 0x6d84da20, 0x2e7ce: 0x6d5a4420, 0x2e7cf: 0x6d84dc20, - 0x2e7d0: 0x6da99a20, 0x2e7d1: 0x6d84de20, 0x2e7d2: 0x6d84e020, 0x2e7d3: 0x6d5a4620, - 0x2e7d4: 0x6d84e220, 0x2e7d5: 0x6d84e420, 0x2e7d6: 0x6d84e620, 0x2e7d7: 0x6da99c20, - 0x2e7d8: 0x6d84e820, 0x2e7d9: 0x6d84ea20, 0x2e7da: 0x6d84ec20, 0x2e7db: 0x6d84ee20, - 0x2e7dc: 0x6d84f020, 0x2e7dd: 0x6d84f220, 0x2e7de: 0x6d84f420, 0x2e7df: 0x6d84f620, - 0x2e7e0: 0x6d84f820, 0x2e7e1: 0x6d84fa20, 0x2e7e2: 0x6d856820, 0x2e7e3: 0x6d84fc20, - 0x2e7e4: 0x6d84fe20, 0x2e7e5: 0x6da9a620, 0x2e7e6: 0x6da9a820, 0x2e7e7: 0x6dca8820, - 0x2e7e8: 0x6da9aa20, 0x2e7e9: 0x6da9ac20, 0x2e7ea: 0x6da9ae20, 0x2e7eb: 0x6da9b020, - 0x2e7ec: 0x6da9b220, 0x2e7ed: 0x6da9b420, 0x2e7ee: 0x6da9b620, 0x2e7ef: 0x6da9b820, - 0x2e7f0: 0x6da9ba20, 0x2e7f1: 0x6da9bc20, 0x2e7f2: 0x6da9be20, 0x2e7f3: 0x6da9c020, - 0x2e7f4: 0x6da9c220, 0x2e7f5: 0x6dca8a20, 0x2e7f6: 0x6dca8c20, 0x2e7f7: 0x6de61c20, - 0x2e7f8: 0x6dca8e20, 0x2e7f9: 0x6dca9020, 0x2e7fa: 0x6dfcfc20, 0x2e7fb: 0x6dca9220, - 0x2e7fc: 0x6dca9420, 0x2e7fd: 0x6de61e20, 0x2e7fe: 0x6dca9620, 0x2e7ff: 0x6dca9820, - // Block 0xba0, offset 0x2e800 - 0x2e800: 0x6dca9a20, 0x2e801: 0x6dca9c20, 0x2e802: 0x6dca9e20, 0x2e803: 0x6de62820, - 0x2e804: 0x6de62a20, 0x2e805: 0x6de62c20, 0x2e806: 0x6de62e20, 0x2e807: 0x6de63020, - 0x2e808: 0x6de63220, 0x2e809: 0x6de63420, 0x2e80a: 0x6de63620, 0x2e80b: 0x6de63820, - 0x2e80c: 0x6dfd0020, 0x2e80d: 0x6dfd0220, 0x2e80e: 0x6dfd0420, 0x2e80f: 0x6dfd0620, - 0x2e810: 0x6dfd0820, 0x2e811: 0x6dfd0a20, 0x2e812: 0x6dfd0c20, 0x2e813: 0x6e0fd620, - 0x2e814: 0x6e0fd820, 0x2e815: 0x6e1eb420, 0x2e816: 0x6e0fda20, 0x2e817: 0x6e1eb620, - 0x2e818: 0x6e1eb820, 0x2e819: 0x6e1eba20, 0x2e81a: 0x6e2a1c20, 0x2e81b: 0x6e32de20, - 0x2e81c: 0x6c09fa20, 0x2e81d: 0x6c3bac20, 0x2e81e: 0x6c7a7820, 0x2e81f: 0x6c7a7a20, - 0x2e820: 0x6ca38020, 0x2e821: 0x6cff4220, 0x2e822: 0x6d856a20, 0x2e823: 0x6de66820, - 0x2e824: 0x6e1ec620, 0x2e825: 0x6e32e420, 0x2e826: 0x6c09fc20, 0x2e827: 0x6c24a220, - 0x2e828: 0x6c3bb620, 0x2e829: 0x6c3bb820, 0x2e82a: 0x6c57da20, 0x2e82b: 0x6c57dc20, - 0x2e82c: 0x6c57de20, 0x2e82d: 0x6c57e020, 0x2e82e: 0x6c57e220, 0x2e82f: 0x6c57e420, - 0x2e830: 0x6c57e620, 0x2e831: 0x6c57e820, 0x2e832: 0x6c57ea20, 0x2e833: 0x6c7a9020, - 0x2e834: 0x6c7a9220, 0x2e835: 0x6c7a9420, 0x2e836: 0x6ca39820, 0x2e837: 0x6ca39a20, - 0x2e838: 0x6ca39c20, 0x2e839: 0x6cd17820, 0x2e83a: 0x6cd17a20, 0x2e83b: 0x6cd17c20, - 0x2e83c: 0x6cd17e20, 0x2e83d: 0x6cff6020, 0x2e83e: 0x6cff6220, 0x2e83f: 0x6cff6420, - // Block 0xba1, offset 0x2e840 - 0x2e840: 0x6d2d9620, 0x2e841: 0x6cff6620, 0x2e842: 0x6d2da420, 0x2e843: 0x6d2da620, - 0x2e844: 0x6d2da820, 0x2e845: 0x6d2daa20, 0x2e846: 0x6d2dac20, 0x2e847: 0x6d5acc20, - 0x2e848: 0x6d5ace20, 0x2e849: 0x6d5ad020, 0x2e84a: 0x6d857a20, 0x2e84b: 0x6d857c20, - 0x2e84c: 0x6d857e20, 0x2e84d: 0x6d858020, 0x2e84e: 0x6d858220, 0x2e84f: 0x6daa2020, - 0x2e850: 0x6daa2220, 0x2e851: 0x6daa2420, 0x2e852: 0x6daa2620, 0x2e853: 0x6dcaee20, - 0x2e854: 0x6dcaf020, 0x2e855: 0x6dcaf220, 0x2e856: 0x6de66e20, 0x2e857: 0x6e0ffa20, - 0x2e858: 0x6c09fe20, 0x2e859: 0x6c3bc420, 0x2e85a: 0x6c57fe20, 0x2e85b: 0x6ca3ba20, - 0x2e85c: 0x6ca3bc20, 0x2e85d: 0x6cff8a20, 0x2e85e: 0x6cff8c20, 0x2e85f: 0x6c0a0220, - 0x2e860: 0x6c580a20, 0x2e861: 0x6c7ab220, 0x2e862: 0x6ca3be20, 0x2e863: 0x6ca3c020, - 0x2e864: 0x6cd1a420, 0x2e865: 0x6cd1a620, 0x2e866: 0x6cd1a820, 0x2e867: 0x6d2dd620, - 0x2e868: 0x6c0a0620, 0x2e869: 0x6c0a0820, 0x2e86a: 0x6c13d020, 0x2e86b: 0x6c24aa20, - 0x2e86c: 0x6c24ac20, 0x2e86d: 0x6c581a20, 0x2e86e: 0x6c581c20, 0x2e86f: 0x6cd1b620, - 0x2e870: 0x6c0a0a20, 0x2e871: 0x6c0a0c20, 0x2e872: 0x6c0a0e20, 0x2e873: 0x6c0a1020, - 0x2e874: 0x6c0a1220, 0x2e875: 0x6c0a1420, 0x2e876: 0x6c13d620, 0x2e877: 0x6c24b620, - 0x2e878: 0x6c24b820, 0x2e879: 0x6c24ba20, 0x2e87a: 0x6c24bc20, 0x2e87b: 0x6c3be220, - 0x2e87c: 0x6c24be20, 0x2e87d: 0x6c3be420, 0x2e87e: 0x6c3be620, 0x2e87f: 0x6c3be820, - // Block 0xba2, offset 0x2e880 - 0x2e880: 0x6c3bea20, 0x2e881: 0x6c3bec20, 0x2e882: 0x6c3bee20, 0x2e883: 0x6c3bf020, - 0x2e884: 0x6c3bf220, 0x2e885: 0x6c3bf420, 0x2e886: 0x6c582420, 0x2e887: 0x6c582620, - 0x2e888: 0x6c582820, 0x2e889: 0x6c582a20, 0x2e88a: 0x6c582c20, 0x2e88b: 0x6c582e20, - 0x2e88c: 0x6c583020, 0x2e88d: 0x6c583220, 0x2e88e: 0x6c583420, 0x2e88f: 0x6c583620, - 0x2e890: 0x6c583820, 0x2e891: 0x6c583a20, 0x2e892: 0x6c583c20, 0x2e893: 0x6c583e20, - 0x2e894: 0x6c7abe20, 0x2e895: 0x6c7ac020, 0x2e896: 0x6c7ac220, 0x2e897: 0x6c7ac420, - 0x2e898: 0x6c7ac620, 0x2e899: 0x6c7ac820, 0x2e89a: 0x6c7aca20, 0x2e89b: 0x6c7acc20, - 0x2e89c: 0x6c7ace20, 0x2e89d: 0x6c7ad020, 0x2e89e: 0x6c7ad220, 0x2e89f: 0x6c7ad420, - 0x2e8a0: 0x6c7bac20, 0x2e8a1: 0x6ca3d620, 0x2e8a2: 0x6ca3d820, 0x2e8a3: 0x6ca3da20, - 0x2e8a4: 0x6ca3dc20, 0x2e8a5: 0x6ca3de20, 0x2e8a6: 0x6ca3e020, 0x2e8a7: 0x6ca3e220, - 0x2e8a8: 0x6ca89a20, 0x2e8a9: 0x6ca3e420, 0x2e8aa: 0x6cd1be20, 0x2e8ab: 0x6cd1c020, - 0x2e8ac: 0x6cd1c220, 0x2e8ad: 0x6cd1c420, 0x2e8ae: 0x6cd1c620, 0x2e8af: 0x6cd1c820, - 0x2e8b0: 0x6ca3e620, 0x2e8b1: 0x6cd20620, 0x2e8b2: 0x6cd1ca20, 0x2e8b3: 0x6cd1cc20, - 0x2e8b4: 0x6cd1ce20, 0x2e8b5: 0x6cffaa20, 0x2e8b6: 0x6cffac20, 0x2e8b7: 0x6cffae20, - 0x2e8b8: 0x6cffb020, 0x2e8b9: 0x6cffb220, 0x2e8ba: 0x6cffb420, 0x2e8bb: 0x6d2de220, - 0x2e8bc: 0x6d2de420, 0x2e8bd: 0x6d2de620, 0x2e8be: 0x6d5b0420, 0x2e8bf: 0x6d5b0620, - // Block 0xba3, offset 0x2e8c0 - 0x2e8c0: 0x6d85a020, 0x2e8c1: 0x6d85a220, 0x2e8c2: 0x6d85a420, 0x2e8c3: 0x6daa4620, - 0x2e8c4: 0x6daa4820, 0x2e8c5: 0x6dcb0e20, 0x2e8c6: 0x6de68020, 0x2e8c7: 0x6de68220, - 0x2e8c8: 0x6dfd3620, 0x2e8c9: 0x6dfd4820, 0x2e8ca: 0x6e1ede20, 0x2e8cb: 0x6c0a1a20, - 0x2e8cc: 0x6c3c1420, 0x2e8cd: 0x6c7b0e20, 0x2e8ce: 0x6cd20820, 0x2e8cf: 0x6cd20a20, - 0x2e8d0: 0x6d2e0420, 0x2e8d1: 0x6d2e0620, 0x2e8d2: 0x6c0a2020, 0x2e8d3: 0x6c24d820, - 0x2e8d4: 0x6c24da20, 0x2e8d5: 0x6c24dc20, 0x2e8d6: 0x6c24de20, 0x2e8d7: 0x6c24e020, - 0x2e8d8: 0x6c3c2020, 0x2e8d9: 0x6c3c2220, 0x2e8da: 0x6c3c2420, 0x2e8db: 0x6c3c2620, - 0x2e8dc: 0x6c3c2820, 0x2e8dd: 0x6c3c2a20, 0x2e8de: 0x6c3c2c20, 0x2e8df: 0x6c3c2e20, - 0x2e8e0: 0x6c3c3020, 0x2e8e1: 0x6c3c4220, 0x2e8e2: 0x6c589c20, 0x2e8e3: 0x6c589e20, - 0x2e8e4: 0x6c58a020, 0x2e8e5: 0x6c58a220, 0x2e8e6: 0x6c58a420, 0x2e8e7: 0x6c58a620, - 0x2e8e8: 0x6c58a820, 0x2e8e9: 0x6c58aa20, 0x2e8ea: 0x6c58ac20, 0x2e8eb: 0x6c58ae20, - 0x2e8ec: 0x6c58b020, 0x2e8ed: 0x6c58b220, 0x2e8ee: 0x6c58b420, 0x2e8ef: 0x6c58b620, - 0x2e8f0: 0x6c7b2c20, 0x2e8f1: 0x6c7b2e20, 0x2e8f2: 0x6c7b3020, 0x2e8f3: 0x6c7b3220, - 0x2e8f4: 0x6c7b3420, 0x2e8f5: 0x6ca41a20, 0x2e8f6: 0x6c7b3620, 0x2e8f7: 0x6c7b3820, - 0x2e8f8: 0x6c7b3a20, 0x2e8f9: 0x6c7b3c20, 0x2e8fa: 0x6c58b820, 0x2e8fb: 0x6c7b3e20, - 0x2e8fc: 0x6c7b4020, 0x2e8fd: 0x6c7b4220, 0x2e8fe: 0x6c7b4420, 0x2e8ff: 0x6c7b4620, - // Block 0xba4, offset 0x2e900 - 0x2e900: 0x6c7b4820, 0x2e901: 0x6c7b4a20, 0x2e902: 0x6c7b4c20, 0x2e903: 0x6c7b4e20, - 0x2e904: 0x6c7b5020, 0x2e905: 0x6c7b5220, 0x2e906: 0x6c7b5420, 0x2e907: 0x6c7b5620, - 0x2e908: 0x6c7b5820, 0x2e909: 0x6c7b5a20, 0x2e90a: 0x6ca42e20, 0x2e90b: 0x6ca43020, - 0x2e90c: 0x6ca43220, 0x2e90d: 0x6ca43420, 0x2e90e: 0x6ca43620, 0x2e90f: 0x6ca43820, - 0x2e910: 0x6ca43a20, 0x2e911: 0x6ca43c20, 0x2e912: 0x6ca43e20, 0x2e913: 0x6ca44020, - 0x2e914: 0x6ca44220, 0x2e915: 0x6ca44420, 0x2e916: 0x6ca44620, 0x2e917: 0x6cd23020, - 0x2e918: 0x6cd23220, 0x2e919: 0x6cd23420, 0x2e91a: 0x6cd23620, 0x2e91b: 0x6cd23820, - 0x2e91c: 0x6cd23a20, 0x2e91d: 0x6cd23c20, 0x2e91e: 0x6cd23e20, 0x2e91f: 0x6cd24020, - 0x2e920: 0x6cd24220, 0x2e921: 0x6cd24420, 0x2e922: 0x6cd24620, 0x2e923: 0x6cd24820, - 0x2e924: 0x6cd24a20, 0x2e925: 0x6cd24c20, 0x2e926: 0x6cd24e20, 0x2e927: 0x6cd25020, - 0x2e928: 0x6cd25220, 0x2e929: 0x6cd25420, 0x2e92a: 0x6cd25620, 0x2e92b: 0x6cd25820, - 0x2e92c: 0x6d000620, 0x2e92d: 0x6d000820, 0x2e92e: 0x6d000a20, 0x2e92f: 0x6d000c20, - 0x2e930: 0x6d000e20, 0x2e931: 0x6d001020, 0x2e932: 0x6d001220, 0x2e933: 0x6d001420, - 0x2e934: 0x6d001620, 0x2e935: 0x6d001820, 0x2e936: 0x6d001a20, 0x2e937: 0x6d001c20, - 0x2e938: 0x6d001e20, 0x2e939: 0x6d002020, 0x2e93a: 0x6d002220, 0x2e93b: 0x6d002420, - 0x2e93c: 0x6d002620, 0x2e93d: 0x6d002820, 0x2e93e: 0x6d002a20, 0x2e93f: 0x6d002c20, - // Block 0xba5, offset 0x2e940 - 0x2e940: 0x6d002e20, 0x2e941: 0x6d003020, 0x2e942: 0x6d003220, 0x2e943: 0x6d003420, - 0x2e944: 0x6d003620, 0x2e945: 0x6d003820, 0x2e946: 0x6d003a20, 0x2e947: 0x6d2e2020, - 0x2e948: 0x6d2e2220, 0x2e949: 0x6d2e2420, 0x2e94a: 0x6d2e2620, 0x2e94b: 0x6d2e2820, - 0x2e94c: 0x6d2e2a20, 0x2e94d: 0x6d2e2c20, 0x2e94e: 0x6d2e2e20, 0x2e94f: 0x6d00b020, - 0x2e950: 0x6d00b220, 0x2e951: 0x6d2e3020, 0x2e952: 0x6d2e3220, 0x2e953: 0x6d2e3420, - 0x2e954: 0x6d2e3620, 0x2e955: 0x6d2e3820, 0x2e956: 0x6d2e3a20, 0x2e957: 0x6d2e3c20, - 0x2e958: 0x6d2e3e20, 0x2e959: 0x6d5b4a20, 0x2e95a: 0x6d5b4c20, 0x2e95b: 0x6d5b4e20, - 0x2e95c: 0x6d5b5020, 0x2e95d: 0x6d5b5220, 0x2e95e: 0x6d5b5420, 0x2e95f: 0x6d5b3020, - 0x2e960: 0x6d5b5620, 0x2e961: 0x6d5b5820, 0x2e962: 0x6d5b5a20, 0x2e963: 0x6d5b5c20, - 0x2e964: 0x6d5b5e20, 0x2e965: 0x6d5b6020, 0x2e966: 0x6d5b6220, 0x2e967: 0x6d2e4020, - 0x2e968: 0x6d5b6420, 0x2e969: 0x6d5b6620, 0x2e96a: 0x6d5b6820, 0x2e96b: 0x6d5b6a20, - 0x2e96c: 0x6d85d420, 0x2e96d: 0x6d85d620, 0x2e96e: 0x6d85d820, 0x2e96f: 0x6d85da20, - 0x2e970: 0x6d85dc20, 0x2e971: 0x6d85de20, 0x2e972: 0x6d85e020, 0x2e973: 0x6d85e220, - 0x2e974: 0x6d85e420, 0x2e975: 0x6d85e620, 0x2e976: 0x6d85e820, 0x2e977: 0x6d85ea20, - 0x2e978: 0x6d85ec20, 0x2e979: 0x6d85ee20, 0x2e97a: 0x6d85f020, 0x2e97b: 0x6d85f220, - 0x2e97c: 0x6d85f420, 0x2e97d: 0x6d85f620, 0x2e97e: 0x6d85f820, 0x2e97f: 0x6d85fa20, - // Block 0xba6, offset 0x2e980 - 0x2e980: 0x6daa7420, 0x2e981: 0x6daa7620, 0x2e982: 0x6daa7820, 0x2e983: 0x6daa7a20, - 0x2e984: 0x6daa7c20, 0x2e985: 0x6daa7e20, 0x2e986: 0x6daa8020, 0x2e987: 0x6daa8220, - 0x2e988: 0x6daa8420, 0x2e989: 0x6daa8620, 0x2e98a: 0x6d85fc20, 0x2e98b: 0x6daa8820, - 0x2e98c: 0x6daa8a20, 0x2e98d: 0x6daa8c20, 0x2e98e: 0x6daa8e20, 0x2e98f: 0x6dcb2c20, - 0x2e990: 0x6dcb2e20, 0x2e991: 0x6dcb3020, 0x2e992: 0x6dcb3220, 0x2e993: 0x6dcb3420, - 0x2e994: 0x6dcb3620, 0x2e995: 0x6dcb3820, 0x2e996: 0x6dcb3a20, 0x2e997: 0x6dcb3c20, - 0x2e998: 0x6dcb3e20, 0x2e999: 0x6dcb4020, 0x2e99a: 0x6dcb4220, 0x2e99b: 0x6dcb4420, - 0x2e99c: 0x6dcb4620, 0x2e99d: 0x6dcb4820, 0x2e99e: 0x6dcb4a20, 0x2e99f: 0x6de69c20, - 0x2e9a0: 0x6de69e20, 0x2e9a1: 0x6de6a020, 0x2e9a2: 0x6dfd4c20, 0x2e9a3: 0x6de6a220, - 0x2e9a4: 0x6dcb8220, 0x2e9a5: 0x6dfd4e20, 0x2e9a6: 0x6dfd5020, 0x2e9a7: 0x6e102420, - 0x2e9a8: 0x6e102620, 0x2e9a9: 0x6e102820, 0x2e9aa: 0x6e102a20, 0x2e9ab: 0x6e102c20, - 0x2e9ac: 0x6e1eea20, 0x2e9ad: 0x6e1eec20, 0x2e9ae: 0x6e1eee20, 0x2e9af: 0x6e2a4a20, - 0x2e9b0: 0x6e2a4c20, 0x2e9b1: 0x6e32f220, 0x2e9b2: 0x6e32f420, 0x2e9b3: 0x6e3d8020, - 0x2e9b4: 0x6e42ca20, 0x2e9b5: 0x6e452a20, 0x2e9b6: 0x6c0a2220, 0x2e9b7: 0x6c3c4420, - 0x2e9b8: 0x6c590220, 0x2e9b9: 0x6c590420, 0x2e9ba: 0x6c590620, 0x2e9bb: 0x6cd2b820, - 0x2e9bc: 0x6cd2ba20, 0x2e9bd: 0x6c0a2420, 0x2e9be: 0x6c13e020, 0x2e9bf: 0x6c13e220, - // Block 0xba7, offset 0x2e9c0 - 0x2e9c0: 0x6c24fa20, 0x2e9c1: 0x6c24fc20, 0x2e9c2: 0x6c24fe20, 0x2e9c3: 0x6c250020, - 0x2e9c4: 0x6c3c4620, 0x2e9c5: 0x6c590e20, 0x2e9c6: 0x6c591020, 0x2e9c7: 0x6c591220, - 0x2e9c8: 0x6c591420, 0x2e9c9: 0x6ca48c20, 0x2e9ca: 0x6c7bae20, 0x2e9cb: 0x6c7bb020, - 0x2e9cc: 0x6c7bb220, 0x2e9cd: 0x6c7bb420, 0x2e9ce: 0x6ca49220, 0x2e9cf: 0x6ca49420, - 0x2e9d0: 0x6ca49620, 0x2e9d1: 0x6ca49820, 0x2e9d2: 0x6cd2c420, 0x2e9d3: 0x6cd2c620, - 0x2e9d4: 0x6cd2c820, 0x2e9d5: 0x6cd2ca20, 0x2e9d6: 0x6cd2cc20, 0x2e9d7: 0x6d00bc20, - 0x2e9d8: 0x6d00be20, 0x2e9d9: 0x6d00c020, 0x2e9da: 0x6d5bde20, 0x2e9db: 0x6d5be020, - 0x2e9dc: 0x6d5be220, 0x2e9dd: 0x6d5be420, 0x2e9de: 0x6d5be620, 0x2e9df: 0x6d865420, - 0x2e9e0: 0x6d865620, 0x2e9e1: 0x6d865820, 0x2e9e2: 0x6dab0020, 0x2e9e3: 0x6dab0220, - 0x2e9e4: 0x6dab0420, 0x2e9e5: 0x6dab0620, 0x2e9e6: 0x6dcb8420, 0x2e9e7: 0x6dcb8620, - 0x2e9e8: 0x6dcb8820, 0x2e9e9: 0x6de6de20, 0x2e9ea: 0x6dfd7420, 0x2e9eb: 0x6dfd7620, - 0x2e9ec: 0x6e104620, 0x2e9ed: 0x6e1f0020, 0x2e9ee: 0x6c0a2620, 0x2e9ef: 0x6c3c5620, - 0x2e9f0: 0x6c7bd820, 0x2e9f1: 0x6c7bda20, 0x2e9f2: 0x6ca4ac20, 0x2e9f3: 0x6cd2f020, - 0x2e9f4: 0x6cd2f220, 0x2e9f5: 0x6d00e820, 0x2e9f6: 0x6d2ecc20, 0x2e9f7: 0x6d2ece20, - 0x2e9f8: 0x6d2ed020, 0x2e9f9: 0x6d2ed220, 0x2e9fa: 0x6d5bfc20, 0x2e9fb: 0x6d866620, - 0x2e9fc: 0x6dab1620, 0x2e9fd: 0x6dcb9420, 0x2e9fe: 0x6dfd8220, 0x2e9ff: 0x6c0a2820, - // Block 0xba8, offset 0x2ea00 - 0x2ea00: 0x6c250c20, 0x2ea01: 0x6c250e20, 0x2ea02: 0x6c3c6820, 0x2ea03: 0x6c595220, - 0x2ea04: 0x6c595420, 0x2ea05: 0x6c595620, 0x2ea06: 0x6c595820, 0x2ea07: 0x6c595a20, - 0x2ea08: 0x6c595c20, 0x2ea09: 0x6c7bf620, 0x2ea0a: 0x6c7bf820, 0x2ea0b: 0x6c7bfa20, - 0x2ea0c: 0x6c7bfc20, 0x2ea0d: 0x6c7bfe20, 0x2ea0e: 0x6c7c0020, 0x2ea0f: 0x6c7c0220, - 0x2ea10: 0x6c7c0420, 0x2ea11: 0x6c7c0620, 0x2ea12: 0x6ca4c220, 0x2ea13: 0x6ca4c420, - 0x2ea14: 0x6ca4c620, 0x2ea15: 0x6ca4c820, 0x2ea16: 0x6ca4ca20, 0x2ea17: 0x6ca4cc20, - 0x2ea18: 0x6ca4ce20, 0x2ea19: 0x6cd30c20, 0x2ea1a: 0x6cd30e20, 0x2ea1b: 0x6ca4d020, - 0x2ea1c: 0x6cd31020, 0x2ea1d: 0x6d010c20, 0x2ea1e: 0x6d010e20, 0x2ea1f: 0x6d011020, - 0x2ea20: 0x6d2ef420, 0x2ea21: 0x6d2ef620, 0x2ea22: 0x6d2ef820, 0x2ea23: 0x6d2efa20, - 0x2ea24: 0x6d5c0c20, 0x2ea25: 0x6d868220, 0x2ea26: 0x6d868420, 0x2ea27: 0x6d868620, - 0x2ea28: 0x6dab2020, 0x2ea29: 0x6dab2220, 0x2ea2a: 0x6dab2420, 0x2ea2b: 0x6dcba820, - 0x2ea2c: 0x6dcbaa20, 0x2ea2d: 0x6dfd8e20, 0x2ea2e: 0x6c0a2a20, 0x2ea2f: 0x6c251820, - 0x2ea30: 0x6c3c8020, 0x2ea31: 0x6c3c8220, 0x2ea32: 0x6c3c8420, 0x2ea33: 0x6c3c8620, - 0x2ea34: 0x6c3c8820, 0x2ea35: 0x6c3c8a20, 0x2ea36: 0x6c598820, 0x2ea37: 0x6c598a20, - 0x2ea38: 0x6c598c20, 0x2ea39: 0x6c598e20, 0x2ea3a: 0x6c599020, 0x2ea3b: 0x6c599220, - 0x2ea3c: 0x6c599420, 0x2ea3d: 0x6c599620, 0x2ea3e: 0x6c599820, 0x2ea3f: 0x6c599a20, - // Block 0xba9, offset 0x2ea40 - 0x2ea40: 0x6c599c20, 0x2ea41: 0x6c599e20, 0x2ea42: 0x6c59a020, 0x2ea43: 0x6c59a220, - 0x2ea44: 0x6c59a420, 0x2ea45: 0x6c59a620, 0x2ea46: 0x6c59a820, 0x2ea47: 0x6c59aa20, - 0x2ea48: 0x6c59ac20, 0x2ea49: 0x6c59ae20, 0x2ea4a: 0x6c59b020, 0x2ea4b: 0x6c59b220, - 0x2ea4c: 0x6c59b420, 0x2ea4d: 0x6c59b620, 0x2ea4e: 0x6c7c3e20, 0x2ea4f: 0x6c7c4020, - 0x2ea50: 0x6c7c4220, 0x2ea51: 0x6c7c4420, 0x2ea52: 0x6c7c4620, 0x2ea53: 0x6c7c4820, - 0x2ea54: 0x6c7c4a20, 0x2ea55: 0x6c7c4c20, 0x2ea56: 0x6c7c4e20, 0x2ea57: 0x6c7c5020, - 0x2ea58: 0x6c7c5220, 0x2ea59: 0x6c7c5420, 0x2ea5a: 0x6c7c5620, 0x2ea5b: 0x6c7c5820, - 0x2ea5c: 0x6c7c5a20, 0x2ea5d: 0x6c7c5c20, 0x2ea5e: 0x6c7c5e20, 0x2ea5f: 0x6c7c6020, - 0x2ea60: 0x6c7c6220, 0x2ea61: 0x6c7c6420, 0x2ea62: 0x6c7c6620, 0x2ea63: 0x6c7c6820, - 0x2ea64: 0x6c7c6a20, 0x2ea65: 0x6ca4ee20, 0x2ea66: 0x6ca4f020, 0x2ea67: 0x6c7c6c20, - 0x2ea68: 0x6c7c6e20, 0x2ea69: 0x6c7c7020, 0x2ea6a: 0x6c7c7220, 0x2ea6b: 0x6c7c7420, - 0x2ea6c: 0x6c7c7620, 0x2ea6d: 0x6ca50220, 0x2ea6e: 0x6ca50420, 0x2ea6f: 0x6ca50620, - 0x2ea70: 0x6ca50820, 0x2ea71: 0x6ca50a20, 0x2ea72: 0x6ca50c20, 0x2ea73: 0x6ca50e20, - 0x2ea74: 0x6ca51020, 0x2ea75: 0x6ca51220, 0x2ea76: 0x6ca51420, 0x2ea77: 0x6ca51620, - 0x2ea78: 0x6ca51820, 0x2ea79: 0x6ca51a20, 0x2ea7a: 0x6ca51c20, 0x2ea7b: 0x6ca51e20, - 0x2ea7c: 0x6ca52020, 0x2ea7d: 0x6ca52220, 0x2ea7e: 0x6ca52420, 0x2ea7f: 0x6c7c7820, - // Block 0xbaa, offset 0x2ea80 - 0x2ea80: 0x6ca59220, 0x2ea81: 0x6ca52620, 0x2ea82: 0x6cd35020, 0x2ea83: 0x6cd35220, - 0x2ea84: 0x6cd35420, 0x2ea85: 0x6cd35620, 0x2ea86: 0x6cd35820, 0x2ea87: 0x6cd35a20, - 0x2ea88: 0x6cd35c20, 0x2ea89: 0x6cd35e20, 0x2ea8a: 0x6cd36020, 0x2ea8b: 0x6cd36220, - 0x2ea8c: 0x6cd36420, 0x2ea8d: 0x6cd36620, 0x2ea8e: 0x6cd36820, 0x2ea8f: 0x6cd36a20, - 0x2ea90: 0x6cd36c20, 0x2ea91: 0x6cd36e20, 0x2ea92: 0x6d014220, 0x2ea93: 0x6d014420, - 0x2ea94: 0x6d014620, 0x2ea95: 0x6d014820, 0x2ea96: 0x6d014a20, 0x2ea97: 0x6d014c20, - 0x2ea98: 0x6d014e20, 0x2ea99: 0x6d015020, 0x2ea9a: 0x6d015220, 0x2ea9b: 0x6d015420, - 0x2ea9c: 0x6d015620, 0x2ea9d: 0x6d015820, 0x2ea9e: 0x6d015a20, 0x2ea9f: 0x6d015c20, - 0x2eaa0: 0x6d015e20, 0x2eaa1: 0x6d01f620, 0x2eaa2: 0x6d016020, 0x2eaa3: 0x6d016220, - 0x2eaa4: 0x6d016420, 0x2eaa5: 0x6d016620, 0x2eaa6: 0x6d016820, 0x2eaa7: 0x6d016a20, - 0x2eaa8: 0x6d016c20, 0x2eaa9: 0x6d016e20, 0x2eaaa: 0x6d017020, 0x2eaab: 0x6d017220, - 0x2eaac: 0x6d017420, 0x2eaad: 0x6d017620, 0x2eaae: 0x6d2f2220, 0x2eaaf: 0x6d2f2420, - 0x2eab0: 0x6d2f2620, 0x2eab1: 0x6d2f2820, 0x2eab2: 0x6d2f2a20, 0x2eab3: 0x6d2f2c20, - 0x2eab4: 0x6d2f2e20, 0x2eab5: 0x6d2f3020, 0x2eab6: 0x6d2f3220, 0x2eab7: 0x6d2f3420, - 0x2eab8: 0x6d2f3620, 0x2eab9: 0x6d01f820, 0x2eaba: 0x6d2f3820, 0x2eabb: 0x6d2f3a20, - 0x2eabc: 0x6d2f3c20, 0x2eabd: 0x6d2f3e20, 0x2eabe: 0x6d2f4020, 0x2eabf: 0x6d2f4220, - // Block 0xbab, offset 0x2eac0 - 0x2eac0: 0x6d2f4420, 0x2eac1: 0x6d2f4620, 0x2eac2: 0x6d2f4820, 0x2eac3: 0x6d2f4a20, - 0x2eac4: 0x6d2f4c20, 0x2eac5: 0x6d2f4e20, 0x2eac6: 0x6d2f5020, 0x2eac7: 0x6d5c3e20, - 0x2eac8: 0x6d5c4020, 0x2eac9: 0x6d5c4220, 0x2eaca: 0x6d5c4420, 0x2eacb: 0x6d5c4620, - 0x2eacc: 0x6d5c4820, 0x2eacd: 0x6d5c4a20, 0x2eace: 0x6d5c4c20, 0x2eacf: 0x6d5c4e20, - 0x2ead0: 0x6d5c5020, 0x2ead1: 0x6d5c5220, 0x2ead2: 0x6d5c5420, 0x2ead3: 0x6d5c5620, - 0x2ead4: 0x6d86c020, 0x2ead5: 0x6d86c220, 0x2ead6: 0x6d86c420, 0x2ead7: 0x6d86c620, - 0x2ead8: 0x6d86c820, 0x2ead9: 0x6d86ca20, 0x2eada: 0x6d86cc20, 0x2eadb: 0x6d86ce20, - 0x2eadc: 0x6d86d020, 0x2eadd: 0x6d86d220, 0x2eade: 0x6d86d420, 0x2eadf: 0x6d86d620, - 0x2eae0: 0x6d86d820, 0x2eae1: 0x6d86da20, 0x2eae2: 0x6d86dc20, 0x2eae3: 0x6d86de20, - 0x2eae4: 0x6dab6020, 0x2eae5: 0x6d875220, 0x2eae6: 0x6dab6220, 0x2eae7: 0x6dab6420, - 0x2eae8: 0x6dab6620, 0x2eae9: 0x6dab6820, 0x2eaea: 0x6dab6a20, 0x2eaeb: 0x6dab6c20, - 0x2eaec: 0x6dab6e20, 0x2eaed: 0x6dab7020, 0x2eaee: 0x6dab7220, 0x2eaef: 0x6dab7420, - 0x2eaf0: 0x6dab7620, 0x2eaf1: 0x6dab7820, 0x2eaf2: 0x6dab7a20, 0x2eaf3: 0x6dab7c20, - 0x2eaf4: 0x6dab7e20, 0x2eaf5: 0x6dab8020, 0x2eaf6: 0x6dab8220, 0x2eaf7: 0x6dab8420, - 0x2eaf8: 0x6dcbcc20, 0x2eaf9: 0x6dcbce20, 0x2eafa: 0x6dcbd020, 0x2eafb: 0x6dcbd220, - 0x2eafc: 0x6dcbd420, 0x2eafd: 0x6dcbd620, 0x2eafe: 0x6dcbd820, 0x2eaff: 0x6dcbda20, - // Block 0xbac, offset 0x2eb00 - 0x2eb00: 0x6dcbdc20, 0x2eb01: 0x6dcbde20, 0x2eb02: 0x6dcbe020, 0x2eb03: 0x6de70c20, - 0x2eb04: 0x6de70e20, 0x2eb05: 0x6de71020, 0x2eb06: 0x6de71220, 0x2eb07: 0x6de71420, - 0x2eb08: 0x6de71620, 0x2eb09: 0x6de71820, 0x2eb0a: 0x6de71a20, 0x2eb0b: 0x6dfdae20, - 0x2eb0c: 0x6dfdb020, 0x2eb0d: 0x6dfdb220, 0x2eb0e: 0x6dfdb420, 0x2eb0f: 0x6dfdb620, - 0x2eb10: 0x6e106020, 0x2eb11: 0x6e106220, 0x2eb12: 0x6e106420, 0x2eb13: 0x6e106620, - 0x2eb14: 0x6e2a6c20, 0x2eb15: 0x6e331420, 0x2eb16: 0x6e332020, 0x2eb17: 0x6e331620, - 0x2eb18: 0x6e393a20, 0x2eb19: 0x6e393c20, 0x2eb1a: 0x6e3d8a20, 0x2eb1b: 0x6c0a2c20, - 0x2eb1c: 0x6c5a1c20, 0x2eb1d: 0x6c7cd620, 0x2eb1e: 0x6cd3f420, 0x2eb1f: 0x6cd3f620, - 0x2eb20: 0x6d01fa20, 0x2eb21: 0x6e394020, 0x2eb22: 0x6c0a2e20, 0x2eb23: 0x6c253220, - 0x2eb24: 0x6c3cb620, 0x2eb25: 0x6c3cb820, 0x2eb26: 0x6c5a2420, 0x2eb27: 0x6c5a2620, - 0x2eb28: 0x6c5a2820, 0x2eb29: 0x6c7ce820, 0x2eb2a: 0x6ca59e20, 0x2eb2b: 0x6ca5a020, - 0x2eb2c: 0x6cd40c20, 0x2eb2d: 0x6cd40e20, 0x2eb2e: 0x6d020820, 0x2eb2f: 0x6dabf820, - 0x2eb30: 0x6dabfa20, 0x2eb31: 0x6de76020, 0x2eb32: 0x6dfde820, 0x2eb33: 0x6c0a3020, - 0x2eb34: 0x6c253a20, 0x2eb35: 0x6c253c20, 0x2eb36: 0x6c253e20, 0x2eb37: 0x6c3cc020, - 0x2eb38: 0x6c3cc220, 0x2eb39: 0x6c3cc420, 0x2eb3a: 0x6c3cc620, 0x2eb3b: 0x6c3cc820, - 0x2eb3c: 0x6c3cca20, 0x2eb3d: 0x6c3ccc20, 0x2eb3e: 0x6c3cce20, 0x2eb3f: 0x6c3cd020, - // Block 0xbad, offset 0x2eb40 - 0x2eb40: 0x6c3cd220, 0x2eb41: 0x6c3cd420, 0x2eb42: 0x6c5a4820, 0x2eb43: 0x6c5a4a20, - 0x2eb44: 0x6c5a4c20, 0x2eb45: 0x6c5a4e20, 0x2eb46: 0x6c5a5020, 0x2eb47: 0x6c5a5220, - 0x2eb48: 0x6c5a5420, 0x2eb49: 0x6c5a5620, 0x2eb4a: 0x6c5a5820, 0x2eb4b: 0x6c5a5a20, - 0x2eb4c: 0x6c5a5c20, 0x2eb4d: 0x6c5a5e20, 0x2eb4e: 0x6c5a6020, 0x2eb4f: 0x6c5a6220, - 0x2eb50: 0x6c5a6420, 0x2eb51: 0x6c5a6620, 0x2eb52: 0x6c5a6820, 0x2eb53: 0x6c5a6a20, - 0x2eb54: 0x6c5a6c20, 0x2eb55: 0x6c5a6e20, 0x2eb56: 0x6c5a7020, 0x2eb57: 0x6c5a7220, - 0x2eb58: 0x6c5a7420, 0x2eb59: 0x6c5a7620, 0x2eb5a: 0x6c5a7820, 0x2eb5b: 0x6c5a7a20, - 0x2eb5c: 0x6c5a7c20, 0x2eb5d: 0x6c7d1220, 0x2eb5e: 0x6c7d1420, 0x2eb5f: 0x6c7d1620, - 0x2eb60: 0x6c7d1820, 0x2eb61: 0x6c7d1a20, 0x2eb62: 0x6c7d1c20, 0x2eb63: 0x6c7d1e20, - 0x2eb64: 0x6c7d2020, 0x2eb65: 0x6c7d2220, 0x2eb66: 0x6ca5ce20, 0x2eb67: 0x6c7d2420, - 0x2eb68: 0x6c7d2620, 0x2eb69: 0x6c7d2820, 0x2eb6a: 0x6c7d2a20, 0x2eb6b: 0x6c7d2c20, - 0x2eb6c: 0x6c7d2e20, 0x2eb6d: 0x6c7d3020, 0x2eb6e: 0x6c7d3220, 0x2eb6f: 0x6c7d3420, - 0x2eb70: 0x6c7d3620, 0x2eb71: 0x6c7d3820, 0x2eb72: 0x6c7d3a20, 0x2eb73: 0x6c7d3c20, - 0x2eb74: 0x6c7d3e20, 0x2eb75: 0x6c7d4020, 0x2eb76: 0x6c7d4220, 0x2eb77: 0x6c7d4420, - 0x2eb78: 0x6c7d4620, 0x2eb79: 0x6c7d4820, 0x2eb7a: 0x6c7d4a20, 0x2eb7b: 0x6c7d4c20, - 0x2eb7c: 0x6c7d4e20, 0x2eb7d: 0x6c7d5020, 0x2eb7e: 0x6c7d5220, 0x2eb7f: 0x6c7d5420, - // Block 0xbae, offset 0x2eb80 - 0x2eb80: 0x6c7d5620, 0x2eb81: 0x6c7d5820, 0x2eb82: 0x6ca5de20, 0x2eb83: 0x6ca5e020, - 0x2eb84: 0x6ca5e220, 0x2eb85: 0x6ca5e420, 0x2eb86: 0x6ca5e620, 0x2eb87: 0x6ca5e820, - 0x2eb88: 0x6ca5ea20, 0x2eb89: 0x6ca5ec20, 0x2eb8a: 0x6ca5ee20, 0x2eb8b: 0x6ca5f020, - 0x2eb8c: 0x6ca5f220, 0x2eb8d: 0x6ca5f420, 0x2eb8e: 0x6ca5f620, 0x2eb8f: 0x6ca5f820, - 0x2eb90: 0x6ca5fa20, 0x2eb91: 0x6ca5fc20, 0x2eb92: 0x6ca5fe20, 0x2eb93: 0x6ca60020, - 0x2eb94: 0x6ca60220, 0x2eb95: 0x6ca60420, 0x2eb96: 0x6ca60620, 0x2eb97: 0x6ca60820, - 0x2eb98: 0x6ca60a20, 0x2eb99: 0x6ca60c20, 0x2eb9a: 0x6ca60e20, 0x2eb9b: 0x6ca61020, - 0x2eb9c: 0x6cd43420, 0x2eb9d: 0x6cd43620, 0x2eb9e: 0x6cd43820, 0x2eb9f: 0x6cd43a20, - 0x2eba0: 0x6cd43c20, 0x2eba1: 0x6cd43e20, 0x2eba2: 0x6cd44020, 0x2eba3: 0x6cd44220, - 0x2eba4: 0x6cd44420, 0x2eba5: 0x6cd44620, 0x2eba6: 0x6cd44820, 0x2eba7: 0x6cd44a20, - 0x2eba8: 0x6cd44c20, 0x2eba9: 0x6cd44e20, 0x2ebaa: 0x6cd45020, 0x2ebab: 0x6cd45220, - 0x2ebac: 0x6cd45420, 0x2ebad: 0x6cd45620, 0x2ebae: 0x6cd45820, 0x2ebaf: 0x6cd45a20, - 0x2ebb0: 0x6cd45c20, 0x2ebb1: 0x6cd45e20, 0x2ebb2: 0x6cd46020, 0x2ebb3: 0x6cd46220, - 0x2ebb4: 0x6cd46420, 0x2ebb5: 0x6cd46620, 0x2ebb6: 0x6cd46820, 0x2ebb7: 0x6cd46a20, - 0x2ebb8: 0x6d025220, 0x2ebb9: 0x6d025420, 0x2ebba: 0x6d025620, 0x2ebbb: 0x6d025820, - 0x2ebbc: 0x6d025a20, 0x2ebbd: 0x6d025c20, 0x2ebbe: 0x6d300e20, 0x2ebbf: 0x6d025e20, - // Block 0xbaf, offset 0x2ebc0 - 0x2ebc0: 0x6d026020, 0x2ebc1: 0x6d026220, 0x2ebc2: 0x6d026420, 0x2ebc3: 0x6d026620, - 0x2ebc4: 0x6d026820, 0x2ebc5: 0x6d026a20, 0x2ebc6: 0x6d026c20, 0x2ebc7: 0x6d026e20, - 0x2ebc8: 0x6d027020, 0x2ebc9: 0x6d027220, 0x2ebca: 0x6d027420, 0x2ebcb: 0x6d027620, - 0x2ebcc: 0x6d027820, 0x2ebcd: 0x6d027a20, 0x2ebce: 0x6d027c20, 0x2ebcf: 0x6d027e20, - 0x2ebd0: 0x6d028020, 0x2ebd1: 0x6d028220, 0x2ebd2: 0x6d028420, 0x2ebd3: 0x6d028620, - 0x2ebd4: 0x6d028820, 0x2ebd5: 0x6d028a20, 0x2ebd6: 0x6d028c20, 0x2ebd7: 0x6d028e20, - 0x2ebd8: 0x6d029020, 0x2ebd9: 0x6d029220, 0x2ebda: 0x6d029420, 0x2ebdb: 0x6d029620, - 0x2ebdc: 0x6d029820, 0x2ebdd: 0x6d301020, 0x2ebde: 0x6d301220, 0x2ebdf: 0x6d301420, - 0x2ebe0: 0x6d301620, 0x2ebe1: 0x6d301820, 0x2ebe2: 0x6d301a20, 0x2ebe3: 0x6d301c20, - 0x2ebe4: 0x6d301e20, 0x2ebe5: 0x6d302020, 0x2ebe6: 0x6d302220, 0x2ebe7: 0x6d302420, - 0x2ebe8: 0x6d302620, 0x2ebe9: 0x6d302820, 0x2ebea: 0x6d302a20, 0x2ebeb: 0x6d302c20, - 0x2ebec: 0x6d302e20, 0x2ebed: 0x6d303020, 0x2ebee: 0x6d303220, 0x2ebef: 0x6d303420, - 0x2ebf0: 0x6d029a20, 0x2ebf1: 0x6d303620, 0x2ebf2: 0x6d303820, 0x2ebf3: 0x6d303a20, - 0x2ebf4: 0x6d303c20, 0x2ebf5: 0x6d303e20, 0x2ebf6: 0x6d304020, 0x2ebf7: 0x6d304220, - 0x2ebf8: 0x6d304420, 0x2ebf9: 0x6d304620, 0x2ebfa: 0x6d5d0620, 0x2ebfb: 0x6d5d0820, - 0x2ebfc: 0x6d5d0a20, 0x2ebfd: 0x6d5d0c20, 0x2ebfe: 0x6d5d0e20, 0x2ebff: 0x6d5d1020, - // Block 0xbb0, offset 0x2ec00 - 0x2ec00: 0x6d5d1220, 0x2ec01: 0x6d304820, 0x2ec02: 0x6d5d1420, 0x2ec03: 0x6d5d1620, - 0x2ec04: 0x6d5d1820, 0x2ec05: 0x6d5d1a20, 0x2ec06: 0x6d5d1c20, 0x2ec07: 0x6d5d1e20, - 0x2ec08: 0x6d5d2020, 0x2ec09: 0x6d5d2220, 0x2ec0a: 0x6d5d2420, 0x2ec0b: 0x6d5d2620, - 0x2ec0c: 0x6d5d2820, 0x2ec0d: 0x6d5d2a20, 0x2ec0e: 0x6d5d2c20, 0x2ec0f: 0x6d5d2e20, - 0x2ec10: 0x6d5d3020, 0x2ec11: 0x6d5d3220, 0x2ec12: 0x6d5d3420, 0x2ec13: 0x6d5d3620, - 0x2ec14: 0x6d5d3820, 0x2ec15: 0x6d5d3a20, 0x2ec16: 0x6d876620, 0x2ec17: 0x6d5d3c20, - 0x2ec18: 0x6d5d3e20, 0x2ec19: 0x6d5d4020, 0x2ec1a: 0x6d877a20, 0x2ec1b: 0x6d877c20, - 0x2ec1c: 0x6d876820, 0x2ec1d: 0x6d877e20, 0x2ec1e: 0x6d878020, 0x2ec1f: 0x6d878220, - 0x2ec20: 0x6d878420, 0x2ec21: 0x6d878620, 0x2ec22: 0x6d878820, 0x2ec23: 0x6d878a20, - 0x2ec24: 0x6d5d4220, 0x2ec25: 0x6d878c20, 0x2ec26: 0x6d878e20, 0x2ec27: 0x6d879020, - 0x2ec28: 0x6d879220, 0x2ec29: 0x6d879420, 0x2ec2a: 0x6d879620, 0x2ec2b: 0x6d879820, - 0x2ec2c: 0x6d879a20, 0x2ec2d: 0x6d879c20, 0x2ec2e: 0x6d879e20, 0x2ec2f: 0x6dac1c20, - 0x2ec30: 0x6dac1e20, 0x2ec31: 0x6dac2020, 0x2ec32: 0x6dac2220, 0x2ec33: 0x6dac2420, - 0x2ec34: 0x6dac2620, 0x2ec35: 0x6dac2820, 0x2ec36: 0x6dac2a20, 0x2ec37: 0x6dac2c20, - 0x2ec38: 0x6dac2e20, 0x2ec39: 0x6dac3020, 0x2ec3a: 0x6dac3220, 0x2ec3b: 0x6dac3420, - 0x2ec3c: 0x6dac3620, 0x2ec3d: 0x6dac3820, 0x2ec3e: 0x6dac3a20, 0x2ec3f: 0x6dac3c20, - // Block 0xbb1, offset 0x2ec40 - 0x2ec40: 0x6dac3e20, 0x2ec41: 0x6dac4020, 0x2ec42: 0x6dac4220, 0x2ec43: 0x6dac4420, - 0x2ec44: 0x6dac4620, 0x2ec45: 0x6dac4820, 0x2ec46: 0x6dcc5020, 0x2ec47: 0x6dcc5220, - 0x2ec48: 0x6dcc5420, 0x2ec49: 0x6dcc5620, 0x2ec4a: 0x6dcc5820, 0x2ec4b: 0x6dcc5a20, - 0x2ec4c: 0x6dcc5c20, 0x2ec4d: 0x6dcc5e20, 0x2ec4e: 0x6dcc6020, 0x2ec4f: 0x6dcc6220, - 0x2ec50: 0x6dcc6420, 0x2ec51: 0x6dcc6620, 0x2ec52: 0x6dcc6820, 0x2ec53: 0x6dcc6a20, - 0x2ec54: 0x6dcc6c20, 0x2ec55: 0x6dcc6e20, 0x2ec56: 0x6dcc7020, 0x2ec57: 0x6de76c20, - 0x2ec58: 0x6de76e20, 0x2ec59: 0x6de77020, 0x2ec5a: 0x6de77220, 0x2ec5b: 0x6de77420, - 0x2ec5c: 0x6de77620, 0x2ec5d: 0x6de77820, 0x2ec5e: 0x6de77a20, 0x2ec5f: 0x6de77c20, - 0x2ec60: 0x6de77e20, 0x2ec61: 0x6de78020, 0x2ec62: 0x6dfdf220, 0x2ec63: 0x6dfdf420, - 0x2ec64: 0x6dfdf620, 0x2ec65: 0x6dfdf820, 0x2ec66: 0x6dfdfa20, 0x2ec67: 0x6dfdfc20, - 0x2ec68: 0x6dfdfe20, 0x2ec69: 0x6dfe0020, 0x2ec6a: 0x6dfe0220, 0x2ec6b: 0x6dfe0420, - 0x2ec6c: 0x6dfe0620, 0x2ec6d: 0x6e109420, 0x2ec6e: 0x6e109620, 0x2ec6f: 0x6e109820, - 0x2ec70: 0x6e109a20, 0x2ec71: 0x6e109c20, 0x2ec72: 0x6e109e20, 0x2ec73: 0x6e10a020, - 0x2ec74: 0x6e10a220, 0x2ec75: 0x6e1f3820, 0x2ec76: 0x6e2a8820, 0x2ec77: 0x6e2a8a20, - 0x2ec78: 0x6e332620, 0x2ec79: 0x6e394220, 0x2ec7a: 0x6c0a3420, 0x2ec7b: 0x6c04fe20, - 0x2ec7c: 0x6c13f620, 0x2ec7d: 0x6c254e20, 0x2ec7e: 0x6c3cee20, 0x2ec7f: 0x6c3cf020, - // Block 0xbb2, offset 0x2ec80 - 0x2ec80: 0x6c3cf220, 0x2ec81: 0x6c3cf420, 0x2ec82: 0x6c3cf620, 0x2ec83: 0x6c3cf820, - 0x2ec84: 0x6c5ac620, 0x2ec85: 0x6c5ac820, 0x2ec86: 0x6c5aca20, 0x2ec87: 0x6c5acc20, - 0x2ec88: 0x6c5ace20, 0x2ec89: 0x6c5ad020, 0x2ec8a: 0x6c5ad220, 0x2ec8b: 0x6c5ad420, - 0x2ec8c: 0x6c5ad620, 0x2ec8d: 0x6c5ad820, 0x2ec8e: 0x6c5ada20, 0x2ec8f: 0x6c7dc420, - 0x2ec90: 0x6c7dc620, 0x2ec91: 0x6c7dc820, 0x2ec92: 0x6c7dca20, 0x2ec93: 0x6c7dcc20, - 0x2ec94: 0x6c7dce20, 0x2ec95: 0x6c7dd020, 0x2ec96: 0x6c7dd220, 0x2ec97: 0x6c7dd420, - 0x2ec98: 0x6c7dd620, 0x2ec99: 0x6c7dd820, 0x2ec9a: 0x6c7dda20, 0x2ec9b: 0x6c7ddc20, - 0x2ec9c: 0x6c7dde20, 0x2ec9d: 0x6c7de020, 0x2ec9e: 0x6c7de220, 0x2ec9f: 0x6c7de420, - 0x2eca0: 0x6c7de620, 0x2eca1: 0x6ca68a20, 0x2eca2: 0x6c7de820, 0x2eca3: 0x6ca69220, - 0x2eca4: 0x6ca69420, 0x2eca5: 0x6ca69620, 0x2eca6: 0x6cd4c020, 0x2eca7: 0x6ca69820, - 0x2eca8: 0x6ca69a20, 0x2eca9: 0x6ca69c20, 0x2ecaa: 0x6ca69e20, 0x2ecab: 0x6ca6a020, - 0x2ecac: 0x6ca6a220, 0x2ecad: 0x6ca6a420, 0x2ecae: 0x6ca6a620, 0x2ecaf: 0x6ca6a820, - 0x2ecb0: 0x6cd4c220, 0x2ecb1: 0x6cd4c420, 0x2ecb2: 0x6cd4c620, 0x2ecb3: 0x6cd4c820, - 0x2ecb4: 0x6cd4ca20, 0x2ecb5: 0x6cd4cc20, 0x2ecb6: 0x6cd4ce20, 0x2ecb7: 0x6cd4d020, - 0x2ecb8: 0x6cd4d220, 0x2ecb9: 0x6d031820, 0x2ecba: 0x6d031a20, 0x2ecbb: 0x6d031c20, - 0x2ecbc: 0x6d031e20, 0x2ecbd: 0x6d032020, 0x2ecbe: 0x6d032220, 0x2ecbf: 0x6d032420, - // Block 0xbb3, offset 0x2ecc0 - 0x2ecc0: 0x6d032620, 0x2ecc1: 0x6d032820, 0x2ecc2: 0x6d032a20, 0x2ecc3: 0x6d032c20, - 0x2ecc4: 0x6cd4d420, 0x2ecc5: 0x6d032e20, 0x2ecc6: 0x6d033020, 0x2ecc7: 0x6d30be20, - 0x2ecc8: 0x6d30c020, 0x2ecc9: 0x6d30c220, 0x2ecca: 0x6d30c420, 0x2eccb: 0x6d30c620, - 0x2eccc: 0x6d30c820, 0x2eccd: 0x6d30ca20, 0x2ecce: 0x6d30cc20, 0x2eccf: 0x6d30ce20, - 0x2ecd0: 0x6d30d020, 0x2ecd1: 0x6d30d220, 0x2ecd2: 0x6d30d420, 0x2ecd3: 0x6d30d620, - 0x2ecd4: 0x6d30d820, 0x2ecd5: 0x6d30da20, 0x2ecd6: 0x6d30dc20, 0x2ecd7: 0x6d30de20, - 0x2ecd8: 0x6d30e020, 0x2ecd9: 0x6d30e220, 0x2ecda: 0x6d5d8c20, 0x2ecdb: 0x6d5d8e20, - 0x2ecdc: 0x6d5d9020, 0x2ecdd: 0x6d5d9220, 0x2ecde: 0x6d5d9420, 0x2ecdf: 0x6d5d9620, - 0x2ece0: 0x6d5d9820, 0x2ece1: 0x6d5d9a20, 0x2ece2: 0x6d5d9c20, 0x2ece3: 0x6d5d9e20, - 0x2ece4: 0x6d87fe20, 0x2ece5: 0x6d880020, 0x2ece6: 0x6d880220, 0x2ece7: 0x6daca020, - 0x2ece8: 0x6daca220, 0x2ece9: 0x6d880420, 0x2ecea: 0x6daca420, 0x2eceb: 0x6daca620, - 0x2ecec: 0x6dcca420, 0x2eced: 0x6dcca620, 0x2ecee: 0x6dcca820, 0x2ecef: 0x6dccaa20, - 0x2ecf0: 0x6de7ac20, 0x2ecf1: 0x6de7ae20, 0x2ecf2: 0x6dfe3a20, 0x2ecf3: 0x6e1f5620, - 0x2ecf4: 0x6e1f5820, 0x2ecf5: 0x6e2aa020, 0x2ecf6: 0x6e333020, 0x2ecf7: 0x6e333220, - 0x2ecf8: 0x6c0a3820, 0x2ecf9: 0x6c5b2a20, 0x2ecfa: 0x6c5b2c20, 0x2ecfb: 0x6ca6f420, - 0x2ecfc: 0x6cd52620, 0x2ecfd: 0x6d037620, 0x2ecfe: 0x6c0a3c20, 0x2ecff: 0x6c256820, - // Block 0xbb4, offset 0x2ed00 - 0x2ed00: 0x6c256a20, 0x2ed01: 0x6c256c20, 0x2ed02: 0x6c256e20, 0x2ed03: 0x6c257020, - 0x2ed04: 0x6c3d3a20, 0x2ed05: 0x6c3d3c20, 0x2ed06: 0x6c3d3e20, 0x2ed07: 0x6c3d4020, - 0x2ed08: 0x6c3d4220, 0x2ed09: 0x6c3d4420, 0x2ed0a: 0x6c3d4620, 0x2ed0b: 0x6c5b3e20, - 0x2ed0c: 0x6c5b4020, 0x2ed0d: 0x6c5b4220, 0x2ed0e: 0x6c5b4420, 0x2ed0f: 0x6c5b4620, - 0x2ed10: 0x6c5b4820, 0x2ed11: 0x6c5b4a20, 0x2ed12: 0x6c5b4c20, 0x2ed13: 0x6c5b4e20, - 0x2ed14: 0x6c5b5020, 0x2ed15: 0x6c5b5220, 0x2ed16: 0x6c5b5420, 0x2ed17: 0x6c5b5620, - 0x2ed18: 0x6c7e3820, 0x2ed19: 0x6c7e3a20, 0x2ed1a: 0x6c7e3c20, 0x2ed1b: 0x6c7e3e20, - 0x2ed1c: 0x6c7e4020, 0x2ed1d: 0x6c7e4220, 0x2ed1e: 0x6c7e4420, 0x2ed1f: 0x6c7e4620, - 0x2ed20: 0x6c7e4820, 0x2ed21: 0x6c7e4a20, 0x2ed22: 0x6c7e4c20, 0x2ed23: 0x6c7e4e20, - 0x2ed24: 0x6c7e5020, 0x2ed25: 0x6c7e5220, 0x2ed26: 0x6c7e5420, 0x2ed27: 0x6c7e5620, - 0x2ed28: 0x6c7e5820, 0x2ed29: 0x6c7e5a20, 0x2ed2a: 0x6c7e5c20, 0x2ed2b: 0x6c7e5e20, - 0x2ed2c: 0x6c7e6020, 0x2ed2d: 0x6c7e6220, 0x2ed2e: 0x6c7e6420, 0x2ed2f: 0x6c7e6620, - 0x2ed30: 0x6c7e6820, 0x2ed31: 0x6ca71a20, 0x2ed32: 0x6ca71c20, 0x2ed33: 0x6ca71e20, - 0x2ed34: 0x6ca72020, 0x2ed35: 0x6ca72220, 0x2ed36: 0x6ca72420, 0x2ed37: 0x6ca72620, - 0x2ed38: 0x6ca72820, 0x2ed39: 0x6ca72a20, 0x2ed3a: 0x6ca72c20, 0x2ed3b: 0x6ca72e20, - 0x2ed3c: 0x6ca73020, 0x2ed3d: 0x6ca73220, 0x2ed3e: 0x6ca73420, 0x2ed3f: 0x6cd54020, - // Block 0xbb5, offset 0x2ed40 - 0x2ed40: 0x6cd54220, 0x2ed41: 0x6cd54420, 0x2ed42: 0x6cd54620, 0x2ed43: 0x6cd54820, - 0x2ed44: 0x6cd54a20, 0x2ed45: 0x6cd54c20, 0x2ed46: 0x6ca73620, 0x2ed47: 0x6cd54e20, - 0x2ed48: 0x6cd55020, 0x2ed49: 0x6cd55220, 0x2ed4a: 0x6cd55420, 0x2ed4b: 0x6cd55620, - 0x2ed4c: 0x6cd55820, 0x2ed4d: 0x6cd55a20, 0x2ed4e: 0x6cd55c20, 0x2ed4f: 0x6d039420, - 0x2ed50: 0x6d039620, 0x2ed51: 0x6d039820, 0x2ed52: 0x6d039a20, 0x2ed53: 0x6d039c20, - 0x2ed54: 0x6d039e20, 0x2ed55: 0x6d03a020, 0x2ed56: 0x6d03a220, 0x2ed57: 0x6d03a420, - 0x2ed58: 0x6d03a620, 0x2ed59: 0x6d03a820, 0x2ed5a: 0x6d03aa20, 0x2ed5b: 0x6d03ac20, - 0x2ed5c: 0x6d03ae20, 0x2ed5d: 0x6d03b020, 0x2ed5e: 0x6d03b220, 0x2ed5f: 0x6d03b420, - 0x2ed60: 0x6d03b620, 0x2ed61: 0x6d03b820, 0x2ed62: 0x6d03ba20, 0x2ed63: 0x6d03bc20, - 0x2ed64: 0x6d03be20, 0x2ed65: 0x6d03c020, 0x2ed66: 0x6d313220, 0x2ed67: 0x6d313420, - 0x2ed68: 0x6d313620, 0x2ed69: 0x6d313820, 0x2ed6a: 0x6d313a20, 0x2ed6b: 0x6d313c20, - 0x2ed6c: 0x6d313e20, 0x2ed6d: 0x6d314020, 0x2ed6e: 0x6d314220, 0x2ed6f: 0x6d314420, - 0x2ed70: 0x6d314620, 0x2ed71: 0x6d314820, 0x2ed72: 0x6d314a20, 0x2ed73: 0x6d314c20, - 0x2ed74: 0x6d5dee20, 0x2ed75: 0x6d31c220, 0x2ed76: 0x6d5df020, 0x2ed77: 0x6d5df220, - 0x2ed78: 0x6d5df420, 0x2ed79: 0x6d5df620, 0x2ed7a: 0x6d5df820, 0x2ed7b: 0x6d5dfa20, - 0x2ed7c: 0x6d5dfc20, 0x2ed7d: 0x6d5dfe20, 0x2ed7e: 0x6d5e0020, 0x2ed7f: 0x6d5e0220, - // Block 0xbb6, offset 0x2ed80 - 0x2ed80: 0x6d5e0420, 0x2ed81: 0x6d5e0620, 0x2ed82: 0x6d5e0820, 0x2ed83: 0x6d5e0a20, - 0x2ed84: 0x6d884220, 0x2ed85: 0x6d884420, 0x2ed86: 0x6d884620, 0x2ed87: 0x6d884820, - 0x2ed88: 0x6d884a20, 0x2ed89: 0x6dacd420, 0x2ed8a: 0x6d314e20, 0x2ed8b: 0x6d884c20, - 0x2ed8c: 0x6d884e20, 0x2ed8d: 0x6d885020, 0x2ed8e: 0x6d885220, 0x2ed8f: 0x6d885420, - 0x2ed90: 0x6d885620, 0x2ed91: 0x6d885820, 0x2ed92: 0x6d885a20, 0x2ed93: 0x6d88ba20, - 0x2ed94: 0x6dacd620, 0x2ed95: 0x6dacd820, 0x2ed96: 0x6dacda20, 0x2ed97: 0x6dacdc20, - 0x2ed98: 0x6dacde20, 0x2ed99: 0x6dace020, 0x2ed9a: 0x6dace220, 0x2ed9b: 0x6dace420, - 0x2ed9c: 0x6dace620, 0x2ed9d: 0x6dace820, 0x2ed9e: 0x6dacea20, 0x2ed9f: 0x6dccce20, - 0x2eda0: 0x6dccd020, 0x2eda1: 0x6dccd220, 0x2eda2: 0x6dccd420, 0x2eda3: 0x6dccd620, - 0x2eda4: 0x6de7bc20, 0x2eda5: 0x6de7be20, 0x2eda6: 0x6de7c020, 0x2eda7: 0x6de7c220, - 0x2eda8: 0x6de7c420, 0x2eda9: 0x6de7c620, 0x2edaa: 0x6de7c820, 0x2edab: 0x6de7ca20, - 0x2edac: 0x6dfe4a20, 0x2edad: 0x6dfe4c20, 0x2edae: 0x6dfe4e20, 0x2edaf: 0x6dfe5020, - 0x2edb0: 0x6e1f6a20, 0x2edb1: 0x6e1f7420, 0x2edb2: 0x6e333e20, 0x2edb3: 0x6e333c20, - 0x2edb4: 0x6c0a4020, 0x2edb5: 0x6c140c20, 0x2edb6: 0x6c257c20, 0x2edb7: 0x6c257e20, - 0x2edb8: 0x6c3d6a20, 0x2edb9: 0x6c3d6c20, 0x2edba: 0x6c3d6e20, 0x2edbb: 0x6c3d7020, - 0x2edbc: 0x6c5b9a20, 0x2edbd: 0x6c5b9c20, 0x2edbe: 0x6c5b9e20, 0x2edbf: 0x6c5ba020, - // Block 0xbb7, offset 0x2edc0 - 0x2edc0: 0x6c5ba220, 0x2edc1: 0x6c5ba420, 0x2edc2: 0x6c5ba620, 0x2edc3: 0x6c5ba820, - 0x2edc4: 0x6c7eac20, 0x2edc5: 0x6c7eae20, 0x2edc6: 0x6c7eb020, 0x2edc7: 0x6c7eb220, - 0x2edc8: 0x6c7eb420, 0x2edc9: 0x6c7eb620, 0x2edca: 0x6c7eb820, 0x2edcb: 0x6c7eba20, - 0x2edcc: 0x6c7ebc20, 0x2edcd: 0x6c7ebe20, 0x2edce: 0x6c7ec020, 0x2edcf: 0x6ca78620, - 0x2edd0: 0x6ca78820, 0x2edd1: 0x6ca78a20, 0x2edd2: 0x6ca78c20, 0x2edd3: 0x6ca78e20, - 0x2edd4: 0x6ca79020, 0x2edd5: 0x6ca79220, 0x2edd6: 0x6cd5ac20, 0x2edd7: 0x6cd5ae20, - 0x2edd8: 0x6cd5b020, 0x2edd9: 0x6cd5b220, 0x2edda: 0x6ca7c420, 0x2eddb: 0x6cd5b420, - 0x2eddc: 0x6cd5b620, 0x2eddd: 0x6cd5b820, 0x2edde: 0x6d043220, 0x2eddf: 0x6d043420, - 0x2ede0: 0x6d043620, 0x2ede1: 0x6d043820, 0x2ede2: 0x6d043a20, 0x2ede3: 0x6d043c20, - 0x2ede4: 0x6d043e20, 0x2ede5: 0x6d044020, 0x2ede6: 0x6d044220, 0x2ede7: 0x6d044420, - 0x2ede8: 0x6d31c820, 0x2ede9: 0x6d31ca20, 0x2edea: 0x6d31cc20, 0x2edeb: 0x6d31ce20, - 0x2edec: 0x6d31d020, 0x2eded: 0x6d31d220, 0x2edee: 0x6d5e7020, 0x2edef: 0x6d5e7220, - 0x2edf0: 0x6d5e7420, 0x2edf1: 0x6d5e7620, 0x2edf2: 0x6d5e7820, 0x2edf3: 0x6d5e7a20, - 0x2edf4: 0x6d5e7c20, 0x2edf5: 0x6d88c820, 0x2edf6: 0x6d88ca20, 0x2edf7: 0x6d88cc20, - 0x2edf8: 0x6d88ce20, 0x2edf9: 0x6d88d020, 0x2edfa: 0x6d88d220, 0x2edfb: 0x6d88d420, - 0x2edfc: 0x6d88d620, 0x2edfd: 0x6d88d820, 0x2edfe: 0x6dad5020, 0x2edff: 0x6dad5220, - // Block 0xbb8, offset 0x2ee00 - 0x2ee00: 0x6dad5420, 0x2ee01: 0x6dad5620, 0x2ee02: 0x6dad5820, 0x2ee03: 0x6e10de20, - 0x2ee04: 0x6dcd2020, 0x2ee05: 0x6dcd2220, 0x2ee06: 0x6de7f620, 0x2ee07: 0x6dfe8620, - 0x2ee08: 0x6e10e020, 0x2ee09: 0x6e10e220, 0x2ee0a: 0x6e1f7820, 0x2ee0b: 0x6c0a4420, - 0x2ee0c: 0x6c258a20, 0x2ee0d: 0x6c258c20, 0x2ee0e: 0x6c3d9020, 0x2ee0f: 0x6c3d9220, - 0x2ee10: 0x6c5bd620, 0x2ee11: 0x6c5bd820, 0x2ee12: 0x6c5bda20, 0x2ee13: 0x6c5bdc20, - 0x2ee14: 0x6c5bde20, 0x2ee15: 0x6c5be020, 0x2ee16: 0x6c5be220, 0x2ee17: 0x6c5be420, - 0x2ee18: 0x6c7efe20, 0x2ee19: 0x6c7f0020, 0x2ee1a: 0x6c7f0220, 0x2ee1b: 0x6c7f0420, - 0x2ee1c: 0x6c7f0620, 0x2ee1d: 0x6c7f0820, 0x2ee1e: 0x6c7f0a20, 0x2ee1f: 0x6cb6ae20, - 0x2ee20: 0x6cb6b020, 0x2ee21: 0x6ca7c820, 0x2ee22: 0x6cd60e20, 0x2ee23: 0x6cd61020, - 0x2ee24: 0x6cd61220, 0x2ee25: 0x6cd61420, 0x2ee26: 0x6cd61620, 0x2ee27: 0x6cd61820, - 0x2ee28: 0x6d048e20, 0x2ee29: 0x6d049020, 0x2ee2a: 0x6d049220, 0x2ee2b: 0x6d049420, - 0x2ee2c: 0x6d320820, 0x2ee2d: 0x6d320a20, 0x2ee2e: 0x6d322e20, 0x2ee2f: 0x6d320c20, - 0x2ee30: 0x6d320e20, 0x2ee31: 0x6d892220, 0x2ee32: 0x6dad8a20, 0x2ee33: 0x6dad8c20, - 0x2ee34: 0x6dad8e20, 0x2ee35: 0x6dcd3a20, 0x2ee36: 0x6dfe9a20, 0x2ee37: 0x6dfe9c20, - 0x2ee38: 0x6e1f7e20, 0x2ee39: 0x6c141020, 0x2ee3a: 0x6c3d9a20, 0x2ee3b: 0x6c3d9c20, - 0x2ee3c: 0x6c5bf820, 0x2ee3d: 0x6c5bfa20, 0x2ee3e: 0x6c5bfc20, 0x2ee3f: 0x6c5bfe20, - // Block 0xbb9, offset 0x2ee40 - 0x2ee40: 0x6c5c0020, 0x2ee41: 0x6c5c0220, 0x2ee42: 0x6c5c0420, 0x2ee43: 0x6c5c0620, - 0x2ee44: 0x6c7fa820, 0x2ee45: 0x6c7f4020, 0x2ee46: 0x6c7f4220, 0x2ee47: 0x6c7f4420, - 0x2ee48: 0x6c7f4620, 0x2ee49: 0x6c7f4820, 0x2ee4a: 0x6c7f4a20, 0x2ee4b: 0x6c7f4c20, - 0x2ee4c: 0x6c7f4e20, 0x2ee4d: 0x6c7f5020, 0x2ee4e: 0x6c7f5220, 0x2ee4f: 0x6c7f5420, - 0x2ee50: 0x6c7f5620, 0x2ee51: 0x6c7f5820, 0x2ee52: 0x6c7f5a20, 0x2ee53: 0x6c7f5c20, - 0x2ee54: 0x6c7f5e20, 0x2ee55: 0x6c7f6020, 0x2ee56: 0x6ca7fa20, 0x2ee57: 0x6ca7fc20, - 0x2ee58: 0x6ca7fe20, 0x2ee59: 0x6ca80020, 0x2ee5a: 0x6ca80220, 0x2ee5b: 0x6ca80420, - 0x2ee5c: 0x6ca80620, 0x2ee5d: 0x6ca80820, 0x2ee5e: 0x6ca80a20, 0x2ee5f: 0x6ca80c20, - 0x2ee60: 0x6ca80e20, 0x2ee61: 0x6ca81020, 0x2ee62: 0x6ca81220, 0x2ee63: 0x6ca81420, - 0x2ee64: 0x6ca81620, 0x2ee65: 0x6ca81820, 0x2ee66: 0x6ca81a20, 0x2ee67: 0x6ca81c20, - 0x2ee68: 0x6ca81e20, 0x2ee69: 0x6ca82020, 0x2ee6a: 0x6ca82220, 0x2ee6b: 0x6ca82420, - 0x2ee6c: 0x6ca82620, 0x2ee6d: 0x6ca82820, 0x2ee6e: 0x6ca82a20, 0x2ee6f: 0x6ca82c20, - 0x2ee70: 0x6ca82e20, 0x2ee71: 0x6ca83020, 0x2ee72: 0x6ca83220, 0x2ee73: 0x6ca83420, - 0x2ee74: 0x6ca83620, 0x2ee75: 0x6ca83820, 0x2ee76: 0x6ca83a20, 0x2ee77: 0x6ca83c20, - 0x2ee78: 0x6ca83e20, 0x2ee79: 0x6ca84020, 0x2ee7a: 0x6ca84220, 0x2ee7b: 0x6ca84420, - 0x2ee7c: 0x6ca84620, 0x2ee7d: 0x6ca84820, 0x2ee7e: 0x6ca84a20, 0x2ee7f: 0x6cd65220, - // Block 0xbba, offset 0x2ee80 - 0x2ee80: 0x6cd65420, 0x2ee81: 0x6cd65620, 0x2ee82: 0x6cd65820, 0x2ee83: 0x6cd65a20, - 0x2ee84: 0x6cd65c20, 0x2ee85: 0x6cd65e20, 0x2ee86: 0x6cd66020, 0x2ee87: 0x6cd66220, - 0x2ee88: 0x6cd66420, 0x2ee89: 0x6cd66620, 0x2ee8a: 0x6cd66820, 0x2ee8b: 0x6cd66a20, - 0x2ee8c: 0x6cd66c20, 0x2ee8d: 0x6cd66e20, 0x2ee8e: 0x6cd67020, 0x2ee8f: 0x6cd67220, - 0x2ee90: 0x6cd67420, 0x2ee91: 0x6cd67620, 0x2ee92: 0x6cd67820, 0x2ee93: 0x6cd67a20, - 0x2ee94: 0x6cd67c20, 0x2ee95: 0x6cd67e20, 0x2ee96: 0x6cd68020, 0x2ee97: 0x6cd68220, - 0x2ee98: 0x6cd68420, 0x2ee99: 0x6cd68620, 0x2ee9a: 0x6cd68820, 0x2ee9b: 0x6cd68a20, - 0x2ee9c: 0x6cd68c20, 0x2ee9d: 0x6cd68e20, 0x2ee9e: 0x6d04ce20, 0x2ee9f: 0x6d04d020, - 0x2eea0: 0x6d04d220, 0x2eea1: 0x6d04d420, 0x2eea2: 0x6d04d620, 0x2eea3: 0x6d04d820, - 0x2eea4: 0x6d04da20, 0x2eea5: 0x6d04dc20, 0x2eea6: 0x6d04de20, 0x2eea7: 0x6d04e020, - 0x2eea8: 0x6d04e220, 0x2eea9: 0x6d04e420, 0x2eeaa: 0x6d04e620, 0x2eeab: 0x6d04e820, - 0x2eeac: 0x6cd6de20, 0x2eead: 0x6d04ea20, 0x2eeae: 0x6d04ec20, 0x2eeaf: 0x6d04ee20, - 0x2eeb0: 0x6d04f020, 0x2eeb1: 0x6d04f220, 0x2eeb2: 0x6d04f420, 0x2eeb3: 0x6d04f620, - 0x2eeb4: 0x6d04f820, 0x2eeb5: 0x6d323020, 0x2eeb6: 0x6d04fa20, 0x2eeb7: 0x6d04fc20, - 0x2eeb8: 0x6d04fe20, 0x2eeb9: 0x6d050020, 0x2eeba: 0x6d050220, 0x2eebb: 0x6d050420, - 0x2eebc: 0x6d050620, 0x2eebd: 0x6d050820, 0x2eebe: 0x6d050a20, 0x2eebf: 0x6d050c20, - // Block 0xbbb, offset 0x2eec0 - 0x2eec0: 0x6d050e20, 0x2eec1: 0x6d324c20, 0x2eec2: 0x6d324e20, 0x2eec3: 0x6d325020, - 0x2eec4: 0x6d325220, 0x2eec5: 0x6d325420, 0x2eec6: 0x6d325620, 0x2eec7: 0x6d325820, - 0x2eec8: 0x6d325a20, 0x2eec9: 0x6d325c20, 0x2eeca: 0x6d325e20, 0x2eecb: 0x6d326020, - 0x2eecc: 0x6d326220, 0x2eecd: 0x6d326420, 0x2eece: 0x6d326620, 0x2eecf: 0x6d326820, - 0x2eed0: 0x6d326a20, 0x2eed1: 0x6d326c20, 0x2eed2: 0x6d326e20, 0x2eed3: 0x6d327020, - 0x2eed4: 0x6d327220, 0x2eed5: 0x6d327420, 0x2eed6: 0x6d327620, 0x2eed7: 0x6d327820, - 0x2eed8: 0x6d327a20, 0x2eed9: 0x6d327c20, 0x2eeda: 0x6d327e20, 0x2eedb: 0x6d328020, - 0x2eedc: 0x6d328220, 0x2eedd: 0x6d328420, 0x2eede: 0x6d328620, 0x2eedf: 0x6d328820, - 0x2eee0: 0x6d328a20, 0x2eee1: 0x6d328c20, 0x2eee2: 0x6d328e20, 0x2eee3: 0x6d329020, - 0x2eee4: 0x6d329220, 0x2eee5: 0x6d329420, 0x2eee6: 0x6d329620, 0x2eee7: 0x6d329820, - 0x2eee8: 0x6d329a20, 0x2eee9: 0x6d329c20, 0x2eeea: 0x6d329e20, 0x2eeeb: 0x6d32a020, - 0x2eeec: 0x6d5f0420, 0x2eeed: 0x6d5f0620, 0x2eeee: 0x6d5f0820, 0x2eeef: 0x6d5f0a20, - 0x2eef0: 0x6d5f0c20, 0x2eef1: 0x6d5f0e20, 0x2eef2: 0x6d5f1020, 0x2eef3: 0x6d5f1220, - 0x2eef4: 0x6d5f1420, 0x2eef5: 0x6d5f1620, 0x2eef6: 0x6d5f1820, 0x2eef7: 0x6d5f1a20, - 0x2eef8: 0x6d333620, 0x2eef9: 0x6d5f1c20, 0x2eefa: 0x6d5f1e20, 0x2eefb: 0x6d5f2020, - 0x2eefc: 0x6d5f2220, 0x2eefd: 0x6d5f2420, 0x2eefe: 0x6d5f2620, 0x2eeff: 0x6d5f2820, - // Block 0xbbc, offset 0x2ef00 - 0x2ef00: 0x6d051020, 0x2ef01: 0x6d5f2a20, 0x2ef02: 0x6d5f2c20, 0x2ef03: 0x6d5f2e20, - 0x2ef04: 0x6d5f3020, 0x2ef05: 0x6d5f3220, 0x2ef06: 0x6d5f3420, 0x2ef07: 0x6d5f3620, - 0x2ef08: 0x6d5f3820, 0x2ef09: 0x6d894a20, 0x2ef0a: 0x6d5f3a20, 0x2ef0b: 0x6d5f3c20, - 0x2ef0c: 0x6d5f3e20, 0x2ef0d: 0x6d5f4020, 0x2ef0e: 0x6d5f4220, 0x2ef0f: 0x6d5f4420, - 0x2ef10: 0x6d5f4620, 0x2ef11: 0x6d5f4820, 0x2ef12: 0x6d5f4a20, 0x2ef13: 0x6d5f4c20, - 0x2ef14: 0x6d894c20, 0x2ef15: 0x6d894e20, 0x2ef16: 0x6d895020, 0x2ef17: 0x6d895220, - 0x2ef18: 0x6d895420, 0x2ef19: 0x6d895620, 0x2ef1a: 0x6d895820, 0x2ef1b: 0x6d895a20, - 0x2ef1c: 0x6d895c20, 0x2ef1d: 0x6d895e20, 0x2ef1e: 0x6d896020, 0x2ef1f: 0x6d896220, - 0x2ef20: 0x6d896420, 0x2ef21: 0x6d896620, 0x2ef22: 0x6d896820, 0x2ef23: 0x6d896a20, - 0x2ef24: 0x6d896c20, 0x2ef25: 0x6d896e20, 0x2ef26: 0x6d897020, 0x2ef27: 0x6d897220, - 0x2ef28: 0x6d897420, 0x2ef29: 0x6d897620, 0x2ef2a: 0x6d897820, 0x2ef2b: 0x6d897a20, - 0x2ef2c: 0x6d897c20, 0x2ef2d: 0x6d897e20, 0x2ef2e: 0x6d898020, 0x2ef2f: 0x6d898220, - 0x2ef30: 0x6dadc820, 0x2ef31: 0x6dadca20, 0x2ef32: 0x6dadcc20, 0x2ef33: 0x6dadce20, - 0x2ef34: 0x6dadd020, 0x2ef35: 0x6dadd220, 0x2ef36: 0x6dadd420, 0x2ef37: 0x6dadd620, - 0x2ef38: 0x6dadd820, 0x2ef39: 0x6d8a5020, 0x2ef3a: 0x6dadda20, 0x2ef3b: 0x6daddc20, - 0x2ef3c: 0x6dadde20, 0x2ef3d: 0x6dade020, 0x2ef3e: 0x6dade220, 0x2ef3f: 0x6dade420, - // Block 0xbbd, offset 0x2ef40 - 0x2ef40: 0x6dade620, 0x2ef41: 0x6dade820, 0x2ef42: 0x6dadea20, 0x2ef43: 0x6dadec20, - 0x2ef44: 0x6dadee20, 0x2ef45: 0x6dadf020, 0x2ef46: 0x6dadf220, 0x2ef47: 0x6dadf420, - 0x2ef48: 0x6dadf620, 0x2ef49: 0x6dadf820, 0x2ef4a: 0x6dadfa20, 0x2ef4b: 0x6dadfc20, - 0x2ef4c: 0x6dadfe20, 0x2ef4d: 0x6dae0020, 0x2ef4e: 0x6dae0220, 0x2ef4f: 0x6dae0420, - 0x2ef50: 0x6dae0620, 0x2ef51: 0x6d898420, 0x2ef52: 0x6dae0820, 0x2ef53: 0x6dae0a20, - 0x2ef54: 0x6dae0c20, 0x2ef55: 0x6dada620, 0x2ef56: 0x6dae0e20, 0x2ef57: 0x6dae1020, - 0x2ef58: 0x6daec420, 0x2ef59: 0x6dcd7220, 0x2ef5a: 0x6dcd7420, 0x2ef5b: 0x6dcd7620, - 0x2ef5c: 0x6dcd7820, 0x2ef5d: 0x6dcd7a20, 0x2ef5e: 0x6dcd7c20, 0x2ef5f: 0x6dcd7e20, - 0x2ef60: 0x6dcd8020, 0x2ef61: 0x6dcd8220, 0x2ef62: 0x6dcd8420, 0x2ef63: 0x6dcd8620, - 0x2ef64: 0x6dcd8820, 0x2ef65: 0x6dcd8a20, 0x2ef66: 0x6dcd8c20, 0x2ef67: 0x6dcd8e20, - 0x2ef68: 0x6dcd9020, 0x2ef69: 0x6dcd9220, 0x2ef6a: 0x6dcd9420, 0x2ef6b: 0x6dcd9620, - 0x2ef6c: 0x6de81220, 0x2ef6d: 0x6dcd9820, 0x2ef6e: 0x6dcd9a20, 0x2ef6f: 0x6dcd9c20, - 0x2ef70: 0x6dcd9e20, 0x2ef71: 0x6dcda020, 0x2ef72: 0x6dcda220, 0x2ef73: 0x6de82820, - 0x2ef74: 0x6de82a20, 0x2ef75: 0x6de82c20, 0x2ef76: 0x6de82e20, 0x2ef77: 0x6de83020, - 0x2ef78: 0x6de83220, 0x2ef79: 0x6de83420, 0x2ef7a: 0x6de83620, 0x2ef7b: 0x6de83820, - 0x2ef7c: 0x6de83a20, 0x2ef7d: 0x6de83c20, 0x2ef7e: 0x6de83e20, 0x2ef7f: 0x6de84020, - // Block 0xbbe, offset 0x2ef80 - 0x2ef80: 0x6de84220, 0x2ef81: 0x6de84420, 0x2ef82: 0x6de84620, 0x2ef83: 0x6dfeac20, - 0x2ef84: 0x6dfeae20, 0x2ef85: 0x6dfeb020, 0x2ef86: 0x6dfeb220, 0x2ef87: 0x6dfeb420, - 0x2ef88: 0x6dfeb620, 0x2ef89: 0x6dfeb820, 0x2ef8a: 0x6dfeba20, 0x2ef8b: 0x6dfebc20, - 0x2ef8c: 0x6dfebe20, 0x2ef8d: 0x6dfec020, 0x2ef8e: 0x6dfec220, 0x2ef8f: 0x6dfec420, - 0x2ef90: 0x6e111820, 0x2ef91: 0x6e111a20, 0x2ef92: 0x6e111c20, 0x2ef93: 0x6e111e20, - 0x2ef94: 0x6e112020, 0x2ef95: 0x6dfec620, 0x2ef96: 0x6e110620, 0x2ef97: 0x6e1f8e20, - 0x2ef98: 0x6e1f9020, 0x2ef99: 0x6e1f9220, 0x2ef9a: 0x6e1f9420, 0x2ef9b: 0x6e1f9620, - 0x2ef9c: 0x6e1f9820, 0x2ef9d: 0x6e1f9a20, 0x2ef9e: 0x6e2ac420, 0x2ef9f: 0x6e1f9c20, - 0x2efa0: 0x6e1f9e20, 0x2efa1: 0x6e1fa020, 0x2efa2: 0x6e2acc20, 0x2efa3: 0x6e2ace20, - 0x2efa4: 0x6e2ad020, 0x2efa5: 0x6e2ad220, 0x2efa6: 0x6e2ad420, 0x2efa7: 0x6e2ad620, - 0x2efa8: 0x6e2ad820, 0x2efa9: 0x6e396020, 0x2efaa: 0x6e335420, 0x2efab: 0x6e396220, - 0x2efac: 0x6e396420, 0x2efad: 0x6e396620, 0x2efae: 0x6e396820, 0x2efaf: 0x6e3dae20, - 0x2efb0: 0x6e3db020, 0x2efb1: 0x6e453420, 0x2efb2: 0x6e463620, 0x2efb3: 0x6c141420, - 0x2efb4: 0x6c3da820, 0x2efb5: 0x6c3daa20, 0x2efb6: 0x6c3dac20, 0x2efb7: 0x6c5c3220, - 0x2efb8: 0x6c5c3420, 0x2efb9: 0x6c5c3620, 0x2efba: 0x6c5c3820, 0x2efbb: 0x6c5c3a20, - 0x2efbc: 0x6c5c3c20, 0x2efbd: 0x6c5c3e20, 0x2efbe: 0x6c5c4020, 0x2efbf: 0x6c5c4220, - // Block 0xbbf, offset 0x2efc0 - 0x2efc0: 0x6c5c4420, 0x2efc1: 0x6c5c4620, 0x2efc2: 0x6c5c4820, 0x2efc3: 0x6c7fae20, - 0x2efc4: 0x6c7fb020, 0x2efc5: 0x6c7fb220, 0x2efc6: 0x6c7fb420, 0x2efc7: 0x6c7fb620, - 0x2efc8: 0x6c7fb820, 0x2efc9: 0x6c7fba20, 0x2efca: 0x6c7fbc20, 0x2efcb: 0x6c7fbe20, - 0x2efcc: 0x6c7fc020, 0x2efcd: 0x6c7fc220, 0x2efce: 0x6c7fc420, 0x2efcf: 0x6c7fc620, - 0x2efd0: 0x6c7fc820, 0x2efd1: 0x6c7fca20, 0x2efd2: 0x6ca89c20, 0x2efd3: 0x6ca89e20, - 0x2efd4: 0x6ca8a020, 0x2efd5: 0x6ca8a220, 0x2efd6: 0x6ca8a420, 0x2efd7: 0x6ca8a620, - 0x2efd8: 0x6ca8a820, 0x2efd9: 0x6ca8aa20, 0x2efda: 0x6ca8ac20, 0x2efdb: 0x6ca8ae20, - 0x2efdc: 0x6ca8b020, 0x2efdd: 0x6ca8b220, 0x2efde: 0x6cd6ec20, 0x2efdf: 0x6cd6ee20, - 0x2efe0: 0x6cd6f020, 0x2efe1: 0x6cd6f220, 0x2efe2: 0x6cd6f420, 0x2efe3: 0x6ca8b420, - 0x2efe4: 0x6cd6f620, 0x2efe5: 0x6cd6f820, 0x2efe6: 0x6cd6fa20, 0x2efe7: 0x6cd6fc20, - 0x2efe8: 0x6cd6fe20, 0x2efe9: 0x6cd70020, 0x2efea: 0x6cd70220, 0x2efeb: 0x6cd70420, - 0x2efec: 0x6cd70620, 0x2efed: 0x6cd70820, 0x2efee: 0x6d05a420, 0x2efef: 0x6d05a620, - 0x2eff0: 0x6d05a820, 0x2eff1: 0x6d05aa20, 0x2eff2: 0x6d05ac20, 0x2eff3: 0x6d05ae20, - 0x2eff4: 0x6d05b020, 0x2eff5: 0x6d05b220, 0x2eff6: 0x6d334420, 0x2eff7: 0x6d334620, - 0x2eff8: 0x6d334820, 0x2eff9: 0x6d334a20, 0x2effa: 0x6d334c20, 0x2effb: 0x6d334e20, - 0x2effc: 0x6d335020, 0x2effd: 0x6d335220, 0x2effe: 0x6d335420, 0x2efff: 0x6d335620, - // Block 0xbc0, offset 0x2f000 - 0x2f000: 0x6d05b420, 0x2f001: 0x6d335820, 0x2f002: 0x6d5ffc20, 0x2f003: 0x6d5ffe20, - 0x2f004: 0x6d600020, 0x2f005: 0x6d600220, 0x2f006: 0x6d600420, 0x2f007: 0x6d600620, - 0x2f008: 0x6d600820, 0x2f009: 0x6d600a20, 0x2f00a: 0x6d600c20, 0x2f00b: 0x6d600e20, - 0x2f00c: 0x6d601020, 0x2f00d: 0x6d601220, 0x2f00e: 0x6d601420, 0x2f00f: 0x6d8a5820, - 0x2f010: 0x6d8a5a20, 0x2f011: 0x6d8a5c20, 0x2f012: 0x6d8a5e20, 0x2f013: 0x6d8a6020, - 0x2f014: 0x6d8a6220, 0x2f015: 0x6d8a6420, 0x2f016: 0x6d8a6620, 0x2f017: 0x6d8a6820, - 0x2f018: 0x6d8a6a20, 0x2f019: 0x6daed420, 0x2f01a: 0x6daed620, 0x2f01b: 0x6daed820, - 0x2f01c: 0x6daeda20, 0x2f01d: 0x6daedc20, 0x2f01e: 0x6daede20, 0x2f01f: 0x6daee020, - 0x2f020: 0x6daee220, 0x2f021: 0x6daee420, 0x2f022: 0x6daee620, 0x2f023: 0x6dce7220, - 0x2f024: 0x6dce7420, 0x2f025: 0x6dce7620, 0x2f026: 0x6dce7820, 0x2f027: 0x6dce7a20, - 0x2f028: 0x6daee820, 0x2f029: 0x6de8c820, 0x2f02a: 0x6de8ca20, 0x2f02b: 0x6de8cc20, - 0x2f02c: 0x6de8ce20, 0x2f02d: 0x6de8d020, 0x2f02e: 0x6dff2020, 0x2f02f: 0x6dff2220, - 0x2f030: 0x6dff2420, 0x2f031: 0x6e1fe420, 0x2f032: 0x6e118c20, 0x2f033: 0x6e3dc220, - 0x2f034: 0x6e1fe620, 0x2f035: 0x6e2b0820, 0x2f036: 0x6e398820, 0x2f037: 0x6e409e20, - 0x2f038: 0x6c141620, 0x2f039: 0x6c141820, 0x2f03a: 0x6c259a20, 0x2f03b: 0x6c259c20, - 0x2f03c: 0x6c3dbc20, 0x2f03d: 0x6c3dbe20, 0x2f03e: 0x6c3dc020, 0x2f03f: 0x6c3dc220, - // Block 0xbc1, offset 0x2f040 - 0x2f040: 0x6c5c6620, 0x2f041: 0x6c5c6820, 0x2f042: 0x6c5c6a20, 0x2f043: 0x6c5c6c20, - 0x2f044: 0x6c5c6e20, 0x2f045: 0x6c5c7020, 0x2f046: 0x6c5c7220, 0x2f047: 0x6c5c7420, - 0x2f048: 0x6c5c7620, 0x2f049: 0x6c5c7820, 0x2f04a: 0x6c800a20, 0x2f04b: 0x6c800c20, - 0x2f04c: 0x6c800e20, 0x2f04d: 0x6c801020, 0x2f04e: 0x6c801220, 0x2f04f: 0x6c801420, - 0x2f050: 0x6c801620, 0x2f051: 0x6c801820, 0x2f052: 0x6c801a20, 0x2f053: 0x6c801c20, - 0x2f054: 0x6c801e20, 0x2f055: 0x6c802020, 0x2f056: 0x6c802220, 0x2f057: 0x6c802420, - 0x2f058: 0x6c802620, 0x2f059: 0x6c802820, 0x2f05a: 0x6c802a20, 0x2f05b: 0x6c802c20, - 0x2f05c: 0x6c802e20, 0x2f05d: 0x6c803020, 0x2f05e: 0x6c803220, 0x2f05f: 0x6c803420, - 0x2f060: 0x6c803620, 0x2f061: 0x6c803820, 0x2f062: 0x6c803a20, 0x2f063: 0x6c803c20, - 0x2f064: 0x6c803e20, 0x2f065: 0x6c804020, 0x2f066: 0x6c804220, 0x2f067: 0x6c804420, - 0x2f068: 0x6ca90c20, 0x2f069: 0x6ca90e20, 0x2f06a: 0x6cd74220, 0x2f06b: 0x6cd74420, - 0x2f06c: 0x6ca91020, 0x2f06d: 0x6ca91220, 0x2f06e: 0x6ca91420, 0x2f06f: 0x6ca91620, - 0x2f070: 0x6ca91820, 0x2f071: 0x6ca91a20, 0x2f072: 0x6ca91c20, 0x2f073: 0x6ca91e20, - 0x2f074: 0x6ca92020, 0x2f075: 0x6ca92220, 0x2f076: 0x6ca92420, 0x2f077: 0x6ca92620, - 0x2f078: 0x6ca92820, 0x2f079: 0x6ca92a20, 0x2f07a: 0x6ca92c20, 0x2f07b: 0x6ca92e20, - 0x2f07c: 0x6ca93020, 0x2f07d: 0x6ca93220, 0x2f07e: 0x6ca93420, 0x2f07f: 0x6ca93620, - // Block 0xbc2, offset 0x2f080 - 0x2f080: 0x6ca93820, 0x2f081: 0x6ca93a20, 0x2f082: 0x6ca93c20, 0x2f083: 0x6ca93e20, - 0x2f084: 0x6ca94020, 0x2f085: 0x6ca94220, 0x2f086: 0x6ca94420, 0x2f087: 0x6ca94620, - 0x2f088: 0x6ca94820, 0x2f089: 0x6ca94a20, 0x2f08a: 0x6ca94c20, 0x2f08b: 0x6ca94e20, - 0x2f08c: 0x6ca95020, 0x2f08d: 0x6cd75a20, 0x2f08e: 0x6cd75c20, 0x2f08f: 0x6cd75e20, - 0x2f090: 0x6cd76020, 0x2f091: 0x6cd76220, 0x2f092: 0x6cd76420, 0x2f093: 0x6cd76620, - 0x2f094: 0x6cd76820, 0x2f095: 0x6cd76a20, 0x2f096: 0x6cd76c20, 0x2f097: 0x6cd76e20, - 0x2f098: 0x6cd77020, 0x2f099: 0x6cd77220, 0x2f09a: 0x6cd77420, 0x2f09b: 0x6d061420, - 0x2f09c: 0x6cd77620, 0x2f09d: 0x6cd77820, 0x2f09e: 0x6cd77a20, 0x2f09f: 0x6cd77c20, - 0x2f0a0: 0x6cd77e20, 0x2f0a1: 0x6cd78020, 0x2f0a2: 0x6cd78220, 0x2f0a3: 0x6cd78420, - 0x2f0a4: 0x6cd78620, 0x2f0a5: 0x6cd78820, 0x2f0a6: 0x6cd78a20, 0x2f0a7: 0x6cd78c20, - 0x2f0a8: 0x6cd78e20, 0x2f0a9: 0x6cd79020, 0x2f0aa: 0x6cd79220, 0x2f0ab: 0x6cd79420, - 0x2f0ac: 0x6cd79620, 0x2f0ad: 0x6cd79820, 0x2f0ae: 0x6cd79a20, 0x2f0af: 0x6cd79c20, - 0x2f0b0: 0x6cd79e20, 0x2f0b1: 0x6cd7a020, 0x2f0b2: 0x6cd7a220, 0x2f0b3: 0x6cd7a420, - 0x2f0b4: 0x6cd7a620, 0x2f0b5: 0x6cd7a820, 0x2f0b6: 0x6cd7aa20, 0x2f0b7: 0x6cd7ac20, - 0x2f0b8: 0x6d061620, 0x2f0b9: 0x6d061820, 0x2f0ba: 0x6d061a20, 0x2f0bb: 0x6d061c20, - 0x2f0bc: 0x6d061e20, 0x2f0bd: 0x6d062020, 0x2f0be: 0x6cd80c20, 0x2f0bf: 0x6d062220, - // Block 0xbc3, offset 0x2f0c0 - 0x2f0c0: 0x6d062420, 0x2f0c1: 0x6d062620, 0x2f0c2: 0x6d062820, 0x2f0c3: 0x6d062a20, - 0x2f0c4: 0x6d062c20, 0x2f0c5: 0x6d062e20, 0x2f0c6: 0x6d063020, 0x2f0c7: 0x6d063220, - 0x2f0c8: 0x6d063420, 0x2f0c9: 0x6d063620, 0x2f0ca: 0x6d063820, 0x2f0cb: 0x6d063a20, - 0x2f0cc: 0x6d063c20, 0x2f0cd: 0x6d063e20, 0x2f0ce: 0x6d064020, 0x2f0cf: 0x6d064220, - 0x2f0d0: 0x6d064420, 0x2f0d1: 0x6d064620, 0x2f0d2: 0x6d064820, 0x2f0d3: 0x6d064a20, - 0x2f0d4: 0x6d064c20, 0x2f0d5: 0x6d064e20, 0x2f0d6: 0x6d33b420, 0x2f0d7: 0x6d065020, - 0x2f0d8: 0x6d065220, 0x2f0d9: 0x6d065420, 0x2f0da: 0x6d065620, 0x2f0db: 0x6d065820, - 0x2f0dc: 0x6d33d020, 0x2f0dd: 0x6d33d220, 0x2f0de: 0x6d33d420, 0x2f0df: 0x6d33d620, - 0x2f0e0: 0x6d33d820, 0x2f0e1: 0x6d33da20, 0x2f0e2: 0x6d33dc20, 0x2f0e3: 0x6d33de20, - 0x2f0e4: 0x6d33e020, 0x2f0e5: 0x6d33e220, 0x2f0e6: 0x6d33e420, 0x2f0e7: 0x6d33e620, - 0x2f0e8: 0x6d33e820, 0x2f0e9: 0x6d33ea20, 0x2f0ea: 0x6d33ec20, 0x2f0eb: 0x6d33ee20, - 0x2f0ec: 0x6d33f020, 0x2f0ed: 0x6d33f220, 0x2f0ee: 0x6d33f420, 0x2f0ef: 0x6d33f620, - 0x2f0f0: 0x6d33f820, 0x2f0f1: 0x6d33fa20, 0x2f0f2: 0x6d33fc20, 0x2f0f3: 0x6d33fe20, - 0x2f0f4: 0x6d340020, 0x2f0f5: 0x6d340220, 0x2f0f6: 0x6d340420, 0x2f0f7: 0x6d340620, - 0x2f0f8: 0x6d340820, 0x2f0f9: 0x6d340a20, 0x2f0fa: 0x6d340c20, 0x2f0fb: 0x6d340e20, - 0x2f0fc: 0x6d341020, 0x2f0fd: 0x6d341220, 0x2f0fe: 0x6d341420, 0x2f0ff: 0x6d341620, - // Block 0xbc4, offset 0x2f100 - 0x2f100: 0x6d341820, 0x2f101: 0x6d341a20, 0x2f102: 0x6d341c20, 0x2f103: 0x6d341e20, - 0x2f104: 0x6d342020, 0x2f105: 0x6d342220, 0x2f106: 0x6d342420, 0x2f107: 0x6d342620, - 0x2f108: 0x6d342820, 0x2f109: 0x6d342a20, 0x2f10a: 0x6d342c20, 0x2f10b: 0x6d342e20, - 0x2f10c: 0x6d343020, 0x2f10d: 0x6d343220, 0x2f10e: 0x6d343420, 0x2f10f: 0x6d343620, - 0x2f110: 0x6d33b620, 0x2f111: 0x6d343820, 0x2f112: 0x6d343a20, 0x2f113: 0x6d608820, - 0x2f114: 0x6d343c20, 0x2f115: 0x6d343e20, 0x2f116: 0x6d608a20, 0x2f117: 0x6d608c20, - 0x2f118: 0x6d608e20, 0x2f119: 0x6d609020, 0x2f11a: 0x6d609220, 0x2f11b: 0x6d609420, - 0x2f11c: 0x6d609620, 0x2f11d: 0x6d609820, 0x2f11e: 0x6d609a20, 0x2f11f: 0x6d609c20, - 0x2f120: 0x6d609e20, 0x2f121: 0x6d60a020, 0x2f122: 0x6d60a220, 0x2f123: 0x6d60a420, - 0x2f124: 0x6d60a620, 0x2f125: 0x6d60a820, 0x2f126: 0x6d60aa20, 0x2f127: 0x6d60ac20, - 0x2f128: 0x6d60ae20, 0x2f129: 0x6d60b020, 0x2f12a: 0x6d60b220, 0x2f12b: 0x6d60b420, - 0x2f12c: 0x6d60b620, 0x2f12d: 0x6d60b820, 0x2f12e: 0x6d60ba20, 0x2f12f: 0x6d60bc20, - 0x2f130: 0x6d60be20, 0x2f131: 0x6d60c020, 0x2f132: 0x6d60c220, 0x2f133: 0x6d60c420, - 0x2f134: 0x6d60c620, 0x2f135: 0x6d60c820, 0x2f136: 0x6d60ca20, 0x2f137: 0x6d60cc20, - 0x2f138: 0x6d60ce20, 0x2f139: 0x6d60d020, 0x2f13a: 0x6d60d220, 0x2f13b: 0x6d60d420, - 0x2f13c: 0x6d60d620, 0x2f13d: 0x6d60d820, 0x2f13e: 0x6d60da20, 0x2f13f: 0x6d60dc20, - // Block 0xbc5, offset 0x2f140 - 0x2f140: 0x6d60de20, 0x2f141: 0x6d60e020, 0x2f142: 0x6d60e220, 0x2f143: 0x6d60e420, - 0x2f144: 0x6d60e620, 0x2f145: 0x6d60e820, 0x2f146: 0x6d60ea20, 0x2f147: 0x6d60ec20, - 0x2f148: 0x6d8aba20, 0x2f149: 0x6d8abc20, 0x2f14a: 0x6d8abe20, 0x2f14b: 0x6d8ac020, - 0x2f14c: 0x6d8ac220, 0x2f14d: 0x6d8ac420, 0x2f14e: 0x6d8ac620, 0x2f14f: 0x6d8ac820, - 0x2f150: 0x6d8aca20, 0x2f151: 0x6d8acc20, 0x2f152: 0x6d8ace20, 0x2f153: 0x6d8ad020, - 0x2f154: 0x6d8ad220, 0x2f155: 0x6d8ad420, 0x2f156: 0x6d8ad620, 0x2f157: 0x6d8ad820, - 0x2f158: 0x6d8ada20, 0x2f159: 0x6d8adc20, 0x2f15a: 0x6d8ade20, 0x2f15b: 0x6d8ae020, - 0x2f15c: 0x6d8ae220, 0x2f15d: 0x6d8ae420, 0x2f15e: 0x6d8ae620, 0x2f15f: 0x6d8ae820, - 0x2f160: 0x6d8aea20, 0x2f161: 0x6d8aec20, 0x2f162: 0x6d8aee20, 0x2f163: 0x6d8af020, - 0x2f164: 0x6d8af220, 0x2f165: 0x6d8af420, 0x2f166: 0x6d8af620, 0x2f167: 0x6d8af820, - 0x2f168: 0x6d8afa20, 0x2f169: 0x6daf3420, 0x2f16a: 0x6daf3620, 0x2f16b: 0x6daf3820, - 0x2f16c: 0x6daf3a20, 0x2f16d: 0x6daf3c20, 0x2f16e: 0x6daf3e20, 0x2f16f: 0x6daf4020, - 0x2f170: 0x6daf4220, 0x2f171: 0x6daf4420, 0x2f172: 0x6daf4620, 0x2f173: 0x6daf4820, - 0x2f174: 0x6daf4a20, 0x2f175: 0x6daf4c20, 0x2f176: 0x6daf4e20, 0x2f177: 0x6daf5020, - 0x2f178: 0x6daf5220, 0x2f179: 0x6daf5420, 0x2f17a: 0x6daf5620, 0x2f17b: 0x6daf5820, - 0x2f17c: 0x6daf5a20, 0x2f17d: 0x6daf5c20, 0x2f17e: 0x6daf5e20, 0x2f17f: 0x6daf6020, - // Block 0xbc6, offset 0x2f180 - 0x2f180: 0x6daf6220, 0x2f181: 0x6daf6420, 0x2f182: 0x6daf6620, 0x2f183: 0x6daf6820, - 0x2f184: 0x6daf6a20, 0x2f185: 0x6daf6c20, 0x2f186: 0x6daf6e20, 0x2f187: 0x6daf7020, - 0x2f188: 0x6dafea20, 0x2f189: 0x6daf7220, 0x2f18a: 0x6daf7420, 0x2f18b: 0x6de91a20, - 0x2f18c: 0x6daf7620, 0x2f18d: 0x6daf7820, 0x2f18e: 0x6dcecc20, 0x2f18f: 0x6dcece20, - 0x2f190: 0x6dced020, 0x2f191: 0x6dced220, 0x2f192: 0x6dced420, 0x2f193: 0x6dced620, - 0x2f194: 0x6dced820, 0x2f195: 0x6dceda20, 0x2f196: 0x6dcedc20, 0x2f197: 0x6dcede20, - 0x2f198: 0x6dcee020, 0x2f199: 0x6dcee220, 0x2f19a: 0x6dcee420, 0x2f19b: 0x6dcee620, - 0x2f19c: 0x6dcee820, 0x2f19d: 0x6dceea20, 0x2f19e: 0x6dceec20, 0x2f19f: 0x6dceee20, - 0x2f1a0: 0x6dcef020, 0x2f1a1: 0x6dcef220, 0x2f1a2: 0x6dcef420, 0x2f1a3: 0x6dcef620, - 0x2f1a4: 0x6dcef820, 0x2f1a5: 0x6dcefa20, 0x2f1a6: 0x6de91c20, 0x2f1a7: 0x6dcefc20, - 0x2f1a8: 0x6de91e20, 0x2f1a9: 0x6de92020, 0x2f1aa: 0x6de92220, 0x2f1ab: 0x6de92420, - 0x2f1ac: 0x6de92620, 0x2f1ad: 0x6de92820, 0x2f1ae: 0x6de92a20, 0x2f1af: 0x6de92c20, - 0x2f1b0: 0x6de92e20, 0x2f1b1: 0x6dcefe20, 0x2f1b2: 0x6de93020, 0x2f1b3: 0x6de93220, - 0x2f1b4: 0x6de93420, 0x2f1b5: 0x6de93620, 0x2f1b6: 0x6de93820, 0x2f1b7: 0x6de93a20, - 0x2f1b8: 0x6de93c20, 0x2f1b9: 0x6de93e20, 0x2f1ba: 0x6de94020, 0x2f1bb: 0x6dff4220, - 0x2f1bc: 0x6dff4420, 0x2f1bd: 0x6dff4620, 0x2f1be: 0x6dff4820, 0x2f1bf: 0x6dff4a20, - // Block 0xbc7, offset 0x2f1c0 - 0x2f1c0: 0x6dff4c20, 0x2f1c1: 0x6dff4e20, 0x2f1c2: 0x6dff5020, 0x2f1c3: 0x6dff5220, - 0x2f1c4: 0x6e11aa20, 0x2f1c5: 0x6e11ac20, 0x2f1c6: 0x6e11ae20, 0x2f1c7: 0x6e11b020, - 0x2f1c8: 0x6e11b220, 0x2f1c9: 0x6e11b420, 0x2f1ca: 0x6e11b620, 0x2f1cb: 0x6e11b820, - 0x2f1cc: 0x6e11ba20, 0x2f1cd: 0x6e11bc20, 0x2f1ce: 0x6e11be20, 0x2f1cf: 0x6e11c020, - 0x2f1d0: 0x6e11c220, 0x2f1d1: 0x6e200820, 0x2f1d2: 0x6e200a20, 0x2f1d3: 0x6e2b1620, - 0x2f1d4: 0x6e2b1820, 0x2f1d5: 0x6e2b1a20, 0x2f1d6: 0x6e2b1c20, 0x2f1d7: 0x6e339220, - 0x2f1d8: 0x6e399820, 0x2f1d9: 0x6e399a20, 0x2f1da: 0x6e399c20, 0x2f1db: 0x6e399e20, - 0x2f1dc: 0x6e40a620, 0x2f1dd: 0x6e40a820, 0x2f1de: 0x6e445a20, 0x2f1df: 0x6c020020, - 0x2f1e0: 0x6c0a4620, 0x2f1e1: 0x6c141a20, 0x2f1e2: 0x6c141c20, 0x2f1e3: 0x6c141e20, - 0x2f1e4: 0x6c142020, 0x2f1e5: 0x6c142220, 0x2f1e6: 0x6c142420, 0x2f1e7: 0x6c142620, - 0x2f1e8: 0x6c142820, 0x2f1e9: 0x6c142a20, 0x2f1ea: 0x6c142c20, 0x2f1eb: 0x6c142e20, - 0x2f1ec: 0x6c25a020, 0x2f1ed: 0x6c25a220, 0x2f1ee: 0x6c25a420, 0x2f1ef: 0x6c25a620, - 0x2f1f0: 0x6c25a820, 0x2f1f1: 0x6c25aa20, 0x2f1f2: 0x6c25ac20, 0x2f1f3: 0x6c25ae20, - 0x2f1f4: 0x6c25b020, 0x2f1f5: 0x6c25b220, 0x2f1f6: 0x6c259e20, 0x2f1f7: 0x6c25b420, - 0x2f1f8: 0x6c25b620, 0x2f1f9: 0x6c25b820, 0x2f1fa: 0x6c25ba20, 0x2f1fb: 0x6c25bc20, - 0x2f1fc: 0x6c25be20, 0x2f1fd: 0x6c25c020, 0x2f1fe: 0x6c25c220, 0x2f1ff: 0x6c3dd620, - // Block 0xbc8, offset 0x2f200 - 0x2f200: 0x6c3dd820, 0x2f201: 0x6c3dda20, 0x2f202: 0x6c3ddc20, 0x2f203: 0x6c3dde20, - 0x2f204: 0x6c3de020, 0x2f205: 0x6c3de220, 0x2f206: 0x6c3de420, 0x2f207: 0x6c3de620, - 0x2f208: 0x6c3de820, 0x2f209: 0x6c3dea20, 0x2f20a: 0x6c3dec20, 0x2f20b: 0x6c3dee20, - 0x2f20c: 0x6c3df020, 0x2f20d: 0x6c3df220, 0x2f20e: 0x6c3df420, 0x2f20f: 0x6c3df620, - 0x2f210: 0x6c3df820, 0x2f211: 0x6c5c9a20, 0x2f212: 0x6c5c9c20, 0x2f213: 0x6c5c9e20, - 0x2f214: 0x6c5ca020, 0x2f215: 0x6c5ca220, 0x2f216: 0x6c5ca420, 0x2f217: 0x6c5ca620, - 0x2f218: 0x6c5ca820, 0x2f219: 0x6c5caa20, 0x2f21a: 0x6c5cac20, 0x2f21b: 0x6c5cae20, - 0x2f21c: 0x6c5cb020, 0x2f21d: 0x6c5cb220, 0x2f21e: 0x6c5cb420, 0x2f21f: 0x6c5cb620, - 0x2f220: 0x6c809e20, 0x2f221: 0x6c80a020, 0x2f222: 0x6c80a220, 0x2f223: 0x6c80a420, - 0x2f224: 0x6c80a620, 0x2f225: 0x6c80a820, 0x2f226: 0x6c80aa20, 0x2f227: 0x6c80ac20, - 0x2f228: 0x6c80ae20, 0x2f229: 0x6ca9a220, 0x2f22a: 0x6ca9a420, 0x2f22b: 0x6ca9a620, - 0x2f22c: 0x6ca9a820, 0x2f22d: 0x6ca9aa20, 0x2f22e: 0x6ca9ac20, 0x2f22f: 0x6ca9ae20, - 0x2f230: 0x6ca9b020, 0x2f231: 0x6ca9b220, 0x2f232: 0x6ca9b420, 0x2f233: 0x6ca9b620, - 0x2f234: 0x6ca9b820, 0x2f235: 0x6ca9ba20, 0x2f236: 0x6ca9bc20, 0x2f237: 0x6ca9be20, - 0x2f238: 0x6ca9c020, 0x2f239: 0x6ca9c220, 0x2f23a: 0x6ca9c420, 0x2f23b: 0x6ca9c620, - 0x2f23c: 0x6ca9c820, 0x2f23d: 0x6ca9ca20, 0x2f23e: 0x6ca9cc20, 0x2f23f: 0x6ca9ce20, - // Block 0xbc9, offset 0x2f240 - 0x2f240: 0x6ca9d020, 0x2f241: 0x6ca9d220, 0x2f242: 0x6cd81220, 0x2f243: 0x6cd81420, - 0x2f244: 0x6cd81620, 0x2f245: 0x6cd81820, 0x2f246: 0x6cd81a20, 0x2f247: 0x6cd81c20, - 0x2f248: 0x6cd81e20, 0x2f249: 0x6cd82020, 0x2f24a: 0x6cd82220, 0x2f24b: 0x6cd82420, - 0x2f24c: 0x6cd82620, 0x2f24d: 0x6cd82820, 0x2f24e: 0x6cd82a20, 0x2f24f: 0x6cd82c20, - 0x2f250: 0x6cd82e20, 0x2f251: 0x6cd83020, 0x2f252: 0x6cd83220, 0x2f253: 0x6cd83420, - 0x2f254: 0x6cd83620, 0x2f255: 0x6cd83820, 0x2f256: 0x6cd83a20, 0x2f257: 0x6cd83c20, - 0x2f258: 0x6cd83e20, 0x2f259: 0x6d06ce20, 0x2f25a: 0x6d06d020, 0x2f25b: 0x6d06d220, - 0x2f25c: 0x6d06d420, 0x2f25d: 0x6d06d620, 0x2f25e: 0x6d06d820, 0x2f25f: 0x6d06da20, - 0x2f260: 0x6d06dc20, 0x2f261: 0x6d06de20, 0x2f262: 0x6d06e020, 0x2f263: 0x6d06e220, - 0x2f264: 0x6d06e420, 0x2f265: 0x6d34c820, 0x2f266: 0x6d34ca20, 0x2f267: 0x6d34cc20, - 0x2f268: 0x6d34ce20, 0x2f269: 0x6d34d020, 0x2f26a: 0x6d34d220, 0x2f26b: 0x6d34d420, - 0x2f26c: 0x6d618020, 0x2f26d: 0x6d618220, 0x2f26e: 0x6d618420, 0x2f26f: 0x6d618620, - 0x2f270: 0x6d8b9620, 0x2f271: 0x6d8b9820, 0x2f272: 0x6d8b9a20, 0x2f273: 0x6d8b9c20, - 0x2f274: 0x6d8b9e20, 0x2f275: 0x6de9a220, 0x2f276: 0x6c143020, 0x2f277: 0x6c3e0020, - 0x2f278: 0x6c5cc620, 0x2f279: 0x6c80c620, 0x2f27a: 0x6c80c820, 0x2f27b: 0x6ca9ee20, - 0x2f27c: 0x6c80ca20, 0x2f27d: 0x6ca9f020, 0x2f27e: 0x6cd85420, 0x2f27f: 0x6cd85620, - // Block 0xbca, offset 0x2f280 - 0x2f280: 0x6cd85820, 0x2f281: 0x6d34e420, 0x2f282: 0x6d34e620, 0x2f283: 0x6d8ba820, - 0x2f284: 0x6daff420, 0x2f285: 0x6daff620, 0x2f286: 0x6daff820, 0x2f287: 0x6dcf7c20, - 0x2f288: 0x6dcf7e20, 0x2f289: 0x6dcf8020, 0x2f28a: 0x6de9a420, 0x2f28b: 0x6de9a620, - 0x2f28c: 0x6dff9020, 0x2f28d: 0x6e120220, 0x2f28e: 0x6e203a20, 0x2f28f: 0x6e203c20, - 0x2f290: 0x6e33a620, 0x2f291: 0x6c143420, 0x2f292: 0x6c0a4a20, 0x2f293: 0x6c050420, - 0x2f294: 0x6c3e0420, 0x2f295: 0x6c25dc20, 0x2f296: 0x6c3e0620, 0x2f297: 0x6c3e0820, - 0x2f298: 0x6c5cd620, 0x2f299: 0x6c3e2020, 0x2f29a: 0x6c5cd820, 0x2f29b: 0x6c80d820, - 0x2f29c: 0x6c80da20, 0x2f29d: 0x6c80dc20, 0x2f29e: 0x6c80de20, 0x2f29f: 0x6c80e020, - 0x2f2a0: 0x6c80e220, 0x2f2a1: 0x6c80e420, 0x2f2a2: 0x6c80e620, 0x2f2a3: 0x6caa0020, - 0x2f2a4: 0x6cd86820, 0x2f2a5: 0x6cd86a20, 0x2f2a6: 0x6cd86c20, 0x2f2a7: 0x6d070220, - 0x2f2a8: 0x6d070420, 0x2f2a9: 0x6d070620, 0x2f2aa: 0x6d070820, 0x2f2ab: 0x6d070a20, - 0x2f2ac: 0x6d070c20, 0x2f2ad: 0x6d070e20, 0x2f2ae: 0x6d071020, 0x2f2af: 0x6d350020, - 0x2f2b0: 0x6d350220, 0x2f2b1: 0x6d350420, 0x2f2b2: 0x6d071220, 0x2f2b3: 0x6d350620, - 0x2f2b4: 0x6d350820, 0x2f2b5: 0x6d61a420, 0x2f2b6: 0x6d61a620, 0x2f2b7: 0x6d61a820, - 0x2f2b8: 0x6d61aa20, 0x2f2b9: 0x6d8bbe20, 0x2f2ba: 0x6d8bc020, 0x2f2bb: 0x6d8bc220, - 0x2f2bc: 0x6d8bc420, 0x2f2bd: 0x6db00820, 0x2f2be: 0x6db00a20, 0x2f2bf: 0x6db00c20, - // Block 0xbcb, offset 0x2f2c0 - 0x2f2c0: 0x6dcf8a20, 0x2f2c1: 0x6db00e20, 0x2f2c2: 0x6dcf8e20, 0x2f2c3: 0x6de9b620, - 0x2f2c4: 0x6de9b820, 0x2f2c5: 0x6de9ba20, 0x2f2c6: 0x6de9bc20, 0x2f2c7: 0x6e204020, - 0x2f2c8: 0x6e33b020, 0x2f2c9: 0x6e33b220, 0x2f2ca: 0x6c143a20, 0x2f2cb: 0x6c3e2220, - 0x2f2cc: 0x6c3e2420, 0x2f2cd: 0x6c5cf620, 0x2f2ce: 0x6c5cf820, 0x2f2cf: 0x6c5cfa20, - 0x2f2d0: 0x6c812220, 0x2f2d1: 0x6c5cfc20, 0x2f2d2: 0x6c812a20, 0x2f2d3: 0x6c812c20, - 0x2f2d4: 0x6c812e20, 0x2f2d5: 0x6caa3220, 0x2f2d6: 0x6c813020, 0x2f2d7: 0x6c813220, - 0x2f2d8: 0x6c813420, 0x2f2d9: 0x6c813620, 0x2f2da: 0x6caa3420, 0x2f2db: 0x6caa3620, - 0x2f2dc: 0x6caa3820, 0x2f2dd: 0x6caa3a20, 0x2f2de: 0x6caa3c20, 0x2f2df: 0x6caa3e20, - 0x2f2e0: 0x6cd88820, 0x2f2e1: 0x6cd88a20, 0x2f2e2: 0x6cd88c20, 0x2f2e3: 0x6d074820, - 0x2f2e4: 0x6d074a20, 0x2f2e5: 0x6d074c20, 0x2f2e6: 0x6d074e20, 0x2f2e7: 0x6d075020, - 0x2f2e8: 0x6d075220, 0x2f2e9: 0x6d075420, 0x2f2ea: 0x6d075620, 0x2f2eb: 0x6d353820, - 0x2f2ec: 0x6d61cc20, 0x2f2ed: 0x6d61ce20, 0x2f2ee: 0x6d61d020, 0x2f2ef: 0x6d61d220, - 0x2f2f0: 0x6d61d420, 0x2f2f1: 0x6d8bf620, 0x2f2f2: 0x6d8bf820, 0x2f2f3: 0x6dcfac20, - 0x2f2f4: 0x6dcfae20, 0x2f2f5: 0x6dcfb020, 0x2f2f6: 0x6de9d620, 0x2f2f7: 0x6de9d820, - 0x2f2f8: 0x6de9da20, 0x2f2f9: 0x6de9dc20, 0x2f2fa: 0x6dffa220, 0x2f2fb: 0x6e121020, - 0x2f2fc: 0x6e121220, 0x2f2fd: 0x6c144220, 0x2f2fe: 0x6c5d0c20, 0x2f2ff: 0x6c5d0e20, - // Block 0xbcc, offset 0x2f300 - 0x2f300: 0x6c815a20, 0x2f301: 0x6c815c20, 0x2f302: 0x6c815e20, 0x2f303: 0x6c816020, - 0x2f304: 0x6c816220, 0x2f305: 0x6c816420, 0x2f306: 0x6c816620, 0x2f307: 0x6caa7c20, - 0x2f308: 0x6caa7e20, 0x2f309: 0x6caa8020, 0x2f30a: 0x6caa8220, 0x2f30b: 0x6caa8420, - 0x2f30c: 0x6caa8620, 0x2f30d: 0x6caa8820, 0x2f30e: 0x6caa8a20, 0x2f30f: 0x6caa8c20, - 0x2f310: 0x6caa8e20, 0x2f311: 0x6caa9020, 0x2f312: 0x6caa9220, 0x2f313: 0x6cd8b220, - 0x2f314: 0x6cd8b420, 0x2f315: 0x6cd8b620, 0x2f316: 0x6cd8b820, 0x2f317: 0x6cd8ba20, - 0x2f318: 0x6cd8bc20, 0x2f319: 0x6cd8be20, 0x2f31a: 0x6cd8c020, 0x2f31b: 0x6d078420, - 0x2f31c: 0x6d078620, 0x2f31d: 0x6d078820, 0x2f31e: 0x6d355a20, 0x2f31f: 0x6d355c20, - 0x2f320: 0x6d355e20, 0x2f321: 0x6d356020, 0x2f322: 0x6d356220, 0x2f323: 0x6d356420, - 0x2f324: 0x6d356620, 0x2f325: 0x6d358c20, 0x2f326: 0x6d61f620, 0x2f327: 0x6d61f820, - 0x2f328: 0x6d61fa20, 0x2f329: 0x6d61fc20, 0x2f32a: 0x6d61fe20, 0x2f32b: 0x6d620020, - 0x2f32c: 0x6d620220, 0x2f32d: 0x6d620420, 0x2f32e: 0x6d8c1020, 0x2f32f: 0x6d8c1220, - 0x2f330: 0x6d8c1420, 0x2f331: 0x6d8c1620, 0x2f332: 0x6db05020, 0x2f333: 0x6db05220, - 0x2f334: 0x6db05420, 0x2f335: 0x6db05620, 0x2f336: 0x6db05820, 0x2f337: 0x6dcfde20, - 0x2f338: 0x6dcfe020, 0x2f339: 0x6dcfe220, 0x2f33a: 0x6dcfe420, 0x2f33b: 0x6dcfe620, - 0x2f33c: 0x6db05a20, 0x2f33d: 0x6de9ec20, 0x2f33e: 0x6de9ee20, 0x2f33f: 0x6dffb420, - // Block 0xbcd, offset 0x2f340 - 0x2f340: 0x6dffb620, 0x2f341: 0x6c144420, 0x2f342: 0x6c050620, 0x2f343: 0x6c144620, - 0x2f344: 0x6c819020, 0x2f345: 0x6c3e3620, 0x2f346: 0x6c819220, 0x2f347: 0x6c5d3820, - 0x2f348: 0x6caab220, 0x2f349: 0x6caab420, 0x2f34a: 0x6c81a420, 0x2f34b: 0x6cd8f820, - 0x2f34c: 0x6c144820, 0x2f34d: 0x6c5d3e20, 0x2f34e: 0x6c5d4020, 0x2f34f: 0x6c5d4220, - 0x2f350: 0x6c5d4420, 0x2f351: 0x6c5d4620, 0x2f352: 0x6c144c20, 0x2f353: 0x6c3e3e20, - 0x2f354: 0x6c5d4a20, 0x2f355: 0x6c81aa20, 0x2f356: 0x6c81ac20, 0x2f357: 0x6c81ae20, - 0x2f358: 0x6c81b020, 0x2f359: 0x6c81b220, 0x2f35a: 0x6caabc20, 0x2f35b: 0x6caabe20, - 0x2f35c: 0x6caac020, 0x2f35d: 0x6caac220, 0x2f35e: 0x6caac420, 0x2f35f: 0x6caac620, - 0x2f360: 0x6cd8fe20, 0x2f361: 0x6d07b420, 0x2f362: 0x6d07b620, 0x2f363: 0x6d359e20, - 0x2f364: 0x6d35a020, 0x2f365: 0x6d35a220, 0x2f366: 0x6d625020, 0x2f367: 0x6d625220, - 0x2f368: 0x6d8c4a20, 0x2f369: 0x6d8c4c20, 0x2f36a: 0x6d8c4e20, 0x2f36b: 0x6db08420, - 0x2f36c: 0x6db08620, 0x2f36d: 0x6dd01220, 0x2f36e: 0x6dd01420, 0x2f36f: 0x6dffc420, - 0x2f370: 0x6e122e20, 0x2f371: 0x6e205820, 0x2f372: 0x6e205a20, 0x2f373: 0x6c145020, - 0x2f374: 0x6c25e620, 0x2f375: 0x6c3e4620, 0x2f376: 0x6c5d5220, 0x2f377: 0x6c5d5420, - 0x2f378: 0x6c81ba20, 0x2f379: 0x6c81bc20, 0x2f37a: 0x6c81be20, 0x2f37b: 0x6c81c020, - 0x2f37c: 0x6c81c220, 0x2f37d: 0x6c81c420, 0x2f37e: 0x6c81c620, 0x2f37f: 0x6c81c820, - // Block 0xbce, offset 0x2f380 - 0x2f380: 0x6c81ca20, 0x2f381: 0x6c81cc20, 0x2f382: 0x6c81ce20, 0x2f383: 0x6caad420, - 0x2f384: 0x6caad620, 0x2f385: 0x6caad820, 0x2f386: 0x6caada20, 0x2f387: 0x6caadc20, - 0x2f388: 0x6caade20, 0x2f389: 0x6caae020, 0x2f38a: 0x6caae220, 0x2f38b: 0x6caae420, - 0x2f38c: 0x6caae620, 0x2f38d: 0x6caae820, 0x2f38e: 0x6cd91020, 0x2f38f: 0x6cd91220, - 0x2f390: 0x6cd91420, 0x2f391: 0x6cd91620, 0x2f392: 0x6cd91820, 0x2f393: 0x6cd91a20, - 0x2f394: 0x6cd91c20, 0x2f395: 0x6d07c420, 0x2f396: 0x6d07c620, 0x2f397: 0x6d07c820, - 0x2f398: 0x6d07ca20, 0x2f399: 0x6d35c420, 0x2f39a: 0x6d35c620, 0x2f39b: 0x6d35c820, - 0x2f39c: 0x6d35ca20, 0x2f39d: 0x6d35cc20, 0x2f39e: 0x6d35ce20, 0x2f39f: 0x6d35d020, - 0x2f3a0: 0x6cd91e20, 0x2f3a1: 0x6d35d220, 0x2f3a2: 0x6d35d420, 0x2f3a3: 0x6d35d620, - 0x2f3a4: 0x6d626c20, 0x2f3a5: 0x6d626e20, 0x2f3a6: 0x6d627020, 0x2f3a7: 0x6d627220, - 0x2f3a8: 0x6d627420, 0x2f3a9: 0x6d627620, 0x2f3aa: 0x6d627820, 0x2f3ab: 0x6d627a20, - 0x2f3ac: 0x6d8c6820, 0x2f3ad: 0x6d8c6a20, 0x2f3ae: 0x6d8c9a20, 0x2f3af: 0x6db0a020, - 0x2f3b0: 0x6db0a220, 0x2f3b1: 0x6db0a420, 0x2f3b2: 0x6db0a620, 0x2f3b3: 0x6db0a820, - 0x2f3b4: 0x6db0cc20, 0x2f3b5: 0x6dd02c20, 0x2f3b6: 0x6dd02e20, 0x2f3b7: 0x6dd03020, - 0x2f3b8: 0x6dea0220, 0x2f3b9: 0x6dffc820, 0x2f3ba: 0x6dffca20, 0x2f3bb: 0x6dffcc20, - 0x2f3bc: 0x6dffce20, 0x2f3bd: 0x6e205e20, 0x2f3be: 0x6e206020, 0x2f3bf: 0x6c145220, - // Block 0xbcf, offset 0x2f3c0 - 0x2f3c0: 0x6c050820, 0x2f3c1: 0x6c81fa20, 0x2f3c2: 0x6c81fc20, 0x2f3c3: 0x6c3e5e20, - 0x2f3c4: 0x6d07fe20, 0x2f3c5: 0x6d080020, 0x2f3c6: 0x6d080220, 0x2f3c7: 0x6d360e20, - 0x2f3c8: 0x6d361020, 0x2f3c9: 0x6c145620, 0x2f3ca: 0x6c0a5420, 0x2f3cb: 0x6c145c20, - 0x2f3cc: 0x6c145e20, 0x2f3cd: 0x6c146020, 0x2f3ce: 0x6c146220, 0x2f3cf: 0x6c3e6020, - 0x2f3d0: 0x6c25ee20, 0x2f3d1: 0x6c25f020, 0x2f3d2: 0x6c25f220, 0x2f3d3: 0x6c25f420, - 0x2f3d4: 0x6c25f620, 0x2f3d5: 0x6c25f820, 0x2f3d6: 0x6c25fa20, 0x2f3d7: 0x6c25fc20, - 0x2f3d8: 0x6c25fe20, 0x2f3d9: 0x6c260020, 0x2f3da: 0x6c260220, 0x2f3db: 0x6c260420, - 0x2f3dc: 0x6c260620, 0x2f3dd: 0x6c260820, 0x2f3de: 0x6c260a20, 0x2f3df: 0x6c260c20, - 0x2f3e0: 0x6c260e20, 0x2f3e1: 0x6c3e7c20, 0x2f3e2: 0x6c3e7e20, 0x2f3e3: 0x6c3e8020, - 0x2f3e4: 0x6c3e8220, 0x2f3e5: 0x6c3e8420, 0x2f3e6: 0x6c3e8620, 0x2f3e7: 0x6c3e8820, - 0x2f3e8: 0x6c3e8a20, 0x2f3e9: 0x6c3e8c20, 0x2f3ea: 0x6c3e8e20, 0x2f3eb: 0x6c3e9020, - 0x2f3ec: 0x6c3e9220, 0x2f3ed: 0x6c3e9420, 0x2f3ee: 0x6c3e9620, 0x2f3ef: 0x6c3e9820, - 0x2f3f0: 0x6c3e9a20, 0x2f3f1: 0x6c3e9c20, 0x2f3f2: 0x6c3e9e20, 0x2f3f3: 0x6c3ea020, - 0x2f3f4: 0x6c3ea220, 0x2f3f5: 0x6c3ea420, 0x2f3f6: 0x6c3ea620, 0x2f3f7: 0x6c3ea820, - 0x2f3f8: 0x6c3eaa20, 0x2f3f9: 0x6c3eac20, 0x2f3fa: 0x6c3eae20, 0x2f3fb: 0x6c3eb020, - 0x2f3fc: 0x6c3eb220, 0x2f3fd: 0x6c3eb420, 0x2f3fe: 0x6c3eb620, 0x2f3ff: 0x6c3eb820, - // Block 0xbd0, offset 0x2f400 - 0x2f400: 0x6c3eba20, 0x2f401: 0x6c3ebc20, 0x2f402: 0x6c5d7220, 0x2f403: 0x6c5d7420, - 0x2f404: 0x6c5d7620, 0x2f405: 0x6c5d7820, 0x2f406: 0x6c5d7a20, 0x2f407: 0x6c5d7c20, - 0x2f408: 0x6c5d7e20, 0x2f409: 0x6c5d8020, 0x2f40a: 0x6c5d8220, 0x2f40b: 0x6c5d8420, - 0x2f40c: 0x6c5d8620, 0x2f40d: 0x6c5d8820, 0x2f40e: 0x6c5d8a20, 0x2f40f: 0x6c5d8c20, - 0x2f410: 0x6c5d8e20, 0x2f411: 0x6c5d9020, 0x2f412: 0x6c5d9220, 0x2f413: 0x6c5d9420, - 0x2f414: 0x6cd95220, 0x2f415: 0x6c5d9620, 0x2f416: 0x6c5d9820, 0x2f417: 0x6c5d9a20, - 0x2f418: 0x6c5d9c20, 0x2f419: 0x6c5d9e20, 0x2f41a: 0x6c5da020, 0x2f41b: 0x6c5da220, - 0x2f41c: 0x6c5da420, 0x2f41d: 0x6c5da620, 0x2f41e: 0x6c5da820, 0x2f41f: 0x6c5daa20, - 0x2f420: 0x6c5dac20, 0x2f421: 0x6c5dae20, 0x2f422: 0x6c5db020, 0x2f423: 0x6c5db220, - 0x2f424: 0x6c5db420, 0x2f425: 0x6c5db620, 0x2f426: 0x6c5db820, 0x2f427: 0x6c5dba20, - 0x2f428: 0x6c5dbc20, 0x2f429: 0x6c5dbe20, 0x2f42a: 0x6c5dc020, 0x2f42b: 0x6c5dc220, - 0x2f42c: 0x6cab1020, 0x2f42d: 0x6c821220, 0x2f42e: 0x6c821420, 0x2f42f: 0x6c821620, - 0x2f430: 0x6c821820, 0x2f431: 0x6c821a20, 0x2f432: 0x6c821c20, 0x2f433: 0x6c821e20, - 0x2f434: 0x6c822020, 0x2f435: 0x6c822220, 0x2f436: 0x6c822420, 0x2f437: 0x6c822620, - 0x2f438: 0x6c822820, 0x2f439: 0x6c822a20, 0x2f43a: 0x6c822c20, 0x2f43b: 0x6c822e20, - 0x2f43c: 0x6c823020, 0x2f43d: 0x6c823220, 0x2f43e: 0x6cd95420, 0x2f43f: 0x6c823420, - // Block 0xbd1, offset 0x2f440 - 0x2f440: 0x6c823620, 0x2f441: 0x6c823820, 0x2f442: 0x6c823a20, 0x2f443: 0x6c823c20, - 0x2f444: 0x6c823e20, 0x2f445: 0x6c824020, 0x2f446: 0x6c824220, 0x2f447: 0x6c824420, - 0x2f448: 0x6c824620, 0x2f449: 0x6c5dc420, 0x2f44a: 0x6c824820, 0x2f44b: 0x6c824a20, - 0x2f44c: 0x6c824c20, 0x2f44d: 0x6c824e20, 0x2f44e: 0x6c825020, 0x2f44f: 0x6c825220, - 0x2f450: 0x6c825420, 0x2f451: 0x6c825620, 0x2f452: 0x6c825820, 0x2f453: 0x6c825a20, - 0x2f454: 0x6cd95620, 0x2f455: 0x6cab2c20, 0x2f456: 0x6cab2e20, 0x2f457: 0x6cab3020, - 0x2f458: 0x6cab3220, 0x2f459: 0x6cab3420, 0x2f45a: 0x6cab3620, 0x2f45b: 0x6cab3820, - 0x2f45c: 0x6cab3a20, 0x2f45d: 0x6cab3c20, 0x2f45e: 0x6cab3e20, 0x2f45f: 0x6cab4020, - 0x2f460: 0x6cd95820, 0x2f461: 0x6cab4220, 0x2f462: 0x6cab4420, 0x2f463: 0x6cab4620, - 0x2f464: 0x6cab4820, 0x2f465: 0x6cab4a20, 0x2f466: 0x6cab4c20, 0x2f467: 0x6cab4e20, - 0x2f468: 0x6cab5020, 0x2f469: 0x6cab5220, 0x2f46a: 0x6cab5420, 0x2f46b: 0x6cab5620, - 0x2f46c: 0x6cab5820, 0x2f46d: 0x6cab5a20, 0x2f46e: 0x6cab5c20, 0x2f46f: 0x6cab5e20, - 0x2f470: 0x6cab6020, 0x2f471: 0x6cab6220, 0x2f472: 0x6cab6420, 0x2f473: 0x6cab6620, - 0x2f474: 0x6cab6820, 0x2f475: 0x6cab6a20, 0x2f476: 0x6cab6c20, 0x2f477: 0x6cab6e20, - 0x2f478: 0x6cab7020, 0x2f479: 0x6cd97e20, 0x2f47a: 0x6cd98020, 0x2f47b: 0x6cd98220, - 0x2f47c: 0x6cd98420, 0x2f47d: 0x6cd98620, 0x2f47e: 0x6cd98820, 0x2f47f: 0x6cd98a20, - // Block 0xbd2, offset 0x2f480 - 0x2f480: 0x6cd98c20, 0x2f481: 0x6cd98e20, 0x2f482: 0x6cd99020, 0x2f483: 0x6cd99220, - 0x2f484: 0x6cd99420, 0x2f485: 0x6cd99620, 0x2f486: 0x6cd99820, 0x2f487: 0x6cd99a20, - 0x2f488: 0x6cd99c20, 0x2f489: 0x6cd99e20, 0x2f48a: 0x6cd9a020, 0x2f48b: 0x6cd9a220, - 0x2f48c: 0x6cd9a420, 0x2f48d: 0x6cd9a620, 0x2f48e: 0x6cd9a820, 0x2f48f: 0x6cd9aa20, - 0x2f490: 0x6d361a20, 0x2f491: 0x6cd9ac20, 0x2f492: 0x6cd9ae20, 0x2f493: 0x6cd9b020, - 0x2f494: 0x6cd9b220, 0x2f495: 0x6cd9b420, 0x2f496: 0x6cd9b620, 0x2f497: 0x6cd9b820, - 0x2f498: 0x6cd9ba20, 0x2f499: 0x6cd9bc20, 0x2f49a: 0x6cd9be20, 0x2f49b: 0x6d082a20, - 0x2f49c: 0x6d082c20, 0x2f49d: 0x6d082e20, 0x2f49e: 0x6d083020, 0x2f49f: 0x6d083220, - 0x2f4a0: 0x6d083420, 0x2f4a1: 0x6d083620, 0x2f4a2: 0x6d083820, 0x2f4a3: 0x6d083a20, - 0x2f4a4: 0x6d083c20, 0x2f4a5: 0x6d083e20, 0x2f4a6: 0x6d084020, 0x2f4a7: 0x6d084220, - 0x2f4a8: 0x6d084420, 0x2f4a9: 0x6d084620, 0x2f4aa: 0x6d084820, 0x2f4ab: 0x6d084a20, - 0x2f4ac: 0x6d084c20, 0x2f4ad: 0x6d084e20, 0x2f4ae: 0x6d085020, 0x2f4af: 0x6d085220, - 0x2f4b0: 0x6d085420, 0x2f4b1: 0x6d085620, 0x2f4b2: 0x6d085820, 0x2f4b3: 0x6d085a20, - 0x2f4b4: 0x6cda6e20, 0x2f4b5: 0x6d085c20, 0x2f4b6: 0x6d085e20, 0x2f4b7: 0x6d086020, - 0x2f4b8: 0x6d086220, 0x2f4b9: 0x6d086420, 0x2f4ba: 0x6d086620, 0x2f4bb: 0x6d086820, - 0x2f4bc: 0x6d086a20, 0x2f4bd: 0x6d086c20, 0x2f4be: 0x6d086e20, 0x2f4bf: 0x6d363820, - // Block 0xbd3, offset 0x2f4c0 - 0x2f4c0: 0x6d363a20, 0x2f4c1: 0x6d363c20, 0x2f4c2: 0x6d363e20, 0x2f4c3: 0x6d364020, - 0x2f4c4: 0x6d364220, 0x2f4c5: 0x6d364420, 0x2f4c6: 0x6d364620, 0x2f4c7: 0x6d364820, - 0x2f4c8: 0x6d364a20, 0x2f4c9: 0x6d364c20, 0x2f4ca: 0x6d364e20, 0x2f4cb: 0x6d365020, - 0x2f4cc: 0x6d365220, 0x2f4cd: 0x6d365420, 0x2f4ce: 0x6d365620, 0x2f4cf: 0x6d365820, - 0x2f4d0: 0x6d8ca020, 0x2f4d1: 0x6d365a20, 0x2f4d2: 0x6d62d020, 0x2f4d3: 0x6d62d220, - 0x2f4d4: 0x6d62d420, 0x2f4d5: 0x6d62d620, 0x2f4d6: 0x6d62d820, 0x2f4d7: 0x6d62da20, - 0x2f4d8: 0x6d62dc20, 0x2f4d9: 0x6d62de20, 0x2f4da: 0x6d62e020, 0x2f4db: 0x6d62e220, - 0x2f4dc: 0x6d62e420, 0x2f4dd: 0x6d62e620, 0x2f4de: 0x6d62e820, 0x2f4df: 0x6d62ea20, - 0x2f4e0: 0x6d62ec20, 0x2f4e1: 0x6d62ee20, 0x2f4e2: 0x6d62f020, 0x2f4e3: 0x6d62f220, - 0x2f4e4: 0x6d538620, 0x2f4e5: 0x6db0d420, 0x2f4e6: 0x6d8cb420, 0x2f4e7: 0x6d8cb620, - 0x2f4e8: 0x6d8cb820, 0x2f4e9: 0x6d8cba20, 0x2f4ea: 0x6d8cbc20, 0x2f4eb: 0x6d8cbe20, - 0x2f4ec: 0x6d8cc020, 0x2f4ed: 0x6d8cc220, 0x2f4ee: 0x6d8cc420, 0x2f4ef: 0x6d8cc620, - 0x2f4f0: 0x6d8cc820, 0x2f4f1: 0x6d8cca20, 0x2f4f2: 0x6d8ccc20, 0x2f4f3: 0x6d8cce20, - 0x2f4f4: 0x6d8cd020, 0x2f4f5: 0x6d8cd220, 0x2f4f6: 0x6d8cd420, 0x2f4f7: 0x6d8d5820, - 0x2f4f8: 0x6db0de20, 0x2f4f9: 0x6d8d5a20, 0x2f4fa: 0x6db0e020, 0x2f4fb: 0x6db0e220, - 0x2f4fc: 0x6db0e420, 0x2f4fd: 0x6db0e620, 0x2f4fe: 0x6db0e820, 0x2f4ff: 0x6db0ea20, - // Block 0xbd4, offset 0x2f500 - 0x2f500: 0x6db0ec20, 0x2f501: 0x6db0ee20, 0x2f502: 0x6db0f020, 0x2f503: 0x6db0f220, - 0x2f504: 0x6db0f420, 0x2f505: 0x6db0f620, 0x2f506: 0x6db0f820, 0x2f507: 0x6db0fa20, - 0x2f508: 0x6db0fc20, 0x2f509: 0x6db0fe20, 0x2f50a: 0x6db10020, 0x2f50b: 0x6dea1e20, - 0x2f50c: 0x6db10220, 0x2f50d: 0x6dd06620, 0x2f50e: 0x6dd06820, 0x2f50f: 0x6dd06a20, - 0x2f510: 0x6dd06c20, 0x2f511: 0x6dd06e20, 0x2f512: 0x6dd07020, 0x2f513: 0x6dd07220, - 0x2f514: 0x6dea2620, 0x2f515: 0x6dea2820, 0x2f516: 0x6dffe420, 0x2f517: 0x6dea2a20, - 0x2f518: 0x6dea2c20, 0x2f519: 0x6dffe620, 0x2f51a: 0x6dffe820, 0x2f51b: 0x6dffea20, - 0x2f51c: 0x6dffec20, 0x2f51d: 0x6e124820, 0x2f51e: 0x6e206a20, 0x2f51f: 0x6e206c20, - 0x2f520: 0x6e39ae20, 0x2f521: 0x6e39b020, 0x2f522: 0x6e2b4820, 0x2f523: 0x6c147a20, - 0x2f524: 0x6c3f1a20, 0x2f525: 0x6c3f1c20, 0x2f526: 0x6cda7020, 0x2f527: 0x6d36e420, - 0x2f528: 0x6db16420, 0x2f529: 0x6db16620, 0x2f52a: 0x6c147e20, 0x2f52b: 0x6c262820, - 0x2f52c: 0x6c82dc20, 0x2f52d: 0x6c82de20, 0x2f52e: 0x6cda7c20, 0x2f52f: 0x6cda7e20, - 0x2f530: 0x6cda8020, 0x2f531: 0x6d635a20, 0x2f532: 0x6d8d5e20, 0x2f533: 0x6c148220, - 0x2f534: 0x6c5e4220, 0x2f535: 0x6cda8c20, 0x2f536: 0x6cda8e20, 0x2f537: 0x6cda9020, - 0x2f538: 0x6cda9220, 0x2f539: 0x6cda9820, 0x2f53a: 0x6d36f420, 0x2f53b: 0x6d8d6620, - 0x2f53c: 0x6c148820, 0x2f53d: 0x6c3f2220, 0x2f53e: 0x6c3f2420, 0x2f53f: 0x6c5e4a20, - // Block 0xbd5, offset 0x2f540 - 0x2f540: 0x6c82fc20, 0x2f541: 0x6c82fe20, 0x2f542: 0x6cabf420, 0x2f543: 0x6cda9a20, - 0x2f544: 0x6cda9c20, 0x2f545: 0x6d090220, 0x2f546: 0x6d8d7620, 0x2f547: 0x6d370220, - 0x2f548: 0x6d8d7220, 0x2f549: 0x6d8d7820, 0x2f54a: 0x6dd0c020, 0x2f54b: 0x6dea7220, - 0x2f54c: 0x6c149020, 0x2f54d: 0x6c3f2c20, 0x2f54e: 0x6c3f2e20, 0x2f54f: 0x6c3f3020, - 0x2f550: 0x6c831420, 0x2f551: 0x6cac0620, 0x2f552: 0x6cdaac20, 0x2f553: 0x6d371820, - 0x2f554: 0x6d371a20, 0x2f555: 0x6d371c20, 0x2f556: 0x6d638820, 0x2f557: 0x6d638a20, - 0x2f558: 0x6d8d8a20, 0x2f559: 0x6dd0d220, 0x2f55a: 0x6dea8020, 0x2f55b: 0x6c149220, - 0x2f55c: 0x6cdabe20, 0x2f55d: 0x6d091c20, 0x2f55e: 0x6d373020, 0x2f55f: 0x6c149420, - 0x2f560: 0x6c3f3620, 0x2f561: 0x6c5e6020, 0x2f562: 0x6c5e6220, 0x2f563: 0x6c5e6420, - 0x2f564: 0x6c5e6620, 0x2f565: 0x6c832c20, 0x2f566: 0x6c832e20, 0x2f567: 0x6c833020, - 0x2f568: 0x6c833220, 0x2f569: 0x6c833420, 0x2f56a: 0x6c833620, 0x2f56b: 0x6c833820, - 0x2f56c: 0x6c833a20, 0x2f56d: 0x6c833c20, 0x2f56e: 0x6c833e20, 0x2f56f: 0x6c834020, - 0x2f570: 0x6c834220, 0x2f571: 0x6c834420, 0x2f572: 0x6cac1820, 0x2f573: 0x6cac1a20, - 0x2f574: 0x6cac1c20, 0x2f575: 0x6cac1e20, 0x2f576: 0x6cac2020, 0x2f577: 0x6cac2220, - 0x2f578: 0x6cac2420, 0x2f579: 0x6cac2620, 0x2f57a: 0x6cac2820, 0x2f57b: 0x6cac2a20, - 0x2f57c: 0x6cdaca20, 0x2f57d: 0x6cdacc20, 0x2f57e: 0x6cdace20, 0x2f57f: 0x6cdad020, - // Block 0xbd6, offset 0x2f580 - 0x2f580: 0x6d092220, 0x2f581: 0x6d092420, 0x2f582: 0x6d092620, 0x2f583: 0x6d092820, - 0x2f584: 0x6d092a20, 0x2f585: 0x6d092c20, 0x2f586: 0x6d092e20, 0x2f587: 0x6d093020, - 0x2f588: 0x6d093220, 0x2f589: 0x6d093420, 0x2f58a: 0x6d374220, 0x2f58b: 0x6d374420, - 0x2f58c: 0x6d374620, 0x2f58d: 0x6d374820, 0x2f58e: 0x6d63a220, 0x2f58f: 0x6d63a420, - 0x2f590: 0x6d63a620, 0x2f591: 0x6d63a820, 0x2f592: 0x6d63aa20, 0x2f593: 0x6d63ac20, - 0x2f594: 0x6d63ae20, 0x2f595: 0x6d8d9e20, 0x2f596: 0x6d8da020, 0x2f597: 0x6d8da220, - 0x2f598: 0x6d8da420, 0x2f599: 0x6d8da620, 0x2f59a: 0x6db19c20, 0x2f59b: 0x6db19e20, - 0x2f59c: 0x6db1a020, 0x2f59d: 0x6db1a220, 0x2f59e: 0x6dd0e220, 0x2f59f: 0x6dd0e420, - 0x2f5a0: 0x6dd0e620, 0x2f5a1: 0x6dea8620, 0x2f5a2: 0x6dea8820, 0x2f5a3: 0x6dea8a20, - 0x2f5a4: 0x6dea8c20, 0x2f5a5: 0x6dea8e20, 0x2f5a6: 0x6e003620, 0x2f5a7: 0x6e003820, - 0x2f5a8: 0x6e003a20, 0x2f5a9: 0x6e003c20, 0x2f5aa: 0x6e126c20, 0x2f5ab: 0x6e208820, - 0x2f5ac: 0x6e2b6e20, 0x2f5ad: 0x6e33e220, 0x2f5ae: 0x6c149820, 0x2f5af: 0x6c263620, - 0x2f5b0: 0x6c3f4420, 0x2f5b1: 0x6db1bc20, 0x2f5b2: 0x6c149a20, 0x2f5b3: 0x6c835e20, - 0x2f5b4: 0x6cac4e20, 0x2f5b5: 0x6cdaf020, 0x2f5b6: 0x6deaa220, 0x2f5b7: 0x6e33e420, - 0x2f5b8: 0x6c149e20, 0x2f5b9: 0x6c020420, 0x2f5ba: 0x6c0a5620, 0x2f5bb: 0x6c14a020, - 0x2f5bc: 0x6c14a220, 0x2f5bd: 0x6c14a420, 0x2f5be: 0x6c14a620, 0x2f5bf: 0x6c14a820, - // Block 0xbd7, offset 0x2f5c0 - 0x2f5c0: 0x6c14aa20, 0x2f5c1: 0x6c14ac20, 0x2f5c2: 0x6c14ae20, 0x2f5c3: 0x6c263820, - 0x2f5c4: 0x6c263a20, 0x2f5c5: 0x6c263c20, 0x2f5c6: 0x6c263e20, 0x2f5c7: 0x6c264020, - 0x2f5c8: 0x6c264220, 0x2f5c9: 0x6c264420, 0x2f5ca: 0x6c264620, 0x2f5cb: 0x6c264820, - 0x2f5cc: 0x6c264a20, 0x2f5cd: 0x6c264c20, 0x2f5ce: 0x6c264e20, 0x2f5cf: 0x6c265020, - 0x2f5d0: 0x6c265220, 0x2f5d1: 0x6c265420, 0x2f5d2: 0x6c265620, 0x2f5d3: 0x6c265820, - 0x2f5d4: 0x6c5e8820, 0x2f5d5: 0x6c265a20, 0x2f5d6: 0x6c265c20, 0x2f5d7: 0x6c265e20, - 0x2f5d8: 0x6c3f4c20, 0x2f5d9: 0x6c3f4e20, 0x2f5da: 0x6c3f5020, 0x2f5db: 0x6c3f5220, - 0x2f5dc: 0x6c3f5420, 0x2f5dd: 0x6c3f5620, 0x2f5de: 0x6c3f5820, 0x2f5df: 0x6c3f5a20, - 0x2f5e0: 0x6c3f5c20, 0x2f5e1: 0x6c3f5e20, 0x2f5e2: 0x6c3f6020, 0x2f5e3: 0x6c3f6220, - 0x2f5e4: 0x6c3f6420, 0x2f5e5: 0x6c3f6620, 0x2f5e6: 0x6c3f6820, 0x2f5e7: 0x6c3f6a20, - 0x2f5e8: 0x6c3f6c20, 0x2f5e9: 0x6c3f6e20, 0x2f5ea: 0x6c3f7020, 0x2f5eb: 0x6c3f7220, - 0x2f5ec: 0x6c3f7420, 0x2f5ed: 0x6c3f7620, 0x2f5ee: 0x6c3f7820, 0x2f5ef: 0x6c3f7a20, - 0x2f5f0: 0x6c3f7c20, 0x2f5f1: 0x6c3f7e20, 0x2f5f2: 0x6c3f8020, 0x2f5f3: 0x6c3f8220, - 0x2f5f4: 0x6c3f8420, 0x2f5f5: 0x6c3f8620, 0x2f5f6: 0x6c3f8820, 0x2f5f7: 0x6c3f8a20, - 0x2f5f8: 0x6c3f8c20, 0x2f5f9: 0x6c3f8e20, 0x2f5fa: 0x6c3f9020, 0x2f5fb: 0x6c837820, - 0x2f5fc: 0x6c3f9220, 0x2f5fd: 0x6c3f9420, 0x2f5fe: 0x6c3f9620, 0x2f5ff: 0x6c400c20, - // Block 0xbd8, offset 0x2f600 - 0x2f600: 0x6c3f9820, 0x2f601: 0x6c3f9a20, 0x2f602: 0x6c3f9c20, 0x2f603: 0x6c3f9e20, - 0x2f604: 0x6c3fa020, 0x2f605: 0x6c3fa220, 0x2f606: 0x6c3fa420, 0x2f607: 0x6c3fa620, - 0x2f608: 0x6c3fa820, 0x2f609: 0x6c3faa20, 0x2f60a: 0x6c3fac20, 0x2f60b: 0x6c3fae20, - 0x2f60c: 0x6c3fb020, 0x2f60d: 0x6c3fb220, 0x2f60e: 0x6c3fb420, 0x2f60f: 0x6c3fb620, - 0x2f610: 0x6c5e8a20, 0x2f611: 0x6c5e8c20, 0x2f612: 0x6c5e8e20, 0x2f613: 0x6c5e9020, - 0x2f614: 0x6c5e9220, 0x2f615: 0x6c5e9420, 0x2f616: 0x6c5e9620, 0x2f617: 0x6c5e9820, - 0x2f618: 0x6c5e9a20, 0x2f619: 0x6c5e9c20, 0x2f61a: 0x6c5e9e20, 0x2f61b: 0x6c5ea020, - 0x2f61c: 0x6c5ea220, 0x2f61d: 0x6c5ea420, 0x2f61e: 0x6c5ea620, 0x2f61f: 0x6c5ea820, - 0x2f620: 0x6c5eaa20, 0x2f621: 0x6c5eac20, 0x2f622: 0x6c5eae20, 0x2f623: 0x6c5eb020, - 0x2f624: 0x6c5eb220, 0x2f625: 0x6c5eb420, 0x2f626: 0x6c5eb620, 0x2f627: 0x6c5eb820, - 0x2f628: 0x6c5eba20, 0x2f629: 0x6c5ebc20, 0x2f62a: 0x6c5ebe20, 0x2f62b: 0x6c5ec020, - 0x2f62c: 0x6c5ec220, 0x2f62d: 0x6c5ec420, 0x2f62e: 0x6c5ec620, 0x2f62f: 0x6c5ec820, - 0x2f630: 0x6c5eca20, 0x2f631: 0x6c5ecc20, 0x2f632: 0x6c5ece20, 0x2f633: 0x6c5ed020, - 0x2f634: 0x6c5ed220, 0x2f635: 0x6c5ed420, 0x2f636: 0x6c5ed620, 0x2f637: 0x6c5ed820, - 0x2f638: 0x6c5eda20, 0x2f639: 0x6c5edc20, 0x2f63a: 0x6c5ede20, 0x2f63b: 0x6c5ee020, - 0x2f63c: 0x6c5ee220, 0x2f63d: 0x6c5ee420, 0x2f63e: 0x6c5ee620, 0x2f63f: 0x6c5ee820, - // Block 0xbd9, offset 0x2f640 - 0x2f640: 0x6c5eea20, 0x2f641: 0x6c5eec20, 0x2f642: 0x6c5eee20, 0x2f643: 0x6c5ef020, - 0x2f644: 0x6c5ef220, 0x2f645: 0x6c5ef420, 0x2f646: 0x6c5ef620, 0x2f647: 0x6c5ef820, - 0x2f648: 0x6c837a20, 0x2f649: 0x6c5efa20, 0x2f64a: 0x6c5efc20, 0x2f64b: 0x6c5efe20, - 0x2f64c: 0x6c5f0020, 0x2f64d: 0x6c5f0220, 0x2f64e: 0x6c5f0420, 0x2f64f: 0x6c5f0620, - 0x2f650: 0x6c5f0820, 0x2f651: 0x6c5f0a20, 0x2f652: 0x6cdb1620, 0x2f653: 0x6c5f0c20, - 0x2f654: 0x6c5f0e20, 0x2f655: 0x6c5f1020, 0x2f656: 0x6c837c20, 0x2f657: 0x6c837e20, - 0x2f658: 0x6c838020, 0x2f659: 0x6c838220, 0x2f65a: 0x6c838420, 0x2f65b: 0x6c838620, - 0x2f65c: 0x6c838820, 0x2f65d: 0x6cac7420, 0x2f65e: 0x6c838a20, 0x2f65f: 0x6c838c20, - 0x2f660: 0x6c838e20, 0x2f661: 0x6c839020, 0x2f662: 0x6c839220, 0x2f663: 0x6cac7620, - 0x2f664: 0x6c839420, 0x2f665: 0x6c839620, 0x2f666: 0x6c839820, 0x2f667: 0x6c839a20, - 0x2f668: 0x6c839c20, 0x2f669: 0x6c839e20, 0x2f66a: 0x6c83a020, 0x2f66b: 0x6c83a220, - 0x2f66c: 0x6c83a420, 0x2f66d: 0x6c83a620, 0x2f66e: 0x6c83a820, 0x2f66f: 0x6c83aa20, - 0x2f670: 0x6c83ac20, 0x2f671: 0x6c83ae20, 0x2f672: 0x6c83b020, 0x2f673: 0x6c83b220, - 0x2f674: 0x6c83b420, 0x2f675: 0x6c83b620, 0x2f676: 0x6c83b820, 0x2f677: 0x6c83ba20, - 0x2f678: 0x6c83bc20, 0x2f679: 0x6c83be20, 0x2f67a: 0x6c5f9220, 0x2f67b: 0x6cdb1820, - 0x2f67c: 0x6c83c020, 0x2f67d: 0x6c83c220, 0x2f67e: 0x6c3fb820, 0x2f67f: 0x6c83c420, - // Block 0xbda, offset 0x2f680 - 0x2f680: 0x6c83c620, 0x2f681: 0x6c83c820, 0x2f682: 0x6c83ca20, 0x2f683: 0x6c83cc20, - 0x2f684: 0x6c83ce20, 0x2f685: 0x6c83d020, 0x2f686: 0x6cdb1a20, 0x2f687: 0x6c83d220, - 0x2f688: 0x6c83d420, 0x2f689: 0x6c83d620, 0x2f68a: 0x6c83d820, 0x2f68b: 0x6c83da20, - 0x2f68c: 0x6c83dc20, 0x2f68d: 0x6c83de20, 0x2f68e: 0x6c83e020, 0x2f68f: 0x6c83e220, - 0x2f690: 0x6c83e420, 0x2f691: 0x6c83e620, 0x2f692: 0x6c83e820, 0x2f693: 0x6c84c420, - 0x2f694: 0x6c83ea20, 0x2f695: 0x6c83ec20, 0x2f696: 0x6c83ee20, 0x2f697: 0x6c83f020, - 0x2f698: 0x6c83f220, 0x2f699: 0x6cac7020, 0x2f69a: 0x6c83f420, 0x2f69b: 0x6c83f620, - 0x2f69c: 0x6c83f820, 0x2f69d: 0x6c83fa20, 0x2f69e: 0x6c83fc20, 0x2f69f: 0x6c83fe20, - 0x2f6a0: 0x6c840020, 0x2f6a1: 0x6c840220, 0x2f6a2: 0x6c840420, 0x2f6a3: 0x6c840620, - 0x2f6a4: 0x6c840820, 0x2f6a5: 0x6c840a20, 0x2f6a6: 0x6c840c20, 0x2f6a7: 0x6c840e20, - 0x2f6a8: 0x6c841020, 0x2f6a9: 0x6c841220, 0x2f6aa: 0x6c841420, 0x2f6ab: 0x6cac7220, - 0x2f6ac: 0x6c841620, 0x2f6ad: 0x6c841820, 0x2f6ae: 0x6c841a20, 0x2f6af: 0x6c841c20, - 0x2f6b0: 0x6cac7820, 0x2f6b1: 0x6cac7a20, 0x2f6b2: 0x6cac7c20, 0x2f6b3: 0x6cac7e20, - 0x2f6b4: 0x6cac8020, 0x2f6b5: 0x6cac8220, 0x2f6b6: 0x6cac8420, 0x2f6b7: 0x6cac8620, - 0x2f6b8: 0x6cac8820, 0x2f6b9: 0x6cac8a20, 0x2f6ba: 0x6cac8c20, 0x2f6bb: 0x6cac8e20, - 0x2f6bc: 0x6cac9020, 0x2f6bd: 0x6cac9220, 0x2f6be: 0x6cac9420, 0x2f6bf: 0x6cac9620, - // Block 0xbdb, offset 0x2f6c0 - 0x2f6c0: 0x6cac9820, 0x2f6c1: 0x6cac9a20, 0x2f6c2: 0x6cac9c20, 0x2f6c3: 0x6cac9e20, - 0x2f6c4: 0x6caca020, 0x2f6c5: 0x6caca220, 0x2f6c6: 0x6caca420, 0x2f6c7: 0x6caca620, - 0x2f6c8: 0x6caca820, 0x2f6c9: 0x6cacaa20, 0x2f6ca: 0x6cacac20, 0x2f6cb: 0x6cacae20, - 0x2f6cc: 0x6cacb020, 0x2f6cd: 0x6cacb220, 0x2f6ce: 0x6cacb420, 0x2f6cf: 0x6cacb620, - 0x2f6d0: 0x6cacb820, 0x2f6d1: 0x6cacba20, 0x2f6d2: 0x6cacbc20, 0x2f6d3: 0x6cacbe20, - 0x2f6d4: 0x6cacc020, 0x2f6d5: 0x6cacc220, 0x2f6d6: 0x6cacc420, 0x2f6d7: 0x6cacc620, - 0x2f6d8: 0x6cacc820, 0x2f6d9: 0x6cacca20, 0x2f6da: 0x6cdb1c20, 0x2f6db: 0x6caccc20, - 0x2f6dc: 0x6cacce20, 0x2f6dd: 0x6cacd020, 0x2f6de: 0x6cacd220, 0x2f6df: 0x6cacd420, - 0x2f6e0: 0x6cacd620, 0x2f6e1: 0x6cacd820, 0x2f6e2: 0x6cacda20, 0x2f6e3: 0x6cacdc20, - 0x2f6e4: 0x6cacde20, 0x2f6e5: 0x6cace020, 0x2f6e6: 0x6cace220, 0x2f6e7: 0x6cace420, - 0x2f6e8: 0x6cace620, 0x2f6e9: 0x6cace820, 0x2f6ea: 0x6cacea20, 0x2f6eb: 0x6cacec20, - 0x2f6ec: 0x6cacee20, 0x2f6ed: 0x6cae1e20, 0x2f6ee: 0x6cacf020, 0x2f6ef: 0x6cacf220, - 0x2f6f0: 0x6cacf420, 0x2f6f1: 0x6cacf620, 0x2f6f2: 0x6cacf820, 0x2f6f3: 0x6cacfa20, - 0x2f6f4: 0x6cacfc20, 0x2f6f5: 0x6cacfe20, 0x2f6f6: 0x6cad0020, 0x2f6f7: 0x6cad0220, - 0x2f6f8: 0x6cad0420, 0x2f6f9: 0x6cad0620, 0x2f6fa: 0x6cad0820, 0x2f6fb: 0x6d098220, - 0x2f6fc: 0x6cad0a20, 0x2f6fd: 0x6cad0c20, 0x2f6fe: 0x6cdb1e20, 0x2f6ff: 0x6cdb2020, - // Block 0xbdc, offset 0x2f700 - 0x2f700: 0x6cdb2220, 0x2f701: 0x6cdb2420, 0x2f702: 0x6cdb2620, 0x2f703: 0x6cdb2820, - 0x2f704: 0x6cdb2a20, 0x2f705: 0x6cdb2c20, 0x2f706: 0x6cdb2e20, 0x2f707: 0x6cdb3020, - 0x2f708: 0x6cdb3220, 0x2f709: 0x6cdb3420, 0x2f70a: 0x6cdb3620, 0x2f70b: 0x6cdb3820, - 0x2f70c: 0x6cdb3a20, 0x2f70d: 0x6cdb3c20, 0x2f70e: 0x6cdb3e20, 0x2f70f: 0x6cdb4020, - 0x2f710: 0x6cdb4220, 0x2f711: 0x6cdb4420, 0x2f712: 0x6cdb4620, 0x2f713: 0x6cdb4820, - 0x2f714: 0x6cdb4a20, 0x2f715: 0x6cdb4c20, 0x2f716: 0x6cdb4e20, 0x2f717: 0x6cdb5020, - 0x2f718: 0x6cdb5220, 0x2f719: 0x6d098420, 0x2f71a: 0x6cdb5420, 0x2f71b: 0x6cdb5620, - 0x2f71c: 0x6cdb5820, 0x2f71d: 0x6cdb5a20, 0x2f71e: 0x6cdb5c20, 0x2f71f: 0x6cdb5e20, - 0x2f720: 0x6cdb6020, 0x2f721: 0x6cdb6220, 0x2f722: 0x6cdb6420, 0x2f723: 0x6cdb6620, - 0x2f724: 0x6cdb6820, 0x2f725: 0x6cdb6a20, 0x2f726: 0x6cdb6c20, 0x2f727: 0x6cdb6e20, - 0x2f728: 0x6cdb7020, 0x2f729: 0x6cdb7220, 0x2f72a: 0x6cdb7420, 0x2f72b: 0x6cdb7620, - 0x2f72c: 0x6cdb7820, 0x2f72d: 0x6cdb7a20, 0x2f72e: 0x6cdb7c20, 0x2f72f: 0x6cdb7e20, - 0x2f730: 0x6cdb8020, 0x2f731: 0x6cdb8220, 0x2f732: 0x6cdb8420, 0x2f733: 0x6cdb8620, - 0x2f734: 0x6cdb8820, 0x2f735: 0x6cdb8a20, 0x2f736: 0x6cdb8c20, 0x2f737: 0x6cdb8e20, - 0x2f738: 0x6cdb9020, 0x2f739: 0x6cdb9220, 0x2f73a: 0x6cdb9420, 0x2f73b: 0x6cdb9620, - 0x2f73c: 0x6cdb9820, 0x2f73d: 0x6cdb9a20, 0x2f73e: 0x6cdb9c20, 0x2f73f: 0x6cdb9e20, - // Block 0xbdd, offset 0x2f740 - 0x2f740: 0x6cdba020, 0x2f741: 0x6cdba220, 0x2f742: 0x6cdba420, 0x2f743: 0x6cdba620, - 0x2f744: 0x6cdba820, 0x2f745: 0x6cdbaa20, 0x2f746: 0x6cdbac20, 0x2f747: 0x6cdbae20, - 0x2f748: 0x6cdbb020, 0x2f749: 0x6cdbb220, 0x2f74a: 0x6cdbb420, 0x2f74b: 0x6cdbb620, - 0x2f74c: 0x6cdbb820, 0x2f74d: 0x6cdbba20, 0x2f74e: 0x6cdbbc20, 0x2f74f: 0x6cdbbe20, - 0x2f750: 0x6cdbc020, 0x2f751: 0x6cdbc220, 0x2f752: 0x6cdbc420, 0x2f753: 0x6cdbc620, - 0x2f754: 0x6cdbc820, 0x2f755: 0x6cdbca20, 0x2f756: 0x6cdbcc20, 0x2f757: 0x6cdbce20, - 0x2f758: 0x6cdbd020, 0x2f759: 0x6cdbd220, 0x2f75a: 0x6cdbd420, 0x2f75b: 0x6cdbd620, - 0x2f75c: 0x6cdbd820, 0x2f75d: 0x6cdbda20, 0x2f75e: 0x6cdbdc20, 0x2f75f: 0x6cdbde20, - 0x2f760: 0x6cdbe020, 0x2f761: 0x6cdbe220, 0x2f762: 0x6cdbe420, 0x2f763: 0x6cdbe620, - 0x2f764: 0x6cdbe820, 0x2f765: 0x6d098620, 0x2f766: 0x6cdbea20, 0x2f767: 0x6cdbec20, - 0x2f768: 0x6d098820, 0x2f769: 0x6d098a20, 0x2f76a: 0x6d098c20, 0x2f76b: 0x6d098e20, - 0x2f76c: 0x6d037820, 0x2f76d: 0x6d099020, 0x2f76e: 0x6d099220, 0x2f76f: 0x6d099420, - 0x2f770: 0x6d099620, 0x2f771: 0x6d099820, 0x2f772: 0x6d099a20, 0x2f773: 0x6d099c20, - 0x2f774: 0x6d099e20, 0x2f775: 0x6d09a020, 0x2f776: 0x6d09a220, 0x2f777: 0x6d09a420, - 0x2f778: 0x6cdd4420, 0x2f779: 0x6d09a620, 0x2f77a: 0x6d09a820, 0x2f77b: 0x6d09aa20, - 0x2f77c: 0x6d09ac20, 0x2f77d: 0x6d09ae20, 0x2f77e: 0x6d09b020, 0x2f77f: 0x6d09b220, - // Block 0xbde, offset 0x2f780 - 0x2f780: 0x6d09b420, 0x2f781: 0x6d09b620, 0x2f782: 0x6d09b820, 0x2f783: 0x6d09ba20, - 0x2f784: 0x6d09bc20, 0x2f785: 0x6d09be20, 0x2f786: 0x6d09c020, 0x2f787: 0x6d09c220, - 0x2f788: 0x6d09c420, 0x2f789: 0x6d09c620, 0x2f78a: 0x6d09c820, 0x2f78b: 0x6d09ca20, - 0x2f78c: 0x6d09cc20, 0x2f78d: 0x6d09ce20, 0x2f78e: 0x6d09d020, 0x2f78f: 0x6d09d220, - 0x2f790: 0x6d09d420, 0x2f791: 0x6d09d620, 0x2f792: 0x6d09d820, 0x2f793: 0x6d09da20, - 0x2f794: 0x6d09dc20, 0x2f795: 0x6d09de20, 0x2f796: 0x6d09e020, 0x2f797: 0x6cdbee20, - 0x2f798: 0x6d09e220, 0x2f799: 0x6d09e420, 0x2f79a: 0x6d09e620, 0x2f79b: 0x6d09e820, - 0x2f79c: 0x6d09ea20, 0x2f79d: 0x6d09ec20, 0x2f79e: 0x6d09ee20, 0x2f79f: 0x6d09f020, - 0x2f7a0: 0x6d09f220, 0x2f7a1: 0x6d09f420, 0x2f7a2: 0x6d09f620, 0x2f7a3: 0x6d09f820, - 0x2f7a4: 0x6d09fa20, 0x2f7a5: 0x6d09fc20, 0x2f7a6: 0x6d09fe20, 0x2f7a7: 0x6d0a0020, - 0x2f7a8: 0x6d0a0220, 0x2f7a9: 0x6d0a0420, 0x2f7aa: 0x6d0a0620, 0x2f7ab: 0x6d0a0820, - 0x2f7ac: 0x6d0a0a20, 0x2f7ad: 0x6d0a0c20, 0x2f7ae: 0x6d0a0e20, 0x2f7af: 0x6d0a1020, - 0x2f7b0: 0x6d0a1220, 0x2f7b1: 0x6d0a1420, 0x2f7b2: 0x6d0a1620, 0x2f7b3: 0x6d0a1820, - 0x2f7b4: 0x6d0a1a20, 0x2f7b5: 0x6d0a1c20, 0x2f7b6: 0x6d0a1e20, 0x2f7b7: 0x6d0a2020, - 0x2f7b8: 0x6d0a2220, 0x2f7b9: 0x6d0a2420, 0x2f7ba: 0x6d0a2620, 0x2f7bb: 0x6d0a2820, - 0x2f7bc: 0x6d0a2a20, 0x2f7bd: 0x6d0a2c20, 0x2f7be: 0x6d0a2e20, 0x2f7bf: 0x6d0a3020, - // Block 0xbdf, offset 0x2f7c0 - 0x2f7c0: 0x6d0a3220, 0x2f7c1: 0x6d0a3420, 0x2f7c2: 0x6d0a3620, 0x2f7c3: 0x6d0a3820, - 0x2f7c4: 0x6d0a3a20, 0x2f7c5: 0x6d0a3c20, 0x2f7c6: 0x6d0a3e20, 0x2f7c7: 0x6d0a4020, - 0x2f7c8: 0x6d0a4220, 0x2f7c9: 0x6d0a4420, 0x2f7ca: 0x6d640e20, 0x2f7cb: 0x6d0a4620, - 0x2f7cc: 0x6d0a4820, 0x2f7cd: 0x6d0a4a20, 0x2f7ce: 0x6d0a4c20, 0x2f7cf: 0x6d0a4e20, - 0x2f7d0: 0x6d37b020, 0x2f7d1: 0x6d37b220, 0x2f7d2: 0x6d37b420, 0x2f7d3: 0x6d37b620, - 0x2f7d4: 0x6d37b820, 0x2f7d5: 0x6d37ba20, 0x2f7d6: 0x6d37bc20, 0x2f7d7: 0x6d37be20, - 0x2f7d8: 0x6d37c020, 0x2f7d9: 0x6d37c220, 0x2f7da: 0x6d37c420, 0x2f7db: 0x6d37c620, - 0x2f7dc: 0x6d37c820, 0x2f7dd: 0x6d37ca20, 0x2f7de: 0x6d37cc20, 0x2f7df: 0x6d37ce20, - 0x2f7e0: 0x6d37d020, 0x2f7e1: 0x6d37d220, 0x2f7e2: 0x6d37d420, 0x2f7e3: 0x6d37d620, - 0x2f7e4: 0x6d37d820, 0x2f7e5: 0x6d37da20, 0x2f7e6: 0x6d37dc20, 0x2f7e7: 0x6d37de20, - 0x2f7e8: 0x6d37e020, 0x2f7e9: 0x6d37e220, 0x2f7ea: 0x6d37e420, 0x2f7eb: 0x6d37e620, - 0x2f7ec: 0x6d37e820, 0x2f7ed: 0x6d37ea20, 0x2f7ee: 0x6d37ec20, 0x2f7ef: 0x6d37ee20, - 0x2f7f0: 0x6d37f020, 0x2f7f1: 0x6d37f220, 0x2f7f2: 0x6d37f420, 0x2f7f3: 0x6d37f620, - 0x2f7f4: 0x6d37f820, 0x2f7f5: 0x6d37fa20, 0x2f7f6: 0x6d37fc20, 0x2f7f7: 0x6d37fe20, - 0x2f7f8: 0x6d2b2a20, 0x2f7f9: 0x6d380020, 0x2f7fa: 0x6d380220, 0x2f7fb: 0x6d380420, - 0x2f7fc: 0x6d380620, 0x2f7fd: 0x6d380820, 0x2f7fe: 0x6d380a20, 0x2f7ff: 0x6d380c20, - // Block 0xbe0, offset 0x2f800 - 0x2f800: 0x6d380e20, 0x2f801: 0x6d381020, 0x2f802: 0x6d381220, 0x2f803: 0x6d381420, - 0x2f804: 0x6d381620, 0x2f805: 0x6d0bb820, 0x2f806: 0x6d381820, 0x2f807: 0x6d381a20, - 0x2f808: 0x6d0bba20, 0x2f809: 0x6d381c20, 0x2f80a: 0x6d381e20, 0x2f80b: 0x6d382020, - 0x2f80c: 0x6d382220, 0x2f80d: 0x6d382420, 0x2f80e: 0x6d382620, 0x2f80f: 0x6d382820, - 0x2f810: 0x6d382a20, 0x2f811: 0x6d382c20, 0x2f812: 0x6d382e20, 0x2f813: 0x6d383020, - 0x2f814: 0x6d383220, 0x2f815: 0x6d383420, 0x2f816: 0x6d383620, 0x2f817: 0x6d383820, - 0x2f818: 0x6d383a20, 0x2f819: 0x6d383c20, 0x2f81a: 0x6d383e20, 0x2f81b: 0x6d384020, - 0x2f81c: 0x6d384220, 0x2f81d: 0x6d384420, 0x2f81e: 0x6d8dfe20, 0x2f81f: 0x6d384620, - 0x2f820: 0x6d641020, 0x2f821: 0x6d384820, 0x2f822: 0x6d384a20, 0x2f823: 0x6d384c20, - 0x2f824: 0x6d384e20, 0x2f825: 0x6d39b820, 0x2f826: 0x6d385020, 0x2f827: 0x6d641220, - 0x2f828: 0x6d641420, 0x2f829: 0x6d641620, 0x2f82a: 0x6d641820, 0x2f82b: 0x6d641a20, - 0x2f82c: 0x6d641c20, 0x2f82d: 0x6d641e20, 0x2f82e: 0x6d642020, 0x2f82f: 0x6d642220, - 0x2f830: 0x6d642420, 0x2f831: 0x6d0bbc20, 0x2f832: 0x6d642620, 0x2f833: 0x6d642820, - 0x2f834: 0x6d642a20, 0x2f835: 0x6d642c20, 0x2f836: 0x6d642e20, 0x2f837: 0x6d643020, - 0x2f838: 0x6d643220, 0x2f839: 0x6d643420, 0x2f83a: 0x6d643620, 0x2f83b: 0x6d643820, - 0x2f83c: 0x6d643a20, 0x2f83d: 0x6d643c20, 0x2f83e: 0x6d643e20, 0x2f83f: 0x6d644020, - // Block 0xbe1, offset 0x2f840 - 0x2f840: 0x6d644220, 0x2f841: 0x6d644420, 0x2f842: 0x6d644620, 0x2f843: 0x6d644820, - 0x2f844: 0x6d644a20, 0x2f845: 0x6d644c20, 0x2f846: 0x6d644e20, 0x2f847: 0x6d0bbe20, - 0x2f848: 0x6d645020, 0x2f849: 0x6d645220, 0x2f84a: 0x6d645420, 0x2f84b: 0x6d645620, - 0x2f84c: 0x6d645820, 0x2f84d: 0x6d645a20, 0x2f84e: 0x6d645c20, 0x2f84f: 0x6d645e20, - 0x2f850: 0x6d646020, 0x2f851: 0x6d646220, 0x2f852: 0x6d646420, 0x2f853: 0x6d646620, - 0x2f854: 0x6d646820, 0x2f855: 0x6d646a20, 0x2f856: 0x6d646c20, 0x2f857: 0x6d646e20, - 0x2f858: 0x6d647020, 0x2f859: 0x6d647220, 0x2f85a: 0x6d647420, 0x2f85b: 0x6d647620, - 0x2f85c: 0x6d647820, 0x2f85d: 0x6d647a20, 0x2f85e: 0x6d647c20, 0x2f85f: 0x6d647e20, - 0x2f860: 0x6d648020, 0x2f861: 0x6d648220, 0x2f862: 0x6d648420, 0x2f863: 0x6d648620, - 0x2f864: 0x6d648820, 0x2f865: 0x6d648a20, 0x2f866: 0x6d648c20, 0x2f867: 0x6d648e20, - 0x2f868: 0x6d649020, 0x2f869: 0x6d649220, 0x2f86a: 0x6d649420, 0x2f86b: 0x6d649620, - 0x2f86c: 0x6d649820, 0x2f86d: 0x6d649a20, 0x2f86e: 0x6d649c20, 0x2f86f: 0x6d649e20, - 0x2f870: 0x6d64a020, 0x2f871: 0x6d64a220, 0x2f872: 0x6d64a420, 0x2f873: 0x6d64a620, - 0x2f874: 0x6d64a820, 0x2f875: 0x6d64aa20, 0x2f876: 0x6d64ac20, 0x2f877: 0x6d64ae20, - 0x2f878: 0x6d64b020, 0x2f879: 0x6d64b220, 0x2f87a: 0x6d64b420, 0x2f87b: 0x6d64b620, - 0x2f87c: 0x6d64b820, 0x2f87d: 0x6d65f020, 0x2f87e: 0x6d8e0020, 0x2f87f: 0x6d8e0220, - // Block 0xbe2, offset 0x2f880 - 0x2f880: 0x6d8e0420, 0x2f881: 0x6d8e0620, 0x2f882: 0x6d8e0820, 0x2f883: 0x6d8e0a20, - 0x2f884: 0x6d8e0c20, 0x2f885: 0x6d8e0e20, 0x2f886: 0x6d8e1020, 0x2f887: 0x6d8e1220, - 0x2f888: 0x6d8e1420, 0x2f889: 0x6d8e1620, 0x2f88a: 0x6d8e1820, 0x2f88b: 0x6d8e1a20, - 0x2f88c: 0x6d8e1c20, 0x2f88d: 0x6d8e1e20, 0x2f88e: 0x6d8e2020, 0x2f88f: 0x6d65f220, - 0x2f890: 0x6d8e2220, 0x2f891: 0x6d8e2420, 0x2f892: 0x6d8e2620, 0x2f893: 0x6d8e2820, - 0x2f894: 0x6d8e2a20, 0x2f895: 0x6d8e2c20, 0x2f896: 0x6d8e2e20, 0x2f897: 0x6db1fe20, - 0x2f898: 0x6d8e3020, 0x2f899: 0x6d8e3220, 0x2f89a: 0x6d8e3420, 0x2f89b: 0x6d8e3620, - 0x2f89c: 0x6d8e3820, 0x2f89d: 0x6d8e3a20, 0x2f89e: 0x6d8e3c20, 0x2f89f: 0x6d8e3e20, - 0x2f8a0: 0x6d8e4020, 0x2f8a1: 0x6d8e4220, 0x2f8a2: 0x6d8e4420, 0x2f8a3: 0x6d8e4620, - 0x2f8a4: 0x6d8e4820, 0x2f8a5: 0x6d8e4a20, 0x2f8a6: 0x6d8e4c20, 0x2f8a7: 0x6d8e4e20, - 0x2f8a8: 0x6d8e5020, 0x2f8a9: 0x6d8e5220, 0x2f8aa: 0x6d8e5420, 0x2f8ab: 0x6d8e5620, - 0x2f8ac: 0x6d8e5820, 0x2f8ad: 0x6d8e5a20, 0x2f8ae: 0x6d8e5c20, 0x2f8af: 0x6d8e5e20, - 0x2f8b0: 0x6d8e6020, 0x2f8b1: 0x6d8e6220, 0x2f8b2: 0x6d8e6420, 0x2f8b3: 0x6d8e6620, - 0x2f8b4: 0x6d8e6820, 0x2f8b5: 0x6d8e6a20, 0x2f8b6: 0x6db20020, 0x2f8b7: 0x6db20220, - 0x2f8b8: 0x6db20420, 0x2f8b9: 0x6db20620, 0x2f8ba: 0x6db20820, 0x2f8bb: 0x6db20a20, - 0x2f8bc: 0x6db20c20, 0x2f8bd: 0x6db20e20, 0x2f8be: 0x6db21020, 0x2f8bf: 0x6db21220, - // Block 0xbe3, offset 0x2f8c0 - 0x2f8c0: 0x6db21420, 0x2f8c1: 0x6db21620, 0x2f8c2: 0x6db21820, 0x2f8c3: 0x6db21a20, - 0x2f8c4: 0x6db21c20, 0x2f8c5: 0x6db21e20, 0x2f8c6: 0x6db22020, 0x2f8c7: 0x6db22220, - 0x2f8c8: 0x6db22420, 0x2f8c9: 0x6db22620, 0x2f8ca: 0x6db22820, 0x2f8cb: 0x6db22a20, - 0x2f8cc: 0x6d8fc420, 0x2f8cd: 0x6db22c20, 0x2f8ce: 0x6db22e20, 0x2f8cf: 0x6db23020, - 0x2f8d0: 0x6db23220, 0x2f8d1: 0x6db23420, 0x2f8d2: 0x6db23620, 0x2f8d3: 0x6db23820, - 0x2f8d4: 0x6db23a20, 0x2f8d5: 0x6db23c20, 0x2f8d6: 0x6db23e20, 0x2f8d7: 0x6db24020, - 0x2f8d8: 0x6db24220, 0x2f8d9: 0x6db24420, 0x2f8da: 0x6db24620, 0x2f8db: 0x6db24820, - 0x2f8dc: 0x6db24a20, 0x2f8dd: 0x6db24c20, 0x2f8de: 0x6db24e20, 0x2f8df: 0x6db25020, - 0x2f8e0: 0x6db25220, 0x2f8e1: 0x6db25420, 0x2f8e2: 0x6db25620, 0x2f8e3: 0x6db25820, - 0x2f8e4: 0x6db25a20, 0x2f8e5: 0x6db25c20, 0x2f8e6: 0x6db25e20, 0x2f8e7: 0x6db26020, - 0x2f8e8: 0x6db26220, 0x2f8e9: 0x6dd14c20, 0x2f8ea: 0x6db26420, 0x2f8eb: 0x6db26620, - 0x2f8ec: 0x6db26820, 0x2f8ed: 0x6db39420, 0x2f8ee: 0x6db26a20, 0x2f8ef: 0x6db39620, - 0x2f8f0: 0x6dd14e20, 0x2f8f1: 0x6dd15020, 0x2f8f2: 0x6dd15220, 0x2f8f3: 0x6dd15420, - 0x2f8f4: 0x6dd15620, 0x2f8f5: 0x6dd15820, 0x2f8f6: 0x6dd15a20, 0x2f8f7: 0x6dd15c20, - 0x2f8f8: 0x6dd15e20, 0x2f8f9: 0x6dd16020, 0x2f8fa: 0x6dd16220, 0x2f8fb: 0x6dd16420, - 0x2f8fc: 0x6dd16620, 0x2f8fd: 0x6dd16820, 0x2f8fe: 0x6dd16a20, 0x2f8ff: 0x6dd16c20, - // Block 0xbe4, offset 0x2f900 - 0x2f900: 0x6dd16e20, 0x2f901: 0x6dd17020, 0x2f902: 0x6dd17220, 0x2f903: 0x6dd17420, - 0x2f904: 0x6dd17620, 0x2f905: 0x6dd17820, 0x2f906: 0x6dd17a20, 0x2f907: 0x6dd17c20, - 0x2f908: 0x6dd17e20, 0x2f909: 0x6dd18020, 0x2f90a: 0x6dd18220, 0x2f90b: 0x6dd18420, - 0x2f90c: 0x6dd18620, 0x2f90d: 0x6dd18820, 0x2f90e: 0x6dd18a20, 0x2f90f: 0x6dd18c20, - 0x2f910: 0x6dd18e20, 0x2f911: 0x6deac020, 0x2f912: 0x6dd19020, 0x2f913: 0x6dd19220, - 0x2f914: 0x6e128a20, 0x2f915: 0x6deac220, 0x2f916: 0x6deac420, 0x2f917: 0x6deac620, - 0x2f918: 0x6deac820, 0x2f919: 0x6deaca20, 0x2f91a: 0x6deacc20, 0x2f91b: 0x6deace20, - 0x2f91c: 0x6dead020, 0x2f91d: 0x6dead220, 0x2f91e: 0x6dead420, 0x2f91f: 0x6dead620, - 0x2f920: 0x6dead820, 0x2f921: 0x6deada20, 0x2f922: 0x6deadc20, 0x2f923: 0x6deade20, - 0x2f924: 0x6deae020, 0x2f925: 0x6deae220, 0x2f926: 0x6deae420, 0x2f927: 0x6deae620, - 0x2f928: 0x6deae820, 0x2f929: 0x6deaea20, 0x2f92a: 0x6deaec20, 0x2f92b: 0x6deaee20, - 0x2f92c: 0x6deaf020, 0x2f92d: 0x6deaf220, 0x2f92e: 0x6e006c20, 0x2f92f: 0x6deaf420, - 0x2f930: 0x6deaf620, 0x2f931: 0x6deaf820, 0x2f932: 0x6deafa20, 0x2f933: 0x6deafc20, - 0x2f934: 0x6deafe20, 0x2f935: 0x6deb0020, 0x2f936: 0x6e006e20, 0x2f937: 0x6debce20, - 0x2f938: 0x6debd020, 0x2f939: 0x6e007020, 0x2f93a: 0x6e007220, 0x2f93b: 0x6e007420, - 0x2f93c: 0x6e007620, 0x2f93d: 0x6e007820, 0x2f93e: 0x6e007a20, 0x2f93f: 0x6e007c20, - // Block 0xbe5, offset 0x2f940 - 0x2f940: 0x6e007e20, 0x2f941: 0x6e008020, 0x2f942: 0x6e008220, 0x2f943: 0x6e008420, - 0x2f944: 0x6e008620, 0x2f945: 0x6e008820, 0x2f946: 0x6e008a20, 0x2f947: 0x6e008c20, - 0x2f948: 0x6e008e20, 0x2f949: 0x6e009020, 0x2f94a: 0x6e009220, 0x2f94b: 0x6e009420, - 0x2f94c: 0x6e009620, 0x2f94d: 0x6e009820, 0x2f94e: 0x6e009a20, 0x2f94f: 0x6e009c20, - 0x2f950: 0x6e009e20, 0x2f951: 0x6e00a020, 0x2f952: 0x6e015420, 0x2f953: 0x6e00a220, - 0x2f954: 0x6e00a420, 0x2f955: 0x6e128c20, 0x2f956: 0x6e128e20, 0x2f957: 0x6e129020, - 0x2f958: 0x6e129220, 0x2f959: 0x6e129420, 0x2f95a: 0x6e129620, 0x2f95b: 0x6e015620, - 0x2f95c: 0x6e129820, 0x2f95d: 0x6e129a20, 0x2f95e: 0x6e129c20, 0x2f95f: 0x6e129e20, - 0x2f960: 0x6e12a020, 0x2f961: 0x6e12a220, 0x2f962: 0x6e00a620, 0x2f963: 0x6e12a420, - 0x2f964: 0x6e006a20, 0x2f965: 0x6e12a620, 0x2f966: 0x6e12a820, 0x2f967: 0x6e12aa20, - 0x2f968: 0x6e12ac20, 0x2f969: 0x6e12ae20, 0x2f96a: 0x6e12b020, 0x2f96b: 0x6e12b220, - 0x2f96c: 0x6e20b820, 0x2f96d: 0x6e12b420, 0x2f96e: 0x6e12b620, 0x2f96f: 0x6e12b820, - 0x2f970: 0x6e015820, 0x2f971: 0x6e2b7e20, 0x2f972: 0x6e20ba20, 0x2f973: 0x6e20bc20, - 0x2f974: 0x6e20be20, 0x2f975: 0x6e20c020, 0x2f976: 0x6e20c220, 0x2f977: 0x6e20c420, - 0x2f978: 0x6e2b8020, 0x2f979: 0x6e2b8220, 0x2f97a: 0x6e2b8420, 0x2f97b: 0x6e2b8620, - 0x2f97c: 0x6e2b8820, 0x2f97d: 0x6e2b8a20, 0x2f97e: 0x6e2b8c20, 0x2f97f: 0x6e2b8e20, - // Block 0xbe6, offset 0x2f980 - 0x2f980: 0x6e2b9020, 0x2f981: 0x6e2b9220, 0x2f982: 0x6e39ca20, 0x2f983: 0x6e33ec20, - 0x2f984: 0x6e3df420, 0x2f985: 0x6e33ee20, 0x2f986: 0x6e39cc20, 0x2f987: 0x6e39ce20, - 0x2f988: 0x6e39d020, 0x2f989: 0x6e39d220, 0x2f98a: 0x6e40cc20, 0x2f98b: 0x6e446620, - 0x2f98c: 0x6e42fa20, 0x2f98d: 0x6c14ca20, 0x2f98e: 0x6c401020, 0x2f98f: 0x6c401220, - 0x2f990: 0x6c5f9620, 0x2f991: 0x6c84ce20, 0x2f992: 0x6c674020, 0x2f993: 0x6c84d020, - 0x2f994: 0x6c84d220, 0x2f995: 0x6cae2620, 0x2f996: 0x6cae2820, 0x2f997: 0x6cae2a20, - 0x2f998: 0x6cae2c20, 0x2f999: 0x6cae2e20, 0x2f99a: 0x6cae3020, 0x2f99b: 0x6cdd4c20, - 0x2f99c: 0x6d0bc020, 0x2f99d: 0x6cdd4e20, 0x2f99e: 0x6d0bcc20, 0x2f99f: 0x6d0bce20, - 0x2f9a0: 0x6d39ba20, 0x2f9a1: 0x6d39bc20, 0x2f9a2: 0x6d65f620, 0x2f9a3: 0x6d8fc620, - 0x2f9a4: 0x6d8fca20, 0x2f9a5: 0x6d8fcc20, 0x2f9a6: 0x6d8fce20, 0x2f9a7: 0x6db39a20, - 0x2f9a8: 0x6db39c20, 0x2f9a9: 0x6dd29a20, 0x2f9aa: 0x6e3e1220, 0x2f9ab: 0x6c14cc20, - 0x2f9ac: 0x6c268a20, 0x2f9ad: 0x6c401620, 0x2f9ae: 0x6c401820, 0x2f9af: 0x6c401a20, - 0x2f9b0: 0x6c401c20, 0x2f9b1: 0x6c401e20, 0x2f9b2: 0x6c402020, 0x2f9b3: 0x6c5fa820, - 0x2f9b4: 0x6c5faa20, 0x2f9b5: 0x6c5fac20, 0x2f9b6: 0x6c5fae20, 0x2f9b7: 0x6c5fb020, - 0x2f9b8: 0x6c5fb220, 0x2f9b9: 0x6c5fb420, 0x2f9ba: 0x6c5fb620, 0x2f9bb: 0x6c5fb820, - 0x2f9bc: 0x6c5fba20, 0x2f9bd: 0x6c5fbc20, 0x2f9be: 0x6c5fbe20, 0x2f9bf: 0x6c5fc020, - // Block 0xbe7, offset 0x2f9c0 - 0x2f9c0: 0x6c5fc220, 0x2f9c1: 0x6c5fc420, 0x2f9c2: 0x6c5fc620, 0x2f9c3: 0x6c5fc820, - 0x2f9c4: 0x6c84e420, 0x2f9c5: 0x6c84e620, 0x2f9c6: 0x6c84e820, 0x2f9c7: 0x6c84ea20, - 0x2f9c8: 0x6cdd7820, 0x2f9c9: 0x6c84ec20, 0x2f9ca: 0x6c84ee20, 0x2f9cb: 0x6c84f020, - 0x2f9cc: 0x6c84f220, 0x2f9cd: 0x6c84f420, 0x2f9ce: 0x6c84f620, 0x2f9cf: 0x6c84f820, - 0x2f9d0: 0x6c84fa20, 0x2f9d1: 0x6c84fc20, 0x2f9d2: 0x6c84fe20, 0x2f9d3: 0x6c850020, - 0x2f9d4: 0x6c850220, 0x2f9d5: 0x6c850420, 0x2f9d6: 0x6c850620, 0x2f9d7: 0x6c850820, - 0x2f9d8: 0x6c850a20, 0x2f9d9: 0x6c850c20, 0x2f9da: 0x6c850e20, 0x2f9db: 0x6c851020, - 0x2f9dc: 0x6c851220, 0x2f9dd: 0x6c851420, 0x2f9de: 0x6c851620, 0x2f9df: 0x6c851820, - 0x2f9e0: 0x6c851a20, 0x2f9e1: 0x6c851c20, 0x2f9e2: 0x6c851e20, 0x2f9e3: 0x6c852020, - 0x2f9e4: 0x6c852220, 0x2f9e5: 0x6c852420, 0x2f9e6: 0x6c852620, 0x2f9e7: 0x6c852820, - 0x2f9e8: 0x6c852a20, 0x2f9e9: 0x6c852c20, 0x2f9ea: 0x6c852e20, 0x2f9eb: 0x6cae6020, - 0x2f9ec: 0x6c853020, 0x2f9ed: 0x6cae6220, 0x2f9ee: 0x6cae6420, 0x2f9ef: 0x6cae6620, - 0x2f9f0: 0x6cae6820, 0x2f9f1: 0x6cae6a20, 0x2f9f2: 0x6cae6c20, 0x2f9f3: 0x6cae6e20, - 0x2f9f4: 0x6cae7020, 0x2f9f5: 0x6cae7220, 0x2f9f6: 0x6cae7420, 0x2f9f7: 0x6cae7620, - 0x2f9f8: 0x6cae7820, 0x2f9f9: 0x6cae7a20, 0x2f9fa: 0x6cae7c20, 0x2f9fb: 0x6cae7e20, - 0x2f9fc: 0x6cae8020, 0x2f9fd: 0x6cae8220, 0x2f9fe: 0x6cae8420, 0x2f9ff: 0x6cae8620, - // Block 0xbe8, offset 0x2fa00 - 0x2fa00: 0x6cae8820, 0x2fa01: 0x6cae8a20, 0x2fa02: 0x6cae8c20, 0x2fa03: 0x6cae8e20, - 0x2fa04: 0x6cae9020, 0x2fa05: 0x6cae9220, 0x2fa06: 0x6cae9420, 0x2fa07: 0x6cae9620, - 0x2fa08: 0x6cae9820, 0x2fa09: 0x6cae9a20, 0x2fa0a: 0x6cae9c20, 0x2fa0b: 0x6cae9e20, - 0x2fa0c: 0x6caea020, 0x2fa0d: 0x6caea220, 0x2fa0e: 0x6caea420, 0x2fa0f: 0x6caea620, - 0x2fa10: 0x6cdd7a20, 0x2fa11: 0x6cdd7c20, 0x2fa12: 0x6cdd7e20, 0x2fa13: 0x6cdd8020, - 0x2fa14: 0x6cdd8220, 0x2fa15: 0x6cdd8420, 0x2fa16: 0x6d0bf020, 0x2fa17: 0x6cdd8620, - 0x2fa18: 0x6cdd8820, 0x2fa19: 0x6cdd8a20, 0x2fa1a: 0x6cdd8c20, 0x2fa1b: 0x6cdd8e20, - 0x2fa1c: 0x6cdd9020, 0x2fa1d: 0x6cdd9220, 0x2fa1e: 0x6cdd9420, 0x2fa1f: 0x6cdd9620, - 0x2fa20: 0x6cdd9820, 0x2fa21: 0x6cdd9a20, 0x2fa22: 0x6cdd9c20, 0x2fa23: 0x6cdd9e20, - 0x2fa24: 0x6cdda020, 0x2fa25: 0x6cdda220, 0x2fa26: 0x6cdda420, 0x2fa27: 0x6cdda620, - 0x2fa28: 0x6cdda820, 0x2fa29: 0x6cddaa20, 0x2fa2a: 0x6cddac20, 0x2fa2b: 0x6cddae20, - 0x2fa2c: 0x6cddb020, 0x2fa2d: 0x6cddb220, 0x2fa2e: 0x6cddb420, 0x2fa2f: 0x6cddb620, - 0x2fa30: 0x6cddb820, 0x2fa31: 0x6cddba20, 0x2fa32: 0x6cddbc20, 0x2fa33: 0x6cddbe20, - 0x2fa34: 0x6cddc020, 0x2fa35: 0x6d0bf220, 0x2fa36: 0x6d0bf420, 0x2fa37: 0x6d0bf620, - 0x2fa38: 0x6d0bf820, 0x2fa39: 0x6d0bfa20, 0x2fa3a: 0x6d0bfc20, 0x2fa3b: 0x6d0bfe20, - 0x2fa3c: 0x6d0c0020, 0x2fa3d: 0x6d0c0220, 0x2fa3e: 0x6d0c0420, 0x2fa3f: 0x6d0c0620, - // Block 0xbe9, offset 0x2fa40 - 0x2fa40: 0x6d0c0820, 0x2fa41: 0x6d0c0a20, 0x2fa42: 0x6d0c0c20, 0x2fa43: 0x6d0c0e20, - 0x2fa44: 0x6d0c1020, 0x2fa45: 0x6d0c1220, 0x2fa46: 0x6d0c1420, 0x2fa47: 0x6d0c1620, - 0x2fa48: 0x6d0c1820, 0x2fa49: 0x6d0c1a20, 0x2fa4a: 0x6d0c1c20, 0x2fa4b: 0x6d0c1e20, - 0x2fa4c: 0x6d0c2020, 0x2fa4d: 0x6d0c2220, 0x2fa4e: 0x6d0c2420, 0x2fa4f: 0x6d0c2620, - 0x2fa50: 0x6d0c2820, 0x2fa51: 0x6d39dc20, 0x2fa52: 0x6d39de20, 0x2fa53: 0x6d0c2a20, - 0x2fa54: 0x6d0c2c20, 0x2fa55: 0x6d0c2e20, 0x2fa56: 0x6d0c3020, 0x2fa57: 0x6d0c3220, - 0x2fa58: 0x6d39fc20, 0x2fa59: 0x6d39fe20, 0x2fa5a: 0x6d3a0020, 0x2fa5b: 0x6d3a0220, - 0x2fa5c: 0x6d3a0420, 0x2fa5d: 0x6d3a0620, 0x2fa5e: 0x6d3a0820, 0x2fa5f: 0x6d3a0a20, - 0x2fa60: 0x6d3a0c20, 0x2fa61: 0x6d3a0e20, 0x2fa62: 0x6d3a1020, 0x2fa63: 0x6d3a1220, - 0x2fa64: 0x6d3a1420, 0x2fa65: 0x6d3a1620, 0x2fa66: 0x6d3a1820, 0x2fa67: 0x6d3a1a20, - 0x2fa68: 0x6d3a1c20, 0x2fa69: 0x6d3a1e20, 0x2fa6a: 0x6d3a2020, 0x2fa6b: 0x6d39e020, - 0x2fa6c: 0x6d3a2220, 0x2fa6d: 0x6d3a2420, 0x2fa6e: 0x6d3a2620, 0x2fa6f: 0x6d3a2820, - 0x2fa70: 0x6d3a2a20, 0x2fa71: 0x6d3a2c20, 0x2fa72: 0x6d3a2e20, 0x2fa73: 0x6d3a3020, - 0x2fa74: 0x6d3a3220, 0x2fa75: 0x6d3a3420, 0x2fa76: 0x6d3a3620, 0x2fa77: 0x6d3a3820, - 0x2fa78: 0x6d3a3a20, 0x2fa79: 0x6d3a3c20, 0x2fa7a: 0x6d3a3e20, 0x2fa7b: 0x6d3a4020, - 0x2fa7c: 0x6d3a4220, 0x2fa7d: 0x6d3a4420, 0x2fa7e: 0x6d3a4620, 0x2fa7f: 0x6d3a4820, - // Block 0xbea, offset 0x2fa80 - 0x2fa80: 0x6d3a4a20, 0x2fa81: 0x6d3a4c20, 0x2fa82: 0x6d3a4e20, 0x2fa83: 0x6d3a5020, - 0x2fa84: 0x6d3a5220, 0x2fa85: 0x6d3a5420, 0x2fa86: 0x6d0c3420, 0x2fa87: 0x6d3a5620, - 0x2fa88: 0x6d3a5820, 0x2fa89: 0x6d3a5a20, 0x2fa8a: 0x6d3a5c20, 0x2fa8b: 0x6d3a5e20, - 0x2fa8c: 0x6d662820, 0x2fa8d: 0x6d0cba20, 0x2fa8e: 0x6d662a20, 0x2fa8f: 0x6d662c20, - 0x2fa90: 0x6d662e20, 0x2fa91: 0x6d663020, 0x2fa92: 0x6d663220, 0x2fa93: 0x6d663420, - 0x2fa94: 0x6d663620, 0x2fa95: 0x6d3b0c20, 0x2fa96: 0x6d663820, 0x2fa97: 0x6d663a20, - 0x2fa98: 0x6d663c20, 0x2fa99: 0x6d663e20, 0x2fa9a: 0x6d664020, 0x2fa9b: 0x6d664220, - 0x2fa9c: 0x6d664420, 0x2fa9d: 0x6d664620, 0x2fa9e: 0x6d664820, 0x2fa9f: 0x6d664a20, - 0x2faa0: 0x6d664c20, 0x2faa1: 0x6d664e20, 0x2faa2: 0x6d665020, 0x2faa3: 0x6d665220, - 0x2faa4: 0x6d665420, 0x2faa5: 0x6d665620, 0x2faa6: 0x6d665820, 0x2faa7: 0x6d665a20, - 0x2faa8: 0x6d665c20, 0x2faa9: 0x6d665e20, 0x2faaa: 0x6d666020, 0x2faab: 0x6d3b0e20, - 0x2faac: 0x6d666220, 0x2faad: 0x6d666420, 0x2faae: 0x6d666620, 0x2faaf: 0x6d666820, - 0x2fab0: 0x6d666a20, 0x2fab1: 0x6d666c20, 0x2fab2: 0x6d666e20, 0x2fab3: 0x6d667020, - 0x2fab4: 0x6d667220, 0x2fab5: 0x6d667420, 0x2fab6: 0x6d667620, 0x2fab7: 0x6d667820, - 0x2fab8: 0x6d667a20, 0x2fab9: 0x6d900a20, 0x2faba: 0x6d667c20, 0x2fabb: 0x6d667e20, - 0x2fabc: 0x6d668020, 0x2fabd: 0x6d668220, 0x2fabe: 0x6d668420, 0x2fabf: 0x6d668620, - // Block 0xbeb, offset 0x2fac0 - 0x2fac0: 0x6d668820, 0x2fac1: 0x6d900c20, 0x2fac2: 0x6d673820, 0x2fac3: 0x6d900e20, - 0x2fac4: 0x6d901020, 0x2fac5: 0x6d901220, 0x2fac6: 0x6d901420, 0x2fac7: 0x6d901620, - 0x2fac8: 0x6d901820, 0x2fac9: 0x6d901a20, 0x2faca: 0x6d901c20, 0x2facb: 0x6d901e20, - 0x2facc: 0x6d902020, 0x2facd: 0x6d902220, 0x2face: 0x6d902420, 0x2facf: 0x6d902620, - 0x2fad0: 0x6d902820, 0x2fad1: 0x6d902a20, 0x2fad2: 0x6d902c20, 0x2fad3: 0x6d902e20, - 0x2fad4: 0x6d903020, 0x2fad5: 0x6d903220, 0x2fad6: 0x6d903420, 0x2fad7: 0x6d903620, - 0x2fad8: 0x6d903820, 0x2fad9: 0x6d903a20, 0x2fada: 0x6d903c20, 0x2fadb: 0x6d903e20, - 0x2fadc: 0x6d904020, 0x2fadd: 0x6d904220, 0x2fade: 0x6d904420, 0x2fadf: 0x6d904620, - 0x2fae0: 0x6d904820, 0x2fae1: 0x6d904a20, 0x2fae2: 0x6d904c20, 0x2fae3: 0x6d904e20, - 0x2fae4: 0x6d905020, 0x2fae5: 0x6d905220, 0x2fae6: 0x6d905420, 0x2fae7: 0x6d905620, - 0x2fae8: 0x6d905820, 0x2fae9: 0x6d905a20, 0x2faea: 0x6db3d420, 0x2faeb: 0x6db3d620, - 0x2faec: 0x6db3d820, 0x2faed: 0x6db3da20, 0x2faee: 0x6db3dc20, 0x2faef: 0x6db3de20, - 0x2faf0: 0x6db3e020, 0x2faf1: 0x6db3e220, 0x2faf2: 0x6db3e420, 0x2faf3: 0x6db3e620, - 0x2faf4: 0x6db3e820, 0x2faf5: 0x6db3ea20, 0x2faf6: 0x6db3ec20, 0x2faf7: 0x6db3ee20, - 0x2faf8: 0x6db3f020, 0x2faf9: 0x6db3f220, 0x2fafa: 0x6db3f420, 0x2fafb: 0x6db3f620, - 0x2fafc: 0x6db3f820, 0x2fafd: 0x6db3fa20, 0x2fafe: 0x6db3fc20, 0x2faff: 0x6db3fe20, - // Block 0xbec, offset 0x2fb00 - 0x2fb00: 0x6db40020, 0x2fb01: 0x6db40220, 0x2fb02: 0x6db40420, 0x2fb03: 0x6db40620, - 0x2fb04: 0x6db40820, 0x2fb05: 0x6db40a20, 0x2fb06: 0x6db40c20, 0x2fb07: 0x6db40e20, - 0x2fb08: 0x6db41020, 0x2fb09: 0x6db41220, 0x2fb0a: 0x6db41420, 0x2fb0b: 0x6db41620, - 0x2fb0c: 0x6db41820, 0x2fb0d: 0x6db41a20, 0x2fb0e: 0x6db41c20, 0x2fb0f: 0x6db41e20, - 0x2fb10: 0x6db42020, 0x2fb11: 0x6db42220, 0x2fb12: 0x6db42420, 0x2fb13: 0x6dd2ba20, - 0x2fb14: 0x6dd2bc20, 0x2fb15: 0x6debe420, 0x2fb16: 0x6dd2be20, 0x2fb17: 0x6dd2ae20, - 0x2fb18: 0x6dd2c020, 0x2fb19: 0x6dd2c220, 0x2fb1a: 0x6dd2c420, 0x2fb1b: 0x6dd2c620, - 0x2fb1c: 0x6dd2c820, 0x2fb1d: 0x6dd2ca20, 0x2fb1e: 0x6db4c620, 0x2fb1f: 0x6dd2cc20, - 0x2fb20: 0x6dd2ce20, 0x2fb21: 0x6d668a20, 0x2fb22: 0x6dd2d020, 0x2fb23: 0x6dd2d220, - 0x2fb24: 0x6dd2d420, 0x2fb25: 0x6dd2d620, 0x2fb26: 0x6dd2d820, 0x2fb27: 0x6dd2da20, - 0x2fb28: 0x6dd2dc20, 0x2fb29: 0x6dd2de20, 0x2fb2a: 0x6dd2e020, 0x2fb2b: 0x6dd2e220, - 0x2fb2c: 0x6dd2e420, 0x2fb2d: 0x6dd2e620, 0x2fb2e: 0x6dd2e820, 0x2fb2f: 0x6dd2ea20, - 0x2fb30: 0x6dd2ec20, 0x2fb31: 0x6dd2ee20, 0x2fb32: 0x6dd2f020, 0x2fb33: 0x6dd2f220, - 0x2fb34: 0x6dd2f420, 0x2fb35: 0x6dd2f620, 0x2fb36: 0x6debf620, 0x2fb37: 0x6debf820, - 0x2fb38: 0x6debfa20, 0x2fb39: 0x6debfc20, 0x2fb3a: 0x6debfe20, 0x2fb3b: 0x6dec0020, - 0x2fb3c: 0x6dec0220, 0x2fb3d: 0x6dec0420, 0x2fb3e: 0x6dec0620, 0x2fb3f: 0x6dec0820, - // Block 0xbed, offset 0x2fb40 - 0x2fb40: 0x6dec0a20, 0x2fb41: 0x6debe220, 0x2fb42: 0x6dec0c20, 0x2fb43: 0x6dec0e20, - 0x2fb44: 0x6dec1020, 0x2fb45: 0x6dec1220, 0x2fb46: 0x6dec1420, 0x2fb47: 0x6dec1620, - 0x2fb48: 0x6dec1820, 0x2fb49: 0x6dec1a20, 0x2fb4a: 0x6dec1c20, 0x2fb4b: 0x6dec1e20, - 0x2fb4c: 0x6dec2020, 0x2fb4d: 0x6dec2220, 0x2fb4e: 0x6dd2f820, 0x2fb4f: 0x6dec2420, - 0x2fb50: 0x6e017020, 0x2fb51: 0x6e017220, 0x2fb52: 0x6e017420, 0x2fb53: 0x6e017620, - 0x2fb54: 0x6e017820, 0x2fb55: 0x6e017a20, 0x2fb56: 0x6e017c20, 0x2fb57: 0x6e017e20, - 0x2fb58: 0x6e018020, 0x2fb59: 0x6e018220, 0x2fb5a: 0x6e135620, 0x2fb5b: 0x6e135820, - 0x2fb5c: 0x6e135a20, 0x2fb5d: 0x6e135c20, 0x2fb5e: 0x6deca420, 0x2fb5f: 0x6e135e20, - 0x2fb60: 0x6e136020, 0x2fb61: 0x6e136220, 0x2fb62: 0x6e136420, 0x2fb63: 0x6e136620, - 0x2fb64: 0x6e136820, 0x2fb65: 0x6e212c20, 0x2fb66: 0x6e212e20, 0x2fb67: 0x6e213020, - 0x2fb68: 0x6e213220, 0x2fb69: 0x6e13c620, 0x2fb6a: 0x6e213420, 0x2fb6b: 0x6e13c820, - 0x2fb6c: 0x6e213620, 0x2fb6d: 0x6e2be220, 0x2fb6e: 0x6e2be420, 0x2fb6f: 0x6e2be620, - 0x2fb70: 0x6e2be820, 0x2fb71: 0x6e2bea20, 0x2fb72: 0x6e2bec20, 0x2fb73: 0x6e2bee20, - 0x2fb74: 0x6e2bda20, 0x2fb75: 0x6e342620, 0x2fb76: 0x6e342820, 0x2fb77: 0x6e342a20, - 0x2fb78: 0x6e342c20, 0x2fb79: 0x6e342e20, 0x2fb7a: 0x6e343020, 0x2fb7b: 0x6e39ec20, - 0x2fb7c: 0x6e3e1620, 0x2fb7d: 0x6e40de20, 0x2fb7e: 0x6e40e020, 0x2fb7f: 0x6e40fa20, - // Block 0xbee, offset 0x2fb80 - 0x2fb80: 0x6c14ce20, 0x2fb81: 0x6c5ff820, 0x2fb82: 0x6c5ffa20, 0x2fb83: 0x6c858420, - 0x2fb84: 0x6c858620, 0x2fb85: 0x6caf1c20, 0x2fb86: 0x6cde4420, 0x2fb87: 0x6cde4620, - 0x2fb88: 0x6cde4820, 0x2fb89: 0x6cde4a20, 0x2fb8a: 0x6e13ca20, 0x2fb8b: 0x6e345c20, - 0x2fb8c: 0x6c14d020, 0x2fb8d: 0x6c5ffe20, 0x2fb8e: 0x6c600020, 0x2fb8f: 0x6c859620, - 0x2fb90: 0x6caf2620, 0x2fb91: 0x6caf2820, 0x2fb92: 0x6caf2a20, 0x2fb93: 0x6caf2c20, - 0x2fb94: 0x6caf2e20, 0x2fb95: 0x6cde5220, 0x2fb96: 0x6cde5420, 0x2fb97: 0x6cde5620, - 0x2fb98: 0x6d0cc820, 0x2fb99: 0x6d0cca20, 0x2fb9a: 0x6d674620, 0x2fb9b: 0x6d674820, - 0x2fb9c: 0x6d674a20, 0x2fb9d: 0x6d674c20, 0x2fb9e: 0x6d912420, 0x2fb9f: 0x6d912620, - 0x2fba0: 0x6d912820, 0x2fba1: 0x6d912a20, 0x2fba2: 0x6e345e20, 0x2fba3: 0x6c14d220, - 0x2fba4: 0x6c0a6020, 0x2fba5: 0x6c404820, 0x2fba6: 0x6c601220, 0x2fba7: 0x6c601420, - 0x2fba8: 0x6c404a20, 0x2fba9: 0x6c601620, 0x2fbaa: 0x6c601820, 0x2fbab: 0x6c601a20, - 0x2fbac: 0x6c601c20, 0x2fbad: 0x6c85a620, 0x2fbae: 0x6c85a820, 0x2fbaf: 0x6c85aa20, - 0x2fbb0: 0x6c85ac20, 0x2fbb1: 0x6c85ae20, 0x2fbb2: 0x6c85b020, 0x2fbb3: 0x6c85b220, - 0x2fbb4: 0x6c85b420, 0x2fbb5: 0x6c85b620, 0x2fbb6: 0x6c85b820, 0x2fbb7: 0x6c85ba20, - 0x2fbb8: 0x6c85bc20, 0x2fbb9: 0x6c85be20, 0x2fbba: 0x6c85c020, 0x2fbbb: 0x6c85c220, - 0x2fbbc: 0x6c85c420, 0x2fbbd: 0x6c85c620, 0x2fbbe: 0x6c85c820, 0x2fbbf: 0x6c85ca20, - // Block 0xbef, offset 0x2fbc0 - 0x2fbc0: 0x6c85cc20, 0x2fbc1: 0x6c85ce20, 0x2fbc2: 0x6c85d020, 0x2fbc3: 0x6c85d220, - 0x2fbc4: 0x6c85d420, 0x2fbc5: 0x6c85d620, 0x2fbc6: 0x6c85d820, 0x2fbc7: 0x6c85da20, - 0x2fbc8: 0x6caf4020, 0x2fbc9: 0x6caf4220, 0x2fbca: 0x6caf4420, 0x2fbcb: 0x6caf4620, - 0x2fbcc: 0x6caf4820, 0x2fbcd: 0x6caf4a20, 0x2fbce: 0x6caf4c20, 0x2fbcf: 0x6caf4e20, - 0x2fbd0: 0x6caf5020, 0x2fbd1: 0x6caf5220, 0x2fbd2: 0x6caf5420, 0x2fbd3: 0x6caf5620, - 0x2fbd4: 0x6caf5820, 0x2fbd5: 0x6caf5a20, 0x2fbd6: 0x6caf5c20, 0x2fbd7: 0x6caf5e20, - 0x2fbd8: 0x6caf6020, 0x2fbd9: 0x6caf6220, 0x2fbda: 0x6caf6420, 0x2fbdb: 0x6caf6620, - 0x2fbdc: 0x6caf6820, 0x2fbdd: 0x6caf6a20, 0x2fbde: 0x6caf6c20, 0x2fbdf: 0x6caf6e20, - 0x2fbe0: 0x6caf7020, 0x2fbe1: 0x6caf7220, 0x2fbe2: 0x6caf7420, 0x2fbe3: 0x6caf7620, - 0x2fbe4: 0x6caf7820, 0x2fbe5: 0x6caf7a20, 0x2fbe6: 0x6caf7c20, 0x2fbe7: 0x6caf7e20, - 0x2fbe8: 0x6caf8020, 0x2fbe9: 0x6caf8220, 0x2fbea: 0x6caf8420, 0x2fbeb: 0x6caf8620, - 0x2fbec: 0x6caf8820, 0x2fbed: 0x6caf8a20, 0x2fbee: 0x6caf8c20, 0x2fbef: 0x6caf9020, - 0x2fbf0: 0x6caf8e20, 0x2fbf1: 0x6cde7820, 0x2fbf2: 0x6cde7a20, 0x2fbf3: 0x6cde7c20, - 0x2fbf4: 0x6cde7e20, 0x2fbf5: 0x6cde8020, 0x2fbf6: 0x6cde8220, 0x2fbf7: 0x6cde8420, - 0x2fbf8: 0x6cde8620, 0x2fbf9: 0x6cde8820, 0x2fbfa: 0x6cde8a20, 0x2fbfb: 0x6cde8c20, - 0x2fbfc: 0x6cde8e20, 0x2fbfd: 0x6cde9020, 0x2fbfe: 0x6cde9220, 0x2fbff: 0x6cde9420, - // Block 0xbf0, offset 0x2fc00 - 0x2fc00: 0x6cde9620, 0x2fc01: 0x6cde9820, 0x2fc02: 0x6cde9a20, 0x2fc03: 0x6cde9c20, - 0x2fc04: 0x6cde9e20, 0x2fc05: 0x6cdea020, 0x2fc06: 0x6cdea220, 0x2fc07: 0x6cdea420, - 0x2fc08: 0x6cdea620, 0x2fc09: 0x6cdea820, 0x2fc0a: 0x6d0ce020, 0x2fc0b: 0x6d0ce220, - 0x2fc0c: 0x6d0ce420, 0x2fc0d: 0x6d0ce620, 0x2fc0e: 0x6d0ce820, 0x2fc0f: 0x6d0cea20, - 0x2fc10: 0x6d0cec20, 0x2fc11: 0x6d0cee20, 0x2fc12: 0x6d0cf020, 0x2fc13: 0x6d0cf220, - 0x2fc14: 0x6d0cf420, 0x2fc15: 0x6d0cf620, 0x2fc16: 0x6d0cf820, 0x2fc17: 0x6cdeaa20, - 0x2fc18: 0x6d0cfa20, 0x2fc19: 0x6d0cfc20, 0x2fc1a: 0x6d0cfe20, 0x2fc1b: 0x6d0d0020, - 0x2fc1c: 0x6d0d0220, 0x2fc1d: 0x6d0d0420, 0x2fc1e: 0x6d0d0620, 0x2fc1f: 0x6d0d0820, - 0x2fc20: 0x6d0d0a20, 0x2fc21: 0x6d0d0c20, 0x2fc22: 0x6d3b2620, 0x2fc23: 0x6d0d0e20, - 0x2fc24: 0x6d0d1020, 0x2fc25: 0x6d0d1220, 0x2fc26: 0x6d676e20, 0x2fc27: 0x6d3b4820, - 0x2fc28: 0x6d3b4a20, 0x2fc29: 0x6d3b4c20, 0x2fc2a: 0x6d3b4e20, 0x2fc2b: 0x6d3b5020, - 0x2fc2c: 0x6d3b5220, 0x2fc2d: 0x6d3b5420, 0x2fc2e: 0x6d3b5620, 0x2fc2f: 0x6d3b5820, - 0x2fc30: 0x6d3b5a20, 0x2fc31: 0x6d3b5c20, 0x2fc32: 0x6d3b5e20, 0x2fc33: 0x6d3b6020, - 0x2fc34: 0x6d3b6220, 0x2fc35: 0x6d3b6420, 0x2fc36: 0x6d3b6620, 0x2fc37: 0x6d3b6820, - 0x2fc38: 0x6d3b6a20, 0x2fc39: 0x6d3b6c20, 0x2fc3a: 0x6d3b6e20, 0x2fc3b: 0x6d3b7020, - 0x2fc3c: 0x6d3b7220, 0x2fc3d: 0x6d3b7420, 0x2fc3e: 0x6d3b7620, 0x2fc3f: 0x6d3b7820, - // Block 0xbf1, offset 0x2fc40 - 0x2fc40: 0x6d3b7a20, 0x2fc41: 0x6cdef820, 0x2fc42: 0x6d3b7c20, 0x2fc43: 0x6d3b7e20, - 0x2fc44: 0x6d3b8020, 0x2fc45: 0x6d677020, 0x2fc46: 0x6d677220, 0x2fc47: 0x6d677420, - 0x2fc48: 0x6d677620, 0x2fc49: 0x6d677820, 0x2fc4a: 0x6d677a20, 0x2fc4b: 0x6d677c20, - 0x2fc4c: 0x6d677e20, 0x2fc4d: 0x6d678020, 0x2fc4e: 0x6d678220, 0x2fc4f: 0x6d678420, - 0x2fc50: 0x6d678620, 0x2fc51: 0x6d678820, 0x2fc52: 0x6d678a20, 0x2fc53: 0x6d678c20, - 0x2fc54: 0x6d678e20, 0x2fc55: 0x6d679020, 0x2fc56: 0x6d679220, 0x2fc57: 0x6d679420, - 0x2fc58: 0x6d679620, 0x2fc59: 0x6d679820, 0x2fc5a: 0x6d3b8220, 0x2fc5b: 0x6d679a20, - 0x2fc5c: 0x6d679c20, 0x2fc5d: 0x6d679e20, 0x2fc5e: 0x6d913c20, 0x2fc5f: 0x6d913e20, - 0x2fc60: 0x6d914020, 0x2fc61: 0x6d914220, 0x2fc62: 0x6d914420, 0x2fc63: 0x6d914620, - 0x2fc64: 0x6d914820, 0x2fc65: 0x6d914a20, 0x2fc66: 0x6d914c20, 0x2fc67: 0x6d914e20, - 0x2fc68: 0x6d915020, 0x2fc69: 0x6d915220, 0x2fc6a: 0x6d915420, 0x2fc6b: 0x6d915620, - 0x2fc6c: 0x6d915820, 0x2fc6d: 0x6d915a20, 0x2fc6e: 0x6d915c20, 0x2fc6f: 0x6d915e20, - 0x2fc70: 0x6d916020, 0x2fc71: 0x6d916220, 0x2fc72: 0x6d916420, 0x2fc73: 0x6db4ee20, - 0x2fc74: 0x6d916620, 0x2fc75: 0x6db4f020, 0x2fc76: 0x6db4f220, 0x2fc77: 0x6db4f420, - 0x2fc78: 0x6db4f620, 0x2fc79: 0x6db4f820, 0x2fc7a: 0x6db4fa20, 0x2fc7b: 0x6db4fc20, - 0x2fc7c: 0x6db4fe20, 0x2fc7d: 0x6db50020, 0x2fc7e: 0x6db50220, 0x2fc7f: 0x6db50420, - // Block 0xbf2, offset 0x2fc80 - 0x2fc80: 0x6db50620, 0x2fc81: 0x6db50820, 0x2fc82: 0x6db50a20, 0x2fc83: 0x6db50c20, - 0x2fc84: 0x6db50e20, 0x2fc85: 0x6db51020, 0x2fc86: 0x6dd3b620, 0x2fc87: 0x6dd3b820, - 0x2fc88: 0x6dd3ba20, 0x2fc89: 0x6dd3bc20, 0x2fc8a: 0x6dd3be20, 0x2fc8b: 0x6dd3c020, - 0x2fc8c: 0x6dd3c220, 0x2fc8d: 0x6dd3c420, 0x2fc8e: 0x6dd3c620, 0x2fc8f: 0x6dd3c820, - 0x2fc90: 0x6dd3ca20, 0x2fc91: 0x6dd3cc20, 0x2fc92: 0x6db51420, 0x2fc93: 0x6dd3ce20, - 0x2fc94: 0x6db51220, 0x2fc95: 0x6dd3d020, 0x2fc96: 0x6decb020, 0x2fc97: 0x6decb220, - 0x2fc98: 0x6decb420, 0x2fc99: 0x6decb620, 0x2fc9a: 0x6decb820, 0x2fc9b: 0x6decba20, - 0x2fc9c: 0x6decbc20, 0x2fc9d: 0x6decbe20, 0x2fc9e: 0x6decc020, 0x2fc9f: 0x6decc220, - 0x2fca0: 0x6decc420, 0x2fca1: 0x6decc620, 0x2fca2: 0x6decc820, 0x2fca3: 0x6e01ec20, - 0x2fca4: 0x6e01ee20, 0x2fca5: 0x6e01f020, 0x2fca6: 0x6e01f220, 0x2fca7: 0x6e01f420, - 0x2fca8: 0x6e01f620, 0x2fca9: 0x6e13d220, 0x2fcaa: 0x6e13d420, 0x2fcab: 0x6e13d620, - 0x2fcac: 0x6e13d820, 0x2fcad: 0x6e13da20, 0x2fcae: 0x6e13dc20, 0x2fcaf: 0x6e218e20, - 0x2fcb0: 0x6e219020, 0x2fcb1: 0x6e219220, 0x2fcb2: 0x6e219420, 0x2fcb3: 0x6e2c2620, - 0x2fcb4: 0x6e2c2820, 0x2fcb5: 0x6e346420, 0x2fcb6: 0x6e2c2a20, 0x2fcb7: 0x6e346620, - 0x2fcb8: 0x6e3a0c20, 0x2fcb9: 0x6e3a0e20, 0x2fcba: 0x6e3a1020, 0x2fcbb: 0x6e3a1220, - 0x2fcbc: 0x6e3a1420, 0x2fcbd: 0x6e40fc20, 0x2fcbe: 0x6c14d420, 0x2fcbf: 0x6c14d620, - // Block 0xbf3, offset 0x2fcc0 - 0x2fcc0: 0x6c14d820, 0x2fcc1: 0x6c606620, 0x2fcc2: 0x6cafe420, 0x2fcc3: 0x6cdefe20, - 0x2fcc4: 0x6cdf0020, 0x2fcc5: 0x6d0d7620, 0x2fcc6: 0x6dd40e20, 0x2fcc7: 0x6decfe20, - 0x2fcc8: 0x6ded0020, 0x2fcc9: 0x6e2c3820, 0x2fcca: 0x6e3a2020, 0x2fccb: 0x6c26a020, - 0x2fccc: 0x6c606e20, 0x2fccd: 0x6c862e20, 0x2fcce: 0x6c863020, 0x2fccf: 0x6caff420, - 0x2fcd0: 0x6caff620, 0x2fcd1: 0x6caff820, 0x2fcd2: 0x6caffa20, 0x2fcd3: 0x6caffc20, - 0x2fcd4: 0x6caffe20, 0x2fcd5: 0x6cdf1220, 0x2fcd6: 0x6ca6aa20, 0x2fcd7: 0x6cdf1420, - 0x2fcd8: 0x6cdf1620, 0x2fcd9: 0x6cdf0820, 0x2fcda: 0x6cdf1820, 0x2fcdb: 0x6d0d8020, - 0x2fcdc: 0x6d0d8220, 0x2fcdd: 0x6d3bf020, 0x2fcde: 0x6d3bf220, 0x2fcdf: 0x6d3bf420, - 0x2fce0: 0x6d3bf620, 0x2fce1: 0x6d3bf820, 0x2fce2: 0x6d67fc20, 0x2fce3: 0x6d67fe20, - 0x2fce4: 0x6d680020, 0x2fce5: 0x6d680220, 0x2fce6: 0x6d91ca20, 0x2fce7: 0x6d91cc20, - 0x2fce8: 0x6d91ce20, 0x2fce9: 0x6d683220, 0x2fcea: 0x6d91d020, 0x2fceb: 0x6db58620, - 0x2fcec: 0x6db58820, 0x2fced: 0x6db58a20, 0x2fcee: 0x6db58c20, 0x2fcef: 0x6db58e20, - 0x2fcf0: 0x6dd41820, 0x2fcf1: 0x6dd41a20, 0x2fcf2: 0x6dd41c20, 0x2fcf3: 0x6dd41e20, - 0x2fcf4: 0x6ded0e20, 0x2fcf5: 0x6ded1020, 0x2fcf6: 0x6ded1220, 0x2fcf7: 0x6ded1420, - 0x2fcf8: 0x6ded1620, 0x2fcf9: 0x6e021a20, 0x2fcfa: 0x6e021c20, 0x2fcfb: 0x6e021e20, - 0x2fcfc: 0x6e13fe20, 0x2fcfd: 0x6e140020, 0x2fcfe: 0x6e21a220, 0x2fcff: 0x6e21a420, - // Block 0xbf4, offset 0x2fd00 - 0x2fd00: 0x6e3a2420, 0x2fd01: 0x6c050c20, 0x2fd02: 0x6c14da20, 0x2fd03: 0x6c26a220, - 0x2fd04: 0x6c407220, 0x2fd05: 0x6c407420, 0x2fd06: 0x6c5adc20, 0x2fd07: 0x6c607220, - 0x2fd08: 0x6c607420, 0x2fd09: 0x6c607620, 0x2fd0a: 0x6c863e20, 0x2fd0b: 0x6cb01c20, - 0x2fd0c: 0x6cdf3420, 0x2fd0d: 0x6cdf3620, 0x2fd0e: 0x6d0dac20, 0x2fd0f: 0x6d3c1e20, - 0x2fd10: 0x6d683420, 0x2fd11: 0x6d683620, 0x2fd12: 0x6c26a620, 0x2fd13: 0x6c607c20, - 0x2fd14: 0x6c607e20, 0x2fd15: 0x6cb02020, 0x2fd16: 0x6cb02220, 0x2fd17: 0x6cb02420, - 0x2fd18: 0x6cb02620, 0x2fd19: 0x6cb02820, 0x2fd1a: 0x6cdf3820, 0x2fd1b: 0x6cdf3a20, - 0x2fd1c: 0x6d0db620, 0x2fd1d: 0x6cdf3c20, 0x2fd1e: 0x6cdf3e20, 0x2fd1f: 0x6d0db820, - 0x2fd20: 0x6d0dba20, 0x2fd21: 0x6d0dbc20, 0x2fd22: 0x6d0dbe20, 0x2fd23: 0x6d0dc020, - 0x2fd24: 0x6d0dc220, 0x2fd25: 0x6d0dc420, 0x2fd26: 0x6d0dc620, 0x2fd27: 0x6d0dc820, - 0x2fd28: 0x6d3c2220, 0x2fd29: 0x6d3c2420, 0x2fd2a: 0x6d3c2620, 0x2fd2b: 0x6d3c2820, - 0x2fd2c: 0x6d684420, 0x2fd2d: 0x6d684620, 0x2fd2e: 0x6d684820, 0x2fd2f: 0x6d684a20, - 0x2fd30: 0x6d687a20, 0x2fd31: 0x6d920a20, 0x2fd32: 0x6db5ac20, 0x2fd33: 0x6db5ae20, - 0x2fd34: 0x6dd43820, 0x2fd35: 0x6ded2a20, 0x2fd36: 0x6ded2c20, 0x2fd37: 0x6e023220, - 0x2fd38: 0x6e023420, 0x2fd39: 0x6e023620, 0x2fd3a: 0x6e140a20, 0x2fd3b: 0x6e21b420, - 0x2fd3c: 0x6e21b620, 0x2fd3d: 0x6e2c3c20, 0x2fd3e: 0x6e2c3e20, 0x2fd3f: 0x6e3a3820, - // Block 0xbf5, offset 0x2fd40 - 0x2fd40: 0x6c26aa20, 0x2fd41: 0x6c26ac20, 0x2fd42: 0x6c608c20, 0x2fd43: 0x6c608e20, - 0x2fd44: 0x6c609020, 0x2fd45: 0x6c609220, 0x2fd46: 0x6c609420, 0x2fd47: 0x6c609620, - 0x2fd48: 0x6c609820, 0x2fd49: 0x6c864e20, 0x2fd4a: 0x6c865020, 0x2fd4b: 0x6c865220, - 0x2fd4c: 0x6c865420, 0x2fd4d: 0x6c865620, 0x2fd4e: 0x6c865820, 0x2fd4f: 0x6c865a20, - 0x2fd50: 0x6c865c20, 0x2fd51: 0x6c865e20, 0x2fd52: 0x6c866020, 0x2fd53: 0x6c866220, - 0x2fd54: 0x6c866420, 0x2fd55: 0x6c866620, 0x2fd56: 0x6c866820, 0x2fd57: 0x6c866a20, - 0x2fd58: 0x6c866c20, 0x2fd59: 0x6c866e20, 0x2fd5a: 0x6c867020, 0x2fd5b: 0x6cb07820, - 0x2fd5c: 0x6cb07a20, 0x2fd5d: 0x6cb07c20, 0x2fd5e: 0x6cb07e20, 0x2fd5f: 0x6cb08020, - 0x2fd60: 0x6cb08220, 0x2fd61: 0x6cb08420, 0x2fd62: 0x6cb08620, 0x2fd63: 0x6cb08820, - 0x2fd64: 0x6cb08a20, 0x2fd65: 0x6cb08c20, 0x2fd66: 0x6cb08e20, 0x2fd67: 0x6cb09020, - 0x2fd68: 0x6cb09220, 0x2fd69: 0x6cb09420, 0x2fd6a: 0x6cb09620, 0x2fd6b: 0x6cb09820, - 0x2fd6c: 0x6cb09a20, 0x2fd6d: 0x6cb09c20, 0x2fd6e: 0x6cb09e20, 0x2fd6f: 0x6cb0a020, - 0x2fd70: 0x6cb0a220, 0x2fd71: 0x6cb0a420, 0x2fd72: 0x6cb0a620, 0x2fd73: 0x6cb0a820, - 0x2fd74: 0x6cdf8020, 0x2fd75: 0x6cdf8220, 0x2fd76: 0x6cdf8420, 0x2fd77: 0x6cdf8620, - 0x2fd78: 0x6cdf8820, 0x2fd79: 0x6cdf8a20, 0x2fd7a: 0x6cdf8c20, 0x2fd7b: 0x6cdf8e20, - 0x2fd7c: 0x6cdf9020, 0x2fd7d: 0x6cdf9220, 0x2fd7e: 0x6d0ddc20, 0x2fd7f: 0x6d0dde20, - // Block 0xbf6, offset 0x2fd80 - 0x2fd80: 0x6cdf9420, 0x2fd81: 0x6cdf9620, 0x2fd82: 0x6cdf9820, 0x2fd83: 0x6cdf9a20, - 0x2fd84: 0x6cdf9c20, 0x2fd85: 0x6cdf9e20, 0x2fd86: 0x6cdfa020, 0x2fd87: 0x6cdfa220, - 0x2fd88: 0x6cdfa420, 0x2fd89: 0x6cdfa620, 0x2fd8a: 0x6cdfa820, 0x2fd8b: 0x6cdfaa20, - 0x2fd8c: 0x6cdfac20, 0x2fd8d: 0x6cdfae20, 0x2fd8e: 0x6cdfb020, 0x2fd8f: 0x6cdfb220, - 0x2fd90: 0x6cdfb420, 0x2fd91: 0x6cdfb620, 0x2fd92: 0x6cdfb820, 0x2fd93: 0x6cdfba20, - 0x2fd94: 0x6cdfbc20, 0x2fd95: 0x6cdfbe20, 0x2fd96: 0x6cdfc020, 0x2fd97: 0x6cdfc220, - 0x2fd98: 0x6cdfc420, 0x2fd99: 0x6cdfc620, 0x2fd9a: 0x6cdfc820, 0x2fd9b: 0x6cdfca20, - 0x2fd9c: 0x6cdfcc20, 0x2fd9d: 0x6cdfce20, 0x2fd9e: 0x6cdfd020, 0x2fd9f: 0x6cdfd220, - 0x2fda0: 0x6cdfd420, 0x2fda1: 0x6d0df220, 0x2fda2: 0x6d0df420, 0x2fda3: 0x6d0df620, - 0x2fda4: 0x6d0df820, 0x2fda5: 0x6d0dfa20, 0x2fda6: 0x6d0dfc20, 0x2fda7: 0x6d0dfe20, - 0x2fda8: 0x6d0e0020, 0x2fda9: 0x6d0e0220, 0x2fdaa: 0x6d0e0420, 0x2fdab: 0x6d0e0620, - 0x2fdac: 0x6d0e0820, 0x2fdad: 0x6d0e0a20, 0x2fdae: 0x6d0e0c20, 0x2fdaf: 0x6d0e0e20, - 0x2fdb0: 0x6d0e1020, 0x2fdb1: 0x6d0e1220, 0x2fdb2: 0x6d0e1420, 0x2fdb3: 0x6d0e1620, - 0x2fdb4: 0x6d0e1820, 0x2fdb5: 0x6d0e1a20, 0x2fdb6: 0x6d0e1c20, 0x2fdb7: 0x6d0e1e20, - 0x2fdb8: 0x6d0e2020, 0x2fdb9: 0x6d0e2220, 0x2fdba: 0x6d0e2420, 0x2fdbb: 0x6d0e2620, - 0x2fdbc: 0x6d0e2820, 0x2fdbd: 0x6d0e2a20, 0x2fdbe: 0x6d0e2c20, 0x2fdbf: 0x6d0e2e20, - // Block 0xbf7, offset 0x2fdc0 - 0x2fdc0: 0x6d0e3020, 0x2fdc1: 0x6d0e3220, 0x2fdc2: 0x6d0e3420, 0x2fdc3: 0x6d0e3620, - 0x2fdc4: 0x6d0e3820, 0x2fdc5: 0x6d0e3a20, 0x2fdc6: 0x6d0e3c20, 0x2fdc7: 0x6d0e3e20, - 0x2fdc8: 0x6d0e4020, 0x2fdc9: 0x6d0e4220, 0x2fdca: 0x6d0e4420, 0x2fdcb: 0x6d3c5a20, - 0x2fdcc: 0x6d3c5c20, 0x2fdcd: 0x6d3c5e20, 0x2fdce: 0x6d3c6020, 0x2fdcf: 0x6d3c6220, - 0x2fdd0: 0x6d3c6420, 0x2fdd1: 0x6d3c6620, 0x2fdd2: 0x6d3c6820, 0x2fdd3: 0x6d3c6a20, - 0x2fdd4: 0x6d3c6c20, 0x2fdd5: 0x6d687c20, 0x2fdd6: 0x6d3c6e20, 0x2fdd7: 0x6d3c7020, - 0x2fdd8: 0x6d3c7220, 0x2fdd9: 0x6d3c7420, 0x2fdda: 0x6d3c7620, 0x2fddb: 0x6d3c7820, - 0x2fddc: 0x6d3c7a20, 0x2fddd: 0x6d3c7c20, 0x2fdde: 0x6d3c7e20, 0x2fddf: 0x6d3c8020, - 0x2fde0: 0x6d0e4620, 0x2fde1: 0x6d3c8220, 0x2fde2: 0x6d3c8420, 0x2fde3: 0x6d3c8620, - 0x2fde4: 0x6d3c8820, 0x2fde5: 0x6d3c8a20, 0x2fde6: 0x6d3c8c20, 0x2fde7: 0x6d3c8e20, - 0x2fde8: 0x6d3c9020, 0x2fde9: 0x6d3c9220, 0x2fdea: 0x6d3c9420, 0x2fdeb: 0x6d3c9620, - 0x2fdec: 0x6d3c9820, 0x2fded: 0x6d3c9a20, 0x2fdee: 0x6d3c9c20, 0x2fdef: 0x6d689e20, - 0x2fdf0: 0x6d68a020, 0x2fdf1: 0x6d68a220, 0x2fdf2: 0x6d68a420, 0x2fdf3: 0x6d68a620, - 0x2fdf4: 0x6d68a820, 0x2fdf5: 0x6d68aa20, 0x2fdf6: 0x6d68ac20, 0x2fdf7: 0x6d68ae20, - 0x2fdf8: 0x6d68b020, 0x2fdf9: 0x6d68b220, 0x2fdfa: 0x6d68b420, 0x2fdfb: 0x6d68b620, - 0x2fdfc: 0x6d68b820, 0x2fdfd: 0x6d68ba20, 0x2fdfe: 0x6d68bc20, 0x2fdff: 0x6d68be20, - // Block 0xbf8, offset 0x2fe00 - 0x2fe00: 0x6d68c020, 0x2fe01: 0x6d68c220, 0x2fe02: 0x6d68c420, 0x2fe03: 0x6d68c620, - 0x2fe04: 0x6d68c820, 0x2fe05: 0x6d68ca20, 0x2fe06: 0x6d68cc20, 0x2fe07: 0x6d68ce20, - 0x2fe08: 0x6d68d020, 0x2fe09: 0x6d68d220, 0x2fe0a: 0x6d68d420, 0x2fe0b: 0x6d68d620, - 0x2fe0c: 0x6d68d820, 0x2fe0d: 0x6d68da20, 0x2fe0e: 0x6d68dc20, 0x2fe0f: 0x6d68de20, - 0x2fe10: 0x6d68e020, 0x2fe11: 0x6d68e220, 0x2fe12: 0x6d68e420, 0x2fe13: 0x6d68e620, - 0x2fe14: 0x6d68e820, 0x2fe15: 0x6d68ea20, 0x2fe16: 0x6d68ec20, 0x2fe17: 0x6d68ee20, - 0x2fe18: 0x6d68f020, 0x2fe19: 0x6d68f220, 0x2fe1a: 0x6d68f420, 0x2fe1b: 0x6d697620, - 0x2fe1c: 0x6d923c20, 0x2fe1d: 0x6d923e20, 0x2fe1e: 0x6d924020, 0x2fe1f: 0x6d924220, - 0x2fe20: 0x6d924420, 0x2fe21: 0x6d924620, 0x2fe22: 0x6d924820, 0x2fe23: 0x6d924a20, - 0x2fe24: 0x6d924c20, 0x2fe25: 0x6d924e20, 0x2fe26: 0x6d925020, 0x2fe27: 0x6d925220, - 0x2fe28: 0x6d925420, 0x2fe29: 0x6d68f620, 0x2fe2a: 0x6d925620, 0x2fe2b: 0x6d925820, - 0x2fe2c: 0x6d925a20, 0x2fe2d: 0x6d925c20, 0x2fe2e: 0x6d925e20, 0x2fe2f: 0x6d926020, - 0x2fe30: 0x6d926220, 0x2fe31: 0x6d926420, 0x2fe32: 0x6d926620, 0x2fe33: 0x6d926820, - 0x2fe34: 0x6d926a20, 0x2fe35: 0x6d926c20, 0x2fe36: 0x6d926e20, 0x2fe37: 0x6d927020, - 0x2fe38: 0x6d697820, 0x2fe39: 0x6d927220, 0x2fe3a: 0x6d927420, 0x2fe3b: 0x6d927620, - 0x2fe3c: 0x6d927820, 0x2fe3d: 0x6d927a20, 0x2fe3e: 0x6d927c20, 0x2fe3f: 0x6d927e20, - // Block 0xbf9, offset 0x2fe40 - 0x2fe40: 0x6d928020, 0x2fe41: 0x6d928220, 0x2fe42: 0x6d928420, 0x2fe43: 0x6d928620, - 0x2fe44: 0x6db5e020, 0x2fe45: 0x6db5e220, 0x2fe46: 0x6db5e420, 0x2fe47: 0x6db5e620, - 0x2fe48: 0x6db5e820, 0x2fe49: 0x6db5ea20, 0x2fe4a: 0x6db5ec20, 0x2fe4b: 0x6db5ee20, - 0x2fe4c: 0x6db5f020, 0x2fe4d: 0x6db5f220, 0x2fe4e: 0x6db5f420, 0x2fe4f: 0x6db5f620, - 0x2fe50: 0x6db5f820, 0x2fe51: 0x6db5fa20, 0x2fe52: 0x6db5fc20, 0x2fe53: 0x6db5fe20, - 0x2fe54: 0x6d92fc20, 0x2fe55: 0x6db60020, 0x2fe56: 0x6db60220, 0x2fe57: 0x6db60420, - 0x2fe58: 0x6db60620, 0x2fe59: 0x6db60820, 0x2fe5a: 0x6db60a20, 0x2fe5b: 0x6db60c20, - 0x2fe5c: 0x6db60e20, 0x2fe5d: 0x6db61020, 0x2fe5e: 0x6db61220, 0x2fe5f: 0x6db61420, - 0x2fe60: 0x6db61620, 0x2fe61: 0x6db61820, 0x2fe62: 0x6db61a20, 0x2fe63: 0x6dd46220, - 0x2fe64: 0x6dd46420, 0x2fe65: 0x6dd46620, 0x2fe66: 0x6dd46820, 0x2fe67: 0x6dd46a20, - 0x2fe68: 0x6dd46c20, 0x2fe69: 0x6dd46e20, 0x2fe6a: 0x6dd47020, 0x2fe6b: 0x6dd47220, - 0x2fe6c: 0x6dd47420, 0x2fe6d: 0x6dd47620, 0x2fe6e: 0x6dd47820, 0x2fe6f: 0x6dd47a20, - 0x2fe70: 0x6dd47c20, 0x2fe71: 0x6dd47e20, 0x2fe72: 0x6dd48020, 0x2fe73: 0x6dd48220, - 0x2fe74: 0x6dd48420, 0x2fe75: 0x6dd48620, 0x2fe76: 0x6dd48820, 0x2fe77: 0x6dd48a20, - 0x2fe78: 0x6dd48c20, 0x2fe79: 0x6dd48e20, 0x2fe7a: 0x6dd49020, 0x2fe7b: 0x6dd49220, - 0x2fe7c: 0x6dd49420, 0x2fe7d: 0x6dd49620, 0x2fe7e: 0x6dd49820, 0x2fe7f: 0x6ded5020, - // Block 0xbfa, offset 0x2fe80 - 0x2fe80: 0x6ded5220, 0x2fe81: 0x6ded5420, 0x2fe82: 0x6ded5620, 0x2fe83: 0x6ded5820, - 0x2fe84: 0x6ded5a20, 0x2fe85: 0x6e141420, 0x2fe86: 0x6ded5c20, 0x2fe87: 0x6dd4fa20, - 0x2fe88: 0x6ded5e20, 0x2fe89: 0x6ded6020, 0x2fe8a: 0x6ded6220, 0x2fe8b: 0x6ded6420, - 0x2fe8c: 0x6ded6620, 0x2fe8d: 0x6e024e20, 0x2fe8e: 0x6ded6820, 0x2fe8f: 0x6ded6a20, - 0x2fe90: 0x6ded6c20, 0x2fe91: 0x6ded6e20, 0x2fe92: 0x6ded7020, 0x2fe93: 0x6ded7220, - 0x2fe94: 0x6ded7420, 0x2fe95: 0x6ded7620, 0x2fe96: 0x6ded7820, 0x2fe97: 0x6ded7a20, - 0x2fe98: 0x6ded7c20, 0x2fe99: 0x6ded7e20, 0x2fe9a: 0x6ded8020, 0x2fe9b: 0x6ded8220, - 0x2fe9c: 0x6ded8420, 0x2fe9d: 0x6e025020, 0x2fe9e: 0x6e025220, 0x2fe9f: 0x6e025420, - 0x2fea0: 0x6e025620, 0x2fea1: 0x6e025820, 0x2fea2: 0x6e025a20, 0x2fea3: 0x6e025c20, - 0x2fea4: 0x6e025e20, 0x2fea5: 0x6e026020, 0x2fea6: 0x6e026220, 0x2fea7: 0x6e026420, - 0x2fea8: 0x6e026620, 0x2fea9: 0x6e026820, 0x2feaa: 0x6e026a20, 0x2feab: 0x6e026c20, - 0x2feac: 0x6e026e20, 0x2fead: 0x6e027020, 0x2feae: 0x6e027220, 0x2feaf: 0x6e027420, - 0x2feb0: 0x6e027620, 0x2feb1: 0x6e027820, 0x2feb2: 0x6e027a20, 0x2feb3: 0x6e142220, - 0x2feb4: 0x6e142420, 0x2feb5: 0x6e142620, 0x2feb6: 0x6e142820, 0x2feb7: 0x6e142a20, - 0x2feb8: 0x6e142c20, 0x2feb9: 0x6e142e20, 0x2feba: 0x6e143020, 0x2febb: 0x6e143220, - 0x2febc: 0x6e143420, 0x2febd: 0x6e143620, 0x2febe: 0x6e21c820, 0x2febf: 0x6e21ca20, - // Block 0xbfb, offset 0x2fec0 - 0x2fec0: 0x6e21cc20, 0x2fec1: 0x6e21ce20, 0x2fec2: 0x6e21d020, 0x2fec3: 0x6e21d220, - 0x2fec4: 0x6e21d420, 0x2fec5: 0x6e21d620, 0x2fec6: 0x6e221420, 0x2fec7: 0x6e2c4620, - 0x2fec8: 0x6e2c4820, 0x2fec9: 0x6e2c4a20, 0x2feca: 0x6e2c4c20, 0x2fecb: 0x6e2c4e20, - 0x2fecc: 0x6e2c5020, 0x2fecd: 0x6e2c5220, 0x2fece: 0x6e2c5420, 0x2fecf: 0x6e2c5620, - 0x2fed0: 0x6e2c5820, 0x2fed1: 0x6e347c20, 0x2fed2: 0x6e347e20, 0x2fed3: 0x6e348020, - 0x2fed4: 0x6e348220, 0x2fed5: 0x6e348420, 0x2fed6: 0x6e348620, 0x2fed7: 0x6e3a3c20, - 0x2fed8: 0x6e3a3e20, 0x2fed9: 0x6e3a4020, 0x2feda: 0x6e3e3420, 0x2fedb: 0x6e3e3620, - 0x2fedc: 0x6e410420, 0x2fedd: 0x6e410620, 0x2fede: 0x6e410820, 0x2fedf: 0x6e448020, - 0x2fee0: 0x6c00c820, 0x2fee1: 0x6c050e20, 0x2fee2: 0x6c051020, 0x2fee3: 0x6c051220, - 0x2fee4: 0x6c051420, 0x2fee5: 0x6c051620, 0x2fee6: 0x6c0a6420, 0x2fee7: 0x6c0a6620, - 0x2fee8: 0x6c0a6820, 0x2fee9: 0x6c0a6a20, 0x2feea: 0x6c0a6c20, 0x2feeb: 0x6c0a6e20, - 0x2feec: 0x6c0a7020, 0x2feed: 0x6c0a7220, 0x2feee: 0x6c0a7420, 0x2feef: 0x6c0a7620, - 0x2fef0: 0x6c0a7820, 0x2fef1: 0x6c0a7a20, 0x2fef2: 0x6c14dc20, 0x2fef3: 0x6c14de20, - 0x2fef4: 0x6c14e020, 0x2fef5: 0x6c14e220, 0x2fef6: 0x6c14e420, 0x2fef7: 0x6c14e620, - 0x2fef8: 0x6c14e820, 0x2fef9: 0x6c14ea20, 0x2fefa: 0x6c14ec20, 0x2fefb: 0x6c14ee20, - 0x2fefc: 0x6c14f020, 0x2fefd: 0x6c14f220, 0x2fefe: 0x6c14f420, 0x2feff: 0x6c14f620, - // Block 0xbfc, offset 0x2ff00 - 0x2ff00: 0x6c14f820, 0x2ff01: 0x6c26b220, 0x2ff02: 0x6c26b420, 0x2ff03: 0x6c26b620, - 0x2ff04: 0x6c26b820, 0x2ff05: 0x6c26ba20, 0x2ff06: 0x6c26bc20, 0x2ff07: 0x6c26be20, - 0x2ff08: 0x6c26c020, 0x2ff09: 0x6c26c220, 0x2ff0a: 0x6c26c420, 0x2ff0b: 0x6c26c620, - 0x2ff0c: 0x6c26c820, 0x2ff0d: 0x6c26ca20, 0x2ff0e: 0x6c26cc20, 0x2ff0f: 0x6c26ce20, - 0x2ff10: 0x6c26d020, 0x2ff11: 0x6c26d220, 0x2ff12: 0x6c26d420, 0x2ff13: 0x6c407e20, - 0x2ff14: 0x6c408020, 0x2ff15: 0x6c408220, 0x2ff16: 0x6c408420, 0x2ff17: 0x6c408620, - 0x2ff18: 0x6c408820, 0x2ff19: 0x6c408a20, 0x2ff1a: 0x6c408c20, 0x2ff1b: 0x6c408e20, - 0x2ff1c: 0x6c409020, 0x2ff1d: 0x6c409220, 0x2ff1e: 0x6c409420, 0x2ff1f: 0x6c409620, - 0x2ff20: 0x6c409820, 0x2ff21: 0x6c409a20, 0x2ff22: 0x6c409c20, 0x2ff23: 0x6c409e20, - 0x2ff24: 0x6c40a020, 0x2ff25: 0x6c40a220, 0x2ff26: 0x6c40a420, 0x2ff27: 0x6c40a620, - 0x2ff28: 0x6c40a820, 0x2ff29: 0x6c40aa20, 0x2ff2a: 0x6c609c20, 0x2ff2b: 0x6c609e20, - 0x2ff2c: 0x6c60a020, 0x2ff2d: 0x6c60a220, 0x2ff2e: 0x6c60a420, 0x2ff2f: 0x6c60a620, - 0x2ff30: 0x6c60a820, 0x2ff31: 0x6c60aa20, 0x2ff32: 0x6c60ac20, 0x2ff33: 0x6c60ae20, - 0x2ff34: 0x6c60b020, 0x2ff35: 0x6c60b220, 0x2ff36: 0x6c60b420, 0x2ff37: 0x6c869020, - 0x2ff38: 0x6c869220, 0x2ff39: 0x6c869420, 0x2ff3a: 0x6c869620, 0x2ff3b: 0x6c869820, - 0x2ff3c: 0x6c869a20, 0x2ff3d: 0x6c869c20, 0x2ff3e: 0x6c869e20, 0x2ff3f: 0x6c86a020, - // Block 0xbfd, offset 0x2ff40 - 0x2ff40: 0x6c86a220, 0x2ff41: 0x6c86a420, 0x2ff42: 0x6c86a620, 0x2ff43: 0x6c86a820, - 0x2ff44: 0x6c86aa20, 0x2ff45: 0x6c86ac20, 0x2ff46: 0x6c86ae20, 0x2ff47: 0x6c86b020, - 0x2ff48: 0x6c86b220, 0x2ff49: 0x6c86b420, 0x2ff4a: 0x6c86b620, 0x2ff4b: 0x6cb10c20, - 0x2ff4c: 0x6cb10e20, 0x2ff4d: 0x6cb11020, 0x2ff4e: 0x6cb11220, 0x2ff4f: 0x6cb11420, - 0x2ff50: 0x6cb11620, 0x2ff51: 0x6cb11820, 0x2ff52: 0x6cb11a20, 0x2ff53: 0x6cb11c20, - 0x2ff54: 0x6cb11e20, 0x2ff55: 0x6cb12020, 0x2ff56: 0x6cb12220, 0x2ff57: 0x6cb12420, - 0x2ff58: 0x6cb12620, 0x2ff59: 0x6cb12820, 0x2ff5a: 0x6cb12a20, 0x2ff5b: 0x6cb12c20, - 0x2ff5c: 0x6cb12e20, 0x2ff5d: 0x6cb13020, 0x2ff5e: 0x6cb13220, 0x2ff5f: 0x6ce02c20, - 0x2ff60: 0x6ce02e20, 0x2ff61: 0x6ce03020, 0x2ff62: 0x6ce03220, 0x2ff63: 0x6ce03420, - 0x2ff64: 0x6ce03620, 0x2ff65: 0x6ce03820, 0x2ff66: 0x6ce03a20, 0x2ff67: 0x6ce03c20, - 0x2ff68: 0x6d0eb420, 0x2ff69: 0x6d0eb620, 0x2ff6a: 0x6d0eb820, 0x2ff6b: 0x6d0eba20, - 0x2ff6c: 0x6d0ebc20, 0x2ff6d: 0x6d3d0620, 0x2ff6e: 0x6d3d0820, 0x2ff6f: 0x6d3d0a20, - 0x2ff70: 0x6d3d0c20, 0x2ff71: 0x6d3d0e20, 0x2ff72: 0x6d3d1020, 0x2ff73: 0x6d697c20, - 0x2ff74: 0x6d697e20, 0x2ff75: 0x6d698020, 0x2ff76: 0x6dede020, 0x2ff77: 0x6c26e620, - 0x2ff78: 0x6c86c620, 0x2ff79: 0x6cb14020, 0x2ff7a: 0x6cb14220, 0x2ff7b: 0x6cb14420, - 0x2ff7c: 0x6d0ec220, 0x2ff7d: 0x6d3d1820, 0x2ff7e: 0x6d698620, 0x2ff7f: 0x6db6a020, - // Block 0xbfe, offset 0x2ff80 - 0x2ff80: 0x6db6a220, 0x2ff81: 0x6db6a420, 0x2ff82: 0x6dd50020, 0x2ff83: 0x6dede220, - 0x2ff84: 0x6e221820, 0x2ff85: 0x6e2c7820, 0x2ff86: 0x6c26ea20, 0x2ff87: 0x6c86ce20, - 0x2ff88: 0x6c86d020, 0x2ff89: 0x6cb15220, 0x2ff8a: 0x6d0ecc20, 0x2ff8b: 0x6d0ece20, - 0x2ff8c: 0x6d699820, 0x2ff8d: 0x6d699a20, 0x2ff8e: 0x6d699c20, 0x2ff8f: 0x6db6b420, - 0x2ff90: 0x6dd50420, 0x2ff91: 0x6e02ba20, 0x2ff92: 0x6e3a5620, 0x2ff93: 0x6e411420, - 0x2ff94: 0x6e431e20, 0x2ff95: 0x6c26ec20, 0x2ff96: 0x6c40b820, 0x2ff97: 0x6c86da20, - 0x2ff98: 0x6cb15c20, 0x2ff99: 0x6cb15e20, 0x2ff9a: 0x6cb16020, 0x2ff9b: 0x6cb16220, - 0x2ff9c: 0x6cb16420, 0x2ff9d: 0x6cb16620, 0x2ff9e: 0x6ce05e20, 0x2ff9f: 0x6ce06020, - 0x2ffa0: 0x6ce06220, 0x2ffa1: 0x6ce06420, 0x2ffa2: 0x6d0ed820, 0x2ffa3: 0x6d0eda20, - 0x2ffa4: 0x6d0edc20, 0x2ffa5: 0x6d0ede20, 0x2ffa6: 0x6d0ee020, 0x2ffa7: 0x6d3d2c20, - 0x2ffa8: 0x6d3d2e20, 0x2ffa9: 0x6d3d3020, 0x2ffaa: 0x6d3d3220, 0x2ffab: 0x6d932420, - 0x2ffac: 0x6d69da20, 0x2ffad: 0x6d932620, 0x2ffae: 0x6d932820, 0x2ffaf: 0x6db6c620, - 0x2ffb0: 0x6db6c820, 0x2ffb1: 0x6db6ca20, 0x2ffb2: 0x6db6cc20, 0x2ffb3: 0x6db6ce20, - 0x2ffb4: 0x6dd51620, 0x2ffb5: 0x6dd51820, 0x2ffb6: 0x6dee1620, 0x2ffb7: 0x6dee0a20, - 0x2ffb8: 0x6c26f220, 0x2ffb9: 0x6c86e420, 0x2ffba: 0x6c86e620, 0x2ffbb: 0x6c86e820, - 0x2ffbc: 0x6cb18020, 0x2ffbd: 0x6cb18220, 0x2ffbe: 0x6ce07e20, 0x2ffbf: 0x6ce08020, - // Block 0xbff, offset 0x2ffc0 - 0x2ffc0: 0x6ce08220, 0x2ffc1: 0x6ce08420, 0x2ffc2: 0x6ce08620, 0x2ffc3: 0x6ce08820, - 0x2ffc4: 0x6d0efe20, 0x2ffc5: 0x6d0f0020, 0x2ffc6: 0x6d0f0220, 0x2ffc7: 0x6d0f0420, - 0x2ffc8: 0x6d0f0620, 0x2ffc9: 0x6d0f0820, 0x2ffca: 0x6d0f0a20, 0x2ffcb: 0x6d3d5020, - 0x2ffcc: 0x6d3d5220, 0x2ffcd: 0x6d3d5420, 0x2ffce: 0x6d69e020, 0x2ffcf: 0x6d69e220, - 0x2ffd0: 0x6d934220, 0x2ffd1: 0x6d934420, 0x2ffd2: 0x6d934620, 0x2ffd3: 0x6d934820, - 0x2ffd4: 0x6db6e420, 0x2ffd5: 0x6db6e620, 0x2ffd6: 0x6db6e820, 0x2ffd7: 0x6dd52c20, - 0x2ffd8: 0x6dd52e20, 0x2ffd9: 0x6dd53020, 0x2ffda: 0x6dee2020, 0x2ffdb: 0x6e3a6620, - 0x2ffdc: 0x6e411c20, 0x2ffdd: 0x6c26f420, 0x2ffde: 0x6c60c820, 0x2ffdf: 0x6c60ca20, - 0x2ffe0: 0x6c60cc20, 0x2ffe1: 0x6c86f020, 0x2ffe2: 0x6c86f220, 0x2ffe3: 0x6c86f420, - 0x2ffe4: 0x6c86f620, 0x2ffe5: 0x6cb19820, 0x2ffe6: 0x6cb19a20, 0x2ffe7: 0x6cb19c20, - 0x2ffe8: 0x6cb19e20, 0x2ffe9: 0x6cb1a020, 0x2ffea: 0x6cb1a220, 0x2ffeb: 0x6cb1a420, - 0x2ffec: 0x6cb1a620, 0x2ffed: 0x6cb1a820, 0x2ffee: 0x6cb1aa20, 0x2ffef: 0x6ce0bc20, - 0x2fff0: 0x6ce0be20, 0x2fff1: 0x6ce0c020, 0x2fff2: 0x6d0f2620, 0x2fff3: 0x6ce0c220, - 0x2fff4: 0x6ce0c420, 0x2fff5: 0x6ce0c620, 0x2fff6: 0x6ce0c820, 0x2fff7: 0x6ce0ca20, - 0x2fff8: 0x6ce0cc20, 0x2fff9: 0x6ce0ce20, 0x2fffa: 0x6ce0d020, 0x2fffb: 0x6ce0d220, - 0x2fffc: 0x6ce0d420, 0x2fffd: 0x6ce0d620, 0x2fffe: 0x6ce0d820, 0x2ffff: 0x6ce0da20, - // Block 0xc00, offset 0x30000 - 0x30000: 0x6ce0dc20, 0x30001: 0x6ce0de20, 0x30002: 0x6d0f2e20, 0x30003: 0x6d0f3020, - 0x30004: 0x6d0f3220, 0x30005: 0x6d0f3420, 0x30006: 0x6d0f3620, 0x30007: 0x6d0f3820, - 0x30008: 0x6d0f3a20, 0x30009: 0x6d0f3c20, 0x3000a: 0x6d0f3e20, 0x3000b: 0x6d0f4020, - 0x3000c: 0x6d0f4220, 0x3000d: 0x6d0f4420, 0x3000e: 0x6d0f4620, 0x3000f: 0x6d3d7c20, - 0x30010: 0x6d3d7e20, 0x30011: 0x6d3d8020, 0x30012: 0x6d3d8220, 0x30013: 0x6d3d8420, - 0x30014: 0x6d3d8620, 0x30015: 0x6d3d8820, 0x30016: 0x6d3d8a20, 0x30017: 0x6d3d8c20, - 0x30018: 0x6d3d8e20, 0x30019: 0x6d6a1420, 0x3001a: 0x6d6a1620, 0x3001b: 0x6d6a1820, - 0x3001c: 0x6d6a1a20, 0x3001d: 0x6d6a1c20, 0x3001e: 0x6d6a1e20, 0x3001f: 0x6d6a2020, - 0x30020: 0x6d6a2220, 0x30021: 0x6d6a2420, 0x30022: 0x6d6a2620, 0x30023: 0x6d6a2820, - 0x30024: 0x6d6a2a20, 0x30025: 0x6d6a2c20, 0x30026: 0x6d6a2e20, 0x30027: 0x6d6a3020, - 0x30028: 0x6d6a3220, 0x30029: 0x6d6a3420, 0x3002a: 0x6d6a3620, 0x3002b: 0x6d6a3820, - 0x3002c: 0x6d6a3a20, 0x3002d: 0x6d6a6c20, 0x3002e: 0x6d937220, 0x3002f: 0x6d937420, - 0x30030: 0x6d937620, 0x30031: 0x6d937820, 0x30032: 0x6d937a20, 0x30033: 0x6d937c20, - 0x30034: 0x6d937e20, 0x30035: 0x6d938020, 0x30036: 0x6db70820, 0x30037: 0x6db70a20, - 0x30038: 0x6db70c20, 0x30039: 0x6db70e20, 0x3003a: 0x6db71020, 0x3003b: 0x6db71220, - 0x3003c: 0x6db71420, 0x3003d: 0x6db71620, 0x3003e: 0x6dd54820, 0x3003f: 0x6dd54a20, - // Block 0xc01, offset 0x30040 - 0x30040: 0x6dd54c20, 0x30041: 0x6dc6ba20, 0x30042: 0x6dd54e20, 0x30043: 0x6dd55020, - 0x30044: 0x6dd55220, 0x30045: 0x6dd55420, 0x30046: 0x6dee3820, 0x30047: 0x6dee3a20, - 0x30048: 0x6dee3c20, 0x30049: 0x6dee3e20, 0x3004a: 0x6dee4020, 0x3004b: 0x6dee4220, - 0x3004c: 0x6dee4420, 0x3004d: 0x6e02e420, 0x3004e: 0x6e02e620, 0x3004f: 0x6e02e820, - 0x30050: 0x6e148420, 0x30051: 0x6e148620, 0x30052: 0x6e148820, 0x30053: 0x6e148a20, - 0x30054: 0x6e148c20, 0x30055: 0x6e223220, 0x30056: 0x6e223420, 0x30057: 0x6e223620, - 0x30058: 0x6e223820, 0x30059: 0x6e2c8c20, 0x3005a: 0x6e2c8e20, 0x3005b: 0x6e34b020, - 0x3005c: 0x6e3a6820, 0x3005d: 0x6c051820, 0x3005e: 0x6c150020, 0x3005f: 0x6c150220, - 0x30060: 0x6c150420, 0x30061: 0x6c26f620, 0x30062: 0x6c26f820, 0x30063: 0x6c40c020, - 0x30064: 0x6c40c220, 0x30065: 0x6c40c420, 0x30066: 0x6c40c620, 0x30067: 0x6c40c820, - 0x30068: 0x6c40ca20, 0x30069: 0x6c40cc20, 0x3006a: 0x6c40ce20, 0x3006b: 0x6c40d020, - 0x3006c: 0x6c40d220, 0x3006d: 0x6c40d420, 0x3006e: 0x6c40d620, 0x3006f: 0x6c40d820, - 0x30070: 0x6c60dc20, 0x30071: 0x6c60de20, 0x30072: 0x6c60e020, 0x30073: 0x6c60e220, - 0x30074: 0x6c60e420, 0x30075: 0x6c60e620, 0x30076: 0x6c60e820, 0x30077: 0x6c60ea20, - 0x30078: 0x6c60ec20, 0x30079: 0x6c60ee20, 0x3007a: 0x6c60f020, 0x3007b: 0x6c60f220, - 0x3007c: 0x6c871020, 0x3007d: 0x6c871220, 0x3007e: 0x6c871420, 0x3007f: 0x6c871620, - // Block 0xc02, offset 0x30080 - 0x30080: 0x6c871820, 0x30081: 0x6c871a20, 0x30082: 0x6c871c20, 0x30083: 0x6c871e20, - 0x30084: 0x6c872020, 0x30085: 0x6c872220, 0x30086: 0x6c872420, 0x30087: 0x6cb1dc20, - 0x30088: 0x6cb1de20, 0x30089: 0x6cb1e020, 0x3008a: 0x6cb1e220, 0x3008b: 0x6ce11820, - 0x3008c: 0x6ce11a20, 0x3008d: 0x6ce11c20, 0x3008e: 0x6ce11e20, 0x3008f: 0x6ce12020, - 0x30090: 0x6ce12220, 0x30091: 0x6ce12420, 0x30092: 0x6ce12620, 0x30093: 0x6ce12820, - 0x30094: 0x6ce12a20, 0x30095: 0x6ce12c20, 0x30096: 0x6d0f9220, 0x30097: 0x6d0f9420, - 0x30098: 0x6d3dc220, 0x30099: 0x6d3dc420, 0x3009a: 0x6d3dc620, 0x3009b: 0x6d3dc820, - 0x3009c: 0x6d6a7220, 0x3009d: 0x6d93c220, 0x3009e: 0x6d93c420, 0x3009f: 0x6d93c620, - 0x300a0: 0x6d93c820, 0x300a1: 0x6db74020, 0x300a2: 0x6db74220, 0x300a3: 0x6e14a420, - 0x300a4: 0x6c26fa20, 0x300a5: 0x6cb1e820, 0x300a6: 0x6cb1ea20, 0x300a7: 0x6cb1ec20, - 0x300a8: 0x6d0f9a20, 0x300a9: 0x6d0f9c20, 0x300aa: 0x6d0f9e20, 0x300ab: 0x6d3dce20, - 0x300ac: 0x6d93cc20, 0x300ad: 0x6d6a8220, 0x300ae: 0x6d93ce20, 0x300af: 0x6db74420, - 0x300b0: 0x6c26fc20, 0x300b1: 0x6c150620, 0x300b2: 0x6c60fe20, 0x300b3: 0x6c610020, - 0x300b4: 0x6c610220, 0x300b5: 0x6c610420, 0x300b6: 0x6c872e20, 0x300b7: 0x6c873020, - 0x300b8: 0x6c873220, 0x300b9: 0x6cb1fa20, 0x300ba: 0x6cb1fc20, 0x300bb: 0x6cb1fe20, - 0x300bc: 0x6cb20020, 0x300bd: 0x6cb20220, 0x300be: 0x6cb20420, 0x300bf: 0x6cb20620, - // Block 0xc03, offset 0x300c0 - 0x300c0: 0x6ce14e20, 0x300c1: 0x6ce15020, 0x300c2: 0x6ce15220, 0x300c3: 0x6ce15420, - 0x300c4: 0x6ce15620, 0x300c5: 0x6ce15820, 0x300c6: 0x6ce15a20, 0x300c7: 0x6ce15c20, - 0x300c8: 0x6ce15e20, 0x300c9: 0x6ce16020, 0x300ca: 0x6ce16220, 0x300cb: 0x6ce16420, - 0x300cc: 0x6d0fb420, 0x300cd: 0x6d0fb620, 0x300ce: 0x6d0fb820, 0x300cf: 0x6d0fba20, - 0x300d0: 0x6d0fbc20, 0x300d1: 0x6d0fbe20, 0x300d2: 0x6d0fc020, 0x300d3: 0x6d0fc220, - 0x300d4: 0x6d0fc420, 0x300d5: 0x6d3de820, 0x300d6: 0x6d3dea20, 0x300d7: 0x6d3dec20, - 0x300d8: 0x6d3dee20, 0x300d9: 0x6d3df020, 0x300da: 0x6d3df220, 0x300db: 0x6d6a9020, - 0x300dc: 0x6d6a9220, 0x300dd: 0x6d6a9420, 0x300de: 0x6d6a9620, 0x300df: 0x6d6a9820, - 0x300e0: 0x6d6a9a20, 0x300e1: 0x6d6a9c20, 0x300e2: 0x6d6a9e20, 0x300e3: 0x6d6aa020, - 0x300e4: 0x6d6aa220, 0x300e5: 0x6d93e420, 0x300e6: 0x6d93e620, 0x300e7: 0x6d93e820, - 0x300e8: 0x6db75620, 0x300e9: 0x6dd5dc20, 0x300ea: 0x6dee8820, 0x300eb: 0x6dee8a20, - 0x300ec: 0x6dee8c20, 0x300ed: 0x6dee8e20, 0x300ee: 0x6e031220, 0x300ef: 0x6e14b020, - 0x300f0: 0x6e14b220, 0x300f1: 0x6e2cb020, 0x300f2: 0x6e3e4a20, 0x300f3: 0x6c270220, - 0x300f4: 0x6c611a20, 0x300f5: 0x6c875420, 0x300f6: 0x6c875620, 0x300f7: 0x6c875820, - 0x300f8: 0x6c875a20, 0x300f9: 0x6cb24e20, 0x300fa: 0x6cb25020, 0x300fb: 0x6cb25220, - 0x300fc: 0x6d101620, 0x300fd: 0x6cb25420, 0x300fe: 0x6cb25620, 0x300ff: 0x6cb25820, - // Block 0xc04, offset 0x30100 - 0x30100: 0x6cb25a20, 0x30101: 0x6cb25c20, 0x30102: 0x6cb25e20, 0x30103: 0x6cb26020, - 0x30104: 0x6cb26220, 0x30105: 0x6ce1ba20, 0x30106: 0x6ce1bc20, 0x30107: 0x6ce1be20, - 0x30108: 0x6ce1c020, 0x30109: 0x6ce1c220, 0x3010a: 0x6ce1c420, 0x3010b: 0x6ce1c620, - 0x3010c: 0x6ce1c820, 0x3010d: 0x6ce1ca20, 0x3010e: 0x6ce1cc20, 0x3010f: 0x6ce1ce20, - 0x30110: 0x6d100820, 0x30111: 0x6ce1d020, 0x30112: 0x6ce1d220, 0x30113: 0x6ce1d420, - 0x30114: 0x6ce1d620, 0x30115: 0x6ce1d820, 0x30116: 0x6ce1da20, 0x30117: 0x6ce1dc20, - 0x30118: 0x6ce1de20, 0x30119: 0x6ce1e020, 0x3011a: 0x6ce1e220, 0x3011b: 0x6ce1e420, - 0x3011c: 0x6ce1e620, 0x3011d: 0x6ce1e820, 0x3011e: 0x6ce1ea20, 0x3011f: 0x6d101820, - 0x30120: 0x6d101a20, 0x30121: 0x6d101c20, 0x30122: 0x6d101e20, 0x30123: 0x6d102020, - 0x30124: 0x6d102220, 0x30125: 0x6d102420, 0x30126: 0x6d102620, 0x30127: 0x6d102820, - 0x30128: 0x6d102a20, 0x30129: 0x6d102c20, 0x3012a: 0x6d102e20, 0x3012b: 0x6d103020, - 0x3012c: 0x6d103220, 0x3012d: 0x6d103420, 0x3012e: 0x6d103620, 0x3012f: 0x6d103820, - 0x30130: 0x6d103a20, 0x30131: 0x6d103c20, 0x30132: 0x6d103e20, 0x30133: 0x6d104020, - 0x30134: 0x6d104220, 0x30135: 0x6ce1ec20, 0x30136: 0x6d104420, 0x30137: 0x6d104620, - 0x30138: 0x6d104820, 0x30139: 0x6d104a20, 0x3013a: 0x6d104c20, 0x3013b: 0x6d104e20, - 0x3013c: 0x6d3e4c20, 0x3013d: 0x6d3e4e20, 0x3013e: 0x6d3e5020, 0x3013f: 0x6d3e5220, - // Block 0xc05, offset 0x30140 - 0x30140: 0x6d3e5420, 0x30141: 0x6d3e5620, 0x30142: 0x6d3e5820, 0x30143: 0x6d3e5a20, - 0x30144: 0x6d3e5c20, 0x30145: 0x6d3e5e20, 0x30146: 0x6d3e6020, 0x30147: 0x6d3e6220, - 0x30148: 0x6d3e6420, 0x30149: 0x6d3e6620, 0x3014a: 0x6d3e6820, 0x3014b: 0x6d3e6a20, - 0x3014c: 0x6d3e6c20, 0x3014d: 0x6d3e6e20, 0x3014e: 0x6d3e7020, 0x3014f: 0x6d6afa20, - 0x30150: 0x6d6afc20, 0x30151: 0x6d6afe20, 0x30152: 0x6d6b0020, 0x30153: 0x6d6b0220, - 0x30154: 0x6d6b0420, 0x30155: 0x6d6b0620, 0x30156: 0x6d6b0820, 0x30157: 0x6d6b0a20, - 0x30158: 0x6d6b0c20, 0x30159: 0x6d6b0e20, 0x3015a: 0x6d6b1020, 0x3015b: 0x6d6b1220, - 0x3015c: 0x6d6b1420, 0x3015d: 0x6d6b1620, 0x3015e: 0x6d6b1820, 0x3015f: 0x6d6b1a20, - 0x30160: 0x6d6b1c20, 0x30161: 0x6d6b1e20, 0x30162: 0x6d6b2020, 0x30163: 0x6d6b2220, - 0x30164: 0x6d6b2420, 0x30165: 0x6d6b2620, 0x30166: 0x6d6b2820, 0x30167: 0x6d6b2a20, - 0x30168: 0x6d6b2c20, 0x30169: 0x6d6b2e20, 0x3016a: 0x6d6b3020, 0x3016b: 0x6d6b9820, - 0x3016c: 0x6d6b3220, 0x3016d: 0x6d6b3420, 0x3016e: 0x6d6b3620, 0x3016f: 0x6d6b3820, - 0x30170: 0x6d944620, 0x30171: 0x6d944820, 0x30172: 0x6d944a20, 0x30173: 0x6d944c20, - 0x30174: 0x6d944e20, 0x30175: 0x6d945020, 0x30176: 0x6d945220, 0x30177: 0x6d6b9a20, - 0x30178: 0x6d945420, 0x30179: 0x6d945620, 0x3017a: 0x6d6b3a20, 0x3017b: 0x6d945820, - 0x3017c: 0x6d945a20, 0x3017d: 0x6d945c20, 0x3017e: 0x6d945e20, 0x3017f: 0x6d946020, - // Block 0xc06, offset 0x30180 - 0x30180: 0x6d946220, 0x30181: 0x6d946420, 0x30182: 0x6d946620, 0x30183: 0x6d946820, - 0x30184: 0x6d946a20, 0x30185: 0x6d946c20, 0x30186: 0x6db79220, 0x30187: 0x6db79420, - 0x30188: 0x6db79620, 0x30189: 0x6db79820, 0x3018a: 0x6db79a20, 0x3018b: 0x6db79c20, - 0x3018c: 0x6db79e20, 0x3018d: 0x6db7a020, 0x3018e: 0x6db7a220, 0x3018f: 0x6db7a420, - 0x30190: 0x6db7a620, 0x30191: 0x6db7a820, 0x30192: 0x6db7aa20, 0x30193: 0x6db7ac20, - 0x30194: 0x6dd5e820, 0x30195: 0x6dd5ea20, 0x30196: 0x6dd5ec20, 0x30197: 0x6dd5ee20, - 0x30198: 0x6dd5f020, 0x30199: 0x6dd5f220, 0x3019a: 0x6dd5f420, 0x3019b: 0x6dd5f620, - 0x3019c: 0x6dd5f820, 0x3019d: 0x6dd5fa20, 0x3019e: 0x6dd5fc20, 0x3019f: 0x6dd5fe20, - 0x301a0: 0x6dd60020, 0x301a1: 0x6dd60220, 0x301a2: 0x6dd60420, 0x301a3: 0x6dd60620, - 0x301a4: 0x6dd60820, 0x301a5: 0x6dd60a20, 0x301a6: 0x6dd60c20, 0x301a7: 0x6dd60e20, - 0x301a8: 0x6deec820, 0x301a9: 0x6dd6aa20, 0x301aa: 0x6deeca20, 0x301ab: 0x6deecc20, - 0x301ac: 0x6deece20, 0x301ad: 0x6deed020, 0x301ae: 0x6dd61020, 0x301af: 0x6deed220, - 0x301b0: 0x6deed420, 0x301b1: 0x6deed620, 0x301b2: 0x6deed820, 0x301b3: 0x6deeda20, - 0x301b4: 0x6deedc20, 0x301b5: 0x6deede20, 0x301b6: 0x6deee020, 0x301b7: 0x6deee220, - 0x301b8: 0x6deee420, 0x301b9: 0x6deee620, 0x301ba: 0x6deee820, 0x301bb: 0x6deeea20, - 0x301bc: 0x6deeec20, 0x301bd: 0x6deeee20, 0x301be: 0x6deef020, 0x301bf: 0x6deef220, - // Block 0xc07, offset 0x301c0 - 0x301c0: 0x6dd61220, 0x301c1: 0x6e033020, 0x301c2: 0x6e033220, 0x301c3: 0x6e033420, - 0x301c4: 0x6e033620, 0x301c5: 0x6e033820, 0x301c6: 0x6e033a20, 0x301c7: 0x6def6820, - 0x301c8: 0x6e033c20, 0x301c9: 0x6e033e20, 0x301ca: 0x6e14c820, 0x301cb: 0x6e14ca20, - 0x301cc: 0x6e14cc20, 0x301cd: 0x6e14ce20, 0x301ce: 0x6e14d020, 0x301cf: 0x6e14d220, - 0x301d0: 0x6e227220, 0x301d1: 0x6e227420, 0x301d2: 0x6e227620, 0x301d3: 0x6e227820, - 0x301d4: 0x6e227a20, 0x301d5: 0x6e227c20, 0x301d6: 0x6e227e20, 0x301d7: 0x6e22aa20, - 0x301d8: 0x6e2cc220, 0x301d9: 0x6e2cc420, 0x301da: 0x6e22ac20, 0x301db: 0x6e2cc620, - 0x301dc: 0x6e2cc820, 0x301dd: 0x6e34c220, 0x301de: 0x6e34c420, 0x301df: 0x6e34c620, - 0x301e0: 0x6e34c820, 0x301e1: 0x6e3a7c20, 0x301e2: 0x6e3a7e20, 0x301e3: 0x6e3a8020, - 0x301e4: 0x6e3a8220, 0x301e5: 0x6e3a8420, 0x301e6: 0x6e3e4c20, 0x301e7: 0x6e3e4e20, - 0x301e8: 0x6e432420, 0x301e9: 0x6e412220, 0x301ea: 0x6e412420, 0x301eb: 0x6c270620, - 0x301ec: 0x6c878020, 0x301ed: 0x6cb2aa20, 0x301ee: 0x6cb2ac20, 0x301ef: 0x6cb2ae20, - 0x301f0: 0x6ce24420, 0x301f1: 0x6d10b820, 0x301f2: 0x6d10ba20, 0x301f3: 0x6d3ee220, - 0x301f4: 0x6d3ee420, 0x301f5: 0x6d3ee620, 0x301f6: 0x6d6b9e20, 0x301f7: 0x6d6ba020, - 0x301f8: 0x6d6ba220, 0x301f9: 0x6d6ba420, 0x301fa: 0x6d6ba620, 0x301fb: 0x6d6ba820, - 0x301fc: 0x6d6baa20, 0x301fd: 0x6d94e420, 0x301fe: 0x6d94e620, 0x301ff: 0x6dd6ac20, - // Block 0xc08, offset 0x30200 - 0x30200: 0x6dd6ae20, 0x30201: 0x6dd6b020, 0x30202: 0x6def6c20, 0x30203: 0x6def6e20, - 0x30204: 0x6def7020, 0x30205: 0x6def7220, 0x30206: 0x6e039c20, 0x30207: 0x6e150620, - 0x30208: 0x6e34de20, 0x30209: 0x6e412c20, 0x3020a: 0x6c270e20, 0x3020b: 0x6c40e420, - 0x3020c: 0x6c613220, 0x3020d: 0x6c613420, 0x3020e: 0x6c878e20, 0x3020f: 0x6c879020, - 0x30210: 0x6c879220, 0x30211: 0x6c879420, 0x30212: 0x6c879620, 0x30213: 0x6c879820, - 0x30214: 0x6c879a20, 0x30215: 0x6c879c20, 0x30216: 0x6cb2e420, 0x30217: 0x6cb2e620, - 0x30218: 0x6cb2e820, 0x30219: 0x6cb2ea20, 0x3021a: 0x6cb2ec20, 0x3021b: 0x6cb2ee20, - 0x3021c: 0x6cb2f020, 0x3021d: 0x6cb2f220, 0x3021e: 0x6cb2f420, 0x3021f: 0x6cb2f620, - 0x30220: 0x6cb2f820, 0x30221: 0x6cb2fa20, 0x30222: 0x6cb2fc20, 0x30223: 0x6cb2fe20, - 0x30224: 0x6ce26c20, 0x30225: 0x6ce26e20, 0x30226: 0x6ce27020, 0x30227: 0x6ce27220, - 0x30228: 0x6ce27420, 0x30229: 0x6ce27620, 0x3022a: 0x6ce27820, 0x3022b: 0x6ce27a20, - 0x3022c: 0x6ce27c20, 0x3022d: 0x6d10ea20, 0x3022e: 0x6ce27e20, 0x3022f: 0x6ce28020, - 0x30230: 0x6ce28220, 0x30231: 0x6ce28420, 0x30232: 0x6ce28620, 0x30233: 0x6ce28820, - 0x30234: 0x6ce28a20, 0x30235: 0x6ce28c20, 0x30236: 0x6ce28e20, 0x30237: 0x6ce29020, - 0x30238: 0x6ce29220, 0x30239: 0x6ce29420, 0x3023a: 0x6ce29620, 0x3023b: 0x6ce29820, - 0x3023c: 0x6ce29a20, 0x3023d: 0x6ce29c20, 0x3023e: 0x6d10ec20, 0x3023f: 0x6d10ee20, - // Block 0xc09, offset 0x30240 - 0x30240: 0x6d10f020, 0x30241: 0x6d10f220, 0x30242: 0x6d10f420, 0x30243: 0x6d10f620, - 0x30244: 0x6d10f820, 0x30245: 0x6d10fa20, 0x30246: 0x6d10fc20, 0x30247: 0x6d10fe20, - 0x30248: 0x6d110020, 0x30249: 0x6d110220, 0x3024a: 0x6d110420, 0x3024b: 0x6d110620, - 0x3024c: 0x6d110820, 0x3024d: 0x6d3f0a20, 0x3024e: 0x6d3f0c20, 0x3024f: 0x6d3f0e20, - 0x30250: 0x6d3f1020, 0x30251: 0x6d3f1220, 0x30252: 0x6d3f1420, 0x30253: 0x6d3f1620, - 0x30254: 0x6d3f1820, 0x30255: 0x6d3f1a20, 0x30256: 0x6d6bd020, 0x30257: 0x6d6bd220, - 0x30258: 0x6d6bd420, 0x30259: 0x6d6bd620, 0x3025a: 0x6d6bd820, 0x3025b: 0x6d6bda20, - 0x3025c: 0x6d6bdc20, 0x3025d: 0x6d6bde20, 0x3025e: 0x6d6be020, 0x3025f: 0x6d6be220, - 0x30260: 0x6d6be420, 0x30261: 0x6d6be620, 0x30262: 0x6d6be820, 0x30263: 0x6d6bea20, - 0x30264: 0x6d6bec20, 0x30265: 0x6d6bee20, 0x30266: 0x6d6bf020, 0x30267: 0x6d6bf220, - 0x30268: 0x6d6bf420, 0x30269: 0x6d6bf620, 0x3026a: 0x6d6bf820, 0x3026b: 0x6d6bfa20, - 0x3026c: 0x6d6bfc20, 0x3026d: 0x6d950820, 0x3026e: 0x6d950a20, 0x3026f: 0x6d950c20, - 0x30270: 0x6d950e20, 0x30271: 0x6d951020, 0x30272: 0x6d951220, 0x30273: 0x6d951420, - 0x30274: 0x6d951620, 0x30275: 0x6d951820, 0x30276: 0x6d951a20, 0x30277: 0x6d951c20, - 0x30278: 0x6d951e20, 0x30279: 0x6d952020, 0x3027a: 0x6d952220, 0x3027b: 0x6d952420, - 0x3027c: 0x6d952620, 0x3027d: 0x6db84220, 0x3027e: 0x6db84420, 0x3027f: 0x6db84620, - // Block 0xc0a, offset 0x30280 - 0x30280: 0x6db84820, 0x30281: 0x6db84a20, 0x30282: 0x6db84c20, 0x30283: 0x6db84e20, - 0x30284: 0x6db85020, 0x30285: 0x6db85220, 0x30286: 0x6dd6ce20, 0x30287: 0x6dd6d020, - 0x30288: 0x6dd6d220, 0x30289: 0x6dd6d420, 0x3028a: 0x6dd6d620, 0x3028b: 0x6dd6d820, - 0x3028c: 0x6dd6da20, 0x3028d: 0x6def9a20, 0x3028e: 0x6def9c20, 0x3028f: 0x6def9e20, - 0x30290: 0x6defa020, 0x30291: 0x6defa220, 0x30292: 0x6defa420, 0x30293: 0x6defa620, - 0x30294: 0x6defa820, 0x30295: 0x6e03ae20, 0x30296: 0x6e03b020, 0x30297: 0x6e03b220, - 0x30298: 0x6e03b420, 0x30299: 0x6e03b620, 0x3029a: 0x6e03b820, 0x3029b: 0x6e151820, - 0x3029c: 0x6e151a20, 0x3029d: 0x6e151c20, 0x3029e: 0x6e151e20, 0x3029f: 0x6e152020, - 0x302a0: 0x6e22b820, 0x302a1: 0x6e22ba20, 0x302a2: 0x6e22bc20, 0x302a3: 0x6e2cee20, - 0x302a4: 0x6e2cf020, 0x302a5: 0x6e413020, 0x302a6: 0x6c051a20, 0x302a7: 0x6c0a7e20, - 0x302a8: 0x6c150820, 0x302a9: 0x6c271020, 0x302aa: 0x6c271220, 0x302ab: 0x6c271420, - 0x302ac: 0x6c40e620, 0x302ad: 0x6c40e820, 0x302ae: 0x6c40ea20, 0x302af: 0x6c40ec20, - 0x302b0: 0x6c40ee20, 0x302b1: 0x6c614620, 0x302b2: 0x6c614820, 0x302b3: 0x6c614a20, - 0x302b4: 0x6c614c20, 0x302b5: 0x6c614e20, 0x302b6: 0x6c615020, 0x302b7: 0x6c615220, - 0x302b8: 0x6c615420, 0x302b9: 0x6c615620, 0x302ba: 0x6c615820, 0x302bb: 0x6c615a20, - 0x302bc: 0x6c87ba20, 0x302bd: 0x6c87bc20, 0x302be: 0x6c87be20, 0x302bf: 0x6c87c020, - // Block 0xc0b, offset 0x302c0 - 0x302c0: 0x6c87c220, 0x302c1: 0x6c87c420, 0x302c2: 0x6c87c620, 0x302c3: 0x6c87c820, - 0x302c4: 0x6cb33a20, 0x302c5: 0x6cb33c20, 0x302c6: 0x6cb33e20, 0x302c7: 0x6ce2d820, - 0x302c8: 0x6ce2da20, 0x302c9: 0x6ce2dc20, 0x302ca: 0x6ce2de20, 0x302cb: 0x6ce2e020, - 0x302cc: 0x6ce2e220, 0x302cd: 0x6ce2e420, 0x302ce: 0x6ce2e620, 0x302cf: 0x6d113e20, - 0x302d0: 0x6d114020, 0x302d1: 0x6d114220, 0x302d2: 0x6d114420, 0x302d3: 0x6d114620, - 0x302d4: 0x6d114820, 0x302d5: 0x6d3f5e20, 0x302d6: 0x6d3f6020, 0x302d7: 0x6d3f6220, - 0x302d8: 0x6d6c4e20, 0x302d9: 0x6d957020, 0x302da: 0x6d957220, 0x302db: 0x6c271c20, - 0x302dc: 0x6ce2f020, 0x302dd: 0x6ce2f220, 0x302de: 0x6d114c20, 0x302df: 0x6d114e20, - 0x302e0: 0x6d115020, 0x302e1: 0x6d3f6820, 0x302e2: 0x6d3f6a20, 0x302e3: 0x6d3f6c20, - 0x302e4: 0x6d6c5620, 0x302e5: 0x6d957820, 0x302e6: 0x6d957a20, 0x302e7: 0x6d957c20, - 0x302e8: 0x6d957e20, 0x302e9: 0x6d958020, 0x302ea: 0x6d958220, 0x302eb: 0x6db89e20, - 0x302ec: 0x6dd71620, 0x302ed: 0x6defca20, 0x302ee: 0x6e03ee20, 0x302ef: 0x6e153620, - 0x302f0: 0x6c272020, 0x302f1: 0x6c87d620, 0x302f2: 0x6d116020, 0x302f3: 0x6d6c6220, - 0x302f4: 0x6defd620, 0x302f5: 0x6c272620, 0x302f6: 0x6c051e20, 0x302f7: 0x6c0a8020, - 0x302f8: 0x6c150a20, 0x302f9: 0x6c150c20, 0x302fa: 0x6c150e20, 0x302fb: 0x6c151020, - 0x302fc: 0x6c151220, 0x302fd: 0x6c151420, 0x302fe: 0x6c272e20, 0x302ff: 0x6c273020, - // Block 0xc0c, offset 0x30300 - 0x30300: 0x6c273220, 0x30301: 0x6c273420, 0x30302: 0x6c273620, 0x30303: 0x6c273820, - 0x30304: 0x6c273a20, 0x30305: 0x6c273c20, 0x30306: 0x6c273e20, 0x30307: 0x6c274020, - 0x30308: 0x6c274220, 0x30309: 0x6c274420, 0x3030a: 0x6c410020, 0x3030b: 0x6c410220, - 0x3030c: 0x6c410420, 0x3030d: 0x6c410620, 0x3030e: 0x6c410820, 0x3030f: 0x6c410a20, - 0x30310: 0x6c410c20, 0x30311: 0x6c410e20, 0x30312: 0x6c411020, 0x30313: 0x6c411220, - 0x30314: 0x6c411420, 0x30315: 0x6c411620, 0x30316: 0x6c411820, 0x30317: 0x6c411a20, - 0x30318: 0x6c411c20, 0x30319: 0x6c411e20, 0x3031a: 0x6c412020, 0x3031b: 0x6c412220, - 0x3031c: 0x6c412420, 0x3031d: 0x6c412620, 0x3031e: 0x6c412820, 0x3031f: 0x6c412a20, - 0x30320: 0x6c616a20, 0x30321: 0x6c616c20, 0x30322: 0x6c616e20, 0x30323: 0x6c617020, - 0x30324: 0x6c617220, 0x30325: 0x6c617420, 0x30326: 0x6c617620, 0x30327: 0x6c617820, - 0x30328: 0x6c617a20, 0x30329: 0x6c617c20, 0x3032a: 0x6c617e20, 0x3032b: 0x6c618020, - 0x3032c: 0x6c412c20, 0x3032d: 0x6c618220, 0x3032e: 0x6c618420, 0x3032f: 0x6c618620, - 0x30330: 0x6c618820, 0x30331: 0x6c618a20, 0x30332: 0x6c618c20, 0x30333: 0x6c618e20, - 0x30334: 0x6c87e620, 0x30335: 0x6c87e820, 0x30336: 0x6c87ea20, 0x30337: 0x6c87ec20, - 0x30338: 0x6c87ee20, 0x30339: 0x6c87f020, 0x3033a: 0x6c87f220, 0x3033b: 0x6c87f420, - 0x3033c: 0x6c87f620, 0x3033d: 0x6c87f820, 0x3033e: 0x6c87fa20, 0x3033f: 0x6c87fc20, - // Block 0xc0d, offset 0x30340 - 0x30340: 0x6c87fe20, 0x30341: 0x6c880020, 0x30342: 0x6c880220, 0x30343: 0x6c880420, - 0x30344: 0x6c880620, 0x30345: 0x6c880820, 0x30346: 0x6c880a20, 0x30347: 0x6c880c20, - 0x30348: 0x6c880e20, 0x30349: 0x6c881020, 0x3034a: 0x6c881220, 0x3034b: 0x6cb34e20, - 0x3034c: 0x6cb35020, 0x3034d: 0x6cb35220, 0x3034e: 0x6cb35420, 0x3034f: 0x6cb35620, - 0x30350: 0x6cb35820, 0x30351: 0x6cb35a20, 0x30352: 0x6cb35c20, 0x30353: 0x6cb35e20, - 0x30354: 0x6cb36020, 0x30355: 0x6cb36220, 0x30356: 0x6cb36420, 0x30357: 0x6cb36620, - 0x30358: 0x6cb36820, 0x30359: 0x6cb36a20, 0x3035a: 0x6cb36c20, 0x3035b: 0x6cb36e20, - 0x3035c: 0x6cb37020, 0x3035d: 0x6cb37220, 0x3035e: 0x6cb37420, 0x3035f: 0x6cb37620, - 0x30360: 0x6cb37820, 0x30361: 0x6cb37a20, 0x30362: 0x6cb37c20, 0x30363: 0x6cb37e20, - 0x30364: 0x6cb38020, 0x30365: 0x6cb38220, 0x30366: 0x6cb38420, 0x30367: 0x6cb38620, - 0x30368: 0x6ce30420, 0x30369: 0x6ce30620, 0x3036a: 0x6ce30820, 0x3036b: 0x6ce30a20, - 0x3036c: 0x6ce30c20, 0x3036d: 0x6ce30e20, 0x3036e: 0x6ce31020, 0x3036f: 0x6ce31220, - 0x30370: 0x6ce31420, 0x30371: 0x6ce31620, 0x30372: 0x6ce31820, 0x30373: 0x6ce31a20, - 0x30374: 0x6ce31c20, 0x30375: 0x6ce31e20, 0x30376: 0x6ce32020, 0x30377: 0x6ce32220, - 0x30378: 0x6ce32420, 0x30379: 0x6ce32620, 0x3037a: 0x6ce32820, 0x3037b: 0x6ce32a20, - 0x3037c: 0x6d116a20, 0x3037d: 0x6d116c20, 0x3037e: 0x6d116e20, 0x3037f: 0x6d117020, - // Block 0xc0e, offset 0x30380 - 0x30380: 0x6d117220, 0x30381: 0x6d117420, 0x30382: 0x6d117620, 0x30383: 0x6d117820, - 0x30384: 0x6d117a20, 0x30385: 0x6d117c20, 0x30386: 0x6d117e20, 0x30387: 0x6d118020, - 0x30388: 0x6d118220, 0x30389: 0x6d118420, 0x3038a: 0x6d118620, 0x3038b: 0x6d118820, - 0x3038c: 0x6d118a20, 0x3038d: 0x6d118c20, 0x3038e: 0x6d118e20, 0x3038f: 0x6d119020, - 0x30390: 0x6d119220, 0x30391: 0x6d119420, 0x30392: 0x6d119620, 0x30393: 0x6d119820, - 0x30394: 0x6d119a20, 0x30395: 0x6d119c20, 0x30396: 0x6d119e20, 0x30397: 0x6d11a020, - 0x30398: 0x6d3f8020, 0x30399: 0x6d3f8220, 0x3039a: 0x6d3f8420, 0x3039b: 0x6d3f8620, - 0x3039c: 0x6d3f8820, 0x3039d: 0x6d3f8a20, 0x3039e: 0x6d3f8c20, 0x3039f: 0x6d3f8e20, - 0x303a0: 0x6d3f9020, 0x303a1: 0x6d3f9220, 0x303a2: 0x6d3f9420, 0x303a3: 0x6d3f9620, - 0x303a4: 0x6d3f9820, 0x303a5: 0x6d3f9a20, 0x303a6: 0x6d6c6e20, 0x303a7: 0x6d6c7020, - 0x303a8: 0x6d6c7220, 0x303a9: 0x6d6c7420, 0x303aa: 0x6d6c7620, 0x303ab: 0x6d6c7820, - 0x303ac: 0x6d6c7a20, 0x303ad: 0x6d6c7c20, 0x303ae: 0x6d6c7e20, 0x303af: 0x6d6c8020, - 0x303b0: 0x6d6c8220, 0x303b1: 0x6d6c8420, 0x303b2: 0x6d959e20, 0x303b3: 0x6d6c8620, - 0x303b4: 0x6d95a020, 0x303b5: 0x6d95a220, 0x303b6: 0x6d95a420, 0x303b7: 0x6d6c8820, - 0x303b8: 0x6d95a620, 0x303b9: 0x6d95a820, 0x303ba: 0x6d95aa20, 0x303bb: 0x6d95ac20, - 0x303bc: 0x6d95ae20, 0x303bd: 0x6db8b220, 0x303be: 0x6db8b420, 0x303bf: 0x6db8b620, - // Block 0xc0f, offset 0x303c0 - 0x303c0: 0x6db8b820, 0x303c1: 0x6db8ba20, 0x303c2: 0x6db8bc20, 0x303c3: 0x6db8be20, - 0x303c4: 0x6db8c020, 0x303c5: 0x6db8c220, 0x303c6: 0x6d95b020, 0x303c7: 0x6dd72220, - 0x303c8: 0x6dd72420, 0x303c9: 0x6db8c420, 0x303ca: 0x6defdc20, 0x303cb: 0x6defde20, - 0x303cc: 0x6defe020, 0x303cd: 0x6e03fc20, 0x303ce: 0x6e153c20, 0x303cf: 0x6e2d0820, - 0x303d0: 0x6e2d0a20, 0x303d1: 0x6c278a20, 0x303d2: 0x6c0a8e20, 0x303d3: 0x6c0a9020, - 0x303d4: 0x6c153c20, 0x303d5: 0x6c886a20, 0x303d6: 0x6c153e20, 0x303d7: 0x6c154020, - 0x303d8: 0x6c154220, 0x303d9: 0x6c154420, 0x303da: 0x6c154620, 0x303db: 0x6c154820, - 0x303dc: 0x6c154a20, 0x303dd: 0x6c154c20, 0x303de: 0x6c279220, 0x303df: 0x6c279420, - 0x303e0: 0x6c279620, 0x303e1: 0x6c279820, 0x303e2: 0x6c279a20, 0x303e3: 0x6c279c20, - 0x303e4: 0x6c279e20, 0x303e5: 0x6c27a020, 0x303e6: 0x6c27a220, 0x303e7: 0x6c27a420, - 0x303e8: 0x6c27a620, 0x303e9: 0x6c27a820, 0x303ea: 0x6c27aa20, 0x303eb: 0x6cb3fc20, - 0x303ec: 0x6c27ac20, 0x303ed: 0x6c418220, 0x303ee: 0x6c418420, 0x303ef: 0x6c418620, - 0x303f0: 0x6c418820, 0x303f1: 0x6c418a20, 0x303f2: 0x6c418c20, 0x303f3: 0x6c418e20, - 0x303f4: 0x6c419020, 0x303f5: 0x6c419220, 0x303f6: 0x6c419420, 0x303f7: 0x6c419620, - 0x303f8: 0x6c419820, 0x303f9: 0x6c419a20, 0x303fa: 0x6c419c20, 0x303fb: 0x6c419e20, - 0x303fc: 0x6c61e020, 0x303fd: 0x6c61e220, 0x303fe: 0x6c61e420, 0x303ff: 0x6c61e620, - // Block 0xc10, offset 0x30400 - 0x30400: 0x6c61e820, 0x30401: 0x6c61ea20, 0x30402: 0x6c61ec20, 0x30403: 0x6c61ee20, - 0x30404: 0x6c61f020, 0x30405: 0x6c61f220, 0x30406: 0x6c61f420, 0x30407: 0x6c61f620, - 0x30408: 0x6c61f820, 0x30409: 0x6c61fa20, 0x3040a: 0x6c61fc20, 0x3040b: 0x6c61fe20, - 0x3040c: 0x6d11fe20, 0x3040d: 0x6c620020, 0x3040e: 0x6c620220, 0x3040f: 0x6c620420, - 0x30410: 0x6c620620, 0x30411: 0x6c620820, 0x30412: 0x6d400820, 0x30413: 0x6c620a20, - 0x30414: 0x6cb3fe20, 0x30415: 0x6c620c20, 0x30416: 0x6c887620, 0x30417: 0x6c887820, - 0x30418: 0x6c887a20, 0x30419: 0x6c887c20, 0x3041a: 0x6c887e20, 0x3041b: 0x6c888020, - 0x3041c: 0x6c888220, 0x3041d: 0x6c888420, 0x3041e: 0x6c888620, 0x3041f: 0x6c888820, - 0x30420: 0x6c888a20, 0x30421: 0x6c888c20, 0x30422: 0x6c888e20, 0x30423: 0x6c889020, - 0x30424: 0x6c889220, 0x30425: 0x6c889420, 0x30426: 0x6c889620, 0x30427: 0x6c889820, - 0x30428: 0x6cb40c20, 0x30429: 0x6cb40e20, 0x3042a: 0x6cb41020, 0x3042b: 0x6cb41220, - 0x3042c: 0x6cb41420, 0x3042d: 0x6cb41620, 0x3042e: 0x6cb41820, 0x3042f: 0x6cb41a20, - 0x30430: 0x6cb41c20, 0x30431: 0x6c625420, 0x30432: 0x6cb41e20, 0x30433: 0x6cb42020, - 0x30434: 0x6cb42220, 0x30435: 0x6ce3be20, 0x30436: 0x6d6cf820, 0x30437: 0x6cb42420, - 0x30438: 0x6cb42620, 0x30439: 0x6ce3c620, 0x3043a: 0x6d95fa20, 0x3043b: 0x6ce3c820, - 0x3043c: 0x6ce3ca20, 0x3043d: 0x6cb42820, 0x3043e: 0x6ce3cc20, 0x3043f: 0x6ce3ce20, - // Block 0xc11, offset 0x30440 - 0x30440: 0x6ce3d020, 0x30441: 0x6ce3d220, 0x30442: 0x6ce3d420, 0x30443: 0x6ce3d620, - 0x30444: 0x6ce3d820, 0x30445: 0x6ce3da20, 0x30446: 0x6ce3dc20, 0x30447: 0x6ce3de20, - 0x30448: 0x6ce3e020, 0x30449: 0x6ce3e220, 0x3044a: 0x6ce3e420, 0x3044b: 0x6d120820, - 0x3044c: 0x6d120a20, 0x3044d: 0x6d120c20, 0x3044e: 0x6d120e20, 0x3044f: 0x6d121020, - 0x30450: 0x6d121220, 0x30451: 0x6d121420, 0x30452: 0x6d121620, 0x30453: 0x6d121820, - 0x30454: 0x6d121a20, 0x30455: 0x6d121c20, 0x30456: 0x6d121e20, 0x30457: 0x6d122020, - 0x30458: 0x6d401420, 0x30459: 0x6d401620, 0x3045a: 0x6d401820, 0x3045b: 0x6d401a20, - 0x3045c: 0x6d401c20, 0x3045d: 0x6d401e20, 0x3045e: 0x6d402020, 0x3045f: 0x6d402220, - 0x30460: 0x6d402420, 0x30461: 0x6d402620, 0x30462: 0x6d402820, 0x30463: 0x6d402a20, - 0x30464: 0x6d402c20, 0x30465: 0x6d402e20, 0x30466: 0x6d6d0220, 0x30467: 0x6d6d0420, - 0x30468: 0x6dd75620, 0x30469: 0x6d6d0620, 0x3046a: 0x6d6d0820, 0x3046b: 0x6d6d0a20, - 0x3046c: 0x6ce41e20, 0x3046d: 0x6d6d0c20, 0x3046e: 0x6d6d0e20, 0x3046f: 0x6d6d1020, - 0x30470: 0x6d6d1220, 0x30471: 0x6d6d1420, 0x30472: 0x6d6d1620, 0x30473: 0x6d95fe20, - 0x30474: 0x6d960020, 0x30475: 0x6d960220, 0x30476: 0x6d960420, 0x30477: 0x6d960620, - 0x30478: 0x6db90820, 0x30479: 0x6db90a20, 0x3047a: 0x6dd75820, 0x3047b: 0x6dd75a20, - 0x3047c: 0x6dd75c20, 0x3047d: 0x6dd75e20, 0x3047e: 0x6dd76020, 0x3047f: 0x6deff620, - // Block 0xc12, offset 0x30480 - 0x30480: 0x6deff820, 0x30481: 0x6e042620, 0x30482: 0x6deffa20, 0x30483: 0x6e042820, - 0x30484: 0x6e154e20, 0x30485: 0x6e155020, 0x30486: 0x6e155220, 0x30487: 0x6e22ea20, - 0x30488: 0x6e22ec20, 0x30489: 0x6c27ec20, 0x3048a: 0x6c625a20, 0x3048b: 0x6c625c20, - 0x3048c: 0x6c88ee20, 0x3048d: 0x6c88f020, 0x3048e: 0x6c88f220, 0x3048f: 0x6c88f420, - 0x30490: 0x6c88f620, 0x30491: 0x6c88f820, 0x30492: 0x6c88fa20, 0x30493: 0x6cb47e20, - 0x30494: 0x6cb48020, 0x30495: 0x6cb48220, 0x30496: 0x6cb48420, 0x30497: 0x6cb48620, - 0x30498: 0x6cb48820, 0x30499: 0x6cb48a20, 0x3049a: 0x6cb48c20, 0x3049b: 0x6cb48e20, - 0x3049c: 0x6cb49020, 0x3049d: 0x6cb49220, 0x3049e: 0x6cb49420, 0x3049f: 0x6ce42a20, - 0x304a0: 0x6ce42c20, 0x304a1: 0x6ce42e20, 0x304a2: 0x6ce43020, 0x304a3: 0x6ce43220, - 0x304a4: 0x6ce43420, 0x304a5: 0x6ce43620, 0x304a6: 0x6d127820, 0x304a7: 0x6d127a20, - 0x304a8: 0x6d127c20, 0x304a9: 0x6d127e20, 0x304aa: 0x6d128020, 0x304ab: 0x6d128220, - 0x304ac: 0x6d128420, 0x304ad: 0x6d128620, 0x304ae: 0x6d128820, 0x304af: 0x6d128a20, - 0x304b0: 0x6d128c20, 0x304b1: 0x6d128e20, 0x304b2: 0x6d407e20, 0x304b3: 0x6d408020, - 0x304b4: 0x6d408220, 0x304b5: 0x6d408420, 0x304b6: 0x6d408620, 0x304b7: 0x6d408820, - 0x304b8: 0x6d408a20, 0x304b9: 0x6d408c20, 0x304ba: 0x6d408e20, 0x304bb: 0x6d409020, - 0x304bc: 0x6d409220, 0x304bd: 0x6d409420, 0x304be: 0x6d409620, 0x304bf: 0x6d409820, - // Block 0xc13, offset 0x304c0 - 0x304c0: 0x6d6d5020, 0x304c1: 0x6d6d5220, 0x304c2: 0x6d6d5420, 0x304c3: 0x6d6d5620, - 0x304c4: 0x6d6d5820, 0x304c5: 0x6d6d5a20, 0x304c6: 0x6d6d5c20, 0x304c7: 0x6d6d5e20, - 0x304c8: 0x6d6d6020, 0x304c9: 0x6d6d6220, 0x304ca: 0x6d6d6420, 0x304cb: 0x6d6d6620, - 0x304cc: 0x6d6d6820, 0x304cd: 0x6d964220, 0x304ce: 0x6d964420, 0x304cf: 0x6d964620, - 0x304d0: 0x6d964820, 0x304d1: 0x6d964a20, 0x304d2: 0x6d964c20, 0x304d3: 0x6d964e20, - 0x304d4: 0x6d965020, 0x304d5: 0x6d965220, 0x304d6: 0x6d965420, 0x304d7: 0x6d965620, - 0x304d8: 0x6db93c20, 0x304d9: 0x6db93e20, 0x304da: 0x6db94020, 0x304db: 0x6db94220, - 0x304dc: 0x6db94420, 0x304dd: 0x6db94620, 0x304de: 0x6db94820, 0x304df: 0x6db94a20, - 0x304e0: 0x6db94c20, 0x304e1: 0x6db94e20, 0x304e2: 0x6db95020, 0x304e3: 0x6db95220, - 0x304e4: 0x6db95420, 0x304e5: 0x6dd78220, 0x304e6: 0x6dd78420, 0x304e7: 0x6dd78620, - 0x304e8: 0x6dd78820, 0x304e9: 0x6dd78a20, 0x304ea: 0x6dd78c20, 0x304eb: 0x6dd78e20, - 0x304ec: 0x6dd79020, 0x304ed: 0x6df01420, 0x304ee: 0x6df01620, 0x304ef: 0x6df01820, - 0x304f0: 0x6df01a20, 0x304f1: 0x6df01c20, 0x304f2: 0x6e043420, 0x304f3: 0x6e043620, - 0x304f4: 0x6e043820, 0x304f5: 0x6e043a20, 0x304f6: 0x6e043c20, 0x304f7: 0x6e043e20, - 0x304f8: 0x6e044020, 0x304f9: 0x6e156020, 0x304fa: 0x6e156220, 0x304fb: 0x6e156420, - 0x304fc: 0x6e2d2620, 0x304fd: 0x6e350220, 0x304fe: 0x6e350420, 0x304ff: 0x6e350620, - // Block 0xc14, offset 0x30500 - 0x30500: 0x6e350820, 0x30501: 0x6e3aaa20, 0x30502: 0x6e351420, 0x30503: 0x6e3e6e20, - 0x30504: 0x6e3e7020, 0x30505: 0x6e413820, 0x30506: 0x6c27ee20, 0x30507: 0x6c41da20, - 0x30508: 0x6cb4c420, 0x30509: 0x6ce46a20, 0x3050a: 0x6ce46c20, 0x3050b: 0x6e046220, - 0x3050c: 0x6c27f020, 0x3050d: 0x6c625e20, 0x3050e: 0x6cb4cc20, 0x3050f: 0x6ce47020, - 0x30510: 0x6dd7ce20, 0x30511: 0x6c41dc20, 0x30512: 0x6c41de20, 0x30513: 0x6c626220, - 0x30514: 0x6c626420, 0x30515: 0x6c890e20, 0x30516: 0x6c891020, 0x30517: 0x6c891220, - 0x30518: 0x6c891420, 0x30519: 0x6c891620, 0x3051a: 0x6c891820, 0x3051b: 0x6c891a20, - 0x3051c: 0x6c891c20, 0x3051d: 0x6c891e20, 0x3051e: 0x6c892020, 0x3051f: 0x6c892220, - 0x30520: 0x6c892420, 0x30521: 0x6c892620, 0x30522: 0x6c892820, 0x30523: 0x6cb4d620, - 0x30524: 0x6cb4d820, 0x30525: 0x6cb4da20, 0x30526: 0x6cb4dc20, 0x30527: 0x6cb4de20, - 0x30528: 0x6cb4e020, 0x30529: 0x6cb4e220, 0x3052a: 0x6cb4e420, 0x3052b: 0x6cb4e620, - 0x3052c: 0x6cb4e820, 0x3052d: 0x6cb4ea20, 0x3052e: 0x6cb4ec20, 0x3052f: 0x6cb4ee20, - 0x30530: 0x6cb4f020, 0x30531: 0x6cb4f220, 0x30532: 0x6cb4f420, 0x30533: 0x6cb4f620, - 0x30534: 0x6cb4f820, 0x30535: 0x6cb4fa20, 0x30536: 0x6cb4fc20, 0x30537: 0x6cb4fe20, - 0x30538: 0x6cb50020, 0x30539: 0x6cb50220, 0x3053a: 0x6cb50420, 0x3053b: 0x6cb50620, - 0x3053c: 0x6cb50820, 0x3053d: 0x6ce48420, 0x3053e: 0x6ce48620, 0x3053f: 0x6ce48820, - // Block 0xc15, offset 0x30540 - 0x30540: 0x6ce48a20, 0x30541: 0x6ce48c20, 0x30542: 0x6ce48e20, 0x30543: 0x6ce49020, - 0x30544: 0x6ce49220, 0x30545: 0x6ce49420, 0x30546: 0x6ce49620, 0x30547: 0x6ce49820, - 0x30548: 0x6ce49a20, 0x30549: 0x6ce49c20, 0x3054a: 0x6ce49e20, 0x3054b: 0x6ce4a020, - 0x3054c: 0x6ce4a220, 0x3054d: 0x6ce4a420, 0x3054e: 0x6ce4a620, 0x3054f: 0x6ce4a820, - 0x30550: 0x6ce4aa20, 0x30551: 0x6ce4ac20, 0x30552: 0x6ce4ae20, 0x30553: 0x6ce4b020, - 0x30554: 0x6ce4b220, 0x30555: 0x6ce4b420, 0x30556: 0x6ce4b620, 0x30557: 0x6ce4b820, - 0x30558: 0x6ce4ba20, 0x30559: 0x6ce4bc20, 0x3055a: 0x6ce4be20, 0x3055b: 0x6ce4c020, - 0x3055c: 0x6ce4c220, 0x3055d: 0x6ce4c420, 0x3055e: 0x6ce4c620, 0x3055f: 0x6ce4c820, - 0x30560: 0x6ce4ca20, 0x30561: 0x6ce4cc20, 0x30562: 0x6ce4ce20, 0x30563: 0x6ce4d020, - 0x30564: 0x6ce4d220, 0x30565: 0x6ce4d420, 0x30566: 0x6ce4d620, 0x30567: 0x6ce4d820, - 0x30568: 0x6ce4da20, 0x30569: 0x6ce4dc20, 0x3056a: 0x6ce4de20, 0x3056b: 0x6ce4e020, - 0x3056c: 0x6ce4e220, 0x3056d: 0x6d40d420, 0x3056e: 0x6d12c620, 0x3056f: 0x6d12c820, - 0x30570: 0x6d12ca20, 0x30571: 0x6d12cc20, 0x30572: 0x6d12ce20, 0x30573: 0x6d12d020, - 0x30574: 0x6d12d220, 0x30575: 0x6d12d420, 0x30576: 0x6d12d620, 0x30577: 0x6d12d820, - 0x30578: 0x6d12da20, 0x30579: 0x6d12dc20, 0x3057a: 0x6d12de20, 0x3057b: 0x6d12e020, - 0x3057c: 0x6d12e220, 0x3057d: 0x6d12e420, 0x3057e: 0x6d12e620, 0x3057f: 0x6d12e820, - // Block 0xc16, offset 0x30580 - 0x30580: 0x6d12ea20, 0x30581: 0x6d12ec20, 0x30582: 0x6d12ee20, 0x30583: 0x6d12f020, - 0x30584: 0x6d12f220, 0x30585: 0x6d12f420, 0x30586: 0x6d12f620, 0x30587: 0x6d12f820, - 0x30588: 0x6d12fa20, 0x30589: 0x6d12fc20, 0x3058a: 0x6d12fe20, 0x3058b: 0x6d130020, - 0x3058c: 0x6d130220, 0x3058d: 0x6d130420, 0x3058e: 0x6d130620, 0x3058f: 0x6d130820, - 0x30590: 0x6d130a20, 0x30591: 0x6d130c20, 0x30592: 0x6d130e20, 0x30593: 0x6d131020, - 0x30594: 0x6d131220, 0x30595: 0x6d131420, 0x30596: 0x6d131620, 0x30597: 0x6d131820, - 0x30598: 0x6d131a20, 0x30599: 0x6d131c20, 0x3059a: 0x6d131e20, 0x3059b: 0x6d132020, - 0x3059c: 0x6d132220, 0x3059d: 0x6d132420, 0x3059e: 0x6d132620, 0x3059f: 0x6d132820, - 0x305a0: 0x6d132a20, 0x305a1: 0x6d132c20, 0x305a2: 0x6d132e20, 0x305a3: 0x6d133020, - 0x305a4: 0x6d133220, 0x305a5: 0x6d133420, 0x305a6: 0x6d133620, 0x305a7: 0x6d133820, - 0x305a8: 0x6d133a20, 0x305a9: 0x6d133c20, 0x305aa: 0x6d133e20, 0x305ab: 0x6d134020, - 0x305ac: 0x6d134220, 0x305ad: 0x6d134420, 0x305ae: 0x6d134620, 0x305af: 0x6d134820, - 0x305b0: 0x6d134a20, 0x305b1: 0x6d134c20, 0x305b2: 0x6d134e20, 0x305b3: 0x6d135020, - 0x305b4: 0x6d135220, 0x305b5: 0x6d40e420, 0x305b6: 0x6d40e620, 0x305b7: 0x6d40e820, - 0x305b8: 0x6d40ea20, 0x305b9: 0x6d40ec20, 0x305ba: 0x6d40ee20, 0x305bb: 0x6d40f020, - 0x305bc: 0x6d41c020, 0x305bd: 0x6d40f220, 0x305be: 0x6d40f420, 0x305bf: 0x6d40f620, - // Block 0xc17, offset 0x305c0 - 0x305c0: 0x6d40f820, 0x305c1: 0x6d40fa20, 0x305c2: 0x6d40fc20, 0x305c3: 0x6d40fe20, - 0x305c4: 0x6d410020, 0x305c5: 0x6d410220, 0x305c6: 0x6d410420, 0x305c7: 0x6d410620, - 0x305c8: 0x6d410820, 0x305c9: 0x6d410a20, 0x305ca: 0x6d410c20, 0x305cb: 0x6d410e20, - 0x305cc: 0x6d411020, 0x305cd: 0x6d411220, 0x305ce: 0x6d411420, 0x305cf: 0x6d135420, - 0x305d0: 0x6d411620, 0x305d1: 0x6d411820, 0x305d2: 0x6d411a20, 0x305d3: 0x6d411c20, - 0x305d4: 0x6d411e20, 0x305d5: 0x6d412020, 0x305d6: 0x6d412220, 0x305d7: 0x6d412420, - 0x305d8: 0x6d412620, 0x305d9: 0x6d412820, 0x305da: 0x6d412a20, 0x305db: 0x6d412c20, - 0x305dc: 0x6d412e20, 0x305dd: 0x6d413020, 0x305de: 0x6d413220, 0x305df: 0x6d413420, - 0x305e0: 0x6d413620, 0x305e1: 0x6d413820, 0x305e2: 0x6d413a20, 0x305e3: 0x6d413c20, - 0x305e4: 0x6d413e20, 0x305e5: 0x6d414020, 0x305e6: 0x6d414220, 0x305e7: 0x6d414420, - 0x305e8: 0x6d414620, 0x305e9: 0x6d414820, 0x305ea: 0x6d414a20, 0x305eb: 0x6d414c20, - 0x305ec: 0x6d414e20, 0x305ed: 0x6d415020, 0x305ee: 0x6d415220, 0x305ef: 0x6d415420, - 0x305f0: 0x6d415620, 0x305f1: 0x6d415820, 0x305f2: 0x6d6dc220, 0x305f3: 0x6d6dc420, - 0x305f4: 0x6d6dc620, 0x305f5: 0x6d6dc820, 0x305f6: 0x6d6dca20, 0x305f7: 0x6d6dcc20, - 0x305f8: 0x6d6dce20, 0x305f9: 0x6d6dd020, 0x305fa: 0x6d6dd220, 0x305fb: 0x6d6dd420, - 0x305fc: 0x6d6dd620, 0x305fd: 0x6d6dd820, 0x305fe: 0x6d6dda20, 0x305ff: 0x6d6ddc20, - // Block 0xc18, offset 0x30600 - 0x30600: 0x6d6dde20, 0x30601: 0x6d6de020, 0x30602: 0x6d6de220, 0x30603: 0x6d6de420, - 0x30604: 0x6d6de620, 0x30605: 0x6d6de820, 0x30606: 0x6d6dea20, 0x30607: 0x6d6dec20, - 0x30608: 0x6d6dee20, 0x30609: 0x6d6df020, 0x3060a: 0x6d6df220, 0x3060b: 0x6d969820, - 0x3060c: 0x6d6df420, 0x3060d: 0x6d6df620, 0x3060e: 0x6d6df820, 0x3060f: 0x6d6dfa20, - 0x30610: 0x6d6dfc20, 0x30611: 0x6d6dfe20, 0x30612: 0x6d6e0020, 0x30613: 0x6d6e0220, - 0x30614: 0x6d6e0420, 0x30615: 0x6d6e0620, 0x30616: 0x6d6e0820, 0x30617: 0x6d6e0a20, - 0x30618: 0x6d6e0c20, 0x30619: 0x6d6e0e20, 0x3061a: 0x6d6e1020, 0x3061b: 0x6d6e1220, - 0x3061c: 0x6d6e1420, 0x3061d: 0x6d6e1620, 0x3061e: 0x6d6e1820, 0x3061f: 0x6d6e1a20, - 0x30620: 0x6d6e1c20, 0x30621: 0x6d6e1e20, 0x30622: 0x6d6e2020, 0x30623: 0x6d6e2220, - 0x30624: 0x6d6e2420, 0x30625: 0x6d6e2620, 0x30626: 0x6d6e2820, 0x30627: 0x6d6e2a20, - 0x30628: 0x6d6e2c20, 0x30629: 0x6d6e2e20, 0x3062a: 0x6d6e3020, 0x3062b: 0x6d6e3220, - 0x3062c: 0x6d6e3420, 0x3062d: 0x6d6e3620, 0x3062e: 0x6d41be20, 0x3062f: 0x6d6e3820, - 0x30630: 0x6d6e3a20, 0x30631: 0x6d6e3c20, 0x30632: 0x6d6e3e20, 0x30633: 0x6d6e4020, - 0x30634: 0x6d6e4220, 0x30635: 0x6d6e4420, 0x30636: 0x6d6e4620, 0x30637: 0x6d96a220, - 0x30638: 0x6d96a420, 0x30639: 0x6d96a620, 0x3063a: 0x6d96a820, 0x3063b: 0x6d96aa20, - 0x3063c: 0x6d96ac20, 0x3063d: 0x6d96ae20, 0x3063e: 0x6d96b020, 0x3063f: 0x6d96b220, - // Block 0xc19, offset 0x30640 - 0x30640: 0x6d96b420, 0x30641: 0x6d96b620, 0x30642: 0x6d96b820, 0x30643: 0x6d96ba20, - 0x30644: 0x6d96bc20, 0x30645: 0x6d96be20, 0x30646: 0x6d96c020, 0x30647: 0x6d96c220, - 0x30648: 0x6d96c420, 0x30649: 0x6d96c620, 0x3064a: 0x6d96c820, 0x3064b: 0x6d96ca20, - 0x3064c: 0x6d96cc20, 0x3064d: 0x6d96ce20, 0x3064e: 0x6d96d020, 0x3064f: 0x6d96d220, - 0x30650: 0x6d96d420, 0x30651: 0x6d96d620, 0x30652: 0x6d96d820, 0x30653: 0x6d96da20, - 0x30654: 0x6d96dc20, 0x30655: 0x6d96de20, 0x30656: 0x6d96e020, 0x30657: 0x6d96e220, - 0x30658: 0x6d96e420, 0x30659: 0x6d96e620, 0x3065a: 0x6d96e820, 0x3065b: 0x6d96ea20, - 0x3065c: 0x6d96ec20, 0x3065d: 0x6d96ee20, 0x3065e: 0x6d96f020, 0x3065f: 0x6d96f220, - 0x30660: 0x6d96f420, 0x30661: 0x6d96f620, 0x30662: 0x6d96f820, 0x30663: 0x6d96fa20, - 0x30664: 0x6d96fc20, 0x30665: 0x6d96fe20, 0x30666: 0x6d970020, 0x30667: 0x6d970220, - 0x30668: 0x6db9ac20, 0x30669: 0x6d970420, 0x3066a: 0x6d970620, 0x3066b: 0x6d970820, - 0x3066c: 0x6d970a20, 0x3066d: 0x6d970c20, 0x3066e: 0x6d970e20, 0x3066f: 0x6d971020, - 0x30670: 0x6d971220, 0x30671: 0x6d971420, 0x30672: 0x6d971620, 0x30673: 0x6d971820, - 0x30674: 0x6d971a20, 0x30675: 0x6d971c20, 0x30676: 0x6d971e20, 0x30677: 0x6d972020, - 0x30678: 0x6d972220, 0x30679: 0x6d972420, 0x3067a: 0x6d972620, 0x3067b: 0x6d972820, - 0x3067c: 0x6d972a20, 0x3067d: 0x6d972c20, 0x3067e: 0x6d972e20, 0x3067f: 0x6d973020, - // Block 0xc1a, offset 0x30680 - 0x30680: 0x6d973220, 0x30681: 0x6d973420, 0x30682: 0x6d973620, 0x30683: 0x6d973820, - 0x30684: 0x6d973a20, 0x30685: 0x6d973c20, 0x30686: 0x6d973e20, 0x30687: 0x6db9ae20, - 0x30688: 0x6d974020, 0x30689: 0x6db9b020, 0x3068a: 0x6db9b220, 0x3068b: 0x6db9b420, - 0x3068c: 0x6db9b620, 0x3068d: 0x6db9b820, 0x3068e: 0x6db9ba20, 0x3068f: 0x6db9bc20, - 0x30690: 0x6db9be20, 0x30691: 0x6db9c020, 0x30692: 0x6db9c220, 0x30693: 0x6db9c420, - 0x30694: 0x6db9c620, 0x30695: 0x6db9c820, 0x30696: 0x6db9ca20, 0x30697: 0x6db9cc20, - 0x30698: 0x6db9ce20, 0x30699: 0x6db9d020, 0x3069a: 0x6db9d220, 0x3069b: 0x6db9d420, - 0x3069c: 0x6db9d620, 0x3069d: 0x6db9d820, 0x3069e: 0x6db9da20, 0x3069f: 0x6db9dc20, - 0x306a0: 0x6db9de20, 0x306a1: 0x6db9e020, 0x306a2: 0x6db9e220, 0x306a3: 0x6db9e420, - 0x306a4: 0x6db9e620, 0x306a5: 0x6db9e820, 0x306a6: 0x6db9ea20, 0x306a7: 0x6db9ec20, - 0x306a8: 0x6db9ee20, 0x306a9: 0x6db9f020, 0x306aa: 0x6db9f220, 0x306ab: 0x6db9f420, - 0x306ac: 0x6db9f620, 0x306ad: 0x6db9f820, 0x306ae: 0x6db9fa20, 0x306af: 0x6db9fc20, - 0x306b0: 0x6db9fe20, 0x306b1: 0x6dba0020, 0x306b2: 0x6dba0220, 0x306b3: 0x6dba0420, - 0x306b4: 0x6dba0620, 0x306b5: 0x6dba0820, 0x306b6: 0x6dba0a20, 0x306b7: 0x6dba0c20, - 0x306b8: 0x6dba0e20, 0x306b9: 0x6dba1020, 0x306ba: 0x6d97ec20, 0x306bb: 0x6dba1220, - 0x306bc: 0x6dba1420, 0x306bd: 0x6dba1620, 0x306be: 0x6dba1820, 0x306bf: 0x6dba1a20, - // Block 0xc1b, offset 0x306c0 - 0x306c0: 0x6dba1c20, 0x306c1: 0x6dba1e20, 0x306c2: 0x6dba2020, 0x306c3: 0x6dba2220, - 0x306c4: 0x6dba2420, 0x306c5: 0x6dba2620, 0x306c6: 0x6dba2820, 0x306c7: 0x6dba2a20, - 0x306c8: 0x6dd7ee20, 0x306c9: 0x6dd7f020, 0x306ca: 0x6dd7f220, 0x306cb: 0x6dd7f420, - 0x306cc: 0x6dd7f620, 0x306cd: 0x6dd7f820, 0x306ce: 0x6dd7fa20, 0x306cf: 0x6dd7fc20, - 0x306d0: 0x6dd7fe20, 0x306d1: 0x6dd80020, 0x306d2: 0x6dd80220, 0x306d3: 0x6dd80420, - 0x306d4: 0x6dd80620, 0x306d5: 0x6dd80820, 0x306d6: 0x6dd80a20, 0x306d7: 0x6dd80c20, - 0x306d8: 0x6dd80e20, 0x306d9: 0x6dd81020, 0x306da: 0x6dd81220, 0x306db: 0x6dd81420, - 0x306dc: 0x6dd81620, 0x306dd: 0x6dd81820, 0x306de: 0x6dd81a20, 0x306df: 0x6dd81c20, - 0x306e0: 0x6dd81e20, 0x306e1: 0x6dbaec20, 0x306e2: 0x6dd82020, 0x306e3: 0x6dd82220, - 0x306e4: 0x6dd82420, 0x306e5: 0x6dd82620, 0x306e6: 0x6dd82820, 0x306e7: 0x6dd82a20, - 0x306e8: 0x6dd82c20, 0x306e9: 0x6df06e20, 0x306ea: 0x6dd82e20, 0x306eb: 0x6dd83020, - 0x306ec: 0x6dd83220, 0x306ed: 0x6dd83420, 0x306ee: 0x6dd83620, 0x306ef: 0x6dbaee20, - 0x306f0: 0x6dd83820, 0x306f1: 0x6dd83a20, 0x306f2: 0x6dd83c20, 0x306f3: 0x6dd83e20, - 0x306f4: 0x6dd84020, 0x306f5: 0x6dd84220, 0x306f6: 0x6dd84420, 0x306f7: 0x6dd84620, - 0x306f8: 0x6dd84820, 0x306f9: 0x6dd84a20, 0x306fa: 0x6dd84c20, 0x306fb: 0x6dd84e20, - 0x306fc: 0x6dd85020, 0x306fd: 0x6dd85220, 0x306fe: 0x6dd85420, 0x306ff: 0x6dd85620, - // Block 0xc1c, offset 0x30700 - 0x30700: 0x6df07020, 0x30701: 0x6df07220, 0x30702: 0x6df07420, 0x30703: 0x6df07620, - 0x30704: 0x6df07820, 0x30705: 0x6df07a20, 0x30706: 0x6df07c20, 0x30707: 0x6df07e20, - 0x30708: 0x6df08020, 0x30709: 0x6df08220, 0x3070a: 0x6df08420, 0x3070b: 0x6df08620, - 0x3070c: 0x6df08820, 0x3070d: 0x6df08a20, 0x3070e: 0x6df08c20, 0x3070f: 0x6df08e20, - 0x30710: 0x6df09020, 0x30711: 0x6df09220, 0x30712: 0x6df09420, 0x30713: 0x6df09620, - 0x30714: 0x6df09820, 0x30715: 0x6df09a20, 0x30716: 0x6df09c20, 0x30717: 0x6df09e20, - 0x30718: 0x6df0a020, 0x30719: 0x6df0a220, 0x3071a: 0x6df0a420, 0x3071b: 0x6df0a620, - 0x3071c: 0x6df0a820, 0x3071d: 0x6df0aa20, 0x3071e: 0x6df0ac20, 0x3071f: 0x6df0ae20, - 0x30720: 0x6df0b020, 0x30721: 0x6df0b220, 0x30722: 0x6df0b420, 0x30723: 0x6df0b620, - 0x30724: 0x6df0b820, 0x30725: 0x6df0ba20, 0x30726: 0x6df0bc20, 0x30727: 0x6df0be20, - 0x30728: 0x6df0c020, 0x30729: 0x6df0c220, 0x3072a: 0x6df0c420, 0x3072b: 0x6df0c620, - 0x3072c: 0x6df0c820, 0x3072d: 0x6df0ca20, 0x3072e: 0x6df0cc20, 0x3072f: 0x6df0ce20, - 0x30730: 0x6df0d020, 0x30731: 0x6df0d220, 0x30732: 0x6df0d420, 0x30733: 0x6e047c20, - 0x30734: 0x6e159420, 0x30735: 0x6e047e20, 0x30736: 0x6e048020, 0x30737: 0x6e048220, - 0x30738: 0x6e048420, 0x30739: 0x6df0d620, 0x3073a: 0x6e048620, 0x3073b: 0x6e048820, - 0x3073c: 0x6e048a20, 0x3073d: 0x6e048c20, 0x3073e: 0x6e048e20, 0x3073f: 0x6e049020, - // Block 0xc1d, offset 0x30740 - 0x30740: 0x6e049220, 0x30741: 0x6e049420, 0x30742: 0x6e049620, 0x30743: 0x6e049820, - 0x30744: 0x6e049a20, 0x30745: 0x6e049c20, 0x30746: 0x6e049e20, 0x30747: 0x6e04a020, - 0x30748: 0x6e04a220, 0x30749: 0x6e04a420, 0x3074a: 0x6e04a620, 0x3074b: 0x6e04a820, - 0x3074c: 0x6e04aa20, 0x3074d: 0x6e04ac20, 0x3074e: 0x6e04ae20, 0x3074f: 0x6e04b020, - 0x30750: 0x6e04b220, 0x30751: 0x6e04b420, 0x30752: 0x6e04b620, 0x30753: 0x6e04b820, - 0x30754: 0x6e04ba20, 0x30755: 0x6e04bc20, 0x30756: 0x6e04be20, 0x30757: 0x6e04c020, - 0x30758: 0x6e04c220, 0x30759: 0x6e04c420, 0x3075a: 0x6e04c620, 0x3075b: 0x6e04c820, - 0x3075c: 0x6e04ca20, 0x3075d: 0x6e04cc20, 0x3075e: 0x6e04ce20, 0x3075f: 0x6e04d020, - 0x30760: 0x6e04d220, 0x30761: 0x6e04d420, 0x30762: 0x6e04d620, 0x30763: 0x6e04d820, - 0x30764: 0x6e04da20, 0x30765: 0x6e04dc20, 0x30766: 0x6e04de20, 0x30767: 0x6e04e020, - 0x30768: 0x6e04e220, 0x30769: 0x6e159620, 0x3076a: 0x6e159820, 0x3076b: 0x6e159a20, - 0x3076c: 0x6e159c20, 0x3076d: 0x6e159e20, 0x3076e: 0x6e15a020, 0x3076f: 0x6e058820, - 0x30770: 0x6e15a220, 0x30771: 0x6e15a420, 0x30772: 0x6e15a620, 0x30773: 0x6e15a820, - 0x30774: 0x6e15aa20, 0x30775: 0x6e15ac20, 0x30776: 0x6e15ae20, 0x30777: 0x6e15b020, - 0x30778: 0x6e15b220, 0x30779: 0x6e15b420, 0x3077a: 0x6e15b620, 0x3077b: 0x6e15b820, - 0x3077c: 0x6e058a20, 0x3077d: 0x6e15ba20, 0x3077e: 0x6e15bc20, 0x3077f: 0x6e15be20, - // Block 0xc1e, offset 0x30780 - 0x30780: 0x6e15c020, 0x30781: 0x6e15c220, 0x30782: 0x6e231620, 0x30783: 0x6e231820, - 0x30784: 0x6e231a20, 0x30785: 0x6e231c20, 0x30786: 0x6e231e20, 0x30787: 0x6e232020, - 0x30788: 0x6e232220, 0x30789: 0x6e232420, 0x3078a: 0x6e232620, 0x3078b: 0x6e232820, - 0x3078c: 0x6e232a20, 0x3078d: 0x6e232c20, 0x3078e: 0x6e232e20, 0x3078f: 0x6e233020, - 0x30790: 0x6e233220, 0x30791: 0x6e233420, 0x30792: 0x6e233620, 0x30793: 0x6e233820, - 0x30794: 0x6e233a20, 0x30795: 0x6e2d4620, 0x30796: 0x6e2d4820, 0x30797: 0x6e2d4a20, - 0x30798: 0x6e2d4c20, 0x30799: 0x6e2d4e20, 0x3079a: 0x6e2d5020, 0x3079b: 0x6e2d5220, - 0x3079c: 0x6e2d5420, 0x3079d: 0x6e2d5620, 0x3079e: 0x6e2d5820, 0x3079f: 0x6e2d5a20, - 0x307a0: 0x6e2d5c20, 0x307a1: 0x6e2d5e20, 0x307a2: 0x6e2d6020, 0x307a3: 0x6e2d6220, - 0x307a4: 0x6e2d6420, 0x307a5: 0x6e2d6620, 0x307a6: 0x6e2d6820, 0x307a7: 0x6e233c20, - 0x307a8: 0x6e351c20, 0x307a9: 0x6e351e20, 0x307aa: 0x6e352020, 0x307ab: 0x6e352220, - 0x307ac: 0x6e352420, 0x307ad: 0x6e3ab420, 0x307ae: 0x6e3ab620, 0x307af: 0x6e3ab820, - 0x307b0: 0x6e3aba20, 0x307b1: 0x6e3abc20, 0x307b2: 0x6e3abe20, 0x307b3: 0x6e3ac020, - 0x307b4: 0x6e3e7620, 0x307b5: 0x6e3e7820, 0x307b6: 0x6e3e7a20, 0x307b7: 0x6e3e7c20, - 0x307b8: 0x6e3e7e20, 0x307b9: 0x6e3e8020, 0x307ba: 0x6e3e8220, 0x307bb: 0x6e414020, - 0x307bc: 0x6e414220, 0x307bd: 0x6e414420, 0x307be: 0x6e414620, 0x307bf: 0x6e434020, - // Block 0xc1f, offset 0x307c0 - 0x307c0: 0x6e434220, 0x307c1: 0x6e434420, 0x307c2: 0x6e434620, 0x307c3: 0x6e449420, - 0x307c4: 0x6e449620, 0x307c5: 0x6c0aaa20, 0x307c6: 0x6c158c20, 0x307c7: 0x6c158e20, - 0x307c8: 0x6c27f220, 0x307c9: 0x6c27f420, 0x307ca: 0x6c27f620, 0x307cb: 0x6c27f820, - 0x307cc: 0x6c27fa20, 0x307cd: 0x6c41e020, 0x307ce: 0x6c41e220, 0x307cf: 0x6c41e420, - 0x307d0: 0x6c41e620, 0x307d1: 0x6c41e820, 0x307d2: 0x6c41ea20, 0x307d3: 0x6c41ec20, - 0x307d4: 0x6c41ee20, 0x307d5: 0x6c41f020, 0x307d6: 0x6c41f220, 0x307d7: 0x6c41f420, - 0x307d8: 0x6c626620, 0x307d9: 0x6c626820, 0x307da: 0x6c626a20, 0x307db: 0x6c626c20, - 0x307dc: 0x6c626e20, 0x307dd: 0x6c627020, 0x307de: 0x6c627220, 0x307df: 0x6c627420, - 0x307e0: 0x6c627620, 0x307e1: 0x6c627820, 0x307e2: 0x6c627a20, 0x307e3: 0x6c627c20, - 0x307e4: 0x6c627e20, 0x307e5: 0x6c628020, 0x307e6: 0x6c628220, 0x307e7: 0x6c628420, - 0x307e8: 0x6c628620, 0x307e9: 0x6c628820, 0x307ea: 0x6c628a20, 0x307eb: 0x6c628c20, - 0x307ec: 0x6c628e20, 0x307ed: 0x6c629020, 0x307ee: 0x6c629220, 0x307ef: 0x6c629420, - 0x307f0: 0x6c893420, 0x307f1: 0x6c893620, 0x307f2: 0x6c893820, 0x307f3: 0x6c893a20, - 0x307f4: 0x6c893c20, 0x307f5: 0x6c893e20, 0x307f6: 0x6c894020, 0x307f7: 0x6c894220, - 0x307f8: 0x6c894420, 0x307f9: 0x6c894620, 0x307fa: 0x6c894820, 0x307fb: 0x6c894a20, - 0x307fc: 0x6c894c20, 0x307fd: 0x6c894e20, 0x307fe: 0x6c895020, 0x307ff: 0x6c895220, - // Block 0xc20, offset 0x30800 - 0x30800: 0x6c895420, 0x30801: 0x6c895620, 0x30802: 0x6c895820, 0x30803: 0x6c895a20, - 0x30804: 0x6c895c20, 0x30805: 0x6c895e20, 0x30806: 0x6c896020, 0x30807: 0x6c896220, - 0x30808: 0x6c896420, 0x30809: 0x6c896620, 0x3080a: 0x6c896820, 0x3080b: 0x6c896a20, - 0x3080c: 0x6c896c20, 0x3080d: 0x6c896e20, 0x3080e: 0x6c897020, 0x3080f: 0x6cb52220, - 0x30810: 0x6cb52420, 0x30811: 0x6cb52620, 0x30812: 0x6cb52820, 0x30813: 0x6cb52a20, - 0x30814: 0x6cb52c20, 0x30815: 0x6cb52e20, 0x30816: 0x6cb53020, 0x30817: 0x6cb53220, - 0x30818: 0x6cb53420, 0x30819: 0x6cb53620, 0x3081a: 0x6cb53820, 0x3081b: 0x6cb53a20, - 0x3081c: 0x6cb53c20, 0x3081d: 0x6cb53e20, 0x3081e: 0x6cb54020, 0x3081f: 0x6cb54220, - 0x30820: 0x6cb54420, 0x30821: 0x6cb54620, 0x30822: 0x6cb54820, 0x30823: 0x6cb54a20, - 0x30824: 0x6cb54c20, 0x30825: 0x6cb54e20, 0x30826: 0x6cb55020, 0x30827: 0x6cb55220, - 0x30828: 0x6cb55420, 0x30829: 0x6cb55620, 0x3082a: 0x6cb55820, 0x3082b: 0x6cb55a20, - 0x3082c: 0x6cb55c20, 0x3082d: 0x6cb55e20, 0x3082e: 0x6cb56020, 0x3082f: 0x6cb56220, - 0x30830: 0x6cb56420, 0x30831: 0x6cb56620, 0x30832: 0x6cb56820, 0x30833: 0x6cb56a20, - 0x30834: 0x6cb56c20, 0x30835: 0x6cb56e20, 0x30836: 0x6cb57020, 0x30837: 0x6cb57220, - 0x30838: 0x6ce52a20, 0x30839: 0x6ce52c20, 0x3083a: 0x6ce52e20, 0x3083b: 0x6ce53020, - 0x3083c: 0x6ce53220, 0x3083d: 0x6ce53420, 0x3083e: 0x6ce53620, 0x3083f: 0x6ce53820, - // Block 0xc21, offset 0x30840 - 0x30840: 0x6ce53a20, 0x30841: 0x6ce53c20, 0x30842: 0x6ce53e20, 0x30843: 0x6ce54020, - 0x30844: 0x6ce54220, 0x30845: 0x6ce54420, 0x30846: 0x6ce54620, 0x30847: 0x6ce54820, - 0x30848: 0x6ce54a20, 0x30849: 0x6ce54c20, 0x3084a: 0x6ce54e20, 0x3084b: 0x6ce55020, - 0x3084c: 0x6ce55220, 0x3084d: 0x6ce55420, 0x3084e: 0x6ce55620, 0x3084f: 0x6ce55820, - 0x30850: 0x6ce55a20, 0x30851: 0x6ce55c20, 0x30852: 0x6ce55e20, 0x30853: 0x6ce56020, - 0x30854: 0x6ce56220, 0x30855: 0x6ce56420, 0x30856: 0x6d13a420, 0x30857: 0x6d13a620, - 0x30858: 0x6d13a820, 0x30859: 0x6d13aa20, 0x3085a: 0x6d13ac20, 0x3085b: 0x6d13ae20, - 0x3085c: 0x6d13b020, 0x3085d: 0x6d13b220, 0x3085e: 0x6d13b420, 0x3085f: 0x6d13b620, - 0x30860: 0x6d13b820, 0x30861: 0x6d13ba20, 0x30862: 0x6d13bc20, 0x30863: 0x6d13be20, - 0x30864: 0x6d13c020, 0x30865: 0x6d13c220, 0x30866: 0x6d13c420, 0x30867: 0x6d13c620, - 0x30868: 0x6d13c820, 0x30869: 0x6d13ca20, 0x3086a: 0x6d13cc20, 0x3086b: 0x6d13ce20, - 0x3086c: 0x6d13d020, 0x3086d: 0x6d13d220, 0x3086e: 0x6d13d420, 0x3086f: 0x6d13d620, - 0x30870: 0x6d13d820, 0x30871: 0x6d13da20, 0x30872: 0x6d41c420, 0x30873: 0x6d41c620, - 0x30874: 0x6d41c820, 0x30875: 0x6d41ca20, 0x30876: 0x6d41cc20, 0x30877: 0x6d41ce20, - 0x30878: 0x6d41d020, 0x30879: 0x6d41d220, 0x3087a: 0x6d41d420, 0x3087b: 0x6d41d620, - 0x3087c: 0x6d41d820, 0x3087d: 0x6d41da20, 0x3087e: 0x6d41dc20, 0x3087f: 0x6d41de20, - // Block 0xc22, offset 0x30880 - 0x30880: 0x6d41e020, 0x30881: 0x6d41e220, 0x30882: 0x6d41e420, 0x30883: 0x6d41e620, - 0x30884: 0x6d41e820, 0x30885: 0x6d41ea20, 0x30886: 0x6d6ed220, 0x30887: 0x6d6ed420, - 0x30888: 0x6d6ed620, 0x30889: 0x6d6ed820, 0x3088a: 0x6d6eda20, 0x3088b: 0x6d6edc20, - 0x3088c: 0x6d6ede20, 0x3088d: 0x6d6ee020, 0x3088e: 0x6d6ee220, 0x3088f: 0x6d6ee420, - 0x30890: 0x6d6ee620, 0x30891: 0x6d6ee820, 0x30892: 0x6d6eea20, 0x30893: 0x6d6eec20, - 0x30894: 0x6d6eee20, 0x30895: 0x6d6ef020, 0x30896: 0x6d97ee20, 0x30897: 0x6d97f020, - 0x30898: 0x6d97f220, 0x30899: 0x6d97f420, 0x3089a: 0x6d97f620, 0x3089b: 0x6d97f820, - 0x3089c: 0x6d97fa20, 0x3089d: 0x6d97fc20, 0x3089e: 0x6d97fe20, 0x3089f: 0x6d980020, - 0x308a0: 0x6d980220, 0x308a1: 0x6dbaf020, 0x308a2: 0x6dbaf220, 0x308a3: 0x6dbaf420, - 0x308a4: 0x6dbaf620, 0x308a5: 0x6dbaf820, 0x308a6: 0x6dbafa20, 0x308a7: 0x6dbafc20, - 0x308a8: 0x6dbafe20, 0x308a9: 0x6dbb0020, 0x308aa: 0x6dbb0220, 0x308ab: 0x6dbb0420, - 0x308ac: 0x6dd8fc20, 0x308ad: 0x6dd8fe20, 0x308ae: 0x6dd90020, 0x308af: 0x6dd90220, - 0x308b0: 0x6dd90420, 0x308b1: 0x6dd90620, 0x308b2: 0x6df15e20, 0x308b3: 0x6e059220, - 0x308b4: 0x6e059420, 0x308b5: 0x6e239420, 0x308b6: 0x6e239620, 0x308b7: 0x6c41fe20, - 0x308b8: 0x6c420020, 0x308b9: 0x6cb58a20, 0x308ba: 0x6cb58c20, 0x308bb: 0x6ce57220, - 0x308bc: 0x6d6f0020, 0x308bd: 0x6df16620, 0x308be: 0x6e239820, 0x308bf: 0x6c0aac20, - // Block 0xc23, offset 0x308c0 - 0x308c0: 0x6c420220, 0x308c1: 0x6c62ac20, 0x308c2: 0x6c62ae20, 0x308c3: 0x6c898420, - 0x308c4: 0x6c898620, 0x308c5: 0x6c898820, 0x308c6: 0x6cb5aa20, 0x308c7: 0x6cb5ac20, - 0x308c8: 0x6cb5ae20, 0x308c9: 0x6cb5b020, 0x308ca: 0x6cb5b220, 0x308cb: 0x6ce59420, - 0x308cc: 0x6ce59620, 0x308cd: 0x6ce59820, 0x308ce: 0x6ce59a20, 0x308cf: 0x6ce59c20, - 0x308d0: 0x6ce59e20, 0x308d1: 0x6ce5a020, 0x308d2: 0x6ce5a220, 0x308d3: 0x6ce5a420, - 0x308d4: 0x6ce5a620, 0x308d5: 0x6ce5a820, 0x308d6: 0x6ce5aa20, 0x308d7: 0x6ce5ac20, - 0x308d8: 0x6d141e20, 0x308d9: 0x6d142020, 0x308da: 0x6d142220, 0x308db: 0x6d142420, - 0x308dc: 0x6d142620, 0x308dd: 0x6d142820, 0x308de: 0x6d142a20, 0x308df: 0x6d142c20, - 0x308e0: 0x6d142e20, 0x308e1: 0x6d421a20, 0x308e2: 0x6d421c20, 0x308e3: 0x6d421e20, - 0x308e4: 0x6d422020, 0x308e5: 0x6d422220, 0x308e6: 0x6d422420, 0x308e7: 0x6d422620, - 0x308e8: 0x6d422820, 0x308e9: 0x6d422a20, 0x308ea: 0x6d422c20, 0x308eb: 0x6d6f2420, - 0x308ec: 0x6d6f2620, 0x308ed: 0x6d6f2820, 0x308ee: 0x6d6f2a20, 0x308ef: 0x6d6f2c20, - 0x308f0: 0x6d6f2e20, 0x308f1: 0x6d6f3020, 0x308f2: 0x6d6f3220, 0x308f3: 0x6d6f3420, - 0x308f4: 0x6d6f3620, 0x308f5: 0x6d983620, 0x308f6: 0x6d983820, 0x308f7: 0x6dbb3420, - 0x308f8: 0x6d983a20, 0x308f9: 0x6d983c20, 0x308fa: 0x6d983e20, 0x308fb: 0x6d984020, - 0x308fc: 0x6d984220, 0x308fd: 0x6d984420, 0x308fe: 0x6d984620, 0x308ff: 0x6d984820, - // Block 0xc24, offset 0x30900 - 0x30900: 0x6dbb2420, 0x30901: 0x6d984a20, 0x30902: 0x6d984c20, 0x30903: 0x6dbb3620, - 0x30904: 0x6dbb3820, 0x30905: 0x6dbb3a20, 0x30906: 0x6dbb3c20, 0x30907: 0x6dbb3e20, - 0x30908: 0x6dbb4020, 0x30909: 0x6dbb4220, 0x3090a: 0x6dbb4420, 0x3090b: 0x6dbb4620, - 0x3090c: 0x6dbb4820, 0x3090d: 0x6d988e20, 0x3090e: 0x6dbb4a20, 0x3090f: 0x6dbb4c20, - 0x30910: 0x6dd92020, 0x30911: 0x6dd92220, 0x30912: 0x6dd92420, 0x30913: 0x6dd92620, - 0x30914: 0x6dd92820, 0x30915: 0x6dd92a20, 0x30916: 0x6dd92c20, 0x30917: 0x6dd92e20, - 0x30918: 0x6dd93020, 0x30919: 0x6df17620, 0x3091a: 0x6df17820, 0x3091b: 0x6df17a20, - 0x3091c: 0x6df17c20, 0x3091d: 0x6df17e20, 0x3091e: 0x6e05a220, 0x3091f: 0x6e05a420, - 0x30920: 0x6e05a620, 0x30921: 0x6e05a820, 0x30922: 0x6e165c20, 0x30923: 0x6e165e20, - 0x30924: 0x6e166020, 0x30925: 0x6e166220, 0x30926: 0x6e166420, 0x30927: 0x6e23a620, - 0x30928: 0x6c020a20, 0x30929: 0x6c052620, 0x3092a: 0x6c0aae20, 0x3092b: 0x6c159020, - 0x3092c: 0x6c159220, 0x3092d: 0x6c159420, 0x3092e: 0x6c159620, 0x3092f: 0x6c159820, - 0x30930: 0x6c280420, 0x30931: 0x6c280620, 0x30932: 0x6c280820, 0x30933: 0x6c280a20, - 0x30934: 0x6c280c20, 0x30935: 0x6c280e20, 0x30936: 0x6c281020, 0x30937: 0x6c281220, - 0x30938: 0x6c420820, 0x30939: 0x6c420a20, 0x3093a: 0x6c62b420, 0x3093b: 0x6c62b620, - 0x3093c: 0x6c62b820, 0x3093d: 0x6c62ba20, 0x3093e: 0x6c62bc20, 0x3093f: 0x6c62be20, - // Block 0xc25, offset 0x30940 - 0x30940: 0x6c62c020, 0x30941: 0x6c62c220, 0x30942: 0x6c62c420, 0x30943: 0x6c899620, - 0x30944: 0x6c899820, 0x30945: 0x6c899a20, 0x30946: 0x6c899c20, 0x30947: 0x6cb5c420, - 0x30948: 0x6cb5c620, 0x30949: 0x6cb5c820, 0x3094a: 0x6cb5ca20, 0x3094b: 0x6cb5cc20, - 0x3094c: 0x6cb5ce20, 0x3094d: 0x6cb5d020, 0x3094e: 0x6cb5d220, 0x3094f: 0x6cb5d420, - 0x30950: 0x6cb5d620, 0x30951: 0x6ce5ea20, 0x30952: 0x6ce5ec20, 0x30953: 0x6ce5ee20, - 0x30954: 0x6ce5f020, 0x30955: 0x6ce5f220, 0x30956: 0x6d146e20, 0x30957: 0x6d147020, - 0x30958: 0x6d147220, 0x30959: 0x6d147420, 0x3095a: 0x6d426420, 0x3095b: 0x6d989020, - 0x3095c: 0x6c421020, 0x3095d: 0x6c020c20, 0x3095e: 0x6c0ab420, 0x3095f: 0x6c0ab620, - 0x30960: 0x6c15a420, 0x30961: 0x6c15a620, 0x30962: 0x6c15a820, 0x30963: 0x6c15aa20, - 0x30964: 0x6c15ac20, 0x30965: 0x6c282620, 0x30966: 0x6c282820, 0x30967: 0x6c282a20, - 0x30968: 0x6c282c20, 0x30969: 0x6c282e20, 0x3096a: 0x6c283020, 0x3096b: 0x6c283220, - 0x3096c: 0x6c283420, 0x3096d: 0x6c283620, 0x3096e: 0x6c283820, 0x3096f: 0x6c283a20, - 0x30970: 0x6c283c20, 0x30971: 0x6c283e20, 0x30972: 0x6c284020, 0x30973: 0x6c284220, - 0x30974: 0x6c284420, 0x30975: 0x6c284620, 0x30976: 0x6c284820, 0x30977: 0x6c421820, - 0x30978: 0x6c421a20, 0x30979: 0x6c421c20, 0x3097a: 0x6c421e20, 0x3097b: 0x6c422020, - 0x3097c: 0x6c422220, 0x3097d: 0x6c422420, 0x3097e: 0x6c422620, 0x3097f: 0x6c422820, - // Block 0xc26, offset 0x30980 - 0x30980: 0x6c422a20, 0x30981: 0x6c422c20, 0x30982: 0x6c422e20, 0x30983: 0x6c423020, - 0x30984: 0x6c423220, 0x30985: 0x6c423420, 0x30986: 0x6c423620, 0x30987: 0x6c423820, - 0x30988: 0x6c423a20, 0x30989: 0x6c423c20, 0x3098a: 0x6c62d620, 0x3098b: 0x6c62d820, - 0x3098c: 0x6c62da20, 0x3098d: 0x6c62dc20, 0x3098e: 0x6c62de20, 0x3098f: 0x6c62e020, - 0x30990: 0x6c62e220, 0x30991: 0x6c62e420, 0x30992: 0x6c62e620, 0x30993: 0x6c62e820, - 0x30994: 0x6c62ea20, 0x30995: 0x6c62ec20, 0x30996: 0x6c89b220, 0x30997: 0x6c89b420, - 0x30998: 0x6c89b620, 0x30999: 0x6c89b820, 0x3099a: 0x6c89d820, 0x3099b: 0x6c89ba20, - 0x3099c: 0x6c89bc20, 0x3099d: 0x6c89be20, 0x3099e: 0x6c89c020, 0x3099f: 0x6c89c220, - 0x309a0: 0x6c89c420, 0x309a1: 0x6c89c620, 0x309a2: 0x6c89c820, 0x309a3: 0x6c89ca20, - 0x309a4: 0x6c89cc20, 0x309a5: 0x6c89ce20, 0x309a6: 0x6c89d020, 0x309a7: 0x6c89d220, - 0x309a8: 0x6c89d420, 0x309a9: 0x6c89d620, 0x309aa: 0x6cb5e820, 0x309ab: 0x6cb5ea20, - 0x309ac: 0x6cb5ec20, 0x309ad: 0x6cb5ee20, 0x309ae: 0x6cb5f020, 0x309af: 0x6cb5f220, - 0x309b0: 0x6cb5f420, 0x309b1: 0x6cb5f620, 0x309b2: 0x6ce5fa20, 0x309b3: 0x6cb5f820, - 0x309b4: 0x6cb5fa20, 0x309b5: 0x6cb5fc20, 0x309b6: 0x6cb5fe20, 0x309b7: 0x6cb60020, - 0x309b8: 0x6cb60220, 0x309b9: 0x6cb60420, 0x309ba: 0x6cb60620, 0x309bb: 0x6ce60220, - 0x309bc: 0x6cb60820, 0x309bd: 0x6ce60420, 0x309be: 0x6ce60620, 0x309bf: 0x6ce60820, - // Block 0xc27, offset 0x309c0 - 0x309c0: 0x6ce60a20, 0x309c1: 0x6ce60c20, 0x309c2: 0x6ce60e20, 0x309c3: 0x6ce61020, - 0x309c4: 0x6ce61220, 0x309c5: 0x6ce61420, 0x309c6: 0x6ce61620, 0x309c7: 0x6ce61820, - 0x309c8: 0x6ce61a20, 0x309c9: 0x6ce61c20, 0x309ca: 0x6ce61e20, 0x309cb: 0x6ce62020, - 0x309cc: 0x6ce62220, 0x309cd: 0x6ce62420, 0x309ce: 0x6ce62620, 0x309cf: 0x6d147e20, - 0x309d0: 0x6ce62820, 0x309d1: 0x6d148c20, 0x309d2: 0x6d148e20, 0x309d3: 0x6d149020, - 0x309d4: 0x6d149220, 0x309d5: 0x6d149420, 0x309d6: 0x6d149620, 0x309d7: 0x6d149820, - 0x309d8: 0x6d149a20, 0x309d9: 0x6d426a20, 0x309da: 0x6d427420, 0x309db: 0x6d427620, - 0x309dc: 0x6d427820, 0x309dd: 0x6d427a20, 0x309de: 0x6d427c20, 0x309df: 0x6d427e20, - 0x309e0: 0x6d428020, 0x309e1: 0x6d428220, 0x309e2: 0x6d6f9020, 0x309e3: 0x6d6f9220, - 0x309e4: 0x6d6f9420, 0x309e5: 0x6d6f9620, 0x309e6: 0x6d989820, 0x309e7: 0x6d989a20, - 0x309e8: 0x6d989c20, 0x309e9: 0x6d989e20, 0x309ea: 0x6d98a020, 0x309eb: 0x6d98a220, - 0x309ec: 0x6dbb9220, 0x309ed: 0x6dbb9420, 0x309ee: 0x6dbb9620, 0x309ef: 0x6dbb9820, - 0x309f0: 0x6dbb9a20, 0x309f1: 0x6dbb9c20, 0x309f2: 0x6dbb9e20, 0x309f3: 0x6dd96a20, - 0x309f4: 0x6df1a420, 0x309f5: 0x6e05dc20, 0x309f6: 0x6c427220, 0x309f7: 0x6d98c020, - 0x309f8: 0x6dbbb220, 0x309f9: 0x6c427420, 0x309fa: 0x6c8a3220, 0x309fb: 0x6c8a3420, - 0x309fc: 0x6c8a3620, 0x309fd: 0x6c8a3820, 0x309fe: 0x6c8a3a20, 0x309ff: 0x6cb66420, - // Block 0xc28, offset 0x30a00 - 0x30a00: 0x6cb66620, 0x30a01: 0x6ce69020, 0x30a02: 0x6ce69220, 0x30a03: 0x6ce69420, - 0x30a04: 0x6ce69620, 0x30a05: 0x6ce69820, 0x30a06: 0x6ce69a20, 0x30a07: 0x6ce69c20, - 0x30a08: 0x6ce69e20, 0x30a09: 0x6d14e820, 0x30a0a: 0x6d14ea20, 0x30a0b: 0x6d14ec20, - 0x30a0c: 0x6d42ce20, 0x30a0d: 0x6d14ee20, 0x30a0e: 0x6d14f020, 0x30a0f: 0x6d14f220, - 0x30a10: 0x6d42d220, 0x30a11: 0x6d42d420, 0x30a12: 0x6d42d620, 0x30a13: 0x6d6fd020, - 0x30a14: 0x6d98cc20, 0x30a15: 0x6d98ce20, 0x30a16: 0x6dbbba20, 0x30a17: 0x6dd98c20, - 0x30a18: 0x6dd98e20, 0x30a19: 0x6dd99020, 0x30a1a: 0x6dd99220, 0x30a1b: 0x6dd99420, - 0x30a1c: 0x6dd99620, 0x30a1d: 0x6dd99820, 0x30a1e: 0x6dd99a20, 0x30a1f: 0x6dd99c20, - 0x30a20: 0x6dd99e20, 0x30a21: 0x6df1b020, 0x30a22: 0x6dd9bc20, 0x30a23: 0x6df1b220, - 0x30a24: 0x6e169620, 0x30a25: 0x6e358020, 0x30a26: 0x6e358220, 0x30a27: 0x6e435c20, - 0x30a28: 0x6c427820, 0x30a29: 0x6cb67e20, 0x30a2a: 0x6cb68020, 0x30a2b: 0x6cb68220, - 0x30a2c: 0x6ce6c220, 0x30a2d: 0x6ce6c420, 0x30a2e: 0x6ce6c620, 0x30a2f: 0x6ce6c820, - 0x30a30: 0x6ce6ca20, 0x30a31: 0x6ce6cc20, 0x30a32: 0x6ce6ce20, 0x30a33: 0x6ce6d020, - 0x30a34: 0x6d151a20, 0x30a35: 0x6d151c20, 0x30a36: 0x6d151e20, 0x30a37: 0x6d152020, - 0x30a38: 0x6d152220, 0x30a39: 0x6d152420, 0x30a3a: 0x6d152620, 0x30a3b: 0x6d152820, - 0x30a3c: 0x6d152a20, 0x30a3d: 0x6d152c20, 0x30a3e: 0x6d152e20, 0x30a3f: 0x6d431c20, - // Block 0xc29, offset 0x30a40 - 0x30a40: 0x6d431e20, 0x30a41: 0x6d432020, 0x30a42: 0x6d700220, 0x30a43: 0x6d700420, - 0x30a44: 0x6d700620, 0x30a45: 0x6d700820, 0x30a46: 0x6d700a20, 0x30a47: 0x6d700c20, - 0x30a48: 0x6d700e20, 0x30a49: 0x6d701020, 0x30a4a: 0x6d701220, 0x30a4b: 0x6d991620, - 0x30a4c: 0x6d991820, 0x30a4d: 0x6d991a20, 0x30a4e: 0x6d991c20, 0x30a4f: 0x6d991e20, - 0x30a50: 0x6d992020, 0x30a51: 0x6d992220, 0x30a52: 0x6d992420, 0x30a53: 0x6d992620, - 0x30a54: 0x6d992820, 0x30a55: 0x6d992a20, 0x30a56: 0x6d992c20, 0x30a57: 0x6d992e20, - 0x30a58: 0x6dbbfa20, 0x30a59: 0x6dbbfc20, 0x30a5a: 0x6dbbfe20, 0x30a5b: 0x6dbc0020, - 0x30a5c: 0x6dbc0220, 0x30a5d: 0x6dbc0420, 0x30a5e: 0x6dbc0620, 0x30a5f: 0x6dbc0820, - 0x30a60: 0x6dbc0a20, 0x30a61: 0x6dbc5220, 0x30a62: 0x6dd9ca20, 0x30a63: 0x6dd9cc20, - 0x30a64: 0x6dd9ce20, 0x30a65: 0x6dd9d020, 0x30a66: 0x6df1de20, 0x30a67: 0x6df1e020, - 0x30a68: 0x6df1e220, 0x30a69: 0x6df1e420, 0x30a6a: 0x6df1e620, 0x30a6b: 0x6df1e820, - 0x30a6c: 0x6df1ea20, 0x30a6d: 0x6df1ec20, 0x30a6e: 0x6e061e20, 0x30a6f: 0x6e062020, - 0x30a70: 0x6e062220, 0x30a71: 0x6e062420, 0x30a72: 0x6e16b020, 0x30a73: 0x6e062620, - 0x30a74: 0x6e062820, 0x30a75: 0x6e16b220, 0x30a76: 0x6e16b420, 0x30a77: 0x6e16b620, - 0x30a78: 0x6e16b820, 0x30a79: 0x6e16ba20, 0x30a7a: 0x6e16bc20, 0x30a7b: 0x6e16be20, - 0x30a7c: 0x6e23d820, 0x30a7d: 0x6e23da20, 0x30a7e: 0x6e23dc20, 0x30a7f: 0x6e23de20, - // Block 0xc2a, offset 0x30a80 - 0x30a80: 0x6e23e020, 0x30a81: 0x6e2dea20, 0x30a82: 0x6e359020, 0x30a83: 0x6e359220, - 0x30a84: 0x6e359420, 0x30a85: 0x6e359620, 0x30a86: 0x6e359820, 0x30a87: 0x6e359a20, - 0x30a88: 0x6e359c20, 0x30a89: 0x6e3b0420, 0x30a8a: 0x6e3ec220, 0x30a8b: 0x6e416820, - 0x30a8c: 0x6e416a20, 0x30a8d: 0x6e416c20, 0x30a8e: 0x6e416e20, 0x30a8f: 0x6e44a620, - 0x30a90: 0x6e472220, 0x30a91: 0x6c427a20, 0x30a92: 0x6c427c20, 0x30a93: 0x6ce6f620, - 0x30a94: 0x6ce6f820, 0x30a95: 0x6d155420, 0x30a96: 0x6d155620, 0x30a97: 0x6d435020, - 0x30a98: 0x6d435220, 0x30a99: 0x6d435420, 0x30a9a: 0x6d704e20, 0x30a9b: 0x6d997a20, - 0x30a9c: 0x6d997c20, 0x30a9d: 0x6dda1c20, 0x30a9e: 0x6c427e20, 0x30a9f: 0x6ce70020, - 0x30aa0: 0x6d705220, 0x30aa1: 0x6df23a20, 0x30aa2: 0x6c632e20, 0x30aa3: 0x6c428020, - 0x30aa4: 0x6d436220, 0x30aa5: 0x6d705c20, 0x30aa6: 0x6d998a20, 0x30aa7: 0x6e16f420, - 0x30aa8: 0x6e2dfe20, 0x30aa9: 0x6c633220, 0x30aaa: 0x6cb6a820, 0x30aab: 0x6ce71e20, - 0x30aac: 0x6ce72020, 0x30aad: 0x6ce72220, 0x30aae: 0x6ce72420, 0x30aaf: 0x6ce72620, - 0x30ab0: 0x6ce72820, 0x30ab1: 0x6ce72a20, 0x30ab2: 0x6d158820, 0x30ab3: 0x6d158a20, - 0x30ab4: 0x6d158c20, 0x30ab5: 0x6d158e20, 0x30ab6: 0x6d159020, 0x30ab7: 0x6d159220, - 0x30ab8: 0x6d159420, 0x30ab9: 0x6d159620, 0x30aba: 0x6d438a20, 0x30abb: 0x6d438c20, - 0x30abc: 0x6d438e20, 0x30abd: 0x6d439020, 0x30abe: 0x6d439220, 0x30abf: 0x6d439420, - // Block 0xc2b, offset 0x30ac0 - 0x30ac0: 0x6d439620, 0x30ac1: 0x6d439820, 0x30ac2: 0x6d439a20, 0x30ac3: 0x6d439c20, - 0x30ac4: 0x6d439e20, 0x30ac5: 0x6d43a020, 0x30ac6: 0x6d43a220, 0x30ac7: 0x6d707420, - 0x30ac8: 0x6d707620, 0x30ac9: 0x6d707820, 0x30aca: 0x6d707a20, 0x30acb: 0x6d707c20, - 0x30acc: 0x6d707e20, 0x30acd: 0x6d708020, 0x30ace: 0x6d708220, 0x30acf: 0x6d708420, - 0x30ad0: 0x6d708620, 0x30ad1: 0x6d708820, 0x30ad2: 0x6d708a20, 0x30ad3: 0x6d99b220, - 0x30ad4: 0x6d99b420, 0x30ad5: 0x6d99b620, 0x30ad6: 0x6d99b820, 0x30ad7: 0x6d99ba20, - 0x30ad8: 0x6d99bc20, 0x30ad9: 0x6d99be20, 0x30ada: 0x6dbc7420, 0x30adb: 0x6dbc7620, - 0x30adc: 0x6dbc7820, 0x30add: 0x6dbc7a20, 0x30ade: 0x6dbc7c20, 0x30adf: 0x6dbc7e20, - 0x30ae0: 0x6dbc8020, 0x30ae1: 0x6dbc8220, 0x30ae2: 0x6dda3e20, 0x30ae3: 0x6dda4020, - 0x30ae4: 0x6dda4220, 0x30ae5: 0x6dda4420, 0x30ae6: 0x6dda4620, 0x30ae7: 0x6dda4820, - 0x30ae8: 0x6dda4a20, 0x30ae9: 0x6dda4c20, 0x30aea: 0x6dda4e20, 0x30aeb: 0x6dda5020, - 0x30aec: 0x6dda5220, 0x30aed: 0x6dda5420, 0x30aee: 0x6dda5620, 0x30aef: 0x6dda5820, - 0x30af0: 0x6dda5a20, 0x30af1: 0x6df24e20, 0x30af2: 0x6df25020, 0x30af3: 0x6df25220, - 0x30af4: 0x6df25420, 0x30af5: 0x6df25620, 0x30af6: 0x6df25820, 0x30af7: 0x6df25a20, - 0x30af8: 0x6e069020, 0x30af9: 0x6e069220, 0x30afa: 0x6e069420, 0x30afb: 0x6e069620, - 0x30afc: 0x6e171620, 0x30afd: 0x6e171820, 0x30afe: 0x6e171a20, 0x30aff: 0x6e171c20, - // Block 0xc2c, offset 0x30b00 - 0x30b00: 0x6e241820, 0x30b01: 0x6e241a20, 0x30b02: 0x6e241c20, 0x30b03: 0x6e241e20, - 0x30b04: 0x6e2e0e20, 0x30b05: 0x6e2e1020, 0x30b06: 0x6e35bc20, 0x30b07: 0x6e35be20, - 0x30b08: 0x6e35c020, 0x30b09: 0x6e3ee020, 0x30b0a: 0x6e456e20, 0x30b0b: 0x6c633420, - 0x30b0c: 0x6ce73420, 0x30b0d: 0x6d43e020, 0x30b0e: 0x6d43e220, 0x30b0f: 0x6d70c220, - 0x30b10: 0x6d70c420, 0x30b11: 0x6d70c620, 0x30b12: 0x6d99ee20, 0x30b13: 0x6dbcc620, - 0x30b14: 0x6dbcc820, 0x30b15: 0x6dbcca20, 0x30b16: 0x6ddaaa20, 0x30b17: 0x6ddaac20, - 0x30b18: 0x6ddaae20, 0x30b19: 0x6ddab020, 0x30b1a: 0x6ddab220, 0x30b1b: 0x6e06d420, - 0x30b1c: 0x6df2a820, 0x30b1d: 0x6df2aa20, 0x30b1e: 0x6df2ac20, 0x30b1f: 0x6df2ae20, - 0x30b20: 0x6e06d620, 0x30b21: 0x6e174220, 0x30b22: 0x6e174420, 0x30b23: 0x6e244820, - 0x30b24: 0x6e35ce20, 0x30b25: 0x6e35d020, 0x30b26: 0x6c053420, 0x30b27: 0x6c287c20, - 0x30b28: 0x6c633620, 0x30b29: 0x6ce73820, 0x30b2a: 0x6d15d420, 0x30b2b: 0x6d15d620, - 0x30b2c: 0x6d43fc20, 0x30b2d: 0x6c633c20, 0x30b2e: 0x6d15e020, 0x30b2f: 0x6d70e220, - 0x30b30: 0x6d9a0420, 0x30b31: 0x6dbcea20, 0x30b32: 0x6df2c620, 0x30b33: 0x6c633e20, - 0x30b34: 0x6d15e820, 0x30b35: 0x6d15ea20, 0x30b36: 0x6d440420, 0x30b37: 0x6d440620, - 0x30b38: 0x6d9a0c20, 0x30b39: 0x6ddacc20, 0x30b3a: 0x6ddace20, 0x30b3b: 0x6df2d020, - 0x30b3c: 0x6df2d220, 0x30b3d: 0x6e06f220, 0x30b3e: 0x6e06f420, 0x30b3f: 0x6e06f620, - // Block 0xc2d, offset 0x30b40 - 0x30b40: 0x6e2e3c20, 0x30b41: 0x6c634020, 0x30b42: 0x6cb6b220, 0x30b43: 0x6cb6b420, - 0x30b44: 0x6cb6b620, 0x30b45: 0x6ce74820, 0x30b46: 0x6ce74a20, 0x30b47: 0x6ce74c20, - 0x30b48: 0x6ce74e20, 0x30b49: 0x6d15f220, 0x30b4a: 0x6d15fa20, 0x30b4b: 0x6d15fc20, - 0x30b4c: 0x6d15fe20, 0x30b4d: 0x6d160020, 0x30b4e: 0x6d160220, 0x30b4f: 0x6d160420, - 0x30b50: 0x6d160620, 0x30b51: 0x6d160820, 0x30b52: 0x6d160a20, 0x30b53: 0x6d160c20, - 0x30b54: 0x6d442620, 0x30b55: 0x6d442820, 0x30b56: 0x6d442a20, 0x30b57: 0x6d442c20, - 0x30b58: 0x6d442e20, 0x30b59: 0x6d441220, 0x30b5a: 0x6d443020, 0x30b5b: 0x6d710020, - 0x30b5c: 0x6d710220, 0x30b5d: 0x6d710420, 0x30b5e: 0x6d710620, 0x30b5f: 0x6d710820, - 0x30b60: 0x6d710a20, 0x30b61: 0x6d710c20, 0x30b62: 0x6d710e20, 0x30b63: 0x6d711020, - 0x30b64: 0x6d9a2a20, 0x30b65: 0x6d9a2c20, 0x30b66: 0x6d711220, 0x30b67: 0x6d711420, - 0x30b68: 0x6d711620, 0x30b69: 0x6d711820, 0x30b6a: 0x6d711a20, 0x30b6b: 0x6d711c20, - 0x30b6c: 0x6d711e20, 0x30b6d: 0x6d9a2e20, 0x30b6e: 0x6d9a3020, 0x30b6f: 0x6d9a3220, - 0x30b70: 0x6d9a3420, 0x30b71: 0x6d9a3620, 0x30b72: 0x6d9a3820, 0x30b73: 0x6d9a3a20, - 0x30b74: 0x6d9a3c20, 0x30b75: 0x6d9a3e20, 0x30b76: 0x6d9a4020, 0x30b77: 0x6d9a4220, - 0x30b78: 0x6d9a4420, 0x30b79: 0x6d9a4620, 0x30b7a: 0x6d9a4820, 0x30b7b: 0x6d9a4a20, - 0x30b7c: 0x6d9a4c20, 0x30b7d: 0x6d9a4e20, 0x30b7e: 0x6ddaf020, 0x30b7f: 0x6ddada20, - // Block 0xc2e, offset 0x30b80 - 0x30b80: 0x6dbd0c20, 0x30b81: 0x6dbd0e20, 0x30b82: 0x6dbd1020, 0x30b83: 0x6dbd1220, - 0x30b84: 0x6dbd1420, 0x30b85: 0x6dbd1620, 0x30b86: 0x6dbd1820, 0x30b87: 0x6dbd1a20, - 0x30b88: 0x6dbd1c20, 0x30b89: 0x6dbd1e20, 0x30b8a: 0x6dbd2020, 0x30b8b: 0x6ddaf220, - 0x30b8c: 0x6ddaf420, 0x30b8d: 0x6ddaf620, 0x30b8e: 0x6ddaf820, 0x30b8f: 0x6ddafa20, - 0x30b90: 0x6ddafc20, 0x30b91: 0x6ddafe20, 0x30b92: 0x6ddb0020, 0x30b93: 0x6ddb0220, - 0x30b94: 0x6ddb0420, 0x30b95: 0x6ddb0620, 0x30b96: 0x6df2f020, 0x30b97: 0x6df2f220, - 0x30b98: 0x6df2f420, 0x30b99: 0x6df2f620, 0x30b9a: 0x6df2f820, 0x30b9b: 0x6df2fa20, - 0x30b9c: 0x6df2fc20, 0x30b9d: 0x6df2fe20, 0x30b9e: 0x6df30020, 0x30b9f: 0x6e070e20, - 0x30ba0: 0x6e071020, 0x30ba1: 0x6e071220, 0x30ba2: 0x6e071420, 0x30ba3: 0x6e071620, - 0x30ba4: 0x6e177220, 0x30ba5: 0x6e177420, 0x30ba6: 0x6e177620, 0x30ba7: 0x6e177820, - 0x30ba8: 0x6e177a20, 0x30ba9: 0x6e246e20, 0x30baa: 0x6e247020, 0x30bab: 0x6e247220, - 0x30bac: 0x6e2e4020, 0x30bad: 0x6e2e4220, 0x30bae: 0x6e2e4420, 0x30baf: 0x6e2e4620, - 0x30bb0: 0x6e35de20, 0x30bb1: 0x6e3b3820, 0x30bb2: 0x6e3b3a20, 0x30bb3: 0x6e418220, - 0x30bb4: 0x6e418420, 0x30bb5: 0x6c15d220, 0x30bb6: 0x6c428620, 0x30bb7: 0x6c428820, - 0x30bb8: 0x6c634420, 0x30bb9: 0x6c634620, 0x30bba: 0x6c634820, 0x30bbb: 0x6c634a20, - 0x30bbc: 0x6c8a5220, 0x30bbd: 0x6c8a5420, 0x30bbe: 0x6c8a5620, 0x30bbf: 0x6c8a5820, - // Block 0xc2f, offset 0x30bc0 - 0x30bc0: 0x6c8a5a20, 0x30bc1: 0x6c8a5c20, 0x30bc2: 0x6c8a5e20, 0x30bc3: 0x6c8a6020, - 0x30bc4: 0x6c8a6220, 0x30bc5: 0x6cb6c020, 0x30bc6: 0x6cb6c220, 0x30bc7: 0x6cb6c420, - 0x30bc8: 0x6cb6c620, 0x30bc9: 0x6ce76220, 0x30bca: 0x6ce76420, 0x30bcb: 0x6ce76620, - 0x30bcc: 0x6ce76820, 0x30bcd: 0x6ce76a20, 0x30bce: 0x6ce76c20, 0x30bcf: 0x6ce76e20, - 0x30bd0: 0x6d163e20, 0x30bd1: 0x6d164020, 0x30bd2: 0x6d164220, 0x30bd3: 0x6d164420, - 0x30bd4: 0x6d164620, 0x30bd5: 0x6d164820, 0x30bd6: 0x6d164a20, 0x30bd7: 0x6d447220, - 0x30bd8: 0x6d715e20, 0x30bd9: 0x6d716020, 0x30bda: 0x6d716220, 0x30bdb: 0x6d716420, - 0x30bdc: 0x6d716620, 0x30bdd: 0x6d716820, 0x30bde: 0x6d9ab220, 0x30bdf: 0x6d9ab420, - 0x30be0: 0x6d9ab620, 0x30be1: 0x6d9ab820, 0x30be2: 0x6ddb3e20, 0x30be3: 0x6ddb4020, - 0x30be4: 0x6df33820, 0x30be5: 0x6e074820, 0x30be6: 0x6e17aa20, 0x30be7: 0x6e2e6c20, - 0x30be8: 0x6c634e20, 0x30be9: 0x6ce77a20, 0x30bea: 0x6ce77c20, 0x30beb: 0x6d165820, - 0x30bec: 0x6d165a20, 0x30bed: 0x6d448a20, 0x30bee: 0x6d448c20, 0x30bef: 0x6d448e20, - 0x30bf0: 0x6d449020, 0x30bf1: 0x6d449220, 0x30bf2: 0x6d717020, 0x30bf3: 0x6d717220, - 0x30bf4: 0x6d9ac620, 0x30bf5: 0x6d9ac820, 0x30bf6: 0x6dbd7820, 0x30bf7: 0x6dbd7a20, - 0x30bf8: 0x6ddb5020, 0x30bf9: 0x6ddb5220, 0x30bfa: 0x6ddb5420, 0x30bfb: 0x6df34220, - 0x30bfc: 0x6df34420, 0x30bfd: 0x6df34620, 0x30bfe: 0x6df34820, 0x30bff: 0x6df34a20, - // Block 0xc30, offset 0x30c00 - 0x30c00: 0x6df34c20, 0x30c01: 0x6e074e20, 0x30c02: 0x6e075020, 0x30c03: 0x6e075220, - 0x30c04: 0x6e075420, 0x30c05: 0x6e17b020, 0x30c06: 0x6e17b220, 0x30c07: 0x6e17b420, - 0x30c08: 0x6e17b620, 0x30c09: 0x6e17b820, 0x30c0a: 0x6e17ba20, 0x30c0b: 0x6e249020, - 0x30c0c: 0x6e418c20, 0x30c0d: 0x6e418e20, 0x30c0e: 0x6c053620, 0x30c0f: 0x6c287e20, - 0x30c10: 0x6c635020, 0x30c11: 0x6c635220, 0x30c12: 0x6c635420, 0x30c13: 0x6ce78e20, - 0x30c14: 0x6d168020, 0x30c15: 0x6d44b820, 0x30c16: 0x6d44b620, 0x30c17: 0x6d44ba20, - 0x30c18: 0x6d719420, 0x30c19: 0x6d9af420, 0x30c1a: 0x6d9af620, 0x30c1b: 0x6c635c20, - 0x30c1c: 0x6e17dc20, 0x30c1d: 0x6e419420, 0x30c1e: 0x6c020e20, 0x30c1f: 0x6c636220, - 0x30c20: 0x6c636420, 0x30c21: 0x6cb6d820, 0x30c22: 0x6c8a6820, 0x30c23: 0x6c8a6a20, - 0x30c24: 0x6c8a6c20, 0x30c25: 0x6cb6da20, 0x30c26: 0x6cb6dc20, 0x30c27: 0x6ce79e20, - 0x30c28: 0x6ce7a020, 0x30c29: 0x6ce7a220, 0x30c2a: 0x6ce7a420, 0x30c2b: 0x6ce7a620, - 0x30c2c: 0x6d169420, 0x30c2d: 0x6ce7a820, 0x30c2e: 0x6d169620, 0x30c2f: 0x6ce7aa20, - 0x30c30: 0x6ce7ac20, 0x30c31: 0x6d169820, 0x30c32: 0x6ce7ae20, 0x30c33: 0x6d169a20, - 0x30c34: 0x6d169c20, 0x30c35: 0x6d169e20, 0x30c36: 0x6d16a020, 0x30c37: 0x6d16a220, - 0x30c38: 0x6d44d620, 0x30c39: 0x6d16a420, 0x30c3a: 0x6d71a620, 0x30c3b: 0x6d16a620, - 0x30c3c: 0x6d16a820, 0x30c3d: 0x6d16aa20, 0x30c3e: 0x6d16ac20, 0x30c3f: 0x6d16ae20, - // Block 0xc31, offset 0x30c40 - 0x30c40: 0x6d44d820, 0x30c41: 0x6d44da20, 0x30c42: 0x6d44dc20, 0x30c43: 0x6d44de20, - 0x30c44: 0x6d44e020, 0x30c45: 0x6d44e220, 0x30c46: 0x6d44e420, 0x30c47: 0x6d44e620, - 0x30c48: 0x6d71a820, 0x30c49: 0x6d44e820, 0x30c4a: 0x6d71aa20, 0x30c4b: 0x6d71ac20, - 0x30c4c: 0x6d44ea20, 0x30c4d: 0x6d71ae20, 0x30c4e: 0x6d44ec20, 0x30c4f: 0x6d44ee20, - 0x30c50: 0x6d9b0820, 0x30c51: 0x6d71b020, 0x30c52: 0x6d71b220, 0x30c53: 0x6d71b420, - 0x30c54: 0x6d71b620, 0x30c55: 0x6d71b820, 0x30c56: 0x6d71ba20, 0x30c57: 0x6d71bc20, - 0x30c58: 0x6d71be20, 0x30c59: 0x6d71c020, 0x30c5a: 0x6d9b0c20, 0x30c5b: 0x6d9b0e20, - 0x30c5c: 0x6d9b1020, 0x30c5d: 0x6d9b0a20, 0x30c5e: 0x6d9b1220, 0x30c5f: 0x6d9b1420, - 0x30c60: 0x6d9b1620, 0x30c61: 0x6d9b1820, 0x30c62: 0x6d9b1a20, 0x30c63: 0x6d9b1c20, - 0x30c64: 0x6d9b1e20, 0x30c65: 0x6dbdca20, 0x30c66: 0x6d9b2020, 0x30c67: 0x6d9b2220, - 0x30c68: 0x6d9b2420, 0x30c69: 0x6d9b2620, 0x30c6a: 0x6dbdcc20, 0x30c6b: 0x6dbdce20, - 0x30c6c: 0x6dbdd020, 0x30c6d: 0x6dbdd220, 0x30c6e: 0x6ddb9a20, 0x30c6f: 0x6dbdd420, - 0x30c70: 0x6dbdd620, 0x30c71: 0x6dbdd820, 0x30c72: 0x6dbdda20, 0x30c73: 0x6dbddc20, - 0x30c74: 0x6d9b8c20, 0x30c75: 0x6dbdde20, 0x30c76: 0x6ddb9c20, 0x30c77: 0x6dbde020, - 0x30c78: 0x6ddb9e20, 0x30c79: 0x6ddba020, 0x30c7a: 0x6ddba220, 0x30c7b: 0x6ddba420, - 0x30c7c: 0x6ddba620, 0x30c7d: 0x6ddba820, 0x30c7e: 0x6ddbaa20, 0x30c7f: 0x6ddbac20, - // Block 0xc32, offset 0x30c80 - 0x30c80: 0x6ddbae20, 0x30c81: 0x6ddbb020, 0x30c82: 0x6dbe4420, 0x30c83: 0x6df38820, - 0x30c84: 0x6df38a20, 0x30c85: 0x6df38c20, 0x30c86: 0x6dbe4620, 0x30c87: 0x6df38e20, - 0x30c88: 0x6df39020, 0x30c89: 0x6df39220, 0x30c8a: 0x6e077420, 0x30c8b: 0x6e077620, - 0x30c8c: 0x6e077820, 0x30c8d: 0x6e077a20, 0x30c8e: 0x6e077c20, 0x30c8f: 0x6e17ec20, - 0x30c90: 0x6e077e20, 0x30c91: 0x6e078020, 0x30c92: 0x6e078220, 0x30c93: 0x6e078420, - 0x30c94: 0x6e24ae20, 0x30c95: 0x6e24b020, 0x30c96: 0x6e17ee20, 0x30c97: 0x6e17f020, - 0x30c98: 0x6e17f220, 0x30c99: 0x6e07c220, 0x30c9a: 0x6e24b220, 0x30c9b: 0x6e24b420, - 0x30c9c: 0x6e2e8220, 0x30c9d: 0x6e360220, 0x30c9e: 0x6e3b4c20, 0x30c9f: 0x6e3b4e20, - 0x30ca0: 0x6e419820, 0x30ca1: 0x6e419a20, 0x30ca2: 0x6e457220, 0x30ca3: 0x6c021020, - 0x30ca4: 0x6c0ac220, 0x30ca5: 0x6c0ac420, 0x30ca6: 0x6c15d420, 0x30ca7: 0x6c15d620, - 0x30ca8: 0x6c288020, 0x30ca9: 0x6c288220, 0x30caa: 0x6c288420, 0x30cab: 0x6c288620, - 0x30cac: 0x6c288820, 0x30cad: 0x6c288a20, 0x30cae: 0x6c288c20, 0x30caf: 0x6c429820, - 0x30cb0: 0x6c429a20, 0x30cb1: 0x6c429c20, 0x30cb2: 0x6c429e20, 0x30cb3: 0x6c42a020, - 0x30cb4: 0x6c42a220, 0x30cb5: 0x6c636820, 0x30cb6: 0x6c636a20, 0x30cb7: 0x6c636c20, - 0x30cb8: 0x6c636e20, 0x30cb9: 0x6c637020, 0x30cba: 0x6c637220, 0x30cbb: 0x6c637420, - 0x30cbc: 0x6c637620, 0x30cbd: 0x6c8a7420, 0x30cbe: 0x6c8a7620, 0x30cbf: 0x6c8a7820, - // Block 0xc33, offset 0x30cc0 - 0x30cc0: 0x6c8a7a20, 0x30cc1: 0x6c8a7c20, 0x30cc2: 0x6c8a7e20, 0x30cc3: 0x6cb6fa20, - 0x30cc4: 0x6cb6fc20, 0x30cc5: 0x6cb6fe20, 0x30cc6: 0x6cb70020, 0x30cc7: 0x6ce7d820, - 0x30cc8: 0x6ce7da20, 0x30cc9: 0x6d16f420, 0x30cca: 0x6ce7dc20, 0x30ccb: 0x6ce7de20, - 0x30ccc: 0x6d16f620, 0x30ccd: 0x6d16f820, 0x30cce: 0x6d16fa20, 0x30ccf: 0x6d16fc20, - 0x30cd0: 0x6d16fe20, 0x30cd1: 0x6d452020, 0x30cd2: 0x6d452220, 0x30cd3: 0x6d71fe20, - 0x30cd4: 0x6d720020, 0x30cd5: 0x6e3b5220, 0x30cd6: 0x6c637e20, 0x30cd7: 0x6cb70c20, - 0x30cd8: 0x6dbe4820, 0x30cd9: 0x6c638220, 0x30cda: 0x6d170820, 0x30cdb: 0x6d453620, - 0x30cdc: 0x6d453820, 0x30cdd: 0x6d453a20, 0x30cde: 0x6d9ba020, 0x30cdf: 0x6d9ba220, - 0x30ce0: 0x6d9ba420, 0x30ce1: 0x6dbe5620, 0x30ce2: 0x6dbe5820, 0x30ce3: 0x6dbe5a20, - 0x30ce4: 0x6ddc0420, 0x30ce5: 0x6ddc0620, 0x30ce6: 0x6df3ec20, 0x30ce7: 0x6df3ee20, - 0x30ce8: 0x6e07ca20, 0x30ce9: 0x6e182420, 0x30cea: 0x6e2e9a20, 0x30ceb: 0x6e41a020, - 0x30cec: 0x6c8a8e20, 0x30ced: 0x6ce7f220, 0x30cee: 0x6ce7f420, 0x30cef: 0x6d171420, - 0x30cf0: 0x6d171620, 0x30cf1: 0x6d171820, 0x30cf2: 0x6d171a20, 0x30cf3: 0x6d171c20, - 0x30cf4: 0x6d171e20, 0x30cf5: 0x6d172020, 0x30cf6: 0x6d455820, 0x30cf7: 0x6d455a20, - 0x30cf8: 0x6d455c20, 0x30cf9: 0x6d455e20, 0x30cfa: 0x6d456020, 0x30cfb: 0x6d456220, - 0x30cfc: 0x6d456420, 0x30cfd: 0x6d456620, 0x30cfe: 0x6d456820, 0x30cff: 0x6d456a20, - // Block 0xc34, offset 0x30d00 - 0x30d00: 0x6d456c20, 0x30d01: 0x6d456e20, 0x30d02: 0x6d457020, 0x30d03: 0x6d457220, - 0x30d04: 0x6d457420, 0x30d05: 0x6d457620, 0x30d06: 0x6d457820, 0x30d07: 0x6d457a20, - 0x30d08: 0x6d723220, 0x30d09: 0x6d723420, 0x30d0a: 0x6d723620, 0x30d0b: 0x6d723820, - 0x30d0c: 0x6d723a20, 0x30d0d: 0x6d723c20, 0x30d0e: 0x6d723e20, 0x30d0f: 0x6d724020, - 0x30d10: 0x6d724220, 0x30d11: 0x6d724420, 0x30d12: 0x6d724620, 0x30d13: 0x6d724820, - 0x30d14: 0x6d724a20, 0x30d15: 0x6d724c20, 0x30d16: 0x6d724e20, 0x30d17: 0x6d725020, - 0x30d18: 0x6d725220, 0x30d19: 0x6d725420, 0x30d1a: 0x6d725620, 0x30d1b: 0x6d725820, - 0x30d1c: 0x6d725a20, 0x30d1d: 0x6d725c20, 0x30d1e: 0x6d725e20, 0x30d1f: 0x6d726020, - 0x30d20: 0x6d726220, 0x30d21: 0x6d9bba20, 0x30d22: 0x6d9bbc20, 0x30d23: 0x6d9bbe20, - 0x30d24: 0x6d9bc020, 0x30d25: 0x6d9bc220, 0x30d26: 0x6d9bc420, 0x30d27: 0x6d9bc620, - 0x30d28: 0x6d9bc820, 0x30d29: 0x6d9bca20, 0x30d2a: 0x6d9bcc20, 0x30d2b: 0x6d9bce20, - 0x30d2c: 0x6d9bd020, 0x30d2d: 0x6d9bd220, 0x30d2e: 0x6d9bd420, 0x30d2f: 0x6d9bd620, - 0x30d30: 0x6d9bd820, 0x30d31: 0x6d9bda20, 0x30d32: 0x6d9bdc20, 0x30d33: 0x6dbec020, - 0x30d34: 0x6dbe7020, 0x30d35: 0x6dbe7220, 0x30d36: 0x6dbe7420, 0x30d37: 0x6dbe7620, - 0x30d38: 0x6dbe7820, 0x30d39: 0x6dbe7a20, 0x30d3a: 0x6dbe7c20, 0x30d3b: 0x6dbe7e20, - 0x30d3c: 0x6dbe8020, 0x30d3d: 0x6dbe8220, 0x30d3e: 0x6dbe8420, 0x30d3f: 0x6dbe8620, - // Block 0xc35, offset 0x30d40 - 0x30d40: 0x6dbe8820, 0x30d41: 0x6dbe8a20, 0x30d42: 0x6dbe8c20, 0x30d43: 0x6dbe8e20, - 0x30d44: 0x6ddc2820, 0x30d45: 0x6ddc2a20, 0x30d46: 0x6ddc2c20, 0x30d47: 0x6ddc2e20, - 0x30d48: 0x6ddc3020, 0x30d49: 0x6ddc3220, 0x30d4a: 0x6ddc3420, 0x30d4b: 0x6ddc3620, - 0x30d4c: 0x6ddc3820, 0x30d4d: 0x6ddc3a20, 0x30d4e: 0x6ddc3c20, 0x30d4f: 0x6ddc3e20, - 0x30d50: 0x6ddc4020, 0x30d51: 0x6ddc4220, 0x30d52: 0x6ddc4420, 0x30d53: 0x6ddc4620, - 0x30d54: 0x6df40a20, 0x30d55: 0x6df40c20, 0x30d56: 0x6df40e20, 0x30d57: 0x6df41020, - 0x30d58: 0x6df41220, 0x30d59: 0x6df41420, 0x30d5a: 0x6df41620, 0x30d5b: 0x6df41820, - 0x30d5c: 0x6df41a20, 0x30d5d: 0x6df41c20, 0x30d5e: 0x6df41e20, 0x30d5f: 0x6df42020, - 0x30d60: 0x6df42220, 0x30d61: 0x6df42420, 0x30d62: 0x6df42620, 0x30d63: 0x6df42820, - 0x30d64: 0x6df42a20, 0x30d65: 0x6df42c20, 0x30d66: 0x6df42e20, 0x30d67: 0x6df43020, - 0x30d68: 0x6df43220, 0x30d69: 0x6e07e620, 0x30d6a: 0x6e07e820, 0x30d6b: 0x6e07ea20, - 0x30d6c: 0x6e07ec20, 0x30d6d: 0x6e07ee20, 0x30d6e: 0x6e07f020, 0x30d6f: 0x6e07f220, - 0x30d70: 0x6e07f420, 0x30d71: 0x6e07f620, 0x30d72: 0x6e07f820, 0x30d73: 0x6e07fa20, - 0x30d74: 0x6e07fc20, 0x30d75: 0x6e07fe20, 0x30d76: 0x6e080020, 0x30d77: 0x6e080220, - 0x30d78: 0x6e080420, 0x30d79: 0x6e184220, 0x30d7a: 0x6e184420, 0x30d7b: 0x6e184620, - 0x30d7c: 0x6e184820, 0x30d7d: 0x6e184a20, 0x30d7e: 0x6e184c20, 0x30d7f: 0x6e184e20, - // Block 0xc36, offset 0x30d80 - 0x30d80: 0x6e185020, 0x30d81: 0x6e185220, 0x30d82: 0x6e185420, 0x30d83: 0x6e185620, - 0x30d84: 0x6e185820, 0x30d85: 0x6e185a20, 0x30d86: 0x6e185c20, 0x30d87: 0x6e185e20, - 0x30d88: 0x6e24ee20, 0x30d89: 0x6e24f020, 0x30d8a: 0x6e24f220, 0x30d8b: 0x6e24f420, - 0x30d8c: 0x6e24f620, 0x30d8d: 0x6e24f820, 0x30d8e: 0x6e24fa20, 0x30d8f: 0x6e24fc20, - 0x30d90: 0x6e24fe20, 0x30d91: 0x6e250020, 0x30d92: 0x6e250220, 0x30d93: 0x6e250420, - 0x30d94: 0x6e250620, 0x30d95: 0x6e250820, 0x30d96: 0x6e2ea420, 0x30d97: 0x6e2ea620, - 0x30d98: 0x6e2ea820, 0x30d99: 0x6e2eaa20, 0x30d9a: 0x6e2eac20, 0x30d9b: 0x6e2eae20, - 0x30d9c: 0x6e2eb020, 0x30d9d: 0x6e362220, 0x30d9e: 0x6e362420, 0x30d9f: 0x6e362620, - 0x30da0: 0x6e3f1420, 0x30da1: 0x6e3f1620, 0x30da2: 0x6e3f1820, 0x30da3: 0x6e3f1a20, - 0x30da4: 0x6e41a420, 0x30da5: 0x6e3f2620, 0x30da6: 0x6e41a620, 0x30da7: 0x6e41a820, - 0x30da8: 0x6e437a20, 0x30da9: 0x6e437c20, 0x30daa: 0x6e44c220, 0x30dab: 0x6e457620, - 0x30dac: 0x6c021220, 0x30dad: 0x6c0ac620, 0x30dae: 0x6c15da20, 0x30daf: 0x6c15dc20, - 0x30db0: 0x6c15de20, 0x30db1: 0x6c289820, 0x30db2: 0x6c289a20, 0x30db3: 0x6c289c20, - 0x30db4: 0x6c289e20, 0x30db5: 0x6c42ae20, 0x30db6: 0x6c42b020, 0x30db7: 0x6c42b220, - 0x30db8: 0x6c42b420, 0x30db9: 0x6c42b620, 0x30dba: 0x6c42b820, 0x30dbb: 0x6c42ba20, - 0x30dbc: 0x6c42bc20, 0x30dbd: 0x6c42be20, 0x30dbe: 0x6c42c020, 0x30dbf: 0x6c42c220, - // Block 0xc37, offset 0x30dc0 - 0x30dc0: 0x6c42c420, 0x30dc1: 0x6c638420, 0x30dc2: 0x6c638620, 0x30dc3: 0x6c638820, - 0x30dc4: 0x6c638a20, 0x30dc5: 0x6c638c20, 0x30dc6: 0x6c638e20, 0x30dc7: 0x6c639020, - 0x30dc8: 0x6c639220, 0x30dc9: 0x6c639420, 0x30dca: 0x6c8a9420, 0x30dcb: 0x6c8a9620, - 0x30dcc: 0x6c8a9820, 0x30dcd: 0x6c8a9a20, 0x30dce: 0x6c8a9c20, 0x30dcf: 0x6c8a9e20, - 0x30dd0: 0x6cb71420, 0x30dd1: 0x6cb71620, 0x30dd2: 0x6cb71820, 0x30dd3: 0x6cb71a20, - 0x30dd4: 0x6cb71c20, 0x30dd5: 0x6cb71e20, 0x30dd6: 0x6cb72020, 0x30dd7: 0x6ce80420, - 0x30dd8: 0x6ce80620, 0x30dd9: 0x6ce80820, 0x30dda: 0x6ce80a20, 0x30ddb: 0x6ce80c20, - 0x30ddc: 0x6d173220, 0x30ddd: 0x6d173420, 0x30dde: 0x6d173620, 0x30ddf: 0x6d173820, - 0x30de0: 0x6d45ac20, 0x30de1: 0x6d45ae20, 0x30de2: 0x6d45b020, 0x30de3: 0x6d72aa20, - 0x30de4: 0x6dbec420, 0x30de5: 0x6df48220, 0x30de6: 0x6e086e20, 0x30de7: 0x6e087020, - 0x30de8: 0x6c8aae20, 0x30de9: 0x6ce82c20, 0x30dea: 0x6d174820, 0x30deb: 0x6d174a20, - 0x30dec: 0x6d174c20, 0x30ded: 0x6d174e20, 0x30dee: 0x6d175020, 0x30def: 0x6d45bc20, - 0x30df0: 0x6d45be20, 0x30df1: 0x6d45c020, 0x30df2: 0x6d72bc20, 0x30df3: 0x6d72be20, - 0x30df4: 0x6d72c020, 0x30df5: 0x6d72c220, 0x30df6: 0x6d72c420, 0x30df7: 0x6d72c620, - 0x30df8: 0x6d9c4220, 0x30df9: 0x6d9c4420, 0x30dfa: 0x6d9c4620, 0x30dfb: 0x6d9c4820, - 0x30dfc: 0x6d9c4a20, 0x30dfd: 0x6dbed220, 0x30dfe: 0x6dbed420, 0x30dff: 0x6d9c6820, - // Block 0xc38, offset 0x30e00 - 0x30e00: 0x6ddcac20, 0x30e01: 0x6ddcae20, 0x30e02: 0x6df48c20, 0x30e03: 0x6df48e20, - 0x30e04: 0x6e087220, 0x30e05: 0x6df49020, 0x30e06: 0x6e087620, 0x30e07: 0x6e087820, - 0x30e08: 0x6e087a20, 0x30e09: 0x6e087c20, 0x30e0a: 0x6e087e20, 0x30e0b: 0x6e088020, - 0x30e0c: 0x6e088220, 0x30e0d: 0x6e189420, 0x30e0e: 0x6e189620, 0x30e0f: 0x6e189820, - 0x30e10: 0x6e254620, 0x30e11: 0x6e2ee620, 0x30e12: 0x6e254820, 0x30e13: 0x6e2ee820, - 0x30e14: 0x6e2eea20, 0x30e15: 0x6e364420, 0x30e16: 0x6e3b7420, 0x30e17: 0x6e3f2820, - 0x30e18: 0x6c8ab020, 0x30e19: 0x6cb73620, 0x30e1a: 0x6d45e620, 0x30e1b: 0x6d72e220, - 0x30e1c: 0x6ddcda20, 0x30e1d: 0x6e256420, 0x30e1e: 0x6e2ef820, 0x30e1f: 0x6c8ab220, - 0x30e20: 0x6ce84620, 0x30e21: 0x6d177820, 0x30e22: 0x6d177a20, 0x30e23: 0x6d460620, - 0x30e24: 0x6d460820, 0x30e25: 0x6d460a20, 0x30e26: 0x6d460c20, 0x30e27: 0x6d460e20, - 0x30e28: 0x6d461020, 0x30e29: 0x6d461220, 0x30e2a: 0x6d461420, 0x30e2b: 0x6d72f220, - 0x30e2c: 0x6d72f420, 0x30e2d: 0x6d9c7a20, 0x30e2e: 0x6d72f620, 0x30e2f: 0x6d72f820, - 0x30e30: 0x6d72fa20, 0x30e31: 0x6d72fc20, 0x30e32: 0x6d72fe20, 0x30e33: 0x6d730020, - 0x30e34: 0x6d730220, 0x30e35: 0x6d9c8020, 0x30e36: 0x6d9c8220, 0x30e37: 0x6d9c8420, - 0x30e38: 0x6d9c8620, 0x30e39: 0x6d9c8820, 0x30e3a: 0x6d9c8a20, 0x30e3b: 0x6d9c8c20, - 0x30e3c: 0x6dbf1420, 0x30e3d: 0x6dbf1620, 0x30e3e: 0x6dbf1820, 0x30e3f: 0x6dbf1a20, - // Block 0xc39, offset 0x30e40 - 0x30e40: 0x6dbf1c20, 0x30e41: 0x6dbf1e20, 0x30e42: 0x6dbf2020, 0x30e43: 0x6ddcf220, - 0x30e44: 0x6ddcf420, 0x30e45: 0x6ddcf620, 0x30e46: 0x6ddcf820, 0x30e47: 0x6d9c8e20, - 0x30e48: 0x6ddcfa20, 0x30e49: 0x6df4b220, 0x30e4a: 0x6df4b420, 0x30e4b: 0x6df4b620, - 0x30e4c: 0x6df4b820, 0x30e4d: 0x6df4ba20, 0x30e4e: 0x6df4bc20, 0x30e4f: 0x6df4be20, - 0x30e50: 0x6e08b220, 0x30e51: 0x6e08b420, 0x30e52: 0x6e08b620, 0x30e53: 0x6e08b820, - 0x30e54: 0x6e18b420, 0x30e55: 0x6e18b620, 0x30e56: 0x6e18b820, 0x30e57: 0x6e18ba20, - 0x30e58: 0x6e18bc20, 0x30e59: 0x6e256c20, 0x30e5a: 0x6e256e20, 0x30e5b: 0x6e257020, - 0x30e5c: 0x6e257220, 0x30e5d: 0x6e256820, 0x30e5e: 0x6e2f0020, 0x30e5f: 0x6e2f0220, - 0x30e60: 0x6e2f0420, 0x30e61: 0x6e365c20, 0x30e62: 0x6e365e20, 0x30e63: 0x6e3b8620, - 0x30e64: 0x6e41be20, 0x30e65: 0x6c8ab420, 0x30e66: 0x6d463c20, 0x30e67: 0x6d734420, - 0x30e68: 0x6d9cc020, 0x30e69: 0x6ddd3820, 0x30e6a: 0x6e08ee20, 0x30e6b: 0x6e25a420, - 0x30e6c: 0x6e367420, 0x30e6d: 0x6e367620, 0x30e6e: 0x6e41c820, 0x30e6f: 0x6c8aba20, - 0x30e70: 0x6e41ca20, 0x30e71: 0x6e44ca20, 0x30e72: 0x6c8abc20, 0x30e73: 0x6d9cc820, - 0x30e74: 0x6dbf5620, 0x30e75: 0x6ddd4020, 0x30e76: 0x6ddd4220, 0x30e77: 0x6df4fa20, - 0x30e78: 0x6e08f420, 0x30e79: 0x6e18f420, 0x30e7a: 0x6e18f620, 0x30e7b: 0x6e25ae20, - 0x30e7c: 0x6c8abe20, 0x30e7d: 0x6d179220, 0x30e7e: 0x6d465020, 0x30e7f: 0x6d465220, - // Block 0xc3a, offset 0x30e80 - 0x30e80: 0x6d465420, 0x30e81: 0x6d465620, 0x30e82: 0x6d465820, 0x30e83: 0x6d735820, - 0x30e84: 0x6d735a20, 0x30e85: 0x6d735c20, 0x30e86: 0x6d735e20, 0x30e87: 0x6d9cde20, - 0x30e88: 0x6dbf6220, 0x30e89: 0x6dbf6420, 0x30e8a: 0x6ddd5620, 0x30e8b: 0x6ddd5820, - 0x30e8c: 0x6ddd5a20, 0x30e8d: 0x6ddd5c20, 0x30e8e: 0x6ddd5e20, 0x30e8f: 0x6ddd6020, - 0x30e90: 0x6e090220, 0x30e91: 0x6e190620, 0x30e92: 0x6e190820, 0x30e93: 0x6e190a20, - 0x30e94: 0x6e190c20, 0x30e95: 0x6e25be20, 0x30e96: 0x6e25c020, 0x30e97: 0x6e368a20, - 0x30e98: 0x6e368c20, 0x30e99: 0x6e368e20, 0x30e9a: 0x6cb74420, 0x30e9b: 0x6d17c620, - 0x30e9c: 0x6d17c820, 0x30e9d: 0x6d17ca20, 0x30e9e: 0x6d17cc20, 0x30e9f: 0x6d469220, - 0x30ea0: 0x6d469420, 0x30ea1: 0x6d469620, 0x30ea2: 0x6d469820, 0x30ea3: 0x6d739620, - 0x30ea4: 0x6d739820, 0x30ea5: 0x6d739a20, 0x30ea6: 0x6d739c20, 0x30ea7: 0x6d739e20, - 0x30ea8: 0x6d73a020, 0x30ea9: 0x6d73a220, 0x30eaa: 0x6d73a420, 0x30eab: 0x6d73a620, - 0x30eac: 0x6d73a820, 0x30ead: 0x6d73aa20, 0x30eae: 0x6d73ac20, 0x30eaf: 0x6d73ae20, - 0x30eb0: 0x6d73b020, 0x30eb1: 0x6d73b220, 0x30eb2: 0x6d73b420, 0x30eb3: 0x6d73b620, - 0x30eb4: 0x6d73b820, 0x30eb5: 0x6d73ba20, 0x30eb6: 0x6d73bc20, 0x30eb7: 0x6d73be20, - 0x30eb8: 0x6d73c020, 0x30eb9: 0x6d73c220, 0x30eba: 0x6d9d2420, 0x30ebb: 0x6d9d2620, - 0x30ebc: 0x6d9d2820, 0x30ebd: 0x6d9d2a20, 0x30ebe: 0x6d9d2c20, 0x30ebf: 0x6d9d2e20, - // Block 0xc3b, offset 0x30ec0 - 0x30ec0: 0x6d9d3020, 0x30ec1: 0x6d9d3220, 0x30ec2: 0x6d9d3420, 0x30ec3: 0x6d9d3620, - 0x30ec4: 0x6d9d3820, 0x30ec5: 0x6d9d3a20, 0x30ec6: 0x6dbf9020, 0x30ec7: 0x6d9d3c20, - 0x30ec8: 0x6d9d3e20, 0x30ec9: 0x6d9d4020, 0x30eca: 0x6d9d4220, 0x30ecb: 0x6d9d4420, - 0x30ecc: 0x6d9d4620, 0x30ecd: 0x6d9d4820, 0x30ece: 0x6d9d4a20, 0x30ecf: 0x6d9d4c20, - 0x30ed0: 0x6d9d4e20, 0x30ed1: 0x6d9d5020, 0x30ed2: 0x6d9d5220, 0x30ed3: 0x6d9d5420, - 0x30ed4: 0x6d9d5620, 0x30ed5: 0x6d9d5820, 0x30ed6: 0x6d9d5a20, 0x30ed7: 0x6d9d5c20, - 0x30ed8: 0x6d9d5e20, 0x30ed9: 0x6dbf9c20, 0x30eda: 0x6dbf9e20, 0x30edb: 0x6dbfa020, - 0x30edc: 0x6dbfa220, 0x30edd: 0x6dbfa420, 0x30ede: 0x6dbfa620, 0x30edf: 0x6dbfa820, - 0x30ee0: 0x6dbfaa20, 0x30ee1: 0x6dbfac20, 0x30ee2: 0x6dbfae20, 0x30ee3: 0x6d9d6020, - 0x30ee4: 0x6dbfb020, 0x30ee5: 0x6dbfb220, 0x30ee6: 0x6dbfb420, 0x30ee7: 0x6dbfb620, - 0x30ee8: 0x6dbfb820, 0x30ee9: 0x6dbfba20, 0x30eea: 0x6dbfbc20, 0x30eeb: 0x6dbfbe20, - 0x30eec: 0x6dbfc020, 0x30eed: 0x6dbfc220, 0x30eee: 0x6dbfc420, 0x30eef: 0x6dbfc620, - 0x30ef0: 0x6dbfc820, 0x30ef1: 0x6dbfca20, 0x30ef2: 0x6dbfcc20, 0x30ef3: 0x6dbfce20, - 0x30ef4: 0x6dbfd020, 0x30ef5: 0x6ddd9820, 0x30ef6: 0x6ddd9a20, 0x30ef7: 0x6ddd9c20, - 0x30ef8: 0x6ddd9e20, 0x30ef9: 0x6ddda020, 0x30efa: 0x6dbfd220, 0x30efb: 0x6ddda220, - 0x30efc: 0x6ddda420, 0x30efd: 0x6ddda620, 0x30efe: 0x6ddda820, 0x30eff: 0x6dddaa20, - // Block 0xc3c, offset 0x30f00 - 0x30f00: 0x6dddac20, 0x30f01: 0x6dddae20, 0x30f02: 0x6dddb020, 0x30f03: 0x6dddb220, - 0x30f04: 0x6dddb420, 0x30f05: 0x6df51c20, 0x30f06: 0x6dddb620, 0x30f07: 0x6dddb820, - 0x30f08: 0x6dddba20, 0x30f09: 0x6dddbc20, 0x30f0a: 0x6dddbe20, 0x30f0b: 0x6dddc020, - 0x30f0c: 0x6dddc220, 0x30f0d: 0x6dddc420, 0x30f0e: 0x6dc03a20, 0x30f0f: 0x6dddc620, - 0x30f10: 0x6dddc820, 0x30f11: 0x6dddca20, 0x30f12: 0x6dddcc20, 0x30f13: 0x6dddce20, - 0x30f14: 0x6df54220, 0x30f15: 0x6df54420, 0x30f16: 0x6df54620, 0x30f17: 0x6df54820, - 0x30f18: 0x6df54a20, 0x30f19: 0x6df54c20, 0x30f1a: 0x6df54e20, 0x30f1b: 0x6df55020, - 0x30f1c: 0x6df55220, 0x30f1d: 0x6df55420, 0x30f1e: 0x6df55620, 0x30f1f: 0x6df55820, - 0x30f20: 0x6df55a20, 0x30f21: 0x6df55c20, 0x30f22: 0x6df55e20, 0x30f23: 0x6df56020, - 0x30f24: 0x6df56220, 0x30f25: 0x6df56420, 0x30f26: 0x6df56620, 0x30f27: 0x6df56820, - 0x30f28: 0x6df56a20, 0x30f29: 0x6df56c20, 0x30f2a: 0x6df56e20, 0x30f2b: 0x6df57020, - 0x30f2c: 0x6df57220, 0x30f2d: 0x6df57420, 0x30f2e: 0x6df57620, 0x30f2f: 0x6df57820, - 0x30f30: 0x6df57a20, 0x30f31: 0x6df57c20, 0x30f32: 0x6df57e20, 0x30f33: 0x6df58020, - 0x30f34: 0x6df58220, 0x30f35: 0x6df58420, 0x30f36: 0x6e093220, 0x30f37: 0x6e093420, - 0x30f38: 0x6e093620, 0x30f39: 0x6e093820, 0x30f3a: 0x6df61c20, 0x30f3b: 0x6e091c20, - 0x30f3c: 0x6e093a20, 0x30f3d: 0x6dddd020, 0x30f3e: 0x6e093c20, 0x30f3f: 0x6e093e20, - // Block 0xc3d, offset 0x30f40 - 0x30f40: 0x6e094020, 0x30f41: 0x6e094220, 0x30f42: 0x6e094420, 0x30f43: 0x6e094620, - 0x30f44: 0x6e094820, 0x30f45: 0x6e094a20, 0x30f46: 0x6e094c20, 0x30f47: 0x6e094e20, - 0x30f48: 0x6e095020, 0x30f49: 0x6e095220, 0x30f4a: 0x6e095420, 0x30f4b: 0x6e095620, - 0x30f4c: 0x6e095820, 0x30f4d: 0x6e095a20, 0x30f4e: 0x6e095c20, 0x30f4f: 0x6e095e20, - 0x30f50: 0x6e096020, 0x30f51: 0x6e096220, 0x30f52: 0x6e096420, 0x30f53: 0x6e096620, - 0x30f54: 0x6e096820, 0x30f55: 0x6e096a20, 0x30f56: 0x6e096c20, 0x30f57: 0x6e096e20, - 0x30f58: 0x6e097020, 0x30f59: 0x6e097220, 0x30f5a: 0x6e097420, 0x30f5b: 0x6e097620, - 0x30f5c: 0x6e194620, 0x30f5d: 0x6e194820, 0x30f5e: 0x6e194a20, 0x30f5f: 0x6e194c20, - 0x30f60: 0x6e097820, 0x30f61: 0x6e194e20, 0x30f62: 0x6e195020, 0x30f63: 0x6e195220, - 0x30f64: 0x6e195420, 0x30f65: 0x6e195620, 0x30f66: 0x6e195820, 0x30f67: 0x6e195a20, - 0x30f68: 0x6e195c20, 0x30f69: 0x6e195e20, 0x30f6a: 0x6e196020, 0x30f6b: 0x6e196220, - 0x30f6c: 0x6e196420, 0x30f6d: 0x6e196620, 0x30f6e: 0x6e196820, 0x30f6f: 0x6e196a20, - 0x30f70: 0x6e196c20, 0x30f71: 0x6e25de20, 0x30f72: 0x6e25e020, 0x30f73: 0x6e25e220, - 0x30f74: 0x6e25e420, 0x30f75: 0x6e25e620, 0x30f76: 0x6e25e820, 0x30f77: 0x6e25ea20, - 0x30f78: 0x6e25ec20, 0x30f79: 0x6e25ee20, 0x30f7a: 0x6e25f020, 0x30f7b: 0x6e25f220, - 0x30f7c: 0x6e25f420, 0x30f7d: 0x6e25f620, 0x30f7e: 0x6e25f820, 0x30f7f: 0x6e25fa20, - // Block 0xc3e, offset 0x30f80 - 0x30f80: 0x6e09e620, 0x30f81: 0x6e25fc20, 0x30f82: 0x6e25fe20, 0x30f83: 0x6e260020, - 0x30f84: 0x6e260220, 0x30f85: 0x6e260420, 0x30f86: 0x6e260620, 0x30f87: 0x6e260820, - 0x30f88: 0x6e260a20, 0x30f89: 0x6e267220, 0x30f8a: 0x6e2f5620, 0x30f8b: 0x6e2f5820, - 0x30f8c: 0x6e2f5a20, 0x30f8d: 0x6e2f5c20, 0x30f8e: 0x6e2f5e20, 0x30f8f: 0x6e2f6020, - 0x30f90: 0x6e2f6220, 0x30f91: 0x6e2f6420, 0x30f92: 0x6e2f6620, 0x30f93: 0x6e2f6820, - 0x30f94: 0x6e2f6a20, 0x30f95: 0x6e2f6c20, 0x30f96: 0x6e2f6e20, 0x30f97: 0x6e2f7020, - 0x30f98: 0x6e2f7220, 0x30f99: 0x6e2f7420, 0x30f9a: 0x6e2f7620, 0x30f9b: 0x6e2f7820, - 0x30f9c: 0x6e36a620, 0x30f9d: 0x6e36a820, 0x30f9e: 0x6e36aa20, 0x30f9f: 0x6e36ac20, - 0x30fa0: 0x6e36ae20, 0x30fa1: 0x6e36b020, 0x30fa2: 0x6e36b220, 0x30fa3: 0x6e36b420, - 0x30fa4: 0x6e36b620, 0x30fa5: 0x6e36b820, 0x30fa6: 0x6e36ba20, 0x30fa7: 0x6e36bc20, - 0x30fa8: 0x6e3bac20, 0x30fa9: 0x6e36be20, 0x30faa: 0x6e2fda20, 0x30fab: 0x6e36c020, - 0x30fac: 0x6e3bae20, 0x30fad: 0x6e3bb020, 0x30fae: 0x6e3bb220, 0x30faf: 0x6e3bb420, - 0x30fb0: 0x6e371420, 0x30fb1: 0x6e3f5420, 0x30fb2: 0x6e3f5620, 0x30fb3: 0x6e3f5820, - 0x30fb4: 0x6e3f5a20, 0x30fb5: 0x6e3f5c20, 0x30fb6: 0x6e3f5e20, 0x30fb7: 0x6e41da20, - 0x30fb8: 0x6e41dc20, 0x30fb9: 0x6e44d220, 0x30fba: 0x6e458220, 0x30fbb: 0x6e469a20, - 0x30fbc: 0x6c42dc20, 0x30fbd: 0x6c8ac020, 0x30fbe: 0x6cb74a20, 0x30fbf: 0x6ce86e20, - // Block 0xc3f, offset 0x30fc0 - 0x30fc0: 0x6ce87020, 0x30fc1: 0x6ce87220, 0x30fc2: 0x6ce87420, 0x30fc3: 0x6ce87620, - 0x30fc4: 0x6d17e020, 0x30fc5: 0x6d17e220, 0x30fc6: 0x6d17e420, 0x30fc7: 0x6d17e620, - 0x30fc8: 0x6d17e820, 0x30fc9: 0x6d17ea20, 0x30fca: 0x6d17ec20, 0x30fcb: 0x6d17ee20, - 0x30fcc: 0x6d17f020, 0x30fcd: 0x6d17f220, 0x30fce: 0x6d17f420, 0x30fcf: 0x6d17f620, - 0x30fd0: 0x6d17f820, 0x30fd1: 0x6d46b620, 0x30fd2: 0x6d46b820, 0x30fd3: 0x6d46ba20, - 0x30fd4: 0x6d46bc20, 0x30fd5: 0x6d46be20, 0x30fd6: 0x6d46c020, 0x30fd7: 0x6d46c220, - 0x30fd8: 0x6d46c420, 0x30fd9: 0x6d46c620, 0x30fda: 0x6d46c820, 0x30fdb: 0x6d46ca20, - 0x30fdc: 0x6d46cc20, 0x30fdd: 0x6d46ce20, 0x30fde: 0x6d46d020, 0x30fdf: 0x6d46d220, - 0x30fe0: 0x6d740c20, 0x30fe1: 0x6d740e20, 0x30fe2: 0x6d741020, 0x30fe3: 0x6d741220, - 0x30fe4: 0x6d741420, 0x30fe5: 0x6d741620, 0x30fe6: 0x6d741820, 0x30fe7: 0x6d741a20, - 0x30fe8: 0x6d741c20, 0x30fe9: 0x6d741e20, 0x30fea: 0x6d742020, 0x30feb: 0x6d742220, - 0x30fec: 0x6d742420, 0x30fed: 0x6d9db020, 0x30fee: 0x6d9db220, 0x30fef: 0x6d9db420, - 0x30ff0: 0x6d9db620, 0x30ff1: 0x6d9db820, 0x30ff2: 0x6d9dba20, 0x30ff3: 0x6d9dbc20, - 0x30ff4: 0x6d9dbe20, 0x30ff5: 0x6d9dc020, 0x30ff6: 0x6d9dc220, 0x30ff7: 0x6d9dc420, - 0x30ff8: 0x6d9dc620, 0x30ff9: 0x6d9dc820, 0x30ffa: 0x6d9dca20, 0x30ffb: 0x6d9dcc20, - 0x30ffc: 0x6dc03c20, 0x30ffd: 0x6dc03e20, 0x30ffe: 0x6dc06820, 0x30fff: 0x6dc04020, - // Block 0xc40, offset 0x31000 - 0x31000: 0x6dc04220, 0x31001: 0x6dc04420, 0x31002: 0x6dc04620, 0x31003: 0x6dc04820, - 0x31004: 0x6dc04a20, 0x31005: 0x6dc04c20, 0x31006: 0x6dc04e20, 0x31007: 0x6dc05020, - 0x31008: 0x6dc05220, 0x31009: 0x6dc05420, 0x3100a: 0x6dc05620, 0x3100b: 0x6dc05820, - 0x3100c: 0x6dde2e20, 0x3100d: 0x6dde3020, 0x3100e: 0x6dde3220, 0x3100f: 0x6dde3420, - 0x31010: 0x6dde3620, 0x31011: 0x6dde3820, 0x31012: 0x6dde3a20, 0x31013: 0x6df61e20, - 0x31014: 0x6df62020, 0x31015: 0x6df62220, 0x31016: 0x6df62420, 0x31017: 0x6df62620, - 0x31018: 0x6df62820, 0x31019: 0x6df62a20, 0x3101a: 0x6df62c20, 0x3101b: 0x6df62e20, - 0x3101c: 0x6e09ec20, 0x3101d: 0x6e09ee20, 0x3101e: 0x6e09f020, 0x3101f: 0x6e09f220, - 0x31020: 0x6e19f820, 0x31021: 0x6e19fa20, 0x31022: 0x6e19fc20, 0x31023: 0x6e19fe20, - 0x31024: 0x6e267420, 0x31025: 0x6cb75220, 0x31026: 0x6ce88620, 0x31027: 0x6d180820, - 0x31028: 0x6d180a20, 0x31029: 0x6d180c20, 0x3102a: 0x6d180e20, 0x3102b: 0x6d181020, - 0x3102c: 0x6c63ac20, 0x3102d: 0x6d181220, 0x3102e: 0x6d181420, 0x3102f: 0x6d181620, - 0x31030: 0x6d181820, 0x31031: 0x6d46f420, 0x31032: 0x6d46f620, 0x31033: 0x6d46f820, - 0x31034: 0x6d46fa20, 0x31035: 0x6d46fc20, 0x31036: 0x6d46fe20, 0x31037: 0x6d745020, - 0x31038: 0x6d745220, 0x31039: 0x6d745420, 0x3103a: 0x6d745620, 0x3103b: 0x6d745820, - 0x3103c: 0x6d745a20, 0x3103d: 0x6d745c20, 0x3103e: 0x6d745e20, 0x3103f: 0x6d746020, - // Block 0xc41, offset 0x31040 - 0x31040: 0x6d746220, 0x31041: 0x6d746420, 0x31042: 0x6d746620, 0x31043: 0x6d746820, - 0x31044: 0x6d746a20, 0x31045: 0x6d746c20, 0x31046: 0x6d746e20, 0x31047: 0x6d747020, - 0x31048: 0x6d747220, 0x31049: 0x6d747420, 0x3104a: 0x6d9e0620, 0x3104b: 0x6d747620, - 0x3104c: 0x6d747820, 0x3104d: 0x6d747a20, 0x3104e: 0x6d747c20, 0x3104f: 0x6d9e0820, - 0x31050: 0x6d9e0a20, 0x31051: 0x6d9e0c20, 0x31052: 0x6d9e0e20, 0x31053: 0x6d9e1020, - 0x31054: 0x6d9e1220, 0x31055: 0x6d9e1420, 0x31056: 0x6d9e1620, 0x31057: 0x6d9e1820, - 0x31058: 0x6d9e1a20, 0x31059: 0x6d9e1c20, 0x3105a: 0x6d9e1e20, 0x3105b: 0x6d9e2020, - 0x3105c: 0x6dc06a20, 0x3105d: 0x6d9e2220, 0x3105e: 0x6d9e2420, 0x3105f: 0x6d9e2620, - 0x31060: 0x6d9e2820, 0x31061: 0x6d9e2a20, 0x31062: 0x6d9e2c20, 0x31063: 0x6d9e2e20, - 0x31064: 0x6d9e3020, 0x31065: 0x6d9e3220, 0x31066: 0x6d9e3420, 0x31067: 0x6d9e3620, - 0x31068: 0x6d9e3820, 0x31069: 0x6d9e3a20, 0x3106a: 0x6d9e3c20, 0x3106b: 0x6d9e3e20, - 0x3106c: 0x6d9e4020, 0x3106d: 0x6dc08020, 0x3106e: 0x6dc08220, 0x3106f: 0x6dc08420, - 0x31070: 0x6dc08620, 0x31071: 0x6dc08820, 0x31072: 0x6dc08a20, 0x31073: 0x6dc08c20, - 0x31074: 0x6dc08e20, 0x31075: 0x6dc09020, 0x31076: 0x6dc09220, 0x31077: 0x6dc09420, - 0x31078: 0x6dc09620, 0x31079: 0x6dc09820, 0x3107a: 0x6dc09a20, 0x3107b: 0x6dc09c20, - 0x3107c: 0x6dc09e20, 0x3107d: 0x6dc0a020, 0x3107e: 0x6dc0a220, 0x3107f: 0x6dc0a420, - // Block 0xc42, offset 0x31080 - 0x31080: 0x6dc0a620, 0x31081: 0x6dc0a820, 0x31082: 0x6dc0aa20, 0x31083: 0x6dc0ac20, - 0x31084: 0x6dc0ae20, 0x31085: 0x6dc0b020, 0x31086: 0x6dc0b220, 0x31087: 0x6dc0b420, - 0x31088: 0x6dc0b620, 0x31089: 0x6dc0b820, 0x3108a: 0x6dde4e20, 0x3108b: 0x6dde5020, - 0x3108c: 0x6dde5220, 0x3108d: 0x6dde5420, 0x3108e: 0x6dde5620, 0x3108f: 0x6dde5820, - 0x31090: 0x6dde5a20, 0x31091: 0x6dde5c20, 0x31092: 0x6dde5e20, 0x31093: 0x6dde6020, - 0x31094: 0x6dde6220, 0x31095: 0x6dde6420, 0x31096: 0x6dde6620, 0x31097: 0x6dde6820, - 0x31098: 0x6dde6a20, 0x31099: 0x6dde6c20, 0x3109a: 0x6dde6e20, 0x3109b: 0x6dde7020, - 0x3109c: 0x6dde7220, 0x3109d: 0x6dde7420, 0x3109e: 0x6dde7620, 0x3109f: 0x6dde7820, - 0x310a0: 0x6dde7a20, 0x310a1: 0x6df63820, 0x310a2: 0x6dde7c20, 0x310a3: 0x6dde7e20, - 0x310a4: 0x6dd43a20, 0x310a5: 0x6dde8020, 0x310a6: 0x6df64c20, 0x310a7: 0x6dc13220, - 0x310a8: 0x6df64e20, 0x310a9: 0x6df65020, 0x310aa: 0x6df65220, 0x310ab: 0x6df65420, - 0x310ac: 0x6df65620, 0x310ad: 0x6df65820, 0x310ae: 0x6df65a20, 0x310af: 0x6df65c20, - 0x310b0: 0x6df65e20, 0x310b1: 0x6df66020, 0x310b2: 0x6df66220, 0x310b3: 0x6df66420, - 0x310b4: 0x6df66620, 0x310b5: 0x6df66820, 0x310b6: 0x6df66a20, 0x310b7: 0x6df66c20, - 0x310b8: 0x6df66e20, 0x310b9: 0x6df67020, 0x310ba: 0x6df67220, 0x310bb: 0x6df67420, - 0x310bc: 0x6df67620, 0x310bd: 0x6df67820, 0x310be: 0x6df67a20, 0x310bf: 0x6df67c20, - // Block 0xc43, offset 0x310c0 - 0x310c0: 0x6df67e20, 0x310c1: 0x6df68020, 0x310c2: 0x6df68220, 0x310c3: 0x6df68420, - 0x310c4: 0x6df68620, 0x310c5: 0x6df68820, 0x310c6: 0x6df68a20, 0x310c7: 0x6df68c20, - 0x310c8: 0x6df68e20, 0x310c9: 0x6df69020, 0x310ca: 0x6df69220, 0x310cb: 0x6df69420, - 0x310cc: 0x6df69620, 0x310cd: 0x6df69820, 0x310ce: 0x6df69a20, 0x310cf: 0x6df69c20, - 0x310d0: 0x6e0a0e20, 0x310d1: 0x6df69e20, 0x310d2: 0x6e0a1020, 0x310d3: 0x6e0a1220, - 0x310d4: 0x6e0a1420, 0x310d5: 0x6e0a1620, 0x310d6: 0x6e0a1820, 0x310d7: 0x6e0a1a20, - 0x310d8: 0x6e0a1c20, 0x310d9: 0x6e0a1e20, 0x310da: 0x6e0a2020, 0x310db: 0x6e0a2220, - 0x310dc: 0x6e0a2420, 0x310dd: 0x6e0a2620, 0x310de: 0x6e0a2820, 0x310df: 0x6e0a2a20, - 0x310e0: 0x6e0a2c20, 0x310e1: 0x6e0a2e20, 0x310e2: 0x6e0a3020, 0x310e3: 0x6e0a3220, - 0x310e4: 0x6e0a3420, 0x310e5: 0x6e0a3620, 0x310e6: 0x6e0a3820, 0x310e7: 0x6e0a3a20, - 0x310e8: 0x6e0a3c20, 0x310e9: 0x6e0a3e20, 0x310ea: 0x6e0a4020, 0x310eb: 0x6e0a4220, - 0x310ec: 0x6e1a1020, 0x310ed: 0x6e1a1220, 0x310ee: 0x6e1a1420, 0x310ef: 0x6e1a1620, - 0x310f0: 0x6e1a1820, 0x310f1: 0x6e1a1a20, 0x310f2: 0x6e1a1c20, 0x310f3: 0x6e1a1e20, - 0x310f4: 0x6e1a2020, 0x310f5: 0x6e1a2220, 0x310f6: 0x6e1a2420, 0x310f7: 0x6e1a2620, - 0x310f8: 0x6e1a2820, 0x310f9: 0x6e1a2a20, 0x310fa: 0x6e1a2c20, 0x310fb: 0x6e1a2e20, - 0x310fc: 0x6e1a3020, 0x310fd: 0x6e1a3220, 0x310fe: 0x6e1a3420, 0x310ff: 0x6e0ad220, - // Block 0xc44, offset 0x31100 - 0x31100: 0x6e1a3620, 0x31101: 0x6e1a3820, 0x31102: 0x6e1a3a20, 0x31103: 0x6e1a3c20, - 0x31104: 0x6e1a3e20, 0x31105: 0x6e1a4020, 0x31106: 0x6e1a4220, 0x31107: 0x6e1a4420, - 0x31108: 0x6e1a4620, 0x31109: 0x6e1a4820, 0x3110a: 0x6e1a4a20, 0x3110b: 0x6e268620, - 0x3110c: 0x6e1a4c20, 0x3110d: 0x6e1a4e20, 0x3110e: 0x6e1a5020, 0x3110f: 0x6e1a5220, - 0x31110: 0x6e268820, 0x31111: 0x6e268a20, 0x31112: 0x6e268c20, 0x31113: 0x6e268e20, - 0x31114: 0x6e269020, 0x31115: 0x6e269220, 0x31116: 0x6e269420, 0x31117: 0x6e269620, - 0x31118: 0x6e269820, 0x31119: 0x6e269a20, 0x3111a: 0x6e269c20, 0x3111b: 0x6e269e20, - 0x3111c: 0x6e26a020, 0x3111d: 0x6e26a220, 0x3111e: 0x6e26a420, 0x3111f: 0x6e26a620, - 0x31120: 0x6e260c20, 0x31121: 0x6e2ff220, 0x31122: 0x6e2ff420, 0x31123: 0x6e2ff620, - 0x31124: 0x6e2ff820, 0x31125: 0x6e2ffa20, 0x31126: 0x6e2ffc20, 0x31127: 0x6e2ffe20, - 0x31128: 0x6e300020, 0x31129: 0x6e273020, 0x3112a: 0x6e300220, 0x3112b: 0x6e300420, - 0x3112c: 0x6e300620, 0x3112d: 0x6e300820, 0x3112e: 0x6e300a20, 0x3112f: 0x6e300c20, - 0x31130: 0x6e300e20, 0x31131: 0x6e301020, 0x31132: 0x6e301220, 0x31133: 0x6e301420, - 0x31134: 0x6e301620, 0x31135: 0x6e273220, 0x31136: 0x6e301820, 0x31137: 0x6e301a20, - 0x31138: 0x6e301c20, 0x31139: 0x6e372220, 0x3113a: 0x6e371620, 0x3113b: 0x6e301e20, - 0x3113c: 0x6e302020, 0x3113d: 0x6e372420, 0x3113e: 0x6e372620, 0x3113f: 0x6e372820, - // Block 0xc45, offset 0x31140 - 0x31140: 0x6e372a20, 0x31141: 0x6e372c20, 0x31142: 0x6e372e20, 0x31143: 0x6e373020, - 0x31144: 0x6e373220, 0x31145: 0x6e373420, 0x31146: 0x6e373620, 0x31147: 0x6e373820, - 0x31148: 0x6e373a20, 0x31149: 0x6e373c20, 0x3114a: 0x6e373e20, 0x3114b: 0x6e3bea20, - 0x3114c: 0x6e3bec20, 0x3114d: 0x6e3bee20, 0x3114e: 0x6e3bf020, 0x3114f: 0x6e3bf220, - 0x31150: 0x6e3bf420, 0x31151: 0x6e3bf620, 0x31152: 0x6e3bf820, 0x31153: 0x6e3f8820, - 0x31154: 0x6e3f8a20, 0x31155: 0x6e41fa20, 0x31156: 0x6e41fc20, 0x31157: 0x6e41fe20, - 0x31158: 0x6e43c020, 0x31159: 0x6e43c220, 0x3115a: 0x6e43c420, 0x3115b: 0x6e44e620, - 0x3115c: 0x6e44e820, 0x3115d: 0x6e458c20, 0x3115e: 0x6e458e20, 0x3115f: 0x6c0ac820, - 0x31160: 0x6c28a620, 0x31161: 0x6c28a820, 0x31162: 0x6c42de20, 0x31163: 0x6c42e020, - 0x31164: 0x6c42e220, 0x31165: 0x6c63ae20, 0x31166: 0x6c63b020, 0x31167: 0x6c63b220, - 0x31168: 0x6c63b420, 0x31169: 0x6c63b620, 0x3116a: 0x6c8ac420, 0x3116b: 0x6c8ac620, - 0x3116c: 0x6c8ac820, 0x3116d: 0x6c8aca20, 0x3116e: 0x6c8acc20, 0x3116f: 0x6c8ace20, - 0x31170: 0x6c8ad020, 0x31171: 0x6c8ad220, 0x31172: 0x6c8ad420, 0x31173: 0x6c8ad620, - 0x31174: 0x6c8ad820, 0x31175: 0x6c8ada20, 0x31176: 0x6c8adc20, 0x31177: 0x6cb75620, - 0x31178: 0x6cb75820, 0x31179: 0x6cb75a20, 0x3117a: 0x6cb75c20, 0x3117b: 0x6cb75e20, - 0x3117c: 0x6cb76020, 0x3117d: 0x6cb76220, 0x3117e: 0x6cb76420, 0x3117f: 0x6cb76620, - // Block 0xc46, offset 0x31180 - 0x31180: 0x6ce89020, 0x31181: 0x6ce89220, 0x31182: 0x6ce89420, 0x31183: 0x6ce89620, - 0x31184: 0x6ce89820, 0x31185: 0x6ce89a20, 0x31186: 0x6ce89c20, 0x31187: 0x6ce89e20, - 0x31188: 0x6ce8a020, 0x31189: 0x6d183020, 0x3118a: 0x6d183220, 0x3118b: 0x6d183420, - 0x3118c: 0x6d183620, 0x3118d: 0x6d183820, 0x3118e: 0x6d183a20, 0x3118f: 0x6d183c20, - 0x31190: 0x6d183e20, 0x31191: 0x6d184020, 0x31192: 0x6d184220, 0x31193: 0x6d184420, - 0x31194: 0x6d184620, 0x31195: 0x6d472620, 0x31196: 0x6d472820, 0x31197: 0x6d472a20, - 0x31198: 0x6d74e020, 0x31199: 0x6d472c20, 0x3119a: 0x6d472e20, 0x3119b: 0x6d473020, - 0x3119c: 0x6d473220, 0x3119d: 0x6d74e220, 0x3119e: 0x6d74e420, 0x3119f: 0x6d74e620, - 0x311a0: 0x6d74e820, 0x311a1: 0x6d74ea20, 0x311a2: 0x6d74ec20, 0x311a3: 0x6d74ee20, - 0x311a4: 0x6d74f020, 0x311a5: 0x6d9eba20, 0x311a6: 0x6d9ebc20, 0x311a7: 0x6d9ebe20, - 0x311a8: 0x6d9ec020, 0x311a9: 0x6dc13820, 0x311aa: 0x6dc13a20, 0x311ab: 0x6dc13c20, - 0x311ac: 0x6dc13e20, 0x311ad: 0x6ddee620, 0x311ae: 0x6ddee820, 0x311af: 0x6ddeea20, - 0x311b0: 0x6ddeec20, 0x311b1: 0x6df73020, 0x311b2: 0x6df73220, 0x311b3: 0x6e273420, - 0x311b4: 0x6e273620, 0x311b5: 0x6cb78220, 0x311b6: 0x6d750020, 0x311b7: 0x6d9eca20, - 0x311b8: 0x6df73620, 0x311b9: 0x6e0ad820, 0x311ba: 0x6e1ac620, 0x311bb: 0x6e1ac820, - 0x311bc: 0x6e378c20, 0x311bd: 0x6e378e20, 0x311be: 0x6d9ed820, 0x311bf: 0x6cb78620, - // Block 0xc47, offset 0x311c0 - 0x311c0: 0x6d185620, 0x311c1: 0x6d185820, 0x311c2: 0x6d185a20, 0x311c3: 0x6d751220, - 0x311c4: 0x6d751420, 0x311c5: 0x6d9ee220, 0x311c6: 0x6d9ee420, 0x311c7: 0x6d9ee620, - 0x311c8: 0x6d9ee820, 0x311c9: 0x6dc14820, 0x311ca: 0x6dc14a20, 0x311cb: 0x6dc14c20, - 0x311cc: 0x6ddefc20, 0x311cd: 0x6ddefe20, 0x311ce: 0x6ddf0020, 0x311cf: 0x6ddf0220, - 0x311d0: 0x6ddf0420, 0x311d1: 0x6df74820, 0x311d2: 0x6df74a20, 0x311d3: 0x6df74c20, - 0x311d4: 0x6df74e20, 0x311d5: 0x6df75020, 0x311d6: 0x6df75220, 0x311d7: 0x6df75420, - 0x311d8: 0x6e0aec20, 0x311d9: 0x6e0aee20, 0x311da: 0x6e0af020, 0x311db: 0x6e0af220, - 0x311dc: 0x6e1ad620, 0x311dd: 0x6e1ad820, 0x311de: 0x6e274420, 0x311df: 0x6e30b220, - 0x311e0: 0x6e379a20, 0x311e1: 0x6e3c3820, 0x311e2: 0x6e43e220, 0x311e3: 0x6e460a20, - 0x311e4: 0x6e46a220, 0x311e5: 0x6cb78a20, 0x311e6: 0x6c28aa20, 0x311e7: 0x6d475620, - 0x311e8: 0x6d753420, 0x311e9: 0x6d753620, 0x311ea: 0x6d753820, 0x311eb: 0x6d753a20, - 0x311ec: 0x6d9f0620, 0x311ed: 0x6d9f0820, 0x311ee: 0x6d9f0a20, 0x311ef: 0x6dc17020, - 0x311f0: 0x6dc17220, 0x311f1: 0x6ddf2e20, 0x311f2: 0x6ddf3020, 0x311f3: 0x6df77420, - 0x311f4: 0x6df77620, 0x311f5: 0x6e0b0620, 0x311f6: 0x6e275620, 0x311f7: 0x6e44fe20, - 0x311f8: 0x6cb78c20, 0x311f9: 0x6d755a20, 0x311fa: 0x6d9f2620, 0x311fb: 0x6cb79420, - 0x311fc: 0x6d476420, 0x311fd: 0x6d476620, 0x311fe: 0x6d756420, 0x311ff: 0x6ddf5220, - // Block 0xc48, offset 0x31200 - 0x31200: 0x6df79a20, 0x31201: 0x6e0b2a20, 0x31202: 0x6e30dc20, 0x31203: 0x6ce8b420, - 0x31204: 0x6ce8b620, 0x31205: 0x6d9f3420, 0x31206: 0x6d9f3620, 0x31207: 0x6dc19420, - 0x31208: 0x6dc19620, 0x31209: 0x6dc19820, 0x3120a: 0x6ddf5a20, 0x3120b: 0x6ddf5c20, - 0x3120c: 0x6e3c4c20, 0x3120d: 0x6ce8b820, 0x3120e: 0x6d758020, 0x3120f: 0x6dc1a820, - 0x31210: 0x6e278420, 0x31211: 0x6ce8ba20, 0x31212: 0x6cb79620, 0x31213: 0x6d758a20, - 0x31214: 0x6d9f4c20, 0x31215: 0x6d9f4e20, 0x31216: 0x6d9f5020, 0x31217: 0x6d9f5220, - 0x31218: 0x6d9f5420, 0x31219: 0x6d585420, 0x3121a: 0x6dc1c220, 0x3121b: 0x6dc1c420, - 0x3121c: 0x6dc1c620, 0x3121d: 0x6dc1c820, 0x3121e: 0x6dc1ca20, 0x3121f: 0x6ddf7220, - 0x31220: 0x6ddf7420, 0x31221: 0x6ddf7620, 0x31222: 0x6df7c620, 0x31223: 0x6df7c820, - 0x31224: 0x6e0b5420, 0x31225: 0x6e0b5620, 0x31226: 0x6e0b5820, 0x31227: 0x6e0b5a20, - 0x31228: 0x6e0b5c20, 0x31229: 0x6e0b5e20, 0x3122a: 0x6e0b6020, 0x3122b: 0x6e1b2020, - 0x3122c: 0x6e1b2220, 0x3122d: 0x6e1b2420, 0x3122e: 0x6e1b2620, 0x3122f: 0x6e1b2820, - 0x31230: 0x6e278820, 0x31231: 0x6e278a20, 0x31232: 0x6e30f220, 0x31233: 0x6e30f420, - 0x31234: 0x6e30f620, 0x31235: 0x6e3c5820, 0x31236: 0x6e3fc820, 0x31237: 0x6e423420, - 0x31238: 0x6e43f420, 0x31239: 0x6ce8be20, 0x3123a: 0x6d9f7220, 0x3123b: 0x6dc1e620, - 0x3123c: 0x6df7e020, 0x3123d: 0x6d187420, 0x3123e: 0x6c42e420, 0x3123f: 0x6dc1e820, - // Block 0xc49, offset 0x31240 - 0x31240: 0x6ddf8e20, 0x31241: 0x6ddf9020, 0x31242: 0x6ddf9220, 0x31243: 0x6df7e420, - 0x31244: 0x6df7e620, 0x31245: 0x6e1b6620, 0x31246: 0x6e310c20, 0x31247: 0x6e310e20, - 0x31248: 0x6e3c7020, 0x31249: 0x6e3c7220, 0x3124a: 0x6e3fd420, 0x3124b: 0x6ce8c020, - 0x3124c: 0x6d187620, 0x3124d: 0x6e0b9620, 0x3124e: 0x6d187820, 0x3124f: 0x6d75a020, - 0x31250: 0x6d75a220, 0x31251: 0x6d75a420, 0x31252: 0x6d9f7820, 0x31253: 0x6d187a20, - 0x31254: 0x6d187c20, 0x31255: 0x6ddfaa20, 0x31256: 0x6ddfac20, 0x31257: 0x6df7f820, - 0x31258: 0x6e1b6e20, 0x31259: 0x6e1b7020, 0x3125a: 0x6e1b7220, 0x3125b: 0x6e1b7420, - 0x3125c: 0x6e311420, 0x3125d: 0x6e3c7a20, 0x3125e: 0x6e37ec20, 0x3125f: 0x6e3c7c20, - 0x31260: 0x6d188020, 0x31261: 0x6c42e620, 0x31262: 0x6dc20220, 0x31263: 0x6dc20420, - 0x31264: 0x6dc20620, 0x31265: 0x6ddfb820, 0x31266: 0x6ddfba20, 0x31267: 0x6ddfbc20, - 0x31268: 0x6ddfbe20, 0x31269: 0x6ddfc020, 0x3126a: 0x6ddfc220, 0x3126b: 0x6ddfc420, - 0x3126c: 0x6ddfc620, 0x3126d: 0x6df80c20, 0x3126e: 0x6e0ba420, 0x3126f: 0x6e0ba620, - 0x31270: 0x6e0ba820, 0x31271: 0x6e1b8020, 0x31272: 0x6e27d820, 0x31273: 0x6e27da20, - 0x31274: 0x6e27dc20, 0x31275: 0x6e27de20, 0x31276: 0x6e311c20, 0x31277: 0x6e311e20, - 0x31278: 0x6e312020, 0x31279: 0x6e312220, 0x3127a: 0x6e440020, 0x3127b: 0x6d478020, - 0x3127c: 0x6d9f8820, 0x3127d: 0x6d9f8a20, 0x3127e: 0x6dc22020, 0x3127f: 0x6dc22220, - // Block 0xc4a, offset 0x31280 - 0x31280: 0x6df82220, 0x31281: 0x6df82420, 0x31282: 0x6e27f420, 0x31283: 0x6e313820, - 0x31284: 0x6e313a20, 0x31285: 0x6e380020, 0x31286: 0x6e380220, 0x31287: 0x6e3c9220, - 0x31288: 0x6e424e20, 0x31289: 0x6e46fc20, 0x3128a: 0x6d478220, 0x3128b: 0x6dc22c20, - 0x3128c: 0x6ddfec20, 0x3128d: 0x6df83420, 0x3128e: 0x6e1b9a20, 0x3128f: 0x6e314420, - 0x31290: 0x6c15e220, 0x31291: 0x6d75b420, 0x31292: 0x6d75b620, 0x31293: 0x6d9f9220, - 0x31294: 0x6dc23020, 0x31295: 0x6ddff620, 0x31296: 0x6df83e20, 0x31297: 0x6df84020, - 0x31298: 0x6df84220, 0x31299: 0x6e0bda20, 0x3129a: 0x6e0bdc20, 0x3129b: 0x6e0bde20, - 0x3129c: 0x6e1b9e20, 0x3129d: 0x6e0be020, 0x3129e: 0x6e0be220, 0x3129f: 0x6e0be420, - 0x312a0: 0x6e0be620, 0x312a1: 0x6e0be820, 0x312a2: 0x6dc23a20, 0x312a3: 0x6e0bea20, - 0x312a4: 0x6e1ba420, 0x312a5: 0x6e1ba620, 0x312a6: 0x6e1ba820, 0x312a7: 0x6e1baa20, - 0x312a8: 0x6e1bac20, 0x312a9: 0x6e1bae20, 0x312aa: 0x6e280020, 0x312ab: 0x6e280220, - 0x312ac: 0x6e280420, 0x312ad: 0x6e314a20, 0x312ae: 0x6e314c20, 0x312af: 0x6e314e20, - 0x312b0: 0x6e315020, 0x312b1: 0x6e315220, 0x312b2: 0x6e381220, 0x312b3: 0x6e381420, - 0x312b4: 0x6e381620, 0x312b5: 0x6e381820, 0x312b6: 0x6e381a20, 0x312b7: 0x6e381c20, - 0x312b8: 0x6e3ca820, 0x312b9: 0x6e3caa20, 0x312ba: 0x6e3cac20, 0x312bb: 0x6e3cae20, - 0x312bc: 0x6e440620, 0x312bd: 0x6e440820, 0x312be: 0x6e46dc20, 0x312bf: 0x6c42e820, - // Block 0xc4b, offset 0x312c0 - 0x312c0: 0x6c8aee20, 0x312c1: 0x6cb79820, 0x312c2: 0x6ce8c420, 0x312c3: 0x6d188220, - 0x312c4: 0x6d188420, 0x312c5: 0x6d188620, 0x312c6: 0x6d188820, 0x312c7: 0x6d478620, - 0x312c8: 0x6d478820, 0x312c9: 0x6d75ba20, 0x312ca: 0x6d75bc20, 0x312cb: 0x6dc23c20, - 0x312cc: 0x6dc23e20, 0x312cd: 0x6d9f9c20, 0x312ce: 0x6de00020, 0x312cf: 0x6df85a20, - 0x312d0: 0x6de23620, 0x312d1: 0x6e0c1220, 0x312d2: 0x6e1be220, 0x312d3: 0x6e283820, - 0x312d4: 0x6e283a20, 0x312d5: 0x6e283c20, 0x312d6: 0x6e467820, 0x312d7: 0x6e46a820, - 0x312d8: 0x6e473c20, 0x312d9: 0x6c0aca20, 0x312da: 0x6cb79a20, 0x312db: 0x6cb79c20, - 0x312dc: 0x6d9f9e20, 0x312dd: 0x6e1bea20, 0x312de: 0x6e441620, 0x312df: 0x6c28ac20, - 0x312e0: 0x6dc24220, 0x312e1: 0x6e1c0020, 0x312e2: 0x6e284620, 0x312e3: 0x6e3cda20, - 0x312e4: 0x6e3ffc20, 0x312e5: 0x6e3ffe20, 0x312e6: 0x6d585620, 0x312e7: 0x6d7e6e20, - 0x312e8: 0x6c670020, 0x312e9: 0x6db26c20, 0x312ea: 0x6c610620, 0x312eb: 0x6ce29e20, - 0x312ec: 0x6d974220, 0x312ed: 0x6e186020, 0x312ee: 0x6e41aa20, 0x312ef: 0x6d135620, - 0x312f0: 0x6c04aa20, 0x312f1: 0x6c079420, 0x312f2: 0x6dd85820, 0x312f3: 0x6d789a20, - 0x312f4: 0x6c006420, 0x312f5: 0x6c01f820, 0x312f6: 0x6c03d220, 0x312f7: 0x6c0a5820, - 0x312f8: 0x6c083c20, 0x312f9: 0x6c0c7020, 0x312fa: 0x6c2bb820, 0x312fb: 0x6ded8620, - 0x312fc: 0x6da1a620, 0x312fd: 0x6d585820, 0x312fe: 0x6d00ea20, 0x312ff: 0x6cae1c20, - // Block 0xc4c, offset 0x31300 - 0x31300: 0x6e134020, 0x31301: 0x6d0e4820, 0x31302: 0x6dd6dc20, 0x31303: 0x6cd37020, - 0x31304: 0x6c749620, 0x31305: 0x6daca820, 0x31306: 0x6c3cfa20, 0x31307: 0x6c29c820, - 0x31308: 0x6c1efa20, 0x31309: 0x6c1efc20, 0x3130a: 0x6cad0e20, 0x3130b: 0x6db51620, - // Block 0xc4d, offset 0x31340 - 0x31340: 0x6c86d020, 0x31341: 0x6c219c20, 0x31342: 0x6c270e20, 0x31343: 0x6d0f3a20, - 0x31344: 0x6cfa9420, 0x31345: 0x6c160020, 0x31346: 0x6c073820, 0x31347: 0x6d9f9e20, - 0x31348: 0x6d9f9e20, 0x31349: 0x6c490c20, 0x3134a: 0x6c41dc20, 0x3134b: 0x6cbab020, - 0x3134c: 0x6c2eb020, 0x3134d: 0x6de28c20, 0x3134e: 0x6e102820, 0x3134f: 0x6de9ba20, - 0x31350: 0x6e2b8e20, 0x31351: 0x6db3f420, 0x31352: 0x6d3b6a20, 0x31353: 0x6e2d0820, - 0x31354: 0x6d540620, 0x31355: 0x6c542820, 0x31356: 0x6c782020, 0x31357: 0x6c79ee20, - 0x31358: 0x6d09ae20, 0x31359: 0x6d128020, 0x3135a: 0x6d9bda20, 0x3135b: 0x6ce8d220, - 0x3135c: 0x6c18d820, 0x3135d: 0x6e0e7820, 0x3135e: 0x6e0f8220, 0x3135f: 0x6e12b420, - 0x31360: 0x6e458e20, 0x31361: 0x6cc0c020, 0x31362: 0x6da7c620, 0x31363: 0x6dd18820, - 0x31364: 0x6e01ee20, 0x31365: 0x6c348020, 0x31366: 0x6dea2c20, 0x31367: 0x6e135e20, - 0x31368: 0x6cc21820, 0x31369: 0x6c73be20, 0x3136a: 0x6c769c20, 0x3136b: 0x6c795620, - 0x3136c: 0x6c620220, 0x3136d: 0x6c297820, 0x3136e: 0x6c179420, 0x3136f: 0x6cb9b220, - 0x31370: 0x6d7cd420, 0x31371: 0x6de3da20, 0x31372: 0x6dfc5620, 0x31373: 0x6d868620, - 0x31374: 0x6c144420, 0x31375: 0x6e008a20, 0x31376: 0x6d0bc020, 0x31377: 0x6d103820, - 0x31378: 0x6e16b020, 0x31379: 0x6d73ae20, 0x3137a: 0x6e371620, 0x3137b: 0x6d027820, - 0x3137c: 0x6d032420, 0x3137d: 0x6d33d820, 0x3137e: 0x6cdb3420, 0x3137f: 0x6d96bc20, - // Block 0xc4e, offset 0x31380 - 0x31380: 0x6cb78620, 0x31381: 0x6d68ec20, 0x31382: 0x6de11020, 0x31383: 0x6c1e9220, - 0x31384: 0x6e1f9e20, 0x31385: 0x6e206020, 0x31386: 0x6c23f020, 0x31387: 0x6d5d2420, - 0x31388: 0x6d0f2e20, 0x31389: 0x6d152020, 0x3138a: 0x6dc3e620, 0x3138b: 0x6d1fe020, - 0x3138c: 0x6d542620, 0x3138d: 0x6c9f4220, 0x3138e: 0x6d295820, 0x3138f: 0x6ca91620, - 0x31390: 0x6daf5020, 0x31391: 0x6c62d820, 0x31392: 0x6c8d4420, 0x31393: 0x6c145c20, - 0x31394: 0x6d487e20, 0x31395: 0x6c65d820, 0x31396: 0x6d03ae20, 0x31397: 0x6d341420, - 0x31398: 0x6cdb8220, 0x31399: 0x6cb5fc20, 0x3139a: 0x6e21cc20, 0x3139b: 0x6c4ef420, - 0x3139c: 0x6d540620, 0x3139d: 0x6d927c20, 0x3139e: 0x6c024220, 0x3139f: 0x6d1f5620, - 0x313a0: 0x6c4d8620, 0x313a1: 0x6ca2d620, 0x313a2: 0x6ca3e620, 0x313a3: 0x6c06c620, - 0x313a4: 0x6dac3420, 0x313a5: 0x6c438020, 0x313a6: 0x6cc2d420, 0x313a7: 0x6c021a20, - 0x313a8: 0x6c38c420, 0x313a9: 0x6d527e20, 0x313aa: 0x6c803a20, 0x313ab: 0x6c8de620, - 0x313ac: 0x6ced8620, 0x313ad: 0x6c599e20, 0x313ae: 0x6d09c620, 0x313af: 0x6d3c9420, - 0x313b0: 0x6c9e2620, 0x313b1: 0x6c272020, 0x313b2: 0x6c22fc20, 0x313b3: 0x6c4f3820, - 0x313b4: 0x6c5eb420, 0x313b5: 0x6c997820, 0x313b6: 0x6ca3de20, 0x313b7: 0x6c433620, - 0x313b8: 0x6c2a4c20, 0x313b9: 0x6c65d220, 0x313ba: 0x6c9c8020, 0x313bb: 0x6dce7a20, - 0x313bc: 0x6c263620, 0x313bd: 0x6d68e420, 0x313be: 0x6ce47020, 0x313bf: 0x6da05e20, - // Block 0xc4f, offset 0x313c0 - 0x313c0: 0x6c199220, 0x313c1: 0x6c019420, 0x313c2: 0x6de23220, 0x313c3: 0x6c72c420, - 0x313c4: 0x6dc8dc20, 0x313c5: 0x6dfe0220, 0x313c6: 0x6d6f2820, 0x313c7: 0x6e44c220, - 0x313c8: 0x6df75420, 0x313c9: 0x6d758020, 0x313ca: 0x6c00a820, 0x313cb: 0x6d7e5e20, - 0x313cc: 0x6d80f220, 0x313cd: 0x6e22bc20, 0x313ce: 0x6c10da20, 0x313cf: 0x6d4fbc20, - 0x313d0: 0x6e28d020, 0x313d1: 0x6d515420, 0x313d2: 0x6d297c20, 0x313d3: 0x6cfc0c20, - 0x313d4: 0x6d5a3c20, 0x313d5: 0x6c3d4620, 0x313d6: 0x6d60c620, 0x313d7: 0x6db0a020, - 0x313d8: 0x6d6bf020, 0x313d9: 0x6d642020, 0x313da: 0x6cb37e20, 0x313db: 0x6db9b220, - 0x313dc: 0x6c0cfc20, 0x313dd: 0x6c0d4020, 0x313de: 0x6c46c420, 0x313df: 0x6c77fe20, - 0x313e0: 0x6cde9a20, 0x313e1: 0x6d3c9420, 0x313e2: 0x6cf17420, 0x313e3: 0x6c32f220, - 0x313e4: 0x6c993220, 0x313e5: 0x6da72420, 0x313e6: 0x6de83e20, 0x313e7: 0x6dca5a20, - 0x313e8: 0x6c05e820, 0x313e9: 0x6c2d8820, 0x313ea: 0x6d1f5620, 0x313eb: 0x6da2f220, - 0x313ec: 0x6c333420, 0x313ed: 0x6c573a20, 0x313ee: 0x6d5a0620, 0x313ef: 0x6caa3420, - 0x313f0: 0x6caada20, 0x313f1: 0x6d12d220, 0x313f2: 0x6d151e20, 0x313f3: 0x6e359c20, - 0x313f4: 0x6d442e20, 0x313f5: 0x6c298220, 0x313f6: 0x6dcca820, 0x313f7: 0x6e043820, - 0x313f8: 0x6dbbb220, 0x313f9: 0x6cc32e20, 0x313fa: 0x6c006a20, 0x313fb: 0x6d18e420, - 0x313fc: 0x6d4cd620, 0x313fd: 0x6c1cfc20, 0x313fe: 0x6c729c20, 0x313ff: 0x6d540620, - // Block 0xc50, offset 0x31400 - 0x31400: 0x6d834420, 0x31401: 0x6daa7820, 0x31402: 0x6d643a20, 0x31403: 0x6d95ae20, - 0x31404: 0x6d9f9c20, 0x31405: 0x6cf5f820, 0x31406: 0x6c283820, 0x31407: 0x6d48a020, - 0x31408: 0x6c368e20, 0x31409: 0x6c521a20, 0x3140a: 0x6c546e20, 0x3140b: 0x6cfa3020, - 0x3140c: 0x6c7a1820, 0x3140d: 0x6c7ac820, 0x3140e: 0x6cd45220, 0x3140f: 0x6c801620, - 0x31410: 0x6df30020, 0x31411: 0x6c02d820, 0x31412: 0x6d50c420, 0x31413: 0x6cb60220, - 0x31414: 0x6c64a820, 0x31415: 0x6c945a20, 0x31416: 0x6c9f6220, 0x31417: 0x6d6bf820, - 0x31418: 0x6c4d5820, 0x31419: 0x6cf2a220, 0x3141a: 0x6c73f020, 0x3141b: 0x6ca2d620, - 0x3141c: 0x6ce61620, 0x3141d: 0x6c17f820, 0x3141e: 0x6c0e4220, 0x3141f: 0x6d4d6420, - 0x31420: 0x6c35ea20, 0x31421: 0x6c21ce20, 0x31422: 0x6c9cce20, 0x31423: 0x6c38f420, - 0x31424: 0x6ca30c20, 0x31425: 0x6cd24620, 0x31426: 0x6d8bbe20, 0x31427: 0x6d0cea20, - 0x31428: 0x6d0d0c20, 0x31429: 0x6c27f020, 0x3142a: 0x6dd9bc20, 0x3142b: 0x6c8d9420, - 0x3142c: 0x6cfa6c20, 0x3142d: 0x6c194820, 0x3142e: 0x6d834820, 0x3142f: 0x6d84e820, - 0x31430: 0x6e007220, 0x31431: 0x6d6f9220, 0x31432: 0x6e2f7020, 0x31433: 0x6e30b220, - 0x31434: 0x6c36c420, 0x31435: 0x6c9f2420, 0x31436: 0x6db16420, 0x31437: 0x6c0a4420, - 0x31438: 0x6ca80e20, 0x31439: 0x6ca89c20, 0x3143a: 0x6c3ab620, 0x3143b: 0x6c39cc20, - 0x3143c: 0x6ded7c20, 0x3143d: 0x6c029620, 0x3143e: 0x6c83b820, 0x3143f: 0x6c2ae020, - // Block 0xc51, offset 0x31440 - 0x31440: 0x6c032820, 0x31441: 0x6c4c8220, 0x31442: 0x6c349220, 0x31443: 0x6d8a6620, - 0x31444: 0x6c0fbc20, 0x31445: 0x6c542c20, 0x31446: 0x6d531620, 0x31447: 0x6d952420, - 0x31448: 0x6c14d020, 0x31449: 0x6c62dc20, 0x3144a: 0x6c26a020, 0x3144b: 0x6d212a20, - 0x3144c: 0x6c014620, 0x3144d: 0x6ceb7220, 0x3144e: 0x6ceb3420, 0x3144f: 0x6c69d820, - 0x31450: 0x6ced7e20, 0x31451: 0x6cc0dc20, 0x31452: 0x6cc79a20, 0x31453: 0x6cf79a20, - 0x31454: 0x6d26f820, 0x31455: 0x6d769020, 0x31456: 0x6ca29820, 0x31457: 0x6c7bf820, - 0x31458: 0x6c13f620, 0x31459: 0x6c7de220, 0x3145a: 0x6ca69620, 0x3145b: 0x6d30ce20, - 0x3145c: 0x6d155620, 0x3145d: 0x6d335420, 0x3145e: 0x6c144220, 0x3145f: 0x6deabe20, - 0x31460: 0x6e015420, 0x31461: 0x6caea820, 0x31462: 0x6d697820, 0x31463: 0x6cb20820, - 0x31464: 0x6c412e20, 0x31465: 0x6ce32420, 0x31466: 0x6cb42820, 0x31467: 0x6d6e4820, - 0x31468: 0x6d974420, 0x31469: 0x6d149c20, 0x3146a: 0x6ce7aa20, 0x3146b: 0x6d16a820, - 0x3146c: 0x6d9b2420, 0x3146d: 0x6e1a2020, 0x3146e: 0x6c888620, 0x3146f: 0x6d98c020, - 0x31470: 0x6c435e20, 0x31471: 0x6d18fe20, 0x31472: 0x6c173820, 0x31473: 0x6c456020, - 0x31474: 0x6cea9c20, 0x31475: 0x6c2bac20, 0x31476: 0x6cbada20, 0x31477: 0x6d1b7220, - 0x31478: 0x6d773620, 0x31479: 0x6cbcc820, 0x3147a: 0x6d758820, 0x3147b: 0x6d4d6220, - 0x3147c: 0x6c01b620, 0x3147d: 0x6c6fc020, 0x3147e: 0x6cc3aa20, 0x3147f: 0x6d4fb820, - // Block 0xc52, offset 0x31480 - 0x31480: 0x6de28220, 0x31481: 0x6c9ab020, 0x31482: 0x6c50ac20, 0x31483: 0x6cc7b820, - 0x31484: 0x6c9c8820, 0x31485: 0x6c76b620, 0x31486: 0x6c9fb820, 0x31487: 0x6d297a20, - 0x31488: 0x6cce4620, 0x31489: 0x6c04d820, 0x3148a: 0x6cd0a820, 0x3148b: 0x6d028220, - 0x3148c: 0x6c3cee20, 0x3148d: 0x6c5ad020, 0x3148e: 0x6c5ace20, 0x3148f: 0x6c7dc620, - 0x31490: 0x6c7dd220, 0x31491: 0x6c7de020, 0x31492: 0x6d30ca20, 0x31493: 0x6d30cc20, - 0x31494: 0x6d5e0420, 0x31495: 0x6c5ba420, 0x31496: 0x6d051020, 0x31497: 0x6d60c620, - 0x31498: 0x6d8abc20, 0x31499: 0x6daf6420, 0x3149a: 0x6d071220, 0x3149b: 0x6c3e3620, - 0x3149c: 0x6c82de20, 0x3149d: 0x6c020420, 0x3149e: 0x6c020420, 0x3149f: 0x6cdbee20, - 0x314a0: 0x6d678620, 0x314a1: 0x6ca6aa20, 0x314a2: 0x6d928220, 0x314a3: 0x6dd48e20, - 0x314a4: 0x6d3d8420, 0x314a5: 0x6dee3c20, 0x314a6: 0x6c051e20, 0x314a7: 0x6ce32420, - 0x314a8: 0x6df1b220, 0x314a9: 0x6e06f620, 0x314aa: 0x6d9a4a20, 0x314ab: 0x6c6f8420, - 0x314ac: 0x6cfce020, 0x314ad: 0x6d8d8a20, - 0x314b0: 0x6c28ae20, 0x314b1: 0x6c179020, 0x314b2: 0x6c0c5a20, 0x314b3: 0x6c296c20, - 0x314b4: 0x6c061420, 0x314b5: 0x6d767a20, 0x314b6: 0x6c455c20, 0x314b7: 0x6c016420, - 0x314b8: 0x6cbada20, 0x314b9: 0x6c8e9a20, 0x314ba: 0x6cbad220, 0x314bb: 0x6cebb420, - 0x314bc: 0x6ced7e20, 0x314bd: 0x6d4b0420, 0x314be: 0x6c2ea820, 0x314bf: 0x6c2ef220, - // Block 0xc53, offset 0x314c0 - 0x314c0: 0x6c924620, 0x314c1: 0x6d79de20, 0x314c2: 0x6d212820, 0x314c3: 0x6d216c20, - 0x314c4: 0x6c96ac20, 0x314c5: 0x6cf1fa20, 0x314c6: 0x6c97b620, 0x314c7: 0x6cf2b020, - 0x314c8: 0x6cf25620, 0x314c9: 0x6d4fb820, 0x314ca: 0x6d224e20, 0x314cb: 0x6de28220, - 0x314cc: 0x6da46c20, 0x314cd: 0x6cc4ee20, 0x314ce: 0x6cf40620, 0x314cf: 0x6cc56820, - 0x314d0: 0x6c9abe20, 0x314d1: 0x6cc79a20, 0x314d2: 0x6c73be20, 0x314d3: 0x6c9c2220, - 0x314d4: 0x6c21de20, 0x314d5: 0x6c04ae20, 0x314d6: 0x6c9e2620, 0x314d7: 0x6c546e20, - 0x314d8: 0x6cfaa420, 0x314d9: 0x6cccf220, 0x314da: 0x6d297a20, 0x314db: 0x6de4d620, - 0x314dc: 0x6cce4620, 0x314dd: 0x6dab6420, 0x314de: 0x6da93020, 0x314df: 0x6c09de20, - 0x314e0: 0x6ca29820, 0x314e1: 0x6d2d0620, 0x314e2: 0x6d2dac20, 0x314e3: 0x6c3be220, - 0x314e4: 0x6d5b5220, 0x314e5: 0x6d5b3020, 0x314e6: 0x6c7bf820, 0x314e7: 0x6ca4d020, - 0x314e8: 0x6c3c8820, 0x314e9: 0x6cd36020, 0x314ea: 0x6ca59220, 0x314eb: 0x6d5d2820, - 0x314ec: 0x6d5e7620, 0x314ed: 0x6d051020, 0x314ee: 0x6c5c3a20, 0x314ef: 0x6d061420, - 0x314f0: 0x6d60c620, 0x314f1: 0x6cd85420, 0x314f2: 0x6c3e3620, 0x314f3: 0x6c83e820, - 0x314f4: 0x6cdb7e20, 0x314f5: 0x6d900a20, 0x314f6: 0x6db50820, 0x314f7: 0x6dd40e20, - 0x314f8: 0x6ca6aa20, 0x314f9: 0x6d68be20, 0x314fa: 0x6d697820, 0x314fb: 0x6d68d620, - 0x314fc: 0x6d928220, 0x314fd: 0x6d927c20, 0x314fe: 0x6d925c20, 0x314ff: 0x6dd48e20, - // Block 0xc54, offset 0x31500 - 0x31500: 0x6e2c4c20, 0x31501: 0x6dee3c20, 0x31502: 0x6d951e20, 0x31503: 0x6d959e20, - 0x31504: 0x6db93e20, 0x31505: 0x6d40e620, 0x31506: 0x6cb60820, 0x31507: 0x6df1b220, - 0x31508: 0x6d155620, 0x31509: 0x6e06d420, 0x3150a: 0x6e06f620, 0x3150b: 0x6d15fc20, - 0x3150c: 0x6d9a4a20, 0x3150d: 0x6e08b620, 0x3150e: 0x6d9f9e20, 0x3150f: 0x6d502220, - 0x31510: 0x6d501620, 0x31511: 0x6c36f420, 0x31512: 0x6cf6d620, 0x31513: 0x6c597a20, - 0x31514: 0x6cd34020, 0x31515: 0x6d5c7220, 0x31516: 0x6dcdba20, 0x31517: 0x6d0fcc20, - 0x31518: 0x6e313820, 0x31519: 0x6de00020, - // Block 0xc55, offset 0x31540 - 0x31540: 0xf0001c1c, 0x31541: 0xf0001c1c, 0x31542: 0x00658c9c, - 0x31550: 0x2c047483, 0x31551: 0x2c0faa83, 0x31552: 0x2c03a483, 0x31553: 0xf0001c1c, - 0x31554: 0x2c007483, 0x31555: 0x2c0f1e83, 0x31556: 0x2d0dc083, 0x31557: 0x2c03de83, - 0x31558: 0x2c0b5483, 0x31559: 0x2c50d083, 0x3155a: 0x2cce0683, 0x3155b: 0x2c729c83, - 0x3155c: 0x2c44fc83, 0x3155d: 0x2c4d5a83, 0x3155e: 0x2c0c7883, 0x3155f: 0x2cf5a283, - 0x31560: 0x2c17e083, 0x31561: 0x2ca93c83, 0x31562: 0x2c0a0283, 0x31563: 0x2cb1a083, - 0x31564: 0x2c1b6883, 0x31565: 0x2c198083, 0x31566: 0x2d295e83, 0x31567: 0x2c208683, - 0x31568: 0x2c714283, 0x31569: 0x2c000283, 0x3156a: 0x2c00dc83, 0x3156b: 0x2d118683, - 0x3156c: 0x2c089283, 0x3156d: 0x2c023683, 0x3156e: 0x2c075483, 0x3156f: 0x2c4f4883, - 0x31570: 0x2c26fc83, 0x31571: 0x2c093e83, 0x31572: 0x2d032883, 0x31573: 0x2c3d6e83, - 0x31574: 0x2c0e3483, 0x31575: 0x2cccd883, 0x31576: 0x2c127483, 0x31577: 0x2c049c83, - 0x31578: 0x2c0a1083, 0x31579: 0x2cb95283, 0x3157a: 0x2c901a83, - // Block 0xc56, offset 0x31580 - 0x31580: 0xe000b5e5, 0x31581: 0xe000b5dd, 0x31582: 0xe000b5d9, 0x31583: 0xe000b5e9, - 0x31584: 0xe000b5ed, 0x31585: 0xe000b5e1, 0x31586: 0xe000b5f5, 0x31587: 0xe000b5f9, - 0x31588: 0xe000b5f1, - 0x31590: 0x2c96d483, 0x31591: 0x2c074c83, - // Block 0xc57, offset 0x315c0 - 0x315c0: 0x6c003e20, 0x315c1: 0x6c004020, 0x315c2: 0x6c004220, 0x315c3: 0x6c00e820, - 0x315c4: 0x6c00ea20, 0x315c5: 0x6c00ec20, 0x315c6: 0x6c00ee20, 0x315c7: 0x6c022820, - 0x315c8: 0x6c022a20, 0x315c9: 0x6c022c20, 0x315ca: 0x6c022e20, 0x315cb: 0x6c023020, - 0x315cc: 0x6c023220, 0x315cd: 0x6c055220, 0x315ce: 0x6c055420, 0x315cf: 0x6c055620, - 0x315d0: 0x6c055820, 0x315d1: 0x6c055a20, 0x315d2: 0x6c055c20, 0x315d3: 0x6c055e20, - 0x315d4: 0x6c056020, 0x315d5: 0x6c056220, 0x315d6: 0x6c056420, 0x315d7: 0x6c056620, - 0x315d8: 0x6c0ada20, 0x315d9: 0x6c0adc20, 0x315da: 0x6c0ade20, 0x315db: 0x6c0f4220, - 0x315dc: 0x6c0ae020, 0x315dd: 0x6c0dac20, 0x315de: 0x6c0ae220, 0x315df: 0x6c0ae420, - 0x315e0: 0x6c0ae620, 0x315e1: 0x6c15ec20, 0x315e2: 0x6c15ee20, 0x315e3: 0x6c15f020, - 0x315e4: 0x6c15f220, 0x315e5: 0x6c162c20, 0x315e6: 0x6c15f420, 0x315e7: 0x6c15f620, - 0x315e8: 0x6c15f820, 0x315e9: 0x6c0b3a20, 0x315ea: 0x6c15fa20, 0x315eb: 0x6c15fc20, - 0x315ec: 0x6c28b220, 0x315ed: 0x6c28b420, 0x315ee: 0x6c28b620, 0x315ef: 0x6c2d9420, - 0x315f0: 0x6c28b820, 0x315f1: 0x6c28ba20, 0x315f2: 0x6c28bc20, 0x315f3: 0x6c28be20, - 0x315f4: 0x6c28c020, 0x315f5: 0x6c42ea20, 0x315f6: 0x6c42ec20, 0x315f7: 0x6c470a20, - 0x315f8: 0x6c42ee20, 0x315f9: 0x6c470c20, 0x315fa: 0x6c42f020, 0x315fb: 0x6c42f220, - 0x315fc: 0x6c6a8820, 0x315fd: 0x6c63cc20, 0x315fe: 0x6c63ce20, 0x315ff: 0x6c63d020, - // Block 0xc58, offset 0x31600 - 0x31600: 0x6c63d220, 0x31601: 0x6c8af020, 0x31602: 0x6c8af220, 0x31603: 0x6c8af420, - 0x31604: 0x6c8af620, 0x31605: 0x6c8af820, 0x31606: 0x6cb79e20, 0x31607: 0x6cb7a020, - 0x31608: 0x6cb7a220, 0x31609: 0x6cb93420, 0x3160a: 0x6cb7a420, 0x3160b: 0x6cb7a620, - 0x3160c: 0x6ce8ca20, 0x3160d: 0x6ce8cc20, 0x3160e: 0x6d188c20, 0x3160f: 0x6d188e20, - 0x31610: 0x6d189020, 0x31611: 0x6d189220, 0x31612: 0x6d189420, 0x31613: 0x6d479020, - 0x31614: 0x6d479220, 0x31615: 0x6d75c220, 0x31616: 0x6d9fa420, 0x31617: 0x6d75c420, - 0x31618: 0x6d75c620, 0x31619: 0x6d75c820, 0x3161a: 0x6d75ca20, 0x3161b: 0x6d75cc20, - 0x3161c: 0x6da01620, 0x3161d: 0x6d75ce20, 0x3161e: 0x6da57820, 0x3161f: 0x6dc24420, - 0x31620: 0x6df86a20, 0x31621: 0x6c004620, 0x31622: 0x6c004820, 0x31623: 0x6c023e20, - 0x31624: 0x6c079620, 0x31625: 0x6c056a20, 0x31626: 0x6c0aea20, 0x31627: 0x6c160220, - 0x31628: 0x6c160420, 0x31629: 0x6c28c620, 0x3162a: 0x6c28c820, 0x3162b: 0x6c28ca20, - 0x3162c: 0x6c28cc20, 0x3162d: 0x6c42f820, 0x3162e: 0x6c42fa20, 0x3162f: 0x6c42fc20, - 0x31630: 0x6c63da20, 0x31631: 0x6c63dc20, 0x31632: 0x6c15ae20, 0x31633: 0x6c8afc20, - 0x31634: 0x6cb7a820, 0x31635: 0x6cb7aa20, 0x31636: 0x6d189820, 0x31637: 0x6d1bb420, - 0x31638: 0x6d479420, 0x31639: 0x6dc24620, 0x3163a: 0x6de00420, 0x3163b: 0x6e1c0420, - 0x3163c: 0x6c010220, 0x3163d: 0x6c010420, 0x3163e: 0x6c026420, 0x3163f: 0x6c024620, - // Block 0xc59, offset 0x31640 - 0x31640: 0x6c057020, 0x31641: 0x6c057220, 0x31642: 0x6c0aec20, 0x31643: 0x6c63de20, - 0x31644: 0x6ce8ce20, 0x31645: 0x6d75d420, 0x31646: 0x6c005620, 0x31647: 0x6c005820, - 0x31648: 0x6c005a20, 0x31649: 0x6c005c20, 0x3164a: 0x6c005e20, 0x3164b: 0x6c011020, - 0x3164c: 0x6c011220, 0x3164d: 0x6c011420, 0x3164e: 0x6c011620, 0x3164f: 0x6c024e20, - 0x31650: 0x6c025020, 0x31651: 0x6c025220, 0x31652: 0x6c025420, 0x31653: 0x6c025620, - 0x31654: 0x6c057c20, 0x31655: 0x6c057e20, 0x31656: 0x6c058020, 0x31657: 0x6c058220, - 0x31658: 0x6c058420, 0x31659: 0x6c058620, 0x3165a: 0x6c058820, 0x3165b: 0x6c058a20, - 0x3165c: 0x6c058c20, 0x3165d: 0x6c058e20, 0x3165e: 0x6c059020, 0x3165f: 0x6c059220, - 0x31660: 0x6c059420, 0x31661: 0x6c059620, 0x31662: 0x6c0af820, 0x31663: 0x6c0afa20, - 0x31664: 0x6c0afc20, 0x31665: 0x6c0afe20, 0x31666: 0x6c0b0020, 0x31667: 0x6c0b0220, - 0x31668: 0x6c149620, 0x31669: 0x6c0b0420, 0x3166a: 0x6c0b0620, 0x3166b: 0x6c0b0820, - 0x3166c: 0x6c0dd620, 0x3166d: 0x6c0b0a20, 0x3166e: 0x6c0dd820, 0x3166f: 0x6c160820, - 0x31670: 0x6c18ea20, 0x31671: 0x6c227c20, 0x31672: 0x6c28d220, 0x31673: 0x6c28d420, - 0x31674: 0x6c430420, 0x31675: 0x6c3bd820, 0x31676: 0x6c28d620, 0x31677: 0x6c430620, - 0x31678: 0x6c431c20, 0x31679: 0x6c63e220, 0x3167a: 0x6c63e420, 0x3167b: 0x6c63e620, - 0x3167c: 0x6c63e820, 0x3167d: 0x6c63ea20, 0x3167e: 0x6c63ec20, 0x3167f: 0x6c8afe20, - // Block 0xc5a, offset 0x31680 - 0x31680: 0x6c8b0020, 0x31681: 0x6c8b0220, 0x31682: 0x6c8b0420, 0x31683: 0x6cb7ac20, - 0x31684: 0x6cb7ae20, 0x31685: 0x6d189a20, 0x31686: 0x6ce8d020, 0x31687: 0x6d479620, - 0x31688: 0x6e284820, 0x31689: 0x6c001620, 0x3168a: 0x6c001820, 0x3168b: 0x6c001a20, - 0x3168c: 0x6c001c20, 0x3168d: 0x6c001e20, 0x3168e: 0x6c002020, 0x3168f: 0x6c006620, - 0x31690: 0x6c006820, 0x31691: 0x6c002220, 0x31692: 0x6c012620, 0x31693: 0x6c012820, - 0x31694: 0x6c012a20, 0x31695: 0x6c026620, 0x31696: 0x6c026820, 0x31697: 0x6c026a20, - 0x31698: 0x6c026c20, 0x31699: 0x6c026e20, 0x3169a: 0x6c027020, 0x3169b: 0x6c027220, - 0x3169c: 0x6c027420, 0x3169d: 0x6c027620, 0x3169e: 0x6c05a220, 0x3169f: 0x6c05a420, - 0x316a0: 0x6c05a620, 0x316a1: 0x6c05a820, 0x316a2: 0x6c05aa20, 0x316a3: 0x6c05ac20, - 0x316a4: 0x6c0b2c20, 0x316a5: 0x6c0b2e20, 0x316a6: 0x6c0b3020, 0x316a7: 0x6c0b3220, - 0x316a8: 0x6c0b3420, 0x316a9: 0x6c161420, 0x316aa: 0x6c161620, 0x316ab: 0x6c24c020, - 0x316ac: 0x6c161820, 0x316ad: 0x6c28ea20, 0x316ae: 0x6c28ec20, 0x316af: 0x6c28ee20, - 0x316b0: 0x6c3bda20, 0x316b1: 0x6c2fdc20, 0x316b2: 0x6c431e20, 0x316b3: 0x6c432020, - 0x316b4: 0x6c432220, 0x316b5: 0x6c432420, 0x316b6: 0x6c432620, 0x316b7: 0x6c432820, - 0x316b8: 0x6c63f420, 0x316b9: 0x6c63f620, 0x316ba: 0x6c63f820, 0x316bb: 0x6c63fa20, - 0x316bc: 0x6c8b1220, 0x316bd: 0x6c8b1420, 0x316be: 0x6c8b1620, 0x316bf: 0x6c8b1820, - // Block 0xc5b, offset 0x316c0 - 0x316c0: 0x6c8b1a20, 0x316c1: 0x6c8b1c20, 0x316c2: 0x6c8b1e20, 0x316c3: 0x6ce8d820, - 0x316c4: 0x6ce8da20, 0x316c5: 0x6d189c20, 0x316c6: 0x6d189e20, 0x316c7: 0x6d18a020, - 0x316c8: 0x6d18a220, 0x316c9: 0x6d9fa620, 0x316ca: 0x6de00820, 0x316cb: 0x6df86c20, - 0x316cc: 0x6c002620, 0x316cd: 0x6c006c20, 0x316ce: 0x6c006e20, 0x316cf: 0x6c007020, - 0x316d0: 0x6c007220, 0x316d1: 0x6c012e20, 0x316d2: 0x6c027c20, 0x316d3: 0x6c027e20, - 0x316d4: 0x6c028020, 0x316d5: 0x6c0b3c20, 0x316d6: 0x6c162220, 0x316d7: 0x6c162420, - 0x316d8: 0x6c162620, 0x316d9: 0x6c28f620, 0x316da: 0x6c8b2220, 0x316db: 0x6cb7ba20, - 0x316dc: 0x6d479820, 0x316dd: 0x6d75d820, 0x316de: 0x6c007620, 0x316df: 0x6c007820, - 0x316e0: 0x6c007a20, 0x316e1: 0x6c028e20, 0x316e2: 0x6c0b4420, 0x316e3: 0x6c0b4620, - 0x316e4: 0x6c0b4820, 0x316e5: 0x6c0b4a20, 0x316e6: 0x6c0b4c20, 0x316e7: 0x6c0b4e20, - 0x316e8: 0x6c162e20, 0x316e9: 0x6c163020, 0x316ea: 0x6c163220, 0x316eb: 0x6c290220, - 0x316ec: 0x6c290420, 0x316ed: 0x6c290620, 0x316ee: 0x6c290820, 0x316ef: 0x6c290a20, - 0x316f0: 0x6c432c20, 0x316f1: 0x6c432e20, 0x316f2: 0x6c433020, 0x316f3: 0x6c433220, - 0x316f4: 0x6c4d0220, 0x316f5: 0x6c640220, 0x316f6: 0x6c640420, 0x316f7: 0x6c640620, - 0x316f8: 0x6c640820, 0x316f9: 0x6c8b2420, 0x316fa: 0x6c8b2620, 0x316fb: 0x6cb7be20, - 0x316fc: 0x6ce8de20, 0x316fd: 0x6ce8e020, 0x316fe: 0x6ce8e220, 0x316ff: 0x6d18a620, - // Block 0xc5c, offset 0x31700 - 0x31700: 0x6d479a20, 0x31701: 0x6c029420, 0x31702: 0x6c05b220, 0x31703: 0x6c0b5c20, - 0x31704: 0x6c0b5e20, 0x31705: 0x6c0b6020, 0x31706: 0x6c0b6220, 0x31707: 0x6c0b6420, - 0x31708: 0x6c163c20, 0x31709: 0x6c163e20, 0x3170a: 0x6c164020, 0x3170b: 0x6c164220, - 0x3170c: 0x6c291220, 0x3170d: 0x6c291420, 0x3170e: 0x6c291620, 0x3170f: 0x6c291820, - 0x31710: 0x6c291a20, 0x31711: 0x6c291c20, 0x31712: 0x6c291e20, 0x31713: 0x6c434020, - 0x31714: 0x6c434220, 0x31715: 0x6c434420, 0x31716: 0x6c640c20, 0x31717: 0x6c6a8e20, - 0x31718: 0x6c640e20, 0x31719: 0x6c641020, 0x3171a: 0x6c641220, 0x3171b: 0x6c641420, - 0x3171c: 0x6c641620, 0x3171d: 0x6c641820, 0x3171e: 0x6c8b2820, 0x3171f: 0x6c8b2a20, - 0x31720: 0x6c8b2c20, 0x31721: 0x6c8b2e20, 0x31722: 0x6c8b3020, 0x31723: 0x6c8b3220, - 0x31724: 0x6c8b3420, 0x31725: 0x6c8b3620, 0x31726: 0x6c8b3820, 0x31727: 0x6c8b3a20, - 0x31728: 0x6cb7c420, 0x31729: 0x6cb7c620, 0x3172a: 0x6cb7c820, 0x3172b: 0x6cb7ca20, - 0x3172c: 0x6cb7cc20, 0x3172d: 0x6cb7ce20, 0x3172e: 0x6cb7d020, 0x3172f: 0x6cb7d220, - 0x31730: 0x6cd41020, 0x31731: 0x6cbd9c20, 0x31732: 0x6cb7d420, 0x31733: 0x6ce8ea20, - 0x31734: 0x6ce8ec20, 0x31735: 0x6ce8ee20, 0x31736: 0x6ce8f020, 0x31737: 0x6ce8f220, - 0x31738: 0x6ce8f420, 0x31739: 0x6cf16620, 0x3173a: 0x6ce8f620, 0x3173b: 0x6ce8f820, - 0x3173c: 0x6ce8fa20, 0x3173d: 0x6cf00420, 0x3173e: 0x6d18aa20, 0x3173f: 0x6d18ac20, - // Block 0xc5d, offset 0x31740 - 0x31740: 0x6ce8fc20, 0x31741: 0x6d479e20, 0x31742: 0x6d47a020, 0x31743: 0x6d47a220, - 0x31744: 0x6d47a420, 0x31745: 0x6d47a620, 0x31746: 0x6d47a820, 0x31747: 0x6d47aa20, - 0x31748: 0x6d47ac20, 0x31749: 0x6d47ae20, 0x3174a: 0x6d49c820, 0x3174b: 0x6d75dc20, - 0x3174c: 0x6d75de20, 0x3174d: 0x6d75e020, 0x3174e: 0x6d75e220, 0x3174f: 0x6d75e420, - 0x31750: 0x6d75e620, 0x31751: 0x6d75e820, 0x31752: 0x6d75ea20, 0x31753: 0x6d790e20, - 0x31754: 0x6d75ec20, 0x31755: 0x6d791020, 0x31756: 0x6d75ee20, 0x31757: 0x6d75f020, - 0x31758: 0x6d75f220, 0x31759: 0x6da20a20, 0x3175a: 0x6dc24820, 0x3175b: 0x6dc70c20, - 0x3175c: 0x6ddfee20, 0x3175d: 0x6de00a20, 0x3175e: 0x6e0c3c20, 0x3175f: 0x6e318620, - 0x31760: 0x6e428220, 0x31761: 0x6e442020, 0x31762: 0x6c008220, 0x31763: 0x6c014020, - 0x31764: 0x6c014220, 0x31765: 0x6c014420, 0x31766: 0x6c02be20, 0x31767: 0x6c02c020, - 0x31768: 0x6c02c220, 0x31769: 0x6c05fc20, 0x3176a: 0x6c05fe20, 0x3176b: 0x6c060020, - 0x3176c: 0x6c060220, 0x3176d: 0x6c060420, 0x3176e: 0x6c06ac20, 0x3176f: 0x6c060620, - 0x31770: 0x6c060820, 0x31771: 0x6c06d820, 0x31772: 0x6c08d020, 0x31773: 0x6c060a20, - 0x31774: 0x6c0bfa20, 0x31775: 0x6c0bfc20, 0x31776: 0x6c0bfe20, 0x31777: 0x6c0c0020, - 0x31778: 0x6c0c0220, 0x31779: 0x6c0c0420, 0x3177a: 0x6c0c0620, 0x3177b: 0x6c0c0820, - 0x3177c: 0x6c0c0a20, 0x3177d: 0x6c0c0c20, 0x3177e: 0x6c0c0e20, 0x3177f: 0x6c0c1020, - // Block 0xc5e, offset 0x31780 - 0x31780: 0x6c0c1220, 0x31781: 0x6c0c1420, 0x31782: 0x6c0c1620, 0x31783: 0x6c0c1820, - 0x31784: 0x6c0c1a20, 0x31785: 0x6c0c1c20, 0x31786: 0x6c0c1e20, 0x31787: 0x6c0c2020, - 0x31788: 0x6c0c2220, 0x31789: 0x6c0c2420, 0x3178a: 0x6c0c2620, 0x3178b: 0x6c0c2820, - 0x3178c: 0x6c0c2a20, 0x3178d: 0x6c0c2c20, 0x3178e: 0x6c0c2e20, 0x3178f: 0x6c0c3020, - 0x31790: 0x6c0c3220, 0x31791: 0x6c0c3420, 0x31792: 0x6c0c5e20, 0x31793: 0x6c0c3620, - 0x31794: 0x6c0c3820, 0x31795: 0x6c0c3a20, 0x31796: 0x6c16ca20, 0x31797: 0x6c16cc20, - 0x31798: 0x6c16ce20, 0x31799: 0x6c16d020, 0x3179a: 0x6c16d220, 0x3179b: 0x6c16d420, - 0x3179c: 0x6c16d620, 0x3179d: 0x6c16d820, 0x3179e: 0x6c16da20, 0x3179f: 0x6c16dc20, - 0x317a0: 0x6c16de20, 0x317a1: 0x6c16e020, 0x317a2: 0x6c16e220, 0x317a3: 0x6c16e420, - 0x317a4: 0x6c16e620, 0x317a5: 0x6c16e820, 0x317a6: 0x6c16ea20, 0x317a7: 0x6c16ec20, - 0x317a8: 0x6c16ee20, 0x317a9: 0x6c16f020, 0x317aa: 0x6c16f220, 0x317ab: 0x6c16f420, - 0x317ac: 0x6c16f620, 0x317ad: 0x6c16f820, 0x317ae: 0x6c16fa20, 0x317af: 0x6c16fc20, - 0x317b0: 0x6c16fe20, 0x317b1: 0x6c170020, 0x317b2: 0x6c170220, 0x317b3: 0x6c170420, - 0x317b4: 0x6c170620, 0x317b5: 0x6c170820, 0x317b6: 0x6c170a20, 0x317b7: 0x6c170c20, - 0x317b8: 0x6c170e20, 0x317b9: 0x6c171020, 0x317ba: 0x6c171220, 0x317bb: 0x6c171420, - 0x317bc: 0x6c171620, 0x317bd: 0x6c171820, 0x317be: 0x6c171a20, 0x317bf: 0x6c171c20, - // Block 0xc5f, offset 0x317c0 - 0x317c0: 0x6c171e20, 0x317c1: 0x6c172020, 0x317c2: 0x6c19c820, 0x317c3: 0x6c29ca20, - 0x317c4: 0x6c29cc20, 0x317c5: 0x6c29ce20, 0x317c6: 0x6c29d020, 0x317c7: 0x6c29d220, - 0x317c8: 0x6c29d420, 0x317c9: 0x6c29d620, 0x317ca: 0x6c29d820, 0x317cb: 0x6c29da20, - 0x317cc: 0x6c29dc20, 0x317cd: 0x6c29de20, 0x317ce: 0x6c29e020, 0x317cf: 0x6c29e220, - 0x317d0: 0x6c29e420, 0x317d1: 0x6c29e620, 0x317d2: 0x6c29e820, 0x317d3: 0x6c29ea20, - 0x317d4: 0x6c29ec20, 0x317d5: 0x6c29ee20, 0x317d6: 0x6c29f020, 0x317d7: 0x6c29f220, - 0x317d8: 0x6c29f420, 0x317d9: 0x6c29f620, 0x317da: 0x6c29f820, 0x317db: 0x6c29fa20, - 0x317dc: 0x6c29fc20, 0x317dd: 0x6c29fe20, 0x317de: 0x6c2a0020, 0x317df: 0x6c2a0220, - 0x317e0: 0x6c2a0420, 0x317e1: 0x6c2a0620, 0x317e2: 0x6c2a0820, 0x317e3: 0x6c2a0a20, - 0x317e4: 0x6c305c20, 0x317e5: 0x6c2a0c20, 0x317e6: 0x6c2a0e20, 0x317e7: 0x6c2a1020, - 0x317e8: 0x6c2a1220, 0x317e9: 0x6c2a1420, 0x317ea: 0x6c2a1620, 0x317eb: 0x6c2a1820, - 0x317ec: 0x6c2a1a20, 0x317ed: 0x6c43de20, 0x317ee: 0x6c43e020, 0x317ef: 0x6c43e220, - 0x317f0: 0x6c43e420, 0x317f1: 0x6c43e620, 0x317f2: 0x6c43e820, 0x317f3: 0x6c43ea20, - 0x317f4: 0x6c43ec20, 0x317f5: 0x6c43ee20, 0x317f6: 0x6c43f020, 0x317f7: 0x6c43f220, - 0x317f8: 0x6c43f420, 0x317f9: 0x6c43f620, 0x317fa: 0x6c43f820, 0x317fb: 0x6c43fa20, - 0x317fc: 0x6c43fc20, 0x317fd: 0x6c43fe20, 0x317fe: 0x6c440020, 0x317ff: 0x6c440220, - // Block 0xc60, offset 0x31800 - 0x31800: 0x6c440420, 0x31801: 0x6c440620, 0x31802: 0x6c440820, 0x31803: 0x6c440a20, - 0x31804: 0x6c440c20, 0x31805: 0x6c440e20, 0x31806: 0x6c441020, 0x31807: 0x6c441220, - 0x31808: 0x6c441420, 0x31809: 0x6c441620, 0x3180a: 0x6c441820, 0x3180b: 0x6c441a20, - 0x3180c: 0x6c441c20, 0x3180d: 0x6c441e20, 0x3180e: 0x6c442020, 0x3180f: 0x6c442220, - 0x31810: 0x6c442420, 0x31811: 0x6c442620, 0x31812: 0x6c442820, 0x31813: 0x6c442a20, - 0x31814: 0x6c442c20, 0x31815: 0x6c442e20, 0x31816: 0x6c443020, 0x31817: 0x6c443220, - 0x31818: 0x6c443420, 0x31819: 0x6c443620, 0x3181a: 0x6c443820, 0x3181b: 0x6c443a20, - 0x3181c: 0x6c443c20, 0x3181d: 0x6c443e20, 0x3181e: 0x6c444020, 0x3181f: 0x6c444220, - 0x31820: 0x6c444420, 0x31821: 0x6c444620, 0x31822: 0x6c444820, 0x31823: 0x6c64d220, - 0x31824: 0x6c64d420, 0x31825: 0x6c64d620, 0x31826: 0x6c64d820, 0x31827: 0x6c64da20, - 0x31828: 0x6c64dc20, 0x31829: 0x6c64de20, 0x3182a: 0x6c64e020, 0x3182b: 0x6c64e220, - 0x3182c: 0x6c64e420, 0x3182d: 0x6c64e620, 0x3182e: 0x6c64e820, 0x3182f: 0x6c64ea20, - 0x31830: 0x6c64ec20, 0x31831: 0x6c64ee20, 0x31832: 0x6c64f020, 0x31833: 0x6c64f220, - 0x31834: 0x6c64f420, 0x31835: 0x6c64f620, 0x31836: 0x6c64f820, 0x31837: 0x6c64fa20, - 0x31838: 0x6c64fc20, 0x31839: 0x6c64fe20, 0x3183a: 0x6c650020, 0x3183b: 0x6c650220, - 0x3183c: 0x6c650420, 0x3183d: 0x6c650620, 0x3183e: 0x6c650820, 0x3183f: 0x6c650a20, - // Block 0xc61, offset 0x31840 - 0x31840: 0x6c650c20, 0x31841: 0x6c650e20, 0x31842: 0x6c651020, 0x31843: 0x6c651220, - 0x31844: 0x6c651420, 0x31845: 0x6c651620, 0x31846: 0x6c651820, 0x31847: 0x6c651a20, - 0x31848: 0x6c651c20, 0x31849: 0x6c651e20, 0x3184a: 0x6c652020, 0x3184b: 0x6c652220, - 0x3184c: 0x6c652420, 0x3184d: 0x6c652620, 0x3184e: 0x6c652820, 0x3184f: 0x6c652a20, - 0x31850: 0x6c652c20, 0x31851: 0x6c652e20, 0x31852: 0x6c653020, 0x31853: 0x6c653220, - 0x31854: 0x6c653420, 0x31855: 0x6c653620, 0x31856: 0x6c653820, 0x31857: 0x6c653a20, - 0x31858: 0x6c653c20, 0x31859: 0x6c653e20, 0x3185a: 0x6c654020, 0x3185b: 0x6c654220, - 0x3185c: 0x6c654420, 0x3185d: 0x6c654620, 0x3185e: 0x6c654820, 0x3185f: 0x6c654a20, - 0x31860: 0x6c654c20, 0x31861: 0x6c654e20, 0x31862: 0x6c655020, 0x31863: 0x6c655220, - 0x31864: 0x6c655420, 0x31865: 0x6c655620, 0x31866: 0x6c655820, 0x31867: 0x6c8bc620, - 0x31868: 0x6c8bc820, 0x31869: 0x6c8bca20, 0x3186a: 0x6c8bcc20, 0x3186b: 0x6c8bce20, - 0x3186c: 0x6c8bd020, 0x3186d: 0x6c8bd220, 0x3186e: 0x6c8bd420, 0x3186f: 0x6c8bd620, - 0x31870: 0x6c8bd820, 0x31871: 0x6c8bda20, 0x31872: 0x6c8bdc20, 0x31873: 0x6c8bde20, - 0x31874: 0x6c8be020, 0x31875: 0x6c8be220, 0x31876: 0x6c8be420, 0x31877: 0x6c8be620, - 0x31878: 0x6c8be820, 0x31879: 0x6c8bea20, 0x3187a: 0x6c8bec20, 0x3187b: 0x6c8bee20, - 0x3187c: 0x6c8bf020, 0x3187d: 0x6c8bf220, 0x3187e: 0x6c8bf420, 0x3187f: 0x6c8bf620, - // Block 0xc62, offset 0x31880 - 0x31880: 0x6c8bf820, 0x31881: 0x6c8bfa20, 0x31882: 0x6c8bfc20, 0x31883: 0x6c8bfe20, - 0x31884: 0x6c8c0020, 0x31885: 0x6c8c0220, 0x31886: 0x6c8c0420, 0x31887: 0x6c8c0620, - 0x31888: 0x6c8c0820, 0x31889: 0x6c8c0a20, 0x3188a: 0x6c8c0c20, 0x3188b: 0x6c8c0e20, - 0x3188c: 0x6c8c1020, 0x3188d: 0x6c8c1220, 0x3188e: 0x6c8c1420, 0x3188f: 0x6c8c1620, - 0x31890: 0x6c8c1820, 0x31891: 0x6c428e20, 0x31892: 0x6c8c1a20, 0x31893: 0x6c8c1c20, - 0x31894: 0x6c8c1e20, 0x31895: 0x6c8c2020, 0x31896: 0x6c8c2220, 0x31897: 0x6c8c2420, - 0x31898: 0x6c8c2620, 0x31899: 0x6c8c2820, 0x3189a: 0x6c8c2a20, 0x3189b: 0x6c8c2c20, - 0x3189c: 0x6c8c2e20, 0x3189d: 0x6c8c3020, 0x3189e: 0x6c8c3220, 0x3189f: 0x6c655a20, - 0x318a0: 0x6c8c3420, 0x318a1: 0x6c8c3620, 0x318a2: 0x6c8c3820, 0x318a3: 0x6c8c3a20, - 0x318a4: 0x6c8c3c20, 0x318a5: 0x6c8c3e20, 0x318a6: 0x6c8c4020, 0x318a7: 0x6c8c4220, - 0x318a8: 0x6c8c4420, 0x318a9: 0x6c8c4620, 0x318aa: 0x6c8c4820, 0x318ab: 0x6c8c4a20, - 0x318ac: 0x6c8c4c20, 0x318ad: 0x6cb83e20, 0x318ae: 0x6cb84020, 0x318af: 0x6cb84220, - 0x318b0: 0x6cb84420, 0x318b1: 0x6cb84620, 0x318b2: 0x6cb84820, 0x318b3: 0x6cb84a20, - 0x318b4: 0x6cb84c20, 0x318b5: 0x6cb84e20, 0x318b6: 0x6cb85020, 0x318b7: 0x6cb85220, - 0x318b8: 0x6cb85420, 0x318b9: 0x6cb85620, 0x318ba: 0x6cb85820, 0x318bb: 0x6cb85a20, - 0x318bc: 0x6cb85c20, 0x318bd: 0x6cb85e20, 0x318be: 0x6cb86020, 0x318bf: 0x6cb86220, - // Block 0xc63, offset 0x318c0 - 0x318c0: 0x6cb86420, 0x318c1: 0x6cb86620, 0x318c2: 0x6cb86820, 0x318c3: 0x6cb86a20, - 0x318c4: 0x6cb86c20, 0x318c5: 0x6cb86e20, 0x318c6: 0x6cb8d620, 0x318c7: 0x6cb87020, - 0x318c8: 0x6cb87220, 0x318c9: 0x6cb87420, 0x318ca: 0x6cb87620, 0x318cb: 0x6cb87820, - 0x318cc: 0x6cb87a20, 0x318cd: 0x6cb87c20, 0x318ce: 0x6cb87e20, 0x318cf: 0x6cb88020, - 0x318d0: 0x6cb88220, 0x318d1: 0x6cb88420, 0x318d2: 0x6cb88620, 0x318d3: 0x6cb88820, - 0x318d4: 0x6cb88a20, 0x318d5: 0x6cb88c20, 0x318d6: 0x6cb88e20, 0x318d7: 0x6cb89020, - 0x318d8: 0x6cb89220, 0x318d9: 0x6cb89420, 0x318da: 0x6cb89620, 0x318db: 0x6cb89820, - 0x318dc: 0x6cb89a20, 0x318dd: 0x6cb89c20, 0x318de: 0x6cbd9420, 0x318df: 0x6cd2ce20, - 0x318e0: 0x6cb89e20, 0x318e1: 0x6cb8a020, 0x318e2: 0x6cb8a220, 0x318e3: 0x6cb8a420, - 0x318e4: 0x6cb8a620, 0x318e5: 0x6cb8a820, 0x318e6: 0x6cb8aa20, 0x318e7: 0x6cb8ac20, - 0x318e8: 0x6cb8ae20, 0x318e9: 0x6cb8b020, 0x318ea: 0x6ca52820, 0x318eb: 0x6ce95420, - 0x318ec: 0x6ce95620, 0x318ed: 0x6ce95820, 0x318ee: 0x6ce95a20, 0x318ef: 0x6ce95c20, - 0x318f0: 0x6ce95e20, 0x318f1: 0x6ce96020, 0x318f2: 0x6ce96220, 0x318f3: 0x6ce96420, - 0x318f4: 0x6ce96620, 0x318f5: 0x6ce96820, 0x318f6: 0x6ce96a20, 0x318f7: 0x6ce96c20, - 0x318f8: 0x6ce96e20, 0x318f9: 0x6ce97020, 0x318fa: 0x6ce97220, 0x318fb: 0x6ce97420, - 0x318fc: 0x6ce97620, 0x318fd: 0x6ce97820, 0x318fe: 0x6ce97a20, 0x318ff: 0x6ce97c20, - // Block 0xc64, offset 0x31900 - 0x31900: 0x6ce97e20, 0x31901: 0x6ce98020, 0x31902: 0x6ce98220, 0x31903: 0x6ce98420, - 0x31904: 0x6ce98620, 0x31905: 0x6ce98820, 0x31906: 0x6ce98a20, 0x31907: 0x6ce98c20, - 0x31908: 0x6ce98e20, 0x31909: 0x6ce99020, 0x3190a: 0x6ce99220, 0x3190b: 0x6ce99420, - 0x3190c: 0x6ce99620, 0x3190d: 0x6ce99820, 0x3190e: 0x6ce99a20, 0x3190f: 0x6ce99c20, - 0x31910: 0x6ce99e20, 0x31911: 0x6ce9a020, 0x31912: 0x6ce9a220, 0x31913: 0x6ce9a420, - 0x31914: 0x6ce9a620, 0x31915: 0x6ce9a820, 0x31916: 0x6ce9aa20, 0x31917: 0x6ce9ac20, - 0x31918: 0x6ce9ae20, 0x31919: 0x6ce9b020, 0x3191a: 0x6ce9b220, 0x3191b: 0x6ce9b420, - 0x3191c: 0x6ce9b620, 0x3191d: 0x6ce9b820, 0x3191e: 0x6ce9ba20, 0x3191f: 0x6ce9bc20, - 0x31920: 0x6ce9be20, 0x31921: 0x6ce9c020, 0x31922: 0x6d01fc20, 0x31923: 0x6ce9c220, - 0x31924: 0x6ce9c420, 0x31925: 0x6d191a20, 0x31926: 0x6ce9c620, 0x31927: 0x6ce9c820, - 0x31928: 0x6ce9ca20, 0x31929: 0x6ce9cc20, 0x3192a: 0x6ce9ce20, 0x3192b: 0x6ce9d020, - 0x3192c: 0x6ce9d220, 0x3192d: 0x6d191c20, 0x3192e: 0x6d191e20, 0x3192f: 0x6d192020, - 0x31930: 0x6d192220, 0x31931: 0x6d192420, 0x31932: 0x6d192620, 0x31933: 0x6d192820, - 0x31934: 0x6d192a20, 0x31935: 0x6d192c20, 0x31936: 0x6d192e20, 0x31937: 0x6d193020, - 0x31938: 0x6d193220, 0x31939: 0x6d193420, 0x3193a: 0x6d193620, 0x3193b: 0x6d193820, - 0x3193c: 0x6d193a20, 0x3193d: 0x6d193c20, 0x3193e: 0x6d193e20, 0x3193f: 0x6d194020, - // Block 0xc65, offset 0x31940 - 0x31940: 0x6d194220, 0x31941: 0x6d194420, 0x31942: 0x6d194620, 0x31943: 0x6d194820, - 0x31944: 0x6d194a20, 0x31945: 0x6d194c20, 0x31946: 0x6d194e20, 0x31947: 0x6d195020, - 0x31948: 0x6d195220, 0x31949: 0x6d195420, 0x3194a: 0x6d195620, 0x3194b: 0x6d195820, - 0x3194c: 0x6d195a20, 0x3194d: 0x6d195c20, 0x3194e: 0x6d195e20, 0x3194f: 0x6d196020, - 0x31950: 0x6d196220, 0x31951: 0x6d196420, 0x31952: 0x6d196620, 0x31953: 0x6d196820, - 0x31954: 0x6d196a20, 0x31955: 0x6d196c20, 0x31956: 0x6d196e20, 0x31957: 0x6d197020, - 0x31958: 0x6d311420, 0x31959: 0x6d197220, 0x3195a: 0x6d197420, 0x3195b: 0x6d2bee20, - 0x3195c: 0x6e0bec20, 0x3195d: 0x6d197620, 0x3195e: 0x6d197820, 0x3195f: 0x6d197a20, - 0x31960: 0x6d197c20, 0x31961: 0x6d197e20, 0x31962: 0x6d198020, 0x31963: 0x6d198220, - 0x31964: 0x6d198420, 0x31965: 0x6d198620, 0x31966: 0x6d198820, 0x31967: 0x6d198a20, - 0x31968: 0x6d198c20, 0x31969: 0x6d198e20, 0x3196a: 0x6d199020, 0x3196b: 0x6d199220, - 0x3196c: 0x6d199420, 0x3196d: 0x6d199620, 0x3196e: 0x6d199820, 0x3196f: 0x6d199a20, - 0x31970: 0x6d199c20, 0x31971: 0x6d199e20, 0x31972: 0x6d19a020, 0x31973: 0x6d19a220, - 0x31974: 0x6d19a420, 0x31975: 0x6ce9d420, 0x31976: 0x6d234020, 0x31977: 0x6d47f620, - 0x31978: 0x6d47f820, 0x31979: 0x6d47fa20, 0x3197a: 0x6d47fc20, 0x3197b: 0x6d47fe20, - 0x3197c: 0x6d480020, 0x3197d: 0x6d480220, 0x3197e: 0x6d480420, 0x3197f: 0x6d480620, - // Block 0xc66, offset 0x31980 - 0x31980: 0x6d480820, 0x31981: 0x6d480a20, 0x31982: 0x6d480c20, 0x31983: 0x6d480e20, - 0x31984: 0x6d481020, 0x31985: 0x6d481220, 0x31986: 0x6d481420, 0x31987: 0x6d481620, - 0x31988: 0x6d481820, 0x31989: 0x6d481a20, 0x3198a: 0x6d481c20, 0x3198b: 0x6d481e20, - 0x3198c: 0x6d482020, 0x3198d: 0x6d482220, 0x3198e: 0x6d482420, 0x3198f: 0x6d482620, - 0x31990: 0x6d19a620, 0x31991: 0x6d482820, 0x31992: 0x6d761c20, 0x31993: 0x6d49ca20, - 0x31994: 0x6d482a20, 0x31995: 0x6d482c20, 0x31996: 0x6d482e20, 0x31997: 0x6d483020, - 0x31998: 0x6d483220, 0x31999: 0x6d483420, 0x3199a: 0x6d483620, 0x3199b: 0x6d483820, - 0x3199c: 0x6d483a20, 0x3199d: 0x6d483c20, 0x3199e: 0x6d483e20, 0x3199f: 0x6d484020, - 0x319a0: 0x6d484220, 0x319a1: 0x6d484420, 0x319a2: 0x6d484620, 0x319a3: 0x6d484820, - 0x319a4: 0x6d484a20, 0x319a5: 0x6d484c20, 0x319a6: 0x6d484e20, 0x319a7: 0x6d49cc20, - 0x319a8: 0x6d761e20, 0x319a9: 0x6d762020, 0x319aa: 0x6d762220, 0x319ab: 0x6d762420, - 0x319ac: 0x6d762620, 0x319ad: 0x6d762820, 0x319ae: 0x6d762a20, 0x319af: 0x6d762c20, - 0x319b0: 0x6d762e20, 0x319b1: 0x6d763020, 0x319b2: 0x6d763220, 0x319b3: 0x6d763420, - 0x319b4: 0x6d763620, 0x319b5: 0x6d763820, 0x319b6: 0x6d763a20, 0x319b7: 0x6d763c20, - 0x319b8: 0x6d763e20, 0x319b9: 0x6d764020, 0x319ba: 0x6d764220, 0x319bb: 0x6d764420, - 0x319bc: 0x6d764620, 0x319bd: 0x6d764820, 0x319be: 0x6d764a20, 0x319bf: 0x6d764c20, - // Block 0xc67, offset 0x319c0 - 0x319c0: 0x6d764e20, 0x319c1: 0x6d765020, 0x319c2: 0x6d765220, 0x319c3: 0x6d765420, - 0x319c4: 0x6d765620, 0x319c5: 0x6d765820, 0x319c6: 0x6d765a20, 0x319c7: 0x6d765c20, - 0x319c8: 0x6d9fc820, 0x319c9: 0x6d9fca20, 0x319ca: 0x6d9fcc20, 0x319cb: 0x6d9fce20, - 0x319cc: 0x6d9fd020, 0x319cd: 0x6d9fd220, 0x319ce: 0x6d9fd420, 0x319cf: 0x6d9fd620, - 0x319d0: 0x6d9fd820, 0x319d1: 0x6d9fda20, 0x319d2: 0x6d9fdc20, 0x319d3: 0x6d9fde20, - 0x319d4: 0x6d9fe020, 0x319d5: 0x6d9fe220, 0x319d6: 0x6d9fe420, 0x319d7: 0x6d9fe620, - 0x319d8: 0x6d9fe820, 0x319d9: 0x6d9fea20, 0x319da: 0x6d9fec20, 0x319db: 0x6d9fee20, - 0x319dc: 0x6db61c20, 0x319dd: 0x6d9ff020, 0x319de: 0x6d9ff220, 0x319df: 0x6d9ff420, - 0x319e0: 0x6d9ff620, 0x319e1: 0x6d9ff820, 0x319e2: 0x6d9ffa20, 0x319e3: 0x6dc25620, - 0x319e4: 0x6dc25820, 0x319e5: 0x6dc25a20, 0x319e6: 0x6dc25c20, 0x319e7: 0x6dc25e20, - 0x319e8: 0x6dc26020, 0x319e9: 0x6dc26220, 0x319ea: 0x6dc26420, 0x319eb: 0x6dc26620, - 0x319ec: 0x6dc26820, 0x319ed: 0x6dc26a20, 0x319ee: 0x6dc26c20, 0x319ef: 0x6dc26e20, - 0x319f0: 0x6dc27020, 0x319f1: 0x6dc27220, 0x319f2: 0x6dc27420, 0x319f3: 0x6dc27620, - 0x319f4: 0x6dc27820, 0x319f5: 0x6dc27a20, 0x319f6: 0x6dc27c20, 0x319f7: 0x6dc27e20, - 0x319f8: 0x6dc28020, 0x319f9: 0x6dc28220, 0x319fa: 0x6dc28420, 0x319fb: 0x6de01a20, - 0x319fc: 0x6de01c20, 0x319fd: 0x6de01e20, 0x319fe: 0x6de02020, 0x319ff: 0x6de02220, - // Block 0xc68, offset 0x31a00 - 0x31a00: 0x6de02420, 0x31a01: 0x6de02620, 0x31a02: 0x6de5da20, 0x31a03: 0x6de02820, - 0x31a04: 0x6de02a20, 0x31a05: 0x6de02c20, 0x31a06: 0x6de02e20, 0x31a07: 0x6de03020, - 0x31a08: 0x6de03220, 0x31a09: 0x6de03420, 0x31a0a: 0x6de03620, 0x31a0b: 0x6de03820, - 0x31a0c: 0x6de03a20, 0x31a0d: 0x6df87620, 0x31a0e: 0x6df87820, 0x31a0f: 0x6df87a20, - 0x31a10: 0x6df87c20, 0x31a11: 0x6df87e20, 0x31a12: 0x6df88020, 0x31a13: 0x6df88220, - 0x31a14: 0x6df88420, 0x31a15: 0x6df88620, 0x31a16: 0x6df88820, 0x31a17: 0x6e0c4a20, - 0x31a18: 0x6e0c4c20, 0x31a19: 0x6e0c4e20, 0x31a1a: 0x6e0c5020, 0x31a1b: 0x6e0c5220, - 0x31a1c: 0x6e0c5420, 0x31a1d: 0x6e0c5620, 0x31a1e: 0x6df88a20, 0x31a1f: 0x6e0c5820, - 0x31a20: 0x6e0c5a20, 0x31a21: 0x6e0c5c20, 0x31a22: 0x6e0c5e20, 0x31a23: 0x6e0c6020, - 0x31a24: 0x6e1c0c20, 0x31a25: 0x6e1c0e20, 0x31a26: 0x6e1c1020, 0x31a27: 0x6e1c1220, - 0x31a28: 0x6e1c1420, 0x31a29: 0x6e1c1620, 0x31a2a: 0x6e284e20, 0x31a2b: 0x6e285020, - 0x31a2c: 0x6e285220, 0x31a2d: 0x6e285420, 0x31a2e: 0x6e285620, 0x31a2f: 0x6e285820, - 0x31a30: 0x6e318a20, 0x31a31: 0x6e38ae20, 0x31a32: 0x6e3ce420, 0x31a33: 0x6e3ce620, - 0x31a34: 0x6e446c20, 0x31a35: 0x6e442220, 0x31a36: 0x6c02cc20, 0x31a37: 0x6c061020, - 0x31a38: 0x6c061220, 0x31a39: 0x6c0c5020, 0x31a3a: 0x6c0c5220, 0x31a3b: 0x6c0c5420, - 0x31a3c: 0x6c0c5620, 0x31a3d: 0x6c174220, 0x31a3e: 0x6c174420, 0x31a3f: 0x6c174620, - // Block 0xc69, offset 0x31a40 - 0x31a40: 0x6c174820, 0x31a41: 0x6c174a20, 0x31a42: 0x6c174c20, 0x31a43: 0x6c2a3820, - 0x31a44: 0x6c2a3a20, 0x31a45: 0x6c2a3c20, 0x31a46: 0x6c2a3e20, 0x31a47: 0x6c2a4020, - 0x31a48: 0x6c2a4220, 0x31a49: 0x6c2a4420, 0x31a4a: 0x6c2a4620, 0x31a4b: 0x6c2a4820, - 0x31a4c: 0x6c446020, 0x31a4d: 0x6c446220, 0x31a4e: 0x6c446420, 0x31a4f: 0x6c446620, - 0x31a50: 0x6c657620, 0x31a51: 0x6c657820, 0x31a52: 0x6c657a20, 0x31a53: 0x6c657c20, - 0x31a54: 0x6c657e20, 0x31a55: 0x6c658020, 0x31a56: 0x6c658220, 0x31a57: 0x6c8c6e20, - 0x31a58: 0x6c8c7020, 0x31a59: 0x6c8c7220, 0x31a5a: 0x6c8c7420, 0x31a5b: 0x6c8c7620, - 0x31a5c: 0x6c8c7820, 0x31a5d: 0x6c8c7a20, 0x31a5e: 0x6cb8ca20, 0x31a5f: 0x6cb8cc20, - 0x31a60: 0x6cb8ce20, 0x31a61: 0x6cb8d020, 0x31a62: 0x6cb8d220, 0x31a63: 0x6cb8d420, - 0x31a64: 0x6ce9e420, 0x31a65: 0x6ce9e620, 0x31a66: 0x6ce9e820, 0x31a67: 0x6d19b820, - 0x31a68: 0x6d19ba20, 0x31a69: 0x6d19bc20, 0x31a6a: 0x6d19be20, 0x31a6b: 0x6d19c020, - 0x31a6c: 0x6d19c220, 0x31a6d: 0x6d19c420, 0x31a6e: 0x6d19c620, 0x31a6f: 0x6d19c820, - 0x31a70: 0x6d485c20, 0x31a71: 0x6d485e20, 0x31a72: 0x6d486020, 0x31a73: 0x6d766820, - 0x31a74: 0x6d486220, 0x31a75: 0x6d486420, 0x31a76: 0x6d486620, 0x31a77: 0x6d486820, - 0x31a78: 0x6d766a20, 0x31a79: 0x6d766c20, 0x31a7a: 0x6d766e20, 0x31a7b: 0x6d767020, - 0x31a7c: 0x6d767220, 0x31a7d: 0x6d767420, 0x31a7e: 0x6d767620, 0x31a7f: 0x6da00420, - // Block 0xc6a, offset 0x31a80 - 0x31a80: 0x6da00620, 0x31a81: 0x6da00820, 0x31a82: 0x6da00a20, 0x31a83: 0x6da00c20, - 0x31a84: 0x6da00e20, 0x31a85: 0x6da01020, 0x31a86: 0x6dc28e20, 0x31a87: 0x6da01220, - 0x31a88: 0x6dc29020, 0x31a89: 0x6dc29220, 0x31a8a: 0x6dc29420, 0x31a8b: 0x6de04220, - 0x31a8c: 0x6de23820, 0x31a8d: 0x6df88e20, 0x31a8e: 0x6de04420, 0x31a8f: 0x6df89020, - 0x31a90: 0x6df89220, 0x31a91: 0x6e0c6620, 0x31a92: 0x6e0c6820, 0x31a93: 0x6e1c1820, - 0x31a94: 0x6e1c1a20, 0x31a95: 0x6e285a20, 0x31a96: 0x6e285c20, 0x31a97: 0x6e318c20, - 0x31a98: 0x6e318e20, 0x31a99: 0x6e319020, 0x31a9a: 0x6e3ce820, 0x31a9b: 0x6c014a20, - 0x31a9c: 0x6c02d020, 0x31a9d: 0x6c02d220, 0x31a9e: 0x6c02d420, 0x31a9f: 0x6c061a20, - 0x31aa0: 0x6c0c6020, 0x31aa1: 0x6c0c6220, 0x31aa2: 0x6c0c6420, 0x31aa3: 0x6c0c6620, - 0x31aa4: 0x6c175220, 0x31aa5: 0x6c175420, 0x31aa6: 0x6c175620, 0x31aa7: 0x6c175820, - 0x31aa8: 0x6c175a20, 0x31aa9: 0x6c2a4e20, 0x31aaa: 0x6c446e20, 0x31aab: 0x6c447020, - 0x31aac: 0x6c447220, 0x31aad: 0x6c658620, 0x31aae: 0x6c658820, 0x31aaf: 0x6c658a20, - 0x31ab0: 0x6c658c20, 0x31ab1: 0x6c8c7c20, 0x31ab2: 0x6cb8d820, 0x31ab3: 0x6cb8da20, - 0x31ab4: 0x6ce9ec20, 0x31ab5: 0x6ce9ee20, 0x31ab6: 0x6ce9f020, 0x31ab7: 0x6ce9f220, - 0x31ab8: 0x6d19ca20, 0x31ab9: 0x6d19cc20, 0x31aba: 0x6d19ce20, 0x31abb: 0x6d19d020, - 0x31abc: 0x6d767820, 0x31abd: 0x6da01420, 0x31abe: 0x6dc29620, 0x31abf: 0x6df89420, - // Block 0xc6b, offset 0x31ac0 - 0x31ac0: 0x6c014c20, 0x31ac1: 0x6c02de20, 0x31ac2: 0x6c02e020, 0x31ac3: 0x6c02e220, - 0x31ac4: 0x6c02e420, 0x31ac5: 0x6c061e20, 0x31ac6: 0x6c062020, 0x31ac7: 0x6c020820, - 0x31ac8: 0x6c0c7220, 0x31ac9: 0x6c0c7420, 0x31aca: 0x6c176420, 0x31acb: 0x6c176620, - 0x31acc: 0x6c176820, 0x31acd: 0x6c176a20, 0x31ace: 0x6c176c20, 0x31acf: 0x6c176e20, - 0x31ad0: 0x6c2a5620, 0x31ad1: 0x6c2a5820, 0x31ad2: 0x6c447a20, 0x31ad3: 0x6c447c20, - 0x31ad4: 0x6c447e20, 0x31ad5: 0x6c448020, 0x31ad6: 0x6c448220, 0x31ad7: 0x6c448420, - 0x31ad8: 0x6c4d0420, 0x31ad9: 0x6c659420, 0x31ada: 0x6c659620, 0x31adb: 0x6c659820, - 0x31adc: 0x6c8c8020, 0x31add: 0x6c8c8220, 0x31ade: 0x6cb8dc20, 0x31adf: 0x6cb8de20, - 0x31ae0: 0x6cb8e020, 0x31ae1: 0x6cb8e220, 0x31ae2: 0x6cb8e420, 0x31ae3: 0x6cb8e620, - 0x31ae4: 0x6cb8e820, 0x31ae5: 0x6cb8ea20, 0x31ae6: 0x6cb8ec20, 0x31ae7: 0x6cb8ee20, - 0x31ae8: 0x6ce9f820, 0x31ae9: 0x6ce9fa20, 0x31aea: 0x6ce9fc20, 0x31aeb: 0x6ce9fe20, - 0x31aec: 0x6cea0020, 0x31aed: 0x6cea0220, 0x31aee: 0x6cea0420, 0x31aef: 0x6d19d220, - 0x31af0: 0x6d19d420, 0x31af1: 0x6d19d620, 0x31af2: 0x6d1b1620, 0x31af3: 0x6d767c20, - 0x31af4: 0x6d767e20, 0x31af5: 0x6d768020, 0x31af6: 0x6dc29a20, 0x31af7: 0x6dc29c20, - 0x31af8: 0x6de04820, 0x31af9: 0x6de04a20, 0x31afa: 0x6de04c20, 0x31afb: 0x6e474020, - 0x31afc: 0x6c014e20, 0x31afd: 0x6c02f220, 0x31afe: 0x6c02f420, 0x31aff: 0x6c02f620, - // Block 0xc6c, offset 0x31b00 - 0x31b00: 0x6c02f820, 0x31b01: 0x6c062a20, 0x31b02: 0x6c062c20, 0x31b03: 0x6c062e20, - 0x31b04: 0x6c063020, 0x31b05: 0x6c063220, 0x31b06: 0x6c063420, 0x31b07: 0x6c063620, - 0x31b08: 0x6c063820, 0x31b09: 0x6c063a20, 0x31b0a: 0x6c063c20, 0x31b0b: 0x6c0c7c20, - 0x31b0c: 0x6c0c7e20, 0x31b0d: 0x6c0c8020, 0x31b0e: 0x6c0c8220, 0x31b0f: 0x6c0c8420, - 0x31b10: 0x6c177220, 0x31b11: 0x6c177420, 0x31b12: 0x6c177620, 0x31b13: 0x6c177820, - 0x31b14: 0x6c177a20, 0x31b15: 0x6c177c20, 0x31b16: 0x6c2a6020, 0x31b17: 0x6c2a6220, - 0x31b18: 0x6c2a6420, 0x31b19: 0x6c2a6620, 0x31b1a: 0x6c2a6820, 0x31b1b: 0x6c448a20, - 0x31b1c: 0x6c448c20, 0x31b1d: 0x6c659e20, 0x31b1e: 0x6c65a020, 0x31b1f: 0x6c65a220, - 0x31b20: 0x6c8c8a20, 0x31b21: 0x6c8c8c20, 0x31b22: 0x6c8c8e20, 0x31b23: 0x6cb8f620, - 0x31b24: 0x6cb8f820, 0x31b25: 0x6cb8fa20, 0x31b26: 0x6cea0a20, 0x31b27: 0x6cea0c20, - 0x31b28: 0x6d19dc20, 0x31b29: 0x6d19de20, 0x31b2a: 0x6d487220, 0x31b2b: 0x6d227a20, - 0x31b2c: 0x6d487420, 0x31b2d: 0x6d768420, 0x31b2e: 0x6d768620, 0x31b2f: 0x6dc29e20, - 0x31b30: 0x6dc2a020, 0x31b31: 0x6df89820, 0x31b32: 0x6e1c1e20, 0x31b33: 0x6c030220, - 0x31b34: 0x6c030420, 0x31b35: 0x6c064220, 0x31b36: 0x6c064420, 0x31b37: 0x6c064620, - 0x31b38: 0x6c064820, 0x31b39: 0x6c0c8a20, 0x31b3a: 0x6c0c8c20, 0x31b3b: 0x6c0c8e20, - 0x31b3c: 0x6c0c9020, 0x31b3d: 0x6c0c9220, 0x31b3e: 0x6c0c9420, 0x31b3f: 0x6c0c9620, - // Block 0xc6d, offset 0x31b40 - 0x31b40: 0x6c178220, 0x31b41: 0x6c178420, 0x31b42: 0x6c178620, 0x31b43: 0x6c178820, - 0x31b44: 0x6c2a6c20, 0x31b45: 0x6c2a6e20, 0x31b46: 0x6c2a7020, 0x31b47: 0x6c449620, - 0x31b48: 0x6c449820, 0x31b49: 0x6c449a20, 0x31b4a: 0x6c449c20, 0x31b4b: 0x6c449e20, - 0x31b4c: 0x6c65b220, 0x31b4d: 0x6c65b420, 0x31b4e: 0x6c65b620, 0x31b4f: 0x6c65b820, - 0x31b50: 0x6c65ba20, 0x31b51: 0x6c65bc20, 0x31b52: 0x6c65be20, 0x31b53: 0x6c8c9220, - 0x31b54: 0x6cb8fe20, 0x31b55: 0x6cb90020, 0x31b56: 0x6cb90220, 0x31b57: 0x6cb90420, - 0x31b58: 0x6cb90620, 0x31b59: 0x6cb90820, 0x31b5a: 0x6cea0e20, 0x31b5b: 0x6cea1020, - 0x31b5c: 0x6d19e220, 0x31b5d: 0x6d19e420, 0x31b5e: 0x6d19e620, 0x31b5f: 0x6d30e420, - 0x31b60: 0x6d768a20, 0x31b61: 0x6d768c20, 0x31b62: 0x6da01820, 0x31b63: 0x6dc2a220, - 0x31b64: 0x6dc2a420, 0x31b65: 0x6dc2a620, 0x31b66: 0x6df89a20, 0x31b67: 0x6df89c20, - 0x31b68: 0x6df89e20, 0x31b69: 0x6e0c6a20, 0x31b6a: 0x6e1c2020, 0x31b6b: 0x6e285e20, - 0x31b6c: 0x6c015020, 0x31b6d: 0x6c030820, 0x31b6e: 0x6c065220, 0x31b6f: 0x6c065420, - 0x31b70: 0x6c065620, 0x31b71: 0x6c0ca620, 0x31b72: 0x6c0ca820, 0x31b73: 0x6c0caa20, - 0x31b74: 0x6c0cac20, 0x31b75: 0x6c0cae20, 0x31b76: 0x6c0cb020, 0x31b77: 0x6c179e20, - 0x31b78: 0x6c17a020, 0x31b79: 0x6c17a220, 0x31b7a: 0x6c17a420, 0x31b7b: 0x6c17a620, - 0x31b7c: 0x6c17a820, 0x31b7d: 0x6c17aa20, 0x31b7e: 0x6c17ac20, 0x31b7f: 0x6c17ae20, - // Block 0xc6e, offset 0x31b80 - 0x31b80: 0x6c2a8820, 0x31b81: 0x6c17b020, 0x31b82: 0x6c2a8a20, 0x31b83: 0x6c2a8c20, - 0x31b84: 0x6c2a8e20, 0x31b85: 0x6c2a9020, 0x31b86: 0x6c2a9220, 0x31b87: 0x6c2a9420, - 0x31b88: 0x6c44aa20, 0x31b89: 0x6c44ac20, 0x31b8a: 0x6c44ae20, 0x31b8b: 0x6c44b020, - 0x31b8c: 0x6c44b220, 0x31b8d: 0x6c44b420, 0x31b8e: 0x6c44b620, 0x31b8f: 0x6c44b820, - 0x31b90: 0x6c44ba20, 0x31b91: 0x6c44bc20, 0x31b92: 0x6c44be20, 0x31b93: 0x6c44c020, - 0x31b94: 0x6c44c220, 0x31b95: 0x6c44c420, 0x31b96: 0x6c44c620, 0x31b97: 0x6c44c820, - 0x31b98: 0x6c65de20, 0x31b99: 0x6c65e020, 0x31b9a: 0x6c65e220, 0x31b9b: 0x6c65e420, - 0x31b9c: 0x6c65e620, 0x31b9d: 0x6c65e820, 0x31b9e: 0x6c65ea20, 0x31b9f: 0x6c65ec20, - 0x31ba0: 0x6c65ee20, 0x31ba1: 0x6c65f020, 0x31ba2: 0x6c65f220, 0x31ba3: 0x6c65f420, - 0x31ba4: 0x6c65f620, 0x31ba5: 0x6c8c9e20, 0x31ba6: 0x6c8ca020, 0x31ba7: 0x6c8ca220, - 0x31ba8: 0x6c8ca420, 0x31ba9: 0x6c8ca620, 0x31baa: 0x6c8ca820, 0x31bab: 0x6c8caa20, - 0x31bac: 0x6c8cac20, 0x31bad: 0x6c8cae20, 0x31bae: 0x6c8cb020, 0x31baf: 0x6c8cb220, - 0x31bb0: 0x6c8cb420, 0x31bb1: 0x6cb91a20, 0x31bb2: 0x6cb91c20, 0x31bb3: 0x6cb91e20, - 0x31bb4: 0x6cb92020, 0x31bb5: 0x6cb92220, 0x31bb6: 0x6cb92420, 0x31bb7: 0x6cb92620, - 0x31bb8: 0x6cb92820, 0x31bb9: 0x6cb92a20, 0x31bba: 0x6cea1620, 0x31bbb: 0x6cea1820, - 0x31bbc: 0x6cea1a20, 0x31bbd: 0x6cea1c20, 0x31bbe: 0x6cea1e20, 0x31bbf: 0x6cea2020, - // Block 0xc6f, offset 0x31bc0 - 0x31bc0: 0x6cea2220, 0x31bc1: 0x6cea2420, 0x31bc2: 0x6cea2620, 0x31bc3: 0x6cea2820, - 0x31bc4: 0x6d19ee20, 0x31bc5: 0x6d19f020, 0x31bc6: 0x6d19f220, 0x31bc7: 0x6d19f420, - 0x31bc8: 0x6d19f620, 0x31bc9: 0x6d19f820, 0x31bca: 0x6d488020, 0x31bcb: 0x6d488220, - 0x31bcc: 0x6d488420, 0x31bcd: 0x6d488620, 0x31bce: 0x6d488820, 0x31bcf: 0x6d488a20, - 0x31bd0: 0x6d488c20, 0x31bd1: 0x6d488e20, 0x31bd2: 0x6d769220, 0x31bd3: 0x6d19fa20, - 0x31bd4: 0x6d769420, 0x31bd5: 0x6d769620, 0x31bd6: 0x6da01c20, 0x31bd7: 0x6da01e20, - 0x31bd8: 0x6da02020, 0x31bd9: 0x6da02220, 0x31bda: 0x6da02420, 0x31bdb: 0x6da02620, - 0x31bdc: 0x6da02820, 0x31bdd: 0x6dc2a820, 0x31bde: 0x6dc2aa20, 0x31bdf: 0x6dc2ac20, - 0x31be0: 0x6dc2ae20, 0x31be1: 0x6dc2b020, 0x31be2: 0x6de04e20, 0x31be3: 0x6de05020, - 0x31be4: 0x6e0c6c20, 0x31be5: 0x6e1c2220, 0x31be6: 0x6e3cea20, 0x31be7: 0x6c009620, - 0x31be8: 0x6c009820, 0x31be9: 0x6c030c20, 0x31bea: 0x6c030e20, 0x31beb: 0x6c031020, - 0x31bec: 0x6c031220, 0x31bed: 0x6c031420, 0x31bee: 0x6c031620, 0x31bef: 0x6c031820, - 0x31bf0: 0x6c031a20, 0x31bf1: 0x6c066020, 0x31bf2: 0x6c066220, 0x31bf3: 0x6c066420, - 0x31bf4: 0x6c066620, 0x31bf5: 0x6c0cc220, 0x31bf6: 0x6c0cc420, 0x31bf7: 0x6c0cc620, - 0x31bf8: 0x6c0cc820, 0x31bf9: 0x6c0cca20, 0x31bfa: 0x6c0ccc20, 0x31bfb: 0x6c0cce20, - 0x31bfc: 0x6c17ba20, 0x31bfd: 0x6c17bc20, 0x31bfe: 0x6c17be20, 0x31bff: 0x6c17c020, - // Block 0xc70, offset 0x31c00 - 0x31c00: 0x6c17c220, 0x31c01: 0x6c17c420, 0x31c02: 0x6c17c620, 0x31c03: 0x6c17c820, - 0x31c04: 0x6c17ca20, 0x31c05: 0x6c17cc20, 0x31c06: 0x6c2a9e20, 0x31c07: 0x6c2aa020, - 0x31c08: 0x6c2aa220, 0x31c09: 0x6c2aa420, 0x31c0a: 0x6c2aa620, 0x31c0b: 0x6c2aa820, - 0x31c0c: 0x6c2aaa20, 0x31c0d: 0x6c2aac20, 0x31c0e: 0x6c2aae20, 0x31c0f: 0x6c44d220, - 0x31c10: 0x6c44d420, 0x31c11: 0x6c44d620, 0x31c12: 0x6c660020, 0x31c13: 0x6c660220, - 0x31c14: 0x6c660420, 0x31c15: 0x6c660620, 0x31c16: 0x6c660820, 0x31c17: 0x6c6de220, - 0x31c18: 0x6c8cc220, 0x31c19: 0x6c8cc420, 0x31c1a: 0x6c916e20, 0x31c1b: 0x6c8cc620, - 0x31c1c: 0x6c8cc820, 0x31c1d: 0x6c8cca20, 0x31c1e: 0x6c8ccc20, 0x31c1f: 0x6cb93620, - 0x31c20: 0x6cb93820, 0x31c21: 0x6cb93a20, 0x31c22: 0x6cb93c20, 0x31c23: 0x6cb93e20, - 0x31c24: 0x6cea2e20, 0x31c25: 0x6cea3020, 0x31c26: 0x6cea3220, 0x31c27: 0x6cea3420, - 0x31c28: 0x6d1a0220, 0x31c29: 0x6d1a0420, 0x31c2a: 0x6d1a0620, 0x31c2b: 0x6d489220, - 0x31c2c: 0x6d717420, 0x31c2d: 0x6d769a20, 0x31c2e: 0x6d769c20, 0x31c2f: 0x6d769e20, - 0x31c30: 0x6d76a020, 0x31c31: 0x6da02c20, 0x31c32: 0x6df8a220, 0x31c33: 0x6e0c6e20, - 0x31c34: 0x6c009c20, 0x31c35: 0x6c015820, 0x31c36: 0x6c031e20, 0x31c37: 0x6c032020, - 0x31c38: 0x6c032220, 0x31c39: 0x6c067220, 0x31c3a: 0x6c067420, 0x31c3b: 0x6c067620, - 0x31c3c: 0x6c076c20, 0x31c3d: 0x6c067820, 0x31c3e: 0x6c0cd620, 0x31c3f: 0x6c0cd820, - // Block 0xc71, offset 0x31c40 - 0x31c40: 0x6c0cda20, 0x31c41: 0x6c0cdc20, 0x31c42: 0x6c0cde20, 0x31c43: 0x6c0ce020, - 0x31c44: 0x6c0ce220, 0x31c45: 0x6c0ce420, 0x31c46: 0x6c17d020, 0x31c47: 0x6c17d220, - 0x31c48: 0x6c17d420, 0x31c49: 0x6c17d620, 0x31c4a: 0x6c17d820, 0x31c4b: 0x6c2ab420, - 0x31c4c: 0x6c2ab620, 0x31c4d: 0x6c2ab820, 0x31c4e: 0x6c44da20, 0x31c4f: 0x6c44dc20, - 0x31c50: 0x6c44de20, 0x31c51: 0x6c633020, 0x31c52: 0x6c660c20, 0x31c53: 0x6c660e20, - 0x31c54: 0x6c8cd020, 0x31c55: 0x6c8cd220, 0x31c56: 0x6c8cd420, 0x31c57: 0x6c8cd620, - 0x31c58: 0x6cb94220, 0x31c59: 0x6d1a0820, 0x31c5a: 0x6d1a0a20, 0x31c5b: 0x6d4b1220, - 0x31c5c: 0x6d489420, 0x31c5d: 0x6d76a220, 0x31c5e: 0x6da02e20, 0x31c5f: 0x6de05220, - 0x31c60: 0x6df8a420, 0x31c61: 0x6e0c7020, 0x31c62: 0x6e319220, 0x31c63: 0x6c00a620, - 0x31c64: 0x6c015e20, 0x31c65: 0x6c032c20, 0x31c66: 0x6c032e20, 0x31c67: 0x6c033020, - 0x31c68: 0x6c033220, 0x31c69: 0x6c033420, 0x31c6a: 0x6c033620, 0x31c6b: 0x6c033820, - 0x31c6c: 0x6c033a20, 0x31c6d: 0x6c068c20, 0x31c6e: 0x6c068e20, 0x31c6f: 0x6c069020, - 0x31c70: 0x6c069220, 0x31c71: 0x6c069420, 0x31c72: 0x6c069620, 0x31c73: 0x6c069820, - 0x31c74: 0x6c069a20, 0x31c75: 0x6c0d0620, 0x31c76: 0x6c069c20, 0x31c77: 0x6c0d0820, - 0x31c78: 0x6c0d0a20, 0x31c79: 0x6c0d0c20, 0x31c7a: 0x6c0d0e20, 0x31c7b: 0x6c069e20, - 0x31c7c: 0x6c0d1020, 0x31c7d: 0x6c0d1220, 0x31c7e: 0x6c0d1420, 0x31c7f: 0x6c0d1620, - // Block 0xc72, offset 0x31c80 - 0x31c80: 0x6c0d1820, 0x31c81: 0x6c0d1a20, 0x31c82: 0x6c0d1c20, 0x31c83: 0x6c0d1e20, - 0x31c84: 0x6c0d2020, 0x31c85: 0x6c0d2220, 0x31c86: 0x6c0d2420, 0x31c87: 0x6c0d2620, - 0x31c88: 0x6c0d2820, 0x31c89: 0x6c0d2a20, 0x31c8a: 0x6c0d2c20, 0x31c8b: 0x6c0d2e20, - 0x31c8c: 0x6c0d3020, 0x31c8d: 0x6c0d3220, 0x31c8e: 0x6c180220, 0x31c8f: 0x6c180420, - 0x31c90: 0x6c180620, 0x31c91: 0x6c180820, 0x31c92: 0x6c180a20, 0x31c93: 0x6c180c20, - 0x31c94: 0x6c180e20, 0x31c95: 0x6c181020, 0x31c96: 0x6c181220, 0x31c97: 0x6c181420, - 0x31c98: 0x6c181620, 0x31c99: 0x6c181820, 0x31c9a: 0x6c181a20, 0x31c9b: 0x6c181c20, - 0x31c9c: 0x6c181e20, 0x31c9d: 0x6c182020, 0x31c9e: 0x6c182220, 0x31c9f: 0x6c182420, - 0x31ca0: 0x6c182620, 0x31ca1: 0x6c182820, 0x31ca2: 0x6c182a20, 0x31ca3: 0x6c182c20, - 0x31ca4: 0x6c182e20, 0x31ca5: 0x6c183020, 0x31ca6: 0x6c183220, 0x31ca7: 0x6c2af220, - 0x31ca8: 0x6c2af420, 0x31ca9: 0x6c2af620, 0x31caa: 0x6c2af820, 0x31cab: 0x6c2afa20, - 0x31cac: 0x6c2afc20, 0x31cad: 0x6c2afe20, 0x31cae: 0x6c2b0020, 0x31caf: 0x6c2b0220, - 0x31cb0: 0x6c2b0420, 0x31cb1: 0x6c2b0620, 0x31cb2: 0x6c2b0820, 0x31cb3: 0x6c2b0a20, - 0x31cb4: 0x6c2b0c20, 0x31cb5: 0x6c2b0e20, 0x31cb6: 0x6c2b1020, 0x31cb7: 0x6c2b1220, - 0x31cb8: 0x6c2b1420, 0x31cb9: 0x6c2b1620, 0x31cba: 0x6c2b1820, 0x31cbb: 0x6c2b1a20, - 0x31cbc: 0x6c2b1c20, 0x31cbd: 0x6c2b1e20, 0x31cbe: 0x6c2b2020, 0x31cbf: 0x6c2b2220, - // Block 0xc73, offset 0x31cc0 - 0x31cc0: 0x6c2b2420, 0x31cc1: 0x6c2b2620, 0x31cc2: 0x6c2b2820, 0x31cc3: 0x6c2b2a20, - 0x31cc4: 0x6c2b2c20, 0x31cc5: 0x6c2b2e20, 0x31cc6: 0x6c2b3020, 0x31cc7: 0x6c2b3220, - 0x31cc8: 0x6c2b3420, 0x31cc9: 0x6c2b3620, 0x31cca: 0x6c2b3820, 0x31ccb: 0x6c2b3a20, - 0x31ccc: 0x6c2b3c20, 0x31ccd: 0x6c2b3e20, 0x31cce: 0x6c2b4020, 0x31ccf: 0x6c2b4220, - 0x31cd0: 0x6c450620, 0x31cd1: 0x6c450820, 0x31cd2: 0x6c450a20, 0x31cd3: 0x6c450c20, - 0x31cd4: 0x6c450e20, 0x31cd5: 0x6c451020, 0x31cd6: 0x6c451220, 0x31cd7: 0x6c451420, - 0x31cd8: 0x6c451620, 0x31cd9: 0x6c451820, 0x31cda: 0x6c451a20, 0x31cdb: 0x6c451c20, - 0x31cdc: 0x6c451e20, 0x31cdd: 0x6c452020, 0x31cde: 0x6c452220, 0x31cdf: 0x6c452420, - 0x31ce0: 0x6c452620, 0x31ce1: 0x6c452820, 0x31ce2: 0x6c452a20, 0x31ce3: 0x6c452c20, - 0x31ce4: 0x6c452e20, 0x31ce5: 0x6c453020, 0x31ce6: 0x6c453220, 0x31ce7: 0x6c453420, - 0x31ce8: 0x6c453620, 0x31ce9: 0x6c453820, 0x31cea: 0x6c453a20, 0x31ceb: 0x6c453c20, - 0x31cec: 0x6c453e20, 0x31ced: 0x6c454020, 0x31cee: 0x6c454220, 0x31cef: 0x6c454420, - 0x31cf0: 0x6c454620, 0x31cf1: 0x6c664820, 0x31cf2: 0x6c664a20, 0x31cf3: 0x6c664c20, - 0x31cf4: 0x6c664e20, 0x31cf5: 0x6c665020, 0x31cf6: 0x6c665220, 0x31cf7: 0x6c665420, - 0x31cf8: 0x6c665620, 0x31cf9: 0x6c665820, 0x31cfa: 0x6c665a20, 0x31cfb: 0x6c665c20, - 0x31cfc: 0x6c665e20, 0x31cfd: 0x6c666020, 0x31cfe: 0x6c666220, 0x31cff: 0x6c666420, - // Block 0xc74, offset 0x31d00 - 0x31d00: 0x6c666620, 0x31d01: 0x6c666820, 0x31d02: 0x6c666a20, 0x31d03: 0x6c666c20, - 0x31d04: 0x6c666e20, 0x31d05: 0x6c667020, 0x31d06: 0x6c667220, 0x31d07: 0x6c667420, - 0x31d08: 0x6c667620, 0x31d09: 0x6c667820, 0x31d0a: 0x6c667a20, 0x31d0b: 0x6c667c20, - 0x31d0c: 0x6c667e20, 0x31d0d: 0x6c668020, 0x31d0e: 0x6c668220, 0x31d0f: 0x6c668420, - 0x31d10: 0x6c668620, 0x31d11: 0x6c668820, 0x31d12: 0x6c668a20, 0x31d13: 0x6c668c20, - 0x31d14: 0x6c668e20, 0x31d15: 0x6c669020, 0x31d16: 0x6c669220, 0x31d17: 0x6c669420, - 0x31d18: 0x6c669620, 0x31d19: 0x6c669820, 0x31d1a: 0x6c669a20, 0x31d1b: 0x6c669c20, - 0x31d1c: 0x6c669e20, 0x31d1d: 0x6c8cf820, 0x31d1e: 0x6c8cfa20, 0x31d1f: 0x6c8cfc20, - 0x31d20: 0x6c8cfe20, 0x31d21: 0x6c8d0020, 0x31d22: 0x6c8d0220, 0x31d23: 0x6c8d0420, - 0x31d24: 0x6c8d0620, 0x31d25: 0x6c8d0820, 0x31d26: 0x6c8d0a20, 0x31d27: 0x6c8d0c20, - 0x31d28: 0x6c8d0e20, 0x31d29: 0x6c8d1020, 0x31d2a: 0x6c8d1220, 0x31d2b: 0x6c8d1420, - 0x31d2c: 0x6c8d1620, 0x31d2d: 0x6c8d1820, 0x31d2e: 0x6c8d1a20, 0x31d2f: 0x6c8d1c20, - 0x31d30: 0x6c8d1e20, 0x31d31: 0x6c8d2020, 0x31d32: 0x6c8d2220, 0x31d33: 0x6c8d2420, - 0x31d34: 0x6c8d2620, 0x31d35: 0x6c8d2820, 0x31d36: 0x6c66a020, 0x31d37: 0x6c8d2a20, - 0x31d38: 0x6c8d2c20, 0x31d39: 0x6c8d2e20, 0x31d3a: 0x6c8d3020, 0x31d3b: 0x6c8d3220, - 0x31d3c: 0x6c8d3420, 0x31d3d: 0x6c8d3620, 0x31d3e: 0x6c8d3820, 0x31d3f: 0x6cb95a20, - // Block 0xc75, offset 0x31d40 - 0x31d40: 0x6cb95c20, 0x31d41: 0x6cb95e20, 0x31d42: 0x6cb96020, 0x31d43: 0x6cb96220, - 0x31d44: 0x6cb96420, 0x31d45: 0x6cb96620, 0x31d46: 0x6cb96820, 0x31d47: 0x6cb96a20, - 0x31d48: 0x6cb96c20, 0x31d49: 0x6cb96e20, 0x31d4a: 0x6cb97020, 0x31d4b: 0x6cb97220, - 0x31d4c: 0x6cb97420, 0x31d4d: 0x6cb97620, 0x31d4e: 0x6cb97820, 0x31d4f: 0x6cb97a20, - 0x31d50: 0x6cb97c20, 0x31d51: 0x6cb97e20, 0x31d52: 0x6cb98020, 0x31d53: 0x6cb98220, - 0x31d54: 0x6cb98420, 0x31d55: 0x6cb98620, 0x31d56: 0x6cb98820, 0x31d57: 0x6cb98a20, - 0x31d58: 0x6cb98c20, 0x31d59: 0x6cb98e20, 0x31d5a: 0x6cb99020, 0x31d5b: 0x6cb99220, - 0x31d5c: 0x6cd55e20, 0x31d5d: 0x6cb99420, 0x31d5e: 0x6cb99620, 0x31d5f: 0x6cb99820, - 0x31d60: 0x6cb99a20, 0x31d61: 0x6cb99c20, 0x31d62: 0x6cb99e20, 0x31d63: 0x6cb9a020, - 0x31d64: 0x6cb9a220, 0x31d65: 0x6cea5220, 0x31d66: 0x6cea5420, 0x31d67: 0x6cea5620, - 0x31d68: 0x6cea5820, 0x31d69: 0x6cea5a20, 0x31d6a: 0x6cea5c20, 0x31d6b: 0x6cea5e20, - 0x31d6c: 0x6cea6020, 0x31d6d: 0x6cea6220, 0x31d6e: 0x6cea6420, 0x31d6f: 0x6cea6620, - 0x31d70: 0x6cea6820, 0x31d71: 0x6cea6a20, 0x31d72: 0x6cea6c20, 0x31d73: 0x6cea6e20, - 0x31d74: 0x6cea7020, 0x31d75: 0x6cea7220, 0x31d76: 0x6cea7420, 0x31d77: 0x6cea7620, - 0x31d78: 0x6cea7820, 0x31d79: 0x6cea7a20, 0x31d7a: 0x6cea7c20, 0x31d7b: 0x6cea7e20, - 0x31d7c: 0x6cea8020, 0x31d7d: 0x6cea8220, 0x31d7e: 0x6cea8420, 0x31d7f: 0x6cea8620, - // Block 0xc76, offset 0x31d80 - 0x31d80: 0x6cea8820, 0x31d81: 0x6cea8a20, 0x31d82: 0x6d1a3020, 0x31d83: 0x6d1a3220, - 0x31d84: 0x6d1a3420, 0x31d85: 0x6d1a3620, 0x31d86: 0x6d1a3820, 0x31d87: 0x6d1a3a20, - 0x31d88: 0x6d1a3c20, 0x31d89: 0x6d1a3e20, 0x31d8a: 0x6d1a4020, 0x31d8b: 0x6d1a4220, - 0x31d8c: 0x6d1a4420, 0x31d8d: 0x6d1a4620, 0x31d8e: 0x6d1a4820, 0x31d8f: 0x6d1a4a20, - 0x31d90: 0x6d1a4c20, 0x31d91: 0x6d1a4e20, 0x31d92: 0x6d1a5020, 0x31d93: 0x6d1a5220, - 0x31d94: 0x6d1a5420, 0x31d95: 0x6d1a5620, 0x31d96: 0x6d1a5820, 0x31d97: 0x6d1a5a20, - 0x31d98: 0x6d1a5c20, 0x31d99: 0x6d1a5e20, 0x31d9a: 0x6d1a6020, 0x31d9b: 0x6d1a6220, - 0x31d9c: 0x6d1a6420, 0x31d9d: 0x6d1a6620, 0x31d9e: 0x6d1a6820, 0x31d9f: 0x6d1a6a20, - 0x31da0: 0x6d48ae20, 0x31da1: 0x6d1a6c20, 0x31da2: 0x6d1a6e20, 0x31da3: 0x6d1a7020, - 0x31da4: 0x6d1a7220, 0x31da5: 0x6d1a7420, 0x31da6: 0x6d48b020, 0x31da7: 0x6d48b220, - 0x31da8: 0x6d48b420, 0x31da9: 0x6d48b620, 0x31daa: 0x6d48b820, 0x31dab: 0x6d48ba20, - 0x31dac: 0x6d48bc20, 0x31dad: 0x6d48be20, 0x31dae: 0x6d48c020, 0x31daf: 0x6d48c220, - 0x31db0: 0x6d48c420, 0x31db1: 0x6d48c620, 0x31db2: 0x6d48c820, 0x31db3: 0x6d48ca20, - 0x31db4: 0x6d48cc20, 0x31db5: 0x6d48ce20, 0x31db6: 0x6d48d020, 0x31db7: 0x6d48d220, - 0x31db8: 0x6d48d420, 0x31db9: 0x6d48d620, 0x31dba: 0x6d76b420, 0x31dbb: 0x6d76b620, - 0x31dbc: 0x6d76b820, 0x31dbd: 0x6d76ba20, 0x31dbe: 0x6d76bc20, 0x31dbf: 0x6d76be20, - // Block 0xc77, offset 0x31dc0 - 0x31dc0: 0x6d76c020, 0x31dc1: 0x6d76c220, 0x31dc2: 0x6d76c420, 0x31dc3: 0x6d76c620, - 0x31dc4: 0x6d76c820, 0x31dc5: 0x6d76ca20, 0x31dc6: 0x6d76cc20, 0x31dc7: 0x6d76ce20, - 0x31dc8: 0x6d76d020, 0x31dc9: 0x6d76d220, 0x31dca: 0x6d76d420, 0x31dcb: 0x6d938220, - 0x31dcc: 0x6da03620, 0x31dcd: 0x6da03820, 0x31dce: 0x6da03a20, 0x31dcf: 0x6da03c20, - 0x31dd0: 0x6da03e20, 0x31dd1: 0x6da04020, 0x31dd2: 0x6da04220, 0x31dd3: 0x6da04420, - 0x31dd4: 0x6da04620, 0x31dd5: 0x6da04820, 0x31dd6: 0x6da04a20, 0x31dd7: 0x6da04c20, - 0x31dd8: 0x6da04e20, 0x31dd9: 0x6da05020, 0x31dda: 0x6da05220, 0x31ddb: 0x6dc2b820, - 0x31ddc: 0x6dc2ba20, 0x31ddd: 0x6dc2bc20, 0x31dde: 0x6dc2be20, 0x31ddf: 0x6dc2c020, - 0x31de0: 0x6dc2c220, 0x31de1: 0x6de05a20, 0x31de2: 0x6de05c20, 0x31de3: 0x6de05e20, - 0x31de4: 0x6df8a820, 0x31de5: 0x6e0c7620, 0x31de6: 0x6df8aa20, 0x31de7: 0x6df8ac20, - 0x31de8: 0x6df8ae20, 0x31de9: 0x6df8b020, 0x31dea: 0x6e0c7820, 0x31deb: 0x6e0c7a20, - 0x31dec: 0x6e0c7c20, 0x31ded: 0x6e0c7e20, 0x31dee: 0x6e286420, 0x31def: 0x6e319420, - 0x31df0: 0x6e3cec20, 0x31df1: 0x6e3cee20, 0x31df2: 0x6c016220, 0x31df3: 0x6c034020, - 0x31df4: 0x6c034220, 0x31df5: 0x6c034420, 0x31df6: 0x6c06ae20, 0x31df7: 0x6c06b020, - 0x31df8: 0x6c06b220, 0x31df9: 0x6c0d4c20, 0x31dfa: 0x6c0d4e20, 0x31dfb: 0x6c0d5020, - 0x31dfc: 0x6c0d5220, 0x31dfd: 0x6c0d5420, 0x31dfe: 0x6c0d5620, 0x31dff: 0x6c0d5820, - // Block 0xc78, offset 0x31e00 - 0x31e00: 0x6c0d5a20, 0x31e01: 0x6c0d5c20, 0x31e02: 0x6c185420, 0x31e03: 0x6c185620, - 0x31e04: 0x6c185820, 0x31e05: 0x6c185a20, 0x31e06: 0x6c185c20, 0x31e07: 0x6c185e20, - 0x31e08: 0x6c186020, 0x31e09: 0x6c186220, 0x31e0a: 0x6c186420, 0x31e0b: 0x6c186620, - 0x31e0c: 0x6c186820, 0x31e0d: 0x6c186a20, 0x31e0e: 0x6c186c20, 0x31e0f: 0x6c186e20, - 0x31e10: 0x6c187020, 0x31e11: 0x6c2b6820, 0x31e12: 0x6c2b6a20, 0x31e13: 0x6c2b6c20, - 0x31e14: 0x6c2b6e20, 0x31e15: 0x6c2b7020, 0x31e16: 0x6c2b7220, 0x31e17: 0x6c2b7420, - 0x31e18: 0x6c2b7620, 0x31e19: 0x6c2b7820, 0x31e1a: 0x6c2b7a20, 0x31e1b: 0x6c2b7c20, - 0x31e1c: 0x6c2b7e20, 0x31e1d: 0x6c2b8020, 0x31e1e: 0x6c456620, 0x31e1f: 0x6c456820, - 0x31e20: 0x6c456a20, 0x31e21: 0x6c456c20, 0x31e22: 0x6c456e20, 0x31e23: 0x6c457020, - 0x31e24: 0x6c457220, 0x31e25: 0x6c457420, 0x31e26: 0x6c457620, 0x31e27: 0x6c457820, - 0x31e28: 0x6c457a20, 0x31e29: 0x6c457c20, 0x31e2a: 0x6c457e20, 0x31e2b: 0x6c66b820, - 0x31e2c: 0x6c66ba20, 0x31e2d: 0x6c66bc20, 0x31e2e: 0x6c66be20, 0x31e2f: 0x6c66c020, - 0x31e30: 0x6c66c220, 0x31e31: 0x6c66c420, 0x31e32: 0x6c66c620, 0x31e33: 0x6c66c820, - 0x31e34: 0x6c66ca20, 0x31e35: 0x6c66cc20, 0x31e36: 0x6c66ce20, 0x31e37: 0x6c66d020, - 0x31e38: 0x6c66d220, 0x31e39: 0x6c66d420, 0x31e3a: 0x6c66d620, 0x31e3b: 0x6c8d5420, - 0x31e3c: 0x6c8d5620, 0x31e3d: 0x6c8d5820, 0x31e3e: 0x6c8d5a20, 0x31e3f: 0x6c8d5c20, - // Block 0xc79, offset 0x31e40 - 0x31e40: 0x6c8d5e20, 0x31e41: 0x6c8d6020, 0x31e42: 0x6c8d6220, 0x31e43: 0x6c8d6420, - 0x31e44: 0x6c8d6620, 0x31e45: 0x6cb9b420, 0x31e46: 0x6cb9b620, 0x31e47: 0x6cb9b820, - 0x31e48: 0x6cb9ba20, 0x31e49: 0x6cb9bc20, 0x31e4a: 0x6cb9be20, 0x31e4b: 0x6cb9c020, - 0x31e4c: 0x6cb9c220, 0x31e4d: 0x6cb9c420, 0x31e4e: 0x6cb9c620, 0x31e4f: 0x6cb9c820, - 0x31e50: 0x6cb9ca20, 0x31e51: 0x6cb9cc20, 0x31e52: 0x6cb9ce20, 0x31e53: 0x6ceaa420, - 0x31e54: 0x6ceaa620, 0x31e55: 0x6ceaa820, 0x31e56: 0x6ceaaa20, 0x31e57: 0x6ceaac20, - 0x31e58: 0x6ceaae20, 0x31e59: 0x6ceab020, 0x31e5a: 0x6ceab220, 0x31e5b: 0x6ceab420, - 0x31e5c: 0x6ceab620, 0x31e5d: 0x6ceab820, 0x31e5e: 0x6ceaba20, 0x31e5f: 0x6ceabc20, - 0x31e60: 0x6d1a8420, 0x31e61: 0x6d1a8620, 0x31e62: 0x6d1a8820, 0x31e63: 0x6d1a8a20, - 0x31e64: 0x6d1a8c20, 0x31e65: 0x6d1a8e20, 0x31e66: 0x6d1a9020, 0x31e67: 0x6d1a9220, - 0x31e68: 0x6d1a9420, 0x31e69: 0x6d1a9620, 0x31e6a: 0x6d1a9820, 0x31e6b: 0x6d1a9a20, - 0x31e6c: 0x6d1a9c20, 0x31e6d: 0x6d1a9e20, 0x31e6e: 0x6d1aa020, 0x31e6f: 0x6d1aa220, - 0x31e70: 0x6d48e420, 0x31e71: 0x6d48e620, 0x31e72: 0x6d48e820, 0x31e73: 0x6d48ea20, - 0x31e74: 0x6d48ec20, 0x31e75: 0x6d48ee20, 0x31e76: 0x6d76dc20, 0x31e77: 0x6d76de20, - 0x31e78: 0x6d76e020, 0x31e79: 0x6da06220, 0x31e7a: 0x6da06420, 0x31e7b: 0x6da06620, - 0x31e7c: 0x6da06820, 0x31e7d: 0x6da06a20, 0x31e7e: 0x6da06c20, 0x31e7f: 0x6da06e20, - // Block 0xc7a, offset 0x31e80 - 0x31e80: 0x6dc2c620, 0x31e81: 0x6dc2c820, 0x31e82: 0x6dc2ca20, 0x31e83: 0x6dc2cc20, - 0x31e84: 0x6de06220, 0x31e85: 0x6de06420, 0x31e86: 0x6df8b220, 0x31e87: 0x6e0c8020, - 0x31e88: 0x6e286620, 0x31e89: 0x6e286820, 0x31e8a: 0x6e384220, 0x31e8b: 0x6e46ae20, - 0x31e8c: 0x6c035620, 0x31e8d: 0x6c06be20, 0x31e8e: 0x6c06c020, 0x31e8f: 0x6c06c220, - 0x31e90: 0x6c06c420, 0x31e91: 0x6c0d6020, 0x31e92: 0x6c0d6220, 0x31e93: 0x6c0d6420, - 0x31e94: 0x6c187a20, 0x31e95: 0x6c187c20, 0x31e96: 0x6c187e20, 0x31e97: 0x6c188020, - 0x31e98: 0x6c2b8e20, 0x31e99: 0x6c2b9020, 0x31e9a: 0x6c2b9220, 0x31e9b: 0x6c2b9420, - 0x31e9c: 0x6c2b9620, 0x31e9d: 0x6c2b9820, 0x31e9e: 0x6c458420, 0x31e9f: 0x6c458620, - 0x31ea0: 0x6c458820, 0x31ea1: 0x6c458a20, 0x31ea2: 0x6c458c20, 0x31ea3: 0x6c458e20, - 0x31ea4: 0x6c66e020, 0x31ea5: 0x6c66e220, 0x31ea6: 0x6c66e420, 0x31ea7: 0x6c66e620, - 0x31ea8: 0x6c66e820, 0x31ea9: 0x6c66ea20, 0x31eaa: 0x6c66ec20, 0x31eab: 0x6c66ee20, - 0x31eac: 0x6c66f020, 0x31ead: 0x6c66f220, 0x31eae: 0x6c8d7020, 0x31eaf: 0x6c8d7220, - 0x31eb0: 0x6c8d7420, 0x31eb1: 0x6c8d7620, 0x31eb2: 0x6c8d7820, 0x31eb3: 0x6c8d7a20, - 0x31eb4: 0x6c8d7c20, 0x31eb5: 0x6cb9da20, 0x31eb6: 0x6cb9dc20, 0x31eb7: 0x6cb9de20, - 0x31eb8: 0x6ceac420, 0x31eb9: 0x6ceac620, 0x31eba: 0x6ceac820, 0x31ebb: 0x6ceaca20, - 0x31ebc: 0x6ceacc20, 0x31ebd: 0x6d1aa820, 0x31ebe: 0x6d1aaa20, 0x31ebf: 0x6d1aac20, - // Block 0xc7b, offset 0x31ec0 - 0x31ec0: 0x6d1aae20, 0x31ec1: 0x6d1ab020, 0x31ec2: 0x6d1ab220, 0x31ec3: 0x6d48f420, - 0x31ec4: 0x6d76e220, 0x31ec5: 0x6d76e420, 0x31ec6: 0x6d76e620, 0x31ec7: 0x6d76e820, - 0x31ec8: 0x6da07020, 0x31ec9: 0x6da07220, 0x31eca: 0x6da07420, 0x31ecb: 0x6df8b420, - 0x31ecc: 0x6df8b620, 0x31ecd: 0x6df8b820, 0x31ece: 0x6c00ae20, 0x31ecf: 0x6c035c20, - 0x31ed0: 0x6c06c820, 0x31ed1: 0x6c188220, 0x31ed2: 0x6c188420, 0x31ed3: 0x6c188620, - 0x31ed4: 0x6c188820, 0x31ed5: 0x6c188a20, 0x31ed6: 0x6c2b9c20, 0x31ed7: 0x6c459020, - 0x31ed8: 0x6c459220, 0x31ed9: 0x6c459420, 0x31eda: 0x6c459620, 0x31edb: 0x6c459820, - 0x31edc: 0x6c459a20, 0x31edd: 0x6c459c20, 0x31ede: 0x6c66f420, 0x31edf: 0x6c66f620, - 0x31ee0: 0x6c66f820, 0x31ee1: 0x6c66fa20, 0x31ee2: 0x6c63d420, 0x31ee3: 0x6cb9e020, - 0x31ee4: 0x6cb9e220, 0x31ee5: 0x6ceace20, 0x31ee6: 0x6d1ab420, 0x31ee7: 0x6d1ab620, - 0x31ee8: 0x6d1ab820, 0x31ee9: 0x6da07620, 0x31eea: 0x6dc2ce20, 0x31eeb: 0x6dea7420, - 0x31eec: 0x6c00b220, 0x31eed: 0x6c035e20, 0x31eee: 0x6c0d7020, 0x31eef: 0x6c0d7220, - 0x31ef0: 0x6c0d7420, 0x31ef1: 0x6c0d7620, 0x31ef2: 0x6c0d7a20, 0x31ef3: 0x6c189620, - 0x31ef4: 0x6c189820, 0x31ef5: 0x6c189a20, 0x31ef6: 0x6c189c20, 0x31ef7: 0x6c189e20, - 0x31ef8: 0x6c2ba020, 0x31ef9: 0x6c2ba220, 0x31efa: 0x6c2ba420, 0x31efb: 0x6c2ba620, - 0x31efc: 0x6c45a620, 0x31efd: 0x6c45a820, 0x31efe: 0x6c45aa20, 0x31eff: 0x6c45ac20, - // Block 0xc7c, offset 0x31f00 - 0x31f00: 0x6c45ae20, 0x31f01: 0x6c45b020, 0x31f02: 0x6c45b220, 0x31f03: 0x6c45c220, - 0x31f04: 0x6c45b420, 0x31f05: 0x6c45b620, 0x31f06: 0x6c45b820, 0x31f07: 0x6c45ba20, - 0x31f08: 0x6c45bc20, 0x31f09: 0x6c670220, 0x31f0a: 0x6c670420, 0x31f0b: 0x6c670620, - 0x31f0c: 0x6c670820, 0x31f0d: 0x6c670a20, 0x31f0e: 0x6c8d8e20, 0x31f0f: 0x6c8d9020, - 0x31f10: 0x6cb9e420, 0x31f11: 0x6cb9e620, 0x31f12: 0x6cb9e820, 0x31f13: 0x6cb9ea20, - 0x31f14: 0x6cb9ec20, 0x31f15: 0x6cb9ee20, 0x31f16: 0x6ceada20, 0x31f17: 0x6ceadc20, - 0x31f18: 0x6ceade20, 0x31f19: 0x6d1ac220, 0x31f1a: 0x6d1ac420, 0x31f1b: 0x6d1ac620, - 0x31f1c: 0x6d48f820, 0x31f1d: 0x6d48fa20, 0x31f1e: 0x6d48fc20, 0x31f1f: 0x6d48fe20, - 0x31f20: 0x6d490020, 0x31f21: 0x6d490220, 0x31f22: 0x6d76ec20, 0x31f23: 0x6d76ee20, - 0x31f24: 0x6dc2d020, 0x31f25: 0x6dc2d220, 0x31f26: 0x6de06a20, 0x31f27: 0x6de06c20, - 0x31f28: 0x6df8bc20, 0x31f29: 0x6df8be20, 0x31f2a: 0x6e1c2420, 0x31f2b: 0x6e3cf220, - 0x31f2c: 0x6e451420, 0x31f2d: 0x6c036420, 0x31f2e: 0x6c0d7c20, 0x31f2f: 0x6c0d7e20, - 0x31f30: 0x6c18a820, 0x31f31: 0x6c18aa20, 0x31f32: 0x6c18ac20, 0x31f33: 0x6c2baa20, - 0x31f34: 0x6c45c420, 0x31f35: 0x6c45c620, 0x31f36: 0x6c670e20, 0x31f37: 0x6d1aca20, - 0x31f38: 0x6df8c220, 0x31f39: 0x6e1c2620, 0x31f3a: 0x6e1c2820, 0x31f3b: 0x6c037020, - 0x31f3c: 0x6c037220, 0x31f3d: 0x6c06da20, 0x31f3e: 0x6c06dc20, 0x31f3f: 0x6c037420, - // Block 0xc7d, offset 0x31f40 - 0x31f40: 0x6c06de20, 0x31f41: 0x6c06e020, 0x31f42: 0x6c0d8e20, 0x31f43: 0x6c0d9020, - 0x31f44: 0x6c0d9220, 0x31f45: 0x6c0d9420, 0x31f46: 0x6c0d9620, 0x31f47: 0x6c0d9820, - 0x31f48: 0x6c0d9a20, 0x31f49: 0x6c0d9c20, 0x31f4a: 0x6c0d9e20, 0x31f4b: 0x6c0da020, - 0x31f4c: 0x6c0da220, 0x31f4d: 0x6c0da420, 0x31f4e: 0x6c0da620, 0x31f4f: 0x6c0da820, - 0x31f50: 0x6c0daa20, 0x31f51: 0x6c18ae20, 0x31f52: 0x6c18b020, 0x31f53: 0x6c18b220, - 0x31f54: 0x6c18b420, 0x31f55: 0x6c18b620, 0x31f56: 0x6c18b820, 0x31f57: 0x6c18ba20, - 0x31f58: 0x6c2bba20, 0x31f59: 0x6c2bbc20, 0x31f5a: 0x6c2bbe20, 0x31f5b: 0x6c2bc020, - 0x31f5c: 0x6c2bc220, 0x31f5d: 0x6c2bc420, 0x31f5e: 0x6c2bc620, 0x31f5f: 0x6c2bc820, - 0x31f60: 0x6c2bca20, 0x31f61: 0x6c2bcc20, 0x31f62: 0x6c2bce20, 0x31f63: 0x6c671020, - 0x31f64: 0x6c671220, 0x31f65: 0x6c671420, 0x31f66: 0x6c671620, 0x31f67: 0x6c671820, - 0x31f68: 0x6c671a20, 0x31f69: 0x6c671c20, 0x31f6a: 0x6c8d9a20, 0x31f6b: 0x6c8d9c20, - 0x31f6c: 0x6c8d9e20, 0x31f6d: 0x6c8da020, 0x31f6e: 0x6c8da220, 0x31f6f: 0x6c8da420, - 0x31f70: 0x6cb9f420, 0x31f71: 0x6cb9f620, 0x31f72: 0x6cb9f820, 0x31f73: 0x6cb9fa20, - 0x31f74: 0x6ceae220, 0x31f75: 0x6ceae420, 0x31f76: 0x6ceae620, 0x31f77: 0x6ceae820, - 0x31f78: 0x6ceaea20, 0x31f79: 0x6ceaec20, 0x31f7a: 0x6ceaee20, 0x31f7b: 0x6ceaf020, - 0x31f7c: 0x6ceaf220, 0x31f7d: 0x6d1acc20, 0x31f7e: 0x6d1ace20, 0x31f7f: 0x6d1ad020, - // Block 0xc7e, offset 0x31f80 - 0x31f80: 0x6d490420, 0x31f81: 0x6d490620, 0x31f82: 0x6d490820, 0x31f83: 0x6d490a20, - 0x31f84: 0x6d490c20, 0x31f85: 0x6da07a20, 0x31f86: 0x6da07c20, 0x31f87: 0x6da07e20, - 0x31f88: 0x6da08020, 0x31f89: 0x6dc2d420, 0x31f8a: 0x6dc2d620, 0x31f8b: 0x6dc2d820, - 0x31f8c: 0x6dc2da20, 0x31f8d: 0x6dc2dc20, 0x31f8e: 0x6de06e20, 0x31f8f: 0x6e0c8620, - 0x31f90: 0x6e384420, 0x31f91: 0x6e3cf420, 0x31f92: 0x6c016c20, 0x31f93: 0x6c06ea20, - 0x31f94: 0x6c0dae20, 0x31f95: 0x6c0db020, 0x31f96: 0x6c0db220, 0x31f97: 0x6c0db420, - 0x31f98: 0x6c0db620, 0x31f99: 0x6c18c420, 0x31f9a: 0x6c18c620, 0x31f9b: 0x6c18c820, - 0x31f9c: 0x6c18ca20, 0x31f9d: 0x6c161a20, 0x31f9e: 0x6c2bdc20, 0x31f9f: 0x6c2bde20, - 0x31fa0: 0x6c2be020, 0x31fa1: 0x6c2be220, 0x31fa2: 0x6c2be420, 0x31fa3: 0x6c2be620, - 0x31fa4: 0x6c2be820, 0x31fa5: 0x6c2bea20, 0x31fa6: 0x6c2bec20, 0x31fa7: 0x6c2bee20, - 0x31fa8: 0x6c2bf020, 0x31fa9: 0x6c45ce20, 0x31faa: 0x6c45d020, 0x31fab: 0x6c45d220, - 0x31fac: 0x6c45d420, 0x31fad: 0x6c45d620, 0x31fae: 0x6c45d820, 0x31faf: 0x6c45da20, - 0x31fb0: 0x6c45dc20, 0x31fb1: 0x6c45de20, 0x31fb2: 0x6c45e020, 0x31fb3: 0x6c672020, - 0x31fb4: 0x6c672220, 0x31fb5: 0x6c672420, 0x31fb6: 0x6c672620, 0x31fb7: 0x6c672820, - 0x31fb8: 0x6cb78420, 0x31fb9: 0x6c672a20, 0x31fba: 0x6c8daa20, 0x31fbb: 0x6c8dac20, - 0x31fbc: 0x6c8dae20, 0x31fbd: 0x6c8db020, 0x31fbe: 0x6c8db220, 0x31fbf: 0x6c8db420, - // Block 0xc7f, offset 0x31fc0 - 0x31fc0: 0x6cb9fc20, 0x31fc1: 0x6cb9fe20, 0x31fc2: 0x6cba0020, 0x31fc3: 0x6cbd9e20, - 0x31fc4: 0x6cba0220, 0x31fc5: 0x6ceaf620, 0x31fc6: 0x6d1ad420, 0x31fc7: 0x6d1ad620, - 0x31fc8: 0x6d491220, 0x31fc9: 0x6d491420, 0x31fca: 0x6d491620, 0x31fcb: 0x6e400820, - 0x31fcc: 0x6e467a20, 0x31fcd: 0x6c037e20, 0x31fce: 0x6c038020, 0x31fcf: 0x6c038220, - 0x31fd0: 0x6c038420, 0x31fd1: 0x6c06f220, 0x31fd2: 0x6c0dbc20, 0x31fd3: 0x6c0dbe20, - 0x31fd4: 0x6c0dc020, 0x31fd5: 0x6c0dc220, 0x31fd6: 0x6c0dc420, 0x31fd7: 0x6c0dc620, - 0x31fd8: 0x6c18da20, 0x31fd9: 0x6c45ea20, 0x31fda: 0x6c45ec20, 0x31fdb: 0x6c45ee20, - 0x31fdc: 0x6c45f020, 0x31fdd: 0x6c45f220, 0x31fde: 0x6c672e20, 0x31fdf: 0x6cba0420, - 0x31fe0: 0x6cba0620, 0x31fe1: 0x6cba0820, 0x31fe2: 0x6ceafc20, 0x31fe3: 0x6ceafe20, - 0x31fe4: 0x6ceb0020, 0x31fe5: 0x6d1ada20, 0x31fe6: 0x6da08420, 0x31fe7: 0x6dc2e020, - 0x31fe8: 0x6dc2e220, 0x31fe9: 0x6dc2e420, 0x31fea: 0x6dc2e620, 0x31feb: 0x6e3cf620, - 0x31fec: 0x6c038e20, 0x31fed: 0x6c06fa20, 0x31fee: 0x6c06fc20, 0x31fef: 0x6c06fe20, - 0x31ff0: 0x6c070020, 0x31ff1: 0x6c070220, 0x31ff2: 0x6c070420, 0x31ff3: 0x6c070620, - 0x31ff4: 0x6c0dda20, 0x31ff5: 0x6c0ddc20, 0x31ff6: 0x6c0dde20, 0x31ff7: 0x6c0de020, - 0x31ff8: 0x6c0de220, 0x31ff9: 0x6c0de420, 0x31ffa: 0x6c0de620, 0x31ffb: 0x6c0de820, - 0x31ffc: 0x6c0dea20, 0x31ffd: 0x6c0dec20, 0x31ffe: 0x6c0dee20, 0x31fff: 0x6c0df020, - // Block 0xc80, offset 0x32000 - 0x32000: 0x6c18ec20, 0x32001: 0x6c18ee20, 0x32002: 0x6c18f020, 0x32003: 0x6c18f220, - 0x32004: 0x6c18f420, 0x32005: 0x6c18f620, 0x32006: 0x6c18f820, 0x32007: 0x6c18fa20, - 0x32008: 0x6c18fc20, 0x32009: 0x6c18fe20, 0x3200a: 0x6c2c0c20, 0x3200b: 0x6c2c0e20, - 0x3200c: 0x6c2c1020, 0x3200d: 0x6c2c1220, 0x3200e: 0x6c2c1420, 0x3200f: 0x6c2c1620, - 0x32010: 0x6c2c1820, 0x32011: 0x6c2c1a20, 0x32012: 0x6c2c1c20, 0x32013: 0x6c2c1e20, - 0x32014: 0x6c2c2020, 0x32015: 0x6c2c2220, 0x32016: 0x6c2a5a20, 0x32017: 0x6c460420, - 0x32018: 0x6c460620, 0x32019: 0x6c460820, 0x3201a: 0x6c460a20, 0x3201b: 0x6c460c20, - 0x3201c: 0x6c460e20, 0x3201d: 0x6c461020, 0x3201e: 0x6c461220, 0x3201f: 0x6c461420, - 0x32020: 0x6c461620, 0x32021: 0x6c461820, 0x32022: 0x6c461a20, 0x32023: 0x6c461c20, - 0x32024: 0x6c461e20, 0x32025: 0x6c462020, 0x32026: 0x6c462220, 0x32027: 0x6c674220, - 0x32028: 0x6c674420, 0x32029: 0x6c674620, 0x3202a: 0x6c674820, 0x3202b: 0x6c674a20, - 0x3202c: 0x6c674c20, 0x3202d: 0x6c674e20, 0x3202e: 0x6c675020, 0x3202f: 0x6c675220, - 0x32030: 0x6c675420, 0x32031: 0x6c675620, 0x32032: 0x6c675820, 0x32033: 0x6c675a20, - 0x32034: 0x6c675c20, 0x32035: 0x6c675e20, 0x32036: 0x6c676020, 0x32037: 0x6c676220, - 0x32038: 0x6c8dc220, 0x32039: 0x6c8dc420, 0x3203a: 0x6c8dc620, 0x3203b: 0x6c8dc820, - 0x3203c: 0x6c8dca20, 0x3203d: 0x6c8dcc20, 0x3203e: 0x6c8dce20, 0x3203f: 0x6ceb0820, - // Block 0xc81, offset 0x32040 - 0x32040: 0x6c8dd020, 0x32041: 0x6c8dd220, 0x32042: 0x6c8dd420, 0x32043: 0x6c8dd620, - 0x32044: 0x6c8dd820, 0x32045: 0x6c8dda20, 0x32046: 0x6c8ddc20, 0x32047: 0x6cba1620, - 0x32048: 0x6cba1820, 0x32049: 0x6cba1a20, 0x3204a: 0x6cba1c20, 0x3204b: 0x6cba1e20, - 0x3204c: 0x6cba2020, 0x3204d: 0x6cba2220, 0x3204e: 0x6cba2420, 0x3204f: 0x6cba2620, - 0x32050: 0x6cba2820, 0x32051: 0x6ceb0a20, 0x32052: 0x6ceb0c20, 0x32053: 0x6ceb0e20, - 0x32054: 0x6ceb1020, 0x32055: 0x6ceb1220, 0x32056: 0x6ceb1420, 0x32057: 0x6ceb1620, - 0x32058: 0x6ceb1820, 0x32059: 0x6d1ae820, 0x3205a: 0x6d1aea20, 0x3205b: 0x6d1aec20, - 0x3205c: 0x6d1aee20, 0x3205d: 0x6d1af020, 0x3205e: 0x6d1af220, 0x3205f: 0x6d1af420, - 0x32060: 0x6d1af620, 0x32061: 0x6d1af820, 0x32062: 0x6d1afa20, 0x32063: 0x6d1afc20, - 0x32064: 0x6d1afe20, 0x32065: 0x6d1b0020, 0x32066: 0x6d1b0220, 0x32067: 0x6d1b0420, - 0x32068: 0x6d1b0620, 0x32069: 0x6d1b0820, 0x3206a: 0x6d1b0a20, 0x3206b: 0x6d1b0c20, - 0x3206c: 0x6d1b0e20, 0x3206d: 0x6d491e20, 0x3206e: 0x6d492020, 0x3206f: 0x6d492220, - 0x32070: 0x6d492420, 0x32071: 0x6d492620, 0x32072: 0x6d492820, 0x32073: 0x6d492a20, - 0x32074: 0x6d492c20, 0x32075: 0x6d492e20, 0x32076: 0x6d493020, 0x32077: 0x6d493220, - 0x32078: 0x6d493420, 0x32079: 0x6d5ad220, 0x3207a: 0x6d76f020, 0x3207b: 0x6d76f220, - 0x3207c: 0x6d76f420, 0x3207d: 0x6d76f620, 0x3207e: 0x6d76f820, 0x3207f: 0x6da08a20, - // Block 0xc82, offset 0x32080 - 0x32080: 0x6dc2e820, 0x32081: 0x6dc2ea20, 0x32082: 0x6dc2ec20, 0x32083: 0x6dc2ee20, - 0x32084: 0x6dc2f020, 0x32085: 0x6dc2f220, 0x32086: 0x6dc2f420, 0x32087: 0x6df8c620, - 0x32088: 0x6dfbb620, 0x32089: 0x6e0c8820, 0x3208a: 0x6e0c8a20, 0x3208b: 0x6e1c2a20, - 0x3208c: 0x6e286a20, 0x3208d: 0x6e286c20, 0x3208e: 0x6e286e20, 0x3208f: 0x6e319820, - 0x32090: 0x6e442420, 0x32091: 0x6e462220, 0x32092: 0x6e467c20, 0x32093: 0x6c017620, - 0x32094: 0x6c017820, 0x32095: 0x6c017a20, 0x32096: 0x6c017c20, 0x32097: 0x6c039820, - 0x32098: 0x6c039a20, 0x32099: 0x6c071020, 0x3209a: 0x6c071220, 0x3209b: 0x6c071420, - 0x3209c: 0x6c071620, 0x3209d: 0x6c071820, 0x3209e: 0x6c0df620, 0x3209f: 0x6c0df820, - 0x320a0: 0x6c0dfa20, 0x320a1: 0x6c0dfc20, 0x320a2: 0x6c0dfe20, 0x320a3: 0x6c0e0020, - 0x320a4: 0x6c0e0220, 0x320a5: 0x6c0e0420, 0x320a6: 0x6c190620, 0x320a7: 0x6c190820, - 0x320a8: 0x6c190a20, 0x320a9: 0x6c2c2e20, 0x320aa: 0x6c2c3020, 0x320ab: 0x6c2c3220, - 0x320ac: 0x6c2c3420, 0x320ad: 0x6c2c3620, 0x320ae: 0x6c2ab020, 0x320af: 0x6c2c3820, - 0x320b0: 0x6c462c20, 0x320b1: 0x6c462e20, 0x320b2: 0x6c463020, 0x320b3: 0x6c464a20, - 0x320b4: 0x6c463220, 0x320b5: 0x6c463420, 0x320b6: 0x6c463620, 0x320b7: 0x6c463820, - 0x320b8: 0x6c463a20, 0x320b9: 0x6c677220, 0x320ba: 0x6c677420, 0x320bb: 0x6c677620, - 0x320bc: 0x6c677820, 0x320bd: 0x6c8dea20, 0x320be: 0x6c8dec20, 0x320bf: 0x6cba3020, - // Block 0xc83, offset 0x320c0 - 0x320c0: 0x6cba3220, 0x320c1: 0x6cba3420, 0x320c2: 0x6cba3620, 0x320c3: 0x6cba3820, - 0x320c4: 0x6cba3a20, 0x320c5: 0x6cba3c20, 0x320c6: 0x6ceb2220, 0x320c7: 0x6ceb2420, - 0x320c8: 0x6ceb2620, 0x320c9: 0x6ceb2820, 0x320ca: 0x6ceb2a20, 0x320cb: 0x6ceb2c20, - 0x320cc: 0x6ceb2e20, 0x320cd: 0x6d1b1820, 0x320ce: 0x6d1b1a20, 0x320cf: 0x6d1b1c20, - 0x320d0: 0x6d1b1e20, 0x320d1: 0x6d493e20, 0x320d2: 0x6d494020, 0x320d3: 0x6d76fa20, - 0x320d4: 0x6de07220, 0x320d5: 0x6da08e20, 0x320d6: 0x6da09020, 0x320d7: 0x6da09220, - 0x320d8: 0x6de07420, 0x320d9: 0x6de07620, 0x320da: 0x6c03aa20, 0x320db: 0x6c03ac20, - 0x320dc: 0x6c03ae20, 0x320dd: 0x6c03b020, 0x320de: 0x6c03b220, 0x320df: 0x6c03b420, - 0x320e0: 0x6c03b620, 0x320e1: 0x6c072020, 0x320e2: 0x6c072220, 0x320e3: 0x6c072420, - 0x320e4: 0x6c072620, 0x320e5: 0x6c072820, 0x320e6: 0x6c072a20, 0x320e7: 0x6c072c20, - 0x320e8: 0x6c072e20, 0x320e9: 0x6c0e0a20, 0x320ea: 0x6c0e0c20, 0x320eb: 0x6c0e0e20, - 0x320ec: 0x6c0e1020, 0x320ed: 0x6c0e1220, 0x320ee: 0x6c0e1420, 0x320ef: 0x6c0e1620, - 0x320f0: 0x6c0e1820, 0x320f1: 0x6c191020, 0x320f2: 0x6c191220, 0x320f3: 0x6c191420, - 0x320f4: 0x6c191620, 0x320f5: 0x6c191820, 0x320f6: 0x6c191a20, 0x320f7: 0x6c191c20, - 0x320f8: 0x6c191e20, 0x320f9: 0x6c2c4620, 0x320fa: 0x6c2c4820, 0x320fb: 0x6c2c4a20, - 0x320fc: 0x6c2c4c20, 0x320fd: 0x6c2c4e20, 0x320fe: 0x6c2c5020, 0x320ff: 0x6c464c20, - // Block 0xc84, offset 0x32100 - 0x32100: 0x6c464e20, 0x32101: 0x6c465020, 0x32102: 0x6c465220, 0x32103: 0x6c465420, - 0x32104: 0x6c465620, 0x32105: 0x6c465820, 0x32106: 0x6c465a20, 0x32107: 0x6c465c20, - 0x32108: 0x6c465e20, 0x32109: 0x6c45e220, 0x3210a: 0x6c678020, 0x3210b: 0x6c678220, - 0x3210c: 0x6c678420, 0x3210d: 0x6c678620, 0x3210e: 0x6c678820, 0x3210f: 0x6c678a20, - 0x32110: 0x6c678c20, 0x32111: 0x6c678e20, 0x32112: 0x6c679020, 0x32113: 0x6c679220, - 0x32114: 0x6c679420, 0x32115: 0x6c8df020, 0x32116: 0x6c8df220, 0x32117: 0x6c8df420, - 0x32118: 0x6c8df620, 0x32119: 0x6c8df820, 0x3211a: 0x6c8dfa20, 0x3211b: 0x6c8dfc20, - 0x3211c: 0x6c8dfe20, 0x3211d: 0x6c8e0020, 0x3211e: 0x6c8e0220, 0x3211f: 0x6c8e0420, - 0x32120: 0x6c8e0620, 0x32121: 0x6c8e0820, 0x32122: 0x6c8e0a20, 0x32123: 0x6c8e0c20, - 0x32124: 0x6c8e0e20, 0x32125: 0x6cba4420, 0x32126: 0x6cba4620, 0x32127: 0x6cba4820, - 0x32128: 0x6cba4a20, 0x32129: 0x6cba4c20, 0x3212a: 0x6cba4e20, 0x3212b: 0x6cba5020, - 0x3212c: 0x6cba5220, 0x3212d: 0x6cba5420, 0x3212e: 0x6cba5620, 0x3212f: 0x6ceb3620, - 0x32130: 0x6ceb3820, 0x32131: 0x6ceb3a20, 0x32132: 0x6ceb3c20, 0x32133: 0x6ceb3e20, - 0x32134: 0x6ceb4020, 0x32135: 0x6ceb4220, 0x32136: 0x6cee5e20, 0x32137: 0x6ceb4420, - 0x32138: 0x6ceb4620, 0x32139: 0x6ceb4820, 0x3213a: 0x6ceb4a20, 0x3213b: 0x6d19d820, - 0x3213c: 0x6d1b2220, 0x3213d: 0x6d1b2420, 0x3213e: 0x6d1b2620, 0x3213f: 0x6d1b2820, - // Block 0xc85, offset 0x32140 - 0x32140: 0x6d1b2a20, 0x32141: 0x6d1b2c20, 0x32142: 0x6d1b2e20, 0x32143: 0x6d494420, - 0x32144: 0x6d494620, 0x32145: 0x6d494820, 0x32146: 0x6d494a20, 0x32147: 0x6d76fe20, - 0x32148: 0x6d770020, 0x32149: 0x6d770220, 0x3214a: 0x6d770420, 0x3214b: 0x6d770620, - 0x3214c: 0x6d770820, 0x3214d: 0x6da09420, 0x3214e: 0x6da09620, 0x3214f: 0x6da09820, - 0x32150: 0x6dc2f820, 0x32151: 0x6de07a20, 0x32152: 0x6de07c20, 0x32153: 0x6e0c8c20, - 0x32154: 0x6e0c8e20, 0x32155: 0x6e1c2c20, 0x32156: 0x6e287020, 0x32157: 0x6e319a20, - 0x32158: 0x6e319c20, 0x32159: 0x6c03bc20, 0x3215a: 0x6c03be20, 0x3215b: 0x6c03c020, - 0x3215c: 0x6c03c220, 0x3215d: 0x6c03c420, 0x3215e: 0x6c03c620, 0x3215f: 0x6c076e20, - 0x32160: 0x6c077020, 0x32161: 0x6c077220, 0x32162: 0x6c077420, 0x32163: 0x6c077620, - 0x32164: 0x6c077820, 0x32165: 0x6c077a20, 0x32166: 0x6c077c20, 0x32167: 0x6c077e20, - 0x32168: 0x6c078020, 0x32169: 0x6c078220, 0x3216a: 0x6c078420, 0x3216b: 0x6c0e5420, - 0x3216c: 0x6c0e5620, 0x3216d: 0x6c0e5820, 0x3216e: 0x6c0e5a20, 0x3216f: 0x6c0e5c20, - 0x32170: 0x6c0e5e20, 0x32171: 0x6c0e6020, 0x32172: 0x6c0e6220, 0x32173: 0x6c0e6420, - 0x32174: 0x6c0e6620, 0x32175: 0x6c0e6820, 0x32176: 0x6c0e6a20, 0x32177: 0x6c0e6c20, - 0x32178: 0x6c0e6e20, 0x32179: 0x6c0e7020, 0x3217a: 0x6c0e7220, 0x3217b: 0x6c0e7420, - 0x3217c: 0x6c0e7620, 0x3217d: 0x6c0e7820, 0x3217e: 0x6c0e7a20, 0x3217f: 0x6c0e7c20, - // Block 0xc86, offset 0x32180 - 0x32180: 0x6c0e7e20, 0x32181: 0x6c0e8020, 0x32182: 0x6c0e8220, 0x32183: 0x6c0e8420, - 0x32184: 0x6c0e8620, 0x32185: 0x6c0e8820, 0x32186: 0x6c0e8a20, 0x32187: 0x6c0e8c20, - 0x32188: 0x6c0e8e20, 0x32189: 0x6c0e9020, 0x3218a: 0x6c0e9220, 0x3218b: 0x6c19ca20, - 0x3218c: 0x6c19cc20, 0x3218d: 0x6c19ce20, 0x3218e: 0x6c19d020, 0x3218f: 0x6c19d220, - 0x32190: 0x6c19d420, 0x32191: 0x6c19d620, 0x32192: 0x6c19d820, 0x32193: 0x6c19da20, - 0x32194: 0x6c19dc20, 0x32195: 0x6c19de20, 0x32196: 0x6c19e020, 0x32197: 0x6c19e220, - 0x32198: 0x6c19e420, 0x32199: 0x6c19e620, 0x3219a: 0x6c19e820, 0x3219b: 0x6c19ea20, - 0x3219c: 0x6c19ec20, 0x3219d: 0x6c19ee20, 0x3219e: 0x6c19f020, 0x3219f: 0x6c19f220, - 0x321a0: 0x6c19f420, 0x321a1: 0x6c19f620, 0x321a2: 0x6c19f820, 0x321a3: 0x6c19fa20, - 0x321a4: 0x6c19fc20, 0x321a5: 0x6c19fe20, 0x321a6: 0x6c1a0020, 0x321a7: 0x6c1a0220, - 0x321a8: 0x6c1a0420, 0x321a9: 0x6c1a0620, 0x321aa: 0x6c1a0820, 0x321ab: 0x6c1a0a20, - 0x321ac: 0x6c1a0c20, 0x321ad: 0x6c1a0e20, 0x321ae: 0x6c1a1020, 0x321af: 0x6c1a1220, - 0x321b0: 0x6c1a1420, 0x321b1: 0x6c1a1620, 0x321b2: 0x6c1a1820, 0x321b3: 0x6c1a1a20, - 0x321b4: 0x6c1a1c20, 0x321b5: 0x6c1a1e20, 0x321b6: 0x6c1a2020, 0x321b7: 0x6c1a2220, - 0x321b8: 0x6c1a2420, 0x321b9: 0x6c1a2620, 0x321ba: 0x6c1a2820, 0x321bb: 0x6c1a2a20, - 0x321bc: 0x6c1a2c20, 0x321bd: 0x6c1a2e20, 0x321be: 0x6c1a3020, 0x321bf: 0x6c1a3220, - // Block 0xc87, offset 0x321c0 - 0x321c0: 0x6c1a3420, 0x321c1: 0x6c1a3620, 0x321c2: 0x6c1a3820, 0x321c3: 0x6c1a3a20, - 0x321c4: 0x6c1a3c20, 0x321c5: 0x6c1a3e20, 0x321c6: 0x6c1a4020, 0x321c7: 0x6c1a4220, - 0x321c8: 0x6c2ce620, 0x321c9: 0x6c2ce820, 0x321ca: 0x6c2cea20, 0x321cb: 0x6c2cec20, - 0x321cc: 0x6c2cee20, 0x321cd: 0x6c2cf020, 0x321ce: 0x6c2cf220, 0x321cf: 0x6c2cf420, - 0x321d0: 0x6c2cf620, 0x321d1: 0x6c2cf820, 0x321d2: 0x6c2cfa20, 0x321d3: 0x6c2cfc20, - 0x321d4: 0x6c2cfe20, 0x321d5: 0x6c2d0020, 0x321d6: 0x6c2d0220, 0x321d7: 0x6c2d0420, - 0x321d8: 0x6c2d0620, 0x321d9: 0x6c2d0820, 0x321da: 0x6c2d0a20, 0x321db: 0x6c2d0c20, - 0x321dc: 0x6c2d0e20, 0x321dd: 0x6c2d1020, 0x321de: 0x6c2d1220, 0x321df: 0x6c2d1420, - 0x321e0: 0x6c2d1620, 0x321e1: 0x6c2d1820, 0x321e2: 0x6c2d1a20, 0x321e3: 0x6c2d1c20, - 0x321e4: 0x6c2d1e20, 0x321e5: 0x6c2d2020, 0x321e6: 0x6c2d2220, 0x321e7: 0x6c2d2420, - 0x321e8: 0x6c2d2620, 0x321e9: 0x6c2d2820, 0x321ea: 0x6c2d2a20, 0x321eb: 0x6c2d2c20, - 0x321ec: 0x6c2d2e20, 0x321ed: 0x6c2d3020, 0x321ee: 0x6c2d3220, 0x321ef: 0x6c2d3420, - 0x321f0: 0x6c2d3620, 0x321f1: 0x6c2d3820, 0x321f2: 0x6c2d3a20, 0x321f3: 0x6c2d3c20, - 0x321f4: 0x6c2d3e20, 0x321f5: 0x6c2d4020, 0x321f6: 0x6c2d4220, 0x321f7: 0x6c2d4420, - 0x321f8: 0x6c2d4620, 0x321f9: 0x6c2d4820, 0x321fa: 0x6c2d4a20, 0x321fb: 0x6c2d4c20, - 0x321fc: 0x6c2d4e20, 0x321fd: 0x6c2d5020, 0x321fe: 0x6c2d5220, 0x321ff: 0x6c2d5420, - // Block 0xc88, offset 0x32200 - 0x32200: 0x6c2d5620, 0x32201: 0x6c2d5820, 0x32202: 0x6c2d5a20, 0x32203: 0x6c2d5c20, - 0x32204: 0x6c2d5e20, 0x32205: 0x6c2d6020, 0x32206: 0x6c2d6220, 0x32207: 0x6c2d6420, - 0x32208: 0x6c2d6620, 0x32209: 0x6c2d6820, 0x3220a: 0x6c2d6a20, 0x3220b: 0x6c2d6c20, - 0x3220c: 0x6c2d6e20, 0x3220d: 0x6c2d7020, 0x3220e: 0x6c2d7220, 0x3220f: 0x6c2d7420, - 0x32210: 0x6c470e20, 0x32211: 0x6c471020, 0x32212: 0x6c471220, 0x32213: 0x6c471420, - 0x32214: 0x6c471620, 0x32215: 0x6c471820, 0x32216: 0x6c471a20, 0x32217: 0x6c471c20, - 0x32218: 0x6c471e20, 0x32219: 0x6c472020, 0x3221a: 0x6c472220, 0x3221b: 0x6c472420, - 0x3221c: 0x6c472620, 0x3221d: 0x6c472820, 0x3221e: 0x6c472a20, 0x3221f: 0x6c472c20, - 0x32220: 0x6c472e20, 0x32221: 0x6c473020, 0x32222: 0x6c473220, 0x32223: 0x6c473420, - 0x32224: 0x6c473620, 0x32225: 0x6c473820, 0x32226: 0x6c473a20, 0x32227: 0x6c473c20, - 0x32228: 0x6c473e20, 0x32229: 0x6c474020, 0x3222a: 0x6c474220, 0x3222b: 0x6c474420, - 0x3222c: 0x6c474620, 0x3222d: 0x6c474820, 0x3222e: 0x6c474a20, 0x3222f: 0x6c474c20, - 0x32230: 0x6c474e20, 0x32231: 0x6c475020, 0x32232: 0x6c475220, 0x32233: 0x6c475420, - 0x32234: 0x6c475620, 0x32235: 0x6c475820, 0x32236: 0x6c475a20, 0x32237: 0x6c475c20, - 0x32238: 0x6c475e20, 0x32239: 0x6c476020, 0x3223a: 0x6c476220, 0x3223b: 0x6c476420, - 0x3223c: 0x6c476620, 0x3223d: 0x6c476820, 0x3223e: 0x6c476a20, 0x3223f: 0x6c476c20, - // Block 0xc89, offset 0x32240 - 0x32240: 0x6c476e20, 0x32241: 0x6c477020, 0x32242: 0x6c477220, 0x32243: 0x6c477420, - 0x32244: 0x6c477620, 0x32245: 0x6c477820, 0x32246: 0x6c477a20, 0x32247: 0x6c477c20, - 0x32248: 0x6c477e20, 0x32249: 0x6c478020, 0x3224a: 0x6c478220, 0x3224b: 0x6c478420, - 0x3224c: 0x6c478620, 0x3224d: 0x6c478820, 0x3224e: 0x6c478a20, 0x3224f: 0x6c478c20, - 0x32250: 0x6c478e20, 0x32251: 0x6c479020, 0x32252: 0x6c479220, 0x32253: 0x6c479420, - 0x32254: 0x6c479620, 0x32255: 0x6c479820, 0x32256: 0x6c479a20, 0x32257: 0x6c479c20, - 0x32258: 0x6c479e20, 0x32259: 0x6c47a020, 0x3225a: 0x6c47a220, 0x3225b: 0x6c47a420, - 0x3225c: 0x6c47a620, 0x3225d: 0x6c47a820, 0x3225e: 0x6c47aa20, 0x3225f: 0x6c47ac20, - 0x32260: 0x6c47ae20, 0x32261: 0x6c47b020, 0x32262: 0x6c47b220, 0x32263: 0x6c47b420, - 0x32264: 0x6c47b620, 0x32265: 0x6c47b820, 0x32266: 0x6c47ba20, 0x32267: 0x6c47bc20, - 0x32268: 0x6c47be20, 0x32269: 0x6c47c020, 0x3226a: 0x6c47c220, 0x3226b: 0x6c47c420, - 0x3226c: 0x6c684820, 0x3226d: 0x6c684a20, 0x3226e: 0x6c684c20, 0x3226f: 0x6c684e20, - 0x32270: 0x6c685020, 0x32271: 0x6c685220, 0x32272: 0x6c685420, 0x32273: 0x6c685620, - 0x32274: 0x6c685820, 0x32275: 0x6c685a20, 0x32276: 0x6c685c20, 0x32277: 0x6c685e20, - 0x32278: 0x6c686020, 0x32279: 0x6c686220, 0x3227a: 0x6c686420, 0x3227b: 0x6c686620, - 0x3227c: 0x6c686820, 0x3227d: 0x6c686a20, 0x3227e: 0x6c686c20, 0x3227f: 0x6c686e20, - // Block 0xc8a, offset 0x32280 - 0x32280: 0x6c687020, 0x32281: 0x6c687220, 0x32282: 0x6c687420, 0x32283: 0x6c687620, - 0x32284: 0x6c687820, 0x32285: 0x6c687a20, 0x32286: 0x6c687c20, 0x32287: 0x6c687e20, - 0x32288: 0x6c688020, 0x32289: 0x6c688220, 0x3228a: 0x6c688420, 0x3228b: 0x6c688620, - 0x3228c: 0x6c688820, 0x3228d: 0x6c688a20, 0x3228e: 0x6c688c20, 0x3228f: 0x6c688e20, - 0x32290: 0x6c689020, 0x32291: 0x6c689220, 0x32292: 0x6c689420, 0x32293: 0x6c689620, - 0x32294: 0x6c689820, 0x32295: 0x6c689a20, 0x32296: 0x6c689c20, 0x32297: 0x6c689e20, - 0x32298: 0x6c68a020, 0x32299: 0x6c68a220, 0x3229a: 0x6c68a420, 0x3229b: 0x6c68a620, - 0x3229c: 0x6c68a820, 0x3229d: 0x6c68aa20, 0x3229e: 0x6c68ac20, 0x3229f: 0x6c68ae20, - 0x322a0: 0x6c68b020, 0x322a1: 0x6c68b220, 0x322a2: 0x6c68b420, 0x322a3: 0x6c68b620, - 0x322a4: 0x6c68b820, 0x322a5: 0x6c8ede20, 0x322a6: 0x6c68ba20, 0x322a7: 0x6c68bc20, - 0x322a8: 0x6c68be20, 0x322a9: 0x6c68c020, 0x322aa: 0x6c68c220, 0x322ab: 0x6c7ab620, - 0x322ac: 0x6c68c420, 0x322ad: 0x6c68c620, 0x322ae: 0x6c68c820, 0x322af: 0x6c68ca20, - 0x322b0: 0x6c68cc20, 0x322b1: 0x6c68ce20, 0x322b2: 0x6c68d020, 0x322b3: 0x6c68d220, - 0x322b4: 0x6c68d420, 0x322b5: 0x6c68d620, 0x322b6: 0x6c68d820, 0x322b7: 0x6c68da20, - 0x322b8: 0x6c68dc20, 0x322b9: 0x6c68de20, 0x322ba: 0x6c68e020, 0x322bb: 0x6c68e220, - 0x322bc: 0x6c68e420, 0x322bd: 0x6c68e620, 0x322be: 0x6c68e820, 0x322bf: 0x6c68ea20, - // Block 0xc8b, offset 0x322c0 - 0x322c0: 0x6c68ec20, 0x322c1: 0x6c68ee20, 0x322c2: 0x6c68f020, 0x322c3: 0x6c68f220, - 0x322c4: 0x6c68f420, 0x322c5: 0x6c68f620, 0x322c6: 0x6c68f820, 0x322c7: 0x6c68fa20, - 0x322c8: 0x6c68fc20, 0x322c9: 0x6c68fe20, 0x322ca: 0x6c690020, 0x322cb: 0x6c690220, - 0x322cc: 0x6c690420, 0x322cd: 0x6c690620, 0x322ce: 0x6c690820, 0x322cf: 0x6c690a20, - 0x322d0: 0x6c690c20, 0x322d1: 0x6c690e20, 0x322d2: 0x6c691020, 0x322d3: 0x6c691220, - 0x322d4: 0x6c691420, 0x322d5: 0x6c691620, 0x322d6: 0x6c691820, 0x322d7: 0x6c691a20, - 0x322d8: 0x6c691c20, 0x322d9: 0x6c691e20, 0x322da: 0x6c692020, 0x322db: 0x6c692220, - 0x322dc: 0x6c692420, 0x322dd: 0x6c692620, 0x322de: 0x6c692820, 0x322df: 0x6c692a20, - 0x322e0: 0x6c692c20, 0x322e1: 0x6c692e20, 0x322e2: 0x6c693020, 0x322e3: 0x6c693220, - 0x322e4: 0x6c693420, 0x322e5: 0x6c693620, 0x322e6: 0x6c7a1a20, 0x322e7: 0x6c8ee020, - 0x322e8: 0x6c8ee220, 0x322e9: 0x6c8ee420, 0x322ea: 0x6c8ee620, 0x322eb: 0x6c8ee820, - 0x322ec: 0x6c8eea20, 0x322ed: 0x6c8eec20, 0x322ee: 0x6c8eee20, 0x322ef: 0x6c8ef020, - 0x322f0: 0x6c8ef220, 0x322f1: 0x6c8ef420, 0x322f2: 0x6c8ef620, 0x322f3: 0x6c8ef820, - 0x322f4: 0x6c8efa20, 0x322f5: 0x6c8efc20, 0x322f6: 0x6c8efe20, 0x322f7: 0x6c8f0020, - 0x322f8: 0x6c8f0220, 0x322f9: 0x6c8f0420, 0x322fa: 0x6c8f0620, 0x322fb: 0x6c8f0820, - 0x322fc: 0x6c8f0a20, 0x322fd: 0x6c8f0c20, 0x322fe: 0x6c8f0e20, 0x322ff: 0x6c8f1020, - // Block 0xc8c, offset 0x32300 - 0x32300: 0x6c8f1220, 0x32301: 0x6c8f1420, 0x32302: 0x6c8f1620, 0x32303: 0x6c8f1820, - 0x32304: 0x6c8f1a20, 0x32305: 0x6c8f1c20, 0x32306: 0x6c8f1e20, 0x32307: 0x6c8f2020, - 0x32308: 0x6c8f2220, 0x32309: 0x6c8f2420, 0x3230a: 0x6c8f2620, 0x3230b: 0x6c8f2820, - 0x3230c: 0x6c8f2a20, 0x3230d: 0x6c8f2c20, 0x3230e: 0x6c8f2e20, 0x3230f: 0x6c8f3020, - 0x32310: 0x6c8f3220, 0x32311: 0x6c8f3420, 0x32312: 0x6c8f3620, 0x32313: 0x6c8f3820, - 0x32314: 0x6c8f3a20, 0x32315: 0x6c8f3c20, 0x32316: 0x6c8f3e20, 0x32317: 0x6c8f4020, - 0x32318: 0x6c8f4220, 0x32319: 0x6c8f4420, 0x3231a: 0x6c8f4620, 0x3231b: 0x6c8f4820, - 0x3231c: 0x6c8f4a20, 0x3231d: 0x6c8f4c20, 0x3231e: 0x6c8f4e20, 0x3231f: 0x6c8f5020, - 0x32320: 0x6c8f5220, 0x32321: 0x6c8f5420, 0x32322: 0x6c8f5620, 0x32323: 0x6c8f5820, - 0x32324: 0x6c8f5a20, 0x32325: 0x6c8f5c20, 0x32326: 0x6c8f5e20, 0x32327: 0x6c8f6020, - 0x32328: 0x6c8f6220, 0x32329: 0x6c8f6420, 0x3232a: 0x6c8f6620, 0x3232b: 0x6c8f6820, - 0x3232c: 0x6c8f6a20, 0x3232d: 0x6c8f6c20, 0x3232e: 0x6c8f6e20, 0x3232f: 0x6c8f7020, - 0x32330: 0x6c8f7220, 0x32331: 0x6c8f7420, 0x32332: 0x6c8f7620, 0x32333: 0x6c8f7820, - 0x32334: 0x6c8f7a20, 0x32335: 0x6c8f7c20, 0x32336: 0x6c8f7e20, 0x32337: 0x6c8f8020, - 0x32338: 0x6c8f8220, 0x32339: 0x6c8f8420, 0x3233a: 0x6c8f8620, 0x3233b: 0x6c8f8820, - 0x3233c: 0x6c8f8a20, 0x3233d: 0x6c8f8c20, 0x3233e: 0x6c8f8e20, 0x3233f: 0x6c8f9020, - // Block 0xc8d, offset 0x32340 - 0x32340: 0x6c8f9220, 0x32341: 0x6c8f9420, 0x32342: 0x6c8f9620, 0x32343: 0x6c8f9820, - 0x32344: 0x6c8f9a20, 0x32345: 0x6c8f9c20, 0x32346: 0x6c8f9e20, 0x32347: 0x6c8fa020, - 0x32348: 0x6c8fa220, 0x32349: 0x6c8fa420, 0x3234a: 0x6c8fa620, 0x3234b: 0x6c8fa820, - 0x3234c: 0x6c8faa20, 0x3234d: 0x6c8fac20, 0x3234e: 0x6c8fae20, 0x3234f: 0x6c8fb020, - 0x32350: 0x6c8fb220, 0x32351: 0x6c8fb420, 0x32352: 0x6c8fb620, 0x32353: 0x6c8fb820, - 0x32354: 0x6c8fba20, 0x32355: 0x6c8fbc20, 0x32356: 0x6c8fbe20, 0x32357: 0x6c8fc020, - 0x32358: 0x6c8fc220, 0x32359: 0x6c8fc420, 0x3235a: 0x6c8fc620, 0x3235b: 0x6c8fc820, - 0x3235c: 0x6c8fca20, 0x3235d: 0x6c8fcc20, 0x3235e: 0x6c8fce20, 0x3235f: 0x6c8fd020, - 0x32360: 0x6c8fd220, 0x32361: 0x6c8fd420, 0x32362: 0x6c8fd620, 0x32363: 0x6c8fd820, - 0x32364: 0x6c8fda20, 0x32365: 0x6c8fdc20, 0x32366: 0x6c8fde20, 0x32367: 0x6c8fe020, - 0x32368: 0x6c8fe220, 0x32369: 0x6c8fe420, 0x3236a: 0x6c8fe620, 0x3236b: 0x6c8fe820, - 0x3236c: 0x6c8fea20, 0x3236d: 0x6c8fec20, 0x3236e: 0x6c8fee20, 0x3236f: 0x6c8ff020, - 0x32370: 0x6c8ff220, 0x32371: 0x6c8ff420, 0x32372: 0x6c8ff620, 0x32373: 0x6c8ff820, - 0x32374: 0x6c8ffa20, 0x32375: 0x6c8ffc20, 0x32376: 0x6c8ffe20, 0x32377: 0x6cbb1e20, - 0x32378: 0x6cbb2020, 0x32379: 0x6cbb2220, 0x3237a: 0x6cbb2420, 0x3237b: 0x6cbb2620, - 0x3237c: 0x6cbb2820, 0x3237d: 0x6cbb2a20, 0x3237e: 0x6cbb2c20, 0x3237f: 0x6cbb2e20, - // Block 0xc8e, offset 0x32380 - 0x32380: 0x6cbb3020, 0x32381: 0x6cbb3220, 0x32382: 0x6cbb3420, 0x32383: 0x6cbb3620, - 0x32384: 0x6cbb3820, 0x32385: 0x6cbb3a20, 0x32386: 0x6cbb3c20, 0x32387: 0x6cbb3e20, - 0x32388: 0x6cbb4020, 0x32389: 0x6cbb4220, 0x3238a: 0x6cbb4420, 0x3238b: 0x6cbb4620, - 0x3238c: 0x6cbb4820, 0x3238d: 0x6cbb4a20, 0x3238e: 0x6cbb4c20, 0x3238f: 0x6cbb4e20, - 0x32390: 0x6cbb5020, 0x32391: 0x6cbb5220, 0x32392: 0x6cbb5420, 0x32393: 0x6cbb5620, - 0x32394: 0x6cbb5820, 0x32395: 0x6cbb5a20, 0x32396: 0x6cbb5c20, 0x32397: 0x6cbb5e20, - 0x32398: 0x6cbb6020, 0x32399: 0x6cbb6220, 0x3239a: 0x6cbb6420, 0x3239b: 0x6cbb6620, - 0x3239c: 0x6cbb6820, 0x3239d: 0x6cbb6a20, 0x3239e: 0x6cbb6c20, 0x3239f: 0x6cbb6e20, - 0x323a0: 0x6cbb7020, 0x323a1: 0x6cbb7220, 0x323a2: 0x6cebdc20, 0x323a3: 0x6cbb7420, - 0x323a4: 0x6cbb7620, 0x323a5: 0x6cbb7820, 0x323a6: 0x6cbb7a20, 0x323a7: 0x6cbb7c20, - 0x323a8: 0x6cbb7e20, 0x323a9: 0x6cbb8020, 0x323aa: 0x6cbb8220, 0x323ab: 0x6cbb8420, - 0x323ac: 0x6cbb8620, 0x323ad: 0x6cbb8820, 0x323ae: 0x6cbb8a20, 0x323af: 0x6cbb8c20, - 0x323b0: 0x6cbb8e20, 0x323b1: 0x6cbb9020, 0x323b2: 0x6cbb9220, 0x323b3: 0x6cbb9420, - 0x323b4: 0x6cbb9620, 0x323b5: 0x6cbb9820, 0x323b6: 0x6cbb9a20, 0x323b7: 0x6cbb9c20, - 0x323b8: 0x6cbb9e20, 0x323b9: 0x6cbba020, 0x323ba: 0x6cbba220, 0x323bb: 0x6cbba420, - 0x323bc: 0x6cbba620, 0x323bd: 0x6cbba820, 0x323be: 0x6cbbaa20, 0x323bf: 0x6cbbac20, - // Block 0xc8f, offset 0x323c0 - 0x323c0: 0x6cbbae20, 0x323c1: 0x6cbbb020, 0x323c2: 0x6cbbb220, 0x323c3: 0x6cbbb420, - 0x323c4: 0x6cbbb620, 0x323c5: 0x6cbbb820, 0x323c6: 0x6cbbba20, 0x323c7: 0x6cbbbc20, - 0x323c8: 0x6cbbbe20, 0x323c9: 0x6cbbc020, 0x323ca: 0x6cbbc220, 0x323cb: 0x6cbbc420, - 0x323cc: 0x6cbbc620, 0x323cd: 0x6cbbc820, 0x323ce: 0x6cbbca20, 0x323cf: 0x6cbbcc20, - 0x323d0: 0x6cbbce20, 0x323d1: 0x6cbbd020, 0x323d2: 0x6cbbd220, 0x323d3: 0x6cbbd420, - 0x323d4: 0x6cbbd620, 0x323d5: 0x6cbbd820, 0x323d6: 0x6cbbda20, 0x323d7: 0x6cbbdc20, - 0x323d8: 0x6cbbde20, 0x323d9: 0x6cbbe020, 0x323da: 0x6cbbe220, 0x323db: 0x6cbbe420, - 0x323dc: 0x6cbbe620, 0x323dd: 0x6cbbe820, 0x323de: 0x6cbbea20, 0x323df: 0x6cbbec20, - 0x323e0: 0x6cbbee20, 0x323e1: 0x6cbbf020, 0x323e2: 0x6cbbf220, 0x323e3: 0x6cbbf420, - 0x323e4: 0x6cbbf620, 0x323e5: 0x6cbbf820, 0x323e6: 0x6cbbfa20, 0x323e7: 0x6cbbfc20, - 0x323e8: 0x6cbbfe20, 0x323e9: 0x6cbc0020, 0x323ea: 0x6cbc0220, 0x323eb: 0x6cbc0420, - 0x323ec: 0x6cbc0620, 0x323ed: 0x6cbc0820, 0x323ee: 0x6cbc0a20, 0x323ef: 0x6cbc0c20, - 0x323f0: 0x6cbc0e20, 0x323f1: 0x6cbc1020, 0x323f2: 0x6cbc1220, 0x323f3: 0x6cbc1420, - 0x323f4: 0x6cbc1620, 0x323f5: 0x6cbc1820, 0x323f6: 0x6cebde20, 0x323f7: 0x6cebe020, - 0x323f8: 0x6cebe220, 0x323f9: 0x6cebe420, 0x323fa: 0x6cebe620, 0x323fb: 0x6cbc1a20, - 0x323fc: 0x6cbc1c20, 0x323fd: 0x6cbc1e20, 0x323fe: 0x6cbc2020, 0x323ff: 0x6cebe820, - // Block 0xc90, offset 0x32400 - 0x32400: 0x6cebea20, 0x32401: 0x6cebec20, 0x32402: 0x6cebee20, 0x32403: 0x6cebf020, - 0x32404: 0x6cebf220, 0x32405: 0x6cebf420, 0x32406: 0x6cebf620, 0x32407: 0x6cebf820, - 0x32408: 0x6cebfa20, 0x32409: 0x6cebfc20, 0x3240a: 0x6cebfe20, 0x3240b: 0x6cec0020, - 0x3240c: 0x6cec0220, 0x3240d: 0x6cec0420, 0x3240e: 0x6cec0620, 0x3240f: 0x6cec0820, - 0x32410: 0x6cec0a20, 0x32411: 0x6cec0c20, 0x32412: 0x6cec0e20, 0x32413: 0x6cec1020, - 0x32414: 0x6cec1220, 0x32415: 0x6cec1420, 0x32416: 0x6cec1620, 0x32417: 0x6cec1820, - 0x32418: 0x6cec1a20, 0x32419: 0x6cec1c20, 0x3241a: 0x6cec1e20, 0x3241b: 0x6cec2020, - 0x3241c: 0x6cec2220, 0x3241d: 0x6cec2420, 0x3241e: 0x6cec2620, 0x3241f: 0x6cec2820, - 0x32420: 0x6cec2a20, 0x32421: 0x6cec2c20, 0x32422: 0x6cec2e20, 0x32423: 0x6cec3020, - 0x32424: 0x6cec3220, 0x32425: 0x6cec3420, 0x32426: 0x6cec3620, 0x32427: 0x6cec3820, - 0x32428: 0x6cec3a20, 0x32429: 0x6cec3c20, 0x3242a: 0x6cec3e20, 0x3242b: 0x6cec4020, - 0x3242c: 0x6cec4220, 0x3242d: 0x6cec4420, 0x3242e: 0x6cec4620, 0x3242f: 0x6cec4820, - 0x32430: 0x6d49ce20, 0x32431: 0x6d49d020, 0x32432: 0x6d49d220, 0x32433: 0x6cec4a20, - 0x32434: 0x6cec4c20, 0x32435: 0x6cec4e20, 0x32436: 0x6cec5020, 0x32437: 0x6cec5220, - 0x32438: 0x6cec5420, 0x32439: 0x6cec5620, 0x3243a: 0x6cec5820, 0x3243b: 0x6cec5a20, - 0x3243c: 0x6cec5c20, 0x3243d: 0x6cec5e20, 0x3243e: 0x6cec6020, 0x3243f: 0x6cec6220, - // Block 0xc91, offset 0x32440 - 0x32440: 0x6cec6420, 0x32441: 0x6cec6620, 0x32442: 0x6cec6820, 0x32443: 0x6cec6a20, - 0x32444: 0x6cec6c20, 0x32445: 0x6cec6e20, 0x32446: 0x6cec7020, 0x32447: 0x6cec7220, - 0x32448: 0x6cec7420, 0x32449: 0x6cec7620, 0x3244a: 0x6cec7820, 0x3244b: 0x6cec7a20, - 0x3244c: 0x6cec7c20, 0x3244d: 0x6cec7e20, 0x3244e: 0x6cec8020, 0x3244f: 0x6cec8220, - 0x32450: 0x6cec8420, 0x32451: 0x6cec8620, 0x32452: 0x6cec8820, 0x32453: 0x6cec8a20, - 0x32454: 0x6cec8c20, 0x32455: 0x6cec8e20, 0x32456: 0x6cec9020, 0x32457: 0x6cec9220, - 0x32458: 0x6cec9420, 0x32459: 0x6cec9620, 0x3245a: 0x6cec9820, 0x3245b: 0x6cec9a20, - 0x3245c: 0x6cec9c20, 0x3245d: 0x6cec9e20, 0x3245e: 0x6ceca020, 0x3245f: 0x6ceca220, - 0x32460: 0x6ceca420, 0x32461: 0x6ceca620, 0x32462: 0x6ceca820, 0x32463: 0x6cecaa20, - 0x32464: 0x6cecac20, 0x32465: 0x6cecae20, 0x32466: 0x6cecb020, 0x32467: 0x6cecb220, - 0x32468: 0x6cecb420, 0x32469: 0x6cecb620, 0x3246a: 0x6cecb820, 0x3246b: 0x6cecba20, - 0x3246c: 0x6cecbc20, 0x3246d: 0x6cecbe20, 0x3246e: 0x6cecc020, 0x3246f: 0x6cecc220, - 0x32470: 0x6cecc420, 0x32471: 0x6cecc620, 0x32472: 0x6cecc820, 0x32473: 0x6cecca20, - 0x32474: 0x6ceccc20, 0x32475: 0x6cecce20, 0x32476: 0x6cecd020, 0x32477: 0x6cecd220, - 0x32478: 0x6cecd420, 0x32479: 0x6cecd620, 0x3247a: 0x6cecd820, 0x3247b: 0x6cecda20, - 0x3247c: 0x6cecdc20, 0x3247d: 0x6cecde20, 0x3247e: 0x6cece020, 0x3247f: 0x6cece220, - // Block 0xc92, offset 0x32480 - 0x32480: 0x6cece420, 0x32481: 0x6cece620, 0x32482: 0x6cece820, 0x32483: 0x6cecea20, - 0x32484: 0x6cecec20, 0x32485: 0x6cecee20, 0x32486: 0x6cecf020, 0x32487: 0x6cecf220, - 0x32488: 0x6cecf420, 0x32489: 0x6cecf620, 0x3248a: 0x6cecf820, 0x3248b: 0x6cecfa20, - 0x3248c: 0x6cecfc20, 0x3248d: 0x6cecfe20, 0x3248e: 0x6ced0020, 0x3248f: 0x6ced0220, - 0x32490: 0x6ced0420, 0x32491: 0x6ced0620, 0x32492: 0x6ced0820, 0x32493: 0x6ced0a20, - 0x32494: 0x6d1bb620, 0x32495: 0x6d1bb820, 0x32496: 0x6d1bba20, 0x32497: 0x6d1bbc20, - 0x32498: 0x6d1bbe20, 0x32499: 0x6d1bc020, 0x3249a: 0x6d1bc220, 0x3249b: 0x6d1bc420, - 0x3249c: 0x6d1bc620, 0x3249d: 0x6d1bc820, 0x3249e: 0x6d1bca20, 0x3249f: 0x6d1bcc20, - 0x324a0: 0x6d1bce20, 0x324a1: 0x6d1bd020, 0x324a2: 0x6d1bd220, 0x324a3: 0x6d1bd420, - 0x324a4: 0x6d1bd620, 0x324a5: 0x6d1bd820, 0x324a6: 0x6d1bda20, 0x324a7: 0x6d1bdc20, - 0x324a8: 0x6d1bde20, 0x324a9: 0x6d1be020, 0x324aa: 0x6d1be220, 0x324ab: 0x6d1be420, - 0x324ac: 0x6d1be620, 0x324ad: 0x6d1be820, 0x324ae: 0x6d1bea20, 0x324af: 0x6d1bec20, - 0x324b0: 0x6d1bee20, 0x324b1: 0x6d1bf020, 0x324b2: 0x6d1bf220, 0x324b3: 0x6d1bf420, - 0x324b4: 0x6d1bf620, 0x324b5: 0x6d1bf820, 0x324b6: 0x6d1bfa20, 0x324b7: 0x6d1bfc20, - 0x324b8: 0x6d1bfe20, 0x324b9: 0x6d1c0020, 0x324ba: 0x6d1c0220, 0x324bb: 0x6d1c0420, - 0x324bc: 0x6d1c0620, 0x324bd: 0x6d1c0820, 0x324be: 0x6d1c0a20, 0x324bf: 0x6d1c0c20, - // Block 0xc93, offset 0x324c0 - 0x324c0: 0x6d1c0e20, 0x324c1: 0x6d1c1020, 0x324c2: 0x6d1c1220, 0x324c3: 0x6d1c1420, - 0x324c4: 0x6d1c1620, 0x324c5: 0x6d1c1820, 0x324c6: 0x6d1c1a20, 0x324c7: 0x6d1c1c20, - 0x324c8: 0x6d1c1e20, 0x324c9: 0x6d1c2020, 0x324ca: 0x6d1c2220, 0x324cb: 0x6d1c2420, - 0x324cc: 0x6d1c2620, 0x324cd: 0x6d1c2820, 0x324ce: 0x6d1c2a20, 0x324cf: 0x6d1c2c20, - 0x324d0: 0x6d1c2e20, 0x324d1: 0x6d1c3020, 0x324d2: 0x6d1c3220, 0x324d3: 0x6d1c3420, - 0x324d4: 0x6d1c3620, 0x324d5: 0x6d1c3820, 0x324d6: 0x6d1c3a20, 0x324d7: 0x6d1c3c20, - 0x324d8: 0x6d1c3e20, 0x324d9: 0x6d1c4020, 0x324da: 0x6d1c4220, 0x324db: 0x6d1c4420, - 0x324dc: 0x6d1c4620, 0x324dd: 0x6d1c4820, 0x324de: 0x6d1c4a20, 0x324df: 0x6d1c4c20, - 0x324e0: 0x6d1c4e20, 0x324e1: 0x6d1c5020, 0x324e2: 0x6d1c5220, 0x324e3: 0x6d1c5420, - 0x324e4: 0x6d1c5620, 0x324e5: 0x6d1c5820, 0x324e6: 0x6d1c5a20, 0x324e7: 0x6d1c5c20, - 0x324e8: 0x6d1c5e20, 0x324e9: 0x6d1c6020, 0x324ea: 0x6d1c6220, 0x324eb: 0x6d1c6420, - 0x324ec: 0x6d1c6620, 0x324ed: 0x6d1c6820, 0x324ee: 0x6d1c6a20, 0x324ef: 0x6d1c6c20, - 0x324f0: 0x6d1c6e20, 0x324f1: 0x6d1c7020, 0x324f2: 0x6d1c7220, 0x324f3: 0x6d1c7420, - 0x324f4: 0x6d1c7620, 0x324f5: 0x6d1c7820, 0x324f6: 0x6d1c7a20, 0x324f7: 0x6d1c7c20, - 0x324f8: 0x6d1c7e20, 0x324f9: 0x6d1c8020, 0x324fa: 0x6d1c8220, 0x324fb: 0x6d1c8420, - 0x324fc: 0x6d1c8620, 0x324fd: 0x6d1c8820, 0x324fe: 0x6d1c8a20, 0x324ff: 0x6d1c8c20, - // Block 0xc94, offset 0x32500 - 0x32500: 0x6d1c8e20, 0x32501: 0x6d1c9020, 0x32502: 0x6d1c9220, 0x32503: 0x6d1c9420, - 0x32504: 0x6d1c9620, 0x32505: 0x6d1c9820, 0x32506: 0x6d1c9a20, 0x32507: 0x6d1c9c20, - 0x32508: 0x6d1c9e20, 0x32509: 0x6d1ca020, 0x3250a: 0x6d1ca220, 0x3250b: 0x6d1ca420, - 0x3250c: 0x6d1ca620, 0x3250d: 0x6d1ca820, 0x3250e: 0x6d1caa20, 0x3250f: 0x6d1cac20, - 0x32510: 0x6d1cae20, 0x32511: 0x6d1cb020, 0x32512: 0x6d1cb220, 0x32513: 0x6d1cb420, - 0x32514: 0x6d1cb620, 0x32515: 0x6d1cb820, 0x32516: 0x6d1cba20, 0x32517: 0x6d1cbc20, - 0x32518: 0x6d1cbe20, 0x32519: 0x6d1cc020, 0x3251a: 0x6d1cc220, 0x3251b: 0x6d1cc420, - 0x3251c: 0x6d1cc620, 0x3251d: 0x6d1cc820, 0x3251e: 0x6d1cca20, 0x3251f: 0x6d1ccc20, - 0x32520: 0x6d1cce20, 0x32521: 0x6d49d420, 0x32522: 0x6d49d620, 0x32523: 0x6d49d820, - 0x32524: 0x6d49da20, 0x32525: 0x6d49dc20, 0x32526: 0x6d49de20, 0x32527: 0x6d49e020, - 0x32528: 0x6d49e220, 0x32529: 0x6d49e420, 0x3252a: 0x6d49e620, 0x3252b: 0x6d49e820, - 0x3252c: 0x6d49ea20, 0x3252d: 0x6d49ec20, 0x3252e: 0x6d49ee20, 0x3252f: 0x6d49f020, - 0x32530: 0x6d49f220, 0x32531: 0x6d49f420, 0x32532: 0x6d49f620, 0x32533: 0x6d49f820, - 0x32534: 0x6d49fa20, 0x32535: 0x6d49fc20, 0x32536: 0x6d49fe20, 0x32537: 0x6d4a0020, - 0x32538: 0x6d4a0220, 0x32539: 0x6d4a0420, 0x3253a: 0x6d4a0620, 0x3253b: 0x6d4a0820, - 0x3253c: 0x6d4a0a20, 0x3253d: 0x6d4a0c20, 0x3253e: 0x6d4a0e20, 0x3253f: 0x6d4a1020, - // Block 0xc95, offset 0x32540 - 0x32540: 0x6d4a1220, 0x32541: 0x6d4a1420, 0x32542: 0x6d4a1620, 0x32543: 0x6d4a1820, - 0x32544: 0x6d4a1a20, 0x32545: 0x6d4a1c20, 0x32546: 0x6d4a1e20, 0x32547: 0x6d4a2020, - 0x32548: 0x6d4a2220, 0x32549: 0x6d4a2420, 0x3254a: 0x6d4a2620, 0x3254b: 0x6d4a2820, - 0x3254c: 0x6d4a2a20, 0x3254d: 0x6d4a2c20, 0x3254e: 0x6d4a2e20, 0x3254f: 0x6d4a3020, - 0x32550: 0x6d4a3220, 0x32551: 0x6d4a3420, 0x32552: 0x6d4a3620, 0x32553: 0x6d4a3820, - 0x32554: 0x6d4a3a20, 0x32555: 0x6d4a3c20, 0x32556: 0x6d4a3e20, 0x32557: 0x6d4a4020, - 0x32558: 0x6d4a4220, 0x32559: 0x6d4a4420, 0x3255a: 0x6d4a4620, 0x3255b: 0x6d4a4820, - 0x3255c: 0x6d4a4a20, 0x3255d: 0x6d4a4c20, 0x3255e: 0x6d4a4e20, 0x3255f: 0x6d4a5020, - 0x32560: 0x6d4a5220, 0x32561: 0x6d4a5420, 0x32562: 0x6d4a5620, 0x32563: 0x6d4a5820, - 0x32564: 0x6d4a5a20, 0x32565: 0x6d4a5c20, 0x32566: 0x6d4a5e20, 0x32567: 0x6d311620, - 0x32568: 0x6d4a6020, 0x32569: 0x6d4a6220, 0x3256a: 0x6d4a6420, 0x3256b: 0x6d4a6620, - 0x3256c: 0x6d4a6820, 0x3256d: 0x6d4a6a20, 0x3256e: 0x6d4a6c20, 0x3256f: 0x6d4a6e20, - 0x32570: 0x6d4a7020, 0x32571: 0x6d4a7220, 0x32572: 0x6d4a7420, 0x32573: 0x6d4a7620, - 0x32574: 0x6d4a7820, 0x32575: 0x6d4a7a20, 0x32576: 0x6d4a7c20, 0x32577: 0x6d4a7e20, - 0x32578: 0x6d4a8020, 0x32579: 0x6d4a8220, 0x3257a: 0x6d4a8420, 0x3257b: 0x6d4a8620, - 0x3257c: 0x6d4a8820, 0x3257d: 0x6d4a8a20, 0x3257e: 0x6d4a8c20, 0x3257f: 0x6d4a8e20, - // Block 0xc96, offset 0x32580 - 0x32580: 0x6d4a9020, 0x32581: 0x6d4a9220, 0x32582: 0x6d4a9420, 0x32583: 0x6d4a9620, - 0x32584: 0x6d4a9820, 0x32585: 0x6d4a9a20, 0x32586: 0x6d4a9c20, 0x32587: 0x6d775e20, - 0x32588: 0x6d776020, 0x32589: 0x6d776220, 0x3258a: 0x6d776420, 0x3258b: 0x6d776620, - 0x3258c: 0x6d776820, 0x3258d: 0x6d776a20, 0x3258e: 0x6d776c20, 0x3258f: 0x6d776e20, - 0x32590: 0x6d777020, 0x32591: 0x6d777220, 0x32592: 0x6d777420, 0x32593: 0x6d777620, - 0x32594: 0x6d777820, 0x32595: 0x6d777a20, 0x32596: 0x6d777c20, 0x32597: 0x6d777e20, - 0x32598: 0x6d778020, 0x32599: 0x6d778220, 0x3259a: 0x6d778420, 0x3259b: 0x6d778620, - 0x3259c: 0x6d778820, 0x3259d: 0x6d778a20, 0x3259e: 0x6d778c20, 0x3259f: 0x6d778e20, - 0x325a0: 0x6d779020, 0x325a1: 0x6d779220, 0x325a2: 0x6d779420, 0x325a3: 0x6d779620, - 0x325a4: 0x6d779820, 0x325a5: 0x6d779a20, 0x325a6: 0x6d779c20, 0x325a7: 0x6d779e20, - 0x325a8: 0x6d77a020, 0x325a9: 0x6d77a220, 0x325aa: 0x6d77a420, 0x325ab: 0x6d77a620, - 0x325ac: 0x6d77a820, 0x325ad: 0x6d77aa20, 0x325ae: 0x6d77ac20, 0x325af: 0x6d77ae20, - 0x325b0: 0x6d77b020, 0x325b1: 0x6d77b220, 0x325b2: 0x6d77b420, 0x325b3: 0x6d77b620, - 0x325b4: 0x6d77b820, 0x325b5: 0x6d77ba20, 0x325b6: 0x6d77bc20, 0x325b7: 0x6d77be20, - 0x325b8: 0x6d77c020, 0x325b9: 0x6d77c220, 0x325ba: 0x6d77c420, 0x325bb: 0x6d77c620, - 0x325bc: 0x6d77c820, 0x325bd: 0x6d77ca20, 0x325be: 0x6d77cc20, 0x325bf: 0x6d77ce20, - // Block 0xc97, offset 0x325c0 - 0x325c0: 0x6d77d020, 0x325c1: 0x6d77d220, 0x325c2: 0x6d77d420, 0x325c3: 0x6d77d620, - 0x325c4: 0x6d77d820, 0x325c5: 0x6d77da20, 0x325c6: 0x6d77dc20, 0x325c7: 0x6d77de20, - 0x325c8: 0x6d77e020, 0x325c9: 0x6d77e220, 0x325ca: 0x6d77e420, 0x325cb: 0x6d77e620, - 0x325cc: 0x6d77e820, 0x325cd: 0x6d77ea20, 0x325ce: 0x6d77ec20, 0x325cf: 0x6d77ee20, - 0x325d0: 0x6d77f020, 0x325d1: 0x6d77f220, 0x325d2: 0x6d77f420, 0x325d3: 0x6d77f620, - 0x325d4: 0x6d4a9e20, 0x325d5: 0x6d77f820, 0x325d6: 0x6d77fa20, 0x325d7: 0x6d77fc20, - 0x325d8: 0x6d77fe20, 0x325d9: 0x6d780020, 0x325da: 0x6d780220, 0x325db: 0x6d780420, - 0x325dc: 0x6d780620, 0x325dd: 0x6d780820, 0x325de: 0x6d780a20, 0x325df: 0x6d780c20, - 0x325e0: 0x6d780e20, 0x325e1: 0x6d781020, 0x325e2: 0x6d781220, 0x325e3: 0x6d781420, - 0x325e4: 0x6d781620, 0x325e5: 0x6d781820, 0x325e6: 0x6d4aa020, 0x325e7: 0x6d781a20, - 0x325e8: 0x6d781c20, 0x325e9: 0x6d781e20, 0x325ea: 0x6d782020, 0x325eb: 0x6d782220, - 0x325ec: 0x6d782420, 0x325ed: 0x6d782620, 0x325ee: 0x6d782820, 0x325ef: 0x6d782a20, - 0x325f0: 0x6d782c20, 0x325f1: 0x6d782e20, 0x325f2: 0x6d783020, 0x325f3: 0x6d783220, - 0x325f4: 0x6d783420, 0x325f5: 0x6d783620, 0x325f6: 0x6d783820, 0x325f7: 0x6d783a20, - 0x325f8: 0x6d783c20, 0x325f9: 0x6d783e20, 0x325fa: 0x6d784020, 0x325fb: 0x6d784220, - 0x325fc: 0x6d784420, 0x325fd: 0x6da0d020, 0x325fe: 0x6da0d220, 0x325ff: 0x6da0d420, - // Block 0xc98, offset 0x32600 - 0x32600: 0x6da0d620, 0x32601: 0x6da0d820, 0x32602: 0x6da0da20, 0x32603: 0x6da0dc20, - 0x32604: 0x6da0de20, 0x32605: 0x6da0e020, 0x32606: 0x6da0e220, 0x32607: 0x6da0e420, - 0x32608: 0x6da0e620, 0x32609: 0x6da0e820, 0x3260a: 0x6da0ea20, 0x3260b: 0x6da0ec20, - 0x3260c: 0x6da0ee20, 0x3260d: 0x6da0f020, 0x3260e: 0x6da0f220, 0x3260f: 0x6da0f420, - 0x32610: 0x6da0f620, 0x32611: 0x6da0f820, 0x32612: 0x6da0fa20, 0x32613: 0x6da0fc20, - 0x32614: 0x6da0fe20, 0x32615: 0x6da10020, 0x32616: 0x6da10220, 0x32617: 0x6da10420, - 0x32618: 0x6da10620, 0x32619: 0x6da10820, 0x3261a: 0x6da10a20, 0x3261b: 0x6da10c20, - 0x3261c: 0x6da10e20, 0x3261d: 0x6da11020, 0x3261e: 0x6da11220, 0x3261f: 0x6da11420, - 0x32620: 0x6da11620, 0x32621: 0x6da11820, 0x32622: 0x6da11a20, 0x32623: 0x6da11c20, - 0x32624: 0x6da11e20, 0x32625: 0x6da12020, 0x32626: 0x6da12220, 0x32627: 0x6da12420, - 0x32628: 0x6da12620, 0x32629: 0x6da12820, 0x3262a: 0x6da12a20, 0x3262b: 0x6da12c20, - 0x3262c: 0x6da12e20, 0x3262d: 0x6da13020, 0x3262e: 0x6da13220, 0x3262f: 0x6da13420, - 0x32630: 0x6da13620, 0x32631: 0x6da13820, 0x32632: 0x6da13a20, 0x32633: 0x6da13c20, - 0x32634: 0x6da13e20, 0x32635: 0x6da14020, 0x32636: 0x6da14220, 0x32637: 0x6da14420, - 0x32638: 0x6da14620, 0x32639: 0x6da14820, 0x3263a: 0x6da14a20, 0x3263b: 0x6da14c20, - 0x3263c: 0x6da14e20, 0x3263d: 0x6da15020, 0x3263e: 0x6da15220, 0x3263f: 0x6da15420, - // Block 0xc99, offset 0x32640 - 0x32640: 0x6da15620, 0x32641: 0x6da15820, 0x32642: 0x6da15a20, 0x32643: 0x6da15c20, - 0x32644: 0x6da15e20, 0x32645: 0x6da16020, 0x32646: 0x6da16220, 0x32647: 0x6da16420, - 0x32648: 0x6da16620, 0x32649: 0x6da16820, 0x3264a: 0x6da16a20, 0x3264b: 0x6da16c20, - 0x3264c: 0x6da16e20, 0x3264d: 0x6da17020, 0x3264e: 0x6da17220, 0x3264f: 0x6dc32a20, - 0x32650: 0x6dc32c20, 0x32651: 0x6dc32e20, 0x32652: 0x6dc33020, 0x32653: 0x6dc33220, - 0x32654: 0x6dc33420, 0x32655: 0x6dc33620, 0x32656: 0x6dc33820, 0x32657: 0x6dc33a20, - 0x32658: 0x6dc33c20, 0x32659: 0x6dc33e20, 0x3265a: 0x6dc34020, 0x3265b: 0x6dc34220, - 0x3265c: 0x6dc34420, 0x3265d: 0x6dc34620, 0x3265e: 0x6dc34820, 0x3265f: 0x6dc34a20, - 0x32660: 0x6dc34c20, 0x32661: 0x6dc34e20, 0x32662: 0x6dc35020, 0x32663: 0x6dc35220, - 0x32664: 0x6dc35420, 0x32665: 0x6dc35620, 0x32666: 0x6dc35820, 0x32667: 0x6dc35a20, - 0x32668: 0x6dc35c20, 0x32669: 0x6dc35e20, 0x3266a: 0x6dc36020, 0x3266b: 0x6dc36220, - 0x3266c: 0x6dc36420, 0x3266d: 0x6dc36620, 0x3266e: 0x6dc36820, 0x3266f: 0x6dc36a20, - 0x32670: 0x6dc36c20, 0x32671: 0x6dc36e20, 0x32672: 0x6dc37020, 0x32673: 0x6dc37220, - 0x32674: 0x6dc37420, 0x32675: 0x6dc37620, 0x32676: 0x6dc37820, 0x32677: 0x6dc37a20, - 0x32678: 0x6dc37c20, 0x32679: 0x6dc37e20, 0x3267a: 0x6dc38020, 0x3267b: 0x6dc38220, - 0x3267c: 0x6dc38420, 0x3267d: 0x6dc38620, 0x3267e: 0x6dc38820, 0x3267f: 0x6dc38a20, - // Block 0xc9a, offset 0x32680 - 0x32680: 0x6dc38c20, 0x32681: 0x6dc38e20, 0x32682: 0x6dc39020, 0x32683: 0x6dc39220, - 0x32684: 0x6dc39420, 0x32685: 0x6dc39620, 0x32686: 0x6dc39820, 0x32687: 0x6dc39a20, - 0x32688: 0x6dc39c20, 0x32689: 0x6dc39e20, 0x3268a: 0x6dc3a020, 0x3268b: 0x6dc3a220, - 0x3268c: 0x6dc3a420, 0x3268d: 0x6dc3a620, 0x3268e: 0x6dc3a820, 0x3268f: 0x6dc3aa20, - 0x32690: 0x6dc3ac20, 0x32691: 0x6dc3ae20, 0x32692: 0x6dc3b020, 0x32693: 0x6dc3b220, - 0x32694: 0x6dc3b420, 0x32695: 0x6dc3b620, 0x32696: 0x6dc3b820, 0x32697: 0x6dc3ba20, - 0x32698: 0x6dc3bc20, 0x32699: 0x6dc3be20, 0x3269a: 0x6dc3c020, 0x3269b: 0x6dc3c220, - 0x3269c: 0x6dc3c420, 0x3269d: 0x6dc3c620, 0x3269e: 0x6dc3c820, 0x3269f: 0x6dc3ca20, - 0x326a0: 0x6de09a20, 0x326a1: 0x6de09c20, 0x326a2: 0x6de09e20, 0x326a3: 0x6de0a020, - 0x326a4: 0x6de0a220, 0x326a5: 0x6de0a420, 0x326a6: 0x6de0a620, 0x326a7: 0x6de0a820, - 0x326a8: 0x6de0aa20, 0x326a9: 0x6de0ac20, 0x326aa: 0x6de0ae20, 0x326ab: 0x6de0b020, - 0x326ac: 0x6de0b220, 0x326ad: 0x6de0b420, 0x326ae: 0x6de0b620, 0x326af: 0x6de0b820, - 0x326b0: 0x6dc3cc20, 0x326b1: 0x6de0ba20, 0x326b2: 0x6de0bc20, 0x326b3: 0x6de0be20, - 0x326b4: 0x6de0c020, 0x326b5: 0x6de0c220, 0x326b6: 0x6de0c420, 0x326b7: 0x6de0c620, - 0x326b8: 0x6de0c820, 0x326b9: 0x6de0ca20, 0x326ba: 0x6de0cc20, 0x326bb: 0x6de0ce20, - 0x326bc: 0x6de0d020, 0x326bd: 0x6de0d220, 0x326be: 0x6de0d420, 0x326bf: 0x6de0d620, - // Block 0xc9b, offset 0x326c0 - 0x326c0: 0x6de0d820, 0x326c1: 0x6de0da20, 0x326c2: 0x6de0dc20, 0x326c3: 0x6de0de20, - 0x326c4: 0x6de0e020, 0x326c5: 0x6de0e220, 0x326c6: 0x6de0e420, 0x326c7: 0x6de0e620, - 0x326c8: 0x6de0e820, 0x326c9: 0x6de5dc20, 0x326ca: 0x6de0ea20, 0x326cb: 0x6de0ec20, - 0x326cc: 0x6de0ee20, 0x326cd: 0x6de0f020, 0x326ce: 0x6de0f220, 0x326cf: 0x6de0f420, - 0x326d0: 0x6de0f620, 0x326d1: 0x6df8e220, 0x326d2: 0x6df8e420, 0x326d3: 0x6df8e620, - 0x326d4: 0x6df8e820, 0x326d5: 0x6df8ea20, 0x326d6: 0x6df8ec20, 0x326d7: 0x6df8ee20, - 0x326d8: 0x6df8f020, 0x326d9: 0x6df8f220, 0x326da: 0x6df8f420, 0x326db: 0x6df8f620, - 0x326dc: 0x6df8f820, 0x326dd: 0x6df8fa20, 0x326de: 0x6df8fc20, 0x326df: 0x6df8fe20, - 0x326e0: 0x6df90020, 0x326e1: 0x6df90220, 0x326e2: 0x6df90420, 0x326e3: 0x6df90620, - 0x326e4: 0x6df90820, 0x326e5: 0x6df90a20, 0x326e6: 0x6df90c20, 0x326e7: 0x6df90e20, - 0x326e8: 0x6df91020, 0x326e9: 0x6df91220, 0x326ea: 0x6df91420, 0x326eb: 0x6df91620, - 0x326ec: 0x6df91820, 0x326ed: 0x6df91a20, 0x326ee: 0x6df91c20, 0x326ef: 0x6df91e20, - 0x326f0: 0x6df92020, 0x326f1: 0x6e0cac20, 0x326f2: 0x6e0cae20, 0x326f3: 0x6e0cb020, - 0x326f4: 0x6e0cb220, 0x326f5: 0x6e0cb420, 0x326f6: 0x6e0cb620, 0x326f7: 0x6e0cb820, - 0x326f8: 0x6e0cba20, 0x326f9: 0x6e0cbc20, 0x326fa: 0x6e0cbe20, 0x326fb: 0x6e0cc020, - 0x326fc: 0x6e0cc220, 0x326fd: 0x6e0cc420, 0x326fe: 0x6e0cc620, 0x326ff: 0x6e0cc820, - // Block 0xc9c, offset 0x32700 - 0x32700: 0x6e0cca20, 0x32701: 0x6e0ccc20, 0x32702: 0x6e0cce20, 0x32703: 0x6e0cd020, - 0x32704: 0x6e0cd220, 0x32705: 0x6e0cd420, 0x32706: 0x6e0cd620, 0x32707: 0x6e0cd820, - 0x32708: 0x6e0cda20, 0x32709: 0x6e0cdc20, 0x3270a: 0x6e0cde20, 0x3270b: 0x6e0ce020, - 0x3270c: 0x6e0ce220, 0x3270d: 0x6e0ce420, 0x3270e: 0x6e0ce620, 0x3270f: 0x6e0ce820, - 0x32710: 0x6e0cea20, 0x32711: 0x6e0cec20, 0x32712: 0x6e0cee20, 0x32713: 0x6e0cf020, - 0x32714: 0x6e0cf220, 0x32715: 0x6e0d1c20, 0x32716: 0x6e121420, 0x32717: 0x6e1c4020, - 0x32718: 0x6e1c4220, 0x32719: 0x6e1c4420, 0x3271a: 0x6e1c4620, 0x3271b: 0x6e1c4820, - 0x3271c: 0x6e1c4a20, 0x3271d: 0x6e1c4c20, 0x3271e: 0x6e1c4e20, 0x3271f: 0x6e1c5020, - 0x32720: 0x6e1c5220, 0x32721: 0x6e1c5420, 0x32722: 0x6e1c5620, 0x32723: 0x6e0cf420, - 0x32724: 0x6e1c5820, 0x32725: 0x6e1c5a20, 0x32726: 0x6e1c5c20, 0x32727: 0x6e1c5e20, - 0x32728: 0x6e1c6020, 0x32729: 0x6e1c6220, 0x3272a: 0x6e1c6420, 0x3272b: 0x6e1c6620, - 0x3272c: 0x6e1c6820, 0x3272d: 0x6e1c6a20, 0x3272e: 0x6e1c6c20, 0x3272f: 0x6e1c6e20, - 0x32730: 0x6e287c20, 0x32731: 0x6e287e20, 0x32732: 0x6e288020, 0x32733: 0x6e288220, - 0x32734: 0x6e288420, 0x32735: 0x6e288620, 0x32736: 0x6e288820, 0x32737: 0x6e288a20, - 0x32738: 0x6e288c20, 0x32739: 0x6e31a420, 0x3273a: 0x6e31a620, 0x3273b: 0x6e31a820, - 0x3273c: 0x6e31aa20, 0x3273d: 0x6e31ac20, 0x3273e: 0x6e31ae20, 0x3273f: 0x6e31b020, - // Block 0xc9d, offset 0x32740 - 0x32740: 0x6e31b220, 0x32741: 0x6e31b420, 0x32742: 0x6e31b620, 0x32743: 0x6e31b820, - 0x32744: 0x6e31ba20, 0x32745: 0x6e31bc20, 0x32746: 0x6e384c20, 0x32747: 0x6e384e20, - 0x32748: 0x6e385020, 0x32749: 0x6e385220, 0x3274a: 0x6e385420, 0x3274b: 0x6e385620, - 0x3274c: 0x6e385820, 0x3274d: 0x6e385a20, 0x3274e: 0x6e385c20, 0x3274f: 0x6e3cfa20, - 0x32750: 0x6e3cfc20, 0x32751: 0x6e3cfe20, 0x32752: 0x6e3d0020, 0x32753: 0x6e3d0220, - 0x32754: 0x6e3d0420, 0x32755: 0x6e3d0620, 0x32756: 0x6e3d0820, 0x32757: 0x6e3d0a20, - 0x32758: 0x6e3d0c20, 0x32759: 0x6e400a20, 0x3275a: 0x6e400c20, 0x3275b: 0x6e428620, - 0x3275c: 0x6e428820, 0x3275d: 0x6e428a20, 0x3275e: 0x6e400e20, 0x3275f: 0x6e45bc20, - 0x32760: 0x6c03c820, 0x32761: 0x6c03ca20, 0x32762: 0x6c03cc20, 0x32763: 0x6c079820, - 0x32764: 0x6c079a20, 0x32765: 0x6c079c20, 0x32766: 0x6c079e20, 0x32767: 0x6c0ea620, - 0x32768: 0x6c0ea820, 0x32769: 0x6c0eaa20, 0x3276a: 0x6c0eac20, 0x3276b: 0x6c0eae20, - 0x3276c: 0x6c0eb020, 0x3276d: 0x6c0eb220, 0x3276e: 0x6c0eb420, 0x3276f: 0x6c0eb620, - 0x32770: 0x6c0eb820, 0x32771: 0x6c0eba20, 0x32772: 0x6c0ebc20, 0x32773: 0x6c0ebe20, - 0x32774: 0x6c1a6e20, 0x32775: 0x6c1a7020, 0x32776: 0x6c1a7220, 0x32777: 0x6c1a7420, - 0x32778: 0x6c1a7620, 0x32779: 0x6c1a7820, 0x3277a: 0x6c1a7a20, 0x3277b: 0x6c1a7c20, - 0x3277c: 0x6c1a7e20, 0x3277d: 0x6c1a8020, 0x3277e: 0x6c1a8220, 0x3277f: 0x6c1a8420, - // Block 0xc9e, offset 0x32780 - 0x32780: 0x6c1a8620, 0x32781: 0x6c1a8820, 0x32782: 0x6c1a8a20, 0x32783: 0x6c1a8c20, - 0x32784: 0x6c1a8e20, 0x32785: 0x6c1a9020, 0x32786: 0x6c1a9220, 0x32787: 0x6c1a9420, - 0x32788: 0x6c2d9620, 0x32789: 0x6c2d9820, 0x3278a: 0x6c2d9a20, 0x3278b: 0x6c2d9c20, - 0x3278c: 0x6c2d9e20, 0x3278d: 0x6c3bf620, 0x3278e: 0x6c2da020, 0x3278f: 0x6c2da220, - 0x32790: 0x6c2da420, 0x32791: 0x6c2da620, 0x32792: 0x6c47e220, 0x32793: 0x6c47e420, - 0x32794: 0x6c47e620, 0x32795: 0x6c47e820, 0x32796: 0x6c47ea20, 0x32797: 0x6c47ec20, - 0x32798: 0x6c47ee20, 0x32799: 0x6c47f020, 0x3279a: 0x6c47f220, 0x3279b: 0x6c47f420, - 0x3279c: 0x6c47f620, 0x3279d: 0x6c47f820, 0x3279e: 0x6c47fa20, 0x3279f: 0x6c47fc20, - 0x327a0: 0x6c695c20, 0x327a1: 0x6c695e20, 0x327a2: 0x6c696020, 0x327a3: 0x6c696220, - 0x327a4: 0x6c696420, 0x327a5: 0x6c696620, 0x327a6: 0x6c696820, 0x327a7: 0x6c696a20, - 0x327a8: 0x6c696c20, 0x327a9: 0x6c696e20, 0x327aa: 0x6c697020, 0x327ab: 0x6c697220, - 0x327ac: 0x6c697420, 0x327ad: 0x6c697620, 0x327ae: 0x6c697820, 0x327af: 0x6c697a20, - 0x327b0: 0x6c902820, 0x327b1: 0x6c902a20, 0x327b2: 0x6c902c20, 0x327b3: 0x6c902e20, - 0x327b4: 0x6c903020, 0x327b5: 0x6c903220, 0x327b6: 0x6c903420, 0x327b7: 0x6c903620, - 0x327b8: 0x6c903820, 0x327b9: 0x6c903a20, 0x327ba: 0x6c903c20, 0x327bb: 0x6c903e20, - 0x327bc: 0x6cbc4820, 0x327bd: 0x6cbc4a20, 0x327be: 0x6cbc4c20, 0x327bf: 0x6cbc4e20, - // Block 0xc9f, offset 0x327c0 - 0x327c0: 0x6c904020, 0x327c1: 0x6cbc5020, 0x327c2: 0x6cbc5220, 0x327c3: 0x6cbc5420, - 0x327c4: 0x6cbc5620, 0x327c5: 0x6cbc5820, 0x327c6: 0x6cbc5a20, 0x327c7: 0x6cbc5c20, - 0x327c8: 0x6cbc5e20, 0x327c9: 0x6cbc6020, 0x327ca: 0x6ced3220, 0x327cb: 0x6ced3420, - 0x327cc: 0x6ced3620, 0x327cd: 0x6ced3820, 0x327ce: 0x6ced3a20, 0x327cf: 0x6ced3c20, - 0x327d0: 0x6ced3e20, 0x327d1: 0x6ced4020, 0x327d2: 0x6ced4220, 0x327d3: 0x6ced4420, - 0x327d4: 0x6ced4620, 0x327d5: 0x6d1cfa20, 0x327d6: 0x6d1cfc20, 0x327d7: 0x6d1cfe20, - 0x327d8: 0x6d1d0020, 0x327d9: 0x6d1d0220, 0x327da: 0x6d1d0420, 0x327db: 0x6d1d0620, - 0x327dc: 0x6d1d0820, 0x327dd: 0x6d1d0a20, 0x327de: 0x6d1d0c20, 0x327df: 0x6d1d0e20, - 0x327e0: 0x6d1d1020, 0x327e1: 0x6d1d1220, 0x327e2: 0x6d4ab820, 0x327e3: 0x6d4aba20, - 0x327e4: 0x6d4abc20, 0x327e5: 0x6d785c20, 0x327e6: 0x6d4abe20, 0x327e7: 0x6d4ac020, - 0x327e8: 0x6d4ac220, 0x327e9: 0x6d4ac420, 0x327ea: 0x6d785e20, 0x327eb: 0x6d786020, - 0x327ec: 0x6d786220, 0x327ed: 0x6da17e20, 0x327ee: 0x6da18020, 0x327ef: 0x6da18220, - 0x327f0: 0x6da18420, 0x327f1: 0x6da18620, 0x327f2: 0x6dc3de20, 0x327f3: 0x6de0fe20, - 0x327f4: 0x6de10020, 0x327f5: 0x6df92c20, 0x327f6: 0x6df92e20, 0x327f7: 0x6df93020, - 0x327f8: 0x6e0cf620, 0x327f9: 0x6e0cf820, 0x327fa: 0x6e0cfa20, 0x327fb: 0x6e3d1020, - 0x327fc: 0x6c03d420, 0x327fd: 0x6c03d620, 0x327fe: 0x6c03d820, 0x327ff: 0x6c07ae20, - // Block 0xca0, offset 0x32800 - 0x32800: 0x6c07b020, 0x32801: 0x6c07b220, 0x32802: 0x6c07b420, 0x32803: 0x6c07b620, - 0x32804: 0x6c07b820, 0x32805: 0x6c07ba20, 0x32806: 0x6c07bc20, 0x32807: 0x6c07be20, - 0x32808: 0x6c0ee620, 0x32809: 0x6c0ee820, 0x3280a: 0x6c0eea20, 0x3280b: 0x6c0eec20, - 0x3280c: 0x6c0eee20, 0x3280d: 0x6c0ef020, 0x3280e: 0x6c0ef220, 0x3280f: 0x6c0ef420, - 0x32810: 0x6c0ef620, 0x32811: 0x6c0ef820, 0x32812: 0x6c0efa20, 0x32813: 0x6c0efc20, - 0x32814: 0x6c0efe20, 0x32815: 0x6c0f0020, 0x32816: 0x6c0f0220, 0x32817: 0x6c0fb020, - 0x32818: 0x6c1af820, 0x32819: 0x6c1afa20, 0x3281a: 0x6c1afc20, 0x3281b: 0x6c1afe20, - 0x3281c: 0x6c1b0020, 0x3281d: 0x6c1b0220, 0x3281e: 0x6c1b0420, 0x3281f: 0x6c1b0620, - 0x32820: 0x6c1b0820, 0x32821: 0x6c1b0a20, 0x32822: 0x6c1b0c20, 0x32823: 0x6c1b0e20, - 0x32824: 0x6c1b1020, 0x32825: 0x6c1b1220, 0x32826: 0x6c1b1420, 0x32827: 0x6c1b1620, - 0x32828: 0x6c1b1820, 0x32829: 0x6c1b1a20, 0x3282a: 0x6c1b1c20, 0x3282b: 0x6c1b1e20, - 0x3282c: 0x6c1b2020, 0x3282d: 0x6c1b2220, 0x3282e: 0x6c1b2420, 0x3282f: 0x6c1b2620, - 0x32830: 0x6c1b2820, 0x32831: 0x6c1b2a20, 0x32832: 0x6c1b2c20, 0x32833: 0x6c1b2e20, - 0x32834: 0x6c1b3020, 0x32835: 0x6c1b3220, 0x32836: 0x6c1b3420, 0x32837: 0x6c1b3620, - 0x32838: 0x6c1b3820, 0x32839: 0x6c1b3a20, 0x3283a: 0x6c1b3c20, 0x3283b: 0x6c1b3e20, - 0x3283c: 0x6c1b4020, 0x3283d: 0x6c1b4220, 0x3283e: 0x6c1b4420, 0x3283f: 0x6c1b4620, - // Block 0xca1, offset 0x32840 - 0x32840: 0x6c1b4820, 0x32841: 0x6c1b4a20, 0x32842: 0x6c1b4c20, 0x32843: 0x6c1b4e20, - 0x32844: 0x6c2e0820, 0x32845: 0x6c2e0a20, 0x32846: 0x6c2e0c20, 0x32847: 0x6c2e0e20, - 0x32848: 0x6c2e1020, 0x32849: 0x6c2e1220, 0x3284a: 0x6c2e1420, 0x3284b: 0x6c2e1620, - 0x3284c: 0x6c2e1820, 0x3284d: 0x6c2e1a20, 0x3284e: 0x6c2e1c20, 0x3284f: 0x6c2e1e20, - 0x32850: 0x6c2e2020, 0x32851: 0x6c2e2220, 0x32852: 0x6c2e2420, 0x32853: 0x6c2e2620, - 0x32854: 0x6c2e2820, 0x32855: 0x6c2e2a20, 0x32856: 0x6c2e2c20, 0x32857: 0x6c2e2e20, - 0x32858: 0x6c2e3020, 0x32859: 0x6c2e3220, 0x3285a: 0x6c2e3420, 0x3285b: 0x6c2e3620, - 0x3285c: 0x6c2e3820, 0x3285d: 0x6c2e3a20, 0x3285e: 0x6c2e3c20, 0x3285f: 0x6c2e3e20, - 0x32860: 0x6c2e4020, 0x32861: 0x6c2e4220, 0x32862: 0x6c2e4420, 0x32863: 0x6c2e4620, - 0x32864: 0x6c2e4820, 0x32865: 0x6c2e4a20, 0x32866: 0x6c2e4c20, 0x32867: 0x6c2e4e20, - 0x32868: 0x6c2e5020, 0x32869: 0x6c2e5220, 0x3286a: 0x6c2e5420, 0x3286b: 0x6c2e5620, - 0x3286c: 0x6c2e5820, 0x3286d: 0x6c2e5a20, 0x3286e: 0x6c2e5c20, 0x3286f: 0x6c2e5e20, - 0x32870: 0x6c2e6020, 0x32871: 0x6c2e6220, 0x32872: 0x6c2e6420, 0x32873: 0x6c2e6620, - 0x32874: 0x6c2e6820, 0x32875: 0x6c2e6a20, 0x32876: 0x6c2e6c20, 0x32877: 0x6c486a20, - 0x32878: 0x6c486c20, 0x32879: 0x6c486e20, 0x3287a: 0x6c487020, 0x3287b: 0x6c487220, - 0x3287c: 0x6c487420, 0x3287d: 0x6c487620, 0x3287e: 0x6c487820, 0x3287f: 0x6c487a20, - // Block 0xca2, offset 0x32880 - 0x32880: 0x6c487c20, 0x32881: 0x6c487e20, 0x32882: 0x6c488020, 0x32883: 0x6c488220, - 0x32884: 0x6c488420, 0x32885: 0x6c488620, 0x32886: 0x6c488820, 0x32887: 0x6c488a20, - 0x32888: 0x6c488c20, 0x32889: 0x6c488e20, 0x3288a: 0x6c489020, 0x3288b: 0x6c489220, - 0x3288c: 0x6c489420, 0x3288d: 0x6c489620, 0x3288e: 0x6c489820, 0x3288f: 0x6c489a20, - 0x32890: 0x6c489c20, 0x32891: 0x6c489e20, 0x32892: 0x6c48a020, 0x32893: 0x6c48a220, - 0x32894: 0x6c48a420, 0x32895: 0x6c48a620, 0x32896: 0x6c48a820, 0x32897: 0x6c48aa20, - 0x32898: 0x6c48ac20, 0x32899: 0x6c48ae20, 0x3289a: 0x6c48b020, 0x3289b: 0x6c48b220, - 0x3289c: 0x6c5dc620, 0x3289d: 0x6c48b420, 0x3289e: 0x6c48b620, 0x3289f: 0x6c48b820, - 0x328a0: 0x6c48ba20, 0x328a1: 0x6c48bc20, 0x328a2: 0x6c48be20, 0x328a3: 0x6c48c020, - 0x328a4: 0x6c48c220, 0x328a5: 0x6c48c420, 0x328a6: 0x6c48c620, 0x328a7: 0x6c48c820, - 0x328a8: 0x6c48ca20, 0x328a9: 0x6c48cc20, 0x328aa: 0x6c48ce20, 0x328ab: 0x6c48d020, - 0x328ac: 0x6c48d220, 0x328ad: 0x6c69da20, 0x328ae: 0x6c69dc20, 0x328af: 0x6c69de20, - 0x328b0: 0x6c69e020, 0x328b1: 0x6c69e220, 0x328b2: 0x6c69e420, 0x328b3: 0x6c69e620, - 0x328b4: 0x6c69e820, 0x328b5: 0x6c69ea20, 0x328b6: 0x6c69ec20, 0x328b7: 0x6c69ee20, - 0x328b8: 0x6c69f020, 0x328b9: 0x6c69f220, 0x328ba: 0x6c69f420, 0x328bb: 0x6c69f620, - 0x328bc: 0x6c69f820, 0x328bd: 0x6c69fa20, 0x328be: 0x6c69fc20, 0x328bf: 0x6c69fe20, - // Block 0xca3, offset 0x328c0 - 0x328c0: 0x6c6a0020, 0x328c1: 0x6c6a0220, 0x328c2: 0x6c6a0420, 0x328c3: 0x6c6a0620, - 0x328c4: 0x6c6a0820, 0x328c5: 0x6c6a0a20, 0x328c6: 0x6c6a0c20, 0x328c7: 0x6c6a0e20, - 0x328c8: 0x6c6a1020, 0x328c9: 0x6c6a1220, 0x328ca: 0x6c6a1420, 0x328cb: 0x6c6a1620, - 0x328cc: 0x6c6a1820, 0x328cd: 0x6c6a1a20, 0x328ce: 0x6c6a1c20, 0x328cf: 0x6c6a1e20, - 0x328d0: 0x6c6a2020, 0x328d1: 0x6c6a2220, 0x328d2: 0x6c6a2420, 0x328d3: 0x6c6a2620, - 0x328d4: 0x6c6a2820, 0x328d5: 0x6c6a2a20, 0x328d6: 0x6c6a2c20, 0x328d7: 0x6c6a2e20, - 0x328d8: 0x6c6a3020, 0x328d9: 0x6c6a3220, 0x328da: 0x6c6a3420, 0x328db: 0x6c6a3620, - 0x328dc: 0x6c6a3820, 0x328dd: 0x6c6a3a20, 0x328de: 0x6c6a3c20, 0x328df: 0x6c6a3e20, - 0x328e0: 0x6c6a4020, 0x328e1: 0x6c6a4220, 0x328e2: 0x6c6a4420, 0x328e3: 0x6c6a4620, - 0x328e4: 0x6c6a4820, 0x328e5: 0x6c6a4a20, 0x328e6: 0x6c90c620, 0x328e7: 0x6c90c820, - 0x328e8: 0x6c90ca20, 0x328e9: 0x6c90cc20, 0x328ea: 0x6c90ce20, 0x328eb: 0x6c90d020, - 0x328ec: 0x6c90d220, 0x328ed: 0x6c90d420, 0x328ee: 0x6c90d620, 0x328ef: 0x6c90d820, - 0x328f0: 0x6c90da20, 0x328f1: 0x6c90dc20, 0x328f2: 0x6c90de20, 0x328f3: 0x6c90e020, - 0x328f4: 0x6c90e220, 0x328f5: 0x6c90e420, 0x328f6: 0x6c90e620, 0x328f7: 0x6c90e820, - 0x328f8: 0x6c90ea20, 0x328f9: 0x6c90ec20, 0x328fa: 0x6c90ee20, 0x328fb: 0x6c90f020, - 0x328fc: 0x6c90f220, 0x328fd: 0x6c90f420, 0x328fe: 0x6c90f620, 0x328ff: 0x6c90f820, - // Block 0xca4, offset 0x32900 - 0x32900: 0x6c90fa20, 0x32901: 0x6c90fc20, 0x32902: 0x6c90fe20, 0x32903: 0x6c910020, - 0x32904: 0x6c910220, 0x32905: 0x6c910420, 0x32906: 0x6c910620, 0x32907: 0x6c910820, - 0x32908: 0x6c910a20, 0x32909: 0x6c910c20, 0x3290a: 0x6c910e20, 0x3290b: 0x6c911020, - 0x3290c: 0x6c911220, 0x3290d: 0x6c911420, 0x3290e: 0x6c911620, 0x3290f: 0x6c911820, - 0x32910: 0x6c911a20, 0x32911: 0x6c911c20, 0x32912: 0x6c911e20, 0x32913: 0x6c912020, - 0x32914: 0x6c912220, 0x32915: 0x6c912420, 0x32916: 0x6c912620, 0x32917: 0x6c912820, - 0x32918: 0x6c912a20, 0x32919: 0x6c912c20, 0x3291a: 0x6c912e20, 0x3291b: 0x6c913020, - 0x3291c: 0x6c913220, 0x3291d: 0x6c913420, 0x3291e: 0x6c913620, 0x3291f: 0x6c913820, - 0x32920: 0x6c913a20, 0x32921: 0x6c913c20, 0x32922: 0x6c913e20, 0x32923: 0x6c914020, - 0x32924: 0x6cbcd820, 0x32925: 0x6cbcda20, 0x32926: 0x6cbcdc20, 0x32927: 0x6cbcde20, - 0x32928: 0x6cbce020, 0x32929: 0x6cbce220, 0x3292a: 0x6cbce420, 0x3292b: 0x6cbce620, - 0x3292c: 0x6cbce820, 0x3292d: 0x6cbcea20, 0x3292e: 0x6cbcec20, 0x3292f: 0x6cbcee20, - 0x32930: 0x6cbcf020, 0x32931: 0x6cbcf220, 0x32932: 0x6cbcf420, 0x32933: 0x6cbcf620, - 0x32934: 0x6cbcf820, 0x32935: 0x6cbcfa20, 0x32936: 0x6cbcfc20, 0x32937: 0x6cbcfe20, - 0x32938: 0x6cbd0020, 0x32939: 0x6cbd0220, 0x3293a: 0x6cbd0420, 0x3293b: 0x6cbd0620, - 0x3293c: 0x6cbd0820, 0x3293d: 0x6cbd0a20, 0x3293e: 0x6cbd0c20, 0x3293f: 0x6cbd0e20, - // Block 0xca5, offset 0x32940 - 0x32940: 0x6cbd1020, 0x32941: 0x6cbd1220, 0x32942: 0x6cbd1420, 0x32943: 0x6cbd1620, - 0x32944: 0x6cbd1820, 0x32945: 0x6cbd1a20, 0x32946: 0x6cbd1c20, 0x32947: 0x6cbd1e20, - 0x32948: 0x6cbd2020, 0x32949: 0x6cbd2220, 0x3294a: 0x6cbd2420, 0x3294b: 0x6cbd2620, - 0x3294c: 0x6cbd2820, 0x3294d: 0x6cbd2a20, 0x3294e: 0x6cbd2c20, 0x3294f: 0x6cbd2e20, - 0x32950: 0x6cbd3020, 0x32951: 0x6cbd3220, 0x32952: 0x6cbd3420, 0x32953: 0x6cbd3620, - 0x32954: 0x6cbd3820, 0x32955: 0x6cbd3a20, 0x32956: 0x6cbd3c20, 0x32957: 0x6cbd3e20, - 0x32958: 0x6cbd4020, 0x32959: 0x6cbd4220, 0x3295a: 0x6cbd4420, 0x3295b: 0x6cbd4620, - 0x3295c: 0x6cbd4820, 0x3295d: 0x6cbd4a20, 0x3295e: 0x6cbd4c20, 0x3295f: 0x6cbd4e20, - 0x32960: 0x6cbd5020, 0x32961: 0x6cbd5220, 0x32962: 0x6cbd5420, 0x32963: 0x6cbd5620, - 0x32964: 0x6cbd5820, 0x32965: 0x6cbd5a20, 0x32966: 0x6cbd5c20, 0x32967: 0x6cbd5e20, - 0x32968: 0x6cbd6020, 0x32969: 0x6cbd6220, 0x3296a: 0x6cbd6420, 0x3296b: 0x6cbd6620, - 0x3296c: 0x6cbd6820, 0x3296d: 0x6cbd6a20, 0x3296e: 0x6cedae20, 0x3296f: 0x6cedb020, - 0x32970: 0x6cedb220, 0x32971: 0x6cedb420, 0x32972: 0x6cedb620, 0x32973: 0x6cedb820, - 0x32974: 0x6cedba20, 0x32975: 0x6cedbc20, 0x32976: 0x6cedbe20, 0x32977: 0x6cedc020, - 0x32978: 0x6cedc220, 0x32979: 0x6cedc420, 0x3297a: 0x6cedc620, 0x3297b: 0x6cedc820, - 0x3297c: 0x6cedca20, 0x3297d: 0x6cedcc20, 0x3297e: 0x6cedce20, 0x3297f: 0x6cedd020, - // Block 0xca6, offset 0x32980 - 0x32980: 0x6cedd220, 0x32981: 0x6cedd420, 0x32982: 0x6cedd620, 0x32983: 0x6cedd820, - 0x32984: 0x6cedda20, 0x32985: 0x6ceddc20, 0x32986: 0x6cedde20, 0x32987: 0x6cede020, - 0x32988: 0x6cede220, 0x32989: 0x6cede420, 0x3298a: 0x6cede620, 0x3298b: 0x6cede820, - 0x3298c: 0x6cedea20, 0x3298d: 0x6cedec20, 0x3298e: 0x6cedee20, 0x3298f: 0x6cedf020, - 0x32990: 0x6cedf220, 0x32991: 0x6cedf420, 0x32992: 0x6cedf620, 0x32993: 0x6cedf820, - 0x32994: 0x6cedfa20, 0x32995: 0x6cedfc20, 0x32996: 0x6cedfe20, 0x32997: 0x6cee0020, - 0x32998: 0x6cee0220, 0x32999: 0x6cee0420, 0x3299a: 0x6cee0620, 0x3299b: 0x6cee0820, - 0x3299c: 0x6cee0a20, 0x3299d: 0x6cee0c20, 0x3299e: 0x6cee0e20, 0x3299f: 0x6cee1020, - 0x329a0: 0x6cee1220, 0x329a1: 0x6cee1420, 0x329a2: 0x6cee1620, 0x329a3: 0x6cee1820, - 0x329a4: 0x6cee1a20, 0x329a5: 0x6cee1c20, 0x329a6: 0x6cee1e20, 0x329a7: 0x6cee2020, - 0x329a8: 0x6cee2220, 0x329a9: 0x6cee2420, 0x329aa: 0x6cee2620, 0x329ab: 0x6cee2820, - 0x329ac: 0x6cee2a20, 0x329ad: 0x6d1d7620, 0x329ae: 0x6d1d7820, 0x329af: 0x6d1d7a20, - 0x329b0: 0x6d1d7c20, 0x329b1: 0x6d1d7e20, 0x329b2: 0x6d1d8020, 0x329b3: 0x6d1d8220, - 0x329b4: 0x6d1d8420, 0x329b5: 0x6d1d8620, 0x329b6: 0x6d1d8820, 0x329b7: 0x6d1d8a20, - 0x329b8: 0x6d1d8c20, 0x329b9: 0x6d1d8e20, 0x329ba: 0x6d1d9020, 0x329bb: 0x6d1d9220, - 0x329bc: 0x6d1d9420, 0x329bd: 0x6d1d9620, 0x329be: 0x6d1d9820, 0x329bf: 0x6d1d9a20, - // Block 0xca7, offset 0x329c0 - 0x329c0: 0x6d1d9c20, 0x329c1: 0x6d1d9e20, 0x329c2: 0x6d1da020, 0x329c3: 0x6d1da220, - 0x329c4: 0x6d1da420, 0x329c5: 0x6d1da620, 0x329c6: 0x6d1da820, 0x329c7: 0x6d1daa20, - 0x329c8: 0x6d1dac20, 0x329c9: 0x6d1dae20, 0x329ca: 0x6d1db020, 0x329cb: 0x6d1db220, - 0x329cc: 0x6d1db420, 0x329cd: 0x6d1db620, 0x329ce: 0x6d1db820, 0x329cf: 0x6d1dba20, - 0x329d0: 0x6d1dbc20, 0x329d1: 0x6d1dbe20, 0x329d2: 0x6d1dc020, 0x329d3: 0x6d1dc220, - 0x329d4: 0x6d1dc420, 0x329d5: 0x6d1dc620, 0x329d6: 0x6d1dc820, 0x329d7: 0x6d1dca20, - 0x329d8: 0x6d1dcc20, 0x329d9: 0x6d1dce20, 0x329da: 0x6d1dd020, 0x329db: 0x6d1dd220, - 0x329dc: 0x6d1dd420, 0x329dd: 0x6d1dd620, 0x329de: 0x6d4b1420, 0x329df: 0x6d4b1620, - 0x329e0: 0x6d4b1820, 0x329e1: 0x6d4b1a20, 0x329e2: 0x6d4b1c20, 0x329e3: 0x6d4b1e20, - 0x329e4: 0x6d4b2020, 0x329e5: 0x6d4b2220, 0x329e6: 0x6d4b2420, 0x329e7: 0x6d4b2620, - 0x329e8: 0x6d4b2820, 0x329e9: 0x6d4b2a20, 0x329ea: 0x6d4b2c20, 0x329eb: 0x6d4b2e20, - 0x329ec: 0x6d4b3020, 0x329ed: 0x6d4b3220, 0x329ee: 0x6d4b3420, 0x329ef: 0x6d4b3620, - 0x329f0: 0x6d4b3820, 0x329f1: 0x6d4b3a20, 0x329f2: 0x6d4b3c20, 0x329f3: 0x6d4b3e20, - 0x329f4: 0x6d4b4020, 0x329f5: 0x6d4b4220, 0x329f6: 0x6d4b4420, 0x329f7: 0x6d4b4620, - 0x329f8: 0x6d4b4820, 0x329f9: 0x6d4b4a20, 0x329fa: 0x6d4b4c20, 0x329fb: 0x6d4b4e20, - 0x329fc: 0x6d4b5020, 0x329fd: 0x6d4b5220, 0x329fe: 0x6d4b5420, 0x329ff: 0x6d4b5620, - // Block 0xca8, offset 0x32a00 - 0x32a00: 0x6d4b5820, 0x32a01: 0x6d4b5a20, 0x32a02: 0x6d4b5c20, 0x32a03: 0x6d4b5e20, - 0x32a04: 0x6d4b6020, 0x32a05: 0x6d4b6220, 0x32a06: 0x6d4b6420, 0x32a07: 0x6d4b6620, - 0x32a08: 0x6d4b6820, 0x32a09: 0x6d4b6a20, 0x32a0a: 0x6d4b6c20, 0x32a0b: 0x6d4b6e20, - 0x32a0c: 0x6d4b7020, 0x32a0d: 0x6d4b7220, 0x32a0e: 0x6d4b7420, 0x32a0f: 0x6d4b7620, - 0x32a10: 0x6d4b7820, 0x32a11: 0x6d4b7a20, 0x32a12: 0x6d4b7c20, 0x32a13: 0x6d4b7e20, - 0x32a14: 0x6d4b8020, 0x32a15: 0x6d4b8220, 0x32a16: 0x6d4b8420, 0x32a17: 0x6d4b8620, - 0x32a18: 0x6d4b8820, 0x32a19: 0x6d4b8a20, 0x32a1a: 0x6d4b8c20, 0x32a1b: 0x6d4b8e20, - 0x32a1c: 0x6d4b9020, 0x32a1d: 0x6d4b9220, 0x32a1e: 0x6d789c20, 0x32a1f: 0x6d789e20, - 0x32a20: 0x6d78a020, 0x32a21: 0x6d78a220, 0x32a22: 0x6d78a420, 0x32a23: 0x6d78a620, - 0x32a24: 0x6d78a820, 0x32a25: 0x6d78aa20, 0x32a26: 0x6d78ac20, 0x32a27: 0x6d78ae20, - 0x32a28: 0x6d78b020, 0x32a29: 0x6d78b220, 0x32a2a: 0x6d78b420, 0x32a2b: 0x6d78b620, - 0x32a2c: 0x6d78b820, 0x32a2d: 0x6d78ba20, 0x32a2e: 0x6d78bc20, 0x32a2f: 0x6d78be20, - 0x32a30: 0x6d78c020, 0x32a31: 0x6d78c220, 0x32a32: 0x6d78c420, 0x32a33: 0x6d78c620, - 0x32a34: 0x6d78c820, 0x32a35: 0x6d78ca20, 0x32a36: 0x6d78cc20, 0x32a37: 0x6d78ce20, - 0x32a38: 0x6d78d020, 0x32a39: 0x6d78d220, 0x32a3a: 0x6d980c20, 0x32a3b: 0x6d78d420, - 0x32a3c: 0x6d78d620, 0x32a3d: 0x6d78d820, 0x32a3e: 0x6d78da20, 0x32a3f: 0x6d78dc20, - // Block 0xca9, offset 0x32a40 - 0x32a40: 0x6d78de20, 0x32a41: 0x6d78e020, 0x32a42: 0x6d78e220, 0x32a43: 0x6d78e420, - 0x32a44: 0x6d78e620, 0x32a45: 0x6d78e820, 0x32a46: 0x6d78ea20, 0x32a47: 0x6d78ec20, - 0x32a48: 0x6d78ee20, 0x32a49: 0x6da1a820, 0x32a4a: 0x6da1aa20, 0x32a4b: 0x6da1ac20, - 0x32a4c: 0x6da1ae20, 0x32a4d: 0x6da1b020, 0x32a4e: 0x6da1b220, 0x32a4f: 0x6da1b420, - 0x32a50: 0x6da1b620, 0x32a51: 0x6da1b820, 0x32a52: 0x6da1ba20, 0x32a53: 0x6da1bc20, - 0x32a54: 0x6da1be20, 0x32a55: 0x6da1c020, 0x32a56: 0x6da1c220, 0x32a57: 0x6da1c420, - 0x32a58: 0x6da1c620, 0x32a59: 0x6da1c820, 0x32a5a: 0x6da1ca20, 0x32a5b: 0x6da1cc20, - 0x32a5c: 0x6da1ce20, 0x32a5d: 0x6da1d020, 0x32a5e: 0x6da1d220, 0x32a5f: 0x6da1d420, - 0x32a60: 0x6da1d620, 0x32a61: 0x6dc1f820, 0x32a62: 0x6da1d820, 0x32a63: 0x6da1da20, - 0x32a64: 0x6da1dc20, 0x32a65: 0x6da1de20, 0x32a66: 0x6da1e020, 0x32a67: 0x6da1e220, - 0x32a68: 0x6da1e420, 0x32a69: 0x6da1e620, 0x32a6a: 0x6da1e820, 0x32a6b: 0x6da1ea20, - 0x32a6c: 0x6da1ec20, 0x32a6d: 0x6da1ee20, 0x32a6e: 0x6da1f020, 0x32a6f: 0x6da1f220, - 0x32a70: 0x6dc3ea20, 0x32a71: 0x6dc3ec20, 0x32a72: 0x6dc3ee20, 0x32a73: 0x6dc3f020, - 0x32a74: 0x6dc3f220, 0x32a75: 0x6dc3f420, 0x32a76: 0x6dc3f620, 0x32a77: 0x6dc3f820, - 0x32a78: 0x6dc3fa20, 0x32a79: 0x6dc3fc20, 0x32a7a: 0x6dc3fe20, 0x32a7b: 0x6dc40020, - 0x32a7c: 0x6dc40220, 0x32a7d: 0x6dc40420, 0x32a7e: 0x6dc40620, 0x32a7f: 0x6dc40820, - // Block 0xcaa, offset 0x32a80 - 0x32a80: 0x6de11620, 0x32a81: 0x6dc40a20, 0x32a82: 0x6dc40c20, 0x32a83: 0x6dc40e20, - 0x32a84: 0x6dc41020, 0x32a85: 0x6dc41220, 0x32a86: 0x6dc41420, 0x32a87: 0x6dc41620, - 0x32a88: 0x6dc41820, 0x32a89: 0x6dc41a20, 0x32a8a: 0x6dc41c20, 0x32a8b: 0x6dc41e20, - 0x32a8c: 0x6dc42020, 0x32a8d: 0x6dc42220, 0x32a8e: 0x6dc42420, 0x32a8f: 0x6dc42620, - 0x32a90: 0x6de11820, 0x32a91: 0x6de11a20, 0x32a92: 0x6de11c20, 0x32a93: 0x6de11e20, - 0x32a94: 0x6de12020, 0x32a95: 0x6de12220, 0x32a96: 0x6de12420, 0x32a97: 0x6de12620, - 0x32a98: 0x6de12820, 0x32a99: 0x6de12a20, 0x32a9a: 0x6de12c20, 0x32a9b: 0x6dede420, - 0x32a9c: 0x6de12e20, 0x32a9d: 0x6de13020, 0x32a9e: 0x6de13220, 0x32a9f: 0x6de13420, - 0x32aa0: 0x6de13620, 0x32aa1: 0x6de13820, 0x32aa2: 0x6de13a20, 0x32aa3: 0x6de13c20, - 0x32aa4: 0x6de13e20, 0x32aa5: 0x6de14020, 0x32aa6: 0x6df93a20, 0x32aa7: 0x6df93c20, - 0x32aa8: 0x6df93e20, 0x32aa9: 0x6df94020, 0x32aaa: 0x6df94220, 0x32aab: 0x6df94420, - 0x32aac: 0x6df94620, 0x32aad: 0x6df94820, 0x32aae: 0x6df94a20, 0x32aaf: 0x6df94c20, - 0x32ab0: 0x6df94e20, 0x32ab1: 0x6e0cfe20, 0x32ab2: 0x6e0d0020, 0x32ab3: 0x6e0d0220, - 0x32ab4: 0x6e0d0420, 0x32ab5: 0x6e0d0620, 0x32ab6: 0x6e0d0820, 0x32ab7: 0x6e078620, - 0x32ab8: 0x6e0d0a20, 0x32ab9: 0x6e0d0c20, 0x32aba: 0x6e1c7620, 0x32abb: 0x6e0d0e20, - 0x32abc: 0x6e0d1020, 0x32abd: 0x6e0d1220, 0x32abe: 0x6e0d1420, 0x32abf: 0x6e0d1620, - // Block 0xcab, offset 0x32ac0 - 0x32ac0: 0x6e0d1820, 0x32ac1: 0x6e0d1a20, 0x32ac2: 0x6e1c7820, 0x32ac3: 0x6e1c7a20, - 0x32ac4: 0x6e1c7c20, 0x32ac5: 0x6e1c7e20, 0x32ac6: 0x6e1c8020, 0x32ac7: 0x6e1c8220, - 0x32ac8: 0x6e1c8420, 0x32ac9: 0x6e1c8620, 0x32aca: 0x6e289220, 0x32acb: 0x6e289420, - 0x32acc: 0x6e289620, 0x32acd: 0x6e289820, 0x32ace: 0x6e289a20, 0x32acf: 0x6e31c620, - 0x32ad0: 0x6e31c820, 0x32ad1: 0x6e31ca20, 0x32ad2: 0x6e31cc20, 0x32ad3: 0x6e31ce20, - 0x32ad4: 0x6e31d020, 0x32ad5: 0x6e31d220, 0x32ad6: 0x6e3d1220, 0x32ad7: 0x6e442620, - 0x32ad8: 0x6e451820, 0x32ad9: 0x6e46e220, 0x32ada: 0x6e471e20, 0x32adb: 0x6c07c620, - 0x32adc: 0x6c0f1020, 0x32add: 0x6c1b7020, 0x32ade: 0x6c1b7220, 0x32adf: 0x6c2e7e20, - 0x32ae0: 0x6c48ea20, 0x32ae1: 0x6c48ec20, 0x32ae2: 0x6c48ee20, 0x32ae3: 0x6c6a7220, - 0x32ae4: 0x6c6a7420, 0x32ae5: 0x6c6a7620, 0x32ae6: 0x6c6a7820, 0x32ae7: 0x6c6a7a20, - 0x32ae8: 0x6c6a7c20, 0x32ae9: 0x6c6a7e20, 0x32aea: 0x6c916620, 0x32aeb: 0x6c916820, - 0x32aec: 0x6c916a20, 0x32aed: 0x6c916c20, 0x32aee: 0x6cbd8e20, 0x32aef: 0x6cbd9020, - 0x32af0: 0x6cee5020, 0x32af1: 0x6cbdc220, 0x32af2: 0x6cee5220, 0x32af3: 0x6cee5420, - 0x32af4: 0x6cee5620, 0x32af5: 0x6cee5820, 0x32af6: 0x6d1df820, 0x32af7: 0x6d187e20, - 0x32af8: 0x6d1dfa20, 0x32af9: 0x6d1dfc20, 0x32afa: 0x6d1dfe20, 0x32afb: 0x6d1e0020, - 0x32afc: 0x6d4ba620, 0x32afd: 0x6d4ba820, 0x32afe: 0x6d790220, 0x32aff: 0x6d790420, - // Block 0xcac, offset 0x32b00 - 0x32b00: 0x6d790620, 0x32b01: 0x6da20020, 0x32b02: 0x6da20220, 0x32b03: 0x6da20420, - 0x32b04: 0x6da20620, 0x32b05: 0x6dc43020, 0x32b06: 0x6dd50620, 0x32b07: 0x6dc43220, - 0x32b08: 0x6dc43420, 0x32b09: 0x6dc43620, 0x32b0a: 0x6dc43820, 0x32b0b: 0x6de14420, - 0x32b0c: 0x6de14620, 0x32b0d: 0x6df95220, 0x32b0e: 0x6dfe0820, 0x32b0f: 0x6e1c8820, - 0x32b10: 0x6e1c8a20, 0x32b11: 0x6e1c8c20, 0x32b12: 0x6c018a20, 0x32b13: 0x6c07ca20, - 0x32b14: 0x6c07cc20, 0x32b15: 0x6c0f1420, 0x32b16: 0x6c0f1620, 0x32b17: 0x6c1b7620, - 0x32b18: 0x6c1b7820, 0x32b19: 0x6c1b7a20, 0x32b1a: 0x6c6a8220, 0x32b1b: 0x6c917020, - 0x32b1c: 0x6c917220, 0x32b1d: 0x6cee5c20, 0x32b1e: 0x6c0f1820, 0x32b1f: 0x6c0f1a20, - 0x32b20: 0x6c1b7e20, 0x32b21: 0x6c1b8020, 0x32b22: 0x6c2e8420, 0x32b23: 0x6c2e8620, - 0x32b24: 0x6c2e8820, 0x32b25: 0x6c2e8a20, 0x32b26: 0x6c6a8a20, 0x32b27: 0x6c917420, - 0x32b28: 0x6c917620, 0x32b29: 0x6c917820, 0x32b2a: 0x6c917a20, 0x32b2b: 0x6c917c20, - 0x32b2c: 0x6c917e20, 0x32b2d: 0x6cbd9620, 0x32b2e: 0x6cee6020, 0x32b2f: 0x6cee6220, - 0x32b30: 0x6cee6420, 0x32b31: 0x6cee6620, 0x32b32: 0x6d1e0420, 0x32b33: 0x6d1e0620, - 0x32b34: 0x6d1e0820, 0x32b35: 0x6d1e0a20, 0x32b36: 0x6d4baa20, 0x32b37: 0x6d4bac20, - 0x32b38: 0x6d790820, 0x32b39: 0x6d790a20, 0x32b3a: 0x6d790c20, 0x32b3b: 0x6da20820, - 0x32b3c: 0x6dc43e20, 0x32b3d: 0x6dc44020, 0x32b3e: 0x6dc44220, 0x32b3f: 0x6dc44420, - // Block 0xcad, offset 0x32b40 - 0x32b40: 0x6de14a20, 0x32b41: 0x6df95620, 0x32b42: 0x6e289c20, 0x32b43: 0x6e451a20, - 0x32b44: 0x6c07d620, 0x32b45: 0x6c07d820, 0x32b46: 0x6c07da20, 0x32b47: 0x6c0f2220, - 0x32b48: 0x6c0f2420, 0x32b49: 0x6c0f2620, 0x32b4a: 0x6c1b8220, 0x32b4b: 0x6c1b8420, - 0x32b4c: 0x6c1b8620, 0x32b4d: 0x6c2e9220, 0x32b4e: 0x6c2e9420, 0x32b4f: 0x6c2e9620, - 0x32b50: 0x6c48fc20, 0x32b51: 0x6c48fe20, 0x32b52: 0x6c6a9020, 0x32b53: 0x6c6a9220, - 0x32b54: 0x6c6a9420, 0x32b55: 0x6c6a9620, 0x32b56: 0x6c6a9820, 0x32b57: 0x6c6a9a20, - 0x32b58: 0x6c6a9c20, 0x32b59: 0x6c6a9e20, 0x32b5a: 0x6c6aa020, 0x32b5b: 0x6c6aa220, - 0x32b5c: 0x6c6aa420, 0x32b5d: 0x6c918420, 0x32b5e: 0x6c918620, 0x32b5f: 0x6c918820, - 0x32b60: 0x6c918a20, 0x32b61: 0x6c918c20, 0x32b62: 0x6c918e20, 0x32b63: 0x6c919020, - 0x32b64: 0x6c919220, 0x32b65: 0x6c919420, 0x32b66: 0x6cbda020, 0x32b67: 0x6cbda220, - 0x32b68: 0x6cbda420, 0x32b69: 0x6cbda620, 0x32b6a: 0x6cbda820, 0x32b6b: 0x6cbdaa20, - 0x32b6c: 0x6cbdac20, 0x32b6d: 0x6cbdae20, 0x32b6e: 0x6cbdb020, 0x32b6f: 0x6cee6a20, - 0x32b70: 0x6cbdb220, 0x32b71: 0x6cee6c20, 0x32b72: 0x6cee6e20, 0x32b73: 0x6cee7020, - 0x32b74: 0x6cee7220, 0x32b75: 0x6cee7420, 0x32b76: 0x6d1e1820, 0x32b77: 0x6d1e1a20, - 0x32b78: 0x6d1e1c20, 0x32b79: 0x6d1e1e20, 0x32b7a: 0x6d1e2020, 0x32b7b: 0x6d1e2220, - 0x32b7c: 0x6d1e2420, 0x32b7d: 0x6d1e2620, 0x32b7e: 0x6d1e2820, 0x32b7f: 0x6d4bb020, - // Block 0xcae, offset 0x32b80 - 0x32b80: 0x6d4bb220, 0x32b81: 0x6d4bb420, 0x32b82: 0x6d791220, 0x32b83: 0x6d791420, - 0x32b84: 0x6d791620, 0x32b85: 0x6d791820, 0x32b86: 0x6da20c20, 0x32b87: 0x6da20e20, - 0x32b88: 0x6da21020, 0x32b89: 0x6dc44820, 0x32b8a: 0x6dc44a20, 0x32b8b: 0x6de14c20, - 0x32b8c: 0x6de14e20, 0x32b8d: 0x6e0d2020, 0x32b8e: 0x6e0d2220, 0x32b8f: 0x6e3d1420, - 0x32b90: 0x6de15020, 0x32b91: 0x6e45be20, 0x32b92: 0x6c03e820, 0x32b93: 0x6c03ea20, - 0x32b94: 0x6c03ec20, 0x32b95: 0x6c07ec20, 0x32b96: 0x6c07ee20, 0x32b97: 0x6c07f020, - 0x32b98: 0x6c07f220, 0x32b99: 0x6c07f420, 0x32b9a: 0x6c07f620, 0x32b9b: 0x6c07f820, - 0x32b9c: 0x6c04f620, 0x32b9d: 0x6c0f4420, 0x32b9e: 0x6c0f4620, 0x32b9f: 0x6c0f4820, - 0x32ba0: 0x6c0f4a20, 0x32ba1: 0x6c0f4c20, 0x32ba2: 0x6c0f4e20, 0x32ba3: 0x6c0f5020, - 0x32ba4: 0x6c0f5220, 0x32ba5: 0x6c1b9a20, 0x32ba6: 0x6c1b9c20, 0x32ba7: 0x6c1b9e20, - 0x32ba8: 0x6c1ba020, 0x32ba9: 0x6c1ba220, 0x32baa: 0x6c1ba420, 0x32bab: 0x6c1ba620, - 0x32bac: 0x6c1ba820, 0x32bad: 0x6c1baa20, 0x32bae: 0x6c1bac20, 0x32baf: 0x6c1bae20, - 0x32bb0: 0x6c1bb020, 0x32bb1: 0x6c1bb220, 0x32bb2: 0x6c1bb420, 0x32bb3: 0x6c1bb620, - 0x32bb4: 0x6c1bb820, 0x32bb5: 0x6c1bba20, 0x32bb6: 0x6c1bbc20, 0x32bb7: 0x6c2eba20, - 0x32bb8: 0x6c2ebc20, 0x32bb9: 0x6c2ebe20, 0x32bba: 0x6c2ec020, 0x32bbb: 0x6c2ec220, - 0x32bbc: 0x6c2ec420, 0x32bbd: 0x6c2ec620, 0x32bbe: 0x6c2ec820, 0x32bbf: 0x6c2eca20, - // Block 0xcaf, offset 0x32bc0 - 0x32bc0: 0x6c2ecc20, 0x32bc1: 0x6c2ece20, 0x32bc2: 0x6c2ed020, 0x32bc3: 0x6c2ed220, - 0x32bc4: 0x6c2ed420, 0x32bc5: 0x6c2ed620, 0x32bc6: 0x6c2ed820, 0x32bc7: 0x6c2eda20, - 0x32bc8: 0x6c2edc20, 0x32bc9: 0x6c2ede20, 0x32bca: 0x6c2ee020, 0x32bcb: 0x6c2ee220, - 0x32bcc: 0x6c2ee420, 0x32bcd: 0x6c491620, 0x32bce: 0x6c491820, 0x32bcf: 0x6c491a20, - 0x32bd0: 0x6c491c20, 0x32bd1: 0x6c491e20, 0x32bd2: 0x6c492020, 0x32bd3: 0x6c492220, - 0x32bd4: 0x6c492420, 0x32bd5: 0x6c492620, 0x32bd6: 0x6c492820, 0x32bd7: 0x6c492a20, - 0x32bd8: 0x6c492c20, 0x32bd9: 0x6c492e20, 0x32bda: 0x6c493020, 0x32bdb: 0x6c493220, - 0x32bdc: 0x6c493420, 0x32bdd: 0x6c6ab420, 0x32bde: 0x6c6ab620, 0x32bdf: 0x6c6ab820, - 0x32be0: 0x6c6aba20, 0x32be1: 0x6c6abc20, 0x32be2: 0x6c6abe20, 0x32be3: 0x6c6ac020, - 0x32be4: 0x6c6ac220, 0x32be5: 0x6c6ac420, 0x32be6: 0x6c6ac620, 0x32be7: 0x6c6ac820, - 0x32be8: 0x6c6aca20, 0x32be9: 0x6c6acc20, 0x32bea: 0x6c6ace20, 0x32beb: 0x6c6ad020, - 0x32bec: 0x6c6ad220, 0x32bed: 0x6c6ad420, 0x32bee: 0x6c6ad620, 0x32bef: 0x6c6ad820, - 0x32bf0: 0x6c6ada20, 0x32bf1: 0x6c6adc20, 0x32bf2: 0x6c6ade20, 0x32bf3: 0x6c6ae020, - 0x32bf4: 0x6c91a620, 0x32bf5: 0x6c91a820, 0x32bf6: 0x6c91aa20, 0x32bf7: 0x6c91ac20, - 0x32bf8: 0x6c91ae20, 0x32bf9: 0x6c91b020, 0x32bfa: 0x6c91b220, 0x32bfb: 0x6c91b420, - 0x32bfc: 0x6c91b620, 0x32bfd: 0x6c91b820, 0x32bfe: 0x6c91ba20, 0x32bff: 0x6c91bc20, - // Block 0xcb0, offset 0x32c00 - 0x32c00: 0x6c91be20, 0x32c01: 0x6c91c020, 0x32c02: 0x6c91c220, 0x32c03: 0x6c91c420, - 0x32c04: 0x6c91c620, 0x32c05: 0x6c91c820, 0x32c06: 0x6c91ca20, 0x32c07: 0x6cbdc420, - 0x32c08: 0x6cbdc620, 0x32c09: 0x6cbdc820, 0x32c0a: 0x6cbdca20, 0x32c0b: 0x6cbdcc20, - 0x32c0c: 0x6cbdce20, 0x32c0d: 0x6cbdd020, 0x32c0e: 0x6cbdd220, 0x32c0f: 0x6cbdd420, - 0x32c10: 0x6cbdd620, 0x32c11: 0x6cbdd820, 0x32c12: 0x6cbdda20, 0x32c13: 0x6cbddc20, - 0x32c14: 0x6cbdde20, 0x32c15: 0x6cbde020, 0x32c16: 0x6cbde220, 0x32c17: 0x6cbde420, - 0x32c18: 0x6cbde620, 0x32c19: 0x6cbde820, 0x32c1a: 0x6cbdea20, 0x32c1b: 0x6cee7e20, - 0x32c1c: 0x6cee8020, 0x32c1d: 0x6cee8220, 0x32c1e: 0x6cee8420, 0x32c1f: 0x6cee8620, - 0x32c20: 0x6cee8820, 0x32c21: 0x6cee8a20, 0x32c22: 0x6cee8c20, 0x32c23: 0x6cee8e20, - 0x32c24: 0x6cee9020, 0x32c25: 0x6cee9220, 0x32c26: 0x6cee9420, 0x32c27: 0x6cee9620, - 0x32c28: 0x6cee9820, 0x32c29: 0x6cee9a20, 0x32c2a: 0x6cee9c20, 0x32c2b: 0x6cee9e20, - 0x32c2c: 0x6d1e3620, 0x32c2d: 0x6d1e3820, 0x32c2e: 0x6d1e3a20, 0x32c2f: 0x6d1e3c20, - 0x32c30: 0x6d1e3e20, 0x32c31: 0x6d1e4020, 0x32c32: 0x6d1e4220, 0x32c33: 0x6d1e4420, - 0x32c34: 0x6d1e4620, 0x32c35: 0x6d1e4820, 0x32c36: 0x6d1e4a20, 0x32c37: 0x6d4bba20, - 0x32c38: 0x6d4bbc20, 0x32c39: 0x6d4bbe20, 0x32c3a: 0x6d4bc020, 0x32c3b: 0x6d4bc220, - 0x32c3c: 0x6d4bc420, 0x32c3d: 0x6d4bc620, 0x32c3e: 0x6d4bc820, 0x32c3f: 0x6d4bca20, - // Block 0xcb1, offset 0x32c40 - 0x32c40: 0x6d4bcc20, 0x32c41: 0x6d4bce20, 0x32c42: 0x6d4bd020, 0x32c43: 0x6d4bd220, - 0x32c44: 0x6d4bd420, 0x32c45: 0x6d4bd620, 0x32c46: 0x6d792220, 0x32c47: 0x6d792420, - 0x32c48: 0x6d792620, 0x32c49: 0x6d792820, 0x32c4a: 0x6d792a20, 0x32c4b: 0x6d792c20, - 0x32c4c: 0x6d792e20, 0x32c4d: 0x6d793020, 0x32c4e: 0x6d793220, 0x32c4f: 0x6da21220, - 0x32c50: 0x6da21420, 0x32c51: 0x6da21620, 0x32c52: 0x6da21820, 0x32c53: 0x6da21a20, - 0x32c54: 0x6da21c20, 0x32c55: 0x6da21e20, 0x32c56: 0x6da22020, 0x32c57: 0x6dc44e20, - 0x32c58: 0x6de15220, 0x32c59: 0x6de15420, 0x32c5a: 0x6de15620, 0x32c5b: 0x6df95820, - 0x32c5c: 0x6e0d2420, 0x32c5d: 0x6e0d2620, 0x32c5e: 0x6e1c9420, 0x32c5f: 0x6e1c9620, - 0x32c60: 0x6e289e20, 0x32c61: 0x6e28a020, 0x32c62: 0x6e28a220, 0x32c63: 0x6e31d420, - 0x32c64: 0x6e31d620, 0x32c65: 0x6e401220, 0x32c66: 0x6c03f020, 0x32c67: 0x6c080420, - 0x32c68: 0x6c080620, 0x32c69: 0x6c080820, 0x32c6a: 0x6c080a20, 0x32c6b: 0x6c080c20, - 0x32c6c: 0x6c080e20, 0x32c6d: 0x6c081020, 0x32c6e: 0x6c0f8620, 0x32c6f: 0x6c0f8820, - 0x32c70: 0x6c0f8a20, 0x32c71: 0x6c0f8c20, 0x32c72: 0x6c0f8e20, 0x32c73: 0x6c0f9020, - 0x32c74: 0x6c0f9220, 0x32c75: 0x6c0f9420, 0x32c76: 0x6c0f9620, 0x32c77: 0x6c0f9820, - 0x32c78: 0x6c0f9a20, 0x32c79: 0x6c0f9c20, 0x32c7a: 0x6c0f9e20, 0x32c7b: 0x6c0fa020, - 0x32c7c: 0x6c1c1820, 0x32c7d: 0x6c1c1a20, 0x32c7e: 0x6c1c1c20, 0x32c7f: 0x6c1c1e20, - // Block 0xcb2, offset 0x32c80 - 0x32c80: 0x6c1c2020, 0x32c81: 0x6c1c2220, 0x32c82: 0x6c1c2420, 0x32c83: 0x6c1c2620, - 0x32c84: 0x6c1c2820, 0x32c85: 0x6c1c2a20, 0x32c86: 0x6c1c2c20, 0x32c87: 0x6c1c2e20, - 0x32c88: 0x6c1c3020, 0x32c89: 0x6c1c3220, 0x32c8a: 0x6c1c3420, 0x32c8b: 0x6c1c3620, - 0x32c8c: 0x6c1c3820, 0x32c8d: 0x6c1c3a20, 0x32c8e: 0x6c1c3c20, 0x32c8f: 0x6c1c3e20, - 0x32c90: 0x6c1c4020, 0x32c91: 0x6c1c4220, 0x32c92: 0x6c1c4420, 0x32c93: 0x6c1c4620, - 0x32c94: 0x6c1c4820, 0x32c95: 0x6c1c4a20, 0x32c96: 0x6c1c4c20, 0x32c97: 0x6c1c4e20, - 0x32c98: 0x6c1c5020, 0x32c99: 0x6c2f6e20, 0x32c9a: 0x6c2f7020, 0x32c9b: 0x6c2f7220, - 0x32c9c: 0x6c2f7420, 0x32c9d: 0x6c2f7620, 0x32c9e: 0x6c2f7820, 0x32c9f: 0x6c2f7a20, - 0x32ca0: 0x6c2f7c20, 0x32ca1: 0x6c2f7e20, 0x32ca2: 0x6c2f8020, 0x32ca3: 0x6c2f8220, - 0x32ca4: 0x6c2f8420, 0x32ca5: 0x6c2f8620, 0x32ca6: 0x6c2f8820, 0x32ca7: 0x6c2f8a20, - 0x32ca8: 0x6c2f8c20, 0x32ca9: 0x6c2f8e20, 0x32caa: 0x6c2f9020, 0x32cab: 0x6c2f9220, - 0x32cac: 0x6c2f9420, 0x32cad: 0x6c2f9620, 0x32cae: 0x6c2f9820, 0x32caf: 0x6c2f9a20, - 0x32cb0: 0x6c2f9c20, 0x32cb1: 0x6c2f9e20, 0x32cb2: 0x6c2fa020, 0x32cb3: 0x6c2fa220, - 0x32cb4: 0x6c2fa420, 0x32cb5: 0x6c2fa620, 0x32cb6: 0x6c2fa820, 0x32cb7: 0x6c2faa20, - 0x32cb8: 0x6c2fac20, 0x32cb9: 0x6c2fae20, 0x32cba: 0x6c2fb020, 0x32cbb: 0x6c2fb220, - 0x32cbc: 0x6c2fb420, 0x32cbd: 0x6c2fb620, 0x32cbe: 0x6c2fb820, 0x32cbf: 0x6c2fba20, - // Block 0xcb3, offset 0x32cc0 - 0x32cc0: 0x6c2fbc20, 0x32cc1: 0x6c2fbe20, 0x32cc2: 0x6c49b420, 0x32cc3: 0x6c49b620, - 0x32cc4: 0x6c49b820, 0x32cc5: 0x6c49ba20, 0x32cc6: 0x6c49bc20, 0x32cc7: 0x6c49be20, - 0x32cc8: 0x6c49c020, 0x32cc9: 0x6c49c220, 0x32cca: 0x6c49c420, 0x32ccb: 0x6c49c620, - 0x32ccc: 0x6c49c820, 0x32ccd: 0x6c49ca20, 0x32cce: 0x6c49cc20, 0x32ccf: 0x6c49ce20, - 0x32cd0: 0x6c49d020, 0x32cd1: 0x6c49d220, 0x32cd2: 0x6c49d420, 0x32cd3: 0x6c49d620, - 0x32cd4: 0x6c49d820, 0x32cd5: 0x6c49da20, 0x32cd6: 0x6c49dc20, 0x32cd7: 0x6c49de20, - 0x32cd8: 0x6c49e020, 0x32cd9: 0x6c49e220, 0x32cda: 0x6c49e420, 0x32cdb: 0x6c49e620, - 0x32cdc: 0x6c49e820, 0x32cdd: 0x6c49ea20, 0x32cde: 0x6c49ec20, 0x32cdf: 0x6c49ee20, - 0x32ce0: 0x6c49f020, 0x32ce1: 0x6c49f220, 0x32ce2: 0x6c49f420, 0x32ce3: 0x6c49f620, - 0x32ce4: 0x6c49f820, 0x32ce5: 0x6c49fa20, 0x32ce6: 0x6c49fc20, 0x32ce7: 0x6c49fe20, - 0x32ce8: 0x6c4a0020, 0x32ce9: 0x6c4a0220, 0x32cea: 0x6c4a0420, 0x32ceb: 0x6c4a0620, - 0x32cec: 0x6c4a0820, 0x32ced: 0x6c4a0a20, 0x32cee: 0x6c6b6c20, 0x32cef: 0x6c6b6e20, - 0x32cf0: 0x6c6b7020, 0x32cf1: 0x6c6b7220, 0x32cf2: 0x6c6b7420, 0x32cf3: 0x6c6b7620, - 0x32cf4: 0x6c6b7820, 0x32cf5: 0x6c6b7a20, 0x32cf6: 0x6c6b7c20, 0x32cf7: 0x6c6b7e20, - 0x32cf8: 0x6c6b8020, 0x32cf9: 0x6c6b8220, 0x32cfa: 0x6c6b8420, 0x32cfb: 0x6c6b8620, - 0x32cfc: 0x6c6b8820, 0x32cfd: 0x6c6b8a20, 0x32cfe: 0x6c6b8c20, 0x32cff: 0x6c6b8e20, - // Block 0xcb4, offset 0x32d00 - 0x32d00: 0x6c6b9020, 0x32d01: 0x6c6b9220, 0x32d02: 0x6c6b9420, 0x32d03: 0x6c6b9620, - 0x32d04: 0x6c6b9820, 0x32d05: 0x6c6b9a20, 0x32d06: 0x6c6b9c20, 0x32d07: 0x6c6b9e20, - 0x32d08: 0x6c6ba020, 0x32d09: 0x6c6ba220, 0x32d0a: 0x6c6ba420, 0x32d0b: 0x6c6ba620, - 0x32d0c: 0x6c6ba820, 0x32d0d: 0x6c6baa20, 0x32d0e: 0x6c6bac20, 0x32d0f: 0x6c6bae20, - 0x32d10: 0x6c6bb020, 0x32d11: 0x6c6bb220, 0x32d12: 0x6c6bb420, 0x32d13: 0x6c6bb620, - 0x32d14: 0x6c6bb820, 0x32d15: 0x6c6bba20, 0x32d16: 0x6c6bbc20, 0x32d17: 0x6c6bbe20, - 0x32d18: 0x6c6bc020, 0x32d19: 0x6c6bc220, 0x32d1a: 0x6c6bc420, 0x32d1b: 0x6c6bc620, - 0x32d1c: 0x6c6bc820, 0x32d1d: 0x6c6bca20, 0x32d1e: 0x6c927020, 0x32d1f: 0x6c927220, - 0x32d20: 0x6c927420, 0x32d21: 0x6c927620, 0x32d22: 0x6c927820, 0x32d23: 0x6c927a20, - 0x32d24: 0x6c927c20, 0x32d25: 0x6c927e20, 0x32d26: 0x6c928020, 0x32d27: 0x6c928220, - 0x32d28: 0x6c928420, 0x32d29: 0x6c928620, 0x32d2a: 0x6c928820, 0x32d2b: 0x6c928a20, - 0x32d2c: 0x6c928c20, 0x32d2d: 0x6c928e20, 0x32d2e: 0x6c929020, 0x32d2f: 0x6c929220, - 0x32d30: 0x6c929420, 0x32d31: 0x6c929620, 0x32d32: 0x6c929820, 0x32d33: 0x6c929a20, - 0x32d34: 0x6c929c20, 0x32d35: 0x6c929e20, 0x32d36: 0x6c92a020, 0x32d37: 0x6c92a220, - 0x32d38: 0x6c92a420, 0x32d39: 0x6c92a620, 0x32d3a: 0x6c92a820, 0x32d3b: 0x6c92aa20, - 0x32d3c: 0x6c92ac20, 0x32d3d: 0x6c92ae20, 0x32d3e: 0x6c92b020, 0x32d3f: 0x6c92b220, - // Block 0xcb5, offset 0x32d40 - 0x32d40: 0x6c92b420, 0x32d41: 0x6c92b620, 0x32d42: 0x6c92b820, 0x32d43: 0x6c92ba20, - 0x32d44: 0x6c92bc20, 0x32d45: 0x6c92be20, 0x32d46: 0x6c92c020, 0x32d47: 0x6c92c220, - 0x32d48: 0x6c92c420, 0x32d49: 0x6c92c620, 0x32d4a: 0x6c92c820, 0x32d4b: 0x6c92ca20, - 0x32d4c: 0x6c92cc20, 0x32d4d: 0x6c92ce20, 0x32d4e: 0x6c92d020, 0x32d4f: 0x6c92d220, - 0x32d50: 0x6c92d420, 0x32d51: 0x6c92d620, 0x32d52: 0x6c92d820, 0x32d53: 0x6c92da20, - 0x32d54: 0x6c92dc20, 0x32d55: 0x6c92de20, 0x32d56: 0x6c92e020, 0x32d57: 0x6c92e220, - 0x32d58: 0x6c92e420, 0x32d59: 0x6c92e620, 0x32d5a: 0x6c92e820, 0x32d5b: 0x6c92ea20, - 0x32d5c: 0x6cbe9020, 0x32d5d: 0x6cbe9220, 0x32d5e: 0x6cbe9420, 0x32d5f: 0x6cbe9620, - 0x32d60: 0x6cbe9820, 0x32d61: 0x6cbe9a20, 0x32d62: 0x6cbe9c20, 0x32d63: 0x6cbe9e20, - 0x32d64: 0x6cbea020, 0x32d65: 0x6cbea220, 0x32d66: 0x6cbea420, 0x32d67: 0x6cbea620, - 0x32d68: 0x6cbea820, 0x32d69: 0x6cbeaa20, 0x32d6a: 0x6cbeac20, 0x32d6b: 0x6cbeae20, - 0x32d6c: 0x6cbeb020, 0x32d6d: 0x6cbeb220, 0x32d6e: 0x6cbeb420, 0x32d6f: 0x6cbeb620, - 0x32d70: 0x6cbeb820, 0x32d71: 0x6cbeba20, 0x32d72: 0x6cbebc20, 0x32d73: 0x6cbebe20, - 0x32d74: 0x6cbec020, 0x32d75: 0x6cbec220, 0x32d76: 0x6cbec420, 0x32d77: 0x6cbec620, - 0x32d78: 0x6cbec820, 0x32d79: 0x6cbeca20, 0x32d7a: 0x6cbecc20, 0x32d7b: 0x6cbece20, - 0x32d7c: 0x6cbed020, 0x32d7d: 0x6cbed220, 0x32d7e: 0x6cbed420, 0x32d7f: 0x6cbed620, - // Block 0xcb6, offset 0x32d80 - 0x32d80: 0x6cbed820, 0x32d81: 0x6cbeda20, 0x32d82: 0x6cbedc20, 0x32d83: 0x6cbede20, - 0x32d84: 0x6cbee020, 0x32d85: 0x6cbee220, 0x32d86: 0x6cbee420, 0x32d87: 0x6cbee620, - 0x32d88: 0x6cbee820, 0x32d89: 0x6cbeea20, 0x32d8a: 0x6cbeec20, 0x32d8b: 0x6cbeee20, - 0x32d8c: 0x6cbef020, 0x32d8d: 0x6cbef220, 0x32d8e: 0x6cbef420, 0x32d8f: 0x6cbef620, - 0x32d90: 0x6cbef820, 0x32d91: 0x6cbefa20, 0x32d92: 0x6cbefc20, 0x32d93: 0x6cbefe20, - 0x32d94: 0x6cbf0020, 0x32d95: 0x6cbf0220, 0x32d96: 0x6cbf0420, 0x32d97: 0x6cbf0620, - 0x32d98: 0x6cbf0820, 0x32d99: 0x6cbf0a20, 0x32d9a: 0x6cbf0c20, 0x32d9b: 0x6cbf0e20, - 0x32d9c: 0x6cbf1020, 0x32d9d: 0x6cbf1220, 0x32d9e: 0x6cbf1420, 0x32d9f: 0x6cbf1620, - 0x32da0: 0x6cbf1820, 0x32da1: 0x6cbf1a20, 0x32da2: 0x6cbf1c20, 0x32da3: 0x6cbf1e20, - 0x32da4: 0x6cbf2020, 0x32da5: 0x6cbf2220, 0x32da6: 0x6cbf2420, 0x32da7: 0x6cbf2620, - 0x32da8: 0x6cef1020, 0x32da9: 0x6cef1220, 0x32daa: 0x6cef1420, 0x32dab: 0x6cef1620, - 0x32dac: 0x6cef1820, 0x32dad: 0x6cef1a20, 0x32dae: 0x6cef1c20, 0x32daf: 0x6cef1e20, - 0x32db0: 0x6cef2020, 0x32db1: 0x6cef2220, 0x32db2: 0x6cef2420, 0x32db3: 0x6cef2620, - 0x32db4: 0x6cef2820, 0x32db5: 0x6cef2a20, 0x32db6: 0x6cef2c20, 0x32db7: 0x6cef2e20, - 0x32db8: 0x6cef3020, 0x32db9: 0x6cef3220, 0x32dba: 0x6cef3420, 0x32dbb: 0x6cef3620, - 0x32dbc: 0x6cef3820, 0x32dbd: 0x6cef3a20, 0x32dbe: 0x6cef3c20, 0x32dbf: 0x6cef3e20, - // Block 0xcb7, offset 0x32dc0 - 0x32dc0: 0x6cef4020, 0x32dc1: 0x6cef4220, 0x32dc2: 0x6cef4420, 0x32dc3: 0x6cef4620, - 0x32dc4: 0x6cef4820, 0x32dc5: 0x6cef4a20, 0x32dc6: 0x6cef4c20, 0x32dc7: 0x6cef4e20, - 0x32dc8: 0x6cef5020, 0x32dc9: 0x6cef5220, 0x32dca: 0x6cef5420, 0x32dcb: 0x6cef5620, - 0x32dcc: 0x6cef5820, 0x32dcd: 0x6cef5a20, 0x32dce: 0x6cef5c20, 0x32dcf: 0x6cef5e20, - 0x32dd0: 0x6cef6020, 0x32dd1: 0x6cef6220, 0x32dd2: 0x6cef6420, 0x32dd3: 0x6cef6620, - 0x32dd4: 0x6cef6820, 0x32dd5: 0x6cef6a20, 0x32dd6: 0x6d4c2220, 0x32dd7: 0x6d1eaa20, - 0x32dd8: 0x6d4c2420, 0x32dd9: 0x6d1eac20, 0x32dda: 0x6d1eae20, 0x32ddb: 0x6d1eb020, - 0x32ddc: 0x6d1eb220, 0x32ddd: 0x6d1eb420, 0x32dde: 0x6d1eb620, 0x32ddf: 0x6d1eb820, - 0x32de0: 0x6d1eba20, 0x32de1: 0x6d1ebc20, 0x32de2: 0x6d1ebe20, 0x32de3: 0x6cbf2820, - 0x32de4: 0x6d1ec020, 0x32de5: 0x6d1ec220, 0x32de6: 0x6d1ec420, 0x32de7: 0x6d1ec620, - 0x32de8: 0x6d1ec820, 0x32de9: 0x6d1eca20, 0x32dea: 0x6d1ecc20, 0x32deb: 0x6d1ece20, - 0x32dec: 0x6d1ed020, 0x32ded: 0x6d1ed220, 0x32dee: 0x6d1ed420, 0x32def: 0x6d1ed620, - 0x32df0: 0x6d1ed820, 0x32df1: 0x6d1eda20, 0x32df2: 0x6d4c2620, 0x32df3: 0x6d1edc20, - 0x32df4: 0x6d1ede20, 0x32df5: 0x6d1ee020, 0x32df6: 0x6d1ee220, 0x32df7: 0x6d1ee420, - 0x32df8: 0x6d1ee620, 0x32df9: 0x6d1ee820, 0x32dfa: 0x6d1eea20, 0x32dfb: 0x6d1eec20, - 0x32dfc: 0x6d1eee20, 0x32dfd: 0x6d1ef020, 0x32dfe: 0x6d1ef220, 0x32dff: 0x6d1ef420, - // Block 0xcb8, offset 0x32e00 - 0x32e00: 0x6d1ef620, 0x32e01: 0x6d1ef820, 0x32e02: 0x6d1efa20, 0x32e03: 0x6d1efc20, - 0x32e04: 0x6d1efe20, 0x32e05: 0x6d1f0020, 0x32e06: 0x6d1f0220, 0x32e07: 0x6d1f0420, - 0x32e08: 0x6d1f0620, 0x32e09: 0x6d1f0820, 0x32e0a: 0x6d1f0a20, 0x32e0b: 0x6d1f0c20, - 0x32e0c: 0x6d1f0e20, 0x32e0d: 0x6d1f1020, 0x32e0e: 0x6d1f1220, 0x32e0f: 0x6d4c2820, - 0x32e10: 0x6d4c2a20, 0x32e11: 0x6d4c2c20, 0x32e12: 0x6d4c2e20, 0x32e13: 0x6d4c3020, - 0x32e14: 0x6d4c3220, 0x32e15: 0x6d4c3420, 0x32e16: 0x6d4c3620, 0x32e17: 0x6d4c3820, - 0x32e18: 0x6d4c3a20, 0x32e19: 0x6d4c3c20, 0x32e1a: 0x6d4c3e20, 0x32e1b: 0x6d4c4020, - 0x32e1c: 0x6d4c4220, 0x32e1d: 0x6d4c4420, 0x32e1e: 0x6d4c4620, 0x32e1f: 0x6d4c4820, - 0x32e20: 0x6d4c4a20, 0x32e21: 0x6d4c4c20, 0x32e22: 0x6d4c4e20, 0x32e23: 0x6d4c5020, - 0x32e24: 0x6d4c5220, 0x32e25: 0x6d4c5420, 0x32e26: 0x6d4c5620, 0x32e27: 0x6d4c5820, - 0x32e28: 0x6d4c5a20, 0x32e29: 0x6d4c5c20, 0x32e2a: 0x6d4c5e20, 0x32e2b: 0x6d4c6020, - 0x32e2c: 0x6d4c6220, 0x32e2d: 0x6d4c6420, 0x32e2e: 0x6d4c6620, 0x32e2f: 0x6d4c6820, - 0x32e30: 0x6d4c6a20, 0x32e31: 0x6d4c6c20, 0x32e32: 0x6d4c6e20, 0x32e33: 0x6d4c7020, - 0x32e34: 0x6d4c7220, 0x32e35: 0x6d4c7420, 0x32e36: 0x6d4c7620, 0x32e37: 0x6d4c7820, - 0x32e38: 0x6d4c7a20, 0x32e39: 0x6d4c7c20, 0x32e3a: 0x6d4c7e20, 0x32e3b: 0x6d4c8020, - 0x32e3c: 0x6d4c8220, 0x32e3d: 0x6d4c8420, 0x32e3e: 0x6d4c8620, 0x32e3f: 0x6d4c8820, - // Block 0xcb9, offset 0x32e40 - 0x32e40: 0x6d4c8a20, 0x32e41: 0x6d4c8c20, 0x32e42: 0x6d4c8e20, 0x32e43: 0x6d4c9020, - 0x32e44: 0x6d4c9220, 0x32e45: 0x6d4c9420, 0x32e46: 0x6d4c9620, 0x32e47: 0x6d4c9820, - 0x32e48: 0x6d4c9a20, 0x32e49: 0x6d4c9c20, 0x32e4a: 0x6d4c9e20, 0x32e4b: 0x6d4ca020, - 0x32e4c: 0x6d4ca220, 0x32e4d: 0x6d4ca420, 0x32e4e: 0x6d796a20, 0x32e4f: 0x6d601620, - 0x32e50: 0x6d4ca620, 0x32e51: 0x6d796c20, 0x32e52: 0x6d796e20, 0x32e53: 0x6d797020, - 0x32e54: 0x6d797220, 0x32e55: 0x6d797420, 0x32e56: 0x6d797620, 0x32e57: 0x6d797820, - 0x32e58: 0x6d797a20, 0x32e59: 0x6d797c20, 0x32e5a: 0x6d797e20, 0x32e5b: 0x6d798020, - 0x32e5c: 0x6d798220, 0x32e5d: 0x6d798420, 0x32e5e: 0x6d798620, 0x32e5f: 0x6d798820, - 0x32e60: 0x6d798a20, 0x32e61: 0x6d798c20, 0x32e62: 0x6d798e20, 0x32e63: 0x6d799020, - 0x32e64: 0x6d799220, 0x32e65: 0x6d799420, 0x32e66: 0x6d799620, 0x32e67: 0x6d799820, - 0x32e68: 0x6d799a20, 0x32e69: 0x6d799c20, 0x32e6a: 0x6d799e20, 0x32e6b: 0x6d79a020, - 0x32e6c: 0x6d79a220, 0x32e6d: 0x6d79a420, 0x32e6e: 0x6d79a620, 0x32e6f: 0x6d79a820, - 0x32e70: 0x6d79aa20, 0x32e71: 0x6d79ac20, 0x32e72: 0x6d79ae20, 0x32e73: 0x6d79b020, - 0x32e74: 0x6d79b220, 0x32e75: 0x6d79b420, 0x32e76: 0x6d79b620, 0x32e77: 0x6d79b820, - 0x32e78: 0x6d79ba20, 0x32e79: 0x6d79bc20, 0x32e7a: 0x6d79be20, 0x32e7b: 0x6d79c020, - 0x32e7c: 0x6d79c220, 0x32e7d: 0x6d79c420, 0x32e7e: 0x6d79c620, 0x32e7f: 0x6d79c820, - // Block 0xcba, offset 0x32e80 - 0x32e80: 0x6d79ca20, 0x32e81: 0x6d79cc20, 0x32e82: 0x6d79ce20, 0x32e83: 0x6d79d020, - 0x32e84: 0x6d79d220, 0x32e85: 0x6da24c20, 0x32e86: 0x6da24e20, 0x32e87: 0x6da25020, - 0x32e88: 0x6da25220, 0x32e89: 0x6da25420, 0x32e8a: 0x6da25620, 0x32e8b: 0x6da25820, - 0x32e8c: 0x6da25a20, 0x32e8d: 0x6da25c20, 0x32e8e: 0x6da25e20, 0x32e8f: 0x6da26020, - 0x32e90: 0x6da26220, 0x32e91: 0x6da26420, 0x32e92: 0x6da26620, 0x32e93: 0x6da26820, - 0x32e94: 0x6da26a20, 0x32e95: 0x6da26c20, 0x32e96: 0x6da26e20, 0x32e97: 0x6da27020, - 0x32e98: 0x6da27220, 0x32e99: 0x6da27420, 0x32e9a: 0x6da27620, 0x32e9b: 0x6da27820, - 0x32e9c: 0x6da27a20, 0x32e9d: 0x6da27c20, 0x32e9e: 0x6da27e20, 0x32e9f: 0x6da28020, - 0x32ea0: 0x6da28220, 0x32ea1: 0x6da28420, 0x32ea2: 0x6db99820, 0x32ea3: 0x6da28620, - 0x32ea4: 0x6da28820, 0x32ea5: 0x6da28a20, 0x32ea6: 0x6da28c20, 0x32ea7: 0x6da28e20, - 0x32ea8: 0x6da29020, 0x32ea9: 0x6da29220, 0x32eaa: 0x6dc46020, 0x32eab: 0x6dc46220, - 0x32eac: 0x6dc46420, 0x32ead: 0x6dc46620, 0x32eae: 0x6dc46820, 0x32eaf: 0x6dc46a20, - 0x32eb0: 0x6dc46c20, 0x32eb1: 0x6dc46e20, 0x32eb2: 0x6dc47020, 0x32eb3: 0x6dc47220, - 0x32eb4: 0x6dc47420, 0x32eb5: 0x6dc47620, 0x32eb6: 0x6dc47820, 0x32eb7: 0x6dc47a20, - 0x32eb8: 0x6dc47c20, 0x32eb9: 0x6dc47e20, 0x32eba: 0x6dc48020, 0x32ebb: 0x6dc48220, - 0x32ebc: 0x6dc48420, 0x32ebd: 0x6de16820, 0x32ebe: 0x6de16a20, 0x32ebf: 0x6de16c20, - // Block 0xcbb, offset 0x32ec0 - 0x32ec0: 0x6de16e20, 0x32ec1: 0x6de17020, 0x32ec2: 0x6de17220, 0x32ec3: 0x6de17420, - 0x32ec4: 0x6de17620, 0x32ec5: 0x6de17820, 0x32ec6: 0x6de17a20, 0x32ec7: 0x6de17c20, - 0x32ec8: 0x6de17e20, 0x32ec9: 0x6de18020, 0x32eca: 0x6de18220, 0x32ecb: 0x6de18420, - 0x32ecc: 0x6de18620, 0x32ecd: 0x6de18820, 0x32ece: 0x6df97020, 0x32ecf: 0x6df97220, - 0x32ed0: 0x6df97420, 0x32ed1: 0x6df97620, 0x32ed2: 0x6df97820, 0x32ed3: 0x6df97a20, - 0x32ed4: 0x6df97c20, 0x32ed5: 0x6df97e20, 0x32ed6: 0x6df98020, 0x32ed7: 0x6df98220, - 0x32ed8: 0x6e0d3020, 0x32ed9: 0x6e0d3220, 0x32eda: 0x6e0d3420, 0x32edb: 0x6e0d3620, - 0x32edc: 0x6e0d3820, 0x32edd: 0x6e0d3a20, 0x32ede: 0x6de18a20, 0x32edf: 0x6e0d3c20, - 0x32ee0: 0x6e0d3e20, 0x32ee1: 0x6e1ca020, 0x32ee2: 0x6e1ca220, 0x32ee3: 0x6e1ca420, - 0x32ee4: 0x6e1ca620, 0x32ee5: 0x6e1ca820, 0x32ee6: 0x6e1caa20, 0x32ee7: 0x6e1cac20, - 0x32ee8: 0x6e1cae20, 0x32ee9: 0x6e1cb020, 0x32eea: 0x6e1cb220, 0x32eeb: 0x6e28a820, - 0x32eec: 0x6e28aa20, 0x32eed: 0x6e28ac20, 0x32eee: 0x6e31dc20, 0x32eef: 0x6e31de20, - 0x32ef0: 0x6e31e020, 0x32ef1: 0x6e31e220, 0x32ef2: 0x6e31e420, 0x32ef3: 0x6e31e620, - 0x32ef4: 0x6e386220, 0x32ef5: 0x6e386420, 0x32ef6: 0x6e386620, 0x32ef7: 0x6e401420, - 0x32ef8: 0x6e401620, 0x32ef9: 0x6e401820, 0x32efa: 0x6e401a20, 0x32efb: 0x6e467e20, - 0x32efc: 0x6c019e20, 0x32efd: 0x6c03f420, 0x32efe: 0x6c081420, 0x32eff: 0x6c081620, - // Block 0xcbc, offset 0x32f00 - 0x32f00: 0x6c081820, 0x32f01: 0x6c081a20, 0x32f02: 0x6c081c20, 0x32f03: 0x6c0fb220, - 0x32f04: 0x6c0fb420, 0x32f05: 0x6c0fb620, 0x32f06: 0x6c1c7020, 0x32f07: 0x6c1c7220, - 0x32f08: 0x6c1c7420, 0x32f09: 0x6c1c7620, 0x32f0a: 0x6c1c7820, 0x32f0b: 0x6c18cc20, - 0x32f0c: 0x6c1c7a20, 0x32f0d: 0x6c1c7c20, 0x32f0e: 0x6c2fde20, 0x32f0f: 0x6c2fe020, - 0x32f10: 0x6c2fe220, 0x32f11: 0x6c2fe420, 0x32f12: 0x6c2fe620, 0x32f13: 0x6c2fe820, - 0x32f14: 0x6c2fea20, 0x32f15: 0x6c2fec20, 0x32f16: 0x6c2fee20, 0x32f17: 0x6c2ff020, - 0x32f18: 0x6c2ff220, 0x32f19: 0x6c2ff420, 0x32f1a: 0x6c2ff620, 0x32f1b: 0x6c4a2420, - 0x32f1c: 0x6c4a2620, 0x32f1d: 0x6c4a2820, 0x32f1e: 0x6c4a2a20, 0x32f1f: 0x6c4a2c20, - 0x32f20: 0x6c4a2e20, 0x32f21: 0x6c4a3020, 0x32f22: 0x6c4a3220, 0x32f23: 0x6c4a3420, - 0x32f24: 0x6c4a3620, 0x32f25: 0x6c4a3820, 0x32f26: 0x6c4a3a20, 0x32f27: 0x6c4a3c20, - 0x32f28: 0x6c6be620, 0x32f29: 0x6c6be820, 0x32f2a: 0x6c6bea20, 0x32f2b: 0x6c6bec20, - 0x32f2c: 0x6c6bee20, 0x32f2d: 0x6c6bf020, 0x32f2e: 0x6c930c20, 0x32f2f: 0x6c930e20, - 0x32f30: 0x6c931020, 0x32f31: 0x6c931220, 0x32f32: 0x6c931420, 0x32f33: 0x6c931620, - 0x32f34: 0x6c931820, 0x32f35: 0x6c931a20, 0x32f36: 0x6cbf4620, 0x32f37: 0x6cbf4820, - 0x32f38: 0x6cbf4a20, 0x32f39: 0x6cbf4c20, 0x32f3a: 0x6cbf4e20, 0x32f3b: 0x6cbf5020, - 0x32f3c: 0x6cbf5220, 0x32f3d: 0x6cbf5420, 0x32f3e: 0x6cbf5620, 0x32f3f: 0x6cbf5820, - // Block 0xcbd, offset 0x32f40 - 0x32f40: 0x6cbf5a20, 0x32f41: 0x6cbf5c20, 0x32f42: 0x6cbf5e20, 0x32f43: 0x6cef7c20, - 0x32f44: 0x6cef7e20, 0x32f45: 0x6cef8020, 0x32f46: 0x6cef8220, 0x32f47: 0x6cef8420, - 0x32f48: 0x6cef8620, 0x32f49: 0x6cef8820, 0x32f4a: 0x6cef8a20, 0x32f4b: 0x6cef8c20, - 0x32f4c: 0x6cef8e20, 0x32f4d: 0x6cef9020, 0x32f4e: 0x6cef9220, 0x32f4f: 0x6cef9420, - 0x32f50: 0x6cef9620, 0x32f51: 0x6d1f2e20, 0x32f52: 0x6d1f3020, 0x32f53: 0x6d1f3220, - 0x32f54: 0x6d1f3420, 0x32f55: 0x6d1f3620, 0x32f56: 0x6d1f3820, 0x32f57: 0x6d4cb820, - 0x32f58: 0x6d4cba20, 0x32f59: 0x6d4cbc20, 0x32f5a: 0x6d4cbe20, 0x32f5b: 0x6d4cc020, - 0x32f5c: 0x6d4cc220, 0x32f5d: 0x6d4cc420, 0x32f5e: 0x6d79e620, 0x32f5f: 0x6d79e820, - 0x32f60: 0x6d79ea20, 0x32f61: 0x6d79ec20, 0x32f62: 0x6d79ee20, 0x32f63: 0x6d79f020, - 0x32f64: 0x6d79f220, 0x32f65: 0x6d79f420, 0x32f66: 0x6d79f620, 0x32f67: 0x6d79f820, - 0x32f68: 0x6d79fa20, 0x32f69: 0x6da29a20, 0x32f6a: 0x6dc48e20, 0x32f6b: 0x6dc49020, - 0x32f6c: 0x6dc49220, 0x32f6d: 0x6de19220, 0x32f6e: 0x6de19420, 0x32f6f: 0x6de19620, - 0x32f70: 0x6de19820, 0x32f71: 0x6df98a20, 0x32f72: 0x6df98c20, 0x32f73: 0x6df98e20, - 0x32f74: 0x6df99020, 0x32f75: 0x6df99220, 0x32f76: 0x6df99420, 0x32f77: 0x6e1cb620, - 0x32f78: 0x6e401c20, 0x32f79: 0x6c03f820, 0x32f7a: 0x6c082a20, 0x32f7b: 0x6c082c20, - 0x32f7c: 0x6c082e20, 0x32f7d: 0x6c0fc620, 0x32f7e: 0x6c0fc820, 0x32f7f: 0x6c0fca20, - // Block 0xcbe, offset 0x32f80 - 0x32f80: 0x6c0fcc20, 0x32f81: 0x6c0fce20, 0x32f82: 0x6c0fd020, 0x32f83: 0x6c0fd220, - 0x32f84: 0x6c0fd420, 0x32f85: 0x6c0fd620, 0x32f86: 0x6c0fd820, 0x32f87: 0x6c0fda20, - 0x32f88: 0x6c0fdc20, 0x32f89: 0x6c0fde20, 0x32f8a: 0x6c0fe020, 0x32f8b: 0x6c1ca020, - 0x32f8c: 0x6c1ca220, 0x32f8d: 0x6c1ca420, 0x32f8e: 0x6c1ca620, 0x32f8f: 0x6c1ca820, - 0x32f90: 0x6c1caa20, 0x32f91: 0x6c1cac20, 0x32f92: 0x6c1cae20, 0x32f93: 0x6c1cb020, - 0x32f94: 0x6c1cb220, 0x32f95: 0x6c1cb420, 0x32f96: 0x6c301a20, 0x32f97: 0x6c301c20, - 0x32f98: 0x6c301e20, 0x32f99: 0x6c302020, 0x32f9a: 0x6c302220, 0x32f9b: 0x6c302420, - 0x32f9c: 0x6c302620, 0x32f9d: 0x6c302820, 0x32f9e: 0x6c302a20, 0x32f9f: 0x6c302c20, - 0x32fa0: 0x6c302e20, 0x32fa1: 0x6c303020, 0x32fa2: 0x6c303220, 0x32fa3: 0x6c303420, - 0x32fa4: 0x6c303620, 0x32fa5: 0x6c303820, 0x32fa6: 0x6c303a20, 0x32fa7: 0x6c303c20, - 0x32fa8: 0x6c303e20, 0x32fa9: 0x6c4a5a20, 0x32faa: 0x6c4a5c20, 0x32fab: 0x6c4a5e20, - 0x32fac: 0x6c4a6020, 0x32fad: 0x6c4a6220, 0x32fae: 0x6c4a6420, 0x32faf: 0x6c4a6620, - 0x32fb0: 0x6c4a6820, 0x32fb1: 0x6c4a6a20, 0x32fb2: 0x6c4a6c20, 0x32fb3: 0x6c4a6e20, - 0x32fb4: 0x6c4a7020, 0x32fb5: 0x6c4a7220, 0x32fb6: 0x6c4a7420, 0x32fb7: 0x6c4a7620, - 0x32fb8: 0x6c4a7820, 0x32fb9: 0x6c4a7a20, 0x32fba: 0x6c4a7c20, 0x32fbb: 0x6c4a7e20, - 0x32fbc: 0x6c4a8020, 0x32fbd: 0x6c4a8220, 0x32fbe: 0x6c4a8420, 0x32fbf: 0x6c4a8620, - // Block 0xcbf, offset 0x32fc0 - 0x32fc0: 0x6c6c2620, 0x32fc1: 0x6c6c2820, 0x32fc2: 0x6c6c2a20, 0x32fc3: 0x6c6c2c20, - 0x32fc4: 0x6c6c2e20, 0x32fc5: 0x6c6c3020, 0x32fc6: 0x6c6c3220, 0x32fc7: 0x6c6c3420, - 0x32fc8: 0x6c6c3620, 0x32fc9: 0x6c6c3820, 0x32fca: 0x6c6c3a20, 0x32fcb: 0x6c6c3c20, - 0x32fcc: 0x6c6c3e20, 0x32fcd: 0x6c6c4020, 0x32fce: 0x6c6c4220, 0x32fcf: 0x6c6c4420, - 0x32fd0: 0x6c6c4620, 0x32fd1: 0x6c6c4820, 0x32fd2: 0x6c6c4a20, 0x32fd3: 0x6c6c4c20, - 0x32fd4: 0x6c6c4e20, 0x32fd5: 0x6c6c5020, 0x32fd6: 0x6c6c5220, 0x32fd7: 0x6c6c5420, - 0x32fd8: 0x6c6c5620, 0x32fd9: 0x6c6c5820, 0x32fda: 0x6c6c5a20, 0x32fdb: 0x6c6c5c20, - 0x32fdc: 0x6c6c5e20, 0x32fdd: 0x6c6c6020, 0x32fde: 0x6c6c6220, 0x32fdf: 0x6c6c6420, - 0x32fe0: 0x6c6c6620, 0x32fe1: 0x6c6c6820, 0x32fe2: 0x6c934620, 0x32fe3: 0x6c934820, - 0x32fe4: 0x6c934a20, 0x32fe5: 0x6c934c20, 0x32fe6: 0x6c934e20, 0x32fe7: 0x6c935020, - 0x32fe8: 0x6c935220, 0x32fe9: 0x6c935420, 0x32fea: 0x6c935620, 0x32feb: 0x6c935820, - 0x32fec: 0x6c935a20, 0x32fed: 0x6c935c20, 0x32fee: 0x6c935e20, 0x32fef: 0x6c936020, - 0x32ff0: 0x6c936220, 0x32ff1: 0x6c936420, 0x32ff2: 0x6c936620, 0x32ff3: 0x6c936820, - 0x32ff4: 0x6c936a20, 0x32ff5: 0x6c936c20, 0x32ff6: 0x6c936e20, 0x32ff7: 0x6c937020, - 0x32ff8: 0x6c937220, 0x32ff9: 0x6c937420, 0x32ffa: 0x6c937620, 0x32ffb: 0x6c937820, - 0x32ffc: 0x6c937a20, 0x32ffd: 0x6cbf8220, 0x32ffe: 0x6cbf8420, 0x32fff: 0x6cbf8620, - // Block 0xcc0, offset 0x33000 - 0x33000: 0x6cbf8820, 0x33001: 0x6cbf8a20, 0x33002: 0x6cbf8c20, 0x33003: 0x6cbf8e20, - 0x33004: 0x6cbf9020, 0x33005: 0x6cbf9220, 0x33006: 0x6cbf9420, 0x33007: 0x6cbf9620, - 0x33008: 0x6cbf9820, 0x33009: 0x6cbf9a20, 0x3300a: 0x6cbf9c20, 0x3300b: 0x6cbf9e20, - 0x3300c: 0x6cbfa020, 0x3300d: 0x6cbfa220, 0x3300e: 0x6cbfa420, 0x3300f: 0x6cbfa620, - 0x33010: 0x6cbfa820, 0x33011: 0x6cbfaa20, 0x33012: 0x6cbfac20, 0x33013: 0x6cbfae20, - 0x33014: 0x6cbfb020, 0x33015: 0x6cbfb220, 0x33016: 0x6cbfb420, 0x33017: 0x6cbfb620, - 0x33018: 0x6cbfb820, 0x33019: 0x6cbfba20, 0x3301a: 0x6cbfbc20, 0x3301b: 0x6cbfbe20, - 0x3301c: 0x6cbfc020, 0x3301d: 0x6cbfc220, 0x3301e: 0x6cbfc420, 0x3301f: 0x6cefb420, - 0x33020: 0x6cefb620, 0x33021: 0x6cefb820, 0x33022: 0x6cefba20, 0x33023: 0x6cefbc20, - 0x33024: 0x6cefbe20, 0x33025: 0x6cefc020, 0x33026: 0x6cefc220, 0x33027: 0x6cefc420, - 0x33028: 0x6cefc620, 0x33029: 0x6cefc820, 0x3302a: 0x6cefca20, 0x3302b: 0x6cefcc20, - 0x3302c: 0x6cefce20, 0x3302d: 0x6cefd020, 0x3302e: 0x6cefd220, 0x3302f: 0x6cefd420, - 0x33030: 0x6cefd620, 0x33031: 0x6cefd820, 0x33032: 0x6cefda20, 0x33033: 0x6cefdc20, - 0x33034: 0x6cefde20, 0x33035: 0x6cefe020, 0x33036: 0x6cefe220, 0x33037: 0x6cefe420, - 0x33038: 0x6cefe620, 0x33039: 0x6cefe820, 0x3303a: 0x6cefea20, 0x3303b: 0x6d1f5a20, - 0x3303c: 0x6d1f5c20, 0x3303d: 0x6d1f5e20, 0x3303e: 0x6d1f6020, 0x3303f: 0x6d1f6220, - // Block 0xcc1, offset 0x33040 - 0x33040: 0x6d1f6420, 0x33041: 0x6d1f6620, 0x33042: 0x6d1f6820, 0x33043: 0x6d1f6a20, - 0x33044: 0x6d1f6c20, 0x33045: 0x6d1f6e20, 0x33046: 0x6d1f7020, 0x33047: 0x6d1f7220, - 0x33048: 0x6d1f7420, 0x33049: 0x6d1f7620, 0x3304a: 0x6d1f7820, 0x3304b: 0x6d1f7a20, - 0x3304c: 0x6d1f7c20, 0x3304d: 0x6d1f7e20, 0x3304e: 0x6d1f8020, 0x3304f: 0x6d1f8220, - 0x33050: 0x6d1f8420, 0x33051: 0x6d1f8620, 0x33052: 0x6d1f8820, 0x33053: 0x6d1f8a20, - 0x33054: 0x6d1f8c20, 0x33055: 0x6d1f8e20, 0x33056: 0x6d1f9020, 0x33057: 0x6d1f9220, - 0x33058: 0x6d1f9420, 0x33059: 0x6d1f9620, 0x3305a: 0x6d1f9820, 0x3305b: 0x6d1f9a20, - 0x3305c: 0x6d1f9c20, 0x3305d: 0x6d1f9e20, 0x3305e: 0x6d1b3020, 0x3305f: 0x6d4cd820, - 0x33060: 0x6d4cda20, 0x33061: 0x6d4cdc20, 0x33062: 0x6d4cde20, 0x33063: 0x6d4ce020, - 0x33064: 0x6d4ce220, 0x33065: 0x6d4ce420, 0x33066: 0x6d4ce620, 0x33067: 0x6d4ce820, - 0x33068: 0x6d4cea20, 0x33069: 0x6d4cec20, 0x3306a: 0x6d4cee20, 0x3306b: 0x6d4cf020, - 0x3306c: 0x6d4cf220, 0x3306d: 0x6d4cf420, 0x3306e: 0x6d4cf620, 0x3306f: 0x6d4cf820, - 0x33070: 0x6d4cfa20, 0x33071: 0x6d4cfc20, 0x33072: 0x6d4cfe20, 0x33073: 0x6d4d0020, - 0x33074: 0x6d4d0220, 0x33075: 0x6d4d0420, 0x33076: 0x6d4d0620, 0x33077: 0x6d4d0820, - 0x33078: 0x6d4d0a20, 0x33079: 0x6d4d0c20, 0x3307a: 0x6d4d0e20, 0x3307b: 0x6d4d1020, - 0x3307c: 0x6d4d1220, 0x3307d: 0x6d4d1420, 0x3307e: 0x6d7a0220, 0x3307f: 0x6d7a0420, - // Block 0xcc2, offset 0x33080 - 0x33080: 0x6d7a0620, 0x33081: 0x6d7a0820, 0x33082: 0x6d7a0a20, 0x33083: 0x6d7a0c20, - 0x33084: 0x6d7a0e20, 0x33085: 0x6d7a1020, 0x33086: 0x6d7a1220, 0x33087: 0x6d7a1420, - 0x33088: 0x6d7a1620, 0x33089: 0x6d7a1820, 0x3308a: 0x6d7a1a20, 0x3308b: 0x6d7a1c20, - 0x3308c: 0x6d7a1e20, 0x3308d: 0x6d7a2020, 0x3308e: 0x6d7a2220, 0x3308f: 0x6d7a2420, - 0x33090: 0x6d7a2620, 0x33091: 0x6da2a420, 0x33092: 0x6da2a620, 0x33093: 0x6da2a820, - 0x33094: 0x6da2aa20, 0x33095: 0x6da2ac20, 0x33096: 0x6da2ae20, 0x33097: 0x6da2b020, - 0x33098: 0x6da2b220, 0x33099: 0x6da2b420, 0x3309a: 0x6da2b620, 0x3309b: 0x6da2b820, - 0x3309c: 0x6da2ba20, 0x3309d: 0x6da2bc20, 0x3309e: 0x6dc49620, 0x3309f: 0x6dc49820, - 0x330a0: 0x6dc49a20, 0x330a1: 0x6dc49c20, 0x330a2: 0x6dc49e20, 0x330a3: 0x6dc4a020, - 0x330a4: 0x6dc4a220, 0x330a5: 0x6dc4a420, 0x330a6: 0x6dc4a620, 0x330a7: 0x6dc4a820, - 0x330a8: 0x6dc4aa20, 0x330a9: 0x6dc4ac20, 0x330aa: 0x6dc4ae20, 0x330ab: 0x6dc4b020, - 0x330ac: 0x6de1a020, 0x330ad: 0x6de1a220, 0x330ae: 0x6de1a420, 0x330af: 0x6de1a620, - 0x330b0: 0x6de1a820, 0x330b1: 0x6de1aa20, 0x330b2: 0x6de1ac20, 0x330b3: 0x6de1ae20, - 0x330b4: 0x6de1b020, 0x330b5: 0x6de1b220, 0x330b6: 0x6de1b420, 0x330b7: 0x6df99820, - 0x330b8: 0x6df99a20, 0x330b9: 0x6df99c20, 0x330ba: 0x6df99e20, 0x330bb: 0x6df9a020, - 0x330bc: 0x6e0d4a20, 0x330bd: 0x6e0d4c20, 0x330be: 0x6e0d4e20, 0x330bf: 0x6e0d5020, - // Block 0xcc3, offset 0x330c0 - 0x330c0: 0x6e0d5220, 0x330c1: 0x6e0d5420, 0x330c2: 0x6e0d5620, 0x330c3: 0x6e0d5820, - 0x330c4: 0x6e1cb820, 0x330c5: 0x6e1cba20, 0x330c6: 0x6e1cbc20, 0x330c7: 0x6e1cbe20, - 0x330c8: 0x6e1cc020, 0x330c9: 0x6e1cc220, 0x330ca: 0x6e1cc420, 0x330cb: 0x6e1cc620, - 0x330cc: 0x6e28b020, 0x330cd: 0x6e31e820, 0x330ce: 0x6e401e20, 0x330cf: 0x6e31ea20, - 0x330d0: 0x6e31ec20, 0x330d1: 0x6e386a20, 0x330d2: 0x6e428e20, 0x330d3: 0x6e386c20, - 0x330d4: 0x6e386e20, 0x330d5: 0x6e387020, 0x330d6: 0x6e3d1c20, 0x330d7: 0x6e3d1e20, - 0x330d8: 0x6e3d2020, 0x330d9: 0x6e402020, 0x330da: 0x6e402220, 0x330db: 0x6e442820, - 0x330dc: 0x6e46e420, 0x330dd: 0x6c03fa20, 0x330de: 0x6c0fe820, 0x330df: 0x6c304820, - 0x330e0: 0x6c304a20, 0x330e1: 0x6c304c20, 0x330e2: 0x6c304e20, 0x330e3: 0x6c305020, - 0x330e4: 0x6c305220, 0x330e5: 0x6c305420, 0x330e6: 0x6c305620, 0x330e7: 0x6c4a9420, - 0x330e8: 0x6c4a9620, 0x330e9: 0x6c4a9820, 0x330ea: 0x6c4a9a20, 0x330eb: 0x6c4a9c20, - 0x330ec: 0x6c4a9e20, 0x330ed: 0x6c6c7a20, 0x330ee: 0x6c938820, 0x330ef: 0x6c938a20, - 0x330f0: 0x6c938c20, 0x330f1: 0x6c938e20, 0x330f2: 0x6c939020, 0x330f3: 0x6cbfdc20, - 0x330f4: 0x6cbfde20, 0x330f5: 0x6cbfe020, 0x330f6: 0x6cbfe220, 0x330f7: 0x6cbfe420, - 0x330f8: 0x6cbfe620, 0x330f9: 0x6ceff820, 0x330fa: 0x6ceffa20, 0x330fb: 0x6ceffc20, - 0x330fc: 0x6ceffe20, 0x330fd: 0x6d1fae20, 0x330fe: 0x6d1fb020, 0x330ff: 0x6d1fb220, - // Block 0xcc4, offset 0x33100 - 0x33100: 0x6d1fb420, 0x33101: 0x6d1fb620, 0x33102: 0x6d1fb820, 0x33103: 0x6d4d2420, - 0x33104: 0x6d4d2620, 0x33105: 0x6d4d2820, 0x33106: 0x6d4d2a20, 0x33107: 0x6d4d2c20, - 0x33108: 0x6d4d2e20, 0x33109: 0x6d4d3020, 0x3310a: 0x6d7a3020, 0x3310b: 0x6d7a3220, - 0x3310c: 0x6d7a3420, 0x3310d: 0x6da2c020, 0x3310e: 0x6da2c220, 0x3310f: 0x6da2c420, - 0x33110: 0x6dc4b820, 0x33111: 0x6de1b620, 0x33112: 0x6df9a620, 0x33113: 0x6e0d5c20, - 0x33114: 0x6c01aa20, 0x33115: 0x6c040020, 0x33116: 0x6c040220, 0x33117: 0x6c083e20, - 0x33118: 0x6c084020, 0x33119: 0x6c0ff220, 0x3311a: 0x6c0ff420, 0x3311b: 0x6c0ff620, - 0x3311c: 0x6c0ff820, 0x3311d: 0x6c1cc420, 0x3311e: 0x6c1cc620, 0x3311f: 0x6c1cc820, - 0x33120: 0x6c1cca20, 0x33121: 0x6c1ccc20, 0x33122: 0x6c1cce20, 0x33123: 0x6c1cd020, - 0x33124: 0x6c1cd220, 0x33125: 0x6c305e20, 0x33126: 0x6c306020, 0x33127: 0x6c306220, - 0x33128: 0x6c306420, 0x33129: 0x6c306620, 0x3312a: 0x6c4aa620, 0x3312b: 0x6c4aa820, - 0x3312c: 0x6c4aaa20, 0x3312d: 0x6c4aac20, 0x3312e: 0x6c4aae20, 0x3312f: 0x6c4ab020, - 0x33130: 0x6c4ab220, 0x33131: 0x6c4ab420, 0x33132: 0x6c4ab620, 0x33133: 0x6c4ab820, - 0x33134: 0x6c6c7e20, 0x33135: 0x6c6c8020, 0x33136: 0x6c6c8220, 0x33137: 0x6c6c8420, - 0x33138: 0x6c6c8620, 0x33139: 0x6c6c8820, 0x3313a: 0x6c6c8a20, 0x3313b: 0x6c6c8c20, - 0x3313c: 0x6c6c8e20, 0x3313d: 0x6c939620, 0x3313e: 0x6c939820, 0x3313f: 0x6c939a20, - // Block 0xcc5, offset 0x33140 - 0x33140: 0x6c939c20, 0x33141: 0x6c939e20, 0x33142: 0x6c93a020, 0x33143: 0x6c93a220, - 0x33144: 0x6c93a420, 0x33145: 0x6c93a620, 0x33146: 0x6c93a820, 0x33147: 0x6c93aa20, - 0x33148: 0x6c93ac20, 0x33149: 0x6c93ae20, 0x3314a: 0x6c93b020, 0x3314b: 0x6c93b220, - 0x3314c: 0x6c93b420, 0x3314d: 0x6c93b620, 0x3314e: 0x6cbfee20, 0x3314f: 0x6cbff020, - 0x33150: 0x6cbff220, 0x33151: 0x6cbff420, 0x33152: 0x6cbff620, 0x33153: 0x6cbff820, - 0x33154: 0x6cbffa20, 0x33155: 0x6cbffc20, 0x33156: 0x6cbffe20, 0x33157: 0x6cc00020, - 0x33158: 0x6cf00620, 0x33159: 0x6cf00820, 0x3315a: 0x6cf00a20, 0x3315b: 0x6cf00c20, - 0x3315c: 0x6cf00e20, 0x3315d: 0x6cf01020, 0x3315e: 0x6d1fbe20, 0x3315f: 0x6d1fc020, - 0x33160: 0x6d1fc220, 0x33161: 0x6d1fc420, 0x33162: 0x6d1fc620, 0x33163: 0x6d1fc820, - 0x33164: 0x6d1fca20, 0x33165: 0x6d1fcc20, 0x33166: 0x6d4d3a20, 0x33167: 0x6d4d3c20, - 0x33168: 0x6d4d3e20, 0x33169: 0x6d4d4020, 0x3316a: 0x6d4d4220, 0x3316b: 0x6d4d4420, - 0x3316c: 0x6d4d4620, 0x3316d: 0x6d4d4820, 0x3316e: 0x6d4d4a20, 0x3316f: 0x6d4d4c20, - 0x33170: 0x6d7a3820, 0x33171: 0x6d7a3a20, 0x33172: 0x6d7a3c20, 0x33173: 0x6d7a3e20, - 0x33174: 0x6da2c820, 0x33175: 0x6da2ca20, 0x33176: 0x6da2cc20, 0x33177: 0x6dc4ba20, - 0x33178: 0x6dc4bc20, 0x33179: 0x6dc4be20, 0x3317a: 0x6dc4c020, 0x3317b: 0x6dc4c220, - 0x3317c: 0x6de1b820, 0x3317d: 0x6de1ba20, 0x3317e: 0x6de1bc20, 0x3317f: 0x6e0d5e20, - // Block 0xcc6, offset 0x33180 - 0x33180: 0x6e462420, 0x33181: 0x6c01ae20, 0x33182: 0x6c01b020, 0x33183: 0x6c040820, - 0x33184: 0x6c084220, 0x33185: 0x6c084420, 0x33186: 0x6c084620, 0x33187: 0x6c084820, - 0x33188: 0x6c084a20, 0x33189: 0x6c084c20, 0x3318a: 0x6c084e20, 0x3318b: 0x6c100220, - 0x3318c: 0x6c100420, 0x3318d: 0x6c100620, 0x3318e: 0x6c100820, 0x3318f: 0x6c1ce220, - 0x33190: 0x6c1ce420, 0x33191: 0x6c1ce620, 0x33192: 0x6c1ce820, 0x33193: 0x6c1cea20, - 0x33194: 0x6c1cec20, 0x33195: 0x6c1cee20, 0x33196: 0x6c1cf020, 0x33197: 0x6c1cf220, - 0x33198: 0x6c1cf420, 0x33199: 0x6c1cf620, 0x3319a: 0x6c307020, 0x3319b: 0x6c307220, - 0x3319c: 0x6c307420, 0x3319d: 0x6c307620, 0x3319e: 0x6c307820, 0x3319f: 0x6c307a20, - 0x331a0: 0x6c307c20, 0x331a1: 0x6c307e20, 0x331a2: 0x6c4ac220, 0x331a3: 0x6c4ac420, - 0x331a4: 0x6c4ac620, 0x331a5: 0x6c5fca20, 0x331a6: 0x6c4ac820, 0x331a7: 0x6c4aca20, - 0x331a8: 0x6c6c9620, 0x331a9: 0x6c6c9820, 0x331aa: 0x6c6c9a20, 0x331ab: 0x6c6c9c20, - 0x331ac: 0x6c6c9e20, 0x331ad: 0x6c6ca020, 0x331ae: 0x6c6ca220, 0x331af: 0x6c6ca420, - 0x331b0: 0x6c6ca620, 0x331b1: 0x6c6ca820, 0x331b2: 0x6c6caa20, 0x331b3: 0x6c93c020, - 0x331b4: 0x6c93c220, 0x331b5: 0x6c93c420, 0x331b6: 0x6c93c620, 0x331b7: 0x6c93c820, - 0x331b8: 0x6c93ca20, 0x331b9: 0x6cc00a20, 0x331ba: 0x6cc00c20, 0x331bb: 0x6cc00e20, - 0x331bc: 0x6cc01020, 0x331bd: 0x6cc01220, 0x331be: 0x6cc01420, 0x331bf: 0x6cc01620, - // Block 0xcc7, offset 0x331c0 - 0x331c0: 0x6cc01820, 0x331c1: 0x6cc01a20, 0x331c2: 0x6cc01c20, 0x331c3: 0x6cf01c20, - 0x331c4: 0x6cf01e20, 0x331c5: 0x6cf02020, 0x331c6: 0x6cf02220, 0x331c7: 0x6cf02420, - 0x331c8: 0x6cf02620, 0x331c9: 0x6cf02820, 0x331ca: 0x6cf02a20, 0x331cb: 0x6d1fd020, - 0x331cc: 0x6d1fd220, 0x331cd: 0x6d1fd420, 0x331ce: 0x6d1fd620, 0x331cf: 0x6d1fd820, - 0x331d0: 0x6d4d5220, 0x331d1: 0x6d4d5420, 0x331d2: 0x6d4d5620, 0x331d3: 0x6d4d5820, - 0x331d4: 0x6d4d5a20, 0x331d5: 0x6d4d5c20, 0x331d6: 0x6d7a4220, 0x331d7: 0x6d7a4420, - 0x331d8: 0x6d7a4620, 0x331d9: 0x6d7a4820, 0x331da: 0x6d7a4a20, 0x331db: 0x6da2d620, - 0x331dc: 0x6da2d820, 0x331dd: 0x6e0d6020, 0x331de: 0x6e0d6220, 0x331df: 0x6e1cc820, - 0x331e0: 0x6e1cca20, 0x331e1: 0x6e387220, 0x331e2: 0x6e387420, 0x331e3: 0x6c01b420, - 0x331e4: 0x6c085620, 0x331e5: 0x6c085820, 0x331e6: 0x6c085a20, 0x331e7: 0x6c085c20, - 0x331e8: 0x6c085e20, 0x331e9: 0x6c101020, 0x331ea: 0x6c101220, 0x331eb: 0x6c101420, - 0x331ec: 0x6c101620, 0x331ed: 0x6c101820, 0x331ee: 0x6c101a20, 0x331ef: 0x6c101c20, - 0x331f0: 0x6c101e20, 0x331f1: 0x6c102020, 0x331f2: 0x6c102220, 0x331f3: 0x6c102420, - 0x331f4: 0x6c086020, 0x331f5: 0x6c1d0620, 0x331f6: 0x6c1d0820, 0x331f7: 0x6c1d0a20, - 0x331f8: 0x6c1d0c20, 0x331f9: 0x6c1d0e20, 0x331fa: 0x6c1d1020, 0x331fb: 0x6c1d1220, - 0x331fc: 0x6c1d1420, 0x331fd: 0x6c1d1620, 0x331fe: 0x6c309420, 0x331ff: 0x6c309620, - // Block 0xcc8, offset 0x33200 - 0x33200: 0x6c309820, 0x33201: 0x6c309a20, 0x33202: 0x6c309c20, 0x33203: 0x6c309e20, - 0x33204: 0x6c30a020, 0x33205: 0x6c30a220, 0x33206: 0x6c30a420, 0x33207: 0x6c30a620, - 0x33208: 0x6c30a820, 0x33209: 0x6c30aa20, 0x3320a: 0x6c30ac20, 0x3320b: 0x6c30ae20, - 0x3320c: 0x6c4ae020, 0x3320d: 0x6c4ae220, 0x3320e: 0x6c4ae420, 0x3320f: 0x6c4ae620, - 0x33210: 0x6c4ae820, 0x33211: 0x6c4aea20, 0x33212: 0x6c4aec20, 0x33213: 0x6c4aee20, - 0x33214: 0x6c4af020, 0x33215: 0x6c4af220, 0x33216: 0x6c4af420, 0x33217: 0x6c4af620, - 0x33218: 0x6c4af820, 0x33219: 0x6c4afa20, 0x3321a: 0x6c4afc20, 0x3321b: 0x6c4afe20, - 0x3321c: 0x6c4b0020, 0x3321d: 0x6c4b0220, 0x3321e: 0x6c4b0420, 0x3321f: 0x6c4b0620, - 0x33220: 0x6c4b0820, 0x33221: 0x6c4b0a20, 0x33222: 0x6c6cc020, 0x33223: 0x6c6cc220, - 0x33224: 0x6c6cc420, 0x33225: 0x6c6cc620, 0x33226: 0x6c6cc820, 0x33227: 0x6c6cca20, - 0x33228: 0x6c6ccc20, 0x33229: 0x6c6cce20, 0x3322a: 0x6c6cd020, 0x3322b: 0x6c6cd220, - 0x3322c: 0x6c6cd420, 0x3322d: 0x6c6cd620, 0x3322e: 0x6c6cd820, 0x3322f: 0x6c6cda20, - 0x33230: 0x6c6cdc20, 0x33231: 0x6c6cde20, 0x33232: 0x6c6ce020, 0x33233: 0x6c6ce220, - 0x33234: 0x6c6ce420, 0x33235: 0x6c6ce620, 0x33236: 0x6c6ce820, 0x33237: 0x6c6cea20, - 0x33238: 0x6c6cec20, 0x33239: 0x6c6cee20, 0x3323a: 0x6c93da20, 0x3323b: 0x6c93dc20, - 0x3323c: 0x6c93de20, 0x3323d: 0x6c93e020, 0x3323e: 0x6c93e220, 0x3323f: 0x6c93e420, - // Block 0xcc9, offset 0x33240 - 0x33240: 0x6c93e620, 0x33241: 0x6c93e820, 0x33242: 0x6c93ea20, 0x33243: 0x6c93ec20, - 0x33244: 0x6c93ee20, 0x33245: 0x6c93f020, 0x33246: 0x6c93f220, 0x33247: 0x6c93f420, - 0x33248: 0x6c93f620, 0x33249: 0x6c93f820, 0x3324a: 0x6c93fa20, 0x3324b: 0x6c93fc20, - 0x3324c: 0x6c93fe20, 0x3324d: 0x6c940020, 0x3324e: 0x6c940220, 0x3324f: 0x6c940420, - 0x33250: 0x6c940620, 0x33251: 0x6c940820, 0x33252: 0x6c940a20, 0x33253: 0x6c940c20, - 0x33254: 0x6cc02a20, 0x33255: 0x6cc02c20, 0x33256: 0x6cc02e20, 0x33257: 0x6cc03020, - 0x33258: 0x6cc03220, 0x33259: 0x6cc03420, 0x3325a: 0x6cc03620, 0x3325b: 0x6cc03820, - 0x3325c: 0x6cc03a20, 0x3325d: 0x6cc03c20, 0x3325e: 0x6cc03e20, 0x3325f: 0x6cc04020, - 0x33260: 0x6cc04220, 0x33261: 0x6cc04420, 0x33262: 0x6cc04620, 0x33263: 0x6cc04820, - 0x33264: 0x6cc04a20, 0x33265: 0x6cc04c20, 0x33266: 0x6cc04e20, 0x33267: 0x6cc05020, - 0x33268: 0x6cc05220, 0x33269: 0x6cc05420, 0x3326a: 0x6cc05620, 0x3326b: 0x6cc05820, - 0x3326c: 0x6cf02e20, 0x3326d: 0x6cf03020, 0x3326e: 0x6cf03220, 0x3326f: 0x6cf03420, - 0x33270: 0x6cf03620, 0x33271: 0x6cf03820, 0x33272: 0x6cf03a20, 0x33273: 0x6cf03c20, - 0x33274: 0x6cf03e20, 0x33275: 0x6cf04020, 0x33276: 0x6cf04220, 0x33277: 0x6cf04420, - 0x33278: 0x6cf04620, 0x33279: 0x6cf04820, 0x3327a: 0x6cf04a20, 0x3327b: 0x6cf04c20, - 0x3327c: 0x6cf04e20, 0x3327d: 0x6cf05020, 0x3327e: 0x6cf05220, 0x3327f: 0x6cf05420, - // Block 0xcca, offset 0x33280 - 0x33280: 0x6cf05620, 0x33281: 0x6cf05820, 0x33282: 0x6cf05a20, 0x33283: 0x6cf05c20, - 0x33284: 0x6d1fe420, 0x33285: 0x6d1fe620, 0x33286: 0x6d1fe820, 0x33287: 0x6d1fea20, - 0x33288: 0x6d1fec20, 0x33289: 0x6d1fee20, 0x3328a: 0x6d1ff020, 0x3328b: 0x6d1ff220, - 0x3328c: 0x6d1ff420, 0x3328d: 0x6d1ff620, 0x3328e: 0x6d1ff820, 0x3328f: 0x6d1ffa20, - 0x33290: 0x6d4d6a20, 0x33291: 0x6d4d6c20, 0x33292: 0x6d4d6e20, 0x33293: 0x6d4d7020, - 0x33294: 0x6d4d7220, 0x33295: 0x6d4d7420, 0x33296: 0x6d4d7620, 0x33297: 0x6d4d7820, - 0x33298: 0x6d4d7a20, 0x33299: 0x6d4d7c20, 0x3329a: 0x6d4d7e20, 0x3329b: 0x6d4d8020, - 0x3329c: 0x6d4d8220, 0x3329d: 0x6d4d8420, 0x3329e: 0x6d4d8620, 0x3329f: 0x6d7a4c20, - 0x332a0: 0x6d7a4e20, 0x332a1: 0x6d7a5020, 0x332a2: 0x6d7a5220, 0x332a3: 0x6d7a5420, - 0x332a4: 0x6d7a5620, 0x332a5: 0x6d7a5820, 0x332a6: 0x6d7a5a20, 0x332a7: 0x6d7a5c20, - 0x332a8: 0x6da2dc20, 0x332a9: 0x6da2de20, 0x332aa: 0x6dc4ca20, 0x332ab: 0x6dc4cc20, - 0x332ac: 0x6de1c220, 0x332ad: 0x6de1c420, 0x332ae: 0x6de1c620, 0x332af: 0x6de1c820, - 0x332b0: 0x6de1ca20, 0x332b1: 0x6df9a820, 0x332b2: 0x6df9aa20, 0x332b3: 0x6df9ac20, - 0x332b4: 0x6df9ae20, 0x332b5: 0x6e0d6620, 0x332b6: 0x6e0d6820, 0x332b7: 0x6e0d6a20, - 0x332b8: 0x6e1ccc20, 0x332b9: 0x6e1cce20, 0x332ba: 0x6e1cd020, 0x332bb: 0x6e31f220, - 0x332bc: 0x6e387620, 0x332bd: 0x6e387820, 0x332be: 0x6c01b820, 0x332bf: 0x6c086220, - // Block 0xccb, offset 0x332c0 - 0x332c0: 0x6c102a20, 0x332c1: 0x6c102c20, 0x332c2: 0x6c102e20, 0x332c3: 0x6c103020, - 0x332c4: 0x6c103220, 0x332c5: 0x6c103420, 0x332c6: 0x6c1d2220, 0x332c7: 0x6c1d2420, - 0x332c8: 0x6c1d2620, 0x332c9: 0x6c1d2820, 0x332ca: 0x6c1d2a20, 0x332cb: 0x6c30b220, - 0x332cc: 0x6c30b420, 0x332cd: 0x6c30b620, 0x332ce: 0x6c4b1220, 0x332cf: 0x6c4b1420, - 0x332d0: 0x6c4b1620, 0x332d1: 0x6c4b1820, 0x332d2: 0x6c4b1a20, 0x332d3: 0x6c4b1c20, - 0x332d4: 0x6c4b1e20, 0x332d5: 0x6c6cf420, 0x332d6: 0x6c6cf620, 0x332d7: 0x6c6cf820, - 0x332d8: 0x6c6cfa20, 0x332d9: 0x6c6cfc20, 0x332da: 0x6c6cfe20, 0x332db: 0x6c941220, - 0x332dc: 0x6c941420, 0x332dd: 0x6cc06220, 0x332de: 0x6cc06420, 0x332df: 0x6cc06620, - 0x332e0: 0x6cc06820, 0x332e1: 0x6cc06a20, 0x332e2: 0x6cc06c20, 0x332e3: 0x6cc06e20, - 0x332e4: 0x6cf06420, 0x332e5: 0x6cf06620, 0x332e6: 0x6d4d8c20, 0x332e7: 0x6d4d8e20, - 0x332e8: 0x6d4d9020, 0x332e9: 0x6d4d9220, 0x332ea: 0x6dc4ce20, 0x332eb: 0x6e0d6c20, - 0x332ec: 0x6e1cd420, 0x332ed: 0x6c041420, 0x332ee: 0x6c041620, 0x332ef: 0x6c041820, - 0x332f0: 0x6c087620, 0x332f1: 0x6c087820, 0x332f2: 0x6c087a20, 0x332f3: 0x6c087c20, - 0x332f4: 0x6c087e20, 0x332f5: 0x6c088020, 0x332f6: 0x6c088220, 0x332f7: 0x6c088420, - 0x332f8: 0x6c088620, 0x332f9: 0x6c088820, 0x332fa: 0x6c088a20, 0x332fb: 0x6c088c20, - 0x332fc: 0x6c088e20, 0x332fd: 0x6c089020, 0x332fe: 0x6c105e20, 0x332ff: 0x6c106020, - // Block 0xccc, offset 0x33300 - 0x33300: 0x6c106220, 0x33301: 0x6c106420, 0x33302: 0x6c106620, 0x33303: 0x6c106820, - 0x33304: 0x6c106a20, 0x33305: 0x6c106c20, 0x33306: 0x6c106e20, 0x33307: 0x6c107020, - 0x33308: 0x6c107220, 0x33309: 0x6c107420, 0x3330a: 0x6c107620, 0x3330b: 0x6c107820, - 0x3330c: 0x6c107a20, 0x3330d: 0x6c107c20, 0x3330e: 0x6c107e20, 0x3330f: 0x6c108020, - 0x33310: 0x6c108220, 0x33311: 0x6c108420, 0x33312: 0x6c108620, 0x33313: 0x6c1d6c20, - 0x33314: 0x6c1d6e20, 0x33315: 0x6c1d7020, 0x33316: 0x6c1d7220, 0x33317: 0x6c1d7420, - 0x33318: 0x6c1d7620, 0x33319: 0x6c1d7820, 0x3331a: 0x6c1d7a20, 0x3331b: 0x6c1d7c20, - 0x3331c: 0x6c1d7e20, 0x3331d: 0x6c1d8020, 0x3331e: 0x6c1d8220, 0x3331f: 0x6c1d8420, - 0x33320: 0x6c1d8620, 0x33321: 0x6c1d8820, 0x33322: 0x6c1d8a20, 0x33323: 0x6c1d8c20, - 0x33324: 0x6c1d8e20, 0x33325: 0x6c1d9020, 0x33326: 0x6c1d9220, 0x33327: 0x6c1d9420, - 0x33328: 0x6c1d9620, 0x33329: 0x6c1d9820, 0x3332a: 0x6c1d9a20, 0x3332b: 0x6c1d9c20, - 0x3332c: 0x6c1d9e20, 0x3332d: 0x6c1da020, 0x3332e: 0x6c1da220, 0x3332f: 0x6c1da420, - 0x33330: 0x6c1da620, 0x33331: 0x6c1da820, 0x33332: 0x6c1daa20, 0x33333: 0x6c1dac20, - 0x33334: 0x6c1dae20, 0x33335: 0x6c1db020, 0x33336: 0x6c1db220, 0x33337: 0x6c1db420, - 0x33338: 0x6c1db620, 0x33339: 0x6c1db820, 0x3333a: 0x6c1dba20, 0x3333b: 0x6c1dbc20, - 0x3333c: 0x6c1dbe20, 0x3333d: 0x6c1dc020, 0x3333e: 0x6c1dc220, 0x3333f: 0x6c1dc420, - // Block 0xccd, offset 0x33340 - 0x33340: 0x6c1dc620, 0x33341: 0x6c1dc820, 0x33342: 0x6c1dca20, 0x33343: 0x6c312020, - 0x33344: 0x6c312220, 0x33345: 0x6c312420, 0x33346: 0x6c312620, 0x33347: 0x6c312820, - 0x33348: 0x6c312a20, 0x33349: 0x6c312c20, 0x3334a: 0x6c312e20, 0x3334b: 0x6c313020, - 0x3334c: 0x6c313220, 0x3334d: 0x6c313420, 0x3334e: 0x6c313620, 0x3334f: 0x6c313820, - 0x33350: 0x6c313a20, 0x33351: 0x6c313c20, 0x33352: 0x6c313e20, 0x33353: 0x6c314020, - 0x33354: 0x6c314220, 0x33355: 0x6c314420, 0x33356: 0x6c314620, 0x33357: 0x6c314820, - 0x33358: 0x6c314a20, 0x33359: 0x6c314c20, 0x3335a: 0x6c314e20, 0x3335b: 0x6c315020, - 0x3335c: 0x6c315220, 0x3335d: 0x6c315420, 0x3335e: 0x6c315620, 0x3335f: 0x6c315820, - 0x33360: 0x6c315a20, 0x33361: 0x6c315c20, 0x33362: 0x6c315e20, 0x33363: 0x6c316020, - 0x33364: 0x6c3bdc20, 0x33365: 0x6c316220, 0x33366: 0x6c316420, 0x33367: 0x6c316620, - 0x33368: 0x6c316820, 0x33369: 0x6c316a20, 0x3336a: 0x6c316c20, 0x3336b: 0x6c4b6a20, - 0x3336c: 0x6c4b6c20, 0x3336d: 0x6c4b6e20, 0x3336e: 0x6c4b7020, 0x3336f: 0x6c4b7220, - 0x33370: 0x6c4b7420, 0x33371: 0x6c4b7620, 0x33372: 0x6c4b7820, 0x33373: 0x6c4b7a20, - 0x33374: 0x6c4b7c20, 0x33375: 0x6c4b7e20, 0x33376: 0x6c4b8020, 0x33377: 0x6c4b8220, - 0x33378: 0x6c4b8420, 0x33379: 0x6c4b8620, 0x3337a: 0x6c4b8820, 0x3337b: 0x6c4b8a20, - 0x3337c: 0x6c4b8c20, 0x3337d: 0x6c4b8e20, 0x3337e: 0x6c4b9020, 0x3337f: 0x6c4b9220, - // Block 0xcce, offset 0x33380 - 0x33380: 0x6c4b9420, 0x33381: 0x6c4b9620, 0x33382: 0x6c4b9820, 0x33383: 0x6c4b9a20, - 0x33384: 0x6c4b9c20, 0x33385: 0x6c4b9e20, 0x33386: 0x6c4ba020, 0x33387: 0x6c4ba220, - 0x33388: 0x6c4ba420, 0x33389: 0x6c4ba620, 0x3338a: 0x6c4ba820, 0x3338b: 0x6c4baa20, - 0x3338c: 0x6c4bac20, 0x3338d: 0x6c4bae20, 0x3338e: 0x6c4bb020, 0x3338f: 0x6c4bb220, - 0x33390: 0x6c4bb420, 0x33391: 0x6c4bb620, 0x33392: 0x6c4bb820, 0x33393: 0x6c4bba20, - 0x33394: 0x6c4bbc20, 0x33395: 0x6c6d5a20, 0x33396: 0x6c6d5c20, 0x33397: 0x6c6d5e20, - 0x33398: 0x6c6d6020, 0x33399: 0x6c6d6220, 0x3339a: 0x6c6d6420, 0x3339b: 0x6c6d6620, - 0x3339c: 0x6c6d6820, 0x3339d: 0x6c6d6a20, 0x3339e: 0x6c6d6c20, 0x3339f: 0x6c6d6e20, - 0x333a0: 0x6c6d7020, 0x333a1: 0x6c6d7220, 0x333a2: 0x6c6d7420, 0x333a3: 0x6c6d7620, - 0x333a4: 0x6c6d7820, 0x333a5: 0x6c6d7a20, 0x333a6: 0x6c6d7c20, 0x333a7: 0x6c6d7e20, - 0x333a8: 0x6c6d8020, 0x333a9: 0x6c6d8220, 0x333aa: 0x6c6d8420, 0x333ab: 0x6c6d8620, - 0x333ac: 0x6c6d8820, 0x333ad: 0x6c6d8a20, 0x333ae: 0x6c6d8c20, 0x333af: 0x6c6d8e20, - 0x333b0: 0x6c6d9020, 0x333b1: 0x6c6d9220, 0x333b2: 0x6c6d9420, 0x333b3: 0x6c6d9620, - 0x333b4: 0x6c6d9820, 0x333b5: 0x6c6d9a20, 0x333b6: 0x6c6d9c20, 0x333b7: 0x6c6d9e20, - 0x333b8: 0x6c6da020, 0x333b9: 0x6c6da220, 0x333ba: 0x6c6da420, 0x333bb: 0x6c6da620, - 0x333bc: 0x6c6da820, 0x333bd: 0x6c6daa20, 0x333be: 0x6c6dac20, 0x333bf: 0x6c6dae20, - // Block 0xccf, offset 0x333c0 - 0x333c0: 0x6c6db020, 0x333c1: 0x6c6db220, 0x333c2: 0x6c6db420, 0x333c3: 0x6c6db620, - 0x333c4: 0x6c6db820, 0x333c5: 0x6c6dba20, 0x333c6: 0x6c6dbc20, 0x333c7: 0x6c6dbe20, - 0x333c8: 0x6c6dc020, 0x333c9: 0x6c6dc220, 0x333ca: 0x6c6dc420, 0x333cb: 0x6c6dc620, - 0x333cc: 0x6c6dc820, 0x333cd: 0x6c6dca20, 0x333ce: 0x6c6dcc20, 0x333cf: 0x6c6dce20, - 0x333d0: 0x6c6dd020, 0x333d1: 0x6c948a20, 0x333d2: 0x6c948c20, 0x333d3: 0x6c948e20, - 0x333d4: 0x6c949020, 0x333d5: 0x6c949220, 0x333d6: 0x6c949420, 0x333d7: 0x6c949620, - 0x333d8: 0x6c949820, 0x333d9: 0x6c949a20, 0x333da: 0x6c949c20, 0x333db: 0x6c949e20, - 0x333dc: 0x6c94a020, 0x333dd: 0x6c94a220, 0x333de: 0x6c94a420, 0x333df: 0x6c94a620, - 0x333e0: 0x6c94a820, 0x333e1: 0x6c94aa20, 0x333e2: 0x6c94ac20, 0x333e3: 0x6c94ae20, - 0x333e4: 0x6c94b020, 0x333e5: 0x6c94b220, 0x333e6: 0x6c94b420, 0x333e7: 0x6c94b620, - 0x333e8: 0x6c94b820, 0x333e9: 0x6c94ba20, 0x333ea: 0x6c94bc20, 0x333eb: 0x6c94be20, - 0x333ec: 0x6c94c020, 0x333ed: 0x6c94c220, 0x333ee: 0x6c94c420, 0x333ef: 0x6c94c620, - 0x333f0: 0x6c94c820, 0x333f1: 0x6c94ca20, 0x333f2: 0x6c94cc20, 0x333f3: 0x6c94ce20, - 0x333f4: 0x6c94d020, 0x333f5: 0x6c94d220, 0x333f6: 0x6c94d420, 0x333f7: 0x6c94d620, - 0x333f8: 0x6c94d820, 0x333f9: 0x6c94da20, 0x333fa: 0x6c94dc20, 0x333fb: 0x6c94de20, - 0x333fc: 0x6c94e020, 0x333fd: 0x6c94e220, 0x333fe: 0x6c94e420, 0x333ff: 0x6c94e620, - // Block 0xcd0, offset 0x33400 - 0x33400: 0x6c94e820, 0x33401: 0x6c94ea20, 0x33402: 0x6c94ec20, 0x33403: 0x6c94ee20, - 0x33404: 0x6c94f020, 0x33405: 0x6c94f220, 0x33406: 0x6c94f420, 0x33407: 0x6c94f620, - 0x33408: 0x6c94f820, 0x33409: 0x6c94fa20, 0x3340a: 0x6c94fc20, 0x3340b: 0x6c94fe20, - 0x3340c: 0x6c950020, 0x3340d: 0x6c950220, 0x3340e: 0x6c950420, 0x3340f: 0x6c950620, - 0x33410: 0x6c950820, 0x33411: 0x6c950a20, 0x33412: 0x6c950c20, 0x33413: 0x6c950e20, - 0x33414: 0x6c951020, 0x33415: 0x6c951220, 0x33416: 0x6c951420, 0x33417: 0x6c951620, - 0x33418: 0x6c951820, 0x33419: 0x6c951a20, 0x3341a: 0x6c951c20, 0x3341b: 0x6c951e20, - 0x3341c: 0x6c952020, 0x3341d: 0x6c952220, 0x3341e: 0x6c952420, 0x3341f: 0x6c952620, - 0x33420: 0x6c952820, 0x33421: 0x6c952a20, 0x33422: 0x6c952c20, 0x33423: 0x6c952e20, - 0x33424: 0x6c953020, 0x33425: 0x6c953220, 0x33426: 0x6c953420, 0x33427: 0x6c953620, - 0x33428: 0x6c953820, 0x33429: 0x6c953a20, 0x3342a: 0x6cc0de20, 0x3342b: 0x6cc0e020, - 0x3342c: 0x6cc0e220, 0x3342d: 0x6cc0e420, 0x3342e: 0x6cc0e620, 0x3342f: 0x6cc0e820, - 0x33430: 0x6cc0ea20, 0x33431: 0x6cc0ec20, 0x33432: 0x6cc0ee20, 0x33433: 0x6cc0f020, - 0x33434: 0x6cc0f220, 0x33435: 0x6cc0f420, 0x33436: 0x6cc0f620, 0x33437: 0x6cc0f820, - 0x33438: 0x6cc0fa20, 0x33439: 0x6cc0fc20, 0x3343a: 0x6cc0fe20, 0x3343b: 0x6cc10020, - 0x3343c: 0x6cc10220, 0x3343d: 0x6cc10420, 0x3343e: 0x6cc10620, 0x3343f: 0x6cc10820, - // Block 0xcd1, offset 0x33440 - 0x33440: 0x6cc10a20, 0x33441: 0x6cc10c20, 0x33442: 0x6cc10e20, 0x33443: 0x6cc11020, - 0x33444: 0x6cc11220, 0x33445: 0x6cc11420, 0x33446: 0x6cc11620, 0x33447: 0x6cc11820, - 0x33448: 0x6cc11a20, 0x33449: 0x6cc11c20, 0x3344a: 0x6cc11e20, 0x3344b: 0x6cc12020, - 0x3344c: 0x6cc12220, 0x3344d: 0x6cc12420, 0x3344e: 0x6cc12620, 0x3344f: 0x6cc12820, - 0x33450: 0x6cc12a20, 0x33451: 0x6cc12c20, 0x33452: 0x6cc12e20, 0x33453: 0x6cc13020, - 0x33454: 0x6cc13220, 0x33455: 0x6cc13420, 0x33456: 0x6cc13620, 0x33457: 0x6cc13820, - 0x33458: 0x6cc13a20, 0x33459: 0x6cc13c20, 0x3345a: 0x6cc13e20, 0x3345b: 0x6cc14020, - 0x3345c: 0x6cc14220, 0x3345d: 0x6cc14420, 0x3345e: 0x6cc14620, 0x3345f: 0x6cc14820, - 0x33460: 0x6cc14a20, 0x33461: 0x6cc14c20, 0x33462: 0x6cc14e20, 0x33463: 0x6cc15020, - 0x33464: 0x6cc15220, 0x33465: 0x6cc15420, 0x33466: 0x6cc15620, 0x33467: 0x6cc15820, - 0x33468: 0x6cc15a20, 0x33469: 0x6cc15c20, 0x3346a: 0x6cf0ac20, 0x3346b: 0x6cf0ae20, - 0x3346c: 0x6cf0b020, 0x3346d: 0x6cf0b220, 0x3346e: 0x6cf0b420, 0x3346f: 0x6cf0b620, - 0x33470: 0x6cf0b820, 0x33471: 0x6cf0ba20, 0x33472: 0x6cf0bc20, 0x33473: 0x6cf0be20, - 0x33474: 0x6cf0c020, 0x33475: 0x6cf0c220, 0x33476: 0x6cf0c420, 0x33477: 0x6cf0c620, - 0x33478: 0x6cf0c820, 0x33479: 0x6cf0ca20, 0x3347a: 0x6cf0cc20, 0x3347b: 0x6cf0ce20, - 0x3347c: 0x6cf0d020, 0x3347d: 0x6cf0d220, 0x3347e: 0x6cf0d420, 0x3347f: 0x6cf0d620, - // Block 0xcd2, offset 0x33480 - 0x33480: 0x6cf0d820, 0x33481: 0x6cf0da20, 0x33482: 0x6cf0dc20, 0x33483: 0x6cf0de20, - 0x33484: 0x6cf0e020, 0x33485: 0x6cf0e220, 0x33486: 0x6cf0e420, 0x33487: 0x6cf0e620, - 0x33488: 0x6cf0e820, 0x33489: 0x6cf0ea20, 0x3348a: 0x6cf0ec20, 0x3348b: 0x6cf0ee20, - 0x3348c: 0x6cf0f020, 0x3348d: 0x6cf0f220, 0x3348e: 0x6cf0f420, 0x3348f: 0x6cf0f620, - 0x33490: 0x6cf0f820, 0x33491: 0x6cf0fa20, 0x33492: 0x6cf0fc20, 0x33493: 0x6cf0fe20, - 0x33494: 0x6cf10020, 0x33495: 0x6cf10220, 0x33496: 0x6cf10420, 0x33497: 0x6cf10620, - 0x33498: 0x6d204820, 0x33499: 0x6d204a20, 0x3349a: 0x6d204c20, 0x3349b: 0x6d204e20, - 0x3349c: 0x6d205020, 0x3349d: 0x6d205220, 0x3349e: 0x6d205420, 0x3349f: 0x6d205620, - 0x334a0: 0x6d205820, 0x334a1: 0x6d205a20, 0x334a2: 0x6d205c20, 0x334a3: 0x6d205e20, - 0x334a4: 0x6d206020, 0x334a5: 0x6d206220, 0x334a6: 0x6d206420, 0x334a7: 0x6d206620, - 0x334a8: 0x6d206820, 0x334a9: 0x6d206a20, 0x334aa: 0x6d206c20, 0x334ab: 0x6d206e20, - 0x334ac: 0x6d207020, 0x334ad: 0x6d207220, 0x334ae: 0x6d207420, 0x334af: 0x6d207620, - 0x334b0: 0x6d207820, 0x334b1: 0x6d207a20, 0x334b2: 0x6d207c20, 0x334b3: 0x6d207e20, - 0x334b4: 0x6d208020, 0x334b5: 0x6d208220, 0x334b6: 0x6d208420, 0x334b7: 0x6d208620, - 0x334b8: 0x6d208820, 0x334b9: 0x6d208a20, 0x334ba: 0x6d208c20, 0x334bb: 0x6d208e20, - 0x334bc: 0x6d209020, 0x334bd: 0x6d209220, 0x334be: 0x6d209420, 0x334bf: 0x6d209620, - // Block 0xcd3, offset 0x334c0 - 0x334c0: 0x6d209820, 0x334c1: 0x6d209a20, 0x334c2: 0x6d209c20, 0x334c3: 0x6d209e20, - 0x334c4: 0x6d20a020, 0x334c5: 0x6d20a220, 0x334c6: 0x6d20a420, 0x334c7: 0x6d20a620, - 0x334c8: 0x6d20a820, 0x334c9: 0x6d20aa20, 0x334ca: 0x6d4dda20, 0x334cb: 0x6d4ddc20, - 0x334cc: 0x6d4dde20, 0x334cd: 0x6d4de020, 0x334ce: 0x6d4de220, 0x334cf: 0x6d4de420, - 0x334d0: 0x6d4de620, 0x334d1: 0x6d4de820, 0x334d2: 0x6d4dea20, 0x334d3: 0x6d4dec20, - 0x334d4: 0x6d4dee20, 0x334d5: 0x6d4df020, 0x334d6: 0x6d4df220, 0x334d7: 0x6d4df420, - 0x334d8: 0x6d4df620, 0x334d9: 0x6d4df820, 0x334da: 0x6d4dfa20, 0x334db: 0x6d4dfc20, - 0x334dc: 0x6d4dfe20, 0x334dd: 0x6d4e0020, 0x334de: 0x6d4e0220, 0x334df: 0x6d4e0420, - 0x334e0: 0x6d4e0620, 0x334e1: 0x6d4e0820, 0x334e2: 0x6d4e0a20, 0x334e3: 0x6d4e0c20, - 0x334e4: 0x6d4e0e20, 0x334e5: 0x6d4e1020, 0x334e6: 0x6d4e1220, 0x334e7: 0x6d4e1420, - 0x334e8: 0x6d4e1620, 0x334e9: 0x6d4e1820, 0x334ea: 0x6d4e1a20, 0x334eb: 0x6d4e1c20, - 0x334ec: 0x6d4e1e20, 0x334ed: 0x6d4e2020, 0x334ee: 0x6d4e2220, 0x334ef: 0x6d4e2420, - 0x334f0: 0x6d4e2620, 0x334f1: 0x6d4e2820, 0x334f2: 0x6d4e2a20, 0x334f3: 0x6d4e2c20, - 0x334f4: 0x6d4e2e20, 0x334f5: 0x6d4e3020, 0x334f6: 0x6d4e3220, 0x334f7: 0x6d4e3420, - 0x334f8: 0x6d4e3620, 0x334f9: 0x6d4e3820, 0x334fa: 0x6d4e3a20, 0x334fb: 0x6d4e3c20, - 0x334fc: 0x6d4e3e20, 0x334fd: 0x6d7a9020, 0x334fe: 0x6d7a9220, 0x334ff: 0x6d7a9420, - // Block 0xcd4, offset 0x33500 - 0x33500: 0x6d7a9620, 0x33501: 0x6d7a9820, 0x33502: 0x6d7a9a20, 0x33503: 0x6d7a9c20, - 0x33504: 0x6d7a9e20, 0x33505: 0x6d7aa020, 0x33506: 0x6d7aa220, 0x33507: 0x6d7aa420, - 0x33508: 0x6d7aa620, 0x33509: 0x6da2fc20, 0x3350a: 0x6d7aa820, 0x3350b: 0x6d7aaa20, - 0x3350c: 0x6d7aac20, 0x3350d: 0x6d7aae20, 0x3350e: 0x6d7ab020, 0x3350f: 0x6d7ab220, - 0x33510: 0x6d7ab420, 0x33511: 0x6d7ab620, 0x33512: 0x6d7ab820, 0x33513: 0x6d7aba20, - 0x33514: 0x6d7abc20, 0x33515: 0x6d7abe20, 0x33516: 0x6d7ac020, 0x33517: 0x6d7ac220, - 0x33518: 0x6d7ac420, 0x33519: 0x6d7ac620, 0x3351a: 0x6d7ac820, 0x3351b: 0x6d7aca20, - 0x3351c: 0x6da2fe20, 0x3351d: 0x6da30020, 0x3351e: 0x6da30220, 0x3351f: 0x6da30420, - 0x33520: 0x6da30620, 0x33521: 0x6da30820, 0x33522: 0x6da30a20, 0x33523: 0x6da30c20, - 0x33524: 0x6da30e20, 0x33525: 0x6da31020, 0x33526: 0x6da31220, 0x33527: 0x6da31420, - 0x33528: 0x6da31620, 0x33529: 0x6da31820, 0x3352a: 0x6da31a20, 0x3352b: 0x6da31c20, - 0x3352c: 0x6da31e20, 0x3352d: 0x6da32020, 0x3352e: 0x6da32220, 0x3352f: 0x6da32420, - 0x33530: 0x6da32620, 0x33531: 0x6da32820, 0x33532: 0x6da32a20, 0x33533: 0x6da32c20, - 0x33534: 0x6da32e20, 0x33535: 0x6da33020, 0x33536: 0x6da33220, 0x33537: 0x6da33420, - 0x33538: 0x6da33620, 0x33539: 0x6da33820, 0x3353a: 0x6da33a20, 0x3353b: 0x6da33c20, - 0x3353c: 0x6da33e20, 0x3353d: 0x6da34020, 0x3353e: 0x6da34220, 0x3353f: 0x6da34420, - // Block 0xcd5, offset 0x33540 - 0x33540: 0x6da34620, 0x33541: 0x6da34820, 0x33542: 0x6dc4dc20, 0x33543: 0x6dc4de20, - 0x33544: 0x6dc4e020, 0x33545: 0x6dc4e220, 0x33546: 0x6dc4e420, 0x33547: 0x6dc4e620, - 0x33548: 0x6dc4e820, 0x33549: 0x6dc4ea20, 0x3354a: 0x6dc4ec20, 0x3354b: 0x6dc4ee20, - 0x3354c: 0x6dc4f020, 0x3354d: 0x6dc4f220, 0x3354e: 0x6dc4f420, 0x3354f: 0x6dc4f620, - 0x33550: 0x6dc4f820, 0x33551: 0x6dc4fa20, 0x33552: 0x6dc4fc20, 0x33553: 0x6dc4fe20, - 0x33554: 0x6dc50020, 0x33555: 0x6dc50220, 0x33556: 0x6dc50420, 0x33557: 0x6dc45020, - 0x33558: 0x6de1de20, 0x33559: 0x6de1e020, 0x3355a: 0x6de1e220, 0x3355b: 0x6de1e420, - 0x3355c: 0x6de1e620, 0x3355d: 0x6de1e820, 0x3355e: 0x6de1ea20, 0x3355f: 0x6de1ec20, - 0x33560: 0x6dc50620, 0x33561: 0x6de1ee20, 0x33562: 0x6de1f020, 0x33563: 0x6de1f220, - 0x33564: 0x6de1f420, 0x33565: 0x6de1f620, 0x33566: 0x6de1f820, 0x33567: 0x6de1fa20, - 0x33568: 0x6de1fc20, 0x33569: 0x6de1fe20, 0x3356a: 0x6de20020, 0x3356b: 0x6de20220, - 0x3356c: 0x6de20420, 0x3356d: 0x6de20620, 0x3356e: 0x6df9be20, 0x3356f: 0x6df9c020, - 0x33570: 0x6df9c220, 0x33571: 0x6df9c420, 0x33572: 0x6df9c620, 0x33573: 0x6df9c820, - 0x33574: 0x6df9ca20, 0x33575: 0x6df9cc20, 0x33576: 0x6df9ce20, 0x33577: 0x6df9d020, - 0x33578: 0x6df9d220, 0x33579: 0x6df9d420, 0x3357a: 0x6df9d620, 0x3357b: 0x6da34a20, - 0x3357c: 0x6e0d7a20, 0x3357d: 0x6e0d7c20, 0x3357e: 0x6e0d7e20, 0x3357f: 0x6e0d8020, - // Block 0xcd6, offset 0x33580 - 0x33580: 0x6e0d8220, 0x33581: 0x6e0d8420, 0x33582: 0x6e0d8620, 0x33583: 0x6e0d8820, - 0x33584: 0x6e0d8a20, 0x33585: 0x6e0d8c20, 0x33586: 0x6e0d8e20, 0x33587: 0x6e1ce620, - 0x33588: 0x6e1ce820, 0x33589: 0x6e1cea20, 0x3358a: 0x6e1cec20, 0x3358b: 0x6e1cee20, - 0x3358c: 0x6e1cf020, 0x3358d: 0x6e1cf220, 0x3358e: 0x6e1cf420, 0x3358f: 0x6e1cf620, - 0x33590: 0x6e1cf820, 0x33591: 0x6e1cfa20, 0x33592: 0x6e28b820, 0x33593: 0x6e28ba20, - 0x33594: 0x6e31f620, 0x33595: 0x6e31f820, 0x33596: 0x6e31fa20, 0x33597: 0x6e31fc20, - 0x33598: 0x6e31fe20, 0x33599: 0x6e320020, 0x3359a: 0x6e320220, 0x3359b: 0x6e320420, - 0x3359c: 0x6e320620, 0x3359d: 0x6e387a20, 0x3359e: 0x6e387c20, 0x3359f: 0x6e387e20, - 0x335a0: 0x6e402420, 0x335a1: 0x6e402620, 0x335a2: 0x6e429220, 0x335a3: 0x6e402820, - 0x335a4: 0x6e402a20, 0x335a5: 0x6e462620, 0x335a6: 0x6c01c020, 0x335a7: 0x6c041a20, - 0x335a8: 0x6c01c220, 0x335a9: 0x6c109820, 0x335aa: 0x6c109a20, 0x335ab: 0x6c109c20, - 0x335ac: 0x6c109e20, 0x335ad: 0x6c10a020, 0x335ae: 0x6c1dd620, 0x335af: 0x6c1dd820, - 0x335b0: 0x6c1dda20, 0x335b1: 0x6c317a20, 0x335b2: 0x6c317c20, 0x335b3: 0x6c317e20, - 0x335b4: 0x6c318020, 0x335b5: 0x6c318220, 0x335b6: 0x6c318420, 0x335b7: 0x6c4bce20, - 0x335b8: 0x6c4bd020, 0x335b9: 0x6c4bd220, 0x335ba: 0x6c4bd420, 0x335bb: 0x6c4bd620, - 0x335bc: 0x6c6de420, 0x335bd: 0x6c6de620, 0x335be: 0x6c954e20, 0x335bf: 0x6c955020, - // Block 0xcd7, offset 0x335c0 - 0x335c0: 0x6c955220, 0x335c1: 0x6cc16c20, 0x335c2: 0x6d20ba20, 0x335c3: 0x6d4e4a20, - 0x335c4: 0x6d7ad420, 0x335c5: 0x6d7ad620, 0x335c6: 0x6d7ad820, 0x335c7: 0x6da35420, - 0x335c8: 0x6dc50820, 0x335c9: 0x6de20c20, 0x335ca: 0x6de20e20, 0x335cb: 0x6df9d820, - 0x335cc: 0x6e1cfe20, 0x335cd: 0x6e1d0020, 0x335ce: 0x6e320820, 0x335cf: 0x6e402c20, - 0x335d0: 0x6e442a20, 0x335d1: 0x6c041e20, 0x335d2: 0x6c042020, 0x335d3: 0x6c042220, - 0x335d4: 0x6c042420, 0x335d5: 0x6c042620, 0x335d6: 0x6c089820, 0x335d7: 0x6c089a20, - 0x335d8: 0x6c089c20, 0x335d9: 0x6c089e20, 0x335da: 0x6c10a620, 0x335db: 0x6c10a820, - 0x335dc: 0x6c1de020, 0x335dd: 0x6c1de220, 0x335de: 0x6c1de420, 0x335df: 0x6c318620, - 0x335e0: 0x6c4bde20, 0x335e1: 0x6c6dee20, 0x335e2: 0x6c6df020, 0x335e3: 0x6c955420, - 0x335e4: 0x6cc17220, 0x335e5: 0x6cc17420, 0x335e6: 0x6cf11220, 0x335e7: 0x6cf11420, - 0x335e8: 0x6d4e4e20, 0x335e9: 0x6d4e5020, 0x335ea: 0x6d4e5220, 0x335eb: 0x6d4e5420, - 0x335ec: 0x6d7ada20, 0x335ed: 0x6da35620, 0x335ee: 0x6dc50a20, 0x335ef: 0x6de21020, - 0x335f0: 0x6e0d9220, 0x335f1: 0x6e0d9420, 0x335f2: 0x6e0d9620, 0x335f3: 0x6c042a20, - 0x335f4: 0x6c08a220, 0x335f5: 0x6c08a420, 0x335f6: 0x6c10ac20, 0x335f7: 0x6c318c20, - 0x335f8: 0x6c318e20, 0x335f9: 0x6c4bea20, 0x335fa: 0x6c4bec20, 0x335fb: 0x6c4bee20, - 0x335fc: 0x6c6df420, 0x335fd: 0x6c6df620, 0x335fe: 0x6c6df820, 0x335ff: 0x6c6dfa20, - // Block 0xcd8, offset 0x33600 - 0x33600: 0x6c955a20, 0x33601: 0x6c955c20, 0x33602: 0x6c955e20, 0x33603: 0x6c956020, - 0x33604: 0x6c956220, 0x33605: 0x6cc17a20, 0x33606: 0x6cc17c20, 0x33607: 0x6cc17e20, - 0x33608: 0x6cc18020, 0x33609: 0x6cc18220, 0x3360a: 0x6cf11820, 0x3360b: 0x6d4e5620, - 0x3360c: 0x6d4e5820, 0x3360d: 0x6d7ae020, 0x3360e: 0x6da35a20, 0x3360f: 0x6d7ae220, - 0x33610: 0x6dc50e20, 0x33611: 0x6df9da20, 0x33612: 0x6c08b220, 0x33613: 0x6c08b420, - 0x33614: 0x6c08b620, 0x33615: 0x6c10ba20, 0x33616: 0x6c10bc20, 0x33617: 0x6c10be20, - 0x33618: 0x6c10c020, 0x33619: 0x6c10c220, 0x3361a: 0x6c10c420, 0x3361b: 0x6c10c620, - 0x3361c: 0x6c10c820, 0x3361d: 0x6c10ca20, 0x3361e: 0x6c10cc20, 0x3361f: 0x6c10ce20, - 0x33620: 0x6c10d020, 0x33621: 0x6c10d220, 0x33622: 0x6c10d420, 0x33623: 0x6c10d620, - 0x33624: 0x6c10d820, 0x33625: 0x6c1e0620, 0x33626: 0x6c1e0820, 0x33627: 0x6c1e0a20, - 0x33628: 0x6c1e0c20, 0x33629: 0x6c1e0e20, 0x3362a: 0x6c1e1020, 0x3362b: 0x6c1e1220, - 0x3362c: 0x6c1e1420, 0x3362d: 0x6c1e1620, 0x3362e: 0x6c1e1820, 0x3362f: 0x6c1e1a20, - 0x33630: 0x6c1e1c20, 0x33631: 0x6c1e1e20, 0x33632: 0x6c1e2020, 0x33633: 0x6c1e2220, - 0x33634: 0x6c1e2420, 0x33635: 0x6c1e2620, 0x33636: 0x6c1e2820, 0x33637: 0x6c1e2a20, - 0x33638: 0x6c1e2c20, 0x33639: 0x6c1e2e20, 0x3363a: 0x6c1e3020, 0x3363b: 0x6c31b220, - 0x3363c: 0x6c31b420, 0x3363d: 0x6c31b620, 0x3363e: 0x6c31b820, 0x3363f: 0x6c31ba20, - // Block 0xcd9, offset 0x33640 - 0x33640: 0x6c31bc20, 0x33641: 0x6c31be20, 0x33642: 0x6c31c020, 0x33643: 0x6c31c220, - 0x33644: 0x6c31c420, 0x33645: 0x6c31c620, 0x33646: 0x6c31c820, 0x33647: 0x6c31ca20, - 0x33648: 0x6c31cc20, 0x33649: 0x6c31ce20, 0x3364a: 0x6c31d020, 0x3364b: 0x6c31d220, - 0x3364c: 0x6c31d420, 0x3364d: 0x6c31d620, 0x3364e: 0x6c31d820, 0x3364f: 0x6c31da20, - 0x33650: 0x6c4c1220, 0x33651: 0x6c4c1420, 0x33652: 0x6c4c1620, 0x33653: 0x6c4c1820, - 0x33654: 0x6c4c1a20, 0x33655: 0x6c4c1c20, 0x33656: 0x6c4c1e20, 0x33657: 0x6c4c2020, - 0x33658: 0x6c4c2220, 0x33659: 0x6c4c2420, 0x3365a: 0x6c4c2620, 0x3365b: 0x6c4c2820, - 0x3365c: 0x6c4c2a20, 0x3365d: 0x6c4c2c20, 0x3365e: 0x6c4c2e20, 0x3365f: 0x6c4c3020, - 0x33660: 0x6c4c3220, 0x33661: 0x6c4c3420, 0x33662: 0x6c4c3620, 0x33663: 0x6c4c3820, - 0x33664: 0x6c4c3a20, 0x33665: 0x6c4c3c20, 0x33666: 0x6c4c3e20, 0x33667: 0x6c4c4020, - 0x33668: 0x6c4c4220, 0x33669: 0x6c4c4420, 0x3366a: 0x6c4c4620, 0x3366b: 0x6c4c4820, - 0x3366c: 0x6c4c4a20, 0x3366d: 0x6c4c4c20, 0x3366e: 0x6c4c4e20, 0x3366f: 0x6c4c5020, - 0x33670: 0x6c4c5220, 0x33671: 0x6c6e1420, 0x33672: 0x6c6e1620, 0x33673: 0x6c6e1820, - 0x33674: 0x6c6e1a20, 0x33675: 0x6c6e1c20, 0x33676: 0x6c6e1e20, 0x33677: 0x6c6e2020, - 0x33678: 0x6c6e2220, 0x33679: 0x6c6e2420, 0x3367a: 0x6c6e2620, 0x3367b: 0x6c6e2820, - 0x3367c: 0x6c6e2a20, 0x3367d: 0x6c6e2c20, 0x3367e: 0x6c6e2e20, 0x3367f: 0x6c6e3020, - // Block 0xcda, offset 0x33680 - 0x33680: 0x6c6e3220, 0x33681: 0x6c6e3420, 0x33682: 0x6c6e3620, 0x33683: 0x6c6e3820, - 0x33684: 0x6c6e3a20, 0x33685: 0x6c6e3c20, 0x33686: 0x6c6e3e20, 0x33687: 0x6c6e4020, - 0x33688: 0x6c6e4220, 0x33689: 0x6c6e4420, 0x3368a: 0x6c6e4620, 0x3368b: 0x6c6e4820, - 0x3368c: 0x6c6e4a20, 0x3368d: 0x6c958620, 0x3368e: 0x6c958820, 0x3368f: 0x6c958a20, - 0x33690: 0x6c958c20, 0x33691: 0x6c958e20, 0x33692: 0x6c959020, 0x33693: 0x6c959220, - 0x33694: 0x6c959420, 0x33695: 0x6c959620, 0x33696: 0x6c959820, 0x33697: 0x6c959a20, - 0x33698: 0x6c959c20, 0x33699: 0x6c959e20, 0x3369a: 0x6c95a020, 0x3369b: 0x6c95a220, - 0x3369c: 0x6c95a420, 0x3369d: 0x6c95a620, 0x3369e: 0x6c95a820, 0x3369f: 0x6c95aa20, - 0x336a0: 0x6c95ac20, 0x336a1: 0x6c95ae20, 0x336a2: 0x6c95b020, 0x336a3: 0x6c95b220, - 0x336a4: 0x6c95b420, 0x336a5: 0x6c95b620, 0x336a6: 0x6c95b820, 0x336a7: 0x6c95ba20, - 0x336a8: 0x6c95bc20, 0x336a9: 0x6c95be20, 0x336aa: 0x6c95c020, 0x336ab: 0x6cc1ae20, - 0x336ac: 0x6cc1b020, 0x336ad: 0x6cc1b220, 0x336ae: 0x6cc1b420, 0x336af: 0x6cc1b620, - 0x336b0: 0x6cc1b820, 0x336b1: 0x6cc1ba20, 0x336b2: 0x6cc1bc20, 0x336b3: 0x6cc1be20, - 0x336b4: 0x6cc1c020, 0x336b5: 0x6cc1c220, 0x336b6: 0x6cc1c420, 0x336b7: 0x6cc1c620, - 0x336b8: 0x6cc1c820, 0x336b9: 0x6cc1ca20, 0x336ba: 0x6cc1cc20, 0x336bb: 0x6cc1ce20, - 0x336bc: 0x6cc1d020, 0x336bd: 0x6cc1d220, 0x336be: 0x6cc1d420, 0x336bf: 0x6cc1d620, - // Block 0xcdb, offset 0x336c0 - 0x336c0: 0x6cc1d820, 0x336c1: 0x6cc1da20, 0x336c2: 0x6cc1dc20, 0x336c3: 0x6cc1de20, - 0x336c4: 0x6cc1e020, 0x336c5: 0x6cc1e220, 0x336c6: 0x6cc1e420, 0x336c7: 0x6cc1e620, - 0x336c8: 0x6cc1e820, 0x336c9: 0x6cc1ea20, 0x336ca: 0x6cf13020, 0x336cb: 0x6cf13220, - 0x336cc: 0x6cf13420, 0x336cd: 0x6cf13620, 0x336ce: 0x6cf13820, 0x336cf: 0x6cf13a20, - 0x336d0: 0x6cf13c20, 0x336d1: 0x6cf13e20, 0x336d2: 0x6cf14020, 0x336d3: 0x6cf14220, - 0x336d4: 0x6cf14420, 0x336d5: 0x6cf14620, 0x336d6: 0x6cf14820, 0x336d7: 0x6cf14a20, - 0x336d8: 0x6cf14c20, 0x336d9: 0x6cf14e20, 0x336da: 0x6cf15020, 0x336db: 0x6cf15220, - 0x336dc: 0x6cf15420, 0x336dd: 0x6cf15620, 0x336de: 0x6cf15820, 0x336df: 0x6d20dc20, - 0x336e0: 0x6d20de20, 0x336e1: 0x6d20e020, 0x336e2: 0x6d20e220, 0x336e3: 0x6d20e420, - 0x336e4: 0x6d20e620, 0x336e5: 0x6d20e820, 0x336e6: 0x6d20ea20, 0x336e7: 0x6d20ec20, - 0x336e8: 0x6d20ee20, 0x336e9: 0x6d20f020, 0x336ea: 0x6d20f220, 0x336eb: 0x6d20f420, - 0x336ec: 0x6d20f620, 0x336ed: 0x6d20f820, 0x336ee: 0x6d20fa20, 0x336ef: 0x6d20fc20, - 0x336f0: 0x6d20fe20, 0x336f1: 0x6d210020, 0x336f2: 0x6d210220, 0x336f3: 0x6d4e7220, - 0x336f4: 0x6d4e7420, 0x336f5: 0x6d4e7620, 0x336f6: 0x6d4e7820, 0x336f7: 0x6d4e7a20, - 0x336f8: 0x6d4e7c20, 0x336f9: 0x6d4e7e20, 0x336fa: 0x6d4e8020, 0x336fb: 0x6d4e8220, - 0x336fc: 0x6d4e8420, 0x336fd: 0x6d4e8620, 0x336fe: 0x6d4e8820, 0x336ff: 0x6d4e8a20, - // Block 0xcdc, offset 0x33700 - 0x33700: 0x6d4e8c20, 0x33701: 0x6d4e8e20, 0x33702: 0x6d4e9020, 0x33703: 0x6d4e9220, - 0x33704: 0x6d4e9420, 0x33705: 0x6d4e9620, 0x33706: 0x6d4e9820, 0x33707: 0x6d4e9a20, - 0x33708: 0x6d4e9c20, 0x33709: 0x6d4e9e20, 0x3370a: 0x6d4ea020, 0x3370b: 0x6d4ea220, - 0x3370c: 0x6d4ea420, 0x3370d: 0x6d7af420, 0x3370e: 0x6d7af620, 0x3370f: 0x6d7af820, - 0x33710: 0x6d7afa20, 0x33711: 0x6d7afc20, 0x33712: 0x6d7afe20, 0x33713: 0x6d7b0020, - 0x33714: 0x6d7b0220, 0x33715: 0x6d7b0420, 0x33716: 0x6d7b0620, 0x33717: 0x6d7b0820, - 0x33718: 0x6d7b0a20, 0x33719: 0x6d7b0c20, 0x3371a: 0x6d7b0e20, 0x3371b: 0x6d7b1020, - 0x3371c: 0x6d7b1220, 0x3371d: 0x6d7b1420, 0x3371e: 0x6d7b1620, 0x3371f: 0x6da36620, - 0x33720: 0x6da36820, 0x33721: 0x6da36a20, 0x33722: 0x6da36c20, 0x33723: 0x6da36e20, - 0x33724: 0x6da37020, 0x33725: 0x6da37220, 0x33726: 0x6da37420, 0x33727: 0x6da37620, - 0x33728: 0x6da37820, 0x33729: 0x6dc51420, 0x3372a: 0x6dc51620, 0x3372b: 0x6dc51820, - 0x3372c: 0x6dc51a20, 0x3372d: 0x6de21420, 0x3372e: 0x6de21620, 0x3372f: 0x6de21820, - 0x33730: 0x6de21a20, 0x33731: 0x6de21c20, 0x33732: 0x6de21e20, 0x33733: 0x6de22020, - 0x33734: 0x6de22220, 0x33735: 0x6de22420, 0x33736: 0x6de22620, 0x33737: 0x6de22820, - 0x33738: 0x6df9e220, 0x33739: 0x6df9e420, 0x3373a: 0x6df9e620, 0x3373b: 0x6e0d9820, - 0x3373c: 0x6e0d9a20, 0x3373d: 0x6e0d9c20, 0x3373e: 0x6e1d0820, 0x3373f: 0x6e1d0a20, - // Block 0xcdd, offset 0x33740 - 0x33740: 0x6e1d0c20, 0x33741: 0x6e1d0e20, 0x33742: 0x6e28bc20, 0x33743: 0x6e320a20, - 0x33744: 0x6e320c20, 0x33745: 0x6e320e20, 0x33746: 0x6e321020, 0x33747: 0x6e402e20, - 0x33748: 0x6e403020, 0x33749: 0x6c08bc20, 0x3374a: 0x6c1e3220, 0x3374b: 0x6c1e3420, - 0x3374c: 0x6c1e3620, 0x3374d: 0x6c31e020, 0x3374e: 0x6c31e220, 0x3374f: 0x6c31e420, - 0x33750: 0x6c31e620, 0x33751: 0x6c4c5420, 0x33752: 0x6c4c5620, 0x33753: 0x6c4c5820, - 0x33754: 0x6c4c5a20, 0x33755: 0x6c4c5c20, 0x33756: 0x6c6e4e20, 0x33757: 0x6c6e5020, - 0x33758: 0x6c6e5220, 0x33759: 0x6c6e5420, 0x3375a: 0x6c95cc20, 0x3375b: 0x6cc1f420, - 0x3375c: 0x6cc1f620, 0x3375d: 0x6cc1f820, 0x3375e: 0x6cf15c20, 0x3375f: 0x6cf15e20, - 0x33760: 0x6cf16020, 0x33761: 0x6d18a420, 0x33762: 0x6d210820, 0x33763: 0x6d1e2a20, - 0x33764: 0x6d210a20, 0x33765: 0x6d4eaa20, 0x33766: 0x6d7b1c20, 0x33767: 0x6d7b1e20, - 0x33768: 0x6d7b2020, 0x33769: 0x6d7b2220, 0x3376a: 0x6dc51c20, 0x3376b: 0x6de22c20, - 0x3376c: 0x6df9ea20, 0x3376d: 0x6e0d9e20, 0x3376e: 0x6e28be20, 0x3376f: 0x6c043420, - 0x33770: 0x6c043620, 0x33771: 0x6c043820, 0x33772: 0x6c08c020, 0x33773: 0x6c08c220, - 0x33774: 0x6c08c420, 0x33775: 0x6c08c620, 0x33776: 0x6c10e020, 0x33777: 0x6c1e3a20, - 0x33778: 0x6c1e3c20, 0x33779: 0x6c1e3e20, 0x3377a: 0x6c1e4020, 0x3377b: 0x6c31e820, - 0x3377c: 0x6c31ea20, 0x3377d: 0x6c31ec20, 0x3377e: 0x6c31ee20, 0x3377f: 0x6c4c6020, - // Block 0xcde, offset 0x33780 - 0x33780: 0x6c4b0c20, 0x33781: 0x6c6e5620, 0x33782: 0x6c4c6220, 0x33783: 0x6c6e5820, - 0x33784: 0x6c6e5a20, 0x33785: 0x6c6e5c20, 0x33786: 0x6c6e5e20, 0x33787: 0x6c95d220, - 0x33788: 0x6c95d420, 0x33789: 0x6c95d620, 0x3378a: 0x6cc20220, 0x3378b: 0x6cf16820, - 0x3378c: 0x6d210e20, 0x3378d: 0x6d211020, 0x3378e: 0x6d211220, 0x3378f: 0x6d211420, - 0x33790: 0x6d4eae20, 0x33791: 0x6d4eb020, 0x33792: 0x6d4eb220, 0x33793: 0x6d4eb420, - 0x33794: 0x6da2ce20, 0x33795: 0x6dc2b220, 0x33796: 0x6e1d1020, 0x33797: 0x6c10f020, - 0x33798: 0x6c10f220, 0x33799: 0x6c10f420, 0x3379a: 0x6c10f620, 0x3379b: 0x6c10f820, - 0x3379c: 0x6c10fa20, 0x3379d: 0x6c10fc20, 0x3379e: 0x6c10fe20, 0x3379f: 0x6c110020, - 0x337a0: 0x6c110220, 0x337a1: 0x6c110420, 0x337a2: 0x6c110620, 0x337a3: 0x6c1e6220, - 0x337a4: 0x6c1e6420, 0x337a5: 0x6c1e6620, 0x337a6: 0x6c1e6820, 0x337a7: 0x6c1e6a20, - 0x337a8: 0x6c1e6c20, 0x337a9: 0x6c1e6e20, 0x337aa: 0x6c1e7020, 0x337ab: 0x6c1e7220, - 0x337ac: 0x6c1e7420, 0x337ad: 0x6c1e7620, 0x337ae: 0x6c1e7820, 0x337af: 0x6c1e7a20, - 0x337b0: 0x6c1e7c20, 0x337b1: 0x6c1e7e20, 0x337b2: 0x6c321420, 0x337b3: 0x6c321620, - 0x337b4: 0x6c321820, 0x337b5: 0x6c321a20, 0x337b6: 0x6c321c20, 0x337b7: 0x6c321e20, - 0x337b8: 0x6c322020, 0x337b9: 0x6c322220, 0x337ba: 0x6c322420, 0x337bb: 0x6c322620, - 0x337bc: 0x6c322820, 0x337bd: 0x6c322a20, 0x337be: 0x6c322c20, 0x337bf: 0x6c322e20, - // Block 0xcdf, offset 0x337c0 - 0x337c0: 0x6c323020, 0x337c1: 0x6c323220, 0x337c2: 0x6c323420, 0x337c3: 0x6c323620, - 0x337c4: 0x6c323820, 0x337c5: 0x6c323a20, 0x337c6: 0x6c323c20, 0x337c7: 0x6c4c8420, - 0x337c8: 0x6c4c8620, 0x337c9: 0x6c4c8820, 0x337ca: 0x6c4c8a20, 0x337cb: 0x6c4c8c20, - 0x337cc: 0x6c4c8e20, 0x337cd: 0x6c4c9020, 0x337ce: 0x6c4c9220, 0x337cf: 0x6c4c9420, - 0x337d0: 0x6c4c9620, 0x337d1: 0x6c4c9820, 0x337d2: 0x6c4c9a20, 0x337d3: 0x6c4c9c20, - 0x337d4: 0x6c4c9e20, 0x337d5: 0x6c4ca020, 0x337d6: 0x6c4ca220, 0x337d7: 0x6c4ca420, - 0x337d8: 0x6c4ca620, 0x337d9: 0x6c6e7c20, 0x337da: 0x6c6e7e20, 0x337db: 0x6c6e8020, - 0x337dc: 0x6c6e8220, 0x337dd: 0x6c6e8420, 0x337de: 0x6c6e8620, 0x337df: 0x6c6e8820, - 0x337e0: 0x6c6e8a20, 0x337e1: 0x6c6e8c20, 0x337e2: 0x6c6e8e20, 0x337e3: 0x6c6e9020, - 0x337e4: 0x6c6e9220, 0x337e5: 0x6c6e9420, 0x337e6: 0x6c6e9620, 0x337e7: 0x6c6e9820, - 0x337e8: 0x6c6e9a20, 0x337e9: 0x6c6e9c20, 0x337ea: 0x6c6e9e20, 0x337eb: 0x6c6ea020, - 0x337ec: 0x6c6ea220, 0x337ed: 0x6c6ea420, 0x337ee: 0x6c6ea620, 0x337ef: 0x6c6ea820, - 0x337f0: 0x6c6eaa20, 0x337f1: 0x6c6eac20, 0x337f2: 0x6c6bf220, 0x337f3: 0x6c95fa20, - 0x337f4: 0x6c95fc20, 0x337f5: 0x6c95fe20, 0x337f6: 0x6c960020, 0x337f7: 0x6c960220, - 0x337f8: 0x6c960420, 0x337f9: 0x6c960620, 0x337fa: 0x6c960820, 0x337fb: 0x6c960a20, - 0x337fc: 0x6c960c20, 0x337fd: 0x6c960e20, 0x337fe: 0x6c961020, 0x337ff: 0x6c961220, - // Block 0xce0, offset 0x33800 - 0x33800: 0x6c961420, 0x33801: 0x6c961620, 0x33802: 0x6c961820, 0x33803: 0x6c961a20, - 0x33804: 0x6c961c20, 0x33805: 0x6c961e20, 0x33806: 0x6c962020, 0x33807: 0x6c962220, - 0x33808: 0x6c962420, 0x33809: 0x6c962620, 0x3380a: 0x6c962820, 0x3380b: 0x6c962a20, - 0x3380c: 0x6c962c20, 0x3380d: 0x6c962e20, 0x3380e: 0x6c963020, 0x3380f: 0x6c963220, - 0x33810: 0x6c963420, 0x33811: 0x6c963620, 0x33812: 0x6c963820, 0x33813: 0x6c963a20, - 0x33814: 0x6c963c20, 0x33815: 0x6c963e20, 0x33816: 0x6cb78820, 0x33817: 0x6c964020, - 0x33818: 0x6c964220, 0x33819: 0x6c964420, 0x3381a: 0x6c964620, 0x3381b: 0x6cc21a20, - 0x3381c: 0x6cc21c20, 0x3381d: 0x6cc21e20, 0x3381e: 0x6cc22020, 0x3381f: 0x6cc22220, - 0x33820: 0x6cc22420, 0x33821: 0x6cc22620, 0x33822: 0x6cc22820, 0x33823: 0x6cc22a20, - 0x33824: 0x6cc22c20, 0x33825: 0x6cc22e20, 0x33826: 0x6cc23020, 0x33827: 0x6cc23220, - 0x33828: 0x6cc23420, 0x33829: 0x6cc23620, 0x3382a: 0x6cc23820, 0x3382b: 0x6cc23a20, - 0x3382c: 0x6cc23c20, 0x3382d: 0x6cc23e20, 0x3382e: 0x6cc24020, 0x3382f: 0x6cc24220, - 0x33830: 0x6cc24420, 0x33831: 0x6cc24620, 0x33832: 0x6cc24820, 0x33833: 0x6cc24a20, - 0x33834: 0x6cc24c20, 0x33835: 0x6cc24e20, 0x33836: 0x6cc25020, 0x33837: 0x6cc25220, - 0x33838: 0x6cc25420, 0x33839: 0x6cc25620, 0x3383a: 0x6cc25820, 0x3383b: 0x6cc25a20, - 0x3383c: 0x6cf17a20, 0x3383d: 0x6cc25c20, 0x3383e: 0x6cc25e20, 0x3383f: 0x6cf17c20, - // Block 0xce1, offset 0x33840 - 0x33840: 0x6cf17e20, 0x33841: 0x6cf18020, 0x33842: 0x6cf18220, 0x33843: 0x6cf18420, - 0x33844: 0x6cf18620, 0x33845: 0x6cf18820, 0x33846: 0x6cf18a20, 0x33847: 0x6cf18c20, - 0x33848: 0x6cf18e20, 0x33849: 0x6cf19020, 0x3384a: 0x6cf19220, 0x3384b: 0x6cf19420, - 0x3384c: 0x6cf19620, 0x3384d: 0x6cf19820, 0x3384e: 0x6cf19a20, 0x3384f: 0x6cf19c20, - 0x33850: 0x6cf19e20, 0x33851: 0x6cf1a020, 0x33852: 0x6cf1a220, 0x33853: 0x6cf1a420, - 0x33854: 0x6cf1a620, 0x33855: 0x6d213620, 0x33856: 0x6d213820, 0x33857: 0x6d213a20, - 0x33858: 0x6d213c20, 0x33859: 0x6d213e20, 0x3385a: 0x6d214020, 0x3385b: 0x6d214220, - 0x3385c: 0x6d214420, 0x3385d: 0x6d214620, 0x3385e: 0x6d214820, 0x3385f: 0x6d214a20, - 0x33860: 0x6d214c20, 0x33861: 0x6d214e20, 0x33862: 0x6d215020, 0x33863: 0x6d215220, - 0x33864: 0x6d215420, 0x33865: 0x6d215620, 0x33866: 0x6d215820, 0x33867: 0x6d215a20, - 0x33868: 0x6d215c20, 0x33869: 0x6d215e20, 0x3386a: 0x6d216020, 0x3386b: 0x6d216220, - 0x3386c: 0x6d216420, 0x3386d: 0x6d4ed020, 0x3386e: 0x6d4ed220, 0x3386f: 0x6d4ed420, - 0x33870: 0x6d4ed620, 0x33871: 0x6d4ed820, 0x33872: 0x6d4eda20, 0x33873: 0x6d4edc20, - 0x33874: 0x6d4ede20, 0x33875: 0x6d4ee020, 0x33876: 0x6d4ee220, 0x33877: 0x6d4ee420, - 0x33878: 0x6d4ee620, 0x33879: 0x6d4ee820, 0x3387a: 0x6d4eea20, 0x3387b: 0x6d4eec20, - 0x3387c: 0x6d4eee20, 0x3387d: 0x6d4ef020, 0x3387e: 0x6d4ef220, 0x3387f: 0x6d4ef420, - // Block 0xce2, offset 0x33880 - 0x33880: 0x6d4ef620, 0x33881: 0x6d4ef820, 0x33882: 0x6d7b3a20, 0x33883: 0x6d7b3c20, - 0x33884: 0x6d7b3e20, 0x33885: 0x6d7b4020, 0x33886: 0x6d7b4220, 0x33887: 0x6d7b4420, - 0x33888: 0x6d7b4620, 0x33889: 0x6d7b4820, 0x3388a: 0x6d7b4a20, 0x3388b: 0x6d7b4c20, - 0x3388c: 0x6d7b4e20, 0x3388d: 0x6d7b5020, 0x3388e: 0x6d7b5220, 0x3388f: 0x6d7b5420, - 0x33890: 0x6d7b5620, 0x33891: 0x6da37c20, 0x33892: 0x6da37e20, 0x33893: 0x6da38020, - 0x33894: 0x6da38220, 0x33895: 0x6da38420, 0x33896: 0x6da38620, 0x33897: 0x6da38820, - 0x33898: 0x6da38a20, 0x33899: 0x6da38c20, 0x3389a: 0x6da38e20, 0x3389b: 0x6da39020, - 0x3389c: 0x6db42620, 0x3389d: 0x6da39220, 0x3389e: 0x6da39420, 0x3389f: 0x6da39620, - 0x338a0: 0x6da39820, 0x338a1: 0x6dc52220, 0x338a2: 0x6dc52420, 0x338a3: 0x6dc52620, - 0x338a4: 0x6dc52820, 0x338a5: 0x6dc52a20, 0x338a6: 0x6dc52c20, 0x338a7: 0x6dc52e20, - 0x338a8: 0x6dc53020, 0x338a9: 0x6dc53220, 0x338aa: 0x6dc53420, 0x338ab: 0x6dc53620, - 0x338ac: 0x6dc53820, 0x338ad: 0x6dc53a20, 0x338ae: 0x6de23a20, 0x338af: 0x6de23c20, - 0x338b0: 0x6de23e20, 0x338b1: 0x6de24020, 0x338b2: 0x6de24220, 0x338b3: 0x6de24420, - 0x338b4: 0x6de24620, 0x338b5: 0x6de24820, 0x338b6: 0x6de24a20, 0x338b7: 0x6de24c20, - 0x338b8: 0x6de24e20, 0x338b9: 0x6de25020, 0x338ba: 0x6de25220, 0x338bb: 0x6df9f420, - 0x338bc: 0x6df9f620, 0x338bd: 0x6df9f820, 0x338be: 0x6df9fa20, 0x338bf: 0x6df9fc20, - // Block 0xce3, offset 0x338c0 - 0x338c0: 0x6df9fe20, 0x338c1: 0x6dfa0020, 0x338c2: 0x6dfa0220, 0x338c3: 0x6dfa0420, - 0x338c4: 0x6e0da220, 0x338c5: 0x6e0da420, 0x338c6: 0x6e0da620, 0x338c7: 0x6e0f2020, - 0x338c8: 0x6e1d1420, 0x338c9: 0x6e1d1620, 0x338ca: 0x6e1d1820, 0x338cb: 0x6e1d1a20, - 0x338cc: 0x6e1d1c20, 0x338cd: 0x6e28c020, 0x338ce: 0x6e28c220, 0x338cf: 0x6e28c420, - 0x338d0: 0x6e28c620, 0x338d1: 0x6e28c820, 0x338d2: 0x6e321220, 0x338d3: 0x6e3d2220, - 0x338d4: 0x6e403220, 0x338d5: 0x6e403420, 0x338d6: 0x6e429420, 0x338d7: 0x6c043a20, - 0x338d8: 0x6c08d220, 0x338d9: 0x6c08d420, 0x338da: 0x6c08d620, 0x338db: 0x6c1e8620, - 0x338dc: 0x6c110c20, 0x338dd: 0x6c1e8820, 0x338de: 0x6c1e8a20, 0x338df: 0x6c324a20, - 0x338e0: 0x6c4cb420, 0x338e1: 0x6c4cb620, 0x338e2: 0x6c4cb820, 0x338e3: 0x6c4cba20, - 0x338e4: 0x6c4cbc20, 0x338e5: 0x6c4cbe20, 0x338e6: 0x6c6ebc20, 0x338e7: 0x6c6ebe20, - 0x338e8: 0x6c965220, 0x338e9: 0x6c965420, 0x338ea: 0x6c965620, 0x338eb: 0x6cc26620, - 0x338ec: 0x6c01da20, 0x338ed: 0x6c044020, 0x338ee: 0x6c08dc20, 0x338ef: 0x6c08de20, - 0x338f0: 0x6c111020, 0x338f1: 0x6c111220, 0x338f2: 0x6c111420, 0x338f3: 0x6c1e9620, - 0x338f4: 0x6c4cc620, 0x338f5: 0x6c1e9820, 0x338f6: 0x6c1e9a20, 0x338f7: 0x6c1e9c20, - 0x338f8: 0x6c1e9e20, 0x338f9: 0x6c1ea020, 0x338fa: 0x6c1ea220, 0x338fb: 0x6c324e20, - 0x338fc: 0x6c4cc820, 0x338fd: 0x6c325020, 0x338fe: 0x6c325220, 0x338ff: 0x6c325420, - // Block 0xce4, offset 0x33900 - 0x33900: 0x6c325620, 0x33901: 0x6c325820, 0x33902: 0x6c4cca20, 0x33903: 0x6c4ccc20, - 0x33904: 0x6c4cce20, 0x33905: 0x6c4cd020, 0x33906: 0x6c4cd220, 0x33907: 0x6c4cd420, - 0x33908: 0x6c4cd620, 0x33909: 0x6c4cd820, 0x3390a: 0x6c4cda20, 0x3390b: 0x6c4cdc20, - 0x3390c: 0x6c4cde20, 0x3390d: 0x6c6ec420, 0x3390e: 0x6c6ec620, 0x3390f: 0x6c6ec820, - 0x33910: 0x6c6eca20, 0x33911: 0x6c6ecc20, 0x33912: 0x6c6ece20, 0x33913: 0x6c6ed020, - 0x33914: 0x6c965a20, 0x33915: 0x6c965c20, 0x33916: 0x6c965e20, 0x33917: 0x6c966020, - 0x33918: 0x6c966220, 0x33919: 0x6c966420, 0x3391a: 0x6cc26820, 0x3391b: 0x6cc26a20, - 0x3391c: 0x6cc26c20, 0x3391d: 0x6cc26e20, 0x3391e: 0x6cc27020, 0x3391f: 0x6cc27220, - 0x33920: 0x6cc27420, 0x33921: 0x6cc27620, 0x33922: 0x6cf1ae20, 0x33923: 0x6cf1b020, - 0x33924: 0x6cf1b220, 0x33925: 0x6cf1b420, 0x33926: 0x6d217620, 0x33927: 0x6d217820, - 0x33928: 0x6d217a20, 0x33929: 0x6d217c20, 0x3392a: 0x6d217e20, 0x3392b: 0x6d218020, - 0x3392c: 0x6d4f0220, 0x3392d: 0x6d1a0c20, 0x3392e: 0x6d7b5e20, 0x3392f: 0x6d7b6020, - 0x33930: 0x6d7b6220, 0x33931: 0x6d7b6420, 0x33932: 0x6da3a020, 0x33933: 0x6da3a220, - 0x33934: 0x6da3a420, 0x33935: 0x6de25620, 0x33936: 0x6e1d1e20, 0x33937: 0x6e403620, - 0x33938: 0x6e403820, 0x33939: 0x6e442c20, 0x3393a: 0x6c01de20, 0x3393b: 0x6c044420, - 0x3393c: 0x6c044620, 0x3393d: 0x6c111c20, 0x3393e: 0x6c111e20, 0x3393f: 0x6c1ea820, - // Block 0xce5, offset 0x33940 - 0x33940: 0x6c1eaa20, 0x33941: 0x6c1eac20, 0x33942: 0x6c1eae20, 0x33943: 0x6c1eb020, - 0x33944: 0x6c325c20, 0x33945: 0x6c325e20, 0x33946: 0x6c4ce220, 0x33947: 0x6c4ce420, - 0x33948: 0x6c4ce620, 0x33949: 0x6c4ce820, 0x3394a: 0x6c4cea20, 0x3394b: 0x6c6ed420, - 0x3394c: 0x6c6ed620, 0x3394d: 0x6c966620, 0x3394e: 0x6cc27c20, 0x3394f: 0x6cf1bc20, - 0x33950: 0x6cf1be20, 0x33951: 0x6d4f0420, 0x33952: 0x6d4f0620, 0x33953: 0x6d7b6620, - 0x33954: 0x6da3a820, 0x33955: 0x6dc53e20, 0x33956: 0x6e0daa20, 0x33957: 0x6c01e220, - 0x33958: 0x6c01e420, 0x33959: 0x6c045020, 0x3395a: 0x6c045220, 0x3395b: 0x6c045420, - 0x3395c: 0x6c045620, 0x3395d: 0x6c045820, 0x3395e: 0x6c045a20, 0x3395f: 0x6c045c20, - 0x33960: 0x6c045e20, 0x33961: 0x6c046020, 0x33962: 0x6c08e620, 0x33963: 0x6c08e820, - 0x33964: 0x6c08ea20, 0x33965: 0x6c08ec20, 0x33966: 0x6c08ee20, 0x33967: 0x6c08f020, - 0x33968: 0x6c08f220, 0x33969: 0x6c08f420, 0x3396a: 0x6c08f620, 0x3396b: 0x6c113020, - 0x3396c: 0x6c113220, 0x3396d: 0x6c113420, 0x3396e: 0x6c113620, 0x3396f: 0x6c113820, - 0x33970: 0x6c113a20, 0x33971: 0x6c113c20, 0x33972: 0x6c113e20, 0x33973: 0x6c114020, - 0x33974: 0x6c114220, 0x33975: 0x6c114420, 0x33976: 0x6c114620, 0x33977: 0x6c1ebe20, - 0x33978: 0x6c1ec020, 0x33979: 0x6c1ec220, 0x3397a: 0x6c1ec420, 0x3397b: 0x6c1ec620, - 0x3397c: 0x6c1ec820, 0x3397d: 0x6c1eca20, 0x3397e: 0x6c1ecc20, 0x3397f: 0x6c1ece20, - // Block 0xce6, offset 0x33980 - 0x33980: 0x6c1ed020, 0x33981: 0x6c1ed220, 0x33982: 0x6c1ed420, 0x33983: 0x6c1ed620, - 0x33984: 0x6c1ed820, 0x33985: 0x6c1eda20, 0x33986: 0x6c327c20, 0x33987: 0x6c327e20, - 0x33988: 0x6c328020, 0x33989: 0x6c328220, 0x3398a: 0x6c328420, 0x3398b: 0x6c328620, - 0x3398c: 0x6c328820, 0x3398d: 0x6c328a20, 0x3398e: 0x6c328c20, 0x3398f: 0x6c328e20, - 0x33990: 0x6c329020, 0x33991: 0x6c329220, 0x33992: 0x6c329420, 0x33993: 0x6c329620, - 0x33994: 0x6c4d0620, 0x33995: 0x6c4d0820, 0x33996: 0x6c4d0a20, 0x33997: 0x6c4d0c20, - 0x33998: 0x6c4d0e20, 0x33999: 0x6c4d1020, 0x3399a: 0x6c4d1220, 0x3399b: 0x6c4d1420, - 0x3399c: 0x6c4d1620, 0x3399d: 0x6c4d1820, 0x3399e: 0x6c4d1a20, 0x3399f: 0x6c4d1c20, - 0x339a0: 0x6c4d1e20, 0x339a1: 0x6c4d2020, 0x339a2: 0x6c4d2220, 0x339a3: 0x6c4d2420, - 0x339a4: 0x6c6ee420, 0x339a5: 0x6c6ee620, 0x339a6: 0x6c6ee820, 0x339a7: 0x6c6eea20, - 0x339a8: 0x6c6eec20, 0x339a9: 0x6c6eee20, 0x339aa: 0x6c6ef020, 0x339ab: 0x6c6ef220, - 0x339ac: 0x6c6ef420, 0x339ad: 0x6c6ef620, 0x339ae: 0x6c967a20, 0x339af: 0x6c967c20, - 0x339b0: 0x6c967e20, 0x339b1: 0x6c968020, 0x339b2: 0x6c968220, 0x339b3: 0x6c968420, - 0x339b4: 0x6c968620, 0x339b5: 0x6c968820, 0x339b6: 0x6c968a20, 0x339b7: 0x6c968c20, - 0x339b8: 0x6c968e20, 0x339b9: 0x6c969020, 0x339ba: 0x6c969220, 0x339bb: 0x6c969420, - 0x339bc: 0x6c969620, 0x339bd: 0x6c969820, 0x339be: 0x6c969a20, 0x339bf: 0x6c969c20, - // Block 0xce7, offset 0x339c0 - 0x339c0: 0x6cc28e20, 0x339c1: 0x6cc29020, 0x339c2: 0x6cc29220, 0x339c3: 0x6cc29420, - 0x339c4: 0x6cc29620, 0x339c5: 0x6cc29820, 0x339c6: 0x6cc29a20, 0x339c7: 0x6cc29c20, - 0x339c8: 0x6cc29e20, 0x339c9: 0x6cc2a020, 0x339ca: 0x6cf1d020, 0x339cb: 0x6cf1d220, - 0x339cc: 0x6cf1d420, 0x339cd: 0x6cf1d620, 0x339ce: 0x6cf1d820, 0x339cf: 0x6cf1da20, - 0x339d0: 0x6cf1dc20, 0x339d1: 0x6cf1de20, 0x339d2: 0x6d218c20, 0x339d3: 0x6d218e20, - 0x339d4: 0x6d219020, 0x339d5: 0x6d219220, 0x339d6: 0x6d219420, 0x339d7: 0x6d219620, - 0x339d8: 0x6d219820, 0x339d9: 0x6d219a20, 0x339da: 0x6d219c20, 0x339db: 0x6d219e20, - 0x339dc: 0x6d21a020, 0x339dd: 0x6d21a220, 0x339de: 0x6d4f1220, 0x339df: 0x6d4f1420, - 0x339e0: 0x6d4f1620, 0x339e1: 0x6d4f1820, 0x339e2: 0x6d4f1a20, 0x339e3: 0x6d4f1c20, - 0x339e4: 0x6d4f1e20, 0x339e5: 0x6d7b6c20, 0x339e6: 0x6d7b6e20, 0x339e7: 0x6d7b7020, - 0x339e8: 0x6d7b7220, 0x339e9: 0x6d7b7420, 0x339ea: 0x6d7b7620, 0x339eb: 0x6d8a6c20, - 0x339ec: 0x6da3ac20, 0x339ed: 0x6da3ae20, 0x339ee: 0x6da3b020, 0x339ef: 0x6da3b220, - 0x339f0: 0x6da3b420, 0x339f1: 0x6da3b620, 0x339f2: 0x6dc54220, 0x339f3: 0x6dc54420, - 0x339f4: 0x6dc54620, 0x339f5: 0x6dc54820, 0x339f6: 0x6dc54a20, 0x339f7: 0x6dc54c20, - 0x339f8: 0x6de25820, 0x339f9: 0x6de25a20, 0x339fa: 0x6de25c20, 0x339fb: 0x6de25e20, - 0x339fc: 0x6de26020, 0x339fd: 0x6de26220, 0x339fe: 0x6de26420, 0x339ff: 0x6dfa0620, - // Block 0xce8, offset 0x33a00 - 0x33a00: 0x6dfa0820, 0x33a01: 0x6dfa0a20, 0x33a02: 0x6dfa0c20, 0x33a03: 0x6dfa0e20, - 0x33a04: 0x6dfa1020, 0x33a05: 0x6dfa1220, 0x33a06: 0x6e0dae20, 0x33a07: 0x6e0db020, - 0x33a08: 0x6e0db220, 0x33a09: 0x6e0db420, 0x33a0a: 0x6e1d2420, 0x33a0b: 0x6e321420, - 0x33a0c: 0x6e388220, 0x33a0d: 0x6e429620, 0x33a0e: 0x6e462820, 0x33a0f: 0x6c114c20, - 0x33a10: 0x6c114e20, 0x33a11: 0x6c115020, 0x33a12: 0x6c115220, 0x33a13: 0x6c1edc20, - 0x33a14: 0x6c32a020, 0x33a15: 0x6c32a220, 0x33a16: 0x6c3bf820, 0x33a17: 0x6c4d2c20, - 0x33a18: 0x6c4d2e20, 0x33a19: 0x6c4d3020, 0x33a1a: 0x6c4d3220, 0x33a1b: 0x6c6efa20, - 0x33a1c: 0x6c6efc20, 0x33a1d: 0x6c6efe20, 0x33a1e: 0x6c96a220, 0x33a1f: 0x6c96a420, - 0x33a20: 0x6c96a620, 0x33a21: 0x6c96a820, 0x33a22: 0x6cc2a820, 0x33a23: 0x6cc2aa20, - 0x33a24: 0x6cc2ac20, 0x33a25: 0x6cf1e420, 0x33a26: 0x6cf1e620, 0x33a27: 0x6cf1e820, - 0x33a28: 0x6d21a820, 0x33a29: 0x6d21aa20, 0x33a2a: 0x6d21ac20, 0x33a2b: 0x6d21ae20, - 0x33a2c: 0x6d21b020, 0x33a2d: 0x6d4f2020, 0x33a2e: 0x6d4f2220, 0x33a2f: 0x6d7b7e20, - 0x33a30: 0x6d7adc20, 0x33a31: 0x6d7b8020, 0x33a32: 0x6da3ba20, 0x33a33: 0x6dc55220, - 0x33a34: 0x6dc55420, 0x33a35: 0x6dc55620, 0x33a36: 0x6dc55820, 0x33a37: 0x6de26a20, - 0x33a38: 0x6de26c20, 0x33a39: 0x6de26e20, 0x33a3a: 0x6de27020, 0x33a3b: 0x6dfa1420, - 0x33a3c: 0x6dfa1620, 0x33a3d: 0x6e1d2620, 0x33a3e: 0x6e28cc20, 0x33a3f: 0x6e3d2620, - // Block 0xce9, offset 0x33a40 - 0x33a40: 0x6c08fa20, 0x33a41: 0x6c08fc20, 0x33a42: 0x6c08fe20, 0x33a43: 0x6c115820, - 0x33a44: 0x6c115a20, 0x33a45: 0x6c115c20, 0x33a46: 0x6c115e20, 0x33a47: 0x6c1ee620, - 0x33a48: 0x6c1ee820, 0x33a49: 0x6c32aa20, 0x33a4a: 0x6c32ac20, 0x33a4b: 0x6c32ae20, - 0x33a4c: 0x6c32b020, 0x33a4d: 0x6c32b220, 0x33a4e: 0x6c4d3820, 0x33a4f: 0x6c6f0420, - 0x33a50: 0x6c6f0620, 0x33a51: 0x6c6f0820, 0x33a52: 0x6c6f0a20, 0x33a53: 0x6c6f0c20, - 0x33a54: 0x6c96b220, 0x33a55: 0x6c96b420, 0x33a56: 0x6c96b620, 0x33a57: 0x6c96b820, - 0x33a58: 0x6c96ba20, 0x33a59: 0x6c96bc20, 0x33a5a: 0x6c96be20, 0x33a5b: 0x6c96c020, - 0x33a5c: 0x6c96c220, 0x33a5d: 0x6c96c420, 0x33a5e: 0x6cc2b420, 0x33a5f: 0x6cc2b620, - 0x33a60: 0x6cc2b820, 0x33a61: 0x6cc2ba20, 0x33a62: 0x6cc2bc20, 0x33a63: 0x6cc2be20, - 0x33a64: 0x6cf1ec20, 0x33a65: 0x6cf1ee20, 0x33a66: 0x6cf1f020, 0x33a67: 0x6cf1f220, - 0x33a68: 0x6cf1f420, 0x33a69: 0x6d21b820, 0x33a6a: 0x6d21ba20, 0x33a6b: 0x6d4f2a20, - 0x33a6c: 0x6d4f2c20, 0x33a6d: 0x6d4f2e20, 0x33a6e: 0x6d4f3020, 0x33a6f: 0x6d4f3220, - 0x33a70: 0x6d7b8420, 0x33a71: 0x6d7b8620, 0x33a72: 0x6d7b8820, 0x33a73: 0x6d7b8a20, - 0x33a74: 0x6da3bc20, 0x33a75: 0x6dc55c20, 0x33a76: 0x6e0db820, 0x33a77: 0x6dfa1820, - 0x33a78: 0x6e1d2a20, 0x33a79: 0x6e1d2c20, 0x33a7a: 0x6e1d2e20, 0x33a7b: 0x6e388620, - 0x33a7c: 0x6c046220, 0x33a7d: 0x6c046420, 0x33a7e: 0x6c090220, 0x33a7f: 0x6c090420, - // Block 0xcea, offset 0x33a80 - 0x33a80: 0x6c116620, 0x33a81: 0x6c116820, 0x33a82: 0x6c116a20, 0x33a83: 0x6c116c20, - 0x33a84: 0x6c1efe20, 0x33a85: 0x6c1f0020, 0x33a86: 0x6c1f0220, 0x33a87: 0x6c1f0420, - 0x33a88: 0x6c1f0620, 0x33a89: 0x6c1f0820, 0x33a8a: 0x6c1f0a20, 0x33a8b: 0x6c1f0c20, - 0x33a8c: 0x6c1f0e20, 0x33a8d: 0x6c1f1020, 0x33a8e: 0x6c1f1220, 0x33a8f: 0x6c1f1420, - 0x33a90: 0x6c1f1620, 0x33a91: 0x6c1f1820, 0x33a92: 0x6c32ca20, 0x33a93: 0x6c32cc20, - 0x33a94: 0x6c32ce20, 0x33a95: 0x6c32d020, 0x33a96: 0x6c32d220, 0x33a97: 0x6c32d420, - 0x33a98: 0x6c32d620, 0x33a99: 0x6c32d820, 0x33a9a: 0x6c32da20, 0x33a9b: 0x6c32dc20, - 0x33a9c: 0x6c4d6020, 0x33a9d: 0x6c4d6220, 0x33a9e: 0x6c4d6420, 0x33a9f: 0x6c4d6620, - 0x33aa0: 0x6c4d6820, 0x33aa1: 0x6c4d6a20, 0x33aa2: 0x6c4d6c20, 0x33aa3: 0x6c4d6e20, - 0x33aa4: 0x6c4d7020, 0x33aa5: 0x6c4d7220, 0x33aa6: 0x6c4d7420, 0x33aa7: 0x6c4d7620, - 0x33aa8: 0x6c4d7820, 0x33aa9: 0x6c4d7a20, 0x33aaa: 0x6c6f2420, 0x33aab: 0x6c6f2620, - 0x33aac: 0x6c6f2820, 0x33aad: 0x6c6f2a20, 0x33aae: 0x6c6f2c20, 0x33aaf: 0x6c6f2e20, - 0x33ab0: 0x6c6f3020, 0x33ab1: 0x6c6f3220, 0x33ab2: 0x6c6f3420, 0x33ab3: 0x6c6f3620, - 0x33ab4: 0x6c6f3820, 0x33ab5: 0x6c6f3a20, 0x33ab6: 0x6c6f3c20, 0x33ab7: 0x6c6f3e20, - 0x33ab8: 0x6c6f4020, 0x33ab9: 0x6c6f4220, 0x33aba: 0x6c6f4420, 0x33abb: 0x6c6f4620, - 0x33abc: 0x6c6f4820, 0x33abd: 0x6c6f4a20, 0x33abe: 0x6c6f4c20, 0x33abf: 0x6c6f4e20, - // Block 0xceb, offset 0x33ac0 - 0x33ac0: 0x6c6f5020, 0x33ac1: 0x6c96ee20, 0x33ac2: 0x6c96f020, 0x33ac3: 0x6c96f220, - 0x33ac4: 0x6c96f420, 0x33ac5: 0x6c96f620, 0x33ac6: 0x6c96f820, 0x33ac7: 0x6c96fa20, - 0x33ac8: 0x6c96fc20, 0x33ac9: 0x6c96fe20, 0x33aca: 0x6c970020, 0x33acb: 0x6c970220, - 0x33acc: 0x6c970420, 0x33acd: 0x6c970620, 0x33ace: 0x6c970820, 0x33acf: 0x6c970a20, - 0x33ad0: 0x6c970c20, 0x33ad1: 0x6c970e20, 0x33ad2: 0x6c971020, 0x33ad3: 0x6c971220, - 0x33ad4: 0x6c971420, 0x33ad5: 0x6c971620, 0x33ad6: 0x6c971820, 0x33ad7: 0x6c971a20, - 0x33ad8: 0x6c971c20, 0x33ad9: 0x6c971e20, 0x33ada: 0x6c972020, 0x33adb: 0x6c972220, - 0x33adc: 0x6c972420, 0x33add: 0x6c972620, 0x33ade: 0x6c972820, 0x33adf: 0x6cc2da20, - 0x33ae0: 0x6cc2dc20, 0x33ae1: 0x6cc2de20, 0x33ae2: 0x6cc2e020, 0x33ae3: 0x6cc2e220, - 0x33ae4: 0x6cc2e420, 0x33ae5: 0x6cc2e620, 0x33ae6: 0x6cc2e820, 0x33ae7: 0x6cc2ea20, - 0x33ae8: 0x6cc2ec20, 0x33ae9: 0x6cc2ee20, 0x33aea: 0x6cc2f020, 0x33aeb: 0x6cc2f220, - 0x33aec: 0x6cde5820, 0x33aed: 0x6cc2f420, 0x33aee: 0x6cc2f620, 0x33aef: 0x6cc2f820, - 0x33af0: 0x6cc2fa20, 0x33af1: 0x6cc2fc20, 0x33af2: 0x6cf20220, 0x33af3: 0x6cf20420, - 0x33af4: 0x6cf20620, 0x33af5: 0x6cf20820, 0x33af6: 0x6cf20a20, 0x33af7: 0x6cf20c20, - 0x33af8: 0x6cf20e20, 0x33af9: 0x6cf21020, 0x33afa: 0x6cf21220, 0x33afb: 0x6cf21420, - 0x33afc: 0x6cf21620, 0x33afd: 0x6cf21820, 0x33afe: 0x6cf21a20, 0x33aff: 0x6cf21c20, - // Block 0xcec, offset 0x33b00 - 0x33b00: 0x6cf21e20, 0x33b01: 0x6cf22020, 0x33b02: 0x6cf22220, 0x33b03: 0x6cf22420, - 0x33b04: 0x6cf22620, 0x33b05: 0x6cf22820, 0x33b06: 0x6cf22a20, 0x33b07: 0x6cf22c20, - 0x33b08: 0x6cf22e20, 0x33b09: 0x6cf23020, 0x33b0a: 0x6cf23220, 0x33b0b: 0x6cf23420, - 0x33b0c: 0x6cf23620, 0x33b0d: 0x6cf23820, 0x33b0e: 0x6cf23a20, 0x33b0f: 0x6d21c820, - 0x33b10: 0x6d21ca20, 0x33b11: 0x6d21cc20, 0x33b12: 0x6d21ce20, 0x33b13: 0x6d21d020, - 0x33b14: 0x6d21d220, 0x33b15: 0x6d21d420, 0x33b16: 0x6d21d620, 0x33b17: 0x6d21d820, - 0x33b18: 0x6d21da20, 0x33b19: 0x6d21dc20, 0x33b1a: 0x6d21de20, 0x33b1b: 0x6d21e020, - 0x33b1c: 0x6d21e220, 0x33b1d: 0x6d21e420, 0x33b1e: 0x6d21e620, 0x33b1f: 0x6d21e820, - 0x33b20: 0x6d21ea20, 0x33b21: 0x6d21ec20, 0x33b22: 0x6d21ee20, 0x33b23: 0x6d21f020, - 0x33b24: 0x6d21f220, 0x33b25: 0x6d21f420, 0x33b26: 0x6d21f620, 0x33b27: 0x6cf23c20, - 0x33b28: 0x6d21f820, 0x33b29: 0x6d21fa20, 0x33b2a: 0x6d4f4620, 0x33b2b: 0x6d4f4820, - 0x33b2c: 0x6d4f4a20, 0x33b2d: 0x6d4f4c20, 0x33b2e: 0x6d4f4e20, 0x33b2f: 0x6d4f5020, - 0x33b30: 0x6d4f5220, 0x33b31: 0x6d4f5420, 0x33b32: 0x6d4f5620, 0x33b33: 0x6d4f5820, - 0x33b34: 0x6d4f5a20, 0x33b35: 0x6d4f5c20, 0x33b36: 0x6d4f5e20, 0x33b37: 0x6d4f6020, - 0x33b38: 0x6d4f6220, 0x33b39: 0x6d7b9420, 0x33b3a: 0x6d7b9620, 0x33b3b: 0x6d7b9820, - 0x33b3c: 0x6d7b9a20, 0x33b3d: 0x6d7b9c20, 0x33b3e: 0x6d7b9e20, 0x33b3f: 0x6d7ba020, - // Block 0xced, offset 0x33b40 - 0x33b40: 0x6d7ba220, 0x33b41: 0x6d7ba420, 0x33b42: 0x6d7ba620, 0x33b43: 0x6d7ba820, - 0x33b44: 0x6d7baa20, 0x33b45: 0x6d912c20, 0x33b46: 0x6d7bac20, 0x33b47: 0x6d7bae20, - 0x33b48: 0x6da3c620, 0x33b49: 0x6da3c820, 0x33b4a: 0x6da3ca20, 0x33b4b: 0x6db4d020, - 0x33b4c: 0x6da3cc20, 0x33b4d: 0x6da3ce20, 0x33b4e: 0x6da3d020, 0x33b4f: 0x6dc55e20, - 0x33b50: 0x6dc56020, 0x33b51: 0x6dc56220, 0x33b52: 0x6dc56420, 0x33b53: 0x6dc56620, - 0x33b54: 0x6dc56820, 0x33b55: 0x6dc56a20, 0x33b56: 0x6dc56c20, 0x33b57: 0x6dc56e20, - 0x33b58: 0x6de27620, 0x33b59: 0x6de27820, 0x33b5a: 0x6de27a20, 0x33b5b: 0x6df7ca20, - 0x33b5c: 0x6de27c20, 0x33b5d: 0x6dfa2020, 0x33b5e: 0x6dfa2220, 0x33b5f: 0x6dfa2420, - 0x33b60: 0x6dfa2620, 0x33b61: 0x6e01e220, 0x33b62: 0x6dfa2820, 0x33b63: 0x6e0dbc20, - 0x33b64: 0x6e0dbe20, 0x33b65: 0x6e1d3020, 0x33b66: 0x6e28ce20, 0x33b67: 0x6e388820, - 0x33b68: 0x6e403a20, 0x33b69: 0x6c01f220, 0x33b6a: 0x6c046a20, 0x33b6b: 0x6c091020, - 0x33b6c: 0x6c091220, 0x33b6d: 0x6c091420, 0x33b6e: 0x6c091620, 0x33b6f: 0x6c091820, - 0x33b70: 0x6c091a20, 0x33b71: 0x6c091c20, 0x33b72: 0x6c118a20, 0x33b73: 0x6c118c20, - 0x33b74: 0x6c118e20, 0x33b75: 0x6c119020, 0x33b76: 0x6c119220, 0x33b77: 0x6c119420, - 0x33b78: 0x6c119620, 0x33b79: 0x6c119820, 0x33b7a: 0x6c119a20, 0x33b7b: 0x6c119c20, - 0x33b7c: 0x6c119e20, 0x33b7d: 0x6c11a020, 0x33b7e: 0x6c11a220, 0x33b7f: 0x6c11a420, - // Block 0xcee, offset 0x33b80 - 0x33b80: 0x6c11a620, 0x33b81: 0x6c11a820, 0x33b82: 0x6c11aa20, 0x33b83: 0x6c11ac20, - 0x33b84: 0x6c11ae20, 0x33b85: 0x6c11b020, 0x33b86: 0x6c11b220, 0x33b87: 0x6c11b420, - 0x33b88: 0x6c11b620, 0x33b89: 0x6c1f8020, 0x33b8a: 0x6c1f8220, 0x33b8b: 0x6c1f8420, - 0x33b8c: 0x6c1f8620, 0x33b8d: 0x6c1f8820, 0x33b8e: 0x6c1f8a20, 0x33b8f: 0x6c1f8c20, - 0x33b90: 0x6c1f8e20, 0x33b91: 0x6c1f9020, 0x33b92: 0x6c1f9220, 0x33b93: 0x6c1f9420, - 0x33b94: 0x6c1f9620, 0x33b95: 0x6c1f9820, 0x33b96: 0x6c1f9a20, 0x33b97: 0x6c1f9c20, - 0x33b98: 0x6c1f9e20, 0x33b99: 0x6c1fa020, 0x33b9a: 0x6c1fa220, 0x33b9b: 0x6c1fa420, - 0x33b9c: 0x6c1fa620, 0x33b9d: 0x6c1fa820, 0x33b9e: 0x6c1faa20, 0x33b9f: 0x6c1fac20, - 0x33ba0: 0x6c1fae20, 0x33ba1: 0x6c1fb020, 0x33ba2: 0x6c1fb220, 0x33ba3: 0x6c1fb420, - 0x33ba4: 0x6c1fb620, 0x33ba5: 0x6c1fb820, 0x33ba6: 0x6c1fba20, 0x33ba7: 0x6c1fbc20, - 0x33ba8: 0x6c1fbe20, 0x33ba9: 0x6c1fc020, 0x33baa: 0x6c1fc220, 0x33bab: 0x6c1fc420, - 0x33bac: 0x6c1fc620, 0x33bad: 0x6c1fc820, 0x33bae: 0x6c1fca20, 0x33baf: 0x6c1fcc20, - 0x33bb0: 0x6c1fce20, 0x33bb1: 0x6c1fd020, 0x33bb2: 0x6c1fd220, 0x33bb3: 0x6c1fd420, - 0x33bb4: 0x6c1fd620, 0x33bb5: 0x6c1fd820, 0x33bb6: 0x6c1fda20, 0x33bb7: 0x6c1fdc20, - 0x33bb8: 0x6c1fde20, 0x33bb9: 0x6c1fe020, 0x33bba: 0x6c1fe220, 0x33bbb: 0x6c1fe420, - 0x33bbc: 0x6c1fe620, 0x33bbd: 0x6c1fe820, 0x33bbe: 0x6c1fea20, 0x33bbf: 0x6c336420, - // Block 0xcef, offset 0x33bc0 - 0x33bc0: 0x6c336620, 0x33bc1: 0x6c336820, 0x33bc2: 0x6c336a20, 0x33bc3: 0x6c336c20, - 0x33bc4: 0x6c336e20, 0x33bc5: 0x6c337020, 0x33bc6: 0x6c337220, 0x33bc7: 0x6c337420, - 0x33bc8: 0x6c337620, 0x33bc9: 0x6c337820, 0x33bca: 0x6c337a20, 0x33bcb: 0x6c337c20, - 0x33bcc: 0x6c337e20, 0x33bcd: 0x6c338020, 0x33bce: 0x6c338220, 0x33bcf: 0x6c338420, - 0x33bd0: 0x6c338620, 0x33bd1: 0x6c338820, 0x33bd2: 0x6c338a20, 0x33bd3: 0x6c338c20, - 0x33bd4: 0x6c338e20, 0x33bd5: 0x6c339020, 0x33bd6: 0x6c339220, 0x33bd7: 0x6c339420, - 0x33bd8: 0x6c339620, 0x33bd9: 0x6c339820, 0x33bda: 0x6c339a20, 0x33bdb: 0x6c339c20, - 0x33bdc: 0x6c339e20, 0x33bdd: 0x6c33a020, 0x33bde: 0x6c33a220, 0x33bdf: 0x6c33a420, - 0x33be0: 0x6c33a620, 0x33be1: 0x6c33a820, 0x33be2: 0x6c33aa20, 0x33be3: 0x6c33ac20, - 0x33be4: 0x6c33ae20, 0x33be5: 0x6c33b020, 0x33be6: 0x6c33b220, 0x33be7: 0x6c33b420, - 0x33be8: 0x6c33b620, 0x33be9: 0x6c33b820, 0x33bea: 0x6c33ba20, 0x33beb: 0x6c33bc20, - 0x33bec: 0x6c33be20, 0x33bed: 0x6c33c020, 0x33bee: 0x6c33c220, 0x33bef: 0x6c33c420, - 0x33bf0: 0x6c33c620, 0x33bf1: 0x6c33c820, 0x33bf2: 0x6c33ca20, 0x33bf3: 0x6c33cc20, - 0x33bf4: 0x6c4e1420, 0x33bf5: 0x6c4e1620, 0x33bf6: 0x6c4e1820, 0x33bf7: 0x6c4e1a20, - 0x33bf8: 0x6c4e1c20, 0x33bf9: 0x6c4e1e20, 0x33bfa: 0x6c4e2020, 0x33bfb: 0x6c4e2220, - 0x33bfc: 0x6c4e2420, 0x33bfd: 0x6c4e2620, 0x33bfe: 0x6c4e2820, 0x33bff: 0x6c4e2a20, - // Block 0xcf0, offset 0x33c00 - 0x33c00: 0x6c4e2c20, 0x33c01: 0x6c4e2e20, 0x33c02: 0x6c4e3020, 0x33c03: 0x6c4e3220, - 0x33c04: 0x6c4e3420, 0x33c05: 0x6c4e3620, 0x33c06: 0x6c4e3820, 0x33c07: 0x6c4e3a20, - 0x33c08: 0x6c4e3c20, 0x33c09: 0x6c4e3e20, 0x33c0a: 0x6c4e4020, 0x33c0b: 0x6c4e4220, - 0x33c0c: 0x6c4e4420, 0x33c0d: 0x6c4e4620, 0x33c0e: 0x6c4e4820, 0x33c0f: 0x6c4e4a20, - 0x33c10: 0x6c4e4c20, 0x33c11: 0x6c4e4e20, 0x33c12: 0x6c4e5020, 0x33c13: 0x6c4e5220, - 0x33c14: 0x6c4e5420, 0x33c15: 0x6c4e5620, 0x33c16: 0x6c4e5820, 0x33c17: 0x6c4e5a20, - 0x33c18: 0x6c4e5c20, 0x33c19: 0x6c4e5e20, 0x33c1a: 0x6c4e6020, 0x33c1b: 0x6c4e6220, - 0x33c1c: 0x6c4e6420, 0x33c1d: 0x6c4e6620, 0x33c1e: 0x6c4e6820, 0x33c1f: 0x6c4e6a20, - 0x33c20: 0x6c4e6c20, 0x33c21: 0x6c4e6e20, 0x33c22: 0x6c4e7020, 0x33c23: 0x6c4e7220, - 0x33c24: 0x6c4e7420, 0x33c25: 0x6c4e7620, 0x33c26: 0x6c4e7820, 0x33c27: 0x6c4e7a20, - 0x33c28: 0x6c4e7c20, 0x33c29: 0x6c4e7e20, 0x33c2a: 0x6c4e8020, 0x33c2b: 0x6c4e8220, - 0x33c2c: 0x6c4e8420, 0x33c2d: 0x6c4e8620, 0x33c2e: 0x6c4e8820, 0x33c2f: 0x6c4e8a20, - 0x33c30: 0x6c4e8c20, 0x33c31: 0x6c6fe420, 0x33c32: 0x6c6fe620, 0x33c33: 0x6c6fe820, - 0x33c34: 0x6c6fea20, 0x33c35: 0x6c6fec20, 0x33c36: 0x6c6fee20, 0x33c37: 0x6c6ff020, - 0x33c38: 0x6c6ff220, 0x33c39: 0x6c6ff420, 0x33c3a: 0x6c6ff620, 0x33c3b: 0x6c6ff820, - 0x33c3c: 0x6c6ffa20, 0x33c3d: 0x6c6ffc20, 0x33c3e: 0x6c6ffe20, 0x33c3f: 0x6c700020, - // Block 0xcf1, offset 0x33c40 - 0x33c40: 0x6c700220, 0x33c41: 0x6c700420, 0x33c42: 0x6c700620, 0x33c43: 0x6c700820, - 0x33c44: 0x6c700a20, 0x33c45: 0x6c700c20, 0x33c46: 0x6c700e20, 0x33c47: 0x6c701020, - 0x33c48: 0x6c701220, 0x33c49: 0x6c701420, 0x33c4a: 0x6c701620, 0x33c4b: 0x6c701820, - 0x33c4c: 0x6c701a20, 0x33c4d: 0x6c701c20, 0x33c4e: 0x6c701e20, 0x33c4f: 0x6c702020, - 0x33c50: 0x6c702220, 0x33c51: 0x6c702420, 0x33c52: 0x6c702620, 0x33c53: 0x6c702820, - 0x33c54: 0x6c702a20, 0x33c55: 0x6c702c20, 0x33c56: 0x6c702e20, 0x33c57: 0x6c703020, - 0x33c58: 0x6c703220, 0x33c59: 0x6c703420, 0x33c5a: 0x6c703620, 0x33c5b: 0x6c703820, - 0x33c5c: 0x6c703a20, 0x33c5d: 0x6c703c20, 0x33c5e: 0x6c703e20, 0x33c5f: 0x6c704020, - 0x33c60: 0x6c704220, 0x33c61: 0x6c704420, 0x33c62: 0x6c704620, 0x33c63: 0x6c704820, - 0x33c64: 0x6c704a20, 0x33c65: 0x6c704c20, 0x33c66: 0x6c704e20, 0x33c67: 0x6c705020, - 0x33c68: 0x6c705220, 0x33c69: 0x6c705420, 0x33c6a: 0x6c705620, 0x33c6b: 0x6c705820, - 0x33c6c: 0x6c705a20, 0x33c6d: 0x6c705c20, 0x33c6e: 0x6c705e20, 0x33c6f: 0x6c706020, - 0x33c70: 0x6c706220, 0x33c71: 0x6c706420, 0x33c72: 0x6c706620, 0x33c73: 0x6c706820, - 0x33c74: 0x6c706a20, 0x33c75: 0x6c706c20, 0x33c76: 0x6c706e20, 0x33c77: 0x6c707020, - 0x33c78: 0x6c707220, 0x33c79: 0x6c707420, 0x33c7a: 0x6c707620, 0x33c7b: 0x6c707820, - 0x33c7c: 0x6c707a20, 0x33c7d: 0x6c707c20, 0x33c7e: 0x6c707e20, 0x33c7f: 0x6c708020, - // Block 0xcf2, offset 0x33c80 - 0x33c80: 0x6c97d620, 0x33c81: 0x6c97d820, 0x33c82: 0x6c97da20, 0x33c83: 0x6c97dc20, - 0x33c84: 0x6c97de20, 0x33c85: 0x6c97e020, 0x33c86: 0x6c97e220, 0x33c87: 0x6c97e420, - 0x33c88: 0x6c97e620, 0x33c89: 0x6c97e820, 0x33c8a: 0x6c97ea20, 0x33c8b: 0x6c97ec20, - 0x33c8c: 0x6c97ee20, 0x33c8d: 0x6c97f020, 0x33c8e: 0x6c97f220, 0x33c8f: 0x6c97f420, - 0x33c90: 0x6c97f620, 0x33c91: 0x6c97f820, 0x33c92: 0x6c97fa20, 0x33c93: 0x6c97fc20, - 0x33c94: 0x6c97fe20, 0x33c95: 0x6c980020, 0x33c96: 0x6c980220, 0x33c97: 0x6c980420, - 0x33c98: 0x6c980620, 0x33c99: 0x6c980820, 0x33c9a: 0x6c980a20, 0x33c9b: 0x6c980c20, - 0x33c9c: 0x6c980e20, 0x33c9d: 0x6c981020, 0x33c9e: 0x6c981220, 0x33c9f: 0x6c981420, - 0x33ca0: 0x6c981620, 0x33ca1: 0x6c981820, 0x33ca2: 0x6c981a20, 0x33ca3: 0x6c981c20, - 0x33ca4: 0x6c981e20, 0x33ca5: 0x6c982020, 0x33ca6: 0x6c982220, 0x33ca7: 0x6c982420, - 0x33ca8: 0x6c982620, 0x33ca9: 0x6c982820, 0x33caa: 0x6c982a20, 0x33cab: 0x6c982c20, - 0x33cac: 0x6c982e20, 0x33cad: 0x6c983020, 0x33cae: 0x6c983220, 0x33caf: 0x6c983420, - 0x33cb0: 0x6c983620, 0x33cb1: 0x6c983820, 0x33cb2: 0x6c983a20, 0x33cb3: 0x6c983c20, - 0x33cb4: 0x6c983e20, 0x33cb5: 0x6c984020, 0x33cb6: 0x6c984220, 0x33cb7: 0x6c984420, - 0x33cb8: 0x6c984620, 0x33cb9: 0x6c984820, 0x33cba: 0x6c984a20, 0x33cbb: 0x6c984c20, - 0x33cbc: 0x6c984e20, 0x33cbd: 0x6c985020, 0x33cbe: 0x6c985220, 0x33cbf: 0x6c985420, - // Block 0xcf3, offset 0x33cc0 - 0x33cc0: 0x6c985620, 0x33cc1: 0x6c985820, 0x33cc2: 0x6c985a20, 0x33cc3: 0x6c985c20, - 0x33cc4: 0x6c985e20, 0x33cc5: 0x6c986020, 0x33cc6: 0x6c986220, 0x33cc7: 0x6c986420, - 0x33cc8: 0x6c986620, 0x33cc9: 0x6c986820, 0x33cca: 0x6c986a20, 0x33ccb: 0x6c986c20, - 0x33ccc: 0x6c986e20, 0x33ccd: 0x6c987020, 0x33cce: 0x6c987220, 0x33ccf: 0x6c987420, - 0x33cd0: 0x6c987620, 0x33cd1: 0x6c987820, 0x33cd2: 0x6c987a20, 0x33cd3: 0x6c987c20, - 0x33cd4: 0x6c987e20, 0x33cd5: 0x6c988020, 0x33cd6: 0x6c988220, 0x33cd7: 0x6c988420, - 0x33cd8: 0x6c988620, 0x33cd9: 0x6c988820, 0x33cda: 0x6c988a20, 0x33cdb: 0x6c988c20, - 0x33cdc: 0x6c988e20, 0x33cdd: 0x6c989020, 0x33cde: 0x6c989220, 0x33cdf: 0x6c989420, - 0x33ce0: 0x6c989620, 0x33ce1: 0x6c989820, 0x33ce2: 0x6c989a20, 0x33ce3: 0x6c989c20, - 0x33ce4: 0x6c989e20, 0x33ce5: 0x6c98a020, 0x33ce6: 0x6c98a220, 0x33ce7: 0x6c98a420, - 0x33ce8: 0x6cc3ac20, 0x33ce9: 0x6cc3ae20, 0x33cea: 0x6cc3b020, 0x33ceb: 0x6cc3b220, - 0x33cec: 0x6cc3b420, 0x33ced: 0x6cc3b620, 0x33cee: 0x6cc3b820, 0x33cef: 0x6cc3ba20, - 0x33cf0: 0x6cc3bc20, 0x33cf1: 0x6cc3be20, 0x33cf2: 0x6cc3c020, 0x33cf3: 0x6cc3c220, - 0x33cf4: 0x6cc3c420, 0x33cf5: 0x6cc3c620, 0x33cf6: 0x6cc3c820, 0x33cf7: 0x6cc3ca20, - 0x33cf8: 0x6cc3cc20, 0x33cf9: 0x6cc3ce20, 0x33cfa: 0x6cc3d020, 0x33cfb: 0x6cc3d220, - 0x33cfc: 0x6cc3d420, 0x33cfd: 0x6cc3d620, 0x33cfe: 0x6cc3d820, 0x33cff: 0x6cc3da20, - // Block 0xcf4, offset 0x33d00 - 0x33d00: 0x6cc3dc20, 0x33d01: 0x6cc3de20, 0x33d02: 0x6cc3e020, 0x33d03: 0x6cc3e220, - 0x33d04: 0x6cc3e420, 0x33d05: 0x6cc3e620, 0x33d06: 0x6cc3e820, 0x33d07: 0x6cc3ea20, - 0x33d08: 0x6cc3ec20, 0x33d09: 0x6cc3ee20, 0x33d0a: 0x6cc3f020, 0x33d0b: 0x6cc3f220, - 0x33d0c: 0x6cc3f420, 0x33d0d: 0x6cc3f620, 0x33d0e: 0x6cc3f820, 0x33d0f: 0x6cc3fa20, - 0x33d10: 0x6cc3fc20, 0x33d11: 0x6cc3fe20, 0x33d12: 0x6cc40020, 0x33d13: 0x6cc40220, - 0x33d14: 0x6cc40420, 0x33d15: 0x6cc40620, 0x33d16: 0x6cc40820, 0x33d17: 0x6cc40a20, - 0x33d18: 0x6cc40c20, 0x33d19: 0x6cc40e20, 0x33d1a: 0x6cc41020, 0x33d1b: 0x6cc41220, - 0x33d1c: 0x6cc41420, 0x33d1d: 0x6cc41620, 0x33d1e: 0x6cc41820, 0x33d1f: 0x6cc41a20, - 0x33d20: 0x6cc41c20, 0x33d21: 0x6cc41e20, 0x33d22: 0x6cc42020, 0x33d23: 0x6cc42220, - 0x33d24: 0x6cc42420, 0x33d25: 0x6cc42620, 0x33d26: 0x6cc42820, 0x33d27: 0x6cc42a20, - 0x33d28: 0x6cc42c20, 0x33d29: 0x6cc42e20, 0x33d2a: 0x6cc43020, 0x33d2b: 0x6cc43220, - 0x33d2c: 0x6cc43420, 0x33d2d: 0x6cc43620, 0x33d2e: 0x6cc43820, 0x33d2f: 0x6cc43a20, - 0x33d30: 0x6cc43c20, 0x33d31: 0x6cc43e20, 0x33d32: 0x6cc44020, 0x33d33: 0x6cc44220, - 0x33d34: 0x6cc44420, 0x33d35: 0x6cc44620, 0x33d36: 0x6cc44820, 0x33d37: 0x6cc44a20, - 0x33d38: 0x6cc44c20, 0x33d39: 0x6cc44e20, 0x33d3a: 0x6cc45020, 0x33d3b: 0x6cc45220, - 0x33d3c: 0x6cc45420, 0x33d3d: 0x6cc45620, 0x33d3e: 0x6cc45820, 0x33d3f: 0x6cc45a20, - // Block 0xcf5, offset 0x33d40 - 0x33d40: 0x6cc45c20, 0x33d41: 0x6cc45e20, 0x33d42: 0x6cc46020, 0x33d43: 0x6cc46220, - 0x33d44: 0x6cc46420, 0x33d45: 0x6cc46620, 0x33d46: 0x6cc46820, 0x33d47: 0x6cc46a20, - 0x33d48: 0x6cc46c20, 0x33d49: 0x6cc46e20, 0x33d4a: 0x6cc47020, 0x33d4b: 0x6cc47220, - 0x33d4c: 0x6cc47420, 0x33d4d: 0x6cf2b620, 0x33d4e: 0x6cf2b820, 0x33d4f: 0x6cf2ba20, - 0x33d50: 0x6cf2bc20, 0x33d51: 0x6cf2be20, 0x33d52: 0x6cf2c020, 0x33d53: 0x6cf2c220, - 0x33d54: 0x6cf2c420, 0x33d55: 0x6cf2c620, 0x33d56: 0x6cf2c820, 0x33d57: 0x6cf2ca20, - 0x33d58: 0x6cf2cc20, 0x33d59: 0x6cf2ce20, 0x33d5a: 0x6cf2d020, 0x33d5b: 0x6cf2d220, - 0x33d5c: 0x6cf2d420, 0x33d5d: 0x6cf2d620, 0x33d5e: 0x6cf2d820, 0x33d5f: 0x6cf2da20, - 0x33d60: 0x6cf2dc20, 0x33d61: 0x6cf2de20, 0x33d62: 0x6cf2e020, 0x33d63: 0x6cf2e220, - 0x33d64: 0x6cf2e420, 0x33d65: 0x6cf2e620, 0x33d66: 0x6cf2e820, 0x33d67: 0x6cf2ea20, - 0x33d68: 0x6cf2ec20, 0x33d69: 0x6cf2ee20, 0x33d6a: 0x6cf2f020, 0x33d6b: 0x6cf2f220, - 0x33d6c: 0x6cf2f420, 0x33d6d: 0x6cf2f620, 0x33d6e: 0x6cf2f820, 0x33d6f: 0x6cf2fa20, - 0x33d70: 0x6cf2fc20, 0x33d71: 0x6cf2fe20, 0x33d72: 0x6cf30020, 0x33d73: 0x6cf30220, - 0x33d74: 0x6cf30420, 0x33d75: 0x6cf30620, 0x33d76: 0x6cf30820, 0x33d77: 0x6cf30a20, - 0x33d78: 0x6cf30c20, 0x33d79: 0x6cf30e20, 0x33d7a: 0x6cf31020, 0x33d7b: 0x6cf31220, - 0x33d7c: 0x6cf31420, 0x33d7d: 0x6cf31620, 0x33d7e: 0x6cf31820, 0x33d7f: 0x6cf31a20, - // Block 0xcf6, offset 0x33d80 - 0x33d80: 0x6cf31c20, 0x33d81: 0x6cf31e20, 0x33d82: 0x6cf32020, 0x33d83: 0x6cf32220, - 0x33d84: 0x6cf32420, 0x33d85: 0x6cf32620, 0x33d86: 0x6cf32820, 0x33d87: 0x6cf32a20, - 0x33d88: 0x6cf32c20, 0x33d89: 0x6cf32e20, 0x33d8a: 0x6cf33020, 0x33d8b: 0x6cf33220, - 0x33d8c: 0x6cf33420, 0x33d8d: 0x6cf33620, 0x33d8e: 0x6cf33820, 0x33d8f: 0x6cf33a20, - 0x33d90: 0x6cf33c20, 0x33d91: 0x6cf33e20, 0x33d92: 0x6cf34020, 0x33d93: 0x6cf34220, - 0x33d94: 0x6cf34420, 0x33d95: 0x6cf34620, 0x33d96: 0x6cf34820, 0x33d97: 0x6cf34a20, - 0x33d98: 0x6cf34c20, 0x33d99: 0x6cf34e20, 0x33d9a: 0x6cf35020, 0x33d9b: 0x6cf35220, - 0x33d9c: 0x6cf35420, 0x33d9d: 0x6cf35620, 0x33d9e: 0x6cf35820, 0x33d9f: 0x6cf35a20, - 0x33da0: 0x6d227c20, 0x33da1: 0x6d227e20, 0x33da2: 0x6d228020, 0x33da3: 0x6d228220, - 0x33da4: 0x6d228420, 0x33da5: 0x6d228620, 0x33da6: 0x6d228820, 0x33da7: 0x6d228a20, - 0x33da8: 0x6d228c20, 0x33da9: 0x6d228e20, 0x33daa: 0x6d229020, 0x33dab: 0x6d229220, - 0x33dac: 0x6d229420, 0x33dad: 0x6d229620, 0x33dae: 0x6d229820, 0x33daf: 0x6d229a20, - 0x33db0: 0x6d229c20, 0x33db1: 0x6d229e20, 0x33db2: 0x6d22a020, 0x33db3: 0x6d22a220, - 0x33db4: 0x6d22a420, 0x33db5: 0x6d22a620, 0x33db6: 0x6d22a820, 0x33db7: 0x6d22aa20, - 0x33db8: 0x6d22ac20, 0x33db9: 0x6d22ae20, 0x33dba: 0x6d22b020, 0x33dbb: 0x6d22b220, - 0x33dbc: 0x6d22b420, 0x33dbd: 0x6d22b620, 0x33dbe: 0x6d22b820, 0x33dbf: 0x6d22ba20, - // Block 0xcf7, offset 0x33dc0 - 0x33dc0: 0x6d22bc20, 0x33dc1: 0x6d22be20, 0x33dc2: 0x6d22c020, 0x33dc3: 0x6d22c220, - 0x33dc4: 0x6d22c420, 0x33dc5: 0x6d22c620, 0x33dc6: 0x6d22c820, 0x33dc7: 0x6d22ca20, - 0x33dc8: 0x6d22cc20, 0x33dc9: 0x6d22ce20, 0x33dca: 0x6d22d020, 0x33dcb: 0x6d22d220, - 0x33dcc: 0x6d22d420, 0x33dcd: 0x6d22d620, 0x33dce: 0x6d22d820, 0x33dcf: 0x6d22da20, - 0x33dd0: 0x6d22dc20, 0x33dd1: 0x6d22de20, 0x33dd2: 0x6d22e020, 0x33dd3: 0x6d22e220, - 0x33dd4: 0x6d22e420, 0x33dd5: 0x6d22e620, 0x33dd6: 0x6d22e820, 0x33dd7: 0x6d22ea20, - 0x33dd8: 0x6d22ec20, 0x33dd9: 0x6d22ee20, 0x33dda: 0x6d22f020, 0x33ddb: 0x6d22f220, - 0x33ddc: 0x6d22f420, 0x33ddd: 0x6d22f620, 0x33dde: 0x6d22f820, 0x33ddf: 0x6d22fa20, - 0x33de0: 0x6d22fc20, 0x33de1: 0x6d22fe20, 0x33de2: 0x6d230020, 0x33de3: 0x6d230220, - 0x33de4: 0x6d230420, 0x33de5: 0x6d230620, 0x33de6: 0x6d230820, 0x33de7: 0x6d230a20, - 0x33de8: 0x6d230c20, 0x33de9: 0x6d230e20, 0x33dea: 0x6d231020, 0x33deb: 0x6d231220, - 0x33dec: 0x6d231420, 0x33ded: 0x6d231620, 0x33dee: 0x6d231820, 0x33def: 0x6d231a20, - 0x33df0: 0x6d231c20, 0x33df1: 0x6d4ff020, 0x33df2: 0x6d4ff220, 0x33df3: 0x6d4ff420, - 0x33df4: 0x6d4ff620, 0x33df5: 0x6d4ff820, 0x33df6: 0x6d4ffa20, 0x33df7: 0x6d4ffc20, - 0x33df8: 0x6d4ffe20, 0x33df9: 0x6d500020, 0x33dfa: 0x6d500220, 0x33dfb: 0x6d500420, - 0x33dfc: 0x6d500620, 0x33dfd: 0x6d500820, 0x33dfe: 0x6d500a20, 0x33dff: 0x6d500c20, - // Block 0xcf8, offset 0x33e00 - 0x33e00: 0x6d500e20, 0x33e01: 0x6d501020, 0x33e02: 0x6d501220, 0x33e03: 0x6d501420, - 0x33e04: 0x6d501620, 0x33e05: 0x6d501820, 0x33e06: 0x6d501a20, 0x33e07: 0x6d501c20, - 0x33e08: 0x6d501e20, 0x33e09: 0x6d502020, 0x33e0a: 0x6d502220, 0x33e0b: 0x6d502420, - 0x33e0c: 0x6d502620, 0x33e0d: 0x6d502820, 0x33e0e: 0x6d502a20, 0x33e0f: 0x6d502c20, - 0x33e10: 0x6d502e20, 0x33e11: 0x6d503020, 0x33e12: 0x6d503220, 0x33e13: 0x6d503420, - 0x33e14: 0x6d503620, 0x33e15: 0x6d503820, 0x33e16: 0x6d503a20, 0x33e17: 0x6d503c20, - 0x33e18: 0x6d503e20, 0x33e19: 0x6d504020, 0x33e1a: 0x6d504220, 0x33e1b: 0x6d504420, - 0x33e1c: 0x6d504620, 0x33e1d: 0x6d504820, 0x33e1e: 0x6d504a20, 0x33e1f: 0x6d504c20, - 0x33e20: 0x6d504e20, 0x33e21: 0x6d505020, 0x33e22: 0x6d505220, 0x33e23: 0x6d505420, - 0x33e24: 0x6d505620, 0x33e25: 0x6d505820, 0x33e26: 0x6d505a20, 0x33e27: 0x6d505c20, - 0x33e28: 0x6d505e20, 0x33e29: 0x6d506020, 0x33e2a: 0x6d506220, 0x33e2b: 0x6d506420, - 0x33e2c: 0x6d506620, 0x33e2d: 0x6d506820, 0x33e2e: 0x6d506a20, 0x33e2f: 0x6d506c20, - 0x33e30: 0x6d506e20, 0x33e31: 0x6d507020, 0x33e32: 0x6d507220, 0x33e33: 0x6d507420, - 0x33e34: 0x6d507620, 0x33e35: 0x6d507820, 0x33e36: 0x6d507a20, 0x33e37: 0x6d507c20, - 0x33e38: 0x6d507e20, 0x33e39: 0x6d508020, 0x33e3a: 0x6d508220, 0x33e3b: 0x6d508420, - 0x33e3c: 0x6d508620, 0x33e3d: 0x6d508820, 0x33e3e: 0x6d508a20, 0x33e3f: 0x6d508c20, - // Block 0xcf9, offset 0x33e40 - 0x33e40: 0x6d508e20, 0x33e41: 0x6d509020, 0x33e42: 0x6d509220, 0x33e43: 0x6d509420, - 0x33e44: 0x6d509620, 0x33e45: 0x6d509820, 0x33e46: 0x6d509a20, 0x33e47: 0x6d509c20, - 0x33e48: 0x6d509e20, 0x33e49: 0x6d50a020, 0x33e4a: 0x6d50a220, 0x33e4b: 0x6d50a420, - 0x33e4c: 0x6d50a620, 0x33e4d: 0x6d50a820, 0x33e4e: 0x6d50aa20, 0x33e4f: 0x6d50ac20, - 0x33e50: 0x6d50ae20, 0x33e51: 0x6d50b020, 0x33e52: 0x6d7c0220, 0x33e53: 0x6d7c0420, - 0x33e54: 0x6d7c0620, 0x33e55: 0x6d7c0820, 0x33e56: 0x6d7c0a20, 0x33e57: 0x6d7c0c20, - 0x33e58: 0x6d7c0e20, 0x33e59: 0x6d7c1020, 0x33e5a: 0x6d7c1220, 0x33e5b: 0x6d7c1420, - 0x33e5c: 0x6d7c1620, 0x33e5d: 0x6d7c1820, 0x33e5e: 0x6d7c1a20, 0x33e5f: 0x6d7c1c20, - 0x33e60: 0x6d7c1e20, 0x33e61: 0x6d7c2020, 0x33e62: 0x6d7c2220, 0x33e63: 0x6d7c2420, - 0x33e64: 0x6d7c2620, 0x33e65: 0x6d7c2820, 0x33e66: 0x6d7c2a20, 0x33e67: 0x6d7c2c20, - 0x33e68: 0x6d7c2e20, 0x33e69: 0x6d7c3020, 0x33e6a: 0x6d7c3220, 0x33e6b: 0x6d7c3420, - 0x33e6c: 0x6d7c3620, 0x33e6d: 0x6d7c3820, 0x33e6e: 0x6d7c3a20, 0x33e6f: 0x6d7c3c20, - 0x33e70: 0x6d7c3e20, 0x33e71: 0x6d7c4020, 0x33e72: 0x6d7c4220, 0x33e73: 0x6d7c4420, - 0x33e74: 0x6d7c4620, 0x33e75: 0x6d7c4820, 0x33e76: 0x6d7c4a20, 0x33e77: 0x6d7c4c20, - 0x33e78: 0x6d7c4e20, 0x33e79: 0x6d7c5020, 0x33e7a: 0x6d7c5220, 0x33e7b: 0x6d7c5420, - 0x33e7c: 0x6d7c5620, 0x33e7d: 0x6d7c5820, 0x33e7e: 0x6d7c5a20, 0x33e7f: 0x6d7c5c20, - // Block 0xcfa, offset 0x33e80 - 0x33e80: 0x6d7c5e20, 0x33e81: 0x6d7c6020, 0x33e82: 0x6d7c6220, 0x33e83: 0x6d7c6420, - 0x33e84: 0x6d7c6620, 0x33e85: 0x6d7c6820, 0x33e86: 0x6d7c6a20, 0x33e87: 0x6d7c6c20, - 0x33e88: 0x6d7c6e20, 0x33e89: 0x6d7c7020, 0x33e8a: 0x6d7c7220, 0x33e8b: 0x6d7c7420, - 0x33e8c: 0x6d7c7620, 0x33e8d: 0x6d7c7820, 0x33e8e: 0x6da40820, 0x33e8f: 0x6da40a20, - 0x33e90: 0x6da40c20, 0x33e91: 0x6da40e20, 0x33e92: 0x6da41020, 0x33e93: 0x6da41220, - 0x33e94: 0x6da41420, 0x33e95: 0x6da41620, 0x33e96: 0x6da41820, 0x33e97: 0x6da41a20, - 0x33e98: 0x6da41c20, 0x33e99: 0x6da41e20, 0x33e9a: 0x6da42020, 0x33e9b: 0x6da42220, - 0x33e9c: 0x6da42420, 0x33e9d: 0x6da42620, 0x33e9e: 0x6da42820, 0x33e9f: 0x6da42a20, - 0x33ea0: 0x6da42c20, 0x33ea1: 0x6da42e20, 0x33ea2: 0x6da43020, 0x33ea3: 0x6da43220, - 0x33ea4: 0x6da43420, 0x33ea5: 0x6da43620, 0x33ea6: 0x6da43820, 0x33ea7: 0x6da43a20, - 0x33ea8: 0x6da43c20, 0x33ea9: 0x6da43e20, 0x33eaa: 0x6da44020, 0x33eab: 0x6da44220, - 0x33eac: 0x6da44420, 0x33ead: 0x6da44620, 0x33eae: 0x6da44820, 0x33eaf: 0x6da44a20, - 0x33eb0: 0x6da44c20, 0x33eb1: 0x6da44e20, 0x33eb2: 0x6da45020, 0x33eb3: 0x6da45220, - 0x33eb4: 0x6da45420, 0x33eb5: 0x6da45620, 0x33eb6: 0x6da45820, 0x33eb7: 0x6da45a20, - 0x33eb8: 0x6da45c20, 0x33eb9: 0x6da45e20, 0x33eba: 0x6da46020, 0x33ebb: 0x6dc59e20, - 0x33ebc: 0x6dc5a020, 0x33ebd: 0x6dc5a220, 0x33ebe: 0x6dc5a420, 0x33ebf: 0x6dc5a620, - // Block 0xcfb, offset 0x33ec0 - 0x33ec0: 0x6dc5a820, 0x33ec1: 0x6dc5aa20, 0x33ec2: 0x6dc5ac20, 0x33ec3: 0x6dc5ae20, - 0x33ec4: 0x6dc5b020, 0x33ec5: 0x6dc5b220, 0x33ec6: 0x6dc5b420, 0x33ec7: 0x6dc5b620, - 0x33ec8: 0x6dc5b820, 0x33ec9: 0x6dc5ba20, 0x33eca: 0x6dc5bc20, 0x33ecb: 0x6dc5be20, - 0x33ecc: 0x6dc5c020, 0x33ecd: 0x6dc5c220, 0x33ece: 0x6dc5c420, 0x33ecf: 0x6dc5c620, - 0x33ed0: 0x6dc5c820, 0x33ed1: 0x6dc5ca20, 0x33ed2: 0x6dc5cc20, 0x33ed3: 0x6dc5ce20, - 0x33ed4: 0x6dc5d020, 0x33ed5: 0x6dc5d220, 0x33ed6: 0x6dc5d420, 0x33ed7: 0x6dc5d620, - 0x33ed8: 0x6dc5d820, 0x33ed9: 0x6dc5da20, 0x33eda: 0x6dc5dc20, 0x33edb: 0x6dc5de20, - 0x33edc: 0x6dc5e020, 0x33edd: 0x6dc5e220, 0x33ede: 0x6dc5e420, 0x33edf: 0x6dc5e620, - 0x33ee0: 0x6dc5e820, 0x33ee1: 0x6dc5ea20, 0x33ee2: 0x6dc5ec20, 0x33ee3: 0x6dc5ee20, - 0x33ee4: 0x6dc5f020, 0x33ee5: 0x6dc5f220, 0x33ee6: 0x6de29020, 0x33ee7: 0x6de29220, - 0x33ee8: 0x6de29420, 0x33ee9: 0x6de29620, 0x33eea: 0x6de29820, 0x33eeb: 0x6de29a20, - 0x33eec: 0x6de29c20, 0x33eed: 0x6de29e20, 0x33eee: 0x6de2a020, 0x33eef: 0x6de2a220, - 0x33ef0: 0x6de2a420, 0x33ef1: 0x6de2a620, 0x33ef2: 0x6de2a820, 0x33ef3: 0x6de2aa20, - 0x33ef4: 0x6de2ac20, 0x33ef5: 0x6de2ae20, 0x33ef6: 0x6de2b020, 0x33ef7: 0x6de2b220, - 0x33ef8: 0x6de2b420, 0x33ef9: 0x6de2b620, 0x33efa: 0x6de2b820, 0x33efb: 0x6de2ba20, - 0x33efc: 0x6de2bc20, 0x33efd: 0x6de2be20, 0x33efe: 0x6de2c020, 0x33eff: 0x6de2c220, - // Block 0xcfc, offset 0x33f00 - 0x33f00: 0x6de2c420, 0x33f01: 0x6de2c620, 0x33f02: 0x6de2c820, 0x33f03: 0x6de2ca20, - 0x33f04: 0x6de2cc20, 0x33f05: 0x6de2ce20, 0x33f06: 0x6de2d020, 0x33f07: 0x6de2d220, - 0x33f08: 0x6de2d420, 0x33f09: 0x6de2d620, 0x33f0a: 0x6de2d820, 0x33f0b: 0x6dfa3a20, - 0x33f0c: 0x6dfa3c20, 0x33f0d: 0x6dfa3e20, 0x33f0e: 0x6dfa4020, 0x33f0f: 0x6dfa4220, - 0x33f10: 0x6dfa4420, 0x33f11: 0x6dfa4620, 0x33f12: 0x6dfa4820, 0x33f13: 0x6dfa4a20, - 0x33f14: 0x6dfa4c20, 0x33f15: 0x6dfa4e20, 0x33f16: 0x6dfa5020, 0x33f17: 0x6e0dc620, - 0x33f18: 0x6e0dc820, 0x33f19: 0x6e0dca20, 0x33f1a: 0x6e0dcc20, 0x33f1b: 0x6e0dce20, - 0x33f1c: 0x6e0dd020, 0x33f1d: 0x6e0dd220, 0x33f1e: 0x6e0dd420, 0x33f1f: 0x6e0dd620, - 0x33f20: 0x6e0dd820, 0x33f21: 0x6e0dda20, 0x33f22: 0x6e0ddc20, 0x33f23: 0x6e0dde20, - 0x33f24: 0x6e0de020, 0x33f25: 0x6e1d3a20, 0x33f26: 0x6e1d3c20, 0x33f27: 0x6e1d3e20, - 0x33f28: 0x6e1d4020, 0x33f29: 0x6e1d4220, 0x33f2a: 0x6e1d4420, 0x33f2b: 0x6e1d4620, - 0x33f2c: 0x6e1d4820, 0x33f2d: 0x6e1d4a20, 0x33f2e: 0x6e1d4c20, 0x33f2f: 0x6e28d820, - 0x33f30: 0x6e28da20, 0x33f31: 0x6e28dc20, 0x33f32: 0x6e28de20, 0x33f33: 0x6e28e020, - 0x33f34: 0x6e28e220, 0x33f35: 0x6e28e420, 0x33f36: 0x6e28e620, 0x33f37: 0x6e28e820, - 0x33f38: 0x6e28ea20, 0x33f39: 0x6e28ec20, 0x33f3a: 0x6e28ee20, 0x33f3b: 0x6e321620, - 0x33f3c: 0x6e321820, 0x33f3d: 0x6e321a20, 0x33f3e: 0x6e321c20, 0x33f3f: 0x6e321e20, - // Block 0xcfd, offset 0x33f40 - 0x33f40: 0x6e322020, 0x33f41: 0x6e322220, 0x33f42: 0x6e322420, 0x33f43: 0x6e3d2820, - 0x33f44: 0x6e3d2a20, 0x33f45: 0x6e403e20, 0x33f46: 0x6e404020, 0x33f47: 0x6e404220, - 0x33f48: 0x6e429a20, 0x33f49: 0x6e429c20, 0x33f4a: 0x6e451c20, 0x33f4b: 0x6e45c020, - 0x33f4c: 0x6c092620, 0x33f4d: 0x6c092820, 0x33f4e: 0x6c11c420, 0x33f4f: 0x6c11c620, - 0x33f50: 0x6c11c820, 0x33f51: 0x6c11ca20, 0x33f52: 0x6c200620, 0x33f53: 0x6c200820, - 0x33f54: 0x6c200a20, 0x33f55: 0x6c200c20, 0x33f56: 0x6c200e20, 0x33f57: 0x6c201020, - 0x33f58: 0x6c201220, 0x33f59: 0x6c201420, 0x33f5a: 0x6c33ea20, 0x33f5b: 0x6c33ec20, - 0x33f5c: 0x6c33ee20, 0x33f5d: 0x6c33f020, 0x33f5e: 0x6c33f220, 0x33f5f: 0x6c33f420, - 0x33f60: 0x6c33f620, 0x33f61: 0x6c33f820, 0x33f62: 0x6c33fa20, 0x33f63: 0x6c33fc20, - 0x33f64: 0x6c33fe20, 0x33f65: 0x6c340020, 0x33f66: 0x6c4ea220, 0x33f67: 0x6c4ea420, - 0x33f68: 0x6c4ea620, 0x33f69: 0x6c4ea820, 0x33f6a: 0x6c4eaa20, 0x33f6b: 0x6c4eac20, - 0x33f6c: 0x6c4eae20, 0x33f6d: 0x6c4eb020, 0x33f6e: 0x6c4eb220, 0x33f6f: 0x6c4eb420, - 0x33f70: 0x6c4eb620, 0x33f71: 0x6c4eb820, 0x33f72: 0x6c4eba20, 0x33f73: 0x6c4ebc20, - 0x33f74: 0x6c4ebe20, 0x33f75: 0x6c4ec020, 0x33f76: 0x6c4ec220, 0x33f77: 0x6c709e20, - 0x33f78: 0x6c70a020, 0x33f79: 0x6c70a220, 0x33f7a: 0x6c70a420, 0x33f7b: 0x6c70a620, - 0x33f7c: 0x6c70a820, 0x33f7d: 0x6c70aa20, 0x33f7e: 0x6c70ac20, 0x33f7f: 0x6c98c020, - // Block 0xcfe, offset 0x33f80 - 0x33f80: 0x6c98c220, 0x33f81: 0x6c98c420, 0x33f82: 0x6c98c620, 0x33f83: 0x6c98c820, - 0x33f84: 0x6c98ca20, 0x33f85: 0x6c98cc20, 0x33f86: 0x6c98ce20, 0x33f87: 0x6c98d020, - 0x33f88: 0x6cc49420, 0x33f89: 0x6cc49620, 0x33f8a: 0x6cc49820, 0x33f8b: 0x6cc49a20, - 0x33f8c: 0x6cc49c20, 0x33f8d: 0x6cc49e20, 0x33f8e: 0x6cc4a020, 0x33f8f: 0x6cc4a220, - 0x33f90: 0x6cc4a420, 0x33f91: 0x6cc4a620, 0x33f92: 0x6cc4a820, 0x33f93: 0x6cc4aa20, - 0x33f94: 0x6cf38420, 0x33f95: 0x6cf38620, 0x33f96: 0x6cf38820, 0x33f97: 0x6cf38a20, - 0x33f98: 0x6cf38c20, 0x33f99: 0x6cf38e20, 0x33f9a: 0x6cf39020, 0x33f9b: 0x6cf39220, - 0x33f9c: 0x6cf39420, 0x33f9d: 0x6cf39620, 0x33f9e: 0x6cf39820, 0x33f9f: 0x6cf39a20, - 0x33fa0: 0x6cf39c20, 0x33fa1: 0x6cf39e20, 0x33fa2: 0x6d234220, 0x33fa3: 0x6d234420, - 0x33fa4: 0x6d234620, 0x33fa5: 0x6d234820, 0x33fa6: 0x6d234a20, 0x33fa7: 0x6d234c20, - 0x33fa8: 0x6d50c820, 0x33fa9: 0x6d234e20, 0x33faa: 0x6d235020, 0x33fab: 0x6d235220, - 0x33fac: 0x6d235420, 0x33fad: 0x6d235620, 0x33fae: 0x6d235820, 0x33faf: 0x6d235a20, - 0x33fb0: 0x6d235c20, 0x33fb1: 0x6d235e20, 0x33fb2: 0x6d50ca20, 0x33fb3: 0x6d50cc20, - 0x33fb4: 0x6d50ce20, 0x33fb5: 0x6d50d020, 0x33fb6: 0x6d50d220, 0x33fb7: 0x6d50d420, - 0x33fb8: 0x6d50d620, 0x33fb9: 0x6d50d820, 0x33fba: 0x6d50da20, 0x33fbb: 0x6d50dc20, - 0x33fbc: 0x6d50de20, 0x33fbd: 0x6d50e020, 0x33fbe: 0x6d50e220, 0x33fbf: 0x6d50e420, - // Block 0xcff, offset 0x33fc0 - 0x33fc0: 0x6d50e620, 0x33fc1: 0x6d50e820, 0x33fc2: 0x6d50ea20, 0x33fc3: 0x6d50ec20, - 0x33fc4: 0x6d50ee20, 0x33fc5: 0x6d50f020, 0x33fc6: 0x6d50f220, 0x33fc7: 0x6d7c9420, - 0x33fc8: 0x6d7c9620, 0x33fc9: 0x6d7c9820, 0x33fca: 0x6d7c9a20, 0x33fcb: 0x6d7c9c20, - 0x33fcc: 0x6d7c9e20, 0x33fcd: 0x6d7ca020, 0x33fce: 0x6d7ca220, 0x33fcf: 0x6d7ca420, - 0x33fd0: 0x6d784620, 0x33fd1: 0x6d7ca620, 0x33fd2: 0x6d7ca820, 0x33fd3: 0x6da46e20, - 0x33fd4: 0x6da47020, 0x33fd5: 0x6da47220, 0x33fd6: 0x6da47420, 0x33fd7: 0x6da47620, - 0x33fd8: 0x6dc60220, 0x33fd9: 0x6dc60420, 0x33fda: 0x6de2e020, 0x33fdb: 0x6de2e220, - 0x33fdc: 0x6de2e420, 0x33fdd: 0x6de2e620, 0x33fde: 0x6dfa5620, 0x33fdf: 0x6dfa5820, - 0x33fe0: 0x6dfa5a20, 0x33fe1: 0x6e0de620, 0x33fe2: 0x6e0de820, 0x33fe3: 0x6e0dea20, - 0x33fe4: 0x6c092e20, 0x33fe5: 0x6c093020, 0x33fe6: 0x6c11ce20, 0x33fe7: 0x6c11d020, - 0x33fe8: 0x6c11d220, 0x33fe9: 0x6c11d420, 0x33fea: 0x6c201e20, 0x33feb: 0x6c202020, - 0x33fec: 0x6c202220, 0x33fed: 0x6c202420, 0x33fee: 0x6c202620, 0x33fef: 0x6c340e20, - 0x33ff0: 0x6c341020, 0x33ff1: 0x6c341220, 0x33ff2: 0x6c341420, 0x33ff3: 0x6c341620, - 0x33ff4: 0x6c341820, 0x33ff5: 0x6c341a20, 0x33ff6: 0x6c4ed220, 0x33ff7: 0x6c4ed420, - 0x33ff8: 0x6c4ed620, 0x33ff9: 0x6c4ed820, 0x33ffa: 0x6c4eda20, 0x33ffb: 0x6c4edc20, - 0x33ffc: 0x6c4ede20, 0x33ffd: 0x6c4ee020, 0x33ffe: 0x6c4ee220, 0x33fff: 0x6c4ee420, - // Block 0xd00, offset 0x34000 - 0x34000: 0x6c4ee620, 0x34001: 0x6c4ee820, 0x34002: 0x6c4eea20, 0x34003: 0x6c4eec20, - 0x34004: 0x6c4eee20, 0x34005: 0x6c70ba20, 0x34006: 0x6c70bc20, 0x34007: 0x6c70be20, - 0x34008: 0x6c70c020, 0x34009: 0x6c70c220, 0x3400a: 0x6c70c420, 0x3400b: 0x6c70c620, - 0x3400c: 0x6c70c820, 0x3400d: 0x6c98d820, 0x3400e: 0x6c98da20, 0x3400f: 0x6c98dc20, - 0x34010: 0x6c98de20, 0x34011: 0x6cc4b220, 0x34012: 0x6cc4b420, 0x34013: 0x6cc4b620, - 0x34014: 0x6cc4b820, 0x34015: 0x6cc4ba20, 0x34016: 0x6cf3a220, 0x34017: 0x6cf3a420, - 0x34018: 0x6d236220, 0x34019: 0x6d236420, 0x3401a: 0x6d236620, 0x3401b: 0x6d236820, - 0x3401c: 0x6d50f420, 0x3401d: 0x6d50f620, 0x3401e: 0x6d50f820, 0x3401f: 0x6d7cb020, - 0x34020: 0x6da47820, 0x34021: 0x6dc60620, 0x34022: 0x6e0dec20, 0x34023: 0x6e28f220, - 0x34024: 0x6e28f420, 0x34025: 0x6c047820, 0x34026: 0x6c047a20, 0x34027: 0x6c047c20, - 0x34028: 0x6c094620, 0x34029: 0x6c094820, 0x3402a: 0x6c094a20, 0x3402b: 0x6c094c20, - 0x3402c: 0x6c094e20, 0x3402d: 0x6c120620, 0x3402e: 0x6c120820, 0x3402f: 0x6c120a20, - 0x34030: 0x6c120c20, 0x34031: 0x6c120e20, 0x34032: 0x6c121020, 0x34033: 0x6c121220, - 0x34034: 0x6c121420, 0x34035: 0x6c121620, 0x34036: 0x6c121820, 0x34037: 0x6c121a20, - 0x34038: 0x6c121c20, 0x34039: 0x6c121e20, 0x3403a: 0x6c122020, 0x3403b: 0x6c122220, - 0x3403c: 0x6c122420, 0x3403d: 0x6c122620, 0x3403e: 0x6c122820, 0x3403f: 0x6c122a20, - // Block 0xd01, offset 0x34040 - 0x34040: 0x6c122c20, 0x34041: 0x6c122e20, 0x34042: 0x6c123020, 0x34043: 0x6c20a820, - 0x34044: 0x6c20aa20, 0x34045: 0x6c20ac20, 0x34046: 0x6c20ae20, 0x34047: 0x6c20b020, - 0x34048: 0x6c20b220, 0x34049: 0x6c20b420, 0x3404a: 0x6c20b620, 0x3404b: 0x6c20b820, - 0x3404c: 0x6c20ba20, 0x3404d: 0x6c20bc20, 0x3404e: 0x6c20be20, 0x3404f: 0x6c20c020, - 0x34050: 0x6c20c220, 0x34051: 0x6c20c420, 0x34052: 0x6c20c620, 0x34053: 0x6c20c820, - 0x34054: 0x6c20ca20, 0x34055: 0x6c20cc20, 0x34056: 0x6c20ce20, 0x34057: 0x6c20d020, - 0x34058: 0x6c20d220, 0x34059: 0x6c20d420, 0x3405a: 0x6c20d620, 0x3405b: 0x6c20d820, - 0x3405c: 0x6c20da20, 0x3405d: 0x6c20dc20, 0x3405e: 0x6c20de20, 0x3405f: 0x6c20e020, - 0x34060: 0x6c20e220, 0x34061: 0x6c20e420, 0x34062: 0x6c20e620, 0x34063: 0x6c20e820, - 0x34064: 0x6c20ea20, 0x34065: 0x6c20ec20, 0x34066: 0x6c20ee20, 0x34067: 0x6c20f020, - 0x34068: 0x6c20f220, 0x34069: 0x6c20f420, 0x3406a: 0x6c20f620, 0x3406b: 0x6c20f820, - 0x3406c: 0x6c20fa20, 0x3406d: 0x6c20fc20, 0x3406e: 0x6c20fe20, 0x3406f: 0x6c210020, - 0x34070: 0x6c210220, 0x34071: 0x6c210420, 0x34072: 0x6c210620, 0x34073: 0x6c210820, - 0x34074: 0x6c34be20, 0x34075: 0x6c34c020, 0x34076: 0x6c34c220, 0x34077: 0x6c34c420, - 0x34078: 0x6c34c620, 0x34079: 0x6c34c820, 0x3407a: 0x6c34ca20, 0x3407b: 0x6c34cc20, - 0x3407c: 0x6c34ce20, 0x3407d: 0x6c34d020, 0x3407e: 0x6c34d220, 0x3407f: 0x6c34d420, - // Block 0xd02, offset 0x34080 - 0x34080: 0x6c34d620, 0x34081: 0x6c34d820, 0x34082: 0x6c34da20, 0x34083: 0x6c34dc20, - 0x34084: 0x6c34de20, 0x34085: 0x6c34e020, 0x34086: 0x6c34e220, 0x34087: 0x6c34e420, - 0x34088: 0x6c34e620, 0x34089: 0x6c34e820, 0x3408a: 0x6c34ea20, 0x3408b: 0x6c34ec20, - 0x3408c: 0x6c34ee20, 0x3408d: 0x6c34f020, 0x3408e: 0x6c34f220, 0x3408f: 0x6c34f420, - 0x34090: 0x6c34f620, 0x34091: 0x6c34f820, 0x34092: 0x6c34fa20, 0x34093: 0x6c34fc20, - 0x34094: 0x6c34fe20, 0x34095: 0x6c350020, 0x34096: 0x6c350220, 0x34097: 0x6c350420, - 0x34098: 0x6c350620, 0x34099: 0x6c350820, 0x3409a: 0x6c350a20, 0x3409b: 0x6c350c20, - 0x3409c: 0x6c350e20, 0x3409d: 0x6c351020, 0x3409e: 0x6c351220, 0x3409f: 0x6c351420, - 0x340a0: 0x6c351620, 0x340a1: 0x6c351820, 0x340a2: 0x6c351a20, 0x340a3: 0x6c351c20, - 0x340a4: 0x6c4f8020, 0x340a5: 0x6c4f8220, 0x340a6: 0x6c4f8420, 0x340a7: 0x6c4f8620, - 0x340a8: 0x6c4f8820, 0x340a9: 0x6c4f8a20, 0x340aa: 0x6c4f8c20, 0x340ab: 0x6c4f8e20, - 0x340ac: 0x6c4f9020, 0x340ad: 0x6c4f9220, 0x340ae: 0x6c4f9420, 0x340af: 0x6c4f9620, - 0x340b0: 0x6c4f9820, 0x340b1: 0x6c4f9a20, 0x340b2: 0x6c4f9c20, 0x340b3: 0x6c4f9e20, - 0x340b4: 0x6c4fa020, 0x340b5: 0x6c4fa220, 0x340b6: 0x6c4fa420, 0x340b7: 0x6c4fa620, - 0x340b8: 0x6c4fa820, 0x340b9: 0x6c4faa20, 0x340ba: 0x6c4fac20, 0x340bb: 0x6c4fae20, - 0x340bc: 0x6c4fb020, 0x340bd: 0x6c4fb220, 0x340be: 0x6c4fb420, 0x340bf: 0x6c4fb620, - // Block 0xd03, offset 0x340c0 - 0x340c0: 0x6c4fb820, 0x340c1: 0x6c4fba20, 0x340c2: 0x6c4fbc20, 0x340c3: 0x6c4fbe20, - 0x340c4: 0x6c4fc020, 0x340c5: 0x6c4fc220, 0x340c6: 0x6c4fc420, 0x340c7: 0x6c4fc620, - 0x340c8: 0x6c4fc820, 0x340c9: 0x6c4fca20, 0x340ca: 0x6c4fcc20, 0x340cb: 0x6c4fce20, - 0x340cc: 0x6c4fd020, 0x340cd: 0x6c4fd220, 0x340ce: 0x6c4fd420, 0x340cf: 0x6c4fd620, - 0x340d0: 0x6c4fd820, 0x340d1: 0x6c4fda20, 0x340d2: 0x6c4fdc20, 0x340d3: 0x6c4fde20, - 0x340d4: 0x6c4fe020, 0x340d5: 0x6c4fe220, 0x340d6: 0x6c4fe420, 0x340d7: 0x6c4fe620, - 0x340d8: 0x6c4fe820, 0x340d9: 0x6c4fea20, 0x340da: 0x6c4fec20, 0x340db: 0x6c4fee20, - 0x340dc: 0x6c4ff020, 0x340dd: 0x6c4ff220, 0x340de: 0x6c4ff420, 0x340df: 0x6c4ff620, - 0x340e0: 0x6c4ff820, 0x340e1: 0x6c4ffa20, 0x340e2: 0x6c4ffc20, 0x340e3: 0x6c4ffe20, - 0x340e4: 0x6c500020, 0x340e5: 0x6c500220, 0x340e6: 0x6c500420, 0x340e7: 0x6c500620, - 0x340e8: 0x6c500820, 0x340e9: 0x6c500a20, 0x340ea: 0x6c500c20, 0x340eb: 0x6c500e20, - 0x340ec: 0x6c501020, 0x340ed: 0x6c501220, 0x340ee: 0x6c501420, 0x340ef: 0x6c716220, - 0x340f0: 0x6c716420, 0x340f1: 0x6c716620, 0x340f2: 0x6c716820, 0x340f3: 0x6c716a20, - 0x340f4: 0x6c716c20, 0x340f5: 0x6c716e20, 0x340f6: 0x6c717020, 0x340f7: 0x6c717220, - 0x340f8: 0x6c717420, 0x340f9: 0x6c717620, 0x340fa: 0x6c717820, 0x340fb: 0x6c717a20, - 0x340fc: 0x6c717c20, 0x340fd: 0x6c717e20, 0x340fe: 0x6c718020, 0x340ff: 0x6c718220, - // Block 0xd04, offset 0x34100 - 0x34100: 0x6c718420, 0x34101: 0x6c718620, 0x34102: 0x6c718820, 0x34103: 0x6c718a20, - 0x34104: 0x6c718c20, 0x34105: 0x6c718e20, 0x34106: 0x6c719020, 0x34107: 0x6c719220, - 0x34108: 0x6c719420, 0x34109: 0x6c719620, 0x3410a: 0x6c719820, 0x3410b: 0x6c719a20, - 0x3410c: 0x6c719c20, 0x3410d: 0x6c719e20, 0x3410e: 0x6c71a020, 0x3410f: 0x6c71a220, - 0x34110: 0x6c71a420, 0x34111: 0x6c71a620, 0x34112: 0x6c71a820, 0x34113: 0x6c71aa20, - 0x34114: 0x6c71ac20, 0x34115: 0x6c71ae20, 0x34116: 0x6c71b020, 0x34117: 0x6c71b220, - 0x34118: 0x6c71b420, 0x34119: 0x6c71b620, 0x3411a: 0x6c71b820, 0x3411b: 0x6c71ba20, - 0x3411c: 0x6c71bc20, 0x3411d: 0x6c71be20, 0x3411e: 0x6c71c020, 0x3411f: 0x6c71c220, - 0x34120: 0x6c71c420, 0x34121: 0x6c71c620, 0x34122: 0x6c71c820, 0x34123: 0x6c71ca20, - 0x34124: 0x6c71cc20, 0x34125: 0x6c71ce20, 0x34126: 0x6c71d020, 0x34127: 0x6c71d220, - 0x34128: 0x6c71d420, 0x34129: 0x6c71d620, 0x3412a: 0x6c71d820, 0x3412b: 0x6c71da20, - 0x3412c: 0x6c71dc20, 0x3412d: 0x6c71de20, 0x3412e: 0x6c71e020, 0x3412f: 0x6c71e220, - 0x34130: 0x6c71e420, 0x34131: 0x6c71e620, 0x34132: 0x6c71e820, 0x34133: 0x6c71ea20, - 0x34134: 0x6c71ec20, 0x34135: 0x6c71ee20, 0x34136: 0x6c71f020, 0x34137: 0x6c71f220, - 0x34138: 0x6c71f420, 0x34139: 0x6c71f620, 0x3413a: 0x6c71f820, 0x3413b: 0x6c71fa20, - 0x3413c: 0x6c71fc20, 0x3413d: 0x6c71fe20, 0x3413e: 0x6c720020, 0x3413f: 0x6c720220, - // Block 0xd05, offset 0x34140 - 0x34140: 0x6c720420, 0x34141: 0x6c99ac20, 0x34142: 0x6c99ae20, 0x34143: 0x6c99b020, - 0x34144: 0x6c99b220, 0x34145: 0x6c99b420, 0x34146: 0x6c99b620, 0x34147: 0x6c99b820, - 0x34148: 0x6c99ba20, 0x34149: 0x6c99bc20, 0x3414a: 0x6c99be20, 0x3414b: 0x6c99c020, - 0x3414c: 0x6c99c220, 0x3414d: 0x6c99c420, 0x3414e: 0x6c99c620, 0x3414f: 0x6c99c820, - 0x34150: 0x6c99ca20, 0x34151: 0x6c99cc20, 0x34152: 0x6c99ce20, 0x34153: 0x6c99d020, - 0x34154: 0x6c99d220, 0x34155: 0x6c99d420, 0x34156: 0x6c99d620, 0x34157: 0x6c99d820, - 0x34158: 0x6c99da20, 0x34159: 0x6c99dc20, 0x3415a: 0x6c99de20, 0x3415b: 0x6c99e020, - 0x3415c: 0x6c99e220, 0x3415d: 0x6c99e420, 0x3415e: 0x6c99e620, 0x3415f: 0x6c99e820, - 0x34160: 0x6c99ea20, 0x34161: 0x6c99ec20, 0x34162: 0x6c99ee20, 0x34163: 0x6c99f020, - 0x34164: 0x6c99f220, 0x34165: 0x6c99f420, 0x34166: 0x6c99f620, 0x34167: 0x6c99f820, - 0x34168: 0x6c99fa20, 0x34169: 0x6c99fc20, 0x3416a: 0x6c99fe20, 0x3416b: 0x6c9a0020, - 0x3416c: 0x6c9a0220, 0x3416d: 0x6c9a0420, 0x3416e: 0x6c9a0620, 0x3416f: 0x6c9a0820, - 0x34170: 0x6c9a0a20, 0x34171: 0x6c9a0c20, 0x34172: 0x6c9a0e20, 0x34173: 0x6c9a1020, - 0x34174: 0x6c9a1220, 0x34175: 0x6c9a1420, 0x34176: 0x6c9a1620, 0x34177: 0x6c9a1820, - 0x34178: 0x6c9a1a20, 0x34179: 0x6c9a1c20, 0x3417a: 0x6c9a1e20, 0x3417b: 0x6c9a2020, - 0x3417c: 0x6c9a2220, 0x3417d: 0x6c9a2420, 0x3417e: 0x6c9a2620, 0x3417f: 0x6c9a2820, - // Block 0xd06, offset 0x34180 - 0x34180: 0x6c9a2a20, 0x34181: 0x6c9a2c20, 0x34182: 0x6c9a2e20, 0x34183: 0x6c9a3020, - 0x34184: 0x6c9a3220, 0x34185: 0x6c9a3420, 0x34186: 0x6c9a3620, 0x34187: 0x6c9a3820, - 0x34188: 0x6c9a3a20, 0x34189: 0x6c9a3c20, 0x3418a: 0x6c9a3e20, 0x3418b: 0x6c9a4020, - 0x3418c: 0x6c9a4220, 0x3418d: 0x6c9a4420, 0x3418e: 0x6c9a4620, 0x3418f: 0x6c9a4820, - 0x34190: 0x6c9a4a20, 0x34191: 0x6c9a4c20, 0x34192: 0x6c9a4e20, 0x34193: 0x6c9a5020, - 0x34194: 0x6c9a5220, 0x34195: 0x6c9a5420, 0x34196: 0x6c9a5620, 0x34197: 0x6c9a5820, - 0x34198: 0x6c9a5a20, 0x34199: 0x6c9a5c20, 0x3419a: 0x6c9a5e20, 0x3419b: 0x6c9a6020, - 0x3419c: 0x6c9a6220, 0x3419d: 0x6c9a6420, 0x3419e: 0x6c9a6620, 0x3419f: 0x6c9a6820, - 0x341a0: 0x6c9a6a20, 0x341a1: 0x6c9a6c20, 0x341a2: 0x6c9a6e20, 0x341a3: 0x6c9a7020, - 0x341a4: 0x6c9a7220, 0x341a5: 0x6c9a7420, 0x341a6: 0x6c9a7620, 0x341a7: 0x6c9a7820, - 0x341a8: 0x6c9a7a20, 0x341a9: 0x6cc56a20, 0x341aa: 0x6cc56c20, 0x341ab: 0x6cc56e20, - 0x341ac: 0x6cc57020, 0x341ad: 0x6cc57220, 0x341ae: 0x6cc57420, 0x341af: 0x6cc57620, - 0x341b0: 0x6cc57820, 0x341b1: 0x6cc57a20, 0x341b2: 0x6cc57c20, 0x341b3: 0x6cc57e20, - 0x341b4: 0x6cc58020, 0x341b5: 0x6cc58220, 0x341b6: 0x6cc58420, 0x341b7: 0x6cc58620, - 0x341b8: 0x6cc58820, 0x341b9: 0x6cc58a20, 0x341ba: 0x6cc58c20, 0x341bb: 0x6cc58e20, - 0x341bc: 0x6cc59020, 0x341bd: 0x6cc59220, 0x341be: 0x6cc59420, 0x341bf: 0x6cc59620, - // Block 0xd07, offset 0x341c0 - 0x341c0: 0x6cc59820, 0x341c1: 0x6cc59a20, 0x341c2: 0x6cc59c20, 0x341c3: 0x6cc59e20, - 0x341c4: 0x6cc5a020, 0x341c5: 0x6cc5a220, 0x341c6: 0x6cc5a420, 0x341c7: 0x6cc5a620, - 0x341c8: 0x6cc5a820, 0x341c9: 0x6cc5aa20, 0x341ca: 0x6cc5ac20, 0x341cb: 0x6cc5ae20, - 0x341cc: 0x6cc5b020, 0x341cd: 0x6cc5b220, 0x341ce: 0x6cc5b420, 0x341cf: 0x6cc5b620, - 0x341d0: 0x6cc5b820, 0x341d1: 0x6cc5ba20, 0x341d2: 0x6cc5bc20, 0x341d3: 0x6cc5be20, - 0x341d4: 0x6cc5c020, 0x341d5: 0x6cc5c220, 0x341d6: 0x6cc5c420, 0x341d7: 0x6cc5c620, - 0x341d8: 0x6cc5c820, 0x341d9: 0x6cc5ca20, 0x341da: 0x6cc5cc20, 0x341db: 0x6cc5ce20, - 0x341dc: 0x6cc5d020, 0x341dd: 0x6cc5d220, 0x341de: 0x6cc5d420, 0x341df: 0x6cc5d620, - 0x341e0: 0x6cc5d820, 0x341e1: 0x6cc5da20, 0x341e2: 0x6cc5dc20, 0x341e3: 0x6cc5de20, - 0x341e4: 0x6cc5e020, 0x341e5: 0x6cc5e220, 0x341e6: 0x6cc5e420, 0x341e7: 0x6cc5e620, - 0x341e8: 0x6cc5e820, 0x341e9: 0x6cc5ea20, 0x341ea: 0x6cc5ec20, 0x341eb: 0x6cc5ee20, - 0x341ec: 0x6cc5f020, 0x341ed: 0x6cc5f220, 0x341ee: 0x6cc5f420, 0x341ef: 0x6cc5f620, - 0x341f0: 0x6cc5f820, 0x341f1: 0x6cc5fa20, 0x341f2: 0x6cc5fc20, 0x341f3: 0x6cc5fe20, - 0x341f4: 0x6cc60020, 0x341f5: 0x6cc60220, 0x341f6: 0x6cc60420, 0x341f7: 0x6cc60620, - 0x341f8: 0x6cc60820, 0x341f9: 0x6cc60a20, 0x341fa: 0x6cc60c20, 0x341fb: 0x6cc60e20, - 0x341fc: 0x6cc61020, 0x341fd: 0x6cc61220, 0x341fe: 0x6cc61420, 0x341ff: 0x6d017820, - // Block 0xd08, offset 0x34200 - 0x34200: 0x6cc61620, 0x34201: 0x6cc61820, 0x34202: 0x6cc61a20, 0x34203: 0x6cc61c20, - 0x34204: 0x6cc61e20, 0x34205: 0x6cc62020, 0x34206: 0x6cc62220, 0x34207: 0x6cc62420, - 0x34208: 0x6cc62620, 0x34209: 0x6cc62820, 0x3420a: 0x6cc62a20, 0x3420b: 0x6cc62c20, - 0x3420c: 0x6cc62e20, 0x3420d: 0x6cc63020, 0x3420e: 0x6cc63220, 0x3420f: 0x6cc63420, - 0x34210: 0x6cc63620, 0x34211: 0x6cc63820, 0x34212: 0x6cc63a20, 0x34213: 0x6cc63c20, - 0x34214: 0x6cc63e20, 0x34215: 0x6cc64020, 0x34216: 0x6cc64220, 0x34217: 0x6cc64420, - 0x34218: 0x6cc64620, 0x34219: 0x6cc64820, 0x3421a: 0x6cc64a20, 0x3421b: 0x6cc64c20, - 0x3421c: 0x6cc64e20, 0x3421d: 0x6cc65020, 0x3421e: 0x6cc65220, 0x3421f: 0x6cf45a20, - 0x34220: 0x6cf45c20, 0x34221: 0x6cf45e20, 0x34222: 0x6cf46020, 0x34223: 0x6cf46220, - 0x34224: 0x6cf46420, 0x34225: 0x6cf46620, 0x34226: 0x6cf46820, 0x34227: 0x6cf46a20, - 0x34228: 0x6cf46c20, 0x34229: 0x6cf46e20, 0x3422a: 0x6cf47020, 0x3422b: 0x6cf47220, - 0x3422c: 0x6cf47420, 0x3422d: 0x6cf47620, 0x3422e: 0x6cf47820, 0x3422f: 0x6cf47a20, - 0x34230: 0x6cf47c20, 0x34231: 0x6cf47e20, 0x34232: 0x6cf48020, 0x34233: 0x6cf48220, - 0x34234: 0x6cf48420, 0x34235: 0x6cf48620, 0x34236: 0x6cf48820, 0x34237: 0x6cf48a20, - 0x34238: 0x6cf48c20, 0x34239: 0x6cf48e20, 0x3423a: 0x6cf49020, 0x3423b: 0x6cf49220, - 0x3423c: 0x6cf49420, 0x3423d: 0x6cf49620, 0x3423e: 0x6cf49820, 0x3423f: 0x6cf49a20, - // Block 0xd09, offset 0x34240 - 0x34240: 0x6cf49c20, 0x34241: 0x6cf49e20, 0x34242: 0x6cf4a020, 0x34243: 0x6cf4a220, - 0x34244: 0x6cf4a420, 0x34245: 0x6cf4a620, 0x34246: 0x6cf4a820, 0x34247: 0x6cf4aa20, - 0x34248: 0x6cf4ac20, 0x34249: 0x6cf4ae20, 0x3424a: 0x6cf4b020, 0x3424b: 0x6cf4b220, - 0x3424c: 0x6cf4b420, 0x3424d: 0x6cf4b620, 0x3424e: 0x6cf4b820, 0x3424f: 0x6cf4ba20, - 0x34250: 0x6cf4bc20, 0x34251: 0x6cf4be20, 0x34252: 0x6cf4c020, 0x34253: 0x6cf4c220, - 0x34254: 0x6cf4c420, 0x34255: 0x6cf4c620, 0x34256: 0x6cf4c820, 0x34257: 0x6cf4ca20, - 0x34258: 0x6cf4cc20, 0x34259: 0x6cf4ce20, 0x3425a: 0x6cf4d020, 0x3425b: 0x6cf4d220, - 0x3425c: 0x6cf4d420, 0x3425d: 0x6cf4d620, 0x3425e: 0x6cf4d820, 0x3425f: 0x6cf4da20, - 0x34260: 0x6cf4dc20, 0x34261: 0x6cf4de20, 0x34262: 0x6cf4e020, 0x34263: 0x6cf4e220, - 0x34264: 0x6cf4e420, 0x34265: 0x6cf4e620, 0x34266: 0x6cf4e820, 0x34267: 0x6cf4ea20, - 0x34268: 0x6cf4ec20, 0x34269: 0x6cf4ee20, 0x3426a: 0x6cf4f020, 0x3426b: 0x6cf4f220, - 0x3426c: 0x6cf4f420, 0x3426d: 0x6cf4f620, 0x3426e: 0x6cf4f820, 0x3426f: 0x6cf4fa20, - 0x34270: 0x6cf4fc20, 0x34271: 0x6cf4fe20, 0x34272: 0x6cf50020, 0x34273: 0x6d23fa20, - 0x34274: 0x6d23fc20, 0x34275: 0x6d23fe20, 0x34276: 0x6d240020, 0x34277: 0x6d240220, - 0x34278: 0x6d240420, 0x34279: 0x6d240620, 0x3427a: 0x6d240820, 0x3427b: 0x6d240a20, - 0x3427c: 0x6d240c20, 0x3427d: 0x6d240e20, 0x3427e: 0x6d241020, 0x3427f: 0x6d241220, - // Block 0xd0a, offset 0x34280 - 0x34280: 0x6d241420, 0x34281: 0x6d241620, 0x34282: 0x6d241820, 0x34283: 0x6d241a20, - 0x34284: 0x6d241c20, 0x34285: 0x6d241e20, 0x34286: 0x6d242020, 0x34287: 0x6d242220, - 0x34288: 0x6d242420, 0x34289: 0x6d242620, 0x3428a: 0x6d242820, 0x3428b: 0x6d242a20, - 0x3428c: 0x6d242c20, 0x3428d: 0x6d242e20, 0x3428e: 0x6d243020, 0x3428f: 0x6d243220, - 0x34290: 0x6d243420, 0x34291: 0x6d243620, 0x34292: 0x6d243820, 0x34293: 0x6d243a20, - 0x34294: 0x6d243c20, 0x34295: 0x6d243e20, 0x34296: 0x6d244020, 0x34297: 0x6d244220, - 0x34298: 0x6d244420, 0x34299: 0x6d244620, 0x3429a: 0x6d244820, 0x3429b: 0x6d244a20, - 0x3429c: 0x6d244c20, 0x3429d: 0x6d244e20, 0x3429e: 0x6d245020, 0x3429f: 0x6d245220, - 0x342a0: 0x6d245420, 0x342a1: 0x6d245620, 0x342a2: 0x6d245820, 0x342a3: 0x6d245a20, - 0x342a4: 0x6d245c20, 0x342a5: 0x6d245e20, 0x342a6: 0x6d246020, 0x342a7: 0x6d246220, - 0x342a8: 0x6d246420, 0x342a9: 0x6d246620, 0x342aa: 0x6d246820, 0x342ab: 0x6d246a20, - 0x342ac: 0x6d246c20, 0x342ad: 0x6d246e20, 0x342ae: 0x6d247020, 0x342af: 0x6d247220, - 0x342b0: 0x6d247420, 0x342b1: 0x6d247620, 0x342b2: 0x6d247820, 0x342b3: 0x6d247a20, - 0x342b4: 0x6d247c20, 0x342b5: 0x6d247e20, 0x342b6: 0x6d248020, 0x342b7: 0x6d248220, - 0x342b8: 0x6d248420, 0x342b9: 0x6d248620, 0x342ba: 0x6d248820, 0x342bb: 0x6d248a20, - 0x342bc: 0x6d248c20, 0x342bd: 0x6d248e20, 0x342be: 0x6d249020, 0x342bf: 0x6d249220, - // Block 0xd0b, offset 0x342c0 - 0x342c0: 0x6d249420, 0x342c1: 0x6d249620, 0x342c2: 0x6d249820, 0x342c3: 0x6d249a20, - 0x342c4: 0x6d249c20, 0x342c5: 0x6d249e20, 0x342c6: 0x6d24a020, 0x342c7: 0x6d24a220, - 0x342c8: 0x6d24a420, 0x342c9: 0x6d24a620, 0x342ca: 0x6d24a820, 0x342cb: 0x6d24aa20, - 0x342cc: 0x6d24ac20, 0x342cd: 0x6d24ae20, 0x342ce: 0x6d24b020, 0x342cf: 0x6d24b220, - 0x342d0: 0x6d24b420, 0x342d1: 0x6d24b620, 0x342d2: 0x6d24b820, 0x342d3: 0x6d24ba20, - 0x342d4: 0x6d24bc20, 0x342d5: 0x6d24be20, 0x342d6: 0x6d24c020, 0x342d7: 0x6d24c220, - 0x342d8: 0x6d24c420, 0x342d9: 0x6d24c620, 0x342da: 0x6d24c820, 0x342db: 0x6d24ca20, - 0x342dc: 0x6d24cc20, 0x342dd: 0x6d24ce20, 0x342de: 0x6d24d020, 0x342df: 0x6d24d220, - 0x342e0: 0x6d519620, 0x342e1: 0x6d519820, 0x342e2: 0x6d519a20, 0x342e3: 0x6d519c20, - 0x342e4: 0x6d519e20, 0x342e5: 0x6d51a020, 0x342e6: 0x6d51a220, 0x342e7: 0x6d51a420, - 0x342e8: 0x6d51a620, 0x342e9: 0x6d51a820, 0x342ea: 0x6d51aa20, 0x342eb: 0x6d51ac20, - 0x342ec: 0x6d51ae20, 0x342ed: 0x6d51b020, 0x342ee: 0x6d51b220, 0x342ef: 0x6d51b420, - 0x342f0: 0x6d51b620, 0x342f1: 0x6d51b820, 0x342f2: 0x6d51ba20, 0x342f3: 0x6d51bc20, - 0x342f4: 0x6d51be20, 0x342f5: 0x6d51c020, 0x342f6: 0x6d51c220, 0x342f7: 0x6d51c420, - 0x342f8: 0x6d51c620, 0x342f9: 0x6d51c820, 0x342fa: 0x6d51ca20, 0x342fb: 0x6d51cc20, - 0x342fc: 0x6d51ce20, 0x342fd: 0x6d51d020, 0x342fe: 0x6d51d220, 0x342ff: 0x6d51d420, - // Block 0xd0c, offset 0x34300 - 0x34300: 0x6d51d620, 0x34301: 0x6d51d820, 0x34302: 0x6d51da20, 0x34303: 0x6d51dc20, - 0x34304: 0x6d51de20, 0x34305: 0x6d51e020, 0x34306: 0x6d51e220, 0x34307: 0x6d51e420, - 0x34308: 0x6d51e620, 0x34309: 0x6d51e820, 0x3430a: 0x6d51ea20, 0x3430b: 0x6d51ec20, - 0x3430c: 0x6d51ee20, 0x3430d: 0x6d51f020, 0x3430e: 0x6d51f220, 0x3430f: 0x6d51f420, - 0x34310: 0x6d51f620, 0x34311: 0x6d51f820, 0x34312: 0x6d51fa20, 0x34313: 0x6d51fc20, - 0x34314: 0x6d51fe20, 0x34315: 0x6d520020, 0x34316: 0x6d520220, 0x34317: 0x6d520420, - 0x34318: 0x6d520620, 0x34319: 0x6d520820, 0x3431a: 0x6d520a20, 0x3431b: 0x6d520c20, - 0x3431c: 0x6d520e20, 0x3431d: 0x6d521020, 0x3431e: 0x6d521220, 0x3431f: 0x6d521420, - 0x34320: 0x6d521620, 0x34321: 0x6d521820, 0x34322: 0x6d521a20, 0x34323: 0x6d521c20, - 0x34324: 0x6d521e20, 0x34325: 0x6d522020, 0x34326: 0x6d522220, 0x34327: 0x6d522420, - 0x34328: 0x6d522620, 0x34329: 0x6d522820, 0x3432a: 0x6d522a20, 0x3432b: 0x6d522c20, - 0x3432c: 0x6d522e20, 0x3432d: 0x6d523020, 0x3432e: 0x6d523220, 0x3432f: 0x6d523420, - 0x34330: 0x6d523620, 0x34331: 0x6d523820, 0x34332: 0x6d523a20, 0x34333: 0x6d523c20, - 0x34334: 0x6d523e20, 0x34335: 0x6d524020, 0x34336: 0x6d524220, 0x34337: 0x6d524420, - 0x34338: 0x6d524620, 0x34339: 0x6d524820, 0x3433a: 0x6d524a20, 0x3433b: 0x6d524c20, - 0x3433c: 0x6d524e20, 0x3433d: 0x6d525020, 0x3433e: 0x6d525220, 0x3433f: 0x6d7d0220, - // Block 0xd0d, offset 0x34340 - 0x34340: 0x6d7d0420, 0x34341: 0x6d7d0620, 0x34342: 0x6d7d0820, 0x34343: 0x6d7d0a20, - 0x34344: 0x6d7d0c20, 0x34345: 0x6d7d0e20, 0x34346: 0x6d7d1020, 0x34347: 0x6d7d1220, - 0x34348: 0x6d7d1420, 0x34349: 0x6d7d1620, 0x3434a: 0x6d7d1820, 0x3434b: 0x6d7d1a20, - 0x3434c: 0x6d7d1c20, 0x3434d: 0x6d7d1e20, 0x3434e: 0x6d7d2020, 0x3434f: 0x6d7d2220, - 0x34350: 0x6d7d2420, 0x34351: 0x6d7d2620, 0x34352: 0x6d7d2820, 0x34353: 0x6d7d2a20, - 0x34354: 0x6d7d2c20, 0x34355: 0x6d7d2e20, 0x34356: 0x6d7d3020, 0x34357: 0x6d7d3220, - 0x34358: 0x6d7d3420, 0x34359: 0x6d7d3620, 0x3435a: 0x6d7d3820, 0x3435b: 0x6d7d3a20, - 0x3435c: 0x6d7d3c20, 0x3435d: 0x6d7d3e20, 0x3435e: 0x6d7d4020, 0x3435f: 0x6d7d4220, - 0x34360: 0x6d7d4420, 0x34361: 0x6d7d4620, 0x34362: 0x6d7d4820, 0x34363: 0x6d7d4a20, - 0x34364: 0x6d7d4c20, 0x34365: 0x6d7d4e20, 0x34366: 0x6d7d5020, 0x34367: 0x6d7d5220, - 0x34368: 0x6d7d5420, 0x34369: 0x6d7d5620, 0x3436a: 0x6d7d5820, 0x3436b: 0x6d7d5a20, - 0x3436c: 0x6d7d5c20, 0x3436d: 0x6d7d5e20, 0x3436e: 0x6d7d6020, 0x3436f: 0x6d7d6220, - 0x34370: 0x6d7d6420, 0x34371: 0x6d7d6620, 0x34372: 0x6d7d6820, 0x34373: 0x6d7d6a20, - 0x34374: 0x6d7d6c20, 0x34375: 0x6d7d6e20, 0x34376: 0x6d7d7020, 0x34377: 0x6d7d7220, - 0x34378: 0x6d7d7420, 0x34379: 0x6d7d7620, 0x3437a: 0x6d7d7820, 0x3437b: 0x6d7d7a20, - 0x3437c: 0x6d7d7c20, 0x3437d: 0x6d7d7e20, 0x3437e: 0x6d7d8020, 0x3437f: 0x6d7d8220, - // Block 0xd0e, offset 0x34380 - 0x34380: 0x6d7d8420, 0x34381: 0x6d7d8620, 0x34382: 0x6d7d8820, 0x34383: 0x6d7d8a20, - 0x34384: 0x6d7d8c20, 0x34385: 0x6d525420, 0x34386: 0x6d7d8e20, 0x34387: 0x6d7d9020, - 0x34388: 0x6d7d9220, 0x34389: 0x6d7d9420, 0x3438a: 0x6d7d9620, 0x3438b: 0x6da4ae20, - 0x3438c: 0x6da4b020, 0x3438d: 0x6da4b220, 0x3438e: 0x6da4b420, 0x3438f: 0x6da4b620, - 0x34390: 0x6da4b820, 0x34391: 0x6da4ba20, 0x34392: 0x6da4bc20, 0x34393: 0x6da4be20, - 0x34394: 0x6da4c020, 0x34395: 0x6da4c220, 0x34396: 0x6da4c420, 0x34397: 0x6da4c620, - 0x34398: 0x6da4c820, 0x34399: 0x6da4ca20, 0x3439a: 0x6da4cc20, 0x3439b: 0x6da4ce20, - 0x3439c: 0x6da4d020, 0x3439d: 0x6da4d220, 0x3439e: 0x6da4d420, 0x3439f: 0x6da4d620, - 0x343a0: 0x6da4d820, 0x343a1: 0x6da4da20, 0x343a2: 0x6da4dc20, 0x343a3: 0x6da4de20, - 0x343a4: 0x6da4e020, 0x343a5: 0x6da4e220, 0x343a6: 0x6da4e420, 0x343a7: 0x6da4e620, - 0x343a8: 0x6da4e820, 0x343a9: 0x6da4ea20, 0x343aa: 0x6da4ec20, 0x343ab: 0x6da4ee20, - 0x343ac: 0x6da4f020, 0x343ad: 0x6da4f220, 0x343ae: 0x6da4f420, 0x343af: 0x6da4f620, - 0x343b0: 0x6da4f820, 0x343b1: 0x6da4fa20, 0x343b2: 0x6da4fc20, 0x343b3: 0x6da4fe20, - 0x343b4: 0x6da50020, 0x343b5: 0x6da50220, 0x343b6: 0x6dc64e20, 0x343b7: 0x6dc65020, - 0x343b8: 0x6dc65220, 0x343b9: 0x6dc65420, 0x343ba: 0x6dc65620, 0x343bb: 0x6dc65820, - 0x343bc: 0x6dc65a20, 0x343bd: 0x6dc65c20, 0x343be: 0x6dc65e20, 0x343bf: 0x6dc66020, - // Block 0xd0f, offset 0x343c0 - 0x343c0: 0x6dc66220, 0x343c1: 0x6dc66420, 0x343c2: 0x6dc66620, 0x343c3: 0x6dc66820, - 0x343c4: 0x6dc66a20, 0x343c5: 0x6dc66c20, 0x343c6: 0x6dc66e20, 0x343c7: 0x6dc67020, - 0x343c8: 0x6dc67220, 0x343c9: 0x6dc67420, 0x343ca: 0x6dc67620, 0x343cb: 0x6dc67820, - 0x343cc: 0x6dc67a20, 0x343cd: 0x6dc67c20, 0x343ce: 0x6dc67e20, 0x343cf: 0x6dc68020, - 0x343d0: 0x6dc68220, 0x343d1: 0x6dc68420, 0x343d2: 0x6dc68620, 0x343d3: 0x6dc68820, - 0x343d4: 0x6dc68a20, 0x343d5: 0x6dc68c20, 0x343d6: 0x6dc68e20, 0x343d7: 0x6dc69020, - 0x343d8: 0x6dc69220, 0x343d9: 0x6dc69420, 0x343da: 0x6dc69620, 0x343db: 0x6dc69820, - 0x343dc: 0x6dc69a20, 0x343dd: 0x6dc69c20, 0x343de: 0x6dc69e20, 0x343df: 0x6dc6a020, - 0x343e0: 0x6dc6a220, 0x343e1: 0x6dc6a420, 0x343e2: 0x6dc6a620, 0x343e3: 0x6de30420, - 0x343e4: 0x6de30620, 0x343e5: 0x6de30820, 0x343e6: 0x6de30a20, 0x343e7: 0x6de30c20, - 0x343e8: 0x6de30e20, 0x343e9: 0x6de31020, 0x343ea: 0x6de31220, 0x343eb: 0x6de31420, - 0x343ec: 0x6de31620, 0x343ed: 0x6de31820, 0x343ee: 0x6de31a20, 0x343ef: 0x6de31c20, - 0x343f0: 0x6de31e20, 0x343f1: 0x6de32020, 0x343f2: 0x6de32220, 0x343f3: 0x6de32420, - 0x343f4: 0x6de32620, 0x343f5: 0x6de32820, 0x343f6: 0x6de32a20, 0x343f7: 0x6de32c20, - 0x343f8: 0x6de32e20, 0x343f9: 0x6de33020, 0x343fa: 0x6de33220, 0x343fb: 0x6de33420, - 0x343fc: 0x6de33620, 0x343fd: 0x6de33820, 0x343fe: 0x6de33a20, 0x343ff: 0x6de33c20, - // Block 0xd10, offset 0x34400 - 0x34400: 0x6de33e20, 0x34401: 0x6de34020, 0x34402: 0x6de34220, 0x34403: 0x6de34420, - 0x34404: 0x6de34620, 0x34405: 0x6de34820, 0x34406: 0x6de34a20, 0x34407: 0x6de34c20, - 0x34408: 0x6de34e20, 0x34409: 0x6de35020, 0x3440a: 0x6de35220, 0x3440b: 0x6de35420, - 0x3440c: 0x6de35620, 0x3440d: 0x6dfa7220, 0x3440e: 0x6dfa7420, 0x3440f: 0x6dfa7620, - 0x34410: 0x6dfa7820, 0x34411: 0x6dfa7a20, 0x34412: 0x6dfa7c20, 0x34413: 0x6dfa7e20, - 0x34414: 0x6dfa8020, 0x34415: 0x6dfa8220, 0x34416: 0x6dfa8420, 0x34417: 0x6dfa8620, - 0x34418: 0x6dfa8820, 0x34419: 0x6dfa8a20, 0x3441a: 0x6dfa8c20, 0x3441b: 0x6dfa8e20, - 0x3441c: 0x6dfa9020, 0x3441d: 0x6dfa9220, 0x3441e: 0x6dfa9420, 0x3441f: 0x6dfa9620, - 0x34420: 0x6dfa9820, 0x34421: 0x6dfa9a20, 0x34422: 0x6e0dfe20, 0x34423: 0x6dfa9c20, - 0x34424: 0x6dfa9e20, 0x34425: 0x6dfaa020, 0x34426: 0x6dfaa220, 0x34427: 0x6dfaa420, - 0x34428: 0x6dfaa620, 0x34429: 0x6dfaa820, 0x3442a: 0x6dfaaa20, 0x3442b: 0x6dfaac20, - 0x3442c: 0x6e0e0020, 0x3442d: 0x6e0e0220, 0x3442e: 0x6e0e0420, 0x3442f: 0x6e0e0620, - 0x34430: 0x6e0e0820, 0x34431: 0x6e0e0a20, 0x34432: 0x6e0e0c20, 0x34433: 0x6e0e0e20, - 0x34434: 0x6e0e1020, 0x34435: 0x6e0e1220, 0x34436: 0x6e0e1420, 0x34437: 0x6e0e1620, - 0x34438: 0x6e0e1820, 0x34439: 0x6e0e1a20, 0x3443a: 0x6e0e1c20, 0x3443b: 0x6e0e1e20, - 0x3443c: 0x6e0e2020, 0x3443d: 0x6e0e2220, 0x3443e: 0x6e0e2420, 0x3443f: 0x6e0e2620, - // Block 0xd11, offset 0x34440 - 0x34440: 0x6e0e2820, 0x34441: 0x6e0e2a20, 0x34442: 0x6e1d6620, 0x34443: 0x6e1d6820, - 0x34444: 0x6e1d6a20, 0x34445: 0x6e1d6c20, 0x34446: 0x6e1d6e20, 0x34447: 0x6e1d7020, - 0x34448: 0x6e1d7220, 0x34449: 0x6e1d7420, 0x3444a: 0x6e1d7620, 0x3444b: 0x6e1d7820, - 0x3444c: 0x6e1d7a20, 0x3444d: 0x6e1d7c20, 0x3444e: 0x6e1d7e20, 0x3444f: 0x6e1d8020, - 0x34450: 0x6e1d8220, 0x34451: 0x6e1d8420, 0x34452: 0x6e1d8620, 0x34453: 0x6e1d8820, - 0x34454: 0x6e1d8a20, 0x34455: 0x6e1d8c20, 0x34456: 0x6e290820, 0x34457: 0x6e290a20, - 0x34458: 0x6e290c20, 0x34459: 0x6e290e20, 0x3445a: 0x6e291020, 0x3445b: 0x6e291220, - 0x3445c: 0x6e291420, 0x3445d: 0x6e291620, 0x3445e: 0x6e322a20, 0x3445f: 0x6e322c20, - 0x34460: 0x6e322e20, 0x34461: 0x6e323020, 0x34462: 0x6e323220, 0x34463: 0x6e323420, - 0x34464: 0x6e323620, 0x34465: 0x6e323820, 0x34466: 0x6e323a20, 0x34467: 0x6e323c20, - 0x34468: 0x6e323e20, 0x34469: 0x6e324020, 0x3446a: 0x6e324220, 0x3446b: 0x6e324420, - 0x3446c: 0x6e389620, 0x3446d: 0x6e389820, 0x3446e: 0x6e389a20, 0x3446f: 0x6e389c20, - 0x34470: 0x6e404420, 0x34471: 0x6e404620, 0x34472: 0x6e404820, 0x34473: 0x6e429e20, - 0x34474: 0x6e462a20, 0x34475: 0x6c123820, 0x34476: 0x6c211a20, 0x34477: 0x6c353020, - 0x34478: 0x6c353220, 0x34479: 0x6c353420, 0x3447a: 0x6c353620, 0x3447b: 0x6c353820, - 0x3447c: 0x6c353a20, 0x3447d: 0x6c353c20, 0x3447e: 0x6c502c20, 0x3447f: 0x6c502e20, - // Block 0xd12, offset 0x34480 - 0x34480: 0x6c503020, 0x34481: 0x6c722620, 0x34482: 0x6c722820, 0x34483: 0x6c722a20, - 0x34484: 0x6c722c20, 0x34485: 0x6c722e20, 0x34486: 0x6c723020, 0x34487: 0x6c723220, - 0x34488: 0x6c6aa620, 0x34489: 0x6c723420, 0x3448a: 0x6c9a9620, 0x3448b: 0x6c9a9820, - 0x3448c: 0x6c9a9a20, 0x3448d: 0x6c9a9c20, 0x3448e: 0x6cc67420, 0x3448f: 0x6cc67620, - 0x34490: 0x6cc67820, 0x34491: 0x6cc67a20, 0x34492: 0x6cc67c20, 0x34493: 0x6cc67e20, - 0x34494: 0x6cc68020, 0x34495: 0x6cf52020, 0x34496: 0x6cf52220, 0x34497: 0x6cf52420, - 0x34498: 0x6cf52620, 0x34499: 0x6cf52820, 0x3449a: 0x6d24ea20, 0x3449b: 0x6d24ec20, - 0x3449c: 0x6d24ee20, 0x3449d: 0x6d526a20, 0x3449e: 0x6d526c20, 0x3449f: 0x6d526e20, - 0x344a0: 0x6d7da220, 0x344a1: 0x6d7da420, 0x344a2: 0x6d7da620, 0x344a3: 0x6d7da820, - 0x344a4: 0x6d7daa20, 0x344a5: 0x6da50a20, 0x344a6: 0x6da50c20, 0x344a7: 0x6da50e20, - 0x344a8: 0x6da51020, 0x344a9: 0x6da51220, 0x344aa: 0x6dfab020, 0x344ab: 0x6c212a20, - 0x344ac: 0x6c212c20, 0x344ad: 0x6c212e20, 0x344ae: 0x6c213020, 0x344af: 0x6c213220, - 0x344b0: 0x6c213420, 0x344b1: 0x6c213620, 0x344b2: 0x6c213820, 0x344b3: 0x6c354820, - 0x344b4: 0x6c354a20, 0x344b5: 0x6c354c20, 0x344b6: 0x6c354e20, 0x344b7: 0x6c355020, - 0x344b8: 0x6c355220, 0x344b9: 0x6c355420, 0x344ba: 0x6c355620, 0x344bb: 0x6c355820, - 0x344bc: 0x6c355a20, 0x344bd: 0x6c355c20, 0x344be: 0x6c355e20, 0x344bf: 0x6c356020, - // Block 0xd13, offset 0x344c0 - 0x344c0: 0x6c356220, 0x344c1: 0x6c356420, 0x344c2: 0x6c356620, 0x344c3: 0x6c356820, - 0x344c4: 0x6c356a20, 0x344c5: 0x6c356c20, 0x344c6: 0x6c356e20, 0x344c7: 0x6c357020, - 0x344c8: 0x6c357220, 0x344c9: 0x6c504820, 0x344ca: 0x6c504a20, 0x344cb: 0x6c504c20, - 0x344cc: 0x6c504e20, 0x344cd: 0x6c505020, 0x344ce: 0x6c505220, 0x344cf: 0x6c505420, - 0x344d0: 0x6c505620, 0x344d1: 0x6c505820, 0x344d2: 0x6c505a20, 0x344d3: 0x6c505c20, - 0x344d4: 0x6c505e20, 0x344d5: 0x6c506020, 0x344d6: 0x6c506220, 0x344d7: 0x6c506420, - 0x344d8: 0x6c506620, 0x344d9: 0x6c506820, 0x344da: 0x6c506a20, 0x344db: 0x6c724a20, - 0x344dc: 0x6c724c20, 0x344dd: 0x6c724e20, 0x344de: 0x6c725020, 0x344df: 0x6c725220, - 0x344e0: 0x6c725420, 0x344e1: 0x6c725620, 0x344e2: 0x6c725820, 0x344e3: 0x6c725a20, - 0x344e4: 0x6c725c20, 0x344e5: 0x6c725e20, 0x344e6: 0x6c726020, 0x344e7: 0x6c726220, - 0x344e8: 0x6c726420, 0x344e9: 0x6c726620, 0x344ea: 0x6c726820, 0x344eb: 0x6c726a20, - 0x344ec: 0x6c726c20, 0x344ed: 0x6c726e20, 0x344ee: 0x6c727020, 0x344ef: 0x6c727220, - 0x344f0: 0x6c727420, 0x344f1: 0x6c727620, 0x344f2: 0x6c727820, 0x344f3: 0x6c727a20, - 0x344f4: 0x6c727c20, 0x344f5: 0x6c727e20, 0x344f6: 0x6c728020, 0x344f7: 0x6c728220, - 0x344f8: 0x6c728420, 0x344f9: 0x6c9aca20, 0x344fa: 0x6c9acc20, 0x344fb: 0x6c9ace20, - 0x344fc: 0x6c9ad020, 0x344fd: 0x6c9ad220, 0x344fe: 0x6c9ad420, 0x344ff: 0x6c9ad620, - // Block 0xd14, offset 0x34500 - 0x34500: 0x6c9ad820, 0x34501: 0x6c9ada20, 0x34502: 0x6c9adc20, 0x34503: 0x6c9ade20, - 0x34504: 0x6c9ae020, 0x34505: 0x6c9ae220, 0x34506: 0x6c9ae420, 0x34507: 0x6c9ae620, - 0x34508: 0x6c9ae820, 0x34509: 0x6c9aea20, 0x3450a: 0x6c9aec20, 0x3450b: 0x6c9aee20, - 0x3450c: 0x6c9af020, 0x3450d: 0x6c9af220, 0x3450e: 0x6c9af420, 0x3450f: 0x6c9af620, - 0x34510: 0x6c9af820, 0x34511: 0x6c9afa20, 0x34512: 0x6c9afc20, 0x34513: 0x6c9afe20, - 0x34514: 0x6c9b0020, 0x34515: 0x6c9b0220, 0x34516: 0x6c9b0420, 0x34517: 0x6c9b0620, - 0x34518: 0x6c9b0820, 0x34519: 0x6c9b0a20, 0x3451a: 0x6cc6b620, 0x3451b: 0x6cc6b820, - 0x3451c: 0x6c9b0c20, 0x3451d: 0x6cc6ba20, 0x3451e: 0x6cc6bc20, 0x3451f: 0x6cc6be20, - 0x34520: 0x6cc6c020, 0x34521: 0x6cc6c220, 0x34522: 0x6cc6c420, 0x34523: 0x6cc6c620, - 0x34524: 0x6cc6c820, 0x34525: 0x6cc6ca20, 0x34526: 0x6cc6cc20, 0x34527: 0x6cc6ce20, - 0x34528: 0x6cc6d020, 0x34529: 0x6cc6d220, 0x3452a: 0x6cc6d420, 0x3452b: 0x6cc6d620, - 0x3452c: 0x6cc6d820, 0x3452d: 0x6cc6da20, 0x3452e: 0x6cc6dc20, 0x3452f: 0x6cc6de20, - 0x34530: 0x6cc6e020, 0x34531: 0x6cc6e220, 0x34532: 0x6cc6e420, 0x34533: 0x6cc6e620, - 0x34534: 0x6cc6e820, 0x34535: 0x6cc6ea20, 0x34536: 0x6cc6ec20, 0x34537: 0x6c9b0e20, - 0x34538: 0x6cc6ee20, 0x34539: 0x6cc6f020, 0x3453a: 0x6cc6f220, 0x3453b: 0x6cc6f420, - 0x3453c: 0x6cc6f620, 0x3453d: 0x6cc6f820, 0x3453e: 0x6cc6fa20, 0x3453f: 0x6cf54020, - // Block 0xd15, offset 0x34540 - 0x34540: 0x6cf54220, 0x34541: 0x6cf54420, 0x34542: 0x6cf54620, 0x34543: 0x6cf54820, - 0x34544: 0x6cf54a20, 0x34545: 0x6cf54c20, 0x34546: 0x6cf54e20, 0x34547: 0x6cf55020, - 0x34548: 0x6cf55220, 0x34549: 0x6cf55420, 0x3454a: 0x6cf55620, 0x3454b: 0x6cf55820, - 0x3454c: 0x6cf55a20, 0x3454d: 0x6cf55c20, 0x3454e: 0x6cf55e20, 0x3454f: 0x6cf56020, - 0x34550: 0x6cf56220, 0x34551: 0x6cf56420, 0x34552: 0x6cf56620, 0x34553: 0x6cf56820, - 0x34554: 0x6cf56a20, 0x34555: 0x6cf56c20, 0x34556: 0x6cf56e20, 0x34557: 0x6cf57020, - 0x34558: 0x6cf57220, 0x34559: 0x6cf57420, 0x3455a: 0x6cf57620, 0x3455b: 0x6cf57820, - 0x3455c: 0x6cf57a20, 0x3455d: 0x6cf57c20, 0x3455e: 0x6cf57e20, 0x3455f: 0x6cf58020, - 0x34560: 0x6cf58220, 0x34561: 0x6cf58420, 0x34562: 0x6cf58620, 0x34563: 0x6cc6fc20, - 0x34564: 0x6cf58820, 0x34565: 0x6d017a20, 0x34566: 0x6d24fe20, 0x34567: 0x6d250020, - 0x34568: 0x6d250220, 0x34569: 0x6d250420, 0x3456a: 0x6d250620, 0x3456b: 0x6d250820, - 0x3456c: 0x6d250a20, 0x3456d: 0x6d250c20, 0x3456e: 0x6d250e20, 0x3456f: 0x6d251020, - 0x34570: 0x6d251220, 0x34571: 0x6d251420, 0x34572: 0x6d251620, 0x34573: 0x6d251820, - 0x34574: 0x6d251a20, 0x34575: 0x6d251c20, 0x34576: 0x6d251e20, 0x34577: 0x6d252020, - 0x34578: 0x6d252220, 0x34579: 0x6d252420, 0x3457a: 0x6d252620, 0x3457b: 0x6d252820, - 0x3457c: 0x6d252a20, 0x3457d: 0x6d252c20, 0x3457e: 0x6d252e20, 0x3457f: 0x6d253020, - // Block 0xd16, offset 0x34580 - 0x34580: 0x6d253220, 0x34581: 0x6d253420, 0x34582: 0x6d253620, 0x34583: 0x6d253820, - 0x34584: 0x6d253a20, 0x34585: 0x6d253c20, 0x34586: 0x6d033220, 0x34587: 0x6d528620, - 0x34588: 0x6d528820, 0x34589: 0x6d528a20, 0x3458a: 0x6d528c20, 0x3458b: 0x6d528e20, - 0x3458c: 0x6d529020, 0x3458d: 0x6d529220, 0x3458e: 0x6d529420, 0x3458f: 0x6d529620, - 0x34590: 0x6d529820, 0x34591: 0x6d529a20, 0x34592: 0x6d529c20, 0x34593: 0x6d529e20, - 0x34594: 0x6d52a020, 0x34595: 0x6d52a220, 0x34596: 0x6d52a420, 0x34597: 0x6d52a620, - 0x34598: 0x6d52a820, 0x34599: 0x6d52aa20, 0x3459a: 0x6d52ac20, 0x3459b: 0x6d52ae20, - 0x3459c: 0x6d52b020, 0x3459d: 0x6d52b220, 0x3459e: 0x6d7dbe20, 0x3459f: 0x6d7dc020, - 0x345a0: 0x6d7dc220, 0x345a1: 0x6d7dc420, 0x345a2: 0x6d7dc620, 0x345a3: 0x6d7dc820, - 0x345a4: 0x6d7dca20, 0x345a5: 0x6d7dcc20, 0x345a6: 0x6d7dce20, 0x345a7: 0x6d7dd020, - 0x345a8: 0x6d7dd220, 0x345a9: 0x6d7dd420, 0x345aa: 0x6d7dd620, 0x345ab: 0x6d7dd820, - 0x345ac: 0x6d7dda20, 0x345ad: 0x6d7ddc20, 0x345ae: 0x6d7dde20, 0x345af: 0x6d7de020, - 0x345b0: 0x6d7de220, 0x345b1: 0x6d7de420, 0x345b2: 0x6d7de620, 0x345b3: 0x6d7de820, - 0x345b4: 0x6d7dea20, 0x345b5: 0x6d7dec20, 0x345b6: 0x6d7dee20, 0x345b7: 0x6d7df020, - 0x345b8: 0x6d7df220, 0x345b9: 0x6d7df420, 0x345ba: 0x6d7df620, 0x345bb: 0x6d7df820, - 0x345bc: 0x6d7dfa20, 0x345bd: 0x6d7dfc20, 0x345be: 0x6da51a20, 0x345bf: 0x6da51c20, - // Block 0xd17, offset 0x345c0 - 0x345c0: 0x6da51e20, 0x345c1: 0x6da52020, 0x345c2: 0x6da52220, 0x345c3: 0x6da52420, - 0x345c4: 0x6dc6bc20, 0x345c5: 0x6da52620, 0x345c6: 0x6da52820, 0x345c7: 0x6da52a20, - 0x345c8: 0x6da52c20, 0x345c9: 0x6da52e20, 0x345ca: 0x6da53020, 0x345cb: 0x6da53220, - 0x345cc: 0x6da53420, 0x345cd: 0x6da53620, 0x345ce: 0x6da53820, 0x345cf: 0x6da53a20, - 0x345d0: 0x6dc6be20, 0x345d1: 0x6dc6c020, 0x345d2: 0x6dc6c220, 0x345d3: 0x6dc6c420, - 0x345d4: 0x6dc6c620, 0x345d5: 0x6dc6c820, 0x345d6: 0x6dc6ca20, 0x345d7: 0x6dc6cc20, - 0x345d8: 0x6dc6ce20, 0x345d9: 0x6dc6d020, 0x345da: 0x6dc6d220, 0x345db: 0x6de35c20, - 0x345dc: 0x6de35e20, 0x345dd: 0x6de36020, 0x345de: 0x6de36220, 0x345df: 0x6de36420, - 0x345e0: 0x6de36620, 0x345e1: 0x6de36820, 0x345e2: 0x6de36a20, 0x345e3: 0x6dfab820, - 0x345e4: 0x6dfaba20, 0x345e5: 0x6dfabc20, 0x345e6: 0x6dfabe20, 0x345e7: 0x6dfac020, - 0x345e8: 0x6dfac220, 0x345e9: 0x6dfac420, 0x345ea: 0x6dfac620, 0x345eb: 0x6dfac820, - 0x345ec: 0x6dfaca20, 0x345ed: 0x6dfacc20, 0x345ee: 0x6e0e2e20, 0x345ef: 0x6e0e3020, - 0x345f0: 0x6e0e3220, 0x345f1: 0x6e0e3420, 0x345f2: 0x6e0e3620, 0x345f3: 0x6e1d9020, - 0x345f4: 0x6e1d9220, 0x345f5: 0x6e291a20, 0x345f6: 0x6e291c20, 0x345f7: 0x6e291e20, - 0x345f8: 0x6e292020, 0x345f9: 0x6e292220, 0x345fa: 0x6e292420, 0x345fb: 0x6e389e20, - 0x345fc: 0x6e38a020, 0x345fd: 0x6e404a20, 0x345fe: 0x6e404c20, 0x345ff: 0x6e42a020, - // Block 0xd18, offset 0x34600 - 0x34600: 0x6e442e20, 0x34601: 0x6c123e20, 0x34602: 0x6c213e20, 0x34603: 0x6c357820, - 0x34604: 0x6c357a20, 0x34605: 0x6c357c20, 0x34606: 0x6c507020, 0x34607: 0x6c507220, - 0x34608: 0x6c507420, 0x34609: 0x6c507620, 0x3460a: 0x6c729220, 0x3460b: 0x6c728620, - 0x3460c: 0x6c729420, 0x3460d: 0x6c729620, 0x3460e: 0x6c9b1c20, 0x3460f: 0x6c9b1e20, - 0x34610: 0x6c9b2020, 0x34611: 0x6c9b2220, 0x34612: 0x6c9b2420, 0x34613: 0x6c9b2620, - 0x34614: 0x6cc70820, 0x34615: 0x6cc70a20, 0x34616: 0x6cc70c20, 0x34617: 0x6cf59020, - 0x34618: 0x6cf59220, 0x34619: 0x6cf59420, 0x3461a: 0x6d52b420, 0x3461b: 0x6d52be20, - 0x3461c: 0x6d52c020, 0x3461d: 0x6d52c220, 0x3461e: 0x6d52c420, 0x3461f: 0x6d52c620, - 0x34620: 0x6d52c820, 0x34621: 0x6d52ca20, 0x34622: 0x6d7e0620, 0x34623: 0x6d7e0820, - 0x34624: 0x6da54020, 0x34625: 0x6dc6d820, 0x34626: 0x6dc6da20, 0x34627: 0x6de36e20, - 0x34628: 0x6dfad020, 0x34629: 0x6e0e3e20, 0x3462a: 0x6e0e4020, 0x3462b: 0x6e292820, - 0x3462c: 0x6c048820, 0x3462d: 0x6c214420, 0x3462e: 0x6c358420, 0x3462f: 0x6c358620, - 0x34630: 0x6c358820, 0x34631: 0x6c507c20, 0x34632: 0x6c507e20, 0x34633: 0x6c72a020, - 0x34634: 0x6c72a220, 0x34635: 0x6c72a420, 0x34636: 0x6c72a620, 0x34637: 0x6c9b2e20, - 0x34638: 0x6c9b3020, 0x34639: 0x6c9b3220, 0x3463a: 0x6c9b3420, 0x3463b: 0x6c9b3620, - 0x3463c: 0x6cc71820, 0x3463d: 0x6cc71a20, 0x3463e: 0x6cc71c20, 0x3463f: 0x6cc71e20, - // Block 0xd19, offset 0x34640 - 0x34640: 0x6cc72020, 0x34641: 0x6cf59a20, 0x34642: 0x6d254c20, 0x34643: 0x6cf59c20, - 0x34644: 0x6cf59e20, 0x34645: 0x6cf5a020, 0x34646: 0x6d254e20, 0x34647: 0x6d255020, - 0x34648: 0x6d255220, 0x34649: 0x6d52ce20, 0x3464a: 0x6d52d020, 0x3464b: 0x6d52d220, - 0x3464c: 0x6da54620, 0x3464d: 0x6da54820, 0x3464e: 0x6dc6de20, 0x3464f: 0x6de37020, - 0x34650: 0x6dfad220, 0x34651: 0x6c048c20, 0x34652: 0x6c124420, 0x34653: 0x6c214620, - 0x34654: 0x6c359220, 0x34655: 0x6c359420, 0x34656: 0x6c359620, 0x34657: 0x6c359820, - 0x34658: 0x6c359a20, 0x34659: 0x6c508a20, 0x3465a: 0x6c508c20, 0x3465b: 0x6c72ae20, - 0x3465c: 0x6c72b020, 0x3465d: 0x6c72b220, 0x3465e: 0x6c9b3c20, 0x3465f: 0x6c9b3e20, - 0x34660: 0x6c9b4020, 0x34661: 0x6cc72a20, 0x34662: 0x6cc72c20, 0x34663: 0x6cc72e20, - 0x34664: 0x6cc73020, 0x34665: 0x6cc73220, 0x34666: 0x6cc73420, 0x34667: 0x6cc73620, - 0x34668: 0x6cc73820, 0x34669: 0x6cc73a20, 0x3466a: 0x6cc73c20, 0x3466b: 0x6ca6ac20, - 0x3466c: 0x6cc73e20, 0x3466d: 0x6cc74020, 0x3466e: 0x6cf5a420, 0x3466f: 0x6cf5a620, - 0x34670: 0x6cf5a820, 0x34671: 0x6cf5aa20, 0x34672: 0x6cf5ac20, 0x34673: 0x6cf5ae20, - 0x34674: 0x6cf5b020, 0x34675: 0x6cf5b220, 0x34676: 0x6d255a20, 0x34677: 0x6d255c20, - 0x34678: 0x6d255e20, 0x34679: 0x6d256020, 0x3467a: 0x6d256220, 0x3467b: 0x6d52da20, - 0x3467c: 0x6d52dc20, 0x3467d: 0x6d52de20, 0x3467e: 0x6d52e020, 0x3467f: 0x6d52e220, - // Block 0xd1a, offset 0x34680 - 0x34680: 0x6d7e0e20, 0x34681: 0x6d7e1020, 0x34682: 0x6d7e1220, 0x34683: 0x6d7e1420, - 0x34684: 0x6d7e1620, 0x34685: 0x6d7e1820, 0x34686: 0x6d7e1a20, 0x34687: 0x6da55020, - 0x34688: 0x6da55220, 0x34689: 0x6da55420, 0x3468a: 0x6da55620, 0x3468b: 0x6da55820, - 0x3468c: 0x6dc6e220, 0x3468d: 0x6dc6e420, 0x3468e: 0x6dc6e620, 0x3468f: 0x6dc6e820, - 0x34690: 0x6dc6ea20, 0x34691: 0x6de37220, 0x34692: 0x6de37420, 0x34693: 0x6de37620, - 0x34694: 0x6dfad420, 0x34695: 0x6dfad620, 0x34696: 0x6e1d9420, 0x34697: 0x6c124820, - 0x34698: 0x6c214820, 0x34699: 0x6c214a20, 0x3469a: 0x6c35a620, 0x3469b: 0x6c35a820, - 0x3469c: 0x6c35aa20, 0x3469d: 0x6c509820, 0x3469e: 0x6c509a20, 0x3469f: 0x6c509c20, - 0x346a0: 0x6c509e20, 0x346a1: 0x6c50a020, 0x346a2: 0x6c50a220, 0x346a3: 0x6c50a420, - 0x346a4: 0x6c50a620, 0x346a5: 0x6c50a820, 0x346a6: 0x6c72ca20, 0x346a7: 0x6c72cc20, - 0x346a8: 0x6c72ce20, 0x346a9: 0x6c72d020, 0x346aa: 0x6c72d220, 0x346ab: 0x6c72d420, - 0x346ac: 0x6c72d620, 0x346ad: 0x6c72d820, 0x346ae: 0x6c72da20, 0x346af: 0x6c72dc20, - 0x346b0: 0x6c72de20, 0x346b1: 0x6c72e020, 0x346b2: 0x6c72e220, 0x346b3: 0x6c9b5820, - 0x346b4: 0x6c9b5a20, 0x346b5: 0x6c9b5c20, 0x346b6: 0x6c9b5e20, 0x346b7: 0x6c9b6020, - 0x346b8: 0x6c9b6220, 0x346b9: 0x6c9b6420, 0x346ba: 0x6c9b6620, 0x346bb: 0x6c9b6820, - 0x346bc: 0x6cc74a20, 0x346bd: 0x6cc74c20, 0x346be: 0x6cc74e20, 0x346bf: 0x6cc75020, - // Block 0xd1b, offset 0x346c0 - 0x346c0: 0x6cc75220, 0x346c1: 0x6cc75420, 0x346c2: 0x6cc75620, 0x346c3: 0x6cc75820, - 0x346c4: 0x6cc75a20, 0x346c5: 0x6cc75c20, 0x346c6: 0x6cc75e20, 0x346c7: 0x6cc76020, - 0x346c8: 0x6cf5be20, 0x346c9: 0x6cf5c020, 0x346ca: 0x6cf5c220, 0x346cb: 0x6cf5c420, - 0x346cc: 0x6cf5c620, 0x346cd: 0x6cf5c820, 0x346ce: 0x6d256820, 0x346cf: 0x6d256a20, - 0x346d0: 0x6d256c20, 0x346d1: 0x6d256e20, 0x346d2: 0x6d257020, 0x346d3: 0x6d257220, - 0x346d4: 0x6d52e820, 0x346d5: 0x6d52ea20, 0x346d6: 0x6d52ec20, 0x346d7: 0x6d7e2020, - 0x346d8: 0x6d7e2220, 0x346d9: 0x6d7e2420, 0x346da: 0x6d7e2620, 0x346db: 0x6d7e2820, - 0x346dc: 0x6d7e2a20, 0x346dd: 0x6da55c20, 0x346de: 0x6dc6ee20, 0x346df: 0x6dc6f020, - 0x346e0: 0x6dc6f220, 0x346e1: 0x6dc6f420, 0x346e2: 0x6dc6f620, 0x346e3: 0x6dc6f820, - 0x346e4: 0x6de37e20, 0x346e5: 0x6dfada20, 0x346e6: 0x6e0e4420, 0x346e7: 0x6e1d9620, - 0x346e8: 0x6e1d9820, 0x346e9: 0x6e292c20, 0x346ea: 0x6e324820, 0x346eb: 0x6e38a420, - 0x346ec: 0x6e3d2e20, 0x346ed: 0x6c124a20, 0x346ee: 0x6c214c20, 0x346ef: 0x6c214e20, - 0x346f0: 0x6c50ae20, 0x346f1: 0x6c72ea20, 0x346f2: 0x6c72ec20, 0x346f3: 0x6c72ee20, - 0x346f4: 0x6cc76a20, 0x346f5: 0x6cc76c20, 0x346f6: 0x6cf5d020, 0x346f7: 0x6cf5d220, - 0x346f8: 0x6cf5d420, 0x346f9: 0x6d52f220, 0x346fa: 0x6d7e3020, 0x346fb: 0x6c095820, - 0x346fc: 0x6c095a20, 0x346fd: 0x6c095c20, 0x346fe: 0x6c126020, 0x346ff: 0x6c126220, - // Block 0xd1c, offset 0x34700 - 0x34700: 0x6c126420, 0x34701: 0x6c126620, 0x34702: 0x6c126820, 0x34703: 0x6c126a20, - 0x34704: 0x6c216e20, 0x34705: 0x6c126c20, 0x34706: 0x6c217020, 0x34707: 0x6c217220, - 0x34708: 0x6c217420, 0x34709: 0x6c217620, 0x3470a: 0x6c217820, 0x3470b: 0x6c217a20, - 0x3470c: 0x6c217c20, 0x3470d: 0x6c217e20, 0x3470e: 0x6c218020, 0x3470f: 0x6c218220, - 0x34710: 0x6c218420, 0x34711: 0x6c218620, 0x34712: 0x6c218820, 0x34713: 0x6c218a20, - 0x34714: 0x6c218c20, 0x34715: 0x6c218e20, 0x34716: 0x6c219020, 0x34717: 0x6c219220, - 0x34718: 0x6c219420, 0x34719: 0x6c219620, 0x3471a: 0x6c35f820, 0x3471b: 0x6c35fa20, - 0x3471c: 0x6c35fc20, 0x3471d: 0x6c35fe20, 0x3471e: 0x6c360020, 0x3471f: 0x6c360220, - 0x34720: 0x6c360420, 0x34721: 0x6c360620, 0x34722: 0x6c360820, 0x34723: 0x6c360a20, - 0x34724: 0x6c360c20, 0x34725: 0x6c360e20, 0x34726: 0x6c361020, 0x34727: 0x6c361220, - 0x34728: 0x6c361420, 0x34729: 0x6c361620, 0x3472a: 0x6c361820, 0x3472b: 0x6c361a20, - 0x3472c: 0x6c361c20, 0x3472d: 0x6c361e20, 0x3472e: 0x6c362020, 0x3472f: 0x6c362220, - 0x34730: 0x6c362420, 0x34731: 0x6c362620, 0x34732: 0x6c362820, 0x34733: 0x6c362a20, - 0x34734: 0x6c362c20, 0x34735: 0x6c362e20, 0x34736: 0x6c363020, 0x34737: 0x6c511020, - 0x34738: 0x6c511220, 0x34739: 0x6c511420, 0x3473a: 0x6c511620, 0x3473b: 0x6c511820, - 0x3473c: 0x6c511a20, 0x3473d: 0x6c511c20, 0x3473e: 0x6c511e20, 0x3473f: 0x6c512020, - // Block 0xd1d, offset 0x34740 - 0x34740: 0x6c512220, 0x34741: 0x6c512420, 0x34742: 0x6c512620, 0x34743: 0x6c512820, - 0x34744: 0x6c512a20, 0x34745: 0x6c512c20, 0x34746: 0x6c512e20, 0x34747: 0x6c513020, - 0x34748: 0x6c513220, 0x34749: 0x6c515e20, 0x3474a: 0x6c513420, 0x3474b: 0x6c513620, - 0x3474c: 0x6c513820, 0x3474d: 0x6c513a20, 0x3474e: 0x6c513c20, 0x3474f: 0x6c513e20, - 0x34750: 0x6c514020, 0x34751: 0x6c514220, 0x34752: 0x6c733220, 0x34753: 0x6c733420, - 0x34754: 0x6c733620, 0x34755: 0x6c733820, 0x34756: 0x6c733a20, 0x34757: 0x6c733c20, - 0x34758: 0x6c733e20, 0x34759: 0x6c734020, 0x3475a: 0x6c734220, 0x3475b: 0x6c734420, - 0x3475c: 0x6c734620, 0x3475d: 0x6c734820, 0x3475e: 0x6c734a20, 0x3475f: 0x6c734c20, - 0x34760: 0x6c734e20, 0x34761: 0x6c735020, 0x34762: 0x6c735220, 0x34763: 0x6c735420, - 0x34764: 0x6c735620, 0x34765: 0x6c735820, 0x34766: 0x6c735a20, 0x34767: 0x6c735c20, - 0x34768: 0x6c735e20, 0x34769: 0x6c736020, 0x3476a: 0x6c736220, 0x3476b: 0x6c736420, - 0x3476c: 0x6c736620, 0x3476d: 0x6c736820, 0x3476e: 0x6c736a20, 0x3476f: 0x6c736c20, - 0x34770: 0x6c736e20, 0x34771: 0x6c737020, 0x34772: 0x6c9ba220, 0x34773: 0x6c9ba420, - 0x34774: 0x6c9ba620, 0x34775: 0x6c9ba820, 0x34776: 0x6c9baa20, 0x34777: 0x6c9bac20, - 0x34778: 0x6c9bae20, 0x34779: 0x6c9bb020, 0x3477a: 0x6c9bb220, 0x3477b: 0x6c9bb420, - 0x3477c: 0x6c9bb620, 0x3477d: 0x6c9bb820, 0x3477e: 0x6c9bba20, 0x3477f: 0x6c9bbc20, - // Block 0xd1e, offset 0x34780 - 0x34780: 0x6c9bbe20, 0x34781: 0x6c9bc020, 0x34782: 0x6c9bc220, 0x34783: 0x6c9bc420, - 0x34784: 0x6c9bc620, 0x34785: 0x6c9bc820, 0x34786: 0x6c9bca20, 0x34787: 0x6c9bcc20, - 0x34788: 0x6c9bce20, 0x34789: 0x6c9bd020, 0x3478a: 0x6c9bd220, 0x3478b: 0x6c9bd420, - 0x3478c: 0x6c9bd620, 0x3478d: 0x6c9bd820, 0x3478e: 0x6c9bda20, 0x3478f: 0x6c9bdc20, - 0x34790: 0x6c9bde20, 0x34791: 0x6c9be020, 0x34792: 0x6c9be220, 0x34793: 0x6c9be420, - 0x34794: 0x6c9be620, 0x34795: 0x6c9be820, 0x34796: 0x6c9bea20, 0x34797: 0x6c9bec20, - 0x34798: 0x6c9bee20, 0x34799: 0x6c9bf020, 0x3479a: 0x6c9bf220, 0x3479b: 0x6c9bf420, - 0x3479c: 0x6c9bf620, 0x3479d: 0x6c9bf820, 0x3479e: 0x6c9bfa20, 0x3479f: 0x6c9bfc20, - 0x347a0: 0x6c9bfe20, 0x347a1: 0x6c9c0020, 0x347a2: 0x6cc7ba20, 0x347a3: 0x6cc7bc20, - 0x347a4: 0x6cc7be20, 0x347a5: 0x6cc7c020, 0x347a6: 0x6cc7c220, 0x347a7: 0x6cc7c420, - 0x347a8: 0x6cc7c620, 0x347a9: 0x6cc7c820, 0x347aa: 0x6cc7ca20, 0x347ab: 0x6cc7cc20, - 0x347ac: 0x6cc7ce20, 0x347ad: 0x6cc7d020, 0x347ae: 0x6cc7d220, 0x347af: 0x6cc7d420, - 0x347b0: 0x6cc7d620, 0x347b1: 0x6cc7d820, 0x347b2: 0x6cc7da20, 0x347b3: 0x6cc7dc20, - 0x347b4: 0x6cc7de20, 0x347b5: 0x6cc7e020, 0x347b6: 0x6cc7e220, 0x347b7: 0x6cc7e420, - 0x347b8: 0x6cc7e620, 0x347b9: 0x6cc7e820, 0x347ba: 0x6cc7ea20, 0x347bb: 0x6cc7ec20, - 0x347bc: 0x6cc7ee20, 0x347bd: 0x6cc7f020, 0x347be: 0x6cc7f220, 0x347bf: 0x6cc7f420, - // Block 0xd1f, offset 0x347c0 - 0x347c0: 0x6cc7f620, 0x347c1: 0x6cc7f820, 0x347c2: 0x6cc7fa20, 0x347c3: 0x6cc7fc20, - 0x347c4: 0x6cc7fe20, 0x347c5: 0x6cc80020, 0x347c6: 0x6cc80220, 0x347c7: 0x6cc80420, - 0x347c8: 0x6cc80620, 0x347c9: 0x6cc80820, 0x347ca: 0x6cc80a20, 0x347cb: 0x6cc80c20, - 0x347cc: 0x6cc80e20, 0x347cd: 0x6cc81020, 0x347ce: 0x6cc81220, 0x347cf: 0x6cc81420, - 0x347d0: 0x6cc81620, 0x347d1: 0x6cc81820, 0x347d2: 0x6cc81a20, 0x347d3: 0x6cc81c20, - 0x347d4: 0x6cc81e20, 0x347d5: 0x6cc82020, 0x347d6: 0x6cc82220, 0x347d7: 0x6cc82420, - 0x347d8: 0x6cc82620, 0x347d9: 0x6cc82820, 0x347da: 0x6cc82a20, 0x347db: 0x6cc82c20, - 0x347dc: 0x6cc82e20, 0x347dd: 0x6cc83020, 0x347de: 0x6cc83220, 0x347df: 0x6cc83420, - 0x347e0: 0x6cc83620, 0x347e1: 0x6cc83820, 0x347e2: 0x6cc83a20, 0x347e3: 0x6cc83c20, - 0x347e4: 0x6cf61a20, 0x347e5: 0x6cf61c20, 0x347e6: 0x6cf61e20, 0x347e7: 0x6cf62020, - 0x347e8: 0x6cf62220, 0x347e9: 0x6cf62420, 0x347ea: 0x6cf62620, 0x347eb: 0x6cf62820, - 0x347ec: 0x6cf62a20, 0x347ed: 0x6cf62c20, 0x347ee: 0x6cf62e20, 0x347ef: 0x6cf63020, - 0x347f0: 0x6cf63220, 0x347f1: 0x6cf63420, 0x347f2: 0x6cf63620, 0x347f3: 0x6cf63820, - 0x347f4: 0x6cf63a20, 0x347f5: 0x6cf63c20, 0x347f6: 0x6cf63e20, 0x347f7: 0x6cf64020, - 0x347f8: 0x6cf64220, 0x347f9: 0x6cf64420, 0x347fa: 0x6cf64620, 0x347fb: 0x6cf64820, - 0x347fc: 0x6cf64a20, 0x347fd: 0x6cf64c20, 0x347fe: 0x6cf64e20, 0x347ff: 0x6cf65020, - // Block 0xd20, offset 0x34800 - 0x34800: 0x6cf65220, 0x34801: 0x6cf65420, 0x34802: 0x6cf65620, 0x34803: 0x6cf65820, - 0x34804: 0x6cf65a20, 0x34805: 0x6cf65c20, 0x34806: 0x6cf65e20, 0x34807: 0x6cf66020, - 0x34808: 0x6cf66220, 0x34809: 0x6cf66420, 0x3480a: 0x6cf66620, 0x3480b: 0x6cf66820, - 0x3480c: 0x6cf66a20, 0x3480d: 0x6cf66c20, 0x3480e: 0x6cf66e20, 0x3480f: 0x6cf67020, - 0x34810: 0x6cf67220, 0x34811: 0x6cf67420, 0x34812: 0x6d259c20, 0x34813: 0x6d259e20, - 0x34814: 0x6d25a020, 0x34815: 0x6d25a220, 0x34816: 0x6d25a420, 0x34817: 0x6d25a620, - 0x34818: 0x6d25a820, 0x34819: 0x6d25aa20, 0x3481a: 0x6d25ac20, 0x3481b: 0x6d25ae20, - 0x3481c: 0x6d25b020, 0x3481d: 0x6d25b220, 0x3481e: 0x6d25b420, 0x3481f: 0x6d25b620, - 0x34820: 0x6d25b820, 0x34821: 0x6cf1ac20, 0x34822: 0x6d25ba20, 0x34823: 0x6d25bc20, - 0x34824: 0x6d25be20, 0x34825: 0x6d25c020, 0x34826: 0x6d25c220, 0x34827: 0x6d25c420, - 0x34828: 0x6d25c620, 0x34829: 0x6d25c820, 0x3482a: 0x6d25ca20, 0x3482b: 0x6d25cc20, - 0x3482c: 0x6d25ce20, 0x3482d: 0x6d25d020, 0x3482e: 0x6d25d220, 0x3482f: 0x6d25d420, - 0x34830: 0x6d25d620, 0x34831: 0x6d25d820, 0x34832: 0x6d25da20, 0x34833: 0x6d25dc20, - 0x34834: 0x6d25de20, 0x34835: 0x6d25e020, 0x34836: 0x6d25e220, 0x34837: 0x6d25e420, - 0x34838: 0x6d25e620, 0x34839: 0x6d25e820, 0x3483a: 0x6d25ea20, 0x3483b: 0x6d531e20, - 0x3483c: 0x6d532020, 0x3483d: 0x6d532220, 0x3483e: 0x6d532420, 0x3483f: 0x6d532620, - // Block 0xd21, offset 0x34840 - 0x34840: 0x6d532820, 0x34841: 0x6d532a20, 0x34842: 0x6d532c20, 0x34843: 0x6d532e20, - 0x34844: 0x6d533020, 0x34845: 0x6d533220, 0x34846: 0x6d533420, 0x34847: 0x6d533620, - 0x34848: 0x6d533820, 0x34849: 0x6d7e7020, 0x3484a: 0x6d533a20, 0x3484b: 0x6d533c20, - 0x3484c: 0x6d533e20, 0x3484d: 0x6d534020, 0x3484e: 0x6d534220, 0x3484f: 0x6d534420, - 0x34850: 0x6d534620, 0x34851: 0x6d534820, 0x34852: 0x6d4d3220, 0x34853: 0x6d534a20, - 0x34854: 0x6d534c20, 0x34855: 0x6d534e20, 0x34856: 0x6d535020, 0x34857: 0x6d535220, - 0x34858: 0x6d535420, 0x34859: 0x6d535620, 0x3485a: 0x6d535820, 0x3485b: 0x6d535a20, - 0x3485c: 0x6d535c20, 0x3485d: 0x6d535e20, 0x3485e: 0x6d7e7220, 0x3485f: 0x6d7e7420, - 0x34860: 0x6d7e7620, 0x34861: 0x6d7e7820, 0x34862: 0x6d7e7a20, 0x34863: 0x6d7e7c20, - 0x34864: 0x6d7e7e20, 0x34865: 0x6d7e8020, 0x34866: 0x6d7e8220, 0x34867: 0x6d7e8420, - 0x34868: 0x6d7e8620, 0x34869: 0x6d7e8820, 0x3486a: 0x6d7e8a20, 0x3486b: 0x6d7e8c20, - 0x3486c: 0x6d7e8e20, 0x3486d: 0x6d7e9020, 0x3486e: 0x6d7e9220, 0x3486f: 0x6d7e9420, - 0x34870: 0x6d7e9620, 0x34871: 0x6d7e9820, 0x34872: 0x6d7e9a20, 0x34873: 0x6d7e9c20, - 0x34874: 0x6d7e9e20, 0x34875: 0x6d7ea020, 0x34876: 0x6d7ea220, 0x34877: 0x6d7ea420, - 0x34878: 0x6d7ea620, 0x34879: 0x6d7ea820, 0x3487a: 0x6d7eaa20, 0x3487b: 0x6d7eac20, - 0x3487c: 0x6d7eae20, 0x3487d: 0x6d7eb020, 0x3487e: 0x6d7eb220, 0x3487f: 0x6d7eb420, - // Block 0xd22, offset 0x34880 - 0x34880: 0x6d7eb620, 0x34881: 0x6d7eb820, 0x34882: 0x6d7eba20, 0x34883: 0x6d7ebc20, - 0x34884: 0x6d7ebe20, 0x34885: 0x6d7ec020, 0x34886: 0x6d7ec220, 0x34887: 0x6d536020, - 0x34888: 0x6d7ec420, 0x34889: 0x6da57a20, 0x3488a: 0x6da57c20, 0x3488b: 0x6da57e20, - 0x3488c: 0x6da58020, 0x3488d: 0x6da58220, 0x3488e: 0x6da58420, 0x3488f: 0x6da58620, - 0x34890: 0x6da58820, 0x34891: 0x6da58a20, 0x34892: 0x6da58c20, 0x34893: 0x6da58e20, - 0x34894: 0x6da59020, 0x34895: 0x6da59220, 0x34896: 0x6da59420, 0x34897: 0x6da59620, - 0x34898: 0x6da59820, 0x34899: 0x6da59a20, 0x3489a: 0x6da59c20, 0x3489b: 0x6da59e20, - 0x3489c: 0x6da5a020, 0x3489d: 0x6da5a220, 0x3489e: 0x6dc70e20, 0x3489f: 0x6dc71020, - 0x348a0: 0x6dc71220, 0x348a1: 0x6dc71420, 0x348a2: 0x6dc71620, 0x348a3: 0x6dc71820, - 0x348a4: 0x6dc71a20, 0x348a5: 0x6dc71c20, 0x348a6: 0x6dc71e20, 0x348a7: 0x6dc72020, - 0x348a8: 0x6dc72220, 0x348a9: 0x6dc72420, 0x348aa: 0x6dc72620, 0x348ab: 0x6dc72820, - 0x348ac: 0x6dc72a20, 0x348ad: 0x6dc72c20, 0x348ae: 0x6dc72e20, 0x348af: 0x6dc73020, - 0x348b0: 0x6dc73220, 0x348b1: 0x6dc73420, 0x348b2: 0x6de39420, 0x348b3: 0x6de39620, - 0x348b4: 0x6de39820, 0x348b5: 0x6de39a20, 0x348b6: 0x6de39c20, 0x348b7: 0x6de39e20, - 0x348b8: 0x6de3a020, 0x348b9: 0x6de3a220, 0x348ba: 0x6de3a420, 0x348bb: 0x6de3a620, - 0x348bc: 0x6de3a820, 0x348bd: 0x6de3aa20, 0x348be: 0x6de3ac20, 0x348bf: 0x6dfaec20, - // Block 0xd23, offset 0x348c0 - 0x348c0: 0x6dfaee20, 0x348c1: 0x6dfaf020, 0x348c2: 0x6dfaf220, 0x348c3: 0x6dfaf420, - 0x348c4: 0x6dfaf620, 0x348c5: 0x6dfaf820, 0x348c6: 0x6dfafa20, 0x348c7: 0x6dfafc20, - 0x348c8: 0x6e0e4820, 0x348c9: 0x6e0e4a20, 0x348ca: 0x6e0e4c20, 0x348cb: 0x6e0e4e20, - 0x348cc: 0x6e0e5020, 0x348cd: 0x6e1d9e20, 0x348ce: 0x6e1da020, 0x348cf: 0x6e1da220, - 0x348d0: 0x6e1da420, 0x348d1: 0x6e1da620, 0x348d2: 0x6e1da820, 0x348d3: 0x6e1daa20, - 0x348d4: 0x6e1dac20, 0x348d5: 0x6e1dae20, 0x348d6: 0x6e293620, 0x348d7: 0x6e324e20, - 0x348d8: 0x6e325020, 0x348d9: 0x6e325220, 0x348da: 0x6e348820, 0x348db: 0x6e325420, - 0x348dc: 0x6e38aa20, 0x348dd: 0x6e38ac20, 0x348de: 0x6e40ba20, 0x348df: 0x6e42a220, - 0x348e0: 0x6e46e620, 0x348e1: 0x6c21a020, 0x348e2: 0x6c21a220, 0x348e3: 0x6c364220, - 0x348e4: 0x6c364420, 0x348e5: 0x6c364620, 0x348e6: 0x6c364820, 0x348e7: 0x6c516020, - 0x348e8: 0x6c516220, 0x348e9: 0x6c516420, 0x348ea: 0x6c516620, 0x348eb: 0x6c516820, - 0x348ec: 0x6c516a20, 0x348ed: 0x6c739420, 0x348ee: 0x6c739620, 0x348ef: 0x6c739820, - 0x348f0: 0x6c739a20, 0x348f1: 0x6c739c20, 0x348f2: 0x6c739e20, 0x348f3: 0x6c73a020, - 0x348f4: 0x6c73a220, 0x348f5: 0x6c73a420, 0x348f6: 0x6c73a620, 0x348f7: 0x6c9c0e20, - 0x348f8: 0x6c9c1020, 0x348f9: 0x6c9c1220, 0x348fa: 0x6c9c1420, 0x348fb: 0x6cc85220, - 0x348fc: 0x6cc85420, 0x348fd: 0x6cc85620, 0x348fe: 0x6cf68a20, 0x348ff: 0x6cf68c20, - // Block 0xd24, offset 0x34900 - 0x34900: 0x6cf68e20, 0x34901: 0x6cf69020, 0x34902: 0x6cf69220, 0x34903: 0x6d25fc20, - 0x34904: 0x6d25fe20, 0x34905: 0x6d260020, 0x34906: 0x6d537420, 0x34907: 0x6d537620, - 0x34908: 0x6d537820, 0x34909: 0x6d537a20, 0x3490a: 0x6d537c20, 0x3490b: 0x6d7ed820, - 0x3490c: 0x6d7eda20, 0x3490d: 0x6d7edc20, 0x3490e: 0x6d7ede20, 0x3490f: 0x6da5ac20, - 0x34910: 0x6da5ae20, 0x34911: 0x6dc73e20, 0x34912: 0x6dc74020, 0x34913: 0x6dc74220, - 0x34914: 0x6dc74420, 0x34915: 0x6dc74620, 0x34916: 0x6de3ae20, 0x34917: 0x6de3b020, - 0x34918: 0x6dfafe20, 0x34919: 0x6dfb0020, 0x3491a: 0x6e325820, 0x3491b: 0x6e42a420, - 0x3491c: 0x6e46c620, 0x3491d: 0x6c096020, 0x3491e: 0x6c127620, 0x3491f: 0x6c21a420, - 0x34920: 0x6c21a620, 0x34921: 0x6c21a820, 0x34922: 0x6c21aa20, 0x34923: 0x6c21ac20, - 0x34924: 0x6c365420, 0x34925: 0x6c517420, 0x34926: 0x6c517620, 0x34927: 0x6c517820, - 0x34928: 0x6c5dc820, 0x34929: 0x6c517a20, 0x3492a: 0x6c517c20, 0x3492b: 0x6c517e20, - 0x3492c: 0x6c518020, 0x3492d: 0x6c73b620, 0x3492e: 0x6c73b820, 0x3492f: 0x6c825c20, - 0x34930: 0x6c825e20, 0x34931: 0x6c9c2420, 0x34932: 0x6c9c2620, 0x34933: 0x6c9c2820, - 0x34934: 0x6c9c2a20, 0x34935: 0x6c9c2c20, 0x34936: 0x6c9c2e20, 0x34937: 0x6cc86220, - 0x34938: 0x6cc86420, 0x34939: 0x6cc86620, 0x3493a: 0x6cc86820, 0x3493b: 0x6cc86a20, - 0x3493c: 0x6cc86c20, 0x3493d: 0x6cc86e20, 0x3493e: 0x6cc87020, 0x3493f: 0x6cc87220, - // Block 0xd25, offset 0x34940 - 0x34940: 0x6cc87420, 0x34941: 0x6cc87620, 0x34942: 0x6cc87820, 0x34943: 0x6cc87a20, - 0x34944: 0x6cf69820, 0x34945: 0x6cf69a20, 0x34946: 0x6cf69c20, 0x34947: 0x6cf69e20, - 0x34948: 0x6cf6a020, 0x34949: 0x6cf6a220, 0x3494a: 0x6cf6a420, 0x3494b: 0x6cf6a620, - 0x3494c: 0x6cf6a820, 0x3494d: 0x6d260820, 0x3494e: 0x6d260a20, 0x3494f: 0x6d260c20, - 0x34950: 0x6d260e20, 0x34951: 0x6d261020, 0x34952: 0x6d538820, 0x34953: 0x6d538a20, - 0x34954: 0x6d538c20, 0x34955: 0x6d538e20, 0x34956: 0x6d539020, 0x34957: 0x6d539220, - 0x34958: 0x6d539420, 0x34959: 0x6d539620, 0x3495a: 0x6d7eec20, 0x3495b: 0x6d7eee20, - 0x3495c: 0x6da5b220, 0x3495d: 0x6d7ef020, 0x3495e: 0x6d7ef220, 0x3495f: 0x6d7ef420, - 0x34960: 0x6d7ef620, 0x34961: 0x6d7ef820, 0x34962: 0x6d7efa20, 0x34963: 0x6da5b420, - 0x34964: 0x6da5b620, 0x34965: 0x6da5b820, 0x34966: 0x6da5ba20, 0x34967: 0x6da5bc20, - 0x34968: 0x6da5be20, 0x34969: 0x6dc74a20, 0x3496a: 0x6dc74c20, 0x3496b: 0x6dc74e20, - 0x3496c: 0x6dc75020, 0x3496d: 0x6dc75220, 0x3496e: 0x6dfb0420, 0x3496f: 0x6dfb0620, - 0x34970: 0x6e1db020, 0x34971: 0x6e293820, 0x34972: 0x6e325a20, 0x34973: 0x6c04a220, - 0x34974: 0x6c04a420, 0x34975: 0x6c097020, 0x34976: 0x6c097220, 0x34977: 0x6c097420, - 0x34978: 0x6c12a220, 0x34979: 0x6c12a420, 0x3497a: 0x6c12a620, 0x3497b: 0x6c12a820, - 0x3497c: 0x6c12aa20, 0x3497d: 0x6c12ac20, 0x3497e: 0x6c12ae20, 0x3497f: 0x6c12b020, - // Block 0xd26, offset 0x34980 - 0x34980: 0x6c12b220, 0x34981: 0x6c220820, 0x34982: 0x6c220a20, 0x34983: 0x6c220c20, - 0x34984: 0x6c220e20, 0x34985: 0x6c221020, 0x34986: 0x6c221220, 0x34987: 0x6c221420, - 0x34988: 0x6c221620, 0x34989: 0x6c221820, 0x3498a: 0x6c221a20, 0x3498b: 0x6c221c20, - 0x3498c: 0x6c221e20, 0x3498d: 0x6c222020, 0x3498e: 0x6c222220, 0x3498f: 0x6c222420, - 0x34990: 0x6c222620, 0x34991: 0x6c222820, 0x34992: 0x6c222a20, 0x34993: 0x6c222c20, - 0x34994: 0x6c36f220, 0x34995: 0x6c36f420, 0x34996: 0x6c36f620, 0x34997: 0x6c36f820, - 0x34998: 0x6c36fa20, 0x34999: 0x6c36fc20, 0x3499a: 0x6c36fe20, 0x3499b: 0x6c370020, - 0x3499c: 0x6c370220, 0x3499d: 0x6c370420, 0x3499e: 0x6c370620, 0x3499f: 0x6c370820, - 0x349a0: 0x6c370a20, 0x349a1: 0x6c370c20, 0x349a2: 0x6c370e20, 0x349a3: 0x6c371020, - 0x349a4: 0x6c371220, 0x349a5: 0x6c371420, 0x349a6: 0x6c371620, 0x349a7: 0x6c371820, - 0x349a8: 0x6c371a20, 0x349a9: 0x6c371c20, 0x349aa: 0x6c371e20, 0x349ab: 0x6c372020, - 0x349ac: 0x6c372220, 0x349ad: 0x6c372420, 0x349ae: 0x6c372620, 0x349af: 0x6c372820, - 0x349b0: 0x6c372a20, 0x349b1: 0x6c372c20, 0x349b2: 0x6c372e20, 0x349b3: 0x6c373020, - 0x349b4: 0x6c373220, 0x349b5: 0x6c373420, 0x349b6: 0x6c373620, 0x349b7: 0x6c373820, - 0x349b8: 0x6c373a20, 0x349b9: 0x6c373c20, 0x349ba: 0x6c373e20, 0x349bb: 0x6c374020, - 0x349bc: 0x6c374220, 0x349bd: 0x6c374420, 0x349be: 0x6c374620, 0x349bf: 0x6c374820, - // Block 0xd27, offset 0x349c0 - 0x349c0: 0x6c374a20, 0x349c1: 0x6c374c20, 0x349c2: 0x6c374e20, 0x349c3: 0x6c375020, - 0x349c4: 0x6c375220, 0x349c5: 0x6c375420, 0x349c6: 0x6c375620, 0x349c7: 0x6c375820, - 0x349c8: 0x6c525420, 0x349c9: 0x6c525620, 0x349ca: 0x6c525820, 0x349cb: 0x6c525a20, - 0x349cc: 0x6c525c20, 0x349cd: 0x6c525e20, 0x349ce: 0x6c526020, 0x349cf: 0x6c526220, - 0x349d0: 0x6c526420, 0x349d1: 0x6c526620, 0x349d2: 0x6c526820, 0x349d3: 0x6c526a20, - 0x349d4: 0x6c526c20, 0x349d5: 0x6c526e20, 0x349d6: 0x6c527020, 0x349d7: 0x6c527220, - 0x349d8: 0x6c527420, 0x349d9: 0x6c527620, 0x349da: 0x6c527820, 0x349db: 0x6c527a20, - 0x349dc: 0x6c527c20, 0x349dd: 0x6c527e20, 0x349de: 0x6c528020, 0x349df: 0x6c528220, - 0x349e0: 0x6c528420, 0x349e1: 0x6c528620, 0x349e2: 0x6c528820, 0x349e3: 0x6c528a20, - 0x349e4: 0x6c528c20, 0x349e5: 0x6c528e20, 0x349e6: 0x6c529020, 0x349e7: 0x6c529220, - 0x349e8: 0x6c529420, 0x349e9: 0x6c529620, 0x349ea: 0x6c529820, 0x349eb: 0x6c529a20, - 0x349ec: 0x6c529c20, 0x349ed: 0x6c529e20, 0x349ee: 0x6c52a020, 0x349ef: 0x6c52a220, - 0x349f0: 0x6c52a420, 0x349f1: 0x6c52a620, 0x349f2: 0x6c52a820, 0x349f3: 0x6c52aa20, - 0x349f4: 0x6c52ac20, 0x349f5: 0x6c749820, 0x349f6: 0x6c749a20, 0x349f7: 0x6c749c20, - 0x349f8: 0x6c749e20, 0x349f9: 0x6c74a020, 0x349fa: 0x6c74a220, 0x349fb: 0x6c74a420, - 0x349fc: 0x6c74a620, 0x349fd: 0x6c74a820, 0x349fe: 0x6c74aa20, 0x349ff: 0x6c74ac20, - // Block 0xd28, offset 0x34a00 - 0x34a00: 0x6c74ae20, 0x34a01: 0x6c74b020, 0x34a02: 0x6c74b220, 0x34a03: 0x6c74b420, - 0x34a04: 0x6c74b620, 0x34a05: 0x6c74b820, 0x34a06: 0x6c74ba20, 0x34a07: 0x6c74bc20, - 0x34a08: 0x6c74be20, 0x34a09: 0x6c74c020, 0x34a0a: 0x6c74c220, 0x34a0b: 0x6c74c420, - 0x34a0c: 0x6c74c620, 0x34a0d: 0x6c74c820, 0x34a0e: 0x6c74ca20, 0x34a0f: 0x6c74cc20, - 0x34a10: 0x6c74ce20, 0x34a11: 0x6c74d020, 0x34a12: 0x6c74d220, 0x34a13: 0x6c74d420, - 0x34a14: 0x6c74d620, 0x34a15: 0x6c74d820, 0x34a16: 0x6c74da20, 0x34a17: 0x6c74dc20, - 0x34a18: 0x6c74de20, 0x34a19: 0x6c74e020, 0x34a1a: 0x6c74e220, 0x34a1b: 0x6c74e420, - 0x34a1c: 0x6c74e620, 0x34a1d: 0x6c74e820, 0x34a1e: 0x6c74ea20, 0x34a1f: 0x6c74ec20, - 0x34a20: 0x6c74ee20, 0x34a21: 0x6c74f020, 0x34a22: 0x6c74f220, 0x34a23: 0x6c74f420, - 0x34a24: 0x6c74f620, 0x34a25: 0x6c74f820, 0x34a26: 0x6c74fa20, 0x34a27: 0x6c6a4c20, - 0x34a28: 0x6c74fc20, 0x34a29: 0x6c74fe20, 0x34a2a: 0x6c750020, 0x34a2b: 0x6c750220, - 0x34a2c: 0x6c750420, 0x34a2d: 0x6c750620, 0x34a2e: 0x6c750820, 0x34a2f: 0x6c750a20, - 0x34a30: 0x6c750c20, 0x34a31: 0x6c750e20, 0x34a32: 0x6c751020, 0x34a33: 0x6c751220, - 0x34a34: 0x6c751420, 0x34a35: 0x6c751620, 0x34a36: 0x6c751820, 0x34a37: 0x6c751a20, - 0x34a38: 0x6c751c20, 0x34a39: 0x6c751e20, 0x34a3a: 0x6c752020, 0x34a3b: 0x6c752220, - 0x34a3c: 0x6c752420, 0x34a3d: 0x6c752620, 0x34a3e: 0x6c752820, 0x34a3f: 0x6c9d0220, - // Block 0xd29, offset 0x34a40 - 0x34a40: 0x6c9d0420, 0x34a41: 0x6c9d0620, 0x34a42: 0x6c9d0820, 0x34a43: 0x6c9d0a20, - 0x34a44: 0x6c9d0c20, 0x34a45: 0x6c9d0e20, 0x34a46: 0x6c9d1020, 0x34a47: 0x6c9d1220, - 0x34a48: 0x6c9d1420, 0x34a49: 0x6c9d1620, 0x34a4a: 0x6c9d1820, 0x34a4b: 0x6c9d1a20, - 0x34a4c: 0x6c9d1c20, 0x34a4d: 0x6c9d1e20, 0x34a4e: 0x6c9d2020, 0x34a4f: 0x6c9d2220, - 0x34a50: 0x6c9d2420, 0x34a51: 0x6c9d2620, 0x34a52: 0x6c9d2820, 0x34a53: 0x6c9d2a20, - 0x34a54: 0x6c9d2c20, 0x34a55: 0x6c9d2e20, 0x34a56: 0x6c9d3020, 0x34a57: 0x6c9d3220, - 0x34a58: 0x6c9d3420, 0x34a59: 0x6c9d3620, 0x34a5a: 0x6c9d3820, 0x34a5b: 0x6c9d3a20, - 0x34a5c: 0x6c9d3c20, 0x34a5d: 0x6c9d3e20, 0x34a5e: 0x6c9d4020, 0x34a5f: 0x6c9d4220, - 0x34a60: 0x6c9d4420, 0x34a61: 0x6c9d4620, 0x34a62: 0x6c9d4820, 0x34a63: 0x6c9d4a20, - 0x34a64: 0x6c9d4c20, 0x34a65: 0x6c9d4e20, 0x34a66: 0x6c9d5020, 0x34a67: 0x6c9d5220, - 0x34a68: 0x6c9d5420, 0x34a69: 0x6c9d5620, 0x34a6a: 0x6c9d5820, 0x34a6b: 0x6c9d5a20, - 0x34a6c: 0x6c9d5c20, 0x34a6d: 0x6c9d5e20, 0x34a6e: 0x6c9d6020, 0x34a6f: 0x6c9d6220, - 0x34a70: 0x6c9d6420, 0x34a71: 0x6c9d6620, 0x34a72: 0x6c9d6820, 0x34a73: 0x6c9d6a20, - 0x34a74: 0x6c9d6c20, 0x34a75: 0x6c9d6e20, 0x34a76: 0x6c9d7020, 0x34a77: 0x6c9d7220, - 0x34a78: 0x6c9d7420, 0x34a79: 0x6c9d7620, 0x34a7a: 0x6c9d7820, 0x34a7b: 0x6c9d7a20, - 0x34a7c: 0x6c9d7c20, 0x34a7d: 0x6c9d7e20, 0x34a7e: 0x6c9d8020, 0x34a7f: 0x6c9d8220, - // Block 0xd2a, offset 0x34a80 - 0x34a80: 0x6c9d8420, 0x34a81: 0x6cc98620, 0x34a82: 0x6cc98820, 0x34a83: 0x6cc98a20, - 0x34a84: 0x6cc98c20, 0x34a85: 0x6cc98e20, 0x34a86: 0x6cc99020, 0x34a87: 0x6cc99220, - 0x34a88: 0x6cc99420, 0x34a89: 0x6cc99620, 0x34a8a: 0x6cc99820, 0x34a8b: 0x6cc99a20, - 0x34a8c: 0x6cc99c20, 0x34a8d: 0x6cc99e20, 0x34a8e: 0x6cc9a020, 0x34a8f: 0x6cc9a220, - 0x34a90: 0x6cc9a420, 0x34a91: 0x6cc9a620, 0x34a92: 0x6cc9a820, 0x34a93: 0x6cc9aa20, - 0x34a94: 0x6cc9ac20, 0x34a95: 0x6cc9ae20, 0x34a96: 0x6cc9b020, 0x34a97: 0x6cc9b220, - 0x34a98: 0x6cc9b420, 0x34a99: 0x6cc9b620, 0x34a9a: 0x6cc9b820, 0x34a9b: 0x6cc9ba20, - 0x34a9c: 0x6cc9bc20, 0x34a9d: 0x6cc9be20, 0x34a9e: 0x6cc9c020, 0x34a9f: 0x6cc9c220, - 0x34aa0: 0x6cc9c420, 0x34aa1: 0x6cc9c620, 0x34aa2: 0x6cc9c820, 0x34aa3: 0x6cc9ca20, - 0x34aa4: 0x6cc9cc20, 0x34aa5: 0x6cc9ce20, 0x34aa6: 0x6cc9d020, 0x34aa7: 0x6cc9d220, - 0x34aa8: 0x6cc9d420, 0x34aa9: 0x6cc9d620, 0x34aaa: 0x6cc9d820, 0x34aab: 0x6cc9da20, - 0x34aac: 0x6cc9dc20, 0x34aad: 0x6cc9de20, 0x34aae: 0x6cc9e020, 0x34aaf: 0x6cc9e220, - 0x34ab0: 0x6cc9e420, 0x34ab1: 0x6cc9e620, 0x34ab2: 0x6cc9e820, 0x34ab3: 0x6cc9ea20, - 0x34ab4: 0x6cc9ec20, 0x34ab5: 0x6cc9ee20, 0x34ab6: 0x6cc9f020, 0x34ab7: 0x6cc9f220, - 0x34ab8: 0x6cc9f420, 0x34ab9: 0x6cc9f620, 0x34aba: 0x6cc9f820, 0x34abb: 0x6cc9fa20, - 0x34abc: 0x6cc9fc20, 0x34abd: 0x6cc9fe20, 0x34abe: 0x6cca0020, 0x34abf: 0x6cca0220, - // Block 0xd2b, offset 0x34ac0 - 0x34ac0: 0x6cca0420, 0x34ac1: 0x6cca0620, 0x34ac2: 0x6cca0820, 0x34ac3: 0x6cca0a20, - 0x34ac4: 0x6cca0c20, 0x34ac5: 0x6cca0e20, 0x34ac6: 0x6cca1020, 0x34ac7: 0x6cca1220, - 0x34ac8: 0x6cca1420, 0x34ac9: 0x6cca1620, 0x34aca: 0x6cca1820, 0x34acb: 0x6cca1a20, - 0x34acc: 0x6cca1c20, 0x34acd: 0x6cca1e20, 0x34ace: 0x6cca2020, 0x34acf: 0x6cca2220, - 0x34ad0: 0x6cca2420, 0x34ad1: 0x6cca2620, 0x34ad2: 0x6cca2820, 0x34ad3: 0x6cca2a20, - 0x34ad4: 0x6cca2c20, 0x34ad5: 0x6cca2e20, 0x34ad6: 0x6cca3020, 0x34ad7: 0x6cca3220, - 0x34ad8: 0x6cca3420, 0x34ad9: 0x6cca3620, 0x34ada: 0x6cca3820, 0x34adb: 0x6cca3a20, - 0x34adc: 0x6cca3c20, 0x34add: 0x6cca3e20, 0x34ade: 0x6cca4020, 0x34adf: 0x6cca4220, - 0x34ae0: 0x6cca4420, 0x34ae1: 0x6cca4620, 0x34ae2: 0x6cca4820, 0x34ae3: 0x6cca4a20, - 0x34ae4: 0x6cca4c20, 0x34ae5: 0x6cca4e20, 0x34ae6: 0x6cca5020, 0x34ae7: 0x6cca5220, - 0x34ae8: 0x6cca5420, 0x34ae9: 0x6cca5620, 0x34aea: 0x6cca5820, 0x34aeb: 0x6cca5a20, - 0x34aec: 0x6cca5c20, 0x34aed: 0x6cca5e20, 0x34aee: 0x6cca6020, 0x34aef: 0x6cca6220, - 0x34af0: 0x6cca6420, 0x34af1: 0x6cf79c20, 0x34af2: 0x6cf79e20, 0x34af3: 0x6cf7a020, - 0x34af4: 0x6cf7a220, 0x34af5: 0x6cf7a420, 0x34af6: 0x6cf7a620, 0x34af7: 0x6cf7a820, - 0x34af8: 0x6cf7aa20, 0x34af9: 0x6cf7ac20, 0x34afa: 0x6cf7ae20, 0x34afb: 0x6cf7b020, - 0x34afc: 0x6cf7b220, 0x34afd: 0x6cf7b420, 0x34afe: 0x6cf7b620, 0x34aff: 0x6cf7b820, - // Block 0xd2c, offset 0x34b00 - 0x34b00: 0x6cf7ba20, 0x34b01: 0x6cf7bc20, 0x34b02: 0x6cf7be20, 0x34b03: 0x6cf7c020, - 0x34b04: 0x6cf7c220, 0x34b05: 0x6cf7c420, 0x34b06: 0x6cf7c620, 0x34b07: 0x6cf7c820, - 0x34b08: 0x6cf7ca20, 0x34b09: 0x6cf7cc20, 0x34b0a: 0x6cf7ce20, 0x34b0b: 0x6cf7d020, - 0x34b0c: 0x6cf7d220, 0x34b0d: 0x6cf7d420, 0x34b0e: 0x6cf7d620, 0x34b0f: 0x6cf7d820, - 0x34b10: 0x6cf7da20, 0x34b11: 0x6cf7dc20, 0x34b12: 0x6cf7de20, 0x34b13: 0x6cf7e020, - 0x34b14: 0x6cf7e220, 0x34b15: 0x6cf7e420, 0x34b16: 0x6cf7e620, 0x34b17: 0x6cf7e820, - 0x34b18: 0x6cf7ea20, 0x34b19: 0x6cf7ec20, 0x34b1a: 0x6cf7ee20, 0x34b1b: 0x6cf7f020, - 0x34b1c: 0x6cf7f220, 0x34b1d: 0x6cf7f420, 0x34b1e: 0x6cf7f620, 0x34b1f: 0x6cf7f820, - 0x34b20: 0x6cf7fa20, 0x34b21: 0x6cf7fc20, 0x34b22: 0x6cf7fe20, 0x34b23: 0x6cf80020, - 0x34b24: 0x6d26fa20, 0x34b25: 0x6cf80220, 0x34b26: 0x6cf80420, 0x34b27: 0x6cf80620, - 0x34b28: 0x6cf80820, 0x34b29: 0x6cf80a20, 0x34b2a: 0x6cf80c20, 0x34b2b: 0x6cf80e20, - 0x34b2c: 0x6cf81020, 0x34b2d: 0x6cf81220, 0x34b2e: 0x6cf81420, 0x34b2f: 0x6cf81620, - 0x34b30: 0x6cf81820, 0x34b31: 0x6cf81a20, 0x34b32: 0x6cf81c20, 0x34b33: 0x6cf81e20, - 0x34b34: 0x6cf82020, 0x34b35: 0x6cf82220, 0x34b36: 0x6cf82420, 0x34b37: 0x6cf82620, - 0x34b38: 0x6cf82820, 0x34b39: 0x6cf82a20, 0x34b3a: 0x6cf82c20, 0x34b3b: 0x6cf82e20, - 0x34b3c: 0x6cf83020, 0x34b3d: 0x6cf83220, 0x34b3e: 0x6cf83420, 0x34b3f: 0x6cf83620, - // Block 0xd2d, offset 0x34b40 - 0x34b40: 0x6cf83820, 0x34b41: 0x6cf83a20, 0x34b42: 0x6cf83c20, 0x34b43: 0x6cf83e20, - 0x34b44: 0x6cf84020, 0x34b45: 0x6cf84220, 0x34b46: 0x6cf84420, 0x34b47: 0x6cf84620, - 0x34b48: 0x6cf84820, 0x34b49: 0x6cf84a20, 0x34b4a: 0x6cf84c20, 0x34b4b: 0x6cf84e20, - 0x34b4c: 0x6cf85020, 0x34b4d: 0x6cf85220, 0x34b4e: 0x6cf85420, 0x34b4f: 0x6cf85620, - 0x34b50: 0x6cf85820, 0x34b51: 0x6cf85a20, 0x34b52: 0x6cf85c20, 0x34b53: 0x6cf85e20, - 0x34b54: 0x6cf86020, 0x34b55: 0x6cf86220, 0x34b56: 0x6cf86420, 0x34b57: 0x6cf86620, - 0x34b58: 0x6cf86820, 0x34b59: 0x6cf86a20, 0x34b5a: 0x6cf86c20, 0x34b5b: 0x6cf86e20, - 0x34b5c: 0x6cf87020, 0x34b5d: 0x6cf87220, 0x34b5e: 0x6cf87420, 0x34b5f: 0x6cf87620, - 0x34b60: 0x6cf87820, 0x34b61: 0x6cf87a20, 0x34b62: 0x6cf87c20, 0x34b63: 0x6cf87e20, - 0x34b64: 0x6cf88020, 0x34b65: 0x6cf88220, 0x34b66: 0x6cf88420, 0x34b67: 0x6cf88620, - 0x34b68: 0x6cf88820, 0x34b69: 0x6cf88a20, 0x34b6a: 0x6d26fc20, 0x34b6b: 0x6d26fe20, - 0x34b6c: 0x6d270020, 0x34b6d: 0x6d270220, 0x34b6e: 0x6d270420, 0x34b6f: 0x6d270620, - 0x34b70: 0x6d270820, 0x34b71: 0x6d270a20, 0x34b72: 0x6d270c20, 0x34b73: 0x6d270e20, - 0x34b74: 0x6d271020, 0x34b75: 0x6d271220, 0x34b76: 0x6d271420, 0x34b77: 0x6d271620, - 0x34b78: 0x6d271820, 0x34b79: 0x6d271a20, 0x34b7a: 0x6d271c20, 0x34b7b: 0x6d271e20, - 0x34b7c: 0x6d272020, 0x34b7d: 0x6d272220, 0x34b7e: 0x6d272420, 0x34b7f: 0x6d272620, - // Block 0xd2e, offset 0x34b80 - 0x34b80: 0x6d272820, 0x34b81: 0x6d272a20, 0x34b82: 0x6d272c20, 0x34b83: 0x6d272e20, - 0x34b84: 0x6d273020, 0x34b85: 0x6d273220, 0x34b86: 0x6d273420, 0x34b87: 0x6d273620, - 0x34b88: 0x6d273820, 0x34b89: 0x6d273a20, 0x34b8a: 0x6d273c20, 0x34b8b: 0x6d273e20, - 0x34b8c: 0x6d274020, 0x34b8d: 0x6d274220, 0x34b8e: 0x6d274420, 0x34b8f: 0x6d274620, - 0x34b90: 0x6d274820, 0x34b91: 0x6d274a20, 0x34b92: 0x6d274c20, 0x34b93: 0x6d274e20, - 0x34b94: 0x6d275020, 0x34b95: 0x6d275220, 0x34b96: 0x6d275420, 0x34b97: 0x6d275620, - 0x34b98: 0x6d275820, 0x34b99: 0x6d275a20, 0x34b9a: 0x6d275c20, 0x34b9b: 0x6d275e20, - 0x34b9c: 0x6d276020, 0x34b9d: 0x6d276220, 0x34b9e: 0x6d276420, 0x34b9f: 0x6d276620, - 0x34ba0: 0x6d276820, 0x34ba1: 0x6d276a20, 0x34ba2: 0x6d276c20, 0x34ba3: 0x6d276e20, - 0x34ba4: 0x6d277020, 0x34ba5: 0x6d277220, 0x34ba6: 0x6d277420, 0x34ba7: 0x6d277620, - 0x34ba8: 0x6d277820, 0x34ba9: 0x6d277a20, 0x34baa: 0x6d277c20, 0x34bab: 0x6d277e20, - 0x34bac: 0x6d278020, 0x34bad: 0x6d278220, 0x34bae: 0x6d278420, 0x34baf: 0x6d278620, - 0x34bb0: 0x6d278820, 0x34bb1: 0x6d278a20, 0x34bb2: 0x6d278c20, 0x34bb3: 0x6d278e20, - 0x34bb4: 0x6d279020, 0x34bb5: 0x6d279220, 0x34bb6: 0x6d279420, 0x34bb7: 0x6d279620, - 0x34bb8: 0x6d279820, 0x34bb9: 0x6d279a20, 0x34bba: 0x6d279c20, 0x34bbb: 0x6d279e20, - 0x34bbc: 0x6d27a020, 0x34bbd: 0x6d27a220, 0x34bbe: 0x6d27a420, 0x34bbf: 0x6d27a620, - // Block 0xd2f, offset 0x34bc0 - 0x34bc0: 0x6d27a820, 0x34bc1: 0x6d27aa20, 0x34bc2: 0x6d27ac20, 0x34bc3: 0x6d27ae20, - 0x34bc4: 0x6d27b020, 0x34bc5: 0x6d27b220, 0x34bc6: 0x6d27b420, 0x34bc7: 0x6d27b620, - 0x34bc8: 0x6d27b820, 0x34bc9: 0x6d27ba20, 0x34bca: 0x6d27bc20, 0x34bcb: 0x6d27be20, - 0x34bcc: 0x6d27c020, 0x34bcd: 0x6d27c220, 0x34bce: 0x6d27c420, 0x34bcf: 0x6d27c620, - 0x34bd0: 0x6d27c820, 0x34bd1: 0x6d27ca20, 0x34bd2: 0x6d27cc20, 0x34bd3: 0x6d27ce20, - 0x34bd4: 0x6d27d020, 0x34bd5: 0x6d546220, 0x34bd6: 0x6d546420, 0x34bd7: 0x6d546620, - 0x34bd8: 0x6d546820, 0x34bd9: 0x6d546a20, 0x34bda: 0x6d546c20, 0x34bdb: 0x6d546e20, - 0x34bdc: 0x6d547020, 0x34bdd: 0x6d547220, 0x34bde: 0x6d547420, 0x34bdf: 0x6d547620, - 0x34be0: 0x6d547820, 0x34be1: 0x6d547a20, 0x34be2: 0x6d547c20, 0x34be3: 0x6d547e20, - 0x34be4: 0x6d548020, 0x34be5: 0x6d548220, 0x34be6: 0x6d548420, 0x34be7: 0x6d548620, - 0x34be8: 0x6d548820, 0x34be9: 0x6d548a20, 0x34bea: 0x6d548c20, 0x34beb: 0x6d548e20, - 0x34bec: 0x6d549020, 0x34bed: 0x6d549220, 0x34bee: 0x6d549420, 0x34bef: 0x6d549620, - 0x34bf0: 0x6d549820, 0x34bf1: 0x6d549a20, 0x34bf2: 0x6d549c20, 0x34bf3: 0x6d549e20, - 0x34bf4: 0x6d54a020, 0x34bf5: 0x6d54a220, 0x34bf6: 0x6d54a420, 0x34bf7: 0x6d54a620, - 0x34bf8: 0x6d54a820, 0x34bf9: 0x6d54aa20, 0x34bfa: 0x6d54ac20, 0x34bfb: 0x6d54ae20, - 0x34bfc: 0x6d54b020, 0x34bfd: 0x6d54b220, 0x34bfe: 0x6d54b420, 0x34bff: 0x6d54b620, - // Block 0xd30, offset 0x34c00 - 0x34c00: 0x6d54b820, 0x34c01: 0x6d54ba20, 0x34c02: 0x6d54bc20, 0x34c03: 0x6d54be20, - 0x34c04: 0x6d54c020, 0x34c05: 0x6d54c220, 0x34c06: 0x6d54c420, 0x34c07: 0x6d54c620, - 0x34c08: 0x6d54c820, 0x34c09: 0x6d54ca20, 0x34c0a: 0x6d54cc20, 0x34c0b: 0x6d54ce20, - 0x34c0c: 0x6d54d020, 0x34c0d: 0x6d54d220, 0x34c0e: 0x6d54d420, 0x34c0f: 0x6d54d620, - 0x34c10: 0x6d54d820, 0x34c11: 0x6d54da20, 0x34c12: 0x6d7fc220, 0x34c13: 0x6d54dc20, - 0x34c14: 0x6d54de20, 0x34c15: 0x6d54e020, 0x34c16: 0x6d54e220, 0x34c17: 0x6d54e420, - 0x34c18: 0x6d54e620, 0x34c19: 0x6d54e820, 0x34c1a: 0x6d54ea20, 0x34c1b: 0x6d54ec20, - 0x34c1c: 0x6d54ee20, 0x34c1d: 0x6d54f020, 0x34c1e: 0x6d54f220, 0x34c1f: 0x6d54f420, - 0x34c20: 0x6d54f620, 0x34c21: 0x6d54f820, 0x34c22: 0x6d54fa20, 0x34c23: 0x6d54fc20, - 0x34c24: 0x6d54fe20, 0x34c25: 0x6d550020, 0x34c26: 0x6d550220, 0x34c27: 0x6d550420, - 0x34c28: 0x6d550620, 0x34c29: 0x6d550820, 0x34c2a: 0x6d550a20, 0x34c2b: 0x6d550c20, - 0x34c2c: 0x6d550e20, 0x34c2d: 0x6d551020, 0x34c2e: 0x6d551220, 0x34c2f: 0x6d551420, - 0x34c30: 0x6d551620, 0x34c31: 0x6d551820, 0x34c32: 0x6d551a20, 0x34c33: 0x6d551c20, - 0x34c34: 0x6d551e20, 0x34c35: 0x6d552020, 0x34c36: 0x6d552220, 0x34c37: 0x6d552420, - 0x34c38: 0x6d552620, 0x34c39: 0x6d552820, 0x34c3a: 0x6d552a20, 0x34c3b: 0x6d7fc420, - 0x34c3c: 0x6d7fc620, 0x34c3d: 0x6d7fc820, 0x34c3e: 0x6d7fca20, 0x34c3f: 0x6d7fcc20, - // Block 0xd31, offset 0x34c40 - 0x34c40: 0x6d7fce20, 0x34c41: 0x6d7fd020, 0x34c42: 0x6d7fd220, 0x34c43: 0x6d7fd420, - 0x34c44: 0x6d7fd620, 0x34c45: 0x6d7fd820, 0x34c46: 0x6d7fda20, 0x34c47: 0x6d7fdc20, - 0x34c48: 0x6d7fde20, 0x34c49: 0x6d7fe020, 0x34c4a: 0x6d7fe220, 0x34c4b: 0x6d7fe420, - 0x34c4c: 0x6d7fe620, 0x34c4d: 0x6d7fe820, 0x34c4e: 0x6d7fea20, 0x34c4f: 0x6d7fec20, - 0x34c50: 0x6d7fee20, 0x34c51: 0x6d7ff020, 0x34c52: 0x6d7ff220, 0x34c53: 0x6d7ff420, - 0x34c54: 0x6d7ff620, 0x34c55: 0x6d7ff820, 0x34c56: 0x6d7ffa20, 0x34c57: 0x6d7ffc20, - 0x34c58: 0x6d7ffe20, 0x34c59: 0x6d800020, 0x34c5a: 0x6d800220, 0x34c5b: 0x6d800420, - 0x34c5c: 0x6d800620, 0x34c5d: 0x6d800820, 0x34c5e: 0x6d800a20, 0x34c5f: 0x6d800c20, - 0x34c60: 0x6d800e20, 0x34c61: 0x6d801020, 0x34c62: 0x6d801220, 0x34c63: 0x6d801420, - 0x34c64: 0x6d801620, 0x34c65: 0x6d801820, 0x34c66: 0x6d801a20, 0x34c67: 0x6d801c20, - 0x34c68: 0x6d801e20, 0x34c69: 0x6d802020, 0x34c6a: 0x6d802220, 0x34c6b: 0x6d802420, - 0x34c6c: 0x6d802620, 0x34c6d: 0x6d802820, 0x34c6e: 0x6d802a20, 0x34c6f: 0x6d802c20, - 0x34c70: 0x6d802e20, 0x34c71: 0x6d803020, 0x34c72: 0x6d803220, 0x34c73: 0x6d803420, - 0x34c74: 0x6d803620, 0x34c75: 0x6d803820, 0x34c76: 0x6d803a20, 0x34c77: 0x6d803c20, - 0x34c78: 0x6d803e20, 0x34c79: 0x6d804020, 0x34c7a: 0x6d804220, 0x34c7b: 0x6d804420, - 0x34c7c: 0x6d804620, 0x34c7d: 0x6d804820, 0x34c7e: 0x6d804a20, 0x34c7f: 0x6d804c20, - // Block 0xd32, offset 0x34c80 - 0x34c80: 0x6d804e20, 0x34c81: 0x6d805020, 0x34c82: 0x6d805220, 0x34c83: 0x6d805420, - 0x34c84: 0x6d805620, 0x34c85: 0x6d805820, 0x34c86: 0x6d805a20, 0x34c87: 0x6d805c20, - 0x34c88: 0x6d805e20, 0x34c89: 0x6d806020, 0x34c8a: 0x6d806220, 0x34c8b: 0x6d806420, - 0x34c8c: 0x6d806620, 0x34c8d: 0x6d806820, 0x34c8e: 0x6d806a20, 0x34c8f: 0x6d806c20, - 0x34c90: 0x6d806e20, 0x34c91: 0x6d807020, 0x34c92: 0x6d807220, 0x34c93: 0x6d807420, - 0x34c94: 0x6d807620, 0x34c95: 0x6d807820, 0x34c96: 0x6d807a20, 0x34c97: 0x6d807c20, - 0x34c98: 0x6d807e20, 0x34c99: 0x6d808020, 0x34c9a: 0x6d808220, 0x34c9b: 0x6d808420, - 0x34c9c: 0x6d808620, 0x34c9d: 0x6d808820, 0x34c9e: 0x6d808a20, 0x34c9f: 0x6d808c20, - 0x34ca0: 0x6d808e20, 0x34ca1: 0x6d809020, 0x34ca2: 0x6d809220, 0x34ca3: 0x6d809420, - 0x34ca4: 0x6d809620, 0x34ca5: 0x6d809820, 0x34ca6: 0x6d809a20, 0x34ca7: 0x6d809c20, - 0x34ca8: 0x6d809e20, 0x34ca9: 0x6d80a020, 0x34caa: 0x6d80a220, 0x34cab: 0x6d80a420, - 0x34cac: 0x6d80a620, 0x34cad: 0x6d80a820, 0x34cae: 0x6d80aa20, 0x34caf: 0x6d80ac20, - 0x34cb0: 0x6da63820, 0x34cb1: 0x6da63a20, 0x34cb2: 0x6da63c20, 0x34cb3: 0x6da63e20, - 0x34cb4: 0x6da64020, 0x34cb5: 0x6da64220, 0x34cb6: 0x6da64420, 0x34cb7: 0x6da64620, - 0x34cb8: 0x6da64820, 0x34cb9: 0x6da64a20, 0x34cba: 0x6da64c20, 0x34cbb: 0x6da64e20, - 0x34cbc: 0x6da65020, 0x34cbd: 0x6da65220, 0x34cbe: 0x6da65420, 0x34cbf: 0x6da65620, - // Block 0xd33, offset 0x34cc0 - 0x34cc0: 0x6da65820, 0x34cc1: 0x6da65a20, 0x34cc2: 0x6da65c20, 0x34cc3: 0x6da65e20, - 0x34cc4: 0x6da66020, 0x34cc5: 0x6da66220, 0x34cc6: 0x6da66420, 0x34cc7: 0x6da66620, - 0x34cc8: 0x6da66820, 0x34cc9: 0x6da66a20, 0x34cca: 0x6da66c20, 0x34ccb: 0x6da66e20, - 0x34ccc: 0x6da67020, 0x34ccd: 0x6da67220, 0x34cce: 0x6da67420, 0x34ccf: 0x6da67620, - 0x34cd0: 0x6da67820, 0x34cd1: 0x6da67a20, 0x34cd2: 0x6da67c20, 0x34cd3: 0x6da67e20, - 0x34cd4: 0x6da68020, 0x34cd5: 0x6da68220, 0x34cd6: 0x6da68420, 0x34cd7: 0x6da68620, - 0x34cd8: 0x6da68820, 0x34cd9: 0x6da68a20, 0x34cda: 0x6da68c20, 0x34cdb: 0x6da68e20, - 0x34cdc: 0x6da69020, 0x34cdd: 0x6da69220, 0x34cde: 0x6da69420, 0x34cdf: 0x6da69620, - 0x34ce0: 0x6da69820, 0x34ce1: 0x6da69a20, 0x34ce2: 0x6d883220, 0x34ce3: 0x6da69c20, - 0x34ce4: 0x6da69e20, 0x34ce5: 0x6da6a020, 0x34ce6: 0x6da6a220, 0x34ce7: 0x6da6a420, - 0x34ce8: 0x6da6a620, 0x34ce9: 0x6da6a820, 0x34cea: 0x6da6aa20, 0x34ceb: 0x6da6ac20, - 0x34cec: 0x6da6ae20, 0x34ced: 0x6da6b020, 0x34cee: 0x6da6b220, 0x34cef: 0x6da6b420, - 0x34cf0: 0x6da6b620, 0x34cf1: 0x6da6b820, 0x34cf2: 0x6da6ba20, 0x34cf3: 0x6da6bc20, - 0x34cf4: 0x6da6be20, 0x34cf5: 0x6da6c020, 0x34cf6: 0x6da6c220, 0x34cf7: 0x6da6c420, - 0x34cf8: 0x6da6c620, 0x34cf9: 0x6da6c820, 0x34cfa: 0x6da6ca20, 0x34cfb: 0x6da6cc20, - 0x34cfc: 0x6da6ce20, 0x34cfd: 0x6da6d020, 0x34cfe: 0x6da6d220, 0x34cff: 0x6da6d420, - // Block 0xd34, offset 0x34d00 - 0x34d00: 0x6da6d620, 0x34d01: 0x6dc7a220, 0x34d02: 0x6dc7a420, 0x34d03: 0x6dc7a620, - 0x34d04: 0x6dc7a820, 0x34d05: 0x6dc7aa20, 0x34d06: 0x6dc7ac20, 0x34d07: 0x6dc7ae20, - 0x34d08: 0x6dc7b020, 0x34d09: 0x6dc7b220, 0x34d0a: 0x6dc7b420, 0x34d0b: 0x6dc7b620, - 0x34d0c: 0x6dc7b820, 0x34d0d: 0x6dc7ba20, 0x34d0e: 0x6dc7bc20, 0x34d0f: 0x6dc7be20, - 0x34d10: 0x6dc7c020, 0x34d11: 0x6dc7c220, 0x34d12: 0x6dc7c420, 0x34d13: 0x6dc7c620, - 0x34d14: 0x6dc7c820, 0x34d15: 0x6dc7ca20, 0x34d16: 0x6dc7cc20, 0x34d17: 0x6dc7ce20, - 0x34d18: 0x6dc7d020, 0x34d19: 0x6de40020, 0x34d1a: 0x6dc7d220, 0x34d1b: 0x6dc7d420, - 0x34d1c: 0x6dc7d620, 0x34d1d: 0x6dc7d820, 0x34d1e: 0x6dc7da20, 0x34d1f: 0x6dc7dc20, - 0x34d20: 0x6dc7de20, 0x34d21: 0x6dc7e020, 0x34d22: 0x6dc7e220, 0x34d23: 0x6dc7e420, - 0x34d24: 0x6dc7e620, 0x34d25: 0x6dc7e820, 0x34d26: 0x6dc7ea20, 0x34d27: 0x6dc7ec20, - 0x34d28: 0x6dc7ee20, 0x34d29: 0x6dc7f020, 0x34d2a: 0x6dc7f220, 0x34d2b: 0x6dc7f420, - 0x34d2c: 0x6dc7f620, 0x34d2d: 0x6dc7f820, 0x34d2e: 0x6dc7fa20, 0x34d2f: 0x6dc7fc20, - 0x34d30: 0x6dc7fe20, 0x34d31: 0x6dc80020, 0x34d32: 0x6dc80220, 0x34d33: 0x6dc80420, - 0x34d34: 0x6dc80620, 0x34d35: 0x6dc80820, 0x34d36: 0x6dc80a20, 0x34d37: 0x6dc80c20, - 0x34d38: 0x6dc80e20, 0x34d39: 0x6dc81020, 0x34d3a: 0x6dc81220, 0x34d3b: 0x6dc81420, - 0x34d3c: 0x6dc81620, 0x34d3d: 0x6dc81820, 0x34d3e: 0x6dc81a20, 0x34d3f: 0x6dc81c20, - // Block 0xd35, offset 0x34d40 - 0x34d40: 0x6dc81e20, 0x34d41: 0x6dc82020, 0x34d42: 0x6dc82220, 0x34d43: 0x6dc82420, - 0x34d44: 0x6dc82620, 0x34d45: 0x6dc82820, 0x34d46: 0x6dc82a20, 0x34d47: 0x6dc82c20, - 0x34d48: 0x6dc82e20, 0x34d49: 0x6dc83020, 0x34d4a: 0x6dc83220, 0x34d4b: 0x6dc83420, - 0x34d4c: 0x6dc83620, 0x34d4d: 0x6dc83820, 0x34d4e: 0x6dc83a20, 0x34d4f: 0x6dcc7220, - 0x34d50: 0x6de40220, 0x34d51: 0x6de40420, 0x34d52: 0x6de40620, 0x34d53: 0x6de40820, - 0x34d54: 0x6de40a20, 0x34d55: 0x6de40c20, 0x34d56: 0x6de40e20, 0x34d57: 0x6de41020, - 0x34d58: 0x6de41220, 0x34d59: 0x6de41420, 0x34d5a: 0x6de41620, 0x34d5b: 0x6de41820, - 0x34d5c: 0x6de41a20, 0x34d5d: 0x6de41c20, 0x34d5e: 0x6de41e20, 0x34d5f: 0x6de42020, - 0x34d60: 0x6de42220, 0x34d61: 0x6de42420, 0x34d62: 0x6de42620, 0x34d63: 0x6de42820, - 0x34d64: 0x6de42a20, 0x34d65: 0x6de42c20, 0x34d66: 0x6de42e20, 0x34d67: 0x6de43020, - 0x34d68: 0x6de43220, 0x34d69: 0x6de43420, 0x34d6a: 0x6de43620, 0x34d6b: 0x6de43820, - 0x34d6c: 0x6de43a20, 0x34d6d: 0x6de43c20, 0x34d6e: 0x6de43e20, 0x34d6f: 0x6de44020, - 0x34d70: 0x6de44220, 0x34d71: 0x6de44420, 0x34d72: 0x6de44620, 0x34d73: 0x6de44820, - 0x34d74: 0x6de44a20, 0x34d75: 0x6de44c20, 0x34d76: 0x6de44e20, 0x34d77: 0x6de45020, - 0x34d78: 0x6de45220, 0x34d79: 0x6de45420, 0x34d7a: 0x6de45620, 0x34d7b: 0x6de45820, - 0x34d7c: 0x6de45a20, 0x34d7d: 0x6de45c20, 0x34d7e: 0x6de45e20, 0x34d7f: 0x6de46020, - // Block 0xd36, offset 0x34d80 - 0x34d80: 0x6de46220, 0x34d81: 0x6de46420, 0x34d82: 0x6de46620, 0x34d83: 0x6de46820, - 0x34d84: 0x6dfb3a20, 0x34d85: 0x6dfb3c20, 0x34d86: 0x6dfb3e20, 0x34d87: 0x6dfb4020, - 0x34d88: 0x6dfb4220, 0x34d89: 0x6dfb4420, 0x34d8a: 0x6dfb4620, 0x34d8b: 0x6dfb4820, - 0x34d8c: 0x6dfb4a20, 0x34d8d: 0x6dfb4c20, 0x34d8e: 0x6dfb4e20, 0x34d8f: 0x6dfb5020, - 0x34d90: 0x6dfb5220, 0x34d91: 0x6de46a20, 0x34d92: 0x6dfb5420, 0x34d93: 0x6dfb5620, - 0x34d94: 0x6dfb5820, 0x34d95: 0x6dfb5a20, 0x34d96: 0x6dfb5c20, 0x34d97: 0x6dfb5e20, - 0x34d98: 0x6dfb6020, 0x34d99: 0x6dfb6220, 0x34d9a: 0x6dfb6420, 0x34d9b: 0x6dfb6620, - 0x34d9c: 0x6dfb6820, 0x34d9d: 0x6dfb6a20, 0x34d9e: 0x6dfb6c20, 0x34d9f: 0x6dfb6e20, - 0x34da0: 0x6dfb7020, 0x34da1: 0x6dfb7220, 0x34da2: 0x6dfb7420, 0x34da3: 0x6dfb7620, - 0x34da4: 0x6dfb7820, 0x34da5: 0x6dfb7a20, 0x34da6: 0x6dfb7c20, 0x34da7: 0x6dfb7e20, - 0x34da8: 0x6dfb8020, 0x34da9: 0x6dfb8220, 0x34daa: 0x6dfb8420, 0x34dab: 0x6dfb8620, - 0x34dac: 0x6dfb8820, 0x34dad: 0x6dfb8a20, 0x34dae: 0x6dfb8c20, 0x34daf: 0x6e0e7e20, - 0x34db0: 0x6e0e8020, 0x34db1: 0x6e0e8220, 0x34db2: 0x6e0e8420, 0x34db3: 0x6e0e8620, - 0x34db4: 0x6e0e8820, 0x34db5: 0x6e0e8a20, 0x34db6: 0x6e0e8c20, 0x34db7: 0x6e0e8e20, - 0x34db8: 0x6e0e9020, 0x34db9: 0x6e0e9220, 0x34dba: 0x6e0e9420, 0x34dbb: 0x6e0e9620, - 0x34dbc: 0x6e0e9820, 0x34dbd: 0x6e0e9a20, 0x34dbe: 0x6e0e9c20, 0x34dbf: 0x6e0e9e20, - // Block 0xd37, offset 0x34dc0 - 0x34dc0: 0x6e0ea020, 0x34dc1: 0x6e0ea220, 0x34dc2: 0x6e1dc820, 0x34dc3: 0x6e0ea420, - 0x34dc4: 0x6e0ea620, 0x34dc5: 0x6e0ea820, 0x34dc6: 0x6e0eaa20, 0x34dc7: 0x6e0eac20, - 0x34dc8: 0x6e0eae20, 0x34dc9: 0x6e0eb020, 0x34dca: 0x6e0eb220, 0x34dcb: 0x6e0eb420, - 0x34dcc: 0x6e0eb620, 0x34dcd: 0x6e0eb820, 0x34dce: 0x6e0eba20, 0x34dcf: 0x6e0ebc20, - 0x34dd0: 0x6e0ebe20, 0x34dd1: 0x6e0ec020, 0x34dd2: 0x6e0ec220, 0x34dd3: 0x6e0ec420, - 0x34dd4: 0x6e0ec620, 0x34dd5: 0x6e0ec820, 0x34dd6: 0x6e0eca20, 0x34dd7: 0x6e0ecc20, - 0x34dd8: 0x6e0ece20, 0x34dd9: 0x6e1dca20, 0x34dda: 0x6e1dcc20, 0x34ddb: 0x6e1dce20, - 0x34ddc: 0x6e1dd020, 0x34ddd: 0x6e1dd220, 0x34dde: 0x6e1dd420, 0x34ddf: 0x6e1dd620, - 0x34de0: 0x6e1dd820, 0x34de1: 0x6e1dda20, 0x34de2: 0x6e1ddc20, 0x34de3: 0x6e1dde20, - 0x34de4: 0x6e1de020, 0x34de5: 0x6e1de220, 0x34de6: 0x6e1de420, 0x34de7: 0x6e1de620, - 0x34de8: 0x6e1de820, 0x34de9: 0x6e1dea20, 0x34dea: 0x6e1dec20, 0x34deb: 0x6e1dee20, - 0x34dec: 0x6e1df020, 0x34ded: 0x6e1df220, 0x34dee: 0x6e1df420, 0x34def: 0x6e1df620, - 0x34df0: 0x6e1df820, 0x34df1: 0x6e1dfa20, 0x34df2: 0x6e1dfc20, 0x34df3: 0x6e1dfe20, - 0x34df4: 0x6e1e0020, 0x34df5: 0x6e1e0220, 0x34df6: 0x6e1e0420, 0x34df7: 0x6e294a20, - 0x34df8: 0x6e294c20, 0x34df9: 0x6e294e20, 0x34dfa: 0x6e295020, 0x34dfb: 0x6e295220, - 0x34dfc: 0x6e295420, 0x34dfd: 0x6e295620, 0x34dfe: 0x6e295820, 0x34dff: 0x6e295a20, - // Block 0xd38, offset 0x34e00 - 0x34e00: 0x6e295c20, 0x34e01: 0x6e295e20, 0x34e02: 0x6e296020, 0x34e03: 0x6e296220, - 0x34e04: 0x6e296420, 0x34e05: 0x6e296620, 0x34e06: 0x6e296820, 0x34e07: 0x6e296a20, - 0x34e08: 0x6e296c20, 0x34e09: 0x6e296e20, 0x34e0a: 0x6e297020, 0x34e0b: 0x6e326420, - 0x34e0c: 0x6e326620, 0x34e0d: 0x6e326820, 0x34e0e: 0x6e326a20, 0x34e0f: 0x6e326c20, - 0x34e10: 0x6e326e20, 0x34e11: 0x6e327020, 0x34e12: 0x6e327220, 0x34e13: 0x6e327420, - 0x34e14: 0x6e327620, 0x34e15: 0x6e327820, 0x34e16: 0x6e327a20, 0x34e17: 0x6e327c20, - 0x34e18: 0x6e327e20, 0x34e19: 0x6e328020, 0x34e1a: 0x6e328220, 0x34e1b: 0x6e328420, - 0x34e1c: 0x6e328620, 0x34e1d: 0x6e328820, 0x34e1e: 0x6e38bc20, 0x34e1f: 0x6e38be20, - 0x34e20: 0x6e38c020, 0x34e21: 0x6e38c220, 0x34e22: 0x6e38c420, 0x34e23: 0x6e38c620, - 0x34e24: 0x6e38c820, 0x34e25: 0x6e38ca20, 0x34e26: 0x6e38cc20, 0x34e27: 0x6e38ce20, - 0x34e28: 0x6e38d020, 0x34e29: 0x6e3d3220, 0x34e2a: 0x6e3d3420, 0x34e2b: 0x6e3d3620, - 0x34e2c: 0x6e3d3820, 0x34e2d: 0x6e3d3a20, 0x34e2e: 0x6e3d3c20, 0x34e2f: 0x6e3d3e20, - 0x34e30: 0x6e3d4020, 0x34e31: 0x6e3d4220, 0x34e32: 0x6e404e20, 0x34e33: 0x6e401020, - 0x34e34: 0x6e405020, 0x34e35: 0x6e405220, 0x34e36: 0x6e42aa20, 0x34e37: 0x6e42ac20, - 0x34e38: 0x6e42ae20, 0x34e39: 0x6e443020, 0x34e3a: 0x6e451e20, 0x34e3b: 0x6e452020, - 0x34e3c: 0x6e45c220, 0x34e3d: 0x6e462c20, 0x34e3e: 0x6e462e20, 0x34e3f: 0x6e46b020, - // Block 0xd39, offset 0x34e40 - 0x34e40: 0x6c12b820, 0x34e41: 0x6c223e20, 0x34e42: 0x6c224020, 0x34e43: 0x6c224220, - 0x34e44: 0x6c224420, 0x34e45: 0x6c224620, 0x34e46: 0x6c224820, 0x34e47: 0x6c224a20, - 0x34e48: 0x6c224c20, 0x34e49: 0x6c377620, 0x34e4a: 0x6c377820, 0x34e4b: 0x6c377a20, - 0x34e4c: 0x6c377c20, 0x34e4d: 0x6c377e20, 0x34e4e: 0x6c378020, 0x34e4f: 0x6c378220, - 0x34e50: 0x6c378420, 0x34e51: 0x6c378620, 0x34e52: 0x6c378820, 0x34e53: 0x6c378a20, - 0x34e54: 0x6c378c20, 0x34e55: 0x6c378e20, 0x34e56: 0x6c379020, 0x34e57: 0x6c52d420, - 0x34e58: 0x6c52d620, 0x34e59: 0x6c52d820, 0x34e5a: 0x6c52da20, 0x34e5b: 0x6c52dc20, - 0x34e5c: 0x6c52de20, 0x34e5d: 0x6c52e020, 0x34e5e: 0x6c52e220, 0x34e5f: 0x6c52e420, - 0x34e60: 0x6c52e620, 0x34e61: 0x6c52e820, 0x34e62: 0x6c52ea20, 0x34e63: 0x6c52ec20, - 0x34e64: 0x6c52ee20, 0x34e65: 0x6c52f020, 0x34e66: 0x6c52f220, 0x34e67: 0x6c756020, - 0x34e68: 0x6c756220, 0x34e69: 0x6c756420, 0x34e6a: 0x6c756620, 0x34e6b: 0x6c756820, - 0x34e6c: 0x6c756a20, 0x34e6d: 0x6c756c20, 0x34e6e: 0x6c756e20, 0x34e6f: 0x6c757020, - 0x34e70: 0x6c757220, 0x34e71: 0x6c757420, 0x34e72: 0x6c757620, 0x34e73: 0x6c757820, - 0x34e74: 0x6c757a20, 0x34e75: 0x6c757c20, 0x34e76: 0x6c757e20, 0x34e77: 0x6c758020, - 0x34e78: 0x6c758220, 0x34e79: 0x6c758420, 0x34e7a: 0x6c9dba20, 0x34e7b: 0x6c9dbc20, - 0x34e7c: 0x6c9dbe20, 0x34e7d: 0x6c9dc020, 0x34e7e: 0x6c9dc220, 0x34e7f: 0x6c9dc420, - // Block 0xd3a, offset 0x34e80 - 0x34e80: 0x6c9dc620, 0x34e81: 0x6c9dc820, 0x34e82: 0x6c9dca20, 0x34e83: 0x6c9dcc20, - 0x34e84: 0x6c9dce20, 0x34e85: 0x6c9dd020, 0x34e86: 0x6c9dd220, 0x34e87: 0x6c9dd420, - 0x34e88: 0x6ccaa620, 0x34e89: 0x6ccaa820, 0x34e8a: 0x6ccaaa20, 0x34e8b: 0x6ccaac20, - 0x34e8c: 0x6ccaae20, 0x34e8d: 0x6ccab020, 0x34e8e: 0x6ccab220, 0x34e8f: 0x6ccab420, - 0x34e90: 0x6ccab620, 0x34e91: 0x6ccab820, 0x34e92: 0x6ccaba20, 0x34e93: 0x6ccabc20, - 0x34e94: 0x6ccabe20, 0x34e95: 0x6ccac020, 0x34e96: 0x6ccac220, 0x34e97: 0x6ccac420, - 0x34e98: 0x6ccac620, 0x34e99: 0x6ccac820, 0x34e9a: 0x6ccaca20, 0x34e9b: 0x6ccacc20, - 0x34e9c: 0x6ccace20, 0x34e9d: 0x6cf8da20, 0x34e9e: 0x6cf8dc20, 0x34e9f: 0x6cf8de20, - 0x34ea0: 0x6cf8e020, 0x34ea1: 0x6cf8e220, 0x34ea2: 0x6cf8e420, 0x34ea3: 0x6cf8e620, - 0x34ea4: 0x6cf8e820, 0x34ea5: 0x6cf8ea20, 0x34ea6: 0x6cf8ec20, 0x34ea7: 0x6cf8ee20, - 0x34ea8: 0x6cf8f020, 0x34ea9: 0x6cf8f220, 0x34eaa: 0x6cf8f420, 0x34eab: 0x6cf8f620, - 0x34eac: 0x6d0f4820, 0x34ead: 0x6cf8f820, 0x34eae: 0x6cf8fa20, 0x34eaf: 0x6cf8fc20, - 0x34eb0: 0x6cf8fe20, 0x34eb1: 0x6cf90020, 0x34eb2: 0x6d281220, 0x34eb3: 0x6d281420, - 0x34eb4: 0x6d281620, 0x34eb5: 0x6d281820, 0x34eb6: 0x6d281a20, 0x34eb7: 0x6d281c20, - 0x34eb8: 0x6d281e20, 0x34eb9: 0x6d282020, 0x34eba: 0x6d282220, 0x34ebb: 0x6d282420, - 0x34ebc: 0x6d282620, 0x34ebd: 0x6d282820, 0x34ebe: 0x6d282a20, 0x34ebf: 0x6d282c20, - // Block 0xd3b, offset 0x34ec0 - 0x34ec0: 0x6d282e20, 0x34ec1: 0x6d283020, 0x34ec2: 0x6d283220, 0x34ec3: 0x6d283420, - 0x34ec4: 0x6d283620, 0x34ec5: 0x6d283820, 0x34ec6: 0x6d283a20, 0x34ec7: 0x6d283c20, - 0x34ec8: 0x6d556220, 0x34ec9: 0x6d556420, 0x34eca: 0x6d556620, 0x34ecb: 0x6d556820, - 0x34ecc: 0x6d556a20, 0x34ecd: 0x6d556c20, 0x34ece: 0x6d556e20, 0x34ecf: 0x6d557020, - 0x34ed0: 0x6d557220, 0x34ed1: 0x6d557420, 0x34ed2: 0x6d557620, 0x34ed3: 0x6d557820, - 0x34ed4: 0x6d557a20, 0x34ed5: 0x6d557c20, 0x34ed6: 0x6d557e20, 0x34ed7: 0x6d558020, - 0x34ed8: 0x6d80e220, 0x34ed9: 0x6d80e420, 0x34eda: 0x6d80e620, 0x34edb: 0x6d80e820, - 0x34edc: 0x6d80ea20, 0x34edd: 0x6d80ec20, 0x34ede: 0x6d80ee20, 0x34edf: 0x6d80f020, - 0x34ee0: 0x6da70220, 0x34ee1: 0x6da70420, 0x34ee2: 0x6da70620, 0x34ee3: 0x6da70820, - 0x34ee4: 0x6da70a20, 0x34ee5: 0x6da70c20, 0x34ee6: 0x6da70e20, 0x34ee7: 0x6da71020, - 0x34ee8: 0x6dc85420, 0x34ee9: 0x6dc85620, 0x34eea: 0x6dc85820, 0x34eeb: 0x6dc85a20, - 0x34eec: 0x6de47e20, 0x34eed: 0x6de48020, 0x34eee: 0x6de48220, 0x34eef: 0x6de48420, - 0x34ef0: 0x6de48620, 0x34ef1: 0x6dfb9c20, 0x34ef2: 0x6dfb9e20, 0x34ef3: 0x6dfba020, - 0x34ef4: 0x6e0ed820, 0x34ef5: 0x6e0eda20, 0x34ef6: 0x6e1e1020, 0x34ef7: 0x6e0edc20, - 0x34ef8: 0x6e0ede20, 0x34ef9: 0x6e1e1220, 0x34efa: 0x6e1e1420, 0x34efb: 0x6e1e1620, - 0x34efc: 0x6e1e1820, 0x34efd: 0x6e297820, 0x34efe: 0x6e329020, 0x34eff: 0x6e38d820, - // Block 0xd3c, offset 0x34f00 - 0x34f00: 0x6e38da20, 0x34f01: 0x6e3d4620, 0x34f02: 0x6c04ac20, 0x34f03: 0x6c097820, - 0x34f04: 0x6c097a20, 0x34f05: 0x6c12be20, 0x34f06: 0x6c12c020, 0x34f07: 0x6c225420, - 0x34f08: 0x6c225620, 0x34f09: 0x6c379c20, 0x34f0a: 0x6c225820, 0x34f0b: 0x6c225a20, - 0x34f0c: 0x6c225c20, 0x34f0d: 0x6c379e20, 0x34f0e: 0x6c37a020, 0x34f0f: 0x6c37a220, - 0x34f10: 0x6c37a420, 0x34f11: 0x6c37a620, 0x34f12: 0x6c37a820, 0x34f13: 0x6c37aa20, - 0x34f14: 0x6c37ac20, 0x34f15: 0x6c37ae20, 0x34f16: 0x6c37b020, 0x34f17: 0x6c37b220, - 0x34f18: 0x6c37b420, 0x34f19: 0x6c37b620, 0x34f1a: 0x6c37b820, 0x34f1b: 0x6c37ba20, - 0x34f1c: 0x6c37bc20, 0x34f1d: 0x6c37be20, 0x34f1e: 0x6c37c020, 0x34f1f: 0x6c37c220, - 0x34f20: 0x6c37c420, 0x34f21: 0x6c37c620, 0x34f22: 0x6c530220, 0x34f23: 0x6c530420, - 0x34f24: 0x6c530620, 0x34f25: 0x6c2bd020, 0x34f26: 0x6c758c20, 0x34f27: 0x6c758e20, - 0x34f28: 0x6c759020, 0x34f29: 0x6c759220, 0x34f2a: 0x6c759420, 0x34f2b: 0x6c759620, - 0x34f2c: 0x6c759820, 0x34f2d: 0x6c759a20, 0x34f2e: 0x6c759c20, 0x34f2f: 0x6c759e20, - 0x34f30: 0x6c75a020, 0x34f31: 0x6c75a220, 0x34f32: 0x6c6f0e20, 0x34f33: 0x6c9dda20, - 0x34f34: 0x6c9ddc20, 0x34f35: 0x6c9dde20, 0x34f36: 0x6c9de020, 0x34f37: 0x6c9de220, - 0x34f38: 0x6c9de420, 0x34f39: 0x6ccada20, 0x34f3a: 0x6ccadc20, 0x34f3b: 0x6ccade20, - 0x34f3c: 0x6ccae020, 0x34f3d: 0x6ccae220, 0x34f3e: 0x6ccae420, 0x34f3f: 0x6ccae620, - // Block 0xd3d, offset 0x34f40 - 0x34f40: 0x6ccae820, 0x34f41: 0x6ccaea20, 0x34f42: 0x6ccaec20, 0x34f43: 0x6ccaee20, - 0x34f44: 0x6ccaf020, 0x34f45: 0x6ccaf220, 0x34f46: 0x6ccaf420, 0x34f47: 0x6cf90c20, - 0x34f48: 0x6cf90e20, 0x34f49: 0x6cf91020, 0x34f4a: 0x6cf91220, 0x34f4b: 0x6d75b820, - 0x34f4c: 0x6cf91420, 0x34f4d: 0x6cf91620, 0x34f4e: 0x6cf91820, 0x34f4f: 0x6cf1c020, - 0x34f50: 0x6d284620, 0x34f51: 0x6d284820, 0x34f52: 0x6d284a20, 0x34f53: 0x6d284c20, - 0x34f54: 0x6d558820, 0x34f55: 0x6d558a20, 0x34f56: 0x6d558c20, 0x34f57: 0x6d558e20, - 0x34f58: 0x6d559020, 0x34f59: 0x6d559220, 0x34f5a: 0x6d559420, 0x34f5b: 0x6d559620, - 0x34f5c: 0x6d80f420, 0x34f5d: 0x6d80f620, 0x34f5e: 0x6d80f820, 0x34f5f: 0x6d80fa20, - 0x34f60: 0x6d80fc20, 0x34f61: 0x6da71220, 0x34f62: 0x6da71420, 0x34f63: 0x6da71620, - 0x34f64: 0x6da71820, 0x34f65: 0x6da71a20, 0x34f66: 0x6dc86020, 0x34f67: 0x6dc86220, - 0x34f68: 0x6dc86420, 0x34f69: 0x6dc86620, 0x34f6a: 0x6dc86820, 0x34f6b: 0x6dc86a20, - 0x34f6c: 0x6de48820, 0x34f6d: 0x6de20820, 0x34f6e: 0x6e0ee020, 0x34f6f: 0x6e1e1a20, - 0x34f70: 0x6e1e1c20, 0x34f71: 0x6e297a20, 0x34f72: 0x6e297c20, 0x34f73: 0x6e329420, - 0x34f74: 0x6e329620, 0x34f75: 0x6c04b020, 0x34f76: 0x6c04b220, 0x34f77: 0x6c097e20, - 0x34f78: 0x6c12c620, 0x34f79: 0x6c12c820, 0x34f7a: 0x6c12ca20, 0x34f7b: 0x6c12cc20, - 0x34f7c: 0x6c12ce20, 0x34f7d: 0x6c12d020, 0x34f7e: 0x6c12d220, 0x34f7f: 0x6c226020, - // Block 0xd3e, offset 0x34f80 - 0x34f80: 0x6c226220, 0x34f81: 0x6c226420, 0x34f82: 0x6c226620, 0x34f83: 0x6c226820, - 0x34f84: 0x6c226a20, 0x34f85: 0x6c226c20, 0x34f86: 0x6c226e20, 0x34f87: 0x6c227020, - 0x34f88: 0x6c227220, 0x34f89: 0x6c37dc20, 0x34f8a: 0x6c37de20, 0x34f8b: 0x6c37e020, - 0x34f8c: 0x6c37e220, 0x34f8d: 0x6c37e420, 0x34f8e: 0x6c37e620, 0x34f8f: 0x6c37e820, - 0x34f90: 0x6c37ea20, 0x34f91: 0x6c37ec20, 0x34f92: 0x6c37ee20, 0x34f93: 0x6c37f020, - 0x34f94: 0x6c37f220, 0x34f95: 0x6c37f420, 0x34f96: 0x6c37f620, 0x34f97: 0x6c37f820, - 0x34f98: 0x6c37fa20, 0x34f99: 0x6c37fc20, 0x34f9a: 0x6c37fe20, 0x34f9b: 0x6c380020, - 0x34f9c: 0x6c380220, 0x34f9d: 0x6c531a20, 0x34f9e: 0x6c531c20, 0x34f9f: 0x6c531e20, - 0x34fa0: 0x6c532020, 0x34fa1: 0x6c532220, 0x34fa2: 0x6c532420, 0x34fa3: 0x6c532620, - 0x34fa4: 0x6c532820, 0x34fa5: 0x6c532a20, 0x34fa6: 0x6c532c20, 0x34fa7: 0x6c532e20, - 0x34fa8: 0x6c533020, 0x34fa9: 0x6c533220, 0x34faa: 0x6c533420, 0x34fab: 0x6c533620, - 0x34fac: 0x6c533820, 0x34fad: 0x6c533a20, 0x34fae: 0x6c533c20, 0x34faf: 0x6c533e20, - 0x34fb0: 0x6c534020, 0x34fb1: 0x6c534220, 0x34fb2: 0x6c75b220, 0x34fb3: 0x6c75b420, - 0x34fb4: 0x6c75b620, 0x34fb5: 0x6c75b820, 0x34fb6: 0x6c75ba20, 0x34fb7: 0x6c75bc20, - 0x34fb8: 0x6c75be20, 0x34fb9: 0x6c75c020, 0x34fba: 0x6c75c220, 0x34fbb: 0x6c75c420, - 0x34fbc: 0x6c75c620, 0x34fbd: 0x6c75c820, 0x34fbe: 0x6c75ca20, 0x34fbf: 0x6c75cc20, - // Block 0xd3f, offset 0x34fc0 - 0x34fc0: 0x6c75ce20, 0x34fc1: 0x6c75d020, 0x34fc2: 0x6c75d220, 0x34fc3: 0x6c75d420, - 0x34fc4: 0x6c75d620, 0x34fc5: 0x6c9dfc20, 0x34fc6: 0x6c9dfe20, 0x34fc7: 0x6c9e0020, - 0x34fc8: 0x6c9e0220, 0x34fc9: 0x6c9e0420, 0x34fca: 0x6c9e0620, 0x34fcb: 0x6c9e0820, - 0x34fcc: 0x6c9e0a20, 0x34fcd: 0x6c9e0c20, 0x34fce: 0x6c9e0e20, 0x34fcf: 0x6c9e1020, - 0x34fd0: 0x6c9e1220, 0x34fd1: 0x6c9e1420, 0x34fd2: 0x6c9e1620, 0x34fd3: 0x6c9e1820, - 0x34fd4: 0x6c9e1a20, 0x34fd5: 0x6c9e1c20, 0x34fd6: 0x6ccb1220, 0x34fd7: 0x6ccb1420, - 0x34fd8: 0x6ccb1620, 0x34fd9: 0x6ccb1820, 0x34fda: 0x6ccb1a20, 0x34fdb: 0x6ccb1c20, - 0x34fdc: 0x6ccb1e20, 0x34fdd: 0x6ccb2020, 0x34fde: 0x6ccb2220, 0x34fdf: 0x6ccb2420, - 0x34fe0: 0x6ccb2620, 0x34fe1: 0x6ccb2820, 0x34fe2: 0x6ccb2a20, 0x34fe3: 0x6ccb2c20, - 0x34fe4: 0x6ccb2e20, 0x34fe5: 0x6ccb3020, 0x34fe6: 0x6ccb3220, 0x34fe7: 0x6ccb3420, - 0x34fe8: 0x6ccb3620, 0x34fe9: 0x6ccb3820, 0x34fea: 0x6ccb3a20, 0x34feb: 0x6ccb3c20, - 0x34fec: 0x6ccb3e20, 0x34fed: 0x6ccb4020, 0x34fee: 0x6ccb4220, 0x34fef: 0x6ccb4420, - 0x34ff0: 0x6ccb4620, 0x34ff1: 0x6cf93020, 0x34ff2: 0x6cf93220, 0x34ff3: 0x6cf93420, - 0x34ff4: 0x6cf93620, 0x34ff5: 0x6cf93820, 0x34ff6: 0x6cf93a20, 0x34ff7: 0x6cf93c20, - 0x34ff8: 0x6cf93e20, 0x34ff9: 0x6cf94020, 0x34ffa: 0x6cf94220, 0x34ffb: 0x6cf94420, - 0x34ffc: 0x6cf94620, 0x34ffd: 0x6cf94820, 0x34ffe: 0x6cf94a20, 0x34fff: 0x6cf94c20, - // Block 0xd40, offset 0x35000 - 0x35000: 0x6cf94e20, 0x35001: 0x6cf95020, 0x35002: 0x6cf95220, 0x35003: 0x6cf95420, - 0x35004: 0x6d286220, 0x35005: 0x6d286420, 0x35006: 0x6d286620, 0x35007: 0x6d286820, - 0x35008: 0x6d286a20, 0x35009: 0x6d286c20, 0x3500a: 0x6d286e20, 0x3500b: 0x6d287020, - 0x3500c: 0x6d287220, 0x3500d: 0x6d55a820, 0x3500e: 0x6d55aa20, 0x3500f: 0x6d55ac20, - 0x35010: 0x6d55ae20, 0x35011: 0x6d55b020, 0x35012: 0x6d55b220, 0x35013: 0x6d55b420, - 0x35014: 0x6d55b620, 0x35015: 0x6d55b820, 0x35016: 0x6d55ba20, 0x35017: 0x6d55bc20, - 0x35018: 0x6d55be20, 0x35019: 0x6d55c020, 0x3501a: 0x6d55c220, 0x3501b: 0x6d55c420, - 0x3501c: 0x6d55c620, 0x3501d: 0x6d811220, 0x3501e: 0x6d811420, 0x3501f: 0x6d811620, - 0x35020: 0x6d811820, 0x35021: 0x6d811a20, 0x35022: 0x6d811c20, 0x35023: 0x6d811e20, - 0x35024: 0x6d812020, 0x35025: 0x6d812220, 0x35026: 0x6d812420, 0x35027: 0x6d812620, - 0x35028: 0x6da72620, 0x35029: 0x6da72820, 0x3502a: 0x6da72a20, 0x3502b: 0x6da72c20, - 0x3502c: 0x6da72e20, 0x3502d: 0x6da73020, 0x3502e: 0x6da73220, 0x3502f: 0x6dc86e20, - 0x35030: 0x6dc87020, 0x35031: 0x6dc87220, 0x35032: 0x6dc87420, 0x35033: 0x6dc87620, - 0x35034: 0x6dc87820, 0x35035: 0x6dc87a20, 0x35036: 0x6dc87c20, 0x35037: 0x6de48e20, - 0x35038: 0x6de49020, 0x35039: 0x6dfba820, 0x3503a: 0x6dfbaa20, 0x3503b: 0x6dfbac20, - 0x3503c: 0x6e0ee420, 0x3503d: 0x6e0ee620, 0x3503e: 0x6e1e1e20, 0x3503f: 0x6e298020, - // Block 0xd41, offset 0x35040 - 0x35040: 0x6e298220, 0x35041: 0x6e298420, 0x35042: 0x6c380820, 0x35043: 0x6c380a20, - 0x35044: 0x6c380c20, 0x35045: 0x6c534c20, 0x35046: 0x6c534e20, 0x35047: 0x6c535020, - 0x35048: 0x6c75e220, 0x35049: 0x6c75e420, 0x3504a: 0x6c75e620, 0x3504b: 0x6c9e2a20, - 0x3504c: 0x6c9e2c20, 0x3504d: 0x6c9e2e20, 0x3504e: 0x6c9e3020, 0x3504f: 0x6c9e3220, - 0x35050: 0x6c9e3420, 0x35051: 0x6c9e3620, 0x35052: 0x6c9e3820, 0x35053: 0x6c9e3a20, - 0x35054: 0x6c9e3c20, 0x35055: 0x6c9e3e20, 0x35056: 0x6c9e4020, 0x35057: 0x6c9e4220, - 0x35058: 0x6c9e4420, 0x35059: 0x6ccb5420, 0x3505a: 0x6ccb5620, 0x3505b: 0x6ccb5820, - 0x3505c: 0x6ccb5a20, 0x3505d: 0x6ccb5c20, 0x3505e: 0x6ccb5e20, 0x3505f: 0x6ccb6020, - 0x35060: 0x6cf96020, 0x35061: 0x6cf96220, 0x35062: 0x6cf96420, 0x35063: 0x6cf96620, - 0x35064: 0x6cf96820, 0x35065: 0x6cf96a20, 0x35066: 0x6cf96c20, 0x35067: 0x6cf96e20, - 0x35068: 0x6cf97020, 0x35069: 0x6cf97220, 0x3506a: 0x6cf97420, 0x3506b: 0x6cf97620, - 0x3506c: 0x6cf97820, 0x3506d: 0x6d017c20, 0x3506e: 0x6d287c20, 0x3506f: 0x6d287e20, - 0x35070: 0x6d288020, 0x35071: 0x6d288220, 0x35072: 0x6d288420, 0x35073: 0x6d288620, - 0x35074: 0x6d288820, 0x35075: 0x6d288a20, 0x35076: 0x6d55ce20, 0x35077: 0x6d55d020, - 0x35078: 0x6d55d220, 0x35079: 0x6d55d420, 0x3507a: 0x6d55d620, 0x3507b: 0x6d813220, - 0x3507c: 0x6d813420, 0x3507d: 0x6d813620, 0x3507e: 0x6d813820, 0x3507f: 0x6d813a20, - // Block 0xd42, offset 0x35080 - 0x35080: 0x6d813c20, 0x35081: 0x6d813e20, 0x35082: 0x6d814020, 0x35083: 0x6d814220, - 0x35084: 0x6d814420, 0x35085: 0x6d814620, 0x35086: 0x6d814820, 0x35087: 0x6d814a20, - 0x35088: 0x6d814c20, 0x35089: 0x6d814e20, 0x3508a: 0x6d815020, 0x3508b: 0x6d815220, - 0x3508c: 0x6da73820, 0x3508d: 0x6da73a20, 0x3508e: 0x6da73c20, 0x3508f: 0x6da73e20, - 0x35090: 0x6dc88020, 0x35091: 0x6dc88220, 0x35092: 0x6dc88420, 0x35093: 0x6dc88620, - 0x35094: 0x6dc88820, 0x35095: 0x6dc88a20, 0x35096: 0x6dc88c20, 0x35097: 0x6dc88e20, - 0x35098: 0x6de49220, 0x35099: 0x6de49420, 0x3509a: 0x6de49620, 0x3509b: 0x6de49820, - 0x3509c: 0x6de49a20, 0x3509d: 0x6de49c20, 0x3509e: 0x6dfbae20, 0x3509f: 0x6dfbb020, - 0x350a0: 0x6e0ee820, 0x350a1: 0x6e0eea20, 0x350a2: 0x6e298820, 0x350a3: 0x6e298a20, - 0x350a4: 0x6e298c20, 0x350a5: 0x6e298e20, 0x350a6: 0x6e329820, 0x350a7: 0x6e329a20, - 0x350a8: 0x6e329c20, 0x350a9: 0x6e38dc20, 0x350aa: 0x6e405620, 0x350ab: 0x6e405820, - 0x350ac: 0x6c04ba20, 0x350ad: 0x6c12d620, 0x350ae: 0x6c227a20, 0x350af: 0x6c381020, - 0x350b0: 0x6c381220, 0x350b1: 0x6c381420, 0x350b2: 0x6c381620, 0x350b3: 0x6c535420, - 0x350b4: 0x6c75ec20, 0x350b5: 0x6c9e4820, 0x350b6: 0x6c9e4a20, 0x350b7: 0x6c9e4c20, - 0x350b8: 0x6c9e4e20, 0x350b9: 0x6cf97e20, 0x350ba: 0x6d288c20, 0x350bb: 0x6d288e20, - 0x350bc: 0x6d289020, 0x350bd: 0x6d815420, 0x350be: 0x6d815620, 0x350bf: 0x6da74420, - // Block 0xd43, offset 0x350c0 - 0x350c0: 0x6de49e20, 0x350c1: 0x6e1e2020, 0x350c2: 0x6c227e20, 0x350c3: 0x6c228020, - 0x350c4: 0x6c381820, 0x350c5: 0x6c381a20, 0x350c6: 0x6c381c20, 0x350c7: 0x6c381e20, - 0x350c8: 0x6c75f020, 0x350c9: 0x6c75f220, 0x350ca: 0x6c75f420, 0x350cb: 0x6c9e5020, - 0x350cc: 0x6c9e5220, 0x350cd: 0x6cf98020, 0x350ce: 0x6d289420, 0x350cf: 0x6d289620, - 0x350d0: 0x6d289820, 0x350d1: 0x6d289a20, 0x350d2: 0x6d55dc20, 0x350d3: 0x6d815820, - 0x350d4: 0x6d815a20, 0x350d5: 0x6da74820, 0x350d6: 0x6de4a020, 0x350d7: 0x6dfbb220, - 0x350d8: 0x6dfbb420, 0x350d9: 0x6e1e2220, 0x350da: 0x6e405a20, 0x350db: 0x6c04c020, - 0x350dc: 0x6c12dc20, 0x350dd: 0x6c12de20, 0x350de: 0x6c12e020, 0x350df: 0x6c12e220, - 0x350e0: 0x6c12e420, 0x350e1: 0x6c228620, 0x350e2: 0x6c228820, 0x350e3: 0x6c228a20, - 0x350e4: 0x6c228c20, 0x350e5: 0x6c228e20, 0x350e6: 0x6c229020, 0x350e7: 0x6c229220, - 0x350e8: 0x6c229420, 0x350e9: 0x6c382e20, 0x350ea: 0x6c383020, 0x350eb: 0x6c383220, - 0x350ec: 0x6c383420, 0x350ed: 0x6c383620, 0x350ee: 0x6c383820, 0x350ef: 0x6c383a20, - 0x350f0: 0x6c383c20, 0x350f1: 0x6c383e20, 0x350f2: 0x6c384020, 0x350f3: 0x6c384220, - 0x350f4: 0x6c384420, 0x350f5: 0x6c384620, 0x350f6: 0x6c384820, 0x350f7: 0x6c384a20, - 0x350f8: 0x6c536420, 0x350f9: 0x6c536620, 0x350fa: 0x6c536820, 0x350fb: 0x6c536a20, - 0x350fc: 0x6c536c20, 0x350fd: 0x6c536e20, 0x350fe: 0x6c537020, 0x350ff: 0x6c537220, - // Block 0xd44, offset 0x35100 - 0x35100: 0x6c537420, 0x35101: 0x6c537620, 0x35102: 0x6c537820, 0x35103: 0x6c537a20, - 0x35104: 0x6c537c20, 0x35105: 0x6c537e20, 0x35106: 0x6c538020, 0x35107: 0x6c538220, - 0x35108: 0x6c538420, 0x35109: 0x6c538620, 0x3510a: 0x6c538820, 0x3510b: 0x6c538a20, - 0x3510c: 0x6c538c20, 0x3510d: 0x6c538e20, 0x3510e: 0x6c539020, 0x3510f: 0x6c539220, - 0x35110: 0x6c539420, 0x35111: 0x6c539620, 0x35112: 0x6c539820, 0x35113: 0x6c539a20, - 0x35114: 0x6c539c20, 0x35115: 0x6c539e20, 0x35116: 0x6c53a020, 0x35117: 0x6c53a220, - 0x35118: 0x6c53a420, 0x35119: 0x6c53a620, 0x3511a: 0x6c53a820, 0x3511b: 0x6c53aa20, - 0x3511c: 0x6c760a20, 0x3511d: 0x6c760c20, 0x3511e: 0x6c760e20, 0x3511f: 0x6c761020, - 0x35120: 0x6c761220, 0x35121: 0x6c761420, 0x35122: 0x6c761620, 0x35123: 0x6c761820, - 0x35124: 0x6c761a20, 0x35125: 0x6c761c20, 0x35126: 0x6c761e20, 0x35127: 0x6c762020, - 0x35128: 0x6c762220, 0x35129: 0x6c762420, 0x3512a: 0x6c762620, 0x3512b: 0x6c762820, - 0x3512c: 0x6c762a20, 0x3512d: 0x6c762c20, 0x3512e: 0x6c762e20, 0x3512f: 0x6c763020, - 0x35130: 0x6c763220, 0x35131: 0x6c9e6a20, 0x35132: 0x6c9e6c20, 0x35133: 0x6c9e6e20, - 0x35134: 0x6c9e7020, 0x35135: 0x6c9e7220, 0x35136: 0x6c9e7420, 0x35137: 0x6c9e7620, - 0x35138: 0x6c9e7820, 0x35139: 0x6c9e7a20, 0x3513a: 0x6c9e7c20, 0x3513b: 0x6c9e7e20, - 0x3513c: 0x6c9e8020, 0x3513d: 0x6c9e8220, 0x3513e: 0x6c9e8420, 0x3513f: 0x6c9e8620, - // Block 0xd45, offset 0x35140 - 0x35140: 0x6c9e8820, 0x35141: 0x6c9e8a20, 0x35142: 0x6c9e8c20, 0x35143: 0x6c9e8e20, - 0x35144: 0x6c9e9020, 0x35145: 0x6c9e9220, 0x35146: 0x6c9e9420, 0x35147: 0x6c9e9620, - 0x35148: 0x6ccb8220, 0x35149: 0x6ccb8420, 0x3514a: 0x6ccb8620, 0x3514b: 0x6ccb8820, - 0x3514c: 0x6ccb8a20, 0x3514d: 0x6ccb8c20, 0x3514e: 0x6ccb8e20, 0x3514f: 0x6ccb9020, - 0x35150: 0x6ccb9220, 0x35151: 0x6ccb9420, 0x35152: 0x6ccb9620, 0x35153: 0x6ccb9820, - 0x35154: 0x6ccb9a20, 0x35155: 0x6ccb9c20, 0x35156: 0x6ccb9e20, 0x35157: 0x6ccba020, - 0x35158: 0x6ccba220, 0x35159: 0x6ccba420, 0x3515a: 0x6ccba620, 0x3515b: 0x6ccba820, - 0x3515c: 0x6ccbaa20, 0x3515d: 0x6ccbac20, 0x3515e: 0x6ccbae20, 0x3515f: 0x6ccbb020, - 0x35160: 0x6ccbb220, 0x35161: 0x6ccbb420, 0x35162: 0x6ccbb620, 0x35163: 0x6ccbb820, - 0x35164: 0x6ccbba20, 0x35165: 0x6ccbbc20, 0x35166: 0x6ccbbe20, 0x35167: 0x6ccbc020, - 0x35168: 0x6cf99a20, 0x35169: 0x6cf99c20, 0x3516a: 0x6cf99e20, 0x3516b: 0x6cf9a020, - 0x3516c: 0x6cf9a220, 0x3516d: 0x6cf9a420, 0x3516e: 0x6cf9a620, 0x3516f: 0x6cf9a820, - 0x35170: 0x6cf9aa20, 0x35171: 0x6cf9ac20, 0x35172: 0x6cf9ae20, 0x35173: 0x6cf9b020, - 0x35174: 0x6cf9b220, 0x35175: 0x6cf9b420, 0x35176: 0x6cf9b620, 0x35177: 0x6cf9b820, - 0x35178: 0x6cf9ba20, 0x35179: 0x6cf9bc20, 0x3517a: 0x6cf9be20, 0x3517b: 0x6cf9c020, - 0x3517c: 0x6cf9c220, 0x3517d: 0x6cf9c420, 0x3517e: 0x6cf9c620, 0x3517f: 0x6cf9c820, - // Block 0xd46, offset 0x35180 - 0x35180: 0x6cf9ca20, 0x35181: 0x6cf9cc20, 0x35182: 0x6cf9ce20, 0x35183: 0x6cf9d020, - 0x35184: 0x6cf9d220, 0x35185: 0x6d28ac20, 0x35186: 0x6d28ae20, 0x35187: 0x6d28b020, - 0x35188: 0x6d28b220, 0x35189: 0x6d28b420, 0x3518a: 0x6d28b620, 0x3518b: 0x6d28b820, - 0x3518c: 0x6d28ba20, 0x3518d: 0x6d28bc20, 0x3518e: 0x6d28be20, 0x3518f: 0x6d28c020, - 0x35190: 0x6d28c220, 0x35191: 0x6d28c420, 0x35192: 0x6d28c620, 0x35193: 0x6d28c820, - 0x35194: 0x6d28ca20, 0x35195: 0x6d28cc20, 0x35196: 0x6d28ce20, 0x35197: 0x6d28d020, - 0x35198: 0x6d28d220, 0x35199: 0x6d28d420, 0x3519a: 0x6d28d620, 0x3519b: 0x6d28d820, - 0x3519c: 0x6d28da20, 0x3519d: 0x6d28dc20, 0x3519e: 0x6d28de20, 0x3519f: 0x6d28e020, - 0x351a0: 0x6d28e220, 0x351a1: 0x6d28e420, 0x351a2: 0x6d28e620, 0x351a3: 0x6d55e620, - 0x351a4: 0x6d55e820, 0x351a5: 0x6d55ea20, 0x351a6: 0x6d55ec20, 0x351a7: 0x6d55ee20, - 0x351a8: 0x6d55f020, 0x351a9: 0x6d55f220, 0x351aa: 0x6d55f420, 0x351ab: 0x6d55f620, - 0x351ac: 0x6d55f820, 0x351ad: 0x6d55fa20, 0x351ae: 0x6d55fc20, 0x351af: 0x6d55fe20, - 0x351b0: 0x6d560020, 0x351b1: 0x6d560220, 0x351b2: 0x6d560420, 0x351b3: 0x6d560620, - 0x351b4: 0x6d560820, 0x351b5: 0x6d560a20, 0x351b6: 0x6d560c20, 0x351b7: 0x6d560e20, - 0x351b8: 0x6d817020, 0x351b9: 0x6d817220, 0x351ba: 0x6d817420, 0x351bb: 0x6d817620, - 0x351bc: 0x6d817820, 0x351bd: 0x6d817a20, 0x351be: 0x6d817c20, 0x351bf: 0x6d817e20, - // Block 0xd47, offset 0x351c0 - 0x351c0: 0x6d818020, 0x351c1: 0x6d818220, 0x351c2: 0x6d818420, 0x351c3: 0x6d818620, - 0x351c4: 0x6d818820, 0x351c5: 0x6d818a20, 0x351c6: 0x6d818c20, 0x351c7: 0x6d818e20, - 0x351c8: 0x6d819020, 0x351c9: 0x6d819220, 0x351ca: 0x6da75020, 0x351cb: 0x6da75220, - 0x351cc: 0x6da75420, 0x351cd: 0x6da75620, 0x351ce: 0x6da75820, 0x351cf: 0x6da75a20, - 0x351d0: 0x6da75c20, 0x351d1: 0x6da75e20, 0x351d2: 0x6da76020, 0x351d3: 0x6da76220, - 0x351d4: 0x6da76420, 0x351d5: 0x6da76620, 0x351d6: 0x6da76820, 0x351d7: 0x6da76a20, - 0x351d8: 0x6da76c20, 0x351d9: 0x6da76e20, 0x351da: 0x6dc89820, 0x351db: 0x6dc89a20, - 0x351dc: 0x6dc89c20, 0x351dd: 0x6dc89e20, 0x351de: 0x6dc8a020, 0x351df: 0x6dc8a220, - 0x351e0: 0x6dc8a420, 0x351e1: 0x6dc8a620, 0x351e2: 0x6dc8a820, 0x351e3: 0x6dc8aa20, - 0x351e4: 0x6dc8ac20, 0x351e5: 0x6dc8ae20, 0x351e6: 0x6dc8b020, 0x351e7: 0x6dc8b220, - 0x351e8: 0x6dc8b420, 0x351e9: 0x6dc8b620, 0x351ea: 0x6dc8b820, 0x351eb: 0x6de4a620, - 0x351ec: 0x6de4a820, 0x351ed: 0x6de4aa20, 0x351ee: 0x6de4ac20, 0x351ef: 0x6de4ae20, - 0x351f0: 0x6de4b020, 0x351f1: 0x6dfbb820, 0x351f2: 0x6dfbba20, 0x351f3: 0x6dfbbc20, - 0x351f4: 0x6dfbbe20, 0x351f5: 0x6dfbc020, 0x351f6: 0x6e0eec20, 0x351f7: 0x6e0eee20, - 0x351f8: 0x6e0ef020, 0x351f9: 0x6e0ef220, 0x351fa: 0x6e0ef420, 0x351fb: 0x6e1e2620, - 0x351fc: 0x6e1e2820, 0x351fd: 0x6e1e2a20, 0x351fe: 0x6e1e2c20, 0x351ff: 0x6e299020, - // Block 0xd48, offset 0x35200 - 0x35200: 0x6e299220, 0x35201: 0x6e299420, 0x35202: 0x6e3d4c20, 0x35203: 0x6e3d4e20, - 0x35204: 0x6e42b020, 0x35205: 0x6c385220, 0x35206: 0x6c385420, 0x35207: 0x6c53b020, - 0x35208: 0x6c53b220, 0x35209: 0x6c53b420, 0x3520a: 0x6c53b620, 0x3520b: 0x6c9e9820, - 0x3520c: 0x6c9e9a20, 0x3520d: 0x6c9e9c20, 0x3520e: 0x6c9e9e20, 0x3520f: 0x6cf9d620, - 0x35210: 0x6d28ea20, 0x35211: 0x6d819420, 0x35212: 0x6da77020, 0x35213: 0x6dc8bc20, - 0x35214: 0x6dc8be20, 0x35215: 0x6c12f020, 0x35216: 0x6c12f220, 0x35217: 0x6c229a20, - 0x35218: 0x6c229c20, 0x35219: 0x6c385e20, 0x3521a: 0x6c386020, 0x3521b: 0x6c386220, - 0x3521c: 0x6c53c220, 0x3521d: 0x6c53c420, 0x3521e: 0x6c53c620, 0x3521f: 0x6c53c820, - 0x35220: 0x6c53ca20, 0x35221: 0x6c764820, 0x35222: 0x6ccbd020, 0x35223: 0x6c9ea620, - 0x35224: 0x6ccbd220, 0x35225: 0x6ccbd420, 0x35226: 0x6cf9da20, 0x35227: 0x6cf9dc20, - 0x35228: 0x6cf9de20, 0x35229: 0x6d28f020, 0x3522a: 0x6d561420, 0x3522b: 0x6d561620, - 0x3522c: 0x6da77220, 0x3522d: 0x6da77420, 0x3522e: 0x6dc8c020, 0x3522f: 0x6e0ef620, - 0x35230: 0x6e0ef820, 0x35231: 0x6c01fc20, 0x35232: 0x6c04ca20, 0x35233: 0x6c04cc20, - 0x35234: 0x6c04ce20, 0x35235: 0x6c09b220, 0x35236: 0x6c09b420, 0x35237: 0x6c09b620, - 0x35238: 0x6c09b820, 0x35239: 0x6c09ba20, 0x3523a: 0x6c09bc20, 0x3523b: 0x6c09be20, - 0x3523c: 0x6c09c020, 0x3523d: 0x6c09c220, 0x3523e: 0x6c09c420, 0x3523f: 0x6c09c620, - // Block 0xd49, offset 0x35240 - 0x35240: 0x6c133020, 0x35241: 0x6c133220, 0x35242: 0x6c133420, 0x35243: 0x6c133620, - 0x35244: 0x6c133820, 0x35245: 0x6c133a20, 0x35246: 0x6c133c20, 0x35247: 0x6c133e20, - 0x35248: 0x6c134020, 0x35249: 0x6c134220, 0x3524a: 0x6c134420, 0x3524b: 0x6c134620, - 0x3524c: 0x6c134820, 0x3524d: 0x6c134a20, 0x3524e: 0x6c233a20, 0x3524f: 0x6c233c20, - 0x35250: 0x6c233e20, 0x35251: 0x6c234020, 0x35252: 0x6c234220, 0x35253: 0x6c234420, - 0x35254: 0x6c234620, 0x35255: 0x6c234820, 0x35256: 0x6c234a20, 0x35257: 0x6c234c20, - 0x35258: 0x6c234e20, 0x35259: 0x6c235020, 0x3525a: 0x6c235220, 0x3525b: 0x6c235420, - 0x3525c: 0x6c235620, 0x3525d: 0x6c235820, 0x3525e: 0x6c235a20, 0x3525f: 0x6c235c20, - 0x35260: 0x6c235e20, 0x35261: 0x6c236020, 0x35262: 0x6c236220, 0x35263: 0x6c236420, - 0x35264: 0x6c236620, 0x35265: 0x6c236820, 0x35266: 0x6c236a20, 0x35267: 0x6c236c20, - 0x35268: 0x6c236e20, 0x35269: 0x6c237020, 0x3526a: 0x6c237220, 0x3526b: 0x6c237420, - 0x3526c: 0x6c237620, 0x3526d: 0x6c237820, 0x3526e: 0x6c237a20, 0x3526f: 0x6c237c20, - 0x35270: 0x6c237e20, 0x35271: 0x6c238020, 0x35272: 0x6c392020, 0x35273: 0x6c392220, - 0x35274: 0x6c392420, 0x35275: 0x6c392620, 0x35276: 0x6c392820, 0x35277: 0x6c392a20, - 0x35278: 0x6c392c20, 0x35279: 0x6c392e20, 0x3527a: 0x6c393020, 0x3527b: 0x6c393220, - 0x3527c: 0x6c393420, 0x3527d: 0x6c393620, 0x3527e: 0x6c393820, 0x3527f: 0x6c393a20, - // Block 0xd4a, offset 0x35280 - 0x35280: 0x6c393c20, 0x35281: 0x6c393e20, 0x35282: 0x6c394020, 0x35283: 0x6c394220, - 0x35284: 0x6c394420, 0x35285: 0x6c394620, 0x35286: 0x6c394820, 0x35287: 0x6c394a20, - 0x35288: 0x6c394c20, 0x35289: 0x6c394e20, 0x3528a: 0x6c395020, 0x3528b: 0x6c395220, - 0x3528c: 0x6c395420, 0x3528d: 0x6c395620, 0x3528e: 0x6c395820, 0x3528f: 0x6c395a20, - 0x35290: 0x6c395c20, 0x35291: 0x6c395e20, 0x35292: 0x6c396020, 0x35293: 0x6c396220, - 0x35294: 0x6c396420, 0x35295: 0x6c396620, 0x35296: 0x6c396820, 0x35297: 0x6c396a20, - 0x35298: 0x6c396c20, 0x35299: 0x6c396e20, 0x3529a: 0x6c397020, 0x3529b: 0x6c397220, - 0x3529c: 0x6c397420, 0x3529d: 0x6c397620, 0x3529e: 0x6c397820, 0x3529f: 0x6c397a20, - 0x352a0: 0x6c397c20, 0x352a1: 0x6c397e20, 0x352a2: 0x6c398020, 0x352a3: 0x6c398220, - 0x352a4: 0x6c549620, 0x352a5: 0x6c549820, 0x352a6: 0x6c549a20, 0x352a7: 0x6c549c20, - 0x352a8: 0x6c549e20, 0x352a9: 0x6c54a020, 0x352aa: 0x6c54a220, 0x352ab: 0x6c54a420, - 0x352ac: 0x6c54a620, 0x352ad: 0x6c54a820, 0x352ae: 0x6c54aa20, 0x352af: 0x6c54ac20, - 0x352b0: 0x6c54ae20, 0x352b1: 0x6c54b020, 0x352b2: 0x6c54b220, 0x352b3: 0x6c54b420, - 0x352b4: 0x6c54b620, 0x352b5: 0x6c54b820, 0x352b6: 0x6c54ba20, 0x352b7: 0x6c54bc20, - 0x352b8: 0x6c54be20, 0x352b9: 0x6c54c020, 0x352ba: 0x6c54c220, 0x352bb: 0x6c54c420, - 0x352bc: 0x6c54c620, 0x352bd: 0x6c54c820, 0x352be: 0x6c54ca20, 0x352bf: 0x6c54cc20, - // Block 0xd4b, offset 0x352c0 - 0x352c0: 0x6c54ce20, 0x352c1: 0x6c54d020, 0x352c2: 0x6c54d220, 0x352c3: 0x6c54d420, - 0x352c4: 0x6c54d620, 0x352c5: 0x6c54d820, 0x352c6: 0x6c54da20, 0x352c7: 0x6c54dc20, - 0x352c8: 0x6c54de20, 0x352c9: 0x6c54e020, 0x352ca: 0x6c54e220, 0x352cb: 0x6c54e420, - 0x352cc: 0x6c54e620, 0x352cd: 0x6c54e820, 0x352ce: 0x6c54ea20, 0x352cf: 0x6c54ec20, - 0x352d0: 0x6c54ee20, 0x352d1: 0x6c54f020, 0x352d2: 0x6c54f220, 0x352d3: 0x6c54f420, - 0x352d4: 0x6c54f620, 0x352d5: 0x6c54f820, 0x352d6: 0x6c54fa20, 0x352d7: 0x6c54fc20, - 0x352d8: 0x6c54fe20, 0x352d9: 0x6c550020, 0x352da: 0x6c550220, 0x352db: 0x6c550420, - 0x352dc: 0x6c550620, 0x352dd: 0x6c550820, 0x352de: 0x6c771820, 0x352df: 0x6c771a20, - 0x352e0: 0x6c771c20, 0x352e1: 0x6c771e20, 0x352e2: 0x6c772020, 0x352e3: 0x6c772220, - 0x352e4: 0x6c772420, 0x352e5: 0x6c772620, 0x352e6: 0x6c772820, 0x352e7: 0x6c772a20, - 0x352e8: 0x6c772c20, 0x352e9: 0x6c772e20, 0x352ea: 0x6c773020, 0x352eb: 0x6c773220, - 0x352ec: 0x6c773420, 0x352ed: 0x6c773620, 0x352ee: 0x6c773820, 0x352ef: 0x6c773a20, - 0x352f0: 0x6c773c20, 0x352f1: 0x6c773e20, 0x352f2: 0x6c774020, 0x352f3: 0x6c774220, - 0x352f4: 0x6c774420, 0x352f5: 0x6c774620, 0x352f6: 0x6c774820, 0x352f7: 0x6c774a20, - 0x352f8: 0x6c774c20, 0x352f9: 0x6c774e20, 0x352fa: 0x6c775020, 0x352fb: 0x6c775220, - 0x352fc: 0x6c775420, 0x352fd: 0x6c775620, 0x352fe: 0x6c775820, 0x352ff: 0x6c775a20, - // Block 0xd4c, offset 0x35300 - 0x35300: 0x6c775c20, 0x35301: 0x6c775e20, 0x35302: 0x6c776020, 0x35303: 0x6c776220, - 0x35304: 0x6c776420, 0x35305: 0x6c776620, 0x35306: 0x6c776820, 0x35307: 0x6c776a20, - 0x35308: 0x6c776c20, 0x35309: 0x6c776e20, 0x3530a: 0x6c777020, 0x3530b: 0x6c777220, - 0x3530c: 0x6c777420, 0x3530d: 0x6c777620, 0x3530e: 0x6c777820, 0x3530f: 0x6c777a20, - 0x35310: 0x6c777c20, 0x35311: 0x6c777e20, 0x35312: 0x6c778020, 0x35313: 0x6c778220, - 0x35314: 0x6c778420, 0x35315: 0x6c778620, 0x35316: 0x6c778820, 0x35317: 0x6c778a20, - 0x35318: 0x6c778c20, 0x35319: 0x6c778e20, 0x3531a: 0x6c779020, 0x3531b: 0x6c779220, - 0x3531c: 0x6c779420, 0x3531d: 0x6c779620, 0x3531e: 0x6c779820, 0x3531f: 0x6c779a20, - 0x35320: 0x6c779c20, 0x35321: 0x6c779e20, 0x35322: 0x6c77a020, 0x35323: 0x6c77a220, - 0x35324: 0x6c77a420, 0x35325: 0x6c77a620, 0x35326: 0x6c77a820, 0x35327: 0x6c77aa20, - 0x35328: 0x6c77ac20, 0x35329: 0x6c77ae20, 0x3532a: 0x6c77b020, 0x3532b: 0x6c77b220, - 0x3532c: 0x6c77b420, 0x3532d: 0x6c77b620, 0x3532e: 0x6c77b820, 0x3532f: 0x6c77ba20, - 0x35330: 0x6c77bc20, 0x35331: 0x6c77be20, 0x35332: 0x6c77c020, 0x35333: 0x6c77c220, - 0x35334: 0x6c77c420, 0x35335: 0x6c77c620, 0x35336: 0x6c77c820, 0x35337: 0x6c9fbc20, - 0x35338: 0x6c9fbe20, 0x35339: 0x6c9fc020, 0x3533a: 0x6c9fc220, 0x3533b: 0x6c9fc420, - 0x3533c: 0x6c9fc620, 0x3533d: 0x6c9fc820, 0x3533e: 0x6c9fca20, 0x3533f: 0x6c9fcc20, - // Block 0xd4d, offset 0x35340 - 0x35340: 0x6c9fce20, 0x35341: 0x6c9fd020, 0x35342: 0x6c9fd220, 0x35343: 0x6c9fd420, - 0x35344: 0x6c9fd620, 0x35345: 0x6c9fd820, 0x35346: 0x6c9fda20, 0x35347: 0x6c9fdc20, - 0x35348: 0x6c9fde20, 0x35349: 0x6c9fe020, 0x3534a: 0x6c9fe220, 0x3534b: 0x6c9fe420, - 0x3534c: 0x6c9fe620, 0x3534d: 0x6c9fe820, 0x3534e: 0x6c9fea20, 0x3534f: 0x6c9fec20, - 0x35350: 0x6c9fee20, 0x35351: 0x6c9ff020, 0x35352: 0x6c9ff220, 0x35353: 0x6c9ff420, - 0x35354: 0x6c9ff620, 0x35355: 0x6c9ff820, 0x35356: 0x6c9ffa20, 0x35357: 0x6c9ffc20, - 0x35358: 0x6c9ffe20, 0x35359: 0x6ca00020, 0x3535a: 0x6ca00220, 0x3535b: 0x6ca00420, - 0x3535c: 0x6ca00620, 0x3535d: 0x6ca00820, 0x3535e: 0x6ca00a20, 0x3535f: 0x6ca00c20, - 0x35360: 0x6ca00e20, 0x35361: 0x6ca01020, 0x35362: 0x6ca01220, 0x35363: 0x6ca01420, - 0x35364: 0x6ca01620, 0x35365: 0x6ca01820, 0x35366: 0x6ca01a20, 0x35367: 0x6ca01c20, - 0x35368: 0x6ca01e20, 0x35369: 0x6ca02020, 0x3536a: 0x6ca02220, 0x3536b: 0x6ca02420, - 0x3536c: 0x6ca02620, 0x3536d: 0x6ca02820, 0x3536e: 0x6ca02a20, 0x3536f: 0x6ca02c20, - 0x35370: 0x6ca02e20, 0x35371: 0x6ca03020, 0x35372: 0x6ca03220, 0x35373: 0x6ca03420, - 0x35374: 0x6ca03620, 0x35375: 0x6ca03820, 0x35376: 0x6ca03a20, 0x35377: 0x6ca03c20, - 0x35378: 0x6ca03e20, 0x35379: 0x6ca04020, 0x3537a: 0x6ca04220, 0x3537b: 0x6ca04420, - 0x3537c: 0x6ca04620, 0x3537d: 0x6ca04820, 0x3537e: 0x6ca04a20, 0x3537f: 0x6ca04c20, - // Block 0xd4e, offset 0x35380 - 0x35380: 0x6ca04e20, 0x35381: 0x6ca05020, 0x35382: 0x6ca05220, 0x35383: 0x6ca05420, - 0x35384: 0x6ca05620, 0x35385: 0x6ca05820, 0x35386: 0x6ca05a20, 0x35387: 0x6ca05c20, - 0x35388: 0x6ca05e20, 0x35389: 0x6ca06020, 0x3538a: 0x6ca06220, 0x3538b: 0x6ca06420, - 0x3538c: 0x6ca06620, 0x3538d: 0x6ca06820, 0x3538e: 0x6ca06a20, 0x3538f: 0x6ca06c20, - 0x35390: 0x6ca06e20, 0x35391: 0x6ca07020, 0x35392: 0x6ca07220, 0x35393: 0x6ca07420, - 0x35394: 0x6ca07620, 0x35395: 0x6ca07820, 0x35396: 0x6ca07a20, 0x35397: 0x6ca07c20, - 0x35398: 0x6ca07e20, 0x35399: 0x6ca08020, 0x3539a: 0x6c77ca20, 0x3539b: 0x6ca08220, - 0x3539c: 0x6ca08420, 0x3539d: 0x6ca08620, 0x3539e: 0x6ca08820, 0x3539f: 0x6ca08a20, - 0x353a0: 0x6ca08c20, 0x353a1: 0x6ca08e20, 0x353a2: 0x6ca09020, 0x353a3: 0x6ca09220, - 0x353a4: 0x6ca09420, 0x353a5: 0x6ca09620, 0x353a6: 0x6ca09820, 0x353a7: 0x6ca09a20, - 0x353a8: 0x6ca09c20, 0x353a9: 0x6ca09e20, 0x353aa: 0x6ca0a020, 0x353ab: 0x6ca0a220, - 0x353ac: 0x6ca0a420, 0x353ad: 0x6ca0a620, 0x353ae: 0x6ca0a820, 0x353af: 0x6ca0aa20, - 0x353b0: 0x6ca0ac20, 0x353b1: 0x6ca0ae20, 0x353b2: 0x6ca0b020, 0x353b3: 0x6ca0b220, - 0x353b4: 0x6ca0b420, 0x353b5: 0x6ca0b620, 0x353b6: 0x6ca0b820, 0x353b7: 0x6ca0ba20, - 0x353b8: 0x6ca0bc20, 0x353b9: 0x6ca0be20, 0x353ba: 0x6ca0c020, 0x353bb: 0x6ca0c220, - 0x353bc: 0x6cccf620, 0x353bd: 0x6cccf820, 0x353be: 0x6cccfa20, 0x353bf: 0x6cccfc20, - // Block 0xd4f, offset 0x353c0 - 0x353c0: 0x6cccfe20, 0x353c1: 0x6ccd0020, 0x353c2: 0x6ccd0220, 0x353c3: 0x6ccd0420, - 0x353c4: 0x6ccd0620, 0x353c5: 0x6ccd0820, 0x353c6: 0x6ccd0a20, 0x353c7: 0x6ccd0c20, - 0x353c8: 0x6ccd0e20, 0x353c9: 0x6ccd1020, 0x353ca: 0x6ca0c420, 0x353cb: 0x6ccd1220, - 0x353cc: 0x6ccd1420, 0x353cd: 0x6ccd1620, 0x353ce: 0x6ccd1820, 0x353cf: 0x6ccd1a20, - 0x353d0: 0x6ccd1c20, 0x353d1: 0x6ccd1e20, 0x353d2: 0x6ccd2020, 0x353d3: 0x6ccd2220, - 0x353d4: 0x6ccd2420, 0x353d5: 0x6ccd2620, 0x353d6: 0x6ccd2820, 0x353d7: 0x6ccd2a20, - 0x353d8: 0x6ccd2c20, 0x353d9: 0x6ccd2e20, 0x353da: 0x6ccd3020, 0x353db: 0x6ccd3220, - 0x353dc: 0x6ccd3420, 0x353dd: 0x6ccd3620, 0x353de: 0x6ccd3820, 0x353df: 0x6ccd3a20, - 0x353e0: 0x6ccd3c20, 0x353e1: 0x6ccd3e20, 0x353e2: 0x6ccd4020, 0x353e3: 0x6ccd4220, - 0x353e4: 0x6ccd4420, 0x353e5: 0x6ccd4620, 0x353e6: 0x6ccd4820, 0x353e7: 0x6ccd4a20, - 0x353e8: 0x6ccd4c20, 0x353e9: 0x6ccd4e20, 0x353ea: 0x6ccd5020, 0x353eb: 0x6ccd5220, - 0x353ec: 0x6ccd5420, 0x353ed: 0x6ccd5620, 0x353ee: 0x6ccd5820, 0x353ef: 0x6ccd5a20, - 0x353f0: 0x6ccd5c20, 0x353f1: 0x6ccd5e20, 0x353f2: 0x6ccd6020, 0x353f3: 0x6ccd6220, - 0x353f4: 0x6ccd6420, 0x353f5: 0x6ccd6620, 0x353f6: 0x6ccd6820, 0x353f7: 0x6ccd6a20, - 0x353f8: 0x6ccd6c20, 0x353f9: 0x6ccd6e20, 0x353fa: 0x6ccd7020, 0x353fb: 0x6ccd7220, - 0x353fc: 0x6ccd7420, 0x353fd: 0x6ccd7620, 0x353fe: 0x6ccd7820, 0x353ff: 0x6ccd7a20, - // Block 0xd50, offset 0x35400 - 0x35400: 0x6ccd7c20, 0x35401: 0x6ccd7e20, 0x35402: 0x6ccd8020, 0x35403: 0x6ccd8220, - 0x35404: 0x6ccd8420, 0x35405: 0x6ccd8620, 0x35406: 0x6ccd8820, 0x35407: 0x6ccd8a20, - 0x35408: 0x6ccd8c20, 0x35409: 0x6ccd8e20, 0x3540a: 0x6ccd9020, 0x3540b: 0x6ccd9220, - 0x3540c: 0x6ccd9420, 0x3540d: 0x6ccd9620, 0x3540e: 0x6ccd9820, 0x3540f: 0x6ccd9a20, - 0x35410: 0x6ccd9c20, 0x35411: 0x6ccd9e20, 0x35412: 0x6ccda020, 0x35413: 0x6ccda220, - 0x35414: 0x6ccda420, 0x35415: 0x6ccda620, 0x35416: 0x6ccda820, 0x35417: 0x6ccdaa20, - 0x35418: 0x6ccdac20, 0x35419: 0x6ccdae20, 0x3541a: 0x6ccdb020, 0x3541b: 0x6ccdb220, - 0x3541c: 0x6ccdb420, 0x3541d: 0x6cfac420, 0x3541e: 0x6cfac620, 0x3541f: 0x6cfac820, - 0x35420: 0x6cfaca20, 0x35421: 0x6cfacc20, 0x35422: 0x6cface20, 0x35423: 0x6cfad020, - 0x35424: 0x6cfad220, 0x35425: 0x6cfad420, 0x35426: 0x6cfad620, 0x35427: 0x6cfad820, - 0x35428: 0x6cfada20, 0x35429: 0x6cfadc20, 0x3542a: 0x6cfade20, 0x3542b: 0x6cfae020, - 0x3542c: 0x6cfae220, 0x3542d: 0x6cfae420, 0x3542e: 0x6cfae620, 0x3542f: 0x6cfae820, - 0x35430: 0x6cfaea20, 0x35431: 0x6cfaec20, 0x35432: 0x6cfaee20, 0x35433: 0x6cfaf020, - 0x35434: 0x6cfaf220, 0x35435: 0x6cfaf420, 0x35436: 0x6cfaf620, 0x35437: 0x6cfaf820, - 0x35438: 0x6cfafa20, 0x35439: 0x6cfafc20, 0x3543a: 0x6cfafe20, 0x3543b: 0x6cfb0020, - 0x3543c: 0x6cfb0220, 0x3543d: 0x6cfb0420, 0x3543e: 0x6cfb0620, 0x3543f: 0x6cfb0820, - // Block 0xd51, offset 0x35440 - 0x35440: 0x6cfb0a20, 0x35441: 0x6cfb0c20, 0x35442: 0x6cfb0e20, 0x35443: 0x6cfb1020, - 0x35444: 0x6cfb1220, 0x35445: 0x6cfb1420, 0x35446: 0x6cfb1620, 0x35447: 0x6cfb1820, - 0x35448: 0x6cfb1a20, 0x35449: 0x6cfb1c20, 0x3544a: 0x6cfb1e20, 0x3544b: 0x6cfb2020, - 0x3544c: 0x6cfb2220, 0x3544d: 0x6cfb2420, 0x3544e: 0x6cfb2620, 0x3544f: 0x6cfb2820, - 0x35450: 0x6cfb2a20, 0x35451: 0x6cfb2c20, 0x35452: 0x6cfb2e20, 0x35453: 0x6cfb3020, - 0x35454: 0x6cfb3220, 0x35455: 0x6cfb3420, 0x35456: 0x6cfb3620, 0x35457: 0x6cfb3820, - 0x35458: 0x6cfb3a20, 0x35459: 0x6cfb3c20, 0x3545a: 0x6cfb3e20, 0x3545b: 0x6cfb4020, - 0x3545c: 0x6cfb4220, 0x3545d: 0x6cfb4420, 0x3545e: 0x6cfb4620, 0x3545f: 0x6cfb4820, - 0x35460: 0x6cfb4a20, 0x35461: 0x6cfb4c20, 0x35462: 0x6cfb4e20, 0x35463: 0x6cfb5020, - 0x35464: 0x6cfb5220, 0x35465: 0x6cfb5420, 0x35466: 0x6cfb5620, 0x35467: 0x6cfb5820, - 0x35468: 0x6cfb5a20, 0x35469: 0x6cfb5c20, 0x3546a: 0x6cfb5e20, 0x3546b: 0x6cfb6020, - 0x3546c: 0x6cfb6220, 0x3546d: 0x6cfb6420, 0x3546e: 0x6cfb6620, 0x3546f: 0x6cfb6820, - 0x35470: 0x6cfb6a20, 0x35471: 0x6cfb6c20, 0x35472: 0x6cfb6e20, 0x35473: 0x6cfb7020, - 0x35474: 0x6cfb7220, 0x35475: 0x6cfb7420, 0x35476: 0x6cfb7620, 0x35477: 0x6cfb7820, - 0x35478: 0x6cfb7a20, 0x35479: 0x6cfb7c20, 0x3547a: 0x6cfb7e20, 0x3547b: 0x6cfb8020, - 0x3547c: 0x6cfb8220, 0x3547d: 0x6cfb8420, 0x3547e: 0x6cfb8620, 0x3547f: 0x6cfb8820, - // Block 0xd52, offset 0x35480 - 0x35480: 0x6cfb8a20, 0x35481: 0x6cfb8c20, 0x35482: 0x6cfb8e20, 0x35483: 0x6cfb9020, - 0x35484: 0x6cfb9220, 0x35485: 0x6cfb9420, 0x35486: 0x6cfb9620, 0x35487: 0x6cfb9820, - 0x35488: 0x6cfb9a20, 0x35489: 0x6cfb9c20, 0x3548a: 0x6cfb9e20, 0x3548b: 0x6cfba020, - 0x3548c: 0x6cfba220, 0x3548d: 0x6d29ca20, 0x3548e: 0x6d29cc20, 0x3548f: 0x6d29ce20, - 0x35490: 0x6d29d020, 0x35491: 0x6d29d220, 0x35492: 0x6d29d420, 0x35493: 0x6d29d620, - 0x35494: 0x6d29d820, 0x35495: 0x6d29da20, 0x35496: 0x6d29dc20, 0x35497: 0x6d29de20, - 0x35498: 0x6d29e020, 0x35499: 0x6d29e220, 0x3549a: 0x6d29e420, 0x3549b: 0x6d29e620, - 0x3549c: 0x6d29e820, 0x3549d: 0x6d29ea20, 0x3549e: 0x6d29ec20, 0x3549f: 0x6d29ee20, - 0x354a0: 0x6d29f020, 0x354a1: 0x6d29f220, 0x354a2: 0x6d29f420, 0x354a3: 0x6d29f620, - 0x354a4: 0x6d29f820, 0x354a5: 0x6d29fa20, 0x354a6: 0x6d29fc20, 0x354a7: 0x6d29fe20, - 0x354a8: 0x6d2a0020, 0x354a9: 0x6d2a0220, 0x354aa: 0x6d2a0420, 0x354ab: 0x6d2a0620, - 0x354ac: 0x6d2a0820, 0x354ad: 0x6d2a0a20, 0x354ae: 0x6d2a0c20, 0x354af: 0x6d2a0e20, - 0x354b0: 0x6d2a1020, 0x354b1: 0x6d2a1220, 0x354b2: 0x6d2a1420, 0x354b3: 0x6d2a1620, - 0x354b4: 0x6d56e220, 0x354b5: 0x6d2a1820, 0x354b6: 0x6d2a1a20, 0x354b7: 0x6d2a1c20, - 0x354b8: 0x6d2a1e20, 0x354b9: 0x6d2a2020, 0x354ba: 0x6d2a2220, 0x354bb: 0x6d2a2420, - 0x354bc: 0x6d2a2620, 0x354bd: 0x6d2a2820, 0x354be: 0x6d2a2a20, 0x354bf: 0x6d2a2c20, - // Block 0xd53, offset 0x354c0 - 0x354c0: 0x6d2a2e20, 0x354c1: 0x6d2a3020, 0x354c2: 0x6d2a3220, 0x354c3: 0x6d2a3420, - 0x354c4: 0x6d2a3620, 0x354c5: 0x6d2a3820, 0x354c6: 0x6d2a3a20, 0x354c7: 0x6d2a3c20, - 0x354c8: 0x6d2a3e20, 0x354c9: 0x6d2a4020, 0x354ca: 0x6d2a4220, 0x354cb: 0x6d2a4420, - 0x354cc: 0x6d2a4620, 0x354cd: 0x6d2a4820, 0x354ce: 0x6d2a4a20, 0x354cf: 0x6d2a4c20, - 0x354d0: 0x6d2a4e20, 0x354d1: 0x6d2a5020, 0x354d2: 0x6d2a5220, 0x354d3: 0x6d2a5420, - 0x354d4: 0x6d2a5620, 0x354d5: 0x6d2a5820, 0x354d6: 0x6d2a5a20, 0x354d7: 0x6d2a5c20, - 0x354d8: 0x6d2a5e20, 0x354d9: 0x6d4f2420, 0x354da: 0x6d2a6020, 0x354db: 0x6d2a6220, - 0x354dc: 0x6d2a6420, 0x354dd: 0x6d2a6620, 0x354de: 0x6d2a6820, 0x354df: 0x6d2a6a20, - 0x354e0: 0x6d2a6c20, 0x354e1: 0x6d2a6e20, 0x354e2: 0x6d2a7020, 0x354e3: 0x6d2a7220, - 0x354e4: 0x6d2a7420, 0x354e5: 0x6d2a7620, 0x354e6: 0x6d2a7820, 0x354e7: 0x6d2a7a20, - 0x354e8: 0x6d2a7c20, 0x354e9: 0x6d2a7e20, 0x354ea: 0x6d2a8020, 0x354eb: 0x6d2a8220, - 0x354ec: 0x6d2a8420, 0x354ed: 0x6d2a8620, 0x354ee: 0x6d2a8820, 0x354ef: 0x6d2a8a20, - 0x354f0: 0x6d2a8c20, 0x354f1: 0x6d2a8e20, 0x354f2: 0x6d2a9020, 0x354f3: 0x6d2a9220, - 0x354f4: 0x6d2a9420, 0x354f5: 0x6d2a9620, 0x354f6: 0x6d2a9820, 0x354f7: 0x6d2a9a20, - 0x354f8: 0x6d2a9c20, 0x354f9: 0x6d2a9e20, 0x354fa: 0x6d2aa020, 0x354fb: 0x6d2aa220, - 0x354fc: 0x6d2aa420, 0x354fd: 0x6d2aa620, 0x354fe: 0x6d2aa820, 0x354ff: 0x6d2aaa20, - // Block 0xd54, offset 0x35500 - 0x35500: 0x6d2aac20, 0x35501: 0x6d2aae20, 0x35502: 0x6d2ab020, 0x35503: 0x6d56e420, - 0x35504: 0x6d56e620, 0x35505: 0x6d56e820, 0x35506: 0x6d56ea20, 0x35507: 0x6d56ec20, - 0x35508: 0x6d56ee20, 0x35509: 0x6d56f020, 0x3550a: 0x6d56f220, 0x3550b: 0x6d56f420, - 0x3550c: 0x6d56f620, 0x3550d: 0x6d56f820, 0x3550e: 0x6d56fa20, 0x3550f: 0x6d56fc20, - 0x35510: 0x6d56fe20, 0x35511: 0x6d570020, 0x35512: 0x6d570220, 0x35513: 0x6d570420, - 0x35514: 0x6d570620, 0x35515: 0x6d570820, 0x35516: 0x6d570a20, 0x35517: 0x6d570c20, - 0x35518: 0x6d570e20, 0x35519: 0x6d571020, 0x3551a: 0x6d571220, 0x3551b: 0x6d571420, - 0x3551c: 0x6d571620, 0x3551d: 0x6d571820, 0x3551e: 0x6d571a20, 0x3551f: 0x6d571c20, - 0x35520: 0x6d571e20, 0x35521: 0x6d572020, 0x35522: 0x6d572220, 0x35523: 0x6d572420, - 0x35524: 0x6d572620, 0x35525: 0x6d572820, 0x35526: 0x6d572a20, 0x35527: 0x6d572c20, - 0x35528: 0x6d572e20, 0x35529: 0x6d573020, 0x3552a: 0x6d573220, 0x3552b: 0x6d573420, - 0x3552c: 0x6d573620, 0x3552d: 0x6d573820, 0x3552e: 0x6d573a20, 0x3552f: 0x6d573c20, - 0x35530: 0x6d573e20, 0x35531: 0x6d574020, 0x35532: 0x6d574220, 0x35533: 0x6d574420, - 0x35534: 0x6d574620, 0x35535: 0x6d574820, 0x35536: 0x6d574a20, 0x35537: 0x6d574c20, - 0x35538: 0x6d574e20, 0x35539: 0x6d575020, 0x3553a: 0x6d575220, 0x3553b: 0x6d575420, - 0x3553c: 0x6d575620, 0x3553d: 0x6d575820, 0x3553e: 0x6d575a20, 0x3553f: 0x6d575c20, - // Block 0xd55, offset 0x35540 - 0x35540: 0x6d575e20, 0x35541: 0x6d576020, 0x35542: 0x6d576220, 0x35543: 0x6d576420, - 0x35544: 0x6d576620, 0x35545: 0x6d576820, 0x35546: 0x6d576a20, 0x35547: 0x6d576c20, - 0x35548: 0x6d576e20, 0x35549: 0x6d577020, 0x3554a: 0x6d577220, 0x3554b: 0x6d577420, - 0x3554c: 0x6d577620, 0x3554d: 0x6d577820, 0x3554e: 0x6d577a20, 0x3554f: 0x6d577c20, - 0x35550: 0x6d577e20, 0x35551: 0x6d578020, 0x35552: 0x6d578220, 0x35553: 0x6d578420, - 0x35554: 0x6d578620, 0x35555: 0x6d578820, 0x35556: 0x6d578a20, 0x35557: 0x6d578c20, - 0x35558: 0x6d578e20, 0x35559: 0x6d579020, 0x3555a: 0x6d579220, 0x3555b: 0x6d579420, - 0x3555c: 0x6d579620, 0x3555d: 0x6d579820, 0x3555e: 0x6d579a20, 0x3555f: 0x6d579c20, - 0x35560: 0x6d579e20, 0x35561: 0x6d57a020, 0x35562: 0x6d57a220, 0x35563: 0x6d57a420, - 0x35564: 0x6d57a620, 0x35565: 0x6d57a820, 0x35566: 0x6d57aa20, 0x35567: 0x6d57ac20, - 0x35568: 0x6d57ae20, 0x35569: 0x6d822820, 0x3556a: 0x6d57b020, 0x3556b: 0x6d57b220, - 0x3556c: 0x6d57b420, 0x3556d: 0x6d57b620, 0x3556e: 0x6d57b820, 0x3556f: 0x6d57ba20, - 0x35570: 0x6d57bc20, 0x35571: 0x6d57be20, 0x35572: 0x6d57c020, 0x35573: 0x6d57c220, - 0x35574: 0x6d57c420, 0x35575: 0x6d57c620, 0x35576: 0x6d57c820, 0x35577: 0x6d57ca20, - 0x35578: 0x6d57cc20, 0x35579: 0x6d57ce20, 0x3557a: 0x6d57d020, 0x3557b: 0x6d57d220, - 0x3557c: 0x6d57d420, 0x3557d: 0x6d57d620, 0x3557e: 0x6d57d820, 0x3557f: 0x6d57da20, - // Block 0xd56, offset 0x35580 - 0x35580: 0x6da7de20, 0x35581: 0x6d57dc20, 0x35582: 0x6d57de20, 0x35583: 0x6d57e020, - 0x35584: 0x6d57e220, 0x35585: 0x6d822a20, 0x35586: 0x6d822c20, 0x35587: 0x6d822e20, - 0x35588: 0x6d823020, 0x35589: 0x6d823220, 0x3558a: 0x6d823420, 0x3558b: 0x6d823620, - 0x3558c: 0x6d823820, 0x3558d: 0x6d823a20, 0x3558e: 0x6d823c20, 0x3558f: 0x6d823e20, - 0x35590: 0x6d824020, 0x35591: 0x6d824220, 0x35592: 0x6d824420, 0x35593: 0x6d824620, - 0x35594: 0x6d824820, 0x35595: 0x6d824a20, 0x35596: 0x6d824c20, 0x35597: 0x6d824e20, - 0x35598: 0x6d825020, 0x35599: 0x6d825220, 0x3559a: 0x6d825420, 0x3559b: 0x6d825620, - 0x3559c: 0x6d825820, 0x3559d: 0x6d825a20, 0x3559e: 0x6d825c20, 0x3559f: 0x6d825e20, - 0x355a0: 0x6d826020, 0x355a1: 0x6d826220, 0x355a2: 0x6d826420, 0x355a3: 0x6d826620, - 0x355a4: 0x6d826820, 0x355a5: 0x6d826a20, 0x355a6: 0x6d826c20, 0x355a7: 0x6d826e20, - 0x355a8: 0x6d827020, 0x355a9: 0x6d827220, 0x355aa: 0x6d827420, 0x355ab: 0x6d827620, - 0x355ac: 0x6d827820, 0x355ad: 0x6d827a20, 0x355ae: 0x6d827c20, 0x355af: 0x6d827e20, - 0x355b0: 0x6d828020, 0x355b1: 0x6d828220, 0x355b2: 0x6d828420, 0x355b3: 0x6d828620, - 0x355b4: 0x6d828820, 0x355b5: 0x6d828a20, 0x355b6: 0x6d828c20, 0x355b7: 0x6d828e20, - 0x355b8: 0x6d829020, 0x355b9: 0x6d829220, 0x355ba: 0x6d829420, 0x355bb: 0x6d829620, - 0x355bc: 0x6d829820, 0x355bd: 0x6d829a20, 0x355be: 0x6d829c20, 0x355bf: 0x6d829e20, - // Block 0xd57, offset 0x355c0 - 0x355c0: 0x6d82a020, 0x355c1: 0x6d82a220, 0x355c2: 0x6d82a420, 0x355c3: 0x6d82a620, - 0x355c4: 0x6d82a820, 0x355c5: 0x6d82aa20, 0x355c6: 0x6d82ac20, 0x355c7: 0x6d82ae20, - 0x355c8: 0x6d82b020, 0x355c9: 0x6d82b220, 0x355ca: 0x6d82b420, 0x355cb: 0x6d82b620, - 0x355cc: 0x6d82b820, 0x355cd: 0x6d82ba20, 0x355ce: 0x6d82bc20, 0x355cf: 0x6d82be20, - 0x355d0: 0x6d82c020, 0x355d1: 0x6d82c220, 0x355d2: 0x6d82c420, 0x355d3: 0x6d82c620, - 0x355d4: 0x6d82c820, 0x355d5: 0x6d82ca20, 0x355d6: 0x6d82cc20, 0x355d7: 0x6d82ce20, - 0x355d8: 0x6d82d020, 0x355d9: 0x6d82d220, 0x355da: 0x6d82d420, 0x355db: 0x6d82d620, - 0x355dc: 0x6d82d820, 0x355dd: 0x6d82da20, 0x355de: 0x6d82dc20, 0x355df: 0x6d82de20, - 0x355e0: 0x6d82e020, 0x355e1: 0x6d82e220, 0x355e2: 0x6d7ade20, 0x355e3: 0x6da7e020, - 0x355e4: 0x6da7e220, 0x355e5: 0x6da7e420, 0x355e6: 0x6da7e620, 0x355e7: 0x6da7e820, - 0x355e8: 0x6da7ea20, 0x355e9: 0x6da7ec20, 0x355ea: 0x6da7ee20, 0x355eb: 0x6da7f020, - 0x355ec: 0x6da7f220, 0x355ed: 0x6da7f420, 0x355ee: 0x6da7f620, 0x355ef: 0x6da7f820, - 0x355f0: 0x6da7fa20, 0x355f1: 0x6da7fc20, 0x355f2: 0x6da7fe20, 0x355f3: 0x6da80020, - 0x355f4: 0x6da80220, 0x355f5: 0x6da80420, 0x355f6: 0x6da80620, 0x355f7: 0x6da80820, - 0x355f8: 0x6da80a20, 0x355f9: 0x6da80c20, 0x355fa: 0x6da80e20, 0x355fb: 0x6da81020, - 0x355fc: 0x6da81220, 0x355fd: 0x6da81420, 0x355fe: 0x6da81620, 0x355ff: 0x6da81820, - // Block 0xd58, offset 0x35600 - 0x35600: 0x6da81a20, 0x35601: 0x6da81c20, 0x35602: 0x6da81e20, 0x35603: 0x6da82020, - 0x35604: 0x6da82220, 0x35605: 0x6da82420, 0x35606: 0x6da82620, 0x35607: 0x6da82820, - 0x35608: 0x6da82a20, 0x35609: 0x6da82c20, 0x3560a: 0x6da82e20, 0x3560b: 0x6da83020, - 0x3560c: 0x6da83220, 0x3560d: 0x6da83420, 0x3560e: 0x6da83620, 0x3560f: 0x6da83820, - 0x35610: 0x6da83a20, 0x35611: 0x6da83c20, 0x35612: 0x6da83e20, 0x35613: 0x6da84020, - 0x35614: 0x6da84220, 0x35615: 0x6da84420, 0x35616: 0x6da84620, 0x35617: 0x6da84820, - 0x35618: 0x6da84a20, 0x35619: 0x6da84c20, 0x3561a: 0x6da84e20, 0x3561b: 0x6da85020, - 0x3561c: 0x6da85220, 0x3561d: 0x6da85420, 0x3561e: 0x6dc90820, 0x3561f: 0x6da85620, - 0x35620: 0x6da85820, 0x35621: 0x6dc90a20, 0x35622: 0x6dc90c20, 0x35623: 0x6dc90e20, - 0x35624: 0x6dc91020, 0x35625: 0x6dc91220, 0x35626: 0x6dc91420, 0x35627: 0x6dc91620, - 0x35628: 0x6dc91820, 0x35629: 0x6dc91a20, 0x3562a: 0x6dc91c20, 0x3562b: 0x6dc91e20, - 0x3562c: 0x6dc92020, 0x3562d: 0x6dc92220, 0x3562e: 0x6dc92420, 0x3562f: 0x6dc92620, - 0x35630: 0x6dc92820, 0x35631: 0x6dc92a20, 0x35632: 0x6dc92c20, 0x35633: 0x6dc92e20, - 0x35634: 0x6dc93020, 0x35635: 0x6dc93220, 0x35636: 0x6dc93420, 0x35637: 0x6dc93620, - 0x35638: 0x6dc93820, 0x35639: 0x6dc93a20, 0x3563a: 0x6dc93c20, 0x3563b: 0x6dc93e20, - 0x3563c: 0x6dc94020, 0x3563d: 0x6dc94220, 0x3563e: 0x6dc94420, 0x3563f: 0x6dc94620, - // Block 0xd59, offset 0x35640 - 0x35640: 0x6dc94820, 0x35641: 0x6dc94a20, 0x35642: 0x6dc94c20, 0x35643: 0x6dc94e20, - 0x35644: 0x6dc95020, 0x35645: 0x6dc95220, 0x35646: 0x6dc95420, 0x35647: 0x6dc95620, - 0x35648: 0x6dc95820, 0x35649: 0x6dc95a20, 0x3564a: 0x6dc95c20, 0x3564b: 0x6dc95e20, - 0x3564c: 0x6dc96020, 0x3564d: 0x6dc96220, 0x3564e: 0x6dc96420, 0x3564f: 0x6dc96620, - 0x35650: 0x6dc96820, 0x35651: 0x6dc96a20, 0x35652: 0x6dc96c20, 0x35653: 0x6dc96e20, - 0x35654: 0x6dc97020, 0x35655: 0x6dc97220, 0x35656: 0x6dc97420, 0x35657: 0x6dc97620, - 0x35658: 0x6dc97820, 0x35659: 0x6dc97a20, 0x3565a: 0x6dc97c20, 0x3565b: 0x6dc97e20, - 0x3565c: 0x6dc98020, 0x3565d: 0x6de4f420, 0x3565e: 0x6dc98220, 0x3565f: 0x6dc98420, - 0x35660: 0x6dc98620, 0x35661: 0x6de4f620, 0x35662: 0x6dc98820, 0x35663: 0x6dc98a20, - 0x35664: 0x6dc98c20, 0x35665: 0x6dc98e20, 0x35666: 0x6dc99020, 0x35667: 0x6dc99220, - 0x35668: 0x6dc99420, 0x35669: 0x6dc99620, 0x3566a: 0x6dc99820, 0x3566b: 0x6dc99a20, - 0x3566c: 0x6dc99c20, 0x3566d: 0x6dc99e20, 0x3566e: 0x6dc9a020, 0x3566f: 0x6dc9a220, - 0x35670: 0x6dc9a420, 0x35671: 0x6dc9a620, 0x35672: 0x6dc9a820, 0x35673: 0x6de4f820, - 0x35674: 0x6de4fa20, 0x35675: 0x6de4fc20, 0x35676: 0x6de4fe20, 0x35677: 0x6de50020, - 0x35678: 0x6de50220, 0x35679: 0x6de50420, 0x3567a: 0x6de50620, 0x3567b: 0x6de50820, - 0x3567c: 0x6de50a20, 0x3567d: 0x6de50c20, 0x3567e: 0x6de50e20, 0x3567f: 0x6de51020, - // Block 0xd5a, offset 0x35680 - 0x35680: 0x6de51220, 0x35681: 0x6de51420, 0x35682: 0x6de51620, 0x35683: 0x6de51820, - 0x35684: 0x6de51a20, 0x35685: 0x6de51c20, 0x35686: 0x6de51e20, 0x35687: 0x6de52020, - 0x35688: 0x6de52220, 0x35689: 0x6de52420, 0x3568a: 0x6de52620, 0x3568b: 0x6de52820, - 0x3568c: 0x6de52a20, 0x3568d: 0x6de52c20, 0x3568e: 0x6de52e20, 0x3568f: 0x6de53020, - 0x35690: 0x6de53220, 0x35691: 0x6de53420, 0x35692: 0x6de53620, 0x35693: 0x6de53820, - 0x35694: 0x6de53a20, 0x35695: 0x6de53c20, 0x35696: 0x6de53e20, 0x35697: 0x6de54020, - 0x35698: 0x6de54220, 0x35699: 0x6de54420, 0x3569a: 0x6de54620, 0x3569b: 0x6de54820, - 0x3569c: 0x6de54a20, 0x3569d: 0x6de54c20, 0x3569e: 0x6de54e20, 0x3569f: 0x6de55020, - 0x356a0: 0x6de55220, 0x356a1: 0x6de55420, 0x356a2: 0x6de55620, 0x356a3: 0x6de55820, - 0x356a4: 0x6de55a20, 0x356a5: 0x6de55c20, 0x356a6: 0x6de55e20, 0x356a7: 0x6de56020, - 0x356a8: 0x6dfbf620, 0x356a9: 0x6dfbf820, 0x356aa: 0x6dfbfa20, 0x356ab: 0x6dfbfc20, - 0x356ac: 0x6dfbfe20, 0x356ad: 0x6dfc0020, 0x356ae: 0x6dfc0220, 0x356af: 0x6dfc0420, - 0x356b0: 0x6dfc0620, 0x356b1: 0x6dfc0820, 0x356b2: 0x6dfc0a20, 0x356b3: 0x6dfc0c20, - 0x356b4: 0x6dfc0e20, 0x356b5: 0x6dfc1020, 0x356b6: 0x6dfc1220, 0x356b7: 0x6dfc1420, - 0x356b8: 0x6dfc1620, 0x356b9: 0x6dfc1820, 0x356ba: 0x6dfc1a20, 0x356bb: 0x6dfc1c20, - 0x356bc: 0x6dfc1e20, 0x356bd: 0x6dfc2020, 0x356be: 0x6dfc2220, 0x356bf: 0x6dfc2420, - // Block 0xd5b, offset 0x356c0 - 0x356c0: 0x6dfc2620, 0x356c1: 0x6dfc2820, 0x356c2: 0x6dfc2a20, 0x356c3: 0x6dfc2c20, - 0x356c4: 0x6dfc2e20, 0x356c5: 0x6dfc3020, 0x356c6: 0x6dfc3220, 0x356c7: 0x6dfc3420, - 0x356c8: 0x6dfc3620, 0x356c9: 0x6dfc3820, 0x356ca: 0x6dfc3a20, 0x356cb: 0x6dfc3c20, - 0x356cc: 0x6dfc3e20, 0x356cd: 0x6dfc4020, 0x356ce: 0x6e0f2220, 0x356cf: 0x6e0f2420, - 0x356d0: 0x6e0f2620, 0x356d1: 0x6e0f2820, 0x356d2: 0x6e0f2a20, 0x356d3: 0x6e0f2c20, - 0x356d4: 0x6e0f2e20, 0x356d5: 0x6e0f3020, 0x356d6: 0x6e0f3220, 0x356d7: 0x6e0f3420, - 0x356d8: 0x6e0f3620, 0x356d9: 0x6e0f3820, 0x356da: 0x6e0f3a20, 0x356db: 0x6e0f3c20, - 0x356dc: 0x6e0f3e20, 0x356dd: 0x6e0f4020, 0x356de: 0x6e0f4220, 0x356df: 0x6e0f4420, - 0x356e0: 0x6e0f4620, 0x356e1: 0x6e0f4820, 0x356e2: 0x6e0f4a20, 0x356e3: 0x6e0f4c20, - 0x356e4: 0x6e0f4e20, 0x356e5: 0x6e0f5020, 0x356e6: 0x6e0f5220, 0x356e7: 0x6e0f5420, - 0x356e8: 0x6e0f5620, 0x356e9: 0x6e0f5820, 0x356ea: 0x6e0f5a20, 0x356eb: 0x6e0f5c20, - 0x356ec: 0x6e0f5e20, 0x356ed: 0x6e0f6020, 0x356ee: 0x6e0f6220, 0x356ef: 0x6e0f6420, - 0x356f0: 0x6e0f6620, 0x356f1: 0x6e0f6820, 0x356f2: 0x6e0f6a20, 0x356f3: 0x6e0f6c20, - 0x356f4: 0x6e0f6e20, 0x356f5: 0x6e0f7020, 0x356f6: 0x6e1e4220, 0x356f7: 0x6e1e4420, - 0x356f8: 0x6e1e4620, 0x356f9: 0x6e1e4820, 0x356fa: 0x6e1e4a20, 0x356fb: 0x6e1e4c20, - 0x356fc: 0x6e1e4e20, 0x356fd: 0x6e1e5020, 0x356fe: 0x6e1e5220, 0x356ff: 0x6e1e5420, - // Block 0xd5c, offset 0x35700 - 0x35700: 0x6e1e5620, 0x35701: 0x6e1e5820, 0x35702: 0x6e1e5a20, 0x35703: 0x6e1e5c20, - 0x35704: 0x6e1e5e20, 0x35705: 0x6e1e6020, 0x35706: 0x6e1e6220, 0x35707: 0x6e1e6420, - 0x35708: 0x6e1e6620, 0x35709: 0x6e1e6820, 0x3570a: 0x6e29a620, 0x3570b: 0x6e29a820, - 0x3570c: 0x6e29aa20, 0x3570d: 0x6e29ac20, 0x3570e: 0x6e29ae20, 0x3570f: 0x6e29b020, - 0x35710: 0x6e29b220, 0x35711: 0x6e29b420, 0x35712: 0x6e29b620, 0x35713: 0x6e29b820, - 0x35714: 0x6e29ba20, 0x35715: 0x6e29bc20, 0x35716: 0x6e29be20, 0x35717: 0x6e29c020, - 0x35718: 0x6e29c220, 0x35719: 0x6e29c420, 0x3571a: 0x6e29c620, 0x3571b: 0x6e29c820, - 0x3571c: 0x6e29ca20, 0x3571d: 0x6e29cc20, 0x3571e: 0x6e29ce20, 0x3571f: 0x6e29d020, - 0x35720: 0x6e32ac20, 0x35721: 0x6e32ae20, 0x35722: 0x6e32b020, 0x35723: 0x6e32b220, - 0x35724: 0x6e32b420, 0x35725: 0x6e32b620, 0x35726: 0x6e32b820, 0x35727: 0x6e32ba20, - 0x35728: 0x6e32bc20, 0x35729: 0x6e38e420, 0x3572a: 0x6e38e620, 0x3572b: 0x6e38e820, - 0x3572c: 0x6e38ea20, 0x3572d: 0x6e38ec20, 0x3572e: 0x6e38ee20, 0x3572f: 0x6e38f020, - 0x35730: 0x6e3d5820, 0x35731: 0x6e3d5a20, 0x35732: 0x6e3d5c20, 0x35733: 0x6e3d5e20, - 0x35734: 0x6e3d6020, 0x35735: 0x6e3d6220, 0x35736: 0x6e3d6420, 0x35737: 0x6e406220, - 0x35738: 0x6e406420, 0x35739: 0x6e406620, 0x3573a: 0x6e406820, 0x3573b: 0x6e406a20, - 0x3573c: 0x6e42b220, 0x3573d: 0x6e42b420, 0x3573e: 0x6e443220, 0x3573f: 0x6e452220, - // Block 0xd5d, offset 0x35740 - 0x35740: 0x6e468020, 0x35741: 0x6e46c820, 0x35742: 0x6c09cc20, 0x35743: 0x6c136620, - 0x35744: 0x6c136820, 0x35745: 0x6c136a20, 0x35746: 0x6c136c20, 0x35747: 0x6c136e20, - 0x35748: 0x6c137020, 0x35749: 0x6c137220, 0x3574a: 0x6c137420, 0x3574b: 0x6c137620, - 0x3574c: 0x6c137820, 0x3574d: 0x6c23aa20, 0x3574e: 0x6c23ac20, 0x3574f: 0x6c23ae20, - 0x35750: 0x6c23b020, 0x35751: 0x6c23b220, 0x35752: 0x6c23b420, 0x35753: 0x6c23b620, - 0x35754: 0x6c23b820, 0x35755: 0x6c23ba20, 0x35756: 0x6c23bc20, 0x35757: 0x6c23be20, - 0x35758: 0x6c23c020, 0x35759: 0x6c23c220, 0x3575a: 0x6c23c420, 0x3575b: 0x6c23c620, - 0x3575c: 0x6c23c820, 0x3575d: 0x6c39d820, 0x3575e: 0x6c39da20, 0x3575f: 0x6c39dc20, - 0x35760: 0x6c39de20, 0x35761: 0x6c39e020, 0x35762: 0x6c39e220, 0x35763: 0x6c39e420, - 0x35764: 0x6c39e620, 0x35765: 0x6c39e820, 0x35766: 0x6c39ea20, 0x35767: 0x6c39ec20, - 0x35768: 0x6c39ee20, 0x35769: 0x6c39f020, 0x3576a: 0x6c39f220, 0x3576b: 0x6c39f420, - 0x3576c: 0x6c39f620, 0x3576d: 0x6c39f820, 0x3576e: 0x6c39fa20, 0x3576f: 0x6c39fc20, - 0x35770: 0x6c39fe20, 0x35771: 0x6c3a0020, 0x35772: 0x6c3a0220, 0x35773: 0x6c3a0420, - 0x35774: 0x6c3a0620, 0x35775: 0x6c3a0820, 0x35776: 0x6c3a0a20, 0x35777: 0x6c3a0c20, - 0x35778: 0x6c3a0e20, 0x35779: 0x6c3a1020, 0x3577a: 0x6c3a1220, 0x3577b: 0x6c3a1420, - 0x3577c: 0x6c557220, 0x3577d: 0x6c557420, 0x3577e: 0x6c557620, 0x3577f: 0x6c557820, - // Block 0xd5e, offset 0x35780 - 0x35780: 0x6c557a20, 0x35781: 0x6c557c20, 0x35782: 0x6c557e20, 0x35783: 0x6c558020, - 0x35784: 0x6c558220, 0x35785: 0x6c558420, 0x35786: 0x6c558620, 0x35787: 0x6c558820, - 0x35788: 0x6c558a20, 0x35789: 0x6c558c20, 0x3578a: 0x6c558e20, 0x3578b: 0x6c559020, - 0x3578c: 0x6c559220, 0x3578d: 0x6c559420, 0x3578e: 0x6c559620, 0x3578f: 0x6c559820, - 0x35790: 0x6c559a20, 0x35791: 0x6c559c20, 0x35792: 0x6c559e20, 0x35793: 0x6c55a020, - 0x35794: 0x6c55a220, 0x35795: 0x6c55a420, 0x35796: 0x6c55a620, 0x35797: 0x6c55a820, - 0x35798: 0x6c55aa20, 0x35799: 0x6c55ac20, 0x3579a: 0x6c55ae20, 0x3579b: 0x6c55b020, - 0x3579c: 0x6c55b220, 0x3579d: 0x6c55b420, 0x3579e: 0x6c55b620, 0x3579f: 0x6c55b820, - 0x357a0: 0x6c55ba20, 0x357a1: 0x6c55bc20, 0x357a2: 0x6c55be20, 0x357a3: 0x6c55c020, - 0x357a4: 0x6c55c220, 0x357a5: 0x6c55c420, 0x357a6: 0x6c55c620, 0x357a7: 0x6c55c820, - 0x357a8: 0x6c55ca20, 0x357a9: 0x6c55cc20, 0x357aa: 0x6c55ce20, 0x357ab: 0x6c55d020, - 0x357ac: 0x6c55d220, 0x357ad: 0x6c55d420, 0x357ae: 0x6c55d620, 0x357af: 0x6c784c20, - 0x357b0: 0x6c784e20, 0x357b1: 0x6c785020, 0x357b2: 0x6c785220, 0x357b3: 0x6c785420, - 0x357b4: 0x6c785620, 0x357b5: 0x6c785820, 0x357b6: 0x6c785a20, 0x357b7: 0x6c785c20, - 0x357b8: 0x6c785e20, 0x357b9: 0x6c786020, 0x357ba: 0x6c786220, 0x357bb: 0x6c786420, - 0x357bc: 0x6c786620, 0x357bd: 0x6c786820, 0x357be: 0x6c786a20, 0x357bf: 0x6c786c20, - // Block 0xd5f, offset 0x357c0 - 0x357c0: 0x6c786e20, 0x357c1: 0x6c787020, 0x357c2: 0x6c787220, 0x357c3: 0x6c787420, - 0x357c4: 0x6c787620, 0x357c5: 0x6c787820, 0x357c6: 0x6c787a20, 0x357c7: 0x6c787c20, - 0x357c8: 0x6c787e20, 0x357c9: 0x6c788020, 0x357ca: 0x6c788220, 0x357cb: 0x6c788420, - 0x357cc: 0x6c788620, 0x357cd: 0x6c788820, 0x357ce: 0x6c788a20, 0x357cf: 0x6c788c20, - 0x357d0: 0x6c788e20, 0x357d1: 0x6c789020, 0x357d2: 0x6c789220, 0x357d3: 0x6c789420, - 0x357d4: 0x6c789620, 0x357d5: 0x6c789820, 0x357d6: 0x6c789a20, 0x357d7: 0x6c789c20, - 0x357d8: 0x6c789e20, 0x357d9: 0x6c78a020, 0x357da: 0x6c78a220, 0x357db: 0x6c78a420, - 0x357dc: 0x6c78a620, 0x357dd: 0x6c78a820, 0x357de: 0x6c78aa20, 0x357df: 0x6c78ac20, - 0x357e0: 0x6c78ae20, 0x357e1: 0x6c78b020, 0x357e2: 0x6c78b220, 0x357e3: 0x6c78b420, - 0x357e4: 0x6c78b620, 0x357e5: 0x6ca14020, 0x357e6: 0x6ca14220, 0x357e7: 0x6ca14420, - 0x357e8: 0x6ca14620, 0x357e9: 0x6ca14820, 0x357ea: 0x6ca14a20, 0x357eb: 0x6ca14c20, - 0x357ec: 0x6ca14e20, 0x357ed: 0x6ca15020, 0x357ee: 0x6ca15220, 0x357ef: 0x6ca15420, - 0x357f0: 0x6ca15620, 0x357f1: 0x6ca15820, 0x357f2: 0x6ca15a20, 0x357f3: 0x6ca15c20, - 0x357f4: 0x6ca15e20, 0x357f5: 0x6ca16020, 0x357f6: 0x6ca16220, 0x357f7: 0x6ca16420, - 0x357f8: 0x6ca16620, 0x357f9: 0x6ca16820, 0x357fa: 0x6ca16a20, 0x357fb: 0x6ca16c20, - 0x357fc: 0x6ca16e20, 0x357fd: 0x6ca17020, 0x357fe: 0x6ca17220, 0x357ff: 0x6ca17420, - // Block 0xd60, offset 0x35800 - 0x35800: 0x6ca17620, 0x35801: 0x6ca17820, 0x35802: 0x6ca17a20, 0x35803: 0x6ca17c20, - 0x35804: 0x6ca17e20, 0x35805: 0x6ca18020, 0x35806: 0x6ca18220, 0x35807: 0x6ca18420, - 0x35808: 0x6ca18620, 0x35809: 0x6ca18820, 0x3580a: 0x6ca18a20, 0x3580b: 0x6ca18c20, - 0x3580c: 0x6ca18e20, 0x3580d: 0x6ca19020, 0x3580e: 0x6ca19220, 0x3580f: 0x6ca19420, - 0x35810: 0x6ca19620, 0x35811: 0x6ca19820, 0x35812: 0x6ca19a20, 0x35813: 0x6ca19c20, - 0x35814: 0x6ca19e20, 0x35815: 0x6ca1a020, 0x35816: 0x6ca1a220, 0x35817: 0x6ca1a420, - 0x35818: 0x6ca1a620, 0x35819: 0x6ca1a820, 0x3581a: 0x6ca1aa20, 0x3581b: 0x6ca1ac20, - 0x3581c: 0x6ca1ae20, 0x3581d: 0x6ca1b020, 0x3581e: 0x6ca1b220, 0x3581f: 0x6ca1b420, - 0x35820: 0x6ca1b620, 0x35821: 0x6ca1b820, 0x35822: 0x6cce4820, 0x35823: 0x6cce4a20, - 0x35824: 0x6cce4c20, 0x35825: 0x6cce4e20, 0x35826: 0x6cce5020, 0x35827: 0x6cce5220, - 0x35828: 0x6cce5420, 0x35829: 0x6cce5620, 0x3582a: 0x6cce5820, 0x3582b: 0x6cce5a20, - 0x3582c: 0x6cce5c20, 0x3582d: 0x6cce5e20, 0x3582e: 0x6cce6020, 0x3582f: 0x6cce6220, - 0x35830: 0x6cce6420, 0x35831: 0x6cce6620, 0x35832: 0x6cce6820, 0x35833: 0x6cce6a20, - 0x35834: 0x6cce6c20, 0x35835: 0x6cce6e20, 0x35836: 0x6cce7020, 0x35837: 0x6cce7220, - 0x35838: 0x6cce7420, 0x35839: 0x6cce7620, 0x3583a: 0x6cce7820, 0x3583b: 0x6cce7a20, - 0x3583c: 0x6cce7c20, 0x3583d: 0x6cce7e20, 0x3583e: 0x6cce8020, 0x3583f: 0x6cce8220, - // Block 0xd61, offset 0x35840 - 0x35840: 0x6cce8420, 0x35841: 0x6cce8620, 0x35842: 0x6cce8820, 0x35843: 0x6cce8a20, - 0x35844: 0x6cce8c20, 0x35845: 0x6cce8e20, 0x35846: 0x6cce9020, 0x35847: 0x6cce9220, - 0x35848: 0x6cce9420, 0x35849: 0x6cce9620, 0x3584a: 0x6cce9820, 0x3584b: 0x6cce9a20, - 0x3584c: 0x6cce9c20, 0x3584d: 0x6cce9e20, 0x3584e: 0x6ccea020, 0x3584f: 0x6ccea220, - 0x35850: 0x6ccea420, 0x35851: 0x6ccea620, 0x35852: 0x6ccea820, 0x35853: 0x6cceaa20, - 0x35854: 0x6cceac20, 0x35855: 0x6cceae20, 0x35856: 0x6cceb020, 0x35857: 0x6cceb220, - 0x35858: 0x6cceb420, 0x35859: 0x6cceb620, 0x3585a: 0x6cceb820, 0x3585b: 0x6cceba20, - 0x3585c: 0x6ccebc20, 0x3585d: 0x6ccebe20, 0x3585e: 0x6ccec020, 0x3585f: 0x6ccec220, - 0x35860: 0x6ccec420, 0x35861: 0x6ccec620, 0x35862: 0x6ccec820, 0x35863: 0x6cceca20, - 0x35864: 0x6ccecc20, 0x35865: 0x6ccece20, 0x35866: 0x6cced020, 0x35867: 0x6cced220, - 0x35868: 0x6cced420, 0x35869: 0x6cced620, 0x3586a: 0x6cced820, 0x3586b: 0x6cceda20, - 0x3586c: 0x6ccedc20, 0x3586d: 0x6ccede20, 0x3586e: 0x6ccee020, 0x3586f: 0x6ccee220, - 0x35870: 0x6ccee420, 0x35871: 0x6ccee620, 0x35872: 0x6cfc6820, 0x35873: 0x6cfc6a20, - 0x35874: 0x6cfc6c20, 0x35875: 0x6cfc6e20, 0x35876: 0x6cfc7020, 0x35877: 0x6cfc7220, - 0x35878: 0x6cfc7420, 0x35879: 0x6cfc7620, 0x3587a: 0x6cfc7820, 0x3587b: 0x6cfc7a20, - 0x3587c: 0x6cfc7c20, 0x3587d: 0x6cfc7e20, 0x3587e: 0x6cfc8020, 0x3587f: 0x6cfc8220, - // Block 0xd62, offset 0x35880 - 0x35880: 0x6cfc8420, 0x35881: 0x6cfc8620, 0x35882: 0x6cfc8820, 0x35883: 0x6cfc8a20, - 0x35884: 0x6cfc8c20, 0x35885: 0x6cfc8e20, 0x35886: 0x6cfc9020, 0x35887: 0x6cfc9220, - 0x35888: 0x6cfc9420, 0x35889: 0x6cfc9620, 0x3588a: 0x6cfc9820, 0x3588b: 0x6cfc9a20, - 0x3588c: 0x6cfc9c20, 0x3588d: 0x6cfc9e20, 0x3588e: 0x6cfca020, 0x3588f: 0x6cfca220, - 0x35890: 0x6cfca420, 0x35891: 0x6cfca620, 0x35892: 0x6cfca820, 0x35893: 0x6cfcaa20, - 0x35894: 0x6cfcac20, 0x35895: 0x6cfcae20, 0x35896: 0x6cfcb020, 0x35897: 0x6cfcb220, - 0x35898: 0x6cfcb420, 0x35899: 0x6cfcb620, 0x3589a: 0x6cfcb820, 0x3589b: 0x6cfcba20, - 0x3589c: 0x6cfcbc20, 0x3589d: 0x6cfcbe20, 0x3589e: 0x6cfcc020, 0x3589f: 0x6cfcc220, - 0x358a0: 0x6cfcc420, 0x358a1: 0x6cfcc620, 0x358a2: 0x6cfcc820, 0x358a3: 0x6cfcca20, - 0x358a4: 0x6cfccc20, 0x358a5: 0x6cfcce20, 0x358a6: 0x6cfcd020, 0x358a7: 0x6cfcd220, - 0x358a8: 0x6cfcd420, 0x358a9: 0x6cfcd620, 0x358aa: 0x6cfcd820, 0x358ab: 0x6cfcda20, - 0x358ac: 0x6cfcdc20, 0x358ad: 0x6cfcde20, 0x358ae: 0x6cfce020, 0x358af: 0x6cfce220, - 0x358b0: 0x6cfce420, 0x358b1: 0x6cfce620, 0x358b2: 0x6cfce820, 0x358b3: 0x6cb74620, - 0x358b4: 0x6cfcea20, 0x358b5: 0x6cfcec20, 0x358b6: 0x6cfcee20, 0x358b7: 0x6cfcf020, - 0x358b8: 0x6cfcf220, 0x358b9: 0x6cfcf420, 0x358ba: 0x6cfcf620, 0x358bb: 0x6cfcf820, - 0x358bc: 0x6cfcfa20, 0x358bd: 0x6cfcfc20, 0x358be: 0x6cfcfe20, 0x358bf: 0x6cfd0020, - // Block 0xd63, offset 0x358c0 - 0x358c0: 0x6cfd0220, 0x358c1: 0x6cfd0420, 0x358c2: 0x6cfd0620, 0x358c3: 0x6cfd0820, - 0x358c4: 0x6cfd0a20, 0x358c5: 0x6cfd0c20, 0x358c6: 0x6cfd0e20, 0x358c7: 0x6d2b2c20, - 0x358c8: 0x6d2b2e20, 0x358c9: 0x6d2b3020, 0x358ca: 0x6d2b3220, 0x358cb: 0x6d2b3420, - 0x358cc: 0x6d2b3620, 0x358cd: 0x6d2b3820, 0x358ce: 0x6d2b3a20, 0x358cf: 0x6d2b3c20, - 0x358d0: 0x6d2b3e20, 0x358d1: 0x6d2b4020, 0x358d2: 0x6d2b4220, 0x358d3: 0x6d2b4420, - 0x358d4: 0x6d2b4620, 0x358d5: 0x6d2b4820, 0x358d6: 0x6d2b4a20, 0x358d7: 0x6d2b4c20, - 0x358d8: 0x6d2b4e20, 0x358d9: 0x6d2b5020, 0x358da: 0x6d2b5220, 0x358db: 0x6d2b5420, - 0x358dc: 0x6d2b5620, 0x358dd: 0x6d2b5820, 0x358de: 0x6d2b5a20, 0x358df: 0x6d2b5c20, - 0x358e0: 0x6d2b5e20, 0x358e1: 0x6d2b6020, 0x358e2: 0x6d2b6220, 0x358e3: 0x6d2b6420, - 0x358e4: 0x6d2b6620, 0x358e5: 0x6d2b6820, 0x358e6: 0x6d2b6a20, 0x358e7: 0x6d2b6c20, - 0x358e8: 0x6d2b6e20, 0x358e9: 0x6d2b7020, 0x358ea: 0x6d2b7220, 0x358eb: 0x6d2b7420, - 0x358ec: 0x6d2b7620, 0x358ed: 0x6d2b7820, 0x358ee: 0x6d2b7a20, 0x358ef: 0x6d2b7c20, - 0x358f0: 0x6d2b7e20, 0x358f1: 0x6d2b8020, 0x358f2: 0x6d585a20, 0x358f3: 0x6d2b8220, - 0x358f4: 0x6d2b8420, 0x358f5: 0x6d2b8620, 0x358f6: 0x6d2b8820, 0x358f7: 0x6d2b8a20, - 0x358f8: 0x6d2b8c20, 0x358f9: 0x6d2b8e20, 0x358fa: 0x6d2b9020, 0x358fb: 0x6d2b9220, - 0x358fc: 0x6d2b9420, 0x358fd: 0x6d2b9620, 0x358fe: 0x6d2b9820, 0x358ff: 0x6d2b9a20, - // Block 0xd64, offset 0x35900 - 0x35900: 0x6d2b9c20, 0x35901: 0x6d2b9e20, 0x35902: 0x6d2ba020, 0x35903: 0x6d2ba220, - 0x35904: 0x6d2ba420, 0x35905: 0x6d2ba620, 0x35906: 0x6d2ba820, 0x35907: 0x6d2baa20, - 0x35908: 0x6d2bac20, 0x35909: 0x6d2bae20, 0x3590a: 0x6d2bb020, 0x3590b: 0x6d2bb220, - 0x3590c: 0x6d2bb420, 0x3590d: 0x6d2bb620, 0x3590e: 0x6d2bb820, 0x3590f: 0x6cfd1020, - 0x35910: 0x6d585c20, 0x35911: 0x6d585e20, 0x35912: 0x6d586020, 0x35913: 0x6d586220, - 0x35914: 0x6d586420, 0x35915: 0x6d586620, 0x35916: 0x6d586820, 0x35917: 0x6d586a20, - 0x35918: 0x6d586c20, 0x35919: 0x6d586e20, 0x3591a: 0x6d587020, 0x3591b: 0x6d587220, - 0x3591c: 0x6d587420, 0x3591d: 0x6d587620, 0x3591e: 0x6d587820, 0x3591f: 0x6d587a20, - 0x35920: 0x6d587c20, 0x35921: 0x6d587e20, 0x35922: 0x6d588020, 0x35923: 0x6d588220, - 0x35924: 0x6d588420, 0x35925: 0x6d588620, 0x35926: 0x6d588820, 0x35927: 0x6d588a20, - 0x35928: 0x6d588c20, 0x35929: 0x6d836620, 0x3592a: 0x6d588e20, 0x3592b: 0x6d589020, - 0x3592c: 0x6d589220, 0x3592d: 0x6d589420, 0x3592e: 0x6d589620, 0x3592f: 0x6d589820, - 0x35930: 0x6d589a20, 0x35931: 0x6d589c20, 0x35932: 0x6d589e20, 0x35933: 0x6d58a020, - 0x35934: 0x6d58a220, 0x35935: 0x6d58a420, 0x35936: 0x6d58a620, 0x35937: 0x6d58a820, - 0x35938: 0x6d58aa20, 0x35939: 0x6d58ac20, 0x3593a: 0x6d58ae20, 0x3593b: 0x6d58b020, - 0x3593c: 0x6d58b220, 0x3593d: 0x6d58b420, 0x3593e: 0x6d58b620, 0x3593f: 0x6d58b820, - // Block 0xd65, offset 0x35940 - 0x35940: 0x6d385220, 0x35941: 0x6d58ba20, 0x35942: 0x6d705e20, 0x35943: 0x6d58bc20, - 0x35944: 0x6d58be20, 0x35945: 0x6d58c020, 0x35946: 0x6d58c220, 0x35947: 0x6d58c420, - 0x35948: 0x6d58c620, 0x35949: 0x6d58c820, 0x3594a: 0x6d58ca20, 0x3594b: 0x6d58cc20, - 0x3594c: 0x6d58ce20, 0x3594d: 0x6d58d020, 0x3594e: 0x6d58d220, 0x3594f: 0x6d58d420, - 0x35950: 0x6d58d620, 0x35951: 0x6d58d820, 0x35952: 0x6d58da20, 0x35953: 0x6d58dc20, - 0x35954: 0x6d58de20, 0x35955: 0x6d58e020, 0x35956: 0x6d58e220, 0x35957: 0x6d58e420, - 0x35958: 0x6d58e620, 0x35959: 0x6d58e820, 0x3595a: 0x6d58ea20, 0x3595b: 0x6d58ec20, - 0x3595c: 0x6d58ee20, 0x3595d: 0x6d836820, 0x3595e: 0x6d836a20, 0x3595f: 0x6d836c20, - 0x35960: 0x6d836e20, 0x35961: 0x6d837020, 0x35962: 0x6d837220, 0x35963: 0x6d837420, - 0x35964: 0x6d837620, 0x35965: 0x6d837820, 0x35966: 0x6d837a20, 0x35967: 0x6d837c20, - 0x35968: 0x6d837e20, 0x35969: 0x6d838020, 0x3596a: 0x6d838220, 0x3596b: 0x6d838420, - 0x3596c: 0x6d838620, 0x3596d: 0x6d838820, 0x3596e: 0x6d838a20, 0x3596f: 0x6d838c20, - 0x35970: 0x6d838e20, 0x35971: 0x6d839020, 0x35972: 0x6d839220, 0x35973: 0x6d839420, - 0x35974: 0x6d839620, 0x35975: 0x6d839820, 0x35976: 0x6d839a20, 0x35977: 0x6d839c20, - 0x35978: 0x6d839e20, 0x35979: 0x6d83a020, 0x3597a: 0x6d83a220, 0x3597b: 0x6d83a420, - 0x3597c: 0x6d83a620, 0x3597d: 0x6d83a820, 0x3597e: 0x6d83aa20, 0x3597f: 0x6d83ac20, - // Block 0xd66, offset 0x35980 - 0x35980: 0x6d83ae20, 0x35981: 0x6d83b020, 0x35982: 0x6d83b220, 0x35983: 0x6d83b420, - 0x35984: 0x6d83b620, 0x35985: 0x6d83b820, 0x35986: 0x6d83ba20, 0x35987: 0x6d83bc20, - 0x35988: 0x6d83be20, 0x35989: 0x6d83c020, 0x3598a: 0x6d83c220, 0x3598b: 0x6d83c420, - 0x3598c: 0x6d83c620, 0x3598d: 0x6d83c820, 0x3598e: 0x6d83ca20, 0x3598f: 0x6d83cc20, - 0x35990: 0x6d83ce20, 0x35991: 0x6d83d020, 0x35992: 0x6d83d220, 0x35993: 0x6d83d420, - 0x35994: 0x6d83d620, 0x35995: 0x6d83d820, 0x35996: 0x6d83da20, 0x35997: 0x6d83dc20, - 0x35998: 0x6d83de20, 0x35999: 0x6d83e020, 0x3599a: 0x6d83e220, 0x3599b: 0x6d83e420, - 0x3599c: 0x6d83e620, 0x3599d: 0x6d83e820, 0x3599e: 0x6d83ea20, 0x3599f: 0x6d83ec20, - 0x359a0: 0x6d793420, 0x359a1: 0x6d83ee20, 0x359a2: 0x6d83f020, 0x359a3: 0x6d83f220, - 0x359a4: 0x6d83f420, 0x359a5: 0x6d83f620, 0x359a6: 0x6d83f820, 0x359a7: 0x6d83fa20, - 0x359a8: 0x6d83fc20, 0x359a9: 0x6d83fe20, 0x359aa: 0x6d840020, 0x359ab: 0x6d840220, - 0x359ac: 0x6d840420, 0x359ad: 0x6d840620, 0x359ae: 0x6d840820, 0x359af: 0x6d840a20, - 0x359b0: 0x6d840c20, 0x359b1: 0x6d840e20, 0x359b2: 0x6d841020, 0x359b3: 0x6d841220, - 0x359b4: 0x6d841420, 0x359b5: 0x6da8ae20, 0x359b6: 0x6da8b020, 0x359b7: 0x6da8b220, - 0x359b8: 0x6da8b420, 0x359b9: 0x6da8b620, 0x359ba: 0x6da8b820, 0x359bb: 0x6da8ba20, - 0x359bc: 0x6da8bc20, 0x359bd: 0x6da8be20, 0x359be: 0x6da8c020, 0x359bf: 0x6da8c220, - // Block 0xd67, offset 0x359c0 - 0x359c0: 0x6da8c420, 0x359c1: 0x6da8c620, 0x359c2: 0x6da8c820, 0x359c3: 0x6da8ca20, - 0x359c4: 0x6da8cc20, 0x359c5: 0x6da8ce20, 0x359c6: 0x6da8d020, 0x359c7: 0x6da8d220, - 0x359c8: 0x6da8d420, 0x359c9: 0x6da8d620, 0x359ca: 0x6da8d820, 0x359cb: 0x6da8da20, - 0x359cc: 0x6da8dc20, 0x359cd: 0x6da8de20, 0x359ce: 0x6da8e020, 0x359cf: 0x6da8e220, - 0x359d0: 0x6da8e420, 0x359d1: 0x6da8e620, 0x359d2: 0x6da8e820, 0x359d3: 0x6da8ea20, - 0x359d4: 0x6da8ec20, 0x359d5: 0x6da8ee20, 0x359d6: 0x6da8f020, 0x359d7: 0x6da8f220, - 0x359d8: 0x6da8f420, 0x359d9: 0x6da8f620, 0x359da: 0x6da8f820, 0x359db: 0x6da8fa20, - 0x359dc: 0x6da8fc20, 0x359dd: 0x6da8fe20, 0x359de: 0x6da90020, 0x359df: 0x6da90220, - 0x359e0: 0x6da90420, 0x359e1: 0x6da90620, 0x359e2: 0x6da90820, 0x359e3: 0x6da90a20, - 0x359e4: 0x6dc9d420, 0x359e5: 0x6dc9d620, 0x359e6: 0x6dc9d820, 0x359e7: 0x6dc9da20, - 0x359e8: 0x6dc9dc20, 0x359e9: 0x6dc9de20, 0x359ea: 0x6dc9e020, 0x359eb: 0x6dc9e220, - 0x359ec: 0x6dc9e420, 0x359ed: 0x6dc9e620, 0x359ee: 0x6dc9e820, 0x359ef: 0x6dc9ea20, - 0x359f0: 0x6dc9ec20, 0x359f1: 0x6dc9ee20, 0x359f2: 0x6dc9f020, 0x359f3: 0x6dc9f220, - 0x359f4: 0x6dc9f420, 0x359f5: 0x6dc9f620, 0x359f6: 0x6dc9f820, 0x359f7: 0x6dc9fa20, - 0x359f8: 0x6dc9fc20, 0x359f9: 0x6dc9fe20, 0x359fa: 0x6dca0020, 0x359fb: 0x6dca0220, - 0x359fc: 0x6dca0420, 0x359fd: 0x6dca0620, 0x359fe: 0x6dca0820, 0x359ff: 0x6dca0a20, - // Block 0xd68, offset 0x35a00 - 0x35a00: 0x6dca0c20, 0x35a01: 0x6dca0e20, 0x35a02: 0x6dca1020, 0x35a03: 0x6dd07420, - 0x35a04: 0x6dca1220, 0x35a05: 0x6dca1420, 0x35a06: 0x6dca1620, 0x35a07: 0x6dca1820, - 0x35a08: 0x6dca1a20, 0x35a09: 0x6dca1c20, 0x35a0a: 0x6dca1e20, 0x35a0b: 0x6dca2020, - 0x35a0c: 0x6dca2220, 0x35a0d: 0x6dca2420, 0x35a0e: 0x6dca2620, 0x35a0f: 0x6dca2820, - 0x35a10: 0x6dca2a20, 0x35a11: 0x6dca2c20, 0x35a12: 0x6de58e20, 0x35a13: 0x6de59020, - 0x35a14: 0x6de59220, 0x35a15: 0x6de59420, 0x35a16: 0x6de59620, 0x35a17: 0x6de59820, - 0x35a18: 0x6de59a20, 0x35a19: 0x6de59c20, 0x35a1a: 0x6de59e20, 0x35a1b: 0x6de5a020, - 0x35a1c: 0x6de5a220, 0x35a1d: 0x6de5a420, 0x35a1e: 0x6de5a620, 0x35a1f: 0x6de5a820, - 0x35a20: 0x6de5aa20, 0x35a21: 0x6de5ac20, 0x35a22: 0x6de5ae20, 0x35a23: 0x6de5b020, - 0x35a24: 0x6de5b220, 0x35a25: 0x6de5b420, 0x35a26: 0x6de5b620, 0x35a27: 0x6de5b820, - 0x35a28: 0x6de5ba20, 0x35a29: 0x6de5bc20, 0x35a2a: 0x6de5be20, 0x35a2b: 0x6de5c020, - 0x35a2c: 0x6de5c220, 0x35a2d: 0x6de5c420, 0x35a2e: 0x6de5c620, 0x35a2f: 0x6de5c820, - 0x35a30: 0x6de5ca20, 0x35a31: 0x6de5cc20, 0x35a32: 0x6de5ce20, 0x35a33: 0x6dfc6620, - 0x35a34: 0x6dfc6820, 0x35a35: 0x6dfc6a20, 0x35a36: 0x6dfc6c20, 0x35a37: 0x6dfc6e20, - 0x35a38: 0x6dfc7020, 0x35a39: 0x6dfc7220, 0x35a3a: 0x6dfc7420, 0x35a3b: 0x6dfc7620, - 0x35a3c: 0x6dfc7820, 0x35a3d: 0x6dfc7a20, 0x35a3e: 0x6dfc7c20, 0x35a3f: 0x6dfc7e20, - // Block 0xd69, offset 0x35a40 - 0x35a40: 0x6dfc8020, 0x35a41: 0x6dfc8220, 0x35a42: 0x6dfc8420, 0x35a43: 0x6dfc8620, - 0x35a44: 0x6dfc8820, 0x35a45: 0x6dfc8a20, 0x35a46: 0x6dfc8c20, 0x35a47: 0x6dfc8e20, - 0x35a48: 0x6dfc9020, 0x35a49: 0x6dfc9220, 0x35a4a: 0x6dfc9420, 0x35a4b: 0x6dfc9620, - 0x35a4c: 0x6dfc9820, 0x35a4d: 0x6dfc9a20, 0x35a4e: 0x6dfc9c20, 0x35a4f: 0x6dfc9e20, - 0x35a50: 0x6dfca020, 0x35a51: 0x6dfca220, 0x35a52: 0x6dfca420, 0x35a53: 0x6dfca620, - 0x35a54: 0x6dfca820, 0x35a55: 0x6dfcaa20, 0x35a56: 0x6dfcac20, 0x35a57: 0x6dfcae20, - 0x35a58: 0x6dfcb020, 0x35a59: 0x6dfcb220, 0x35a5a: 0x6dfcb420, 0x35a5b: 0x6dfcb620, - 0x35a5c: 0x6dfcb820, 0x35a5d: 0x6dfcba20, 0x35a5e: 0x6dfcbc20, 0x35a5f: 0x6dfcbe20, - 0x35a60: 0x6dfcc020, 0x35a61: 0x6e0f8420, 0x35a62: 0x6e0f8620, 0x35a63: 0x6e0f8820, - 0x35a64: 0x6e0f8a20, 0x35a65: 0x6e0f8c20, 0x35a66: 0x6e0f8e20, 0x35a67: 0x6e0f9020, - 0x35a68: 0x6dfcc220, 0x35a69: 0x6e1e7820, 0x35a6a: 0x6e0f9220, 0x35a6b: 0x6e0f9420, - 0x35a6c: 0x6e0f9620, 0x35a6d: 0x6e0f9820, 0x35a6e: 0x6e0f9a20, 0x35a6f: 0x6e0f9c20, - 0x35a70: 0x6e0f9e20, 0x35a71: 0x6e0fa020, 0x35a72: 0x6e0fa220, 0x35a73: 0x6e0fa420, - 0x35a74: 0x6e0fa620, 0x35a75: 0x6e0fa820, 0x35a76: 0x6e0faa20, 0x35a77: 0x6e0fac20, - 0x35a78: 0x6e0fae20, 0x35a79: 0x6e0fb020, 0x35a7a: 0x6e1e7a20, 0x35a7b: 0x6e1e7c20, - 0x35a7c: 0x6e29de20, 0x35a7d: 0x6e1e7e20, 0x35a7e: 0x6e1e8020, 0x35a7f: 0x6e1e8220, - // Block 0xd6a, offset 0x35a80 - 0x35a80: 0x6e1e8420, 0x35a81: 0x6e1e8620, 0x35a82: 0x6e1e8820, 0x35a83: 0x6e1e8a20, - 0x35a84: 0x6e1e8c20, 0x35a85: 0x6e1e8e20, 0x35a86: 0x6e1e9020, 0x35a87: 0x6e1e9220, - 0x35a88: 0x6e29e020, 0x35a89: 0x6e29e220, 0x35a8a: 0x6e29e420, 0x35a8b: 0x6e29e620, - 0x35a8c: 0x6e29e820, 0x35a8d: 0x6e29ea20, 0x35a8e: 0x6e29ec20, 0x35a8f: 0x6e2b4a20, - 0x35a90: 0x6e29ee20, 0x35a91: 0x6e29f020, 0x35a92: 0x6e29f220, 0x35a93: 0x6e29f420, - 0x35a94: 0x6e29f620, 0x35a95: 0x6e29f820, 0x35a96: 0x6e29fa20, 0x35a97: 0x6e32c220, - 0x35a98: 0x6e32c420, 0x35a99: 0x6e32c620, 0x35a9a: 0x6e32c820, 0x35a9b: 0x6e32ca20, - 0x35a9c: 0x6e38f820, 0x35a9d: 0x6e38fa20, 0x35a9e: 0x6e38fc20, 0x35a9f: 0x6e33dc20, - 0x35aa0: 0x6e38fe20, 0x35aa1: 0x6e390020, 0x35aa2: 0x6e390220, 0x35aa3: 0x6e390420, - 0x35aa4: 0x6e3d6820, 0x35aa5: 0x6e3d6a20, 0x35aa6: 0x6e406c20, 0x35aa7: 0x6e406e20, - 0x35aa8: 0x6e407020, 0x35aa9: 0x6e407220, 0x35aaa: 0x6e42b820, 0x35aab: 0x6e443620, - 0x35aac: 0x6e42ba20, 0x35aad: 0x6e452420, 0x35aae: 0x6e468420, 0x35aaf: 0x6c04da20, - 0x35ab0: 0x6c04dc20, 0x35ab1: 0x6c09d020, 0x35ab2: 0x6c23d020, 0x35ab3: 0x6c23d220, - 0x35ab4: 0x6c23d420, 0x35ab5: 0x6c23d620, 0x35ab6: 0x6c3a2c20, 0x35ab7: 0x6c3a2e20, - 0x35ab8: 0x6c3a3020, 0x35ab9: 0x6c3a3220, 0x35aba: 0x6c3a3420, 0x35abb: 0x6c3a3620, - 0x35abc: 0x6c3a3820, 0x35abd: 0x6c55f420, 0x35abe: 0x6c55f620, 0x35abf: 0x6c55f820, - // Block 0xd6b, offset 0x35ac0 - 0x35ac0: 0x6c55fa20, 0x35ac1: 0x6c55fc20, 0x35ac2: 0x6c55fe20, 0x35ac3: 0x6c560020, - 0x35ac4: 0x6c560220, 0x35ac5: 0x6c560420, 0x35ac6: 0x6c560620, 0x35ac7: 0x6c560820, - 0x35ac8: 0x6c560a20, 0x35ac9: 0x6c560c20, 0x35aca: 0x6c560e20, 0x35acb: 0x6c561020, - 0x35acc: 0x6c78cc20, 0x35acd: 0x6c78ce20, 0x35ace: 0x6c78d020, 0x35acf: 0x6c78d220, - 0x35ad0: 0x6ca1d020, 0x35ad1: 0x6ca1d220, 0x35ad2: 0x6ca1d420, 0x35ad3: 0x6ca1d620, - 0x35ad4: 0x6ccf0c20, 0x35ad5: 0x6ccf0e20, 0x35ad6: 0x6ccf1020, 0x35ad7: 0x6cbc6220, - 0x35ad8: 0x6ccf1220, 0x35ad9: 0x6ccf1420, 0x35ada: 0x6ccf1620, 0x35adb: 0x6ccf1820, - 0x35adc: 0x6cfd2e20, 0x35add: 0x6cfd3020, 0x35ade: 0x6cfd3220, 0x35adf: 0x6cfd3420, - 0x35ae0: 0x6cfd3620, 0x35ae1: 0x6cfd3820, 0x35ae2: 0x6d2bde20, 0x35ae3: 0x6d2be020, - 0x35ae4: 0x6d2be220, 0x35ae5: 0x6d2be420, 0x35ae6: 0x6d2be620, 0x35ae7: 0x6d590620, - 0x35ae8: 0x6d590820, 0x35ae9: 0x6d590a20, 0x35aea: 0x6d590c20, 0x35aeb: 0x6d590e20, - 0x35aec: 0x6d591020, 0x35aed: 0x6d591220, 0x35aee: 0x6d842a20, 0x35aef: 0x6d842c20, - 0x35af0: 0x6d842e20, 0x35af1: 0x6d843020, 0x35af2: 0x6da91c20, 0x35af3: 0x6da91e20, - 0x35af4: 0x6da92020, 0x35af5: 0x6da92220, 0x35af6: 0x6da92420, 0x35af7: 0x6da92620, - 0x35af8: 0x6da92820, 0x35af9: 0x6dca3a20, 0x35afa: 0x6de5d420, 0x35afb: 0x6dca3c20, - 0x35afc: 0x6da92a20, 0x35afd: 0x6dca3e20, 0x35afe: 0x6dca4020, 0x35aff: 0x6de5d620, - // Block 0xd6c, offset 0x35b00 - 0x35b00: 0x6de5d820, 0x35b01: 0x6de9a820, 0x35b02: 0x6dfcca20, 0x35b03: 0x6dfccc20, - 0x35b04: 0x6dfcce20, 0x35b05: 0x6dfcd020, 0x35b06: 0x6dfcd220, 0x35b07: 0x6e0fb420, - 0x35b08: 0x6e29fe20, 0x35b09: 0x6e2a0020, 0x35b0a: 0x6e2a0220, 0x35b0b: 0x6e32ce20, - 0x35b0c: 0x6e390a20, 0x35b0d: 0x6e390c20, 0x35b0e: 0x6c23da20, 0x35b0f: 0x6c23dc20, - 0x35b10: 0x6c3a3c20, 0x35b11: 0x6c3a3e20, 0x35b12: 0x6c561620, 0x35b13: 0x6c78d820, - 0x35b14: 0x6c78da20, 0x35b15: 0x6ca1dc20, 0x35b16: 0x6ccf2220, 0x35b17: 0x6ccf2420, - 0x35b18: 0x6cfd4220, 0x35b19: 0x6d2be820, 0x35b1a: 0x6d2bea20, 0x35b1b: 0x6d843220, - 0x35b1c: 0x6c09d220, 0x35b1d: 0x6c3a4220, 0x35b1e: 0x6c561a20, 0x35b1f: 0x6c561c20, - 0x35b20: 0x6c78de20, 0x35b21: 0x6c78e020, 0x35b22: 0x6ca1e220, 0x35b23: 0x6ccf2620, - 0x35b24: 0x6cfd4420, 0x35b25: 0x6cfd4620, 0x35b26: 0x6d591820, 0x35b27: 0x6d591a20, - 0x35b28: 0x6d591c20, 0x35b29: 0x6d843420, 0x35b2a: 0x6c04e620, 0x35b2b: 0x6c09d420, - 0x35b2c: 0x6c09d620, 0x35b2d: 0x6c137c20, 0x35b2e: 0x6c23de20, 0x35b2f: 0x6c3a4820, - 0x35b30: 0x6c3a4a20, 0x35b31: 0x6c3a4c20, 0x35b32: 0x6c562220, 0x35b33: 0x6c562420, - 0x35b34: 0x6c562620, 0x35b35: 0x6c562820, 0x35b36: 0x6c78e420, 0x35b37: 0x6c78e620, - 0x35b38: 0x6c78e820, 0x35b39: 0x6c78ea20, 0x35b3a: 0x6c78ec20, 0x35b3b: 0x6ca1e420, - 0x35b3c: 0x6ca1e620, 0x35b3d: 0x6ca1e820, 0x35b3e: 0x6ca1ea20, 0x35b3f: 0x6ca1ec20, - // Block 0xd6d, offset 0x35b40 - 0x35b40: 0x6ca1ee20, 0x35b41: 0x6ca1f020, 0x35b42: 0x6ca1f220, 0x35b43: 0x6ca1f420, - 0x35b44: 0x6ccf2a20, 0x35b45: 0x6ccf2c20, 0x35b46: 0x6ccf2e20, 0x35b47: 0x6ccf3020, - 0x35b48: 0x6ccf3220, 0x35b49: 0x6ccf3420, 0x35b4a: 0x6ccf3620, 0x35b4b: 0x6ccf3820, - 0x35b4c: 0x6cfd4a20, 0x35b4d: 0x6cfd4c20, 0x35b4e: 0x6cfd4e20, 0x35b4f: 0x6d2bf220, - 0x35b50: 0x6d2bf420, 0x35b51: 0x6d2bf620, 0x35b52: 0x6d2bf820, 0x35b53: 0x6d592020, - 0x35b54: 0x6d592220, 0x35b55: 0x6d592420, 0x35b56: 0x6d843620, 0x35b57: 0x6d843820, - 0x35b58: 0x6d843a20, 0x35b59: 0x6d843c20, 0x35b5a: 0x6d843e20, 0x35b5b: 0x6d844020, - 0x35b5c: 0x6da93420, 0x35b5d: 0x6da93620, 0x35b5e: 0x6da93820, 0x35b5f: 0x6da93a20, - 0x35b60: 0x6de5de20, 0x35b61: 0x6de5e020, 0x35b62: 0x6dfcd420, 0x35b63: 0x6e1e9820, - 0x35b64: 0x6e2a0420, 0x35b65: 0x6e407620, 0x35b66: 0x6e42bc20, 0x35b67: 0x6e42be20, - 0x35b68: 0x6c09d820, 0x35b69: 0x6c23e020, 0x35b6a: 0x6c23e220, 0x35b6b: 0x6c23e420, - 0x35b6c: 0x6c3a5420, 0x35b6d: 0x6c3a5620, 0x35b6e: 0x6c3a5820, 0x35b6f: 0x6c3a5a20, - 0x35b70: 0x6c3a5c20, 0x35b71: 0x6c562e20, 0x35b72: 0x6c563020, 0x35b73: 0x6c563220, - 0x35b74: 0x6c563420, 0x35b75: 0x6c563620, 0x35b76: 0x6c563820, 0x35b77: 0x6c563a20, - 0x35b78: 0x6c563c20, 0x35b79: 0x6c563e20, 0x35b7a: 0x6c78f420, 0x35b7b: 0x6c78f620, - 0x35b7c: 0x6c78f820, 0x35b7d: 0x6c78fa20, 0x35b7e: 0x6c78fc20, 0x35b7f: 0x6c78fe20, - // Block 0xd6e, offset 0x35b80 - 0x35b80: 0x6ca1f820, 0x35b81: 0x6ca1fa20, 0x35b82: 0x6ca1fc20, 0x35b83: 0x6ca1fe20, - 0x35b84: 0x6ca20020, 0x35b85: 0x6ca20220, 0x35b86: 0x6ca20420, 0x35b87: 0x6ccf4220, - 0x35b88: 0x6ccf4420, 0x35b89: 0x6ccf4620, 0x35b8a: 0x6ccf4820, 0x35b8b: 0x6ccf4a20, - 0x35b8c: 0x6ccf4c20, 0x35b8d: 0x6ccf4e20, 0x35b8e: 0x6ccf5020, 0x35b8f: 0x6ccf5220, - 0x35b90: 0x6ccf5420, 0x35b91: 0x6ccf5620, 0x35b92: 0x6ccf5820, 0x35b93: 0x6ccf5a20, - 0x35b94: 0x6ccf5c20, 0x35b95: 0x6ccf5e20, 0x35b96: 0x6ccf6020, 0x35b97: 0x6ccf6220, - 0x35b98: 0x6cfd5a20, 0x35b99: 0x6cfd5c20, 0x35b9a: 0x6cfd5e20, 0x35b9b: 0x6cfd6020, - 0x35b9c: 0x6cfd6220, 0x35b9d: 0x6cfd6420, 0x35b9e: 0x6cfd6620, 0x35b9f: 0x6cfd6820, - 0x35ba0: 0x6cfd6a20, 0x35ba1: 0x6cfd6c20, 0x35ba2: 0x6d2c0020, 0x35ba3: 0x6d2c0220, - 0x35ba4: 0x6d2c0420, 0x35ba5: 0x6d2c0620, 0x35ba6: 0x6d2c0820, 0x35ba7: 0x6d2c0a20, - 0x35ba8: 0x6d592e20, 0x35ba9: 0x6d593020, 0x35baa: 0x6d593220, 0x35bab: 0x6d593420, - 0x35bac: 0x6d593620, 0x35bad: 0x6d593820, 0x35bae: 0x6d593a20, 0x35baf: 0x6d593c20, - 0x35bb0: 0x6d593e20, 0x35bb1: 0x6d594020, 0x35bb2: 0x6d594220, 0x35bb3: 0x6d844220, - 0x35bb4: 0x6d844420, 0x35bb5: 0x6d844620, 0x35bb6: 0x6d844820, 0x35bb7: 0x6d844a20, - 0x35bb8: 0x6d844c20, 0x35bb9: 0x6d844e20, 0x35bba: 0x6da93e20, 0x35bbb: 0x6da94020, - 0x35bbc: 0x6da94220, 0x35bbd: 0x6da94420, 0x35bbe: 0x6da94620, 0x35bbf: 0x6dca4620, - // Block 0xd6f, offset 0x35bc0 - 0x35bc0: 0x6dca4820, 0x35bc1: 0x6dca4a20, 0x35bc2: 0x6dca4c20, 0x35bc3: 0x6dfcd620, - 0x35bc4: 0x6e0fb820, 0x35bc5: 0x6c23e620, 0x35bc6: 0x6c3a5e20, 0x35bc7: 0x6c564020, - 0x35bc8: 0x6c790420, 0x35bc9: 0x6c790620, 0x35bca: 0x6ca20a20, 0x35bcb: 0x6ca20c20, - 0x35bcc: 0x6ccf6820, 0x35bcd: 0x6ccf6a20, 0x35bce: 0x6ccf6c20, 0x35bcf: 0x6ccf6e20, - 0x35bd0: 0x6cfd6e20, 0x35bd1: 0x6d2c0c20, 0x35bd2: 0x6d594420, 0x35bd3: 0x6dca4e20, - 0x35bd4: 0x6c09da20, 0x35bd5: 0x6c138620, 0x35bd6: 0x6c138820, 0x35bd7: 0x6c138a20, - 0x35bd8: 0x6c23f620, 0x35bd9: 0x6c23f820, 0x35bda: 0x6c23fa20, 0x35bdb: 0x6c23fc20, - 0x35bdc: 0x6c3a7c20, 0x35bdd: 0x6c3a7e20, 0x35bde: 0x6c3a8020, 0x35bdf: 0x6c3a8220, - 0x35be0: 0x6c3a8420, 0x35be1: 0x6c3a8620, 0x35be2: 0x6c3a8820, 0x35be3: 0x6c3a8a20, - 0x35be4: 0x6c3a8c20, 0x35be5: 0x6c3a8e20, 0x35be6: 0x6c3a9020, 0x35be7: 0x6c3a9220, - 0x35be8: 0x6c3a9420, 0x35be9: 0x6c3a9620, 0x35bea: 0x6c3a9820, 0x35beb: 0x6c3a9a20, - 0x35bec: 0x6c3a9c20, 0x35bed: 0x6c3a9e20, 0x35bee: 0x6c3aa020, 0x35bef: 0x6c3aa220, - 0x35bf0: 0x6c3aa420, 0x35bf1: 0x6c3aa620, 0x35bf2: 0x6c3aa820, 0x35bf3: 0x6c3aaa20, - 0x35bf4: 0x6c3aac20, 0x35bf5: 0x6c3aae20, 0x35bf6: 0x6c3ab020, 0x35bf7: 0x6c3ab220, - 0x35bf8: 0x6c565e20, 0x35bf9: 0x6c566020, 0x35bfa: 0x6c566220, 0x35bfb: 0x6c566420, - 0x35bfc: 0x6c566620, 0x35bfd: 0x6c566820, 0x35bfe: 0x6c566a20, 0x35bff: 0x6c566c20, - // Block 0xd70, offset 0x35c00 - 0x35c00: 0x6c566e20, 0x35c01: 0x6c567020, 0x35c02: 0x6c567220, 0x35c03: 0x6c567420, - 0x35c04: 0x6c567620, 0x35c05: 0x6c567820, 0x35c06: 0x6c567a20, 0x35c07: 0x6c567c20, - 0x35c08: 0x6c567e20, 0x35c09: 0x6c568020, 0x35c0a: 0x6c568220, 0x35c0b: 0x6c568420, - 0x35c0c: 0x6c568620, 0x35c0d: 0x6c568820, 0x35c0e: 0x6c568a20, 0x35c0f: 0x6c568c20, - 0x35c10: 0x6c568e20, 0x35c11: 0x6c791a20, 0x35c12: 0x6c791c20, 0x35c13: 0x6c791e20, - 0x35c14: 0x6c792020, 0x35c15: 0x6c792220, 0x35c16: 0x6c792420, 0x35c17: 0x6c792620, - 0x35c18: 0x6c792820, 0x35c19: 0x6c792a20, 0x35c1a: 0x6c792c20, 0x35c1b: 0x6ca22a20, - 0x35c1c: 0x6ca22c20, 0x35c1d: 0x6ca22e20, 0x35c1e: 0x6ca23020, 0x35c1f: 0x6ca23220, - 0x35c20: 0x6ca23420, 0x35c21: 0x6ca23620, 0x35c22: 0x6ca23820, 0x35c23: 0x6ca23a20, - 0x35c24: 0x6ca23c20, 0x35c25: 0x6ca23e20, 0x35c26: 0x6ca24020, 0x35c27: 0x6ca24220, - 0x35c28: 0x6ca24420, 0x35c29: 0x6ca24620, 0x35c2a: 0x6ca24820, 0x35c2b: 0x6ca24a20, - 0x35c2c: 0x6ca24c20, 0x35c2d: 0x6ca24e20, 0x35c2e: 0x6ca25020, 0x35c2f: 0x6ccf8e20, - 0x35c30: 0x6ccf9020, 0x35c31: 0x6ccf9220, 0x35c32: 0x6ccf9420, 0x35c33: 0x6ccf9620, - 0x35c34: 0x6ccf9820, 0x35c35: 0x6ccf9a20, 0x35c36: 0x6ccf9c20, 0x35c37: 0x6ccf9e20, - 0x35c38: 0x6ccfa020, 0x35c39: 0x6ccfa220, 0x35c3a: 0x6ccfa420, 0x35c3b: 0x6ccfa620, - 0x35c3c: 0x6ccfa820, 0x35c3d: 0x6ccfaa20, 0x35c3e: 0x6ccfac20, 0x35c3f: 0x6ccfae20, - // Block 0xd71, offset 0x35c40 - 0x35c40: 0x6ccfb020, 0x35c41: 0x6ccfb220, 0x35c42: 0x6ccfb420, 0x35c43: 0x6ccfb620, - 0x35c44: 0x6ccfb820, 0x35c45: 0x6ccfba20, 0x35c46: 0x6ccfbc20, 0x35c47: 0x6ccfbe20, - 0x35c48: 0x6ccfc020, 0x35c49: 0x6ccfc220, 0x35c4a: 0x6ccfc420, 0x35c4b: 0x6ccfc620, - 0x35c4c: 0x6ccfc820, 0x35c4d: 0x6cfd8420, 0x35c4e: 0x6cfd8620, 0x35c4f: 0x6cfd8820, - 0x35c50: 0x6cfd8a20, 0x35c51: 0x6cfd8c20, 0x35c52: 0x6cfd8e20, 0x35c53: 0x6cfd9020, - 0x35c54: 0x6cfd9220, 0x35c55: 0x6cfd9420, 0x35c56: 0x6cfd9620, 0x35c57: 0x6cfd9820, - 0x35c58: 0x6cfd9a20, 0x35c59: 0x6cfd9c20, 0x35c5a: 0x6cfd9e20, 0x35c5b: 0x6cfda020, - 0x35c5c: 0x6cf91a20, 0x35c5d: 0x6cfda220, 0x35c5e: 0x6cfda420, 0x35c5f: 0x6cfda620, - 0x35c60: 0x6cfda820, 0x35c61: 0x6cfdaa20, 0x35c62: 0x6cfdac20, 0x35c63: 0x6cfdae20, - 0x35c64: 0x6cfdb020, 0x35c65: 0x6cfdb220, 0x35c66: 0x6cfdb420, 0x35c67: 0x6cfdb620, - 0x35c68: 0x6cfdb820, 0x35c69: 0x6d2c2220, 0x35c6a: 0x6d2c2420, 0x35c6b: 0x6d2c2620, - 0x35c6c: 0x6d2c2820, 0x35c6d: 0x6d2c2a20, 0x35c6e: 0x6d2c2c20, 0x35c6f: 0x6d2c2e20, - 0x35c70: 0x6d2c3020, 0x35c71: 0x6d2c3220, 0x35c72: 0x6d2c3420, 0x35c73: 0x6d2c3620, - 0x35c74: 0x6d2c3820, 0x35c75: 0x6d2c3a20, 0x35c76: 0x6d2c3c20, 0x35c77: 0x6d2c3e20, - 0x35c78: 0x6d2c4020, 0x35c79: 0x6d2c4220, 0x35c7a: 0x6d2c4420, 0x35c7b: 0x6d2c4620, - 0x35c7c: 0x6d2c4820, 0x35c7d: 0x6d2c4a20, 0x35c7e: 0x6d2c4c20, 0x35c7f: 0x6cfdba20, - // Block 0xd72, offset 0x35c80 - 0x35c80: 0x6d2c4e20, 0x35c81: 0x6d2c5020, 0x35c82: 0x6d2c5220, 0x35c83: 0x6d2c5420, - 0x35c84: 0x6d2c5620, 0x35c85: 0x6d2c5820, 0x35c86: 0x6d2c5a20, 0x35c87: 0x6d2c5c20, - 0x35c88: 0x6d2c5e20, 0x35c89: 0x6d2c6020, 0x35c8a: 0x6d595820, 0x35c8b: 0x6d595a20, - 0x35c8c: 0x6d595c20, 0x35c8d: 0x6d595e20, 0x35c8e: 0x6d596020, 0x35c8f: 0x6d596220, - 0x35c90: 0x6d596420, 0x35c91: 0x6d596620, 0x35c92: 0x6d596820, 0x35c93: 0x6d596a20, - 0x35c94: 0x6d596c20, 0x35c95: 0x6d596e20, 0x35c96: 0x6d597020, 0x35c97: 0x6d55d820, - 0x35c98: 0x6d597220, 0x35c99: 0x6d597420, 0x35c9a: 0x6d597620, 0x35c9b: 0x6d597820, - 0x35c9c: 0x6d597a20, 0x35c9d: 0x6d597c20, 0x35c9e: 0x6d597e20, 0x35c9f: 0x6d598020, - 0x35ca0: 0x6d598220, 0x35ca1: 0x6d846020, 0x35ca2: 0x6d846220, 0x35ca3: 0x6d846420, - 0x35ca4: 0x6d846620, 0x35ca5: 0x6d846820, 0x35ca6: 0x6d846a20, 0x35ca7: 0x6d846c20, - 0x35ca8: 0x6d846e20, 0x35ca9: 0x6d847020, 0x35caa: 0x6d847220, 0x35cab: 0x6d847420, - 0x35cac: 0x6d847620, 0x35cad: 0x6d847820, 0x35cae: 0x6d847a20, 0x35caf: 0x6da95020, - 0x35cb0: 0x6da95220, 0x35cb1: 0x6da95420, 0x35cb2: 0x6da95620, 0x35cb3: 0x6da95820, - 0x35cb4: 0x6da95a20, 0x35cb5: 0x6da95c20, 0x35cb6: 0x6da95e20, 0x35cb7: 0x6da96020, - 0x35cb8: 0x6da96220, 0x35cb9: 0x6dca5420, 0x35cba: 0x6dca5620, 0x35cbb: 0x6de5f220, - 0x35cbc: 0x6de5f420, 0x35cbd: 0x6de5f620, 0x35cbe: 0x6de5f820, 0x35cbf: 0x6de5fa20, - // Block 0xd73, offset 0x35cc0 - 0x35cc0: 0x6de5fc20, 0x35cc1: 0x6de5fe20, 0x35cc2: 0x6dfcdc20, 0x35cc3: 0x6dfcde20, - 0x35cc4: 0x6dfce020, 0x35cc5: 0x6dfce220, 0x35cc6: 0x6dfce420, 0x35cc7: 0x6e0fbc20, - 0x35cc8: 0x6e0fbe20, 0x35cc9: 0x6e0fc020, 0x35cca: 0x6e0fc220, 0x35ccb: 0x6e0fc420, - 0x35ccc: 0x6e1e9e20, 0x35ccd: 0x6e1ea020, 0x35cce: 0x6e1ea220, 0x35ccf: 0x6e1ea420, - 0x35cd0: 0x6e1ea620, 0x35cd1: 0x6e2a0620, 0x35cd2: 0x6e2a0820, 0x35cd3: 0x6e2a0a20, - 0x35cd4: 0x6e32d020, 0x35cd5: 0x6e32d220, 0x35cd6: 0x6e391020, 0x35cd7: 0x6e391220, - 0x35cd8: 0x6e391420, 0x35cd9: 0x6e42c020, 0x35cda: 0x6c04f820, 0x35cdb: 0x6c09e220, - 0x35cdc: 0x6c09e420, 0x35cdd: 0x6c09e620, 0x35cde: 0x6c09e820, 0x35cdf: 0x6c09ea20, - 0x35ce0: 0x6c09ec20, 0x35ce1: 0x6c139a20, 0x35ce2: 0x6c139c20, 0x35ce3: 0x6c139e20, - 0x35ce4: 0x6c13a020, 0x35ce5: 0x6c13a220, 0x35ce6: 0x6c13a420, 0x35ce7: 0x6c13a620, - 0x35ce8: 0x6c13a820, 0x35ce9: 0x6c13aa20, 0x35cea: 0x6c13ac20, 0x35ceb: 0x6c13ae20, - 0x35cec: 0x6c13b020, 0x35ced: 0x6c13b220, 0x35cee: 0x6c13b420, 0x35cef: 0x6c242820, - 0x35cf0: 0x6c242a20, 0x35cf1: 0x6c242c20, 0x35cf2: 0x6c242e20, 0x35cf3: 0x6c243020, - 0x35cf4: 0x6c243220, 0x35cf5: 0x6c243420, 0x35cf6: 0x6c243620, 0x35cf7: 0x6c243820, - 0x35cf8: 0x6c243a20, 0x35cf9: 0x6c243c20, 0x35cfa: 0x6c243e20, 0x35cfb: 0x6c244020, - 0x35cfc: 0x6c244220, 0x35cfd: 0x6c244420, 0x35cfe: 0x6c244620, 0x35cff: 0x6c244820, - // Block 0xd74, offset 0x35d00 - 0x35d00: 0x6c244a20, 0x35d01: 0x6c244c20, 0x35d02: 0x6c244e20, 0x35d03: 0x6c245020, - 0x35d04: 0x6c245220, 0x35d05: 0x6c245420, 0x35d06: 0x6c245620, 0x35d07: 0x6c245820, - 0x35d08: 0x6c245a20, 0x35d09: 0x6c245c20, 0x35d0a: 0x6c245e20, 0x35d0b: 0x6c246020, - 0x35d0c: 0x6c246220, 0x35d0d: 0x6c246420, 0x35d0e: 0x6c246620, 0x35d0f: 0x6c3af620, - 0x35d10: 0x6c3af820, 0x35d11: 0x6c3afa20, 0x35d12: 0x6c3afc20, 0x35d13: 0x6c3afe20, - 0x35d14: 0x6c3b0020, 0x35d15: 0x6c3b0220, 0x35d16: 0x6c3b0420, 0x35d17: 0x6c3b0620, - 0x35d18: 0x6c3b0820, 0x35d19: 0x6c3b0a20, 0x35d1a: 0x6c3b0c20, 0x35d1b: 0x6c3b0e20, - 0x35d1c: 0x6c3b1020, 0x35d1d: 0x6c3b1220, 0x35d1e: 0x6c3b1420, 0x35d1f: 0x6c3b1620, - 0x35d20: 0x6c3b1820, 0x35d21: 0x6c3b1a20, 0x35d22: 0x6c3b1c20, 0x35d23: 0x6c3b1e20, - 0x35d24: 0x6c3b2020, 0x35d25: 0x6c3b2220, 0x35d26: 0x6c3b2420, 0x35d27: 0x6c3b2620, - 0x35d28: 0x6c3b2820, 0x35d29: 0x6c3b2a20, 0x35d2a: 0x6c3b2c20, 0x35d2b: 0x6c3b2e20, - 0x35d2c: 0x6c3b3020, 0x35d2d: 0x6c3b3220, 0x35d2e: 0x6c246820, 0x35d2f: 0x6c56cc20, - 0x35d30: 0x6c56ce20, 0x35d31: 0x6c56d020, 0x35d32: 0x6c56d220, 0x35d33: 0x6c56d420, - 0x35d34: 0x6c56d620, 0x35d35: 0x6c56d820, 0x35d36: 0x6c56da20, 0x35d37: 0x6c56dc20, - 0x35d38: 0x6c56de20, 0x35d39: 0x6c56e020, 0x35d3a: 0x6c56e220, 0x35d3b: 0x6c56e420, - 0x35d3c: 0x6c56e620, 0x35d3d: 0x6c56e820, 0x35d3e: 0x6c56ea20, 0x35d3f: 0x6c56ec20, - // Block 0xd75, offset 0x35d40 - 0x35d40: 0x6c56ee20, 0x35d41: 0x6c56f020, 0x35d42: 0x6c56f220, 0x35d43: 0x6c56f420, - 0x35d44: 0x6c56f620, 0x35d45: 0x6c56f820, 0x35d46: 0x6c56fa20, 0x35d47: 0x6c56fc20, - 0x35d48: 0x6c56fe20, 0x35d49: 0x6c570020, 0x35d4a: 0x6c570220, 0x35d4b: 0x6c570420, - 0x35d4c: 0x6c570620, 0x35d4d: 0x6c570820, 0x35d4e: 0x6c570a20, 0x35d4f: 0x6c570c20, - 0x35d50: 0x6c570e20, 0x35d51: 0x6c571020, 0x35d52: 0x6c571220, 0x35d53: 0x6c571420, - 0x35d54: 0x6c571620, 0x35d55: 0x6c571820, 0x35d56: 0x6c571a20, 0x35d57: 0x6c571c20, - 0x35d58: 0x6c571e20, 0x35d59: 0x6c796420, 0x35d5a: 0x6c796620, 0x35d5b: 0x6c796820, - 0x35d5c: 0x6c796a20, 0x35d5d: 0x6c796c20, 0x35d5e: 0x6c796e20, 0x35d5f: 0x6c797020, - 0x35d60: 0x6c797220, 0x35d61: 0x6c797420, 0x35d62: 0x6c797620, 0x35d63: 0x6c572020, - 0x35d64: 0x6c797820, 0x35d65: 0x6c797a20, 0x35d66: 0x6c797c20, 0x35d67: 0x6c797e20, - 0x35d68: 0x6c798020, 0x35d69: 0x6c798220, 0x35d6a: 0x6c798420, 0x35d6b: 0x6c798620, - 0x35d6c: 0x6c798820, 0x35d6d: 0x6c798a20, 0x35d6e: 0x6c798c20, 0x35d6f: 0x6c798e20, - 0x35d70: 0x6c799020, 0x35d71: 0x6c799220, 0x35d72: 0x6c799420, 0x35d73: 0x6c799620, - 0x35d74: 0x6c799820, 0x35d75: 0x6c799a20, 0x35d76: 0x6c799c20, 0x35d77: 0x6c799e20, - 0x35d78: 0x6c79a020, 0x35d79: 0x6c79a220, 0x35d7a: 0x6c79a420, 0x35d7b: 0x6c79a620, - 0x35d7c: 0x6c79a820, 0x35d7d: 0x6c79aa20, 0x35d7e: 0x6c79ac20, 0x35d7f: 0x6c79ae20, - // Block 0xd76, offset 0x35d80 - 0x35d80: 0x6c79b020, 0x35d81: 0x6c79b220, 0x35d82: 0x6c79b420, 0x35d83: 0x6ca29a20, - 0x35d84: 0x6ca29c20, 0x35d85: 0x6ca29e20, 0x35d86: 0x6ca2a020, 0x35d87: 0x6ca2a220, - 0x35d88: 0x6ca2a420, 0x35d89: 0x6ca2a620, 0x35d8a: 0x6ca2a820, 0x35d8b: 0x6ca2aa20, - 0x35d8c: 0x6ca2ac20, 0x35d8d: 0x6ca2ae20, 0x35d8e: 0x6ca2b020, 0x35d8f: 0x6ca2b220, - 0x35d90: 0x6ca2b420, 0x35d91: 0x6ca2b620, 0x35d92: 0x6ca2b820, 0x35d93: 0x6ca2ba20, - 0x35d94: 0x6ca2bc20, 0x35d95: 0x6ca2be20, 0x35d96: 0x6ca2c020, 0x35d97: 0x6ca2c220, - 0x35d98: 0x6ca2c420, 0x35d99: 0x6ca2c620, 0x35d9a: 0x6ca2c820, 0x35d9b: 0x6ca2ca20, - 0x35d9c: 0x6cd00c20, 0x35d9d: 0x6cd00e20, 0x35d9e: 0x6cd01020, 0x35d9f: 0x6cd01220, - 0x35da0: 0x6cd01420, 0x35da1: 0x6cd01620, 0x35da2: 0x6cd01820, 0x35da3: 0x6cd01a20, - 0x35da4: 0x6cd01c20, 0x35da5: 0x6cd01e20, 0x35da6: 0x6cd02020, 0x35da7: 0x6cd02220, - 0x35da8: 0x6cd02420, 0x35da9: 0x6cd02620, 0x35daa: 0x6cd02820, 0x35dab: 0x6cd02a20, - 0x35dac: 0x6cd02c20, 0x35dad: 0x6cd02e20, 0x35dae: 0x6cd03020, 0x35daf: 0x6cd03220, - 0x35db0: 0x6cd03420, 0x35db1: 0x6cd03620, 0x35db2: 0x6cd03820, 0x35db3: 0x6cd03a20, - 0x35db4: 0x6cd03c20, 0x35db5: 0x6cf3a620, 0x35db6: 0x6cd03e20, 0x35db7: 0x6cd04020, - 0x35db8: 0x6cd04220, 0x35db9: 0x6cd04420, 0x35dba: 0x6cd04620, 0x35dbb: 0x6cd04820, - 0x35dbc: 0x6cd04a20, 0x35dbd: 0x6cd04c20, 0x35dbe: 0x6cd04e20, 0x35dbf: 0x6cd05020, - // Block 0xd77, offset 0x35dc0 - 0x35dc0: 0x6cd05220, 0x35dc1: 0x6cd05420, 0x35dc2: 0x6cd05620, 0x35dc3: 0x6cd05820, - 0x35dc4: 0x6cd05a20, 0x35dc5: 0x6cd05c20, 0x35dc6: 0x6cd05e20, 0x35dc7: 0x6cd06020, - 0x35dc8: 0x6cd06220, 0x35dc9: 0x6cd06420, 0x35dca: 0x6cd06620, 0x35dcb: 0x6cd06820, - 0x35dcc: 0x6cd06a20, 0x35dcd: 0x6cfdee20, 0x35dce: 0x6cfdf020, 0x35dcf: 0x6cfdf220, - 0x35dd0: 0x6cfdf420, 0x35dd1: 0x6cfdf620, 0x35dd2: 0x6cfdf820, 0x35dd3: 0x6cfdfa20, - 0x35dd4: 0x6cfdfc20, 0x35dd5: 0x6cfdfe20, 0x35dd6: 0x6cfe0020, 0x35dd7: 0x6cfe0220, - 0x35dd8: 0x6cfe0420, 0x35dd9: 0x6cfe0620, 0x35dda: 0x6cfe0820, 0x35ddb: 0x6cfe0a20, - 0x35ddc: 0x6cfe0c20, 0x35ddd: 0x6cfe0e20, 0x35dde: 0x6cfe1020, 0x35ddf: 0x6cfe1220, - 0x35de0: 0x6cfe1420, 0x35de1: 0x6cfe1620, 0x35de2: 0x6cfe1820, 0x35de3: 0x6cfe1a20, - 0x35de4: 0x6cfe1c20, 0x35de5: 0x6cfe1e20, 0x35de6: 0x6cfe2020, 0x35de7: 0x6cfe2220, - 0x35de8: 0x6cfe2420, 0x35de9: 0x6cfe2620, 0x35dea: 0x6cfe2820, 0x35deb: 0x6cfe2a20, - 0x35dec: 0x6cfe2c20, 0x35ded: 0x6cfe2e20, 0x35dee: 0x6cfe3020, 0x35def: 0x6cfe3220, - 0x35df0: 0x6cfe3420, 0x35df1: 0x6cfe3620, 0x35df2: 0x6cfe3820, 0x35df3: 0x6cfe3a20, - 0x35df4: 0x6cfe3c20, 0x35df5: 0x6cfe3e20, 0x35df6: 0x6cfe4020, 0x35df7: 0x6cfe4220, - 0x35df8: 0x6cfe4420, 0x35df9: 0x6d2c8a20, 0x35dfa: 0x6d2c8c20, 0x35dfb: 0x6d2c8e20, - 0x35dfc: 0x6d2c9020, 0x35dfd: 0x6d2c9220, 0x35dfe: 0x6d2c9420, 0x35dff: 0x6d2c9620, - // Block 0xd78, offset 0x35e00 - 0x35e00: 0x6d2c9820, 0x35e01: 0x6d2c9a20, 0x35e02: 0x6d2c9c20, 0x35e03: 0x6d2c9e20, - 0x35e04: 0x6d2ca020, 0x35e05: 0x6d2ca220, 0x35e06: 0x6d2ca420, 0x35e07: 0x6d2ca620, - 0x35e08: 0x6d2ca820, 0x35e09: 0x6d2caa20, 0x35e0a: 0x6d2cac20, 0x35e0b: 0x6d2cae20, - 0x35e0c: 0x6d2cb020, 0x35e0d: 0x6d2cb220, 0x35e0e: 0x6d2cb420, 0x35e0f: 0x6d2cb620, - 0x35e10: 0x6d2cb820, 0x35e11: 0x6d2cba20, 0x35e12: 0x6d2cbc20, 0x35e13: 0x6d2cbe20, - 0x35e14: 0x6d2cc020, 0x35e15: 0x6d2cc220, 0x35e16: 0x6d2cc420, 0x35e17: 0x6d2cc620, - 0x35e18: 0x6d2cc820, 0x35e19: 0x6d2cca20, 0x35e1a: 0x6d2ccc20, 0x35e1b: 0x6d2cce20, - 0x35e1c: 0x6d2cd020, 0x35e1d: 0x6d2cd220, 0x35e1e: 0x6d2cd420, 0x35e1f: 0x6d2cd620, - 0x35e20: 0x6d2cd820, 0x35e21: 0x6d2cda20, 0x35e22: 0x6d2cdc20, 0x35e23: 0x6d59b220, - 0x35e24: 0x6d59b420, 0x35e25: 0x6d59b620, 0x35e26: 0x6d59b820, 0x35e27: 0x6d59ba20, - 0x35e28: 0x6d59bc20, 0x35e29: 0x6d59be20, 0x35e2a: 0x6d59c020, 0x35e2b: 0x6d59c220, - 0x35e2c: 0x6d59c420, 0x35e2d: 0x6d59c620, 0x35e2e: 0x6d59c820, 0x35e2f: 0x6d59ca20, - 0x35e30: 0x6d59cc20, 0x35e31: 0x6d59ce20, 0x35e32: 0x6d59d020, 0x35e33: 0x6d59d220, - 0x35e34: 0x6d59d420, 0x35e35: 0x6d59d620, 0x35e36: 0x6d59d820, 0x35e37: 0x6d59da20, - 0x35e38: 0x6d59dc20, 0x35e39: 0x6d59de20, 0x35e3a: 0x6d59e020, 0x35e3b: 0x6d59e220, - 0x35e3c: 0x6d59e420, 0x35e3d: 0x6d59e620, 0x35e3e: 0x6d59e820, 0x35e3f: 0x6d59ea20, - // Block 0xd79, offset 0x35e40 - 0x35e40: 0x6d59ec20, 0x35e41: 0x6d59ee20, 0x35e42: 0x6d59f020, 0x35e43: 0x6d59f220, - 0x35e44: 0x6d59f420, 0x35e45: 0x6d59f620, 0x35e46: 0x6d59f820, 0x35e47: 0x6d59fa20, - 0x35e48: 0x6d59fc20, 0x35e49: 0x6d59fe20, 0x35e4a: 0x6d5a0020, 0x35e4b: 0x6d5a0220, - 0x35e4c: 0x6d849820, 0x35e4d: 0x6d849a20, 0x35e4e: 0x6d849c20, 0x35e4f: 0x6d849e20, - 0x35e50: 0x6d84a020, 0x35e51: 0x6d84a220, 0x35e52: 0x6d84a420, 0x35e53: 0x6d84a620, - 0x35e54: 0x6d84a820, 0x35e55: 0x6d84aa20, 0x35e56: 0x6d84ac20, 0x35e57: 0x6d84ae20, - 0x35e58: 0x6d84b020, 0x35e59: 0x6d84b220, 0x35e5a: 0x6d84b420, 0x35e5b: 0x6d84b620, - 0x35e5c: 0x6d84b820, 0x35e5d: 0x6d84ba20, 0x35e5e: 0x6d84bc20, 0x35e5f: 0x6d84be20, - 0x35e60: 0x6d84c020, 0x35e61: 0x6d84c220, 0x35e62: 0x6d84c420, 0x35e63: 0x6d84c620, - 0x35e64: 0x6d84c820, 0x35e65: 0x6d84ca20, 0x35e66: 0x6da97820, 0x35e67: 0x6da97a20, - 0x35e68: 0x6da97c20, 0x35e69: 0x6da97e20, 0x35e6a: 0x6da98020, 0x35e6b: 0x6da98220, - 0x35e6c: 0x6da98420, 0x35e6d: 0x6da98620, 0x35e6e: 0x6da98820, 0x35e6f: 0x6da98a20, - 0x35e70: 0x6da98c20, 0x35e71: 0x6da98e20, 0x35e72: 0x6da99020, 0x35e73: 0x6da99220, - 0x35e74: 0x6dca6020, 0x35e75: 0x6dca6220, 0x35e76: 0x6dca6420, 0x35e77: 0x6dca6620, - 0x35e78: 0x6dca6820, 0x35e79: 0x6dca6a20, 0x35e7a: 0x6dca6c20, 0x35e7b: 0x6dca6e20, - 0x35e7c: 0x6dca7020, 0x35e7d: 0x6dca7220, 0x35e7e: 0x6dca7420, 0x35e7f: 0x6dca7620, - // Block 0xd7a, offset 0x35e80 - 0x35e80: 0x6dca7820, 0x35e81: 0x6dca7a20, 0x35e82: 0x6dca7c20, 0x35e83: 0x6dca7e20, - 0x35e84: 0x6dca8020, 0x35e85: 0x6de60a20, 0x35e86: 0x6de60c20, 0x35e87: 0x6de60e20, - 0x35e88: 0x6de61020, 0x35e89: 0x6de61220, 0x35e8a: 0x6de61420, 0x35e8b: 0x6de61620, - 0x35e8c: 0x6de61820, 0x35e8d: 0x6dfcf420, 0x35e8e: 0x6dfcf620, 0x35e8f: 0x6dfcf820, - 0x35e90: 0x6dfcfa20, 0x35e91: 0x6e0fca20, 0x35e92: 0x6e0fcc20, 0x35e93: 0x6e0fce20, - 0x35e94: 0x6e0fd020, 0x35e95: 0x6e0fd220, 0x35e96: 0x6e0fd420, 0x35e97: 0x6e1eac20, - 0x35e98: 0x6e1eae20, 0x35e99: 0x6e1eb020, 0x35e9a: 0x6e1eb220, 0x35e9b: 0x6e2a1220, - 0x35e9c: 0x6e2a1420, 0x35e9d: 0x6e2a1620, 0x35e9e: 0x6e2a1820, 0x35e9f: 0x6e32d620, - 0x35ea0: 0x6e32d820, 0x35ea1: 0x6e32da20, 0x35ea2: 0x6e32dc20, 0x35ea3: 0x6e391620, - 0x35ea4: 0x6e407a20, 0x35ea5: 0x6c09f020, 0x35ea6: 0x6c572820, 0x35ea7: 0x6cd07420, - 0x35ea8: 0x6d2ce020, 0x35ea9: 0x6c04fc20, 0x35eaa: 0x6c13c620, 0x35eab: 0x6c13c820, - 0x35eac: 0x6c13ca20, 0x35ead: 0x6c248820, 0x35eae: 0x6c248a20, 0x35eaf: 0x6c248c20, - 0x35eb0: 0x6c248e20, 0x35eb1: 0x6c249020, 0x35eb2: 0x6c249220, 0x35eb3: 0x6c249420, - 0x35eb4: 0x6c249620, 0x35eb5: 0x6c249820, 0x35eb6: 0x6c249a20, 0x35eb7: 0x6c249c20, - 0x35eb8: 0x6c249e20, 0x35eb9: 0x6c3b7020, 0x35eba: 0x6c3b7220, 0x35ebb: 0x6c3b7420, - 0x35ebc: 0x6c3b7620, 0x35ebd: 0x6c3b7820, 0x35ebe: 0x6c3b7a20, 0x35ebf: 0x6c3b7c20, - // Block 0xd7b, offset 0x35ec0 - 0x35ec0: 0x6c3b7e20, 0x35ec1: 0x6c3b8020, 0x35ec2: 0x6c3b8220, 0x35ec3: 0x6c3b8420, - 0x35ec4: 0x6c3b8620, 0x35ec5: 0x6c3b8820, 0x35ec6: 0x6c3b8a20, 0x35ec7: 0x6c3b8c20, - 0x35ec8: 0x6c3b8e20, 0x35ec9: 0x6c3b9020, 0x35eca: 0x6c3b9220, 0x35ecb: 0x6c3b9420, - 0x35ecc: 0x6c3b9620, 0x35ecd: 0x6c3b9820, 0x35ece: 0x6c3b9a20, 0x35ecf: 0x6c577620, - 0x35ed0: 0x6c577820, 0x35ed1: 0x6c577a20, 0x35ed2: 0x6c577c20, 0x35ed3: 0x6c577e20, - 0x35ed4: 0x6c578020, 0x35ed5: 0x6c578220, 0x35ed6: 0x6c578420, 0x35ed7: 0x6c578620, - 0x35ed8: 0x6c578820, 0x35ed9: 0x6c578a20, 0x35eda: 0x6c578c20, 0x35edb: 0x6c578e20, - 0x35edc: 0x6c579020, 0x35edd: 0x6c579220, 0x35ede: 0x6c579420, 0x35edf: 0x6c579620, - 0x35ee0: 0x6c579820, 0x35ee1: 0x6c579a20, 0x35ee2: 0x6c579c20, 0x35ee3: 0x6c579e20, - 0x35ee4: 0x6c57a020, 0x35ee5: 0x6c57a220, 0x35ee6: 0x6c57a420, 0x35ee7: 0x6c57a620, - 0x35ee8: 0x6c57a820, 0x35ee9: 0x6c57aa20, 0x35eea: 0x6c57ac20, 0x35eeb: 0x6c57ae20, - 0x35eec: 0x6c57b020, 0x35eed: 0x6c57b220, 0x35eee: 0x6c57b420, 0x35eef: 0x6c57b620, - 0x35ef0: 0x6c57b820, 0x35ef1: 0x6c57ba20, 0x35ef2: 0x6c57bc20, 0x35ef3: 0x6c57be20, - 0x35ef4: 0x6c57c020, 0x35ef5: 0x6c7a1c20, 0x35ef6: 0x6c7a1e20, 0x35ef7: 0x6c7a2020, - 0x35ef8: 0x6c7a2220, 0x35ef9: 0x6c7a2420, 0x35efa: 0x6c7a2620, 0x35efb: 0x6c7a2820, - 0x35efc: 0x6c7a2a20, 0x35efd: 0x6c7a2c20, 0x35efe: 0x6c7a2e20, 0x35eff: 0x6c7a3020, - // Block 0xd7c, offset 0x35f00 - 0x35f00: 0x6c7a3220, 0x35f01: 0x6c7a3420, 0x35f02: 0x6c7a3620, 0x35f03: 0x6c7a3820, - 0x35f04: 0x6c7a3a20, 0x35f05: 0x6c7a3c20, 0x35f06: 0x6c7a3e20, 0x35f07: 0x6c7a4020, - 0x35f08: 0x6c7a4220, 0x35f09: 0x6c7a4420, 0x35f0a: 0x6c7a4620, 0x35f0b: 0x6c7a4820, - 0x35f0c: 0x6c7a4a20, 0x35f0d: 0x6c7a4c20, 0x35f0e: 0x6c7a4e20, 0x35f0f: 0x6c7a5020, - 0x35f10: 0x6c7a5220, 0x35f11: 0x6c7a5420, 0x35f12: 0x6c7a5620, 0x35f13: 0x6c7a5820, - 0x35f14: 0x6c7a5a20, 0x35f15: 0x6c7a5c20, 0x35f16: 0x6ca32620, 0x35f17: 0x6ca32820, - 0x35f18: 0x6ca32a20, 0x35f19: 0x6ca32c20, 0x35f1a: 0x6ca32e20, 0x35f1b: 0x6ca33020, - 0x35f1c: 0x6ca33220, 0x35f1d: 0x6ca33420, 0x35f1e: 0x6ca33620, 0x35f1f: 0x6ca33820, - 0x35f20: 0x6ca33a20, 0x35f21: 0x6ca33c20, 0x35f22: 0x6ca33e20, 0x35f23: 0x6ca34020, - 0x35f24: 0x6ca34220, 0x35f25: 0x6ca34420, 0x35f26: 0x6ca34620, 0x35f27: 0x6ca34820, - 0x35f28: 0x6ca34a20, 0x35f29: 0x6ca34c20, 0x35f2a: 0x6ca34e20, 0x35f2b: 0x6ca35020, - 0x35f2c: 0x6ca35220, 0x35f2d: 0x6ca35420, 0x35f2e: 0x6ca35620, 0x35f2f: 0x6ca35820, - 0x35f30: 0x6ca35a20, 0x35f31: 0x6ca35c20, 0x35f32: 0x6ca35e20, 0x35f33: 0x6ca36020, - 0x35f34: 0x6ca36220, 0x35f35: 0x6ca36420, 0x35f36: 0x6ca36620, 0x35f37: 0x6ca36820, - 0x35f38: 0x6ca36a20, 0x35f39: 0x6ca36c20, 0x35f3a: 0x6ca36e20, 0x35f3b: 0x6cd0dc20, - 0x35f3c: 0x6cd0de20, 0x35f3d: 0x6cd0e020, 0x35f3e: 0x6cd0e220, 0x35f3f: 0x6cd0e420, - // Block 0xd7d, offset 0x35f40 - 0x35f40: 0x6cd0e620, 0x35f41: 0x6cd0e820, 0x35f42: 0x6cd0ea20, 0x35f43: 0x6cd0ec20, - 0x35f44: 0x6cd0ee20, 0x35f45: 0x6cd0f020, 0x35f46: 0x6cd0f220, 0x35f47: 0x6cd0f420, - 0x35f48: 0x6cd0f620, 0x35f49: 0x6cd0f820, 0x35f4a: 0x6cd0fa20, 0x35f4b: 0x6cd0fc20, - 0x35f4c: 0x6cd0fe20, 0x35f4d: 0x6cd10020, 0x35f4e: 0x6cd10220, 0x35f4f: 0x6cd10420, - 0x35f50: 0x6cd10620, 0x35f51: 0x6cd10820, 0x35f52: 0x6cd10a20, 0x35f53: 0x6cd10c20, - 0x35f54: 0x6cd10e20, 0x35f55: 0x6cd11020, 0x35f56: 0x6cd11220, 0x35f57: 0x6cd11420, - 0x35f58: 0x6cd11620, 0x35f59: 0x6cd11820, 0x35f5a: 0x6cd11a20, 0x35f5b: 0x6cd11c20, - 0x35f5c: 0x6cd11e20, 0x35f5d: 0x6cd12020, 0x35f5e: 0x6cd12220, 0x35f5f: 0x6cd12420, - 0x35f60: 0x6cd12620, 0x35f61: 0x6cd12820, 0x35f62: 0x6cd12a20, 0x35f63: 0x6cd12c20, - 0x35f64: 0x6cd12e20, 0x35f65: 0x6cd13020, 0x35f66: 0x6cd13220, 0x35f67: 0x6cd13420, - 0x35f68: 0x6cd13620, 0x35f69: 0x6cd13820, 0x35f6a: 0x6cd13a20, 0x35f6b: 0x6cd13c20, - 0x35f6c: 0x6cd13e20, 0x35f6d: 0x6cd14020, 0x35f6e: 0x6cd14220, 0x35f6f: 0x6cfeaa20, - 0x35f70: 0x6cfeac20, 0x35f71: 0x6cfeae20, 0x35f72: 0x6cfeb020, 0x35f73: 0x6cfeb220, - 0x35f74: 0x6cfeb420, 0x35f75: 0x6cfeb620, 0x35f76: 0x6cfeb820, 0x35f77: 0x6cfeba20, - 0x35f78: 0x6cfebc20, 0x35f79: 0x6cfebe20, 0x35f7a: 0x6cfec020, 0x35f7b: 0x6cfec220, - 0x35f7c: 0x6cfec420, 0x35f7d: 0x6cfec620, 0x35f7e: 0x6cfec820, 0x35f7f: 0x6cfeca20, - // Block 0xd7e, offset 0x35f80 - 0x35f80: 0x6cfecc20, 0x35f81: 0x6cfece20, 0x35f82: 0x6cfed020, 0x35f83: 0x6cfed220, - 0x35f84: 0x6cfed420, 0x35f85: 0x6cfed620, 0x35f86: 0x6cfed820, 0x35f87: 0x6cfeda20, - 0x35f88: 0x6cfedc20, 0x35f89: 0x6cfede20, 0x35f8a: 0x6cfee020, 0x35f8b: 0x6cfee220, - 0x35f8c: 0x6cfee420, 0x35f8d: 0x6cfee620, 0x35f8e: 0x6cfee820, 0x35f8f: 0x6cfeea20, - 0x35f90: 0x6cfeec20, 0x35f91: 0x6cfeee20, 0x35f92: 0x6cfef020, 0x35f93: 0x6cfef220, - 0x35f94: 0x6cfef420, 0x35f95: 0x6cfef620, 0x35f96: 0x6cfef820, 0x35f97: 0x6cfefa20, - 0x35f98: 0x6cfefc20, 0x35f99: 0x6cfefe20, 0x35f9a: 0x6cff0020, 0x35f9b: 0x6cff0220, - 0x35f9c: 0x6cff0420, 0x35f9d: 0x6cff0620, 0x35f9e: 0x6cff0820, 0x35f9f: 0x6cff0a20, - 0x35fa0: 0x6cff0c20, 0x35fa1: 0x6cff0e20, 0x35fa2: 0x6cff1020, 0x35fa3: 0x6cff1220, - 0x35fa4: 0x6cff1420, 0x35fa5: 0x6cff1620, 0x35fa6: 0x6cff1820, 0x35fa7: 0x6cff1a20, - 0x35fa8: 0x6cff1c20, 0x35fa9: 0x6cff1e20, 0x35faa: 0x6d2d1620, 0x35fab: 0x6d2d1820, - 0x35fac: 0x6d2d1a20, 0x35fad: 0x6d2d1c20, 0x35fae: 0x6d2d1e20, 0x35faf: 0x6d2d2020, - 0x35fb0: 0x6d2d2220, 0x35fb1: 0x6d2d2420, 0x35fb2: 0x6d2d2620, 0x35fb3: 0x6d2d2820, - 0x35fb4: 0x6d2d2a20, 0x35fb5: 0x6d2d2c20, 0x35fb6: 0x6d2d2e20, 0x35fb7: 0x6d2d3020, - 0x35fb8: 0x6d2d3220, 0x35fb9: 0x6d2d3420, 0x35fba: 0x6d2d3620, 0x35fbb: 0x6d2d3820, - 0x35fbc: 0x6d2d3a20, 0x35fbd: 0x6d2d3c20, 0x35fbe: 0x6d2d3e20, 0x35fbf: 0x6d2d4020, - // Block 0xd7f, offset 0x35fc0 - 0x35fc0: 0x6d2d4220, 0x35fc1: 0x6d2d4420, 0x35fc2: 0x6d2d4620, 0x35fc3: 0x6d2d4820, - 0x35fc4: 0x6d2d4a20, 0x35fc5: 0x6d2d4c20, 0x35fc6: 0x6d2d4e20, 0x35fc7: 0x6d2d5020, - 0x35fc8: 0x6d2d5220, 0x35fc9: 0x6d2d5420, 0x35fca: 0x6d2d5620, 0x35fcb: 0x6d2d5820, - 0x35fcc: 0x6d2d5a20, 0x35fcd: 0x6d2d5c20, 0x35fce: 0x6d2d5e20, 0x35fcf: 0x6d2d6020, - 0x35fd0: 0x6d2d6220, 0x35fd1: 0x6d2d6420, 0x35fd2: 0x6d2d6620, 0x35fd3: 0x6d2d6820, - 0x35fd4: 0x6d5a4820, 0x35fd5: 0x6d5a4a20, 0x35fd6: 0x6d5a4c20, 0x35fd7: 0x6d5a4e20, - 0x35fd8: 0x6d5a5020, 0x35fd9: 0x6d5a5220, 0x35fda: 0x6d5a5420, 0x35fdb: 0x6d5a5620, - 0x35fdc: 0x6d5a5820, 0x35fdd: 0x6d5a5a20, 0x35fde: 0x6d5a5c20, 0x35fdf: 0x6d5a5e20, - 0x35fe0: 0x6d5a6020, 0x35fe1: 0x6d5a6220, 0x35fe2: 0x6d5a6420, 0x35fe3: 0x6d5a6620, - 0x35fe4: 0x6d5a6820, 0x35fe5: 0x6d5a6a20, 0x35fe6: 0x6d5a6c20, 0x35fe7: 0x6d5a6e20, - 0x35fe8: 0x6d5a7020, 0x35fe9: 0x6d5a7220, 0x35fea: 0x6d5a7420, 0x35feb: 0x6d5a7620, - 0x35fec: 0x6d5a7820, 0x35fed: 0x6d5a7a20, 0x35fee: 0x6d5a7c20, 0x35fef: 0x6d5a7e20, - 0x35ff0: 0x6d5a8020, 0x35ff1: 0x6d5a8220, 0x35ff2: 0x6d5a8420, 0x35ff3: 0x6d5a8620, - 0x35ff4: 0x6d5a8820, 0x35ff5: 0x6d5a8a20, 0x35ff6: 0x6d5a8c20, 0x35ff7: 0x6d5a8e20, - 0x35ff8: 0x6d5a9020, 0x35ff9: 0x6d5a9220, 0x35ffa: 0x6d5a9420, 0x35ffb: 0x6d5a9620, - 0x35ffc: 0x6d5a9820, 0x35ffd: 0x6d5a9a20, 0x35ffe: 0x6d5a9c20, 0x35fff: 0x6d5a9e20, - // Block 0xd80, offset 0x36000 - 0x36000: 0x6d850020, 0x36001: 0x6d5aa020, 0x36002: 0x6d850220, 0x36003: 0x6d850420, - 0x36004: 0x6d850620, 0x36005: 0x6d850820, 0x36006: 0x6d850a20, 0x36007: 0x6d850c20, - 0x36008: 0x6d850e20, 0x36009: 0x6d851020, 0x3600a: 0x6d851220, 0x3600b: 0x6d851420, - 0x3600c: 0x6d851620, 0x3600d: 0x6d851820, 0x3600e: 0x6d851a20, 0x3600f: 0x6d851c20, - 0x36010: 0x6d851e20, 0x36011: 0x6d852020, 0x36012: 0x6d852220, 0x36013: 0x6d852420, - 0x36014: 0x6d852620, 0x36015: 0x6d852820, 0x36016: 0x6d852a20, 0x36017: 0x6d852c20, - 0x36018: 0x6d852e20, 0x36019: 0x6d853020, 0x3601a: 0x6d853220, 0x3601b: 0x6d853420, - 0x3601c: 0x6d853620, 0x3601d: 0x6d853820, 0x3601e: 0x6d853a20, 0x3601f: 0x6d853c20, - 0x36020: 0x6d853e20, 0x36021: 0x6d854020, 0x36022: 0x6d854220, 0x36023: 0x6d854420, - 0x36024: 0x6d854620, 0x36025: 0x6d854820, 0x36026: 0x6d854a20, 0x36027: 0x6d854c20, - 0x36028: 0x6d854e20, 0x36029: 0x6d855020, 0x3602a: 0x6d855220, 0x3602b: 0x6da9c420, - 0x3602c: 0x6da9c620, 0x3602d: 0x6da9c820, 0x3602e: 0x6da9ca20, 0x3602f: 0x6da9cc20, - 0x36030: 0x6da9ce20, 0x36031: 0x6da9d020, 0x36032: 0x6da9d220, 0x36033: 0x6da9d420, - 0x36034: 0x6da9d620, 0x36035: 0x6da9d820, 0x36036: 0x6da9da20, 0x36037: 0x6da9dc20, - 0x36038: 0x6da9de20, 0x36039: 0x6da9e020, 0x3603a: 0x6da9e220, 0x3603b: 0x6da9e420, - 0x3603c: 0x6da9e620, 0x3603d: 0x6da9e820, 0x3603e: 0x6da9ea20, 0x3603f: 0x6da9ec20, - // Block 0xd81, offset 0x36040 - 0x36040: 0x6da9ee20, 0x36041: 0x6da9f020, 0x36042: 0x6da9f220, 0x36043: 0x6da9f420, - 0x36044: 0x6da9f620, 0x36045: 0x6da9f820, 0x36046: 0x6da9fa20, 0x36047: 0x6da9fc20, - 0x36048: 0x6da9fe20, 0x36049: 0x6daa0020, 0x3604a: 0x6daa0220, 0x3604b: 0x6dcaa020, - 0x3604c: 0x6dcaa220, 0x3604d: 0x6dcaa420, 0x3604e: 0x6dcaa620, 0x3604f: 0x6dcaa820, - 0x36050: 0x6dcaaa20, 0x36051: 0x6dcaac20, 0x36052: 0x6dcaae20, 0x36053: 0x6dcab020, - 0x36054: 0x6dcab220, 0x36055: 0x6dcab420, 0x36056: 0x6dcab620, 0x36057: 0x6dcab820, - 0x36058: 0x6dcaba20, 0x36059: 0x6dcabc20, 0x3605a: 0x6dcabe20, 0x3605b: 0x6dcac020, - 0x3605c: 0x6dcac220, 0x3605d: 0x6dcac420, 0x3605e: 0x6dcac620, 0x3605f: 0x6dcac820, - 0x36060: 0x6dcaca20, 0x36061: 0x6dcacc20, 0x36062: 0x6dcace20, 0x36063: 0x6dcad020, - 0x36064: 0x6dcad220, 0x36065: 0x6dcad420, 0x36066: 0x6dcad620, 0x36067: 0x6dcad820, - 0x36068: 0x6dcada20, 0x36069: 0x6de63a20, 0x3606a: 0x6de63c20, 0x3606b: 0x6de63e20, - 0x3606c: 0x6de64020, 0x3606d: 0x6de64220, 0x3606e: 0x6de64420, 0x3606f: 0x6de64620, - 0x36070: 0x6de64820, 0x36071: 0x6de64a20, 0x36072: 0x6de64c20, 0x36073: 0x6de64e20, - 0x36074: 0x6dcadc20, 0x36075: 0x6de65020, 0x36076: 0x6de65220, 0x36077: 0x6de65420, - 0x36078: 0x6de65620, 0x36079: 0x6de65820, 0x3607a: 0x6de65a20, 0x3607b: 0x6de65c20, - 0x3607c: 0x6de65e20, 0x3607d: 0x6de66020, 0x3607e: 0x6dfd0e20, 0x3607f: 0x6dfd1020, - // Block 0xd82, offset 0x36080 - 0x36080: 0x6dfd1220, 0x36081: 0x6dfd1420, 0x36082: 0x6dfd1620, 0x36083: 0x6dfd1820, - 0x36084: 0x6dfd1a20, 0x36085: 0x6dfd1c20, 0x36086: 0x6dfd1e20, 0x36087: 0x6dfd2020, - 0x36088: 0x6dfd2220, 0x36089: 0x6e0fdc20, 0x3608a: 0x6e0fde20, 0x3608b: 0x6e0fe020, - 0x3608c: 0x6e0fe220, 0x3608d: 0x6e0fe420, 0x3608e: 0x6e0fe620, 0x3608f: 0x6e0fe820, - 0x36090: 0x6e0fea20, 0x36091: 0x6e0fec20, 0x36092: 0x6e0fee20, 0x36093: 0x6e0ff020, - 0x36094: 0x6e1ebc20, 0x36095: 0x6e1ebe20, 0x36096: 0x6e1ec020, 0x36097: 0x6e1ec220, - 0x36098: 0x6e1ec420, 0x36099: 0x6e2a1e20, 0x3609a: 0x6e2a2020, 0x3609b: 0x6e2a2220, - 0x3609c: 0x6e2a2420, 0x3609d: 0x6e2a2620, 0x3609e: 0x6e2a2820, 0x3609f: 0x6e2a2a20, - 0x360a0: 0x6e32e020, 0x360a1: 0x6e33a820, 0x360a2: 0x6e3d6c20, 0x360a3: 0x6e391820, - 0x360a4: 0x6e391a20, 0x360a5: 0x6e391c20, 0x360a6: 0x6e391e20, 0x360a7: 0x6e392020, - 0x360a8: 0x6e3d6e20, 0x360a9: 0x6e42c220, 0x360aa: 0x6c3bae20, 0x360ab: 0x6c57ca20, - 0x360ac: 0x6c57cc20, 0x360ad: 0x6c57ce20, 0x360ae: 0x6c57d020, 0x360af: 0x6c57d220, - 0x360b0: 0x6c7a7c20, 0x360b1: 0x6c7a7e20, 0x360b2: 0x6c7a8020, 0x360b3: 0x6c7a8220, - 0x360b4: 0x6c7a8420, 0x360b5: 0x6ca38220, 0x360b6: 0x6ca38420, 0x360b7: 0x6ca38620, - 0x360b8: 0x6ca38820, 0x360b9: 0x6ca38a20, 0x360ba: 0x6cd16220, 0x360bb: 0x6cd16420, - 0x360bc: 0x6cd16620, 0x360bd: 0x6cd16820, 0x360be: 0x6cd16a20, 0x360bf: 0x6cd16c20, - // Block 0xd83, offset 0x360c0 - 0x360c0: 0x6cd16e20, 0x360c1: 0x6cff4420, 0x360c2: 0x6cff4620, 0x360c3: 0x6cff4820, - 0x360c4: 0x6cff4a20, 0x360c5: 0x6cff4c20, 0x360c6: 0x6cff4e20, 0x360c7: 0x6d5ab620, - 0x360c8: 0x6d2d8c20, 0x360c9: 0x6d2d8e20, 0x360ca: 0x6d2d9020, 0x360cb: 0x6d2d9220, - 0x360cc: 0x6d2d9420, 0x360cd: 0x6d5ab820, 0x360ce: 0x6d856c20, 0x360cf: 0x6d856e20, - 0x360d0: 0x6d5aba20, 0x360d1: 0x6d5abc20, 0x360d2: 0x6d5abe20, 0x360d3: 0x6d5ac020, - 0x360d4: 0x6d5ac220, 0x360d5: 0x6d5ac420, 0x360d6: 0x6d857020, 0x360d7: 0x6daa1020, - 0x360d8: 0x6dcae420, 0x360d9: 0x6dcae620, 0x360da: 0x6dcae820, 0x360db: 0x6e0ff420, - 0x360dc: 0x6e0ff620, 0x360dd: 0x6e0ff820, 0x360de: 0x6e1ec820, 0x360df: 0x6e1eca20, - 0x360e0: 0x6e2a2e20, 0x360e1: 0x6e2a3020, 0x360e2: 0x6e32e620, 0x360e3: 0x6e3d7220, - 0x360e4: 0x6e3d7420, 0x360e5: 0x6e452620, 0x360e6: 0x6c24a420, 0x360e7: 0x6c24a620, - 0x360e8: 0x6c3bba20, 0x360e9: 0x6c3bbc20, 0x360ea: 0x6c3bbe20, 0x360eb: 0x6c3bc020, - 0x360ec: 0x6c57ec20, 0x360ed: 0x6c57ee20, 0x360ee: 0x6c57f020, 0x360ef: 0x6c57f220, - 0x360f0: 0x6c57f420, 0x360f1: 0x6c57f620, 0x360f2: 0x6c57f820, 0x360f3: 0x6c7a9620, - 0x360f4: 0x6c7a9820, 0x360f5: 0x6c7a9a20, 0x360f6: 0x6c7a9c20, 0x360f7: 0x6c7a9e20, - 0x360f8: 0x6c7aa020, 0x360f9: 0x6c7aa220, 0x360fa: 0x6c7aa420, 0x360fb: 0x6c7aa620, - 0x360fc: 0x6c7aa820, 0x360fd: 0x6c7aaa20, 0x360fe: 0x6ca39e20, 0x360ff: 0x6ca3a020, - // Block 0xd84, offset 0x36100 - 0x36100: 0x6ca3a220, 0x36101: 0x6ca3a420, 0x36102: 0x6ca3a620, 0x36103: 0x6ca3a820, - 0x36104: 0x6ca3aa20, 0x36105: 0x6ca3ac20, 0x36106: 0x6ca3ae20, 0x36107: 0x6ca3b020, - 0x36108: 0x6ca3b220, 0x36109: 0x6ca3b420, 0x3610a: 0x6ca3b620, 0x3610b: 0x6ca3b820, - 0x3610c: 0x6cd18020, 0x3610d: 0x6cd18220, 0x3610e: 0x6cd18420, 0x3610f: 0x6cd18620, - 0x36110: 0x6cd18820, 0x36111: 0x6cd18a20, 0x36112: 0x6cd18c20, 0x36113: 0x6cd18e20, - 0x36114: 0x6cd19020, 0x36115: 0x6cd19220, 0x36116: 0x6cd19420, 0x36117: 0x6cd19620, - 0x36118: 0x6cd19820, 0x36119: 0x6cd19a20, 0x3611a: 0x6cd19c20, 0x3611b: 0x6cff6820, - 0x3611c: 0x6cff6a20, 0x3611d: 0x6cff6c20, 0x3611e: 0x6cff6e20, 0x3611f: 0x6cff7020, - 0x36120: 0x6cff7220, 0x36121: 0x6cff7420, 0x36122: 0x6cff7620, 0x36123: 0x6cff7820, - 0x36124: 0x6cff7a20, 0x36125: 0x6cff7c20, 0x36126: 0x6cff7e20, 0x36127: 0x6d2dae20, - 0x36128: 0x6d2db020, 0x36129: 0x6d2db220, 0x3612a: 0x6d2db420, 0x3612b: 0x6d2db620, - 0x3612c: 0x6d2db820, 0x3612d: 0x6d2dba20, 0x3612e: 0x6d2dbc20, 0x3612f: 0x6d2dbe20, - 0x36130: 0x6d2dc020, 0x36131: 0x6d2dc220, 0x36132: 0x6cff8020, 0x36133: 0x6d2dc420, - 0x36134: 0x6d2dc620, 0x36135: 0x6d2dc820, 0x36136: 0x6d2dca20, 0x36137: 0x6d2dcc20, - 0x36138: 0x6d2dce20, 0x36139: 0x6d5ad420, 0x3613a: 0x6d5ad620, 0x3613b: 0x6d5ad820, - 0x3613c: 0x6d5ada20, 0x3613d: 0x6d5adc20, 0x3613e: 0x6d5ade20, 0x3613f: 0x6d5ae020, - // Block 0xd85, offset 0x36140 - 0x36140: 0x6d5ae220, 0x36141: 0x6d5ae420, 0x36142: 0x6d5ae620, 0x36143: 0x6d5ae820, - 0x36144: 0x6d5aea20, 0x36145: 0x6d858420, 0x36146: 0x6d858620, 0x36147: 0x6d858820, - 0x36148: 0x6d858a20, 0x36149: 0x6d858c20, 0x3614a: 0x6d858e20, 0x3614b: 0x6d859020, - 0x3614c: 0x6d859220, 0x3614d: 0x6d859420, 0x3614e: 0x6daa2820, 0x3614f: 0x6daa2a20, - 0x36150: 0x6daa2c20, 0x36151: 0x6daa2e20, 0x36152: 0x6daa3020, 0x36153: 0x6daa3220, - 0x36154: 0x6daa3420, 0x36155: 0x6daa3620, 0x36156: 0x6cff8220, 0x36157: 0x6daa3820, - 0x36158: 0x6dcaf420, 0x36159: 0x6dcaf620, 0x3615a: 0x6dcaf820, 0x3615b: 0x6dcafa20, - 0x3615c: 0x6dcafc20, 0x3615d: 0x6dcafe20, 0x3615e: 0x6dcb0020, 0x3615f: 0x6dcb0220, - 0x36160: 0x6de67020, 0x36161: 0x6de67220, 0x36162: 0x6dfd2c20, 0x36163: 0x6dfd2e20, - 0x36164: 0x6dfd3020, 0x36165: 0x6dfd3220, 0x36166: 0x6e0ffc20, 0x36167: 0x6e0ffe20, - 0x36168: 0x6e100020, 0x36169: 0x6e100220, 0x3616a: 0x6e100420, 0x3616b: 0x6e100620, - 0x3616c: 0x6e100820, 0x3616d: 0x6e1ece20, 0x3616e: 0x6e1ed020, 0x3616f: 0x6e1ed220, - 0x36170: 0x6e2a3220, 0x36171: 0x6e2a3420, 0x36172: 0x6e2a3620, 0x36173: 0x6e2a3820, - 0x36174: 0x6e2a3a20, 0x36175: 0x6e2a3c20, 0x36176: 0x6e32ea20, 0x36177: 0x6e392420, - 0x36178: 0x6e407c20, 0x36179: 0x6e443820, 0x3617a: 0x6c0a0020, 0x3617b: 0x6c3bc620, - 0x3617c: 0x6c3bc820, 0x3617d: 0x6c3bca20, 0x3617e: 0x6c3bcc20, 0x3617f: 0x6c3bce20, - // Block 0xd86, offset 0x36180 - 0x36180: 0x6c3bd020, 0x36181: 0x6c580020, 0x36182: 0x6c580220, 0x36183: 0x6c580420, - 0x36184: 0x6c580620, 0x36185: 0x6c7ab020, 0x36186: 0x6cd19e20, 0x36187: 0x6cff8e20, - 0x36188: 0x6d2dd420, 0x36189: 0x6d5af220, 0x3618a: 0x6d5af420, 0x3618b: 0x6d859620, - 0x3618c: 0x6d859820, 0x3618d: 0x6daa3c20, 0x3618e: 0x6dcb0420, 0x3618f: 0x6dc4c420, - 0x36190: 0x6e100a20, 0x36191: 0x6e1ed620, 0x36192: 0x6e42c420, 0x36193: 0x6c0a0420, - 0x36194: 0x6c13ce20, 0x36195: 0x6c3bd220, 0x36196: 0x6c3bd420, 0x36197: 0x6c3bd620, - 0x36198: 0x6c580c20, 0x36199: 0x6c580e20, 0x3619a: 0x6c581020, 0x3619b: 0x6c581220, - 0x3619c: 0x6c581420, 0x3619d: 0x6c581620, 0x3619e: 0x6c581820, 0x3619f: 0x6c7ab420, - 0x361a0: 0x6ca3c220, 0x361a1: 0x6ca3c420, 0x361a2: 0x6ca3c620, 0x361a3: 0x6ca3c820, - 0x361a4: 0x6ca3ca20, 0x361a5: 0x6ca3cc20, 0x361a6: 0x6cd1aa20, 0x361a7: 0x6cd1ac20, - 0x361a8: 0x6cd1ae20, 0x361a9: 0x6cd1b020, 0x361aa: 0x6cd1b220, 0x361ab: 0x6cd1b420, - 0x361ac: 0x6cff9020, 0x361ad: 0x6cff9220, 0x361ae: 0x6cff9420, 0x361af: 0x6cff9620, - 0x361b0: 0x6cff9820, 0x361b1: 0x6cff9a20, 0x361b2: 0x6d2dd820, 0x361b3: 0x6d2dda20, - 0x361b4: 0x6d2ddc20, 0x361b5: 0x6d5af820, 0x361b6: 0x6d859c20, 0x361b7: 0x6daa3e20, - 0x361b8: 0x6daa4020, 0x361b9: 0x6daa4220, 0x361ba: 0x6dcb0620, 0x361bb: 0x6de67420, - 0x361bc: 0x6de67620, 0x361bd: 0x6de26620, 0x361be: 0x6de67820, 0x361bf: 0x6de67a20, - // Block 0xd87, offset 0x361c0 - 0x361c0: 0x6e100c20, 0x361c1: 0x6e1ed820, 0x361c2: 0x6e1eda20, 0x361c3: 0x6c13d220, - 0x361c4: 0x6c24ae20, 0x361c5: 0x6c3bde20, 0x361c6: 0x6c3be020, 0x361c7: 0x6c7ab820, - 0x361c8: 0x6ca3d020, 0x361c9: 0x6cd1b820, 0x361ca: 0x6d2dde20, 0x361cb: 0x6d5afa20, - 0x361cc: 0x6d5afc20, 0x361cd: 0x6dcb0820, 0x361ce: 0x6de67c20, 0x361cf: 0x6e1edc20, - 0x361d0: 0x6e392620, 0x361d1: 0x6e2a3e20, 0x361d2: 0x6c0a1620, 0x361d3: 0x6c13d820, - 0x361d4: 0x6c13da20, 0x361d5: 0x6c24c220, 0x361d6: 0x6c24c420, 0x361d7: 0x6c24c620, - 0x361d8: 0x6c24c820, 0x361d9: 0x6c24ca20, 0x361da: 0x6c24cc20, 0x361db: 0x6c24ce20, - 0x361dc: 0x6c24d020, 0x361dd: 0x6c3bfa20, 0x361de: 0x6c3bfc20, 0x361df: 0x6c3bfe20, - 0x361e0: 0x6c3c0020, 0x361e1: 0x6c3c0220, 0x361e2: 0x6c3c0420, 0x361e3: 0x6c3c0620, - 0x361e4: 0x6c3c0820, 0x361e5: 0x6c3c0a20, 0x361e6: 0x6c3c0c20, 0x361e7: 0x6c3c0e20, - 0x361e8: 0x6c3c1020, 0x361e9: 0x6c584020, 0x361ea: 0x6c584220, 0x361eb: 0x6c584420, - 0x361ec: 0x6c584620, 0x361ed: 0x6c584820, 0x361ee: 0x6c584a20, 0x361ef: 0x6c584c20, - 0x361f0: 0x6c584e20, 0x361f1: 0x6c585020, 0x361f2: 0x6c585220, 0x361f3: 0x6c585420, - 0x361f4: 0x6c585620, 0x361f5: 0x6c585820, 0x361f6: 0x6c585a20, 0x361f7: 0x6c585c20, - 0x361f8: 0x6c585e20, 0x361f9: 0x6c586020, 0x361fa: 0x6c586220, 0x361fb: 0x6c586420, - 0x361fc: 0x6c586620, 0x361fd: 0x6c586820, 0x361fe: 0x6c586a20, 0x361ff: 0x6c586c20, - // Block 0xd88, offset 0x36200 - 0x36200: 0x6c586e20, 0x36201: 0x6c587020, 0x36202: 0x6c587220, 0x36203: 0x6c587420, - 0x36204: 0x6c587620, 0x36205: 0x6c587820, 0x36206: 0x6c587a20, 0x36207: 0x6c587c20, - 0x36208: 0x6c587e20, 0x36209: 0x6c588020, 0x3620a: 0x6c588220, 0x3620b: 0x6c588420, - 0x3620c: 0x6c7ad620, 0x3620d: 0x6c7ad820, 0x3620e: 0x6c7ada20, 0x3620f: 0x6c7adc20, - 0x36210: 0x6c7ade20, 0x36211: 0x6c7ae020, 0x36212: 0x6c7ae220, 0x36213: 0x6c7ae420, - 0x36214: 0x6c7ae620, 0x36215: 0x6c7ae820, 0x36216: 0x6c7aea20, 0x36217: 0x6c7aec20, - 0x36218: 0x6c7aee20, 0x36219: 0x6c7af020, 0x3621a: 0x6c7af220, 0x3621b: 0x6c7af420, - 0x3621c: 0x6c7af620, 0x3621d: 0x6c7af820, 0x3621e: 0x6c7afa20, 0x3621f: 0x6c7afc20, - 0x36220: 0x6c7afe20, 0x36221: 0x6c63fc20, 0x36222: 0x6c7b0020, 0x36223: 0x6c7b0220, - 0x36224: 0x6c7b0420, 0x36225: 0x6ca3e820, 0x36226: 0x6ca3ea20, 0x36227: 0x6ca3ec20, - 0x36228: 0x6ca3ee20, 0x36229: 0x6ca3f020, 0x3622a: 0x6ca3f220, 0x3622b: 0x6ca3f420, - 0x3622c: 0x6ca3f620, 0x3622d: 0x6ca3f820, 0x3622e: 0x6ca3fa20, 0x3622f: 0x6ca3fc20, - 0x36230: 0x6ca3fe20, 0x36231: 0x6ca40020, 0x36232: 0x6ca40220, 0x36233: 0x6ca40420, - 0x36234: 0x6ca40620, 0x36235: 0x6ca40820, 0x36236: 0x6ca40a20, 0x36237: 0x6ca40c20, - 0x36238: 0x6ca40e20, 0x36239: 0x6ca41020, 0x3623a: 0x6ca41220, 0x3623b: 0x6cd1d020, - 0x3623c: 0x6cd1d220, 0x3623d: 0x6cd1d420, 0x3623e: 0x6cd1d620, 0x3623f: 0x6cd1d820, - // Block 0xd89, offset 0x36240 - 0x36240: 0x6cd1da20, 0x36241: 0x6cd1dc20, 0x36242: 0x6cd1de20, 0x36243: 0x6cd1e020, - 0x36244: 0x6cd1e220, 0x36245: 0x6cd1e420, 0x36246: 0x6cd1e620, 0x36247: 0x6cd1e820, - 0x36248: 0x6cd1ea20, 0x36249: 0x6cd1ec20, 0x3624a: 0x6cd1ee20, 0x3624b: 0x6cd1f020, - 0x3624c: 0x6cd1f220, 0x3624d: 0x6cd1f420, 0x3624e: 0x6cd1f620, 0x3624f: 0x6cd1f820, - 0x36250: 0x6cd1fa20, 0x36251: 0x6cffb620, 0x36252: 0x6cffb820, 0x36253: 0x6cffba20, - 0x36254: 0x6cffbc20, 0x36255: 0x6cffbe20, 0x36256: 0x6cffc020, 0x36257: 0x6cffc220, - 0x36258: 0x6cffc420, 0x36259: 0x6cffc620, 0x3625a: 0x6cffc820, 0x3625b: 0x6cffca20, - 0x3625c: 0x6cffcc20, 0x3625d: 0x6cffce20, 0x3625e: 0x6cffd020, 0x3625f: 0x6cffd220, - 0x36260: 0x6cffd420, 0x36261: 0x6cffd620, 0x36262: 0x6cffd820, 0x36263: 0x6cffda20, - 0x36264: 0x6cffdc20, 0x36265: 0x6cffde20, 0x36266: 0x6cffe020, 0x36267: 0x6cffe220, - 0x36268: 0x6cffe420, 0x36269: 0x6cffe620, 0x3626a: 0x6cffe820, 0x3626b: 0x6d2de820, - 0x3626c: 0x6d2dea20, 0x3626d: 0x6d2dec20, 0x3626e: 0x6d2dee20, 0x3626f: 0x6d2df020, - 0x36270: 0x6d2df220, 0x36271: 0x6d2df420, 0x36272: 0x6d2df620, 0x36273: 0x6d2df820, - 0x36274: 0x6d2dfa20, 0x36275: 0x6d2dfc20, 0x36276: 0x6d2dfe20, 0x36277: 0x6d5b0820, - 0x36278: 0x6d5b0a20, 0x36279: 0x6d5b0c20, 0x3627a: 0x6d5b0e20, 0x3627b: 0x6d5b1020, - 0x3627c: 0x6d5b1220, 0x3627d: 0x6d5b1420, 0x3627e: 0x6d5b1620, 0x3627f: 0x6d5b1820, - // Block 0xd8a, offset 0x36280 - 0x36280: 0x6d5b1a20, 0x36281: 0x6d5b1c20, 0x36282: 0x6d5b1e20, 0x36283: 0x6d5b2020, - 0x36284: 0x6d5b2220, 0x36285: 0x6d5b2420, 0x36286: 0x6d5b2620, 0x36287: 0x6d5b2820, - 0x36288: 0x6d85a620, 0x36289: 0x6d85a820, 0x3628a: 0x6d85aa20, 0x3628b: 0x6d85ac20, - 0x3628c: 0x6d85ae20, 0x3628d: 0x6d85b020, 0x3628e: 0x6d85b220, 0x3628f: 0x6d75d020, - 0x36290: 0x6d85b420, 0x36291: 0x6d85b620, 0x36292: 0x6daa4a20, 0x36293: 0x6daa4c20, - 0x36294: 0x6daa4e20, 0x36295: 0x6daa5020, 0x36296: 0x6daa5220, 0x36297: 0x6daa5420, - 0x36298: 0x6daa5620, 0x36299: 0x6daa5820, 0x3629a: 0x6daa5a20, 0x3629b: 0x6db99020, - 0x3629c: 0x6daa5c20, 0x3629d: 0x6daa5e20, 0x3629e: 0x6daa6020, 0x3629f: 0x6daa6220, - 0x362a0: 0x6daa6420, 0x362a1: 0x6daa6620, 0x362a2: 0x6daa6820, 0x362a3: 0x6daa6a20, - 0x362a4: 0x6dcb1020, 0x362a5: 0x6dcb1220, 0x362a6: 0x6dcb1420, 0x362a7: 0x6dcb1620, - 0x362a8: 0x6dcb1820, 0x362a9: 0x6de68420, 0x362aa: 0x6de68620, 0x362ab: 0x6de68820, - 0x362ac: 0x6de68a20, 0x362ad: 0x6de68c20, 0x362ae: 0x6de68e20, 0x362af: 0x6de69020, - 0x362b0: 0x6de69220, 0x362b1: 0x6dfd3820, 0x362b2: 0x6de69420, 0x362b3: 0x6dfd3a20, - 0x362b4: 0x6dfd3c20, 0x362b5: 0x6dfd3e20, 0x362b6: 0x6dfd4020, 0x362b7: 0x6dfd4220, - 0x362b8: 0x6dfd4420, 0x362b9: 0x6e100e20, 0x362ba: 0x6e101020, 0x362bb: 0x6e101220, - 0x362bc: 0x6e101420, 0x362bd: 0x6e101620, 0x362be: 0x6e101820, 0x362bf: 0x6e1ee020, - // Block 0xd8b, offset 0x362c0 - 0x362c0: 0x6e1ee220, 0x362c1: 0x6e1ee420, 0x362c2: 0x6e2a4220, 0x362c3: 0x6e2a4420, - 0x362c4: 0x6e2a4620, 0x362c5: 0x6e32ec20, 0x362c6: 0x6e392820, 0x362c7: 0x6e3d7620, - 0x362c8: 0x6e3d7820, 0x362c9: 0x6e3d7a20, 0x362ca: 0x6e3d7c20, 0x362cb: 0x6e3d7e20, - 0x362cc: 0x6e407e20, 0x362cd: 0x6e408020, 0x362ce: 0x6e42c620, 0x362cf: 0x6e452820, - 0x362d0: 0x6e463220, 0x362d1: 0x6e468620, 0x362d2: 0x6e46e820, 0x362d3: 0x6c0a1c20, - 0x362d4: 0x6c0a1e20, 0x362d5: 0x6c13dc20, 0x362d6: 0x6c3c1620, 0x362d7: 0x6c7b1020, - 0x362d8: 0x6c588e20, 0x362d9: 0x6cd20c20, 0x362da: 0x6cd20e20, 0x362db: 0x6cd21020, - 0x362dc: 0x6cfff220, 0x362dd: 0x6cfff420, 0x362de: 0x6d5b2e20, 0x362df: 0x6d85be20, - 0x362e0: 0x6d85c020, 0x362e1: 0x6d85c220, 0x362e2: 0x6d85c420, 0x362e3: 0x6dcb1e20, - 0x362e4: 0x6e1ee620, 0x362e5: 0x6c13de20, 0x362e6: 0x6c24e220, 0x362e7: 0x6c24e420, - 0x362e8: 0x6c24e620, 0x362e9: 0x6c24e820, 0x362ea: 0x6c24ea20, 0x362eb: 0x6c24ec20, - 0x362ec: 0x6c24ee20, 0x362ed: 0x6c24f020, 0x362ee: 0x6c24f220, 0x362ef: 0x6c3c3220, - 0x362f0: 0x6c3c3420, 0x362f1: 0x6c3c3620, 0x362f2: 0x6c3c3820, 0x362f3: 0x6c3c3a20, - 0x362f4: 0x6c3c3c20, 0x362f5: 0x6c3c3e20, 0x362f6: 0x6c3c4020, 0x362f7: 0x6c58ba20, - 0x362f8: 0x6c58bc20, 0x362f9: 0x6c58be20, 0x362fa: 0x6c58c020, 0x362fb: 0x6c58c220, - 0x362fc: 0x6c58c420, 0x362fd: 0x6c58c620, 0x362fe: 0x6c58c820, 0x362ff: 0x6c58ca20, - // Block 0xd8c, offset 0x36300 - 0x36300: 0x6c58cc20, 0x36301: 0x6c58ce20, 0x36302: 0x6c58d020, 0x36303: 0x6c58d220, - 0x36304: 0x6c58d420, 0x36305: 0x6c58d620, 0x36306: 0x6c58d820, 0x36307: 0x6c58da20, - 0x36308: 0x6c58dc20, 0x36309: 0x6c58de20, 0x3630a: 0x6c58e020, 0x3630b: 0x6c58e220, - 0x3630c: 0x6c58e420, 0x3630d: 0x6c58e620, 0x3630e: 0x6c58e820, 0x3630f: 0x6c58ea20, - 0x36310: 0x6c58ec20, 0x36311: 0x6c58ee20, 0x36312: 0x6c58f020, 0x36313: 0x6c58f220, - 0x36314: 0x6c58f420, 0x36315: 0x6c58f620, 0x36316: 0x6c58f820, 0x36317: 0x6c7b5c20, - 0x36318: 0x6c7b5e20, 0x36319: 0x6c7b6020, 0x3631a: 0x6c7b6220, 0x3631b: 0x6c7b6420, - 0x3631c: 0x6c7b6620, 0x3631d: 0x6c7b6820, 0x3631e: 0x6c7b6a20, 0x3631f: 0x6c7b6c20, - 0x36320: 0x6c7b6e20, 0x36321: 0x6c7b7020, 0x36322: 0x6c7b7220, 0x36323: 0x6c7b7420, - 0x36324: 0x6c7b7620, 0x36325: 0x6c7b7820, 0x36326: 0x6c7b7a20, 0x36327: 0x6c7b7c20, - 0x36328: 0x6c7b7e20, 0x36329: 0x6c7b8020, 0x3632a: 0x6c7b8220, 0x3632b: 0x6c7b8420, - 0x3632c: 0x6c7b8620, 0x3632d: 0x6c7b8820, 0x3632e: 0x6c7b8a20, 0x3632f: 0x6c7b8c20, - 0x36330: 0x6c7b8e20, 0x36331: 0x6c7b9020, 0x36332: 0x6c7b9220, 0x36333: 0x6c7b9420, - 0x36334: 0x6c7b9620, 0x36335: 0x6c7b9820, 0x36336: 0x6c7b9a20, 0x36337: 0x6ca44820, - 0x36338: 0x6ca44a20, 0x36339: 0x6ca44c20, 0x3633a: 0x6ca44e20, 0x3633b: 0x6ca45020, - 0x3633c: 0x6ca45220, 0x3633d: 0x6ca45420, 0x3633e: 0x6ca45620, 0x3633f: 0x6ca45820, - // Block 0xd8d, offset 0x36340 - 0x36340: 0x6ca45a20, 0x36341: 0x6ca45c20, 0x36342: 0x6ca45e20, 0x36343: 0x6ca46020, - 0x36344: 0x6ca46220, 0x36345: 0x6ca46420, 0x36346: 0x6ca46620, 0x36347: 0x6ca46820, - 0x36348: 0x6ca46a20, 0x36349: 0x6ca46c20, 0x3634a: 0x6ca46e20, 0x3634b: 0x6ca47020, - 0x3634c: 0x6ca47220, 0x3634d: 0x6ca47420, 0x3634e: 0x6ca47620, 0x3634f: 0x6ca47820, - 0x36350: 0x6ca47a20, 0x36351: 0x6ca47c20, 0x36352: 0x6ca47e20, 0x36353: 0x6ca48020, - 0x36354: 0x6ca48220, 0x36355: 0x6cd25a20, 0x36356: 0x6cd25c20, 0x36357: 0x6cd25e20, - 0x36358: 0x6cd26020, 0x36359: 0x6cd26220, 0x3635a: 0x6cd26420, 0x3635b: 0x6cd26620, - 0x3635c: 0x6cd26820, 0x3635d: 0x6cd26a20, 0x3635e: 0x6cd26c20, 0x3635f: 0x6cd26e20, - 0x36360: 0x6cd27020, 0x36361: 0x6cd27220, 0x36362: 0x6cd27420, 0x36363: 0x6cd27620, - 0x36364: 0x6cd27820, 0x36365: 0x6cd27a20, 0x36366: 0x6cd27c20, 0x36367: 0x6cd27e20, - 0x36368: 0x6cd28020, 0x36369: 0x6cd28220, 0x3636a: 0x6cd28420, 0x3636b: 0x6cd28620, - 0x3636c: 0x6cd28820, 0x3636d: 0x6cd28a20, 0x3636e: 0x6cd28c20, 0x3636f: 0x6cd28e20, - 0x36370: 0x6cd29020, 0x36371: 0x6cd29220, 0x36372: 0x6cd29420, 0x36373: 0x6cd29620, - 0x36374: 0x6cd29820, 0x36375: 0x6cd29a20, 0x36376: 0x6cd29c20, 0x36377: 0x6cd29e20, - 0x36378: 0x6cd2a020, 0x36379: 0x6cd2a220, 0x3637a: 0x6cd2a420, 0x3637b: 0x6cd2a620, - 0x3637c: 0x6cd2a820, 0x3637d: 0x6cd2aa20, 0x3637e: 0x6cd2ac20, 0x3637f: 0x6cd2ae20, - // Block 0xd8e, offset 0x36380 - 0x36380: 0x6cd2b020, 0x36381: 0x6cd2b220, 0x36382: 0x6d003c20, 0x36383: 0x6d003e20, - 0x36384: 0x6d004020, 0x36385: 0x6d004220, 0x36386: 0x6d004420, 0x36387: 0x6d004620, - 0x36388: 0x6d004820, 0x36389: 0x6d004a20, 0x3638a: 0x6d004c20, 0x3638b: 0x6d004e20, - 0x3638c: 0x6d005020, 0x3638d: 0x6d005220, 0x3638e: 0x6d005420, 0x3638f: 0x6d005620, - 0x36390: 0x6d005820, 0x36391: 0x6d005a20, 0x36392: 0x6d005c20, 0x36393: 0x6d005e20, - 0x36394: 0x6d006020, 0x36395: 0x6d006220, 0x36396: 0x6d006420, 0x36397: 0x6d006620, - 0x36398: 0x6d006820, 0x36399: 0x6d006a20, 0x3639a: 0x6d006c20, 0x3639b: 0x6d006e20, - 0x3639c: 0x6d007020, 0x3639d: 0x6d007220, 0x3639e: 0x6d007420, 0x3639f: 0x6d007620, - 0x363a0: 0x6d007820, 0x363a1: 0x6d007a20, 0x363a2: 0x6d007c20, 0x363a3: 0x6d007e20, - 0x363a4: 0x6d008020, 0x363a5: 0x6d008220, 0x363a6: 0x6d008420, 0x363a7: 0x6d008620, - 0x363a8: 0x6d008820, 0x363a9: 0x6d008a20, 0x363aa: 0x6d008c20, 0x363ab: 0x6d008e20, - 0x363ac: 0x6d009020, 0x363ad: 0x6d009220, 0x363ae: 0x6d009420, 0x363af: 0x6d009620, - 0x363b0: 0x6d009820, 0x363b1: 0x6d009a20, 0x363b2: 0x6d009c20, 0x363b3: 0x6d009e20, - 0x363b4: 0x6d00a020, 0x363b5: 0x6d00a220, 0x363b6: 0x6d00a420, 0x363b7: 0x6d00a620, - 0x363b8: 0x6d00a820, 0x363b9: 0x6d00aa20, 0x363ba: 0x6d00ac20, 0x363bb: 0x6d2e4220, - 0x363bc: 0x6d2e4420, 0x363bd: 0x6d2e4620, 0x363be: 0x6d2e4820, 0x363bf: 0x6d2e4a20, - // Block 0xd8f, offset 0x363c0 - 0x363c0: 0x6d2e4c20, 0x363c1: 0x6d2e4e20, 0x363c2: 0x6d2e5020, 0x363c3: 0x6d2e5220, - 0x363c4: 0x6d2e5420, 0x363c5: 0x6d2e5620, 0x363c6: 0x6d2e5820, 0x363c7: 0x6d2e5a20, - 0x363c8: 0x6d2e5c20, 0x363c9: 0x6d2e5e20, 0x363ca: 0x6d2e6020, 0x363cb: 0x6d2e6220, - 0x363cc: 0x6d2e6420, 0x363cd: 0x6d2e6620, 0x363ce: 0x6d2e6820, 0x363cf: 0x6d2e6a20, - 0x363d0: 0x6d2e6c20, 0x363d1: 0x6d2e6e20, 0x363d2: 0x6d2e7020, 0x363d3: 0x6d2e7220, - 0x363d4: 0x6d2e7420, 0x363d5: 0x6d2e7620, 0x363d6: 0x6d2e7820, 0x363d7: 0x6d2e7a20, - 0x363d8: 0x6d2e7c20, 0x363d9: 0x6d2e7e20, 0x363da: 0x6d2e8020, 0x363db: 0x6d2e8220, - 0x363dc: 0x6d2e8420, 0x363dd: 0x6d2e8620, 0x363de: 0x6d2e8820, 0x363df: 0x6d2e8a20, - 0x363e0: 0x6d2e8c20, 0x363e1: 0x6d2e8e20, 0x363e2: 0x6d2e9020, 0x363e3: 0x6d2e9220, - 0x363e4: 0x6d2e9420, 0x363e5: 0x6d2e9620, 0x363e6: 0x6d2e9820, 0x363e7: 0x6d2e9a20, - 0x363e8: 0x6d2e9c20, 0x363e9: 0x6d2e9e20, 0x363ea: 0x6d5b6c20, 0x363eb: 0x6d5b6e20, - 0x363ec: 0x6d5b7020, 0x363ed: 0x6d5b7220, 0x363ee: 0x6d5b7420, 0x363ef: 0x6d5b7620, - 0x363f0: 0x6d5b7820, 0x363f1: 0x6d5b7a20, 0x363f2: 0x6d5b7c20, 0x363f3: 0x6d5b7e20, - 0x363f4: 0x6d5b8020, 0x363f5: 0x6d5b8220, 0x363f6: 0x6d5b8420, 0x363f7: 0x6d5b8620, - 0x363f8: 0x6d5b8820, 0x363f9: 0x6d5b8a20, 0x363fa: 0x6d5b8c20, 0x363fb: 0x6d5b8e20, - 0x363fc: 0x6d5b9020, 0x363fd: 0x6d5b9220, 0x363fe: 0x6d5b9420, 0x363ff: 0x6d5b9620, - // Block 0xd90, offset 0x36400 - 0x36400: 0x6d5b9820, 0x36401: 0x6d5b9a20, 0x36402: 0x6d5b9c20, 0x36403: 0x6d5b9e20, - 0x36404: 0x6d5ba020, 0x36405: 0x6d5ba220, 0x36406: 0x6d5ba420, 0x36407: 0x6d5ba620, - 0x36408: 0x6d5ba820, 0x36409: 0x6d5baa20, 0x3640a: 0x6d5bac20, 0x3640b: 0x6d5bae20, - 0x3640c: 0x6d5bb020, 0x3640d: 0x6d5bb220, 0x3640e: 0x6d5bb420, 0x3640f: 0x6d5bb620, - 0x36410: 0x6d5bb820, 0x36411: 0x6d5bba20, 0x36412: 0x6d5bbc20, 0x36413: 0x6d5bbe20, - 0x36414: 0x6d5bc020, 0x36415: 0x6d5bc220, 0x36416: 0x6d5bc420, 0x36417: 0x6d5bc620, - 0x36418: 0x6d5bc820, 0x36419: 0x6d5bca20, 0x3641a: 0x6d5bcc20, 0x3641b: 0x6d5bce20, - 0x3641c: 0x6d5bd020, 0x3641d: 0x6d85fe20, 0x3641e: 0x6d860020, 0x3641f: 0x6d860220, - 0x36420: 0x6d860420, 0x36421: 0x6d860620, 0x36422: 0x6d860820, 0x36423: 0x6d860a20, - 0x36424: 0x6d860c20, 0x36425: 0x6d860e20, 0x36426: 0x6d861020, 0x36427: 0x6d861220, - 0x36428: 0x6d861420, 0x36429: 0x6d861620, 0x3642a: 0x6d861820, 0x3642b: 0x6d861a20, - 0x3642c: 0x6d861c20, 0x3642d: 0x6d861e20, 0x3642e: 0x6d862020, 0x3642f: 0x6d862220, - 0x36430: 0x6d862420, 0x36431: 0x6d862620, 0x36432: 0x6d862820, 0x36433: 0x6d862a20, - 0x36434: 0x6d862c20, 0x36435: 0x6d862e20, 0x36436: 0x6d863020, 0x36437: 0x6d863220, - 0x36438: 0x6d863420, 0x36439: 0x6d863620, 0x3643a: 0x6d863820, 0x3643b: 0x6d863a20, - 0x3643c: 0x6d863c20, 0x3643d: 0x6d863e20, 0x3643e: 0x6d864020, 0x3643f: 0x6d864220, - // Block 0xd91, offset 0x36440 - 0x36440: 0x6d864420, 0x36441: 0x6d864620, 0x36442: 0x6d864820, 0x36443: 0x6daa9020, - 0x36444: 0x6daa9220, 0x36445: 0x6daa9420, 0x36446: 0x6daa9620, 0x36447: 0x6daa9820, - 0x36448: 0x6daa9a20, 0x36449: 0x6daa9c20, 0x3644a: 0x6daa9e20, 0x3644b: 0x6daaa020, - 0x3644c: 0x6daaa220, 0x3644d: 0x6daaa420, 0x3644e: 0x6daaa620, 0x3644f: 0x6daaa820, - 0x36450: 0x6daaaa20, 0x36451: 0x6daaac20, 0x36452: 0x6daaae20, 0x36453: 0x6daab020, - 0x36454: 0x6daab220, 0x36455: 0x6daab420, 0x36456: 0x6daab620, 0x36457: 0x6daab820, - 0x36458: 0x6daaba20, 0x36459: 0x6daabc20, 0x3645a: 0x6daabe20, 0x3645b: 0x6daac020, - 0x3645c: 0x6daac220, 0x3645d: 0x6daac420, 0x3645e: 0x6d864a20, 0x3645f: 0x6daac620, - 0x36460: 0x6daac820, 0x36461: 0x6daaca20, 0x36462: 0x6daacc20, 0x36463: 0x6daace20, - 0x36464: 0x6daad020, 0x36465: 0x6daad220, 0x36466: 0x6daad420, 0x36467: 0x6daad620, - 0x36468: 0x6daad820, 0x36469: 0x6daada20, 0x3646a: 0x6daadc20, 0x3646b: 0x6daade20, - 0x3646c: 0x6daae020, 0x3646d: 0x6daae220, 0x3646e: 0x6daae420, 0x3646f: 0x6daae620, - 0x36470: 0x6daae820, 0x36471: 0x6daaea20, 0x36472: 0x6daaec20, 0x36473: 0x6daaee20, - 0x36474: 0x6daaf020, 0x36475: 0x6daaf220, 0x36476: 0x6daaf420, 0x36477: 0x6daaf620, - 0x36478: 0x6daaf820, 0x36479: 0x6daafa20, 0x3647a: 0x6dcb4c20, 0x3647b: 0x6dcb4e20, - 0x3647c: 0x6dcb5020, 0x3647d: 0x6dcb5220, 0x3647e: 0x6dcb5420, 0x3647f: 0x6dcb5620, - // Block 0xd92, offset 0x36480 - 0x36480: 0x6dcb5820, 0x36481: 0x6dcb5a20, 0x36482: 0x6dcb5c20, 0x36483: 0x6dcb5e20, - 0x36484: 0x6dcb6020, 0x36485: 0x6dcb6220, 0x36486: 0x6dcb6420, 0x36487: 0x6dcb6620, - 0x36488: 0x6dcb6820, 0x36489: 0x6dcb6a20, 0x3648a: 0x6dcb6c20, 0x3648b: 0x6dcb6e20, - 0x3648c: 0x6dcb7020, 0x3648d: 0x6dcb7220, 0x3648e: 0x6dcb7420, 0x3648f: 0x6dcb7620, - 0x36490: 0x6dcb7820, 0x36491: 0x6dcb7a20, 0x36492: 0x6dcb7c20, 0x36493: 0x6dcb7e20, - 0x36494: 0x6dcb8020, 0x36495: 0x6de6a420, 0x36496: 0x6de6a620, 0x36497: 0x6de6a820, - 0x36498: 0x6de6aa20, 0x36499: 0x6de6ac20, 0x3649a: 0x6de6ae20, 0x3649b: 0x6de6b020, - 0x3649c: 0x6de6b220, 0x3649d: 0x6de6b420, 0x3649e: 0x6de6b620, 0x3649f: 0x6de6b820, - 0x364a0: 0x6de6ba20, 0x364a1: 0x6de6bc20, 0x364a2: 0x6de6be20, 0x364a3: 0x6de6c020, - 0x364a4: 0x6de6c220, 0x364a5: 0x6de6c420, 0x364a6: 0x6de6c620, 0x364a7: 0x6de6c820, - 0x364a8: 0x6de6ca20, 0x364a9: 0x6de6cc20, 0x364aa: 0x6de6ce20, 0x364ab: 0x6de6d020, - 0x364ac: 0x6de6d220, 0x364ad: 0x6de6d420, 0x364ae: 0x6de6d620, 0x364af: 0x6de6d820, - 0x364b0: 0x6dfd5220, 0x364b1: 0x6dfd5420, 0x364b2: 0x6dfd5620, 0x364b3: 0x6dfd5820, - 0x364b4: 0x6dfd5a20, 0x364b5: 0x6dfd5c20, 0x364b6: 0x6dfd5e20, 0x364b7: 0x6dfd6020, - 0x364b8: 0x6dfd6220, 0x364b9: 0x6dfd6420, 0x364ba: 0x6dfd6620, 0x364bb: 0x6dfd6820, - 0x364bc: 0x6dfd6a20, 0x364bd: 0x6dfd6c20, 0x364be: 0x6dfd6e20, 0x364bf: 0x6dfd7020, - // Block 0xd93, offset 0x364c0 - 0x364c0: 0x6e102e20, 0x364c1: 0x6e103020, 0x364c2: 0x6e103220, 0x364c3: 0x6e103420, - 0x364c4: 0x6e103620, 0x364c5: 0x6e103820, 0x364c6: 0x6e103a20, 0x364c7: 0x6e103c20, - 0x364c8: 0x6e103e20, 0x364c9: 0x6e104020, 0x364ca: 0x6e104220, 0x364cb: 0x6e1ef020, - 0x364cc: 0x6e1ef220, 0x364cd: 0x6e1ef420, 0x364ce: 0x6e1ef620, 0x364cf: 0x6e1ef820, - 0x364d0: 0x6e2a4e20, 0x364d1: 0x6e2a5020, 0x364d2: 0x6e2a5220, 0x364d3: 0x6e2a5420, - 0x364d4: 0x6e2a5620, 0x364d5: 0x6e2a5820, 0x364d6: 0x6e2a5a20, 0x364d7: 0x6e2a5c20, - 0x364d8: 0x6e32f620, 0x364d9: 0x6e32f820, 0x364da: 0x6e32fa20, 0x364db: 0x6e32fc20, - 0x364dc: 0x6e392a20, 0x364dd: 0x6e392c20, 0x364de: 0x6e392e20, 0x364df: 0x6e3d8220, - 0x364e0: 0x6e3d8420, 0x364e1: 0x6e3d8620, 0x364e2: 0x6e408220, 0x364e3: 0x6e42cc20, - 0x364e4: 0x6e443a20, 0x364e5: 0x6c24f420, 0x364e6: 0x6c24f620, 0x364e7: 0x6c590820, - 0x364e8: 0x6c590a20, 0x364e9: 0x6c7ba420, 0x364ea: 0x6c7ba620, 0x364eb: 0x6c7ba820, - 0x364ec: 0x6ca48620, 0x364ed: 0x6ca48820, 0x364ee: 0x6ca48a20, 0x364ef: 0x6cd2bc20, - 0x364f0: 0x6cd2be20, 0x364f1: 0x6cd2c020, 0x364f2: 0x6cd2c220, 0x364f3: 0x6d00b420, - 0x364f4: 0x6d00b620, 0x364f5: 0x6d00b820, 0x364f6: 0x6d2ea620, 0x364f7: 0x6d5bd820, - 0x364f8: 0x6d5bda20, 0x364f9: 0x6d864c20, 0x364fa: 0x6d864e20, 0x364fb: 0x6dfd7220, - 0x364fc: 0x6d865020, 0x364fd: 0x6c13e420, 0x364fe: 0x6c13e620, 0x364ff: 0x6c250220, - // Block 0xd94, offset 0x36500 - 0x36500: 0x6c250420, 0x36501: 0x6c250620, 0x36502: 0x6c3c4820, 0x36503: 0x6c3c4a20, - 0x36504: 0x6c3c4c20, 0x36505: 0x6c3c4e20, 0x36506: 0x6c3c5020, 0x36507: 0x6c3c5220, - 0x36508: 0x6c591620, 0x36509: 0x6c591820, 0x3650a: 0x6c591a20, 0x3650b: 0x6c591c20, - 0x3650c: 0x6c591e20, 0x3650d: 0x6c592020, 0x3650e: 0x6c592220, 0x3650f: 0x6c592420, - 0x36510: 0x6c592620, 0x36511: 0x6c592820, 0x36512: 0x6c592a20, 0x36513: 0x6c592c20, - 0x36514: 0x6c592e20, 0x36515: 0x6c593020, 0x36516: 0x6c593220, 0x36517: 0x6c593420, - 0x36518: 0x6c7bb620, 0x36519: 0x6c7bb820, 0x3651a: 0x6c7bba20, 0x3651b: 0x6c7bbc20, - 0x3651c: 0x6c7bbe20, 0x3651d: 0x6c7bc020, 0x3651e: 0x6c7bc220, 0x3651f: 0x6c7bc420, - 0x36520: 0x6c7bc620, 0x36521: 0x6c7bc820, 0x36522: 0x6c7bca20, 0x36523: 0x6c7bcc20, - 0x36524: 0x6c7bce20, 0x36525: 0x6ca49a20, 0x36526: 0x6ca49c20, 0x36527: 0x6ca49e20, - 0x36528: 0x6ca4a020, 0x36529: 0x6ca4a220, 0x3652a: 0x6ca4a420, 0x3652b: 0x6ca4a620, - 0x3652c: 0x6cd2d020, 0x3652d: 0x6cd2d220, 0x3652e: 0x6cd2d420, 0x3652f: 0x6cd2d620, - 0x36530: 0x6cd2d820, 0x36531: 0x6cd2da20, 0x36532: 0x6cd2dc20, 0x36533: 0x6cd2de20, - 0x36534: 0x6cd2e020, 0x36535: 0x6cd2e220, 0x36536: 0x6cd2e420, 0x36537: 0x6cd2e620, - 0x36538: 0x6cd2e820, 0x36539: 0x6d00c220, 0x3653a: 0x6d00c420, 0x3653b: 0x6d00c620, - 0x3653c: 0x6d00c820, 0x3653d: 0x6d00ca20, 0x3653e: 0x6d00cc20, 0x3653f: 0x6d00ce20, - // Block 0xd95, offset 0x36540 - 0x36540: 0x6d00d020, 0x36541: 0x6d00d220, 0x36542: 0x6d00d420, 0x36543: 0x6d00d620, - 0x36544: 0x6d00d820, 0x36545: 0x6d00da20, 0x36546: 0x6d00dc20, 0x36547: 0x6d00de20, - 0x36548: 0x6d2eac20, 0x36549: 0x6d2eae20, 0x3654a: 0x6d2eb020, 0x3654b: 0x6d2eb220, - 0x3654c: 0x6d2eb420, 0x3654d: 0x6d2eb620, 0x3654e: 0x6d2eb820, 0x3654f: 0x6d2eba20, - 0x36550: 0x6d2ebc20, 0x36551: 0x6d2ebe20, 0x36552: 0x6d2ec020, 0x36553: 0x6d2ec220, - 0x36554: 0x6d5be820, 0x36555: 0x6d5bea20, 0x36556: 0x6d5bec20, 0x36557: 0x6d5bee20, - 0x36558: 0x6d5bf020, 0x36559: 0x6d5bf220, 0x3655a: 0x6d5bf420, 0x3655b: 0x6d865a20, - 0x3655c: 0x6d865c20, 0x3655d: 0x6d865e20, 0x3655e: 0x6d866020, 0x3655f: 0x6d866220, - 0x36560: 0x6dab0820, 0x36561: 0x6dab0a20, 0x36562: 0x6dab0c20, 0x36563: 0x6dab0e20, - 0x36564: 0x6dab1020, 0x36565: 0x6dab1220, 0x36566: 0x6dab1420, 0x36567: 0x6dcb8a20, - 0x36568: 0x6dcb8c20, 0x36569: 0x6dcb8e20, 0x3656a: 0x6dcb9020, 0x3656b: 0x6de6e020, - 0x3656c: 0x6de6e220, 0x3656d: 0x6de6e420, 0x3656e: 0x6de6e620, 0x3656f: 0x6de6e820, - 0x36570: 0x6de6ea20, 0x36571: 0x6de6ec20, 0x36572: 0x6de6ee20, 0x36573: 0x6de6f020, - 0x36574: 0x6dfd7820, 0x36575: 0x6dfd7a20, 0x36576: 0x6dfd7c20, 0x36577: 0x6dfd7e20, - 0x36578: 0x6e104820, 0x36579: 0x6e104a20, 0x3657a: 0x6e104c20, 0x3657b: 0x6e1efa20, - 0x3657c: 0x6e1efc20, 0x3657d: 0x6e1efe20, 0x3657e: 0x6e2a5e20, 0x3657f: 0x6e2a6020, - // Block 0xd96, offset 0x36580 - 0x36580: 0x6e32fe20, 0x36581: 0x6e330020, 0x36582: 0x6e330220, 0x36583: 0x6e330420, - 0x36584: 0x6e393220, 0x36585: 0x6e443c20, 0x36586: 0x6c250820, 0x36587: 0x6c250a20, - 0x36588: 0x6c3c5820, 0x36589: 0x6c3c5a20, 0x3658a: 0x6c3c5c20, 0x3658b: 0x6c3c5e20, - 0x3658c: 0x6c3c6020, 0x3658d: 0x6c3c6220, 0x3658e: 0x6c593e20, 0x3658f: 0x6c594020, - 0x36590: 0x6c594220, 0x36591: 0x6c594420, 0x36592: 0x6c594620, 0x36593: 0x6c594820, - 0x36594: 0x6c594a20, 0x36595: 0x6c7bdc20, 0x36596: 0x6c7bde20, 0x36597: 0x6c7be020, - 0x36598: 0x6c7be220, 0x36599: 0x6c7be420, 0x3659a: 0x6c7be620, 0x3659b: 0x6c7be820, - 0x3659c: 0x6c7bea20, 0x3659d: 0x6c7bec20, 0x3659e: 0x6c7bee20, 0x3659f: 0x6ca4ae20, - 0x365a0: 0x6ca4b020, 0x365a1: 0x6ca4b220, 0x365a2: 0x6ca4b420, 0x365a3: 0x6ca4b620, - 0x365a4: 0x6ca4b820, 0x365a5: 0x6ca4ba20, 0x365a6: 0x6ca4bc20, 0x365a7: 0x6cd2f420, - 0x365a8: 0x6cd2f620, 0x365a9: 0x6cd2f820, 0x365aa: 0x6cd2fa20, 0x365ab: 0x6cd2fc20, - 0x365ac: 0x6cd2fe20, 0x365ad: 0x6cd30020, 0x365ae: 0x6cd30220, 0x365af: 0x6d00ec20, - 0x365b0: 0x6cd30420, 0x365b1: 0x6cd30620, 0x365b2: 0x6cd30820, 0x365b3: 0x6d00ee20, - 0x365b4: 0x6d00f020, 0x365b5: 0x6d00f220, 0x365b6: 0x6d00f420, 0x365b7: 0x6d00f620, - 0x365b8: 0x6d00f820, 0x365b9: 0x6d00fa20, 0x365ba: 0x6d00fc20, 0x365bb: 0x6d00fe20, - 0x365bc: 0x6d010020, 0x365bd: 0x6d010220, 0x365be: 0x6d010420, 0x365bf: 0x6d010620, - // Block 0xd97, offset 0x365c0 - 0x365c0: 0x6d2ed420, 0x365c1: 0x6d2ed620, 0x365c2: 0x6d2ed820, 0x365c3: 0x6d2eda20, - 0x365c4: 0x6d2edc20, 0x365c5: 0x6d2ede20, 0x365c6: 0x6d2ee020, 0x365c7: 0x6d2ee220, - 0x365c8: 0x6d2ee420, 0x365c9: 0x6d2ee620, 0x365ca: 0x6d2ee820, 0x365cb: 0x6d2eea20, - 0x365cc: 0x6d2eec20, 0x365cd: 0x6d5bfe20, 0x365ce: 0x6d5c0020, 0x365cf: 0x6d5c0220, - 0x365d0: 0x6d5c0420, 0x365d1: 0x6d5c0620, 0x365d2: 0x6d5c0820, 0x365d3: 0x6d5c0a20, - 0x365d4: 0x6d866820, 0x365d5: 0x6d866a20, 0x365d6: 0x6d866c20, 0x365d7: 0x6d866e20, - 0x365d8: 0x6d867020, 0x365d9: 0x6d867220, 0x365da: 0x6d867420, 0x365db: 0x6d867620, - 0x365dc: 0x6d867820, 0x365dd: 0x6d867a20, 0x365de: 0x6d867c20, 0x365df: 0x6dab1820, - 0x365e0: 0x6dab1a20, 0x365e1: 0x6dab1c20, 0x365e2: 0x6dcb9620, 0x365e3: 0x6dcb9820, - 0x365e4: 0x6dcb9a20, 0x365e5: 0x6dcb9c20, 0x365e6: 0x6dcb9e20, 0x365e7: 0x6dcba020, - 0x365e8: 0x6dcba220, 0x365e9: 0x6dcba420, 0x365ea: 0x6dcba620, 0x365eb: 0x6de6f220, - 0x365ec: 0x6de6f420, 0x365ed: 0x6de6f620, 0x365ee: 0x6de6f820, 0x365ef: 0x6dfd8420, - 0x365f0: 0x6dfd8620, 0x365f1: 0x6dfd8820, 0x365f2: 0x6dfd8a20, 0x365f3: 0x6dfd8c20, - 0x365f4: 0x6e105020, 0x365f5: 0x6e105220, 0x365f6: 0x6e1f0220, 0x365f7: 0x6e1f0420, - 0x365f8: 0x6e1f0620, 0x365f9: 0x6e330620, 0x365fa: 0x6e330820, 0x365fb: 0x6e3c7e20, - 0x365fc: 0x6e3fda20, 0x365fd: 0x6e450420, 0x365fe: 0x6e46a420, 0x365ff: 0x6c251020, - // Block 0xd98, offset 0x36600 - 0x36600: 0x6c251220, 0x36601: 0x6c3c6a20, 0x36602: 0x6c3c6c20, 0x36603: 0x6c3c6e20, - 0x36604: 0x6c3c7020, 0x36605: 0x6c3c7220, 0x36606: 0x6c595e20, 0x36607: 0x6c596020, - 0x36608: 0x6c596220, 0x36609: 0x6c596420, 0x3660a: 0x6c596620, 0x3660b: 0x6c596820, - 0x3660c: 0x6c596a20, 0x3660d: 0x6c596c20, 0x3660e: 0x6c7c0820, 0x3660f: 0x6c7c0a20, - 0x36610: 0x6c7c0c20, 0x36611: 0x6c7c0e20, 0x36612: 0x6c7c1020, 0x36613: 0x6c7c1220, - 0x36614: 0x6c7c1420, 0x36615: 0x6c7c1620, 0x36616: 0x6c7c1820, 0x36617: 0x6c7c1a20, - 0x36618: 0x6c7c1c20, 0x36619: 0x6c7c1e20, 0x3661a: 0x6c7c2020, 0x3661b: 0x6c7c2220, - 0x3661c: 0x6c7c2420, 0x3661d: 0x6c7c2620, 0x3661e: 0x6ca4d220, 0x3661f: 0x6ca4d420, - 0x36620: 0x6ca4d620, 0x36621: 0x6ca4d820, 0x36622: 0x6ca4da20, 0x36623: 0x6ca4dc20, - 0x36624: 0x6ca4de20, 0x36625: 0x6ca4e020, 0x36626: 0x6ca4e220, 0x36627: 0x6ca4e420, - 0x36628: 0x6ca4e620, 0x36629: 0x6ca4e820, 0x3662a: 0x6ca4ea20, 0x3662b: 0x6c7c2820, - 0x3662c: 0x6cd31220, 0x3662d: 0x6cd31420, 0x3662e: 0x6cd31620, 0x3662f: 0x6cd31820, - 0x36630: 0x6cd31a20, 0x36631: 0x6cd31c20, 0x36632: 0x6cd31e20, 0x36633: 0x6cd32020, - 0x36634: 0x6cd32220, 0x36635: 0x6cd32420, 0x36636: 0x6cd32620, 0x36637: 0x6d011220, - 0x36638: 0x6d011420, 0x36639: 0x6d011620, 0x3663a: 0x6d011820, 0x3663b: 0x6d011a20, - 0x3663c: 0x6d011c20, 0x3663d: 0x6d011e20, 0x3663e: 0x6d012020, 0x3663f: 0x6d012220, - // Block 0xd99, offset 0x36640 - 0x36640: 0x6d012420, 0x36641: 0x6d012620, 0x36642: 0x6d012820, 0x36643: 0x6d2efc20, - 0x36644: 0x6d2efe20, 0x36645: 0x6d2f0020, 0x36646: 0x6d2f0220, 0x36647: 0x6d5c0e20, - 0x36648: 0x6d5c1020, 0x36649: 0x6d5c1220, 0x3664a: 0x6d5c1420, 0x3664b: 0x6d5c1620, - 0x3664c: 0x6d5c1820, 0x3664d: 0x6d5c1a20, 0x3664e: 0x6d5c1c20, 0x3664f: 0x6d5c1e20, - 0x36650: 0x6d5c2020, 0x36651: 0x6d5c2220, 0x36652: 0x6d5c2420, 0x36653: 0x6d868820, - 0x36654: 0x6d868a20, 0x36655: 0x6d868c20, 0x36656: 0x6d868e20, 0x36657: 0x6d869020, - 0x36658: 0x6d869220, 0x36659: 0x6d869420, 0x3665a: 0x6d869620, 0x3665b: 0x6d869820, - 0x3665c: 0x6d869a20, 0x3665d: 0x6d869c20, 0x3665e: 0x6d869e20, 0x3665f: 0x6d86a020, - 0x36660: 0x6d86a220, 0x36661: 0x6d86a420, 0x36662: 0x6d86a620, 0x36663: 0x6d86a820, - 0x36664: 0x6d86aa20, 0x36665: 0x6dab2620, 0x36666: 0x6dab2820, 0x36667: 0x6dab2a20, - 0x36668: 0x6dab2c20, 0x36669: 0x6dab2e20, 0x3666a: 0x6dab3020, 0x3666b: 0x6dab3220, - 0x3666c: 0x6dab3420, 0x3666d: 0x6dab3620, 0x3666e: 0x6dab3820, 0x3666f: 0x6dab3a20, - 0x36670: 0x6dab3c20, 0x36671: 0x6dab3e20, 0x36672: 0x6dab4020, 0x36673: 0x6da02a20, - 0x36674: 0x6dab4220, 0x36675: 0x6dab4420, 0x36676: 0x6dab4620, 0x36677: 0x6dab4820, - 0x36678: 0x6dcbac20, 0x36679: 0x6dcbae20, 0x3667a: 0x6dcbb020, 0x3667b: 0x6de6fc20, - 0x3667c: 0x6dcbb220, 0x3667d: 0x6dcbb420, 0x3667e: 0x6dcbb620, 0x3667f: 0x6dcbb820, - // Block 0xd9a, offset 0x36680 - 0x36680: 0x6dcbba20, 0x36681: 0x6de6fe20, 0x36682: 0x6de70020, 0x36683: 0x6de70220, - 0x36684: 0x6de70420, 0x36685: 0x6de70620, 0x36686: 0x6de70820, 0x36687: 0x6dfd9020, - 0x36688: 0x6dfd9220, 0x36689: 0x6dfd9420, 0x3668a: 0x6dfd9620, 0x3668b: 0x6dfd9820, - 0x3668c: 0x6dfd9a20, 0x3668d: 0x6dfd9c20, 0x3668e: 0x6dfd9e20, 0x3668f: 0x6dfda020, - 0x36690: 0x6dfda220, 0x36691: 0x6dfda420, 0x36692: 0x6e105620, 0x36693: 0x6e1f0a20, - 0x36694: 0x6e1f0c20, 0x36695: 0x6e1f0e20, 0x36696: 0x6e1f1020, 0x36697: 0x6e1f1220, - 0x36698: 0x6e2a6220, 0x36699: 0x6e2a6420, 0x3669a: 0x6e330a20, 0x3669b: 0x6e330c20, - 0x3669c: 0x6e330e20, 0x3669d: 0x6e331020, 0x3669e: 0x6e2a6620, 0x3669f: 0x6e393420, - 0x366a0: 0x6e393620, 0x366a1: 0x6e3d8820, 0x366a2: 0x6e452c20, 0x366a3: 0x6e468820, - 0x366a4: 0x6c13e820, 0x366a5: 0x6c13ea20, 0x366a6: 0x6c251a20, 0x366a7: 0x6c251c20, - 0x366a8: 0x6c251e20, 0x366a9: 0x6c252020, 0x366aa: 0x6c252220, 0x366ab: 0x6c252420, - 0x366ac: 0x6c252620, 0x366ad: 0x6c252820, 0x366ae: 0x6c252a20, 0x366af: 0x6c252c20, - 0x366b0: 0x6c252e20, 0x366b1: 0x6c253020, 0x366b2: 0x6c3c8c20, 0x366b3: 0x6c3c8e20, - 0x366b4: 0x6c3c9020, 0x366b5: 0x6c3c9220, 0x366b6: 0x6c3c9420, 0x366b7: 0x6c3c9620, - 0x366b8: 0x6c3c9820, 0x366b9: 0x6c3c9a20, 0x366ba: 0x6c3c9c20, 0x366bb: 0x6c3c9e20, - 0x366bc: 0x6c3ca020, 0x366bd: 0x6c3ca220, 0x366be: 0x6c3ca420, 0x366bf: 0x6c3ca620, - // Block 0xd9b, offset 0x366c0 - 0x366c0: 0x6c3ca820, 0x366c1: 0x6c3caa20, 0x366c2: 0x6c3cac20, 0x366c3: 0x6c59b820, - 0x366c4: 0x6c59ba20, 0x366c5: 0x6c59bc20, 0x366c6: 0x6c59be20, 0x366c7: 0x6c59c020, - 0x366c8: 0x6c59c220, 0x366c9: 0x6c59c420, 0x366ca: 0x6c59c620, 0x366cb: 0x6c59c820, - 0x366cc: 0x6c59ca20, 0x366cd: 0x6c59cc20, 0x366ce: 0x6c59ce20, 0x366cf: 0x6c59d020, - 0x366d0: 0x6c59d220, 0x366d1: 0x6c59d420, 0x366d2: 0x6c59d620, 0x366d3: 0x6c59d820, - 0x366d4: 0x6c59da20, 0x366d5: 0x6c59dc20, 0x366d6: 0x6c59de20, 0x366d7: 0x6c59e020, - 0x366d8: 0x6c59e220, 0x366d9: 0x6c59e420, 0x366da: 0x6c59e620, 0x366db: 0x6c59e820, - 0x366dc: 0x6c59ea20, 0x366dd: 0x6c59ec20, 0x366de: 0x6c59ee20, 0x366df: 0x6c59f020, - 0x366e0: 0x6c59f220, 0x366e1: 0x6c59f420, 0x366e2: 0x6c59f620, 0x366e3: 0x6c59f820, - 0x366e4: 0x6c59fa20, 0x366e5: 0x6c59fc20, 0x366e6: 0x6c59fe20, 0x366e7: 0x6c5a0020, - 0x366e8: 0x6c5a0220, 0x366e9: 0x6c5a0420, 0x366ea: 0x6c5a0620, 0x366eb: 0x6c5a0820, - 0x366ec: 0x6c5a0a20, 0x366ed: 0x6c5a0c20, 0x366ee: 0x6c5a0e20, 0x366ef: 0x6c5a1020, - 0x366f0: 0x6c5a1220, 0x366f1: 0x6c7c7a20, 0x366f2: 0x6c7c7c20, 0x366f3: 0x6c7c7e20, - 0x366f4: 0x6c7c8020, 0x366f5: 0x6c7c8220, 0x366f6: 0x6c7c8420, 0x366f7: 0x6c7c8620, - 0x366f8: 0x6c7c8820, 0x366f9: 0x6c7c8a20, 0x366fa: 0x6c7c8c20, 0x366fb: 0x6c7c8e20, - 0x366fc: 0x6c7c9020, 0x366fd: 0x6c7c9220, 0x366fe: 0x6c7c9420, 0x366ff: 0x6c7c9620, - // Block 0xd9c, offset 0x36700 - 0x36700: 0x6c7c9820, 0x36701: 0x6c7c9a20, 0x36702: 0x6c7c9c20, 0x36703: 0x6c7c9e20, - 0x36704: 0x6c7ca020, 0x36705: 0x6c7ca220, 0x36706: 0x6c7ca420, 0x36707: 0x6c7ca620, - 0x36708: 0x6c7ca820, 0x36709: 0x6c7caa20, 0x3670a: 0x6c7cac20, 0x3670b: 0x6c7cae20, - 0x3670c: 0x6c7cb020, 0x3670d: 0x6c7cb220, 0x3670e: 0x6c7cb420, 0x3670f: 0x6c7cb620, - 0x36710: 0x6c7cb820, 0x36711: 0x6c7cba20, 0x36712: 0x6c7cbc20, 0x36713: 0x6c7cbe20, - 0x36714: 0x6c7cc020, 0x36715: 0x6c7cc220, 0x36716: 0x6c7cc420, 0x36717: 0x6c7cc620, - 0x36718: 0x6c7cc820, 0x36719: 0x6c7cca20, 0x3671a: 0x6ca52a20, 0x3671b: 0x6ca52c20, - 0x3671c: 0x6ca52e20, 0x3671d: 0x6ca53020, 0x3671e: 0x6ca53220, 0x3671f: 0x6ca53420, - 0x36720: 0x6ca53620, 0x36721: 0x6ca53820, 0x36722: 0x6ca53a20, 0x36723: 0x6ca53c20, - 0x36724: 0x6ca53e20, 0x36725: 0x6ca54020, 0x36726: 0x6ca54220, 0x36727: 0x6ca54420, - 0x36728: 0x6ca54620, 0x36729: 0x6ca54820, 0x3672a: 0x6ca54a20, 0x3672b: 0x6ca54c20, - 0x3672c: 0x6ca54e20, 0x3672d: 0x6ca55020, 0x3672e: 0x6ca55220, 0x3672f: 0x6ca55420, - 0x36730: 0x6ca55620, 0x36731: 0x6ca55820, 0x36732: 0x6ca55a20, 0x36733: 0x6ca55c20, - 0x36734: 0x6ca55e20, 0x36735: 0x6ca56020, 0x36736: 0x6ca56220, 0x36737: 0x6ca56420, - 0x36738: 0x6ca56620, 0x36739: 0x6ca56820, 0x3673a: 0x6ca56a20, 0x3673b: 0x6ca56c20, - 0x3673c: 0x6ca56e20, 0x3673d: 0x6ca57020, 0x3673e: 0x6ca57220, 0x3673f: 0x6ca57420, - // Block 0xd9d, offset 0x36740 - 0x36740: 0x6ca57620, 0x36741: 0x6ca57820, 0x36742: 0x6ca57a20, 0x36743: 0x6ca57c20, - 0x36744: 0x6ca57e20, 0x36745: 0x6ca58020, 0x36746: 0x6ca58220, 0x36747: 0x6ca58420, - 0x36748: 0x6ca58620, 0x36749: 0x6ca58820, 0x3674a: 0x6cd37220, 0x3674b: 0x6cd37420, - 0x3674c: 0x6cd37620, 0x3674d: 0x6cd37820, 0x3674e: 0x6cd37a20, 0x3674f: 0x6cd37c20, - 0x36750: 0x6cd37e20, 0x36751: 0x6cd38020, 0x36752: 0x6cd38220, 0x36753: 0x6cd38420, - 0x36754: 0x6cd38620, 0x36755: 0x6cd38820, 0x36756: 0x6cd38a20, 0x36757: 0x6cd38c20, - 0x36758: 0x6cd38e20, 0x36759: 0x6cd39020, 0x3675a: 0x6cd39220, 0x3675b: 0x6cd39420, - 0x3675c: 0x6cd39620, 0x3675d: 0x6cd39820, 0x3675e: 0x6cd39a20, 0x3675f: 0x6cd39c20, - 0x36760: 0x6cd39e20, 0x36761: 0x6cd3a020, 0x36762: 0x6cd3a220, 0x36763: 0x6cd3a420, - 0x36764: 0x6cd3a620, 0x36765: 0x6cd3a820, 0x36766: 0x6cd3aa20, 0x36767: 0x6cd3ac20, - 0x36768: 0x6cd3ae20, 0x36769: 0x6cd3b020, 0x3676a: 0x6cd3b220, 0x3676b: 0x6cd3b420, - 0x3676c: 0x6cd3b620, 0x3676d: 0x6cd3b820, 0x3676e: 0x6cd3ba20, 0x3676f: 0x6cd3bc20, - 0x36770: 0x6cd3be20, 0x36771: 0x6cd3c020, 0x36772: 0x6cd3c220, 0x36773: 0x6cd3c420, - 0x36774: 0x6cd3c620, 0x36775: 0x6cd3c820, 0x36776: 0x6cd3ca20, 0x36777: 0x6cd3cc20, - 0x36778: 0x6cd3ce20, 0x36779: 0x6cd3d020, 0x3677a: 0x6cd3d220, 0x3677b: 0x6cd3d420, - 0x3677c: 0x6cd3d620, 0x3677d: 0x6cd3d820, 0x3677e: 0x6cd3da20, 0x3677f: 0x6cd3dc20, - // Block 0xd9e, offset 0x36780 - 0x36780: 0x6cd3de20, 0x36781: 0x6cd3e020, 0x36782: 0x6cd3e220, 0x36783: 0x6cd3e420, - 0x36784: 0x6cd3e620, 0x36785: 0x6d017e20, 0x36786: 0x6cd3e820, 0x36787: 0x6cd3ea20, - 0x36788: 0x6cd3ec20, 0x36789: 0x6d018020, 0x3678a: 0x6d018220, 0x3678b: 0x6d018420, - 0x3678c: 0x6d018620, 0x3678d: 0x6d018820, 0x3678e: 0x6d018a20, 0x3678f: 0x6d018c20, - 0x36790: 0x6d018e20, 0x36791: 0x6d019020, 0x36792: 0x6d019220, 0x36793: 0x6d019420, - 0x36794: 0x6d019620, 0x36795: 0x6d019820, 0x36796: 0x6d019a20, 0x36797: 0x6d019c20, - 0x36798: 0x6d019e20, 0x36799: 0x6d01a020, 0x3679a: 0x6d01a220, 0x3679b: 0x6d01a420, - 0x3679c: 0x6d01a620, 0x3679d: 0x6d01a820, 0x3679e: 0x6d01aa20, 0x3679f: 0x6d01ac20, - 0x367a0: 0x6d01ae20, 0x367a1: 0x6d01b020, 0x367a2: 0x6d01b220, 0x367a3: 0x6d01b420, - 0x367a4: 0x6d01b620, 0x367a5: 0x6d01b820, 0x367a6: 0x6d01ba20, 0x367a7: 0x6d01bc20, - 0x367a8: 0x6d01be20, 0x367a9: 0x6d01c020, 0x367aa: 0x6d01c220, 0x367ab: 0x6cd3ee20, - 0x367ac: 0x6d01c420, 0x367ad: 0x6d01c620, 0x367ae: 0x6d01c820, 0x367af: 0x6d01ca20, - 0x367b0: 0x6d01cc20, 0x367b1: 0x6d01ce20, 0x367b2: 0x6d01d020, 0x367b3: 0x6d01d220, - 0x367b4: 0x6cf5b420, 0x367b5: 0x6d01d420, 0x367b6: 0x6d01d620, 0x367b7: 0x6d01d820, - 0x367b8: 0x6d01da20, 0x367b9: 0x6d01dc20, 0x367ba: 0x6d01de20, 0x367bb: 0x6d01e020, - 0x367bc: 0x6d01e220, 0x367bd: 0x6d01e420, 0x367be: 0x6d01e620, 0x367bf: 0x6d01e820, - // Block 0xd9f, offset 0x367c0 - 0x367c0: 0x6d01ea20, 0x367c1: 0x6d01ec20, 0x367c2: 0x6d2f5220, 0x367c3: 0x6d2f5420, - 0x367c4: 0x6d2f5620, 0x367c5: 0x6d2f5820, 0x367c6: 0x6d2f5a20, 0x367c7: 0x6d2f5c20, - 0x367c8: 0x6d2f5e20, 0x367c9: 0x6d2f6020, 0x367ca: 0x6d2f6220, 0x367cb: 0x6d2f6420, - 0x367cc: 0x6d2f6620, 0x367cd: 0x6d2f6820, 0x367ce: 0x6d2f6a20, 0x367cf: 0x6d2f6c20, - 0x367d0: 0x6d2f6e20, 0x367d1: 0x6d2f7020, 0x367d2: 0x6d2f7220, 0x367d3: 0x6d2f7420, - 0x367d4: 0x6d2f7620, 0x367d5: 0x6d2f7820, 0x367d6: 0x6d2f7a20, 0x367d7: 0x6d2f7c20, - 0x367d8: 0x6d2f7e20, 0x367d9: 0x6d2f8020, 0x367da: 0x6d2f8220, 0x367db: 0x6d2f8420, - 0x367dc: 0x6d2f8620, 0x367dd: 0x6d2f8820, 0x367de: 0x6d2f8a20, 0x367df: 0x6d2f8c20, - 0x367e0: 0x6d2f8e20, 0x367e1: 0x6d2f9020, 0x367e2: 0x6d2f9220, 0x367e3: 0x6d2f9420, - 0x367e4: 0x6d2f9620, 0x367e5: 0x6d2f9820, 0x367e6: 0x6d2f9a20, 0x367e7: 0x6d2f9c20, - 0x367e8: 0x6d2f9e20, 0x367e9: 0x6d2fa020, 0x367ea: 0x6d2fa220, 0x367eb: 0x6d2fa420, - 0x367ec: 0x6d2fa620, 0x367ed: 0x6d2fa820, 0x367ee: 0x6d2faa20, 0x367ef: 0x6d2fac20, - 0x367f0: 0x6d2fae20, 0x367f1: 0x6d2fb020, 0x367f2: 0x6d2fb220, 0x367f3: 0x6d2fb420, - 0x367f4: 0x6d2fb620, 0x367f5: 0x6d2fb820, 0x367f6: 0x6d2fba20, 0x367f7: 0x6d2fbc20, - 0x367f8: 0x6d2fbe20, 0x367f9: 0x6d2fc020, 0x367fa: 0x6d2fc220, 0x367fb: 0x6d2fc420, - 0x367fc: 0x6d5c5820, 0x367fd: 0x6d5c5a20, 0x367fe: 0x6d5c5c20, 0x367ff: 0x6d5c5e20, - // Block 0xda0, offset 0x36800 - 0x36800: 0x6d5c6020, 0x36801: 0x6d5c6220, 0x36802: 0x6d5c6420, 0x36803: 0x6d5c6620, - 0x36804: 0x6d5c6820, 0x36805: 0x6d5c6a20, 0x36806: 0x6d5c6c20, 0x36807: 0x6d5c6e20, - 0x36808: 0x6d5c7020, 0x36809: 0x6d5c7220, 0x3680a: 0x6d5c7420, 0x3680b: 0x6d5c7620, - 0x3680c: 0x6d5c7820, 0x3680d: 0x6d5c7a20, 0x3680e: 0x6d5c7c20, 0x3680f: 0x6d5c7e20, - 0x36810: 0x6d5c8020, 0x36811: 0x6d5c8220, 0x36812: 0x6d5c8420, 0x36813: 0x6d5c8620, - 0x36814: 0x6d5c8820, 0x36815: 0x6d5c8a20, 0x36816: 0x6d5c8c20, 0x36817: 0x6d5c8e20, - 0x36818: 0x6d5c9020, 0x36819: 0x6d5c9220, 0x3681a: 0x6d5c9420, 0x3681b: 0x6d5c9620, - 0x3681c: 0x6d5c9820, 0x3681d: 0x6d5c9a20, 0x3681e: 0x6d5c9c20, 0x3681f: 0x6d5c9e20, - 0x36820: 0x6d5ca020, 0x36821: 0x6d5ca220, 0x36822: 0x6d5ca420, 0x36823: 0x6d5ca620, - 0x36824: 0x6d5ca820, 0x36825: 0x6d5caa20, 0x36826: 0x6d5cac20, 0x36827: 0x6d5cae20, - 0x36828: 0x6d5cb020, 0x36829: 0x6d5cb220, 0x3682a: 0x6d5cb420, 0x3682b: 0x6d5cb620, - 0x3682c: 0x6d5cb820, 0x3682d: 0x6d5cba20, 0x3682e: 0x6d5cbc20, 0x3682f: 0x6d5cbe20, - 0x36830: 0x6d5cc020, 0x36831: 0x6d5cc220, 0x36832: 0x6d5cc420, 0x36833: 0x6d5cc620, - 0x36834: 0x6d86e020, 0x36835: 0x6d86e220, 0x36836: 0x6d86e420, 0x36837: 0x6d86e620, - 0x36838: 0x6d86e820, 0x36839: 0x6d86ea20, 0x3683a: 0x6d86ec20, 0x3683b: 0x6d86ee20, - 0x3683c: 0x6d86f020, 0x3683d: 0x6d86f220, 0x3683e: 0x6d86f420, 0x3683f: 0x6d86f620, - // Block 0xda1, offset 0x36840 - 0x36840: 0x6d86f820, 0x36841: 0x6d86fa20, 0x36842: 0x6d86fc20, 0x36843: 0x6d86fe20, - 0x36844: 0x6d870020, 0x36845: 0x6d870220, 0x36846: 0x6d870420, 0x36847: 0x6d5cc820, - 0x36848: 0x6d870620, 0x36849: 0x6d870820, 0x3684a: 0x6d870a20, 0x3684b: 0x6d870c20, - 0x3684c: 0x6d870e20, 0x3684d: 0x6d871020, 0x3684e: 0x6d871220, 0x3684f: 0x6d871420, - 0x36850: 0x6d871620, 0x36851: 0x6d871820, 0x36852: 0x6d871a20, 0x36853: 0x6d871c20, - 0x36854: 0x6d871e20, 0x36855: 0x6d872020, 0x36856: 0x6d872220, 0x36857: 0x6d872420, - 0x36858: 0x6d872620, 0x36859: 0x6d872820, 0x3685a: 0x6d872a20, 0x3685b: 0x6d872c20, - 0x3685c: 0x6d872e20, 0x3685d: 0x6d873020, 0x3685e: 0x6d873220, 0x3685f: 0x6d873420, - 0x36860: 0x6d873620, 0x36861: 0x6d873820, 0x36862: 0x6d873a20, 0x36863: 0x6d873c20, - 0x36864: 0x6d873e20, 0x36865: 0x6d874020, 0x36866: 0x6d874220, 0x36867: 0x6d874420, - 0x36868: 0x6d874620, 0x36869: 0x6d874820, 0x3686a: 0x6dab8620, 0x3686b: 0x6dab8820, - 0x3686c: 0x6dab8a20, 0x3686d: 0x6dab8c20, 0x3686e: 0x6dab8e20, 0x3686f: 0x6dab9020, - 0x36870: 0x6dab9220, 0x36871: 0x6dab9420, 0x36872: 0x6dab9620, 0x36873: 0x6dab9820, - 0x36874: 0x6dab9a20, 0x36875: 0x6dab9c20, 0x36876: 0x6dab9e20, 0x36877: 0x6daba020, - 0x36878: 0x6daba220, 0x36879: 0x6daba420, 0x3687a: 0x6daba620, 0x3687b: 0x6daba820, - 0x3687c: 0x6dabaa20, 0x3687d: 0x6dabac20, 0x3687e: 0x6dabae20, 0x3687f: 0x6dabb020, - // Block 0xda2, offset 0x36880 - 0x36880: 0x6dabb220, 0x36881: 0x6dabb420, 0x36882: 0x6dabb620, 0x36883: 0x6dabb820, - 0x36884: 0x6dabba20, 0x36885: 0x6dabbc20, 0x36886: 0x6dabbe20, 0x36887: 0x6dabc020, - 0x36888: 0x6dabc220, 0x36889: 0x6dabc420, 0x3688a: 0x6dabc620, 0x3688b: 0x6dabc820, - 0x3688c: 0x6dabca20, 0x3688d: 0x6dabcc20, 0x3688e: 0x6dabce20, 0x3688f: 0x6dabd020, - 0x36890: 0x6dabd220, 0x36891: 0x6dabd420, 0x36892: 0x6dabd620, 0x36893: 0x6dabd820, - 0x36894: 0x6dabda20, 0x36895: 0x6dabdc20, 0x36896: 0x6d874a20, 0x36897: 0x6dabde20, - 0x36898: 0x6dcbe220, 0x36899: 0x6dcbe420, 0x3689a: 0x6dcbe620, 0x3689b: 0x6dcbe820, - 0x3689c: 0x6dcbea20, 0x3689d: 0x6dcbec20, 0x3689e: 0x6dcbee20, 0x3689f: 0x6dcbf020, - 0x368a0: 0x6dcbf220, 0x368a1: 0x6dcbf420, 0x368a2: 0x6dcbf620, 0x368a3: 0x6dcbf820, - 0x368a4: 0x6dcbfa20, 0x368a5: 0x6dcbfc20, 0x368a6: 0x6dcbfe20, 0x368a7: 0x6dcc0020, - 0x368a8: 0x6dcc0220, 0x368a9: 0x6dcc0420, 0x368aa: 0x6dcc0620, 0x368ab: 0x6dcc0820, - 0x368ac: 0x6dcc0a20, 0x368ad: 0x6dcc0c20, 0x368ae: 0x6dcc0e20, 0x368af: 0x6dcc1020, - 0x368b0: 0x6dcc1220, 0x368b1: 0x6dcc1420, 0x368b2: 0x6dcc1620, 0x368b3: 0x6dcc1820, - 0x368b4: 0x6dcc1a20, 0x368b5: 0x6dcc1c20, 0x368b6: 0x6dcc1e20, 0x368b7: 0x6dcc2020, - 0x368b8: 0x6dcc2220, 0x368b9: 0x6dcc2420, 0x368ba: 0x6dcc2620, 0x368bb: 0x6dcc2820, - 0x368bc: 0x6dcc2a20, 0x368bd: 0x6dcc2c20, 0x368be: 0x6dcc2e20, 0x368bf: 0x6de71c20, - // Block 0xda3, offset 0x368c0 - 0x368c0: 0x6de71e20, 0x368c1: 0x6de72020, 0x368c2: 0x6de72220, 0x368c3: 0x6de72420, - 0x368c4: 0x6de72620, 0x368c5: 0x6de72820, 0x368c6: 0x6de72a20, 0x368c7: 0x6de72c20, - 0x368c8: 0x6de72e20, 0x368c9: 0x6de73020, 0x368ca: 0x6de73220, 0x368cb: 0x6de73420, - 0x368cc: 0x6de73620, 0x368cd: 0x6de73820, 0x368ce: 0x6de73a20, 0x368cf: 0x6de73c20, - 0x368d0: 0x6de73e20, 0x368d1: 0x6de74020, 0x368d2: 0x6de74220, 0x368d3: 0x6de74420, - 0x368d4: 0x6de74620, 0x368d5: 0x6df25c20, 0x368d6: 0x6de74820, 0x368d7: 0x6de74a20, - 0x368d8: 0x6de74c20, 0x368d9: 0x6de74e20, 0x368da: 0x6dfdb820, 0x368db: 0x6dfdba20, - 0x368dc: 0x6dfdbc20, 0x368dd: 0x6dfdbe20, 0x368de: 0x6dfdc020, 0x368df: 0x6dfdc220, - 0x368e0: 0x6dfdc420, 0x368e1: 0x6dfdc620, 0x368e2: 0x6dfdc820, 0x368e3: 0x6dfdca20, - 0x368e4: 0x6dfdcc20, 0x368e5: 0x6dfdce20, 0x368e6: 0x6dfdd020, 0x368e7: 0x6dfdd220, - 0x368e8: 0x6dfdd420, 0x368e9: 0x6dfdd620, 0x368ea: 0x6dfdd820, 0x368eb: 0x6dfdda20, - 0x368ec: 0x6dfddc20, 0x368ed: 0x6e106820, 0x368ee: 0x6e106a20, 0x368ef: 0x6e106c20, - 0x368f0: 0x6e106e20, 0x368f1: 0x6e107020, 0x368f2: 0x6e107220, 0x368f3: 0x6e107420, - 0x368f4: 0x6e107620, 0x368f5: 0x6e107820, 0x368f6: 0x6e107a20, 0x368f7: 0x6e107c20, - 0x368f8: 0x6e107e20, 0x368f9: 0x6e108020, 0x368fa: 0x6e1f1820, 0x368fb: 0x6e1f1a20, - 0x368fc: 0x6e1f1c20, 0x368fd: 0x6e1f1e20, 0x368fe: 0x6e1f2020, 0x368ff: 0x6e1f2220, - // Block 0xda4, offset 0x36900 - 0x36900: 0x6e1f2420, 0x36901: 0x6e1f2620, 0x36902: 0x6e108220, 0x36903: 0x6e1f2820, - 0x36904: 0x6e21a620, 0x36905: 0x6e1f2a20, 0x36906: 0x6e1f2c20, 0x36907: 0x6e1f2e20, - 0x36908: 0x6e2a6e20, 0x36909: 0x6e2a7020, 0x3690a: 0x6e2a7220, 0x3690b: 0x6e2a7420, - 0x3690c: 0x6e2a7620, 0x3690d: 0x6e2a7820, 0x3690e: 0x6e2a7a20, 0x3690f: 0x6e331820, - 0x36910: 0x6e331a20, 0x36911: 0x6e331c20, 0x36912: 0x6e331e20, 0x36913: 0x6e393e20, - 0x36914: 0x6e3d8c20, 0x36915: 0x6e3d8e20, 0x36916: 0x6e3d9020, 0x36917: 0x6e3d9220, - 0x36918: 0x6e3d9420, 0x36919: 0x6e408420, 0x3691a: 0x6e408620, 0x3691b: 0x6e42ce20, - 0x3691c: 0x6e444220, 0x3691d: 0x6c13ec20, 0x3691e: 0x6c3cb420, 0x3691f: 0x6c5a1e20, - 0x36920: 0x6c5a2020, 0x36921: 0x6c7cd820, 0x36922: 0x6c7cda20, 0x36923: 0x6c7cdc20, - 0x36924: 0x6c7cde20, 0x36925: 0x6c7ce020, 0x36926: 0x6c7ce220, 0x36927: 0x6ca59620, - 0x36928: 0x6ca59820, 0x36929: 0x6ca59a20, 0x3692a: 0x6cd3f820, 0x3692b: 0x6cd3fa20, - 0x3692c: 0x6cd3fc20, 0x3692d: 0x6cd3fe20, 0x3692e: 0x6cd40020, 0x3692f: 0x6cd40220, - 0x36930: 0x6cd40420, 0x36931: 0x6cd40620, 0x36932: 0x6d01fe20, 0x36933: 0x6d020020, - 0x36934: 0x6d020220, 0x36935: 0x6d020420, 0x36936: 0x6d2fd020, 0x36937: 0x6d2fd220, - 0x36938: 0x6d2fd420, 0x36939: 0x6d2fd620, 0x3693a: 0x6d2fd820, 0x3693b: 0x6d2fda20, - 0x3693c: 0x6d2fdc20, 0x3693d: 0x6d2fde20, 0x3693e: 0x6d2fe020, 0x3693f: 0x6d2fe220, - // Block 0xda5, offset 0x36940 - 0x36940: 0x6d2fe420, 0x36941: 0x6d2fe620, 0x36942: 0x6d5cd220, 0x36943: 0x6d5cd420, - 0x36944: 0x6d5cd620, 0x36945: 0x6d5cd820, 0x36946: 0x6d5cda20, 0x36947: 0x6d5cdc20, - 0x36948: 0x6d5cde20, 0x36949: 0x6d5ce020, 0x3694a: 0x6d875420, 0x3694b: 0x6d875620, - 0x3694c: 0x6d875820, 0x3694d: 0x6d875a20, 0x3694e: 0x6dcc3020, 0x3694f: 0x6dabf020, - 0x36950: 0x6dabf220, 0x36951: 0x6dabf420, 0x36952: 0x6dabf620, 0x36953: 0x6dcc3220, - 0x36954: 0x6dcc3420, 0x36955: 0x6dcc3620, 0x36956: 0x6de75220, 0x36957: 0x6de75420, - 0x36958: 0x6de75620, 0x36959: 0x6de75820, 0x3695a: 0x6de75a20, 0x3695b: 0x6de75c20, - 0x3695c: 0x6de75e20, 0x3695d: 0x6e108820, 0x3695e: 0x6dfde220, 0x3695f: 0x6dfde420, - 0x36960: 0x6dfde620, 0x36961: 0x6e2a7c20, 0x36962: 0x6e2a7e20, 0x36963: 0x6e2a8020, - 0x36964: 0x6e46ca20, 0x36965: 0x6e46ea20, 0x36966: 0x6c253420, 0x36967: 0x6c253620, - 0x36968: 0x6c3cba20, 0x36969: 0x6c5a2a20, 0x3696a: 0x6c5a2c20, 0x3696b: 0x6c5a2e20, - 0x3696c: 0x6c5a3020, 0x3696d: 0x6c5a3220, 0x3696e: 0x6c5a3420, 0x3696f: 0x6c5a3620, - 0x36970: 0x6c7cea20, 0x36971: 0x6c7cec20, 0x36972: 0x6c7cee20, 0x36973: 0x6c7cf020, - 0x36974: 0x6c7cf220, 0x36975: 0x6c7cf420, 0x36976: 0x6c7cf620, 0x36977: 0x6c7cf820, - 0x36978: 0x6c7cfa20, 0x36979: 0x6ca5a220, 0x3697a: 0x6ca5a420, 0x3697b: 0x6ca5a620, - 0x3697c: 0x6ca5a820, 0x3697d: 0x6ca5aa20, 0x3697e: 0x6ca5ac20, 0x3697f: 0x6ca5ae20, - // Block 0xda6, offset 0x36980 - 0x36980: 0x6ca5b020, 0x36981: 0x6ca5b220, 0x36982: 0x6ca5b420, 0x36983: 0x6ca5b620, - 0x36984: 0x6ca5b820, 0x36985: 0x6ca5ba20, 0x36986: 0x6ca5bc20, 0x36987: 0x6ca5be20, - 0x36988: 0x6ca5c020, 0x36989: 0x6ca5c220, 0x3698a: 0x6ca5c420, 0x3698b: 0x6ca5c620, - 0x3698c: 0x6ca5c820, 0x3698d: 0x6ca5ca20, 0x3698e: 0x6cd41220, 0x3698f: 0x6cd41420, - 0x36990: 0x6cd41620, 0x36991: 0x6cd41820, 0x36992: 0x6cd41a20, 0x36993: 0x6cd41c20, - 0x36994: 0x6cd41e20, 0x36995: 0x6cd42020, 0x36996: 0x6cd42220, 0x36997: 0x6cd42420, - 0x36998: 0x6d020a20, 0x36999: 0x6d020c20, 0x3699a: 0x6d020e20, 0x3699b: 0x6d021020, - 0x3699c: 0x6d021220, 0x3699d: 0x6d021420, 0x3699e: 0x6d021620, 0x3699f: 0x6d021820, - 0x369a0: 0x6d021a20, 0x369a1: 0x6d021c20, 0x369a2: 0x6d021e20, 0x369a3: 0x6d022020, - 0x369a4: 0x6d022220, 0x369a5: 0x6d022420, 0x369a6: 0x6d022620, 0x369a7: 0x6d022820, - 0x369a8: 0x6d022a20, 0x369a9: 0x6d022c20, 0x369aa: 0x6d2fea20, 0x369ab: 0x6d2fec20, - 0x369ac: 0x6d2fee20, 0x369ad: 0x6d2ff020, 0x369ae: 0x6d2ff220, 0x369af: 0x6d2ff420, - 0x369b0: 0x6d2ff620, 0x369b1: 0x6d2ff820, 0x369b2: 0x6d5ce220, 0x369b3: 0x6d5ce420, - 0x369b4: 0x6d5ce620, 0x369b5: 0x6d5ce820, 0x369b6: 0x6d5cea20, 0x369b7: 0x6d5cec20, - 0x369b8: 0x6d5cee20, 0x369b9: 0x6d5cf020, 0x369ba: 0x6d5cf220, 0x369bb: 0x6d875c20, - 0x369bc: 0x6d875e20, 0x369bd: 0x6d876020, 0x369be: 0x6d876220, 0x369bf: 0x6d876420, - // Block 0xda7, offset 0x369c0 - 0x369c0: 0x6dabfc20, 0x369c1: 0x6dabfe20, 0x369c2: 0x6dac0020, 0x369c3: 0x6dac0220, - 0x369c4: 0x6dac0420, 0x369c5: 0x6dac0620, 0x369c6: 0x6dac0820, 0x369c7: 0x6dcc3820, - 0x369c8: 0x6dcc3a20, 0x369c9: 0x6dcc3c20, 0x369ca: 0x6dcc3e20, 0x369cb: 0x6dcc4020, - 0x369cc: 0x6de76220, 0x369cd: 0x6de76420, 0x369ce: 0x6de76620, 0x369cf: 0x6de76820, - 0x369d0: 0x6e2a8220, 0x369d1: 0x6e1f3020, 0x369d2: 0x6e1f3220, 0x369d3: 0x6e2a8420, - 0x369d4: 0x6e2a8620, 0x369d5: 0x6c13f020, 0x369d6: 0x6c13f220, 0x369d7: 0x6c254020, - 0x369d8: 0x6c254220, 0x369d9: 0x6c254420, 0x369da: 0x6c254620, 0x369db: 0x6c254820, - 0x369dc: 0x6c254a20, 0x369dd: 0x6c3cd620, 0x369de: 0x6c3cd820, 0x369df: 0x6c3cda20, - 0x369e0: 0x6c3cdc20, 0x369e1: 0x6c3cde20, 0x369e2: 0x6c3ce020, 0x369e3: 0x6c3ce220, - 0x369e4: 0x6c3ce420, 0x369e5: 0x6c3ce620, 0x369e6: 0x6c3ce820, 0x369e7: 0x6c3cea20, - 0x369e8: 0x6c3cec20, 0x369e9: 0x6c5a7e20, 0x369ea: 0x6c5a8020, 0x369eb: 0x6c5a8220, - 0x369ec: 0x6c5a8420, 0x369ed: 0x6c5a8620, 0x369ee: 0x6c5a8820, 0x369ef: 0x6c5a8a20, - 0x369f0: 0x6c5a8c20, 0x369f1: 0x6c5a8e20, 0x369f2: 0x6c5a9020, 0x369f3: 0x6c5a9220, - 0x369f4: 0x6c5a9420, 0x369f5: 0x6c5a9620, 0x369f6: 0x6c5a9820, 0x369f7: 0x6c5a9a20, - 0x369f8: 0x6c5a9c20, 0x369f9: 0x6c5a9e20, 0x369fa: 0x6c5aa020, 0x369fb: 0x6c5aa220, - 0x369fc: 0x6c5aa420, 0x369fd: 0x6c5aa620, 0x369fe: 0x6c5aa820, 0x369ff: 0x6c5aaa20, - // Block 0xda8, offset 0x36a00 - 0x36a00: 0x6c5aac20, 0x36a01: 0x6c5aae20, 0x36a02: 0x6c5ab020, 0x36a03: 0x6c5ab220, - 0x36a04: 0x6c5ab420, 0x36a05: 0x6c5ab620, 0x36a06: 0x6c7d5a20, 0x36a07: 0x6c7d5c20, - 0x36a08: 0x6c7d5e20, 0x36a09: 0x6c7d6020, 0x36a0a: 0x6c7d6220, 0x36a0b: 0x6c7d6420, - 0x36a0c: 0x6c7d6620, 0x36a0d: 0x6c7d6820, 0x36a0e: 0x6c7d6a20, 0x36a0f: 0x6c7d6c20, - 0x36a10: 0x6c7d6e20, 0x36a11: 0x6c7d7020, 0x36a12: 0x6c7d7220, 0x36a13: 0x6c7d7420, - 0x36a14: 0x6c7d7620, 0x36a15: 0x6c7d7820, 0x36a16: 0x6c7d7a20, 0x36a17: 0x6c7d7c20, - 0x36a18: 0x6c7d7e20, 0x36a19: 0x6c7d8020, 0x36a1a: 0x6c7d8220, 0x36a1b: 0x6c7d8420, - 0x36a1c: 0x6c7d8620, 0x36a1d: 0x6c7d8820, 0x36a1e: 0x6c7d8a20, 0x36a1f: 0x6c7d8c20, - 0x36a20: 0x6c7d8e20, 0x36a21: 0x6c7d9020, 0x36a22: 0x6c7d9220, 0x36a23: 0x6c7d9420, - 0x36a24: 0x6c7d9620, 0x36a25: 0x6c7d9820, 0x36a26: 0x6c7d9a20, 0x36a27: 0x6c7d9c20, - 0x36a28: 0x6c7d9e20, 0x36a29: 0x6c7da020, 0x36a2a: 0x6c7da220, 0x36a2b: 0x6c7da420, - 0x36a2c: 0x6c7da620, 0x36a2d: 0x6c7da820, 0x36a2e: 0x6c7daa20, 0x36a2f: 0x6c7dac20, - 0x36a30: 0x6c7dae20, 0x36a31: 0x6c7db020, 0x36a32: 0x6c7db220, 0x36a33: 0x6ca61220, - 0x36a34: 0x6ca61420, 0x36a35: 0x6ca61620, 0x36a36: 0x6ca61820, 0x36a37: 0x6ca61a20, - 0x36a38: 0x6ca61c20, 0x36a39: 0x6ca61e20, 0x36a3a: 0x6ca62020, 0x36a3b: 0x6ca62220, - 0x36a3c: 0x6ca62420, 0x36a3d: 0x6ca62620, 0x36a3e: 0x6ca62820, 0x36a3f: 0x6ca62a20, - // Block 0xda9, offset 0x36a40 - 0x36a40: 0x6ca62c20, 0x36a41: 0x6ca62e20, 0x36a42: 0x6ca63020, 0x36a43: 0x6ca63220, - 0x36a44: 0x6ca63420, 0x36a45: 0x6ca63620, 0x36a46: 0x6ca63820, 0x36a47: 0x6ca63a20, - 0x36a48: 0x6ca63c20, 0x36a49: 0x6ca63e20, 0x36a4a: 0x6ca64020, 0x36a4b: 0x6ca64220, - 0x36a4c: 0x6ca64420, 0x36a4d: 0x6ca64620, 0x36a4e: 0x6ca64820, 0x36a4f: 0x6ca64a20, - 0x36a50: 0x6ca64c20, 0x36a51: 0x6ca64e20, 0x36a52: 0x6ca65020, 0x36a53: 0x6ca65220, - 0x36a54: 0x6ca65420, 0x36a55: 0x6ca65620, 0x36a56: 0x6ca65820, 0x36a57: 0x6ca65a20, - 0x36a58: 0x6ca65c20, 0x36a59: 0x6ca65e20, 0x36a5a: 0x6ca66020, 0x36a5b: 0x6ca66220, - 0x36a5c: 0x6ca66420, 0x36a5d: 0x6ca66620, 0x36a5e: 0x6ca66820, 0x36a5f: 0x6ca66a20, - 0x36a60: 0x6ca66c20, 0x36a61: 0x6ca66e20, 0x36a62: 0x6ca67020, 0x36a63: 0x6ca67220, - 0x36a64: 0x6ca67420, 0x36a65: 0x6ca67620, 0x36a66: 0x6ca67820, 0x36a67: 0x6ca67a20, - 0x36a68: 0x6ca67c20, 0x36a69: 0x6ca67e20, 0x36a6a: 0x6cd46c20, 0x36a6b: 0x6cd46e20, - 0x36a6c: 0x6cd47020, 0x36a6d: 0x6cd47220, 0x36a6e: 0x6cd47420, 0x36a6f: 0x6cd47620, - 0x36a70: 0x6cd47820, 0x36a71: 0x6cd47a20, 0x36a72: 0x6cd47c20, 0x36a73: 0x6cd47e20, - 0x36a74: 0x6cd48020, 0x36a75: 0x6cd48220, 0x36a76: 0x6cd48420, 0x36a77: 0x6cd48620, - 0x36a78: 0x6cd48820, 0x36a79: 0x6cd48a20, 0x36a7a: 0x6cd48c20, 0x36a7b: 0x6cd48e20, - 0x36a7c: 0x6cd49020, 0x36a7d: 0x6cd49220, 0x36a7e: 0x6cd49420, 0x36a7f: 0x6cd49620, - // Block 0xdaa, offset 0x36a80 - 0x36a80: 0x6cd49820, 0x36a81: 0x6cd49a20, 0x36a82: 0x6cd49c20, 0x36a83: 0x6cd49e20, - 0x36a84: 0x6cd4a020, 0x36a85: 0x6cd4a220, 0x36a86: 0x6cd4a420, 0x36a87: 0x6cd4a620, - 0x36a88: 0x6cd4a820, 0x36a89: 0x6cd4aa20, 0x36a8a: 0x6d029c20, 0x36a8b: 0x6d029e20, - 0x36a8c: 0x6d02a020, 0x36a8d: 0x6d02a220, 0x36a8e: 0x6d02a420, 0x36a8f: 0x6d02a620, - 0x36a90: 0x6d02a820, 0x36a91: 0x6d02aa20, 0x36a92: 0x6d02ac20, 0x36a93: 0x6d02ae20, - 0x36a94: 0x6d02b020, 0x36a95: 0x6d02b220, 0x36a96: 0x6d02b420, 0x36a97: 0x6d02b620, - 0x36a98: 0x6d02b820, 0x36a99: 0x6d02ba20, 0x36a9a: 0x6d02bc20, 0x36a9b: 0x6d02be20, - 0x36a9c: 0x6d02c020, 0x36a9d: 0x6d02c220, 0x36a9e: 0x6d02c420, 0x36a9f: 0x6d02c620, - 0x36aa0: 0x6d02c820, 0x36aa1: 0x6d02ca20, 0x36aa2: 0x6d02cc20, 0x36aa3: 0x6d02ce20, - 0x36aa4: 0x6d02d020, 0x36aa5: 0x6d02d220, 0x36aa6: 0x6d02d420, 0x36aa7: 0x6d02d620, - 0x36aa8: 0x6d02d820, 0x36aa9: 0x6d02da20, 0x36aaa: 0x6d02dc20, 0x36aab: 0x6d02de20, - 0x36aac: 0x6d02e020, 0x36aad: 0x6d02e220, 0x36aae: 0x6d02e420, 0x36aaf: 0x6d02e620, - 0x36ab0: 0x6d02e820, 0x36ab1: 0x6d02ea20, 0x36ab2: 0x6d02ec20, 0x36ab3: 0x6d02ee20, - 0x36ab4: 0x6d02f020, 0x36ab5: 0x6d02f220, 0x36ab6: 0x6d02f420, 0x36ab7: 0x6d02f620, - 0x36ab8: 0x6d02f820, 0x36ab9: 0x6d02fa20, 0x36aba: 0x6d304a20, 0x36abb: 0x6d304c20, - 0x36abc: 0x6d304e20, 0x36abd: 0x6d305020, 0x36abe: 0x6d305220, 0x36abf: 0x6d305420, - // Block 0xdab, offset 0x36ac0 - 0x36ac0: 0x6d305620, 0x36ac1: 0x6d305820, 0x36ac2: 0x6d305a20, 0x36ac3: 0x6d305c20, - 0x36ac4: 0x6d305e20, 0x36ac5: 0x6d306020, 0x36ac6: 0x6d306220, 0x36ac7: 0x6d306420, - 0x36ac8: 0x6d306620, 0x36ac9: 0x6d306820, 0x36aca: 0x6d306a20, 0x36acb: 0x6d306c20, - 0x36acc: 0x6d306e20, 0x36acd: 0x6d307020, 0x36ace: 0x6d307220, 0x36acf: 0x6d307420, - 0x36ad0: 0x6d307620, 0x36ad1: 0x6d307820, 0x36ad2: 0x6d307a20, 0x36ad3: 0x6d307c20, - 0x36ad4: 0x6d307e20, 0x36ad5: 0x6d308020, 0x36ad6: 0x6d308220, 0x36ad7: 0x6d308420, - 0x36ad8: 0x6d308620, 0x36ad9: 0x6d308820, 0x36ada: 0x6d308a20, 0x36adb: 0x6d308c20, - 0x36adc: 0x6d308e20, 0x36add: 0x6d309020, 0x36ade: 0x6d309220, 0x36adf: 0x6d309420, - 0x36ae0: 0x6d309620, 0x36ae1: 0x6d309820, 0x36ae2: 0x6d309a20, 0x36ae3: 0x6d309c20, - 0x36ae4: 0x6d309e20, 0x36ae5: 0x6d30a020, 0x36ae6: 0x6d30a220, 0x36ae7: 0x6d30a420, - 0x36ae8: 0x6d30a620, 0x36ae9: 0x6d30a820, 0x36aea: 0x6d30aa20, 0x36aeb: 0x6d30ac20, - 0x36aec: 0x6d30ae20, 0x36aed: 0x6d5d4420, 0x36aee: 0x6d5d4620, 0x36aef: 0x6d5d4820, - 0x36af0: 0x6d5d4a20, 0x36af1: 0x6d5d4c20, 0x36af2: 0x6d5d4e20, 0x36af3: 0x6d5d5020, - 0x36af4: 0x6d5d5220, 0x36af5: 0x6d5d5420, 0x36af6: 0x6d5d5620, 0x36af7: 0x6d5d5820, - 0x36af8: 0x6d5d5a20, 0x36af9: 0x6d5d5c20, 0x36afa: 0x6d5d5e20, 0x36afb: 0x6d5d6020, - 0x36afc: 0x6d5d6220, 0x36afd: 0x6d5d6420, 0x36afe: 0x6d5d6620, 0x36aff: 0x6d5d6820, - // Block 0xdac, offset 0x36b00 - 0x36b00: 0x6d5d6a20, 0x36b01: 0x6d5d6c20, 0x36b02: 0x6d5d6e20, 0x36b03: 0x6d5d7020, - 0x36b04: 0x6d5d7220, 0x36b05: 0x6d5d7420, 0x36b06: 0x6d5d7620, 0x36b07: 0x6d5d7820, - 0x36b08: 0x6d5d7a20, 0x36b09: 0x6d5d7c20, 0x36b0a: 0x6d5d7e20, 0x36b0b: 0x6d5d8020, - 0x36b0c: 0x6d87a020, 0x36b0d: 0x6d87a220, 0x36b0e: 0x6d87a420, 0x36b0f: 0x6d87a620, - 0x36b10: 0x6d87a820, 0x36b11: 0x6d87aa20, 0x36b12: 0x6d87ac20, 0x36b13: 0x6d87ae20, - 0x36b14: 0x6d87b020, 0x36b15: 0x6d87b220, 0x36b16: 0x6d87b420, 0x36b17: 0x6d87b620, - 0x36b18: 0x6d87b820, 0x36b19: 0x6d87ba20, 0x36b1a: 0x6d87bc20, 0x36b1b: 0x6d87be20, - 0x36b1c: 0x6d87c020, 0x36b1d: 0x6d87c220, 0x36b1e: 0x6d87c420, 0x36b1f: 0x6d87c620, - 0x36b20: 0x6d87c820, 0x36b21: 0x6d87ca20, 0x36b22: 0x6d87cc20, 0x36b23: 0x6d87ce20, - 0x36b24: 0x6d87d020, 0x36b25: 0x6d87d220, 0x36b26: 0x6d87d420, 0x36b27: 0x6d87d620, - 0x36b28: 0x6d87d820, 0x36b29: 0x6d87da20, 0x36b2a: 0x6d87dc20, 0x36b2b: 0x6d87de20, - 0x36b2c: 0x6d87e020, 0x36b2d: 0x6d87e220, 0x36b2e: 0x6d87e420, 0x36b2f: 0x6d87e620, - 0x36b30: 0x6dac4a20, 0x36b31: 0x6dac4c20, 0x36b32: 0x6dac4e20, 0x36b33: 0x6dac5020, - 0x36b34: 0x6dac5220, 0x36b35: 0x6dac5420, 0x36b36: 0x6dac5620, 0x36b37: 0x6dac5820, - 0x36b38: 0x6dac5a20, 0x36b39: 0x6dac5c20, 0x36b3a: 0x6dac5e20, 0x36b3b: 0x6dac6020, - 0x36b3c: 0x6dac6220, 0x36b3d: 0x6dac6420, 0x36b3e: 0x6dac6620, 0x36b3f: 0x6dac6820, - // Block 0xdad, offset 0x36b40 - 0x36b40: 0x6dac6a20, 0x36b41: 0x6dac6c20, 0x36b42: 0x6dac6e20, 0x36b43: 0x6dac7020, - 0x36b44: 0x6dac7220, 0x36b45: 0x6dac7420, 0x36b46: 0x6dac7620, 0x36b47: 0x6dac7820, - 0x36b48: 0x6dac7a20, 0x36b49: 0x6dac7c20, 0x36b4a: 0x6dac7e20, 0x36b4b: 0x6dac8020, - 0x36b4c: 0x6dac8220, 0x36b4d: 0x6dac8420, 0x36b4e: 0x6dac8620, 0x36b4f: 0x6dac8820, - 0x36b50: 0x6dac8a20, 0x36b51: 0x6dac8c20, 0x36b52: 0x6dac8e20, 0x36b53: 0x6dac9020, - 0x36b54: 0x6dac9220, 0x36b55: 0x6dac9420, 0x36b56: 0x6dac9620, 0x36b57: 0x6dcc7420, - 0x36b58: 0x6dcc7620, 0x36b59: 0x6dcc7820, 0x36b5a: 0x6dcc7a20, 0x36b5b: 0x6dcc7c20, - 0x36b5c: 0x6dcc7e20, 0x36b5d: 0x6dcc8020, 0x36b5e: 0x6dcc8220, 0x36b5f: 0x6dcc8420, - 0x36b60: 0x6dcc8620, 0x36b61: 0x6dcc8820, 0x36b62: 0x6dcc8a20, 0x36b63: 0x6dcc8c20, - 0x36b64: 0x6dcc8e20, 0x36b65: 0x6dcc9020, 0x36b66: 0x6dcc9220, 0x36b67: 0x6dcc9420, - 0x36b68: 0x6dcc9620, 0x36b69: 0x6dcc9820, 0x36b6a: 0x6de78220, 0x36b6b: 0x6de78420, - 0x36b6c: 0x6de78620, 0x36b6d: 0x6de78820, 0x36b6e: 0x6de78a20, 0x36b6f: 0x6de78c20, - 0x36b70: 0x6de78e20, 0x36b71: 0x6de79020, 0x36b72: 0x6de79220, 0x36b73: 0x6de79420, - 0x36b74: 0x6de79620, 0x36b75: 0x6de79820, 0x36b76: 0x6de79a20, 0x36b77: 0x6de79c20, - 0x36b78: 0x6de79e20, 0x36b79: 0x6de7a020, 0x36b7a: 0x6de7a220, 0x36b7b: 0x6dfe0a20, - 0x36b7c: 0x6dfe0c20, 0x36b7d: 0x6dfe0e20, 0x36b7e: 0x6dfe1020, 0x36b7f: 0x6dfe1220, - // Block 0xdae, offset 0x36b80 - 0x36b80: 0x6dfe1420, 0x36b81: 0x6dfe1620, 0x36b82: 0x6dfe1820, 0x36b83: 0x6dfe1a20, - 0x36b84: 0x6dfe1c20, 0x36b85: 0x6dfe1e20, 0x36b86: 0x6dfe2020, 0x36b87: 0x6dfe2220, - 0x36b88: 0x6dfe2420, 0x36b89: 0x6dfe2620, 0x36b8a: 0x6dfe2820, 0x36b8b: 0x6dfe2a20, - 0x36b8c: 0x6dfe2c20, 0x36b8d: 0x6dfe2e20, 0x36b8e: 0x6dfe3020, 0x36b8f: 0x6dfe3220, - 0x36b90: 0x6dfe3420, 0x36b91: 0x6dfe3620, 0x36b92: 0x6e10a420, 0x36b93: 0x6e10a620, - 0x36b94: 0x6e10a820, 0x36b95: 0x6e10aa20, 0x36b96: 0x6e10ac20, 0x36b97: 0x6e10ae20, - 0x36b98: 0x6e10b020, 0x36b99: 0x6e10b220, 0x36b9a: 0x6e10b420, 0x36b9b: 0x6e10b620, - 0x36b9c: 0x6e10b820, 0x36b9d: 0x6e1f3a20, 0x36b9e: 0x6e1f3c20, 0x36b9f: 0x6e1f3e20, - 0x36ba0: 0x6e1f4020, 0x36ba1: 0x6e1f4220, 0x36ba2: 0x6e1f4420, 0x36ba3: 0x6e1f4620, - 0x36ba4: 0x6e1f4820, 0x36ba5: 0x6e1f4a20, 0x36ba6: 0x6e1f4c20, 0x36ba7: 0x6e1f4e20, - 0x36ba8: 0x6e1f5020, 0x36ba9: 0x6e1f5220, 0x36baa: 0x6e1f5420, 0x36bab: 0x6e2a8c20, - 0x36bac: 0x6e2a8e20, 0x36bad: 0x6e2a9020, 0x36bae: 0x6e2a9220, 0x36baf: 0x6e2a9420, - 0x36bb0: 0x6e2a9620, 0x36bb1: 0x6e2a9820, 0x36bb2: 0x6e2a9a20, 0x36bb3: 0x6e2a9c20, - 0x36bb4: 0x6e332820, 0x36bb5: 0x6e332a20, 0x36bb6: 0x6e361a20, 0x36bb7: 0x6e332c20, - 0x36bb8: 0x6e332e20, 0x36bb9: 0x6e394420, 0x36bba: 0x6e3d9820, 0x36bbb: 0x6e3d9a20, - 0x36bbc: 0x6e3d9c20, 0x36bbd: 0x6e3d9e20, 0x36bbe: 0x6e408820, 0x36bbf: 0x6e408a20, - // Block 0xdaf, offset 0x36bc0 - 0x36bc0: 0x6e408c20, 0x36bc1: 0x6e42d020, 0x36bc2: 0x6e42d220, 0x36bc3: 0x6e444620, - 0x36bc4: 0x6e46b220, 0x36bc5: 0x6c050020, 0x36bc6: 0x6c0a3620, 0x36bc7: 0x6c13f820, - 0x36bc8: 0x6c13fa20, 0x36bc9: 0x6c13fc20, 0x36bca: 0x6c13fe20, 0x36bcb: 0x6c140020, - 0x36bcc: 0x6c140220, 0x36bcd: 0x6c255020, 0x36bce: 0x6c255220, 0x36bcf: 0x6c255420, - 0x36bd0: 0x6c255620, 0x36bd1: 0x6c255820, 0x36bd2: 0x6c255a20, 0x36bd3: 0x6c255c20, - 0x36bd4: 0x6c255e20, 0x36bd5: 0x6c3cfc20, 0x36bd6: 0x6c3cfe20, 0x36bd7: 0x6c3d0020, - 0x36bd8: 0x6c3d0220, 0x36bd9: 0x6c3d0420, 0x36bda: 0x6c3d0620, 0x36bdb: 0x6c3d0820, - 0x36bdc: 0x6c3d0a20, 0x36bdd: 0x6c3d0c20, 0x36bde: 0x6c3d0e20, 0x36bdf: 0x6c3d1020, - 0x36be0: 0x6c3d1220, 0x36be1: 0x6c3d1420, 0x36be2: 0x6c3d1620, 0x36be3: 0x6c3d1820, - 0x36be4: 0x6c3d1a20, 0x36be5: 0x6c3d1c20, 0x36be6: 0x6c3d1e20, 0x36be7: 0x6c3d2020, - 0x36be8: 0x6c3d2220, 0x36be9: 0x6c3d2420, 0x36bea: 0x6c3d2620, 0x36beb: 0x6c5ade20, - 0x36bec: 0x6c5ae020, 0x36bed: 0x6c5ae220, 0x36bee: 0x6c5ae420, 0x36bef: 0x6c5ae620, - 0x36bf0: 0x6c5ae820, 0x36bf1: 0x6c5aea20, 0x36bf2: 0x6c5aec20, 0x36bf3: 0x6c5aee20, - 0x36bf4: 0x6c5af020, 0x36bf5: 0x6c5af220, 0x36bf6: 0x6c5af420, 0x36bf7: 0x6c5af620, - 0x36bf8: 0x6c5af820, 0x36bf9: 0x6c5afa20, 0x36bfa: 0x6c5afc20, 0x36bfb: 0x6c5afe20, - 0x36bfc: 0x6c5b0020, 0x36bfd: 0x6c5b0220, 0x36bfe: 0x6c5b0420, 0x36bff: 0x6c5b0620, - // Block 0xdb0, offset 0x36c00 - 0x36c00: 0x6c5b0820, 0x36c01: 0x6c5b0a20, 0x36c02: 0x6c5b0c20, 0x36c03: 0x6c5b0e20, - 0x36c04: 0x6c5b1020, 0x36c05: 0x6c5b1220, 0x36c06: 0x6c5b1420, 0x36c07: 0x6c5b1620, - 0x36c08: 0x6c5b1820, 0x36c09: 0x6c5b1a20, 0x36c0a: 0x6c5b1c20, 0x36c0b: 0x6c5b1e20, - 0x36c0c: 0x6c5b2020, 0x36c0d: 0x6c5b2220, 0x36c0e: 0x6c7dea20, 0x36c0f: 0x6c7dec20, - 0x36c10: 0x6c7dee20, 0x36c11: 0x6c7df020, 0x36c12: 0x6c7df220, 0x36c13: 0x6c7df420, - 0x36c14: 0x6c7df620, 0x36c15: 0x6c7df820, 0x36c16: 0x6c7dfa20, 0x36c17: 0x6c7dfc20, - 0x36c18: 0x6c7dfe20, 0x36c19: 0x6c7e0020, 0x36c1a: 0x6c7e0220, 0x36c1b: 0x6c7e0420, - 0x36c1c: 0x6c7e0620, 0x36c1d: 0x6c7e0820, 0x36c1e: 0x6c7e0a20, 0x36c1f: 0x6c7e0c20, - 0x36c20: 0x6c7e0e20, 0x36c21: 0x6c7e1020, 0x36c22: 0x6c7e1220, 0x36c23: 0x6c7e1420, - 0x36c24: 0x6c7e1620, 0x36c25: 0x6c7e1820, 0x36c26: 0x6c7e1a20, 0x36c27: 0x6c7e1c20, - 0x36c28: 0x6c7e1e20, 0x36c29: 0x6c7e2020, 0x36c2a: 0x6c7e2220, 0x36c2b: 0x6ca6ae20, - 0x36c2c: 0x6ca6b020, 0x36c2d: 0x6ca6b220, 0x36c2e: 0x6ca6b420, 0x36c2f: 0x6ca6b620, - 0x36c30: 0x6ca6b820, 0x36c31: 0x6ca6ba20, 0x36c32: 0x6ca6bc20, 0x36c33: 0x6ca6be20, - 0x36c34: 0x6ca6c020, 0x36c35: 0x6ca6c220, 0x36c36: 0x6ca6c420, 0x36c37: 0x6ca6c620, - 0x36c38: 0x6ca6c820, 0x36c39: 0x6ca6ca20, 0x36c3a: 0x6ca6cc20, 0x36c3b: 0x6ca6ce20, - 0x36c3c: 0x6ca6d020, 0x36c3d: 0x6ca6d220, 0x36c3e: 0x6ca6d420, 0x36c3f: 0x6ca6d620, - // Block 0xdb1, offset 0x36c40 - 0x36c40: 0x6ca6d820, 0x36c41: 0x6ca6da20, 0x36c42: 0x6ca6dc20, 0x36c43: 0x6ca6de20, - 0x36c44: 0x6ca6e020, 0x36c45: 0x6ca6e220, 0x36c46: 0x6ca6e420, 0x36c47: 0x6ca6e620, - 0x36c48: 0x6cd4d620, 0x36c49: 0x6cd4d820, 0x36c4a: 0x6cd4da20, 0x36c4b: 0x6cd4dc20, - 0x36c4c: 0x6cd4de20, 0x36c4d: 0x6cd4e020, 0x36c4e: 0x6cd4e220, 0x36c4f: 0x6cd4e420, - 0x36c50: 0x6cd4e620, 0x36c51: 0x6cd4e820, 0x36c52: 0x6cd4ea20, 0x36c53: 0x6cd4ec20, - 0x36c54: 0x6cd4ee20, 0x36c55: 0x6cd4f020, 0x36c56: 0x6cd4f220, 0x36c57: 0x6cd4f420, - 0x36c58: 0x6cd4f620, 0x36c59: 0x6cd4f820, 0x36c5a: 0x6cd4fa20, 0x36c5b: 0x6cd4fc20, - 0x36c5c: 0x6cd4fe20, 0x36c5d: 0x6cd50020, 0x36c5e: 0x6cd50220, 0x36c5f: 0x6cd50420, - 0x36c60: 0x6cd50620, 0x36c61: 0x6cd50820, 0x36c62: 0x6cd50a20, 0x36c63: 0x6cd50c20, - 0x36c64: 0x6cd50e20, 0x36c65: 0x6cd51020, 0x36c66: 0x6d033420, 0x36c67: 0x6d033620, - 0x36c68: 0x6d033820, 0x36c69: 0x6d033a20, 0x36c6a: 0x6d033c20, 0x36c6b: 0x6d033e20, - 0x36c6c: 0x6d034020, 0x36c6d: 0x6d034220, 0x36c6e: 0x6d034420, 0x36c6f: 0x6d034620, - 0x36c70: 0x6d034820, 0x36c71: 0x6d034a20, 0x36c72: 0x6d034c20, 0x36c73: 0x6d034e20, - 0x36c74: 0x6d035020, 0x36c75: 0x6d035220, 0x36c76: 0x6d035420, 0x36c77: 0x6d035620, - 0x36c78: 0x6d035820, 0x36c79: 0x6d035a20, 0x36c7a: 0x6d035c20, 0x36c7b: 0x6d035e20, - 0x36c7c: 0x6d036020, 0x36c7d: 0x6d036220, 0x36c7e: 0x6d036420, 0x36c7f: 0x6d036620, - // Block 0xdb2, offset 0x36c80 - 0x36c80: 0x6d036820, 0x36c81: 0x6d036a20, 0x36c82: 0x6d036c20, 0x36c83: 0x6d036e20, - 0x36c84: 0x6d037020, 0x36c85: 0x6d30e620, 0x36c86: 0x6d30e820, 0x36c87: 0x6d30ea20, - 0x36c88: 0x6d30ec20, 0x36c89: 0x6d30ee20, 0x36c8a: 0x6d30f020, 0x36c8b: 0x6d30f220, - 0x36c8c: 0x6d30f420, 0x36c8d: 0x6d30f620, 0x36c8e: 0x6d30f820, 0x36c8f: 0x6d30fa20, - 0x36c90: 0x6d30fc20, 0x36c91: 0x6d30fe20, 0x36c92: 0x6d310020, 0x36c93: 0x6d310220, - 0x36c94: 0x6d310420, 0x36c95: 0x6d310620, 0x36c96: 0x6d310820, 0x36c97: 0x6d310a20, - 0x36c98: 0x6d5da020, 0x36c99: 0x6d5da220, 0x36c9a: 0x6d5da420, 0x36c9b: 0x6d5da620, - 0x36c9c: 0x6d5da820, 0x36c9d: 0x6d5daa20, 0x36c9e: 0x6d5dac20, 0x36c9f: 0x6d5dae20, - 0x36ca0: 0x6d5db020, 0x36ca1: 0x6d5db220, 0x36ca2: 0x6d5db420, 0x36ca3: 0x6d5db620, - 0x36ca4: 0x6d5db820, 0x36ca5: 0x6d5dba20, 0x36ca6: 0x6d5dbc20, 0x36ca7: 0x6d5dbe20, - 0x36ca8: 0x6d5dc020, 0x36ca9: 0x6d5dc220, 0x36caa: 0x6d5dc420, 0x36cab: 0x6d5dc620, - 0x36cac: 0x6d5dc820, 0x36cad: 0x6d5dca20, 0x36cae: 0x6d880620, 0x36caf: 0x6d880820, - 0x36cb0: 0x6d880a20, 0x36cb1: 0x6d880c20, 0x36cb2: 0x6d880e20, 0x36cb3: 0x6d881020, - 0x36cb4: 0x6d881220, 0x36cb5: 0x6d881420, 0x36cb6: 0x6d881620, 0x36cb7: 0x6d881820, - 0x36cb8: 0x6d881a20, 0x36cb9: 0x6d881c20, 0x36cba: 0x6d881e20, 0x36cbb: 0x6d882020, - 0x36cbc: 0x6d882220, 0x36cbd: 0x6d882420, 0x36cbe: 0x6d882620, 0x36cbf: 0x6d882820, - // Block 0xdb3, offset 0x36cc0 - 0x36cc0: 0x6d882a20, 0x36cc1: 0x6d882c20, 0x36cc2: 0x6d882e20, 0x36cc3: 0x6dacaa20, - 0x36cc4: 0x6dacac20, 0x36cc5: 0x6dacae20, 0x36cc6: 0x6dacb020, 0x36cc7: 0x6dacb220, - 0x36cc8: 0x6dacb420, 0x36cc9: 0x6dacb620, 0x36cca: 0x6dacb820, 0x36ccb: 0x6dacba20, - 0x36ccc: 0x6dacbc20, 0x36ccd: 0x6dacbe20, 0x36cce: 0x6dacc020, 0x36ccf: 0x6dacc220, - 0x36cd0: 0x6dacc420, 0x36cd1: 0x6dacc620, 0x36cd2: 0x6dccac20, 0x36cd3: 0x6dccae20, - 0x36cd4: 0x6dccb020, 0x36cd5: 0x6dccb220, 0x36cd6: 0x6dccb420, 0x36cd7: 0x6dccb620, - 0x36cd8: 0x6dccb820, 0x36cd9: 0x6dccba20, 0x36cda: 0x6de7b020, 0x36cdb: 0x6de7b220, - 0x36cdc: 0x6de7b420, 0x36cdd: 0x6de7b620, 0x36cde: 0x6de7b820, 0x36cdf: 0x6de7ba20, - 0x36ce0: 0x6dfe3c20, 0x36ce1: 0x6dfe3e20, 0x36ce2: 0x6dfe4020, 0x36ce3: 0x6dfe4220, - 0x36ce4: 0x6dfe4420, 0x36ce5: 0x6e10be20, 0x36ce6: 0x6e10c020, 0x36ce7: 0x6e10c220, - 0x36ce8: 0x6e10c420, 0x36ce9: 0x6e10c620, 0x36cea: 0x6e1f5a20, 0x36ceb: 0x6e1f5c20, - 0x36cec: 0x6e1f5e20, 0x36ced: 0x6e1f6020, 0x36cee: 0x6e1f6220, 0x36cef: 0x6e1f6420, - 0x36cf0: 0x6e2aa220, 0x36cf1: 0x6e2aa420, 0x36cf2: 0x6e2aa620, 0x36cf3: 0x6e2aa820, - 0x36cf4: 0x6e333420, 0x36cf5: 0x6e333620, 0x36cf6: 0x6e394620, 0x36cf7: 0x6e394820, - 0x36cf8: 0x6e394a20, 0x36cf9: 0x6e3da020, 0x36cfa: 0x6e3da220, 0x36cfb: 0x6c0a3a20, - 0x36cfc: 0x6c3d2c20, 0x36cfd: 0x6c7e2e20, 0x36cfe: 0x6ca6f620, 0x36cff: 0x6cd52820, - // Block 0xdb4, offset 0x36d00 - 0x36d00: 0x6cb7b420, 0x36d01: 0x6cd52a20, 0x36d02: 0x6cd52c20, 0x36d03: 0x6d037a20, - 0x36d04: 0x6d311820, 0x36d05: 0x6d5dd020, 0x36d06: 0x6d5dd220, 0x36d07: 0x6d5dd420, - 0x36d08: 0x6dacca20, 0x36d09: 0x6daccc20, 0x36d0a: 0x6e10c820, 0x36d0b: 0x6e333a20, - 0x36d0c: 0x6c0a3e20, 0x36d0d: 0x6c140420, 0x36d0e: 0x6c140620, 0x36d0f: 0x6c140820, - 0x36d10: 0x6c257220, 0x36d11: 0x6c257420, 0x36d12: 0x6c257620, 0x36d13: 0x6c257820, - 0x36d14: 0x6c3d4820, 0x36d15: 0x6c3d4a20, 0x36d16: 0x6c3d4c20, 0x36d17: 0x6c3d4e20, - 0x36d18: 0x6c3d5020, 0x36d19: 0x6c3d5220, 0x36d1a: 0x6c3d5420, 0x36d1b: 0x6c3d5620, - 0x36d1c: 0x6c3d5820, 0x36d1d: 0x6c3d5a20, 0x36d1e: 0x6c3d5c20, 0x36d1f: 0x6c3d5e20, - 0x36d20: 0x6c3d6020, 0x36d21: 0x6c3d6220, 0x36d22: 0x6c3d6420, 0x36d23: 0x6c5b5820, - 0x36d24: 0x6c5b5a20, 0x36d25: 0x6c5b5c20, 0x36d26: 0x6c5b5e20, 0x36d27: 0x6c5b6020, - 0x36d28: 0x6c5b6220, 0x36d29: 0x6c5b6420, 0x36d2a: 0x6c5b6620, 0x36d2b: 0x6c5b6820, - 0x36d2c: 0x6c5b6a20, 0x36d2d: 0x6c5b6c20, 0x36d2e: 0x6c5b6e20, 0x36d2f: 0x6c5b7020, - 0x36d30: 0x6c5b7220, 0x36d31: 0x6c5b7420, 0x36d32: 0x6c5b7620, 0x36d33: 0x6c5b7820, - 0x36d34: 0x6c5b7a20, 0x36d35: 0x6c5b7c20, 0x36d36: 0x6c5b7e20, 0x36d37: 0x6c5b8020, - 0x36d38: 0x6c5b8220, 0x36d39: 0x6c5b8420, 0x36d3a: 0x6c5b8620, 0x36d3b: 0x6c5b8820, - 0x36d3c: 0x6c5b8a20, 0x36d3d: 0x6c5b8c20, 0x36d3e: 0x6c7e6a20, 0x36d3f: 0x6c7e6c20, - // Block 0xdb5, offset 0x36d40 - 0x36d40: 0x6c7e6e20, 0x36d41: 0x6c7e7020, 0x36d42: 0x6c7e7220, 0x36d43: 0x6c7e7420, - 0x36d44: 0x6c7e7620, 0x36d45: 0x6c7e7820, 0x36d46: 0x6c7e7a20, 0x36d47: 0x6c7e7c20, - 0x36d48: 0x6c7e7e20, 0x36d49: 0x6c7e8020, 0x36d4a: 0x6c7e8220, 0x36d4b: 0x6c7e8420, - 0x36d4c: 0x6c7e8620, 0x36d4d: 0x6c7e8820, 0x36d4e: 0x6c7e8a20, 0x36d4f: 0x6c7e8c20, - 0x36d50: 0x6c7e8e20, 0x36d51: 0x6c7e9020, 0x36d52: 0x6c7e9220, 0x36d53: 0x6c7e9420, - 0x36d54: 0x6c7e9620, 0x36d55: 0x6c7e9820, 0x36d56: 0x6c7e9a20, 0x36d57: 0x6c7e9c20, - 0x36d58: 0x6ca73820, 0x36d59: 0x6ca73a20, 0x36d5a: 0x6ca73c20, 0x36d5b: 0x6ca73e20, - 0x36d5c: 0x6ca74020, 0x36d5d: 0x6ca74220, 0x36d5e: 0x6ca74420, 0x36d5f: 0x6ca74620, - 0x36d60: 0x6ca74820, 0x36d61: 0x6ca74a20, 0x36d62: 0x6ca74c20, 0x36d63: 0x6ca74e20, - 0x36d64: 0x6ca75020, 0x36d65: 0x6ca75220, 0x36d66: 0x6ca75420, 0x36d67: 0x6ca75620, - 0x36d68: 0x6ca75820, 0x36d69: 0x6ca75a20, 0x36d6a: 0x6ca75c20, 0x36d6b: 0x6ca75e20, - 0x36d6c: 0x6ca76020, 0x36d6d: 0x6ca76220, 0x36d6e: 0x6ca76420, 0x36d6f: 0x6ca76620, - 0x36d70: 0x6ca76820, 0x36d71: 0x6ca76a20, 0x36d72: 0x6cd56020, 0x36d73: 0x6cd56220, - 0x36d74: 0x6cd56420, 0x36d75: 0x6cd56620, 0x36d76: 0x6cd56820, 0x36d77: 0x6cd56a20, - 0x36d78: 0x6cd56c20, 0x36d79: 0x6cd56e20, 0x36d7a: 0x6cd57020, 0x36d7b: 0x6cd57220, - 0x36d7c: 0x6cd57420, 0x36d7d: 0x6cd57620, 0x36d7e: 0x6cd57820, 0x36d7f: 0x6cd57a20, - // Block 0xdb6, offset 0x36d80 - 0x36d80: 0x6cd57c20, 0x36d81: 0x6cd57e20, 0x36d82: 0x6cd58020, 0x36d83: 0x6cd58220, - 0x36d84: 0x6cd58420, 0x36d85: 0x6ca76c20, 0x36d86: 0x6cd58620, 0x36d87: 0x6cd58820, - 0x36d88: 0x6cd58a20, 0x36d89: 0x6cd58c20, 0x36d8a: 0x6cd58e20, 0x36d8b: 0x6cd59020, - 0x36d8c: 0x6cd59220, 0x36d8d: 0x6d03c220, 0x36d8e: 0x6d03c420, 0x36d8f: 0x6d03c620, - 0x36d90: 0x6d03c820, 0x36d91: 0x6d03ca20, 0x36d92: 0x6d03cc20, 0x36d93: 0x6d03ce20, - 0x36d94: 0x6d03d020, 0x36d95: 0x6d03d220, 0x36d96: 0x6d03d420, 0x36d97: 0x6d03d620, - 0x36d98: 0x6d03d820, 0x36d99: 0x6d03da20, 0x36d9a: 0x6d03dc20, 0x36d9b: 0x6d03de20, - 0x36d9c: 0x6d03e020, 0x36d9d: 0x6d03e220, 0x36d9e: 0x6d03e420, 0x36d9f: 0x6d03e620, - 0x36da0: 0x6d03e820, 0x36da1: 0x6d03ea20, 0x36da2: 0x6d03ec20, 0x36da3: 0x6d03ee20, - 0x36da4: 0x6d03f020, 0x36da5: 0x6d03f220, 0x36da6: 0x6d03f420, 0x36da7: 0x6d03f620, - 0x36da8: 0x6d03f820, 0x36da9: 0x6d03fa20, 0x36daa: 0x6d03fc20, 0x36dab: 0x6d03fe20, - 0x36dac: 0x6d040020, 0x36dad: 0x6d040220, 0x36dae: 0x6d040420, 0x36daf: 0x6d040620, - 0x36db0: 0x6d040820, 0x36db1: 0x6d040a20, 0x36db2: 0x6d040c20, 0x36db3: 0x6d040e20, - 0x36db4: 0x6d041020, 0x36db5: 0x6d041220, 0x36db6: 0x6d041420, 0x36db7: 0x6d041620, - 0x36db8: 0x6d041820, 0x36db9: 0x6d041a20, 0x36dba: 0x6d041c20, 0x36dbb: 0x6d041e20, - 0x36dbc: 0x6d042020, 0x36dbd: 0x6d315020, 0x36dbe: 0x6d315220, 0x36dbf: 0x6d315420, - // Block 0xdb7, offset 0x36dc0 - 0x36dc0: 0x6d315620, 0x36dc1: 0x6d315820, 0x36dc2: 0x6d315a20, 0x36dc3: 0x6d315c20, - 0x36dc4: 0x6d315e20, 0x36dc5: 0x6d316020, 0x36dc6: 0x6d316220, 0x36dc7: 0x6d316420, - 0x36dc8: 0x6d316620, 0x36dc9: 0x6d316820, 0x36dca: 0x6d316a20, 0x36dcb: 0x6d316c20, - 0x36dcc: 0x6d316e20, 0x36dcd: 0x6d317020, 0x36dce: 0x6d317220, 0x36dcf: 0x6d317420, - 0x36dd0: 0x6d317620, 0x36dd1: 0x6d317820, 0x36dd2: 0x6d317a20, 0x36dd3: 0x6d317c20, - 0x36dd4: 0x6d317e20, 0x36dd5: 0x6d318020, 0x36dd6: 0x6d318220, 0x36dd7: 0x6d318420, - 0x36dd8: 0x6d318620, 0x36dd9: 0x6d318820, 0x36dda: 0x6d318a20, 0x36ddb: 0x6d318c20, - 0x36ddc: 0x6d318e20, 0x36ddd: 0x6d319020, 0x36dde: 0x6d319220, 0x36ddf: 0x6d319420, - 0x36de0: 0x6d319620, 0x36de1: 0x6d319820, 0x36de2: 0x6d319a20, 0x36de3: 0x6d319c20, - 0x36de4: 0x6d319e20, 0x36de5: 0x6d31a020, 0x36de6: 0x6d31a220, 0x36de7: 0x6d31a420, - 0x36de8: 0x6d31a620, 0x36de9: 0x6d31a820, 0x36dea: 0x6d31aa20, 0x36deb: 0x6d31ac20, - 0x36dec: 0x6d31ae20, 0x36ded: 0x6d31b020, 0x36dee: 0x6d31b220, 0x36def: 0x6d31b420, - 0x36df0: 0x6d31b620, 0x36df1: 0x6d5e0c20, 0x36df2: 0x6d5e0e20, 0x36df3: 0x6d5e1020, - 0x36df4: 0x6d5e1220, 0x36df5: 0x6d5e1420, 0x36df6: 0x6d5e1620, 0x36df7: 0x6d5e1820, - 0x36df8: 0x6d5e1a20, 0x36df9: 0x6d5e1c20, 0x36dfa: 0x6d5e1e20, 0x36dfb: 0x6d5e2020, - 0x36dfc: 0x6d5e2220, 0x36dfd: 0x6d5e2420, 0x36dfe: 0x6d5e2620, 0x36dff: 0x6d5e2820, - // Block 0xdb8, offset 0x36e00 - 0x36e00: 0x6d5e2a20, 0x36e01: 0x6d5e2c20, 0x36e02: 0x6d5e2e20, 0x36e03: 0x6d5e3020, - 0x36e04: 0x6d5e3220, 0x36e05: 0x6d5e3420, 0x36e06: 0x6d5e3620, 0x36e07: 0x6d5e3820, - 0x36e08: 0x6d5e3a20, 0x36e09: 0x6d5e3c20, 0x36e0a: 0x6d5e3e20, 0x36e0b: 0x6d5e4020, - 0x36e0c: 0x6d5e4220, 0x36e0d: 0x6d5e4420, 0x36e0e: 0x6d5e4620, 0x36e0f: 0x6d5e4820, - 0x36e10: 0x6d5e4a20, 0x36e11: 0x6d5e4c20, 0x36e12: 0x6d5e4e20, 0x36e13: 0x6d5e5020, - 0x36e14: 0x6d5e5220, 0x36e15: 0x6d5e5420, 0x36e16: 0x6d5e5620, 0x36e17: 0x6d5e5820, - 0x36e18: 0x6d5e5a20, 0x36e19: 0x6d5e5c20, 0x36e1a: 0x6d5e5e20, 0x36e1b: 0x6d5e6020, - 0x36e1c: 0x6d885c20, 0x36e1d: 0x6d885e20, 0x36e1e: 0x6d886020, 0x36e1f: 0x6d886220, - 0x36e20: 0x6d886420, 0x36e21: 0x6d886620, 0x36e22: 0x6d886820, 0x36e23: 0x6d886a20, - 0x36e24: 0x6d886c20, 0x36e25: 0x6d886e20, 0x36e26: 0x6d887020, 0x36e27: 0x6d887220, - 0x36e28: 0x6d887420, 0x36e29: 0x6d887620, 0x36e2a: 0x6d887820, 0x36e2b: 0x6d887a20, - 0x36e2c: 0x6d887c20, 0x36e2d: 0x6d887e20, 0x36e2e: 0x6d888020, 0x36e2f: 0x6d888220, - 0x36e30: 0x6d888420, 0x36e31: 0x6d888620, 0x36e32: 0x6d888820, 0x36e33: 0x6d888a20, - 0x36e34: 0x6d888c20, 0x36e35: 0x6d888e20, 0x36e36: 0x6d889020, 0x36e37: 0x6d889220, - 0x36e38: 0x6d889420, 0x36e39: 0x6d889620, 0x36e3a: 0x6d889820, 0x36e3b: 0x6d889a20, - 0x36e3c: 0x6d889c20, 0x36e3d: 0x6d889e20, 0x36e3e: 0x6d88a020, 0x36e3f: 0x6d88a220, - // Block 0xdb9, offset 0x36e40 - 0x36e40: 0x6d88a420, 0x36e41: 0x6d88a620, 0x36e42: 0x6d88a820, 0x36e43: 0x6d88aa20, - 0x36e44: 0x6d88ac20, 0x36e45: 0x6d88ae20, 0x36e46: 0x6d88b020, 0x36e47: 0x6d88b220, - 0x36e48: 0x6d88b420, 0x36e49: 0x6d88b620, 0x36e4a: 0x6dacec20, 0x36e4b: 0x6dacee20, - 0x36e4c: 0x6dacf020, 0x36e4d: 0x6dacf220, 0x36e4e: 0x6dacf420, 0x36e4f: 0x6dacf620, - 0x36e50: 0x6dacf820, 0x36e51: 0x6dacfa20, 0x36e52: 0x6dacfc20, 0x36e53: 0x6dacfe20, - 0x36e54: 0x6dad0020, 0x36e55: 0x6dad0220, 0x36e56: 0x6dad0420, 0x36e57: 0x6dad0620, - 0x36e58: 0x6dad0820, 0x36e59: 0x6dad0a20, 0x36e5a: 0x6dad0c20, 0x36e5b: 0x6dad0e20, - 0x36e5c: 0x6dad1020, 0x36e5d: 0x6dad1220, 0x36e5e: 0x6dad1420, 0x36e5f: 0x6dad1620, - 0x36e60: 0x6dad1820, 0x36e61: 0x6dad1a20, 0x36e62: 0x6dad1c20, 0x36e63: 0x6dad1e20, - 0x36e64: 0x6dad2020, 0x36e65: 0x6dad2220, 0x36e66: 0x6dad2420, 0x36e67: 0x6dad2620, - 0x36e68: 0x6dad2820, 0x36e69: 0x6dad2a20, 0x36e6a: 0x6dad2c20, 0x36e6b: 0x6dad2e20, - 0x36e6c: 0x6dad3020, 0x36e6d: 0x6dad3220, 0x36e6e: 0x6dad3420, 0x36e6f: 0x6dad3620, - 0x36e70: 0x6dad3820, 0x36e71: 0x6dad3a20, 0x36e72: 0x6dad3c20, 0x36e73: 0x6dad3e20, - 0x36e74: 0x6dccd820, 0x36e75: 0x6dccda20, 0x36e76: 0x6dccdc20, 0x36e77: 0x6dccde20, - 0x36e78: 0x6dcce020, 0x36e79: 0x6dcce220, 0x36e7a: 0x6dcce420, 0x36e7b: 0x6dcce620, - 0x36e7c: 0x6dcce820, 0x36e7d: 0x6dccea20, 0x36e7e: 0x6dccec20, 0x36e7f: 0x6dccee20, - // Block 0xdba, offset 0x36e80 - 0x36e80: 0x6dccf020, 0x36e81: 0x6dccf220, 0x36e82: 0x6dccf420, 0x36e83: 0x6dccf620, - 0x36e84: 0x6dccf820, 0x36e85: 0x6dccfa20, 0x36e86: 0x6dccfc20, 0x36e87: 0x6dccfe20, - 0x36e88: 0x6dcd0020, 0x36e89: 0x6dcd0220, 0x36e8a: 0x6de7cc20, 0x36e8b: 0x6dcd0420, - 0x36e8c: 0x6dcd0620, 0x36e8d: 0x6dcd0820, 0x36e8e: 0x6dcd0a20, 0x36e8f: 0x6dcd0c20, - 0x36e90: 0x6dcd0e20, 0x36e91: 0x6dcd1020, 0x36e92: 0x6dcd1220, 0x36e93: 0x6dcd1420, - 0x36e94: 0x6dcd1620, 0x36e95: 0x6de7ce20, 0x36e96: 0x6de7d020, 0x36e97: 0x6de7d220, - 0x36e98: 0x6de7d420, 0x36e99: 0x6de7d620, 0x36e9a: 0x6de7d820, 0x36e9b: 0x6de7da20, - 0x36e9c: 0x6de7dc20, 0x36e9d: 0x6de7de20, 0x36e9e: 0x6de7e020, 0x36e9f: 0x6de7e220, - 0x36ea0: 0x6de7e420, 0x36ea1: 0x6de7e620, 0x36ea2: 0x6dfe5220, 0x36ea3: 0x6de7e820, - 0x36ea4: 0x6de7ea20, 0x36ea5: 0x6de7ec20, 0x36ea6: 0x6de7ee20, 0x36ea7: 0x6de7f020, - 0x36ea8: 0x6dfe5420, 0x36ea9: 0x6dfe5620, 0x36eaa: 0x6dfe5820, 0x36eab: 0x6dfe5a20, - 0x36eac: 0x6dfe5c20, 0x36ead: 0x6dfe5e20, 0x36eae: 0x6dfe6020, 0x36eaf: 0x6dfe6220, - 0x36eb0: 0x6dfe6420, 0x36eb1: 0x6dfe6620, 0x36eb2: 0x6dfe6820, 0x36eb3: 0x6dfe6a20, - 0x36eb4: 0x6dfe6c20, 0x36eb5: 0x6dfe6e20, 0x36eb6: 0x6dfe7020, 0x36eb7: 0x6e046620, - 0x36eb8: 0x6dfe7220, 0x36eb9: 0x6dfe7420, 0x36eba: 0x6dfe7620, 0x36ebb: 0x6dfe7820, - 0x36ebc: 0x6dfe7a20, 0x36ebd: 0x6dfe7c20, 0x36ebe: 0x6dfe7e20, 0x36ebf: 0x6dfe8020, - // Block 0xdbb, offset 0x36ec0 - 0x36ec0: 0x6e10d220, 0x36ec1: 0x6e10d420, 0x36ec2: 0x6e10d620, 0x36ec3: 0x6e10d820, - 0x36ec4: 0x6e10da20, 0x36ec5: 0x6e10dc20, 0x36ec6: 0x6e1f6c20, 0x36ec7: 0x6e1f6e20, - 0x36ec8: 0x6e1f7020, 0x36ec9: 0x6e1f7220, 0x36eca: 0x6e2aaa20, 0x36ecb: 0x6e2aac20, - 0x36ecc: 0x6e2aae20, 0x36ecd: 0x6e2ab020, 0x36ece: 0x6e2ab220, 0x36ecf: 0x6e2ab420, - 0x36ed0: 0x6e2ab620, 0x36ed1: 0x6e2ab820, 0x36ed2: 0x6e2aba20, 0x36ed3: 0x6e334020, - 0x36ed4: 0x6e328a20, 0x36ed5: 0x6e334220, 0x36ed6: 0x6e334420, 0x36ed7: 0x6e394e20, - 0x36ed8: 0x6e395020, 0x36ed9: 0x6e395220, 0x36eda: 0x6e395420, 0x36edb: 0x6e3da420, - 0x36edc: 0x6e3da620, 0x36edd: 0x6e3da820, 0x36ede: 0x6e444a20, 0x36edf: 0x6e444c20, - 0x36ee0: 0x6e463420, 0x36ee1: 0x6e46cc20, 0x36ee2: 0x6c0a4220, 0x36ee3: 0x6c258020, - 0x36ee4: 0x6c258220, 0x36ee5: 0x6c258420, 0x36ee6: 0x6c258620, 0x36ee7: 0x6c3d7220, - 0x36ee8: 0x6c3d7420, 0x36ee9: 0x6c3d7620, 0x36eea: 0x6c3d7820, 0x36eeb: 0x6c3d7a20, - 0x36eec: 0x6c3d7c20, 0x36eed: 0x6c3d7e20, 0x36eee: 0x6c3d8020, 0x36eef: 0x6c3d8220, - 0x36ef0: 0x6c3d8420, 0x36ef1: 0x6c3d8620, 0x36ef2: 0x6c3d8820, 0x36ef3: 0x6c3d8a20, - 0x36ef4: 0x6c5baa20, 0x36ef5: 0x6c5bac20, 0x36ef6: 0x6c5bae20, 0x36ef7: 0x6c5bb020, - 0x36ef8: 0x6c5bb220, 0x36ef9: 0x6c5bb420, 0x36efa: 0x6c5bb620, 0x36efb: 0x6c5bb820, - 0x36efc: 0x6c5bba20, 0x36efd: 0x6c5bbc20, 0x36efe: 0x6c5bbe20, 0x36eff: 0x6c5bc020, - // Block 0xdbc, offset 0x36f00 - 0x36f00: 0x6c5bc220, 0x36f01: 0x6c5bc420, 0x36f02: 0x6c5bc620, 0x36f03: 0x6c5bc820, - 0x36f04: 0x6c5bca20, 0x36f05: 0x6c5bcc20, 0x36f06: 0x6c5bce20, 0x36f07: 0x6c7ec220, - 0x36f08: 0x6c7ec420, 0x36f09: 0x6c7ec620, 0x36f0a: 0x6c7ec820, 0x36f0b: 0x6c7eca20, - 0x36f0c: 0x6c7ecc20, 0x36f0d: 0x6c7ece20, 0x36f0e: 0x6c7ed020, 0x36f0f: 0x6c7ed220, - 0x36f10: 0x6c7ed420, 0x36f11: 0x6c7ed620, 0x36f12: 0x6c7ed820, 0x36f13: 0x6c7eda20, - 0x36f14: 0x6c7edc20, 0x36f15: 0x6c7ede20, 0x36f16: 0x6c7ee020, 0x36f17: 0x6c7ee220, - 0x36f18: 0x6c7ee420, 0x36f19: 0x6c7ee620, 0x36f1a: 0x6c7ee820, 0x36f1b: 0x6c7eea20, - 0x36f1c: 0x6c7eec20, 0x36f1d: 0x6c7eee20, 0x36f1e: 0x6c7ef020, 0x36f1f: 0x6c7ef220, - 0x36f20: 0x6ca79420, 0x36f21: 0x6ca79620, 0x36f22: 0x6ca79820, 0x36f23: 0x6ca79a20, - 0x36f24: 0x6ca79c20, 0x36f25: 0x6ca79e20, 0x36f26: 0x6ca7a020, 0x36f27: 0x6ca7a220, - 0x36f28: 0x6ca7a420, 0x36f29: 0x6ca7a620, 0x36f2a: 0x6ca7a820, 0x36f2b: 0x6ca7aa20, - 0x36f2c: 0x6ca7ac20, 0x36f2d: 0x6ca7ae20, 0x36f2e: 0x6ca7b020, 0x36f2f: 0x6ca7b220, - 0x36f30: 0x6ca7b420, 0x36f31: 0x6ca7b620, 0x36f32: 0x6ca7b820, 0x36f33: 0x6ca7ba20, - 0x36f34: 0x6ca7bc20, 0x36f35: 0x6ca7be20, 0x36f36: 0x6cd5ba20, 0x36f37: 0x6cd5bc20, - 0x36f38: 0x6cd5be20, 0x36f39: 0x6cd5c020, 0x36f3a: 0x6cd5c220, 0x36f3b: 0x6cd5c420, - 0x36f3c: 0x6cd5c620, 0x36f3d: 0x6cd5c820, 0x36f3e: 0x6cd5ca20, 0x36f3f: 0x6cd5cc20, - // Block 0xdbd, offset 0x36f40 - 0x36f40: 0x6cd5ce20, 0x36f41: 0x6cd5d020, 0x36f42: 0x6cd5d220, 0x36f43: 0x6cd5d420, - 0x36f44: 0x6cd5d620, 0x36f45: 0x6cd5d820, 0x36f46: 0x6cd5da20, 0x36f47: 0x6cd5dc20, - 0x36f48: 0x6cd5de20, 0x36f49: 0x6cd5e020, 0x36f4a: 0x6cd5e220, 0x36f4b: 0x6cd5e420, - 0x36f4c: 0x6cd5e620, 0x36f4d: 0x6cd5e820, 0x36f4e: 0x6cd5ea20, 0x36f4f: 0x6cd5ec20, - 0x36f50: 0x6cd5ee20, 0x36f51: 0x6cd5f020, 0x36f52: 0x6cd5f220, 0x36f53: 0x6cd5f420, - 0x36f54: 0x6cd5f620, 0x36f55: 0x6cd5f820, 0x36f56: 0x6cd5fa20, 0x36f57: 0x6cd5fc20, - 0x36f58: 0x6cd5fe20, 0x36f59: 0x6cd60020, 0x36f5a: 0x6cd60220, 0x36f5b: 0x6d044620, - 0x36f5c: 0x6d044820, 0x36f5d: 0x6d044a20, 0x36f5e: 0x6d044c20, 0x36f5f: 0x6d044e20, - 0x36f60: 0x6d045020, 0x36f61: 0x6d045220, 0x36f62: 0x6d045420, 0x36f63: 0x6d045620, - 0x36f64: 0x6d045820, 0x36f65: 0x6d045a20, 0x36f66: 0x6d045c20, 0x36f67: 0x6d045e20, - 0x36f68: 0x6d046020, 0x36f69: 0x6d046220, 0x36f6a: 0x6d046420, 0x36f6b: 0x6d046620, - 0x36f6c: 0x6d046820, 0x36f6d: 0x6d046a20, 0x36f6e: 0x6d046c20, 0x36f6f: 0x6d046e20, - 0x36f70: 0x6d047020, 0x36f71: 0x6d047220, 0x36f72: 0x6d047420, 0x36f73: 0x6d047620, - 0x36f74: 0x6d047820, 0x36f75: 0x6d047a20, 0x36f76: 0x6d047c20, 0x36f77: 0x6d047e20, - 0x36f78: 0x6d31d420, 0x36f79: 0x6d31d620, 0x36f7a: 0x6d31d820, 0x36f7b: 0x6d31da20, - 0x36f7c: 0x6d31dc20, 0x36f7d: 0x6d31de20, 0x36f7e: 0x6d31e020, 0x36f7f: 0x6d31e220, - // Block 0xdbe, offset 0x36f80 - 0x36f80: 0x6d31e420, 0x36f81: 0x6d31e620, 0x36f82: 0x6d31e820, 0x36f83: 0x6d31ea20, - 0x36f84: 0x6d31ec20, 0x36f85: 0x6d31ee20, 0x36f86: 0x6d31f020, 0x36f87: 0x6d31f220, - 0x36f88: 0x6d31f420, 0x36f89: 0x6d31f620, 0x36f8a: 0x6d31f820, 0x36f8b: 0x6d31fa20, - 0x36f8c: 0x6d31fc20, 0x36f8d: 0x6d31fe20, 0x36f8e: 0x6d320020, 0x36f8f: 0x6d320220, - 0x36f90: 0x6d5e7e20, 0x36f91: 0x6d5e8020, 0x36f92: 0x6d5e8220, 0x36f93: 0x6d5e8420, - 0x36f94: 0x6d5e8620, 0x36f95: 0x6d5e8820, 0x36f96: 0x6d5e8a20, 0x36f97: 0x6d5e8c20, - 0x36f98: 0x6d5e8e20, 0x36f99: 0x6d5e9020, 0x36f9a: 0x6d5e9220, 0x36f9b: 0x6d5e9420, - 0x36f9c: 0x6d5e9620, 0x36f9d: 0x6d5e9820, 0x36f9e: 0x6d5e9a20, 0x36f9f: 0x6d5e9c20, - 0x36fa0: 0x6d5e9e20, 0x36fa1: 0x6d5ea020, 0x36fa2: 0x6d627c20, 0x36fa3: 0x6d5ea220, - 0x36fa4: 0x6d5ea420, 0x36fa5: 0x6d5ea620, 0x36fa6: 0x6d5ea820, 0x36fa7: 0x6d5eaa20, - 0x36fa8: 0x6d5eac20, 0x36fa9: 0x6d5eae20, 0x36faa: 0x6d5eb020, 0x36fab: 0x6d5eb220, - 0x36fac: 0x6d88da20, 0x36fad: 0x6d88dc20, 0x36fae: 0x6d88de20, 0x36faf: 0x6d88e020, - 0x36fb0: 0x6d88e220, 0x36fb1: 0x6d88e420, 0x36fb2: 0x6d88e620, 0x36fb3: 0x6d88e820, - 0x36fb4: 0x6d88ea20, 0x36fb5: 0x6d88ec20, 0x36fb6: 0x6d88ee20, 0x36fb7: 0x6d88f020, - 0x36fb8: 0x6d88f220, 0x36fb9: 0x6d88f420, 0x36fba: 0x6d88f620, 0x36fbb: 0x6d88f820, - 0x36fbc: 0x6dad5a20, 0x36fbd: 0x6d88fa20, 0x36fbe: 0x6d88fc20, 0x36fbf: 0x6d88fe20, - // Block 0xdbf, offset 0x36fc0 - 0x36fc0: 0x6d890020, 0x36fc1: 0x6d890220, 0x36fc2: 0x6d890420, 0x36fc3: 0x6d890620, - 0x36fc4: 0x6d890820, 0x36fc5: 0x6d890a20, 0x36fc6: 0x6d890c20, 0x36fc7: 0x6d890e20, - 0x36fc8: 0x6d891020, 0x36fc9: 0x6d891220, 0x36fca: 0x6d891420, 0x36fcb: 0x6d891620, - 0x36fcc: 0x6dad5c20, 0x36fcd: 0x6dad5e20, 0x36fce: 0x6dad6020, 0x36fcf: 0x6dad6220, - 0x36fd0: 0x6dad6420, 0x36fd1: 0x6dad6620, 0x36fd2: 0x6dad6820, 0x36fd3: 0x6dad6a20, - 0x36fd4: 0x6dad6c20, 0x36fd5: 0x6dad6e20, 0x36fd6: 0x6dad7020, 0x36fd7: 0x6dad7220, - 0x36fd8: 0x6dad7420, 0x36fd9: 0x6dad7620, 0x36fda: 0x6dad7820, 0x36fdb: 0x6dad7a20, - 0x36fdc: 0x6dad7c20, 0x36fdd: 0x6dad7e20, 0x36fde: 0x6dad8020, 0x36fdf: 0x6dad8220, - 0x36fe0: 0x6dcd2420, 0x36fe1: 0x6dcd2620, 0x36fe2: 0x6dcd2820, 0x36fe3: 0x6dcd2a20, - 0x36fe4: 0x6dcd2c20, 0x36fe5: 0x6dcd2e20, 0x36fe6: 0x6dcd3020, 0x36fe7: 0x6dcd3220, - 0x36fe8: 0x6dcd3420, 0x36fe9: 0x6dad8420, 0x36fea: 0x6de7f820, 0x36feb: 0x6de7fa20, - 0x36fec: 0x6de7fc20, 0x36fed: 0x6de7fe20, 0x36fee: 0x6de80020, 0x36fef: 0x6de80220, - 0x36ff0: 0x6dfe8820, 0x36ff1: 0x6dfe8a20, 0x36ff2: 0x6de80420, 0x36ff3: 0x6dfe8c20, - 0x36ff4: 0x6dfe8e20, 0x36ff5: 0x6e10e420, 0x36ff6: 0x6dfe9020, 0x36ff7: 0x6dfe9220, - 0x36ff8: 0x6dfe9420, 0x36ff9: 0x6dfe9620, 0x36ffa: 0x6dfe9820, 0x36ffb: 0x6e10e620, - 0x36ffc: 0x6e10e820, 0x36ffd: 0x6e10ea20, 0x36ffe: 0x6e10ec20, 0x36fff: 0x6e10ee20, - // Block 0xdc0, offset 0x37000 - 0x37000: 0x6e10f020, 0x37001: 0x6e10f220, 0x37002: 0x6e10f420, 0x37003: 0x6e10f620, - 0x37004: 0x6e10f820, 0x37005: 0x6e10fa20, 0x37006: 0x6e10fc20, 0x37007: 0x6e10fe20, - 0x37008: 0x6e110020, 0x37009: 0x6e1f7a20, 0x3700a: 0x6e2abc20, 0x3700b: 0x6e2abe20, - 0x3700c: 0x6e334620, 0x3700d: 0x6e334820, 0x3700e: 0x6e395620, 0x3700f: 0x6e334a20, - 0x37010: 0x6e334c20, 0x37011: 0x6e334e20, 0x37012: 0x6e395820, 0x37013: 0x6e3daa20, - 0x37014: 0x6e444e20, 0x37015: 0x6c258e20, 0x37016: 0x6c259020, 0x37017: 0x6c3d9420, - 0x37018: 0x6c3d9620, 0x37019: 0x6c5be620, 0x3701a: 0x6c5be820, 0x3701b: 0x6c5bea20, - 0x3701c: 0x6c5bec20, 0x3701d: 0x6c5bee20, 0x3701e: 0x6c5bf020, 0x3701f: 0x6c5bf220, - 0x37020: 0x6c7f0c20, 0x37021: 0x6c7f0e20, 0x37022: 0x6c7f1020, 0x37023: 0x6c7f1220, - 0x37024: 0x6c7f1420, 0x37025: 0x6c7f1620, 0x37026: 0x6c7f1820, 0x37027: 0x6c7f1a20, - 0x37028: 0x6c7f1c20, 0x37029: 0x6c7f1e20, 0x3702a: 0x6c7f2020, 0x3702b: 0x6c7f2220, - 0x3702c: 0x6c7f2420, 0x3702d: 0x6c7f2620, 0x3702e: 0x6c7f2820, 0x3702f: 0x6c7f2a20, - 0x37030: 0x6c7f2c20, 0x37031: 0x6ca7ca20, 0x37032: 0x6ca7cc20, 0x37033: 0x6ca7ce20, - 0x37034: 0x6ca7d020, 0x37035: 0x6ca7d220, 0x37036: 0x6ca7d420, 0x37037: 0x6ca7d620, - 0x37038: 0x6ca7d820, 0x37039: 0x6ca7da20, 0x3703a: 0x6ca7dc20, 0x3703b: 0x6ca7de20, - 0x3703c: 0x6ca7e020, 0x3703d: 0x6ca7e220, 0x3703e: 0x6cd61a20, 0x3703f: 0x6cd61c20, - // Block 0xdc1, offset 0x37040 - 0x37040: 0x6cd61e20, 0x37041: 0x6cd62020, 0x37042: 0x6cd62220, 0x37043: 0x6cd62420, - 0x37044: 0x6cd62620, 0x37045: 0x6cd62820, 0x37046: 0x6cd62a20, 0x37047: 0x6cd62c20, - 0x37048: 0x6cd62e20, 0x37049: 0x6cd63020, 0x3704a: 0x6d049620, 0x3704b: 0x6d049820, - 0x3704c: 0x6d049a20, 0x3704d: 0x6d049c20, 0x3704e: 0x6d049e20, 0x3704f: 0x6d04a020, - 0x37050: 0x6d04a220, 0x37051: 0x6d04a420, 0x37052: 0x6d04a620, 0x37053: 0x6d04a820, - 0x37054: 0x6d04aa20, 0x37055: 0x6d04ac20, 0x37056: 0x6d04ae20, 0x37057: 0x6d04b020, - 0x37058: 0x6d321020, 0x37059: 0x6d321220, 0x3705a: 0x6d321420, 0x3705b: 0x6d321620, - 0x3705c: 0x6d321820, 0x3705d: 0x6d321a20, 0x3705e: 0x6d321c20, 0x3705f: 0x6d321e20, - 0x37060: 0x6d322020, 0x37061: 0x6d322220, 0x37062: 0x6d322420, 0x37063: 0x6d322620, - 0x37064: 0x6d322820, 0x37065: 0x6d5eb620, 0x37066: 0x6d5eb820, 0x37067: 0x6d5eba20, - 0x37068: 0x6d5ebc20, 0x37069: 0x6d5ebe20, 0x3706a: 0x6d5ec020, 0x3706b: 0x6d5ec220, - 0x3706c: 0x6d5ec420, 0x3706d: 0x6d892420, 0x3706e: 0x6d892620, 0x3706f: 0x6dad9020, - 0x37070: 0x6d892820, 0x37071: 0x6d892a20, 0x37072: 0x6dad9220, 0x37073: 0x6dad9420, - 0x37074: 0x6dad9620, 0x37075: 0x6dad9820, 0x37076: 0x6dad9a20, 0x37077: 0x6dad9c20, - 0x37078: 0x6dad9e20, 0x37079: 0x6dada020, 0x3707a: 0x6de80820, 0x3707b: 0x6dada220, - 0x3707c: 0x6dcd3c20, 0x3707d: 0x6dcd3e20, 0x3707e: 0x6dcd4020, 0x3707f: 0x6dcd4220, - // Block 0xdc2, offset 0x37080 - 0x37080: 0x6dcd4420, 0x37081: 0x6dcd4620, 0x37082: 0x6dc73620, 0x37083: 0x6dcd4820, - 0x37084: 0x6dcd4a20, 0x37085: 0x6de80a20, 0x37086: 0x6de80c20, 0x37087: 0x6de80e20, - 0x37088: 0x6dfe9e20, 0x37089: 0x6dfea020, 0x3708a: 0x6dfea220, 0x3708b: 0x6dfea420, - 0x3708c: 0x6dfea620, 0x3708d: 0x6dfea820, 0x3708e: 0x6e110220, 0x3708f: 0x6e110420, - 0x37090: 0x6e1f8020, 0x37091: 0x6e1f8220, 0x37092: 0x6e395a20, 0x37093: 0x6e2ac220, - 0x37094: 0x6e335020, 0x37095: 0x6e395c20, 0x37096: 0x6e395e20, 0x37097: 0x6c141220, - 0x37098: 0x6c259420, 0x37099: 0x6c3d9e20, 0x3709a: 0x6c3da020, 0x3709b: 0x6c3da220, - 0x3709c: 0x6c3da420, 0x3709d: 0x6c5c0820, 0x3709e: 0x6c5c0a20, 0x3709f: 0x6c5c0c20, - 0x370a0: 0x6c5c0e20, 0x370a1: 0x6c5c1020, 0x370a2: 0x6c5c1220, 0x370a3: 0x6c5c1420, - 0x370a4: 0x6c5c1620, 0x370a5: 0x6c5c1820, 0x370a6: 0x6c5c1a20, 0x370a7: 0x6c5c1c20, - 0x370a8: 0x6c5c1e20, 0x370a9: 0x6c5c2020, 0x370aa: 0x6c5c2220, 0x370ab: 0x6c5c2420, - 0x370ac: 0x6c5c2620, 0x370ad: 0x6c5c2820, 0x370ae: 0x6c5c2a20, 0x370af: 0x6c7f6220, - 0x370b0: 0x6c7f6420, 0x370b1: 0x6c7f6620, 0x370b2: 0x6c7f6820, 0x370b3: 0x6c7f6a20, - 0x370b4: 0x6c7f6c20, 0x370b5: 0x6c7f6e20, 0x370b6: 0x6c7f7020, 0x370b7: 0x6c7f7220, - 0x370b8: 0x6c7f7420, 0x370b9: 0x6c7f7620, 0x370ba: 0x6c7f7820, 0x370bb: 0x6c7f7a20, - 0x370bc: 0x6c7f7c20, 0x370bd: 0x6c7f7e20, 0x370be: 0x6c7f8020, 0x370bf: 0x6c7f8220, - // Block 0xdc3, offset 0x370c0 - 0x370c0: 0x6c7f8420, 0x370c1: 0x6c7f8620, 0x370c2: 0x6c7f8820, 0x370c3: 0x6c7f8a20, - 0x370c4: 0x6c7f8c20, 0x370c5: 0x6c7f8e20, 0x370c6: 0x6c7f9020, 0x370c7: 0x6c7f9220, - 0x370c8: 0x6c7f9420, 0x370c9: 0x6c7f9620, 0x370ca: 0x6c7f9820, 0x370cb: 0x6c7f9a20, - 0x370cc: 0x6ca84c20, 0x370cd: 0x6ca84e20, 0x370ce: 0x6ca85020, 0x370cf: 0x6ca85220, - 0x370d0: 0x6ca85420, 0x370d1: 0x6ca85620, 0x370d2: 0x6ca85820, 0x370d3: 0x6ca85a20, - 0x370d4: 0x6ca85c20, 0x370d5: 0x6ca85e20, 0x370d6: 0x6ca86020, 0x370d7: 0x6ca86220, - 0x370d8: 0x6ca86420, 0x370d9: 0x6ca86620, 0x370da: 0x6ca86820, 0x370db: 0x6ca86a20, - 0x370dc: 0x6ca86c20, 0x370dd: 0x6ca86e20, 0x370de: 0x6ca87020, 0x370df: 0x6ca87220, - 0x370e0: 0x6ca87420, 0x370e1: 0x6ca87620, 0x370e2: 0x6ca87820, 0x370e3: 0x6ca87a20, - 0x370e4: 0x6ca87c20, 0x370e5: 0x6ca87e20, 0x370e6: 0x6ca88020, 0x370e7: 0x6ca88220, - 0x370e8: 0x6ca88420, 0x370e9: 0x6ca88620, 0x370ea: 0x6cd69020, 0x370eb: 0x6cd69220, - 0x370ec: 0x6cd69420, 0x370ed: 0x6cd69620, 0x370ee: 0x6cd69820, 0x370ef: 0x6cd69a20, - 0x370f0: 0x6cd69c20, 0x370f1: 0x6cd69e20, 0x370f2: 0x6cd6a020, 0x370f3: 0x6cd6a220, - 0x370f4: 0x6cd6a420, 0x370f5: 0x6cd6a620, 0x370f6: 0x6cd6a820, 0x370f7: 0x6cd6aa20, - 0x370f8: 0x6cd6ac20, 0x370f9: 0x6cd6ae20, 0x370fa: 0x6cd6b020, 0x370fb: 0x6cd6b220, - 0x370fc: 0x6cd6b420, 0x370fd: 0x6cd6b620, 0x370fe: 0x6cd6b820, 0x370ff: 0x6ca88820, - // Block 0xdc4, offset 0x37100 - 0x37100: 0x6cd6ba20, 0x37101: 0x6cd6bc20, 0x37102: 0x6cd6be20, 0x37103: 0x6cd6c020, - 0x37104: 0x6cd6c220, 0x37105: 0x6cd6c420, 0x37106: 0x6cd6c620, 0x37107: 0x6cd6c820, - 0x37108: 0x6cd6ca20, 0x37109: 0x6cd6cc20, 0x3710a: 0x6cd6ce20, 0x3710b: 0x6cd6d020, - 0x3710c: 0x6cd6d220, 0x3710d: 0x6cd6d420, 0x3710e: 0x6cd6d620, 0x3710f: 0x6cd6d820, - 0x37110: 0x6d051220, 0x37111: 0x6d051420, 0x37112: 0x6d051620, 0x37113: 0x6d051820, - 0x37114: 0x6d051a20, 0x37115: 0x6d051c20, 0x37116: 0x6d051e20, 0x37117: 0x6d052020, - 0x37118: 0x6d052220, 0x37119: 0x6d052420, 0x3711a: 0x6d052620, 0x3711b: 0x6d052820, - 0x3711c: 0x6d052a20, 0x3711d: 0x6d052c20, 0x3711e: 0x6d052e20, 0x3711f: 0x6d053020, - 0x37120: 0x6d053220, 0x37121: 0x6d053420, 0x37122: 0x6d053620, 0x37123: 0x6d053820, - 0x37124: 0x6d053a20, 0x37125: 0x6d053c20, 0x37126: 0x6d053e20, 0x37127: 0x6d054020, - 0x37128: 0x6d054220, 0x37129: 0x6d054420, 0x3712a: 0x6d054620, 0x3712b: 0x6d054820, - 0x3712c: 0x6d054a20, 0x3712d: 0x6d054c20, 0x3712e: 0x6d054e20, 0x3712f: 0x6d055020, - 0x37130: 0x6d055220, 0x37131: 0x6d055420, 0x37132: 0x6d055620, 0x37133: 0x6d055820, - 0x37134: 0x6d055a20, 0x37135: 0x6d055c20, 0x37136: 0x6d055e20, 0x37137: 0x6d056020, - 0x37138: 0x6d056220, 0x37139: 0x6d056420, 0x3713a: 0x6d056620, 0x3713b: 0x6d056820, - 0x3713c: 0x6d056a20, 0x3713d: 0x6d056c20, 0x3713e: 0x6d056e20, 0x3713f: 0x6d057020, - // Block 0xdc5, offset 0x37140 - 0x37140: 0x6d057220, 0x37141: 0x6d057420, 0x37142: 0x6d057620, 0x37143: 0x6d057820, - 0x37144: 0x6d057a20, 0x37145: 0x6d057c20, 0x37146: 0x6d057e20, 0x37147: 0x6d058020, - 0x37148: 0x6d058220, 0x37149: 0x6d058420, 0x3714a: 0x6d058620, 0x3714b: 0x6d058820, - 0x3714c: 0x6d058a20, 0x3714d: 0x6d32a220, 0x3714e: 0x6d32a420, 0x3714f: 0x6d32a620, - 0x37150: 0x6d32a820, 0x37151: 0x6d32aa20, 0x37152: 0x6d32ac20, 0x37153: 0x6d32ae20, - 0x37154: 0x6d32b020, 0x37155: 0x6d32b220, 0x37156: 0x6d32b420, 0x37157: 0x6d32b620, - 0x37158: 0x6d32b820, 0x37159: 0x6d32ba20, 0x3715a: 0x6d32bc20, 0x3715b: 0x6d32be20, - 0x3715c: 0x6d32c020, 0x3715d: 0x6d32c220, 0x3715e: 0x6d32c420, 0x3715f: 0x6d32c620, - 0x37160: 0x6d32c820, 0x37161: 0x6d32ca20, 0x37162: 0x6d32cc20, 0x37163: 0x6d32ce20, - 0x37164: 0x6d32d020, 0x37165: 0x6d32d220, 0x37166: 0x6d32d420, 0x37167: 0x6d32d620, - 0x37168: 0x6d32d820, 0x37169: 0x6d32da20, 0x3716a: 0x6d32dc20, 0x3716b: 0x6d32de20, - 0x3716c: 0x6d32e020, 0x3716d: 0x6d32e220, 0x3716e: 0x6d32e420, 0x3716f: 0x6d32e620, - 0x37170: 0x6d32e820, 0x37171: 0x6d32ea20, 0x37172: 0x6d32ec20, 0x37173: 0x6d32ee20, - 0x37174: 0x6d32f020, 0x37175: 0x6d32f220, 0x37176: 0x6d32f420, 0x37177: 0x6d32f620, - 0x37178: 0x6d32f820, 0x37179: 0x6d32fa20, 0x3717a: 0x6d32fc20, 0x3717b: 0x6d32fe20, - 0x3717c: 0x6d330020, 0x3717d: 0x6d330220, 0x3717e: 0x6d330420, 0x3717f: 0x6d330620, - // Block 0xdc6, offset 0x37180 - 0x37180: 0x6d330820, 0x37181: 0x6d330a20, 0x37182: 0x6d330c20, 0x37183: 0x6d330e20, - 0x37184: 0x6d331020, 0x37185: 0x6d331220, 0x37186: 0x6d331420, 0x37187: 0x6d331620, - 0x37188: 0x6d331820, 0x37189: 0x6d331a20, 0x3718a: 0x6d331c20, 0x3718b: 0x6d331e20, - 0x3718c: 0x6d332020, 0x3718d: 0x6d332220, 0x3718e: 0x6d332420, 0x3718f: 0x6d332620, - 0x37190: 0x6d332820, 0x37191: 0x6d5f4e20, 0x37192: 0x6d5f5020, 0x37193: 0x6d5f5220, - 0x37194: 0x6d5f5420, 0x37195: 0x6d5f5620, 0x37196: 0x6d5f5820, 0x37197: 0x6d5f5a20, - 0x37198: 0x6d5f5c20, 0x37199: 0x6d5f5e20, 0x3719a: 0x6d5f6020, 0x3719b: 0x6d5f6220, - 0x3719c: 0x6d5f6420, 0x3719d: 0x6d5f6620, 0x3719e: 0x6d5f6820, 0x3719f: 0x6d5f6a20, - 0x371a0: 0x6d5f6c20, 0x371a1: 0x6d5f6e20, 0x371a2: 0x6d5f7020, 0x371a3: 0x6d5f7220, - 0x371a4: 0x6d5f7420, 0x371a5: 0x6d5f7620, 0x371a6: 0x6d5f7820, 0x371a7: 0x6d5f7a20, - 0x371a8: 0x6d5f7c20, 0x371a9: 0x6d5f7e20, 0x371aa: 0x6d5f8020, 0x371ab: 0x6d5f8220, - 0x371ac: 0x6d5f8420, 0x371ad: 0x6d5f8620, 0x371ae: 0x6d5f8820, 0x371af: 0x6d5f8a20, - 0x371b0: 0x6d5f8c20, 0x371b1: 0x6d5f8e20, 0x371b2: 0x6d5f9020, 0x371b3: 0x6d5f9220, - 0x371b4: 0x6d5f9420, 0x371b5: 0x6d5f9620, 0x371b6: 0x6d5f9820, 0x371b7: 0x6d5f9a20, - 0x371b8: 0x6d5f9c20, 0x371b9: 0x6d5f9e20, 0x371ba: 0x6d5fa020, 0x371bb: 0x6d5fa220, - 0x371bc: 0x6d5fa420, 0x371bd: 0x6d5fa620, 0x371be: 0x6d5fa820, 0x371bf: 0x6d5faa20, - // Block 0xdc7, offset 0x371c0 - 0x371c0: 0x6d5fac20, 0x371c1: 0x6d5fae20, 0x371c2: 0x6d5fb020, 0x371c3: 0x6d5fb220, - 0x371c4: 0x6d5fb420, 0x371c5: 0x6d5fb620, 0x371c6: 0x6d5fb820, 0x371c7: 0x6d5fba20, - 0x371c8: 0x6d5fbc20, 0x371c9: 0x6d5fbe20, 0x371ca: 0x6d5fc020, 0x371cb: 0x6d5fc220, - 0x371cc: 0x6d5fc420, 0x371cd: 0x6d5fc620, 0x371ce: 0x6d5fc820, 0x371cf: 0x6d5fca20, - 0x371d0: 0x6d5fcc20, 0x371d1: 0x6d5fce20, 0x371d2: 0x6d5fd020, 0x371d3: 0x6d5fd220, - 0x371d4: 0x6d5fd420, 0x371d5: 0x6d5fd620, 0x371d6: 0x6d5fd820, 0x371d7: 0x6d5fda20, - 0x371d8: 0x6d898620, 0x371d9: 0x6d898820, 0x371da: 0x6d898a20, 0x371db: 0x6d898c20, - 0x371dc: 0x6d898e20, 0x371dd: 0x6d899020, 0x371de: 0x6d899220, 0x371df: 0x6d899420, - 0x371e0: 0x6d899620, 0x371e1: 0x6d899820, 0x371e2: 0x6d899a20, 0x371e3: 0x6d899c20, - 0x371e4: 0x6d899e20, 0x371e5: 0x6d89a020, 0x371e6: 0x6d89a220, 0x371e7: 0x6d89a420, - 0x371e8: 0x6d89a620, 0x371e9: 0x6d89a820, 0x371ea: 0x6d89aa20, 0x371eb: 0x6d89ac20, - 0x371ec: 0x6d89ae20, 0x371ed: 0x6d89b020, 0x371ee: 0x6d89b220, 0x371ef: 0x6d89b420, - 0x371f0: 0x6d89b620, 0x371f1: 0x6d89b820, 0x371f2: 0x6d89ba20, 0x371f3: 0x6d89bc20, - 0x371f4: 0x6d89be20, 0x371f5: 0x6d89c020, 0x371f6: 0x6d89c220, 0x371f7: 0x6d89c420, - 0x371f8: 0x6d89c620, 0x371f9: 0x6d89c820, 0x371fa: 0x6d89ca20, 0x371fb: 0x6d89cc20, - 0x371fc: 0x6d89ce20, 0x371fd: 0x6d89d020, 0x371fe: 0x6d89d220, 0x371ff: 0x6d89d420, - // Block 0xdc8, offset 0x37200 - 0x37200: 0x6d89d620, 0x37201: 0x6d89d820, 0x37202: 0x6d89da20, 0x37203: 0x6d89dc20, - 0x37204: 0x6d89de20, 0x37205: 0x6d89e020, 0x37206: 0x6d89e220, 0x37207: 0x6d89e420, - 0x37208: 0x6d89e620, 0x37209: 0x6d89e820, 0x3720a: 0x6d89ea20, 0x3720b: 0x6d89ec20, - 0x3720c: 0x6d89ee20, 0x3720d: 0x6d89f020, 0x3720e: 0x6d89f220, 0x3720f: 0x6d89f420, - 0x37210: 0x6d89f620, 0x37211: 0x6d89f820, 0x37212: 0x6d89fa20, 0x37213: 0x6d89fc20, - 0x37214: 0x6d89fe20, 0x37215: 0x6d8a0020, 0x37216: 0x6d8a0220, 0x37217: 0x6d8a0420, - 0x37218: 0x6d8a0620, 0x37219: 0x6d8a0820, 0x3721a: 0x6d8a0a20, 0x3721b: 0x6d8a0c20, - 0x3721c: 0x6d8a0e20, 0x3721d: 0x6d8a1020, 0x3721e: 0x6d8a1220, 0x3721f: 0x6d8a1420, - 0x37220: 0x6d8a1620, 0x37221: 0x6d8a1820, 0x37222: 0x6d8a1a20, 0x37223: 0x6d8a1c20, - 0x37224: 0x6d8a1e20, 0x37225: 0x6d8a2020, 0x37226: 0x6d8a2220, 0x37227: 0x6d8a2420, - 0x37228: 0x6d8a2620, 0x37229: 0x6d8a2820, 0x3722a: 0x6d8a2a20, 0x3722b: 0x6d8a2c20, - 0x3722c: 0x6d8a2e20, 0x3722d: 0x6d8a3020, 0x3722e: 0x6d8a3220, 0x3722f: 0x6d8a3420, - 0x37230: 0x6d8a3620, 0x37231: 0x6d8a3820, 0x37232: 0x6d8a3a20, 0x37233: 0x6d8a3c20, - 0x37234: 0x6d8a3e20, 0x37235: 0x6dae1220, 0x37236: 0x6dae1420, 0x37237: 0x6dae1620, - 0x37238: 0x6dae1820, 0x37239: 0x6dae1a20, 0x3723a: 0x6dae1c20, 0x3723b: 0x6dae1e20, - 0x3723c: 0x6dae2020, 0x3723d: 0x6dae2220, 0x3723e: 0x6dae2420, 0x3723f: 0x6dae2620, - // Block 0xdc9, offset 0x37240 - 0x37240: 0x6dae2820, 0x37241: 0x6dae2a20, 0x37242: 0x6dae2c20, 0x37243: 0x6dae2e20, - 0x37244: 0x6dae3020, 0x37245: 0x6dae3220, 0x37246: 0x6dae3420, 0x37247: 0x6dae3620, - 0x37248: 0x6dae3820, 0x37249: 0x6dae3a20, 0x3724a: 0x6dae3c20, 0x3724b: 0x6dae3e20, - 0x3724c: 0x6dae4020, 0x3724d: 0x6dae4220, 0x3724e: 0x6dae4420, 0x3724f: 0x6dae4620, - 0x37250: 0x6dae4820, 0x37251: 0x6dae4a20, 0x37252: 0x6dae4c20, 0x37253: 0x6dae4e20, - 0x37254: 0x6dae5020, 0x37255: 0x6dae5220, 0x37256: 0x6dae5420, 0x37257: 0x6dae5620, - 0x37258: 0x6dae5820, 0x37259: 0x6dae5a20, 0x3725a: 0x6dae5c20, 0x3725b: 0x6dae5e20, - 0x3725c: 0x6dae6020, 0x3725d: 0x6dae6220, 0x3725e: 0x6dae6420, 0x3725f: 0x6dae6620, - 0x37260: 0x6dae6820, 0x37261: 0x6dae6a20, 0x37262: 0x6dae6c20, 0x37263: 0x6dae6e20, - 0x37264: 0x6dae7020, 0x37265: 0x6dae7220, 0x37266: 0x6dae7420, 0x37267: 0x6dae7620, - 0x37268: 0x6dae7820, 0x37269: 0x6dae7a20, 0x3726a: 0x6dae7c20, 0x3726b: 0x6dae7e20, - 0x3726c: 0x6dae8020, 0x3726d: 0x6dae8220, 0x3726e: 0x6dae8420, 0x3726f: 0x6dae8620, - 0x37270: 0x6dae8820, 0x37271: 0x6dae8a20, 0x37272: 0x6dae8c20, 0x37273: 0x6dae8e20, - 0x37274: 0x6dae9020, 0x37275: 0x6dae9220, 0x37276: 0x6dae9420, 0x37277: 0x6dae9620, - 0x37278: 0x6dae9820, 0x37279: 0x6dae9a20, 0x3727a: 0x6dae9c20, 0x3727b: 0x6dae9e20, - 0x3727c: 0x6daea020, 0x3727d: 0x6daea220, 0x3727e: 0x6daea420, 0x3727f: 0x6daea620, - // Block 0xdca, offset 0x37280 - 0x37280: 0x6daea820, 0x37281: 0x6dcda420, 0x37282: 0x6daeaa20, 0x37283: 0x6daeac20, - 0x37284: 0x6daeae20, 0x37285: 0x6daeb020, 0x37286: 0x6dcda620, 0x37287: 0x6dcda820, - 0x37288: 0x6dcdaa20, 0x37289: 0x6dcdac20, 0x3728a: 0x6dcdae20, 0x3728b: 0x6dcdb020, - 0x3728c: 0x6dcdb220, 0x3728d: 0x6dcdb420, 0x3728e: 0x6dcdb620, 0x3728f: 0x6dcdb820, - 0x37290: 0x6dcdba20, 0x37291: 0x6dcdbc20, 0x37292: 0x6dcdbe20, 0x37293: 0x6dcdc020, - 0x37294: 0x6dcdc220, 0x37295: 0x6dcdc420, 0x37296: 0x6dcdc620, 0x37297: 0x6dcdc820, - 0x37298: 0x6dcdca20, 0x37299: 0x6dcdcc20, 0x3729a: 0x6dcdce20, 0x3729b: 0x6dcdd020, - 0x3729c: 0x6dcdd220, 0x3729d: 0x6dcdd420, 0x3729e: 0x6dcdd620, 0x3729f: 0x6dcdd820, - 0x372a0: 0x6dcdda20, 0x372a1: 0x6dcddc20, 0x372a2: 0x6dcdde20, 0x372a3: 0x6dcde020, - 0x372a4: 0x6dcde220, 0x372a5: 0x6dcde420, 0x372a6: 0x6dcde620, 0x372a7: 0x6dcde820, - 0x372a8: 0x6dcdea20, 0x372a9: 0x6dcdec20, 0x372aa: 0x6dcdee20, 0x372ab: 0x6dcdf020, - 0x372ac: 0x6dcdf220, 0x372ad: 0x6dcdf420, 0x372ae: 0x6dcdf620, 0x372af: 0x6dcdf820, - 0x372b0: 0x6dcdfa20, 0x372b1: 0x6dcdfc20, 0x372b2: 0x6dcdfe20, 0x372b3: 0x6dce0020, - 0x372b4: 0x6dce0220, 0x372b5: 0x6dce0420, 0x372b6: 0x6dce0620, 0x372b7: 0x6dce0820, - 0x372b8: 0x6dce0a20, 0x372b9: 0x6dce0c20, 0x372ba: 0x6dce0e20, 0x372bb: 0x6dce1020, - 0x372bc: 0x6dce1220, 0x372bd: 0x6dce1420, 0x372be: 0x6dce1620, 0x372bf: 0x6dce1820, - // Block 0xdcb, offset 0x372c0 - 0x372c0: 0x6dce1a20, 0x372c1: 0x6dce1c20, 0x372c2: 0x6dce1e20, 0x372c3: 0x6dce2020, - 0x372c4: 0x6dce2220, 0x372c5: 0x6dce2420, 0x372c6: 0x6dce2620, 0x372c7: 0x6dce2820, - 0x372c8: 0x6dce2a20, 0x372c9: 0x6dce2c20, 0x372ca: 0x6dce2e20, 0x372cb: 0x6dce3020, - 0x372cc: 0x6dce3220, 0x372cd: 0x6dce3420, 0x372ce: 0x6daeb220, 0x372cf: 0x6dce3620, - 0x372d0: 0x6dce3820, 0x372d1: 0x6dce3a20, 0x372d2: 0x6dce3c20, 0x372d3: 0x6dce3e20, - 0x372d4: 0x6dce4020, 0x372d5: 0x6dce4220, 0x372d6: 0x6dce4420, 0x372d7: 0x6dce4620, - 0x372d8: 0x6dce4820, 0x372d9: 0x6dce4a20, 0x372da: 0x6dce4c20, 0x372db: 0x6dce4e20, - 0x372dc: 0x6dce5020, 0x372dd: 0x6dce5220, 0x372de: 0x6dce5420, 0x372df: 0x6dce5620, - 0x372e0: 0x6dce5820, 0x372e1: 0x6de84820, 0x372e2: 0x6de84a20, 0x372e3: 0x6de84c20, - 0x372e4: 0x6de84e20, 0x372e5: 0x6de85020, 0x372e6: 0x6de85220, 0x372e7: 0x6de85420, - 0x372e8: 0x6de85620, 0x372e9: 0x6de85820, 0x372ea: 0x6de85a20, 0x372eb: 0x6de85c20, - 0x372ec: 0x6de85e20, 0x372ed: 0x6de86020, 0x372ee: 0x6de86220, 0x372ef: 0x6de86420, - 0x372f0: 0x6de86620, 0x372f1: 0x6de86820, 0x372f2: 0x6de86a20, 0x372f3: 0x6de86c20, - 0x372f4: 0x6de86e20, 0x372f5: 0x6de87020, 0x372f6: 0x6de87220, 0x372f7: 0x6de87420, - 0x372f8: 0x6de87620, 0x372f9: 0x6de87820, 0x372fa: 0x6de87a20, 0x372fb: 0x6de87c20, - 0x372fc: 0x6de87e20, 0x372fd: 0x6de88020, 0x372fe: 0x6de88220, 0x372ff: 0x6de88420, - // Block 0xdcc, offset 0x37300 - 0x37300: 0x6de88620, 0x37301: 0x6de88820, 0x37302: 0x6de88a20, 0x37303: 0x6de88c20, - 0x37304: 0x6de88e20, 0x37305: 0x6de89020, 0x37306: 0x6de89220, 0x37307: 0x6de89420, - 0x37308: 0x6de89620, 0x37309: 0x6de89820, 0x3730a: 0x6de89a20, 0x3730b: 0x6de89c20, - 0x3730c: 0x6de89e20, 0x3730d: 0x6de8a020, 0x3730e: 0x6de8a220, 0x3730f: 0x6de8a420, - 0x37310: 0x6de8a620, 0x37311: 0x6de8a820, 0x37312: 0x6de8aa20, 0x37313: 0x6de8ac20, - 0x37314: 0x6de8ae20, 0x37315: 0x6de8b020, 0x37316: 0x6de8b220, 0x37317: 0x6de8b420, - 0x37318: 0x6de8b620, 0x37319: 0x6de8b820, 0x3731a: 0x6de8ba20, 0x3731b: 0x6de8bc20, - 0x3731c: 0x6dfec820, 0x3731d: 0x6dfeca20, 0x3731e: 0x6dfecc20, 0x3731f: 0x6dfece20, - 0x37320: 0x6dfed020, 0x37321: 0x6dfed220, 0x37322: 0x6dfed420, 0x37323: 0x6dfed620, - 0x37324: 0x6dfed820, 0x37325: 0x6dfeda20, 0x37326: 0x6dfedc20, 0x37327: 0x6dfede20, - 0x37328: 0x6dfee020, 0x37329: 0x6dfee220, 0x3732a: 0x6dfee420, 0x3732b: 0x6dfee620, - 0x3732c: 0x6dfee820, 0x3732d: 0x6dfeea20, 0x3732e: 0x6dfeec20, 0x3732f: 0x6dfeee20, - 0x37330: 0x6dfef020, 0x37331: 0x6dfef220, 0x37332: 0x6dfef420, 0x37333: 0x6dfef620, - 0x37334: 0x6dfef820, 0x37335: 0x6dfefa20, 0x37336: 0x6dfefc20, 0x37337: 0x6dfefe20, - 0x37338: 0x6dff0020, 0x37339: 0x6dff0220, 0x3733a: 0x6dff0420, 0x3733b: 0x6dff0620, - 0x3733c: 0x6dff0820, 0x3733d: 0x6dff0a20, 0x3733e: 0x6dff0c20, 0x3733f: 0x6dff0e20, - // Block 0xdcd, offset 0x37340 - 0x37340: 0x6dff1020, 0x37341: 0x6dff1220, 0x37342: 0x6dff1420, 0x37343: 0x6dff1620, - 0x37344: 0x6dff1820, 0x37345: 0x6e112220, 0x37346: 0x6e112420, 0x37347: 0x6e112620, - 0x37348: 0x6e112820, 0x37349: 0x6e112a20, 0x3734a: 0x6e112c20, 0x3734b: 0x6e112e20, - 0x3734c: 0x6e113020, 0x3734d: 0x6e113220, 0x3734e: 0x6e113420, 0x3734f: 0x6e113620, - 0x37350: 0x6e113820, 0x37351: 0x6e113a20, 0x37352: 0x6e113c20, 0x37353: 0x6e113e20, - 0x37354: 0x6e114020, 0x37355: 0x6e114220, 0x37356: 0x6e114420, 0x37357: 0x6e114620, - 0x37358: 0x6e114820, 0x37359: 0x6e114a20, 0x3735a: 0x6e114c20, 0x3735b: 0x6e114e20, - 0x3735c: 0x6e115020, 0x3735d: 0x6e115220, 0x3735e: 0x6e115420, 0x3735f: 0x6e115620, - 0x37360: 0x6e115820, 0x37361: 0x6e115a20, 0x37362: 0x6e115c20, 0x37363: 0x6e115e20, - 0x37364: 0x6e116020, 0x37365: 0x6e116220, 0x37366: 0x6e116420, 0x37367: 0x6e116620, - 0x37368: 0x6e116820, 0x37369: 0x6e116a20, 0x3736a: 0x6e116c20, 0x3736b: 0x6e116e20, - 0x3736c: 0x6e117020, 0x3736d: 0x6e117220, 0x3736e: 0x6e117420, 0x3736f: 0x6e117620, - 0x37370: 0x6e117820, 0x37371: 0x6e117a20, 0x37372: 0x6e117c20, 0x37373: 0x6e117e20, - 0x37374: 0x6e118020, 0x37375: 0x6e1fa220, 0x37376: 0x6e1fa420, 0x37377: 0x6e1fa620, - 0x37378: 0x6e1fa820, 0x37379: 0x6e1faa20, 0x3737a: 0x6e1fac20, 0x3737b: 0x6e1fae20, - 0x3737c: 0x6e1fb020, 0x3737d: 0x6e1fb220, 0x3737e: 0x6e1fb420, 0x3737f: 0x6e1fb620, - // Block 0xdce, offset 0x37380 - 0x37380: 0x6e1fb820, 0x37381: 0x6e1fba20, 0x37382: 0x6e1fbc20, 0x37383: 0x6e1fbe20, - 0x37384: 0x6e1fc020, 0x37385: 0x6e1fc220, 0x37386: 0x6e1fc420, 0x37387: 0x6e1fc620, - 0x37388: 0x6e1fc820, 0x37389: 0x6e1fca20, 0x3738a: 0x6e1fcc20, 0x3738b: 0x6e1fce20, - 0x3738c: 0x6e1fd020, 0x3738d: 0x6e1fd220, 0x3738e: 0x6e1fd420, 0x3738f: 0x6e1fd620, - 0x37390: 0x6e1fd820, 0x37391: 0x6e1fda20, 0x37392: 0x6e1fdc20, 0x37393: 0x6e1fde20, - 0x37394: 0x6e2ada20, 0x37395: 0x6e2adc20, 0x37396: 0x6e2ade20, 0x37397: 0x6e2ae020, - 0x37398: 0x6e2ae220, 0x37399: 0x6e2ae420, 0x3739a: 0x6e2ae620, 0x3739b: 0x6e2ae820, - 0x3739c: 0x6e2aea20, 0x3739d: 0x6e2aec20, 0x3739e: 0x6e2aee20, 0x3739f: 0x6e2af020, - 0x373a0: 0x6e2af220, 0x373a1: 0x6e2af420, 0x373a2: 0x6e2af620, 0x373a3: 0x6e2af820, - 0x373a4: 0x6e2afa20, 0x373a5: 0x6e2afc20, 0x373a6: 0x6e2afe20, 0x373a7: 0x6e2b0020, - 0x373a8: 0x6e335620, 0x373a9: 0x6e335820, 0x373aa: 0x6e335a20, 0x373ab: 0x6e335c20, - 0x373ac: 0x6e335e20, 0x373ad: 0x6e336020, 0x373ae: 0x6e336220, 0x373af: 0x6e336420, - 0x373b0: 0x6e336620, 0x373b1: 0x6e336820, 0x373b2: 0x6e336a20, 0x373b3: 0x6e336c20, - 0x373b4: 0x6e336e20, 0x373b5: 0x6e337020, 0x373b6: 0x6e337220, 0x373b7: 0x6e337420, - 0x373b8: 0x6e337620, 0x373b9: 0x6e337820, 0x373ba: 0x6e337a20, 0x373bb: 0x6e337c20, - 0x373bc: 0x6e396a20, 0x373bd: 0x6e396c20, 0x373be: 0x6e396e20, 0x373bf: 0x6e397020, - // Block 0xdcf, offset 0x373c0 - 0x373c0: 0x6e397220, 0x373c1: 0x6e397420, 0x373c2: 0x6e397620, 0x373c3: 0x6e397820, - 0x373c4: 0x6e397a20, 0x373c5: 0x6e397c20, 0x373c6: 0x6e397e20, 0x373c7: 0x6e398020, - 0x373c8: 0x6e3db220, 0x373c9: 0x6e3db420, 0x373ca: 0x6e3db620, 0x373cb: 0x6e3db820, - 0x373cc: 0x6e3dba20, 0x373cd: 0x6e3dbc20, 0x373ce: 0x6e3dbe20, 0x373cf: 0x6e3dc020, - 0x373d0: 0x6e409020, 0x373d1: 0x6e409220, 0x373d2: 0x6e409420, 0x373d3: 0x6e409620, - 0x373d4: 0x6e409820, 0x373d5: 0x6e409a20, 0x373d6: 0x6e409c20, 0x373d7: 0x6e42d420, - 0x373d8: 0x6e445020, 0x373d9: 0x6e445220, 0x373da: 0x6e42d620, 0x373db: 0x6e42d820, - 0x373dc: 0x6e42da20, 0x373dd: 0x6e42dc20, 0x373de: 0x6e445420, 0x373df: 0x6e445620, - 0x373e0: 0x6e445820, 0x373e1: 0x6e453620, 0x373e2: 0x6e453820, 0x373e3: 0x6e45c620, - 0x373e4: 0x6e463820, 0x373e5: 0x6c259620, 0x373e6: 0x6c259820, 0x373e7: 0x6c3dae20, - 0x373e8: 0x6c3db020, 0x373e9: 0x6c3db220, 0x373ea: 0x6c3db420, 0x373eb: 0x6c5c4a20, - 0x373ec: 0x6c5c4c20, 0x373ed: 0x6c5c4e20, 0x373ee: 0x6c5c5020, 0x373ef: 0x6c5c5220, - 0x373f0: 0x6c5c5420, 0x373f1: 0x6c5c5620, 0x373f2: 0x6c5c5820, 0x373f3: 0x6c7fcc20, - 0x373f4: 0x6c7fce20, 0x373f5: 0x6c7fd020, 0x373f6: 0x6c7fd220, 0x373f7: 0x6c7fd420, - 0x373f8: 0x6c7fd620, 0x373f9: 0x6c7fd820, 0x373fa: 0x6c7fda20, 0x373fb: 0x6c7fdc20, - 0x373fc: 0x6c7fde20, 0x373fd: 0x6c7fe020, 0x373fe: 0x6c7fe220, 0x373ff: 0x6c7fe420, - // Block 0xdd0, offset 0x37400 - 0x37400: 0x6c7fe620, 0x37401: 0x6ca8b620, 0x37402: 0x6ca8b820, 0x37403: 0x6ca8ba20, - 0x37404: 0x6ca8bc20, 0x37405: 0x6ca8be20, 0x37406: 0x6ca8c020, 0x37407: 0x6ca8c220, - 0x37408: 0x6ca8c420, 0x37409: 0x6ca8c620, 0x3740a: 0x6ca8c820, 0x3740b: 0x6ca8ca20, - 0x3740c: 0x6ca8cc20, 0x3740d: 0x6ca8ce20, 0x3740e: 0x6ca8d020, 0x3740f: 0x6ca8d220, - 0x37410: 0x6ca8d420, 0x37411: 0x6ca8d620, 0x37412: 0x6ca8d820, 0x37413: 0x6ca8da20, - 0x37414: 0x6ca8dc20, 0x37415: 0x6ca8de20, 0x37416: 0x6ca8e020, 0x37417: 0x6cd70a20, - 0x37418: 0x6ca8e220, 0x37419: 0x6ca8e420, 0x3741a: 0x6cd70c20, 0x3741b: 0x6cd70e20, - 0x3741c: 0x6cd71020, 0x3741d: 0x6cd71220, 0x3741e: 0x6cd71420, 0x3741f: 0x6cd71620, - 0x37420: 0x6cd71820, 0x37421: 0x6cd71a20, 0x37422: 0x6cd71c20, 0x37423: 0x6cd71e20, - 0x37424: 0x6cd72020, 0x37425: 0x6cd72220, 0x37426: 0x6cd72420, 0x37427: 0x6cd72620, - 0x37428: 0x6cd72820, 0x37429: 0x6cd72a20, 0x3742a: 0x6cd72c20, 0x3742b: 0x6cd72e20, - 0x3742c: 0x6cd73020, 0x3742d: 0x6cd73220, 0x3742e: 0x6cd73420, 0x3742f: 0x6cd73620, - 0x37430: 0x6cd73820, 0x37431: 0x6ca8e620, 0x37432: 0x6d05b620, 0x37433: 0x6d05b820, - 0x37434: 0x6d05ba20, 0x37435: 0x6d05bc20, 0x37436: 0x6d05be20, 0x37437: 0x6d05c020, - 0x37438: 0x6d05c220, 0x37439: 0x6d05c420, 0x3743a: 0x6d05c620, 0x3743b: 0x6d05c820, - 0x3743c: 0x6d05ca20, 0x3743d: 0x6d05cc20, 0x3743e: 0x6d05ce20, 0x3743f: 0x6d05d020, - // Block 0xdd1, offset 0x37440 - 0x37440: 0x6d05d220, 0x37441: 0x6d05d420, 0x37442: 0x6d05d620, 0x37443: 0x6d05d820, - 0x37444: 0x6d05da20, 0x37445: 0x6d05dc20, 0x37446: 0x6d05de20, 0x37447: 0x6d05e020, - 0x37448: 0x6d05e220, 0x37449: 0x6d05e420, 0x3744a: 0x6d05e620, 0x3744b: 0x6d05e820, - 0x3744c: 0x6d05ea20, 0x3744d: 0x6d05ec20, 0x3744e: 0x6d05ee20, 0x3744f: 0x6d05f020, - 0x37450: 0x6d05f220, 0x37451: 0x6d05f420, 0x37452: 0x6d05f620, 0x37453: 0x6d05f820, - 0x37454: 0x6d05fa20, 0x37455: 0x6d05fc20, 0x37456: 0x6d05fe20, 0x37457: 0x6d060020, - 0x37458: 0x6d335a20, 0x37459: 0x6d335c20, 0x3745a: 0x6d335e20, 0x3745b: 0x6d336020, - 0x3745c: 0x6d336220, 0x3745d: 0x6d336420, 0x3745e: 0x6d336620, 0x3745f: 0x6d336820, - 0x37460: 0x6d336a20, 0x37461: 0x6d336c20, 0x37462: 0x6d336e20, 0x37463: 0x6d337020, - 0x37464: 0x6d337220, 0x37465: 0x6d337420, 0x37466: 0x6d337620, 0x37467: 0x6d337820, - 0x37468: 0x6d337a20, 0x37469: 0x6d337c20, 0x3746a: 0x6d337e20, 0x3746b: 0x6d338020, - 0x3746c: 0x6d338220, 0x3746d: 0x6d338420, 0x3746e: 0x6d338620, 0x3746f: 0x6d338820, - 0x37470: 0x6d338a20, 0x37471: 0x6d338c20, 0x37472: 0x6d338e20, 0x37473: 0x6d339020, - 0x37474: 0x6d339220, 0x37475: 0x6d339420, 0x37476: 0x6d339620, 0x37477: 0x6d339820, - 0x37478: 0x6d339a20, 0x37479: 0x6d339c20, 0x3747a: 0x6d339e20, 0x3747b: 0x6d33a020, - 0x3747c: 0x6d33a220, 0x3747d: 0x6d33a420, 0x3747e: 0x6d33a620, 0x3747f: 0x6d33a820, - // Block 0xdd2, offset 0x37480 - 0x37480: 0x6d33aa20, 0x37481: 0x6d601820, 0x37482: 0x6d601a20, 0x37483: 0x6d601c20, - 0x37484: 0x6d601e20, 0x37485: 0x6d602020, 0x37486: 0x6d602220, 0x37487: 0x6d602420, - 0x37488: 0x6d602620, 0x37489: 0x6d602820, 0x3748a: 0x6d602a20, 0x3748b: 0x6d602c20, - 0x3748c: 0x6d602e20, 0x3748d: 0x6d603020, 0x3748e: 0x6d603220, 0x3748f: 0x6d603420, - 0x37490: 0x6d603620, 0x37491: 0x6d603820, 0x37492: 0x6d603a20, 0x37493: 0x6d603c20, - 0x37494: 0x6d603e20, 0x37495: 0x6d604020, 0x37496: 0x6d604220, 0x37497: 0x6d604420, - 0x37498: 0x6d604620, 0x37499: 0x6d604820, 0x3749a: 0x6d604a20, 0x3749b: 0x6d604c20, - 0x3749c: 0x6d604e20, 0x3749d: 0x6d605020, 0x3749e: 0x6d605220, 0x3749f: 0x6d605420, - 0x374a0: 0x6d605620, 0x374a1: 0x6d605820, 0x374a2: 0x6d605a20, 0x374a3: 0x6d605c20, - 0x374a4: 0x6d8a6e20, 0x374a5: 0x6d8a7020, 0x374a6: 0x6d8a7220, 0x374a7: 0x6d8a7420, - 0x374a8: 0x6d8a7620, 0x374a9: 0x6d8a7820, 0x374aa: 0x6d8a7a20, 0x374ab: 0x6d8a7c20, - 0x374ac: 0x6d8a7e20, 0x374ad: 0x6d8a8020, 0x374ae: 0x6d8a8220, 0x374af: 0x6d8a8420, - 0x374b0: 0x6d8a8620, 0x374b1: 0x6d8a8820, 0x374b2: 0x6d8a8a20, 0x374b3: 0x6d8a8c20, - 0x374b4: 0x6d8a8e20, 0x374b5: 0x6d8a9020, 0x374b6: 0x6d8a9220, 0x374b7: 0x6d8a9420, - 0x374b8: 0x6d8a9620, 0x374b9: 0x6d8a9820, 0x374ba: 0x6d8a9a20, 0x374bb: 0x6d8a9c20, - 0x374bc: 0x6d8a9e20, 0x374bd: 0x6d8aa020, 0x374be: 0x6d8aa220, 0x374bf: 0x6daeea20, - // Block 0xdd3, offset 0x374c0 - 0x374c0: 0x6daeec20, 0x374c1: 0x6daeee20, 0x374c2: 0x6daef020, 0x374c3: 0x6daef220, - 0x374c4: 0x6daef420, 0x374c5: 0x6daef620, 0x374c6: 0x6daef820, 0x374c7: 0x6daefa20, - 0x374c8: 0x6daefc20, 0x374c9: 0x6daefe20, 0x374ca: 0x6daf0020, 0x374cb: 0x6daf0220, - 0x374cc: 0x6daf0420, 0x374cd: 0x6daf0620, 0x374ce: 0x6daf0820, 0x374cf: 0x6daf0a20, - 0x374d0: 0x6daf0c20, 0x374d1: 0x6daf0e20, 0x374d2: 0x6daf1020, 0x374d3: 0x6daf1220, - 0x374d4: 0x6daf1420, 0x374d5: 0x6daf1620, 0x374d6: 0x6daf1820, 0x374d7: 0x6dce7c20, - 0x374d8: 0x6dce7e20, 0x374d9: 0x6dce8020, 0x374da: 0x6dce8220, 0x374db: 0x6dce8420, - 0x374dc: 0x6dce8620, 0x374dd: 0x6dce8820, 0x374de: 0x6dce8a20, 0x374df: 0x6dce8c20, - 0x374e0: 0x6dce8e20, 0x374e1: 0x6dce9020, 0x374e2: 0x6dce9220, 0x374e3: 0x6dce9420, - 0x374e4: 0x6dce9620, 0x374e5: 0x6dce9820, 0x374e6: 0x6dce9a20, 0x374e7: 0x6dce9c20, - 0x374e8: 0x6dce9e20, 0x374e9: 0x6dcea020, 0x374ea: 0x6dcea220, 0x374eb: 0x6dcea420, - 0x374ec: 0x6dcea620, 0x374ed: 0x6dcea820, 0x374ee: 0x6dceaa20, 0x374ef: 0x6dceac20, - 0x374f0: 0x6dceae20, 0x374f1: 0x6dceb020, 0x374f2: 0x6dceb220, 0x374f3: 0x6dceb420, - 0x374f4: 0x6dceb620, 0x374f5: 0x6dceb820, 0x374f6: 0x6de8d220, 0x374f7: 0x6de8d420, - 0x374f8: 0x6de8d620, 0x374f9: 0x6de8d820, 0x374fa: 0x6de8da20, 0x374fb: 0x6de8dc20, - 0x374fc: 0x6de8de20, 0x374fd: 0x6de8e020, 0x374fe: 0x6de8e220, 0x374ff: 0x6de8e420, - // Block 0xdd4, offset 0x37500 - 0x37500: 0x6de8e620, 0x37501: 0x6de8e820, 0x37502: 0x6de8ea20, 0x37503: 0x6de8ec20, - 0x37504: 0x6de8ee20, 0x37505: 0x6de8f020, 0x37506: 0x6de8f220, 0x37507: 0x6de8f420, - 0x37508: 0x6de8f620, 0x37509: 0x6de8f820, 0x3750a: 0x6de8fa20, 0x3750b: 0x6de8fc20, - 0x3750c: 0x6de8fe20, 0x3750d: 0x6de90020, 0x3750e: 0x6de90220, 0x3750f: 0x6dff2620, - 0x37510: 0x6dff2820, 0x37511: 0x6dff2a20, 0x37512: 0x6dff2c20, 0x37513: 0x6dff2e20, - 0x37514: 0x6dff3020, 0x37515: 0x6dff3220, 0x37516: 0x6dff3420, 0x37517: 0x6e118e20, - 0x37518: 0x6e119020, 0x37519: 0x6e119220, 0x3751a: 0x6e119420, 0x3751b: 0x6e119620, - 0x3751c: 0x6e119820, 0x3751d: 0x6e119a20, 0x3751e: 0x6e119c20, 0x3751f: 0x6e119e20, - 0x37520: 0x6e11a020, 0x37521: 0x6e1fe820, 0x37522: 0x6e11a220, 0x37523: 0x6e11a420, - 0x37524: 0x6e1fea20, 0x37525: 0x6e1fec20, 0x37526: 0x6e1fee20, 0x37527: 0x6e1ff020, - 0x37528: 0x6e1ff220, 0x37529: 0x6e1ff420, 0x3752a: 0x6e1ff620, 0x3752b: 0x6e1ff820, - 0x3752c: 0x6e2b0a20, 0x3752d: 0x6e2b0c20, 0x3752e: 0x6e2b0e20, 0x3752f: 0x6e2b1020, - 0x37530: 0x6e2b1220, 0x37531: 0x6e338020, 0x37532: 0x6e338220, 0x37533: 0x6e338420, - 0x37534: 0x6e338620, 0x37535: 0x6e338820, 0x37536: 0x6e398a20, 0x37537: 0x6e398c20, - 0x37538: 0x6e398e20, 0x37539: 0x6e399020, 0x3753a: 0x6e399220, 0x3753b: 0x6e3dc420, - 0x3753c: 0x6e3dc620, 0x3753d: 0x6e3dc820, 0x3753e: 0x6e3dca20, 0x3753f: 0x6e3dcc20, - // Block 0xdd5, offset 0x37540 - 0x37540: 0x6e40a020, 0x37541: 0x6e40a220, 0x37542: 0x6e453a20, 0x37543: 0x6e45c820, - 0x37544: 0x6e468a20, 0x37545: 0x6c3dc420, 0x37546: 0x6c3dc620, 0x37547: 0x6c3dc820, - 0x37548: 0x6c3dca20, 0x37549: 0x6c3dcc20, 0x3754a: 0x6c3dce20, 0x3754b: 0x6c3dd020, - 0x3754c: 0x6c5c7a20, 0x3754d: 0x6c5c7c20, 0x3754e: 0x6c5c7e20, 0x3754f: 0x6c5c8020, - 0x37550: 0x6c5c8220, 0x37551: 0x6c5c8420, 0x37552: 0x6c5c8620, 0x37553: 0x6c5c8820, - 0x37554: 0x6c5c8a20, 0x37555: 0x6c5c8c20, 0x37556: 0x6c5c8e20, 0x37557: 0x6c5c9020, - 0x37558: 0x6c5c9220, 0x37559: 0x6c804620, 0x3755a: 0x6c804820, 0x3755b: 0x6c804a20, - 0x3755c: 0x6c804c20, 0x3755d: 0x6c804e20, 0x3755e: 0x6c805020, 0x3755f: 0x6c805220, - 0x37560: 0x6c805420, 0x37561: 0x6c805620, 0x37562: 0x6c805820, 0x37563: 0x6c805a20, - 0x37564: 0x6c805c20, 0x37565: 0x6c805e20, 0x37566: 0x6c806020, 0x37567: 0x6c806220, - 0x37568: 0x6c806420, 0x37569: 0x6c806620, 0x3756a: 0x6c806820, 0x3756b: 0x6c806a20, - 0x3756c: 0x6c806c20, 0x3756d: 0x6c806e20, 0x3756e: 0x6c807020, 0x3756f: 0x6c807220, - 0x37570: 0x6c807420, 0x37571: 0x6c807620, 0x37572: 0x6c807820, 0x37573: 0x6c807a20, - 0x37574: 0x6c807c20, 0x37575: 0x6c807e20, 0x37576: 0x6c808020, 0x37577: 0x6c808220, - 0x37578: 0x6c808420, 0x37579: 0x6c808620, 0x3757a: 0x6c808820, 0x3757b: 0x6c808a20, - 0x3757c: 0x6c808c20, 0x3757d: 0x6c808e20, 0x3757e: 0x6c809020, 0x3757f: 0x6c809220, - // Block 0xdd6, offset 0x37580 - 0x37580: 0x6c809420, 0x37581: 0x6c809620, 0x37582: 0x6c809820, 0x37583: 0x6ca95220, - 0x37584: 0x6ca95420, 0x37585: 0x6ca95620, 0x37586: 0x6ca95820, 0x37587: 0x6ca95a20, - 0x37588: 0x6ca95c20, 0x37589: 0x6ca95e20, 0x3758a: 0x6ca96020, 0x3758b: 0x6ca96220, - 0x3758c: 0x6ca96420, 0x3758d: 0x6ca96620, 0x3758e: 0x6ca96820, 0x3758f: 0x6ca96a20, - 0x37590: 0x6ca96c20, 0x37591: 0x6ca96e20, 0x37592: 0x6ca97020, 0x37593: 0x6ca97220, - 0x37594: 0x6ca97420, 0x37595: 0x6ca97620, 0x37596: 0x6ca97820, 0x37597: 0x6ca97a20, - 0x37598: 0x6ca97c20, 0x37599: 0x6ca97e20, 0x3759a: 0x6ca98020, 0x3759b: 0x6ca98220, - 0x3759c: 0x6ca98420, 0x3759d: 0x6ca98620, 0x3759e: 0x6ca98820, 0x3759f: 0x6ca98a20, - 0x375a0: 0x6ca98c20, 0x375a1: 0x6ca98e20, 0x375a2: 0x6ca99020, 0x375a3: 0x6ca99220, - 0x375a4: 0x6ca99420, 0x375a5: 0x6ca99620, 0x375a6: 0x6cd7ae20, 0x375a7: 0x6cd7b020, - 0x375a8: 0x6cd7b220, 0x375a9: 0x6cd7b420, 0x375aa: 0x6cd7b620, 0x375ab: 0x6cd7b820, - 0x375ac: 0x6cd7ba20, 0x375ad: 0x6cd7bc20, 0x375ae: 0x6cd7be20, 0x375af: 0x6cd7c020, - 0x375b0: 0x6cd7c220, 0x375b1: 0x6cd7c420, 0x375b2: 0x6cd7c620, 0x375b3: 0x6cd7c820, - 0x375b4: 0x6cd7ca20, 0x375b5: 0x6cd7cc20, 0x375b6: 0x6cd7ce20, 0x375b7: 0x6cd7d020, - 0x375b8: 0x6cd7d220, 0x375b9: 0x6cd7d420, 0x375ba: 0x6cd7d620, 0x375bb: 0x6cd7d820, - 0x375bc: 0x6cd7da20, 0x375bd: 0x6cd7dc20, 0x375be: 0x6cd7de20, 0x375bf: 0x6cd7e020, - // Block 0xdd7, offset 0x375c0 - 0x375c0: 0x6cd7e220, 0x375c1: 0x6cd7e420, 0x375c2: 0x6cd7e620, 0x375c3: 0x6cd7e820, - 0x375c4: 0x6cd7ea20, 0x375c5: 0x6cd7ec20, 0x375c6: 0x6cd7ee20, 0x375c7: 0x6cd7f020, - 0x375c8: 0x6cd7f220, 0x375c9: 0x6cd7f420, 0x375ca: 0x6cd7f620, 0x375cb: 0x6cd7f820, - 0x375cc: 0x6cd7fa20, 0x375cd: 0x6cd7fc20, 0x375ce: 0x6cd7fe20, 0x375cf: 0x6cd80020, - 0x375d0: 0x6cd80220, 0x375d1: 0x6cd80420, 0x375d2: 0x6d065a20, 0x375d3: 0x6d065c20, - 0x375d4: 0x6d065e20, 0x375d5: 0x6d066020, 0x375d6: 0x6d066220, 0x375d7: 0x6d066420, - 0x375d8: 0x6d066620, 0x375d9: 0x6d066820, 0x375da: 0x6d066a20, 0x375db: 0x6d066c20, - 0x375dc: 0x6d066e20, 0x375dd: 0x6d067020, 0x375de: 0x6d067220, 0x375df: 0x6d067420, - 0x375e0: 0x6d067620, 0x375e1: 0x6d067820, 0x375e2: 0x6d067a20, 0x375e3: 0x6d067c20, - 0x375e4: 0x6d067e20, 0x375e5: 0x6d068020, 0x375e6: 0x6d068220, 0x375e7: 0x6d068420, - 0x375e8: 0x6d068620, 0x375e9: 0x6d068820, 0x375ea: 0x6d068a20, 0x375eb: 0x6d068c20, - 0x375ec: 0x6d068e20, 0x375ed: 0x6d069020, 0x375ee: 0x6d069220, 0x375ef: 0x6d069420, - 0x375f0: 0x6d069620, 0x375f1: 0x6d069820, 0x375f2: 0x6d069a20, 0x375f3: 0x6d069c20, - 0x375f4: 0x6d069e20, 0x375f5: 0x6d06a020, 0x375f6: 0x6d06a220, 0x375f7: 0x6d06a420, - 0x375f8: 0x6d06a620, 0x375f9: 0x6d06a820, 0x375fa: 0x6d06aa20, 0x375fb: 0x6d06ac20, - 0x375fc: 0x6d06ae20, 0x375fd: 0x6d06b020, 0x375fe: 0x6d06b220, 0x375ff: 0x6d06b420, - // Block 0xdd8, offset 0x37600 - 0x37600: 0x6d06b620, 0x37601: 0x6d06b820, 0x37602: 0x6d06ba20, 0x37603: 0x6d06bc20, - 0x37604: 0x6d06be20, 0x37605: 0x6d06c020, 0x37606: 0x6d344020, 0x37607: 0x6d344220, - 0x37608: 0x6d344420, 0x37609: 0x6d344620, 0x3760a: 0x6d344820, 0x3760b: 0x6d344a20, - 0x3760c: 0x6d344c20, 0x3760d: 0x6d344e20, 0x3760e: 0x6d345020, 0x3760f: 0x6d345220, - 0x37610: 0x6d345420, 0x37611: 0x6d345620, 0x37612: 0x6d345820, 0x37613: 0x6d345a20, - 0x37614: 0x6d345c20, 0x37615: 0x6d345e20, 0x37616: 0x6d346020, 0x37617: 0x6d346220, - 0x37618: 0x6d346420, 0x37619: 0x6d346620, 0x3761a: 0x6d346820, 0x3761b: 0x6d346a20, - 0x3761c: 0x6d346c20, 0x3761d: 0x6d346e20, 0x3761e: 0x6d347020, 0x3761f: 0x6d347220, - 0x37620: 0x6d347420, 0x37621: 0x6d347620, 0x37622: 0x6d347820, 0x37623: 0x6d347a20, - 0x37624: 0x6d347c20, 0x37625: 0x6d347e20, 0x37626: 0x6d348020, 0x37627: 0x6d348220, - 0x37628: 0x6d348420, 0x37629: 0x6d348620, 0x3762a: 0x6d348820, 0x3762b: 0x6d348a20, - 0x3762c: 0x6d348c20, 0x3762d: 0x6d348e20, 0x3762e: 0x6d349020, 0x3762f: 0x6d349220, - 0x37630: 0x6d349420, 0x37631: 0x6d349620, 0x37632: 0x6d349820, 0x37633: 0x6d349a20, - 0x37634: 0x6d349c20, 0x37635: 0x6d349e20, 0x37636: 0x6d34a020, 0x37637: 0x6d34a220, - 0x37638: 0x6d34a420, 0x37639: 0x6d34a620, 0x3763a: 0x6d34a820, 0x3763b: 0x6d34aa20, - 0x3763c: 0x6d34ac20, 0x3763d: 0x6d34ae20, 0x3763e: 0x6d34b020, 0x3763f: 0x6d34b220, - // Block 0xdd9, offset 0x37640 - 0x37640: 0x6d60ee20, 0x37641: 0x6d60f020, 0x37642: 0x6d60f220, 0x37643: 0x6d60f420, - 0x37644: 0x6d60f620, 0x37645: 0x6d60f820, 0x37646: 0x6d60fa20, 0x37647: 0x6d60fc20, - 0x37648: 0x6d60fe20, 0x37649: 0x6d610020, 0x3764a: 0x6d610220, 0x3764b: 0x6d610420, - 0x3764c: 0x6d610620, 0x3764d: 0x6d610820, 0x3764e: 0x6d610a20, 0x3764f: 0x6d610c20, - 0x37650: 0x6d610e20, 0x37651: 0x6d611020, 0x37652: 0x6d611220, 0x37653: 0x6d611420, - 0x37654: 0x6d611620, 0x37655: 0x6d611820, 0x37656: 0x6d611a20, 0x37657: 0x6d611c20, - 0x37658: 0x6d611e20, 0x37659: 0x6d612020, 0x3765a: 0x6d612220, 0x3765b: 0x6d612420, - 0x3765c: 0x6d612620, 0x3765d: 0x6d612820, 0x3765e: 0x6d612a20, 0x3765f: 0x6d612c20, - 0x37660: 0x6d612e20, 0x37661: 0x6d613020, 0x37662: 0x6d613220, 0x37663: 0x6d613420, - 0x37664: 0x6d613620, 0x37665: 0x6d613820, 0x37666: 0x6d613a20, 0x37667: 0x6d8afc20, - 0x37668: 0x6d613c20, 0x37669: 0x6d613e20, 0x3766a: 0x6d614020, 0x3766b: 0x6d614220, - 0x3766c: 0x6d614420, 0x3766d: 0x6d614620, 0x3766e: 0x6d614820, 0x3766f: 0x6d614a20, - 0x37670: 0x6d614c20, 0x37671: 0x6d614e20, 0x37672: 0x6d615020, 0x37673: 0x6d615220, - 0x37674: 0x6d615420, 0x37675: 0x6d615620, 0x37676: 0x6d615820, 0x37677: 0x6d615a20, - 0x37678: 0x6d615c20, 0x37679: 0x6d615e20, 0x3767a: 0x6d616020, 0x3767b: 0x6d616220, - 0x3767c: 0x6d616420, 0x3767d: 0x6d616620, 0x3767e: 0x6d616820, 0x3767f: 0x6d616a20, - // Block 0xdda, offset 0x37680 - 0x37680: 0x6d616c20, 0x37681: 0x6d616e20, 0x37682: 0x6d8afe20, 0x37683: 0x6d8b0020, - 0x37684: 0x6d8b0220, 0x37685: 0x6d8b0420, 0x37686: 0x6d8b0620, 0x37687: 0x6d8b0820, - 0x37688: 0x6d8b0a20, 0x37689: 0x6d8b0c20, 0x3768a: 0x6d8b0e20, 0x3768b: 0x6d8b1020, - 0x3768c: 0x6d8b1220, 0x3768d: 0x6d8b1420, 0x3768e: 0x6d8b1620, 0x3768f: 0x6d8b1820, - 0x37690: 0x6d8b1a20, 0x37691: 0x6d8b1c20, 0x37692: 0x6d8b1e20, 0x37693: 0x6d8b2020, - 0x37694: 0x6d8b2220, 0x37695: 0x6d8b2420, 0x37696: 0x6d8b2620, 0x37697: 0x6d8b2820, - 0x37698: 0x6d8b2a20, 0x37699: 0x6d8b2c20, 0x3769a: 0x6d8b2e20, 0x3769b: 0x6d8b3020, - 0x3769c: 0x6d8b3220, 0x3769d: 0x6d8b3420, 0x3769e: 0x6d8b3620, 0x3769f: 0x6d8b3820, - 0x376a0: 0x6d8b3a20, 0x376a1: 0x6d8b3c20, 0x376a2: 0x6d8b3e20, 0x376a3: 0x6d8b4020, - 0x376a4: 0x6d8b4220, 0x376a5: 0x6d8b4420, 0x376a6: 0x6d8b4620, 0x376a7: 0x6d8b4820, - 0x376a8: 0x6d8b4a20, 0x376a9: 0x6d8b4c20, 0x376aa: 0x6d8b4e20, 0x376ab: 0x6d8b5020, - 0x376ac: 0x6d8b5220, 0x376ad: 0x6d8b5420, 0x376ae: 0x6d8b5620, 0x376af: 0x6d8b5820, - 0x376b0: 0x6d8b5a20, 0x376b1: 0x6d8b5c20, 0x376b2: 0x6d8b5e20, 0x376b3: 0x6d8b6020, - 0x376b4: 0x6d8b6220, 0x376b5: 0x6d8b6420, 0x376b6: 0x6d8b6620, 0x376b7: 0x6d8b6820, - 0x376b8: 0x6d8b6a20, 0x376b9: 0x6d8b6c20, 0x376ba: 0x6d8b6e20, 0x376bb: 0x6d8b7020, - 0x376bc: 0x6d8b7220, 0x376bd: 0x6d8b7420, 0x376be: 0x6d8b7620, 0x376bf: 0x6d8b7820, - // Block 0xddb, offset 0x376c0 - 0x376c0: 0x6d8b7a20, 0x376c1: 0x6d8b7c20, 0x376c2: 0x6daf7a20, 0x376c3: 0x6d8b7e20, - 0x376c4: 0x6d8b8020, 0x376c5: 0x6d8b8220, 0x376c6: 0x6d8b8420, 0x376c7: 0x6d8b8620, - 0x376c8: 0x6d8b8820, 0x376c9: 0x6daf7c20, 0x376ca: 0x6daf7e20, 0x376cb: 0x6daf8020, - 0x376cc: 0x6daf8220, 0x376cd: 0x6daf8420, 0x376ce: 0x6daf8620, 0x376cf: 0x6daf8820, - 0x376d0: 0x6daf8a20, 0x376d1: 0x6daf8c20, 0x376d2: 0x6daf8e20, 0x376d3: 0x6daf9020, - 0x376d4: 0x6daf9220, 0x376d5: 0x6daf9420, 0x376d6: 0x6daf9620, 0x376d7: 0x6daf9820, - 0x376d8: 0x6daf9a20, 0x376d9: 0x6daf9c20, 0x376da: 0x6daf9e20, 0x376db: 0x6dafa020, - 0x376dc: 0x6dafa220, 0x376dd: 0x6dafa420, 0x376de: 0x6dafa620, 0x376df: 0x6dafa820, - 0x376e0: 0x6dafaa20, 0x376e1: 0x6dafac20, 0x376e2: 0x6dafae20, 0x376e3: 0x6dafb020, - 0x376e4: 0x6dafb220, 0x376e5: 0x6dafb420, 0x376e6: 0x6dafb620, 0x376e7: 0x6dafb820, - 0x376e8: 0x6dafba20, 0x376e9: 0x6dafbc20, 0x376ea: 0x6dafbe20, 0x376eb: 0x6dafc020, - 0x376ec: 0x6dafc220, 0x376ed: 0x6dafc420, 0x376ee: 0x6dafc620, 0x376ef: 0x6dafc820, - 0x376f0: 0x6dafca20, 0x376f1: 0x6dafcc20, 0x376f2: 0x6dafce20, 0x376f3: 0x6dafd020, - 0x376f4: 0x6dafd220, 0x376f5: 0x6dafd420, 0x376f6: 0x6dafd620, 0x376f7: 0x6dafd820, - 0x376f8: 0x6dafda20, 0x376f9: 0x6dafdc20, 0x376fa: 0x6dafde20, 0x376fb: 0x6dafe020, - 0x376fc: 0x6dcf0020, 0x376fd: 0x6dcf0220, 0x376fe: 0x6dcf0420, 0x376ff: 0x6dcf0620, - // Block 0xddc, offset 0x37700 - 0x37700: 0x6dcf0820, 0x37701: 0x6dcf0a20, 0x37702: 0x6dcf0c20, 0x37703: 0x6dcf0e20, - 0x37704: 0x6dcf1020, 0x37705: 0x6dcf1220, 0x37706: 0x6dcf1420, 0x37707: 0x6dcf1620, - 0x37708: 0x6dcf1820, 0x37709: 0x6dcf1a20, 0x3770a: 0x6dcf1c20, 0x3770b: 0x6dcf1e20, - 0x3770c: 0x6dcf2020, 0x3770d: 0x6dcf2220, 0x3770e: 0x6dcf2420, 0x3770f: 0x6dcf2620, - 0x37710: 0x6dcf2820, 0x37711: 0x6dcf2a20, 0x37712: 0x6dcf2c20, 0x37713: 0x6dcf2e20, - 0x37714: 0x6dcf3020, 0x37715: 0x6dcf3220, 0x37716: 0x6dcf3420, 0x37717: 0x6dcf3620, - 0x37718: 0x6dcf3820, 0x37719: 0x6dcf3a20, 0x3771a: 0x6dcf3c20, 0x3771b: 0x6dcf3e20, - 0x3771c: 0x6dcf4020, 0x3771d: 0x6dcf4220, 0x3771e: 0x6dcf4420, 0x3771f: 0x6dcf4620, - 0x37720: 0x6dcf4820, 0x37721: 0x6dcf4a20, 0x37722: 0x6dcf4c20, 0x37723: 0x6dcf4e20, - 0x37724: 0x6dcf5020, 0x37725: 0x6dcf5220, 0x37726: 0x6dcf5420, 0x37727: 0x6dcf5620, - 0x37728: 0x6dcf5820, 0x37729: 0x6dcf5a20, 0x3772a: 0x6dcf5c20, 0x3772b: 0x6dcf5e20, - 0x3772c: 0x6dcf6020, 0x3772d: 0x6dcf6220, 0x3772e: 0x6dcf6420, 0x3772f: 0x6dcf6620, - 0x37730: 0x6dcf6820, 0x37731: 0x6dcf6a20, 0x37732: 0x6dcf6c20, 0x37733: 0x6dcf6e20, - 0x37734: 0x6dcf7020, 0x37735: 0x6de94220, 0x37736: 0x6de94420, 0x37737: 0x6de94620, - 0x37738: 0x6de94820, 0x37739: 0x6de94a20, 0x3773a: 0x6de94c20, 0x3773b: 0x6de94e20, - 0x3773c: 0x6de95020, 0x3773d: 0x6de95220, 0x3773e: 0x6de95420, 0x3773f: 0x6de95620, - // Block 0xddd, offset 0x37740 - 0x37740: 0x6de95820, 0x37741: 0x6de95a20, 0x37742: 0x6de95c20, 0x37743: 0x6de95e20, - 0x37744: 0x6de96020, 0x37745: 0x6de96220, 0x37746: 0x6de96420, 0x37747: 0x6de96620, - 0x37748: 0x6de96820, 0x37749: 0x6de96a20, 0x3774a: 0x6de96c20, 0x3774b: 0x6de96e20, - 0x3774c: 0x6de97020, 0x3774d: 0x6de97220, 0x3774e: 0x6de97420, 0x3774f: 0x6de97620, - 0x37750: 0x6de97820, 0x37751: 0x6de97a20, 0x37752: 0x6de97c20, 0x37753: 0x6de97e20, - 0x37754: 0x6de98020, 0x37755: 0x6de98220, 0x37756: 0x6de98420, 0x37757: 0x6de98620, - 0x37758: 0x6de98820, 0x37759: 0x6de98a20, 0x3775a: 0x6de98c20, 0x3775b: 0x6de98e20, - 0x3775c: 0x6dff5420, 0x3775d: 0x6dff5620, 0x3775e: 0x6dff5820, 0x3775f: 0x6dff5a20, - 0x37760: 0x6dff5c20, 0x37761: 0x6dff5e20, 0x37762: 0x6dff6020, 0x37763: 0x6dff6220, - 0x37764: 0x6e11c420, 0x37765: 0x6de99020, 0x37766: 0x6dff6420, 0x37767: 0x6dff6620, - 0x37768: 0x6e11c620, 0x37769: 0x6dff6820, 0x3776a: 0x6dff6a20, 0x3776b: 0x6e11c820, - 0x3776c: 0x6dff6c20, 0x3776d: 0x6dff6e20, 0x3776e: 0x6dff7020, 0x3776f: 0x6dff7220, - 0x37770: 0x6dff7420, 0x37771: 0x6dff7620, 0x37772: 0x6dff7820, 0x37773: 0x6dff7a20, - 0x37774: 0x6dff7c20, 0x37775: 0x6dff7e20, 0x37776: 0x6dff8020, 0x37777: 0x6dff8220, - 0x37778: 0x6dff8420, 0x37779: 0x6dff8620, 0x3777a: 0x6dff8820, 0x3777b: 0x6e11ca20, - 0x3777c: 0x6e11cc20, 0x3777d: 0x6e11ce20, 0x3777e: 0x6e11d020, 0x3777f: 0x6e11d220, - // Block 0xdde, offset 0x37780 - 0x37780: 0x6e11d420, 0x37781: 0x6e11d620, 0x37782: 0x6e200c20, 0x37783: 0x6e11d820, - 0x37784: 0x6e11da20, 0x37785: 0x6e11dc20, 0x37786: 0x6e11de20, 0x37787: 0x6e11e020, - 0x37788: 0x6e11e220, 0x37789: 0x6e11e420, 0x3778a: 0x6e11e620, 0x3778b: 0x6e11e820, - 0x3778c: 0x6e11ea20, 0x3778d: 0x6e11ec20, 0x3778e: 0x6e11ee20, 0x3778f: 0x6e11f020, - 0x37790: 0x6e11f220, 0x37791: 0x6e11f420, 0x37792: 0x6e11f620, 0x37793: 0x6e11f820, - 0x37794: 0x6e200e20, 0x37795: 0x6e201020, 0x37796: 0x6e201220, 0x37797: 0x6e201420, - 0x37798: 0x6e201620, 0x37799: 0x6e201820, 0x3779a: 0x6e201a20, 0x3779b: 0x6e201c20, - 0x3779c: 0x6e201e20, 0x3779d: 0x6e202020, 0x3779e: 0x6e202220, 0x3779f: 0x6e202420, - 0x377a0: 0x6e202620, 0x377a1: 0x6e202820, 0x377a2: 0x6e202a20, 0x377a3: 0x6e202c20, - 0x377a4: 0x6e202e20, 0x377a5: 0x6e203020, 0x377a6: 0x6e203220, 0x377a7: 0x6e2b1e20, - 0x377a8: 0x6e2b2020, 0x377a9: 0x6e2b2220, 0x377aa: 0x6e2b2420, 0x377ab: 0x6e2b2620, - 0x377ac: 0x6e2b2820, 0x377ad: 0x6e2b2a20, 0x377ae: 0x6e2b2c20, 0x377af: 0x6e2b2e20, - 0x377b0: 0x6e339420, 0x377b1: 0x6e339620, 0x377b2: 0x6e339820, 0x377b3: 0x6e339a20, - 0x377b4: 0x6e339c20, 0x377b5: 0x6e339e20, 0x377b6: 0x6e33a020, 0x377b7: 0x6e33a220, - 0x377b8: 0x6e39a020, 0x377b9: 0x6e33a420, 0x377ba: 0x6e39a220, 0x377bb: 0x6e39a420, - 0x377bc: 0x6e3dce20, 0x377bd: 0x6e3dd020, 0x377be: 0x6e40aa20, 0x377bf: 0x6e40ac20, - // Block 0xddf, offset 0x377c0 - 0x377c0: 0x6e40ae20, 0x377c1: 0x6e40b020, 0x377c2: 0x6e40b220, 0x377c3: 0x6e42e020, - 0x377c4: 0x6e42e220, 0x377c5: 0x6e445c20, 0x377c6: 0x6e453c20, 0x377c7: 0x6e45ca20, - 0x377c8: 0x6c3dfa20, 0x377c9: 0x6c5cb820, 0x377ca: 0x6c80b020, 0x377cb: 0x6c80b220, - 0x377cc: 0x6c80b420, 0x377cd: 0x6ca9d420, 0x377ce: 0x6ca9d620, 0x377cf: 0x6ca9d820, - 0x377d0: 0x6ca9da20, 0x377d1: 0x6cd84020, 0x377d2: 0x6cd84220, 0x377d3: 0x6cd84420, - 0x377d4: 0x6cd84620, 0x377d5: 0x6cd84820, 0x377d6: 0x6d06e620, 0x377d7: 0x6d06e820, - 0x377d8: 0x6d06ea20, 0x377d9: 0x6d06ec20, 0x377da: 0x6d34d620, 0x377db: 0x6d618820, - 0x377dc: 0x6d618a20, 0x377dd: 0x6d618c20, 0x377de: 0x6d8ba020, 0x377df: 0x6d8ba220, - 0x377e0: 0x6dafec20, 0x377e1: 0x6dafee20, 0x377e2: 0x6c143220, 0x377e3: 0x6c5cc820, - 0x377e4: 0x6c5cca20, 0x377e5: 0x6c5ccc20, 0x377e6: 0x6c80cc20, 0x377e7: 0x6c80ce20, - 0x377e8: 0x6c80d020, 0x377e9: 0x6ca9f220, 0x377ea: 0x6ca9f420, 0x377eb: 0x6ca9f620, - 0x377ec: 0x6ca9f820, 0x377ed: 0x6ca9fa20, 0x377ee: 0x6ca9fc20, 0x377ef: 0x6cd85a20, - 0x377f0: 0x6cd85c20, 0x377f1: 0x6cd85e20, 0x377f2: 0x6cd86020, 0x377f3: 0x6cd86220, - 0x377f4: 0x6d06f220, 0x377f5: 0x6d06f420, 0x377f6: 0x6d06f620, 0x377f7: 0x6d06f820, - 0x377f8: 0x6d34e820, 0x377f9: 0x6d34ea20, 0x377fa: 0x6d34ec20, 0x377fb: 0x6d34ee20, - 0x377fc: 0x6d34f020, 0x377fd: 0x6d34f220, 0x377fe: 0x6d34f420, 0x377ff: 0x6d34f620, - // Block 0xde0, offset 0x37800 - 0x37800: 0x6d34f820, 0x37801: 0x6d619220, 0x37802: 0x6d619420, 0x37803: 0x6d619620, - 0x37804: 0x6d619820, 0x37805: 0x6d619a20, 0x37806: 0x6d619c20, 0x37807: 0x6d619e20, - 0x37808: 0x6d8baa20, 0x37809: 0x6d8bac20, 0x3780a: 0x6d8bae20, 0x3780b: 0x6d8bb020, - 0x3780c: 0x6d8bb220, 0x3780d: 0x6d8bb420, 0x3780e: 0x6d8bb620, 0x3780f: 0x6daffa20, - 0x37810: 0x6daffc20, 0x37811: 0x6daffe20, 0x37812: 0x6db00020, 0x37813: 0x6db00220, - 0x37814: 0x6db00420, 0x37815: 0x6dcf8220, 0x37816: 0x6dcf8420, 0x37817: 0x6dcf8620, - 0x37818: 0x6dcf8820, 0x37819: 0x6de9aa20, 0x3781a: 0x6de9ac20, 0x3781b: 0x6de9ae20, - 0x3781c: 0x6de9b020, 0x3781d: 0x6dff9220, 0x3781e: 0x6dff9420, 0x3781f: 0x6e120420, - 0x37820: 0x6e120620, 0x37821: 0x6e203e20, 0x37822: 0x6e2b3420, 0x37823: 0x6e2b3620, - 0x37824: 0x6e2b3820, 0x37825: 0x6e33aa20, 0x37826: 0x6e33ac20, 0x37827: 0x6e3dd420, - 0x37828: 0x6e40b620, 0x37829: 0x6e45cc20, 0x3782a: 0x6c0a4c20, 0x3782b: 0x6c0a4e20, - 0x3782c: 0x6c25cc20, 0x3782d: 0x6c0a5020, 0x3782e: 0x6c25ce20, 0x3782f: 0x6c143620, - 0x37830: 0x6c0a5220, 0x37831: 0x6c25d020, 0x37832: 0x6c25d220, 0x37833: 0x6c25d420, - 0x37834: 0x6c25d620, 0x37835: 0x6c25d820, 0x37836: 0x6c25da20, 0x37837: 0x6c3e0a20, - 0x37838: 0x6c3e0c20, 0x37839: 0x6c3e0e20, 0x3783a: 0x6c3e1020, 0x3783b: 0x6c3e1220, - 0x3783c: 0x6c3e1420, 0x3783d: 0x6c3e1620, 0x3783e: 0x6c3e1820, 0x3783f: 0x6c3e1a20, - // Block 0xde1, offset 0x37840 - 0x37840: 0x6c3e1c20, 0x37841: 0x6c5cda20, 0x37842: 0x6c5cdc20, 0x37843: 0x6c5cde20, - 0x37844: 0x6c5ce020, 0x37845: 0x6c5ce220, 0x37846: 0x6c5ce420, 0x37847: 0x6c5ce620, - 0x37848: 0x6c5ce820, 0x37849: 0x6c5cea20, 0x3784a: 0x6c5cec20, 0x3784b: 0x6c5cee20, - 0x3784c: 0x6c5cf020, 0x3784d: 0x6c5cf220, 0x3784e: 0x6c80e820, 0x3784f: 0x6c80ea20, - 0x37850: 0x6c80ec20, 0x37851: 0x6c80ee20, 0x37852: 0x6c80f020, 0x37853: 0x6c80f220, - 0x37854: 0x6c80f420, 0x37855: 0x6c80f620, 0x37856: 0x6c80f820, 0x37857: 0x6c80fa20, - 0x37858: 0x6c80fc20, 0x37859: 0x6c80fe20, 0x3785a: 0x6c810020, 0x3785b: 0x6c810220, - 0x3785c: 0x6c810420, 0x3785d: 0x6c810620, 0x3785e: 0x6c810820, 0x3785f: 0x6c810a20, - 0x37860: 0x6c810c20, 0x37861: 0x6c810e20, 0x37862: 0x6c811020, 0x37863: 0x6c811220, - 0x37864: 0x6c6dd220, 0x37865: 0x6c811420, 0x37866: 0x6c811620, 0x37867: 0x6c811820, - 0x37868: 0x6c811a20, 0x37869: 0x6c811c20, 0x3786a: 0x6caa0220, 0x3786b: 0x6caa0420, - 0x3786c: 0x6caa0620, 0x3786d: 0x6caa0820, 0x3786e: 0x6caa0a20, 0x3786f: 0x6caa0c20, - 0x37870: 0x6caa0e20, 0x37871: 0x6caa1020, 0x37872: 0x6caa1220, 0x37873: 0x6c811e20, - 0x37874: 0x6caa1420, 0x37875: 0x6caa1620, 0x37876: 0x6caa1820, 0x37877: 0x6caa1a20, - 0x37878: 0x6caa1c20, 0x37879: 0x6caa1e20, 0x3787a: 0x6caa2020, 0x3787b: 0x6caa2220, - 0x3787c: 0x6cd86e20, 0x3787d: 0x6cd87020, 0x3787e: 0x6cd87220, 0x3787f: 0x6cd87420, - // Block 0xde2, offset 0x37880 - 0x37880: 0x6cd87620, 0x37881: 0x6cd87820, 0x37882: 0x6cd87a20, 0x37883: 0x6cd87c20, - 0x37884: 0x6cd87e20, 0x37885: 0x6d071420, 0x37886: 0x6d071620, 0x37887: 0x6d071820, - 0x37888: 0x6d071a20, 0x37889: 0x6d071c20, 0x3788a: 0x6d071e20, 0x3788b: 0x6d072020, - 0x3788c: 0x6d072220, 0x3788d: 0x6d072420, 0x3788e: 0x6d072620, 0x3788f: 0x6d072820, - 0x37890: 0x6d072a20, 0x37891: 0x6cd88020, 0x37892: 0x6d072c20, 0x37893: 0x6d072e20, - 0x37894: 0x6d073020, 0x37895: 0x6d073220, 0x37896: 0x6d073420, 0x37897: 0x6d073620, - 0x37898: 0x6d073820, 0x37899: 0x6d073a20, 0x3789a: 0x6d073c20, 0x3789b: 0x6d073e20, - 0x3789c: 0x6d074020, 0x3789d: 0x6d350a20, 0x3789e: 0x6d350c20, 0x3789f: 0x6d350e20, - 0x378a0: 0x6d351020, 0x378a1: 0x6d351220, 0x378a2: 0x6d351420, 0x378a3: 0x6d351620, - 0x378a4: 0x6d351820, 0x378a5: 0x6d351a20, 0x378a6: 0x6d351c20, 0x378a7: 0x6d351e20, - 0x378a8: 0x6d352020, 0x378a9: 0x6d352220, 0x378aa: 0x6d217020, 0x378ab: 0x6d352420, - 0x378ac: 0x6d352620, 0x378ad: 0x6d352820, 0x378ae: 0x6d352a20, 0x378af: 0x6d61ac20, - 0x378b0: 0x6d61ae20, 0x378b1: 0x6d61b020, 0x378b2: 0x6d61b220, 0x378b3: 0x6d61b420, - 0x378b4: 0x6d61b620, 0x378b5: 0x6d61b820, 0x378b6: 0x6d61ba20, 0x378b7: 0x6d61bc20, - 0x378b8: 0x6d61be20, 0x378b9: 0x6d61c020, 0x378ba: 0x6d61c220, 0x378bb: 0x6d61c420, - 0x378bc: 0x6d61c620, 0x378bd: 0x6d8bc620, 0x378be: 0x6d8bc820, 0x378bf: 0x6d8bca20, - // Block 0xde3, offset 0x378c0 - 0x378c0: 0x6d8bcc20, 0x378c1: 0x6d8bce20, 0x378c2: 0x6d8bd020, 0x378c3: 0x6d8bd220, - 0x378c4: 0x6d8bd420, 0x378c5: 0x6d8bd620, 0x378c6: 0x6d8bd820, 0x378c7: 0x6d8bda20, - 0x378c8: 0x6d8bdc20, 0x378c9: 0x6d8bde20, 0x378ca: 0x6d8be020, 0x378cb: 0x6d8be220, - 0x378cc: 0x6d8be420, 0x378cd: 0x6d8be620, 0x378ce: 0x6d8be820, 0x378cf: 0x6d8bea20, - 0x378d0: 0x6d8bec20, 0x378d1: 0x6d8bee20, 0x378d2: 0x6db01020, 0x378d3: 0x6db01220, - 0x378d4: 0x6db01420, 0x378d5: 0x6db01620, 0x378d6: 0x6db01820, 0x378d7: 0x6db01a20, - 0x378d8: 0x6db01c20, 0x378d9: 0x6db01e20, 0x378da: 0x6db02020, 0x378db: 0x6db02220, - 0x378dc: 0x6db02420, 0x378dd: 0x6db02620, 0x378de: 0x6db02820, 0x378df: 0x6dcf9020, - 0x378e0: 0x6dcf9220, 0x378e1: 0x6dcf9420, 0x378e2: 0x6dcf9620, 0x378e3: 0x6dcf9820, - 0x378e4: 0x6dcf9a20, 0x378e5: 0x6dcf9c20, 0x378e6: 0x6dcf9e20, 0x378e7: 0x6dcfa020, - 0x378e8: 0x6dcfa220, 0x378e9: 0x6dcfb220, 0x378ea: 0x6de9be20, 0x378eb: 0x6de9c020, - 0x378ec: 0x6de9c220, 0x378ed: 0x6de9c420, 0x378ee: 0x6de9c620, 0x378ef: 0x6de9c820, - 0x378f0: 0x6de9ca20, 0x378f1: 0x6de9cc20, 0x378f2: 0x6de9ce20, 0x378f3: 0x6de9d020, - 0x378f4: 0x6de9d220, 0x378f5: 0x6dff9620, 0x378f6: 0x6dff9820, 0x378f7: 0x6dff9a20, - 0x378f8: 0x6dff9c20, 0x378f9: 0x6dff9e20, 0x378fa: 0x6dffa020, 0x378fb: 0x6e120a20, - 0x378fc: 0x6e120c20, 0x378fd: 0x6e2b3a20, 0x378fe: 0x6e33b420, 0x378ff: 0x6e33b620, - // Block 0xde4, offset 0x37900 - 0x37900: 0x6e33b820, 0x37901: 0x6e33ba20, 0x37902: 0x6e33bc20, 0x37903: 0x6e33be20, - 0x37904: 0x6e33c020, 0x37905: 0x6e33c220, 0x37906: 0x6e3dd620, 0x37907: 0x6e40b820, - 0x37908: 0x6e42e420, 0x37909: 0x6e42e620, 0x3790a: 0x6e42e820, 0x3790b: 0x6c143c20, - 0x3790c: 0x6c143e20, 0x3790d: 0x6c144020, 0x3790e: 0x6c3e2620, 0x3790f: 0x6c3e2820, - 0x37910: 0x6c3e2a20, 0x37911: 0x6c5cfe20, 0x37912: 0x6c5d0020, 0x37913: 0x6c5d0220, - 0x37914: 0x6c5d0420, 0x37915: 0x6c5d0620, 0x37916: 0x6c5d0820, 0x37917: 0x6c813820, - 0x37918: 0x6c813a20, 0x37919: 0x6c813c20, 0x3791a: 0x6c813e20, 0x3791b: 0x6c814020, - 0x3791c: 0x6c814220, 0x3791d: 0x6c814420, 0x3791e: 0x6c814620, 0x3791f: 0x6c814820, - 0x37920: 0x6c814a20, 0x37921: 0x6c814c20, 0x37922: 0x6c814e20, 0x37923: 0x6c815020, - 0x37924: 0x6c815220, 0x37925: 0x6caa4020, 0x37926: 0x6caa4220, 0x37927: 0x6caa4420, - 0x37928: 0x6caa4620, 0x37929: 0x6caa4820, 0x3792a: 0x6caa4a20, 0x3792b: 0x6caa4c20, - 0x3792c: 0x6caa4e20, 0x3792d: 0x6caa5020, 0x3792e: 0x6c815420, 0x3792f: 0x6caa5220, - 0x37930: 0x6caa5420, 0x37931: 0x6caa5620, 0x37932: 0x6caa5820, 0x37933: 0x6caa5a20, - 0x37934: 0x6caa5c20, 0x37935: 0x6caa5e20, 0x37936: 0x6caa6020, 0x37937: 0x6caa6220, - 0x37938: 0x6caa6420, 0x37939: 0x6cd88e20, 0x3793a: 0x6cd89020, 0x3793b: 0x6cd89220, - 0x3793c: 0x6cd89420, 0x3793d: 0x6cd89620, 0x3793e: 0x6cd89820, 0x3793f: 0x6cd89a20, - // Block 0xde5, offset 0x37940 - 0x37940: 0x6cd89c20, 0x37941: 0x6cd89e20, 0x37942: 0x6cd8a020, 0x37943: 0x6cd8a220, - 0x37944: 0x6cd8a420, 0x37945: 0x6cba3e20, 0x37946: 0x6d075820, 0x37947: 0x6d075a20, - 0x37948: 0x6d075c20, 0x37949: 0x6d075e20, 0x3794a: 0x6d076020, 0x3794b: 0x6d076220, - 0x3794c: 0x6d076420, 0x3794d: 0x6d076620, 0x3794e: 0x6d076820, 0x3794f: 0x6d076a20, - 0x37950: 0x6d076c20, 0x37951: 0x6d076e20, 0x37952: 0x6d077020, 0x37953: 0x6d077220, - 0x37954: 0x6d077420, 0x37955: 0x6d077620, 0x37956: 0x6d077820, 0x37957: 0x6d353a20, - 0x37958: 0x6d353c20, 0x37959: 0x6d353e20, 0x3795a: 0x6d354020, 0x3795b: 0x6d354220, - 0x3795c: 0x6d354420, 0x3795d: 0x6d354620, 0x3795e: 0x6d354820, 0x3795f: 0x6d354a20, - 0x37960: 0x6d354c20, 0x37961: 0x6d354e20, 0x37962: 0x6d61d620, 0x37963: 0x6d61d820, - 0x37964: 0x6d61da20, 0x37965: 0x6d61dc20, 0x37966: 0x6d61de20, 0x37967: 0x6d61e020, - 0x37968: 0x6d61e220, 0x37969: 0x6d61e420, 0x3796a: 0x6d61e620, 0x3796b: 0x6d61e820, - 0x3796c: 0x6d61ea20, 0x3796d: 0x6d61ec20, 0x3796e: 0x6d61ee20, 0x3796f: 0x6d8bfa20, - 0x37970: 0x6d8bfc20, 0x37971: 0x6d8bfe20, 0x37972: 0x6d8c0020, 0x37973: 0x6d8c0220, - 0x37974: 0x6d8c0420, 0x37975: 0x6d8c0620, 0x37976: 0x6d8c0820, 0x37977: 0x6db02e20, - 0x37978: 0x6db03020, 0x37979: 0x6db03220, 0x3797a: 0x6db03420, 0x3797b: 0x6db03620, - 0x3797c: 0x6db03820, 0x3797d: 0x6db03a20, 0x3797e: 0x6db03c20, 0x3797f: 0x6db03e20, - // Block 0xde6, offset 0x37980 - 0x37980: 0x6db04020, 0x37981: 0x6db04220, 0x37982: 0x6db04420, 0x37983: 0x6db04620, - 0x37984: 0x6db04820, 0x37985: 0x6dcfb420, 0x37986: 0x6dcfb620, 0x37987: 0x6dcfb820, - 0x37988: 0x6dcfba20, 0x37989: 0x6dcfbc20, 0x3798a: 0x6dcfbe20, 0x3798b: 0x6dcfc020, - 0x3798c: 0x6dcfc220, 0x3798d: 0x6dcfc420, 0x3798e: 0x6dcfc620, 0x3798f: 0x6dcfc820, - 0x37990: 0x6dcfca20, 0x37991: 0x6dcfcc20, 0x37992: 0x6dcfce20, 0x37993: 0x6dcfd020, - 0x37994: 0x6dcfd220, 0x37995: 0x6de9de20, 0x37996: 0x6de9e020, 0x37997: 0x6de9e220, - 0x37998: 0x6de9e420, 0x37999: 0x6de9e620, 0x3799a: 0x6de9e820, 0x3799b: 0x6de9ea20, - 0x3799c: 0x6dffa420, 0x3799d: 0x6dffa620, 0x3799e: 0x6dffa820, 0x3799f: 0x6dffaa20, - 0x379a0: 0x6dffac20, 0x379a1: 0x6dffae20, 0x379a2: 0x6e121620, 0x379a3: 0x6e121820, - 0x379a4: 0x6e121a20, 0x379a5: 0x6e121c20, 0x379a6: 0x6e121e20, 0x379a7: 0x6e122020, - 0x379a8: 0x6e204420, 0x379a9: 0x6e204620, 0x379aa: 0x6e2b3c20, 0x379ab: 0x6e2b3e20, - 0x379ac: 0x6e33c420, 0x379ad: 0x6e39a820, 0x379ae: 0x6e3dd820, 0x379af: 0x6e40bc20, - 0x379b0: 0x6e453e20, 0x379b1: 0x6e454020, 0x379b2: 0x6c3e2e20, 0x379b3: 0x6c25de20, - 0x379b4: 0x6c5d1020, 0x379b5: 0x6c5d1220, 0x379b6: 0x6c5d1420, 0x379b7: 0x6c5d1620, - 0x379b8: 0x6c5d1820, 0x379b9: 0x6c5d1a20, 0x379ba: 0x6c5d1c20, 0x379bb: 0x6c5d1e20, - 0x379bc: 0x6c5d2020, 0x379bd: 0x6c5d2220, 0x379be: 0x6c5d2420, 0x379bf: 0x6c5d2620, - // Block 0xde7, offset 0x379c0 - 0x379c0: 0x6c5d2820, 0x379c1: 0x6c5d2a20, 0x379c2: 0x6c816820, 0x379c3: 0x6c816a20, - 0x379c4: 0x6c816c20, 0x379c5: 0x6c816e20, 0x379c6: 0x6c817020, 0x379c7: 0x6c817220, - 0x379c8: 0x6c817420, 0x379c9: 0x6c817620, 0x379ca: 0x6c817820, 0x379cb: 0x6c817a20, - 0x379cc: 0x6c817c20, 0x379cd: 0x6c817e20, 0x379ce: 0x6c818020, 0x379cf: 0x6c818220, - 0x379d0: 0x6c818420, 0x379d1: 0x6c818620, 0x379d2: 0x6c818820, 0x379d3: 0x6c818a20, - 0x379d4: 0x6c818c20, 0x379d5: 0x6caa9420, 0x379d6: 0x6caa9620, 0x379d7: 0x6caa9820, - 0x379d8: 0x6caa9a20, 0x379d9: 0x6caa9c20, 0x379da: 0x6caa9e20, 0x379db: 0x6caaa020, - 0x379dc: 0x6caaa220, 0x379dd: 0x6caaa420, 0x379de: 0x6caaa620, 0x379df: 0x6caaa820, - 0x379e0: 0x6caaaa20, 0x379e1: 0x6caaac20, 0x379e2: 0x6caaae20, 0x379e3: 0x6cd8c220, - 0x379e4: 0x6cd8c420, 0x379e5: 0x6cd8c620, 0x379e6: 0x6cd8c820, 0x379e7: 0x6cd8ca20, - 0x379e8: 0x6cd8cc20, 0x379e9: 0x6cd8ce20, 0x379ea: 0x6cd8d020, 0x379eb: 0x6cd8d220, - 0x379ec: 0x6cd8d420, 0x379ed: 0x6cd8d620, 0x379ee: 0x6cd8d820, 0x379ef: 0x6cd8da20, - 0x379f0: 0x6cd8dc20, 0x379f1: 0x6cd8de20, 0x379f2: 0x6cd8e020, 0x379f3: 0x6cd8e220, - 0x379f4: 0x6cd8e420, 0x379f5: 0x6cd8e620, 0x379f6: 0x6cd8e820, 0x379f7: 0x6cd8ea20, - 0x379f8: 0x6d078a20, 0x379f9: 0x6d078c20, 0x379fa: 0x6d078e20, 0x379fb: 0x6d079020, - 0x379fc: 0x6d079220, 0x379fd: 0x6d079420, 0x379fe: 0x6d079620, 0x379ff: 0x6d079820, - // Block 0xde8, offset 0x37a00 - 0x37a00: 0x6d079a20, 0x37a01: 0x6d079c20, 0x37a02: 0x6d079e20, 0x37a03: 0x6d07a020, - 0x37a04: 0x6d07a220, 0x37a05: 0x6d356820, 0x37a06: 0x6d07a420, 0x37a07: 0x6d356a20, - 0x37a08: 0x6d356c20, 0x37a09: 0x6d356e20, 0x37a0a: 0x6d357020, 0x37a0b: 0x6d357220, - 0x37a0c: 0x6d357420, 0x37a0d: 0x6d357620, 0x37a0e: 0x6d357820, 0x37a0f: 0x6d357a20, - 0x37a10: 0x6d357c20, 0x37a11: 0x6d231e20, 0x37a12: 0x6d357e20, 0x37a13: 0x6d358020, - 0x37a14: 0x6d358220, 0x37a15: 0x6d358420, 0x37a16: 0x6d358620, 0x37a17: 0x6d358820, - 0x37a18: 0x6d620620, 0x37a19: 0x6d620820, 0x37a1a: 0x6d620a20, 0x37a1b: 0x6d620c20, - 0x37a1c: 0x6d620e20, 0x37a1d: 0x6d621020, 0x37a1e: 0x6d621220, 0x37a1f: 0x6d621420, - 0x37a20: 0x6d621620, 0x37a21: 0x6d621820, 0x37a22: 0x6d621a20, 0x37a23: 0x6d621c20, - 0x37a24: 0x6d621e20, 0x37a25: 0x6d622020, 0x37a26: 0x6d622220, 0x37a27: 0x6d622420, - 0x37a28: 0x6d622620, 0x37a29: 0x6d622820, 0x37a2a: 0x6d622a20, 0x37a2b: 0x6d622c20, - 0x37a2c: 0x6d622e20, 0x37a2d: 0x6d623020, 0x37a2e: 0x6d623220, 0x37a2f: 0x6d623420, - 0x37a30: 0x6d8c1820, 0x37a31: 0x6d8c1a20, 0x37a32: 0x6d8c1c20, 0x37a33: 0x6d8c1e20, - 0x37a34: 0x6d8c2020, 0x37a35: 0x6d8c2220, 0x37a36: 0x6d8c2420, 0x37a37: 0x6d8c2620, - 0x37a38: 0x6d8c2820, 0x37a39: 0x6d8c2a20, 0x37a3a: 0x6d8c2c20, 0x37a3b: 0x6d623620, - 0x37a3c: 0x6d8c2e20, 0x37a3d: 0x6d8c3020, 0x37a3e: 0x6d8c3220, 0x37a3f: 0x6d8c3420, - // Block 0xde9, offset 0x37a40 - 0x37a40: 0x6d8c3620, 0x37a41: 0x6d8c3820, 0x37a42: 0x6d8c3a20, 0x37a43: 0x6db05c20, - 0x37a44: 0x6db05e20, 0x37a45: 0x6db06020, 0x37a46: 0x6db06220, 0x37a47: 0x6db06420, - 0x37a48: 0x6db06620, 0x37a49: 0x6db06820, 0x37a4a: 0x6db06a20, 0x37a4b: 0x6db06c20, - 0x37a4c: 0x6db06e20, 0x37a4d: 0x6dcfe820, 0x37a4e: 0x6dcfea20, 0x37a4f: 0x6dcfec20, - 0x37a50: 0x6dcfee20, 0x37a51: 0x6dcff020, 0x37a52: 0x6dcff220, 0x37a53: 0x6dcff420, - 0x37a54: 0x6dcff620, 0x37a55: 0x6dcff820, 0x37a56: 0x6dcffa20, 0x37a57: 0x6dcffc20, - 0x37a58: 0x6dcffe20, 0x37a59: 0x6dd00020, 0x37a5a: 0x6dd00220, 0x37a5b: 0x6dd00420, - 0x37a5c: 0x6de9f020, 0x37a5d: 0x6de9f220, 0x37a5e: 0x6d8c3c20, 0x37a5f: 0x6dd00620, - 0x37a60: 0x6de9f420, 0x37a61: 0x6de9f620, 0x37a62: 0x6dffb820, 0x37a63: 0x6dffba20, - 0x37a64: 0x6dffbc20, 0x37a65: 0x6dffbe20, 0x37a66: 0x6e122420, 0x37a67: 0x6e204c20, - 0x37a68: 0x6e122620, 0x37a69: 0x6e122820, 0x37a6a: 0x6dffc020, 0x37a6b: 0x6dffc220, - 0x37a6c: 0x6e122a20, 0x37a6d: 0x6e204e20, 0x37a6e: 0x6e205020, 0x37a6f: 0x6e205220, - 0x37a70: 0x6e33c620, 0x37a71: 0x6c25e020, 0x37a72: 0x6c25e220, 0x37a73: 0x6c3e3020, - 0x37a74: 0x6c3e3220, 0x37a75: 0x6c3e3420, 0x37a76: 0x6c5d3020, 0x37a77: 0x6c5d3220, - 0x37a78: 0x6c5d3420, 0x37a79: 0x6c5d3620, 0x37a7a: 0x6c819420, 0x37a7b: 0x6c819620, - 0x37a7c: 0x6c819820, 0x37a7d: 0x6c819a20, 0x37a7e: 0x6c819c20, 0x37a7f: 0x6c819e20, - // Block 0xdea, offset 0x37a80 - 0x37a80: 0x6caab620, 0x37a81: 0x6d07aa20, 0x37a82: 0x6d358e20, 0x37a83: 0x6db07220, - 0x37a84: 0x6d623c20, 0x37a85: 0x6d623e20, 0x37a86: 0x6d8c4220, 0x37a87: 0x6d8c4420, - 0x37a88: 0x6db07420, 0x37a89: 0x6db07620, 0x37a8a: 0x6dd00c20, 0x37a8b: 0x6e2b4020, - 0x37a8c: 0x6e2b4220, 0x37a8d: 0x6e3dda20, 0x37a8e: 0x6c3e3820, 0x37a8f: 0x6c3e3a20, - 0x37a90: 0x6c144a20, 0x37a91: 0x6c3e3c20, 0x37a92: 0x6c81a820, 0x37a93: 0x6caab820, - 0x37a94: 0x6cd8fa20, 0x37a95: 0x6cd8fc20, 0x37a96: 0x6d07ae20, 0x37a97: 0x6d359220, - 0x37a98: 0x6d624220, 0x37a99: 0x6d624420, 0x37a9a: 0x6d624620, 0x37a9b: 0x6d624820, - 0x37a9c: 0x6d624a20, 0x37a9d: 0x6d8c4620, 0x37a9e: 0x6d8c4820, 0x37a9f: 0x6db07820, - 0x37aa0: 0x6db07a20, 0x37aa1: 0x6db07c20, 0x37aa2: 0x6e205620, 0x37aa3: 0x6e33c820, - 0x37aa4: 0x6c144e20, 0x37aa5: 0x6c3e4020, 0x37aa6: 0x6c3e4220, 0x37aa7: 0x6c3e4420, - 0x37aa8: 0x6c5d4c20, 0x37aa9: 0x6c5d4e20, 0x37aaa: 0x6c5d5020, 0x37aab: 0x6c81b420, - 0x37aac: 0x6caac820, 0x37aad: 0x6caaca20, 0x37aae: 0x6caacc20, 0x37aaf: 0x6cd90020, - 0x37ab0: 0x6cd90220, 0x37ab1: 0x6cd90420, 0x37ab2: 0x6cd90620, 0x37ab3: 0x6cd90820, - 0x37ab4: 0x6d07b820, 0x37ab5: 0x6d07ba20, 0x37ab6: 0x6d07bc20, 0x37ab7: 0x6d35a420, - 0x37ab8: 0x6d35a620, 0x37ab9: 0x6d35a820, 0x37aba: 0x6d35aa20, 0x37abb: 0x6d35ac20, - 0x37abc: 0x6d35ae20, 0x37abd: 0x6d35b020, 0x37abe: 0x6d35b220, 0x37abf: 0x6d35b420, - // Block 0xdeb, offset 0x37ac0 - 0x37ac0: 0x6d35b620, 0x37ac1: 0x6d35b820, 0x37ac2: 0x6d625420, 0x37ac3: 0x6d625620, - 0x37ac4: 0x6d625820, 0x37ac5: 0x6d625a20, 0x37ac6: 0x6d625c20, 0x37ac7: 0x6d625e20, - 0x37ac8: 0x6d626020, 0x37ac9: 0x6d626220, 0x37aca: 0x6d626420, 0x37acb: 0x6d8c5020, - 0x37acc: 0x6d8c5220, 0x37acd: 0x6d8c5420, 0x37ace: 0x6d8c5620, 0x37acf: 0x6d8c5820, - 0x37ad0: 0x6d8c5a20, 0x37ad1: 0x6d8c5c20, 0x37ad2: 0x6d8c5e20, 0x37ad3: 0x6db08820, - 0x37ad4: 0x6db08a20, 0x37ad5: 0x6db08c20, 0x37ad6: 0x6db08e20, 0x37ad7: 0x6db09020, - 0x37ad8: 0x6db09220, 0x37ad9: 0x6db09420, 0x37ada: 0x6db09620, 0x37adb: 0x6dd01620, - 0x37adc: 0x6dd01820, 0x37add: 0x6dd01a20, 0x37ade: 0x6dd01c20, 0x37adf: 0x6de9f820, - 0x37ae0: 0x6dd01e20, 0x37ae1: 0x6dd02020, 0x37ae2: 0x6dd02220, 0x37ae3: 0x6dd02420, - 0x37ae4: 0x6dd02620, 0x37ae5: 0x6de9fa20, 0x37ae6: 0x6de9fc20, 0x37ae7: 0x6de9fe20, - 0x37ae8: 0x6dea0020, 0x37ae9: 0x6e123020, 0x37aea: 0x6e123220, 0x37aeb: 0x6e33ca20, - 0x37aec: 0x6e33cc20, 0x37aed: 0x6e39aa20, 0x37aee: 0x6c25e820, 0x37aef: 0x6c3e4820, - 0x37af0: 0x6c3e4a20, 0x37af1: 0x6c3e4c20, 0x37af2: 0x6c3e4e20, 0x37af3: 0x6c3e5020, - 0x37af4: 0x6c3e5220, 0x37af5: 0x6c3e5420, 0x37af6: 0x6c3e5620, 0x37af7: 0x6c5d5620, - 0x37af8: 0x6c5d5820, 0x37af9: 0x6c5d5a20, 0x37afa: 0x6c5d5c20, 0x37afb: 0x6c5d5e20, - 0x37afc: 0x6c81d020, 0x37afd: 0x6c81d220, 0x37afe: 0x6c81d420, 0x37aff: 0x6c81d620, - // Block 0xdec, offset 0x37b00 - 0x37b00: 0x6c81d820, 0x37b01: 0x6c81da20, 0x37b02: 0x6c81dc20, 0x37b03: 0x6c81de20, - 0x37b04: 0x6c81e020, 0x37b05: 0x6c81e220, 0x37b06: 0x6c81e420, 0x37b07: 0x6c81e620, - 0x37b08: 0x6c81e820, 0x37b09: 0x6c81ea20, 0x37b0a: 0x6c81ec20, 0x37b0b: 0x6c81ee20, - 0x37b0c: 0x6c81f020, 0x37b0d: 0x6c81f220, 0x37b0e: 0x6c81f420, 0x37b0f: 0x6c81f620, - 0x37b10: 0x6caaea20, 0x37b11: 0x6caaec20, 0x37b12: 0x6caaee20, 0x37b13: 0x6caaf020, - 0x37b14: 0x6caaf220, 0x37b15: 0x6caaf420, 0x37b16: 0x6caaf620, 0x37b17: 0x6caaf820, - 0x37b18: 0x6caafa20, 0x37b19: 0x6caafc20, 0x37b1a: 0x6caafe20, 0x37b1b: 0x6cab0020, - 0x37b1c: 0x6cab0220, 0x37b1d: 0x6cab0420, 0x37b1e: 0x6cab0620, 0x37b1f: 0x6cab0820, - 0x37b20: 0x6cd92020, 0x37b21: 0x6cd92220, 0x37b22: 0x6cd92420, 0x37b23: 0x6d07cc20, - 0x37b24: 0x6cd92620, 0x37b25: 0x6cd92820, 0x37b26: 0x6cd92a20, 0x37b27: 0x6cd92c20, - 0x37b28: 0x6cd92e20, 0x37b29: 0x6cd93020, 0x37b2a: 0x6cd93220, 0x37b2b: 0x6cd93420, - 0x37b2c: 0x6cd93620, 0x37b2d: 0x6cd93820, 0x37b2e: 0x6cd93a20, 0x37b2f: 0x6cd93c20, - 0x37b30: 0x6cd93e20, 0x37b31: 0x6cd94020, 0x37b32: 0x6cd94220, 0x37b33: 0x6cd94420, - 0x37b34: 0x6cd94620, 0x37b35: 0x6d07ce20, 0x37b36: 0x6d07d020, 0x37b37: 0x6d07d220, - 0x37b38: 0x6d07d420, 0x37b39: 0x6d07d620, 0x37b3a: 0x6d07d820, 0x37b3b: 0x6d07da20, - 0x37b3c: 0x6d07dc20, 0x37b3d: 0x6d07de20, 0x37b3e: 0x6d07e020, 0x37b3f: 0x6d07e220, - // Block 0xded, offset 0x37b40 - 0x37b40: 0x6d07e420, 0x37b41: 0x6d07e620, 0x37b42: 0x6d07e820, 0x37b43: 0x6d07ea20, - 0x37b44: 0x6d07ec20, 0x37b45: 0x6d07ee20, 0x37b46: 0x6d07f020, 0x37b47: 0x6d07f220, - 0x37b48: 0x6d35d820, 0x37b49: 0x6d35da20, 0x37b4a: 0x6d35dc20, 0x37b4b: 0x6d35de20, - 0x37b4c: 0x6d35e020, 0x37b4d: 0x6d35e220, 0x37b4e: 0x6d35e420, 0x37b4f: 0x6d35e620, - 0x37b50: 0x6d35e820, 0x37b51: 0x6d35ea20, 0x37b52: 0x6d35ec20, 0x37b53: 0x6d35ee20, - 0x37b54: 0x6d35f020, 0x37b55: 0x6d35f220, 0x37b56: 0x6d35f420, 0x37b57: 0x6d07f420, - 0x37b58: 0x6d35f620, 0x37b59: 0x6d35f820, 0x37b5a: 0x6d35fa20, 0x37b5b: 0x6d35fc20, - 0x37b5c: 0x6d35fe20, 0x37b5d: 0x6d360020, 0x37b5e: 0x6d360220, 0x37b5f: 0x6d360420, - 0x37b60: 0x6d360620, 0x37b61: 0x6d360820, 0x37b62: 0x6d627e20, 0x37b63: 0x6d628020, - 0x37b64: 0x6d628220, 0x37b65: 0x6d628420, 0x37b66: 0x6d628620, 0x37b67: 0x6d628820, - 0x37b68: 0x6d628a20, 0x37b69: 0x6d628c20, 0x37b6a: 0x6d628e20, 0x37b6b: 0x6d629020, - 0x37b6c: 0x6d629220, 0x37b6d: 0x6d629420, 0x37b6e: 0x6d629620, 0x37b6f: 0x6d629820, - 0x37b70: 0x6d629a20, 0x37b71: 0x6d629c20, 0x37b72: 0x6d629e20, 0x37b73: 0x6d62a020, - 0x37b74: 0x6d62a220, 0x37b75: 0x6d62a420, 0x37b76: 0x6d62a620, 0x37b77: 0x6d62a820, - 0x37b78: 0x6d62aa20, 0x37b79: 0x6d62ac20, 0x37b7a: 0x6d62ae20, 0x37b7b: 0x6d62b020, - 0x37b7c: 0x6d8c6c20, 0x37b7d: 0x6d8c6e20, 0x37b7e: 0x6d8c7020, 0x37b7f: 0x6d8c7220, - // Block 0xdee, offset 0x37b80 - 0x37b80: 0x6d8c7420, 0x37b81: 0x6d8c7620, 0x37b82: 0x6d8c7820, 0x37b83: 0x6d8c7a20, - 0x37b84: 0x6d8c7c20, 0x37b85: 0x6d8c7e20, 0x37b86: 0x6d8c8020, 0x37b87: 0x6d62b220, - 0x37b88: 0x6d8c8220, 0x37b89: 0x6d8c8420, 0x37b8a: 0x6d8c8620, 0x37b8b: 0x6d8c8820, - 0x37b8c: 0x6d8c8a20, 0x37b8d: 0x6d8c8c20, 0x37b8e: 0x6d8c8e20, 0x37b8f: 0x6d8c9020, - 0x37b90: 0x6db0aa20, 0x37b91: 0x6db0ac20, 0x37b92: 0x6db0ae20, 0x37b93: 0x6db0b020, - 0x37b94: 0x6db0b220, 0x37b95: 0x6db0b420, 0x37b96: 0x6db0b620, 0x37b97: 0x6db0b820, - 0x37b98: 0x6db0ba20, 0x37b99: 0x6db0bc20, 0x37b9a: 0x6db0be20, 0x37b9b: 0x6db0c020, - 0x37b9c: 0x6db0c220, 0x37b9d: 0x6db0c420, 0x37b9e: 0x6db0c620, 0x37b9f: 0x6dd03220, - 0x37ba0: 0x6dd03420, 0x37ba1: 0x6dd03620, 0x37ba2: 0x6dd03820, 0x37ba3: 0x6dd03a20, - 0x37ba4: 0x6dd03c20, 0x37ba5: 0x6dd03e20, 0x37ba6: 0x6dd04020, 0x37ba7: 0x6dd04220, - 0x37ba8: 0x6dd04420, 0x37ba9: 0x6dd04620, 0x37baa: 0x6dd04820, 0x37bab: 0x6dd04a20, - 0x37bac: 0x6dd04c20, 0x37bad: 0x6dd04e20, 0x37bae: 0x6dd05020, 0x37baf: 0x6dd05220, - 0x37bb0: 0x6dd05420, 0x37bb1: 0x6dd05620, 0x37bb2: 0x6dd05820, 0x37bb3: 0x6dea0420, - 0x37bb4: 0x6dea0620, 0x37bb5: 0x6dea0820, 0x37bb6: 0x6dea0a20, 0x37bb7: 0x6dea0c20, - 0x37bb8: 0x6dea0e20, 0x37bb9: 0x6dea1020, 0x37bba: 0x6dea1220, 0x37bbb: 0x6dea1420, - 0x37bbc: 0x6dea1620, 0x37bbd: 0x6dea1820, 0x37bbe: 0x6dffd020, 0x37bbf: 0x6dffd220, - // Block 0xdef, offset 0x37bc0 - 0x37bc0: 0x6dffd420, 0x37bc1: 0x6dffd620, 0x37bc2: 0x6dffd820, 0x37bc3: 0x6dffda20, - 0x37bc4: 0x6dffdc20, 0x37bc5: 0x6e123420, 0x37bc6: 0x6e123620, 0x37bc7: 0x6e123820, - 0x37bc8: 0x6e123a20, 0x37bc9: 0x6e123c20, 0x37bca: 0x6e206220, 0x37bcb: 0x6e206420, - 0x37bcc: 0x6e206620, 0x37bcd: 0x6e2b4420, 0x37bce: 0x6e2b4620, 0x37bcf: 0x6e33ce20, - 0x37bd0: 0x6e39ac20, 0x37bd1: 0x6e3ddc20, 0x37bd2: 0x6c145420, 0x37bd3: 0x6c3e5c20, - 0x37bd4: 0x6c5d6020, 0x37bd5: 0x6cab0a20, 0x37bd6: 0x6cab0c20, 0x37bd7: 0x6cab0e20, - 0x37bd8: 0x6cd94c20, 0x37bd9: 0x6cd94e20, 0x37bda: 0x6cd95020, 0x37bdb: 0x6d080420, - 0x37bdc: 0x6d080620, 0x37bdd: 0x6d361220, 0x37bde: 0x6d361420, 0x37bdf: 0x6d361620, - 0x37be0: 0x6d62b620, 0x37be1: 0x6d62b820, 0x37be2: 0x6d62ba20, 0x37be3: 0x6d8c9c20, - 0x37be4: 0x6db0ce20, 0x37be5: 0x6db0d020, 0x37be6: 0x6db0d220, 0x37be7: 0x6dea1c20, - 0x37be8: 0x6dffde20, 0x37be9: 0x6c146420, 0x37bea: 0x6c146620, 0x37beb: 0x6c146820, - 0x37bec: 0x6c146a20, 0x37bed: 0x6c146c20, 0x37bee: 0x6c146e20, 0x37bef: 0x6c147020, - 0x37bf0: 0x6c147220, 0x37bf1: 0x6c147420, 0x37bf2: 0x6c147620, 0x37bf3: 0x6c147820, - 0x37bf4: 0x6c261020, 0x37bf5: 0x6c261220, 0x37bf6: 0x6c261420, 0x37bf7: 0x6c261620, - 0x37bf8: 0x6c261820, 0x37bf9: 0x6c261a20, 0x37bfa: 0x6c261c20, 0x37bfb: 0x6c261e20, - 0x37bfc: 0x6c262020, 0x37bfd: 0x6c262220, 0x37bfe: 0x6c262420, 0x37bff: 0x6c3ebe20, - // Block 0xdf0, offset 0x37c00 - 0x37c00: 0x6c3ec020, 0x37c01: 0x6c3ec220, 0x37c02: 0x6c3ec420, 0x37c03: 0x6c3ec620, - 0x37c04: 0x6c3ec820, 0x37c05: 0x6c3eca20, 0x37c06: 0x6c3ecc20, 0x37c07: 0x6c3ece20, - 0x37c08: 0x6c3ed020, 0x37c09: 0x6c3ed220, 0x37c0a: 0x6c3ed420, 0x37c0b: 0x6c3ed620, - 0x37c0c: 0x6c3ed820, 0x37c0d: 0x6c3eda20, 0x37c0e: 0x6c3edc20, 0x37c0f: 0x6c3ede20, - 0x37c10: 0x6c3ee020, 0x37c11: 0x6c3ee220, 0x37c12: 0x6c3ee420, 0x37c13: 0x6c3ee620, - 0x37c14: 0x6c3ee820, 0x37c15: 0x6c3eea20, 0x37c16: 0x6c3eec20, 0x37c17: 0x6c3eee20, - 0x37c18: 0x6c3ef020, 0x37c19: 0x6c3ef220, 0x37c1a: 0x6c3ef420, 0x37c1b: 0x6c3ef620, - 0x37c1c: 0x6c3ef820, 0x37c1d: 0x6c3efa20, 0x37c1e: 0x6c3efc20, 0x37c1f: 0x6c3efe20, - 0x37c20: 0x6c3f0020, 0x37c21: 0x6c3f0220, 0x37c22: 0x6c3f0420, 0x37c23: 0x6c3f0620, - 0x37c24: 0x6c3f0820, 0x37c25: 0x6c3f0a20, 0x37c26: 0x6c3f0c20, 0x37c27: 0x6c3f0e20, - 0x37c28: 0x6c3f1020, 0x37c29: 0x6c3f1220, 0x37c2a: 0x6c5dca20, 0x37c2b: 0x6c5dcc20, - 0x37c2c: 0x6c5dce20, 0x37c2d: 0x6c5dd020, 0x37c2e: 0x6c5dd220, 0x37c2f: 0x6c5dd420, - 0x37c30: 0x6c5dd620, 0x37c31: 0x6c5dd820, 0x37c32: 0x6c5dda20, 0x37c33: 0x6c5ddc20, - 0x37c34: 0x6c5dde20, 0x37c35: 0x6c5de020, 0x37c36: 0x6c5de220, 0x37c37: 0x6c5de420, - 0x37c38: 0x6c5de620, 0x37c39: 0x6c5de820, 0x37c3a: 0x6c5dea20, 0x37c3b: 0x6c5dec20, - 0x37c3c: 0x6c5dee20, 0x37c3d: 0x6c5df020, 0x37c3e: 0x6c5df220, 0x37c3f: 0x6c5df420, - // Block 0xdf1, offset 0x37c40 - 0x37c40: 0x6c5df620, 0x37c41: 0x6c5df820, 0x37c42: 0x6c5dfa20, 0x37c43: 0x6c5dfc20, - 0x37c44: 0x6c5dfe20, 0x37c45: 0x6c5e0020, 0x37c46: 0x6c5e0220, 0x37c47: 0x6c5e0420, - 0x37c48: 0x6c5e0620, 0x37c49: 0x6c5e0820, 0x37c4a: 0x6c5e0a20, 0x37c4b: 0x6c5e0c20, - 0x37c4c: 0x6c5e0e20, 0x37c4d: 0x6c5e1020, 0x37c4e: 0x6c5e1220, 0x37c4f: 0x6c5e1420, - 0x37c50: 0x6c5e1620, 0x37c51: 0x6c5e1820, 0x37c52: 0x6c5e1a20, 0x37c53: 0x6c5e1c20, - 0x37c54: 0x6c5e1e20, 0x37c55: 0x6c5e2020, 0x37c56: 0x6c5e2220, 0x37c57: 0x6c5e2420, - 0x37c58: 0x6c5e2620, 0x37c59: 0x6c5e2820, 0x37c5a: 0x6c5e2a20, 0x37c5b: 0x6c5e2c20, - 0x37c5c: 0x6c5e2e20, 0x37c5d: 0x6c826020, 0x37c5e: 0x6c826220, 0x37c5f: 0x6c826420, - 0x37c60: 0x6c826620, 0x37c61: 0x6c826820, 0x37c62: 0x6c826a20, 0x37c63: 0x6c826c20, - 0x37c64: 0x6c826e20, 0x37c65: 0x6c827020, 0x37c66: 0x6c827220, 0x37c67: 0x6c827420, - 0x37c68: 0x6c827620, 0x37c69: 0x6c827820, 0x37c6a: 0x6c827a20, 0x37c6b: 0x6c827c20, - 0x37c6c: 0x6c827e20, 0x37c6d: 0x6c828020, 0x37c6e: 0x6c828220, 0x37c6f: 0x6c828420, - 0x37c70: 0x6c828620, 0x37c71: 0x6c828820, 0x37c72: 0x6c828a20, 0x37c73: 0x6c828c20, - 0x37c74: 0x6c828e20, 0x37c75: 0x6c829020, 0x37c76: 0x6c829220, 0x37c77: 0x6c829420, - 0x37c78: 0x6c829620, 0x37c79: 0x6c829820, 0x37c7a: 0x6c829a20, 0x37c7b: 0x6c829c20, - 0x37c7c: 0x6c829e20, 0x37c7d: 0x6c82a020, 0x37c7e: 0x6c82a220, 0x37c7f: 0x6c82a420, - // Block 0xdf2, offset 0x37c80 - 0x37c80: 0x6c82a620, 0x37c81: 0x6c82a820, 0x37c82: 0x6c82aa20, 0x37c83: 0x6c82ac20, - 0x37c84: 0x6c82ae20, 0x37c85: 0x6c82b020, 0x37c86: 0x6c82b220, 0x37c87: 0x6c82b420, - 0x37c88: 0x6c82b620, 0x37c89: 0x6c82b820, 0x37c8a: 0x6c82ba20, 0x37c8b: 0x6c82bc20, - 0x37c8c: 0x6c82be20, 0x37c8d: 0x6c82c020, 0x37c8e: 0x6c82c220, 0x37c8f: 0x6c82c420, - 0x37c90: 0x6c82c620, 0x37c91: 0x6c82c820, 0x37c92: 0x6c82ca20, 0x37c93: 0x6c82cc20, - 0x37c94: 0x6cab7220, 0x37c95: 0x6cab7420, 0x37c96: 0x6cab7620, 0x37c97: 0x6cab7820, - 0x37c98: 0x6cab7a20, 0x37c99: 0x6cab7c20, 0x37c9a: 0x6cab7e20, 0x37c9b: 0x6cab8020, - 0x37c9c: 0x6cab8220, 0x37c9d: 0x6cab8420, 0x37c9e: 0x6cab8620, 0x37c9f: 0x6cab8820, - 0x37ca0: 0x6cab8a20, 0x37ca1: 0x6cab8c20, 0x37ca2: 0x6cab8e20, 0x37ca3: 0x6cab9020, - 0x37ca4: 0x6cab9220, 0x37ca5: 0x6cab9420, 0x37ca6: 0x6cab9620, 0x37ca7: 0x6cab9820, - 0x37ca8: 0x6cab9a20, 0x37ca9: 0x6cab9c20, 0x37caa: 0x6cab9e20, 0x37cab: 0x6caba020, - 0x37cac: 0x6caba220, 0x37cad: 0x6caba420, 0x37cae: 0x6caba620, 0x37caf: 0x6caba820, - 0x37cb0: 0x6cabaa20, 0x37cb1: 0x6cabac20, 0x37cb2: 0x6cabae20, 0x37cb3: 0x6cabb020, - 0x37cb4: 0x6cabb220, 0x37cb5: 0x6cabb420, 0x37cb6: 0x6cabb620, 0x37cb7: 0x6cabb820, - 0x37cb8: 0x6cabba20, 0x37cb9: 0x6cabbc20, 0x37cba: 0x6cabbe20, 0x37cbb: 0x6cabc020, - 0x37cbc: 0x6cabc220, 0x37cbd: 0x6cabc420, 0x37cbe: 0x6cabc620, 0x37cbf: 0x6cabc820, - // Block 0xdf3, offset 0x37cc0 - 0x37cc0: 0x6cabca20, 0x37cc1: 0x6cabcc20, 0x37cc2: 0x6cabce20, 0x37cc3: 0x6cabd020, - 0x37cc4: 0x6cabd220, 0x37cc5: 0x6cabd420, 0x37cc6: 0x6cd9c020, 0x37cc7: 0x6cd9c220, - 0x37cc8: 0x6cd9c420, 0x37cc9: 0x6cd9c620, 0x37cca: 0x6cd9c820, 0x37ccb: 0x6cd9ca20, - 0x37ccc: 0x6cd9cc20, 0x37ccd: 0x6cd9ce20, 0x37cce: 0x6cd9d020, 0x37ccf: 0x6cd9d220, - 0x37cd0: 0x6cd9d420, 0x37cd1: 0x6cd9d620, 0x37cd2: 0x6cd9d820, 0x37cd3: 0x6cd9da20, - 0x37cd4: 0x6cd9dc20, 0x37cd5: 0x6cd9de20, 0x37cd6: 0x6cd9e020, 0x37cd7: 0x6cd9e220, - 0x37cd8: 0x6cd9e420, 0x37cd9: 0x6cd9e620, 0x37cda: 0x6cd9e820, 0x37cdb: 0x6cd9ea20, - 0x37cdc: 0x6cd9ec20, 0x37cdd: 0x6cd9ee20, 0x37cde: 0x6cd9f020, 0x37cdf: 0x6cd9f220, - 0x37ce0: 0x6cd9f420, 0x37ce1: 0x6cd9f620, 0x37ce2: 0x6cd9f820, 0x37ce3: 0x6cd9fa20, - 0x37ce4: 0x6cd9fc20, 0x37ce5: 0x6cd9fe20, 0x37ce6: 0x6cda0020, 0x37ce7: 0x6cda0220, - 0x37ce8: 0x6cda0420, 0x37ce9: 0x6cda0620, 0x37cea: 0x6cda0820, 0x37ceb: 0x6cda0a20, - 0x37cec: 0x6cda0c20, 0x37ced: 0x6cda0e20, 0x37cee: 0x6cda1020, 0x37cef: 0x6cda1220, - 0x37cf0: 0x6cda1420, 0x37cf1: 0x6cda1620, 0x37cf2: 0x6cda1820, 0x37cf3: 0x6cc87c20, - 0x37cf4: 0x6cda1a20, 0x37cf5: 0x6cda1c20, 0x37cf6: 0x6cda1e20, 0x37cf7: 0x6cda2020, - 0x37cf8: 0x6cda2220, 0x37cf9: 0x6cda2420, 0x37cfa: 0x6cda2620, 0x37cfb: 0x6cda2820, - 0x37cfc: 0x6cda2a20, 0x37cfd: 0x6cda2c20, 0x37cfe: 0x6cda2e20, 0x37cff: 0x6cda3020, - // Block 0xdf4, offset 0x37d00 - 0x37d00: 0x6cda3220, 0x37d01: 0x6cda3420, 0x37d02: 0x6cda3620, 0x37d03: 0x6cda3820, - 0x37d04: 0x6cda3a20, 0x37d05: 0x6cda3c20, 0x37d06: 0x6cda3e20, 0x37d07: 0x6cda4020, - 0x37d08: 0x6cda4220, 0x37d09: 0x6cda4420, 0x37d0a: 0x6cda4620, 0x37d0b: 0x6cda4820, - 0x37d0c: 0x6cda4a20, 0x37d0d: 0x6cda4c20, 0x37d0e: 0x6cda4e20, 0x37d0f: 0x6cda5020, - 0x37d10: 0x6cda5220, 0x37d11: 0x6cda5420, 0x37d12: 0x6cda5620, 0x37d13: 0x6cda5820, - 0x37d14: 0x6cda5a20, 0x37d15: 0x6cda5c20, 0x37d16: 0x6cda5e20, 0x37d17: 0x6cda6020, - 0x37d18: 0x6cda6220, 0x37d19: 0x6cda6420, 0x37d1a: 0x6d087020, 0x37d1b: 0x6d087220, - 0x37d1c: 0x6d087420, 0x37d1d: 0x6d087620, 0x37d1e: 0x6d087820, 0x37d1f: 0x6d087a20, - 0x37d20: 0x6d087c20, 0x37d21: 0x6d087e20, 0x37d22: 0x6d088020, 0x37d23: 0x6d088220, - 0x37d24: 0x6d088420, 0x37d25: 0x6d088620, 0x37d26: 0x6d088820, 0x37d27: 0x6d088a20, - 0x37d28: 0x6d088c20, 0x37d29: 0x6d088e20, 0x37d2a: 0x6d089020, 0x37d2b: 0x6d089220, - 0x37d2c: 0x6d089420, 0x37d2d: 0x6d089620, 0x37d2e: 0x6d089820, 0x37d2f: 0x6d089a20, - 0x37d30: 0x6d089c20, 0x37d31: 0x6d089e20, 0x37d32: 0x6d08a020, 0x37d33: 0x6d08a220, - 0x37d34: 0x6d08a420, 0x37d35: 0x6d08a620, 0x37d36: 0x6d08a820, 0x37d37: 0x6d08aa20, - 0x37d38: 0x6d08ac20, 0x37d39: 0x6d08ae20, 0x37d3a: 0x6d08b020, 0x37d3b: 0x6d08b220, - 0x37d3c: 0x6d08b420, 0x37d3d: 0x6d08b620, 0x37d3e: 0x6d08b820, 0x37d3f: 0x6d08ba20, - // Block 0xdf5, offset 0x37d40 - 0x37d40: 0x6d08bc20, 0x37d41: 0x6d08be20, 0x37d42: 0x6d08c020, 0x37d43: 0x6d08c220, - 0x37d44: 0x6d08c420, 0x37d45: 0x6d08c620, 0x37d46: 0x6d08c820, 0x37d47: 0x6d08ca20, - 0x37d48: 0x6d08cc20, 0x37d49: 0x6d08ce20, 0x37d4a: 0x6d08d020, 0x37d4b: 0x6d08d220, - 0x37d4c: 0x6d08d420, 0x37d4d: 0x6d08d620, 0x37d4e: 0x6d08d820, 0x37d4f: 0x6d08da20, - 0x37d50: 0x6d08dc20, 0x37d51: 0x6d08de20, 0x37d52: 0x6d08e020, 0x37d53: 0x6d08e220, - 0x37d54: 0x6d08e420, 0x37d55: 0x6d08e620, 0x37d56: 0x6d08e820, 0x37d57: 0x6d08ea20, - 0x37d58: 0x6d08ec20, 0x37d59: 0x6d365c20, 0x37d5a: 0x6d365e20, 0x37d5b: 0x6d366020, - 0x37d5c: 0x6d366220, 0x37d5d: 0x6d366420, 0x37d5e: 0x6d366620, 0x37d5f: 0x6d366820, - 0x37d60: 0x6d366a20, 0x37d61: 0x6d366c20, 0x37d62: 0x6d366e20, 0x37d63: 0x6d367020, - 0x37d64: 0x6d367220, 0x37d65: 0x6d367420, 0x37d66: 0x6d367620, 0x37d67: 0x6d367820, - 0x37d68: 0x6d367a20, 0x37d69: 0x6d367c20, 0x37d6a: 0x6d367e20, 0x37d6b: 0x6d368020, - 0x37d6c: 0x6d368220, 0x37d6d: 0x6d368420, 0x37d6e: 0x6d368620, 0x37d6f: 0x6d368820, - 0x37d70: 0x6d368a20, 0x37d71: 0x6d368c20, 0x37d72: 0x6d368e20, 0x37d73: 0x6d369020, - 0x37d74: 0x6d369220, 0x37d75: 0x6d369420, 0x37d76: 0x6d369620, 0x37d77: 0x6d369820, - 0x37d78: 0x6d369a20, 0x37d79: 0x6d369c20, 0x37d7a: 0x6d369e20, 0x37d7b: 0x6d36a020, - 0x37d7c: 0x6d36a220, 0x37d7d: 0x6d36a420, 0x37d7e: 0x6d36a620, 0x37d7f: 0x6d36a820, - // Block 0xdf6, offset 0x37d80 - 0x37d80: 0x6d36aa20, 0x37d81: 0x6d36ac20, 0x37d82: 0x6d36ae20, 0x37d83: 0x6d36b020, - 0x37d84: 0x6d36b220, 0x37d85: 0x6d36b420, 0x37d86: 0x6d36b620, 0x37d87: 0x6d36b820, - 0x37d88: 0x6d36ba20, 0x37d89: 0x6d36bc20, 0x37d8a: 0x6d36be20, 0x37d8b: 0x6d36c020, - 0x37d8c: 0x6d36c220, 0x37d8d: 0x6d36c420, 0x37d8e: 0x6d36c620, 0x37d8f: 0x6d36c820, - 0x37d90: 0x6d36ca20, 0x37d91: 0x6d36cc20, 0x37d92: 0x6d36ce20, 0x37d93: 0x6d08ee20, - 0x37d94: 0x6d08f020, 0x37d95: 0x6d36d020, 0x37d96: 0x6d36d220, 0x37d97: 0x6d36d420, - 0x37d98: 0x6d62f420, 0x37d99: 0x6d62f620, 0x37d9a: 0x6d62f820, 0x37d9b: 0x6d62fa20, - 0x37d9c: 0x6d62fc20, 0x37d9d: 0x6d62fe20, 0x37d9e: 0x6d630020, 0x37d9f: 0x6d630220, - 0x37da0: 0x6d630420, 0x37da1: 0x6d630620, 0x37da2: 0x6d630820, 0x37da3: 0x6d630a20, - 0x37da4: 0x6d630c20, 0x37da5: 0x6d630e20, 0x37da6: 0x6d631020, 0x37da7: 0x6d631220, - 0x37da8: 0x6d631420, 0x37da9: 0x6d631620, 0x37daa: 0x6d631820, 0x37dab: 0x6d631a20, - 0x37dac: 0x6d631c20, 0x37dad: 0x6d631e20, 0x37dae: 0x6d632020, 0x37daf: 0x6d632220, - 0x37db0: 0x6d632420, 0x37db1: 0x6d632620, 0x37db2: 0x6d632820, 0x37db3: 0x6d632a20, - 0x37db4: 0x6d632c20, 0x37db5: 0x6d632e20, 0x37db6: 0x6d633020, 0x37db7: 0x6d633220, - 0x37db8: 0x6d633420, 0x37db9: 0x6d633620, 0x37dba: 0x6d633820, 0x37dbb: 0x6d633a20, - 0x37dbc: 0x6d633c20, 0x37dbd: 0x6d633e20, 0x37dbe: 0x6d634020, 0x37dbf: 0x6d634220, - // Block 0xdf7, offset 0x37dc0 - 0x37dc0: 0x6d634420, 0x37dc1: 0x6d634620, 0x37dc2: 0x6d634820, 0x37dc3: 0x6d8cd620, - 0x37dc4: 0x6d8cd820, 0x37dc5: 0x6d8cda20, 0x37dc6: 0x6d8cdc20, 0x37dc7: 0x6d8cde20, - 0x37dc8: 0x6d8ce020, 0x37dc9: 0x6d8ce220, 0x37dca: 0x6d8ce420, 0x37dcb: 0x6d8ce620, - 0x37dcc: 0x6d8ce820, 0x37dcd: 0x6d8cea20, 0x37dce: 0x6d8cec20, 0x37dcf: 0x6d8cee20, - 0x37dd0: 0x6d8cf020, 0x37dd1: 0x6d8cf220, 0x37dd2: 0x6d8cf420, 0x37dd3: 0x6d8cf620, - 0x37dd4: 0x6d8cf820, 0x37dd5: 0x6d8cfa20, 0x37dd6: 0x6d8cfc20, 0x37dd7: 0x6d8cfe20, - 0x37dd8: 0x6d8d0020, 0x37dd9: 0x6d8d0220, 0x37dda: 0x6d8d0420, 0x37ddb: 0x6d8d0620, - 0x37ddc: 0x6d8d0820, 0x37ddd: 0x6d8d0a20, 0x37dde: 0x6d8d0c20, 0x37ddf: 0x6d8d0e20, - 0x37de0: 0x6d8d1020, 0x37de1: 0x6d8d1220, 0x37de2: 0x6d8d1420, 0x37de3: 0x6d8d1620, - 0x37de4: 0x6d8d1820, 0x37de5: 0x6d8d1a20, 0x37de6: 0x6d8d1c20, 0x37de7: 0x6d8d1e20, - 0x37de8: 0x6d8d2020, 0x37de9: 0x6d8d2220, 0x37dea: 0x6d8d2420, 0x37deb: 0x6d8d2620, - 0x37dec: 0x6d8d2820, 0x37ded: 0x6d8d2a20, 0x37dee: 0x6d8d2c20, 0x37def: 0x6d8d2e20, - 0x37df0: 0x6d8d3020, 0x37df1: 0x6d8d3220, 0x37df2: 0x6d8d3420, 0x37df3: 0x6d8d3620, - 0x37df4: 0x6d8d3820, 0x37df5: 0x6d8d3a20, 0x37df6: 0x6d8d3c20, 0x37df7: 0x6d8d3e20, - 0x37df8: 0x6d8d4020, 0x37df9: 0x6d8d4220, 0x37dfa: 0x6d8d4420, 0x37dfb: 0x6d8d4620, - 0x37dfc: 0x6d8d4820, 0x37dfd: 0x6d8d4a20, 0x37dfe: 0x6db10420, 0x37dff: 0x6db10620, - // Block 0xdf8, offset 0x37e00 - 0x37e00: 0x6db10820, 0x37e01: 0x6db10a20, 0x37e02: 0x6db10c20, 0x37e03: 0x6db10e20, - 0x37e04: 0x6d8d4c20, 0x37e05: 0x6db11020, 0x37e06: 0x6db11220, 0x37e07: 0x6db11420, - 0x37e08: 0x6db11620, 0x37e09: 0x6db11820, 0x37e0a: 0x6db11a20, 0x37e0b: 0x6db11c20, - 0x37e0c: 0x6db11e20, 0x37e0d: 0x6db12020, 0x37e0e: 0x6dd07620, 0x37e0f: 0x6db12220, - 0x37e10: 0x6db12420, 0x37e11: 0x6db12620, 0x37e12: 0x6db12820, 0x37e13: 0x6db12a20, - 0x37e14: 0x6db12c20, 0x37e15: 0x6db12e20, 0x37e16: 0x6da5c020, 0x37e17: 0x6d7c7a20, - 0x37e18: 0x6db13020, 0x37e19: 0x6db13220, 0x37e1a: 0x6db13420, 0x37e1b: 0x6db13620, - 0x37e1c: 0x6db13820, 0x37e1d: 0x6db13a20, 0x37e1e: 0x6db13c20, 0x37e1f: 0x6db13e20, - 0x37e20: 0x6db14020, 0x37e21: 0x6db14220, 0x37e22: 0x6db14420, 0x37e23: 0x6db14620, - 0x37e24: 0x6db14820, 0x37e25: 0x6db14a20, 0x37e26: 0x6db14c20, 0x37e27: 0x6db14e20, - 0x37e28: 0x6db15020, 0x37e29: 0x6db15220, 0x37e2a: 0x6db15420, 0x37e2b: 0x6db15620, - 0x37e2c: 0x6db15820, 0x37e2d: 0x6db15a20, 0x37e2e: 0x6d8d4e20, 0x37e2f: 0x6db15c20, - 0x37e30: 0x6dd07820, 0x37e31: 0x6dd07a20, 0x37e32: 0x6dd07c20, 0x37e33: 0x6dd07e20, - 0x37e34: 0x6dd08020, 0x37e35: 0x6dd08220, 0x37e36: 0x6dd08420, 0x37e37: 0x6dd08620, - 0x37e38: 0x6dd08820, 0x37e39: 0x6dd08a20, 0x37e3a: 0x6dd08c20, 0x37e3b: 0x6dd08e20, - 0x37e3c: 0x6dd09020, 0x37e3d: 0x6dd09220, 0x37e3e: 0x6dd09420, 0x37e3f: 0x6dd09620, - // Block 0xdf9, offset 0x37e40 - 0x37e40: 0x6dd09820, 0x37e41: 0x6dd09a20, 0x37e42: 0x6dd09c20, 0x37e43: 0x6dd09e20, - 0x37e44: 0x6dd0a020, 0x37e45: 0x6dd0a220, 0x37e46: 0x6dd0a420, 0x37e47: 0x6dd0a620, - 0x37e48: 0x6dd0a820, 0x37e49: 0x6dd0aa20, 0x37e4a: 0x6dea2e20, 0x37e4b: 0x6dea3020, - 0x37e4c: 0x6dea3220, 0x37e4d: 0x6dea3420, 0x37e4e: 0x6dea3620, 0x37e4f: 0x6dea3820, - 0x37e50: 0x6dea3a20, 0x37e51: 0x6dea3c20, 0x37e52: 0x6dea3e20, 0x37e53: 0x6dea4020, - 0x37e54: 0x6dea4220, 0x37e55: 0x6dea4420, 0x37e56: 0x6dea4620, 0x37e57: 0x6dea4820, - 0x37e58: 0x6dea4a20, 0x37e59: 0x6dea4c20, 0x37e5a: 0x6dea4e20, 0x37e5b: 0x6dea5020, - 0x37e5c: 0x6dea5220, 0x37e5d: 0x6dea5420, 0x37e5e: 0x6dea5620, 0x37e5f: 0x6dea5820, - 0x37e60: 0x6dea5a20, 0x37e61: 0x6dea5c20, 0x37e62: 0x6dea5e20, 0x37e63: 0x6dea6020, - 0x37e64: 0x6dea6220, 0x37e65: 0x6dffee20, 0x37e66: 0x6dfff020, 0x37e67: 0x6dfff220, - 0x37e68: 0x6dfff420, 0x37e69: 0x6dfff620, 0x37e6a: 0x6dfff820, 0x37e6b: 0x6dfffa20, - 0x37e6c: 0x6dfffc20, 0x37e6d: 0x6dfffe20, 0x37e6e: 0x6e000020, 0x37e6f: 0x6e000220, - 0x37e70: 0x6e000420, 0x37e71: 0x6e000620, 0x37e72: 0x6e000820, 0x37e73: 0x6e000a20, - 0x37e74: 0x6e000c20, 0x37e75: 0x6e000e20, 0x37e76: 0x6e001020, 0x37e77: 0x6e001220, - 0x37e78: 0x6e124a20, 0x37e79: 0x6e124c20, 0x37e7a: 0x6e124e20, 0x37e7b: 0x6e125020, - 0x37e7c: 0x6e125220, 0x37e7d: 0x6e125420, 0x37e7e: 0x6e125620, 0x37e7f: 0x6e206e20, - // Block 0xdfa, offset 0x37e80 - 0x37e80: 0x6e207020, 0x37e81: 0x6e207220, 0x37e82: 0x6e207420, 0x37e83: 0x6e207620, - 0x37e84: 0x6e207820, 0x37e85: 0x6e207a20, 0x37e86: 0x6e2b4c20, 0x37e87: 0x6e2b4e20, - 0x37e88: 0x6e2b5020, 0x37e89: 0x6e2b5220, 0x37e8a: 0x6e2b5420, 0x37e8b: 0x6e2b5620, - 0x37e8c: 0x6e2b5820, 0x37e8d: 0x6e2b5a20, 0x37e8e: 0x6e2b5c20, 0x37e8f: 0x6e2b5e20, - 0x37e90: 0x6e2b6020, 0x37e91: 0x6e33d020, 0x37e92: 0x6e33d220, 0x37e93: 0x6e33d420, - 0x37e94: 0x6e33d620, 0x37e95: 0x6e33d820, 0x37e96: 0x6e39b220, 0x37e97: 0x6e39b420, - 0x37e98: 0x6e3dde20, 0x37e99: 0x6e3de020, 0x37e9a: 0x6e3de220, 0x37e9b: 0x6e40be20, - 0x37e9c: 0x6e42ec20, 0x37e9d: 0x6c262620, 0x37e9e: 0x6c147c20, 0x37e9f: 0x6c5e3820, - 0x37ea0: 0x6c82d220, 0x37ea1: 0x6c82d420, 0x37ea2: 0x6c82d620, 0x37ea3: 0x6c82d820, - 0x37ea4: 0x6cabde20, 0x37ea5: 0x6cabe020, 0x37ea6: 0x6cda7220, 0x37ea7: 0x6cda7420, - 0x37ea8: 0x6cda7620, 0x37ea9: 0x6cda7820, 0x37eaa: 0x6d8d5c20, 0x37eab: 0x6d36e620, - 0x37eac: 0x6d36e820, 0x37ead: 0x6d635620, 0x37eae: 0x6d36ea20, 0x37eaf: 0x6d635820, - 0x37eb0: 0x6db16820, 0x37eb1: 0x6db16a20, 0x37eb2: 0x6dd0b220, 0x37eb3: 0x6dd0b420, - 0x37eb4: 0x6e125a20, 0x37eb5: 0x6e125c20, 0x37eb6: 0x6e207e20, 0x37eb7: 0x6e445e20, - 0x37eb8: 0x6e45ce20, 0x37eb9: 0x6c148020, 0x37eba: 0x6c262a20, 0x37ebb: 0x6c262c20, - 0x37ebc: 0x6c262e20, 0x37ebd: 0x6c3f1e20, 0x37ebe: 0x6c5e3a20, 0x37ebf: 0x6c5e3c20, - // Block 0xdfb, offset 0x37ec0 - 0x37ec0: 0x6c5e3e20, 0x37ec1: 0x6c82e020, 0x37ec2: 0x6c82e220, 0x37ec3: 0x6c82e420, - 0x37ec4: 0x6c82e620, 0x37ec5: 0x6c82e820, 0x37ec6: 0x6c82ea20, 0x37ec7: 0x6c82ec20, - 0x37ec8: 0x6c82ee20, 0x37ec9: 0x6c82f020, 0x37eca: 0x6c82f220, 0x37ecb: 0x6c82f420, - 0x37ecc: 0x6cabe220, 0x37ecd: 0x6cabe420, 0x37ece: 0x6cabe620, 0x37ecf: 0x6cabe820, - 0x37ed0: 0x6cda8220, 0x37ed1: 0x6cda8420, 0x37ed2: 0x6cda8620, 0x37ed3: 0x6cda8820, - 0x37ed4: 0x6d08fa20, 0x37ed5: 0x6d36ee20, 0x37ed6: 0x6d36f020, 0x37ed7: 0x6d36f220, - 0x37ed8: 0x6d635c20, 0x37ed9: 0x6d635e20, 0x37eda: 0x6d636020, 0x37edb: 0x6d636220, - 0x37edc: 0x6d636420, 0x37edd: 0x6d636620, 0x37ede: 0x6d8d6020, 0x37edf: 0x6d8d6220, - 0x37ee0: 0x6d8d6420, 0x37ee1: 0x6db16c20, 0x37ee2: 0x6db16e20, 0x37ee3: 0x6db17020, - 0x37ee4: 0x6db17220, 0x37ee5: 0x6dd0b820, 0x37ee6: 0x6dea6820, 0x37ee7: 0x6dea6a20, - 0x37ee8: 0x6dea6c20, 0x37ee9: 0x6dea6e20, 0x37eea: 0x6dea7020, 0x37eeb: 0x6e001620, - 0x37eec: 0x6e001820, 0x37eed: 0x6e001a20, 0x37eee: 0x6e001c20, 0x37eef: 0x6e125e20, - 0x37ef0: 0x6e126020, 0x37ef1: 0x6e33da20, 0x37ef2: 0x6e3de420, 0x37ef3: 0x6c148420, - 0x37ef4: 0x6c148620, 0x37ef5: 0x6c3f2020, 0x37ef6: 0x6c5e4420, 0x37ef7: 0x6c5e4620, - 0x37ef8: 0x6c5e4820, 0x37ef9: 0x6c82f620, 0x37efa: 0x6c82f820, 0x37efb: 0x6cabea20, - 0x37efc: 0x6cabec20, 0x37efd: 0x6cabee20, 0x37efe: 0x6cabf020, 0x37eff: 0x6cda9420, - // Block 0xdfc, offset 0x37f00 - 0x37f00: 0x6cda9620, 0x37f01: 0x6d08fe20, 0x37f02: 0x6d36f620, 0x37f03: 0x6d36f820, - 0x37f04: 0x6d36fa20, 0x37f05: 0x6d636a20, 0x37f06: 0x6d636c20, 0x37f07: 0x6d636e20, - 0x37f08: 0x6d1dd820, 0x37f09: 0x6d8d6820, 0x37f0a: 0x6d8d6a20, 0x37f0b: 0x6d8d6c20, - 0x37f0c: 0x6d8d6e20, 0x37f0d: 0x6d8d7020, 0x37f0e: 0x6db17420, 0x37f0f: 0x6dd0bc20, - 0x37f10: 0x6dd0be20, 0x37f11: 0x6c148a20, 0x37f12: 0x6c148c20, 0x37f13: 0x6c148e20, - 0x37f14: 0x6c263020, 0x37f15: 0x6c3f2620, 0x37f16: 0x6c3f2820, 0x37f17: 0x6c5e4c20, - 0x37f18: 0x6c5e4e20, 0x37f19: 0x6c3f2a20, 0x37f1a: 0x6c5e5020, 0x37f1b: 0x6c5e5220, - 0x37f1c: 0x6c5e5420, 0x37f1d: 0x6c830020, 0x37f1e: 0x6c830220, 0x37f1f: 0x6c830420, - 0x37f20: 0x6c830620, 0x37f21: 0x6c830820, 0x37f22: 0x6c830a20, 0x37f23: 0x6c830c20, - 0x37f24: 0x6c830e20, 0x37f25: 0x6cabf620, 0x37f26: 0x6cabf820, 0x37f27: 0x6c5e5620, - 0x37f28: 0x6cabfa20, 0x37f29: 0x6cabfc20, 0x37f2a: 0x6cabfe20, 0x37f2b: 0x6cac0020, - 0x37f2c: 0x6cac0220, 0x37f2d: 0x6cda9e20, 0x37f2e: 0x6cdaa020, 0x37f2f: 0x6cdaa220, - 0x37f30: 0x6cdaa420, 0x37f31: 0x6cdaa620, 0x37f32: 0x6cdaa820, 0x37f33: 0x6d090420, - 0x37f34: 0x6d090620, 0x37f35: 0x6d090820, 0x37f36: 0x6d090a20, 0x37f37: 0x6d090c20, - 0x37f38: 0x6d090e20, 0x37f39: 0x6d091020, 0x37f3a: 0x6d091220, 0x37f3b: 0x6d370420, - 0x37f3c: 0x6d370620, 0x37f3d: 0x6d370820, 0x37f3e: 0x6d370a20, 0x37f3f: 0x6d370c20, - // Block 0xdfd, offset 0x37f40 - 0x37f40: 0x6d370e20, 0x37f41: 0x6d371020, 0x37f42: 0x6d371220, 0x37f43: 0x6d371420, - 0x37f44: 0x6d371620, 0x37f45: 0x6d637220, 0x37f46: 0x6d637420, 0x37f47: 0x6d637620, - 0x37f48: 0x6d637820, 0x37f49: 0x6d637a20, 0x37f4a: 0x6d637c20, 0x37f4b: 0x6d637e20, - 0x37f4c: 0x6d638020, 0x37f4d: 0x6d638220, 0x37f4e: 0x6d638420, 0x37f4f: 0x6d8d7a20, - 0x37f50: 0x6d8d7c20, 0x37f51: 0x6d8d7e20, 0x37f52: 0x6d8d8020, 0x37f53: 0x6d8d8220, - 0x37f54: 0x6d5dd620, 0x37f55: 0x6d8d8420, 0x37f56: 0x6d8d8620, 0x37f57: 0x6d8d8820, - 0x37f58: 0x6db17620, 0x37f59: 0x6db17820, 0x37f5a: 0x6db17a20, 0x37f5b: 0x6db17c20, - 0x37f5c: 0x6db17e20, 0x37f5d: 0x6db18020, 0x37f5e: 0x6db18220, 0x37f5f: 0x6db18420, - 0x37f60: 0x6db18620, 0x37f61: 0x6dd0c220, 0x37f62: 0x6dd0c420, 0x37f63: 0x6dd0c620, - 0x37f64: 0x6dd0c820, 0x37f65: 0x6dd0ca20, 0x37f66: 0x6dd0cc20, 0x37f67: 0x6dd0ce20, - 0x37f68: 0x6dca2e20, 0x37f69: 0x6dea7620, 0x37f6a: 0x6dea7820, 0x37f6b: 0x6dea7a20, - 0x37f6c: 0x6dea7c20, 0x37f6d: 0x6e002020, 0x37f6e: 0x6e002220, 0x37f6f: 0x6dea7e20, - 0x37f70: 0x6e002420, 0x37f71: 0x6e002620, 0x37f72: 0x6e002820, 0x37f73: 0x6e002a20, - 0x37f74: 0x6e002c20, 0x37f75: 0x6e002e20, 0x37f76: 0x6e126220, 0x37f77: 0x6e126420, - 0x37f78: 0x6e126620, 0x37f79: 0x6e208020, 0x37f7a: 0x6e2b6420, 0x37f7b: 0x6e2b6620, - 0x37f7c: 0x6e33de20, 0x37f7d: 0x6e39b620, 0x37f7e: 0x6e39b820, 0x37f7f: 0x6e39ba20, - // Block 0xdfe, offset 0x37f80 - 0x37f80: 0x6e3de820, 0x37f81: 0x6e40c020, 0x37f82: 0x6e40c220, 0x37f83: 0x6e454420, - 0x37f84: 0x6e472c20, 0x37f85: 0x6e473620, 0x37f86: 0x6c263220, 0x37f87: 0x6c5e5820, - 0x37f88: 0x6c831620, 0x37f89: 0x6c831820, 0x37f8a: 0x6c831a20, 0x37f8b: 0x6c831c20, - 0x37f8c: 0x6c831e20, 0x37f8d: 0x6c832020, 0x37f8e: 0x6c832220, 0x37f8f: 0x6c832420, - 0x37f90: 0x6c832620, 0x37f91: 0x6cac0820, 0x37f92: 0x6cac0a20, 0x37f93: 0x6cac0c20, - 0x37f94: 0x6cac0e20, 0x37f95: 0x6cdaae20, 0x37f96: 0x6cdab020, 0x37f97: 0x6cdab220, - 0x37f98: 0x6cdab420, 0x37f99: 0x6cdab620, 0x37f9a: 0x6cdab820, 0x37f9b: 0x6cdaba20, - 0x37f9c: 0x6cdabc20, 0x37f9d: 0x6d091420, 0x37f9e: 0x6d091620, 0x37f9f: 0x6d371e20, - 0x37fa0: 0x6d372020, 0x37fa1: 0x6d372220, 0x37fa2: 0x6d372420, 0x37fa3: 0x6d372620, - 0x37fa4: 0x6d372820, 0x37fa5: 0x6d372a20, 0x37fa6: 0x6d372c20, 0x37fa7: 0x6d638c20, - 0x37fa8: 0x6d638e20, 0x37fa9: 0x6d639020, 0x37faa: 0x6d639220, 0x37fab: 0x6d639420, - 0x37fac: 0x6d639620, 0x37fad: 0x6d8d8c20, 0x37fae: 0x6d8d8e20, 0x37faf: 0x6d8d9020, - 0x37fb0: 0x6d8d9220, 0x37fb1: 0x6db18820, 0x37fb2: 0x6db18a20, 0x37fb3: 0x6db18c20, - 0x37fb4: 0x6dd0d420, 0x37fb5: 0x6dd0d620, 0x37fb6: 0x6dd0d820, 0x37fb7: 0x6dea8220, - 0x37fb8: 0x6e003020, 0x37fb9: 0x6e126820, 0x37fba: 0x6e208220, 0x37fbb: 0x6e2b6820, - 0x37fbc: 0x6e2b6a20, 0x37fbd: 0x6e3dec20, 0x37fbe: 0x6d639820, 0x37fbf: 0x6d639a20, - // Block 0xdff, offset 0x37fc0 - 0x37fc0: 0x6dd0da20, 0x37fc1: 0x6e003220, 0x37fc2: 0x6e2b6c20, 0x37fc3: 0x6e208620, - 0x37fc4: 0x6e33e020, 0x37fc5: 0x6e39bc20, 0x37fc6: 0x6e40c420, 0x37fc7: 0x6c263420, - 0x37fc8: 0x6c3f3820, 0x37fc9: 0x6c3f3a20, 0x37fca: 0x6c3f3c20, 0x37fcb: 0x6c3f3e20, - 0x37fcc: 0x6c3f4020, 0x37fcd: 0x6c3f4220, 0x37fce: 0x6c5e6820, 0x37fcf: 0x6c5e6a20, - 0x37fd0: 0x6c5e6c20, 0x37fd1: 0x6c5e6e20, 0x37fd2: 0x6c5e7020, 0x37fd3: 0x6c5e7220, - 0x37fd4: 0x6c5e7420, 0x37fd5: 0x6c834620, 0x37fd6: 0x6c834820, 0x37fd7: 0x6c834a20, - 0x37fd8: 0x6c834c20, 0x37fd9: 0x6c834e20, 0x37fda: 0x6c835020, 0x37fdb: 0x6c835220, - 0x37fdc: 0x6c835420, 0x37fdd: 0x6c835620, 0x37fde: 0x6c835820, 0x37fdf: 0x6c835a20, - 0x37fe0: 0x6c835c20, 0x37fe1: 0x6cac2c20, 0x37fe2: 0x6cac2e20, 0x37fe3: 0x6cac3020, - 0x37fe4: 0x6cac3220, 0x37fe5: 0x6cac3420, 0x37fe6: 0x6cac3620, 0x37fe7: 0x6cac3820, - 0x37fe8: 0x6cac3a20, 0x37fe9: 0x6cac3c20, 0x37fea: 0x6cac3e20, 0x37feb: 0x6cac4020, - 0x37fec: 0x6cac4220, 0x37fed: 0x6cac4420, 0x37fee: 0x6cac4620, 0x37fef: 0x6cdad220, - 0x37ff0: 0x6cdad420, 0x37ff1: 0x6cdad620, 0x37ff2: 0x6cdad820, 0x37ff3: 0x6d093620, - 0x37ff4: 0x6cdada20, 0x37ff5: 0x6cdadc20, 0x37ff6: 0x6cdade20, 0x37ff7: 0x6cdae020, - 0x37ff8: 0x6cdae220, 0x37ff9: 0x6cdae420, 0x37ffa: 0x6cdae620, 0x37ffb: 0x6cdae820, - 0x37ffc: 0x6cdaea20, 0x37ffd: 0x6d093820, 0x37ffe: 0x6d093a20, 0x37fff: 0x6d093c20, - // Block 0xe00, offset 0x38000 - 0x38000: 0x6d093e20, 0x38001: 0x6d094020, 0x38002: 0x6d094220, 0x38003: 0x6d094420, - 0x38004: 0x6d094620, 0x38005: 0x6d094820, 0x38006: 0x6d094a20, 0x38007: 0x6d094c20, - 0x38008: 0x6d094e20, 0x38009: 0x6d095020, 0x3800a: 0x6d374a20, 0x3800b: 0x6d374c20, - 0x3800c: 0x6d374e20, 0x3800d: 0x6d375020, 0x3800e: 0x6d375220, 0x3800f: 0x6d375420, - 0x38010: 0x6d375620, 0x38011: 0x6d375820, 0x38012: 0x6d375a20, 0x38013: 0x6d375c20, - 0x38014: 0x6d375e20, 0x38015: 0x6d376020, 0x38016: 0x6d376220, 0x38017: 0x6d376420, - 0x38018: 0x6d376620, 0x38019: 0x6d376820, 0x3801a: 0x6d376a20, 0x3801b: 0x6d376c20, - 0x3801c: 0x6d376e20, 0x3801d: 0x6d63b020, 0x3801e: 0x6d63b220, 0x3801f: 0x6d63b420, - 0x38020: 0x6d63b620, 0x38021: 0x6d63b820, 0x38022: 0x6d63ba20, 0x38023: 0x6d63bc20, - 0x38024: 0x6d63be20, 0x38025: 0x6d63c020, 0x38026: 0x6d63c220, 0x38027: 0x6d63c420, - 0x38028: 0x6d63c620, 0x38029: 0x6d63c820, 0x3802a: 0x6d63ca20, 0x3802b: 0x6d63cc20, - 0x3802c: 0x6d63ce20, 0x3802d: 0x6d63d020, 0x3802e: 0x6d63d220, 0x3802f: 0x6d63d420, - 0x38030: 0x6d63d620, 0x38031: 0x6d63d820, 0x38032: 0x6d63da20, 0x38033: 0x6d63dc20, - 0x38034: 0x6d8da820, 0x38035: 0x6d8daa20, 0x38036: 0x6d8dac20, 0x38037: 0x6d8dae20, - 0x38038: 0x6d8db020, 0x38039: 0x6d8db220, 0x3803a: 0x6d8db420, 0x3803b: 0x6d8db620, - 0x3803c: 0x6d8db820, 0x3803d: 0x6d8dba20, 0x3803e: 0x6d8dbc20, 0x3803f: 0x6d63de20, - // Block 0xe01, offset 0x38040 - 0x38040: 0x6d8dbe20, 0x38041: 0x6d8dc020, 0x38042: 0x6d8dc220, 0x38043: 0x6d8dc420, - 0x38044: 0x6d8dc620, 0x38045: 0x6d8dc820, 0x38046: 0x6db1a420, 0x38047: 0x6db1a620, - 0x38048: 0x6db1a820, 0x38049: 0x6db1aa20, 0x3804a: 0x6db1ac20, 0x3804b: 0x6db1ae20, - 0x3804c: 0x6db1b020, 0x3804d: 0x6db1b220, 0x3804e: 0x6db1b420, 0x3804f: 0x6db1b620, - 0x38050: 0x6db1b820, 0x38051: 0x6dd0e820, 0x38052: 0x6dd0ea20, 0x38053: 0x6dd0ec20, - 0x38054: 0x6dd0ee20, 0x38055: 0x6dd0f020, 0x38056: 0x6dd0f220, 0x38057: 0x6dd0f420, - 0x38058: 0x6dd0f620, 0x38059: 0x6dd0f820, 0x3805a: 0x6dd0fa20, 0x3805b: 0x6dd0fc20, - 0x3805c: 0x6dd0fe20, 0x3805d: 0x6dd10020, 0x3805e: 0x6dd10220, 0x3805f: 0x6dd10420, - 0x38060: 0x6dd10620, 0x38061: 0x6dd10820, 0x38062: 0x6dd10a20, 0x38063: 0x6dd10c20, - 0x38064: 0x6dd10e20, 0x38065: 0x6dd11020, 0x38066: 0x6dd11220, 0x38067: 0x6dd11420, - 0x38068: 0x6dea9020, 0x38069: 0x6dea9220, 0x3806a: 0x6dea9420, 0x3806b: 0x6dea9620, - 0x3806c: 0x6dea9820, 0x3806d: 0x6dea9a20, 0x3806e: 0x6dea9c20, 0x3806f: 0x6dea9e20, - 0x38070: 0x6deaa020, 0x38071: 0x6e003e20, 0x38072: 0x6e004020, 0x38073: 0x6e004220, - 0x38074: 0x6e004420, 0x38075: 0x6e004620, 0x38076: 0x6e126e20, 0x38077: 0x6e127020, - 0x38078: 0x6e127220, 0x38079: 0x6e105820, 0x3807a: 0x6e127420, 0x3807b: 0x6e127620, - 0x3807c: 0x6e127820, 0x3807d: 0x6e208a20, 0x3807e: 0x6e208c20, 0x3807f: 0x6e208e20, - // Block 0xe02, offset 0x38080 - 0x38080: 0x6e209020, 0x38081: 0x6e209220, 0x38082: 0x6e209420, 0x38083: 0x6e2b7020, - 0x38084: 0x6e2b7220, 0x38085: 0x6e39be20, 0x38086: 0x6e39c020, 0x38087: 0x6e3dee20, - 0x38088: 0x6e40c620, 0x38089: 0x6e3df020, 0x3808a: 0x6e454620, 0x3808b: 0x6c5e7820, - 0x3808c: 0x6cac4820, 0x3808d: 0x6cac4a20, 0x3808e: 0x6cdaec20, 0x3808f: 0x6d095220, - 0x38090: 0x6d63e420, 0x38091: 0x6db1be20, 0x38092: 0x6e004a20, 0x38093: 0x6c5e7c20, - 0x38094: 0x6cac5020, 0x38095: 0x6cac5220, 0x38096: 0x6cac5420, 0x38097: 0x6cac5620, - 0x38098: 0x6cac5820, 0x38099: 0x6cac5a20, 0x3809a: 0x6cdaee20, 0x3809b: 0x6d095420, - 0x3809c: 0x6d095620, 0x3809d: 0x6d095820, 0x3809e: 0x6d377420, 0x3809f: 0x6d377620, - 0x380a0: 0x6d377820, 0x380a1: 0x6d377a20, 0x380a2: 0x6d377c20, 0x380a3: 0x6d377e20, - 0x380a4: 0x6d63e620, 0x380a5: 0x6d63e820, 0x380a6: 0x6d63ea20, 0x380a7: 0x6d63ec20, - 0x380a8: 0x6d63ee20, 0x380a9: 0x6d63f020, 0x380aa: 0x6d8dce20, 0x380ab: 0x6d8dd020, - 0x380ac: 0x6d8dd220, 0x380ad: 0x6d8dd420, 0x380ae: 0x6d8dd620, 0x380af: 0x6e004c20, - 0x380b0: 0x6e004e20, 0x380b1: 0x6e005020, 0x380b2: 0x6e39c220, 0x380b3: 0x6c0a5a20, - 0x380b4: 0x6c0a5c20, 0x380b5: 0x6c0a5e20, 0x380b6: 0x6c14b020, 0x380b7: 0x6c14b220, - 0x380b8: 0x6c14b420, 0x380b9: 0x6c14b620, 0x380ba: 0x6c14b820, 0x380bb: 0x6c14ba20, - 0x380bc: 0x6c14bc20, 0x380bd: 0x6c14be20, 0x380be: 0x6c14c020, 0x380bf: 0x6c14c220, - // Block 0xe03, offset 0x380c0 - 0x380c0: 0x6c14c420, 0x380c1: 0x6c266020, 0x380c2: 0x6c266220, 0x380c3: 0x6c266420, - 0x380c4: 0x6c266620, 0x380c5: 0x6c266820, 0x380c6: 0x6c266a20, 0x380c7: 0x6c266c20, - 0x380c8: 0x6c266e20, 0x380c9: 0x6c267020, 0x380ca: 0x6c267220, 0x380cb: 0x6c267420, - 0x380cc: 0x6c267620, 0x380cd: 0x6c267820, 0x380ce: 0x6c267a20, 0x380cf: 0x6c267c20, - 0x380d0: 0x6c267e20, 0x380d1: 0x6c268020, 0x380d2: 0x6c268220, 0x380d3: 0x6c3fba20, - 0x380d4: 0x6c3fbc20, 0x380d5: 0x6c3fbe20, 0x380d6: 0x6c3fc020, 0x380d7: 0x6c3fc220, - 0x380d8: 0x6c3fc420, 0x380d9: 0x6c3fc620, 0x380da: 0x6c3fc820, 0x380db: 0x6c3fca20, - 0x380dc: 0x6c3fcc20, 0x380dd: 0x6c3fce20, 0x380de: 0x6c3fd020, 0x380df: 0x6c3fd220, - 0x380e0: 0x6c3fd420, 0x380e1: 0x6c3fd620, 0x380e2: 0x6c3fd820, 0x380e3: 0x6c3fda20, - 0x380e4: 0x6c3fdc20, 0x380e5: 0x6c3fde20, 0x380e6: 0x6c3fe020, 0x380e7: 0x6c3fe220, - 0x380e8: 0x6c3fe420, 0x380e9: 0x6c3fe620, 0x380ea: 0x6c3fe820, 0x380eb: 0x6c3fea20, - 0x380ec: 0x6c3fec20, 0x380ed: 0x6c3fee20, 0x380ee: 0x6c3ff020, 0x380ef: 0x6c3ff220, - 0x380f0: 0x6c3ff420, 0x380f1: 0x6c3ff620, 0x380f2: 0x6c3ff820, 0x380f3: 0x6c3ffa20, - 0x380f4: 0x6c3ffc20, 0x380f5: 0x6c3ffe20, 0x380f6: 0x6c400020, 0x380f7: 0x6c5f1220, - 0x380f8: 0x6c5f1420, 0x380f9: 0x6c5f1620, 0x380fa: 0x6c5f1820, 0x380fb: 0x6c5f1a20, - 0x380fc: 0x6c5f1c20, 0x380fd: 0x6c5f1e20, 0x380fe: 0x6c5f2020, 0x380ff: 0x6c5f2220, - // Block 0xe04, offset 0x38100 - 0x38100: 0x6c5f2420, 0x38101: 0x6c5f2620, 0x38102: 0x6c5f2820, 0x38103: 0x6c5f2a20, - 0x38104: 0x6c5f2c20, 0x38105: 0x6c5f2e20, 0x38106: 0x6c5f3020, 0x38107: 0x6c5f3220, - 0x38108: 0x6c5f3420, 0x38109: 0x6c5f3620, 0x3810a: 0x6c5f3820, 0x3810b: 0x6c5f3a20, - 0x3810c: 0x6c5f3c20, 0x3810d: 0x6c5f3e20, 0x3810e: 0x6c5f4020, 0x3810f: 0x6c5f4220, - 0x38110: 0x6c5f4420, 0x38111: 0x6c5f4620, 0x38112: 0x6c5f4820, 0x38113: 0x6c5f4a20, - 0x38114: 0x6c5f4c20, 0x38115: 0x6c5f4e20, 0x38116: 0x6c5f5020, 0x38117: 0x6c5f5220, - 0x38118: 0x6c5f5420, 0x38119: 0x6c5f5620, 0x3811a: 0x6c5f5820, 0x3811b: 0x6c5f5a20, - 0x3811c: 0x6c5f5c20, 0x3811d: 0x6c5f5e20, 0x3811e: 0x6c5f6020, 0x3811f: 0x6c5f6220, - 0x38120: 0x6c5f6420, 0x38121: 0x6c5f6620, 0x38122: 0x6c5f6820, 0x38123: 0x6c5f6a20, - 0x38124: 0x6c5f6c20, 0x38125: 0x6c5f6e20, 0x38126: 0x6c5f7020, 0x38127: 0x6c5f7220, - 0x38128: 0x6c5f7420, 0x38129: 0x6c5f7620, 0x3812a: 0x6c5f7820, 0x3812b: 0x6c5f7a20, - 0x3812c: 0x6c5f7c20, 0x3812d: 0x6c841e20, 0x3812e: 0x6c842020, 0x3812f: 0x6c842220, - 0x38130: 0x6c842420, 0x38131: 0x6c842620, 0x38132: 0x6c842820, 0x38133: 0x6c842a20, - 0x38134: 0x6c842c20, 0x38135: 0x6c842e20, 0x38136: 0x6c843020, 0x38137: 0x6c843220, - 0x38138: 0x6c843420, 0x38139: 0x6c843620, 0x3813a: 0x6c843820, 0x3813b: 0x6c843a20, - 0x3813c: 0x6c843c20, 0x3813d: 0x6c843e20, 0x3813e: 0x6c844020, 0x3813f: 0x6c844220, - // Block 0xe05, offset 0x38140 - 0x38140: 0x6c844420, 0x38141: 0x6c844620, 0x38142: 0x6c844820, 0x38143: 0x6c844a20, - 0x38144: 0x6c844c20, 0x38145: 0x6c844e20, 0x38146: 0x6c845020, 0x38147: 0x6c845220, - 0x38148: 0x6c845420, 0x38149: 0x6c845620, 0x3814a: 0x6c845820, 0x3814b: 0x6c845a20, - 0x3814c: 0x6c845c20, 0x3814d: 0x6c845e20, 0x3814e: 0x6c846020, 0x3814f: 0x6c846220, - 0x38150: 0x6c846420, 0x38151: 0x6c846620, 0x38152: 0x6c846820, 0x38153: 0x6c846a20, - 0x38154: 0x6c846c20, 0x38155: 0x6c846e20, 0x38156: 0x6c847020, 0x38157: 0x6c847220, - 0x38158: 0x6c847420, 0x38159: 0x6c847620, 0x3815a: 0x6c847820, 0x3815b: 0x6c847a20, - 0x3815c: 0x6c847c20, 0x3815d: 0x6c847e20, 0x3815e: 0x6c848020, 0x3815f: 0x6c848220, - 0x38160: 0x6c848420, 0x38161: 0x6c848620, 0x38162: 0x6c848820, 0x38163: 0x6c848a20, - 0x38164: 0x6c848c20, 0x38165: 0x6c848e20, 0x38166: 0x6c849020, 0x38167: 0x6c849220, - 0x38168: 0x6c849420, 0x38169: 0x6c849620, 0x3816a: 0x6c849820, 0x3816b: 0x6c849a20, - 0x3816c: 0x6c849c20, 0x3816d: 0x6c849e20, 0x3816e: 0x6c84a020, 0x3816f: 0x6c84a220, - 0x38170: 0x6c84a420, 0x38171: 0x6c84a620, 0x38172: 0x6c84a820, 0x38173: 0x6c84aa20, - 0x38174: 0x6c84ac20, 0x38175: 0x6c84ae20, 0x38176: 0x6cad1020, 0x38177: 0x6cad1220, - 0x38178: 0x6cad1420, 0x38179: 0x6cad1620, 0x3817a: 0x6cad1820, 0x3817b: 0x6cad1a20, - 0x3817c: 0x6cad1c20, 0x3817d: 0x6cad1e20, 0x3817e: 0x6cad2020, 0x3817f: 0x6cad2220, - // Block 0xe06, offset 0x38180 - 0x38180: 0x6cad2420, 0x38181: 0x6cad2620, 0x38182: 0x6cad2820, 0x38183: 0x6cad2a20, - 0x38184: 0x6cad2c20, 0x38185: 0x6cad2e20, 0x38186: 0x6cad3020, 0x38187: 0x6cad3220, - 0x38188: 0x6cad3420, 0x38189: 0x6cad3620, 0x3818a: 0x6cad3820, 0x3818b: 0x6cad3a20, - 0x3818c: 0x6cad3c20, 0x3818d: 0x6cad3e20, 0x3818e: 0x6cad4020, 0x3818f: 0x6cad4220, - 0x38190: 0x6cad4420, 0x38191: 0x6cad4620, 0x38192: 0x6cad4820, 0x38193: 0x6cad4a20, - 0x38194: 0x6cad4c20, 0x38195: 0x6cad4e20, 0x38196: 0x6cad5020, 0x38197: 0x6cad5220, - 0x38198: 0x6cad5420, 0x38199: 0x6cad5620, 0x3819a: 0x6cad5820, 0x3819b: 0x6cad5a20, - 0x3819c: 0x6cad5c20, 0x3819d: 0x6cad5e20, 0x3819e: 0x6cad6020, 0x3819f: 0x6cad6220, - 0x381a0: 0x6cad6420, 0x381a1: 0x6cad6620, 0x381a2: 0x6cad6820, 0x381a3: 0x6cad6a20, - 0x381a4: 0x6cad6c20, 0x381a5: 0x6cad6e20, 0x381a6: 0x6cad7020, 0x381a7: 0x6cad7220, - 0x381a8: 0x6cad7420, 0x381a9: 0x6cad7620, 0x381aa: 0x6cad7820, 0x381ab: 0x6cad7a20, - 0x381ac: 0x6cad7c20, 0x381ad: 0x6cad7e20, 0x381ae: 0x6cad8020, 0x381af: 0x6cad8220, - 0x381b0: 0x6cad8420, 0x381b1: 0x6cdbf020, 0x381b2: 0x6cad8620, 0x381b3: 0x6cad8820, - 0x381b4: 0x6cad8a20, 0x381b5: 0x6cad8c20, 0x381b6: 0x6cad8e20, 0x381b7: 0x6cad9020, - 0x381b8: 0x6cad9220, 0x381b9: 0x6cad9420, 0x381ba: 0x6cad9620, 0x381bb: 0x6cad9820, - 0x381bc: 0x6cad9a20, 0x381bd: 0x6cad9c20, 0x381be: 0x6cad9e20, 0x381bf: 0x6cada020, - // Block 0xe07, offset 0x381c0 - 0x381c0: 0x6cada220, 0x381c1: 0x6cada420, 0x381c2: 0x6cada620, 0x381c3: 0x6cada820, - 0x381c4: 0x6cadaa20, 0x381c5: 0x6cadac20, 0x381c6: 0x6cadae20, 0x381c7: 0x6cadb020, - 0x381c8: 0x6cadb220, 0x381c9: 0x6cadb420, 0x381ca: 0x6cadb620, 0x381cb: 0x6cadb820, - 0x381cc: 0x6cadba20, 0x381cd: 0x6cadbc20, 0x381ce: 0x6cadbe20, 0x381cf: 0x6cadc020, - 0x381d0: 0x6cadc220, 0x381d1: 0x6cadc420, 0x381d2: 0x6cadc620, 0x381d3: 0x6cadc820, - 0x381d4: 0x6cadca20, 0x381d5: 0x6cadcc20, 0x381d6: 0x6cdbf220, 0x381d7: 0x6cadce20, - 0x381d8: 0x6cadd020, 0x381d9: 0x6cadd220, 0x381da: 0x6cadd420, 0x381db: 0x6cadd620, - 0x381dc: 0x6cadd820, 0x381dd: 0x6cadda20, 0x381de: 0x6caddc20, 0x381df: 0x6cadde20, - 0x381e0: 0x6cade020, 0x381e1: 0x6cade220, 0x381e2: 0x6cade420, 0x381e3: 0x6cade620, - 0x381e4: 0x6cade820, 0x381e5: 0x6cadea20, 0x381e6: 0x6cadec20, 0x381e7: 0x6cadee20, - 0x381e8: 0x6cadf020, 0x381e9: 0x6cadf220, 0x381ea: 0x6cdbf420, 0x381eb: 0x6cdbf620, - 0x381ec: 0x6cdbf820, 0x381ed: 0x6cdbfa20, 0x381ee: 0x6cdbfc20, 0x381ef: 0x6cdbfe20, - 0x381f0: 0x6cdc0020, 0x381f1: 0x6cdc0220, 0x381f2: 0x6cdc0420, 0x381f3: 0x6cdc0620, - 0x381f4: 0x6cdc0820, 0x381f5: 0x6cdc0a20, 0x381f6: 0x6cdc0c20, 0x381f7: 0x6cdc0e20, - 0x381f8: 0x6cdc1020, 0x381f9: 0x6cdc1220, 0x381fa: 0x6cdc1420, 0x381fb: 0x6cdc1620, - 0x381fc: 0x6cdc1820, 0x381fd: 0x6cdc1a20, 0x381fe: 0x6cdc1c20, 0x381ff: 0x6cdc1e20, - // Block 0xe08, offset 0x38200 - 0x38200: 0x6cdc2020, 0x38201: 0x6cdc2220, 0x38202: 0x6cdc2420, 0x38203: 0x6cdc2620, - 0x38204: 0x6cdc2820, 0x38205: 0x6cdc2a20, 0x38206: 0x6cdc2c20, 0x38207: 0x6cdc2e20, - 0x38208: 0x6cdc3020, 0x38209: 0x6cdc3220, 0x3820a: 0x6cdc3420, 0x3820b: 0x6cdc3620, - 0x3820c: 0x6cdc3820, 0x3820d: 0x6cdc3a20, 0x3820e: 0x6cdc3c20, 0x3820f: 0x6cdc3e20, - 0x38210: 0x6cdc4020, 0x38211: 0x6cdc4220, 0x38212: 0x6cdc4420, 0x38213: 0x6cdc4620, - 0x38214: 0x6cdc4820, 0x38215: 0x6cdc4a20, 0x38216: 0x6cdc4c20, 0x38217: 0x6cdc4e20, - 0x38218: 0x6cdc5020, 0x38219: 0x6cdc5220, 0x3821a: 0x6cdc5420, 0x3821b: 0x6cdc5620, - 0x3821c: 0x6cdc5820, 0x3821d: 0x6cdc5a20, 0x3821e: 0x6cdc5c20, 0x3821f: 0x6cdc5e20, - 0x38220: 0x6cdc6020, 0x38221: 0x6cdc6220, 0x38222: 0x6cdc6420, 0x38223: 0x6cdc6620, - 0x38224: 0x6cdc6820, 0x38225: 0x6cdc6a20, 0x38226: 0x6cdc6c20, 0x38227: 0x6cdc6e20, - 0x38228: 0x6cdc7020, 0x38229: 0x6cdc7220, 0x3822a: 0x6cdc7420, 0x3822b: 0x6cdc7620, - 0x3822c: 0x6cdc7820, 0x3822d: 0x6cdc7a20, 0x3822e: 0x6cdc7c20, 0x3822f: 0x6cdc7e20, - 0x38230: 0x6cdc8020, 0x38231: 0x6cdc8220, 0x38232: 0x6cdc8420, 0x38233: 0x6cdc8620, - 0x38234: 0x6cdc8820, 0x38235: 0x6cdc8a20, 0x38236: 0x6cdc8c20, 0x38237: 0x6cdc8e20, - 0x38238: 0x6cdc9020, 0x38239: 0x6cdc9220, 0x3823a: 0x6cdc9420, 0x3823b: 0x6cdc9620, - 0x3823c: 0x6cdc9820, 0x3823d: 0x6cdc9a20, 0x3823e: 0x6cdc9c20, 0x3823f: 0x6cdc9e20, - // Block 0xe09, offset 0x38240 - 0x38240: 0x6cdca020, 0x38241: 0x6cdca220, 0x38242: 0x6cdca420, 0x38243: 0x6cdca620, - 0x38244: 0x6cdca820, 0x38245: 0x6cdcaa20, 0x38246: 0x6cdcac20, 0x38247: 0x6cdcae20, - 0x38248: 0x6cdcb020, 0x38249: 0x6cdcb220, 0x3824a: 0x6cdcb420, 0x3824b: 0x6cdcb620, - 0x3824c: 0x6cdcb820, 0x3824d: 0x6cdcba20, 0x3824e: 0x6cdcbc20, 0x3824f: 0x6cdcbe20, - 0x38250: 0x6cdcc020, 0x38251: 0x6cdcc220, 0x38252: 0x6cdcc420, 0x38253: 0x6cdcc620, - 0x38254: 0x6cdcc820, 0x38255: 0x6cdcca20, 0x38256: 0x6cdccc20, 0x38257: 0x6cdcce20, - 0x38258: 0x6cdcd020, 0x38259: 0x6cdcd220, 0x3825a: 0x6cdcd420, 0x3825b: 0x6cdcd620, - 0x3825c: 0x6cdcd820, 0x3825d: 0x6cdcda20, 0x3825e: 0x6cdcdc20, 0x3825f: 0x6cdcde20, - 0x38260: 0x6cdce020, 0x38261: 0x6cdce220, 0x38262: 0x6cdce420, 0x38263: 0x6cdce620, - 0x38264: 0x6cdce820, 0x38265: 0x6cdcea20, 0x38266: 0x6cdcec20, 0x38267: 0x6cdcee20, - 0x38268: 0x6cdcf020, 0x38269: 0x6cdcf220, 0x3826a: 0x6cdcf420, 0x3826b: 0x6cdcf620, - 0x3826c: 0x6cdcf820, 0x3826d: 0x6cdcfa20, 0x3826e: 0x6cdcfc20, 0x3826f: 0x6cdcfe20, - 0x38270: 0x6cdd0020, 0x38271: 0x6cdd0220, 0x38272: 0x6cdd0420, 0x38273: 0x6cdd0620, - 0x38274: 0x6cdd0820, 0x38275: 0x6cdd0a20, 0x38276: 0x6cdd0c20, 0x38277: 0x6cdd0e20, - 0x38278: 0x6cdd1020, 0x38279: 0x6cdd1220, 0x3827a: 0x6cdd1420, 0x3827b: 0x6cdd1620, - 0x3827c: 0x6cdd1820, 0x3827d: 0x6cdd1a20, 0x3827e: 0x6cdd1c20, 0x3827f: 0x6cdd1e20, - // Block 0xe0a, offset 0x38280 - 0x38280: 0x6cdd2020, 0x38281: 0x6d0a5020, 0x38282: 0x6d0a5220, 0x38283: 0x6d0a5420, - 0x38284: 0x6d0a5620, 0x38285: 0x6d0a5820, 0x38286: 0x6d0a5a20, 0x38287: 0x6d0a5c20, - 0x38288: 0x6d0a5e20, 0x38289: 0x6d0a6020, 0x3828a: 0x6d0a6220, 0x3828b: 0x6d0a6420, - 0x3828c: 0x6d0a6620, 0x3828d: 0x6d0a6820, 0x3828e: 0x6d0a6a20, 0x3828f: 0x6d0a6c20, - 0x38290: 0x6d0a6e20, 0x38291: 0x6d0a7020, 0x38292: 0x6d0a7220, 0x38293: 0x6d0a7420, - 0x38294: 0x6d0a7620, 0x38295: 0x6d0a7820, 0x38296: 0x6d0a7a20, 0x38297: 0x6d0a7c20, - 0x38298: 0x6d0a7e20, 0x38299: 0x6d0a8020, 0x3829a: 0x6d0a8220, 0x3829b: 0x6d0a8420, - 0x3829c: 0x6d0a8620, 0x3829d: 0x6d0a8820, 0x3829e: 0x6d0a8a20, 0x3829f: 0x6d0a8c20, - 0x382a0: 0x6d0a8e20, 0x382a1: 0x6d0a9020, 0x382a2: 0x6d0a9220, 0x382a3: 0x6d0a9420, - 0x382a4: 0x6d0a9620, 0x382a5: 0x6d0a9820, 0x382a6: 0x6d0a9a20, 0x382a7: 0x6d0a9c20, - 0x382a8: 0x6d0a9e20, 0x382a9: 0x6d0aa020, 0x382aa: 0x6d0aa220, 0x382ab: 0x6d0aa420, - 0x382ac: 0x6d0aa620, 0x382ad: 0x6d0aa820, 0x382ae: 0x6d0aaa20, 0x382af: 0x6d0aac20, - 0x382b0: 0x6d0aae20, 0x382b1: 0x6d0ab020, 0x382b2: 0x6d0ab220, 0x382b3: 0x6d0ab420, - 0x382b4: 0x6d0ab620, 0x382b5: 0x6d0ab820, 0x382b6: 0x6d0aba20, 0x382b7: 0x6d0abc20, - 0x382b8: 0x6d0abe20, 0x382b9: 0x6d0ac020, 0x382ba: 0x6d0ac220, 0x382bb: 0x6d0ac420, - 0x382bc: 0x6d0ac620, 0x382bd: 0x6d0ac820, 0x382be: 0x6d0aca20, 0x382bf: 0x6d0acc20, - // Block 0xe0b, offset 0x382c0 - 0x382c0: 0x6d0ace20, 0x382c1: 0x6d0ad020, 0x382c2: 0x6d0ad220, 0x382c3: 0x6d0ad420, - 0x382c4: 0x6d0ad620, 0x382c5: 0x6d0ad820, 0x382c6: 0x6d0ada20, 0x382c7: 0x6d0adc20, - 0x382c8: 0x6d0ade20, 0x382c9: 0x6d0ae020, 0x382ca: 0x6d0ae220, 0x382cb: 0x6d0ae420, - 0x382cc: 0x6d0ae620, 0x382cd: 0x6d0ae820, 0x382ce: 0x6d0aea20, 0x382cf: 0x6d0aec20, - 0x382d0: 0x6d0aee20, 0x382d1: 0x6d0af020, 0x382d2: 0x6d0af220, 0x382d3: 0x6d0af420, - 0x382d4: 0x6d0af620, 0x382d5: 0x6d0af820, 0x382d6: 0x6d0afa20, 0x382d7: 0x6d0afc20, - 0x382d8: 0x6d0afe20, 0x382d9: 0x6d0b0020, 0x382da: 0x6d0b0220, 0x382db: 0x6d0b0420, - 0x382dc: 0x6d0b0620, 0x382dd: 0x6d0b0820, 0x382de: 0x6d0b0a20, 0x382df: 0x6d0b0c20, - 0x382e0: 0x6d0b0e20, 0x382e1: 0x6d0b1020, 0x382e2: 0x6d0b1220, 0x382e3: 0x6d0b1420, - 0x382e4: 0x6d0b1620, 0x382e5: 0x6d0b1820, 0x382e6: 0x6d0b1a20, 0x382e7: 0x6d0b1c20, - 0x382e8: 0x6d0b1e20, 0x382e9: 0x6d0b2020, 0x382ea: 0x6d0b2220, 0x382eb: 0x6d0b2420, - 0x382ec: 0x6d0b2620, 0x382ed: 0x6d0b2820, 0x382ee: 0x6d0b2a20, 0x382ef: 0x6d0b2c20, - 0x382f0: 0x6d0b2e20, 0x382f1: 0x6d0b3020, 0x382f2: 0x6d0b3220, 0x382f3: 0x6d0b3420, - 0x382f4: 0x6d0b3620, 0x382f5: 0x6d0b3820, 0x382f6: 0x6cfba420, 0x382f7: 0x6d0b3a20, - 0x382f8: 0x6d0b3c20, 0x382f9: 0x6d0b3e20, 0x382fa: 0x6d0b4020, 0x382fb: 0x6d0b4220, - 0x382fc: 0x6d0b4420, 0x382fd: 0x6d0b4620, 0x382fe: 0x6d0b4820, 0x382ff: 0x6d0b4a20, - // Block 0xe0c, offset 0x38300 - 0x38300: 0x6d0b4c20, 0x38301: 0x6d0b4e20, 0x38302: 0x6d0b5020, 0x38303: 0x6d0b5220, - 0x38304: 0x6d0b5420, 0x38305: 0x6d0b5620, 0x38306: 0x6d0b5820, 0x38307: 0x6d385420, - 0x38308: 0x6d0b5a20, 0x38309: 0x6d0b5c20, 0x3830a: 0x6d0b5e20, 0x3830b: 0x6d0b6020, - 0x3830c: 0x6d0b6220, 0x3830d: 0x6d0b6420, 0x3830e: 0x6d0b6620, 0x3830f: 0x6d0b6820, - 0x38310: 0x6d0b6a20, 0x38311: 0x6d0b6c20, 0x38312: 0x6d0b6e20, 0x38313: 0x6d0b7020, - 0x38314: 0x6d0b7220, 0x38315: 0x6d0b7420, 0x38316: 0x6d0b7620, 0x38317: 0x6d0b7820, - 0x38318: 0x6d0b7a20, 0x38319: 0x6d0b7c20, 0x3831a: 0x6d0b7e20, 0x3831b: 0x6d0b8020, - 0x3831c: 0x6d0b8220, 0x3831d: 0x6d0b8420, 0x3831e: 0x6d0b8620, 0x3831f: 0x6d0b8820, - 0x38320: 0x6d0b8a20, 0x38321: 0x6d385620, 0x38322: 0x6d385820, 0x38323: 0x6d385a20, - 0x38324: 0x6d385c20, 0x38325: 0x6d385e20, 0x38326: 0x6d386020, 0x38327: 0x6d386220, - 0x38328: 0x6d386420, 0x38329: 0x6d386620, 0x3832a: 0x6d386820, 0x3832b: 0x6d386a20, - 0x3832c: 0x6d386c20, 0x3832d: 0x6d386e20, 0x3832e: 0x6d387020, 0x3832f: 0x6d387220, - 0x38330: 0x6d387420, 0x38331: 0x6d387620, 0x38332: 0x6d387820, 0x38333: 0x6d387a20, - 0x38334: 0x6d387c20, 0x38335: 0x6d387e20, 0x38336: 0x6d388020, 0x38337: 0x6d388220, - 0x38338: 0x6d388420, 0x38339: 0x6d388620, 0x3833a: 0x6d388820, 0x3833b: 0x6d388a20, - 0x3833c: 0x6d388c20, 0x3833d: 0x6d388e20, 0x3833e: 0x6d389020, 0x3833f: 0x6d389220, - // Block 0xe0d, offset 0x38340 - 0x38340: 0x6d389420, 0x38341: 0x6d389620, 0x38342: 0x6d389820, 0x38343: 0x6d389a20, - 0x38344: 0x6d389c20, 0x38345: 0x6d389e20, 0x38346: 0x6d38a020, 0x38347: 0x6d38a220, - 0x38348: 0x6d38a420, 0x38349: 0x6d38a620, 0x3834a: 0x6d38a820, 0x3834b: 0x6d38aa20, - 0x3834c: 0x6d38ac20, 0x3834d: 0x6d38ae20, 0x3834e: 0x6d38b020, 0x3834f: 0x6d38b220, - 0x38350: 0x6d38b420, 0x38351: 0x6d38b620, 0x38352: 0x6d38b820, 0x38353: 0x6d38ba20, - 0x38354: 0x6d38bc20, 0x38355: 0x6d38be20, 0x38356: 0x6d38c020, 0x38357: 0x6d38c220, - 0x38358: 0x6d38c420, 0x38359: 0x6d38c620, 0x3835a: 0x6d38c820, 0x3835b: 0x6d38ca20, - 0x3835c: 0x6d38cc20, 0x3835d: 0x6d38ce20, 0x3835e: 0x6d38d020, 0x3835f: 0x6d38d220, - 0x38360: 0x6d38d420, 0x38361: 0x6d38d620, 0x38362: 0x6d38d820, 0x38363: 0x6d38da20, - 0x38364: 0x6d38dc20, 0x38365: 0x6d38de20, 0x38366: 0x6d38e020, 0x38367: 0x6d38e220, - 0x38368: 0x6d38e420, 0x38369: 0x6d38e620, 0x3836a: 0x6d38e820, 0x3836b: 0x6d38ea20, - 0x3836c: 0x6d38ec20, 0x3836d: 0x6d38ee20, 0x3836e: 0x6d38f020, 0x3836f: 0x6d38f220, - 0x38370: 0x6d38f420, 0x38371: 0x6d38f620, 0x38372: 0x6d38f820, 0x38373: 0x6d38fa20, - 0x38374: 0x6d38fc20, 0x38375: 0x6d38fe20, 0x38376: 0x6d390020, 0x38377: 0x6d390220, - 0x38378: 0x6d390420, 0x38379: 0x6d390620, 0x3837a: 0x6d390820, 0x3837b: 0x6d390a20, - 0x3837c: 0x6d390c20, 0x3837d: 0x6d390e20, 0x3837e: 0x6d391020, 0x3837f: 0x6d391220, - // Block 0xe0e, offset 0x38380 - 0x38380: 0x6d391420, 0x38381: 0x6d391620, 0x38382: 0x6d391820, 0x38383: 0x6d391a20, - 0x38384: 0x6d391c20, 0x38385: 0x6d391e20, 0x38386: 0x6d392020, 0x38387: 0x6d392220, - 0x38388: 0x6d392420, 0x38389: 0x6d392620, 0x3838a: 0x6d392820, 0x3838b: 0x6d392a20, - 0x3838c: 0x6d392c20, 0x3838d: 0x6d392e20, 0x3838e: 0x6d393020, 0x3838f: 0x6d393220, - 0x38390: 0x6d393420, 0x38391: 0x6d393620, 0x38392: 0x6d393820, 0x38393: 0x6d393a20, - 0x38394: 0x6d393c20, 0x38395: 0x6d393e20, 0x38396: 0x6d394020, 0x38397: 0x6d394220, - 0x38398: 0x6d394420, 0x38399: 0x6d394620, 0x3839a: 0x6d394820, 0x3839b: 0x6d394a20, - 0x3839c: 0x6d394c20, 0x3839d: 0x6d394e20, 0x3839e: 0x6d395020, 0x3839f: 0x6d395220, - 0x383a0: 0x6d395420, 0x383a1: 0x6d395620, 0x383a2: 0x6d395820, 0x383a3: 0x6d395a20, - 0x383a4: 0x6d395c20, 0x383a5: 0x6d395e20, 0x383a6: 0x6d396020, 0x383a7: 0x6d396220, - 0x383a8: 0x6d396420, 0x383a9: 0x6d396620, 0x383aa: 0x6d396820, 0x383ab: 0x6d396a20, - 0x383ac: 0x6d396c20, 0x383ad: 0x6d396e20, 0x383ae: 0x6d397020, 0x383af: 0x6d397220, - 0x383b0: 0x6d397420, 0x383b1: 0x6d397620, 0x383b2: 0x6d397820, 0x383b3: 0x6d397a20, - 0x383b4: 0x6d397c20, 0x383b5: 0x6d397e20, 0x383b6: 0x6d398020, 0x383b7: 0x6d398220, - 0x383b8: 0x6d398420, 0x383b9: 0x6d398620, 0x383ba: 0x6d398820, 0x383bb: 0x6d398a20, - 0x383bc: 0x6d398c20, 0x383bd: 0x6d398e20, 0x383be: 0x6d399020, 0x383bf: 0x6d64ba20, - // Block 0xe0f, offset 0x383c0 - 0x383c0: 0x6d64bc20, 0x383c1: 0x6d64be20, 0x383c2: 0x6d64c020, 0x383c3: 0x6d64c220, - 0x383c4: 0x6d64c420, 0x383c5: 0x6d64c620, 0x383c6: 0x6d64c820, 0x383c7: 0x6d64ca20, - 0x383c8: 0x6d64cc20, 0x383c9: 0x6d64ce20, 0x383ca: 0x6d64d020, 0x383cb: 0x6d64d220, - 0x383cc: 0x6d64d420, 0x383cd: 0x6d64d620, 0x383ce: 0x6d64d820, 0x383cf: 0x6d64da20, - 0x383d0: 0x6d64dc20, 0x383d1: 0x6d64de20, 0x383d2: 0x6d64e020, 0x383d3: 0x6d64e220, - 0x383d4: 0x6d64e420, 0x383d5: 0x6d64e620, 0x383d6: 0x6d64e820, 0x383d7: 0x6d64ea20, - 0x383d8: 0x6d64ec20, 0x383d9: 0x6d64ee20, 0x383da: 0x6d64f020, 0x383db: 0x6d64f220, - 0x383dc: 0x6d64f420, 0x383dd: 0x6d64f620, 0x383de: 0x6d64f820, 0x383df: 0x6d64fa20, - 0x383e0: 0x6d64fc20, 0x383e1: 0x6d64fe20, 0x383e2: 0x6d650020, 0x383e3: 0x6d650220, - 0x383e4: 0x6d650420, 0x383e5: 0x6d650620, 0x383e6: 0x6d650820, 0x383e7: 0x6d650a20, - 0x383e8: 0x6d650c20, 0x383e9: 0x6d650e20, 0x383ea: 0x6d651020, 0x383eb: 0x6d651220, - 0x383ec: 0x6d651420, 0x383ed: 0x6d651620, 0x383ee: 0x6d651820, 0x383ef: 0x6d651a20, - 0x383f0: 0x6d651c20, 0x383f1: 0x6d651e20, 0x383f2: 0x6d652020, 0x383f3: 0x6d652220, - 0x383f4: 0x6d652420, 0x383f5: 0x6d652620, 0x383f6: 0x6d652820, 0x383f7: 0x6d652a20, - 0x383f8: 0x6d652c20, 0x383f9: 0x6d652e20, 0x383fa: 0x6d653020, 0x383fb: 0x6d653220, - 0x383fc: 0x6d653420, 0x383fd: 0x6d8e6c20, 0x383fe: 0x6d653620, 0x383ff: 0x6d653820, - // Block 0xe10, offset 0x38400 - 0x38400: 0x6d653a20, 0x38401: 0x6d653c20, 0x38402: 0x6d653e20, 0x38403: 0x6d654020, - 0x38404: 0x6d654220, 0x38405: 0x6d654420, 0x38406: 0x6d654620, 0x38407: 0x6d654820, - 0x38408: 0x6d654a20, 0x38409: 0x6d654c20, 0x3840a: 0x6d654e20, 0x3840b: 0x6d655020, - 0x3840c: 0x6d655220, 0x3840d: 0x6d655420, 0x3840e: 0x6d655620, 0x3840f: 0x6d655820, - 0x38410: 0x6d655a20, 0x38411: 0x6d655c20, 0x38412: 0x6d655e20, 0x38413: 0x6d656020, - 0x38414: 0x6d656220, 0x38415: 0x6d656420, 0x38416: 0x6d656620, 0x38417: 0x6d656820, - 0x38418: 0x6d656a20, 0x38419: 0x6d656c20, 0x3841a: 0x6d656e20, 0x3841b: 0x6d657020, - 0x3841c: 0x6d657220, 0x3841d: 0x6d657420, 0x3841e: 0x6d657620, 0x3841f: 0x6d657820, - 0x38420: 0x6d657a20, 0x38421: 0x6d657c20, 0x38422: 0x6d657e20, 0x38423: 0x6d658020, - 0x38424: 0x6d658220, 0x38425: 0x6d658420, 0x38426: 0x6d658620, 0x38427: 0x6d658820, - 0x38428: 0x6d658a20, 0x38429: 0x6d658c20, 0x3842a: 0x6d658e20, 0x3842b: 0x6d659020, - 0x3842c: 0x6d659220, 0x3842d: 0x6d659420, 0x3842e: 0x6d659620, 0x3842f: 0x6d659820, - 0x38430: 0x6d659a20, 0x38431: 0x6d659c20, 0x38432: 0x6d659e20, 0x38433: 0x6d65a020, - 0x38434: 0x6d65a220, 0x38435: 0x6d65a420, 0x38436: 0x6d65a620, 0x38437: 0x6d65a820, - 0x38438: 0x6d65aa20, 0x38439: 0x6d65ac20, 0x3843a: 0x6d65ae20, 0x3843b: 0x6d65b020, - 0x3843c: 0x6d65b220, 0x3843d: 0x6d65b420, 0x3843e: 0x6d65b620, 0x3843f: 0x6d65b820, - // Block 0xe11, offset 0x38440 - 0x38440: 0x6d65ba20, 0x38441: 0x6d65bc20, 0x38442: 0x6d65be20, 0x38443: 0x6d65c020, - 0x38444: 0x6d65c220, 0x38445: 0x6e454c20, 0x38446: 0x6d8e6e20, 0x38447: 0x6d8e7020, - 0x38448: 0x6d8e7220, 0x38449: 0x6d8e7420, 0x3844a: 0x6d8e7620, 0x3844b: 0x6d8e7820, - 0x3844c: 0x6d8e7a20, 0x3844d: 0x6d8e7c20, 0x3844e: 0x6d8e7e20, 0x3844f: 0x6d8e8020, - 0x38450: 0x6d8e8220, 0x38451: 0x6d8e8420, 0x38452: 0x6d8e8620, 0x38453: 0x6d8e8820, - 0x38454: 0x6d8e8a20, 0x38455: 0x6d8e8c20, 0x38456: 0x6d8e8e20, 0x38457: 0x6d8e9020, - 0x38458: 0x6d8e9220, 0x38459: 0x6d8e9420, 0x3845a: 0x6d8e9620, 0x3845b: 0x6d8e9820, - 0x3845c: 0x6d8e9a20, 0x3845d: 0x6d8e9c20, 0x3845e: 0x6d8e9e20, 0x3845f: 0x6d8ea020, - 0x38460: 0x6d8ea220, 0x38461: 0x6d8ea420, 0x38462: 0x6d8ea620, 0x38463: 0x6d8ea820, - 0x38464: 0x6d8eaa20, 0x38465: 0x6d8eac20, 0x38466: 0x6d8eae20, 0x38467: 0x6d8eb020, - 0x38468: 0x6d8eb220, 0x38469: 0x6d8eb420, 0x3846a: 0x6d8eb620, 0x3846b: 0x6d8eb820, - 0x3846c: 0x6d8eba20, 0x3846d: 0x6d8ebc20, 0x3846e: 0x6d8ebe20, 0x3846f: 0x6d8ec020, - 0x38470: 0x6d8ec220, 0x38471: 0x6d8ec420, 0x38472: 0x6d8ec620, 0x38473: 0x6d8ec820, - 0x38474: 0x6d8eca20, 0x38475: 0x6d8ecc20, 0x38476: 0x6d8ece20, 0x38477: 0x6d8ed020, - 0x38478: 0x6d8ed220, 0x38479: 0x6d8ed420, 0x3847a: 0x6d8ed620, 0x3847b: 0x6d8ed820, - 0x3847c: 0x6d8eda20, 0x3847d: 0x6d8edc20, 0x3847e: 0x6d8ede20, 0x3847f: 0x6d8ee020, - // Block 0xe12, offset 0x38480 - 0x38480: 0x6d8ee220, 0x38481: 0x6d8ee420, 0x38482: 0x6d8ee620, 0x38483: 0x6d8ee820, - 0x38484: 0x6d8eea20, 0x38485: 0x6d8eec20, 0x38486: 0x6d8eee20, 0x38487: 0x6dc5f420, - 0x38488: 0x6d8ef020, 0x38489: 0x6d8ef220, 0x3848a: 0x6d8ef420, 0x3848b: 0x6d8ef620, - 0x3848c: 0x6d8ef820, 0x3848d: 0x6d8efa20, 0x3848e: 0x6d8efc20, 0x3848f: 0x6d8efe20, - 0x38490: 0x6d8f0020, 0x38491: 0x6d8f0220, 0x38492: 0x6d8f0420, 0x38493: 0x6d8f0620, - 0x38494: 0x6d8f0820, 0x38495: 0x6d8f0a20, 0x38496: 0x6d8f0c20, 0x38497: 0x6d8f0e20, - 0x38498: 0x6d8f1020, 0x38499: 0x6d8f1220, 0x3849a: 0x6d8f1420, 0x3849b: 0x6d8f1620, - 0x3849c: 0x6d8f1820, 0x3849d: 0x6d8f1a20, 0x3849e: 0x6d8f1c20, 0x3849f: 0x6d8f1e20, - 0x384a0: 0x6d8f2020, 0x384a1: 0x6d8f2220, 0x384a2: 0x6d8f2420, 0x384a3: 0x6d8f2620, - 0x384a4: 0x6d8f2820, 0x384a5: 0x6d8f2a20, 0x384a6: 0x6d8f2c20, 0x384a7: 0x6d8f2e20, - 0x384a8: 0x6d8f3020, 0x384a9: 0x6d8f3220, 0x384aa: 0x6d8f3420, 0x384ab: 0x6d8f3620, - 0x384ac: 0x6d8f3820, 0x384ad: 0x6d8f3a20, 0x384ae: 0x6d8f3c20, 0x384af: 0x6d8f3e20, - 0x384b0: 0x6d8f4020, 0x384b1: 0x6d8f4220, 0x384b2: 0x6d8f4420, 0x384b3: 0x6d8f4620, - 0x384b4: 0x6d8f4820, 0x384b5: 0x6d8f4a20, 0x384b6: 0x6d8f4c20, 0x384b7: 0x6d8f4e20, - 0x384b8: 0x6d8f5020, 0x384b9: 0x6d8f5220, 0x384ba: 0x6d8f5420, 0x384bb: 0x6d8f5620, - 0x384bc: 0x6d8f5820, 0x384bd: 0x6d8f5a20, 0x384be: 0x6db26e20, 0x384bf: 0x6d8f5c20, - // Block 0xe13, offset 0x384c0 - 0x384c0: 0x6d8f5e20, 0x384c1: 0x6d8f6020, 0x384c2: 0x6d8f6220, 0x384c3: 0x6d8f6420, - 0x384c4: 0x6d8f6620, 0x384c5: 0x6d8f6820, 0x384c6: 0x6d8f6a20, 0x384c7: 0x6d8f6c20, - 0x384c8: 0x6d8f6e20, 0x384c9: 0x6d8f7020, 0x384ca: 0x6d8f7220, 0x384cb: 0x6d8f7420, - 0x384cc: 0x6d8f7620, 0x384cd: 0x6d8f7820, 0x384ce: 0x6d8f7a20, 0x384cf: 0x6d8f7c20, - 0x384d0: 0x6d8f7e20, 0x384d1: 0x6d8f8020, 0x384d2: 0x6d8f8220, 0x384d3: 0x6d8f8420, - 0x384d4: 0x6d8f8620, 0x384d5: 0x6d8f8820, 0x384d6: 0x6d8f8a20, 0x384d7: 0x6d8f8c20, - 0x384d8: 0x6d8f8e20, 0x384d9: 0x6d8f9020, 0x384da: 0x6d8f9220, 0x384db: 0x6d8f9420, - 0x384dc: 0x6d8f9620, 0x384dd: 0x6d8f9820, 0x384de: 0x6d8f9a20, 0x384df: 0x6d8f9c20, - 0x384e0: 0x6d8f9e20, 0x384e1: 0x6d8fa020, 0x384e2: 0x6d8fa220, 0x384e3: 0x6d8fa420, - 0x384e4: 0x6d8fa620, 0x384e5: 0x6d8fa820, 0x384e6: 0x6d8faa20, 0x384e7: 0x6d8fac20, - 0x384e8: 0x6d8fae20, 0x384e9: 0x6db27020, 0x384ea: 0x6db27220, 0x384eb: 0x6db27420, - 0x384ec: 0x6db27620, 0x384ed: 0x6db27820, 0x384ee: 0x6db27a20, 0x384ef: 0x6db27c20, - 0x384f0: 0x6db27e20, 0x384f1: 0x6db28020, 0x384f2: 0x6db28220, 0x384f3: 0x6db28420, - 0x384f4: 0x6db28620, 0x384f5: 0x6db28820, 0x384f6: 0x6db28a20, 0x384f7: 0x6db28c20, - 0x384f8: 0x6db28e20, 0x384f9: 0x6db29020, 0x384fa: 0x6db29220, 0x384fb: 0x6db29420, - 0x384fc: 0x6db29620, 0x384fd: 0x6db29820, 0x384fe: 0x6db29a20, 0x384ff: 0x6db29c20, - // Block 0xe14, offset 0x38500 - 0x38500: 0x6db29e20, 0x38501: 0x6db2a020, 0x38502: 0x6db2a220, 0x38503: 0x6db2a420, - 0x38504: 0x6db2a620, 0x38505: 0x6db2a820, 0x38506: 0x6db2aa20, 0x38507: 0x6db2ac20, - 0x38508: 0x6db2ae20, 0x38509: 0x6db2b020, 0x3850a: 0x6db2b220, 0x3850b: 0x6db2b420, - 0x3850c: 0x6db2b620, 0x3850d: 0x6db2b820, 0x3850e: 0x6db2ba20, 0x3850f: 0x6db2bc20, - 0x38510: 0x6db2be20, 0x38511: 0x6db2c020, 0x38512: 0x6db2c220, 0x38513: 0x6db2c420, - 0x38514: 0x6db2c620, 0x38515: 0x6db2c820, 0x38516: 0x6db2ca20, 0x38517: 0x6db2cc20, - 0x38518: 0x6db2ce20, 0x38519: 0x6db2d020, 0x3851a: 0x6db2d220, 0x3851b: 0x6db2d420, - 0x3851c: 0x6db2d620, 0x3851d: 0x6db2d820, 0x3851e: 0x6db2da20, 0x3851f: 0x6db2dc20, - 0x38520: 0x6db2de20, 0x38521: 0x6db2e020, 0x38522: 0x6db2e220, 0x38523: 0x6db2e420, - 0x38524: 0x6db2e620, 0x38525: 0x6db2e820, 0x38526: 0x6db2ea20, 0x38527: 0x6db2ec20, - 0x38528: 0x6db2ee20, 0x38529: 0x6db2f020, 0x3852a: 0x6db2f220, 0x3852b: 0x6db2f420, - 0x3852c: 0x6db2f620, 0x3852d: 0x6d8fb020, 0x3852e: 0x6db2f820, 0x3852f: 0x6db2fa20, - 0x38530: 0x6db2fc20, 0x38531: 0x6db2fe20, 0x38532: 0x6db30020, 0x38533: 0x6db30220, - 0x38534: 0x6db30420, 0x38535: 0x6db30620, 0x38536: 0x6db30820, 0x38537: 0x6db30a20, - 0x38538: 0x6db30c20, 0x38539: 0x6db30e20, 0x3853a: 0x6db31020, 0x3853b: 0x6db31220, - 0x3853c: 0x6db31420, 0x3853d: 0x6db31620, 0x3853e: 0x6db31820, 0x3853f: 0x6db31a20, - // Block 0xe15, offset 0x38540 - 0x38540: 0x6db31c20, 0x38541: 0x6db31e20, 0x38542: 0x6db32020, 0x38543: 0x6db32220, - 0x38544: 0x6db32420, 0x38545: 0x6db32620, 0x38546: 0x6db32820, 0x38547: 0x6db32a20, - 0x38548: 0x6db32c20, 0x38549: 0x6db32e20, 0x3854a: 0x6db33020, 0x3854b: 0x6db33220, - 0x3854c: 0x6db33420, 0x3854d: 0x6db33620, 0x3854e: 0x6db33820, 0x3854f: 0x6db33a20, - 0x38550: 0x6db33c20, 0x38551: 0x6db33e20, 0x38552: 0x6db34020, 0x38553: 0x6db34220, - 0x38554: 0x6db34420, 0x38555: 0x6db34620, 0x38556: 0x6db34820, 0x38557: 0x6db34a20, - 0x38558: 0x6db34c20, 0x38559: 0x6db34e20, 0x3855a: 0x6db35020, 0x3855b: 0x6db35220, - 0x3855c: 0x6db35420, 0x3855d: 0x6db35620, 0x3855e: 0x6db35820, 0x3855f: 0x6db35a20, - 0x38560: 0x6db35c20, 0x38561: 0x6db35e20, 0x38562: 0x6db36020, 0x38563: 0x6db36220, - 0x38564: 0x6db36420, 0x38565: 0x6db36620, 0x38566: 0x6db36820, 0x38567: 0x6db36a20, - 0x38568: 0x6db36c20, 0x38569: 0x6db36e20, 0x3856a: 0x6dd19420, 0x3856b: 0x6dd19620, - 0x3856c: 0x6dd19820, 0x3856d: 0x6dd19a20, 0x3856e: 0x6dd19c20, 0x3856f: 0x6dd19e20, - 0x38570: 0x6dd1a020, 0x38571: 0x6dd1a220, 0x38572: 0x6dd1a420, 0x38573: 0x6dd1a620, - 0x38574: 0x6dd1a820, 0x38575: 0x6dd1aa20, 0x38576: 0x6dd1ac20, 0x38577: 0x6dd1ae20, - 0x38578: 0x6dd1b020, 0x38579: 0x6dd1b220, 0x3857a: 0x6dd1b420, 0x3857b: 0x6dd1b620, - 0x3857c: 0x6dd1b820, 0x3857d: 0x6dd1ba20, 0x3857e: 0x6dd1bc20, 0x3857f: 0x6dd1be20, - // Block 0xe16, offset 0x38580 - 0x38580: 0x6dd1c020, 0x38581: 0x6dd1c220, 0x38582: 0x6dd1c420, 0x38583: 0x6dd1c620, - 0x38584: 0x6dd1c820, 0x38585: 0x6dd1ca20, 0x38586: 0x6dd1cc20, 0x38587: 0x6dd1ce20, - 0x38588: 0x6dd1d020, 0x38589: 0x6dd1d220, 0x3858a: 0x6dd1d420, 0x3858b: 0x6dd1d620, - 0x3858c: 0x6dd1d820, 0x3858d: 0x6dd1da20, 0x3858e: 0x6dd1dc20, 0x3858f: 0x6dd1de20, - 0x38590: 0x6dd1e020, 0x38591: 0x6dd1e220, 0x38592: 0x6dd1e420, 0x38593: 0x6dd1e620, - 0x38594: 0x6deb0220, 0x38595: 0x6deb0420, 0x38596: 0x6dd1e820, 0x38597: 0x6dd1ea20, - 0x38598: 0x6dd1ec20, 0x38599: 0x6dd1ee20, 0x3859a: 0x6dd1f020, 0x3859b: 0x6dd1f220, - 0x3859c: 0x6dd1f420, 0x3859d: 0x6deb0620, 0x3859e: 0x6dd1f620, 0x3859f: 0x6dd1f820, - 0x385a0: 0x6dd1fa20, 0x385a1: 0x6db37020, 0x385a2: 0x6dd1fc20, 0x385a3: 0x6dd1fe20, - 0x385a4: 0x6dd20020, 0x385a5: 0x6dd20220, 0x385a6: 0x6dd20420, 0x385a7: 0x6dd20620, - 0x385a8: 0x6dd20820, 0x385a9: 0x6dd20a20, 0x385aa: 0x6dd20c20, 0x385ab: 0x6dd20e20, - 0x385ac: 0x6dd21020, 0x385ad: 0x6dd21220, 0x385ae: 0x6dd21420, 0x385af: 0x6dd21620, - 0x385b0: 0x6dd21820, 0x385b1: 0x6dd21a20, 0x385b2: 0x6dd21c20, 0x385b3: 0x6dd21e20, - 0x385b4: 0x6dd22020, 0x385b5: 0x6dd22220, 0x385b6: 0x6dd22420, 0x385b7: 0x6dd22620, - 0x385b8: 0x6db37220, 0x385b9: 0x6dd22820, 0x385ba: 0x6dd22a20, 0x385bb: 0x6dd22c20, - 0x385bc: 0x6dd22e20, 0x385bd: 0x6dd23020, 0x385be: 0x6dd23220, 0x385bf: 0x6dd23420, - // Block 0xe17, offset 0x385c0 - 0x385c0: 0x6dd23620, 0x385c1: 0x6dd23820, 0x385c2: 0x6dd23a20, 0x385c3: 0x6dd23c20, - 0x385c4: 0x6dd23e20, 0x385c5: 0x6dd24020, 0x385c6: 0x6dd24220, 0x385c7: 0x6dd24420, - 0x385c8: 0x6dd24620, 0x385c9: 0x6dd24820, 0x385ca: 0x6dd24a20, 0x385cb: 0x6dd24c20, - 0x385cc: 0x6dd24e20, 0x385cd: 0x6dd25020, 0x385ce: 0x6dd25220, 0x385cf: 0x6dd25420, - 0x385d0: 0x6dd25620, 0x385d1: 0x6dd25820, 0x385d2: 0x6dd25a20, 0x385d3: 0x6dd25c20, - 0x385d4: 0x6dd25e20, 0x385d5: 0x6dd26020, 0x385d6: 0x6dd26220, 0x385d7: 0x6dd26420, - 0x385d8: 0x6dd26620, 0x385d9: 0x6dd26820, 0x385da: 0x6dd26a20, 0x385db: 0x6dd26c20, - 0x385dc: 0x6dd26e20, 0x385dd: 0x6dd27020, 0x385de: 0x6dd27220, 0x385df: 0x6dd27420, - 0x385e0: 0x6deb0820, 0x385e1: 0x6deb0a20, 0x385e2: 0x6deb0c20, 0x385e3: 0x6deb0e20, - 0x385e4: 0x6deb1020, 0x385e5: 0x6deb1220, 0x385e6: 0x6deb1420, 0x385e7: 0x6deb1620, - 0x385e8: 0x6deb1820, 0x385e9: 0x6deb1a20, 0x385ea: 0x6deb1c20, 0x385eb: 0x6deb1e20, - 0x385ec: 0x6deb2020, 0x385ed: 0x6deb2220, 0x385ee: 0x6deb2420, 0x385ef: 0x6deb2620, - 0x385f0: 0x6deb2820, 0x385f1: 0x6deb2a20, 0x385f2: 0x6deb2c20, 0x385f3: 0x6deb2e20, - 0x385f4: 0x6deb3020, 0x385f5: 0x6deb3220, 0x385f6: 0x6deb3420, 0x385f7: 0x6deb3620, - 0x385f8: 0x6deb3820, 0x385f9: 0x6deb3a20, 0x385fa: 0x6deb3c20, 0x385fb: 0x6deb3e20, - 0x385fc: 0x6deb4020, 0x385fd: 0x6deb4220, 0x385fe: 0x6deb4420, 0x385ff: 0x6deb4620, - // Block 0xe18, offset 0x38600 - 0x38600: 0x6deb4820, 0x38601: 0x6deb4a20, 0x38602: 0x6deb4c20, 0x38603: 0x6deb4e20, - 0x38604: 0x6deb5020, 0x38605: 0x6deb5220, 0x38606: 0x6deb5420, 0x38607: 0x6deb5620, - 0x38608: 0x6deb5820, 0x38609: 0x6deb5a20, 0x3860a: 0x6deb5c20, 0x3860b: 0x6deb5e20, - 0x3860c: 0x6deb6020, 0x3860d: 0x6deb6220, 0x3860e: 0x6deb6420, 0x3860f: 0x6deb6620, - 0x38610: 0x6deb6820, 0x38611: 0x6deb6a20, 0x38612: 0x6deb6c20, 0x38613: 0x6deb6e20, - 0x38614: 0x6deb7020, 0x38615: 0x6deb7220, 0x38616: 0x6deb7420, 0x38617: 0x6deb7620, - 0x38618: 0x6deb7820, 0x38619: 0x6deb7a20, 0x3861a: 0x6deb7c20, 0x3861b: 0x6deb7e20, - 0x3861c: 0x6deb8020, 0x3861d: 0x6deb8220, 0x3861e: 0x6deb8420, 0x3861f: 0x6deb8620, - 0x38620: 0x6deb8820, 0x38621: 0x6deb8a20, 0x38622: 0x6deb8c20, 0x38623: 0x6deb8e20, - 0x38624: 0x6deb9020, 0x38625: 0x6deb9220, 0x38626: 0x6deb9420, 0x38627: 0x6deb9620, - 0x38628: 0x6deb9820, 0x38629: 0x6deb9a20, 0x3862a: 0x6deb9c20, 0x3862b: 0x6deb9e20, - 0x3862c: 0x6deba020, 0x3862d: 0x6deba220, 0x3862e: 0x6deba420, 0x3862f: 0x6deba620, - 0x38630: 0x6deba820, 0x38631: 0x6debaa20, 0x38632: 0x6debac20, 0x38633: 0x6debae20, - 0x38634: 0x6debb020, 0x38635: 0x6debb220, 0x38636: 0x6debb420, 0x38637: 0x6debb620, - 0x38638: 0x6debb820, 0x38639: 0x6debba20, 0x3863a: 0x6debbc20, 0x3863b: 0x6e00a820, - 0x3863c: 0x6e00aa20, 0x3863d: 0x6e00ac20, 0x3863e: 0x6e00ae20, 0x3863f: 0x6e00b020, - // Block 0xe19, offset 0x38640 - 0x38640: 0x6e00b220, 0x38641: 0x6e00b420, 0x38642: 0x6e00b620, 0x38643: 0x6e00b820, - 0x38644: 0x6e00ba20, 0x38645: 0x6e00bc20, 0x38646: 0x6e00be20, 0x38647: 0x6e00c020, - 0x38648: 0x6e00c220, 0x38649: 0x6e00c420, 0x3864a: 0x6e00c620, 0x3864b: 0x6e00c820, - 0x3864c: 0x6e00ca20, 0x3864d: 0x6e00cc20, 0x3864e: 0x6e00ce20, 0x3864f: 0x6e00d020, - 0x38650: 0x6e00d220, 0x38651: 0x6e00d420, 0x38652: 0x6e00d620, 0x38653: 0x6e00d820, - 0x38654: 0x6e00da20, 0x38655: 0x6e00dc20, 0x38656: 0x6e00de20, 0x38657: 0x6e00e020, - 0x38658: 0x6e00e220, 0x38659: 0x6e00e420, 0x3865a: 0x6e00e620, 0x3865b: 0x6e00e820, - 0x3865c: 0x6e00ea20, 0x3865d: 0x6e00ec20, 0x3865e: 0x6e00ee20, 0x3865f: 0x6e00f020, - 0x38660: 0x6e00f220, 0x38661: 0x6e00f420, 0x38662: 0x6e00f620, 0x38663: 0x6e00f820, - 0x38664: 0x6e00fa20, 0x38665: 0x6e00fc20, 0x38666: 0x6e00fe20, 0x38667: 0x6e010020, - 0x38668: 0x6e010220, 0x38669: 0x6e010420, 0x3866a: 0x6e010620, 0x3866b: 0x6e010820, - 0x3866c: 0x6e010a20, 0x3866d: 0x6e010c20, 0x3866e: 0x6e010e20, 0x3866f: 0x6e011020, - 0x38670: 0x6e011220, 0x38671: 0x6e011420, 0x38672: 0x6e011620, 0x38673: 0x6e011820, - 0x38674: 0x6e011a20, 0x38675: 0x6e011c20, 0x38676: 0x6e011e20, 0x38677: 0x6e012020, - 0x38678: 0x6e012220, 0x38679: 0x6e012420, 0x3867a: 0x6e012620, 0x3867b: 0x6e012820, - 0x3867c: 0x6e012a20, 0x3867d: 0x6e012c20, 0x3867e: 0x6e012e20, 0x3867f: 0x6e013020, - // Block 0xe1a, offset 0x38680 - 0x38680: 0x6e013220, 0x38681: 0x6e013420, 0x38682: 0x6e013620, 0x38683: 0x6e013820, - 0x38684: 0x6e013a20, 0x38685: 0x6e013c20, 0x38686: 0x6e013e20, 0x38687: 0x6e014020, - 0x38688: 0x6e014220, 0x38689: 0x6e014420, 0x3868a: 0x6e014620, 0x3868b: 0x6e014820, - 0x3868c: 0x6debbe20, 0x3868d: 0x6e12ba20, 0x3868e: 0x6e014a20, 0x3868f: 0x6e12bc20, - 0x38690: 0x6e12be20, 0x38691: 0x6e12c020, 0x38692: 0x6e12c220, 0x38693: 0x6e12c420, - 0x38694: 0x6e12c620, 0x38695: 0x6e12c820, 0x38696: 0x6e12ca20, 0x38697: 0x6e12cc20, - 0x38698: 0x6e12ce20, 0x38699: 0x6e12d020, 0x3869a: 0x6e12d220, 0x3869b: 0x6e12d420, - 0x3869c: 0x6e12d620, 0x3869d: 0x6e12d820, 0x3869e: 0x6e12da20, 0x3869f: 0x6e12dc20, - 0x386a0: 0x6e12de20, 0x386a1: 0x6e12e020, 0x386a2: 0x6e12e220, 0x386a3: 0x6e12e420, - 0x386a4: 0x6e12e620, 0x386a5: 0x6e12e820, 0x386a6: 0x6e12ea20, 0x386a7: 0x6e12ec20, - 0x386a8: 0x6e12ee20, 0x386a9: 0x6e12f020, 0x386aa: 0x6e12f220, 0x386ab: 0x6e12f420, - 0x386ac: 0x6e12f620, 0x386ad: 0x6e12f820, 0x386ae: 0x6e12fa20, 0x386af: 0x6e12fc20, - 0x386b0: 0x6e12fe20, 0x386b1: 0x6e130020, 0x386b2: 0x6e130220, 0x386b3: 0x6e130420, - 0x386b4: 0x6e130620, 0x386b5: 0x6e130820, 0x386b6: 0x6e130a20, 0x386b7: 0x6e130c20, - 0x386b8: 0x6e130e20, 0x386b9: 0x6e131020, 0x386ba: 0x6e131220, 0x386bb: 0x6e131420, - 0x386bc: 0x6e131620, 0x386bd: 0x6e131820, 0x386be: 0x6e131a20, 0x386bf: 0x6e131c20, - // Block 0xe1b, offset 0x386c0 - 0x386c0: 0x6e131e20, 0x386c1: 0x6e132020, 0x386c2: 0x6e132220, 0x386c3: 0x6e132420, - 0x386c4: 0x6e132620, 0x386c5: 0x6e132820, 0x386c6: 0x6e132a20, 0x386c7: 0x6e132c20, - 0x386c8: 0x6e132e20, 0x386c9: 0x6e133020, 0x386ca: 0x6e133220, 0x386cb: 0x6e133420, - 0x386cc: 0x6e133620, 0x386cd: 0x6e20c620, 0x386ce: 0x6e20c820, 0x386cf: 0x6e20ca20, - 0x386d0: 0x6e20cc20, 0x386d1: 0x6e20ce20, 0x386d2: 0x6e20d020, 0x386d3: 0x6e20d220, - 0x386d4: 0x6e20d420, 0x386d5: 0x6e20d620, 0x386d6: 0x6e20d820, 0x386d7: 0x6e20da20, - 0x386d8: 0x6e20dc20, 0x386d9: 0x6e20de20, 0x386da: 0x6e20e020, 0x386db: 0x6e20e220, - 0x386dc: 0x6e20e420, 0x386dd: 0x6e20e620, 0x386de: 0x6e20e820, 0x386df: 0x6e20ea20, - 0x386e0: 0x6e20ec20, 0x386e1: 0x6e20ee20, 0x386e2: 0x6e20f020, 0x386e3: 0x6e20f220, - 0x386e4: 0x6e20f420, 0x386e5: 0x6e20f620, 0x386e6: 0x6e20f820, 0x386e7: 0x6e20fa20, - 0x386e8: 0x6e20fc20, 0x386e9: 0x6e20fe20, 0x386ea: 0x6e210020, 0x386eb: 0x6e210220, - 0x386ec: 0x6e210420, 0x386ed: 0x6e210620, 0x386ee: 0x6e210820, 0x386ef: 0x6e210a20, - 0x386f0: 0x6e210c20, 0x386f1: 0x6e210e20, 0x386f2: 0x6e211020, 0x386f3: 0x6e211220, - 0x386f4: 0x6e211420, 0x386f5: 0x6e211620, 0x386f6: 0x6e2b9420, 0x386f7: 0x6e2b9620, - 0x386f8: 0x6e2b9820, 0x386f9: 0x6e2b9a20, 0x386fa: 0x6e2b9c20, 0x386fb: 0x6e2b9e20, - 0x386fc: 0x6e2ba020, 0x386fd: 0x6e2ba220, 0x386fe: 0x6e2ba420, 0x386ff: 0x6e2ba620, - // Block 0xe1c, offset 0x38700 - 0x38700: 0x6e2ba820, 0x38701: 0x6e2baa20, 0x38702: 0x6e2bac20, 0x38703: 0x6e2bae20, - 0x38704: 0x6e2bb020, 0x38705: 0x6e2bb220, 0x38706: 0x6e2bb420, 0x38707: 0x6e2bb620, - 0x38708: 0x6e2bb820, 0x38709: 0x6e2bba20, 0x3870a: 0x6e2bbc20, 0x3870b: 0x6e2bbe20, - 0x3870c: 0x6e2bc020, 0x3870d: 0x6e2bc220, 0x3870e: 0x6e2bc420, 0x3870f: 0x6e2bc620, - 0x38710: 0x6e2bc820, 0x38711: 0x6e2bca20, 0x38712: 0x6e2bcc20, 0x38713: 0x6e2bce20, - 0x38714: 0x6e2bd020, 0x38715: 0x6e2bd220, 0x38716: 0x6e33f020, 0x38717: 0x6e33f220, - 0x38718: 0x6e33f420, 0x38719: 0x6e33f620, 0x3871a: 0x6e33f820, 0x3871b: 0x6e33fa20, - 0x3871c: 0x6e33fc20, 0x3871d: 0x6e33fe20, 0x3871e: 0x6e340020, 0x3871f: 0x6e340220, - 0x38720: 0x6e340420, 0x38721: 0x6e340620, 0x38722: 0x6e340820, 0x38723: 0x6e340a20, - 0x38724: 0x6e340c20, 0x38725: 0x6e340e20, 0x38726: 0x6e341020, 0x38727: 0x6e341220, - 0x38728: 0x6e341420, 0x38729: 0x6e341620, 0x3872a: 0x6e341820, 0x3872b: 0x6e341a20, - 0x3872c: 0x6e341c20, 0x3872d: 0x6e341e20, 0x3872e: 0x6e39d420, 0x3872f: 0x6e39d620, - 0x38730: 0x6e39d820, 0x38731: 0x6e39da20, 0x38732: 0x6e39dc20, 0x38733: 0x6e39de20, - 0x38734: 0x6e39e020, 0x38735: 0x6e42f020, 0x38736: 0x6e39e220, 0x38737: 0x6e39e420, - 0x38738: 0x6e39e620, 0x38739: 0x6e39e820, 0x3873a: 0x6e3df620, 0x3873b: 0x6e3df820, - 0x3873c: 0x6e3dfa20, 0x3873d: 0x6e3dfc20, 0x3873e: 0x6e3dfe20, 0x3873f: 0x6e3e0020, - // Block 0xe1d, offset 0x38740 - 0x38740: 0x6e3e0220, 0x38741: 0x6e3e0420, 0x38742: 0x6e3e0620, 0x38743: 0x6e3e0820, - 0x38744: 0x6e3e0a20, 0x38745: 0x6e3e0c20, 0x38746: 0x6e394c20, 0x38747: 0x6e40ce20, - 0x38748: 0x6e40d020, 0x38749: 0x6e40d220, 0x3874a: 0x6e40d420, 0x3874b: 0x6e40d620, - 0x3874c: 0x6e40d820, 0x3874d: 0x6e40da20, 0x3874e: 0x6e40dc20, 0x3874f: 0x6e42f220, - 0x38750: 0x6e42f420, 0x38751: 0x6e42f620, 0x38752: 0x6e42f820, 0x38753: 0x6e470220, - 0x38754: 0x6e446820, 0x38755: 0x6e446a20, 0x38756: 0x6e454e20, 0x38757: 0x6e45d020, - 0x38758: 0x6e472e20, 0x38759: 0x6e468c20, 0x3875a: 0x6e455020, 0x3875b: 0x6c401420, - 0x3875c: 0x6c5f9820, 0x3875d: 0x6c5f9a20, 0x3875e: 0x6c5f9c20, 0x3875f: 0x6c84d420, - 0x38760: 0x6c84d620, 0x38761: 0x6c84d820, 0x38762: 0x6c84da20, 0x38763: 0x6cae3220, - 0x38764: 0x6cae3420, 0x38765: 0x6cae3620, 0x38766: 0x6cae3820, 0x38767: 0x6cae3a20, - 0x38768: 0x6cae3c20, 0x38769: 0x6cae3e20, 0x3876a: 0x6cae4020, 0x3876b: 0x6cae4220, - 0x3876c: 0x6cae4420, 0x3876d: 0x6cae4620, 0x3876e: 0x6cae4820, 0x3876f: 0x6cae4a20, - 0x38770: 0x6cae4c20, 0x38771: 0x6cdd5020, 0x38772: 0x6cdd5220, 0x38773: 0x6cdd5420, - 0x38774: 0x6cdd5620, 0x38775: 0x6cdd5820, 0x38776: 0x6cdd5a20, 0x38777: 0x6cdd5c20, - 0x38778: 0x6cdd5e20, 0x38779: 0x6cdd6020, 0x3877a: 0x6d0bd020, 0x3877b: 0x6d0bd220, - 0x3877c: 0x6d0bd420, 0x3877d: 0x6d0bd620, 0x3877e: 0x6d0bd820, 0x3877f: 0x6d0bda20, - // Block 0xe1e, offset 0x38780 - 0x38780: 0x6d0bdc20, 0x38781: 0x6d39be20, 0x38782: 0x6d39c020, 0x38783: 0x6d39c220, - 0x38784: 0x6d39c420, 0x38785: 0x6d39c620, 0x38786: 0x6d39c820, 0x38787: 0x6d39ca20, - 0x38788: 0x6d39cc20, 0x38789: 0x6d39ce20, 0x3878a: 0x6d39d020, 0x3878b: 0x6d39d220, - 0x3878c: 0x6d39d420, 0x3878d: 0x6d39d620, 0x3878e: 0x6d39d820, 0x3878f: 0x6d65f820, - 0x38790: 0x6d65fa20, 0x38791: 0x6d65fc20, 0x38792: 0x6d65fe20, 0x38793: 0x6d660020, - 0x38794: 0x6d660220, 0x38795: 0x6d660420, 0x38796: 0x6d660620, 0x38797: 0x6d660820, - 0x38798: 0x6d660a20, 0x38799: 0x6d660c20, 0x3879a: 0x6d660e20, 0x3879b: 0x6d661020, - 0x3879c: 0x6d8fd020, 0x3879d: 0x6d8fd220, 0x3879e: 0x6d8fd420, 0x3879f: 0x6d8fd620, - 0x387a0: 0x6d8fd820, 0x387a1: 0x6d8fda20, 0x387a2: 0x6d8fdc20, 0x387a3: 0x6d8fde20, - 0x387a4: 0x6d8fe020, 0x387a5: 0x6d8fe220, 0x387a6: 0x6d8fe420, 0x387a7: 0x6d8fe620, - 0x387a8: 0x6d8fe820, 0x387a9: 0x6d8fea20, 0x387aa: 0x6d8fec20, 0x387ab: 0x6d8fee20, - 0x387ac: 0x6d8ff020, 0x387ad: 0x6d8ff220, 0x387ae: 0x6d8ff420, 0x387af: 0x6d8ff620, - 0x387b0: 0x6d8ff820, 0x387b1: 0x6db39e20, 0x387b2: 0x6db3a020, 0x387b3: 0x6db3a220, - 0x387b4: 0x6db3a420, 0x387b5: 0x6db3a620, 0x387b6: 0x6db3a820, 0x387b7: 0x6db3aa20, - 0x387b8: 0x6db3ac20, 0x387b9: 0x6db3ae20, 0x387ba: 0x6db3b020, 0x387bb: 0x6dd29c20, - 0x387bc: 0x6dd29e20, 0x387bd: 0x6dd2a020, 0x387be: 0x6dd2a220, 0x387bf: 0x6dd2a420, - // Block 0xe1f, offset 0x387c0 - 0x387c0: 0x6dd2a620, 0x387c1: 0x6dd2a820, 0x387c2: 0x6debd420, 0x387c3: 0x6dd2aa20, - 0x387c4: 0x6dd2ac20, 0x387c5: 0x6debd620, 0x387c6: 0x6debd820, 0x387c7: 0x6debda20, - 0x387c8: 0x6debdc20, 0x387c9: 0x6debde20, 0x387ca: 0x6debe020, 0x387cb: 0x6e015a20, - 0x387cc: 0x6e015c20, 0x387cd: 0x6e015e20, 0x387ce: 0x6e016020, 0x387cf: 0x6e016220, - 0x387d0: 0x6df39420, 0x387d1: 0x6e134220, 0x387d2: 0x6e134420, 0x387d3: 0x6e134620, - 0x387d4: 0x6e134820, 0x387d5: 0x6e134a20, 0x387d6: 0x6e134c20, 0x387d7: 0x6e134e20, - 0x387d8: 0x6e211e20, 0x387d9: 0x6e212020, 0x387da: 0x6e2bd620, 0x387db: 0x6e2bd820, - 0x387dc: 0x6e3e1420, 0x387dd: 0x6c268c20, 0x387de: 0x6c268e20, 0x387df: 0x6c402220, - 0x387e0: 0x6c402420, 0x387e1: 0x6c402620, 0x387e2: 0x6c402820, 0x387e3: 0x6c402a20, - 0x387e4: 0x6c402c20, 0x387e5: 0x6c402e20, 0x387e6: 0x6c403020, 0x387e7: 0x6c403220, - 0x387e8: 0x6c5fcc20, 0x387e9: 0x6c5fce20, 0x387ea: 0x6c5fd020, 0x387eb: 0x6c5fd220, - 0x387ec: 0x6c5fd420, 0x387ed: 0x6c5fd620, 0x387ee: 0x6c5fd820, 0x387ef: 0x6c5fda20, - 0x387f0: 0x6c5fdc20, 0x387f1: 0x6c5fde20, 0x387f2: 0x6c5fe020, 0x387f3: 0x6c5fe220, - 0x387f4: 0x6c5fe420, 0x387f5: 0x6c5fe620, 0x387f6: 0x6c5fe820, 0x387f7: 0x6c5fea20, - 0x387f8: 0x6c5fec20, 0x387f9: 0x6c5fee20, 0x387fa: 0x6c5ff020, 0x387fb: 0x6c853220, - 0x387fc: 0x6c853420, 0x387fd: 0x6c853620, 0x387fe: 0x6c853820, 0x387ff: 0x6c853a20, - // Block 0xe20, offset 0x38800 - 0x38800: 0x6c853c20, 0x38801: 0x6c853e20, 0x38802: 0x6c854020, 0x38803: 0x6c854220, - 0x38804: 0x6c854420, 0x38805: 0x6c854620, 0x38806: 0x6c854820, 0x38807: 0x6c854a20, - 0x38808: 0x6c854c20, 0x38809: 0x6c854e20, 0x3880a: 0x6c855020, 0x3880b: 0x6c855220, - 0x3880c: 0x6c855420, 0x3880d: 0x6c855620, 0x3880e: 0x6c855820, 0x3880f: 0x6c855a20, - 0x38810: 0x6c855c20, 0x38811: 0x6c855e20, 0x38812: 0x6c856020, 0x38813: 0x6c856220, - 0x38814: 0x6c856420, 0x38815: 0x6c856620, 0x38816: 0x6c856820, 0x38817: 0x6c856a20, - 0x38818: 0x6c856c20, 0x38819: 0x6c856e20, 0x3881a: 0x6c857020, 0x3881b: 0x6c857220, - 0x3881c: 0x6c857420, 0x3881d: 0x6c857620, 0x3881e: 0x6caeaa20, 0x3881f: 0x6caeac20, - 0x38820: 0x6caeae20, 0x38821: 0x6caeb020, 0x38822: 0x6caeb220, 0x38823: 0x6caeb420, - 0x38824: 0x6caeb620, 0x38825: 0x6caeb820, 0x38826: 0x6caeba20, 0x38827: 0x6caebc20, - 0x38828: 0x6caebe20, 0x38829: 0x6caec020, 0x3882a: 0x6caec220, 0x3882b: 0x6caec420, - 0x3882c: 0x6caec620, 0x3882d: 0x6caec820, 0x3882e: 0x6caeca20, 0x3882f: 0x6caecc20, - 0x38830: 0x6caece20, 0x38831: 0x6caed020, 0x38832: 0x6caed220, 0x38833: 0x6caed420, - 0x38834: 0x6caed620, 0x38835: 0x6caed820, 0x38836: 0x6caeda20, 0x38837: 0x6caedc20, - 0x38838: 0x6caede20, 0x38839: 0x6caee020, 0x3883a: 0x6caee220, 0x3883b: 0x6caee420, - 0x3883c: 0x6caee620, 0x3883d: 0x6caee820, 0x3883e: 0x6caeea20, 0x3883f: 0x6caeec20, - // Block 0xe21, offset 0x38840 - 0x38840: 0x6caeee20, 0x38841: 0x6caef020, 0x38842: 0x6caef220, 0x38843: 0x6caef420, - 0x38844: 0x6caef620, 0x38845: 0x6caef820, 0x38846: 0x6caefa20, 0x38847: 0x6caefc20, - 0x38848: 0x6caefe20, 0x38849: 0x6caf0020, 0x3884a: 0x6caf0220, 0x3884b: 0x6caf0420, - 0x3884c: 0x6caf0620, 0x3884d: 0x6caf0820, 0x3884e: 0x6caf0a20, 0x3884f: 0x6cddc220, - 0x38850: 0x6cddc420, 0x38851: 0x6cddc620, 0x38852: 0x6cddc820, 0x38853: 0x6cddca20, - 0x38854: 0x6cddcc20, 0x38855: 0x6cddce20, 0x38856: 0x6cddd020, 0x38857: 0x6cddd220, - 0x38858: 0x6cddd420, 0x38859: 0x6cddd620, 0x3885a: 0x6cddd820, 0x3885b: 0x6cddda20, - 0x3885c: 0x6cdddc20, 0x3885d: 0x6cddde20, 0x3885e: 0x6cdde020, 0x3885f: 0x6cdde220, - 0x38860: 0x6cdde420, 0x38861: 0x6cdde620, 0x38862: 0x6cdde820, 0x38863: 0x6cddea20, - 0x38864: 0x6cddec20, 0x38865: 0x6cddee20, 0x38866: 0x6cddf020, 0x38867: 0x6cddf220, - 0x38868: 0x6cddf420, 0x38869: 0x6cddf620, 0x3886a: 0x6cddf820, 0x3886b: 0x6d0c3620, - 0x3886c: 0x6cddfa20, 0x3886d: 0x6cddfc20, 0x3886e: 0x6d0c3820, 0x3886f: 0x6cddfe20, - 0x38870: 0x6cde0020, 0x38871: 0x6cde0220, 0x38872: 0x6cde0420, 0x38873: 0x6cde0620, - 0x38874: 0x6cde0820, 0x38875: 0x6cde0a20, 0x38876: 0x6cde0c20, 0x38877: 0x6cde0e20, - 0x38878: 0x6cde1020, 0x38879: 0x6cde1220, 0x3887a: 0x6cde1420, 0x3887b: 0x6cde1620, - 0x3887c: 0x6cde1820, 0x3887d: 0x6cde1a20, 0x3887e: 0x6cde1c20, 0x3887f: 0x6cde1e20, - // Block 0xe22, offset 0x38880 - 0x38880: 0x6cde2020, 0x38881: 0x6cde2220, 0x38882: 0x6cde2420, 0x38883: 0x6cde2620, - 0x38884: 0x6cde2820, 0x38885: 0x6cde2a20, 0x38886: 0x6cde2c20, 0x38887: 0x6cde2e20, - 0x38888: 0x6d0c3a20, 0x38889: 0x6d0c3c20, 0x3888a: 0x6d0c3e20, 0x3888b: 0x6d0c4020, - 0x3888c: 0x6d0c4220, 0x3888d: 0x6d0c4420, 0x3888e: 0x6d0c4620, 0x3888f: 0x6d0c4820, - 0x38890: 0x6d0c4a20, 0x38891: 0x6d0c4c20, 0x38892: 0x6d0c4e20, 0x38893: 0x6d0c5020, - 0x38894: 0x6d0c5220, 0x38895: 0x6d0c5420, 0x38896: 0x6d0c5620, 0x38897: 0x6d0c5820, - 0x38898: 0x6d0c5a20, 0x38899: 0x6d0c5c20, 0x3889a: 0x6d0c5e20, 0x3889b: 0x6d0c6020, - 0x3889c: 0x6d0c6220, 0x3889d: 0x6d0c6420, 0x3889e: 0x6d3a6020, 0x3889f: 0x6d0c6620, - 0x388a0: 0x6d0c6820, 0x388a1: 0x6d0c6a20, 0x388a2: 0x6d0c6c20, 0x388a3: 0x6d0c6e20, - 0x388a4: 0x6d0c7020, 0x388a5: 0x6d0c7220, 0x388a6: 0x6d0c7420, 0x388a7: 0x6d0c7620, - 0x388a8: 0x6d0c7820, 0x388a9: 0x6d0c7a20, 0x388aa: 0x6d0c7c20, 0x388ab: 0x6d0c7e20, - 0x388ac: 0x6d0c8020, 0x388ad: 0x6d0c8220, 0x388ae: 0x6d0c8420, 0x388af: 0x6d0c8620, - 0x388b0: 0x6d0c8820, 0x388b1: 0x6d0c8a20, 0x388b2: 0x6d0c8c20, 0x388b3: 0x6d0c8e20, - 0x388b4: 0x6d0c9020, 0x388b5: 0x6d0c9220, 0x388b6: 0x6d0c9420, 0x388b7: 0x6d0c9620, - 0x388b8: 0x6d0c9820, 0x388b9: 0x6d0c9a20, 0x388ba: 0x6d0c9c20, 0x388bb: 0x6d0c9e20, - 0x388bc: 0x6d0ca020, 0x388bd: 0x6d0ca220, 0x388be: 0x6d0ca420, 0x388bf: 0x6d0ca620, - // Block 0xe23, offset 0x388c0 - 0x388c0: 0x6d0ca820, 0x388c1: 0x6d0caa20, 0x388c2: 0x6d0cac20, 0x388c3: 0x6d3a6220, - 0x388c4: 0x6d3a6420, 0x388c5: 0x6d3a6620, 0x388c6: 0x6d3a6820, 0x388c7: 0x6d3a6a20, - 0x388c8: 0x6d3a6c20, 0x388c9: 0x6d3a6e20, 0x388ca: 0x6d3a7020, 0x388cb: 0x6d3a7220, - 0x388cc: 0x6d3a7420, 0x388cd: 0x6d3a7620, 0x388ce: 0x6d3a7820, 0x388cf: 0x6d3a7a20, - 0x388d0: 0x6d3a7c20, 0x388d1: 0x6d3a7e20, 0x388d2: 0x6d3a8020, 0x388d3: 0x6d3a8220, - 0x388d4: 0x6d3a8420, 0x388d5: 0x6d3a8620, 0x388d6: 0x6d3a8820, 0x388d7: 0x6d3a8a20, - 0x388d8: 0x6d3a8c20, 0x388d9: 0x6d3a8e20, 0x388da: 0x6d3a9020, 0x388db: 0x6d3a9220, - 0x388dc: 0x6d3a9420, 0x388dd: 0x6d3a9620, 0x388de: 0x6d0cae20, 0x388df: 0x6d3a9820, - 0x388e0: 0x6d3a9a20, 0x388e1: 0x6d3a9c20, 0x388e2: 0x6d3a9e20, 0x388e3: 0x6d3aa020, - 0x388e4: 0x6d3aa220, 0x388e5: 0x6d3aa420, 0x388e6: 0x6d3aa620, 0x388e7: 0x6d3aa820, - 0x388e8: 0x6d3aaa20, 0x388e9: 0x6d3aac20, 0x388ea: 0x6d3aae20, 0x388eb: 0x6d3ab020, - 0x388ec: 0x6d3ab220, 0x388ed: 0x6d3ab420, 0x388ee: 0x6d3ab620, 0x388ef: 0x6d3ab820, - 0x388f0: 0x6d668c20, 0x388f1: 0x6d3aba20, 0x388f2: 0x6d3abc20, 0x388f3: 0x6d3abe20, - 0x388f4: 0x6d3ac020, 0x388f5: 0x6d3ac220, 0x388f6: 0x6d3ac420, 0x388f7: 0x6d3ac620, - 0x388f8: 0x6d3ac820, 0x388f9: 0x6d3aca20, 0x388fa: 0x6d3acc20, 0x388fb: 0x6d3ace20, - 0x388fc: 0x6d3ad020, 0x388fd: 0x6d3ad220, 0x388fe: 0x6d3ad420, 0x388ff: 0x6d3ad620, - // Block 0xe24, offset 0x38900 - 0x38900: 0x6d3ad820, 0x38901: 0x6d3ada20, 0x38902: 0x6d3adc20, 0x38903: 0x6d3ade20, - 0x38904: 0x6d3ae020, 0x38905: 0x6d3ae220, 0x38906: 0x6d3ae420, 0x38907: 0x6d3ae620, - 0x38908: 0x6d3ae820, 0x38909: 0x6d3aea20, 0x3890a: 0x6d3aec20, 0x3890b: 0x6d3aee20, - 0x3890c: 0x6d3af020, 0x3890d: 0x6d3af220, 0x3890e: 0x6d3af420, 0x3890f: 0x6d3af620, - 0x38910: 0x6d3af820, 0x38911: 0x6d3afa20, 0x38912: 0x6d668e20, 0x38913: 0x6d669020, - 0x38914: 0x6d669220, 0x38915: 0x6d669420, 0x38916: 0x6d669620, 0x38917: 0x6d669820, - 0x38918: 0x6d669a20, 0x38919: 0x6d669c20, 0x3891a: 0x6d669e20, 0x3891b: 0x6d66a020, - 0x3891c: 0x6d66a220, 0x3891d: 0x6d66a420, 0x3891e: 0x6d66a620, 0x3891f: 0x6d66a820, - 0x38920: 0x6d66aa20, 0x38921: 0x6d66ac20, 0x38922: 0x6d66ae20, 0x38923: 0x6d66b020, - 0x38924: 0x6d66b220, 0x38925: 0x6d66b420, 0x38926: 0x6d66b620, 0x38927: 0x6d66b820, - 0x38928: 0x6d66ba20, 0x38929: 0x6d66bc20, 0x3892a: 0x6d66be20, 0x3892b: 0x6d66c020, - 0x3892c: 0x6d66c220, 0x3892d: 0x6d66c420, 0x3892e: 0x6d66c620, 0x3892f: 0x6d66c820, - 0x38930: 0x6d66ca20, 0x38931: 0x6d66cc20, 0x38932: 0x6d66ce20, 0x38933: 0x6d66d020, - 0x38934: 0x6d66d220, 0x38935: 0x6d66d420, 0x38936: 0x6d66d620, 0x38937: 0x6d66d820, - 0x38938: 0x6d66da20, 0x38939: 0x6d66dc20, 0x3893a: 0x6d66de20, 0x3893b: 0x6d66e020, - 0x3893c: 0x6d66e220, 0x3893d: 0x6d66e420, 0x3893e: 0x6d66e620, 0x3893f: 0x6d66e820, - // Block 0xe25, offset 0x38940 - 0x38940: 0x6d66ea20, 0x38941: 0x6d66ec20, 0x38942: 0x6d66ee20, 0x38943: 0x6d66f020, - 0x38944: 0x6d66f220, 0x38945: 0x6d66f420, 0x38946: 0x6d66f620, 0x38947: 0x6d66f820, - 0x38948: 0x6d66fa20, 0x38949: 0x6d66fc20, 0x3894a: 0x6d66fe20, 0x3894b: 0x6d670020, - 0x3894c: 0x6d670220, 0x3894d: 0x6d670420, 0x3894e: 0x6d670620, 0x3894f: 0x6d670820, - 0x38950: 0x6d670a20, 0x38951: 0x6d670c20, 0x38952: 0x6d670e20, 0x38953: 0x6d671020, - 0x38954: 0x6d671220, 0x38955: 0x6d671420, 0x38956: 0x6d671620, 0x38957: 0x6d671820, - 0x38958: 0x6d671a20, 0x38959: 0x6d671c20, 0x3895a: 0x6d671e20, 0x3895b: 0x6d672020, - 0x3895c: 0x6d672220, 0x3895d: 0x6d672420, 0x3895e: 0x6d672620, 0x3895f: 0x6d672820, - 0x38960: 0x6d672a20, 0x38961: 0x6d905c20, 0x38962: 0x6d905e20, 0x38963: 0x6d906020, - 0x38964: 0x6d906220, 0x38965: 0x6d906420, 0x38966: 0x6d906620, 0x38967: 0x6d906820, - 0x38968: 0x6d906a20, 0x38969: 0x6d906c20, 0x3896a: 0x6d906e20, 0x3896b: 0x6d907020, - 0x3896c: 0x6d907220, 0x3896d: 0x6d907420, 0x3896e: 0x6d907620, 0x3896f: 0x6d907820, - 0x38970: 0x6d907a20, 0x38971: 0x6d907c20, 0x38972: 0x6d907e20, 0x38973: 0x6d908020, - 0x38974: 0x6d908220, 0x38975: 0x6d908420, 0x38976: 0x6d908620, 0x38977: 0x6d908820, - 0x38978: 0x6d908a20, 0x38979: 0x6d908c20, 0x3897a: 0x6d908e20, 0x3897b: 0x6d909020, - 0x3897c: 0x6d909220, 0x3897d: 0x6d909420, 0x3897e: 0x6d909620, 0x3897f: 0x6d909820, - // Block 0xe26, offset 0x38980 - 0x38980: 0x6d909a20, 0x38981: 0x6d909c20, 0x38982: 0x6d909e20, 0x38983: 0x6d90a020, - 0x38984: 0x6d90a220, 0x38985: 0x6d90a420, 0x38986: 0x6d90a620, 0x38987: 0x6d672c20, - 0x38988: 0x6d90a820, 0x38989: 0x6d90aa20, 0x3898a: 0x6d90ac20, 0x3898b: 0x6d90ae20, - 0x3898c: 0x6d90b020, 0x3898d: 0x6d90b220, 0x3898e: 0x6d90b420, 0x3898f: 0x6d90b620, - 0x38990: 0x6d90b820, 0x38991: 0x6d90ba20, 0x38992: 0x6d90bc20, 0x38993: 0x6d90be20, - 0x38994: 0x6d90c020, 0x38995: 0x6d90c220, 0x38996: 0x6d90c420, 0x38997: 0x6d90c620, - 0x38998: 0x6d90c820, 0x38999: 0x6d90ca20, 0x3899a: 0x6d90cc20, 0x3899b: 0x6d90ce20, - 0x3899c: 0x6d90d020, 0x3899d: 0x6d90d220, 0x3899e: 0x6d90d420, 0x3899f: 0x6d90d620, - 0x389a0: 0x6d90d820, 0x389a1: 0x6d90da20, 0x389a2: 0x6d90dc20, 0x389a3: 0x6d90de20, - 0x389a4: 0x6d90e020, 0x389a5: 0x6d90e220, 0x389a6: 0x6d90e420, 0x389a7: 0x6d90e620, - 0x389a8: 0x6d90e820, 0x389a9: 0x6d90ea20, 0x389aa: 0x6d90ec20, 0x389ab: 0x6d90ee20, - 0x389ac: 0x6d90f020, 0x389ad: 0x6d90f220, 0x389ae: 0x6d90f420, 0x389af: 0x6d90f620, - 0x389b0: 0x6d90f820, 0x389b1: 0x6d90fa20, 0x389b2: 0x6d90fc20, 0x389b3: 0x6d90fe20, - 0x389b4: 0x6d910020, 0x389b5: 0x6d910220, 0x389b6: 0x6d910420, 0x389b7: 0x6d910620, - 0x389b8: 0x6db42820, 0x389b9: 0x6db42a20, 0x389ba: 0x6db42c20, 0x389bb: 0x6db42e20, - 0x389bc: 0x6db43020, 0x389bd: 0x6db43220, 0x389be: 0x6db43420, 0x389bf: 0x6db43620, - // Block 0xe27, offset 0x389c0 - 0x389c0: 0x6db43820, 0x389c1: 0x6db43a20, 0x389c2: 0x6db43c20, 0x389c3: 0x6db43e20, - 0x389c4: 0x6db44020, 0x389c5: 0x6db44220, 0x389c6: 0x6db44420, 0x389c7: 0x6db44620, - 0x389c8: 0x6db44820, 0x389c9: 0x6db44a20, 0x389ca: 0x6db44c20, 0x389cb: 0x6db44e20, - 0x389cc: 0x6db45020, 0x389cd: 0x6db45220, 0x389ce: 0x6db45420, 0x389cf: 0x6db45620, - 0x389d0: 0x6db45820, 0x389d1: 0x6db45a20, 0x389d2: 0x6db45c20, 0x389d3: 0x6db45e20, - 0x389d4: 0x6db46020, 0x389d5: 0x6db46220, 0x389d6: 0x6db46420, 0x389d7: 0x6db46620, - 0x389d8: 0x6db46820, 0x389d9: 0x6db46a20, 0x389da: 0x6db46c20, 0x389db: 0x6db46e20, - 0x389dc: 0x6db47020, 0x389dd: 0x6db47220, 0x389de: 0x6db47420, 0x389df: 0x6db47620, - 0x389e0: 0x6db47820, 0x389e1: 0x6db47a20, 0x389e2: 0x6db47c20, 0x389e3: 0x6db47e20, - 0x389e4: 0x6db48020, 0x389e5: 0x6db48220, 0x389e6: 0x6db48420, 0x389e7: 0x6db48620, - 0x389e8: 0x6db48820, 0x389e9: 0x6db48a20, 0x389ea: 0x6db48c20, 0x389eb: 0x6db48e20, - 0x389ec: 0x6db49020, 0x389ed: 0x6db49220, 0x389ee: 0x6db49420, 0x389ef: 0x6db49620, - 0x389f0: 0x6dcfa420, 0x389f1: 0x6db49820, 0x389f2: 0x6db49a20, 0x389f3: 0x6db49c20, - 0x389f4: 0x6db49e20, 0x389f5: 0x6db4a020, 0x389f6: 0x6db4a220, 0x389f7: 0x6db4a420, - 0x389f8: 0x6db4a620, 0x389f9: 0x6db4a820, 0x389fa: 0x6db4aa20, 0x389fb: 0x6db4ac20, - 0x389fc: 0x6db4ae20, 0x389fd: 0x6db4b020, 0x389fe: 0x6db4b220, 0x389ff: 0x6db4b420, - // Block 0xe28, offset 0x38a00 - 0x38a00: 0x6db4b620, 0x38a01: 0x6db4b820, 0x38a02: 0x6db4ba20, 0x38a03: 0x6db4bc20, - 0x38a04: 0x6dd2fa20, 0x38a05: 0x6dd2fc20, 0x38a06: 0x6dd2fe20, 0x38a07: 0x6dd30020, - 0x38a08: 0x6dd30220, 0x38a09: 0x6dd30420, 0x38a0a: 0x6dd30620, 0x38a0b: 0x6dd30820, - 0x38a0c: 0x6dd30a20, 0x38a0d: 0x6dd30c20, 0x38a0e: 0x6dd30e20, 0x38a0f: 0x6dd31020, - 0x38a10: 0x6dd31220, 0x38a11: 0x6dd31420, 0x38a12: 0x6dd31620, 0x38a13: 0x6dd31820, - 0x38a14: 0x6dd31a20, 0x38a15: 0x6dd31c20, 0x38a16: 0x6dd31e20, 0x38a17: 0x6dd32020, - 0x38a18: 0x6dd32220, 0x38a19: 0x6dd32420, 0x38a1a: 0x6dd32620, 0x38a1b: 0x6dd32820, - 0x38a1c: 0x6dd32a20, 0x38a1d: 0x6dd32c20, 0x38a1e: 0x6dd32e20, 0x38a1f: 0x6dd33020, - 0x38a20: 0x6dd33220, 0x38a21: 0x6dd33420, 0x38a22: 0x6dd33620, 0x38a23: 0x6dd33820, - 0x38a24: 0x6dd33a20, 0x38a25: 0x6dd33c20, 0x38a26: 0x6dd33e20, 0x38a27: 0x6dd34020, - 0x38a28: 0x6dd34220, 0x38a29: 0x6dd34420, 0x38a2a: 0x6dd34620, 0x38a2b: 0x6dd34820, - 0x38a2c: 0x6dd34a20, 0x38a2d: 0x6dd34c20, 0x38a2e: 0x6dd34e20, 0x38a2f: 0x6dd35020, - 0x38a30: 0x6dd35220, 0x38a31: 0x6dd35420, 0x38a32: 0x6dd35620, 0x38a33: 0x6dd35820, - 0x38a34: 0x6dd35a20, 0x38a35: 0x6dd35c20, 0x38a36: 0x6dd35e20, 0x38a37: 0x6dd36020, - 0x38a38: 0x6dd36220, 0x38a39: 0x6dd36420, 0x38a3a: 0x6dd36620, 0x38a3b: 0x6dd36820, - 0x38a3c: 0x6dd36a20, 0x38a3d: 0x6dd36c20, 0x38a3e: 0x6dd36e20, 0x38a3f: 0x6dd37020, - // Block 0xe29, offset 0x38a40 - 0x38a40: 0x6dd37220, 0x38a41: 0x6dd37420, 0x38a42: 0x6dd37620, 0x38a43: 0x6dd37820, - 0x38a44: 0x6dd37a20, 0x38a45: 0x6dd37c20, 0x38a46: 0x6dd37e20, 0x38a47: 0x6dd38020, - 0x38a48: 0x6dd38220, 0x38a49: 0x6dd38420, 0x38a4a: 0x6dd38620, 0x38a4b: 0x6dd38820, - 0x38a4c: 0x6dd38a20, 0x38a4d: 0x6dd38c20, 0x38a4e: 0x6dec2620, 0x38a4f: 0x6dec2820, - 0x38a50: 0x6dec2a20, 0x38a51: 0x6dec2c20, 0x38a52: 0x6dec2e20, 0x38a53: 0x6dec3020, - 0x38a54: 0x6dec3220, 0x38a55: 0x6dec3420, 0x38a56: 0x6dec3620, 0x38a57: 0x6dec3820, - 0x38a58: 0x6dec3a20, 0x38a59: 0x6dec3c20, 0x38a5a: 0x6dec3e20, 0x38a5b: 0x6dec4020, - 0x38a5c: 0x6dec4220, 0x38a5d: 0x6dec4420, 0x38a5e: 0x6dec4620, 0x38a5f: 0x6dec4820, - 0x38a60: 0x6dec4a20, 0x38a61: 0x6dec4c20, 0x38a62: 0x6dec4e20, 0x38a63: 0x6dec5020, - 0x38a64: 0x6dec5220, 0x38a65: 0x6dec5420, 0x38a66: 0x6dec5620, 0x38a67: 0x6dec5820, - 0x38a68: 0x6dec5a20, 0x38a69: 0x6dec5c20, 0x38a6a: 0x6dec5e20, 0x38a6b: 0x6dec6020, - 0x38a6c: 0x6dec6220, 0x38a6d: 0x6dec6420, 0x38a6e: 0x6dec6620, 0x38a6f: 0x6dec6820, - 0x38a70: 0x6dec6a20, 0x38a71: 0x6dec6c20, 0x38a72: 0x6dec6e20, 0x38a73: 0x6dec7020, - 0x38a74: 0x6dec7220, 0x38a75: 0x6dec7420, 0x38a76: 0x6dec7620, 0x38a77: 0x6dec7820, - 0x38a78: 0x6dec7a20, 0x38a79: 0x6dec7c20, 0x38a7a: 0x6dec7e20, 0x38a7b: 0x6dec8020, - 0x38a7c: 0x6dec8220, 0x38a7d: 0x6dec8420, 0x38a7e: 0x6dec8620, 0x38a7f: 0x6dec8820, - // Block 0xe2a, offset 0x38a80 - 0x38a80: 0x6dec8a20, 0x38a81: 0x6dec8c20, 0x38a82: 0x6dec8e20, 0x38a83: 0x6dec9020, - 0x38a84: 0x6dec9220, 0x38a85: 0x6dec9420, 0x38a86: 0x6dec9620, 0x38a87: 0x6dec9820, - 0x38a88: 0x6dec9a20, 0x38a89: 0x6e018420, 0x38a8a: 0x6e018620, 0x38a8b: 0x6e018820, - 0x38a8c: 0x6e018a20, 0x38a8d: 0x6e018c20, 0x38a8e: 0x6e018e20, 0x38a8f: 0x6e019020, - 0x38a90: 0x6e019220, 0x38a91: 0x6e019420, 0x38a92: 0x6e019620, 0x38a93: 0x6e019820, - 0x38a94: 0x6e019a20, 0x38a95: 0x6e019c20, 0x38a96: 0x6e019e20, 0x38a97: 0x6e01a020, - 0x38a98: 0x6e01a220, 0x38a99: 0x6e01a420, 0x38a9a: 0x6e01a620, 0x38a9b: 0x6e01a820, - 0x38a9c: 0x6e01aa20, 0x38a9d: 0x6e01ac20, 0x38a9e: 0x6e01ae20, 0x38a9f: 0x6e01b020, - 0x38aa0: 0x6e01b220, 0x38aa1: 0x6e01b420, 0x38aa2: 0x6e01b620, 0x38aa3: 0x6e01b820, - 0x38aa4: 0x6e01ba20, 0x38aa5: 0x6e01bc20, 0x38aa6: 0x6e01be20, 0x38aa7: 0x6e01c020, - 0x38aa8: 0x6e01c220, 0x38aa9: 0x6e01c420, 0x38aaa: 0x6e01c620, 0x38aab: 0x6e01c820, - 0x38aac: 0x6e01ca20, 0x38aad: 0x6e01cc20, 0x38aae: 0x6e01ce20, 0x38aaf: 0x6e01d020, - 0x38ab0: 0x6e01d220, 0x38ab1: 0x6e136a20, 0x38ab2: 0x6e136c20, 0x38ab3: 0x6e136e20, - 0x38ab4: 0x6e137020, 0x38ab5: 0x6e137220, 0x38ab6: 0x6e137420, 0x38ab7: 0x6e137620, - 0x38ab8: 0x6e137820, 0x38ab9: 0x6e137a20, 0x38aba: 0x6e137c20, 0x38abb: 0x6e137e20, - 0x38abc: 0x6e138020, 0x38abd: 0x6e138220, 0x38abe: 0x6e138420, 0x38abf: 0x6e138620, - // Block 0xe2b, offset 0x38ac0 - 0x38ac0: 0x6e138820, 0x38ac1: 0x6e138a20, 0x38ac2: 0x6e138c20, 0x38ac3: 0x6e138e20, - 0x38ac4: 0x6e139020, 0x38ac5: 0x6e139220, 0x38ac6: 0x6e139420, 0x38ac7: 0x6e139620, - 0x38ac8: 0x6e139820, 0x38ac9: 0x6e139a20, 0x38aca: 0x6e139c20, 0x38acb: 0x6e139e20, - 0x38acc: 0x6e13a020, 0x38acd: 0x6e13a220, 0x38ace: 0x6e13a420, 0x38acf: 0x6e13a620, - 0x38ad0: 0x6e13a820, 0x38ad1: 0x6e13aa20, 0x38ad2: 0x6e13ac20, 0x38ad3: 0x6e13ae20, - 0x38ad4: 0x6e13b020, 0x38ad5: 0x6e13b220, 0x38ad6: 0x6e13b420, 0x38ad7: 0x6e13b620, - 0x38ad8: 0x6e13b820, 0x38ad9: 0x6e13ba20, 0x38ada: 0x6e13bc20, 0x38adb: 0x6e13be20, - 0x38adc: 0x6e13c020, 0x38add: 0x6e213820, 0x38ade: 0x6e213a20, 0x38adf: 0x6e213c20, - 0x38ae0: 0x6e213e20, 0x38ae1: 0x6e214020, 0x38ae2: 0x6e214220, 0x38ae3: 0x6e214420, - 0x38ae4: 0x6e214620, 0x38ae5: 0x6e214820, 0x38ae6: 0x6e214a20, 0x38ae7: 0x6e214c20, - 0x38ae8: 0x6e214e20, 0x38ae9: 0x6e215020, 0x38aea: 0x6e215220, 0x38aeb: 0x6e215420, - 0x38aec: 0x6e215620, 0x38aed: 0x6e215820, 0x38aee: 0x6e215a20, 0x38aef: 0x6e215c20, - 0x38af0: 0x6e215e20, 0x38af1: 0x6e216020, 0x38af2: 0x6e216220, 0x38af3: 0x6e216420, - 0x38af4: 0x6e216620, 0x38af5: 0x6e216820, 0x38af6: 0x6e216a20, 0x38af7: 0x6e216c20, - 0x38af8: 0x6e216e20, 0x38af9: 0x6e217020, 0x38afa: 0x6e217220, 0x38afb: 0x6e217420, - 0x38afc: 0x6e217620, 0x38afd: 0x6e217820, 0x38afe: 0x6e217a20, 0x38aff: 0x6e217c20, - // Block 0xe2c, offset 0x38b00 - 0x38b00: 0x6e217e20, 0x38b01: 0x6e218020, 0x38b02: 0x6e218220, 0x38b03: 0x6e2bf020, - 0x38b04: 0x6e2bf220, 0x38b05: 0x6e2bf420, 0x38b06: 0x6e2bf620, 0x38b07: 0x6e2bf820, - 0x38b08: 0x6e2bfa20, 0x38b09: 0x6e2bfc20, 0x38b0a: 0x6e2bfe20, 0x38b0b: 0x6e2c0020, - 0x38b0c: 0x6e2c0220, 0x38b0d: 0x6e2c0420, 0x38b0e: 0x6e2c0620, 0x38b0f: 0x6e2c0820, - 0x38b10: 0x6e2c0a20, 0x38b11: 0x6e2c0c20, 0x38b12: 0x6e2c0e20, 0x38b13: 0x6e343220, - 0x38b14: 0x6e2c1020, 0x38b15: 0x6e2c1220, 0x38b16: 0x6e2c1420, 0x38b17: 0x6e2c1620, - 0x38b18: 0x6e2c1820, 0x38b19: 0x6e2c1a20, 0x38b1a: 0x6e2c1c20, 0x38b1b: 0x6e343420, - 0x38b1c: 0x6e343620, 0x38b1d: 0x6e343820, 0x38b1e: 0x6e343a20, 0x38b1f: 0x6e343c20, - 0x38b20: 0x6e343e20, 0x38b21: 0x6e344020, 0x38b22: 0x6e344220, 0x38b23: 0x6e344420, - 0x38b24: 0x6e344620, 0x38b25: 0x6e344820, 0x38b26: 0x6e344a20, 0x38b27: 0x6e344c20, - 0x38b28: 0x6e344e20, 0x38b29: 0x6e345020, 0x38b2a: 0x6e345220, 0x38b2b: 0x6e345420, - 0x38b2c: 0x6e345620, 0x38b2d: 0x6e345820, 0x38b2e: 0x6e345a20, 0x38b2f: 0x6e39ee20, - 0x38b30: 0x6e39f020, 0x38b31: 0x6e39f220, 0x38b32: 0x6e39f420, 0x38b33: 0x6e39f620, - 0x38b34: 0x6e39f820, 0x38b35: 0x6e39fa20, 0x38b36: 0x6e39fc20, 0x38b37: 0x6e39fe20, - 0x38b38: 0x6e3a0020, 0x38b39: 0x6e3a0220, 0x38b3a: 0x6e3a0420, 0x38b3b: 0x6e3a0620, - 0x38b3c: 0x6e3a0820, 0x38b3d: 0x6e3e1820, 0x38b3e: 0x6e3e1a20, 0x38b3f: 0x6e3e1c20, - // Block 0xe2d, offset 0x38b40 - 0x38b40: 0x6e3e1e20, 0x38b41: 0x6e3e2020, 0x38b42: 0x6e3e2220, 0x38b43: 0x6e3e2420, - 0x38b44: 0x6e40e220, 0x38b45: 0x6e40e420, 0x38b46: 0x6e40e620, 0x38b47: 0x6e40e820, - 0x38b48: 0x6e40ea20, 0x38b49: 0x6e40ec20, 0x38b4a: 0x6e3e2620, 0x38b4b: 0x6e40ee20, - 0x38b4c: 0x6e40f020, 0x38b4d: 0x6e40f220, 0x38b4e: 0x6e40f420, 0x38b4f: 0x6e40f620, - 0x38b50: 0x6e40f820, 0x38b51: 0x6e42fe20, 0x38b52: 0x6e430020, 0x38b53: 0x6e430220, - 0x38b54: 0x6e430420, 0x38b55: 0x6e430620, 0x38b56: 0x6e430820, 0x38b57: 0x6e430a20, - 0x38b58: 0x6e446e20, 0x38b59: 0x6e447020, 0x38b5a: 0x6e447220, 0x38b5b: 0x6e447420, - 0x38b5c: 0x6e455220, 0x38b5d: 0x6e455420, 0x38b5e: 0x6e455620, 0x38b5f: 0x6e455820, - 0x38b60: 0x6e459020, 0x38b61: 0x6e455a20, 0x38b62: 0x6e45d220, 0x38b63: 0x6e45d420, - 0x38b64: 0x6e463a20, 0x38b65: 0x6e463c20, 0x38b66: 0x6e463e20, 0x38b67: 0x6c403620, - 0x38b68: 0x6c403820, 0x38b69: 0x6c403a20, 0x38b6a: 0x6c5ffc20, 0x38b6b: 0x6c858820, - 0x38b6c: 0x6c858a20, 0x38b6d: 0x6c858c20, 0x38b6e: 0x6c858e20, 0x38b6f: 0x6c859020, - 0x38b70: 0x6caf1e20, 0x38b71: 0x6caf2020, 0x38b72: 0x6caf2220, 0x38b73: 0x6cde4c20, - 0x38b74: 0x6cde4e20, 0x38b75: 0x6d0cbe20, 0x38b76: 0x6d0cc020, 0x38b77: 0x6d0cc220, - 0x38b78: 0x6d0cc420, 0x38b79: 0x6d0cc620, 0x38b7a: 0x6d3b1220, 0x38b7b: 0x6d3b1420, - 0x38b7c: 0x6d3b1620, 0x38b7d: 0x6d3b1820, 0x38b7e: 0x6d3b1a20, 0x38b7f: 0x6d3b1c20, - // Block 0xe2e, offset 0x38b80 - 0x38b80: 0x6d673c20, 0x38b81: 0x6d673e20, 0x38b82: 0x6d674020, 0x38b83: 0x6d674220, - 0x38b84: 0x6d3b1e20, 0x38b85: 0x6d674420, 0x38b86: 0x6d911620, 0x38b87: 0x6d911820, - 0x38b88: 0x6d911a20, 0x38b89: 0x6d911c20, 0x38b8a: 0x6d911e20, 0x38b8b: 0x6db4c820, - 0x38b8c: 0x6db4ca20, 0x38b8d: 0x6db4cc20, 0x38b8e: 0x6dd39820, 0x38b8f: 0x6dd39a20, - 0x38b90: 0x6dd39c20, 0x38b91: 0x6dd39e20, 0x38b92: 0x6dd3a020, 0x38b93: 0x6dd3a220, - 0x38b94: 0x6deca620, 0x38b95: 0x6deca820, 0x38b96: 0x6e01dc20, 0x38b97: 0x6e01de20, - 0x38b98: 0x6e13cc20, 0x38b99: 0x6e218620, 0x38b9a: 0x6e218820, 0x38b9b: 0x6e2c1e20, - 0x38b9c: 0x6e455c20, 0x38b9d: 0x6c403c20, 0x38b9e: 0x6c403e20, 0x38b9f: 0x6c404020, - 0x38ba0: 0x6c404220, 0x38ba1: 0x6c600220, 0x38ba2: 0x6c600420, 0x38ba3: 0x6c600620, - 0x38ba4: 0x6c600820, 0x38ba5: 0x6c600a20, 0x38ba6: 0x6c859820, 0x38ba7: 0x6c859a20, - 0x38ba8: 0x6c859c20, 0x38ba9: 0x6c859e20, 0x38baa: 0x6caf3020, 0x38bab: 0x6cde5a20, - 0x38bac: 0x6cde5c20, 0x38bad: 0x6cde5e20, 0x38bae: 0x6cde6020, 0x38baf: 0x6cde6220, - 0x38bb0: 0x6cde6420, 0x38bb1: 0x6cde6620, 0x38bb2: 0x6d0ccc20, 0x38bb3: 0x6d0cce20, - 0x38bb4: 0x6d0cd020, 0x38bb5: 0x6d0cd220, 0x38bb6: 0x6d0cd420, 0x38bb7: 0x6d0cd620, - 0x38bb8: 0x6d3b2020, 0x38bb9: 0x6d674e20, 0x38bba: 0x6d3b2220, 0x38bbb: 0x6d3b2420, - 0x38bbc: 0x6d675020, 0x38bbd: 0x6d675220, 0x38bbe: 0x6d912e20, 0x38bbf: 0x6db4d220, - // Block 0xe2f, offset 0x38bc0 - 0x38bc0: 0x6db4d420, 0x38bc1: 0x6db4d620, 0x38bc2: 0x6dd3a420, 0x38bc3: 0x6dd3a620, - 0x38bc4: 0x6decaa20, 0x38bc5: 0x6e13ce20, 0x38bc6: 0x6e218a20, 0x38bc7: 0x6c0a6220, - 0x38bc8: 0x6c269020, 0x38bc9: 0x6c269220, 0x38bca: 0x6c269420, 0x38bcb: 0x6c269620, - 0x38bcc: 0x6c269820, 0x38bcd: 0x6c404c20, 0x38bce: 0x6c404e20, 0x38bcf: 0x6c405020, - 0x38bd0: 0x6c405220, 0x38bd1: 0x6c405420, 0x38bd2: 0x6c405620, 0x38bd3: 0x6c405820, - 0x38bd4: 0x6c405a20, 0x38bd5: 0x6c405c20, 0x38bd6: 0x6c405e20, 0x38bd7: 0x6c406020, - 0x38bd8: 0x6c406220, 0x38bd9: 0x6c406420, 0x38bda: 0x6c406620, 0x38bdb: 0x6c406820, - 0x38bdc: 0x6c406a20, 0x38bdd: 0x6c601e20, 0x38bde: 0x6c602020, 0x38bdf: 0x6c602220, - 0x38be0: 0x6c602420, 0x38be1: 0x6c602620, 0x38be2: 0x6c602820, 0x38be3: 0x6c602a20, - 0x38be4: 0x6c602c20, 0x38be5: 0x6c602e20, 0x38be6: 0x6c603020, 0x38be7: 0x6c603220, - 0x38be8: 0x6c603420, 0x38be9: 0x6c603620, 0x38bea: 0x6c603820, 0x38beb: 0x6c603a20, - 0x38bec: 0x6c603c20, 0x38bed: 0x6c603e20, 0x38bee: 0x6c604020, 0x38bef: 0x6c604220, - 0x38bf0: 0x6c604420, 0x38bf1: 0x6c604620, 0x38bf2: 0x6c604820, 0x38bf3: 0x6c604a20, - 0x38bf4: 0x6c604c20, 0x38bf5: 0x6c604e20, 0x38bf6: 0x6c605020, 0x38bf7: 0x6c605220, - 0x38bf8: 0x6c605420, 0x38bf9: 0x6c605620, 0x38bfa: 0x6c605820, 0x38bfb: 0x6c605a20, - 0x38bfc: 0x6c605c20, 0x38bfd: 0x6c85dc20, 0x38bfe: 0x6caf9220, 0x38bff: 0x6c85de20, - // Block 0xe30, offset 0x38c00 - 0x38c00: 0x6c85e020, 0x38c01: 0x6c85e220, 0x38c02: 0x6c85e420, 0x38c03: 0x6c85e620, - 0x38c04: 0x6c85e820, 0x38c05: 0x6c85ea20, 0x38c06: 0x6c85ec20, 0x38c07: 0x6c85ee20, - 0x38c08: 0x6c85f020, 0x38c09: 0x6c85f220, 0x38c0a: 0x6c85f420, 0x38c0b: 0x6c85f620, - 0x38c0c: 0x6c85f820, 0x38c0d: 0x6c85fa20, 0x38c0e: 0x6c85fc20, 0x38c0f: 0x6c85fe20, - 0x38c10: 0x6c860020, 0x38c11: 0x6c860220, 0x38c12: 0x6c860420, 0x38c13: 0x6c860620, - 0x38c14: 0x6c860820, 0x38c15: 0x6c860a20, 0x38c16: 0x6c860c20, 0x38c17: 0x6c860e20, - 0x38c18: 0x6c861020, 0x38c19: 0x6c861220, 0x38c1a: 0x6c861420, 0x38c1b: 0x6c861620, - 0x38c1c: 0x6c861820, 0x38c1d: 0x6c861a20, 0x38c1e: 0x6caf9420, 0x38c1f: 0x6caf9620, - 0x38c20: 0x6caf9820, 0x38c21: 0x6caf9a20, 0x38c22: 0x6caf9c20, 0x38c23: 0x6caf9e20, - 0x38c24: 0x6cafa020, 0x38c25: 0x6cafa220, 0x38c26: 0x6cafa420, 0x38c27: 0x6cafa620, - 0x38c28: 0x6cafa820, 0x38c29: 0x6cafaa20, 0x38c2a: 0x6cafac20, 0x38c2b: 0x6cafae20, - 0x38c2c: 0x6cafb020, 0x38c2d: 0x6cafb220, 0x38c2e: 0x6cafb420, 0x38c2f: 0x6cafb620, - 0x38c30: 0x6cafb820, 0x38c31: 0x6cafba20, 0x38c32: 0x6cafbc20, 0x38c33: 0x6cafbe20, - 0x38c34: 0x6cafc020, 0x38c35: 0x6cafc220, 0x38c36: 0x6cafc420, 0x38c37: 0x6cafc620, - 0x38c38: 0x6cafc820, 0x38c39: 0x6cafca20, 0x38c3a: 0x6cafcc20, 0x38c3b: 0x6cafce20, - 0x38c3c: 0x6cafd020, 0x38c3d: 0x6cafd220, 0x38c3e: 0x6cafd420, 0x38c3f: 0x6cafd620, - // Block 0xe31, offset 0x38c40 - 0x38c40: 0x6cdeac20, 0x38c41: 0x6cdeae20, 0x38c42: 0x6cdeb020, 0x38c43: 0x6cdeb220, - 0x38c44: 0x6cdeb420, 0x38c45: 0x6cdeb620, 0x38c46: 0x6cdeb820, 0x38c47: 0x6cdeba20, - 0x38c48: 0x6cdebc20, 0x38c49: 0x6cdebe20, 0x38c4a: 0x6cdec020, 0x38c4b: 0x6cdec220, - 0x38c4c: 0x6cdec420, 0x38c4d: 0x6cdec620, 0x38c4e: 0x6cdec820, 0x38c4f: 0x6cdeca20, - 0x38c50: 0x6cdecc20, 0x38c51: 0x6cdece20, 0x38c52: 0x6cded020, 0x38c53: 0x6cded220, - 0x38c54: 0x6cded420, 0x38c55: 0x6cded620, 0x38c56: 0x6cded820, 0x38c57: 0x6cdeda20, - 0x38c58: 0x6cdedc20, 0x38c59: 0x6cdede20, 0x38c5a: 0x6cdee020, 0x38c5b: 0x6cdee220, - 0x38c5c: 0x6cdee420, 0x38c5d: 0x6cdee620, 0x38c5e: 0x6cdee820, 0x38c5f: 0x6cdeea20, - 0x38c60: 0x6cdeec20, 0x38c61: 0x6cdeee20, 0x38c62: 0x6cdef020, 0x38c63: 0x6cdef220, - 0x38c64: 0x6d0d1420, 0x38c65: 0x6d0d1620, 0x38c66: 0x6d0d1820, 0x38c67: 0x6d0d1a20, - 0x38c68: 0x6d0d1c20, 0x38c69: 0x6d0d1e20, 0x38c6a: 0x6d0d2020, 0x38c6b: 0x6d0d2220, - 0x38c6c: 0x6d0d2420, 0x38c6d: 0x6d0d2620, 0x38c6e: 0x6d0d2820, 0x38c6f: 0x6d0d2a20, - 0x38c70: 0x6d0d2c20, 0x38c71: 0x6d0d2e20, 0x38c72: 0x6d0d3020, 0x38c73: 0x6d0d3220, - 0x38c74: 0x6d0d3420, 0x38c75: 0x6d0d3620, 0x38c76: 0x6d0d3820, 0x38c77: 0x6d0d3a20, - 0x38c78: 0x6d0d3c20, 0x38c79: 0x6d0d3e20, 0x38c7a: 0x6d0d4020, 0x38c7b: 0x6d3b8420, - 0x38c7c: 0x6d0d4220, 0x38c7d: 0x6d0d4420, 0x38c7e: 0x6d0d4620, 0x38c7f: 0x6d0d4820, - // Block 0xe32, offset 0x38c80 - 0x38c80: 0x6d0d4a20, 0x38c81: 0x6d0d4c20, 0x38c82: 0x6d0d4e20, 0x38c83: 0x6d0d5020, - 0x38c84: 0x6d0d5220, 0x38c85: 0x6d0d5420, 0x38c86: 0x6d0d5620, 0x38c87: 0x6d0d5820, - 0x38c88: 0x6d0d5a20, 0x38c89: 0x6d0d5c20, 0x38c8a: 0x6d0d5e20, 0x38c8b: 0x6d0d6020, - 0x38c8c: 0x6d0d6220, 0x38c8d: 0x6d0d6420, 0x38c8e: 0x6d0d6620, 0x38c8f: 0x6d3b8620, - 0x38c90: 0x6d3b8820, 0x38c91: 0x6d3b8a20, 0x38c92: 0x6d3b8c20, 0x38c93: 0x6d3b8e20, - 0x38c94: 0x6d3b9020, 0x38c95: 0x6d3b9220, 0x38c96: 0x6d3b9420, 0x38c97: 0x6d3b9620, - 0x38c98: 0x6d3b9820, 0x38c99: 0x6d3b9a20, 0x38c9a: 0x6d3b9c20, 0x38c9b: 0x6d3b9e20, - 0x38c9c: 0x6d3ba020, 0x38c9d: 0x6d3ba220, 0x38c9e: 0x6d3ba420, 0x38c9f: 0x6d3ba620, - 0x38ca0: 0x6d3ba820, 0x38ca1: 0x6d3baa20, 0x38ca2: 0x6d3bac20, 0x38ca3: 0x6d3bae20, - 0x38ca4: 0x6d3bb020, 0x38ca5: 0x6d3bb220, 0x38ca6: 0x6d3bb420, 0x38ca7: 0x6d3bb620, - 0x38ca8: 0x6d3bb820, 0x38ca9: 0x6d3bba20, 0x38caa: 0x6d3bbc20, 0x38cab: 0x6d3bbe20, - 0x38cac: 0x6d3bc020, 0x38cad: 0x6d3bc220, 0x38cae: 0x6d3bc420, 0x38caf: 0x6d3bc620, - 0x38cb0: 0x6d3bc820, 0x38cb1: 0x6d3bca20, 0x38cb2: 0x6d3bcc20, 0x38cb3: 0x6d3bce20, - 0x38cb4: 0x6d3bd020, 0x38cb5: 0x6d3bd220, 0x38cb6: 0x6d3bd420, 0x38cb7: 0x6d3bd620, - 0x38cb8: 0x6d67a020, 0x38cb9: 0x6d67a220, 0x38cba: 0x6d67a420, 0x38cbb: 0x6d67a620, - 0x38cbc: 0x6d67a820, 0x38cbd: 0x6d67aa20, 0x38cbe: 0x6d67ac20, 0x38cbf: 0x6d67ae20, - // Block 0xe33, offset 0x38cc0 - 0x38cc0: 0x6d67b020, 0x38cc1: 0x6d67b220, 0x38cc2: 0x6d67b420, 0x38cc3: 0x6d67b620, - 0x38cc4: 0x6d67b820, 0x38cc5: 0x6d67ba20, 0x38cc6: 0x6d67bc20, 0x38cc7: 0x6d67be20, - 0x38cc8: 0x6d67c020, 0x38cc9: 0x6d67c220, 0x38cca: 0x6d67c420, 0x38ccb: 0x6d67c620, - 0x38ccc: 0x6d67c820, 0x38ccd: 0x6d67ca20, 0x38cce: 0x6d67cc20, 0x38ccf: 0x6d67ce20, - 0x38cd0: 0x6d67d020, 0x38cd1: 0x6d67d220, 0x38cd2: 0x6d67d420, 0x38cd3: 0x6d67d620, - 0x38cd4: 0x6d67d820, 0x38cd5: 0x6d67da20, 0x38cd6: 0x6d67dc20, 0x38cd7: 0x6d67de20, - 0x38cd8: 0x6d67e020, 0x38cd9: 0x6d67e220, 0x38cda: 0x6d67e420, 0x38cdb: 0x6d67e620, - 0x38cdc: 0x6d67e820, 0x38cdd: 0x6d916820, 0x38cde: 0x6d916a20, 0x38cdf: 0x6d916c20, - 0x38ce0: 0x6d916e20, 0x38ce1: 0x6d917020, 0x38ce2: 0x6d917220, 0x38ce3: 0x6d917420, - 0x38ce4: 0x6d917620, 0x38ce5: 0x6d917820, 0x38ce6: 0x6d917a20, 0x38ce7: 0x6d917c20, - 0x38ce8: 0x6d67ea20, 0x38ce9: 0x6d917e20, 0x38cea: 0x6d918020, 0x38ceb: 0x6d918220, - 0x38cec: 0x6d918420, 0x38ced: 0x6db51820, 0x38cee: 0x6d918620, 0x38cef: 0x6d918820, - 0x38cf0: 0x6d918a20, 0x38cf1: 0x6d918c20, 0x38cf2: 0x6d918e20, 0x38cf3: 0x6d919020, - 0x38cf4: 0x6d919220, 0x38cf5: 0x6d919420, 0x38cf6: 0x6d919620, 0x38cf7: 0x6d919820, - 0x38cf8: 0x6d919a20, 0x38cf9: 0x6d919c20, 0x38cfa: 0x6d919e20, 0x38cfb: 0x6d91a020, - 0x38cfc: 0x6d91a220, 0x38cfd: 0x6d91a420, 0x38cfe: 0x6d91a620, 0x38cff: 0x6d91a820, - // Block 0xe34, offset 0x38d00 - 0x38d00: 0x6d91aa20, 0x38d01: 0x6d91ac20, 0x38d02: 0x6db51a20, 0x38d03: 0x6db51c20, - 0x38d04: 0x6db51e20, 0x38d05: 0x6db52020, 0x38d06: 0x6db52220, 0x38d07: 0x6db52420, - 0x38d08: 0x6db52620, 0x38d09: 0x6db52820, 0x38d0a: 0x6db52a20, 0x38d0b: 0x6db52c20, - 0x38d0c: 0x6db52e20, 0x38d0d: 0x6db53020, 0x38d0e: 0x6db53220, 0x38d0f: 0x6db53420, - 0x38d10: 0x6db53620, 0x38d11: 0x6db53820, 0x38d12: 0x6db53a20, 0x38d13: 0x6db53c20, - 0x38d14: 0x6db53e20, 0x38d15: 0x6db54020, 0x38d16: 0x6db54220, 0x38d17: 0x6db54420, - 0x38d18: 0x6db54620, 0x38d19: 0x6db54820, 0x38d1a: 0x6db54a20, 0x38d1b: 0x6db54c20, - 0x38d1c: 0x6db54e20, 0x38d1d: 0x6db55020, 0x38d1e: 0x6db55220, 0x38d1f: 0x6db55420, - 0x38d20: 0x6db55620, 0x38d21: 0x6db55820, 0x38d22: 0x6db55a20, 0x38d23: 0x6db55c20, - 0x38d24: 0x6db55e20, 0x38d25: 0x6db56020, 0x38d26: 0x6db56220, 0x38d27: 0x6db56420, - 0x38d28: 0x6db56620, 0x38d29: 0x6db56820, 0x38d2a: 0x6db56a20, 0x38d2b: 0x6db56c20, - 0x38d2c: 0x6db56e20, 0x38d2d: 0x6db57020, 0x38d2e: 0x6db57220, 0x38d2f: 0x6db57420, - 0x38d30: 0x6db57620, 0x38d31: 0x6dd3d220, 0x38d32: 0x6dd3d420, 0x38d33: 0x6dd3d620, - 0x38d34: 0x6dd3d820, 0x38d35: 0x6dd3da20, 0x38d36: 0x6dd3dc20, 0x38d37: 0x6dd3de20, - 0x38d38: 0x6dd3e020, 0x38d39: 0x6dd3e220, 0x38d3a: 0x6dd3e420, 0x38d3b: 0x6dd3e620, - 0x38d3c: 0x6dd3e820, 0x38d3d: 0x6dd3ea20, 0x38d3e: 0x6dd3ec20, 0x38d3f: 0x6dd3ee20, - // Block 0xe35, offset 0x38d40 - 0x38d40: 0x6dd3f020, 0x38d41: 0x6dd3f220, 0x38d42: 0x6dd3f420, 0x38d43: 0x6dd3f620, - 0x38d44: 0x6dd3f820, 0x38d45: 0x6dd3fa20, 0x38d46: 0x6dd3fc20, 0x38d47: 0x6dd3fe20, - 0x38d48: 0x6dd40020, 0x38d49: 0x6dd40220, 0x38d4a: 0x6dd40420, 0x38d4b: 0x6dd40620, - 0x38d4c: 0x6dd40820, 0x38d4d: 0x6decca20, 0x38d4e: 0x6deccc20, 0x38d4f: 0x6decce20, - 0x38d50: 0x6decd020, 0x38d51: 0x6decd220, 0x38d52: 0x6decd420, 0x38d53: 0x6decd620, - 0x38d54: 0x6decd820, 0x38d55: 0x6decda20, 0x38d56: 0x6decdc20, 0x38d57: 0x6e01f820, - 0x38d58: 0x6decde20, 0x38d59: 0x6dece020, 0x38d5a: 0x6dece220, 0x38d5b: 0x6dece420, - 0x38d5c: 0x6dece620, 0x38d5d: 0x6dece820, 0x38d5e: 0x6decea20, 0x38d5f: 0x6decec20, - 0x38d60: 0x6decee20, 0x38d61: 0x6decf020, 0x38d62: 0x6decf220, 0x38d63: 0x6decf420, - 0x38d64: 0x6decf620, 0x38d65: 0x6decf820, 0x38d66: 0x6decfa20, 0x38d67: 0x6e01fa20, - 0x38d68: 0x6e01fc20, 0x38d69: 0x6e01fe20, 0x38d6a: 0x6e020020, 0x38d6b: 0x6e020220, - 0x38d6c: 0x6e020420, 0x38d6d: 0x6e020620, 0x38d6e: 0x6e020820, 0x38d6f: 0x6e020a20, - 0x38d70: 0x6e020c20, 0x38d71: 0x6e020e20, 0x38d72: 0x6e13de20, 0x38d73: 0x6e021020, - 0x38d74: 0x6e021220, 0x38d75: 0x6e021420, 0x38d76: 0x6e13e020, 0x38d77: 0x6e13e220, - 0x38d78: 0x6e13e420, 0x38d79: 0x6e13e620, 0x38d7a: 0x6e13e820, 0x38d7b: 0x6e13ea20, - 0x38d7c: 0x6e13ec20, 0x38d7d: 0x6e13ee20, 0x38d7e: 0x6e13f020, 0x38d7f: 0x6e13f220, - // Block 0xe36, offset 0x38d80 - 0x38d80: 0x6e13f420, 0x38d81: 0x6e13f620, 0x38d82: 0x6e13f820, 0x38d83: 0x6e219620, - 0x38d84: 0x6e219820, 0x38d85: 0x6e219a20, 0x38d86: 0x6e219c20, 0x38d87: 0x6e219e20, - 0x38d88: 0x6e2c2c20, 0x38d89: 0x6e2c2e20, 0x38d8a: 0x6e2c3020, 0x38d8b: 0x6e2c3220, - 0x38d8c: 0x6e346820, 0x38d8d: 0x6e346a20, 0x38d8e: 0x6e346c20, 0x38d8f: 0x6e346e20, - 0x38d90: 0x6e3a1620, 0x38d91: 0x6e3a1820, 0x38d92: 0x6e3a1a20, 0x38d93: 0x6e3a1c20, - 0x38d94: 0x6e3a1e20, 0x38d95: 0x6e3e2820, 0x38d96: 0x6e3e2a20, 0x38d97: 0x6e3e2c20, - 0x38d98: 0x6e410020, 0x38d99: 0x6e447820, 0x38d9a: 0x6e447a20, 0x38d9b: 0x6e45d620, - 0x38d9c: 0x6e468e20, 0x38d9d: 0x6e469020, 0x38d9e: 0x6e470420, 0x38d9f: 0x6e470620, - 0x38da0: 0x6c269a20, 0x38da1: 0x6c269c20, 0x38da2: 0x6c269e20, 0x38da3: 0x6c406c20, - 0x38da4: 0x6c606820, 0x38da5: 0x6c606a20, 0x38da6: 0x6c606c20, 0x38da7: 0x6c862420, - 0x38da8: 0x6c862620, 0x38da9: 0x6c862820, 0x38daa: 0x6cafe620, 0x38dab: 0x6cafe820, - 0x38dac: 0x6cafea20, 0x38dad: 0x6cdf0220, 0x38dae: 0x6cdf0420, 0x38daf: 0x6d0d7820, - 0x38db0: 0x6d0d7a20, 0x38db1: 0x6d3bdc20, 0x38db2: 0x6d3bde20, 0x38db3: 0x6d3be020, - 0x38db4: 0x6d3be220, 0x38db5: 0x6d3be420, 0x38db6: 0x6d3be620, 0x38db7: 0x6d3be820, - 0x38db8: 0x6d3bea20, 0x38db9: 0x6d67f220, 0x38dba: 0x6d67f420, 0x38dbb: 0x6d67f620, - 0x38dbc: 0x6d91ba20, 0x38dbd: 0x6d91bc20, 0x38dbe: 0x6d91be20, 0x38dbf: 0x6db57e20, - // Block 0xe37, offset 0x38dc0 - 0x38dc0: 0x6dd41020, 0x38dc1: 0x6dd41220, 0x38dc2: 0x6ded0220, 0x38dc3: 0x6e021820, - 0x38dc4: 0x6e13fa20, 0x38dc5: 0x6e3a2220, 0x38dc6: 0x6c406e20, 0x38dc7: 0x6c407020, - 0x38dc8: 0x6c607020, 0x38dc9: 0x6c863220, 0x38dca: 0x6c863420, 0x38dcb: 0x6c863620, - 0x38dcc: 0x6c863820, 0x38dcd: 0x6c863a20, 0x38dce: 0x6cb00020, 0x38dcf: 0x6cb00220, - 0x38dd0: 0x6cb00420, 0x38dd1: 0x6cb00620, 0x38dd2: 0x6cb00820, 0x38dd3: 0x6cb00a20, - 0x38dd4: 0x6cb00c20, 0x38dd5: 0x6cb00e20, 0x38dd6: 0x6cb01020, 0x38dd7: 0x6cb01220, - 0x38dd8: 0x6cb01420, 0x38dd9: 0x6cb01620, 0x38dda: 0x6cb01820, 0x38ddb: 0x6cb01a20, - 0x38ddc: 0x6cdf1a20, 0x38ddd: 0x6cdf1c20, 0x38dde: 0x6cdf1e20, 0x38ddf: 0x6cdf2020, - 0x38de0: 0x6cdf2220, 0x38de1: 0x6cdf2420, 0x38de2: 0x6cdf2620, 0x38de3: 0x6cdf2820, - 0x38de4: 0x6cdf2a20, 0x38de5: 0x6cdf2c20, 0x38de6: 0x6cdf2e20, 0x38de7: 0x6cdf3020, - 0x38de8: 0x6d0d8420, 0x38de9: 0x6d0d8620, 0x38dea: 0x6d0d8820, 0x38deb: 0x6d0d8a20, - 0x38dec: 0x6d0d8c20, 0x38ded: 0x6d0d8e20, 0x38dee: 0x6d0d9020, 0x38def: 0x6d0d9220, - 0x38df0: 0x6d0d9420, 0x38df1: 0x6d0d9620, 0x38df2: 0x6d0d9820, 0x38df3: 0x6d0d9a20, - 0x38df4: 0x6d0d9c20, 0x38df5: 0x6d0d9e20, 0x38df6: 0x6d0da020, 0x38df7: 0x6d0da220, - 0x38df8: 0x6d0da420, 0x38df9: 0x6d0da620, 0x38dfa: 0x6d0da820, 0x38dfb: 0x6d3bfa20, - 0x38dfc: 0x6d3bfc20, 0x38dfd: 0x6d3bfe20, 0x38dfe: 0x6d3c0020, 0x38dff: 0x6d3c0220, - // Block 0xe38, offset 0x38e00 - 0x38e00: 0x6d3c0420, 0x38e01: 0x6d3c0620, 0x38e02: 0x6d3c0820, 0x38e03: 0x6d3c0a20, - 0x38e04: 0x6d3c0c20, 0x38e05: 0x6d3c0e20, 0x38e06: 0x6d3c1020, 0x38e07: 0x6d3c1220, - 0x38e08: 0x6d3c1420, 0x38e09: 0x6d3c1620, 0x38e0a: 0x6d3c1820, 0x38e0b: 0x6d680420, - 0x38e0c: 0x6d680620, 0x38e0d: 0x6d680820, 0x38e0e: 0x6d680a20, 0x38e0f: 0x6d680c20, - 0x38e10: 0x6d680e20, 0x38e11: 0x6d681020, 0x38e12: 0x6d681220, 0x38e13: 0x6d681420, - 0x38e14: 0x6d681620, 0x38e15: 0x6d681820, 0x38e16: 0x6d681a20, 0x38e17: 0x6d681c20, - 0x38e18: 0x6d681e20, 0x38e19: 0x6d682020, 0x38e1a: 0x6d682220, 0x38e1b: 0x6d682420, - 0x38e1c: 0x6d682620, 0x38e1d: 0x6d682820, 0x38e1e: 0x6d682a20, 0x38e1f: 0x6d682c20, - 0x38e20: 0x6d682e20, 0x38e21: 0x6d91d220, 0x38e22: 0x6d91d420, 0x38e23: 0x6d91d620, - 0x38e24: 0x6d91d820, 0x38e25: 0x6d91da20, 0x38e26: 0x6d91dc20, 0x38e27: 0x6d91de20, - 0x38e28: 0x6d91e020, 0x38e29: 0x6d91e220, 0x38e2a: 0x6d91e420, 0x38e2b: 0x6d91e620, - 0x38e2c: 0x6d91e820, 0x38e2d: 0x6d91ea20, 0x38e2e: 0x6d91ec20, 0x38e2f: 0x6d91ee20, - 0x38e30: 0x6d91f020, 0x38e31: 0x6d91f220, 0x38e32: 0x6d91f420, 0x38e33: 0x6d91f620, - 0x38e34: 0x6d91f820, 0x38e35: 0x6d91fa20, 0x38e36: 0x6d91fc20, 0x38e37: 0x6db59020, - 0x38e38: 0x6db59220, 0x38e39: 0x6db59420, 0x38e3a: 0x6db59620, 0x38e3b: 0x6db59820, - 0x38e3c: 0x6db59a20, 0x38e3d: 0x6db59c20, 0x38e3e: 0x6db59e20, 0x38e3f: 0x6db5a020, - // Block 0xe39, offset 0x38e40 - 0x38e40: 0x6db5a220, 0x38e41: 0x6db5a420, 0x38e42: 0x6dd42020, 0x38e43: 0x6dd42220, - 0x38e44: 0x6dd42420, 0x38e45: 0x6dd42620, 0x38e46: 0x6dd42820, 0x38e47: 0x6dd42a20, - 0x38e48: 0x6dd42c20, 0x38e49: 0x6dd42e20, 0x38e4a: 0x6dd43020, 0x38e4b: 0x6dd43220, - 0x38e4c: 0x6ded1820, 0x38e4d: 0x6ded1a20, 0x38e4e: 0x6ded1c20, 0x38e4f: 0x6ded1e20, - 0x38e50: 0x6ded2020, 0x38e51: 0x6ded2220, 0x38e52: 0x6e022020, 0x38e53: 0x6e022220, - 0x38e54: 0x6e022420, 0x38e55: 0x6e022620, 0x38e56: 0x6e022820, 0x38e57: 0x6e022a20, - 0x38e58: 0x6e140220, 0x38e59: 0x6e140420, 0x38e5a: 0x6e140620, 0x38e5b: 0x6e140820, - 0x38e5c: 0x6e21a820, 0x38e5d: 0x6e21aa20, 0x38e5e: 0x6e21ac20, 0x38e5f: 0x6e21ae20, - 0x38e60: 0x6e21b020, 0x38e61: 0x6e21b220, 0x38e62: 0x6e347020, 0x38e63: 0x6e347220, - 0x38e64: 0x6e347420, 0x38e65: 0x6e347620, 0x38e66: 0x6e3a2620, 0x38e67: 0x6e3a2820, - 0x38e68: 0x6e3a2a20, 0x38e69: 0x6e3a2c20, 0x38e6a: 0x6e3a2e20, 0x38e6b: 0x6e3a3020, - 0x38e6c: 0x6e3e3020, 0x38e6d: 0x6e410220, 0x38e6e: 0x6e430c20, 0x38e6f: 0x6e46b420, - 0x38e70: 0x6e470820, 0x38e71: 0x6e473020, 0x38e72: 0x6c26a820, 0x38e73: 0x6c407620, - 0x38e74: 0x6c608020, 0x38e75: 0x6c608220, 0x38e76: 0x6c608420, 0x38e77: 0x6c864220, - 0x38e78: 0x6c864420, 0x38e79: 0x6c864620, 0x38e7a: 0x6c864820, 0x38e7b: 0x6cb02a20, - 0x38e7c: 0x6cb02c20, 0x38e7d: 0x6cb02e20, 0x38e7e: 0x6cb03020, 0x38e7f: 0x6cb03220, - // Block 0xe3a, offset 0x38e80 - 0x38e80: 0x6cb03420, 0x38e81: 0x6cb03620, 0x38e82: 0x6cb03820, 0x38e83: 0x6cb03a20, - 0x38e84: 0x6cb03c20, 0x38e85: 0x6cb03e20, 0x38e86: 0x6cb04020, 0x38e87: 0x6cb04220, - 0x38e88: 0x6cb04420, 0x38e89: 0x6cb04620, 0x38e8a: 0x6cb04820, 0x38e8b: 0x6cb04a20, - 0x38e8c: 0x6cb04c20, 0x38e8d: 0x6cb04e20, 0x38e8e: 0x6cb05020, 0x38e8f: 0x6cb05220, - 0x38e90: 0x6cb05420, 0x38e91: 0x6cdf4020, 0x38e92: 0x6cdf4220, 0x38e93: 0x6cdf4420, - 0x38e94: 0x6cdf4620, 0x38e95: 0x6cdf4820, 0x38e96: 0x6cdf4a20, 0x38e97: 0x6cdf4c20, - 0x38e98: 0x6cdf4e20, 0x38e99: 0x6cdf5020, 0x38e9a: 0x6cdf5220, 0x38e9b: 0x6cdf5420, - 0x38e9c: 0x6cdf5620, 0x38e9d: 0x6cdf5820, 0x38e9e: 0x6cdf5a20, 0x38e9f: 0x6cdf5c20, - 0x38ea0: 0x6cdf5e20, 0x38ea1: 0x6d0dca20, 0x38ea2: 0x6d0dcc20, 0x38ea3: 0x6d0dce20, - 0x38ea4: 0x6d0dd020, 0x38ea5: 0x6d0dd220, 0x38ea6: 0x6d0dd420, 0x38ea7: 0x6d0dd620, - 0x38ea8: 0x6d3c2a20, 0x38ea9: 0x6d3c2c20, 0x38eaa: 0x6d3c2e20, 0x38eab: 0x6d3c3020, - 0x38eac: 0x6d3c3220, 0x38ead: 0x6d3c3420, 0x38eae: 0x6d3c3620, 0x38eaf: 0x6d3c3820, - 0x38eb0: 0x6d3c3a20, 0x38eb1: 0x6d3c3c20, 0x38eb2: 0x6d3c3e20, 0x38eb3: 0x6d3c4020, - 0x38eb4: 0x6d684c20, 0x38eb5: 0x6d684e20, 0x38eb6: 0x6d685020, 0x38eb7: 0x6d685220, - 0x38eb8: 0x6d685420, 0x38eb9: 0x6d685620, 0x38eba: 0x6d685820, 0x38ebb: 0x6d685a20, - 0x38ebc: 0x6d685c20, 0x38ebd: 0x6d685e20, 0x38ebe: 0x6d686020, 0x38ebf: 0x6d686220, - // Block 0xe3b, offset 0x38ec0 - 0x38ec0: 0x6d686420, 0x38ec1: 0x6d686620, 0x38ec2: 0x6d686820, 0x38ec3: 0x6d686a20, - 0x38ec4: 0x6d686c20, 0x38ec5: 0x6d686e20, 0x38ec6: 0x6d687020, 0x38ec7: 0x6d687220, - 0x38ec8: 0x6d687420, 0x38ec9: 0x6d687620, 0x38eca: 0x6d687820, 0x38ecb: 0x6d920c20, - 0x38ecc: 0x6d920e20, 0x38ecd: 0x6d921020, 0x38ece: 0x6d921220, 0x38ecf: 0x6d921420, - 0x38ed0: 0x6d921620, 0x38ed1: 0x6d921820, 0x38ed2: 0x6d921a20, 0x38ed3: 0x6d921c20, - 0x38ed4: 0x6d921e20, 0x38ed5: 0x6d922020, 0x38ed6: 0x6d922220, 0x38ed7: 0x6d922420, - 0x38ed8: 0x6d922620, 0x38ed9: 0x6d922820, 0x38eda: 0x6d922a20, 0x38edb: 0x6db5b020, - 0x38edc: 0x6db5b220, 0x38edd: 0x6db5b420, 0x38ede: 0x6db5b620, 0x38edf: 0x6db5b820, - 0x38ee0: 0x6db5ba20, 0x38ee1: 0x6db5bc20, 0x38ee2: 0x6d922c20, 0x38ee3: 0x6db5be20, - 0x38ee4: 0x6db5c020, 0x38ee5: 0x6db5c220, 0x38ee6: 0x6db5c420, 0x38ee7: 0x6db5c620, - 0x38ee8: 0x6db5c820, 0x38ee9: 0x6db5ca20, 0x38eea: 0x6db5cc20, 0x38eeb: 0x6db5ce20, - 0x38eec: 0x6db5d020, 0x38eed: 0x6db5d220, 0x38eee: 0x6db5d420, 0x38eef: 0x6dd43c20, - 0x38ef0: 0x6dd43e20, 0x38ef1: 0x6dd44020, 0x38ef2: 0x6dd44220, 0x38ef3: 0x6dd44420, - 0x38ef4: 0x6dd44620, 0x38ef5: 0x6dd44820, 0x38ef6: 0x6dd44a20, 0x38ef7: 0x6dd44c20, - 0x38ef8: 0x6dd44e20, 0x38ef9: 0x6dd45020, 0x38efa: 0x6ded2e20, 0x38efb: 0x6ded3020, - 0x38efc: 0x6ded3220, 0x38efd: 0x6ded3420, 0x38efe: 0x6ded3620, 0x38eff: 0x6ded3820, - // Block 0xe3c, offset 0x38f00 - 0x38f00: 0x6ded3a20, 0x38f01: 0x6ded3c20, 0x38f02: 0x6ded3e20, 0x38f03: 0x6ded4020, - 0x38f04: 0x6e023820, 0x38f05: 0x6e023a20, 0x38f06: 0x6e023c20, 0x38f07: 0x6e023e20, - 0x38f08: 0x6e140c20, 0x38f09: 0x6e140e20, 0x38f0a: 0x6e141020, 0x38f0b: 0x6e141220, - 0x38f0c: 0x6e21b820, 0x38f0d: 0x6e21ba20, 0x38f0e: 0x6e21bc20, 0x38f0f: 0x6e21be20, - 0x38f10: 0x6e21c020, 0x38f11: 0x6e2c4020, 0x38f12: 0x6e2c4220, 0x38f13: 0x6e347820, - 0x38f14: 0x6e347a20, 0x38f15: 0x6e3a3a20, 0x38f16: 0x6e3e3220, 0x38f17: 0x6e430e20, - 0x38f18: 0x6e431020, 0x38f19: 0x6e447c20, 0x38f1a: 0x6e447e20, 0x38f1b: 0x6c26ae20, - 0x38f1c: 0x6c26b020, 0x38f1d: 0x6c407820, 0x38f1e: 0x6c407a20, 0x38f1f: 0x6c407c20, - 0x38f20: 0x6c609a20, 0x38f21: 0x6c867220, 0x38f22: 0x6c867420, 0x38f23: 0x6c867620, - 0x38f24: 0x6c867820, 0x38f25: 0x6c867a20, 0x38f26: 0x6c867c20, 0x38f27: 0x6c867e20, - 0x38f28: 0x6c868020, 0x38f29: 0x6c868220, 0x38f2a: 0x6c868420, 0x38f2b: 0x6c868620, - 0x38f2c: 0x6c868820, 0x38f2d: 0x6c868a20, 0x38f2e: 0x6cb0aa20, 0x38f2f: 0x6cb0ac20, - 0x38f30: 0x6cb0ae20, 0x38f31: 0x6cb0b020, 0x38f32: 0x6cb0b220, 0x38f33: 0x6cb0b420, - 0x38f34: 0x6cb0b620, 0x38f35: 0x6cb0b820, 0x38f36: 0x6cb0ba20, 0x38f37: 0x6cb0bc20, - 0x38f38: 0x6cb0be20, 0x38f39: 0x6cb0c020, 0x38f3a: 0x6cb0c220, 0x38f3b: 0x6cb0c420, - 0x38f3c: 0x6cb0c620, 0x38f3d: 0x6cb0c820, 0x38f3e: 0x6cb0ca20, 0x38f3f: 0x6cb0cc20, - // Block 0xe3d, offset 0x38f40 - 0x38f40: 0x6cb0ce20, 0x38f41: 0x6cb0d020, 0x38f42: 0x6cb0d220, 0x38f43: 0x6cb0d420, - 0x38f44: 0x6cb0d620, 0x38f45: 0x6cb0d820, 0x38f46: 0x6cb0da20, 0x38f47: 0x6cb0dc20, - 0x38f48: 0x6cb0de20, 0x38f49: 0x6cb0e020, 0x38f4a: 0x6cb0e220, 0x38f4b: 0x6cb0e420, - 0x38f4c: 0x6cb0e620, 0x38f4d: 0x6cb0e820, 0x38f4e: 0x6cb0ea20, 0x38f4f: 0x6cb0ec20, - 0x38f50: 0x6cb0ee20, 0x38f51: 0x6cb0f020, 0x38f52: 0x6cb0f220, 0x38f53: 0x6cb0f420, - 0x38f54: 0x6cb0f620, 0x38f55: 0x6cb0f820, 0x38f56: 0x6cb0fa20, 0x38f57: 0x6cb0fc20, - 0x38f58: 0x6cb0fe20, 0x38f59: 0x6cb10020, 0x38f5a: 0x6cb10220, 0x38f5b: 0x6cb10420, - 0x38f5c: 0x6cdfd620, 0x38f5d: 0x6cdfd820, 0x38f5e: 0x6cdfda20, 0x38f5f: 0x6cdfdc20, - 0x38f60: 0x6cdfde20, 0x38f61: 0x6cdfe020, 0x38f62: 0x6cdfe220, 0x38f63: 0x6cdfe420, - 0x38f64: 0x6cdfe620, 0x38f65: 0x6cdfe820, 0x38f66: 0x6cdfea20, 0x38f67: 0x6cdfec20, - 0x38f68: 0x6cdfee20, 0x38f69: 0x6cdff020, 0x38f6a: 0x6cdff220, 0x38f6b: 0x6cdff420, - 0x38f6c: 0x6cdff620, 0x38f6d: 0x6cdff820, 0x38f6e: 0x6cdffa20, 0x38f6f: 0x6cdffc20, - 0x38f70: 0x6cdffe20, 0x38f71: 0x6ce00020, 0x38f72: 0x6ce00220, 0x38f73: 0x6ce00420, - 0x38f74: 0x6ce00620, 0x38f75: 0x6ce00820, 0x38f76: 0x6ce00a20, 0x38f77: 0x6ce00c20, - 0x38f78: 0x6ce00e20, 0x38f79: 0x6ce01020, 0x38f7a: 0x6ce01220, 0x38f7b: 0x6ce01420, - 0x38f7c: 0x6ce01620, 0x38f7d: 0x6ce01820, 0x38f7e: 0x6ce01a20, 0x38f7f: 0x6ce01c20, - // Block 0xe3e, offset 0x38f80 - 0x38f80: 0x6ce01e20, 0x38f81: 0x6ce02020, 0x38f82: 0x6ce02220, 0x38f83: 0x6d0e4a20, - 0x38f84: 0x6d0e4c20, 0x38f85: 0x6d0e4e20, 0x38f86: 0x6d0e5020, 0x38f87: 0x6d0e5220, - 0x38f88: 0x6d0e5420, 0x38f89: 0x6d0e5620, 0x38f8a: 0x6d0e5820, 0x38f8b: 0x6d0e5a20, - 0x38f8c: 0x6d0e5c20, 0x38f8d: 0x6d0e5e20, 0x38f8e: 0x6d0e6020, 0x38f8f: 0x6d0e6220, - 0x38f90: 0x6d0e6420, 0x38f91: 0x6d0e6620, 0x38f92: 0x6d0e6820, 0x38f93: 0x6d0e6a20, - 0x38f94: 0x6d0e6c20, 0x38f95: 0x6d0e6e20, 0x38f96: 0x6d0e7020, 0x38f97: 0x6d0e7220, - 0x38f98: 0x6d0e7420, 0x38f99: 0x6d0e7620, 0x38f9a: 0x6d0e7820, 0x38f9b: 0x6d0e7a20, - 0x38f9c: 0x6d0e7c20, 0x38f9d: 0x6d0e7e20, 0x38f9e: 0x6d0e8020, 0x38f9f: 0x6d0e8220, - 0x38fa0: 0x6d0e8420, 0x38fa1: 0x6d0e8620, 0x38fa2: 0x6d0e8820, 0x38fa3: 0x6d0e8a20, - 0x38fa4: 0x6d0e8c20, 0x38fa5: 0x6d0e8e20, 0x38fa6: 0x6d0e9020, 0x38fa7: 0x6d0e9220, - 0x38fa8: 0x6d0e9420, 0x38fa9: 0x6d0e9620, 0x38faa: 0x6d0e9820, 0x38fab: 0x6d0e9a20, - 0x38fac: 0x6d0e9c20, 0x38fad: 0x6d0e9e20, 0x38fae: 0x6d0ea020, 0x38faf: 0x6d0ea220, - 0x38fb0: 0x6d0ea420, 0x38fb1: 0x6d0ea620, 0x38fb2: 0x6d0ea820, 0x38fb3: 0x6d0eaa20, - 0x38fb4: 0x6d3c9e20, 0x38fb5: 0x6d3ca020, 0x38fb6: 0x6d3ca220, 0x38fb7: 0x6d3ca420, - 0x38fb8: 0x6d3ca620, 0x38fb9: 0x6d3ca820, 0x38fba: 0x6d3caa20, 0x38fbb: 0x6d3cac20, - 0x38fbc: 0x6d3cae20, 0x38fbd: 0x6d3cb020, 0x38fbe: 0x6d3cb220, 0x38fbf: 0x6d3cb420, - // Block 0xe3f, offset 0x38fc0 - 0x38fc0: 0x6d3cb620, 0x38fc1: 0x6d3cb820, 0x38fc2: 0x6d3cba20, 0x38fc3: 0x6d3cbc20, - 0x38fc4: 0x6d3cbe20, 0x38fc5: 0x6d3cc020, 0x38fc6: 0x6d3cc220, 0x38fc7: 0x6d3cc420, - 0x38fc8: 0x6d3cc620, 0x38fc9: 0x6d3cc820, 0x38fca: 0x6d3cca20, 0x38fcb: 0x6d3ccc20, - 0x38fcc: 0x6d3cce20, 0x38fcd: 0x6d3cd020, 0x38fce: 0x6d3cd220, 0x38fcf: 0x6d3cd420, - 0x38fd0: 0x6d3cd620, 0x38fd1: 0x6d3cd820, 0x38fd2: 0x6d3cda20, 0x38fd3: 0x6d3cdc20, - 0x38fd4: 0x6d3cde20, 0x38fd5: 0x6d3ce020, 0x38fd6: 0x6d3ce220, 0x38fd7: 0x6d3ce420, - 0x38fd8: 0x6d3ce620, 0x38fd9: 0x6d3ce820, 0x38fda: 0x6d3cea20, 0x38fdb: 0x6d3cec20, - 0x38fdc: 0x6d0eac20, 0x38fdd: 0x6d3cee20, 0x38fde: 0x6d3cf020, 0x38fdf: 0x6d3cf220, - 0x38fe0: 0x6d3cf420, 0x38fe1: 0x6d3cf620, 0x38fe2: 0x6d3cf820, 0x38fe3: 0x6d3cfa20, - 0x38fe4: 0x6d3cfc20, 0x38fe5: 0x6d3cfe20, 0x38fe6: 0x6d68f820, 0x38fe7: 0x6d68fa20, - 0x38fe8: 0x6d68fc20, 0x38fe9: 0x6d68fe20, 0x38fea: 0x6d690020, 0x38feb: 0x6d690220, - 0x38fec: 0x6d690420, 0x38fed: 0x6d690620, 0x38fee: 0x6d690820, 0x38fef: 0x6d690a20, - 0x38ff0: 0x6d690c20, 0x38ff1: 0x6d690e20, 0x38ff2: 0x6d691020, 0x38ff3: 0x6d691220, - 0x38ff4: 0x6d691420, 0x38ff5: 0x6d691620, 0x38ff6: 0x6d691820, 0x38ff7: 0x6d691a20, - 0x38ff8: 0x6d691c20, 0x38ff9: 0x6d691e20, 0x38ffa: 0x6d692020, 0x38ffb: 0x6d692220, - 0x38ffc: 0x6d692420, 0x38ffd: 0x6d692620, 0x38ffe: 0x6d692820, 0x38fff: 0x6d692a20, - // Block 0xe40, offset 0x39000 - 0x39000: 0x6d692c20, 0x39001: 0x6d692e20, 0x39002: 0x6d693020, 0x39003: 0x6d693220, - 0x39004: 0x6d693420, 0x39005: 0x6d693620, 0x39006: 0x6d693820, 0x39007: 0x6d693a20, - 0x39008: 0x6d693c20, 0x39009: 0x6d693e20, 0x3900a: 0x6d694020, 0x3900b: 0x6d694220, - 0x3900c: 0x6d694420, 0x3900d: 0x6d694620, 0x3900e: 0x6d694820, 0x3900f: 0x6d694a20, - 0x39010: 0x6d694c20, 0x39011: 0x6d694e20, 0x39012: 0x6d695020, 0x39013: 0x6d695220, - 0x39014: 0x6d695420, 0x39015: 0x6d695620, 0x39016: 0x6d695820, 0x39017: 0x6d695a20, - 0x39018: 0x6d695c20, 0x39019: 0x6d695e20, 0x3901a: 0x6d696020, 0x3901b: 0x6d696220, - 0x3901c: 0x6d696420, 0x3901d: 0x6d696620, 0x3901e: 0x6d696820, 0x3901f: 0x6d696a20, - 0x39020: 0x6d696c20, 0x39021: 0x6d696e20, 0x39022: 0x6d697020, 0x39023: 0x6d928820, - 0x39024: 0x6d928a20, 0x39025: 0x6d928c20, 0x39026: 0x6d928e20, 0x39027: 0x6d929020, - 0x39028: 0x6d929220, 0x39029: 0x6d929420, 0x3902a: 0x6d929620, 0x3902b: 0x6d929820, - 0x3902c: 0x6d929a20, 0x3902d: 0x6d929c20, 0x3902e: 0x6d929e20, 0x3902f: 0x6d92a020, - 0x39030: 0x6d92a220, 0x39031: 0x6d92a420, 0x39032: 0x6d92a620, 0x39033: 0x6d92a820, - 0x39034: 0x6d92aa20, 0x39035: 0x6d92ac20, 0x39036: 0x6d92ae20, 0x39037: 0x6d92b020, - 0x39038: 0x6d92b220, 0x39039: 0x6d92b420, 0x3903a: 0x6d92b620, 0x3903b: 0x6d92b820, - 0x3903c: 0x6d92ba20, 0x3903d: 0x6d92bc20, 0x3903e: 0x6d92be20, 0x3903f: 0x6d92c020, - // Block 0xe41, offset 0x39040 - 0x39040: 0x6d92c220, 0x39041: 0x6d92c420, 0x39042: 0x6d92c620, 0x39043: 0x6d92c820, - 0x39044: 0x6d92ca20, 0x39045: 0x6d92cc20, 0x39046: 0x6d92ce20, 0x39047: 0x6d92d020, - 0x39048: 0x6d92d220, 0x39049: 0x6d92d420, 0x3904a: 0x6d92d620, 0x3904b: 0x6d92d820, - 0x3904c: 0x6d92da20, 0x3904d: 0x6d92dc20, 0x3904e: 0x6d92de20, 0x3904f: 0x6d92e020, - 0x39050: 0x6d92e220, 0x39051: 0x6d92e420, 0x39052: 0x6d92e620, 0x39053: 0x6d92e820, - 0x39054: 0x6d92ea20, 0x39055: 0x6d92ec20, 0x39056: 0x6d92ee20, 0x39057: 0x6d92f020, - 0x39058: 0x6db61e20, 0x39059: 0x6db62020, 0x3905a: 0x6db62220, 0x3905b: 0x6db62420, - 0x3905c: 0x6db62620, 0x3905d: 0x6db62820, 0x3905e: 0x6db62a20, 0x3905f: 0x6db62c20, - 0x39060: 0x6db62e20, 0x39061: 0x6db63020, 0x39062: 0x6db63220, 0x39063: 0x6db63420, - 0x39064: 0x6db63620, 0x39065: 0x6db63820, 0x39066: 0x6db63a20, 0x39067: 0x6db63c20, - 0x39068: 0x6db63e20, 0x39069: 0x6db64020, 0x3906a: 0x6db64220, 0x3906b: 0x6db64420, - 0x3906c: 0x6db64620, 0x3906d: 0x6db64820, 0x3906e: 0x6db64a20, 0x3906f: 0x6db64c20, - 0x39070: 0x6db64e20, 0x39071: 0x6db65020, 0x39072: 0x6db65220, 0x39073: 0x6db65420, - 0x39074: 0x6db65620, 0x39075: 0x6db65820, 0x39076: 0x6db65a20, 0x39077: 0x6db65c20, - 0x39078: 0x6db65e20, 0x39079: 0x6db66020, 0x3907a: 0x6db66220, 0x3907b: 0x6db66420, - 0x3907c: 0x6db66620, 0x3907d: 0x6db66820, 0x3907e: 0x6db66a20, 0x3907f: 0x6db66c20, - // Block 0xe42, offset 0x39080 - 0x39080: 0x6db66e20, 0x39081: 0x6db67020, 0x39082: 0x6db67220, 0x39083: 0x6db67420, - 0x39084: 0x6db67620, 0x39085: 0x6db67820, 0x39086: 0x6db67a20, 0x39087: 0x6db67c20, - 0x39088: 0x6db67e20, 0x39089: 0x6db68020, 0x3908a: 0x6db68220, 0x3908b: 0x6db68420, - 0x3908c: 0x6db68620, 0x3908d: 0x6db68820, 0x3908e: 0x6db68a20, 0x3908f: 0x6db68c20, - 0x39090: 0x6db68e20, 0x39091: 0x6db69020, 0x39092: 0x6dd49a20, 0x39093: 0x6dd49c20, - 0x39094: 0x6dd49e20, 0x39095: 0x6dd4a020, 0x39096: 0x6dd4a220, 0x39097: 0x6dd4a420, - 0x39098: 0x6dd4a620, 0x39099: 0x6dd4a820, 0x3909a: 0x6dd4aa20, 0x3909b: 0x6dd4ac20, - 0x3909c: 0x6dd4ae20, 0x3909d: 0x6dd4b020, 0x3909e: 0x6dd4b220, 0x3909f: 0x6dd4b420, - 0x390a0: 0x6dd4b620, 0x390a1: 0x6dd4b820, 0x390a2: 0x6dd4ba20, 0x390a3: 0x6dd4bc20, - 0x390a4: 0x6dd4be20, 0x390a5: 0x6dd4c020, 0x390a6: 0x6dd4c220, 0x390a7: 0x6dd4c420, - 0x390a8: 0x6dd4c620, 0x390a9: 0x6dd4c820, 0x390aa: 0x6dd4ca20, 0x390ab: 0x6dd4cc20, - 0x390ac: 0x6dd4ce20, 0x390ad: 0x6dd4d020, 0x390ae: 0x6dd4d220, 0x390af: 0x6dd4d420, - 0x390b0: 0x6dd4d620, 0x390b1: 0x6dd4d820, 0x390b2: 0x6dd4da20, 0x390b3: 0x6dd4dc20, - 0x390b4: 0x6dd4de20, 0x390b5: 0x6dd4e020, 0x390b6: 0x6dd4e220, 0x390b7: 0x6dd4e420, - 0x390b8: 0x6dd4e620, 0x390b9: 0x6dd4e820, 0x390ba: 0x6dd4ea20, 0x390bb: 0x6dd4ec20, - 0x390bc: 0x6dd4ee20, 0x390bd: 0x6dd4f020, 0x390be: 0x6ded8820, 0x390bf: 0x6ded8a20, - // Block 0xe43, offset 0x390c0 - 0x390c0: 0x6ded8c20, 0x390c1: 0x6ded8e20, 0x390c2: 0x6ded9020, 0x390c3: 0x6ded9220, - 0x390c4: 0x6ded9420, 0x390c5: 0x6ded9620, 0x390c6: 0x6ded9820, 0x390c7: 0x6ded9a20, - 0x390c8: 0x6ded9c20, 0x390c9: 0x6ded9e20, 0x390ca: 0x6deda020, 0x390cb: 0x6deda220, - 0x390cc: 0x6deda420, 0x390cd: 0x6deda620, 0x390ce: 0x6deda820, 0x390cf: 0x6dedaa20, - 0x390d0: 0x6dedac20, 0x390d1: 0x6dedae20, 0x390d2: 0x6dedb020, 0x390d3: 0x6dedb220, - 0x390d4: 0x6dedb420, 0x390d5: 0x6dedb620, 0x390d6: 0x6dedb820, 0x390d7: 0x6dedba20, - 0x390d8: 0x6dedbc20, 0x390d9: 0x6dedbe20, 0x390da: 0x6dedc020, 0x390db: 0x6dedc220, - 0x390dc: 0x6dedc420, 0x390dd: 0x6dedc620, 0x390de: 0x6dedc820, 0x390df: 0x6dedca20, - 0x390e0: 0x6dedcc20, 0x390e1: 0x6dedce20, 0x390e2: 0x6dedd020, 0x390e3: 0x6dedd220, - 0x390e4: 0x6dedd420, 0x390e5: 0x6dedd620, 0x390e6: 0x6dedd820, 0x390e7: 0x6e027c20, - 0x390e8: 0x6e027e20, 0x390e9: 0x6e028020, 0x390ea: 0x6e028220, 0x390eb: 0x6e028420, - 0x390ec: 0x6e028620, 0x390ed: 0x6e028820, 0x390ee: 0x6e028a20, 0x390ef: 0x6e028c20, - 0x390f0: 0x6e028e20, 0x390f1: 0x6e029020, 0x390f2: 0x6e029220, 0x390f3: 0x6e029420, - 0x390f4: 0x6e029620, 0x390f5: 0x6e029820, 0x390f6: 0x6e029a20, 0x390f7: 0x6e029c20, - 0x390f8: 0x6e029e20, 0x390f9: 0x6e02a020, 0x390fa: 0x6e02a220, 0x390fb: 0x6e02a420, - 0x390fc: 0x6e02a620, 0x390fd: 0x6e02a820, 0x390fe: 0x6e02aa20, 0x390ff: 0x6e02ac20, - // Block 0xe44, offset 0x39100 - 0x39100: 0x6e02ae20, 0x39101: 0x6e02b020, 0x39102: 0x6e143820, 0x39103: 0x6e143a20, - 0x39104: 0x6e143c20, 0x39105: 0x6e143e20, 0x39106: 0x6e144020, 0x39107: 0x6e144220, - 0x39108: 0x6e144420, 0x39109: 0x6e144620, 0x3910a: 0x6e144820, 0x3910b: 0x6e144a20, - 0x3910c: 0x6e144c20, 0x3910d: 0x6e144e20, 0x3910e: 0x6e145020, 0x3910f: 0x6e145220, - 0x39110: 0x6e145420, 0x39111: 0x6e21d820, 0x39112: 0x6e145620, 0x39113: 0x6e145820, - 0x39114: 0x6e145a20, 0x39115: 0x6e145c20, 0x39116: 0x6e145e20, 0x39117: 0x6e146020, - 0x39118: 0x6e146220, 0x39119: 0x6e146420, 0x3911a: 0x6e146620, 0x3911b: 0x6e146820, - 0x3911c: 0x6e21da20, 0x3911d: 0x6e21dc20, 0x3911e: 0x6e21de20, 0x3911f: 0x6e21e020, - 0x39120: 0x6e21e220, 0x39121: 0x6e21e420, 0x39122: 0x6e21e620, 0x39123: 0x6e21e820, - 0x39124: 0x6e21ea20, 0x39125: 0x6e21ec20, 0x39126: 0x6e21ee20, 0x39127: 0x6e21f020, - 0x39128: 0x6e21f220, 0x39129: 0x6e21f420, 0x3912a: 0x6e21f620, 0x3912b: 0x6e21f820, - 0x3912c: 0x6e21fa20, 0x3912d: 0x6e21fc20, 0x3912e: 0x6e21fe20, 0x3912f: 0x6e220020, - 0x39130: 0x6e220220, 0x39131: 0x6e220420, 0x39132: 0x6e220620, 0x39133: 0x6e220820, - 0x39134: 0x6e220a20, 0x39135: 0x6e220c20, 0x39136: 0x6e220e20, 0x39137: 0x6e221020, - 0x39138: 0x6e2c5a20, 0x39139: 0x6e2c5c20, 0x3913a: 0x6e2c5e20, 0x3913b: 0x6e2c6020, - 0x3913c: 0x6e2c6220, 0x3913d: 0x6e2c6420, 0x3913e: 0x6e2c6620, 0x3913f: 0x6e2c6820, - // Block 0xe45, offset 0x39140 - 0x39140: 0x6e2c6a20, 0x39141: 0x6e2c6c20, 0x39142: 0x6e2c6e20, 0x39143: 0x6e2c7020, - 0x39144: 0x6e2c7220, 0x39145: 0x6e348a20, 0x39146: 0x6e348c20, 0x39147: 0x6e348e20, - 0x39148: 0x6e349020, 0x39149: 0x6e349220, 0x3914a: 0x6e349420, 0x3914b: 0x6e349620, - 0x3914c: 0x6e349820, 0x3914d: 0x6e349a20, 0x3914e: 0x6e349c20, 0x3914f: 0x6e349e20, - 0x39150: 0x6e34a020, 0x39151: 0x6e3a4220, 0x39152: 0x6e3a4420, 0x39153: 0x6e3a4620, - 0x39154: 0x6e3a4820, 0x39155: 0x6e3a4a20, 0x39156: 0x6e3a4c20, 0x39157: 0x6e3a4e20, - 0x39158: 0x6e3a5020, 0x39159: 0x6e3e3820, 0x3915a: 0x6e3e3a20, 0x3915b: 0x6e3e3c20, - 0x3915c: 0x6e3e3e20, 0x3915d: 0x6e3e4020, 0x3915e: 0x6e410a20, 0x3915f: 0x6e410c20, - 0x39160: 0x6e410e20, 0x39161: 0x6e411020, 0x39162: 0x6e431220, 0x39163: 0x6e431420, - 0x39164: 0x6e431620, 0x39165: 0x6e428c20, 0x39166: 0x6e431820, 0x39167: 0x6e431a20, - 0x39168: 0x6e448220, 0x39169: 0x6e472020, 0x3916a: 0x6c26d620, 0x3916b: 0x6c26e820, - 0x3916c: 0x6c86c820, 0x3916d: 0x6c86ca20, 0x3916e: 0x6c86cc20, 0x3916f: 0x6cb14620, - 0x39170: 0x6cb14820, 0x39171: 0x6cb14a20, 0x39172: 0x6cb14c20, 0x39173: 0x6ce04c20, - 0x39174: 0x6ce04e20, 0x39175: 0x6d0ec420, 0x39176: 0x6d0ec620, 0x39177: 0x6d0ec820, - 0x39178: 0x6d3d1a20, 0x39179: 0x6d3d1c20, 0x3917a: 0x6d698820, 0x3917b: 0x6d698a20, - 0x3917c: 0x6d698c20, 0x3917d: 0x6d698e20, 0x3917e: 0x6d699020, 0x3917f: 0x6d699220, - // Block 0xe46, offset 0x39180 - 0x39180: 0x6d930020, 0x39181: 0x6d930220, 0x39182: 0x6d930420, 0x39183: 0x6d930620, - 0x39184: 0x6d930820, 0x39185: 0x6d930a20, 0x39186: 0x6db6a620, 0x39187: 0x6db6a820, - 0x39188: 0x6db6aa20, 0x39189: 0x6db6ac20, 0x3918a: 0x6dd50220, 0x3918b: 0x6dede620, - 0x3918c: 0x6dede820, 0x3918d: 0x6dedea20, 0x3918e: 0x6dedec20, 0x3918f: 0x6dedee20, - 0x39190: 0x6dedf020, 0x39191: 0x6dedf220, 0x39192: 0x6dedf420, 0x39193: 0x6e02b620, - 0x39194: 0x6e02b820, 0x39195: 0x6e146c20, 0x39196: 0x6e146e20, 0x39197: 0x6e3a5220, - 0x39198: 0x6e411220, 0x39199: 0x6e45da20, 0x3919a: 0x6c60c220, 0x3919b: 0x6c86d220, - 0x3919c: 0x6c86d420, 0x3919d: 0x6c86d620, 0x3919e: 0x6cb15420, 0x3919f: 0x6cb15620, - 0x391a0: 0x6ce05220, 0x391a1: 0x6ce05420, 0x391a2: 0x6ce05620, 0x391a3: 0x6ce05820, - 0x391a4: 0x6ce05a20, 0x391a5: 0x6d0ed020, 0x391a6: 0x6d0ed220, 0x391a7: 0x6cee2c20, - 0x391a8: 0x6d0ed420, 0x391a9: 0x6d3d2420, 0x391aa: 0x6d3d2620, 0x391ab: 0x6d3d2820, - 0x391ac: 0x6d3d2a20, 0x391ad: 0x6d699e20, 0x391ae: 0x6d69a020, 0x391af: 0x6d69a220, - 0x391b0: 0x6d69a420, 0x391b1: 0x6d69a620, 0x391b2: 0x6d69a820, 0x391b3: 0x6d69aa20, - 0x391b4: 0x6d69ac20, 0x391b5: 0x6d69ae20, 0x391b6: 0x6d69b020, 0x391b7: 0x6d931620, - 0x391b8: 0x6d931820, 0x391b9: 0x6d931a20, 0x391ba: 0x6d931c20, 0x391bb: 0x6d931e20, - 0x391bc: 0x6db6b620, 0x391bd: 0x6db6b820, 0x391be: 0x6db6ba20, 0x391bf: 0x6db6bc20, - // Block 0xe47, offset 0x391c0 - 0x391c0: 0x6db6be20, 0x391c1: 0x6db6c020, 0x391c2: 0x6db6c220, 0x391c3: 0x6dd50820, - 0x391c4: 0x6dd50a20, 0x391c5: 0x6dd50c20, 0x391c6: 0x6dd50e20, 0x391c7: 0x6dd51020, - 0x391c8: 0x6db6c420, 0x391c9: 0x6dedf620, 0x391ca: 0x6dedf820, 0x391cb: 0x6dedfa20, - 0x391cc: 0x6dedfc20, 0x391cd: 0x6dedfe20, 0x391ce: 0x6dee0020, 0x391cf: 0x6dee0220, - 0x391d0: 0x6dee0420, 0x391d1: 0x6e02bc20, 0x391d2: 0x6e02be20, 0x391d3: 0x6e02c020, - 0x391d4: 0x6e02c220, 0x391d5: 0x6e02c420, 0x391d6: 0x6e02c620, 0x391d7: 0x6e147220, - 0x391d8: 0x6e147420, 0x391d9: 0x6e221a20, 0x391da: 0x6e221c20, 0x391db: 0x6e221e20, - 0x391dc: 0x6e222020, 0x391dd: 0x6e2c7a20, 0x391de: 0x6e2c7c20, 0x391df: 0x6e2c7e20, - 0x391e0: 0x6e34a820, 0x391e1: 0x6e3a5820, 0x391e2: 0x6e3a5a20, 0x391e3: 0x6e411620, - 0x391e4: 0x6e411820, 0x391e5: 0x6e448420, 0x391e6: 0x6c40ba20, 0x391e7: 0x6c26ee20, - 0x391e8: 0x6c26f020, 0x391e9: 0x6c60c420, 0x391ea: 0x6c86dc20, 0x391eb: 0x6c86de20, - 0x391ec: 0x6c86e020, 0x391ed: 0x6c86e220, 0x391ee: 0x6cb16820, 0x391ef: 0x6cb16a20, - 0x391f0: 0x6cb16c20, 0x391f1: 0x6cb16e20, 0x391f2: 0x6cb17020, 0x391f3: 0x6cb17220, - 0x391f4: 0x6cb17420, 0x391f5: 0x6ce06620, 0x391f6: 0x6ce06820, 0x391f7: 0x6ce06a20, - 0x391f8: 0x6ce06c20, 0x391f9: 0x6ce06e20, 0x391fa: 0x6ce07020, 0x391fb: 0x6ce07220, - 0x391fc: 0x6ce07420, 0x391fd: 0x6ce07620, 0x391fe: 0x6ce07820, 0x391ff: 0x6d0ee220, - // Block 0xe48, offset 0x39200 - 0x39200: 0x6d0ee420, 0x39201: 0x6d0ee620, 0x39202: 0x6d0ee820, 0x39203: 0x6d0eea20, - 0x39204: 0x6d0eec20, 0x39205: 0x6d0eee20, 0x39206: 0x6d0ef020, 0x39207: 0x6d0ef220, - 0x39208: 0x6d0ef420, 0x39209: 0x6d0ef620, 0x3920a: 0x6d0ef820, 0x3920b: 0x6d0efa20, - 0x3920c: 0x6d0efc20, 0x3920d: 0x6d3d3420, 0x3920e: 0x6d3d3620, 0x3920f: 0x6d3d3820, - 0x39210: 0x6d3d3a20, 0x39211: 0x6d3d3c20, 0x39212: 0x6d3d3e20, 0x39213: 0x6d3d4020, - 0x39214: 0x6d3d4220, 0x39215: 0x6d3d4420, 0x39216: 0x6d3d4620, 0x39217: 0x6d3d4820, - 0x39218: 0x6d69ba20, 0x39219: 0x6d69bc20, 0x3921a: 0x6d69be20, 0x3921b: 0x6d69c020, - 0x3921c: 0x6d69c220, 0x3921d: 0x6d69c420, 0x3921e: 0x6d69c620, 0x3921f: 0x6d69c820, - 0x39220: 0x6d69ca20, 0x39221: 0x6d69cc20, 0x39222: 0x6d69ce20, 0x39223: 0x6d69d020, - 0x39224: 0x6d69d220, 0x39225: 0x6d69d420, 0x39226: 0x6d69d620, 0x39227: 0x6d69d820, - 0x39228: 0x6d932a20, 0x39229: 0x6d932c20, 0x3922a: 0x6d932e20, 0x3922b: 0x6d933020, - 0x3922c: 0x6d933220, 0x3922d: 0x6d933420, 0x3922e: 0x6d933620, 0x3922f: 0x6d933820, - 0x39230: 0x6d933a20, 0x39231: 0x6d933c20, 0x39232: 0x6db6d020, 0x39233: 0x6db6d220, - 0x39234: 0x6db6d420, 0x39235: 0x6db6d620, 0x39236: 0x6db6d820, 0x39237: 0x6db6da20, - 0x39238: 0x6db6dc20, 0x39239: 0x6db6de20, 0x3923a: 0x6db6e020, 0x3923b: 0x6dd51a20, - 0x3923c: 0x6dd51c20, 0x3923d: 0x6dd51e20, 0x3923e: 0x6dd52020, 0x3923f: 0x6dd52220, - // Block 0xe49, offset 0x39240 - 0x39240: 0x6dd52420, 0x39241: 0x6dd52620, 0x39242: 0x6dee0c20, 0x39243: 0x6dee0e20, - 0x39244: 0x6dee1020, 0x39245: 0x6dee1220, 0x39246: 0x6dee1420, 0x39247: 0x6e02c820, - 0x39248: 0x6e02ca20, 0x39249: 0x6e02cc20, 0x3924a: 0x6e02ce20, 0x3924b: 0x6e02d020, - 0x3924c: 0x6e147820, 0x3924d: 0x6e147a20, 0x3924e: 0x6e147c20, 0x3924f: 0x6e147e20, - 0x39250: 0x6e222420, 0x39251: 0x6e222620, 0x39252: 0x6e222820, 0x39253: 0x6e222a20, - 0x39254: 0x6e2c8020, 0x39255: 0x6e2c8220, 0x39256: 0x6e2c8420, 0x39257: 0x6e222c20, - 0x39258: 0x6e34aa20, 0x39259: 0x6e34ac20, 0x3925a: 0x6e3a6020, 0x3925b: 0x6e3a6220, - 0x3925c: 0x6e3a6420, 0x3925d: 0x6e411a20, 0x3925e: 0x6e448620, 0x3925f: 0x6e46ec20, - 0x39260: 0x6c40be20, 0x39261: 0x6c60c620, 0x39262: 0x6c86ea20, 0x39263: 0x6c86ec20, - 0x39264: 0x6cb18420, 0x39265: 0x6cb18620, 0x39266: 0x6cb18820, 0x39267: 0x6cb18a20, - 0x39268: 0x6cb18c20, 0x39269: 0x6cb18e20, 0x3926a: 0x6cb19020, 0x3926b: 0x6cb19220, - 0x3926c: 0x6ce08a20, 0x3926d: 0x6ce08c20, 0x3926e: 0x6ce08e20, 0x3926f: 0x6ce09020, - 0x39270: 0x6ce09220, 0x39271: 0x6ce09420, 0x39272: 0x6ce09620, 0x39273: 0x6ce09820, - 0x39274: 0x6ce09a20, 0x39275: 0x6ce09c20, 0x39276: 0x6ce09e20, 0x39277: 0x6ce0a020, - 0x39278: 0x6ce0a220, 0x39279: 0x6ce0a420, 0x3927a: 0x6ce0a620, 0x3927b: 0x6ce0a820, - 0x3927c: 0x6ce0aa20, 0x3927d: 0x6ce0ac20, 0x3927e: 0x6d0f0c20, 0x3927f: 0x6d0f0e20, - // Block 0xe4a, offset 0x39280 - 0x39280: 0x6d0f1020, 0x39281: 0x6d0f1220, 0x39282: 0x6d0f1420, 0x39283: 0x6d0f1620, - 0x39284: 0x6d0f1820, 0x39285: 0x6d0f1a20, 0x39286: 0x6d0f1c20, 0x39287: 0x6d0f1e20, - 0x39288: 0x6d0f2020, 0x39289: 0x6d0f2220, 0x3928a: 0x6d3d5620, 0x3928b: 0x6d3d5820, - 0x3928c: 0x6d3d5a20, 0x3928d: 0x6d3d5c20, 0x3928e: 0x6d3d5e20, 0x3928f: 0x6d3d6020, - 0x39290: 0x6d3d6220, 0x39291: 0x6d3d6420, 0x39292: 0x6d3d6620, 0x39293: 0x6d3d6820, - 0x39294: 0x6d3d6a20, 0x39295: 0x6d3d6c20, 0x39296: 0x6d3d6e20, 0x39297: 0x6d3d7020, - 0x39298: 0x6d3d7220, 0x39299: 0x6d69e420, 0x3929a: 0x6d69e620, 0x3929b: 0x6d69e820, - 0x3929c: 0x6d69ea20, 0x3929d: 0x6d69ec20, 0x3929e: 0x6d69ee20, 0x3929f: 0x6d69f020, - 0x392a0: 0x6d69f220, 0x392a1: 0x6d69f420, 0x392a2: 0x6d69f620, 0x392a3: 0x6d69f820, - 0x392a4: 0x6d69fa20, 0x392a5: 0x6d69fc20, 0x392a6: 0x6d934a20, 0x392a7: 0x6d934c20, - 0x392a8: 0x6d934e20, 0x392a9: 0x6d935020, 0x392aa: 0x6d935220, 0x392ab: 0x6d935420, - 0x392ac: 0x6d935620, 0x392ad: 0x6d935820, 0x392ae: 0x6d935a20, 0x392af: 0x6d935c20, - 0x392b0: 0x6d935e20, 0x392b1: 0x6d69fe20, 0x392b2: 0x6d936020, 0x392b3: 0x6d936220, - 0x392b4: 0x6d936420, 0x392b5: 0x6db6ea20, 0x392b6: 0x6db6ec20, 0x392b7: 0x6db6ee20, - 0x392b8: 0x6db6f020, 0x392b9: 0x6db6f220, 0x392ba: 0x6db6f420, 0x392bb: 0x6db6f620, - 0x392bc: 0x6db6f820, 0x392bd: 0x6db6fa20, 0x392be: 0x6db6fc20, 0x392bf: 0x6db6fe20, - // Block 0xe4b, offset 0x392c0 - 0x392c0: 0x6db70020, 0x392c1: 0x6dd53220, 0x392c2: 0x6dd53420, 0x392c3: 0x6dd53620, - 0x392c4: 0x6dd53820, 0x392c5: 0x6dd53a20, 0x392c6: 0x6dee2220, 0x392c7: 0x6dd53c20, - 0x392c8: 0x6dd53e20, 0x392c9: 0x6dd54020, 0x392ca: 0x6dd54220, 0x392cb: 0x6dd54420, - 0x392cc: 0x6dee2420, 0x392cd: 0x6dee2620, 0x392ce: 0x6dee2820, 0x392cf: 0x6dee2a20, - 0x392d0: 0x6e02d220, 0x392d1: 0x6dee2c20, 0x392d2: 0x6dee2e20, 0x392d3: 0x6dee3020, - 0x392d4: 0x6dee3220, 0x392d5: 0x6dee3420, 0x392d6: 0x6e02d420, 0x392d7: 0x6e02d620, - 0x392d8: 0x6e02d820, 0x392d9: 0x6e02da20, 0x392da: 0x6e02dc20, 0x392db: 0x6e02de20, - 0x392dc: 0x6e02e020, 0x392dd: 0x6e148020, 0x392de: 0x6e148220, 0x392df: 0x6e222e20, - 0x392e0: 0x6e2c8620, 0x392e1: 0x6e2c8820, 0x392e2: 0x6e34ae20, 0x392e3: 0x6e411e20, - 0x392e4: 0x6c60ce20, 0x392e5: 0x6c60d020, 0x392e6: 0x6c60d220, 0x392e7: 0x6c60d420, - 0x392e8: 0x6c60d620, 0x392e9: 0x6c60d820, 0x392ea: 0x6c86f820, 0x392eb: 0x6c86fa20, - 0x392ec: 0x6c86fc20, 0x392ed: 0x6c86fe20, 0x392ee: 0x6c870020, 0x392ef: 0x6c870220, - 0x392f0: 0x6c870420, 0x392f1: 0x6c870620, 0x392f2: 0x6c870820, 0x392f3: 0x6cb1ac20, - 0x392f4: 0x6cb1ae20, 0x392f5: 0x6cb1b020, 0x392f6: 0x6cb1b220, 0x392f7: 0x6cb1b420, - 0x392f8: 0x6cb1b620, 0x392f9: 0x6cb1b820, 0x392fa: 0x6cb1ba20, 0x392fb: 0x6cb1bc20, - 0x392fc: 0x6cb1be20, 0x392fd: 0x6cb1c020, 0x392fe: 0x6cb1c220, 0x392ff: 0x6cb1c420, - // Block 0xe4c, offset 0x39300 - 0x39300: 0x6cb1c620, 0x39301: 0x6cb1c820, 0x39302: 0x6cb1ca20, 0x39303: 0x6cb1cc20, - 0x39304: 0x6cb1ce20, 0x39305: 0x6cb1d020, 0x39306: 0x6cb1d220, 0x39307: 0x6cb1d420, - 0x39308: 0x6cb1d620, 0x39309: 0x6ce0e020, 0x3930a: 0x6ce0e220, 0x3930b: 0x6ce0e420, - 0x3930c: 0x6ce0e620, 0x3930d: 0x6ce0e820, 0x3930e: 0x6ce0ea20, 0x3930f: 0x6ce0ec20, - 0x39310: 0x6ce0ee20, 0x39311: 0x6ce0f020, 0x39312: 0x6ce0f220, 0x39313: 0x6ce0f420, - 0x39314: 0x6ce0f620, 0x39315: 0x6ce0f820, 0x39316: 0x6ce0fa20, 0x39317: 0x6ce0fc20, - 0x39318: 0x6ce0fe20, 0x39319: 0x6ce10020, 0x3931a: 0x6ce10220, 0x3931b: 0x6ce10420, - 0x3931c: 0x6ce10620, 0x3931d: 0x6ce10820, 0x3931e: 0x6ce10a20, 0x3931f: 0x6ce10c20, - 0x39320: 0x6ce10e20, 0x39321: 0x6ce11020, 0x39322: 0x6ce11220, 0x39323: 0x6d0f4a20, - 0x39324: 0x6d0f4c20, 0x39325: 0x6d0f4e20, 0x39326: 0x6d0f5020, 0x39327: 0x6d0f5220, - 0x39328: 0x6d0f5420, 0x39329: 0x6d0f5620, 0x3932a: 0x6d0f5820, 0x3932b: 0x6d0f5a20, - 0x3932c: 0x6d0f5c20, 0x3932d: 0x6d0f5e20, 0x3932e: 0x6d0f6020, 0x3932f: 0x6d0f6220, - 0x39330: 0x6d0f6420, 0x39331: 0x6d0f6620, 0x39332: 0x6d0f6820, 0x39333: 0x6d0f6a20, - 0x39334: 0x6d0f6c20, 0x39335: 0x6d0f6e20, 0x39336: 0x6d0f7020, 0x39337: 0x6d0f7220, - 0x39338: 0x6d0f7420, 0x39339: 0x6d0f7620, 0x3933a: 0x6d0f7820, 0x3933b: 0x6d0f7a20, - 0x3933c: 0x6d0f7c20, 0x3933d: 0x6d0f7e20, 0x3933e: 0x6d0f8020, 0x3933f: 0x6d0f8220, - // Block 0xe4d, offset 0x39340 - 0x39340: 0x6d0f8420, 0x39341: 0x6d0f8620, 0x39342: 0x6d0f8820, 0x39343: 0x6d0f8a20, - 0x39344: 0x6d0f8c20, 0x39345: 0x6d3d9020, 0x39346: 0x6d3d9220, 0x39347: 0x6d3d9420, - 0x39348: 0x6d3d9620, 0x39349: 0x6d3d9820, 0x3934a: 0x6d3d9a20, 0x3934b: 0x6d3d9c20, - 0x3934c: 0x6d3d9e20, 0x3934d: 0x6d3da020, 0x3934e: 0x6d3da220, 0x3934f: 0x6d3da420, - 0x39350: 0x6d3da620, 0x39351: 0x6d3da820, 0x39352: 0x6d3daa20, 0x39353: 0x6d3dac20, - 0x39354: 0x6d3dae20, 0x39355: 0x6d3db020, 0x39356: 0x6d3db220, 0x39357: 0x6d3db420, - 0x39358: 0x6d3db620, 0x39359: 0x6d3db820, 0x3935a: 0x6d3dba20, 0x3935b: 0x6d6a3c20, - 0x3935c: 0x6d6a3e20, 0x3935d: 0x6d6a4020, 0x3935e: 0x6d6a4220, 0x3935f: 0x6d6a4420, - 0x39360: 0x6d6a4620, 0x39361: 0x6d6a4820, 0x39362: 0x6d6a4a20, 0x39363: 0x6d6a4c20, - 0x39364: 0x6d6a4e20, 0x39365: 0x6d6a5020, 0x39366: 0x6d6a5220, 0x39367: 0x6d6a5420, - 0x39368: 0x6d6a5620, 0x39369: 0x6d6a5820, 0x3936a: 0x6d6a5a20, 0x3936b: 0x6d6a5c20, - 0x3936c: 0x6d6a5e20, 0x3936d: 0x6d6a6020, 0x3936e: 0x6d6a6220, 0x3936f: 0x6d6a6420, - 0x39370: 0x6d6a6620, 0x39371: 0x6d938420, 0x39372: 0x6d938620, 0x39373: 0x6d938820, - 0x39374: 0x6d938a20, 0x39375: 0x6d938c20, 0x39376: 0x6d938e20, 0x39377: 0x6d939020, - 0x39378: 0x6d939220, 0x39379: 0x6d939420, 0x3937a: 0x6d939620, 0x3937b: 0x6d939820, - 0x3937c: 0x6d939a20, 0x3937d: 0x6d939c20, 0x3937e: 0x6d939e20, 0x3937f: 0x6d93a020, - // Block 0xe4e, offset 0x39380 - 0x39380: 0x6d93a220, 0x39381: 0x6d93a420, 0x39382: 0x6d93a620, 0x39383: 0x6d93a820, - 0x39384: 0x6d93aa20, 0x39385: 0x6db02a20, 0x39386: 0x6d93ac20, 0x39387: 0x6d93ae20, - 0x39388: 0x6d93b020, 0x39389: 0x6d93b220, 0x3938a: 0x6d93b420, 0x3938b: 0x6d93b620, - 0x3938c: 0x6db71820, 0x3938d: 0x6db71a20, 0x3938e: 0x6db71c20, 0x3938f: 0x6db71e20, - 0x39390: 0x6db72020, 0x39391: 0x6db72220, 0x39392: 0x6db72420, 0x39393: 0x6db72620, - 0x39394: 0x6db72820, 0x39395: 0x6db72a20, 0x39396: 0x6db72c20, 0x39397: 0x6db72e20, - 0x39398: 0x6db73020, 0x39399: 0x6db73220, 0x3939a: 0x6db73420, 0x3939b: 0x6db73620, - 0x3939c: 0x6db73820, 0x3939d: 0x6db73a20, 0x3939e: 0x6dd55620, 0x3939f: 0x6dd55820, - 0x393a0: 0x6dd55a20, 0x393a1: 0x6dd55c20, 0x393a2: 0x6dd55e20, 0x393a3: 0x6dd56020, - 0x393a4: 0x6dd56220, 0x393a5: 0x6dd56420, 0x393a6: 0x6dd56620, 0x393a7: 0x6dd56820, - 0x393a8: 0x6dd56a20, 0x393a9: 0x6dd56c20, 0x393aa: 0x6dd56e20, 0x393ab: 0x6dd57020, - 0x393ac: 0x6dd57220, 0x393ad: 0x6dd57420, 0x393ae: 0x6dd57620, 0x393af: 0x6dd57820, - 0x393b0: 0x6dd57a20, 0x393b1: 0x6dd57c20, 0x393b2: 0x6dd57e20, 0x393b3: 0x6dd58020, - 0x393b4: 0x6dd58220, 0x393b5: 0x6dd58420, 0x393b6: 0x6dd58620, 0x393b7: 0x6dd58820, - 0x393b8: 0x6dd58a20, 0x393b9: 0x6dd58c20, 0x393ba: 0x6dd58e20, 0x393bb: 0x6dd59020, - 0x393bc: 0x6dee4620, 0x393bd: 0x6dee4820, 0x393be: 0x6dee4a20, 0x393bf: 0x6dee4c20, - // Block 0xe4f, offset 0x393c0 - 0x393c0: 0x6dee4e20, 0x393c1: 0x6dee5020, 0x393c2: 0x6dee5220, 0x393c3: 0x6dee5420, - 0x393c4: 0x6dee5620, 0x393c5: 0x6dee5820, 0x393c6: 0x6dee5a20, 0x393c7: 0x6dee5c20, - 0x393c8: 0x6dee5e20, 0x393c9: 0x6dee6020, 0x393ca: 0x6dee6220, 0x393cb: 0x6dee6420, - 0x393cc: 0x6dee6620, 0x393cd: 0x6dee6820, 0x393ce: 0x6dee6a20, 0x393cf: 0x6dee6c20, - 0x393d0: 0x6dee6e20, 0x393d1: 0x6dee7020, 0x393d2: 0x6dee7220, 0x393d3: 0x6dee7420, - 0x393d4: 0x6dee7620, 0x393d5: 0x6dee7820, 0x393d6: 0x6e02ea20, 0x393d7: 0x6e02ec20, - 0x393d8: 0x6e02ee20, 0x393d9: 0x6e02f020, 0x393da: 0x6e02f220, 0x393db: 0x6e02f420, - 0x393dc: 0x6e02f620, 0x393dd: 0x6e02f820, 0x393de: 0x6e02fa20, 0x393df: 0x6e02fc20, - 0x393e0: 0x6e02fe20, 0x393e1: 0x6e030020, 0x393e2: 0x6e030220, 0x393e3: 0x6e030420, - 0x393e4: 0x6e030620, 0x393e5: 0x6e030820, 0x393e6: 0x6e148e20, 0x393e7: 0x6e149020, - 0x393e8: 0x6e149220, 0x393e9: 0x6e149420, 0x393ea: 0x6e149620, 0x393eb: 0x6e149820, - 0x393ec: 0x6e149a20, 0x393ed: 0x6e149c20, 0x393ee: 0x6e149e20, 0x393ef: 0x6e14a020, - 0x393f0: 0x6e14a220, 0x393f1: 0x6e223a20, 0x393f2: 0x6e223c20, 0x393f3: 0x6e223e20, - 0x393f4: 0x6e224020, 0x393f5: 0x6e224220, 0x393f6: 0x6e224420, 0x393f7: 0x6e224620, - 0x393f8: 0x6e224820, 0x393f9: 0x6e224a20, 0x393fa: 0x6e224c20, 0x393fb: 0x6e224e20, - 0x393fc: 0x6e225020, 0x393fd: 0x6e2c9020, 0x393fe: 0x6e2c9220, 0x393ff: 0x6e225220, - // Block 0xe50, offset 0x39400 - 0x39400: 0x6e2c9420, 0x39401: 0x6e2c9620, 0x39402: 0x6e2c9820, 0x39403: 0x6e2c9a20, - 0x39404: 0x6e2c9c20, 0x39405: 0x6e2c9e20, 0x39406: 0x6e2ca020, 0x39407: 0x6e2ca220, - 0x39408: 0x6e34b220, 0x39409: 0x6e34b420, 0x3940a: 0x6e34b620, 0x3940b: 0x6e34b820, - 0x3940c: 0x6e3a6a20, 0x3940d: 0x6e3a6c20, 0x3940e: 0x6e3e4420, 0x3940f: 0x6e3e4620, - 0x39410: 0x6e3e4820, 0x39411: 0x6c40da20, 0x39412: 0x6c60f420, 0x39413: 0x6cb1e420, - 0x39414: 0x6ce12e20, 0x39415: 0x6ce13020, 0x39416: 0x6ce13220, 0x39417: 0x6d6a7420, - 0x39418: 0x6c40dc20, 0x39419: 0x6c60fa20, 0x3941a: 0x6c60fc20, 0x3941b: 0x6cb1ee20, - 0x3941c: 0x6cb1f020, 0x3941d: 0x6ce13620, 0x3941e: 0x6ce13820, 0x3941f: 0x6ce13a20, - 0x39420: 0x6d0fa020, 0x39421: 0x6d0fa220, 0x39422: 0x6d0fa420, 0x39423: 0x6d3dd020, - 0x39424: 0x6d3dd220, 0x39425: 0x6d3dd420, 0x39426: 0x6d3dd620, 0x39427: 0x6d6a7620, - 0x39428: 0x6d6a7820, 0x39429: 0x6d6a7a20, 0x3942a: 0x6d6a7c20, 0x3942b: 0x6d6a7e20, - 0x3942c: 0x6d93d020, 0x3942d: 0x6d93d220, 0x3942e: 0x6d93d420, 0x3942f: 0x6d93d620, - 0x39430: 0x6d93d820, 0x39431: 0x6d93da20, 0x39432: 0x6db74620, 0x39433: 0x6db74820, - 0x39434: 0x6db74a20, 0x39435: 0x6db74c20, 0x39436: 0x6dd59620, 0x39437: 0x6dd59820, - 0x39438: 0x6dee7c20, 0x39439: 0x6dee7e20, 0x3943a: 0x6dee8020, 0x3943b: 0x6dee8220, - 0x3943c: 0x6dee8420, 0x3943d: 0x6e14a820, 0x3943e: 0x6e14aa20, 0x3943f: 0x6e14ac20, - // Block 0xe51, offset 0x39440 - 0x39440: 0x6e225820, 0x39441: 0x6e225a20, 0x39442: 0x6e2ca620, 0x39443: 0x6e2ca820, - 0x39444: 0x6e2caa20, 0x39445: 0x6e2cac20, 0x39446: 0x6c26fe20, 0x39447: 0x6c40de20, - 0x39448: 0x6c610820, 0x39449: 0x6c610a20, 0x3944a: 0x6c610c20, 0x3944b: 0x6c610e20, - 0x3944c: 0x6c611020, 0x3944d: 0x6c611220, 0x3944e: 0x6c611420, 0x3944f: 0x6c873420, - 0x39450: 0x6c873620, 0x39451: 0x6c873820, 0x39452: 0x6c873a20, 0x39453: 0x6c873c20, - 0x39454: 0x6c873e20, 0x39455: 0x6c874020, 0x39456: 0x6c874220, 0x39457: 0x6c874420, - 0x39458: 0x6c874620, 0x39459: 0x6c874820, 0x3945a: 0x6c874a20, 0x3945b: 0x6c874c20, - 0x3945c: 0x6c874e20, 0x3945d: 0x6cb20a20, 0x3945e: 0x6cb20c20, 0x3945f: 0x6cb20e20, - 0x39460: 0x6cb21020, 0x39461: 0x6cb21220, 0x39462: 0x6cb21420, 0x39463: 0x6cb21620, - 0x39464: 0x6cb21820, 0x39465: 0x6cb21a20, 0x39466: 0x6cb21c20, 0x39467: 0x6cb21e20, - 0x39468: 0x6cb22020, 0x39469: 0x6cb22220, 0x3946a: 0x6cb22420, 0x3946b: 0x6cb22620, - 0x3946c: 0x6cb22820, 0x3946d: 0x6cb22a20, 0x3946e: 0x6cb22c20, 0x3946f: 0x6cb22e20, - 0x39470: 0x6cb23020, 0x39471: 0x6cb23220, 0x39472: 0x6cb23420, 0x39473: 0x6cb23620, - 0x39474: 0x6cb23820, 0x39475: 0x6cb23a20, 0x39476: 0x6ce16620, 0x39477: 0x6ce16820, - 0x39478: 0x6ce16a20, 0x39479: 0x6ce16c20, 0x3947a: 0x6ce16e20, 0x3947b: 0x6ce17020, - 0x3947c: 0x6ce17220, 0x3947d: 0x6ce17420, 0x3947e: 0x6ce17620, 0x3947f: 0x6ce17820, - // Block 0xe52, offset 0x39480 - 0x39480: 0x6ce17a20, 0x39481: 0x6ce17c20, 0x39482: 0x6ce17e20, 0x39483: 0x6ce18020, - 0x39484: 0x6ce18220, 0x39485: 0x6ce18420, 0x39486: 0x6ce18620, 0x39487: 0x6ce18820, - 0x39488: 0x6ce18a20, 0x39489: 0x6ce18c20, 0x3948a: 0x6ce18e20, 0x3948b: 0x6ce19020, - 0x3948c: 0x6ce19220, 0x3948d: 0x6ce19420, 0x3948e: 0x6ce19620, 0x3948f: 0x6ce19820, - 0x39490: 0x6d0fc620, 0x39491: 0x6d0fc820, 0x39492: 0x6d0fca20, 0x39493: 0x6d0fcc20, - 0x39494: 0x6d0fce20, 0x39495: 0x6d0fd020, 0x39496: 0x6d0fd220, 0x39497: 0x6d0fd420, - 0x39498: 0x6d0fd620, 0x39499: 0x6d0fd820, 0x3949a: 0x6d0fda20, 0x3949b: 0x6d0fdc20, - 0x3949c: 0x6d0fde20, 0x3949d: 0x6d0fe020, 0x3949e: 0x6d0fe220, 0x3949f: 0x6d0fe420, - 0x394a0: 0x6d0fe620, 0x394a1: 0x6d0fe820, 0x394a2: 0x6d0fea20, 0x394a3: 0x6d0fec20, - 0x394a4: 0x6d0fee20, 0x394a5: 0x6d0ff020, 0x394a6: 0x6d0ff220, 0x394a7: 0x6d0ff420, - 0x394a8: 0x6d0ff620, 0x394a9: 0x6d0ff820, 0x394aa: 0x6d0ffa20, 0x394ab: 0x6d0ffc20, - 0x394ac: 0x6d0ffe20, 0x394ad: 0x6d100020, 0x394ae: 0x6d100220, 0x394af: 0x6d3df420, - 0x394b0: 0x6d3df620, 0x394b1: 0x6d3df820, 0x394b2: 0x6d3dfa20, 0x394b3: 0x6d3dfc20, - 0x394b4: 0x6d3dfe20, 0x394b5: 0x6d3e0020, 0x394b6: 0x6d3e0220, 0x394b7: 0x6d3e0420, - 0x394b8: 0x6d3e0620, 0x394b9: 0x6d3e0820, 0x394ba: 0x6d3e0a20, 0x394bb: 0x6d3e0c20, - 0x394bc: 0x6d3e0e20, 0x394bd: 0x6d3e1020, 0x394be: 0x6d3e1220, 0x394bf: 0x6d3e1420, - // Block 0xe53, offset 0x394c0 - 0x394c0: 0x6d3e1620, 0x394c1: 0x6d3e1820, 0x394c2: 0x6d3e1a20, 0x394c3: 0x6d3e1c20, - 0x394c4: 0x6d3e1e20, 0x394c5: 0x6d3e2020, 0x394c6: 0x6d3e2220, 0x394c7: 0x6d3e2420, - 0x394c8: 0x6d3e2620, 0x394c9: 0x6d3e2820, 0x394ca: 0x6d3e2a20, 0x394cb: 0x6d3e2c20, - 0x394cc: 0x6d3e2e20, 0x394cd: 0x6d3e3020, 0x394ce: 0x6d6aa420, 0x394cf: 0x6d6aa620, - 0x394d0: 0x6d6aa820, 0x394d1: 0x6d6aaa20, 0x394d2: 0x6d6aac20, 0x394d3: 0x6d6aae20, - 0x394d4: 0x6d6ab020, 0x394d5: 0x6d6ab220, 0x394d6: 0x6d6ab420, 0x394d7: 0x6d6ab620, - 0x394d8: 0x6d6ab820, 0x394d9: 0x6d6aba20, 0x394da: 0x6d6abc20, 0x394db: 0x6d6abe20, - 0x394dc: 0x6d6ac020, 0x394dd: 0x6d3e3220, 0x394de: 0x6d6ac220, 0x394df: 0x6d93ea20, - 0x394e0: 0x6d6ac420, 0x394e1: 0x6d6ac620, 0x394e2: 0x6d6ac820, 0x394e3: 0x6d6aca20, - 0x394e4: 0x6d6acc20, 0x394e5: 0x6d6ace20, 0x394e6: 0x6d6ad020, 0x394e7: 0x6d6ad220, - 0x394e8: 0x6d93ec20, 0x394e9: 0x6d93ee20, 0x394ea: 0x6d93f020, 0x394eb: 0x6d93f220, - 0x394ec: 0x6d93f420, 0x394ed: 0x6d93f620, 0x394ee: 0x6d93f820, 0x394ef: 0x6d93fa20, - 0x394f0: 0x6d93fc20, 0x394f1: 0x6d93fe20, 0x394f2: 0x6d940020, 0x394f3: 0x6d940220, - 0x394f4: 0x6d940420, 0x394f5: 0x6d940620, 0x394f6: 0x6d940820, 0x394f7: 0x6d940a20, - 0x394f8: 0x6d940c20, 0x394f9: 0x6d940e20, 0x394fa: 0x6d941020, 0x394fb: 0x6d941220, - 0x394fc: 0x6d941420, 0x394fd: 0x6d941620, 0x394fe: 0x6d941820, 0x394ff: 0x6d941a20, - // Block 0xe54, offset 0x39500 - 0x39500: 0x6d941c20, 0x39501: 0x6d941e20, 0x39502: 0x6d942020, 0x39503: 0x6d942220, - 0x39504: 0x6d942420, 0x39505: 0x6d942620, 0x39506: 0x6d942820, 0x39507: 0x6d942a20, - 0x39508: 0x6d942c20, 0x39509: 0x6db75820, 0x3950a: 0x6db75a20, 0x3950b: 0x6db75c20, - 0x3950c: 0x6db75e20, 0x3950d: 0x6db76020, 0x3950e: 0x6db76220, 0x3950f: 0x6db76420, - 0x39510: 0x6db76620, 0x39511: 0x6db76820, 0x39512: 0x6db76a20, 0x39513: 0x6db76c20, - 0x39514: 0x6db76e20, 0x39515: 0x6db77020, 0x39516: 0x6db77220, 0x39517: 0x6db77420, - 0x39518: 0x6db77620, 0x39519: 0x6db77820, 0x3951a: 0x6db77a20, 0x3951b: 0x6db77c20, - 0x3951c: 0x6db77e20, 0x3951d: 0x6db78020, 0x3951e: 0x6dd5a820, 0x3951f: 0x6dd5aa20, - 0x39520: 0x6dd5ac20, 0x39521: 0x6dd5ae20, 0x39522: 0x6dd5b020, 0x39523: 0x6dd5b220, - 0x39524: 0x6dd5b420, 0x39525: 0x6dd5b620, 0x39526: 0x6dd5b820, 0x39527: 0x6dd5ba20, - 0x39528: 0x6dd5bc20, 0x39529: 0x6dd5be20, 0x3952a: 0x6dd5c020, 0x3952b: 0x6dd5c220, - 0x3952c: 0x6dd5c420, 0x3952d: 0x6dd5c620, 0x3952e: 0x6dd5c820, 0x3952f: 0x6dd5ca20, - 0x39530: 0x6dd5cc20, 0x39531: 0x6dd5ce20, 0x39532: 0x6dd5d020, 0x39533: 0x6dd5d220, - 0x39534: 0x6dd5d420, 0x39535: 0x6dd5d620, 0x39536: 0x6dee9020, 0x39537: 0x6dee9220, - 0x39538: 0x6dee9420, 0x39539: 0x6dee9620, 0x3953a: 0x6dee9820, 0x3953b: 0x6dee9a20, - 0x3953c: 0x6dee9c20, 0x3953d: 0x6dee9e20, 0x3953e: 0x6deea020, 0x3953f: 0x6deea220, - // Block 0xe55, offset 0x39540 - 0x39540: 0x6deea420, 0x39541: 0x6deea620, 0x39542: 0x6deea820, 0x39543: 0x6deeaa20, - 0x39544: 0x6deeac20, 0x39545: 0x6deeae20, 0x39546: 0x6deeb020, 0x39547: 0x6deeb220, - 0x39548: 0x6deeb420, 0x39549: 0x6deeb620, 0x3954a: 0x6deeb820, 0x3954b: 0x6deeba20, - 0x3954c: 0x6deebc20, 0x3954d: 0x6e031420, 0x3954e: 0x6e031620, 0x3954f: 0x6e031820, - 0x39550: 0x6e031a20, 0x39551: 0x6e031c20, 0x39552: 0x6e031e20, 0x39553: 0x6e032020, - 0x39554: 0x6e032220, 0x39555: 0x6e032420, 0x39556: 0x6e032620, 0x39557: 0x6e032820, - 0x39558: 0x6e032a20, 0x39559: 0x6e14b420, 0x3955a: 0x6e14b620, 0x3955b: 0x6e14b820, - 0x3955c: 0x6e14ba20, 0x3955d: 0x6e14bc20, 0x3955e: 0x6e14be20, 0x3955f: 0x6e14c020, - 0x39560: 0x6e14c220, 0x39561: 0x6e226220, 0x39562: 0x6e226420, 0x39563: 0x6e226620, - 0x39564: 0x6e226820, 0x39565: 0x6e226a20, 0x39566: 0x6e226c20, 0x39567: 0x6e226e20, - 0x39568: 0x6e2cb220, 0x39569: 0x6e2cb420, 0x3956a: 0x6e2cb620, 0x3956b: 0x6e2cb820, - 0x3956c: 0x6e2cba20, 0x3956d: 0x6e2cbc20, 0x3956e: 0x6e34bc20, 0x3956f: 0x6e34be20, - 0x39570: 0x6e3a7020, 0x39571: 0x6e3a7220, 0x39572: 0x6e3a7420, 0x39573: 0x6e3a7620, - 0x39574: 0x6e3a7820, 0x39575: 0x6e412020, 0x39576: 0x6e432020, 0x39577: 0x6c270420, - 0x39578: 0x6c40e020, 0x39579: 0x6c40e220, 0x3957a: 0x6c611c20, 0x3957b: 0x6c611e20, - 0x3957c: 0x6c612020, 0x3957d: 0x6c612220, 0x3957e: 0x6c612420, 0x3957f: 0x6c612620, - // Block 0xe56, offset 0x39580 - 0x39580: 0x6c612820, 0x39581: 0x6c875c20, 0x39582: 0x6c875e20, 0x39583: 0x6c876020, - 0x39584: 0x6c876220, 0x39585: 0x6c876420, 0x39586: 0x6c876620, 0x39587: 0x6c876820, - 0x39588: 0x6c876a20, 0x39589: 0x6c876c20, 0x3958a: 0x6c876e20, 0x3958b: 0x6c877020, - 0x3958c: 0x6c877220, 0x3958d: 0x6c877420, 0x3958e: 0x6c877620, 0x3958f: 0x6c877820, - 0x39590: 0x6c877a20, 0x39591: 0x6c877c20, 0x39592: 0x6cb26420, 0x39593: 0x6cb26620, - 0x39594: 0x6cb26820, 0x39595: 0x6cb26a20, 0x39596: 0x6cb26c20, 0x39597: 0x6cb26e20, - 0x39598: 0x6cb27020, 0x39599: 0x6cb27220, 0x3959a: 0x6cb27420, 0x3959b: 0x6cb27620, - 0x3959c: 0x6cb27820, 0x3959d: 0x6cb27a20, 0x3959e: 0x6cb27c20, 0x3959f: 0x6cb27e20, - 0x395a0: 0x6cb28020, 0x395a1: 0x6cb28220, 0x395a2: 0x6cb28420, 0x395a3: 0x6cb28620, - 0x395a4: 0x6cb28820, 0x395a5: 0x6cb28a20, 0x395a6: 0x6cb28c20, 0x395a7: 0x6cb28e20, - 0x395a8: 0x6cb29020, 0x395a9: 0x6cb29220, 0x395aa: 0x6cb29420, 0x395ab: 0x6cb29620, - 0x395ac: 0x6cb29820, 0x395ad: 0x6cb29a20, 0x395ae: 0x6cb29c20, 0x395af: 0x6cb29e20, - 0x395b0: 0x6cb2a020, 0x395b1: 0x6cb2a220, 0x395b2: 0x6ce1ee20, 0x395b3: 0x6ce1f020, - 0x395b4: 0x6ce1f220, 0x395b5: 0x6ce1f420, 0x395b6: 0x6ce1f620, 0x395b7: 0x6ce1f820, - 0x395b8: 0x6ce1fa20, 0x395b9: 0x6ce1fc20, 0x395ba: 0x6ce1fe20, 0x395bb: 0x6ce20020, - 0x395bc: 0x6ce20220, 0x395bd: 0x6ce20420, 0x395be: 0x6ce20620, 0x395bf: 0x6ce20820, - // Block 0xe57, offset 0x395c0 - 0x395c0: 0x6ce20a20, 0x395c1: 0x6ce20c20, 0x395c2: 0x6ce20e20, 0x395c3: 0x6ce21020, - 0x395c4: 0x6ce21220, 0x395c5: 0x6ce21420, 0x395c6: 0x6ce21620, 0x395c7: 0x6ce21820, - 0x395c8: 0x6ce21a20, 0x395c9: 0x6ce21c20, 0x395ca: 0x6ce21e20, 0x395cb: 0x6ce22020, - 0x395cc: 0x6ce22220, 0x395cd: 0x6ce22420, 0x395ce: 0x6ce22620, 0x395cf: 0x6ce22820, - 0x395d0: 0x6ce22a20, 0x395d1: 0x6ce22c20, 0x395d2: 0x6ce22e20, 0x395d3: 0x6ce23020, - 0x395d4: 0x6ce23220, 0x395d5: 0x6d105020, 0x395d6: 0x6d105220, 0x395d7: 0x6d105420, - 0x395d8: 0x6d105620, 0x395d9: 0x6d105820, 0x395da: 0x6d105a20, 0x395db: 0x6d105c20, - 0x395dc: 0x6d105e20, 0x395dd: 0x6d106020, 0x395de: 0x6d106220, 0x395df: 0x6d106420, - 0x395e0: 0x6d106620, 0x395e1: 0x6d106820, 0x395e2: 0x6d106a20, 0x395e3: 0x6d106c20, - 0x395e4: 0x6d106e20, 0x395e5: 0x6d107020, 0x395e6: 0x6d107220, 0x395e7: 0x6d107420, - 0x395e8: 0x6d107620, 0x395e9: 0x6d107820, 0x395ea: 0x6d107a20, 0x395eb: 0x6d107c20, - 0x395ec: 0x6d107e20, 0x395ed: 0x6d108020, 0x395ee: 0x6d108220, 0x395ef: 0x6d108420, - 0x395f0: 0x6d108620, 0x395f1: 0x6d108820, 0x395f2: 0x6d108a20, 0x395f3: 0x6d108c20, - 0x395f4: 0x6d108e20, 0x395f5: 0x6d109020, 0x395f6: 0x6d109220, 0x395f7: 0x6d109420, - 0x395f8: 0x6d109620, 0x395f9: 0x6d109820, 0x395fa: 0x6d109a20, 0x395fb: 0x6d109c20, - 0x395fc: 0x6d109e20, 0x395fd: 0x6d10a020, 0x395fe: 0x6d10a220, 0x395ff: 0x6d10a420, - // Block 0xe58, offset 0x39600 - 0x39600: 0x6d3e7220, 0x39601: 0x6d3e7420, 0x39602: 0x6d3e7620, 0x39603: 0x6d3e7820, - 0x39604: 0x6d3e7a20, 0x39605: 0x6d3e7c20, 0x39606: 0x6d3e7e20, 0x39607: 0x6d3e8020, - 0x39608: 0x6d3e8220, 0x39609: 0x6d3e8420, 0x3960a: 0x6d3e8620, 0x3960b: 0x6d3e8820, - 0x3960c: 0x6d3e8a20, 0x3960d: 0x6d3e8c20, 0x3960e: 0x6d3e8e20, 0x3960f: 0x6d3e9020, - 0x39610: 0x6d3e9220, 0x39611: 0x6d3e9420, 0x39612: 0x6d3e9620, 0x39613: 0x6d3e9820, - 0x39614: 0x6d3e9a20, 0x39615: 0x6d3e9c20, 0x39616: 0x6d3e9e20, 0x39617: 0x6d3ea020, - 0x39618: 0x6d3ea220, 0x39619: 0x6d3ea420, 0x3961a: 0x6d3ea620, 0x3961b: 0x6d3ea820, - 0x3961c: 0x6d3eaa20, 0x3961d: 0x6d3eac20, 0x3961e: 0x6d3eae20, 0x3961f: 0x6d3eb020, - 0x39620: 0x6d3eb220, 0x39621: 0x6d3eb420, 0x39622: 0x6d3eb620, 0x39623: 0x6d3eb820, - 0x39624: 0x6d3eba20, 0x39625: 0x6d3ebc20, 0x39626: 0x6d3ebe20, 0x39627: 0x6d3ec020, - 0x39628: 0x6d3ec220, 0x39629: 0x6d3ec420, 0x3962a: 0x6d3ec620, 0x3962b: 0x6d3ec820, - 0x3962c: 0x6d3eca20, 0x3962d: 0x6d3ecc20, 0x3962e: 0x6d3ece20, 0x3962f: 0x6d3ed020, - 0x39630: 0x6d3ed220, 0x39631: 0x6d3ed420, 0x39632: 0x6d3ed620, 0x39633: 0x6d3ed820, - 0x39634: 0x6d3eda20, 0x39635: 0x6d6b3c20, 0x39636: 0x6d6b3e20, 0x39637: 0x6d6b4020, - 0x39638: 0x6d6b4220, 0x39639: 0x6d6b4420, 0x3963a: 0x6d6b4620, 0x3963b: 0x6d6b4820, - 0x3963c: 0x6d6b4a20, 0x3963d: 0x6d6b4c20, 0x3963e: 0x6d6b4e20, 0x3963f: 0x6d6b5020, - // Block 0xe59, offset 0x39640 - 0x39640: 0x6d6b5220, 0x39641: 0x6d6b5420, 0x39642: 0x6d6b5620, 0x39643: 0x6d6b5820, - 0x39644: 0x6d6b5a20, 0x39645: 0x6d6b5c20, 0x39646: 0x6d6b5e20, 0x39647: 0x6d6b6020, - 0x39648: 0x6d6b6220, 0x39649: 0x6d6b6420, 0x3964a: 0x6d6b6620, 0x3964b: 0x6d6b6820, - 0x3964c: 0x6d6b6a20, 0x3964d: 0x6d6b6c20, 0x3964e: 0x6d6b6e20, 0x3964f: 0x6d6b7020, - 0x39650: 0x6d6b7220, 0x39651: 0x6d6b7420, 0x39652: 0x6d6b7620, 0x39653: 0x6d6b7820, - 0x39654: 0x6d6b7a20, 0x39655: 0x6d6b7c20, 0x39656: 0x6d6b7e20, 0x39657: 0x6d6b8020, - 0x39658: 0x6d6b8220, 0x39659: 0x6d6b8420, 0x3965a: 0x6d6b8620, 0x3965b: 0x6d6b8820, - 0x3965c: 0x6d6b8a20, 0x3965d: 0x6d946e20, 0x3965e: 0x6d947020, 0x3965f: 0x6d6b8c20, - 0x39660: 0x6d947220, 0x39661: 0x6d947420, 0x39662: 0x6d947620, 0x39663: 0x6d947820, - 0x39664: 0x6d947a20, 0x39665: 0x6d947c20, 0x39666: 0x6d947e20, 0x39667: 0x6d948020, - 0x39668: 0x6d948220, 0x39669: 0x6d948420, 0x3966a: 0x6d948620, 0x3966b: 0x6d948820, - 0x3966c: 0x6d948a20, 0x3966d: 0x6d948c20, 0x3966e: 0x6d948e20, 0x3966f: 0x6d949020, - 0x39670: 0x6d949220, 0x39671: 0x6d949420, 0x39672: 0x6d949620, 0x39673: 0x6d949820, - 0x39674: 0x6d949a20, 0x39675: 0x6d949c20, 0x39676: 0x6d949e20, 0x39677: 0x6d94a020, - 0x39678: 0x6d94a220, 0x39679: 0x6d94a420, 0x3967a: 0x6d94a620, 0x3967b: 0x6d94a820, - 0x3967c: 0x6d94aa20, 0x3967d: 0x6d94ac20, 0x3967e: 0x6d94ae20, 0x3967f: 0x6d94b020, - // Block 0xe5a, offset 0x39680 - 0x39680: 0x6d94b220, 0x39681: 0x6d94b420, 0x39682: 0x6d94b620, 0x39683: 0x6d94b820, - 0x39684: 0x6d94ba20, 0x39685: 0x6d94bc20, 0x39686: 0x6d94be20, 0x39687: 0x6d94c020, - 0x39688: 0x6d94c220, 0x39689: 0x6d94c420, 0x3968a: 0x6d94c620, 0x3968b: 0x6d94c820, - 0x3968c: 0x6d94ca20, 0x3968d: 0x6d94cc20, 0x3968e: 0x6d94ce20, 0x3968f: 0x6d94d020, - 0x39690: 0x6d94d220, 0x39691: 0x6d94d420, 0x39692: 0x6d94d620, 0x39693: 0x6db7ae20, - 0x39694: 0x6db7b020, 0x39695: 0x6db7b220, 0x39696: 0x6db7b420, 0x39697: 0x6db7b620, - 0x39698: 0x6db7b820, 0x39699: 0x6db7ba20, 0x3969a: 0x6db7bc20, 0x3969b: 0x6db7be20, - 0x3969c: 0x6db7c020, 0x3969d: 0x6db7c220, 0x3969e: 0x6db7c420, 0x3969f: 0x6db7c620, - 0x396a0: 0x6db7c820, 0x396a1: 0x6db7ca20, 0x396a2: 0x6db7cc20, 0x396a3: 0x6db7ce20, - 0x396a4: 0x6db7d020, 0x396a5: 0x6db7d220, 0x396a6: 0x6db7d420, 0x396a7: 0x6db7d620, - 0x396a8: 0x6db7d820, 0x396a9: 0x6db7da20, 0x396aa: 0x6db7dc20, 0x396ab: 0x6db7de20, - 0x396ac: 0x6db7e020, 0x396ad: 0x6db7e220, 0x396ae: 0x6db7e420, 0x396af: 0x6db7e620, - 0x396b0: 0x6db7e820, 0x396b1: 0x6db7ea20, 0x396b2: 0x6db7ec20, 0x396b3: 0x6db7ee20, - 0x396b4: 0x6db7f020, 0x396b5: 0x6db7f220, 0x396b6: 0x6db7f420, 0x396b7: 0x6db7f620, - 0x396b8: 0x6db7f820, 0x396b9: 0x6db7fa20, 0x396ba: 0x6db7fc20, 0x396bb: 0x6db7fe20, - 0x396bc: 0x6db80020, 0x396bd: 0x6db80220, 0x396be: 0x6db80420, 0x396bf: 0x6db80620, - // Block 0xe5b, offset 0x396c0 - 0x396c0: 0x6db80820, 0x396c1: 0x6db80a20, 0x396c2: 0x6db80c20, 0x396c3: 0x6dd61420, - 0x396c4: 0x6db80e20, 0x396c5: 0x6dd61620, 0x396c6: 0x6dd61820, 0x396c7: 0x6dd61a20, - 0x396c8: 0x6dd61c20, 0x396c9: 0x6dd61e20, 0x396ca: 0x6dd62020, 0x396cb: 0x6dd62220, - 0x396cc: 0x6dd62420, 0x396cd: 0x6dd62620, 0x396ce: 0x6dd62820, 0x396cf: 0x6dd62a20, - 0x396d0: 0x6dd62c20, 0x396d1: 0x6dd62e20, 0x396d2: 0x6dd63020, 0x396d3: 0x6dd63220, - 0x396d4: 0x6dd63420, 0x396d5: 0x6dd63620, 0x396d6: 0x6dd63820, 0x396d7: 0x6dd63a20, - 0x396d8: 0x6dd63c20, 0x396d9: 0x6dd63e20, 0x396da: 0x6dd64020, 0x396db: 0x6dd64220, - 0x396dc: 0x6dd64420, 0x396dd: 0x6dd64620, 0x396de: 0x6dd64820, 0x396df: 0x6dd64a20, - 0x396e0: 0x6dd64c20, 0x396e1: 0x6dd64e20, 0x396e2: 0x6dd65020, 0x396e3: 0x6dd65220, - 0x396e4: 0x6dd65420, 0x396e5: 0x6dd65620, 0x396e6: 0x6dd65820, 0x396e7: 0x6dd65a20, - 0x396e8: 0x6dd65c20, 0x396e9: 0x6dd65e20, 0x396ea: 0x6dd66020, 0x396eb: 0x6dd66220, - 0x396ec: 0x6dd66420, 0x396ed: 0x6dd66620, 0x396ee: 0x6dd66820, 0x396ef: 0x6dd66a20, - 0x396f0: 0x6dd66c20, 0x396f1: 0x6dd66e20, 0x396f2: 0x6dd67020, 0x396f3: 0x6dd67220, - 0x396f4: 0x6dd67420, 0x396f5: 0x6dd67620, 0x396f6: 0x6dd67820, 0x396f7: 0x6dd67a20, - 0x396f8: 0x6dd67c20, 0x396f9: 0x6dd67e20, 0x396fa: 0x6dd68020, 0x396fb: 0x6dd68220, - 0x396fc: 0x6dd68420, 0x396fd: 0x6dd68620, 0x396fe: 0x6dd68820, 0x396ff: 0x6dd68a20, - // Block 0xe5c, offset 0x39700 - 0x39700: 0x6dd68c20, 0x39701: 0x6dd68e20, 0x39702: 0x6dd69020, 0x39703: 0x6dd69220, - 0x39704: 0x6dd69420, 0x39705: 0x6dd69620, 0x39706: 0x6dd69820, 0x39707: 0x6dd69a20, - 0x39708: 0x6dd69c20, 0x39709: 0x6dd69e20, 0x3970a: 0x6deef420, 0x3970b: 0x6deef620, - 0x3970c: 0x6deef820, 0x3970d: 0x6deefa20, 0x3970e: 0x6deefc20, 0x3970f: 0x6deefe20, - 0x39710: 0x6def0020, 0x39711: 0x6def0220, 0x39712: 0x6def0420, 0x39713: 0x6def0620, - 0x39714: 0x6def0820, 0x39715: 0x6def0a20, 0x39716: 0x6def0c20, 0x39717: 0x6def0e20, - 0x39718: 0x6def1020, 0x39719: 0x6def1220, 0x3971a: 0x6dd6a020, 0x3971b: 0x6def1420, - 0x3971c: 0x6def1620, 0x3971d: 0x6def1820, 0x3971e: 0x6def1a20, 0x3971f: 0x6def1c20, - 0x39720: 0x6def1e20, 0x39721: 0x6def2020, 0x39722: 0x6def2220, 0x39723: 0x6def2420, - 0x39724: 0x6def2620, 0x39725: 0x6def2820, 0x39726: 0x6def2a20, 0x39727: 0x6def2c20, - 0x39728: 0x6def2e20, 0x39729: 0x6def3020, 0x3972a: 0x6def3220, 0x3972b: 0x6def3420, - 0x3972c: 0x6def3620, 0x3972d: 0x6def3820, 0x3972e: 0x6def3a20, 0x3972f: 0x6def3c20, - 0x39730: 0x6def3e20, 0x39731: 0x6def4020, 0x39732: 0x6def4220, 0x39733: 0x6def4420, - 0x39734: 0x6def4620, 0x39735: 0x6def4820, 0x39736: 0x6def4a20, 0x39737: 0x6def4c20, - 0x39738: 0x6def4e20, 0x39739: 0x6def5020, 0x3973a: 0x6def5220, 0x3973b: 0x6def5420, - 0x3973c: 0x6def5620, 0x3973d: 0x6def5820, 0x3973e: 0x6def5a20, 0x3973f: 0x6def5c20, - // Block 0xe5d, offset 0x39740 - 0x39740: 0x6def5e20, 0x39741: 0x6e034020, 0x39742: 0x6e034220, 0x39743: 0x6e034420, - 0x39744: 0x6e034620, 0x39745: 0x6e034820, 0x39746: 0x6e034a20, 0x39747: 0x6e034c20, - 0x39748: 0x6e034e20, 0x39749: 0x6e035020, 0x3974a: 0x6e035220, 0x3974b: 0x6e035420, - 0x3974c: 0x6e035620, 0x3974d: 0x6e035820, 0x3974e: 0x6e035a20, 0x3974f: 0x6e035c20, - 0x39750: 0x6e035e20, 0x39751: 0x6e036020, 0x39752: 0x6e036220, 0x39753: 0x6e036420, - 0x39754: 0x6e036620, 0x39755: 0x6e036820, 0x39756: 0x6e036a20, 0x39757: 0x6e036c20, - 0x39758: 0x6e036e20, 0x39759: 0x6e037020, 0x3975a: 0x6e037220, 0x3975b: 0x6e037420, - 0x3975c: 0x6e037620, 0x3975d: 0x6e037820, 0x3975e: 0x6e037a20, 0x3975f: 0x6e037c20, - 0x39760: 0x6e037e20, 0x39761: 0x6e038020, 0x39762: 0x6e038220, 0x39763: 0x6e038420, - 0x39764: 0x6e038620, 0x39765: 0x6e038820, 0x39766: 0x6e038a20, 0x39767: 0x6e038c20, - 0x39768: 0x6e038e20, 0x39769: 0x6e039020, 0x3976a: 0x6e14d420, 0x3976b: 0x6e14d620, - 0x3976c: 0x6e14d820, 0x3976d: 0x6e14da20, 0x3976e: 0x6e14dc20, 0x3976f: 0x6e14de20, - 0x39770: 0x6e14e020, 0x39771: 0x6e14e220, 0x39772: 0x6e14e420, 0x39773: 0x6e14e620, - 0x39774: 0x6e14e820, 0x39775: 0x6e14ea20, 0x39776: 0x6e14ec20, 0x39777: 0x6e14ee20, - 0x39778: 0x6e14f020, 0x39779: 0x6e14f220, 0x3977a: 0x6e14f420, 0x3977b: 0x6e14f620, - 0x3977c: 0x6e14f820, 0x3977d: 0x6e14fa20, 0x3977e: 0x6e14fc20, 0x3977f: 0x6e14fe20, - // Block 0xe5e, offset 0x39780 - 0x39780: 0x6e150020, 0x39781: 0x6e228020, 0x39782: 0x6e228220, 0x39783: 0x6e228420, - 0x39784: 0x6e228620, 0x39785: 0x6e228820, 0x39786: 0x6e228a20, 0x39787: 0x6e228c20, - 0x39788: 0x6e228e20, 0x39789: 0x6e229020, 0x3978a: 0x6e229220, 0x3978b: 0x6e229420, - 0x3978c: 0x6e229620, 0x3978d: 0x6e229820, 0x3978e: 0x6e229a20, 0x3978f: 0x6e229c20, - 0x39790: 0x6e229e20, 0x39791: 0x6e22a020, 0x39792: 0x6e22a220, 0x39793: 0x6e22a420, - 0x39794: 0x6e22a620, 0x39795: 0x6e22a820, 0x39796: 0x6e2cca20, 0x39797: 0x6e2ccc20, - 0x39798: 0x6e2cce20, 0x39799: 0x6e2cd020, 0x3979a: 0x6e2cd220, 0x3979b: 0x6e2cd420, - 0x3979c: 0x6e2cd620, 0x3979d: 0x6e2cd820, 0x3979e: 0x6e2cda20, 0x3979f: 0x6e2cdc20, - 0x397a0: 0x6e2cde20, 0x397a1: 0x6e2ce020, 0x397a2: 0x6e2ce220, 0x397a3: 0x6e2ce420, - 0x397a4: 0x6e34ca20, 0x397a5: 0x6e34cc20, 0x397a6: 0x6e34ce20, 0x397a7: 0x6e34d020, - 0x397a8: 0x6e34d220, 0x397a9: 0x6e34d420, 0x397aa: 0x6e34d620, 0x397ab: 0x6e34d820, - 0x397ac: 0x6e34da20, 0x397ad: 0x6e34dc20, 0x397ae: 0x6e3a8620, 0x397af: 0x6e3a8820, - 0x397b0: 0x6e3a8a20, 0x397b1: 0x6e3a8c20, 0x397b2: 0x6e3a8e20, 0x397b3: 0x6e3a9020, - 0x397b4: 0x6e3a9220, 0x397b5: 0x6e3a9420, 0x397b6: 0x6e3a9620, 0x397b7: 0x6e3a9820, - 0x397b8: 0x6e3a9a20, 0x397b9: 0x6e3a9c20, 0x397ba: 0x6e3a9e20, 0x397bb: 0x6e3e5020, - 0x397bc: 0x6e3e5220, 0x397bd: 0x6e3e5420, 0x397be: 0x6e3e5620, 0x397bf: 0x6e3e5820, - // Block 0xe5f, offset 0x397c0 - 0x397c0: 0x6e3e5a20, 0x397c1: 0x6e412620, 0x397c2: 0x6e412820, 0x397c3: 0x6e412a20, - 0x397c4: 0x6e432620, 0x397c5: 0x6e432820, 0x397c6: 0x6e432a20, 0x397c7: 0x6e432c20, - 0x397c8: 0x6e448820, 0x397c9: 0x6e448a20, 0x397ca: 0x6e448c20, 0x397cb: 0x6e455e20, - 0x397cc: 0x6e456020, 0x397cd: 0x6e45dc20, 0x397ce: 0x6e470a20, 0x397cf: 0x6c270820, - 0x397d0: 0x6c270a20, 0x397d1: 0x6c270c20, 0x397d2: 0x6c612a20, 0x397d3: 0x6c878220, - 0x397d4: 0x6c878420, 0x397d5: 0x6c878620, 0x397d6: 0x6c878820, 0x397d7: 0x6c878a20, - 0x397d8: 0x6cb2b020, 0x397d9: 0x6cb2b220, 0x397da: 0x6cb2b420, 0x397db: 0x6cb2b620, - 0x397dc: 0x6cb2b820, 0x397dd: 0x6cb2ba20, 0x397de: 0x6cb2bc20, 0x397df: 0x6cb2be20, - 0x397e0: 0x6cb2c020, 0x397e1: 0x6cb2c220, 0x397e2: 0x6cb2c420, 0x397e3: 0x6cb2c620, - 0x397e4: 0x6cb2c820, 0x397e5: 0x6cb2ca20, 0x397e6: 0x6cb2cc20, 0x397e7: 0x6cb2ce20, - 0x397e8: 0x6cb2d020, 0x397e9: 0x6ce24620, 0x397ea: 0x6ce24820, 0x397eb: 0x6ce24a20, - 0x397ec: 0x6ce24c20, 0x397ed: 0x6ce24e20, 0x397ee: 0x6ce25020, 0x397ef: 0x6ce25220, - 0x397f0: 0x6ce25420, 0x397f1: 0x6ce25620, 0x397f2: 0x6ce25820, 0x397f3: 0x6ce25a20, - 0x397f4: 0x6ce25c20, 0x397f5: 0x6ce25e20, 0x397f6: 0x6ce26020, 0x397f7: 0x6ce26220, - 0x397f8: 0x6d10bc20, 0x397f9: 0x6d10be20, 0x397fa: 0x6d10c020, 0x397fb: 0x6d10c220, - 0x397fc: 0x6d10c420, 0x397fd: 0x6d10c620, 0x397fe: 0x6d10c820, 0x397ff: 0x6d10ca20, - // Block 0xe60, offset 0x39800 - 0x39800: 0x6d10cc20, 0x39801: 0x6d10ce20, 0x39802: 0x6d10d020, 0x39803: 0x6d10d220, - 0x39804: 0x6d10d420, 0x39805: 0x6d10d620, 0x39806: 0x6d10d820, 0x39807: 0x6d10da20, - 0x39808: 0x6d3ee820, 0x39809: 0x6d3eea20, 0x3980a: 0x6d3eec20, 0x3980b: 0x6d3eee20, - 0x3980c: 0x6d3ef020, 0x3980d: 0x6d3ef220, 0x3980e: 0x6d3ef420, 0x3980f: 0x6d3ef620, - 0x39810: 0x6d3ef820, 0x39811: 0x6d3efa20, 0x39812: 0x6d3efc20, 0x39813: 0x6d3efe20, - 0x39814: 0x6d6bac20, 0x39815: 0x6d6bae20, 0x39816: 0x6d6bb020, 0x39817: 0x6d6bb220, - 0x39818: 0x6d6bb420, 0x39819: 0x6d6bb620, 0x3981a: 0x6d6bb820, 0x3981b: 0x6d6bba20, - 0x3981c: 0x6d6bbc20, 0x3981d: 0x6d6bbe20, 0x3981e: 0x6d6bc020, 0x3981f: 0x6d6bc220, - 0x39820: 0x6d6bc420, 0x39821: 0x6d6bc620, 0x39822: 0x6d94e820, 0x39823: 0x6d94ea20, - 0x39824: 0x6d94ec20, 0x39825: 0x6d94ee20, 0x39826: 0x6db81a20, 0x39827: 0x6d94f020, - 0x39828: 0x6d94f220, 0x39829: 0x6d94f420, 0x3982a: 0x6d94f620, 0x3982b: 0x6d94f820, - 0x3982c: 0x6d94fa20, 0x3982d: 0x6d94fc20, 0x3982e: 0x6db81c20, 0x3982f: 0x6db81e20, - 0x39830: 0x6db82020, 0x39831: 0x6db82220, 0x39832: 0x6db82420, 0x39833: 0x6db82620, - 0x39834: 0x6db82820, 0x39835: 0x6db82a20, 0x39836: 0x6db82c20, 0x39837: 0x6db82e20, - 0x39838: 0x6db83020, 0x39839: 0x6dd6b220, 0x3983a: 0x6dd6b420, 0x3983b: 0x6dd6b620, - 0x3983c: 0x6dd6b820, 0x3983d: 0x6dd6ba20, 0x3983e: 0x6dd6bc20, 0x3983f: 0x6def7420, - // Block 0xe61, offset 0x39840 - 0x39840: 0x6def7620, 0x39841: 0x6def7820, 0x39842: 0x6def7a20, 0x39843: 0x6def7c20, - 0x39844: 0x6def7e20, 0x39845: 0x6def8020, 0x39846: 0x6def8220, 0x39847: 0x6def8420, - 0x39848: 0x6def8620, 0x39849: 0x6def8820, 0x3984a: 0x6def8a20, 0x3984b: 0x6def8c20, - 0x3984c: 0x6def8e20, 0x3984d: 0x6e039e20, 0x3984e: 0x6e03a020, 0x3984f: 0x6e03a220, - 0x39850: 0x6e03a420, 0x39851: 0x6e03a620, 0x39852: 0x6e03a820, 0x39853: 0x6e150820, - 0x39854: 0x6e150a20, 0x39855: 0x6e150c20, 0x39856: 0x6e150e20, 0x39857: 0x6e151020, - 0x39858: 0x6e22ae20, 0x39859: 0x6e22b020, 0x3985a: 0x6e22b220, 0x3985b: 0x6e2cea20, - 0x3985c: 0x6e2cec20, 0x3985d: 0x6e3aa020, 0x3985e: 0x6e3aa220, 0x3985f: 0x6e3e5c20, - 0x39860: 0x6c613620, 0x39861: 0x6c613820, 0x39862: 0x6c613a20, 0x39863: 0x6c613c20, - 0x39864: 0x6c613e20, 0x39865: 0x6c614020, 0x39866: 0x6c614220, 0x39867: 0x6c879e20, - 0x39868: 0x6c87a020, 0x39869: 0x6c87a220, 0x3986a: 0x6c87a420, 0x3986b: 0x6c87a620, - 0x3986c: 0x6c87a820, 0x3986d: 0x6c87aa20, 0x3986e: 0x6c87ac20, 0x3986f: 0x6c87ae20, - 0x39870: 0x6c87b020, 0x39871: 0x6c87b220, 0x39872: 0x6c87b420, 0x39873: 0x6cb30020, - 0x39874: 0x6cb30220, 0x39875: 0x6cb30420, 0x39876: 0x6cb30620, 0x39877: 0x6cb30820, - 0x39878: 0x6cb30a20, 0x39879: 0x6cb30c20, 0x3987a: 0x6cb30e20, 0x3987b: 0x6cb31020, - 0x3987c: 0x6cb31220, 0x3987d: 0x6cb31420, 0x3987e: 0x6cb31620, 0x3987f: 0x6cb31820, - // Block 0xe62, offset 0x39880 - 0x39880: 0x6cb31a20, 0x39881: 0x6cb31c20, 0x39882: 0x6cb31e20, 0x39883: 0x6cb32020, - 0x39884: 0x6cb32220, 0x39885: 0x6cb32420, 0x39886: 0x6cb32620, 0x39887: 0x6cb32820, - 0x39888: 0x6cb32a20, 0x39889: 0x6cb32c20, 0x3988a: 0x6cb32e20, 0x3988b: 0x6cb33020, - 0x3988c: 0x6cb33220, 0x3988d: 0x6cb33420, 0x3988e: 0x6ce2a020, 0x3988f: 0x6ce2a220, - 0x39890: 0x6ce2a420, 0x39891: 0x6ce2a620, 0x39892: 0x6ce2a820, 0x39893: 0x6ce2aa20, - 0x39894: 0x6ce2ac20, 0x39895: 0x6ce2ae20, 0x39896: 0x6ce2b020, 0x39897: 0x6ce2b220, - 0x39898: 0x6ce2b420, 0x39899: 0x6ce2b620, 0x3989a: 0x6ce2b820, 0x3989b: 0x6ce2ba20, - 0x3989c: 0x6ce2bc20, 0x3989d: 0x6ce2be20, 0x3989e: 0x6ce2c020, 0x3989f: 0x6ce2c220, - 0x398a0: 0x6ce2c420, 0x398a1: 0x6ce2c620, 0x398a2: 0x6ce2c820, 0x398a3: 0x6ce2ca20, - 0x398a4: 0x6ce2cc20, 0x398a5: 0x6ce2ce20, 0x398a6: 0x6ce2d020, 0x398a7: 0x6ce2d220, - 0x398a8: 0x6d110a20, 0x398a9: 0x6d110c20, 0x398aa: 0x6d110e20, 0x398ab: 0x6d111020, - 0x398ac: 0x6d111220, 0x398ad: 0x6d111420, 0x398ae: 0x6d111620, 0x398af: 0x6d111820, - 0x398b0: 0x6d111a20, 0x398b1: 0x6d111c20, 0x398b2: 0x6d111e20, 0x398b3: 0x6d112020, - 0x398b4: 0x6d112220, 0x398b5: 0x6d112420, 0x398b6: 0x6d112620, 0x398b7: 0x6d112820, - 0x398b8: 0x6d112a20, 0x398b9: 0x6d112c20, 0x398ba: 0x6d112e20, 0x398bb: 0x6d113020, - 0x398bc: 0x6d113220, 0x398bd: 0x6d113420, 0x398be: 0x6d113620, 0x398bf: 0x6d113820, - // Block 0xe63, offset 0x398c0 - 0x398c0: 0x6d113a20, 0x398c1: 0x6d113c20, 0x398c2: 0x6d3f1c20, 0x398c3: 0x6d3f1e20, - 0x398c4: 0x6d3f2020, 0x398c5: 0x6d3f2220, 0x398c6: 0x6d3f2420, 0x398c7: 0x6d3f2620, - 0x398c8: 0x6d3f2820, 0x398c9: 0x6d3f2a20, 0x398ca: 0x6d3f2c20, 0x398cb: 0x6d3f2e20, - 0x398cc: 0x6d3f3020, 0x398cd: 0x6d3f3220, 0x398ce: 0x6d3f3420, 0x398cf: 0x6d3f3620, - 0x398d0: 0x6d3f3820, 0x398d1: 0x6d3f3a20, 0x398d2: 0x6d3f3c20, 0x398d3: 0x6d3f3e20, - 0x398d4: 0x6d3f4020, 0x398d5: 0x6d3f4220, 0x398d6: 0x6d3f4420, 0x398d7: 0x6d3f4620, - 0x398d8: 0x6d3f4820, 0x398d9: 0x6d3f4a20, 0x398da: 0x6d3f4c20, 0x398db: 0x6d3f4e20, - 0x398dc: 0x6d3f5020, 0x398dd: 0x6d3f5220, 0x398de: 0x6d3f5420, 0x398df: 0x6d3f5620, - 0x398e0: 0x6d6bfe20, 0x398e1: 0x6d6c0020, 0x398e2: 0x6d6c0220, 0x398e3: 0x6d6c0420, - 0x398e4: 0x6d6c0620, 0x398e5: 0x6d6c0820, 0x398e6: 0x6d6c0a20, 0x398e7: 0x6d6c0c20, - 0x398e8: 0x6d6c0e20, 0x398e9: 0x6d6c1020, 0x398ea: 0x6d6c1220, 0x398eb: 0x6d6c1420, - 0x398ec: 0x6d6c1620, 0x398ed: 0x6d6c1820, 0x398ee: 0x6d6c1a20, 0x398ef: 0x6d6c1c20, - 0x398f0: 0x6d6c1e20, 0x398f1: 0x6d6c2020, 0x398f2: 0x6d6c2220, 0x398f3: 0x6d6c2420, - 0x398f4: 0x6d6c2620, 0x398f5: 0x6d6c2820, 0x398f6: 0x6d6c2a20, 0x398f7: 0x6d6c2c20, - 0x398f8: 0x6d6c2e20, 0x398f9: 0x6d6c3020, 0x398fa: 0x6d6c3220, 0x398fb: 0x6d6c3420, - 0x398fc: 0x6d6c3620, 0x398fd: 0x6d6c3820, 0x398fe: 0x6d6c3a20, 0x398ff: 0x6d6c3c20, - // Block 0xe64, offset 0x39900 - 0x39900: 0x6d6c3e20, 0x39901: 0x6d6c4020, 0x39902: 0x6d6c4220, 0x39903: 0x6d6c4420, - 0x39904: 0x6d6c4620, 0x39905: 0x6d6c4820, 0x39906: 0x6d6c4a20, 0x39907: 0x6d952820, - 0x39908: 0x6d952a20, 0x39909: 0x6d952c20, 0x3990a: 0x6d952e20, 0x3990b: 0x6d953020, - 0x3990c: 0x6d953220, 0x3990d: 0x6d953420, 0x3990e: 0x6d953620, 0x3990f: 0x6d953820, - 0x39910: 0x6d953a20, 0x39911: 0x6d953c20, 0x39912: 0x6d953e20, 0x39913: 0x6d954020, - 0x39914: 0x6d954220, 0x39915: 0x6d954420, 0x39916: 0x6d954620, 0x39917: 0x6d954820, - 0x39918: 0x6d954a20, 0x39919: 0x6d954c20, 0x3991a: 0x6d954e20, 0x3991b: 0x6d955020, - 0x3991c: 0x6d955220, 0x3991d: 0x6d955420, 0x3991e: 0x6d955620, 0x3991f: 0x6d955820, - 0x39920: 0x6d955a20, 0x39921: 0x6d955c20, 0x39922: 0x6d955e20, 0x39923: 0x6d956020, - 0x39924: 0x6d956220, 0x39925: 0x6d956420, 0x39926: 0x6d956620, 0x39927: 0x6d956820, - 0x39928: 0x6d956a20, 0x39929: 0x6db85420, 0x3992a: 0x6db85620, 0x3992b: 0x6db85820, - 0x3992c: 0x6db85a20, 0x3992d: 0x6db85c20, 0x3992e: 0x6db85e20, 0x3992f: 0x6db86020, - 0x39930: 0x6db86220, 0x39931: 0x6db86420, 0x39932: 0x6db86620, 0x39933: 0x6db86820, - 0x39934: 0x6db86a20, 0x39935: 0x6db86c20, 0x39936: 0x6db86e20, 0x39937: 0x6db87020, - 0x39938: 0x6db87220, 0x39939: 0x6db87420, 0x3993a: 0x6db87620, 0x3993b: 0x6db87820, - 0x3993c: 0x6db87a20, 0x3993d: 0x6db87c20, 0x3993e: 0x6db87e20, 0x3993f: 0x6db88020, - // Block 0xe65, offset 0x39940 - 0x39940: 0x6db88220, 0x39941: 0x6db88420, 0x39942: 0x6db88620, 0x39943: 0x6db88820, - 0x39944: 0x6db88a20, 0x39945: 0x6db88c20, 0x39946: 0x6db88e20, 0x39947: 0x6db89020, - 0x39948: 0x6db89220, 0x39949: 0x6db89420, 0x3994a: 0x6dd6de20, 0x3994b: 0x6dd6e020, - 0x3994c: 0x6dd6e220, 0x3994d: 0x6dd6e420, 0x3994e: 0x6dd6e620, 0x3994f: 0x6dd6e820, - 0x39950: 0x6dd6ea20, 0x39951: 0x6dd6ec20, 0x39952: 0x6dd6ee20, 0x39953: 0x6dd6f020, - 0x39954: 0x6dd6f220, 0x39955: 0x6dd6f420, 0x39956: 0x6dd6f620, 0x39957: 0x6dd6f820, - 0x39958: 0x6dd6fa20, 0x39959: 0x6dd6fc20, 0x3995a: 0x6dd6fe20, 0x3995b: 0x6dd70020, - 0x3995c: 0x6dd70220, 0x3995d: 0x6dd70420, 0x3995e: 0x6dd70620, 0x3995f: 0x6dd70820, - 0x39960: 0x6dd70a20, 0x39961: 0x6dd70c20, 0x39962: 0x6dd70e20, 0x39963: 0x6dd71020, - 0x39964: 0x6defaa20, 0x39965: 0x6defac20, 0x39966: 0x6defae20, 0x39967: 0x6defb020, - 0x39968: 0x6defb220, 0x39969: 0x6defb420, 0x3996a: 0x6defb620, 0x3996b: 0x6defb820, - 0x3996c: 0x6defba20, 0x3996d: 0x6defbc20, 0x3996e: 0x6defbe20, 0x3996f: 0x6defc020, - 0x39970: 0x6defc220, 0x39971: 0x6defc420, 0x39972: 0x6e03ba20, 0x39973: 0x6e03bc20, - 0x39974: 0x6e03be20, 0x39975: 0x6e03c020, 0x39976: 0x6e03c220, 0x39977: 0x6e03c420, - 0x39978: 0x6e03c620, 0x39979: 0x6e03c820, 0x3997a: 0x6e03ca20, 0x3997b: 0x6e03cc20, - 0x3997c: 0x6e03ce20, 0x3997d: 0x6e03d020, 0x3997e: 0x6e03d220, 0x3997f: 0x6e03d420, - // Block 0xe66, offset 0x39980 - 0x39980: 0x6e03d620, 0x39981: 0x6e03d820, 0x39982: 0x6e03da20, 0x39983: 0x6e03dc20, - 0x39984: 0x6e03de20, 0x39985: 0x6e03e020, 0x39986: 0x6e03e220, 0x39987: 0x6e03e420, - 0x39988: 0x6e152220, 0x39989: 0x6e152420, 0x3998a: 0x6e152620, 0x3998b: 0x6e152820, - 0x3998c: 0x6e152a20, 0x3998d: 0x6e152c20, 0x3998e: 0x6e152e20, 0x3998f: 0x6e153020, - 0x39990: 0x6e153220, 0x39991: 0x6e22be20, 0x39992: 0x6e22c020, 0x39993: 0x6e22c220, - 0x39994: 0x6e22c420, 0x39995: 0x6e22c620, 0x39996: 0x6e22c820, 0x39997: 0x6e22ca20, - 0x39998: 0x6e22cc20, 0x39999: 0x6e22ce20, 0x3999a: 0x6e22d020, 0x3999b: 0x6e22d220, - 0x3999c: 0x6e22d420, 0x3999d: 0x6e22d620, 0x3999e: 0x6e2cf220, 0x3999f: 0x6e2cf420, - 0x399a0: 0x6e2cf620, 0x399a1: 0x6e2cf820, 0x399a2: 0x6e2cfa20, 0x399a3: 0x6e2cfc20, - 0x399a4: 0x6e2cfe20, 0x399a5: 0x6e2d0020, 0x399a6: 0x6e2d0220, 0x399a7: 0x6e2d0420, - 0x399a8: 0x6e2d0620, 0x399a9: 0x6e34e220, 0x399aa: 0x6e34e420, 0x399ab: 0x6e34e620, - 0x399ac: 0x6e34e820, 0x399ad: 0x6e34ea20, 0x399ae: 0x6e34ec20, 0x399af: 0x6e34ee20, - 0x399b0: 0x6e34f020, 0x399b1: 0x6e34f220, 0x399b2: 0x6e34f420, 0x399b3: 0x6e3aa420, - 0x399b4: 0x6e3aa620, 0x399b5: 0x6e3e6020, 0x399b6: 0x6e3e6220, 0x399b7: 0x6e3e6420, - 0x399b8: 0x6e3e6620, 0x399b9: 0x6e413220, 0x399ba: 0x6e432e20, 0x399bb: 0x6e413420, - 0x399bc: 0x6e433020, 0x399bd: 0x6e3e6820, 0x399be: 0x6e413620, 0x399bf: 0x6e433220, - // Block 0xe67, offset 0x399c0 - 0x399c0: 0x6e433420, 0x399c1: 0x6e448e20, 0x399c2: 0x6e456220, 0x399c3: 0x6e45e020, - 0x399c4: 0x6e471420, 0x399c5: 0x6c40f020, 0x399c6: 0x6c40f220, 0x399c7: 0x6c615c20, - 0x399c8: 0x6c87ca20, 0x399c9: 0x6d957420, 0x399ca: 0x6e03ea20, 0x399cb: 0x6c271e20, - 0x399cc: 0x6c40f620, 0x399cd: 0x6c87d220, 0x399ce: 0x6c87d420, 0x399cf: 0x6cb34220, - 0x399d0: 0x6cb34420, 0x399d1: 0x6cb34620, 0x399d2: 0x6ce2f420, 0x399d3: 0x6ce2f620, - 0x399d4: 0x6d115220, 0x399d5: 0x6d115420, 0x399d6: 0x6d115620, 0x399d7: 0x6d115820, - 0x399d8: 0x6d3f6e20, 0x399d9: 0x6d3f7020, 0x399da: 0x6d3f7220, 0x399db: 0x6d3f7420, - 0x399dc: 0x6d6c5820, 0x399dd: 0x6d6c5a20, 0x399de: 0x6d6c5c20, 0x399df: 0x6d6c5e20, - 0x399e0: 0x6d958420, 0x399e1: 0x6d958620, 0x399e2: 0x6d958820, 0x399e3: 0x6d958a20, - 0x399e4: 0x6d958c20, 0x399e5: 0x6d958e20, 0x399e6: 0x6d959020, 0x399e7: 0x6d959220, - 0x399e8: 0x6db8a020, 0x399e9: 0x6db8a220, 0x399ea: 0x6db8a420, 0x399eb: 0x6db8a620, - 0x399ec: 0x6db8a820, 0x399ed: 0x6db8aa20, 0x399ee: 0x6db8ac20, 0x399ef: 0x6db8ae20, - 0x399f0: 0x6dd71820, 0x399f1: 0x6dd71a20, 0x399f2: 0x6dd71c20, 0x399f3: 0x6dc60820, - 0x399f4: 0x6dcb1a20, 0x399f5: 0x6defcc20, 0x399f6: 0x6defce20, 0x399f7: 0x6defd020, - 0x399f8: 0x6defd220, 0x399f9: 0x6defd420, 0x399fa: 0x6e03f020, 0x399fb: 0x6e03f220, - 0x399fc: 0x6e03f420, 0x399fd: 0x6e153820, 0x399fe: 0x6e22d820, 0x399ff: 0x6e22da20, - // Block 0xe68, offset 0x39a00 - 0x39a00: 0x6e34f620, 0x39a01: 0x6e449020, 0x39a02: 0x6e456420, 0x39a03: 0x6c272220, - 0x39a04: 0x6c272420, 0x39a05: 0x6d116220, 0x39a06: 0x6d116420, 0x39a07: 0x6d116620, - 0x39a08: 0x6d6c6420, 0x39a09: 0x6d959420, 0x39a0a: 0x6defd820, 0x39a0b: 0x6e153a20, - 0x39a0c: 0x6e22dc20, 0x39a0d: 0x6c0a8220, 0x39a0e: 0x6c0a8420, 0x39a0f: 0x6c0a8620, - 0x39a10: 0x6c0a8820, 0x39a11: 0x6c151620, 0x39a12: 0x6c151820, 0x39a13: 0x6c151a20, - 0x39a14: 0x6c151c20, 0x39a15: 0x6c151e20, 0x39a16: 0x6c152020, 0x39a17: 0x6c152220, - 0x39a18: 0x6c152420, 0x39a19: 0x6c152620, 0x39a1a: 0x6c152820, 0x39a1b: 0x6c152a20, - 0x39a1c: 0x6c152c20, 0x39a1d: 0x6c152e20, 0x39a1e: 0x6c153020, 0x39a1f: 0x6c153220, - 0x39a20: 0x6c153420, 0x39a21: 0x6c153620, 0x39a22: 0x6c274620, 0x39a23: 0x6c274820, - 0x39a24: 0x6c274a20, 0x39a25: 0x6c274c20, 0x39a26: 0x6c274e20, 0x39a27: 0x6c275020, - 0x39a28: 0x6c275220, 0x39a29: 0x6c275420, 0x39a2a: 0x6c275620, 0x39a2b: 0x6c275820, - 0x39a2c: 0x6c275a20, 0x39a2d: 0x6c275c20, 0x39a2e: 0x6c275e20, 0x39a2f: 0x6c276020, - 0x39a30: 0x6c276220, 0x39a31: 0x6c276420, 0x39a32: 0x6c276620, 0x39a33: 0x6c276820, - 0x39a34: 0x6c276a20, 0x39a35: 0x6c276c20, 0x39a36: 0x6c276e20, 0x39a37: 0x6c277020, - 0x39a38: 0x6c277220, 0x39a39: 0x6c277420, 0x39a3a: 0x6c277620, 0x39a3b: 0x6c277820, - 0x39a3c: 0x6c277a20, 0x39a3d: 0x6c277c20, 0x39a3e: 0x6c277e20, 0x39a3f: 0x6c278020, - // Block 0xe69, offset 0x39a40 - 0x39a40: 0x6c278220, 0x39a41: 0x6c278420, 0x39a42: 0x6c413020, 0x39a43: 0x6c413220, - 0x39a44: 0x6c413420, 0x39a45: 0x6c413620, 0x39a46: 0x6c413820, 0x39a47: 0x6c413a20, - 0x39a48: 0x6c413c20, 0x39a49: 0x6c413e20, 0x39a4a: 0x6c414020, 0x39a4b: 0x6c414220, - 0x39a4c: 0x6c414420, 0x39a4d: 0x6c414620, 0x39a4e: 0x6c414820, 0x39a4f: 0x6c414a20, - 0x39a50: 0x6c414c20, 0x39a51: 0x6c414e20, 0x39a52: 0x6c415020, 0x39a53: 0x6c415220, - 0x39a54: 0x6c415420, 0x39a55: 0x6c415620, 0x39a56: 0x6c415820, 0x39a57: 0x6c415a20, - 0x39a58: 0x6c415c20, 0x39a59: 0x6c415e20, 0x39a5a: 0x6c416020, 0x39a5b: 0x6c416220, - 0x39a5c: 0x6c416420, 0x39a5d: 0x6c416620, 0x39a5e: 0x6c416820, 0x39a5f: 0x6c416a20, - 0x39a60: 0x6c416c20, 0x39a61: 0x6c416e20, 0x39a62: 0x6c417020, 0x39a63: 0x6c417220, - 0x39a64: 0x6c417420, 0x39a65: 0x6c619020, 0x39a66: 0x6c619220, 0x39a67: 0x6c619420, - 0x39a68: 0x6c619620, 0x39a69: 0x6c619820, 0x39a6a: 0x6c619a20, 0x39a6b: 0x6c619c20, - 0x39a6c: 0x6c619e20, 0x39a6d: 0x6c61a020, 0x39a6e: 0x6c61a220, 0x39a6f: 0x6c61a420, - 0x39a70: 0x6c61a620, 0x39a71: 0x6c61a820, 0x39a72: 0x6c61aa20, 0x39a73: 0x6c61ac20, - 0x39a74: 0x6c61ae20, 0x39a75: 0x6c61b020, 0x39a76: 0x6c61b220, 0x39a77: 0x6c61b420, - 0x39a78: 0x6c61b620, 0x39a79: 0x6c61b820, 0x39a7a: 0x6c61ba20, 0x39a7b: 0x6c61bc20, - 0x39a7c: 0x6c61be20, 0x39a7d: 0x6c61c020, 0x39a7e: 0x6c61c220, 0x39a7f: 0x6c61c420, - // Block 0xe6a, offset 0x39a80 - 0x39a80: 0x6c61c620, 0x39a81: 0x6c61c820, 0x39a82: 0x6c61ca20, 0x39a83: 0x6c61cc20, - 0x39a84: 0x6c61ce20, 0x39a85: 0x6c881420, 0x39a86: 0x6c881620, 0x39a87: 0x6c881820, - 0x39a88: 0x6c881a20, 0x39a89: 0x6c881c20, 0x39a8a: 0x6c881e20, 0x39a8b: 0x6c882020, - 0x39a8c: 0x6c882220, 0x39a8d: 0x6c882420, 0x39a8e: 0x6c882620, 0x39a8f: 0x6c882820, - 0x39a90: 0x6c882a20, 0x39a91: 0x6c882c20, 0x39a92: 0x6c882e20, 0x39a93: 0x6c883020, - 0x39a94: 0x6c883220, 0x39a95: 0x6c883420, 0x39a96: 0x6c883620, 0x39a97: 0x6c883820, - 0x39a98: 0x6c883a20, 0x39a99: 0x6c883c20, 0x39a9a: 0x6c883e20, 0x39a9b: 0x6c884020, - 0x39a9c: 0x6c884220, 0x39a9d: 0x6c884420, 0x39a9e: 0x6c884620, 0x39a9f: 0x6c884820, - 0x39aa0: 0x6c884a20, 0x39aa1: 0x6c884c20, 0x39aa2: 0x6c884e20, 0x39aa3: 0x6c885020, - 0x39aa4: 0x6c885220, 0x39aa5: 0x6c885420, 0x39aa6: 0x6c885620, 0x39aa7: 0x6c885820, - 0x39aa8: 0x6c885a20, 0x39aa9: 0x6c885c20, 0x39aaa: 0x6c885e20, 0x39aab: 0x6cb38820, - 0x39aac: 0x6cb38a20, 0x39aad: 0x6cb38c20, 0x39aae: 0x6cb38e20, 0x39aaf: 0x6cb39020, - 0x39ab0: 0x6cb39220, 0x39ab1: 0x6cb39420, 0x39ab2: 0x6cb39620, 0x39ab3: 0x6cb39820, - 0x39ab4: 0x6cb39a20, 0x39ab5: 0x6cb39c20, 0x39ab6: 0x6cb39e20, 0x39ab7: 0x6cb3a020, - 0x39ab8: 0x6cb3a220, 0x39ab9: 0x6cb3a420, 0x39aba: 0x6cb3a620, 0x39abb: 0x6cb3a820, - 0x39abc: 0x6cb3aa20, 0x39abd: 0x6cb3ac20, 0x39abe: 0x6cb3ae20, 0x39abf: 0x6cb3b020, - // Block 0xe6b, offset 0x39ac0 - 0x39ac0: 0x6cb3b220, 0x39ac1: 0x6cb3b420, 0x39ac2: 0x6cb3b620, 0x39ac3: 0x6cb3b820, - 0x39ac4: 0x6cb3ba20, 0x39ac5: 0x6cb3bc20, 0x39ac6: 0x6cb3be20, 0x39ac7: 0x6cb3c020, - 0x39ac8: 0x6cb3c220, 0x39ac9: 0x6cb3c420, 0x39aca: 0x6cb3c620, 0x39acb: 0x6cb3c820, - 0x39acc: 0x6cb3ca20, 0x39acd: 0x6cb3cc20, 0x39ace: 0x6ce32c20, 0x39acf: 0x6cb3ce20, - 0x39ad0: 0x6cb3d020, 0x39ad1: 0x6cb3d220, 0x39ad2: 0x6cb3d420, 0x39ad3: 0x6cb3d620, - 0x39ad4: 0x6cb3d820, 0x39ad5: 0x6cb3da20, 0x39ad6: 0x6cb3dc20, 0x39ad7: 0x6cb3de20, - 0x39ad8: 0x6cb3e020, 0x39ad9: 0x6cb3e220, 0x39ada: 0x6cb3e420, 0x39adb: 0x6cb3e620, - 0x39adc: 0x6cb3e820, 0x39add: 0x6ce32e20, 0x39ade: 0x6ce33020, 0x39adf: 0x6ce33220, - 0x39ae0: 0x6cb3ea20, 0x39ae1: 0x6ce33420, 0x39ae2: 0x6ce33620, 0x39ae3: 0x6ce33820, - 0x39ae4: 0x6ce33a20, 0x39ae5: 0x6ce33c20, 0x39ae6: 0x6ce33e20, 0x39ae7: 0x6ce34020, - 0x39ae8: 0x6ce34220, 0x39ae9: 0x6ce34420, 0x39aea: 0x6ce34620, 0x39aeb: 0x6ce34820, - 0x39aec: 0x6ce34a20, 0x39aed: 0x6ce34c20, 0x39aee: 0x6ce34e20, 0x39aef: 0x6ce35020, - 0x39af0: 0x6ce35220, 0x39af1: 0x6ce35420, 0x39af2: 0x6ce35620, 0x39af3: 0x6ce35820, - 0x39af4: 0x6ce35a20, 0x39af5: 0x6ce35c20, 0x39af6: 0x6ce35e20, 0x39af7: 0x6ce36020, - 0x39af8: 0x6ce36220, 0x39af9: 0x6ce36420, 0x39afa: 0x6ce36620, 0x39afb: 0x6ce36820, - 0x39afc: 0x6ce36a20, 0x39afd: 0x6ce36c20, 0x39afe: 0x6ce36e20, 0x39aff: 0x6ce37020, - // Block 0xe6c, offset 0x39b00 - 0x39b00: 0x6ce37220, 0x39b01: 0x6ce37420, 0x39b02: 0x6ce37620, 0x39b03: 0x6ce37820, - 0x39b04: 0x6ce37a20, 0x39b05: 0x6ce37c20, 0x39b06: 0x6ce37e20, 0x39b07: 0x6ce38020, - 0x39b08: 0x6ce38220, 0x39b09: 0x6ce38420, 0x39b0a: 0x6ce38620, 0x39b0b: 0x6ce38820, - 0x39b0c: 0x6ce38a20, 0x39b0d: 0x6ce38c20, 0x39b0e: 0x6ce38e20, 0x39b0f: 0x6ce39020, - 0x39b10: 0x6ce39220, 0x39b11: 0x6ce39420, 0x39b12: 0x6ce39620, 0x39b13: 0x6ce39820, - 0x39b14: 0x6ce39a20, 0x39b15: 0x6ce39c20, 0x39b16: 0x6ce39e20, 0x39b17: 0x6ce3a020, - 0x39b18: 0x6ce3a220, 0x39b19: 0x6ce3a420, 0x39b1a: 0x6ce3a620, 0x39b1b: 0x6ce3a820, - 0x39b1c: 0x6ce3aa20, 0x39b1d: 0x6d11a220, 0x39b1e: 0x6d11a420, 0x39b1f: 0x6d11a620, - 0x39b20: 0x6d11a820, 0x39b21: 0x6d11aa20, 0x39b22: 0x6d11ac20, 0x39b23: 0x6d11ae20, - 0x39b24: 0x6d11b020, 0x39b25: 0x6d11b220, 0x39b26: 0x6d11b420, 0x39b27: 0x6d11b620, - 0x39b28: 0x6d11b820, 0x39b29: 0x6d11ba20, 0x39b2a: 0x6d11bc20, 0x39b2b: 0x6d11be20, - 0x39b2c: 0x6d11c020, 0x39b2d: 0x6d11c220, 0x39b2e: 0x6d11c420, 0x39b2f: 0x6d11c620, - 0x39b30: 0x6d11c820, 0x39b31: 0x6d11ca20, 0x39b32: 0x6d11cc20, 0x39b33: 0x6d11ce20, - 0x39b34: 0x6d11d020, 0x39b35: 0x6d11d220, 0x39b36: 0x6d11d420, 0x39b37: 0x6d11d620, - 0x39b38: 0x6d11d820, 0x39b39: 0x6d11da20, 0x39b3a: 0x6d11dc20, 0x39b3b: 0x6d11de20, - 0x39b3c: 0x6d11e020, 0x39b3d: 0x6d11e220, 0x39b3e: 0x6d11e420, 0x39b3f: 0x6d11e620, - // Block 0xe6d, offset 0x39b40 - 0x39b40: 0x6d11e820, 0x39b41: 0x6d11ea20, 0x39b42: 0x6d11ec20, 0x39b43: 0x6d11ee20, - 0x39b44: 0x6d11f020, 0x39b45: 0x6d11f220, 0x39b46: 0x6d3f9c20, 0x39b47: 0x6d3f9e20, - 0x39b48: 0x6d3fa020, 0x39b49: 0x6d3fa220, 0x39b4a: 0x6d3fa420, 0x39b4b: 0x6d3fa620, - 0x39b4c: 0x6d3fa820, 0x39b4d: 0x6d3faa20, 0x39b4e: 0x6d3fac20, 0x39b4f: 0x6d3fae20, - 0x39b50: 0x6d3fb020, 0x39b51: 0x6d3fb220, 0x39b52: 0x6d3fb420, 0x39b53: 0x6d3fb620, - 0x39b54: 0x6d3fb820, 0x39b55: 0x6d3fba20, 0x39b56: 0x6d3fbc20, 0x39b57: 0x6d3fbe20, - 0x39b58: 0x6d3fc020, 0x39b59: 0x6d3fc220, 0x39b5a: 0x6d3fc420, 0x39b5b: 0x6d3fc620, - 0x39b5c: 0x6d3fc820, 0x39b5d: 0x6d3fca20, 0x39b5e: 0x6d3fcc20, 0x39b5f: 0x6d3fce20, - 0x39b60: 0x6d3fd020, 0x39b61: 0x6d3fd220, 0x39b62: 0x6d3fd420, 0x39b63: 0x6d3fd620, - 0x39b64: 0x6d3fd820, 0x39b65: 0x6d3fda20, 0x39b66: 0x6d3fdc20, 0x39b67: 0x6d3fde20, - 0x39b68: 0x6d3fe020, 0x39b69: 0x6d3fe220, 0x39b6a: 0x6d3fe420, 0x39b6b: 0x6d3fe620, - 0x39b6c: 0x6d3fe820, 0x39b6d: 0x6d3fea20, 0x39b6e: 0x6d3fec20, 0x39b6f: 0x6d3fee20, - 0x39b70: 0x6d3ff020, 0x39b71: 0x6d3ff220, 0x39b72: 0x6d3ff420, 0x39b73: 0x6d3ff620, - 0x39b74: 0x6d6c8a20, 0x39b75: 0x6d6c8c20, 0x39b76: 0x6d6c8e20, 0x39b77: 0x6d6c9020, - 0x39b78: 0x6d6c9220, 0x39b79: 0x6d6c9420, 0x39b7a: 0x6d6c9620, 0x39b7b: 0x6d6c9820, - 0x39b7c: 0x6d6c9a20, 0x39b7d: 0x6d6c9c20, 0x39b7e: 0x6d6c9e20, 0x39b7f: 0x6d6ca020, - // Block 0xe6e, offset 0x39b80 - 0x39b80: 0x6d6ca220, 0x39b81: 0x6d6ca420, 0x39b82: 0x6d6ca620, 0x39b83: 0x6d6ca820, - 0x39b84: 0x6d6caa20, 0x39b85: 0x6d6cac20, 0x39b86: 0x6d6cae20, 0x39b87: 0x6d6cb020, - 0x39b88: 0x6d6cb220, 0x39b89: 0x6d6cb420, 0x39b8a: 0x6d6cb620, 0x39b8b: 0x6d6cb820, - 0x39b8c: 0x6d6cba20, 0x39b8d: 0x6d6cbc20, 0x39b8e: 0x6d6cbe20, 0x39b8f: 0x6d6cc020, - 0x39b90: 0x6d6cc220, 0x39b91: 0x6d6cc420, 0x39b92: 0x6d6cc620, 0x39b93: 0x6d784820, - 0x39b94: 0x6d6cc820, 0x39b95: 0x6d6cca20, 0x39b96: 0x6d6ccc20, 0x39b97: 0x6d6cce20, - 0x39b98: 0x6d6cd020, 0x39b99: 0x6d6cd220, 0x39b9a: 0x6d6cd420, 0x39b9b: 0x6d6cd620, - 0x39b9c: 0x6d6cd820, 0x39b9d: 0x6d6cda20, 0x39b9e: 0x6d6cdc20, 0x39b9f: 0x6d6cde20, - 0x39ba0: 0x6d6ce020, 0x39ba1: 0x6d6ce220, 0x39ba2: 0x6d6ce420, 0x39ba3: 0x6d6ce620, - 0x39ba4: 0x6d6ce820, 0x39ba5: 0x6d95b220, 0x39ba6: 0x6d95b420, 0x39ba7: 0x6d95b620, - 0x39ba8: 0x6d95b820, 0x39ba9: 0x6d95ba20, 0x39baa: 0x6d95bc20, 0x39bab: 0x6d95be20, - 0x39bac: 0x6d95c020, 0x39bad: 0x6d95c220, 0x39bae: 0x6d95c420, 0x39baf: 0x6d95c620, - 0x39bb0: 0x6d95c820, 0x39bb1: 0x6d95ca20, 0x39bb2: 0x6d95cc20, 0x39bb3: 0x6d95ce20, - 0x39bb4: 0x6d95d020, 0x39bb5: 0x6d95d220, 0x39bb6: 0x6d95d420, 0x39bb7: 0x6d95d620, - 0x39bb8: 0x6d95d820, 0x39bb9: 0x6d95da20, 0x39bba: 0x6d95dc20, 0x39bbb: 0x6d95de20, - 0x39bbc: 0x6d95e020, 0x39bbd: 0x6d95e220, 0x39bbe: 0x6d95e420, 0x39bbf: 0x6d95e620, - // Block 0xe6f, offset 0x39bc0 - 0x39bc0: 0x6d95e820, 0x39bc1: 0x6d95ea20, 0x39bc2: 0x6d95ec20, 0x39bc3: 0x6d95ee20, - 0x39bc4: 0x6d95f020, 0x39bc5: 0x6d95f220, 0x39bc6: 0x6d95f420, 0x39bc7: 0x6db8c620, - 0x39bc8: 0x6db8c820, 0x39bc9: 0x6db8ca20, 0x39bca: 0x6db8cc20, 0x39bcb: 0x6db8ce20, - 0x39bcc: 0x6db8d020, 0x39bcd: 0x6db8d220, 0x39bce: 0x6db8d420, 0x39bcf: 0x6db8d620, - 0x39bd0: 0x6db8d820, 0x39bd1: 0x6db8da20, 0x39bd2: 0x6db8dc20, 0x39bd3: 0x6db8de20, - 0x39bd4: 0x6db8e020, 0x39bd5: 0x6db8e220, 0x39bd6: 0x6db8e420, 0x39bd7: 0x6db8e620, - 0x39bd8: 0x6db8e820, 0x39bd9: 0x6db8ea20, 0x39bda: 0x6db8ec20, 0x39bdb: 0x6db8ee20, - 0x39bdc: 0x6db8f020, 0x39bdd: 0x6db8f220, 0x39bde: 0x6db8f420, 0x39bdf: 0x6db8f620, - 0x39be0: 0x6db8f820, 0x39be1: 0x6dd72620, 0x39be2: 0x6dd72820, 0x39be3: 0x6dd72a20, - 0x39be4: 0x6dd72c20, 0x39be5: 0x6dd72e20, 0x39be6: 0x6dd73020, 0x39be7: 0x6dd73220, - 0x39be8: 0x6dd73420, 0x39be9: 0x6dd73620, 0x39bea: 0x6dd73820, 0x39beb: 0x6dd73a20, - 0x39bec: 0x6dd73c20, 0x39bed: 0x6dd73e20, 0x39bee: 0x6dd74020, 0x39bef: 0x6dd74220, - 0x39bf0: 0x6dd74420, 0x39bf1: 0x6dd74620, 0x39bf2: 0x6dd74820, 0x39bf3: 0x6dd74a20, - 0x39bf4: 0x6dd74c20, 0x39bf5: 0x6dd74e20, 0x39bf6: 0x6dd75020, 0x39bf7: 0x6defe220, - 0x39bf8: 0x6defe420, 0x39bf9: 0x6defe620, 0x39bfa: 0x6defe820, 0x39bfb: 0x6defea20, - 0x39bfc: 0x6e03e620, 0x39bfd: 0x6defec20, 0x39bfe: 0x6defee20, 0x39bff: 0x6deff020, - // Block 0xe70, offset 0x39c00 - 0x39c00: 0x6deff220, 0x39c01: 0x6deff420, 0x39c02: 0x6e03fe20, 0x39c03: 0x6e040020, - 0x39c04: 0x6e040220, 0x39c05: 0x6e040420, 0x39c06: 0x6e040620, 0x39c07: 0x6e040820, - 0x39c08: 0x6e040a20, 0x39c09: 0x6e040c20, 0x39c0a: 0x6e040e20, 0x39c0b: 0x6e041020, - 0x39c0c: 0x6e041220, 0x39c0d: 0x6e041420, 0x39c0e: 0x6e041620, 0x39c0f: 0x6e041820, - 0x39c10: 0x6e041a20, 0x39c11: 0x6e041c20, 0x39c12: 0x6e153e20, 0x39c13: 0x6e154020, - 0x39c14: 0x6e154220, 0x39c15: 0x6e154420, 0x39c16: 0x6e154620, 0x39c17: 0x6e154820, - 0x39c18: 0x6e154a20, 0x39c19: 0x6e22de20, 0x39c1a: 0x6e22e020, 0x39c1b: 0x6e22e220, - 0x39c1c: 0x6e22e420, 0x39c1d: 0x6e22e620, 0x39c1e: 0x6e22e820, 0x39c1f: 0x6e2d0c20, - 0x39c20: 0x6e2d0e20, 0x39c21: 0x6e2d1020, 0x39c22: 0x6e2d1220, 0x39c23: 0x6e2d1420, - 0x39c24: 0x6e34fa20, 0x39c25: 0x6e34fc20, 0x39c26: 0x6e3aa820, 0x39c27: 0x6e3e6a20, - 0x39c28: 0x6c00ca20, 0x39c29: 0x6c052220, 0x39c2a: 0x6c052420, 0x39c2b: 0x6c0a9220, - 0x39c2c: 0x6c0a9420, 0x39c2d: 0x6c0a9620, 0x39c2e: 0x6c0a9820, 0x39c2f: 0x6c0a9a20, - 0x39c30: 0x6c0a9c20, 0x39c31: 0x6c0a9e20, 0x39c32: 0x6c0aa020, 0x39c33: 0x6c0aa220, - 0x39c34: 0x6c0aa420, 0x39c35: 0x6c0aa620, 0x39c36: 0x6c154e20, 0x39c37: 0x6c155020, - 0x39c38: 0x6c155220, 0x39c39: 0x6c155420, 0x39c3a: 0x6c155620, 0x39c3b: 0x6c155820, - 0x39c3c: 0x6c155a20, 0x39c3d: 0x6c155c20, 0x39c3e: 0x6c155e20, 0x39c3f: 0x6c156020, - // Block 0xe71, offset 0x39c40 - 0x39c40: 0x6c156220, 0x39c41: 0x6c156420, 0x39c42: 0x6c156620, 0x39c43: 0x6c156820, - 0x39c44: 0x6c156a20, 0x39c45: 0x6c156c20, 0x39c46: 0x6c156e20, 0x39c47: 0x6c157020, - 0x39c48: 0x6c157220, 0x39c49: 0x6c157420, 0x39c4a: 0x6c157620, 0x39c4b: 0x6c157820, - 0x39c4c: 0x6c157a20, 0x39c4d: 0x6c157c20, 0x39c4e: 0x6c157e20, 0x39c4f: 0x6c158020, - 0x39c50: 0x6c158220, 0x39c51: 0x6c158420, 0x39c52: 0x6c158620, 0x39c53: 0x6c27ae20, - 0x39c54: 0x6c27b020, 0x39c55: 0x6c27b220, 0x39c56: 0x6c27b420, 0x39c57: 0x6c27b620, - 0x39c58: 0x6c27b820, 0x39c59: 0x6c27ba20, 0x39c5a: 0x6c27bc20, 0x39c5b: 0x6c27be20, - 0x39c5c: 0x6c27c020, 0x39c5d: 0x6c27c220, 0x39c5e: 0x6c27c420, 0x39c5f: 0x6c27c620, - 0x39c60: 0x6c27c820, 0x39c61: 0x6c27ca20, 0x39c62: 0x6c27cc20, 0x39c63: 0x6c27ce20, - 0x39c64: 0x6c27d020, 0x39c65: 0x6c27d220, 0x39c66: 0x6c27d420, 0x39c67: 0x6c27d620, - 0x39c68: 0x6c27d820, 0x39c69: 0x6c27da20, 0x39c6a: 0x6c27dc20, 0x39c6b: 0x6c27de20, - 0x39c6c: 0x6c27e020, 0x39c6d: 0x6c27e220, 0x39c6e: 0x6c27e420, 0x39c6f: 0x6c41a020, - 0x39c70: 0x6c41a220, 0x39c71: 0x6c41a420, 0x39c72: 0x6c41a620, 0x39c73: 0x6c41a820, - 0x39c74: 0x6c41aa20, 0x39c75: 0x6c41ac20, 0x39c76: 0x6c41ae20, 0x39c77: 0x6c41b020, - 0x39c78: 0x6c41b220, 0x39c79: 0x6c41b420, 0x39c7a: 0x6c41b620, 0x39c7b: 0x6c41b820, - 0x39c7c: 0x6c41ba20, 0x39c7d: 0x6c41bc20, 0x39c7e: 0x6c41be20, 0x39c7f: 0x6c41c020, - // Block 0xe72, offset 0x39c80 - 0x39c80: 0x6c41c220, 0x39c81: 0x6c41c420, 0x39c82: 0x6c41c620, 0x39c83: 0x6c41c820, - 0x39c84: 0x6c41ca20, 0x39c85: 0x6c41cc20, 0x39c86: 0x6c41ce20, 0x39c87: 0x6c41d020, - 0x39c88: 0x6c41d220, 0x39c89: 0x6c41d420, 0x39c8a: 0x6c41d620, 0x39c8b: 0x6c620e20, - 0x39c8c: 0x6c621020, 0x39c8d: 0x6c621220, 0x39c8e: 0x6c621420, 0x39c8f: 0x6c621620, - 0x39c90: 0x6c621820, 0x39c91: 0x6c621a20, 0x39c92: 0x6c621c20, 0x39c93: 0x6c621e20, - 0x39c94: 0x6c622020, 0x39c95: 0x6c622220, 0x39c96: 0x6c622420, 0x39c97: 0x6c622620, - 0x39c98: 0x6c622820, 0x39c99: 0x6c622a20, 0x39c9a: 0x6c622c20, 0x39c9b: 0x6c622e20, - 0x39c9c: 0x6c623020, 0x39c9d: 0x6c623220, 0x39c9e: 0x6c623420, 0x39c9f: 0x6c623620, - 0x39ca0: 0x6c623820, 0x39ca1: 0x6c623a20, 0x39ca2: 0x6c623c20, 0x39ca3: 0x6c623e20, - 0x39ca4: 0x6c624020, 0x39ca5: 0x6c624220, 0x39ca6: 0x6c624420, 0x39ca7: 0x6c624620, - 0x39ca8: 0x6c624820, 0x39ca9: 0x6c624a20, 0x39caa: 0x6c624c20, 0x39cab: 0x6c889a20, - 0x39cac: 0x6c889c20, 0x39cad: 0x6c889e20, 0x39cae: 0x6c88a020, 0x39caf: 0x6c88a220, - 0x39cb0: 0x6c88a420, 0x39cb1: 0x6c88a620, 0x39cb2: 0x6c88a820, 0x39cb3: 0x6c88aa20, - 0x39cb4: 0x6c88ac20, 0x39cb5: 0x6c88ae20, 0x39cb6: 0x6c88b020, 0x39cb7: 0x6c88b220, - 0x39cb8: 0x6c88b420, 0x39cb9: 0x6c88b620, 0x39cba: 0x6c88b820, 0x39cbb: 0x6c88ba20, - 0x39cbc: 0x6c88bc20, 0x39cbd: 0x6c88be20, 0x39cbe: 0x6c88c020, 0x39cbf: 0x6c88c220, - // Block 0xe73, offset 0x39cc0 - 0x39cc0: 0x6c88c420, 0x39cc1: 0x6c88c620, 0x39cc2: 0x6c88c820, 0x39cc3: 0x6c88ca20, - 0x39cc4: 0x6c88cc20, 0x39cc5: 0x6c88ce20, 0x39cc6: 0x6c88d020, 0x39cc7: 0x6c88d220, - 0x39cc8: 0x6c88d420, 0x39cc9: 0x6c88d620, 0x39cca: 0x6c88d820, 0x39ccb: 0x6c88da20, - 0x39ccc: 0x6c88dc20, 0x39ccd: 0x6c88de20, 0x39cce: 0x6c88e020, 0x39ccf: 0x6cb42a20, - 0x39cd0: 0x6cb42c20, 0x39cd1: 0x6cb42e20, 0x39cd2: 0x6cb43020, 0x39cd3: 0x6cb43220, - 0x39cd4: 0x6cb43420, 0x39cd5: 0x6cb43620, 0x39cd6: 0x6cb43820, 0x39cd7: 0x6ce3e620, - 0x39cd8: 0x6cb43a20, 0x39cd9: 0x6cb43c20, 0x39cda: 0x6cb43e20, 0x39cdb: 0x6cb44020, - 0x39cdc: 0x6cb44220, 0x39cdd: 0x6cb44420, 0x39cde: 0x6cb44620, 0x39cdf: 0x6cb44820, - 0x39ce0: 0x6cb44a20, 0x39ce1: 0x6cb44c20, 0x39ce2: 0x6cb44e20, 0x39ce3: 0x6cb45020, - 0x39ce4: 0x6cb45220, 0x39ce5: 0x6cb45420, 0x39ce6: 0x6cb45620, 0x39ce7: 0x6cb45820, - 0x39ce8: 0x6cb45a20, 0x39ce9: 0x6cb45c20, 0x39cea: 0x6cb45e20, 0x39ceb: 0x6cb46020, - 0x39cec: 0x6cb46220, 0x39ced: 0x6cb46420, 0x39cee: 0x6cb46620, 0x39cef: 0x6cb46820, - 0x39cf0: 0x6cb46a20, 0x39cf1: 0x6cb46c20, 0x39cf2: 0x6ce3e820, 0x39cf3: 0x6ce3ea20, - 0x39cf4: 0x6ce3ec20, 0x39cf5: 0x6ce3ee20, 0x39cf6: 0x6ce3f020, 0x39cf7: 0x6ce3f220, - 0x39cf8: 0x6ce3f420, 0x39cf9: 0x6ce3f620, 0x39cfa: 0x6ce3f820, 0x39cfb: 0x6ce3fa20, - 0x39cfc: 0x6ce3fc20, 0x39cfd: 0x6ce3fe20, 0x39cfe: 0x6ce40020, 0x39cff: 0x6ce40220, - // Block 0xe74, offset 0x39d00 - 0x39d00: 0x6ce40420, 0x39d01: 0x6ce40620, 0x39d02: 0x6ce40820, 0x39d03: 0x6ce40a20, - 0x39d04: 0x6ce40c20, 0x39d05: 0x6ce40e20, 0x39d06: 0x6ce41020, 0x39d07: 0x6ce41220, - 0x39d08: 0x6ce41420, 0x39d09: 0x6ce41620, 0x39d0a: 0x6ce41820, 0x39d0b: 0x6d122220, - 0x39d0c: 0x6d122420, 0x39d0d: 0x6d122620, 0x39d0e: 0x6d122820, 0x39d0f: 0x6d122a20, - 0x39d10: 0x6d122c20, 0x39d11: 0x6d122e20, 0x39d12: 0x6d123020, 0x39d13: 0x6d123220, - 0x39d14: 0x6d123420, 0x39d15: 0x6d123620, 0x39d16: 0x6d123820, 0x39d17: 0x6d123a20, - 0x39d18: 0x6d123c20, 0x39d19: 0x6d123e20, 0x39d1a: 0x6d124020, 0x39d1b: 0x6d124220, - 0x39d1c: 0x6d124420, 0x39d1d: 0x6d124620, 0x39d1e: 0x6d124820, 0x39d1f: 0x6d124a20, - 0x39d20: 0x6d124c20, 0x39d21: 0x6d124e20, 0x39d22: 0x6d125020, 0x39d23: 0x6d125220, - 0x39d24: 0x6d125420, 0x39d25: 0x6d125620, 0x39d26: 0x6d125820, 0x39d27: 0x6d125a20, - 0x39d28: 0x6d125c20, 0x39d29: 0x6d125e20, 0x39d2a: 0x6d126020, 0x39d2b: 0x6d403020, - 0x39d2c: 0x6d403220, 0x39d2d: 0x6d403420, 0x39d2e: 0x6d403620, 0x39d2f: 0x6d403820, - 0x39d30: 0x6d403a20, 0x39d31: 0x6d403c20, 0x39d32: 0x6d403e20, 0x39d33: 0x6d404020, - 0x39d34: 0x6d404220, 0x39d35: 0x6d404420, 0x39d36: 0x6d404620, 0x39d37: 0x6d404820, - 0x39d38: 0x6d404a20, 0x39d39: 0x6d126220, 0x39d3a: 0x6d404c20, 0x39d3b: 0x6d404e20, - 0x39d3c: 0x6d405020, 0x39d3d: 0x6d405220, 0x39d3e: 0x6d405420, 0x39d3f: 0x6d405620, - // Block 0xe75, offset 0x39d40 - 0x39d40: 0x6d405820, 0x39d41: 0x6d405a20, 0x39d42: 0x6d405c20, 0x39d43: 0x6d405e20, - 0x39d44: 0x6d406020, 0x39d45: 0x6d406220, 0x39d46: 0x6d406420, 0x39d47: 0x6d406620, - 0x39d48: 0x6d406820, 0x39d49: 0x6d406a20, 0x39d4a: 0x6d406c20, 0x39d4b: 0x6d406e20, - 0x39d4c: 0x6d407020, 0x39d4d: 0x6d407220, 0x39d4e: 0x6d407420, 0x39d4f: 0x6d407620, - 0x39d50: 0x6d407820, 0x39d51: 0x6d6d1820, 0x39d52: 0x6d6d1a20, 0x39d53: 0x6d6d1c20, - 0x39d54: 0x6d6d1e20, 0x39d55: 0x6d6d2020, 0x39d56: 0x6d6d2220, 0x39d57: 0x6d6d2420, - 0x39d58: 0x6d6d2620, 0x39d59: 0x6d6d2820, 0x39d5a: 0x6d6d2a20, 0x39d5b: 0x6d6d2c20, - 0x39d5c: 0x6d6d2e20, 0x39d5d: 0x6d6d3020, 0x39d5e: 0x6d6d3220, 0x39d5f: 0x6d6d3420, - 0x39d60: 0x6d6d3620, 0x39d61: 0x6d6d3820, 0x39d62: 0x6d6d3a20, 0x39d63: 0x6d6d3c20, - 0x39d64: 0x6d6d3e20, 0x39d65: 0x6d6d4020, 0x39d66: 0x6d6d4220, 0x39d67: 0x6d960820, - 0x39d68: 0x6d960a20, 0x39d69: 0x6d960c20, 0x39d6a: 0x6d960e20, 0x39d6b: 0x6d961020, - 0x39d6c: 0x6d961220, 0x39d6d: 0x6d961420, 0x39d6e: 0x6d961620, 0x39d6f: 0x6d961820, - 0x39d70: 0x6d961a20, 0x39d71: 0x6d961c20, 0x39d72: 0x6d961e20, 0x39d73: 0x6d962020, - 0x39d74: 0x6d962220, 0x39d75: 0x6d962420, 0x39d76: 0x6d962620, 0x39d77: 0x6d962820, - 0x39d78: 0x6d962a20, 0x39d79: 0x6d962c20, 0x39d7a: 0x6db90c20, 0x39d7b: 0x6db90e20, - 0x39d7c: 0x6db91020, 0x39d7d: 0x6db91220, 0x39d7e: 0x6db91420, 0x39d7f: 0x6db91620, - // Block 0xe76, offset 0x39d80 - 0x39d80: 0x6db91820, 0x39d81: 0x6db91a20, 0x39d82: 0x6db91c20, 0x39d83: 0x6db91e20, - 0x39d84: 0x6db92020, 0x39d85: 0x6db92220, 0x39d86: 0x6db92420, 0x39d87: 0x6db92620, - 0x39d88: 0x6db92820, 0x39d89: 0x6db92a20, 0x39d8a: 0x6db92c20, 0x39d8b: 0x6db92e20, - 0x39d8c: 0x6db93020, 0x39d8d: 0x6dd76220, 0x39d8e: 0x6dd76420, 0x39d8f: 0x6dd76620, - 0x39d90: 0x6dd76820, 0x39d91: 0x6dd76a20, 0x39d92: 0x6dd76c20, 0x39d93: 0x6dd76e20, - 0x39d94: 0x6dd77020, 0x39d95: 0x6dd77220, 0x39d96: 0x6dd77420, 0x39d97: 0x6dd77620, - 0x39d98: 0x6dd77820, 0x39d99: 0x6deffc20, 0x39d9a: 0x6deffe20, 0x39d9b: 0x6df00020, - 0x39d9c: 0x6df00220, 0x39d9d: 0x6df00420, 0x39d9e: 0x6df00620, 0x39d9f: 0x6df00820, - 0x39da0: 0x6e042a20, 0x39da1: 0x6e042c20, 0x39da2: 0x6e042e20, 0x39da3: 0x6e043020, - 0x39da4: 0x6e155420, 0x39da5: 0x6e155620, 0x39da6: 0x6e155820, 0x39da7: 0x6e155a20, - 0x39da8: 0x6e22ee20, 0x39da9: 0x6e2d1a20, 0x39daa: 0x6e2d1c20, 0x39dab: 0x6e2d1e20, - 0x39dac: 0x6e2d2020, 0x39dad: 0x6e2d2220, 0x39dae: 0x6e2d2420, 0x39daf: 0x6e3e6c20, - 0x39db0: 0x6c88fc20, 0x39db1: 0x6c88fe20, 0x39db2: 0x6c890020, 0x39db3: 0x6c890220, - 0x39db4: 0x6cb49620, 0x39db5: 0x6cb49820, 0x39db6: 0x6cb49a20, 0x39db7: 0x6cb49c20, - 0x39db8: 0x6cb49e20, 0x39db9: 0x6cb4a020, 0x39dba: 0x6cb4a220, 0x39dbb: 0x6cb4a420, - 0x39dbc: 0x6cb4a620, 0x39dbd: 0x6cb4a820, 0x39dbe: 0x6cb4aa20, 0x39dbf: 0x6cb4ac20, - // Block 0xe77, offset 0x39dc0 - 0x39dc0: 0x6cb4ae20, 0x39dc1: 0x6cb4b020, 0x39dc2: 0x6cb4b220, 0x39dc3: 0x6cb4b420, - 0x39dc4: 0x6cb4b620, 0x39dc5: 0x6cb4b820, 0x39dc6: 0x6cb4ba20, 0x39dc7: 0x6cb4bc20, - 0x39dc8: 0x6cb4be20, 0x39dc9: 0x6cb4c020, 0x39dca: 0x6cb4c220, 0x39dcb: 0x6ce43820, - 0x39dcc: 0x6ce43a20, 0x39dcd: 0x6ce43c20, 0x39dce: 0x6ce43e20, 0x39dcf: 0x6ce44020, - 0x39dd0: 0x6ce44220, 0x39dd1: 0x6ce44420, 0x39dd2: 0x6ce44620, 0x39dd3: 0x6ce44820, - 0x39dd4: 0x6ce44a20, 0x39dd5: 0x6ce44c20, 0x39dd6: 0x6ce44e20, 0x39dd7: 0x6ce45020, - 0x39dd8: 0x6ce45220, 0x39dd9: 0x6ce45420, 0x39dda: 0x6ce45620, 0x39ddb: 0x6ce45820, - 0x39ddc: 0x6ce45a20, 0x39ddd: 0x6ce45c20, 0x39dde: 0x6ce45e20, 0x39ddf: 0x6ce46020, - 0x39de0: 0x6ce46220, 0x39de1: 0x6ce46420, 0x39de2: 0x6ce46620, 0x39de3: 0x6ce46820, - 0x39de4: 0x6d129020, 0x39de5: 0x6d129220, 0x39de6: 0x6d129420, 0x39de7: 0x6d129620, - 0x39de8: 0x6d129820, 0x39de9: 0x6d129a20, 0x39dea: 0x6d129c20, 0x39deb: 0x6d129e20, - 0x39dec: 0x6d12a020, 0x39ded: 0x6d12a220, 0x39dee: 0x6d12a420, 0x39def: 0x6d12a620, - 0x39df0: 0x6d12a820, 0x39df1: 0x6d12aa20, 0x39df2: 0x6d12ac20, 0x39df3: 0x6d12ae20, - 0x39df4: 0x6d12b020, 0x39df5: 0x6d12b220, 0x39df6: 0x6d12b420, 0x39df7: 0x6d409a20, - 0x39df8: 0x6d409c20, 0x39df9: 0x6d409e20, 0x39dfa: 0x6d40a020, 0x39dfb: 0x6d40a220, - 0x39dfc: 0x6d40a420, 0x39dfd: 0x6d40a620, 0x39dfe: 0x6d40a820, 0x39dff: 0x6d40aa20, - // Block 0xe78, offset 0x39e00 - 0x39e00: 0x6d40ac20, 0x39e01: 0x6d40ae20, 0x39e02: 0x6d40b020, 0x39e03: 0x6d40b220, - 0x39e04: 0x6d40b420, 0x39e05: 0x6d40b620, 0x39e06: 0x6d40b820, 0x39e07: 0x6d40ba20, - 0x39e08: 0x6d40bc20, 0x39e09: 0x6d40be20, 0x39e0a: 0x6d40c020, 0x39e0b: 0x6d40c220, - 0x39e0c: 0x6d6d6a20, 0x39e0d: 0x6d6d6c20, 0x39e0e: 0x6d6d6e20, 0x39e0f: 0x6d6d7020, - 0x39e10: 0x6d6d7220, 0x39e11: 0x6d6d7420, 0x39e12: 0x6d6d7620, 0x39e13: 0x6d6d7820, - 0x39e14: 0x6d6d7a20, 0x39e15: 0x6d6d7c20, 0x39e16: 0x6d6d7e20, 0x39e17: 0x6d6d8020, - 0x39e18: 0x6d6d8220, 0x39e19: 0x6d6d8420, 0x39e1a: 0x6d6d8620, 0x39e1b: 0x6d6d8820, - 0x39e1c: 0x6d6d8a20, 0x39e1d: 0x6d6d8c20, 0x39e1e: 0x6d6d8e20, 0x39e1f: 0x6d6d9020, - 0x39e20: 0x6d6d9220, 0x39e21: 0x6d6d9420, 0x39e22: 0x6d6d9620, 0x39e23: 0x6d6d9820, - 0x39e24: 0x6d6d9a20, 0x39e25: 0x6d6d9c20, 0x39e26: 0x6d6d9e20, 0x39e27: 0x6d6da020, - 0x39e28: 0x6d6da220, 0x39e29: 0x6d965820, 0x39e2a: 0x6d965a20, 0x39e2b: 0x6d965c20, - 0x39e2c: 0x6d965e20, 0x39e2d: 0x6d966020, 0x39e2e: 0x6d966220, 0x39e2f: 0x6d966420, - 0x39e30: 0x6d966620, 0x39e31: 0x6d966820, 0x39e32: 0x6d966a20, 0x39e33: 0x6d966c20, - 0x39e34: 0x6d966e20, 0x39e35: 0x6d967020, 0x39e36: 0x6d967220, 0x39e37: 0x6d967420, - 0x39e38: 0x6d967620, 0x39e39: 0x6d967820, 0x39e3a: 0x6d967a20, 0x39e3b: 0x6d967c20, - 0x39e3c: 0x6d967e20, 0x39e3d: 0x6d968020, 0x39e3e: 0x6d968220, 0x39e3f: 0x6d968420, - // Block 0xe79, offset 0x39e40 - 0x39e40: 0x6d968620, 0x39e41: 0x6d968820, 0x39e42: 0x6d968a20, 0x39e43: 0x6d968c20, - 0x39e44: 0x6d968e20, 0x39e45: 0x6db95620, 0x39e46: 0x6db95820, 0x39e47: 0x6db95a20, - 0x39e48: 0x6db95c20, 0x39e49: 0x6db95e20, 0x39e4a: 0x6db96020, 0x39e4b: 0x6db96220, - 0x39e4c: 0x6db96420, 0x39e4d: 0x6db96620, 0x39e4e: 0x6db96820, 0x39e4f: 0x6db96a20, - 0x39e50: 0x6db96c20, 0x39e51: 0x6db96e20, 0x39e52: 0x6db97020, 0x39e53: 0x6db97220, - 0x39e54: 0x6db97420, 0x39e55: 0x6db97620, 0x39e56: 0x6db97820, 0x39e57: 0x6db97a20, - 0x39e58: 0x6db97c20, 0x39e59: 0x6db97e20, 0x39e5a: 0x6db98020, 0x39e5b: 0x6db98220, - 0x39e5c: 0x6db98420, 0x39e5d: 0x6db98620, 0x39e5e: 0x6db98820, 0x39e5f: 0x6db98a20, - 0x39e60: 0x6db98c20, 0x39e61: 0x6dd79220, 0x39e62: 0x6dd79420, 0x39e63: 0x6dd79620, - 0x39e64: 0x6dd79820, 0x39e65: 0x6dd79a20, 0x39e66: 0x6dd79c20, 0x39e67: 0x6dd79e20, - 0x39e68: 0x6dd7a020, 0x39e69: 0x6dd7a220, 0x39e6a: 0x6dd7a420, 0x39e6b: 0x6dd7a620, - 0x39e6c: 0x6dd7a820, 0x39e6d: 0x6dd7aa20, 0x39e6e: 0x6dd7ac20, 0x39e6f: 0x6dd7ae20, - 0x39e70: 0x6dd7b020, 0x39e71: 0x6dd7b220, 0x39e72: 0x6dd7b420, 0x39e73: 0x6dd7b620, - 0x39e74: 0x6dd7b820, 0x39e75: 0x6dd7ba20, 0x39e76: 0x6dd7bc20, 0x39e77: 0x6dd7be20, - 0x39e78: 0x6dd7c020, 0x39e79: 0x6dd7c220, 0x39e7a: 0x6dd7c420, 0x39e7b: 0x6dd7c620, - 0x39e7c: 0x6dd7c820, 0x39e7d: 0x6df01e20, 0x39e7e: 0x6df02020, 0x39e7f: 0x6df02220, - // Block 0xe7a, offset 0x39e80 - 0x39e80: 0x6df02420, 0x39e81: 0x6df02620, 0x39e82: 0x6df02820, 0x39e83: 0x6df02a20, - 0x39e84: 0x6df02c20, 0x39e85: 0x6df02e20, 0x39e86: 0x6df03020, 0x39e87: 0x6df03220, - 0x39e88: 0x6df03420, 0x39e89: 0x6df03620, 0x39e8a: 0x6df03820, 0x39e8b: 0x6df03a20, - 0x39e8c: 0x6df03c20, 0x39e8d: 0x6df03e20, 0x39e8e: 0x6df04020, 0x39e8f: 0x6df04220, - 0x39e90: 0x6df04420, 0x39e91: 0x6df04620, 0x39e92: 0x6df04820, 0x39e93: 0x6df04a20, - 0x39e94: 0x6df04c20, 0x39e95: 0x6df04e20, 0x39e96: 0x6e044220, 0x39e97: 0x6e044420, - 0x39e98: 0x6e044620, 0x39e99: 0x6e044820, 0x39e9a: 0x6e044a20, 0x39e9b: 0x6e044c20, - 0x39e9c: 0x6e044e20, 0x39e9d: 0x6e045020, 0x39e9e: 0x6e045220, 0x39e9f: 0x6e045420, - 0x39ea0: 0x6e045620, 0x39ea1: 0x6e045820, 0x39ea2: 0x6e045a20, 0x39ea3: 0x6e045c20, - 0x39ea4: 0x6e045e20, 0x39ea5: 0x6e046020, 0x39ea6: 0x6e156620, 0x39ea7: 0x6e156820, - 0x39ea8: 0x6e156a20, 0x39ea9: 0x6e156c20, 0x39eaa: 0x6e156e20, 0x39eab: 0x6e157020, - 0x39eac: 0x6e157220, 0x39ead: 0x6e157420, 0x39eae: 0x6e22f420, 0x39eaf: 0x6e22f620, - 0x39eb0: 0x6e22f820, 0x39eb1: 0x6e22fa20, 0x39eb2: 0x6e22fc20, 0x39eb3: 0x6e22fe20, - 0x39eb4: 0x6e230020, 0x39eb5: 0x6e230220, 0x39eb6: 0x6e2d2820, 0x39eb7: 0x6e2d2a20, - 0x39eb8: 0x6e2d2c20, 0x39eb9: 0x6e2d2e20, 0x39eba: 0x6e2d3020, 0x39ebb: 0x6e2d3220, - 0x39ebc: 0x6e2d3420, 0x39ebd: 0x6e2d3620, 0x39ebe: 0x6e350a20, 0x39ebf: 0x6e350c20, - // Block 0xe7b, offset 0x39ec0 - 0x39ec0: 0x6e350e20, 0x39ec1: 0x6e351020, 0x39ec2: 0x6e351220, 0x39ec3: 0x6e3aac20, - 0x39ec4: 0x6e3aae20, 0x39ec5: 0x6e3e7220, 0x39ec6: 0x6e3e7420, 0x39ec7: 0x6e413a20, - 0x39ec8: 0x6e413c20, 0x39ec9: 0x6e413e20, 0x39eca: 0x6e433a20, 0x39ecb: 0x6e433c20, - 0x39ecc: 0x6e433e20, 0x39ecd: 0x6e45e220, 0x39ece: 0x6e45e420, 0x39ecf: 0x6c890620, - 0x39ed0: 0x6cb4c620, 0x39ed1: 0x6cb4c820, 0x39ed2: 0x6d40ca20, 0x39ed3: 0x6d40cc20, - 0x39ed4: 0x6d40ce20, 0x39ed5: 0x6d6da620, 0x39ed6: 0x6d6da820, 0x39ed7: 0x6d6daa20, - 0x39ed8: 0x6d969020, 0x39ed9: 0x6d969220, 0x39eda: 0x6db99220, 0x39edb: 0x6db99420, - 0x39edc: 0x6db99620, 0x39edd: 0x6dd7cc20, 0x39ede: 0x6e046420, 0x39edf: 0x6e157820, - 0x39ee0: 0x6e157a20, 0x39ee1: 0x6e230420, 0x39ee2: 0x6cb4ce20, 0x39ee3: 0x6c890820, - 0x39ee4: 0x6c890a20, 0x39ee5: 0x6cb4d020, 0x39ee6: 0x6ce47220, 0x39ee7: 0x6ce47420, - 0x39ee8: 0x6ce47620, 0x39ee9: 0x6ce47820, 0x39eea: 0x6d12bc20, 0x39eeb: 0x6d12be20, - 0x39eec: 0x6d40d020, 0x39eed: 0x6d6dac20, 0x39eee: 0x6d6dae20, 0x39eef: 0x6d6db020, - 0x39ef0: 0x6d969420, 0x39ef1: 0x6d969620, 0x39ef2: 0x6db99a20, 0x39ef3: 0x6db99c20, - 0x39ef4: 0x6dd7d020, 0x39ef5: 0x6dd7d220, 0x39ef6: 0x6dd7d420, 0x39ef7: 0x6dd7d620, - 0x39ef8: 0x6e046820, 0x39ef9: 0x6e157c20, 0x39efa: 0x6e157e20, 0x39efb: 0x6e3ab020, - 0x39efc: 0x6e456620, 0x39efd: 0x6c892a20, 0x39efe: 0x6c892c20, 0x39eff: 0x6c892e20, - // Block 0xe7c, offset 0x39f00 - 0x39f00: 0x6c893020, 0x39f01: 0x6c893220, 0x39f02: 0x6cb50a20, 0x39f03: 0x6cb50c20, - 0x39f04: 0x6cb50e20, 0x39f05: 0x6cb51020, 0x39f06: 0x6cb51220, 0x39f07: 0x6cb51420, - 0x39f08: 0x6cb51620, 0x39f09: 0x6cb51820, 0x39f0a: 0x6ce4e420, 0x39f0b: 0x6ce4e620, - 0x39f0c: 0x6ce4e820, 0x39f0d: 0x6ce4ea20, 0x39f0e: 0x6ce4ec20, 0x39f0f: 0x6ce4ee20, - 0x39f10: 0x6ce4f020, 0x39f11: 0x6ce4f220, 0x39f12: 0x6ce4f420, 0x39f13: 0x6ce4f620, - 0x39f14: 0x6ce4f820, 0x39f15: 0x6ce4fa20, 0x39f16: 0x6ce4fc20, 0x39f17: 0x6ce4fe20, - 0x39f18: 0x6ce50020, 0x39f19: 0x6ce50220, 0x39f1a: 0x6ce50420, 0x39f1b: 0x6ce50620, - 0x39f1c: 0x6ce50820, 0x39f1d: 0x6ce50a20, 0x39f1e: 0x6ce50c20, 0x39f1f: 0x6ce50e20, - 0x39f20: 0x6ce51020, 0x39f21: 0x6ce51220, 0x39f22: 0x6ce51420, 0x39f23: 0x6ce51620, - 0x39f24: 0x6ce51820, 0x39f25: 0x6d135820, 0x39f26: 0x6d135a20, 0x39f27: 0x6d135c20, - 0x39f28: 0x6d135e20, 0x39f29: 0x6d136020, 0x39f2a: 0x6d136220, 0x39f2b: 0x6d136420, - 0x39f2c: 0x6d136620, 0x39f2d: 0x6d136820, 0x39f2e: 0x6d136a20, 0x39f2f: 0x6d136c20, - 0x39f30: 0x6d136e20, 0x39f31: 0x6d137020, 0x39f32: 0x6d137220, 0x39f33: 0x6d137420, - 0x39f34: 0x6d137620, 0x39f35: 0x6d137820, 0x39f36: 0x6d137a20, 0x39f37: 0x6d137c20, - 0x39f38: 0x6d137e20, 0x39f39: 0x6d138020, 0x39f3a: 0x6d138220, 0x39f3b: 0x6d138420, - 0x39f3c: 0x6d138620, 0x39f3d: 0x6d138820, 0x39f3e: 0x6d138a20, 0x39f3f: 0x6d138c20, - // Block 0xe7d, offset 0x39f40 - 0x39f40: 0x6d138e20, 0x39f41: 0x6d139020, 0x39f42: 0x6d415a20, 0x39f43: 0x6d415c20, - 0x39f44: 0x6d415e20, 0x39f45: 0x6d416020, 0x39f46: 0x6d416220, 0x39f47: 0x6d416420, - 0x39f48: 0x6d416620, 0x39f49: 0x6d416820, 0x39f4a: 0x6d416a20, 0x39f4b: 0x6d416c20, - 0x39f4c: 0x6d416e20, 0x39f4d: 0x6d417020, 0x39f4e: 0x6d417220, 0x39f4f: 0x6d417420, - 0x39f50: 0x6d417620, 0x39f51: 0x6d417820, 0x39f52: 0x6d417a20, 0x39f53: 0x6d417c20, - 0x39f54: 0x6d417e20, 0x39f55: 0x6d418020, 0x39f56: 0x6d418220, 0x39f57: 0x6d418420, - 0x39f58: 0x6d418620, 0x39f59: 0x6d418820, 0x39f5a: 0x6d418a20, 0x39f5b: 0x6d418c20, - 0x39f5c: 0x6d418e20, 0x39f5d: 0x6d419020, 0x39f5e: 0x6d377020, 0x39f5f: 0x6d419220, - 0x39f60: 0x6d419420, 0x39f61: 0x6d419620, 0x39f62: 0x6d419820, 0x39f63: 0x6d419a20, - 0x39f64: 0x6d419c20, 0x39f65: 0x6d419e20, 0x39f66: 0x6d41a020, 0x39f67: 0x6d41a220, - 0x39f68: 0x6d41a420, 0x39f69: 0x6d41a620, 0x39f6a: 0x6d41a820, 0x39f6b: 0x6d41aa20, - 0x39f6c: 0x6d6e4a20, 0x39f6d: 0x6d6e4c20, 0x39f6e: 0x6d6e4e20, 0x39f6f: 0x6d6e5020, - 0x39f70: 0x6d6e5220, 0x39f71: 0x6d6e5420, 0x39f72: 0x6d6e5620, 0x39f73: 0x6d6e5820, - 0x39f74: 0x6d6e5a20, 0x39f75: 0x6d6e5c20, 0x39f76: 0x6d6e5e20, 0x39f77: 0x6d6e6020, - 0x39f78: 0x6d6e6220, 0x39f79: 0x6d6e6420, 0x39f7a: 0x6d6e6620, 0x39f7b: 0x6d6e6820, - 0x39f7c: 0x6d6e6a20, 0x39f7d: 0x6d6e6c20, 0x39f7e: 0x6d6e6e20, 0x39f7f: 0x6d6e7020, - // Block 0xe7e, offset 0x39f80 - 0x39f80: 0x6d6e7220, 0x39f81: 0x6d6e7420, 0x39f82: 0x6d6e7620, 0x39f83: 0x6d6e7820, - 0x39f84: 0x6d6e7a20, 0x39f85: 0x6d6e7c20, 0x39f86: 0x6d6e7e20, 0x39f87: 0x6d6e8020, - 0x39f88: 0x6d6e8220, 0x39f89: 0x6d6e8420, 0x39f8a: 0x6d6e8620, 0x39f8b: 0x6d6e8820, - 0x39f8c: 0x6d6e8a20, 0x39f8d: 0x6d6e8c20, 0x39f8e: 0x6d6e8e20, 0x39f8f: 0x6d6e9020, - 0x39f90: 0x6d6e9220, 0x39f91: 0x6d6e9420, 0x39f92: 0x6d6e9620, 0x39f93: 0x6d6e9820, - 0x39f94: 0x6d6e9a20, 0x39f95: 0x6d6e9c20, 0x39f96: 0x6d6e9e20, 0x39f97: 0x6d6ea020, - 0x39f98: 0x6d6ea220, 0x39f99: 0x6d6ea420, 0x39f9a: 0x6d6ea620, 0x39f9b: 0x6d6ea820, - 0x39f9c: 0x6d6eaa20, 0x39f9d: 0x6d6eac20, 0x39f9e: 0x6d6eae20, 0x39f9f: 0x6d6eb020, - 0x39fa0: 0x6d6eb220, 0x39fa1: 0x6d6eb420, 0x39fa2: 0x6d6eb620, 0x39fa3: 0x6d6eb820, - 0x39fa4: 0x6d6eba20, 0x39fa5: 0x6d6ebc20, 0x39fa6: 0x6d974620, 0x39fa7: 0x6d974820, - 0x39fa8: 0x6d974a20, 0x39fa9: 0x6d974c20, 0x39faa: 0x6d974e20, 0x39fab: 0x6d975020, - 0x39fac: 0x6d975220, 0x39fad: 0x6d975420, 0x39fae: 0x6d975620, 0x39faf: 0x6d975820, - 0x39fb0: 0x6d975a20, 0x39fb1: 0x6d975c20, 0x39fb2: 0x6d975e20, 0x39fb3: 0x6d976020, - 0x39fb4: 0x6d976220, 0x39fb5: 0x6d976420, 0x39fb6: 0x6d976620, 0x39fb7: 0x6d976820, - 0x39fb8: 0x6d976a20, 0x39fb9: 0x6d976c20, 0x39fba: 0x6d976e20, 0x39fbb: 0x6d977020, - 0x39fbc: 0x6d977220, 0x39fbd: 0x6d977420, 0x39fbe: 0x6d977620, 0x39fbf: 0x6d977820, - // Block 0xe7f, offset 0x39fc0 - 0x39fc0: 0x6d977a20, 0x39fc1: 0x6d977c20, 0x39fc2: 0x6d977e20, 0x39fc3: 0x6d978020, - 0x39fc4: 0x6d978220, 0x39fc5: 0x6d978420, 0x39fc6: 0x6d978620, 0x39fc7: 0x6d978820, - 0x39fc8: 0x6d978a20, 0x39fc9: 0x6d978c20, 0x39fca: 0x6d978e20, 0x39fcb: 0x6d979020, - 0x39fcc: 0x6d979220, 0x39fcd: 0x6d979420, 0x39fce: 0x6d979620, 0x39fcf: 0x6d979820, - 0x39fd0: 0x6d979a20, 0x39fd1: 0x6d979c20, 0x39fd2: 0x6d979e20, 0x39fd3: 0x6d97a020, - 0x39fd4: 0x6d97a220, 0x39fd5: 0x6d97a420, 0x39fd6: 0x6d97a620, 0x39fd7: 0x6d97a820, - 0x39fd8: 0x6d97aa20, 0x39fd9: 0x6d97ac20, 0x39fda: 0x6d97ae20, 0x39fdb: 0x6d97b020, - 0x39fdc: 0x6d97b220, 0x39fdd: 0x6d97b420, 0x39fde: 0x6d97b620, 0x39fdf: 0x6d97b820, - 0x39fe0: 0x6d97ba20, 0x39fe1: 0x6d97bc20, 0x39fe2: 0x6d97be20, 0x39fe3: 0x6d97c020, - 0x39fe4: 0x6d97c220, 0x39fe5: 0x6d97c420, 0x39fe6: 0x6d97c620, 0x39fe7: 0x6d97c820, - 0x39fe8: 0x6d97ca20, 0x39fe9: 0x6d97cc20, 0x39fea: 0x6d97ce20, 0x39feb: 0x6d97d020, - 0x39fec: 0x6d97d220, 0x39fed: 0x6d97d420, 0x39fee: 0x6d97d620, 0x39fef: 0x6dba2c20, - 0x39ff0: 0x6dba2e20, 0x39ff1: 0x6dba3020, 0x39ff2: 0x6dba3220, 0x39ff3: 0x6dba3420, - 0x39ff4: 0x6dba3620, 0x39ff5: 0x6dba3820, 0x39ff6: 0x6dba3a20, 0x39ff7: 0x6dba3c20, - 0x39ff8: 0x6dba3e20, 0x39ff9: 0x6dba4020, 0x39ffa: 0x6dba4220, 0x39ffb: 0x6dba4420, - 0x39ffc: 0x6dba4620, 0x39ffd: 0x6dba4820, 0x39ffe: 0x6dba4a20, 0x39fff: 0x6dba4c20, - // Block 0xe80, offset 0x3a000 - 0x3a000: 0x6dba4e20, 0x3a001: 0x6dba5020, 0x3a002: 0x6dba5220, 0x3a003: 0x6dba5420, - 0x3a004: 0x6dba5620, 0x3a005: 0x6dba5820, 0x3a006: 0x6dba5a20, 0x3a007: 0x6dba5c20, - 0x3a008: 0x6dba5e20, 0x3a009: 0x6dba6020, 0x3a00a: 0x6dba6220, 0x3a00b: 0x6dba6420, - 0x3a00c: 0x6dba6620, 0x3a00d: 0x6dba6820, 0x3a00e: 0x6dba6a20, 0x3a00f: 0x6dba6c20, - 0x3a010: 0x6dba6e20, 0x3a011: 0x6dba7020, 0x3a012: 0x6dba7220, 0x3a013: 0x6dba7420, - 0x3a014: 0x6dba7620, 0x3a015: 0x6dba7820, 0x3a016: 0x6dba7a20, 0x3a017: 0x6dba7c20, - 0x3a018: 0x6dba7e20, 0x3a019: 0x6dba8020, 0x3a01a: 0x6dba8220, 0x3a01b: 0x6dba8420, - 0x3a01c: 0x6dba8620, 0x3a01d: 0x6dba8820, 0x3a01e: 0x6dba8a20, 0x3a01f: 0x6dba8c20, - 0x3a020: 0x6dba8e20, 0x3a021: 0x6dba9020, 0x3a022: 0x6dba9220, 0x3a023: 0x6dba9420, - 0x3a024: 0x6dba9620, 0x3a025: 0x6dba9820, 0x3a026: 0x6dba9a20, 0x3a027: 0x6dba9c20, - 0x3a028: 0x6dba9e20, 0x3a029: 0x6dbaa020, 0x3a02a: 0x6dbaa220, 0x3a02b: 0x6dbaa420, - 0x3a02c: 0x6dbaa620, 0x3a02d: 0x6dbaa820, 0x3a02e: 0x6dbaaa20, 0x3a02f: 0x6dbaac20, - 0x3a030: 0x6dbaae20, 0x3a031: 0x6dbab020, 0x3a032: 0x6dbab220, 0x3a033: 0x6dbab420, - 0x3a034: 0x6dbab620, 0x3a035: 0x6dbab820, 0x3a036: 0x6dbaba20, 0x3a037: 0x6dbabc20, - 0x3a038: 0x6dbabe20, 0x3a039: 0x6dbac020, 0x3a03a: 0x6dbac220, 0x3a03b: 0x6dbac420, - 0x3a03c: 0x6dbac620, 0x3a03d: 0x6dbac820, 0x3a03e: 0x6dbaca20, 0x3a03f: 0x6dbacc20, - // Block 0xe81, offset 0x3a040 - 0x3a040: 0x6dbace20, 0x3a041: 0x6dbad020, 0x3a042: 0x6dbad220, 0x3a043: 0x6dbad420, - 0x3a044: 0x6dbad620, 0x3a045: 0x6dbad820, 0x3a046: 0x6dbada20, 0x3a047: 0x6dd85a20, - 0x3a048: 0x6dd85c20, 0x3a049: 0x6dd85e20, 0x3a04a: 0x6dd86020, 0x3a04b: 0x6dd86220, - 0x3a04c: 0x6dd86420, 0x3a04d: 0x6dd86620, 0x3a04e: 0x6dd86820, 0x3a04f: 0x6dd86a20, - 0x3a050: 0x6dd86c20, 0x3a051: 0x6dd86e20, 0x3a052: 0x6dd87020, 0x3a053: 0x6dd87220, - 0x3a054: 0x6dd87420, 0x3a055: 0x6dd87620, 0x3a056: 0x6dd87820, 0x3a057: 0x6dd87a20, - 0x3a058: 0x6dd87c20, 0x3a059: 0x6dd87e20, 0x3a05a: 0x6dd88020, 0x3a05b: 0x6dd88220, - 0x3a05c: 0x6dd88420, 0x3a05d: 0x6dd88620, 0x3a05e: 0x6dd88820, 0x3a05f: 0x6dd88a20, - 0x3a060: 0x6dd88c20, 0x3a061: 0x6dd88e20, 0x3a062: 0x6dd89020, 0x3a063: 0x6dd89220, - 0x3a064: 0x6dd89420, 0x3a065: 0x6dd89620, 0x3a066: 0x6dd89820, 0x3a067: 0x6dd89a20, - 0x3a068: 0x6dd89c20, 0x3a069: 0x6dd89e20, 0x3a06a: 0x6dd8a020, 0x3a06b: 0x6dd8a220, - 0x3a06c: 0x6dd8a420, 0x3a06d: 0x6dd8a620, 0x3a06e: 0x6dd8a820, 0x3a06f: 0x6dd8aa20, - 0x3a070: 0x6dd8ac20, 0x3a071: 0x6dd8ae20, 0x3a072: 0x6dd8b020, 0x3a073: 0x6dd8b220, - 0x3a074: 0x6dd8b420, 0x3a075: 0x6dd8b620, 0x3a076: 0x6dd8b820, 0x3a077: 0x6dd8ba20, - 0x3a078: 0x6dd8bc20, 0x3a079: 0x6dd8be20, 0x3a07a: 0x6dd8c020, 0x3a07b: 0x6dd8c220, - 0x3a07c: 0x6dd8c420, 0x3a07d: 0x6dd8c620, 0x3a07e: 0x6dd8c820, 0x3a07f: 0x6dd8ca20, - // Block 0xe82, offset 0x3a080 - 0x3a080: 0x6dd8cc20, 0x3a081: 0x6dd8ce20, 0x3a082: 0x6dd8d020, 0x3a083: 0x6dd8d220, - 0x3a084: 0x6dd8d420, 0x3a085: 0x6dd8d620, 0x3a086: 0x6dd8d820, 0x3a087: 0x6dd8da20, - 0x3a088: 0x6dd8dc20, 0x3a089: 0x6dd8de20, 0x3a08a: 0x6dd8e020, 0x3a08b: 0x6dd8e220, - 0x3a08c: 0x6dd8e420, 0x3a08d: 0x6dd8e620, 0x3a08e: 0x6dd8e820, 0x3a08f: 0x6df0d820, - 0x3a090: 0x6df0da20, 0x3a091: 0x6df0dc20, 0x3a092: 0x6df0de20, 0x3a093: 0x6df0e020, - 0x3a094: 0x6df0e220, 0x3a095: 0x6df0e420, 0x3a096: 0x6df0e620, 0x3a097: 0x6df0e820, - 0x3a098: 0x6df0ea20, 0x3a099: 0x6df0ec20, 0x3a09a: 0x6df0ee20, 0x3a09b: 0x6df0f020, - 0x3a09c: 0x6df0f220, 0x3a09d: 0x6df0f420, 0x3a09e: 0x6df0f620, 0x3a09f: 0x6df0f820, - 0x3a0a0: 0x6df0fa20, 0x3a0a1: 0x6df0fc20, 0x3a0a2: 0x6df0fe20, 0x3a0a3: 0x6df10020, - 0x3a0a4: 0x6df10220, 0x3a0a5: 0x6df10420, 0x3a0a6: 0x6df10620, 0x3a0a7: 0x6df10820, - 0x3a0a8: 0x6df10a20, 0x3a0a9: 0x6df10c20, 0x3a0aa: 0x6df10e20, 0x3a0ab: 0x6df11020, - 0x3a0ac: 0x6df11220, 0x3a0ad: 0x6df11420, 0x3a0ae: 0x6df11620, 0x3a0af: 0x6df11820, - 0x3a0b0: 0x6df11a20, 0x3a0b1: 0x6df11c20, 0x3a0b2: 0x6df11e20, 0x3a0b3: 0x6df12020, - 0x3a0b4: 0x6df12220, 0x3a0b5: 0x6df12420, 0x3a0b6: 0x6df12620, 0x3a0b7: 0x6df12820, - 0x3a0b8: 0x6df12a20, 0x3a0b9: 0x6df12c20, 0x3a0ba: 0x6df12e20, 0x3a0bb: 0x6df13020, - 0x3a0bc: 0x6df13220, 0x3a0bd: 0x6df13420, 0x3a0be: 0x6df13620, 0x3a0bf: 0x6df13820, - // Block 0xe83, offset 0x3a0c0 - 0x3a0c0: 0x6df13a20, 0x3a0c1: 0x6df13c20, 0x3a0c2: 0x6df13e20, 0x3a0c3: 0x6df14020, - 0x3a0c4: 0x6df14220, 0x3a0c5: 0x6df14420, 0x3a0c6: 0x6df14620, 0x3a0c7: 0x6df14820, - 0x3a0c8: 0x6df14a20, 0x3a0c9: 0x6df14c20, 0x3a0ca: 0x6df14e20, 0x3a0cb: 0x6df15020, - 0x3a0cc: 0x6df15220, 0x3a0cd: 0x6e04e420, 0x3a0ce: 0x6e04e620, 0x3a0cf: 0x6e04e820, - 0x3a0d0: 0x6e04ea20, 0x3a0d1: 0x6e04ec20, 0x3a0d2: 0x6e04ee20, 0x3a0d3: 0x6e04f020, - 0x3a0d4: 0x6e04f220, 0x3a0d5: 0x6e15c420, 0x3a0d6: 0x6e04f420, 0x3a0d7: 0x6e04f620, - 0x3a0d8: 0x6e04f820, 0x3a0d9: 0x6e04fa20, 0x3a0da: 0x6e04fc20, 0x3a0db: 0x6e04fe20, - 0x3a0dc: 0x6e050020, 0x3a0dd: 0x6e050220, 0x3a0de: 0x6e050420, 0x3a0df: 0x6e050620, - 0x3a0e0: 0x6e050820, 0x3a0e1: 0x6e050a20, 0x3a0e2: 0x6e050c20, 0x3a0e3: 0x6e050e20, - 0x3a0e4: 0x6e051020, 0x3a0e5: 0x6e051220, 0x3a0e6: 0x6e051420, 0x3a0e7: 0x6e051620, - 0x3a0e8: 0x6e051820, 0x3a0e9: 0x6e051a20, 0x3a0ea: 0x6e051c20, 0x3a0eb: 0x6e051e20, - 0x3a0ec: 0x6e052020, 0x3a0ed: 0x6e052220, 0x3a0ee: 0x6e052420, 0x3a0ef: 0x6e052620, - 0x3a0f0: 0x6e052820, 0x3a0f1: 0x6e052a20, 0x3a0f2: 0x6e052c20, 0x3a0f3: 0x6e052e20, - 0x3a0f4: 0x6e053020, 0x3a0f5: 0x6e053220, 0x3a0f6: 0x6e053420, 0x3a0f7: 0x6e053620, - 0x3a0f8: 0x6e053820, 0x3a0f9: 0x6e053a20, 0x3a0fa: 0x6e053c20, 0x3a0fb: 0x6e053e20, - 0x3a0fc: 0x6e054020, 0x3a0fd: 0x6e054220, 0x3a0fe: 0x6e054420, 0x3a0ff: 0x6e054620, - // Block 0xe84, offset 0x3a100 - 0x3a100: 0x6e054820, 0x3a101: 0x6e054a20, 0x3a102: 0x6e054c20, 0x3a103: 0x6e054e20, - 0x3a104: 0x6e055020, 0x3a105: 0x6e055220, 0x3a106: 0x6e055420, 0x3a107: 0x6e055620, - 0x3a108: 0x6e055820, 0x3a109: 0x6e055a20, 0x3a10a: 0x6e055c20, 0x3a10b: 0x6e055e20, - 0x3a10c: 0x6e056020, 0x3a10d: 0x6e056220, 0x3a10e: 0x6e056420, 0x3a10f: 0x6e056620, - 0x3a110: 0x6e056820, 0x3a111: 0x6e056a20, 0x3a112: 0x6e056c20, 0x3a113: 0x6e056e20, - 0x3a114: 0x6e057020, 0x3a115: 0x6e15c620, 0x3a116: 0x6e15c820, 0x3a117: 0x6e15ca20, - 0x3a118: 0x6e15cc20, 0x3a119: 0x6e15ce20, 0x3a11a: 0x6e15d020, 0x3a11b: 0x6e15d220, - 0x3a11c: 0x6e15d420, 0x3a11d: 0x6e15d620, 0x3a11e: 0x6e15d820, 0x3a11f: 0x6e15da20, - 0x3a120: 0x6e15dc20, 0x3a121: 0x6e15de20, 0x3a122: 0x6e15e020, 0x3a123: 0x6e15e220, - 0x3a124: 0x6e15e420, 0x3a125: 0x6e15e620, 0x3a126: 0x6e15e820, 0x3a127: 0x6e15ea20, - 0x3a128: 0x6e15ec20, 0x3a129: 0x6e15ee20, 0x3a12a: 0x6e15f020, 0x3a12b: 0x6e15f220, - 0x3a12c: 0x6e15f420, 0x3a12d: 0x6e15f620, 0x3a12e: 0x6e15f820, 0x3a12f: 0x6e15fa20, - 0x3a130: 0x6e15fc20, 0x3a131: 0x6e15fe20, 0x3a132: 0x6e160020, 0x3a133: 0x6e160220, - 0x3a134: 0x6e160420, 0x3a135: 0x6e160620, 0x3a136: 0x6e160820, 0x3a137: 0x6e160a20, - 0x3a138: 0x6e160c20, 0x3a139: 0x6e160e20, 0x3a13a: 0x6e161020, 0x3a13b: 0x6e161220, - 0x3a13c: 0x6e161420, 0x3a13d: 0x6e161620, 0x3a13e: 0x6e161820, 0x3a13f: 0x6e161a20, - // Block 0xe85, offset 0x3a140 - 0x3a140: 0x6e161c20, 0x3a141: 0x6e161e20, 0x3a142: 0x6e162020, 0x3a143: 0x6e162220, - 0x3a144: 0x6e162420, 0x3a145: 0x6e162620, 0x3a146: 0x6e162820, 0x3a147: 0x6e162a20, - 0x3a148: 0x6e162c20, 0x3a149: 0x6e162e20, 0x3a14a: 0x6e163020, 0x3a14b: 0x6e163220, - 0x3a14c: 0x6e163420, 0x3a14d: 0x6e163620, 0x3a14e: 0x6e163820, 0x3a14f: 0x6e163a20, - 0x3a150: 0x6e163c20, 0x3a151: 0x6e163e20, 0x3a152: 0x6e233e20, 0x3a153: 0x6e234020, - 0x3a154: 0x6e234220, 0x3a155: 0x6e234420, 0x3a156: 0x6e234620, 0x3a157: 0x6e234820, - 0x3a158: 0x6e234a20, 0x3a159: 0x6e234c20, 0x3a15a: 0x6e234e20, 0x3a15b: 0x6e235020, - 0x3a15c: 0x6e235220, 0x3a15d: 0x6e235420, 0x3a15e: 0x6e235620, 0x3a15f: 0x6e235820, - 0x3a160: 0x6e235a20, 0x3a161: 0x6e235c20, 0x3a162: 0x6e235e20, 0x3a163: 0x6e236020, - 0x3a164: 0x6e236220, 0x3a165: 0x6e236420, 0x3a166: 0x6e236620, 0x3a167: 0x6e236820, - 0x3a168: 0x6e236a20, 0x3a169: 0x6e236c20, 0x3a16a: 0x6e236e20, 0x3a16b: 0x6e237020, - 0x3a16c: 0x6e237220, 0x3a16d: 0x6e237420, 0x3a16e: 0x6e237620, 0x3a16f: 0x6e237820, - 0x3a170: 0x6e237a20, 0x3a171: 0x6e237c20, 0x3a172: 0x6e237e20, 0x3a173: 0x6e238020, - 0x3a174: 0x6e238220, 0x3a175: 0x6e238420, 0x3a176: 0x6e238620, 0x3a177: 0x6e238820, - 0x3a178: 0x6e2d6a20, 0x3a179: 0x6e2d6c20, 0x3a17a: 0x6e2d6e20, 0x3a17b: 0x6e2d7020, - 0x3a17c: 0x6e2d7220, 0x3a17d: 0x6e2d7420, 0x3a17e: 0x6e2d7620, 0x3a17f: 0x6e2d7820, - // Block 0xe86, offset 0x3a180 - 0x3a180: 0x6e2d7a20, 0x3a181: 0x6e2d7c20, 0x3a182: 0x6e2d7e20, 0x3a183: 0x6e2d8020, - 0x3a184: 0x6e2d8220, 0x3a185: 0x6e2d8420, 0x3a186: 0x6e2d8620, 0x3a187: 0x6e2d8820, - 0x3a188: 0x6e2d8a20, 0x3a189: 0x6e2d8c20, 0x3a18a: 0x6e2d8e20, 0x3a18b: 0x6e2d9020, - 0x3a18c: 0x6e2d9220, 0x3a18d: 0x6e2d9420, 0x3a18e: 0x6e2d9620, 0x3a18f: 0x6e2d9820, - 0x3a190: 0x6e2d9a20, 0x3a191: 0x6e2d9c20, 0x3a192: 0x6e2d9e20, 0x3a193: 0x6e2da020, - 0x3a194: 0x6e2da220, 0x3a195: 0x6e2da420, 0x3a196: 0x6e2da620, 0x3a197: 0x6e2da820, - 0x3a198: 0x6e2daa20, 0x3a199: 0x6e2dac20, 0x3a19a: 0x6e2dae20, 0x3a19b: 0x6e2db020, - 0x3a19c: 0x6e2db220, 0x3a19d: 0x6e352620, 0x3a19e: 0x6e352820, 0x3a19f: 0x6e352a20, - 0x3a1a0: 0x6e352c20, 0x3a1a1: 0x6e352e20, 0x3a1a2: 0x6e353020, 0x3a1a3: 0x6e353220, - 0x3a1a4: 0x6e353420, 0x3a1a5: 0x6e353620, 0x3a1a6: 0x6e353820, 0x3a1a7: 0x6e353a20, - 0x3a1a8: 0x6e353c20, 0x3a1a9: 0x6e353e20, 0x3a1aa: 0x6e354020, 0x3a1ab: 0x6e354220, - 0x3a1ac: 0x6e354420, 0x3a1ad: 0x6e354620, 0x3a1ae: 0x6e354820, 0x3a1af: 0x6e354a20, - 0x3a1b0: 0x6e354c20, 0x3a1b1: 0x6e354e20, 0x3a1b2: 0x6e355020, 0x3a1b3: 0x6e355220, - 0x3a1b4: 0x6e355420, 0x3a1b5: 0x6e355620, 0x3a1b6: 0x6e355820, 0x3a1b7: 0x6e355a20, - 0x3a1b8: 0x6e355c20, 0x3a1b9: 0x6e355e20, 0x3a1ba: 0x6e3ac220, 0x3a1bb: 0x6e3ac420, - 0x3a1bc: 0x6e3ac620, 0x3a1bd: 0x6e3ac820, 0x3a1be: 0x6e3aca20, 0x3a1bf: 0x6e3acc20, - // Block 0xe87, offset 0x3a1c0 - 0x3a1c0: 0x6e3ace20, 0x3a1c1: 0x6e3ad020, 0x3a1c2: 0x6e3ad220, 0x3a1c3: 0x6e3ad420, - 0x3a1c4: 0x6e3ad620, 0x3a1c5: 0x6e3ad820, 0x3a1c6: 0x6e3ada20, 0x3a1c7: 0x6e3adc20, - 0x3a1c8: 0x6e3ade20, 0x3a1c9: 0x6e3e8420, 0x3a1ca: 0x6e3e8620, 0x3a1cb: 0x6e3e8820, - 0x3a1cc: 0x6e3e8a20, 0x3a1cd: 0x6e3e8c20, 0x3a1ce: 0x6e3e8e20, 0x3a1cf: 0x6e3e9020, - 0x3a1d0: 0x6e3e9220, 0x3a1d1: 0x6e3e9420, 0x3a1d2: 0x6e3e9620, 0x3a1d3: 0x6e3e9820, - 0x3a1d4: 0x6e3e9a20, 0x3a1d5: 0x6e3e9c20, 0x3a1d6: 0x6e3e9e20, 0x3a1d7: 0x6e3ea020, - 0x3a1d8: 0x6e3ea220, 0x3a1d9: 0x6e3ea420, 0x3a1da: 0x6e3ea620, 0x3a1db: 0x6e3ea820, - 0x3a1dc: 0x6e3eaa20, 0x3a1dd: 0x6e3eac20, 0x3a1de: 0x6e414820, 0x3a1df: 0x6e414a20, - 0x3a1e0: 0x6e414c20, 0x3a1e1: 0x6e414e20, 0x3a1e2: 0x6e415020, 0x3a1e3: 0x6e415220, - 0x3a1e4: 0x6e415420, 0x3a1e5: 0x6e415620, 0x3a1e6: 0x6e415820, 0x3a1e7: 0x6e415a20, - 0x3a1e8: 0x6e415c20, 0x3a1e9: 0x6e434820, 0x3a1ea: 0x6e434a20, 0x3a1eb: 0x6e434c20, - 0x3a1ec: 0x6e434e20, 0x3a1ed: 0x6e435020, 0x3a1ee: 0x6e435220, 0x3a1ef: 0x6e435420, - 0x3a1f0: 0x6e435620, 0x3a1f1: 0x6e3ae020, 0x3a1f2: 0x6e449820, 0x3a1f3: 0x6e449a20, - 0x3a1f4: 0x6e449c20, 0x3a1f5: 0x6e449e20, 0x3a1f6: 0x6e44a020, 0x3a1f7: 0x6e456820, - 0x3a1f8: 0x6e456a20, 0x3a1f9: 0x6e456c20, 0x3a1fa: 0x6e45e620, 0x3a1fb: 0x6e464020, - 0x3a1fc: 0x6e46d020, 0x3a1fd: 0x6e471620, 0x3a1fe: 0x6c41f620, 0x3a1ff: 0x6c41f820, - // Block 0xe88, offset 0x3a200 - 0x3a200: 0x6c629620, 0x3a201: 0x6c629820, 0x3a202: 0x6c629a20, 0x3a203: 0x6c897220, - 0x3a204: 0x6c897420, 0x3a205: 0x6c897620, 0x3a206: 0x6c897820, 0x3a207: 0x6ce56620, - 0x3a208: 0x6ce56820, 0x3a209: 0x6d13dc20, 0x3a20a: 0x6d13de20, 0x3a20b: 0x6d13e020, - 0x3a20c: 0x6d13e220, 0x3a20d: 0x6d6ef220, 0x3a20e: 0x6d41ec20, 0x3a20f: 0x6d6ef420, - 0x3a210: 0x6d980420, 0x3a211: 0x6dbb0620, 0x3a212: 0x6d980620, 0x3a213: 0x6dbb0820, - 0x3a214: 0x6dbb0a20, 0x3a215: 0x6dd90820, 0x3a216: 0x6dd90a20, 0x3a217: 0x6c280020, - 0x3a218: 0x6c280220, 0x3a219: 0x6c62aa20, 0x3a21a: 0x6cb58e20, 0x3a21b: 0x6cb59020, - 0x3a21c: 0x6cb59220, 0x3a21d: 0x6cb59420, 0x3a21e: 0x6cb59620, 0x3a21f: 0x6cb59820, - 0x3a220: 0x6cb59a20, 0x3a221: 0x6cb59c20, 0x3a222: 0x6cb59e20, 0x3a223: 0x6cb5a020, - 0x3a224: 0x6cb5a220, 0x3a225: 0x6cb5a420, 0x3a226: 0x6ce57420, 0x3a227: 0x6ce57620, - 0x3a228: 0x6ce57820, 0x3a229: 0x6ce57a20, 0x3a22a: 0x6ce57c20, 0x3a22b: 0x6ce57e20, - 0x3a22c: 0x6ce58020, 0x3a22d: 0x6ce58220, 0x3a22e: 0x6ce58420, 0x3a22f: 0x6ce58620, - 0x3a230: 0x6ce58820, 0x3a231: 0x6ce58a20, 0x3a232: 0x6d13fa20, 0x3a233: 0x6d13fc20, - 0x3a234: 0x6d13fe20, 0x3a235: 0x6d140020, 0x3a236: 0x6d140220, 0x3a237: 0x6d140420, - 0x3a238: 0x6d140620, 0x3a239: 0x6d140820, 0x3a23a: 0x6d140a20, 0x3a23b: 0x6d140c20, - 0x3a23c: 0x6d140e20, 0x3a23d: 0x6d141020, 0x3a23e: 0x6d141220, 0x3a23f: 0x6d141420, - // Block 0xe89, offset 0x3a240 - 0x3a240: 0x6d41fe20, 0x3a241: 0x6d420020, 0x3a242: 0x6d420220, 0x3a243: 0x6d420420, - 0x3a244: 0x6d420620, 0x3a245: 0x6d420820, 0x3a246: 0x6d420a20, 0x3a247: 0x6d6f0220, - 0x3a248: 0x6d6f0420, 0x3a249: 0x6d6f0620, 0x3a24a: 0x6d6f0820, 0x3a24b: 0x6d6f0a20, - 0x3a24c: 0x6d6f0c20, 0x3a24d: 0x6d6f0e20, 0x3a24e: 0x6d6f1020, 0x3a24f: 0x6d6f1220, - 0x3a250: 0x6d6f1420, 0x3a251: 0x6d6f1620, 0x3a252: 0x6d6f1820, 0x3a253: 0x6d980e20, - 0x3a254: 0x6d981020, 0x3a255: 0x6d981220, 0x3a256: 0x6d981420, 0x3a257: 0x6d981620, - 0x3a258: 0x6d981820, 0x3a259: 0x6d981a20, 0x3a25a: 0x6d981c20, 0x3a25b: 0x6d981e20, - 0x3a25c: 0x6d982020, 0x3a25d: 0x6d982220, 0x3a25e: 0x6dbb1620, 0x3a25f: 0x6dbb1820, - 0x3a260: 0x6dbb1a20, 0x3a261: 0x6dbb1c20, 0x3a262: 0x6dbb1e20, 0x3a263: 0x6dbb2020, - 0x3a264: 0x6dbb2220, 0x3a265: 0x6dd91020, 0x3a266: 0x6dd91220, 0x3a267: 0x6dd91420, - 0x3a268: 0x6dd91620, 0x3a269: 0x6dd91820, 0x3a26a: 0x6dd91a20, 0x3a26b: 0x6dd91c20, - 0x3a26c: 0x6dd91e20, 0x3a26d: 0x6df16820, 0x3a26e: 0x6df16a20, 0x3a26f: 0x6df16c20, - 0x3a270: 0x6df16e20, 0x3a271: 0x6df17020, 0x3a272: 0x6df17220, 0x3a273: 0x6e059620, - 0x3a274: 0x6e059820, 0x3a275: 0x6e059a20, 0x3a276: 0x6e059c20, 0x3a277: 0x6e059e20, - 0x3a278: 0x6e165020, 0x3a279: 0x6e165220, 0x3a27a: 0x6e165420, 0x3a27b: 0x6e239a20, - 0x3a27c: 0x6e239c20, 0x3a27d: 0x6e239e20, 0x3a27e: 0x6e23a020, 0x3a27f: 0x6e23a220, - // Block 0xe8a, offset 0x3a280 - 0x3a280: 0x6e2dba20, 0x3a281: 0x6e2dbc20, 0x3a282: 0x6e356820, 0x3a283: 0x6e356a20, - 0x3a284: 0x6e3eb020, 0x3a285: 0x6e435a20, 0x3a286: 0x6e44a220, 0x3a287: 0x6c420420, - 0x3a288: 0x6c420620, 0x3a289: 0x6c62b020, 0x3a28a: 0x6c898a20, 0x3a28b: 0x6c898c20, - 0x3a28c: 0x6c898e20, 0x3a28d: 0x6c899020, 0x3a28e: 0x6c899220, 0x3a28f: 0x6c899420, - 0x3a290: 0x6cb5b420, 0x3a291: 0x6cb5b620, 0x3a292: 0x6cb5b820, 0x3a293: 0x6cb5ba20, - 0x3a294: 0x6cb5bc20, 0x3a295: 0x6cb5be20, 0x3a296: 0x6cb5c020, 0x3a297: 0x6ce5ae20, - 0x3a298: 0x6ce5b020, 0x3a299: 0x6ce5b220, 0x3a29a: 0x6ce5b420, 0x3a29b: 0x6ce5b620, - 0x3a29c: 0x6ce5b820, 0x3a29d: 0x6ce5ba20, 0x3a29e: 0x6ce5bc20, 0x3a29f: 0x6ce5be20, - 0x3a2a0: 0x6ce5c020, 0x3a2a1: 0x6ce5c220, 0x3a2a2: 0x6ce5c420, 0x3a2a3: 0x6ce5c620, - 0x3a2a4: 0x6ce5c820, 0x3a2a5: 0x6ce5ca20, 0x3a2a6: 0x6ce5cc20, 0x3a2a7: 0x6ce5ce20, - 0x3a2a8: 0x6ce5d020, 0x3a2a9: 0x6ce5d220, 0x3a2aa: 0x6ce5d420, 0x3a2ab: 0x6ce5d620, - 0x3a2ac: 0x6ce5d820, 0x3a2ad: 0x6ce5da20, 0x3a2ae: 0x6ce5dc20, 0x3a2af: 0x6ce5de20, - 0x3a2b0: 0x6ce5e020, 0x3a2b1: 0x6ce5e220, 0x3a2b2: 0x6ce5e420, 0x3a2b3: 0x6d143020, - 0x3a2b4: 0x6d143220, 0x3a2b5: 0x6d143420, 0x3a2b6: 0x6d143620, 0x3a2b7: 0x6d143820, - 0x3a2b8: 0x6d143a20, 0x3a2b9: 0x6d143c20, 0x3a2ba: 0x6d143e20, 0x3a2bb: 0x6d144020, - 0x3a2bc: 0x6d144220, 0x3a2bd: 0x6d144420, 0x3a2be: 0x6d144620, 0x3a2bf: 0x6d144820, - // Block 0xe8b, offset 0x3a2c0 - 0x3a2c0: 0x6d144a20, 0x3a2c1: 0x6d144c20, 0x3a2c2: 0x6d144e20, 0x3a2c3: 0x6d145020, - 0x3a2c4: 0x6d145220, 0x3a2c5: 0x6d145420, 0x3a2c6: 0x6d145620, 0x3a2c7: 0x6d145820, - 0x3a2c8: 0x6d145a20, 0x3a2c9: 0x6d145c20, 0x3a2ca: 0x6d145e20, 0x3a2cb: 0x6d146020, - 0x3a2cc: 0x6d146220, 0x3a2cd: 0x6d422e20, 0x3a2ce: 0x6d423020, 0x3a2cf: 0x6d423220, - 0x3a2d0: 0x6d423420, 0x3a2d1: 0x6d423620, 0x3a2d2: 0x6d423820, 0x3a2d3: 0x6d423a20, - 0x3a2d4: 0x6d423c20, 0x3a2d5: 0x6d423e20, 0x3a2d6: 0x6d424020, 0x3a2d7: 0x6d424220, - 0x3a2d8: 0x6d424420, 0x3a2d9: 0x6d424620, 0x3a2da: 0x6d424820, 0x3a2db: 0x6d424a20, - 0x3a2dc: 0x6d424c20, 0x3a2dd: 0x6d424e20, 0x3a2de: 0x6d425020, 0x3a2df: 0x6d425220, - 0x3a2e0: 0x6d425420, 0x3a2e1: 0x6d425620, 0x3a2e2: 0x6d425820, 0x3a2e3: 0x6d425a20, - 0x3a2e4: 0x6d425c20, 0x3a2e5: 0x6d425e20, 0x3a2e6: 0x6d426020, 0x3a2e7: 0x6d6f3820, - 0x3a2e8: 0x6d6f3a20, 0x3a2e9: 0x6d6f3c20, 0x3a2ea: 0x6d6f3e20, 0x3a2eb: 0x6d6f4020, - 0x3a2ec: 0x6d6f4220, 0x3a2ed: 0x6d6f4420, 0x3a2ee: 0x6d6f4620, 0x3a2ef: 0x6d6f4820, - 0x3a2f0: 0x6d6f4a20, 0x3a2f1: 0x6d6f4c20, 0x3a2f2: 0x6d6f4e20, 0x3a2f3: 0x6d6f5020, - 0x3a2f4: 0x6d6f5220, 0x3a2f5: 0x6d6f5420, 0x3a2f6: 0x6d6f5620, 0x3a2f7: 0x6d6f5820, - 0x3a2f8: 0x6d6f5a20, 0x3a2f9: 0x6d6f5c20, 0x3a2fa: 0x6d6f5e20, 0x3a2fb: 0x6d6f6020, - 0x3a2fc: 0x6d6f6220, 0x3a2fd: 0x6d6f6420, 0x3a2fe: 0x6d6f6620, 0x3a2ff: 0x6d6f6820, - // Block 0xe8c, offset 0x3a300 - 0x3a300: 0x6d6f6a20, 0x3a301: 0x6d6f6c20, 0x3a302: 0x6d6f6e20, 0x3a303: 0x6d6f7020, - 0x3a304: 0x6d6f7220, 0x3a305: 0x6d6f7420, 0x3a306: 0x6d6f7620, 0x3a307: 0x6d6f7820, - 0x3a308: 0x6d984e20, 0x3a309: 0x6d985020, 0x3a30a: 0x6d985220, 0x3a30b: 0x6d985420, - 0x3a30c: 0x6d985620, 0x3a30d: 0x6d985820, 0x3a30e: 0x6d985a20, 0x3a30f: 0x6d985c20, - 0x3a310: 0x6d985e20, 0x3a311: 0x6d986020, 0x3a312: 0x6d986220, 0x3a313: 0x6d986420, - 0x3a314: 0x6d986620, 0x3a315: 0x6d986820, 0x3a316: 0x6d986a20, 0x3a317: 0x6d986c20, - 0x3a318: 0x6d986e20, 0x3a319: 0x6d987020, 0x3a31a: 0x6d987220, 0x3a31b: 0x6d987420, - 0x3a31c: 0x6d987620, 0x3a31d: 0x6d987820, 0x3a31e: 0x6d987a20, 0x3a31f: 0x6d987c20, - 0x3a320: 0x6d987e20, 0x3a321: 0x6d988020, 0x3a322: 0x6d988220, 0x3a323: 0x6d988420, - 0x3a324: 0x6d988620, 0x3a325: 0x6dbb4e20, 0x3a326: 0x6dbb5020, 0x3a327: 0x6dbb5220, - 0x3a328: 0x6dbb5420, 0x3a329: 0x6dbb5620, 0x3a32a: 0x6dbb5820, 0x3a32b: 0x6dbb5a20, - 0x3a32c: 0x6dbb5c20, 0x3a32d: 0x6dbb5e20, 0x3a32e: 0x6dbb6020, 0x3a32f: 0x6dbb6220, - 0x3a330: 0x6dbb6420, 0x3a331: 0x6dbb6620, 0x3a332: 0x6dbb6820, 0x3a333: 0x6dbb6a20, - 0x3a334: 0x6dbb6c20, 0x3a335: 0x6dbb6e20, 0x3a336: 0x6dbb7020, 0x3a337: 0x6dbb7220, - 0x3a338: 0x6dbb7420, 0x3a339: 0x6dbb7620, 0x3a33a: 0x6dbb7820, 0x3a33b: 0x6dbb7a20, - 0x3a33c: 0x6dbb7c20, 0x3a33d: 0x6dbb7e20, 0x3a33e: 0x6dbb8020, 0x3a33f: 0x6dbb8220, - // Block 0xe8d, offset 0x3a340 - 0x3a340: 0x6dd93220, 0x3a341: 0x6dd93420, 0x3a342: 0x6dd93620, 0x3a343: 0x6dd93820, - 0x3a344: 0x6dd93a20, 0x3a345: 0x6dd93c20, 0x3a346: 0x6dd93e20, 0x3a347: 0x6dd94020, - 0x3a348: 0x6dd94220, 0x3a349: 0x6dd94420, 0x3a34a: 0x6dd94620, 0x3a34b: 0x6dd94820, - 0x3a34c: 0x6dd94a20, 0x3a34d: 0x6dd94c20, 0x3a34e: 0x6dd94e20, 0x3a34f: 0x6dd95020, - 0x3a350: 0x6dd95220, 0x3a351: 0x6dd95420, 0x3a352: 0x6dd95620, 0x3a353: 0x6dd95820, - 0x3a354: 0x6dd95a20, 0x3a355: 0x6dd95c20, 0x3a356: 0x6dd95e20, 0x3a357: 0x6dd96020, - 0x3a358: 0x6dd96220, 0x3a359: 0x6dd96420, 0x3a35a: 0x6dd96620, 0x3a35b: 0x6dd96820, - 0x3a35c: 0x6df18020, 0x3a35d: 0x6df18220, 0x3a35e: 0x6df18420, 0x3a35f: 0x6df18620, - 0x3a360: 0x6df18820, 0x3a361: 0x6df18a20, 0x3a362: 0x6df18c20, 0x3a363: 0x6df18e20, - 0x3a364: 0x6df19020, 0x3a365: 0x6df19220, 0x3a366: 0x6df19420, 0x3a367: 0x6df19620, - 0x3a368: 0x6df19820, 0x3a369: 0x6df19a20, 0x3a36a: 0x6df19c20, 0x3a36b: 0x6df19e20, - 0x3a36c: 0x6e05aa20, 0x3a36d: 0x6e05ac20, 0x3a36e: 0x6e05ae20, 0x3a36f: 0x6e05b020, - 0x3a370: 0x6e05b220, 0x3a371: 0x6e05b420, 0x3a372: 0x6e05b620, 0x3a373: 0x6e05b820, - 0x3a374: 0x6e05ba20, 0x3a375: 0x6e05bc20, 0x3a376: 0x6e05be20, 0x3a377: 0x6e05c020, - 0x3a378: 0x6e05c220, 0x3a379: 0x6e05c420, 0x3a37a: 0x6e05c620, 0x3a37b: 0x6e05c820, - 0x3a37c: 0x6e05ca20, 0x3a37d: 0x6e05cc20, 0x3a37e: 0x6e05ce20, 0x3a37f: 0x6e05d020, - // Block 0xe8e, offset 0x3a380 - 0x3a380: 0x6e05d220, 0x3a381: 0x6e05d420, 0x3a382: 0x6e05d620, 0x3a383: 0x6e166620, - 0x3a384: 0x6e166820, 0x3a385: 0x6e166a20, 0x3a386: 0x6e166c20, 0x3a387: 0x6e166e20, - 0x3a388: 0x6e167020, 0x3a389: 0x6e167220, 0x3a38a: 0x6e167420, 0x3a38b: 0x6e167620, - 0x3a38c: 0x6e167820, 0x3a38d: 0x6e167a20, 0x3a38e: 0x6e167c20, 0x3a38f: 0x6e167e20, - 0x3a390: 0x6e168020, 0x3a391: 0x6e168220, 0x3a392: 0x6e168420, 0x3a393: 0x6e168620, - 0x3a394: 0x6e23a820, 0x3a395: 0x6e168820, 0x3a396: 0x6e168a20, 0x3a397: 0x6e168c20, - 0x3a398: 0x6e23aa20, 0x3a399: 0x6e23ac20, 0x3a39a: 0x6e23ae20, 0x3a39b: 0x6e23b020, - 0x3a39c: 0x6e23b220, 0x3a39d: 0x6e23b420, 0x3a39e: 0x6e23b620, 0x3a39f: 0x6e2dbe20, - 0x3a3a0: 0x6e2dc020, 0x3a3a1: 0x6e2dc220, 0x3a3a2: 0x6e2dc420, 0x3a3a3: 0x6e2dc620, - 0x3a3a4: 0x6e2dc820, 0x3a3a5: 0x6e2dca20, 0x3a3a6: 0x6e356c20, 0x3a3a7: 0x6e356e20, - 0x3a3a8: 0x6e357020, 0x3a3a9: 0x6e357220, 0x3a3aa: 0x6e357420, 0x3a3ab: 0x6e357620, - 0x3a3ac: 0x6e357820, 0x3a3ad: 0x6e357a20, 0x3a3ae: 0x6e357c20, 0x3a3af: 0x6e3ae820, - 0x3a3b0: 0x6e3aea20, 0x3a3b1: 0x6e3aec20, 0x3a3b2: 0x6e3aee20, 0x3a3b3: 0x6e3af020, - 0x3a3b4: 0x6e3af220, 0x3a3b5: 0x6e3af420, 0x3a3b6: 0x6e357e20, 0x3a3b7: 0x6e3eb220, - 0x3a3b8: 0x6e3af620, 0x3a3b9: 0x6e3eb420, 0x3a3ba: 0x6e3eb620, 0x3a3bb: 0x6e416020, - 0x3a3bc: 0x6e44a420, 0x3a3bd: 0x6e464220, 0x3a3be: 0x6e464420, 0x3a3bf: 0x6c159a20, - // Block 0xe8f, offset 0x3a3c0 - 0x3a3c0: 0x6c159c20, 0x3a3c1: 0x6c159e20, 0x3a3c2: 0x6c281420, 0x3a3c3: 0x6c281620, - 0x3a3c4: 0x6c62c620, 0x3a3c5: 0x6c62c820, 0x3a3c6: 0x6ce5f420, 0x3a3c7: 0x6ce5f620, - 0x3a3c8: 0x6ce5f820, 0x3a3c9: 0x6d147620, 0x3a3ca: 0x6d147820, 0x3a3cb: 0x6d6f8420, - 0x3a3cc: 0x6d6f8620, 0x3a3cd: 0x6dbb8820, 0x3a3ce: 0x6e05d820, 0x3a3cf: 0x6c00d020, - 0x3a3d0: 0x6c052820, 0x3a3d1: 0x6c052a20, 0x3a3d2: 0x6c052c20, 0x3a3d3: 0x6c052e20, - 0x3a3d4: 0x6c053020, 0x3a3d5: 0x6c053220, 0x3a3d6: 0x6c0ab820, 0x3a3d7: 0x6c0aba20, - 0x3a3d8: 0x6c0abc20, 0x3a3d9: 0x6c0abe20, 0x3a3da: 0x6c15b020, 0x3a3db: 0x6c15b220, - 0x3a3dc: 0x6c15b420, 0x3a3dd: 0x6c15b620, 0x3a3de: 0x6c15b820, 0x3a3df: 0x6c15ba20, - 0x3a3e0: 0x6c15bc20, 0x3a3e1: 0x6c15be20, 0x3a3e2: 0x6c15c020, 0x3a3e3: 0x6c15c220, - 0x3a3e4: 0x6c15c420, 0x3a3e5: 0x6c15c620, 0x3a3e6: 0x6c15c820, 0x3a3e7: 0x6c15ca20, - 0x3a3e8: 0x6c15cc20, 0x3a3e9: 0x6c15ce20, 0x3a3ea: 0x6c284a20, 0x3a3eb: 0x6c284c20, - 0x3a3ec: 0x6c284e20, 0x3a3ed: 0x6c285020, 0x3a3ee: 0x6c285220, 0x3a3ef: 0x6c285420, - 0x3a3f0: 0x6c285620, 0x3a3f1: 0x6c285820, 0x3a3f2: 0x6c285a20, 0x3a3f3: 0x6c285c20, - 0x3a3f4: 0x6c285e20, 0x3a3f5: 0x6c286020, 0x3a3f6: 0x6c286220, 0x3a3f7: 0x6c286420, - 0x3a3f8: 0x6c286620, 0x3a3f9: 0x6c286820, 0x3a3fa: 0x6c286a20, 0x3a3fb: 0x6c286c20, - 0x3a3fc: 0x6c286e20, 0x3a3fd: 0x6c287020, 0x3a3fe: 0x6c287220, 0x3a3ff: 0x6c287420, - // Block 0xe90, offset 0x3a400 - 0x3a400: 0x6c287620, 0x3a401: 0x6c423e20, 0x3a402: 0x6c424020, 0x3a403: 0x6c424220, - 0x3a404: 0x6c424420, 0x3a405: 0x6c424620, 0x3a406: 0x6c424820, 0x3a407: 0x6c424a20, - 0x3a408: 0x6c424c20, 0x3a409: 0x6c424e20, 0x3a40a: 0x6c425020, 0x3a40b: 0x6c425220, - 0x3a40c: 0x6c425420, 0x3a40d: 0x6c425620, 0x3a40e: 0x6c425820, 0x3a40f: 0x6c425a20, - 0x3a410: 0x6c425c20, 0x3a411: 0x6c425e20, 0x3a412: 0x6c426020, 0x3a413: 0x6c426220, - 0x3a414: 0x6c426420, 0x3a415: 0x6c426620, 0x3a416: 0x6c426820, 0x3a417: 0x6c426a20, - 0x3a418: 0x6c62ee20, 0x3a419: 0x6c62f020, 0x3a41a: 0x6c62f220, 0x3a41b: 0x6c62f420, - 0x3a41c: 0x6c62f620, 0x3a41d: 0x6c62f820, 0x3a41e: 0x6c62fa20, 0x3a41f: 0x6c62fc20, - 0x3a420: 0x6c62fe20, 0x3a421: 0x6c630020, 0x3a422: 0x6c630220, 0x3a423: 0x6c630420, - 0x3a424: 0x6c630620, 0x3a425: 0x6c630820, 0x3a426: 0x6c630a20, 0x3a427: 0x6c630c20, - 0x3a428: 0x6c630e20, 0x3a429: 0x6c631020, 0x3a42a: 0x6c631220, 0x3a42b: 0x6c631420, - 0x3a42c: 0x6c631620, 0x3a42d: 0x6c631820, 0x3a42e: 0x6c631a20, 0x3a42f: 0x6c631c20, - 0x3a430: 0x6c631e20, 0x3a431: 0x6c632020, 0x3a432: 0x6c632220, 0x3a433: 0x6c632420, - 0x3a434: 0x6c6bf420, 0x3a435: 0x6c89da20, 0x3a436: 0x6c89dc20, 0x3a437: 0x6c89de20, - 0x3a438: 0x6c89e020, 0x3a439: 0x6c89e220, 0x3a43a: 0x6c89e420, 0x3a43b: 0x6c89e620, - 0x3a43c: 0x6c89e820, 0x3a43d: 0x6c89ea20, 0x3a43e: 0x6c89ec20, 0x3a43f: 0x6c89ee20, - // Block 0xe91, offset 0x3a440 - 0x3a440: 0x6c89f020, 0x3a441: 0x6c89f220, 0x3a442: 0x6c89f420, 0x3a443: 0x6c89f620, - 0x3a444: 0x6c89f820, 0x3a445: 0x6c89fa20, 0x3a446: 0x6c89fc20, 0x3a447: 0x6c89fe20, - 0x3a448: 0x6c8a0020, 0x3a449: 0x6c8a0220, 0x3a44a: 0x6c8a0420, 0x3a44b: 0x6c8a0620, - 0x3a44c: 0x6c8a0820, 0x3a44d: 0x6c8a0a20, 0x3a44e: 0x6c8a0c20, 0x3a44f: 0x6c8a0e20, - 0x3a450: 0x6c8a1020, 0x3a451: 0x6c8a1220, 0x3a452: 0x6c8a1420, 0x3a453: 0x6c8a1620, - 0x3a454: 0x6c8a1820, 0x3a455: 0x6c8a1a20, 0x3a456: 0x6c8a1c20, 0x3a457: 0x6c8a1e20, - 0x3a458: 0x6c8a2020, 0x3a459: 0x6c8a2220, 0x3a45a: 0x6c8a2420, 0x3a45b: 0x6c8a2620, - 0x3a45c: 0x6c8a2820, 0x3a45d: 0x6c8a2a20, 0x3a45e: 0x6cb60a20, 0x3a45f: 0x6cb60c20, - 0x3a460: 0x6cb60e20, 0x3a461: 0x6cb61020, 0x3a462: 0x6cb61220, 0x3a463: 0x6cb61420, - 0x3a464: 0x6cb61620, 0x3a465: 0x6cb61820, 0x3a466: 0x6cb61a20, 0x3a467: 0x6cb61c20, - 0x3a468: 0x6cb61e20, 0x3a469: 0x6cb62020, 0x3a46a: 0x6cb62220, 0x3a46b: 0x6cb62420, - 0x3a46c: 0x6cb62620, 0x3a46d: 0x6cb62820, 0x3a46e: 0x6cb62a20, 0x3a46f: 0x6cb62c20, - 0x3a470: 0x6cb62e20, 0x3a471: 0x6cb63020, 0x3a472: 0x6cb63220, 0x3a473: 0x6cb63420, - 0x3a474: 0x6cb63620, 0x3a475: 0x6cb63820, 0x3a476: 0x6cb63a20, 0x3a477: 0x6cb63c20, - 0x3a478: 0x6cb63e20, 0x3a479: 0x6cb64020, 0x3a47a: 0x6cb64220, 0x3a47b: 0x6cb64420, - 0x3a47c: 0x6cb64620, 0x3a47d: 0x6cb64820, 0x3a47e: 0x6cb64a20, 0x3a47f: 0x6cb64c20, - // Block 0xe92, offset 0x3a480 - 0x3a480: 0x6ce62a20, 0x3a481: 0x6ce62c20, 0x3a482: 0x6ce62e20, 0x3a483: 0x6ce63020, - 0x3a484: 0x6ce63220, 0x3a485: 0x6ce63420, 0x3a486: 0x6ce63620, 0x3a487: 0x6ce63820, - 0x3a488: 0x6ce63a20, 0x3a489: 0x6ce63c20, 0x3a48a: 0x6ce63e20, 0x3a48b: 0x6ce64020, - 0x3a48c: 0x6ce64220, 0x3a48d: 0x6ce64420, 0x3a48e: 0x6ce64620, 0x3a48f: 0x6ce64820, - 0x3a490: 0x6ce64a20, 0x3a491: 0x6ce64c20, 0x3a492: 0x6ce64e20, 0x3a493: 0x6ce65020, - 0x3a494: 0x6ce65220, 0x3a495: 0x6ce65420, 0x3a496: 0x6ce65620, 0x3a497: 0x6ce65820, - 0x3a498: 0x6ce65a20, 0x3a499: 0x6ce65c20, 0x3a49a: 0x6ce65e20, 0x3a49b: 0x6ce66020, - 0x3a49c: 0x6ce66220, 0x3a49d: 0x6ce66420, 0x3a49e: 0x6ce66620, 0x3a49f: 0x6ce66820, - 0x3a4a0: 0x6ce66a20, 0x3a4a1: 0x6ce66c20, 0x3a4a2: 0x6ce66e20, 0x3a4a3: 0x6ce67020, - 0x3a4a4: 0x6ce67220, 0x3a4a5: 0x6ce67420, 0x3a4a6: 0x6ce67620, 0x3a4a7: 0x6ce67820, - 0x3a4a8: 0x6ce67a20, 0x3a4a9: 0x6ce67c20, 0x3a4aa: 0x6ce67e20, 0x3a4ab: 0x6ce68020, - 0x3a4ac: 0x6ce68220, 0x3a4ad: 0x6ce68420, 0x3a4ae: 0x6d149e20, 0x3a4af: 0x6d14a020, - 0x3a4b0: 0x6d14a220, 0x3a4b1: 0x6d14a420, 0x3a4b2: 0x6d14a620, 0x3a4b3: 0x6d14a820, - 0x3a4b4: 0x6d14aa20, 0x3a4b5: 0x6d14ac20, 0x3a4b6: 0x6d14ae20, 0x3a4b7: 0x6d14b020, - 0x3a4b8: 0x6d14b220, 0x3a4b9: 0x6d14b420, 0x3a4ba: 0x6d14b620, 0x3a4bb: 0x6d14b820, - 0x3a4bc: 0x6d14ba20, 0x3a4bd: 0x6d14bc20, 0x3a4be: 0x6d14be20, 0x3a4bf: 0x6d14c020, - // Block 0xe93, offset 0x3a4c0 - 0x3a4c0: 0x6d14c220, 0x3a4c1: 0x6d14c420, 0x3a4c2: 0x6d14c620, 0x3a4c3: 0x6d14c820, - 0x3a4c4: 0x6d14ca20, 0x3a4c5: 0x6d14cc20, 0x3a4c6: 0x6d14ce20, 0x3a4c7: 0x6d14d020, - 0x3a4c8: 0x6d14d220, 0x3a4c9: 0x6d14d420, 0x3a4ca: 0x6d428420, 0x3a4cb: 0x6d428620, - 0x3a4cc: 0x6d428820, 0x3a4cd: 0x6d428a20, 0x3a4ce: 0x6d428c20, 0x3a4cf: 0x6d428e20, - 0x3a4d0: 0x6d429020, 0x3a4d1: 0x6d429220, 0x3a4d2: 0x6d429420, 0x3a4d3: 0x6d429620, - 0x3a4d4: 0x6d429820, 0x3a4d5: 0x6d429a20, 0x3a4d6: 0x6d429c20, 0x3a4d7: 0x6d429e20, - 0x3a4d8: 0x6d42a020, 0x3a4d9: 0x6d42a220, 0x3a4da: 0x6d42a420, 0x3a4db: 0x6d42a620, - 0x3a4dc: 0x6d42a820, 0x3a4dd: 0x6d42aa20, 0x3a4de: 0x6d42ac20, 0x3a4df: 0x6d42ae20, - 0x3a4e0: 0x6d42b020, 0x3a4e1: 0x6d42b220, 0x3a4e2: 0x6d42b420, 0x3a4e3: 0x6d42b620, - 0x3a4e4: 0x6d42b820, 0x3a4e5: 0x6d42ba20, 0x3a4e6: 0x6d42bc20, 0x3a4e7: 0x6d42be20, - 0x3a4e8: 0x6d42c020, 0x3a4e9: 0x6d42c220, 0x3a4ea: 0x6d6f9820, 0x3a4eb: 0x6d6f9a20, - 0x3a4ec: 0x6d6f9c20, 0x3a4ed: 0x6d6f9e20, 0x3a4ee: 0x6d6fa020, 0x3a4ef: 0x6d6fa220, - 0x3a4f0: 0x6d6fa420, 0x3a4f1: 0x6d6fa620, 0x3a4f2: 0x6d6fa820, 0x3a4f3: 0x6d6faa20, - 0x3a4f4: 0x6d6fac20, 0x3a4f5: 0x6d6fae20, 0x3a4f6: 0x6d6fb020, 0x3a4f7: 0x6d6fb220, - 0x3a4f8: 0x6d6fb420, 0x3a4f9: 0x6d6fb620, 0x3a4fa: 0x6d6fb820, 0x3a4fb: 0x6d6fba20, - 0x3a4fc: 0x6d6fbc20, 0x3a4fd: 0x6d6fbe20, 0x3a4fe: 0x6d6fc020, 0x3a4ff: 0x6d98a420, - // Block 0xe94, offset 0x3a500 - 0x3a500: 0x6d98a620, 0x3a501: 0x6d98a820, 0x3a502: 0x6d98aa20, 0x3a503: 0x6d98ac20, - 0x3a504: 0x6d98ae20, 0x3a505: 0x6d98b020, 0x3a506: 0x6d98b220, 0x3a507: 0x6d98b420, - 0x3a508: 0x6d98b620, 0x3a509: 0x6d98b820, 0x3a50a: 0x6d98ba20, 0x3a50b: 0x6d98bc20, - 0x3a50c: 0x6d98be20, 0x3a50d: 0x6dbba020, 0x3a50e: 0x6dbba220, 0x3a50f: 0x6dbba420, - 0x3a510: 0x6dbba620, 0x3a511: 0x6dbba820, 0x3a512: 0x6dbbaa20, 0x3a513: 0x6dbbac20, - 0x3a514: 0x6dbbae20, 0x3a515: 0x6dbbb020, 0x3a516: 0x6dd96c20, 0x3a517: 0x6dd96e20, - 0x3a518: 0x6dd97020, 0x3a519: 0x6dd97220, 0x3a51a: 0x6dd97420, 0x3a51b: 0x6dd97620, - 0x3a51c: 0x6dd97820, 0x3a51d: 0x6dd97a20, 0x3a51e: 0x6dd97c20, 0x3a51f: 0x6dd97e20, - 0x3a520: 0x6dd98020, 0x3a521: 0x6dd98220, 0x3a522: 0x6df1a620, 0x3a523: 0x6df1a820, - 0x3a524: 0x6df1aa20, 0x3a525: 0x6df1ac20, 0x3a526: 0x6e05de20, 0x3a527: 0x6e05e020, - 0x3a528: 0x6e05e220, 0x3a529: 0x6e05e420, 0x3a52a: 0x6e05e620, 0x3a52b: 0x6e05e820, - 0x3a52c: 0x6e169220, 0x3a52d: 0x6e169420, 0x3a52e: 0x6e23b820, 0x3a52f: 0x6e23ba20, - 0x3a530: 0x6e2dcc20, 0x3a531: 0x6e2dce20, 0x3a532: 0x6e3eb820, 0x3a533: 0x6e3eba20, - 0x3a534: 0x6e416220, 0x3a535: 0x6e416420, 0x3a536: 0x6d14de20, 0x3a537: 0x6d42cc20, - 0x3a538: 0x6d6fc220, 0x3a539: 0x6d6fc420, 0x3a53a: 0x6d6fc620, 0x3a53b: 0x6d6fc820, - 0x3a53c: 0x6d98c220, 0x3a53d: 0x6d98c420, 0x3a53e: 0x6d98c620, 0x3a53f: 0x6dbbb420, - // Block 0xe95, offset 0x3a540 - 0x3a540: 0x6dd98620, 0x3a541: 0x6dd98820, 0x3a542: 0x6e05ea20, 0x3a543: 0x6e05ec20, - 0x3a544: 0x6e23bc20, 0x3a545: 0x6c8a3c20, 0x3a546: 0x6c8a3e20, 0x3a547: 0x6c8a4020, - 0x3a548: 0x6cb66820, 0x3a549: 0x6cb66a20, 0x3a54a: 0x6cb66c20, 0x3a54b: 0x6cb66e20, - 0x3a54c: 0x6cb67020, 0x3a54d: 0x6cb67220, 0x3a54e: 0x6cb67420, 0x3a54f: 0x6cb67620, - 0x3a550: 0x6cb67820, 0x3a551: 0x6cb67a20, 0x3a552: 0x6ce6a020, 0x3a553: 0x6ce6a220, - 0x3a554: 0x6ce6a420, 0x3a555: 0x6ce6a620, 0x3a556: 0x6ce6a820, 0x3a557: 0x6ce6aa20, - 0x3a558: 0x6ce6ac20, 0x3a559: 0x6ce6ae20, 0x3a55a: 0x6ce6b020, 0x3a55b: 0x6ce6b220, - 0x3a55c: 0x6ce6b420, 0x3a55d: 0x6ce6b620, 0x3a55e: 0x6ce6b820, 0x3a55f: 0x6ce6ba20, - 0x3a560: 0x6d14f420, 0x3a561: 0x6d14f620, 0x3a562: 0x6d14f820, 0x3a563: 0x6d14fa20, - 0x3a564: 0x6d14fc20, 0x3a565: 0x6d14fe20, 0x3a566: 0x6d150020, 0x3a567: 0x6d150220, - 0x3a568: 0x6d150420, 0x3a569: 0x6d150620, 0x3a56a: 0x6d150820, 0x3a56b: 0x6d150a20, - 0x3a56c: 0x6d150c20, 0x3a56d: 0x6d150e20, 0x3a56e: 0x6d151020, 0x3a56f: 0x6d151220, - 0x3a570: 0x6d151420, 0x3a571: 0x6d151620, 0x3a572: 0x6d42d820, 0x3a573: 0x6d42da20, - 0x3a574: 0x6d42dc20, 0x3a575: 0x6d42de20, 0x3a576: 0x6d42e020, 0x3a577: 0x6d42e220, - 0x3a578: 0x6d42e420, 0x3a579: 0x6d42e620, 0x3a57a: 0x6d42e820, 0x3a57b: 0x6d42ea20, - 0x3a57c: 0x6d42ec20, 0x3a57d: 0x6d42ee20, 0x3a57e: 0x6d42f020, 0x3a57f: 0x6d42f220, - // Block 0xe96, offset 0x3a580 - 0x3a580: 0x6d42f420, 0x3a581: 0x6d42f620, 0x3a582: 0x6d42f820, 0x3a583: 0x6d42fa20, - 0x3a584: 0x6d42fc20, 0x3a585: 0x6d42fe20, 0x3a586: 0x6d430020, 0x3a587: 0x6d430220, - 0x3a588: 0x6d430420, 0x3a589: 0x6d430620, 0x3a58a: 0x6d430820, 0x3a58b: 0x6d6fd220, - 0x3a58c: 0x6d6fd420, 0x3a58d: 0x6d6fd620, 0x3a58e: 0x6d6fd820, 0x3a58f: 0x6d6fda20, - 0x3a590: 0x6d6fdc20, 0x3a591: 0x6d6fde20, 0x3a592: 0x6d6fe020, 0x3a593: 0x6d6fe220, - 0x3a594: 0x6d6fe420, 0x3a595: 0x6d6fe620, 0x3a596: 0x6d6fe820, 0x3a597: 0x6d6fea20, - 0x3a598: 0x6d6fec20, 0x3a599: 0x6d6fee20, 0x3a59a: 0x6d6ff020, 0x3a59b: 0x6d6ff220, - 0x3a59c: 0x6d6ff420, 0x3a59d: 0x6d6ff620, 0x3a59e: 0x6d6ff820, 0x3a59f: 0x6d6ffa20, - 0x3a5a0: 0x6d98d020, 0x3a5a1: 0x6d98d220, 0x3a5a2: 0x6d98d420, 0x3a5a3: 0x6d98d620, - 0x3a5a4: 0x6d98d820, 0x3a5a5: 0x6d98da20, 0x3a5a6: 0x6d98dc20, 0x3a5a7: 0x6d98de20, - 0x3a5a8: 0x6d98e020, 0x3a5a9: 0x6d98e220, 0x3a5aa: 0x6d98e420, 0x3a5ab: 0x6d98e620, - 0x3a5ac: 0x6d98e820, 0x3a5ad: 0x6d98ea20, 0x3a5ae: 0x6d98ec20, 0x3a5af: 0x6d98ee20, - 0x3a5b0: 0x6d98f020, 0x3a5b1: 0x6d98f220, 0x3a5b2: 0x6d98f420, 0x3a5b3: 0x6d98f620, - 0x3a5b4: 0x6d98f820, 0x3a5b5: 0x6d98fa20, 0x3a5b6: 0x6d98fc20, 0x3a5b7: 0x6d98fe20, - 0x3a5b8: 0x6d990020, 0x3a5b9: 0x6d990220, 0x3a5ba: 0x6d990420, 0x3a5bb: 0x6d990620, - 0x3a5bc: 0x6d990820, 0x3a5bd: 0x6d990a20, 0x3a5be: 0x6d990c20, 0x3a5bf: 0x6dbbbc20, - // Block 0xe97, offset 0x3a5c0 - 0x3a5c0: 0x6dbbbe20, 0x3a5c1: 0x6dbbc020, 0x3a5c2: 0x6dbbc220, 0x3a5c3: 0x6dbbc420, - 0x3a5c4: 0x6dbbc620, 0x3a5c5: 0x6dbbc820, 0x3a5c6: 0x6dbbca20, 0x3a5c7: 0x6dbbcc20, - 0x3a5c8: 0x6dbbce20, 0x3a5c9: 0x6dbbd020, 0x3a5ca: 0x6dbbd220, 0x3a5cb: 0x6dbbd420, - 0x3a5cc: 0x6dbbd620, 0x3a5cd: 0x6dbbd820, 0x3a5ce: 0x6dbbda20, 0x3a5cf: 0x6dbbdc20, - 0x3a5d0: 0x6dbbde20, 0x3a5d1: 0x6dbbe020, 0x3a5d2: 0x6dbbe220, 0x3a5d3: 0x6dbbe420, - 0x3a5d4: 0x6dbbe620, 0x3a5d5: 0x6dbbe820, 0x3a5d6: 0x6dbbea20, 0x3a5d7: 0x6dd9a020, - 0x3a5d8: 0x6dd9a220, 0x3a5d9: 0x6dd9a420, 0x3a5da: 0x6dd9a620, 0x3a5db: 0x6dd9a820, - 0x3a5dc: 0x6dd9aa20, 0x3a5dd: 0x6dd9ac20, 0x3a5de: 0x6dd9ae20, 0x3a5df: 0x6dd9b020, - 0x3a5e0: 0x6dd9b220, 0x3a5e1: 0x6dd9b420, 0x3a5e2: 0x6dd9b620, 0x3a5e3: 0x6dd9b820, - 0x3a5e4: 0x6df1b420, 0x3a5e5: 0x6df1b620, 0x3a5e6: 0x6df1b820, 0x3a5e7: 0x6df1ba20, - 0x3a5e8: 0x6df1bc20, 0x3a5e9: 0x6df1be20, 0x3a5ea: 0x6df1c020, 0x3a5eb: 0x6df1c220, - 0x3a5ec: 0x6df1c420, 0x3a5ed: 0x6df1c620, 0x3a5ee: 0x6df1c820, 0x3a5ef: 0x6df1ca20, - 0x3a5f0: 0x6df1cc20, 0x3a5f1: 0x6df1ce20, 0x3a5f2: 0x6df1d020, 0x3a5f3: 0x6df1d220, - 0x3a5f4: 0x6e05f420, 0x3a5f5: 0x6e05f620, 0x3a5f6: 0x6e05f820, 0x3a5f7: 0x6e05fa20, - 0x3a5f8: 0x6e05fc20, 0x3a5f9: 0x6e05fe20, 0x3a5fa: 0x6e060020, 0x3a5fb: 0x6e060220, - 0x3a5fc: 0x6e060420, 0x3a5fd: 0x6e060620, 0x3a5fe: 0x6e060820, 0x3a5ff: 0x6e060a20, - // Block 0xe98, offset 0x3a600 - 0x3a600: 0x6e060c20, 0x3a601: 0x6e060e20, 0x3a602: 0x6e061020, 0x3a603: 0x6e061220, - 0x3a604: 0x6e061420, 0x3a605: 0x6e061620, 0x3a606: 0x6e061820, 0x3a607: 0x6e169820, - 0x3a608: 0x6e169a20, 0x3a609: 0x6e169c20, 0x3a60a: 0x6e169e20, 0x3a60b: 0x6e16a020, - 0x3a60c: 0x6e16a220, 0x3a60d: 0x6e16a420, 0x3a60e: 0x6e16a620, 0x3a60f: 0x6e16a820, - 0x3a610: 0x6e16aa20, 0x3a611: 0x6e16ac20, 0x3a612: 0x6e16ae20, 0x3a613: 0x6e23c020, - 0x3a614: 0x6e23c220, 0x3a615: 0x6e23c420, 0x3a616: 0x6e23c620, 0x3a617: 0x6e23c820, - 0x3a618: 0x6e23ca20, 0x3a619: 0x6e23cc20, 0x3a61a: 0x6e23ce20, 0x3a61b: 0x6e23d020, - 0x3a61c: 0x6e2dd020, 0x3a61d: 0x6e2dd220, 0x3a61e: 0x6e2dd420, 0x3a61f: 0x6e2dd620, - 0x3a620: 0x6e2dd820, 0x3a621: 0x6e2dda20, 0x3a622: 0x6e2ddc20, 0x3a623: 0x6e2dde20, - 0x3a624: 0x6e2de020, 0x3a625: 0x6e2de220, 0x3a626: 0x6e2de420, 0x3a627: 0x6e358420, - 0x3a628: 0x6e358620, 0x3a629: 0x6e358820, 0x3a62a: 0x6e358a20, 0x3a62b: 0x6e358c20, - 0x3a62c: 0x6e3afc20, 0x3a62d: 0x6e3afe20, 0x3a62e: 0x6e3b0020, 0x3a62f: 0x6e3ebc20, - 0x3a630: 0x6e3ebe20, 0x3a631: 0x6e3ec020, 0x3a632: 0x6e435e20, 0x3a633: 0x6e436020, - 0x3a634: 0x6e464820, 0x3a635: 0x6e46ee20, 0x3a636: 0x6c632c20, 0x3a637: 0x6c8a4220, - 0x3a638: 0x6c8a4420, 0x3a639: 0x6cb68420, 0x3a63a: 0x6cb68620, 0x3a63b: 0x6cb68820, - 0x3a63c: 0x6cb68a20, 0x3a63d: 0x6cb68c20, 0x3a63e: 0x6cb68e20, 0x3a63f: 0x6cb69020, - // Block 0xe99, offset 0x3a640 - 0x3a640: 0x6cb69220, 0x3a641: 0x6cb69420, 0x3a642: 0x6ce6d220, 0x3a643: 0x6ce6d420, - 0x3a644: 0x6ce6d620, 0x3a645: 0x6ce6d820, 0x3a646: 0x6ce6da20, 0x3a647: 0x6ce6dc20, - 0x3a648: 0x6ce6de20, 0x3a649: 0x6ce6e020, 0x3a64a: 0x6ce6e220, 0x3a64b: 0x6ce6e420, - 0x3a64c: 0x6ce6e620, 0x3a64d: 0x6ce6e820, 0x3a64e: 0x6ce6ea20, 0x3a64f: 0x6ce6ec20, - 0x3a650: 0x6ce6ee20, 0x3a651: 0x6ce6f020, 0x3a652: 0x6d153020, 0x3a653: 0x6d153220, - 0x3a654: 0x6d153420, 0x3a655: 0x6d153620, 0x3a656: 0x6d153820, 0x3a657: 0x6d153a20, - 0x3a658: 0x6d153c20, 0x3a659: 0x6d153e20, 0x3a65a: 0x6d154020, 0x3a65b: 0x6d154220, - 0x3a65c: 0x6d154420, 0x3a65d: 0x6d154620, 0x3a65e: 0x6d154820, 0x3a65f: 0x6d154a20, - 0x3a660: 0x6d154c20, 0x3a661: 0x6d154e20, 0x3a662: 0x6d432220, 0x3a663: 0x6d432420, - 0x3a664: 0x6d432620, 0x3a665: 0x6d432820, 0x3a666: 0x6d432a20, 0x3a667: 0x6d432c20, - 0x3a668: 0x6d432e20, 0x3a669: 0x6d433020, 0x3a66a: 0x6d433220, 0x3a66b: 0x6d433420, - 0x3a66c: 0x6d433620, 0x3a66d: 0x6d433820, 0x3a66e: 0x6d433a20, 0x3a66f: 0x6d433c20, - 0x3a670: 0x6d433e20, 0x3a671: 0x6d434020, 0x3a672: 0x6d434220, 0x3a673: 0x6d434420, - 0x3a674: 0x6d434620, 0x3a675: 0x6d434820, 0x3a676: 0x6d434a20, 0x3a677: 0x6d701420, - 0x3a678: 0x6d701620, 0x3a679: 0x6d701820, 0x3a67a: 0x6d701a20, 0x3a67b: 0x6d701c20, - 0x3a67c: 0x6d701e20, 0x3a67d: 0x6d702020, 0x3a67e: 0x6d702220, 0x3a67f: 0x6d702420, - // Block 0xe9a, offset 0x3a680 - 0x3a680: 0x6d702620, 0x3a681: 0x6d702820, 0x3a682: 0x6d702a20, 0x3a683: 0x6d702c20, - 0x3a684: 0x6d702e20, 0x3a685: 0x6d703020, 0x3a686: 0x6d703220, 0x3a687: 0x6d703420, - 0x3a688: 0x6d703620, 0x3a689: 0x6d703820, 0x3a68a: 0x6d703a20, 0x3a68b: 0x6d703c20, - 0x3a68c: 0x6d703e20, 0x3a68d: 0x6d704020, 0x3a68e: 0x6d704220, 0x3a68f: 0x6d704420, - 0x3a690: 0x6d704620, 0x3a691: 0x6d704820, 0x3a692: 0x6d993020, 0x3a693: 0x6d993220, - 0x3a694: 0x6d993420, 0x3a695: 0x6d993620, 0x3a696: 0x6d993820, 0x3a697: 0x6d993a20, - 0x3a698: 0x6d993c20, 0x3a699: 0x6d993e20, 0x3a69a: 0x6d994020, 0x3a69b: 0x6d994220, - 0x3a69c: 0x6d994420, 0x3a69d: 0x6d994620, 0x3a69e: 0x6d994820, 0x3a69f: 0x6d994a20, - 0x3a6a0: 0x6d994c20, 0x3a6a1: 0x6d994e20, 0x3a6a2: 0x6d995020, 0x3a6a3: 0x6d995220, - 0x3a6a4: 0x6d995420, 0x3a6a5: 0x6d995620, 0x3a6a6: 0x6d995820, 0x3a6a7: 0x6d995a20, - 0x3a6a8: 0x6d995c20, 0x3a6a9: 0x6d995e20, 0x3a6aa: 0x6d996020, 0x3a6ab: 0x6d996220, - 0x3a6ac: 0x6d996420, 0x3a6ad: 0x6d996620, 0x3a6ae: 0x6d996820, 0x3a6af: 0x6d996a20, - 0x3a6b0: 0x6d996c20, 0x3a6b1: 0x6d996e20, 0x3a6b2: 0x6d997020, 0x3a6b3: 0x6d997220, - 0x3a6b4: 0x6d997420, 0x3a6b5: 0x6dbc0c20, 0x3a6b6: 0x6dbc0e20, 0x3a6b7: 0x6dbc1020, - 0x3a6b8: 0x6dbc1220, 0x3a6b9: 0x6dbc1420, 0x3a6ba: 0x6dbc1620, 0x3a6bb: 0x6dbc1820, - 0x3a6bc: 0x6dbc1a20, 0x3a6bd: 0x6dbc1c20, 0x3a6be: 0x6dd9d220, 0x3a6bf: 0x6dbc1e20, - // Block 0xe9b, offset 0x3a6c0 - 0x3a6c0: 0x6dbc2020, 0x3a6c1: 0x6dbc2220, 0x3a6c2: 0x6dbc2420, 0x3a6c3: 0x6dbc2620, - 0x3a6c4: 0x6dbc2820, 0x3a6c5: 0x6dbc2a20, 0x3a6c6: 0x6dbc2c20, 0x3a6c7: 0x6dbc2e20, - 0x3a6c8: 0x6dbc3020, 0x3a6c9: 0x6dbc3220, 0x3a6ca: 0x6dbc3420, 0x3a6cb: 0x6dbc3620, - 0x3a6cc: 0x6dbc3820, 0x3a6cd: 0x6dbc3a20, 0x3a6ce: 0x6dbc3c20, 0x3a6cf: 0x6dbc3e20, - 0x3a6d0: 0x6dbc4020, 0x3a6d1: 0x6dbc4220, 0x3a6d2: 0x6dbc4420, 0x3a6d3: 0x6dbc4620, - 0x3a6d4: 0x6dbc4820, 0x3a6d5: 0x6dbc4a20, 0x3a6d6: 0x6dbc4c20, 0x3a6d7: 0x6dd9d420, - 0x3a6d8: 0x6dd9d620, 0x3a6d9: 0x6dd9d820, 0x3a6da: 0x6dd9da20, 0x3a6db: 0x6dd9dc20, - 0x3a6dc: 0x6dd9de20, 0x3a6dd: 0x6dd9e020, 0x3a6de: 0x6dd9e220, 0x3a6df: 0x6dd9e420, - 0x3a6e0: 0x6dd9e620, 0x3a6e1: 0x6dd9e820, 0x3a6e2: 0x6dd9ea20, 0x3a6e3: 0x6dd9ec20, - 0x3a6e4: 0x6dd9ee20, 0x3a6e5: 0x6dd9f020, 0x3a6e6: 0x6dd9f220, 0x3a6e7: 0x6dd9f420, - 0x3a6e8: 0x6dd9f620, 0x3a6e9: 0x6dd9f820, 0x3a6ea: 0x6dd9fa20, 0x3a6eb: 0x6dd9fc20, - 0x3a6ec: 0x6dd9fe20, 0x3a6ed: 0x6dda0020, 0x3a6ee: 0x6db8fa20, 0x3a6ef: 0x6dda0220, - 0x3a6f0: 0x6dda0420, 0x3a6f1: 0x6dda0620, 0x3a6f2: 0x6dda0820, 0x3a6f3: 0x6dda0a20, - 0x3a6f4: 0x6dda0c20, 0x3a6f5: 0x6dda0e20, 0x3a6f6: 0x6dda1020, 0x3a6f7: 0x6dda1220, - 0x3a6f8: 0x6dda1420, 0x3a6f9: 0x6dda1620, 0x3a6fa: 0x6dda1820, 0x3a6fb: 0x6df1ee20, - 0x3a6fc: 0x6df1f020, 0x3a6fd: 0x6df1f220, 0x3a6fe: 0x6df1f420, 0x3a6ff: 0x6df1f620, - // Block 0xe9c, offset 0x3a700 - 0x3a700: 0x6df1f820, 0x3a701: 0x6df1fa20, 0x3a702: 0x6df1fc20, 0x3a703: 0x6df1fe20, - 0x3a704: 0x6df20020, 0x3a705: 0x6df20220, 0x3a706: 0x6df20420, 0x3a707: 0x6df20620, - 0x3a708: 0x6df20820, 0x3a709: 0x6df20a20, 0x3a70a: 0x6df20c20, 0x3a70b: 0x6df20e20, - 0x3a70c: 0x6df21020, 0x3a70d: 0x6df21220, 0x3a70e: 0x6df21420, 0x3a70f: 0x6df21620, - 0x3a710: 0x6df21820, 0x3a711: 0x6df21a20, 0x3a712: 0x6df21c20, 0x3a713: 0x6df21e20, - 0x3a714: 0x6df22020, 0x3a715: 0x6df22220, 0x3a716: 0x6df22420, 0x3a717: 0x6df22620, - 0x3a718: 0x6df22820, 0x3a719: 0x6df22a20, 0x3a71a: 0x6df22c20, 0x3a71b: 0x6df22e20, - 0x3a71c: 0x6df23020, 0x3a71d: 0x6e062a20, 0x3a71e: 0x6e062c20, 0x3a71f: 0x6e062e20, - 0x3a720: 0x6e063020, 0x3a721: 0x6e063220, 0x3a722: 0x6e063420, 0x3a723: 0x6e063620, - 0x3a724: 0x6e063820, 0x3a725: 0x6e063a20, 0x3a726: 0x6e063c20, 0x3a727: 0x6e063e20, - 0x3a728: 0x6e064020, 0x3a729: 0x6e064220, 0x3a72a: 0x6e064420, 0x3a72b: 0x6e064620, - 0x3a72c: 0x6e064820, 0x3a72d: 0x6e064a20, 0x3a72e: 0x6e064c20, 0x3a72f: 0x6e064e20, - 0x3a730: 0x6e065020, 0x3a731: 0x6e065220, 0x3a732: 0x6e065420, 0x3a733: 0x6e065620, - 0x3a734: 0x6e065820, 0x3a735: 0x6e065a20, 0x3a736: 0x6e065c20, 0x3a737: 0x6e065e20, - 0x3a738: 0x6e066020, 0x3a739: 0x6e066220, 0x3a73a: 0x6e066420, 0x3a73b: 0x6e066620, - 0x3a73c: 0x6e16c020, 0x3a73d: 0x6e16c220, 0x3a73e: 0x6e16c420, 0x3a73f: 0x6e16c620, - // Block 0xe9d, offset 0x3a740 - 0x3a740: 0x6e16c820, 0x3a741: 0x6e16ca20, 0x3a742: 0x6e16cc20, 0x3a743: 0x6e16ce20, - 0x3a744: 0x6e16d020, 0x3a745: 0x6e16d220, 0x3a746: 0x6e16d420, 0x3a747: 0x6e16d620, - 0x3a748: 0x6e16d820, 0x3a749: 0x6e16da20, 0x3a74a: 0x6e16dc20, 0x3a74b: 0x6e16de20, - 0x3a74c: 0x6e16e020, 0x3a74d: 0x6e16e220, 0x3a74e: 0x6e16e420, 0x3a74f: 0x6e16e620, - 0x3a750: 0x6e16e820, 0x3a751: 0x6e23e220, 0x3a752: 0x6e23e420, 0x3a753: 0x6e23e620, - 0x3a754: 0x6e23e820, 0x3a755: 0x6e23ea20, 0x3a756: 0x6e23ec20, 0x3a757: 0x6e23ee20, - 0x3a758: 0x6e23f020, 0x3a759: 0x6e23f220, 0x3a75a: 0x6e23f420, 0x3a75b: 0x6e23f620, - 0x3a75c: 0x6e23f820, 0x3a75d: 0x6e23fa20, 0x3a75e: 0x6e23fc20, 0x3a75f: 0x6e23fe20, - 0x3a760: 0x6e240020, 0x3a761: 0x6e240220, 0x3a762: 0x6e240420, 0x3a763: 0x6e240620, - 0x3a764: 0x6e2dec20, 0x3a765: 0x6e2dee20, 0x3a766: 0x6e2df020, 0x3a767: 0x6e2df220, - 0x3a768: 0x6e2df420, 0x3a769: 0x6e2df620, 0x3a76a: 0x6e2df820, 0x3a76b: 0x6e2dfa20, - 0x3a76c: 0x6e2dfc20, 0x3a76d: 0x6e359e20, 0x3a76e: 0x6e35a020, 0x3a76f: 0x6e35a220, - 0x3a770: 0x6e35a420, 0x3a771: 0x6e35a620, 0x3a772: 0x6e35a820, 0x3a773: 0x6e35aa20, - 0x3a774: 0x6e35ac20, 0x3a775: 0x6e3b0620, 0x3a776: 0x6e3b0820, 0x3a777: 0x6e3b0a20, - 0x3a778: 0x6e3b0c20, 0x3a779: 0x6e3b0e20, 0x3a77a: 0x6e3b1020, 0x3a77b: 0x6e3b1220, - 0x3a77c: 0x6e3b1420, 0x3a77d: 0x6e3b1620, 0x3a77e: 0x6e3b1820, 0x3a77f: 0x6e3ec420, - // Block 0xe9e, offset 0x3a780 - 0x3a780: 0x6e3ec620, 0x3a781: 0x6e3ec820, 0x3a782: 0x6e3eca20, 0x3a783: 0x6e3ecc20, - 0x3a784: 0x6e3ece20, 0x3a785: 0x6e3ed020, 0x3a786: 0x6e3ed220, 0x3a787: 0x6e3ed420, - 0x3a788: 0x6e436220, 0x3a789: 0x6e436420, 0x3a78a: 0x6e44a820, 0x3a78b: 0x6e44aa20, - 0x3a78c: 0x6e44ac20, 0x3a78d: 0x6e44ae20, 0x3a78e: 0x6e44b020, 0x3a78f: 0x6e45e820, - 0x3a790: 0x6e464a20, 0x3a791: 0x6e464c20, 0x3a792: 0x6e471820, 0x3a793: 0x6e472420, - 0x3a794: 0x6e473820, 0x3a795: 0x6cb69820, 0x3a796: 0x6ce6fa20, 0x3a797: 0x6ce6fc20, - 0x3a798: 0x6d155820, 0x3a799: 0x6d155a20, 0x3a79a: 0x6d155c20, 0x3a79b: 0x6d155e20, - 0x3a79c: 0x6d435620, 0x3a79d: 0x6d997e20, 0x3a79e: 0x6d998020, 0x3a79f: 0x6dbc5420, - 0x3a7a0: 0x6dda1e20, 0x3a7a1: 0x6df23620, 0x3a7a2: 0x6e067020, 0x3a7a3: 0x6e16ec20, - 0x3a7a4: 0x6e35b220, 0x3a7a5: 0x6e3b1a20, 0x3a7a6: 0x6c8a4820, 0x3a7a7: 0x6c8a4a20, - 0x3a7a8: 0x6c8a4c20, 0x3a7a9: 0x6cb6a020, 0x3a7aa: 0x6cb6a220, 0x3a7ab: 0x6cb6a420, - 0x3a7ac: 0x6cb6a620, 0x3a7ad: 0x6ce70220, 0x3a7ae: 0x6ce70420, 0x3a7af: 0x6ce70620, - 0x3a7b0: 0x6ce70820, 0x3a7b1: 0x6ce70a20, 0x3a7b2: 0x6ce70c20, 0x3a7b3: 0x6ce70e20, - 0x3a7b4: 0x6ce71020, 0x3a7b5: 0x6d156420, 0x3a7b6: 0x6d156620, 0x3a7b7: 0x6d435820, - 0x3a7b8: 0x6d705420, 0x3a7b9: 0x6d705620, 0x3a7ba: 0x6d705820, 0x3a7bb: 0x6d705a20, - 0x3a7bc: 0x6d998420, 0x3a7bd: 0x6dda2020, 0x3a7be: 0x6e067420, 0x3a7bf: 0x6e067620, - // Block 0xe9f, offset 0x3a7c0 - 0x3a7c0: 0x6e067820, 0x3a7c1: 0x6e067a20, 0x3a7c2: 0x6e3ed620, 0x3a7c3: 0x6ce71220, - 0x3a7c4: 0x6ce71420, 0x3a7c5: 0x6ce71620, 0x3a7c6: 0x6d156e20, 0x3a7c7: 0x6d157020, - 0x3a7c8: 0x6d157220, 0x3a7c9: 0x6d157420, 0x3a7ca: 0x6d157620, 0x3a7cb: 0x6d157820, - 0x3a7cc: 0x6d157a20, 0x3a7cd: 0x6d436420, 0x3a7ce: 0x6d436620, 0x3a7cf: 0x6d436820, - 0x3a7d0: 0x6d436a20, 0x3a7d1: 0x6d436c20, 0x3a7d2: 0x6d436e20, 0x3a7d3: 0x6d437020, - 0x3a7d4: 0x6d437220, 0x3a7d5: 0x6d437420, 0x3a7d6: 0x6d437620, 0x3a7d7: 0x6d437820, - 0x3a7d8: 0x6d437a20, 0x3a7d9: 0x6d706020, 0x3a7da: 0x6d706220, 0x3a7db: 0x6d706420, - 0x3a7dc: 0x6d706620, 0x3a7dd: 0x6d706820, 0x3a7de: 0x6d706a20, 0x3a7df: 0x6d706c20, - 0x3a7e0: 0x6d706e20, 0x3a7e1: 0x6d998c20, 0x3a7e2: 0x6d998e20, 0x3a7e3: 0x6d999020, - 0x3a7e4: 0x6d999220, 0x3a7e5: 0x6d999420, 0x3a7e6: 0x6d999620, 0x3a7e7: 0x6d999820, - 0x3a7e8: 0x6d999a20, 0x3a7e9: 0x6d999c20, 0x3a7ea: 0x6d999e20, 0x3a7eb: 0x6dbc5820, - 0x3a7ec: 0x6dbc5a20, 0x3a7ed: 0x6dbc5c20, 0x3a7ee: 0x6dbc5e20, 0x3a7ef: 0x6dbc6020, - 0x3a7f0: 0x6dbc6220, 0x3a7f1: 0x6dbc6420, 0x3a7f2: 0x6dda2220, 0x3a7f3: 0x6dda2420, - 0x3a7f4: 0x6dda2620, 0x3a7f5: 0x6dda2820, 0x3a7f6: 0x6dda2a20, 0x3a7f7: 0x6dda2c20, - 0x3a7f8: 0x6df23c20, 0x3a7f9: 0x6df23e20, 0x3a7fa: 0x6df24020, 0x3a7fb: 0x6e067e20, - 0x3a7fc: 0x6e068020, 0x3a7fd: 0x6e068220, 0x3a7fe: 0x6e068420, 0x3a7ff: 0x6e068620, - // Block 0xea0, offset 0x3a800 - 0x3a800: 0x6e068820, 0x3a801: 0x6e16f620, 0x3a802: 0x6e16f820, 0x3a803: 0x6e16fa20, - 0x3a804: 0x6e16fc20, 0x3a805: 0x6e16fe20, 0x3a806: 0x6e170020, 0x3a807: 0x6e170220, - 0x3a808: 0x6e170420, 0x3a809: 0x6e170620, 0x3a80a: 0x6e241020, 0x3a80b: 0x6e241220, - 0x3a80c: 0x6e2e0020, 0x3a80d: 0x6e2e0220, 0x3a80e: 0x6e2e0420, 0x3a80f: 0x6e2e0620, - 0x3a810: 0x6e2e0820, 0x3a811: 0x6e35b620, 0x3a812: 0x6e35b820, 0x3a813: 0x6e3b1e20, - 0x3a814: 0x6e3ed820, 0x3a815: 0x6e3eda20, 0x3a816: 0x6e417020, 0x3a817: 0x6e417220, - 0x3a818: 0x6e417420, 0x3a819: 0x6e436620, 0x3a81a: 0x6e436820, 0x3a81b: 0x6cb6aa20, - 0x3a81c: 0x6cb6ac20, 0x3a81d: 0x6ce72c20, 0x3a81e: 0x6ce72e20, 0x3a81f: 0x6ce73020, - 0x3a820: 0x6ce73220, 0x3a821: 0x6d159820, 0x3a822: 0x6d159a20, 0x3a823: 0x6d159c20, - 0x3a824: 0x6d159e20, 0x3a825: 0x6d15a020, 0x3a826: 0x6d15a220, 0x3a827: 0x6d15a420, - 0x3a828: 0x6d15a620, 0x3a829: 0x6d15a820, 0x3a82a: 0x6d15aa20, 0x3a82b: 0x6d15ac20, - 0x3a82c: 0x6d15ae20, 0x3a82d: 0x6d15b020, 0x3a82e: 0x6d15b220, 0x3a82f: 0x6d15b420, - 0x3a830: 0x6d15b620, 0x3a831: 0x6d15b820, 0x3a832: 0x6d15ba20, 0x3a833: 0x6d15bc20, - 0x3a834: 0x6d15be20, 0x3a835: 0x6d15c020, 0x3a836: 0x6d15c220, 0x3a837: 0x6d15c420, - 0x3a838: 0x6d43a420, 0x3a839: 0x6d43a620, 0x3a83a: 0x6d43a820, 0x3a83b: 0x6d43aa20, - 0x3a83c: 0x6d43ac20, 0x3a83d: 0x6d43ae20, 0x3a83e: 0x6d43b020, 0x3a83f: 0x6d43b220, - // Block 0xea1, offset 0x3a840 - 0x3a840: 0x6d43b420, 0x3a841: 0x6d43b620, 0x3a842: 0x6d43b820, 0x3a843: 0x6d43ba20, - 0x3a844: 0x6d43bc20, 0x3a845: 0x6d43be20, 0x3a846: 0x6d43c020, 0x3a847: 0x6d43c220, - 0x3a848: 0x6d43c420, 0x3a849: 0x6d43c620, 0x3a84a: 0x6d43c820, 0x3a84b: 0x6d43ca20, - 0x3a84c: 0x6d43cc20, 0x3a84d: 0x6d43ce20, 0x3a84e: 0x6d43d020, 0x3a84f: 0x6d43d220, - 0x3a850: 0x6d708c20, 0x3a851: 0x6d708e20, 0x3a852: 0x6d709020, 0x3a853: 0x6d709220, - 0x3a854: 0x6d709420, 0x3a855: 0x6d709620, 0x3a856: 0x6d709820, 0x3a857: 0x6d709a20, - 0x3a858: 0x6d709c20, 0x3a859: 0x6d709e20, 0x3a85a: 0x6d70a020, 0x3a85b: 0x6d70a220, - 0x3a85c: 0x6d70a420, 0x3a85d: 0x6d70a620, 0x3a85e: 0x6d70a820, 0x3a85f: 0x6d70aa20, - 0x3a860: 0x6d70ac20, 0x3a861: 0x6d70ae20, 0x3a862: 0x6d70b020, 0x3a863: 0x6d70b220, - 0x3a864: 0x6d70b420, 0x3a865: 0x6d70b620, 0x3a866: 0x6d70b820, 0x3a867: 0x6d70ba20, - 0x3a868: 0x6d70bc20, 0x3a869: 0x6d99c020, 0x3a86a: 0x6d99c220, 0x3a86b: 0x6d99c420, - 0x3a86c: 0x6d99c620, 0x3a86d: 0x6d99c820, 0x3a86e: 0x6d99ca20, 0x3a86f: 0x6d99cc20, - 0x3a870: 0x6d99ce20, 0x3a871: 0x6d99d020, 0x3a872: 0x6d99d220, 0x3a873: 0x6d99d420, - 0x3a874: 0x6d99d620, 0x3a875: 0x6d99d820, 0x3a876: 0x6d99da20, 0x3a877: 0x6d99dc20, - 0x3a878: 0x6d99de20, 0x3a879: 0x6d99e020, 0x3a87a: 0x6d99e220, 0x3a87b: 0x6d99e420, - 0x3a87c: 0x6d99e620, 0x3a87d: 0x6d99e820, 0x3a87e: 0x6d99ea20, 0x3a87f: 0x6dbc8420, - // Block 0xea2, offset 0x3a880 - 0x3a880: 0x6dbc8620, 0x3a881: 0x6dbc8820, 0x3a882: 0x6dbc8a20, 0x3a883: 0x6dbc8c20, - 0x3a884: 0x6dbc8e20, 0x3a885: 0x6dbc9020, 0x3a886: 0x6dbc9220, 0x3a887: 0x6dbc9420, - 0x3a888: 0x6dbc9620, 0x3a889: 0x6dbc9820, 0x3a88a: 0x6dbc9a20, 0x3a88b: 0x6dbc9c20, - 0x3a88c: 0x6dbc9e20, 0x3a88d: 0x6dbca020, 0x3a88e: 0x6dbca220, 0x3a88f: 0x6dbca420, - 0x3a890: 0x6dbca620, 0x3a891: 0x6dbca820, 0x3a892: 0x6dbcaa20, 0x3a893: 0x6dbcac20, - 0x3a894: 0x6dbcae20, 0x3a895: 0x6dbcb020, 0x3a896: 0x6dbcb220, 0x3a897: 0x6dbcb420, - 0x3a898: 0x6dbcb620, 0x3a899: 0x6dbcb820, 0x3a89a: 0x6dbcba20, 0x3a89b: 0x6dbcbc20, - 0x3a89c: 0x6dbcbe20, 0x3a89d: 0x6dbcc020, 0x3a89e: 0x6dbcc220, 0x3a89f: 0x6dda5c20, - 0x3a8a0: 0x6dda5e20, 0x3a8a1: 0x6dda6020, 0x3a8a2: 0x6dda6220, 0x3a8a3: 0x6dda6420, - 0x3a8a4: 0x6dda6620, 0x3a8a5: 0x6dda6820, 0x3a8a6: 0x6dda6a20, 0x3a8a7: 0x6dda6c20, - 0x3a8a8: 0x6dda6e20, 0x3a8a9: 0x6dda7020, 0x3a8aa: 0x6dda7220, 0x3a8ab: 0x6dda7420, - 0x3a8ac: 0x6dda7620, 0x3a8ad: 0x6dda7820, 0x3a8ae: 0x6dda7a20, 0x3a8af: 0x6dda7c20, - 0x3a8b0: 0x6dda7e20, 0x3a8b1: 0x6dda8020, 0x3a8b2: 0x6dda8220, 0x3a8b3: 0x6dda8420, - 0x3a8b4: 0x6dda8620, 0x3a8b5: 0x6dda8820, 0x3a8b6: 0x6dda8a20, 0x3a8b7: 0x6dda8c20, - 0x3a8b8: 0x6dda8e20, 0x3a8b9: 0x6dda9020, 0x3a8ba: 0x6dda9220, 0x3a8bb: 0x6dda9420, - 0x3a8bc: 0x6dda9620, 0x3a8bd: 0x6dda9820, 0x3a8be: 0x6dda9a20, 0x3a8bf: 0x6dda9c20, - // Block 0xea3, offset 0x3a8c0 - 0x3a8c0: 0x6dda9e20, 0x3a8c1: 0x6ddaa020, 0x3a8c2: 0x6ddaa220, 0x3a8c3: 0x6df25e20, - 0x3a8c4: 0x6df26020, 0x3a8c5: 0x6df26220, 0x3a8c6: 0x6df26420, 0x3a8c7: 0x6df26620, - 0x3a8c8: 0x6df26820, 0x3a8c9: 0x6df26a20, 0x3a8ca: 0x6df26c20, 0x3a8cb: 0x6df26e20, - 0x3a8cc: 0x6df27020, 0x3a8cd: 0x6df27220, 0x3a8ce: 0x6df27420, 0x3a8cf: 0x6df27620, - 0x3a8d0: 0x6df27820, 0x3a8d1: 0x6df27a20, 0x3a8d2: 0x6df27c20, 0x3a8d3: 0x6df27e20, - 0x3a8d4: 0x6df28020, 0x3a8d5: 0x6df28220, 0x3a8d6: 0x6df28420, 0x3a8d7: 0x6df28620, - 0x3a8d8: 0x6df28820, 0x3a8d9: 0x6df28a20, 0x3a8da: 0x6df28c20, 0x3a8db: 0x6df28e20, - 0x3a8dc: 0x6df29020, 0x3a8dd: 0x6df29220, 0x3a8de: 0x6df29420, 0x3a8df: 0x6df29620, - 0x3a8e0: 0x6df29820, 0x3a8e1: 0x6df29a20, 0x3a8e2: 0x6df29c20, 0x3a8e3: 0x6df29e20, - 0x3a8e4: 0x6df2a020, 0x3a8e5: 0x6df2a220, 0x3a8e6: 0x6e069820, 0x3a8e7: 0x6e069a20, - 0x3a8e8: 0x6e069c20, 0x3a8e9: 0x6e069e20, 0x3a8ea: 0x6e06a020, 0x3a8eb: 0x6e06a220, - 0x3a8ec: 0x6e06a420, 0x3a8ed: 0x6e06a620, 0x3a8ee: 0x6e06a820, 0x3a8ef: 0x6e06aa20, - 0x3a8f0: 0x6e06ac20, 0x3a8f1: 0x6e06ae20, 0x3a8f2: 0x6e06b020, 0x3a8f3: 0x6e06b220, - 0x3a8f4: 0x6e06b420, 0x3a8f5: 0x6e06b620, 0x3a8f6: 0x6e06b820, 0x3a8f7: 0x6e06ba20, - 0x3a8f8: 0x6e06bc20, 0x3a8f9: 0x6e06be20, 0x3a8fa: 0x6e06c020, 0x3a8fb: 0x6e06c220, - 0x3a8fc: 0x6e06c420, 0x3a8fd: 0x6e06c620, 0x3a8fe: 0x6e06c820, 0x3a8ff: 0x6e06ca20, - // Block 0xea4, offset 0x3a900 - 0x3a900: 0x6e06cc20, 0x3a901: 0x6e06ce20, 0x3a902: 0x6e06d020, 0x3a903: 0x6e171e20, - 0x3a904: 0x6e172020, 0x3a905: 0x6e172220, 0x3a906: 0x6e172420, 0x3a907: 0x6e172620, - 0x3a908: 0x6e172820, 0x3a909: 0x6e172a20, 0x3a90a: 0x6e172c20, 0x3a90b: 0x6e172e20, - 0x3a90c: 0x6e173020, 0x3a90d: 0x6e173220, 0x3a90e: 0x6e173420, 0x3a90f: 0x6e173620, - 0x3a910: 0x6e173820, 0x3a911: 0x6e173a20, 0x3a912: 0x6e173c20, 0x3a913: 0x6e242020, - 0x3a914: 0x6e242220, 0x3a915: 0x6e242420, 0x3a916: 0x6e242620, 0x3a917: 0x6e242820, - 0x3a918: 0x6e242a20, 0x3a919: 0x6e242c20, 0x3a91a: 0x6e242e20, 0x3a91b: 0x6e243020, - 0x3a91c: 0x6e243220, 0x3a91d: 0x6e243420, 0x3a91e: 0x6e243620, 0x3a91f: 0x6e243820, - 0x3a920: 0x6e243a20, 0x3a921: 0x6e243c20, 0x3a922: 0x6e243e20, 0x3a923: 0x6e244020, - 0x3a924: 0x6e244220, 0x3a925: 0x6e2e1220, 0x3a926: 0x6e2e1420, 0x3a927: 0x6e2e1620, - 0x3a928: 0x6e2e1820, 0x3a929: 0x6e2e1a20, 0x3a92a: 0x6e2e1c20, 0x3a92b: 0x6e2e1e20, - 0x3a92c: 0x6e2e2020, 0x3a92d: 0x6e2e2220, 0x3a92e: 0x6e2e2420, 0x3a92f: 0x6e2e2620, - 0x3a930: 0x6e2e2820, 0x3a931: 0x6e2e2a20, 0x3a932: 0x6e35c220, 0x3a933: 0x6e35c420, - 0x3a934: 0x6e35c620, 0x3a935: 0x6e35c820, 0x3a936: 0x6e35ca20, 0x3a937: 0x6e35cc20, - 0x3a938: 0x6e3b2420, 0x3a939: 0x6e3b2620, 0x3a93a: 0x6e3b2820, 0x3a93b: 0x6e3b9e20, - 0x3a93c: 0x6e3b2a20, 0x3a93d: 0x6e3b2c20, 0x3a93e: 0x6e3b2e20, 0x3a93f: 0x6e3ee220, - // Block 0xea5, offset 0x3a940 - 0x3a940: 0x6e3ee420, 0x3a941: 0x6e3ee620, 0x3a942: 0x6e3ee820, 0x3a943: 0x6e3eea20, - 0x3a944: 0x6e3eec20, 0x3a945: 0x6e3eee20, 0x3a946: 0x6e3ef020, 0x3a947: 0x6e417820, - 0x3a948: 0x6e436a20, 0x3a949: 0x6e436c20, 0x3a94a: 0x6e436e20, 0x3a94b: 0x6e457020, - 0x3a94c: 0x6e464e20, 0x3a94d: 0x6e465020, 0x3a94e: 0x6e469420, 0x3a94f: 0x6e469620, - 0x3a950: 0x6e46b620, 0x3a951: 0x6e471a20, 0x3a952: 0x6ce73620, 0x3a953: 0x6d15c820, - 0x3a954: 0x6d15ca20, 0x3a955: 0x6d15cc20, 0x3a956: 0x6d15ce20, 0x3a957: 0x6d15d020, - 0x3a958: 0x6d43e420, 0x3a959: 0x6d43e620, 0x3a95a: 0x6d43e820, 0x3a95b: 0x6d43ea20, - 0x3a95c: 0x6d43ec20, 0x3a95d: 0x6d43ee20, 0x3a95e: 0x6d43f020, 0x3a95f: 0x6d43f220, - 0x3a960: 0x6d43f420, 0x3a961: 0x6d43f620, 0x3a962: 0x6d43f820, 0x3a963: 0x6d43fa20, - 0x3a964: 0x6d70c820, 0x3a965: 0x6d70ca20, 0x3a966: 0x6d70cc20, 0x3a967: 0x6d70ce20, - 0x3a968: 0x6d70d020, 0x3a969: 0x6d70d220, 0x3a96a: 0x6d70d420, 0x3a96b: 0x6d70d620, - 0x3a96c: 0x6d70d820, 0x3a96d: 0x6d70da20, 0x3a96e: 0x6d70dc20, 0x3a96f: 0x6d99f020, - 0x3a970: 0x6d99f220, 0x3a971: 0x6d99f420, 0x3a972: 0x6d99f620, 0x3a973: 0x6d99f820, - 0x3a974: 0x6d99fa20, 0x3a975: 0x6d99fc20, 0x3a976: 0x6d99fe20, 0x3a977: 0x6d9a0020, - 0x3a978: 0x6dbccc20, 0x3a979: 0x6dbcce20, 0x3a97a: 0x6dbcd020, 0x3a97b: 0x6dbcd220, - 0x3a97c: 0x6dbcd420, 0x3a97d: 0x6dbcd620, 0x3a97e: 0x6dbcd820, 0x3a97f: 0x6dbcda20, - // Block 0xea6, offset 0x3a980 - 0x3a980: 0x6dbcdc20, 0x3a981: 0x6dbcde20, 0x3a982: 0x6dbce020, 0x3a983: 0x6dbce220, - 0x3a984: 0x6dbce420, 0x3a985: 0x6ddab420, 0x3a986: 0x6ddab620, 0x3a987: 0x6ddab820, - 0x3a988: 0x6ddaba20, 0x3a989: 0x6ddabc20, 0x3a98a: 0x6ddabe20, 0x3a98b: 0x6ddac020, - 0x3a98c: 0x6ddac220, 0x3a98d: 0x6ddac420, 0x3a98e: 0x6ddac620, 0x3a98f: 0x6df2b020, - 0x3a990: 0x6df2b220, 0x3a991: 0x6df2b420, 0x3a992: 0x6df2b620, 0x3a993: 0x6df2b820, - 0x3a994: 0x6df2ba20, 0x3a995: 0x6df2bc20, 0x3a996: 0x6df2be20, 0x3a997: 0x6df2c020, - 0x3a998: 0x6e06d820, 0x3a999: 0x6e06da20, 0x3a99a: 0x6e06dc20, 0x3a99b: 0x6e06de20, - 0x3a99c: 0x6e06e020, 0x3a99d: 0x6e06e220, 0x3a99e: 0x6e06e420, 0x3a99f: 0x6e06e620, - 0x3a9a0: 0x6e174620, 0x3a9a1: 0x6e174820, 0x3a9a2: 0x6e174a20, 0x3a9a3: 0x6e174c20, - 0x3a9a4: 0x6e174e20, 0x3a9a5: 0x6e175020, 0x3a9a6: 0x6e175220, 0x3a9a7: 0x6e175420, - 0x3a9a8: 0x6e244a20, 0x3a9a9: 0x6e244c20, 0x3a9aa: 0x6e244e20, 0x3a9ab: 0x6e245020, - 0x3a9ac: 0x6e245220, 0x3a9ad: 0x6e245420, 0x3a9ae: 0x6e2e2e20, 0x3a9af: 0x6e2e3020, - 0x3a9b0: 0x6e2e3220, 0x3a9b1: 0x6e2e3420, 0x3a9b2: 0x6e35d220, 0x3a9b3: 0x6e35d420, - 0x3a9b4: 0x6e3b3020, 0x3a9b5: 0x6e3ef220, 0x3a9b6: 0x6e417a20, 0x3a9b7: 0x6e417c20, - 0x3a9b8: 0x6e417e20, 0x3a9b9: 0x6e437020, 0x3a9ba: 0x6e44b420, 0x3a9bb: 0x6e44b620, - 0x3a9bc: 0x6c428220, 0x3a9bd: 0x6c633820, 0x3a9be: 0x6c633a20, 0x3a9bf: 0x6d15d820, - // Block 0xea7, offset 0x3a9c0 - 0x3a9c0: 0x6d15da20, 0x3a9c1: 0x6d15e220, 0x3a9c2: 0x6d15e420, 0x3a9c3: 0x6d70e420, - 0x3a9c4: 0x6d9a0620, 0x3a9c5: 0x6dbcec20, 0x3a9c6: 0x6dbcee20, 0x3a9c7: 0x6dbcf020, - 0x3a9c8: 0x6ddac820, 0x3a9c9: 0x6df2c820, 0x3a9ca: 0x6df2ca20, 0x3a9cb: 0x6e06ec20, - 0x3a9cc: 0x6e175820, 0x3a9cd: 0x6e06ee20, 0x3a9ce: 0x6e06f020, 0x3a9cf: 0x6e175a20, - 0x3a9d0: 0x6e175c20, 0x3a9d1: 0x6e245620, 0x3a9d2: 0x6e245820, 0x3a9d3: 0x6e245a20, - 0x3a9d4: 0x6e2e3820, 0x3a9d5: 0x6e2e3a20, 0x3a9d6: 0x6e3b3220, 0x3a9d7: 0x6ce74220, - 0x3a9d8: 0x6d15ec20, 0x3a9d9: 0x6d15ee20, 0x3a9da: 0x6d440820, 0x3a9db: 0x6d440a20, - 0x3a9dc: 0x6d440c20, 0x3a9dd: 0x6d440e20, 0x3a9de: 0x6d70e620, 0x3a9df: 0x6d70e820, - 0x3a9e0: 0x6d70ea20, 0x3a9e1: 0x6d70ec20, 0x3a9e2: 0x6d70ee20, 0x3a9e3: 0x6d70f020, - 0x3a9e4: 0x6d70f220, 0x3a9e5: 0x6d70f420, 0x3a9e6: 0x6d70f620, 0x3a9e7: 0x6d9a0e20, - 0x3a9e8: 0x6d9a1020, 0x3a9e9: 0x6d9a1220, 0x3a9ea: 0x6d9a1420, 0x3a9eb: 0x6d9a1620, - 0x3a9ec: 0x6d9a1820, 0x3a9ed: 0x6dbcf220, 0x3a9ee: 0x6dbcf420, 0x3a9ef: 0x6dbcf620, - 0x3a9f0: 0x6dbcf820, 0x3a9f1: 0x6ddad020, 0x3a9f2: 0x6ddad220, 0x3a9f3: 0x6ddad420, - 0x3a9f4: 0x6ddad620, 0x3a9f5: 0x6df2d420, 0x3a9f6: 0x6df2d620, 0x3a9f7: 0x6df2d820, - 0x3a9f8: 0x6df2da20, 0x3a9f9: 0x6e06f820, 0x3a9fa: 0x6e06fa20, 0x3a9fb: 0x6e06fc20, - 0x3a9fc: 0x6e06fe20, 0x3a9fd: 0x6e070020, 0x3a9fe: 0x6e070220, 0x3a9ff: 0x6e175e20, - // Block 0xea8, offset 0x3aa00 - 0x3aa00: 0x6e176020, 0x3aa01: 0x6e176220, 0x3aa02: 0x6e245e20, 0x3aa03: 0x6e246020, - 0x3aa04: 0x6e246220, 0x3aa05: 0x6e246420, 0x3aa06: 0x6e246620, 0x3aa07: 0x6e2e3e20, - 0x3aa08: 0x6e35d820, 0x3aa09: 0x6e418020, 0x3aa0a: 0x6e469820, 0x3aa0b: 0x6c634220, - 0x3aa0c: 0x6cb6b820, 0x3aa0d: 0x6cb6ba20, 0x3aa0e: 0x6cb6bc20, 0x3aa0f: 0x6cb6be20, - 0x3aa10: 0x6ce75020, 0x3aa11: 0x6ce75220, 0x3aa12: 0x6ce75420, 0x3aa13: 0x6ce75620, - 0x3aa14: 0x6ce75820, 0x3aa15: 0x6ce75a20, 0x3aa16: 0x6ce75c20, 0x3aa17: 0x6ce75e20, - 0x3aa18: 0x6ce76020, 0x3aa19: 0x6d160e20, 0x3aa1a: 0x6d161020, 0x3aa1b: 0x6d161220, - 0x3aa1c: 0x6d161420, 0x3aa1d: 0x6d161620, 0x3aa1e: 0x6d161820, 0x3aa1f: 0x6d161a20, - 0x3aa20: 0x6d161c20, 0x3aa21: 0x6d161e20, 0x3aa22: 0x6d162020, 0x3aa23: 0x6d162220, - 0x3aa24: 0x6d162420, 0x3aa25: 0x6d162620, 0x3aa26: 0x6d162820, 0x3aa27: 0x6d162a20, - 0x3aa28: 0x6d162c20, 0x3aa29: 0x6d162e20, 0x3aa2a: 0x6d163020, 0x3aa2b: 0x6d163220, - 0x3aa2c: 0x6d163420, 0x3aa2d: 0x6d163620, 0x3aa2e: 0x6d163820, 0x3aa2f: 0x6d163a20, - 0x3aa30: 0x6d443220, 0x3aa31: 0x6d443420, 0x3aa32: 0x6d443620, 0x3aa33: 0x6d443820, - 0x3aa34: 0x6d443a20, 0x3aa35: 0x6d443c20, 0x3aa36: 0x6d443e20, 0x3aa37: 0x6d444020, - 0x3aa38: 0x6d444220, 0x3aa39: 0x6d444420, 0x3aa3a: 0x6d444620, 0x3aa3b: 0x6d444820, - 0x3aa3c: 0x6d444a20, 0x3aa3d: 0x6d444c20, 0x3aa3e: 0x6d444e20, 0x3aa3f: 0x6d445020, - // Block 0xea9, offset 0x3aa40 - 0x3aa40: 0x6d445220, 0x3aa41: 0x6d445420, 0x3aa42: 0x6d445620, 0x3aa43: 0x6d445820, - 0x3aa44: 0x6d445a20, 0x3aa45: 0x6d445c20, 0x3aa46: 0x6d445e20, 0x3aa47: 0x6d446020, - 0x3aa48: 0x6d446220, 0x3aa49: 0x6d446420, 0x3aa4a: 0x6d446620, 0x3aa4b: 0x6d446820, - 0x3aa4c: 0x6d446a20, 0x3aa4d: 0x6d446c20, 0x3aa4e: 0x6d446e20, 0x3aa4f: 0x6d712020, - 0x3aa50: 0x6d712220, 0x3aa51: 0x6d712420, 0x3aa52: 0x6d712620, 0x3aa53: 0x6d712820, - 0x3aa54: 0x6d712a20, 0x3aa55: 0x6d712c20, 0x3aa56: 0x6d712e20, 0x3aa57: 0x6d713020, - 0x3aa58: 0x6d713220, 0x3aa59: 0x6d713420, 0x3aa5a: 0x6d713620, 0x3aa5b: 0x6d713820, - 0x3aa5c: 0x6d713a20, 0x3aa5d: 0x6d713c20, 0x3aa5e: 0x6d713e20, 0x3aa5f: 0x6d714020, - 0x3aa60: 0x6d714220, 0x3aa61: 0x6d714420, 0x3aa62: 0x6d714620, 0x3aa63: 0x6d714820, - 0x3aa64: 0x6d714a20, 0x3aa65: 0x6d714c20, 0x3aa66: 0x6d714e20, 0x3aa67: 0x6d715020, - 0x3aa68: 0x6d715220, 0x3aa69: 0x6d715420, 0x3aa6a: 0x6d715620, 0x3aa6b: 0x6d715820, - 0x3aa6c: 0x6d715a20, 0x3aa6d: 0x6d715c20, 0x3aa6e: 0x6d9a5020, 0x3aa6f: 0x6d9a5220, - 0x3aa70: 0x6d9a5420, 0x3aa71: 0x6d9a5620, 0x3aa72: 0x6d9a5820, 0x3aa73: 0x6d9a5a20, - 0x3aa74: 0x6d9a5c20, 0x3aa75: 0x6d9a5e20, 0x3aa76: 0x6d9a6020, 0x3aa77: 0x6d9a6220, - 0x3aa78: 0x6d9a6420, 0x3aa79: 0x6d9a6620, 0x3aa7a: 0x6d9a6820, 0x3aa7b: 0x6d9a6a20, - 0x3aa7c: 0x6d9a6c20, 0x3aa7d: 0x6d9a6e20, 0x3aa7e: 0x6d9a7020, 0x3aa7f: 0x6d9a7220, - // Block 0xeaa, offset 0x3aa80 - 0x3aa80: 0x6d9a7420, 0x3aa81: 0x6d9a7620, 0x3aa82: 0x6d9a7820, 0x3aa83: 0x6d9a7a20, - 0x3aa84: 0x6d9a7c20, 0x3aa85: 0x6d9a7e20, 0x3aa86: 0x6d9a8020, 0x3aa87: 0x6d9a8220, - 0x3aa88: 0x6d9a8420, 0x3aa89: 0x6d9a8620, 0x3aa8a: 0x6d9a8820, 0x3aa8b: 0x6d9a8a20, - 0x3aa8c: 0x6d9a8c20, 0x3aa8d: 0x6d9a8e20, 0x3aa8e: 0x6d9a9020, 0x3aa8f: 0x6d9a9220, - 0x3aa90: 0x6d9a9420, 0x3aa91: 0x6d9a9620, 0x3aa92: 0x6d9a9820, 0x3aa93: 0x6d9a9a20, - 0x3aa94: 0x6d9a9c20, 0x3aa95: 0x6d9a9e20, 0x3aa96: 0x6d9aa020, 0x3aa97: 0x6d9aa220, - 0x3aa98: 0x6d9aa420, 0x3aa99: 0x6d9aa620, 0x3aa9a: 0x6d9aa820, 0x3aa9b: 0x6d9aaa20, - 0x3aa9c: 0x6d9aac20, 0x3aa9d: 0x6dbd2220, 0x3aa9e: 0x6dbd2420, 0x3aa9f: 0x6dbd2620, - 0x3aaa0: 0x6dbd2820, 0x3aaa1: 0x6dbd2a20, 0x3aaa2: 0x6dbd2c20, 0x3aaa3: 0x6dbd2e20, - 0x3aaa4: 0x6dbd3020, 0x3aaa5: 0x6dbd3220, 0x3aaa6: 0x6dbd3420, 0x3aaa7: 0x6dbd3620, - 0x3aaa8: 0x6dbd3820, 0x3aaa9: 0x6dbd3a20, 0x3aaaa: 0x6dbd3c20, 0x3aaab: 0x6dbd3e20, - 0x3aaac: 0x6dbd4020, 0x3aaad: 0x6dbd4220, 0x3aaae: 0x6dbd4420, 0x3aaaf: 0x6dbd4620, - 0x3aab0: 0x6dbd4820, 0x3aab1: 0x6dbd4a20, 0x3aab2: 0x6dbd4c20, 0x3aab3: 0x6dbd4e20, - 0x3aab4: 0x6dbd5020, 0x3aab5: 0x6dbd5220, 0x3aab6: 0x6dbd5420, 0x3aab7: 0x6dbd5620, - 0x3aab8: 0x6dbd5820, 0x3aab9: 0x6dbd5a20, 0x3aaba: 0x6dbd5c20, 0x3aabb: 0x6dbd5e20, - 0x3aabc: 0x6dbd6020, 0x3aabd: 0x6dbd6220, 0x3aabe: 0x6dbd6420, 0x3aabf: 0x6dbd6620, - // Block 0xeab, offset 0x3aac0 - 0x3aac0: 0x6ddb0820, 0x3aac1: 0x6ddb0a20, 0x3aac2: 0x6ddb0c20, 0x3aac3: 0x6ddb0e20, - 0x3aac4: 0x6ddb1020, 0x3aac5: 0x6ddb1220, 0x3aac6: 0x6ddb1420, 0x3aac7: 0x6ddb1620, - 0x3aac8: 0x6ddb1820, 0x3aac9: 0x6ddb1a20, 0x3aaca: 0x6ddb1c20, 0x3aacb: 0x6ddb1e20, - 0x3aacc: 0x6ddb2020, 0x3aacd: 0x6ddb2220, 0x3aace: 0x6ddb2420, 0x3aacf: 0x6ddb2620, - 0x3aad0: 0x6ddb2820, 0x3aad1: 0x6ddb2a20, 0x3aad2: 0x6ddb2c20, 0x3aad3: 0x6ddb2e20, - 0x3aad4: 0x6ddb3020, 0x3aad5: 0x6ddb3220, 0x3aad6: 0x6ddb3420, 0x3aad7: 0x6ddb3620, - 0x3aad8: 0x6ddb3820, 0x3aad9: 0x6df30220, 0x3aada: 0x6df30420, 0x3aadb: 0x6df30620, - 0x3aadc: 0x6df30820, 0x3aadd: 0x6df30a20, 0x3aade: 0x6df30c20, 0x3aadf: 0x6df30e20, - 0x3aae0: 0x6df31020, 0x3aae1: 0x6df31220, 0x3aae2: 0x6df31420, 0x3aae3: 0x6df31620, - 0x3aae4: 0x6df31820, 0x3aae5: 0x6df31a20, 0x3aae6: 0x6df31c20, 0x3aae7: 0x6df31e20, - 0x3aae8: 0x6df32020, 0x3aae9: 0x6df32220, 0x3aaea: 0x6df32420, 0x3aaeb: 0x6df32620, - 0x3aaec: 0x6df32820, 0x3aaed: 0x6df32a20, 0x3aaee: 0x6df32c20, 0x3aaef: 0x6df32e20, - 0x3aaf0: 0x6df33020, 0x3aaf1: 0x6df33220, 0x3aaf2: 0x6df33420, 0x3aaf3: 0x6e071820, - 0x3aaf4: 0x6e071a20, 0x3aaf5: 0x6e071c20, 0x3aaf6: 0x6e071e20, 0x3aaf7: 0x6e072020, - 0x3aaf8: 0x6e072220, 0x3aaf9: 0x6e072420, 0x3aafa: 0x6e072620, 0x3aafb: 0x6e072820, - 0x3aafc: 0x6e072a20, 0x3aafd: 0x6e072c20, 0x3aafe: 0x6e072e20, 0x3aaff: 0x6e073020, - // Block 0xeac, offset 0x3ab00 - 0x3ab00: 0x6e073220, 0x3ab01: 0x6e073420, 0x3ab02: 0x6e073620, 0x3ab03: 0x6e073820, - 0x3ab04: 0x6e073a20, 0x3ab05: 0x6e073c20, 0x3ab06: 0x6e073e20, 0x3ab07: 0x6e074020, - 0x3ab08: 0x6e074220, 0x3ab09: 0x6e177c20, 0x3ab0a: 0x6e177e20, 0x3ab0b: 0x6e178020, - 0x3ab0c: 0x6e178220, 0x3ab0d: 0x6e178420, 0x3ab0e: 0x6e178620, 0x3ab0f: 0x6e178820, - 0x3ab10: 0x6e178a20, 0x3ab11: 0x6e178c20, 0x3ab12: 0x6e178e20, 0x3ab13: 0x6e179020, - 0x3ab14: 0x6e179220, 0x3ab15: 0x6e179420, 0x3ab16: 0x6e179620, 0x3ab17: 0x6e179820, - 0x3ab18: 0x6e179a20, 0x3ab19: 0x6e179c20, 0x3ab1a: 0x6e179e20, 0x3ab1b: 0x6e17a020, - 0x3ab1c: 0x6e17a220, 0x3ab1d: 0x6e17a420, 0x3ab1e: 0x6e17a620, 0x3ab1f: 0x6e247420, - 0x3ab20: 0x6e247620, 0x3ab21: 0x6e247820, 0x3ab22: 0x6e247a20, 0x3ab23: 0x6e247c20, - 0x3ab24: 0x6e247e20, 0x3ab25: 0x6e248020, 0x3ab26: 0x6e248220, 0x3ab27: 0x6e248420, - 0x3ab28: 0x6e248620, 0x3ab29: 0x6e248820, 0x3ab2a: 0x6e248a20, 0x3ab2b: 0x6e248c20, - 0x3ab2c: 0x6e2e4820, 0x3ab2d: 0x6e2e4a20, 0x3ab2e: 0x6e2e4c20, 0x3ab2f: 0x6e2e4e20, - 0x3ab30: 0x6e2e5020, 0x3ab31: 0x6e2e5220, 0x3ab32: 0x6e2e5420, 0x3ab33: 0x6e2e5620, - 0x3ab34: 0x6e2e5820, 0x3ab35: 0x6e2e5a20, 0x3ab36: 0x6e2e5c20, 0x3ab37: 0x6e2e5e20, - 0x3ab38: 0x6e2e6020, 0x3ab39: 0x6e2e6220, 0x3ab3a: 0x6e2e6420, 0x3ab3b: 0x6e2e6620, - 0x3ab3c: 0x6e2e6820, 0x3ab3d: 0x6e2e6a20, 0x3ab3e: 0x6e35e020, 0x3ab3f: 0x6e35e220, - // Block 0xead, offset 0x3ab40 - 0x3ab40: 0x6e35e420, 0x3ab41: 0x6e35e620, 0x3ab42: 0x6e35e820, 0x3ab43: 0x6e35ea20, - 0x3ab44: 0x6e35ec20, 0x3ab45: 0x6e35ee20, 0x3ab46: 0x6e3b3c20, 0x3ab47: 0x6e3b3e20, - 0x3ab48: 0x6e3b4020, 0x3ab49: 0x6e3ef420, 0x3ab4a: 0x6e3ef620, 0x3ab4b: 0x6e3ef820, - 0x3ab4c: 0x6e3efa20, 0x3ab4d: 0x6e3efc20, 0x3ab4e: 0x6e3efe20, 0x3ab4f: 0x6e418620, - 0x3ab50: 0x6e418820, 0x3ab51: 0x6e418a20, 0x3ab52: 0x6e44b820, 0x3ab53: 0x6e44ba20, - 0x3ab54: 0x6e460020, 0x3ab55: 0x6d447420, 0x3ab56: 0x6d447620, 0x3ab57: 0x6df33a20, - 0x3ab58: 0x6cb6ce20, 0x3ab59: 0x6cb6d020, 0x3ab5a: 0x6ce77e20, 0x3ab5b: 0x6ce78020, - 0x3ab5c: 0x6ce78220, 0x3ab5d: 0x6ce78420, 0x3ab5e: 0x6ce78620, 0x3ab5f: 0x6ce78820, - 0x3ab60: 0x6ce78a20, 0x3ab61: 0x6ce78c20, 0x3ab62: 0x6d165c20, 0x3ab63: 0x6d165e20, - 0x3ab64: 0x6d166020, 0x3ab65: 0x6d166220, 0x3ab66: 0x6d166420, 0x3ab67: 0x6d166620, - 0x3ab68: 0x6d166820, 0x3ab69: 0x6d166a20, 0x3ab6a: 0x6d166c20, 0x3ab6b: 0x6d166e20, - 0x3ab6c: 0x6d167020, 0x3ab6d: 0x6d167220, 0x3ab6e: 0x6d167420, 0x3ab6f: 0x6d167620, - 0x3ab70: 0x6cf59620, 0x3ab71: 0x6d167820, 0x3ab72: 0x6d167a20, 0x3ab73: 0x6d167c20, - 0x3ab74: 0x6d449420, 0x3ab75: 0x6d449620, 0x3ab76: 0x6d449820, 0x3ab77: 0x6d449a20, - 0x3ab78: 0x6d449c20, 0x3ab79: 0x6d449e20, 0x3ab7a: 0x6d44a020, 0x3ab7b: 0x6d44a220, - 0x3ab7c: 0x6d44a420, 0x3ab7d: 0x6d44a620, 0x3ab7e: 0x6d44a820, 0x3ab7f: 0x6d44aa20, - // Block 0xeae, offset 0x3ab80 - 0x3ab80: 0x6d44ac20, 0x3ab81: 0x6d44ae20, 0x3ab82: 0x6d44b020, 0x3ab83: 0x6d44b220, - 0x3ab84: 0x6d717620, 0x3ab85: 0x6d717820, 0x3ab86: 0x6d717a20, 0x3ab87: 0x6d717c20, - 0x3ab88: 0x6d717e20, 0x3ab89: 0x6d718020, 0x3ab8a: 0x6d718220, 0x3ab8b: 0x6d718420, - 0x3ab8c: 0x6d718620, 0x3ab8d: 0x6d718820, 0x3ab8e: 0x6d718a20, 0x3ab8f: 0x6d718c20, - 0x3ab90: 0x6d718e20, 0x3ab91: 0x6d719020, 0x3ab92: 0x6d719220, 0x3ab93: 0x6d9aca20, - 0x3ab94: 0x6d9acc20, 0x3ab95: 0x6d9ace20, 0x3ab96: 0x6d9ad020, 0x3ab97: 0x6d9ad220, - 0x3ab98: 0x6d9ad420, 0x3ab99: 0x6d9ad620, 0x3ab9a: 0x6d9ad820, 0x3ab9b: 0x6d9ada20, - 0x3ab9c: 0x6d9adc20, 0x3ab9d: 0x6d9ade20, 0x3ab9e: 0x6d9ae020, 0x3ab9f: 0x6d9ae220, - 0x3aba0: 0x6d9ae420, 0x3aba1: 0x6d9ae620, 0x3aba2: 0x6d9ae820, 0x3aba3: 0x6d9aea20, - 0x3aba4: 0x6d9aec20, 0x3aba5: 0x6d9aee20, 0x3aba6: 0x6d9af020, 0x3aba7: 0x6d9af220, - 0x3aba8: 0x6dbd7c20, 0x3aba9: 0x6dbd7e20, 0x3abaa: 0x6dbd8020, 0x3abab: 0x6dbd8220, - 0x3abac: 0x6dbd8420, 0x3abad: 0x6dbd8620, 0x3abae: 0x6dbd8820, 0x3abaf: 0x6dbd8a20, - 0x3abb0: 0x6dbd8c20, 0x3abb1: 0x6dbd8e20, 0x3abb2: 0x6dbd9020, 0x3abb3: 0x6dbd9220, - 0x3abb4: 0x6dbd9420, 0x3abb5: 0x6dbd9620, 0x3abb6: 0x6dbd9820, 0x3abb7: 0x6dbd9a20, - 0x3abb8: 0x6dbd9c20, 0x3abb9: 0x6dbd9e20, 0x3abba: 0x6dbda020, 0x3abbb: 0x6dbda220, - 0x3abbc: 0x6dbda420, 0x3abbd: 0x6dbda620, 0x3abbe: 0x6dbda820, 0x3abbf: 0x6dbdaa20, - // Block 0xeaf, offset 0x3abc0 - 0x3abc0: 0x6dbdac20, 0x3abc1: 0x6dbdae20, 0x3abc2: 0x6dbdb020, 0x3abc3: 0x6dbdb220, - 0x3abc4: 0x6dbdb420, 0x3abc5: 0x6ddb5620, 0x3abc6: 0x6ddb5820, 0x3abc7: 0x6ddb5a20, - 0x3abc8: 0x6ddb5c20, 0x3abc9: 0x6ddb5e20, 0x3abca: 0x6ddb6020, 0x3abcb: 0x6ddb6220, - 0x3abcc: 0x6ddb6420, 0x3abcd: 0x6ddb6620, 0x3abce: 0x6df34e20, 0x3abcf: 0x6ddb6820, - 0x3abd0: 0x6ddb6a20, 0x3abd1: 0x6ddb6c20, 0x3abd2: 0x6ddb6e20, 0x3abd3: 0x6ddb7020, - 0x3abd4: 0x6ddb7220, 0x3abd5: 0x6ddb7420, 0x3abd6: 0x6ddb7620, 0x3abd7: 0x6ddb7820, - 0x3abd8: 0x6ddb7a20, 0x3abd9: 0x6ddb7c20, 0x3abda: 0x6ddb7e20, 0x3abdb: 0x6ddb8020, - 0x3abdc: 0x6df35020, 0x3abdd: 0x6df35220, 0x3abde: 0x6df35420, 0x3abdf: 0x6df35620, - 0x3abe0: 0x6df35820, 0x3abe1: 0x6df35a20, 0x3abe2: 0x6df35c20, 0x3abe3: 0x6df35e20, - 0x3abe4: 0x6df36020, 0x3abe5: 0x6df36220, 0x3abe6: 0x6df36420, 0x3abe7: 0x6df36620, - 0x3abe8: 0x6df36820, 0x3abe9: 0x6df36a20, 0x3abea: 0x6df36c20, 0x3abeb: 0x6df36e20, - 0x3abec: 0x6df37020, 0x3abed: 0x6e075620, 0x3abee: 0x6e075820, 0x3abef: 0x6e075a20, - 0x3abf0: 0x6e075c20, 0x3abf1: 0x6e075e20, 0x3abf2: 0x6e076020, 0x3abf3: 0x6e076220, - 0x3abf4: 0x6e076420, 0x3abf5: 0x6e076620, 0x3abf6: 0x6e076820, 0x3abf7: 0x6e076a20, - 0x3abf8: 0x6e17bc20, 0x3abf9: 0x6e17be20, 0x3abfa: 0x6e17c020, 0x3abfb: 0x6e17c220, - 0x3abfc: 0x6e17c420, 0x3abfd: 0x6e17c620, 0x3abfe: 0x6e17c820, 0x3abff: 0x6e17ca20, - // Block 0xeb0, offset 0x3ac00 - 0x3ac00: 0x6e17cc20, 0x3ac01: 0x6e17ce20, 0x3ac02: 0x6e17d020, 0x3ac03: 0x6e17d220, - 0x3ac04: 0x6e17d420, 0x3ac05: 0x6e17d620, 0x3ac06: 0x6e17d820, 0x3ac07: 0x6e17da20, - 0x3ac08: 0x6e249220, 0x3ac09: 0x6e249420, 0x3ac0a: 0x6e249620, 0x3ac0b: 0x6e249820, - 0x3ac0c: 0x6e249a20, 0x3ac0d: 0x6e249c20, 0x3ac0e: 0x6e2e7020, 0x3ac0f: 0x6e2e7220, - 0x3ac10: 0x6e2e7420, 0x3ac11: 0x6e35f420, 0x3ac12: 0x6e35f620, 0x3ac13: 0x6e35f820, - 0x3ac14: 0x6e35fa20, 0x3ac15: 0x6e35fc20, 0x3ac16: 0x6e3b4220, 0x3ac17: 0x6e3b4420, - 0x3ac18: 0x6e3b4620, 0x3ac19: 0x6e3b4820, 0x3ac1a: 0x6e3b4a20, 0x3ac1b: 0x6e3f0020, - 0x3ac1c: 0x6e3f0220, 0x3ac1d: 0x6e419020, 0x3ac1e: 0x6e419220, 0x3ac1f: 0x6e437220, - 0x3ac20: 0x6e46d220, 0x3ac21: 0x6e46f220, 0x3ac22: 0x6e470c20, 0x3ac23: 0x6e473420, - 0x3ac24: 0x6e473a20, 0x3ac25: 0x6c635620, 0x3ac26: 0x6c635820, 0x3ac27: 0x6cb6d220, - 0x3ac28: 0x6ce79020, 0x3ac29: 0x6ce79220, 0x3ac2a: 0x6ce79420, 0x3ac2b: 0x6d168220, - 0x3ac2c: 0x6d168420, 0x3ac2d: 0x6d44bc20, 0x3ac2e: 0x6d44be20, 0x3ac2f: 0x6d9af820, - 0x3ac30: 0x6dbdb820, 0x3ac31: 0x6c635e20, 0x3ac32: 0x6d168820, 0x3ac33: 0x6d44c020, - 0x3ac34: 0x6d719620, 0x3ac35: 0x6ddb8820, 0x3ac36: 0x6df37820, 0x3ac37: 0x6df37a20, - 0x3ac38: 0x6df37c20, 0x3ac39: 0x6e076c20, 0x3ac3a: 0x6e17de20, 0x3ac3b: 0x6e17e020, - 0x3ac3c: 0x6e24a220, 0x3ac3d: 0x6e24a420, 0x3ac3e: 0x6e45ea20, 0x3ac3f: 0x6c429020, - // Block 0xeb1, offset 0x3ac40 - 0x3ac40: 0x6c429220, 0x3ac41: 0x6c429420, 0x3ac42: 0x6c636620, 0x3ac43: 0x6c429620, - 0x3ac44: 0x6c8a6e20, 0x3ac45: 0x6c8a7020, 0x3ac46: 0x6c8a7220, 0x3ac47: 0x6cb6de20, - 0x3ac48: 0x6cb6e020, 0x3ac49: 0x6cb6e220, 0x3ac4a: 0x6cb6e420, 0x3ac4b: 0x6cb6e620, - 0x3ac4c: 0x6cb6e820, 0x3ac4d: 0x6cb6ea20, 0x3ac4e: 0x6cb6ec20, 0x3ac4f: 0x6cb6ee20, - 0x3ac50: 0x6cb6f020, 0x3ac51: 0x6cb6f220, 0x3ac52: 0x6cb6f420, 0x3ac53: 0x6cb6f620, - 0x3ac54: 0x6cb6f820, 0x3ac55: 0x6ce7b020, 0x3ac56: 0x6ce7b220, 0x3ac57: 0x6ce7b420, - 0x3ac58: 0x6ce7b620, 0x3ac59: 0x6ce7b820, 0x3ac5a: 0x6ce7ba20, 0x3ac5b: 0x6ce7bc20, - 0x3ac5c: 0x6ce7be20, 0x3ac5d: 0x6ce7c020, 0x3ac5e: 0x6ce7c220, 0x3ac5f: 0x6ce7c420, - 0x3ac60: 0x6ce7c620, 0x3ac61: 0x6ce7c820, 0x3ac62: 0x6ce7ca20, 0x3ac63: 0x6ce7cc20, - 0x3ac64: 0x6ce7ce20, 0x3ac65: 0x6ce7d020, 0x3ac66: 0x6ce7d220, 0x3ac67: 0x6ce7d420, - 0x3ac68: 0x6d16b020, 0x3ac69: 0x6d16b220, 0x3ac6a: 0x6d16b420, 0x3ac6b: 0x6d16b620, - 0x3ac6c: 0x6d16b820, 0x3ac6d: 0x6d16ba20, 0x3ac6e: 0x6d16bc20, 0x3ac6f: 0x6d16be20, - 0x3ac70: 0x6d16c020, 0x3ac71: 0x6d16c220, 0x3ac72: 0x6d16c420, 0x3ac73: 0x6d16c620, - 0x3ac74: 0x6d16c820, 0x3ac75: 0x6d16ca20, 0x3ac76: 0x6d16cc20, 0x3ac77: 0x6d16ce20, - 0x3ac78: 0x6d16d020, 0x3ac79: 0x6d16d220, 0x3ac7a: 0x6d16d420, 0x3ac7b: 0x6d16d620, - 0x3ac7c: 0x6d16d820, 0x3ac7d: 0x6d16da20, 0x3ac7e: 0x6d16dc20, 0x3ac7f: 0x6d16de20, - // Block 0xeb2, offset 0x3ac80 - 0x3ac80: 0x6d16e020, 0x3ac81: 0x6d16e220, 0x3ac82: 0x6d16e420, 0x3ac83: 0x6d16e620, - 0x3ac84: 0x6d16e820, 0x3ac85: 0x6d16ea20, 0x3ac86: 0x6d16ec20, 0x3ac87: 0x6d16ee20, - 0x3ac88: 0x6d16f020, 0x3ac89: 0x6d44f020, 0x3ac8a: 0x6d44f220, 0x3ac8b: 0x6d44f420, - 0x3ac8c: 0x6d44f620, 0x3ac8d: 0x6d44f820, 0x3ac8e: 0x6d44fa20, 0x3ac8f: 0x6d44fc20, - 0x3ac90: 0x6d44fe20, 0x3ac91: 0x6d450020, 0x3ac92: 0x6d450220, 0x3ac93: 0x6d450420, - 0x3ac94: 0x6d450620, 0x3ac95: 0x6d450820, 0x3ac96: 0x6d450a20, 0x3ac97: 0x6d450c20, - 0x3ac98: 0x6d450e20, 0x3ac99: 0x6d451020, 0x3ac9a: 0x6d451220, 0x3ac9b: 0x6d451420, - 0x3ac9c: 0x6d451620, 0x3ac9d: 0x6d71c220, 0x3ac9e: 0x6d71c420, 0x3ac9f: 0x6d71c620, - 0x3aca0: 0x6d71c820, 0x3aca1: 0x6d71ca20, 0x3aca2: 0x6d71cc20, 0x3aca3: 0x6d71ce20, - 0x3aca4: 0x6d71d020, 0x3aca5: 0x6d71d220, 0x3aca6: 0x6d71d420, 0x3aca7: 0x6d71d620, - 0x3aca8: 0x6d71d820, 0x3aca9: 0x6d71da20, 0x3acaa: 0x6d71dc20, 0x3acab: 0x6d71de20, - 0x3acac: 0x6d71e020, 0x3acad: 0x6d71e220, 0x3acae: 0x6d71e420, 0x3acaf: 0x6d71e620, - 0x3acb0: 0x6d71e820, 0x3acb1: 0x6d71ea20, 0x3acb2: 0x6d71ec20, 0x3acb3: 0x6d71ee20, - 0x3acb4: 0x6d71f020, 0x3acb5: 0x6d71f220, 0x3acb6: 0x6d71f420, 0x3acb7: 0x6d71f620, - 0x3acb8: 0x6d71f820, 0x3acb9: 0x6d71fa20, 0x3acba: 0x6d9b2820, 0x3acbb: 0x6d9b2a20, - 0x3acbc: 0x6d9b2c20, 0x3acbd: 0x6d9b2e20, 0x3acbe: 0x6d9b3020, 0x3acbf: 0x6d9b3220, - // Block 0xeb3, offset 0x3acc0 - 0x3acc0: 0x6d9b3420, 0x3acc1: 0x6d9b3620, 0x3acc2: 0x6d9b3820, 0x3acc3: 0x6d9b3a20, - 0x3acc4: 0x6d9b3c20, 0x3acc5: 0x6d9b3e20, 0x3acc6: 0x6d9b4020, 0x3acc7: 0x6d9b4220, - 0x3acc8: 0x6d9b4420, 0x3acc9: 0x6d9b4620, 0x3acca: 0x6d9b4820, 0x3accb: 0x6d9b4a20, - 0x3accc: 0x6d9b4c20, 0x3accd: 0x6d9b4e20, 0x3acce: 0x6d9b5020, 0x3accf: 0x6d9b5220, - 0x3acd0: 0x6d9b5420, 0x3acd1: 0x6d9b5620, 0x3acd2: 0x6d9b5820, 0x3acd3: 0x6d9b5a20, - 0x3acd4: 0x6d9b5c20, 0x3acd5: 0x6d9b5e20, 0x3acd6: 0x6d9b6020, 0x3acd7: 0x6d9b6220, - 0x3acd8: 0x6d9b6420, 0x3acd9: 0x6d9b6620, 0x3acda: 0x6d9b6820, 0x3acdb: 0x6d9b6a20, - 0x3acdc: 0x6d9b6c20, 0x3acdd: 0x6d9b6e20, 0x3acde: 0x6d9b7020, 0x3acdf: 0x6d9b7220, - 0x3ace0: 0x6d9b7420, 0x3ace1: 0x6d9b7620, 0x3ace2: 0x6d9b7820, 0x3ace3: 0x6dbde220, - 0x3ace4: 0x6d9b7a20, 0x3ace5: 0x6d9b7c20, 0x3ace6: 0x6d9b7e20, 0x3ace7: 0x6d9b8020, - 0x3ace8: 0x6d9b8220, 0x3ace9: 0x6d9b8420, 0x3acea: 0x6d9b8620, 0x3aceb: 0x6d9b8820, - 0x3acec: 0x6d9b8a20, 0x3aced: 0x6dbde420, 0x3acee: 0x6dbde620, 0x3acef: 0x6dbde820, - 0x3acf0: 0x6dbdea20, 0x3acf1: 0x6dbdec20, 0x3acf2: 0x6dbdee20, 0x3acf3: 0x6dbdf020, - 0x3acf4: 0x6dbdf220, 0x3acf5: 0x6dbdf420, 0x3acf6: 0x6dbdf620, 0x3acf7: 0x6dbdf820, - 0x3acf8: 0x6dbdfa20, 0x3acf9: 0x6dbdfc20, 0x3acfa: 0x6dbdfe20, 0x3acfb: 0x6dbe0020, - 0x3acfc: 0x6dbe0220, 0x3acfd: 0x6dbe0420, 0x3acfe: 0x6dbe0620, 0x3acff: 0x6dbe0820, - // Block 0xeb4, offset 0x3ad00 - 0x3ad00: 0x6dbe0a20, 0x3ad01: 0x6dbe0c20, 0x3ad02: 0x6dbe0e20, 0x3ad03: 0x6dbe1020, - 0x3ad04: 0x6dbe1220, 0x3ad05: 0x6dbe1420, 0x3ad06: 0x6dbe1620, 0x3ad07: 0x6dbe1820, - 0x3ad08: 0x6dbe1a20, 0x3ad09: 0x6dbe1c20, 0x3ad0a: 0x6dbe1e20, 0x3ad0b: 0x6dbe2020, - 0x3ad0c: 0x6dbe2220, 0x3ad0d: 0x6dbe2420, 0x3ad0e: 0x6dbe2620, 0x3ad0f: 0x6dbe2820, - 0x3ad10: 0x6dbe2a20, 0x3ad11: 0x6dbe2c20, 0x3ad12: 0x6dbe2e20, 0x3ad13: 0x6dbe3020, - 0x3ad14: 0x6dbe3220, 0x3ad15: 0x6dbe3420, 0x3ad16: 0x6dbe3620, 0x3ad17: 0x6dbe3820, - 0x3ad18: 0x6dbe3a20, 0x3ad19: 0x6ddbb220, 0x3ad1a: 0x6ddbb420, 0x3ad1b: 0x6ddbb620, - 0x3ad1c: 0x6ddbb820, 0x3ad1d: 0x6ddbba20, 0x3ad1e: 0x6ddbbc20, 0x3ad1f: 0x6ddbbe20, - 0x3ad20: 0x6ddbc020, 0x3ad21: 0x6ddbc220, 0x3ad22: 0x6ddbc420, 0x3ad23: 0x6ddbc620, - 0x3ad24: 0x6ddbc820, 0x3ad25: 0x6ddbca20, 0x3ad26: 0x6ddbcc20, 0x3ad27: 0x6ddbce20, - 0x3ad28: 0x6ddbd020, 0x3ad29: 0x6ddbd220, 0x3ad2a: 0x6ddbd420, 0x3ad2b: 0x6ddbd620, - 0x3ad2c: 0x6ddbd820, 0x3ad2d: 0x6ddbda20, 0x3ad2e: 0x6ddbdc20, 0x3ad2f: 0x6ddbde20, - 0x3ad30: 0x6ddbe020, 0x3ad31: 0x6ddbe220, 0x3ad32: 0x6ddbe420, 0x3ad33: 0x6ddbe620, - 0x3ad34: 0x6df39620, 0x3ad35: 0x6ddbe820, 0x3ad36: 0x6ddbea20, 0x3ad37: 0x6ddbec20, - 0x3ad38: 0x6ddbee20, 0x3ad39: 0x6ddbf020, 0x3ad3a: 0x6ddbf220, 0x3ad3b: 0x6ddbf420, - 0x3ad3c: 0x6ddbf620, 0x3ad3d: 0x6df39820, 0x3ad3e: 0x6df39a20, 0x3ad3f: 0x6df39c20, - // Block 0xeb5, offset 0x3ad40 - 0x3ad40: 0x6df39e20, 0x3ad41: 0x6df3a020, 0x3ad42: 0x6df3a220, 0x3ad43: 0x6df3a420, - 0x3ad44: 0x6df3a620, 0x3ad45: 0x6df3a820, 0x3ad46: 0x6df3aa20, 0x3ad47: 0x6df3ac20, - 0x3ad48: 0x6df3ae20, 0x3ad49: 0x6df3b020, 0x3ad4a: 0x6df3b220, 0x3ad4b: 0x6df3b420, - 0x3ad4c: 0x6df3b620, 0x3ad4d: 0x6df3b820, 0x3ad4e: 0x6df3ba20, 0x3ad4f: 0x6df3bc20, - 0x3ad50: 0x6df3be20, 0x3ad51: 0x6df3c020, 0x3ad52: 0x6df3c220, 0x3ad53: 0x6df3c420, - 0x3ad54: 0x6df3c620, 0x3ad55: 0x6df3c820, 0x3ad56: 0x6df3ca20, 0x3ad57: 0x6df3cc20, - 0x3ad58: 0x6df3ce20, 0x3ad59: 0x6df3d020, 0x3ad5a: 0x6df3d220, 0x3ad5b: 0x6df3d420, - 0x3ad5c: 0x6df3d620, 0x3ad5d: 0x6df3d820, 0x3ad5e: 0x6df3da20, 0x3ad5f: 0x6df3dc20, - 0x3ad60: 0x6df3de20, 0x3ad61: 0x6e078820, 0x3ad62: 0x6e078a20, 0x3ad63: 0x6e078c20, - 0x3ad64: 0x6e078e20, 0x3ad65: 0x6e079020, 0x3ad66: 0x6e079220, 0x3ad67: 0x6e079420, - 0x3ad68: 0x6e079620, 0x3ad69: 0x6e079820, 0x3ad6a: 0x6e079a20, 0x3ad6b: 0x6e079c20, - 0x3ad6c: 0x6e079e20, 0x3ad6d: 0x6e07a020, 0x3ad6e: 0x6e07a220, 0x3ad6f: 0x6e07a420, - 0x3ad70: 0x6e07a620, 0x3ad71: 0x6e07a820, 0x3ad72: 0x6e07aa20, 0x3ad73: 0x6e07ac20, - 0x3ad74: 0x6e07ae20, 0x3ad75: 0x6e07b020, 0x3ad76: 0x6e17f420, 0x3ad77: 0x6e07b220, - 0x3ad78: 0x6e07b420, 0x3ad79: 0x6e07b620, 0x3ad7a: 0x6e07b820, 0x3ad7b: 0x6e07ba20, - 0x3ad7c: 0x6e07bc20, 0x3ad7d: 0x6e07be20, 0x3ad7e: 0x6e17f620, 0x3ad7f: 0x6e17f820, - // Block 0xeb6, offset 0x3ad80 - 0x3ad80: 0x6e17fa20, 0x3ad81: 0x6e17fc20, 0x3ad82: 0x6e17fe20, 0x3ad83: 0x6e180020, - 0x3ad84: 0x6e180220, 0x3ad85: 0x6e180420, 0x3ad86: 0x6e180620, 0x3ad87: 0x6e180820, - 0x3ad88: 0x6e180a20, 0x3ad89: 0x6e180c20, 0x3ad8a: 0x6e180e20, 0x3ad8b: 0x6e181020, - 0x3ad8c: 0x6e181220, 0x3ad8d: 0x6e181420, 0x3ad8e: 0x6e181620, 0x3ad8f: 0x6e181820, - 0x3ad90: 0x6e181a20, 0x3ad91: 0x6e181c20, 0x3ad92: 0x6e181e20, 0x3ad93: 0x6e24b620, - 0x3ad94: 0x6e24b820, 0x3ad95: 0x6e24ba20, 0x3ad96: 0x6e24bc20, 0x3ad97: 0x6e24be20, - 0x3ad98: 0x6e24c020, 0x3ad99: 0x6e24c220, 0x3ad9a: 0x6e24c420, 0x3ad9b: 0x6e24c620, - 0x3ad9c: 0x6e24c820, 0x3ad9d: 0x6e24ca20, 0x3ad9e: 0x6e24cc20, 0x3ad9f: 0x6e24ce20, - 0x3ada0: 0x6e24d020, 0x3ada1: 0x6e24d220, 0x3ada2: 0x6e24d420, 0x3ada3: 0x6e24d620, - 0x3ada4: 0x6e2e8420, 0x3ada5: 0x6e2e8620, 0x3ada6: 0x6e2e8820, 0x3ada7: 0x6e2e8a20, - 0x3ada8: 0x6e2e8c20, 0x3ada9: 0x6e2e8e20, 0x3adaa: 0x6e2e9020, 0x3adab: 0x6e2e9220, - 0x3adac: 0x6e2e9420, 0x3adad: 0x6e360420, 0x3adae: 0x6e360620, 0x3adaf: 0x6e360820, - 0x3adb0: 0x6e360a20, 0x3adb1: 0x6e360c20, 0x3adb2: 0x6e360e20, 0x3adb3: 0x6e361020, - 0x3adb4: 0x6e361220, 0x3adb5: 0x6e361420, 0x3adb6: 0x6e3b5020, 0x3adb7: 0x6e3f0820, - 0x3adb8: 0x6e3f0a20, 0x3adb9: 0x6e3f0c20, 0x3adba: 0x6e3f0e20, 0x3adbb: 0x6e44bc20, - 0x3adbc: 0x6e457420, 0x3adbd: 0x6e465220, 0x3adbe: 0x6c288e20, 0x3adbf: 0x6c289020, - // Block 0xeb7, offset 0x3adc0 - 0x3adc0: 0x6c289220, 0x3adc1: 0x6c42a420, 0x3adc2: 0x6c42a620, 0x3adc3: 0x6c637820, - 0x3adc4: 0x6c8a8020, 0x3adc5: 0x6c8a8220, 0x3adc6: 0x6cb70220, 0x3adc7: 0x6c8a8420, - 0x3adc8: 0x6cb70420, 0x3adc9: 0x6cb70620, 0x3adca: 0x6ce7e020, 0x3adcb: 0x6ce7e220, - 0x3adcc: 0x6d170020, 0x3adcd: 0x6d452420, 0x3adce: 0x6d452620, 0x3adcf: 0x6d720220, - 0x3add0: 0x6c638020, 0x3add1: 0x6cb70e20, 0x3add2: 0x6cb71020, 0x3add3: 0x6ce7ee20, - 0x3add4: 0x6d170620, 0x3add5: 0x6d452820, 0x3add6: 0x6d452a20, 0x3add7: 0x6d452c20, - 0x3add8: 0x6d452e20, 0x3add9: 0x6d453020, 0x3adda: 0x6d720c20, 0x3addb: 0x6d720e20, - 0x3addc: 0x6d721020, 0x3addd: 0x6d721220, 0x3adde: 0x6d721420, 0x3addf: 0x6d721620, - 0x3ade0: 0x6d721820, 0x3ade1: 0x6d9b9020, 0x3ade2: 0x6d9b9220, 0x3ade3: 0x6d9b9420, - 0x3ade4: 0x6d9b9620, 0x3ade5: 0x6d9b9820, 0x3ade6: 0x6d9b9a20, 0x3ade7: 0x6d9b9c20, - 0x3ade8: 0x6dbe4a20, 0x3ade9: 0x6dbe4c20, 0x3adea: 0x6ddbfc20, 0x3adeb: 0x6ddbfe20, - 0x3adec: 0x6ddc0020, 0x3aded: 0x6ddc0220, 0x3adee: 0x6de36c20, 0x3adef: 0x6df3e620, - 0x3adf0: 0x6dface20, 0x3adf1: 0x6df3e820, 0x3adf2: 0x6e07c620, 0x3adf3: 0x6e182220, - 0x3adf4: 0x6e24dc20, 0x3adf5: 0x6e2e9620, 0x3adf6: 0x6e2e9820, 0x3adf7: 0x6e361620, - 0x3adf8: 0x6e3b5420, 0x3adf9: 0x6e419c20, 0x3adfa: 0x6c8a8c20, 0x3adfb: 0x6d170a20, - 0x3adfc: 0x6d170c20, 0x3adfd: 0x6d170e20, 0x3adfe: 0x6d453c20, 0x3adff: 0x6d453e20, - // Block 0xeb8, offset 0x3ae00 - 0x3ae00: 0x6d454020, 0x3ae01: 0x6d454220, 0x3ae02: 0x6d721a20, 0x3ae03: 0x6d454420, - 0x3ae04: 0x6d454620, 0x3ae05: 0x6d721c20, 0x3ae06: 0x6d721e20, 0x3ae07: 0x6d9ba620, - 0x3ae08: 0x6d9ba820, 0x3ae09: 0x6dbe5c20, 0x3ae0a: 0x6dbe5e20, 0x3ae0b: 0x6dbe6020, - 0x3ae0c: 0x6ddc0820, 0x3ae0d: 0x6ddc0a20, 0x3ae0e: 0x6ddc0c20, 0x3ae0f: 0x6dbe6220, - 0x3ae10: 0x6ddc0e20, 0x3ae11: 0x6ddc1020, 0x3ae12: 0x6ddc1220, 0x3ae13: 0x6df3f020, - 0x3ae14: 0x6df3f220, 0x3ae15: 0x6df3f420, 0x3ae16: 0x6df3f620, 0x3ae17: 0x6df3f820, - 0x3ae18: 0x6df3fa20, 0x3ae19: 0x6e07cc20, 0x3ae1a: 0x6e07ce20, 0x3ae1b: 0x6e07d020, - 0x3ae1c: 0x6e07d220, 0x3ae1d: 0x6e182620, 0x3ae1e: 0x6e182820, 0x3ae1f: 0x6e182a20, - 0x3ae20: 0x6e182c20, 0x3ae21: 0x6e182e20, 0x3ae22: 0x6e24de20, 0x3ae23: 0x6e24e020, - 0x3ae24: 0x6e2e9c20, 0x3ae25: 0x6e3f1020, 0x3ae26: 0x6e437620, 0x3ae27: 0x6c8a9020, - 0x3ae28: 0x6cb71220, 0x3ae29: 0x6ce7f620, 0x3ae2a: 0x6ce7f820, 0x3ae2b: 0x6ce7fa20, - 0x3ae2c: 0x6ce7fc20, 0x3ae2d: 0x6ce7fe20, 0x3ae2e: 0x6ce80020, 0x3ae2f: 0x6ce80220, - 0x3ae30: 0x6d172220, 0x3ae31: 0x6d172420, 0x3ae32: 0x6d172620, 0x3ae33: 0x6d172820, - 0x3ae34: 0x6d172a20, 0x3ae35: 0x6d172c20, 0x3ae36: 0x6d172e20, 0x3ae37: 0x6d457c20, - 0x3ae38: 0x6d457e20, 0x3ae39: 0x6d458020, 0x3ae3a: 0x6d458220, 0x3ae3b: 0x6d458420, - 0x3ae3c: 0x6d458620, 0x3ae3d: 0x6d458820, 0x3ae3e: 0x6d458a20, 0x3ae3f: 0x6d726420, - // Block 0xeb9, offset 0x3ae40 - 0x3ae40: 0x6d458c20, 0x3ae41: 0x6d458e20, 0x3ae42: 0x6d459020, 0x3ae43: 0x6d459220, - 0x3ae44: 0x6d459420, 0x3ae45: 0x6d459620, 0x3ae46: 0x6d726620, 0x3ae47: 0x6d459820, - 0x3ae48: 0x6d459a20, 0x3ae49: 0x6d459c20, 0x3ae4a: 0x6d459e20, 0x3ae4b: 0x6d45a020, - 0x3ae4c: 0x6d45a220, 0x3ae4d: 0x6d726820, 0x3ae4e: 0x6d726a20, 0x3ae4f: 0x6d726c20, - 0x3ae50: 0x6d726e20, 0x3ae51: 0x6d727020, 0x3ae52: 0x6d727220, 0x3ae53: 0x6d727420, - 0x3ae54: 0x6d727620, 0x3ae55: 0x6d727820, 0x3ae56: 0x6d727a20, 0x3ae57: 0x6d727c20, - 0x3ae58: 0x6d727e20, 0x3ae59: 0x6d728020, 0x3ae5a: 0x6d728220, 0x3ae5b: 0x6d728420, - 0x3ae5c: 0x6d728620, 0x3ae5d: 0x6d728820, 0x3ae5e: 0x6d728a20, 0x3ae5f: 0x6d728c20, - 0x3ae60: 0x6d728e20, 0x3ae61: 0x6d729020, 0x3ae62: 0x6d729220, 0x3ae63: 0x6d729420, - 0x3ae64: 0x6d729620, 0x3ae65: 0x6d729820, 0x3ae66: 0x6d729a20, 0x3ae67: 0x6d729c20, - 0x3ae68: 0x6d729e20, 0x3ae69: 0x6d72a020, 0x3ae6a: 0x6d72a220, 0x3ae6b: 0x6d72a420, - 0x3ae6c: 0x6d72a620, 0x3ae6d: 0x6d72a820, 0x3ae6e: 0x6d9bde20, 0x3ae6f: 0x6d9be020, - 0x3ae70: 0x6d9be220, 0x3ae71: 0x6d9be420, 0x3ae72: 0x6d9be620, 0x3ae73: 0x6d9be820, - 0x3ae74: 0x6d9bea20, 0x3ae75: 0x6d9bec20, 0x3ae76: 0x6d9bee20, 0x3ae77: 0x6d9bf020, - 0x3ae78: 0x6d9bf220, 0x3ae79: 0x6d9bf420, 0x3ae7a: 0x6d9bf620, 0x3ae7b: 0x6d9bf820, - 0x3ae7c: 0x6d9bfa20, 0x3ae7d: 0x6d9bfc20, 0x3ae7e: 0x6d9bfe20, 0x3ae7f: 0x6d9c0020, - // Block 0xeba, offset 0x3ae80 - 0x3ae80: 0x6d9c0220, 0x3ae81: 0x6d9c0420, 0x3ae82: 0x6d9c0620, 0x3ae83: 0x6d9c0820, - 0x3ae84: 0x6d9c0a20, 0x3ae85: 0x6d9c0c20, 0x3ae86: 0x6d9c0e20, 0x3ae87: 0x6d9c1020, - 0x3ae88: 0x6d9c1220, 0x3ae89: 0x6d9c1420, 0x3ae8a: 0x6d9c1620, 0x3ae8b: 0x6d9c1820, - 0x3ae8c: 0x6d9c1a20, 0x3ae8d: 0x6d9c1c20, 0x3ae8e: 0x6d9c1e20, 0x3ae8f: 0x6d9c2020, - 0x3ae90: 0x6d9c2220, 0x3ae91: 0x6d9c2420, 0x3ae92: 0x6d9c2620, 0x3ae93: 0x6d9c2820, - 0x3ae94: 0x6d9c2a20, 0x3ae95: 0x6d9c2c20, 0x3ae96: 0x6dbe9020, 0x3ae97: 0x6dbe9220, - 0x3ae98: 0x6dbe9420, 0x3ae99: 0x6dbe9620, 0x3ae9a: 0x6dbe9820, 0x3ae9b: 0x6dbe9a20, - 0x3ae9c: 0x6dbe9c20, 0x3ae9d: 0x6dbe9e20, 0x3ae9e: 0x6dbea020, 0x3ae9f: 0x6dbea220, - 0x3aea0: 0x6dbea420, 0x3aea1: 0x6dbea620, 0x3aea2: 0x6dbea820, 0x3aea3: 0x6dbeaa20, - 0x3aea4: 0x6dbeac20, 0x3aea5: 0x6dbeae20, 0x3aea6: 0x6dbeb020, 0x3aea7: 0x6dbeb220, - 0x3aea8: 0x6dbeb420, 0x3aea9: 0x6dbeb620, 0x3aeaa: 0x6dbeb820, 0x3aeab: 0x6dbeba20, - 0x3aeac: 0x6dbebc20, 0x3aead: 0x6ddc4820, 0x3aeae: 0x6ddc4a20, 0x3aeaf: 0x6ddc4c20, - 0x3aeb0: 0x6ddc4e20, 0x3aeb1: 0x6ddc5020, 0x3aeb2: 0x6ddc5220, 0x3aeb3: 0x6ddc5420, - 0x3aeb4: 0x6ddc5620, 0x3aeb5: 0x6ddc5820, 0x3aeb6: 0x6ddc5a20, 0x3aeb7: 0x6ddc5c20, - 0x3aeb8: 0x6ddc5e20, 0x3aeb9: 0x6ddc6020, 0x3aeba: 0x6ddc6220, 0x3aebb: 0x6ddc6420, - 0x3aebc: 0x6ddc6620, 0x3aebd: 0x6ddc6820, 0x3aebe: 0x6ddc6a20, 0x3aebf: 0x6ddc6c20, - // Block 0xebb, offset 0x3aec0 - 0x3aec0: 0x6ddc6e20, 0x3aec1: 0x6ddc7020, 0x3aec2: 0x6ddc7220, 0x3aec3: 0x6ddc7420, - 0x3aec4: 0x6ddc7620, 0x3aec5: 0x6ddc7820, 0x3aec6: 0x6ddc7a20, 0x3aec7: 0x6ddc7c20, - 0x3aec8: 0x6ddc7e20, 0x3aec9: 0x6ddc8020, 0x3aeca: 0x6ddc8220, 0x3aecb: 0x6ddc8420, - 0x3aecc: 0x6ddc8620, 0x3aecd: 0x6ddc8820, 0x3aece: 0x6ddc8a20, 0x3aecf: 0x6ddc8c20, - 0x3aed0: 0x6ddc8e20, 0x3aed1: 0x6ddc9020, 0x3aed2: 0x6ddc9220, 0x3aed3: 0x6ddc9420, - 0x3aed4: 0x6ddc9620, 0x3aed5: 0x6ddc9820, 0x3aed6: 0x6ddc9a20, 0x3aed7: 0x6df43420, - 0x3aed8: 0x6df43620, 0x3aed9: 0x6df43820, 0x3aeda: 0x6df43a20, 0x3aedb: 0x6df43c20, - 0x3aedc: 0x6df43e20, 0x3aedd: 0x6df44020, 0x3aede: 0x6ddc9c20, 0x3aedf: 0x6df44220, - 0x3aee0: 0x6df44420, 0x3aee1: 0x6df44620, 0x3aee2: 0x6df44820, 0x3aee3: 0x6df44a20, - 0x3aee4: 0x6df44c20, 0x3aee5: 0x6df44e20, 0x3aee6: 0x6df45020, 0x3aee7: 0x6df45220, - 0x3aee8: 0x6df45420, 0x3aee9: 0x6df45620, 0x3aeea: 0x6df45820, 0x3aeeb: 0x6df45a20, - 0x3aeec: 0x6df45c20, 0x3aeed: 0x6df45e20, 0x3aeee: 0x6df46020, 0x3aeef: 0x6df46220, - 0x3aef0: 0x6df46420, 0x3aef1: 0x6df46620, 0x3aef2: 0x6df46820, 0x3aef3: 0x6df46a20, - 0x3aef4: 0x6df46c20, 0x3aef5: 0x6df46e20, 0x3aef6: 0x6df47020, 0x3aef7: 0x6dbebe20, - 0x3aef8: 0x6df47220, 0x3aef9: 0x6df47420, 0x3aefa: 0x6df47620, 0x3aefb: 0x6df47820, - 0x3aefc: 0x6df47a20, 0x3aefd: 0x6e080620, 0x3aefe: 0x6e080820, 0x3aeff: 0x6e080a20, - // Block 0xebc, offset 0x3af00 - 0x3af00: 0x6e080c20, 0x3af01: 0x6e080e20, 0x3af02: 0x6e081020, 0x3af03: 0x6e081220, - 0x3af04: 0x6e081420, 0x3af05: 0x6e081620, 0x3af06: 0x6e081820, 0x3af07: 0x6e081a20, - 0x3af08: 0x6e081c20, 0x3af09: 0x6e081e20, 0x3af0a: 0x6e082020, 0x3af0b: 0x6e082220, - 0x3af0c: 0x6e082420, 0x3af0d: 0x6e082620, 0x3af0e: 0x6e082820, 0x3af0f: 0x6e082a20, - 0x3af10: 0x6e082c20, 0x3af11: 0x6e082e20, 0x3af12: 0x6e083020, 0x3af13: 0x6e083220, - 0x3af14: 0x6e083420, 0x3af15: 0x6e083620, 0x3af16: 0x6e083820, 0x3af17: 0x6e083a20, - 0x3af18: 0x6e083c20, 0x3af19: 0x6e083e20, 0x3af1a: 0x6e084020, 0x3af1b: 0x6e084220, - 0x3af1c: 0x6e084420, 0x3af1d: 0x6e084620, 0x3af1e: 0x6e084820, 0x3af1f: 0x6e084a20, - 0x3af20: 0x6e084c20, 0x3af21: 0x6e084e20, 0x3af22: 0x6e085020, 0x3af23: 0x6e085220, - 0x3af24: 0x6e085420, 0x3af25: 0x6e085620, 0x3af26: 0x6e085820, 0x3af27: 0x6e085a20, - 0x3af28: 0x6e085c20, 0x3af29: 0x6e085e20, 0x3af2a: 0x6e086020, 0x3af2b: 0x6e186220, - 0x3af2c: 0x6e186420, 0x3af2d: 0x6e186620, 0x3af2e: 0x6e186820, 0x3af2f: 0x6e186a20, - 0x3af30: 0x6e186c20, 0x3af31: 0x6e186e20, 0x3af32: 0x6e187020, 0x3af33: 0x6e187220, - 0x3af34: 0x6e187420, 0x3af35: 0x6e187620, 0x3af36: 0x6e187820, 0x3af37: 0x6e187a20, - 0x3af38: 0x6e187c20, 0x3af39: 0x6e187e20, 0x3af3a: 0x6e188020, 0x3af3b: 0x6e188220, - 0x3af3c: 0x6e188420, 0x3af3d: 0x6e188620, 0x3af3e: 0x6e188820, 0x3af3f: 0x6e188a20, - // Block 0xebd, offset 0x3af40 - 0x3af40: 0x6e188c20, 0x3af41: 0x6e188e20, 0x3af42: 0x6e250a20, 0x3af43: 0x6e250c20, - 0x3af44: 0x6e250e20, 0x3af45: 0x6e251020, 0x3af46: 0x6e251220, 0x3af47: 0x6e251420, - 0x3af48: 0x6e251620, 0x3af49: 0x6e251820, 0x3af4a: 0x6e251a20, 0x3af4b: 0x6e251c20, - 0x3af4c: 0x6e251e20, 0x3af4d: 0x6e252020, 0x3af4e: 0x6e252220, 0x3af4f: 0x6e252420, - 0x3af50: 0x6e252620, 0x3af51: 0x6e252820, 0x3af52: 0x6e252a20, 0x3af53: 0x6e252c20, - 0x3af54: 0x6e252e20, 0x3af55: 0x6e253020, 0x3af56: 0x6e253220, 0x3af57: 0x6e253420, - 0x3af58: 0x6e253620, 0x3af59: 0x6e253820, 0x3af5a: 0x6e253a20, 0x3af5b: 0x6e253c20, - 0x3af5c: 0x6e253e20, 0x3af5d: 0x6e254020, 0x3af5e: 0x6e2eb220, 0x3af5f: 0x6e2eb420, - 0x3af60: 0x6e2eb620, 0x3af61: 0x6e2eb820, 0x3af62: 0x6e2eba20, 0x3af63: 0x6e2ebc20, - 0x3af64: 0x6e2ebe20, 0x3af65: 0x6e2ec020, 0x3af66: 0x6e2ec220, 0x3af67: 0x6e2ec420, - 0x3af68: 0x6e2ec620, 0x3af69: 0x6e2ec820, 0x3af6a: 0x6e2eca20, 0x3af6b: 0x6e2ecc20, - 0x3af6c: 0x6e2ece20, 0x3af6d: 0x6e2ed020, 0x3af6e: 0x6e2ed220, 0x3af6f: 0x6e2ed420, - 0x3af70: 0x6e2ed620, 0x3af71: 0x6e2ed820, 0x3af72: 0x6e2eda20, 0x3af73: 0x6e2edc20, - 0x3af74: 0x6e2ede20, 0x3af75: 0x6e2ee020, 0x3af76: 0x6e362820, 0x3af77: 0x6e362a20, - 0x3af78: 0x6e362c20, 0x3af79: 0x6e362e20, 0x3af7a: 0x6e363020, 0x3af7b: 0x6e363220, - 0x3af7c: 0x6e363420, 0x3af7d: 0x6e363620, 0x3af7e: 0x6e363820, 0x3af7f: 0x6e363a20, - // Block 0xebe, offset 0x3af80 - 0x3af80: 0x6e363c20, 0x3af81: 0x6e363e20, 0x3af82: 0x6e3b5820, 0x3af83: 0x6e3b5a20, - 0x3af84: 0x6e3b5c20, 0x3af85: 0x6e3b5e20, 0x3af86: 0x6e3b6020, 0x3af87: 0x6e3b6220, - 0x3af88: 0x6e3b6420, 0x3af89: 0x6e3b6620, 0x3af8a: 0x6e3b6820, 0x3af8b: 0x6e3b6a20, - 0x3af8c: 0x6e3b6c20, 0x3af8d: 0x6e3b6e20, 0x3af8e: 0x6e3b7020, 0x3af8f: 0x6e3f1c20, - 0x3af90: 0x6e3f1e20, 0x3af91: 0x6e3f2020, 0x3af92: 0x6e3f2220, 0x3af93: 0x6e3f2420, - 0x3af94: 0x6e41ac20, 0x3af95: 0x6e41ae20, 0x3af96: 0x6e41b020, 0x3af97: 0x6e41b220, - 0x3af98: 0x6e437e20, 0x3af99: 0x6e438020, 0x3af9a: 0x6e438220, 0x3af9b: 0x6e438420, - 0x3af9c: 0x6e438620, 0x3af9d: 0x6e438820, 0x3af9e: 0x6e438a20, 0x3af9f: 0x6e44c420, - 0x3afa0: 0x6e44c620, 0x3afa1: 0x6e457820, 0x3afa2: 0x6e457a20, 0x3afa3: 0x6e45ec20, - 0x3afa4: 0x6e45ee20, 0x3afa5: 0x6e46f420, 0x3afa6: 0x6c28a020, 0x3afa7: 0x6c42c620, - 0x3afa8: 0x6c42c820, 0x3afa9: 0x6c42ca20, 0x3afaa: 0x6c42cc20, 0x3afab: 0x6c42ce20, - 0x3afac: 0x6c42d020, 0x3afad: 0x6c42d220, 0x3afae: 0x6c639620, 0x3afaf: 0x6c42d420, - 0x3afb0: 0x6c639820, 0x3afb1: 0x6c639a20, 0x3afb2: 0x6c639c20, 0x3afb3: 0x6c639e20, - 0x3afb4: 0x6c63a020, 0x3afb5: 0x6c63a220, 0x3afb6: 0x6c63a420, 0x3afb7: 0x6c8aa020, - 0x3afb8: 0x6c8aa220, 0x3afb9: 0x6c8aa420, 0x3afba: 0x6c8aa620, 0x3afbb: 0x6cb72220, - 0x3afbc: 0x6cb72420, 0x3afbd: 0x6cb72620, 0x3afbe: 0x6ce80e20, 0x3afbf: 0x6ce81020, - // Block 0xebf, offset 0x3afc0 - 0x3afc0: 0x6ce81220, 0x3afc1: 0x6ce81420, 0x3afc2: 0x6ce81620, 0x3afc3: 0x6ce81820, - 0x3afc4: 0x6d173a20, 0x3afc5: 0x6ce81a20, 0x3afc6: 0x6ce81c20, 0x3afc7: 0x6ce81e20, - 0x3afc8: 0x6ce82020, 0x3afc9: 0x6ce82220, 0x3afca: 0x6ce82420, 0x3afcb: 0x6d173c20, - 0x3afcc: 0x6d173e20, 0x3afcd: 0x6d174020, 0x3afce: 0x6d72ac20, 0x3afcf: 0x6d72ae20, - 0x3afd0: 0x6ddca620, 0x3afd1: 0x6cb73020, 0x3afd2: 0x6cb73220, 0x3afd3: 0x6cb73420, - 0x3afd4: 0x6ce82e20, 0x3afd5: 0x6ce83020, 0x3afd6: 0x6ce83220, 0x3afd7: 0x6ce83420, - 0x3afd8: 0x6ce83620, 0x3afd9: 0x6ce83820, 0x3afda: 0x6ce83a20, 0x3afdb: 0x6ce83c20, - 0x3afdc: 0x6d175220, 0x3afdd: 0x6d175420, 0x3afde: 0x6d175620, 0x3afdf: 0x6d175820, - 0x3afe0: 0x6d175a20, 0x3afe1: 0x6d175c20, 0x3afe2: 0x6d175e20, 0x3afe3: 0x6d176020, - 0x3afe4: 0x6d176220, 0x3afe5: 0x6d176420, 0x3afe6: 0x6d176620, 0x3afe7: 0x6d176820, - 0x3afe8: 0x6d176a20, 0x3afe9: 0x6d176c20, 0x3afea: 0x6d176e20, 0x3afeb: 0x6d177020, - 0x3afec: 0x6d45c220, 0x3afed: 0x6d45c420, 0x3afee: 0x6d45c620, 0x3afef: 0x6d45c820, - 0x3aff0: 0x6d45ca20, 0x3aff1: 0x6d45cc20, 0x3aff2: 0x6d45ce20, 0x3aff3: 0x6d45d020, - 0x3aff4: 0x6d45d220, 0x3aff5: 0x6d45d420, 0x3aff6: 0x6d45d620, 0x3aff7: 0x6d45d820, - 0x3aff8: 0x6d45da20, 0x3aff9: 0x6d45dc20, 0x3affa: 0x6d45de20, 0x3affb: 0x6d45e020, - 0x3affc: 0x6d45e220, 0x3affd: 0x6d72c820, 0x3affe: 0x6d72ca20, 0x3afff: 0x6d72cc20, - // Block 0xec0, offset 0x3b000 - 0x3b000: 0x6d72ce20, 0x3b001: 0x6d72d020, 0x3b002: 0x6d72d220, 0x3b003: 0x6d72d420, - 0x3b004: 0x6d72d620, 0x3b005: 0x6d72d820, 0x3b006: 0x6d72da20, 0x3b007: 0x6d72dc20, - 0x3b008: 0x6d72de20, 0x3b009: 0x6d9c4c20, 0x3b00a: 0x6d9c4e20, 0x3b00b: 0x6d9c5020, - 0x3b00c: 0x6d9c5220, 0x3b00d: 0x6d9c5420, 0x3b00e: 0x6d9c5620, 0x3b00f: 0x6d9c5820, - 0x3b010: 0x6d9c5a20, 0x3b011: 0x6d9c5c20, 0x3b012: 0x6d9c5e20, 0x3b013: 0x6d9c6020, - 0x3b014: 0x6d9c6220, 0x3b015: 0x6d9c6420, 0x3b016: 0x6d9c6620, 0x3b017: 0x6dbed620, - 0x3b018: 0x6dbed820, 0x3b019: 0x6dbeda20, 0x3b01a: 0x6dbedc20, 0x3b01b: 0x6dbede20, - 0x3b01c: 0x6dbee020, 0x3b01d: 0x6dbee220, 0x3b01e: 0x6dbee420, 0x3b01f: 0x6dbee620, - 0x3b020: 0x6dbee820, 0x3b021: 0x6dbeea20, 0x3b022: 0x6dbeec20, 0x3b023: 0x6dbeee20, - 0x3b024: 0x6dbef020, 0x3b025: 0x6dbef220, 0x3b026: 0x6dbef420, 0x3b027: 0x6dbef620, - 0x3b028: 0x6dbef820, 0x3b029: 0x6dbefa20, 0x3b02a: 0x6dbefc20, 0x3b02b: 0x6dbefe20, - 0x3b02c: 0x6dbf0020, 0x3b02d: 0x6ddcb020, 0x3b02e: 0x6ddcb220, 0x3b02f: 0x6ddcb420, - 0x3b030: 0x6ddcb620, 0x3b031: 0x6ddcb820, 0x3b032: 0x6ddcba20, 0x3b033: 0x6ddcbc20, - 0x3b034: 0x6ddcbe20, 0x3b035: 0x6ddcc020, 0x3b036: 0x6ddcc220, 0x3b037: 0x6ddcc420, - 0x3b038: 0x6ddcc620, 0x3b039: 0x6ddcc820, 0x3b03a: 0x6ddcca20, 0x3b03b: 0x6ddccc20, - 0x3b03c: 0x6ddcce20, 0x3b03d: 0x6ddcd020, 0x3b03e: 0x6ddcd220, 0x3b03f: 0x6ddcd420, - // Block 0xec1, offset 0x3b040 - 0x3b040: 0x6df49220, 0x3b041: 0x6df49420, 0x3b042: 0x6df49620, 0x3b043: 0x6df49820, - 0x3b044: 0x6df49a20, 0x3b045: 0x6df49c20, 0x3b046: 0x6df49e20, 0x3b047: 0x6df4a020, - 0x3b048: 0x6df4a220, 0x3b049: 0x6e088420, 0x3b04a: 0x6e088620, 0x3b04b: 0x6e088820, - 0x3b04c: 0x6e088a20, 0x3b04d: 0x6e088c20, 0x3b04e: 0x6e088e20, 0x3b04f: 0x6e089020, - 0x3b050: 0x6e089220, 0x3b051: 0x6e089420, 0x3b052: 0x6e089620, 0x3b053: 0x6e089820, - 0x3b054: 0x6e089a20, 0x3b055: 0x6e089c20, 0x3b056: 0x6e089e20, 0x3b057: 0x6e189a20, - 0x3b058: 0x6e189c20, 0x3b059: 0x6e189e20, 0x3b05a: 0x6e18a020, 0x3b05b: 0x6e18a220, - 0x3b05c: 0x6e18a420, 0x3b05d: 0x6e18a620, 0x3b05e: 0x6e18a820, 0x3b05f: 0x6e18aa20, - 0x3b060: 0x6e254a20, 0x3b061: 0x6e254c20, 0x3b062: 0x6e254e20, 0x3b063: 0x6e255020, - 0x3b064: 0x6e255220, 0x3b065: 0x6e255420, 0x3b066: 0x6e255620, 0x3b067: 0x6e255820, - 0x3b068: 0x6e255a20, 0x3b069: 0x6e255c20, 0x3b06a: 0x6e255e20, 0x3b06b: 0x6e256020, - 0x3b06c: 0x6e2eec20, 0x3b06d: 0x6e2eee20, 0x3b06e: 0x6e2ef020, 0x3b06f: 0x6e2ef220, - 0x3b070: 0x6e2ef420, 0x3b071: 0x6e2ef620, 0x3b072: 0x6e364620, 0x3b073: 0x6e364820, - 0x3b074: 0x6e364a20, 0x3b075: 0x6e364c20, 0x3b076: 0x6e364e20, 0x3b077: 0x6e3b7620, - 0x3b078: 0x6e3b7820, 0x3b079: 0x6e3b7a20, 0x3b07a: 0x6e3b7c20, 0x3b07b: 0x6e3f2a20, - 0x3b07c: 0x6e41b620, 0x3b07d: 0x6e41b820, 0x3b07e: 0x6e438c20, 0x3b07f: 0x6d177420, - // Block 0xec2, offset 0x3b080 - 0x3b080: 0x6d177620, 0x3b081: 0x6d45e820, 0x3b082: 0x6d45ea20, 0x3b083: 0x6d45ec20, - 0x3b084: 0x6d45ee20, 0x3b085: 0x6d45f020, 0x3b086: 0x6d45f220, 0x3b087: 0x6d45f420, - 0x3b088: 0x6d45f620, 0x3b089: 0x6d45f820, 0x3b08a: 0x6d72e420, 0x3b08b: 0x6d72e620, - 0x3b08c: 0x6d72e820, 0x3b08d: 0x6d72ea20, 0x3b08e: 0x6d9c6a20, 0x3b08f: 0x6d9c6c20, - 0x3b090: 0x6d9c6e20, 0x3b091: 0x6d9c7020, 0x3b092: 0x6d9c7220, 0x3b093: 0x6d9c7420, - 0x3b094: 0x6d9c7620, 0x3b095: 0x6dbf0220, 0x3b096: 0x6dbf0420, 0x3b097: 0x6dbf0620, - 0x3b098: 0x6dbf0820, 0x3b099: 0x6dbf0a20, 0x3b09a: 0x6ddcdc20, 0x3b09b: 0x6ddcde20, - 0x3b09c: 0x6ddce020, 0x3b09d: 0x6ddce220, 0x3b09e: 0x6df4a620, 0x3b09f: 0x6df4a820, - 0x3b0a0: 0x6e08a020, 0x3b0a1: 0x6e08a220, 0x3b0a2: 0x6e08a420, 0x3b0a3: 0x6e08a620, - 0x3b0a4: 0x6e08a820, 0x3b0a5: 0x6e18ac20, 0x3b0a6: 0x6e18ae20, 0x3b0a7: 0x6e256620, - 0x3b0a8: 0x6e2efa20, 0x3b0a9: 0x6e2efc20, 0x3b0aa: 0x6e2efe20, 0x3b0ab: 0x6e365020, - 0x3b0ac: 0x6e365220, 0x3b0ad: 0x6e3b8020, 0x3b0ae: 0x6e3f2c20, 0x3b0af: 0x6e3f2e20, - 0x3b0b0: 0x6e41ba20, 0x3b0b1: 0x6e41bc20, 0x3b0b2: 0x6e438e20, 0x3b0b3: 0x6e45f020, - 0x3b0b4: 0x6ce84820, 0x3b0b5: 0x6ce84a20, 0x3b0b6: 0x6ce84c20, 0x3b0b7: 0x6ce84e20, - 0x3b0b8: 0x6ce85020, 0x3b0b9: 0x6d177c20, 0x3b0ba: 0x6d177e20, 0x3b0bb: 0x6d178020, - 0x3b0bc: 0x6d178220, 0x3b0bd: 0x6d178420, 0x3b0be: 0x6d178620, 0x3b0bf: 0x6d461620, - // Block 0xec3, offset 0x3b0c0 - 0x3b0c0: 0x6d461820, 0x3b0c1: 0x6d461a20, 0x3b0c2: 0x6d461c20, 0x3b0c3: 0x6d461e20, - 0x3b0c4: 0x6d462020, 0x3b0c5: 0x6d462220, 0x3b0c6: 0x6d462420, 0x3b0c7: 0x6d462620, - 0x3b0c8: 0x6d462820, 0x3b0c9: 0x6d462a20, 0x3b0ca: 0x6d462c20, 0x3b0cb: 0x6d462e20, - 0x3b0cc: 0x6d463020, 0x3b0cd: 0x6d463220, 0x3b0ce: 0x6d463420, 0x3b0cf: 0x6d463620, - 0x3b0d0: 0x6d463820, 0x3b0d1: 0x6d730420, 0x3b0d2: 0x6d730620, 0x3b0d3: 0x6d730820, - 0x3b0d4: 0x6d730a20, 0x3b0d5: 0x6d730c20, 0x3b0d6: 0x6d730e20, 0x3b0d7: 0x6d731020, - 0x3b0d8: 0x6d731220, 0x3b0d9: 0x6d731420, 0x3b0da: 0x6d731620, 0x3b0db: 0x6d731820, - 0x3b0dc: 0x6d731a20, 0x3b0dd: 0x6d731c20, 0x3b0de: 0x6d731e20, 0x3b0df: 0x6d732020, - 0x3b0e0: 0x6d732220, 0x3b0e1: 0x6d732420, 0x3b0e2: 0x6d732620, 0x3b0e3: 0x6d732820, - 0x3b0e4: 0x6d732a20, 0x3b0e5: 0x6d732c20, 0x3b0e6: 0x6d732e20, 0x3b0e7: 0x6d733020, - 0x3b0e8: 0x6d733220, 0x3b0e9: 0x6d733420, 0x3b0ea: 0x6d733620, 0x3b0eb: 0x6d733820, - 0x3b0ec: 0x6d733a20, 0x3b0ed: 0x6d733c20, 0x3b0ee: 0x6d733e20, 0x3b0ef: 0x6d734020, - 0x3b0f0: 0x6d9c9020, 0x3b0f1: 0x6d9c9220, 0x3b0f2: 0x6d9c9420, 0x3b0f3: 0x6d9c9620, - 0x3b0f4: 0x6d9c9820, 0x3b0f5: 0x6d9c9a20, 0x3b0f6: 0x6d9c9c20, 0x3b0f7: 0x6d9c9e20, - 0x3b0f8: 0x6d9ca020, 0x3b0f9: 0x6d9ca220, 0x3b0fa: 0x6d9ca420, 0x3b0fb: 0x6d9ca620, - 0x3b0fc: 0x6d9ca820, 0x3b0fd: 0x6d9caa20, 0x3b0fe: 0x6d9cac20, 0x3b0ff: 0x6d9cae20, - // Block 0xec4, offset 0x3b100 - 0x3b100: 0x6d9cb020, 0x3b101: 0x6d9cb220, 0x3b102: 0x6d9cb420, 0x3b103: 0x6d9cb620, - 0x3b104: 0x6d9cb820, 0x3b105: 0x6d9cba20, 0x3b106: 0x6d9cbc20, 0x3b107: 0x6dbf2220, - 0x3b108: 0x6dbf2420, 0x3b109: 0x6dbf2620, 0x3b10a: 0x6dbf2820, 0x3b10b: 0x6dbf2a20, - 0x3b10c: 0x6dbf2c20, 0x3b10d: 0x6dbf2e20, 0x3b10e: 0x6dbf3020, 0x3b10f: 0x6dbf3220, - 0x3b110: 0x6dbf3420, 0x3b111: 0x6dbf3620, 0x3b112: 0x6dbf3820, 0x3b113: 0x6dbf3a20, - 0x3b114: 0x6dbf3c20, 0x3b115: 0x6dbf3e20, 0x3b116: 0x6dbf4020, 0x3b117: 0x6dbf4220, - 0x3b118: 0x6dbf4420, 0x3b119: 0x6dbf4620, 0x3b11a: 0x6dbf4820, 0x3b11b: 0x6dbf4a20, - 0x3b11c: 0x6dbf4c20, 0x3b11d: 0x6dbf4e20, 0x3b11e: 0x6ddcfc20, 0x3b11f: 0x6ddcfe20, - 0x3b120: 0x6ddd0020, 0x3b121: 0x6ddd0220, 0x3b122: 0x6ddd0420, 0x3b123: 0x6ddd0620, - 0x3b124: 0x6ddd0820, 0x3b125: 0x6ddd0a20, 0x3b126: 0x6ddd0c20, 0x3b127: 0x6ddd0e20, - 0x3b128: 0x6ddd1020, 0x3b129: 0x6ddd1220, 0x3b12a: 0x6ddd1420, 0x3b12b: 0x6ddd1620, - 0x3b12c: 0x6ddd1820, 0x3b12d: 0x6ddd1a20, 0x3b12e: 0x6ddd1c20, 0x3b12f: 0x6ddd1e20, - 0x3b130: 0x6ddd2020, 0x3b131: 0x6ddd2220, 0x3b132: 0x6ddd2420, 0x3b133: 0x6ddd2620, - 0x3b134: 0x6ddd2820, 0x3b135: 0x6ddd2a20, 0x3b136: 0x6ddd2c20, 0x3b137: 0x6ddd2e20, - 0x3b138: 0x6ddd3020, 0x3b139: 0x6ddd3220, 0x3b13a: 0x6df4c020, 0x3b13b: 0x6df4c220, - 0x3b13c: 0x6df4c420, 0x3b13d: 0x6df4c620, 0x3b13e: 0x6df4c820, 0x3b13f: 0x6df4ca20, - // Block 0xec5, offset 0x3b140 - 0x3b140: 0x6df4cc20, 0x3b141: 0x6df4ce20, 0x3b142: 0x6df4d020, 0x3b143: 0x6df4d220, - 0x3b144: 0x6df4d420, 0x3b145: 0x6df4d620, 0x3b146: 0x6df4d820, 0x3b147: 0x6df4da20, - 0x3b148: 0x6df4dc20, 0x3b149: 0x6df4de20, 0x3b14a: 0x6df4e020, 0x3b14b: 0x6df4e220, - 0x3b14c: 0x6df4e420, 0x3b14d: 0x6df4e620, 0x3b14e: 0x6df4e820, 0x3b14f: 0x6df4ea20, - 0x3b150: 0x6df4ec20, 0x3b151: 0x6df4ee20, 0x3b152: 0x6df4f020, 0x3b153: 0x6df4f220, - 0x3b154: 0x6df4f420, 0x3b155: 0x6df4f620, 0x3b156: 0x6e08ba20, 0x3b157: 0x6e08bc20, - 0x3b158: 0x6e08be20, 0x3b159: 0x6e08c020, 0x3b15a: 0x6e08c220, 0x3b15b: 0x6e08c420, - 0x3b15c: 0x6e08c620, 0x3b15d: 0x6e08c820, 0x3b15e: 0x6e08ca20, 0x3b15f: 0x6e08cc20, - 0x3b160: 0x6e08ce20, 0x3b161: 0x6e08d020, 0x3b162: 0x6e08d220, 0x3b163: 0x6e08d420, - 0x3b164: 0x6e08d620, 0x3b165: 0x6e08d820, 0x3b166: 0x6e08da20, 0x3b167: 0x6e08dc20, - 0x3b168: 0x6e08de20, 0x3b169: 0x6e08e020, 0x3b16a: 0x6e08e220, 0x3b16b: 0x6e08e420, - 0x3b16c: 0x6e08e620, 0x3b16d: 0x6e08e820, 0x3b16e: 0x6e08ea20, 0x3b16f: 0x6e18be20, - 0x3b170: 0x6e18c020, 0x3b171: 0x6e18c220, 0x3b172: 0x6e18c420, 0x3b173: 0x6e18c620, - 0x3b174: 0x6e18c820, 0x3b175: 0x6e18ca20, 0x3b176: 0x6e18cc20, 0x3b177: 0x6e18ce20, - 0x3b178: 0x6e18d020, 0x3b179: 0x6e18d220, 0x3b17a: 0x6e18d420, 0x3b17b: 0x6e18d620, - 0x3b17c: 0x6e18d820, 0x3b17d: 0x6e18da20, 0x3b17e: 0x6e18dc20, 0x3b17f: 0x6e18de20, - // Block 0xec6, offset 0x3b180 - 0x3b180: 0x6e18e020, 0x3b181: 0x6e18e220, 0x3b182: 0x6e18e420, 0x3b183: 0x6e257420, - 0x3b184: 0x6e257620, 0x3b185: 0x6e257820, 0x3b186: 0x6e257a20, 0x3b187: 0x6e257c20, - 0x3b188: 0x6e257e20, 0x3b189: 0x6e258020, 0x3b18a: 0x6e258220, 0x3b18b: 0x6e258420, - 0x3b18c: 0x6e258620, 0x3b18d: 0x6e258820, 0x3b18e: 0x6e258a20, 0x3b18f: 0x6e258c20, - 0x3b190: 0x6e258e20, 0x3b191: 0x6e259020, 0x3b192: 0x6e259220, 0x3b193: 0x6e259420, - 0x3b194: 0x6e259620, 0x3b195: 0x6e259820, 0x3b196: 0x6e259a20, 0x3b197: 0x6e259c20, - 0x3b198: 0x6e259e20, 0x3b199: 0x6e25a020, 0x3b19a: 0x6e25a220, 0x3b19b: 0x6e2f0620, - 0x3b19c: 0x6e2f0820, 0x3b19d: 0x6e2f0a20, 0x3b19e: 0x6e2f0c20, 0x3b19f: 0x6e2f0e20, - 0x3b1a0: 0x6e2f1020, 0x3b1a1: 0x6e2f1220, 0x3b1a2: 0x6e2f1420, 0x3b1a3: 0x6e2f1620, - 0x3b1a4: 0x6e2f1820, 0x3b1a5: 0x6e2f1a20, 0x3b1a6: 0x6e366020, 0x3b1a7: 0x6e366220, - 0x3b1a8: 0x6e366420, 0x3b1a9: 0x6e366620, 0x3b1aa: 0x6e366820, 0x3b1ab: 0x6e366a20, - 0x3b1ac: 0x6e366c20, 0x3b1ad: 0x6e366e20, 0x3b1ae: 0x6e367020, 0x3b1af: 0x6e367220, - 0x3b1b0: 0x6e3b8820, 0x3b1b1: 0x6e3b8a20, 0x3b1b2: 0x6e3b8c20, 0x3b1b3: 0x6e3b8e20, - 0x3b1b4: 0x6e3b9020, 0x3b1b5: 0x6e3b9220, 0x3b1b6: 0x6e3b9420, 0x3b1b7: 0x6e3b9620, - 0x3b1b8: 0x6e3b9820, 0x3b1b9: 0x6e3b9a20, 0x3b1ba: 0x6e3f3220, 0x3b1bb: 0x6e3f3420, - 0x3b1bc: 0x6e3f3620, 0x3b1bd: 0x6e3f3820, 0x3b1be: 0x6e3f3a20, 0x3b1bf: 0x6e3f3c20, - // Block 0xec7, offset 0x3b1c0 - 0x3b1c0: 0x6e3f3e20, 0x3b1c1: 0x6e41c020, 0x3b1c2: 0x6e41c220, 0x3b1c3: 0x6e41c420, - 0x3b1c4: 0x6e41c620, 0x3b1c5: 0x6e439020, 0x3b1c6: 0x6e439220, 0x3b1c7: 0x6e439420, - 0x3b1c8: 0x6e45f220, 0x3b1c9: 0x6e465420, 0x3b1ca: 0x6c8ab620, 0x3b1cb: 0x6c8ab820, - 0x3b1cc: 0x6d178c20, 0x3b1cd: 0x6d463e20, 0x3b1ce: 0x6d464020, 0x3b1cf: 0x6d464220, - 0x3b1d0: 0x6d734620, 0x3b1d1: 0x6d9cc220, 0x3b1d2: 0x6dbf5420, 0x3b1d3: 0x6ddd3a20, - 0x3b1d4: 0x6ddd3c20, 0x3b1d5: 0x6e08f020, 0x3b1d6: 0x6e18ea20, 0x3b1d7: 0x6e18ec20, - 0x3b1d8: 0x6e18ee20, 0x3b1d9: 0x6e25a620, 0x3b1da: 0x6e25a820, 0x3b1db: 0x6e2f1c20, - 0x3b1dc: 0x6e367820, 0x3b1dd: 0x6e367a20, 0x3b1de: 0x6e367c20, 0x3b1df: 0x6e439620, - 0x3b1e0: 0x6d734820, 0x3b1e1: 0x6d734a20, 0x3b1e2: 0x6d9cc420, 0x3b1e3: 0x6ddd3e20, - 0x3b1e4: 0x6e08f220, 0x3b1e5: 0x6e18f020, 0x3b1e6: 0x6e18f220, 0x3b1e7: 0x6e25aa20, - 0x3b1e8: 0x6e2f1e20, 0x3b1e9: 0x6e41cc20, 0x3b1ea: 0x6e439820, 0x3b1eb: 0x6d178e20, - 0x3b1ec: 0x6d179020, 0x3b1ed: 0x6d464820, 0x3b1ee: 0x6d464a20, 0x3b1ef: 0x6d734e20, - 0x3b1f0: 0x6d735020, 0x3b1f1: 0x6d9cca20, 0x3b1f2: 0x6d9ccc20, 0x3b1f3: 0x6d9cce20, - 0x3b1f4: 0x6d9cd020, 0x3b1f5: 0x6d9cd220, 0x3b1f6: 0x6d9cd420, 0x3b1f7: 0x6d9cd620, - 0x3b1f8: 0x6d9cd820, 0x3b1f9: 0x6dbf5820, 0x3b1fa: 0x6dbf5a20, 0x3b1fb: 0x6dbf5c20, - 0x3b1fc: 0x6dbf5e20, 0x3b1fd: 0x6dbf6020, 0x3b1fe: 0x6ddd4420, 0x3b1ff: 0x6ddd4620, - // Block 0xec8, offset 0x3b200 - 0x3b200: 0x6ddd4820, 0x3b201: 0x6ddd4a20, 0x3b202: 0x6ddd4c20, 0x3b203: 0x6df4fc20, - 0x3b204: 0x6df4fe20, 0x3b205: 0x6df50020, 0x3b206: 0x6df50220, 0x3b207: 0x6e08f620, - 0x3b208: 0x6e08f820, 0x3b209: 0x6e08fa20, 0x3b20a: 0x6e08fc20, 0x3b20b: 0x6e08fe20, - 0x3b20c: 0x6e18f820, 0x3b20d: 0x6e18fa20, 0x3b20e: 0x6e18fc20, 0x3b20f: 0x6e18fe20, - 0x3b210: 0x6e190020, 0x3b211: 0x6e190220, 0x3b212: 0x6e25b020, 0x3b213: 0x6e25b220, - 0x3b214: 0x6e25b420, 0x3b215: 0x6e25b620, 0x3b216: 0x6e2f2020, 0x3b217: 0x6e2f2220, - 0x3b218: 0x6e2f2420, 0x3b219: 0x6e2f2620, 0x3b21a: 0x6e2f2820, 0x3b21b: 0x6e2f2a20, - 0x3b21c: 0x6e2f2c20, 0x3b21d: 0x6e2f2e20, 0x3b21e: 0x6e2f3020, 0x3b21f: 0x6e2f3220, - 0x3b220: 0x6e367e20, 0x3b221: 0x6e368020, 0x3b222: 0x6e368220, 0x3b223: 0x6e368420, - 0x3b224: 0x6e3ba020, 0x3b225: 0x6e3ba220, 0x3b226: 0x6e3f4020, 0x3b227: 0x6e3f4220, - 0x3b228: 0x6e3f4420, 0x3b229: 0x6e3f4620, 0x3b22a: 0x6e3f4820, 0x3b22b: 0x6e41ce20, - 0x3b22c: 0x6e41d020, 0x3b22d: 0x6e439a20, 0x3b22e: 0x6e439c20, 0x3b22f: 0x6e44cc20, - 0x3b230: 0x6e44ce20, 0x3b231: 0x6e457c20, 0x3b232: 0x6e457e20, 0x3b233: 0x6e458020, - 0x3b234: 0x6e45f420, 0x3b235: 0x6e45f620, 0x3b236: 0x6e465620, 0x3b237: 0x6e470e20, - 0x3b238: 0x6e471020, 0x3b239: 0x6cb73a20, 0x3b23a: 0x6cb73c20, 0x3b23b: 0x6cb73e20, - 0x3b23c: 0x6cb74020, 0x3b23d: 0x6ce85220, 0x3b23e: 0x6ce85420, 0x3b23f: 0x6ce85620, - // Block 0xec9, offset 0x3b240 - 0x3b240: 0x6ce85820, 0x3b241: 0x6ce85a20, 0x3b242: 0x6ce85c20, 0x3b243: 0x6ce85e20, - 0x3b244: 0x6ce86020, 0x3b245: 0x6ce86220, 0x3b246: 0x6ce86420, 0x3b247: 0x6ce86620, - 0x3b248: 0x6ce86820, 0x3b249: 0x6ce86a20, 0x3b24a: 0x6d179420, 0x3b24b: 0x6d179620, - 0x3b24c: 0x6d179820, 0x3b24d: 0x6d179a20, 0x3b24e: 0x6d179c20, 0x3b24f: 0x6d179e20, - 0x3b250: 0x6d17a020, 0x3b251: 0x6d17a220, 0x3b252: 0x6d17a420, 0x3b253: 0x6d17a620, - 0x3b254: 0x6d17a820, 0x3b255: 0x6d17aa20, 0x3b256: 0x6d17ac20, 0x3b257: 0x6d17ae20, - 0x3b258: 0x6d17b020, 0x3b259: 0x6d17b220, 0x3b25a: 0x6d17b420, 0x3b25b: 0x6d17b620, - 0x3b25c: 0x6d17b820, 0x3b25d: 0x6d17ba20, 0x3b25e: 0x6d17bc20, 0x3b25f: 0x6d17be20, - 0x3b260: 0x6d17c020, 0x3b261: 0x6d465a20, 0x3b262: 0x6d465c20, 0x3b263: 0x6d465e20, - 0x3b264: 0x6d466020, 0x3b265: 0x6d466220, 0x3b266: 0x6d466420, 0x3b267: 0x6d466620, - 0x3b268: 0x6d466820, 0x3b269: 0x6d466a20, 0x3b26a: 0x6d466c20, 0x3b26b: 0x6d466e20, - 0x3b26c: 0x6d467020, 0x3b26d: 0x6d467220, 0x3b26e: 0x6d467420, 0x3b26f: 0x6d467620, - 0x3b270: 0x6d467820, 0x3b271: 0x6d467a20, 0x3b272: 0x6d467c20, 0x3b273: 0x6d467e20, - 0x3b274: 0x6d468020, 0x3b275: 0x6d468220, 0x3b276: 0x6d468420, 0x3b277: 0x6d468620, - 0x3b278: 0x6d468820, 0x3b279: 0x6d468a20, 0x3b27a: 0x6d736020, 0x3b27b: 0x6d736220, - 0x3b27c: 0x6d736420, 0x3b27d: 0x6d736620, 0x3b27e: 0x6d736820, 0x3b27f: 0x6d736a20, - // Block 0xeca, offset 0x3b280 - 0x3b280: 0x6d736c20, 0x3b281: 0x6d736e20, 0x3b282: 0x6d737020, 0x3b283: 0x6d737220, - 0x3b284: 0x6d737420, 0x3b285: 0x6d737620, 0x3b286: 0x6d737820, 0x3b287: 0x6d737a20, - 0x3b288: 0x6d737c20, 0x3b289: 0x6d737e20, 0x3b28a: 0x6d738020, 0x3b28b: 0x6d738220, - 0x3b28c: 0x6d9ce020, 0x3b28d: 0x6d9ce220, 0x3b28e: 0x6d9ce420, 0x3b28f: 0x6d9ce620, - 0x3b290: 0x6d9ce820, 0x3b291: 0x6d9cea20, 0x3b292: 0x6d9cec20, 0x3b293: 0x6d9cee20, - 0x3b294: 0x6d9cf020, 0x3b295: 0x6d9cf220, 0x3b296: 0x6d9cf420, 0x3b297: 0x6d9cf620, - 0x3b298: 0x6d9cf820, 0x3b299: 0x6d9cfa20, 0x3b29a: 0x6d9cfc20, 0x3b29b: 0x6d9cfe20, - 0x3b29c: 0x6d9d0020, 0x3b29d: 0x6d9d0220, 0x3b29e: 0x6d9d0420, 0x3b29f: 0x6d9d0620, - 0x3b2a0: 0x6d9d0820, 0x3b2a1: 0x6d9d0a20, 0x3b2a2: 0x6dbf6620, 0x3b2a3: 0x6dbf6820, - 0x3b2a4: 0x6dbf6a20, 0x3b2a5: 0x6dbf6c20, 0x3b2a6: 0x6dbf6e20, 0x3b2a7: 0x6dbf7020, - 0x3b2a8: 0x6dbf7220, 0x3b2a9: 0x6dbf7420, 0x3b2aa: 0x6dbf7620, 0x3b2ab: 0x6dbf7820, - 0x3b2ac: 0x6dbf7a20, 0x3b2ad: 0x6dbf7c20, 0x3b2ae: 0x6dbf7e20, 0x3b2af: 0x6dbf8020, - 0x3b2b0: 0x6dbf8220, 0x3b2b1: 0x6dbf8420, 0x3b2b2: 0x6dbf8620, 0x3b2b3: 0x6dbf8820, - 0x3b2b4: 0x6dbf8a20, 0x3b2b5: 0x6ddd6220, 0x3b2b6: 0x6ddd6420, 0x3b2b7: 0x6ddd6620, - 0x3b2b8: 0x6ddd6820, 0x3b2b9: 0x6ddd6a20, 0x3b2ba: 0x6ddd6c20, 0x3b2bb: 0x6ddd6e20, - 0x3b2bc: 0x6ddd7020, 0x3b2bd: 0x6ddd7220, 0x3b2be: 0x6ddd7420, 0x3b2bf: 0x6ddd7620, - // Block 0xecb, offset 0x3b2c0 - 0x3b2c0: 0x6ddd7820, 0x3b2c1: 0x6ddd7a20, 0x3b2c2: 0x6ddd7c20, 0x3b2c3: 0x6ddd7e20, - 0x3b2c4: 0x6ddd8020, 0x3b2c5: 0x6ddd8220, 0x3b2c6: 0x6df50820, 0x3b2c7: 0x6df50a20, - 0x3b2c8: 0x6df50c20, 0x3b2c9: 0x6df50e20, 0x3b2ca: 0x6df51020, 0x3b2cb: 0x6df51220, - 0x3b2cc: 0x6df51420, 0x3b2cd: 0x6df51620, 0x3b2ce: 0x6df51820, 0x3b2cf: 0x6df51a20, - 0x3b2d0: 0x6e090420, 0x3b2d1: 0x6e090620, 0x3b2d2: 0x6e090820, 0x3b2d3: 0x6e090a20, - 0x3b2d4: 0x6e090c20, 0x3b2d5: 0x6e090e20, 0x3b2d6: 0x6e091020, 0x3b2d7: 0x6e091220, - 0x3b2d8: 0x6e091420, 0x3b2d9: 0x6e091620, 0x3b2da: 0x6e091820, 0x3b2db: 0x6e091a20, - 0x3b2dc: 0x6e190e20, 0x3b2dd: 0x6e191020, 0x3b2de: 0x6e191220, 0x3b2df: 0x6e191420, - 0x3b2e0: 0x6e191620, 0x3b2e1: 0x6e191820, 0x3b2e2: 0x6e191a20, 0x3b2e3: 0x6e191c20, - 0x3b2e4: 0x6e191e20, 0x3b2e5: 0x6e192020, 0x3b2e6: 0x6e192220, 0x3b2e7: 0x6e192420, - 0x3b2e8: 0x6e192620, 0x3b2e9: 0x6e192820, 0x3b2ea: 0x6e192a20, 0x3b2eb: 0x6e192c20, - 0x3b2ec: 0x6e192e20, 0x3b2ed: 0x6e193020, 0x3b2ee: 0x6e25c220, 0x3b2ef: 0x6e25c420, - 0x3b2f0: 0x6e25c620, 0x3b2f1: 0x6e2f3620, 0x3b2f2: 0x6e2f3820, 0x3b2f3: 0x6e2f3a20, - 0x3b2f4: 0x6e2f3c20, 0x3b2f5: 0x6e2f3e20, 0x3b2f6: 0x6e2f4020, 0x3b2f7: 0x6e2f4220, - 0x3b2f8: 0x6e2f4420, 0x3b2f9: 0x6e2f4620, 0x3b2fa: 0x6e369020, 0x3b2fb: 0x6e369220, - 0x3b2fc: 0x6e369420, 0x3b2fd: 0x6e369620, 0x3b2fe: 0x6e369820, 0x3b2ff: 0x6e3ba420, - // Block 0xecc, offset 0x3b300 - 0x3b300: 0x6e3f4a20, 0x3b301: 0x6e3f4c20, 0x3b302: 0x6e3f4e20, 0x3b303: 0x6e3f5020, - 0x3b304: 0x6e41d220, 0x3b305: 0x6e41d420, 0x3b306: 0x6e43a020, 0x3b307: 0x6e43a220, - 0x3b308: 0x6e44d020, 0x3b309: 0x6e45f820, 0x3b30a: 0x6e465820, 0x3b30b: 0x6cb74820, - 0x3b30c: 0x6d17ce20, 0x3b30d: 0x6d17d020, 0x3b30e: 0x6d17d220, 0x3b30f: 0x6d17d420, - 0x3b310: 0x6d17d620, 0x3b311: 0x6d17d820, 0x3b312: 0x6d17da20, 0x3b313: 0x6d17dc20, - 0x3b314: 0x6d469a20, 0x3b315: 0x6d469c20, 0x3b316: 0x6d469e20, 0x3b317: 0x6d46a020, - 0x3b318: 0x6d46a220, 0x3b319: 0x6d46a420, 0x3b31a: 0x6d46a620, 0x3b31b: 0x6d46a820, - 0x3b31c: 0x6d46aa20, 0x3b31d: 0x6d46ac20, 0x3b31e: 0x6d46ae20, 0x3b31f: 0x6d46b020, - 0x3b320: 0x6d73c420, 0x3b321: 0x6d73c620, 0x3b322: 0x6d73c820, 0x3b323: 0x6d73ca20, - 0x3b324: 0x6d73cc20, 0x3b325: 0x6d73ce20, 0x3b326: 0x6d73d020, 0x3b327: 0x6d73d220, - 0x3b328: 0x6d73d420, 0x3b329: 0x6d73d620, 0x3b32a: 0x6d73d820, 0x3b32b: 0x6d73da20, - 0x3b32c: 0x6d73dc20, 0x3b32d: 0x6d73de20, 0x3b32e: 0x6d73e020, 0x3b32f: 0x6d73e220, - 0x3b330: 0x6d73e420, 0x3b331: 0x6d73e620, 0x3b332: 0x6d73e820, 0x3b333: 0x6d73ea20, - 0x3b334: 0x6d73ec20, 0x3b335: 0x6d73ee20, 0x3b336: 0x6d73f020, 0x3b337: 0x6d73f220, - 0x3b338: 0x6d73f420, 0x3b339: 0x6d73f620, 0x3b33a: 0x6d73f820, 0x3b33b: 0x6d73fa20, - 0x3b33c: 0x6d73fc20, 0x3b33d: 0x6d73fe20, 0x3b33e: 0x6d740020, 0x3b33f: 0x6d740220, - // Block 0xecd, offset 0x3b340 - 0x3b340: 0x6d740420, 0x3b341: 0x6d9d6220, 0x3b342: 0x6d9d6420, 0x3b343: 0x6d9d6620, - 0x3b344: 0x6d9d6820, 0x3b345: 0x6d9d6a20, 0x3b346: 0x6d9d6c20, 0x3b347: 0x6d9d6e20, - 0x3b348: 0x6d9d7020, 0x3b349: 0x6d9d7220, 0x3b34a: 0x6d9d7420, 0x3b34b: 0x6d9d7620, - 0x3b34c: 0x6d9d7820, 0x3b34d: 0x6d9d7a20, 0x3b34e: 0x6d9d7c20, 0x3b34f: 0x6d9d7e20, - 0x3b350: 0x6d9d8020, 0x3b351: 0x6d9d8220, 0x3b352: 0x6d9d8420, 0x3b353: 0x6d9d8620, - 0x3b354: 0x6d9d8820, 0x3b355: 0x6d9d8a20, 0x3b356: 0x6d9d8c20, 0x3b357: 0x6d9d8e20, - 0x3b358: 0x6d9d9020, 0x3b359: 0x6d9d9220, 0x3b35a: 0x6d9d9420, 0x3b35b: 0x6d9d9620, - 0x3b35c: 0x6d9d9820, 0x3b35d: 0x6d9d9a20, 0x3b35e: 0x6d9d9c20, 0x3b35f: 0x6d9d9e20, - 0x3b360: 0x6d9da020, 0x3b361: 0x6dbfd420, 0x3b362: 0x6dbfd620, 0x3b363: 0x6dbfd820, - 0x3b364: 0x6dbfda20, 0x3b365: 0x6dbfdc20, 0x3b366: 0x6dbfde20, 0x3b367: 0x6dbfe020, - 0x3b368: 0x6dbfe220, 0x3b369: 0x6dbfe420, 0x3b36a: 0x6dbfe620, 0x3b36b: 0x6dbfe820, - 0x3b36c: 0x6dbfea20, 0x3b36d: 0x6dbfec20, 0x3b36e: 0x6dbfee20, 0x3b36f: 0x6dbff020, - 0x3b370: 0x6dbff220, 0x3b371: 0x6dbff420, 0x3b372: 0x6dbff620, 0x3b373: 0x6dbff820, - 0x3b374: 0x6dbffa20, 0x3b375: 0x6dbffc20, 0x3b376: 0x6dbffe20, 0x3b377: 0x6d46b220, - 0x3b378: 0x6dc00020, 0x3b379: 0x6dc00220, 0x3b37a: 0x6dc00420, 0x3b37b: 0x6dc00620, - 0x3b37c: 0x6dc00820, 0x3b37d: 0x6dc00a20, 0x3b37e: 0x6dc00c20, 0x3b37f: 0x6dc00e20, - // Block 0xece, offset 0x3b380 - 0x3b380: 0x6dc01020, 0x3b381: 0x6dc01220, 0x3b382: 0x6dc01420, 0x3b383: 0x6dc01620, - 0x3b384: 0x6dc01820, 0x3b385: 0x6dc01a20, 0x3b386: 0x6dc01c20, 0x3b387: 0x6dc01e20, - 0x3b388: 0x6dc02020, 0x3b389: 0x6dc02220, 0x3b38a: 0x6dc02420, 0x3b38b: 0x6dc02620, - 0x3b38c: 0x6dc02820, 0x3b38d: 0x6dddd220, 0x3b38e: 0x6dddd420, 0x3b38f: 0x6dddd620, - 0x3b390: 0x6dddd820, 0x3b391: 0x6dddda20, 0x3b392: 0x6ddddc20, 0x3b393: 0x6dddde20, - 0x3b394: 0x6ddde020, 0x3b395: 0x6ddde220, 0x3b396: 0x6ddde420, 0x3b397: 0x6ddde620, - 0x3b398: 0x6ddde820, 0x3b399: 0x6dddea20, 0x3b39a: 0x6dddec20, 0x3b39b: 0x6dddee20, - 0x3b39c: 0x6dddf020, 0x3b39d: 0x6dddf220, 0x3b39e: 0x6dddf420, 0x3b39f: 0x6dddf620, - 0x3b3a0: 0x6dddf820, 0x3b3a1: 0x6dddfa20, 0x3b3a2: 0x6dddfc20, 0x3b3a3: 0x6dddfe20, - 0x3b3a4: 0x6dde0020, 0x3b3a5: 0x6dde0220, 0x3b3a6: 0x6dde0420, 0x3b3a7: 0x6dde0620, - 0x3b3a8: 0x6dde0820, 0x3b3a9: 0x6dde0a20, 0x3b3aa: 0x6dde0c20, 0x3b3ab: 0x6dde0e20, - 0x3b3ac: 0x6dde1020, 0x3b3ad: 0x6dde1220, 0x3b3ae: 0x6dde1420, 0x3b3af: 0x6dde1620, - 0x3b3b0: 0x6dde1820, 0x3b3b1: 0x6dde1a20, 0x3b3b2: 0x6dde1c20, 0x3b3b3: 0x6dde1e20, - 0x3b3b4: 0x6dde2020, 0x3b3b5: 0x6dde2220, 0x3b3b6: 0x6dde2420, 0x3b3b7: 0x6df58620, - 0x3b3b8: 0x6df58820, 0x3b3b9: 0x6df58a20, 0x3b3ba: 0x6df58c20, 0x3b3bb: 0x6df58e20, - 0x3b3bc: 0x6df59020, 0x3b3bd: 0x6df59220, 0x3b3be: 0x6df59420, 0x3b3bf: 0x6df59620, - // Block 0xecf, offset 0x3b3c0 - 0x3b3c0: 0x6df59820, 0x3b3c1: 0x6df59a20, 0x3b3c2: 0x6df59c20, 0x3b3c3: 0x6df59e20, - 0x3b3c4: 0x6df5a020, 0x3b3c5: 0x6df5a220, 0x3b3c6: 0x6df5a420, 0x3b3c7: 0x6df5a620, - 0x3b3c8: 0x6df5a820, 0x3b3c9: 0x6df5aa20, 0x3b3ca: 0x6df5ac20, 0x3b3cb: 0x6df5ae20, - 0x3b3cc: 0x6df5b020, 0x3b3cd: 0x6df5b220, 0x3b3ce: 0x6df5b420, 0x3b3cf: 0x6df5b620, - 0x3b3d0: 0x6df5b820, 0x3b3d1: 0x6df5ba20, 0x3b3d2: 0x6df5bc20, 0x3b3d3: 0x6df5be20, - 0x3b3d4: 0x6df5c020, 0x3b3d5: 0x6df5c220, 0x3b3d6: 0x6df5c420, 0x3b3d7: 0x6df5c620, - 0x3b3d8: 0x6df5c820, 0x3b3d9: 0x6df5ca20, 0x3b3da: 0x6df5cc20, 0x3b3db: 0x6df5ce20, - 0x3b3dc: 0x6df5d020, 0x3b3dd: 0x6df5d220, 0x3b3de: 0x6df5d420, 0x3b3df: 0x6df5d620, - 0x3b3e0: 0x6df5d820, 0x3b3e1: 0x6df5da20, 0x3b3e2: 0x6df5dc20, 0x3b3e3: 0x6df5de20, - 0x3b3e4: 0x6df5e020, 0x3b3e5: 0x6df5e220, 0x3b3e6: 0x6df5e420, 0x3b3e7: 0x6df5e620, - 0x3b3e8: 0x6df5e820, 0x3b3e9: 0x6df5ea20, 0x3b3ea: 0x6df5ec20, 0x3b3eb: 0x6df5ee20, - 0x3b3ec: 0x6df5f020, 0x3b3ed: 0x6df5f220, 0x3b3ee: 0x6df5f420, 0x3b3ef: 0x6df5f620, - 0x3b3f0: 0x6df5f820, 0x3b3f1: 0x6df5fa20, 0x3b3f2: 0x6df5fc20, 0x3b3f3: 0x6df5fe20, - 0x3b3f4: 0x6df60020, 0x3b3f5: 0x6df60220, 0x3b3f6: 0x6df60420, 0x3b3f7: 0x6df60620, - 0x3b3f8: 0x6df60820, 0x3b3f9: 0x6df60a20, 0x3b3fa: 0x6df60c20, 0x3b3fb: 0x6df60e20, - 0x3b3fc: 0x6df61020, 0x3b3fd: 0x6df61220, 0x3b3fe: 0x6e097a20, 0x3b3ff: 0x6e097c20, - // Block 0xed0, offset 0x3b400 - 0x3b400: 0x6e097e20, 0x3b401: 0x6e098020, 0x3b402: 0x6e098220, 0x3b403: 0x6e098420, - 0x3b404: 0x6e098620, 0x3b405: 0x6e098820, 0x3b406: 0x6e098a20, 0x3b407: 0x6e098c20, - 0x3b408: 0x6e098e20, 0x3b409: 0x6e099020, 0x3b40a: 0x6e099220, 0x3b40b: 0x6e099420, - 0x3b40c: 0x6e099620, 0x3b40d: 0x6e099820, 0x3b40e: 0x6e099a20, 0x3b40f: 0x6e099c20, - 0x3b410: 0x6e099e20, 0x3b411: 0x6e09a020, 0x3b412: 0x6e09a220, 0x3b413: 0x6e09a420, - 0x3b414: 0x6e09a620, 0x3b415: 0x6e09a820, 0x3b416: 0x6e09aa20, 0x3b417: 0x6e09ac20, - 0x3b418: 0x6e09ae20, 0x3b419: 0x6e09b020, 0x3b41a: 0x6e09b220, 0x3b41b: 0x6e09b420, - 0x3b41c: 0x6e09b620, 0x3b41d: 0x6e09b820, 0x3b41e: 0x6e09ba20, 0x3b41f: 0x6e09bc20, - 0x3b420: 0x6e09be20, 0x3b421: 0x6e09c020, 0x3b422: 0x6e09c220, 0x3b423: 0x6e09c420, - 0x3b424: 0x6e09c620, 0x3b425: 0x6e09c820, 0x3b426: 0x6e09ca20, 0x3b427: 0x6e09cc20, - 0x3b428: 0x6e09ce20, 0x3b429: 0x6e09d020, 0x3b42a: 0x6e09d220, 0x3b42b: 0x6e09d420, - 0x3b42c: 0x6e09d620, 0x3b42d: 0x6e09d820, 0x3b42e: 0x6e09da20, 0x3b42f: 0x6e09dc20, - 0x3b430: 0x6e09de20, 0x3b431: 0x6e196e20, 0x3b432: 0x6e197020, 0x3b433: 0x6e197220, - 0x3b434: 0x6e197420, 0x3b435: 0x6e197620, 0x3b436: 0x6e197820, 0x3b437: 0x6e197a20, - 0x3b438: 0x6e197c20, 0x3b439: 0x6e197e20, 0x3b43a: 0x6e198020, 0x3b43b: 0x6e198220, - 0x3b43c: 0x6e198420, 0x3b43d: 0x6e198620, 0x3b43e: 0x6e198820, 0x3b43f: 0x6e198a20, - // Block 0xed1, offset 0x3b440 - 0x3b440: 0x6e198c20, 0x3b441: 0x6e198e20, 0x3b442: 0x6e199020, 0x3b443: 0x6e199220, - 0x3b444: 0x6e199420, 0x3b445: 0x6e199620, 0x3b446: 0x6e199820, 0x3b447: 0x6e199a20, - 0x3b448: 0x6e199c20, 0x3b449: 0x6e199e20, 0x3b44a: 0x6e19a020, 0x3b44b: 0x6e19a220, - 0x3b44c: 0x6e19a420, 0x3b44d: 0x6e19a620, 0x3b44e: 0x6e19a820, 0x3b44f: 0x6e19aa20, - 0x3b450: 0x6e19ac20, 0x3b451: 0x6e19ae20, 0x3b452: 0x6e19b020, 0x3b453: 0x6e19b220, - 0x3b454: 0x6e19b420, 0x3b455: 0x6e19b620, 0x3b456: 0x6e19b820, 0x3b457: 0x6e19ba20, - 0x3b458: 0x6e19bc20, 0x3b459: 0x6e19be20, 0x3b45a: 0x6e19c020, 0x3b45b: 0x6e19c220, - 0x3b45c: 0x6e19c420, 0x3b45d: 0x6e19c620, 0x3b45e: 0x6e19c820, 0x3b45f: 0x6e19ca20, - 0x3b460: 0x6e19cc20, 0x3b461: 0x6e19ce20, 0x3b462: 0x6e19d020, 0x3b463: 0x6e19d220, - 0x3b464: 0x6e19d420, 0x3b465: 0x6e19d620, 0x3b466: 0x6e19d820, 0x3b467: 0x6e19da20, - 0x3b468: 0x6e19dc20, 0x3b469: 0x6e19de20, 0x3b46a: 0x6e19e020, 0x3b46b: 0x6e19e220, - 0x3b46c: 0x6e19e420, 0x3b46d: 0x6e260e20, 0x3b46e: 0x6e261020, 0x3b46f: 0x6e261220, - 0x3b470: 0x6e261420, 0x3b471: 0x6e261620, 0x3b472: 0x6e261820, 0x3b473: 0x6e261a20, - 0x3b474: 0x6e261c20, 0x3b475: 0x6e261e20, 0x3b476: 0x6e262020, 0x3b477: 0x6e262220, - 0x3b478: 0x6e262420, 0x3b479: 0x6e262620, 0x3b47a: 0x6e262820, 0x3b47b: 0x6e262a20, - 0x3b47c: 0x6e262c20, 0x3b47d: 0x6e262e20, 0x3b47e: 0x6e263020, 0x3b47f: 0x6e263220, - // Block 0xed2, offset 0x3b480 - 0x3b480: 0x6e263420, 0x3b481: 0x6e263620, 0x3b482: 0x6e263820, 0x3b483: 0x6e263a20, - 0x3b484: 0x6e263c20, 0x3b485: 0x6e263e20, 0x3b486: 0x6e264020, 0x3b487: 0x6e264220, - 0x3b488: 0x6e264420, 0x3b489: 0x6e264620, 0x3b48a: 0x6e264820, 0x3b48b: 0x6e264a20, - 0x3b48c: 0x6e264c20, 0x3b48d: 0x6e264e20, 0x3b48e: 0x6e265020, 0x3b48f: 0x6e265220, - 0x3b490: 0x6e265420, 0x3b491: 0x6e265620, 0x3b492: 0x6e265820, 0x3b493: 0x6e265a20, - 0x3b494: 0x6e265c20, 0x3b495: 0x6e265e20, 0x3b496: 0x6e266020, 0x3b497: 0x6e266220, - 0x3b498: 0x6e2f7a20, 0x3b499: 0x6e2f7c20, 0x3b49a: 0x6e2f7e20, 0x3b49b: 0x6e2f8020, - 0x3b49c: 0x6e2f8220, 0x3b49d: 0x6e2f8420, 0x3b49e: 0x6e2f8620, 0x3b49f: 0x6e2f8820, - 0x3b4a0: 0x6e2f8a20, 0x3b4a1: 0x6e2f8c20, 0x3b4a2: 0x6e2f8e20, 0x3b4a3: 0x6e2f9020, - 0x3b4a4: 0x6e2f9220, 0x3b4a5: 0x6e2f9420, 0x3b4a6: 0x6e2f9620, 0x3b4a7: 0x6e2f9820, - 0x3b4a8: 0x6e2f9a20, 0x3b4a9: 0x6e2f9c20, 0x3b4aa: 0x6e2f9e20, 0x3b4ab: 0x6e2fa020, - 0x3b4ac: 0x6e2fa220, 0x3b4ad: 0x6e2fa420, 0x3b4ae: 0x6e2fa620, 0x3b4af: 0x6e2fa820, - 0x3b4b0: 0x6e2faa20, 0x3b4b1: 0x6e2fac20, 0x3b4b2: 0x6e2fae20, 0x3b4b3: 0x6e2fb020, - 0x3b4b4: 0x6e2fb220, 0x3b4b5: 0x6e2fb420, 0x3b4b6: 0x6e2fb620, 0x3b4b7: 0x6e2fb820, - 0x3b4b8: 0x6e2fba20, 0x3b4b9: 0x6e2fbc20, 0x3b4ba: 0x6e2fbe20, 0x3b4bb: 0x6e2fc020, - 0x3b4bc: 0x6e2fc220, 0x3b4bd: 0x6e2fc420, 0x3b4be: 0x6e2fc620, 0x3b4bf: 0x6e2fc820, - // Block 0xed3, offset 0x3b4c0 - 0x3b4c0: 0x6e2fca20, 0x3b4c1: 0x6e2fcc20, 0x3b4c2: 0x6e36c220, 0x3b4c3: 0x6e36c420, - 0x3b4c4: 0x6e36c620, 0x3b4c5: 0x6e36c820, 0x3b4c6: 0x6e36ca20, 0x3b4c7: 0x6e36cc20, - 0x3b4c8: 0x6e36ce20, 0x3b4c9: 0x6e36d020, 0x3b4ca: 0x6e36d220, 0x3b4cb: 0x6e36d420, - 0x3b4cc: 0x6e36d620, 0x3b4cd: 0x6e36d820, 0x3b4ce: 0x6e36da20, 0x3b4cf: 0x6e36dc20, - 0x3b4d0: 0x6e36de20, 0x3b4d1: 0x6e36e020, 0x3b4d2: 0x6e36e220, 0x3b4d3: 0x6e36e420, - 0x3b4d4: 0x6e36e620, 0x3b4d5: 0x6e36e820, 0x3b4d6: 0x6e36ea20, 0x3b4d7: 0x6e36ec20, - 0x3b4d8: 0x6e36ee20, 0x3b4d9: 0x6e36f020, 0x3b4da: 0x6e36f220, 0x3b4db: 0x6e36f420, - 0x3b4dc: 0x6e36f620, 0x3b4dd: 0x6e36f820, 0x3b4de: 0x6e36fa20, 0x3b4df: 0x6e36fc20, - 0x3b4e0: 0x6e36fe20, 0x3b4e1: 0x6e370020, 0x3b4e2: 0x6e370220, 0x3b4e3: 0x6e370420, - 0x3b4e4: 0x6e370620, 0x3b4e5: 0x6e3bb620, 0x3b4e6: 0x6e3bb820, 0x3b4e7: 0x6e3bba20, - 0x3b4e8: 0x6e3bbc20, 0x3b4e9: 0x6e3bbe20, 0x3b4ea: 0x6e3bc020, 0x3b4eb: 0x6e3bc220, - 0x3b4ec: 0x6e3bc420, 0x3b4ed: 0x6e3bc620, 0x3b4ee: 0x6e3bc820, 0x3b4ef: 0x6e3bca20, - 0x3b4f0: 0x6e3bcc20, 0x3b4f1: 0x6e3bce20, 0x3b4f2: 0x6e3bd020, 0x3b4f3: 0x6e3bd220, - 0x3b4f4: 0x6e3bd420, 0x3b4f5: 0x6e3bd620, 0x3b4f6: 0x6e3bd820, 0x3b4f7: 0x6e3bda20, - 0x3b4f8: 0x6e3bdc20, 0x3b4f9: 0x6e3bde20, 0x3b4fa: 0x6e3be020, 0x3b4fb: 0x6e3f6020, - 0x3b4fc: 0x6e3f6220, 0x3b4fd: 0x6e3f6420, 0x3b4fe: 0x6e3f6620, 0x3b4ff: 0x6e3f6820, - // Block 0xed4, offset 0x3b500 - 0x3b500: 0x6e3f6a20, 0x3b501: 0x6e3f6c20, 0x3b502: 0x6e3f6e20, 0x3b503: 0x6e3f7020, - 0x3b504: 0x6e3f7220, 0x3b505: 0x6e3f7420, 0x3b506: 0x6e3f7620, 0x3b507: 0x6e3f7820, - 0x3b508: 0x6e3f7a20, 0x3b509: 0x6e3f7c20, 0x3b50a: 0x6e3f7e20, 0x3b50b: 0x6e3f8020, - 0x3b50c: 0x6e3f8220, 0x3b50d: 0x6e41de20, 0x3b50e: 0x6e41e020, 0x3b50f: 0x6e41e220, - 0x3b510: 0x6e41e420, 0x3b511: 0x6e41e620, 0x3b512: 0x6e41e820, 0x3b513: 0x6e41ea20, - 0x3b514: 0x6e41ec20, 0x3b515: 0x6e41ee20, 0x3b516: 0x6e41f020, 0x3b517: 0x6e41f220, - 0x3b518: 0x6e41f420, 0x3b519: 0x6e41f620, 0x3b51a: 0x6e43a420, 0x3b51b: 0x6e43a620, - 0x3b51c: 0x6e43a820, 0x3b51d: 0x6e43aa20, 0x3b51e: 0x6e43ac20, 0x3b51f: 0x6e43ae20, - 0x3b520: 0x6e43b020, 0x3b521: 0x6e43b220, 0x3b522: 0x6e43b420, 0x3b523: 0x6e43b620, - 0x3b524: 0x6e43b820, 0x3b525: 0x6e43ba20, 0x3b526: 0x6e43bc20, 0x3b527: 0x6e44d420, - 0x3b528: 0x6e44d620, 0x3b529: 0x6e44d820, 0x3b52a: 0x6e44da20, 0x3b52b: 0x6e44dc20, - 0x3b52c: 0x6e44de20, 0x3b52d: 0x6e44e020, 0x3b52e: 0x6e44e220, 0x3b52f: 0x6e44e420, - 0x3b530: 0x6e458420, 0x3b531: 0x6e458620, 0x3b532: 0x6e458820, 0x3b533: 0x6e45fa20, - 0x3b534: 0x6e45fc20, 0x3b535: 0x6e465a20, 0x3b536: 0x6e465c20, 0x3b537: 0x6e465e20, - 0x3b538: 0x6e466020, 0x3b539: 0x6ce87820, 0x3b53a: 0x6ce87a20, 0x3b53b: 0x6ce87c20, - 0x3b53c: 0x6d46d420, 0x3b53d: 0x6d46d620, 0x3b53e: 0x6d46d820, 0x3b53f: 0x6d46da20, - // Block 0xed5, offset 0x3b540 - 0x3b540: 0x6d17fa20, 0x3b541: 0x6d742620, 0x3b542: 0x6d742820, 0x3b543: 0x6d742a20, - 0x3b544: 0x6d742c20, 0x3b545: 0x6d9dce20, 0x3b546: 0x6d9dd020, 0x3b547: 0x6d9dd220, - 0x3b548: 0x6d9dd420, 0x3b549: 0x6d742e20, 0x3b54a: 0x6dc05a20, 0x3b54b: 0x6dc05c20, - 0x3b54c: 0x6df63020, 0x3b54d: 0x6e1a0020, 0x3b54e: 0x6e2fdc20, 0x3b54f: 0x6ce88820, - 0x3b550: 0x6ce88a20, 0x3b551: 0x6ce88c20, 0x3b552: 0x6d181a20, 0x3b553: 0x6d181c20, - 0x3b554: 0x6d181e20, 0x3b555: 0x6d182020, 0x3b556: 0x6d182220, 0x3b557: 0x6d182420, - 0x3b558: 0x6d182620, 0x3b559: 0x6d182820, 0x3b55a: 0x6d182a20, 0x3b55b: 0x6d182c20, - 0x3b55c: 0x6d182e20, 0x3b55d: 0x6d470020, 0x3b55e: 0x6d470220, 0x3b55f: 0x6d470420, - 0x3b560: 0x6d470620, 0x3b561: 0x6d470820, 0x3b562: 0x6d470a20, 0x3b563: 0x6d470c20, - 0x3b564: 0x6d470e20, 0x3b565: 0x6d471020, 0x3b566: 0x6d471220, 0x3b567: 0x6d471420, - 0x3b568: 0x6d471620, 0x3b569: 0x6d471820, 0x3b56a: 0x6d471a20, 0x3b56b: 0x6d471c20, - 0x3b56c: 0x6d471e20, 0x3b56d: 0x6d472020, 0x3b56e: 0x6d472220, 0x3b56f: 0x6d472420, - 0x3b570: 0x6d747e20, 0x3b571: 0x6d748020, 0x3b572: 0x6d748220, 0x3b573: 0x6d748420, - 0x3b574: 0x6d748620, 0x3b575: 0x6d748820, 0x3b576: 0x6d748a20, 0x3b577: 0x6d748c20, - 0x3b578: 0x6d748e20, 0x3b579: 0x6d749020, 0x3b57a: 0x6d749220, 0x3b57b: 0x6d749420, - 0x3b57c: 0x6d749620, 0x3b57d: 0x6d749820, 0x3b57e: 0x6d749a20, 0x3b57f: 0x6d749c20, - // Block 0xed6, offset 0x3b580 - 0x3b580: 0x6d749e20, 0x3b581: 0x6d74a020, 0x3b582: 0x6d74a220, 0x3b583: 0x6d74a420, - 0x3b584: 0x6d74a620, 0x3b585: 0x6d74a820, 0x3b586: 0x6d74aa20, 0x3b587: 0x6d74ac20, - 0x3b588: 0x6d74ae20, 0x3b589: 0x6d74b020, 0x3b58a: 0x6d74b220, 0x3b58b: 0x6d74b420, - 0x3b58c: 0x6d74b620, 0x3b58d: 0x6d74b820, 0x3b58e: 0x6d74ba20, 0x3b58f: 0x6d74bc20, - 0x3b590: 0x6d74be20, 0x3b591: 0x6d74c020, 0x3b592: 0x6d74c220, 0x3b593: 0x6d74c420, - 0x3b594: 0x6d74c620, 0x3b595: 0x6d74c820, 0x3b596: 0x6d74ca20, 0x3b597: 0x6d74cc20, - 0x3b598: 0x6d74ce20, 0x3b599: 0x6d74d020, 0x3b59a: 0x6d74d220, 0x3b59b: 0x6d74d420, - 0x3b59c: 0x6d9e4220, 0x3b59d: 0x6d9e4420, 0x3b59e: 0x6d9e4620, 0x3b59f: 0x6d9e4820, - 0x3b5a0: 0x6d9e4a20, 0x3b5a1: 0x6d9e4c20, 0x3b5a2: 0x6d9e4e20, 0x3b5a3: 0x6d9e5020, - 0x3b5a4: 0x6d9e5220, 0x3b5a5: 0x6d9e5420, 0x3b5a6: 0x6d9e5620, 0x3b5a7: 0x6d9e5820, - 0x3b5a8: 0x6d9e5a20, 0x3b5a9: 0x6d9e5c20, 0x3b5aa: 0x6d9e5e20, 0x3b5ab: 0x6d9e6020, - 0x3b5ac: 0x6d9e6220, 0x3b5ad: 0x6d9e6420, 0x3b5ae: 0x6d9e6620, 0x3b5af: 0x6d9e6820, - 0x3b5b0: 0x6d9e6a20, 0x3b5b1: 0x6d9e6c20, 0x3b5b2: 0x6d9e6e20, 0x3b5b3: 0x6d9e7020, - 0x3b5b4: 0x6d9e7220, 0x3b5b5: 0x6d9e7420, 0x3b5b6: 0x6d9e7620, 0x3b5b7: 0x6d9e7820, - 0x3b5b8: 0x6d9e7a20, 0x3b5b9: 0x6d9e7c20, 0x3b5ba: 0x6d9e7e20, 0x3b5bb: 0x6d9e8020, - 0x3b5bc: 0x6d9e8220, 0x3b5bd: 0x6d9e8420, 0x3b5be: 0x6d9e8620, 0x3b5bf: 0x6d9e8820, - // Block 0xed7, offset 0x3b5c0 - 0x3b5c0: 0x6d9e8a20, 0x3b5c1: 0x6d9e8c20, 0x3b5c2: 0x6d9e8e20, 0x3b5c3: 0x6d9e9020, - 0x3b5c4: 0x6d9e9220, 0x3b5c5: 0x6d9e9420, 0x3b5c6: 0x6d9e9620, 0x3b5c7: 0x6d9e9820, - 0x3b5c8: 0x6d9e9a20, 0x3b5c9: 0x6d9e9c20, 0x3b5ca: 0x6d9e9e20, 0x3b5cb: 0x6d9ea020, - 0x3b5cc: 0x6d9ea220, 0x3b5cd: 0x6d9ea420, 0x3b5ce: 0x6d9ea620, 0x3b5cf: 0x6d9ea820, - 0x3b5d0: 0x6d9eaa20, 0x3b5d1: 0x6d9eac20, 0x3b5d2: 0x6dc0ba20, 0x3b5d3: 0x6dc0bc20, - 0x3b5d4: 0x6dc0be20, 0x3b5d5: 0x6dc0c020, 0x3b5d6: 0x6dc0c220, 0x3b5d7: 0x6dc0c420, - 0x3b5d8: 0x6dc0c620, 0x3b5d9: 0x6dc0c820, 0x3b5da: 0x6dc0ca20, 0x3b5db: 0x6dc0cc20, - 0x3b5dc: 0x6dc0ce20, 0x3b5dd: 0x6dc0d020, 0x3b5de: 0x6dc0d220, 0x3b5df: 0x6dc0d420, - 0x3b5e0: 0x6dc0d620, 0x3b5e1: 0x6dc0d820, 0x3b5e2: 0x6dc0da20, 0x3b5e3: 0x6dc0dc20, - 0x3b5e4: 0x6dc0de20, 0x3b5e5: 0x6dc0e020, 0x3b5e6: 0x6dc0e220, 0x3b5e7: 0x6dc0e420, - 0x3b5e8: 0x6dc0e620, 0x3b5e9: 0x6dc0e820, 0x3b5ea: 0x6dc0ea20, 0x3b5eb: 0x6dc0ec20, - 0x3b5ec: 0x6dc0ee20, 0x3b5ed: 0x6dc0f020, 0x3b5ee: 0x6dc0f220, 0x3b5ef: 0x6dc0f420, - 0x3b5f0: 0x6dc0f620, 0x3b5f1: 0x6dc0f820, 0x3b5f2: 0x6dc0fa20, 0x3b5f3: 0x6dc0fc20, - 0x3b5f4: 0x6dc0fe20, 0x3b5f5: 0x6dc10020, 0x3b5f6: 0x6dc10220, 0x3b5f7: 0x6dc10420, - 0x3b5f8: 0x6dc10620, 0x3b5f9: 0x6dc10820, 0x3b5fa: 0x6dc10a20, 0x3b5fb: 0x6dc10c20, - 0x3b5fc: 0x6dc10e20, 0x3b5fd: 0x6dc11020, 0x3b5fe: 0x6dc11220, 0x3b5ff: 0x6dc11420, - // Block 0xed8, offset 0x3b600 - 0x3b600: 0x6dc11620, 0x3b601: 0x6dc11820, 0x3b602: 0x6dc11a20, 0x3b603: 0x6dc11c20, - 0x3b604: 0x6dc11e20, 0x3b605: 0x6dc12020, 0x3b606: 0x6dc12220, 0x3b607: 0x6dc12420, - 0x3b608: 0x6dc12620, 0x3b609: 0x6dc12820, 0x3b60a: 0x6dde8220, 0x3b60b: 0x6dde8420, - 0x3b60c: 0x6dde8620, 0x3b60d: 0x6dde8820, 0x3b60e: 0x6dde8a20, 0x3b60f: 0x6dde8c20, - 0x3b610: 0x6dde8e20, 0x3b611: 0x6dde9020, 0x3b612: 0x6dde9220, 0x3b613: 0x6dde9420, - 0x3b614: 0x6dde9620, 0x3b615: 0x6dde9820, 0x3b616: 0x6dde9a20, 0x3b617: 0x6dde9c20, - 0x3b618: 0x6dde9e20, 0x3b619: 0x6ddea020, 0x3b61a: 0x6ddea220, 0x3b61b: 0x6ddea420, - 0x3b61c: 0x6ddea620, 0x3b61d: 0x6ddea820, 0x3b61e: 0x6ddeaa20, 0x3b61f: 0x6ddeac20, - 0x3b620: 0x6ddeae20, 0x3b621: 0x6ddeb020, 0x3b622: 0x6ddeb220, 0x3b623: 0x6ddeb420, - 0x3b624: 0x6ddeb620, 0x3b625: 0x6ddeb820, 0x3b626: 0x6ddeba20, 0x3b627: 0x6ddebc20, - 0x3b628: 0x6ddebe20, 0x3b629: 0x6ddec020, 0x3b62a: 0x6ddec220, 0x3b62b: 0x6ddec420, - 0x3b62c: 0x6ddec620, 0x3b62d: 0x6ddec820, 0x3b62e: 0x6ddeca20, 0x3b62f: 0x6ddecc20, - 0x3b630: 0x6ddece20, 0x3b631: 0x6dded020, 0x3b632: 0x6dded220, 0x3b633: 0x6dded420, - 0x3b634: 0x6dded620, 0x3b635: 0x6dded820, 0x3b636: 0x6ddeda20, 0x3b637: 0x6df6a020, - 0x3b638: 0x6df6a220, 0x3b639: 0x6df6a420, 0x3b63a: 0x6df6a620, 0x3b63b: 0x6df6a820, - 0x3b63c: 0x6df6aa20, 0x3b63d: 0x6df6ac20, 0x3b63e: 0x6df6ae20, 0x3b63f: 0x6df6b020, - // Block 0xed9, offset 0x3b640 - 0x3b640: 0x6df6b220, 0x3b641: 0x6df6b420, 0x3b642: 0x6df6b620, 0x3b643: 0x6df6b820, - 0x3b644: 0x6df6ba20, 0x3b645: 0x6df6bc20, 0x3b646: 0x6df6be20, 0x3b647: 0x6df6c020, - 0x3b648: 0x6df6c220, 0x3b649: 0x6df6c420, 0x3b64a: 0x6df6c620, 0x3b64b: 0x6df6c820, - 0x3b64c: 0x6df6ca20, 0x3b64d: 0x6df6cc20, 0x3b64e: 0x6df6ce20, 0x3b64f: 0x6df6d020, - 0x3b650: 0x6df6d220, 0x3b651: 0x6df6d420, 0x3b652: 0x6df6d620, 0x3b653: 0x6df6d820, - 0x3b654: 0x6df6da20, 0x3b655: 0x6df6dc20, 0x3b656: 0x6df6de20, 0x3b657: 0x6df6e020, - 0x3b658: 0x6df6e220, 0x3b659: 0x6df6e420, 0x3b65a: 0x6df6e620, 0x3b65b: 0x6df6e820, - 0x3b65c: 0x6df6ea20, 0x3b65d: 0x6df6ec20, 0x3b65e: 0x6df6ee20, 0x3b65f: 0x6df6f020, - 0x3b660: 0x6df6f220, 0x3b661: 0x6df6f420, 0x3b662: 0x6df6f620, 0x3b663: 0x6df6f820, - 0x3b664: 0x6df6fa20, 0x3b665: 0x6df6fc20, 0x3b666: 0x6df6fe20, 0x3b667: 0x6df70020, - 0x3b668: 0x6df70220, 0x3b669: 0x6df70420, 0x3b66a: 0x6df70620, 0x3b66b: 0x6df70820, - 0x3b66c: 0x6df70a20, 0x3b66d: 0x6df70c20, 0x3b66e: 0x6df70e20, 0x3b66f: 0x6df71020, - 0x3b670: 0x6df71220, 0x3b671: 0x6df71420, 0x3b672: 0x6df71620, 0x3b673: 0x6df71820, - 0x3b674: 0x6df71a20, 0x3b675: 0x6df71c20, 0x3b676: 0x6e0a4420, 0x3b677: 0x6e0a4620, - 0x3b678: 0x6e0a4820, 0x3b679: 0x6e0a4a20, 0x3b67a: 0x6e0a4c20, 0x3b67b: 0x6e0a4e20, - 0x3b67c: 0x6e0a5020, 0x3b67d: 0x6e0a5220, 0x3b67e: 0x6e0a5420, 0x3b67f: 0x6e0a5620, - // Block 0xeda, offset 0x3b680 - 0x3b680: 0x6e0a5820, 0x3b681: 0x6e0a5a20, 0x3b682: 0x6e0a5c20, 0x3b683: 0x6e0a5e20, - 0x3b684: 0x6e0a6020, 0x3b685: 0x6e0a6220, 0x3b686: 0x6e0a6420, 0x3b687: 0x6e0a6620, - 0x3b688: 0x6e0a6820, 0x3b689: 0x6e0a6a20, 0x3b68a: 0x6e0a6c20, 0x3b68b: 0x6e0a6e20, - 0x3b68c: 0x6e0a7020, 0x3b68d: 0x6e0a7220, 0x3b68e: 0x6e0a7420, 0x3b68f: 0x6e0a7620, - 0x3b690: 0x6e0a7820, 0x3b691: 0x6e0a7a20, 0x3b692: 0x6e0a7c20, 0x3b693: 0x6e0a7e20, - 0x3b694: 0x6e0a8020, 0x3b695: 0x6e0a8220, 0x3b696: 0x6e0a8420, 0x3b697: 0x6e0a8620, - 0x3b698: 0x6e0a8820, 0x3b699: 0x6e0a8a20, 0x3b69a: 0x6e0a8c20, 0x3b69b: 0x6e0a8e20, - 0x3b69c: 0x6e0a9020, 0x3b69d: 0x6e0a9220, 0x3b69e: 0x6e0a9420, 0x3b69f: 0x6e0a9620, - 0x3b6a0: 0x6e0a9820, 0x3b6a1: 0x6e0a9a20, 0x3b6a2: 0x6e0a9c20, 0x3b6a3: 0x6e0a9e20, - 0x3b6a4: 0x6e0aa020, 0x3b6a5: 0x6e0aa220, 0x3b6a6: 0x6e0aa420, 0x3b6a7: 0x6e0aa620, - 0x3b6a8: 0x6e0aa820, 0x3b6a9: 0x6e0aaa20, 0x3b6aa: 0x6e0aac20, 0x3b6ab: 0x6e0aae20, - 0x3b6ac: 0x6e0ab020, 0x3b6ad: 0x6e0ab220, 0x3b6ae: 0x6e0ab420, 0x3b6af: 0x6e0ab620, - 0x3b6b0: 0x6e0ab820, 0x3b6b1: 0x6e0aba20, 0x3b6b2: 0x6e0abc20, 0x3b6b3: 0x6e0abe20, - 0x3b6b4: 0x6e0ac020, 0x3b6b5: 0x6e0ac220, 0x3b6b6: 0x6e0ac420, 0x3b6b7: 0x6e0ac620, - 0x3b6b8: 0x6e0ac820, 0x3b6b9: 0x6e0aca20, 0x3b6ba: 0x6e1a5420, 0x3b6bb: 0x6e1a5620, - 0x3b6bc: 0x6e1a5820, 0x3b6bd: 0x6e1a5a20, 0x3b6be: 0x6e1a5c20, 0x3b6bf: 0x6e1a5e20, - // Block 0xedb, offset 0x3b6c0 - 0x3b6c0: 0x6e1a6020, 0x3b6c1: 0x6e1a6220, 0x3b6c2: 0x6e1a6420, 0x3b6c3: 0x6e1a6620, - 0x3b6c4: 0x6e1a6820, 0x3b6c5: 0x6e1a6a20, 0x3b6c6: 0x6e1a6c20, 0x3b6c7: 0x6e1a6e20, - 0x3b6c8: 0x6e1a7020, 0x3b6c9: 0x6e1a7220, 0x3b6ca: 0x6e1a7420, 0x3b6cb: 0x6e1a7620, - 0x3b6cc: 0x6e1a7820, 0x3b6cd: 0x6e1a7a20, 0x3b6ce: 0x6e1a7c20, 0x3b6cf: 0x6e1a7e20, - 0x3b6d0: 0x6e1a8020, 0x3b6d1: 0x6e1a8220, 0x3b6d2: 0x6e1a8420, 0x3b6d3: 0x6e1a8620, - 0x3b6d4: 0x6e1a8820, 0x3b6d5: 0x6e1a8a20, 0x3b6d6: 0x6e1a8c20, 0x3b6d7: 0x6e1a8e20, - 0x3b6d8: 0x6e1a9020, 0x3b6d9: 0x6e1a9220, 0x3b6da: 0x6e1a9420, 0x3b6db: 0x6e1a9620, - 0x3b6dc: 0x6e1a9820, 0x3b6dd: 0x6e1a9a20, 0x3b6de: 0x6e1a9c20, 0x3b6df: 0x6e1a9e20, - 0x3b6e0: 0x6e1aa020, 0x3b6e1: 0x6e1aa220, 0x3b6e2: 0x6e1aa420, 0x3b6e3: 0x6e1aa620, - 0x3b6e4: 0x6e1aa820, 0x3b6e5: 0x6e1aaa20, 0x3b6e6: 0x6e1aac20, 0x3b6e7: 0x6e1aae20, - 0x3b6e8: 0x6e1ab020, 0x3b6e9: 0x6e1ab220, 0x3b6ea: 0x6e1ab420, 0x3b6eb: 0x6e1ab620, - 0x3b6ec: 0x6e1ab820, 0x3b6ed: 0x6e26a820, 0x3b6ee: 0x6e26aa20, 0x3b6ef: 0x6e26ac20, - 0x3b6f0: 0x6e26ae20, 0x3b6f1: 0x6e26b020, 0x3b6f2: 0x6e26b220, 0x3b6f3: 0x6e26b420, - 0x3b6f4: 0x6e26b620, 0x3b6f5: 0x6e26b820, 0x3b6f6: 0x6e26ba20, 0x3b6f7: 0x6e26bc20, - 0x3b6f8: 0x6e26be20, 0x3b6f9: 0x6e26c020, 0x3b6fa: 0x6e26c220, 0x3b6fb: 0x6e26c420, - 0x3b6fc: 0x6e26c620, 0x3b6fd: 0x6e26c820, 0x3b6fe: 0x6e26ca20, 0x3b6ff: 0x6e26cc20, - // Block 0xedc, offset 0x3b700 - 0x3b700: 0x6e26ce20, 0x3b701: 0x6e26d020, 0x3b702: 0x6e26d220, 0x3b703: 0x6e26d420, - 0x3b704: 0x6e26d620, 0x3b705: 0x6e26d820, 0x3b706: 0x6e26da20, 0x3b707: 0x6e26dc20, - 0x3b708: 0x6e26de20, 0x3b709: 0x6e26e020, 0x3b70a: 0x6e26e220, 0x3b70b: 0x6e26e420, - 0x3b70c: 0x6e26e620, 0x3b70d: 0x6e26e820, 0x3b70e: 0x6e26ea20, 0x3b70f: 0x6e26ec20, - 0x3b710: 0x6e26ee20, 0x3b711: 0x6e26f020, 0x3b712: 0x6e26f220, 0x3b713: 0x6e26f420, - 0x3b714: 0x6e26f620, 0x3b715: 0x6e26f820, 0x3b716: 0x6e26fa20, 0x3b717: 0x6e26fc20, - 0x3b718: 0x6e26fe20, 0x3b719: 0x6e270020, 0x3b71a: 0x6e270220, 0x3b71b: 0x6e270420, - 0x3b71c: 0x6e270620, 0x3b71d: 0x6e270820, 0x3b71e: 0x6e270a20, 0x3b71f: 0x6e270c20, - 0x3b720: 0x6e270e20, 0x3b721: 0x6e271020, 0x3b722: 0x6e271220, 0x3b723: 0x6e271420, - 0x3b724: 0x6e271620, 0x3b725: 0x6e271820, 0x3b726: 0x6e271a20, 0x3b727: 0x6e271c20, - 0x3b728: 0x6e271e20, 0x3b729: 0x6e272020, 0x3b72a: 0x6e272220, 0x3b72b: 0x6e272420, - 0x3b72c: 0x6e272620, 0x3b72d: 0x6e272820, 0x3b72e: 0x6e272a20, 0x3b72f: 0x6e302220, - 0x3b730: 0x6e302420, 0x3b731: 0x6e302620, 0x3b732: 0x6e302820, 0x3b733: 0x6e302a20, - 0x3b734: 0x6e302c20, 0x3b735: 0x6e302e20, 0x3b736: 0x6e303020, 0x3b737: 0x6e303220, - 0x3b738: 0x6e303420, 0x3b739: 0x6e303620, 0x3b73a: 0x6e303820, 0x3b73b: 0x6e303a20, - 0x3b73c: 0x6e303c20, 0x3b73d: 0x6e303e20, 0x3b73e: 0x6e304020, 0x3b73f: 0x6e304220, - // Block 0xedd, offset 0x3b740 - 0x3b740: 0x6e304420, 0x3b741: 0x6e304620, 0x3b742: 0x6e304820, 0x3b743: 0x6e304a20, - 0x3b744: 0x6e304c20, 0x3b745: 0x6e304e20, 0x3b746: 0x6e305020, 0x3b747: 0x6e305220, - 0x3b748: 0x6e305420, 0x3b749: 0x6e305620, 0x3b74a: 0x6e305820, 0x3b74b: 0x6e305a20, - 0x3b74c: 0x6e305c20, 0x3b74d: 0x6e305e20, 0x3b74e: 0x6e306020, 0x3b74f: 0x6e306220, - 0x3b750: 0x6e306420, 0x3b751: 0x6e306620, 0x3b752: 0x6e306820, 0x3b753: 0x6e306a20, - 0x3b754: 0x6e306c20, 0x3b755: 0x6e306e20, 0x3b756: 0x6e307020, 0x3b757: 0x6e307220, - 0x3b758: 0x6e307420, 0x3b759: 0x6e307620, 0x3b75a: 0x6e307820, 0x3b75b: 0x6e307a20, - 0x3b75c: 0x6e307c20, 0x3b75d: 0x6e307e20, 0x3b75e: 0x6e308020, 0x3b75f: 0x6e308220, - 0x3b760: 0x6e308420, 0x3b761: 0x6e308620, 0x3b762: 0x6e308820, 0x3b763: 0x6e308a20, - 0x3b764: 0x6e308c20, 0x3b765: 0x6e308e20, 0x3b766: 0x6e309020, 0x3b767: 0x6e309220, - 0x3b768: 0x6e309420, 0x3b769: 0x6e309620, 0x3b76a: 0x6e309820, 0x3b76b: 0x6e309a20, - 0x3b76c: 0x6e374020, 0x3b76d: 0x6e309c20, 0x3b76e: 0x6e374220, 0x3b76f: 0x6e374420, - 0x3b770: 0x6e374620, 0x3b771: 0x6e374820, 0x3b772: 0x6e374a20, 0x3b773: 0x6e374c20, - 0x3b774: 0x6e374e20, 0x3b775: 0x6e375020, 0x3b776: 0x6e375220, 0x3b777: 0x6e375420, - 0x3b778: 0x6e375620, 0x3b779: 0x6e375820, 0x3b77a: 0x6e375a20, 0x3b77b: 0x6e375c20, - 0x3b77c: 0x6e375e20, 0x3b77d: 0x6e376020, 0x3b77e: 0x6e376220, 0x3b77f: 0x6e376420, - // Block 0xede, offset 0x3b780 - 0x3b780: 0x6e376620, 0x3b781: 0x6e376820, 0x3b782: 0x6e376a20, 0x3b783: 0x6e376c20, - 0x3b784: 0x6e376e20, 0x3b785: 0x6e377020, 0x3b786: 0x6e377220, 0x3b787: 0x6e377420, - 0x3b788: 0x6e377620, 0x3b789: 0x6e377820, 0x3b78a: 0x6e377a20, 0x3b78b: 0x6e377c20, - 0x3b78c: 0x6e377e20, 0x3b78d: 0x6e378020, 0x3b78e: 0x6e378220, 0x3b78f: 0x6e378420, - 0x3b790: 0x6e378620, 0x3b791: 0x6e3bfa20, 0x3b792: 0x6e3bfc20, 0x3b793: 0x6e3bfe20, - 0x3b794: 0x6e3c0020, 0x3b795: 0x6e3c0220, 0x3b796: 0x6e3c0420, 0x3b797: 0x6e3c0620, - 0x3b798: 0x6e3c0820, 0x3b799: 0x6e3c0a20, 0x3b79a: 0x6e3c0c20, 0x3b79b: 0x6e3c0e20, - 0x3b79c: 0x6e3c1020, 0x3b79d: 0x6e3c1220, 0x3b79e: 0x6e3c8020, 0x3b79f: 0x6e3c1420, - 0x3b7a0: 0x6e3c1620, 0x3b7a1: 0x6e3c1820, 0x3b7a2: 0x6e3c1a20, 0x3b7a3: 0x6e3c1c20, - 0x3b7a4: 0x6e3c1e20, 0x3b7a5: 0x6e3c2020, 0x3b7a6: 0x6e3c2220, 0x3b7a7: 0x6e3c2420, - 0x3b7a8: 0x6e3c2620, 0x3b7a9: 0x6e3c2820, 0x3b7aa: 0x6e3c2a20, 0x3b7ab: 0x6e3c2c20, - 0x3b7ac: 0x6e3c2e20, 0x3b7ad: 0x6e3f8c20, 0x3b7ae: 0x6e3f8e20, 0x3b7af: 0x6e3f9020, - 0x3b7b0: 0x6e3f9220, 0x3b7b1: 0x6e3f9420, 0x3b7b2: 0x6e3f9620, 0x3b7b3: 0x6e3f9820, - 0x3b7b4: 0x6e3f9a20, 0x3b7b5: 0x6e3f9c20, 0x3b7b6: 0x6e3f9e20, 0x3b7b7: 0x6e3fa020, - 0x3b7b8: 0x6e3fa220, 0x3b7b9: 0x6e3fa420, 0x3b7ba: 0x6e3fa620, 0x3b7bb: 0x6e3fa820, - 0x3b7bc: 0x6e3faa20, 0x3b7bd: 0x6e3fac20, 0x3b7be: 0x6e3fae20, 0x3b7bf: 0x6e3fb020, - // Block 0xedf, offset 0x3b7c0 - 0x3b7c0: 0x6e3fb220, 0x3b7c1: 0x6e3fb420, 0x3b7c2: 0x6e3fb620, 0x3b7c3: 0x6e420020, - 0x3b7c4: 0x6e420220, 0x3b7c5: 0x6e420420, 0x3b7c6: 0x6e420620, 0x3b7c7: 0x6e420820, - 0x3b7c8: 0x6e420a20, 0x3b7c9: 0x6e420c20, 0x3b7ca: 0x6e420e20, 0x3b7cb: 0x6e421020, - 0x3b7cc: 0x6e421220, 0x3b7cd: 0x6e421420, 0x3b7ce: 0x6e421620, 0x3b7cf: 0x6e421820, - 0x3b7d0: 0x6e421a20, 0x3b7d1: 0x6e421c20, 0x3b7d2: 0x6e421e20, 0x3b7d3: 0x6e422020, - 0x3b7d4: 0x6e422220, 0x3b7d5: 0x6e422420, 0x3b7d6: 0x6e422620, 0x3b7d7: 0x6e422820, - 0x3b7d8: 0x6e43c620, 0x3b7d9: 0x6e43c820, 0x3b7da: 0x6e43ca20, 0x3b7db: 0x6e43cc20, - 0x3b7dc: 0x6e43ce20, 0x3b7dd: 0x6e43d020, 0x3b7de: 0x6e43d220, 0x3b7df: 0x6e43d420, - 0x3b7e0: 0x6e43d620, 0x3b7e1: 0x6e43d820, 0x3b7e2: 0x6e43da20, 0x3b7e3: 0x6e43dc20, - 0x3b7e4: 0x6e43de20, 0x3b7e5: 0x6e44ea20, 0x3b7e6: 0x6e44ec20, 0x3b7e7: 0x6e44ee20, - 0x3b7e8: 0x6e44f020, 0x3b7e9: 0x6e44f220, 0x3b7ea: 0x6e44f420, 0x3b7eb: 0x6e44f620, - 0x3b7ec: 0x6e44f820, 0x3b7ed: 0x6e44fa20, 0x3b7ee: 0x6e459220, 0x3b7ef: 0x6e459420, - 0x3b7f0: 0x6e459620, 0x3b7f1: 0x6e459820, 0x3b7f2: 0x6e459a20, 0x3b7f3: 0x6e459c20, - 0x3b7f4: 0x6e460220, 0x3b7f5: 0x6e460420, 0x3b7f6: 0x6e460620, 0x3b7f7: 0x6e460820, - 0x3b7f8: 0x6e466420, 0x3b7f9: 0x6e466620, 0x3b7fa: 0x6e466820, 0x3b7fb: 0x6e469c20, - 0x3b7fc: 0x6e469e20, 0x3b7fd: 0x6e46a020, 0x3b7fe: 0x6e46d620, 0x3b7ff: 0x6e46f620, - // Block 0xee0, offset 0x3b800 - 0x3b800: 0x6e46f820, 0x3b801: 0x6c63b820, 0x3b802: 0x6c63ba20, 0x3b803: 0x6c63bc20, - 0x3b804: 0x6c8ade20, 0x3b805: 0x6cb76820, 0x3b806: 0x6cb76a20, 0x3b807: 0x6cb76c20, - 0x3b808: 0x6cb76e20, 0x3b809: 0x6cb77020, 0x3b80a: 0x6cb77220, 0x3b80b: 0x6cb77420, - 0x3b80c: 0x6ce8a220, 0x3b80d: 0x6ce8a420, 0x3b80e: 0x6d184820, 0x3b80f: 0x6d473420, - 0x3b810: 0x6d473620, 0x3b811: 0x6d74f220, 0x3b812: 0x6d74f420, 0x3b813: 0x6d74f620, - 0x3b814: 0x6d74f820, 0x3b815: 0x6e0ad620, 0x3b816: 0x6d474620, 0x3b817: 0x6d474820, - 0x3b818: 0x6d750220, 0x3b819: 0x6d750420, 0x3b81a: 0x6d750620, 0x3b81b: 0x6d750820, - 0x3b81c: 0x6d9ecc20, 0x3b81d: 0x6d9ece20, 0x3b81e: 0x6d9ed020, 0x3b81f: 0x6d9ed220, - 0x3b820: 0x6d9ed420, 0x3b821: 0x6d9ed620, 0x3b822: 0x6dc14420, 0x3b823: 0x6ddef220, - 0x3b824: 0x6ddef420, 0x3b825: 0x6ddef620, 0x3b826: 0x6df73820, 0x3b827: 0x6df73a20, - 0x3b828: 0x6df73c20, 0x3b829: 0x6df73e20, 0x3b82a: 0x6df74020, 0x3b82b: 0x6df74220, - 0x3b82c: 0x6df74420, 0x3b82d: 0x6e0ada20, 0x3b82e: 0x6e0adc20, 0x3b82f: 0x6e0ade20, - 0x3b830: 0x6e0ae020, 0x3b831: 0x6e0ae220, 0x3b832: 0x6e0ae420, 0x3b833: 0x6e0ae620, - 0x3b834: 0x6e0ae820, 0x3b835: 0x6e1aca20, 0x3b836: 0x6e1acc20, 0x3b837: 0x6e1ace20, - 0x3b838: 0x6e1ad020, 0x3b839: 0x6e1ad220, 0x3b83a: 0x6e273820, 0x3b83b: 0x6e273a20, - 0x3b83c: 0x6e273c20, 0x3b83d: 0x6e273e20, 0x3b83e: 0x6e274020, 0x3b83f: 0x6e30aa20, - // Block 0xee1, offset 0x3b840 - 0x3b840: 0x6e30ac20, 0x3b841: 0x6e30ae20, 0x3b842: 0x6e30b020, 0x3b843: 0x6e379020, - 0x3b844: 0x6e379220, 0x3b845: 0x6e379420, 0x3b846: 0x6e3c3420, 0x3b847: 0x6e3c3620, - 0x3b848: 0x6e3fba20, 0x3b849: 0x6e422a20, 0x3b84a: 0x6e43e020, 0x3b84b: 0x6d185c20, - 0x3b84c: 0x6d185e20, 0x3b84d: 0x6d474c20, 0x3b84e: 0x6d474e20, 0x3b84f: 0x6d751620, - 0x3b850: 0x6d751820, 0x3b851: 0x6d751a20, 0x3b852: 0x6d751c20, 0x3b853: 0x6d751e20, - 0x3b854: 0x6d752020, 0x3b855: 0x6d752220, 0x3b856: 0x6d752420, 0x3b857: 0x6d752620, - 0x3b858: 0x6d752820, 0x3b859: 0x6d752a20, 0x3b85a: 0x6d752c20, 0x3b85b: 0x6d9eea20, - 0x3b85c: 0x6d9eec20, 0x3b85d: 0x6d9eee20, 0x3b85e: 0x6d9ef020, 0x3b85f: 0x6d9ef220, - 0x3b860: 0x6d9ef420, 0x3b861: 0x6d9ef620, 0x3b862: 0x6d9ef820, 0x3b863: 0x6d9efa20, - 0x3b864: 0x6d9efc20, 0x3b865: 0x6dc14e20, 0x3b866: 0x6dc15020, 0x3b867: 0x6dc15220, - 0x3b868: 0x6dc15420, 0x3b869: 0x6dc15620, 0x3b86a: 0x6dc15820, 0x3b86b: 0x6dc15a20, - 0x3b86c: 0x6dc15c20, 0x3b86d: 0x6dc15e20, 0x3b86e: 0x6dc16020, 0x3b86f: 0x6dc16220, - 0x3b870: 0x6dc16420, 0x3b871: 0x6dc16620, 0x3b872: 0x6dc16820, 0x3b873: 0x6dc16a20, - 0x3b874: 0x6ddf0620, 0x3b875: 0x6ddf0820, 0x3b876: 0x6ddf0a20, 0x3b877: 0x6ddf0c20, - 0x3b878: 0x6ddf0e20, 0x3b879: 0x6ddf1020, 0x3b87a: 0x6ddf1220, 0x3b87b: 0x6ddf1420, - 0x3b87c: 0x6ddf1620, 0x3b87d: 0x6ddf1820, 0x3b87e: 0x6ddf1a20, 0x3b87f: 0x6ddf1c20, - // Block 0xee2, offset 0x3b880 - 0x3b880: 0x6ddf1e20, 0x3b881: 0x6ddf2020, 0x3b882: 0x6ddf2220, 0x3b883: 0x6ddf2420, - 0x3b884: 0x6df75620, 0x3b885: 0x6df75820, 0x3b886: 0x6df75a20, 0x3b887: 0x6df75c20, - 0x3b888: 0x6df75e20, 0x3b889: 0x6df76020, 0x3b88a: 0x6df76220, 0x3b88b: 0x6df76420, - 0x3b88c: 0x6df76620, 0x3b88d: 0x6df76820, 0x3b88e: 0x6e0af420, 0x3b88f: 0x6e0af620, - 0x3b890: 0x6e0af820, 0x3b891: 0x6e0afa20, 0x3b892: 0x6e0afc20, 0x3b893: 0x6e0afe20, - 0x3b894: 0x6e0b0020, 0x3b895: 0x6e0b0220, 0x3b896: 0x6e0b0420, 0x3b897: 0x6e1ada20, - 0x3b898: 0x6e1adc20, 0x3b899: 0x6e1ade20, 0x3b89a: 0x6e1ae020, 0x3b89b: 0x6e1ae220, - 0x3b89c: 0x6e274620, 0x3b89d: 0x6e274820, 0x3b89e: 0x6e274a20, 0x3b89f: 0x6e274c20, - 0x3b8a0: 0x6e274e20, 0x3b8a1: 0x6e30b420, 0x3b8a2: 0x6e30b620, 0x3b8a3: 0x6e30b820, - 0x3b8a4: 0x6e30ba20, 0x3b8a5: 0x6e30bc20, 0x3b8a6: 0x6e30be20, 0x3b8a7: 0x6e30c020, - 0x3b8a8: 0x6e30c220, 0x3b8a9: 0x6e30c420, 0x3b8aa: 0x6e379c20, 0x3b8ab: 0x6e379e20, - 0x3b8ac: 0x6e37a020, 0x3b8ad: 0x6e37a220, 0x3b8ae: 0x6e3c3a20, 0x3b8af: 0x6e3c3c20, - 0x3b8b0: 0x6e3c3e20, 0x3b8b1: 0x6e3c4020, 0x3b8b2: 0x6e3c4220, 0x3b8b3: 0x6e3c4420, - 0x3b8b4: 0x6e3c4620, 0x3b8b5: 0x6e422c20, 0x3b8b6: 0x6e43e420, 0x3b8b7: 0x6e43e620, - 0x3b8b8: 0x6e44fc20, 0x3b8b9: 0x6e460c20, 0x3b8ba: 0x6e46d820, 0x3b8bb: 0x6e46fa20, - 0x3b8bc: 0x6d186220, 0x3b8bd: 0x6d186420, 0x3b8be: 0x6d186620, 0x3b8bf: 0x6d186820, - // Block 0xee3, offset 0x3b8c0 - 0x3b8c0: 0x6d186a20, 0x3b8c1: 0x6d475820, 0x3b8c2: 0x6d475a20, 0x3b8c3: 0x6d475c20, - 0x3b8c4: 0x6d475e20, 0x3b8c5: 0x6d753c20, 0x3b8c6: 0x6d753e20, 0x3b8c7: 0x6d754020, - 0x3b8c8: 0x6d754220, 0x3b8c9: 0x6d754420, 0x3b8ca: 0x6d754620, 0x3b8cb: 0x6d754820, - 0x3b8cc: 0x6d754a20, 0x3b8cd: 0x6d754c20, 0x3b8ce: 0x6d754e20, 0x3b8cf: 0x6d755020, - 0x3b8d0: 0x6d755220, 0x3b8d1: 0x6d755420, 0x3b8d2: 0x6d755620, 0x3b8d3: 0x6d755820, - 0x3b8d4: 0x6d9f0c20, 0x3b8d5: 0x6d9f0e20, 0x3b8d6: 0x6d9f1020, 0x3b8d7: 0x6d9f1220, - 0x3b8d8: 0x6d9f1420, 0x3b8d9: 0x6d9f1620, 0x3b8da: 0x6d9f1820, 0x3b8db: 0x6cbd9220, - 0x3b8dc: 0x6d9f1a20, 0x3b8dd: 0x6d9f1c20, 0x3b8de: 0x6d9f1e20, 0x3b8df: 0x6d9f2020, - 0x3b8e0: 0x6d9f2220, 0x3b8e1: 0x6d9f2420, 0x3b8e2: 0x6dc17420, 0x3b8e3: 0x6dc17620, - 0x3b8e4: 0x6dc17820, 0x3b8e5: 0x6dc17a20, 0x3b8e6: 0x6dc17c20, 0x3b8e7: 0x6dc17e20, - 0x3b8e8: 0x6dc18020, 0x3b8e9: 0x6dc18220, 0x3b8ea: 0x6dc18420, 0x3b8eb: 0x6dc18620, - 0x3b8ec: 0x6dc18820, 0x3b8ed: 0x6ddf3220, 0x3b8ee: 0x6ddf3420, 0x3b8ef: 0x6ddf3620, - 0x3b8f0: 0x6ddf3820, 0x3b8f1: 0x6ddf3a20, 0x3b8f2: 0x6ddf3c20, 0x3b8f3: 0x6ddf3e20, - 0x3b8f4: 0x6ddf4020, 0x3b8f5: 0x6ddf4220, 0x3b8f6: 0x6ddf4420, 0x3b8f7: 0x6ddf4620, - 0x3b8f8: 0x6ddf4820, 0x3b8f9: 0x6ddf4a20, 0x3b8fa: 0x6ddf4c20, 0x3b8fb: 0x6ddf4e20, - 0x3b8fc: 0x6df77820, 0x3b8fd: 0x6df77a20, 0x3b8fe: 0x6df77c20, 0x3b8ff: 0x6df77e20, - // Block 0xee4, offset 0x3b900 - 0x3b900: 0x6df78020, 0x3b901: 0x6df78220, 0x3b902: 0x6df78420, 0x3b903: 0x6df78620, - 0x3b904: 0x6df78820, 0x3b905: 0x6df78a20, 0x3b906: 0x6df78c20, 0x3b907: 0x6df78e20, - 0x3b908: 0x6df79020, 0x3b909: 0x6df79220, 0x3b90a: 0x6df79420, 0x3b90b: 0x6df79620, - 0x3b90c: 0x6e0b0820, 0x3b90d: 0x6e0b0a20, 0x3b90e: 0x6e0b0c20, 0x3b90f: 0x6e0b0e20, - 0x3b910: 0x6e0b1020, 0x3b911: 0x6e0b1220, 0x3b912: 0x6e0b1420, 0x3b913: 0x6e0b1620, - 0x3b914: 0x6e0b1820, 0x3b915: 0x6e0b1a20, 0x3b916: 0x6e0b1c20, 0x3b917: 0x6e0b1e20, - 0x3b918: 0x6e0b2020, 0x3b919: 0x6e0b2220, 0x3b91a: 0x6e0b2420, 0x3b91b: 0x6e1aea20, - 0x3b91c: 0x6e1aec20, 0x3b91d: 0x6e1aee20, 0x3b91e: 0x6e1af020, 0x3b91f: 0x6e1af220, - 0x3b920: 0x6e1af420, 0x3b921: 0x6e1af620, 0x3b922: 0x6e1af820, 0x3b923: 0x6e275820, - 0x3b924: 0x6e275a20, 0x3b925: 0x6e275c20, 0x3b926: 0x6e275e20, 0x3b927: 0x6e276020, - 0x3b928: 0x6e276220, 0x3b929: 0x6e276420, 0x3b92a: 0x6e276620, 0x3b92b: 0x6e276820, - 0x3b92c: 0x6e276a20, 0x3b92d: 0x6e276c20, 0x3b92e: 0x6e276e20, 0x3b92f: 0x6e277020, - 0x3b930: 0x6e277220, 0x3b931: 0x6e277420, 0x3b932: 0x6e30ca20, 0x3b933: 0x6e30cc20, - 0x3b934: 0x6e30ce20, 0x3b935: 0x6e30d020, 0x3b936: 0x6e30d220, 0x3b937: 0x6e30d420, - 0x3b938: 0x6e37a620, 0x3b939: 0x6e37a820, 0x3b93a: 0x6e37aa20, 0x3b93b: 0x6e37ac20, - 0x3b93c: 0x6e37ae20, 0x3b93d: 0x6e37b020, 0x3b93e: 0x6e37b220, 0x3b93f: 0x6e3fbc20, - // Block 0xee5, offset 0x3b940 - 0x3b940: 0x6e3fbe20, 0x3b941: 0x6e422e20, 0x3b942: 0x6e423020, 0x3b943: 0x6e43e820, - 0x3b944: 0x6e43ea20, 0x3b945: 0x6e43ec20, 0x3b946: 0x6e45a020, 0x3b947: 0x6e460e20, - 0x3b948: 0x6c8aec20, 0x3b949: 0x6cb78e20, 0x3b94a: 0x6cb79020, 0x3b94b: 0x6ce8b020, - 0x3b94c: 0x6d476020, 0x3b94d: 0x6c63ca20, 0x3b94e: 0x6d755c20, 0x3b94f: 0x6d755e20, - 0x3b950: 0x6ddf5020, 0x3b951: 0x6d186c20, 0x3b952: 0x6d476820, 0x3b953: 0x6d476a20, - 0x3b954: 0x6d476c20, 0x3b955: 0x6d756620, 0x3b956: 0x6d756820, 0x3b957: 0x6d756a20, - 0x3b958: 0x6d756c20, 0x3b959: 0x6d756e20, 0x3b95a: 0x6d757020, 0x3b95b: 0x6d9f2820, - 0x3b95c: 0x6d9f2a20, 0x3b95d: 0x6d9f2c20, 0x3b95e: 0x6d9f2e20, 0x3b95f: 0x6d9f3020, - 0x3b960: 0x6dc18c20, 0x3b961: 0x6dc18e20, 0x3b962: 0x6dc19020, 0x3b963: 0x6ddf5420, - 0x3b964: 0x6ddf5620, 0x3b965: 0x6df79c20, 0x3b966: 0x6df79e20, 0x3b967: 0x6df7a020, - 0x3b968: 0x6e0b2c20, 0x3b969: 0x6e0b2e20, 0x3b96a: 0x6e1afa20, 0x3b96b: 0x6e1afc20, - 0x3b96c: 0x6e277620, 0x3b96d: 0x6e30d620, 0x3b96e: 0x6e30d820, 0x3b96f: 0x6e30da20, - 0x3b970: 0x6e37b420, 0x3b971: 0x6e3c4a20, 0x3b972: 0x6e461020, 0x3b973: 0x6d186e20, - 0x3b974: 0x6d476e20, 0x3b975: 0x6d757220, 0x3b976: 0x6d757420, 0x3b977: 0x6d757620, - 0x3b978: 0x6d757820, 0x3b979: 0x6d757a20, 0x3b97a: 0x6d9f3820, 0x3b97b: 0x6dc19a20, - 0x3b97c: 0x6dc19c20, 0x3b97d: 0x6dc19e20, 0x3b97e: 0x6dc1a020, 0x3b97f: 0x6dc1a220, - // Block 0xee6, offset 0x3b980 - 0x3b980: 0x6dc1a420, 0x3b981: 0x6dc1a620, 0x3b982: 0x6ddf5e20, 0x3b983: 0x6ddf6020, - 0x3b984: 0x6ddf6220, 0x3b985: 0x6ddf6420, 0x3b986: 0x6df7a620, 0x3b987: 0x6df7a820, - 0x3b988: 0x6df7aa20, 0x3b989: 0x6df7ac20, 0x3b98a: 0x6df7ae20, 0x3b98b: 0x6df7b020, - 0x3b98c: 0x6df7b220, 0x3b98d: 0x6df7b420, 0x3b98e: 0x6df7b620, 0x3b98f: 0x6df7b820, - 0x3b990: 0x6df7ba20, 0x3b991: 0x6df7bc20, 0x3b992: 0x6df7be20, 0x3b993: 0x6e0b3220, - 0x3b994: 0x6e0b3420, 0x3b995: 0x6e0b3620, 0x3b996: 0x6e0b3820, 0x3b997: 0x6e0b3a20, - 0x3b998: 0x6e0b3c20, 0x3b999: 0x6e1b0020, 0x3b99a: 0x6e1b0220, 0x3b99b: 0x6e1b0420, - 0x3b99c: 0x6e1b0620, 0x3b99d: 0x6e1b0820, 0x3b99e: 0x6e1b0a20, 0x3b99f: 0x6e277820, - 0x3b9a0: 0x6e277a20, 0x3b9a1: 0x6e277c20, 0x3b9a2: 0x6e277e20, 0x3b9a3: 0x6e278020, - 0x3b9a4: 0x6e30e020, 0x3b9a5: 0x6e30e220, 0x3b9a6: 0x6e30e420, 0x3b9a7: 0x6e37b820, - 0x3b9a8: 0x6e37ba20, 0x3b9a9: 0x6e37bc20, 0x3b9aa: 0x6e3fc020, 0x3b9ab: 0x6e423220, - 0x3b9ac: 0x6e461220, 0x3b9ad: 0x6d477020, 0x3b9ae: 0x6d758220, 0x3b9af: 0x6d758420, - 0x3b9b0: 0x6d9f3e20, 0x3b9b1: 0x6d9f4020, 0x3b9b2: 0x6d9f4220, 0x3b9b3: 0x6d9f4420, - 0x3b9b4: 0x6d9f4620, 0x3b9b5: 0x6d9f4820, 0x3b9b6: 0x6dc1aa20, 0x3b9b7: 0x6dc1ac20, - 0x3b9b8: 0x6dc1ae20, 0x3b9b9: 0x6dc1b020, 0x3b9ba: 0x6dc1b220, 0x3b9bb: 0x6dc1b420, - 0x3b9bc: 0x6dc1b620, 0x3b9bd: 0x6dc1b820, 0x3b9be: 0x6dc1ba20, 0x3b9bf: 0x6ddf6620, - // Block 0xee7, offset 0x3b9c0 - 0x3b9c0: 0x6ddf6820, 0x3b9c1: 0x6df7c020, 0x3b9c2: 0x6e0b4420, 0x3b9c3: 0x6e0b4620, - 0x3b9c4: 0x6e0b4820, 0x3b9c5: 0x6e0b4a20, 0x3b9c6: 0x6e0b4c20, 0x3b9c7: 0x6e1b1220, - 0x3b9c8: 0x6e1b1420, 0x3b9c9: 0x6e1b1620, 0x3b9ca: 0x6e1b1820, 0x3b9cb: 0x6e278620, - 0x3b9cc: 0x6e30e820, 0x3b9cd: 0x6e30ea20, 0x3b9ce: 0x6e30ec20, 0x3b9cf: 0x6e30ee20, - 0x3b9d0: 0x6e37be20, 0x3b9d1: 0x6e3fc220, 0x3b9d2: 0x6e3c5020, 0x3b9d3: 0x6e3fc420, - 0x3b9d4: 0x6e43ee20, 0x3b9d5: 0x6e43f020, 0x3b9d6: 0x6e43f220, 0x3b9d7: 0x6ce8bc20, - 0x3b9d8: 0x6d187220, 0x3b9d9: 0x6d477420, 0x3b9da: 0x6d477620, 0x3b9db: 0x6d477820, - 0x3b9dc: 0x6d758c20, 0x3b9dd: 0x6d758e20, 0x3b9de: 0x6d759020, 0x3b9df: 0x6d759220, - 0x3b9e0: 0x6d759420, 0x3b9e1: 0x6d759620, 0x3b9e2: 0x6d759820, 0x3b9e3: 0x6d759a20, - 0x3b9e4: 0x6d9f5620, 0x3b9e5: 0x6d9f5820, 0x3b9e6: 0x6d9f5a20, 0x3b9e7: 0x6d9f5c20, - 0x3b9e8: 0x6d9f5e20, 0x3b9e9: 0x6d9f6020, 0x3b9ea: 0x6d9f6220, 0x3b9eb: 0x6d9f6420, - 0x3b9ec: 0x6d9f6620, 0x3b9ed: 0x6d9f6820, 0x3b9ee: 0x6d9f6a20, 0x3b9ef: 0x6d9f6c20, - 0x3b9f0: 0x6d9f6e20, 0x3b9f1: 0x6d9f7020, 0x3b9f2: 0x6dc1cc20, 0x3b9f3: 0x6dc1ce20, - 0x3b9f4: 0x6dc1d020, 0x3b9f5: 0x6dc1d220, 0x3b9f6: 0x6dc1d420, 0x3b9f7: 0x6dc1d620, - 0x3b9f8: 0x6dc1d820, 0x3b9f9: 0x6dc1da20, 0x3b9fa: 0x6dc1dc20, 0x3b9fb: 0x6dc1de20, - 0x3b9fc: 0x6dc1e020, 0x3b9fd: 0x6dc1e220, 0x3b9fe: 0x6dc1e420, 0x3b9ff: 0x6ddf7820, - // Block 0xee8, offset 0x3ba00 - 0x3ba00: 0x6ddf7a20, 0x3ba01: 0x6ddf7c20, 0x3ba02: 0x6ddf7e20, 0x3ba03: 0x6ddf8020, - 0x3ba04: 0x6ddf8220, 0x3ba05: 0x6ddf8420, 0x3ba06: 0x6ddf8620, 0x3ba07: 0x6ddf8820, - 0x3ba08: 0x6df7cc20, 0x3ba09: 0x6df7ce20, 0x3ba0a: 0x6df7d020, 0x3ba0b: 0x6df7d220, - 0x3ba0c: 0x6df7d420, 0x3ba0d: 0x6df7d620, 0x3ba0e: 0x6df7d820, 0x3ba0f: 0x6df7da20, - 0x3ba10: 0x6df7dc20, 0x3ba11: 0x6df7de20, 0x3ba12: 0x6e0b6220, 0x3ba13: 0x6e0b6420, - 0x3ba14: 0x6e0b6620, 0x3ba15: 0x6e0b6820, 0x3ba16: 0x6e0b6a20, 0x3ba17: 0x6e0b6c20, - 0x3ba18: 0x6e0b6e20, 0x3ba19: 0x6e0b7020, 0x3ba1a: 0x6e0b7220, 0x3ba1b: 0x6e0b7420, - 0x3ba1c: 0x6e0b7620, 0x3ba1d: 0x6e0b7820, 0x3ba1e: 0x6e0b7a20, 0x3ba1f: 0x6e0b7c20, - 0x3ba20: 0x6e0b7e20, 0x3ba21: 0x6e0b8020, 0x3ba22: 0x6e0b8220, 0x3ba23: 0x6e1b2a20, - 0x3ba24: 0x6e0b8420, 0x3ba25: 0x6e1b2c20, 0x3ba26: 0x6e1b2e20, 0x3ba27: 0x6e1b3020, - 0x3ba28: 0x6e1b3220, 0x3ba29: 0x6e1b3420, 0x3ba2a: 0x6e1b3620, 0x3ba2b: 0x6e1b3820, - 0x3ba2c: 0x6e1b3a20, 0x3ba2d: 0x6e1b3c20, 0x3ba2e: 0x6e1b3e20, 0x3ba2f: 0x6e1b4020, - 0x3ba30: 0x6e1b4220, 0x3ba31: 0x6e1b4420, 0x3ba32: 0x6e1b4620, 0x3ba33: 0x6e1b4820, - 0x3ba34: 0x6e1b4a20, 0x3ba35: 0x6e1b4c20, 0x3ba36: 0x6e1b4e20, 0x3ba37: 0x6e1b5020, - 0x3ba38: 0x6e1b5220, 0x3ba39: 0x6e1b5420, 0x3ba3a: 0x6e1b5620, 0x3ba3b: 0x6e1b5820, - 0x3ba3c: 0x6e1b5a20, 0x3ba3d: 0x6e1b5c20, 0x3ba3e: 0x6e278c20, 0x3ba3f: 0x6e278e20, - // Block 0xee9, offset 0x3ba40 - 0x3ba40: 0x6e279020, 0x3ba41: 0x6e279220, 0x3ba42: 0x6e279420, 0x3ba43: 0x6e279620, - 0x3ba44: 0x6e279820, 0x3ba45: 0x6e279a20, 0x3ba46: 0x6e279c20, 0x3ba47: 0x6e279e20, - 0x3ba48: 0x6e27a020, 0x3ba49: 0x6e27a220, 0x3ba4a: 0x6e27a420, 0x3ba4b: 0x6e27a620, - 0x3ba4c: 0x6e27a820, 0x3ba4d: 0x6e27aa20, 0x3ba4e: 0x6e27ac20, 0x3ba4f: 0x6e30f820, - 0x3ba50: 0x6e30fa20, 0x3ba51: 0x6e30fc20, 0x3ba52: 0x6e30fe20, 0x3ba53: 0x6e310020, - 0x3ba54: 0x6e310220, 0x3ba55: 0x6e310420, 0x3ba56: 0x6e310620, 0x3ba57: 0x6e310820, - 0x3ba58: 0x6e37c220, 0x3ba59: 0x6e37c420, 0x3ba5a: 0x6e37c620, 0x3ba5b: 0x6e37c820, - 0x3ba5c: 0x6e37ca20, 0x3ba5d: 0x6e37cc20, 0x3ba5e: 0x6e37ce20, 0x3ba5f: 0x6e37d020, - 0x3ba60: 0x6e37d220, 0x3ba61: 0x6e37d420, 0x3ba62: 0x6e37d620, 0x3ba63: 0x6e37d820, - 0x3ba64: 0x6e37da20, 0x3ba65: 0x6e37dc20, 0x3ba66: 0x6e37de20, 0x3ba67: 0x6e37e020, - 0x3ba68: 0x6e37e220, 0x3ba69: 0x6e3c5a20, 0x3ba6a: 0x6e3c5c20, 0x3ba6b: 0x6e3c5e20, - 0x3ba6c: 0x6e3c6020, 0x3ba6d: 0x6e3c6220, 0x3ba6e: 0x6e3c6420, 0x3ba6f: 0x6e3c6620, - 0x3ba70: 0x6e3c6820, 0x3ba71: 0x6e3c6a20, 0x3ba72: 0x6e3c6c20, 0x3ba73: 0x6e3c6e20, - 0x3ba74: 0x6e3fca20, 0x3ba75: 0x6e3fcc20, 0x3ba76: 0x6e3fce20, 0x3ba77: 0x6e3fd020, - 0x3ba78: 0x6e3fd220, 0x3ba79: 0x6e423620, 0x3ba7a: 0x6e423820, 0x3ba7b: 0x6e423a20, - 0x3ba7c: 0x6e423c20, 0x3ba7d: 0x6e423e20, 0x3ba7e: 0x6e424020, 0x3ba7f: 0x6e43f620, - // Block 0xeea, offset 0x3ba80 - 0x3ba80: 0x6e43f820, 0x3ba81: 0x6e43fa20, 0x3ba82: 0x6e43fc20, 0x3ba83: 0x6e450020, - 0x3ba84: 0x6e450220, 0x3ba85: 0x6e45a220, 0x3ba86: 0x6e45a420, 0x3ba87: 0x6e466a20, - 0x3ba88: 0x6e466c20, 0x3ba89: 0x6e471c20, 0x3ba8a: 0x6e472a20, 0x3ba8b: 0x6ddf8a20, - 0x3ba8c: 0x6e0b8a20, 0x3ba8d: 0x6e1b6020, 0x3ba8e: 0x6e1b6220, 0x3ba8f: 0x6e1b6420, - 0x3ba90: 0x6e310a20, 0x3ba91: 0x6d477a20, 0x3ba92: 0x6d759c20, 0x3ba93: 0x6d759e20, - 0x3ba94: 0x6dc1ea20, 0x3ba95: 0x6dc1ec20, 0x3ba96: 0x6dc1ee20, 0x3ba97: 0x6dc1f020, - 0x3ba98: 0x6dc1f220, 0x3ba99: 0x6dc1f420, 0x3ba9a: 0x6ddf9420, 0x3ba9b: 0x6ddf9620, - 0x3ba9c: 0x6ddf9820, 0x3ba9d: 0x6ddf9a20, 0x3ba9e: 0x6ddf9c20, 0x3ba9f: 0x6ddf9e20, - 0x3baa0: 0x6ddfa020, 0x3baa1: 0x6df7e820, 0x3baa2: 0x6df7ea20, 0x3baa3: 0x6df7ec20, - 0x3baa4: 0x6df7ee20, 0x3baa5: 0x6df7f020, 0x3baa6: 0x6df7f220, 0x3baa7: 0x6e0b8c20, - 0x3baa8: 0x6e0b8e20, 0x3baa9: 0x6e0b9020, 0x3baaa: 0x6e0b9220, 0x3baab: 0x6e0b9420, - 0x3baac: 0x6e1b6820, 0x3baad: 0x6e1b6a20, 0x3baae: 0x6e27b020, 0x3baaf: 0x6e27b220, - 0x3bab0: 0x6e27b420, 0x3bab1: 0x6e27b620, 0x3bab2: 0x6e27b820, 0x3bab3: 0x6e27ba20, - 0x3bab4: 0x6e27bc20, 0x3bab5: 0x6e27be20, 0x3bab6: 0x6e27c020, 0x3bab7: 0x6e311020, - 0x3bab8: 0x6e311220, 0x3bab9: 0x6e37e620, 0x3baba: 0x6e3c7420, 0x3babb: 0x6e3cd420, - 0x3babc: 0x6e3fd620, 0x3babd: 0x6e3c7620, 0x3babe: 0x6e3fd820, 0x3babf: 0x6e424220, - // Block 0xeeb, offset 0x3bac0 - 0x3bac0: 0x6e424420, 0x3bac1: 0x6e43fe20, 0x3bac2: 0x6ce8c220, 0x3bac3: 0x6d477c20, - 0x3bac4: 0x6d75a620, 0x3bac5: 0x6d75a820, 0x3bac6: 0x6d75aa20, 0x3bac7: 0x6d9f7a20, - 0x3bac8: 0x6ddfa220, 0x3bac9: 0x6e27c220, 0x3baca: 0x6e424620, 0x3bacb: 0x6d9f7c20, - 0x3bacc: 0x6d9f7e20, 0x3bacd: 0x6dc1fa20, 0x3bace: 0x6dc1fc20, 0x3bacf: 0x6dc1fe20, - 0x3bad0: 0x6ddfae20, 0x3bad1: 0x6ddfb020, 0x3bad2: 0x6ddfb220, 0x3bad3: 0x6ddfb420, - 0x3bad4: 0x6df7fa20, 0x3bad5: 0x6df7fc20, 0x3bad6: 0x6df7fe20, 0x3bad7: 0x6df80020, - 0x3bad8: 0x6df80220, 0x3bad9: 0x6df80420, 0x3bada: 0x6df80620, 0x3badb: 0x6df80820, - 0x3badc: 0x6e0b9820, 0x3badd: 0x6e0b9a20, 0x3bade: 0x6e0b9c20, 0x3badf: 0x6e0b9e20, - 0x3bae0: 0x6e0ba020, 0x3bae1: 0x6e0ba220, 0x3bae2: 0x6e1b7620, 0x3bae3: 0x6e1b7820, - 0x3bae4: 0x6e1b7a20, 0x3bae5: 0x6e1b7c20, 0x3bae6: 0x6e27c620, 0x3bae7: 0x6e27c820, - 0x3bae8: 0x6e27ca20, 0x3bae9: 0x6e27cc20, 0x3baea: 0x6e27ce20, 0x3baeb: 0x6e27d020, - 0x3baec: 0x6e27d220, 0x3baed: 0x6e27d420, 0x3baee: 0x6e311620, 0x3baef: 0x6e37ee20, - 0x3baf0: 0x6e37f020, 0x3baf1: 0x6e37f220, 0x3baf2: 0x6e37f420, 0x3baf3: 0x6e3c8220, - 0x3baf4: 0x6e3c8420, 0x3baf5: 0x6e3fdc20, 0x3baf6: 0x6e424820, 0x3baf7: 0x6e450620, - 0x3baf8: 0x6d75ae20, 0x3baf9: 0x6d75b020, 0x3bafa: 0x6d9f8220, 0x3bafb: 0x6d9f8420, - 0x3bafc: 0x6d9f8620, 0x3bafd: 0x6dc20820, 0x3bafe: 0x6dc20a20, 0x3baff: 0x6dc20c20, - // Block 0xeec, offset 0x3bb00 - 0x3bb00: 0x6dc20e20, 0x3bb01: 0x6dc21020, 0x3bb02: 0x6dc21220, 0x3bb03: 0x6dc21420, - 0x3bb04: 0x6dc21620, 0x3bb05: 0x6dc21820, 0x3bb06: 0x6dc21a20, 0x3bb07: 0x6dc21c20, - 0x3bb08: 0x6dc21e20, 0x3bb09: 0x6ddfc820, 0x3bb0a: 0x6ddfca20, 0x3bb0b: 0x6ddfcc20, - 0x3bb0c: 0x6ddfce20, 0x3bb0d: 0x6ddfd020, 0x3bb0e: 0x6ddfd220, 0x3bb0f: 0x6ddfd420, - 0x3bb10: 0x6ddfd620, 0x3bb11: 0x6ddfd820, 0x3bb12: 0x6df80e20, 0x3bb13: 0x6df81020, - 0x3bb14: 0x6df81220, 0x3bb15: 0x6df81420, 0x3bb16: 0x6df81620, 0x3bb17: 0x6df81820, - 0x3bb18: 0x6df81a20, 0x3bb19: 0x6df81c20, 0x3bb1a: 0x6e0baa20, 0x3bb1b: 0x6e0bac20, - 0x3bb1c: 0x6e0bae20, 0x3bb1d: 0x6e0bb020, 0x3bb1e: 0x6e0bb220, 0x3bb1f: 0x6df81e20, - 0x3bb20: 0x6e0bb420, 0x3bb21: 0x6e0bb620, 0x3bb22: 0x6e0bb820, 0x3bb23: 0x6e0bba20, - 0x3bb24: 0x6e0bbc20, 0x3bb25: 0x6e0bbe20, 0x3bb26: 0x6e0bc020, 0x3bb27: 0x6e0bc220, - 0x3bb28: 0x6e1b8220, 0x3bb29: 0x6e1b8420, 0x3bb2a: 0x6e1b8620, 0x3bb2b: 0x6e27e020, - 0x3bb2c: 0x6e27e220, 0x3bb2d: 0x6e27e420, 0x3bb2e: 0x6e27e620, 0x3bb2f: 0x6e27e820, - 0x3bb30: 0x6e27ea20, 0x3bb31: 0x6e27ec20, 0x3bb32: 0x6e27ee20, 0x3bb33: 0x6e27f020, - 0x3bb34: 0x6e27f220, 0x3bb35: 0x6e312420, 0x3bb36: 0x6e312620, 0x3bb37: 0x6e312820, - 0x3bb38: 0x6e312a20, 0x3bb39: 0x6e312c20, 0x3bb3a: 0x6e312e20, 0x3bb3b: 0x6e313020, - 0x3bb3c: 0x6e313220, 0x3bb3d: 0x6e313420, 0x3bb3e: 0x6e313620, 0x3bb3f: 0x6e380420, - // Block 0xeed, offset 0x3bb40 - 0x3bb40: 0x6e37f620, 0x3bb41: 0x6e37f820, 0x3bb42: 0x6e37fa20, 0x3bb43: 0x6e37fc20, - 0x3bb44: 0x6e37fe20, 0x3bb45: 0x6e3c8620, 0x3bb46: 0x6e3c8820, 0x3bb47: 0x6e3c8a20, - 0x3bb48: 0x6e3c8c20, 0x3bb49: 0x6e3c8e20, 0x3bb4a: 0x6e3fde20, 0x3bb4b: 0x6e424a20, - 0x3bb4c: 0x6e450820, 0x3bb4d: 0x6e450a20, 0x3bb4e: 0x6e45a620, 0x3bb4f: 0x6e461420, - 0x3bb50: 0x6d75b220, 0x3bb51: 0x6d9f8c20, 0x3bb52: 0x6d9f8e20, 0x3bb53: 0x6dc22420, - 0x3bb54: 0x6dc22620, 0x3bb55: 0x6ddfe020, 0x3bb56: 0x6ddfe220, 0x3bb57: 0x6ddfe420, - 0x3bb58: 0x6ddfe620, 0x3bb59: 0x6ddfe820, 0x3bb5a: 0x6df82620, 0x3bb5b: 0x6df82820, - 0x3bb5c: 0x6df82a20, 0x3bb5d: 0x6df82c20, 0x3bb5e: 0x6df82e20, 0x3bb5f: 0x6df83020, - 0x3bb60: 0x6df83220, 0x3bb61: 0x6e0bc820, 0x3bb62: 0x6e0bca20, 0x3bb63: 0x6e0bcc20, - 0x3bb64: 0x6e0bce20, 0x3bb65: 0x6e1b8a20, 0x3bb66: 0x6e1b8c20, 0x3bb67: 0x6e1b8e20, - 0x3bb68: 0x6e1b9020, 0x3bb69: 0x6e1b9220, 0x3bb6a: 0x6e1b9420, 0x3bb6b: 0x6e1b9620, - 0x3bb6c: 0x6e1b9820, 0x3bb6d: 0x6e27f620, 0x3bb6e: 0x6e27f820, 0x3bb6f: 0x6e313c20, - 0x3bb70: 0x6e313e20, 0x3bb71: 0x6e314020, 0x3bb72: 0x6e314220, 0x3bb73: 0x6e380620, - 0x3bb74: 0x6e380820, 0x3bb75: 0x6e380a20, 0x3bb76: 0x6e3c9420, 0x3bb77: 0x6e3c9620, - 0x3bb78: 0x6e3c9820, 0x3bb79: 0x6e3c9a20, 0x3bb7a: 0x6e3c9c20, 0x3bb7b: 0x6e3fe020, - 0x3bb7c: 0x6e3fe220, 0x3bb7d: 0x6e3fe420, 0x3bb7e: 0x6e425020, 0x3bb7f: 0x6e425220, - // Block 0xeee, offset 0x3bb80 - 0x3bb80: 0x6e425420, 0x3bb81: 0x6e45aa20, 0x3bb82: 0x6e461620, 0x3bb83: 0x6e466e20, - 0x3bb84: 0x6d478420, 0x3bb85: 0x6d9f9020, 0x3bb86: 0x6dc22e20, 0x3bb87: 0x6ddff020, - 0x3bb88: 0x6ddff220, 0x3bb89: 0x6df83620, 0x3bb8a: 0x6df83820, 0x3bb8b: 0x6e0bd020, - 0x3bb8c: 0x6e0bd220, 0x3bb8d: 0x6e27fa20, 0x3bb8e: 0x6e1b9c20, 0x3bb8f: 0x6e3c9e20, - 0x3bb90: 0x6e3ca020, 0x3bb91: 0x6e3ca220, 0x3bb92: 0x6e440220, 0x3bb93: 0x6e45ac20, - 0x3bb94: 0x6dc23220, 0x3bb95: 0x6dc23420, 0x3bb96: 0x6dc23620, 0x3bb97: 0x6dc23820, - 0x3bb98: 0x6ddff820, 0x3bb99: 0x6ddffa20, 0x3bb9a: 0x6ddffc20, 0x3bb9b: 0x6df84420, - 0x3bb9c: 0x6df84620, 0x3bb9d: 0x6df84820, 0x3bb9e: 0x6df84a20, 0x3bb9f: 0x6df84c20, - 0x3bba0: 0x6df84e20, 0x3bba1: 0x6df85020, 0x3bba2: 0x6df85220, 0x3bba3: 0x6df85420, - 0x3bba4: 0x6df85620, 0x3bba5: 0x6e0bee20, 0x3bba6: 0x6e0bf020, 0x3bba7: 0x6e0bf220, - 0x3bba8: 0x6e0bf420, 0x3bba9: 0x6e0bf620, 0x3bbaa: 0x6e0bf820, 0x3bbab: 0x6e0bfa20, - 0x3bbac: 0x6e0bfc20, 0x3bbad: 0x6e0bfe20, 0x3bbae: 0x6e0c0020, 0x3bbaf: 0x6e0c0220, - 0x3bbb0: 0x6e0c0420, 0x3bbb1: 0x6e0c0620, 0x3bbb2: 0x6e0c0820, 0x3bbb3: 0x6e0c0a20, - 0x3bbb4: 0x6e0c0c20, 0x3bbb5: 0x6e0c0e20, 0x3bbb6: 0x6e0c1020, 0x3bbb7: 0x6e1bb020, - 0x3bbb8: 0x6e1bb220, 0x3bbb9: 0x6e1bb420, 0x3bbba: 0x6e1bb620, 0x3bbbb: 0x6e1bb820, - 0x3bbbc: 0x6e1bba20, 0x3bbbd: 0x6e1bbc20, 0x3bbbe: 0x6e1bbe20, 0x3bbbf: 0x6e1bc020, - // Block 0xeef, offset 0x3bbc0 - 0x3bbc0: 0x6e1bc220, 0x3bbc1: 0x6e1bc420, 0x3bbc2: 0x6e1bc620, 0x3bbc3: 0x6e1bc820, - 0x3bbc4: 0x6e1bca20, 0x3bbc5: 0x6e1bcc20, 0x3bbc6: 0x6e1bce20, 0x3bbc7: 0x6e1bd020, - 0x3bbc8: 0x6e1bd220, 0x3bbc9: 0x6e1bd420, 0x3bbca: 0x6e1bd620, 0x3bbcb: 0x6e1bd820, - 0x3bbcc: 0x6e1bda20, 0x3bbcd: 0x6e1bdc20, 0x3bbce: 0x6e280620, 0x3bbcf: 0x6e280820, - 0x3bbd0: 0x6e280a20, 0x3bbd1: 0x6e280c20, 0x3bbd2: 0x6e280e20, 0x3bbd3: 0x6e281020, - 0x3bbd4: 0x6e281220, 0x3bbd5: 0x6e281420, 0x3bbd6: 0x6e281620, 0x3bbd7: 0x6e281820, - 0x3bbd8: 0x6e281a20, 0x3bbd9: 0x6e281c20, 0x3bbda: 0x6e281e20, 0x3bbdb: 0x6e282020, - 0x3bbdc: 0x6e282220, 0x3bbdd: 0x6e282420, 0x3bbde: 0x6e282620, 0x3bbdf: 0x6e282820, - 0x3bbe0: 0x6e282a20, 0x3bbe1: 0x6e282c20, 0x3bbe2: 0x6e282e20, 0x3bbe3: 0x6e283020, - 0x3bbe4: 0x6e283220, 0x3bbe5: 0x6e315420, 0x3bbe6: 0x6e315620, 0x3bbe7: 0x6e315820, - 0x3bbe8: 0x6e315a20, 0x3bbe9: 0x6e315c20, 0x3bbea: 0x6e315e20, 0x3bbeb: 0x6e316020, - 0x3bbec: 0x6e316220, 0x3bbed: 0x6e316420, 0x3bbee: 0x6e316620, 0x3bbef: 0x6e316820, - 0x3bbf0: 0x6e316a20, 0x3bbf1: 0x6e316c20, 0x3bbf2: 0x6e316e20, 0x3bbf3: 0x6e317020, - 0x3bbf4: 0x6e317220, 0x3bbf5: 0x6e317420, 0x3bbf6: 0x6e317620, 0x3bbf7: 0x6e317820, - 0x3bbf8: 0x6e317a20, 0x3bbf9: 0x6e381e20, 0x3bbfa: 0x6e382020, 0x3bbfb: 0x6e382220, - 0x3bbfc: 0x6e382420, 0x3bbfd: 0x6e382620, 0x3bbfe: 0x6e382820, 0x3bbff: 0x6e382a20, - // Block 0xef0, offset 0x3bc00 - 0x3bc00: 0x6e382c20, 0x3bc01: 0x6e382e20, 0x3bc02: 0x6e383020, 0x3bc03: 0x6e383220, - 0x3bc04: 0x6e383420, 0x3bc05: 0x6e383620, 0x3bc06: 0x6e383820, 0x3bc07: 0x6e383a20, - 0x3bc08: 0x6e383c20, 0x3bc09: 0x6e3cb020, 0x3bc0a: 0x6e3cb220, 0x3bc0b: 0x6e3cb420, - 0x3bc0c: 0x6e3cb620, 0x3bc0d: 0x6e3cb820, 0x3bc0e: 0x6e3cba20, 0x3bc0f: 0x6e3cbc20, - 0x3bc10: 0x6e3cbe20, 0x3bc11: 0x6e3cc020, 0x3bc12: 0x6e3cc220, 0x3bc13: 0x6e3cc420, - 0x3bc14: 0x6e3cc620, 0x3bc15: 0x6e3cc820, 0x3bc16: 0x6e3cca20, 0x3bc17: 0x6e3ccc20, - 0x3bc18: 0x6e3cce20, 0x3bc19: 0x6e3cd020, 0x3bc1a: 0x6e3fea20, 0x3bc1b: 0x6e3fec20, - 0x3bc1c: 0x6e3fee20, 0x3bc1d: 0x6e3ff020, 0x3bc1e: 0x6e3ff220, 0x3bc1f: 0x6e3ff420, - 0x3bc20: 0x6e3ff620, 0x3bc21: 0x6e3ff820, 0x3bc22: 0x6e3ffa20, 0x3bc23: 0x6e425820, - 0x3bc24: 0x6e425a20, 0x3bc25: 0x6e425c20, 0x3bc26: 0x6e425e20, 0x3bc27: 0x6e426020, - 0x3bc28: 0x6e426220, 0x3bc29: 0x6e426420, 0x3bc2a: 0x6e426620, 0x3bc2b: 0x6e426820, - 0x3bc2c: 0x6e426a20, 0x3bc2d: 0x6e426c20, 0x3bc2e: 0x6e426e20, 0x3bc2f: 0x6e427020, - 0x3bc30: 0x6e440a20, 0x3bc31: 0x6e440c20, 0x3bc32: 0x6e440e20, 0x3bc33: 0x6e441020, - 0x3bc34: 0x6e441220, 0x3bc35: 0x6e441420, 0x3bc36: 0x6e451020, 0x3bc37: 0x6e45ae20, - 0x3bc38: 0x6e45b020, 0x3bc39: 0x6e45b220, 0x3bc3a: 0x6e45b420, 0x3bc3b: 0x6e45b620, - 0x3bc3c: 0x6e45b820, 0x3bc3d: 0x6e461820, 0x3bc3e: 0x6e461a20, 0x3bc3f: 0x6e461c20, - // Block 0xef1, offset 0x3bc40 - 0x3bc40: 0x6e461e20, 0x3bc41: 0x6e467020, 0x3bc42: 0x6e467220, 0x3bc43: 0x6e467420, - 0x3bc44: 0x6e467620, 0x3bc45: 0x6e46a620, 0x3bc46: 0x6e46be20, 0x3bc47: 0x6e46c020, - 0x3bc48: 0x6e46c220, 0x3bc49: 0x6e46c420, 0x3bc4a: 0x6e46de20, 0x3bc4b: 0x6e46e020, - 0x3bc4c: 0x6e46fe20, 0x3bc4d: 0x6e472620, 0x3bc4e: 0x6e472820, 0x3bc4f: 0x6d478a20, - 0x3bc50: 0x6d9f9420, 0x3bc51: 0x6df85c20, 0x3bc52: 0x6df85e20, 0x3bc53: 0x6df86020, - 0x3bc54: 0x6df86220, 0x3bc55: 0x6e0c1420, 0x3bc56: 0x6e0c1620, 0x3bc57: 0x6e0c1820, - 0x3bc58: 0x6e0c1a20, 0x3bc59: 0x6e1be420, 0x3bc5a: 0x6e0c1c20, 0x3bc5b: 0x6e0c1e20, - 0x3bc5c: 0x6e283e20, 0x3bc5d: 0x6e284020, 0x3bc5e: 0x6e284220, 0x3bc5f: 0x6e284420, - 0x3bc60: 0x6e317c20, 0x3bc61: 0x6e317e20, 0x3bc62: 0x6e3cd220, 0x3bc63: 0x6e427420, - 0x3bc64: 0x6e427620, 0x3bc65: 0x6e474220, 0x3bc66: 0x6d9fa020, 0x3bc67: 0x6e1bec20, - 0x3bc68: 0x6de00220, 0x3bc69: 0x6df86620, 0x3bc6a: 0x6df86820, 0x3bc6b: 0x6e0c2620, - 0x3bc6c: 0x6e0c2820, 0x3bc6d: 0x6e0c2a20, 0x3bc6e: 0x6e0c2c20, 0x3bc6f: 0x6e0c2e20, - 0x3bc70: 0x6e0c3020, 0x3bc71: 0x6e0c3220, 0x3bc72: 0x6e0c3420, 0x3bc73: 0x6e0c3620, - 0x3bc74: 0x6e0c3820, 0x3bc75: 0x6e0c3a20, 0x3bc76: 0x6e1bee20, 0x3bc77: 0x6e1bf020, - 0x3bc78: 0x6e1bf220, 0x3bc79: 0x6e1bf420, 0x3bc7a: 0x6e1bf620, 0x3bc7b: 0x6e1bf820, - 0x3bc7c: 0x6e1bfa20, 0x3bc7d: 0x6e1bfc20, 0x3bc7e: 0x6e318220, 0x3bc7f: 0x6e318420, - // Block 0xef2, offset 0x3bc80 - 0x3bc80: 0x6e384020, 0x3bc81: 0x6e3cd620, 0x3bc82: 0x6e427820, 0x3bc83: 0x6e427a20, - 0x3bc84: 0x6e427c20, 0x3bc85: 0x6e441820, 0x3bc86: 0x6e441a20, 0x3bc87: 0x6e45ba20, - 0x3bc88: 0x6e46aa20, 0x3bc89: 0x6d9fa220, 0x3bc8a: 0x6e1c0220, 0x3bc8b: 0x6e3cdc20, - 0x3bc8c: 0x6e3cde20, 0x3bc8d: 0x6e3ce020, 0x3bc8e: 0x6e400020, 0x3bc8f: 0x6e400220, - 0x3bc90: 0x6e400420, 0x3bc91: 0x6e400620, 0x3bc92: 0x6e428020, 0x3bc93: 0x6e441e20, - 0x3bc94: 0x6e462020, 0x3bc95: 0x6e46ac20, 0x3bc96: 0x6e471220, - // Block 0xef3, offset 0x3bcc0 - 0x3bcc0: 0x6c00f020, 0x3bcc1: 0x6c00f220, 0x3bcc2: 0x6c023420, 0x3bcc3: 0x6c28c220, - 0x3bcc4: 0x6c42f420, 0x3bcc5: 0x6c63d620, 0x3bcc6: 0x6c8afa20, 0x3bcc7: 0x6d75d220, - 0x3bcc8: 0x6c024020, 0x3bcc9: 0x6c42fe20, 0x3bcca: 0x6c004c20, 0x3bccb: 0x6c28ce20, - 0x3bccc: 0x6c0b0c20, 0x3bccd: 0x6c430820, 0x3bcce: 0x6c63ee20, 0x3bccf: 0x6c63f020, - 0x3bcd0: 0x6c05ae20, 0x3bcd1: 0x6c0b3620, 0x3bcd2: 0x6c161c20, 0x3bcd3: 0x6c161e20, - 0x3bcd4: 0x6c28f020, 0x3bcd5: 0x6c432a20, 0x3bcd6: 0x6c63fe20, 0x3bcd7: 0x6c640020, - 0x3bcd8: 0x6c8b2020, 0x3bcd9: 0x6cb7b620, 0x3bcda: 0x6cb7b820, 0x3bcdb: 0x6ce8dc20, - 0x3bcdc: 0x6c162820, 0x3bcdd: 0x6cb7bc20, 0x3bcde: 0x6d18a820, 0x3bcdf: 0x6d479c20, - 0x3bce0: 0x6c05b420, 0x3bce1: 0x6c05b620, 0x3bce2: 0x6c164420, 0x3bce3: 0x6c8b3c20, - 0x3bce4: 0x6cb7d620, 0x3bce5: 0x6d47b020, 0x3bce6: 0x6de00c20, 0x3bce7: 0x6c02c420, - 0x3bce8: 0x6c0c3c20, 0x3bce9: 0x6c0c3e20, 0x3bcea: 0x6c0c4020, 0x3bceb: 0x6c0c4220, - 0x3bcec: 0x6c172220, 0x3bced: 0x6c172420, 0x3bcee: 0x6c172620, 0x3bcef: 0x6c172820, - 0x3bcf0: 0x6c172a20, 0x3bcf1: 0x6c172c20, 0x3bcf2: 0x6c172e20, 0x3bcf3: 0x6c173020, - 0x3bcf4: 0x6c173220, 0x3bcf5: 0x6c2a1c20, 0x3bcf6: 0x6c2a1e20, 0x3bcf7: 0x6c2a2020, - 0x3bcf8: 0x6c2a2220, 0x3bcf9: 0x6c2a2420, 0x3bcfa: 0x6c2a2620, 0x3bcfb: 0x6c444a20, - 0x3bcfc: 0x6c444c20, 0x3bcfd: 0x6c444e20, 0x3bcfe: 0x6c445020, 0x3bcff: 0x6c445220, - // Block 0xef4, offset 0x3bd00 - 0x3bd00: 0x6c445420, 0x3bd01: 0x6c445620, 0x3bd02: 0x6c445820, 0x3bd03: 0x6c655c20, - 0x3bd04: 0x6c655e20, 0x3bd05: 0x6c656020, 0x3bd06: 0x6c656220, 0x3bd07: 0x6c656420, - 0x3bd08: 0x6c656620, 0x3bd09: 0x6c656820, 0x3bd0a: 0x6c656a20, 0x3bd0b: 0x6c8c4e20, - 0x3bd0c: 0x6c8c5020, 0x3bd0d: 0x6c8c5220, 0x3bd0e: 0x6c8c5420, 0x3bd0f: 0x6c8c5620, - 0x3bd10: 0x6c8c5820, 0x3bd11: 0x6c8c5a20, 0x3bd12: 0x6c8c5c20, 0x3bd13: 0x6c8c5e20, - 0x3bd14: 0x6c8c6020, 0x3bd15: 0x6c8c6220, 0x3bd16: 0x6cb8b220, 0x3bd17: 0x6cb8b420, - 0x3bd18: 0x6cb8b620, 0x3bd19: 0x6cb8b820, 0x3bd1a: 0x6cb8ba20, 0x3bd1b: 0x6cb8bc20, - 0x3bd1c: 0x6cb8be20, 0x3bd1d: 0x6cb8c020, 0x3bd1e: 0x6cb8c220, 0x3bd1f: 0x6cb8c420, - 0x3bd20: 0x6ce9d620, 0x3bd21: 0x6ce9d820, 0x3bd22: 0x6ce9da20, 0x3bd23: 0x6ce9dc20, - 0x3bd24: 0x6ce9de20, 0x3bd25: 0x6d19a820, 0x3bd26: 0x6d19aa20, 0x3bd27: 0x6d19ac20, - 0x3bd28: 0x6d19ae20, 0x3bd29: 0x6d19b020, 0x3bd2a: 0x6d19b220, 0x3bd2b: 0x6d485020, - 0x3bd2c: 0x6d485220, 0x3bd2d: 0x6d485420, 0x3bd2e: 0x6d485620, 0x3bd2f: 0x6d485820, - 0x3bd30: 0x6d765e20, 0x3bd31: 0x6d766020, 0x3bd32: 0x6d766220, 0x3bd33: 0x6d766420, - 0x3bd34: 0x6d9ffc20, 0x3bd35: 0x6d9ffe20, 0x3bd36: 0x6da00020, 0x3bd37: 0x6dc28620, - 0x3bd38: 0x6dc28820, 0x3bd39: 0x6dc28a20, 0x3bd3a: 0x6de03c20, 0x3bd3b: 0x6de03e20, - 0x3bd3c: 0x6de04020, 0x3bd3d: 0x6df88c20, 0x3bd3e: 0x6e0c6220, 0x3bd3f: 0x6c2a4a20, - // Block 0xef5, offset 0x3bd40 - 0x3bd40: 0x6c446820, 0x3bd41: 0x6c658420, 0x3bd42: 0x6ce9ea20, 0x3bd43: 0x6d486a20, - 0x3bd44: 0x6d486c20, 0x3bd45: 0x6d486e20, 0x3bd46: 0x6de04620, 0x3bd47: 0x6c658e20, - 0x3bd48: 0x6c0c7620, 0x3bd49: 0x6cb8f020, 0x3bd4a: 0x6cea0620, 0x3bd4b: 0x6d19da20, - 0x3bd4c: 0x6d487020, 0x3bd4d: 0x6d768220, 0x3bd4e: 0x6c177e20, 0x3bd4f: 0x6c178a20, - 0x3bd50: 0x6c178c20, 0x3bd51: 0x6c2a7220, 0x3bd52: 0x6c65c020, 0x3bd53: 0x6c8c9420, - 0x3bd54: 0x6cb90a20, 0x3bd55: 0x6d19e820, 0x3bd56: 0x6c065820, 0x3bd57: 0x6c0cb220, - 0x3bd58: 0x6c0cb420, 0x3bd59: 0x6c0cb620, 0x3bd5a: 0x6c0cb820, 0x3bd5b: 0x6c17b220, - 0x3bd5c: 0x6c17b420, 0x3bd5d: 0x6c17b620, 0x3bd5e: 0x6c2a9620, 0x3bd5f: 0x6c44ca20, - 0x3bd60: 0x6c44cc20, 0x3bd61: 0x6c44ce20, 0x3bd62: 0x6c65f820, 0x3bd63: 0x6c65fa20, - 0x3bd64: 0x6c65fc20, 0x3bd65: 0x6c65fe20, 0x3bd66: 0x6c8cb620, 0x3bd67: 0x6c8cb820, - 0x3bd68: 0x6c8cba20, 0x3bd69: 0x6cb92c20, 0x3bd6a: 0x6cb92e20, 0x3bd6b: 0x6cea2a20, - 0x3bd6c: 0x6cea2c20, 0x3bd6d: 0x6d19fc20, 0x3bd6e: 0x6d489020, 0x3bd6f: 0x6d769820, - 0x3bd70: 0x6df8a020, 0x3bd71: 0x6c0cd020, 0x3bd72: 0x6c17ce20, 0x3bd73: 0x6c660a20, - 0x3bd74: 0x6c8cce20, 0x3bd75: 0x6cea3620, 0x3bd76: 0x6c067a20, 0x3bd77: 0x6c2aba20, - 0x3bd78: 0x6c661020, 0x3bd79: 0x6cb94420, 0x3bd7a: 0x6cea3820, 0x3bd7b: 0x6cea3a20, - 0x3bd7c: 0x6dc2b420, 0x3bd7d: 0x6de05420, 0x3bd7e: 0x6c0d3420, 0x3bd7f: 0x6c0d3620, - // Block 0xef6, offset 0x3bd80 - 0x3bd80: 0x6c0d3820, 0x3bd81: 0x6c183420, 0x3bd82: 0x6c183620, 0x3bd83: 0x6c2b4420, - 0x3bd84: 0x6c2b4620, 0x3bd85: 0x6c2b4820, 0x3bd86: 0x6c454820, 0x3bd87: 0x6c454a20, - 0x3bd88: 0x6c66a220, 0x3bd89: 0x6c66a420, 0x3bd8a: 0x6c8d3a20, 0x3bd8b: 0x6c8d3c20, - 0x3bd8c: 0x6c8d3e20, 0x3bd8d: 0x6c8d4020, 0x3bd8e: 0x6cb9a420, 0x3bd8f: 0x6cb9a620, - 0x3bd90: 0x6cb9a820, 0x3bd91: 0x6cea8c20, 0x3bd92: 0x6cea8e20, 0x3bd93: 0x6cea9020, - 0x3bd94: 0x6d48d820, 0x3bd95: 0x6d76d620, 0x3bd96: 0x6d76d820, 0x3bd97: 0x6c187220, - 0x3bd98: 0x6c187420, 0x3bd99: 0x6c187620, 0x3bd9a: 0x6c2b8220, 0x3bd9b: 0x6c2b8420, - 0x3bd9c: 0x6c458020, 0x3bd9d: 0x6c66d820, 0x3bd9e: 0x6c66da20, 0x3bd9f: 0x6c66dc20, - 0x3bda0: 0x6c8d6820, 0x3bda1: 0x6cb9d020, 0x3bda2: 0x6cb9d220, 0x3bda3: 0x6ceabe20, - 0x3bda4: 0x6d1aa420, 0x3bda5: 0x6d1aa620, 0x3bda6: 0x6d48f020, 0x3bda7: 0x6e0c8220, - 0x3bda8: 0x6c016620, 0x3bda9: 0x6c0d6620, 0x3bdaa: 0x6c459e20, 0x3bdab: 0x6cead020, - 0x3bdac: 0x6c0d7820, 0x3bdad: 0x6c18a020, 0x3bdae: 0x6c18a220, 0x3bdaf: 0x6c45be20, - 0x3bdb0: 0x6c670c20, 0x3bdb1: 0x6d1ac820, 0x3bdb2: 0x6df8c020, 0x3bdb3: 0x6c18bc20, - 0x3bdb4: 0x6c671e20, 0x3bdb5: 0x6c8da620, 0x3bdb6: 0x6ceaf420, 0x3bdb7: 0x6d1ad220, - 0x3bdb8: 0x6d490e20, 0x3bdb9: 0x6d491020, 0x3bdba: 0x6da08220, 0x3bdbb: 0x6dc2de20, - 0x3bdbc: 0x6df8c420, 0x3bdbd: 0x6c037a20, 0x3bdbe: 0x6c18ce20, 0x3bdbf: 0x6c672c20, - // Block 0xef7, offset 0x3bdc0 - 0x3bdc0: 0x6d1ad820, 0x3bdc1: 0x6c2bfe20, 0x3bdc2: 0x6c45f420, 0x3bdc3: 0x6c070820, - 0x3bdc4: 0x6c190020, 0x3bdc5: 0x6c2c2420, 0x3bdc6: 0x6c2c2620, 0x3bdc7: 0x6c462420, - 0x3bdc8: 0x6c462620, 0x3bdc9: 0x6c462820, 0x3bdca: 0x6c462a20, 0x3bdcb: 0x6c676420, - 0x3bdcc: 0x6c676620, 0x3bdcd: 0x6c676820, 0x3bdce: 0x6c676a20, 0x3bdcf: 0x6c8dde20, - 0x3bdd0: 0x6c8de020, 0x3bdd1: 0x6cba2a20, 0x3bdd2: 0x6cba2c20, 0x3bdd3: 0x6ceb1a20, - 0x3bdd4: 0x6ceb1c20, 0x3bdd5: 0x6ceb1e20, 0x3bdd6: 0x6d1b1020, 0x3bdd7: 0x6d1b1220, - 0x3bdd8: 0x6d493620, 0x3bdd9: 0x6d493820, 0x3bdda: 0x6da08c20, 0x3bddb: 0x6df8c820, - 0x3bddc: 0x6c463c20, 0x3bddd: 0x6c677a20, 0x3bdde: 0x6c8dee20, 0x3bddf: 0x6cba4020, - 0x3bde0: 0x6ceb3020, 0x3bde1: 0x6d494220, 0x3bde2: 0x6df8ca20, 0x3bde3: 0x6c03b820, - 0x3bde4: 0x6c03ba20, 0x3bde5: 0x6c0e1a20, 0x3bde6: 0x6c192020, 0x3bde7: 0x6c2c5220, - 0x3bde8: 0x6c2c5420, 0x3bde9: 0x6c466020, 0x3bdea: 0x6c466220, 0x3bdeb: 0x6c679620, - 0x3bdec: 0x6c679820, 0x3bded: 0x6cba5820, 0x3bdee: 0x6cba5a20, 0x3bdef: 0x6ceb4c20, - 0x3bdf0: 0x6d1b3220, 0x3bdf1: 0x6d770a20, 0x3bdf2: 0x6c078620, 0x3bdf3: 0x6c1a4420, - 0x3bdf4: 0x6c1a4620, 0x3bdf5: 0x6c1a4820, 0x3bdf6: 0x6c2d7620, 0x3bdf7: 0x6c2d7820, - 0x3bdf8: 0x6c2d7a20, 0x3bdf9: 0x6c2d7c20, 0x3bdfa: 0x6c47c620, 0x3bdfb: 0x6c47c820, - 0x3bdfc: 0x6c47ca20, 0x3bdfd: 0x6c47cc20, 0x3bdfe: 0x6c47ce20, 0x3bdff: 0x6c47d020, - // Block 0xef8, offset 0x3be00 - 0x3be00: 0x6c47d220, 0x3be01: 0x6c47d420, 0x3be02: 0x6c47d620, 0x3be03: 0x6c47d820, - 0x3be04: 0x6c693820, 0x3be05: 0x6c693a20, 0x3be06: 0x6c693c20, 0x3be07: 0x6c693e20, - 0x3be08: 0x6c694020, 0x3be09: 0x6c694220, 0x3be0a: 0x6c694420, 0x3be0b: 0x6c694620, - 0x3be0c: 0x6c694820, 0x3be0d: 0x6c694a20, 0x3be0e: 0x6c694c20, 0x3be0f: 0x6d770c20, - 0x3be10: 0x6c900020, 0x3be11: 0x6c900220, 0x3be12: 0x6c900420, 0x3be13: 0x6c900620, - 0x3be14: 0x6c900820, 0x3be15: 0x6c900a20, 0x3be16: 0x6c900c20, 0x3be17: 0x6c900e20, - 0x3be18: 0x6c901020, 0x3be19: 0x6c901220, 0x3be1a: 0x6c901420, 0x3be1b: 0x6c901620, - 0x3be1c: 0x6cbc2220, 0x3be1d: 0x6cbc2420, 0x3be1e: 0x6cbc2620, 0x3be1f: 0x6cbc2820, - 0x3be20: 0x6cbc2a20, 0x3be21: 0x6cbc2c20, 0x3be22: 0x6cbc2e20, 0x3be23: 0x6cbc3020, - 0x3be24: 0x6cbc3220, 0x3be25: 0x6cbc3420, 0x3be26: 0x6cbc3620, 0x3be27: 0x6cbc3820, - 0x3be28: 0x6cbc3a20, 0x3be29: 0x6cbc3c20, 0x3be2a: 0x6ced0c20, 0x3be2b: 0x6ced0e20, - 0x3be2c: 0x6ced1020, 0x3be2d: 0x6ced1220, 0x3be2e: 0x6ced1420, 0x3be2f: 0x6ced1620, - 0x3be30: 0x6ced1820, 0x3be31: 0x6ced1a20, 0x3be32: 0x6ced1c20, 0x3be33: 0x6ced1e20, - 0x3be34: 0x6ced2020, 0x3be35: 0x6ced2220, 0x3be36: 0x6ced2420, 0x3be37: 0x6ced2620, - 0x3be38: 0x6d1cd020, 0x3be39: 0x6d1cd220, 0x3be3a: 0x6d1cd420, 0x3be3b: 0x6d1cd620, - 0x3be3c: 0x6d1cd820, 0x3be3d: 0x6d1cda20, 0x3be3e: 0x6d1cdc20, 0x3be3f: 0x6d1cde20, - // Block 0xef9, offset 0x3be40 - 0x3be40: 0x6d1ce020, 0x3be41: 0x6d1ce220, 0x3be42: 0x6d1ce420, 0x3be43: 0x6d1ce620, - 0x3be44: 0x6d1ce820, 0x3be45: 0x6d4aa220, 0x3be46: 0x6d4aa420, 0x3be47: 0x6d4aa620, - 0x3be48: 0x6d4aa820, 0x3be49: 0x6d4aaa20, 0x3be4a: 0x6d4aac20, 0x3be4b: 0x6d4aae20, - 0x3be4c: 0x6d4ab020, 0x3be4d: 0x6d4ab220, 0x3be4e: 0x6d784a20, 0x3be4f: 0x6d784c20, - 0x3be50: 0x6d784e20, 0x3be51: 0x6d785020, 0x3be52: 0x6d785220, 0x3be53: 0x6d785420, - 0x3be54: 0x6d785620, 0x3be55: 0x6da17420, 0x3be56: 0x6da17620, 0x3be57: 0x6da17820, - 0x3be58: 0x6da17a20, 0x3be59: 0x6dc3ce20, 0x3be5a: 0x6dc3d020, 0x3be5b: 0x6dc3d220, - 0x3be5c: 0x6dc3d420, 0x3be5d: 0x6dc3d620, 0x3be5e: 0x6dc3d820, 0x3be5f: 0x6de0f820, - 0x3be60: 0x6de0fa20, 0x3be61: 0x6de0fc20, 0x3be62: 0x6df92220, 0x3be63: 0x6df92420, - 0x3be64: 0x6df92620, 0x3be65: 0x6e1c7020, 0x3be66: 0x6e31be20, 0x3be67: 0x6e31c020, - 0x3be68: 0x6c1a9620, 0x3be69: 0x6c2da820, 0x3be6a: 0x6c47fe20, 0x3be6b: 0x6c697c20, - 0x3be6c: 0x6c904220, 0x3be6d: 0x6c904420, 0x3be6e: 0x6ced4820, 0x3be6f: 0x6d1d1420, - 0x3be70: 0x6d786420, 0x3be71: 0x6c07c020, 0x3be72: 0x6c07c220, 0x3be73: 0x6c0f0420, - 0x3be74: 0x6c0f0620, 0x3be75: 0x6c0f0820, 0x3be76: 0x6c0f0a20, 0x3be77: 0x6c0f0c20, - 0x3be78: 0x6c1b5020, 0x3be79: 0x6c1b5220, 0x3be7a: 0x6c1b5420, 0x3be7b: 0x6c1b5620, - 0x3be7c: 0x6c1b5820, 0x3be7d: 0x6c1b5a20, 0x3be7e: 0x6c1b5c20, 0x3be7f: 0x6c1b5e20, - // Block 0xefa, offset 0x3be80 - 0x3be80: 0x6c1b6020, 0x3be81: 0x6c1b6220, 0x3be82: 0x6c1b6420, 0x3be83: 0x6c2e6e20, - 0x3be84: 0x6c2e7020, 0x3be85: 0x6c2e7220, 0x3be86: 0x6c2e7420, 0x3be87: 0x6c2e7620, - 0x3be88: 0x6c2e7820, 0x3be89: 0x6c2e7a20, 0x3be8a: 0x6c2e7c20, 0x3be8b: 0x6c48d420, - 0x3be8c: 0x6c48d620, 0x3be8d: 0x6c48d820, 0x3be8e: 0x6c48da20, 0x3be8f: 0x6c48dc20, - 0x3be90: 0x6c48de20, 0x3be91: 0x6c48e020, 0x3be92: 0x6c48e220, 0x3be93: 0x6c48e420, - 0x3be94: 0x6c6a4e20, 0x3be95: 0x6c6a5020, 0x3be96: 0x6c6a5220, 0x3be97: 0x6c6a5420, - 0x3be98: 0x6c6a5620, 0x3be99: 0x6c6a5820, 0x3be9a: 0x6c6a5a20, 0x3be9b: 0x6c6a5c20, - 0x3be9c: 0x6c6a5e20, 0x3be9d: 0x6c6a6020, 0x3be9e: 0x6c6a6220, 0x3be9f: 0x6c6a6420, - 0x3bea0: 0x6c6a6620, 0x3bea1: 0x6c6a6820, 0x3bea2: 0x6c6a6a20, 0x3bea3: 0x6c6a6c20, - 0x3bea4: 0x6c914220, 0x3bea5: 0x6c914420, 0x3bea6: 0x6c914620, 0x3bea7: 0x6c914820, - 0x3bea8: 0x6c914a20, 0x3bea9: 0x6c914c20, 0x3beaa: 0x6c914e20, 0x3beab: 0x6c915020, - 0x3beac: 0x6c915220, 0x3bead: 0x6c915420, 0x3beae: 0x6c915620, 0x3beaf: 0x6c915820, - 0x3beb0: 0x6c915a20, 0x3beb1: 0x6c915c20, 0x3beb2: 0x6cbd6c20, 0x3beb3: 0x6cbd6e20, - 0x3beb4: 0x6cbd7020, 0x3beb5: 0x6cbd7220, 0x3beb6: 0x6cbd7420, 0x3beb7: 0x6cbd7620, - 0x3beb8: 0x6cbd7820, 0x3beb9: 0x6cbd7a20, 0x3beba: 0x6cbd7c20, 0x3bebb: 0x6cbd7e20, - 0x3bebc: 0x6cbd8020, 0x3bebd: 0x6cbd8220, 0x3bebe: 0x6cee2e20, 0x3bebf: 0x6cee3020, - // Block 0xefb, offset 0x3bec0 - 0x3bec0: 0x6cee3220, 0x3bec1: 0x6cee3420, 0x3bec2: 0x6cee3620, 0x3bec3: 0x6cee3820, - 0x3bec4: 0x6cee3a20, 0x3bec5: 0x6cee3c20, 0x3bec6: 0x6cee3e20, 0x3bec7: 0x6cee4020, - 0x3bec8: 0x6cee4220, 0x3bec9: 0x6cee4420, 0x3beca: 0x6cee4620, 0x3becb: 0x6cee4820, - 0x3becc: 0x6cee4a20, 0x3becd: 0x6cee4c20, 0x3bece: 0x6d1dda20, 0x3becf: 0x6d1ddc20, - 0x3bed0: 0x6d1dde20, 0x3bed1: 0x6d1de020, 0x3bed2: 0x6d1de220, 0x3bed3: 0x6d1de420, - 0x3bed4: 0x6d1de620, 0x3bed5: 0x6d1de820, 0x3bed6: 0x6d1dea20, 0x3bed7: 0x6d1dec20, - 0x3bed8: 0x6d1dee20, 0x3bed9: 0x6d4b9420, 0x3beda: 0x6d4b9620, 0x3bedb: 0x6d4b9820, - 0x3bedc: 0x6d4b9a20, 0x3bedd: 0x6d4b9c20, 0x3bede: 0x6d4b9e20, 0x3bedf: 0x6d78f020, - 0x3bee0: 0x6d78f220, 0x3bee1: 0x6d78f420, 0x3bee2: 0x6d78f620, 0x3bee3: 0x6d78f820, - 0x3bee4: 0x6d78fa20, 0x3bee5: 0x6d78fc20, 0x3bee6: 0x6da1f420, 0x3bee7: 0x6da1f620, - 0x3bee8: 0x6da1f820, 0x3bee9: 0x6da1fa20, 0x3beea: 0x6da1fc20, 0x3beeb: 0x6da1fe20, - 0x3beec: 0x6dc42820, 0x3beed: 0x6dc42a20, 0x3beee: 0x6dc42c20, 0x3beef: 0x6dc42e20, - 0x3bef0: 0x6de14220, 0x3bef1: 0x6df95020, 0x3bef2: 0x6c6a8020, 0x3bef3: 0x6cee5a20, - 0x3bef4: 0x6e1c8e20, 0x3bef5: 0x6df95420, 0x3bef6: 0x6cee6820, 0x3bef7: 0x6c0f2820, - 0x3bef8: 0x6c2e9820, 0x3bef9: 0x6c490020, 0x3befa: 0x6c6aa820, 0x3befb: 0x6c919620, - 0x3befc: 0x6cbdb420, 0x3befd: 0x6d1e2c20, 0x3befe: 0x6d4bb620, 0x3beff: 0x6d791a20, - // Block 0xefc, offset 0x3bf00 - 0x3bf00: 0x6e1c9020, 0x3bf01: 0x6c03ee20, 0x3bf02: 0x6c07fa20, 0x3bf03: 0x6c0f5420, - 0x3bf04: 0x6c1bbe20, 0x3bf05: 0x6c1bc020, 0x3bf06: 0x6c1bc220, 0x3bf07: 0x6c2ee620, - 0x3bf08: 0x6c2ee820, 0x3bf09: 0x6c2eea20, 0x3bf0a: 0x6c2eec20, 0x3bf0b: 0x6c2eee20, - 0x3bf0c: 0x6c2ef020, 0x3bf0d: 0x6c493620, 0x3bf0e: 0x6c493820, 0x3bf0f: 0x6c493a20, - 0x3bf10: 0x6c6ae220, 0x3bf11: 0x6c6ae420, 0x3bf12: 0x6c6ae620, 0x3bf13: 0x6c91cc20, - 0x3bf14: 0x6c91ce20, 0x3bf15: 0x6c91d020, 0x3bf16: 0x6cbdec20, 0x3bf17: 0x6cbdee20, - 0x3bf18: 0x6cbdf020, 0x3bf19: 0x6ceea020, 0x3bf1a: 0x6ceea220, 0x3bf1b: 0x6ceea420, - 0x3bf1c: 0x6d1e4c20, 0x3bf1d: 0x6d1e4e20, 0x3bf1e: 0x6d1e5020, 0x3bf1f: 0x6d4bd820, - 0x3bf20: 0x6d4bda20, 0x3bf21: 0x6d4bdc20, 0x3bf22: 0x6dc45220, 0x3bf23: 0x6df95a20, - 0x3bf24: 0x6c0fa220, 0x3bf25: 0x6c0fa420, 0x3bf26: 0x6c1c5220, 0x3bf27: 0x6c1c5420, - 0x3bf28: 0x6c1c5620, 0x3bf29: 0x6c1c5820, 0x3bf2a: 0x6c1c5a20, 0x3bf2b: 0x6c1c5c20, - 0x3bf2c: 0x6c1c5e20, 0x3bf2d: 0x6c2fc020, 0x3bf2e: 0x6c2fc220, 0x3bf2f: 0x6c2fc420, - 0x3bf30: 0x6c2fc620, 0x3bf31: 0x6c4a0c20, 0x3bf32: 0x6c4a0e20, 0x3bf33: 0x6c4a1020, - 0x3bf34: 0x6c4a1220, 0x3bf35: 0x6c4a1420, 0x3bf36: 0x6c6bcc20, 0x3bf37: 0x6c6bce20, - 0x3bf38: 0x6c6bd020, 0x3bf39: 0x6c6bd220, 0x3bf3a: 0x6c6bd420, 0x3bf3b: 0x6c92ec20, - 0x3bf3c: 0x6c92ee20, 0x3bf3d: 0x6c92f020, 0x3bf3e: 0x6c92f220, 0x3bf3f: 0x6c92f420, - // Block 0xefd, offset 0x3bf40 - 0x3bf40: 0x6c92f620, 0x3bf41: 0x6c92f820, 0x3bf42: 0x6c92fa20, 0x3bf43: 0x6c92fc20, - 0x3bf44: 0x6c92fe20, 0x3bf45: 0x6c930020, 0x3bf46: 0x6cbf2a20, 0x3bf47: 0x6cbf2c20, - 0x3bf48: 0x6cbf2e20, 0x3bf49: 0x6cbf3020, 0x3bf4a: 0x6cbf3220, 0x3bf4b: 0x6cbf3420, - 0x3bf4c: 0x6cbf3620, 0x3bf4d: 0x6cbf3820, 0x3bf4e: 0x6cbf3a20, 0x3bf4f: 0x6cbf3c20, - 0x3bf50: 0x6cbf3e20, 0x3bf51: 0x6cef6c20, 0x3bf52: 0x6cef6e20, 0x3bf53: 0x6cef7020, - 0x3bf54: 0x6cef7220, 0x3bf55: 0x6cef7420, 0x3bf56: 0x6cef7620, 0x3bf57: 0x6d1f1420, - 0x3bf58: 0x6d1f1620, 0x3bf59: 0x6d1f1820, 0x3bf5a: 0x6d1f1a20, 0x3bf5b: 0x6d1f1c20, - 0x3bf5c: 0x6d1f1e20, 0x3bf5d: 0x6d1f2020, 0x3bf5e: 0x6d1f2220, 0x3bf5f: 0x6d1f2420, - 0x3bf60: 0x6d4ca820, 0x3bf61: 0x6d4caa20, 0x3bf62: 0x6d4cac20, 0x3bf63: 0x6d4cae20, - 0x3bf64: 0x6d4cb020, 0x3bf65: 0x6d4cb220, 0x3bf66: 0x6d79d420, 0x3bf67: 0x6d79d620, - 0x3bf68: 0x6d79d820, 0x3bf69: 0x6d79da20, 0x3bf6a: 0x6d79dc20, 0x3bf6b: 0x6da29420, - 0x3bf6c: 0x6dc48620, 0x3bf6d: 0x6dc48820, 0x3bf6e: 0x6dc48a20, 0x3bf6f: 0x6dc48c20, - 0x3bf70: 0x6de18c20, 0x3bf71: 0x6de18e20, 0x3bf72: 0x6df98420, 0x3bf73: 0x6e0d4020, - 0x3bf74: 0x6e0d4220, 0x3bf75: 0x6e28ae20, 0x3bf76: 0x6c1c7e20, 0x3bf77: 0x6c1c8020, - 0x3bf78: 0x6c1c8220, 0x3bf79: 0x6c1c8420, 0x3bf7a: 0x6c2ff820, 0x3bf7b: 0x6c4a3e20, - 0x3bf7c: 0x6c931c20, 0x3bf7d: 0x6c931e20, 0x3bf7e: 0x6c932020, 0x3bf7f: 0x6cbf6020, - // Block 0xefe, offset 0x3bf80 - 0x3bf80: 0x6d1f3a20, 0x3bf81: 0x6d79fc20, 0x3bf82: 0x6da29c20, 0x3bf83: 0x6da29e20, - 0x3bf84: 0x6e0d4420, 0x3bf85: 0x6c1cb620, 0x3bf86: 0x6c1cb820, 0x3bf87: 0x6c1cba20, - 0x3bf88: 0x6c304020, 0x3bf89: 0x6c304220, 0x3bf8a: 0x6c4a8820, 0x3bf8b: 0x6c4a8a20, - 0x3bf8c: 0x6c4a8c20, 0x3bf8d: 0x6c6c6a20, 0x3bf8e: 0x6c6c6c20, 0x3bf8f: 0x6c6c6e20, - 0x3bf90: 0x6c6c7020, 0x3bf91: 0x6c937c20, 0x3bf92: 0x6c937e20, 0x3bf93: 0x6c938020, - 0x3bf94: 0x6cbfc620, 0x3bf95: 0x6cbfc820, 0x3bf96: 0x6cbfca20, 0x3bf97: 0x6cbfcc20, - 0x3bf98: 0x6cbfce20, 0x3bf99: 0x6cbfd020, 0x3bf9a: 0x6cbfd220, 0x3bf9b: 0x6cefec20, - 0x3bf9c: 0x6cefee20, 0x3bf9d: 0x6ceff020, 0x3bf9e: 0x6ceff220, 0x3bf9f: 0x6ceff420, - 0x3bfa0: 0x6ceff620, 0x3bfa1: 0x6d1fa020, 0x3bfa2: 0x6d1fa220, 0x3bfa3: 0x6d1fa420, - 0x3bfa4: 0x6d1fa620, 0x3bfa5: 0x6d1fa820, 0x3bfa6: 0x6d4d1620, 0x3bfa7: 0x6d4d1820, - 0x3bfa8: 0x6d4d1a20, 0x3bfa9: 0x6d4d1c20, 0x3bfaa: 0x6d4d1e20, 0x3bfab: 0x6d7a2820, - 0x3bfac: 0x6d7a2a20, 0x3bfad: 0x6d7a2c20, 0x3bfae: 0x6d7a2e20, 0x3bfaf: 0x6da2be20, - 0x3bfb0: 0x6dc4b220, 0x3bfb1: 0x6dc4b420, 0x3bfb2: 0x6dc4b620, 0x3bfb3: 0x6df9a220, - 0x3bfb4: 0x6df9a420, 0x3bfb5: 0x6e0d5a20, 0x3bfb6: 0x6e31ee20, 0x3bfb7: 0x6c0fea20, - 0x3bfb8: 0x6c939220, 0x3bfb9: 0x6c939420, 0x3bfba: 0x6cbfe820, 0x3bfbb: 0x6d4d3420, - 0x3bfbc: 0x6d4d3620, 0x3bfbd: 0x6d7a3620, 0x3bfbe: 0x6da2c620, 0x3bfbf: 0x6c1cd420, - // Block 0xeff, offset 0x3bfc0 - 0x3bfc0: 0x6c306820, 0x3bfc1: 0x6c6c9020, 0x3bfc2: 0x6c6c9220, 0x3bfc3: 0x6d1fce20, - 0x3bfc4: 0x6d4d4e20, 0x3bfc5: 0x6d7a4020, 0x3bfc6: 0x6da2d020, 0x3bfc7: 0x6cc01e20, - 0x3bfc8: 0x6cf02c20, 0x3bfc9: 0x6c1d1820, 0x3bfca: 0x6c1d1a20, 0x3bfcb: 0x6c1d1c20, - 0x3bfcc: 0x6c30b020, 0x3bfcd: 0x6c4b0e20, 0x3bfce: 0x6c4b1020, 0x3bfcf: 0x6c6cf020, - 0x3bfd0: 0x6c6cf220, 0x3bfd1: 0x6c940e20, 0x3bfd2: 0x6cf05e20, 0x3bfd3: 0x6cf06020, - 0x3bfd4: 0x6cf06220, 0x3bfd5: 0x6cc05a20, 0x3bfd6: 0x6cc05c20, 0x3bfd7: 0x6cc05e20, - 0x3bfd8: 0x6cc06020, 0x3bfd9: 0x6d1ffc20, 0x3bfda: 0x6d1ffe20, 0x3bfdb: 0x6d4d8820, - 0x3bfdc: 0x6d4d8a20, 0x3bfdd: 0x6d7a5e20, 0x3bfde: 0x6da2e020, 0x3bfdf: 0x6de1cc20, - 0x3bfe0: 0x6de1ce20, 0x3bfe1: 0x6e1cd220, 0x3bfe2: 0x6c108820, 0x3bfe3: 0x6c108a20, - 0x3bfe4: 0x6c108c20, 0x3bfe5: 0x6c108e20, 0x3bfe6: 0x6c1dcc20, 0x3bfe7: 0x6c1dce20, - 0x3bfe8: 0x6c1dd020, 0x3bfe9: 0x6c316e20, 0x3bfea: 0x6c317020, 0x3bfeb: 0x6c317220, - 0x3bfec: 0x6c317420, 0x3bfed: 0x6c317620, 0x3bfee: 0x6c317820, 0x3bfef: 0x6c4bbe20, - 0x3bff0: 0x6c4bc020, 0x3bff1: 0x6c4bc220, 0x3bff2: 0x6c4bc420, 0x3bff3: 0x6c4bc620, - 0x3bff4: 0x6c4bc820, 0x3bff5: 0x6c6dd420, 0x3bff6: 0x6c6dd620, 0x3bff7: 0x6c6dd820, - 0x3bff8: 0x6c6dda20, 0x3bff9: 0x6c6ddc20, 0x3bffa: 0x6c6dde20, 0x3bffb: 0x6c953c20, - 0x3bffc: 0x6c953e20, 0x3bffd: 0x6c954020, 0x3bffe: 0x6c954220, 0x3bfff: 0x6c954420, - // Block 0xf00, offset 0x3c000 - 0x3c000: 0x6c954620, 0x3c001: 0x6c954820, 0x3c002: 0x6cc15e20, 0x3c003: 0x6cc16020, - 0x3c004: 0x6cc16220, 0x3c005: 0x6cc16420, 0x3c006: 0x6cc16620, 0x3c007: 0x6cc16820, - 0x3c008: 0x6cf10820, 0x3c009: 0x6cf10a20, 0x3c00a: 0x6cf10c20, 0x3c00b: 0x6cf10e20, - 0x3c00c: 0x6d20ac20, 0x3c00d: 0x6d20ae20, 0x3c00e: 0x6d20b020, 0x3c00f: 0x6d20b220, - 0x3c010: 0x6d20b420, 0x3c011: 0x6d20b620, 0x3c012: 0x6d20b820, 0x3c013: 0x6d4e4020, - 0x3c014: 0x6d4e4220, 0x3c015: 0x6d4e4420, 0x3c016: 0x6d4e4620, 0x3c017: 0x6d7acc20, - 0x3c018: 0x6d7ace20, 0x3c019: 0x6d7ad020, 0x3c01a: 0x6d7ad220, 0x3c01b: 0x6da34c20, - 0x3c01c: 0x6da34e20, 0x3c01d: 0x6da35020, 0x3c01e: 0x6de20a20, 0x3c01f: 0x6e0d9020, - 0x3c020: 0x6e1cfc20, 0x3c021: 0x6c1ddc20, 0x3c022: 0x6c4bd820, 0x3c023: 0x6c10aa20, - 0x3c024: 0x6c955620, 0x3c025: 0x6cc17620, 0x3c026: 0x6cf11620, 0x3c027: 0x6d20bc20, - 0x3c028: 0x6da35820, 0x3c029: 0x6dc50c20, 0x3c02a: 0x6e1d0220, 0x3c02b: 0x6c319020, - 0x3c02c: 0x6c1de820, 0x3c02d: 0x6cc18420, 0x3c02e: 0x6cc18620, 0x3c02f: 0x6d20be20, - 0x3c030: 0x6d7ae420, 0x3c031: 0x6d7ae620, 0x3c032: 0x6c08b820, 0x3c033: 0x6c6e4c20, - 0x3c034: 0x6c95c220, 0x3c035: 0x6c95c420, 0x3c036: 0x6c95c620, 0x3c037: 0x6c95c820, - 0x3c038: 0x6cc1ec20, 0x3c039: 0x6cc1ee20, 0x3c03a: 0x6cc1f020, 0x3c03b: 0x6d210420, - 0x3c03c: 0x6d4ea620, 0x3c03d: 0x6d7b1820, 0x3c03e: 0x6da37a20, 0x3c03f: 0x6de22a20, - // Block 0xf01, offset 0x3c040 - 0x3c040: 0x6df9e820, 0x3c041: 0x6c1e3820, 0x3c042: 0x6c95ce20, 0x3c043: 0x6c95d020, - 0x3c044: 0x6cc1fa20, 0x3c045: 0x6cf16220, 0x3c046: 0x6cf16420, 0x3c047: 0x6d4eac20, - 0x3c048: 0x6dc51e20, 0x3c049: 0x6de22e20, 0x3c04a: 0x6c10e220, 0x3c04b: 0x6c4c6420, - 0x3c04c: 0x6c1e8020, 0x3c04d: 0x6c1e8220, 0x3c04e: 0x6c323e20, 0x3c04f: 0x6c324020, - 0x3c050: 0x6c4ca820, 0x3c051: 0x6c4caa20, 0x3c052: 0x6c6eae20, 0x3c053: 0x6c6eb020, - 0x3c054: 0x6c6eb220, 0x3c055: 0x6c6eb420, 0x3c056: 0x6c6eb620, 0x3c057: 0x6c6eb820, - 0x3c058: 0x6c964820, 0x3c059: 0x6c964a20, 0x3c05a: 0x6cc26020, 0x3c05b: 0x6cc26220, - 0x3c05c: 0x6cf1a820, 0x3c05d: 0x6cf1aa20, 0x3c05e: 0x6d216620, 0x3c05f: 0x6d216820, - 0x3c060: 0x6d216a20, 0x3c061: 0x6d4efa20, 0x3c062: 0x6d4efc20, 0x3c063: 0x6d4efe20, - 0x3c064: 0x6d7b5820, 0x3c065: 0x6d7b5a20, 0x3c066: 0x6da39a20, 0x3c067: 0x6da39c20, - 0x3c068: 0x6da39e20, 0x3c069: 0x6dc53c20, 0x3c06a: 0x6de25420, 0x3c06b: 0x6e0da820, - 0x3c06c: 0x6c08d820, 0x3c06d: 0x6c1e8c20, 0x3c06e: 0x6c1e8e20, 0x3c06f: 0x6c4cc020, - 0x3c070: 0x6c6ec020, 0x3c071: 0x6c965820, 0x3c072: 0x6d217220, 0x3c073: 0x6c1ea420, - 0x3c074: 0x6c325a20, 0x3c075: 0x6c6ed220, 0x3c076: 0x6cc27820, 0x3c077: 0x6cf1b620, - 0x3c078: 0x6da3a620, 0x3c079: 0x6e1d2020, 0x3c07a: 0x6c114820, 0x3c07b: 0x6c329820, - 0x3c07c: 0x6c4d2620, 0x3c07d: 0x6c4d2820, 0x3c07e: 0x6c6ef820, 0x3c07f: 0x6c969e20, - // Block 0xf02, offset 0x3c080 - 0x3c080: 0x6cc2a220, 0x3c081: 0x6cc2a420, 0x3c082: 0x6d21a420, 0x3c083: 0x6da3b820, - 0x3c084: 0x6e0db620, 0x3c085: 0x6e388420, 0x3c086: 0x6c115420, 0x3c087: 0x6dc55a20, - 0x3c088: 0x6c6f1020, 0x3c089: 0x6d4f3420, 0x3c08a: 0x6da3be20, 0x3c08b: 0x6c1f1a20, - 0x3c08c: 0x6c32de20, 0x3c08d: 0x6c6f5220, 0x3c08e: 0x6c6f5420, 0x3c08f: 0x6c972a20, - 0x3c090: 0x6c972c20, 0x3c091: 0x6cc2fe20, 0x3c092: 0x6cc30020, 0x3c093: 0x6cc30220, - 0x3c094: 0x6cf23e20, 0x3c095: 0x6cf24020, 0x3c096: 0x6d21fc20, 0x3c097: 0x6d21fe20, - 0x3c098: 0x6d220020, 0x3c099: 0x6d7bb020, 0x3c09a: 0x6da3d220, 0x3c09b: 0x6dc57020, - 0x3c09c: 0x6dc57220, 0x3c09d: 0x6c091e20, 0x3c09e: 0x6c11b820, 0x3c09f: 0x6c1fec20, - 0x3c0a0: 0x6c1fee20, 0x3c0a1: 0x6c1ff020, 0x3c0a2: 0x6c1ff220, 0x3c0a3: 0x6c1ff420, - 0x3c0a4: 0x6c1ff620, 0x3c0a5: 0x6c1ff820, 0x3c0a6: 0x6c33ce20, 0x3c0a7: 0x6c33d020, - 0x3c0a8: 0x6c33d220, 0x3c0a9: 0x6c33d420, 0x3c0aa: 0x6c33d620, 0x3c0ab: 0x6c33d820, - 0x3c0ac: 0x6c33da20, 0x3c0ad: 0x6c4e8e20, 0x3c0ae: 0x6c4e9020, 0x3c0af: 0x6c4e9220, - 0x3c0b0: 0x6c4e9420, 0x3c0b1: 0x6c4e9620, 0x3c0b2: 0x6c4e9820, 0x3c0b3: 0x6c4e9a20, - 0x3c0b4: 0x6c4e9c20, 0x3c0b5: 0x6c708220, 0x3c0b6: 0x6c708420, 0x3c0b7: 0x6c708620, - 0x3c0b8: 0x6c708820, 0x3c0b9: 0x6c708a20, 0x3c0ba: 0x6c708c20, 0x3c0bb: 0x6c708e20, - 0x3c0bc: 0x6c709020, 0x3c0bd: 0x6c709220, 0x3c0be: 0x6c709420, 0x3c0bf: 0x6c98a620, - // Block 0xf03, offset 0x3c0c0 - 0x3c0c0: 0x6c98a820, 0x3c0c1: 0x6c98aa20, 0x3c0c2: 0x6c98ac20, 0x3c0c3: 0x6c98ae20, - 0x3c0c4: 0x6c98b020, 0x3c0c5: 0x6c98b220, 0x3c0c6: 0x6c98b420, 0x3c0c7: 0x6cc47620, - 0x3c0c8: 0x6cc47820, 0x3c0c9: 0x6cc47a20, 0x3c0ca: 0x6cc47c20, 0x3c0cb: 0x6cc47e20, - 0x3c0cc: 0x6cc48020, 0x3c0cd: 0x6cc48220, 0x3c0ce: 0x6cc48420, 0x3c0cf: 0x6cc48620, - 0x3c0d0: 0x6cc48820, 0x3c0d1: 0x6cc48a20, 0x3c0d2: 0x6cc48c20, 0x3c0d3: 0x6cf35c20, - 0x3c0d4: 0x6cf35e20, 0x3c0d5: 0x6cf36020, 0x3c0d6: 0x6cf36220, 0x3c0d7: 0x6cf36420, - 0x3c0d8: 0x6cf36620, 0x3c0d9: 0x6cf36820, 0x3c0da: 0x6cf36a20, 0x3c0db: 0x6cf36c20, - 0x3c0dc: 0x6cf36e20, 0x3c0dd: 0x6cf37020, 0x3c0de: 0x6cf37220, 0x3c0df: 0x6d232020, - 0x3c0e0: 0x6d232220, 0x3c0e1: 0x6d232420, 0x3c0e2: 0x6d232620, 0x3c0e3: 0x6d232820, - 0x3c0e4: 0x6d232a20, 0x3c0e5: 0x6d232c20, 0x3c0e6: 0x6d232e20, 0x3c0e7: 0x6d233020, - 0x3c0e8: 0x6d50b220, 0x3c0e9: 0x6d50b420, 0x3c0ea: 0x6d50b620, 0x3c0eb: 0x6d50b820, - 0x3c0ec: 0x6d50ba20, 0x3c0ed: 0x6d50bc20, 0x3c0ee: 0x6d7c7c20, 0x3c0ef: 0x6d7c7e20, - 0x3c0f0: 0x6d7c8020, 0x3c0f1: 0x6d7c8220, 0x3c0f2: 0x6d7c8420, 0x3c0f3: 0x6d7c8620, - 0x3c0f4: 0x6d7c8820, 0x3c0f5: 0x6d7c8a20, 0x3c0f6: 0x6d7c8c20, 0x3c0f7: 0x6da46220, - 0x3c0f8: 0x6da46420, 0x3c0f9: 0x6da46620, 0x3c0fa: 0x6dc5f620, 0x3c0fb: 0x6dc5f820, - 0x3c0fc: 0x6dc5fa20, 0x3c0fd: 0x6dc5fc20, 0x3c0fe: 0x6dc5fe20, 0x3c0ff: 0x6de2da20, - // Block 0xf04, offset 0x3c100 - 0x3c100: 0x6de2dc20, 0x3c101: 0x6dfa5220, 0x3c102: 0x6dfa5420, 0x3c103: 0x6e0de220, - 0x3c104: 0x6e0de420, 0x3c105: 0x6e1d4e20, 0x3c106: 0x6e1d5020, 0x3c107: 0x6e28f020, - 0x3c108: 0x6e388e20, 0x3c109: 0x6c092a20, 0x3c10a: 0x6c11cc20, 0x3c10b: 0x6c4ec420, - 0x3c10c: 0x6c4ec620, 0x3c10d: 0x6c70ae20, 0x3c10e: 0x6c70b020, 0x3c10f: 0x6c98d220, - 0x3c110: 0x6c98d420, 0x3c111: 0x6cc4ac20, 0x3c112: 0x6cf3a020, 0x3c113: 0x6d236020, - 0x3c114: 0x6d7caa20, 0x3c115: 0x6d7cac20, 0x3c116: 0x6d7cae20, 0x3c117: 0x6e3d2c20, - 0x3c118: 0x6c4ef020, 0x3c119: 0x6c98e020, 0x3c11a: 0x6d50fa20, 0x3c11b: 0x6e1d5420, - 0x3c11c: 0x6c123220, 0x3c11d: 0x6c210a20, 0x3c11e: 0x6c210c20, 0x3c11f: 0x6c210e20, - 0x3c120: 0x6c211020, 0x3c121: 0x6c211220, 0x3c122: 0x6c211420, 0x3c123: 0x6c211620, - 0x3c124: 0x6c351e20, 0x3c125: 0x6c352020, 0x3c126: 0x6c352220, 0x3c127: 0x6c352420, - 0x3c128: 0x6c352620, 0x3c129: 0x6c352820, 0x3c12a: 0x6c352a20, 0x3c12b: 0x6c501620, - 0x3c12c: 0x6c501820, 0x3c12d: 0x6c501a20, 0x3c12e: 0x6c501c20, 0x3c12f: 0x6c501e20, - 0x3c130: 0x6c502020, 0x3c131: 0x6c502220, 0x3c132: 0x6c502420, 0x3c133: 0x6c502620, - 0x3c134: 0x6c720620, 0x3c135: 0x6c720820, 0x3c136: 0x6c720a20, 0x3c137: 0x6c720c20, - 0x3c138: 0x6c720e20, 0x3c139: 0x6c721020, 0x3c13a: 0x6c721220, 0x3c13b: 0x6c721420, - 0x3c13c: 0x6c721620, 0x3c13d: 0x6c721820, 0x3c13e: 0x6c721a20, 0x3c13f: 0x6c721c20, - // Block 0xf05, offset 0x3c140 - 0x3c140: 0x6c721e20, 0x3c141: 0x6c9a7c20, 0x3c142: 0x6c9a7e20, 0x3c143: 0x6c9a8020, - 0x3c144: 0x6c9a8220, 0x3c145: 0x6c9a8420, 0x3c146: 0x6c9a8620, 0x3c147: 0x6c9a8820, - 0x3c148: 0x6c9a8a20, 0x3c149: 0x6c9a8c20, 0x3c14a: 0x6c9a8e20, 0x3c14b: 0x6c9a9020, - 0x3c14c: 0x6cc65420, 0x3c14d: 0x6cc65620, 0x3c14e: 0x6cc65820, 0x3c14f: 0x6cc65a20, - 0x3c150: 0x6cc65c20, 0x3c151: 0x6cc65e20, 0x3c152: 0x6cc66020, 0x3c153: 0x6cc66220, - 0x3c154: 0x6cc66420, 0x3c155: 0x6cc66620, 0x3c156: 0x6cc66820, 0x3c157: 0x6cf50220, - 0x3c158: 0x6cf50420, 0x3c159: 0x6cf50620, 0x3c15a: 0x6cf50820, 0x3c15b: 0x6cf50a20, - 0x3c15c: 0x6cf50c20, 0x3c15d: 0x6cf50e20, 0x3c15e: 0x6cf51020, 0x3c15f: 0x6cf51220, - 0x3c160: 0x6cf51420, 0x3c161: 0x6cf51620, 0x3c162: 0x6cf51820, 0x3c163: 0x6d24d420, - 0x3c164: 0x6d24d620, 0x3c165: 0x6d24d820, 0x3c166: 0x6d24da20, 0x3c167: 0x6d24dc20, - 0x3c168: 0x6d24de20, 0x3c169: 0x6d24e020, 0x3c16a: 0x6d24e220, 0x3c16b: 0x6d525620, - 0x3c16c: 0x6d525820, 0x3c16d: 0x6d525a20, 0x3c16e: 0x6d525c20, 0x3c16f: 0x6d525e20, - 0x3c170: 0x6d526020, 0x3c171: 0x6d526220, 0x3c172: 0x6d526420, 0x3c173: 0x6d526620, - 0x3c174: 0x6d526820, 0x3c175: 0x6d7d9820, 0x3c176: 0x6d7d9a20, 0x3c177: 0x6d7d9c20, - 0x3c178: 0x6da50420, 0x3c179: 0x6da50620, 0x3c17a: 0x6da50820, 0x3c17b: 0x6dc6a820, - 0x3c17c: 0x6dc6aa20, 0x3c17d: 0x6dc6ac20, 0x3c17e: 0x6dc6ae20, 0x3c17f: 0x6dc6b020, - // Block 0xf06, offset 0x3c180 - 0x3c180: 0x6dc6b220, 0x3c181: 0x6de35820, 0x3c182: 0x6dfaae20, 0x3c183: 0x6e1d8e20, - 0x3c184: 0x6e291820, 0x3c185: 0x6c9a9e20, 0x3c186: 0x6c353e20, 0x3c187: 0x6d527020, - 0x3c188: 0x6c357420, 0x3c189: 0x6c506c20, 0x3c18a: 0x6c506e20, 0x3c18b: 0x6c728820, - 0x3c18c: 0x6c728a20, 0x3c18d: 0x6c9b1020, 0x3c18e: 0x6cc6fe20, 0x3c18f: 0x6cc70020, - 0x3c190: 0x6cf58a20, 0x3c191: 0x6d253e20, 0x3c192: 0x6d254020, 0x3c193: 0x6d52b620, - 0x3c194: 0x6d52b820, 0x3c195: 0x6d52ba20, 0x3c196: 0x6d52bc20, 0x3c197: 0x6d7dfe20, - 0x3c198: 0x6d7e0020, 0x3c199: 0x6d7e0220, 0x3c19a: 0x6da53c20, 0x3c19b: 0x6dc6d420, - 0x3c19c: 0x6dc6d620, 0x3c19d: 0x6e0e3820, 0x3c19e: 0x6e0e3a20, 0x3c19f: 0x6e324620, - 0x3c1a0: 0x6c214020, 0x3c1a1: 0x6c357e20, 0x3c1a2: 0x6c358020, 0x3c1a3: 0x6c507820, - 0x3c1a4: 0x6c729820, 0x3c1a5: 0x6cc70e20, 0x3c1a6: 0x6cc71020, 0x3c1a7: 0x6cc71220, - 0x3c1a8: 0x6d254220, 0x3c1a9: 0x6d254420, 0x3c1aa: 0x6d254620, 0x3c1ab: 0x6c508020, - 0x3c1ac: 0x6c72a820, 0x3c1ad: 0x6d255420, 0x3c1ae: 0x6d52d420, 0x3c1af: 0x6da54a20, - 0x3c1b0: 0x6e0e4220, 0x3c1b1: 0x6c359c20, 0x3c1b2: 0x6c35ac20, 0x3c1b3: 0x6c35ae20, - 0x3c1b4: 0x6c50aa20, 0x3c1b5: 0x6c72e420, 0x3c1b6: 0x6c72e620, 0x3c1b7: 0x6c72e820, - 0x3c1b8: 0x6c9b6a20, 0x3c1b9: 0x6cc76220, 0x3c1ba: 0x6cc76420, 0x3c1bb: 0x6cc76620, - 0x3c1bc: 0x6cc76820, 0x3c1bd: 0x6cf5ca20, 0x3c1be: 0x6d257420, 0x3c1bf: 0x6d52ee20, - // Block 0xf07, offset 0x3c1c0 - 0x3c1c0: 0x6d52f020, 0x3c1c1: 0x6d7e2c20, 0x3c1c2: 0x6d7e2e20, 0x3c1c3: 0x6de38020, - 0x3c1c4: 0x6de38220, 0x3c1c5: 0x6dfadc20, 0x3c1c6: 0x6c219820, 0x3c1c7: 0x6c219a20, - 0x3c1c8: 0x6c363220, 0x3c1c9: 0x6c363420, 0x3c1ca: 0x6c363620, 0x3c1cb: 0x6c363820, - 0x3c1cc: 0x6c363a20, 0x3c1cd: 0x6c363c20, 0x3c1ce: 0x6c363e20, 0x3c1cf: 0x6c514420, - 0x3c1d0: 0x6c514620, 0x3c1d1: 0x6c514820, 0x3c1d2: 0x6c514a20, 0x3c1d3: 0x6c514c20, - 0x3c1d4: 0x6c514e20, 0x3c1d5: 0x6c515020, 0x3c1d6: 0x6c515220, 0x3c1d7: 0x6c515420, - 0x3c1d8: 0x6c515620, 0x3c1d9: 0x6c737220, 0x3c1da: 0x6c737420, 0x3c1db: 0x6c737620, - 0x3c1dc: 0x6c737820, 0x3c1dd: 0x6c737a20, 0x3c1de: 0x6c737c20, 0x3c1df: 0x6c737e20, - 0x3c1e0: 0x6c738020, 0x3c1e1: 0x6c738220, 0x3c1e2: 0x6c738420, 0x3c1e3: 0x6c738620, - 0x3c1e4: 0x6c738820, 0x3c1e5: 0x6c9c0220, 0x3c1e6: 0x6c9c0420, 0x3c1e7: 0x6c9c0620, - 0x3c1e8: 0x6c9c0820, 0x3c1e9: 0x6cc83e20, 0x3c1ea: 0x6cc84020, 0x3c1eb: 0x6cc84220, - 0x3c1ec: 0x6cc84420, 0x3c1ed: 0x6cc84620, 0x3c1ee: 0x6cc84820, 0x3c1ef: 0x6cf67620, - 0x3c1f0: 0x6cf67820, 0x3c1f1: 0x6cf67a20, 0x3c1f2: 0x6cf67c20, 0x3c1f3: 0x6cf67e20, - 0x3c1f4: 0x6cf68020, 0x3c1f5: 0x6cf68220, 0x3c1f6: 0x6cf68420, 0x3c1f7: 0x6cf68620, - 0x3c1f8: 0x6d25ec20, 0x3c1f9: 0x6d25ee20, 0x3c1fa: 0x6d25f020, 0x3c1fb: 0x6d25f220, - 0x3c1fc: 0x6d25f420, 0x3c1fd: 0x6d25f620, 0x3c1fe: 0x6d536220, 0x3c1ff: 0x6d536420, - // Block 0xf08, offset 0x3c200 - 0x3c200: 0x6d536620, 0x3c201: 0x6d536820, 0x3c202: 0x6d536a20, 0x3c203: 0x6d536c20, - 0x3c204: 0x6d536e20, 0x3c205: 0x6d537020, 0x3c206: 0x6da5a420, 0x3c207: 0x6d7ec620, - 0x3c208: 0x6d7ec820, 0x3c209: 0x6d7eca20, 0x3c20a: 0x6d7ecc20, 0x3c20b: 0x6d7ece20, - 0x3c20c: 0x6d7ed020, 0x3c20d: 0x6da5a620, 0x3c20e: 0x6dc73820, 0x3c20f: 0x6dc73a20, - 0x3c210: 0x6dc73c20, 0x3c211: 0x6e0e5220, 0x3c212: 0x6e0e5420, 0x3c213: 0x6e0e5620, - 0x3c214: 0x6e325620, 0x3c215: 0x6d537e20, 0x3c216: 0x6d7ee020, 0x3c217: 0x6d7ee220, - 0x3c218: 0x6de3b220, 0x3c219: 0x6c127820, 0x3c21a: 0x6c21ae20, 0x3c21b: 0x6c365620, - 0x3c21c: 0x6c518220, 0x3c21d: 0x6c518420, 0x3c21e: 0x6c73ba20, 0x3c21f: 0x6d261220, - 0x3c220: 0x6c9c3020, 0x3c221: 0x6c9c3220, 0x3c222: 0x6c9c3420, 0x3c223: 0x6cc87e20, - 0x3c224: 0x6cf6aa20, 0x3c225: 0x6cf6ac20, 0x3c226: 0x6cf6ae20, 0x3c227: 0x6cf6b020, - 0x3c228: 0x6d261420, 0x3c229: 0x6d261620, 0x3c22a: 0x6d261820, 0x3c22b: 0x6d539820, - 0x3c22c: 0x6d539a20, 0x3c22d: 0x6d7efc20, 0x3c22e: 0x6e0e5a20, 0x3c22f: 0x6e0e5c20, - 0x3c230: 0x6e325c20, 0x3c231: 0x6c222e20, 0x3c232: 0x6c223020, 0x3c233: 0x6c223220, - 0x3c234: 0x6c223420, 0x3c235: 0x6c223620, 0x3c236: 0x6c375a20, 0x3c237: 0x6c375c20, - 0x3c238: 0x6c375e20, 0x3c239: 0x6c376020, 0x3c23a: 0x6c52ae20, 0x3c23b: 0x6c52b020, - 0x3c23c: 0x6c52b220, 0x3c23d: 0x6c52b420, 0x3c23e: 0x6c52b620, 0x3c23f: 0x6c52b820, - // Block 0xf09, offset 0x3c240 - 0x3c240: 0x6c52ba20, 0x3c241: 0x6c52bc20, 0x3c242: 0x6c52be20, 0x3c243: 0x6c752a20, - 0x3c244: 0x6c752c20, 0x3c245: 0x6c752e20, 0x3c246: 0x6c753020, 0x3c247: 0x6c753220, - 0x3c248: 0x6c753420, 0x3c249: 0x6c753620, 0x3c24a: 0x6c753820, 0x3c24b: 0x6c753a20, - 0x3c24c: 0x6c753c20, 0x3c24d: 0x6c753e20, 0x3c24e: 0x6c754020, 0x3c24f: 0x6c754220, - 0x3c250: 0x6c9d8620, 0x3c251: 0x6c9d8820, 0x3c252: 0x6c9d8a20, 0x3c253: 0x6c9d8c20, - 0x3c254: 0x6c9d8e20, 0x3c255: 0x6c9d9020, 0x3c256: 0x6c9d9220, 0x3c257: 0x6c9d9420, - 0x3c258: 0x6c9d9620, 0x3c259: 0x6c9d9820, 0x3c25a: 0x6c9d9a20, 0x3c25b: 0x6c9d9c20, - 0x3c25c: 0x6c9d9e20, 0x3c25d: 0x6c9da020, 0x3c25e: 0x6c9da220, 0x3c25f: 0x6cca6620, - 0x3c260: 0x6cca6820, 0x3c261: 0x6cca6a20, 0x3c262: 0x6cca6c20, 0x3c263: 0x6cca6e20, - 0x3c264: 0x6cca7020, 0x3c265: 0x6cca7220, 0x3c266: 0x6cca7420, 0x3c267: 0x6cca7620, - 0x3c268: 0x6cca7820, 0x3c269: 0x6cca7a20, 0x3c26a: 0x6cca7c20, 0x3c26b: 0x6cca7e20, - 0x3c26c: 0x6cca8020, 0x3c26d: 0x6cca8220, 0x3c26e: 0x6cca8420, 0x3c26f: 0x6cca8620, - 0x3c270: 0x6cf88c20, 0x3c271: 0x6cf88e20, 0x3c272: 0x6cf89020, 0x3c273: 0x6cf89220, - 0x3c274: 0x6cf89420, 0x3c275: 0x6cf89620, 0x3c276: 0x6cf89820, 0x3c277: 0x6cf89a20, - 0x3c278: 0x6cf89c20, 0x3c279: 0x6cf89e20, 0x3c27a: 0x6cf8a020, 0x3c27b: 0x6cf8a220, - 0x3c27c: 0x6cf8a420, 0x3c27d: 0x6cf8a620, 0x3c27e: 0x6cf8a820, 0x3c27f: 0x6cf8aa20, - // Block 0xf0a, offset 0x3c280 - 0x3c280: 0x6cf8ac20, 0x3c281: 0x6cf8ae20, 0x3c282: 0x6cf8b020, 0x3c283: 0x6cf8b220, - 0x3c284: 0x6cf8b420, 0x3c285: 0x6cf8b620, 0x3c286: 0x6cf8b820, 0x3c287: 0x6cf8ba20, - 0x3c288: 0x6d27d220, 0x3c289: 0x6d27d420, 0x3c28a: 0x6d27d620, 0x3c28b: 0x6d27d820, - 0x3c28c: 0x6d27da20, 0x3c28d: 0x6d27dc20, 0x3c28e: 0x6d27de20, 0x3c28f: 0x6d27e020, - 0x3c290: 0x6d27e220, 0x3c291: 0x6d27e420, 0x3c292: 0x6d27e620, 0x3c293: 0x6d27e820, - 0x3c294: 0x6d27ea20, 0x3c295: 0x6d27ec20, 0x3c296: 0x6d27ee20, 0x3c297: 0x6d27f020, - 0x3c298: 0x6d27f220, 0x3c299: 0x6d27f420, 0x3c29a: 0x6d27f620, 0x3c29b: 0x6d27f820, - 0x3c29c: 0x6d27fa20, 0x3c29d: 0x6d552c20, 0x3c29e: 0x6d552e20, 0x3c29f: 0x6d553020, - 0x3c2a0: 0x6d553220, 0x3c2a1: 0x6d553420, 0x3c2a2: 0x6d553620, 0x3c2a3: 0x6d553820, - 0x3c2a4: 0x6d553a20, 0x3c2a5: 0x6d553c20, 0x3c2a6: 0x6d553e20, 0x3c2a7: 0x6d554020, - 0x3c2a8: 0x6d554220, 0x3c2a9: 0x6d554420, 0x3c2aa: 0x6d554620, 0x3c2ab: 0x6d554820, - 0x3c2ac: 0x6d554a20, 0x3c2ad: 0x6d80ae20, 0x3c2ae: 0x6d80b020, 0x3c2af: 0x6d80b220, - 0x3c2b0: 0x6d80b420, 0x3c2b1: 0x6d80b620, 0x3c2b2: 0x6d80b820, 0x3c2b3: 0x6d80ba20, - 0x3c2b4: 0x6d80bc20, 0x3c2b5: 0x6d80be20, 0x3c2b6: 0x6d80c020, 0x3c2b7: 0x6d80c220, - 0x3c2b8: 0x6d80c420, 0x3c2b9: 0x6d80c620, 0x3c2ba: 0x6d80c820, 0x3c2bb: 0x6d80ca20, - 0x3c2bc: 0x6d80cc20, 0x3c2bd: 0x6da6d820, 0x3c2be: 0x6da6da20, 0x3c2bf: 0x6da6dc20, - // Block 0xf0b, offset 0x3c2c0 - 0x3c2c0: 0x6da6de20, 0x3c2c1: 0x6da6e020, 0x3c2c2: 0x6da6e220, 0x3c2c3: 0x6da6e420, - 0x3c2c4: 0x6da6e620, 0x3c2c5: 0x6da6e820, 0x3c2c6: 0x6da6ea20, 0x3c2c7: 0x6da6ec20, - 0x3c2c8: 0x6da6ee20, 0x3c2c9: 0x6dc83c20, 0x3c2ca: 0x6dc83e20, 0x3c2cb: 0x6dc84020, - 0x3c2cc: 0x6dc84220, 0x3c2cd: 0x6dc84420, 0x3c2ce: 0x6dc84620, 0x3c2cf: 0x6dc84820, - 0x3c2d0: 0x6de46c20, 0x3c2d1: 0x6de46e20, 0x3c2d2: 0x6de47020, 0x3c2d3: 0x6de47220, - 0x3c2d4: 0x6de47420, 0x3c2d5: 0x6de47620, 0x3c2d6: 0x6dfb8e20, 0x3c2d7: 0x6dfb9020, - 0x3c2d8: 0x6dfb9220, 0x3c2d9: 0x6dfb9420, 0x3c2da: 0x6dfb9620, 0x3c2db: 0x6e0ed020, - 0x3c2dc: 0x6e0ed220, 0x3c2dd: 0x6e0ed420, 0x3c2de: 0x6e0ed620, 0x3c2df: 0x6e1e0620, - 0x3c2e0: 0x6e1e0820, 0x3c2e1: 0x6e1e0a20, 0x3c2e2: 0x6e297220, 0x3c2e3: 0x6e297420, - 0x3c2e4: 0x6e328c20, 0x3c2e5: 0x6e328e20, 0x3c2e6: 0x6e38d220, 0x3c2e7: 0x6e405420, - 0x3c2e8: 0x6e3d4420, 0x3c2e9: 0x6c379220, 0x3c2ea: 0x6c52f420, 0x3c2eb: 0x6c52f620, - 0x3c2ec: 0x6c9dd620, 0x3c2ed: 0x6c9dd820, 0x3c2ee: 0x6ccad020, 0x3c2ef: 0x6cf90220, - 0x3c2f0: 0x6cf90420, 0x3c2f1: 0x6d283e20, 0x3c2f2: 0x6d558220, 0x3c2f3: 0x6dfba220, - 0x3c2f4: 0x6e329220, 0x3c2f5: 0x6c37c820, 0x3c2f6: 0x6c75a420, 0x3c2f7: 0x6c9de620, - 0x3c2f8: 0x6ccaf620, 0x3c2f9: 0x6cf91c20, 0x3c2fa: 0x6cf91e20, 0x3c2fb: 0x6d284e20, - 0x3c2fc: 0x6d559820, 0x3c2fd: 0x6d80fe20, 0x3c2fe: 0x6d810020, 0x3c2ff: 0x6da71c20, - // Block 0xf0c, offset 0x3c300 - 0x3c300: 0x6c534420, 0x3c301: 0x6c534620, 0x3c302: 0x6c75d820, 0x3c303: 0x6c75da20, - 0x3c304: 0x6c9e1e20, 0x3c305: 0x6ccb4820, 0x3c306: 0x6d287420, 0x3c307: 0x6da73420, - 0x3c308: 0x6c75e820, 0x3c309: 0x6c75ea20, 0x3c30a: 0x6c9b1220, 0x3c30b: 0x6c9e4620, - 0x3c30c: 0x6ccb6220, 0x3c30d: 0x6ccb6420, 0x3c30e: 0x6ccb6620, 0x3c30f: 0x6cf97a20, - 0x3c310: 0x6d55da20, 0x3c311: 0x6da74020, 0x3c312: 0x6da74220, 0x3c313: 0x6e38de20, - 0x3c314: 0x6d289220, 0x3c315: 0x6d289c20, 0x3c316: 0x6c098220, 0x3c317: 0x6c384c20, - 0x3c318: 0x6c384e20, 0x3c319: 0x6c53ac20, 0x3c31a: 0x6c53ae20, 0x3c31b: 0x6c763420, - 0x3c31c: 0x6c763620, 0x3c31d: 0x6ccbc220, 0x3c31e: 0x6ccbc420, 0x3c31f: 0x6cf9d420, - 0x3c320: 0x6d28e820, 0x3c321: 0x6d561020, 0x3c322: 0x6dc8ba20, 0x3c323: 0x6c386420, - 0x3c324: 0x6c53cc20, 0x3c325: 0x6c9ea820, 0x3c326: 0x6cf9e020, 0x3c327: 0x6d28f220, - 0x3c328: 0x6c09c820, 0x3c329: 0x6c134c20, 0x3c32a: 0x6c134e20, 0x3c32b: 0x6c135020, - 0x3c32c: 0x6c135220, 0x3c32d: 0x6c238220, 0x3c32e: 0x6c238420, 0x3c32f: 0x6c238620, - 0x3c330: 0x6c238820, 0x3c331: 0x6c398420, 0x3c332: 0x6c398620, 0x3c333: 0x6c398820, - 0x3c334: 0x6c398a20, 0x3c335: 0x6c398c20, 0x3c336: 0x6c398e20, 0x3c337: 0x6c550a20, - 0x3c338: 0x6c550c20, 0x3c339: 0x6c550e20, 0x3c33a: 0x6c551020, 0x3c33b: 0x6c551220, - 0x3c33c: 0x6c551420, 0x3c33d: 0x6c551620, 0x3c33e: 0x6c77cc20, 0x3c33f: 0x6c77ce20, - // Block 0xf0d, offset 0x3c340 - 0x3c340: 0x6c77d020, 0x3c341: 0x6c77d220, 0x3c342: 0x6c77d420, 0x3c343: 0x6c77d620, - 0x3c344: 0x6c77d820, 0x3c345: 0x6c77da20, 0x3c346: 0x6c77dc20, 0x3c347: 0x6c77de20, - 0x3c348: 0x6c77e020, 0x3c349: 0x6c77e220, 0x3c34a: 0x6c77e420, 0x3c34b: 0x6c77e620, - 0x3c34c: 0x6ca0c620, 0x3c34d: 0x6ca0c820, 0x3c34e: 0x6ca0ca20, 0x3c34f: 0x6ca0cc20, - 0x3c350: 0x6ca0ce20, 0x3c351: 0x6ca0d020, 0x3c352: 0x6ca0d220, 0x3c353: 0x6ca0d420, - 0x3c354: 0x6ca0d620, 0x3c355: 0x6ca0d820, 0x3c356: 0x6ca0da20, 0x3c357: 0x6ccdb620, - 0x3c358: 0x6ccdb820, 0x3c359: 0x6ccdba20, 0x3c35a: 0x6ccdbc20, 0x3c35b: 0x6ccdbe20, - 0x3c35c: 0x6ccdc020, 0x3c35d: 0x6ccdc220, 0x3c35e: 0x6ccdc420, 0x3c35f: 0x6ccdc620, - 0x3c360: 0x6ccdc820, 0x3c361: 0x6ccdca20, 0x3c362: 0x6ccdcc20, 0x3c363: 0x6ccdce20, - 0x3c364: 0x6ccdd020, 0x3c365: 0x6ccdd220, 0x3c366: 0x6ccdd420, 0x3c367: 0x6ccdd620, - 0x3c368: 0x6ccdd820, 0x3c369: 0x6ccdda20, 0x3c36a: 0x6cfba620, 0x3c36b: 0x6cfba820, - 0x3c36c: 0x6cfbaa20, 0x3c36d: 0x6cfbac20, 0x3c36e: 0x6cfbae20, 0x3c36f: 0x6cfbb020, - 0x3c370: 0x6cfbb220, 0x3c371: 0x6cfbb420, 0x3c372: 0x6cfbb620, 0x3c373: 0x6cfbb820, - 0x3c374: 0x6cfbba20, 0x3c375: 0x6cfbbc20, 0x3c376: 0x6cfbbe20, 0x3c377: 0x6cfbc020, - 0x3c378: 0x6cfbc220, 0x3c379: 0x6cfbc420, 0x3c37a: 0x6cfbc620, 0x3c37b: 0x6cfbc820, - 0x3c37c: 0x6cfbca20, 0x3c37d: 0x6cfbcc20, 0x3c37e: 0x6cfbce20, 0x3c37f: 0x6d2ab220, - // Block 0xf0e, offset 0x3c380 - 0x3c380: 0x6d2ab420, 0x3c381: 0x6d2ab620, 0x3c382: 0x6d2ab820, 0x3c383: 0x6d2aba20, - 0x3c384: 0x6d2abc20, 0x3c385: 0x6d2abe20, 0x3c386: 0x6d2ac020, 0x3c387: 0x6d2ac220, - 0x3c388: 0x6d2ac420, 0x3c389: 0x6d2ac620, 0x3c38a: 0x6d2ac820, 0x3c38b: 0x6d57e420, - 0x3c38c: 0x6d57e620, 0x3c38d: 0x6d57e820, 0x3c38e: 0x6d57ea20, 0x3c38f: 0x6d57ec20, - 0x3c390: 0x6d57ee20, 0x3c391: 0x6d57f020, 0x3c392: 0x6d57f220, 0x3c393: 0x6d57f420, - 0x3c394: 0x6d57f620, 0x3c395: 0x6d57f820, 0x3c396: 0x6d57fa20, 0x3c397: 0x6d57fc20, - 0x3c398: 0x6d57fe20, 0x3c399: 0x6d580020, 0x3c39a: 0x6d580220, 0x3c39b: 0x6d580420, - 0x3c39c: 0x6d580620, 0x3c39d: 0x6d82e420, 0x3c39e: 0x6d82e620, 0x3c39f: 0x6d82e820, - 0x3c3a0: 0x6d82ea20, 0x3c3a1: 0x6d82ec20, 0x3c3a2: 0x6d82ee20, 0x3c3a3: 0x6d82f020, - 0x3c3a4: 0x6d82f220, 0x3c3a5: 0x6d82f420, 0x3c3a6: 0x6d82f620, 0x3c3a7: 0x6d82f820, - 0x3c3a8: 0x6da85a20, 0x3c3a9: 0x6da85c20, 0x3c3aa: 0x6da85e20, 0x3c3ab: 0x6da86020, - 0x3c3ac: 0x6da86220, 0x3c3ad: 0x6da86420, 0x3c3ae: 0x6da86620, 0x3c3af: 0x6da86820, - 0x3c3b0: 0x6da86a20, 0x3c3b1: 0x6da86c20, 0x3c3b2: 0x6da86e20, 0x3c3b3: 0x6dc9aa20, - 0x3c3b4: 0x6dc9ac20, 0x3c3b5: 0x6dc9ae20, 0x3c3b6: 0x6dc9b020, 0x3c3b7: 0x6dc9b220, - 0x3c3b8: 0x6dc9b420, 0x3c3b9: 0x6dc9b620, 0x3c3ba: 0x6de56220, 0x3c3bb: 0x6de56420, - 0x3c3bc: 0x6de56620, 0x3c3bd: 0x6de56820, 0x3c3be: 0x6de56a20, 0x3c3bf: 0x6de56c20, - // Block 0xf0f, offset 0x3c3c0 - 0x3c3c0: 0x6dfc4220, 0x3c3c1: 0x6dfc4420, 0x3c3c2: 0x6dfc4620, 0x3c3c3: 0x6e0f7220, - 0x3c3c4: 0x6e0f7420, 0x3c3c5: 0x6e0f7620, 0x3c3c6: 0x6e0f7820, 0x3c3c7: 0x6e0f7a20, - 0x3c3c8: 0x6e1e6a20, 0x3c3c9: 0x6e1e6c20, 0x3c3ca: 0x6e29d220, 0x3c3cb: 0x6e29d420, - 0x3c3cc: 0x6e32be20, 0x3c3cd: 0x6c09ce20, 0x3c3ce: 0x6c23ca20, 0x3c3cf: 0x6c23cc20, - 0x3c3d0: 0x6c23ce20, 0x3c3d1: 0x6c3a1620, 0x3c3d2: 0x6c3a1820, 0x3c3d3: 0x6c3a1a20, - 0x3c3d4: 0x6c3a1c20, 0x3c3d5: 0x6c3a1e20, 0x3c3d6: 0x6c3a2020, 0x3c3d7: 0x6c3a2220, - 0x3c3d8: 0x6c55d820, 0x3c3d9: 0x6c55da20, 0x3c3da: 0x6c55dc20, 0x3c3db: 0x6c55de20, - 0x3c3dc: 0x6c55e020, 0x3c3dd: 0x6c55e220, 0x3c3de: 0x6c55e420, 0x3c3df: 0x6c55e620, - 0x3c3e0: 0x6c55e820, 0x3c3e1: 0x6c55ea20, 0x3c3e2: 0x6c55ec20, 0x3c3e3: 0x6c78b820, - 0x3c3e4: 0x6c78ba20, 0x3c3e5: 0x6c78bc20, 0x3c3e6: 0x6c78be20, 0x3c3e7: 0x6c78c020, - 0x3c3e8: 0x6c78c220, 0x3c3e9: 0x6c78c420, 0x3c3ea: 0x6c78c620, 0x3c3eb: 0x6ca1ba20, - 0x3c3ec: 0x6ca1bc20, 0x3c3ed: 0x6ca1be20, 0x3c3ee: 0x6ca1c020, 0x3c3ef: 0x6ca1c220, - 0x3c3f0: 0x6ca1c420, 0x3c3f1: 0x6ca1c620, 0x3c3f2: 0x6ca1c820, 0x3c3f3: 0x6ccee820, - 0x3c3f4: 0x6cceea20, 0x3c3f5: 0x6cceec20, 0x3c3f6: 0x6cceee20, 0x3c3f7: 0x6ccef020, - 0x3c3f8: 0x6ccef220, 0x3c3f9: 0x6ccef420, 0x3c3fa: 0x6ccef620, 0x3c3fb: 0x6ccef820, - 0x3c3fc: 0x6ccefa20, 0x3c3fd: 0x6ccefc20, 0x3c3fe: 0x6ccefe20, 0x3c3ff: 0x6ccf0020, - // Block 0xf10, offset 0x3c400 - 0x3c400: 0x6ccf0220, 0x3c401: 0x6ccf0420, 0x3c402: 0x6ccf0620, 0x3c403: 0x6ccf0820, - 0x3c404: 0x6cfd1220, 0x3c405: 0x6cfd1420, 0x3c406: 0x6cfd1620, 0x3c407: 0x6cfd1820, - 0x3c408: 0x6cfd1a20, 0x3c409: 0x6cfd1c20, 0x3c40a: 0x6cfd1e20, 0x3c40b: 0x6cfd2020, - 0x3c40c: 0x6cfd2220, 0x3c40d: 0x6cfd2420, 0x3c40e: 0x6cfd2620, 0x3c40f: 0x6cfd2820, - 0x3c410: 0x6cfd2a20, 0x3c411: 0x6cfd2c20, 0x3c412: 0x6d2bba20, 0x3c413: 0x6d2bbc20, - 0x3c414: 0x6d2bbe20, 0x3c415: 0x6d2bc020, 0x3c416: 0x6d2bc220, 0x3c417: 0x6d2bc420, - 0x3c418: 0x6d2bc620, 0x3c419: 0x6d2bc820, 0x3c41a: 0x6d2bca20, 0x3c41b: 0x6d2bcc20, - 0x3c41c: 0x6d2bce20, 0x3c41d: 0x6d2bd020, 0x3c41e: 0x6d2bd220, 0x3c41f: 0x6d2bd420, - 0x3c420: 0x6d2bd620, 0x3c421: 0x6d58f020, 0x3c422: 0x6d58f220, 0x3c423: 0x6d58f420, - 0x3c424: 0x6d58f620, 0x3c425: 0x6d58f820, 0x3c426: 0x6d58fa20, 0x3c427: 0x6d58fc20, - 0x3c428: 0x6d58fe20, 0x3c429: 0x6d590020, 0x3c42a: 0x6d841620, 0x3c42b: 0x6d841820, - 0x3c42c: 0x6d841a20, 0x3c42d: 0x6d841c20, 0x3c42e: 0x6d841e20, 0x3c42f: 0x6d842020, - 0x3c430: 0x6d842220, 0x3c431: 0x6d842420, 0x3c432: 0x6d842620, 0x3c433: 0x6d842820, - 0x3c434: 0x6da90c20, 0x3c435: 0x6da90e20, 0x3c436: 0x6da91020, 0x3c437: 0x6da91220, - 0x3c438: 0x6da91420, 0x3c439: 0x6da91620, 0x3c43a: 0x6da91820, 0x3c43b: 0x6da91a20, - 0x3c43c: 0x6dca3020, 0x3c43d: 0x6dca3220, 0x3c43e: 0x6dca3420, 0x3c43f: 0x6dca3620, - // Block 0xf11, offset 0x3c440 - 0x3c440: 0x6dca3820, 0x3c441: 0x6de5d020, 0x3c442: 0x6de5d220, 0x3c443: 0x6dfcc420, - 0x3c444: 0x6dfcc620, 0x3c445: 0x6dfcc820, 0x3c446: 0x6e1e9420, 0x3c447: 0x6e1e9620, - 0x3c448: 0x6e29fc20, 0x3c449: 0x6e32cc20, 0x3c44a: 0x6e390620, 0x3c44b: 0x6e390820, - 0x3c44c: 0x6e407420, 0x3c44d: 0x6c23d820, 0x3c44e: 0x6c561220, 0x3c44f: 0x6ca1d820, - 0x3c450: 0x6ccf1a20, 0x3c451: 0x6ccf1c20, 0x3c452: 0x6ccf1e20, 0x3c453: 0x6ccf2020, - 0x3c454: 0x6cfd3a20, 0x3c455: 0x6cfd3c20, 0x3c456: 0x6d591420, 0x3c457: 0x6d591620, - 0x3c458: 0x6da92c20, 0x3c459: 0x6da92e20, 0x3c45a: 0x6e470020, 0x3c45b: 0x6c78dc20, - 0x3c45c: 0x6ca1de20, 0x3c45d: 0x6c3a4420, 0x3c45e: 0x6ca1f620, 0x3c45f: 0x6ccf3a20, - 0x3c460: 0x6d592620, 0x3c461: 0x6dca4220, 0x3c462: 0x6c790020, 0x3c463: 0x6ca20620, - 0x3c464: 0x6ca20820, 0x3c465: 0x6ccf6420, 0x3c466: 0x6d845020, 0x3c467: 0x6c3a6020, - 0x3c468: 0x6ccf7020, 0x3c469: 0x6c23fe20, 0x3c46a: 0x6c569020, 0x3c46b: 0x6c569220, - 0x3c46c: 0x6c792e20, 0x3c46d: 0x6c793020, 0x3c46e: 0x6c793220, 0x3c46f: 0x6ccfca20, - 0x3c470: 0x6cfdbc20, 0x3c471: 0x6d2c6220, 0x3c472: 0x6d2c6420, 0x3c473: 0x6d2c6620, - 0x3c474: 0x6d598420, 0x3c475: 0x6d847c20, 0x3c476: 0x6e0fc620, 0x3c477: 0x6c246a20, - 0x3c478: 0x6c3b3420, 0x3c479: 0x6ccfcc20, 0x3c47a: 0x6c572220, 0x3c47b: 0x6c572420, - 0x3c47c: 0x6c79b620, 0x3c47d: 0x6c79b820, 0x3c47e: 0x6ca2cc20, 0x3c47f: 0x6ca2ce20, - // Block 0xf12, offset 0x3c480 - 0x3c480: 0x6ca2d020, 0x3c481: 0x6ca2d220, 0x3c482: 0x6cd06c20, 0x3c483: 0x6cd06e20, - 0x3c484: 0x6cd07020, 0x3c485: 0x6cd07220, 0x3c486: 0x6cfe4620, 0x3c487: 0x6cfe4820, - 0x3c488: 0x6d2cde20, 0x3c489: 0x6d5a0420, 0x3c48a: 0x6da99420, 0x3c48b: 0x6dca8220, - 0x3c48c: 0x6de61a20, 0x3c48d: 0x6c13cc20, 0x3c48e: 0x6c3b9c20, 0x3c48f: 0x6c3b9e20, - 0x3c490: 0x6c3ba020, 0x3c491: 0x6c3ba220, 0x3c492: 0x6c3ba420, 0x3c493: 0x6c3ba620, - 0x3c494: 0x6c3ba820, 0x3c495: 0x6c57c220, 0x3c496: 0x6c57c420, 0x3c497: 0x6c7a5e20, - 0x3c498: 0x6c7a6020, 0x3c499: 0x6c7a6220, 0x3c49a: 0x6c7a6420, 0x3c49b: 0x6c7a6620, - 0x3c49c: 0x6c7a6820, 0x3c49d: 0x6c7a6a20, 0x3c49e: 0x6c7a6c20, 0x3c49f: 0x6c7a6e20, - 0x3c4a0: 0x6ca37020, 0x3c4a1: 0x6ca37220, 0x3c4a2: 0x6ca37420, 0x3c4a3: 0x6ca37620, - 0x3c4a4: 0x6ca37820, 0x3c4a5: 0x6ca37a20, 0x3c4a6: 0x6cd14420, 0x3c4a7: 0x6cd14620, - 0x3c4a8: 0x6cd14820, 0x3c4a9: 0x6cd14a20, 0x3c4aa: 0x6cd14c20, 0x3c4ab: 0x6cd14e20, - 0x3c4ac: 0x6cd15020, 0x3c4ad: 0x6cd15220, 0x3c4ae: 0x6cd15420, 0x3c4af: 0x6cd15620, - 0x3c4b0: 0x6cd15820, 0x3c4b1: 0x6cd15a20, 0x3c4b2: 0x6cd15c20, 0x3c4b3: 0x6cff2020, - 0x3c4b4: 0x6cff2220, 0x3c4b5: 0x6cff2420, 0x3c4b6: 0x6cff2620, 0x3c4b7: 0x6cff2820, - 0x3c4b8: 0x6cff2a20, 0x3c4b9: 0x6cff2c20, 0x3c4ba: 0x6cff2e20, 0x3c4bb: 0x6cff3020, - 0x3c4bc: 0x6cff3220, 0x3c4bd: 0x6cff3420, 0x3c4be: 0x6cff3620, 0x3c4bf: 0x6cff3820, - // Block 0xf13, offset 0x3c4c0 - 0x3c4c0: 0x6cff3a20, 0x3c4c1: 0x6cff3c20, 0x3c4c2: 0x6cff3e20, 0x3c4c3: 0x6d2d6a20, - 0x3c4c4: 0x6d2d6c20, 0x3c4c5: 0x6d2d6e20, 0x3c4c6: 0x6d2d7020, 0x3c4c7: 0x6d2d7220, - 0x3c4c8: 0x6d2d7420, 0x3c4c9: 0x6d2d7620, 0x3c4ca: 0x6d2d7820, 0x3c4cb: 0x6d2d7a20, - 0x3c4cc: 0x6d2d7c20, 0x3c4cd: 0x6d2d7e20, 0x3c4ce: 0x6d2d8020, 0x3c4cf: 0x6d2d8220, - 0x3c4d0: 0x6d5aa220, 0x3c4d1: 0x6d5aa420, 0x3c4d2: 0x6d5aa620, 0x3c4d3: 0x6d5aa820, - 0x3c4d4: 0x6d5aaa20, 0x3c4d5: 0x6d5aac20, 0x3c4d6: 0x6d5aae20, 0x3c4d7: 0x6d855420, - 0x3c4d8: 0x6d855620, 0x3c4d9: 0x6d855820, 0x3c4da: 0x6d855a20, 0x3c4db: 0x6d855c20, - 0x3c4dc: 0x6d855e20, 0x3c4dd: 0x6d856020, 0x3c4de: 0x6d856220, 0x3c4df: 0x6d856420, - 0x3c4e0: 0x6d856620, 0x3c4e1: 0x6daa0420, 0x3c4e2: 0x6daa0620, 0x3c4e3: 0x6daa0820, - 0x3c4e4: 0x6daa0a20, 0x3c4e5: 0x6daa0c20, 0x3c4e6: 0x6daa0e20, 0x3c4e7: 0x6dcade20, - 0x3c4e8: 0x6dcae020, 0x3c4e9: 0x6de66220, 0x3c4ea: 0x6de66420, 0x3c4eb: 0x6de66620, - 0x3c4ec: 0x6dfd2420, 0x3c4ed: 0x6dfd2620, 0x3c4ee: 0x6dfd2820, 0x3c4ef: 0x6dfd2a20, - 0x3c4f0: 0x6e0ff220, 0x3c4f1: 0x6e2a2c20, 0x3c4f2: 0x6e32e220, 0x3c4f3: 0x6c3bb020, - 0x3c4f4: 0x6c57d420, 0x3c4f5: 0x6cff5020, 0x3c4f6: 0x6c3bc220, 0x3c4f7: 0x6c57fa20, - 0x3c4f8: 0x6c57fc20, 0x3c4f9: 0x6c7aac20, 0x3c4fa: 0x6cff8420, 0x3c4fb: 0x6cff8620, - 0x3c4fc: 0x6d2dd020, 0x3c4fd: 0x6d5aec20, 0x3c4fe: 0x6d5aee20, 0x3c4ff: 0x6e1ed420, - // Block 0xf14, offset 0x3c500 - 0x3c500: 0x6cd1a020, 0x3c501: 0x6c24a820, 0x3c502: 0x6ca3ce20, 0x3c503: 0x6cff9c20, - 0x3c504: 0x6cff9e20, 0x3c505: 0x6cffa020, 0x3c506: 0x6c13d420, 0x3c507: 0x6c24d220, - 0x3c508: 0x6c3c1220, 0x3c509: 0x6c588620, 0x3c50a: 0x6c588820, 0x3c50b: 0x6c588a20, - 0x3c50c: 0x6c588c20, 0x3c50d: 0x6c7b0620, 0x3c50e: 0x6c7b0820, 0x3c50f: 0x6c7b0a20, - 0x3c510: 0x6c7b0c20, 0x3c511: 0x6ca41420, 0x3c512: 0x6ca41620, 0x3c513: 0x6cd1fc20, - 0x3c514: 0x6cd1fe20, 0x3c515: 0x6cd20020, 0x3c516: 0x6cd20220, 0x3c517: 0x6cd20420, - 0x3c518: 0x6cffea20, 0x3c519: 0x6cffec20, 0x3c51a: 0x6cffee20, 0x3c51b: 0x6d2e0020, - 0x3c51c: 0x6d2e0220, 0x3c51d: 0x6d5b2a20, 0x3c51e: 0x6d5b2c20, 0x3c51f: 0x6d85b820, - 0x3c520: 0x6d85ba20, 0x3c521: 0x6d85bc20, 0x3c522: 0x6daa6c20, 0x3c523: 0x6dcb1c20, - 0x3c524: 0x6dfd4620, 0x3c525: 0x6e101a20, 0x3c526: 0x6e101c20, 0x3c527: 0x6daa6e20, - 0x3c528: 0x6c58fa20, 0x3c529: 0x6c58fc20, 0x3c52a: 0x6c58fe20, 0x3c52b: 0x6c590020, - 0x3c52c: 0x6c7b9c20, 0x3c52d: 0x6c7b9e20, 0x3c52e: 0x6c7ba020, 0x3c52f: 0x6ca48420, - 0x3c530: 0x6cd2b420, 0x3c531: 0x6cd2b620, 0x3c532: 0x6d00ae20, 0x3c533: 0x6d2ea020, - 0x3c534: 0x6d2ea220, 0x3c535: 0x6d2ea420, 0x3c536: 0x6d5bd220, 0x3c537: 0x6d5bd420, - 0x3c538: 0x6daafc20, 0x3c539: 0x6daafe20, 0x3c53a: 0x6de6da20, 0x3c53b: 0x6c593620, - 0x3c53c: 0x6c593820, 0x3c53d: 0x6c7bd020, 0x3c53e: 0x6cd2ea20, 0x3c53f: 0x6cd2ec20, - // Block 0xf15, offset 0x3c540 - 0x3c540: 0x6d00e020, 0x3c541: 0x6d00e220, 0x3c542: 0x6d2ec420, 0x3c543: 0x6d2ec620, - 0x3c544: 0x6d5bf620, 0x3c545: 0x6e104e20, 0x3c546: 0x6c3c6420, 0x3c547: 0x6c594c20, - 0x3c548: 0x6d2eee20, 0x3c549: 0x6d2ef020, 0x3c54a: 0x6c596e20, 0x3c54b: 0x6c597020, - 0x3c54c: 0x6c7c2a20, 0x3c54d: 0x6c7c2c20, 0x3c54e: 0x6ca4ec20, 0x3c54f: 0x6cd32820, - 0x3c550: 0x6cd32a20, 0x3c551: 0x6d012a20, 0x3c552: 0x6d012c20, 0x3c553: 0x6d2f0420, - 0x3c554: 0x6d2f0620, 0x3c555: 0x6d5c2620, 0x3c556: 0x6d86ac20, 0x3c557: 0x6dab4a20, - 0x3c558: 0x6dab4c20, 0x3c559: 0x6dcbbc20, 0x3c55a: 0x6de70a20, 0x3c55b: 0x6e105a20, - 0x3c55c: 0x6e1f1420, 0x3c55d: 0x6e331220, 0x3c55e: 0x6e444020, 0x3c55f: 0x6c3cae20, - 0x3c560: 0x6c3cb020, 0x3c561: 0x6c5a1420, 0x3c562: 0x6c5a1620, 0x3c563: 0x6c5a1820, - 0x3c564: 0x6c7ccc20, 0x3c565: 0x6c7cce20, 0x3c566: 0x6c7cd020, 0x3c567: 0x6c7cd220, - 0x3c568: 0x6ca58a20, 0x3c569: 0x6ca58c20, 0x3c56a: 0x6ca58e20, 0x3c56b: 0x6cd3f020, - 0x3c56c: 0x6cd3f220, 0x3c56d: 0x6d01ee20, 0x3c56e: 0x6d01f020, 0x3c56f: 0x6d01f220, - 0x3c570: 0x6d01f420, 0x3c571: 0x6d2fc620, 0x3c572: 0x6d2fc820, 0x3c573: 0x6d2fca20, - 0x3c574: 0x6d2fcc20, 0x3c575: 0x6d5cca20, 0x3c576: 0x6d5ccc20, 0x3c577: 0x6d5cce20, - 0x3c578: 0x6d5cd020, 0x3c579: 0x6d874c20, 0x3c57a: 0x6d874e20, 0x3c57b: 0x6d875020, - 0x3c57c: 0x6dabe020, 0x3c57d: 0x6dabe220, 0x3c57e: 0x6dabe420, 0x3c57f: 0x6dabe620, - // Block 0xf16, offset 0x3c580 - 0x3c580: 0x6dabe820, 0x3c581: 0x6de75020, 0x3c582: 0x6dfdde20, 0x3c583: 0x6e108420, - 0x3c584: 0x6e108620, 0x3c585: 0x6e444420, 0x3c586: 0x6c5a2220, 0x3c587: 0x6cd40820, - 0x3c588: 0x6c5a3820, 0x3c589: 0x6c5a3a20, 0x3c58a: 0x6ca5cc20, 0x3c58b: 0x6d022e20, - 0x3c58c: 0x6d2ffa20, 0x3c58d: 0x6d5cf420, 0x3c58e: 0x6d5cf620, 0x3c58f: 0x6dfdea20, - 0x3c590: 0x6e108a20, 0x3c591: 0x6c5ab820, 0x3c592: 0x6c5aba20, 0x3c593: 0x6c5abc20, - 0x3c594: 0x6c7db420, 0x3c595: 0x6c7db620, 0x3c596: 0x6c7db820, 0x3c597: 0x6c7dba20, - 0x3c598: 0x6c7dbc20, 0x3c599: 0x6ca68020, 0x3c59a: 0x6ca68220, 0x3c59b: 0x6ca68420, - 0x3c59c: 0x6ca68620, 0x3c59d: 0x6ca68820, 0x3c59e: 0x6cd4ac20, 0x3c59f: 0x6cd4ae20, - 0x3c5a0: 0x6cd4b020, 0x3c5a1: 0x6cd4b220, 0x3c5a2: 0x6cd4b420, 0x3c5a3: 0x6cd4b620, - 0x3c5a4: 0x6d02fc20, 0x3c5a5: 0x6d02fe20, 0x3c5a6: 0x6d030020, 0x3c5a7: 0x6d030220, - 0x3c5a8: 0x6d030420, 0x3c5a9: 0x6d030620, 0x3c5aa: 0x6d30b020, 0x3c5ab: 0x6d30b220, - 0x3c5ac: 0x6d5d8220, 0x3c5ad: 0x6d5d8420, 0x3c5ae: 0x6d5d8620, 0x3c5af: 0x6d87e820, - 0x3c5b0: 0x6d87ea20, 0x3c5b1: 0x6d87ec20, 0x3c5b2: 0x6d87ee20, 0x3c5b3: 0x6d87f020, - 0x3c5b4: 0x6d87f220, 0x3c5b5: 0x6dac9820, 0x3c5b6: 0x6dac9a20, 0x3c5b7: 0x6dac9c20, - 0x3c5b8: 0x6dcc9a20, 0x3c5b9: 0x6dcc9c20, 0x3c5ba: 0x6dcc9e20, 0x3c5bb: 0x6de7a420, - 0x3c5bc: 0x6de7a620, 0x3c5bd: 0x6de7a820, 0x3c5be: 0x6e10ba20, 0x3c5bf: 0x6e2a9e20, - // Block 0xf17, offset 0x3c5c0 - 0x3c5c0: 0x6c256020, 0x3c5c1: 0x6c256220, 0x3c5c2: 0x6c3d2820, 0x3c5c3: 0x6c3d2a20, - 0x3c5c4: 0x6c5b2420, 0x3c5c5: 0x6c5b2620, 0x3c5c6: 0x6c5b2820, 0x3c5c7: 0x6c7e2420, - 0x3c5c8: 0x6c7e2620, 0x3c5c9: 0x6c7e2820, 0x3c5ca: 0x6c7e2a20, 0x3c5cb: 0x6ca6e820, - 0x3c5cc: 0x6ca6ea20, 0x3c5cd: 0x6ca6ec20, 0x3c5ce: 0x6ca6ee20, 0x3c5cf: 0x6ca6f020, - 0x3c5d0: 0x6cd51220, 0x3c5d1: 0x6cd51420, 0x3c5d2: 0x6cd51620, 0x3c5d3: 0x6cd51820, - 0x3c5d4: 0x6cd51a20, 0x3c5d5: 0x6cd51c20, 0x3c5d6: 0x6cd51e20, 0x3c5d7: 0x6cd52020, - 0x3c5d8: 0x6cd52220, 0x3c5d9: 0x6cd52420, 0x3c5da: 0x6d037220, 0x3c5db: 0x6d037420, - 0x3c5dc: 0x6d310c20, 0x3c5dd: 0x6d310e20, 0x3c5de: 0x6d311020, 0x3c5df: 0x6d311220, - 0x3c5e0: 0x6d5dcc20, 0x3c5e1: 0x6d5dce20, 0x3c5e2: 0x6dacc820, 0x3c5e3: 0x6dccbc20, - 0x3c5e4: 0x6e333820, 0x3c5e5: 0x6dccbe20, 0x3c5e6: 0x6c140a20, 0x3c5e7: 0x6c3d6620, - 0x3c5e8: 0x6c5b8e20, 0x3c5e9: 0x6c5b9020, 0x3c5ea: 0x6c7e9e20, 0x3c5eb: 0x6c7ea020, - 0x3c5ec: 0x6c7ea220, 0x3c5ed: 0x6c7ea420, 0x3c5ee: 0x6ca76e20, 0x3c5ef: 0x6ca77020, - 0x3c5f0: 0x6ca77220, 0x3c5f1: 0x6ca77420, 0x3c5f2: 0x6cd59420, 0x3c5f3: 0x6cd59620, - 0x3c5f4: 0x6cd59820, 0x3c5f5: 0x6cd59a20, 0x3c5f6: 0x6cd59c20, 0x3c5f7: 0x6cd59e20, - 0x3c5f8: 0x6cd5a020, 0x3c5f9: 0x6d042220, 0x3c5fa: 0x6d042420, 0x3c5fb: 0x6d042620, - 0x3c5fc: 0x6d31b820, 0x3c5fd: 0x6d31ba20, 0x3c5fe: 0x6d31bc20, 0x3c5ff: 0x6d31be20, - // Block 0xf18, offset 0x3c600 - 0x3c600: 0x6d31c020, 0x3c601: 0x6d5e6220, 0x3c602: 0x6d5e6420, 0x3c603: 0x6d5e6620, - 0x3c604: 0x6d5e6820, 0x3c605: 0x6d88b820, 0x3c606: 0x6dad4020, 0x3c607: 0x6dcd1820, - 0x3c608: 0x6dcd1a20, 0x3c609: 0x6dfe8220, 0x3c60a: 0x6c5bd020, 0x3c60b: 0x6c7ef420, - 0x3c60c: 0x6ca7c020, 0x3c60d: 0x6ca7c220, 0x3c60e: 0x6cd60420, 0x3c60f: 0x6cd60620, - 0x3c610: 0x6cd60820, 0x3c611: 0x6d048020, 0x3c612: 0x6d048220, 0x3c613: 0x6d048420, - 0x3c614: 0x6d320420, 0x3c615: 0x6d320620, 0x3c616: 0x6d5eb420, 0x3c617: 0x6d891820, - 0x3c618: 0x6d891a20, 0x3c619: 0x6d891c20, 0x3c61a: 0x6d891e20, 0x3c61b: 0x6dad8620, - 0x3c61c: 0x6dcd3620, 0x3c61d: 0x6e2ac020, 0x3c61e: 0x6c3d9820, 0x3c61f: 0x6c5bf420, - 0x3c620: 0x6c7f2e20, 0x3c621: 0x6c7f3020, 0x3c622: 0x6ca7e420, 0x3c623: 0x6cd63220, - 0x3c624: 0x6cd63420, 0x3c625: 0x6d04b220, 0x3c626: 0x6d04b420, 0x3c627: 0x6d322a20, - 0x3c628: 0x6d322c20, 0x3c629: 0x6d5ec620, 0x3c62a: 0x6d5ec820, 0x3c62b: 0x6d5eca20, - 0x3c62c: 0x6d892c20, 0x3c62d: 0x6dada420, 0x3c62e: 0x6de81020, 0x3c62f: 0x6e1f8420, - 0x3c630: 0x6c3da620, 0x3c631: 0x6c5c2c20, 0x3c632: 0x6c7f9c20, 0x3c633: 0x6c7f9e20, - 0x3c634: 0x6c7fa020, 0x3c635: 0x6c7fa220, 0x3c636: 0x6c7fa420, 0x3c637: 0x6c7fa620, - 0x3c638: 0x6ca88a20, 0x3c639: 0x6ca88c20, 0x3c63a: 0x6ca88e20, 0x3c63b: 0x6ca89020, - 0x3c63c: 0x6cd6da20, 0x3c63d: 0x6cd6dc20, 0x3c63e: 0x6d058c20, 0x3c63f: 0x6d058e20, - // Block 0xf19, offset 0x3c640 - 0x3c640: 0x6d059020, 0x3c641: 0x6d059220, 0x3c642: 0x6d059420, 0x3c643: 0x6d059620, - 0x3c644: 0x6d332a20, 0x3c645: 0x6d332c20, 0x3c646: 0x6d332e20, 0x3c647: 0x6d333020, - 0x3c648: 0x6d333220, 0x3c649: 0x6d333420, 0x3c64a: 0x6d5fdc20, 0x3c64b: 0x6d5fde20, - 0x3c64c: 0x6d5fe020, 0x3c64d: 0x6d5fe220, 0x3c64e: 0x6d5fe420, 0x3c64f: 0x6d5fe620, - 0x3c650: 0x6d8a4020, 0x3c651: 0x6d8a4220, 0x3c652: 0x6d8a4420, 0x3c653: 0x6d8a4620, - 0x3c654: 0x6d8a4820, 0x3c655: 0x6d8a4a20, 0x3c656: 0x6d8a4c20, 0x3c657: 0x6d8a4e20, - 0x3c658: 0x6daeb420, 0x3c659: 0x6daeb620, 0x3c65a: 0x6daeb820, 0x3c65b: 0x6daeba20, - 0x3c65c: 0x6daebc20, 0x3c65d: 0x6daebe20, 0x3c65e: 0x6daec020, 0x3c65f: 0x6daec220, - 0x3c660: 0x6dce5a20, 0x3c661: 0x6dce5c20, 0x3c662: 0x6dce5e20, 0x3c663: 0x6dce6020, - 0x3c664: 0x6dce6220, 0x3c665: 0x6de8be20, 0x3c666: 0x6de8c020, 0x3c667: 0x6dff1a20, - 0x3c668: 0x6e118220, 0x3c669: 0x6e118420, 0x3c66a: 0x6e118620, 0x3c66b: 0x6e118820, - 0x3c66c: 0x6e1fe020, 0x3c66d: 0x6e2b0220, 0x3c66e: 0x6e337e20, 0x3c66f: 0x6e398220, - 0x3c670: 0x6e42de20, 0x3c671: 0x6c3db620, 0x3c672: 0x6c3db820, 0x3c673: 0x6c5c5a20, - 0x3c674: 0x6c5c5c20, 0x3c675: 0x6c7fe820, 0x3c676: 0x6c7fea20, 0x3c677: 0x6c7fec20, - 0x3c678: 0x6ca8e820, 0x3c679: 0x6ca8ea20, 0x3c67a: 0x6ca8ec20, 0x3c67b: 0x6ca8ee20, - 0x3c67c: 0x6ca8f020, 0x3c67d: 0x6cd73a20, 0x3c67e: 0x6cd73c20, 0x3c67f: 0x6cd73e20, - // Block 0xf1a, offset 0x3c680 - 0x3c680: 0x6cd74020, 0x3c681: 0x6d060220, 0x3c682: 0x6d33ac20, 0x3c683: 0x6d33ae20, - 0x3c684: 0x6d33b020, 0x3c685: 0x6d33b220, 0x3c686: 0x6d605e20, 0x3c687: 0x6d606020, - 0x3c688: 0x6d606220, 0x3c689: 0x6d8aa420, 0x3c68a: 0x6d8aa620, 0x3c68b: 0x6d8aa820, - 0x3c68c: 0x6d8aaa20, 0x3c68d: 0x6daf1a20, 0x3c68e: 0x6daf1c20, 0x3c68f: 0x6dceba20, - 0x3c690: 0x6dcebc20, 0x3c691: 0x6dcebe20, 0x3c692: 0x6de90420, 0x3c693: 0x6de90620, - 0x3c694: 0x6de90820, 0x3c695: 0x6de90a20, 0x3c696: 0x6dff3620, 0x3c697: 0x6e1ffa20, - 0x3c698: 0x6e1ffc20, 0x3c699: 0x6e1ffe20, 0x3c69a: 0x6c3dd220, 0x3c69b: 0x6c3dd420, - 0x3c69c: 0x6c5c9420, 0x3c69d: 0x6c5c9620, 0x3c69e: 0x6c809a20, 0x3c69f: 0x6ca99820, - 0x3c6a0: 0x6ca99a20, 0x3c6a1: 0x6ca99c20, 0x3c6a2: 0x6cd80620, 0x3c6a3: 0x6cd80820, - 0x3c6a4: 0x6cd80a20, 0x3c6a5: 0x6d06c220, 0x3c6a6: 0x6d06c420, 0x3c6a7: 0x6d06c620, - 0x3c6a8: 0x6d06c820, 0x3c6a9: 0x6d06ca20, 0x3c6aa: 0x6d34b420, 0x3c6ab: 0x6d34b620, - 0x3c6ac: 0x6d34b820, 0x3c6ad: 0x6d34ba20, 0x3c6ae: 0x6d34bc20, 0x3c6af: 0x6d34be20, - 0x3c6b0: 0x6d34c020, 0x3c6b1: 0x6d34c220, 0x3c6b2: 0x6d34c420, 0x3c6b3: 0x6d617020, - 0x3c6b4: 0x6d617220, 0x3c6b5: 0x6d617420, 0x3c6b6: 0x6d617620, 0x3c6b7: 0x6d617820, - 0x3c6b8: 0x6d8b8a20, 0x3c6b9: 0x6d8b8c20, 0x3c6ba: 0x6d8b8e20, 0x3c6bb: 0x6d8b9020, - 0x3c6bc: 0x6d8b9220, 0x3c6bd: 0x6dafe220, 0x3c6be: 0x6dafe420, 0x3c6bf: 0x6dafe620, - // Block 0xf1b, offset 0x3c6c0 - 0x3c6c0: 0x6dafe820, 0x3c6c1: 0x6dcf7220, 0x3c6c2: 0x6dcf7420, 0x3c6c3: 0x6dcf7620, - 0x3c6c4: 0x6dcf7820, 0x3c6c5: 0x6de99220, 0x3c6c6: 0x6de99420, 0x3c6c7: 0x6de99620, - 0x3c6c8: 0x6de99820, 0x3c6c9: 0x6de99a20, 0x3c6ca: 0x6de99c20, 0x3c6cb: 0x6de99e20, - 0x3c6cc: 0x6dff8a20, 0x3c6cd: 0x6dff8c20, 0x3c6ce: 0x6dff8e20, 0x3c6cf: 0x6e11fa20, - 0x3c6d0: 0x6e11fc20, 0x3c6d1: 0x6e11fe20, 0x3c6d2: 0x6e203420, 0x3c6d3: 0x6e203620, - 0x3c6d4: 0x6e203820, 0x3c6d5: 0x6e2b3020, 0x3c6d6: 0x6e39a620, 0x3c6d7: 0x6e3dd220, - 0x3c6d8: 0x6e40b420, 0x3c6d9: 0x6c050220, 0x3c6da: 0x6c25c420, 0x3c6db: 0x6c25c620, - 0x3c6dc: 0x6c25c820, 0x3c6dd: 0x6c25ca20, 0x3c6de: 0x6c3dfc20, 0x3c6df: 0x6c3dfe20, - 0x3c6e0: 0x6c5cba20, 0x3c6e1: 0x6c5cbc20, 0x3c6e2: 0x6c5cbe20, 0x3c6e3: 0x6c5cc020, - 0x3c6e4: 0x6c80b620, 0x3c6e5: 0x6c80b820, 0x3c6e6: 0x6c80ba20, 0x3c6e7: 0x6c80bc20, - 0x3c6e8: 0x6c80be20, 0x3c6e9: 0x6c80c020, 0x3c6ea: 0x6ca9dc20, 0x3c6eb: 0x6ca9de20, - 0x3c6ec: 0x6cd84a20, 0x3c6ed: 0x6cd84c20, 0x3c6ee: 0x6cd84e20, 0x3c6ef: 0x6d06ee20, - 0x3c6f0: 0x6d06f020, 0x3c6f1: 0x6d34d820, 0x3c6f2: 0x6d34da20, 0x3c6f3: 0x6d34dc20, - 0x3c6f4: 0x6d34de20, 0x3c6f5: 0x6d618e20, 0x3c6f6: 0x6d619020, 0x3c6f7: 0x6d8ba420, - 0x3c6f8: 0x6daff020, 0x3c6f9: 0x6e120020, 0x3c6fa: 0x6d06fa20, 0x3c6fb: 0x6d34fa20, - 0x3c6fc: 0x6d61a020, 0x3c6fd: 0x6d61a220, 0x3c6fe: 0x6d8bb820, 0x3c6ff: 0x6de9b220, - // Block 0xf1c, offset 0x3c700 - 0x3c700: 0x6c3e1e20, 0x3c701: 0x6c5cf420, 0x3c702: 0x6c812020, 0x3c703: 0x6caa2420, - 0x3c704: 0x6caa2620, 0x3c705: 0x6caa2820, 0x3c706: 0x6d074220, 0x3c707: 0x6d074420, - 0x3c708: 0x6d352c20, 0x3c709: 0x6d61c820, 0x3c70a: 0x6d8bf020, 0x3c70b: 0x6dcfa620, - 0x3c70c: 0x6de9d420, 0x3c70d: 0x6e120e20, 0x3c70e: 0x6c3e2c20, 0x3c70f: 0x6caa6620, - 0x3c710: 0x6caa6820, 0x3c711: 0x6caa6a20, 0x3c712: 0x6caa6c20, 0x3c713: 0x6cd8a620, - 0x3c714: 0x6cd8a820, 0x3c715: 0x6d077a20, 0x3c716: 0x6d61f020, 0x3c717: 0x6d61f220, - 0x3c718: 0x6d61f420, 0x3c719: 0x6d8c0a20, 0x3c71a: 0x6db04a20, 0x3c71b: 0x6db04c20, - 0x3c71c: 0x6db04e20, 0x3c71d: 0x6dcfd420, 0x3c71e: 0x6dcfd620, 0x3c71f: 0x6dffb020, - 0x3c720: 0x6e204820, 0x3c721: 0x6e204a20, 0x3c722: 0x6c5d2c20, 0x3c723: 0x6c818e20, - 0x3c724: 0x6caab020, 0x3c725: 0x6cd8ec20, 0x3c726: 0x6cd8ee20, 0x3c727: 0x6cd8f020, - 0x3c728: 0x6d07a620, 0x3c729: 0x6d07a820, 0x3c72a: 0x6d358a20, 0x3c72b: 0x6d623820, - 0x3c72c: 0x6d623a20, 0x3c72d: 0x6d8c3e20, 0x3c72e: 0x6d8c4020, 0x3c72f: 0x6db07020, - 0x3c730: 0x6dd00820, 0x3c731: 0x6dd00a20, 0x3c732: 0x6e205420, 0x3c733: 0x6c81a020, - 0x3c734: 0x6c81a220, 0x3c735: 0x6d07ac20, 0x3c736: 0x6d359020, 0x3c737: 0x6d624020, - 0x3c738: 0x6dd00e20, 0x3c739: 0x6caace20, 0x3c73a: 0x6cd90a20, 0x3c73b: 0x6cd90c20, - 0x3c73c: 0x6d07be20, 0x3c73d: 0x6d626620, 0x3c73e: 0x6d8c6020, 0x3c73f: 0x6dd02820, - // Block 0xf1d, offset 0x3c740 - 0x3c740: 0x6c3e5820, 0x3c741: 0x6c81f820, 0x3c742: 0x6cd94820, 0x3c743: 0x6cd94a20, - 0x3c744: 0x6d07f620, 0x3c745: 0x6d07f820, 0x3c746: 0x6d07fa20, 0x3c747: 0x6d360a20, - 0x3c748: 0x6d360c20, 0x3c749: 0x6d62b420, 0x3c74a: 0x6d8c9220, 0x3c74b: 0x6d8c9420, - 0x3c74c: 0x6d8c9620, 0x3c74d: 0x6d8c9820, 0x3c74e: 0x6db0c820, 0x3c74f: 0x6db0ca20, - 0x3c750: 0x6dd05a20, 0x3c751: 0x6dd05c20, 0x3c752: 0x6dea1a20, 0x3c753: 0x6e42ea20, - 0x3c754: 0x6d080820, 0x3c755: 0x6d361820, 0x3c756: 0x6c3f1420, 0x3c757: 0x6c3f1620, - 0x3c758: 0x6c3f1820, 0x3c759: 0x6c5e3020, 0x3c75a: 0x6c5e3220, 0x3c75b: 0x6c5e3420, - 0x3c75c: 0x6c5e3620, 0x3c75d: 0x6c82ce20, 0x3c75e: 0x6c82d020, 0x3c75f: 0x6cabd620, - 0x3c760: 0x6cabd820, 0x3c761: 0x6cabda20, 0x3c762: 0x6cda6620, 0x3c763: 0x6cda6820, - 0x3c764: 0x6cda6a20, 0x3c765: 0x6cda6c20, 0x3c766: 0x6d08f220, 0x3c767: 0x6d08f420, - 0x3c768: 0x6d08f620, 0x3c769: 0x6d36d620, 0x3c76a: 0x6d36d820, 0x3c76b: 0x6d36da20, - 0x3c76c: 0x6d36dc20, 0x3c76d: 0x6d36de20, 0x3c76e: 0x6d36e020, 0x3c76f: 0x6d634a20, - 0x3c770: 0x6d634c20, 0x3c771: 0x6d634e20, 0x3c772: 0x6d635020, 0x3c773: 0x6d635220, - 0x3c774: 0x6d635420, 0x3c775: 0x6d8d5020, 0x3c776: 0x6d8d5220, 0x3c777: 0x6d8d5420, - 0x3c778: 0x6d8d5620, 0x3c779: 0x6db15e20, 0x3c77a: 0x6db16020, 0x3c77b: 0x6db16220, - 0x3c77c: 0x6dd0ac20, 0x3c77d: 0x6dd0ae20, 0x3c77e: 0x6dea6420, 0x3c77f: 0x6dea6620, - // Block 0xf1e, offset 0x3c780 - 0x3c780: 0x6e001420, 0x3c781: 0x6e125820, 0x3c782: 0x6e207c20, 0x3c783: 0x6e2b6220, - 0x3c784: 0x6e454220, 0x3c785: 0x6c82da20, 0x3c786: 0x6cda7a20, 0x3c787: 0x6d08f820, - 0x3c788: 0x6d36ec20, 0x3c789: 0x6dd0b620, 0x3c78a: 0x6cda8a20, 0x3c78b: 0x6d636820, - 0x3c78c: 0x6dd0ba20, 0x3c78d: 0x6e3de620, 0x3c78e: 0x6d090020, 0x3c78f: 0x6d36fc20, - 0x3c790: 0x6d36fe20, 0x3c791: 0x6e001e20, 0x3c792: 0x6dd0d020, 0x3c793: 0x6e3dea20, - 0x3c794: 0x6c3f3220, 0x3c795: 0x6d091820, 0x3c796: 0x6d091a20, 0x3c797: 0x6d8d9420, - 0x3c798: 0x6dea8420, 0x3c799: 0x6e208420, 0x3c79a: 0x6c5e7620, 0x3c79b: 0x6d377220, - 0x3c79c: 0x6d63e020, 0x3c79d: 0x6d63e220, 0x3c79e: 0x6db1ba20, 0x3c79f: 0x6dd11620, - 0x3c7a0: 0x6e004820, 0x3c7a1: 0x6e209620, 0x3c7a2: 0x6e209820, 0x3c7a3: 0x6e209a20, - 0x3c7a4: 0x6d8dd820, 0x3c7a5: 0x6c14c620, 0x3c7a6: 0x6c14c820, 0x3c7a7: 0x6c268420, - 0x3c7a8: 0x6c268620, 0x3c7a9: 0x6c400220, 0x3c7aa: 0x6c400420, 0x3c7ab: 0x6c400620, - 0x3c7ac: 0x6c400820, 0x3c7ad: 0x6c400a20, 0x3c7ae: 0x6c5f7e20, 0x3c7af: 0x6c5f8020, - 0x3c7b0: 0x6c5f8220, 0x3c7b1: 0x6c5f8420, 0x3c7b2: 0x6c5f8620, 0x3c7b3: 0x6c5f8820, - 0x3c7b4: 0x6c5f8a20, 0x3c7b5: 0x6c5f8c20, 0x3c7b6: 0x6c84b020, 0x3c7b7: 0x6c84b220, - 0x3c7b8: 0x6c84b420, 0x3c7b9: 0x6c84b620, 0x3c7ba: 0x6c84b820, 0x3c7bb: 0x6c84ba20, - 0x3c7bc: 0x6c84bc20, 0x3c7bd: 0x6c84be20, 0x3c7be: 0x6c84c020, 0x3c7bf: 0x6cadf420, - // Block 0xf1f, offset 0x3c7c0 - 0x3c7c0: 0x6cadf620, 0x3c7c1: 0x6cadf820, 0x3c7c2: 0x6cadfa20, 0x3c7c3: 0x6cadfc20, - 0x3c7c4: 0x6cadfe20, 0x3c7c5: 0x6cae0020, 0x3c7c6: 0x6cae0220, 0x3c7c7: 0x6cae0420, - 0x3c7c8: 0x6cae0620, 0x3c7c9: 0x6cae0820, 0x3c7ca: 0x6cae0a20, 0x3c7cb: 0x6cae0c20, - 0x3c7cc: 0x6cae0e20, 0x3c7cd: 0x6cae1020, 0x3c7ce: 0x6cae1220, 0x3c7cf: 0x6cae1420, - 0x3c7d0: 0x6cdd2220, 0x3c7d1: 0x6cdd2420, 0x3c7d2: 0x6cdd2620, 0x3c7d3: 0x6cdd2820, - 0x3c7d4: 0x6cdd2a20, 0x3c7d5: 0x6cdd2c20, 0x3c7d6: 0x6cdd2e20, 0x3c7d7: 0x6cdd3020, - 0x3c7d8: 0x6cdd3220, 0x3c7d9: 0x6cdd3420, 0x3c7da: 0x6cdd3620, 0x3c7db: 0x6cdd3820, - 0x3c7dc: 0x6cdd3a20, 0x3c7dd: 0x6cdd3c20, 0x3c7de: 0x6cdd3e20, 0x3c7df: 0x6cdd4020, - 0x3c7e0: 0x6cdd4220, 0x3c7e1: 0x6d0b8c20, 0x3c7e2: 0x6d0b8e20, 0x3c7e3: 0x6d0b9020, - 0x3c7e4: 0x6d0b9220, 0x3c7e5: 0x6d0b9420, 0x3c7e6: 0x6d0b9620, 0x3c7e7: 0x6d0b9820, - 0x3c7e8: 0x6d0b9a20, 0x3c7e9: 0x6d0b9c20, 0x3c7ea: 0x6d0b9e20, 0x3c7eb: 0x6d0ba020, - 0x3c7ec: 0x6d0ba220, 0x3c7ed: 0x6d0ba420, 0x3c7ee: 0x6d0ba620, 0x3c7ef: 0x6d0ba820, - 0x3c7f0: 0x6cdd4620, 0x3c7f1: 0x6d0baa20, 0x3c7f2: 0x6d0bac20, 0x3c7f3: 0x6d0bae20, - 0x3c7f4: 0x6d0bb020, 0x3c7f5: 0x6d0bb220, 0x3c7f6: 0x6d399220, 0x3c7f7: 0x6d399420, - 0x3c7f8: 0x6d399620, 0x3c7f9: 0x6d399820, 0x3c7fa: 0x6d399a20, 0x3c7fb: 0x6d399c20, - 0x3c7fc: 0x6d399e20, 0x3c7fd: 0x6d39a020, 0x3c7fe: 0x6d39a220, 0x3c7ff: 0x6d39a420, - // Block 0xf20, offset 0x3c800 - 0x3c800: 0x6d39a620, 0x3c801: 0x6d39a820, 0x3c802: 0x6d39aa20, 0x3c803: 0x6d39ac20, - 0x3c804: 0x6d39ae20, 0x3c805: 0x6d39b020, 0x3c806: 0x6d39b220, 0x3c807: 0x6d39b420, - 0x3c808: 0x6d65c420, 0x3c809: 0x6d65c620, 0x3c80a: 0x6d65c820, 0x3c80b: 0x6d65ca20, - 0x3c80c: 0x6d65cc20, 0x3c80d: 0x6d65ce20, 0x3c80e: 0x6d65d020, 0x3c80f: 0x6d65d220, - 0x3c810: 0x6d65d420, 0x3c811: 0x6d65d620, 0x3c812: 0x6d65d820, 0x3c813: 0x6d65da20, - 0x3c814: 0x6d65dc20, 0x3c815: 0x6d65de20, 0x3c816: 0x6d65e020, 0x3c817: 0x6d65e220, - 0x3c818: 0x6d65e420, 0x3c819: 0x6d65e620, 0x3c81a: 0x6d65e820, 0x3c81b: 0x6d65ea20, - 0x3c81c: 0x6d65ec20, 0x3c81d: 0x6d8fb220, 0x3c81e: 0x6d8fb420, 0x3c81f: 0x6d8fb620, - 0x3c820: 0x6d8fb820, 0x3c821: 0x6d8fba20, 0x3c822: 0x6d8fbc20, 0x3c823: 0x6d8fbe20, - 0x3c824: 0x6d8fc020, 0x3c825: 0x6db37420, 0x3c826: 0x6db37620, 0x3c827: 0x6db37820, - 0x3c828: 0x6db37a20, 0x3c829: 0x6db37c20, 0x3c82a: 0x6db37e20, 0x3c82b: 0x6db38020, - 0x3c82c: 0x6db38220, 0x3c82d: 0x6db38420, 0x3c82e: 0x6db38620, 0x3c82f: 0x6db38820, - 0x3c830: 0x6db38a20, 0x3c831: 0x6db38c20, 0x3c832: 0x6db38e20, 0x3c833: 0x6db39020, - 0x3c834: 0x6db39220, 0x3c835: 0x6dd27620, 0x3c836: 0x6dd27820, 0x3c837: 0x6dd27a20, - 0x3c838: 0x6dd27c20, 0x3c839: 0x6dd27e20, 0x3c83a: 0x6dd28020, 0x3c83b: 0x6dd28220, - 0x3c83c: 0x6dd28420, 0x3c83d: 0x6dd28620, 0x3c83e: 0x6dd28820, 0x3c83f: 0x6dd28a20, - // Block 0xf21, offset 0x3c840 - 0x3c840: 0x6dd28c20, 0x3c841: 0x6dd28e20, 0x3c842: 0x6dd29020, 0x3c843: 0x6dd29220, - 0x3c844: 0x6dd29420, 0x3c845: 0x6debc020, 0x3c846: 0x6debc220, 0x3c847: 0x6debc420, - 0x3c848: 0x6debc620, 0x3c849: 0x6debc820, 0x3c84a: 0x6debca20, 0x3c84b: 0x6debcc20, - 0x3c84c: 0x6e014c20, 0x3c84d: 0x6e014e20, 0x3c84e: 0x6e015020, 0x3c84f: 0x6e015220, - 0x3c850: 0x6e133820, 0x3c851: 0x6e133a20, 0x3c852: 0x6e133c20, 0x3c853: 0x6e133e20, - 0x3c854: 0x6e211820, 0x3c855: 0x6e211a20, 0x3c856: 0x6e211c20, 0x3c857: 0x6e2bd420, - 0x3c858: 0x6e342020, 0x3c859: 0x6e342220, 0x3c85a: 0x6e342420, 0x3c85b: 0x6e3e0e20, - 0x3c85c: 0x6e3e1020, 0x3c85d: 0x6c5f9e20, 0x3c85e: 0x6c5fa020, 0x3c85f: 0x6c84dc20, - 0x3c860: 0x6cdd6220, 0x3c861: 0x6cdd6420, 0x3c862: 0x6d39da20, 0x3c863: 0x6db3b220, - 0x3c864: 0x6c403420, 0x3c865: 0x6c5ff220, 0x3c866: 0x6c5ff420, 0x3c867: 0x6c857820, - 0x3c868: 0x6c857a20, 0x3c869: 0x6c857c20, 0x3c86a: 0x6c857e20, 0x3c86b: 0x6c858020, - 0x3c86c: 0x6caf0c20, 0x3c86d: 0x6caf0e20, 0x3c86e: 0x6caf1020, 0x3c86f: 0x6caf1220, - 0x3c870: 0x6caf1420, 0x3c871: 0x6caf1620, 0x3c872: 0x6caf1820, 0x3c873: 0x6cde3020, - 0x3c874: 0x6cde3220, 0x3c875: 0x6cde3420, 0x3c876: 0x6cde3620, 0x3c877: 0x6cde3820, - 0x3c878: 0x6cde3a20, 0x3c879: 0x6cde3c20, 0x3c87a: 0x6cde3e20, 0x3c87b: 0x6cde4020, - 0x3c87c: 0x6cde4220, 0x3c87d: 0x6d0cb020, 0x3c87e: 0x6d0cb220, 0x3c87f: 0x6d0cb420, - // Block 0xf22, offset 0x3c880 - 0x3c880: 0x6d0cb620, 0x3c881: 0x6d0cb820, 0x3c882: 0x6d3afc20, 0x3c883: 0x6d3afe20, - 0x3c884: 0x6d3b0020, 0x3c885: 0x6d3b0220, 0x3c886: 0x6d3b0420, 0x3c887: 0x6d3b0620, - 0x3c888: 0x6d3b0820, 0x3c889: 0x6d3b0a20, 0x3c88a: 0x6d672e20, 0x3c88b: 0x6d673020, - 0x3c88c: 0x6d673220, 0x3c88d: 0x6d673420, 0x3c88e: 0x6d673620, 0x3c88f: 0x6d910820, - 0x3c890: 0x6d910a20, 0x3c891: 0x6d910c20, 0x3c892: 0x6d910e20, 0x3c893: 0x6d911020, - 0x3c894: 0x6d911220, 0x3c895: 0x6d911420, 0x3c896: 0x6db4be20, 0x3c897: 0x6db4c020, - 0x3c898: 0x6db4c220, 0x3c899: 0x6db4c420, 0x3c89a: 0x6dd38e20, 0x3c89b: 0x6dd39020, - 0x3c89c: 0x6dd39220, 0x3c89d: 0x6dd39420, 0x3c89e: 0x6dd39620, 0x3c89f: 0x6dec9c20, - 0x3c8a0: 0x6dec9e20, 0x3c8a1: 0x6deca020, 0x3c8a2: 0x6deca220, 0x3c8a3: 0x6e01d420, - 0x3c8a4: 0x6e01d620, 0x3c8a5: 0x6e01d820, 0x3c8a6: 0x6e13c220, 0x3c8a7: 0x6e13c420, - 0x3c8a8: 0x6e218420, 0x3c8a9: 0x6e447620, 0x3c8aa: 0x6c859220, 0x3c8ab: 0x6caf2420, - 0x3c8ac: 0x6db4ce20, 0x3c8ad: 0x6caf3220, 0x3c8ae: 0x6cde6820, 0x3c8af: 0x6d675420, - 0x3c8b0: 0x6dd3a820, 0x3c8b1: 0x6e2c2020, 0x3c8b2: 0x6c605e20, 0x3c8b3: 0x6c606020, - 0x3c8b4: 0x6c606220, 0x3c8b5: 0x6c861c20, 0x3c8b6: 0x6c861e20, 0x3c8b7: 0x6c862020, - 0x3c8b8: 0x6cafd820, 0x3c8b9: 0x6cafda20, 0x3c8ba: 0x6cafdc20, 0x3c8bb: 0x6cafde20, - 0x3c8bc: 0x6cafe020, 0x3c8bd: 0x6cdef420, 0x3c8be: 0x6d0d6820, 0x3c8bf: 0x6d0d6a20, - // Block 0xf23, offset 0x3c8c0 - 0x3c8c0: 0x6d0d6c20, 0x3c8c1: 0x6d0d6e20, 0x3c8c2: 0x6d0d7020, 0x3c8c3: 0x6d0d7220, - 0x3c8c4: 0x6d0d7420, 0x3c8c5: 0x6d3bd820, 0x3c8c6: 0x6d3bda20, 0x3c8c7: 0x6d67ec20, - 0x3c8c8: 0x6d67ee20, 0x3c8c9: 0x6d67f020, 0x3c8ca: 0x6d91ae20, 0x3c8cb: 0x6d91b020, - 0x3c8cc: 0x6d91b220, 0x3c8cd: 0x6d91b420, 0x3c8ce: 0x6d91b620, 0x3c8cf: 0x6d91b820, - 0x3c8d0: 0x6db57820, 0x3c8d1: 0x6db57a20, 0x3c8d2: 0x6db57c20, 0x3c8d3: 0x6dd40a20, - 0x3c8d4: 0x6dd40c20, 0x3c8d5: 0x6decfc20, 0x3c8d6: 0x6e021620, 0x3c8d7: 0x6e21a020, - 0x3c8d8: 0x6e2c3420, 0x3c8d9: 0x6e2c3620, 0x3c8da: 0x6cafec20, 0x3c8db: 0x6d91c020, - 0x3c8dc: 0x6c863c20, 0x3c8dd: 0x6cdf3220, 0x3c8de: 0x6d0daa20, 0x3c8df: 0x6d3c1a20, - 0x3c8e0: 0x6d3c1c20, 0x3c8e1: 0x6d683020, 0x3c8e2: 0x6d91fe20, 0x3c8e3: 0x6d920020, - 0x3c8e4: 0x6dd43420, 0x3c8e5: 0x6e022c20, 0x3c8e6: 0x6e3a3220, 0x3c8e7: 0x6e3a3420, - 0x3c8e8: 0x6c607820, 0x3c8e9: 0x6c607a20, 0x3c8ea: 0x6c864020, 0x3c8eb: 0x6d0dae20, - 0x3c8ec: 0x6d683820, 0x3c8ed: 0x6db5a620, 0x3c8ee: 0x6d0dd820, 0x3c8ef: 0x6d0dda20, - 0x3c8f0: 0x6d922e20, 0x3c8f1: 0x6d923020, 0x3c8f2: 0x6c868c20, 0x3c8f3: 0x6c868e20, - 0x3c8f4: 0x6cb10620, 0x3c8f5: 0x6cb10820, 0x3c8f6: 0x6ce02420, 0x3c8f7: 0x6ce02620, - 0x3c8f8: 0x6ce02820, 0x3c8f9: 0x6ce02a20, 0x3c8fa: 0x6d0eae20, 0x3c8fb: 0x6d0eb020, - 0x3c8fc: 0x6d3d0020, 0x3c8fd: 0x6d3d0220, 0x3c8fe: 0x6d3d0420, 0x3c8ff: 0x6d697220, - // Block 0xf24, offset 0x3c900 - 0x3c900: 0x6d697420, 0x3c901: 0x6d92f220, 0x3c902: 0x6d92f420, 0x3c903: 0x6d92f620, - 0x3c904: 0x6d92f820, 0x3c905: 0x6d92fa20, 0x3c906: 0x6db69220, 0x3c907: 0x6db69420, - 0x3c908: 0x6db69620, 0x3c909: 0x6dd4f220, 0x3c90a: 0x6dd4f420, 0x3c90b: 0x6dd4f620, - 0x3c90c: 0x6dd4f820, 0x3c90d: 0x6dedda20, 0x3c90e: 0x6deddc20, 0x3c90f: 0x6dedde20, - 0x3c910: 0x6e02b220, 0x3c911: 0x6e02b420, 0x3c912: 0x6e146a20, 0x3c913: 0x6e2c7420, - 0x3c914: 0x6e34a220, 0x3c915: 0x6e34a420, 0x3c916: 0x6e34a620, 0x3c917: 0x6e3e4220, - 0x3c918: 0x6e431c20, 0x3c919: 0x6c0a7c20, 0x3c91a: 0x6c14fa20, 0x3c91b: 0x6c14fc20, - 0x3c91c: 0x6c26d820, 0x3c91d: 0x6c26da20, 0x3c91e: 0x6c26dc20, 0x3c91f: 0x6c26de20, - 0x3c920: 0x6c26e020, 0x3c921: 0x6c26e220, 0x3c922: 0x6c40ac20, 0x3c923: 0x6c40ae20, - 0x3c924: 0x6c40b020, 0x3c925: 0x6c40b220, 0x3c926: 0x6c40b420, 0x3c927: 0x6c60b620, - 0x3c928: 0x6c60b820, 0x3c929: 0x6c60ba20, 0x3c92a: 0x6c60bc20, 0x3c92b: 0x6c86b820, - 0x3c92c: 0x6c86ba20, 0x3c92d: 0x6c86bc20, 0x3c92e: 0x6c86be20, 0x3c92f: 0x6cb13420, - 0x3c930: 0x6cb13620, 0x3c931: 0x6cb13820, 0x3c932: 0x6cb13a20, 0x3c933: 0x6cb13c20, - 0x3c934: 0x6cb13e20, 0x3c935: 0x6ce03e20, 0x3c936: 0x6ce04020, 0x3c937: 0x6ce04220, - 0x3c938: 0x6ce04420, 0x3c939: 0x6d0ebe20, 0x3c93a: 0x6d0ec020, 0x3c93b: 0x6d3d1220, - 0x3c93c: 0x6d3d1420, 0x3c93d: 0x6d698220, 0x3c93e: 0x6d92fe20, 0x3c93f: 0x6db69c20, - // Block 0xf25, offset 0x3c940 - 0x3c940: 0x6c60c020, 0x3c941: 0x6cb14e20, 0x3c942: 0x6d699420, 0x3c943: 0x6d69b220, - 0x3c944: 0x6dd51220, 0x3c945: 0x6c40bc20, 0x3c946: 0x6cb17620, 0x3c947: 0x6d3d4a20, - 0x3c948: 0x6d3d4c20, 0x3c949: 0x6d933e20, 0x3c94a: 0x6c86ee20, 0x3c94b: 0x6d0f2420, - 0x3c94c: 0x6d936620, 0x3c94d: 0x6db70220, 0x3c94e: 0x6c60da20, 0x3c94f: 0x6c870a20, - 0x3c950: 0x6c870c20, 0x3c951: 0x6c870e20, 0x3c952: 0x6cb1d820, 0x3c953: 0x6cb1da20, - 0x3c954: 0x6ce11420, 0x3c955: 0x6ce11620, 0x3c956: 0x6d0f8e20, 0x3c957: 0x6d3dbc20, - 0x3c958: 0x6d3dbe20, 0x3c959: 0x6d3dc020, 0x3c95a: 0x6d6a6820, 0x3c95b: 0x6d6a6a20, - 0x3c95c: 0x6d93b820, 0x3c95d: 0x6d93ba20, 0x3c95e: 0x6d93bc20, 0x3c95f: 0x6db73c20, - 0x3c960: 0x6db73e20, 0x3c961: 0x6dd59220, 0x3c962: 0x6dee7a20, 0x3c963: 0x6e225420, - 0x3c964: 0x6e225620, 0x3c965: 0x6e2ca420, 0x3c966: 0x6c60f620, 0x3c967: 0x6c60f820, - 0x3c968: 0x6cb1e620, 0x3c969: 0x6ce13420, 0x3c96a: 0x6d0f9620, 0x3c96b: 0x6d93ca20, - 0x3c96c: 0x6dd59420, 0x3c96d: 0x6ce13c20, 0x3c96e: 0x6d0fa620, 0x3c96f: 0x6d6a8020, - 0x3c970: 0x6dd59a20, 0x3c971: 0x6cb23c20, 0x3c972: 0x6ce19a20, 0x3c973: 0x6d100420, - 0x3c974: 0x6d100620, 0x3c975: 0x6d3e3420, 0x3c976: 0x6d3e3620, 0x3c977: 0x6d3e3820, - 0x3c978: 0x6d6ad420, 0x3c979: 0x6d6ad620, 0x3c97a: 0x6d6ad820, 0x3c97b: 0x6d942e20, - 0x3c97c: 0x6d943020, 0x3c97d: 0x6db78220, 0x3c97e: 0x6dd5d820, 0x3c97f: 0x6dd5da20, - // Block 0xf26, offset 0x3c980 - 0x3c980: 0x6c877e20, 0x3c981: 0x6cb2a420, 0x3c982: 0x6cb2a620, 0x3c983: 0x6cb2a820, - 0x3c984: 0x6ce23420, 0x3c985: 0x6ce23620, 0x3c986: 0x6ce23820, 0x3c987: 0x6d10a620, - 0x3c988: 0x6d10a820, 0x3c989: 0x6d10aa20, 0x3c98a: 0x6d10ac20, 0x3c98b: 0x6d10ae20, - 0x3c98c: 0x6d3edc20, 0x3c98d: 0x6d3ede20, 0x3c98e: 0x6d3ee020, 0x3c98f: 0x6d6b8e20, - 0x3c990: 0x6d6b9020, 0x3c991: 0x6d6b9220, 0x3c992: 0x6d6b9420, 0x3c993: 0x6d6b9620, - 0x3c994: 0x6d94d820, 0x3c995: 0x6d94da20, 0x3c996: 0x6d94dc20, 0x3c997: 0x6d94de20, - 0x3c998: 0x6d94e020, 0x3c999: 0x6db81020, 0x3c99a: 0x6db81220, 0x3c99b: 0x6db81420, - 0x3c99c: 0x6dd6a220, 0x3c99d: 0x6dd6a420, 0x3c99e: 0x6dd6a620, 0x3c99f: 0x6dd6a820, - 0x3c9a0: 0x6def6020, 0x3c9a1: 0x6def6220, 0x3c9a2: 0x6def6420, 0x3c9a3: 0x6e039220, - 0x3c9a4: 0x6e039420, 0x3c9a5: 0x6e039620, 0x3c9a6: 0x6e039820, 0x3c9a7: 0x6e150220, - 0x3c9a8: 0x6e150420, 0x3c9a9: 0x6e2ce620, 0x3c9aa: 0x6d10dc20, 0x3c9ab: 0x6d10de20, - 0x3c9ac: 0x6d3f0020, 0x3c9ad: 0x6db83220, 0x3c9ae: 0x6db83420, 0x3c9af: 0x6dd6be20, - 0x3c9b0: 0x6def9020, 0x3c9b1: 0x6e03aa20, 0x3c9b2: 0x6c87b620, 0x3c9b3: 0x6cb33620, - 0x3c9b4: 0x6ce2d420, 0x3c9b5: 0x6ce2d620, 0x3c9b6: 0x6d3f5820, 0x3c9b7: 0x6d3f5a20, - 0x3c9b8: 0x6d3f5c20, 0x3c9b9: 0x6d6c4c20, 0x3c9ba: 0x6d956c20, 0x3c9bb: 0x6d956e20, - 0x3c9bc: 0x6db89620, 0x3c9bd: 0x6db89820, 0x3c9be: 0x6dd71220, 0x3c9bf: 0x6dd71420, - // Block 0xf27, offset 0x3c9c0 - 0x3c9c0: 0x6defc620, 0x3c9c1: 0x6e03e820, 0x3c9c2: 0x6e153420, 0x3c9c3: 0x6e469220, - 0x3c9c4: 0x6c271620, 0x3c9c5: 0x6c271820, 0x3c9c6: 0x6c271a20, 0x3c9c7: 0x6c40f420, - 0x3c9c8: 0x6c615e20, 0x3c9c9: 0x6c616020, 0x3c9ca: 0x6c616220, 0x3c9cb: 0x6c87cc20, - 0x3c9cc: 0x6c87ce20, 0x3c9cd: 0x6cb34020, 0x3c9ce: 0x6ce2e820, 0x3c9cf: 0x6ce2ea20, - 0x3c9d0: 0x6ce2ec20, 0x3c9d1: 0x6ce2ee20, 0x3c9d2: 0x6d114a20, 0x3c9d3: 0x6c87d020, - 0x3c9d4: 0x6d3f6420, 0x3c9d5: 0x6d6c5020, 0x3c9d6: 0x6d6c5220, 0x3c9d7: 0x6d957620, - 0x3c9d8: 0x6db89a20, 0x3c9d9: 0x6defc820, 0x3c9da: 0x6ce2f820, 0x3c9db: 0x6d115a20, - 0x3c9dc: 0x6d115c20, 0x3c9dd: 0x6e03f620, 0x3c9de: 0x6c052020, 0x3c9df: 0x6c153820, - 0x3c9e0: 0x6c278620, 0x3c9e1: 0x6c278820, 0x3c9e2: 0x6c417620, 0x3c9e3: 0x6c417820, - 0x3c9e4: 0x6c417a20, 0x3c9e5: 0x6c61d020, 0x3c9e6: 0x6c886020, 0x3c9e7: 0x6c886220, - 0x3c9e8: 0x6c886420, 0x3c9e9: 0x6c886620, 0x3c9ea: 0x6c886820, 0x3c9eb: 0x6cb3ec20, - 0x3c9ec: 0x6cb3ee20, 0x3c9ed: 0x6cb3f020, 0x3c9ee: 0x6cb3f220, 0x3c9ef: 0x6cb3f420, - 0x3c9f0: 0x6cb3f620, 0x3c9f1: 0x6cb3f820, 0x3c9f2: 0x6cb3fa20, 0x3c9f3: 0x6ce3ac20, - 0x3c9f4: 0x6ce3ae20, 0x3c9f5: 0x6ce3b020, 0x3c9f6: 0x6ce3b220, 0x3c9f7: 0x6ce3b420, - 0x3c9f8: 0x6ce3b620, 0x3c9f9: 0x6ce3b820, 0x3c9fa: 0x6d11f420, 0x3c9fb: 0x6d11f620, - 0x3c9fc: 0x6d11f820, 0x3c9fd: 0x6d11fa20, 0x3c9fe: 0x6d3ff820, 0x3c9ff: 0x6d3ffa20, - // Block 0xf28, offset 0x3ca00 - 0x3ca00: 0x6d3ffc20, 0x3ca01: 0x6d3ffe20, 0x3ca02: 0x6d400020, 0x3ca03: 0x6d400220, - 0x3ca04: 0x6d6cea20, 0x3ca05: 0x6d6cec20, 0x3ca06: 0x6d6cee20, 0x3ca07: 0x6d6cf020, - 0x3ca08: 0x6d6cf220, 0x3ca09: 0x6d6cf420, 0x3ca0a: 0x6d6cf620, 0x3ca0b: 0x6d95f620, - 0x3ca0c: 0x6db8fc20, 0x3ca0d: 0x6db8fe20, 0x3ca0e: 0x6db90020, 0x3ca0f: 0x6db90220, - 0x3ca10: 0x6dd75220, 0x3ca11: 0x6dd75420, 0x3ca12: 0x6e041e20, 0x3ca13: 0x6e042020, - 0x3ca14: 0x6e042220, 0x3ca15: 0x6e042420, 0x3ca16: 0x6e154c20, 0x3ca17: 0x6c0aa820, - 0x3ca18: 0x6c158820, 0x3ca19: 0x6c158a20, 0x3ca1a: 0x6c27e620, 0x3ca1b: 0x6c27e820, - 0x3ca1c: 0x6c41d820, 0x3ca1d: 0x6c624e20, 0x3ca1e: 0x6c625020, 0x3ca1f: 0x6c625220, - 0x3ca20: 0x6c88e220, 0x3ca21: 0x6c88e420, 0x3ca22: 0x6c88e620, 0x3ca23: 0x6cb46e20, - 0x3ca24: 0x6cb47020, 0x3ca25: 0x6ce41a20, 0x3ca26: 0x6ce41c20, 0x3ca27: 0x6d126420, - 0x3ca28: 0x6d126620, 0x3ca29: 0x6d126820, 0x3ca2a: 0x6d6d4420, 0x3ca2b: 0x6d6d4620, - 0x3ca2c: 0x6d962e20, 0x3ca2d: 0x6db93220, 0x3ca2e: 0x6dd77a20, 0x3ca2f: 0x6dd77c20, - 0x3ca30: 0x6dd77e20, 0x3ca31: 0x6e043220, 0x3ca32: 0x6e433620, 0x3ca33: 0x6c890420, - 0x3ca34: 0x6d12b620, 0x3ca35: 0x6d12b820, 0x3ca36: 0x6d40c420, 0x3ca37: 0x6d40c620, - 0x3ca38: 0x6d40c820, 0x3ca39: 0x6d6da420, 0x3ca3a: 0x6db98e20, 0x3ca3b: 0x6dd7ca20, - 0x3ca3c: 0x6df05020, 0x3ca3d: 0x6df05220, 0x3ca3e: 0x6e157620, 0x3ca3f: 0x6e2d3820, - // Block 0xf29, offset 0x3ca40 - 0x3ca40: 0x6ce46e20, 0x3ca41: 0x6cb4d220, 0x3ca42: 0x6ce47a20, 0x3ca43: 0x6d40d220, - 0x3ca44: 0x6db99e20, 0x3ca45: 0x6df05420, 0x3ca46: 0x6cb51a20, 0x3ca47: 0x6cb51c20, - 0x3ca48: 0x6cb51e20, 0x3ca49: 0x6cb52020, 0x3ca4a: 0x6ce51a20, 0x3ca4b: 0x6ce51c20, - 0x3ca4c: 0x6ce51e20, 0x3ca4d: 0x6ce52020, 0x3ca4e: 0x6ce52220, 0x3ca4f: 0x6d139220, - 0x3ca50: 0x6d139420, 0x3ca51: 0x6d139620, 0x3ca52: 0x6d139820, 0x3ca53: 0x6d139a20, - 0x3ca54: 0x6d139c20, 0x3ca55: 0x6d41ac20, 0x3ca56: 0x6d41ae20, 0x3ca57: 0x6d41b020, - 0x3ca58: 0x6d41b220, 0x3ca59: 0x6d41b420, 0x3ca5a: 0x6d41b620, 0x3ca5b: 0x6d41b820, - 0x3ca5c: 0x6d41ba20, 0x3ca5d: 0x6d6ebe20, 0x3ca5e: 0x6d6ec020, 0x3ca5f: 0x6d6ec220, - 0x3ca60: 0x6d6ec420, 0x3ca61: 0x6d6ec620, 0x3ca62: 0x6d6ec820, 0x3ca63: 0x6d6eca20, - 0x3ca64: 0x6d6ecc20, 0x3ca65: 0x6d6ece20, 0x3ca66: 0x6d97d820, 0x3ca67: 0x6d97da20, - 0x3ca68: 0x6d97dc20, 0x3ca69: 0x6d97de20, 0x3ca6a: 0x6d97e020, 0x3ca6b: 0x6d97e220, - 0x3ca6c: 0x6d97e420, 0x3ca6d: 0x6d97e620, 0x3ca6e: 0x6d97e820, 0x3ca6f: 0x6d97ea20, - 0x3ca70: 0x6dbadc20, 0x3ca71: 0x6dbade20, 0x3ca72: 0x6dbae020, 0x3ca73: 0x6dbae220, - 0x3ca74: 0x6dbae420, 0x3ca75: 0x6dbae620, 0x3ca76: 0x6dbae820, 0x3ca77: 0x6dbaea20, - 0x3ca78: 0x6dd8ea20, 0x3ca79: 0x6dd8ec20, 0x3ca7a: 0x6dd8ee20, 0x3ca7b: 0x6dd8f020, - 0x3ca7c: 0x6dd8f220, 0x3ca7d: 0x6dd8f420, 0x3ca7e: 0x6dd8f620, 0x3ca7f: 0x6df15420, - // Block 0xf2a, offset 0x3ca80 - 0x3ca80: 0x6df15620, 0x3ca81: 0x6df15820, 0x3ca82: 0x6df15a20, 0x3ca83: 0x6df15c20, - 0x3ca84: 0x6e057220, 0x3ca85: 0x6e057420, 0x3ca86: 0x6e057620, 0x3ca87: 0x6e057820, - 0x3ca88: 0x6e057a20, 0x3ca89: 0x6e057c20, 0x3ca8a: 0x6e057e20, 0x3ca8b: 0x6e058020, - 0x3ca8c: 0x6e058220, 0x3ca8d: 0x6e058420, 0x3ca8e: 0x6e058620, 0x3ca8f: 0x6e164020, - 0x3ca90: 0x6e164220, 0x3ca91: 0x6e164420, 0x3ca92: 0x6e164620, 0x3ca93: 0x6e164820, - 0x3ca94: 0x6e164a20, 0x3ca95: 0x6e164c20, 0x3ca96: 0x6e238a20, 0x3ca97: 0x6e238c20, - 0x3ca98: 0x6e238e20, 0x3ca99: 0x6e239020, 0x3ca9a: 0x6e239220, 0x3ca9b: 0x6e2db420, - 0x3ca9c: 0x6e2db620, 0x3ca9d: 0x6e356020, 0x3ca9e: 0x6e356220, 0x3ca9f: 0x6e356420, - 0x3caa0: 0x6e3ae220, 0x3caa1: 0x6e3ae420, 0x3caa2: 0x6e3ae620, 0x3caa3: 0x6e3eae20, - 0x3caa4: 0x6e415e20, 0x3caa5: 0x6c27fc20, 0x3caa6: 0x6c41fa20, 0x3caa7: 0x6c629c20, - 0x3caa8: 0x6c629e20, 0x3caa9: 0x6c62a020, 0x3caaa: 0x6c62a220, 0x3caab: 0x6c62a420, - 0x3caac: 0x6c897a20, 0x3caad: 0x6c897c20, 0x3caae: 0x6c897e20, 0x3caaf: 0x6cb57420, - 0x3cab0: 0x6cb57620, 0x3cab1: 0x6cb57820, 0x3cab2: 0x6cb57a20, 0x3cab3: 0x6cb57c20, - 0x3cab4: 0x6cb57e20, 0x3cab5: 0x6ce56a20, 0x3cab6: 0x6ce56c20, 0x3cab7: 0x6ce56e20, - 0x3cab8: 0x6d13e420, 0x3cab9: 0x6d13e620, 0x3caba: 0x6d13e820, 0x3cabb: 0x6d13ea20, - 0x3cabc: 0x6d13ec20, 0x3cabd: 0x6d13ee20, 0x3cabe: 0x6d13f020, 0x3cabf: 0x6d13f220, - // Block 0xf2b, offset 0x3cac0 - 0x3cac0: 0x6d41ee20, 0x3cac1: 0x6d41f020, 0x3cac2: 0x6d41f220, 0x3cac3: 0x6d41f420, - 0x3cac4: 0x6d41f620, 0x3cac5: 0x6d6ef620, 0x3cac6: 0x6d6ef820, 0x3cac7: 0x6d6efa20, - 0x3cac8: 0x6d6efc20, 0x3cac9: 0x6d980820, 0x3caca: 0x6d980a20, 0x3cacb: 0x6dbb0c20, - 0x3cacc: 0x6dbb0e20, 0x3cacd: 0x6dbb1020, 0x3cace: 0x6dbb1220, 0x3cacf: 0x6dbb1420, - 0x3cad0: 0x6dd90c20, 0x3cad1: 0x6dd90e20, 0x3cad2: 0x6df16020, 0x3cad3: 0x6e164e20, - 0x3cad4: 0x6e2db820, 0x3cad5: 0x6e356620, 0x3cad6: 0x6d141620, 0x3cad7: 0x6d6f1a20, - 0x3cad8: 0x6c62b220, 0x3cad9: 0x6cb5c220, 0x3cada: 0x6ce5e620, 0x3cadb: 0x6ce5e820, - 0x3cadc: 0x6d146420, 0x3cadd: 0x6d146620, 0x3cade: 0x6d146820, 0x3cadf: 0x6d146a20, - 0x3cae0: 0x6d146c20, 0x3cae1: 0x6d6f7a20, 0x3cae2: 0x6d6f7c20, 0x3cae3: 0x6d6f7e20, - 0x3cae4: 0x6d6f8020, 0x3cae5: 0x6d988820, 0x3cae6: 0x6d988a20, 0x3cae7: 0x6d988c20, - 0x3cae8: 0x6dbb8420, 0x3cae9: 0x6df1a020, 0x3caea: 0x6e168e20, 0x3caeb: 0x6e3af820, - 0x3caec: 0x6c15a020, 0x3caed: 0x6c281820, 0x3caee: 0x6c281a20, 0x3caef: 0x6c281c20, - 0x3caf0: 0x6c420c20, 0x3caf1: 0x6c62ca20, 0x3caf2: 0x6c899e20, 0x3caf3: 0x6c89a020, - 0x3caf4: 0x6cb5d820, 0x3caf5: 0x6d147a20, 0x3caf6: 0x6d147c20, 0x3caf7: 0x6d426620, - 0x3caf8: 0x6d426820, 0x3caf9: 0x6dbb8a20, 0x3cafa: 0x6c0ac020, 0x3cafb: 0x6c15d020, - 0x3cafc: 0x6c287820, 0x3cafd: 0x6c287a20, 0x3cafe: 0x6c426c20, 0x3caff: 0x6c426e20, - // Block 0xf2c, offset 0x3cb00 - 0x3cb00: 0x6c427020, 0x3cb01: 0x6c632620, 0x3cb02: 0x6c632820, 0x3cb03: 0x6c632a20, - 0x3cb04: 0x6c8a2c20, 0x3cb05: 0x6c8a2e20, 0x3cb06: 0x6cb64e20, 0x3cb07: 0x6cb65020, - 0x3cb08: 0x6cb65220, 0x3cb09: 0x6cb65420, 0x3cb0a: 0x6cb65620, 0x3cb0b: 0x6cb65820, - 0x3cb0c: 0x6cb65a20, 0x3cb0d: 0x6cb65c20, 0x3cb0e: 0x6ce68620, 0x3cb0f: 0x6ce68820, - 0x3cb10: 0x6d14d620, 0x3cb11: 0x6d14d820, 0x3cb12: 0x6d14da20, 0x3cb13: 0x6d14dc20, - 0x3cb14: 0x6d42c420, 0x3cb15: 0x6d42c620, 0x3cb16: 0x6d42c820, 0x3cb17: 0x6d42ca20, - 0x3cb18: 0x6dd98420, 0x3cb19: 0x6d6fca20, 0x3cb1a: 0x6ce6bc20, 0x3cb1b: 0x6d430a20, - 0x3cb1c: 0x6dd9ba20, 0x3cb1d: 0x6c8a4620, 0x3cb1e: 0x6cb69620, 0x3cb1f: 0x6ce6f220, - 0x3cb20: 0x6ce6f420, 0x3cb21: 0x6d155020, 0x3cb22: 0x6d155220, 0x3cb23: 0x6d434c20, - 0x3cb24: 0x6d434e20, 0x3cb25: 0x6d704a20, 0x3cb26: 0x6d704c20, 0x3cb27: 0x6d997620, - 0x3cb28: 0x6d997820, 0x3cb29: 0x6dbc4e20, 0x3cb2a: 0x6dbc5020, 0x3cb2b: 0x6dda1a20, - 0x3cb2c: 0x6df23220, 0x3cb2d: 0x6df23420, 0x3cb2e: 0x6e066820, 0x3cb2f: 0x6e066a20, - 0x3cb30: 0x6e066c20, 0x3cb31: 0x6e066e20, 0x3cb32: 0x6e16ea20, 0x3cb33: 0x6e240820, - 0x3cb34: 0x6e240a20, 0x3cb35: 0x6e35ae20, 0x3cb36: 0x6e35b020, 0x3cb37: 0x6e44b220, - 0x3cb38: 0x6cb69a20, 0x3cb39: 0x6d156020, 0x3cb3a: 0x6d156220, 0x3cb3b: 0x6d998220, - 0x3cb3c: 0x6df23820, 0x3cb3d: 0x6d435a20, 0x3cb3e: 0x6e16ee20, 0x3cb3f: 0x6e3b1c20, - // Block 0xf2d, offset 0x3cb40 - 0x3cb40: 0x6d437c20, 0x3cb41: 0x6d707020, 0x3cb42: 0x6d99a020, 0x3cb43: 0x6dda2e20, - 0x3cb44: 0x6e170820, 0x3cb45: 0x6d43d420, 0x3cb46: 0x6d43d620, 0x3cb47: 0x6d70be20, - 0x3cb48: 0x6d70c020, 0x3cb49: 0x6e06d220, 0x3cb4a: 0x6e173e20, 0x3cb4b: 0x6e244420, - 0x3cb4c: 0x6c8a4e20, 0x3cb4d: 0x6d15d220, 0x3cb4e: 0x6dbce620, 0x3cb4f: 0x6e06e820, - 0x3cb50: 0x6e35d620, 0x3cb51: 0x6c428420, 0x3cb52: 0x6c8a5020, 0x3cb53: 0x6ce73a20, - 0x3cb54: 0x6d43fe20, 0x3cb55: 0x6d440020, 0x3cb56: 0x6d9a0220, 0x3cb57: 0x6d15f020, - 0x3cb58: 0x6d441020, 0x3cb59: 0x6ddad820, 0x3cb5a: 0x6e070420, 0x3cb5b: 0x6e176420, - 0x3cb5c: 0x6e3b3420, 0x3cb5d: 0x6d163c20, 0x3cb5e: 0x6d447020, 0x3cb5f: 0x6d9aae20, - 0x3cb60: 0x6d9ab020, 0x3cb61: 0x6dbd6820, 0x3cb62: 0x6ddb3a20, 0x3cb63: 0x6ddb3c20, - 0x3cb64: 0x6df33620, 0x3cb65: 0x6e074420, 0x3cb66: 0x6e074620, 0x3cb67: 0x6e17a820, - 0x3cb68: 0x6e248e20, 0x3cb69: 0x6e35f020, 0x3cb6a: 0x6c634c20, 0x3cb6b: 0x6c8a6420, - 0x3cb6c: 0x6cb6c820, 0x3cb6d: 0x6cb6ca20, 0x3cb6e: 0x6ce77020, 0x3cb6f: 0x6ce77220, - 0x3cb70: 0x6ce77420, 0x3cb71: 0x6ce77620, 0x3cb72: 0x6d164c20, 0x3cb73: 0x6d164e20, - 0x3cb74: 0x6d447820, 0x3cb75: 0x6d447a20, 0x3cb76: 0x6d447c20, 0x3cb77: 0x6d716a20, - 0x3cb78: 0x6d9aba20, 0x3cb79: 0x6dbd6a20, 0x3cb7a: 0x6e17ac20, 0x3cb7b: 0x6d167e20, - 0x3cb7c: 0x6d44b420, 0x3cb7d: 0x6dbdb620, 0x3cb7e: 0x6ddb8220, 0x3cb7f: 0x6ddb8420, - // Block 0xf2e, offset 0x3cb80 - 0x3cb80: 0x6df37220, 0x3cb81: 0x6df37420, 0x3cb82: 0x6df37620, 0x3cb83: 0x6e249e20, - 0x3cb84: 0x6e24a020, 0x3cb85: 0x6e2e7620, 0x3cb86: 0x6e35fe20, 0x3cb87: 0x6c428a20, - 0x3cb88: 0x6cb6d420, 0x3cb89: 0x6ce79620, 0x3cb8a: 0x6d168620, 0x3cb8b: 0x6dbdba20, - 0x3cb8c: 0x6dbdbe20, 0x3cb8d: 0x6ce7d620, 0x3cb8e: 0x6d16f220, 0x3cb8f: 0x6d451820, - 0x3cb90: 0x6d451a20, 0x3cb91: 0x6d451c20, 0x3cb92: 0x6d451e20, 0x3cb93: 0x6d71fc20, - 0x3cb94: 0x6dbe3c20, 0x3cb95: 0x6dbe3e20, 0x3cb96: 0x6dbe4020, 0x3cb97: 0x6dbe4220, - 0x3cb98: 0x6ddbf820, 0x3cb99: 0x6df3e020, 0x3cb9a: 0x6df3e220, 0x3cb9b: 0x6e07c020, - 0x3cb9c: 0x6e24d820, 0x3cb9d: 0x6e24da20, 0x3cb9e: 0x6c15d820, 0x3cb9f: 0x6c289420, - 0x3cba0: 0x6c289620, 0x3cba1: 0x6c42a820, 0x3cba2: 0x6c42aa20, 0x3cba3: 0x6c42ac20, - 0x3cba4: 0x6c637a20, 0x3cba5: 0x6c637c20, 0x3cba6: 0x6c8a8620, 0x3cba7: 0x6c8a8820, - 0x3cba8: 0x6c8a8a20, 0x3cba9: 0x6cb70820, 0x3cbaa: 0x6cb70a20, 0x3cbab: 0x6ce7e420, - 0x3cbac: 0x6ce7e620, 0x3cbad: 0x6ce7e820, 0x3cbae: 0x6ce7ea20, 0x3cbaf: 0x6ce7ec20, - 0x3cbb0: 0x6d170220, 0x3cbb1: 0x6d170420, 0x3cbb2: 0x6d720420, 0x3cbb3: 0x6d720620, - 0x3cbb4: 0x6d9b8e20, 0x3cbb5: 0x6e07c420, 0x3cbb6: 0x6d453220, 0x3cbb7: 0x6d9b9e20, - 0x3cbb8: 0x6dbe4e20, 0x3cbb9: 0x6df3ea20, 0x3cbba: 0x6e07c820, 0x3cbbb: 0x6e361820, - 0x3cbbc: 0x6d722020, 0x3cbbd: 0x6d722220, 0x3cbbe: 0x6dbe6420, 0x3cbbf: 0x6ddc1420, - // Block 0xf2f, offset 0x3cbc0 - 0x3cbc0: 0x6e07d420, 0x3cbc1: 0x6e07d620, 0x3cbc2: 0x6e183020, 0x3cbc3: 0x6e24e220, - 0x3cbc4: 0x6e44be20, 0x3cbc5: 0x6d173020, 0x3cbc6: 0x6d45a420, 0x3cbc7: 0x6d45a620, - 0x3cbc8: 0x6d45a820, 0x3cbc9: 0x6d45aa20, 0x3cbca: 0x6d9c2e20, 0x3cbcb: 0x6ddc9e20, - 0x3cbcc: 0x6ddca020, 0x3cbcd: 0x6ddca220, 0x3cbce: 0x6ddca420, 0x3cbcf: 0x6df47c20, - 0x3cbd0: 0x6df47e20, 0x3cbd1: 0x6df48020, 0x3cbd2: 0x6e086220, 0x3cbd3: 0x6e086420, - 0x3cbd4: 0x6e086620, 0x3cbd5: 0x6e086820, 0x3cbd6: 0x6e086a20, 0x3cbd7: 0x6e254220, - 0x3cbd8: 0x6e2ee220, 0x3cbd9: 0x6e364020, 0x3cbda: 0x6e41b420, 0x3cbdb: 0x6c15e020, - 0x3cbdc: 0x6c28a220, 0x3cbdd: 0x6c28a420, 0x3cbde: 0x6c42d620, 0x3cbdf: 0x6c42d820, - 0x3cbe0: 0x6c63a620, 0x3cbe1: 0x6c63a820, 0x3cbe2: 0x6c8aa820, 0x3cbe3: 0x6c8aaa20, - 0x3cbe4: 0x6c8aac20, 0x3cbe5: 0x6cb72820, 0x3cbe6: 0x6cb72a20, 0x3cbe7: 0x6cb72c20, - 0x3cbe8: 0x6ce82620, 0x3cbe9: 0x6ce82820, 0x3cbea: 0x6d174220, 0x3cbeb: 0x6d174420, - 0x3cbec: 0x6d174620, 0x3cbed: 0x6d45b220, 0x3cbee: 0x6d45b420, 0x3cbef: 0x6d72b020, - 0x3cbf0: 0x6d9c3220, 0x3cbf1: 0x6e189020, 0x3cbf2: 0x6d72e020, 0x3cbf3: 0x6ddcd620, - 0x3cbf4: 0x6ddcd820, 0x3cbf5: 0x6ce84020, 0x3cbf6: 0x6d72ec20, 0x3cbf7: 0x6d9c7820, - 0x3cbf8: 0x6cb73820, 0x3cbf9: 0x6d178820, 0x3cbfa: 0x6d178a20, 0x3cbfb: 0x6d463a20, - 0x3cbfc: 0x6d734220, 0x3cbfd: 0x6d9cbe20, 0x3cbfe: 0x6dbf5020, 0x3cbff: 0x6dbf5220, - // Block 0xf30, offset 0x3cc00 - 0x3cc00: 0x6ddd3420, 0x3cc01: 0x6ddd3620, 0x3cc02: 0x6df4f820, 0x3cc03: 0x6e18e620, - 0x3cc04: 0x6d464c20, 0x3cc05: 0x6d735220, 0x3cc06: 0x6e190420, 0x3cc07: 0x6e439e20, - 0x3cc08: 0x6cb74220, 0x3cc09: 0x6d17c220, 0x3cc0a: 0x6d738420, 0x3cc0b: 0x6d9d0c20, - 0x3cc0c: 0x6dbf8c20, 0x3cc0d: 0x6dbf8e20, 0x3cc0e: 0x6e193220, 0x3cc0f: 0x6d17de20, - 0x3cc10: 0x6d46b420, 0x3cc11: 0x6d740620, 0x3cc12: 0x6d740820, 0x3cc13: 0x6d9da220, - 0x3cc14: 0x6d9da420, 0x3cc15: 0x6d9da620, 0x3cc16: 0x6d9da820, 0x3cc17: 0x6d9daa20, - 0x3cc18: 0x6dc02a20, 0x3cc19: 0x6dc02c20, 0x3cc1a: 0x6dc02e20, 0x3cc1b: 0x6dc03020, - 0x3cc1c: 0x6dc03220, 0x3cc1d: 0x6dc03420, 0x3cc1e: 0x6dc03620, 0x3cc1f: 0x6dc03820, - 0x3cc20: 0x6dde2620, 0x3cc21: 0x6dde2820, 0x3cc22: 0x6dde2a20, 0x3cc23: 0x6dde2c20, - 0x3cc24: 0x6df61420, 0x3cc25: 0x6df61620, 0x3cc26: 0x6df61820, 0x3cc27: 0x6df61a20, - 0x3cc28: 0x6e09e020, 0x3cc29: 0x6e09e220, 0x3cc2a: 0x6e09e420, 0x3cc2b: 0x6e19e620, - 0x3cc2c: 0x6e19e820, 0x3cc2d: 0x6e19ea20, 0x3cc2e: 0x6e19ec20, 0x3cc2f: 0x6e19ee20, - 0x3cc30: 0x6e266420, 0x3cc31: 0x6e266620, 0x3cc32: 0x6e266820, 0x3cc33: 0x6e266a20, - 0x3cc34: 0x6e266c20, 0x3cc35: 0x6e266e20, 0x3cc36: 0x6e267020, 0x3cc37: 0x6e2fce20, - 0x3cc38: 0x6e2fd020, 0x3cc39: 0x6e2fd220, 0x3cc3a: 0x6e2fd420, 0x3cc3b: 0x6e2fd620, - 0x3cc3c: 0x6e2fd820, 0x3cc3d: 0x6e370820, 0x3cc3e: 0x6e370a20, 0x3cc3f: 0x6e370c20, - // Block 0xf31, offset 0x3cc40 - 0x3cc40: 0x6e370e20, 0x3cc41: 0x6e371020, 0x3cc42: 0x6e3be220, 0x3cc43: 0x6e3be420, - 0x3cc44: 0x6e3f8420, 0x3cc45: 0x6e43be20, 0x3cc46: 0x6e458a20, 0x3cc47: 0x6e466220, - 0x3cc48: 0x6cb74c20, 0x3cc49: 0x6cb74e20, 0x3cc4a: 0x6cb75020, 0x3cc4b: 0x6ce87e20, - 0x3cc4c: 0x6ce88020, 0x3cc4d: 0x6ce88220, 0x3cc4e: 0x6d17fc20, 0x3cc4f: 0x6d17fe20, - 0x3cc50: 0x6d180020, 0x3cc51: 0x6d180220, 0x3cc52: 0x6c8ac220, 0x3cc53: 0x6d46dc20, - 0x3cc54: 0x6d46de20, 0x3cc55: 0x6d46e020, 0x3cc56: 0x6d46e220, 0x3cc57: 0x6d46e420, - 0x3cc58: 0x6d46e620, 0x3cc59: 0x6d743020, 0x3cc5a: 0x6d743220, 0x3cc5b: 0x6d743420, - 0x3cc5c: 0x6d9dd620, 0x3cc5d: 0x6d9dd820, 0x3cc5e: 0x6d9dda20, 0x3cc5f: 0x6d9ddc20, - 0x3cc60: 0x6d9dde20, 0x3cc61: 0x6d9de020, 0x3cc62: 0x6dc05e20, 0x3cc63: 0x6dc06020, - 0x3cc64: 0x6dc06220, 0x3cc65: 0x6dc06420, 0x3cc66: 0x6dde3c20, 0x3cc67: 0x6df63220, - 0x3cc68: 0x6df63420, 0x3cc69: 0x6e09f420, 0x3cc6a: 0x6e09f620, 0x3cc6b: 0x6e1a0220, - 0x3cc6c: 0x6e267620, 0x3cc6d: 0x6e2fde20, 0x3cc6e: 0x6ce88e20, 0x3cc6f: 0x6d74d620, - 0x3cc70: 0x6d74d820, 0x3cc71: 0x6d74da20, 0x3cc72: 0x6d74dc20, 0x3cc73: 0x6d9eae20, - 0x3cc74: 0x6d9eb020, 0x3cc75: 0x6d9eb220, 0x3cc76: 0x6d9eb420, 0x3cc77: 0x6d9eb620, - 0x3cc78: 0x6dc12a20, 0x3cc79: 0x6dc12c20, 0x3cc7a: 0x6dc12e20, 0x3cc7b: 0x6dc13020, - 0x3cc7c: 0x6ddedc20, 0x3cc7d: 0x6ddede20, 0x3cc7e: 0x6ddee020, 0x3cc7f: 0x6ddee220, - // Block 0xf32, offset 0x3cc80 - 0x3cc80: 0x6ddee420, 0x3cc81: 0x6df71e20, 0x3cc82: 0x6df72020, 0x3cc83: 0x6df72220, - 0x3cc84: 0x6df72420, 0x3cc85: 0x6df72620, 0x3cc86: 0x6df72820, 0x3cc87: 0x6df72a20, - 0x3cc88: 0x6df72c20, 0x3cc89: 0x6e0acc20, 0x3cc8a: 0x6e0ace20, 0x3cc8b: 0x6e0ad020, - 0x3cc8c: 0x6e1aba20, 0x3cc8d: 0x6e1abc20, 0x3cc8e: 0x6e1abe20, 0x3cc8f: 0x6e1ac020, - 0x3cc90: 0x6e272c20, 0x3cc91: 0x6e309e20, 0x3cc92: 0x6e30a020, 0x3cc93: 0x6e30a220, - 0x3cc94: 0x6e30a420, 0x3cc95: 0x6e30a620, 0x3cc96: 0x6e378820, 0x3cc97: 0x6e3c3020, - 0x3cc98: 0x6e3fb820, 0x3cc99: 0x6e459e20, 0x3cc9a: 0x6c63be20, 0x3cc9b: 0x6c63c020, - 0x3cc9c: 0x6c63c220, 0x3cc9d: 0x6c63c420, 0x3cc9e: 0x6c63c620, 0x3cc9f: 0x6c8ae020, - 0x3cca0: 0x6c8ae220, 0x3cca1: 0x6c8ae420, 0x3cca2: 0x6c8ae620, 0x3cca3: 0x6c8ae820, - 0x3cca4: 0x6c8aea20, 0x3cca5: 0x6cb77620, 0x3cca6: 0x6cb77820, 0x3cca7: 0x6cb77a20, - 0x3cca8: 0x6cb77c20, 0x3cca9: 0x6cb77e20, 0x3ccaa: 0x6cb78020, 0x3ccab: 0x6ce8a620, - 0x3ccac: 0x6ce8a820, 0x3ccad: 0x6ce8aa20, 0x3ccae: 0x6ce8ac20, 0x3ccaf: 0x6ce8ae20, - 0x3ccb0: 0x6d184a20, 0x3ccb1: 0x6d184c20, 0x3ccb2: 0x6d184e20, 0x3ccb3: 0x6d185020, - 0x3ccb4: 0x6d185220, 0x3ccb5: 0x6d185420, 0x3ccb6: 0x6d473820, 0x3ccb7: 0x6d473a20, - 0x3ccb8: 0x6d473c20, 0x3ccb9: 0x6d473e20, 0x3ccba: 0x6d474020, 0x3ccbb: 0x6d474220, - 0x3ccbc: 0x6d474420, 0x3ccbd: 0x6d74fa20, 0x3ccbe: 0x6d74fc20, 0x3ccbf: 0x6d9ec220, - // Block 0xf33, offset 0x3ccc0 - 0x3ccc0: 0x6d9ec420, 0x3ccc1: 0x6d9ec620, 0x3ccc2: 0x6d9ec820, 0x3ccc3: 0x6dc14020, - 0x3ccc4: 0x6dc14220, 0x3ccc5: 0x6ddeee20, 0x3ccc6: 0x6df73420, 0x3ccc7: 0x6dc14620, - 0x3ccc8: 0x6ddef820, 0x3ccc9: 0x6e0aea20, 0x3ccca: 0x6d9eda20, 0x3cccb: 0x6d186020, - 0x3cccc: 0x6d752e20, 0x3cccd: 0x6dc16c20, 0x3ccce: 0x6ddf2620, 0x3cccf: 0x6e30c620, - 0x3ccd0: 0x6df79820, 0x3ccd1: 0x6cb79220, 0x3ccd2: 0x6ce8b220, 0x3ccd3: 0x6d476220, - 0x3ccd4: 0x6d756020, 0x3ccd5: 0x6dc18a20, 0x3ccd6: 0x6dc19220, 0x3ccd7: 0x6df7a220, - 0x3ccd8: 0x6d757c20, 0x3ccd9: 0x6e0b8620, 0x3ccda: 0x6e0b8820, 0x3ccdb: 0x6e1b5e20, - 0x3ccdc: 0x6d9f7420, 0x3ccdd: 0x6df7f420, 0x3ccde: 0x6e3c7820, 0x3ccdf: 0x6dc1f620, - 0x3cce0: 0x6d75ac20, 0x3cce1: 0x6e27c420, 0x3cce2: 0x6d477e20, 0x3cce3: 0x6e3c9020, - 0x3cce4: 0x6ddfea20, 0x3cce5: 0x6e1bde20, 0x3cce6: 0x6e283420, 0x3cce7: 0x6e427220, - 0x3cce8: 0x6ce8c620, 0x3cce9: 0x6d478c20, 0x3ccea: 0x6d478e20, 0x3cceb: 0x6d75be20, - 0x3ccec: 0x6d9f9620, 0x3cced: 0x6d9f9820, 0x3ccee: 0x6dc24020, 0x3ccef: 0x6ddffe20, - 0x3ccf0: 0x6e1be020, 0x3ccf1: 0x6e318020, 0x3ccf2: 0x6d75c020, 0x3ccf3: 0x6ce8c820, - 0x3ccf4: 0x6e451220, - // Block 0xf34, offset 0x3cd00 - 0x3cd00: 0x6c00f420, 0x3cd01: 0x6c0ae820, 0x3cd02: 0x6c15fe20, 0x3cd03: 0x6d189620, - 0x3cd04: 0x6c011820, 0x3cd05: 0x6c0b6620, 0x3cd06: 0x6c060c20, 0x3cd07: 0x6c2a2820, - 0x3cd08: 0x6c2a2a20, 0x3cd09: 0x6c656c20, 0x3cd0a: 0x6c8c6420, 0x3cd0b: 0x6ce9e020, - 0x3cd0c: 0x6c446a20, 0x3cd0d: 0x6c448e20, 0x3cd0e: 0x6c44d020, 0x3cd0f: 0x6c8cbc20, - 0x3cd10: 0x6c454c20, 0x3cd11: 0x6ceac020, 0x3cd12: 0x6c18be20, 0x3cd13: 0x6c2bd220, - 0x3cd14: 0x6c45cc20, 0x3cd15: 0x6c190220, 0x3cd16: 0x6c676c20, 0x3cd17: 0x6c676e20, - 0x3cd18: 0x6c0e9420, 0x3cd19: 0x6c47da20, 0x3cd1a: 0x6d1cea20, 0x3cd1b: 0x6d4ab420, - 0x3cd1c: 0x6da17c20, 0x3cd1d: 0x6dc3da20, 0x3cd1e: 0x6e1c7220, 0x3cd1f: 0x6cbd8420, - 0x3cd20: 0x6d1df020, 0x3cd21: 0x6d78fe20, 0x3cd22: 0x6c0f2a20, 0x3cd23: 0x6c1b8820, - 0x3cd24: 0x6c6ae820, 0x3cd25: 0x6d793620, 0x3cd26: 0x6c1c6020, 0x3cd27: 0x6c4a1620, - 0x3cd28: 0x6c4a1820, 0x3cd29: 0x6c6bd620, 0x3cd2a: 0x6c6bd820, 0x3cd2b: 0x6c6bda20, - 0x3cd2c: 0x6cbf4020, 0x3cd2d: 0x6d1f2620, 0x3cd2e: 0x6d4cb420, 0x3cd2f: 0x6d4cc620, - 0x3cd30: 0x6d1faa20, 0x3cd31: 0x6d4d2020, 0x3cd32: 0x6c102620, 0x3cd33: 0x6c109020, - 0x3cd34: 0x6c4bca20, 0x3cd35: 0x6c6de020, 0x3cd36: 0x6c964c20, 0x3cd37: 0x6c964e20, - 0x3cd38: 0x6c4d3a20, 0x3cd39: 0x6c1ffa20, 0x3cd3a: 0x6c352c20, 0x3cd3b: 0x6c502820, - 0x3cd3c: 0x6cc66a20, 0x3cd3d: 0x6cf51a20, 0x3cd3e: 0x6d24e420, 0x3cd3f: 0x6dc6b420, - // Block 0xf35, offset 0x3cd40 - 0x3cd40: 0x6c9b6c20, 0x3cd41: 0x6cf5cc20, 0x3cd42: 0x6c515820, 0x3cd43: 0x6c515a20, - 0x3cd44: 0x6c738a20, 0x3cd45: 0x6c73bc20, 0x3cd46: 0x6cc88020, 0x3cd47: 0x6cc88220, - 0x3cd48: 0x6c376220, 0x3cd49: 0x6c754420, 0x3cd4a: 0x6c754620, 0x3cd4b: 0x6d27fc20, - 0x3cd4c: 0x6d27fe20, 0x3cd4d: 0x6d554c20, 0x3cd4e: 0x6d554e20, 0x3cd4f: 0x6d555020, - 0x3cd50: 0x6d80ce20, 0x3cd51: 0x6da6f020, 0x3cd52: 0x6dc84a20, 0x3cd53: 0x6cf92020, - 0x3cd54: 0x6d55c820, 0x3cd55: 0x6c098820, 0x3cd56: 0x6c12e820, 0x3cd57: 0x6c77e820, - 0x3cd58: 0x6ca0dc20, 0x3cd59: 0x6cfbd020, 0x3cd5a: 0x6cfbd220, 0x3cd5b: 0x6cfbd420, - 0x3cd5c: 0x6d580820, 0x3cd5d: 0x6d82fa20, 0x3cd5e: 0x6de56e20, 0x3cd5f: 0x6c78c820, - 0x3cd60: 0x6ca1ca20, 0x3cd61: 0x6d2bd820, 0x3cd62: 0x6c569420, 0x3cd63: 0x6c3b3620, - 0x3cd64: 0x6ca2d420, 0x3cd65: 0x6c3baa20, 0x3cd66: 0x6c7a7020, 0x3cd67: 0x6cd15e20, - 0x3cd68: 0x6d2d8420, 0x3cd69: 0x6d5ab020, 0x3cd6a: 0x6c580820, 0x3cd6b: 0x6ca41820, - 0x3cd6c: 0x6c7ba220, 0x3cd6d: 0x6d5bd620, 0x3cd6e: 0x6c7bd220, 0x3cd6f: 0x6c3c7420, - 0x3cd70: 0x6c597220, 0x3cd71: 0x6d012e20, 0x3cd72: 0x6c7cd420, 0x3cd73: 0x6ca59020, - 0x3cd74: 0x6c7e2c20, 0x3cd75: 0x6ca6f220, 0x3cd76: 0x6d883020, 0x3cd77: 0x6ca77620, - 0x3cd78: 0x6d042820, 0x3cd79: 0x6c258820, 0x3cd7a: 0x6e1f7c20, 0x3cd7b: 0x6c259220, - 0x3cd7c: 0x6ca7e620, 0x3cd7d: 0x6d5fe820, 0x3cd7e: 0x6d5fea20, 0x3cd7f: 0x6d5fec20, - // Block 0xf36, offset 0x3cd80 - 0x3cd80: 0x6daf1e20, 0x3cd81: 0x6d617a20, 0x3cd82: 0x6dcf7a20, 0x3cd83: 0x6c5cc220, - 0x3cd84: 0x6c80c220, 0x3cd85: 0x6ca9e020, 0x3cd86: 0x6cd85020, 0x3cd87: 0x6daff220, - 0x3cd88: 0x6c5d0a20, 0x3cd89: 0x6c3e5a20, 0x3cd8a: 0x6d36e220, 0x3cd8b: 0x6cdaaa20, - 0x3cd8c: 0x6c5f8e20, 0x3cd8d: 0x6c5f9020, 0x3cd8e: 0x6c84c220, 0x3cd8f: 0x6cae1620, - 0x3cd90: 0x6cae1820, 0x3cd91: 0x6cae1a20, 0x3cd92: 0x6d0bb420, 0x3cd93: 0x6d0bb620, - 0x3cd94: 0x6d39b620, 0x3cd95: 0x6d65ee20, 0x3cd96: 0x6d8fc220, 0x3cd97: 0x6e01da20, - 0x3cd98: 0x6d675620, 0x3cd99: 0x6db4d820, 0x3cd9a: 0x6cdef620, 0x3cd9b: 0x6cdf0620, - 0x3cd9c: 0x6e2c3a20, 0x3cd9d: 0x6e221220, 0x3cd9e: 0x6c14fe20, 0x3cd9f: 0x6c26e420, - 0x3cda0: 0x6c86c020, 0x3cda1: 0x6c86c220, 0x3cda2: 0x6ce04620, 0x3cda3: 0x6def6620, - 0x3cda4: 0x6c616420, 0x3cda5: 0x6d3f6620, 0x3cda6: 0x6db89c20, 0x3cda7: 0x6c0a8a20, - 0x3cda8: 0x6ce3ba20, 0x3cda9: 0x6ce3bc20, 0x3cdaa: 0x6d95f820, 0x3cdab: 0x6c27ea20, - 0x3cdac: 0x6c88e820, 0x3cdad: 0x6cb47220, 0x3cdae: 0x6d12ba20, 0x3cdaf: 0x6c626020, - 0x3cdb0: 0x6d41bc20, 0x3cdb1: 0x6dd8f820, 0x3cdb2: 0x6c27fe20, 0x3cdb3: 0x6c41fc20, - 0x3cdb4: 0x6c62a620, 0x3cdb5: 0x6c62a820, 0x3cdb6: 0x6c898020, 0x3cdb7: 0x6c898220, - 0x3cdb8: 0x6cb58020, 0x3cdb9: 0x6cb58220, 0x3cdba: 0x6cb58420, 0x3cdbb: 0x6cb58620, - 0x3cdbc: 0x6ce57020, 0x3cdbd: 0x6d13f420, 0x3cdbe: 0x6d41f820, 0x3cdbf: 0x6d41fa20, - // Block 0xf37, offset 0x3cdc0 - 0x3cdc0: 0x6d6efe20, 0x3cdc1: 0x6df16220, 0x3cdc2: 0x6c420e20, 0x3cdc3: 0x6cb65e20, - 0x3cdc4: 0x6d70de20, 0x3cdc5: 0x6d15dc20, 0x3cdc6: 0x6c8a6620, 0x3cdc7: 0x6c428c20, - 0x3cdc8: 0x6c635a20, 0x3cdc9: 0x6c8a9220, 0x3cdca: 0x6c42da20, 0x3cdcb: 0x6d45b620, - 0x3cdcc: 0x6d9c3420, 0x3cdcd: 0x6e19f020, 0x3cdce: 0x6e371220, 0x3cdcf: 0x6ce88420, - 0x3cdd0: 0x6d180420, 0x3cdd1: 0x6dc06620, 0x3cdd2: 0x6df63620, 0x3cdd3: 0x6cb75420, - 0x3cdd4: 0x6d9eb820, 0x3cdd5: 0x6e272e20, 0x3cdd6: 0x6c63c820, 0x3cdd7: 0x6d750a20, - 0x3cdd8: 0x6ddfda20, 0x3cdd9: 0x6df85820, 0x3cdda: 0x6d188a20, 0x3cddb: 0x6e383e20, - 0x3cddc: 0x6d9f9a20, 0x3cddd: 0x6e441c20, - // Block 0xf38, offset 0x3ce00 - 0x3ce00: 0x6c15ea20, 0x3ce01: 0x6c00fe20, 0x3ce02: 0x6c000c20, 0x3ce03: 0x6c0b4420, - 0x3ce04: 0x6c16ba20, 0x3ce05: 0x6c435e20, 0x3ce06: 0x6c437820, 0x3ce07: 0x6c645620, - 0x3ce08: 0x6c8bba20, 0x3ce09: 0x6cb81c20, 0x3ce0a: 0x6d18fe20, 0x3ce0b: 0x6d18ce20, - 0x3ce0c: 0x6d9fac20, 0x3ce0d: 0x6c0ccc20, 0x3ce0e: 0x6c173820, 0x3ce0f: 0x6c2a3220, - 0x3ce10: 0x6e0c6420, 0x3ce11: 0x6c2a5220, 0x3ce12: 0x6c8c8020, 0x3ce13: 0x6df89620, - 0x3ce14: 0x6c02ce20, 0x3ce15: 0x6c0c7820, 0x3ce16: 0x6c0c7c20, 0x3ce17: 0x6c02fe20, - 0x3ce18: 0x6c65aa20, 0x3ce19: 0x6c02ae20, 0x3ce1a: 0x6c064a20, 0x3ce1b: 0x6c179020, - 0x3ce1c: 0x6dbc5420, 0x3ce1d: 0x6c009a20, 0x3ce1e: 0x6c015a20, 0x3ce1f: 0x6c17da20, - 0x3ce20: 0x6c2ae220, 0x3ce21: 0x6c2b4a20, 0x3ce22: 0x6cb95220, 0x3ce23: 0x6cea4020, - 0x3ce24: 0x6c0d3c20, 0x3ce25: 0x6c455c20, 0x3ce26: 0x6c456020, 0x3ce27: 0x6cea9c20, - 0x3ce28: 0x6c016420, 0x3ce29: 0x6c06b820, 0x3ce2a: 0x6c06ba20, 0x3ce2b: 0x6c06c620, - 0x3ce2c: 0x6c06d220, 0x3ce2d: 0x6c2bac20, 0x3ce2e: 0x6cb9f220, 0x3ce2f: 0x6c18d420, - 0x3ce30: 0x6c45e820, 0x3ce31: 0x6c673020, 0x3ce32: 0x6c673020, 0x3ce33: 0x6c673020, - 0x3ce34: 0x6c038e20, 0x3ce35: 0x6c135e20, 0x3ce36: 0x6c03a020, 0x3ce37: 0x6c677e20, - 0x3ce38: 0x6c8e0c20, 0x3ce39: 0x6c074420, 0x3ce3a: 0x6c075020, 0x3ce3b: 0x6c0e3020, - 0x3ce3c: 0x6c468620, 0x3ce3d: 0x6c197e20, 0x3ce3e: 0x6c199e20, 0x3ce3f: 0x6c2c7e20, - // Block 0xf39, offset 0x3ce40 - 0x3ce40: 0x6c468e20, 0x3ce41: 0x6c67e620, 0x3ce42: 0x6c681820, 0x3ce43: 0x6c8e9620, - 0x3ce44: 0x6c8eb220, 0x3ce45: 0x6cbaaa20, 0x3ce46: 0x6cbaaa20, 0x3ce47: 0x6cbad220, - 0x3ce48: 0x6cbaf620, 0x3ce49: 0x6cbb0620, 0x3ce4a: 0x6ceb7620, 0x3ce4b: 0x6d1cf220, - 0x3ce4c: 0x6d1b7220, 0x3ce4d: 0x6d1cf420, 0x3ce4e: 0x6d1bb220, 0x3ce4f: 0x6d49c620, - 0x3ce50: 0x6c032820, 0x3ce51: 0x6c0f0e20, 0x3ce52: 0x6c486820, 0x3ce53: 0x6c908220, - 0x3ce54: 0x6c90b420, 0x3ce55: 0x6c481220, 0x3ce56: 0x6c6a6e20, 0x3ce57: 0x6cbcb020, - 0x3ce58: 0x6d4af820, 0x3ce59: 0x6de13e20, 0x3ce5a: 0x6c1b6c20, 0x3ce5b: 0x6c916220, - 0x3ce5c: 0x6c1b7420, 0x3ce5d: 0x6c0f1e20, 0x3ce5e: 0x6d1e1020, 0x3ce5f: 0x6c91d420, - 0x3ce60: 0x6c080620, 0x3ce61: 0x6c2f9020, 0x3ce62: 0x6c6b1820, 0x3ce63: 0x6c6b3c20, - 0x3ce64: 0x6c6b5420, 0x3ce65: 0x6c495620, 0x3ce66: 0x6c924e20, 0x3ce67: 0x6cbdf220, - 0x3ce68: 0x6cbe0e20, 0x3ce69: 0x6d4c1220, 0x3ce6a: 0x6de16420, 0x3ce6b: 0x6de16420, - 0x3ce6c: 0x6c0fdc20, 0x3ce6d: 0x6c933820, 0x3ce6e: 0x6cefa820, 0x3ce6f: 0x6d1f5620, - 0x3ce70: 0x6de19a20, 0x3ce71: 0x6e3d2020, 0x3ce72: 0x6c1cc220, 0x3ce73: 0x6c4a9220, - 0x3ce74: 0x6c114a20, 0x3ce75: 0x6c01ac20, 0x3ce76: 0x6c4abc20, 0x3ce77: 0x6c941020, - 0x3ce78: 0x6c01b620, 0x3ce79: 0x6c311420, 0x3ce7a: 0x6c1dd220, 0x3ce7b: 0x6c6d7820, - 0x3ce7c: 0x6cc0a820, 0x3ce7d: 0x6c6d7c20, 0x3ce7e: 0x6cf09a20, 0x3ce7f: 0x6cc16a20, - // Block 0xf3a, offset 0x3ce80 - 0x3ce80: 0x6d202220, 0x3ce81: 0x6c272c20, 0x3ce82: 0x6c954a20, 0x3ce83: 0x6c08a020, - 0x3ce84: 0x6cc17820, 0x3ce85: 0x6c6e0020, 0x3ce86: 0x6cc19820, 0x3ce87: 0x6d4ea820, - 0x3ce88: 0x6d7ae820, 0x3ce89: 0x6e320a20, 0x3ce8a: 0x6c4c6820, 0x3ce8b: 0x6c4cac20, - 0x3ce8c: 0x6c95e620, 0x3ce8d: 0x6c95ec20, 0x3ce8e: 0x6cc21820, 0x3ce8f: 0x6d476820, - 0x3ce90: 0x6c01d820, 0x3ce91: 0x6c111220, 0x3ce92: 0x6c111220, 0x3ce93: 0x6c82fe20, - 0x3ce94: 0x6c326a20, 0x3ce95: 0x6c326a20, 0x3ce96: 0x6c329a20, 0x3ce97: 0x6d7ea620, - 0x3ce98: 0x6e201a20, 0x3ce99: 0x6c1ee020, 0x3ce9a: 0x6c96ae20, 0x3ce9b: 0x6c6f1420, - 0x3ce9c: 0x6cc2ca20, 0x3ce9d: 0x6c1f2220, 0x3ce9e: 0x6c1f2c20, 0x3ce9f: 0x6c1f6c20, - 0x3cea0: 0x6c6fa220, 0x3cea1: 0x6c4dbe20, 0x3cea2: 0x6c4da620, 0x3cea3: 0x6c6fc020, - 0x3cea4: 0x6c97fe20, 0x3cea5: 0x6c97a020, 0x3cea6: 0x6d222420, 0x3cea7: 0x6cf2ac20, - 0x3cea8: 0x6cf2b020, 0x3cea9: 0x6cf2ac20, 0x3ceaa: 0x6d226c20, 0x3ceab: 0x6d4fb820, - 0x3ceac: 0x6d7bcc20, 0x3cead: 0x6d4fd820, 0x3ceae: 0x6d4fe820, 0x3ceaf: 0x6da3f620, - 0x3ceb0: 0x6de28220, 0x3ceb1: 0x6de28c20, 0x3ceb2: 0x6c11c220, 0x3ceb3: 0x6c98ba20, - 0x3ceb4: 0x6c11e820, 0x3ceb5: 0x6c345020, 0x3ceb6: 0x6c349420, 0x3ceb7: 0x6c713820, - 0x3ceb8: 0x6c4fd020, 0x3ceb9: 0x6c711220, 0x3ceba: 0x6c4f3420, 0x3cebb: 0x6c990c20, - 0x3cebc: 0x6c994220, 0x3cebd: 0x6c722020, 0x3cebe: 0x6cc57a20, 0x3cebf: 0x6cf41220, - // Block 0xf3b, offset 0x3cec0 - 0x3cec0: 0x6cf51c20, 0x3cec1: 0x6c998820, 0x3cec2: 0x6d237420, 0x3cec3: 0x6d510220, - 0x3cec4: 0x6d23ee20, 0x3cec5: 0x6d515a20, 0x3cec6: 0x6d23e220, 0x3cec7: 0x6de2ea20, - 0x3cec8: 0x6c9ab020, 0x3cec9: 0x6cf53820, 0x3ceca: 0x6da53020, 0x3cecb: 0x6c9b6e20, - 0x3cecc: 0x6c739020, 0x3cecd: 0x6c731620, 0x3cece: 0x6d7e3620, 0x3cecf: 0x6cc7b820, - 0x3ced0: 0x6cf5e620, 0x3ced1: 0x6c50c220, 0x3ced2: 0x6c448820, 0x3ced3: 0x6c8c8820, - 0x3ced4: 0x6cb8f420, 0x3ced5: 0x6d258220, 0x3ced6: 0x6c3e9420, 0x3ced7: 0x6c3e7220, - 0x3ced8: 0x6c73be20, 0x3ced9: 0x6c9c2220, 0x3ceda: 0x6cf69620, 0x3cedb: 0x6c21ee20, - 0x3cedc: 0x6c21d820, 0x3cedd: 0x6c220c20, 0x3cede: 0x6c365c20, 0x3cedf: 0x6c522420, - 0x3cee0: 0x6c36a020, 0x3cee1: 0x6c52c020, 0x3cee2: 0x6c9c8820, 0x3cee3: 0x6c750620, - 0x3cee4: 0x6c9c9a20, 0x3cee5: 0x6c740020, 0x3cee6: 0x6cc95020, 0x3cee7: 0x6cf6d620, - 0x3cee8: 0x6cf70820, 0x3cee9: 0x6d267820, 0x3ceea: 0x6d53d620, 0x3ceeb: 0x6da63220, - 0x3ceec: 0x6d801420, 0x3ceed: 0x6da6f220, 0x3ceee: 0x6e1db420, 0x3ceef: 0x6c12b420, - 0x3cef0: 0x6c756020, 0x3cef1: 0x6d80d420, 0x3cef2: 0x6e38d620, 0x3cef3: 0x6cf90820, - 0x3cef4: 0x6d285c20, 0x3cef5: 0x6c9e2620, 0x3cef6: 0x6c9e2820, 0x3cef7: 0x6c9e2e20, - 0x3cef8: 0x6c30b220, 0x3cef9: 0x6d288c20, 0x3cefa: 0x6c130620, 0x3cefb: 0x6c393420, - 0x3cefc: 0x6c38ac20, 0x3cefd: 0x6c38c620, 0x3cefe: 0x6c22c020, 0x3ceff: 0x6c767220, - // Block 0xf3c, offset 0x3cf00 - 0x3cf00: 0x6c546820, 0x3cf01: 0x6c76b620, 0x3cf02: 0x6c546e20, 0x3cf03: 0x6c769a20, - 0x3cf04: 0x6c76b820, 0x3cf05: 0x6c76d220, 0x3cf06: 0x6c771820, 0x3cf07: 0x6c545420, - 0x3cf08: 0x6ccc3a20, 0x3cf09: 0x6cccb620, 0x3cf0a: 0x6cfa0020, 0x3cf0b: 0x6cccf220, - 0x3cf0c: 0x6cfa8620, 0x3cf0d: 0x6d29d220, 0x3cf0e: 0x6c9f8020, 0x3cf0f: 0x6d568820, - 0x3cf10: 0x6d571a20, 0x3cf11: 0x6d577a20, 0x3cf12: 0x6d580a20, 0x3cf13: 0x6dfbe420, - 0x3cf14: 0x6de4d620, 0x3cf15: 0x6de4d020, 0x3cf16: 0x6e0f0220, 0x3cf17: 0x6e0f1420, - 0x3cf18: 0x6c23a220, 0x3cf19: 0x6c239620, 0x3cf1a: 0x6c554420, 0x3cf1b: 0x6cb8ea20, - 0x3cf1c: 0x6cfc0420, 0x3cf1d: 0x6cce4a20, 0x3cf1e: 0x6d582220, 0x3cf1f: 0x6d838420, - 0x3cf20: 0x6e443420, 0x3cf21: 0x6da93020, 0x3cf22: 0x6cfd5420, 0x3cf23: 0x6c790420, - 0x3cf24: 0x6ccf7820, 0x3cf25: 0x6d2c1c20, 0x3cf26: 0x6c243420, 0x3cf27: 0x6cfdfc20, - 0x3cf28: 0x6de60820, 0x3cf29: 0x6c04fa20, 0x3cf2a: 0x6c246c20, 0x3cf2b: 0x6c3b5620, - 0x3cf2c: 0x6c79bc20, 0x3cf2d: 0x6c79bc20, 0x3cf2e: 0x6cfe7820, 0x3cf2f: 0x6cfea220, - 0x3cf30: 0x6d2d0620, 0x3cf31: 0x6d5a3420, 0x3cf32: 0x6de63620, 0x3cf33: 0x6c57d820, - 0x3cf34: 0x6cd1a420, 0x3cf35: 0x6c585a20, 0x3cf36: 0x6c3be620, 0x3cf37: 0x6cffb820, - 0x3cf38: 0x6ca3e620, 0x3cf39: 0x6cf15e20, 0x3cf3a: 0x6d00b220, 0x3cf3b: 0x6dab0a20, - 0x3cf3c: 0x6e104820, 0x3cf3d: 0x6c3c7020, 0x3cf3e: 0x6c594e20, 0x3cf3f: 0x6d868020, - // Block 0xf3d, offset 0x3cf40 - 0x3cf40: 0x6c3c8820, 0x3cf41: 0x6c3c8e20, 0x3cf42: 0x6c3c8c20, 0x3cf43: 0x6c59e420, - 0x3cf44: 0x6c7c7e20, 0x3cf45: 0x6c7c5e20, 0x3cf46: 0x6c7c6020, 0x3cf47: 0x6c7c6020, - 0x3cf48: 0x6cd36020, 0x3cf49: 0x6cd34020, 0x3cf4a: 0x6d5c4620, 0x3cf4b: 0x6d013a20, - 0x3cf4c: 0x6c13ee20, 0x3cf4d: 0x6c3cd620, 0x3cf4e: 0x6ca5f620, 0x3cf4f: 0x6d027820, - 0x3cf50: 0x6d5d2820, 0x3cf51: 0x6dac1020, 0x3cf52: 0x6c3d1e20, 0x3cf53: 0x6c7dd220, - 0x3cf54: 0x6cd4fa20, 0x3cf55: 0x6d30e620, 0x3cf56: 0x6d30ce20, 0x3cf57: 0x6c7e5e20, - 0x3cf58: 0x6c5b3020, 0x3cf59: 0x6d5e0420, 0x3cf5a: 0x6d314e20, 0x3cf5b: 0x6d885420, - 0x3cf5c: 0x6cd5c620, 0x3cf5d: 0x6d5eba20, 0x3cf5e: 0x6d5eba20, 0x3cf5f: 0x6d322e20, - 0x3cf60: 0x6d323420, 0x3cf61: 0x6d32de20, 0x3cf62: 0x6d5f3420, 0x3cf63: 0x6d894a20, - 0x3cf64: 0x6d5efe20, 0x3cf65: 0x6dae2820, 0x3cf66: 0x6d8a5e20, 0x3cf67: 0x6daece20, - 0x3cf68: 0x6daee820, 0x3cf69: 0x6dce7220, 0x3cf6a: 0x6c5c6620, 0x3cf6b: 0x6c3dc620, - 0x3cf6c: 0x6cd78420, 0x3cf6d: 0x6d608020, 0x3cf6e: 0x6d342620, 0x3cf6f: 0x6d60e220, - 0x3cf70: 0x6daf6c20, 0x3cf71: 0x6e399620, 0x3cf72: 0x6c80d020, 0x3cf73: 0x6d619e20, - 0x3cf74: 0x6cd86420, 0x3cf75: 0x6d073a20, 0x3cf76: 0x6d8bc020, 0x3cf77: 0x6e33b420, - 0x3cf78: 0x6caa3220, 0x3cf79: 0x6dcfe420, 0x3cf7a: 0x6c3e3620, 0x3cf7b: 0x6d624620, - 0x3cf7c: 0x6dd02420, 0x3cf7d: 0x6cd91e20, 0x3cf7e: 0x6d628a20, 0x3cf7f: 0x6db0a220, - // Block 0xf3e, offset 0x3cf80 - 0x3cf80: 0x6c21a420, 0x3cf81: 0x6c3e6a20, 0x3cf82: 0x6c3e9e20, 0x3cf83: 0x6c823c20, - 0x3cf84: 0x6cd97a20, 0x3cf85: 0x6cd98820, 0x3cf86: 0x6ceed220, 0x3cf87: 0x6d367820, - 0x3cf88: 0x6d369420, 0x3cf89: 0x6d538a20, 0x3cf8a: 0x6da5b220, 0x3cf8b: 0x6c82fe20, - 0x3cf8c: 0x6cda9c20, 0x3cf8d: 0x6d114c20, 0x3cf8e: 0x6cdac220, 0x3cf8f: 0x6c265420, - 0x3cf90: 0x6c264820, 0x3cf91: 0x6c3f5620, 0x3cf92: 0x6c185020, 0x3cf93: 0x6c3f7e20, - 0x3cf94: 0x6c3f8220, 0x3cf95: 0x6c3f9420, 0x3cf96: 0x6c5eb620, 0x3cf97: 0x6c5f1c20, - 0x3cf98: 0x6c5eb420, 0x3cf99: 0x6cac7420, 0x3cf9a: 0x6c840620, 0x3cf9b: 0x6cae1e20, - 0x3cf9c: 0x6cac7620, 0x3cf9d: 0x6cad0c20, 0x3cf9e: 0x6cdb6e20, 0x3cf9f: 0x6cdbee20, - 0x3cfa0: 0x6c84c420, 0x3cfa1: 0x6cdb3620, 0x3cfa2: 0x6cdb3a20, 0x3cfa3: 0x6cdb5820, - 0x3cfa4: 0x6cdc0c20, 0x3cfa5: 0x6d386a20, 0x3cfa6: 0x6d0a7820, 0x3cfa7: 0x6db1fa20, - 0x3cfa8: 0x6d0bbc20, 0x3cfa9: 0x6d642820, 0x3cfaa: 0x6d646c20, 0x3cfab: 0x6d90ac20, - 0x3cfac: 0x6d8e4820, 0x3cfad: 0x6db27620, 0x3cfae: 0x6e006820, 0x3cfaf: 0x6e128020, - 0x3cfb0: 0x6dd1a220, 0x3cfb1: 0x6e12c220, 0x3cfb2: 0x6e20a820, 0x3cfb3: 0x6c5f9620, - 0x3cfb4: 0x6d0bc020, 0x3cfb5: 0x6db39a20, 0x3cfb6: 0x6dd29a20, 0x3cfb7: 0x6c852c20, - 0x3cfb8: 0x6cdd7820, 0x3cfb9: 0x6d0c2420, 0x3cfba: 0x6cdd9c20, 0x3cfbb: 0x6d900a20, - 0x3cfbc: 0x6d3a1c20, 0x3cfbd: 0x6d3b0e20, 0x3cfbe: 0x6d901420, 0x3cfbf: 0x6d8ffa20, - // Block 0xf3f, offset 0x3cfc0 - 0x3cfc0: 0x6d668a20, 0x3cfc1: 0x6debe220, 0x3cfc2: 0x6debf020, 0x3cfc3: 0x6d912820, - 0x3cfc4: 0x6c14d220, 0x3cfc5: 0x6cafa620, 0x3cfc6: 0x6cdeaa20, 0x3cfc7: 0x6d0d0620, - 0x3cfc8: 0x6d3b2c20, 0x3cfc9: 0x6d3b6e20, 0x3cfca: 0x6c8c8420, 0x3cfcb: 0x6e430c20, - 0x3cfcc: 0x6c867c20, 0x3cfcd: 0x6cb06c20, 0x3cfce: 0x6cdf6620, 0x3cfcf: 0x6d0e4620, - 0x3cfd0: 0x6d925c20, 0x3cfd1: 0x6e2c4c20, 0x3cfd2: 0x6c26ec20, 0x3cfd3: 0x6cb18c20, - 0x3cfd4: 0x6cb1a420, 0x3cfd5: 0x6ce0de20, 0x3cfd6: 0x6e34b020, 0x3cfd7: 0x6c873020, - 0x3cfd8: 0x6d93fa20, 0x3cfd9: 0x6d76c820, 0x3cfda: 0x6ce1c620, 0x3cfdb: 0x6d101620, - 0x3cfdc: 0x6d103a20, 0x3cfdd: 0x6c458420, 0x3cfde: 0x6c879a20, 0x3cfdf: 0x6d951e20, - 0x3cfe0: 0x6d6cc620, 0x3cfe1: 0x6d95c220, 0x3cfe2: 0x6c153c20, 0x3cfe3: 0x6c625420, - 0x3cfe4: 0x6d121420, 0x3cfe5: 0x6cb46620, 0x3cfe6: 0x6d401a20, 0x3cfe7: 0x6d12da20, - 0x3cfe8: 0x6d6e0a20, 0x3cfe9: 0x6d6e0c20, 0x3cfea: 0x6d41c020, 0x3cfeb: 0x6df0d620, - 0x3cfec: 0x6e04bc20, 0x3cfed: 0x6e3ac220, 0x3cfee: 0x6ce59420, 0x3cfef: 0x6d420c20, - 0x3cff0: 0x6dbb3420, 0x3cff1: 0x6dbb7220, 0x3cff2: 0x6d6f8c20, 0x3cff3: 0x6ce69420, - 0x3cff4: 0x6d7a8620, 0x3cff5: 0x6dd9cc20, 0x3cff6: 0x6df20220, 0x3cff7: 0x6d706220, - 0x3cff8: 0x6dbc7220, 0x3cff9: 0x6df24220, 0x3cffa: 0x6e06d620, 0x3cffb: 0x6df2ca20, - 0x3cffc: 0x6ce74620, 0x3cffd: 0x6d712e20, 0x3cffe: 0x6d15fc20, 0x3cfff: 0x6d15fc20, - // Block 0xf40, offset 0x3d000 - 0x3d000: 0x6d711820, 0x3d001: 0x6d449820, 0x3d002: 0x6c8a6820, 0x3d003: 0x6d44d220, - 0x3d004: 0x6d9b2620, 0x3d005: 0x6df3ee20, 0x3d006: 0x6d457020, 0x3d007: 0x6dbe8420, - 0x3d008: 0x6d72ba20, 0x3d009: 0x6d9c9020, 0x3d00a: 0x6e08b620, 0x3d00b: 0x6e09e620, - 0x3d00c: 0x6d745c20, 0x3d00d: 0x6dc07220, 0x3d00e: 0x6e0a0620, 0x3d00f: 0x6dc13220, - 0x3d010: 0x6e0a7420, 0x3d011: 0x6e267a20, 0x3d012: 0x6e1a6a20, 0x3d013: 0x6e421620, - 0x3d014: 0x6d751a20, 0x3d015: 0x6cb79420, 0x3d016: 0x6e0b4220, 0x3d017: 0x6ce8be20, - 0x3d018: 0x6c42e420, 0x3d019: 0x6e1b6620, 0x3d01a: 0x6d75a020, 0x3d01b: 0x6ddfac20, - 0x3d01c: 0x6d478020, 0x3d01d: 0x6e1bc220, -} - -// mainLookup: 15936 entries, 31872 bytes -// Block 0 is the null block. -var mainLookup = [15936]uint16{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0x0e0: 0x1f, 0x0e1: 0x20, 0x0e2: 0x21, 0x0e3: 0x22, 0x0e4: 0x23, 0x0e5: 0x24, 0x0e6: 0x25, 0x0e7: 0x26, - 0x0e8: 0x27, 0x0e9: 0x28, 0x0ea: 0x29, 0x0eb: 0x2a, 0x0ec: 0x2b, 0x0ed: 0x2c, 0x0ee: 0x2d, 0x0ef: 0x2e, - 0x0f0: 0x2f, 0x0f1: 0x30, 0x0f2: 0x31, 0x0f3: 0x32, 0x0f4: 0x33, 0x0f5: 0x34, 0x0f6: 0x35, 0x0f7: 0x36, - 0x0f8: 0x37, 0x0f9: 0x38, 0x0fa: 0x39, 0x0fb: 0x3a, 0x0fc: 0x3b, 0x0fd: 0x3c, 0x0fe: 0x3d, 0x0ff: 0x3e, - // Block 0x4, offset 0x100 - 0x100: 0x3f, 0x101: 0x40, 0x102: 0x41, 0x103: 0x42, 0x104: 0x43, 0x105: 0x44, 0x106: 0x45, 0x107: 0x46, - 0x108: 0x47, 0x109: 0x48, 0x10a: 0x49, 0x10b: 0x4a, 0x10c: 0x4b, 0x10d: 0x4c, 0x10e: 0x4d, 0x10f: 0x4e, - 0x110: 0x4f, 0x111: 0x50, 0x112: 0x51, 0x113: 0x52, 0x114: 0x53, 0x115: 0x54, 0x116: 0x55, 0x117: 0x56, - 0x118: 0x57, 0x119: 0x58, 0x11a: 0x59, 0x11b: 0x5a, 0x11c: 0x5b, 0x11d: 0x5c, 0x11e: 0x5d, 0x11f: 0x5e, - 0x120: 0x5f, 0x121: 0x60, 0x122: 0x61, 0x123: 0x62, 0x124: 0x63, 0x125: 0x64, 0x126: 0x65, 0x127: 0x66, - 0x128: 0x67, 0x129: 0x68, 0x12a: 0x69, 0x12c: 0x6a, 0x12d: 0x6b, 0x12e: 0x6c, 0x12f: 0x6d, - 0x130: 0x6e, 0x131: 0x6f, 0x133: 0x70, 0x134: 0x71, 0x135: 0x72, 0x136: 0x73, 0x137: 0x74, - 0x138: 0x75, 0x139: 0x76, 0x13a: 0x77, 0x13b: 0x78, 0x13c: 0x79, 0x13d: 0x7a, 0x13e: 0x7b, 0x13f: 0x7c, - // Block 0x5, offset 0x140 - 0x140: 0x7d, 0x141: 0x7e, 0x142: 0x7f, 0x143: 0x80, 0x144: 0x81, 0x145: 0x82, 0x146: 0x83, 0x147: 0x84, - 0x148: 0x85, 0x149: 0x86, 0x14a: 0x87, 0x14b: 0x88, 0x14c: 0x89, 0x14d: 0x8a, 0x14e: 0x8b, 0x14f: 0x8c, - 0x150: 0x8d, 0x151: 0x8e, 0x152: 0x8f, 0x153: 0x90, 0x154: 0x91, 0x155: 0x92, 0x156: 0x93, 0x157: 0x94, - 0x158: 0x95, 0x159: 0x96, 0x15a: 0x97, 0x15b: 0x98, 0x15c: 0x99, 0x15d: 0x9a, 0x15e: 0x9b, 0x15f: 0x9c, - 0x160: 0x9d, 0x161: 0x9e, 0x162: 0x9f, 0x163: 0xa0, 0x164: 0xa1, 0x165: 0xa2, 0x166: 0xa3, 0x167: 0xa4, - 0x168: 0xa5, 0x169: 0xa6, 0x16a: 0xa7, 0x16b: 0xa8, 0x16c: 0xa9, 0x16d: 0xaa, - 0x170: 0xab, 0x171: 0xac, 0x172: 0xad, 0x173: 0xae, 0x174: 0xaf, 0x175: 0xb0, 0x176: 0xb1, 0x177: 0xb2, - 0x178: 0xb3, 0x17a: 0xb4, 0x17b: 0xb5, 0x17c: 0xb6, 0x17d: 0xb7, 0x17e: 0xb8, 0x17f: 0xb9, - // Block 0x6, offset 0x180 - 0x180: 0xba, 0x181: 0xbb, 0x182: 0xbc, 0x183: 0xbd, 0x184: 0xbe, 0x185: 0xbf, 0x186: 0xc0, 0x187: 0xc1, - 0x188: 0xc2, 0x189: 0xc3, 0x18a: 0xc4, 0x18b: 0xc5, 0x18c: 0xc6, 0x18d: 0xc7, 0x18e: 0xc8, 0x18f: 0xc9, - // Block 0x7, offset 0x1c0 - 0x1f7: 0xca, - // Block 0x8, offset 0x200 - 0x200: 0xcb, 0x201: 0xcc, 0x202: 0xcd, 0x203: 0xce, 0x204: 0xcf, 0x205: 0xd0, 0x206: 0xd1, 0x207: 0xd2, - 0x208: 0xd3, 0x209: 0xd4, 0x20a: 0xd5, 0x20b: 0xd6, 0x20c: 0xd7, 0x20d: 0xd8, 0x20e: 0xd9, 0x20f: 0xda, - 0x210: 0xdb, 0x211: 0xdc, 0x212: 0xdd, 0x213: 0xde, 0x214: 0xdf, 0x215: 0xe0, 0x216: 0xe1, 0x217: 0xe2, - 0x218: 0xe3, 0x219: 0xe4, 0x21a: 0xe5, 0x21b: 0xe6, 0x21c: 0xe7, 0x21d: 0xe8, 0x21e: 0xe9, 0x21f: 0xea, - 0x220: 0xeb, 0x221: 0xec, 0x222: 0xed, 0x223: 0xee, 0x224: 0xef, 0x225: 0xf0, 0x226: 0xf1, 0x227: 0xf2, - 0x228: 0xf3, 0x229: 0xf4, 0x22a: 0xf5, 0x22b: 0xf6, 0x22c: 0xf7, 0x22f: 0xf8, - // Block 0x9, offset 0x240 - 0x25e: 0xf9, 0x25f: 0xfa, - // Block 0xa, offset 0x280 - 0x2a4: 0xfb, 0x2a5: 0xfc, 0x2a6: 0xfd, 0x2a7: 0xfe, - 0x2a8: 0xff, 0x2a9: 0x100, 0x2aa: 0x101, 0x2ab: 0x102, 0x2ac: 0x103, 0x2ad: 0x104, 0x2ae: 0x105, 0x2af: 0x106, - 0x2b0: 0x107, 0x2b1: 0x108, 0x2b2: 0x109, 0x2b3: 0x10a, 0x2b4: 0x10b, 0x2b5: 0x10c, 0x2b6: 0x10d, 0x2b7: 0x10e, - 0x2b8: 0x10f, 0x2b9: 0x110, 0x2ba: 0x111, 0x2bb: 0x112, 0x2bc: 0x113, 0x2bd: 0x114, 0x2be: 0x115, 0x2bf: 0x116, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x117, 0x2c1: 0x118, 0x2c2: 0x119, 0x2c3: 0x11a, 0x2c4: 0x11b, 0x2c5: 0x11c, 0x2c6: 0x11d, 0x2c7: 0x11e, - 0x2ca: 0x11f, 0x2cb: 0x120, 0x2cc: 0x121, 0x2cd: 0x122, 0x2ce: 0x123, 0x2cf: 0x124, - 0x2d0: 0x125, 0x2d1: 0x126, 0x2d2: 0x127, - 0x2e0: 0x128, 0x2e1: 0x129, 0x2e4: 0x12a, 0x2e6: 0x12b, - 0x2e8: 0x12c, 0x2e9: 0x12d, 0x2ec: 0x12e, 0x2ed: 0x12f, - 0x2f0: 0x130, 0x2f1: 0x131, - 0x2f9: 0x132, - // Block 0xc, offset 0x300 - 0x300: 0x133, 0x301: 0x134, 0x302: 0x135, 0x303: 0x136, 0x304: 0x137, 0x305: 0x138, 0x306: 0x139, 0x307: 0x13a, - 0x31a: 0x13b, 0x31b: 0x13c, - // Block 0xd, offset 0x340 - 0x340: 0x13d, 0x341: 0x13e, 0x342: 0x13f, 0x343: 0x140, 0x344: 0x141, 0x345: 0x142, 0x346: 0x143, 0x347: 0x144, - 0x348: 0x145, 0x349: 0x146, 0x34a: 0x147, 0x34b: 0x148, 0x34c: 0x149, 0x34d: 0x14a, - 0x350: 0x14b, 0x351: 0x14c, - // Block 0xe, offset 0x380 - 0x380: 0x14d, 0x381: 0x14e, 0x382: 0x14f, 0x383: 0x150, 0x384: 0x151, 0x385: 0x152, 0x386: 0x153, 0x387: 0x154, - 0x388: 0x155, 0x389: 0x156, 0x38a: 0x157, 0x38b: 0x158, 0x38c: 0x159, 0x38d: 0x15a, 0x38e: 0x15b, 0x38f: 0x15c, - 0x390: 0x15d, - // Block 0xf, offset 0x3c0 - 0x3e0: 0x15e, 0x3e1: 0x15f, 0x3e2: 0x160, 0x3e3: 0x161, 0x3e4: 0x162, 0x3e5: 0x163, 0x3e6: 0x164, 0x3e7: 0x165, - 0x3e8: 0x166, - 0x3fc: 0x167, 0x3fd: 0x168, 0x3fe: 0x169, - // Block 0x10, offset 0x400 - 0x400: 0x16a, - // Block 0x11, offset 0x440 - 0x440: 0x16b, 0x441: 0x16c, 0x442: 0x16d, 0x443: 0x16e, 0x444: 0x16f, 0x445: 0x170, 0x446: 0x171, 0x447: 0x172, - 0x448: 0x173, 0x449: 0x174, 0x44c: 0x175, 0x44d: 0x176, - 0x450: 0x177, 0x451: 0x178, 0x452: 0x179, 0x453: 0x17a, 0x454: 0x17b, 0x455: 0x17c, 0x456: 0x17d, 0x457: 0x17e, - 0x458: 0x17f, 0x459: 0x180, 0x45a: 0x181, 0x45b: 0x182, 0x45c: 0x183, 0x45d: 0x184, 0x45e: 0x185, 0x45f: 0x186, - // Block 0x12, offset 0x480 - 0x4b8: 0x187, 0x4b9: 0x188, 0x4ba: 0x189, 0x4bb: 0x18a, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x18b, 0x4c1: 0x18c, 0x4c2: 0x18d, 0x4c3: 0x18e, 0x4c4: 0x18f, 0x4c5: 0x190, 0x4c6: 0x191, 0x4c7: 0x192, - 0x4c8: 0x193, 0x4c9: 0x194, 0x4cc: 0x195, 0x4cd: 0x196, 0x4ce: 0x197, 0x4cf: 0x198, - 0x4d0: 0x199, 0x4d1: 0x19a, 0x4d2: 0x19b, 0x4d3: 0x19c, 0x4d4: 0x19d, 0x4d5: 0x19e, 0x4d7: 0x19f, - 0x4d8: 0x1a0, 0x4d9: 0x1a1, 0x4da: 0x1a2, 0x4db: 0x1a3, 0x4dc: 0x1a4, 0x4dd: 0x1a5, - // Block 0x14, offset 0x500 - 0x520: 0x1a6, 0x521: 0x1a7, 0x522: 0x1a8, 0x523: 0x1a9, 0x524: 0x1aa, 0x525: 0x1ab, 0x526: 0x1ac, 0x527: 0x1ad, - 0x528: 0x1ae, - // Block 0x15, offset 0x540 - 0x550: 0x09, 0x551: 0x0a, 0x552: 0x0b, 0x553: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, - // Block 0x16, offset 0x580 - 0x580: 0x1af, 0x581: 0x1b0, 0x584: 0x1b0, 0x585: 0x1b0, 0x586: 0x1b0, 0x587: 0x1b1, - // Block 0x17, offset 0x5c0 - 0x5e0: 0x14, - // Block 0x18, offset 0x600 - 0x602: 0x01, 0x603: 0x02, 0x604: 0x03, 0x605: 0x04, 0x606: 0x05, 0x607: 0x06, - 0x608: 0x07, 0x609: 0x08, 0x60a: 0x09, 0x60b: 0x0a, 0x60c: 0x0b, 0x60d: 0x0c, 0x60e: 0x0d, 0x60f: 0x0e, - 0x610: 0x0f, 0x611: 0x10, 0x612: 0x11, 0x613: 0x12, 0x614: 0x13, 0x615: 0x14, 0x616: 0x15, 0x617: 0x16, - 0x618: 0x17, 0x619: 0x18, 0x61a: 0x19, 0x61b: 0x1a, 0x61c: 0x1b, 0x61d: 0x1c, 0x61e: 0x1d, 0x61f: 0x1e, - 0x620: 0x01, 0x621: 0x02, 0x622: 0x03, 0x623: 0x04, 0x624: 0x05, - 0x62a: 0x06, 0x62d: 0x07, 0x62f: 0x08, - 0x630: 0x13, 0x633: 0x15, - // Block 0x19, offset 0x640 - 0x640: 0x3f, 0x641: 0x40, 0x642: 0x41, 0x643: 0x42, 0x644: 0x43, 0x645: 0x44, 0x646: 0x45, 0x647: 0x46, - 0x648: 0x47, 0x649: 0x48, 0x64a: 0x49, 0x64b: 0x4a, 0x64c: 0x4b, 0x64d: 0x4c, 0x64e: 0x4d, 0x64f: 0x4e, - 0x650: 0x4f, 0x651: 0x50, 0x652: 0x51, 0x653: 0x52, 0x654: 0x53, 0x655: 0x54, 0x656: 0x55, 0x657: 0x56, - 0x658: 0x57, 0x659: 0x58, 0x65a: 0x59, 0x65b: 0x5a, 0x65c: 0x5b, 0x65d: 0x5c, 0x65e: 0x5d, 0x65f: 0x5e, - 0x660: 0x5f, 0x661: 0x60, 0x662: 0x61, 0x663: 0x62, 0x664: 0x63, 0x665: 0x64, 0x666: 0x65, 0x667: 0x66, - 0x668: 0x67, 0x669: 0x68, 0x66a: 0x69, 0x66c: 0x6a, 0x66d: 0x6b, 0x66e: 0x6c, 0x66f: 0x6d, - 0x670: 0x6e, 0x671: 0x6f, 0x673: 0x70, 0x674: 0x71, 0x675: 0x72, 0x676: 0x73, 0x677: 0x74, - 0x678: 0x1ba, 0x679: 0x1bb, 0x67a: 0x1bc, 0x67b: 0x1bd, 0x67c: 0x79, 0x67d: 0x7a, 0x67e: 0x7b, 0x67f: 0x7c, - // Block 0x1a, offset 0x680 - 0x680: 0x7d, 0x681: 0x7e, 0x682: 0x7f, 0x683: 0x80, 0x684: 0x1be, 0x685: 0x1bf, 0x686: 0x83, 0x687: 0x84, - 0x688: 0x85, 0x689: 0x86, 0x68a: 0x87, 0x68b: 0x88, 0x68c: 0x89, 0x68d: 0x8a, 0x68e: 0x8b, 0x68f: 0x8c, - 0x690: 0x8d, 0x691: 0x8e, 0x692: 0x1c0, 0x693: 0x90, 0x694: 0x91, 0x695: 0x92, 0x696: 0x93, 0x697: 0x94, - 0x698: 0x95, 0x699: 0x96, 0x69a: 0x97, 0x69b: 0x98, 0x69c: 0x99, 0x69d: 0x9a, 0x69e: 0x9b, 0x69f: 0x9c, - 0x6a0: 0x9d, 0x6a1: 0x9e, 0x6a2: 0x9f, 0x6a3: 0xa0, 0x6a4: 0xa1, 0x6a5: 0xa2, 0x6a6: 0xa3, 0x6a7: 0xa4, - 0x6a8: 0xa5, 0x6a9: 0xa6, 0x6aa: 0xa7, 0x6ab: 0xa8, 0x6ac: 0xa9, 0x6ad: 0xaa, - 0x6b0: 0xab, 0x6b1: 0xac, 0x6b2: 0xad, 0x6b3: 0xae, 0x6b4: 0xaf, 0x6b5: 0xb0, 0x6b6: 0xb1, 0x6b7: 0xb2, - 0x6b8: 0xb3, 0x6ba: 0xb4, 0x6bb: 0xb5, 0x6bc: 0xb6, 0x6bd: 0xb7, 0x6be: 0xb8, 0x6bf: 0xb9, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0xba, 0x6c1: 0xbb, 0x6c2: 0xbc, 0x6c3: 0xbd, 0x6c4: 0xbe, 0x6c5: 0xbf, 0x6c6: 0xc0, 0x6c7: 0xc1, - 0x6c8: 0xc2, 0x6c9: 0xc3, 0x6ca: 0xc4, 0x6cb: 0x1c1, 0x6cc: 0xc6, 0x6cd: 0x1c2, 0x6ce: 0x1c3, 0x6cf: 0x1c4, - // Block 0x1c, offset 0x700 - 0x724: 0xfb, 0x725: 0xfc, 0x726: 0xfd, 0x727: 0xfe, - 0x728: 0xff, 0x729: 0x100, 0x72a: 0x101, 0x72b: 0x102, 0x72c: 0x1c5, 0x72d: 0x104, 0x72e: 0x105, 0x72f: 0x106, - 0x730: 0x107, 0x731: 0x108, 0x732: 0x109, 0x733: 0x10a, 0x734: 0x10b, 0x735: 0x10c, 0x736: 0x10d, 0x737: 0x10e, - 0x738: 0x10f, 0x739: 0x110, 0x73a: 0x111, 0x73b: 0x112, 0x73c: 0x113, 0x73d: 0x114, 0x73e: 0x115, 0x73f: 0x116, - // Block 0x1d, offset 0x740 - 0x740: 0x18b, 0x741: 0x18c, 0x742: 0x18d, 0x743: 0x18e, 0x744: 0x1c6, 0x745: 0x1c7, 0x746: 0x191, 0x747: 0x192, - 0x748: 0x193, 0x749: 0x194, 0x74c: 0x195, 0x74d: 0x196, 0x74e: 0x197, 0x74f: 0x198, - 0x750: 0x199, 0x751: 0x19a, 0x752: 0x19b, 0x753: 0x19c, 0x754: 0x19d, 0x755: 0x19e, 0x757: 0x19f, - 0x758: 0x1a0, 0x759: 0x1a1, 0x75a: 0x1a2, 0x75b: 0x1a3, 0x75c: 0x1a4, 0x75d: 0x1a5, - // Block 0x1e, offset 0x780 - 0x790: 0x09, 0x791: 0x0a, 0x792: 0x0b, 0x793: 0x0c, 0x796: 0x0d, - 0x79b: 0x0e, 0x79d: 0x0f, 0x79e: 0x10, 0x79f: 0x1b, - 0x7af: 0x12, - // Block 0x1f, offset 0x7c0 - 0x7c2: 0x01, 0x7c3: 0x1b4, 0x7c4: 0x1b5, 0x7c5: 0x1b6, 0x7c6: 0x1b7, 0x7c7: 0x1b8, - 0x7c8: 0x1b9, 0x7c9: 0x08, 0x7ca: 0x09, 0x7cb: 0x0a, 0x7cc: 0x0b, 0x7cd: 0x0c, 0x7ce: 0x0d, 0x7cf: 0x0e, - 0x7d0: 0x0f, 0x7d1: 0x10, 0x7d2: 0x11, 0x7d3: 0x12, 0x7d4: 0x13, 0x7d5: 0x14, 0x7d6: 0x15, 0x7d7: 0x16, - 0x7d8: 0x17, 0x7d9: 0x18, 0x7da: 0x19, 0x7db: 0x1a, 0x7dc: 0x1b, 0x7dd: 0x1c, 0x7de: 0x1d, 0x7df: 0x1e, - 0x7e0: 0x01, 0x7e1: 0x17, 0x7e2: 0x18, 0x7e3: 0x19, 0x7e4: 0x05, - 0x7ea: 0x06, 0x7ed: 0x07, 0x7ef: 0x1a, - 0x7f0: 0x1c, 0x7f3: 0x15, - // Block 0x20, offset 0x800 - 0x802: 0x01, 0x803: 0x02, 0x804: 0x03, 0x805: 0x1c8, 0x806: 0x05, 0x807: 0x06, - 0x808: 0x07, 0x809: 0x08, 0x80a: 0x09, 0x80b: 0x0a, 0x80c: 0x0b, 0x80d: 0x0c, 0x80e: 0x0d, 0x80f: 0x0e, - 0x810: 0x0f, 0x811: 0x10, 0x812: 0x11, 0x813: 0x12, 0x814: 0x13, 0x815: 0x14, 0x816: 0x15, 0x817: 0x16, - 0x818: 0x17, 0x819: 0x18, 0x81a: 0x19, 0x81b: 0x1a, 0x81c: 0x1b, 0x81d: 0x1c, 0x81e: 0x1d, 0x81f: 0x1e, - 0x820: 0x01, 0x821: 0x02, 0x822: 0x03, 0x823: 0x04, 0x824: 0x05, - 0x82a: 0x06, 0x82d: 0x07, 0x82f: 0x08, - 0x830: 0x13, 0x833: 0x15, - // Block 0x21, offset 0x840 - 0x864: 0xfb, 0x865: 0xfc, 0x866: 0xfd, 0x867: 0xfe, - 0x868: 0xff, 0x869: 0x100, 0x86a: 0x101, 0x86b: 0x102, 0x86c: 0x103, 0x86d: 0x104, 0x86e: 0x105, 0x86f: 0x1cb, - 0x870: 0x1cc, 0x871: 0x1cd, 0x872: 0x1ce, 0x873: 0x1cf, 0x874: 0x1d0, 0x875: 0x10c, 0x876: 0x10d, 0x877: 0x10e, - 0x878: 0x10f, 0x879: 0x110, 0x87a: 0x1d1, 0x87b: 0x1d2, 0x87c: 0x113, 0x87d: 0x114, 0x87e: 0x115, 0x87f: 0x116, - // Block 0x22, offset 0x880 - 0x882: 0x01, 0x883: 0x02, 0x884: 0x03, 0x885: 0x04, 0x886: 0x05, 0x887: 0x06, - 0x888: 0x07, 0x889: 0x08, 0x88a: 0x09, 0x88b: 0x0a, 0x88c: 0x0b, 0x88d: 0x0c, 0x88e: 0x0d, 0x88f: 0x0e, - 0x890: 0x0f, 0x891: 0x10, 0x892: 0x11, 0x893: 0x12, 0x894: 0x13, 0x895: 0x14, 0x896: 0x15, 0x897: 0x16, - 0x898: 0x1c9, 0x899: 0x1ca, 0x89a: 0x19, 0x89b: 0x1a, 0x89c: 0x1b, 0x89d: 0x1c, 0x89e: 0x1d, 0x89f: 0x1e, - 0x8a0: 0x01, 0x8a1: 0x02, 0x8a2: 0x03, 0x8a3: 0x04, 0x8a4: 0x05, - 0x8aa: 0x06, 0x8ad: 0x07, 0x8af: 0x1f, - 0x8b0: 0x13, 0x8b3: 0x15, - // Block 0x23, offset 0x8c0 - 0x8e0: 0x1f, 0x8e1: 0x20, 0x8e2: 0x21, 0x8e3: 0x22, 0x8e4: 0x23, 0x8e5: 0x24, 0x8e6: 0x1d3, 0x8e7: 0x1d4, - 0x8e8: 0x27, 0x8e9: 0x28, 0x8ea: 0x29, 0x8eb: 0x2a, 0x8ec: 0x2b, 0x8ed: 0x2c, 0x8ee: 0x2d, 0x8ef: 0x2e, - 0x8f0: 0x2f, 0x8f1: 0x30, 0x8f2: 0x31, 0x8f3: 0x32, 0x8f4: 0x33, 0x8f5: 0x34, 0x8f6: 0x35, 0x8f7: 0x36, - 0x8f8: 0x37, 0x8f9: 0x38, 0x8fa: 0x39, 0x8fb: 0x3a, 0x8fc: 0x3b, 0x8fd: 0x3c, 0x8fe: 0x3d, 0x8ff: 0x3e, - // Block 0x24, offset 0x900 - 0x902: 0x01, 0x903: 0x02, 0x904: 0x03, 0x905: 0x04, 0x906: 0x05, 0x907: 0x06, - 0x908: 0x07, 0x909: 0x08, 0x90a: 0x09, 0x90b: 0x0a, 0x90c: 0x0b, 0x90d: 0x0c, 0x90e: 0x0d, 0x90f: 0x0e, - 0x910: 0x0f, 0x911: 0x10, 0x912: 0x11, 0x913: 0x12, 0x914: 0x13, 0x915: 0x14, 0x916: 0x15, 0x917: 0x16, - 0x918: 0x17, 0x919: 0x18, 0x91a: 0x19, 0x91b: 0x1a, 0x91c: 0x1b, 0x91d: 0x1c, 0x91e: 0x1d, 0x91f: 0x1e, - 0x920: 0x21, 0x921: 0x02, 0x922: 0x03, 0x923: 0x04, 0x924: 0x05, - 0x92a: 0x06, 0x92d: 0x07, 0x92f: 0x08, - 0x930: 0x13, 0x933: 0x15, - // Block 0x25, offset 0x940 - 0x940: 0x3f, 0x941: 0x40, 0x942: 0x41, 0x943: 0x42, 0x944: 0x43, 0x945: 0x44, 0x946: 0x45, 0x947: 0x46, - 0x948: 0x47, 0x949: 0x48, 0x94a: 0x49, 0x94b: 0x4a, 0x94c: 0x4b, 0x94d: 0x4c, 0x94e: 0x4d, 0x94f: 0x4e, - 0x950: 0x4f, 0x951: 0x50, 0x952: 0x51, 0x953: 0x52, 0x954: 0x53, 0x955: 0x54, 0x956: 0x55, 0x957: 0x56, - 0x958: 0x57, 0x959: 0x58, 0x95a: 0x59, 0x95b: 0x5a, 0x95c: 0x5b, 0x95d: 0x5c, 0x95e: 0x5d, 0x95f: 0x5e, - 0x960: 0x5f, 0x961: 0x60, 0x962: 0x61, 0x963: 0x62, 0x964: 0x63, 0x965: 0x64, 0x966: 0x65, 0x967: 0x66, - 0x968: 0x67, 0x969: 0x68, 0x96a: 0x69, 0x96c: 0x6a, 0x96d: 0x6b, 0x96e: 0x6c, 0x96f: 0x6d, - 0x970: 0x6e, 0x971: 0x6f, 0x973: 0x70, 0x974: 0x71, 0x975: 0x72, 0x976: 0x73, 0x977: 0x74, - 0x978: 0x1de, 0x979: 0x1df, 0x97a: 0x1e0, 0x97b: 0x1e1, 0x97c: 0x79, 0x97d: 0x7a, 0x97e: 0x7b, 0x97f: 0x7c, - // Block 0x26, offset 0x980 - 0x980: 0x7d, 0x981: 0x7e, 0x982: 0x7f, 0x983: 0x80, 0x984: 0x81, 0x985: 0x1e2, 0x986: 0x83, 0x987: 0x84, - 0x988: 0x85, 0x989: 0x86, 0x98a: 0x87, 0x98b: 0x88, 0x98c: 0x89, 0x98d: 0x8a, 0x98e: 0x8b, 0x98f: 0x8c, - 0x990: 0x8d, 0x991: 0x8e, 0x992: 0x1e3, 0x993: 0x90, 0x994: 0x91, 0x995: 0x92, 0x996: 0x93, 0x997: 0x94, - 0x998: 0x95, 0x999: 0x96, 0x99a: 0x97, 0x99b: 0x98, 0x99c: 0x99, 0x99d: 0x9a, 0x99e: 0x9b, 0x99f: 0x9c, - 0x9a0: 0x9d, 0x9a1: 0x9e, 0x9a2: 0x9f, 0x9a3: 0xa0, 0x9a4: 0xa1, 0x9a5: 0xa2, 0x9a6: 0xa3, 0x9a7: 0xa4, - 0x9a8: 0xa5, 0x9a9: 0xa6, 0x9aa: 0xa7, 0x9ab: 0xa8, 0x9ac: 0xa9, 0x9ad: 0xaa, - 0x9b0: 0xab, 0x9b1: 0xac, 0x9b2: 0xad, 0x9b3: 0xae, 0x9b4: 0xaf, 0x9b5: 0xb0, 0x9b6: 0xb1, 0x9b7: 0xb2, - 0x9b8: 0xb3, 0x9ba: 0xb4, 0x9bb: 0xb5, 0x9bc: 0xb6, 0x9bd: 0xb7, 0x9be: 0xb8, 0x9bf: 0xb9, - // Block 0x27, offset 0x9c0 - 0x9c0: 0xba, 0x9c1: 0xbb, 0x9c2: 0xbc, 0x9c3: 0xbd, 0x9c4: 0xbe, 0x9c5: 0xbf, 0x9c6: 0xc0, 0x9c7: 0xc1, - 0x9c8: 0xc2, 0x9c9: 0xc3, 0x9ca: 0xc4, 0x9cb: 0xc5, 0x9cc: 0xc6, 0x9cd: 0x1e4, 0x9ce: 0xc8, 0x9cf: 0x1e5, - // Block 0x28, offset 0xa00 - 0xa00: 0x18b, 0xa01: 0x18c, 0xa02: 0x18d, 0xa03: 0x18e, 0xa04: 0x1e6, 0xa05: 0x190, 0xa06: 0x191, 0xa07: 0x192, - 0xa08: 0x193, 0xa09: 0x194, 0xa0c: 0x195, 0xa0d: 0x196, 0xa0e: 0x197, 0xa0f: 0x198, - 0xa10: 0x199, 0xa11: 0x19a, 0xa12: 0x19b, 0xa13: 0x19c, 0xa14: 0x19d, 0xa15: 0x19e, 0xa17: 0x19f, - 0xa18: 0x1a0, 0xa19: 0x1a1, 0xa1a: 0x1a2, 0xa1b: 0x1a3, 0xa1c: 0x1a4, 0xa1d: 0x1a5, - // Block 0x29, offset 0xa40 - 0xa50: 0x09, 0xa51: 0x0a, 0xa52: 0x0b, 0xa53: 0x0c, 0xa56: 0x0d, - 0xa5b: 0x0e, 0xa5d: 0x0f, 0xa5e: 0x10, 0xa5f: 0x26, - 0xa6f: 0x12, - // Block 0x2a, offset 0xa80 - 0xa82: 0x01, 0xa83: 0x1d7, 0xa84: 0x1d8, 0xa85: 0x1d9, 0xa86: 0x1da, 0xa87: 0x1db, - 0xa88: 0x1dc, 0xa89: 0x1dd, 0xa8a: 0x09, 0xa8b: 0x0a, 0xa8c: 0x0b, 0xa8d: 0x0c, 0xa8e: 0x0d, 0xa8f: 0x0e, - 0xa90: 0x0f, 0xa91: 0x10, 0xa92: 0x11, 0xa93: 0x12, 0xa94: 0x13, 0xa95: 0x14, 0xa96: 0x15, 0xa97: 0x16, - 0xa98: 0x17, 0xa99: 0x18, 0xa9a: 0x19, 0xa9b: 0x1a, 0xa9c: 0x1b, 0xa9d: 0x1c, 0xa9e: 0x1d, 0xa9f: 0x1e, - 0xaa0: 0x01, 0xaa1: 0x23, 0xaa2: 0x24, 0xaa3: 0x25, 0xaa4: 0x05, - 0xaaa: 0x06, 0xaad: 0x07, 0xaaf: 0x08, - 0xab0: 0x27, 0xab3: 0x15, - // Block 0x2b, offset 0xac0 - 0xac2: 0x01, 0xac3: 0x02, 0xac4: 0x03, 0xac5: 0x04, 0xac6: 0x05, 0xac7: 0x06, - 0xac8: 0x07, 0xac9: 0x08, 0xaca: 0x09, 0xacb: 0x0a, 0xacc: 0x0b, 0xacd: 0x0c, 0xace: 0x0d, 0xacf: 0x0e, - 0xad0: 0x1e7, 0xad1: 0x1e8, 0xad2: 0x11, 0xad3: 0x12, 0xad4: 0x13, 0xad5: 0x14, 0xad6: 0x15, 0xad7: 0x16, - 0xad8: 0x17, 0xad9: 0x18, 0xada: 0x19, 0xadb: 0x1a, 0xadc: 0x1b, 0xadd: 0x1c, 0xade: 0x1d, 0xadf: 0x1e, - 0xae0: 0x01, 0xae1: 0x02, 0xae2: 0x03, 0xae3: 0x04, 0xae4: 0x05, - 0xaea: 0x06, 0xaed: 0x07, 0xaef: 0x08, - 0xaf0: 0x13, 0xaf3: 0x15, - // Block 0x2c, offset 0xb00 - 0xb20: 0x1f, 0xb21: 0x20, 0xb22: 0x21, 0xb23: 0x22, 0xb24: 0x23, 0xb25: 0x24, 0xb26: 0x1e9, 0xb27: 0x26, - 0xb28: 0x27, 0xb29: 0x28, 0xb2a: 0x29, 0xb2b: 0x2a, 0xb2c: 0x2b, 0xb2d: 0x2c, 0xb2e: 0x2d, 0xb2f: 0x2e, - 0xb30: 0x2f, 0xb31: 0x30, 0xb32: 0x31, 0xb33: 0x32, 0xb34: 0x33, 0xb35: 0x34, 0xb36: 0x35, 0xb37: 0x36, - 0xb38: 0x37, 0xb39: 0x38, 0xb3a: 0x39, 0xb3b: 0x3a, 0xb3c: 0x3b, 0xb3d: 0x3c, 0xb3e: 0x3d, 0xb3f: 0x3e, - // Block 0x2d, offset 0xb40 - 0xb42: 0x01, 0xb43: 0x02, 0xb44: 0x03, 0xb45: 0x04, 0xb46: 0x05, 0xb47: 0x06, - 0xb48: 0x07, 0xb49: 0x08, 0xb4a: 0x09, 0xb4b: 0x0a, 0xb4c: 0x0b, 0xb4d: 0x0c, 0xb4e: 0x0d, 0xb4f: 0x0e, - 0xb50: 0x0f, 0xb51: 0x10, 0xb52: 0x11, 0xb53: 0x12, 0xb54: 0x13, 0xb55: 0x14, 0xb56: 0x15, 0xb57: 0x16, - 0xb58: 0x17, 0xb59: 0x18, 0xb5a: 0x19, 0xb5b: 0x1a, 0xb5c: 0x1b, 0xb5d: 0x1c, 0xb5e: 0x1d, 0xb5f: 0x1e, - 0xb60: 0x2a, 0xb61: 0x02, 0xb62: 0x03, 0xb63: 0x04, 0xb64: 0x05, - 0xb6a: 0x06, 0xb6d: 0x07, 0xb6f: 0x08, - 0xb70: 0x13, 0xb73: 0x15, - // Block 0x2e, offset 0xb80 - 0xb82: 0x01, 0xb83: 0x02, 0xb84: 0x1ec, 0xb85: 0x1ed, 0xb86: 0x05, 0xb87: 0x06, - 0xb88: 0x07, 0xb89: 0x08, 0xb8a: 0x09, 0xb8b: 0x0a, 0xb8c: 0x0b, 0xb8d: 0x0c, 0xb8e: 0x0d, 0xb8f: 0x0e, - 0xb90: 0x0f, 0xb91: 0x10, 0xb92: 0x11, 0xb93: 0x12, 0xb94: 0x13, 0xb95: 0x14, 0xb96: 0x15, 0xb97: 0x16, - 0xb98: 0x17, 0xb99: 0x18, 0xb9a: 0x19, 0xb9b: 0x1a, 0xb9c: 0x1b, 0xb9d: 0x1c, 0xb9e: 0x1d, 0xb9f: 0x1e, - 0xba0: 0x01, 0xba1: 0x02, 0xba2: 0x03, 0xba3: 0x04, 0xba4: 0x05, - 0xbaa: 0x06, 0xbad: 0x07, 0xbaf: 0x08, - 0xbb0: 0x13, 0xbb3: 0x15, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x3f, 0xbc1: 0x40, 0xbc2: 0x41, 0xbc3: 0x42, 0xbc4: 0x43, 0xbc5: 0x44, 0xbc6: 0x45, 0xbc7: 0x46, - 0xbc8: 0x47, 0xbc9: 0x48, 0xbca: 0x49, 0xbcb: 0x4a, 0xbcc: 0x4b, 0xbcd: 0x4c, 0xbce: 0x4d, 0xbcf: 0x4e, - 0xbd0: 0x4f, 0xbd1: 0x50, 0xbd2: 0x51, 0xbd3: 0x52, 0xbd4: 0x53, 0xbd5: 0x54, 0xbd6: 0x55, 0xbd7: 0x56, - 0xbd8: 0x57, 0xbd9: 0x58, 0xbda: 0x59, 0xbdb: 0x5a, 0xbdc: 0x5b, 0xbdd: 0x5c, 0xbde: 0x5d, 0xbdf: 0x5e, - 0xbe0: 0x5f, 0xbe1: 0x60, 0xbe2: 0x61, 0xbe3: 0x62, 0xbe4: 0x63, 0xbe5: 0x64, 0xbe6: 0x65, 0xbe7: 0x66, - 0xbe8: 0x67, 0xbe9: 0x68, 0xbea: 0x69, 0xbec: 0x6a, 0xbed: 0x6b, 0xbee: 0x6c, 0xbef: 0x6d, - 0xbf0: 0x6e, 0xbf1: 0x6f, 0xbf3: 0x70, 0xbf4: 0x71, 0xbf5: 0x72, 0xbf6: 0x73, 0xbf7: 0x74, - 0xbf8: 0x75, 0xbf9: 0x1f2, 0xbfa: 0x77, 0xbfb: 0x78, 0xbfc: 0x79, 0xbfd: 0x7a, 0xbfe: 0x7b, 0xbff: 0x7c, - // Block 0x30, offset 0xc00 - 0xc02: 0x01, 0xc03: 0x02, 0xc04: 0x1f0, 0xc05: 0x1f1, 0xc06: 0x05, 0xc07: 0x06, - 0xc08: 0x07, 0xc09: 0x08, 0xc0a: 0x09, 0xc0b: 0x0a, 0xc0c: 0x0b, 0xc0d: 0x0c, 0xc0e: 0x0d, 0xc0f: 0x0e, - 0xc10: 0x0f, 0xc11: 0x10, 0xc12: 0x11, 0xc13: 0x12, 0xc14: 0x13, 0xc15: 0x14, 0xc16: 0x15, 0xc17: 0x16, - 0xc18: 0x17, 0xc19: 0x18, 0xc1a: 0x19, 0xc1b: 0x1a, 0xc1c: 0x1b, 0xc1d: 0x1c, 0xc1e: 0x1d, 0xc1f: 0x1e, - 0xc20: 0x01, 0xc21: 0x2d, 0xc22: 0x03, 0xc23: 0x04, 0xc24: 0x05, - 0xc2a: 0x06, 0xc2d: 0x07, 0xc2f: 0x08, - 0xc30: 0x13, 0xc33: 0x15, - // Block 0x31, offset 0xc40 - 0xc40: 0x3f, 0xc41: 0x40, 0xc42: 0x41, 0xc43: 0x42, 0xc44: 0x43, 0xc45: 0x44, 0xc46: 0x45, 0xc47: 0x46, - 0xc48: 0x47, 0xc49: 0x48, 0xc4a: 0x49, 0xc4b: 0x4a, 0xc4c: 0x4b, 0xc4d: 0x4c, 0xc4e: 0x4d, 0xc4f: 0x4e, - 0xc50: 0x4f, 0xc51: 0x50, 0xc52: 0x51, 0xc53: 0x52, 0xc54: 0x53, 0xc55: 0x54, 0xc56: 0x55, 0xc57: 0x56, - 0xc58: 0x57, 0xc59: 0x58, 0xc5a: 0x59, 0xc5b: 0x5a, 0xc5c: 0x5b, 0xc5d: 0x5c, 0xc5e: 0x5d, 0xc5f: 0x5e, - 0xc60: 0x5f, 0xc61: 0x60, 0xc62: 0x61, 0xc63: 0x62, 0xc64: 0x63, 0xc65: 0x64, 0xc66: 0x65, 0xc67: 0x66, - 0xc68: 0x67, 0xc69: 0x68, 0xc6a: 0x69, 0xc6c: 0x6a, 0xc6d: 0x6b, 0xc6e: 0x6c, 0xc6f: 0x6d, - 0xc70: 0x6e, 0xc71: 0x6f, 0xc73: 0x70, 0xc74: 0x71, 0xc75: 0x72, 0xc76: 0x1fc, 0xc77: 0x74, - 0xc78: 0x75, 0xc79: 0x1fd, 0xc7a: 0x77, 0xc7b: 0x78, 0xc7c: 0x79, 0xc7d: 0x7a, 0xc7e: 0x7b, 0xc7f: 0x7c, - // Block 0x32, offset 0xc80 - 0xc80: 0x7d, 0xc81: 0x7e, 0xc82: 0x7f, 0xc83: 0x80, 0xc84: 0x1fe, 0xc85: 0x82, 0xc86: 0x83, 0xc87: 0x84, - 0xc88: 0x85, 0xc89: 0x86, 0xc8a: 0x87, 0xc8b: 0x88, 0xc8c: 0x89, 0xc8d: 0x8a, 0xc8e: 0x8b, 0xc8f: 0x8c, - 0xc90: 0x8d, 0xc91: 0x8e, 0xc92: 0x8f, 0xc93: 0x90, 0xc94: 0x91, 0xc95: 0x92, 0xc96: 0x93, 0xc97: 0x94, - 0xc98: 0x95, 0xc99: 0x96, 0xc9a: 0x97, 0xc9b: 0x98, 0xc9c: 0x99, 0xc9d: 0x9a, 0xc9e: 0x9b, 0xc9f: 0x9c, - 0xca0: 0x9d, 0xca1: 0x9e, 0xca2: 0x9f, 0xca3: 0xa0, 0xca4: 0xa1, 0xca5: 0xa2, 0xca6: 0xa3, 0xca7: 0xa4, - 0xca8: 0xa5, 0xca9: 0xa6, 0xcaa: 0xa7, 0xcab: 0xa8, 0xcac: 0xa9, 0xcad: 0xaa, - 0xcb0: 0xab, 0xcb1: 0xac, 0xcb2: 0xad, 0xcb3: 0xae, 0xcb4: 0xaf, 0xcb5: 0xb0, 0xcb6: 0xb1, 0xcb7: 0xb2, - 0xcb8: 0xb3, 0xcba: 0xb4, 0xcbb: 0xb5, 0xcbc: 0xb6, 0xcbd: 0xb7, 0xcbe: 0xb8, 0xcbf: 0xb9, - // Block 0x33, offset 0xcc0 - 0xcc2: 0x01, 0xcc3: 0x1f7, 0xcc4: 0x1f8, 0xcc5: 0x1f9, 0xcc6: 0x05, 0xcc7: 0x1fa, - 0xcc8: 0x1fb, 0xcc9: 0x08, 0xcca: 0x09, 0xccb: 0x0a, 0xccc: 0x0b, 0xccd: 0x0c, 0xcce: 0x0d, 0xccf: 0x0e, - 0xcd0: 0x0f, 0xcd1: 0x10, 0xcd2: 0x11, 0xcd3: 0x12, 0xcd4: 0x13, 0xcd5: 0x14, 0xcd6: 0x15, 0xcd7: 0x16, - 0xcd8: 0x17, 0xcd9: 0x18, 0xcda: 0x19, 0xcdb: 0x1a, 0xcdc: 0x1b, 0xcdd: 0x1c, 0xcde: 0x1d, 0xcdf: 0x1e, - 0xce0: 0x01, 0xce1: 0x2f, 0xce2: 0x30, 0xce3: 0x04, 0xce4: 0x05, - 0xcea: 0x06, 0xced: 0x07, 0xcef: 0x08, - 0xcf0: 0x13, 0xcf3: 0x15, - // Block 0x34, offset 0xd00 - 0xd20: 0x1f, 0xd21: 0x20, 0xd22: 0x21, 0xd23: 0x22, 0xd24: 0x23, 0xd25: 0x24, 0xd26: 0x25, 0xd27: 0x26, - 0xd28: 0x27, 0xd29: 0x28, 0xd2a: 0x29, 0xd2b: 0x2a, 0xd2c: 0x2b, 0xd2d: 0x2c, 0xd2e: 0x2d, 0xd2f: 0x2e, - 0xd30: 0x2f, 0xd31: 0x30, 0xd32: 0x31, 0xd33: 0x32, 0xd34: 0x33, 0xd35: 0x34, 0xd36: 0x35, 0xd37: 0x36, - 0xd38: 0x37, 0xd39: 0x38, 0xd3a: 0x39, 0xd3b: 0x3a, 0xd3c: 0x1ff, 0xd3d: 0x200, 0xd3e: 0x201, 0xd3f: 0x3e, - // Block 0x35, offset 0xd40 - 0xd42: 0x01, 0xd43: 0x02, 0xd44: 0x03, 0xd45: 0x04, 0xd46: 0x05, 0xd47: 0x06, - 0xd48: 0x07, 0xd49: 0x08, 0xd4a: 0x09, 0xd4b: 0x0a, 0xd4c: 0x0b, 0xd4d: 0x0c, 0xd4e: 0x0d, 0xd4f: 0x0e, - 0xd50: 0x0f, 0xd51: 0x10, 0xd52: 0x11, 0xd53: 0x12, 0xd54: 0x13, 0xd55: 0x14, 0xd56: 0x15, 0xd57: 0x16, - 0xd58: 0x17, 0xd59: 0x18, 0xd5a: 0x19, 0xd5b: 0x1a, 0xd5c: 0x1b, 0xd5d: 0x1c, 0xd5e: 0x1d, 0xd5f: 0x1e, - 0xd60: 0x32, 0xd61: 0x02, 0xd62: 0x03, 0xd63: 0x04, 0xd64: 0x05, - 0xd6a: 0x06, 0xd6d: 0x07, 0xd6f: 0x08, - 0xd70: 0x13, 0xd73: 0x15, - // Block 0x36, offset 0xd80 - 0xd80: 0x3f, 0xd81: 0x40, 0xd82: 0x41, 0xd83: 0x42, 0xd84: 0x43, 0xd85: 0x44, 0xd86: 0x45, 0xd87: 0x46, - 0xd88: 0x47, 0xd89: 0x48, 0xd8a: 0x49, 0xd8b: 0x4a, 0xd8c: 0x4b, 0xd8d: 0x4c, 0xd8e: 0x4d, 0xd8f: 0x4e, - 0xd90: 0x4f, 0xd91: 0x50, 0xd92: 0x51, 0xd93: 0x52, 0xd94: 0x53, 0xd95: 0x54, 0xd96: 0x55, 0xd97: 0x56, - 0xd98: 0x57, 0xd99: 0x58, 0xd9a: 0x59, 0xd9b: 0x5a, 0xd9c: 0x5b, 0xd9d: 0x5c, 0xd9e: 0x5d, 0xd9f: 0x5e, - 0xda0: 0x5f, 0xda1: 0x60, 0xda2: 0x61, 0xda3: 0x62, 0xda4: 0x63, 0xda5: 0x64, 0xda6: 0x65, 0xda7: 0x66, - 0xda8: 0x67, 0xda9: 0x68, 0xdaa: 0x69, 0xdac: 0x6a, 0xdad: 0x6b, 0xdae: 0x6c, 0xdaf: 0x6d, - 0xdb0: 0x6e, 0xdb1: 0x6f, 0xdb3: 0x70, 0xdb4: 0x71, 0xdb5: 0x72, 0xdb6: 0x73, 0xdb7: 0x74, - 0xdb8: 0x75, 0xdb9: 0x76, 0xdba: 0x20b, 0xdbb: 0x20c, 0xdbc: 0x79, 0xdbd: 0x7a, 0xdbe: 0x7b, 0xdbf: 0x7c, - // Block 0x37, offset 0xdc0 - 0xdc0: 0x7d, 0xdc1: 0x7e, 0xdc2: 0x7f, 0xdc3: 0x80, 0xdc4: 0x81, 0xdc5: 0x20d, 0xdc6: 0x83, 0xdc7: 0x84, - 0xdc8: 0x85, 0xdc9: 0x86, 0xdca: 0x87, 0xdcb: 0x88, 0xdcc: 0x89, 0xdcd: 0x8a, 0xdce: 0x8b, 0xdcf: 0x8c, - 0xdd0: 0x8d, 0xdd1: 0x8e, 0xdd2: 0x20e, 0xdd3: 0x90, 0xdd4: 0x91, 0xdd5: 0x92, 0xdd6: 0x93, 0xdd7: 0x94, - 0xdd8: 0x95, 0xdd9: 0x96, 0xdda: 0x97, 0xddb: 0x98, 0xddc: 0x99, 0xddd: 0x9a, 0xdde: 0x9b, 0xddf: 0x9c, - 0xde0: 0x9d, 0xde1: 0x9e, 0xde2: 0x9f, 0xde3: 0xa0, 0xde4: 0xa1, 0xde5: 0xa2, 0xde6: 0xa3, 0xde7: 0xa4, - 0xde8: 0xa5, 0xde9: 0xa6, 0xdea: 0xa7, 0xdeb: 0xa8, 0xdec: 0xa9, 0xded: 0xaa, - 0xdf0: 0xab, 0xdf1: 0xac, 0xdf2: 0xad, 0xdf3: 0xae, 0xdf4: 0xaf, 0xdf5: 0xb0, 0xdf6: 0xb1, 0xdf7: 0xb2, - 0xdf8: 0xb3, 0xdfa: 0xb4, 0xdfb: 0xb5, 0xdfc: 0xb6, 0xdfd: 0xb7, 0xdfe: 0xb8, 0xdff: 0xb9, - // Block 0x38, offset 0xe00 - 0xe00: 0xba, 0xe01: 0xbb, 0xe02: 0xbc, 0xe03: 0xbd, 0xe04: 0xbe, 0xe05: 0xbf, 0xe06: 0xc0, 0xe07: 0xc1, - 0xe08: 0xc2, 0xe09: 0xc3, 0xe0a: 0xc4, 0xe0b: 0xc5, 0xe0c: 0xc6, 0xe0d: 0xc7, 0xe0e: 0xc8, 0xe0f: 0x20f, - // Block 0x39, offset 0xe40 - 0xe40: 0x18b, 0xe41: 0x18c, 0xe42: 0x18d, 0xe43: 0x18e, 0xe44: 0x210, 0xe45: 0x190, 0xe46: 0x191, 0xe47: 0x192, - 0xe48: 0x193, 0xe49: 0x194, 0xe4c: 0x195, 0xe4d: 0x196, 0xe4e: 0x197, 0xe4f: 0x198, - 0xe50: 0x199, 0xe51: 0x19a, 0xe52: 0x19b, 0xe53: 0x19c, 0xe54: 0x19d, 0xe55: 0x19e, 0xe57: 0x19f, - 0xe58: 0x1a0, 0xe59: 0x1a1, 0xe5a: 0x1a2, 0xe5b: 0x1a3, 0xe5c: 0x1a4, 0xe5d: 0x1a5, - // Block 0x3a, offset 0xe80 - 0xe90: 0x09, 0xe91: 0x0a, 0xe92: 0x0b, 0xe93: 0x0c, 0xe96: 0x0d, - 0xe9b: 0x0e, 0xe9d: 0x0f, 0xe9e: 0x10, 0xe9f: 0x37, - 0xeaf: 0x12, - // Block 0x3b, offset 0xec0 - 0xec2: 0x01, 0xec3: 0x204, 0xec4: 0x205, 0xec5: 0x206, 0xec6: 0x207, 0xec7: 0x06, - 0xec8: 0x07, 0xec9: 0x208, 0xeca: 0x209, 0xecb: 0x0a, 0xecc: 0x20a, 0xecd: 0x0c, 0xece: 0x0d, 0xecf: 0x0e, - 0xed0: 0x0f, 0xed1: 0x10, 0xed2: 0x11, 0xed3: 0x12, 0xed4: 0x13, 0xed5: 0x14, 0xed6: 0x15, 0xed7: 0x16, - 0xed8: 0x17, 0xed9: 0x18, 0xeda: 0x19, 0xedb: 0x1a, 0xedc: 0x1b, 0xedd: 0x1c, 0xede: 0x1d, 0xedf: 0x1e, - 0xee0: 0x01, 0xee1: 0x34, 0xee2: 0x35, 0xee3: 0x36, 0xee4: 0x05, - 0xeea: 0x06, 0xeed: 0x07, 0xeef: 0x08, - 0xef0: 0x38, 0xef3: 0x15, - // Block 0x3c, offset 0xf00 - 0xf00: 0x3f, 0xf01: 0x40, 0xf02: 0x41, 0xf03: 0x42, 0xf04: 0x43, 0xf05: 0x44, 0xf06: 0x45, 0xf07: 0x46, - 0xf08: 0x47, 0xf09: 0x48, 0xf0a: 0x49, 0xf0b: 0x4a, 0xf0c: 0x4b, 0xf0d: 0x4c, 0xf0e: 0x4d, 0xf0f: 0x4e, - 0xf10: 0x4f, 0xf11: 0x50, 0xf12: 0x51, 0xf13: 0x52, 0xf14: 0x53, 0xf15: 0x54, 0xf16: 0x55, 0xf17: 0x56, - 0xf18: 0x57, 0xf19: 0x58, 0xf1a: 0x59, 0xf1b: 0x5a, 0xf1c: 0x5b, 0xf1d: 0x5c, 0xf1e: 0x5d, 0xf1f: 0x5e, - 0xf20: 0x5f, 0xf21: 0x60, 0xf22: 0x61, 0xf23: 0x62, 0xf24: 0x63, 0xf25: 0x64, 0xf26: 0x65, 0xf27: 0x66, - 0xf28: 0x67, 0xf29: 0x68, 0xf2a: 0x69, 0xf2c: 0x6a, 0xf2d: 0x6b, 0xf2e: 0x6c, 0xf2f: 0x6d, - 0xf30: 0x6e, 0xf31: 0x6f, 0xf33: 0x70, 0xf34: 0x71, 0xf35: 0x72, 0xf36: 0x73, 0xf37: 0x74, - 0xf38: 0x21a, 0xf39: 0x21b, 0xf3a: 0x21c, 0xf3b: 0x21d, 0xf3c: 0x79, 0xf3d: 0x7a, 0xf3e: 0x7b, 0xf3f: 0x21e, - // Block 0x3d, offset 0xf40 - 0xf40: 0x21f, 0xf41: 0x220, 0xf42: 0x7f, 0xf43: 0x80, 0xf44: 0x221, 0xf45: 0x222, 0xf46: 0x83, 0xf47: 0x84, - 0xf48: 0x85, 0xf49: 0x223, 0xf4a: 0x87, 0xf4b: 0x88, 0xf4c: 0x89, 0xf4d: 0x8a, 0xf4e: 0x8b, 0xf4f: 0x8c, - 0xf50: 0x8d, 0xf51: 0x224, 0xf52: 0x225, 0xf53: 0x90, 0xf54: 0x91, 0xf55: 0x92, 0xf56: 0x93, 0xf57: 0x94, - 0xf58: 0x95, 0xf59: 0x96, 0xf5a: 0x97, 0xf5b: 0x98, 0xf5c: 0x99, 0xf5d: 0x9a, 0xf5e: 0x9b, 0xf5f: 0x9c, - 0xf60: 0x9d, 0xf61: 0x9e, 0xf62: 0x9f, 0xf63: 0xa0, 0xf64: 0xa1, 0xf65: 0xa2, 0xf66: 0xa3, 0xf67: 0xa4, - 0xf68: 0xa5, 0xf69: 0x226, 0xf6a: 0xa7, 0xf6b: 0xa8, 0xf6c: 0xa9, 0xf6d: 0xaa, - 0xf70: 0xab, 0xf71: 0xac, 0xf72: 0xad, 0xf73: 0xae, 0xf74: 0xaf, 0xf75: 0xb0, 0xf76: 0xb1, 0xf77: 0xb2, - 0xf78: 0xb3, 0xf7a: 0xb4, 0xf7b: 0xb5, 0xf7c: 0xb6, 0xf7d: 0xb7, 0xf7e: 0xb8, 0xf7f: 0xb9, - // Block 0x3e, offset 0xf80 - 0xf80: 0xba, 0xf81: 0xbb, 0xf82: 0xbc, 0xf83: 0xbd, 0xf84: 0xbe, 0xf85: 0xbf, 0xf86: 0xc0, 0xf87: 0xc1, - 0xf88: 0x227, 0xf89: 0x228, 0xf8a: 0x229, 0xf8b: 0x22a, 0xf8c: 0xc6, 0xf8d: 0x22b, 0xf8e: 0x22c, 0xf8f: 0x22d, - // Block 0x3f, offset 0xfc0 - 0xfe4: 0xfb, 0xfe5: 0xfc, 0xfe6: 0xfd, 0xfe7: 0xfe, - 0xfe8: 0xff, 0xfe9: 0x100, 0xfea: 0x101, 0xfeb: 0x102, 0xfec: 0x22e, 0xfed: 0x104, 0xfee: 0x105, 0xfef: 0x106, - 0xff0: 0x107, 0xff1: 0x108, 0xff2: 0x109, 0xff3: 0x10a, 0xff4: 0x10b, 0xff5: 0x10c, 0xff6: 0x10d, 0xff7: 0x10e, - 0xff8: 0x22f, 0xff9: 0x110, 0xffa: 0x111, 0xffb: 0x112, 0xffc: 0x113, 0xffd: 0x114, 0xffe: 0x115, 0xfff: 0x116, - // Block 0x40, offset 0x1000 - 0x1000: 0x18b, 0x1001: 0x18c, 0x1002: 0x18d, 0x1003: 0x18e, 0x1004: 0x230, 0x1005: 0x231, 0x1006: 0x232, 0x1007: 0x192, - 0x1008: 0x193, 0x1009: 0x194, 0x100c: 0x195, 0x100d: 0x196, 0x100e: 0x197, 0x100f: 0x198, - 0x1010: 0x199, 0x1011: 0x19a, 0x1012: 0x19b, 0x1013: 0x19c, 0x1014: 0x19d, 0x1015: 0x19e, 0x1017: 0x19f, - 0x1018: 0x1a0, 0x1019: 0x1a1, 0x101a: 0x1a2, 0x101b: 0x1a3, 0x101c: 0x1a4, 0x101d: 0x1a5, - // Block 0x41, offset 0x1040 - 0x1050: 0x09, 0x1051: 0x0a, 0x1052: 0x0b, 0x1053: 0x0c, 0x1056: 0x0d, - 0x105b: 0x0e, 0x105d: 0x0f, 0x105e: 0x10, 0x105f: 0x3e, - 0x106f: 0x12, - // Block 0x42, offset 0x1080 - 0x1082: 0x01, 0x1083: 0x213, 0x1084: 0x214, 0x1085: 0x215, 0x1086: 0x216, 0x1087: 0x217, - 0x1088: 0x218, 0x1089: 0x08, 0x108a: 0x09, 0x108b: 0x0a, 0x108c: 0x0b, 0x108d: 0x219, 0x108e: 0x0d, 0x108f: 0x0e, - 0x1090: 0x0f, 0x1091: 0x10, 0x1092: 0x11, 0x1093: 0x12, 0x1094: 0x13, 0x1095: 0x14, 0x1096: 0x15, 0x1097: 0x16, - 0x1098: 0x17, 0x1099: 0x18, 0x109a: 0x19, 0x109b: 0x1a, 0x109c: 0x1b, 0x109d: 0x1c, 0x109e: 0x1d, 0x109f: 0x1e, - 0x10a0: 0x01, 0x10a1: 0x3a, 0x10a2: 0x3b, 0x10a3: 0x3c, 0x10a4: 0x05, - 0x10aa: 0x06, 0x10ad: 0x07, 0x10af: 0x3d, - 0x10b0: 0x3f, 0x10b3: 0x15, - // Block 0x43, offset 0x10c0 - 0x10c2: 0x01, 0x10c3: 0x02, 0x10c4: 0x235, 0x10c5: 0x236, 0x10c6: 0x05, 0x10c7: 0x06, - 0x10c8: 0x07, 0x10c9: 0x08, 0x10ca: 0x09, 0x10cb: 0x0a, 0x10cc: 0x0b, 0x10cd: 0x0c, 0x10ce: 0x0d, 0x10cf: 0x0e, - 0x10d0: 0x0f, 0x10d1: 0x10, 0x10d2: 0x11, 0x10d3: 0x12, 0x10d4: 0x13, 0x10d5: 0x14, 0x10d6: 0x15, 0x10d7: 0x16, - 0x10d8: 0x17, 0x10d9: 0x18, 0x10da: 0x19, 0x10db: 0x1a, 0x10dc: 0x1b, 0x10dd: 0x1c, 0x10de: 0x1d, 0x10df: 0x1e, - 0x10e0: 0x01, 0x10e1: 0x02, 0x10e2: 0x03, 0x10e3: 0x04, 0x10e4: 0x05, - 0x10ea: 0x06, 0x10ed: 0x07, 0x10ef: 0x08, - 0x10f0: 0x13, 0x10f3: 0x15, - // Block 0x44, offset 0x1100 - 0x1102: 0x01, 0x1103: 0x239, 0x1104: 0x03, 0x1105: 0x04, 0x1106: 0x05, 0x1107: 0x06, - 0x1108: 0x07, 0x1109: 0x08, 0x110a: 0x09, 0x110b: 0x0a, 0x110c: 0x0b, 0x110d: 0x0c, 0x110e: 0x0d, 0x110f: 0x0e, - 0x1110: 0x0f, 0x1111: 0x10, 0x1112: 0x11, 0x1113: 0x12, 0x1114: 0x13, 0x1115: 0x14, 0x1116: 0x15, 0x1117: 0x16, - 0x1118: 0x17, 0x1119: 0x18, 0x111a: 0x19, 0x111b: 0x1a, 0x111c: 0x1b, 0x111d: 0x1c, 0x111e: 0x1d, 0x111f: 0x1e, - 0x1120: 0x01, 0x1121: 0x02, 0x1122: 0x03, 0x1123: 0x04, 0x1124: 0x05, - 0x112a: 0x06, 0x112d: 0x07, 0x112f: 0x08, - 0x1130: 0x13, 0x1133: 0x15, - // Block 0x45, offset 0x1140 - 0x1140: 0x3f, 0x1141: 0x40, 0x1142: 0x41, 0x1143: 0x42, 0x1144: 0x43, 0x1145: 0x44, 0x1146: 0x45, 0x1147: 0x46, - 0x1148: 0x47, 0x1149: 0x48, 0x114a: 0x49, 0x114b: 0x4a, 0x114c: 0x4b, 0x114d: 0x4c, 0x114e: 0x4d, 0x114f: 0x4e, - 0x1150: 0x4f, 0x1151: 0x50, 0x1152: 0x51, 0x1153: 0x52, 0x1154: 0x53, 0x1155: 0x54, 0x1156: 0x55, 0x1157: 0x56, - 0x1158: 0x57, 0x1159: 0x58, 0x115a: 0x59, 0x115b: 0x5a, 0x115c: 0x5b, 0x115d: 0x5c, 0x115e: 0x5d, 0x115f: 0x5e, - 0x1160: 0x5f, 0x1161: 0x60, 0x1162: 0x61, 0x1163: 0x62, 0x1164: 0x63, 0x1165: 0x64, 0x1166: 0x65, 0x1167: 0x66, - 0x1168: 0x67, 0x1169: 0x68, 0x116a: 0x69, 0x116c: 0x6a, 0x116d: 0x6b, 0x116e: 0x6c, 0x116f: 0x6d, - 0x1170: 0x6e, 0x1171: 0x6f, 0x1173: 0x70, 0x1174: 0x71, 0x1175: 0x72, 0x1176: 0x73, 0x1177: 0x74, - 0x1178: 0x75, 0x1179: 0x240, 0x117a: 0x241, 0x117b: 0x242, 0x117c: 0x79, 0x117d: 0x7a, 0x117e: 0x7b, 0x117f: 0x7c, - // Block 0x46, offset 0x1180 - 0x1180: 0x7d, 0x1181: 0x7e, 0x1182: 0x7f, 0x1183: 0x80, 0x1184: 0x81, 0x1185: 0x82, 0x1186: 0x83, 0x1187: 0x84, - 0x1188: 0x85, 0x1189: 0x86, 0x118a: 0x87, 0x118b: 0x88, 0x118c: 0x89, 0x118d: 0x8a, 0x118e: 0x8b, 0x118f: 0x8c, - 0x1190: 0x8d, 0x1191: 0x8e, 0x1192: 0x243, 0x1193: 0x90, 0x1194: 0x91, 0x1195: 0x92, 0x1196: 0x93, 0x1197: 0x94, - 0x1198: 0x95, 0x1199: 0x96, 0x119a: 0x97, 0x119b: 0x98, 0x119c: 0x99, 0x119d: 0x9a, 0x119e: 0x9b, 0x119f: 0x9c, - 0x11a0: 0x9d, 0x11a1: 0x9e, 0x11a2: 0x9f, 0x11a3: 0xa0, 0x11a4: 0xa1, 0x11a5: 0xa2, 0x11a6: 0xa3, 0x11a7: 0xa4, - 0x11a8: 0xa5, 0x11a9: 0xa6, 0x11aa: 0xa7, 0x11ab: 0xa8, 0x11ac: 0xa9, 0x11ad: 0xaa, - 0x11b0: 0xab, 0x11b1: 0xac, 0x11b2: 0xad, 0x11b3: 0xae, 0x11b4: 0xaf, 0x11b5: 0xb0, 0x11b6: 0xb1, 0x11b7: 0xb2, - 0x11b8: 0xb3, 0x11ba: 0xb4, 0x11bb: 0xb5, 0x11bc: 0xb6, 0x11bd: 0xb7, 0x11be: 0xb8, 0x11bf: 0xb9, - // Block 0x47, offset 0x11c0 - 0x11c0: 0xba, 0x11c1: 0xbb, 0x11c2: 0xbc, 0x11c3: 0xbd, 0x11c4: 0xbe, 0x11c5: 0xbf, 0x11c6: 0xc0, 0x11c7: 0xc1, - 0x11c8: 0xc2, 0x11c9: 0xc3, 0x11ca: 0xc4, 0x11cb: 0xc5, 0x11cc: 0xc6, 0x11cd: 0xc7, 0x11ce: 0x244, 0x11cf: 0x245, - // Block 0x48, offset 0x1200 - 0x1200: 0x18b, 0x1201: 0x18c, 0x1202: 0x18d, 0x1203: 0x18e, 0x1204: 0x246, 0x1205: 0x247, 0x1206: 0x191, 0x1207: 0x192, - 0x1208: 0x193, 0x1209: 0x194, 0x120c: 0x195, 0x120d: 0x196, 0x120e: 0x197, 0x120f: 0x198, - 0x1210: 0x199, 0x1211: 0x19a, 0x1212: 0x19b, 0x1213: 0x19c, 0x1214: 0x19d, 0x1215: 0x19e, 0x1217: 0x19f, - 0x1218: 0x1a0, 0x1219: 0x1a1, 0x121a: 0x1a2, 0x121b: 0x1a3, 0x121c: 0x1a4, 0x121d: 0x1a5, - // Block 0x49, offset 0x1240 - 0x1250: 0x09, 0x1251: 0x0a, 0x1252: 0x0b, 0x1253: 0x0c, 0x1256: 0x0d, - 0x125b: 0x0e, 0x125d: 0x0f, 0x125e: 0x10, 0x125f: 0x46, - 0x126f: 0x12, - // Block 0x4a, offset 0x1280 - 0x1282: 0x01, 0x1283: 0x23c, 0x1284: 0x03, 0x1285: 0x23d, 0x1286: 0x05, 0x1287: 0x23e, - 0x1288: 0x23f, 0x1289: 0x08, 0x128a: 0x09, 0x128b: 0x0a, 0x128c: 0x0b, 0x128d: 0x0c, 0x128e: 0x0d, 0x128f: 0x0e, - 0x1290: 0x0f, 0x1291: 0x10, 0x1292: 0x11, 0x1293: 0x12, 0x1294: 0x13, 0x1295: 0x14, 0x1296: 0x15, 0x1297: 0x16, - 0x1298: 0x17, 0x1299: 0x18, 0x129a: 0x19, 0x129b: 0x1a, 0x129c: 0x1b, 0x129d: 0x1c, 0x129e: 0x1d, 0x129f: 0x1e, - 0x12a0: 0x01, 0x12a1: 0x43, 0x12a2: 0x44, 0x12a3: 0x45, 0x12a4: 0x05, - 0x12aa: 0x06, 0x12ad: 0x07, 0x12af: 0x08, - 0x12b0: 0x47, 0x12b3: 0x15, - // Block 0x4b, offset 0x12c0 - 0x12e4: 0xfb, 0x12e5: 0xfc, 0x12e6: 0xfd, 0x12e7: 0xfe, - 0x12e8: 0xff, 0x12e9: 0x100, 0x12ea: 0x101, 0x12eb: 0x102, 0x12ec: 0x103, 0x12ed: 0x104, 0x12ee: 0x24c, 0x12ef: 0x106, - 0x12f0: 0x24d, 0x12f1: 0x24e, 0x12f2: 0x24f, 0x12f3: 0x250, 0x12f4: 0x251, 0x12f5: 0x10c, 0x12f6: 0x10d, 0x12f7: 0x10e, - 0x12f8: 0x10f, 0x12f9: 0x110, 0x12fa: 0x111, 0x12fb: 0x112, 0x12fc: 0x113, 0x12fd: 0x114, 0x12fe: 0x115, 0x12ff: 0x116, - // Block 0x4c, offset 0x1300 - 0x1302: 0x01, 0x1303: 0x02, 0x1304: 0x03, 0x1305: 0x04, 0x1306: 0x05, 0x1307: 0x06, - 0x1308: 0x07, 0x1309: 0x08, 0x130a: 0x09, 0x130b: 0x0a, 0x130c: 0x0b, 0x130d: 0x0c, 0x130e: 0x0d, 0x130f: 0x0e, - 0x1310: 0x0f, 0x1311: 0x10, 0x1312: 0x11, 0x1313: 0x12, 0x1314: 0x13, 0x1315: 0x14, 0x1316: 0x15, 0x1317: 0x16, - 0x1318: 0x248, 0x1319: 0x249, 0x131a: 0x24a, 0x131b: 0x24b, 0x131c: 0x1b, 0x131d: 0x1c, 0x131e: 0x1d, 0x131f: 0x1e, - 0x1320: 0x01, 0x1321: 0x02, 0x1322: 0x03, 0x1323: 0x04, 0x1324: 0x05, - 0x132a: 0x06, 0x132d: 0x07, 0x132f: 0x49, - 0x1330: 0x13, 0x1333: 0x15, - // Block 0x4d, offset 0x1340 - 0x1340: 0x3f, 0x1341: 0x40, 0x1342: 0x41, 0x1343: 0x42, 0x1344: 0x43, 0x1345: 0x44, 0x1346: 0x45, 0x1347: 0x46, - 0x1348: 0x47, 0x1349: 0x48, 0x134a: 0x49, 0x134b: 0x4a, 0x134c: 0x4b, 0x134d: 0x4c, 0x134e: 0x4d, 0x134f: 0x4e, - 0x1350: 0x4f, 0x1351: 0x50, 0x1352: 0x51, 0x1353: 0x52, 0x1354: 0x53, 0x1355: 0x54, 0x1356: 0x55, 0x1357: 0x56, - 0x1358: 0x57, 0x1359: 0x58, 0x135a: 0x59, 0x135b: 0x5a, 0x135c: 0x5b, 0x135d: 0x5c, 0x135e: 0x5d, 0x135f: 0x5e, - 0x1360: 0x5f, 0x1361: 0x60, 0x1362: 0x61, 0x1363: 0x62, 0x1364: 0x63, 0x1365: 0x64, 0x1366: 0x65, 0x1367: 0x66, - 0x1368: 0x67, 0x1369: 0x68, 0x136a: 0x69, 0x136c: 0x6a, 0x136d: 0x6b, 0x136e: 0x6c, 0x136f: 0x6d, - 0x1370: 0x6e, 0x1371: 0x6f, 0x1373: 0x70, 0x1374: 0x71, 0x1375: 0x72, 0x1376: 0x73, 0x1377: 0x74, - 0x1378: 0x75, 0x1379: 0x25b, 0x137a: 0x77, 0x137b: 0x78, 0x137c: 0x79, 0x137d: 0x7a, 0x137e: 0x7b, 0x137f: 0x7c, - // Block 0x4e, offset 0x1380 - 0x1380: 0x7d, 0x1381: 0x7e, 0x1382: 0x7f, 0x1383: 0x80, 0x1384: 0x25c, 0x1385: 0x82, 0x1386: 0x83, 0x1387: 0x84, - 0x1388: 0x85, 0x1389: 0x86, 0x138a: 0x87, 0x138b: 0x88, 0x138c: 0x89, 0x138d: 0x8a, 0x138e: 0x8b, 0x138f: 0x8c, - 0x1390: 0x8d, 0x1391: 0x8e, 0x1392: 0x8f, 0x1393: 0x90, 0x1394: 0x91, 0x1395: 0x92, 0x1396: 0x93, 0x1397: 0x94, - 0x1398: 0x95, 0x1399: 0x96, 0x139a: 0x97, 0x139b: 0x98, 0x139c: 0x99, 0x139d: 0x9a, 0x139e: 0x9b, 0x139f: 0x9c, - 0x13a0: 0x9d, 0x13a1: 0x9e, 0x13a2: 0x9f, 0x13a3: 0xa0, 0x13a4: 0xa1, 0x13a5: 0xa2, 0x13a6: 0xa3, 0x13a7: 0xa4, - 0x13a8: 0xa5, 0x13a9: 0xa6, 0x13aa: 0xa7, 0x13ab: 0xa8, 0x13ac: 0xa9, 0x13ad: 0xaa, - 0x13b0: 0xab, 0x13b1: 0xac, 0x13b2: 0xad, 0x13b3: 0xae, 0x13b4: 0xaf, 0x13b5: 0xb0, 0x13b6: 0xb1, 0x13b7: 0xb2, - 0x13b8: 0xb3, 0x13ba: 0xb4, 0x13bb: 0xb5, 0x13bc: 0xb6, 0x13bd: 0xb7, 0x13be: 0xb8, 0x13bf: 0xb9, - // Block 0x4f, offset 0x13c0 - 0x13c2: 0x01, 0x13c3: 0x254, 0x13c4: 0x255, 0x13c5: 0x256, 0x13c6: 0x257, 0x13c7: 0x258, - 0x13c8: 0x259, 0x13c9: 0x08, 0x13ca: 0x25a, 0x13cb: 0x0a, 0x13cc: 0x0b, 0x13cd: 0x0c, 0x13ce: 0x0d, 0x13cf: 0x0e, - 0x13d0: 0x0f, 0x13d1: 0x10, 0x13d2: 0x11, 0x13d3: 0x12, 0x13d4: 0x13, 0x13d5: 0x14, 0x13d6: 0x15, 0x13d7: 0x16, - 0x13d8: 0x17, 0x13d9: 0x18, 0x13da: 0x19, 0x13db: 0x1a, 0x13dc: 0x1b, 0x13dd: 0x1c, 0x13de: 0x1d, 0x13df: 0x1e, - 0x13e0: 0x01, 0x13e1: 0x4b, 0x13e2: 0x4c, 0x13e3: 0x04, 0x13e4: 0x05, - 0x13ea: 0x06, 0x13ed: 0x07, 0x13ef: 0x08, - 0x13f0: 0x13, 0x13f3: 0x15, - // Block 0x50, offset 0x1400 - 0x1420: 0x1f, 0x1421: 0x20, 0x1422: 0x21, 0x1423: 0x22, 0x1424: 0x23, 0x1425: 0x24, 0x1426: 0x25, 0x1427: 0x26, - 0x1428: 0x27, 0x1429: 0x28, 0x142a: 0x25f, 0x142b: 0x2a, 0x142c: 0x2b, 0x142d: 0x2c, 0x142e: 0x2d, 0x142f: 0x2e, - 0x1430: 0x2f, 0x1431: 0x30, 0x1432: 0x31, 0x1433: 0x32, 0x1434: 0x33, 0x1435: 0x34, 0x1436: 0x35, 0x1437: 0x36, - 0x1438: 0x37, 0x1439: 0x38, 0x143a: 0x39, 0x143b: 0x3a, 0x143c: 0x3b, 0x143d: 0x3c, 0x143e: 0x3d, 0x143f: 0x3e, - // Block 0x51, offset 0x1440 - 0x1442: 0x01, 0x1443: 0x02, 0x1444: 0x03, 0x1445: 0x04, 0x1446: 0x05, 0x1447: 0x06, - 0x1448: 0x07, 0x1449: 0x08, 0x144a: 0x09, 0x144b: 0x0a, 0x144c: 0x0b, 0x144d: 0x0c, 0x144e: 0x0d, 0x144f: 0x0e, - 0x1450: 0x0f, 0x1451: 0x10, 0x1452: 0x11, 0x1453: 0x12, 0x1454: 0x13, 0x1455: 0x14, 0x1456: 0x15, 0x1457: 0x16, - 0x1458: 0x17, 0x1459: 0x18, 0x145a: 0x19, 0x145b: 0x1a, 0x145c: 0x1b, 0x145d: 0x1c, 0x145e: 0x1d, 0x145f: 0x1e, - 0x1460: 0x4e, 0x1461: 0x02, 0x1462: 0x03, 0x1463: 0x04, 0x1464: 0x05, - 0x146a: 0x06, 0x146d: 0x07, 0x146f: 0x08, - 0x1470: 0x13, 0x1473: 0x15, - // Block 0x52, offset 0x1480 - 0x1482: 0x01, 0x1483: 0x02, 0x1484: 0x03, 0x1485: 0x04, 0x1486: 0x262, 0x1487: 0x06, - 0x1488: 0x07, 0x1489: 0x263, 0x148a: 0x264, 0x148b: 0x0a, 0x148c: 0x0b, 0x148d: 0x0c, 0x148e: 0x0d, 0x148f: 0x0e, - 0x1490: 0x0f, 0x1491: 0x10, 0x1492: 0x11, 0x1493: 0x12, 0x1494: 0x13, 0x1495: 0x14, 0x1496: 0x15, 0x1497: 0x16, - 0x1498: 0x17, 0x1499: 0x18, 0x149a: 0x19, 0x149b: 0x1a, 0x149c: 0x1b, 0x149d: 0x1c, 0x149e: 0x1d, 0x149f: 0x1e, - 0x14a0: 0x01, 0x14a1: 0x02, 0x14a2: 0x03, 0x14a3: 0x04, 0x14a4: 0x05, - 0x14aa: 0x06, 0x14ad: 0x07, 0x14af: 0x08, - 0x14b0: 0x13, 0x14b3: 0x15, - // Block 0x53, offset 0x14c0 - 0x14c0: 0x3f, 0x14c1: 0x40, 0x14c2: 0x41, 0x14c3: 0x42, 0x14c4: 0x43, 0x14c5: 0x44, 0x14c6: 0x45, 0x14c7: 0x46, - 0x14c8: 0x47, 0x14c9: 0x48, 0x14ca: 0x49, 0x14cb: 0x4a, 0x14cc: 0x4b, 0x14cd: 0x4c, 0x14ce: 0x4d, 0x14cf: 0x4e, - 0x14d0: 0x4f, 0x14d1: 0x50, 0x14d2: 0x51, 0x14d3: 0x52, 0x14d4: 0x53, 0x14d5: 0x54, 0x14d6: 0x55, 0x14d7: 0x56, - 0x14d8: 0x57, 0x14d9: 0x58, 0x14da: 0x59, 0x14db: 0x5a, 0x14dc: 0x5b, 0x14dd: 0x5c, 0x14de: 0x5d, 0x14df: 0x5e, - 0x14e0: 0x5f, 0x14e1: 0x60, 0x14e2: 0x61, 0x14e3: 0x62, 0x14e4: 0x63, 0x14e5: 0x64, 0x14e6: 0x65, 0x14e7: 0x66, - 0x14e8: 0x67, 0x14e9: 0x68, 0x14ea: 0x69, 0x14ec: 0x6a, 0x14ed: 0x6b, 0x14ee: 0x6c, 0x14ef: 0x6d, - 0x14f0: 0x6e, 0x14f1: 0x6f, 0x14f3: 0x70, 0x14f4: 0x71, 0x14f5: 0x72, 0x14f6: 0x73, 0x14f7: 0x74, - 0x14f8: 0x26e, 0x14f9: 0x26f, 0x14fa: 0x270, 0x14fb: 0x271, 0x14fc: 0x79, 0x14fd: 0x7a, 0x14fe: 0x7b, 0x14ff: 0x7c, - // Block 0x54, offset 0x1500 - 0x1500: 0x7d, 0x1501: 0x7e, 0x1502: 0x7f, 0x1503: 0x80, 0x1504: 0x272, 0x1505: 0x1bf, 0x1506: 0x83, 0x1507: 0x84, - 0x1508: 0x85, 0x1509: 0x86, 0x150a: 0x87, 0x150b: 0x88, 0x150c: 0x89, 0x150d: 0x8a, 0x150e: 0x8b, 0x150f: 0x8c, - 0x1510: 0x8d, 0x1511: 0x8e, 0x1512: 0x273, 0x1513: 0x90, 0x1514: 0x91, 0x1515: 0x92, 0x1516: 0x93, 0x1517: 0x94, - 0x1518: 0x95, 0x1519: 0x96, 0x151a: 0x97, 0x151b: 0x98, 0x151c: 0x99, 0x151d: 0x9a, 0x151e: 0x9b, 0x151f: 0x9c, - 0x1520: 0x9d, 0x1521: 0x9e, 0x1522: 0x9f, 0x1523: 0xa0, 0x1524: 0xa1, 0x1525: 0xa2, 0x1526: 0xa3, 0x1527: 0xa4, - 0x1528: 0xa5, 0x1529: 0xa6, 0x152a: 0xa7, 0x152b: 0xa8, 0x152c: 0xa9, 0x152d: 0xaa, - 0x1530: 0xab, 0x1531: 0xac, 0x1532: 0xad, 0x1533: 0xae, 0x1534: 0xaf, 0x1535: 0xb0, 0x1536: 0xb1, 0x1537: 0xb2, - 0x1538: 0xb3, 0x153a: 0xb4, 0x153b: 0xb5, 0x153c: 0xb6, 0x153d: 0xb7, 0x153e: 0xb8, 0x153f: 0xb9, - // Block 0x55, offset 0x1540 - 0x1540: 0xba, 0x1541: 0xbb, 0x1542: 0xbc, 0x1543: 0xbd, 0x1544: 0xbe, 0x1545: 0xbf, 0x1546: 0xc0, 0x1547: 0xc1, - 0x1548: 0xc2, 0x1549: 0xc3, 0x154a: 0xc4, 0x154b: 0x1c1, 0x154c: 0xc6, 0x154d: 0x274, 0x154e: 0x275, 0x154f: 0x276, - // Block 0x56, offset 0x1580 - 0x15a4: 0xfb, 0x15a5: 0xfc, 0x15a6: 0xfd, 0x15a7: 0xfe, - 0x15a8: 0xff, 0x15a9: 0x100, 0x15aa: 0x101, 0x15ab: 0x102, 0x15ac: 0x277, 0x15ad: 0x104, 0x15ae: 0x105, 0x15af: 0x106, - 0x15b0: 0x107, 0x15b1: 0x108, 0x15b2: 0x109, 0x15b3: 0x10a, 0x15b4: 0x10b, 0x15b5: 0x10c, 0x15b6: 0x10d, 0x15b7: 0x10e, - 0x15b8: 0x10f, 0x15b9: 0x110, 0x15ba: 0x111, 0x15bb: 0x112, 0x15bc: 0x113, 0x15bd: 0x114, 0x15be: 0x115, 0x15bf: 0x116, - // Block 0x57, offset 0x15c0 - 0x15c0: 0x18b, 0x15c1: 0x18c, 0x15c2: 0x18d, 0x15c3: 0x18e, 0x15c4: 0x278, 0x15c5: 0x279, 0x15c6: 0x191, 0x15c7: 0x192, - 0x15c8: 0x193, 0x15c9: 0x194, 0x15cc: 0x195, 0x15cd: 0x196, 0x15ce: 0x197, 0x15cf: 0x198, - 0x15d0: 0x199, 0x15d1: 0x19a, 0x15d2: 0x19b, 0x15d3: 0x19c, 0x15d4: 0x19d, 0x15d5: 0x19e, 0x15d7: 0x19f, - 0x15d8: 0x1a0, 0x15d9: 0x1a1, 0x15da: 0x1a2, 0x15db: 0x1a3, 0x15dc: 0x1a4, 0x15dd: 0x1a5, - // Block 0x58, offset 0x1600 - 0x1610: 0x09, 0x1611: 0x0a, 0x1612: 0x0b, 0x1613: 0x0c, 0x1616: 0x0d, - 0x161b: 0x0e, 0x161d: 0x0f, 0x161e: 0x10, 0x161f: 0x55, - 0x162f: 0x12, - // Block 0x59, offset 0x1640 - 0x1642: 0x01, 0x1643: 0x267, 0x1644: 0x268, 0x1645: 0x269, 0x1646: 0x26a, 0x1647: 0x26b, - 0x1648: 0x26c, 0x1649: 0x08, 0x164a: 0x26d, 0x164b: 0x0a, 0x164c: 0x0b, 0x164d: 0x0c, 0x164e: 0x0d, 0x164f: 0x0e, - 0x1650: 0x0f, 0x1651: 0x10, 0x1652: 0x11, 0x1653: 0x12, 0x1654: 0x13, 0x1655: 0x14, 0x1656: 0x15, 0x1657: 0x16, - 0x1658: 0x17, 0x1659: 0x18, 0x165a: 0x19, 0x165b: 0x1a, 0x165c: 0x1b, 0x165d: 0x1c, 0x165e: 0x1d, 0x165f: 0x1e, - 0x1660: 0x01, 0x1661: 0x51, 0x1662: 0x52, 0x1663: 0x53, 0x1664: 0x05, - 0x166a: 0x06, 0x166d: 0x07, 0x166f: 0x54, - 0x1670: 0x56, 0x1673: 0x15, - // Block 0x5a, offset 0x1680 - 0x1682: 0x01, 0x1683: 0x02, 0x1684: 0x03, 0x1685: 0x04, 0x1686: 0x05, 0x1687: 0x06, - 0x1688: 0x07, 0x1689: 0x08, 0x168a: 0x09, 0x168b: 0x0a, 0x168c: 0x0b, 0x168d: 0x0c, 0x168e: 0x0d, 0x168f: 0x0e, - 0x1690: 0x0f, 0x1691: 0x10, 0x1692: 0x11, 0x1693: 0x12, 0x1694: 0x13, 0x1695: 0x14, 0x1696: 0x15, 0x1697: 0x27a, - 0x1698: 0x17, 0x1699: 0x18, 0x169a: 0x19, 0x169b: 0x1a, 0x169c: 0x1b, 0x169d: 0x1c, 0x169e: 0x1d, 0x169f: 0x1e, - 0x16a0: 0x01, 0x16a1: 0x02, 0x16a2: 0x03, 0x16a3: 0x04, 0x16a4: 0x05, - 0x16aa: 0x06, 0x16ad: 0x07, 0x16af: 0x08, - 0x16b0: 0x13, 0x16b3: 0x15, - // Block 0x5b, offset 0x16c0 - 0x16e0: 0x1f, 0x16e1: 0x20, 0x16e2: 0x21, 0x16e3: 0x22, 0x16e4: 0x27b, 0x16e5: 0x24, 0x16e6: 0x25, 0x16e7: 0x26, - 0x16e8: 0x27, 0x16e9: 0x28, 0x16ea: 0x29, 0x16eb: 0x2a, 0x16ec: 0x2b, 0x16ed: 0x2c, 0x16ee: 0x2d, 0x16ef: 0x2e, - 0x16f0: 0x2f, 0x16f1: 0x30, 0x16f2: 0x31, 0x16f3: 0x32, 0x16f4: 0x33, 0x16f5: 0x34, 0x16f6: 0x35, 0x16f7: 0x36, - 0x16f8: 0x37, 0x16f9: 0x38, 0x16fa: 0x39, 0x16fb: 0x3a, 0x16fc: 0x3b, 0x16fd: 0x3c, 0x16fe: 0x3d, 0x16ff: 0x3e, - // Block 0x5c, offset 0x1700 - 0x1702: 0x01, 0x1703: 0x02, 0x1704: 0x03, 0x1705: 0x04, 0x1706: 0x05, 0x1707: 0x06, - 0x1708: 0x07, 0x1709: 0x08, 0x170a: 0x09, 0x170b: 0x0a, 0x170c: 0x0b, 0x170d: 0x0c, 0x170e: 0x0d, 0x170f: 0x0e, - 0x1710: 0x0f, 0x1711: 0x10, 0x1712: 0x11, 0x1713: 0x12, 0x1714: 0x13, 0x1715: 0x14, 0x1716: 0x15, 0x1717: 0x16, - 0x1718: 0x17, 0x1719: 0x18, 0x171a: 0x19, 0x171b: 0x1a, 0x171c: 0x1b, 0x171d: 0x1c, 0x171e: 0x1d, 0x171f: 0x1e, - 0x1720: 0x59, 0x1721: 0x02, 0x1722: 0x03, 0x1723: 0x04, 0x1724: 0x05, - 0x172a: 0x06, 0x172d: 0x07, 0x172f: 0x08, - 0x1730: 0x13, 0x1733: 0x15, - // Block 0x5d, offset 0x1740 - 0x1740: 0x3f, 0x1741: 0x40, 0x1742: 0x41, 0x1743: 0x42, 0x1744: 0x43, 0x1745: 0x44, 0x1746: 0x45, 0x1747: 0x46, - 0x1748: 0x47, 0x1749: 0x48, 0x174a: 0x49, 0x174b: 0x4a, 0x174c: 0x4b, 0x174d: 0x4c, 0x174e: 0x4d, 0x174f: 0x4e, - 0x1750: 0x4f, 0x1751: 0x50, 0x1752: 0x51, 0x1753: 0x52, 0x1754: 0x53, 0x1755: 0x54, 0x1756: 0x55, 0x1757: 0x56, - 0x1758: 0x57, 0x1759: 0x58, 0x175a: 0x59, 0x175b: 0x5a, 0x175c: 0x5b, 0x175d: 0x5c, 0x175e: 0x5d, 0x175f: 0x5e, - 0x1760: 0x5f, 0x1761: 0x60, 0x1762: 0x61, 0x1763: 0x62, 0x1764: 0x63, 0x1765: 0x64, 0x1766: 0x65, 0x1767: 0x66, - 0x1768: 0x67, 0x1769: 0x68, 0x176a: 0x69, 0x176c: 0x6a, 0x176d: 0x6b, 0x176e: 0x6c, 0x176f: 0x6d, - 0x1770: 0x6e, 0x1771: 0x6f, 0x1773: 0x70, 0x1774: 0x71, 0x1775: 0x72, 0x1776: 0x73, 0x1777: 0x74, - 0x1778: 0x281, 0x1779: 0x1f2, 0x177a: 0x77, 0x177b: 0x78, 0x177c: 0x79, 0x177d: 0x7a, 0x177e: 0x7b, 0x177f: 0x7c, - // Block 0x5e, offset 0x1780 - 0x1782: 0x01, 0x1783: 0x02, 0x1784: 0x27e, 0x1785: 0x27f, 0x1786: 0x05, 0x1787: 0x280, - 0x1788: 0x07, 0x1789: 0x08, 0x178a: 0x09, 0x178b: 0x0a, 0x178c: 0x0b, 0x178d: 0x0c, 0x178e: 0x0d, 0x178f: 0x0e, - 0x1790: 0x0f, 0x1791: 0x10, 0x1792: 0x11, 0x1793: 0x12, 0x1794: 0x13, 0x1795: 0x14, 0x1796: 0x15, 0x1797: 0x16, - 0x1798: 0x17, 0x1799: 0x18, 0x179a: 0x19, 0x179b: 0x1a, 0x179c: 0x1b, 0x179d: 0x1c, 0x179e: 0x1d, 0x179f: 0x1e, - 0x17a0: 0x01, 0x17a1: 0x5b, 0x17a2: 0x03, 0x17a3: 0x04, 0x17a4: 0x05, - 0x17aa: 0x06, 0x17ad: 0x07, 0x17af: 0x08, - 0x17b0: 0x13, 0x17b3: 0x15, - // Block 0x5f, offset 0x17c0 - 0x17c0: 0x3f, 0x17c1: 0x40, 0x17c2: 0x41, 0x17c3: 0x42, 0x17c4: 0x43, 0x17c5: 0x44, 0x17c6: 0x45, 0x17c7: 0x46, - 0x17c8: 0x47, 0x17c9: 0x48, 0x17ca: 0x49, 0x17cb: 0x4a, 0x17cc: 0x4b, 0x17cd: 0x4c, 0x17ce: 0x4d, 0x17cf: 0x4e, - 0x17d0: 0x4f, 0x17d1: 0x50, 0x17d2: 0x51, 0x17d3: 0x52, 0x17d4: 0x53, 0x17d5: 0x54, 0x17d6: 0x55, 0x17d7: 0x56, - 0x17d8: 0x57, 0x17d9: 0x58, 0x17da: 0x59, 0x17db: 0x5a, 0x17dc: 0x5b, 0x17dd: 0x5c, 0x17de: 0x5d, 0x17df: 0x5e, - 0x17e0: 0x5f, 0x17e1: 0x60, 0x17e2: 0x61, 0x17e3: 0x62, 0x17e4: 0x63, 0x17e5: 0x64, 0x17e6: 0x65, 0x17e7: 0x66, - 0x17e8: 0x67, 0x17e9: 0x68, 0x17ea: 0x69, 0x17ec: 0x6a, 0x17ed: 0x6b, 0x17ee: 0x6c, 0x17ef: 0x6d, - 0x17f0: 0x6e, 0x17f1: 0x6f, 0x17f3: 0x70, 0x17f4: 0x71, 0x17f5: 0x72, 0x17f6: 0x73, 0x17f7: 0x74, - 0x17f8: 0x75, 0x17f9: 0x1df, 0x17fa: 0x77, 0x17fb: 0x78, 0x17fc: 0x79, 0x17fd: 0x7a, 0x17fe: 0x7b, 0x17ff: 0x7c, - // Block 0x60, offset 0x1800 - 0x1802: 0x01, 0x1803: 0x284, 0x1804: 0x03, 0x1805: 0x285, 0x1806: 0x05, 0x1807: 0x286, - 0x1808: 0x287, 0x1809: 0x08, 0x180a: 0x09, 0x180b: 0x0a, 0x180c: 0x0b, 0x180d: 0x0c, 0x180e: 0x0d, 0x180f: 0x0e, - 0x1810: 0x0f, 0x1811: 0x10, 0x1812: 0x11, 0x1813: 0x12, 0x1814: 0x13, 0x1815: 0x14, 0x1816: 0x15, 0x1817: 0x16, - 0x1818: 0x17, 0x1819: 0x18, 0x181a: 0x19, 0x181b: 0x1a, 0x181c: 0x1b, 0x181d: 0x1c, 0x181e: 0x1d, 0x181f: 0x1e, - 0x1820: 0x01, 0x1821: 0x5d, 0x1822: 0x03, 0x1823: 0x04, 0x1824: 0x05, - 0x182a: 0x06, 0x182d: 0x07, 0x182f: 0x08, - 0x1830: 0x13, 0x1833: 0x15, - // Block 0x61, offset 0x1840 - 0x1842: 0x01, 0x1843: 0x02, 0x1844: 0x03, 0x1845: 0x04, 0x1846: 0x05, 0x1847: 0x06, - 0x1848: 0x07, 0x1849: 0x08, 0x184a: 0x09, 0x184b: 0x0a, 0x184c: 0x0b, 0x184d: 0x0c, 0x184e: 0x0d, 0x184f: 0x0e, - 0x1850: 0x0f, 0x1851: 0x10, 0x1852: 0x11, 0x1853: 0x12, 0x1854: 0x288, 0x1855: 0x14, 0x1856: 0x289, 0x1857: 0x16, - 0x1858: 0x17, 0x1859: 0x18, 0x185a: 0x19, 0x185b: 0x1a, 0x185c: 0x1b, 0x185d: 0x1c, 0x185e: 0x1d, 0x185f: 0x1e, - 0x1860: 0x01, 0x1861: 0x02, 0x1862: 0x03, 0x1863: 0x04, 0x1864: 0x05, - 0x186a: 0x06, 0x186d: 0x07, 0x186f: 0x08, - 0x1870: 0x13, 0x1873: 0x15, - // Block 0x62, offset 0x1880 - 0x1880: 0x3f, 0x1881: 0x40, 0x1882: 0x41, 0x1883: 0x42, 0x1884: 0x43, 0x1885: 0x44, 0x1886: 0x45, 0x1887: 0x46, - 0x1888: 0x47, 0x1889: 0x48, 0x188a: 0x49, 0x188b: 0x4a, 0x188c: 0x4b, 0x188d: 0x4c, 0x188e: 0x4d, 0x188f: 0x4e, - 0x1890: 0x4f, 0x1891: 0x50, 0x1892: 0x51, 0x1893: 0x52, 0x1894: 0x53, 0x1895: 0x54, 0x1896: 0x55, 0x1897: 0x56, - 0x1898: 0x57, 0x1899: 0x58, 0x189a: 0x59, 0x189b: 0x5a, 0x189c: 0x5b, 0x189d: 0x5c, 0x189e: 0x5d, 0x189f: 0x5e, - 0x18a0: 0x5f, 0x18a1: 0x60, 0x18a2: 0x61, 0x18a3: 0x62, 0x18a4: 0x63, 0x18a5: 0x64, 0x18a6: 0x65, 0x18a7: 0x66, - 0x18a8: 0x67, 0x18a9: 0x68, 0x18aa: 0x69, 0x18ac: 0x6a, 0x18ad: 0x6b, 0x18ae: 0x6c, 0x18af: 0x6d, - 0x18b0: 0x6e, 0x18b1: 0x6f, 0x18b3: 0x70, 0x18b4: 0x71, 0x18b5: 0x72, 0x18b6: 0x73, 0x18b7: 0x74, - 0x18b8: 0x75, 0x18b9: 0x28c, 0x18ba: 0x77, 0x18bb: 0x28d, 0x18bc: 0x79, 0x18bd: 0x7a, 0x18be: 0x7b, 0x18bf: 0x7c, - // Block 0x63, offset 0x18c0 - 0x18c2: 0x01, 0x18c3: 0x02, 0x18c4: 0x03, 0x18c5: 0x04, 0x18c6: 0x05, 0x18c7: 0x06, - 0x18c8: 0x07, 0x18c9: 0x08, 0x18ca: 0x09, 0x18cb: 0x0a, 0x18cc: 0x0b, 0x18cd: 0x0c, 0x18ce: 0x0d, 0x18cf: 0x0e, - 0x18d0: 0x0f, 0x18d1: 0x10, 0x18d2: 0x11, 0x18d3: 0x12, 0x18d4: 0x13, 0x18d5: 0x14, 0x18d6: 0x15, 0x18d7: 0x16, - 0x18d8: 0x17, 0x18d9: 0x18, 0x18da: 0x19, 0x18db: 0x1a, 0x18dc: 0x1b, 0x18dd: 0x1c, 0x18de: 0x1d, 0x18df: 0x1e, - 0x18e0: 0x01, 0x18e1: 0x60, 0x18e2: 0x03, 0x18e3: 0x04, 0x18e4: 0x05, - 0x18ea: 0x06, 0x18ed: 0x07, 0x18ef: 0x08, - 0x18f0: 0x13, 0x18f3: 0x15, - // Block 0x64, offset 0x1900 - 0x1900: 0x3f, 0x1901: 0x40, 0x1902: 0x41, 0x1903: 0x42, 0x1904: 0x43, 0x1905: 0x44, 0x1906: 0x45, 0x1907: 0x46, - 0x1908: 0x47, 0x1909: 0x48, 0x190a: 0x49, 0x190b: 0x4a, 0x190c: 0x4b, 0x190d: 0x4c, 0x190e: 0x4d, 0x190f: 0x4e, - 0x1910: 0x4f, 0x1911: 0x50, 0x1912: 0x51, 0x1913: 0x52, 0x1914: 0x53, 0x1915: 0x54, 0x1916: 0x55, 0x1917: 0x56, - 0x1918: 0x57, 0x1919: 0x58, 0x191a: 0x59, 0x191b: 0x5a, 0x191c: 0x5b, 0x191d: 0x5c, 0x191e: 0x5d, 0x191f: 0x5e, - 0x1920: 0x5f, 0x1921: 0x60, 0x1922: 0x61, 0x1923: 0x62, 0x1924: 0x63, 0x1925: 0x64, 0x1926: 0x65, 0x1927: 0x66, - 0x1928: 0x67, 0x1929: 0x68, 0x192a: 0x69, 0x192c: 0x6a, 0x192d: 0x6b, 0x192e: 0x6c, 0x192f: 0x6d, - 0x1930: 0x6e, 0x1931: 0x6f, 0x1933: 0x70, 0x1934: 0x71, 0x1935: 0x72, 0x1936: 0x1fc, 0x1937: 0x74, - 0x1938: 0x294, 0x1939: 0x295, 0x193a: 0x296, 0x193b: 0x297, 0x193c: 0x79, 0x193d: 0x7a, 0x193e: 0x7b, 0x193f: 0x7c, - // Block 0x65, offset 0x1940 - 0x1942: 0x01, 0x1943: 0x290, 0x1944: 0x291, 0x1945: 0x04, 0x1946: 0x05, 0x1947: 0x292, - 0x1948: 0x293, 0x1949: 0x08, 0x194a: 0x09, 0x194b: 0x0a, 0x194c: 0x0b, 0x194d: 0x0c, 0x194e: 0x0d, 0x194f: 0x0e, - 0x1950: 0x0f, 0x1951: 0x10, 0x1952: 0x11, 0x1953: 0x12, 0x1954: 0x13, 0x1955: 0x14, 0x1956: 0x15, 0x1957: 0x16, - 0x1958: 0x17, 0x1959: 0x18, 0x195a: 0x19, 0x195b: 0x1a, 0x195c: 0x1b, 0x195d: 0x1c, 0x195e: 0x1d, 0x195f: 0x1e, - 0x1960: 0x01, 0x1961: 0x62, 0x1962: 0x30, 0x1963: 0x04, 0x1964: 0x05, - 0x196a: 0x06, 0x196d: 0x07, 0x196f: 0x08, - 0x1970: 0x13, 0x1973: 0x15, - // Block 0x66, offset 0x1980 - 0x1980: 0x298, 0x1981: 0x299, 0x1982: 0x29a, 0x1983: 0x29b, 0x1984: 0x29c, 0x1985: 0x29d, 0x1986: 0xc0, 0x1987: 0x29e, - 0x1988: 0x29f, 0x1989: 0x2a0, 0x198a: 0xc4, 0x198b: 0x2a1, 0x198c: 0xc6, 0x198d: 0x2a2, 0x198e: 0xc8, 0x198f: 0x2a3, - // Block 0x67, offset 0x19c0 - 0x19f7: 0xca, - 0x19f8: 0x2a4, 0x19f9: 0x2a5, 0x19fa: 0x2a6, 0x19fb: 0x2a7, 0x19fc: 0x2a8, 0x19fd: 0x2a9, 0x19fe: 0x2aa, 0x19ff: 0x2ab, - // Block 0x68, offset 0x1a00 - 0x1a00: 0x2ac, 0x1a01: 0x2ad, 0x1a02: 0x2ae, 0x1a03: 0x2af, 0x1a04: 0x2b0, 0x1a05: 0x2b1, 0x1a06: 0x2b2, 0x1a07: 0x2b3, - 0x1a08: 0x2b4, 0x1a09: 0x2b5, 0x1a0a: 0x2b6, 0x1a0b: 0x2b7, 0x1a0c: 0x2b8, 0x1a0d: 0x2b9, 0x1a0e: 0x2ba, 0x1a0f: 0x2bb, - 0x1a10: 0x2bc, 0x1a11: 0x2bd, 0x1a12: 0x2be, 0x1a13: 0x2bf, 0x1a14: 0x2c0, 0x1a15: 0x2c1, 0x1a16: 0x2c2, 0x1a17: 0x2c3, - 0x1a18: 0x2c4, 0x1a19: 0x2c5, 0x1a1a: 0x2c6, 0x1a1b: 0x2c7, 0x1a1c: 0x2c8, 0x1a1d: 0x2c9, 0x1a1e: 0x2ca, 0x1a1f: 0x2cb, - 0x1a20: 0x2cc, 0x1a21: 0x2cd, 0x1a22: 0x2ce, 0x1a23: 0x2cf, 0x1a24: 0x2d0, 0x1a25: 0x2d1, 0x1a26: 0x2d2, 0x1a27: 0x2d3, - 0x1a28: 0x2d4, 0x1a29: 0x2d5, 0x1a2a: 0x2d6, 0x1a2b: 0x2d7, 0x1a2c: 0x2d8, 0x1a2d: 0x2d9, 0x1a2e: 0x2da, 0x1a2f: 0x2db, - 0x1a30: 0x2dc, 0x1a31: 0x2dd, 0x1a32: 0x2de, 0x1a33: 0x2df, 0x1a34: 0x2e0, 0x1a35: 0x2e1, 0x1a36: 0x2e2, 0x1a37: 0x2e3, - 0x1a38: 0x2e4, 0x1a39: 0x2e5, 0x1a3a: 0x2e6, 0x1a3b: 0x2e7, 0x1a3c: 0x2e8, 0x1a3d: 0x2e9, 0x1a3e: 0x2ea, 0x1a3f: 0x2eb, - // Block 0x69, offset 0x1a40 - 0x1a40: 0x2ec, 0x1a41: 0x2ed, 0x1a42: 0x2ee, 0x1a43: 0x2ef, 0x1a44: 0x2f0, 0x1a45: 0x2f1, 0x1a46: 0x2f2, 0x1a47: 0x2f3, - 0x1a48: 0x2f4, 0x1a49: 0x2f5, 0x1a4a: 0x2f6, 0x1a4b: 0x2f7, 0x1a4c: 0x2f8, 0x1a4d: 0x2f9, 0x1a4e: 0x2fa, 0x1a4f: 0x2fb, - 0x1a50: 0x2fc, 0x1a51: 0x2fd, 0x1a52: 0x2fe, 0x1a53: 0x2ff, 0x1a54: 0x300, 0x1a55: 0x301, 0x1a56: 0x302, 0x1a57: 0x303, - 0x1a58: 0x304, 0x1a59: 0x305, 0x1a5a: 0x306, 0x1a5b: 0x307, 0x1a5c: 0x308, 0x1a5d: 0x309, 0x1a5e: 0x30a, 0x1a5f: 0x30b, - 0x1a60: 0x30c, 0x1a61: 0x30d, 0x1a62: 0x30e, 0x1a63: 0x30f, 0x1a64: 0x310, 0x1a65: 0x311, 0x1a66: 0x312, 0x1a67: 0x313, - 0x1a68: 0x314, 0x1a69: 0x315, 0x1a6a: 0x316, 0x1a6b: 0x317, 0x1a6c: 0x318, 0x1a6d: 0x319, 0x1a6e: 0x31a, 0x1a6f: 0x31b, - 0x1a70: 0x31c, 0x1a71: 0x31d, 0x1a72: 0x31e, 0x1a73: 0x31f, 0x1a74: 0x320, 0x1a75: 0x321, 0x1a76: 0x322, 0x1a77: 0x323, - 0x1a78: 0x324, 0x1a79: 0x325, 0x1a7a: 0x326, 0x1a7b: 0x327, 0x1a7c: 0x328, 0x1a7d: 0x329, 0x1a7e: 0x32a, 0x1a7f: 0x32b, - // Block 0x6a, offset 0x1a80 - 0x1a80: 0x32c, 0x1a81: 0x32d, 0x1a82: 0x32e, 0x1a83: 0x32f, 0x1a84: 0x330, 0x1a85: 0x331, 0x1a86: 0x332, 0x1a87: 0x333, - 0x1a88: 0x334, 0x1a89: 0x335, 0x1a8a: 0x336, 0x1a8b: 0x337, 0x1a8c: 0x338, 0x1a8d: 0x339, 0x1a8e: 0x33a, 0x1a8f: 0x33b, - 0x1a90: 0x33c, 0x1a91: 0x33d, 0x1a92: 0x33e, 0x1a93: 0x33f, 0x1a94: 0x340, 0x1a95: 0x341, 0x1a96: 0x342, 0x1a97: 0x343, - 0x1a98: 0x344, 0x1a99: 0x345, 0x1a9a: 0x346, 0x1a9b: 0x347, 0x1a9c: 0x348, 0x1a9d: 0x349, 0x1a9e: 0x34a, 0x1a9f: 0x34b, - 0x1aa0: 0x34c, 0x1aa1: 0x34d, 0x1aa2: 0x34e, 0x1aa3: 0x34f, 0x1aa4: 0x350, 0x1aa5: 0x351, 0x1aa6: 0x352, 0x1aa7: 0x353, - 0x1aa8: 0x354, 0x1aa9: 0x355, 0x1aaa: 0x356, 0x1aab: 0x357, 0x1aac: 0x358, 0x1aad: 0x359, 0x1aae: 0x35a, 0x1aaf: 0x35b, - 0x1ab0: 0x35c, 0x1ab1: 0x35d, 0x1ab2: 0x35e, 0x1ab3: 0x35f, 0x1ab4: 0x360, 0x1ab5: 0x361, 0x1ab6: 0x362, 0x1ab7: 0x363, - 0x1ab8: 0x364, 0x1ab9: 0x365, 0x1aba: 0x366, 0x1abc: 0x367, 0x1abd: 0x368, 0x1abe: 0x369, 0x1abf: 0x36a, - // Block 0x6b, offset 0x1ac0 - 0x1ac0: 0x36b, 0x1ac1: 0x36c, 0x1ac2: 0x36d, 0x1ac3: 0x36e, 0x1ac4: 0x36f, 0x1ac5: 0x370, 0x1ac6: 0x371, 0x1ac7: 0x372, - 0x1ac8: 0x373, 0x1ac9: 0x374, 0x1aca: 0x375, 0x1acb: 0x376, 0x1acc: 0x377, 0x1acd: 0x378, 0x1ace: 0x379, 0x1acf: 0x37a, - 0x1ad0: 0x37b, 0x1ad1: 0x37c, 0x1ad2: 0x37d, 0x1ad3: 0x37e, 0x1ad4: 0x37f, 0x1ad5: 0x380, 0x1ad6: 0x381, 0x1ad7: 0x382, - 0x1ad8: 0x383, 0x1ad9: 0x384, 0x1ada: 0x385, 0x1adb: 0x386, 0x1adc: 0x387, 0x1add: 0x388, 0x1ade: 0x389, 0x1adf: 0x38a, - 0x1ae0: 0x38b, 0x1ae1: 0x38c, 0x1ae2: 0x38d, 0x1ae3: 0x38e, 0x1ae4: 0x38f, 0x1ae5: 0x390, 0x1ae6: 0x391, 0x1ae7: 0x392, - 0x1ae8: 0x393, 0x1ae9: 0x394, 0x1aea: 0x395, 0x1aeb: 0x396, 0x1aec: 0x397, 0x1aed: 0x398, 0x1aee: 0x399, - 0x1af0: 0x39a, 0x1af1: 0x39b, 0x1af2: 0x39c, 0x1af3: 0x39d, 0x1af4: 0x39e, 0x1af5: 0x39f, 0x1af6: 0x3a0, 0x1af7: 0x3a1, - 0x1af8: 0x3a2, 0x1af9: 0x3a3, 0x1afa: 0x3a4, 0x1afb: 0x3a5, 0x1afc: 0x3a6, 0x1afd: 0x3a7, 0x1afe: 0x3a8, 0x1aff: 0x3a9, - // Block 0x6c, offset 0x1b00 - 0x1b00: 0x3aa, 0x1b01: 0x3ab, 0x1b02: 0x3ac, 0x1b03: 0x3ad, 0x1b04: 0x3ae, 0x1b05: 0x3af, 0x1b06: 0x3b0, 0x1b07: 0x3b1, - 0x1b08: 0x3b2, 0x1b09: 0x3b3, 0x1b0a: 0x3b4, 0x1b0b: 0x3b5, 0x1b0c: 0x3b6, 0x1b0d: 0x3b7, 0x1b0e: 0x3b8, 0x1b0f: 0x3b9, - 0x1b10: 0x3ba, 0x1b11: 0x3bb, 0x1b12: 0x3bc, 0x1b15: 0x3bd, 0x1b16: 0x3be, 0x1b17: 0x3bf, - 0x1b18: 0x3c0, 0x1b19: 0x3c1, 0x1b1a: 0x3c2, 0x1b1b: 0x3c3, 0x1b1c: 0x3c4, 0x1b1d: 0x3c5, 0x1b1e: 0x3c6, 0x1b1f: 0x3c7, - 0x1b20: 0x3c8, 0x1b21: 0x3c9, 0x1b22: 0x3ca, 0x1b23: 0x3cb, 0x1b24: 0x3cc, 0x1b25: 0x3cd, 0x1b26: 0x3ce, 0x1b27: 0x3cf, - 0x1b28: 0x3d0, 0x1b29: 0x3d1, 0x1b2a: 0x3d2, 0x1b2b: 0x3d3, 0x1b2c: 0x3d4, 0x1b2d: 0x3d5, 0x1b2e: 0x3d6, 0x1b2f: 0x3d7, - 0x1b30: 0x3d8, 0x1b31: 0x3d9, 0x1b33: 0x3da, 0x1b34: 0x3db, 0x1b35: 0x3dc, 0x1b36: 0x3dd, 0x1b37: 0x3de, - 0x1b38: 0x3df, 0x1b39: 0x3e0, 0x1b3a: 0x3e1, 0x1b3b: 0x3e2, 0x1b3c: 0x3e3, 0x1b3d: 0x3e4, 0x1b3e: 0x3e5, - // Block 0x6d, offset 0x1b40 - 0x1b64: 0x3e6, 0x1b65: 0x3e7, 0x1b66: 0x3e8, 0x1b67: 0x3e9, - 0x1b68: 0x3ea, 0x1b69: 0x3eb, 0x1b6a: 0x3ec, 0x1b6b: 0x3ed, 0x1b6c: 0x103, 0x1b6d: 0x104, 0x1b6e: 0x105, 0x1b6f: 0x106, - 0x1b70: 0x107, 0x1b71: 0x108, 0x1b72: 0x109, 0x1b73: 0x10a, 0x1b74: 0x10b, 0x1b75: 0x10c, 0x1b76: 0x10d, 0x1b77: 0x10e, - 0x1b78: 0x10f, 0x1b79: 0x110, 0x1b7a: 0x111, 0x1b7b: 0x112, 0x1b7c: 0x3ee, 0x1b7d: 0x3ef, 0x1b7e: 0x3f0, 0x1b7f: 0x3f1, - // Block 0x6e, offset 0x1b80 - 0x1b80: 0x18b, 0x1b81: 0x18c, 0x1b82: 0x18d, 0x1b83: 0x18e, 0x1b84: 0x18f, 0x1b85: 0x190, 0x1b86: 0x191, 0x1b87: 0x192, - 0x1b88: 0x193, 0x1b89: 0x3f2, 0x1b8c: 0x195, 0x1b8d: 0x196, 0x1b8e: 0x197, 0x1b8f: 0x198, - 0x1b90: 0x199, 0x1b91: 0x19a, 0x1b92: 0x19b, 0x1b93: 0x19c, 0x1b94: 0x19d, 0x1b95: 0x19e, 0x1b97: 0x19f, - 0x1b98: 0x1a0, 0x1b99: 0x1a1, 0x1b9a: 0x1a2, 0x1b9b: 0x1a3, 0x1b9c: 0x1a4, 0x1b9d: 0x1a5, - // Block 0x6f, offset 0x1bc0 - 0x1be0: 0x3f3, 0x1be1: 0x3f4, 0x1be2: 0x3f5, 0x1be3: 0x3f6, 0x1be4: 0x3f7, 0x1be5: 0x3f8, 0x1be6: 0x3f9, 0x1be7: 0x3fa, - 0x1be8: 0x3fb, - // Block 0x70, offset 0x1c00 - 0x1c10: 0x09, 0x1c11: 0x0a, 0x1c12: 0x0b, 0x1c13: 0x0c, 0x1c16: 0x0d, - 0x1c1b: 0x0e, 0x1c1d: 0x0f, 0x1c1e: 0x10, 0x1c1f: 0x6c, - 0x1c2f: 0x6d, - // Block 0x71, offset 0x1c40 - 0x1c42: 0x01, 0x1c43: 0x02, 0x1c44: 0x03, 0x1c45: 0x04, 0x1c46: 0x05, 0x1c47: 0x06, - 0x1c48: 0x07, 0x1c49: 0x08, 0x1c4a: 0x09, 0x1c4b: 0x0a, 0x1c4c: 0x0b, 0x1c4d: 0x0c, 0x1c4e: 0x0d, 0x1c4f: 0x0e, - 0x1c50: 0x0f, 0x1c51: 0x10, 0x1c52: 0x11, 0x1c53: 0x12, 0x1c54: 0x13, 0x1c55: 0x14, 0x1c56: 0x15, 0x1c57: 0x16, - 0x1c58: 0x17, 0x1c59: 0x18, 0x1c5a: 0x19, 0x1c5b: 0x1a, 0x1c5c: 0x1b, 0x1c5d: 0x1c, 0x1c5e: 0x1d, 0x1c5f: 0x1e, - 0x1c60: 0x01, 0x1c61: 0x02, 0x1c62: 0x03, 0x1c63: 0x64, 0x1c64: 0x65, 0x1c65: 0x66, 0x1c66: 0x67, 0x1c67: 0x68, - 0x1c68: 0x69, 0x1c69: 0x6a, 0x1c6a: 0x06, 0x1c6d: 0x07, 0x1c6f: 0x6b, - 0x1c70: 0x6e, 0x1c73: 0x15, - // Block 0x72, offset 0x1c80 - 0x1c82: 0x01, 0x1c83: 0x02, 0x1c84: 0x03, 0x1c85: 0x04, 0x1c86: 0x05, 0x1c87: 0x06, - 0x1c88: 0x07, 0x1c89: 0x08, 0x1c8a: 0x09, 0x1c8b: 0x0a, 0x1c8c: 0x0b, 0x1c8d: 0x0c, 0x1c8e: 0x0d, 0x1c8f: 0x0e, - 0x1c90: 0x3fc, 0x1c91: 0x3fd, 0x1c92: 0x3fe, 0x1c93: 0x12, 0x1c94: 0x13, 0x1c95: 0x14, 0x1c96: 0x15, 0x1c97: 0x16, - 0x1c98: 0x17, 0x1c99: 0x18, 0x1c9a: 0x19, 0x1c9b: 0x1a, 0x1c9c: 0x1b, 0x1c9d: 0x1c, 0x1c9e: 0x1d, 0x1c9f: 0x1e, - 0x1ca0: 0x01, 0x1ca1: 0x02, 0x1ca2: 0x03, 0x1ca3: 0x04, 0x1ca4: 0x05, - 0x1caa: 0x06, 0x1cad: 0x07, 0x1caf: 0x08, - 0x1cb0: 0x13, 0x1cb3: 0x15, - // Block 0x73, offset 0x1cc0 - 0x1cc2: 0x01, 0x1cc3: 0x1f7, 0x1cc4: 0x401, 0x1cc5: 0x1f9, 0x1cc6: 0x05, 0x1cc7: 0x1fa, - 0x1cc8: 0x1fb, 0x1cc9: 0x08, 0x1cca: 0x09, 0x1ccb: 0x0a, 0x1ccc: 0x0b, 0x1ccd: 0x0c, 0x1cce: 0x0d, 0x1ccf: 0x0e, - 0x1cd0: 0x0f, 0x1cd1: 0x10, 0x1cd2: 0x11, 0x1cd3: 0x12, 0x1cd4: 0x13, 0x1cd5: 0x14, 0x1cd6: 0x15, 0x1cd7: 0x16, - 0x1cd8: 0x17, 0x1cd9: 0x18, 0x1cda: 0x19, 0x1cdb: 0x1a, 0x1cdc: 0x1b, 0x1cdd: 0x1c, 0x1cde: 0x1d, 0x1cdf: 0x1e, - 0x1ce0: 0x01, 0x1ce1: 0x2f, 0x1ce2: 0x30, 0x1ce3: 0x04, 0x1ce4: 0x05, - 0x1cea: 0x06, 0x1ced: 0x07, 0x1cef: 0x08, - 0x1cf0: 0x13, 0x1cf3: 0x15, - // Block 0x74, offset 0x1d00 - 0x1d00: 0x3f, 0x1d01: 0x40, 0x1d02: 0x41, 0x1d03: 0x42, 0x1d04: 0x43, 0x1d05: 0x44, 0x1d06: 0x45, 0x1d07: 0x46, - 0x1d08: 0x47, 0x1d09: 0x48, 0x1d0a: 0x49, 0x1d0b: 0x4a, 0x1d0c: 0x4b, 0x1d0d: 0x4c, 0x1d0e: 0x4d, 0x1d0f: 0x4e, - 0x1d10: 0x4f, 0x1d11: 0x50, 0x1d12: 0x51, 0x1d13: 0x52, 0x1d14: 0x53, 0x1d15: 0x54, 0x1d16: 0x55, 0x1d17: 0x56, - 0x1d18: 0x57, 0x1d19: 0x58, 0x1d1a: 0x59, 0x1d1b: 0x5a, 0x1d1c: 0x5b, 0x1d1d: 0x5c, 0x1d1e: 0x402, 0x1d1f: 0x403, - 0x1d20: 0x5f, 0x1d21: 0x60, 0x1d22: 0x61, 0x1d23: 0x62, 0x1d24: 0x63, 0x1d25: 0x64, 0x1d26: 0x65, 0x1d27: 0x66, - 0x1d28: 0x67, 0x1d29: 0x68, 0x1d2a: 0x69, 0x1d2c: 0x6a, 0x1d2d: 0x6b, 0x1d2e: 0x6c, 0x1d2f: 0x6d, - 0x1d30: 0x6e, 0x1d31: 0x6f, 0x1d33: 0x70, 0x1d34: 0x71, 0x1d35: 0x72, 0x1d36: 0x73, 0x1d37: 0x74, - 0x1d38: 0x75, 0x1d39: 0x76, 0x1d3a: 0x77, 0x1d3b: 0x78, 0x1d3c: 0x79, 0x1d3d: 0x7a, 0x1d3e: 0x7b, 0x1d3f: 0x7c, - // Block 0x75, offset 0x1d40 - 0x1d42: 0x01, 0x1d43: 0x02, 0x1d44: 0x03, 0x1d45: 0x04, 0x1d46: 0x05, 0x1d47: 0x06, - 0x1d48: 0x07, 0x1d49: 0x08, 0x1d4a: 0x09, 0x1d4b: 0x0a, 0x1d4c: 0x0b, 0x1d4d: 0x0c, 0x1d4e: 0x0d, 0x1d4f: 0x0e, - 0x1d50: 0x0f, 0x1d51: 0x10, 0x1d52: 0x11, 0x1d53: 0x12, 0x1d54: 0x13, 0x1d55: 0x14, 0x1d56: 0x15, 0x1d57: 0x16, - 0x1d58: 0x17, 0x1d59: 0x18, 0x1d5a: 0x19, 0x1d5b: 0x1a, 0x1d5c: 0x1b, 0x1d5d: 0x1c, 0x1d5e: 0x1d, 0x1d5f: 0x1e, - 0x1d60: 0x01, 0x1d61: 0x72, 0x1d62: 0x03, 0x1d63: 0x04, 0x1d64: 0x05, - 0x1d6a: 0x06, 0x1d6d: 0x07, 0x1d6f: 0x08, - 0x1d70: 0x13, 0x1d73: 0x15, - // Block 0x76, offset 0x1d80 - 0x1da0: 0x1f, 0x1da1: 0x20, 0x1da2: 0x21, 0x1da3: 0x22, 0x1da4: 0x23, 0x1da5: 0x24, 0x1da6: 0x25, 0x1da7: 0x26, - 0x1da8: 0x27, 0x1da9: 0x28, 0x1daa: 0x29, 0x1dab: 0x2a, 0x1dac: 0x2b, 0x1dad: 0x2c, 0x1dae: 0x2d, 0x1daf: 0x2e, - 0x1db0: 0x2f, 0x1db1: 0x30, 0x1db2: 0x404, 0x1db3: 0x405, 0x1db4: 0x33, 0x1db5: 0x34, 0x1db6: 0x35, 0x1db7: 0x36, - 0x1db8: 0x37, 0x1db9: 0x38, 0x1dba: 0x39, 0x1dbb: 0x3a, 0x1dbc: 0x3b, 0x1dbd: 0x3c, 0x1dbe: 0x3d, 0x1dbf: 0x3e, - // Block 0x77, offset 0x1dc0 - 0x1dc2: 0x01, 0x1dc3: 0x02, 0x1dc4: 0x03, 0x1dc5: 0x04, 0x1dc6: 0x05, 0x1dc7: 0x06, - 0x1dc8: 0x07, 0x1dc9: 0x08, 0x1dca: 0x09, 0x1dcb: 0x0a, 0x1dcc: 0x0b, 0x1dcd: 0x0c, 0x1dce: 0x0d, 0x1dcf: 0x0e, - 0x1dd0: 0x0f, 0x1dd1: 0x10, 0x1dd2: 0x11, 0x1dd3: 0x12, 0x1dd4: 0x13, 0x1dd5: 0x14, 0x1dd6: 0x15, 0x1dd7: 0x16, - 0x1dd8: 0x17, 0x1dd9: 0x18, 0x1dda: 0x19, 0x1ddb: 0x1a, 0x1ddc: 0x1b, 0x1ddd: 0x1c, 0x1dde: 0x1d, 0x1ddf: 0x1e, - 0x1de0: 0x74, 0x1de1: 0x02, 0x1de2: 0x03, 0x1de3: 0x04, 0x1de4: 0x05, - 0x1dea: 0x06, 0x1ded: 0x07, 0x1def: 0x08, - 0x1df0: 0x13, 0x1df3: 0x15, - // Block 0x78, offset 0x1e00 - 0x1e00: 0xba, 0x1e01: 0xbb, 0x1e02: 0xbc, 0x1e03: 0xbd, 0x1e04: 0xbe, 0x1e05: 0xbf, 0x1e06: 0xc0, 0x1e07: 0xc1, - 0x1e08: 0x406, 0x1e09: 0x2a0, 0x1e0a: 0xc4, 0x1e0b: 0x2a1, 0x1e0c: 0xc6, 0x1e0d: 0x2a2, 0x1e0e: 0xc8, 0x1e0f: 0x2a3, - // Block 0x79, offset 0x1e40 - 0x1e77: 0xca, - 0x1e78: 0x407, 0x1e79: 0x408, 0x1e7a: 0x409, 0x1e7b: 0x40a, 0x1e7c: 0x40b, 0x1e7d: 0x40c, 0x1e7e: 0x40d, 0x1e7f: 0x40e, - // Block 0x7a, offset 0x1e80 - 0x1e80: 0x40f, 0x1e81: 0x410, 0x1e82: 0x411, 0x1e83: 0x412, 0x1e84: 0x413, 0x1e85: 0x414, 0x1e86: 0x415, 0x1e87: 0x416, - 0x1e88: 0x417, 0x1e89: 0x418, 0x1e8a: 0x419, 0x1e8b: 0x41a, 0x1e8c: 0x41b, 0x1e8d: 0x41c, 0x1e8e: 0x41d, 0x1e8f: 0x41e, - 0x1e90: 0x41f, 0x1e91: 0x420, 0x1e92: 0x421, 0x1e93: 0x422, 0x1e94: 0x423, 0x1e95: 0x424, 0x1e96: 0x425, 0x1e97: 0x426, - 0x1e98: 0x427, 0x1e99: 0x428, 0x1e9a: 0x429, 0x1e9b: 0x42a, 0x1e9c: 0x42b, 0x1e9d: 0x42c, 0x1e9e: 0x42d, 0x1e9f: 0x42e, - 0x1ea0: 0x42f, 0x1ea1: 0x430, 0x1ea2: 0x431, 0x1ea3: 0x432, 0x1ea4: 0x433, 0x1ea5: 0x434, 0x1ea6: 0x435, 0x1ea7: 0x436, - 0x1ea8: 0x437, 0x1ea9: 0x438, 0x1eaa: 0x439, 0x1eab: 0x43a, 0x1eac: 0x43b, 0x1ead: 0x43c, 0x1eae: 0x43d, 0x1eaf: 0x43e, - 0x1eb0: 0x43f, 0x1eb1: 0x440, 0x1eb2: 0x441, 0x1eb3: 0x442, 0x1eb4: 0x443, 0x1eb5: 0x444, 0x1eb6: 0x445, 0x1eb7: 0x446, - 0x1eb8: 0x447, 0x1eb9: 0x448, 0x1eba: 0x449, 0x1ebb: 0x44a, 0x1ebc: 0x44b, 0x1ebd: 0x44c, 0x1ebe: 0x44d, 0x1ebf: 0x44e, - // Block 0x7b, offset 0x1ec0 - 0x1ec0: 0x44f, 0x1ec1: 0x450, 0x1ec2: 0x451, 0x1ec3: 0x452, 0x1ec4: 0x453, 0x1ec5: 0x454, 0x1ec6: 0x455, 0x1ec7: 0x456, - 0x1ec8: 0x457, 0x1ec9: 0x458, 0x1eca: 0x459, 0x1ecb: 0x45a, 0x1ecc: 0x45b, 0x1ecd: 0x45c, 0x1ece: 0x45d, 0x1ecf: 0x45e, - 0x1ed0: 0x45f, 0x1ed1: 0x460, 0x1ed2: 0x461, 0x1ed3: 0x462, 0x1ed4: 0x463, 0x1ed5: 0x464, 0x1ed6: 0x465, 0x1ed7: 0x466, - 0x1ed8: 0x467, 0x1ed9: 0x468, 0x1eda: 0x469, 0x1edb: 0x46a, 0x1edc: 0x46b, 0x1edd: 0x46c, 0x1ede: 0x46d, 0x1edf: 0x46e, - 0x1ee0: 0x46f, 0x1ee1: 0x470, 0x1ee2: 0x471, 0x1ee3: 0x472, 0x1ee4: 0x473, 0x1ee5: 0x474, 0x1ee6: 0x475, 0x1ee7: 0x476, - 0x1ee8: 0x477, 0x1ee9: 0x478, 0x1eea: 0x479, 0x1eeb: 0x47a, 0x1eec: 0x47b, 0x1eed: 0x47c, 0x1eee: 0x47d, 0x1eef: 0x47e, - 0x1ef0: 0x47f, 0x1ef1: 0x480, 0x1ef2: 0x481, 0x1ef3: 0x482, 0x1ef4: 0x483, 0x1ef5: 0x484, 0x1ef6: 0x485, 0x1ef7: 0x486, - 0x1ef8: 0x487, 0x1ef9: 0x488, 0x1efa: 0x489, 0x1efb: 0x48a, 0x1efc: 0x48b, 0x1efd: 0x48c, 0x1efe: 0x48d, 0x1eff: 0x48e, - // Block 0x7c, offset 0x1f00 - 0x1f00: 0x48f, 0x1f01: 0x490, 0x1f02: 0x491, 0x1f03: 0x492, 0x1f04: 0x493, 0x1f05: 0x494, 0x1f06: 0x495, 0x1f07: 0x496, - 0x1f08: 0x497, 0x1f09: 0x498, 0x1f0a: 0x499, 0x1f0b: 0x49a, 0x1f0c: 0x49b, 0x1f0d: 0x49c, 0x1f0e: 0x49d, 0x1f0f: 0x49e, - 0x1f10: 0x49f, 0x1f11: 0x4a0, 0x1f12: 0x4a1, 0x1f13: 0x4a2, 0x1f14: 0x4a3, 0x1f15: 0x4a4, 0x1f16: 0x4a5, 0x1f17: 0x4a6, - 0x1f18: 0x4a7, 0x1f19: 0x4a8, 0x1f1a: 0x4a9, 0x1f1b: 0x4aa, 0x1f1c: 0x4ab, 0x1f1d: 0x4ac, 0x1f1e: 0x4ad, 0x1f1f: 0x4ae, - 0x1f20: 0x4af, 0x1f21: 0x4b0, 0x1f22: 0x4b1, 0x1f23: 0x4b2, 0x1f24: 0x4b3, 0x1f25: 0x4b4, 0x1f26: 0x4b5, 0x1f27: 0x4b6, - 0x1f28: 0x4b7, 0x1f29: 0x4b8, 0x1f2a: 0x4b9, 0x1f2b: 0x4ba, 0x1f2c: 0x4bb, 0x1f2d: 0x4bc, 0x1f2e: 0x4bd, 0x1f2f: 0x4be, - 0x1f30: 0x4bf, 0x1f31: 0x4c0, 0x1f32: 0x4c1, 0x1f33: 0x4c2, 0x1f34: 0x4c3, 0x1f35: 0x4c4, 0x1f36: 0x4c5, 0x1f37: 0x4c6, - 0x1f38: 0x4c7, 0x1f39: 0x4c8, 0x1f3a: 0x4c9, 0x1f3c: 0x4ca, 0x1f3d: 0x4cb, 0x1f3e: 0x4cc, 0x1f3f: 0x4cd, - // Block 0x7d, offset 0x1f40 - 0x1f40: 0x4ce, 0x1f41: 0x4cf, 0x1f42: 0x4d0, 0x1f43: 0x4d1, 0x1f44: 0x4d2, 0x1f45: 0x4d3, 0x1f46: 0x4d4, 0x1f47: 0x4d5, - 0x1f48: 0x4d6, 0x1f49: 0x4d7, 0x1f4a: 0x4d8, 0x1f4b: 0x4d9, 0x1f4c: 0x4da, 0x1f4d: 0x4db, 0x1f4e: 0x4dc, 0x1f4f: 0x4dd, - 0x1f50: 0x4de, 0x1f51: 0x4df, 0x1f52: 0x4e0, 0x1f53: 0x4e1, 0x1f54: 0x4e2, 0x1f55: 0x4e3, 0x1f56: 0x4e4, 0x1f57: 0x4e5, - 0x1f58: 0x4e6, 0x1f59: 0x4e7, 0x1f5a: 0x4e8, 0x1f5b: 0x4e9, 0x1f5c: 0x4ea, 0x1f5d: 0x4eb, 0x1f5e: 0x4ec, 0x1f5f: 0x4ed, - 0x1f60: 0x4ee, 0x1f61: 0x4ef, 0x1f62: 0x4f0, 0x1f63: 0x4f1, 0x1f64: 0x4f2, 0x1f65: 0x4f3, 0x1f66: 0x4f4, 0x1f67: 0x4f5, - 0x1f68: 0x4f6, 0x1f69: 0x4f7, 0x1f6a: 0x4f8, 0x1f6b: 0x4f9, 0x1f6c: 0x4fa, 0x1f6d: 0x4fb, 0x1f6e: 0x4fc, - 0x1f70: 0x4fd, 0x1f71: 0x4fe, 0x1f72: 0x4ff, 0x1f73: 0x500, 0x1f74: 0x501, 0x1f75: 0x502, 0x1f76: 0x503, 0x1f77: 0x504, - 0x1f78: 0x505, 0x1f79: 0x506, 0x1f7a: 0x507, 0x1f7b: 0x508, 0x1f7c: 0x509, 0x1f7d: 0x50a, 0x1f7e: 0x50b, 0x1f7f: 0x50c, - // Block 0x7e, offset 0x1f80 - 0x1f80: 0x50d, 0x1f81: 0x50e, 0x1f82: 0x50f, 0x1f83: 0x510, 0x1f84: 0x511, 0x1f85: 0x512, 0x1f86: 0x513, 0x1f87: 0x514, - 0x1f88: 0x515, 0x1f89: 0x516, 0x1f8a: 0x517, 0x1f8b: 0x518, 0x1f8c: 0x519, 0x1f8d: 0x51a, 0x1f8e: 0x51b, 0x1f8f: 0x51c, - 0x1f90: 0x51d, 0x1f91: 0x51e, 0x1f95: 0x51f, 0x1f96: 0x520, 0x1f97: 0x521, - 0x1f98: 0x522, 0x1f99: 0x523, 0x1f9a: 0x524, 0x1f9b: 0x525, 0x1f9c: 0x526, 0x1f9d: 0x527, 0x1f9e: 0x528, 0x1f9f: 0x529, - 0x1fa0: 0x52a, 0x1fa1: 0x52b, 0x1fa2: 0x52c, 0x1fa3: 0x52d, 0x1fa4: 0x52e, 0x1fa5: 0x52f, 0x1fa6: 0x530, 0x1fa7: 0x531, - 0x1fa8: 0x532, 0x1fa9: 0x533, 0x1faa: 0x534, 0x1fab: 0x535, 0x1fac: 0x536, 0x1fad: 0x537, 0x1fae: 0x538, 0x1faf: 0x539, - 0x1fb0: 0x53a, 0x1fb1: 0x53b, 0x1fb3: 0x53c, 0x1fb4: 0x53d, 0x1fb5: 0x53e, 0x1fb6: 0x53f, 0x1fb7: 0x540, - 0x1fb8: 0x541, 0x1fb9: 0x542, 0x1fba: 0x543, 0x1fbb: 0x544, 0x1fbc: 0x545, 0x1fbd: 0x546, 0x1fbe: 0x547, - // Block 0x7f, offset 0x1fc0 - 0x1fe4: 0x548, 0x1fe5: 0x549, 0x1fe6: 0x54a, 0x1fe7: 0x54b, - 0x1fe8: 0x54c, 0x1fe9: 0x54d, 0x1fea: 0x54e, 0x1feb: 0x54f, 0x1fec: 0x103, 0x1fed: 0x104, 0x1fee: 0x105, 0x1fef: 0x106, - 0x1ff0: 0x107, 0x1ff1: 0x108, 0x1ff2: 0x109, 0x1ff3: 0x10a, 0x1ff4: 0x10b, 0x1ff5: 0x10c, 0x1ff6: 0x10d, 0x1ff7: 0x10e, - 0x1ff8: 0x10f, 0x1ff9: 0x110, 0x1ffa: 0x111, 0x1ffb: 0x112, 0x1ffc: 0x113, 0x1ffd: 0x114, 0x1ffe: 0x115, 0x1fff: 0x116, - // Block 0x80, offset 0x2000 - 0x2000: 0x18b, 0x2001: 0x18c, 0x2002: 0x18d, 0x2003: 0x18e, 0x2004: 0x18f, 0x2005: 0x190, 0x2006: 0x191, 0x2007: 0x192, - 0x2008: 0x193, 0x2009: 0x550, 0x200c: 0x195, 0x200d: 0x196, 0x200e: 0x197, 0x200f: 0x198, - 0x2010: 0x199, 0x2011: 0x19a, 0x2012: 0x19b, 0x2013: 0x19c, 0x2014: 0x19d, 0x2015: 0x19e, 0x2017: 0x19f, - 0x2018: 0x1a0, 0x2019: 0x1a1, 0x201a: 0x1a2, 0x201b: 0x1a3, 0x201c: 0x1a4, 0x201d: 0x1a5, - // Block 0x81, offset 0x2040 - 0x2060: 0x551, 0x2061: 0x552, 0x2062: 0x553, 0x2063: 0x554, 0x2064: 0x555, 0x2065: 0x556, 0x2066: 0x557, 0x2067: 0x558, - 0x2068: 0x559, - // Block 0x82, offset 0x2080 - 0x2090: 0x09, 0x2091: 0x0a, 0x2092: 0x0b, 0x2093: 0x0c, 0x2096: 0x0d, - 0x209b: 0x0e, 0x209d: 0x0f, 0x209e: 0x10, 0x209f: 0x7e, - 0x20af: 0x7f, - // Block 0x83, offset 0x20c0 - 0x20c2: 0x01, 0x20c3: 0x02, 0x20c4: 0x03, 0x20c5: 0x04, 0x20c6: 0x05, 0x20c7: 0x06, - 0x20c8: 0x07, 0x20c9: 0x08, 0x20ca: 0x09, 0x20cb: 0x0a, 0x20cc: 0x0b, 0x20cd: 0x0c, 0x20ce: 0x0d, 0x20cf: 0x0e, - 0x20d0: 0x0f, 0x20d1: 0x10, 0x20d2: 0x11, 0x20d3: 0x12, 0x20d4: 0x13, 0x20d5: 0x14, 0x20d6: 0x15, 0x20d7: 0x16, - 0x20d8: 0x17, 0x20d9: 0x18, 0x20da: 0x19, 0x20db: 0x1a, 0x20dc: 0x1b, 0x20dd: 0x1c, 0x20de: 0x1d, 0x20df: 0x1e, - 0x20e0: 0x01, 0x20e1: 0x02, 0x20e2: 0x03, 0x20e3: 0x76, 0x20e4: 0x77, 0x20e5: 0x78, 0x20e6: 0x79, 0x20e7: 0x7a, - 0x20e8: 0x7b, 0x20e9: 0x7c, 0x20ea: 0x06, 0x20ed: 0x07, 0x20ef: 0x7d, - 0x20f0: 0x80, 0x20f3: 0x15, - // Block 0x84, offset 0x2100 - 0x2120: 0x1f, 0x2121: 0x20, 0x2122: 0x21, 0x2123: 0x22, 0x2124: 0x55a, 0x2125: 0x24, 0x2126: 0x25, 0x2127: 0x26, - 0x2128: 0x27, 0x2129: 0x28, 0x212a: 0x29, 0x212b: 0x2a, 0x212c: 0x2b, 0x212d: 0x2c, 0x212e: 0x2d, 0x212f: 0x2e, - 0x2130: 0x2f, 0x2131: 0x30, 0x2132: 0x31, 0x2133: 0x32, 0x2134: 0x33, 0x2135: 0x34, 0x2136: 0x35, 0x2137: 0x36, - 0x2138: 0x37, 0x2139: 0x38, 0x213a: 0x39, 0x213b: 0x3a, 0x213c: 0x3b, 0x213d: 0x3c, 0x213e: 0x3d, 0x213f: 0x3e, - // Block 0x85, offset 0x2140 - 0x2142: 0x01, 0x2143: 0x02, 0x2144: 0x03, 0x2145: 0x04, 0x2146: 0x05, 0x2147: 0x06, - 0x2148: 0x07, 0x2149: 0x08, 0x214a: 0x09, 0x214b: 0x0a, 0x214c: 0x0b, 0x214d: 0x0c, 0x214e: 0x0d, 0x214f: 0x0e, - 0x2150: 0x0f, 0x2151: 0x10, 0x2152: 0x11, 0x2153: 0x12, 0x2154: 0x13, 0x2155: 0x14, 0x2156: 0x15, 0x2157: 0x16, - 0x2158: 0x17, 0x2159: 0x18, 0x215a: 0x19, 0x215b: 0x1a, 0x215c: 0x1b, 0x215d: 0x1c, 0x215e: 0x1d, 0x215f: 0x1e, - 0x2160: 0x82, 0x2161: 0x02, 0x2162: 0x03, 0x2163: 0x04, 0x2164: 0x05, - 0x216a: 0x06, 0x216d: 0x07, 0x216f: 0x08, - 0x2170: 0x13, 0x2173: 0x15, - // Block 0x86, offset 0x2180 - 0x2182: 0x01, 0x2183: 0x02, 0x2184: 0x03, 0x2185: 0x04, 0x2186: 0x55b, 0x2187: 0x06, - 0x2188: 0x07, 0x2189: 0x55c, 0x218a: 0x09, 0x218b: 0x0a, 0x218c: 0x0b, 0x218d: 0x0c, 0x218e: 0x0d, 0x218f: 0x0e, - 0x2190: 0x0f, 0x2191: 0x10, 0x2192: 0x11, 0x2193: 0x12, 0x2194: 0x13, 0x2195: 0x14, 0x2196: 0x15, 0x2197: 0x16, - 0x2198: 0x17, 0x2199: 0x18, 0x219a: 0x19, 0x219b: 0x1a, 0x219c: 0x1b, 0x219d: 0x1c, 0x219e: 0x1d, 0x219f: 0x1e, - 0x21a0: 0x01, 0x21a1: 0x02, 0x21a2: 0x03, 0x21a3: 0x04, 0x21a4: 0x05, - 0x21aa: 0x06, 0x21ad: 0x07, 0x21af: 0x08, - 0x21b0: 0x13, 0x21b3: 0x15, - // Block 0x87, offset 0x21c0 - 0x21c0: 0x3f, 0x21c1: 0x40, 0x21c2: 0x41, 0x21c3: 0x42, 0x21c4: 0x43, 0x21c5: 0x44, 0x21c6: 0x45, 0x21c7: 0x46, - 0x21c8: 0x47, 0x21c9: 0x48, 0x21ca: 0x49, 0x21cb: 0x4a, 0x21cc: 0x4b, 0x21cd: 0x4c, 0x21ce: 0x4d, 0x21cf: 0x4e, - 0x21d0: 0x4f, 0x21d1: 0x50, 0x21d2: 0x51, 0x21d3: 0x52, 0x21d4: 0x53, 0x21d5: 0x54, 0x21d6: 0x55, 0x21d7: 0x56, - 0x21d8: 0x57, 0x21d9: 0x58, 0x21da: 0x59, 0x21db: 0x5a, 0x21dc: 0x5b, 0x21dd: 0x5c, 0x21de: 0x5d, 0x21df: 0x5e, - 0x21e0: 0x5f, 0x21e1: 0x60, 0x21e2: 0x61, 0x21e3: 0x62, 0x21e4: 0x63, 0x21e5: 0x64, 0x21e6: 0x65, 0x21e7: 0x66, - 0x21e8: 0x67, 0x21e9: 0x68, 0x21ea: 0x69, 0x21ec: 0x6a, 0x21ed: 0x6b, 0x21ee: 0x6c, 0x21ef: 0x6d, - 0x21f0: 0x6e, 0x21f1: 0x6f, 0x21f3: 0x70, 0x21f4: 0x71, 0x21f5: 0x72, 0x21f6: 0x73, 0x21f7: 0x74, - 0x21f8: 0x75, 0x21f9: 0x565, 0x21fa: 0x566, 0x21fb: 0x567, 0x21fc: 0x79, 0x21fd: 0x7a, 0x21fe: 0x7b, 0x21ff: 0x7c, - // Block 0x88, offset 0x2200 - 0x2200: 0x7d, 0x2201: 0x7e, 0x2202: 0x7f, 0x2203: 0x80, 0x2204: 0x81, 0x2205: 0x82, 0x2206: 0x83, 0x2207: 0x84, - 0x2208: 0x85, 0x2209: 0x86, 0x220a: 0x87, 0x220b: 0x88, 0x220c: 0x89, 0x220d: 0x8a, 0x220e: 0x8b, 0x220f: 0x8c, - 0x2210: 0x8d, 0x2211: 0x8e, 0x2212: 0x568, 0x2213: 0x90, 0x2214: 0x91, 0x2215: 0x92, 0x2216: 0x93, 0x2217: 0x94, - 0x2218: 0x95, 0x2219: 0x96, 0x221a: 0x97, 0x221b: 0x98, 0x221c: 0x99, 0x221d: 0x9a, 0x221e: 0x9b, 0x221f: 0x9c, - 0x2220: 0x9d, 0x2221: 0x9e, 0x2222: 0x9f, 0x2223: 0xa0, 0x2224: 0xa1, 0x2225: 0xa2, 0x2226: 0xa3, 0x2227: 0xa4, - 0x2228: 0xa5, 0x2229: 0xa6, 0x222a: 0xa7, 0x222b: 0xa8, 0x222c: 0xa9, 0x222d: 0xaa, - 0x2230: 0xab, 0x2231: 0xac, 0x2232: 0xad, 0x2233: 0xae, 0x2234: 0xaf, 0x2235: 0xb0, 0x2236: 0xb1, 0x2237: 0xb2, - 0x2238: 0xb3, 0x223a: 0xb4, 0x223b: 0xb5, 0x223c: 0xb6, 0x223d: 0xb7, 0x223e: 0xb8, 0x223f: 0xb9, - // Block 0x89, offset 0x2240 - 0x2240: 0xba, 0x2241: 0xbb, 0x2242: 0xbc, 0x2243: 0xbd, 0x2244: 0xbe, 0x2245: 0xbf, 0x2246: 0xc0, 0x2247: 0xc1, - 0x2248: 0xc2, 0x2249: 0xc3, 0x224a: 0xc4, 0x224b: 0xc5, 0x224c: 0xc6, 0x224d: 0xc7, 0x224e: 0xc8, 0x224f: 0x569, - // Block 0x8a, offset 0x2280 - 0x2280: 0x18b, 0x2281: 0x18c, 0x2282: 0x18d, 0x2283: 0x18e, 0x2284: 0x56a, 0x2285: 0x190, 0x2286: 0x191, 0x2287: 0x192, - 0x2288: 0x193, 0x2289: 0x194, 0x228c: 0x195, 0x228d: 0x196, 0x228e: 0x197, 0x228f: 0x198, - 0x2290: 0x199, 0x2291: 0x19a, 0x2292: 0x19b, 0x2293: 0x19c, 0x2294: 0x19d, 0x2295: 0x19e, 0x2297: 0x19f, - 0x2298: 0x1a0, 0x2299: 0x1a1, 0x229a: 0x1a2, 0x229b: 0x1a3, 0x229c: 0x1a4, 0x229d: 0x1a5, - // Block 0x8b, offset 0x22c0 - 0x22d0: 0x09, 0x22d1: 0x0a, 0x22d2: 0x0b, 0x22d3: 0x0c, 0x22d6: 0x0d, - 0x22db: 0x0e, 0x22dd: 0x0f, 0x22de: 0x10, 0x22df: 0x88, - 0x22ef: 0x12, - // Block 0x8c, offset 0x2300 - 0x2302: 0x01, 0x2303: 0x55f, 0x2304: 0x560, 0x2305: 0x561, 0x2306: 0x05, 0x2307: 0x562, - 0x2308: 0x563, 0x2309: 0x08, 0x230a: 0x09, 0x230b: 0x0a, 0x230c: 0x564, 0x230d: 0x0c, 0x230e: 0x0d, 0x230f: 0x0e, - 0x2310: 0x0f, 0x2311: 0x10, 0x2312: 0x11, 0x2313: 0x12, 0x2314: 0x13, 0x2315: 0x14, 0x2316: 0x15, 0x2317: 0x16, - 0x2318: 0x17, 0x2319: 0x18, 0x231a: 0x19, 0x231b: 0x1a, 0x231c: 0x1b, 0x231d: 0x1c, 0x231e: 0x1d, 0x231f: 0x1e, - 0x2320: 0x01, 0x2321: 0x85, 0x2322: 0x86, 0x2323: 0x87, 0x2324: 0x05, - 0x232a: 0x06, 0x232d: 0x07, 0x232f: 0x08, - 0x2330: 0x89, 0x2333: 0x15, - // Block 0x8d, offset 0x2340 - 0x2340: 0x3f, 0x2341: 0x40, 0x2342: 0x41, 0x2343: 0x42, 0x2344: 0x43, 0x2345: 0x44, 0x2346: 0x45, 0x2347: 0x46, - 0x2348: 0x47, 0x2349: 0x48, 0x234a: 0x49, 0x234b: 0x4a, 0x234c: 0x4b, 0x234d: 0x4c, 0x234e: 0x4d, 0x234f: 0x4e, - 0x2350: 0x4f, 0x2351: 0x50, 0x2352: 0x51, 0x2353: 0x52, 0x2354: 0x53, 0x2355: 0x54, 0x2356: 0x55, 0x2357: 0x56, - 0x2358: 0x57, 0x2359: 0x58, 0x235a: 0x59, 0x235b: 0x5a, 0x235c: 0x5b, 0x235d: 0x5c, 0x235e: 0x5d, 0x235f: 0x5e, - 0x2360: 0x5f, 0x2361: 0x60, 0x2362: 0x61, 0x2363: 0x62, 0x2364: 0x63, 0x2365: 0x64, 0x2366: 0x65, 0x2367: 0x66, - 0x2368: 0x67, 0x2369: 0x68, 0x236a: 0x69, 0x236c: 0x6a, 0x236d: 0x6b, 0x236e: 0x6c, 0x236f: 0x6d, - 0x2370: 0x6e, 0x2371: 0x6f, 0x2373: 0x70, 0x2374: 0x71, 0x2375: 0x72, 0x2376: 0x73, 0x2377: 0x74, - 0x2378: 0x75, 0x2379: 0x56f, 0x237a: 0x77, 0x237b: 0x78, 0x237c: 0x79, 0x237d: 0x7a, 0x237e: 0x7b, 0x237f: 0x7c, - // Block 0x8e, offset 0x2380 - 0x2382: 0x01, 0x2383: 0x02, 0x2384: 0x56d, 0x2385: 0x56e, 0x2386: 0x05, 0x2387: 0x06, - 0x2388: 0x07, 0x2389: 0x08, 0x238a: 0x09, 0x238b: 0x0a, 0x238c: 0x0b, 0x238d: 0x0c, 0x238e: 0x0d, 0x238f: 0x0e, - 0x2390: 0x0f, 0x2391: 0x10, 0x2392: 0x11, 0x2393: 0x12, 0x2394: 0x13, 0x2395: 0x14, 0x2396: 0x15, 0x2397: 0x16, - 0x2398: 0x17, 0x2399: 0x18, 0x239a: 0x19, 0x239b: 0x1a, 0x239c: 0x1b, 0x239d: 0x1c, 0x239e: 0x1d, 0x239f: 0x1e, - 0x23a0: 0x01, 0x23a1: 0x8b, 0x23a2: 0x03, 0x23a3: 0x04, 0x23a4: 0x05, - 0x23aa: 0x06, 0x23ad: 0x07, 0x23af: 0x08, - 0x23b0: 0x13, 0x23b3: 0x15, - // Block 0x8f, offset 0x23c0 - 0x23e0: 0x1f, 0x23e1: 0x20, 0x23e2: 0x21, 0x23e3: 0x22, 0x23e4: 0x23, 0x23e5: 0x24, 0x23e6: 0x25, 0x23e7: 0x26, - 0x23e8: 0x27, 0x23e9: 0x28, 0x23ea: 0x29, 0x23eb: 0x2a, 0x23ec: 0x2b, 0x23ed: 0x2c, 0x23ee: 0x2d, 0x23ef: 0x2e, - 0x23f0: 0x2f, 0x23f1: 0x30, 0x23f2: 0x31, 0x23f3: 0x32, 0x23f4: 0x570, 0x23f5: 0x571, 0x23f6: 0x35, 0x23f7: 0x36, - 0x23f8: 0x37, 0x23f9: 0x38, 0x23fa: 0x39, 0x23fb: 0x3a, 0x23fc: 0x3b, 0x23fd: 0x3c, 0x23fe: 0x3d, 0x23ff: 0x3e, - // Block 0x90, offset 0x2400 - 0x2402: 0x01, 0x2403: 0x02, 0x2404: 0x03, 0x2405: 0x04, 0x2406: 0x05, 0x2407: 0x06, - 0x2408: 0x07, 0x2409: 0x08, 0x240a: 0x09, 0x240b: 0x0a, 0x240c: 0x0b, 0x240d: 0x0c, 0x240e: 0x0d, 0x240f: 0x0e, - 0x2410: 0x0f, 0x2411: 0x10, 0x2412: 0x11, 0x2413: 0x12, 0x2414: 0x13, 0x2415: 0x14, 0x2416: 0x15, 0x2417: 0x16, - 0x2418: 0x17, 0x2419: 0x18, 0x241a: 0x19, 0x241b: 0x1a, 0x241c: 0x1b, 0x241d: 0x1c, 0x241e: 0x1d, 0x241f: 0x1e, - 0x2420: 0x8d, 0x2421: 0x02, 0x2422: 0x03, 0x2423: 0x04, 0x2424: 0x05, - 0x242a: 0x06, 0x242d: 0x07, 0x242f: 0x08, - 0x2430: 0x13, 0x2433: 0x15, - // Block 0x91, offset 0x2440 - 0x2460: 0x1f, 0x2461: 0x20, 0x2462: 0x21, 0x2463: 0x22, 0x2464: 0x572, 0x2465: 0x24, 0x2466: 0x25, 0x2467: 0x26, - 0x2468: 0x27, 0x2469: 0x28, 0x246a: 0x29, 0x246b: 0x2a, 0x246c: 0x2b, 0x246d: 0x2c, 0x246e: 0x2d, 0x246f: 0x2e, - 0x2470: 0x2f, 0x2471: 0x30, 0x2472: 0x31, 0x2473: 0x32, 0x2474: 0x33, 0x2475: 0x34, 0x2476: 0x35, 0x2477: 0x36, - 0x2478: 0x37, 0x2479: 0x38, 0x247a: 0x39, 0x247b: 0x3a, 0x247c: 0x3b, 0x247d: 0x3c, 0x247e: 0x3d, 0x247f: 0x3e, - // Block 0x92, offset 0x2480 - 0x2482: 0x01, 0x2483: 0x02, 0x2484: 0x03, 0x2485: 0x04, 0x2486: 0x05, 0x2487: 0x06, - 0x2488: 0x07, 0x2489: 0x08, 0x248a: 0x09, 0x248b: 0x0a, 0x248c: 0x0b, 0x248d: 0x0c, 0x248e: 0x0d, 0x248f: 0x0e, - 0x2490: 0x0f, 0x2491: 0x10, 0x2492: 0x11, 0x2493: 0x12, 0x2494: 0x13, 0x2495: 0x14, 0x2496: 0x15, 0x2497: 0x16, - 0x2498: 0x17, 0x2499: 0x18, 0x249a: 0x19, 0x249b: 0x1a, 0x249c: 0x1b, 0x249d: 0x1c, 0x249e: 0x1d, 0x249f: 0x1e, - 0x24a0: 0x8f, 0x24a1: 0x02, 0x24a2: 0x03, 0x24a3: 0x04, 0x24a4: 0x05, - 0x24aa: 0x06, 0x24ad: 0x07, 0x24af: 0x08, - 0x24b0: 0x13, 0x24b3: 0x15, - // Block 0x93, offset 0x24c0 - 0x24c0: 0x7d, 0x24c1: 0x7e, 0x24c2: 0x7f, 0x24c3: 0x80, 0x24c4: 0x577, 0x24c5: 0x82, 0x24c6: 0x83, 0x24c7: 0x84, - 0x24c8: 0x85, 0x24c9: 0x86, 0x24ca: 0x87, 0x24cb: 0x88, 0x24cc: 0x89, 0x24cd: 0x8a, 0x24ce: 0x8b, 0x24cf: 0x8c, - 0x24d0: 0x8d, 0x24d1: 0x8e, 0x24d2: 0x8f, 0x24d3: 0x90, 0x24d4: 0x91, 0x24d5: 0x92, 0x24d6: 0x93, 0x24d7: 0x94, - 0x24d8: 0x95, 0x24d9: 0x96, 0x24da: 0x97, 0x24db: 0x98, 0x24dc: 0x99, 0x24dd: 0x9a, 0x24de: 0x9b, 0x24df: 0x9c, - 0x24e0: 0x9d, 0x24e1: 0x9e, 0x24e2: 0x9f, 0x24e3: 0xa0, 0x24e4: 0xa1, 0x24e5: 0xa2, 0x24e6: 0xa3, 0x24e7: 0xa4, - 0x24e8: 0xa5, 0x24e9: 0xa6, 0x24ea: 0xa7, 0x24eb: 0xa8, 0x24ec: 0xa9, 0x24ed: 0xaa, - 0x24f0: 0xab, 0x24f1: 0xac, 0x24f2: 0xad, 0x24f3: 0xae, 0x24f4: 0xaf, 0x24f5: 0xb0, 0x24f6: 0xb1, 0x24f7: 0xb2, - 0x24f8: 0xb3, 0x24fa: 0xb4, 0x24fb: 0xb5, 0x24fc: 0xb6, 0x24fd: 0xb7, 0x24fe: 0xb8, 0x24ff: 0xb9, - // Block 0x94, offset 0x2500 - 0x2500: 0xcb, 0x2501: 0xcc, 0x2502: 0xcd, 0x2503: 0xce, 0x2504: 0xcf, 0x2505: 0xd0, 0x2506: 0xd1, 0x2507: 0xd2, - 0x2508: 0xd3, 0x2509: 0xd4, 0x250a: 0xd5, 0x250b: 0xd6, 0x250c: 0xd7, 0x250d: 0xd8, 0x250e: 0xd9, 0x250f: 0xda, - 0x2510: 0xdb, 0x2511: 0xdc, 0x2512: 0xdd, 0x2513: 0xde, 0x2514: 0xdf, 0x2515: 0xe0, 0x2516: 0xe1, 0x2517: 0xe2, - 0x2518: 0xe3, 0x2519: 0xe4, 0x251a: 0xe5, 0x251b: 0xe6, 0x251c: 0xe7, 0x251d: 0xe8, 0x251e: 0xe9, 0x251f: 0x578, - 0x2520: 0xeb, 0x2521: 0xec, 0x2522: 0xed, 0x2523: 0xee, 0x2524: 0xef, 0x2525: 0xf0, 0x2526: 0xf1, 0x2527: 0xf2, - 0x2528: 0xf3, 0x2529: 0xf4, 0x252a: 0xf5, 0x252b: 0xf6, 0x252c: 0xf7, 0x252f: 0xf8, - // Block 0x95, offset 0x2540 - 0x2542: 0x01, 0x2543: 0x02, 0x2544: 0x575, 0x2545: 0x576, 0x2546: 0x05, 0x2547: 0x06, - 0x2548: 0x07, 0x2549: 0x08, 0x254a: 0x09, 0x254b: 0x0a, 0x254c: 0x0b, 0x254d: 0x0c, 0x254e: 0x0d, 0x254f: 0x0e, - 0x2550: 0x0f, 0x2551: 0x10, 0x2552: 0x11, 0x2553: 0x12, 0x2554: 0x13, 0x2555: 0x14, 0x2556: 0x15, 0x2557: 0x16, - 0x2558: 0x17, 0x2559: 0x18, 0x255a: 0x19, 0x255b: 0x1a, 0x255c: 0x1b, 0x255d: 0x1c, 0x255e: 0x1d, 0x255f: 0x1e, - 0x2560: 0x01, 0x2561: 0x02, 0x2562: 0x91, 0x2563: 0x04, 0x2564: 0x05, - 0x256a: 0x92, 0x256d: 0x07, 0x256f: 0x08, - 0x2570: 0x13, 0x2573: 0x15, - // Block 0x96, offset 0x2580 - 0x2580: 0x579, 0x2581: 0x57a, 0x2582: 0x57b, 0x2583: 0x42, 0x2584: 0x43, 0x2585: 0x44, 0x2586: 0x45, 0x2587: 0x46, - 0x2588: 0x47, 0x2589: 0x48, 0x258a: 0x49, 0x258b: 0x4a, 0x258c: 0x4b, 0x258d: 0x4c, 0x258e: 0x4d, 0x258f: 0x4e, - 0x2590: 0x4f, 0x2591: 0x50, 0x2592: 0x51, 0x2593: 0x52, 0x2594: 0x53, 0x2595: 0x54, 0x2596: 0x55, 0x2597: 0x56, - 0x2598: 0x57, 0x2599: 0x58, 0x259a: 0x59, 0x259b: 0x5a, 0x259c: 0x5b, 0x259d: 0x5c, 0x259e: 0x5d, 0x259f: 0x5e, - 0x25a0: 0x5f, 0x25a1: 0x60, 0x25a2: 0x61, 0x25a3: 0x62, 0x25a4: 0x63, 0x25a5: 0x64, 0x25a6: 0x65, 0x25a7: 0x66, - 0x25a8: 0x67, 0x25a9: 0x68, 0x25aa: 0x69, 0x25ac: 0x6a, 0x25ad: 0x6b, 0x25ae: 0x6c, 0x25af: 0x6d, - 0x25b0: 0x6e, 0x25b1: 0x6f, 0x25b3: 0x70, 0x25b4: 0x71, 0x25b5: 0x72, 0x25b6: 0x73, 0x25b7: 0x74, - 0x25b8: 0x75, 0x25b9: 0x76, 0x25ba: 0x77, 0x25bb: 0x78, 0x25bc: 0x79, 0x25bd: 0x7a, 0x25be: 0x7b, 0x25bf: 0x7c, - // Block 0x97, offset 0x25c0 - 0x25c2: 0x01, 0x25c3: 0x02, 0x25c4: 0x03, 0x25c5: 0x04, 0x25c6: 0x05, 0x25c7: 0x06, - 0x25c8: 0x07, 0x25c9: 0x08, 0x25ca: 0x09, 0x25cb: 0x0a, 0x25cc: 0x0b, 0x25cd: 0x0c, 0x25ce: 0x0d, 0x25cf: 0x0e, - 0x25d0: 0x0f, 0x25d1: 0x10, 0x25d2: 0x11, 0x25d3: 0x12, 0x25d4: 0x13, 0x25d5: 0x14, 0x25d6: 0x15, 0x25d7: 0x16, - 0x25d8: 0x17, 0x25d9: 0x18, 0x25da: 0x19, 0x25db: 0x1a, 0x25dc: 0x1b, 0x25dd: 0x1c, 0x25de: 0x1d, 0x25df: 0x1e, - 0x25e0: 0x01, 0x25e1: 0x94, 0x25e2: 0x03, 0x25e3: 0x04, 0x25e4: 0x05, - 0x25ea: 0x06, 0x25ed: 0x07, 0x25ef: 0x08, - 0x25f0: 0x13, 0x25f3: 0x15, - // Block 0x98, offset 0x2600 - 0x2600: 0x3f, 0x2601: 0x40, 0x2602: 0x41, 0x2603: 0x42, 0x2604: 0x43, 0x2605: 0x44, 0x2606: 0x45, 0x2607: 0x46, - 0x2608: 0x47, 0x2609: 0x48, 0x260a: 0x49, 0x260b: 0x4a, 0x260c: 0x4b, 0x260d: 0x4c, 0x260e: 0x4d, 0x260f: 0x4e, - 0x2610: 0x4f, 0x2611: 0x50, 0x2612: 0x51, 0x2613: 0x52, 0x2614: 0x53, 0x2615: 0x54, 0x2616: 0x55, 0x2617: 0x56, - 0x2618: 0x57, 0x2619: 0x58, 0x261a: 0x59, 0x261b: 0x5a, 0x261c: 0x5b, 0x261d: 0x5c, 0x261e: 0x5d, 0x261f: 0x5e, - 0x2620: 0x5f, 0x2621: 0x60, 0x2622: 0x61, 0x2623: 0x62, 0x2624: 0x63, 0x2625: 0x64, 0x2626: 0x65, 0x2627: 0x66, - 0x2628: 0x67, 0x2629: 0x68, 0x262a: 0x69, 0x262c: 0x6a, 0x262d: 0x6b, 0x262e: 0x6c, 0x262f: 0x6d, - 0x2630: 0x6e, 0x2631: 0x6f, 0x2633: 0x70, 0x2634: 0x71, 0x2635: 0x72, 0x2636: 0x73, 0x2637: 0x74, - 0x2638: 0x75, 0x2639: 0x1f2, 0x263a: 0x582, 0x263b: 0x583, 0x263c: 0x79, 0x263d: 0x7a, 0x263e: 0x7b, 0x263f: 0x7c, - // Block 0x99, offset 0x2640 - 0x2642: 0x01, 0x2643: 0x580, 0x2644: 0x03, 0x2645: 0x581, 0x2646: 0x05, 0x2647: 0x06, - 0x2648: 0x07, 0x2649: 0x08, 0x264a: 0x09, 0x264b: 0x0a, 0x264c: 0x0b, 0x264d: 0x0c, 0x264e: 0x0d, 0x264f: 0x0e, - 0x2650: 0x0f, 0x2651: 0x10, 0x2652: 0x11, 0x2653: 0x12, 0x2654: 0x13, 0x2655: 0x14, 0x2656: 0x15, 0x2657: 0x16, - 0x2658: 0x17, 0x2659: 0x18, 0x265a: 0x19, 0x265b: 0x1a, 0x265c: 0x1b, 0x265d: 0x1c, 0x265e: 0x1d, 0x265f: 0x1e, - 0x2660: 0x01, 0x2661: 0x96, 0x2662: 0x03, 0x2663: 0x04, 0x2664: 0x05, - 0x266a: 0x06, 0x266d: 0x07, 0x266f: 0x08, - 0x2670: 0x13, 0x2673: 0x15, - // Block 0x9a, offset 0x2680 - 0x26a0: 0x1f, 0x26a1: 0x20, 0x26a2: 0x21, 0x26a3: 0x22, 0x26a4: 0x23, 0x26a5: 0x24, 0x26a6: 0x25, 0x26a7: 0x26, - 0x26a8: 0x27, 0x26a9: 0x28, 0x26aa: 0x29, 0x26ab: 0x2a, 0x26ac: 0x586, 0x26ad: 0x587, 0x26ae: 0x2d, 0x26af: 0x2e, - 0x26b0: 0x2f, 0x26b1: 0x30, 0x26b2: 0x31, 0x26b3: 0x32, 0x26b4: 0x33, 0x26b5: 0x34, 0x26b6: 0x35, 0x26b7: 0x36, - 0x26b8: 0x37, 0x26b9: 0x38, 0x26ba: 0x39, 0x26bb: 0x3a, 0x26bc: 0x3b, 0x26bd: 0x3c, 0x26be: 0x3d, 0x26bf: 0x3e, - // Block 0x9b, offset 0x26c0 - 0x26c2: 0x01, 0x26c3: 0x02, 0x26c4: 0x03, 0x26c5: 0x04, 0x26c6: 0x05, 0x26c7: 0x06, - 0x26c8: 0x07, 0x26c9: 0x08, 0x26ca: 0x09, 0x26cb: 0x0a, 0x26cc: 0x0b, 0x26cd: 0x0c, 0x26ce: 0x0d, 0x26cf: 0x0e, - 0x26d0: 0x0f, 0x26d1: 0x10, 0x26d2: 0x11, 0x26d3: 0x12, 0x26d4: 0x13, 0x26d5: 0x14, 0x26d6: 0x15, 0x26d7: 0x16, - 0x26d8: 0x17, 0x26d9: 0x18, 0x26da: 0x19, 0x26db: 0x1a, 0x26dc: 0x1b, 0x26dd: 0x1c, 0x26de: 0x1d, 0x26df: 0x1e, - 0x26e0: 0x98, 0x26e1: 0x02, 0x26e2: 0x03, 0x26e3: 0x04, 0x26e4: 0x05, - 0x26ea: 0x06, 0x26ed: 0x07, 0x26ef: 0x08, - 0x26f0: 0x13, 0x26f3: 0x15, - // Block 0x9c, offset 0x2700 - 0x2720: 0x1f, 0x2721: 0x20, 0x2722: 0x21, 0x2723: 0x22, 0x2724: 0x23, 0x2725: 0x24, 0x2726: 0x25, 0x2727: 0x26, - 0x2728: 0x588, 0x2729: 0x589, 0x272a: 0x29, 0x272b: 0x2a, 0x272c: 0x2b, 0x272d: 0x2c, 0x272e: 0x2d, 0x272f: 0x2e, - 0x2730: 0x2f, 0x2731: 0x30, 0x2732: 0x31, 0x2733: 0x32, 0x2734: 0x33, 0x2735: 0x34, 0x2736: 0x35, 0x2737: 0x36, - 0x2738: 0x37, 0x2739: 0x38, 0x273a: 0x39, 0x273b: 0x3a, 0x273c: 0x3b, 0x273d: 0x3c, 0x273e: 0x3d, 0x273f: 0x3e, - // Block 0x9d, offset 0x2740 - 0x2742: 0x01, 0x2743: 0x02, 0x2744: 0x03, 0x2745: 0x04, 0x2746: 0x05, 0x2747: 0x06, - 0x2748: 0x07, 0x2749: 0x08, 0x274a: 0x09, 0x274b: 0x0a, 0x274c: 0x0b, 0x274d: 0x0c, 0x274e: 0x0d, 0x274f: 0x0e, - 0x2750: 0x0f, 0x2751: 0x10, 0x2752: 0x11, 0x2753: 0x12, 0x2754: 0x13, 0x2755: 0x14, 0x2756: 0x15, 0x2757: 0x16, - 0x2758: 0x17, 0x2759: 0x18, 0x275a: 0x19, 0x275b: 0x1a, 0x275c: 0x1b, 0x275d: 0x1c, 0x275e: 0x1d, 0x275f: 0x1e, - 0x2760: 0x9a, 0x2761: 0x02, 0x2762: 0x03, 0x2763: 0x04, 0x2764: 0x05, - 0x276a: 0x06, 0x276d: 0x07, 0x276f: 0x08, - 0x2770: 0x13, 0x2773: 0x15, - // Block 0x9e, offset 0x2780 - 0x2780: 0x3f, 0x2781: 0x40, 0x2782: 0x41, 0x2783: 0x42, 0x2784: 0x43, 0x2785: 0x44, 0x2786: 0x45, 0x2787: 0x46, - 0x2788: 0x47, 0x2789: 0x48, 0x278a: 0x49, 0x278b: 0x4a, 0x278c: 0x4b, 0x278d: 0x4c, 0x278e: 0x4d, 0x278f: 0x4e, - 0x2790: 0x4f, 0x2791: 0x50, 0x2792: 0x51, 0x2793: 0x52, 0x2794: 0x53, 0x2795: 0x54, 0x2796: 0x55, 0x2797: 0x56, - 0x2798: 0x57, 0x2799: 0x58, 0x279a: 0x59, 0x279b: 0x5a, 0x279c: 0x5b, 0x279d: 0x5c, 0x279e: 0x5d, 0x279f: 0x5e, - 0x27a0: 0x5f, 0x27a1: 0x60, 0x27a2: 0x61, 0x27a3: 0x62, 0x27a4: 0x63, 0x27a5: 0x64, 0x27a6: 0x65, 0x27a7: 0x66, - 0x27a8: 0x67, 0x27a9: 0x68, 0x27aa: 0x69, 0x27ac: 0x6a, 0x27ad: 0x6b, 0x27ae: 0x6c, 0x27af: 0x6d, - 0x27b0: 0x6e, 0x27b1: 0x6f, 0x27b3: 0x70, 0x27b4: 0x71, 0x27b5: 0x72, 0x27b6: 0x73, 0x27b7: 0x74, - 0x27b8: 0x58f, 0x27b9: 0x590, 0x27ba: 0x77, 0x27bb: 0x591, 0x27bc: 0x79, 0x27bd: 0x7a, 0x27be: 0x7b, 0x27bf: 0x7c, - // Block 0x9f, offset 0x27c0 - 0x27c2: 0x01, 0x27c3: 0x58c, 0x27c4: 0x58d, 0x27c5: 0x58e, 0x27c6: 0x05, 0x27c7: 0x06, - 0x27c8: 0x07, 0x27c9: 0x08, 0x27ca: 0x09, 0x27cb: 0x0a, 0x27cc: 0x0b, 0x27cd: 0x0c, 0x27ce: 0x0d, 0x27cf: 0x0e, - 0x27d0: 0x0f, 0x27d1: 0x10, 0x27d2: 0x11, 0x27d3: 0x12, 0x27d4: 0x13, 0x27d5: 0x14, 0x27d6: 0x15, 0x27d7: 0x16, - 0x27d8: 0x17, 0x27d9: 0x18, 0x27da: 0x19, 0x27db: 0x1a, 0x27dc: 0x1b, 0x27dd: 0x1c, 0x27de: 0x1d, 0x27df: 0x1e, - 0x27e0: 0x01, 0x27e1: 0x9c, 0x27e2: 0x03, 0x27e3: 0x04, 0x27e4: 0x05, - 0x27ea: 0x06, 0x27ed: 0x07, 0x27ef: 0x08, - 0x27f0: 0x13, 0x27f3: 0x15, - // Block 0xa0, offset 0x2800 - 0x2800: 0x596, 0x2801: 0x7e, 0x2802: 0x7f, 0x2803: 0x80, 0x2804: 0x81, 0x2805: 0x82, 0x2806: 0x83, 0x2807: 0x84, - 0x2808: 0x85, 0x2809: 0x86, 0x280a: 0x87, 0x280b: 0x88, 0x280c: 0x89, 0x280d: 0x8a, 0x280e: 0x8b, 0x280f: 0x8c, - 0x2810: 0x8d, 0x2811: 0x8e, 0x2812: 0x8f, 0x2813: 0x90, 0x2814: 0x91, 0x2815: 0x92, 0x2816: 0x93, 0x2817: 0x94, - 0x2818: 0x95, 0x2819: 0x96, 0x281a: 0x97, 0x281b: 0x98, 0x281c: 0x99, 0x281d: 0x9a, 0x281e: 0x9b, 0x281f: 0x9c, - 0x2820: 0x9d, 0x2821: 0x9e, 0x2822: 0x9f, 0x2823: 0xa0, 0x2824: 0xa1, 0x2825: 0xa2, 0x2826: 0xa3, 0x2827: 0xa4, - 0x2828: 0xa5, 0x2829: 0xa6, 0x282a: 0xa7, 0x282b: 0xa8, 0x282c: 0xa9, 0x282d: 0xaa, - 0x2830: 0xab, 0x2831: 0xac, 0x2832: 0xad, 0x2833: 0xae, 0x2834: 0xaf, 0x2835: 0xb0, 0x2836: 0xb1, 0x2837: 0xb2, - 0x2838: 0xb3, 0x283a: 0xb4, 0x283b: 0xb5, 0x283c: 0xb6, 0x283d: 0xb7, 0x283e: 0xb8, 0x283f: 0xb9, - // Block 0xa1, offset 0x2840 - 0x2864: 0xfb, 0x2865: 0xfc, 0x2866: 0xfd, 0x2867: 0xfe, - 0x2868: 0xff, 0x2869: 0x100, 0x286a: 0x101, 0x286b: 0x102, 0x286c: 0x103, 0x286d: 0x104, 0x286e: 0x24c, 0x286f: 0x597, - 0x2870: 0x24d, 0x2871: 0x598, 0x2872: 0x599, 0x2873: 0x59a, 0x2874: 0x59b, 0x2875: 0x10c, 0x2876: 0x10d, 0x2877: 0x10e, - 0x2878: 0x10f, 0x2879: 0x110, 0x287a: 0x111, 0x287b: 0x112, 0x287c: 0x113, 0x287d: 0x114, 0x287e: 0x115, 0x287f: 0x116, - // Block 0xa2, offset 0x2880 - 0x2882: 0x01, 0x2883: 0x02, 0x2884: 0x03, 0x2885: 0x04, 0x2886: 0x05, 0x2887: 0x06, - 0x2888: 0x07, 0x2889: 0x08, 0x288a: 0x09, 0x288b: 0x0a, 0x288c: 0x0b, 0x288d: 0x0c, 0x288e: 0x0d, 0x288f: 0x0e, - 0x2890: 0x0f, 0x2891: 0x10, 0x2892: 0x11, 0x2893: 0x12, 0x2894: 0x13, 0x2895: 0x14, 0x2896: 0x15, 0x2897: 0x16, - 0x2898: 0x592, 0x2899: 0x593, 0x289a: 0x594, 0x289b: 0x595, 0x289c: 0x1b, 0x289d: 0x1c, 0x289e: 0x1d, 0x289f: 0x1e, - 0x28a0: 0x01, 0x28a1: 0x02, 0x28a2: 0x9e, 0x28a3: 0x04, 0x28a4: 0x05, - 0x28aa: 0x06, 0x28ad: 0x07, 0x28af: 0x9f, - 0x28b0: 0x13, 0x28b3: 0x15, - // Block 0xa3, offset 0x28c0 - 0x28c0: 0x3f, 0x28c1: 0x40, 0x28c2: 0x41, 0x28c3: 0x42, 0x28c4: 0x43, 0x28c5: 0x44, 0x28c6: 0x45, 0x28c7: 0x46, - 0x28c8: 0x47, 0x28c9: 0x48, 0x28ca: 0x49, 0x28cb: 0x4a, 0x28cc: 0x4b, 0x28cd: 0x4c, 0x28ce: 0x4d, 0x28cf: 0x4e, - 0x28d0: 0x4f, 0x28d1: 0x50, 0x28d2: 0x51, 0x28d3: 0x52, 0x28d4: 0x53, 0x28d5: 0x54, 0x28d6: 0x55, 0x28d7: 0x56, - 0x28d8: 0x57, 0x28d9: 0x58, 0x28da: 0x59, 0x28db: 0x5a, 0x28dc: 0x5b, 0x28dd: 0x5c, 0x28de: 0x5d, 0x28df: 0x5e, - 0x28e0: 0x5f, 0x28e1: 0x60, 0x28e2: 0x61, 0x28e3: 0x62, 0x28e4: 0x63, 0x28e5: 0x64, 0x28e6: 0x65, 0x28e7: 0x66, - 0x28e8: 0x67, 0x28e9: 0x68, 0x28ea: 0x69, 0x28ec: 0x6a, 0x28ed: 0x6b, 0x28ee: 0x6c, 0x28ef: 0x6d, - 0x28f0: 0x6e, 0x28f1: 0x6f, 0x28f3: 0x70, 0x28f4: 0x71, 0x28f5: 0x72, 0x28f6: 0x73, 0x28f7: 0x74, - 0x28f8: 0x75, 0x28f9: 0x76, 0x28fa: 0x5a2, 0x28fb: 0x78, 0x28fc: 0x79, 0x28fd: 0x7a, 0x28fe: 0x7b, 0x28ff: 0x7c, - // Block 0xa4, offset 0x2900 - 0x2902: 0x01, 0x2903: 0x59e, 0x2904: 0x59f, 0x2905: 0x5a0, 0x2906: 0x05, 0x2907: 0x06, - 0x2908: 0x5a1, 0x2909: 0x08, 0x290a: 0x09, 0x290b: 0x0a, 0x290c: 0x0b, 0x290d: 0x0c, 0x290e: 0x0d, 0x290f: 0x0e, - 0x2910: 0x0f, 0x2911: 0x10, 0x2912: 0x11, 0x2913: 0x12, 0x2914: 0x13, 0x2915: 0x14, 0x2916: 0x15, 0x2917: 0x16, - 0x2918: 0x17, 0x2919: 0x18, 0x291a: 0x19, 0x291b: 0x1a, 0x291c: 0x1b, 0x291d: 0x1c, 0x291e: 0x1d, 0x291f: 0x1e, - 0x2920: 0x01, 0x2921: 0xa1, 0x2922: 0x03, 0x2923: 0x04, 0x2924: 0x05, - 0x292a: 0x06, 0x292d: 0x07, 0x292f: 0x08, - 0x2930: 0x13, 0x2933: 0x15, - // Block 0xa5, offset 0x2940 - 0x2940: 0x3f, 0x2941: 0x40, 0x2942: 0x41, 0x2943: 0x42, 0x2944: 0x43, 0x2945: 0x44, 0x2946: 0x45, 0x2947: 0x46, - 0x2948: 0x47, 0x2949: 0x48, 0x294a: 0x49, 0x294b: 0x4a, 0x294c: 0x4b, 0x294d: 0x4c, 0x294e: 0x4d, 0x294f: 0x4e, - 0x2950: 0x4f, 0x2951: 0x50, 0x2952: 0x51, 0x2953: 0x52, 0x2954: 0x53, 0x2955: 0x54, 0x2956: 0x55, 0x2957: 0x56, - 0x2958: 0x57, 0x2959: 0x58, 0x295a: 0x59, 0x295b: 0x5a, 0x295c: 0x5b, 0x295d: 0x5c, 0x295e: 0x5d, 0x295f: 0x5e, - 0x2960: 0x5f, 0x2961: 0x60, 0x2962: 0x61, 0x2963: 0x62, 0x2964: 0x63, 0x2965: 0x64, 0x2966: 0x65, 0x2967: 0x66, - 0x2968: 0x67, 0x2969: 0x68, 0x296a: 0x69, 0x296c: 0x6a, 0x296d: 0x6b, 0x296e: 0x6c, 0x296f: 0x6d, - 0x2970: 0x6e, 0x2971: 0x6f, 0x2973: 0x70, 0x2974: 0x71, 0x2975: 0x72, 0x2976: 0x1fc, 0x2977: 0x74, - 0x2978: 0x75, 0x2979: 0x5ac, 0x297a: 0x5ad, 0x297b: 0x5ae, 0x297c: 0x79, 0x297d: 0x7a, 0x297e: 0x7b, 0x297f: 0x7c, - // Block 0xa6, offset 0x2980 - 0x2982: 0x01, 0x2983: 0x5a5, 0x2984: 0x5a6, 0x2985: 0x5a7, 0x2986: 0x5a8, 0x2987: 0x5a9, - 0x2988: 0x5aa, 0x2989: 0x08, 0x298a: 0x5ab, 0x298b: 0x0a, 0x298c: 0x0b, 0x298d: 0x0c, 0x298e: 0x0d, 0x298f: 0x0e, - 0x2990: 0x0f, 0x2991: 0x10, 0x2992: 0x11, 0x2993: 0x12, 0x2994: 0x13, 0x2995: 0x14, 0x2996: 0x15, 0x2997: 0x16, - 0x2998: 0x17, 0x2999: 0x18, 0x299a: 0x19, 0x299b: 0x1a, 0x299c: 0x1b, 0x299d: 0x1c, 0x299e: 0x1d, 0x299f: 0x1e, - 0x29a0: 0x01, 0x29a1: 0xa3, 0x29a2: 0x4c, 0x29a3: 0x04, 0x29a4: 0x05, - 0x29aa: 0x06, 0x29ad: 0x07, 0x29af: 0x08, - 0x29b0: 0x13, 0x29b3: 0x15, - // Block 0xa7, offset 0x29c0 - 0x29e0: 0x1f, 0x29e1: 0x20, 0x29e2: 0x21, 0x29e3: 0x22, 0x29e4: 0x23, 0x29e5: 0x24, 0x29e6: 0x25, 0x29e7: 0x26, - 0x29e8: 0x27, 0x29e9: 0x28, 0x29ea: 0x29, 0x29eb: 0x2a, 0x29ec: 0x2b, 0x29ed: 0x2c, 0x29ee: 0x2d, 0x29ef: 0x2e, - 0x29f0: 0x2f, 0x29f1: 0x30, 0x29f2: 0x31, 0x29f3: 0x32, 0x29f4: 0x33, 0x29f5: 0x34, 0x29f6: 0x5af, 0x29f7: 0x36, - 0x29f8: 0x37, 0x29f9: 0x38, 0x29fa: 0x39, 0x29fb: 0x3a, 0x29fc: 0x3b, 0x29fd: 0x3c, 0x29fe: 0x3d, 0x29ff: 0x3e, - // Block 0xa8, offset 0x2a00 - 0x2a02: 0x01, 0x2a03: 0x02, 0x2a04: 0x03, 0x2a05: 0x04, 0x2a06: 0x05, 0x2a07: 0x06, - 0x2a08: 0x07, 0x2a09: 0x08, 0x2a0a: 0x09, 0x2a0b: 0x0a, 0x2a0c: 0x0b, 0x2a0d: 0x0c, 0x2a0e: 0x0d, 0x2a0f: 0x0e, - 0x2a10: 0x0f, 0x2a11: 0x10, 0x2a12: 0x11, 0x2a13: 0x12, 0x2a14: 0x13, 0x2a15: 0x14, 0x2a16: 0x15, 0x2a17: 0x16, - 0x2a18: 0x17, 0x2a19: 0x18, 0x2a1a: 0x19, 0x2a1b: 0x1a, 0x2a1c: 0x1b, 0x2a1d: 0x1c, 0x2a1e: 0x1d, 0x2a1f: 0x1e, - 0x2a20: 0xa5, 0x2a21: 0x02, 0x2a22: 0x03, 0x2a23: 0x04, 0x2a24: 0x05, - 0x2a2a: 0x06, 0x2a2d: 0x07, 0x2a2f: 0x08, - 0x2a30: 0x13, 0x2a33: 0x15, - // Block 0xa9, offset 0x2a40 - 0x2a40: 0x3f, 0x2a41: 0x40, 0x2a42: 0x41, 0x2a43: 0x42, 0x2a44: 0x43, 0x2a45: 0x44, 0x2a46: 0x45, 0x2a47: 0x46, - 0x2a48: 0x47, 0x2a49: 0x48, 0x2a4a: 0x49, 0x2a4b: 0x4a, 0x2a4c: 0x4b, 0x2a4d: 0x4c, 0x2a4e: 0x4d, 0x2a4f: 0x4e, - 0x2a50: 0x4f, 0x2a51: 0x50, 0x2a52: 0x51, 0x2a53: 0x52, 0x2a54: 0x53, 0x2a55: 0x54, 0x2a56: 0x55, 0x2a57: 0x56, - 0x2a58: 0x57, 0x2a59: 0x58, 0x2a5a: 0x59, 0x2a5b: 0x5a, 0x2a5c: 0x5b, 0x2a5d: 0x5c, 0x2a5e: 0x5d, 0x2a5f: 0x5e, - 0x2a60: 0x5f, 0x2a61: 0x60, 0x2a62: 0x61, 0x2a63: 0x62, 0x2a64: 0x63, 0x2a65: 0x64, 0x2a66: 0x65, 0x2a67: 0x66, - 0x2a68: 0x67, 0x2a69: 0x68, 0x2a6a: 0x69, 0x2a6c: 0x6a, 0x2a6d: 0x6b, 0x2a6e: 0x6c, 0x2a6f: 0x6d, - 0x2a70: 0x6e, 0x2a71: 0x6f, 0x2a73: 0x70, 0x2a74: 0x71, 0x2a75: 0x72, 0x2a76: 0x73, 0x2a77: 0x74, - 0x2a78: 0x75, 0x2a79: 0x1f2, 0x2a7a: 0x77, 0x2a7b: 0x5b4, 0x2a7c: 0x79, 0x2a7d: 0x7a, 0x2a7e: 0x7b, 0x2a7f: 0x7c, - // Block 0xaa, offset 0x2a80 - 0x2a82: 0x01, 0x2a83: 0x5b2, 0x2a84: 0x1f0, 0x2a85: 0x1f1, 0x2a86: 0x05, 0x2a87: 0x5b3, - 0x2a88: 0x07, 0x2a89: 0x08, 0x2a8a: 0x09, 0x2a8b: 0x0a, 0x2a8c: 0x0b, 0x2a8d: 0x0c, 0x2a8e: 0x0d, 0x2a8f: 0x0e, - 0x2a90: 0x0f, 0x2a91: 0x10, 0x2a92: 0x11, 0x2a93: 0x12, 0x2a94: 0x13, 0x2a95: 0x14, 0x2a96: 0x15, 0x2a97: 0x16, - 0x2a98: 0x17, 0x2a99: 0x18, 0x2a9a: 0x19, 0x2a9b: 0x1a, 0x2a9c: 0x1b, 0x2a9d: 0x1c, 0x2a9e: 0x1d, 0x2a9f: 0x1e, - 0x2aa0: 0x01, 0x2aa1: 0xa7, 0x2aa2: 0x03, 0x2aa3: 0x04, 0x2aa4: 0x05, - 0x2aaa: 0x06, 0x2aad: 0x07, 0x2aaf: 0x08, - 0x2ab0: 0x13, 0x2ab3: 0x15, - // Block 0xab, offset 0x2ac0 - 0x2ac2: 0x01, 0x2ac3: 0x02, 0x2ac4: 0x5b7, 0x2ac5: 0x27f, 0x2ac6: 0x05, 0x2ac7: 0x06, - 0x2ac8: 0x07, 0x2ac9: 0x08, 0x2aca: 0x09, 0x2acb: 0x0a, 0x2acc: 0x0b, 0x2acd: 0x0c, 0x2ace: 0x0d, 0x2acf: 0x0e, - 0x2ad0: 0x0f, 0x2ad1: 0x10, 0x2ad2: 0x11, 0x2ad3: 0x12, 0x2ad4: 0x13, 0x2ad5: 0x14, 0x2ad6: 0x15, 0x2ad7: 0x16, - 0x2ad8: 0x17, 0x2ad9: 0x18, 0x2ada: 0x19, 0x2adb: 0x1a, 0x2adc: 0x1b, 0x2add: 0x1c, 0x2ade: 0x1d, 0x2adf: 0x1e, - 0x2ae0: 0x01, 0x2ae1: 0x5b, 0x2ae2: 0x03, 0x2ae3: 0x04, 0x2ae4: 0x05, - 0x2aea: 0x06, 0x2aed: 0x07, 0x2aef: 0x08, - 0x2af0: 0x13, 0x2af3: 0x15, - // Block 0xac, offset 0x2b00 - 0x2b00: 0x3f, 0x2b01: 0x40, 0x2b02: 0x41, 0x2b03: 0x42, 0x2b04: 0x43, 0x2b05: 0x44, 0x2b06: 0x45, 0x2b07: 0x46, - 0x2b08: 0x47, 0x2b09: 0x48, 0x2b0a: 0x49, 0x2b0b: 0x4a, 0x2b0c: 0x4b, 0x2b0d: 0x4c, 0x2b0e: 0x4d, 0x2b0f: 0x4e, - 0x2b10: 0x4f, 0x2b11: 0x50, 0x2b12: 0x51, 0x2b13: 0x52, 0x2b14: 0x53, 0x2b15: 0x54, 0x2b16: 0x55, 0x2b17: 0x56, - 0x2b18: 0x57, 0x2b19: 0x58, 0x2b1a: 0x59, 0x2b1b: 0x5a, 0x2b1c: 0x5b, 0x2b1d: 0x5c, 0x2b1e: 0x5d, 0x2b1f: 0x5e, - 0x2b20: 0x5f, 0x2b21: 0x60, 0x2b22: 0x61, 0x2b23: 0x62, 0x2b24: 0x63, 0x2b25: 0x64, 0x2b26: 0x65, 0x2b27: 0x66, - 0x2b28: 0x67, 0x2b29: 0x68, 0x2b2a: 0x69, 0x2b2c: 0x6a, 0x2b2d: 0x6b, 0x2b2e: 0x6c, 0x2b2f: 0x6d, - 0x2b30: 0x6e, 0x2b31: 0x6f, 0x2b33: 0x70, 0x2b34: 0x71, 0x2b35: 0x72, 0x2b36: 0x73, 0x2b37: 0x74, - 0x2b38: 0x5bb, 0x2b39: 0x76, 0x2b3a: 0x77, 0x2b3b: 0x78, 0x2b3c: 0x79, 0x2b3d: 0x7a, 0x2b3e: 0x7b, 0x2b3f: 0x7c, - // Block 0xad, offset 0x2b40 - 0x2b42: 0x01, 0x2b43: 0x5ba, 0x2b44: 0x03, 0x2b45: 0x04, 0x2b46: 0x05, 0x2b47: 0x06, - 0x2b48: 0x07, 0x2b49: 0x08, 0x2b4a: 0x09, 0x2b4b: 0x0a, 0x2b4c: 0x0b, 0x2b4d: 0x0c, 0x2b4e: 0x0d, 0x2b4f: 0x0e, - 0x2b50: 0x0f, 0x2b51: 0x10, 0x2b52: 0x11, 0x2b53: 0x12, 0x2b54: 0x13, 0x2b55: 0x14, 0x2b56: 0x15, 0x2b57: 0x16, - 0x2b58: 0x17, 0x2b59: 0x18, 0x2b5a: 0x19, 0x2b5b: 0x1a, 0x2b5c: 0x1b, 0x2b5d: 0x1c, 0x2b5e: 0x1d, 0x2b5f: 0x1e, - 0x2b60: 0x01, 0x2b61: 0xaa, 0x2b62: 0x03, 0x2b63: 0x04, 0x2b64: 0x05, - 0x2b6a: 0x06, 0x2b6d: 0x07, 0x2b6f: 0x08, - 0x2b70: 0x13, 0x2b73: 0x15, - // Block 0xae, offset 0x2b80 - 0x2b80: 0x3f, 0x2b81: 0x40, 0x2b82: 0x41, 0x2b83: 0x42, 0x2b84: 0x43, 0x2b85: 0x44, 0x2b86: 0x45, 0x2b87: 0x46, - 0x2b88: 0x47, 0x2b89: 0x48, 0x2b8a: 0x49, 0x2b8b: 0x4a, 0x2b8c: 0x4b, 0x2b8d: 0x4c, 0x2b8e: 0x4d, 0x2b8f: 0x4e, - 0x2b90: 0x4f, 0x2b91: 0x50, 0x2b92: 0x51, 0x2b93: 0x52, 0x2b94: 0x53, 0x2b95: 0x54, 0x2b96: 0x55, 0x2b97: 0x56, - 0x2b98: 0x57, 0x2b99: 0x58, 0x2b9a: 0x59, 0x2b9b: 0x5a, 0x2b9c: 0x5b, 0x2b9d: 0x5c, 0x2b9e: 0x5d, 0x2b9f: 0x5e, - 0x2ba0: 0x5f, 0x2ba1: 0x60, 0x2ba2: 0x61, 0x2ba3: 0x62, 0x2ba4: 0x63, 0x2ba5: 0x64, 0x2ba6: 0x65, 0x2ba7: 0x66, - 0x2ba8: 0x67, 0x2ba9: 0x68, 0x2baa: 0x69, 0x2bac: 0x6a, 0x2bad: 0x6b, 0x2bae: 0x6c, 0x2baf: 0x6d, - 0x2bb0: 0x6e, 0x2bb1: 0x6f, 0x2bb3: 0x70, 0x2bb4: 0x71, 0x2bb5: 0x72, 0x2bb6: 0x1fc, 0x2bb7: 0x74, - 0x2bb8: 0x75, 0x2bb9: 0x25b, 0x2bba: 0x77, 0x2bbb: 0x5c2, 0x2bbc: 0x79, 0x2bbd: 0x7a, 0x2bbe: 0x7b, 0x2bbf: 0x7c, - // Block 0xaf, offset 0x2bc0 - 0x2bc2: 0x01, 0x2bc3: 0x5be, 0x2bc4: 0x5bf, 0x2bc5: 0x5c0, 0x2bc6: 0x05, 0x2bc7: 0x5c1, - 0x2bc8: 0x259, 0x2bc9: 0x08, 0x2bca: 0x09, 0x2bcb: 0x0a, 0x2bcc: 0x0b, 0x2bcd: 0x0c, 0x2bce: 0x0d, 0x2bcf: 0x0e, - 0x2bd0: 0x0f, 0x2bd1: 0x10, 0x2bd2: 0x11, 0x2bd3: 0x12, 0x2bd4: 0x13, 0x2bd5: 0x14, 0x2bd6: 0x15, 0x2bd7: 0x16, - 0x2bd8: 0x17, 0x2bd9: 0x18, 0x2bda: 0x19, 0x2bdb: 0x1a, 0x2bdc: 0x1b, 0x2bdd: 0x1c, 0x2bde: 0x1d, 0x2bdf: 0x1e, - 0x2be0: 0x01, 0x2be1: 0xac, 0x2be2: 0x4c, 0x2be3: 0x04, 0x2be4: 0x05, - 0x2bea: 0x06, 0x2bed: 0x07, 0x2bef: 0x08, - 0x2bf0: 0x13, 0x2bf3: 0x15, - // Block 0xb0, offset 0x2c00 - 0x2c20: 0x1f, 0x2c21: 0x20, 0x2c22: 0x21, 0x2c23: 0x22, 0x2c24: 0x23, 0x2c25: 0x24, 0x2c26: 0x25, 0x2c27: 0x26, - 0x2c28: 0x27, 0x2c29: 0x28, 0x2c2a: 0x29, 0x2c2b: 0x2a, 0x2c2c: 0x2b, 0x2c2d: 0x2c, 0x2c2e: 0x5c3, 0x2c2f: 0x2e, - 0x2c30: 0x2f, 0x2c31: 0x30, 0x2c32: 0x31, 0x2c33: 0x32, 0x2c34: 0x33, 0x2c35: 0x34, 0x2c36: 0x35, 0x2c37: 0x36, - 0x2c38: 0x37, 0x2c39: 0x38, 0x2c3a: 0x39, 0x2c3b: 0x3a, 0x2c3c: 0x3b, 0x2c3d: 0x3c, 0x2c3e: 0x3d, 0x2c3f: 0x3e, - // Block 0xb1, offset 0x2c40 - 0x2c42: 0x01, 0x2c43: 0x02, 0x2c44: 0x03, 0x2c45: 0x04, 0x2c46: 0x05, 0x2c47: 0x06, - 0x2c48: 0x07, 0x2c49: 0x08, 0x2c4a: 0x09, 0x2c4b: 0x0a, 0x2c4c: 0x0b, 0x2c4d: 0x0c, 0x2c4e: 0x0d, 0x2c4f: 0x0e, - 0x2c50: 0x0f, 0x2c51: 0x10, 0x2c52: 0x11, 0x2c53: 0x12, 0x2c54: 0x13, 0x2c55: 0x14, 0x2c56: 0x15, 0x2c57: 0x16, - 0x2c58: 0x17, 0x2c59: 0x18, 0x2c5a: 0x19, 0x2c5b: 0x1a, 0x2c5c: 0x1b, 0x2c5d: 0x1c, 0x2c5e: 0x1d, 0x2c5f: 0x1e, - 0x2c60: 0xae, 0x2c61: 0x02, 0x2c62: 0x03, 0x2c63: 0x04, 0x2c64: 0x05, - 0x2c6a: 0x06, 0x2c6d: 0x07, 0x2c6f: 0x08, - 0x2c70: 0x13, 0x2c73: 0x15, - // Block 0xb2, offset 0x2c80 - 0x2ca0: 0x1f, 0x2ca1: 0x20, 0x2ca2: 0x21, 0x2ca3: 0x22, 0x2ca4: 0x23, 0x2ca5: 0x24, 0x2ca6: 0x25, 0x2ca7: 0x26, - 0x2ca8: 0x27, 0x2ca9: 0x28, 0x2caa: 0x29, 0x2cab: 0x2a, 0x2cac: 0x2b, 0x2cad: 0x2c, 0x2cae: 0x2d, 0x2caf: 0x2e, - 0x2cb0: 0x5c4, 0x2cb1: 0x30, 0x2cb2: 0x31, 0x2cb3: 0x32, 0x2cb4: 0x33, 0x2cb5: 0x34, 0x2cb6: 0x35, 0x2cb7: 0x36, - 0x2cb8: 0x37, 0x2cb9: 0x38, 0x2cba: 0x39, 0x2cbb: 0x3a, 0x2cbc: 0x3b, 0x2cbd: 0x3c, 0x2cbe: 0x3d, 0x2cbf: 0x3e, - // Block 0xb3, offset 0x2cc0 - 0x2cc2: 0x01, 0x2cc3: 0x02, 0x2cc4: 0x03, 0x2cc5: 0x04, 0x2cc6: 0x05, 0x2cc7: 0x06, - 0x2cc8: 0x07, 0x2cc9: 0x08, 0x2cca: 0x09, 0x2ccb: 0x0a, 0x2ccc: 0x0b, 0x2ccd: 0x0c, 0x2cce: 0x0d, 0x2ccf: 0x0e, - 0x2cd0: 0x0f, 0x2cd1: 0x10, 0x2cd2: 0x11, 0x2cd3: 0x12, 0x2cd4: 0x13, 0x2cd5: 0x14, 0x2cd6: 0x15, 0x2cd7: 0x16, - 0x2cd8: 0x17, 0x2cd9: 0x18, 0x2cda: 0x19, 0x2cdb: 0x1a, 0x2cdc: 0x1b, 0x2cdd: 0x1c, 0x2cde: 0x1d, 0x2cdf: 0x1e, - 0x2ce0: 0xb0, 0x2ce1: 0x02, 0x2ce2: 0x03, 0x2ce3: 0x04, 0x2ce4: 0x05, - 0x2cea: 0x06, 0x2ced: 0x07, 0x2cef: 0x08, - 0x2cf0: 0x13, 0x2cf3: 0x15, - // Block 0xb4, offset 0x2d00 - 0x2d20: 0x1f, 0x2d21: 0x20, 0x2d22: 0x21, 0x2d23: 0x22, 0x2d24: 0x23, 0x2d25: 0x24, 0x2d26: 0x25, 0x2d27: 0x26, - 0x2d28: 0x27, 0x2d29: 0x28, 0x2d2a: 0x29, 0x2d2b: 0x2a, 0x2d2c: 0x2b, 0x2d2d: 0x2c, 0x2d2e: 0x2d, 0x2d2f: 0x2e, - 0x2d30: 0x2f, 0x2d31: 0x30, 0x2d32: 0x31, 0x2d33: 0x32, 0x2d34: 0x33, 0x2d35: 0x34, 0x2d36: 0x35, 0x2d37: 0x36, - 0x2d38: 0x5c5, 0x2d39: 0x5c6, 0x2d3a: 0x39, 0x2d3b: 0x3a, 0x2d3c: 0x3b, 0x2d3d: 0x3c, 0x2d3e: 0x3d, 0x2d3f: 0x3e, - // Block 0xb5, offset 0x2d40 - 0x2d42: 0x01, 0x2d43: 0x02, 0x2d44: 0x03, 0x2d45: 0x04, 0x2d46: 0x05, 0x2d47: 0x06, - 0x2d48: 0x07, 0x2d49: 0x08, 0x2d4a: 0x09, 0x2d4b: 0x0a, 0x2d4c: 0x0b, 0x2d4d: 0x0c, 0x2d4e: 0x0d, 0x2d4f: 0x0e, - 0x2d50: 0x0f, 0x2d51: 0x10, 0x2d52: 0x11, 0x2d53: 0x12, 0x2d54: 0x13, 0x2d55: 0x14, 0x2d56: 0x15, 0x2d57: 0x16, - 0x2d58: 0x17, 0x2d59: 0x18, 0x2d5a: 0x19, 0x2d5b: 0x1a, 0x2d5c: 0x1b, 0x2d5d: 0x1c, 0x2d5e: 0x1d, 0x2d5f: 0x1e, - 0x2d60: 0xb2, 0x2d61: 0x02, 0x2d62: 0x03, 0x2d63: 0x04, 0x2d64: 0x05, - 0x2d6a: 0x06, 0x2d6d: 0x07, 0x2d6f: 0x08, - 0x2d70: 0x13, 0x2d73: 0x15, - // Block 0xb6, offset 0x2d80 - 0x2d80: 0x3f, 0x2d81: 0x40, 0x2d82: 0x41, 0x2d83: 0x42, 0x2d84: 0x43, 0x2d85: 0x44, 0x2d86: 0x45, 0x2d87: 0x46, - 0x2d88: 0x47, 0x2d89: 0x48, 0x2d8a: 0x49, 0x2d8b: 0x4a, 0x2d8c: 0x4b, 0x2d8d: 0x4c, 0x2d8e: 0x4d, 0x2d8f: 0x4e, - 0x2d90: 0x4f, 0x2d91: 0x50, 0x2d92: 0x51, 0x2d93: 0x52, 0x2d94: 0x53, 0x2d95: 0x54, 0x2d96: 0x55, 0x2d97: 0x56, - 0x2d98: 0x57, 0x2d99: 0x58, 0x2d9a: 0x59, 0x2d9b: 0x5a, 0x2d9c: 0x5b, 0x2d9d: 0x5c, 0x2d9e: 0x5d, 0x2d9f: 0x5e, - 0x2da0: 0x5f, 0x2da1: 0x60, 0x2da2: 0x61, 0x2da3: 0x62, 0x2da4: 0x63, 0x2da5: 0x64, 0x2da6: 0x65, 0x2da7: 0x66, - 0x2da8: 0x67, 0x2da9: 0x68, 0x2daa: 0x69, 0x2dac: 0x6a, 0x2dad: 0x6b, 0x2dae: 0x6c, 0x2daf: 0x6d, - 0x2db0: 0x6e, 0x2db1: 0x6f, 0x2db3: 0x70, 0x2db4: 0x71, 0x2db5: 0x72, 0x2db6: 0x73, 0x2db7: 0x74, - 0x2db8: 0x5cf, 0x2db9: 0x5d0, 0x2dba: 0x5d1, 0x2dbb: 0x5d2, 0x2dbc: 0x79, 0x2dbd: 0x7a, 0x2dbe: 0x7b, 0x2dbf: 0x7c, - // Block 0xb7, offset 0x2dc0 - 0x2dc2: 0x01, 0x2dc3: 0x5c9, 0x2dc4: 0x5ca, 0x2dc5: 0x5cb, 0x2dc6: 0x05, 0x2dc7: 0x5cc, - 0x2dc8: 0x5cd, 0x2dc9: 0x08, 0x2dca: 0x5ce, 0x2dcb: 0x0a, 0x2dcc: 0x0b, 0x2dcd: 0x0c, 0x2dce: 0x0d, 0x2dcf: 0x0e, - 0x2dd0: 0x0f, 0x2dd1: 0x10, 0x2dd2: 0x11, 0x2dd3: 0x12, 0x2dd4: 0x13, 0x2dd5: 0x14, 0x2dd6: 0x15, 0x2dd7: 0x16, - 0x2dd8: 0x17, 0x2dd9: 0x18, 0x2dda: 0x19, 0x2ddb: 0x1a, 0x2ddc: 0x1b, 0x2ddd: 0x1c, 0x2dde: 0x1d, 0x2ddf: 0x1e, - 0x2de0: 0x01, 0x2de1: 0xb4, 0x2de2: 0x03, 0x2de3: 0x04, 0x2de4: 0x05, - 0x2dea: 0x06, 0x2ded: 0x07, 0x2def: 0x08, - 0x2df0: 0x13, 0x2df3: 0x15, - // Block 0xb8, offset 0x2e00 - 0x2e00: 0x3f, 0x2e01: 0x40, 0x2e02: 0x41, 0x2e03: 0x42, 0x2e04: 0x43, 0x2e05: 0x44, 0x2e06: 0x45, 0x2e07: 0x46, - 0x2e08: 0x47, 0x2e09: 0x48, 0x2e0a: 0x49, 0x2e0b: 0x4a, 0x2e0c: 0x4b, 0x2e0d: 0x4c, 0x2e0e: 0x4d, 0x2e0f: 0x4e, - 0x2e10: 0x4f, 0x2e11: 0x50, 0x2e12: 0x51, 0x2e13: 0x52, 0x2e14: 0x53, 0x2e15: 0x54, 0x2e16: 0x55, 0x2e17: 0x56, - 0x2e18: 0x57, 0x2e19: 0x58, 0x2e1a: 0x59, 0x2e1b: 0x5a, 0x2e1c: 0x5b, 0x2e1d: 0x5c, 0x2e1e: 0x5d, 0x2e1f: 0x5e, - 0x2e20: 0x5f, 0x2e21: 0x60, 0x2e22: 0x61, 0x2e23: 0x62, 0x2e24: 0x63, 0x2e25: 0x64, 0x2e26: 0x65, 0x2e27: 0x66, - 0x2e28: 0x67, 0x2e29: 0x68, 0x2e2a: 0x69, 0x2e2c: 0x6a, 0x2e2d: 0x6b, 0x2e2e: 0x6c, 0x2e2f: 0x6d, - 0x2e30: 0x6e, 0x2e31: 0x6f, 0x2e33: 0x70, 0x2e34: 0x71, 0x2e35: 0x72, 0x2e36: 0x73, 0x2e37: 0x74, - 0x2e38: 0x1de, 0x2e39: 0x1df, 0x2e3a: 0x77, 0x2e3b: 0x1e1, 0x2e3c: 0x79, 0x2e3d: 0x7a, 0x2e3e: 0x7b, 0x2e3f: 0x7c, - // Block 0xb9, offset 0x2e40 - 0x2e40: 0x7d, 0x2e41: 0x7e, 0x2e42: 0x7f, 0x2e43: 0x80, 0x2e44: 0x81, 0x2e45: 0x5d5, 0x2e46: 0x83, 0x2e47: 0x84, - 0x2e48: 0x85, 0x2e49: 0x86, 0x2e4a: 0x87, 0x2e4b: 0x88, 0x2e4c: 0x89, 0x2e4d: 0x8a, 0x2e4e: 0x8b, 0x2e4f: 0x8c, - 0x2e50: 0x8d, 0x2e51: 0x8e, 0x2e52: 0x8f, 0x2e53: 0x90, 0x2e54: 0x91, 0x2e55: 0x92, 0x2e56: 0x93, 0x2e57: 0x94, - 0x2e58: 0x95, 0x2e59: 0x96, 0x2e5a: 0x97, 0x2e5b: 0x98, 0x2e5c: 0x99, 0x2e5d: 0x9a, 0x2e5e: 0x9b, 0x2e5f: 0x9c, - 0x2e60: 0x9d, 0x2e61: 0x9e, 0x2e62: 0x9f, 0x2e63: 0xa0, 0x2e64: 0xa1, 0x2e65: 0xa2, 0x2e66: 0xa3, 0x2e67: 0xa4, - 0x2e68: 0xa5, 0x2e69: 0xa6, 0x2e6a: 0xa7, 0x2e6b: 0xa8, 0x2e6c: 0xa9, 0x2e6d: 0xaa, - 0x2e70: 0xab, 0x2e71: 0xac, 0x2e72: 0xad, 0x2e73: 0xae, 0x2e74: 0xaf, 0x2e75: 0xb0, 0x2e76: 0xb1, 0x2e77: 0xb2, - 0x2e78: 0xb3, 0x2e7a: 0xb4, 0x2e7b: 0xb5, 0x2e7c: 0xb6, 0x2e7d: 0xb7, 0x2e7e: 0xb8, 0x2e7f: 0xb9, - // Block 0xba, offset 0x2e80 - 0x2e80: 0xba, 0x2e81: 0xbb, 0x2e82: 0xbc, 0x2e83: 0xbd, 0x2e84: 0xbe, 0x2e85: 0xbf, 0x2e86: 0xc0, 0x2e87: 0xc1, - 0x2e88: 0xc2, 0x2e89: 0xc3, 0x2e8a: 0xc4, 0x2e8b: 0xc5, 0x2e8c: 0xc6, 0x2e8d: 0x1e4, 0x2e8e: 0xc8, 0x2e8f: 0xc9, - // Block 0xbb, offset 0x2ec0 - 0x2ec0: 0x18b, 0x2ec1: 0x18c, 0x2ec2: 0x18d, 0x2ec3: 0x18e, 0x2ec4: 0x5d6, 0x2ec5: 0x190, 0x2ec6: 0x191, 0x2ec7: 0x192, - 0x2ec8: 0x193, 0x2ec9: 0x194, 0x2ecc: 0x195, 0x2ecd: 0x196, 0x2ece: 0x197, 0x2ecf: 0x198, - 0x2ed0: 0x199, 0x2ed1: 0x19a, 0x2ed2: 0x19b, 0x2ed3: 0x19c, 0x2ed4: 0x19d, 0x2ed5: 0x19e, 0x2ed7: 0x19f, - 0x2ed8: 0x1a0, 0x2ed9: 0x1a1, 0x2eda: 0x1a2, 0x2edb: 0x1a3, 0x2edc: 0x1a4, 0x2edd: 0x1a5, - // Block 0xbc, offset 0x2f00 - 0x2f10: 0x09, 0x2f11: 0x0a, 0x2f12: 0x0b, 0x2f13: 0x0c, 0x2f16: 0x0d, - 0x2f1b: 0x0e, 0x2f1d: 0x0f, 0x2f1e: 0x10, 0x2f1f: 0xb9, - 0x2f2f: 0x12, - // Block 0xbd, offset 0x2f40 - 0x2f42: 0x01, 0x2f43: 0x1d7, 0x2f44: 0x1d8, 0x2f45: 0x1d9, 0x2f46: 0x05, 0x2f47: 0x1db, - 0x2f48: 0x1dc, 0x2f49: 0x08, 0x2f4a: 0x09, 0x2f4b: 0x0a, 0x2f4c: 0x0b, 0x2f4d: 0x0c, 0x2f4e: 0x0d, 0x2f4f: 0x0e, - 0x2f50: 0x0f, 0x2f51: 0x10, 0x2f52: 0x11, 0x2f53: 0x12, 0x2f54: 0x13, 0x2f55: 0x14, 0x2f56: 0x15, 0x2f57: 0x16, - 0x2f58: 0x17, 0x2f59: 0x18, 0x2f5a: 0x19, 0x2f5b: 0x1a, 0x2f5c: 0x1b, 0x2f5d: 0x1c, 0x2f5e: 0x1d, 0x2f5f: 0x1e, - 0x2f60: 0x01, 0x2f61: 0xb6, 0x2f62: 0xb7, 0x2f63: 0xb8, 0x2f64: 0x05, - 0x2f6a: 0x06, 0x2f6d: 0x07, 0x2f6f: 0x08, - 0x2f70: 0xba, 0x2f73: 0x15, - // Block 0xbe, offset 0x2f80 - 0x2f82: 0x01, 0x2f83: 0x02, 0x2f84: 0x03, 0x2f85: 0x04, 0x2f86: 0x05, 0x2f87: 0x06, - 0x2f88: 0x07, 0x2f89: 0x08, 0x2f8a: 0x09, 0x2f8b: 0x0a, 0x2f8c: 0x0b, 0x2f8d: 0x0c, 0x2f8e: 0x0d, 0x2f8f: 0x0e, - 0x2f90: 0x0f, 0x2f91: 0x10, 0x2f92: 0x5d7, 0x2f93: 0x12, 0x2f94: 0x13, 0x2f95: 0x14, 0x2f96: 0x15, 0x2f97: 0x16, - 0x2f98: 0x17, 0x2f99: 0x18, 0x2f9a: 0x19, 0x2f9b: 0x1a, 0x2f9c: 0x1b, 0x2f9d: 0x1c, 0x2f9e: 0x1d, 0x2f9f: 0x1e, - 0x2fa0: 0x01, 0x2fa1: 0x02, 0x2fa2: 0x03, 0x2fa3: 0x04, 0x2fa4: 0x05, - 0x2faa: 0x06, 0x2fad: 0x07, 0x2faf: 0x08, - 0x2fb0: 0x13, 0x2fb3: 0x15, - // Block 0xbf, offset 0x2fc0 - 0x2fe4: 0xfb, 0x2fe5: 0xfc, 0x2fe6: 0xfd, 0x2fe7: 0xfe, - 0x2fe8: 0xff, 0x2fe9: 0x100, 0x2fea: 0x101, 0x2feb: 0x102, 0x2fec: 0x103, 0x2fed: 0x104, 0x2fee: 0x24c, 0x2fef: 0x106, - 0x2ff0: 0x5dc, 0x2ff1: 0x5dd, 0x2ff2: 0x5de, 0x2ff3: 0x5df, 0x2ff4: 0x5e0, 0x2ff5: 0x10c, 0x2ff6: 0x10d, 0x2ff7: 0x10e, - 0x2ff8: 0x10f, 0x2ff9: 0x110, 0x2ffa: 0x111, 0x2ffb: 0x5e1, 0x2ffc: 0x113, 0x2ffd: 0x114, 0x2ffe: 0x115, 0x2fff: 0x116, - // Block 0xc0, offset 0x3000 - 0x3002: 0x01, 0x3003: 0x02, 0x3004: 0x03, 0x3005: 0x04, 0x3006: 0x05, 0x3007: 0x06, - 0x3008: 0x07, 0x3009: 0x08, 0x300a: 0x09, 0x300b: 0x0a, 0x300c: 0x0b, 0x300d: 0x0c, 0x300e: 0x0d, 0x300f: 0x0e, - 0x3010: 0x0f, 0x3011: 0x10, 0x3012: 0x11, 0x3013: 0x12, 0x3014: 0x13, 0x3015: 0x14, 0x3016: 0x15, 0x3017: 0x16, - 0x3018: 0x5d8, 0x3019: 0x5d9, 0x301a: 0x5da, 0x301b: 0x5db, 0x301c: 0x1b, 0x301d: 0x1c, 0x301e: 0x1d, 0x301f: 0x1e, - 0x3020: 0x01, 0x3021: 0x02, 0x3022: 0x03, 0x3023: 0x04, 0x3024: 0x05, - 0x302a: 0x06, 0x302d: 0x07, 0x302f: 0xbd, - 0x3030: 0x13, 0x3033: 0x15, - // Block 0xc1, offset 0x3040 - 0x3040: 0x3f, 0x3041: 0x40, 0x3042: 0x41, 0x3043: 0x42, 0x3044: 0x43, 0x3045: 0x44, 0x3046: 0x45, 0x3047: 0x46, - 0x3048: 0x47, 0x3049: 0x48, 0x304a: 0x49, 0x304b: 0x4a, 0x304c: 0x4b, 0x304d: 0x4c, 0x304e: 0x4d, 0x304f: 0x4e, - 0x3050: 0x4f, 0x3051: 0x50, 0x3052: 0x51, 0x3053: 0x52, 0x3054: 0x53, 0x3055: 0x54, 0x3056: 0x55, 0x3057: 0x56, - 0x3058: 0x57, 0x3059: 0x58, 0x305a: 0x59, 0x305b: 0x5a, 0x305c: 0x5b, 0x305d: 0x5c, 0x305e: 0x5d, 0x305f: 0x5e, - 0x3060: 0x5f, 0x3061: 0x60, 0x3062: 0x61, 0x3063: 0x62, 0x3064: 0x63, 0x3065: 0x64, 0x3066: 0x65, 0x3067: 0x66, - 0x3068: 0x67, 0x3069: 0x68, 0x306a: 0x69, 0x306c: 0x6a, 0x306d: 0x6b, 0x306e: 0x6c, 0x306f: 0x6d, - 0x3070: 0x6e, 0x3071: 0x6f, 0x3073: 0x70, 0x3074: 0x71, 0x3075: 0x72, 0x3076: 0x73, 0x3077: 0x74, - 0x3078: 0x5ee, 0x3079: 0x5ef, 0x307a: 0x5f0, 0x307b: 0x5f1, 0x307c: 0x5f2, 0x307d: 0x5f3, 0x307e: 0x5f4, 0x307f: 0x5f5, - // Block 0xc2, offset 0x3080 - 0x3082: 0x01, 0x3083: 0x5e4, 0x3084: 0x5e5, 0x3085: 0x5e6, 0x3086: 0x5e7, 0x3087: 0x5e8, - 0x3088: 0x5e9, 0x3089: 0x08, 0x308a: 0x09, 0x308b: 0x0a, 0x308c: 0x5ea, 0x308d: 0x5eb, 0x308e: 0x5ec, 0x308f: 0x5ed, - 0x3090: 0x0f, 0x3091: 0x10, 0x3092: 0x11, 0x3093: 0x12, 0x3094: 0x13, 0x3095: 0x14, 0x3096: 0x15, 0x3097: 0x16, - 0x3098: 0x17, 0x3099: 0x18, 0x309a: 0x19, 0x309b: 0x1a, 0x309c: 0x1b, 0x309d: 0x1c, 0x309e: 0x1d, 0x309f: 0x1e, - 0x30a0: 0x01, 0x30a1: 0xbf, 0x30a2: 0x03, 0x30a3: 0x04, 0x30a4: 0x05, - 0x30aa: 0x06, 0x30ad: 0x07, 0x30af: 0x08, - 0x30b0: 0x13, 0x30b3: 0x15, - // Block 0xc3, offset 0x30c0 - 0x30c2: 0x01, 0x30c3: 0x5f8, 0x30c4: 0x03, 0x30c5: 0x04, 0x30c6: 0x05, 0x30c7: 0x06, - 0x30c8: 0x07, 0x30c9: 0x08, 0x30ca: 0x09, 0x30cb: 0x0a, 0x30cc: 0x0b, 0x30cd: 0x0c, 0x30ce: 0x0d, 0x30cf: 0x0e, - 0x30d0: 0x0f, 0x30d1: 0x10, 0x30d2: 0x11, 0x30d3: 0x12, 0x30d4: 0x13, 0x30d5: 0x14, 0x30d6: 0x15, 0x30d7: 0x16, - 0x30d8: 0x17, 0x30d9: 0x18, 0x30da: 0x19, 0x30db: 0x1a, 0x30dc: 0x1b, 0x30dd: 0x1c, 0x30de: 0x1d, 0x30df: 0x1e, - 0x30e0: 0x01, 0x30e1: 0x02, 0x30e2: 0x03, 0x30e3: 0x04, 0x30e4: 0x05, - 0x30ea: 0x06, 0x30ed: 0x07, 0x30ef: 0x08, - 0x30f0: 0x13, 0x30f3: 0x15, - // Block 0xc4, offset 0x3100 - 0x3100: 0x3f, 0x3101: 0x40, 0x3102: 0x41, 0x3103: 0x42, 0x3104: 0x43, 0x3105: 0x44, 0x3106: 0x45, 0x3107: 0x46, - 0x3108: 0x47, 0x3109: 0x48, 0x310a: 0x49, 0x310b: 0x4a, 0x310c: 0x4b, 0x310d: 0x4c, 0x310e: 0x4d, 0x310f: 0x4e, - 0x3110: 0x4f, 0x3111: 0x50, 0x3112: 0x51, 0x3113: 0x52, 0x3114: 0x53, 0x3115: 0x54, 0x3116: 0x55, 0x3117: 0x56, - 0x3118: 0x57, 0x3119: 0x58, 0x311a: 0x59, 0x311b: 0x5a, 0x311c: 0x5b, 0x311d: 0x5c, 0x311e: 0x5d, 0x311f: 0x5e, - 0x3120: 0x5f, 0x3121: 0x60, 0x3122: 0x61, 0x3123: 0x62, 0x3124: 0x63, 0x3125: 0x64, 0x3126: 0x65, 0x3127: 0x66, - 0x3128: 0x67, 0x3129: 0x68, 0x312a: 0x69, 0x312c: 0x6a, 0x312d: 0x6b, 0x312e: 0x6c, 0x312f: 0x6d, - 0x3130: 0x6e, 0x3131: 0x6f, 0x3133: 0x70, 0x3134: 0x71, 0x3135: 0x72, 0x3136: 0x73, 0x3137: 0x74, - 0x3138: 0x75, 0x3139: 0x5fb, 0x313a: 0x5fc, 0x313b: 0x5fd, 0x313c: 0x79, 0x313d: 0x7a, 0x313e: 0x7b, 0x313f: 0x7c, - // Block 0xc5, offset 0x3140 - 0x3142: 0x01, 0x3143: 0x02, 0x3144: 0x03, 0x3145: 0x04, 0x3146: 0x05, 0x3147: 0x06, - 0x3148: 0x07, 0x3149: 0x08, 0x314a: 0x09, 0x314b: 0x0a, 0x314c: 0x0b, 0x314d: 0x0c, 0x314e: 0x0d, 0x314f: 0x0e, - 0x3150: 0x0f, 0x3151: 0x10, 0x3152: 0x11, 0x3153: 0x12, 0x3154: 0x13, 0x3155: 0x14, 0x3156: 0x15, 0x3157: 0x16, - 0x3158: 0x17, 0x3159: 0x18, 0x315a: 0x19, 0x315b: 0x1a, 0x315c: 0x1b, 0x315d: 0x1c, 0x315e: 0x1d, 0x315f: 0x1e, - 0x3160: 0x01, 0x3161: 0xc2, 0x3162: 0x03, 0x3163: 0x04, 0x3164: 0x05, - 0x316a: 0x06, 0x316d: 0x07, 0x316f: 0x08, - 0x3170: 0x13, 0x3173: 0x15, - // Block 0xc6, offset 0x3180 - 0x3180: 0x3f, 0x3181: 0x40, 0x3182: 0x41, 0x3183: 0x42, 0x3184: 0x43, 0x3185: 0x44, 0x3186: 0x45, 0x3187: 0x46, - 0x3188: 0x47, 0x3189: 0x48, 0x318a: 0x49, 0x318b: 0x4a, 0x318c: 0x4b, 0x318d: 0x4c, 0x318e: 0x4d, 0x318f: 0x4e, - 0x3190: 0x4f, 0x3191: 0x50, 0x3192: 0x51, 0x3193: 0x52, 0x3194: 0x53, 0x3195: 0x54, 0x3196: 0x55, 0x3197: 0x56, - 0x3198: 0x57, 0x3199: 0x58, 0x319a: 0x59, 0x319b: 0x5a, 0x319c: 0x5b, 0x319d: 0x5c, 0x319e: 0x5d, 0x319f: 0x5e, - 0x31a0: 0x5f, 0x31a1: 0x60, 0x31a2: 0x61, 0x31a3: 0x62, 0x31a4: 0x63, 0x31a5: 0x64, 0x31a6: 0x65, 0x31a7: 0x66, - 0x31a8: 0x67, 0x31a9: 0x68, 0x31aa: 0x69, 0x31ac: 0x6a, 0x31ad: 0x6b, 0x31ae: 0x6c, 0x31af: 0x6d, - 0x31b0: 0x6e, 0x31b1: 0x6f, 0x31b3: 0x70, 0x31b4: 0x71, 0x31b5: 0x72, 0x31b6: 0x73, 0x31b7: 0x74, - 0x31b8: 0x605, 0x31b9: 0x606, 0x31ba: 0x607, 0x31bb: 0x608, 0x31bc: 0x79, 0x31bd: 0x7a, 0x31be: 0x7b, 0x31bf: 0x7c, - // Block 0xc7, offset 0x31c0 - 0x31c0: 0x7d, 0x31c1: 0x7e, 0x31c2: 0x7f, 0x31c3: 0x80, 0x31c4: 0x81, 0x31c5: 0x82, 0x31c6: 0x83, 0x31c7: 0x84, - 0x31c8: 0x85, 0x31c9: 0x86, 0x31ca: 0x87, 0x31cb: 0x88, 0x31cc: 0x89, 0x31cd: 0x8a, 0x31ce: 0x8b, 0x31cf: 0x8c, - 0x31d0: 0x8d, 0x31d1: 0x8e, 0x31d2: 0x8f, 0x31d3: 0x90, 0x31d4: 0x91, 0x31d5: 0x92, 0x31d6: 0x93, 0x31d7: 0x94, - 0x31d8: 0x95, 0x31d9: 0x96, 0x31da: 0x97, 0x31db: 0x98, 0x31dc: 0x99, 0x31dd: 0x9a, 0x31de: 0x9b, 0x31df: 0x9c, - 0x31e0: 0x9d, 0x31e1: 0x9e, 0x31e2: 0x9f, 0x31e3: 0xa0, 0x31e4: 0xa1, 0x31e5: 0xa2, 0x31e6: 0xa3, 0x31e7: 0xa4, - 0x31e8: 0xa5, 0x31e9: 0xa6, 0x31ea: 0xa7, 0x31eb: 0xa8, 0x31ec: 0xa9, 0x31ed: 0xaa, - 0x31f0: 0xab, 0x31f1: 0xac, 0x31f2: 0xad, 0x31f3: 0xae, 0x31f4: 0xaf, 0x31f5: 0xb0, 0x31f6: 0xb1, 0x31f7: 0xb2, - 0x31f8: 0xb3, 0x31fa: 0x609, 0x31fb: 0x60a, 0x31fc: 0x60b, 0x31fd: 0x60c, 0x31fe: 0x60d, 0x31ff: 0x60e, - // Block 0xc8, offset 0x3200 - 0x3200: 0x60f, 0x3201: 0xbb, 0x3202: 0xbc, 0x3203: 0xbd, 0x3204: 0xbe, 0x3205: 0xbf, 0x3206: 0x610, 0x3207: 0xc1, - 0x3208: 0x611, 0x3209: 0x612, 0x320a: 0x613, 0x320b: 0x614, 0x320c: 0xc6, 0x320d: 0x615, 0x320e: 0xc8, 0x320f: 0x616, - 0x3210: 0x617, 0x3211: 0x618, 0x3212: 0x619, 0x3213: 0x61a, 0x3214: 0x61b, 0x3215: 0x61c, 0x3216: 0x61d, 0x3217: 0x61e, - 0x3218: 0x61f, 0x3219: 0x620, 0x321a: 0x621, 0x321b: 0x622, 0x321c: 0x623, 0x321d: 0x624, 0x321e: 0x625, 0x321f: 0x626, - 0x3220: 0x627, 0x3221: 0x628, 0x3222: 0x629, 0x3223: 0x62a, 0x3224: 0x62b, 0x3225: 0x62c, 0x3226: 0x62d, 0x3227: 0x62e, - 0x3228: 0x62f, 0x3229: 0x630, 0x322a: 0x631, 0x322b: 0x632, 0x322c: 0x633, 0x322d: 0x634, 0x322e: 0x635, 0x322f: 0x636, - 0x3230: 0x637, 0x3231: 0x638, 0x3232: 0x639, 0x3233: 0x63a, 0x3234: 0x63b, 0x3235: 0x63c, 0x3236: 0x63d, 0x3237: 0x63e, - 0x3238: 0x63f, 0x3239: 0x640, 0x323a: 0x641, 0x323b: 0x642, 0x323c: 0x643, 0x323d: 0x644, 0x323e: 0x645, 0x323f: 0x646, - // Block 0xc9, offset 0x3240 - 0x3240: 0x647, 0x3241: 0x648, 0x3242: 0x649, 0x3243: 0x64a, 0x3244: 0x64b, 0x3245: 0x64c, 0x3246: 0x64d, 0x3247: 0x64e, - 0x3248: 0x64f, 0x3249: 0x650, 0x324a: 0x651, 0x324b: 0x652, 0x324c: 0x653, 0x324d: 0x654, 0x324e: 0x655, 0x324f: 0x656, - 0x3250: 0x657, 0x3251: 0x658, 0x3252: 0x659, 0x3253: 0x65a, 0x3254: 0x65b, 0x3255: 0x65c, 0x3256: 0x65d, 0x3257: 0x65e, - 0x3258: 0x65f, 0x3259: 0x660, 0x325a: 0x661, 0x325b: 0x662, 0x325c: 0x663, 0x325d: 0x664, 0x325e: 0x665, 0x325f: 0x666, - 0x3260: 0x667, 0x3261: 0x668, 0x3262: 0x669, 0x3263: 0x66a, 0x3264: 0x66b, 0x3265: 0x66c, 0x3266: 0x66d, 0x3267: 0x66e, - 0x3268: 0x66f, 0x3269: 0x670, 0x326a: 0x671, 0x326b: 0x672, 0x326c: 0x673, 0x326d: 0x674, 0x326e: 0x675, 0x326f: 0x676, - 0x3270: 0x677, 0x3271: 0x678, 0x3272: 0x679, 0x3273: 0x67a, 0x3274: 0x67b, 0x3275: 0x67c, 0x3276: 0x67d, 0x3277: 0xca, - 0x3278: 0x67e, 0x3279: 0x67f, 0x327a: 0x680, 0x327b: 0x681, 0x327c: 0x682, 0x327d: 0x683, 0x327e: 0x684, 0x327f: 0x685, - // Block 0xca, offset 0x3280 - 0x3280: 0x686, 0x3281: 0x687, 0x3282: 0x688, 0x3283: 0x689, 0x3284: 0x68a, 0x3285: 0x68b, 0x3286: 0x68c, 0x3287: 0x68d, - 0x3288: 0x68e, 0x3289: 0x68f, 0x328a: 0x690, 0x328b: 0x691, 0x328c: 0x692, 0x328d: 0x693, 0x328e: 0x694, 0x328f: 0x695, - 0x3290: 0x696, 0x3291: 0x697, 0x3292: 0x698, 0x3293: 0x699, 0x3294: 0x69a, 0x3295: 0x69b, 0x3296: 0x69c, 0x3297: 0x69d, - 0x3298: 0x69e, 0x3299: 0x69f, 0x329a: 0x6a0, 0x329b: 0x6a1, 0x329c: 0x6a2, 0x329d: 0x6a3, 0x329e: 0x6a4, 0x329f: 0x6a5, - 0x32a0: 0x6a6, 0x32a1: 0x6a7, 0x32a2: 0x6a8, 0x32a3: 0x6a9, 0x32a4: 0x6aa, 0x32a5: 0x6ab, 0x32a6: 0x6ac, 0x32a7: 0x6ad, - 0x32a8: 0x6ae, 0x32a9: 0x6af, 0x32aa: 0x6b0, 0x32ab: 0x6b1, 0x32ac: 0x6b2, 0x32ad: 0x6b3, 0x32ae: 0x6b4, 0x32af: 0x6b5, - 0x32b0: 0x6b6, 0x32b1: 0x6b7, 0x32b2: 0x6b8, 0x32b3: 0x6b9, 0x32b4: 0x6ba, 0x32b5: 0x6bb, 0x32b6: 0x6bc, 0x32b7: 0x6bd, - 0x32b8: 0x6be, 0x32b9: 0x6bf, 0x32ba: 0x6c0, 0x32bb: 0x6c1, 0x32bc: 0x6c2, 0x32bd: 0x6c3, 0x32be: 0x6c4, 0x32bf: 0x6c5, - // Block 0xcb, offset 0x32c0 - 0x32c0: 0x6c6, 0x32c1: 0x6c7, 0x32c2: 0x6c8, 0x32c3: 0x6c9, 0x32c4: 0x6ca, 0x32c5: 0x6cb, 0x32c6: 0x6cc, 0x32c7: 0x6cd, - 0x32c8: 0x6ce, 0x32c9: 0x6cf, 0x32ca: 0x6d0, 0x32cb: 0x6d1, 0x32cc: 0x6d2, 0x32cd: 0x6d3, 0x32ce: 0x6d4, 0x32cf: 0x6d5, - 0x32d0: 0x6d6, 0x32d1: 0x6d7, 0x32d2: 0x6d8, 0x32d3: 0x6d9, 0x32d4: 0x6da, 0x32d5: 0x6db, 0x32d6: 0x6dc, 0x32d7: 0x6dd, - 0x32d8: 0x6de, 0x32d9: 0x6df, 0x32da: 0x6e0, 0x32db: 0x6e1, 0x32dc: 0x6e2, 0x32dd: 0x6e3, 0x32de: 0x6e4, 0x32df: 0x6e5, - 0x32e0: 0x6e6, 0x32e1: 0x6e7, 0x32e2: 0x6e8, 0x32e3: 0x6e9, 0x32e4: 0x6ea, 0x32e5: 0x6eb, 0x32e6: 0x6ec, 0x32e7: 0x6ed, - 0x32e8: 0x6ee, 0x32e9: 0x6ef, 0x32ea: 0x6f0, 0x32eb: 0x6f1, 0x32ec: 0x6f2, 0x32ed: 0x6f3, 0x32ee: 0x6f4, 0x32ef: 0x6f5, - 0x32f0: 0x6f6, 0x32f1: 0x6f7, 0x32f2: 0x6f8, 0x32f3: 0x6f9, 0x32f4: 0x6fa, 0x32f5: 0x6fb, 0x32f6: 0x6fc, 0x32f7: 0x6fd, - 0x32f8: 0x6fe, 0x32f9: 0x6ff, 0x32fa: 0x700, 0x32fb: 0x701, 0x32fc: 0x702, 0x32fd: 0x703, 0x32fe: 0x704, 0x32ff: 0x705, - // Block 0xcc, offset 0x3300 - 0x3300: 0x706, 0x3301: 0x707, 0x3302: 0x708, 0x3303: 0x709, 0x3304: 0x70a, 0x3305: 0x70b, 0x3306: 0x70c, 0x3307: 0x70d, - 0x3308: 0x70e, 0x3309: 0x70f, 0x330a: 0x710, 0x330b: 0x711, 0x330c: 0x712, 0x330d: 0x713, 0x330e: 0x714, 0x330f: 0x715, - 0x3310: 0x716, 0x3311: 0x717, 0x3312: 0x718, 0x3313: 0x719, 0x3314: 0x71a, 0x3315: 0x71b, 0x3316: 0x71c, 0x3317: 0x71d, - 0x3318: 0x71e, 0x3319: 0x71f, 0x331a: 0x720, 0x331b: 0x721, 0x331c: 0x722, 0x331d: 0x723, 0x331e: 0x724, 0x331f: 0x725, - 0x3320: 0x726, 0x3321: 0x727, 0x3322: 0x728, 0x3323: 0x729, 0x3324: 0x72a, 0x3325: 0x72b, 0x3326: 0x72c, 0x3327: 0x72d, - 0x3328: 0x72e, 0x3329: 0x72f, 0x332a: 0x730, 0x332b: 0x731, 0x332c: 0x732, 0x332d: 0x733, 0x332e: 0x734, 0x332f: 0x735, - 0x3330: 0x736, 0x3331: 0x737, 0x3332: 0x738, 0x3333: 0x739, 0x3334: 0x73a, 0x3335: 0x73b, 0x3336: 0x73c, 0x3337: 0x73d, - 0x3338: 0x73e, 0x3339: 0x73f, 0x333a: 0x740, 0x333b: 0x741, 0x333c: 0x742, 0x333d: 0x743, 0x333e: 0x744, 0x333f: 0x745, - // Block 0xcd, offset 0x3340 - 0x3340: 0x746, 0x3341: 0x747, 0x3342: 0x748, 0x3343: 0x749, 0x3344: 0x74a, 0x3345: 0x74b, 0x3346: 0x74c, 0x3347: 0x74d, - 0x3348: 0x74e, 0x3349: 0x74f, 0x334a: 0x750, 0x334b: 0x751, 0x334c: 0x752, 0x334d: 0x753, 0x334e: 0x754, 0x334f: 0x755, - 0x3350: 0x756, 0x3351: 0x757, 0x3352: 0x758, 0x3353: 0x759, 0x3354: 0x75a, 0x3355: 0x75b, 0x3356: 0x75c, 0x3357: 0x75d, - 0x3358: 0x75e, 0x3359: 0x75f, 0x335a: 0x760, 0x335b: 0x761, 0x335c: 0x762, 0x335d: 0x763, 0x335e: 0x764, 0x335f: 0x765, - 0x3360: 0x766, 0x3361: 0x767, 0x3362: 0x768, 0x3363: 0x769, 0x3364: 0x76a, 0x3365: 0x76b, 0x3366: 0x76c, 0x3367: 0x76d, - 0x3368: 0x76e, 0x3369: 0x76f, 0x336a: 0x770, 0x336b: 0x771, 0x336c: 0x772, 0x336d: 0x773, 0x336e: 0x774, 0x336f: 0x775, - 0x3370: 0x776, 0x3371: 0x777, 0x3372: 0x778, 0x3373: 0x779, 0x3374: 0x77a, 0x3375: 0x77b, 0x3376: 0x77c, 0x3377: 0x77d, - 0x3378: 0x77e, 0x3379: 0x77f, 0x337a: 0x780, 0x337b: 0x781, 0x337c: 0x782, 0x337d: 0x783, 0x337e: 0x784, 0x337f: 0x785, - // Block 0xce, offset 0x3380 - 0x3380: 0x786, 0x3381: 0x787, 0x3382: 0x788, 0x3383: 0x789, 0x3384: 0x78a, 0x3385: 0x78b, 0x3386: 0x78c, 0x3387: 0x78d, - 0x3388: 0x78e, 0x3389: 0x78f, 0x338a: 0x790, 0x338b: 0x791, 0x338c: 0x792, 0x338d: 0x793, 0x338e: 0x794, 0x338f: 0x795, - 0x3390: 0x796, 0x3391: 0x797, 0x3392: 0x798, 0x3393: 0x799, 0x3394: 0x79a, 0x3395: 0x79b, 0x3396: 0x79c, 0x3397: 0x79d, - 0x3398: 0x79e, 0x3399: 0x79f, 0x339a: 0x7a0, 0x339b: 0x7a1, 0x339c: 0x7a2, 0x339d: 0x7a3, 0x339e: 0x7a4, 0x339f: 0x7a5, - 0x33a0: 0x7a6, 0x33a1: 0x7a7, 0x33a2: 0x7a8, 0x33a3: 0x7a9, 0x33a4: 0x7aa, 0x33a5: 0x7ab, 0x33a6: 0x7ac, 0x33a7: 0x7ad, - 0x33a8: 0x7ae, 0x33a9: 0x7af, 0x33aa: 0x7b0, 0x33ab: 0x7b1, 0x33ac: 0x7b2, 0x33ad: 0x7b3, 0x33ae: 0x7b4, 0x33af: 0x7b5, - 0x33b0: 0x7b6, 0x33b1: 0x7b7, 0x33b2: 0x7b8, 0x33b3: 0x7b9, 0x33b4: 0x7ba, 0x33b5: 0x7bb, 0x33b6: 0x7bc, 0x33b7: 0x7bd, - 0x33b8: 0x7be, 0x33b9: 0x7bf, 0x33ba: 0x7c0, 0x33bb: 0x7c1, 0x33bc: 0x7c2, 0x33bd: 0x7c3, 0x33be: 0x7c4, 0x33bf: 0x7c5, - // Block 0xcf, offset 0x33c0 - 0x33e4: 0x7c6, 0x33e5: 0x7c7, 0x33e6: 0x7c8, 0x33e7: 0x7c9, - 0x33e8: 0x7ca, 0x33e9: 0x7cb, 0x33ea: 0x7cc, 0x33eb: 0x7cd, 0x33ec: 0x103, 0x33ed: 0x104, 0x33ee: 0x105, 0x33ef: 0x106, - 0x33f0: 0x107, 0x33f1: 0x108, 0x33f2: 0x109, 0x33f3: 0x10a, 0x33f4: 0x10b, 0x33f5: 0x10c, 0x33f6: 0x10d, 0x33f7: 0x10e, - 0x33f8: 0x10f, 0x33f9: 0x110, 0x33fa: 0x111, 0x33fb: 0x112, 0x33fc: 0x113, 0x33fd: 0x114, 0x33fe: 0x115, 0x33ff: 0x116, - // Block 0xd0, offset 0x3400 - 0x3400: 0x18b, 0x3401: 0x18c, 0x3402: 0x18d, 0x3403: 0x18e, 0x3404: 0x18f, 0x3405: 0x190, 0x3406: 0x191, 0x3407: 0x192, - 0x3408: 0x7ce, 0x3409: 0x7cf, 0x340c: 0x195, 0x340d: 0x196, 0x340e: 0x197, 0x340f: 0x198, - 0x3410: 0x199, 0x3411: 0x19a, 0x3412: 0x19b, 0x3413: 0x19c, 0x3414: 0x19d, 0x3415: 0x19e, 0x3417: 0x19f, - 0x3418: 0x1a0, 0x3419: 0x1a1, 0x341a: 0x1a2, 0x341b: 0x1a3, 0x341c: 0x1a4, 0x341d: 0x1a5, - // Block 0xd1, offset 0x3440 - 0x3440: 0x7d0, 0x3441: 0x7d1, 0x3442: 0x7d2, 0x3443: 0x7d3, 0x3444: 0x7d4, 0x3445: 0x7d5, 0x3446: 0x7d6, 0x3447: 0x7d7, - 0x3448: 0x7d8, 0x3449: 0x7d9, 0x344a: 0x7da, 0x344b: 0x7db, 0x344c: 0x7dc, 0x344d: 0x7dd, 0x344e: 0x7de, 0x344f: 0x7df, - 0x3450: 0x7e0, 0x3451: 0x7e1, 0x3452: 0x7e2, 0x3453: 0x7e3, 0x3454: 0x7e4, 0x3455: 0x7e5, 0x3456: 0x7e6, 0x3457: 0x7e7, - 0x3458: 0x7e8, 0x3459: 0x7e9, 0x345a: 0x7ea, 0x345b: 0x7eb, 0x345c: 0x7ec, 0x345d: 0x7ed, 0x345e: 0x7ee, 0x345f: 0x7ef, - 0x3460: 0x7f0, 0x3461: 0x7f1, 0x3462: 0x7f2, 0x3463: 0x7f3, 0x3464: 0x7f4, 0x3465: 0x7f5, 0x3466: 0x7f6, 0x3467: 0x7f7, - 0x3468: 0x7f8, 0x3469: 0x7f9, 0x346a: 0x7fa, 0x346b: 0x7fb, 0x346c: 0x7fc, 0x346d: 0x7fd, 0x346e: 0x7fe, 0x346f: 0x7ff, - 0x3470: 0x800, 0x3471: 0x801, 0x3472: 0x802, 0x3473: 0x803, 0x3474: 0x804, 0x3475: 0x805, 0x3476: 0x806, 0x3477: 0x807, - 0x3478: 0x808, 0x3479: 0x809, 0x347a: 0x80a, 0x347b: 0x80b, 0x347c: 0x80c, 0x347d: 0x80d, 0x347e: 0x80e, 0x347f: 0x80f, - // Block 0xd2, offset 0x3480 - 0x3480: 0x810, 0x3481: 0x811, 0x3482: 0x812, 0x3483: 0x813, 0x3484: 0x814, 0x3485: 0x815, 0x3486: 0x816, 0x3487: 0x817, - 0x3488: 0x818, 0x3489: 0x819, 0x348a: 0x81a, 0x348b: 0x81b, 0x348c: 0x81c, 0x348d: 0x81d, 0x348e: 0x81e, 0x348f: 0x81f, - 0x3490: 0x820, 0x3491: 0x821, 0x3492: 0x822, 0x3493: 0x823, 0x3494: 0x824, 0x3495: 0x825, 0x3496: 0x826, 0x3497: 0x827, - 0x3498: 0x828, 0x3499: 0x829, 0x349a: 0x82a, 0x349b: 0x82b, 0x349c: 0x82c, 0x349d: 0x82d, 0x349e: 0x82e, 0x349f: 0x82f, - 0x34a0: 0x830, 0x34a1: 0x831, 0x34a2: 0x832, 0x34a3: 0x833, 0x34a4: 0x834, 0x34a5: 0x835, 0x34a6: 0x836, 0x34a7: 0x837, - 0x34a8: 0x838, 0x34a9: 0x839, 0x34aa: 0x83a, 0x34ab: 0x83b, 0x34ac: 0x83c, 0x34ad: 0x83d, 0x34ae: 0x83e, 0x34af: 0x83f, - 0x34b0: 0x840, 0x34b1: 0x841, 0x34b2: 0x842, 0x34b3: 0x843, 0x34b4: 0x844, 0x34b5: 0x845, 0x34b6: 0x846, 0x34b7: 0x847, - 0x34b8: 0x848, 0x34b9: 0x849, 0x34ba: 0x84a, 0x34bb: 0x84b, 0x34bc: 0x84c, 0x34bd: 0x84d, 0x34be: 0x84e, 0x34bf: 0x84f, - // Block 0xd3, offset 0x34c0 - 0x34c0: 0x850, 0x34c1: 0x851, 0x34c2: 0x852, 0x34c3: 0x853, 0x34c4: 0x854, 0x34c5: 0x855, 0x34c6: 0x856, 0x34c7: 0x857, - 0x34c8: 0x858, 0x34c9: 0x859, 0x34ca: 0x85a, 0x34cb: 0x85b, 0x34cc: 0x85c, 0x34cd: 0x85d, 0x34ce: 0x85e, 0x34cf: 0x85f, - 0x34d0: 0x860, 0x34d1: 0x861, 0x34d2: 0x862, 0x34d3: 0x863, 0x34d4: 0x864, 0x34d5: 0x865, 0x34d6: 0x866, 0x34d7: 0x867, - 0x34d8: 0x868, 0x34d9: 0x869, 0x34da: 0x86a, 0x34db: 0x86b, 0x34dc: 0x86c, 0x34dd: 0x86d, 0x34de: 0x86e, 0x34df: 0x86f, - 0x34e0: 0x870, 0x34e1: 0x871, 0x34e2: 0x872, 0x34e3: 0x873, 0x34e4: 0x874, 0x34e5: 0x875, 0x34e6: 0x876, 0x34e7: 0x877, - 0x34e8: 0x878, 0x34e9: 0x879, 0x34ea: 0x87a, 0x34eb: 0x87b, 0x34ec: 0x87c, 0x34ed: 0x87d, 0x34ee: 0x87e, 0x34ef: 0x87f, - 0x34f0: 0x880, 0x34f1: 0x881, 0x34f2: 0x882, 0x34f3: 0x883, 0x34f4: 0x884, 0x34f5: 0x885, 0x34f6: 0x886, 0x34f7: 0x887, - 0x34f8: 0x888, 0x34f9: 0x889, 0x34fa: 0x88a, 0x34fb: 0x88b, 0x34fc: 0x88c, 0x34fd: 0x88d, 0x34fe: 0x88e, 0x34ff: 0x88f, - // Block 0xd4, offset 0x3500 - 0x3500: 0x890, 0x3501: 0x891, 0x3502: 0x892, 0x3503: 0x893, 0x3504: 0x894, 0x3505: 0x895, 0x3506: 0x896, 0x3507: 0x897, - 0x3508: 0x898, 0x3509: 0x899, 0x350a: 0x89a, 0x350b: 0x89b, 0x350c: 0x89c, 0x350d: 0x89d, 0x350e: 0x89e, 0x350f: 0x89f, - 0x3510: 0x8a0, 0x3511: 0x8a1, 0x3512: 0x8a2, 0x3513: 0x8a3, 0x3514: 0x8a4, 0x3515: 0x8a5, 0x3516: 0x8a6, 0x3517: 0x8a7, - 0x3518: 0x8a8, 0x3519: 0x8a9, 0x351a: 0x8aa, 0x351b: 0x8ab, 0x351c: 0x8ac, 0x351d: 0x8ad, 0x351e: 0x8ae, 0x351f: 0x8af, - 0x3520: 0x8b0, 0x3521: 0x8b1, 0x3522: 0x8b2, 0x3523: 0x8b3, 0x3524: 0x8b4, 0x3525: 0x8b5, 0x3526: 0x8b6, 0x3527: 0x8b7, - 0x3528: 0x8b8, 0x3529: 0x8b9, 0x352a: 0x8ba, 0x352b: 0x8bb, 0x352c: 0x8bc, 0x352d: 0x8bd, 0x352e: 0x8be, 0x352f: 0x8bf, - 0x3530: 0x8c0, 0x3531: 0x8c1, 0x3532: 0x8c2, 0x3533: 0x8c3, 0x3534: 0x8c4, 0x3535: 0x8c5, 0x3536: 0x8c6, 0x3537: 0x8c7, - 0x3538: 0x8c8, 0x3539: 0x8c9, 0x353a: 0x8ca, 0x353b: 0x8cb, 0x353c: 0x8cc, 0x353d: 0x8cd, 0x353e: 0x8ce, 0x353f: 0x8cf, - // Block 0xd5, offset 0x3540 - 0x3540: 0x8d0, 0x3541: 0x8d1, 0x3542: 0x8d2, 0x3543: 0x8d3, 0x3544: 0x8d4, 0x3545: 0x8d5, 0x3546: 0x8d6, 0x3547: 0x8d7, - 0x3548: 0x8d8, 0x3549: 0x8d9, 0x354a: 0x8da, 0x354b: 0x8db, 0x354c: 0x8dc, 0x354d: 0x8dd, 0x354e: 0x8de, 0x354f: 0x8df, - 0x3550: 0x8e0, 0x3551: 0x8e1, 0x3552: 0x8e2, 0x3553: 0x8e3, 0x3554: 0x8e4, 0x3555: 0x8e5, 0x3556: 0x8e6, 0x3557: 0x8e7, - 0x3558: 0x8e8, 0x3559: 0x8e9, 0x355a: 0x8ea, 0x355b: 0x8eb, 0x355c: 0x8ec, 0x355d: 0x8ed, 0x355e: 0x8ee, 0x355f: 0x8ef, - 0x3560: 0x8f0, 0x3561: 0x8f1, 0x3562: 0x8f2, 0x3563: 0x8f3, 0x3564: 0x8f4, 0x3565: 0x8f5, 0x3566: 0x8f6, 0x3567: 0x8f7, - 0x3568: 0x8f8, 0x3569: 0x8f9, 0x356a: 0x8fa, 0x356b: 0x8fb, 0x356c: 0x8fc, 0x356d: 0x8fd, 0x356e: 0x8fe, 0x356f: 0x8ff, - 0x3570: 0x900, 0x3571: 0x901, 0x3572: 0x902, 0x3573: 0x903, 0x3574: 0x904, 0x3575: 0x905, 0x3576: 0x906, 0x3577: 0x907, - 0x3578: 0x908, 0x3579: 0x909, 0x357a: 0x90a, 0x357b: 0x90b, 0x357c: 0x90c, 0x357d: 0x90d, 0x357e: 0x90e, 0x357f: 0x90f, - // Block 0xd6, offset 0x3580 - 0x3580: 0x910, 0x3581: 0x911, 0x3582: 0x912, 0x3583: 0x913, 0x3584: 0x914, 0x3585: 0x915, 0x3586: 0x916, 0x3587: 0x917, - 0x3588: 0x918, 0x3589: 0x919, 0x358a: 0x91a, 0x358b: 0x91b, 0x358c: 0x91c, 0x358d: 0x91d, 0x358e: 0x91e, 0x358f: 0x91f, - 0x3590: 0x920, 0x3591: 0x921, 0x3592: 0x922, 0x3593: 0x923, 0x3594: 0x924, 0x3595: 0x925, 0x3596: 0x926, 0x3597: 0x927, - 0x3598: 0x928, 0x3599: 0x929, 0x359a: 0x92a, 0x359b: 0x92b, 0x359c: 0x92c, 0x359d: 0x92d, 0x359e: 0x92e, 0x359f: 0x92f, - 0x35a0: 0x930, 0x35a1: 0x931, 0x35a2: 0x932, 0x35a3: 0x933, 0x35a4: 0x934, 0x35a5: 0x935, 0x35a6: 0x936, 0x35a7: 0x937, - 0x35a8: 0x938, 0x35a9: 0x939, 0x35aa: 0x93a, 0x35ab: 0x93b, 0x35ac: 0x93c, 0x35ad: 0x93d, 0x35ae: 0x93e, 0x35af: 0x93f, - 0x35b0: 0x940, 0x35b1: 0x941, 0x35b2: 0x942, 0x35b3: 0x943, 0x35b4: 0x944, 0x35b5: 0x945, 0x35b6: 0x946, 0x35b7: 0x947, - 0x35b8: 0x948, 0x35b9: 0x949, 0x35ba: 0x94a, 0x35bb: 0x94b, 0x35bc: 0x94c, 0x35bd: 0x94d, 0x35be: 0x94e, 0x35bf: 0x94f, - // Block 0xd7, offset 0x35c0 - 0x35c0: 0x950, 0x35c1: 0x951, 0x35c2: 0x952, 0x35c3: 0x953, 0x35c4: 0x954, 0x35c5: 0x955, 0x35c6: 0x956, 0x35c7: 0x957, - 0x35c8: 0x958, 0x35c9: 0x959, 0x35ca: 0x95a, 0x35cb: 0x95b, 0x35cc: 0x95c, 0x35cd: 0x95d, 0x35ce: 0x95e, 0x35cf: 0x95f, - 0x35d0: 0x960, 0x35d1: 0x961, 0x35d2: 0x962, 0x35d3: 0x963, 0x35d4: 0x964, 0x35d5: 0x965, 0x35d6: 0x966, 0x35d7: 0x967, - 0x35d8: 0x968, 0x35d9: 0x969, 0x35da: 0x96a, 0x35db: 0x96b, 0x35dc: 0x96c, 0x35dd: 0x96d, 0x35de: 0x96e, 0x35df: 0x96f, - 0x35e0: 0x970, 0x35e1: 0x971, 0x35e2: 0x972, 0x35e3: 0x973, 0x35e4: 0x974, 0x35e5: 0x975, 0x35e6: 0x976, 0x35e7: 0x977, - 0x35e8: 0x978, 0x35e9: 0x979, 0x35ea: 0x97a, 0x35eb: 0x97b, 0x35ec: 0x97c, 0x35ed: 0x97d, 0x35ee: 0x97e, 0x35ef: 0x97f, - 0x35f0: 0x980, 0x35f1: 0x981, 0x35f2: 0x982, 0x35f3: 0x983, 0x35f4: 0x984, 0x35f5: 0x985, 0x35f6: 0x986, 0x35f7: 0x987, - 0x35f8: 0x988, 0x35f9: 0x989, 0x35fa: 0x98a, 0x35fb: 0x98b, 0x35fc: 0x98c, 0x35fd: 0x98d, 0x35fe: 0x98e, 0x35ff: 0x98f, - // Block 0xd8, offset 0x3600 - 0x3600: 0x990, 0x3601: 0x991, 0x3602: 0x992, 0x3603: 0x993, 0x3604: 0x994, 0x3605: 0x995, 0x3606: 0x996, 0x3607: 0x997, - 0x3608: 0x998, 0x3609: 0x999, 0x360a: 0x99a, 0x360b: 0x99b, 0x360c: 0x99c, 0x360d: 0x99d, 0x360e: 0x99e, 0x360f: 0x99f, - 0x3610: 0x9a0, 0x3611: 0x9a1, 0x3612: 0x9a2, 0x3613: 0x9a3, 0x3614: 0x9a4, 0x3615: 0x9a5, 0x3616: 0x9a6, 0x3617: 0x9a7, - 0x3618: 0x9a8, 0x3619: 0x9a9, 0x361a: 0x9aa, 0x361b: 0x9ab, 0x361c: 0x9ac, 0x361d: 0x9ad, 0x361e: 0x9ae, 0x361f: 0x9af, - 0x3620: 0x9b0, 0x3621: 0x9b1, 0x3622: 0x9b2, 0x3623: 0x9b3, 0x3624: 0x9b4, 0x3625: 0x9b5, 0x3626: 0x9b6, 0x3627: 0x9b7, - 0x3628: 0x9b8, 0x3629: 0x9b9, 0x362a: 0x9ba, 0x362b: 0x9bb, 0x362c: 0x9bc, 0x362d: 0x9bd, 0x362e: 0x9be, 0x362f: 0x9bf, - 0x3630: 0x9c0, 0x3631: 0x9c1, 0x3632: 0x9c2, 0x3633: 0x9c3, 0x3634: 0x9c4, 0x3635: 0x9c5, 0x3636: 0x9c6, 0x3637: 0x9c7, - 0x3638: 0x9c8, 0x3639: 0x9c9, 0x363a: 0x9ca, 0x363b: 0x9cb, 0x363c: 0x9cc, 0x363d: 0x9cd, 0x363e: 0x9ce, 0x363f: 0x9cf, - // Block 0xd9, offset 0x3640 - 0x3640: 0x9d0, 0x3641: 0x9d1, 0x3642: 0x9d2, 0x3643: 0x9d3, 0x3644: 0x9d4, 0x3645: 0x9d5, 0x3646: 0x9d6, 0x3647: 0x9d7, - 0x3648: 0x9d8, 0x3649: 0x9d9, 0x364a: 0x9da, 0x364b: 0x9db, 0x364c: 0x9dc, 0x364d: 0x9dd, 0x364e: 0x9de, 0x364f: 0x9df, - 0x3650: 0x9e0, 0x3651: 0x9e1, 0x3652: 0x9e2, 0x3653: 0x9e3, 0x3654: 0x9e4, 0x3655: 0x9e5, 0x3656: 0x9e6, 0x3657: 0x9e7, - 0x3658: 0x9e8, 0x3659: 0x9e9, 0x365a: 0x9ea, 0x365b: 0x9eb, 0x365c: 0x9ec, 0x365d: 0x9ed, 0x365e: 0x9ee, 0x365f: 0x9ef, - 0x3660: 0x9f0, 0x3661: 0x9f1, 0x3662: 0x9f2, 0x3663: 0x9f3, 0x3664: 0x9f4, 0x3665: 0x9f5, 0x3666: 0x9f6, 0x3667: 0x9f7, - 0x3668: 0x9f8, 0x3669: 0x9f9, 0x366a: 0x9fa, 0x366b: 0x9fb, 0x366c: 0x9fc, 0x366d: 0x9fd, 0x366e: 0x9fe, 0x366f: 0x9ff, - 0x3670: 0xa00, 0x3671: 0xa01, 0x3672: 0xa02, 0x3673: 0xa03, 0x3674: 0xa04, 0x3675: 0xa05, 0x3676: 0xa06, 0x3677: 0xa07, - 0x3678: 0xa08, 0x3679: 0xa09, 0x367a: 0xa0a, 0x367b: 0xa0b, 0x367c: 0xa0c, 0x367d: 0xa0d, 0x367e: 0xa0e, 0x367f: 0xa0f, - // Block 0xda, offset 0x3680 - 0x3680: 0xa10, 0x3681: 0xa11, 0x3682: 0xa12, 0x3683: 0xa13, 0x3684: 0xa14, 0x3685: 0xa15, 0x3686: 0xa16, 0x3687: 0xa17, - 0x3688: 0xa18, 0x3689: 0xa19, 0x368a: 0xa1a, 0x368b: 0xa1b, 0x368c: 0xa1c, 0x368d: 0xa1d, 0x368e: 0xa1e, 0x368f: 0xa1f, - 0x3690: 0xa20, 0x3691: 0xa21, 0x3692: 0xa22, 0x3693: 0xa23, 0x3694: 0xa24, 0x3695: 0xa25, 0x3696: 0xa26, 0x3697: 0xa27, - 0x3698: 0xa28, 0x3699: 0xa29, 0x369a: 0xa2a, 0x369b: 0xa2b, 0x369c: 0xa2c, 0x369d: 0xa2d, 0x369e: 0xa2e, 0x369f: 0xa2f, - 0x36a0: 0xa30, 0x36a1: 0xa31, 0x36a2: 0xa32, 0x36a3: 0xa33, 0x36a4: 0xa34, 0x36a5: 0xa35, 0x36a6: 0xa36, 0x36a7: 0xa37, - 0x36a8: 0xa38, 0x36a9: 0xa39, 0x36aa: 0xa3a, 0x36ab: 0xa3b, 0x36ac: 0xa3c, 0x36ad: 0xa3d, 0x36ae: 0xa3e, 0x36af: 0xa3f, - 0x36b0: 0xa40, 0x36b1: 0xa41, 0x36b2: 0xa42, 0x36b3: 0xa43, 0x36b4: 0xa44, 0x36b5: 0xa45, 0x36b6: 0xa46, 0x36b7: 0xa47, - 0x36b8: 0xa48, 0x36b9: 0xa49, 0x36ba: 0xa4a, 0x36bb: 0xa4b, 0x36bc: 0xa4c, 0x36bd: 0xa4d, 0x36be: 0xa4e, 0x36bf: 0xa4f, - // Block 0xdb, offset 0x36c0 - 0x36c0: 0xa50, 0x36c1: 0xa51, 0x36c2: 0xa52, 0x36c3: 0xa53, 0x36c4: 0xa54, 0x36c5: 0xa55, 0x36c6: 0xa56, 0x36c7: 0xa57, - 0x36c8: 0xa58, 0x36c9: 0xa59, 0x36ca: 0xa5a, 0x36cb: 0xa5b, 0x36cc: 0xa5c, 0x36cd: 0xa5d, 0x36ce: 0xa5e, 0x36cf: 0xa5f, - 0x36d0: 0xa60, 0x36d1: 0xa61, 0x36d2: 0xa62, 0x36d3: 0xa63, 0x36d4: 0xa64, 0x36d5: 0xa65, 0x36d6: 0xa66, 0x36d7: 0xa67, - 0x36d8: 0xa68, 0x36d9: 0xa69, 0x36da: 0xa6a, 0x36db: 0xa6b, 0x36de: 0xa6c, - 0x36e1: 0xa6d, 0x36e2: 0xa6e, - 0x36e8: 0xa6f, 0x36ea: 0xa70, - 0x36fa: 0xa71, 0x36fb: 0xa72, 0x36fe: 0xa73, - // Block 0xdc, offset 0x3700 - 0x3701: 0xa74, 0x3702: 0xa75, 0x3703: 0xa76, 0x3704: 0xa77, - 0x3708: 0xa78, 0x370b: 0xa79, 0x370c: 0xa7a, 0x370d: 0xa7b, 0x370f: 0xa7c, - 0x3710: 0xa7d, 0x3712: 0xa7e, 0x3713: 0xa7f, 0x3714: 0xa80, 0x3717: 0xa81, - 0x3718: 0xa82, 0x371a: 0xa83, 0x371b: 0xa84, - // Block 0xdd, offset 0x3740 - 0x3760: 0xa85, 0x3761: 0xa86, 0x3762: 0xa87, 0x3763: 0xa88, 0x3764: 0xa89, 0x3765: 0xa8a, 0x3766: 0xa8b, 0x3767: 0xa8c, - 0x3768: 0xa8d, - // Block 0xde, offset 0x3780 - 0x3790: 0x09, 0x3791: 0x0a, 0x3792: 0x0b, 0x3793: 0x0c, 0x3796: 0x0d, - 0x379b: 0x0e, 0x379d: 0x0f, 0x379e: 0x10, 0x379f: 0xce, - 0x37a0: 0xcf, 0x37a1: 0xd0, 0x37a2: 0xd1, 0x37a3: 0xd2, 0x37a4: 0xd3, 0x37a5: 0xd4, 0x37a6: 0xd5, 0x37a7: 0xd6, - 0x37a8: 0xd7, 0x37a9: 0xd8, 0x37aa: 0xd9, 0x37ab: 0xda, 0x37af: 0xdb, - // Block 0xdf, offset 0x37c0 - 0x37c2: 0x01, 0x37c3: 0x600, 0x37c4: 0x601, 0x37c5: 0x602, 0x37c6: 0x05, 0x37c7: 0x603, - 0x37c8: 0x604, 0x37c9: 0x08, 0x37ca: 0x09, 0x37cb: 0x0a, 0x37cc: 0x0b, 0x37cd: 0x0c, 0x37ce: 0x0d, 0x37cf: 0x0e, - 0x37d0: 0x0f, 0x37d1: 0x10, 0x37d2: 0x11, 0x37d3: 0x12, 0x37d4: 0x13, 0x37d5: 0x14, 0x37d6: 0x15, 0x37d7: 0x16, - 0x37d8: 0x17, 0x37d9: 0x18, 0x37da: 0x19, 0x37db: 0x1a, 0x37dc: 0x1b, 0x37dd: 0x1c, 0x37de: 0x1d, 0x37df: 0x1e, - 0x37e0: 0x01, 0x37e1: 0xc4, 0x37e2: 0xc5, 0x37e3: 0xc6, 0x37e4: 0xc7, 0x37e5: 0xc8, 0x37e6: 0xc9, 0x37e7: 0xca, - 0x37e8: 0xcb, 0x37e9: 0xcc, 0x37ea: 0x06, 0x37ed: 0x07, 0x37ef: 0xcd, - 0x37f0: 0xdc, 0x37f3: 0x15, - // Block 0xe0, offset 0x3800 - 0x3800: 0x7d, 0x3801: 0x7e, 0x3802: 0x7f, 0x3803: 0x80, 0x3804: 0x81, 0x3805: 0x82, 0x3806: 0x83, 0x3807: 0x84, - 0x3808: 0x85, 0x3809: 0x86, 0x380a: 0x87, 0x380b: 0x88, 0x380c: 0x89, 0x380d: 0x8a, 0x380e: 0x8b, 0x380f: 0x8c, - 0x3810: 0x8d, 0x3811: 0x8e, 0x3812: 0x8f, 0x3813: 0x90, 0x3814: 0x91, 0x3815: 0x92, 0x3816: 0x93, 0x3817: 0x94, - 0x3818: 0x95, 0x3819: 0x96, 0x381a: 0x97, 0x381b: 0x98, 0x381c: 0x99, 0x381d: 0x9a, 0x381e: 0x9b, 0x381f: 0x9c, - 0x3820: 0x9d, 0x3821: 0x9e, 0x3822: 0x9f, 0x3823: 0xa0, 0x3824: 0xa1, 0x3825: 0xa2, 0x3826: 0xa3, 0x3827: 0xa4, - 0x3828: 0xa5, 0x3829: 0xa6, 0x382a: 0xa7, 0x382b: 0xa8, 0x382c: 0xa9, 0x382d: 0xaa, - 0x3830: 0xab, 0x3831: 0xac, 0x3832: 0xad, 0x3833: 0xae, 0x3834: 0xaf, 0x3835: 0xb0, 0x3836: 0xb1, 0x3837: 0xb2, - 0x3838: 0xb3, 0x383a: 0xa8e, 0x383b: 0xa8f, 0x383c: 0xa90, 0x383d: 0xa91, 0x383e: 0xa92, 0x383f: 0xa93, - // Block 0xe1, offset 0x3840 - 0x3840: 0xa94, 0x3841: 0xbb, 0x3842: 0xbc, 0x3843: 0xbd, 0x3844: 0xbe, 0x3845: 0xbf, 0x3846: 0xa95, 0x3847: 0xc1, - 0x3848: 0xa96, 0x3849: 0xa97, 0x384a: 0xa98, 0x384b: 0xa99, 0x384c: 0xc6, 0x384d: 0xa9a, 0x384e: 0xc8, 0x384f: 0xa9b, - 0x3850: 0xa9c, 0x3851: 0xa9d, 0x3852: 0xa9e, 0x3853: 0xa9f, 0x3854: 0xaa0, 0x3855: 0xaa1, 0x3856: 0xaa2, 0x3857: 0xaa3, - 0x3858: 0xaa4, 0x3859: 0xaa5, 0x385a: 0xaa6, 0x385b: 0xaa7, 0x385c: 0xaa8, 0x385d: 0xaa9, 0x385e: 0xaaa, 0x385f: 0xaab, - 0x3860: 0xaac, 0x3861: 0xaad, 0x3862: 0xaae, 0x3863: 0xaaf, 0x3864: 0xab0, 0x3865: 0xab1, 0x3866: 0xab2, 0x3867: 0xab3, - 0x3868: 0xab4, 0x3869: 0xab5, 0x386a: 0xab6, 0x386b: 0xab7, 0x386c: 0xab8, 0x386d: 0xab9, 0x386e: 0xaba, 0x386f: 0xabb, - 0x3870: 0xabc, 0x3871: 0xabd, 0x3872: 0xabe, 0x3873: 0xabf, 0x3874: 0xac0, 0x3875: 0xac1, 0x3876: 0xac2, 0x3877: 0xac3, - 0x3878: 0xac4, 0x3879: 0xac5, 0x387a: 0xac6, 0x387b: 0xac7, 0x387c: 0xac8, 0x387d: 0xac9, 0x387e: 0xaca, 0x387f: 0xacb, - // Block 0xe2, offset 0x3880 - 0x3880: 0xacc, 0x3881: 0xacd, 0x3882: 0xace, 0x3883: 0xacf, 0x3884: 0xad0, 0x3885: 0xad1, 0x3886: 0xad2, 0x3887: 0xad3, - 0x3888: 0xad4, 0x3889: 0xad5, 0x388a: 0xad6, 0x388b: 0xad7, 0x388c: 0xad8, 0x388d: 0xad9, 0x388e: 0xada, 0x388f: 0xadb, - 0x3890: 0xadc, 0x3891: 0xadd, 0x3892: 0xade, 0x3893: 0xadf, 0x3894: 0xae0, 0x3895: 0xae1, 0x3896: 0xae2, 0x3897: 0xae3, - 0x3898: 0xae4, 0x3899: 0xae5, 0x389a: 0xae6, 0x389b: 0xae7, 0x389c: 0xae8, 0x389d: 0xae9, 0x389e: 0xaea, 0x389f: 0xaeb, - 0x38a0: 0xaec, 0x38a1: 0xaed, 0x38a2: 0xaee, 0x38a3: 0xaef, 0x38a4: 0xaf0, 0x38a5: 0xaf1, 0x38a6: 0xaf2, 0x38a7: 0xaf3, - 0x38a8: 0xaf4, 0x38a9: 0xaf5, 0x38aa: 0xaf6, 0x38ab: 0xaf7, 0x38ac: 0xaf8, 0x38ad: 0xaf9, 0x38ae: 0xafa, 0x38af: 0xafb, - 0x38b0: 0xafc, 0x38b1: 0xafd, 0x38b2: 0xafe, 0x38b3: 0xaff, 0x38b4: 0xb00, 0x38b5: 0xb01, 0x38b6: 0xb02, 0x38b7: 0xca, - 0x38b8: 0xb03, 0x38b9: 0xb04, 0x38ba: 0xb05, 0x38bb: 0xb06, 0x38bc: 0xb07, 0x38bd: 0xb08, 0x38be: 0xb09, 0x38bf: 0xb0a, - // Block 0xe3, offset 0x38c0 - 0x38c0: 0xb0b, 0x38c1: 0xb0c, 0x38c2: 0xb0d, 0x38c3: 0xb0e, 0x38c4: 0xb0f, 0x38c5: 0xb10, 0x38c6: 0xb11, 0x38c7: 0xb12, - 0x38c8: 0xb13, 0x38c9: 0xb14, 0x38ca: 0xb15, 0x38cb: 0xb16, 0x38cc: 0xb17, 0x38cd: 0xb18, 0x38ce: 0xb19, 0x38cf: 0xb1a, - 0x38d0: 0xb1b, 0x38d1: 0xb1c, 0x38d2: 0xb1d, 0x38d3: 0xb1e, 0x38d4: 0xb1f, 0x38d5: 0xb20, 0x38d6: 0xb21, 0x38d7: 0xb22, - 0x38d8: 0xb23, 0x38d9: 0xb24, 0x38da: 0xb25, 0x38db: 0xb26, 0x38dc: 0xb27, 0x38dd: 0xb28, 0x38de: 0xb29, 0x38df: 0xb2a, - 0x38e0: 0xb2b, 0x38e1: 0xb2c, 0x38e2: 0xb2d, 0x38e3: 0xb2e, 0x38e4: 0xb2f, 0x38e5: 0xb30, 0x38e6: 0xb31, 0x38e7: 0xb32, - 0x38e8: 0xb33, 0x38e9: 0xb34, 0x38ea: 0xb35, 0x38eb: 0xb36, 0x38ec: 0xb37, 0x38ed: 0xb38, 0x38ee: 0xb39, 0x38ef: 0xb3a, - 0x38f0: 0xb3b, 0x38f1: 0xb3c, 0x38f2: 0xb3d, 0x38f3: 0xb3e, 0x38f4: 0xb3f, 0x38f5: 0xb40, 0x38f6: 0xb41, 0x38f7: 0xb42, - 0x38f8: 0xb43, 0x38f9: 0xb44, 0x38fa: 0xb45, 0x38fb: 0xb46, 0x38fc: 0xb47, 0x38fd: 0xb48, 0x38fe: 0xb49, 0x38ff: 0xb4a, - // Block 0xe4, offset 0x3900 - 0x3900: 0xb4b, 0x3901: 0xb4c, 0x3902: 0xb4d, 0x3903: 0xb4e, 0x3904: 0xb4f, 0x3905: 0xb50, 0x3906: 0xb51, 0x3907: 0xb52, - 0x3908: 0xb53, 0x3909: 0xb54, 0x390a: 0xb55, 0x390b: 0xb56, 0x390c: 0xb57, 0x390d: 0xb58, 0x390e: 0xb59, 0x390f: 0xb5a, - 0x3910: 0xb5b, 0x3911: 0xb5c, 0x3912: 0xb5d, 0x3913: 0xb5e, 0x3914: 0xb5f, 0x3915: 0xb60, 0x3916: 0xb61, 0x3917: 0xb62, - 0x3918: 0xb63, 0x3919: 0xb64, 0x391a: 0xb65, 0x391b: 0xb66, 0x391c: 0xb67, 0x391d: 0xb68, 0x391e: 0xb69, 0x391f: 0xb6a, - 0x3920: 0xb6b, 0x3921: 0xb6c, 0x3922: 0xb6d, 0x3923: 0xb6e, 0x3924: 0xb6f, 0x3925: 0xb70, 0x3926: 0xb71, 0x3927: 0xb72, - 0x3928: 0xb73, 0x3929: 0xb74, 0x392a: 0xb75, 0x392b: 0xb76, 0x392c: 0xb77, 0x392d: 0xb78, 0x392e: 0xb79, 0x392f: 0xb7a, - 0x3930: 0xb7b, 0x3931: 0xb7c, 0x3932: 0xb7d, 0x3933: 0xb7e, 0x3934: 0xb7f, 0x3935: 0xb80, 0x3936: 0xb81, 0x3937: 0xb82, - 0x3938: 0xb83, 0x3939: 0xb84, 0x393a: 0xb85, 0x393b: 0xb86, 0x393c: 0xb87, 0x393d: 0xb88, 0x393e: 0xb89, 0x393f: 0xb8a, - // Block 0xe5, offset 0x3940 - 0x3940: 0xb8b, 0x3941: 0xb8c, 0x3942: 0xb8d, 0x3943: 0xb8e, 0x3944: 0xb8f, 0x3945: 0xb90, 0x3946: 0xb91, 0x3947: 0xb92, - 0x3948: 0xb93, 0x3949: 0xb94, 0x394a: 0xb95, 0x394b: 0xb96, 0x394c: 0xb97, 0x394d: 0xb98, 0x394e: 0xb99, 0x394f: 0xb9a, - 0x3950: 0xb9b, 0x3951: 0xb9c, 0x3952: 0xb9d, 0x3953: 0xb9e, 0x3954: 0xb9f, 0x3955: 0xba0, 0x3956: 0xba1, 0x3957: 0xba2, - 0x3958: 0xba3, 0x3959: 0xba4, 0x395a: 0xba5, 0x395b: 0xba6, 0x395c: 0xba7, 0x395d: 0xba8, 0x395e: 0xba9, 0x395f: 0xbaa, - 0x3960: 0xbab, 0x3961: 0xbac, 0x3962: 0xbad, 0x3963: 0xbae, 0x3964: 0xbaf, 0x3965: 0xbb0, 0x3966: 0xbb1, 0x3967: 0xbb2, - 0x3968: 0xbb3, 0x3969: 0xbb4, 0x396a: 0xbb5, 0x396b: 0xbb6, 0x396c: 0xbb7, 0x396d: 0xbb8, 0x396e: 0xbb9, 0x396f: 0xbba, - 0x3970: 0xbbb, 0x3971: 0xbbc, 0x3972: 0xbbd, 0x3973: 0xbbe, 0x3974: 0xbbf, 0x3975: 0xbc0, 0x3976: 0xbc1, 0x3977: 0xbc2, - 0x3978: 0xbc3, 0x3979: 0xbc4, 0x397a: 0xbc5, 0x397b: 0xbc6, 0x397c: 0xbc7, 0x397d: 0xbc8, 0x397e: 0xbc9, 0x397f: 0xbca, - // Block 0xe6, offset 0x3980 - 0x3980: 0xbcb, 0x3981: 0xbcc, 0x3982: 0xbcd, 0x3983: 0xbce, 0x3984: 0xbcf, 0x3985: 0xbd0, 0x3986: 0xbd1, 0x3987: 0xbd2, - 0x3988: 0xbd3, 0x3989: 0xbd4, 0x398a: 0xbd5, 0x398b: 0xbd6, 0x398c: 0xbd7, 0x398d: 0xbd8, 0x398e: 0xbd9, 0x398f: 0xbda, - 0x3990: 0xbdb, 0x3991: 0xbdc, 0x3992: 0xbdd, 0x3993: 0xbde, 0x3994: 0xbdf, 0x3995: 0xbe0, 0x3996: 0xbe1, 0x3997: 0xbe2, - 0x3998: 0xbe3, 0x3999: 0xbe4, 0x399a: 0xbe5, 0x399b: 0xbe6, 0x399c: 0xbe7, 0x399d: 0xbe8, 0x399e: 0xbe9, 0x399f: 0xbea, - 0x39a0: 0xbeb, 0x39a1: 0xbec, 0x39a2: 0xbed, 0x39a3: 0xbee, 0x39a4: 0xbef, 0x39a5: 0xbf0, 0x39a6: 0xbf1, 0x39a7: 0xbf2, - 0x39a8: 0xbf3, 0x39a9: 0xbf4, 0x39aa: 0xbf5, 0x39ab: 0xbf6, 0x39ac: 0xbf7, 0x39ad: 0xbf8, 0x39ae: 0xbf9, 0x39af: 0xbfa, - 0x39b0: 0xbfb, 0x39b1: 0xbfc, 0x39b2: 0xbfd, 0x39b3: 0xbfe, 0x39b4: 0xbff, 0x39b5: 0xc00, 0x39b6: 0xc01, 0x39b7: 0xc02, - 0x39b8: 0xc03, 0x39b9: 0xc04, 0x39ba: 0xc05, 0x39bb: 0xc06, 0x39bc: 0xc07, 0x39bd: 0xc08, 0x39be: 0xc09, 0x39bf: 0xc0a, - // Block 0xe7, offset 0x39c0 - 0x39c0: 0xc0b, 0x39c1: 0xc0c, 0x39c2: 0xc0d, 0x39c3: 0xc0e, 0x39c4: 0xc0f, 0x39c5: 0xc10, 0x39c6: 0xc11, 0x39c7: 0xc12, - 0x39c8: 0xc13, 0x39c9: 0xc14, 0x39ca: 0xc15, 0x39cb: 0xc16, 0x39cc: 0xc17, 0x39cd: 0xc18, 0x39ce: 0xc19, 0x39cf: 0xc1a, - 0x39d0: 0xc1b, 0x39d1: 0xc1c, 0x39d2: 0xc1d, 0x39d3: 0xc1e, 0x39d4: 0xc1f, 0x39d5: 0xc20, 0x39d6: 0xc21, 0x39d7: 0xc22, - 0x39d8: 0xc23, 0x39d9: 0xc24, 0x39da: 0xc25, 0x39db: 0xc26, 0x39dc: 0xc27, 0x39dd: 0xc28, 0x39de: 0xc29, 0x39df: 0xc2a, - 0x39e0: 0xc2b, 0x39e1: 0xc2c, 0x39e2: 0xc2d, 0x39e3: 0xc2e, 0x39e4: 0xc2f, 0x39e5: 0xc30, 0x39e6: 0xc31, 0x39e7: 0xc32, - 0x39e8: 0xc33, 0x39e9: 0xc34, 0x39ea: 0xc35, 0x39eb: 0xc36, 0x39ec: 0xc37, 0x39ed: 0xc38, 0x39ee: 0xc39, 0x39ef: 0xc3a, - 0x39f0: 0xc3b, 0x39f1: 0xc3c, 0x39f2: 0xc3d, 0x39f3: 0xc3e, 0x39f4: 0xc3f, 0x39f5: 0xc40, 0x39f6: 0xc41, 0x39f7: 0xc42, - 0x39f8: 0xc43, 0x39f9: 0xc44, 0x39fa: 0xc45, 0x39fb: 0xc46, 0x39fc: 0xc47, 0x39fd: 0xc48, 0x39fe: 0xc49, 0x39ff: 0xc4a, - // Block 0xe8, offset 0x3a00 - 0x3a24: 0xc4b, 0x3a25: 0xc4c, 0x3a26: 0xc4d, 0x3a27: 0xc4e, - 0x3a28: 0xc4f, 0x3a29: 0xc50, 0x3a2a: 0xc51, 0x3a2b: 0xc52, 0x3a2c: 0x103, 0x3a2d: 0x104, 0x3a2e: 0x105, 0x3a2f: 0x106, - 0x3a30: 0x107, 0x3a31: 0x108, 0x3a32: 0x109, 0x3a33: 0x10a, 0x3a34: 0x10b, 0x3a35: 0x10c, 0x3a36: 0x10d, 0x3a37: 0x10e, - 0x3a38: 0x10f, 0x3a39: 0x110, 0x3a3a: 0x111, 0x3a3b: 0x112, 0x3a3c: 0x113, 0x3a3d: 0x114, 0x3a3e: 0x115, 0x3a3f: 0x116, - // Block 0xe9, offset 0x3a40 - 0x3a40: 0x18b, 0x3a41: 0x18c, 0x3a42: 0x18d, 0x3a43: 0x18e, 0x3a44: 0x18f, 0x3a45: 0x190, 0x3a46: 0x191, 0x3a47: 0x192, - 0x3a48: 0xc53, 0x3a49: 0xc54, 0x3a4c: 0x195, 0x3a4d: 0x196, 0x3a4e: 0x197, 0x3a4f: 0x198, - 0x3a50: 0x199, 0x3a51: 0x19a, 0x3a52: 0x19b, 0x3a53: 0x19c, 0x3a54: 0x19d, 0x3a55: 0x19e, 0x3a57: 0x19f, - 0x3a58: 0x1a0, 0x3a59: 0x1a1, 0x3a5a: 0x1a2, 0x3a5b: 0x1a3, 0x3a5c: 0x1a4, 0x3a5d: 0x1a5, - // Block 0xea, offset 0x3a80 - 0x3a80: 0xc55, 0x3a81: 0xc56, 0x3a82: 0xc57, 0x3a83: 0xc58, 0x3a84: 0xc59, 0x3a85: 0xc5a, 0x3a86: 0xc5b, 0x3a87: 0xc5c, - 0x3a88: 0xc5d, 0x3a89: 0xc5e, 0x3a8a: 0xc5f, 0x3a8b: 0xc60, 0x3a8c: 0xc61, 0x3a8d: 0xc62, 0x3a8e: 0xc63, 0x3a8f: 0xc64, - 0x3a90: 0xc65, 0x3a91: 0xc66, 0x3a92: 0xc67, 0x3a93: 0xc68, 0x3a94: 0xc69, 0x3a95: 0xc6a, 0x3a96: 0xc6b, 0x3a97: 0xc6c, - 0x3a98: 0xc6d, 0x3a99: 0xc6e, 0x3a9a: 0xc6f, 0x3a9b: 0xc70, 0x3a9c: 0xc71, 0x3a9d: 0xc72, 0x3a9e: 0xc73, 0x3a9f: 0xc74, - 0x3aa0: 0xc75, 0x3aa1: 0xc76, 0x3aa2: 0xc77, 0x3aa3: 0xc78, 0x3aa4: 0xc79, 0x3aa5: 0xc7a, 0x3aa6: 0xc7b, 0x3aa7: 0xc7c, - 0x3aa8: 0xc7d, 0x3aa9: 0xc7e, 0x3aaa: 0xc7f, 0x3aab: 0xc80, 0x3aac: 0xc81, 0x3aad: 0xc82, 0x3aae: 0xc83, 0x3aaf: 0xc84, - 0x3ab0: 0xc85, 0x3ab1: 0xc86, 0x3ab2: 0xc87, 0x3ab3: 0xc88, 0x3ab4: 0xc89, 0x3ab5: 0xc8a, 0x3ab6: 0xc8b, 0x3ab7: 0xc8c, - 0x3ab8: 0xc8d, 0x3ab9: 0xc8e, 0x3aba: 0xc8f, 0x3abb: 0xc90, 0x3abc: 0xc91, 0x3abd: 0xc92, 0x3abe: 0xc93, 0x3abf: 0xc94, - // Block 0xeb, offset 0x3ac0 - 0x3ac0: 0xc95, 0x3ac1: 0xc96, 0x3ac2: 0xc97, 0x3ac3: 0xc98, 0x3ac4: 0xc99, 0x3ac5: 0xc9a, 0x3ac6: 0xc9b, 0x3ac7: 0xc9c, - 0x3ac8: 0xc9d, 0x3ac9: 0xc9e, 0x3aca: 0xc9f, 0x3acb: 0xca0, 0x3acc: 0xca1, 0x3acd: 0xca2, 0x3ace: 0xca3, 0x3acf: 0xca4, - 0x3ad0: 0xca5, 0x3ad1: 0xca6, 0x3ad2: 0xca7, 0x3ad3: 0xca8, 0x3ad4: 0xca9, 0x3ad5: 0xcaa, 0x3ad6: 0xcab, 0x3ad7: 0xcac, - 0x3ad8: 0xcad, 0x3ad9: 0xcae, 0x3ada: 0xcaf, 0x3adb: 0xcb0, 0x3adc: 0xcb1, 0x3add: 0xcb2, 0x3ade: 0xcb3, 0x3adf: 0xcb4, - 0x3ae0: 0xcb5, 0x3ae1: 0xcb6, 0x3ae2: 0xcb7, 0x3ae3: 0xcb8, 0x3ae4: 0xcb9, 0x3ae5: 0xcba, 0x3ae6: 0xcbb, 0x3ae7: 0xcbc, - 0x3ae8: 0xcbd, 0x3ae9: 0xcbe, 0x3aea: 0xcbf, 0x3aeb: 0xcc0, 0x3aec: 0xcc1, 0x3aed: 0xcc2, 0x3aee: 0xcc3, 0x3aef: 0xcc4, - 0x3af0: 0xcc5, 0x3af1: 0xcc6, 0x3af2: 0xcc7, 0x3af3: 0xcc8, 0x3af4: 0xcc9, 0x3af5: 0xcca, 0x3af6: 0xccb, 0x3af7: 0xccc, - 0x3af8: 0xccd, 0x3af9: 0xcce, 0x3afa: 0xccf, 0x3afb: 0xcd0, 0x3afc: 0xcd1, 0x3afd: 0xcd2, 0x3afe: 0xcd3, 0x3aff: 0xcd4, - // Block 0xec, offset 0x3b00 - 0x3b00: 0xcd5, 0x3b01: 0xcd6, 0x3b02: 0xcd7, 0x3b03: 0xcd8, 0x3b04: 0xcd9, 0x3b05: 0xcda, 0x3b06: 0xcdb, 0x3b07: 0xcdc, - 0x3b08: 0xcdd, 0x3b09: 0xcde, 0x3b0a: 0xcdf, 0x3b0b: 0xce0, 0x3b0c: 0xce1, 0x3b0d: 0xce2, 0x3b0e: 0xce3, 0x3b0f: 0xce4, - 0x3b10: 0xce5, 0x3b11: 0xce6, 0x3b12: 0xce7, 0x3b13: 0xce8, 0x3b14: 0xce9, 0x3b15: 0xcea, 0x3b16: 0xceb, 0x3b17: 0xcec, - 0x3b18: 0xced, 0x3b19: 0xcee, 0x3b1a: 0xcef, 0x3b1b: 0xcf0, 0x3b1c: 0xcf1, 0x3b1d: 0xcf2, 0x3b1e: 0xcf3, 0x3b1f: 0xcf4, - 0x3b20: 0xcf5, 0x3b21: 0xcf6, 0x3b22: 0xcf7, 0x3b23: 0xcf8, 0x3b24: 0xcf9, 0x3b25: 0xcfa, 0x3b26: 0xcfb, 0x3b27: 0xcfc, - 0x3b28: 0xcfd, 0x3b29: 0xcfe, 0x3b2a: 0xcff, 0x3b2b: 0xd00, 0x3b2c: 0xd01, 0x3b2d: 0xd02, 0x3b2e: 0xd03, 0x3b2f: 0xd04, - 0x3b30: 0xd05, 0x3b31: 0xd06, 0x3b32: 0xd07, 0x3b33: 0xd08, 0x3b34: 0xd09, 0x3b35: 0xd0a, 0x3b36: 0xd0b, 0x3b37: 0xd0c, - 0x3b38: 0xd0d, 0x3b39: 0xd0e, 0x3b3a: 0xd0f, 0x3b3b: 0xd10, 0x3b3c: 0xd11, 0x3b3d: 0xd12, 0x3b3e: 0xd13, 0x3b3f: 0xd14, - // Block 0xed, offset 0x3b40 - 0x3b40: 0xd15, 0x3b41: 0xd16, 0x3b42: 0xd17, 0x3b43: 0xd18, 0x3b44: 0xd19, 0x3b45: 0xd1a, 0x3b46: 0xd1b, 0x3b47: 0xd1c, - 0x3b48: 0xd1d, 0x3b49: 0xd1e, 0x3b4a: 0xd1f, 0x3b4b: 0xd20, 0x3b4c: 0xd21, 0x3b4d: 0xd22, 0x3b4e: 0xd23, 0x3b4f: 0xd24, - 0x3b50: 0xd25, 0x3b51: 0xd26, 0x3b52: 0xd27, 0x3b53: 0xd28, 0x3b54: 0xd29, 0x3b55: 0xd2a, 0x3b56: 0xd2b, 0x3b57: 0xd2c, - 0x3b58: 0xd2d, 0x3b59: 0xd2e, 0x3b5a: 0xd2f, 0x3b5b: 0xd30, 0x3b5c: 0xd31, 0x3b5d: 0xd32, 0x3b5e: 0xd33, 0x3b5f: 0xd34, - 0x3b60: 0xd35, 0x3b61: 0xd36, 0x3b62: 0xd37, 0x3b63: 0xd38, 0x3b64: 0xd39, 0x3b65: 0xd3a, 0x3b66: 0xd3b, 0x3b67: 0xd3c, - 0x3b68: 0xd3d, 0x3b69: 0xd3e, 0x3b6a: 0xd3f, 0x3b6b: 0xd40, 0x3b6c: 0xd41, 0x3b6d: 0xd42, 0x3b6e: 0xd43, 0x3b6f: 0xd44, - 0x3b70: 0xd45, 0x3b71: 0xd46, 0x3b72: 0xd47, 0x3b73: 0xd48, 0x3b74: 0xd49, 0x3b75: 0xd4a, 0x3b76: 0xd4b, 0x3b77: 0xd4c, - 0x3b78: 0xd4d, 0x3b79: 0xd4e, 0x3b7a: 0xd4f, 0x3b7b: 0xd50, 0x3b7c: 0xd51, 0x3b7d: 0xd52, 0x3b7e: 0xd53, 0x3b7f: 0xd54, - // Block 0xee, offset 0x3b80 - 0x3b80: 0xd55, 0x3b81: 0xd56, 0x3b82: 0xd57, 0x3b83: 0xd58, 0x3b84: 0xd59, 0x3b85: 0xd5a, 0x3b86: 0xd5b, 0x3b87: 0xd5c, - 0x3b88: 0xd5d, 0x3b89: 0xd5e, 0x3b8a: 0xd5f, 0x3b8b: 0xd60, 0x3b8c: 0xd61, 0x3b8d: 0xd62, 0x3b8e: 0xd63, 0x3b8f: 0xd64, - 0x3b90: 0xd65, 0x3b91: 0xd66, 0x3b92: 0xd67, 0x3b93: 0xd68, 0x3b94: 0xd69, 0x3b95: 0xd6a, 0x3b96: 0xd6b, 0x3b97: 0xd6c, - 0x3b98: 0xd6d, 0x3b99: 0xd6e, 0x3b9a: 0xd6f, 0x3b9b: 0xd70, 0x3b9c: 0xd71, 0x3b9d: 0xd72, 0x3b9e: 0xd73, 0x3b9f: 0xd74, - 0x3ba0: 0xd75, 0x3ba1: 0xd76, 0x3ba2: 0xd77, 0x3ba3: 0xd78, 0x3ba4: 0xd79, 0x3ba5: 0xd7a, 0x3ba6: 0xd7b, 0x3ba7: 0xd7c, - 0x3ba8: 0xd7d, 0x3ba9: 0xd7e, 0x3baa: 0xd7f, 0x3bab: 0xd80, 0x3bac: 0xd81, 0x3bad: 0xd82, 0x3bae: 0xd83, 0x3baf: 0xd84, - 0x3bb0: 0xd85, 0x3bb1: 0xd86, 0x3bb2: 0xd87, 0x3bb3: 0xd88, 0x3bb4: 0xd89, 0x3bb5: 0xd8a, 0x3bb6: 0xd8b, 0x3bb7: 0xd8c, - 0x3bb8: 0xd8d, 0x3bb9: 0xd8e, 0x3bba: 0xd8f, 0x3bbb: 0xd90, 0x3bbc: 0xd91, 0x3bbd: 0xd92, 0x3bbe: 0xd93, 0x3bbf: 0xd94, - // Block 0xef, offset 0x3bc0 - 0x3bc0: 0xd95, 0x3bc1: 0xd96, 0x3bc2: 0xd97, 0x3bc3: 0xd98, 0x3bc4: 0xd99, 0x3bc5: 0xd9a, 0x3bc6: 0xd9b, 0x3bc7: 0xd9c, - 0x3bc8: 0xd9d, 0x3bc9: 0xd9e, 0x3bca: 0xd9f, 0x3bcb: 0xda0, 0x3bcc: 0xda1, 0x3bcd: 0xda2, 0x3bce: 0xda3, 0x3bcf: 0xda4, - 0x3bd0: 0xda5, 0x3bd1: 0xda6, 0x3bd2: 0xda7, 0x3bd3: 0xda8, 0x3bd4: 0xda9, 0x3bd5: 0xdaa, 0x3bd6: 0xdab, 0x3bd7: 0xdac, - 0x3bd8: 0xdad, 0x3bd9: 0xdae, 0x3bda: 0xdaf, 0x3bdb: 0xdb0, 0x3bdc: 0xdb1, 0x3bdd: 0xdb2, 0x3bde: 0xdb3, 0x3bdf: 0xdb4, - 0x3be0: 0xdb5, 0x3be1: 0xdb6, 0x3be2: 0xdb7, 0x3be3: 0xdb8, 0x3be4: 0xdb9, 0x3be5: 0xdba, 0x3be6: 0xdbb, 0x3be7: 0xdbc, - 0x3be8: 0xdbd, 0x3be9: 0xdbe, 0x3bea: 0xdbf, 0x3beb: 0xdc0, 0x3bec: 0xdc1, 0x3bed: 0xdc2, 0x3bee: 0xdc3, 0x3bef: 0xdc4, - 0x3bf0: 0xdc5, 0x3bf1: 0xdc6, 0x3bf2: 0xdc7, 0x3bf3: 0xdc8, 0x3bf4: 0xdc9, 0x3bf5: 0xdca, 0x3bf6: 0xdcb, 0x3bf7: 0xdcc, - 0x3bf8: 0xdcd, 0x3bf9: 0xdce, 0x3bfa: 0xdcf, 0x3bfb: 0xdd0, 0x3bfc: 0xdd1, 0x3bfd: 0xdd2, 0x3bfe: 0xdd3, 0x3bff: 0xdd4, - // Block 0xf0, offset 0x3c00 - 0x3c00: 0xdd5, 0x3c01: 0xdd6, 0x3c02: 0xdd7, 0x3c03: 0xdd8, 0x3c04: 0xdd9, 0x3c05: 0xdda, 0x3c06: 0xddb, 0x3c07: 0xddc, - 0x3c08: 0xddd, 0x3c09: 0xdde, 0x3c0a: 0xddf, 0x3c0b: 0xde0, 0x3c0c: 0xde1, 0x3c0d: 0xde2, 0x3c0e: 0xde3, 0x3c0f: 0xde4, - 0x3c10: 0xde5, 0x3c11: 0xde6, 0x3c12: 0xde7, 0x3c13: 0xde8, 0x3c14: 0xde9, 0x3c15: 0xdea, 0x3c16: 0xdeb, 0x3c17: 0xdec, - 0x3c18: 0xded, 0x3c19: 0xdee, 0x3c1a: 0xdef, 0x3c1b: 0xdf0, 0x3c1c: 0xdf1, 0x3c1d: 0xdf2, 0x3c1e: 0xdf3, 0x3c1f: 0xdf4, - 0x3c20: 0xdf5, 0x3c21: 0xdf6, 0x3c22: 0xdf7, 0x3c23: 0xdf8, 0x3c24: 0xdf9, 0x3c25: 0xdfa, 0x3c26: 0xdfb, 0x3c27: 0xdfc, - 0x3c28: 0xdfd, 0x3c29: 0xdfe, 0x3c2a: 0xdff, 0x3c2b: 0xe00, 0x3c2c: 0xe01, 0x3c2d: 0xe02, 0x3c2e: 0xe03, 0x3c2f: 0xe04, - 0x3c30: 0xe05, 0x3c31: 0xe06, 0x3c32: 0xe07, 0x3c33: 0xe08, 0x3c34: 0xe09, 0x3c35: 0xe0a, 0x3c36: 0xe0b, 0x3c37: 0xe0c, - 0x3c38: 0xe0d, 0x3c39: 0xe0e, 0x3c3a: 0xe0f, 0x3c3b: 0xe10, 0x3c3c: 0xe11, 0x3c3d: 0xe12, 0x3c3e: 0xe13, 0x3c3f: 0xe14, - // Block 0xf1, offset 0x3c40 - 0x3c40: 0xe15, 0x3c41: 0xe16, 0x3c42: 0xe17, 0x3c43: 0xe18, 0x3c44: 0xe19, 0x3c45: 0xe1a, 0x3c46: 0xe1b, 0x3c47: 0xe1c, - 0x3c48: 0xe1d, 0x3c49: 0xe1e, 0x3c4a: 0xe1f, 0x3c4b: 0xe20, 0x3c4c: 0xe21, 0x3c4d: 0xe22, 0x3c4e: 0xe23, 0x3c4f: 0xe24, - 0x3c50: 0xe25, 0x3c51: 0xe26, 0x3c52: 0xe27, 0x3c53: 0xe28, 0x3c54: 0xe29, 0x3c55: 0xe2a, 0x3c56: 0xe2b, 0x3c57: 0xe2c, - 0x3c58: 0xe2d, 0x3c59: 0xe2e, 0x3c5a: 0xe2f, 0x3c5b: 0xe30, 0x3c5c: 0xe31, 0x3c5d: 0xe32, 0x3c5e: 0xe33, 0x3c5f: 0xe34, - 0x3c60: 0xe35, 0x3c61: 0xe36, 0x3c62: 0xe37, 0x3c63: 0xe38, 0x3c64: 0xe39, 0x3c65: 0xe3a, 0x3c66: 0xe3b, 0x3c67: 0xe3c, - 0x3c68: 0xe3d, 0x3c69: 0xe3e, 0x3c6a: 0xe3f, 0x3c6b: 0xe40, 0x3c6c: 0xe41, 0x3c6d: 0xe42, 0x3c6e: 0xe43, 0x3c6f: 0xe44, - 0x3c70: 0xe45, 0x3c71: 0xe46, 0x3c72: 0xe47, 0x3c73: 0xe48, 0x3c74: 0xe49, 0x3c75: 0xe4a, 0x3c76: 0xe4b, 0x3c77: 0xe4c, - 0x3c78: 0xe4d, 0x3c79: 0xe4e, 0x3c7a: 0xe4f, 0x3c7b: 0xe50, 0x3c7c: 0xe51, 0x3c7d: 0xe52, 0x3c7e: 0xe53, 0x3c7f: 0xe54, - // Block 0xf2, offset 0x3c80 - 0x3c80: 0xe55, 0x3c81: 0xe56, 0x3c82: 0xe57, 0x3c83: 0xe58, 0x3c84: 0xe59, 0x3c85: 0xe5a, 0x3c86: 0xe5b, 0x3c87: 0xe5c, - 0x3c88: 0xe5d, 0x3c89: 0xe5e, 0x3c8a: 0xe5f, 0x3c8b: 0xe60, 0x3c8c: 0xe61, 0x3c8d: 0xe62, 0x3c8e: 0xe63, 0x3c8f: 0xe64, - 0x3c90: 0xe65, 0x3c91: 0xe66, 0x3c92: 0xe67, 0x3c93: 0xe68, 0x3c94: 0xe69, 0x3c95: 0xe6a, 0x3c96: 0xe6b, 0x3c97: 0xe6c, - 0x3c98: 0xe6d, 0x3c99: 0xe6e, 0x3c9a: 0xe6f, 0x3c9b: 0xe70, 0x3c9c: 0xe71, 0x3c9d: 0xe72, 0x3c9e: 0xe73, 0x3c9f: 0xe74, - 0x3ca0: 0xe75, 0x3ca1: 0xe76, 0x3ca2: 0xe77, 0x3ca3: 0xe78, 0x3ca4: 0xe79, 0x3ca5: 0xe7a, 0x3ca6: 0xe7b, 0x3ca7: 0xe7c, - 0x3ca8: 0xe7d, 0x3ca9: 0xe7e, 0x3caa: 0xe7f, 0x3cab: 0xe80, 0x3cac: 0xe81, 0x3cad: 0xe82, 0x3cae: 0xe83, 0x3caf: 0xe84, - 0x3cb0: 0xe85, 0x3cb1: 0xe86, 0x3cb2: 0xe87, 0x3cb3: 0xe88, 0x3cb4: 0xe89, 0x3cb5: 0xe8a, 0x3cb6: 0xe8b, 0x3cb7: 0xe8c, - 0x3cb8: 0xe8d, 0x3cb9: 0xe8e, 0x3cba: 0xe8f, 0x3cbb: 0xe90, 0x3cbc: 0xe91, 0x3cbd: 0xe92, 0x3cbe: 0xe93, 0x3cbf: 0xe94, - // Block 0xf3, offset 0x3cc0 - 0x3cc0: 0xe95, 0x3cc1: 0xe96, 0x3cc2: 0xe97, 0x3cc3: 0xe98, 0x3cc4: 0xe99, 0x3cc5: 0xe9a, 0x3cc6: 0xe9b, 0x3cc7: 0xe9c, - 0x3cc8: 0xe9d, 0x3cc9: 0xe9e, 0x3cca: 0xe9f, 0x3ccb: 0xea0, 0x3ccc: 0xea1, 0x3ccd: 0xea2, 0x3cce: 0xea3, 0x3ccf: 0xea4, - 0x3cd0: 0xea5, 0x3cd1: 0xea6, 0x3cd2: 0xea7, 0x3cd3: 0xea8, 0x3cd4: 0xea9, 0x3cd5: 0xeaa, 0x3cd6: 0xeab, 0x3cd7: 0xeac, - 0x3cd8: 0xead, 0x3cd9: 0xeae, 0x3cda: 0xeaf, 0x3cdb: 0xeb0, 0x3cdc: 0xeb1, 0x3cdd: 0xeb2, 0x3cde: 0xeb3, 0x3cdf: 0xeb4, - 0x3ce0: 0xeb5, 0x3ce1: 0xeb6, 0x3ce2: 0xeb7, 0x3ce3: 0xeb8, 0x3ce4: 0xeb9, 0x3ce5: 0xeba, 0x3ce6: 0xebb, 0x3ce7: 0xebc, - 0x3ce8: 0xebd, 0x3ce9: 0xebe, 0x3cea: 0xebf, 0x3ceb: 0xec0, 0x3cec: 0xec1, 0x3ced: 0xec2, 0x3cee: 0xec3, 0x3cef: 0xec4, - 0x3cf0: 0xec5, 0x3cf1: 0xec6, 0x3cf2: 0xec7, 0x3cf3: 0xec8, 0x3cf4: 0xec9, 0x3cf5: 0xeca, 0x3cf6: 0xecb, 0x3cf7: 0xecc, - 0x3cf8: 0xecd, 0x3cf9: 0xece, 0x3cfa: 0xecf, 0x3cfb: 0xed0, 0x3cfc: 0xed1, 0x3cfd: 0xed2, 0x3cfe: 0xed3, 0x3cff: 0xed4, - // Block 0xf4, offset 0x3d00 - 0x3d00: 0xed5, 0x3d01: 0xed6, 0x3d02: 0xed7, 0x3d03: 0xed8, 0x3d04: 0xed9, 0x3d05: 0xeda, 0x3d06: 0xedb, 0x3d07: 0xedc, - 0x3d08: 0xedd, 0x3d09: 0xede, 0x3d0a: 0xedf, 0x3d0b: 0xee0, 0x3d0c: 0xee1, 0x3d0d: 0xee2, 0x3d0e: 0xee3, 0x3d0f: 0xee4, - 0x3d10: 0xee5, 0x3d11: 0xee6, 0x3d12: 0xee7, 0x3d13: 0xee8, 0x3d14: 0xee9, 0x3d15: 0xeea, 0x3d16: 0xeeb, 0x3d17: 0xeec, - 0x3d18: 0xeed, 0x3d19: 0xeee, 0x3d1a: 0xeef, 0x3d1b: 0xef0, 0x3d1c: 0xef1, 0x3d1d: 0xef2, 0x3d1e: 0xef3, 0x3d1f: 0xef4, - 0x3d20: 0xef5, 0x3d21: 0xef6, 0x3d22: 0xef7, 0x3d23: 0xef8, 0x3d24: 0xef9, 0x3d25: 0xefa, 0x3d26: 0xefb, 0x3d27: 0xefc, - 0x3d28: 0xefd, 0x3d29: 0xefe, 0x3d2a: 0xeff, 0x3d2b: 0xf00, 0x3d2c: 0xf01, 0x3d2d: 0xf02, 0x3d2e: 0xf03, 0x3d2f: 0xf04, - 0x3d30: 0xf05, 0x3d31: 0xf06, 0x3d32: 0xf07, 0x3d33: 0xf08, 0x3d34: 0xf09, 0x3d35: 0xf0a, 0x3d36: 0xf0b, 0x3d37: 0xf0c, - 0x3d38: 0xf0d, 0x3d39: 0xf0e, 0x3d3a: 0xf0f, 0x3d3b: 0xf10, 0x3d3c: 0xf11, 0x3d3d: 0xf12, 0x3d3e: 0xf13, 0x3d3f: 0xf14, - // Block 0xf5, offset 0x3d40 - 0x3d40: 0xf15, 0x3d41: 0xf16, 0x3d42: 0xf17, 0x3d43: 0xf18, 0x3d44: 0xf19, 0x3d45: 0xf1a, 0x3d46: 0xf1b, 0x3d47: 0xf1c, - 0x3d48: 0xf1d, 0x3d49: 0xf1e, 0x3d4a: 0xf1f, 0x3d4b: 0xf20, 0x3d4c: 0xf21, 0x3d4d: 0xf22, 0x3d4e: 0xf23, 0x3d4f: 0xf24, - 0x3d50: 0xf25, 0x3d51: 0xf26, 0x3d52: 0xf27, 0x3d53: 0xf28, 0x3d54: 0xf29, 0x3d55: 0xf2a, 0x3d56: 0xf2b, 0x3d57: 0xf2c, - 0x3d58: 0xf2d, 0x3d59: 0xf2e, 0x3d5a: 0xf2f, 0x3d5b: 0xf30, 0x3d5c: 0xf31, 0x3d5d: 0xf32, 0x3d5e: 0xf33, 0x3d5f: 0xf34, - 0x3d60: 0xf35, - // Block 0xf6, offset 0x3d80 - 0x3da0: 0xf36, 0x3da1: 0xf37, 0x3da2: 0xf38, 0x3da3: 0xf39, 0x3da4: 0xf3a, 0x3da5: 0xf3b, 0x3da6: 0xf3c, 0x3da7: 0xf3d, - 0x3da8: 0xf3e, - // Block 0xf7, offset 0x3dc0 - 0x3dd0: 0x09, 0x3dd1: 0x0a, 0x3dd2: 0x0b, 0x3dd3: 0x0c, 0x3dd6: 0x0d, - 0x3ddb: 0x0e, 0x3ddd: 0x0f, 0x3dde: 0x10, 0x3ddf: 0xe7, - 0x3de0: 0xe8, 0x3de1: 0xe9, 0x3de2: 0xea, 0x3de3: 0xeb, 0x3de4: 0xec, 0x3de5: 0xed, 0x3de6: 0xee, 0x3de7: 0xef, - 0x3de8: 0xf0, 0x3de9: 0xf1, 0x3dea: 0xf2, 0x3deb: 0xf3, 0x3def: 0xf4, - // Block 0xf8, offset 0x3e00 - 0x3e02: 0x01, 0x3e03: 0x600, 0x3e04: 0x601, 0x3e05: 0x602, 0x3e06: 0x05, 0x3e07: 0x603, - 0x3e08: 0x604, 0x3e09: 0x08, 0x3e0a: 0x09, 0x3e0b: 0x0a, 0x3e0c: 0x0b, 0x3e0d: 0x0c, 0x3e0e: 0x0d, 0x3e0f: 0x0e, - 0x3e10: 0x0f, 0x3e11: 0x10, 0x3e12: 0x11, 0x3e13: 0x12, 0x3e14: 0x13, 0x3e15: 0x14, 0x3e16: 0x15, 0x3e17: 0x16, - 0x3e18: 0x17, 0x3e19: 0x18, 0x3e1a: 0x19, 0x3e1b: 0x1a, 0x3e1c: 0x1b, 0x3e1d: 0x1c, 0x3e1e: 0x1d, 0x3e1f: 0x1e, - 0x3e20: 0x01, 0x3e21: 0xc4, 0x3e22: 0xde, 0x3e23: 0xdf, 0x3e24: 0xe0, 0x3e25: 0xe1, 0x3e26: 0xe2, 0x3e27: 0xe3, - 0x3e28: 0xe4, 0x3e29: 0xe5, 0x3e2a: 0x06, 0x3e2d: 0x07, 0x3e2f: 0xe6, - 0x3e30: 0xf5, 0x3e33: 0x15, -} - -// mainCTEntries: 2490 entries, 9960 bytes -var mainCTEntries = [2490]struct{ l, h, n, i uint8 }{ - {0xCE, 0x1, 1, 255}, - {0xC2, 0x0, 1, 255}, - {0xB7, 0xB7, 0, 1}, - {0x87, 0x87, 0, 2}, - {0xCC, 0x0, 2, 255}, - {0x88, 0x88, 0, 2}, - {0x86, 0x86, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x88, 0x88, 0, 1}, - {0xCD, 0x1, 1, 255}, - {0xCC, 0x0, 1, 255}, - {0x81, 0x81, 0, 1}, - {0x81, 0x81, 0, 2}, - {0xCC, 0x0, 1, 255}, - {0x86, 0x86, 0, 1}, - {0xCC, 0x0, 3, 255}, - {0x8B, 0x8B, 0, 3}, - {0x88, 0x88, 0, 2}, - {0x86, 0x86, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x8F, 0x8F, 0, 1}, - {0xD9, 0x0, 1, 255}, - {0x93, 0x95, 0, 1}, - {0xD9, 0x0, 1, 255}, - {0x94, 0x94, 0, 1}, - {0xE0, 0x0, 2, 255}, - {0xA7, 0x1, 1, 255}, - {0xA6, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0x97, 0x97, 0, 2}, - {0xE0, 0x0, 2, 255}, - {0xAD, 0x1, 1, 255}, - {0xAC, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0x96, 0x97, 0, 2}, - {0xE0, 0x0, 1, 255}, - {0xAF, 0x0, 1, 255}, - {0x97, 0x97, 0, 1}, - {0xE0, 0x0, 2, 255}, - {0xAF, 0x1, 1, 255}, - {0xAE, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0x97, 0x97, 0, 2}, - {0xE0, 0x0, 1, 255}, - {0xAE, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB1, 0x0, 1, 255}, - {0x96, 0x96, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB3, 0x0, 1, 255}, - {0x95, 0x95, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB3, 0x0, 2, 255}, - {0x95, 0x96, 0, 3}, - {0x82, 0x0, 1, 2}, - {0xE0, 0x0, 1, 255}, - {0xB3, 0x0, 1, 255}, - {0x95, 0x95, 0, 1}, - {0xE0, 0x0, 2, 255}, - {0xB5, 0x1, 1, 255}, - {0xB4, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0x97, 0x97, 0, 2}, - {0xE0, 0x0, 1, 255}, - {0xB4, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB7, 0x0, 3, 255}, - {0x9F, 0x9F, 0, 4}, - {0x8F, 0x0, 1, 3}, - {0x8A, 0x8A, 0, 2}, - {0xE0, 0x0, 1, 255}, - {0xB7, 0x0, 1, 255}, - {0x8A, 0x8A, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB7, 0x0, 1, 255}, - {0x8A, 0x8A, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB8, 0x0, 1, 255}, - {0x81, 0xAE, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB8, 0x0, 1, 255}, - {0xB2, 0xB2, 0, 1}, - {0xE0, 0x0, 2, 255}, - {0xBB, 0xC, 1, 255}, - {0xBA, 0x0, 12, 255}, - {0xAD, 0xAE, 0, 26}, - {0xAA, 0xAB, 0, 24}, - {0xA7, 0xA7, 0, 23}, - {0xA5, 0xA5, 0, 22}, - {0xA1, 0xA3, 0, 19}, - {0x99, 0x9F, 0, 12}, - {0x94, 0x97, 0, 8}, - {0x8D, 0x8D, 0, 7}, - {0x8A, 0x8A, 0, 6}, - {0x87, 0x88, 0, 4}, - {0x84, 0x84, 0, 3}, - {0x81, 0x82, 0, 1}, - {0x9C, 0x9F, 0, 28}, - {0xE0, 0x0, 1, 255}, - {0xBA, 0x0, 1, 255}, - {0xB2, 0xB2, 0, 1}, - {0xEA, 0x0, 1, 255}, - {0xAA, 0x0, 1, 255}, - {0x80, 0xAF, 0, 1}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0x7, 1, 255}, - {0xBD, 0x0, 1, 255}, - {0xB1, 0x0, 1, 255}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0x2, 1, 255}, - {0xBD, 0x0, 2, 255}, - {0xB4, 0xB4, 0, 2}, - {0xB2, 0xB2, 0, 1}, - {0x80, 0x80, 0, 3}, - {0x80, 0x81, 0, 4}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0x2, 1, 255}, - {0xBD, 0x0, 2, 255}, - {0xB4, 0xB4, 0, 2}, - {0xB2, 0xB2, 0, 1}, - {0x80, 0x80, 0, 3}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xAE, 0xAE, 0, 1}, - {0xF0, 0x0, 1, 255}, - {0x91, 0x0, 1, 255}, - {0x84, 0x0, 1, 255}, - {0xA7, 0xA7, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0xAC, 0x0, 1, 255}, - {0xB5, 0xB5, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xA7, 0x0, 1, 255}, - {0x8D, 0x0, 1, 255}, - {0xE2, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0x8D, 0x8D, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xA7, 0x0, 1, 255}, - {0x8D, 0x0, 1, 255}, - {0xE0, 0x0, 1, 255}, - {0xA6, 0x0, 1, 255}, - {0xB7, 0xB7, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0xA7, 0xA7, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x87, 0x87, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x68, 0x68, 0, 3}, - {0x48, 0x48, 0, 2}, - {0x8C, 0x8C, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x8C, 0x8C, 0, 1}, - {0x68, 0x68, 0, 1}, - {0x68, 0x68, 0, 2}, - {0x48, 0x48, 0, 1}, - {0x64, 0x64, 0, 1}, - {0x64, 0x64, 0, 2}, - {0x44, 0x44, 0, 1}, - {0x66, 0x66, 0, 1}, - {0x66, 0x66, 0, 2}, - {0x46, 0x46, 0, 1}, - {0x67, 0x67, 0, 1}, - {0x67, 0x67, 0, 2}, - {0x47, 0x47, 0, 1}, - {0xCE, 0x1, 1, 255}, - {0xC2, 0x0, 1, 255}, - {0x6C, 0x6C, 0, 3}, - {0xB7, 0xB7, 0, 1}, - {0x87, 0x87, 0, 2}, - {0xCE, 0x1, 1, 255}, - {0xC2, 0x0, 1, 255}, - {0x6C, 0x6C, 0, 4}, - {0x4C, 0x4C, 0, 3}, - {0xB7, 0xB7, 0, 1}, - {0x87, 0x87, 0, 2}, - {0xCC, 0x0, 2, 255}, - {0x8B, 0x8B, 0, 2}, - {0x88, 0x88, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x61, 0x61, 0, 3}, - {0x8A, 0x8A, 0, 2}, - {0x88, 0x88, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x61, 0x61, 0, 4}, - {0x41, 0x41, 0, 3}, - {0x8A, 0x8A, 0, 2}, - {0x88, 0x88, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0xA8, 0xA8, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xBE, 0x0, 1, 255}, - {0x90, 0x91, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 6, 255}, - {0x98, 0x42, 1, 255}, - {0x96, 0x31, 1, 255}, - {0x94, 0x1B, 1, 255}, - {0x84, 0x11, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x80, 0x80, 0, 73}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0xD, 1, 255}, - {0xBD, 0x0, 13, 255}, - {0xBC, 0xBC, 0, 20}, - {0xBA, 0xBA, 0, 19}, - {0xB4, 0xB4, 0, 18}, - {0xA6, 0xA6, 0, 17}, - {0xA2, 0xA3, 0, 15}, - {0xA0, 0xA0, 0, 14}, - {0x9D, 0x9D, 0, 13}, - {0x96, 0x96, 0, 12}, - {0x91, 0x91, 0, 11}, - {0x8C, 0x8C, 0, 10}, - {0x8A, 0x8A, 0, 9}, - {0x84, 0x84, 0, 8}, - {0x82, 0x82, 0, 7}, - {0xB1, 0xB2, 0, 21}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 8, 255}, - {0xBC, 0xBC, 0, 30}, - {0xB4, 0xB4, 0, 29}, - {0xA2, 0xA2, 0, 28}, - {0x93, 0x93, 0, 27}, - {0x8C, 0x8C, 0, 26}, - {0x8A, 0x8A, 0, 25}, - {0x84, 0x84, 0, 24}, - {0x82, 0x82, 0, 23}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0x12, 1, 255}, - {0xBD, 0x0, 11, 255}, - {0xBC, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 41}, - {0xB4, 0xB4, 0, 40}, - {0xA6, 0xA6, 0, 39}, - {0xA2, 0xA3, 0, 37}, - {0xA0, 0xA0, 0, 36}, - {0x91, 0x91, 0, 35}, - {0x8C, 0x8C, 0, 34}, - {0x8A, 0x8A, 0, 33}, - {0x84, 0x84, 0, 32}, - {0x82, 0x82, 0, 31}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 5, 255}, - {0xA2, 0xA2, 0, 5}, - {0x93, 0x93, 0, 4}, - {0x91, 0x91, 0, 3}, - {0x84, 0x84, 0, 2}, - {0x82, 0x82, 0, 1}, - {0xB1, 0xB2, 0, 42}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0xD, 1, 255}, - {0xBD, 0x0, 13, 255}, - {0xBC, 0xBC, 0, 57}, - {0xBA, 0xBA, 0, 56}, - {0xB4, 0xB4, 0, 55}, - {0xA6, 0xA6, 0, 54}, - {0xA2, 0xA3, 0, 52}, - {0xA0, 0xA0, 0, 51}, - {0x96, 0x96, 0, 50}, - {0x93, 0x93, 0, 49}, - {0x91, 0x91, 0, 48}, - {0x8C, 0x8C, 0, 47}, - {0x8A, 0x8A, 0, 46}, - {0x84, 0x84, 0, 45}, - {0x82, 0x82, 0, 44}, - {0xB1, 0xB2, 0, 58}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0x10, 1, 255}, - {0xBD, 0x0, 13, 255}, - {0xBC, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 71}, - {0xB4, 0xB4, 0, 70}, - {0xB2, 0xB2, 0, 69}, - {0xA6, 0xA6, 0, 68}, - {0xA2, 0xA2, 0, 67}, - {0xA0, 0xA0, 0, 66}, - {0x9D, 0x9D, 0, 65}, - {0x93, 0x93, 0, 64}, - {0x8C, 0x8C, 0, 63}, - {0x8A, 0x8A, 0, 62}, - {0x84, 0x84, 0, 61}, - {0x82, 0x82, 0, 60}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 1, 255}, - {0x91, 0x91, 0, 6}, - {0xB1, 0xB1, 0, 72}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 11, 255}, - {0xA6, 0x2E, 1, 255}, - {0xA4, 0xA4, 0, 72}, - {0xA3, 0x29, 1, 255}, - {0xA2, 0x1C, 1, 255}, - {0x9E, 0x9F, 0, 70}, - {0x99, 0x99, 0, 69}, - {0x91, 0xF, 1, 255}, - {0x8F, 0x8F, 0, 68}, - {0x85, 0x85, 0, 67}, - {0x82, 0x0, 1, 255}, - {0x80, 0x80, 0, 66}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0xB, 1, 255}, - {0xBD, 0x0, 11, 255}, - {0xBE, 0xBE, 0, 11}, - {0xBC, 0xBC, 0, 10}, - {0xBA, 0xBA, 0, 9}, - {0xA2, 0xA2, 0, 8}, - {0xA0, 0xA0, 0, 7}, - {0x9D, 0x9D, 0, 6}, - {0x98, 0x98, 0, 5}, - {0x91, 0x91, 0, 4}, - {0x8C, 0x8C, 0, 3}, - {0x8A, 0x8A, 0, 2}, - {0x82, 0x82, 0, 1}, - {0xB1, 0xB3, 0, 12}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 11, 255}, - {0xBE, 0xBE, 0, 26}, - {0xBC, 0xBC, 0, 25}, - {0xBA, 0xBA, 0, 24}, - {0xB4, 0xB4, 0, 23}, - {0xA6, 0xA6, 0, 22}, - {0xA2, 0xA3, 0, 20}, - {0xA0, 0xA0, 0, 19}, - {0x98, 0x98, 0, 18}, - {0x8C, 0x8C, 0, 17}, - {0x8A, 0x8A, 0, 16}, - {0x82, 0x82, 0, 15}, - {0xE0, 0x0, 1, 255}, - {0xBE, 0x0, 11, 255}, - {0xB3, 0xB3, 0, 37}, - {0xAB, 0xAB, 0, 36}, - {0xA9, 0xA9, 0, 35}, - {0xA3, 0xA3, 0, 34}, - {0xA1, 0xA1, 0, 33}, - {0x9F, 0x9F, 0, 32}, - {0x99, 0x99, 0, 31}, - {0x97, 0x97, 0, 30}, - {0x94, 0x94, 0, 29}, - {0x92, 0x92, 0, 28}, - {0x90, 0x90, 0, 27}, - {0xE0, 0x0, 1, 255}, - {0xBE, 0x0, 3, 255}, - {0xA1, 0xA1, 0, 40}, - {0x9F, 0x9F, 0, 39}, - {0x95, 0x95, 0, 38}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0xD, 10, 255}, - {0xBD, 0x0, 13, 255}, - {0xBE, 0xBE, 0, 54}, - {0xBC, 0xBC, 0, 53}, - {0xBA, 0xBA, 0, 52}, - {0xB4, 0xB4, 0, 51}, - {0xB2, 0xB2, 0, 50}, - {0xA2, 0xA3, 0, 48}, - {0x98, 0x98, 0, 47}, - {0x96, 0x96, 0, 46}, - {0x91, 0x91, 0, 45}, - {0x8C, 0x8C, 0, 44}, - {0x8A, 0x8A, 0, 43}, - {0x84, 0x84, 0, 42}, - {0x82, 0x82, 0, 41}, - {0xB2, 0xB3, 0, 64}, - {0xAD, 0xAD, 0, 63}, - {0xA9, 0xA9, 0, 62}, - {0xA3, 0xA3, 0, 61}, - {0xA1, 0xA1, 0, 60}, - {0x9F, 0x9F, 0, 59}, - {0x99, 0x99, 0, 58}, - {0x94, 0x94, 0, 57}, - {0x92, 0x92, 0, 56}, - {0x90, 0x90, 0, 55}, - {0xE0, 0x0, 1, 255}, - {0xBE, 0x0, 11, 255}, - {0xAB, 0xAB, 0, 12}, - {0xA8, 0xA9, 0, 10}, - {0xA6, 0xA6, 0, 9}, - {0xA3, 0xA3, 0, 8}, - {0xA1, 0xA1, 0, 7}, - {0x9F, 0x9F, 0, 6}, - {0x99, 0x99, 0, 5}, - {0x97, 0x97, 0, 4}, - {0x94, 0x94, 0, 3}, - {0x92, 0x92, 0, 2}, - {0x90, 0x90, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xBE, 0x0, 9, 255}, - {0xB7, 0xB7, 0, 10}, - {0xA6, 0xA6, 0, 9}, - {0xA4, 0xA4, 0, 8}, - {0xA1, 0xA1, 0, 7}, - {0x9F, 0x9F, 0, 6}, - {0x97, 0x97, 0, 5}, - {0x94, 0x95, 0, 3}, - {0x92, 0x92, 0, 2}, - {0x90, 0x90, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 9, 255}, - {0x9A, 0x9B, 0, 45}, - {0x93, 0x1D, 1, 255}, - {0x91, 0x11, 1, 255}, - {0x90, 0x90, 0, 44}, - {0x89, 0x89, 0, 43}, - {0x86, 0x87, 0, 41}, - {0x84, 0x8, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x81, 0x81, 0, 40}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0x4, 1, 255}, - {0xBD, 0x0, 4, 255}, - {0xBC, 0xBC, 0, 5}, - {0xBA, 0xBA, 0, 4}, - {0xB4, 0xB4, 0, 3}, - {0xA2, 0xA3, 0, 1}, - {0xB1, 0xB2, 0, 6}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 7, 255}, - {0xBC, 0xBC, 0, 15}, - {0xA2, 0xA3, 0, 13}, - {0xA0, 0xA0, 0, 12}, - {0x93, 0x93, 0, 11}, - {0x8C, 0x8C, 0, 10}, - {0x8A, 0x8A, 0, 9}, - {0x82, 0x82, 0, 8}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 10, 255}, - {0xBC, 0xBC, 0, 25}, - {0xBA, 0xBA, 0, 24}, - {0xB4, 0xB4, 0, 23}, - {0xA2, 0xA2, 0, 22}, - {0xA0, 0xA0, 0, 21}, - {0x93, 0x93, 0, 20}, - {0x8C, 0x8C, 0, 19}, - {0x8A, 0x8A, 0, 18}, - {0x84, 0x84, 0, 17}, - {0x82, 0x82, 0, 16}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 13, 255}, - {0xBE, 0xBE, 0, 39}, - {0xBC, 0xBC, 0, 38}, - {0xBA, 0xBA, 0, 37}, - {0xB4, 0xB4, 0, 36}, - {0xA2, 0xA3, 0, 34}, - {0xA0, 0xA0, 0, 33}, - {0x98, 0x98, 0, 32}, - {0x96, 0x96, 0, 31}, - {0x93, 0x93, 0, 30}, - {0x8C, 0x8C, 0, 29}, - {0x8A, 0x8A, 0, 28}, - {0x84, 0x84, 0, 27}, - {0x82, 0x82, 0, 26}, - {0xE0, 0x0, 1, 255}, - {0xBE, 0x0, 9, 255}, - {0xA8, 0xA9, 0, 10}, - {0xA6, 0xA6, 0, 9}, - {0xA3, 0xA4, 0, 7}, - {0xA1, 0xA1, 0, 6}, - {0x9F, 0x9F, 0, 5}, - {0x99, 0x99, 0, 4}, - {0x94, 0x94, 0, 3}, - {0x92, 0x92, 0, 2}, - {0x90, 0x90, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 8, 255}, - {0x9A, 0x9B, 0, 62}, - {0x96, 0x29, 1, 255}, - {0x95, 0x95, 0, 61}, - {0x91, 0x14, 1, 255}, - {0x90, 0x90, 0, 60}, - {0x86, 0x87, 0, 58}, - {0x82, 0x0, 1, 255}, - {0x81, 0x81, 0, 57}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0x10, 1, 255}, - {0xBD, 0x0, 16, 255}, - {0xBE, 0xBE, 0, 17}, - {0xBC, 0xBC, 0, 16}, - {0xBA, 0xBA, 0, 15}, - {0xB4, 0xB4, 0, 14}, - {0xB2, 0xB2, 0, 13}, - {0xA6, 0xA6, 0, 12}, - {0xA2, 0xA3, 0, 10}, - {0xA0, 0xA0, 0, 9}, - {0x98, 0x98, 0, 8}, - {0x96, 0x96, 0, 7}, - {0x93, 0x93, 0, 6}, - {0x91, 0x91, 0, 5}, - {0x8C, 0x8C, 0, 4}, - {0x8A, 0x8A, 0, 3}, - {0x84, 0x84, 0, 2}, - {0x82, 0x82, 0, 1}, - {0xB1, 0xB2, 0, 18}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0x11, 1, 255}, - {0xBD, 0x0, 17, 255}, - {0xBE, 0xBE, 0, 37}, - {0xBC, 0xBC, 0, 36}, - {0xBA, 0xBA, 0, 35}, - {0xB4, 0xB4, 0, 34}, - {0xB2, 0xB2, 0, 33}, - {0xA6, 0xA6, 0, 32}, - {0xA2, 0xA3, 0, 30}, - {0xA0, 0xA0, 0, 29}, - {0x9D, 0x9D, 0, 28}, - {0x98, 0x98, 0, 27}, - {0x96, 0x96, 0, 26}, - {0x93, 0x93, 0, 25}, - {0x91, 0x91, 0, 24}, - {0x8C, 0x8C, 0, 23}, - {0x8A, 0x8A, 0, 22}, - {0x84, 0x84, 0, 21}, - {0x82, 0x82, 0, 20}, - {0xB2, 0xB2, 0, 38}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0xF, 1, 255}, - {0xBD, 0x0, 15, 255}, - {0xBE, 0xBE, 0, 54}, - {0xBC, 0xBC, 0, 53}, - {0xBA, 0xBA, 0, 52}, - {0xB4, 0xB4, 0, 51}, - {0xB2, 0xB2, 0, 50}, - {0xA2, 0xA3, 0, 48}, - {0xA0, 0xA0, 0, 47}, - {0x98, 0x98, 0, 46}, - {0x96, 0x96, 0, 45}, - {0x93, 0x93, 0, 44}, - {0x91, 0x91, 0, 43}, - {0x8C, 0x8C, 0, 42}, - {0x8A, 0x8A, 0, 41}, - {0x84, 0x84, 0, 40}, - {0x82, 0x82, 0, 39}, - {0xB1, 0xB2, 0, 55}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 10, 255}, - {0xA6, 0x20, 1, 255}, - {0xA4, 0xA4, 0, 52}, - {0xA1, 0xA1, 0, 51}, - {0x9E, 0x9F, 0, 49}, - {0x99, 0x99, 0, 48}, - {0x93, 0x11, 1, 255}, - {0x91, 0x0, 1, 255}, - {0x8F, 0x8F, 0, 47}, - {0x89, 0x89, 0, 46}, - {0x85, 0x85, 0, 45}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 15, 255}, - {0xBE, 0xBE, 0, 16}, - {0xBC, 0xBC, 0, 15}, - {0xBA, 0xBA, 0, 14}, - {0xB4, 0xB4, 0, 13}, - {0xB2, 0xB2, 0, 12}, - {0xA6, 0xA6, 0, 11}, - {0xA2, 0xA3, 0, 9}, - {0xA0, 0xA0, 0, 8}, - {0x98, 0x98, 0, 7}, - {0x96, 0x96, 0, 6}, - {0x93, 0x93, 0, 5}, - {0x8C, 0x8C, 0, 4}, - {0x8A, 0x8A, 0, 3}, - {0x84, 0x84, 0, 2}, - {0x82, 0x82, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 13, 255}, - {0xBE, 0xBE, 0, 29}, - {0xBC, 0xBC, 0, 28}, - {0xB4, 0xB4, 0, 27}, - {0xA6, 0xA6, 0, 26}, - {0xA0, 0xA0, 0, 25}, - {0x9D, 0x9D, 0, 24}, - {0x98, 0x98, 0, 23}, - {0x93, 0x93, 0, 22}, - {0x91, 0x91, 0, 21}, - {0x8C, 0x8C, 0, 20}, - {0x8A, 0x8A, 0, 19}, - {0x84, 0x84, 0, 18}, - {0x82, 0x82, 0, 17}, - {0xE0, 0x0, 1, 255}, - {0xBD, 0x0, 14, 255}, - {0xBC, 0xBC, 0, 44}, - {0xBA, 0xBA, 0, 43}, - {0xB4, 0xB4, 0, 42}, - {0xB2, 0xB2, 0, 41}, - {0xA6, 0xA6, 0, 40}, - {0xA2, 0xA3, 0, 38}, - {0xA0, 0xA0, 0, 37}, - {0x96, 0x96, 0, 36}, - {0x93, 0x93, 0, 35}, - {0x91, 0x91, 0, 34}, - {0x8C, 0x8C, 0, 33}, - {0x8A, 0x8A, 0, 32}, - {0x84, 0x84, 0, 31}, - {0x82, 0x82, 0, 30}, - {0xE0, 0x0, 1, 255}, - {0xBE, 0x0, 1, 255}, - {0x99, 0x99, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xBE, 0x0, 1, 255}, - {0xA4, 0xA5, 0, 1}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0x9, 1, 255}, - {0xBD, 0x0, 3, 255}, - {0xB5, 0xB5, 0, 6}, - {0xB3, 0xB3, 0, 5}, - {0xB1, 0x0, 1, 4}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0x2, 1, 255}, - {0xBD, 0x0, 2, 255}, - {0xB4, 0xB4, 0, 2}, - {0xB2, 0xB2, 0, 1}, - {0x80, 0x80, 0, 3}, - {0x80, 0x81, 0, 7}, - {0x7A, 0x7A, 0, 1}, - {0x7A, 0x7A, 0, 2}, - {0x5A, 0x5A, 0, 1}, - {0x62, 0x62, 0, 1}, - {0x62, 0x62, 0, 2}, - {0x42, 0x42, 0, 1}, - {0x70, 0x70, 0, 1}, - {0x70, 0x70, 0, 2}, - {0x50, 0x50, 0, 1}, - {0x79, 0x79, 0, 1}, - {0x79, 0x79, 0, 2}, - {0x59, 0x59, 0, 1}, - {0x73, 0x73, 0, 1}, - {0x73, 0x73, 0, 2}, - {0x53, 0x53, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x82, 0x82, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x83, 0x83, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x88, 0x88, 0, 2}, - {0x83, 0x83, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x8A, 0x8A, 0, 2}, - {0x88, 0x88, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x67, 0x67, 0, 2}, - {0x83, 0x83, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x67, 0x67, 0, 3}, - {0x47, 0x47, 0, 2}, - {0x83, 0x83, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x8C, 0x8C, 0, 2}, - {0x81, 0x81, 0, 1}, - {0xC5, 0x2, 1, 255}, - {0x7A, 0x0, 1, 255}, - {0xCC, 0x0, 1, 255}, - {0x8C, 0x8C, 0, 1}, - {0xBE, 0xBE, 0, 2}, - {0xC5, 0x4, 1, 255}, - {0x7A, 0x2, 1, 255}, - {0x5A, 0x0, 1, 255}, - {0xCC, 0x0, 1, 255}, - {0x8C, 0x8C, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x8C, 0x8C, 0, 2}, - {0xBD, 0xBE, 0, 3}, - {0xCE, 0x1, 1, 255}, - {0xC2, 0x0, 1, 255}, - {0x6A, 0x6A, 0, 3}, - {0xB7, 0xB7, 0, 1}, - {0x87, 0x87, 0, 2}, - {0xCE, 0x1, 1, 255}, - {0xC2, 0x0, 1, 255}, - {0x6A, 0x6A, 0, 4}, - {0x4A, 0x4A, 0, 3}, - {0xB7, 0xB7, 0, 1}, - {0x87, 0x87, 0, 2}, - {0x6A, 0x6A, 0, 1}, - {0x6A, 0x6A, 0, 2}, - {0x4A, 0x4A, 0, 1}, - {0x73, 0x73, 0, 2}, - {0x63, 0x0, 1, 255}, - {0x73, 0x73, 0, 1}, - {0x73, 0x73, 0, 4}, - {0x63, 0x1, 1, 255}, - {0x53, 0x53, 0, 3}, - {0x43, 0x0, 1, 255}, - {0x53, 0x53, 0, 1}, - {0x73, 0x73, 0, 2}, - {0x7A, 0x2, 1, 4}, - {0x64, 0x0, 1, 255}, - {0x7A, 0x0, 1, 2}, - {0x73, 0x73, 0, 1}, - {0x73, 0x73, 0, 3}, - {0x7A, 0x5, 1, 8}, - {0x64, 0x3, 1, 255}, - {0x5A, 0x2, 1, 7}, - {0x44, 0x0, 1, 255}, - {0x5A, 0x0, 1, 3}, - {0x53, 0x53, 0, 1}, - {0x53, 0x53, 0, 4}, - {0x7A, 0x0, 1, 5}, - {0x73, 0x73, 0, 2}, - {0x73, 0x73, 0, 6}, - {0x79, 0x79, 0, 2}, - {0x67, 0x0, 1, 255}, - {0x79, 0x79, 0, 1}, - {0x79, 0x79, 0, 4}, - {0x67, 0x1, 1, 255}, - {0x59, 0x59, 0, 3}, - {0x47, 0x0, 1, 255}, - {0x59, 0x59, 0, 1}, - {0x79, 0x79, 0, 2}, - {0xCE, 0x2, 1, 255}, - {0xC2, 0x1, 1, 255}, - {0x79, 0x79, 0, 4}, - {0x6C, 0x0, 1, 255}, - {0x79, 0x79, 0, 1}, - {0xB7, 0xB7, 0, 2}, - {0x87, 0x87, 0, 3}, - {0xCE, 0x3, 1, 255}, - {0xC2, 0x2, 1, 255}, - {0x79, 0x79, 0, 6}, - {0x6C, 0x1, 1, 255}, - {0x59, 0x59, 0, 5}, - {0x4C, 0x0, 1, 255}, - {0x59, 0x59, 0, 1}, - {0x79, 0x79, 0, 2}, - {0xB7, 0xB7, 0, 3}, - {0x87, 0x87, 0, 4}, - {0x79, 0x79, 0, 2}, - {0x6E, 0x0, 1, 255}, - {0x79, 0x79, 0, 1}, - {0x79, 0x79, 0, 4}, - {0x6E, 0x1, 1, 255}, - {0x59, 0x59, 0, 3}, - {0x4E, 0x0, 1, 255}, - {0x59, 0x59, 0, 1}, - {0x79, 0x79, 0, 2}, - {0x7A, 0x7A, 0, 2}, - {0x73, 0x0, 1, 255}, - {0x7A, 0x7A, 0, 1}, - {0x7A, 0x7A, 0, 4}, - {0x73, 0x1, 1, 255}, - {0x5A, 0x5A, 0, 3}, - {0x53, 0x0, 1, 255}, - {0x5A, 0x5A, 0, 1}, - {0x7A, 0x7A, 0, 2}, - {0x79, 0x79, 0, 2}, - {0x74, 0x0, 1, 255}, - {0x79, 0x79, 0, 1}, - {0x79, 0x79, 0, 4}, - {0x74, 0x1, 1, 255}, - {0x59, 0x59, 0, 3}, - {0x54, 0x0, 1, 255}, - {0x59, 0x59, 0, 1}, - {0x79, 0x79, 0, 2}, - {0x7A, 0x0, 1, 255}, - {0x73, 0x73, 0, 2}, - {0x73, 0x73, 0, 1}, - {0x7A, 0x1, 1, 255}, - {0x73, 0x73, 0, 4}, - {0x5A, 0x0, 1, 255}, - {0x53, 0x53, 0, 3}, - {0x53, 0x53, 0, 1}, - {0x73, 0x73, 0, 2}, - {0xD6, 0x0, 1, 255}, - {0x82, 0x82, 0, 1}, - {0x77, 0x77, 0, 3}, - {0x68, 0x68, 0, 2}, - {0x62, 0x62, 0, 1}, - {0x77, 0x77, 0, 6}, - {0x68, 0x68, 0, 5}, - {0x62, 0x62, 0, 4}, - {0x57, 0x57, 0, 3}, - {0x48, 0x48, 0, 2}, - {0x42, 0x42, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0xA3, 0xA3, 0, 1}, - {0x77, 0x77, 0, 2}, - {0x70, 0x70, 0, 1}, - {0x77, 0x77, 0, 4}, - {0x70, 0x70, 0, 3}, - {0x57, 0x57, 0, 2}, - {0x50, 0x50, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x79, 0x79, 0, 3}, - {0x77, 0x77, 0, 2}, - {0x87, 0x87, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x79, 0x79, 0, 5}, - {0x77, 0x77, 0, 4}, - {0x59, 0x59, 0, 3}, - {0x57, 0x57, 0, 2}, - {0x87, 0x87, 0, 1}, - {0xCC, 0x0, 3, 255}, - {0x8A, 0x8A, 0, 3}, - {0x88, 0x88, 0, 2}, - {0x81, 0x81, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x81, 0x81, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x88, 0x88, 0, 2}, - {0x81, 0x81, 0, 1}, - {0xE3, 0x0, 2, 255}, - {0x83, 0x1, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x9D, 0x9D, 0, 1}, - {0xBC, 0xBC, 0, 2}, - {0xE3, 0x0, 1, 255}, - {0x83, 0x0, 1, 255}, - {0xBC, 0xBD, 0, 1}, - {0xE3, 0x0, 2, 255}, - {0x83, 0x7, 1, 255}, - {0x82, 0x0, 2, 255}, - {0x9D, 0x9D, 0, 3}, - {0x99, 0x0, 1, 255}, - {0xE3, 0x0, 2, 255}, - {0x83, 0x1, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x9D, 0x9D, 0, 1}, - {0xBC, 0xBC, 0, 2}, - {0xBC, 0xBC, 0, 4}, - {0xE3, 0x0, 2, 255}, - {0x83, 0x4, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x0, 1, 255}, - {0xE3, 0x0, 1, 255}, - {0x83, 0x0, 1, 255}, - {0xBC, 0xBD, 0, 1}, - {0xBC, 0xBD, 0, 3}, - {0xE3, 0x0, 2, 255}, - {0x83, 0xE, 1, 255}, - {0x82, 0x0, 3, 255}, - {0x9E, 0x9E, 0, 6}, - {0x9D, 0x8, 1, 5}, - {0x99, 0x0, 1, 255}, - {0xE3, 0x0, 2, 255}, - {0x83, 0x4, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x9D, 0x0, 1, 2}, - {0xE3, 0x0, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x99, 0, 1}, - {0xBC, 0xBC, 0, 3}, - {0xE3, 0x0, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x99, 0, 4}, - {0xBC, 0xBC, 0, 7}, - {0xE3, 0x0, 2, 255}, - {0x83, 0x8, 2, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x0, 1, 255}, - {0xE3, 0x0, 1, 255}, - {0x83, 0x0, 2, 255}, - {0xBD, 0x0, 1, 3}, - {0xBC, 0xBD, 0, 2}, - {0xE3, 0x0, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x99, 0, 1}, - {0xBD, 0x0, 1, 6}, - {0xBC, 0xBE, 0, 5}, - {0xE3, 0x0, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x99, 0, 4}, - {0xE3, 0x0, 1, 255}, - {0x83, 0x0, 2, 255}, - {0xBD, 0x0, 1, 3}, - {0xBC, 0xBE, 0, 2}, - {0xE3, 0x0, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x99, 0, 1}, - {0xE3, 0x0, 2, 255}, - {0x83, 0x1, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x9D, 0x9E, 0, 1}, - {0xBC, 0xBC, 0, 3}, - {0xE3, 0x0, 1, 255}, - {0x83, 0x0, 1, 255}, - {0xBC, 0xBE, 0, 1}, - {0xE3, 0x0, 2, 255}, - {0x83, 0x17, 1, 255}, - {0x82, 0x0, 4, 255}, - {0x9E, 0x9E, 0, 9}, - {0x9D, 0x10, 1, 8}, - {0x9A, 0x8, 1, 255}, - {0x99, 0x0, 1, 255}, - {0xE3, 0x0, 2, 255}, - {0x83, 0x4, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x9D, 0x0, 1, 3}, - {0xE3, 0x0, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x99, 0, 1}, - {0xBC, 0xBC, 0, 4}, - {0xE3, 0x0, 2, 255}, - {0x83, 0x4, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x9D, 0x0, 1, 5}, - {0xE3, 0x0, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x99, 0, 2}, - {0xBC, 0xBC, 0, 6}, - {0xE3, 0x0, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x99, 0, 7}, - {0xBC, 0xBC, 0, 10}, - {0xE3, 0x0, 2, 255}, - {0x83, 0x10, 2, 255}, - {0x82, 0x0, 2, 255}, - {0x9A, 0x7, 1, 255}, - {0x99, 0x0, 1, 255}, - {0xE3, 0x0, 1, 255}, - {0x83, 0x0, 2, 255}, - {0xBD, 0x0, 1, 4}, - {0xBC, 0xBD, 0, 3}, - {0xE3, 0x0, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x99, 0, 1}, - {0xE3, 0x0, 1, 255}, - {0x83, 0x0, 2, 255}, - {0xBD, 0x0, 1, 6}, - {0xBC, 0xBD, 0, 5}, - {0xE3, 0x0, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x99, 0, 2}, - {0xBD, 0x0, 1, 9}, - {0xBC, 0xBE, 0, 8}, - {0xE3, 0x0, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x99, 0, 7}, - {0xE3, 0x0, 2, 255}, - {0x83, 0x5, 1, 255}, - {0x82, 0x0, 2, 255}, - {0x9E, 0x9E, 0, 3}, - {0x9D, 0x0, 1, 2}, - {0xE3, 0x0, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x99, 0x99, 0, 1}, - {0xBC, 0xBC, 0, 4}, - {0xE3, 0x0, 1, 255}, - {0x82, 0x0, 1, 255}, - {0x9D, 0x9D, 0, 1}, - {0xE3, 0x0, 1, 255}, - {0x83, 0x0, 1, 255}, - {0xBD, 0xBD, 0, 1}, - {0x27, 0x27, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x9F, 0x0, 1, 255}, - {0x8C, 0x8C, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x9F, 0x0, 1, 255}, - {0x86, 0x87, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x9F, 0x0, 1, 255}, - {0x86, 0x86, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x9F, 0x0, 1, 255}, - {0x87, 0x87, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xA5, 0x0, 1, 255}, - {0x8D, 0x0, 1, 255}, - {0xE0, 0x0, 1, 255}, - {0xA4, 0x0, 1, 255}, - {0xB7, 0xB7, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x83, 0x83, 0, 3}, - {0x80, 0x81, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0xA8, 0xA8, 0, 2}, - {0x87, 0x87, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0xA8, 0xA8, 0, 2}, - {0x84, 0x84, 0, 1}, - {0xCE, 0x2, 1, 255}, - {0xCC, 0x1, 1, 255}, - {0xC2, 0x0, 1, 255}, - {0xB7, 0xB7, 0, 1}, - {0xA7, 0xA7, 0, 2}, - {0x87, 0x87, 0, 3}, - {0xE0, 0x0, 1, 255}, - {0xB5, 0x0, 1, 255}, - {0x8D, 0x0, 1, 255}, - {0xE2, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0x8D, 0x8D, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB5, 0x0, 1, 255}, - {0x8D, 0x0, 1, 255}, - {0xE2, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0x8D, 0x0, 1, 255}, - {0x20, 0x20, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB5, 0x0, 1, 255}, - {0x8D, 0x8D, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xA5, 0x0, 1, 255}, - {0x8D, 0x0, 1, 255}, - {0xE0, 0x0, 1, 255}, - {0xA4, 0x0, 1, 255}, - {0x9E, 0x9E, 0, 1}, - {0xCC, 0x1, 1, 255}, - {0xC4, 0x0, 1, 255}, - {0xA6, 0xA7, 0, 1}, - {0x87, 0x87, 0, 3}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 2, 255}, - {0xBA, 0xBA, 0, 3}, - {0xB9, 0x0, 1, 2}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0x99, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0x84, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB8, 0xB8, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 2, 255}, - {0xBA, 0x0, 1, 3}, - {0xB9, 0xBA, 0, 2}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xAF, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0x95, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 3, 255}, - {0xBA, 0xBA, 0, 4}, - {0xB9, 0x9, 1, 3}, - {0x80, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBB, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xAC, 0xAC, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0x98, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 2}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0x84, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB8, 0xB8, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 2, 255}, - {0xBA, 0xBA, 0, 3}, - {0xB9, 0x0, 1, 2}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0x99, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xAE, 0xAE, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 2, 255}, - {0xAF, 0x0, 1, 255}, - {0xAE, 0xAE, 0, 2}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB6, 0xB6, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 31, 255}, - {0xB1, 0x5A, 1, 255}, - {0x9F, 0x57, 1, 255}, - {0x9E, 0x54, 1, 255}, - {0x9C, 0x51, 1, 255}, - {0x9B, 0x4E, 1, 255}, - {0x9A, 0x4B, 1, 255}, - {0x99, 0x48, 1, 255}, - {0x98, 0x45, 1, 255}, - {0x97, 0x42, 1, 255}, - {0x96, 0x3F, 1, 255}, - {0x95, 0x3C, 1, 255}, - {0x94, 0x39, 1, 255}, - {0x93, 0x36, 1, 255}, - {0x92, 0x33, 1, 255}, - {0x91, 0x30, 1, 255}, - {0x90, 0x2D, 1, 255}, - {0x8F, 0x2A, 1, 255}, - {0x8E, 0x27, 1, 255}, - {0x8D, 0x24, 1, 255}, - {0x8C, 0x21, 1, 255}, - {0x8B, 0x1E, 1, 255}, - {0x8A, 0x1B, 1, 255}, - {0x89, 0x18, 1, 255}, - {0x87, 0x15, 1, 255}, - {0x86, 0x12, 1, 255}, - {0x85, 0xF, 1, 255}, - {0x84, 0xC, 1, 255}, - {0x83, 0x9, 1, 255}, - {0x82, 0x6, 1, 255}, - {0x81, 0x3, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 61}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 63}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 65}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 67}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 69}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 71}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 73}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 75}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 77}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 79}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 81}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 83}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 85}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 87}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 89}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 91}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 93}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 95}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 97}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 99}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 101}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 103}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 105}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 107}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 109}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 111}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 113}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 115}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 117}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 119}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xAC, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 30, 255}, - {0x9F, 0x57, 1, 255}, - {0x9E, 0x54, 1, 255}, - {0x9C, 0x51, 1, 255}, - {0x9B, 0x4E, 1, 255}, - {0x9A, 0x4B, 1, 255}, - {0x99, 0x48, 1, 255}, - {0x98, 0x45, 1, 255}, - {0x97, 0x42, 1, 255}, - {0x96, 0x3F, 1, 255}, - {0x95, 0x3C, 1, 255}, - {0x94, 0x39, 1, 255}, - {0x93, 0x36, 1, 255}, - {0x92, 0x33, 1, 255}, - {0x91, 0x30, 1, 255}, - {0x90, 0x2D, 1, 255}, - {0x8F, 0x2A, 1, 255}, - {0x8E, 0x27, 1, 255}, - {0x8D, 0x24, 1, 255}, - {0x8C, 0x21, 1, 255}, - {0x8B, 0x1E, 1, 255}, - {0x8A, 0x1B, 1, 255}, - {0x89, 0x18, 1, 255}, - {0x87, 0x15, 1, 255}, - {0x86, 0x12, 1, 255}, - {0x85, 0xF, 1, 255}, - {0x84, 0xC, 1, 255}, - {0x83, 0x9, 1, 255}, - {0x82, 0x6, 1, 255}, - {0x81, 0x3, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 3}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 5}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 7}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 9}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 11}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 13}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 15}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 17}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 19}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 21}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 23}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 25}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 27}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 29}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 31}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 33}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 35}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 37}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 39}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 41}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 43}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 45}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 47}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 49}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 51}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 53}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 55}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 57}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 59}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 36, 255}, - {0xAC, 0xF7, 1, 197}, - {0xAB, 0x69, 1, 196}, - {0xA1, 0x66, 1, 255}, - {0xA0, 0x63, 1, 255}, - {0x9F, 0x60, 1, 255}, - {0x9E, 0x5D, 1, 255}, - {0x9D, 0x5A, 1, 255}, - {0x9C, 0x57, 1, 255}, - {0x9B, 0x54, 1, 255}, - {0x9A, 0x51, 1, 255}, - {0x99, 0x4E, 1, 255}, - {0x98, 0x4B, 1, 255}, - {0x97, 0x48, 1, 255}, - {0x96, 0x45, 1, 255}, - {0x95, 0x42, 1, 255}, - {0x94, 0x3F, 1, 255}, - {0x93, 0x3C, 1, 255}, - {0x92, 0x39, 1, 255}, - {0x91, 0x36, 1, 255}, - {0x90, 0x33, 1, 255}, - {0x8F, 0x30, 1, 255}, - {0x8E, 0x2D, 1, 255}, - {0x8D, 0x2A, 1, 255}, - {0x8C, 0x27, 1, 255}, - {0x8B, 0x24, 1, 255}, - {0x8A, 0x21, 1, 255}, - {0x89, 0x1E, 1, 255}, - {0x88, 0x1B, 1, 255}, - {0x87, 0x18, 1, 255}, - {0x86, 0x15, 1, 255}, - {0x85, 0x12, 1, 255}, - {0x84, 0xC, 1, 255}, - {0x83, 0x9, 1, 255}, - {0x82, 0x6, 1, 255}, - {0x81, 0x3, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 131}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 133}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 135}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 137}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0x0, 1, 139}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xB9, 0, 4}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 140}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 142}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 144}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 146}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 147}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 149}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 151}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 153}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 155}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 157}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 159}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 161}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 163}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 165}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 167}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 169}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 171}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 173}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 175}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 177}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 179}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 181}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 183}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 185}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 187}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 188}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 190}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 192}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 193}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 35, 255}, - {0xBA, 0xBA, 0, 194}, - {0xA1, 0x66, 1, 255}, - {0xA0, 0x63, 1, 255}, - {0x9F, 0x60, 1, 255}, - {0x9E, 0x5D, 1, 255}, - {0x9D, 0x5A, 1, 255}, - {0x9C, 0x57, 1, 255}, - {0x9B, 0x54, 1, 255}, - {0x9A, 0x51, 1, 255}, - {0x99, 0x4E, 1, 255}, - {0x98, 0x4B, 1, 255}, - {0x97, 0x48, 1, 255}, - {0x96, 0x45, 1, 255}, - {0x95, 0x42, 1, 255}, - {0x94, 0x3F, 1, 255}, - {0x93, 0x3C, 1, 255}, - {0x92, 0x39, 1, 255}, - {0x91, 0x36, 1, 255}, - {0x90, 0x33, 1, 255}, - {0x8F, 0x30, 1, 255}, - {0x8E, 0x2D, 1, 255}, - {0x8D, 0x2A, 1, 255}, - {0x8C, 0x27, 1, 255}, - {0x8B, 0x24, 1, 255}, - {0x8A, 0x21, 1, 255}, - {0x89, 0x1E, 1, 255}, - {0x88, 0x1B, 1, 255}, - {0x87, 0x18, 1, 255}, - {0x86, 0x15, 1, 255}, - {0x85, 0x12, 1, 255}, - {0x84, 0xC, 1, 255}, - {0x83, 0x9, 1, 255}, - {0x82, 0x6, 1, 255}, - {0x81, 0x3, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 5}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 7}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 9}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 11}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0x0, 1, 13}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xB9, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 14}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 16}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 18}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 20}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 21}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 23}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 25}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 27}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 29}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 31}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 33}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 35}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 37}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 39}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 41}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 43}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 45}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 47}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 49}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 51}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 53}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 55}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 57}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 59}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 61}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 62}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 64}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 66}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 67}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 35, 255}, - {0xBA, 0xBA, 0, 195}, - {0xA1, 0x6A, 1, 255}, - {0xA0, 0x67, 1, 255}, - {0x9F, 0x64, 1, 255}, - {0x9E, 0x61, 1, 255}, - {0x9D, 0x5E, 1, 255}, - {0x9C, 0x5B, 1, 255}, - {0x9B, 0x58, 1, 255}, - {0x9A, 0x55, 1, 255}, - {0x99, 0x52, 1, 255}, - {0x98, 0x4F, 1, 255}, - {0x97, 0x4C, 1, 255}, - {0x96, 0x49, 1, 255}, - {0x95, 0x46, 1, 255}, - {0x94, 0x43, 1, 255}, - {0x93, 0x40, 1, 255}, - {0x92, 0x3D, 1, 255}, - {0x91, 0x3A, 1, 255}, - {0x90, 0x37, 1, 255}, - {0x8F, 0x34, 1, 255}, - {0x8E, 0x31, 1, 255}, - {0x8D, 0x2E, 1, 255}, - {0x8C, 0x2B, 1, 255}, - {0x8B, 0x28, 1, 255}, - {0x8A, 0x25, 1, 255}, - {0x89, 0x22, 1, 255}, - {0x88, 0x1F, 1, 255}, - {0x87, 0x1C, 1, 255}, - {0x86, 0x19, 1, 255}, - {0x85, 0x16, 1, 255}, - {0x84, 0x10, 1, 255}, - {0x83, 0xD, 1, 255}, - {0x82, 0xA, 1, 255}, - {0x81, 0x7, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 2, 255}, - {0xBA, 0x0, 1, 69}, - {0xB9, 0xBA, 0, 68}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBB, 0xBB, 0, 2}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 70}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 72}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 74}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0x0, 1, 76}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xB9, 0, 3}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 77}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 79}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 81}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 83}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 84}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 86}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 88}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 90}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 92}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 94}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 96}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 98}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 100}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 102}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 104}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 106}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 108}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 110}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 112}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 114}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 116}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 118}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 120}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 122}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 124}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 125}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 127}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 129}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 130}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 36, 255}, - {0xB6, 0xFE, 1, 134}, - {0xAF, 0x71, 1, 133}, - {0xA1, 0x6E, 1, 255}, - {0xA0, 0x6B, 1, 255}, - {0x9F, 0x68, 1, 255}, - {0x9E, 0x65, 1, 255}, - {0x9D, 0x62, 1, 255}, - {0x9C, 0x5F, 1, 255}, - {0x9B, 0x5C, 1, 255}, - {0x9A, 0x59, 1, 255}, - {0x99, 0x4E, 1, 255}, - {0x98, 0x4B, 1, 255}, - {0x97, 0x48, 1, 255}, - {0x96, 0x45, 1, 255}, - {0x95, 0x42, 1, 255}, - {0x94, 0x3F, 1, 255}, - {0x93, 0x3C, 1, 255}, - {0x92, 0x39, 1, 255}, - {0x91, 0x36, 1, 255}, - {0x90, 0x33, 1, 255}, - {0x8F, 0x30, 1, 255}, - {0x8E, 0x2D, 1, 255}, - {0x8D, 0x2A, 1, 255}, - {0x8C, 0x27, 1, 255}, - {0x8B, 0x24, 1, 255}, - {0x8A, 0x21, 1, 255}, - {0x89, 0x1E, 1, 255}, - {0x88, 0x1B, 1, 255}, - {0x87, 0x18, 1, 255}, - {0x86, 0x15, 1, 255}, - {0x85, 0x12, 1, 255}, - {0x84, 0xC, 1, 255}, - {0x83, 0x9, 1, 255}, - {0x82, 0x6, 1, 255}, - {0x81, 0x3, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 68}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 70}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 72}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 74}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0x0, 1, 76}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xB9, 0, 2}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 77}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 79}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 81}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 83}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 84}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 86}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 88}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 90}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 92}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 94}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 96}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 98}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 100}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 102}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 104}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 106}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 108}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 110}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 112}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 114}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 3, 255}, - {0xBA, 0x3, 1, 117}, - {0xB9, 0xBA, 0, 116}, - {0xB7, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 3}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB8, 0xB8, 0, 4}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 118}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 120}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 122}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 124}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 125}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 127}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 129}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 130}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 34, 255}, - {0xA1, 0x66, 1, 255}, - {0xA0, 0x63, 1, 255}, - {0x9F, 0x60, 1, 255}, - {0x9E, 0x5D, 1, 255}, - {0x9D, 0x5A, 1, 255}, - {0x9C, 0x57, 1, 255}, - {0x9B, 0x54, 1, 255}, - {0x9A, 0x51, 1, 255}, - {0x99, 0x4E, 1, 255}, - {0x98, 0x4B, 1, 255}, - {0x97, 0x48, 1, 255}, - {0x96, 0x45, 1, 255}, - {0x95, 0x42, 1, 255}, - {0x94, 0x3F, 1, 255}, - {0x93, 0x3C, 1, 255}, - {0x92, 0x39, 1, 255}, - {0x91, 0x36, 1, 255}, - {0x90, 0x33, 1, 255}, - {0x8F, 0x30, 1, 255}, - {0x8E, 0x2D, 1, 255}, - {0x8D, 0x2A, 1, 255}, - {0x8C, 0x27, 1, 255}, - {0x8B, 0x24, 1, 255}, - {0x8A, 0x21, 1, 255}, - {0x89, 0x1E, 1, 255}, - {0x88, 0x1B, 1, 255}, - {0x87, 0x18, 1, 255}, - {0x86, 0x15, 1, 255}, - {0x85, 0x12, 1, 255}, - {0x84, 0xC, 1, 255}, - {0x83, 0x9, 1, 255}, - {0x82, 0x6, 1, 255}, - {0x81, 0x3, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 5}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 7}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 9}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 11}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0x0, 1, 13}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xB9, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 14}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 16}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 18}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 20}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 21}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 23}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 25}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 27}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 29}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 31}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 33}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 35}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 37}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 39}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 41}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 43}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 45}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 47}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 49}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 51}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 53}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 55}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 57}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 59}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 61}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 62}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 64}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 66}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 67}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB7, 0xB8, 0, 131}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 34, 255}, - {0xA1, 0x66, 1, 255}, - {0xA0, 0x63, 1, 255}, - {0x9F, 0x60, 1, 255}, - {0x9E, 0x5D, 1, 255}, - {0x9D, 0x5A, 1, 255}, - {0x9C, 0x57, 1, 255}, - {0x9B, 0x54, 1, 255}, - {0x9A, 0x51, 1, 255}, - {0x99, 0x4E, 1, 255}, - {0x98, 0x4B, 1, 255}, - {0x97, 0x48, 1, 255}, - {0x96, 0x45, 1, 255}, - {0x95, 0x42, 1, 255}, - {0x94, 0x3F, 1, 255}, - {0x93, 0x3C, 1, 255}, - {0x92, 0x39, 1, 255}, - {0x91, 0x36, 1, 255}, - {0x90, 0x33, 1, 255}, - {0x8F, 0x30, 1, 255}, - {0x8E, 0x2D, 1, 255}, - {0x8D, 0x2A, 1, 255}, - {0x8C, 0x27, 1, 255}, - {0x8B, 0x24, 1, 255}, - {0x8A, 0x21, 1, 255}, - {0x89, 0x1E, 1, 255}, - {0x88, 0x1B, 1, 255}, - {0x87, 0x18, 1, 255}, - {0x86, 0x15, 1, 255}, - {0x85, 0x12, 1, 255}, - {0x84, 0xC, 1, 255}, - {0x83, 0x9, 1, 255}, - {0x82, 0x6, 1, 255}, - {0x81, 0x3, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 2}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 4}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 6}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 8}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0x0, 1, 10}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xB9, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 11}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 13}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 15}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 17}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 18}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 20}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 22}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 24}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 26}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 28}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 30}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 32}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 34}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 36}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 38}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 40}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 42}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 44}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 46}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 48}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 50}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 52}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 54}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 56}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 58}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 59}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 61}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 63}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 64}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 35, 255}, - {0xB6, 0x71, 1, 69}, - {0xA1, 0x6E, 1, 255}, - {0xA0, 0x6B, 1, 255}, - {0x9F, 0x68, 1, 255}, - {0x9E, 0x65, 1, 255}, - {0x9D, 0x62, 1, 255}, - {0x9C, 0x5F, 1, 255}, - {0x9B, 0x5C, 1, 255}, - {0x9A, 0x59, 1, 255}, - {0x99, 0x4E, 1, 255}, - {0x98, 0x4B, 1, 255}, - {0x97, 0x48, 1, 255}, - {0x96, 0x45, 1, 255}, - {0x95, 0x42, 1, 255}, - {0x94, 0x3F, 1, 255}, - {0x93, 0x3C, 1, 255}, - {0x92, 0x39, 1, 255}, - {0x91, 0x36, 1, 255}, - {0x90, 0x33, 1, 255}, - {0x8F, 0x30, 1, 255}, - {0x8E, 0x2D, 1, 255}, - {0x8D, 0x2A, 1, 255}, - {0x8C, 0x27, 1, 255}, - {0x8B, 0x24, 1, 255}, - {0x8A, 0x21, 1, 255}, - {0x89, 0x1E, 1, 255}, - {0x88, 0x1B, 1, 255}, - {0x87, 0x18, 1, 255}, - {0x86, 0x15, 1, 255}, - {0x85, 0x12, 1, 255}, - {0x84, 0xC, 1, 255}, - {0x83, 0x9, 1, 255}, - {0x82, 0x6, 1, 255}, - {0x81, 0x3, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 4}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 6}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 8}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 10}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0x0, 1, 12}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xB9, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 13}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 15}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 17}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 19}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 20}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 22}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 24}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 26}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 28}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 30}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 32}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 34}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 36}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 38}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 40}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 42}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 44}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 46}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 48}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 50}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 3, 255}, - {0xBA, 0x3, 1, 53}, - {0xB9, 0xBA, 0, 52}, - {0xB7, 0x0, 1, 255}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 2}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB8, 0xB8, 0, 3}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 54}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 56}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 58}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 60}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 61}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xBA, 0, 63}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 65}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 66}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB7, 0xB8, 0, 67}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB8, 0xB8, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0x0, 1, 2}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xB9, 0xB9, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBA, 0xBA, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 2, 255}, - {0xBE, 0xBE, 0, 3}, - {0xBD, 0x0, 1, 2}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xAD, 0x0, 1, 255}, - {0x8D, 0x0, 1, 255}, - {0xE0, 0x0, 1, 255}, - {0xAC, 0x0, 1, 255}, - {0xB7, 0xB7, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x87, 0x87, 0, 2}, - {0x81, 0x81, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x86, 0x86, 0, 2}, - {0x82, 0x82, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0xA6, 0xA7, 0, 1}, - {0xCC, 0x0, 4, 255}, - {0x8A, 0x8A, 0, 5}, - {0x87, 0x88, 0, 3}, - {0x83, 0x83, 0, 2}, - {0x81, 0x81, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x83, 0x83, 0, 2}, - {0x81, 0x81, 0, 1}, - {0xCC, 0x0, 4, 255}, - {0xA8, 0xA8, 0, 5}, - {0x8B, 0x8B, 0, 4}, - {0x88, 0x88, 0, 3}, - {0x82, 0x83, 0, 1}, - {0x72, 0x72, 0, 1}, - {0x72, 0x72, 0, 2}, - {0x52, 0x52, 0, 1}, - {0xCC, 0x0, 3, 255}, - {0x8B, 0x8B, 0, 3}, - {0x88, 0x88, 0, 2}, - {0x82, 0x82, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xAF, 0x0, 1, 255}, - {0x8D, 0x0, 1, 3}, - {0xE0, 0x0, 1, 255}, - {0xAE, 0x0, 1, 255}, - {0xB7, 0x0, 1, 2}, - {0xE0, 0x0, 1, 255}, - {0xAF, 0x0, 1, 255}, - {0x8D, 0x8D, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xAF, 0x0, 1, 255}, - {0x8D, 0x8D, 0, 1}, - {0xE0, 0x0, 2, 255}, - {0xB9, 0x1, 1, 255}, - {0xB8, 0x0, 1, 255}, - {0xB2, 0xB2, 0, 1}, - {0x85, 0x85, 0, 2}, - {0xCC, 0x0, 2, 255}, - {0x84, 0x84, 0, 2}, - {0x81, 0x81, 0, 1}, - {0xDA, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0xDA, 0x1, 1, 255}, - {0xD9, 0x0, 1, 255}, - {0x94, 0x94, 0, 1}, - {0xBE, 0xBE, 0, 2}, - {0xCC, 0x0, 2, 255}, - {0x9B, 0x9B, 0, 2}, - {0x82, 0x82, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x9B, 0x9B, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x61, 0x61, 0, 2}, - {0x88, 0x0, 1, 255}, - {0x61, 0x0, 1, 255}, - {0xCC, 0x0, 1, 255}, - {0x88, 0x88, 0, 1}, - {0xC3, 0x0, 1, 255}, - {0xA4, 0xA4, 0, 1}, - {0x65, 0x65, 0, 1}, - {0x69, 0x69, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x6F, 0x6F, 0, 2}, - {0x88, 0x0, 1, 255}, - {0x6F, 0x0, 1, 255}, - {0xCC, 0x0, 1, 255}, - {0x88, 0x88, 0, 1}, - {0xC3, 0x0, 1, 255}, - {0xB6, 0xB6, 0, 1}, - {0x63, 0x0, 1, 255}, - {0x68, 0x68, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x75, 0x75, 0, 2}, - {0x88, 0x0, 1, 255}, - {0x75, 0x0, 1, 255}, - {0xCC, 0x0, 1, 255}, - {0x88, 0x88, 0, 1}, - {0xC3, 0x0, 1, 255}, - {0xBC, 0xBC, 0, 1}, - {0xCC, 0x0, 3, 255}, - {0x8C, 0x8C, 0, 4}, - {0x84, 0x84, 0, 3}, - {0x80, 0x81, 0, 1}, - {0xCC, 0x0, 4, 255}, - {0x8C, 0x8C, 0, 8}, - {0x84, 0x84, 0, 7}, - {0x82, 0x0, 1, 255}, - {0x80, 0x81, 0, 5}, - {0xCC, 0x0, 3, 255}, - {0x8C, 0x8C, 0, 4}, - {0x84, 0x84, 0, 3}, - {0x80, 0x81, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x8C, 0x8C, 0, 2}, - {0x84, 0x84, 0, 1}, - {0xCC, 0x0, 4, 255}, - {0x8C, 0x8C, 0, 9}, - {0x88, 0x0, 1, 8}, - {0x84, 0x84, 0, 7}, - {0x80, 0x81, 0, 5}, - {0xCC, 0x0, 3, 255}, - {0x8C, 0x8C, 0, 4}, - {0x84, 0x84, 0, 3}, - {0x80, 0x81, 0, 1}, -} - -// Total size of mainTable is 1244612 bytes diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/Makefile b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/Makefile deleted file mode 100644 index 1cf78226..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright 2012 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. - -chars: - go run ../../maketables.go -tables=chars -package=main > chars.go - gofmt -w -s chars.go diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/chars.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/chars.go deleted file mode 100644 index 9f3b9d77..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/chars.go +++ /dev/null @@ -1,1156 +0,0 @@ -// Generated by running -// maketables -root=http://unicode.org/Public/UCA/6.2.0/CollationAuxiliary.zip -cldr=http://www.unicode.org/Public/cldr/23/core.zip -// DO NOT EDIT -// TODO: implement more compact representation for sparse blocks. - -package main - -type exemplarType int - -const ( - exCharacters exemplarType = iota - exContractions - exPunctuation - exAuxiliary - exCurrency - exIndex - exN -) - -var exemplarCharacters = map[string][exN]string{ - "aa": { - 0: "a b t s e c k x i d q r f g o l m n u w h y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "j p v z", - 5: "A B T S E C K X I D Q R F G O L M N U W H Y", - }, - "af": { - 0: "a á â b c d e é è ê ë f g h i î ï j k l m n o ô ö p q r s t u û v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á à â ä ã æ ç é è ê ë í ì î ï ó ò ô ö ú ù û ü ý", - }, - "agq": { - 0: "a à â ÇŽ Ä b c d e è ê Ä› Ä“ É› ɛ̀ ɛ̂ ɛ̌ ɛ̄ f g h i ì î Ç Ä« ɨ ɨ̀ ɨ̂ ɨ̌ ɨ̄ k l m n Å‹ o ò ô Ç’ Å É” ɔ̀ ɔ̂ ɔ̌ ɔ̄ p s t u ù û Ç” Å« ʉ ʉ̀ ʉ̂ ʉ̌ ʉ̄ v w y z Ê”", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q r x", - 5: "A B C D E Æ F G H I Æ— K L M N ÅŠ O Ɔ P S T U É„ V W Y Z Ê”", - }, - "ak": { - 0: "a b d e É› f g h i k l m n o É” p r s t u w y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "c j q v z", - 5: "A B C D E Æ F G H I J K L M N O Ɔ P Q R S T U V W X Y Z", - }, - "am": { - 0: "០ሀ ሀ ሠሂ ሃ ሄ ህ ሆ ለ ለ ሉ ሊ ላ ሌ ሠሎ ሠሠሑ ሒ ሓ ሔ ሕ ሖ ሗ መ ሙ ሚ ማ ሜ ሠሞ ሟ ሠ ሡ ሢ ሣ ሤ ሥ ሦ ሧ ረ ሩ ሪ ራ ሬ ር ሮ ሯ ሰ ሱ ሲ ሳ ሴ ስ ሶ ሷ ሸ ሹ ሺ ሻ ሼ ሽ ሾ ሿ ቀ በቂ ቃ ቄ ቅ ቆ ቈ ቊ ቊ ቋ ቌ በበ በ ቡ ቢ ባ ቤ ብ ቦ ቧ ቨ ቩ ቪ ቫ ቬ ቭ ቮ ቯ ተ ቱ ቲ ታ ቴ ት ቶ ቷ ቸ ቹ ቺ ቻ ቼ ች ቾ ቿ ኀ አኂ ኃ ኄ ኅ ኆ ኈ ኊ ኊ ኋ ኌ አአአኑ ኒ ና ኔ ን ኖ ኗ ኘ ኙ ኚ ኛ ኜ አኞ ኟ አ ኡ ኢ ኣ ኤ እ ኦ ኧ ከ ኩ ኪ ካ ኬ ክ ኮ ኰ ኲ ኲ ኳ ኴ ኵ ኸ ኸ ኹ ኺ ኻ ኼ ኽ ኾ ወ ወ ዉ á‹Š á‹‹ á‹Œ á‹ á‹Ž á‹ á‹ á‹‘ á‹’ á‹“ á‹” á‹• á‹– ዘ ዘ á‹™ á‹š á‹› á‹œ á‹ á‹ž á‹Ÿ á‹  á‹¡ á‹¢ á‹£ ዤ á‹¥ ዦ ዧ የ á‹© ዪ á‹« ዬ á‹­ á‹® ዯ á‹° ዱ ዲ ዳ á‹´ ድ ዶ á‹· ጀ ጀ ጠጂ ጃ ጄ ጅ ጆ ጇ ገ ጉ ጊ ጋ ጌ ጠጎ ጠጒ ጒ ጓ ጔ ጕ ጠ ጠ ጡ ጢ ጣ ጤ ጥ ጦ ጧ ጨ ጩ ጪ ጫ ጬ ጭ ጮ ጯ ጰ ጱ ጲ ጳ ጴ ጵ ጶ ጷ ጸ ጹ ጺ ጻ ጼ ጽ ጾ ጿ ဠá á‚ áƒ á„ á… á† á‡ áˆ á‰ áŠ á‹ áŒ á Ꭰá á ᑠᒠᓠᔠᕠᖠᗠᘠᙠáš", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "ar": { - 0: "Ù‹ ÙŒ Ù ÙŽ Ù Ù Ù‘ Ù’ Ù° Ø¡ Ø¢ Ø£ ؤ Ø¥ ئ ا ب ت Ø© Ø« ج Ø­ Ø® د Ø° ر ز س Ø´ ص ض Ø· ظ ع غ Ù Ù‚ Ùƒ Ù„ Ù… Ù† Ù‡ Ùˆ ÙŠ Ù‰", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d \u200e \u200f Ù  Ù¡ Ù¢ Ù£ Ù¤ Ù¥ Ù¦ Ù§ Ù¨ Ù© Ù¾ Ú† Ú˜ Úœ Ú¢ Ú¤ Ú¥ Ù¯ Ú§ Ú¨ Ú© Ú¯ ÛŒ", - 5: "ا ب ت Ø« ج Ø­ Ø® د Ø° ر ز س Ø´ ص ض Ø· ظ ع غ Ù Ù‚ Ùƒ Ù„ Ù… Ù† Ù‡ Ùˆ ÙŠ", - }, - "as": { - 0: "অ আ ই ঈ উ ঊ ঋ ঠঠও ঔ ং ঠঃ ক কà§à¦· খ গ ঘ ঙ চ ছ জ ঠঞ ট ঠ ড ড় ড় ঢ ঢ় ৠণ ত থ দ ধ ন প ফ ব ভ ম য য় ৰ ল ৱ শ ষ স হ া ি ী ৠূ ৃ ে ৈ ো ৌ à§", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d ৲", - }, - "asa": { - 0: "a b c d e f g h i j k l m n o p r s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x", - 5: "A B C D E F G H I J K L M N O P R S T U V W Y Z", - }, - "ast": { - 0: "a á b c d e é f g h ḥ i í l ḷ m n ñ o ó p q r s t u ú ü v x y z", - 2: "- †– — , ; : ! ¡ ? ¿ . … ' ‘ ’ \" “ †« » ( ) [ ] § @ * / \\ & # † ‡ ′ ″", - 3: "ª à ă â Ã¥ ä ã Ä Ã¦ ç è Ä• ê ë Ä“ ì Ä­ î ï Ä« j k º ò Šô ö ø Å Å“ ù Å­ û Å« w ÿ", - 5: "A B C D E F G H I L M N Ñ O P Q R S T U V X Y Z", - }, - "az": { - 0: "a b c ç d e É™ f g ÄŸ h x ı i Ä° j k q l m n o ö p r s ÅŸ t u ü v y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "w", - }, - "az-Cyrl": { - 0: "а Ó™ б в г Ò“ д е ж з и й ј к Ò Ð» м н о Ó© п Ñ€ Ñ Ñ‚ у Ò¯ Ñ„ Ñ… Ò» ч Ò¹ ш Ñ‹", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "ц щ ÑŠ ÑŒ Ñ ÑŽ Ñ", - }, - "bas": { - 0: "a á à â ÇŽ Ä aá·† aá·‡ b É“ c d e é è ê Ä› Ä“ eá·† eá·‡ É› É›Ì É›Ì€ ɛ̂ ɛ̌ ɛ̄ ɛ᷆ ɛ᷇ f g h i í ì î Ç Ä« iá·† iá·‡ j k l m n Å„ ǹ Å‹ o ó ò ô Ç’ Å oá·† oá·‡ É” É”Ì É”Ì€ ɔ̂ ɔ̌ ɔ̄ ɔ᷆ ɔ᷇ p r s t u ú ù û Ç” Å« uá·† uá·‡ v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x", - 5: "A B Æ C D E Æ F G H I J K L M N ÅŠ O Ɔ P R S T U V W Y Z", - }, - "be": { - 0: "а б в г д дж дз е Ñ‘ ж з Ñ– й к л м н о п Ñ€ Ñ Ñ‚ у Ñž Ñ„ Ñ… ц ч ш Ñ‹ ÑŒ Ñ ÑŽ Ñ", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "bem": { - 0: "a b c e f g i j k l m n o p s sh t u w y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "d h q r v x z", - 5: "A B C E F G I J K L M N O P S SH T U W Y", - }, - "bez": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "x", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W Y Z", - }, - "bg": { - 0: "а б в г д е ж з и й к л м н о п Ñ€ Ñ Ñ‚ у Ñ„ Ñ… ц ч ш щ ÑŠ ÑŒ ÑŽ Ñ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "а̀ Ñ Ñ‘ Ñ Ð¾Ì€ у̀ ÑŠÌ€ Ñ‹ Ñ£ Ñ ÑŽÌ€ ÑÌ€ Ñ«", - }, - "bm": { - 0: "a b c d e É› f g h i j k l m n ɲ Å‹ o É” p r s t u w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q v x", - 5: "A B C D E Æ F G H I J K L M N Æ ÅŠ O Ɔ P R S T U W Y Z", - }, - "bn": { - 0: "় ৺ অ আ ই ঈ উ ঊ ঋ ৠ ঌ ৡ ঠঠও ঔ ং ঃ ঠক কà§à¦· খ গ ঘ ঙ চ ছ জ ঠঞ ট ঠ ড ড় ঢ ঢ় ণ ত ৎ থ দ ধ ন প ফ ব ভ ম য য় র ল শ ষ স হ ঽ া ি ী ৠূ ৃ ৄ ৢ ৣ ে ৈ ো ৌ ৠৗ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d ৲ ৳ ৴ ৵ ৶ ৷ ৸ ৹ ৰ ৱ", - }, - "bn-IN": { - 0: "় ৺ অ আ ই ঈ উ ঊ ঋ ৠ ঌ ৡ ঠঠও ঔ ং ঃ ঠক কà§à¦· খ গ ঘ ঙ চ ছ জ ঠঞ ট ঠ ড ড় ঢ ঢ় ণ ত ৎ থ দ ধ ন প ফ ব ভ ম য য় র ল শ ষ স হ ঽ া ি ী ৠূ ৃ ৄ ৢ ৣ ে ৈ ো ৌ ৠৗ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d ৲ ৳ ৴ ৵ ৶ ৷ ৸ ৹ ৰ ৱ", - }, - "bo": { - 0: "ཾ ཿ ཀ ཀྵ ྠà¾à¾µ འྑ ག གྷ ྒ ྒྷ ང ྔ ཅ ྕ ཆ ྖ ཇ ྗ ཉ ྙ ཊ ྚ ཋ ྛ ཌ ཌྷ ྜ ྜྷ ཎ ྞ འྟ འྠ ད དྷ ྡ ྡྷ ན ྣ པ ྤ ཕ ྥ བ བྷ ྦ ྦྷ མ ྨ ཙ ྩ ཚ ྪ ཛ ཛྷ ྫ ྫྷ འྭ ྺ ཞ ྮ ཟ ྯ འ ྰ ཡ ྱ ྻ ར ཪ ྲ ྼ ལ ླ ཤ ྴ ཥ ྵ ས ྶ ཧ ྷ ཨ ྸ ི ཱི ྀ ཱྀ ུ ཱུ ྲྀ ཷ ླྀ ཹ ཹ ེ ཻ ོ ཽ ྄", - 3: "ༀ", - }, - "br": { - 0: "a b ch cʼh d e ê f g h i j k l m n ñ o p r s t u ù v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á à ă â Ã¥ ä ã Ä Ã¦ c ç é è Ä• ë Ä“ í ì Ä­ î ï Ä« ó ò Šô ö ø Å Å“ q ú Å­ û ü Å« ÿ", - 5: "A B C D E F G H I J K L M N O P R S T U V W X Y Z", - }, - "brx": { - 0: "़ ठं अ आ इ ई उ ऊ ठठठऑ ओ औ क ख ग घ च छ ज ठञ ट ठ ड ड़ ढ ण त थ द ध न प फ ब भ म य र ल ळ व श ष स ह ा ि ी ॠू ृ ॅ े ै ॉ ो ौ à¥", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d", - 5: "अ आ इ ई उ ऊ ठठठऑ ओ औ क ख ग घ च छ ज ठञ ट ठ ड ड़ ढ ण त थ द ध न प फ ब भ म य र ल ळ व श ष स ह", - }, - "bs": { - 0: "a b c Ä Ä‡ d dž Ä‘ e f g h i j k l lj m n nj o p r s Å¡ t u v z ž", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q w x y", - }, - "bs-Cyrl": { - 0: "а б в г д Ñ’ е ж з и ј к л Ñ™ м н Ñš о п Ñ€ Ñ Ñ‚ Ñ› у Ñ„ Ñ… ц ч ÑŸ ш", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "byn": { - 0: "០ሀ ሀ ሠሂ ሃ ሄ ህ ሆ ለ ለ ሉ ሊ ላ ሌ ሠሎ ሠሠሑ ሒ ሓ ሔ ሕ ሖ ሗ መ ሙ ሚ ማ ሜ ሠሞ ሟ ረ ረ ሩ ሪ ራ ሬ ር ሮ ሯ ሰ ሱ ሲ ሳ ሴ ስ ሶ ሷ ሸ ሹ ሺ ሻ ሼ ሽ ሾ ሿ ቀ በቂ ቃ ቄ ቅ ቆ ቈ ቊ ቊ ቋ ቌ በበበቑ ቒ ቓ ቔ ቕ ቖ ቘ ቚ ቚ ቛ ቜ በበ በ ቡ ቢ ባ ቤ ብ ቦ ቧ ቨ ቩ ቪ ቫ ቬ ቭ ቮ ቯ ተ ቱ ቲ ታ ቴ ት ቶ ቷ ቸ ቹ ቺ ቻ ቼ ች ቾ ቿ ኀ አኂ ኃ ኄ ኅ ኆ ኈ ኊ ኊ ኋ ኌ አአአኑ ኒ ና ኔ ን ኖ ኗ ኘ ኙ ኚ ኛ ኜ አኞ ኟ አ ኡ ኢ ኣ ኤ እ ኦ ኧ ከ ኩ ኪ ካ ኬ ክ ኮ ኰ ኲ ኲ ኳ ኴ ኵ ኸ ኸ ኹ ኺ ኻ ኼ ኽ ኾ á‹€ á‹‚ á‹‚ ዃ á‹„ á‹… ወ ወ ዉ á‹Š á‹‹ á‹Œ á‹ á‹Ž á‹ á‹ á‹‘ á‹’ á‹“ á‹” á‹• á‹– ዘ ዘ á‹™ á‹š á‹› á‹œ á‹ á‹ž á‹Ÿ á‹  á‹¡ á‹¢ á‹£ ዤ á‹¥ ዦ ዧ የ á‹© ዪ á‹« ዬ á‹­ á‹® á‹° á‹° ዱ ዲ ዳ á‹´ ድ ዶ á‹· ጀ ጀ ጠጂ ጃ ጄ ጅ ጆ ጇ ገ ጉ ጊ ጋ ጌ ጠጎ ጠጒ ጒ ጓ ጔ ጕ ጘ ጘ ጙ ጚ ጛ ጜ ጠጞ ጟ ⶓ ⶓ ⶔ ⶕ ⶖ ጠ ጠ ጡ ጢ ጣ ጤ ጥ ጦ ጧ ጨ ጩ ጪ ጫ ጬ ጭ ጮ ጯ ጸ ጸ ጹ ጺ ጻ ጼ ጽ ጾ ጿ ሠሠበአዠጠá Ꭰá á á‘ á’ á“ á” á• á– á—", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "ca": { - 0: "a à b c ç d e é è f g h i í ï j k l Å€ m n o ó ò p q r s t u ú ü v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á ă â Ã¥ ä ã Ä Ã¦ Ä• ê ë Ä“ ì Ä­ î Ä« ñ º Šô ö ø Å Å“ ù Å­ û Å« ÿ", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "cgg": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "chr": { - 0: "Ꭰ Ꭱ Ꭲ Ꭳ Ꭴ Ꭵ Ꭶ Ꭷ Ꭸ Ꭹ Ꭺ Ꭻ Ꭼ Ꭽ Ꭾ Ꭿ Ꮀ Ꮁ Ꮂ Ꮃ Ꮄ Ꮅ Ꮆ Ꮇ Ꮈ Ꮉ Ꮊ Ꮋ Ꮌ Ꮍ Ꮎ Ꮏ ဠá á‚ áƒ á„ á… á† á‡ áˆ á‰ áŠ á‹ áŒ á Ꭰá á ᑠᒠᓠᔠᕠᖠᗠᘠᙠᚠᛠᜠá áž áŸ á  á¡ á¢ á£ á¤ á¥ á¦ á§ á¨ á© áª á« á¬ á­ á® á¯ á° á± á² á³ á´", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "Ꭰ Ꭶ Ꭽ Ꮃ Ꮉ Ꮎ ᆠጠᓠᜠᣠ᩠á¯", - }, - "cs": { - 0: "a á b c Ä d Ä e é Ä› f g h ch i í j k l m n ň o ó p q r Å™ s Å¡ t Å¥ u ú ů v w x y ý z ž", - 2: "- †– , ; : ! ? . … ‘ ‚ “ „ ( ) [ ] § @ * / &", - 3: "á à ă â Ã¥ ä ã Ä Ã¦ ç é è Ä• ê ë Ä“ í ì Ä­ î ï Ä« ľ Å‚ ñ ó ò Šô ö ø Å Å“ Å• ú ù Å­ û ü Å« ÿ", - }, - "cy": { - 0: "a á à â ä b c ch d dd e é è ê ë f ff g ng h i í ì î ï j l ll m n o ó ò ô ö p ph r rh s t th u ú ù û ü w ẃ Ạŵ ẅ y ý ỳ Å· ÿ", - 2: "- †– — , ; : ! ? . … ' ‘ ’ \" “ †( ) [ ] § @ * / & # † ‡ ′ ″", - 3: "k q v x z", - 5: "A B C CH D DD E F FF G NG H I J L LL M N O P PH R RH S T TH U W Y", - }, - "da": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z æ ø Ã¥", - 2: "- †– , ; : ! ? . … ' ‘ ’ \" “ †( ) [ ] § @ * / & # † ′ ″", - 3: "á à â ç é è ê ë í î ï ñ ó ô ú ù û ÿ ü æ ä ø ö Å“ Ã¥", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Æ Ø Ã…", - }, - "dav": { - 0: "a b c d e f g h i j k l m n o p r s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x", - 5: "A B C D E F G H I J K L M N O P R S T U V W Y Z", - }, - "de": { - 0: "a ä b c d e f g h i j k l m n o ö p q r s ß t u ü v w x y z", - 2: "- †– — , ; : ! ? . … ' ‘ ‚ \" “ „ « » ( ) [ ] { } § @ * / & #", - 3: "á à ă â Ã¥ ã Ä Ã¦ ç é è Ä• ê ë Ä“ ÄŸ í ì Ä­ î ï Ä° Ä« ı ñ ó ò Šô ø Å Å“ ÅŸ ú ù Å­ û Å« ÿ", - 5: "A B C D E F G H I J K L M N O P Q R S Sch* St* T U V W X Y Z", - }, - "dje": { - 0: "a ã b c d e ẽ f g h i j k l m n ɲ Å‹ o õ p q r s Å¡ t u w x y z ž", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "v", - 5: "A B C D E F G H I J K L M N Æ ÅŠ O P Q R S T U W X Y Z", - }, - "dua": { - 0: "a á b É“ c d É— e é É› É›Ì f g i í j k l m n ny Å‹ o ó É” É”Ì p r s t u ú Å« w y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "h q v x z", - 5: "A B Æ C D ÆŠ E Æ F G I J K L M N ÅŠ O Ɔ P S T U W Y", - }, - "dyo": { - 0: "a á b c d e é f g h i í j k l m n ñ Å‹ o ó p q r s t u ú v w x y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "z", - 5: "A B C D E F G H I J K L M N Ñ ÅŠ O P Q R S T U V W X Y", - }, - "dz": { - 0: "ཀ ྠའྑ ག ྒ ང ྔ ཅ ཆ ཇ ྗ ཉ ྙ འྟ འྠ ད ྡ ན ྣ པ ྤ ཕ ྥ བ ྦ མ ྨ ཙ ྩ ཚ ྪ ཛ ྫ འྭ ཞ ཟ འ ཡ ྱ ར ྲ ལ ླ ཤ ྵ ས ྶ ཧ ྷ ཨ ི ུ ེ ོ", - 2: "- †– — , ; : ༔ ! ? . … ' ‘ ’ \" “ †( ) [ ] ༼ ༽ § @ * / & # † ‡ ༄ ༅ ༆ ༈ ༉ ༊ à¿ à¿‘ ༌ ༠༎ ༠༠༑ ༒ à¿’ à¿“ à¿” ༴ ༶ ྾ ྿", - 3: "ཾ ཊ ྚ ཋ ྛ ཌ ྜ ཎ ྞ ྺ ྻ ྼ ཥ ྀ ཻ ཽ ྄", - }, - "ebu": { - 0: "a b c d e f g h i Ä© j k l m n o p q r s t u Å© v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I Ĩ J K L M N O P Q R S T U Ũ V W X Y Z", - }, - "ee": { - 0: "a á à ã b d É– e é è ẽ É› É›Ì É›Ì€ ɛ̃ f Æ’ g É£ h x i í ì Ä© k l m n Å‹ o ó ò õ É” É”Ì É”Ì€ ɔ̃ p r s t u ú ù Å© v Ê‹ w y z", - 2: "- †– — , ; : ! ? . … ' ‘ ’ \" “ †( ) [ ] { } § @ * / & # † ‡ ′ ″", - 3: "ă â Ã¥ ä Ä Ã¦ c ç Ä• ê ë Ä­ î ï j ñ Šô ö ø Å“ q Å­ û ü ÿ", - 5: "A B D Ɖ E Æ F Æ‘ G Æ” H X I K L M N ÅŠ O Ɔ P R S T U V Ʋ W Y Z", - }, - "el": { - 0: "α ά β γ δ ε έ ζ η ή θ ι ί ÏŠ Πκ λ μ ν ξ ο ÏŒ Ï€ Ï Ïƒ Ï‚ Ï„ Ï… Ï Ï‹ ΰ φ χ ψ ω ÏŽ", - 2: "- †– — , ; : ! . … \" ( ) [ ] § @ * / \\ &", - 3: "á¼€ ἄ ἂ ἆ á¼ á¼… ἃ ἇ á½° ᾶ á¼ á¼” á¼’ ἑ ἕ ἓ á½² á¼  ἤ á¼¢ ἦ ἡ á¼¥ á¼£ ἧ á½´ ῆ á¼° á¼´ á¼² ἶ á¼± á¼µ á¼³ á¼· ὶ á¿– á¿’ á¿— ὄ ὂ ὃ ὸ á½ á½” á½’ á½– ὑ ὕ ὓ á½— ὺ ῦ á¿¢ ῧ ὤ á½¢ ὦ á½¥ á½£ ὧ á½¼ ῶ", - 5: "Α Î’ Γ Δ Ε Ζ Η Θ Ι Κ Λ Îœ ΠΞ Ο Π Ρ Σ Τ Î¥ Φ Χ Ψ Ω", - }, - "en": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- †– — , ; : ! ? . … ' ‘ ’ \" “ †( ) [ ] § @ * / & # † ‡ ′ ″", - 3: "á à ă â Ã¥ ä ã Ä Ã¦ ç é è Ä• ê ë Ä“ í ì Ä­ î ï Ä« ñ ó ò Šô ö ø Å Å“ ú ù Å­ û ü Å« ÿ", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "en-Dsrt": { - 0: "ð¨ ð© ðª ð« ð¬ ð­ ð® ð¯ ð° ð± ð² ð³ ð´ ðµ ð¶ ð· ð¸ ð¹ ðº ð» ð¼ ð½ ð¾ ð¿ ð‘€ ð‘ 𑂠𑃠𑄠𑅠𑆠𑇠𑈠𑉠𑊠𑋠𑌠ð‘ ð‘Ž ð‘", - 2: "- †– — , ; : ! ? . … ' ‘ ’ \" “ †( ) [ ] § @ * / & # † ‡ ′ ″", - }, - "en-GB": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- †– — , ; : ! ? . … ' ‘ ’ \" “ †( ) [ ] § @ * / & # † ‡ ′ ″", - 3: "á à ă â Ã¥ ä ã Ä Ã¦ ç é è Ä• ê ë Ä“ í ì Ä­ î ï Ä« ñ ó ò Šô ö ø Å Å“ ú ù Å­ û ü Å« ÿ", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "en-ZA": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- †– — , ; : ! ? . … ' ‘ ’ \" “ †( ) [ ] § @ * / & # † ‡ ′ ″", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "eo": { - 0: "a b c ĉ d e f g Ä h Ä¥ i j ĵ k l m n o p r s Å t u Å­ v z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q w x y", - 5: "A B C Ĉ D E F G Äœ H Ĥ I J Ä´ K L M N O P R S Åœ T U Ŭ V Z", - }, - "es": { - 0: "a á b c d e é f g h i í j k l m n ñ o ó p q r s t u ú ü v w x y z", - 2: "- †– — , ; : ! ¡ ? ¿ . … ' ‘ ’ \" “ †« » ( ) [ ] § @ * / \\ & # † ‡ ′ ″", - 3: "ª à ă â Ã¥ ä ã Ä Ã¦ ç è Ä• ê ë Ä“ ì Ä­ î ï Ä« º ò Šô ö ø Å Å“ ù Å­ û Å« ÿ", - 5: "A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z", - }, - "et": { - 0: "a b c d e f g h i j k l m n o p q r s Å¡ z ž t u v w õ ä ö ü x y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á à â Ã¥ Ä Ã¦ ç é è ê ë Ä“ í ì î ï Ä« ñ ó ò Šô ø Å Å“ ú ù û Å«", - 5: "A B C D E F G H I J K L M N O P Q R S Å  Z Ž T U V Õ Ä Ö Ãœ X Y", - }, - "eu": { - 0: "a b c ç d e f g h i j k l m n ñ o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á à ă â Ã¥ ä ã Ä Ã¦ ç é è Ä• ê ë Ä“ í ì Ä­ î ï Ä« ñ ó ò Šô ö ø Å Å“ ú ù Å­ û ü Å« ÿ", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "ewo": { - 0: "a á à â ÇŽ b d dz e é è ê Ä› É™ É™Ì É™Ì€ ə̂ ə̌ É› É›Ì É›Ì€ ɛ̂ ɛ̌ f g h i í ì î Ç k kp l m n Å„ ǹ ng nk Å‹ o ó ò ô Ç’ É” É”Ì É”Ì€ ɔ̂ ɔ̌ p r s t ts u ú ù û Ç” v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "c j q x", - 5: "A B D E Æ Æ F G H I K L M N ÅŠ O Ɔ P R S T U V W Y Z", - }, - "fa": { - 0: "Ù‹ Ù ÙŒ Ù‘ Ù” Ø¢ ا Ø¡ Ø£ ؤ ئ ب Ù¾ ت Ø« ج Ú† Ø­ Ø® د Ø° ر ز Ú˜ س Ø´ ص ض Ø· ظ ع غ Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Ùˆ Ù‡ Ø© ÛŒ", - 2: "- †، Ù« Ù¬ Ø› : ! ØŸ . … « » ( ) [ ] * / \\", - 3: "\u200c \u200d \u200e \u200f ÙŽ Ù Ù Ù’ Ù– Ù° Û° Û± Û² Û³ Û´ Ûµ Û¶ Û· Û¸ Û¹ Ø¥ Ùƒ Ù‰ ÙŠ", - 5: "Ø¢ ا ب Ù¾ ت Ø« ج Ú† Ø­ Ø® د Ø° ر ز Ú˜ س Ø´ ص ض Ø· ظ ع غ Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Ùˆ Ù‡ ÛŒ", - }, - "fa-AF": { - 0: "Ù‹ Ù ÙŒ Ù‘ Ù” Ø¢ ا Ø¡ Ø£ ؤ ئ ب Ù¾ ت Ø« ج Ú† Ø­ Ø® د Ø° ر ز Ú˜ س Ø´ ص ض Ø· ظ ع غ Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Ùˆ Ù‡ Ø© ÛŒ", - 2: "- †، Ù« Ù¬ Ø› : ! ØŸ . … « » ( ) [ ] * / \\", - 3: "Ù– Ù° \u200c \u200d Ù¼ Ú Ú… Ú‰ Ú“ Ú– Úš Ú« Ú¼ ÙŠ", - 5: "Ø¢ ا ب Ù¾ ت Ø« ج Ú† Ø­ Ø® د Ø° ر ز Ú˜ س Ø´ ص ض Ø· ظ ع غ Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Ùˆ Ù‡ ÛŒ", - }, - "ff": { - 0: "a b É“ c d É— e f g h i j k l m n ñ Å‹ o p r s t u w y Æ´", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q v x z", - 5: "A B Æ C D ÆŠ E F G H I J K L M N Ñ ÅŠ O P R S T U W Y Ƴ", - }, - "fi": { - 0: "a b c d e f g h i j k l m n o p q r s Å¡ t u v w x y z ž Ã¥ ä ö", - 3: "á à â ã Ä Ã§ Ä‘ é è ê ë ǧ Ç¥ ÈŸ í î ï Ç© Å„ ñ Å‹ ô õ Å“ Å™ ß ŧ ú ù û ÿ ü Ê’ ǯ æ ø", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ã… Ä Ö", - }, - "fil": { - 0: "a b c d e f g h i j k l m n ñ ng o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á à â é è ê í ì î ó ò ô ú ù û", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "fo": { - 0: "a á b d ð e f g h i í j k l m n o ó p r s t u ú v x y ý æ ø", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "c q w z", - }, - "fr": { - 0: "a à â æ b c ç d e é è ê ë f g h i î ï j k l m n o ô Å“ p q r s t u ù û ü v w x y ÿ z", - 2: "- †– — , ; : ! ? . … ’ \" “ †« » ( ) [ ] § @ * / & # † ‡", - 3: "á Ã¥ ä ã Ä Ä“ í ì Ä« ñ ó ò ö ø ú Ç”", - }, - "fur": { - 0: "a à â b c ç d e è ê f g h i ì î j k l m n o ò ô p q r s t u ù û v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "Ã¥ Ä Ã© ë ÄŸ ï ñ ó Å¡ ü", - }, - "ga": { - 0: "a á b c d e é f g h i í l m n o ó p r s t u ú", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "Ã¥ ḃ Ä‹ ḋ ḟ Ä¡ j k á¹ á¹— q ṡ ṫ v w x y z", - }, - "gd": { - 0: "a à b c d e è f g h i ì l m n o ò p r s t u ù", - 3: "á Ä‹ ḋ é ḟ Ä¡ j k Ṡó á¹— q ṡ ṫ v w x y z", - 5: "A B C D E F G H I L M N O P R S T U", - }, - "gl": { - 0: "a á b c d e é f g h i í j k l m n ñ o ó p q r s t u ú ü v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z", - }, - "gsw": { - 0: "a ä b c d e f g h i j k l m n o ö p q r s t u ü v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á à ă â Ã¥ Ä Ã¦ ç é è Ä• ê ë Ä“ í ì Ä­ î ï Ä« ñ ó ò Šô ø Å Å“ ú ù Å­ û Å« ÿ", - }, - "gu": { - 0: "઼ ૠં ઠઃ અ આ ઇ ઈ ઉ ઊ ઋ à«  ઠઠઠઑ ઓ ઔ ક ખ ગ ઘ ઙ ચ છ જ ઠઞ ટ ઠ ડ ઢ ણ ત થ દ ધ ન પ ફ બ ભ મ ય ર લ વ શ ષ સ હ ળ ઽ ા િ à«€ à« à«‚ ૃ à«„ à«… ે ૈ ૉ à«‹ à«Œ à«", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d à«°", - 5: "અ આ ઇ ઈ ઉ ઊ ઋ ઠઠઓ ઔ ક ખ ગ ઘ ઙ ચ છ જ ઠઞ ટ ઠ ડ ઢ ણ ત થ દ ધ ન પ ફ બ ભ મ ય ર લ વ શ ષ સ હ ળ", - }, - "guz": { - 0: "a b c d e f g h i j k l m n o p r s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x", - 5: "A B C D E F G H I J K L M N O P R S T U V W Y Z", - }, - "gv": { - 0: "a b c ç d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "ha": { - 0: "a b É“ c d É— e f g h i j k Æ™ l m n o r s sh t ts u w y ʼy z ʼ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á à â é è ê í ì î ó ò ô p q r̃ ú ù û v x Æ´", - }, - "haw": { - 0: "a Ä e Ä“ i Ä« o Å u Å« h k l m n p w Ê»", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "b c d f g j q r s t v x y z", - }, - "he": { - 0: "× ×‘ ×’ ד ×” ו ×– ×— ט ×™ ×› ך ל מ × ×  ן ס ×¢ פ ×£ צ ×¥ ק ר ש ת", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "Ö½ ׄ \u200e \u200f Ö° Ö± Ö² Ö³ Ö´ Öµ Ö¶ Ö· Ö¸ Ö¹ Ö» ׂ × Ö¼ Ö¿ Ö¾ ׳ ×´", - 5: "× ×‘ ×’ ד ×” ו ×– ×— ט ×™ ×› ל מ ×  ס ×¢ פ צ ק ר ש ת", - }, - "hi": { - 0: "़ ॠं ठः अ आ इ ई उ ऊ ऋ ऌ ठठठऑ ओ औ क ख ग घ ङ च छ ज ठञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल ळ व श ष स ह ऽ ा ि ी ॠू ृ ॄ ॅ े ै ॉ ो ौ à¥", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d", - }, - "hr": { - 0: "a b c Ä Ä‡ d dž Ä‘ e f g h i j k l lj m n nj o p r s Å¡ t u v z ž", - 2: "†– — , ; : ! ? . … ' ‘ ’ \" “ †( ) [ ] @ * / ′ ″", - 3: "q w x y", - 5: "A B C ÄŒ Ć D DŽ Ä E F G H I J K L LJ M N NJ O P Q R S Å  T U V W X Y Z Ž", - }, - "hu": { - 0: "a á b c cs ccs d dz ddz dzs ddzs e é f g gy ggy h i í j k l ly lly m n ny nny o ó ö Å‘ p r s sz ssz t ty tty u ú ü ű v z zs zzs", - 2: "- – , ; : ! ? . … ' ’ \" †„ « » ( ) [ ] { } 〈 〉 § @ * / & # ⸓ ~", - 3: "à ă â Ã¥ ä ã Ä Ã¦ ç è Ä• ê ë Ä“ ì Ä­ î ï Ä« ñ ò Šô ø Å Å“ q ù Å­ û Å« w x y ÿ", - 5: "A à B C CS D DZ DZS E É F G GY H I à J K L LY M N NY O Ó Ö Å P Q R S SZ T TY U Ú Ãœ Å° V W X Y Z ZS", - }, - "hy": { - 0: "Õ¡ Õ¢ Õ£ Õ¤ Õ¥ Õ¦ Õ§ Õ¨ Õ© Õª Õ« Õ¬ Õ­ Õ® Õ¯ Õ° Õ± Õ² Õ³ Õ´ Õµ Õ¶ Õ· Õ¸ Õ¹ Õº Õ» Õ¼ Õ½ Õ¾ Õ¿ Ö€ Ö Ö‚ Öƒ Ö„ Ö‡ Ö… Ö†", - 2: "ÖŠ Õ Õœ Õž « » Õš Õ› ÕŸ", - }, - "ia": { - 0: "a b c ch d e f g h i j k l m n o p ph q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "id": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "†– — , ; : ! ? . … ' ‘ ’ “ †( ) [ ] /", - 3: "Ã¥ q x z", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "ig": { - 0: "a b ch d e ẹ f g gb gh gw h i ị j k kp kw l m n á¹… nw ny o á» p r s sh t u ụ v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "ii": { - 0: "ꀀ ꀀ ê€ ê€‚ ꀃ ꀄ ꀅ ꀆ ꀇ ꀈ ꀉ ꀊ ꀋ ꀌ ê€ ê€Ž ê€ ê€ ê€‘ ꀒ ꀓ ꀔ ꀕ ꀖ ꀗ ꀘ ꀙ ꀚ ꀛ ꀜ ê€ ê€ž ꀟ ꀠ ꀡ ꀢ ꀣ ꀤ ꀥ ꀦ ꀧ ꀨ ꀩ ꀪ ꀫ ꀬ ꀭ ꀮ ꀯ ꀰ ꀱ ꀲ ꀳ ꀴ ꀵ ꀶ ꀷ ꀸ ꀹ ꀺ ꀻ ꀼ ꀽ ꀾ ꀿ ê€ ê ê‚ êƒ ê„ ê… ê† ê‡ êˆ ê‰ êŠ ê‹ êŒ ê êŽ ê ê ê‘ ê’ ê“ ê” ê• ê– ê— ê˜ ê™ êš ê› êœ ê êž êŸ ê  ê¡ ê¢ ê£ ê¤ ê¥ ê¦ ê§ ê¨ ê© êª ê« ê¬ ê­ ê® ê¯ ê° ê± ê² ê³ ê´ êµ ê¶ ê· ê¸ ê¹ êº ê» ê¼ ê½ ê¾ ê¿ ê‚€ ê‚ ê‚‚ ꂃ ê‚„ ê‚… ꂆ ꂇ ꂈ ꂉ ê‚Š ê‚‹ ê‚Œ ê‚ ê‚Ž ê‚ ê‚ ê‚‘ ê‚’ ê‚“ ê‚” ê‚• ê‚– ê‚— ꂘ ê‚™ ê‚š ê‚› ê‚œ ê‚ ê‚ž ê‚Ÿ ê‚  ê‚¡ ê‚¢ ê‚£ ꂤ ê‚¥ ꂦ ꂧ ꂨ ê‚© ꂪ ê‚« ꂬ ê‚­ ê‚® ꂯ ê‚° ꂱ ꂲ ꂳ ê‚´ ꂵ ꂶ ê‚· ꂸ ꂹ ꂺ ê‚» ꂼ ꂽ ꂾ ê‚¿ ꃀ êƒ êƒ‚ ꃃ ꃄ ꃅ ꃆ ꃇ ꃈ ꃉ ꃊ ꃋ ꃌ êƒ êƒŽ êƒ êƒ êƒ‘ ꃒ ꃓ ꃔ ꃕ ꃖ ꃗ ꃘ ꃙ ꃚ ꃛ ꃜ êƒ êƒž ꃟ ꃠ ꃡ ꃢ ꃣ ꃤ ꃥ ꃦ ꃧ ꃨ ꃩ ꃪ ꃫ ꃬ ꃭ ꃮ ꃯ ꃰ ꃱ ꃲ ꃳ ꃴ ꃵ ꃶ ꃷ ꃸ ꃹ ꃺ ꃻ ꃼ ꃽ ꃾ ꃿ ê„€ ê„ ê„‚ ꄃ ê„„ ê„… ꄆ ꄇ ꄈ ꄉ ê„Š ê„‹ ê„Œ ê„ ê„Ž ê„ ê„ ê„‘ ê„’ ê„“ ê„” ê„• ê„– ê„— ꄘ ê„™ ê„š ê„› ê„œ ê„ ê„ž ê„Ÿ ê„  ê„¡ ê„¢ ê„£ ꄤ ê„¥ ꄦ ꄧ ꄨ ê„© ꄪ ê„« ꄬ ê„­ ê„® ꄯ ê„° ꄱ ꄲ ꄳ ê„´ ꄵ ꄶ ê„· ꄸ ꄹ ꄺ ê„» ꄼ ꄽ ꄾ ê„¿ ê…€ ê… ê…‚ ê…ƒ ê…„ ê…… ê…† ê…‡ ê…ˆ ê…‰ ê…Š ê…‹ ê…Œ ê… ê…Ž ê… ê… ê…‘ ê…’ ê…“ ê…” ê…• ê…– ê…— ê…˜ ê…™ ê…š ê…› ê…œ ê… ê…ž ê…Ÿ ê…  ê…¡ ê…¢ ê…£ ê…¤ ê…¥ ê…¦ ê…§ ê…¨ ê…© ê…ª ê…« ê…¬ ê…­ ê…® ê…¯ ê…° ê…± ê…² ê…³ ê…´ ê…µ ê…¶ ê…· ê…¸ ê…¹ ê…º ê…» ê…¼ ê…½ ê…¾ ê…¿ ꆀ ê† ê†‚ ꆃ ꆄ ꆅ ꆆ ꆇ ꆈ ꆉ ꆊ ꆋ ꆌ ê† ê†Ž ê† ê† ê†‘ ꆒ ꆓ ꆔ ꆕ ꆖ ꆗ ꆘ ꆙ ꆚ ꆛ ꆜ ê† ê†ž ꆟ ꆠ ꆡ ꆢ ꆣ ꆤ ꆥ ꆦ ꆧ ꆨ ꆩ ꆪ ꆫ ꆬ ꆭ ꆮ ꆯ ꆰ ꆱ ꆲ ꆳ ꆴ ꆵ ꆶ ꆷ ꆸ ꆹ ꆺ ꆻ ꆼ ꆽ ꆾ ꆿ ꇀ ê‡ ê‡‚ ꇃ ꇄ ꇅ ꇆ ꇇ ꇈ ꇉ ꇊ ꇋ ꇌ ê‡ ê‡Ž ê‡ ê‡ ê‡‘ ꇒ ꇓ ꇔ ꇕ ꇖ ꇗ ꇘ ꇙ ꇚ ꇛ ꇜ ê‡ ê‡ž ꇟ ꇠ ꇡ ꇢ ꇣ ꇤ ꇥ ꇦ ꇧ ꇨ ꇩ ꇪ ꇫ ꇬ ꇭ ꇮ ꇯ ꇰ ꇱ ꇲ ꇳ ꇴ ꇵ ꇶ ꇷ ꇸ ꇹ ꇺ ꇻ ꇼ ꇽ ꇾ ꇿ ꈀ êˆ êˆ‚ ꈃ ꈄ ꈅ ꈆ ꈇ ꈈ ꈉ ꈊ ꈋ ꈌ êˆ êˆŽ êˆ êˆ êˆ‘ ꈒ ꈓ ꈔ ꈕ ꈖ ꈗ ꈘ ꈙ ꈚ ꈛ ꈜ êˆ êˆž ꈟ ꈠ ꈡ ꈢ ꈣ ꈤ ꈥ ꈦ ꈧ ꈨ ꈩ ꈪ ꈫ ꈬ ꈭ ꈮ ꈯ ꈰ ꈱ ꈲ ꈳ ꈴ ꈵ ꈶ ꈷ ꈸ ꈹ ꈺ ꈻ ꈼ ꈽ ꈾ ꈿ ꉀ ê‰ ê‰‚ ꉃ ꉄ ꉅ ꉆ ꉇ ꉈ ꉉ ꉊ ꉋ ꉌ ê‰ ê‰Ž ê‰ ê‰ ê‰‘ ꉒ ꉓ ꉔ ꉕ ꉖ ꉗ ꉘ ꉙ ꉚ ꉛ ꉜ ê‰ ê‰ž ꉟ ꉠ ꉡ ꉢ ꉣ ꉤ ꉥ ꉦ ꉧ ꉨ ꉩ ꉪ ꉫ ꉬ ꉭ ꉮ ꉯ ꉰ ꉱ ꉲ ꉳ ꉴ ꉵ ꉶ ꉷ ꉸ ꉹ ꉺ ꉻ ꉼ ꉽ ꉾ ꉿ ꊀ êŠ êŠ‚ ꊃ ꊄ ꊅ ꊆ ꊇ ꊈ ꊉ ꊊ ꊋ ꊌ êŠ êŠŽ êŠ êŠ êŠ‘ ꊒ ꊓ ꊔ ꊕ ꊖ ꊗ ꊘ ꊙ ꊚ ꊛ ꊜ êŠ êŠž ꊟ ꊠ ꊡ ꊢ ꊣ ꊤ ꊥ ꊦ ꊧ ꊨ ꊩ ꊪ ꊫ ꊬ ꊭ ꊮ ꊯ ꊰ ꊱ ꊲ ꊳ ꊴ ꊵ ꊶ ꊷ ꊸ ꊹ ꊺ ꊻ ꊼ ꊽ ꊾ ꊿ ê‹€ ê‹ ê‹‚ ꋃ ê‹„ ê‹… ꋆ ꋇ ꋈ ꋉ ê‹Š ê‹‹ ê‹Œ ê‹ ê‹Ž ê‹ ê‹ ê‹‘ ê‹’ ê‹“ ê‹” ê‹• ê‹– ê‹— ꋘ ê‹™ ê‹š ê‹› ê‹œ ê‹ ê‹ž ê‹Ÿ ê‹  ê‹¡ ê‹¢ ê‹£ ꋤ ê‹¥ ꋦ ꋧ ꋨ ê‹© ꋪ ê‹« ꋬ ê‹­ ê‹® ꋯ ê‹° ꋱ ꋲ ꋳ ê‹´ ꋵ ꋶ ê‹· ꋸ ꋹ ꋺ ê‹» ꋼ ꋽ ꋾ ê‹¿ ꌀ êŒ êŒ‚ ꌃ ꌄ ꌅ ꌆ ꌇ ꌈ ꌉ ꌊ ꌋ ꌌ êŒ êŒŽ êŒ êŒ êŒ‘ ꌒ ꌓ ꌔ ꌕ ꌖ ꌗ ꌘ ꌙ ꌚ ꌛ ꌜ êŒ êŒž ꌟ ꌠ ꌡ ꌢ ꌣ ꌤ ꌥ ꌦ ꌧ ꌨ ꌩ ꌪ ꌫ ꌬ ꌭ ꌮ ꌯ ꌰ ꌱ ꌲ ꌳ ꌴ ꌵ ꌶ ꌷ ꌸ ꌹ ꌺ ꌻ ꌼ ꌽ ꌾ ꌿ ê€ ê ê‚ êƒ ê„ ê… ê† ê‡ êˆ ê‰ êŠ ê‹ êŒ ê êŽ ê ê ê‘ ê’ ê“ ê” ê• ê– ê— ê˜ ê™ êš ê› êœ ê êž êŸ ê  ê¡ ê¢ ê£ ê¤ ê¥ ê¦ ê§ ê¨ ê© êª ê« ê¬ ê­ ê® ê¯ ê° ê± ê² ê³ ê´ êµ ê¶ ê· ê¸ ê¹ êº ê» ê¼ ê½ ê¾ ê¿ êŽ€ êŽ êŽ‚ ꎃ ꎄ ꎅ ꎆ ꎇ ꎈ ꎉ ꎊ ꎋ ꎌ êŽ êŽŽ êŽ êŽ êŽ‘ ꎒ ꎓ ꎔ ꎕ ꎖ ꎗ ꎘ ꎙ ꎚ ꎛ ꎜ êŽ êŽž ꎟ ꎠ ꎡ ꎢ ꎣ ꎤ ꎥ ꎦ ꎧ ꎨ ꎩ ꎪ ꎫ ꎬ ꎭ ꎮ ꎯ ꎰ ꎱ ꎲ ꎳ ꎴ ꎵ ꎶ ꎷ ꎸ ꎹ ꎺ ꎻ ꎼ ꎽ ꎾ ꎿ ê€ ê ê‚ êƒ ê„ ê… ê† ê‡ êˆ ê‰ êŠ ê‹ êŒ ê êŽ ê ê ê‘ ê’ ê“ ê” ê• ê– ê— ê˜ ê™ êš ê› êœ ê êž êŸ ê  ê¡ ê¢ ê£ ê¤ ê¥ ê¦ ê§ ê¨ ê© êª ê« ê¬ ê­ ê® ê¯ ê° ê± ê² ê³ ê´ êµ ê¶ ê· ê¸ ê¹ êº ê» ê¼ ê½ ê¾ ê¿ ê€ ê ê‚ êƒ ê„ ê… ê† ê‡ êˆ ê‰ êŠ ê‹ êŒ ê êŽ ê ê ê‘ ê’ ê“ ê” ê• ê– ê— ê˜ ê™ êš ê› êœ ê êž êŸ ê  ê¡ ê¢ ê£ ê¤ ê¥ ê¦ ê§ ê¨ ê© êª ê« ê¬ ê­ ê® ê¯ ê° ê± ê² ê³ ê´ êµ ê¶ ê· ê¸ ê¹ êº ê» ê¼ ê½ ê¾ ê¿ ê‘€ ê‘ ê‘‚ ꑃ ê‘„ ê‘… ꑆ ꑇ ꑈ ꑉ ê‘Š ê‘‹ ê‘Œ ê‘ ê‘Ž ê‘ ê‘ ê‘‘ ê‘’ ê‘“ ê‘” ê‘• ê‘– ê‘— ꑘ ê‘™ ê‘š ê‘› ê‘œ ê‘ ê‘ž ê‘Ÿ ê‘  ê‘¡ ê‘¢ ê‘£ ꑤ ê‘¥ ꑦ ꑧ ꑨ ê‘© ꑪ ê‘« ꑬ ê‘­ ê‘® ꑯ ê‘° ꑱ ꑲ ꑳ ê‘´ ꑵ ꑶ ê‘· ꑸ ꑹ ꑺ ê‘» ꑼ ꑽ ꑾ ê‘¿ ê’€ ê’ ê’‚ ê’ƒ ê’„ ê’… ê’† ê’‡ ê’ˆ ê’‰ ê’Š ê’‹ ê’Œ", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "is": { - 0: "a á b d ð e é f g h i í j k l m n o ó p r s t u ú v y ý þ æ ö", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "c q w x z", - }, - "it": { - 0: "a à b c d e é è f g h i ì j k l m n o ó ò p q r s t u ù v w x y z", - 2: "- — , ; : ! ? . … “ †( ) [ ] { } @ /", - 3: "á â Ã¥ ä ã æ ç ê ë í î ï ñ ô ö õ ø Å“ ß ú û ü ÿ", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "ja": { - 0: "々 ã‚ž ー ゠ヽ ヾ ã ã‚¡ ã‚ ã‚¢ ムィ ㄠイ ã… ã‚¥ ㆠウ ヴ ㇠ェ ㈠エ ㉠ォ ㊠オ ヵ ã‹ ã‚« ㌠ガ ã ã‚­ ㎠ギ ã ク ã ã‚° ヶ 㑠ケ 㒠ゲ 㓠コ ã” ã‚´ 㕠サ 㖠ザ ã— ã‚· 㘠ジ 㙠ス 㚠ズ ã› ã‚» 㜠ゼ ã ソ 㞠ゾ 㟠タ ã  ãƒ€ 㡠ム㢠ヂ 㣠ッ 㤠ツ 㥠ヅ 㦠テ 㧠デ 㨠ト 㩠ド 㪠ナ 㫠ニ 㬠ヌ 㭠ム㮠ノ 㯠ム㰠ム㱠パ 㲠ヒ 㳠ビ 㴠ピ 㵠フ 㶠ブ 㷠プ 㸠ヘ 㹠ベ 㺠ペ 㻠ホ 㼠ボ 㽠ム㾠マ 㿠ミ ã‚€ ム ゠メ ã‚‚ モ ゃ ャ ã‚„ ヤ ã‚… ュ ゆ ユ ょ ョ よ ヨ ら ラ ã‚Š リ ã‚‹ ル ã‚Œ レ ゠ロ ã‚Ž ヮ ゠ワ ゠ヰ ã‚‘ ヱ ã‚’ ヲ ã‚“ ン 一 ä¸ ä¸ƒ 万 万 丈 三 上 下 ä¸ ä¸Ž 丑 且 世 丘 丙 両 並 中 丸 丹 主 ä¹… ä¹ ä¹— ä¹™ ä¹ ä¹± ä¹³ ä¹¾ 亀 了 予 争 事 二 互 五 井 亜 亡 交 亥 亨 享 享 京 亭 人 ä» ä»Š 介 ä» ä»• ä»– 付 ä»™ 代 代 令 以 ä»® ä»° 仲 件 ä»» ä¼ ä¼Š ä¼ ä¼ ä¼ ä¼‘ 会 ä¼ ä¼¯ ä¼´ 伸 伺 ä¼¼ 但 ä½ ä½ ä½Ž ä½ ä½ ä½“ 何 ä½™ 作 ä½³ ä½µ 使 例 ä¾ ä¾› ä¾ ä¾¡ ä¾® 侯 ä¾µ 便 ä¿‚ 促 ä¿Š ä¿— ä¿ ä¿¡ ä¿® 俳 俵 俸 俺 倉 個 å€ å€’ 候 借 倣 値 倫 倹 å‰ å åœ å¥ å´ å´ åµ å¶ å½ å‚ å‚‘ 傘 å‚™ 催 債 å‚· 傾 åƒ åƒ åƒ• 僚 僧 å„€ å„„ å„’ å„Ÿ 優 å…ƒ å…ƒ å…„ å…… å…† å…ˆ å…‰ å…‹ å… å…Ž å… å…š å…¥ å…¨ å…« å…« å…¬ å…­ å…± å…µ å…· å…¸ å…¼ 内 円 冊 å† å†’ 冗 写 冠 冬 冷 准 å‡ å‡ å‡¡ 処 凶 凸 凸 凹 出 刀 刃 分 分 切 刈 刊 刑 列 åˆ åˆ¤ 別 利 到 制 制 刷 券 刺 刻 則 削 å‰ å‰– 剛 剣 剤 副 剰 割 創 劇 力 功 加 劣 助 努 励 労 効 劾 å‹… 勇 勉 å‹• 勘 å‹™ å‹ å‹Ÿ å‹¢ 勤 勧 勲 勺 åŒ åŒ… 化 北 匠 匹 匹 区 医 匿 å åƒ å‡ åˆ åŠ å‘ å‘ å’ å“ å” å— å˜ åš å  å¯ å¯ å° å± å³ å³ å´ åµ å¸ åŽ„ 厘 厚 原 厳 去 å‚ åˆ åŠ åŠ å‹ åŒ å åŽ å” å– å— å™ å£ å£ å¤ å¥ å« å¬ å¯ å° å² å³ å· å¸ å„ åˆ å‰ åŒ åŒ å åŽ å å å‘ å› åŸ å¦ å« å¸ å¹ å‘ˆ 呈 呉 å‘Š 周 味 呼 命 å’Œ å’² å“€ å“ å“¡ 哲 唆 唇 å” å”¯ å”± 商 å• å•“ å–„ å–š å–œ å– å–ª å–« å–¶ å—£ 嘆 嘉 嘱 器 å™´ 嚇 囚 å›› 回 å›  団 å›° 囲 図 固 国 åœ åœ’ 土 圧 在 地 å‚ å‡ åŠ å‘ åª åž‚ åž‹ 垣 埋 城 域 執 培 基 埼 å € å ‚ å … å • å ¤ å ª å ± å ´ å¡€ å¡ å¡Š å¡‘ å¡” å¡— å¡š å¡© 塾 境 墓 増 墜 墨 墳 墾 å£ å£‡ 壊 壌 士 壬 壮 声 声 壱 売 変 å¤ å¤• 外 多 夜 夢 大 天 天 太 夫 央 失 奇 奇 奈 奉 å¥ å¥‘ 奔 奥 奨 奪 奮 女 奴 好 如 如 妃 妄 妊 妙 妥 妨 妹 妻 姉 始 姓 委 姫 姻 姿 å¨ å¨˜ 娠 娯 婆 å©š 婦 å©¿ 媒 å« å«Œ å«¡ 嬢 å­ å­” å­— å­˜ å­ å­£ å­¤ å­¦ å­« å®… 宇 宇 守 安 完 å®— å®— 官 å®™ 定 宜 å® å®Ÿ 客 客 宣 室 å®® å®° 害 害 å®´ 宵 家 容 宿 寂 寄 寄 寅 密 富 寒 寛 å¯ å¯Ÿ 寡 寧 審 寮 寸 寺 対 寿 å° å°‚ å°„ å°† å°‰ å°‰ å°Š å°‹ å°Ž å° å°‘ å°š å°± å°º å°¼ å°¼ å°½ å°¾ å°¿ å±€ å±… 屈 届 屋 展 属 層 å±¥ 屯 å±± å² å²¡ 岩 岬 å²³ 岸 å³  峡 å³° 島 å´‡ å´Ž å´© å· å·ž å·¡ å·£ å·¥ å·¥ å·¦ å·§ å·¨ å·® å·± å·³ å·» 市 布 帆 希 å¸ å¸¥ 師 席 帯 帰 帳 常 帽 å¹… 幕 å¹£ å¹² å¹² å¹³ å¹´ 幸 å¹¹ å¹» å¹» å¹¼ å¹½ å¹¾ åº åºƒ 床 åº åº• 店 庚 府 度 座 庫 庭 庶 庶 康 庸 廃 廉 廊 延 å»· 建 å¼ å¼Š å¼ å¼ å¼“ 弓 å¼” 引 弘 弟 弦 弧 å¼± å¼µ å¼· å¼¾ 当 å½¢ 彩 彫 å½° å½± å½¹ å½¼ å¾€ å¾ å¾„ å¾… 律 後 å¾ å¾’ 従 å¾— 御 復 循 å¾® å¾³ å¾´ å¾¹ 心 å¿… å¿Œ å¿ å¿— å¿— 忘 å¿™ å¿œ å¿  å¿« 念 怒 怖 æ€ æ€  急 性 怪 æ‹ æ æ’ æ¥ æ¨ æ© æ­ æ¯ æµ æ‚” æ‚Ÿ æ‚  æ‚£ 悦 æ‚© 悪 悲 悼 情 惑 惜 惨 惰 想 æ„ æ„‰ æ„ æ„š æ„› æ„Ÿ æ…ˆ æ…‹ æ…Œ æ…Ž æ…• æ…¢ æ…£ æ…¨ æ…® æ…° æ…¶ 憂 憎 憤 憩 憲 憶 憾 懇 æ‡ æ‡² 懸 戊 戌 æˆ æˆ æˆ‘ 戒 戦 戯 戸 戻 房 所 扇 扉 手 æ‰ æ‰“ 払 扱 扶 批 承 技 抄 把 抑 投 抗 折 抜 択 披 抱 抵 抹 押 抽 æ‹… æ‹ æ‹ æ‹’ æ‹“ 拘 æ‹™ æ‹› æ‹ æ‹  æ‹¡ 括 æ‹· 拾 æŒ æŒ‡ 挑 挙 挟 振 挿 æ• æœ æ¨ æ® æŽƒ 授 掌 排 掘 掛 採 探 接 控 推 措 掲 æ æ æš æ› æ¡ æ® æ´ æº æ æ¬ æ­ æº æ¾ æ‘‚ 摘 æ‘© æ’ƒ æ’¤ æ’® æ’² æ“ æ“ æ“¦ 擬 支 改 æ”» 放 政 æ•… æ• æ•‘ æ•— æ•™ æ•¢ æ•£ 敬 æ•° æ•´ 敵 æ•· æ–‡ æ–‰ æ–Ž æ–— æ–™ æ–œ æ–¤ æ–¥ æ–­ æ–° æ–¹ æ–½ æ—… æ—‹ æ— æ—— æ—¢ æ—¥ æ—§ æ—§ æ—¨ æ—© æ—¬ 昆 昇 昌 明 易 昔 星 映 春 昨 昭 是 昼 時 晩 æ™® 景 æ™´ 晶 æš æš‡ æš‘ æš– æš— 暦 æš« æš® æš´ 曇 曜 曲 æ›´ 書 曹 替 最 月 有 æœ æœ• 朗 望 æœ æœŸ 木 未 未 末 本 札 朱 朴 机 朽 æ‰ æ æ‘ æŸ æ¡ æ¥ æ¯ æ± æ¾ æ¿ æž æž— æžš æžœ æž æž  枢 枯 架 柄 æŸ æŸ“ 柔 柱 柳 査 æ „ æ “ æ ¡ æ ª æ ¸ æ ¹ æ ¼ æ ½ 桃 案 æ¡‘ æ¡œ æ¡Ÿ 梅 械 棄 棋 棒 棚 棟 森 棺 æ¤ æ¤œ 業 極 楼 楽 概 構 様 槽 標 模 権 横 樹 æ©‹ æ©Ÿ 欄 欠 次 欧 欲 欺 款 æ­Œ æ­“ æ­¢ æ­£ æ­¦ æ­© æ­¯ æ­³ æ­´ æ­» 殉 殉 殊 残 æ®– æ®´ 段 殺 æ®» 殿 æ¯ æ¯Ž 毒 比 毛 æ° æ°‘ æ°— æ°´ æ°· æ°¸ æ± æ±‚ 汎 æ±— 汚 江 æ±  決 æ±½ 沈 æ²– 没 æ²¢ æ²³ 沸 æ²¹ æ²» æ²¼ 沿 æ³ æ³‰ 泊 泌 法 泡 泡 æ³¢ æ³£ æ³¥ 注 æ³° æ³³ æ´‹ æ´— æ´ž æ´¥ æ´ª æ´» æ´¾ æµ æµ„ æµ… 浜 浦 浪 æµ® æµ´ æµ· 浸 消 涙 涯 液 涼 æ·‘ æ·¡ æ·± æ·· æ·» 清 渇 渇 済 渉 渋 渓 減 渡 渦 温 測 港 æ¹– 湯 æ¹¾ æ¹¾ 湿 満 æº æº– æº æº¶ æ»… 滋 滑 æ» æ»ž æ»´ æ¼ æ¼‚ 漆 æ¼ æ¼” æ¼  æ¼¢ 漫 漬 漸 æ½” 潜 潟 潤 æ½® 澄 æ¿€ æ¿ æ¿ƒ æ¿« 濯 瀬 ç« ç¯ ç° ç½ ç‚‰ ç‚Š ç‚Ž ç‚­ 点 為 烈 ç„¡ 焦 然 焼 ç…™ ç…§ ç…© ç…® 熟 熱 燃 燥 爆 爵 父 片 版 牙 牛 牧 物 牲 特 犠 犬 犯 状 ç‹‚ ç‹© 独 ç‹­ 猛 猟 猪 猫 献 猶 猿 ç„ ç£ ç² çŽ„ 率 玉 王 ç ç  ç­ ç¾ çƒ ç† ç´ ç’° ç’½ 瓶 甘 甚 生 産 用 ç”° ç”° ç”± 甲 申 ç”· 町 ç”» ç•Œ ç•‘ ç•” ç•™ ç•œ ç• ç•¥ 番 ç•° 畳 ç–Ž ç–‘ ç–« ç–² ç–¾ ç—… ç—‡ ç—˜ ç—› ç—¢ ç—´ 療 ç™’ ç™– 癸 発 ç™» 白 百 çš„ 皆 皇 çš® çš¿ 盆 益 ç›— ç›› 盟 監 盤 ç›® 盲 ç›´ 相 盾 çœ çœ‹ 県 真 眠 眺 眼 ç€ ç¡ ç£ çž¬ 矛 矢 知 短 矯 石 ç ‚ ç ” ç • ç ² ç ´ ç¡ ç¡« 硬 ç¢ ç¢‘ 確 ç£ ç£¨ ç¤ ç¤Ž 示 礼 社 祈 祉 祖 祚 ç¥ ç¥ž 祥 票 祭 ç¦ ç¦„ 禅 ç¦ ç¦ ç¦Ž ç¦ ç§€ ç§ ç§‹ 科 秒 秘 租 秩 称 移 程 税 稚 種 稲 稼 稿 ç©€ ç©‚ ç© ç© ç©« ç©´ 究 空 çª çªƒ 窒 窓 窮 窯 ç«‹ ç«œ ç«  ç«¥ 端 競 竹 笑 笛 符 第 ç­† ç­‰ ç­‹ ç­’ ç­” ç­– 箇 ç®— 管 ç®± 節 範 築 篤 ç°¡ ç°¿ ç± ç±³ 粉 粋 ç²’ ç²— 粘 ç²› 粧 ç²¾ ç³– 糧 糸 ç³» ç³¾ ç´€ ç´„ ç´… ç´‹ ç´ ç´” ç´™ ç´™ ç´š ç´› ç´  ç´  ç´¡ ç´¢ ç´« ç´¯ ç´° ç´³ ç´¹ ç´º 終 組 経 çµ çµž 絡 給 çµ± çµµ 絶 çµ¹ 継 続 維 綱 網 綿 ç·Š ç· ç·‘ ç·’ ç·š ç·  ç·¨ ç·© ç·¯ ç·´ ç¸ ç¸„ 縛 縦 縫 縮 績 ç¹ ç¹Š ç¹” 繕 ç¹­ ç¹° 缶 罪 ç½® ç½° ç½² ç½· ç¾… 羊 美 群 義 ç¾½ ç¿ ç¿Œ ç¿’ ç¿» 翼 è€ è€ƒ 者 è€ è€• 耗 耳 è– èž è´ è· è‚‰ è‚Œ è‚– è‚ è‚¢ è‚¥ è‚© 肪 肯 育 肺 胃 胆 背 胎 胞 胴 胸 能 è„‚ è„… 脈 è„š 脱 脳 脹 è… è…• è…° è…¸ è…¹ 膚 膜 膨 臓 臣 臨 自 臭 至 致 興 舌 舎 舗 舞 舟 航 般 舶 船 艇 艦 良 色 芋 èŠ èŠ± 芳 芸 芽 è‹— è‹¥ 苦 英 茂 茎 茶 è‰ è’ è˜ è· èŠ èŒ è“ èœ è¯ è½ è‘‰ è‘— 葬 è’¸ è“„ 蔵 è–„ è–¦ è–ª è–ª è–« è–¬ è—¤ è—© è—» 虎 è™ è™š 虜 虞 虫 蚊 èš• 蛇 è› è›® èž è¡€ 衆 è¡Œ è¡“ è¡— è¡› è¡ è¡¡ è¡£ 表 è¡° è¡· 袋 被 è£ è£‚ 装 è£ è£• 補 裸 製 複 è¤ è¤’ 襟 襲 西 è¦ è¦† 覇 見 è¦ è¦– 覚 覧 親 観 角 解 触 言 訂 計 討 訓 託 記 訟 訪 設 許 訳 訴 診 証 è© è©” è©• è©ž è©  試 è©© è©° è©° 話 該 詳 誇 誉 誌 èª èª“ 誕 誘 語 誠 誤 説 読 誰 課 調 談 è«‹ è«– è«­ è«® 諸 諾 謀 è¬ è¬„ 謙 講 è¬ è¬¡ 謹 è­˜ è­œ è­¦ è­° è­² è­· è°· 豆 豊 豚 象 豪 è² è²ž è²  è²  財 è²¢ 貧 貧 貨 販 貫 責 貯 è²´ è²· 貸 è²» 貿 è³€ 賃 賄 資 賊 賓 è³› 賜 賞 è³  è³¢ 賦 質 è³¼ è´ˆ 赤 赦 èµ° èµ´ èµ· 超 越 趣 足 è· è·¡ è·¯ è·³ è·µ 踊 è¸ èº èº« 車 軌 è» è»’ 軟 転 軸 軽 較 載 è¼ è¼© 輪 輸 轄 è¾› 辞 è¾° è¾° è¾± è¾² 辺 è¾¼ è¿… è¿Ž è¿‘ è¿” è¿« è¿­ è¿° è¿· 追 退 é€ é€ƒ 逆 é€ é€ é€“ 途 通 é€ é€Ÿ 造 連 逮 週 進 逸 é‚ é… é‡ éŠ é‹ é éŽ é“ é“ é” é• é  é£ é© é­ é® éµ é· é¸ éº é¿ é‚„ 邦 邪 邸 郊 郎 郡 部 郭 郵 郷 都 é…‰ é…Œ é… é…’ é…” é…¢ é…ª é…¬ é…µ é…· é…¸ 醜 醸 釈 里 里 é‡ é‡Ž é‡ é‡‘ é‡ é‡£ éˆ éˆ´ 鉄 鉛 鉢 鉱 銀 銃 銅 銑 銘 銭 é‹­ 鋳 鋼 錘 錠 錬 錯 録 é› éŽ– 鎮 é¡ é˜ é‘‘ é•· é–€ é–‰ é–‹ é– é–‘ é–“ é–¢ é–£ é–¥ é–² é—˜ 阪 防 阻 附 é™ é™ é™› 院 院 陣 除 陥 陪 é™° 陳 陵 陶 陸 険 陽 éš… 隆 隊 階 éš éš” éš› éšœ éš  隣 éš· éš» 雄 雄 é›… 集 雇 雉 雌 雑 離 難 雨 雪 é›° 雲 零 é›· é›» 需 震 霊 霜 霧 露 é’ é™ éž é¢ é© é´ éŸ“ 音 韻 響 é ‚ é ƒ é … é † é  é  é ‘ é ’ é ˜ é ­ é » é ¼ é¡Œ é¡ é¡” é¡• 願 é¡ž 顧 風 飛 食 飢 飯 飲 飼 飼 飽 飾 養 餓 館 首 香 馬 駄 駄 駅 駆 é§ é¨Ž 騒 験 騰 é©š 骨 é«„ 高 髪 鬼 é­‚ é­… é­” é­š é®® 鯨 é³¥ é³´ é¶ é¹¿ 麗 麦 麻 黄 é»’ é»™ 鼓 é¼  é¼» é½¢", - 2: "‾ _ _ - ï¼ â€ â€” ― 〜 ・ ï½¥ , , 〠、 ; ï¼› : : ! ï¼ ? ? . . ‥ … 。 。 ' ï¼¼ ‘ ’ \" " “ †( ( ) ) [ ï¼» ] ï¼½ { ï½› } ï½ ã€ˆ 〉 《 》 「 ï½¢ 〠」 『 〠〠】 〔 〕 ‖ § ¶ @ ï¼  * * / ï¼ \\ & & # # % ï¼… ‰ † ‡ ′ ″ 〃 ※", - 3: "å…Œ 拼 楔 錄 鳯", - }, - "jgo": { - 0: "a á â ÇŽ b c d É› É›Ì É›Ì€ ɛ̂ ɛ̌ ɛ̄ f g h i í î Ç j k l m ḿ mÌ€ mÌ„ n Å„ ǹ nÌ„ Å‹ Å‹Ì Å‹Ì€ Å‹Ì„ É” É”Ì É”Ì‚ ɔ̌ p pf s sh t ts u ú û Ç” ʉ Ê‰Ì Ê‰Ì‚ ʉ̌ ʉ̈ v w ẅ y z ꞌ", - 2: "- , ; : ! ? . ‹ › « »", - 3: "e o q r x", - 5: "A B C D Æ F G H I J K L M N ÅŠ Ɔ P Pf S Sh T Ts U É„ Ʉ̈ V W Ẅ Y Z êž‹", - }, - "jmc": { - 0: "a b c d e f g h i j k l m n o p r s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x", - 5: "A B C D E F G H I J K L M N O P R S T U V W Y Z", - }, - "ka": { - 0: "რბ გ დ ე ვ ზ თ ი კ ლ მ ნ რპ ჟ რ ს ტ უ ფ ქ ღ ყ შ ჩ ც ძ წ ჭ ხ ჯ ჰ", - 2: "- †– — , ; : ! ? . … ჻ ' ‘ ‚ “ „ « » ( ) [ ] { } § @ * / & # † ‡ ′ ″ â„–", - 3: "ჱ ჲ ჳ ჴ ჵ ჶ ჷ ჸ ჹ ჺ â´€ â´ â´‚ â´ƒ â´„ â´… â´† â´¡ â´‡ â´ˆ â´‰ â´Š â´‹ â´Œ â´¢ â´ â´Ž â´ â´ â´‘ â´’ â´£ â´“ â´” â´• â´– â´— â´˜ â´™ â´š â´› â´œ â´ â´ž â´¤ â´Ÿ â´  â´¥", - 5: "რბ გ დ ე ვ ზ თ ი კ ლ მ ნ რპ ჟ რ ს ტ უ ფ ქ ღ ყ შ ჩ ც ძ წ ჭ ხ ჯ ჰ", - }, - "kab": { - 0: "a b c Ä d Ḡe É› f g ǧ É£ h ḥ i j k l m n p q r á¹› s á¹£ t á¹­ u w x y z ẓ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "o v", - 5: "A B C ÄŒ D Ḍ E Æ F G Ǧ Æ” H Ḥ I J K L M N P Q R Ṛ S á¹¢ T Ṭ U W X Y Z Ẓ", - }, - "kam": { - 0: "a b c d e f g h i Ä© j k l m n o p q r s t u Å© v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "kde": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "kea": { - 0: "a b d dj e f g i j k l lh m n nh o p r s t tx u v x z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á à ă â Ã¥ ä ã Ä Ã¦ c ç é è Ä• ê ë Ä“ h í ì Ä­ î ï Ä« ñ ó ò Šô ö õ ø Å Å“ q ú ù Å­ û ü Å« w y ÿ", - 5: "A B D E F G H I J K L M N O P R S T U V X Z", - }, - "khq": { - 0: "a ã b c d e ẽ f g h i j k l m n ɲ Å‹ o õ p q r s Å¡ t u w x y z ž", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "v", - 5: "A à B C D E Ẽ F G H I J K L M N Æ ÅŠ O Õ P Q R S Å  T U W X Y Z Ž", - }, - "ki": { - 0: "a b c d e g h i Ä© j k m n o r t u Å© w y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "f l p q s v x z", - 5: "A B C D E G H I J K M N O R T U W Y", - }, - "kk": { - 0: "а Ó™ б в г Ò“ д е Ñ‘ ж з и й к Ò› л м н Ò£ о Ó© п Ñ€ Ñ Ñ‚ у Ò± Ò¯ Ñ„ Ñ… Ò» ц ч ш щ ÑŠ Ñ‹ Ñ– ÑŒ Ñ ÑŽ Ñ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "Ð Ó˜ Б Ð’ Г Ò’ Д Е РЖ З И Й К Òš Л Ðœ Ð Ò¢ О Ó¨ П Р С Т У Ò° Ò® Ф Ð¥ Òº Ц Ч Ш Щ Ъ Ы І Ь Э Ю Я", - }, - "kkj": { - 0: "a á à â a̧ b É“ c d É— É—y e é è ê É› É›Ì É›Ì€ ɛ̂ ɛ̧ f g gb gw h i í ì î i̧ j k kp kw l m mb n nd ÇŒ ny Å‹ Å‹g Å‹gb Å‹gw o ó ò ô É” É”Ì É”Ì€ ɔ̂ ɔ̧ p r s t u ú ù û u̧ v w y", - 2: ", : ! ? . … ‘ ‹ › “ †« » ( ) *", - 3: "q x z", - 5: "A B Æ C D ÆŠ ÆŠy E Æ F G Gb Gw H I I̧ J K Kp Kw L M Mb N Nd Ç‹ Ny ÅŠ ÅŠg ÅŠgb ÅŠgw O Ɔ Ɔ̧ P R S T U U̧ V W Y", - }, - "kl": { - 0: "a á â ã b c d e é ê f g h i í î Ä© j k l m n o ô p q ĸ r s t u ú û Å© v w x y z æ ø Ã¥", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "kln": { - 0: "a b c d e g h i j k l m n o p r s t u w y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "f q v x z", - 5: "A B C D E G H I J K L M N O P R S T U W Y", - }, - "km": { - 0: "៌ ៎ ០៑ ០ៈ ់ ៉ ៊ ០ក áž áž‚ ឃ áž„ áž… ឆ ជ ឈ ញ ដ áž‹ ឌ ហណ áž áž áž‘ áž’ áž“ áž” áž• áž– áž— ម áž™ ážš áž« ឬ áž› áž­ áž® ážœ ស áž  áž¡ អ áž² ឪ អា ឥ ឦ ឧ ឧក áž© ឯ áž° áž± áž³ ា áž· ី áž¹ ឺ áž» áž¼ áž½ áž¾ áž¿ ៀ ០ែ ៃ ោ ៅ ំ ះ ្", - 2: "- , ៖ ! ? . ។ ៕ ‘ ’ \" “ †( ) [ ] { } ៙ ៚", - 3: "áž´ ážµ \u200b áž ážž", - }, - "kn": { - 0: "಼ ೦ ೧ ೨ ೩ ೪ ೫ ೬ à³­ à³® ೯ ಅ ಆ ಇ ಈ ಉ ಊ ಋ à³  ಌ ೡ ಎ ಠಠಒ ಓ ಔ ಂ ಃ ಕ ಖ ಗ ಘ ಙ ಚ ಛ ಜ ಠಞ ಟ ಠ ಡ ಢ ಣ ತ ಥ ದ ಧ ನ ಪ ಫ ಬ ಭ ಮ ಯ ರ ಱ ಲ ವ ಶ ಷ ಸ ಹ ಳ ೞ ಽ ಾ ಿ à³€ ೠೂ ೃ ೄ ೆ ೇ ೈ ೊ ೋ ೌ ೠೕ à³–", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d", - }, - "ko": { - 0: "ê°€ ê°€ ê° ê°‚ ê°ƒ ê°„ ê°… ê°† ê°‡ ê°ˆ ê°‰ ê°Š ê°‹ ê°Œ ê° ê°Ž ê° ê° ê°‘ ê°’ ê°“ ê°” ê°• ê°– ê°— ê°˜ ê°™ ê°š ê°› ê°œ ê° ê°ž ê°Ÿ ê°  ê°¡ ê°¢ ê°£ ê°¤ ê°¥ ê°¦ ê°§ ê°¨ ê°© ê°ª ê°« ê°¬ ê°­ ê°® ê°¯ ê°° ê°± ê°² ê°³ ê°´ ê°µ ê°¶ ê°· ê°¸ ê°¹ ê°º ê°» ê°¼ ê°½ ê°¾ ê°¿ ê±€ ê± ê±‚ 걃 걄 ê±… 걆 걇 걈 걉 걊 걋 걌 ê± ê±Ž ê± ê± ê±‘ ê±’ 걓 ê±” 걕 ê±– ê±— 걘 ê±™ 걚 ê±› 걜 ê± ê±ž 걟 ê±  걡 ê±¢ ê±£ 걤 ê±¥ 걦 걧 걨 걩 걪 걫 걬 ê±­ ê±® 걯 ê±° ê±± ê±² ê±³ ê±´ ê±µ 걶 ê±· 걸 ê±¹ 걺 ê±» ê±¼ ê±½ ê±¾ 걿 ê²€ ê² ê²‚ 것 겄 ê²… 겆 겇 겈 겉 겊 겋 게 ê² ê²Ž ê² ê² ê²‘ ê²’ 겓 ê²” 겕 ê²– ê²— 겘 ê²™ 겚 ê²› 겜 ê² ê²ž 겟 ê²  겡 ê²¢ ê²£ 겤 ê²¥ 겦 겧 겨 격 겪 겫 견 ê²­ ê²® 겯 ê²° ê²± ê²² ê²³ ê²´ ê²µ 겶 ê²· 겸 ê²¹ 겺 ê²» ê²¼ ê²½ ê²¾ 겿 ê³€ ê³ ê³‚ 곃 계 ê³… 곆 곇 곈 곉 곊 곋 곌 ê³ ê³Ž ê³ ê³ ê³‘ ê³’ 곓 ê³” 곕 ê³– ê³— 곘 ê³™ 곚 ê³› 곜 ê³ ê³ž 곟 ê³  곡 ê³¢ ê³£ 곤 ê³¥ 곦 곧 골 곩 곪 곫 곬 ê³­ ê³® 곯 ê³° ê³± ê³² ê³³ ê³´ ê³µ 곶 ê³· 곸 ê³¹ 곺 ê³» ê³¼ ê³½ ê³¾ 곿 ê´€ ê´ ê´‚ ê´ƒ ê´„ ê´… ê´† ê´‡ ê´ˆ ê´‰ ê´Š ê´‹ ê´Œ ê´ ê´Ž ê´ ê´ ê´‘ ê´’ ê´“ ê´” ê´• ê´– ê´— ê´˜ ê´™ ê´š ê´› ê´œ ê´ ê´ž ê´Ÿ ê´  ê´¡ ê´¢ ê´£ ê´¤ ê´¥ ê´¦ ê´§ ê´¨ ê´© ê´ª ê´« ê´¬ ê´­ ê´® ê´¯ ê´° ê´± ê´² ê´³ ê´´ ê´µ ê´¶ ê´· ê´¸ ê´¹ ê´º ê´» ê´¼ ê´½ ê´¾ ê´¿ êµ€ êµ êµ‚ 굃 굄 êµ… 굆 굇 굈 굉 굊 굋 굌 êµ êµŽ êµ êµ êµ‘ êµ’ 굓 êµ” 굕 êµ– êµ— 굘 êµ™ 굚 êµ› 굜 êµ êµž 굟 êµ  굡 êµ¢ êµ£ 굤 êµ¥ 굦 굧 굨 굩 굪 굫 구 êµ­ êµ® 굯 êµ° êµ± êµ² êµ³ êµ´ êµµ 굶 êµ· 굸 êµ¹ 굺 êµ» êµ¼ êµ½ êµ¾ 굿 궀 ê¶ ê¶‚ 궃 궄 궅 궆 궇 궈 궉 궊 궋 권 ê¶ ê¶Ž ê¶ ê¶ ê¶‘ 궒 궓 궔 궕 궖 궗 궘 궙 궚 궛 궜 ê¶ ê¶ž 궟 궠 궡 궢 궣 궤 궥 궦 궧 궨 궩 궪 궫 궬 궭 궮 궯 궰 궱 궲 궳 궴 궵 궶 궷 궸 궹 궺 궻 궼 궽 궾 궿 ê·€ ê· ê·‚ ê·ƒ ê·„ ê·… ê·† ê·‡ ê·ˆ ê·‰ ê·Š ê·‹ ê·Œ ê· ê·Ž ê· ê· ê·‘ ê·’ ê·“ ê·” ê·• ê·– ê·— ê·˜ ê·™ ê·š ê·› ê·œ ê· ê·ž ê·Ÿ ê·  ê·¡ ê·¢ ê·£ ê·¤ ê·¥ ê·¦ ê·§ ê·¨ ê·© ê·ª ê·« ê·¬ ê·­ ê·® ê·¯ ê·° ê·± ê·² ê·³ ê·´ ê·µ ê·¶ ê·· ê·¸ ê·¹ ê·º ê·» ê·¼ ê·½ ê·¾ ê·¿ 글 ê¸ ê¸‚ 긃 긄 긅 긆 긇 금 급 긊 긋 긌 ê¸ ê¸Ž ê¸ ê¸ ê¸‘ 긒 긓 긔 긕 긖 긗 긘 긙 긚 긛 긜 ê¸ ê¸ž 긟 긠 긡 긢 긣 긤 긥 긦 긧 긨 긩 긪 긫 긬 긭 긮 긯 기 긱 긲 긳 긴 긵 긶 긷 길 긹 긺 긻 긼 긽 긾 긿 ê¹€ ê¹ ê¹‚ 깃 깄 ê¹… 깆 깇 깈 깉 깊 깋 까 ê¹ ê¹Ž ê¹ ê¹ ê¹‘ ê¹’ 깓 ê¹” 깕 ê¹– ê¹— 깘 ê¹™ 깚 ê¹› 깜 ê¹ ê¹ž 깟 ê¹  깡 ê¹¢ ê¹£ 깤 ê¹¥ 깦 깧 깨 깩 깪 깫 깬 ê¹­ ê¹® 깯 ê¹° ê¹± ê¹² ê¹³ ê¹´ ê¹µ 깶 ê¹· 깸 ê¹¹ 깺 ê¹» ê¹¼ ê¹½ ê¹¾ 깿 꺀 êº êº‚ 꺃 꺄 꺅 꺆 꺇 꺈 꺉 꺊 꺋 꺌 êº êºŽ êº êº êº‘ 꺒 꺓 꺔 꺕 꺖 꺗 꺘 꺙 꺚 꺛 꺜 êº êºž 꺟 꺠 꺡 꺢 꺣 꺤 꺥 꺦 꺧 꺨 꺩 꺪 꺫 꺬 꺭 꺮 꺯 꺰 꺱 꺲 꺳 꺴 꺵 꺶 꺷 꺸 꺹 꺺 꺻 꺼 꺽 꺾 꺿 껀 ê» ê»‚ 껃 껄 ê»… 껆 껇 껈 껉 껊 껋 껌 ê» ê»Ž ê» ê» ê»‘ ê»’ 껓 ê»” 껕 ê»– ê»— 께 ê»™ 껚 ê»› 껜 ê» ê»ž 껟 ê»  껡 껢 껣 껤 껥 껦 껧 껨 껩 껪 껫 껬 ê»­ ê»® 껯 ê»° ê»± 껲 껳 ê»´ 껵 껶 ê»· 껸 껹 껺 ê»» 껼 껽 껾 껿 ê¼€ ê¼ ê¼‚ 꼃 꼄 ê¼… 꼆 꼇 꼈 꼉 꼊 꼋 꼌 ê¼ ê¼Ž ê¼ ê¼ ê¼‘ ê¼’ 꼓 ê¼” 꼕 ê¼– ê¼— 꼘 ê¼™ 꼚 ê¼› 꼜 ê¼ ê¼ž 꼟 ê¼  꼡 ê¼¢ ê¼£ 꼤 ê¼¥ 꼦 꼧 꼨 꼩 꼪 꼫 꼬 ê¼­ ê¼® 꼯 ê¼° ê¼± ê¼² ê¼³ ê¼´ ê¼µ 꼶 ê¼· 꼸 ê¼¹ 꼺 ê¼» ê¼¼ ê¼½ ê¼¾ 꼿 ê½€ ê½ ê½‚ 꽃 꽄 ê½… 꽆 꽇 꽈 꽉 꽊 꽋 꽌 ê½ ê½Ž ê½ ê½ ê½‘ ê½’ 꽓 ê½” 꽕 ê½– ê½— 꽘 ê½™ 꽚 ê½› 꽜 ê½ ê½ž 꽟 ê½  꽡 ê½¢ ê½£ 꽤 ê½¥ 꽦 꽧 꽨 꽩 꽪 꽫 꽬 ê½­ ê½® 꽯 ê½° ê½± ê½² ê½³ ê½´ ê½µ 꽶 ê½· 꽸 ê½¹ 꽺 ê½» ê½¼ ê½½ ê½¾ 꽿 ê¾€ ê¾ ê¾‚ 꾃 꾄 ê¾… 꾆 꾇 꾈 꾉 꾊 꾋 꾌 ê¾ ê¾Ž ê¾ ê¾ ê¾‘ ê¾’ 꾓 ê¾” 꾕 ê¾– ê¾— 꾘 ê¾™ 꾚 ê¾› 꾜 ê¾ ê¾ž 꾟 ê¾  꾡 ê¾¢ ê¾£ 꾤 ê¾¥ 꾦 꾧 꾨 꾩 꾪 꾫 꾬 ê¾­ ê¾® 꾯 ê¾° ê¾± ê¾² ê¾³ ê¾´ ê¾µ 꾶 ê¾· 꾸 ê¾¹ 꾺 ê¾» ê¾¼ ê¾½ ê¾¾ 꾿 ê¿€ ê¿ ê¿‚ 꿃 ê¿„ ê¿… 꿆 꿇 꿈 꿉 ê¿Š ê¿‹ ê¿Œ ê¿ ê¿Ž ê¿ ê¿ ê¿‘ ê¿’ ê¿“ ê¿” ê¿• ê¿– ê¿— 꿘 ê¿™ ê¿š ê¿› ê¿œ ê¿ ê¿ž ê¿Ÿ ê¿  ê¿¡ ê¿¢ ê¿£ 꿤 ê¿¥ 꿦 꿧 꿨 ê¿© 꿪 ê¿« 꿬 ê¿­ ê¿® 꿯 ê¿° 꿱 꿲 꿳 ê¿´ 꿵 꿶 ê¿· 꿸 꿹 꿺 ê¿» 꿼 꿽 꿾 ê¿¿ 뀀 ë€ ë€‚ 뀃 뀄 뀅 뀆 뀇 뀈 뀉 뀊 뀋 뀌 ë€ ë€Ž ë€ ë€ ë€‘ 뀒 뀓 뀔 뀕 뀖 뀗 뀘 뀙 뀚 뀛 뀜 ë€ ë€ž 뀟 뀠 뀡 뀢 뀣 뀤 뀥 뀦 뀧 뀨 뀩 뀪 뀫 뀬 뀭 뀮 뀯 뀰 뀱 뀲 뀳 뀴 뀵 뀶 뀷 뀸 뀹 뀺 뀻 뀼 뀽 뀾 뀿 ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ë‚€ ë‚ ë‚‚ 낃 ë‚„ ë‚… 낆 낇 낈 낉 ë‚Š ë‚‹ ë‚Œ ë‚ ë‚Ž ë‚ ë‚ ë‚‘ ë‚’ ë‚“ ë‚” ë‚• ë‚– ë‚— 나 ë‚™ ë‚š ë‚› ë‚œ ë‚ ë‚ž ë‚Ÿ ë‚  ë‚¡ ë‚¢ ë‚£ 낤 ë‚¥ 낦 낧 남 ë‚© 낪 ë‚« 났 ë‚­ ë‚® 낯 ë‚° 낱 낲 낳 ë‚´ 낵 낶 ë‚· 낸 낹 낺 ë‚» 낼 낽 낾 ë‚¿ 냀 ëƒ ëƒ‚ 냃 냄 냅 냆 냇 냈 냉 냊 냋 냌 ëƒ ëƒŽ ëƒ ëƒ ëƒ‘ 냒 냓 냔 냕 냖 냗 냘 냙 냚 냛 냜 ëƒ ëƒž 냟 냠 냡 냢 냣 냤 냥 냦 냧 냨 냩 냪 냫 냬 냭 냮 냯 냰 냱 냲 냳 냴 냵 냶 냷 냸 냹 냺 냻 냼 냽 냾 냿 ë„€ ë„ ë„‚ 넃 ë„„ ë„… 넆 넇 너 넉 ë„Š ë„‹ ë„Œ ë„ ë„Ž ë„ ë„ ë„‘ ë„’ ë„“ ë„” ë„• ë„– ë„— 넘 ë„™ ë„š ë„› ë„œ ë„ ë„ž ë„Ÿ ë„  ë„¡ ë„¢ ë„£ 네 ë„¥ 넦 넧 넨 ë„© 넪 ë„« 넬 ë„­ ë„® 넯 ë„° 넱 넲 넳 ë„´ 넵 넶 ë„· 넸 넹 넺 ë„» 넼 넽 넾 ë„¿ ë…€ ë… ë…‚ ë…ƒ ë…„ ë…… ë…† ë…‡ ë…ˆ ë…‰ ë…Š ë…‹ ë…Œ ë… ë…Ž ë… ë… ë…‘ ë…’ ë…“ ë…” ë…• ë…– ë…— ë…˜ ë…™ ë…š ë…› ë…œ ë… ë…ž ë…Ÿ ë…  ë…¡ ë…¢ ë…£ ë…¤ ë…¥ ë…¦ ë…§ ë…¨ ë…© ë…ª ë…« ë…¬ ë…­ ë…® ë…¯ ë…° ë…± ë…² ë…³ ë…´ ë…µ ë…¶ ë…· ë…¸ ë…¹ ë…º ë…» ë…¼ ë…½ ë…¾ ë…¿ 놀 ë† ë†‚ 놃 놄 놅 놆 놇 놈 놉 놊 놋 놌 ë† ë†Ž ë† ë† ë†‘ 높 놓 놔 놕 놖 놗 놘 놙 놚 놛 놜 ë† ë†ž 놟 놠 놡 놢 놣 놤 놥 놦 놧 놨 놩 놪 놫 놬 놭 놮 놯 놰 놱 놲 놳 놴 놵 놶 놷 놸 놹 놺 놻 놼 놽 놾 놿 뇀 ë‡ ë‡‚ 뇃 뇄 뇅 뇆 뇇 뇈 뇉 뇊 뇋 뇌 ë‡ ë‡Ž ë‡ ë‡ ë‡‘ 뇒 뇓 뇔 뇕 뇖 뇗 뇘 뇙 뇚 뇛 뇜 ë‡ ë‡ž 뇟 뇠 뇡 뇢 뇣 뇤 뇥 뇦 뇧 뇨 뇩 뇪 뇫 뇬 뇭 뇮 뇯 뇰 뇱 뇲 뇳 뇴 뇵 뇶 뇷 뇸 뇹 뇺 뇻 뇼 뇽 뇾 뇿 눀 ëˆ ëˆ‚ 눃 누 눅 눆 눇 눈 눉 눊 눋 눌 ëˆ ëˆŽ ëˆ ëˆ ëˆ‘ 눒 눓 눔 눕 눖 눗 눘 눙 눚 눛 눜 ëˆ ëˆž 눟 눠 눡 눢 눣 눤 눥 눦 눧 눨 눩 눪 눫 눬 눭 눮 눯 눰 눱 눲 눳 눴 눵 눶 눷 눸 눹 눺 눻 눼 눽 눾 눿 뉀 ë‰ ë‰‚ 뉃 뉄 뉅 뉆 뉇 뉈 뉉 뉊 뉋 뉌 ë‰ ë‰Ž ë‰ ë‰ ë‰‘ 뉒 뉓 뉔 뉕 뉖 뉗 뉘 뉙 뉚 뉛 뉜 ë‰ ë‰ž 뉟 뉠 뉡 뉢 뉣 뉤 뉥 뉦 뉧 뉨 뉩 뉪 뉫 뉬 뉭 뉮 뉯 뉰 뉱 뉲 뉳 뉴 뉵 뉶 뉷 뉸 뉹 뉺 뉻 뉼 뉽 뉾 뉿 늀 ëŠ ëŠ‚ 늃 늄 늅 늆 늇 늈 늉 늊 늋 늌 ëŠ ëŠŽ ëŠ ëŠ ëŠ‘ 늒 늓 는 늕 늖 늗 늘 늙 늚 늛 늜 ëŠ ëŠž 늟 늠 늡 늢 늣 늤 능 늦 늧 늨 늩 늪 늫 늬 늭 늮 늯 늰 늱 늲 늳 늴 늵 늶 늷 늸 늹 늺 늻 늼 늽 늾 늿 ë‹€ ë‹ ë‹‚ 닃 ë‹„ ë‹… 닆 닇 니 닉 ë‹Š ë‹‹ ë‹Œ ë‹ ë‹Ž ë‹ ë‹ ë‹‘ ë‹’ ë‹“ ë‹” ë‹• ë‹– ë‹— 님 ë‹™ ë‹š ë‹› ë‹œ ë‹ ë‹ž ë‹Ÿ ë‹  ë‹¡ ë‹¢ ë‹£ 다 ë‹¥ 닦 닧 단 ë‹© 닪 ë‹« 달 ë‹­ ë‹® 닯 ë‹° 닱 닲 닳 ë‹´ 답 닶 ë‹· 닸 당 닺 ë‹» 닼 닽 닾 ë‹¿ 대 ëŒ ëŒ‚ 댃 댄 댅 댆 댇 댈 댉 댊 댋 댌 ëŒ ëŒŽ ëŒ ëŒ ëŒ‘ 댒 댓 댔 댕 댖 댗 댘 댙 댚 댛 댜 ëŒ ëŒž 댟 댠 댡 댢 댣 댤 댥 댦 댧 댨 댩 댪 댫 댬 댭 댮 댯 댰 댱 댲 댳 댴 댵 댶 댷 댸 댹 댺 댻 댼 댽 댾 댿 ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ëŽ€ ëŽ ëŽ‚ 뎃 뎄 뎅 뎆 뎇 뎈 뎉 뎊 뎋 뎌 ëŽ ëŽŽ ëŽ ëŽ ëŽ‘ 뎒 뎓 뎔 뎕 뎖 뎗 뎘 뎙 뎚 뎛 뎜 ëŽ ëŽž 뎟 뎠 뎡 뎢 뎣 뎤 뎥 뎦 뎧 뎨 뎩 뎪 뎫 뎬 뎭 뎮 뎯 뎰 뎱 뎲 뎳 뎴 뎵 뎶 뎷 뎸 뎹 뎺 뎻 뎼 뎽 뎾 뎿 ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ë‘€ ë‘ ë‘‚ 둃 ë‘„ ë‘… 둆 둇 둈 둉 ë‘Š ë‘‹ ë‘Œ ë‘ ë‘Ž ë‘ ë‘ ë‘‘ ë‘’ ë‘“ ë‘” ë‘• ë‘– ë‘— 둘 ë‘™ ë‘š ë‘› ë‘œ ë‘ ë‘ž ë‘Ÿ ë‘  ë‘¡ ë‘¢ ë‘£ 둤 ë‘¥ 둦 둧 둨 ë‘© 둪 ë‘« 둬 ë‘­ ë‘® 둯 ë‘° 둱 둲 둳 ë‘´ 둵 둶 ë‘· 둸 둹 둺 ë‘» 둼 둽 둾 ë‘¿ ë’€ ë’ ë’‚ ë’ƒ ë’„ ë’… ë’† ë’‡ ë’ˆ ë’‰ ë’Š ë’‹ ë’Œ ë’ ë’Ž ë’ ë’ ë’‘ ë’’ ë’“ ë’” ë’• ë’– ë’— ë’˜ ë’™ ë’š ë’› ë’œ ë’ ë’ž ë’Ÿ ë’  ë’¡ ë’¢ ë’£ ë’¤ ë’¥ ë’¦ ë’§ ë’¨ ë’© ë’ª ë’« ë’¬ ë’­ ë’® ë’¯ ë’° ë’± ë’² ë’³ ë’´ ë’µ ë’¶ ë’· ë’¸ ë’¹ ë’º ë’» ë’¼ ë’½ ë’¾ ë’¿ ë“€ ë“ ë“‚ 듃 ë“„ ë“… 듆 듇 듈 듉 ë“Š ë“‹ ë“Œ ë“ ë“Ž ë“ ë“ ë“‘ ë“’ ë““ ë“” ë“• ë“– ë“— 듘 ë“™ ë“š ë“› ë“œ ë“ ë“ž ë“Ÿ ë“  ë“¡ ë“¢ ë“£ 들 ë“¥ 듦 듧 듨 ë“© 듪 ë“« 듬 ë“­ ë“® 듯 ë“° 등 듲 듳 ë“´ 듵 듶 ë“· 듸 듹 듺 ë“» 듼 듽 듾 ë“¿ 딀 ë” ë”‚ 딃 딄 ë”… 딆 딇 딈 딉 딊 딋 딌 ë” ë”Ž ë” ë” ë”‘ ë”’ 딓 ë”” 딕 ë”– ë”— 딘 ë”™ 딚 ë”› 딜 ë” ë”ž 딟 ë”  딡 딢 딣 딤 딥 딦 딧 딨 딩 딪 딫 딬 ë”­ ë”® 딯 ë”° ë”± 딲 딳 ë”´ 딵 딶 ë”· 딸 딹 딺 ë”» 딼 딽 딾 딿 ë•€ ë• ë•‚ 땃 ë•„ ë•… 땆 땇 땈 땉 ë•Š ë•‹ ë•Œ ë• ë•Ž ë• ë• ë•‘ ë•’ ë•“ ë•” ë•• ë•– ë•— 땘 ë•™ ë•š ë•› ë•œ ë• ë•ž ë•Ÿ ë•  ë•¡ ë•¢ ë•£ 땤 ë•¥ 땦 땧 땨 ë•© 땪 ë•« 땬 ë•­ ë•® 땯 ë•° 땱 땲 땳 ë•´ 땵 땶 ë•· 땸 땹 땺 ë•» 땼 땽 땾 ë•¿ ë–€ ë– ë–‚ ë–ƒ ë–„ ë–… ë–† ë–‡ ë–ˆ ë–‰ ë–Š ë–‹ ë–Œ ë– ë–Ž ë– ë– ë–‘ ë–’ ë–“ ë–” ë–• ë–– ë–— ë–˜ ë–™ ë–š ë–› ë–œ ë– ë–ž ë–Ÿ ë–  ë–¡ ë–¢ ë–£ ë–¤ ë–¥ ë–¦ ë–§ ë–¨ ë–© ë–ª ë–« ë–¬ ë–­ ë–® ë–¯ ë–° ë–± ë–² ë–³ ë–´ ë–µ ë–¶ ë–· ë–¸ ë–¹ ë–º ë–» ë–¼ ë–½ ë–¾ ë–¿ ë—€ ë— ë—‚ ë—ƒ ë—„ ë—… ë—† ë—‡ ë—ˆ ë—‰ ë—Š ë—‹ ë—Œ ë— ë—Ž ë— ë— ë—‘ ë—’ ë—“ ë—” ë—• ë—– ë—— ë—˜ ë—™ ë—š ë—› ë—œ ë— ë—ž ë—Ÿ ë—  ë—¡ ë—¢ ë—£ ë—¤ ë—¥ ë—¦ ë—§ ë—¨ ë—© ë—ª ë—« ë—¬ ë—­ ë—® ë—¯ ë—° ë—± ë—² ë—³ ë—´ ë—µ ë—¶ ë—· ë—¸ ë—¹ ë—º ë—» ë—¼ ë—½ ë—¾ ë—¿ 똀 ë˜ ë˜‚ 똃 똄 똅 똆 똇 똈 똉 똊 똋 똌 ë˜ ë˜Ž ë˜ ë˜ ë˜‘ 똒 똓 똔 똕 똖 똗 똘 똙 똚 똛 똜 ë˜ ë˜ž 똟 똠 똡 똢 똣 똤 똥 똦 똧 똨 똩 똪 똫 똬 똭 똮 똯 똰 똱 똲 똳 똴 똵 똶 똷 똸 똹 똺 똻 똼 똽 똾 똿 뙀 ë™ ë™‚ 뙃 뙄 ë™… 뙆 뙇 뙈 뙉 뙊 뙋 뙌 ë™ ë™Ž ë™ ë™ ë™‘ ë™’ 뙓 ë™” 뙕 ë™– ë™— 뙘 ë™™ 뙚 ë™› 뙜 ë™ ë™ž 뙟 ë™  뙡 뙢 뙣 뙤 뙥 뙦 뙧 뙨 뙩 뙪 뙫 뙬 ë™­ ë™® 뙯 ë™° ë™± 뙲 뙳 ë™´ 뙵 뙶 ë™· 뙸 뙹 뙺 ë™» 뙼 뙽 뙾 뙿 뚀 ëš ëš‚ 뚃 ëš„ ëš… 뚆 뚇 뚈 뚉 뚊 ëš‹ 뚌 ëš ëšŽ ëš ëš ëš‘ ëš’ ëš“ ëš” ëš• ëš– ëš— 뚘 ëš™ ëšš ëš› ëšœ ëš ëšž 뚟 ëš  ëš¡ 뚢 뚣 뚤 뚥 뚦 뚧 뚨 ëš© 뚪 ëš« 뚬 ëš­ ëš® 뚯 ëš° ëš± ëš² ëš³ ëš´ ëšµ 뚶 ëš· 뚸 ëš¹ 뚺 ëš» ëš¼ ëš½ ëš¾ ëš¿ 뛀 ë› ë›‚ 뛃 뛄 ë›… 뛆 뛇 뛈 뛉 뛊 뛋 뛌 ë› ë›Ž ë› ë› ë›‘ ë›’ 뛓 ë›” 뛕 ë›– ë›— 뛘 ë›™ 뛚 ë›› 뛜 ë› ë›ž 뛟 ë›  뛡 뛢 뛣 뛤 뛥 뛦 뛧 뛨 뛩 뛪 뛫 뛬 ë›­ ë›® 뛯 ë›° ë›± 뛲 뛳 ë›´ 뛵 뛶 ë›· 뛸 뛹 뛺 ë›» 뛼 뛽 뛾 뛿 뜀 ëœ ëœ‚ 뜃 뜄 뜅 뜆 뜇 뜈 뜉 뜊 뜋 뜌 ëœ ëœŽ ëœ ëœ ëœ‘ 뜒 뜓 뜔 뜕 뜖 뜗 뜘 뜙 뜚 뜛 뜜 ëœ ëœž 뜟 뜠 뜡 뜢 뜣 뜤 뜥 뜦 뜧 뜨 뜩 뜪 뜫 뜬 뜭 뜮 뜯 뜰 뜱 뜲 뜳 뜴 뜵 뜶 뜷 뜸 뜹 뜺 뜻 뜼 뜽 뜾 뜿 ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ëž€ ëž ëž‚ 랃 ëž„ ëž… 랆 랇 랈 랉 랊 ëž‹ 람 ëž ëžŽ ëž ëž ëž‘ ëž’ ëž“ ëž” ëž• ëž– ëž— 래 ëž™ ëžš ëž› ëžœ ëž ëžž 랟 ëž  ëž¡ 랢 랣 랤 랥 랦 랧 램 ëž© 랪 ëž« 랬 ëž­ ëž® 랯 ëž° ëž± ëž² ëž³ ëž´ ëžµ 랶 ëž· 랸 ëž¹ 랺 ëž» ëž¼ ëž½ ëž¾ ëž¿ 럀 ëŸ ëŸ‚ 럃 럄 럅 럆 럇 럈 량 럊 럋 럌 ëŸ ëŸŽ ëŸ ëŸ ëŸ‘ 럒 럓 럔 럕 럖 럗 럘 럙 럚 럛 럜 ëŸ ëŸž 럟 럠 럡 럢 럣 럤 럥 럦 럧 럨 럩 럪 럫 러 럭 럮 럯 런 럱 럲 럳 럴 럵 럶 럷 럸 럹 럺 럻 럼 럽 럾 럿 ë € ë  ë ‚ ë ƒ ë „ ë … ë † ë ‡ ë ˆ ë ‰ ë Š ë ‹ ë Œ ë  ë Ž ë  ë  ë ‘ ë ’ ë “ ë ” ë • ë – ë — ë ˜ ë ™ ë š ë › ë œ ë  ë ž ë Ÿ ë   ë ¡ ë ¢ ë £ ë ¤ ë ¥ ë ¦ ë § ë ¨ ë © ë ª ë « ë ¬ ë ­ ë ® ë ¯ ë ° ë ± ë ² ë ³ ë ´ ë µ ë ¶ ë · ë ¸ ë ¹ ë º ë » ë ¼ ë ½ ë ¾ ë ¿ ë¡€ ë¡ ë¡‚ 롃 ë¡„ ë¡… 롆 롇 롈 롉 ë¡Š ë¡‹ ë¡Œ ë¡ ë¡Ž ë¡ ë¡ ë¡‘ ë¡’ ë¡“ ë¡” ë¡• ë¡– ë¡— 롘 ë¡™ ë¡š ë¡› ë¡œ ë¡ ë¡ž ë¡Ÿ ë¡  ë¡¡ ë¡¢ ë¡£ 롤 ë¡¥ 롦 롧 롨 ë¡© 롪 ë¡« 롬 ë¡­ ë¡® 롯 ë¡° 롱 롲 롳 ë¡´ 롵 롶 ë¡· 롸 롹 롺 ë¡» 롼 롽 롾 ë¡¿ 뢀 ë¢ ë¢‚ 뢃 뢄 뢅 뢆 뢇 뢈 뢉 뢊 뢋 뢌 ë¢ ë¢Ž ë¢ ë¢ ë¢‘ 뢒 뢓 뢔 뢕 뢖 뢗 뢘 뢙 뢚 뢛 뢜 ë¢ ë¢ž 뢟 뢠 뢡 뢢 뢣 뢤 뢥 뢦 뢧 뢨 뢩 뢪 뢫 뢬 뢭 뢮 뢯 뢰 뢱 뢲 뢳 뢴 뢵 뢶 뢷 뢸 뢹 뢺 뢻 뢼 뢽 뢾 뢿 룀 ë£ ë£‚ 룃 룄 룅 룆 룇 룈 룉 룊 룋 료 ë£ ë£Ž ë£ ë£ ë£‘ 룒 룓 룔 룕 룖 룗 룘 룙 룚 룛 룜 ë£ ë£ž 룟 룠 룡 룢 룣 룤 룥 룦 룧 루 룩 룪 룫 룬 룭 룮 룯 룰 룱 룲 룳 룴 룵 룶 룷 룸 룹 룺 룻 룼 룽 룾 룿 뤀 ë¤ ë¤‚ 뤃 뤄 뤅 뤆 뤇 뤈 뤉 뤊 뤋 뤌 ë¤ ë¤Ž ë¤ ë¤ ë¤‘ 뤒 뤓 뤔 뤕 뤖 뤗 뤘 뤙 뤚 뤛 뤜 ë¤ ë¤ž 뤟 뤠 뤡 뤢 뤣 뤤 뤥 뤦 뤧 뤨 뤩 뤪 뤫 뤬 뤭 뤮 뤯 뤰 뤱 뤲 뤳 뤴 뤵 뤶 뤷 뤸 뤹 뤺 뤻 뤼 뤽 뤾 뤿 륀 ë¥ ë¥‚ 륃 륄 륅 륆 륇 륈 륉 륊 륋 륌 ë¥ ë¥Ž ë¥ ë¥ ë¥‘ 륒 륓 륔 륕 륖 륗 류 륙 륚 륛 륜 ë¥ ë¥ž 륟 률 륡 륢 륣 륤 륥 륦 륧 륨 륩 륪 륫 륬 륭 륮 륯 륰 륱 륲 륳 르 륵 륶 륷 른 륹 륺 륻 를 륽 륾 륿 릀 ë¦ ë¦‚ 릃 름 릅 릆 릇 릈 릉 릊 릋 릌 ë¦ ë¦Ž ë¦ ë¦ ë¦‘ 릒 릓 릔 릕 릖 릗 릘 릙 릚 릛 릜 ë¦ ë¦ž 릟 릠 릡 릢 릣 릤 릥 릦 릧 릨 릩 릪 릫 리 릭 릮 릯 린 릱 릲 릳 릴 릵 릶 릷 릸 릹 릺 릻 림 립 릾 릿 맀 ë§ ë§‚ 맃 맄 맅 맆 맇 마 막 맊 맋 만 ë§ ë§Ž ë§ ë§ ë§‘ 맒 맓 맔 맕 맖 맗 맘 맙 맚 맛 맜 ë§ ë§ž 맟 맠 맡 맢 맣 매 맥 맦 맧 맨 맩 맪 맫 맬 맭 맮 맯 맰 맱 맲 맳 맴 맵 맶 맷 맸 맹 맺 맻 맼 맽 맾 맿 먀 ë¨ ë¨‚ 먃 먄 먅 먆 먇 먈 먉 먊 먋 먌 ë¨ ë¨Ž ë¨ ë¨ ë¨‘ 먒 먓 먔 먕 먖 먗 먘 먙 먚 먛 먜 ë¨ ë¨ž 먟 먠 먡 먢 먣 먤 먥 먦 먧 먨 먩 먪 먫 먬 먭 먮 먯 먰 먱 먲 먳 먴 먵 먶 먷 머 먹 먺 먻 먼 먽 먾 먿 ë©€ ë© ë©‚ 멃 ë©„ ë©… 멆 멇 멈 멉 ë©Š ë©‹ ë©Œ ë© ë©Ž ë© ë© ë©‘ ë©’ ë©“ ë©” ë©• ë©– ë©— 멘 ë©™ ë©š ë©› ë©œ ë© ë©ž ë©Ÿ ë©  ë©¡ ë©¢ ë©£ 멤 ë©¥ 멦 멧 멨 ë©© 멪 ë©« 멬 ë©­ ë©® 멯 ë©° 멱 멲 멳 ë©´ 멵 멶 ë©· 멸 멹 멺 ë©» 멼 멽 멾 ë©¿ 몀 ëª ëª‚ 몃 몄 명 몆 몇 몈 몉 몊 몋 몌 ëª ëªŽ ëª ëª ëª‘ 몒 몓 몔 몕 몖 몗 몘 몙 몚 몛 몜 ëª ëªž 몟 몠 몡 몢 몣 몤 몥 몦 몧 모 목 몪 몫 몬 몭 몮 몯 몰 몱 몲 몳 몴 몵 몶 몷 몸 몹 몺 못 몼 몽 몾 몿 ë«€ ë« ë«‚ 뫃 ë«„ ë«… 뫆 뫇 뫈 뫉 ë«Š ë«‹ ë«Œ ë« ë«Ž ë« ë« ë«‘ ë«’ ë«“ ë«” ë«• ë«– ë«— 뫘 ë«™ ë«š ë«› ë«œ ë« ë«ž ë«Ÿ ë«  ë«¡ ë«¢ ë«£ 뫤 ë«¥ 뫦 뫧 뫨 ë«© 뫪 ë«« 뫬 ë«­ ë«® 뫯 ë«° 뫱 뫲 뫳 ë«´ 뫵 뫶 ë«· 뫸 뫹 뫺 ë«» 뫼 뫽 뫾 ë«¿ 묀 ë¬ ë¬‚ 묃 묄 묅 묆 묇 묈 묉 묊 묋 묌 ë¬ ë¬Ž ë¬ ë¬ ë¬‘ 묒 묓 묔 묕 묖 묗 묘 묙 묚 묛 묜 ë¬ ë¬ž 묟 묠 묡 묢 묣 묤 묥 묦 묧 묨 묩 묪 묫 묬 묭 묮 묯 묰 묱 묲 묳 무 묵 묶 묷 문 묹 묺 묻 물 묽 묾 묿 ë­€ ë­ ë­‚ ë­ƒ ë­„ ë­… ë­† ë­‡ ë­ˆ ë­‰ ë­Š ë­‹ ë­Œ ë­ ë­Ž ë­ ë­ ë­‘ ë­’ ë­“ ë­” ë­• ë­– ë­— ë­˜ ë­™ ë­š ë­› ë­œ ë­ ë­ž ë­Ÿ ë­  ë­¡ ë­¢ ë­£ ë­¤ ë­¥ ë­¦ ë­§ ë­¨ ë­© ë­ª ë­« ë­¬ ë­­ ë­® ë­¯ ë­° ë­± ë­² ë­³ ë­´ ë­µ ë­¶ ë­· ë­¸ ë­¹ ë­º ë­» ë­¼ ë­½ ë­¾ ë­¿ 뮀 ë® ë®‚ 뮃 뮄 ë®… 뮆 뮇 뮈 뮉 뮊 뮋 뮌 ë® ë®Ž ë® ë® ë®‘ ë®’ 뮓 ë®” 뮕 ë®– ë®— 뮘 ë®™ 뮚 ë®› 뮜 ë® ë®ž 뮟 ë®  뮡 뮢 뮣 뮤 뮥 뮦 뮧 뮨 뮩 뮪 뮫 뮬 ë®­ ë®® 뮯 ë®° ë®± 뮲 뮳 ë®´ 뮵 뮶 ë®· 뮸 뮹 뮺 ë®» 뮼 뮽 뮾 뮿 므 ë¯ ë¯‚ 믃 믄 믅 믆 믇 믈 믉 믊 믋 믌 ë¯ ë¯Ž ë¯ ë¯ ë¯‘ 믒 믓 믔 믕 믖 믗 믘 믙 믚 믛 믜 ë¯ ë¯ž 믟 믠 믡 믢 믣 믤 믥 믦 믧 믨 믩 믪 믫 믬 믭 믮 믯 믰 믱 믲 믳 믴 믵 믶 믷 미 믹 믺 믻 민 믽 믾 믿 ë°€ ë° ë°‚ ë°ƒ ë°„ ë°… ë°† ë°‡ ë°ˆ ë°‰ ë°Š ë°‹ ë°Œ ë° ë°Ž ë° ë° ë°‘ ë°’ ë°“ ë°” ë°• ë°– ë°— ë°˜ ë°™ ë°š ë°› ë°œ ë° ë°ž ë°Ÿ ë°  ë°¡ ë°¢ ë°£ ë°¤ ë°¥ ë°¦ ë°§ ë°¨ ë°© ë°ª ë°« ë°¬ ë°­ ë°® ë°¯ ë°° ë°± ë°² ë°³ ë°´ ë°µ ë°¶ ë°· ë°¸ ë°¹ ë°º ë°» ë°¼ ë°½ ë°¾ ë°¿ ë±€ ë± ë±‚ 뱃 뱄 ë±… 뱆 뱇 뱈 뱉 뱊 뱋 뱌 ë± ë±Ž ë± ë± ë±‘ ë±’ 뱓 ë±” 뱕 ë±– ë±— 뱘 ë±™ 뱚 ë±› 뱜 ë± ë±ž 뱟 ë±  뱡 ë±¢ ë±£ 뱤 ë±¥ 뱦 뱧 뱨 뱩 뱪 뱫 뱬 ë±­ ë±® 뱯 ë±° ë±± ë±² ë±³ ë±´ ë±µ 뱶 ë±· 뱸 ë±¹ 뱺 ë±» ë±¼ ë±½ ë±¾ 뱿 ë²€ ë² ë²‚ 벃 버 ë²… 벆 벇 번 벉 벊 벋 벌 ë² ë²Ž ë² ë² ë²‘ ë²’ 벓 ë²” 법 ë²– ë²— 벘 ë²™ 벚 ë²› 벜 ë² ë²ž 벟 ë²  벡 ë²¢ ë²£ 벤 ë²¥ 벦 벧 벨 벩 벪 벫 벬 ë²­ ë²® 벯 ë²° ë²± ë²² ë²³ ë²´ ë²µ 벶 ë²· 벸 ë²¹ 벺 ë²» ë²¼ ë²½ ë²¾ 벿 ë³€ ë³ ë³‚ 볃 별 ë³… 볆 볇 볈 볉 볊 볋 볌 ë³ ë³Ž ë³ ë³ ë³‘ ë³’ 볓 ë³” 볕 ë³– ë³— 볘 ë³™ 볚 ë³› 볜 ë³ ë³ž 볟 ë³  볡 ë³¢ ë³£ 볤 ë³¥ 볦 볧 볨 볩 볪 볫 볬 ë³­ ë³® 볯 ë³° ë³± ë³² ë³³ ë³´ ë³µ 볶 ë³· 본 ë³¹ 볺 ë³» ë³¼ ë³½ ë³¾ 볿 ë´€ ë´ ë´‚ ë´ƒ ë´„ ë´… ë´† ë´‡ ë´ˆ ë´‰ ë´Š ë´‹ ë´Œ ë´ ë´Ž ë´ ë´ ë´‘ ë´’ ë´“ ë´” ë´• ë´– ë´— ë´˜ ë´™ ë´š ë´› ë´œ ë´ ë´ž ë´Ÿ ë´  ë´¡ ë´¢ ë´£ ë´¤ ë´¥ ë´¦ ë´§ ë´¨ ë´© ë´ª ë´« ë´¬ ë´­ ë´® ë´¯ ë´° ë´± ë´² ë´³ ë´´ ë´µ ë´¶ ë´· ë´¸ ë´¹ ë´º ë´» ë´¼ ë´½ ë´¾ ë´¿ ëµ€ ëµ ëµ‚ 뵃 뵄 ëµ… 뵆 뵇 뵈 뵉 뵊 뵋 뵌 ëµ ëµŽ ëµ ëµ ëµ‘ ëµ’ 뵓 ëµ” 뵕 ëµ– ëµ— 뵘 ëµ™ 뵚 ëµ› 뵜 ëµ ëµž 뵟 ëµ  뵡 ëµ¢ ëµ£ 뵤 ëµ¥ 뵦 뵧 뵨 뵩 뵪 뵫 뵬 ëµ­ ëµ® 뵯 ëµ° ëµ± ëµ² ëµ³ ëµ´ ëµµ 뵶 ëµ· 뵸 ëµ¹ 뵺 ëµ» ëµ¼ ëµ½ ëµ¾ 뵿 부 ë¶ ë¶‚ 붃 분 붅 붆 붇 불 붉 붊 붋 붌 ë¶ ë¶Ž ë¶ ë¶ ë¶‘ 붒 붓 붔 붕 붖 붗 붘 붙 붚 붛 붜 ë¶ ë¶ž 붟 붠 붡 붢 붣 붤 붥 붦 붧 붨 붩 붪 붫 붬 붭 붮 붯 붰 붱 붲 붳 붴 붵 붶 붷 붸 붹 붺 붻 붼 붽 붾 붿 ë·€ ë· ë·‚ ë·ƒ ë·„ ë·… ë·† ë·‡ ë·ˆ ë·‰ ë·Š ë·‹ ë·Œ ë· ë·Ž ë· ë· ë·‘ ë·’ ë·“ ë·” ë·• ë·– ë·— ë·˜ ë·™ ë·š ë·› ë·œ ë· ë·ž ë·Ÿ ë·  ë·¡ ë·¢ ë·£ ë·¤ ë·¥ ë·¦ ë·§ ë·¨ ë·© ë·ª ë·« ë·¬ ë·­ ë·® ë·¯ ë·° ë·± ë·² ë·³ ë·´ ë·µ ë·¶ ë·· ë·¸ ë·¹ ë·º ë·» ë·¼ ë·½ ë·¾ ë·¿ 븀 ë¸ ë¸‚ 븃 븄 븅 븆 븇 븈 븉 븊 븋 브 ë¸ ë¸Ž ë¸ ë¸ ë¸‘ 븒 븓 블 븕 븖 븗 븘 븙 븚 븛 븜 ë¸ ë¸ž 븟 븠 븡 븢 븣 븤 븥 븦 븧 븨 븩 븪 븫 븬 븭 븮 븯 븰 븱 븲 븳 븴 븵 븶 븷 븸 븹 븺 븻 븼 븽 븾 븿 ë¹€ ë¹ ë¹‚ 빃 비 ë¹… 빆 빇 빈 빉 빊 빋 빌 ë¹ ë¹Ž ë¹ ë¹ ë¹‘ ë¹’ 빓 ë¹” 빕 ë¹– ë¹— 빘 ë¹™ 빚 ë¹› 빜 ë¹ ë¹ž 빟 ë¹  빡 ë¹¢ ë¹£ 빤 ë¹¥ 빦 빧 빨 빩 빪 빫 빬 ë¹­ ë¹® 빯 ë¹° ë¹± ë¹² ë¹³ ë¹´ ë¹µ 빶 ë¹· 빸 ë¹¹ 빺 ë¹» ë¹¼ ë¹½ ë¹¾ 빿 뺀 ëº ëº‚ 뺃 뺄 뺅 뺆 뺇 뺈 뺉 뺊 뺋 뺌 ëº ëºŽ ëº ëº ëº‘ 뺒 뺓 뺔 뺕 뺖 뺗 뺘 뺙 뺚 뺛 뺜 ëº ëºž 뺟 뺠 뺡 뺢 뺣 뺤 뺥 뺦 뺧 뺨 뺩 뺪 뺫 뺬 뺭 뺮 뺯 뺰 뺱 뺲 뺳 뺴 뺵 뺶 뺷 뺸 뺹 뺺 뺻 뺼 뺽 뺾 뺿 뻀 ë» ë»‚ 뻃 뻄 ë»… 뻆 뻇 뻈 뻉 뻊 뻋 뻌 ë» ë»Ž ë» ë» ë»‘ ë»’ 뻓 ë»” 뻕 ë»– ë»— 뻘 ë»™ 뻚 ë»› 뻜 ë» ë»ž 뻟 ë»  뻡 뻢 뻣 뻤 뻥 뻦 뻧 뻨 뻩 뻪 뻫 뻬 ë»­ ë»® 뻯 ë»° ë»± 뻲 뻳 ë»´ 뻵 뻶 ë»· 뻸 뻹 뻺 ë»» 뻼 뻽 뻾 뻿 ë¼€ ë¼ ë¼‚ 뼃 뼄 ë¼… 뼆 뼇 뼈 뼉 뼊 뼋 뼌 ë¼ ë¼Ž ë¼ ë¼ ë¼‘ ë¼’ 뼓 ë¼” 뼕 ë¼– ë¼— 뼘 ë¼™ 뼚 ë¼› 뼜 ë¼ ë¼ž 뼟 ë¼  뼡 ë¼¢ ë¼£ 뼤 ë¼¥ 뼦 뼧 뼨 뼩 뼪 뼫 뼬 ë¼­ ë¼® 뼯 ë¼° ë¼± ë¼² ë¼³ ë¼´ ë¼µ 뼶 ë¼· 뼸 ë¼¹ 뼺 ë¼» ë¼¼ ë¼½ ë¼¾ 뼿 ë½€ ë½ ë½‚ 뽃 뽄 ë½… 뽆 뽇 뽈 뽉 뽊 뽋 뽌 ë½ ë½Ž ë½ ë½ ë½‘ ë½’ 뽓 ë½” 뽕 ë½– ë½— 뽘 ë½™ 뽚 ë½› 뽜 ë½ ë½ž 뽟 ë½  뽡 ë½¢ ë½£ 뽤 ë½¥ 뽦 뽧 뽨 뽩 뽪 뽫 뽬 ë½­ ë½® 뽯 ë½° ë½± ë½² ë½³ ë½´ ë½µ 뽶 ë½· 뽸 ë½¹ 뽺 ë½» ë½¼ ë½½ ë½¾ 뽿 ë¾€ ë¾ ë¾‚ 뾃 뾄 ë¾… 뾆 뾇 뾈 뾉 뾊 뾋 뾌 ë¾ ë¾Ž ë¾ ë¾ ë¾‘ ë¾’ 뾓 ë¾” 뾕 ë¾– ë¾— 뾘 ë¾™ 뾚 ë¾› 뾜 ë¾ ë¾ž 뾟 ë¾  뾡 ë¾¢ ë¾£ 뾤 ë¾¥ 뾦 뾧 뾨 뾩 뾪 뾫 뾬 ë¾­ ë¾® 뾯 ë¾° ë¾± ë¾² ë¾³ ë¾´ ë¾µ 뾶 ë¾· 뾸 ë¾¹ 뾺 ë¾» ë¾¼ ë¾½ ë¾¾ 뾿 ë¿€ ë¿ ë¿‚ 뿃 ë¿„ ë¿… 뿆 뿇 뿈 뿉 ë¿Š ë¿‹ ë¿Œ ë¿ ë¿Ž ë¿ ë¿ ë¿‘ ë¿’ ë¿“ ë¿” ë¿• ë¿– ë¿— 뿘 ë¿™ ë¿š ë¿› ë¿œ ë¿ ë¿ž ë¿Ÿ ë¿  ë¿¡ ë¿¢ ë¿£ 뿤 ë¿¥ 뿦 뿧 뿨 ë¿© 뿪 ë¿« 뿬 ë¿­ ë¿® 뿯 ë¿° 뿱 뿲 뿳 ë¿´ 뿵 뿶 ë¿· 뿸 뿹 뿺 ë¿» 뿼 뿽 뿾 ë¿¿ 쀀 ì€ ì€‚ 쀃 쀄 쀅 쀆 쀇 쀈 쀉 쀊 쀋 쀌 ì€ ì€Ž ì€ ì€ ì€‘ 쀒 쀓 쀔 쀕 쀖 쀗 쀘 쀙 쀚 쀛 쀜 ì€ ì€ž 쀟 쀠 쀡 쀢 쀣 쀤 쀥 쀦 쀧 쀨 쀩 쀪 쀫 쀬 쀭 쀮 쀯 쀰 쀱 쀲 쀳 쀴 쀵 쀶 쀷 쀸 쀹 쀺 쀻 쀼 쀽 쀾 쀿 ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ì‚€ ì‚ ì‚‚ 삃 ì‚„ ì‚… 삆 삇 삈 삉 ì‚Š ì‚‹ ì‚Œ ì‚ ì‚Ž ì‚ ì‚ ì‚‘ ì‚’ ì‚“ ì‚” ì‚• ì‚– ì‚— 삘 ì‚™ ì‚š ì‚› ì‚œ ì‚ ì‚ž ì‚Ÿ ì‚  ì‚¡ ì‚¢ ì‚£ 삤 ì‚¥ 삦 삧 삨 ì‚© 삪 ì‚« 사 ì‚­ ì‚® 삯 ì‚° 삱 삲 삳 ì‚´ 삵 삶 ì‚· 삸 삹 삺 ì‚» 삼 삽 삾 ì‚¿ 샀 ìƒ ìƒ‚ 샃 샄 샅 샆 샇 새 색 샊 샋 샌 ìƒ ìƒŽ ìƒ ìƒ ìƒ‘ 샒 샓 샔 샕 샖 샗 샘 샙 샚 샛 샜 ìƒ ìƒž 샟 샠 샡 샢 샣 샤 샥 샦 샧 샨 샩 샪 샫 샬 샭 샮 샯 샰 샱 샲 샳 샴 샵 샶 샷 샸 샹 샺 샻 샼 샽 샾 샿 ì„€ ì„ ì„‚ 섃 ì„„ ì„… 섆 섇 섈 섉 ì„Š ì„‹ ì„Œ ì„ ì„Ž ì„ ì„ ì„‘ ì„’ ì„“ ì„” ì„• ì„– ì„— 섘 ì„™ ì„š ì„› ì„œ ì„ ì„ž ì„Ÿ ì„  ì„¡ ì„¢ ì„£ 설 ì„¥ 섦 섧 섨 ì„© 섪 ì„« 섬 ì„­ ì„® 섯 ì„° 성 섲 섳 ì„´ 섵 섶 ì„· 세 섹 섺 ì„» 센 섽 섾 ì„¿ ì…€ ì… ì…‚ ì…ƒ ì…„ ì…… ì…† ì…‡ ì…ˆ ì…‰ ì…Š ì…‹ ì…Œ ì… ì…Ž ì… ì… ì…‘ ì…’ ì…“ ì…” ì…• ì…– ì…— ì…˜ ì…™ ì…š ì…› ì…œ ì… ì…ž ì…Ÿ ì…  ì…¡ ì…¢ ì…£ ì…¤ ì…¥ ì…¦ ì…§ ì…¨ ì…© ì…ª ì…« ì…¬ ì…­ ì…® ì…¯ ì…° ì…± ì…² ì…³ ì…´ ì…µ ì…¶ ì…· ì…¸ ì…¹ ì…º ì…» ì…¼ ì…½ ì…¾ ì…¿ 솀 ì† ì†‚ 솃 솄 솅 솆 솇 솈 솉 솊 솋 소 ì† ì†Ž ì† ì† ì†‘ 솒 솓 솔 솕 솖 솗 솘 솙 솚 솛 솜 ì† ì†ž 솟 솠 송 솢 솣 솤 솥 솦 솧 솨 솩 솪 솫 솬 솭 솮 솯 솰 솱 솲 솳 솴 솵 솶 솷 솸 솹 솺 솻 솼 솽 솾 솿 쇀 ì‡ ì‡‚ 쇃 쇄 쇅 쇆 쇇 쇈 쇉 쇊 쇋 쇌 ì‡ ì‡Ž ì‡ ì‡ ì‡‘ 쇒 쇓 쇔 쇕 쇖 쇗 쇘 쇙 쇚 쇛 쇜 ì‡ ì‡ž 쇟 쇠 쇡 쇢 쇣 쇤 쇥 쇦 쇧 쇨 쇩 쇪 쇫 쇬 쇭 쇮 쇯 쇰 쇱 쇲 쇳 쇴 쇵 쇶 쇷 쇸 쇹 쇺 쇻 쇼 쇽 쇾 쇿 숀 ìˆ ìˆ‚ 숃 숄 숅 숆 숇 숈 숉 숊 숋 숌 ìˆ ìˆŽ ìˆ ìˆ ìˆ‘ 숒 숓 숔 숕 숖 숗 수 숙 숚 숛 순 ìˆ ìˆž 숟 술 숡 숢 숣 숤 숥 숦 숧 숨 숩 숪 숫 숬 숭 숮 숯 숰 숱 숲 숳 숴 숵 숶 숷 숸 숹 숺 숻 숼 숽 숾 숿 쉀 ì‰ ì‰‚ 쉃 쉄 쉅 쉆 쉇 쉈 쉉 쉊 쉋 쉌 ì‰ ì‰Ž ì‰ ì‰ ì‰‘ 쉒 쉓 쉔 쉕 쉖 쉗 쉘 쉙 쉚 쉛 쉜 ì‰ ì‰ž 쉟 쉠 쉡 쉢 쉣 쉤 쉥 쉦 쉧 쉨 쉩 쉪 쉫 쉬 쉭 쉮 쉯 쉰 쉱 쉲 쉳 쉴 쉵 쉶 쉷 쉸 쉹 쉺 쉻 쉼 쉽 쉾 쉿 슀 ìŠ ìŠ‚ 슃 슄 슅 슆 슇 슈 슉 슊 슋 슌 ìŠ ìŠŽ ìŠ ìŠ ìŠ‘ 슒 슓 슔 슕 슖 슗 슘 슙 슚 슛 슜 ìŠ ìŠž 슟 슠 슡 슢 슣 스 슥 슦 슧 슨 슩 슪 슫 슬 슭 슮 슯 슰 슱 슲 슳 슴 습 슶 슷 슸 승 슺 슻 슼 슽 슾 슿 ì‹€ ì‹ ì‹‚ 싃 ì‹„ ì‹… 싆 싇 싈 싉 ì‹Š ì‹‹ ì‹Œ ì‹ ì‹Ž ì‹ ì‹ ì‹‘ ì‹’ ì‹“ ì‹” ì‹• ì‹– ì‹— 싘 ì‹™ ì‹š ì‹› ì‹œ ì‹ ì‹ž ì‹Ÿ ì‹  ì‹¡ ì‹¢ ì‹£ 실 ì‹¥ 싦 싧 싨 ì‹© 싪 ì‹« 심 ì‹­ ì‹® 싯 ì‹° 싱 싲 싳 ì‹´ 싵 싶 ì‹· 싸 싹 싺 ì‹» 싼 싽 싾 ì‹¿ 쌀 ìŒ ìŒ‚ 쌃 쌄 쌅 쌆 쌇 쌈 쌉 쌊 쌋 쌌 ìŒ ìŒŽ ìŒ ìŒ ìŒ‘ 쌒 쌓 쌔 쌕 쌖 쌗 쌘 쌙 쌚 쌛 쌜 ìŒ ìŒž 쌟 쌠 쌡 쌢 쌣 쌤 쌥 쌦 쌧 쌨 쌩 쌪 쌫 쌬 쌭 쌮 쌯 쌰 쌱 쌲 쌳 쌴 쌵 쌶 쌷 쌸 쌹 쌺 쌻 쌼 쌽 쌾 쌿 ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ìŽ€ ìŽ ìŽ‚ 쎃 쎄 쎅 쎆 쎇 쎈 쎉 쎊 쎋 쎌 ìŽ ìŽŽ ìŽ ìŽ ìŽ‘ 쎒 쎓 쎔 쎕 쎖 쎗 쎘 쎙 쎚 쎛 쎜 ìŽ ìŽž 쎟 쎠 쎡 쎢 쎣 쎤 쎥 쎦 쎧 쎨 쎩 쎪 쎫 쎬 쎭 쎮 쎯 쎰 쎱 쎲 쎳 쎴 쎵 쎶 쎷 쎸 쎹 쎺 쎻 쎼 쎽 쎾 쎿 ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ì‘€ ì‘ ì‘‚ 쑃 ì‘„ ì‘… 쑆 쑇 쑈 쑉 ì‘Š ì‘‹ ì‘Œ ì‘ ì‘Ž ì‘ ì‘ ì‘‘ ì‘’ ì‘“ ì‘” ì‘• ì‘– ì‘— 쑘 ì‘™ ì‘š ì‘› ì‘œ ì‘ ì‘ž ì‘Ÿ ì‘  ì‘¡ ì‘¢ ì‘£ 쑤 ì‘¥ 쑦 쑧 쑨 ì‘© 쑪 ì‘« 쑬 ì‘­ ì‘® 쑯 ì‘° 쑱 쑲 쑳 ì‘´ 쑵 쑶 ì‘· 쑸 쑹 쑺 ì‘» 쑼 쑽 쑾 ì‘¿ ì’€ ì’ ì’‚ ì’ƒ ì’„ ì’… ì’† ì’‡ ì’ˆ ì’‰ ì’Š ì’‹ ì’Œ ì’ ì’Ž ì’ ì’ ì’‘ ì’’ ì’“ ì’” ì’• ì’– ì’— ì’˜ ì’™ ì’š ì’› ì’œ ì’ ì’ž ì’Ÿ ì’  ì’¡ ì’¢ ì’£ ì’¤ ì’¥ ì’¦ ì’§ ì’¨ ì’© ì’ª ì’« ì’¬ ì’­ ì’® ì’¯ ì’° ì’± ì’² ì’³ ì’´ ì’µ ì’¶ ì’· ì’¸ ì’¹ ì’º ì’» ì’¼ ì’½ ì’¾ ì’¿ ì“€ ì“ ì“‚ 쓃 ì“„ ì“… 쓆 쓇 쓈 쓉 ì“Š ì“‹ ì“Œ ì“ ì“Ž ì“ ì“ ì“‘ ì“’ ì““ ì“” ì“• ì“– ì“— 쓘 ì“™ ì“š ì“› ì“œ ì“ ì“ž ì“Ÿ ì“  ì“¡ ì“¢ ì“£ 쓤 ì“¥ 쓦 쓧 쓨 ì“© 쓪 ì“« 쓬 ì“­ ì“® 쓯 ì“° 쓱 쓲 쓳 ì“´ 쓵 쓶 ì“· 쓸 쓹 쓺 ì“» 쓼 쓽 쓾 ì“¿ 씀 ì” ì”‚ 씃 씄 ì”… 씆 씇 씈 씉 씊 씋 씌 ì” ì”Ž ì” ì” ì”‘ ì”’ 씓 ì”” 씕 ì”– ì”— 씘 ì”™ 씚 ì”› 씜 ì” ì”ž 씟 ì”  씡 씢 씣 씤 씥 씦 씧 씨 씩 씪 씫 씬 ì”­ ì”® 씯 ì”° ì”± 씲 씳 ì”´ 씵 씶 ì”· 씸 씹 씺 ì”» 씼 씽 씾 씿 ì•€ ì• ì•‚ 앃 ì•„ ì•… 앆 앇 안 앉 ì•Š ì•‹ ì•Œ ì• ì•Ž ì• ì• ì•‘ ì•’ ì•“ ì•” ì•• ì•– ì•— 았 ì•™ ì•š ì•› ì•œ ì• ì•ž ì•Ÿ ì•  ì•¡ ì•¢ ì•£ 앤 ì•¥ 앦 앧 앨 ì•© 앪 ì•« 앬 ì•­ ì•® 앯 ì•° 앱 앲 앳 ì•´ 앵 앶 ì•· 앸 앹 앺 ì•» 야 약 앾 ì•¿ ì–€ ì– ì–‚ ì–ƒ ì–„ ì–… ì–† ì–‡ ì–ˆ ì–‰ ì–Š ì–‹ ì–Œ ì– ì–Ž ì– ì– ì–‘ ì–’ ì–“ ì–” ì–• ì–– ì–— ì–˜ ì–™ ì–š ì–› ì–œ ì– ì–ž ì–Ÿ ì–  ì–¡ ì–¢ ì–£ ì–¤ ì–¥ ì–¦ ì–§ ì–¨ ì–© ì–ª ì–« ì–¬ ì–­ ì–® ì–¯ ì–° ì–± ì–² ì–³ ì–´ ì–µ ì–¶ ì–· ì–¸ ì–¹ ì–º ì–» ì–¼ ì–½ ì–¾ ì–¿ ì—€ ì— ì—‚ ì—ƒ ì—„ ì—… ì—† ì—‡ ì—ˆ ì—‰ ì—Š ì—‹ ì—Œ ì— ì—Ž ì— ì— ì—‘ ì—’ ì—“ ì—” ì—• ì—– ì—— ì—˜ ì—™ ì—š ì—› ì—œ ì— ì—ž ì—Ÿ ì—  ì—¡ ì—¢ ì—£ ì—¤ ì—¥ ì—¦ ì—§ ì—¨ ì—© ì—ª ì—« ì—¬ ì—­ ì—® ì—¯ ì—° ì—± ì—² ì—³ ì—´ ì—µ ì—¶ ì—· ì—¸ ì—¹ ì—º ì—» ì—¼ ì—½ ì—¾ ì—¿ 였 ì˜ ì˜‚ 옃 옄 옅 옆 옇 예 옉 옊 옋 옌 ì˜ ì˜Ž ì˜ ì˜ ì˜‘ 옒 옓 옔 옕 옖 옗 옘 옙 옚 옛 옜 ì˜ ì˜ž 옟 옠 옡 옢 옣 오 옥 옦 옧 온 옩 옪 옫 올 옭 옮 옯 옰 옱 옲 옳 옴 옵 옶 옷 옸 옹 옺 옻 옼 옽 옾 옿 와 ì™ ì™‚ 왃 완 ì™… 왆 왇 왈 왉 왊 왋 왌 ì™ ì™Ž ì™ ì™ ì™‘ ì™’ 왓 ì™” 왕 ì™– ì™— 왘 ì™™ 왚 ì™› 왜 ì™ ì™ž 왟 ì™  왡 왢 왣 왤 왥 왦 왧 왨 왩 왪 왫 왬 ì™­ ì™® 왯 ì™° ì™± 왲 왳 ì™´ 왵 왶 ì™· 외 왹 왺 ì™» 왼 왽 왾 왿 욀 ìš ìš‚ 욃 ìš„ ìš… 욆 욇 욈 욉 욊 ìš‹ 욌 ìš ìšŽ ìš ìš ìš‘ ìš’ ìš“ ìš” ìš• ìš– ìš— 욘 ìš™ ìšš ìš› ìšœ ìš ìšž 욟 ìš  ìš¡ 욢 욣 욤 욥 욦 욧 욨 ìš© 욪 ìš« 욬 ìš­ ìš® 욯 ìš° ìš± ìš² ìš³ ìš´ ìšµ 욶 ìš· 울 ìš¹ 욺 ìš» ìš¼ ìš½ ìš¾ ìš¿ 움 ì› ì›‚ 웃 웄 ì›… 웆 웇 웈 웉 웊 웋 워 ì› ì›Ž ì› ì› ì›‘ ì›’ 웓 ì›” 웕 ì›– ì›— 웘 ì›™ 웚 ì›› 웜 ì› ì›ž 웟 ì›  웡 웢 웣 웤 웥 웦 웧 웨 웩 웪 웫 웬 ì›­ ì›® 웯 ì›° ì›± 웲 웳 ì›´ 웵 웶 ì›· 웸 웹 웺 ì›» 웼 웽 웾 웿 윀 ìœ ìœ‚ 윃 위 윅 윆 윇 윈 윉 윊 윋 윌 ìœ ìœŽ ìœ ìœ ìœ‘ 윒 윓 윔 윕 윖 윗 윘 윙 윚 윛 윜 ìœ ìœž 윟 유 육 윢 윣 윤 윥 윦 윧 율 윩 윪 윫 윬 윭 윮 윯 윰 윱 윲 윳 윴 융 윶 윷 윸 윹 윺 윻 으 윽 윾 윿 ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ìž€ ìž ìž‚ 잃 ìž„ ìž… 잆 잇 있 잉 잊 ìž‹ 잌 ìž ìžŽ ìž ìž ìž‘ ìž’ ìž“ ìž” ìž• ìž– ìž— 잘 ìž™ ìžš ìž› ìžœ ìž ìžž 잟 ìž  ìž¡ 잢 잣 잤 장 잦 잧 잨 ìž© 잪 ìž« 재 ìž­ ìž® 잯 ìž° ìž± ìž² ìž³ ìž´ ìžµ 잶 ìž· 잸 ìž¹ 잺 ìž» ìž¼ ìž½ ìž¾ ìž¿ 쟀 ìŸ ìŸ‚ 쟃 쟄 쟅 쟆 쟇 쟈 쟉 쟊 쟋 쟌 ìŸ ìŸŽ ìŸ ìŸ ìŸ‘ 쟒 쟓 쟔 쟕 쟖 쟗 쟘 쟙 쟚 쟛 쟜 ìŸ ìŸž 쟟 쟠 쟡 쟢 쟣 쟤 쟥 쟦 쟧 쟨 쟩 쟪 쟫 쟬 쟭 쟮 쟯 쟰 쟱 쟲 쟳 쟴 쟵 쟶 쟷 쟸 쟹 쟺 쟻 쟼 쟽 쟾 쟿 ì € ì  ì ‚ ì ƒ ì „ ì … ì † ì ‡ ì ˆ ì ‰ ì Š ì ‹ ì Œ ì  ì Ž ì  ì  ì ‘ ì ’ ì “ ì ” ì • ì – ì — ì ˜ ì ™ ì š ì › ì œ ì  ì ž ì Ÿ ì   ì ¡ ì ¢ ì £ ì ¤ ì ¥ ì ¦ ì § ì ¨ ì © ì ª ì « ì ¬ ì ­ ì ® ì ¯ ì ° ì ± ì ² ì ³ ì ´ ì µ ì ¶ ì · ì ¸ ì ¹ ì º ì » ì ¼ ì ½ ì ¾ ì ¿ ì¡€ ì¡ ì¡‚ 졃 ì¡„ ì¡… 졆 졇 졈 졉 ì¡Š ì¡‹ ì¡Œ ì¡ ì¡Ž ì¡ ì¡ ì¡‘ ì¡’ ì¡“ ì¡” ì¡• ì¡– ì¡— 졘 ì¡™ ì¡š ì¡› ì¡œ ì¡ ì¡ž ì¡Ÿ ì¡  ì¡¡ ì¡¢ ì¡£ 졤 ì¡¥ 졦 졧 졨 ì¡© 졪 ì¡« 졬 ì¡­ ì¡® 졯 ì¡° 족 졲 졳 ì¡´ 졵 졶 ì¡· 졸 졹 졺 ì¡» 졼 졽 졾 ì¡¿ 좀 ì¢ ì¢‚ 좃 좄 종 좆 좇 좈 좉 좊 좋 좌 ì¢ ì¢Ž ì¢ ì¢ ì¢‘ 좒 좓 좔 좕 좖 좗 좘 좙 좚 좛 좜 ì¢ ì¢ž 좟 좠 좡 좢 좣 좤 좥 좦 좧 좨 좩 좪 좫 좬 좭 좮 좯 좰 좱 좲 좳 좴 좵 좶 좷 좸 좹 좺 좻 좼 좽 좾 좿 죀 ì£ ì£‚ 죃 죄 죅 죆 죇 죈 죉 죊 죋 죌 ì£ ì£Ž ì£ ì£ ì£‘ 죒 죓 죔 죕 죖 죗 죘 죙 죚 죛 죜 ì£ ì£ž 죟 죠 죡 죢 죣 죤 죥 죦 죧 죨 죩 죪 죫 죬 죭 죮 죯 죰 죱 죲 죳 죴 죵 죶 죷 죸 죹 죺 죻 주 죽 죾 죿 준 ì¤ ì¤‚ 줃 줄 줅 줆 줇 줈 줉 줊 줋 줌 ì¤ ì¤Ž ì¤ ì¤ ì¤‘ 줒 줓 줔 줕 줖 줗 줘 줙 줚 줛 줜 ì¤ ì¤ž 줟 줠 줡 줢 줣 줤 줥 줦 줧 줨 줩 줪 줫 줬 줭 줮 줯 줰 줱 줲 줳 줴 줵 줶 줷 줸 줹 줺 줻 줼 줽 줾 줿 쥀 ì¥ ì¥‚ 쥃 쥄 쥅 쥆 쥇 쥈 쥉 쥊 쥋 쥌 ì¥ ì¥Ž ì¥ ì¥ ì¥‘ 쥒 쥓 쥔 쥕 쥖 쥗 쥘 쥙 쥚 쥛 쥜 ì¥ ì¥ž 쥟 쥠 쥡 쥢 쥣 쥤 쥥 쥦 쥧 쥨 쥩 쥪 쥫 쥬 쥭 쥮 쥯 쥰 쥱 쥲 쥳 쥴 쥵 쥶 쥷 쥸 쥹 쥺 쥻 쥼 쥽 쥾 쥿 즀 ì¦ ì¦‚ 즃 즄 즅 즆 즇 즈 즉 즊 즋 즌 ì¦ ì¦Ž ì¦ ì¦ ì¦‘ 즒 즓 즔 즕 즖 즗 즘 즙 즚 즛 즜 ì¦ ì¦ž 즟 즠 즡 즢 즣 즤 즥 즦 즧 즨 즩 즪 즫 즬 즭 즮 즯 즰 즱 즲 즳 즴 즵 즶 즷 즸 즹 즺 즻 즼 즽 즾 즿 지 ì§ ì§‚ 짃 진 짅 짆 짇 질 짉 짊 짋 짌 ì§ ì§Ž ì§ ì§ ì§‘ 짒 짓 짔 징 짖 짗 짘 짙 짚 짛 짜 ì§ ì§ž 짟 짠 짡 짢 짣 짤 짥 짦 짧 짨 짩 짪 짫 짬 짭 짮 짯 짰 짱 짲 짳 짴 짵 짶 짷 째 짹 짺 짻 짼 짽 짾 짿 쨀 ì¨ ì¨‚ 쨃 쨄 쨅 쨆 쨇 쨈 쨉 쨊 쨋 쨌 ì¨ ì¨Ž ì¨ ì¨ ì¨‘ 쨒 쨓 쨔 쨕 쨖 쨗 쨘 쨙 쨚 쨛 쨜 ì¨ ì¨ž 쨟 쨠 쨡 쨢 쨣 쨤 쨥 쨦 쨧 쨨 쨩 쨪 쨫 쨬 쨭 쨮 쨯 쨰 쨱 쨲 쨳 쨴 쨵 쨶 쨷 쨸 쨹 쨺 쨻 쨼 쨽 쨾 쨿 ì©€ ì© ì©‚ 쩃 ì©„ ì©… 쩆 쩇 쩈 쩉 ì©Š ì©‹ ì©Œ ì© ì©Ž ì© ì© ì©‘ ì©’ ì©“ ì©” ì©• ì©– ì©— 쩘 ì©™ ì©š ì©› ì©œ ì© ì©ž ì©Ÿ ì©  ì©¡ ì©¢ ì©£ 쩤 ì©¥ 쩦 쩧 쩨 ì©© 쩪 ì©« 쩬 ì©­ ì©® 쩯 ì©° 쩱 쩲 쩳 ì©´ 쩵 쩶 ì©· 쩸 쩹 쩺 ì©» 쩼 쩽 쩾 ì©¿ 쪀 ìª ìª‚ 쪃 쪄 쪅 쪆 쪇 쪈 쪉 쪊 쪋 쪌 ìª ìªŽ ìª ìª ìª‘ 쪒 쪓 쪔 쪕 쪖 쪗 쪘 쪙 쪚 쪛 쪜 ìª ìªž 쪟 쪠 쪡 쪢 쪣 쪤 쪥 쪦 쪧 쪨 쪩 쪪 쪫 쪬 쪭 쪮 쪯 쪰 쪱 쪲 쪳 쪴 쪵 쪶 쪷 쪸 쪹 쪺 쪻 쪼 쪽 쪾 쪿 ì«€ ì« ì«‚ 쫃 ì«„ ì«… 쫆 쫇 쫈 쫉 ì«Š ì«‹ ì«Œ ì« ì«Ž ì« ì« ì«‘ ì«’ ì«“ ì«” ì«• ì«– ì«— 쫘 ì«™ ì«š ì«› ì«œ ì« ì«ž ì«Ÿ ì«  ì«¡ ì«¢ ì«£ 쫤 ì«¥ 쫦 쫧 쫨 ì«© 쫪 ì«« 쫬 ì«­ ì«® 쫯 ì«° 쫱 쫲 쫳 ì«´ 쫵 쫶 ì«· 쫸 쫹 쫺 ì«» 쫼 쫽 쫾 ì«¿ 쬀 ì¬ ì¬‚ 쬃 쬄 쬅 쬆 쬇 쬈 쬉 쬊 쬋 쬌 ì¬ ì¬Ž ì¬ ì¬ ì¬‘ 쬒 쬓 쬔 쬕 쬖 쬗 쬘 쬙 쬚 쬛 쬜 ì¬ ì¬ž 쬟 쬠 쬡 쬢 쬣 쬤 쬥 쬦 쬧 쬨 쬩 쬪 쬫 쬬 쬭 쬮 쬯 쬰 쬱 쬲 쬳 쬴 쬵 쬶 쬷 쬸 쬹 쬺 쬻 쬼 쬽 쬾 쬿 ì­€ ì­ ì­‚ ì­ƒ ì­„ ì­… ì­† ì­‡ ì­ˆ ì­‰ ì­Š ì­‹ ì­Œ ì­ ì­Ž ì­ ì­ ì­‘ ì­’ ì­“ ì­” ì­• ì­– ì­— ì­˜ ì­™ ì­š ì­› ì­œ ì­ ì­ž ì­Ÿ ì­  ì­¡ ì­¢ ì­£ ì­¤ ì­¥ ì­¦ ì­§ ì­¨ ì­© ì­ª ì­« ì­¬ ì­­ ì­® ì­¯ ì­° ì­± ì­² ì­³ ì­´ ì­µ ì­¶ ì­· ì­¸ ì­¹ ì­º ì­» ì­¼ ì­½ ì­¾ ì­¿ 쮀 ì® ì®‚ 쮃 쮄 ì®… 쮆 쮇 쮈 쮉 쮊 쮋 쮌 ì® ì®Ž ì® ì® ì®‘ ì®’ 쮓 ì®” 쮕 ì®– ì®— 쮘 ì®™ 쮚 ì®› 쮜 ì® ì®ž 쮟 ì®  쮡 쮢 쮣 쮤 쮥 쮦 쮧 쮨 쮩 쮪 쮫 쮬 ì®­ ì®® 쮯 ì®° ì®± 쮲 쮳 ì®´ 쮵 쮶 ì®· 쮸 쮹 쮺 ì®» 쮼 쮽 쮾 쮿 쯀 ì¯ ì¯‚ 쯃 쯄 쯅 쯆 쯇 쯈 쯉 쯊 쯋 쯌 ì¯ ì¯Ž ì¯ ì¯ ì¯‘ 쯒 쯓 쯔 쯕 쯖 쯗 쯘 쯙 쯚 쯛 쯜 ì¯ ì¯ž 쯟 쯠 쯡 쯢 쯣 쯤 쯥 쯦 쯧 쯨 쯩 쯪 쯫 쯬 쯭 쯮 쯯 쯰 쯱 쯲 쯳 쯴 쯵 쯶 쯷 쯸 쯹 쯺 쯻 쯼 쯽 쯾 쯿 ì°€ ì° ì°‚ ì°ƒ ì°„ ì°… ì°† ì°‡ ì°ˆ ì°‰ ì°Š ì°‹ ì°Œ ì° ì°Ž ì° ì° ì°‘ ì°’ ì°“ ì°” ì°• ì°– ì°— ì°˜ ì°™ ì°š ì°› ì°œ ì° ì°ž ì°Ÿ ì°  ì°¡ ì°¢ ì°£ ì°¤ ì°¥ ì°¦ ì°§ ì°¨ ì°© ì°ª ì°« ì°¬ ì°­ ì°® ì°¯ ì°° ì°± ì°² ì°³ ì°´ ì°µ ì°¶ ì°· ì°¸ ì°¹ ì°º ì°» ì°¼ ì°½ ì°¾ ì°¿ ì±€ ì± ì±‚ 챃 채 ì±… 챆 챇 챈 챉 챊 챋 챌 ì± ì±Ž ì± ì± ì±‘ ì±’ 챓 ì±” 챕 ì±– ì±— 챘 ì±™ 챚 ì±› 챜 ì± ì±ž 챟 ì±  챡 ì±¢ ì±£ 챤 ì±¥ 챦 챧 챨 챩 챪 챫 챬 ì±­ ì±® 챯 ì±° ì±± ì±² ì±³ ì±´ ì±µ 챶 ì±· 챸 ì±¹ 챺 ì±» ì±¼ ì±½ ì±¾ 챿 ì²€ ì² ì²‚ 첃 첄 ì²… 첆 첇 첈 첉 첊 첋 첌 ì² ì²Ž ì² ì² ì²‘ ì²’ 첓 ì²” 첕 ì²– ì²— 처 ì²™ 첚 ì²› 천 ì² ì²ž 첟 ì²  첡 ì²¢ ì²£ 첤 ì²¥ 첦 첧 첨 첩 첪 첫 첬 ì²­ ì²® 첯 ì²° ì²± ì²² ì²³ ì²´ ì²µ 첶 ì²· 첸 ì²¹ 첺 ì²» ì²¼ ì²½ ì²¾ 첿 ì³€ ì³ ì³‚ 쳃 쳄 ì³… 쳆 쳇 쳈 쳉 쳊 쳋 쳌 ì³ ì³Ž ì³ ì³ ì³‘ ì³’ 쳓 ì³” 쳕 ì³– ì³— 쳘 ì³™ 쳚 ì³› 쳜 ì³ ì³ž 쳟 ì³  쳡 ì³¢ ì³£ 쳤 ì³¥ 쳦 쳧 쳨 쳩 쳪 쳫 쳬 ì³­ ì³® 쳯 ì³° ì³± ì³² ì³³ ì³´ ì³µ 쳶 ì³· 쳸 ì³¹ 쳺 ì³» ì³¼ ì³½ ì³¾ 쳿 ì´€ ì´ ì´‚ ì´ƒ ì´„ ì´… ì´† ì´‡ ì´ˆ ì´‰ ì´Š ì´‹ ì´Œ ì´ ì´Ž ì´ ì´ ì´‘ ì´’ ì´“ ì´” ì´• ì´– ì´— ì´˜ ì´™ ì´š ì´› ì´œ ì´ ì´ž ì´Ÿ ì´  ì´¡ ì´¢ ì´£ ì´¤ ì´¥ ì´¦ ì´§ ì´¨ ì´© ì´ª ì´« ì´¬ ì´­ ì´® ì´¯ ì´° ì´± ì´² ì´³ ì´´ ì´µ ì´¶ ì´· ì´¸ ì´¹ ì´º ì´» ì´¼ ì´½ ì´¾ ì´¿ ìµ€ ìµ ìµ‚ 쵃 쵄 ìµ… 쵆 쵇 쵈 쵉 쵊 쵋 쵌 ìµ ìµŽ ìµ ìµ ìµ‘ ìµ’ 쵓 ìµ” 쵕 ìµ– ìµ— 쵘 ìµ™ 쵚 ìµ› 최 ìµ ìµž 쵟 ìµ  쵡 ìµ¢ ìµ£ 쵤 ìµ¥ 쵦 쵧 쵨 쵩 쵪 쵫 쵬 ìµ­ ìµ® 쵯 ìµ° ìµ± ìµ² ìµ³ ìµ´ ìµµ 쵶 ìµ· 쵸 ìµ¹ 쵺 ìµ» ìµ¼ ìµ½ ìµ¾ 쵿 춀 ì¶ ì¶‚ 춃 춄 춅 춆 춇 춈 춉 춊 춋 춌 ì¶ ì¶Ž ì¶ ì¶ ì¶‘ 춒 춓 추 축 춖 춗 춘 춙 춚 춛 출 ì¶ ì¶ž 춟 춠 춡 춢 춣 춤 춥 춦 춧 춨 충 춪 춫 춬 춭 춮 춯 춰 춱 춲 춳 춴 춵 춶 춷 춸 춹 춺 춻 춼 춽 춾 춿 ì·€ ì· ì·‚ ì·ƒ ì·„ ì·… ì·† ì·‡ ì·ˆ ì·‰ ì·Š ì·‹ ì·Œ ì· ì·Ž ì· ì· ì·‘ ì·’ ì·“ ì·” ì·• ì·– ì·— ì·˜ ì·™ ì·š ì·› ì·œ ì· ì·ž ì·Ÿ ì·  ì·¡ ì·¢ ì·£ ì·¤ ì·¥ ì·¦ ì·§ ì·¨ ì·© ì·ª ì·« ì·¬ ì·­ ì·® ì·¯ ì·° ì·± ì·² ì·³ ì·´ ì·µ ì·¶ ì·· ì·¸ ì·¹ ì·º ì·» ì·¼ ì·½ ì·¾ ì·¿ 츀 ì¸ ì¸‚ 츃 츄 츅 츆 츇 츈 츉 츊 츋 츌 ì¸ ì¸Ž ì¸ ì¸ ì¸‘ 츒 츓 츔 츕 츖 츗 츘 츙 츚 츛 츜 ì¸ ì¸ž 츟 츠 측 츢 츣 츤 츥 츦 츧 츨 츩 츪 츫 츬 츭 츮 츯 츰 츱 츲 츳 츴 층 츶 츷 츸 츹 츺 츻 츼 츽 츾 츿 ì¹€ ì¹ ì¹‚ 칃 칄 ì¹… 칆 칇 칈 칉 칊 칋 칌 ì¹ ì¹Ž ì¹ ì¹ ì¹‘ ì¹’ 칓 ì¹” 칕 ì¹– ì¹— 치 ì¹™ 칚 ì¹› 친 ì¹ ì¹ž 칟 ì¹  칡 ì¹¢ ì¹£ 칤 ì¹¥ 칦 칧 침 칩 칪 칫 칬 ì¹­ ì¹® 칯 ì¹° ì¹± ì¹² ì¹³ ì¹´ ì¹µ 칶 ì¹· 칸 ì¹¹ 칺 ì¹» ì¹¼ ì¹½ ì¹¾ 칿 캀 ìº ìº‚ 캃 캄 캅 캆 캇 캈 캉 캊 캋 캌 ìº ìºŽ ìº ìº ìº‘ 캒 캓 캔 캕 캖 캗 캘 캙 캚 캛 캜 ìº ìºž 캟 캠 캡 캢 캣 캤 캥 캦 캧 캨 캩 캪 캫 캬 캭 캮 캯 캰 캱 캲 캳 캴 캵 캶 캷 캸 캹 캺 캻 캼 캽 캾 캿 컀 ì» ì»‚ 컃 컄 ì»… 컆 컇 컈 컉 컊 컋 컌 ì» ì»Ž ì» ì» ì»‘ ì»’ 컓 ì»” 컕 ì»– ì»— 컘 ì»™ 컚 ì»› 컜 ì» ì»ž 컟 ì»  컡 컢 컣 커 컥 컦 컧 컨 컩 컪 컫 컬 ì»­ ì»® 컯 ì»° ì»± 컲 컳 ì»´ 컵 컶 ì»· 컸 컹 컺 ì»» 컼 컽 컾 컿 ì¼€ ì¼ ì¼‚ 켃 켄 ì¼… 켆 켇 켈 켉 켊 켋 켌 ì¼ ì¼Ž ì¼ ì¼ ì¼‘ ì¼’ 켓 ì¼” 켕 ì¼– ì¼— 켘 ì¼™ 켚 ì¼› 켜 ì¼ ì¼ž 켟 ì¼  켡 ì¼¢ ì¼£ 켤 ì¼¥ 켦 켧 켨 켩 켪 켫 켬 ì¼­ ì¼® 켯 ì¼° ì¼± ì¼² ì¼³ ì¼´ ì¼µ 켶 ì¼· 켸 ì¼¹ 켺 ì¼» ì¼¼ ì¼½ ì¼¾ 켿 ì½€ ì½ ì½‚ 콃 콄 ì½… 콆 콇 콈 콉 콊 콋 콌 ì½ ì½Ž ì½ ì½ ì½‘ ì½’ 콓 ì½” 콕 ì½– ì½— 콘 ì½™ 콚 ì½› 콜 ì½ ì½ž 콟 ì½  콡 ì½¢ ì½£ 콤 ì½¥ 콦 콧 콨 콩 콪 콫 콬 ì½­ ì½® 콯 ì½° ì½± ì½² ì½³ ì½´ ì½µ 콶 ì½· 콸 ì½¹ 콺 ì½» ì½¼ ì½½ ì½¾ 콿 ì¾€ ì¾ ì¾‚ 쾃 쾄 ì¾… 쾆 쾇 쾈 쾉 쾊 쾋 쾌 ì¾ ì¾Ž ì¾ ì¾ ì¾‘ ì¾’ 쾓 ì¾” 쾕 ì¾– ì¾— 쾘 ì¾™ 쾚 ì¾› 쾜 ì¾ ì¾ž 쾟 ì¾  쾡 ì¾¢ ì¾£ 쾤 ì¾¥ 쾦 쾧 쾨 쾩 쾪 쾫 쾬 ì¾­ ì¾® 쾯 ì¾° ì¾± ì¾² ì¾³ ì¾´ ì¾µ 쾶 ì¾· 쾸 ì¾¹ 쾺 ì¾» ì¾¼ ì¾½ ì¾¾ 쾿 ì¿€ ì¿ ì¿‚ 쿃 ì¿„ ì¿… 쿆 쿇 쿈 쿉 ì¿Š ì¿‹ ì¿Œ ì¿ ì¿Ž ì¿ ì¿ ì¿‘ ì¿’ ì¿“ ì¿” ì¿• ì¿– ì¿— 쿘 ì¿™ ì¿š ì¿› ì¿œ ì¿ ì¿ž ì¿Ÿ ì¿  ì¿¡ ì¿¢ ì¿£ 쿤 ì¿¥ 쿦 쿧 쿨 ì¿© 쿪 ì¿« 쿬 ì¿­ ì¿® 쿯 ì¿° 쿱 쿲 쿳 ì¿´ 쿵 쿶 ì¿· 쿸 쿹 쿺 ì¿» 쿼 쿽 쿾 ì¿¿ 퀀 í€ í€‚ 퀃 퀄 퀅 퀆 퀇 퀈 퀉 퀊 퀋 퀌 í€ í€Ž í€ í€ í€‘ 퀒 퀓 퀔 퀕 퀖 퀗 퀘 퀙 퀚 퀛 퀜 í€ í€ž 퀟 퀠 퀡 퀢 퀣 퀤 퀥 퀦 퀧 퀨 퀩 퀪 퀫 퀬 퀭 퀮 퀯 퀰 퀱 퀲 퀳 퀴 퀵 퀶 퀷 퀸 퀹 퀺 퀻 퀼 퀽 퀾 퀿 í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ í‚€ í‚ í‚‚ 킃 í‚„ í‚… 킆 킇 킈 킉 í‚Š í‚‹ í‚Œ í‚ í‚Ž í‚ í‚ í‚‘ í‚’ í‚“ í‚” í‚• í‚– í‚— 킘 í‚™ í‚š í‚› í‚œ í‚ í‚ž í‚Ÿ í‚  í‚¡ í‚¢ í‚£ 키 í‚¥ 킦 킧 킨 í‚© 킪 í‚« 킬 í‚­ í‚® 킯 í‚° 킱 킲 킳 í‚´ 킵 킶 í‚· 킸 킹 킺 í‚» 킼 킽 킾 í‚¿ 타 íƒ íƒ‚ 탃 탄 탅 탆 탇 탈 탉 탊 탋 탌 íƒ íƒŽ íƒ íƒ íƒ‘ 탒 탓 탔 탕 탖 탗 탘 탙 탚 탛 태 íƒ íƒž 탟 탠 탡 탢 탣 탤 탥 탦 탧 탨 탩 탪 탫 탬 탭 탮 탯 탰 탱 탲 탳 탴 탵 탶 탷 탸 탹 탺 탻 탼 탽 탾 탿 í„€ í„ í„‚ 턃 í„„ í„… 턆 턇 턈 턉 í„Š í„‹ í„Œ í„ í„Ž í„ í„ í„‘ í„’ í„“ í„” í„• í„– í„— 턘 í„™ í„š í„› í„œ í„ í„ž í„Ÿ í„  í„¡ í„¢ í„£ 턤 í„¥ 턦 턧 턨 í„© 턪 í„« 턬 í„­ í„® 턯 í„° 턱 턲 턳 í„´ 턵 턶 í„· 털 턹 턺 í„» 턼 턽 턾 í„¿ í…€ í… í…‚ í…ƒ í…„ í…… í…† í…‡ í…ˆ í…‰ í…Š í…‹ í…Œ í… í…Ž í… í… í…‘ í…’ í…“ í…” í…• í…– í…— í…˜ í…™ í…š í…› í…œ í… í…ž í…Ÿ í…  í…¡ í…¢ í…£ í…¤ í…¥ í…¦ í…§ í…¨ í…© í…ª í…« í…¬ í…­ í…® í…¯ í…° í…± í…² í…³ í…´ í…µ í…¶ í…· í…¸ í…¹ í…º í…» í…¼ í…½ í…¾ í…¿ 톀 í† í†‚ 톃 톄 톅 톆 톇 톈 톉 톊 톋 톌 í† í†Ž í† í† í†‘ 톒 톓 톔 톕 톖 톗 톘 톙 톚 톛 톜 í† í†ž 톟 토 톡 톢 톣 톤 톥 톦 톧 톨 톩 톪 톫 톬 톭 톮 톯 톰 톱 톲 톳 톴 통 톶 톷 톸 톹 톺 톻 톼 톽 톾 톿 퇀 í‡ í‡‚ 퇃 퇄 퇅 퇆 퇇 퇈 퇉 퇊 퇋 퇌 í‡ í‡Ž í‡ í‡ í‡‘ 퇒 퇓 퇔 퇕 퇖 퇗 퇘 퇙 퇚 퇛 퇜 í‡ í‡ž 퇟 퇠 퇡 퇢 퇣 퇤 퇥 퇦 퇧 퇨 퇩 퇪 퇫 퇬 퇭 퇮 퇯 퇰 퇱 퇲 퇳 퇴 퇵 퇶 퇷 퇸 퇹 퇺 퇻 퇼 퇽 퇾 퇿 툀 íˆ íˆ‚ 툃 툄 툅 툆 툇 툈 툉 툊 툋 툌 íˆ íˆŽ íˆ íˆ íˆ‘ 툒 툓 툔 툕 툖 툗 툘 툙 툚 툛 툜 íˆ íˆž 툟 툠 툡 툢 툣 툤 툥 툦 툧 툨 툩 툪 툫 투 툭 툮 툯 툰 툱 툲 툳 툴 툵 툶 툷 툸 툹 툺 툻 툼 툽 툾 툿 퉀 í‰ í‰‚ 퉃 퉄 퉅 퉆 퉇 퉈 퉉 퉊 퉋 퉌 í‰ í‰Ž í‰ í‰ í‰‘ 퉒 퉓 퉔 퉕 퉖 퉗 퉘 퉙 퉚 퉛 퉜 í‰ í‰ž 퉟 퉠 퉡 퉢 퉣 퉤 퉥 퉦 퉧 퉨 퉩 퉪 퉫 퉬 퉭 퉮 퉯 퉰 퉱 퉲 퉳 퉴 퉵 퉶 퉷 퉸 퉹 퉺 퉻 퉼 퉽 퉾 퉿 튀 íŠ íŠ‚ 튃 튄 튅 튆 튇 튈 튉 튊 튋 튌 íŠ íŠŽ íŠ íŠ íŠ‘ 튒 튓 튔 튕 튖 튗 튘 튙 튚 튛 튜 íŠ íŠž 튟 튠 튡 튢 튣 튤 튥 튦 튧 튨 튩 튪 튫 튬 튭 튮 튯 튰 튱 튲 튳 튴 튵 튶 튷 트 특 튺 튻 튼 튽 튾 튿 í‹€ í‹ í‹‚ 틃 í‹„ í‹… 틆 틇 틈 틉 í‹Š í‹‹ í‹Œ í‹ í‹Ž í‹ í‹ í‹‘ í‹’ í‹“ í‹” í‹• í‹– í‹— 틘 í‹™ í‹š í‹› í‹œ í‹ í‹ž í‹Ÿ í‹  í‹¡ í‹¢ í‹£ 틤 í‹¥ 틦 틧 틨 í‹© 틪 í‹« 틬 í‹­ í‹® 틯 í‹° 틱 틲 틳 í‹´ 틵 틶 í‹· 틸 틹 틺 í‹» 틼 틽 틾 í‹¿ 팀 íŒ íŒ‚ 팃 팄 팅 팆 팇 팈 팉 팊 팋 파 íŒ íŒŽ íŒ íŒ íŒ‘ 팒 팓 팔 팕 팖 팗 팘 팙 팚 팛 팜 íŒ íŒž 팟 팠 팡 팢 팣 팤 팥 팦 팧 패 팩 팪 팫 팬 팭 팮 팯 팰 팱 팲 팳 팴 팵 팶 팷 팸 팹 팺 팻 팼 팽 팾 팿 í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ íŽ€ íŽ íŽ‚ 펃 펄 펅 펆 펇 펈 펉 펊 펋 펌 íŽ íŽŽ íŽ íŽ íŽ‘ 펒 펓 펔 펕 펖 펗 페 펙 펚 펛 펜 íŽ íŽž 펟 펠 펡 펢 펣 펤 펥 펦 펧 펨 펩 펪 펫 펬 펭 펮 펯 펰 펱 펲 펳 펴 펵 펶 펷 편 펹 펺 펻 펼 펽 펾 펿 í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ í‘€ í‘ í‘‚ 푃 í‘„ í‘… 푆 푇 푈 푉 í‘Š í‘‹ í‘Œ í‘ í‘Ž í‘ í‘ í‘‘ í‘’ í‘“ í‘” í‘• í‘– í‘— 푘 í‘™ í‘š í‘› í‘œ í‘ í‘ž í‘Ÿ í‘  í‘¡ í‘¢ í‘£ 푤 í‘¥ 푦 푧 푨 í‘© 푪 í‘« 푬 í‘­ í‘® 푯 í‘° 푱 푲 푳 í‘´ 푵 푶 í‘· 푸 푹 푺 í‘» 푼 푽 푾 í‘¿ í’€ í’ í’‚ í’ƒ í’„ í’… í’† í’‡ í’ˆ í’‰ í’Š í’‹ í’Œ í’ í’Ž í’ í’ í’‘ í’’ í’“ í’” í’• í’– í’— í’˜ í’™ í’š í’› í’œ í’ í’ž í’Ÿ í’  í’¡ í’¢ í’£ í’¤ í’¥ í’¦ í’§ í’¨ í’© í’ª í’« í’¬ í’­ í’® í’¯ í’° í’± í’² í’³ í’´ í’µ í’¶ í’· í’¸ í’¹ í’º í’» í’¼ í’½ í’¾ í’¿ í“€ í“ í“‚ 퓃 í“„ í“… 퓆 퓇 퓈 퓉 í“Š í“‹ í“Œ í“ í“Ž í“ í“ í“‘ í“’ í““ í“” í“• í“– í“— 퓘 í“™ í“š í“› í“œ í“ í“ž í“Ÿ í“  í“¡ í“¢ í“£ 퓤 í“¥ 퓦 퓧 퓨 í“© 퓪 í“« 퓬 í“­ í“® 퓯 í“° 퓱 퓲 퓳 í“´ 퓵 퓶 í“· 퓸 퓹 퓺 í“» 퓼 퓽 퓾 í“¿ 픀 í” í”‚ 픃 프 í”… 픆 픇 픈 픉 픊 픋 플 í” í”Ž í” í” í”‘ í”’ 픓 í”” 픕 í”– í”— 픘 í”™ 픚 í”› 픜 í” í”ž 픟 í”  픡 픢 픣 픤 픥 픦 픧 픨 픩 픪 픫 픬 í”­ í”® 픯 í”° í”± 픲 픳 í”´ 픵 픶 í”· 픸 픹 픺 í”» 피 픽 픾 픿 í•€ í• í•‚ 핃 í•„ í•… 핆 핇 핈 핉 í•Š í•‹ í•Œ í• í•Ž í• í• í•‘ í•’ í•“ í•” í•• í•– í•— 하 í•™ í•š í•› í•œ í• í•ž í•Ÿ í•  í•¡ í•¢ í•£ 핤 í•¥ 핦 핧 함 í•© 핪 í•« 핬 í•­ í•® 핯 í•° 핱 핲 핳 í•´ 핵 핶 í•· 핸 핹 핺 í•» 핼 핽 핾 í•¿ í–€ í– í–‚ í–ƒ í–„ í–… í–† í–‡ í–ˆ í–‰ í–Š í–‹ í–Œ í– í–Ž í– í– í–‘ í–’ í–“ í–” í–• í–– í–— í–˜ í–™ í–š í–› í–œ í– í–ž í–Ÿ í–  í–¡ í–¢ í–£ í–¤ í–¥ í–¦ í–§ í–¨ í–© í–ª í–« í–¬ í–­ í–® í–¯ í–° í–± í–² í–³ í–´ í–µ í–¶ í–· í–¸ í–¹ í–º í–» í–¼ í–½ í–¾ í–¿ í—€ í— í—‚ í—ƒ í—„ í—… í—† í—‡ í—ˆ í—‰ í—Š í—‹ í—Œ í— í—Ž í— í— í—‘ í—’ í—“ í—” í—• í—– í—— í—˜ í—™ í—š í—› í—œ í— í—ž í—Ÿ í—  í—¡ í—¢ í—£ í—¤ í—¥ í—¦ í—§ í—¨ í—© í—ª í—« í—¬ í—­ í—® í—¯ í—° í—± í—² í—³ í—´ í—µ í—¶ í—· í—¸ í—¹ í—º í—» í—¼ í—½ í—¾ í—¿ 혀 í˜ í˜‚ 혃 현 혅 혆 혇 혈 혉 혊 혋 혌 í˜ í˜Ž í˜ í˜ í˜‘ 혒 혓 혔 형 혖 혗 혘 혙 혚 혛 혜 í˜ í˜ž 혟 혠 혡 혢 혣 혤 혥 혦 혧 혨 혩 혪 혫 혬 혭 혮 혯 혰 혱 혲 혳 혴 혵 혶 혷 호 혹 혺 혻 혼 혽 혾 혿 홀 í™ í™‚ 홃 홄 í™… 홆 홇 홈 홉 홊 홋 홌 í™ í™Ž í™ í™ í™‘ í™’ 홓 í™” 확 í™– í™— 환 í™™ 홚 í™› 활 í™ í™ž 홟 í™  홡 홢 홣 홤 홥 홦 홧 홨 황 홪 홫 홬 í™­ í™® 홯 í™° í™± 홲 홳 í™´ 홵 홶 í™· 홸 홹 홺 í™» 홼 홽 홾 홿 횀 íš íš‚ 횃 íš„ íš… 횆 횇 횈 횉 횊 íš‹ 회 íš íšŽ íš íš íš‘ íš’ íš“ íš” íš• íš– íš— 횘 íš™ íšš íš› íšœ íš íšž 횟 íš  íš¡ 횢 횣 횤 횥 횦 횧 효 íš© 횪 íš« 횬 íš­ íš® 횯 íš° íš± íš² íš³ íš´ íšµ 횶 íš· 횸 íš¹ 횺 íš» íš¼ íš½ íš¾ íš¿ 훀 í› í›‚ 훃 후 í›… 훆 훇 훈 훉 훊 훋 훌 í› í›Ž í› í› í›‘ í›’ 훓 í›” 훕 í›– í›— 훘 í›™ 훚 í›› 훜 í› í›ž 훟 í›  훡 훢 훣 훤 훥 훦 훧 훨 훩 훪 훫 훬 í›­ í›® 훯 í›° í›± 훲 훳 í›´ 훵 훶 í›· 훸 훹 훺 í›» 훼 훽 훾 훿 휀 íœ íœ‚ 휃 휄 휅 휆 휇 휈 휉 휊 휋 휌 íœ íœŽ íœ íœ íœ‘ 휒 휓 휔 휕 휖 휗 휘 휙 휚 휛 휜 íœ íœž 휟 휠 휡 휢 휣 휤 휥 휦 휧 휨 휩 휪 휫 휬 휭 휮 휯 휰 휱 휲 휳 휴 휵 휶 휷 휸 휹 휺 휻 휼 휽 휾 휿 í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ íž€ íž íž‚ 힃 íž„ íž… 힆 힇 히 힉 힊 íž‹ 힌 íž ížŽ íž íž íž‘ íž’ íž“ íž” íž• íž– íž— 힘 íž™ ížš íž› ížœ íž ížž 힟 íž  íž¡ 힢 힣", - 2: "‾ _ _ - ï¼ â€ â€” ― 〜 ・ , , 〠; ï¼› : : ! ï¼ Â¡ ? ? ¿ . . ‥ … 。 · ' ‘ ’ \" " “ †( ( ) ) [ ï¼» ] ï¼½ { ï½› } ï½ ã€ˆ 〉 《 》 「 〠『 〠〠】 〔 〕 § ¶ @ ï¼  * * / ï¼ \\ ï¼¼ & & # # % ï¼… ‰ † ‡ ′ ″ 〃 ※", - 3: "á„€ á„€ á„ á„‚ ᄃ á„„ á„… ᄆ ᄇ ᄈ ᄉ á„Š á„‹ á„Œ á„ á„Ž á„ á„ á„‘ á„’ á…¡ á…¡ á…¢ á…£ á…¤ á…¥ á…¦ á…§ á…¨ á…© á…ª á…« á…¬ á…­ á…® á…¯ á…° á…± á…² á…³ á…´ á…µ ᆨ ᆨ ᆩ ᆪ ᆫ ᆬ ᆭ ᆮ ᆯ ᆰ ᆱ ᆲ ᆳ ᆴ ᆵ ᆶ ᆷ ᆸ ᆹ ᆺ ᆻ ᆼ ᆽ ᆾ ᆿ ᇀ ᇠᇂ 丘 串 乃 ä¹… ä¹– ä¹ ä¹ž 乫 ä¹¾ 亂 亘 交 京 仇 今 介 件 ä»· ä¼ ä¼‹ 伎 ä¼½ ä½³ 佶 侃 來 侊 ä¾› ä¿‚ ä¿“ 俱 個 倞 倦 倨 å‡ åˆ å¥ å‚€ å‚‘ 傾 僅 僑 價 儆 儉 儺 å…‰ å…‹ å…¢ å…§ å…¬ å…± å…¶ å…· å…¼ 冀 冠 凱 刊 刮 券 刻 剋 剛 劇 åŠ åŠ’ 功 加 劤 劫 å‹ å‹ å‹˜ 勤 勸 å‹» 勾 匡 匣 å€ å— å¦ å´ åµ å· å¿ åŽ¥ 去 åŠ å£ å¥ å© å« å¯ å„ å‰ å› å‘Š 呱 呵 å’Ž å’¬ å“¥ å“­ å•“ å–€ å–‡ å– å–« å–¬ å—œ 嘉 嘔 器 囊 å›° 固 圈 國 圭 圻 å‡ åŽ å‘ å¤ å° åµ åž¢ 基 埼 å € å … å ˆ å ª å º å¡Š å¡ å¢ƒ 墾 壙 壞 夔 奇 奈 奎 契 奸 妓 妗 姑 姜 姦 娘 娜 å« å¬Œ å­” å­£ å­¤ å® å®˜ 客 å®® 家 寄 寇 寡 寬 å°» å±€ å±… 屆 屈 å² å²¡ 岬 å´Ž å´‘ å´— 嵌 åµ å¶‡ 嶠 å·¥ å·§ å·¨ å·± å·¾ å¹² å¹¹ å¹¾ 庚 庫 康 廊 å» å»“ 廣 建 弓 强 彊 徑 å¿Œ 急 怪 怯 æ æ æª æ­ æ‚¸ 愆 æ„Ÿ 愧 æ„· 愾 æ…Š æ…£ æ…¤ æ…¨ æ…¶ æ…· 憩 憬 憾 懃 懇 懦 懶 懼 戈 戒 戟 戡 扱 技 抉 拉 æ‹ æ‹ æ‹’ 拘 括 æ‹® 拱 拳 æ‹· æ‹¿ æ æ® æ² æº æŽ˜ 掛 控 æ€ æ† æ­ æ“Š æ“Ž æ“’ æ“š 擧 攪 æ”· 改 æ”» æ•… æ•Ž æ•‘ æ•¢ 敬 敲 æ–› æ–¤ æ—— æ—£ 昆 昑 景 æ™· 暇 æš– æš  æš» æ›  曲 æ›´ æ›· 朗 朞 期 机 æ† æž æ° æž æžœ 枯 架 枸 柑 柩 柬 柯 æ ¡ æ ¹ æ ¼ æ¡€ æ¡‚ æ¡” æ¡¿ æ¢ æ¢— 械 梱 棄 棋 æ£ æ£˜ 棨 棺 楗 楠 極 æ§ æ§‹ æ§ æ§¨ 槪 槻 槿 樂 æ©„ æ©‹ 橘 æ©Ÿ 檄 檎 檢 櫃 欄 權 欺 款 æ­Œ æ­ æ­¸ 殼 毆 毬 æ°£ 求 江 汨 æ±² 決 æ±½ 沂 æ²½ æ´› æ´¸ 浪 涇 æ·ƒ æ·‡ 減 渠 渴 æ¹³ æº æºª 滑 滾 漑 æ½” æ½° æ¾— æ¿€ æ¿« çŒ ç¸ ç‚… ç‚š 炬 烙 烱 ç…– 爛 牽 犬 ç‹‚ ç‹— ç‹¡ 狼 ç— çŽ– 玘 ç‚ ç ç– ç™ çž çª çƒ ç¦ ç¨ çª ç¯ ç´ ç‘¾ ç’‚ ç’Ÿ ç’£ ç’¥ ç“Š 瓘 ç“œ 甄 甘 甲 ç”· 畇 ç•Œ 畸 畺 ç•¿ ç–† ç–¥ ç–³ ç—‚ ç—™ ç—¼ 癎 癩 癸 皆 皎 çš ç›– 監 看 眷 ç¾ çž° çž¼ çž¿ 矜 矩 矯 ç¡… 硬 ç¢ ç¢£ 磎 磬 磯 磵 ç¥ ç¥‡ 祈 祛 祺 ç¦ ç¦½ 科 稈 稼 稽 稿 ç©€ 究 穹 空 窘 窟 窮 窺 ç«… ç«Ÿ ç«­ 競 ç«¿ ç­‹ ç­ ç­  箇 箕 ç® ç®¡ ç°¡ ç²³ ç³  ç³» ç³¾ ç´€ ç´ ç´˜ ç´š ç´º çµ… çµ çµž 給 çµ³ çµ¹ 絿 經 綱 綺 ç·Š 繫 ç¹­ ç¹¼ 缺 ç½ ç½« ç¾… 羈 羌 ç¾” 群 ç¾¹ 翹 考 耆 耉 耕 耭 耿 è‚Œ è‚ è‚¡ è‚© 肯 肱 胛 胱 è„š è„› è…” è…± 膈 è† è†  臘 臼 舅 舊 舡 艮 艱 芎 芥 芩 芹 è‹› è‹Ÿ 苦 苽 茄 莖 è… èŠ èŒ è“ è« è° è½ è‘› 葵 è“‹ è•Ž 蕨 è–‘ è— è— è—¿ 蘭 蘿 è™” 蚣 蛟 èŽ èžº è Ÿ è ± è¡— è¡¢ 衲 衾 è¡¿ 袈 袞 袴 裙 裸 è¤ è¥ è¥Ÿ 襤 見 è¦ è¦¡ 覲 覺 觀 角 計 記 訣 訶 è©­ 誇 誡 誥 課 è«« 諾 謙 講 謳 謹 è­ è­¦ è­´ è°· è°¿ 豈 è²¢ 貫 è²´ 賈 è³¼ èµ³ èµ· è· è· è·¨ 踞 蹇 蹶 躬 軀 車 軌 è» è»» 較 輕 轎 轟 辜 è¿‘ 迦 迲 适 逑 逕 逵 éŽ é£ é½ é‚ é‚£ 邯 邱 郊 郎 郡 郭 é…ª 醵 金 éˆ éˆž 鉀 鉅 鉗 鉤 銶 鋸 鋼 錡 錤 錦 錮 é‹ éµ éŽŒ 鎧 é¡ é‘‘ é‘’ é‘› é–‹ é–“ é–˜ é–£ é–¨ é—• é—œ é™ éšŽ éš” éš™ 雇 難 éž éž  鞨 éž« é ƒ é ¸ 顆 顧 飢 餃 館 饉 饋 饑 駒 駕 駱 騎 é¨ é¨« é©… é©• é©š é©¥ 骨 高 鬼 é­ é®« 鯤 鯨 鱇 鳩 鵑 éµ  é·„ é·— 鸞 麒 麴 é»” 鼓 龕 龜", - 5: "ㄱ ã„´ ã„· ㄹ ã… ã…‚ ã…… ã…‡ ã…ˆ ã…Š ã…‹ ã…Œ ã… ã…Ž", - }, - "kok": { - 0: "़ ० १ २ ३ ४ ५ ६ ७ ८ ९ ॠं ठः अ आ इ ई उ ऊ ऋ ऌ ठठठऑ ओ औ क क़ ख ख़ ग ग़ घ ङ च छ ज ज़ ठञ ट ठ ड ड़ ढ ढ़ ण त थ द ध न प फ फ़ ब भ म य य़ र ल व श ष स ह ळ ऽ ा ि ी ॠू ृ ॄ ॅ े ै ॉ ो ौ à¥", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d", - }, - "ks": { - 0: "Ûª Û­ ÙŽ Ù Ù Ù” Ù• Ù– Ù— Ùš Ù› Ø¡ Ø¢ Ø£ Ù² ؤ ا Ù® ب Ù¾ ت Ø« Ù¹ ج Ú† Ø­ Ø® د Ø° Úˆ ر ز Ú‘ Ú˜ س Ø´ ص ض Ø· ظ ع غ Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Úº Ú¾ Û Ùˆ Û„ ÛŒ Û Û’", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "ksb": { - 0: "a b c d e f g h i j k l m n o p s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q r x", - 5: "A B C D E F G H I J K L M N O P S T U V W Y Z", - }, - "ksf": { - 0: "a á b c d e é Ç ÇÌ É› É›Ì f g h i í j k l m n Å‹ o ó É” É”Ì p r s t u ú v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x", - 5: "A B C D E ÆŽ Æ F G H I J K L M N ÅŠ O Ɔ P R S T U V W Y Z", - }, - "ksh": { - 0: "a Ã¥ ä æ b c d e ë Ä— f g h i j k l m n o ö Å“ p q r s ß t u ů ü v w x y z", - 2: "_ †– — ⸗ , ; : ! ? . … ' ‘ ‚ \" “ „ ( ) [ ] { } § @ * / & # % † ‡ ° < = > ~ $", - 3: "á à ă â Ã¥ ä ã Ä Ã¦ ç é è Ä• ê ë Ä“ ÄŸ í ì Ä­ î ï Ä« ij ı Å‚ ñ ó ò Šô ö ø Å Å“ ú ù Å­ û ü Å« ÿ", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "kw": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "ky": { - 0: "а б г д е Ñ‘ ж з и й к л м н ÓŠ о Ó© п Ñ€ Ñ Ñ‚ у Ò¯ Ñ… ч ш ÑŠ Ñ‹ Ñ ÑŽ Ñ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "в Ñ„ ц щ ÑŒ", - }, - "lag": { - 0: "a á b c d e é f g h i í ɨ j k l m n o ó p q r s t u ú ʉ v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I Æ— J K L M N O P Q R S T U É„ V W X Y Z", - }, - "lg": { - 0: "a b c d e f g i j k l m n ny Å‹ o p r s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "h q x", - 5: "A B C D E F G I J K L M N ÅŠ O P R S T U V W Y Z", - }, - "ln": { - 0: "a á â ÇŽ b c d e é ê Ä› É› É›Ì É›Ì‚ ɛ̌ f g gb h i í î Ç k l m mb mp n nd ng nk ns nt ny nz o ó ô Ç’ É” É”Ì É”Ì‚ ɔ̌ p r s t u ú v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "j q x", - 5: "A B C D E Æ F G Gb H I K L M Mb Mp N Nd Ng Nk Ns Nt Ny Nz O Ɔ P R S T U V W Y Z", - }, - "lo": { - 0: "່ ້ ໊ ໋ ໌ ໠ໆ ຠຂ ຄ ງ ຈ ສ ຊ ຠດ ຕ ຖ ທ ນ ບ ປ ຜ ຠພ ຟ ມ ຢ ຣ ລ ວ ຫ ໜ ໠ອ ຮ ຯ ະ ັ າ ຳ ິ ີ ຶ ື ຸ ູ ົ ຼ ຽ ເ ໠ໂ ໃ ໄ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200b ໠໑ à»’ ໓ à»” ໕ à»– à»— ໘ à»™", - }, - "lt": { - 0: "a Ä… b c Ä d e Ä™ Ä— f g h i į y j k l m n o p r s Å¡ t u ų Å« v z ž", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á à ã Ä…Ì Ä…Ìƒ é è ẽ Ä™Ì Ä™Ìƒ Ä—Ì Ä—Ìƒ iÌ‡Ì Ã­ i̇̀ ì i̇̃ Ä© Ä¯Ì Ä¯Ì‡Ì Ä¯Ìƒ į̇̃ j̃ j̇̃ l̃ m̃ ñ ó ò õ q r̃ ú ù Å© Å³Ì Å³Ìƒ Å«Ì Å«Ìƒ w x", - 5: "A Ä„ B C ÄŒ D E Ę Ä– F G H I Ä® Y J K L M N O P R S Å  T U Ų Ū V Z Ž", - }, - "lu": { - 0: "a á à b c d e é è É› É›Ì É›Ì€ f h i í ì j k l m n ng ny o ó ò É” É”Ì É”Ì€ p ph q s shi t u ú ù v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "g r x", - 5: "A B C D E F H I J K L M N O P Q S T U V W Y Z", - }, - "luo": { - 0: "a b c d e f g h i j k l m n o p r s t u v w y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x z", - 5: "A B C D E F G H I J K L M N O P R S T U V W Y", - }, - "luy": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "lv": { - 0: "a Ä b c Ä d e Ä“ f g Ä£ h i Ä« j k Ä· l ļ m n ņ o p r s Å¡ t u Å« v z ž", - 2: "- †– — , ; : ! ? . … ' ‘ ’ ‚ \" “ †„ ( ) [ ] § @ * / & # † ‡ ′ ″", - 3: "q w x y", - 5: "A B C ÄŒ D E F G Ä¢ H I J K Ķ L Ä» M N Å… O P Q R S Å  T U V W X Y Z Ž", - }, - "mas": { - 0: "a á à â Ä b c d e é è ê Ä“ É› g h i í ì î Ä« ɨ j k l m n ny Å‹ o ó ò ô Å É” p r rr s sh t u ú ù û Å« ʉ Ê‰Ì w wu y yi", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "f q v x z", - 5: "A B C D E Æ G H I Æ— J K L M N ÅŠ O Ɔ P R S T U É„ W Y", - }, - "mer": { - 0: "a b c d e f g h i Ä© j k l m n o p q r s t u Å© v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "mfe": { - 0: "a b c d e f g h i j k l m n o p r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P R S T U V W X Y Z", - }, - "mg": { - 0: "a à â b d e é è ê ë f g h i ì î ï j k l m n ñ o ô p r s t v y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "c q u w x", - 5: "A B D E F G H I J K L M N O P R S T V Y Z", - }, - "mgh": { - 0: "a b c d e f g h i j k l m n o p r s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x", - 5: "A B C D E F G H I J K L M N O P R S T U V W Y Z", - }, - "mgo": { - 0: "a à b ch d e è É™ ə̀ f g gh i ì j k m n Å‹ o ò É” ɔ̀ p r s t u ù w y z ʼ", - 2: ", ; : ! ? . ' ‘ ’ \" “ â€", - 3: "c h l q v x", - 5: "A B CH D E Æ F G GH I J K M N ÅŠ O Ɔ P R S T U W Y Z ʼ", - }, - "mk": { - 0: "а б в г д Ñ“ е ж з Ñ• и ј к л Ñ™ м н Ñš о п Ñ€ Ñ Ñ‚ Ñœ у Ñ„ Ñ… ц ч ÑŸ ш", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "Ñ Ñ", - 5: "РБ Ð’ Г Д Ѓ Е Ж З Ð… И Ј К Л Љ Ðœ РЊ О П Р С Т ÐŒ У Ф Ð¥ Ц Ч РШ", - }, - "ml": { - 0: "\u200c \u200d à´ƒ à´… à´† à´‡ à´ˆ à´‰ à´Š à´‹ ൠ à´Œ ൡ à´Ž à´ à´ à´’ à´“ à´” à´• ൿ à´– à´— à´˜ à´™ à´š à´› à´œ à´ à´ž à´Ÿ à´  à´¡ à´¢ à´£ ൺ à´¤ à´¥ à´¦ à´§ à´¨ ൻ à´ª à´« à´¬ à´­ à´® à´‚ à´¯ à´° ർ à´² ൽ à´µ à´¶ à´· à´¸ à´¹ à´³ ൾ à´´ à´± à´¾ à´¿ ീ ൠൂ ൃ െ േ ൈ ൊ ോ ൗ ൌ àµ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d", - }, - "mn": { - 0: "а б в г д е Ñ‘ ж з и й к л м н о Ó© п Ñ€ Ñ Ñ‚ у Ò¯ Ñ„ Ñ… ц ч ш щ ÑŠ Ñ‹ ÑŒ Ñ ÑŽ Ñ", - 2: "- †– — , ; : ! ? . … ' ‘ ’ \" “ †( ) [ ] § @ * / & # † ‡ ′ ″", - 3: "Ó™ Ò— ÓŠ Ò»", - }, - "mr": { - 0: "़ ० १ २ ३ ४ ५ ६ ७ ८ ९ ॠं ठः अ आ इ ई उ ऊ ऋ ऌ ठठठऑ ओ औ क ख ग घ ङ च छ ज ठञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह ळ ऽ ा ि ी ॠू ृ ॄ ॅ े ै ॉ ो ौ à¥", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d", - 5: "\u200d ॠं ः अ आ इ ई उ ऊ ऋ ऌ ठठऑ ओ औ क ख ग घ ङ च छ ज ठञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह ळ ऽ ॅ à¥", - }, - "ms": { - 0: "a ai au b c d dz e f g h i j k kh l m n ng ngg ny o p q r s sy t ts u ua v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "mt": { - 0: "a à b Ä‹ d e è f Ä¡ g għ h ħ i ì j k l m n o ò p q r s t u ù v w x ż z", - 2: "- , ; : ! ? . ' ‘ ’ \" “ †( ) [ ] { }", - 3: "c y", - }, - "mua": { - 0: "a ã b É“ c d É— e ë Ç f g h i Ä© j k l m n Å‹ o õ p r s t u v á¹½ w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x", - 5: "A B Æ C D ÆŠ E ÆŽ F G H I J K L M N ÅŠ O P R S T U V W Y Z", - }, - "my": { - 0: "က ဠဂ ဃ င စ ဆ ဇ ဈ ဉ ည ဋ ဌ ဠဎ ဠဠထ ဒ ဓ န ပ ဖ ဗ ဘ မ ယ ရ လ ဠသ ဟ ဠ အ ဣ ဤ ဥ ဦ ဧ ဩ ဪ ာ ါ ိ ီ ု ူ ေ ဲ ံ ဿ ျ ြ ွ ှ ္ ် ့ း", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á ᑠဨ ဢ ᒠᓠᔠᕠᖠᗠᘠá™", - }, - "naq": { - 0: "a â b c d e f g h i î k m n o ô p q r s t u û w x y z Ç€ Ç Ç‚ ǃ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "j l v", - 5: "A B C D E F G H I K M N O P Q R S T U W X Y Z", - }, - "nb": { - 0: "a à b c d e é f g h i j k l m n o ó ò ô p q r s t u v w x y z æ ø Ã¥", - 2: "- – , ; : ! ? . ' \" « » ( ) [ ] { } § @ * / \\", - 3: "á ÇŽ ã Ä Ã§ Ä‘ è ê í Å„ ñ Å‹ Å¡ ŧ ü ž ä ö", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Æ Ø Ã…", - }, - "nd": { - 0: "a b c d e f g h i j k l m n o p q s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "r", - 5: "A B C D E F G H I J K L M N O P Q S T U V W X Y Z", - }, - "ne": { - 0: "़ ठं ः ॠअ आ इ ई उ ऊ ऋ ऌ ठठठऑ ओ औ क ख ग घ ङ च छ ज ठञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल ळ व श ष स ह ऽ ा ि ी ॠू ृ ॄ ॅ े ै ॉ ो ौ à¥", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d", - }, - "nl": { - 0: "a á ä b c d e é ë f g h i í ï ij j k l m n o ó ö p q r s t u ú ü v w x y z", - 2: "- †– — , ; : ! ? . … ' ‘ ’ \" “ †( ) [ ] § @ * / & # † ‡ ′ ″", - 3: "à â Ã¥ ã æ ç è ê î ñ ô ø Å“ ù û ÿ", - }, - "nmg": { - 0: "a á ă â ä Ä b É“ c d e é Ä• ê Ä“ Ç ÇÌ Ç̆ ÇÌ‚ ÇÌ„ É› É›Ì É›Ì† ɛ̂ ɛ̄ f g h i í Ä­ î ï Ä« j k l m n Å„ Å‹ o ó Šô ö Å É” É”Ì É”Ì† ɔ̂ ɔ̄ p r Å• s t u ú Å­ û Å« v w y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x z", - 5: "A B Æ C D E ÆŽ Æ F G H I J K L M N ÅŠ O Ɔ P R S T U V W Y", - }, - "nn": { - 0: "a à b c d e é f g h i j k l m n o ó ò ô p q r s t u v w x y z æ ø Ã¥", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á ÇŽ Ä Ã§ Ä‘ è ê Å„ ñ Å‹ Å¡ ŧ ü ž ä ö", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Æ Ø Ã…", - }, - "nnh": { - 0: "a á à â ÇŽ b c d e é è ê Ä› É› É›Ì É›Ì€ ɛ̂ ɛ̌ f g h i í ì j k l m n Å‹ o ó ò ô Ç’ É” É”Ì É”Ì€ ɔ̂ ɔ̌ p pf s sh t ts u ú ù û Ç” ʉ Ê‰Ì Ê‰Ì€ ʉ̂ ʉ̌ v w ẅ y ÿ z ʼ", - 2: ", ; : ! ? . ' ‘ ’ « »", - 3: "q r x", - 5: "A B C D E Æ F G H I J K L M N ÅŠ O Ɔ P Pf R S Sh T Ts U É„ V W Ẅ Y Ÿ Z ʼ", - }, - "nr": { - 0: "a b c d e f g h i j k l m n o p q s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "r", - }, - "nso": { - 0: "a b d e ê f g h i j k l m n o ô p r s Å¡ t u w x y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "c q v z", - }, - "nus": { - 0: "a ä a̱ b c d e ë e̱ É› ɛ̈ ɛ̱ ɛ̱̈ f g É£ h i ï i̱ j k l m n Å‹ o ö o̱ É” ɔ̈ ɔ̱ p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E Æ F G Æ” H I J K L M N ÅŠ O Ɔ P Q R S T U V W X Y Z", - }, - "nyn": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "om": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "or": { - 0: "଼ ଅ ଆ ଇ ଈ ଉ ଊ ଋ ଠଠଓ ଔ ଠଂ ଃ କ ଖ ଗ ଘ ଙ ଚ ଛ ଜ ଠଞ ଟ ଠ ଡ ଡ଼ ଢ ଢ଼ ଣ ତ ଥ ଦ ଧ ନ ପ ଫ ବ ଭ ମ ଯ à­Ÿ ର ଲ ଳ ଵ à­± ଶ ଷ ସ ହ ା ି à­€ à­ à­‚ à­ƒ à­‡ à­ˆ à­‹ à­Œ à­", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d", - }, - "os": { - 0: "а Ó• б в г гъ д дж дз е Ñ‘ ж з и й к къ л м н о п пъ Ñ€ Ñ Ñ‚ Ñ‚ÑŠ у Ñ„ Ñ… Ñ…ÑŠ ц цъ ч чъ ш щ ÑŠ Ñ‹ ÑŒ Ñ ÑŽ Ñ", - 2: "- †– — , ; : ! ? . … ' ‘ ‚ \" “ „ « » ( ) [ ] { } § @ * / & #", - 5: "Ð Ó” Б Ð’ Г Гъ Д Дж Дз Е РЖ З И Й К Къ Л Ðœ РО П Пъ Р С Т Тъ У Ф Ð¥ Хъ Ц Цъ Ч Чъ Ш Щ Ы Э Ю Я", - }, - "pa": { - 0: "ੱ à©° ਼ ੦ ੧ ੨ à©© ੪ à©« ੬ à©­ à©® ੯ à©´ ੳ ਉ ਊ ਓ ਅ ਆ ਠਔ ੲ ਇ ਈ ਠਸ ਸ਼ ਹ ਕ ਖ ਖ਼ ਗ ਗ਼ ਘ ਙ ਚ ਛ ਜ ਜ਼ ਠਞ ਟ ਠ ਡ ਢ ਣ ਤ ਥ ਦ ਧ ਨ ਪ ਫ ਫ਼ ਬ ਭ ਮ ਯ ਰ ਲ ਵ à©œ ੠ਾ ਿ à©€ à© à©‚ ੇ ੈ à©‹ à©Œ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d ਃ ਂ ਠਲ਼", - }, - "pa-Arab": { - 0: "Ù Ø¡ Ø¢ ؤ ئ ا ب Ù¾ ت Ø« Ù¹ ج Ú† Ø­ Ø® د Ø° Úˆ ر ز Ú‘ Ú˜ س Ø´ ص ض Ø· ظ ع غ Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Úº Ù‡ Ú¾ Û Ùˆ ÛŒ Û’", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "Ø£ Ù» Ø© Ùº Ù¼ Ù½", - }, - "pl": { - 0: "a Ä… b c ć d e Ä™ f g h i j k l Å‚ m n Å„ o ó p r s Å› t u w y z ź ż", - 2: "- †– — , ; : ! ? . … ' \" †„ « » ( ) [ ] { } § @ * / & # % † ‡ ′ ″ ° ~", - 3: "à â Ã¥ ä æ ç é è ê ë î ï ô ö Å“ q ß ù û ü v x ÿ", - }, - "ps": { - 0: "ÙŽ Ù Ù Ù‹ Ù ÙŒ Ù‘ Ù’ Ù” Ù° Ø¢ ا Ø£ Ø¡ ب Ù¾ ت Ù¼ Ø« ج Ú Ú† Ú… Ø­ Ø® د Ú‰ Ø° ر Ú“ ز Ú˜ Ú– س Ø´ Úš ص ض Ø· ظ ع غ Ù Ù‚ Ú© Ú« Ù„ Ù… Ù† Ú¼ Ù‡ Ø© Ùˆ ؤ ÛŒ ÙŠ Û Û Ø¦", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d", - }, - "pt": { - 0: "a á à â ã b c ç d e é ê f g h i í j k l m n o ó ò ô õ p q r s t u ú v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "ª ă Ã¥ ä Ä Ã¦ è Ä• ë Ä“ ì Ä­ î ï Ä« ñ º Šö ø Å Å“ ù Å­ û ü Å« ÿ", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "rm": { - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "rn": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "ro": { - 0: "a ă â b c d e f g h i î j k l m n o p r s È™ t È› u v x z", - 2: "- †– — , ; : ! ? . … ' ‘ \" “ †„ « » ( ) [ ] @ * /", - 3: "á à Ã¥ ä ç é è ê ë ñ ö q ÅŸ Å£ ü w y", - 5: "A Ä‚  B C D E F G H I ÃŽ J K L M N O P Q R S Ș T Èš U V W X Y Z", - }, - "rof": { - 0: "a b c d e f g h i j k l m n o p r s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x", - 5: "A B C D E F G H I J K L M N O P R S T U V W Y Z", - }, - "und": { - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "ru": { - 0: "а б в г д е Ñ‘ ж з и й к л м н о п Ñ€ Ñ Ñ‚ у Ñ„ Ñ… ц ч ш щ ÑŠ Ñ‹ ÑŒ Ñ ÑŽ Ñ", - 2: "- †– — , ; : ! ? . … ' ‘ ‚ \" “ „ « » ( ) [ ] { } § @ * / & #", - 3: "Ð°Ì ÐµÌ Ð¸Ì Ð¾Ì ÑƒÌ Ñ‹Ì ÑÌ ÑŽÌ ÑÌ", - 5: "РБ Ð’ Г Д Е РЖ З И Й К Л Ðœ РО П Р С Т У Ф Ð¥ Ц Ч Ш Щ Ы Э Ю Я", - }, - "rw": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "rwk": { - 0: "a b c d e f g h i j k l m n o p r s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x", - 5: "A B C D E F G H I J K L M N O P R S T U V W Y Z", - }, - "sah": { - 0: "а б г Ò• д дь и й к л м н нь Ò¥ о Ó© п Ñ€ Ñ Ñ‚ у Ò¯ Ñ… Ò» ч Ñ‹ Ñ", - 3: "в е Ñ‘ ж з Ñ„ ц ш щ ÑŠ ÑŒ ÑŽ Ñ", - 5: "РБ Г Ò” Д Дь И Й К Л Ðœ Ð ÐÑŒ Ò¤ О Ó¨ П Р С Т У Ò® Ð¥ Òº Ч Ы Э", - }, - "saq": { - 0: "a b c d e g h i j k l m n o p r s t u v w y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "f q x z", - 5: "A B C D E G H I J K L M N O P R S T U V W Y", - }, - "sbp": { - 0: "a b c d e f g h i j k l m n o p s t u v w y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q r x z", - 5: "A B C D E F G H I J K L M N O P S T U V W Y", - }, - "se": { - 0: "a á b c Ä d Ä‘ e f g h i j k l m n Å‹ o p r s Å¡ t ŧ u v z ž", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "à Ã¥ ä ã æ ç é è í Å„ ñ ó ò ö ø q ú ü w x y", - }, - "seh": { - 0: "a á à â ã b c ç d e é ê f g h i í j k l m n o ó ò ô õ p q r s t u ú v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "ses": { - 0: "a ã b c d e ẽ f g h i j k l m n ɲ Å‹ o õ p q r s Å¡ t u w x y z ž", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "v", - 5: "A à B C D E Ẽ F G H I J K L M N Æ ÅŠ O Õ P Q R S Å  T U W X Y Z Ž", - }, - "sg": { - 0: "a â ä b d e ê ë f g h i î ï j k l m n o ô ö p r s t u ù û ü v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "c q x", - 5: "A B D E F G H I J K L M N O P R S T U V W Y Z", - }, - "shi": { - 0: "â´° â´± â´³ ⴳⵯ â´· â´¹ â´» â´¼ â´½ ⴽⵯ âµ€ ⵃ ⵄ âµ… ⵇ ⵉ ⵊ ⵠⵎ ⵠⵓ âµ” ⵕ âµ– âµ™ ⵚ âµ› ⵜ ⵟ ⵡ âµ¢ âµ£ âµ¥", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "â´° â´± â´³ â´· â´¹ â´» â´¼ â´½ âµ€ ⵃ ⵄ âµ… ⵇ ⵉ ⵊ ⵠⵎ ⵠⵓ âµ” ⵕ âµ– âµ™ ⵚ âµ› ⵜ ⵟ ⵡ âµ¢ âµ£ âµ¥", - }, - "shi-Latn": { - 0: "a b c d Ḡe É› f g gÊ· É£ h ḥ i j k kÊ· l m n q r á¹› s á¹£ t á¹­ u w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "o p v", - 5: "A B C D Ḍ E Æ F G GÊ· Æ” H Ḥ I J K KÊ· L M N Q R Ṛ S á¹¢ T Ṭ U W X Y Z", - }, - "si": { - 0: "අ ආ ඇ ඈ ඉ ඊ උ ඌ චඑ ඒ ඓ ඔ ඕ ඖ ං ඃ ක ඛ ග චඞ ඟ ච ඡ ජ ඣ ඥ ඤ ට ඨ ඩ ඪ ණ ඬ ත ථ ද ධ න ඳ ප ඵ බ භ ම ඹ ය ර ල à·€ à· à·‚ à·ƒ à·„ à·… à·† à· à· à·‘ à·’ à·“ à·” à·– à·˜ à·² à·Ÿ à·™ à·š à·› à·œ à· à·ž à·Š", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200b \u200c \u200d ඎ චචඦ à·³", - 5: "අ ආ ඇ ඈ ඉ ඊ උ ඌ චඑ ඒ ඓ ඔ ඕ ඖ ක ඛ ග චඞ ඟ ච ඡ ජ ඣ ඥ ඤ ට ඨ ඩ ඪ ණ ඬ ත ථ ද ධ න ඳ ප ඵ බ භ ම ඹ ය ර ල à·€ à· à·‚ à·ƒ à·„ à·… à·†", - }, - "sk": { - 0: "a á ä b c Ä d Ä e é f g h ch i í j k l ĺ ľ m n ň o ó ô p q r Å• s Å¡ t Å¥ u ú v w x y ý z ž", - 2: "- †– , ; : ! ? . … ‘ ‚ “ „ ( ) [ ] § @ * / &", - }, - "sl": { - 0: "a b c Ä d e f g h i j k l m n o p r s Å¡ t u v z ž", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á à ă â Ã¥ ä Ä Ã¦ ç ć Ä‘ é è Ä• ê ë Ä“ í ì Ä­ î ï Ä« ñ ó ò Šô ö ø Å Å“ q ú ù Å­ û ü Å« w x y ÿ", - 5: "A B C ÄŒ Ć D Ä E F G H I J K L M N O P Q R S Å  T U V W X Y Z Ž", - }, - "sn": { - 0: "a b c d e f g h i j k l m n o p r s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x", - 5: "A B C D E F G H I J K L M N O P R S T U V W Y Z", - }, - "so": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "sq": { - 0: "a b c ç d dh e ë f g gj h i j k l ll m n nj o p q r rr s sh t th u v x xh y z zh", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "w", - }, - "sr": { - 0: "а б в г д Ñ’ е ж з и ј к л Ñ™ м н Ñš о п Ñ€ Ñ Ñ‚ Ñ› у Ñ„ Ñ… ц ч ÑŸ ш", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "Ñ‘ й щ ÑŠ Ñ‹ ÑŒ Ñ ÑŽ Ñ", - }, - "sr-Latn": { - 0: "a b c Ä Ä‡ d dž Ä‘ e f g h i j k l lj m n nj o p r s Å¡ t u v z ž", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "Ã¥ q w x y", - }, - "ss": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "ssy": { - 0: "a b t s e c k x i d q r f g o l m n u w h y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "j p v z", - 5: "A B T S E C K X I D Q R F G O L M N U W H Y", - }, - "st": { - 0: "a b d e f g h i j k l m n o p q r s t u w y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "c v x z", - }, - "sv": { - 0: "a à b c d e é f g h i j k l m n o p q r s t u v w x y z Ã¥ ä ö", - 2: "- †– — , ; : ! ? . … ' ‘ ’ \" “ †( ) [ ] § @ * / & # † ‡ ′ ″", - 3: "á â ã Ä Ã§ ë í î ï Ä« ñ ó ú ÿ ü æ ø", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ã… Ä Ö", - }, - "sv-FI": { - 2: "- †– — , ; : ! ? . … ' ‘ ’ \" “ †( ) [ ] § @ * / & # † ‡ ′ ″", - 3: "ã ç ë í ñ ó Å¡ ÿ ü ž", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ã… Ä Ö", - }, - "sw": { - 0: "a b ch d e f g h i j k l m n o p r s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "c q x", - }, - "swc": { - 0: "a b c d e f g h i j k l m n o p r s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x", - 5: "A B C D E F G H I J K L M N O P R S T U V W Y Z", - }, - "ta": { - 0: "à®… ஆ இ ஈ உ ஊ எ à® à® à®’ ஓ à®” ஃ க à®™ ச ஞ ட ண த ந ப à®® ய à®° ல வ à®´ ள à®± ன ஜ à®· ஸ ஹ ா ி ீ ௠ூ ெ ே ை ொ ோ ௌ à¯", - 3: "\u200c \u200d", - }, - "te": { - 0: "à°… à°† à°‡ à°ˆ à°‰ à°Š à°‹ à±  à°Œ ౡ à°Ž à° à° à°’ à°“ à°” à° à°‚ à°ƒ à°• à°– à°— à°˜ à°™ à°š à°› à°œ à° à°ž à°Ÿ à°  à°¡ à°¢ à°£ à°¤ à°¥ à°¦ à°§ à°¨ à°ª à°« à°¬ à°­ à°® à°¯ à°° à°± à°² à°µ à°¶ à°· à°¸ à°¹ à°³ à°¾ à°¿ à±€ ౠూ ృ ౄ ె ే ై ొ ో ౌ ౠౕ à±–", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d ౦ ౧ ౨ ౩ ౪ ౫ ౬ à±­ à±® ౯", - 5: "à°… à°† à°‡ à°ˆ à°‰ à°Š à°‹ à±  à°Ž à° à° à°’ à°“ à°” à°• à°– à°— à°˜ à°™ à°š à°› à°œ à° à°ž à°Ÿ à°  à°¡ à°¢ à°£ à°¤ à°¥ à°¦ à°§ à°¨ à°ª à°« à°¬ à°­ à°® à°¯ à°° à°± à°² à°µ à°¶ à°· à°¸ à°¹ à°³", - }, - "teo": { - 0: "a b c d e g h i j k l m n o p r s t u v w x y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "f q z", - 5: "A B C D E G H I J K L M N O P R S T U V W X Y", - }, - "tg": { - 0: "а б в г Ò“ д е Ñ‘ ж з и Ó£ й к Ò› л м н о п Ñ€ Ñ Ñ‚ у Ó¯ Ñ„ Ñ… Ò³ ч Ò· ш ÑŠ Ñ ÑŽ Ñ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "ц щ Ñ‹ ÑŒ", - }, - "th": { - 0: "ฯ ๆ ๎ ์ ็ ่ ้ ๊ ๋ ภข ฃ ค ฅ ฆ ง จ ฉ ช ซ ฌ ภฎ ภภฑ ฒ ณ ด ต ถ ท ธ น บ ป ผ ภพ ฟ ภ ม ย ร ฤ ล ฦ ว ศ ษ ส ห ฬ อ ฮ ๠ะ ั า ๅ ำ ิ ี ึ ื ุ ู เ ๠โ ใ ไ ฺ", - 2: "! \" # ' ( ) * , - . / : @ [ \\ ] †– — ‘ ’ “ †… ′ ″", - 3: "\u200b", - }, - "ti": { - 0: "០ሀ ሀ ሠሂ ሃ ሄ ህ ሆ ለ ለ ሉ ሊ ላ ሌ ሠሎ ሠሠሑ ሒ ሓ ሔ ሕ ሖ ሗ መ ሙ ሚ ማ ሜ ሠሞ ሟ ሠ ሡ ሢ ሣ ሤ ሥ ሦ ሧ ረ ሩ ሪ ራ ሬ ር ሮ ሯ ሰ ሱ ሲ ሳ ሴ ስ ሶ ሷ ሸ ሹ ሺ ሻ ሼ ሽ ሾ ሿ ቀ በቂ ቃ ቄ ቅ ቆ ቈ ቊ ቊ ቋ ቌ በበበቑ ቒ ቓ ቔ ቕ ቖ ቘ ቚ ቚ ቛ ቜ በበ በ ቡ ቢ ባ ቤ ብ ቦ ቧ ቨ ቩ ቪ ቫ ቬ ቭ ቮ ቯ ተ ቱ ቲ ታ ቴ ት ቶ ቷ ቸ ቹ ቺ ቻ ቼ ች ቾ ቿ ኀ አኂ ኃ ኄ ኅ ኆ ኈ ኊ ኊ ኋ ኌ አአአኑ ኒ ና ኔ ን ኖ ኗ ኘ ኙ ኚ ኛ ኜ አኞ ኟ አ ኡ ኢ ኣ ኤ እ ኦ ኧ ከ ኩ ኪ ካ ኬ ክ ኮ ኰ ኲ ኲ ኳ ኴ ኵ ኸ ኸ ኹ ኺ ኻ ኼ ኽ ኾ á‹€ á‹‚ á‹‚ ዃ á‹„ á‹… ወ ወ ዉ á‹Š á‹‹ á‹Œ á‹ á‹Ž á‹ á‹ á‹‘ á‹’ á‹“ á‹” á‹• á‹– ዘ ዘ á‹™ á‹š á‹› á‹œ á‹ á‹ž á‹Ÿ á‹  á‹¡ á‹¢ á‹£ ዤ á‹¥ ዦ ዧ የ á‹© ዪ á‹« ዬ á‹­ á‹® á‹° á‹° ዱ ዲ ዳ á‹´ ድ ዶ á‹· ጀ ጀ ጠጂ ጃ ጄ ጅ ጆ ጇ ገ ጉ ጊ ጋ ጌ ጠጎ ጠጒ ጒ ጓ ጔ ጕ ጠ ጠ ጡ ጢ ጣ ጤ ጥ ጦ ጧ ጨ ጩ ጪ ጫ ጬ ጭ ጮ ጯ ጰ ጱ ጲ ጳ ጴ ጵ ጶ ጷ ጸ ጹ ጺ ጻ ጼ ጽ ጾ ጿ ဠá á‚ áƒ á„ á… á† á‡ áˆ á‰ áŠ á‹ áŒ á Ꭰá á á‘ á’ á“ á” á• á– á—", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "ᎠᎠ᎑ ᎒ ᎓ ᎔ ᎕ ᎖ ᎗ ᎘ ᎙ ሇ ⶀ ᎀ ᎀ Ꭰᎂ ᎃ ⶠⶠⶂ ⶃ ⶄ ቇ ᎄ ᎄ ᎅ ᎆ ᎇ ⶅ ⶅ ⶆ ⶇ ኇ ⶈ ⶈ ⶉ ⶊ ኯ ዠⶋ ዯ ⶌ ዸ ዸ ዹ ዺ á‹» ዼ ዽ ዾ á‹¿ ⶠⶎ ጠጘ ጘ ጙ ጚ ጛ ጜ ጠጞ ጟ ⶓ ⶓ ⶔ ⶕ ⶖ ⶠⶠⶠⶑ ᇠᎈ ᎈ ᎉ ᎊ ᎋ ᎌ Ꭰᎎ Ꭰⶒ ᘠᘠᙠᚠⶠ ⶠ ⶡ ⶢ ⶣ ⶤ ⶥ ⶦ ⶨ ⶨ ⶩ ⶪ ⶫ ⶬ ⶭ ⶮ ⶰ ⶰ ⶱ ⶲ ⶳ ⶴ ⶵ ⶶ ⶸ ⶸ ⶹ ⶺ ⶻ ⶼ ⶽ ⶾ â·€ â·€ â· â·‚ â·ƒ â·„ â·… â·† â·ˆ â·ˆ â·‰ â·Š â·‹ â·Œ â· â·Ž â· â· â·‘ â·’ â·“ â·” â·• â·– â·˜ â·˜ â·™ â·š â·› â·œ â· â·ž", - 5: "ሀ ለ ሠመ ሠ ረ ሰ ሸ ቀ ቈ በቘ በ ቨ ተ ቸ ኀ ኈ አኘ አ ከ ኰ ኸ á‹€ ወ ዠዘ á‹  የ á‹° ጀ ገ ጠጠ ጨ ጰ ጸ ဠሠá", - }, - "ti-ER": { - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "tig": { - 0: "áŸ á¡ á£ á£ á¤ á¥ á¦ á§ á¢ á  á¨ áŽ áŽ áŽ‘ ᎒ ᎓ ᎔ ᎕ ᎖ ᎗ ᎘ ᎙ ᲠᲠ᳠ᴠᵠᶠᷠḠṠẠỠἠ᩠᩠᪠᫠ᬠ᭠ᮠᯠᰠᱠሀ ሀ ሠሂ ሃ ሄ ህ ሆ ሇ ለ ሉ ሊ ላ ሌ ሠሎ ሠⶀ ሠሠሑ ሒ ሓ ሔ ሕ ሖ ሗ መ ሙ ሚ ማ ሜ ሠሞ ሟ ᎀ ᎀ Ꭰᎂ ᎃ ⶠሠ ሠ ሡ ሢ ሣ ሤ ሥ ሦ ሧ ረ ሩ ሪ ራ ሬ ር ሮ ሯ ⶂ ሰ ሰ ሱ ሲ ሳ ሴ ስ ሶ ሷ ⶃ ሸ ሸ ሹ ሺ ሻ ሼ ሽ ሾ ሿ ⶄ ቀ ቀ በቂ ቃ ቄ ቅ ቆ ቇ ቈ ቊ ቊ ቋ ቌ በበበቑ ቒ ቓ ቔ ቕ ቖ ቘ ቚ ቚ ቛ ቜ በበ በ ቡ ቢ ባ ቤ ብ ቦ ቧ ᎄ ᎄ ᎅ ᎆ ᎇ ⶅ ቨ ቨ ቩ ቪ ቫ ቬ ቭ ቮ ቯ ተ ቱ ቲ ታ ቴ ት ቶ ቷ ⶆ ቸ ቸ ቹ ቺ ቻ ቼ ች ቾ ቿ ⶇ ኀ ኀ አኂ ኃ ኄ ኅ ኆ ኇ ኈ ኊ ኊ ኋ ኌ አአአኑ ኒ ና ኔ ን ኖ ኗ ⶈ ኘ ኘ ኙ ኚ ኛ ኜ አኞ ኟ ⶉ አ አ ኡ ኢ ኣ ኤ እ ኦ ኧ ⶊ ከ ከ ኩ ኪ ካ ኬ ክ ኮ ኯ ኰ ኲ ኲ ኳ ኴ ኵ ኸ ኸ ኹ ኺ ኻ ኼ ኽ ኾ á‹€ á‹‚ á‹‚ ዃ á‹„ á‹… ወ ወ ዉ á‹Š á‹‹ á‹Œ á‹ á‹Ž á‹ á‹ á‹‘ á‹’ á‹“ á‹” á‹• á‹– ዘ ዘ á‹™ á‹š á‹› á‹œ á‹ á‹ž á‹Ÿ ⶋ á‹  á‹  á‹¡ á‹¢ á‹£ ዤ á‹¥ ዦ ዧ የ á‹© ዪ á‹« ዬ á‹­ á‹® ዯ á‹° ዱ ዲ ዳ á‹´ ድ ዶ á‹· ⶌ ዸ ዸ ዹ ዺ á‹» ዼ ዽ ዾ á‹¿ ⶠጀ ጀ ጠጂ ጃ ጄ ጅ ጆ ጇ ⶎ ገ ገ ጉ ጊ ጋ ጌ ጠጎ ጠጠጒ ጒ ጓ ጔ ጕ ጘ ጘ ጙ ጚ ጛ ጜ ጠጞ ጟ ⶓ ⶓ ⶔ ⶕ ⶖ ጠ ጠ ጡ ጢ ጣ ጤ ጥ ጦ ጧ ⶠጨ ጨ ጩ ጪ ጫ ጬ ጭ ጮ ጯ ⶠጰ ጰ ጱ ጲ ጳ ጴ ጵ ጶ ጷ ⶑ ጸ ጸ ጹ ጺ ጻ ጼ ጽ ጾ ጿ ဠá á‚ áƒ á„ á… á† á‡ áˆ á‰ áŠ á‹ áŒ á Ꭰá ᎈ ᎈ ᎉ ᎊ ᎋ á á ᑠᒠᓠᔠᕠᖠᗠᎌ ᎌ Ꭰᎎ Ꭰⶒ ᘠᘠᙠᚠⶠ ⶠ ⶡ ⶢ ⶣ ⶤ ⶥ ⶦ ⶨ ⶨ ⶩ ⶪ ⶫ ⶬ ⶭ ⶮ ⶰ ⶰ ⶱ ⶲ ⶳ ⶴ ⶵ ⶶ ⶸ ⶸ ⶹ ⶺ ⶻ ⶼ ⶽ ⶾ â·€ â·€ â· â·‚ â·ƒ â·„ â·… â·† â·ˆ â·ˆ â·‰ â·Š â·‹ â·Œ â· â·Ž â· â· â·‘ â·’ â·“ â·” â·• â·– â·˜ â·˜ â·™ â·š â·› â·œ â· â·ž", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "tn": { - 0: "a b d e ê f g h i j k l m n o ô p r s t u w y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "c q v x z", - }, - "to": { - 0: "a á Ä e é Ä“ f h i í Ä« k l m n ng o ó Å p s t u ú Å« v Ê»", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "à ă â Ã¥ ä æ b c ç d è Ä• ê ë g ì Ä­ î ï j ñ ò Šô ö ø Å“ q r ù Å­ û ü w x y ÿ z", - 5: "A E F H I K L M N NG O P S T U V Ê»", - }, - "tr": { - 0: "a b c ç d e f g ÄŸ h ı i Ä° j k l m n o ö p r s ÅŸ t u ü v y z", - 2: "- †– — , ; : ! ? . … ' ‘ ’ \" “ †( ) [ ] § @ * / & # † ‡ ′ ″", - 3: "á à ă â Ã¥ ä ã Ä Ã¦ ç é è Ä• ê ë Ä“ í ì Ä­ î ï Ä« ñ ó ò Šô ø Å Å“ ö q ß ú ù Å­ û Å« ü w x ÿ", - 5: "A B C Ç D E F G H I Ä° J K L M N O Ö P Q R S Åž T U Ãœ V W X Y Z", - }, - "ts": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "twq": { - 0: "a ã b c d e ẽ f g h i j k l m n ɲ Å‹ o õ p q r s Å¡ t u w x y z ž", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "v", - }, - "tzm": { - 0: "a b c d Ḡe É› f g gÊ· É£ h ḥ i j k kÊ· l m n q r á¹› s á¹£ t á¹­ u w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "o p v", - 5: "A B C D Ḍ E Æ F G Æ” H Ḥ I J K L M N Q R Ṛ S á¹¢ T Ṭ U W X Y Z", - }, - "uk": { - 0: "ʼ а б в г Ò‘ д е Ñ” ж з и Ñ– Ñ— й к л м н о п Ñ€ Ñ Ñ‚ у Ñ„ Ñ… ц ч ш щ ÑŒ ÑŽ Ñ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "Ñ‘ ÑŠ Ñ‹ Ñ", - 5: "РБ Ð’ Г Ò Ð” Е Є Ж З И І Ї Й К Л Ðœ РО П Р С Т У Ф Ð¥ Ц Ч Ш Щ Ю Я", - }, - "ur": { - 0: "ا Ø£ Ø¢ ب Ù¾ ت Ù¹ Ø« ج Ú† Ø­ Ø® د Úˆ Ø° ر Ú‘ ز Ú˜ س Ø´ ص ض Ø· ظ ع غ Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Úº Ùˆ ؤ Û Û‚ Ú¾ Ø¡ ÛŒ ئ Û’ Ø© Ù‡", - 2: "ØŒ Ø Ù« Ù¬ Ø› : ØŸ . Û” ( ) [ ]", - 3: "\u0600 \u0601 \u0602 \u0603 \u200c \u200d \u200e \u200f Ù’ ÙŽ Ù Ù Ù° Ù– Ù— Ù‹ Ù ÙŒ Ù” Ù‘ Ù˜ Ûƒ Ù» Ùº Ù¼ Ù½ ÙŠ", - 5: "ا ب Ù¾ ت Ù¹ Ø« ج Ú† Ø­ Ø® د Úˆ Ø° ر Ú‘ ز Ú˜ س Ø´ ص ض Ø· ظ ع غ Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Ùˆ Û Ú¾ Ø¡ ÛŒ Û’", - }, - "uz": { - 0: "а б в г Ò“ д е Ñ‘ ж з и й к Ò› л м н о п Ñ€ Ñ Ñ‚ у Ñž Ñ„ Ñ… Ò³ ч ш ÑŠ Ñ ÑŽ Ñ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "ц щ Ñ‹ ÑŒ", - }, - "uz-Arab": { - 0: "Ù‹ ÙŒ Ù ÙŽ Ù Ù Ù‘ Ù’ Ù” Ù° Ø¡ Ø¢ Ø£ ؤ ئ ا ب Ù¾ Ø© ت Ø« ج Ú† Ø­ Ø® د Ø° ر ز Ú˜ س Ø´ ص ض Ø· ظ ع غ Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Ù‡ Ùˆ Û‡ Û‰ ÛŒ", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "\u200c \u200d Ù¼ Ú Ú… Ú‰ Ú“ Ú– Úš Ú« Ú¼ ÙŠ Û Û", - }, - "uz-Latn": { - 0: "a aʼ b ch d e eʼ f g gÊ» h i iʼ j k l m n o oÊ» p q r s sh t u uʼ v x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "c w", - 5: "A B CH D E F G GÊ» H I J K L M N O OÊ» P Q R S SH T U V X Y Z", - }, - "vai": { - 0: "꘠ ꘠ ꘡ ꘢ ꘣ ꘤ ꘥ ꘦ ꘧ ꘨ ꘩ ꔀ ꔀ ê” ê”‚ ꔃ ꔄ ê”… ꔆ ꔇ ꔈ ꔉ ꔊ ꔋ ꔌ ꘓ ê” ê” ê”Ž ê” ê” ê”‘ ê”’ ꔓ ê”” ꔕ ê”– ê”— ꔘ ê”™ ꔚ ê”› ꔜ ê” ê”ž ꘔ ꔟ ꔟ ê”  ꔡ ꔢ ꔣ ꔤ ꔥ ꔦ ꔧ ꔨ ꔩ ꔪ ꔫ ꔬ ê”­ ê”® ꔯ ê”° ê”± ꔲ ꔳ ꘕ ê”´ ê”´ ꔵ ꔶ ê”· ꔸ ꔹ ꔺ ê”» ꔼ ꔽ ꔾ ꔿ ê•€ ê• ê•‚ ꕃ ê•„ ê•… ꕆ ꕇ ꘖ ꕈ ꕈ ꕉ ê•Š ê•‹ ê•Œ ê• ê•Ž ê• ê• ê•‘ ê•’ ꘗ ê•“ ê•“ ê•” ê•• ê•– ê•— ꕘ ê˜ ê˜˜ ê•™ ê•š ꘙ ê•› ê•› ê•œ ê• ê•ž ê•Ÿ ê•  ꘚ ê•¡ ê•¡ ê•¢ ê•£ ꕤ ê•¥ ꕦ ꕧ ꕨ ê•© ꕪ ꘑ ê•« ê•« ꕬ ê•­ ê•® ꘪ ꕯ ꕯ ê•° ꕱ ꕲ ꕳ ê•´ ꕵ ꕶ ê•· ꕸ ꕹ ꕺ ê•» ꕼ ꕽ ꕾ ê•¿ ê–€ ê– ê–‚ ê–ƒ ê–„ ê–… ꘛ ê–† ê–‡ ꘒ ê–ˆ ê–ˆ ê–‰ ê–Š ê–‹ ê–Œ ê– ê–Ž ê– ê– ê–‘ ê–’ ê–“ ê–” ê–• ê–– ê–— ê–˜ ê–™ ê–š ê–› ê–œ ê– ê–ž ê–Ÿ ê–  ê–¡ ê–¢ ê–£ ê–¤ ê–¥ ê–¦ ê–§ ê–¨ ê–© ê–ª ê–« ê–¬ ê–­ ê–® ê–¯ ê–° ê–± ê–² ê–³ ê–´ ꘜ ê–µ ê–µ ê–¶ ê–· ê–¸ ê–¹ ê–º ê–» ê–¼ ê–½ ê–¾ ê–¿ ê—€ ê— ê—‚ ê—ƒ ê—„ ê—… ê—† ê—‡ ê—ˆ ê—‰ ê—Š ê—‹ ê˜ ê—Œ ê—Œ ê— ê—Ž ê— ê— ê—‘ ꘫ ꘞ ê—’ ê—’ ê—“ ê—” ê—• ê—– ê—— ê—˜ ꘟ ê—™ ê—™ ê—š ê—› ê—œ ê— ê—ž ê—Ÿ ê—  ê—¡ ê—¢ ê—£ ê—¤ ê—¥ ê—¦ ê—§ ê—¨ ê—© ê—ª ê—« ê—¬ ê—­ ê—® ê—¯ ê—° ê—± ê—² ê—³ ê—´ ê—µ ê—¶ ê—· ê—¸ ê—¹ ê—º ê—» ê—¼ ê—½ ê—¾ ê—¿ ꘀ ê˜ ê˜‚ ꘃ ꘄ ꘅ ꘆ ꘇ ꘈ ꘉ ꘊ ꘋ ꘌ", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "vai-Latn": { - 0: "a á ã b É“ c d É— e é ẽ É› É›Ì É›Ìƒ f g h i í Ä© j k l m n Å‹ o ó õ É” É”Ì É”Ìƒ p q r s t u ú Å© v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B Æ C D ÆŠ E Æ F G H I J K L M N ÅŠ O Ɔ P Q R S T U V W X Y Z", - }, - "ve": { - 0: "a b d ḓ e f g h i k l ḽ m n á¹… ṋ o p r s t á¹± u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "vi": { - 0: "a à ả ã á ạ ă ằ ẳ ẵ ắ ặ â ầ ẩ ẫ ấ ậ b c d Ä‘ e è ẻ ẽ é ẹ ê Ỡể á»… ế ệ f g h i ì ỉ Ä© í ị j k l m n o ò Ỡõ ó Ỡô ồ ổ á»— ố á»™ Æ¡ Ỡở ỡ á»› ợ p q r s t u ù ủ Å© ú ụ Æ° ừ á»­ ữ ứ á»± v w x y ỳ á»· ỹ ý ỵ z", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "vo": { - 0: "a ä b c d e f g h i j k l m n o ö p q r s Å¡ t u ü v x y z", - 2: "- †– — , ; : ! ? . … ' ‘ ’ \" “ †« » ( ) [ ] { } § @ * / & #", - 3: "q w", - 5: "A Ä B C D E F G H I J K L M N O Ö P R S T U Ãœ V X Y Z", - }, - "vun": { - 0: "a b c d e f g h i j k l m n o p r s t u v w y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "q x", - 5: "A B C D E F G H I J K L M N O P R S T U V W Y Z", - }, - "wae": { - 0: "a á ä ã b c Ä d e é f g h i í j k l m n o ó ö õ p q r s Å¡ t u ú ü Å© v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "à ă â Ã¥ Ä Ã¦ ç è Ä• ê ë Ä“ ì Ä­ î ï Ä« ñ ò Šô ø Å Å“ ß ù Å­ û Å« ÿ", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "wal": { - 0: "០ᎠᎠ᎑ ᎒ ᎓ ᎔ ᎕ ᎖ ᎗ ᎘ ᎙ ሀ ሀ ሠሂ ሃ ሄ ህ ሆ ሇ ለ ሉ ሊ ላ ሌ ሠሎ ሠⶀ ሠሠሑ ሒ ሓ ሔ ሕ ሖ ሗ መ ሙ ሚ ማ ሜ ሠሞ ሟ ᎀ ᎀ Ꭰᎂ ᎃ ⶠሠ ሠ ሡ ሢ ሣ ሤ ሥ ሦ ሧ ረ ሩ ሪ ራ ሬ ር ሮ ሯ ⶂ ሰ ሰ ሱ ሲ ሳ ሴ ስ ሶ ሷ ⶃ ሸ ሸ ሹ ሺ ሻ ሼ ሽ ሾ ሿ ⶄ ቀ ቀ በቂ ቃ ቄ ቅ ቆ ቇ ቈ ቊ ቊ ቋ ቌ በበበቑ ቒ ቓ ቔ ቕ ቖ ቘ ቚ ቚ ቛ ቜ በበ በ ቡ ቢ ባ ቤ ብ ቦ ቧ ᎄ ᎄ ᎅ ᎆ ᎇ ⶅ ቨ ቨ ቩ ቪ ቫ ቬ ቭ ቮ ቯ ተ ቱ ቲ ታ ቴ ት ቶ ቷ ⶆ ቸ ቸ ቹ ቺ ቻ ቼ ች ቾ ቿ ⶇ ኀ ኀ አኂ ኃ ኄ ኅ ኆ ኇ ኈ ኊ ኊ ኋ ኌ አአአኑ ኒ ና ኔ ን ኖ ኗ ⶈ ኘ ኘ ኙ ኚ ኛ ኜ አኞ ኟ ⶉ አ አ ኡ ኢ ኣ ኤ እ ኦ ኧ ⶊ ከ ከ ኩ ኪ ካ ኬ ክ ኮ ኯ ኰ ኲ ኲ ኳ ኴ ኵ ኸ ኸ ኹ ኺ ኻ ኼ ኽ ኾ á‹€ á‹‚ á‹‚ ዃ á‹„ á‹… ወ ወ ዉ á‹Š á‹‹ á‹Œ á‹ á‹Ž á‹ á‹ á‹‘ á‹’ á‹“ á‹” á‹• á‹– ዘ ዘ á‹™ á‹š á‹› á‹œ á‹ á‹ž á‹Ÿ ⶋ á‹  á‹  á‹¡ á‹¢ á‹£ ዤ á‹¥ ዦ ዧ የ á‹© ዪ á‹« ዬ á‹­ á‹® ዯ á‹° ዱ ዲ ዳ á‹´ ድ ዶ á‹· ⶌ ዸ ዸ ዹ ዺ á‹» ዼ ዽ ዾ á‹¿ ⶠጀ ጀ ጠጂ ጃ ጄ ጅ ጆ ጇ ⶎ ገ ገ ጉ ጊ ጋ ጌ ጠጎ ጠጠጒ ጒ ጓ ጔ ጕ ጘ ጘ ጙ ጚ ጛ ጜ ጠጞ ጟ ⶓ ⶓ ⶔ ⶕ ⶖ ጠ ጠ ጡ ጢ ጣ ጤ ጥ ጦ ጧ ⶠጨ ጨ ጩ ጪ ጫ ጬ ጭ ጮ ጯ ⶠጰ ጰ ጱ ጲ ጳ ጴ ጵ ጶ ጷ ⶑ ጸ ጸ ጹ ጺ ጻ ጼ ጽ ጾ ጿ ဠá á‚ áƒ á„ á… á† á‡ áˆ á‰ áŠ á‹ áŒ á Ꭰá ᎈ ᎈ ᎉ ᎊ ᎋ á á ᑠᒠᓠᔠᕠᖠᗠᎌ ᎌ Ꭰᎎ Ꭰⶒ ᘠᘠᙠᚠⶠ ⶠ ⶡ ⶢ ⶣ ⶤ ⶥ ⶦ ⶨ ⶨ ⶩ ⶪ ⶫ ⶬ ⶭ ⶮ ⶰ ⶰ ⶱ ⶲ ⶳ ⶴ ⶵ ⶶ ⶸ ⶸ ⶹ ⶺ ⶻ ⶼ ⶽ ⶾ â·€ â·€ â· â·‚ â·ƒ â·„ â·… â·† â·ˆ â·ˆ â·‰ â·Š â·‹ â·Œ â· â·Ž â· â· â·‘ â·’ â·“ â·” â·• â·– â·˜ â·˜ â·™ â·š â·› â·œ â· â·ž", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "xh": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - }, - "xog": { - 0: "a b c d e f g h i j k l m n o p q r s t u v w x y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "yav": { - 0: "a á à â ÇŽ Ä b c d e é è É› É›Ì É›Ì€ f h i í ì î Ä« k l m mb n ny Å‹ Å‹g o ó ò ô Ç’ Å É” É”Ì É”Ì€ p s t u ú ù û Ç” Å« v w y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "g j q r x z", - 5: "A B C D E Æ F H I K L M N ÅŠ O Ɔ P S T U V W Y", - }, - "yo": { - 0: "a á à b d e é è ẹ áº¹Ì áº¹Ì€ f g gb h i í ì j k l m n o ó ò á» á»Ì á»Ì€ p r s á¹£ t u ú ù w y", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "c q v x z", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "zh": { - 0: "一 ä¸ ä¸ƒ 万 万 丈 三 上 下 丌 ä¸ ä¸Ž 丑 专 且 世 丘 丘 丙 业 东 ä¸ ä¸¢ 两 严 丧 个 中 丰 串 临 丸 丸 丹 为 主 丽 举 乃 ä¹… 么 义 之 之 乌 ä¹ ä¹Ž ä¹ ä¹ ä¹” ä¹– 乘 ä¹™ ä¹ ä¹Ÿ 也 ä¹  乡 书 ä¹° ä¹± ä¹¾ 了 予 争 事 二 于 äº äº‘ 互 五 井 亚 些 亡 交 交 亥 亦 产 亨 享 京 亮 亲 人 亿 亿 什 ä» ä»… 仇 今 介 ä» ä»Ž ä»” ä»– 付 ä»™ 代 代 令 以 仪 们 ä»° 仲 件 ä»· ä»» 份 仿 ä¼ ä¼Š ä¼ ä¼ ä¼ ä¼ ä¼‘ ä¼— ä¼— 优 ä¼™ 会 伟 ä¼  伤 伦 伯 ä¼° ä¼´ 伸 ä¼¼ ä¼½ 但 ä½ ä½ ä½Ž ä½ ä½ ä½‘ 体 何 ä½™ ä½› 作 ä½  佤 佩 ä½³ 使 例 ä¾› ä¾ ä¾  侦 侦 侧 侨 侬 侯 ä¾µ 便 促 ä¿„ ä¿Š ä¿— ä¿ ä¿¡ ä¿© ä¿® 俱 俾 å€ å€’ 候 倚 借 倦 值 倾 å‡ åŒ å åš åœ å¥ å¶ å· å‚¨ 催 傲 å‚» åƒ åƒ§ å„’ å„¿ å… å…ƒ å…ƒ å…„ å…… å…ˆ å…‰ å…‹ å… å…‘ å…” å…š å…¥ å…¨ å…« å…« å…¬ å…­ å…® å…° å…± å…³ å…³ å…´ å…µ å…¶ å…· å…¸ å…¹ å…» å…» å…¼ å…½ 内 冈 册 å† å†’ 写 军 农 冠 冬 冰 冲 决 况 冷 准 凌 å‡ å‡ å‡  凡 凤 凭 凯 凰 出 击 函 刀 分 切 刊 刑 划 列 列 刘 则 刚 创 åˆ åˆ¤ 利 别 到 制 制 刷 券 刺 刻 剂 å‰ å‰‘ 剧 剩 剪 副 割 力 åŠ åŠ åŠž 功 加 务 劣 动 动 助 努 劫 励 励 劲 劳 势 勇 勉 å‹‹ å‹’ 勤 勾 å‹¿ 包 匆 匈 化 北 匙 匹 匹 区 医 å åƒ å‡ åˆ åŠ åŽ å å’ å“ å• å• å– å— åš å  å  å¡ å¢ å« å¯ å¯ å° å± å³ å´ å· åŽ‚ 厄 厄 厅 历 厉 压 压 厌 åŽ åŽš 原 去 县 å‚ åˆ åˆ å‰ åŠ å‹ åŒ å å‘ å” å– å– å— å˜ å™ å£ å£ å¤ å¥ å¦ åª åª å« å¬ å­ å¯ å° å² å³ å¶ å¶ å· å¸ å¹ åƒ å„ åˆ åˆ å‰ åŠ åŒ åŒ å åŽ å å‘ å“ å— å› å åŸ å¦ å§ å« å¬ å¯ åµ å¸ å¹ å» å¾ å‘€ 呆 呈 å‘Š å‘ å‘˜ å‘œ å‘¢ 呦 周 味 呵 呼 命 å’Œ å’– å’¦ å’¦ å’§ å’¨ å’ª å’¬ å’¯ å’± å“€ å“ å“‡ 哇 哈 哉 å“ å“Ž å“Ÿ å“¥ 哦 å“© 哪 å“­ 哲 唉 å” å”¤ 唬 å”® 唯 å”± å”· 商 å•Š å•¡ å•¥ 啦 啪 å–€ å–‚ å–„ å–‡ å–Š å– å–” å–œ å– å–µ å–· å–» å—’ å—¨ å—¯ 嘉 嘛 嘴 嘻 嘿 器 å›› 回 å›  团 å›­ å›° å›´ 固 国 图 圆 圈 土 圣 在 圭 地 圳 场 圾 å€ å‡ åŽ å å‘ å— åš åš å› åœ å¡ å¤ å¦ åª åž‚ 垃 åž‹ åž’ 埃 埋 城 埔 域 培 基 å ‚ å † å • å ¡ å ª å¡‘ å¡” å¡ž å¡« 境 增 墨 å£ å£¤ 士 壬 壮 声 处 备 å¤ å¤ å¤• 外 多 夜 够 夥 大 天 天 太 夫 央 失 头 夷 夷 夸 夹 夺 奇 奇 奈 奉 奋 å¥ å¥‘ 奔 奖 套 奥 女 奴 奶 她 好 如 妇 妈 妖 妙 妥 妨 妮 妹 妻 姆 姊 始 å§ å§‘ 姓 委 姿 å¨ å¨ƒ 娄 娘 娜 娟 娱 婆 å©š 媒 å« å«Œ å«© å­ å­” å­• å­— å­— å­˜ å­™ å­œ å­ å­Ÿ å­£ å­¤ å­¦ å­© å® å®ƒ 宇 宇 守 安 宋 完 å® å®— å®— 官 å®™ 定 å®› 宜 å® å®ž 审 审 客 宣 室 宪 害 å®´ 家 容 宽 宽 宾 宿 寂 寄 寄 寅 密 寇 富 寒 å¯ å¯ å¯ž 察 寡 寨 寸 对 寻 导 寿 å° å°„ å°† å°Š å° å°‘ å°” å°– å°˜ å°š å° å°¤ å°± å°º å°¼ å°¼ å°½ å°¾ å±€ å±€ å± å±‚ å±… 屋 å± å±• 属 å±  å±± å² å²‚ å²— 岘 岚 å²› å²³ 岸 峡 å³° å´‡ å´© å´´ å· å·ž å·¡ å·¥ å·¥ å·¦ å·§ å·¨ å·« å·® å·± å·± å·² å·³ å·´ å·· å¸ å¸ å¸‚ 布 帅 师 希 å¸ å¸• 帖 å¸ å¸¦ 席 帮 常 帽 å¹… 幕 å¹² å¹² å¹³ å¹´ 并 幸 å¹» å¹» å¹¼ å¹½ 广 庆 床 åº åº“ 库 应 底 店 庙 庚 府 庞 废 度 座 庭 康 庸 廉 å»– 延 å»· 建 å¼€ 异 异 弃 弄 弊 å¼ å¼• å¼— 弘 弟 å¼  å¼¥ 弦 弯 å¼± å¼¹ 强 å½’ 当 录 å½ å½¢ 彩 彬 å½­ å½° å½± å½· å½¹ å½» å½¼ å¾€ å¾ å¾„ å¾… 很 律 後 å¾ å¾’ å¾— 循 å¾® å¾µ å¾· 心 å¿… 忆 å¿Œ å¿ å¿— å¿— 忘 å¿™ å¿  忧 å¿« 念 忽 怀 æ€ æ€Ž 怒 怕 怖 æ€ æ€¡ 急 性 怨 怪 总 æ‹ æ æ¢ æ¨ æ© æ­ æ¯ æ° æ¶ æ¼ æ‚„ 悉 æ‚” æ‚Ÿ æ‚  æ‚£ 您 悲 情 惑 惜 惠 惧 惨 惯 想 惹 æ„ æ„ˆ 愉 æ„ æ„š æ„Ÿ 愧 æ…ˆ æ…Ž æ…• æ…¢ æ…§ æ…° 憾 懂 懒 戈 戊 戌 æˆ æˆ æˆ æˆ‘ 戒 或 战 截 戴 户 房 房 所 æ‰ æ‰‡ 手 æ‰ æ‰Ž 扑 打 托 扣 执 扩 扫 扫 扬 扭 扮 扯 批 找 找 承 技 抄 把 抑 抓 投 抗 折 抢 护 报 披 抬 抱 抵 抹 抽 æ‹… 拆 拉 æ‹ æ‹’ æ‹” æ‹– 拘 æ‹› æ‹œ æ‹Ÿ æ‹¥ 拦 拨 æ‹© 括 拳 æ‹· 拼 拾 æ‹¿ æŒ æŒ‡ 按 挑 挖 æŒ æŒ¡ 挤 挥 挪 振 挺 æ‰ æ æ• æŸ æ¡ æ¢ æ® æ· æŽˆ 掉 掌 排 探 接 控 控 推 掩 措 掸 æ æ æ’ æ¡ æ´ æœ æž æ¬ æ­ æ‘„ 摆 æ‘Š æ‘” 摘 æ‘© 摸 æ’’ æ’ž æ’­ æ“ æ“Ž 擦 支 收 改 æ”» 放 政 æ•… 效 æ•Œ æ• æ•‘ æ•™ æ• æ•¢ æ•£ 敦 敬 æ•° 敲 æ•´ æ–‡ æ–‹ æ– æ–— æ–™ æ–œ æ–¥ æ–­ æ–¯ æ–° æ–¹ æ–¼ æ–½ æ— æ—… æ—‹ æ— æ—— æ—  æ—¢ æ—¥ æ—¥ æ—¦ æ—§ æ—¨ æ—© æ—­ æ—¶ æ—º 昂 昆 昌 明 æ˜ æ˜“ 星 映 春 昨 昭 是 显 晃 晋 æ™’ 晓 晚 晨 æ™® 景 æ™´ 晶 智 æš‚ æš‘ æš– æš— æš® æš´ æ›° 曲 æ›´ 曹 曼 曾 曾 替 最 月 有 朋 æœ æœ— 望 æœ æœŸ 木 未 未 末 本 札 术 朱 朵 机 æ€ æ‚ æƒ æ‰ æŽ æ æ‘ æœ æŸ æ¡ æ¥ æ¨ æ¯ æ° æ¾ æ¿ æž æž„ æž æž— æžœ æž æž¢ 枪 æž« 架 æŸ æŸ æŸ“ 柔 查 柬 柯 柳 柴 æ ‡ æ ‹ æ  æ ‘ æ ¡ æ · æ · æ ¸ æ ¹ æ ¼ 桃 框 案 æ¡Œ æ¡‘ æ¡£ æ¡¥ æ¢ æ¢… 梦 梯 械 梵 检 棉 棋 棒 棚 森 椅 æ¤ æ¤° 楚 楼 概 榜 模 樱 檀 欠 欠 次 欢 欣 欧 欲 欺 款 æ­‰ æ­Œ æ­¢ æ­¢ æ­£ æ­¤ æ­¥ æ­¦ æ­ª æ­» 殊 残 段 毅 æ¯ æ¯ æ¯’ 比 毕 毛 毫 æ° æ°‘ æ°” æ°› æ°´ æ°¸ 求 汇 汉 æ±— æ± æ±Ÿ 江 æ±  污 汤 汪 汶 æ±½ 沃 沈 沉 æ²™ 沟 没 沧 æ²³ æ²¹ æ²» 沿 泉 泊 法 æ³› 泡 泡 æ³¢ æ³£ æ³¥ 注 æ³° æ³³ æ³½ æ´‹ æ´— æ´› æ´ž æ´¥ æ´ª æ´² æ´» æ´½ æ´¾ æµ æµ… 测 济 æµ æµ‘ 浓 æµ™ 浦 浩 浪 æµ® æµ´ æµ· 涅 消 涉 涛 涨 涯 液 涵 æ·‹ æ·‘ æ·˜ æ·¡ æ·± æ·· æ·» 清 æ¸ æ¸¡ 渣 温 港 渴 游 æ¹– æ¹¾ æº æºœ 溪 滋 滑 满 滥 滨 æ»´ 漂 æ¼ æ¼” æ¼  漫 潘 潜 æ½® 澎 æ¾³ æ¿€ çŒ ç« ç­ ç¯ ç° çµ ç¿ ç‚‰ ç‚Ž ç‚® 炸 点 烂 烈 烤 烦 烧 热 焦 然 ç…Œ ç…ž ç…§ ç…® 熊 熟 燃 燕 爆 爪 爬 爱 爵 爵 父 爷 爸 爽 片 版 牌 牙 牛 牡 牢 牧 物 牲 牵 特 牺 犯 状 犹 ç‹‚ ç‹ ç‹— ç‹  独 ç‹® 狱 狼 猛 猜 猪 献 猴 玄 率 玉 王 玛 玩 玫 环 现 玲 玻 ç€ çŠ ç ç  ç­ çƒ ç† çŠ çª ç³ ç´ ç¼ ç‘™ ç‘œ ç‘ž ç‘Ÿ ç‘° 瑶 ç’ƒ ç“œ 瓦 瓶 甘 甚 甜 生 用 ç”° ç”° ç”± 甲 申 电 ç”· 甸 ç”» ç•… ç•Œ ç•™ ç•¥ 番 ç–† ç– ç–‘ ç–— ç–¯ ç–² ç–¼ ç–¾ ç—… ç—• ç—› ç—´ 癸 ç™» 白 百 çš„ 皆 皇 çš® 盈 益 监 ç›’ ç›– 盘 ç›› 盟 ç›® ç›´ 相 盼 盾 çœ çœ‰ 看 真 眠 眼 ç€ ç› ç¡ ç£ çž§ 矛 矣 知 短 石 矶 ç  ç ‚ ç  ç ” ç ´ ç¡€ ç¡• 硬 ç¡® ç¢ ç¢Ž 碗 碟 碧 碰 ç£ ç£… 磨 示 礼 社 祖 祚 ç¥ ç¥ž 祥 票 祯 祸 ç¦ ç¦… ç¦ ç¦» 秀 ç§ ç§‹ ç§ ç§‘ 秒 秘 租 秤 秦 秩 积 称 移 稀 程 ç¨ ç¨Ž 稣 稳 稿 穆 究 ç©· 穹 空 ç©¿ çª çª— çª ç«‹ ç«™ ç«ž ç«ž ç«Ÿ ç«  ç«¥ 端 竹 笑 笔 笛 符 笨 第 ç­‰ ç­‹ ç­‘ ç­” ç­– ç­¹ ç­¾ 简 ç®— 管 ç®­ ç®± 篇 篮 ç°¿ ç± ç±³ ç±» 粉 ç²’ ç²— 粤 ç²¹ ç²¾ 糊 糕 ç³– 糟 ç³» ç´  ç´¢ ç´§ ç´« ç´¯ ç¹ çº¢ 约 级 纪 纯 纲 纳 纵 纷 纸 纽 线 练 组 细 细 织 终 ç» ç» ç»“ 绕 绘 ç»™ 络 ç» ç»Ÿ 继 绩 绪 ç»­ ç»´ 绵 综 绿 ç¼… 缓 ç¼– 缘 ç¼  缩 ç¼´ 缶 缸 缺 ç½ ç½‘ 罕 ç½— 罚 ç½¢ 罪 ç½® ç½² 羊 美 羞 群 羯 ç¾½ ç¿ ç¿… ç¿” 翘 ç¿  ç¿° ç¿» 翼 耀 è€ è€ƒ 者 而 è€ è€ è€— 耳 耶 èŠ èŒ è” è˜ èš èª è‚‰ è‚– è‚š è‚¡ 肤 è‚¥ è‚© 肯 育 èƒ èƒ† 背 胎 胖 胜 胞 胡 胶 胸 能 脆 è„‘ 脱 脸 è…Š è… è…“ è…° è…¹ è…¾ è…¿ 臂 臣 自 臭 至 致 舌 èˆ èˆ’ 舞 舟 航 般 舰 船 良 色 艺 艾 节 芒 èŠ èŠ¦ 芬 芭 花 芳 è‹ è‹ è‹— è‹¥ 苦 英 茂 范 茨 茫 茶 è‰ è è’ è£ è¯ è· èŽ‰ 莎 莪 莫 莱 莲 获 èœ è© è² è„ è è¤ è¥ è§ è¨ è½ è‘— è‘› è‘¡ è’‚ è’‹ è’™ 蓉 è“ è“¬ 蔑 蔡 è–„ è–ª è—‰ è— è—¤ 虎 虑 虫 虹 虽 虾 èš è›‡ 蛋 è›™ è›® 蜂 蜜 è¶ èž èŸ¹ è ¢ è¡€ è¡Œ è¡— è¡¡ è¡£ è¡¥ 表 袋 被 袭 è£ è£‚ 装 裕 裤 西 è¦ è¦† è§ è§‚ 规 视 览 觉 角 解 言 誉 誓 è­¦ 计 订 认 讨 让 è®­ è®­ è®® 讯 è®° 讲 è®· 许 论 设 访 è¯ è¯„ 识 诉 è¯ è¯‘ 试 诗 诚 è¯ è¯ž 询 该 详 语 误 说 请 诸 诺 读 课 è° è°ƒ è°… è°ˆ è°Š è°‹ è°“ è°œ è°¢ è°¨ è°± è°· 豆 象 豪 貌 è´ è´ è´ž è´Ÿ è´¡ è´¡ è´¢ è´£ è´¤ è´¥ è´§ è´§ è´¨ è´© è´ª è´­ è´¯ è´± è´´ è´µ è´¸ è´¸ è´¹ è´º è´¼ è´¾ 资 赋 赌 èµ èµ èµ” èµ– 赚 èµ› 赞 èµ  èµ¢ 赤 赫 èµ° èµµ èµ· è¶ è¶… 越 趋 趣 足 è·ƒ è·Œ è·‘ è· è·Ÿ è·¯ è·³ è¸ è¸¢ 踩 身 躲 车 轨 轩 转 è½® è½® 软 è½° è½» è½½ 较 è¾… 辆 辈 辉 辑 输 è¾› 辞 辨 辩 è¾° è¾± è¾¹ è¾¾ è¿ è¿… 过 迈 è¿Ž è¿ è¿‘ è¿” 还 è¿™ è¿› è¿› è¿œ è¿ è¿ž è¿Ÿ 迦 迪 è¿« è¿° è¿· 追 退 退 é€ é€‚ 逃 逆 选 逊 é€ é€ é€’ 途 通 逛 é€ é€Ÿ 造 逢 逸 逻 逼 é‡ é é“ é— é­ é® éµ é¿ é‚€ é‚“ é‚£ 邦 邪 é‚® 邱 é‚» 郎 郑 部 郭 都 é„‚ é…‰ é…‹ é… é…’ é…· é…¸ 醉 醒 采 释 里 里 é‡ é‡Ž é‡ é‡‘ é’ˆ é’“ é’Ÿ é’¢ é’¦ é’± é’» é“ é“ƒ é“œ é“¢ é“­ 银 铺 链 销 é” é”… 锋 é”™ 锡 锦 é”® 锺 镇 é•œ é•­ é•¿ é—¨ é—ª é—­ é—® é—° é—² é—´ é—· é—¹ é—» é˜ é˜… é˜ é˜” 队 阮 防 防 阳 阴 阵 阶 阻 阿 陀 附 附 é™… 陆 陈 é™ é™ é™¢ 除 险 陪 陵 陵 陶 é™· 隆 éš éš éš” éšœ éš¾ 雄 雄 é›… 集 雉 雨 雪 雯 雳 零 é›· 雾 需 震 éœ éœ– 露 霸 霹 é’ é– é™ éž é  é¢ é© é¼ éž‹ éž‘ 韦 韩 音 页 顶 项 项 顺 é¡» 顽 顽 顾 é¡¿ 预 领 颇 频 颗 题 é¢ é£Ž 飘 飙 飞 食 é¤ é¥­ 饮 饰 饱 饼 馆 首 香 馨 马 驱 驶 é©» 驾 验 骑 骗 骚 骤 骨 高 鬼 é­‚ é­… é­” é±¼ é² é²œ 鸟 鸡 鸣 鸭 鸿 é¹… 鹤 é¹° 鹿 麦 麻 黄 黎 黑 默 鼓 é¼  é¼» é½ é½¿ 龄 é¾™ 龟", - 2: "﹉ ﹉ ﹊ ﹋ ﹌ _ _ ï¹ ï¹ ï¹Ž ï¹ ï¸³ ︴ - ï¼ ï¹£ †– — ︱ ― , , ï¹ ã€ ï¹‘ ; ï¼› ï¹” : : ﹕ ! ï¼ ï¹— ? ? ï¹– . . ï¹’ ‥ ︰ … 。 · ' ‘ ’ \" " “ †〠〞 ( ( ï¹™ ︵ ) ) ﹚ ︶ [ ï¼» ] ï¼½ { ï½› ï¹› ︷ } ï½ ï¹œ ︸ 〈 ︿ 〉 ï¹€ 《 ︽ 》 ︾ 「 ï¹ ã€ ï¹‚ 『 ﹃ 〠﹄ 〠︻ 】 ︼ 〔 ï¹ ï¸¹ 〕 ﹞ ︺ 〖 〗 ‖ § @ ï¼  ﹫ * * ﹡ / ï¼ \\ ï¼¼ ﹨ & & ï¹  # # ﹟ % ï¼… ﹪ ‰ ′ ″ ‵ 〃 ※", - 3: "ä¾£ å‚£ å‘ åŽ˜ å• å ¤ 奎 å·½ æ’¤ 楔 楠 滕 ç‘š 甫 盲 禄 粟 è„š é’¯ é“‚ 锑 é•‘ é­", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "zh-Hans-MO": { - 0: "一 ä¸ ä¸ƒ 万 万 丈 三 上 下 丌 ä¸ ä¸Ž 丑 专 且 世 丘 丘 丙 业 东 ä¸ ä¸¢ 两 严 丧 个 中 丰 串 临 丸 丸 丹 为 主 丽 举 乃 ä¹… 么 义 之 之 乌 ä¹ ä¹Ž ä¹ ä¹ ä¹” ä¹– 乘 ä¹™ ä¹ ä¹Ÿ 也 ä¹  乡 书 ä¹° ä¹± ä¹¾ 了 予 争 事 二 于 äº äº‘ 互 五 井 亚 些 亡 交 交 亥 亦 产 亨 享 京 亮 亲 人 亿 亿 什 ä» ä»… 仇 今 介 ä» ä»Ž ä»” ä»– 付 ä»™ 代 代 令 以 仪 们 ä»° 仲 件 ä»· ä»» 份 仿 ä¼ ä¼Š ä¼ ä¼ ä¼ ä¼ ä¼‘ ä¼— ä¼— 优 ä¼™ 会 伟 ä¼  伤 伦 伯 ä¼° ä¼´ 伸 ä¼¼ ä¼½ 但 ä½ ä½ ä½Ž ä½ ä½ ä½‘ 体 何 ä½™ ä½› 作 ä½  佤 佩 ä½³ 使 例 ä¾› ä¾ ä¾  侦 侦 侧 侨 侬 侯 ä¾µ 便 促 ä¿„ ä¿Š ä¿— ä¿ ä¿¡ ä¿© ä¿® 俱 俾 å€ å€’ 候 倚 借 倦 值 倾 å‡ åŒ å åš åœ å¥ å¶ å· å‚¨ 催 傲 å‚» åƒ åƒ§ å„’ å„¿ å… å…ƒ å…ƒ å…„ å…… å…ˆ å…‰ å…‹ å… å…‘ å…” å…š å…¥ å…¨ å…« å…« å…¬ å…­ å…® å…° å…± å…³ å…³ å…´ å…µ å…¶ å…· å…¸ å…¹ å…» å…» å…¼ å…½ 内 冈 册 å† å†’ 写 军 农 冠 冬 冰 冲 决 况 冷 准 凌 å‡ å‡ å‡  凡 凤 凭 凯 凰 出 击 函 刀 分 切 刊 刑 划 列 列 刘 则 刚 创 åˆ åˆ¤ 利 别 到 制 制 刷 券 刺 刻 剂 å‰ å‰‘ 剧 剩 剪 副 割 力 åŠ åŠ åŠž 功 加 务 劣 动 动 助 努 劫 励 励 劲 劳 势 勇 勉 å‹‹ å‹’ 勤 勾 å‹¿ 包 匆 匈 化 北 匙 匹 匹 区 医 å åƒ å‡ åˆ åŠ åŽ å å’ å“ å• å• å– å— åš å  å  å¡ å¢ å« å¯ å¯ å° å± å³ å´ å· åŽ‚ 厄 厄 厅 历 厉 压 压 厌 åŽ åŽš 原 去 县 å‚ åˆ åˆ å‰ åŠ å‹ åŒ å å‘ å” å– å– å— å˜ å™ å£ å£ å¤ å¥ å¦ åª åª å« å¬ å­ å¯ å° å² å³ å¶ å¶ å· å¸ å¹ åƒ å„ åˆ åˆ å‰ åŠ åŒ åŒ å åŽ å å‘ å“ å— å› å åŸ å¦ å§ å« å¬ å¯ åµ å¸ å¹ å» å¾ å‘€ 呆 呈 å‘Š å‘ å‘˜ å‘œ å‘¢ 呦 周 味 呵 呼 命 å’Œ å’– å’¦ å’¦ å’§ å’¨ å’ª å’¬ å’¯ å’± å“€ å“ å“‡ 哇 哈 哉 å“ å“Ž å“Ÿ å“¥ 哦 å“© 哪 å“­ 哲 唉 å” å”¤ 唬 å”® 唯 å”± å”· 商 å•Š å•¡ å•¥ 啦 啪 å–€ å–‚ å–„ å–‡ å–Š å– å–” å–œ å– å–µ å–· å–» å—’ å—¨ å—¯ 嘉 嘛 嘴 嘻 嘿 器 å›› 回 å›  团 å›­ å›° å›´ 固 国 图 圆 圈 土 圣 在 圭 地 圳 场 圾 å€ å‡ åŽ å å‘ å— åš åš å› åœ å¡ å¤ å¦ åª åž‚ 垃 åž‹ åž’ 埃 埋 城 埔 域 培 基 å ‚ å † å • å ¡ å ª å¡‘ å¡” å¡ž å¡« 境 增 墨 å£ å£¤ 士 壬 壮 声 处 备 å¤ å¤ å¤• 外 多 夜 够 夥 大 天 天 太 夫 央 失 头 夷 夷 夸 夹 夺 奇 奇 奈 奉 奋 å¥ å¥‘ 奔 奖 套 奥 女 奴 奶 她 好 如 妇 妈 妖 妙 妥 妨 妮 妹 妻 姆 姊 始 å§ å§‘ 姓 委 姿 å¨ å¨ƒ 娄 娘 娜 娟 娱 婆 å©š 媒 å« å«Œ å«© å­ å­” å­• å­— å­— å­˜ å­™ å­œ å­ å­Ÿ å­£ å­¤ å­¦ å­© å® å®ƒ 宇 宇 守 安 宋 完 å® å®— å®— 官 å®™ 定 å®› 宜 å® å®ž 审 审 客 宣 室 宪 害 å®´ 家 容 宽 宽 宾 宿 寂 寄 寄 寅 密 寇 富 寒 å¯ å¯ å¯ž 察 寡 寨 寸 对 寻 导 寿 å° å°„ å°† å°Š å° å°‘ å°” å°– å°˜ å°š å° å°¤ å°± å°º å°¼ å°¼ å°½ å°¾ å±€ å±€ å± å±‚ å±… 屋 å± å±• 属 å±  å±± å² å²‚ å²— 岘 岚 å²› å²³ 岸 峡 å³° å´‡ å´© å´´ å· å·ž å·¡ å·¥ å·¥ å·¦ å·§ å·¨ å·« å·® å·± å·± å·² å·³ å·´ å·· å¸ å¸ å¸‚ 布 帅 师 希 å¸ å¸• 帖 å¸ å¸¦ 席 帮 常 帽 å¹… 幕 å¹² å¹² å¹³ å¹´ 并 幸 å¹» å¹» å¹¼ å¹½ 广 庆 床 åº åº“ 库 应 底 店 庙 庚 府 庞 废 度 座 庭 康 庸 廉 å»– 延 å»· 建 å¼€ 异 异 弃 弄 弊 å¼ å¼• å¼— 弘 弟 å¼  å¼¥ 弦 弯 å¼± å¼¹ 强 å½’ 当 录 å½ å½¢ 彩 彬 å½­ å½° å½± å½· å½¹ å½» å½¼ å¾€ å¾ å¾„ å¾… 很 律 後 å¾ å¾’ å¾— 循 å¾® å¾µ å¾· 心 å¿… 忆 å¿Œ å¿ å¿— å¿— 忘 å¿™ å¿  忧 å¿« 念 忽 怀 æ€ æ€Ž 怒 怕 怖 æ€ æ€¡ 急 性 怨 怪 总 æ‹ æ æ¢ æ¨ æ© æ­ æ¯ æ° æ¶ æ¼ æ‚„ 悉 æ‚” æ‚Ÿ æ‚  æ‚£ 您 悲 情 惑 惜 惠 惧 惨 惯 想 惹 æ„ æ„ˆ 愉 æ„ æ„š æ„Ÿ 愧 æ…ˆ æ…Ž æ…• æ…¢ æ…§ æ…° 憾 懂 懒 戈 戊 戌 æˆ æˆ æˆ æˆ‘ 戒 或 战 截 戴 户 房 房 所 æ‰ æ‰‡ 手 æ‰ æ‰Ž 扑 打 托 扣 执 扩 扫 扫 扬 扭 扮 扯 批 找 找 承 技 抄 把 抑 抓 投 抗 折 抢 护 报 披 抬 抱 抵 抹 抽 æ‹… 拆 拉 æ‹ æ‹’ æ‹” æ‹– 拘 æ‹› æ‹œ æ‹Ÿ æ‹¥ 拦 拨 æ‹© 括 拳 æ‹· 拼 拾 æ‹¿ æŒ æŒ‡ 按 挑 挖 æŒ æŒ¡ 挤 挥 挪 振 挺 æ‰ æ æ• æŸ æ¡ æ¢ æ® æ· æŽˆ 掉 掌 排 探 接 控 控 推 掩 措 掸 æ æ æ’ æ¡ æ´ æœ æž æ¬ æ­ æ‘„ 摆 æ‘Š æ‘” 摘 æ‘© 摸 æ’’ æ’ž æ’­ æ“ æ“Ž 擦 支 收 改 æ”» 放 政 æ•… 效 æ•Œ æ• æ•‘ æ•™ æ• æ•¢ æ•£ 敦 敬 æ•° 敲 æ•´ æ–‡ æ–‹ æ– æ–— æ–™ æ–œ æ–¥ æ–­ æ–¯ æ–° æ–¹ æ–¼ æ–½ æ— æ—… æ—‹ æ— æ—— æ—  æ—¢ æ—¥ æ—¥ æ—¦ æ—§ æ—¨ æ—© æ—­ æ—¶ æ—º 昂 昆 昌 明 æ˜ æ˜“ 星 映 春 昨 昭 是 显 晃 晋 æ™’ 晓 晚 晨 æ™® 景 æ™´ 晶 智 æš‚ æš‘ æš– æš— æš® æš´ æ›° 曲 æ›´ 曹 曼 曾 曾 替 最 月 有 朋 æœ æœ— 望 æœ æœŸ 木 未 未 末 本 札 术 朱 朵 机 æ€ æ‚ æƒ æ‰ æŽ æ æ‘ æœ æŸ æ¡ æ¥ æ¨ æ¯ æ° æ¾ æ¿ æž æž„ æž æž— æžœ æž æž¢ 枪 æž« 架 æŸ æŸ æŸ“ 柔 查 柬 柯 柳 柴 æ ‡ æ ‹ æ  æ ‘ æ ¡ æ · æ · æ ¸ æ ¹ æ ¼ 桃 框 案 æ¡Œ æ¡‘ æ¡£ æ¡¥ æ¢ æ¢… 梦 梯 械 梵 检 棉 棋 棒 棚 森 椅 æ¤ æ¤° 楚 楼 概 榜 模 樱 檀 欠 欠 次 欢 欣 欧 欲 欺 款 æ­‰ æ­Œ æ­¢ æ­¢ æ­£ æ­¤ æ­¥ æ­¦ æ­ª æ­» 殊 残 段 毅 æ¯ æ¯ æ¯’ 比 毕 毛 毫 æ° æ°‘ æ°” æ°› æ°´ æ°¸ 求 汇 汉 æ±— æ± æ±Ÿ 江 æ±  污 汤 汪 汶 æ±½ 沃 沈 沉 æ²™ 沟 没 沧 æ²³ æ²¹ æ²» 沿 泉 泊 法 æ³› 泡 泡 æ³¢ æ³£ æ³¥ 注 æ³° æ³³ æ³½ æ´‹ æ´— æ´› æ´ž æ´¥ æ´ª æ´² æ´» æ´½ æ´¾ æµ æµ… 测 济 æµ æµ‘ 浓 æµ™ 浦 浩 浪 æµ® æµ´ æµ· 涅 消 涉 涛 涨 涯 液 涵 æ·‹ æ·‘ æ·˜ æ·¡ æ·± æ·· æ·» 清 æ¸ æ¸¡ 渣 温 港 渴 游 æ¹– æ¹¾ æº æºœ 溪 滋 滑 满 滥 滨 æ»´ 漂 æ¼ æ¼” æ¼  漫 潘 潜 æ½® 澎 æ¾³ æ¿€ çŒ ç« ç­ ç¯ ç° çµ ç¿ ç‚‰ ç‚Ž ç‚® 炸 点 烂 烈 烤 烦 烧 热 焦 然 ç…Œ ç…ž ç…§ ç…® 熊 熟 燃 燕 爆 爪 爬 爱 爵 爵 父 爷 爸 爽 片 版 牌 牙 牛 牡 牢 牧 物 牲 牵 特 牺 犯 状 犹 ç‹‚ ç‹ ç‹— ç‹  独 ç‹® 狱 狼 猛 猜 猪 献 猴 玄 率 玉 王 玛 玩 玫 环 现 玲 玻 ç€ çŠ ç ç  ç­ çƒ ç† çŠ çª ç³ ç´ ç¼ ç‘™ ç‘œ ç‘ž ç‘Ÿ ç‘° 瑶 ç’ƒ ç“œ 瓦 瓶 甘 甚 甜 生 用 ç”° ç”° ç”± 甲 申 电 ç”· 甸 ç”» ç•… ç•Œ ç•™ ç•¥ 番 ç–† ç– ç–‘ ç–— ç–¯ ç–² ç–¼ ç–¾ ç—… ç—• ç—› ç—´ 癸 ç™» 白 百 çš„ 皆 皇 çš® 盈 益 监 ç›’ ç›– 盘 ç›› 盟 ç›® ç›´ 相 盼 盾 çœ çœ‰ 看 真 眠 眼 ç€ ç› ç¡ ç£ çž§ 矛 矣 知 短 石 矶 ç  ç ‚ ç  ç ” ç ´ ç¡€ ç¡• 硬 ç¡® ç¢ ç¢Ž 碗 碟 碧 碰 ç£ ç£… 磨 示 礼 社 祖 祚 ç¥ ç¥ž 祥 票 祯 祸 ç¦ ç¦… ç¦ ç¦» 秀 ç§ ç§‹ ç§ ç§‘ 秒 秘 租 秤 秦 秩 积 称 移 稀 程 ç¨ ç¨Ž 稣 稳 稿 穆 究 ç©· 穹 空 ç©¿ çª çª— çª ç«‹ ç«™ ç«ž ç«ž ç«Ÿ ç«  ç«¥ 端 竹 笑 笔 笛 符 笨 第 ç­‰ ç­‹ ç­‘ ç­” ç­– ç­¹ ç­¾ 简 ç®— 管 ç®­ ç®± 篇 篮 ç°¿ ç± ç±³ ç±» 粉 ç²’ ç²— 粤 ç²¹ ç²¾ 糊 糕 ç³– 糟 ç³» ç´  ç´¢ ç´§ ç´« ç´¯ ç¹ çº¢ 约 级 纪 纯 纲 纳 纵 纷 纸 纽 线 练 组 细 细 织 终 ç» ç» ç»“ 绕 绘 ç»™ 络 ç» ç»Ÿ 继 绩 绪 ç»­ ç»´ 绵 综 绿 ç¼… 缓 ç¼– 缘 ç¼  缩 ç¼´ 缶 缸 缺 ç½ ç½‘ 罕 ç½— 罚 ç½¢ 罪 ç½® ç½² 羊 美 羞 群 羯 ç¾½ ç¿ ç¿… ç¿” 翘 ç¿  ç¿° ç¿» 翼 耀 è€ è€ƒ 者 而 è€ è€ è€— 耳 耶 èŠ èŒ è” è˜ èš èª è‚‰ è‚– è‚š è‚¡ 肤 è‚¥ è‚© 肯 育 èƒ èƒ† 背 胎 胖 胜 胞 胡 胶 胸 能 脆 è„‘ 脱 脸 è…Š è… è…“ è…° è…¹ è…¾ è…¿ 臂 臣 自 臭 至 致 舌 èˆ èˆ’ 舞 舟 航 般 舰 船 良 色 艺 艾 节 芒 èŠ èŠ¦ 芬 芭 花 芳 è‹ è‹ è‹— è‹¥ 苦 英 茂 范 茨 茫 茶 è‰ è è’ è£ è¯ è· èŽ‰ 莎 莪 莫 莱 莲 获 èœ è© è² è„ è è¤ è¥ è§ è¨ è½ è‘— è‘› è‘¡ è’‚ è’‹ è’™ 蓉 è“ è“¬ 蔑 蔡 è–„ è–ª è—‰ è— è—¤ 虎 虑 虫 虹 虽 虾 èš è›‡ 蛋 è›™ è›® 蜂 蜜 è¶ èž èŸ¹ è ¢ è¡€ è¡Œ è¡— è¡¡ è¡£ è¡¥ 表 袋 被 袭 è£ è£‚ 装 裕 裤 西 è¦ è¦† è§ è§‚ 规 视 览 觉 角 解 言 誉 誓 è­¦ 计 订 认 讨 让 è®­ è®­ è®® 讯 è®° 讲 è®· 许 论 设 访 è¯ è¯„ 识 诉 è¯ è¯‘ 试 诗 诚 è¯ è¯ž 询 该 详 语 误 说 请 诸 诺 读 课 è° è°ƒ è°… è°ˆ è°Š è°‹ è°“ è°œ è°¢ è°¨ è°± è°· 豆 象 豪 貌 è´ è´ è´ž è´Ÿ è´¡ è´¡ è´¢ è´£ è´¤ è´¥ è´§ è´§ è´¨ è´© è´ª è´­ è´¯ è´± è´´ è´µ è´¸ è´¸ è´¹ è´º è´¼ è´¾ 资 赋 赌 èµ èµ èµ” èµ– 赚 èµ› 赞 èµ  èµ¢ 赤 赫 èµ° èµµ èµ· è¶ è¶… 越 趋 趣 足 è·ƒ è·Œ è·‘ è· è·Ÿ è·¯ è·³ è¸ è¸¢ 踩 身 躲 车 轨 轩 转 è½® è½® 软 è½° è½» è½½ 较 è¾… 辆 辈 辉 辑 输 è¾› 辞 辨 辩 è¾° è¾± è¾¹ è¾¾ è¿ è¿… 过 迈 è¿Ž è¿ è¿‘ è¿” 还 è¿™ è¿› è¿› è¿œ è¿ è¿ž è¿Ÿ 迦 迪 è¿« è¿° è¿· 追 退 退 é€ é€‚ 逃 逆 选 逊 é€ é€ é€’ 途 通 逛 é€ é€Ÿ 造 逢 逸 逻 逼 é‡ é é“ é— é­ é® éµ é¿ é‚€ é‚“ é‚£ 邦 邪 é‚® 邱 é‚» 郎 郑 部 郭 都 é„‚ é…‰ é…‹ é… é…’ é…· é…¸ 醉 醒 采 释 里 里 é‡ é‡Ž é‡ é‡‘ é’ˆ é’“ é’Ÿ é’¢ é’¦ é’± é’» é“ é“ƒ é“œ é“¢ é“­ 银 铺 链 销 é” é”… 锋 é”™ 锡 锦 é”® 锺 镇 é•œ é•­ é•¿ é—¨ é—ª é—­ é—® é—° é—² é—´ é—· é—¹ é—» é˜ é˜… é˜ é˜” 队 阮 防 防 阳 阴 阵 阶 阻 阿 陀 附 附 é™… 陆 陈 é™ é™ é™¢ 除 险 陪 陵 陵 陶 é™· 隆 éš éš éš” éšœ éš¾ 雄 雄 é›… 集 雉 雨 雪 雯 雳 零 é›· 雾 需 震 éœ éœ– 露 霸 霹 é’ é– é™ éž é  é¢ é© é¼ éž‹ éž‘ 韦 韩 音 页 顶 项 项 顺 é¡» 顽 顽 顾 é¡¿ 预 领 颇 频 颗 题 é¢ é£Ž 飘 飙 飞 食 é¤ é¥­ 饮 饰 饱 饼 馆 首 香 馨 马 驱 驶 é©» 驾 验 骑 骗 骚 骤 骨 高 鬼 é­‚ é­… é­” é±¼ é² é²œ 鸟 鸡 鸣 鸭 鸿 é¹… 鹤 é¹° 鹿 麦 麻 黄 黎 黑 默 鼓 é¼  é¼» é½ é½¿ 龄 é¾™ 龟", - 3: "ä¾£ å‚£ å‘ åŽ˜ å• å ¤ 奎 å·½ æ’¤ 楔 楠 滕 ç‘š 甫 盲 禄 粟 è„š é’¯ é“‚ 锑 é•‘ é­", - 5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", - }, - "zh-Hant": { - 0: "一 ä¸ ä¸ƒ 丈 丈 三 上 下 丌 ä¸ ä¸‘ 且 世 丘 丙 丟 並 中 串 丸 丹 主 乃 ä¹… 么 之 乎 ä¹ ä¹– 乘 ä¹™ ä¹ ä¹Ÿ ä¹¾ 亂 了 予 事 二 于 云 互 五 井 些 亞 亡 交 交 亥 亦 亨 享 京 亮 人 什 ä» ä»‡ 今 介 ä» ä»” ä»– 付 ä»™ 代 代 令 以 ä»° 仲 件 ä»» 份 ä¼ ä¼Š ä¼ ä¼ ä¼‘ ä¼™ 伯 ä¼° ä¼´ 伸 ä¼¼ ä¼½ 但 佈 佉 ä½ ä½ ä½Ž ä½ ä½” 何 ä½™ ä½› 作 ä½  佩 ä½³ 使 來 例 ä¾› ä¾ ä¾¯ ä¾µ 便 ä¿‚ ä¿‚ 促 ä¿„ ä¿Š ä¿— ä¿ ä¿  ä¿¡ ä¿® 俱 俾 個 å€ å€‘ 倒 候 倚 借 倫 值 å‡ å‰ å åš åœ å¥ å´ å´ åµ å¶ å· å‚‘ å‚™ å‚¢ å‚£ 傲 傳 å‚· å‚» 傾 僅 åƒ åƒ‘ 僧 價 å„€ å„„ å„’ 儘 優 å… å…ƒ å…ƒ å…„ å…… å…‡ å…‡ å…ˆ å…‰ å…‹ å… å…’ å…” å…¥ å…§ å…§ å…¨ å…© å…« å…« å…¬ å…­ å…® å…± å…µ å…µ å…¶ å…· å…¸ å…¼ 冊 å† å†’ 冠 冬 冰 冷 准 凌 å‡ å‡¡ 凰 凱 出 函 刀 分 切 刊 列 åˆ åˆ¤ 別 利 刪 到 制 刷 刺 刻 則 剌 å‰ å‰› 剩 剪 副 割 創 劃 劇 劉 åŠ åŠ› 功 加 助 助 努 劫 å‹ å‹‡ 勉 å‹’ å‹• å‹™ å‹ å‹ž å‹¢ 勤 勵 勸 å‹¿ 包 匈 化 北 匹 å€ å åƒ å‡ åˆ åŠ å’ å’ å“ å” å— åš åœ å¡ å¯ å¯ å° å± å³ å· å» åŽ„ 厘 厚 原 厭 厲 去 åƒ åˆ åŠ å‹ å å” å– å— å£ å£ å¤ å¥ å¦ åª åª å« å¬ å­ å¯ å° å² å³ å¸ åƒ å„ åˆ åˆ å‰ åŠ åŒ åŒ å åŽ å å å‘ å’ å› å å åž åŸ å  å¦ å§ å« å³ åµ å¸ å¹ å¾ å‘€ å‘‚ 呆 å‘Š å‘¢ 周 味 呵 呼 命 å’Œ å’– å’¦ å’§ å’ª å’¬ å’± å“€ å“ å“‡ 哇 哈 哉 å“Ž å“¡ å“¥ 哦 å“© 哪 å“­ 哲 唉 å” å”” 唬 å”® 唯 å”± å”· 唸 商 å•Š å• å•Ÿ å•¡ å•¥ 啦 啪 å–€ å–‚ å–„ å–‡ å–Š å–” å–œ å– å–¬ å–® å–µ å—Ž å—š å—¨ å—¯ 嘆 嘉 嘗 嘛 嘴 嘻 嘿 器 å™´ 嚇 åš´ 囉 å›› 回 å›  å›° 固 圈 國 åœ åœ’ 圓 圖 團 圜 土 在 圭 地 圾 å€ å‡ åŽ å å¡ å¤ å¦ åª åž‚ 垃 åž‹ 埃 城 埔 域 執 培 基 å ‚ å … å † å ¡ å ª å ± å ´ å¡Š å¡” å¡— å¡ž å¡« 塵 境 增 墨 墮 å£ å£‡ 壓 壘 壞 壢 士 壬 壯 壽 å¤ å¤• 外 多 夜 夠 夢 夥 大 天 天 太 夫 央 失 夷 夸 夾 奇 奇 奈 奉 奎 å¥ å¥‘ 奔 套 奧 奪 奮 女 奴 奶 她 好 如 妙 å¦ å¦¥ 妨 妮 妳 妹 妻 姆 姊 始 å§ å§‘ 姓 委 姿 å¨ å¨ƒ 娘 娛 å© å©† å©š 婦 媒 媽 å«Œ å«© å­ å­” å­— å­˜ å­ å­Ÿ å­£ å­¤ å­© å­« å­¸ 它 å®… 宇 宇 守 安 宋 完 å® å®— å®— 官 å®™ 定 å®› 宜 客 客 宣 室 å®® 害 家 容 宿 寂 寄 寄 寅 密 富 寒 寞 察 寢 實 實 寧 寨 審 寫 寬 寮 寵 寶 å° å°„ å°‡ å°ˆ å°Š å°‹ å° å° å°Ž å° å°‘ å°– å°š å°¤ å°± å°º å°¼ å°¾ å±€ å± å±… 屆 屋 å± å±• å±  層 屬 å±± 岡 岩 岸 å³° 島 å³½ å´‡ å´™ å´´ åµ å¶º å· å·ž å·¡ å·¥ å·¥ å·¦ å·§ å·¨ å·« å·® å·± å·± å·² å·³ å·´ å·· 市 布 希 帕 帖 帛 å¸ å¸¥ 師 席 帳 帶 常 帽 å¹… 幕 å¹£ 幫 å¹² å¹² å¹³ å¹´ 幸 å¹¹ å¹» å¹» å¹¼ å¹½ å¹¾ 庇 床 åº åº• 店 庚 府 度 座 庫 庭 康 庸 廉 å»– å»  廢 廣 廳 延 å»· 建 弄 å¼ å¼• å¼— 弘 弟 弦 å¼± å¼µ å¼· 彈 彊 彌 彎 å½ å½ž å½¢ å½¥ 彩 彬 å½­ å½° å½± å½¹ å½¼ å¾€ å¾ å¾… 很 律 後 å¾ å¾ å¾‘ å¾’ å¾— 從 復 å¾® å¾µ å¾· å¾¹ 心 å¿… å¿Œ å¿ å¿— å¿— 忘 å¿™ å¿  å¿« 念 忽 怎 怒 怕 怖 æ€ æ€¡ 急 性 怨 怪 æ† æ æ¢ æ¥ æ¨ æ© æ­ æ¯ æ° æ‚… 悉 æ‚” æ‚Ÿ æ‚  您 悲 悶 情 惑 惜 惠 惡 惱 想 惹 æ„ æ„ˆ 愉 æ„ æ„š æ„› æ„Ÿ æ…ˆ æ…‹ æ…• æ…˜ æ…¢ æ…£ æ…§ æ…® æ…° æ…¶ æ…¾ 憂 æ† æ†‘ 憲 憶 憾 懂 應 懶 懷 懼 戀 戈 戊 戌 æˆ æˆ æˆ‘ 戒 或 截 戰 戲 戴 戶 房 房 所 æ‰ æ‰‡ 手 æ‰ æ‰Ž 打 托 扣 扥 扭 扯 批 找 找 承 技 抄 把 抓 投 抗 折 披 抬 抱 抵 抹 抽 拆 拉 æ‹‹ æ‹ æ‹ æ‹’ æ‹” æ‹– æ‹› æ‹œ 括 拳 拼 拾 æ‹¿ æŒ æŒ‡ 按 挑 挖 挪 振 挺 æ æ• æ¨ æ² æ· æŽƒ 授 掉 掌 排 掛 採 探 接 控 推 措 æ æ æ’ æš æ› æ¡ æ® æ´ æ æ– æœ æž æ¬ æ­ æ¶ æ‘˜ æ‘© 摸 æ’ æ’’ æ’ž æ’£ æ’¥ æ’­ æ’¾ æ’¿ æ“ æ“‡ æ“Š æ“‹ æ“ æ“Ž æ“” æ“š æ“  擦 擬 æ“´ 擺 擾 æ” æ”¯ 收 改 æ”» 放 政 æ•… 效 æ• æ• æ•‘ æ•— æ•— 敘 æ•™ æ• æ•¢ æ•£ 敦 敬 æ•´ 敵 數 æ–‡ æ– æ–— æ–™ æ–¯ æ–° æ–· æ–¹ æ–¼ æ–½ æ— æ—… æ—‹ æ— æ—— æ—¢ æ—¥ æ—¦ æ—© æ—­ æ—º 昂 昆 昇 昌 明 æ˜ æ˜“ 星 映 春 昨 昭 是 時 晉 æ™’ 晚 晨 æ™® 景 æ™´ 晶 智 æš‘ æš– æš— æš« æš´ 曆 曉 æ›° 曲 æ›´ 書 曼 曾 曾 替 最 會 月 有 朋 æœ æœ— 望 æœ æœŸ 木 未 未 末 本 札 朱 朵 æ‰ æŽ æ æ‘ æœ æŸ æ¯ æ¯ æ° æ± æ¾ æ¿ æž æž— æžœ æž æž¶ æŸ æŸ æŸ“ 柔 查 柬 柯 柳 柴 æ ¡ æ ¸ æ ¹ æ ¼ 桃 案 æ¡Œ æ¡‘ æ¢ æ¢… æ¢ æ¢¨ 梯 械 梵 棄 棉 棋 棒 棚 森 椅 æ¤ æ¤° 楊 楓 楚 業 極 概 榜 榮 構 æ§ æ¨‚ 樓 標 樞 模 樣 樹 æ©‹ æ©Ÿ æ©« 檀 檔 檢 欄 權 次 欣 欲 欺 欽 款 æ­‰ æ­Œ æ­ æ­¡ æ­¡ æ­¢ æ­£ æ­¤ æ­¥ æ­¦ æ­² æ­· æ­¸ æ­» 殊 殘 段 殺 殼 毀 毅 æ¯ æ¯ æ¯’ 比 毛 毫 æ° æ°‘ æ°£ æ°´ æ°¸ 求 æ±— æ± æ±Ÿ 江 æ±  污 汪 汶 決 æ±½ 沃 沈 沉 æ²’ æ²– æ²™ æ²³ æ²¹ æ²» 沿 æ³ æ³‰ 泊 法 泡 æ³¢ æ³¥ 注 æ³° æ³³ æ´‹ æ´— æ´› æ´ž æ´© æ´ª æ´² æ´» æ´½ æ´¾ æµ æµ¦ 浩 浪 æµ® æµ· 涇 涇 消 涉 涯 液 涵 涼 æ·‘ æ·š æ·¡ æ·¨ æ·± æ·· æ·º 清 減 渡 測 港 游 æ¹– 湯 æº æº– æº æºª 溫 滄 æ»… 滋 滑 æ»´ 滾 滿 漂 æ¼ æ¼” æ¼  æ¼¢ 漫 æ¼² 漸 æ½” 潘 æ½› æ½® 澤 æ¾³ æ¿€ 濃 æ¿Ÿ 濤 æ¿« 濱 ç€ çŒ ç£ ç« ç° ç½ ç‚Ž ç‚® 炸 為 烈 çƒ çƒ¤ ç„¡ 焦 然 ç…™ ç…ž ç…§ ç…© 熊 熟 熱 燃 燈 燒 營 爆 çˆ çˆ› 爪 爬 爭 爵 父 爸 爺 爽 爾 牆 牆 片 版 牌 牙 牛 牠 牧 物 牲 特 牽 犧 犯 ç‹€ ç‹‚ ç‹ ç‹— ç‹  狼 猛 猜 猴 猶 ç„ ç… çŽ ç¨ ç² ç¸ ç» çŽ„ 率 玉 王 玩 玫 玲 玻 çŠ ç ç  ç¥ ç­ ç¾ çƒ ç† ç‰ çª ç´ ç‘™ ç‘œ ç‘ž ç‘Ÿ 瑤 瑪 ç‘° ç’° ç“œ 瓦 瓶 甘 甚 甜 生 產 用 ç”° ç”° ç”± 甲 申 ç”· 甸 ç•Œ ç•™ ç•¢ ç•¥ 番 ç•« ç•° 當 ç–† ç– ç–‘ ç–¼ ç—… ç—• ç—› ç—´ 瘋 療 癡 癸 ç™» ç™» 發 白 百 çš„ 皆 皇 çš® 盃 益 ç›› 盜 盟 盡 監 盤 盧 ç›® 盲 ç›´ 相 盼 盾 çœ çœ‰ 看 真 眠 眼 眾 ç› ç¡ ç£ çž§ çž­ 矛 矣 知 短 石 ç ‚ ç  ç ” ç ² ç ´ 硬 碎 碗 碟 碧 碩 碰 確 碼 ç£ ç£¨ 磯 礎 礙 示 社 祕 祖 祚 祛 ç¥ ç¥ž 祥 票 祿 ç¦ ç¦ ç¦ ç¦Ž ç¦ ç¦ª 禮 秀 ç§ ç§‹ 科 秒 秘 租 秤 秦 移 稅 程 ç¨ ç¨® 稱 稿 穆 ç©Œ ç© ç©© 究 穹 空 ç©¿ çª çª— 窩 窮 窶 ç«‹ ç«™ ç«Ÿ ç«  ç«¥ 端 競 竹 笑 笛 符 笨 第 ç­† ç­‰ ç­‹ ç­” ç­– 简 ç®— 管 ç®­ ç®± 節 範 篇 築 ç°¡ ç°« ç°½ ç°¿ 籃 籌 ç± ç±¤ ç±³ 粉 ç²— ç²µ ç²¾ 糊 糕 糟 ç³» ç³¾ ç´€ ç´„ ç´… ç´ ç´ ç´” ç´™ ç´™ ç´š ç´› ç´  ç´¢ ç´« ç´¯ ç´° ç´¹ 終 組 çµ çµ• 絡 給 çµ± çµ² 經 綜 綠 維 綱 網 ç·Š ç·’ ç·š ç·£ ç·¨ ç·© ç·¬ ç·¯ ç·´ 縛 縣 縮 縱 總 績 ç¹ ç¹† ç¹” 繞 繪 ç¹³ ç¹¼ 續 缸 缺 罕 罪 ç½® ç½° ç½² ç½µ ç½· ç¾… 羊 美 羞 群 義 ç¾½ ç¿ ç¿’ ç¿” ç¿° 翹 ç¿» 翼 耀 è€ è€ƒ 者 而 è€ è€ è€— 耳 耶 èŠ è– èš èž è¯ è° è² è· è½ è‚‰ è‚š è‚¡ è‚¥ è‚© 肯 育 背 胎 胖 胞 胡 胸 能 脆 è„« è…“ è…” è…¦ è…° è…³ è…¿ 膽 臉 臘 臣 臥 臨 自 臭 至 致 臺 與 與 興 舉 舊 舌 èˆ èˆ’ 舞 舟 航 般 船 艦 良 色 艾 èŠ èŠ¬ 花 芳 è‹¥ 苦 英 茅 茫 茲 茶 è‰ è’ è· è¼ èŽ‰ 莊 莎 莫 èœ è© è¯ è² è„ èŠ è¬ è½ è‘‰ è‘— è‘› è‘¡ è’‚ è’™ è’² è’¼ è“‹ è“® 蔕 蔡 蔣 è•­ è–„ è–¦ è–© è–ª è—‰ è— è— è— è—¤ è—¥ 蘆 蘇 蘭 虎 處 è™› 號 虧 蛇 蛋 è›™ 蜂 蜜 è¶ èž èž¢ 蟲 蟹 è  è » è¡€ è¡Œ è¡“ è¡— è¡› è¡ è¡¡ è¡£ 表 袋 被 è£ è£‚ 裕 補 è£ è£¡ 製 複 褲 西 è¦ è¦† 見 è¦ è¦– 親 覺 覽 觀 角 解 觸 言 訂 計 訊 討 訓 託 記 訥 訪 設 許 訴 註 証 è©• è©ž è©¢ 試 è©© 話 話 該 詳 誇 誌 èª èª“ 誕 語 誠 誤 說 誰 課 誼 調 談 è«‹ è«’ è«– 諸 諺 諾 謀 謂 講 è¬ è­‰ è­˜ è­œ è­¦ è­¯ è­° è­· è­½ 讀 變 讓 讚 è°· 豆 豈 è± è±¡ 豪 豬 貌 貓 è² è²ž è²  è²  財 è²¢ 貨 貪 貪 貫 責 è²´ è²· è²» è²¼ è³€ 資 賈 賓 賜 賞 è³¢ è³¢ è³£ 賤 賦 質 è³­ è³´ 賺 è³¼ è³½ è´ˆ è´Š è´ èµ¤ 赫 èµ° èµ· 超 越 趕 趙 趣 趨 足 è·Œ è·Ž è·‘ è· è·Ÿ è·¡ è·¯ è·³ è¸ è¸¢ 蹟 蹤 èº èº« 躲 車 軌 è» è»’ 軟 較 載 è¼” 輕 è¼› è¼ è¼© 輪 輯 輸 轉 轟 è¾› 辦 辨 è¾­ 辯 辯 è¾° è¾± è¾² è¿… è¿Ž è¿‘ è¿” 迦 迪 è¿« è¿° è¿´ è¿· 追 退 é€ é€ƒ 逆 é€ é€ é€” 這 這 通 逛 é€ é€Ÿ 造 逢 連 週 進 逸 逼 é‡ éŠ é‹ é éŽ é“ é“ é” é• é™ éœ é  é© é­ é® é² é· é¸ éº é¿ é¿ é‚€ é‚ é‚„ é‚Š é‚ é‚£ 邦 邪 邱 郎 部 郭 郵 都 é„‚ 鄉 é„­ é„° é…‰ é… é…’ é…· é…¸ 醉 醒 醜 醫 采 釋 釋 里 é‡ é‡Ž é‡ é‡‘ é‡ é‡£ 鈴 鉢 銀 銅 銖 銘 銳 銷 é‹’ 鋼 錄 錢 錦 錫 錯 é‹ éµ é¾ éŽŠ 鎖 鎮 é¡ é˜ éµ é‘‘ é•· é–€ é–ƒ é–‰ é–‹ é– é–’ é–“ é–£ é–± é—† é—Š é— é— é—œ é—¡ 防 阻 阿 陀 附 é™ é™ é™¢ 院 陣 除 陪 é™° 陳 陵 陵 陶 é™· 陸 陽 隆 隊 階 éš” éš› éšœ 隨 險 éš± éš» 雄 雄 é›… 集 雉 é›– é›™ 雜 雞 離 難 雨 雪 雲 零 é›· é›» 需 震 éœ éœ§ 露 霸 霹 é‚ éˆ é’ é– éœ éž é  é¢ é© é¼ éž‹ 韃 韋 韓 音 韻 響 é  é ‚ é … é † é ˆ é  é ‘ é “ é — é ˜ é ž é ­ é » 顆 é¡Œ é¡ é¡ é¡˜ é¡ž 顧 顯 風 飄 飛 食 飯 飲 飽 飾 餅 養 é¤ é¤˜ 館 首 香 馬 é§ é§• 駛 騎 騙 騷 é©… é©— é©š 骨 é«” 高 é«® 鬆 鬥 鬧 鬱 鬼 é­ é­‚ é­… é­” é­š é­¯ é®® é³¥ é³³ é³´ é´» éµ é·¹ 鹿 麗 麥 麵 麻 麼 黃 黎 黑 默 點 黨 鼓 é¼  é¼» 齊 齋 é½’ 齡 é¾ é¾œ", - 2: "‾ ﹉ ﹉ ﹊ ﹋ ﹌ _ _ ï¹ ï¹ ï¹Ž ï¹ ï¸³ ︴ - ï¼ ï¹£ †– ︲ — ﹘ ︱ , , ï¹ ã€ ï¹‘ ; ï¼› ï¹” : : ﹕ ! ï¼ ï¹— ? ? ï¹– . . ï¹’ ‥ ︰ … 。 · ' ‘ ’ \" " “ †〠〞 ( ( ï¹™ ︵ ) ) ﹚ ︶ [ ï¼» ] ï¼½ { ï½› ï¹› ︷ } ï½ ï¹œ ︸ 〈 ︿ 〉 ï¹€ 《 ︽ 》 ︾ 「 ï¹ ã€ ï¹‚ 『 ﹃ 〠﹄ 〠︻ 】 ︼ 〔 ï¹ ï¸¹ 〕 ﹞ ︺ § @ ï¼  ﹫ * * ﹡ / ï¼ \\ ï¼¼ ﹨ & & ï¹  # # ﹟ % ï¼… ﹪ ‰ † ‡ ‧ ′ ″ ‵ 〃 ※", - 3: "ä¼ ä¾¶ å…Œ å…¹ 别 勳 å‘ å  å¶ å ¤ 墎 奥 å­œ 峇 å·½ å½ æ¥” 渾 燦 ç‹„ ç³ ç‘š 甫 ç¤ èŠ’ è‹— 茨 èš© 蜀 éš´", - 5: "一 ä¸ ä¸ˆ ä¸ ä¸” 丞 並 串 乘 ä¹¾ 亂 亭 å‚€ 僎 僵 å„ å„Ÿ 儳 å„· å„» å¢ åš´ 囌 囑 廳", - }, - "zh-Hant-HK": { - 0: "一 ä¸ ä¸ƒ 丈 丈 三 上 下 丌 ä¸ ä¸‘ 且 世 丘 丙 丟 並 中 串 丸 丹 主 乃 ä¹… 么 之 乎 ä¹ ä¹– 乘 ä¹™ ä¹ ä¹Ÿ ä¹¾ 亂 了 予 事 二 于 云 互 五 井 些 亞 亡 交 交 亥 亦 亨 享 京 亮 人 什 ä» ä»‡ 今 介 ä» ä»” ä»– 付 ä»™ 代 代 令 以 ä»° 仲 件 ä»» 份 ä¼ ä¼Š ä¼ ä¼ ä¼‘ ä¼™ 伯 ä¼° ä¼´ 伸 ä¼¼ ä¼½ 但 佈 佉 ä½ ä½ ä½Ž ä½ ä½” 何 ä½™ ä½› 作 ä½  佩 ä½³ 使 來 例 ä¾› ä¾ ä¾¯ ä¾µ 便 ä¿‚ ä¿‚ 促 ä¿„ ä¿Š ä¿— ä¿ ä¿  ä¿¡ ä¿® 俱 俾 個 å€ å€‘ 倒 候 倚 借 倫 值 å‡ å‰ å åš åœ å¥ å´ å´ åµ å¶ å· å‚‘ å‚™ å‚¢ å‚£ 傲 傳 å‚· å‚» 傾 僅 åƒ åƒ‘ 僧 價 å„€ å„„ å„’ 儘 優 å… å…ƒ å…ƒ å…„ å…… å…‡ å…‡ å…ˆ å…‰ å…‹ å… å…’ å…” å…¥ å…§ å…§ å…¨ å…© å…« å…« å…¬ å…­ å…® å…± å…µ å…µ å…¶ å…· å…¸ å…¼ 冊 å† å†’ 冠 冬 冰 冷 准 凌 å‡ å‡¡ 凰 凱 出 函 刀 分 切 刊 列 åˆ åˆ¤ 別 利 刪 到 制 刷 刺 刻 則 剌 å‰ å‰› 剩 剪 副 割 創 劃 劇 劉 åŠ åŠ› 功 加 助 助 努 劫 å‹ å‹‡ 勉 å‹’ å‹• å‹™ å‹ å‹ž å‹¢ 勤 勵 勸 å‹¿ 包 匈 化 北 匹 å€ å åƒ å‡ åˆ åŠ å’ å’ å“ å” å— åš åœ å¡ å¯ å¯ å° å± å³ å· å» åŽ„ 厘 厚 原 厭 厲 去 åƒ åˆ åŠ å‹ å å” å– å— å£ å£ å¤ å¥ å¦ åª åª å« å¬ å­ å¯ å° å² å³ å¸ åƒ å„ åˆ åˆ å‰ åŠ åŒ åŒ å åŽ å å å‘ å’ å› å å åž åŸ å  å¦ å§ å« å³ åµ å¸ å¹ å¾ å‘€ å‘‚ 呆 å‘Š å‘¢ 周 味 呵 呼 命 å’Œ å’– å’¦ å’§ å’ª å’¬ å’± å“€ å“ å“‡ 哇 哈 哉 å“Ž å“¡ å“¥ 哦 å“© 哪 å“­ 哲 唉 å” å”” 唬 å”® 唯 å”± å”· 唸 商 å•Š å• å•Ÿ å•¡ å•¥ 啦 啪 å–€ å–‚ å–„ å–‡ å–Š å–” å–œ å– å–¬ å–® å–µ å—Ž å—š å—¨ å—¯ 嘆 嘉 嘗 嘛 嘴 嘻 嘿 器 å™´ 嚇 åš´ 囉 å›› 回 å›  å›° 固 圈 國 åœ åœ’ 圓 圖 團 圜 土 在 圭 地 圾 å€ å‡ åŽ å å¡ å¤ å¦ åª åž‚ 垃 åž‹ 埃 城 埔 域 執 培 基 å ‚ å … å † å ¡ å ª å ± å ´ å¡Š å¡” å¡— å¡ž å¡« 塵 境 增 墨 墮 å£ å£‡ 壓 壘 壞 壢 士 壬 壯 壽 å¤ å¤• 外 多 夜 夠 夢 夥 大 天 天 太 夫 央 失 夷 夸 夾 奇 奇 奈 奉 奎 å¥ å¥‘ 奔 套 奧 奪 奮 女 奴 奶 她 好 如 妙 å¦ å¦¥ 妨 妮 妳 妹 妻 姆 姊 始 å§ å§‘ 姓 委 姿 å¨ å¨ƒ 娘 娛 å© å©† å©š 婦 媒 媽 å«Œ å«© å­ å­” å­— å­˜ å­ å­Ÿ å­£ å­¤ å­© å­« å­¸ 它 å®… 宇 宇 守 安 宋 完 å® å®— å®— 官 å®™ 定 å®› 宜 客 客 宣 室 å®® 害 家 容 宿 寂 寄 寄 寅 密 富 寒 寞 察 寢 實 實 寧 寨 審 寫 寬 寮 寵 寶 å° å°„ å°‡ å°ˆ å°Š å°‹ å° å° å°Ž å° å°‘ å°– å°š å°¤ å°± å°º å°¼ å°¾ å±€ å± å±… 屆 屋 å± å±• å±  層 屬 å±± 岡 岩 岸 å³° 島 å³½ å´‡ å´™ å´´ åµ å¶º å· å·ž å·¡ å·¥ å·¥ å·¦ å·§ å·¨ å·« å·® å·± å·± å·² å·³ å·´ å·· 市 布 希 帕 帖 帛 å¸ å¸¥ 師 席 帳 帶 常 帽 å¹… 幕 å¹£ 幫 å¹² å¹² å¹³ å¹´ 幸 å¹¹ å¹» å¹» å¹¼ å¹½ å¹¾ 庇 床 åº åº• 店 庚 府 度 座 庫 庭 康 庸 廉 å»– å»  廢 廣 廳 延 å»· 建 弄 å¼ å¼• å¼— 弘 弟 弦 å¼± å¼µ å¼· 彈 彊 彌 彎 å½ å½ž å½¢ å½¥ 彩 彬 å½­ å½° å½± å½¹ å½¼ å¾€ å¾ å¾… 很 律 後 å¾ å¾ å¾‘ å¾’ å¾— 從 復 å¾® å¾µ å¾· å¾¹ 心 å¿… å¿Œ å¿ å¿— å¿— 忘 å¿™ å¿  å¿« 念 忽 怎 怒 怕 怖 æ€ æ€¡ 急 性 怨 怪 æ† æ æ¢ æ¥ æ¨ æ© æ­ æ¯ æ° æ‚… 悉 æ‚” æ‚Ÿ æ‚  您 悲 悶 情 惑 惜 惠 惡 惱 想 惹 æ„ æ„ˆ 愉 æ„ æ„š æ„› æ„Ÿ æ…ˆ æ…‹ æ…• æ…˜ æ…¢ æ…£ æ…§ æ…® æ…° æ…¶ æ…¾ 憂 æ† æ†‘ 憲 憶 憾 懂 應 懶 懷 懼 戀 戈 戊 戌 æˆ æˆ æˆ‘ 戒 或 截 戰 戲 戴 戶 房 房 所 æ‰ æ‰‡ 手 æ‰ æ‰Ž 打 托 扣 扥 扭 扯 批 找 找 承 技 抄 把 抓 投 抗 折 披 抬 抱 抵 抹 抽 拆 拉 æ‹‹ æ‹ æ‹ æ‹’ æ‹” æ‹– æ‹› æ‹œ 括 拳 拼 拾 æ‹¿ æŒ æŒ‡ 按 挑 挖 挪 振 挺 æ æ• æ¨ æ² æ· æŽƒ 授 掉 掌 排 掛 採 探 接 控 推 措 æ æ æ’ æš æ› æ¡ æ® æ´ æ æ– æœ æž æ¬ æ­ æ¶ æ‘˜ æ‘© 摸 æ’ æ’’ æ’ž æ’£ æ’¥ æ’­ æ’¾ æ’¿ æ“ æ“‡ æ“Š æ“‹ æ“ æ“Ž æ“” æ“š æ“  擦 擬 æ“´ 擺 擾 æ” æ”¯ 收 改 æ”» 放 政 æ•… 效 æ• æ• æ•‘ æ•— æ•— 敘 æ•™ æ• æ•¢ æ•£ 敦 敬 æ•´ 敵 數 æ–‡ æ– æ–— æ–™ æ–¯ æ–° æ–· æ–¹ æ–¼ æ–½ æ— æ—… æ—‹ æ— æ—— æ—¢ æ—¥ æ—¦ æ—© æ—­ æ—º 昂 昆 昇 昌 明 æ˜ æ˜“ 星 映 春 昨 昭 是 時 晉 æ™’ 晚 晨 æ™® 景 æ™´ 晶 智 æš‘ æš– æš— æš« æš´ 曆 曉 æ›° 曲 æ›´ 書 曼 曾 曾 替 最 會 月 有 朋 æœ æœ— 望 æœ æœŸ 木 未 未 末 本 札 朱 朵 æ‰ æŽ æ æ‘ æœ æŸ æ¯ æ¯ æ° æ± æ¾ æ¿ æž æž— æžœ æž æž¶ æŸ æŸ æŸ“ 柔 查 柬 柯 柳 柴 æ ¡ æ ¸ æ ¹ æ ¼ 桃 案 æ¡Œ æ¡‘ æ¢ æ¢… æ¢ æ¢¨ 梯 械 梵 棄 棉 棋 棒 棚 森 椅 æ¤ æ¤° 楊 楓 楚 業 極 概 榜 榮 構 æ§ æ¨‚ 樓 標 樞 模 樣 樹 æ©‹ æ©Ÿ æ©« 檀 檔 檢 欄 權 次 欣 欲 欺 欽 款 æ­‰ æ­Œ æ­ æ­¡ æ­¡ æ­¢ æ­£ æ­¤ æ­¥ æ­¦ æ­² æ­· æ­¸ æ­» 殊 殘 段 殺 殼 毀 毅 æ¯ æ¯ æ¯’ 比 毛 毫 æ° æ°‘ æ°£ æ°´ æ°¸ 求 æ±— æ± æ±Ÿ 江 æ±  污 汪 汶 決 æ±½ 沃 沈 沉 æ²’ æ²– æ²™ æ²³ æ²¹ æ²» 沿 æ³ æ³‰ 泊 法 泡 æ³¢ æ³¥ 注 æ³° æ³³ æ´‹ æ´— æ´› æ´ž æ´© æ´ª æ´² æ´» æ´½ æ´¾ æµ æµ¦ 浩 浪 æµ® æµ· 涇 涇 消 涉 涯 液 涵 涼 æ·‘ æ·š æ·¡ æ·¨ æ·± æ·· æ·º 清 減 渡 測 港 游 æ¹– 湯 æº æº– æº æºª 溫 滄 æ»… 滋 滑 æ»´ 滾 滿 漂 æ¼ æ¼” æ¼  æ¼¢ 漫 æ¼² 漸 æ½” 潘 æ½› æ½® 澤 æ¾³ æ¿€ 濃 æ¿Ÿ 濤 æ¿« 濱 ç€ çŒ ç£ ç« ç° ç½ ç‚Ž ç‚® 炸 為 烈 çƒ çƒ¤ ç„¡ 焦 然 ç…™ ç…ž ç…§ ç…© 熊 熟 熱 燃 燈 燒 營 爆 çˆ çˆ› 爪 爬 爭 爵 父 爸 爺 爽 爾 牆 牆 片 版 牌 牙 牛 牠 牧 物 牲 特 牽 犧 犯 ç‹€ ç‹‚ ç‹ ç‹— ç‹  狼 猛 猜 猴 猶 ç„ ç… çŽ ç¨ ç² ç¸ ç» çŽ„ 率 玉 王 玩 玫 玲 玻 çŠ ç ç  ç¥ ç­ ç¾ çƒ ç† ç‰ çª ç´ ç‘™ ç‘œ ç‘ž ç‘Ÿ 瑤 瑪 ç‘° ç’° ç“œ 瓦 瓶 甘 甚 甜 生 產 用 ç”° ç”° ç”± 甲 申 ç”· 甸 ç•Œ ç•™ ç•¢ ç•¥ 番 ç•« ç•° 當 ç–† ç– ç–‘ ç–¼ ç—… ç—• ç—› ç—´ 瘋 療 癡 癸 ç™» ç™» 發 白 百 çš„ 皆 皇 çš® 盃 益 ç›› 盜 盟 盡 監 盤 盧 ç›® 盲 ç›´ 相 盼 盾 çœ çœ‰ 看 真 眠 眼 眾 ç› ç¡ ç£ çž§ çž­ 矛 矣 知 短 石 ç ‚ ç  ç ” ç ² ç ´ 硬 碎 碗 碟 碧 碩 碰 確 碼 ç£ ç£¨ 磯 礎 礙 示 社 祕 祖 祚 祛 ç¥ ç¥ž 祥 票 祿 ç¦ ç¦ ç¦ ç¦Ž ç¦ ç¦ª 禮 秀 ç§ ç§‹ 科 秒 秘 租 秤 秦 移 稅 程 ç¨ ç¨® 稱 稿 穆 ç©Œ ç© ç©© 究 穹 空 ç©¿ çª çª— 窩 窮 窶 ç«‹ ç«™ ç«Ÿ ç«  ç«¥ 端 競 竹 笑 笛 符 笨 第 ç­† ç­‰ ç­‹ ç­” ç­– 简 ç®— 管 ç®­ ç®± 節 範 篇 築 ç°¡ ç°« ç°½ ç°¿ 籃 籌 ç± ç±¤ ç±³ 粉 ç²— ç²µ ç²¾ 糊 糕 糟 ç³» ç³¾ ç´€ ç´„ ç´… ç´ ç´ ç´” ç´™ ç´™ ç´š ç´› ç´  ç´¢ ç´« ç´¯ ç´° ç´¹ 終 組 çµ çµ• 絡 給 çµ± çµ² 經 綜 綠 維 綱 網 ç·Š ç·’ ç·š ç·£ ç·¨ ç·© ç·¬ ç·¯ ç·´ 縛 縣 縮 縱 總 績 ç¹ ç¹† ç¹” 繞 繪 ç¹³ ç¹¼ 續 缸 缺 罕 罪 ç½® ç½° ç½² ç½µ ç½· ç¾… 羊 美 羞 群 義 ç¾½ ç¿ ç¿’ ç¿” ç¿° 翹 ç¿» 翼 耀 è€ è€ƒ 者 而 è€ è€ è€— 耳 耶 èŠ è– èš èž è¯ è° è² è· è½ è‚‰ è‚š è‚¡ è‚¥ è‚© 肯 育 背 胎 胖 胞 胡 胸 能 脆 è„« è…“ è…” è…¦ è…° è…³ è…¿ 膽 臉 臘 臣 臥 臨 自 臭 至 致 臺 與 與 興 舉 舊 舌 èˆ èˆ’ 舞 舟 航 般 船 艦 良 色 艾 èŠ èŠ¬ 花 芳 è‹¥ 苦 英 茅 茫 茲 茶 è‰ è’ è· è¼ èŽ‰ 莊 莎 莫 èœ è© è¯ è² è„ èŠ è¬ è½ è‘‰ è‘— è‘› è‘¡ è’‚ è’™ è’² è’¼ è“‹ è“® 蔕 蔡 蔣 è•­ è–„ è–¦ è–© è–ª è—‰ è— è— è— è—¤ è—¥ 蘆 蘇 蘭 虎 處 è™› 號 虧 蛇 蛋 è›™ 蜂 蜜 è¶ èž èž¢ 蟲 蟹 è  è » è¡€ è¡Œ è¡“ è¡— è¡› è¡ è¡¡ è¡£ 表 袋 被 è£ è£‚ 裕 補 è£ è£¡ 製 複 褲 西 è¦ è¦† 見 è¦ è¦– 親 覺 覽 觀 角 解 觸 言 訂 計 訊 討 訓 託 記 訥 訪 設 許 訴 註 証 è©• è©ž è©¢ 試 è©© 話 話 該 詳 誇 誌 èª èª“ 誕 語 誠 誤 說 誰 課 誼 調 談 è«‹ è«’ è«– 諸 諺 諾 謀 謂 講 è¬ è­‰ è­˜ è­œ è­¦ è­¯ è­° è­· è­½ 讀 變 讓 讚 è°· 豆 豈 è± è±¡ 豪 豬 貌 貓 è² è²ž è²  è²  財 è²¢ 貨 貪 貪 貫 責 è²´ è²· è²» è²¼ è³€ 資 賈 賓 賜 賞 è³¢ è³¢ è³£ 賤 賦 質 è³­ è³´ 賺 è³¼ è³½ è´ˆ è´Š è´ èµ¤ 赫 èµ° èµ· 超 越 趕 趙 趣 趨 足 è·Œ è·Ž è·‘ è· è·Ÿ è·¡ è·¯ è·³ è¸ è¸¢ 蹟 蹤 èº èº« 躲 車 軌 è» è»’ 軟 較 載 è¼” 輕 è¼› è¼ è¼© 輪 輯 輸 轉 轟 è¾› 辦 辨 è¾­ 辯 辯 è¾° è¾± è¾² è¿… è¿Ž è¿‘ è¿” 迦 迪 è¿« è¿° è¿´ è¿· 追 退 é€ é€ƒ 逆 é€ é€ é€” 這 這 通 逛 é€ é€Ÿ 造 逢 連 週 進 逸 逼 é‡ éŠ é‹ é éŽ é“ é“ é” é• é™ éœ é  é© é­ é® é² é· é¸ éº é¿ é¿ é‚€ é‚ é‚„ é‚Š é‚ é‚£ 邦 邪 邱 郎 部 郭 郵 都 é„‚ 鄉 é„­ é„° é…‰ é… é…’ é…· é…¸ 醉 醒 醜 醫 采 釋 釋 里 é‡ é‡Ž é‡ é‡‘ é‡ é‡£ 鈴 鉢 銀 銅 銖 銘 銳 銷 é‹’ 鋼 錄 錢 錦 錫 錯 é‹ éµ é¾ éŽŠ 鎖 鎮 é¡ é˜ éµ é‘‘ é•· é–€ é–ƒ é–‰ é–‹ é– é–’ é–“ é–£ é–± é—† é—Š é— é— é—œ é—¡ 防 阻 阿 陀 附 é™ é™ é™¢ 院 陣 除 陪 é™° 陳 陵 陵 陶 é™· 陸 陽 隆 隊 階 éš” éš› éšœ 隨 險 éš± éš» 雄 雄 é›… 集 雉 é›– é›™ 雜 雞 離 難 雨 雪 雲 零 é›· é›» 需 震 éœ éœ§ 露 霸 霹 é‚ éˆ é’ é– éœ éž é  é¢ é© é¼ éž‹ 韃 韋 韓 音 韻 響 é  é ‚ é … é † é ˆ é  é ‘ é “ é — é ˜ é ž é ­ é » 顆 é¡Œ é¡ é¡ é¡˜ é¡ž 顧 顯 風 飄 飛 食 飯 飲 飽 飾 餅 養 é¤ é¤˜ 館 首 香 馬 é§ é§• 駛 騎 騙 騷 é©… é©— é©š 骨 é«” 高 é«® 鬆 鬥 鬧 鬱 鬼 é­ é­‚ é­… é­” é­š é­¯ é®® é³¥ é³³ é³´ é´» éµ é·¹ 鹿 麗 麥 麵 麻 麼 黃 黎 黑 默 點 黨 鼓 é¼  é¼» 齊 齋 é½’ 齡 é¾ é¾œ", - 2: "‾ ﹉ ﹉ ﹊ ﹋ ﹌ _ _ ï¹ ï¹ ï¹Ž ï¹ ï¸³ ︴ - ï¼ ï¹£ †– ︲ — ﹘ ︱ , , ï¹ ã€ ï¹‘ ; ï¼› ï¹” : : ﹕ ! ï¼ ï¹— ? ? ï¹– . . ï¹’ ‥ ︰ … 。 · ' ‘ ’ \" " “ †〠〞 ( ( ï¹™ ︵ ) ) ﹚ ︶ [ ï¼» ] ï¼½ { ï½› ï¹› ︷ } ï½ ï¹œ ︸ 〈 ︿ 〉 ï¹€ 《 ︽ 》 ︾ 「 ï¹ ã€ ï¹‚ 『 ﹃ 〠﹄ 〠︻ 】 ︼ 〔 ï¹ ï¸¹ 〕 ﹞ ︺ § @ ï¼  ﹫ * * ﹡ / ï¼ \\ ï¼¼ ﹨ & & ï¹  # # ﹟ % ï¼… ﹪ ‰ † ‡ ‧ ′ ″ ‵ 〃 ※", - 3: "ä¼ ä¾¶ å…Œ å…¹ 别 勳 å‘ å  å¶ å ¤ 墎 奥 å­œ 峇 å·½ å½ æ¥” 渾 燦 ç‹„ ç³ ç‘š 甫 ç¤ èŠ’ è‹— 茨 èš© 蜀 éš´", - 5: "一 ä¸ ä¸ˆ ä¸ ä¸” 丞 並 串 乘 ä¹¾ 亂 亭 å‚€ 僎 僵 å„ å„Ÿ 儳 å„· å„» å¢ åš´ 囌 囑 廳", - }, - "zu": { - 0: "a b bh c ch d dl dy e f g gc gq gx h hh hl i j k kh kl kp l m n nc ngc ngq ngx nhl nk nkc nkq nkx nq ntsh nx ny o p ph q qh r rh s sh t th tl ts tsh u v w x xh y z", - 2: "- , ; : ! ? . ( ) [ ] { }", - 3: "á à ă â Ã¥ ä ã Ä Ã¦ ç é è Ä• ê ë Ä“ í ì Ä­ î ï Ä« ñ ó ò Šô ö ø Å Å“ ú ù Å­ û ü Å« ÿ", - }, -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/col.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/col.go deleted file mode 100644 index 84c446b4..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/col.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2012 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 main - -import ( - "log" - "unicode/utf16" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -// Input holds an input string in both UTF-8 and UTF-16 format. -type Input struct { - index int // used for restoring to original random order - UTF8 []byte - UTF16 []uint16 - key []byte // used for sorting -} - -func (i Input) String() string { - return string(i.UTF8) -} - -func makeInput(s8 []byte, s16 []uint16) Input { - return Input{UTF8: s8, UTF16: s16} -} - -func makeInputString(s string) Input { - return Input{ - UTF8: []byte(s), - UTF16: utf16.Encode([]rune(s)), - } -} - -// Collator is an interface for architecture-specific implementations of collation. -type Collator interface { - // Key generates a sort key for the given input. Implemenations - // may return nil if a collator does not support sort keys. - Key(s Input) []byte - - // Compare returns -1 if a < b, 1 if a > b and 0 if a == b. - Compare(a, b Input) int -} - -// CollatorFactory creates a Collator for a given language tag. -type CollatorFactory struct { - name string - makeFn func(tag string) (Collator, error) - description string -} - -var collators = []CollatorFactory{} - -// AddFactory registers f as a factory for an implementation of Collator. -func AddFactory(f CollatorFactory) { - collators = append(collators, f) -} - -func getCollator(name, locale string) Collator { - for _, f := range collators { - if f.name == name { - col, err := f.makeFn(locale) - if err != nil { - log.Fatal(err) - } - return col - } - } - log.Fatalf("collator of type %q not found", name) - return nil -} - -// goCollator is an implemention of Collator using go's own collator. -type goCollator struct { - c *collate.Collator - buf collate.Buffer -} - -func init() { - AddFactory(CollatorFactory{"go", newGoCollator, "Go's native collator implementation."}) -} - -func newGoCollator(loc string) (Collator, error) { - c := &goCollator{c: collate.New(language.Make(loc))} - return c, nil -} - -func (c *goCollator) Key(b Input) []byte { - return c.c.Key(&c.buf, b.UTF8) -} - -func (c *goCollator) Compare(a, b Input) int { - return c.c.Compare(a.UTF8, b.UTF8) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/colcmp.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/colcmp.go deleted file mode 100644 index bead3c5b..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/colcmp.go +++ /dev/null @@ -1,529 +0,0 @@ -// Copyright 2012 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 main - -import ( - "bytes" - "flag" - "fmt" - "io" - "log" - "os" - "runtime/pprof" - "sort" - "strconv" - "strings" - "text/template" - "time" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm" -) - -var ( - doNorm = flag.Bool("norm", false, "normalize input strings") - cases = flag.Bool("case", false, "generate case variants") - verbose = flag.Bool("verbose", false, "print results") - debug = flag.Bool("debug", false, "output debug information") - locales = flag.String("locale", "en_US", "the locale to use. May be a comma-separated list for some commands.") - col = flag.String("col", "go", "collator to test") - gold = flag.String("gold", "go", "collator used as the gold standard") - usecmp = flag.Bool("usecmp", false, - `use comparison instead of sort keys when sorting. Must be "test", "gold" or "both"`) - cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file") - exclude = flag.String("exclude", "", "exclude errors that contain any of the characters") - limit = flag.Int("limit", 5000000, "maximum number of samples to generate for one run") -) - -func failOnError(err error) { - if err != nil { - log.Panic(err) - } -} - -// Test holds test data for testing a locale-collator pair. -// Test also provides functionality that is commonly used by the various commands. -type Test struct { - ctxt *Context - Name string - Locale string - ColName string - - Col Collator - UseCompare bool - - Input []Input - Duration time.Duration - - start time.Time - msg string - count int -} - -func (t *Test) clear() { - t.Col = nil - t.Input = nil -} - -const ( - msgGeneratingInput = "generating input" - msgGeneratingKeys = "generating keys" - msgSorting = "sorting" -) - -var lastLen = 0 - -func (t *Test) SetStatus(msg string) { - if *debug || *verbose { - fmt.Printf("%s: %s...\n", t.Name, msg) - } else if t.ctxt.out != nil { - fmt.Fprint(t.ctxt.out, strings.Repeat(" ", lastLen)) - fmt.Fprint(t.ctxt.out, strings.Repeat("\b", lastLen)) - fmt.Fprint(t.ctxt.out, msg, "...") - lastLen = len(msg) + 3 - fmt.Fprint(t.ctxt.out, strings.Repeat("\b", lastLen)) - } -} - -// Start is used by commands to signal the start of an operation. -func (t *Test) Start(msg string) { - t.SetStatus(msg) - t.count = 0 - t.msg = msg - t.start = time.Now() -} - -// Stop is used by commands to signal the end of an operation. -func (t *Test) Stop() (time.Duration, int) { - d := time.Now().Sub(t.start) - t.Duration += d - if *debug || *verbose { - fmt.Printf("%s: %s done. (%.3fs /%dK ops)\n", t.Name, t.msg, d.Seconds(), t.count/1000) - } - return d, t.count -} - -// generateKeys generates sort keys for all the inputs. -func (t *Test) generateKeys() { - for i, s := range t.Input { - b := t.Col.Key(s) - t.Input[i].key = b - if *debug { - fmt.Printf("%s (%X): %X\n", string(s.UTF8), s.UTF16, b) - } - } -} - -// Sort sorts the inputs. It generates sort keys if this is required by the -// chosen sort method. -func (t *Test) Sort() (tkey, tsort time.Duration, nkey, nsort int) { - if *cpuprofile != "" { - f, err := os.Create(*cpuprofile) - failOnError(err) - pprof.StartCPUProfile(f) - defer pprof.StopCPUProfile() - } - if t.UseCompare || t.Col.Key(t.Input[0]) == nil { - t.Start(msgSorting) - sort.Sort(&testCompare{*t}) - tsort, nsort = t.Stop() - } else { - t.Start(msgGeneratingKeys) - t.generateKeys() - t.count = len(t.Input) - tkey, nkey = t.Stop() - t.Start(msgSorting) - sort.Sort(t) - tsort, nsort = t.Stop() - } - return -} - -func (t *Test) Swap(a, b int) { - t.Input[a], t.Input[b] = t.Input[b], t.Input[a] -} - -func (t *Test) Less(a, b int) bool { - t.count++ - return bytes.Compare(t.Input[a].key, t.Input[b].key) == -1 -} - -func (t Test) Len() int { - return len(t.Input) -} - -type testCompare struct { - Test -} - -func (t *testCompare) Less(a, b int) bool { - t.count++ - return t.Col.Compare(t.Input[a], t.Input[b]) == -1 -} - -type testRestore struct { - Test -} - -func (t *testRestore) Less(a, b int) bool { - return t.Input[a].index < t.Input[b].index -} - -// GenerateInput generates input phrases for the locale tested by t. -func (t *Test) GenerateInput() { - t.Input = nil - if t.ctxt.lastLocale != t.Locale { - gen := phraseGenerator{} - gen.init(t.Locale) - t.SetStatus(msgGeneratingInput) - t.ctxt.lastInput = nil // allow the previous value to be garbage collected. - t.Input = gen.generate(*doNorm) - t.ctxt.lastInput = t.Input - t.ctxt.lastLocale = t.Locale - } else { - t.Input = t.ctxt.lastInput - for i := range t.Input { - t.Input[i].key = nil - } - sort.Sort(&testRestore{*t}) - } -} - -// Context holds all tests and settings translated from command line options. -type Context struct { - test []*Test - last *Test - - lastLocale string - lastInput []Input - - out io.Writer -} - -func (ts *Context) Printf(format string, a ...interface{}) { - ts.assertBuf() - fmt.Fprintf(ts.out, format, a...) -} - -func (ts *Context) Print(a ...interface{}) { - ts.assertBuf() - fmt.Fprint(ts.out, a...) -} - -// assertBuf sets up an io.Writer for ouput, if it doesn't already exist. -// In debug and verbose mode, output is buffered so that the regular output -// will not interfere with the additional output. Otherwise, output is -// written directly to stdout for a more responsive feel. -func (ts *Context) assertBuf() { - if ts.out != nil { - return - } - if *debug || *verbose { - ts.out = &bytes.Buffer{} - } else { - ts.out = os.Stdout - } -} - -// flush flushes the contents of ts.out to stdout, if it is not stdout already. -func (ts *Context) flush() { - if ts.out != nil { - if _, ok := ts.out.(io.ReadCloser); !ok { - io.Copy(os.Stdout, ts.out.(io.Reader)) - } - } -} - -// parseTests creates all tests from command lines and returns -// a Context to hold them. -func parseTests() *Context { - ctxt := &Context{} - colls := strings.Split(*col, ",") - for _, loc := range strings.Split(*locales, ",") { - loc = strings.TrimSpace(loc) - for _, name := range colls { - name = strings.TrimSpace(name) - col := getCollator(name, loc) - ctxt.test = append(ctxt.test, &Test{ - ctxt: ctxt, - Locale: loc, - ColName: name, - UseCompare: *usecmp, - Col: col, - }) - } - } - return ctxt -} - -func (c *Context) Len() int { - return len(c.test) -} - -func (c *Context) Test(i int) *Test { - if c.last != nil { - c.last.clear() - } - c.last = c.test[i] - return c.last -} - -func parseInput(args []string) []Input { - input := []Input{} - for _, s := range args { - rs := []rune{} - for len(s) > 0 { - var r rune - r, _, s, _ = strconv.UnquoteChar(s, '\'') - rs = append(rs, r) - } - s = string(rs) - if *doNorm { - s = norm.NFD.String(s) - } - input = append(input, makeInputString(s)) - } - return input -} - -// A Command is an implementation of a colcmp command. -type Command struct { - Run func(cmd *Context, args []string) - Usage string - Short string - Long string -} - -func (cmd Command) Name() string { - return strings.SplitN(cmd.Usage, " ", 2)[0] -} - -var commands = []*Command{ - cmdSort, - cmdBench, - cmdRegress, -} - -const sortHelp = ` -Sort sorts a given list of strings. Strings are separated by whitespace. -` - -var cmdSort = &Command{ - Run: runSort, - Usage: "sort <string>*", - Short: "sort a given list of strings", - Long: sortHelp, -} - -func runSort(ctxt *Context, args []string) { - input := parseInput(args) - if len(input) == 0 { - log.Fatalf("Nothing to sort.") - } - if ctxt.Len() > 1 { - ctxt.Print("COLL LOCALE RESULT\n") - } - for i := 0; i < ctxt.Len(); i++ { - t := ctxt.Test(i) - t.Input = append(t.Input, input...) - t.Sort() - if ctxt.Len() > 1 { - ctxt.Printf("%-5s %-5s ", t.ColName, t.Locale) - } - for _, s := range t.Input { - ctxt.Print(string(s.UTF8), " ") - } - ctxt.Print("\n") - } -} - -const benchHelp = ` -Bench runs a benchmark for the given list of collator implementations. -If no collator implementations are given, the go collator will be used. -` - -var cmdBench = &Command{ - Run: runBench, - Usage: "bench", - Short: "benchmark a given list of collator implementations", - Long: benchHelp, -} - -func runBench(ctxt *Context, args []string) { - ctxt.Printf("%-7s %-5s %-6s %-24s %-24s %-5s %s\n", "LOCALE", "COLL", "N", "KEYS", "SORT", "AVGLN", "TOTAL") - for i := 0; i < ctxt.Len(); i++ { - t := ctxt.Test(i) - ctxt.Printf("%-7s %-5s ", t.Locale, t.ColName) - t.GenerateInput() - ctxt.Printf("%-6s ", fmt.Sprintf("%dK", t.Len()/1000)) - tkey, tsort, nkey, nsort := t.Sort() - p := func(dur time.Duration, n int) { - s := "" - if dur > 0 { - s = fmt.Sprintf("%6.3fs ", dur.Seconds()) - if n > 0 { - s += fmt.Sprintf("%15s", fmt.Sprintf("(%4.2f ns/op)", float64(dur)/float64(n))) - } - } - ctxt.Printf("%-24s ", s) - } - p(tkey, nkey) - p(tsort, nsort) - - total := 0 - for _, s := range t.Input { - total += len(s.key) - } - ctxt.Printf("%-5d ", total/t.Len()) - ctxt.Printf("%6.3fs\n", t.Duration.Seconds()) - if *debug { - for _, s := range t.Input { - fmt.Print(string(s.UTF8), " ") - } - fmt.Println() - } - } -} - -const regressHelp = ` -Regress runs a monkey test by comparing the results of randomly generated tests -between two implementations of a collator. The user may optionally pass a list -of strings to regress against instead of the default test set. -` - -var cmdRegress = &Command{ - Run: runRegress, - Usage: "regress -gold=<col> -test=<col> [string]*", - Short: "run a monkey test between two collators", - Long: regressHelp, -} - -const failedKeyCompare = ` -%s:%d: incorrect comparison result for input: - a: %q (%.4X) - key: %s - b: %q (%.4X) - key: %s - Compare(a, b) = %d; want %d. - - gold keys: - a: %s - b: %s -` - -const failedCompare = ` -%s:%d: incorrect comparison result for input: - a: %q (%.4X) - b: %q (%.4X) - Compare(a, b) = %d; want %d. -` - -func keyStr(b []byte) string { - buf := &bytes.Buffer{} - for _, v := range b { - fmt.Fprintf(buf, "%.2X ", v) - } - return buf.String() -} - -func runRegress(ctxt *Context, args []string) { - input := parseInput(args) - for i := 0; i < ctxt.Len(); i++ { - t := ctxt.Test(i) - if len(input) > 0 { - t.Input = append(t.Input, input...) - } else { - t.GenerateInput() - } - t.Sort() - count := 0 - gold := getCollator(*gold, t.Locale) - for i := 1; i < len(t.Input); i++ { - ia := t.Input[i-1] - ib := t.Input[i] - if bytes.IndexAny(ib.UTF8, *exclude) != -1 { - i++ - continue - } - if bytes.IndexAny(ia.UTF8, *exclude) != -1 { - continue - } - goldCmp := gold.Compare(ia, ib) - if cmp := bytes.Compare(ia.key, ib.key); cmp != goldCmp { - count++ - a := string(ia.UTF8) - b := string(ib.UTF8) - fmt.Printf(failedKeyCompare, t.Locale, i-1, a, []rune(a), keyStr(ia.key), b, []rune(b), keyStr(ib.key), cmp, goldCmp, keyStr(gold.Key(ia)), keyStr(gold.Key(ib))) - } else if cmp := t.Col.Compare(ia, ib); cmp != goldCmp { - count++ - a := string(ia.UTF8) - b := string(ib.UTF8) - fmt.Printf(failedCompare, t.Locale, i-1, a, []rune(a), b, []rune(b), cmp, goldCmp) - } - } - if count > 0 { - ctxt.Printf("Found %d inconsistencies in %d entries.\n", count, t.Len()-1) - } - } -} - -const helpTemplate = ` -colcmp is a tool for testing and benchmarking collation - -Usage: colcmp command [arguments] - -The commands are: -{{range .}} - {{.Name | printf "%-11s"}} {{.Short}}{{end}} - -Use "col help [topic]" for more information about that topic. -` - -const detailedHelpTemplate = ` -Usage: colcmp {{.Usage}} - -{{.Long | trim}} -` - -func runHelp(args []string) { - t := template.New("help") - t.Funcs(template.FuncMap{"trim": strings.TrimSpace}) - if len(args) < 1 { - template.Must(t.Parse(helpTemplate)) - failOnError(t.Execute(os.Stderr, &commands)) - } else { - for _, cmd := range commands { - if cmd.Name() == args[0] { - template.Must(t.Parse(detailedHelpTemplate)) - failOnError(t.Execute(os.Stderr, cmd)) - os.Exit(0) - } - } - log.Fatalf("Unknown command %q. Run 'colcmp help'.", args[0]) - } - os.Exit(0) -} - -func main() { - flag.Parse() - log.SetFlags(0) - - ctxt := parseTests() - - if flag.NArg() < 1 { - runHelp(nil) - } - args := flag.Args()[1:] - if flag.Arg(0) == "help" { - runHelp(args) - } - for _, cmd := range commands { - if cmd.Name() == flag.Arg(0) { - cmd.Run(ctxt, args) - ctxt.flush() - return - } - } - runHelp(flag.Args()) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/darwin.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/darwin.go deleted file mode 100644 index c2c31d5c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/darwin.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2012 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 darwin - -package main - -/* -#cgo LDFLAGS: -framework CoreFoundation -#include <CoreFoundation/CFBase.h> -#include <CoreFoundation/CoreFoundation.h> -*/ -import "C" -import ( - "unsafe" -) - -func init() { - AddFactory(CollatorFactory{"osx", newOSX16Collator, - "OS X/Darwin collator, using native strings."}) - AddFactory(CollatorFactory{"osx8", newOSX8Collator, - "OS X/Darwin collator for UTF-8."}) -} - -func osxUInt8P(s []byte) *C.UInt8 { - return (*C.UInt8)(unsafe.Pointer(&s[0])) -} - -func osxCharP(s []uint16) *C.UniChar { - return (*C.UniChar)(unsafe.Pointer(&s[0])) -} - -// osxCollator implements an Collator based on OS X's CoreFoundation. -type osxCollator struct { - loc C.CFLocaleRef - opt C.CFStringCompareFlags -} - -func (c *osxCollator) init(locale string) { - l := C.CFStringCreateWithBytes( - nil, - osxUInt8P([]byte(locale)), - C.CFIndex(len(locale)), - C.kCFStringEncodingUTF8, - C.Boolean(0), - ) - c.loc = C.CFLocaleCreate(nil, l) -} - -func newOSX8Collator(locale string) (Collator, error) { - c := &osx8Collator{} - c.init(locale) - return c, nil -} - -func newOSX16Collator(locale string) (Collator, error) { - c := &osx16Collator{} - c.init(locale) - return c, nil -} - -func (c osxCollator) Key(s Input) []byte { - return nil // sort keys not supported by OS X CoreFoundation -} - -type osx8Collator struct { - osxCollator -} - -type osx16Collator struct { - osxCollator -} - -func (c osx16Collator) Compare(a, b Input) int { - sa := C.CFStringCreateWithCharactersNoCopy( - nil, - osxCharP(a.UTF16), - C.CFIndex(len(a.UTF16)), - nil, - ) - sb := C.CFStringCreateWithCharactersNoCopy( - nil, - osxCharP(b.UTF16), - C.CFIndex(len(b.UTF16)), - nil, - ) - _range := C.CFRangeMake(0, C.CFStringGetLength(sa)) - return int(C.CFStringCompareWithOptionsAndLocale(sa, sb, _range, c.opt, c.loc)) -} - -func (c osx8Collator) Compare(a, b Input) int { - sa := C.CFStringCreateWithBytesNoCopy( - nil, - osxUInt8P(a.UTF8), - C.CFIndex(len(a.UTF8)), - C.kCFStringEncodingUTF8, - C.Boolean(0), - nil, - ) - sb := C.CFStringCreateWithBytesNoCopy( - nil, - osxUInt8P(b.UTF8), - C.CFIndex(len(b.UTF8)), - C.kCFStringEncodingUTF8, - C.Boolean(0), - nil, - ) - _range := C.CFRangeMake(0, C.CFStringGetLength(sa)) - return int(C.CFStringCompareWithOptionsAndLocale(sa, sb, _range, c.opt, c.loc)) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/gen.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/gen.go deleted file mode 100644 index b970c8d2..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/gen.go +++ /dev/null @@ -1,183 +0,0 @@ -// Copyright 2012 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 main - -import ( - "math" - "math/rand" - "strings" - "unicode" - "unicode/utf16" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm" -) - -// TODO: replace with functionality in language package. -// parent computes the parent language for the given language. -// It returns false if the parent is already root. -func parent(locale string) (parent string, ok bool) { - if locale == "und" { - return "", false - } - if i := strings.LastIndex(locale, "-"); i != -1 { - return locale[:i], true - } - return "und", true -} - -// rewriter is used to both unique strings and create variants of strings -// to add to the test set. -type rewriter struct { - seen map[string]bool - addCases bool -} - -func newRewriter() *rewriter { - return &rewriter{ - seen: make(map[string]bool), - } -} - -func (r *rewriter) insert(a []string, s string) []string { - if !r.seen[s] { - r.seen[s] = true - a = append(a, s) - } - return a -} - -// rewrite takes a sequence of strings in, adds variants of the these strings -// based on options and removes duplicates. -func (r *rewriter) rewrite(ss []string) []string { - ns := []string{} - for _, s := range ss { - ns = r.insert(ns, s) - if r.addCases { - rs := []rune(s) - rn := rs[0] - for c := unicode.SimpleFold(rn); c != rn; c = unicode.SimpleFold(c) { - rs[0] = c - ns = r.insert(ns, string(rs)) - } - } - } - return ns -} - -// exemplarySet holds a parsed set of characters from the exemplarCharacters table. -type exemplarySet struct { - typ exemplarType - set []string - charIndex int // cumulative total of phrases, including this set -} - -type phraseGenerator struct { - sets [exN]exemplarySet - n int -} - -func (g *phraseGenerator) init(id string) { - ec := exemplarCharacters - loc := language.Make(id).String() - // get sets for locale or parent locale if the set is not defined. - for i := range g.sets { - for p, ok := loc, true; ok; p, ok = parent(p) { - if set, ok := ec[p]; ok && set[i] != "" { - g.sets[i].set = strings.Split(set[i], " ") - break - } - } - } - r := newRewriter() - r.addCases = *cases - for i := range g.sets { - g.sets[i].set = r.rewrite(g.sets[i].set) - } - // compute indexes - for i, set := range g.sets { - g.n += len(set.set) - g.sets[i].charIndex = g.n - } -} - -// phrase returns the ith phrase, where i < g.n. -func (g *phraseGenerator) phrase(i int) string { - for _, set := range g.sets { - if i < set.charIndex { - return set.set[i-(set.charIndex-len(set.set))] - } - } - panic("index out of range") -} - -// generate generates inputs by combining all pairs of examplar strings. -// If doNorm is true, all input strings are normalized to NFC. -// TODO: allow other variations, statistical models, and random -// trailing sequences. -func (g *phraseGenerator) generate(doNorm bool) []Input { - const ( - M = 1024 * 1024 - buf8Size = 30 * M - buf16Size = 10 * M - ) - // TODO: use a better way to limit the input size. - if sq := int(math.Sqrt(float64(*limit))); g.n > sq { - g.n = sq - } - size := g.n * g.n - a := make([]Input, 0, size) - buf8 := make([]byte, 0, buf8Size) - buf16 := make([]uint16, 0, buf16Size) - - addInput := func(str string) { - buf8 = buf8[len(buf8):] - buf16 = buf16[len(buf16):] - if len(str) > cap(buf8) { - buf8 = make([]byte, 0, buf8Size) - } - if len(str) > cap(buf16) { - buf16 = make([]uint16, 0, buf16Size) - } - if doNorm { - buf8 = norm.NFD.AppendString(buf8, str) - } else { - buf8 = append(buf8, str...) - } - buf16 = appendUTF16(buf16, buf8) - a = append(a, makeInput(buf8, buf16)) - } - for i := 0; i < g.n; i++ { - p1 := g.phrase(i) - addInput(p1) - for j := 0; j < g.n; j++ { - p2 := g.phrase(j) - addInput(p1 + p2) - } - } - // permutate - rnd := rand.New(rand.NewSource(int64(rand.Int()))) - for i := range a { - j := i + rnd.Intn(len(a)-i) - a[i], a[j] = a[j], a[i] - a[i].index = i // allow restoring this order if input is used multiple times. - } - return a -} - -func appendUTF16(buf []uint16, s []byte) []uint16 { - for len(s) > 0 { - r, sz := utf8.DecodeRune(s) - s = s[sz:] - r1, r2 := utf16.EncodeRune(r) - if r1 != 0xFFFD { - buf = append(buf, uint16(r1), uint16(r2)) - } else { - buf = append(buf, uint16(r)) - } - } - return buf -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/icu.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/icu.go deleted file mode 100644 index 91980ac9..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/tools/colcmp/icu.go +++ /dev/null @@ -1,209 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build icu - -package main - -/* -#cgo LDFLAGS: -licui18n -licuuc -#include <stdlib.h> -#include <unicode/ucol.h> -#include <unicode/uiter.h> -#include <unicode/utypes.h> -*/ -import "C" -import ( - "fmt" - "log" - "unicode/utf16" - "unicode/utf8" - "unsafe" -) - -func init() { - AddFactory(CollatorFactory{"icu", newUTF16, - "Main ICU collator, using native strings."}) - AddFactory(CollatorFactory{"icu8", newUTF8iter, - "ICU collator using ICU iterators to process UTF8."}) - AddFactory(CollatorFactory{"icu16", newUTF8conv, - "ICU collation by first converting UTF8 to UTF16."}) -} - -func icuCharP(s []byte) *C.char { - return (*C.char)(unsafe.Pointer(&s[0])) -} - -func icuUInt8P(s []byte) *C.uint8_t { - return (*C.uint8_t)(unsafe.Pointer(&s[0])) -} - -func icuUCharP(s []uint16) *C.UChar { - return (*C.UChar)(unsafe.Pointer(&s[0])) -} -func icuULen(s []uint16) C.int32_t { - return C.int32_t(len(s)) -} -func icuSLen(s []byte) C.int32_t { - return C.int32_t(len(s)) -} - -// icuCollator implements a Collator based on ICU. -type icuCollator struct { - loc *C.char - col *C.UCollator - keyBuf []byte -} - -const growBufSize = 10 * 1024 * 1024 - -func (c *icuCollator) init(locale string) error { - err := C.UErrorCode(0) - c.loc = C.CString(locale) - c.col = C.ucol_open(c.loc, &err) - if err > 0 { - return fmt.Errorf("failed opening collator for %q", locale) - } else if err < 0 { - loc := C.ucol_getLocaleByType(c.col, 0, &err) - fmt, ok := map[int]string{ - -127: "warning: using default collator: %s", - -128: "warning: using fallback collator: %s", - }[int(err)] - if ok { - log.Printf(fmt, C.GoString(loc)) - } - } - c.keyBuf = make([]byte, 0, growBufSize) - return nil -} - -func (c *icuCollator) buf() (*C.uint8_t, C.int32_t) { - if len(c.keyBuf) == cap(c.keyBuf) { - c.keyBuf = make([]byte, 0, growBufSize) - } - b := c.keyBuf[len(c.keyBuf):cap(c.keyBuf)] - return icuUInt8P(b), icuSLen(b) -} - -func (c *icuCollator) extendBuf(n C.int32_t) []byte { - end := len(c.keyBuf) + int(n) - if end > cap(c.keyBuf) { - if len(c.keyBuf) == 0 { - log.Fatalf("icuCollator: max string size exceeded: %v > %v", n, growBufSize) - } - c.keyBuf = make([]byte, 0, growBufSize) - return nil - } - b := c.keyBuf[len(c.keyBuf):end] - c.keyBuf = c.keyBuf[:end] - return b -} - -func (c *icuCollator) Close() error { - C.ucol_close(c.col) - C.free(unsafe.Pointer(c.loc)) - return nil -} - -// icuUTF16 implements the Collator interface. -type icuUTF16 struct { - icuCollator -} - -func newUTF16(locale string) (Collator, error) { - c := &icuUTF16{} - return c, c.init(locale) -} - -func (c *icuUTF16) Compare(a, b Input) int { - return int(C.ucol_strcoll(c.col, icuUCharP(a.UTF16), icuULen(a.UTF16), icuUCharP(b.UTF16), icuULen(b.UTF16))) -} - -func (c *icuUTF16) Key(s Input) []byte { - bp, bn := c.buf() - n := C.ucol_getSortKey(c.col, icuUCharP(s.UTF16), icuULen(s.UTF16), bp, bn) - if b := c.extendBuf(n); b != nil { - return b - } - return c.Key(s) -} - -// icuUTF8iter implements the Collator interface -// This implementation wraps the UTF8 string in an iterator -// which is passed to the collator. -type icuUTF8iter struct { - icuCollator - a, b C.UCharIterator -} - -func newUTF8iter(locale string) (Collator, error) { - c := &icuUTF8iter{} - return c, c.init(locale) -} - -func (c *icuUTF8iter) Compare(a, b Input) int { - err := C.UErrorCode(0) - C.uiter_setUTF8(&c.a, icuCharP(a.UTF8), icuSLen(a.UTF8)) - C.uiter_setUTF8(&c.b, icuCharP(b.UTF8), icuSLen(b.UTF8)) - return int(C.ucol_strcollIter(c.col, &c.a, &c.b, &err)) -} - -func (c *icuUTF8iter) Key(s Input) []byte { - err := C.UErrorCode(0) - state := [2]C.uint32_t{} - C.uiter_setUTF8(&c.a, icuCharP(s.UTF8), icuSLen(s.UTF8)) - bp, bn := c.buf() - n := C.ucol_nextSortKeyPart(c.col, &c.a, &(state[0]), bp, bn, &err) - if n >= bn { - // Force failure. - if c.extendBuf(n+1) != nil { - log.Fatal("expected extension to fail") - } - return c.Key(s) - } - return c.extendBuf(n) -} - -// icuUTF8conv implementes the Collator interface. -// This implentation first converts the give UTF8 string -// to UTF16 and then calls the main ICU collation function. -type icuUTF8conv struct { - icuCollator -} - -func newUTF8conv(locale string) (Collator, error) { - c := &icuUTF8conv{} - return c, c.init(locale) -} - -func (c *icuUTF8conv) Compare(sa, sb Input) int { - a := encodeUTF16(sa.UTF8) - b := encodeUTF16(sb.UTF8) - return int(C.ucol_strcoll(c.col, icuUCharP(a), icuULen(a), icuUCharP(b), icuULen(b))) -} - -func (c *icuUTF8conv) Key(s Input) []byte { - a := encodeUTF16(s.UTF8) - bp, bn := c.buf() - n := C.ucol_getSortKey(c.col, icuUCharP(a), icuULen(a), bp, bn) - if b := c.extendBuf(n); b != nil { - return b - } - return c.Key(s) -} - -func encodeUTF16(b []byte) []uint16 { - a := []uint16{} - for len(b) > 0 { - r, sz := utf8.DecodeRune(b) - b = b[sz:] - r1, r2 := utf16.EncodeRune(r) - if r1 != 0xFFFD { - a = append(a, uint16(r1), uint16(r2)) - } else { - a = append(a, uint16(r)) - } - } - return a -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/common.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/common.go deleted file mode 100644 index c4f0e092..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/common.go +++ /dev/null @@ -1,44 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package currency - -import "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" - -// This file contains code common to gen.go and the package code. - -const ( - cashShift = 3 - roundMask = 0x7 -) - -// currencyInfo contains information about a currency. -// bits 0..2: index into roundings for standard rounding -// bits 3..5: index into roundings for cash rounding -type currencyInfo byte - -// roundingType defines the scale (number of fractional decimals) and increments -// in terms of units of size 10^-scale. For example, for scale == 2 and -// increment == 1, the currency is rounded to units of 0.01. -type roundingType struct { - scale, increment uint8 -} - -// roundings contains rounding data for currencies. This struct is -// created by hand as it is very unlikely to change much. -var roundings = [...]roundingType{ - {2, 1}, // default - {0, 1}, - {1, 1}, - {3, 1}, - {4, 1}, - {2, 5}, // cash rounding alternative -} - -// regionToCode returns a 16-bit region code. Only two-letter codes are -// supported. (Three-letter codes are not needed.) -func regionToCode(r language.Region) uint16 { - if s := r.String(); len(s) == 2 { - return uint16(s[0])<<8 | uint16(s[1]) - } - return 0 -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/currency.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/currency.go deleted file mode 100644 index 64d93c3f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/currency.go +++ /dev/null @@ -1,183 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go gen_common.go -output tables.go - -// Package currency contains currency-related functionality. -package currency - -import ( - "errors" - "sort" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -// TODO: -// - language-specific currency names. -// - currency formatting. -// - currency information per region -// - register currency code (there are no private use area) - -// TODO: remove Currency type from package language. - -// Kind determines the rounding and rendering properties of a currency value. -type Kind struct { - rounding rounding - // TODO: formatting type: standard, accounting. See CLDR. -} - -type rounding byte - -const ( - standard rounding = iota - cash -) - -var ( - // Standard defines standard rounding and formatting for currencies. - Standard Kind = Kind{rounding: standard} - - // Cash defines rounding and formatting standards for cash transactions. - Cash Kind = Kind{rounding: cash} - - // Accounting defines rounding and formatting standards for accounting. - Accounting Kind = Kind{rounding: standard} -) - -// Rounding reports the rounding characteristics for the given currency, where -// scale is the number of fractional decimals and increment is the number of -// units in terms of 10^(-scale) to which to round to. -func (k Kind) Rounding(c Currency) (scale, increment int) { - info := currency.Elem(int(c.index))[3] - switch k.rounding { - case standard: - info &= roundMask - case cash: - info >>= cashShift - } - return int(roundings[info].scale), int(roundings[info].increment) -} - -// Currency is an ISO 4217 currency designator. -type Currency struct { - index uint16 -} - -// String returns the ISO code of c. -func (c Currency) String() string { - if c.index == 0 { - return "XXX" - } - return currency.Elem(int(c.index))[:3] -} - -// Value creates a Value for the given currency and amount. -func (c Currency) Value(amount interface{}) Value { - // TODO: verify amount is a supported number type - return Value{amount: amount, currency: c} -} - -var ( - errSyntax = errors.New("currency: tag is not well-formed") - errValue = errors.New("currency: tag is not a recognized currency") -) - -// ParseISO parses a 3-letter ISO 4217 code. It returns an error if s not -// well-formed or not a recognized currency code. -func ParseISO(s string) (Currency, error) { - var buf [4]byte // Take one byte more to detect oversize keys. - key := buf[:copy(buf[:], s)] - if !tag.FixCase("XXX", key) { - return Currency{}, errSyntax - } - if i := currency.Index(key); i >= 0 { - return Currency{uint16(i)}, nil - } - return Currency{}, errValue -} - -// MustParseISO is like ParseISO, but panics if the given currency -// cannot be parsed. It simplifies safe initialization of Currency values. -func MustParseISO(s string) Currency { - c, err := ParseISO(s) - if err != nil { - panic(err) - } - return c -} - -// FromRegion reports the Currency that is currently legal tender in the given -// region according to CLDR. It will return false if region currently does not -// have a legal tender. -func FromRegion(r language.Region) (tender Currency, ok bool) { - x := regionToCode(r) - i := sort.Search(len(regionToCurrency), func(i int) bool { - return regionToCurrency[i].region >= x - }) - if i < len(regionToCurrency) && regionToCurrency[i].region == x { - return Currency{regionToCurrency[i].code}, true - } - return Currency{0}, false -} - -// FromTag reports the most likely currency for the given tag. It considers the -// currency defined in the -u extension and infers the region if necessary. -func FromTag(t language.Tag) (Currency, language.Confidence) { - if cur := t.TypeForKey("cu"); len(cur) == 3 { - var buf [3]byte - copy(buf[:], cur) - tag.FixCase("XXX", buf[:]) - if x := currency.Index(buf[:]); x > 0 { - return Currency{uint16(x)}, language.Exact - } - } - r, conf := t.Region() - if cur, ok := FromRegion(r); ok { - return cur, conf - } - return Currency{}, language.No -} - -var ( - // Undefined and testing. - XXX Currency = Currency{xxx} - XTS Currency = Currency{xts} - - // G10 currencies https://en.wikipedia.org/wiki/G10_currencies. - USD Currency = Currency{usd} - EUR Currency = Currency{eur} - JPY Currency = Currency{jpy} - GBP Currency = Currency{gbp} - CHF Currency = Currency{chf} - AUD Currency = Currency{aud} - NZD Currency = Currency{nzd} - CAD Currency = Currency{cad} - SEK Currency = Currency{sek} - NOK Currency = Currency{nok} - - // Additional common currencies as defined by CLDR. - BRL Currency = Currency{brl} - CNY Currency = Currency{cny} - DKK Currency = Currency{dkk} - INR Currency = Currency{inr} - RUB Currency = Currency{rub} - HKD Currency = Currency{hkd} - IDR Currency = Currency{idr} - KRW Currency = Currency{krw} - MXN Currency = Currency{mxn} - PLN Currency = Currency{pln} - SAR Currency = Currency{sar} - THB Currency = Currency{thb} - TRY Currency = Currency{try} - TWD Currency = Currency{twd} - ZAR Currency = Currency{zar} - - // Precious metals. - XAG Currency = Currency{xag} - XAU Currency = Currency{xau} - XPT Currency = Currency{xpt} - XPD Currency = Currency{xpd} -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/currency_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/currency_test.go deleted file mode 100644 index 62228a15..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/currency_test.go +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package currency - -import ( - "fmt" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/testtext" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -func TestParseISO(t *testing.T) { - testCases := []struct { - in string - out string - ok bool - }{ - {"USD", "USD", true}, - {"xxx", "XXX", true}, - {"xts", "XTS", true}, - {"XX", "XXX", false}, - {"XXXX", "XXX", false}, - {"", "XXX", false}, // not well-formed - {"UUU", "XXX", false}, // unknown - {"\u22A9", "XXX", false}, // non-ASCII, printable - - {"aaa", "XXX", false}, - {"zzz", "XXX", false}, - {"000", "XXX", false}, - {"999", "XXX", false}, - {"---", "XXX", false}, - {"\x00\x00\x00", "XXX", false}, - {"\xff\xff\xff", "XXX", false}, - } - for i, tc := range testCases { - if x, err := ParseISO(tc.in); x.String() != tc.out || err == nil != tc.ok { - t.Errorf("%d:%s: was %s, %v; want %s, %v", i, tc.in, x, err == nil, tc.out, tc.ok) - } - } -} - -func TestFromRegion(t *testing.T) { - testCases := []struct { - region, currency string - ok bool - }{ - {"NL", "EUR", true}, - {"BE", "EUR", true}, - {"AG", "XCD", true}, - {"CH", "CHF", true}, - {"CU", "CUP", true}, // first of multiple - {"DG", "USD", true}, // does not have M49 code - {"150", "XXX", false}, // implicit false - {"CP", "XXX", false}, // explicit false in CLDR - {"CS", "XXX", false}, // all expired - {"ZZ", "XXX", false}, // none match - } - for _, tc := range testCases { - cur, ok := FromRegion(language.MustParseRegion(tc.region)) - if cur.String() != tc.currency || ok != tc.ok { - t.Errorf("%s: got %v, %v; want %v, %v", tc.region, cur, ok, tc.currency, tc.ok) - } - } -} - -func TestFromTag(t *testing.T) { - testCases := []struct { - tag, currency string - conf language.Confidence - }{ - {"nl", "EUR", language.Low}, // nl also spoken outside Euro land. - {"nl-BE", "EUR", language.Exact}, // region is known - {"pt", "BRL", language.Low}, - {"en", "USD", language.Low}, - {"en-u-cu-eur", "EUR", language.Exact}, - {"tlh", "XXX", language.No}, // Klingon has no country. - {"es-419", "XXX", language.No}, - {"und", "USD", language.Low}, - } - for _, tc := range testCases { - cur, conf := FromTag(language.MustParse(tc.tag)) - if cur.String() != tc.currency || conf != tc.conf { - t.Errorf("%s: got %v, %v; want %v, %v", tc.tag, cur, conf, tc.currency, tc.conf) - } - } -} - -var ( - czk = MustParseISO("CZK") - zwr = MustParseISO("ZWR") -) - -func TestTable(t *testing.T) { - for i := 4; i < len(currency); i += 4 { - if a, b := currency[i-4:i-1], currency[i:i+3]; a >= b { - t.Errorf("currency unordered at element %d: %s >= %s", i, a, b) - } - } - // First currency has index 1, last is numCurrencies. - if c := currency.Elem(1)[:3]; c != "ADP" { - t.Errorf("first was %c; want ADP", c) - } - if c := currency.Elem(numCurrencies)[:3]; c != "ZWR" { - t.Errorf("last was %c; want ZWR", c) - } -} - -func TestKindRounding(t *testing.T) { - testCases := []struct { - kind Kind - cur Currency - scale int - inc int - }{ - {Standard, USD, 2, 1}, - {Standard, CHF, 2, 1}, - {Cash, CHF, 2, 5}, - {Standard, TWD, 2, 1}, - {Cash, TWD, 0, 1}, - {Standard, czk, 2, 1}, - {Cash, czk, 0, 1}, - {Standard, zwr, 2, 1}, - {Cash, zwr, 0, 1}, - {Standard, KRW, 0, 1}, - {Cash, KRW, 0, 1}, // Cash defaults to standard. - } - for i, tc := range testCases { - if scale, inc := tc.kind.Rounding(tc.cur); scale != tc.scale && inc != tc.inc { - t.Errorf("%d: got %d, %d; want %d, %d", i, scale, inc, tc.scale, tc.inc) - } - } -} - -const body = `package main -import ( - "fmt" - "golang.org/x/text/currency" -) -func main() { - %s -} -` - -func TestLinking(t *testing.T) { - base := getSize(t, `fmt.Print(currency.CLDRVersion)`) - symbols := getSize(t, `fmt.Print(currency.Symbol(currency.USD))`) - if d := symbols - base; d < 2*1024 { - t.Errorf("size(symbols)-size(base) was %d; want > 2K", d) - } -} - -func getSize(t *testing.T, main string) int { - size, err := testtext.CodeSize(fmt.Sprintf(body, main)) - if err != nil { - t.Skipf("skipping link size test; binary size could not be determined: %v", err) - } - return size -} - -func BenchmarkString(b *testing.B) { - for i := 0; i < b.N; i++ { - USD.String() - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/format.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/format.go deleted file mode 100644 index 0d71ebe9..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/format.go +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package currency - -import ( - "fmt" - "io" - "sort" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/format" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -// Value is an amount-currency pair configured for language-specific formatting. -type Value struct { - amount interface{} - currency Currency - format *options -} - -// Verify implementation -var _ fmt.Formatter = Value{} - -// Currency reports the Currency of this value. -func (v Value) Currency() Currency { return v.currency } - -// Amount reports the amount of this Value -func (v Value) Amount() interface{} { return v.amount } - -var space = []byte(" ") - -// Format implements fmt.Formatter. It accepts format.State for -// language-specific rendering. -func (v Value) Format(s fmt.State, verb rune) { - var lang int - if state, ok := s.(format.State); ok { - lang, _ = language.CompactIndex(state.Language()) - } - - // Get the options. Use DefaultFormat if not present. - opt := v.format - if opt == nil { - opt = defaultFormat - } - cur := v.currency - if cur.index == 0 { - cur = opt.currency - } - - // TODO: use pattern. - io.WriteString(s, opt.symbol(lang, cur)) - if v.amount != nil { - s.Write(space) - - // TODO: apply currency-specific rounding - scale, _ := opt.kind.Rounding(cur) - if _, ok := s.Precision(); !ok { - fmt.Fprintf(s, "%.*f", scale, v.amount) - } else { - fmt.Fprint(s, v.amount) - } - } -} - -// Formatter decorates a given number, Currency or Value with formatting options. -type Formatter func(value interface{}) Value - -// TODO: call this a Formatter or FormatFunc? - -var dummy = USD.Value(0) - -// adjust creates a new Formatter based on the adjustments of fn on f. -func (f Formatter) adjust(fn func(*options)) Formatter { - var o options = *(f(dummy).format) - fn(&o) - return o.format -} - -// Default creates a new Formatter that defaults to currency c if a numeric -// value is passed that is not associated with a currency. -func (f Formatter) Default(c Currency) Formatter { - return f.adjust(func(o *options) { o.currency = c }) -} - -// Kind sets the kind of the underlying currency. -func (f Formatter) Kind(k Kind) Formatter { - return f.adjust(func(o *options) { o.kind = k }) -} - -var defaultFormat *options = ISO(dummy).format - -var ( - // Uses Narrow symbols. Overrides Symbol, if present. - NarrowSymbol Formatter = Formatter(formNarrow) - - // Use Symbols instead of ISO codes, when available. - Symbol Formatter = Formatter(formSymbol) - - // Use ISO code as symbol. - ISO Formatter = Formatter(formISO) - - // TODO: - // // Use full name as symbol. - // SpellOut Formatter - // - // // SpellOutAll causes symbol and numbers to be spelled wide. If used in - // // combination with the Symbol option, the symbol will be written in ISO - // // format. - // SpellOutAll Formatter -) - -// options configures rendering and rounding options for a Value. -type options struct { - currency Currency - kind Kind - - symbol func(compactIndex int, c Currency) string -} - -func (o *options) format(value interface{}) Value { - v := Value{format: o} - switch x := value.(type) { - case Value: - v.currency = x.currency - v.amount = x.amount - case *Value: - v.currency = x.currency - v.amount = x.amount - case Currency: - v.currency = x - case *Currency: - v.currency = *x - default: - if o.currency.index == 0 { - panic("cannot format number without a currency being set") - } - // TODO: Must be a number. - v.amount = x - } - return v -} - -var ( - optISO = options{symbol: lookupISO} - optSymbol = options{symbol: lookupSymbol} - optNarrow = options{symbol: lookupNarrow} -) - -// These need to be functions, rather than curried methods, as curried methods -// are evaluated at init time, causing tables to be included unconditionally. -func formISO(x interface{}) Value { return optISO.format(x) } -func formSymbol(x interface{}) Value { return optSymbol.format(x) } -func formNarrow(x interface{}) Value { return optNarrow.format(x) } - -func lookupISO(x int, c Currency) string { return c.String() } -func lookupSymbol(x int, c Currency) string { return normalSymbol.lookup(x, c) } -func lookupNarrow(x int, c Currency) string { return narrowSymbol.lookup(x, c) } - -type symbolIndex struct { - index []uint16 // position corresponds with compact index of language. - data []curToIndex -} - -var ( - normalSymbol = symbolIndex{normalLangIndex, normalSymIndex} - narrowSymbol = symbolIndex{narrowLangIndex, narrowSymIndex} -) - -func (x *symbolIndex) lookup(lang int, c Currency) string { - for { - index := x.data[x.index[lang]:x.index[lang+1]] - i := sort.Search(len(index), func(i int) bool { - return index[i].cur >= c.index - }) - if i < len(index) && index[i].cur == c.index { - x := index[i].idx - start := x + 1 - end := start + uint16(symbols[x]) - if start == end { - return c.String() - } - return symbols[start:end] - } - if lang == 0 { - break - } - lang = int(internal.Parent[lang]) - } - return c.String() -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/format_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/format_test.go deleted file mode 100644 index 8112db23..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/format_test.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package currency - -import ( - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/message" -) - -var ( - en = language.English - fr = language.French - en_US = language.AmericanEnglish - en_AU = language.MustParse("en-AU") - und = language.Und -) - -func TestFormatting(t *testing.T) { - testCases := []struct { - tag language.Tag - value interface{} - format Formatter - want string - }{ - 0: {en, USD.Value(0.1), nil, "USD 0.10"}, - 1: {en, XPT.Value(1.0), Symbol, "XPT 1.00"}, - - 2: {en, USD.Value(2.0), ISO, "USD 2.00"}, - 3: {und, USD.Value(3.0), Symbol, "US$ 3.00"}, - 4: {en, USD.Value(4.0), Symbol, "$ 4.00"}, - - 5: {en, USD.Value(5.20), NarrowSymbol, "$ 5.20"}, - 6: {en, AUD.Value(6.20), Symbol, "A$ 6.20"}, - - 7: {en_AU, AUD.Value(7.20), Symbol, "$ 7.20"}, - 8: {en_AU, USD.Value(8.20), Symbol, "US$ 8.20"}, - - 9: {en, 9.0, Symbol.Default(EUR), "€ 9.00"}, - 10: {en, 10.123, Symbol.Default(KRW), "â‚© 10"}, - 11: {fr, 11.52, Symbol.Default(TWD), "TWD 11.52"}, - 12: {en, 12.123, Symbol.Default(czk), "CZK 12.12"}, - 13: {en, 13.123, Symbol.Default(czk).Kind(Cash), "CZK 13"}, - 14: {en, 14.12345, ISO.Default(MustParseISO("CLF")), "CLF 14.1235"}, - 15: {en, USD.Value(15.00), ISO.Default(TWD), "USD 15.00"}, - 16: {en, KRW.Value(16.00), ISO.Kind(Cash), "KRW 16"}, - - // TODO: support integers as well. - - 17: {en, USD, nil, "USD"}, - 18: {en, USD, ISO, "USD"}, - 19: {en, USD, Symbol, "$"}, - 20: {en_AU, USD, Symbol, "US$"}, - 21: {en_AU, USD, NarrowSymbol, "$"}, - } - for i, tc := range testCases { - p := message.NewPrinter(tc.tag) - v := tc.value - if tc.format != nil { - v = tc.format(v) - } - if got := p.Sprint(v); got != tc.want { - t.Errorf("%d: got %q; want %q", i, got, tc.want) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/gen.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/gen.go deleted file mode 100644 index c7d25dc0..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/gen.go +++ /dev/null @@ -1,371 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// Generator for currency-related data. - -package main - -import ( - "bytes" - "flag" - "fmt" - "io/ioutil" - "log" - "os" - "sort" - "strconv" - "strings" - - "golang.org/x/text/cldr" - "golang.org/x/text/internal" - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/tag" - "golang.org/x/text/language" -) - -var ( - test = flag.Bool("test", false, - "test existing tables; can be used to compare web data with package data.") - outputFile = flag.String("output", "tables.go", "output file") - - draft = flag.String("draft", - "contributed", - `Minimal draft requirements (approved, contributed, provisional, unconfirmed).`) -) - -func main() { - gen.Init() - - rewriteCommon() - - // Read the CLDR zip file. - r := gen.OpenCLDRCoreZip() - defer r.Close() - - d := &cldr.Decoder{} - d.SetDirFilter("supplemental", "main") - d.SetSectionFilter("numbers") - data, err := d.DecodeZip(r) - if err != nil { - log.Fatalf("DecodeZip: %v", err) - } - - w := gen.NewCodeWriter() - defer w.WriteGoFile(*outputFile, "currency") - - fmt.Fprintln(w, `import "golang.org/x/text/internal/tag"`) - - gen.WriteCLDRVersion(w) - b := &builder{} - b.genCurrencies(w, data.Supplemental()) - b.genSymbols(w, data) -} - -func rewriteCommon() { - // Generate common.go - src, err := ioutil.ReadFile("gen_common.go") - if err != nil { - log.Fatal(err) - } - const toDelete = "// +build ignore\n\npackage main\n\n" - i := bytes.Index(src, []byte(toDelete)) - if i < 0 { - log.Fatalf("could not find %q in gen_common.go", toDelete) - } - w := &bytes.Buffer{} - w.Write(src[i+len(toDelete):]) - gen.WriteGoFile("common.go", "currency", w.Bytes()) -} - -var constants = []string{ - // Undefined and testing. - "XXX", "XTS", - // G11 currencies https://en.wikipedia.org/wiki/G10_currencies. - "USD", "EUR", "JPY", "GBP", "CHF", "AUD", "NZD", "CAD", "SEK", "NOK", "DKK", - // Precious metals. - "XAG", "XAU", "XPT", "XPD", - - // Additional common currencies as defined by CLDR. - "BRL", "CNY", "INR", "RUB", "HKD", "IDR", "KRW", "MXN", "PLN", "SAR", - "THB", "TRY", "TWD", "ZAR", -} - -type builder struct { - currencies tag.Index - numCurrencies int -} - -func (b *builder) genCurrencies(w *gen.CodeWriter, data *cldr.SupplementalData) { - // 3-letter ISO currency codes - // Start with dummy to let index start at 1. - currencies := []string{"\x00\x00\x00\x00"} - - // currency codes - for _, reg := range data.CurrencyData.Region { - for _, cur := range reg.Currency { - currencies = append(currencies, cur.Iso4217) - } - } - - sort.Strings(currencies) - // Unique the elements. - k := 0 - for i := 1; i < len(currencies); i++ { - if currencies[k] != currencies[i] { - currencies[k+1] = currencies[i] - k++ - } - } - currencies = currencies[:k+1] - - // Close with dummy for simpler and faster searching. - currencies = append(currencies, "\xff\xff\xff\xff") - - // Write currency values. - fmt.Fprintln(w, "const (") - for _, c := range constants { - index := sort.SearchStrings(currencies, c) - fmt.Fprintf(w, "\t%s = %d\n", strings.ToLower(c), index) - } - fmt.Fprint(w, ")") - - // Compute currency-related data that we merge into the table. - for _, info := range data.CurrencyData.Fractions[0].Info { - if info.Iso4217 == "DEFAULT" { - continue - } - standard := getRoundingIndex(info.Digits, info.Rounding, 0) - cash := getRoundingIndex(info.CashDigits, info.CashRounding, standard) - - index := sort.SearchStrings(currencies, info.Iso4217) - currencies[index] += mkCurrencyInfo(standard, cash) - } - - // Set default values for entries that weren't touched. - for i, c := range currencies { - if len(c) == 3 { - currencies[i] += mkCurrencyInfo(0, 0) - } - } - - b.currencies = tag.Index(strings.Join(currencies, "")) - w.WriteComment(` - currency holds an alphabetically sorted list of canonical 3-letter currency - identifiers. Each identifier is followed by a byte of type currencyInfo, - defined in gen_common.go.`) - w.WriteConst("currency", b.currencies) - - // Hack alert: gofmt indents a trailing comment after an indented string. - // Ensure that the next thing written is not a comment. - b.numCurrencies = (len(b.currencies) / 4) - 2 - w.WriteConst("numCurrencies", b.numCurrencies) - - // Create a table that maps regions to currencies. - regionToCurrency := []toCurrency{} - - for _, reg := range data.CurrencyData.Region { - if len(reg.Iso3166) != 2 { - log.Fatalf("Unexpected group %q in region data", reg.Iso3166) - } - if len(reg.Currency) == 0 { - continue - } - cur := reg.Currency[0] - if cur.To != "" || cur.Tender == "false" { - continue - } - regionToCurrency = append(regionToCurrency, toCurrency{ - region: regionToCode(language.MustParseRegion(reg.Iso3166)), - code: uint16(b.currencies.Index([]byte(cur.Iso4217))), - }) - } - sort.Sort(byRegion(regionToCurrency)) - - w.WriteType(toCurrency{}) - w.WriteVar("regionToCurrency", regionToCurrency) -} - -type toCurrency struct { - region uint16 - code uint16 -} - -type byRegion []toCurrency - -func (a byRegion) Len() int { return len(a) } -func (a byRegion) Swap(i, j int) { a[i], a[j] = a[j], a[i] } -func (a byRegion) Less(i, j int) bool { return a[i].region < a[j].region } - -func mkCurrencyInfo(standard, cash int) string { - return string([]byte{byte(cash<<cashShift | standard)}) -} - -func getRoundingIndex(digits, rounding string, defIndex int) int { - round := roundings[defIndex] // default - - if digits != "" { - round.scale = parseUint8(digits) - } - if rounding != "" && rounding != "0" { // 0 means 1 here in CLDR - round.increment = parseUint8(rounding) - } - - // Will panic if the entry doesn't exist: - for i, r := range roundings { - if r == round { - return i - } - } - log.Fatalf("Rounding entry %#v does not exist.", round) - panic("unreachable") -} - -// genSymbols generates the symbols used for currencies. Most symbols are -// defined in root and there is only very small variation per language. -// The following rules apply: -// - A symbol can be requested as normal or narrow. -// - If a symbol is not defined for a currency, it defaults to its ISO code. -func (b *builder) genSymbols(w *gen.CodeWriter, data *cldr.CLDR) { - d, err := cldr.ParseDraft(*draft) - if err != nil { - log.Fatalf("filter: %v", err) - } - - const ( - normal = iota - narrow - numTypes - ) - // language -> currency -> type -> symbol - var symbols [language.NumCompactTags][][numTypes]*string - - // Collect symbol information per language. - for _, lang := range data.Locales() { - ldml := data.RawLDML(lang) - if ldml.Numbers == nil || ldml.Numbers.Currencies == nil { - continue - } - - langIndex, ok := language.CompactIndex(language.MustParse(lang)) - if !ok { - log.Fatalf("No compact index for language %s", lang) - } - - symbols[langIndex] = make([][numTypes]*string, b.numCurrencies+1) - - for _, c := range ldml.Numbers.Currencies.Currency { - syms := cldr.MakeSlice(&c.Symbol) - syms.SelectDraft(d) - - for _, sym := range c.Symbol { - v := sym.Data() - if v == c.Type { - // We define "" to mean the ISO symbol. - v = "" - } - cur := b.currencies.Index([]byte(c.Type)) - if cur == -1 { - fmt.Println("Unsupported:", c.Type) // TODO: mark MVP as supported. - continue - } - - switch sym.Alt { - case "": - symbols[langIndex][cur][normal] = &v - case "narrow": - symbols[langIndex][cur][narrow] = &v - } - } - } - } - - // Remove values identical to the parent. - for langIndex, data := range symbols { - for curIndex, curs := range data { - for typ, sym := range curs { - if sym == nil { - continue - } - for p := uint16(langIndex); p != 0; { - p = internal.Parent[p] - x := symbols[p] - if x == nil { - continue - } - if v := x[curIndex][typ]; v != nil || p == 0 { - // Value is equal to the default value root value is undefined. - parentSym := "" - if v != nil { - parentSym = *v - } - if parentSym == *sym { - // Value is the same as parent. - data[curIndex][typ] = nil - } - break - } - } - } - } - } - - // Create symbol index. - symbolData := []byte{0} - symbolLookup := map[string]uint16{"": 0} // 0 means default, so block that value. - for _, data := range symbols { - for _, curs := range data { - for _, sym := range curs { - if sym == nil { - continue - } - if _, ok := symbolLookup[*sym]; !ok { - symbolLookup[*sym] = uint16(len(symbolData)) - symbolData = append(symbolData, byte(len(*sym))) - symbolData = append(symbolData, *sym...) - } - } - } - } - w.WriteComment(` - symbols holds symbol data of the form <n> <str>, where n is the length of - the symbol string str.`) - w.WriteConst("symbols", string(symbolData)) - - // Create index from language to currency lookup to symbol. - type curToIndex struct{ cur, idx uint16 } - w.WriteType(curToIndex{}) - - prefix := []string{"normal", "narrow"} - // Create data for regular and narrow symbol data. - for typ := normal; typ <= narrow; typ++ { - - indexes := []curToIndex{} // maps currency to symbol index - languages := []uint16{} - - for _, data := range symbols { - languages = append(languages, uint16(len(indexes))) - for curIndex, curs := range data { - - if sym := curs[typ]; sym != nil { - indexes = append(indexes, curToIndex{uint16(curIndex), symbolLookup[*sym]}) - } - } - } - languages = append(languages, uint16(len(indexes))) - - w.WriteVar(prefix[typ]+"LangIndex", languages) - w.WriteVar(prefix[typ]+"SymIndex", indexes) - } -} -func parseUint8(str string) uint8 { - x, err := strconv.ParseUint(str, 10, 8) - if err != nil { - // Show line number of where this function was called. - log.New(os.Stderr, "", log.Lshortfile).Output(2, err.Error()) - os.Exit(1) - } - return uint8(x) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/gen_common.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/gen_common.go deleted file mode 100644 index 85889536..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/gen_common.go +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import "golang.org/x/text/language" - -// This file contains code common to gen.go and the package code. - -const ( - cashShift = 3 - roundMask = 0x7 -) - -// currencyInfo contains information about a currency. -// bits 0..2: index into roundings for standard rounding -// bits 3..5: index into roundings for cash rounding -type currencyInfo byte - -// roundingType defines the scale (number of fractional decimals) and increments -// in terms of units of size 10^-scale. For example, for scale == 2 and -// increment == 1, the currency is rounded to units of 0.01. -type roundingType struct { - scale, increment uint8 -} - -// roundings contains rounding data for currencies. This struct is -// created by hand as it is very unlikely to change much. -var roundings = [...]roundingType{ - {2, 1}, // default - {0, 1}, - {1, 1}, - {3, 1}, - {4, 1}, - {2, 5}, // cash rounding alternative -} - -// regionToCode returns a 16-bit region code. Only two-letter codes are -// supported. (Three-letter codes are not needed.) -func regionToCode(r language.Region) uint16 { - if s := r.String(); len(s) == 2 { - return uint16(s[0])<<8 | uint16(s[1]) - } - return 0 -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/tables.go deleted file mode 100644 index 8e21985f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/tables.go +++ /dev/null @@ -1,1664 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package currency - -import "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag" - -// CLDRVersion is the CLDR version from which the tables in this package are derived. -const CLDRVersion = "27.0.1" - -const ( - xxx = 281 - xts = 279 - usd = 248 - eur = 92 - jpy = 131 - gbp = 97 - chf = 60 - aud = 19 - nzd = 189 - cad = 57 - sek = 216 - nok = 187 - dkk = 80 - xag = 262 - xau = 263 - xpt = 276 - xpd = 274 - brl = 46 - cny = 66 - inr = 123 - rub = 207 - hkd = 112 - idr = 118 - krw = 139 - mxn = 175 - pln = 198 - sar = 210 - thb = 231 - try = 240 - twd = 242 - zar = 289 -) - -// currency holds an alphabetically sorted list of canonical 3-letter currency -// identifiers. Each identifier is followed by a byte of type currencyInfo, -// defined in gen_common.go. -// Size: 1192 bytes -var currency tag.Index = "" + - "\x00\x00\x00\x00ADP\x09AED\x00AFA\x00AFN\x09ALK\x00ALL\x09AMD\x09ANG\x00" + - "AOA\x00AOK\x00AON\x00AOR\x00ARA\x00ARL\x00ARM\x00ARP\x00ARS\x00ATS\x00AU" + - "D\x00AWG\x00AZM\x00AZN\x00BAD\x00BAM\x00BAN\x00BBD\x00BDT\x00BEC\x00BEF" + - "\x00BEL\x00BGL\x00BGM\x00BGN\x00BGO\x00BHD\x1bBIF\x09BMD\x00BND\x00BOB" + - "\x00BOL\x00BOP\x00BOV\x00BRB\x00BRC\x00BRE\x00BRL\x00BRN\x00BRR\x00BRZ" + - "\x00BSD\x00BTN\x00BUK\x00BWP\x00BYB\x00BYR\x09BZD\x00CAD(CDF\x00CHE\x00C" + - "HF(CHW\x00CLE\x00CLF$CLP\x09CNX\x00CNY\x00COP\x09COU\x00CRC\x09CSD\x00CS" + - "K\x00CUC\x00CUP\x00CVE\x00CYP\x00CZK\x08DDM\x00DEM\x00DJF\x09DKK\x00DOP" + - "\x00DZD\x00ECS\x00ECV\x00EEK\x00EGP\x00ERN\x00ESA\x00ESB\x00ESP\x09ETB" + - "\x00EUR\x00FIM\x00FJD\x00FKP\x00FRF\x00GBP\x00GEK\x00GEL\x00GHC\x00GHS" + - "\x00GIP\x00GMD\x00GNF\x09GNS\x00GQE\x00GRD\x00GTQ\x00GWE\x00GWP\x00GYD" + - "\x09HKD\x00HNL\x00HRD\x00HRK\x00HTG\x00HUF\x08IDR\x09IEP\x00ILP\x00ILR" + - "\x00ILS\x00INR\x00IQD\x09IRR\x09ISJ\x00ISK\x09ITL\x09JMD\x00JOD\x1bJPY" + - "\x09KES\x00KGS\x00KHR\x00KMF\x09KPW\x09KRH\x00KRO\x00KRW\x09KWD\x1bKYD" + - "\x00KZT\x00LAK\x09LBP\x09LKR\x00LRD\x00LSL\x00LTL\x00LTT\x00LUC\x00LUF" + - "\x09LUL\x00LVL\x00LVR\x00LYD\x1bMAD\x00MAF\x00MCF\x00MDC\x00MDL\x00MGA" + - "\x09MGF\x09MKD\x00MKN\x00MLF\x00MMK\x09MNT\x09MOP\x00MRO\x09MTL\x00MTP" + - "\x00MUR\x09MVR\x00MWK\x00MXN\x00MXP\x00MXV\x00MYR\x00MZE\x00MZM\x00MZN" + - "\x00NAD\x00NGN\x00NIC\x00NIO\x00NLG\x00NOK\x00NPR\x00NZD\x00OMR\x1bPAB" + - "\x00PEI\x00PEN\x00PES\x00PGK\x00PHP\x00PKR\x09PLN\x00PLZ\x00PTE\x00PYG" + - "\x09QAR\x00RHD\x00ROL\x00RON\x00RSD\x09RUB\x00RUR\x00RWF\x09SAR\x00SBD" + - "\x00SCR\x00SDD\x00SDG\x00SDP\x00SEK\x00SGD\x00SHP\x00SIT\x00SKK\x00SLL" + - "\x09SOS\x09SRD\x00SRG\x00SSP\x00STD\x09SUR\x00SVC\x00SYP\x09SZL\x00THB" + - "\x00TJR\x00TJS\x00TMM\x09TMT\x00TND\x1bTOP\x00TPE\x00TRL\x09TRY\x00TTD" + - "\x00TWD\x08TZS\x09UAH\x00UAK\x00UGS\x00UGX\x09USD\x00USN\x00USS\x00UYI" + - "\x09UYP\x00UYU\x00UZS\x09VEB\x00VEF\x00VND\x09VNN\x00VUV\x09WST\x00XAF" + - "\x09XAG\x00XAU\x00XBA\x00XBB\x00XBC\x00XBD\x00XCD\x00XDR\x00XEU\x00XFO" + - "\x00XFU\x00XOF\x09XPD\x00XPF\x09XPT\x00XRE\x00XSU\x00XTS\x00XUA\x00XXX" + - "\x00YDD\x00YER\x09YUD\x00YUM\x00YUN\x00YUR\x00ZAL\x00ZAR\x00ZMK\x09ZMW" + - "\x00ZRN\x00ZRZ\x00ZWD\x09ZWL\x00ZWR\x00\xff\xff\xff\xff" - -const numCurrencies = 296 - -type toCurrency struct { - region uint16 - code uint16 -} - -// Size: 1044 bytes, 255 elements -var regionToCurrency = []toCurrency{ - {region: 0x4143, code: 0xda}, - {region: 0x4144, code: 0x5c}, - {region: 0x4145, code: 0x2}, - {region: 0x4146, code: 0x4}, - {region: 0x4147, code: 0x10c}, - {region: 0x4149, code: 0x10c}, - {region: 0x414c, code: 0x6}, - {region: 0x414d, code: 0x7}, - {region: 0x414f, code: 0x9}, - {region: 0x4152, code: 0x11}, - {region: 0x4153, code: 0xf8}, - {region: 0x4154, code: 0x5c}, - {region: 0x4155, code: 0x13}, - {region: 0x4157, code: 0x14}, - {region: 0x4158, code: 0x5c}, - {region: 0x415a, code: 0x16}, - {region: 0x4241, code: 0x18}, - {region: 0x4242, code: 0x1a}, - {region: 0x4244, code: 0x1b}, - {region: 0x4245, code: 0x5c}, - {region: 0x4246, code: 0x111}, - {region: 0x4247, code: 0x21}, - {region: 0x4248, code: 0x23}, - {region: 0x4249, code: 0x24}, - {region: 0x424a, code: 0x111}, - {region: 0x424c, code: 0x5c}, - {region: 0x424d, code: 0x25}, - {region: 0x424e, code: 0x26}, - {region: 0x424f, code: 0x27}, - {region: 0x4251, code: 0xf8}, - {region: 0x4252, code: 0x2e}, - {region: 0x4253, code: 0x32}, - {region: 0x4254, code: 0x33}, - {region: 0x4256, code: 0xbb}, - {region: 0x4257, code: 0x35}, - {region: 0x4259, code: 0x37}, - {region: 0x425a, code: 0x38}, - {region: 0x4341, code: 0x39}, - {region: 0x4343, code: 0x13}, - {region: 0x4344, code: 0x3a}, - {region: 0x4346, code: 0x105}, - {region: 0x4347, code: 0x105}, - {region: 0x4348, code: 0x3c}, - {region: 0x4349, code: 0x111}, - {region: 0x434b, code: 0xbd}, - {region: 0x434c, code: 0x40}, - {region: 0x434d, code: 0x105}, - {region: 0x434e, code: 0x42}, - {region: 0x434f, code: 0x43}, - {region: 0x4352, code: 0x45}, - {region: 0x4355, code: 0x49}, - {region: 0x4356, code: 0x4a}, - {region: 0x4357, code: 0x8}, - {region: 0x4358, code: 0x13}, - {region: 0x4359, code: 0x5c}, - {region: 0x435a, code: 0x4c}, - {region: 0x4445, code: 0x5c}, - {region: 0x4447, code: 0xf8}, - {region: 0x444a, code: 0x4f}, - {region: 0x444b, code: 0x50}, - {region: 0x444d, code: 0x10c}, - {region: 0x444f, code: 0x51}, - {region: 0x445a, code: 0x52}, - {region: 0x4541, code: 0x5c}, - {region: 0x4543, code: 0xf8}, - {region: 0x4545, code: 0x5c}, - {region: 0x4547, code: 0x56}, - {region: 0x4548, code: 0x9c}, - {region: 0x4552, code: 0x57}, - {region: 0x4553, code: 0x5c}, - {region: 0x4554, code: 0x5b}, - {region: 0x4555, code: 0x5c}, - {region: 0x4649, code: 0x5c}, - {region: 0x464a, code: 0x5e}, - {region: 0x464b, code: 0x5f}, - {region: 0x464d, code: 0xf8}, - {region: 0x464f, code: 0x50}, - {region: 0x4652, code: 0x5c}, - {region: 0x4741, code: 0x105}, - {region: 0x4742, code: 0x61}, - {region: 0x4744, code: 0x10c}, - {region: 0x4745, code: 0x63}, - {region: 0x4746, code: 0x5c}, - {region: 0x4747, code: 0x61}, - {region: 0x4748, code: 0x65}, - {region: 0x4749, code: 0x66}, - {region: 0x474c, code: 0x50}, - {region: 0x474d, code: 0x67}, - {region: 0x474e, code: 0x68}, - {region: 0x4750, code: 0x5c}, - {region: 0x4751, code: 0x105}, - {region: 0x4752, code: 0x5c}, - {region: 0x4753, code: 0x61}, - {region: 0x4754, code: 0x6c}, - {region: 0x4755, code: 0xf8}, - {region: 0x4757, code: 0x111}, - {region: 0x4759, code: 0x6f}, - {region: 0x484b, code: 0x70}, - {region: 0x484d, code: 0x13}, - {region: 0x484e, code: 0x71}, - {region: 0x4852, code: 0x73}, - {region: 0x4854, code: 0x74}, - {region: 0x4855, code: 0x75}, - {region: 0x4943, code: 0x5c}, - {region: 0x4944, code: 0x76}, - {region: 0x4945, code: 0x5c}, - {region: 0x494c, code: 0x7a}, - {region: 0x494d, code: 0x61}, - {region: 0x494e, code: 0x7b}, - {region: 0x494f, code: 0xf8}, - {region: 0x4951, code: 0x7c}, - {region: 0x4952, code: 0x7d}, - {region: 0x4953, code: 0x7f}, - {region: 0x4954, code: 0x5c}, - {region: 0x4a45, code: 0x61}, - {region: 0x4a4d, code: 0x81}, - {region: 0x4a4f, code: 0x82}, - {region: 0x4a50, code: 0x83}, - {region: 0x4b45, code: 0x84}, - {region: 0x4b47, code: 0x85}, - {region: 0x4b48, code: 0x86}, - {region: 0x4b49, code: 0x13}, - {region: 0x4b4d, code: 0x87}, - {region: 0x4b4e, code: 0x10c}, - {region: 0x4b50, code: 0x88}, - {region: 0x4b52, code: 0x8b}, - {region: 0x4b57, code: 0x8c}, - {region: 0x4b59, code: 0x8d}, - {region: 0x4b5a, code: 0x8e}, - {region: 0x4c41, code: 0x8f}, - {region: 0x4c42, code: 0x90}, - {region: 0x4c43, code: 0x10c}, - {region: 0x4c49, code: 0x3c}, - {region: 0x4c4b, code: 0x91}, - {region: 0x4c52, code: 0x92}, - {region: 0x4c53, code: 0x121}, - {region: 0x4c54, code: 0x5c}, - {region: 0x4c55, code: 0x5c}, - {region: 0x4c56, code: 0x5c}, - {region: 0x4c59, code: 0x9b}, - {region: 0x4d41, code: 0x9c}, - {region: 0x4d43, code: 0x5c}, - {region: 0x4d44, code: 0xa0}, - {region: 0x4d45, code: 0x5c}, - {region: 0x4d46, code: 0x5c}, - {region: 0x4d47, code: 0xa1}, - {region: 0x4d48, code: 0xf8}, - {region: 0x4d4b, code: 0xa3}, - {region: 0x4d4c, code: 0x111}, - {region: 0x4d4d, code: 0xa6}, - {region: 0x4d4e, code: 0xa7}, - {region: 0x4d4f, code: 0xa8}, - {region: 0x4d50, code: 0xf8}, - {region: 0x4d51, code: 0x5c}, - {region: 0x4d52, code: 0xa9}, - {region: 0x4d53, code: 0x10c}, - {region: 0x4d54, code: 0x5c}, - {region: 0x4d55, code: 0xac}, - {region: 0x4d56, code: 0xad}, - {region: 0x4d57, code: 0xae}, - {region: 0x4d58, code: 0xaf}, - {region: 0x4d59, code: 0xb2}, - {region: 0x4d5a, code: 0xb5}, - {region: 0x4e41, code: 0xb6}, - {region: 0x4e43, code: 0x113}, - {region: 0x4e45, code: 0x111}, - {region: 0x4e46, code: 0x13}, - {region: 0x4e47, code: 0xb7}, - {region: 0x4e49, code: 0xb9}, - {region: 0x4e4c, code: 0x5c}, - {region: 0x4e4f, code: 0xbb}, - {region: 0x4e50, code: 0xbc}, - {region: 0x4e52, code: 0x13}, - {region: 0x4e55, code: 0xbd}, - {region: 0x4e5a, code: 0xbd}, - {region: 0x4f4d, code: 0xbe}, - {region: 0x5041, code: 0xbf}, - {region: 0x5045, code: 0xc1}, - {region: 0x5046, code: 0x113}, - {region: 0x5047, code: 0xc3}, - {region: 0x5048, code: 0xc4}, - {region: 0x504b, code: 0xc5}, - {region: 0x504c, code: 0xc6}, - {region: 0x504d, code: 0x5c}, - {region: 0x504e, code: 0xbd}, - {region: 0x5052, code: 0xf8}, - {region: 0x5053, code: 0x7a}, - {region: 0x5054, code: 0x5c}, - {region: 0x5057, code: 0xf8}, - {region: 0x5059, code: 0xc9}, - {region: 0x5141, code: 0xca}, - {region: 0x5245, code: 0x5c}, - {region: 0x524f, code: 0xcd}, - {region: 0x5253, code: 0xce}, - {region: 0x5255, code: 0xcf}, - {region: 0x5257, code: 0xd1}, - {region: 0x5341, code: 0xd2}, - {region: 0x5342, code: 0xd3}, - {region: 0x5343, code: 0xd4}, - {region: 0x5344, code: 0xd6}, - {region: 0x5345, code: 0xd8}, - {region: 0x5347, code: 0xd9}, - {region: 0x5348, code: 0xda}, - {region: 0x5349, code: 0x5c}, - {region: 0x534a, code: 0xbb}, - {region: 0x534b, code: 0x5c}, - {region: 0x534c, code: 0xdd}, - {region: 0x534d, code: 0x5c}, - {region: 0x534e, code: 0x111}, - {region: 0x534f, code: 0xde}, - {region: 0x5352, code: 0xdf}, - {region: 0x5353, code: 0xe1}, - {region: 0x5354, code: 0xe2}, - {region: 0x5356, code: 0xf8}, - {region: 0x5358, code: 0x8}, - {region: 0x5359, code: 0xe5}, - {region: 0x535a, code: 0xe6}, - {region: 0x5441, code: 0x61}, - {region: 0x5443, code: 0xf8}, - {region: 0x5444, code: 0x105}, - {region: 0x5446, code: 0x5c}, - {region: 0x5447, code: 0x111}, - {region: 0x5448, code: 0xe7}, - {region: 0x544a, code: 0xe9}, - {region: 0x544b, code: 0xbd}, - {region: 0x544c, code: 0xf8}, - {region: 0x544d, code: 0xeb}, - {region: 0x544e, code: 0xec}, - {region: 0x544f, code: 0xed}, - {region: 0x5452, code: 0xf0}, - {region: 0x5454, code: 0xf1}, - {region: 0x5456, code: 0x13}, - {region: 0x5457, code: 0xf2}, - {region: 0x545a, code: 0xf3}, - {region: 0x5541, code: 0xf4}, - {region: 0x5547, code: 0xf7}, - {region: 0x554d, code: 0xf8}, - {region: 0x5553, code: 0xf8}, - {region: 0x5559, code: 0xfd}, - {region: 0x555a, code: 0xfe}, - {region: 0x5641, code: 0x5c}, - {region: 0x5643, code: 0x10c}, - {region: 0x5645, code: 0x100}, - {region: 0x5647, code: 0xf8}, - {region: 0x5649, code: 0xf8}, - {region: 0x564e, code: 0x101}, - {region: 0x5655, code: 0x103}, - {region: 0x5746, code: 0x113}, - {region: 0x5753, code: 0x104}, - {region: 0x584b, code: 0x5c}, - {region: 0x5945, code: 0x11b}, - {region: 0x5954, code: 0x5c}, - {region: 0x5a41, code: 0x121}, - {region: 0x5a4d, code: 0x123}, - {region: 0x5a57, code: 0xf8}, -} - -// symbols holds symbol data of the form <n> <str>, where n is the length of -// the symbol string str. -// Size: 1310 bytes -var symbols string = "" + - "\x00\x02Kz\x01$\x02A$\x02KM\x03৳\x02Bs\x02R$\x01P\x03Ñ€.\x03CA$\x04CNÂ¥" + - "\x02Â¥\x03â‚¡\x03KÄ\x02kr\x03E£\x03₧\x03€\x02£\x02FG\x01Q\x03HK$\x01L\x02kn" + - "\x02Ft\x02Rp\x03₪\x03₹\x04JPÂ¥\x03៛\x02CF\x03â‚©\x03₸\x03â‚­\x03L£\x02Rs\x02L" + - "t\x02Ls\x02Ar\x01K\x03â‚®\x03MX$\x02RM\x03₦\x02C$\x03NZ$\x03₱\x03zÅ‚\x03₲" + - "\x02RF\x02Db\x03฿\x02T$\x03₺\x03NT$\x03â‚´\x03US$\x03â‚«\x04FCFA\x03EC$\x03C" + - "FA\x04CFPF\x01R\x02ZK\x05GH₵\x03AU$\x06ብር\x09د.Ø¥.\u200f\x03AR$\x03BB$" + - "\x09د.ب.\u200f\x03BM$\x03BN$\x03BS$\x03BZ$\x03CL$\x05ÙŠ.ص\x03CO$\x03CU$" + - "\x03DO$\x09د.ج.\u200f\x09ج.Ù….\u200f\x03FJ$\x04UK£\x03GY$\x08ر.إن.\x09ر.Ù‡" + - ".\u200f\x09د.ع.\u200f\x06ر.Ø¥.\x03JM$\x09د.Ø£.\u200f\x0cÙ.ج.Ù‚.\u200f\x09د." + - "Ùƒ.\u200f\x03KY$\x09Ù„.Ù„.\u200f\x09د.Ù„.\u200f\x09د.Ù….\u200f\x09Ø£.Ù….\u200f" + - "\x09ر.ع.\u200f\x06ر.ب.\x09ر.Ù‚.\u200f\x09ر.س.\u200f\x03SB$\x09د.س.\u200f" + - "\x06ج.س.\x03SR$\x09ج.ج.س.\x09Ù„.س.\u200f\x09د.ت.\u200f\x06Ù„.ت.\x03TT$\x03" + - "UY$\x03***\x09ر.ÙŠ.\u200f\x03Fdj\x03Nfk\x01S\x04GB£\x03TSh\x07ман.\x0fраÑ" + - ". руб.\x05лв.\x07руб.\x06щ.д.\x02$A\x03$CA\x05£ RU\x04$ HK\x04$ ZN\x04$ " + - "SU\x04din.\x04КМ\x04Кч\x04зл\x07дин.\x04Тл\x03USD\x01F\x03USh\x04KÄs\x03" + - "EMU\x03ECU\x03kr.\x03Ksh\x03öS\x03BGK\x03BGJ\x02DM\x03Nu.\x05KRâ‚©\x05TH฿" + - "\x06ΔÏχ\x01D\x04MOP$\x02MK\x02SR\x02Le\x04NAf.\x01E\x02VT\x03WS$\x02Af" + - "\x03Naf\x02$a\x04Afl.\x02Br\x03RD$\x02TL\x03B/.\x03S/.\x03Bs.\x02Ø‹\x04Â¥C" + - "N\x03$HK\x08ریال\x03$MX\x03$NZ\x03$EC\x02UM\x02mk\x02$U\x03$AR\x03$AU" + - "\x02FB\x03$BM\x03$BN\x03$BS\x03$BZ\x03$CL\x03$CO\x04£CY\x03$FJ\x04£FK" + - "\x04£GB\x04£GI\x04£IE\x04£IL\x05₤IT\x04£LB\x04£MT\x03$NA\x03$RH\x03$SB" + - "\x03$SG\x03$SR\x03$TT\x03$US\x03$UY\x04FCFP\x03FBu\x05$\u00a0AU\x05$" + - "\u00a0HK\x05$\u00a0NZ\x05$\u00a0SG\x05$\u00a0US\x02FC\x02DA\x01G\x02LS" + - "\x02DT\x03SI$\x02$R\x04Â¥JP\x03$NT\x06ל״י\x02Ö\x03å…ƒ\x03ï¿¥\x03₩\x03\u200b" + - "\x04БД\x05КД$\x06Ñом\x02Gs\x04dol.\x03MTn\x06ден\x0cनेरू\x02ر\x04Esc." + - "\x06\u200bPTE\x06ТМТ\x04XXXX\x03Dkr\x03Skr\x03Nkr\x07රු.\x0fසිෆ්එ\x03NIS" + - "\x05Lekë\x03den\x05[BGN]\x05[BYR]\x04Bds$\x03BR$\x04CAN$\x03Ekr\x04EG£" + - "\x03Ikr\x03Rs.\x02S$\x04AUD$\x04NZD$\x07крб.\x05soÊ»m\x06Ñўм\x06руб\x03IL" + - "S" - -type curToIndex struct { - cur uint16 - idx uint16 -} - -// Size: 844 bytes, 410 elements -var normalLangIndex = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0014, 0x0014, 0x0014, 0x0017, 0x0018, 0x0018, 0x0019, - 0x001c, 0x003a, 0x003a, 0x003b, 0x003b, 0x003b, 0x003b, 0x003c, - 0x003c, 0x003c, 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, 0x003e, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0041, 0x0044, 0x0045, 0x0046, - 0x0046, 0x004a, 0x004b, 0x004c, 0x005e, 0x005e, 0x0060, 0x0061, - 0x0062, 0x0068, 0x0068, 0x0079, 0x007f, 0x0089, 0x008a, 0x008b, - 0x008c, 0x0094, 0x0095, 0x0099, 0x009a, 0x00a2, 0x00a2, 0x00a2, - 0x00a2, 0x00a3, 0x00a3, 0x00a8, 0x00a8, 0x00a8, 0x00ae, 0x00af, - // Entry 40 - 7F - 0x00b0, 0x00b3, 0x00b5, 0x00b7, 0x00b7, 0x00b8, 0x00b9, 0x00ba, - 0x00bb, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, - 0x00c2, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c8, 0x00c8, - 0x00c9, 0x00ca, 0x00cc, 0x00cd, 0x00cd, 0x00ce, 0x00ce, 0x00ce, - 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, - 0x00d6, 0x00d7, 0x00d7, 0x00d8, 0x00d8, 0x00d9, 0x00da, 0x00db, - 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, - 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e7, 0x00e8, 0x00e9, 0x00ea, - // Entry 80 - BF - 0x00ea, 0x00eb, 0x00ed, 0x00ee, 0x00f0, 0x00f1, 0x00f2, 0x00f3, - 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f8, 0x00f9, 0x00fa, - 0x00fb, 0x00fc, 0x00fd, 0x00fd, 0x00fd, 0x010f, 0x010f, 0x0114, - 0x0116, 0x0117, 0x0119, 0x011b, 0x011c, 0x011e, 0x0120, 0x0121, - 0x0122, 0x0123, 0x0124, 0x012d, 0x012e, 0x012f, 0x0130, 0x0131, - 0x0132, 0x0133, 0x0134, 0x0136, 0x0138, 0x0139, 0x013e, 0x0140, - 0x0140, 0x014b, 0x014b, 0x014b, 0x014c, 0x014d, 0x015e, 0x0162, - 0x0163, 0x018a, 0x018a, 0x018b, 0x01ac, 0x01ad, 0x01ad, 0x01ae, - // Entry C0 - FF - 0x01af, 0x01b0, 0x01b1, 0x01b2, 0x01b4, 0x01b5, 0x01b6, 0x01b7, - 0x01b8, 0x01b9, 0x01ba, 0x01bb, 0x01bc, 0x01bc, 0x01c2, 0x01c5, - 0x01c7, 0x01d1, 0x01d4, 0x01d5, 0x01d6, 0x01d6, 0x01d7, 0x01d8, - 0x01d8, 0x01d9, 0x01dc, 0x01de, 0x01f0, 0x01f1, 0x01f6, 0x0207, - 0x020a, 0x020e, 0x020f, 0x0210, 0x021c, 0x0223, 0x0223, 0x0229, - 0x0229, 0x022a, 0x0233, 0x0234, 0x0235, 0x0236, 0x0239, 0x0239, - 0x023a, 0x0240, 0x0240, 0x0241, 0x0242, 0x0245, 0x0247, 0x0249, - 0x0249, 0x0249, 0x0249, 0x024a, 0x024a, 0x024a, 0x024a, 0x0259, - // Entry 100 - 13F - 0x025a, 0x025f, 0x0260, 0x0261, 0x0262, 0x0263, 0x0265, 0x0278, - 0x0279, 0x027a, 0x027b, 0x0280, 0x0281, 0x0282, 0x0283, 0x0284, - 0x0285, 0x0286, 0x0286, 0x0292, 0x0295, 0x0298, 0x029a, 0x029f, - 0x02a0, 0x02a1, 0x02a1, 0x02a1, 0x02a3, 0x02a4, 0x02b6, 0x02b6, - 0x02b6, 0x02b8, 0x02b8, 0x02be, 0x02bf, 0x02bf, 0x02c0, 0x02c1, - 0x02c2, 0x02c3, 0x02c3, 0x02c4, 0x02c4, 0x02c4, 0x02c5, 0x02c6, - 0x02c7, 0x02c7, 0x02c8, 0x02c9, 0x02ca, 0x02cb, 0x02da, 0x02db, - 0x02de, 0x02df, 0x02e1, 0x02e1, 0x02e2, 0x02e3, 0x02e4, 0x02e5, - // Entry 140 - 17F - 0x02e5, 0x02e6, 0x02e8, 0x02ea, 0x02ea, 0x02eb, 0x02fc, 0x02fd, - 0x02fe, 0x0306, 0x0308, 0x0309, 0x030a, 0x030b, 0x030b, 0x030c, - 0x030d, 0x030e, 0x030f, 0x0310, 0x0314, 0x0314, 0x0316, 0x0317, - 0x0317, 0x0317, 0x0317, 0x0317, 0x031a, 0x0328, 0x032c, 0x032c, - 0x032c, 0x032d, 0x032e, 0x032f, 0x0330, 0x0332, 0x0333, 0x033b, - 0x033b, 0x033b, 0x033b, 0x0343, 0x0343, 0x035b, 0x035b, 0x035e, - 0x035f, 0x0360, 0x0363, 0x0364, 0x0366, 0x0369, 0x036b, 0x036c, - 0x036d, 0x036f, 0x0370, 0x0371, 0x0374, 0x0379, 0x0379, 0x0379, - // Entry 180 - 1BF - 0x037b, 0x038e, 0x0391, 0x0392, 0x0394, 0x0395, 0x0397, 0x0398, - 0x0399, 0x039b, 0x039c, 0x039f, 0x03a0, 0x03a0, 0x03a0, 0x03a1, - 0x03a1, 0x03a1, 0x03a6, 0x03a7, 0x03a9, 0x03ab, 0x03b0, 0x03b2, - 0x03b3, 0x03b5, -} - -// Size: 3820 bytes, 949 elements -var normalSymIndex = []curToIndex{ - {cur: 0x13, idx: 0x6}, - {cur: 0x2e, idx: 0x13}, - {cur: 0x39, idx: 0x1c}, - {cur: 0x42, idx: 0x20}, - {cur: 0x5c, idx: 0x3b}, - {cur: 0x61, idx: 0x3f}, - {cur: 0x70, idx: 0x47}, - {cur: 0x7a, idx: 0x56}, - {cur: 0x7b, idx: 0x5a}, - {cur: 0x83, idx: 0x5e}, - {cur: 0x8b, idx: 0x6a}, - {cur: 0xaf, idx: 0x8c}, - {cur: 0xbd, idx: 0x9a}, - {cur: 0xf2, idx: 0xbb}, - {cur: 0xf8, idx: 0xc3}, - {cur: 0x101, idx: 0xc7}, - {cur: 0x105, idx: 0xcb}, - {cur: 0x10c, idx: 0xd0}, - {cur: 0x111, idx: 0xd4}, - {cur: 0x113, idx: 0xd8}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x121, idx: 0xdd}, - {cur: 0xb6, idx: 0x4}, - {cur: 0x65, idx: 0xe2}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x5b, idx: 0xec}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x2, idx: 0xf3}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x23, idx: 0x105}, - {cur: 0x42, idx: 0x123}, - {cur: 0x52, idx: 0x135}, - {cur: 0x56, idx: 0x13f}, - {cur: 0x76, idx: 0x156}, - {cur: 0x7b, idx: 0x15f}, - {cur: 0x7c, idx: 0x169}, - {cur: 0x7d, idx: 0x173}, - {cur: 0x82, idx: 0x17e}, - {cur: 0x87, idx: 0x188}, - {cur: 0x8c, idx: 0x195}, - {cur: 0x90, idx: 0x1a3}, - {cur: 0x9b, idx: 0x1ad}, - {cur: 0x9c, idx: 0x1b7}, - {cur: 0xa9, idx: 0x1c1}, - {cur: 0xbe, idx: 0x1cb}, - {cur: 0xc5, idx: 0x1d5}, - {cur: 0xca, idx: 0x1dc}, - {cur: 0xd2, idx: 0x1e6}, - {cur: 0xd5, idx: 0x1f4}, - {cur: 0xd6, idx: 0x1fe}, - {cur: 0xe1, idx: 0x209}, - {cur: 0xe5, idx: 0x213}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xec, idx: 0x21d}, - {cur: 0xf0, idx: 0x227}, - {cur: 0x119, idx: 0x236}, - {cur: 0x11b, idx: 0x23a}, - {cur: 0x4f, idx: 0x244}, - {cur: 0x57, idx: 0x248}, - {cur: 0xd6, idx: 0x0}, - {cur: 0xde, idx: 0x24c}, - {cur: 0x61, idx: 0x24e}, - {cur: 0xe1, idx: 0x3f}, - {cur: 0xf3, idx: 0x253}, - {cur: 0x83, idx: 0x25}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x16, idx: 0x257}, - {cur: 0x37, idx: 0x18}, - {cur: 0x83, idx: 0x25}, - {cur: 0xcf, idx: 0x25f}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x123, idx: 0x86}, - {cur: 0xf3, idx: 0x253}, - {cur: 0x13, idx: 0x0}, - {cur: 0x21, idx: 0x26f}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x61, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xcf, idx: 0x275}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf8, idx: 0x27d}, - {cur: 0x101, idx: 0x0}, - {cur: 0x10c, idx: 0x0}, - {cur: 0x1b, idx: 0xc}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x42, idx: 0x25}, - {cur: 0x42, idx: 0x20}, - {cur: 0x13, idx: 0x284}, - {cur: 0x39, idx: 0x287}, - {cur: 0x61, idx: 0x28b}, - {cur: 0x70, idx: 0x291}, - {cur: 0xbd, idx: 0x296}, - {cur: 0xf8, idx: 0x29b}, - {cur: 0x13, idx: 0x0}, - {cur: 0x18, idx: 0x9}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x61, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x73, idx: 0x4d}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x83, idx: 0x25}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xce, idx: 0x2a0}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x0}, - {cur: 0x10c, idx: 0x0}, - {cur: 0x113, idx: 0x0}, - {cur: 0x18, idx: 0x2a5}, - {cur: 0x4c, idx: 0x2aa}, - {cur: 0x83, idx: 0x25}, - {cur: 0xc6, idx: 0x2af}, - {cur: 0xce, idx: 0x2b4}, - {cur: 0xf0, idx: 0x2bc}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x42, idx: 0x25}, - {cur: 0x5a, idx: 0x37}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x0}, - {cur: 0x10c, idx: 0x0}, - {cur: 0x111, idx: 0x0}, - {cur: 0x60, idx: 0x2c5}, - {cur: 0xf7, idx: 0x2c7}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x47, idx: 0x2cb}, - {cur: 0x4c, idx: 0x2c}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x109, idx: 0x2d0}, - {cur: 0x10e, idx: 0x2d4}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x50, idx: 0x2d8}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0x12, idx: 0x2e0}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x20, idx: 0x2e4}, - {cur: 0x22, idx: 0x2e8}, - {cur: 0x4e, idx: 0x2ec}, - {cur: 0x83, idx: 0x25}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x97, idx: 0x2c5}, - {cur: 0x13, idx: 0x0}, - {cur: 0x83, idx: 0x25}, - {cur: 0xc6, idx: 0xa2}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x33, idx: 0x2ef}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x8b, idx: 0x2f3}, - {cur: 0xe7, idx: 0x2f9}, - {cur: 0x105, idx: 0x0}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0x65, idx: 0xe2}, - {cur: 0x6b, idx: 0x2ff}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x83, idx: 0x25}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x83, idx: 0x5e}, - {cur: 0xf8, idx: 0xc3}, - {cur: 0x10c, idx: 0x4}, - {cur: 0x10c, idx: 0x4}, - {cur: 0x13, idx: 0x4}, - {cur: 0x1a, idx: 0x4}, - {cur: 0x25, idx: 0x4}, - {cur: 0x32, idx: 0x4}, - {cur: 0x35, idx: 0x16}, - {cur: 0x38, idx: 0x4}, - {cur: 0x39, idx: 0x4}, - {cur: 0x13, idx: 0x4}, - {cur: 0xbd, idx: 0x4}, - {cur: 0x13, idx: 0x4}, - {cur: 0x10c, idx: 0x4}, - {cur: 0x57, idx: 0x248}, - {cur: 0x5e, idx: 0x4}, - {cur: 0x5f, idx: 0x3f}, - {cur: 0x61, idx: 0x24e}, - {cur: 0x10c, idx: 0x4}, - {cur: 0x65, idx: 0xe2}, - {cur: 0x61, idx: 0x24e}, - {cur: 0x66, idx: 0x3f}, - {cur: 0x67, idx: 0x306}, - {cur: 0x6f, idx: 0x4}, - {cur: 0x81, idx: 0x4}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0x13, idx: 0x4}, - {cur: 0x10c, idx: 0x4}, - {cur: 0x8d, idx: 0x4}, - {cur: 0x10c, idx: 0x4}, - {cur: 0x92, idx: 0x4}, - {cur: 0x121, idx: 0xdd}, - {cur: 0xa1, idx: 0x83}, - {cur: 0xa8, idx: 0x308}, - {cur: 0x10c, idx: 0x4}, - {cur: 0x61, idx: 0x24e}, - {cur: 0xac, idx: 0x7a}, - {cur: 0xae, idx: 0x30d}, - {cur: 0xb2, idx: 0x90}, - {cur: 0xb6, idx: 0x4}, - {cur: 0x13, idx: 0x4}, - {cur: 0xb7, idx: 0x93}, - {cur: 0x13, idx: 0x4}, - {cur: 0xbd, idx: 0x4}, - {cur: 0xbd, idx: 0x4}, - {cur: 0xc3, idx: 0x86}, - {cur: 0xc4, idx: 0x9e}, - {cur: 0xc5, idx: 0x7a}, - {cur: 0xbd, idx: 0x4}, - {cur: 0xd1, idx: 0xaa}, - {cur: 0xd3, idx: 0x4}, - {cur: 0xd4, idx: 0x310}, - {cur: 0xd9, idx: 0x4}, - {cur: 0x61, idx: 0x24e}, - {cur: 0xda, idx: 0x3f}, - {cur: 0xdd, idx: 0x313}, - {cur: 0x61, idx: 0x24e}, - {cur: 0xe1, idx: 0x3f}, - {cur: 0x8, idx: 0x316}, - {cur: 0xe6, idx: 0x31b}, - {cur: 0xbd, idx: 0x4}, - {cur: 0xed, idx: 0xb4}, - {cur: 0xf1, idx: 0x4}, - {cur: 0x13, idx: 0x4}, - {cur: 0xf3, idx: 0x253}, - {cur: 0xf7, idx: 0x2c7}, - {cur: 0x10c, idx: 0x4}, - {cur: 0x103, idx: 0x31d}, - {cur: 0x104, idx: 0x320}, - {cur: 0x121, idx: 0xdd}, - {cur: 0x123, idx: 0x86}, - {cur: 0x13, idx: 0x0}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x5a, idx: 0x37}, - {cur: 0x61, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x105, idx: 0x0}, - {cur: 0x10c, idx: 0x0}, - {cur: 0x111, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x5c, idx: 0x0}, - {cur: 0xe7, idx: 0x0}, - {cur: 0xf8, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x11, idx: 0x4}, - {cur: 0xf8, idx: 0xc3}, - {cur: 0x27, idx: 0x10}, - {cur: 0x40, idx: 0x4}, - {cur: 0xf8, idx: 0xc3}, - {cur: 0x43, idx: 0x4}, - {cur: 0xf8, idx: 0xc3}, - {cur: 0x45, idx: 0x28}, - {cur: 0x49, idx: 0x4}, - {cur: 0xf8, idx: 0xc3}, - {cur: 0x51, idx: 0x4}, - {cur: 0xf8, idx: 0xc3}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x105, idx: 0xcb}, - {cur: 0x6c, idx: 0x45}, - {cur: 0x71, idx: 0x4b}, - {cur: 0x4, idx: 0x324}, - {cur: 0x8, idx: 0x327}, - {cur: 0x9, idx: 0x1}, - {cur: 0x11, idx: 0x32b}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x14, idx: 0x32e}, - {cur: 0x42, idx: 0x20}, - {cur: 0xaf, idx: 0x4}, - {cur: 0x113, idx: 0x0}, - {cur: 0xb9, idx: 0x97}, - {cur: 0xbf, idx: 0x33d}, - {cur: 0xc1, idx: 0x341}, - {cur: 0xc4, idx: 0x9e}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xc9, idx: 0xa6}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x83, idx: 0x25}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xf8, idx: 0xc3}, - {cur: 0xfd, idx: 0x4}, - {cur: 0x100, idx: 0x345}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x55, idx: 0x30}, - {cur: 0x83, idx: 0x25}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x5a, idx: 0x37}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x4, idx: 0x349}, - {cur: 0x39, idx: 0x287}, - {cur: 0x42, idx: 0x34c}, - {cur: 0x70, idx: 0x351}, - {cur: 0x7d, idx: 0x355}, - {cur: 0x83, idx: 0x25}, - {cur: 0xaf, idx: 0x35e}, - {cur: 0xbd, idx: 0x362}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x10c, idx: 0x366}, - {cur: 0x68, idx: 0x42}, - {cur: 0xa9, idx: 0x36a}, - {cur: 0x13, idx: 0x0}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x5d, idx: 0x36d}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x25}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x101, idx: 0x0}, - {cur: 0x10c, idx: 0x0}, - {cur: 0x113, idx: 0x0}, - {cur: 0x83, idx: 0x25}, - {cur: 0xc4, idx: 0x9e}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x50, idx: 0x30}, - {cur: 0x11, idx: 0x373}, - {cur: 0x13, idx: 0x377}, - {cur: 0x1d, idx: 0x37b}, - {cur: 0x25, idx: 0x37e}, - {cur: 0x26, idx: 0x382}, - {cur: 0x32, idx: 0x386}, - {cur: 0x38, idx: 0x38a}, - {cur: 0x39, idx: 0x287}, - {cur: 0x40, idx: 0x38e}, - {cur: 0x42, idx: 0x0}, - {cur: 0x43, idx: 0x392}, - {cur: 0x4b, idx: 0x396}, - {cur: 0x5e, idx: 0x39b}, - {cur: 0x5f, idx: 0x39f}, - {cur: 0x60, idx: 0x2c5}, - {cur: 0x61, idx: 0x3a4}, - {cur: 0x66, idx: 0x3a9}, - {cur: 0x70, idx: 0x0}, - {cur: 0x77, idx: 0x3ae}, - {cur: 0x78, idx: 0x3b3}, - {cur: 0x80, idx: 0x3b8}, - {cur: 0x83, idx: 0x0}, - {cur: 0x90, idx: 0x3be}, - {cur: 0xab, idx: 0x3c3}, - {cur: 0xaf, idx: 0x35e}, - {cur: 0xb6, idx: 0x3c8}, - {cur: 0xbd, idx: 0x362}, - {cur: 0xcb, idx: 0x3cc}, - {cur: 0xd3, idx: 0x3d0}, - {cur: 0xd9, idx: 0x3d4}, - {cur: 0xdf, idx: 0x3d8}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf1, idx: 0x3dc}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf8, idx: 0x3e0}, - {cur: 0xfd, idx: 0x3e4}, - {cur: 0x104, idx: 0x320}, - {cur: 0x10c, idx: 0x0}, - {cur: 0x113, idx: 0x3e8}, - {cur: 0x24, idx: 0x3ed}, - {cur: 0x11, idx: 0x0}, - {cur: 0x13, idx: 0x3f1}, - {cur: 0x25, idx: 0x0}, - {cur: 0x26, idx: 0x0}, - {cur: 0x32, idx: 0x0}, - {cur: 0x38, idx: 0x0}, - {cur: 0x39, idx: 0x4}, - {cur: 0x40, idx: 0x0}, - {cur: 0x42, idx: 0x20}, - {cur: 0x43, idx: 0x0}, - {cur: 0x5e, idx: 0x0}, - {cur: 0x5f, idx: 0x0}, - {cur: 0x61, idx: 0x3f}, - {cur: 0x66, idx: 0x0}, - {cur: 0x70, idx: 0x3f7}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x25}, - {cur: 0x8b, idx: 0x0}, - {cur: 0x90, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xb6, idx: 0x0}, - {cur: 0xbd, idx: 0x3fd}, - {cur: 0xd3, idx: 0x0}, - {cur: 0xd9, idx: 0x403}, - {cur: 0xe7, idx: 0x0}, - {cur: 0xf1, idx: 0x0}, - {cur: 0xf8, idx: 0x409}, - {cur: 0xfd, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x105, idx: 0x0}, - {cur: 0x111, idx: 0x0}, - {cur: 0x113, idx: 0x0}, - {cur: 0x3a, idx: 0x40f}, - {cur: 0x4f, idx: 0x244}, - {cur: 0x52, idx: 0x412}, - {cur: 0x68, idx: 0x42}, - {cur: 0x74, idx: 0x415}, - {cur: 0x87, idx: 0x67}, - {cur: 0x60, idx: 0x0}, - {cur: 0x97, idx: 0x2c5}, - {cur: 0xa1, idx: 0x83}, - {cur: 0xa9, idx: 0x36a}, - {cur: 0xac, idx: 0x7a}, - {cur: 0xd1, idx: 0xaa}, - {cur: 0xd4, idx: 0x310}, - {cur: 0xe5, idx: 0x417}, - {cur: 0xec, idx: 0x41a}, - {cur: 0x103, idx: 0x31d}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x39, idx: 0x97}, - {cur: 0x5e, idx: 0x149}, - {cur: 0xd3, idx: 0x41d}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x113, idx: 0x0}, - {cur: 0x83, idx: 0x25}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x13, idx: 0x284}, - {cur: 0x2e, idx: 0x421}, - {cur: 0x39, idx: 0x287}, - {cur: 0x5a, idx: 0x37}, - {cur: 0x70, idx: 0x351}, - {cur: 0x83, idx: 0x424}, - {cur: 0xaf, idx: 0x35e}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf2, idx: 0x429}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x12, idx: 0x2e0}, - {cur: 0x83, idx: 0x25}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0xb7, idx: 0x93}, - {cur: 0x65, idx: 0xe2}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x78, idx: 0x42d}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x13, idx: 0x0}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x5c, idx: 0x0}, - {cur: 0x61, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf8, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x10c, idx: 0x0}, - {cur: 0x113, idx: 0x0}, - {cur: 0x18, idx: 0x9}, - {cur: 0x13, idx: 0x0}, - {cur: 0x83, idx: 0x25}, - {cur: 0xc6, idx: 0xa2}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x13, idx: 0x0}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x5c, idx: 0x0}, - {cur: 0x61, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x25}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf8, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x10c, idx: 0x0}, - {cur: 0x7, idx: 0x434}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x76, idx: 0x53}, - {cur: 0x7b, idx: 0x7a}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xb7, idx: 0x93}, - {cur: 0x42, idx: 0x25}, - {cur: 0x13, idx: 0x0}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x5c, idx: 0x0}, - {cur: 0x61, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf8, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x83, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x42, idx: 0x437}, - {cur: 0x83, idx: 0x43b}, - {cur: 0x8b, idx: 0x43f}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xf3, idx: 0x253}, - {cur: 0x13, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x52, idx: 0x412}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0xf3, idx: 0x253}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x4a, idx: 0x443}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0x25, idx: 0x447}, - {cur: 0x39, idx: 0x44c}, - {cur: 0x8e, idx: 0x6e}, - {cur: 0xcf, idx: 0x275}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x50, idx: 0x2d8}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0x86, idx: 0x63}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x13, idx: 0xe8}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf3, idx: 0x253}, - {cur: 0x13, idx: 0x0}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x61, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x85, idx: 0x452}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf8, idx: 0x0}, - {cur: 0x10c, idx: 0x0}, - {cur: 0xf3, idx: 0x253}, - {cur: 0x12, idx: 0x2e0}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x83, idx: 0x25}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xf7, idx: 0x2c7}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x3a, idx: 0x40f}, - {cur: 0x9, idx: 0x1}, - {cur: 0x8f, idx: 0x72}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x13, idx: 0x0}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x61, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf8, idx: 0x45c}, - {cur: 0x101, idx: 0x0}, - {cur: 0x105, idx: 0x0}, - {cur: 0x10c, idx: 0x0}, - {cur: 0x111, idx: 0x0}, - {cur: 0x113, idx: 0x0}, - {cur: 0x3a, idx: 0x40f}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x83, idx: 0x25}, - {cur: 0x99, idx: 0x80}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0xf3, idx: 0x253}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0xac, idx: 0x7a}, - {cur: 0xa1, idx: 0x83}, - {cur: 0xb5, idx: 0x461}, - {cur: 0x13, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x61, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xa3, idx: 0x465}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x83, idx: 0x25}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xa7, idx: 0x88}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x39, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xb2, idx: 0x90}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x0}, - {cur: 0x26, idx: 0x4}, - {cur: 0xd9, idx: 0x4}, - {cur: 0xa6, idx: 0x86}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xb6, idx: 0x4}, - {cur: 0x13, idx: 0x0}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xbb, idx: 0x30}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf8, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x105, idx: 0x0}, - {cur: 0x10c, idx: 0x0}, - {cur: 0x113, idx: 0x0}, - {cur: 0xbc, idx: 0x46c}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x39, idx: 0x97}, - {cur: 0x5e, idx: 0x149}, - {cur: 0xd3, idx: 0x41d}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x113, idx: 0x0}, - {cur: 0x14, idx: 0x32e}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x8, idx: 0x316}, - {cur: 0xdf, idx: 0x4}, - {cur: 0x8, idx: 0x316}, - {cur: 0xbb, idx: 0x30}, - {cur: 0xf7, idx: 0x2c7}, - {cur: 0x5b, idx: 0x333}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xcf, idx: 0x275}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xc5, idx: 0x479}, - {cur: 0x13, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x61, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xc6, idx: 0xa2}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf8, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x4, idx: 0x349}, - {cur: 0x13, idx: 0xe8}, - {cur: 0xc8, idx: 0x47c}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x9, idx: 0x1}, - {cur: 0x4a, idx: 0x443}, - {cur: 0xc8, idx: 0x481}, - {cur: 0xa8, idx: 0x308}, - {cur: 0xb5, idx: 0x461}, - {cur: 0xc8, idx: 0x443}, - {cur: 0xe2, idx: 0xad}, - {cur: 0xc1, idx: 0x341}, - {cur: 0x27, idx: 0x10}, - {cur: 0xc1, idx: 0x0}, - {cur: 0xc1, idx: 0x0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x24, idx: 0x3ed}, - {cur: 0x13, idx: 0x0}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x5c, idx: 0x0}, - {cur: 0x61, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf8, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x10c, idx: 0x0}, - {cur: 0xa0, idx: 0x4b}, - {cur: 0xf3, idx: 0x253}, - {cur: 0x83, idx: 0x25}, - {cur: 0xcf, idx: 0x275}, - {cur: 0xd0, idx: 0x18}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xeb, idx: 0x488}, - {cur: 0xf4, idx: 0xbf}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x119, idx: 0x48f}, - {cur: 0x37, idx: 0x18}, - {cur: 0xd0, idx: 0x0}, - {cur: 0x85, idx: 0x452}, - {cur: 0x8e, idx: 0x6e}, - {cur: 0xa0, idx: 0x4b}, - {cur: 0xd1, idx: 0xaa}, - {cur: 0xf3, idx: 0x253}, - {cur: 0xcf, idx: 0x275}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0xf3, idx: 0x253}, - {cur: 0x50, idx: 0x494}, - {cur: 0xbb, idx: 0x30}, - {cur: 0xd8, idx: 0x498}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xbb, idx: 0x49c}, - {cur: 0xd8, idx: 0x30}, - {cur: 0xb5, idx: 0x461}, - {cur: 0x91, idx: 0x4a0}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x111, idx: 0x4a8}, - {cur: 0x13, idx: 0x0}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x61, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x4b8}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf8, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x83, idx: 0x25}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xde, idx: 0x24c}, - {cur: 0x4f, idx: 0x244}, - {cur: 0x5b, idx: 0x333}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0x6, idx: 0x4bc}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xa3, idx: 0x4c2}, - {cur: 0x13, idx: 0x0}, - {cur: 0x18, idx: 0x2a5}, - {cur: 0x21, idx: 0x4c6}, - {cur: 0x37, idx: 0x4cc}, - {cur: 0x83, idx: 0x25}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x13, idx: 0x0}, - {cur: 0x18, idx: 0x9}, - {cur: 0x21, idx: 0x4c6}, - {cur: 0x37, idx: 0x4cc}, - {cur: 0x83, idx: 0x25}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x13, idx: 0x0}, - {cur: 0x1a, idx: 0x4d2}, - {cur: 0x25, idx: 0x10f}, - {cur: 0x2e, idx: 0x4d7}, - {cur: 0x32, idx: 0x117}, - {cur: 0x38, idx: 0x11b}, - {cur: 0x39, idx: 0x4db}, - {cur: 0x42, idx: 0x0}, - {cur: 0x50, idx: 0x494}, - {cur: 0x51, idx: 0x336}, - {cur: 0x55, idx: 0x4e0}, - {cur: 0x56, idx: 0x4e4}, - {cur: 0x61, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x7f, idx: 0x4e9}, - {cur: 0x81, idx: 0x17a}, - {cur: 0x83, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xbb, idx: 0x49c}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xd8, idx: 0x30}, - {cur: 0xf2, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf3, idx: 0x253}, - {cur: 0x3a, idx: 0x40f}, - {cur: 0xf7, idx: 0x2c7}, - {cur: 0x83, idx: 0x25}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x91, idx: 0x4ed}, - {cur: 0xb2, idx: 0x90}, - {cur: 0xd9, idx: 0x4f1}, - {cur: 0xb2, idx: 0x90}, - {cur: 0xd9, idx: 0x4}, - {cur: 0xf8, idx: 0xc3}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xf7, idx: 0x2c7}, - {cur: 0x84, idx: 0x2dc}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x83, idx: 0x25}, - {cur: 0x5b, idx: 0x333}, - {cur: 0x57, idx: 0x248}, - {cur: 0x13, idx: 0x4f4}, - {cur: 0xbd, idx: 0x4f9}, - {cur: 0xed, idx: 0xb4}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x83, idx: 0x25}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf0, idx: 0xb7}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x42, idx: 0x43b}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x13, idx: 0x0}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x5c, idx: 0x0}, - {cur: 0x61, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x25}, - {cur: 0x8b, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf4, idx: 0xbf}, - {cur: 0xf5, idx: 0x4fe}, - {cur: 0xf8, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0x10c, idx: 0x0}, - {cur: 0xc5, idx: 0x7a}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xc5, idx: 0x0}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xfe, idx: 0x506}, - {cur: 0x4, idx: 0x349}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xfe, idx: 0x50c}, - {cur: 0x92, idx: 0x4}, - {cur: 0x92, idx: 0x4}, - {cur: 0x13, idx: 0xe8}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf3, idx: 0x253}, - {cur: 0x83, idx: 0x25}, - {cur: 0xcf, idx: 0x513}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xf7, idx: 0x2c7}, - {cur: 0xb7, idx: 0x93}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x42, idx: 0x43b}, - {cur: 0x79, idx: 0x51a}, - {cur: 0x8b, idx: 0x43f}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x42, idx: 0x20}, - {cur: 0x42, idx: 0x20}, - {cur: 0xa8, idx: 0x308}, - {cur: 0x42, idx: 0x20}, - {cur: 0xd9, idx: 0x4}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x83, idx: 0x25}, - {cur: 0x8b, idx: 0x43f}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xf8, idx: 0x4}, - {cur: 0x8b, idx: 0x6a}, - {cur: 0xf8, idx: 0xc3}, - {cur: 0xa8, idx: 0x308}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0x121, idx: 0xdd}, -} - -// Size: 844 bytes, 410 elements -var narrowLangIndex = []uint16{ - // Entry 0 - 3F - 0x0000, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, - 0x005f, 0x007b, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, - 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, - 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, - 0x007c, 0x007c, 0x007c, 0x007c, 0x00ab, 0x00ab, 0x00ab, 0x00ab, - 0x00ab, 0x00ac, 0x00ac, 0x00ac, 0x00ac, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - // Entry 40 - 7F - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - // Entry 80 - BF - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, - 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, - 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b2, 0x00b2, - 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, - // Entry C0 - FF - 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, - 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, - 0x00b2, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, - 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, - 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b4, 0x00b4, 0x00b6, - 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, - 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, - 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, - // Entry 100 - 13F - 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - // Entry 140 - 17F - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c3, 0x00c3, 0x00c3, - 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, - 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, - // Entry 180 - 1BF - 0x00c3, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, - 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, - 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, - 0x00c4, 0x00c4, -} - -// Size: 808 bytes, 196 elements -var narrowSymIndex = []curToIndex{ - {cur: 0x9, idx: 0x1}, - {cur: 0x11, idx: 0x4}, - {cur: 0x13, idx: 0x4}, - {cur: 0x18, idx: 0x9}, - {cur: 0x1a, idx: 0x4}, - {cur: 0x1b, idx: 0xc}, - {cur: 0x25, idx: 0x4}, - {cur: 0x26, idx: 0x4}, - {cur: 0x27, idx: 0x10}, - {cur: 0x2e, idx: 0x13}, - {cur: 0x32, idx: 0x4}, - {cur: 0x35, idx: 0x16}, - {cur: 0x37, idx: 0x18}, - {cur: 0x38, idx: 0x4}, - {cur: 0x39, idx: 0x4}, - {cur: 0x40, idx: 0x4}, - {cur: 0x42, idx: 0x25}, - {cur: 0x43, idx: 0x4}, - {cur: 0x45, idx: 0x28}, - {cur: 0x48, idx: 0x4}, - {cur: 0x49, idx: 0x4}, - {cur: 0x4c, idx: 0x2c}, - {cur: 0x50, idx: 0x30}, - {cur: 0x51, idx: 0x4}, - {cur: 0x56, idx: 0x33}, - {cur: 0x5a, idx: 0x37}, - {cur: 0x5c, idx: 0x3b}, - {cur: 0x5e, idx: 0x4}, - {cur: 0x5f, idx: 0x3f}, - {cur: 0x61, idx: 0x3f}, - {cur: 0x66, idx: 0x3f}, - {cur: 0x68, idx: 0x42}, - {cur: 0x6c, idx: 0x45}, - {cur: 0x6f, idx: 0x4}, - {cur: 0x70, idx: 0x4}, - {cur: 0x71, idx: 0x4b}, - {cur: 0x73, idx: 0x4d}, - {cur: 0x75, idx: 0x50}, - {cur: 0x76, idx: 0x53}, - {cur: 0x7a, idx: 0x56}, - {cur: 0x7b, idx: 0x5a}, - {cur: 0x7f, idx: 0x30}, - {cur: 0x81, idx: 0x4}, - {cur: 0x83, idx: 0x25}, - {cur: 0x86, idx: 0x63}, - {cur: 0x87, idx: 0x67}, - {cur: 0x88, idx: 0x6a}, - {cur: 0x8b, idx: 0x6a}, - {cur: 0x8d, idx: 0x4}, - {cur: 0x8e, idx: 0x6e}, - {cur: 0x8f, idx: 0x72}, - {cur: 0x90, idx: 0x76}, - {cur: 0x91, idx: 0x7a}, - {cur: 0x92, idx: 0x4}, - {cur: 0x94, idx: 0x7d}, - {cur: 0x99, idx: 0x80}, - {cur: 0xa1, idx: 0x83}, - {cur: 0xa6, idx: 0x86}, - {cur: 0xa7, idx: 0x88}, - {cur: 0xac, idx: 0x7a}, - {cur: 0xaf, idx: 0x4}, - {cur: 0xb2, idx: 0x90}, - {cur: 0xb6, idx: 0x4}, - {cur: 0xb7, idx: 0x93}, - {cur: 0xb9, idx: 0x97}, - {cur: 0xbb, idx: 0x30}, - {cur: 0xbc, idx: 0x7a}, - {cur: 0xbd, idx: 0x4}, - {cur: 0xc4, idx: 0x9e}, - {cur: 0xc5, idx: 0x7a}, - {cur: 0xc6, idx: 0xa2}, - {cur: 0xc9, idx: 0xa6}, - {cur: 0xd0, idx: 0x18}, - {cur: 0xd1, idx: 0xaa}, - {cur: 0xd3, idx: 0x4}, - {cur: 0xd8, idx: 0x30}, - {cur: 0xd9, idx: 0x4}, - {cur: 0xda, idx: 0x3f}, - {cur: 0xdf, idx: 0x4}, - {cur: 0xe1, idx: 0x3f}, - {cur: 0xe2, idx: 0xad}, - {cur: 0xe5, idx: 0x3f}, - {cur: 0xe7, idx: 0xb0}, - {cur: 0xed, idx: 0xb4}, - {cur: 0xf0, idx: 0xb7}, - {cur: 0xf1, idx: 0x4}, - {cur: 0xf2, idx: 0xbb}, - {cur: 0xf4, idx: 0xbf}, - {cur: 0xf8, idx: 0x4}, - {cur: 0xfd, idx: 0x4}, - {cur: 0x100, idx: 0x10}, - {cur: 0x101, idx: 0xc7}, - {cur: 0x10c, idx: 0x4}, - {cur: 0x121, idx: 0xdd}, - {cur: 0x123, idx: 0xdf}, - {cur: 0x11, idx: 0xfd}, - {cur: 0x13, idx: 0xe8}, - {cur: 0x1a, idx: 0x101}, - {cur: 0x25, idx: 0x10f}, - {cur: 0x26, idx: 0x113}, - {cur: 0x32, idx: 0x117}, - {cur: 0x38, idx: 0x11b}, - {cur: 0x39, idx: 0x1c}, - {cur: 0x40, idx: 0x11f}, - {cur: 0x42, idx: 0x20}, - {cur: 0x43, idx: 0x129}, - {cur: 0x49, idx: 0x12d}, - {cur: 0x51, idx: 0x131}, - {cur: 0x5e, idx: 0x149}, - {cur: 0x61, idx: 0x14d}, - {cur: 0x6f, idx: 0x152}, - {cur: 0x70, idx: 0x47}, - {cur: 0x81, idx: 0x17a}, - {cur: 0x83, idx: 0x5e}, - {cur: 0x8d, idx: 0x19f}, - {cur: 0xaf, idx: 0x8c}, - {cur: 0xbd, idx: 0x9a}, - {cur: 0xd3, idx: 0x1f0}, - {cur: 0xdf, idx: 0x205}, - {cur: 0xe1, idx: 0x209}, - {cur: 0xf1, idx: 0x22e}, - {cur: 0xf8, idx: 0xc3}, - {cur: 0xfd, idx: 0x232}, - {cur: 0x26, idx: 0x4}, - {cur: 0x11, idx: 0x0}, - {cur: 0x13, idx: 0x0}, - {cur: 0x1a, idx: 0x0}, - {cur: 0x1b, idx: 0x0}, - {cur: 0x25, idx: 0x0}, - {cur: 0x26, idx: 0x0}, - {cur: 0x2e, idx: 0x0}, - {cur: 0x32, idx: 0x0}, - {cur: 0x37, idx: 0x0}, - {cur: 0x38, idx: 0x0}, - {cur: 0x39, idx: 0x0}, - {cur: 0x40, idx: 0x0}, - {cur: 0x42, idx: 0x0}, - {cur: 0x43, idx: 0x0}, - {cur: 0x45, idx: 0x0}, - {cur: 0x49, idx: 0x0}, - {cur: 0x51, idx: 0x0}, - {cur: 0x5e, idx: 0x0}, - {cur: 0x66, idx: 0x0}, - {cur: 0x6f, idx: 0x0}, - {cur: 0x70, idx: 0x0}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x81, idx: 0x0}, - {cur: 0x86, idx: 0x0}, - {cur: 0x8b, idx: 0x0}, - {cur: 0x8d, idx: 0x0}, - {cur: 0x8e, idx: 0x0}, - {cur: 0x8f, idx: 0x0}, - {cur: 0x92, idx: 0x0}, - {cur: 0xa7, idx: 0x0}, - {cur: 0xaf, idx: 0x0}, - {cur: 0xb6, idx: 0x0}, - {cur: 0xb7, idx: 0x0}, - {cur: 0xbd, idx: 0x0}, - {cur: 0xc4, idx: 0x0}, - {cur: 0xc9, idx: 0x0}, - {cur: 0xd3, idx: 0x0}, - {cur: 0xd9, idx: 0x0}, - {cur: 0xdf, idx: 0x0}, - {cur: 0xe1, idx: 0x0}, - {cur: 0xf0, idx: 0x0}, - {cur: 0xf1, idx: 0x0}, - {cur: 0xf2, idx: 0x0}, - {cur: 0xf4, idx: 0x0}, - {cur: 0xfd, idx: 0x0}, - {cur: 0x101, idx: 0x0}, - {cur: 0xf2, idx: 0x4}, - {cur: 0x38, idx: 0x2c1}, - {cur: 0x11, idx: 0x32b}, - {cur: 0x37, idx: 0x333}, - {cur: 0x51, idx: 0x336}, - {cur: 0xf0, idx: 0x33a}, - {cur: 0xfd, idx: 0x370}, - {cur: 0x2e, idx: 0x421}, - {cur: 0x37, idx: 0x333}, - {cur: 0x42, idx: 0x43b}, - {cur: 0x83, idx: 0x43b}, - {cur: 0x1b, idx: 0x0}, - {cur: 0x37, idx: 0x333}, - {cur: 0x7a, idx: 0x0}, - {cur: 0x7b, idx: 0x0}, - {cur: 0x83, idx: 0x0}, - {cur: 0x86, idx: 0x0}, - {cur: 0x8e, idx: 0x0}, - {cur: 0x8f, idx: 0x0}, - {cur: 0xa7, idx: 0x0}, - {cur: 0xc9, idx: 0x459}, - {cur: 0xf2, idx: 0x4}, - {cur: 0x101, idx: 0x0}, - {cur: 0x5a, idx: 0x0}, - {cur: 0x37, idx: 0x275}, -} - -// Total table size 9862 bytes (9KiB); checksum: CBD271D5 diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/tables_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/tables_test.go deleted file mode 100644 index 13c5f71c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/currency/tables_test.go +++ /dev/null @@ -1,78 +0,0 @@ -package currency - -import ( - "flag" - "strings" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/message" -) - -var ( - long = flag.Bool("long", false, - "run time-consuming tests, such as tests that fetch data online") - - draft = flag.String("draft", - "contributed", - `Minimal draft requirements (approved, contributed, provisional, unconfirmed).`) -) - -func TestTables(t *testing.T) { - if !*long { - return - } - - gen.Init() - - // Read the CLDR zip file. - r := gen.OpenCLDRCoreZip() - defer r.Close() - - d := &cldr.Decoder{} - d.SetDirFilter("supplemental", "main") - d.SetSectionFilter("numbers") - data, err := d.DecodeZip(r) - if err != nil { - t.Fatalf("DecodeZip: %v", err) - } - - dr, err := cldr.ParseDraft(*draft) - if err != nil { - t.Fatalf("filter: %v", err) - } - - for _, lang := range data.Locales() { - p := message.NewPrinter(language.MustParse(lang)) - - ldml := data.RawLDML(lang) - if ldml.Numbers == nil || ldml.Numbers.Currencies == nil { - continue - } - for _, c := range ldml.Numbers.Currencies.Currency { - syms := cldr.MakeSlice(&c.Symbol) - syms.SelectDraft(dr) - - for _, sym := range c.Symbol { - cur, err := ParseISO(c.Type) - if err != nil { - continue - } - formatter := Symbol - switch sym.Alt { - case "": - case "narrow": - formatter = NarrowSymbol - default: - continue - } - want := sym.Data() - if got := p.Sprint(formatter(cur)); got != want { - t.Errorf("%s:%sSymbol(%s) = %s; want %s", lang, strings.Title(sym.Alt), c.Type, got, want) - } - } - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/dict.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/dict.go deleted file mode 100644 index 52c11a93..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/dict.go +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package display - -// This file contains sets of data for specific languages. Users can use these -// to create smaller collections of supported languages and reduce total table -// size. - -// The variable names defined here correspond to those in package language. - -var ( - Afrikaans *Dictionary = &af // af - Amharic *Dictionary = &am // am - Arabic *Dictionary = &ar // ar - ModernStandardArabic *Dictionary = Arabic // ar-001 - Azerbaijani *Dictionary = &az // az - Bulgarian *Dictionary = &bg // bg - Bengali *Dictionary = &bn // bn - Catalan *Dictionary = &ca // ca - Czech *Dictionary = &cs // cs - Danish *Dictionary = &da // da - German *Dictionary = &de // de - Greek *Dictionary = &el // el - English *Dictionary = &en // en - AmericanEnglish *Dictionary = English // en-US - BritishEnglish *Dictionary = English // en-GB - Spanish *Dictionary = &es // es - EuropeanSpanish *Dictionary = Spanish // es-ES - LatinAmericanSpanish *Dictionary = Spanish // es-419 - Estonian *Dictionary = &et // et - Persian *Dictionary = &fa // fa - Finnish *Dictionary = &fi // fi - Filipino *Dictionary = &fil // fil - French *Dictionary = &fr // fr - Gujarati *Dictionary = &gu // gu - Hebrew *Dictionary = &he // he - Hindi *Dictionary = &hi // hi - Croatian *Dictionary = &hr // hr - Hungarian *Dictionary = &hu // hu - Armenian *Dictionary = &hy // hy - Indonesian *Dictionary = &id // id - Icelandic *Dictionary = &is // is - Italian *Dictionary = &it // it - Japanese *Dictionary = &ja // ja - Georgian *Dictionary = &ka // ka - Kazakh *Dictionary = &kk // kk - Khmer *Dictionary = &km // km - Kannada *Dictionary = &kn // kn - Korean *Dictionary = &ko // ko - Kirghiz *Dictionary = &ky // ky - Lao *Dictionary = &lo // lo - Lithuanian *Dictionary = < // lt - Latvian *Dictionary = &lv // lv - Macedonian *Dictionary = &mk // mk - Malayalam *Dictionary = &ml // ml - Mongolian *Dictionary = &mn // mn - Marathi *Dictionary = &mr // mr - Malay *Dictionary = &ms // ms - Burmese *Dictionary = &my // my - Nepali *Dictionary = &ne // ne - Dutch *Dictionary = &nl // nl - Norwegian *Dictionary = &no // no - Punjabi *Dictionary = &pa // pa - Polish *Dictionary = &pl // pl - Portuguese *Dictionary = &pt // pt - BrazilianPortuguese *Dictionary = Portuguese // pt-BR - EuropeanPortuguese *Dictionary = &ptPT // pt-PT - Romanian *Dictionary = &ro // ro - Russian *Dictionary = &ru // ru - Sinhala *Dictionary = &si // si - Slovak *Dictionary = &sk // sk - Slovenian *Dictionary = &sl // sl - Albanian *Dictionary = &sq // sq - Serbian *Dictionary = &sr // sr - SerbianLatin *Dictionary = &srLatn // sr - Swedish *Dictionary = &sv // sv - Swahili *Dictionary = &sw // sw - Tamil *Dictionary = &ta // ta - Telugu *Dictionary = &te // te - Thai *Dictionary = &th // th - Turkish *Dictionary = &tr // tr - Ukrainian *Dictionary = &uk // uk - Urdu *Dictionary = &ur // ur - Uzbek *Dictionary = &uz // uz - Vietnamese *Dictionary = &vi // vi - Chinese *Dictionary = &zh // zh - SimplifiedChinese *Dictionary = Chinese // zh-Hans - TraditionalChinese *Dictionary = &zhHant // zh-Hant - Zulu *Dictionary = &zu // zu -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/dict_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/dict_test.go deleted file mode 100644 index 8eae047c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/dict_test.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package display - -import ( - "fmt" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/testtext" -) - -func TestLinking(t *testing.T) { - base := getSize(t, `display.Tags(language.English).Name(language.English)`) - compact := getSize(t, `display.English.Languages().Name(language.English)`) - - if d := base - compact; d < 1.5*1024*1024 { - t.Errorf("size(base)-size(compact) was %d; want > 1.5MB", base, compact) - } -} - -func getSize(t *testing.T, main string) int { - size, err := testtext.CodeSize(fmt.Sprintf(body, main)) - if err != nil { - t.Skipf("skipping link size test; binary size could not be determined: %v", err) - } - return size -} - -const body = `package main -import ( - "golang.org/x/text/display" - "golang.org/x/text/language" -) -func main() { - %s -} -` diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/display.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/display.go deleted file mode 100644 index 2095ba84..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/display.go +++ /dev/null @@ -1,343 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run maketables.go -output tables.go - -// Package display provides display names for languages, scripts and regions in -// a requested language. -// -// The data is based on CLDR's localeDisplayNames. It includes the names of the -// draft level "contributed" or "approved". The resulting tables are quite -// large. The display package is designed so that users can reduce the linked-in -// table sizes by cherry picking the languages one wishes to support. There is a -// Dictionary defined for a selected set of common languages for this purpose. -package display - -import ( - "strings" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -/* -TODO: -All fairly low priority at the moment: - - Include alternative and variants as an option (using func options). - - Option for returning the empty string for undefined values. - - Support variants, currencies, time zones, option names and other data - provided in CLDR. - - Do various optimizations: - - Reduce size of offset tables. - - Consider compressing infrequently used languages and decompress on demand. -*/ - -// A Namer is used to get the name for a given value, such as a Tag, Language, -// Script or Region. -type Namer interface { - // Name returns a display string for the given value. A Namer returns an - // empty string for values it does not support. A Namer may support naming - // an unspecified value. For example, when getting the name for a region for - // a tag that does not have a defined Region, it may return the name for an - // unknown region. It is up to the user to filter calls to Name for values - // for which one does not want to have a name string. - Name(x interface{}) string -} - -var ( - // Supported lists the languages for which names are defined. - Supported language.Coverage - - // The set of all possible values for which names are defined. Note that not - // all Namer implementations will cover all the values of a given type. - // A Namer will return the empty string for unsupported values. - Values language.Coverage - - matcher language.Matcher -) - -func init() { - tags := make([]language.Tag, numSupported) - s := supported - for i := range tags { - p := strings.IndexByte(s, '|') - tags[i] = language.Raw.Make(s[:p]) - s = s[p+1:] - } - matcher = language.NewMatcher(tags) - Supported = language.NewCoverage(tags) - - Values = language.NewCoverage(langTagSet.Tags, supportedScripts, supportedRegions) -} - -// Languages returns a Namer for naming languages. It returns nil if there is no -// data for the given tag. The type passed to Name must be either language.Base -// or language.Tag. Note that the result may differ between passing a tag or its -// base language. For example, for English, passing "nl-BE" would return Flemish -// whereas passing "nl" returns "Dutch". -func Languages(t language.Tag) Namer { - if _, index, conf := matcher.Match(t); conf != language.No { - return languageNamer(index) - } - return nil -} - -type languageNamer int - -func (n languageNamer) name(i int) string { - return lookup(langHeaders[:], int(n), i) -} - -// Name implements the Namer interface for language names. -func (n languageNamer) Name(x interface{}) string { - return nameLanguage(n, x) -} - -// nonEmptyIndex walks up the parent chain until a non-empty header is found. -// It returns -1 if no index could be found. -func nonEmptyIndex(h []header, index int) int { - for ; index != -1 && h[index].data == ""; index = int(parents[index]) { - } - return index -} - -// Scripts returns a Namer for naming scripts. It returns nil if there is no -// data for the given tag. The type passed to Name must be either a -// language.Script or a language.Tag. It will not attempt to infer a script for -// tags with an unspecified script. -func Scripts(t language.Tag) Namer { - if _, index, conf := matcher.Match(t); conf != language.No { - if index = nonEmptyIndex(scriptHeaders[:], index); index != -1 { - return scriptNamer(index) - } - } - return nil -} - -type scriptNamer int - -func (n scriptNamer) name(i int) string { - return lookup(scriptHeaders[:], int(n), i) -} - -// Name implements the Namer interface for script names. -func (n scriptNamer) Name(x interface{}) string { - return nameScript(n, x) -} - -// Regions returns a Namer for naming regions. It returns nil if there is no -// data for the given tag. The type passed to Name must be either a -// language.Region or a language.Tag. It will not attempt to infer a region for -// tags with an unspecified region. -func Regions(t language.Tag) Namer { - if _, index, conf := matcher.Match(t); conf != language.No { - if index = nonEmptyIndex(regionHeaders[:], index); index != -1 { - return regionNamer(index) - } - } - return nil -} - -type regionNamer int - -func (n regionNamer) name(i int) string { - return lookup(regionHeaders[:], int(n), i) -} - -// Name implements the Namer interface for region names. -func (n regionNamer) Name(x interface{}) string { - return nameRegion(n, x) -} - -// Tags returns a Namer for giving a full description of a tag. The names of -// scripts and regions that are not already implied by the language name will -// in appended within parentheses. It returns nil if there is not data for the -// given tag. The type passed to Name must be a tag. -func Tags(t language.Tag) Namer { - if _, index, conf := matcher.Match(t); conf != language.No { - return tagNamer(index) - } - return nil -} - -type tagNamer int - -// Name implements the Namer interface for tag names. -func (n tagNamer) Name(x interface{}) string { - return nameTag(languageNamer(n), scriptNamer(n), regionNamer(n), x) -} - -// lookup finds the name for an entry in a global table, traversing the -// inheritance hierarchy if needed. -func lookup(table []header, dict, want int) string { - for dict != -1 { - if s := table[dict].name(want); s != "" { - return s - } - dict = int(parents[dict]) - } - return "" -} - -// A Dictionary holds a collection of Namers for a single language. One can -// reduce the amount of data linked in to a binary by only referencing -// Dictionaries for the languages one needs to support instead of using the -// generic Namer factories. -type Dictionary struct { - parent *Dictionary - lang header - script header - region header -} - -// Tags returns a Namer for giving a full description of a tag. The names of -// scripts and regions that are not already implied by the language name will -// in appended within parentheses. It returns nil if there is not data for the -// given tag. The type passed to Name must be a tag. -func (d *Dictionary) Tags() Namer { - return dictTags{d} -} - -type dictTags struct { - d *Dictionary -} - -// Name implements the Namer interface for tag names. -func (n dictTags) Name(x interface{}) string { - return nameTag(dictLanguages{n.d}, dictScripts{n.d}, dictRegions{n.d}, x) -} - -// Languages returns a Namer for naming languages. It returns nil if there is no -// data for the given tag. The type passed to Name must be either language.Base -// or language.Tag. Note that the result may differ between passing a tag or its -// base language. For example, for English, passing "nl-BE" would return Flemish -// whereas passing "nl" returns "Dutch". -func (d *Dictionary) Languages() Namer { - return dictLanguages{d} -} - -type dictLanguages struct { - d *Dictionary -} - -func (n dictLanguages) name(i int) string { - for d := n.d; d != nil; d = d.parent { - if s := d.lang.name(i); s != "" { - return s - } - } - return "" -} - -// Name implements the Namer interface for language names. -func (n dictLanguages) Name(x interface{}) string { - return nameLanguage(n, x) -} - -// Scripts returns a Namer for naming scripts. It returns nil if there is no -// data for the given tag. The type passed to Name must be either a -// language.Script or a language.Tag. It will not attempt to infer a script for -// tags with an unspecified script. -func (d *Dictionary) Scripts() Namer { - return dictScripts{d} -} - -type dictScripts struct { - d *Dictionary -} - -func (n dictScripts) name(i int) string { - for d := n.d; d != nil; d = d.parent { - if s := d.script.name(i); s != "" { - return s - } - } - return "" -} - -// Name implements the Namer interface for script names. -func (n dictScripts) Name(x interface{}) string { - return nameScript(n, x) -} - -// Regions returns a Namer for naming regions. It returns nil if there is no -// data for the given tag. The type passed to Name must be either a -// language.Region or a language.Tag. It will not attempt to infer a region for -// tags with an unspecified region. -func (d *Dictionary) Regions() Namer { - return dictRegions{d} -} - -type dictRegions struct { - d *Dictionary -} - -func (n dictRegions) name(i int) string { - for d := n.d; d != nil; d = d.parent { - if s := d.region.name(i); s != "" { - return s - } - } - return "" -} - -// Name implements the Namer interface for region names. -func (n dictRegions) Name(x interface{}) string { - return nameRegion(n, x) -} - -// A SelfNamer implements a Namer that returns the name of language in this same -// language. It provides a very compact mechanism to provide a comprehensive -// list of languages to users in their native language. -type SelfNamer struct { - // Supported defines the values supported by this Namer. - Supported language.Coverage -} - -var ( - // Self is a shared instance of a SelfNamer. - Self *SelfNamer = &self - - self = SelfNamer{language.NewCoverage(selfTagSet.Tags)} -) - -// Name returns the name of a given language tag in the language identified by -// this tag. It supports both the language.Base and language.Tag types. -func (n SelfNamer) Name(x interface{}) string { - t, _ := language.All.Compose(x) - base, scr, reg := t.Raw() - baseScript := language.Script{} - if (scr == language.Script{} && reg != language.Region{}) { - // For looking up in the self dictionary, we need to select the - // maximized script. This is even the case if the script isn't - // specified. - s1, _ := t.Script() - if baseScript = getScript(base); baseScript != s1 { - scr = s1 - } - } - - i, scr, reg := selfTagSet.index(base, scr, reg) - if i == -1 { - return "" - } - - // Only return the display name if the script matches the expected script. - if (scr != language.Script{}) { - if (baseScript == language.Script{}) { - baseScript = getScript(base) - } - if baseScript != scr { - return "" - } - } - - return selfHeaders[0].name(i) -} - -// getScript returns the maximized script for a base language. -func getScript(b language.Base) language.Script { - tag, _ := language.Raw.Compose(b) - scr, _ := tag.Script() - return scr -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/display_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/display_test.go deleted file mode 100644 index 52b28b41..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/display_test.go +++ /dev/null @@ -1,621 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package display - -import ( - "reflect" - "testing" - "unicode" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -// TODO: test that tables are properly dropped by the linker for various use -// cases. - -var ( - firstLang2aa = language.MustParseBase("aa") - lastLang2zu = language.MustParseBase("zu") - firstLang3ace = language.MustParseBase("ace") - lastLang3zza = language.MustParseBase("zza") - firstTagAr001 = language.MustParse("ar-001") - lastTagZhHant = language.MustParse("zh-Hant") -) - -// TestValues tests that for all languages, regions, and scripts in Values, at -// least one language has a name defined for it by checking it exists in -// English, which is assumed to be the most comprehensive. It is also tested -// that a Namer returns "" for unsupported values. -func TestValues(t *testing.T) { - type testcase struct { - kind string - n Namer - } - // checkDefined checks that a value exists in a Namer. - checkDefined := func(x interface{}, namers []testcase) { - for _, n := range namers { - if n.n.Name(x) == "" { - t.Errorf("%s.Name(%s): supported but no result", n.kind, x) - } - } - } - // checkUnsupported checks that a value does not exist in a Namer. - checkUnsupported := func(x interface{}, namers []testcase) { - for _, n := range namers { - if got := n.n.Name(x); got != "" { - t.Fatalf("%s.Name(%s): unsupported tag gave non-empty result: %q", n.kind, x, got) - } - } - } - - tags := map[language.Tag]bool{} - namers := []testcase{ - {"Languages(en)", Languages(language.English)}, - {"Tags(en)", Tags(language.English)}, - {"English.Languages()", English.Languages()}, - {"English.Tags()", English.Tags()}, - } - for _, tag := range Values.Tags() { - checkDefined(tag, namers) - tags[tag] = true - } - for _, base := range language.Supported.BaseLanguages() { - tag, _ := language.All.Compose(base) - if !tags[tag] { - checkUnsupported(tag, namers) - } - } - - regions := map[language.Region]bool{} - namers = []testcase{ - {"Regions(en)", Regions(language.English)}, - {"English.Regions()", English.Regions()}, - } - for _, r := range Values.Regions() { - checkDefined(r, namers) - regions[r] = true - } - for _, r := range language.Supported.Regions() { - if r = r.Canonicalize(); !regions[r] { - checkUnsupported(r, namers) - } - } - - scripts := map[language.Script]bool{} - namers = []testcase{ - {"Scripts(en)", Scripts(language.English)}, - {"English.Scripts()", English.Scripts()}, - } - for _, s := range Values.Scripts() { - checkDefined(s, namers) - scripts[s] = true - } - for _, s := range language.Supported.Scripts() { - // Canonicalize the script. - tag, _ := language.DeprecatedScript.Compose(s) - if _, s, _ = tag.Raw(); !scripts[s] { - checkUnsupported(s, namers) - } - } -} - -// TestSupported tests that we have at least some Namers for languages that we -// claim to support. To test the claims in the documentation, it also verifies -// that if a Namer is returned, it will have at least some data. -func TestSupported(t *testing.T) { - supportedTags := Supported.Tags() - if len(supportedTags) != numSupported { - t.Errorf("number of supported was %d; want %d", len(supportedTags), numSupported) - } - - namerFuncs := []struct { - kind string - fn func(language.Tag) Namer - }{ - {"Tags", Tags}, - {"Languages", Languages}, - {"Regions", Regions}, - {"Scripts", Scripts}, - } - - // Verify that we have at least one Namer for all tags we claim to support. - tags := make(map[language.Tag]bool) - for _, tag := range supportedTags { - // Test we have at least one Namer for this supported Tag. - found := false - for _, kind := range namerFuncs { - if defined(t, kind.kind, kind.fn(tag), tag) { - found = true - } - } - if !found { - t.Errorf("%s: supported, but no data available", tag) - } - if tags[tag] { - t.Errorf("%s: included in Supported.Tags more than once", tag) - } - tags[tag] = true - } - - // Verify that we have no Namers for tags we don't claim to support. - for _, base := range language.Supported.BaseLanguages() { - tag, _ := language.All.Compose(base) - // Skip tags that are supported after matching. - if _, _, conf := matcher.Match(tag); conf != language.No { - continue - } - // Test there are no Namers for this tag. - for _, kind := range namerFuncs { - if defined(t, kind.kind, kind.fn(tag), tag) { - t.Errorf("%[1]s(%[2]s) returns a Namer, but %[2]s is not in the set of supported Tags.", kind.kind, tag) - } - } - } -} - -// defined reports whether n is a proper Namer, which means it is non-nil and -// must have at least one non-empty value. -func defined(t *testing.T, kind string, n Namer, tag language.Tag) bool { - if n == nil { - return false - } - switch kind { - case "Tags": - for _, t := range Values.Tags() { - if n.Name(t) != "" { - return true - } - } - case "Languages": - for _, t := range Values.BaseLanguages() { - if n.Name(t) != "" { - return true - } - } - case "Regions": - for _, t := range Values.Regions() { - if n.Name(t) != "" { - return true - } - } - case "Scripts": - for _, t := range Values.Scripts() { - if n.Name(t) != "" { - return true - } - } - } - t.Errorf("%s(%s) returns non-nil Namer without content", kind, tag) - return false -} - -func TestCoverage(t *testing.T) { - en := language.English - tests := []struct { - n Namer - x interface{} - }{ - {Languages(en), Values.Tags()}, - {Scripts(en), Values.Scripts()}, - {Regions(en), Values.Regions()}, - } - for i, tt := range tests { - uniq := make(map[string]interface{}) - - v := reflect.ValueOf(tt.x) - for j := 0; j < v.Len(); j++ { - x := v.Index(j).Interface() - s := tt.n.Name(x) - if s == "" { - t.Errorf("%d:%d:%s: missing content", i, j, x) - } else if uniq[s] != nil { - t.Errorf("%d:%d:%s: identical return value %q for %v and %v", i, j, x, s, x, uniq[s]) - } - uniq[s] = x - } - } -} - -// TestUpdate tests whether dictionary entries for certain languages need to be -// updated. For some languages, some of the headers may be empty or they may be -// identical to the parent. This code detects if such entries need to be updated -// after a table update. -func TestUpdate(t *testing.T) { - tests := []struct { - d *Dictionary - tag string - }{ - {ModernStandardArabic, "ar-001"}, - {AmericanEnglish, "en-US"}, - {EuropeanSpanish, "es-ES"}, - {BrazilianPortuguese, "pt-BR"}, - {SimplifiedChinese, "zh-Hans"}, - } - - for _, tt := range tests { - _, i, _ := matcher.Match(language.MustParse(tt.tag)) - if !reflect.DeepEqual(tt.d.lang, langHeaders[i]) { - t.Errorf("%s: lang table update needed", tt.tag) - } - if !reflect.DeepEqual(tt.d.script, scriptHeaders[i]) { - t.Errorf("%s: script table update needed", tt.tag) - } - if !reflect.DeepEqual(tt.d.region, regionHeaders[i]) { - t.Errorf("%s: region table update needed", tt.tag) - } - } -} - -func TestIndex(t *testing.T) { - notIn := []string{"aa", "xx", "zz", "aaa", "xxx", "zzz", "Aaaa", "Xxxx", "Zzzz"} - tests := []tagIndex{ - { - "", - "", - "", - }, - { - "bb", - "", - "", - }, - { - "", - "bbb", - "", - }, - { - "", - "", - "Bbbb", - }, - { - "bb", - "bbb", - "Bbbb", - }, - { - "bbccddyy", - "bbbcccdddyyy", - "BbbbCcccDdddYyyy", - }, - } - for i, tt := range tests { - // Create the test set from the tagIndex. - cnt := 0 - for sz := 2; sz <= 4; sz++ { - a := tt[sz-2] - for j := 0; j < len(a); j += sz { - s := a[j : j+sz] - if idx := tt.index(s); idx != cnt { - t.Errorf("%d:%s: index was %d; want %d", i, s, idx, cnt) - } - cnt++ - } - } - if n := tt.len(); n != cnt { - t.Errorf("%d: len was %d; want %d", i, n, cnt) - } - for _, x := range notIn { - if idx := tt.index(x); idx != -1 { - t.Errorf("%d:%s: index was %d; want -1", i, x, idx) - } - } - } -} - -func TestTag(t *testing.T) { - tests := []struct { - dict string - tag string - name string - }{ - {"agq", "sr", ""}, // sr is in Value.Languages(), but is not supported by agq. - {"nl", "nl", "Nederlands"}, - {"nl", "nl-BE", "Vlaams"}, - {"en", "en", "English"}, - {"en", "en-GB", "British English"}, - {"en", "en-US", "American English"}, // American English in CLDR 24+ - {"ru", "ru", "руÑÑкий"}, - {"ru", "ru-RU", "руÑÑкий (РоÑÑиÑ)"}, - {"ru", "ru-Cyrl", "руÑÑкий (кириллица)"}, - {"en", lastLang2zu.String(), "Zulu"}, - {"en", firstLang2aa.String(), "Afar"}, - {"en", lastLang3zza.String(), "Zaza"}, - {"en", firstLang3ace.String(), "Achinese"}, - {"en", firstTagAr001.String(), "Modern Standard Arabic"}, - {"en", lastTagZhHant.String(), "Traditional Chinese"}, - {"en", "aaa", ""}, - {"en", "zzj", ""}, - // If full tag doesn't match, try without script or region. - {"en", "aa-Hans", "Afar (Simplified Han)"}, - {"en", "af-Arab", "Afrikaans (Arabic)"}, - {"en", "zu-Cyrl", "Zulu (Cyrillic)"}, - {"en", "aa-GB", "Afar (United Kingdom)"}, - {"en", "af-NA", "Afrikaans (Namibia)"}, - {"en", "zu-BR", "Zulu (Brazil)"}, - // Correct inheritance and language selection. - {"zh", "zh-TW", "中文 (å°æ¹¾)"}, - {"zh", "zh-Hant-TW", "ç¹ä½“中文 (å°æ¹¾)"}, - {"zh-Hant", "zh-TW", "中文 (å°ç£)"}, - {"zh-Hant", "zh-Hant-TW", "ç¹é«”中文 (å°ç£)"}, - // Some rather arbitrary interpretations for Serbian. This is arguably - // correct and consistent with the way zh-[Hant-]TW is handled. It will - // also give results more in line with the expectations if users - // explicitly use "sh". - {"sr-Latn", "sr-ME", "srpski (Crna Gora)"}, - {"sr-Latn", "sr-Latn-ME", "Srpskohrvatski (Crna Gora)"}, - // Double script and region - {"nl", "en-Cyrl-BE", "Engels (Cyrillisch, België)"}, - // Canonical equivalents. - {"ro", "ro-MD", "moldovenească"}, - {"ro", "mo", "moldovenească"}, - } - for i, tt := range tests { - d := Tags(language.MustParse(tt.dict)) - if n := d.Name(language.Raw.MustParse(tt.tag)); n != tt.name { - // There are inconsistencies w.r.t. capitalization in the tests - // due to CLDR's update procedure which treats modern and other - // languages differently. - // See http://unicode.org/cldr/trac/ticket/8051. - // TODO: use language capitalization to sanitize the strings. - t.Errorf("%d:%s:%s: was %q; want %q", i, tt.dict, tt.tag, n, tt.name) - } - } -} - -func TestLanguage(t *testing.T) { - tests := []struct { - dict string - tag string - name string - }{ - {"agq", "sr", ""}, // sr is in Value.Languages(), but is not supported by agq. - {"nl", "nl", "Nederlands"}, - {"nl", "nl-BE", "Vlaams"}, - {"en", "pt", "Portuguese"}, - {"en", "pt-PT", "European Portuguese"}, - {"en", "pt-BR", "Brazilian Portuguese"}, - {"en", "en", "English"}, - {"en", "en-GB", "British English"}, - {"en", "en-US", "American English"}, // American English in CLDR 24+ - {"en", lastLang2zu.String(), "Zulu"}, - {"en", firstLang2aa.String(), "Afar"}, - {"en", lastLang3zza.String(), "Zaza"}, - {"en", firstLang3ace.String(), "Achinese"}, - {"en", firstTagAr001.String(), "Modern Standard Arabic"}, - {"en", lastTagZhHant.String(), "Traditional Chinese"}, - {"en", "aaa", ""}, - {"en", "zzj", ""}, - // If full tag doesn't match, try without script or region. - {"en", "aa-Hans", "Afar"}, - {"en", "af-Arab", "Afrikaans"}, - {"en", "zu-Cyrl", "Zulu"}, - {"en", "aa-GB", "Afar"}, - {"en", "af-NA", "Afrikaans"}, - {"en", "zu-BR", "Zulu"}, - {"agq", "zh-Hant", ""}, - // Canonical equivalents. - {"ro", "ro-MD", "moldovenească"}, - {"ro", "mo", "moldovenească"}, - {"en", "sh", "Serbo-Croatian"}, - {"en", "sr-Latn", "Serbo-Croatian"}, - {"en", "sr", "Serbian"}, - {"en", "sr-ME", "Serbian"}, - {"en", "sr-Latn-ME", "Serbo-Croatian"}, // See comments in TestTag. - } - for i, tt := range tests { - d := Languages(language.Raw.MustParse(tt.dict)) - if n := d.Name(language.Raw.MustParse(tt.tag)); n != tt.name { - t.Errorf("%d:%s:%s: was %q; want %q", i, tt.dict, tt.tag, n, tt.name) - } - if len(tt.tag) <= 3 { - if n := d.Name(language.MustParseBase(tt.tag)); n != tt.name { - t.Errorf("%d:%s:base(%s): was %q; want %q", i, tt.dict, tt.tag, n, tt.name) - } - } - } -} - -func TestScript(t *testing.T) { - tests := []struct { - dict string - scr string - name string - }{ - {"nl", "Arab", "Arabisch"}, - {"en", "Arab", "Arabic"}, - {"en", "Zzzz", "Unknown Script"}, - {"zh-Hant", "Hang", "韓文字"}, - {"zh-Hant-HK", "Hang", "韓文字"}, - {"zh", "Arab", "阿拉伯文"}, - {"zh-Hans-HK", "Arab", "阿拉伯文"}, // same as zh - {"zh-Hant", "Arab", "阿拉伯文"}, - {"zh-Hant-HK", "Arab", "阿拉伯文"}, // same as zh - // Canonicalized form - {"en", "Qaai", "Inherited"}, // deprecated script, now is Zinh - {"en", "sh", "Unknown Script"}, // sh canonicalizes to sr-Latn - {"en", "en", "Unknown Script"}, - // Don't introduce scripts with canonicalization. - {"en", "sh", "Unknown Script"}, // sh canonicalizes to sr-Latn - } - for i, tt := range tests { - d := Scripts(language.MustParse(tt.dict)) - var x interface{} - if unicode.IsUpper(rune(tt.scr[0])) { - x = language.MustParseScript(tt.scr) - tag, _ := language.Raw.Compose(x) - if n := d.Name(tag); n != tt.name { - t.Errorf("%d:%s:%s: was %q; want %q", i, tt.dict, tt.scr, n, tt.name) - } - } else { - x = language.Raw.MustParse(tt.scr) - } - if n := d.Name(x); n != tt.name { - t.Errorf("%d:%s:%s: was %q; want %q", i, tt.dict, tt.scr, n, tt.name) - } - } -} - -func TestRegion(t *testing.T) { - tests := []struct { - dict string - reg string - name string - }{ - {"nl", "NL", "Nederland"}, - {"en", "US", "United States"}, - {"en", "ZZ", "Unknown Region"}, - {"en", "UM", "U.S. Outlying Islands"}, - {"en-GB", "UM", "U.S. Outlying Islands"}, - {"en-GB", "NL", "Netherlands"}, - // Canonical equivalents - {"en", "UK", "United Kingdom"}, - // No region - {"en", "pt", "Unknown Region"}, - {"en", "und", "Unknown Region"}, - // Don't introduce regions with canonicalization. - {"en", "mo", "Unknown Region"}, - } - for i, tt := range tests { - d := Regions(language.MustParse(tt.dict)) - var x interface{} - if unicode.IsUpper(rune(tt.reg[0])) { - // Region - x = language.MustParseRegion(tt.reg) - tag, _ := language.Raw.Compose(x) - if n := d.Name(tag); n != tt.name { - t.Errorf("%d:%s:%s: was %q; want %q", i, tt.dict, tt.reg, n, tt.name) - } - } else { - // Tag - x = language.Raw.MustParse(tt.reg) - } - if n := d.Name(x); n != tt.name { - t.Errorf("%d:%s:%s: was %q; want %q", i, tt.dict, tt.reg, n, tt.name) - } - } -} - -func TestSelf(t *testing.T) { - tests := []struct { - tag string - name string - }{ - {"nl", "Nederlands"}, - {"nl-BE", "Vlaams"}, - {"en-GB", "British English"}, - {lastLang2zu.String(), "isiZulu"}, - {firstLang2aa.String(), ""}, // not defined - {lastLang3zza.String(), ""}, // not defined - {firstLang3ace.String(), ""}, // not defined - {firstTagAr001.String(), "العربية الرسمية الحديثة"}, - {"ar", "العربية"}, - {lastTagZhHant.String(), "ç¹é«”中文"}, - {"aaa", ""}, - {"zzj", ""}, - // Drop entries that are not in the requested script, even if there is - // an entry for the language. - {"aa-Hans", ""}, - {"af-Arab", ""}, - {"zu-Cyrl", ""}, - // Append the country name in the language of the matching language. - {"af-NA", "Afrikaans"}, - {"zh", "中文"}, - // zh-TW should match zh-Hant instead of zh! - {"zh-TW", "ç¹é«”中文"}, - {"zh-Hant", "ç¹é«”中文"}, - {"zh-Hans", "简体中文"}, - {"zh-Hant-TW", "ç¹é«”中文"}, - {"zh-Hans-TW", "简体中文"}, - // Take the entry for sr which has the matching script. - // TODO: Capitalization changed as of CLDR 26, but change seems - // arbitrary. Revisit capitalization with revision 27. See - // http://unicode.org/cldr/trac/ticket/8051. - {"sr", "ÑрпÑки"}, - // TODO: sr-ME should show up as Serbian or Montenegrin, not Serbo- - // Croatian. This is an artifact of the current algorithm, which is the - // way it is to have the preferred behavior for other languages such as - // Chinese. We can hardwire this case in the table generator or package - // code, but we first check if CLDR can be updated. - // {"sr-ME", "Srpski"}, // Is Srpskohrvatski - {"sr-Latn-ME", "Srpskohrvatski"}, - {"sr-Cyrl-ME", "ÑрпÑки"}, - {"sr-NL", "ÑрпÑки"}, - // Canonical equivalents. - {"ro-MD", "moldovenească"}, - {"mo", "moldovenească"}, - // NOTE: kk is defined, but in Cyrillic script. For China, Arab is the - // dominant script. We do not have data for kk-Arab and we chose to not - // fall back in such cases. - {"kk-CN", ""}, - } - for i, tt := range tests { - d := Self - if n := d.Name(language.Raw.MustParse(tt.tag)); n != tt.name { - t.Errorf("%d:%s: was %q; want %q", i, tt.tag, n, tt.name) - } - } -} - -func TestDictionaryLang(t *testing.T) { - tests := []struct { - d *Dictionary - tag string - name string - }{ - {English, "en", "English"}, - {Portuguese, "af", "africâner"}, - {EuropeanPortuguese, "af", "africânder"}, - {English, "nl-BE", "Flemish"}, - } - for i, test := range tests { - tag := language.MustParse(test.tag) - if got := test.d.Tags().Name(tag); got != test.name { - t.Errorf("%d:%v: got %s; want %s", i, tag, got, test.name) - } - if base, _ := language.Compose(tag.Base()); base == tag { - if got := test.d.Languages().Name(base); got != test.name { - t.Errorf("%d:%v: got %s; want %s", i, tag, got, test.name) - } - } - } -} - -func TestDictionaryRegion(t *testing.T) { - tests := []struct { - d *Dictionary - region string - name string - }{ - {English, "FR", "France"}, - {Portuguese, "009", "Oceania"}, - {EuropeanPortuguese, "009", "Oceânia"}, - } - for i, test := range tests { - tag := language.MustParseRegion(test.region) - if got := test.d.Regions().Name(tag); got != test.name { - t.Errorf("%d:%v: got %s; want %s", i, tag, got, test.name) - } - } -} - -func TestDictionaryScript(t *testing.T) { - tests := []struct { - d *Dictionary - script string - name string - }{ - {English, "Cyrl", "Cyrillic"}, - {Portuguese, "Gujr", "gujerati"}, - {EuropeanPortuguese, "Gujr", "guzerate"}, - } - for i, test := range tests { - tag := language.MustParseScript(test.script) - if got := test.d.Scripts().Name(tag); got != test.name { - t.Errorf("%d:%v: got %s; want %s", i, tag, got, test.name) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/examples_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/examples_test.go deleted file mode 100644 index f82312c6..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/examples_test.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package display_test - -import ( - "fmt" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -func ExampleNamer() { - supported := []string{ - "en-US", "en-GB", "ja", "zh", "zh-Hans", "zh-Hant", "pt", "pt-PT", "ko", "ar", "el", "ru", "uk", "pa", - } - - en := display.English.Languages() - - for _, s := range supported { - t := language.MustParse(s) - fmt.Printf("%-20s (%s)\n", en.Name(t), display.Self.Name(t)) - } - - // Output: - // American English (American English) - // British English (British English) - // Japanese (日本語) - // Chinese (中文) - // Simplified Chinese (简体中文) - // Traditional Chinese (ç¹é«”中文) - // Portuguese (português) - // European Portuguese (português europeu) - // Korean (한국어) - // Arabic (العربية) - // Greek (Ελληνικά) - // Russian (руÑÑкий) - // Ukrainian (українÑька) - // Punjabi (ਪੰਜਾਬੀ) -} - -func ExampleTags() { - n := display.Tags(language.English) - fmt.Println(n.Name(language.Make("nl"))) - fmt.Println(n.Name(language.Make("nl-BE"))) - fmt.Println(n.Name(language.Make("nl-CW"))) - fmt.Println(n.Name(language.Make("nl-Arab"))) - fmt.Println(n.Name(language.Make("nl-Cyrl-RU"))) - - // Output: - // Dutch - // Flemish - // Dutch (Curaçao) - // Dutch (Arabic) - // Dutch (Cyrillic, Russia) -} - -// ExampleDictionary shows how to reduce the amount of data linked into your -// binary by only using the predefined Dictionary variables of the languages you -// wish to support. -func ExampleDictionary() { - tags := []language.Tag{ - language.English, - language.German, - language.Japanese, - language.Russian, - } - dicts := []*display.Dictionary{ - display.English, - display.German, - display.Japanese, - display.Russian, - } - - m := language.NewMatcher(tags) - - getDict := func(t language.Tag) *display.Dictionary { - _, i, confidence := m.Match(t) - // Skip this check if you want to support a fall-back language, which - // will be the first one passed to NewMatcher. - if confidence == language.No { - return nil - } - return dicts[i] - } - - // The matcher will match Swiss German to German. - n := getDict(language.Make("gsw")).Languages() - fmt.Println(n.Name(language.German)) - fmt.Println(n.Name(language.Make("de-CH"))) - fmt.Println(n.Name(language.Make("gsw"))) - - // Output: - // Deutsch - // Schweizer Hochdeutsch - // Schweizerdeutsch -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/lookup.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/lookup.go deleted file mode 100644 index 49f67857..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/lookup.go +++ /dev/null @@ -1,238 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package display - -// This file contains common lookup code that is shared between the various -// implementations of Namer and Dictionaries. - -import ( - "fmt" - "sort" - "strings" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -type namer interface { - // name gets the string for the given index. It should walk the - // inheritance chain if a value is not present in the base index. - name(idx int) string -} - -func nameLanguage(n namer, x interface{}) string { - t, _ := language.All.Compose(x) - i, _, _ := langTagSet.index(t.Raw()) - return n.name(i) -} - -func nameScript(n namer, x interface{}) string { - t, _ := language.DeprecatedScript.Compose(x) - _, s, _ := t.Raw() - return n.name(scriptIndex.index(s.String())) -} - -func nameRegion(n namer, x interface{}) string { - t, _ := language.DeprecatedRegion.Compose(x) - _, _, r := t.Raw() - return n.name(regionIndex.index(r.String())) -} - -func nameTag(langN, scrN, regN namer, x interface{}) string { - t, ok := x.(language.Tag) - if !ok { - return "" - } - const form = language.All &^ language.SuppressScript - if c, err := form.Canonicalize(t); err == nil { - t = c - } - i, scr, reg := langTagSet.index(t.Raw()) - if i == -1 { - return "" - } - - str := langN.name(i) - if hasS, hasR := (scr != language.Script{}), (reg != language.Region{}); hasS || hasR { - ss, sr := "", "" - if hasS { - ss = scrN.name(scriptIndex.index(scr.String())) - } - if hasR { - sr = regN.name(regionIndex.index(reg.String())) - } - // TODO: use patterns in CLDR or at least confirm they are the same for - // all languages. - if ss != "" && sr != "" { - return fmt.Sprintf("%s (%s, %s)", str, ss, sr) - } - if ss != "" || sr != "" { - return fmt.Sprintf("%s (%s%s)", str, ss, sr) - } - } - return str -} - -// header contains the data and indexes for a single namer. -// data contains a series of strings concatenated into one. index contains the -// offsets for a string in data. For example, consider a header that defines -// strings for the languages de, el, en, fi, and nl: -// -// header{ -// data: "GermanGreekEnglishDutch", -// index: []uint16{ 0, 6, 11, 18, 18, 23 }, -// } -// -// For a language with index i, the string is defined by -// data[index[i]:index[i+1]]. So the number of elements in index is always one -// greater than the number of languages for which header defines a value. -// A string for a language may be empty, which means the name is undefined. In -// the above example, the name for fi (Finnish) is undefined. -type header struct { - data string - index []uint16 -} - -// name looks up the name for a tag in the dictionary, given its index. -func (h *header) name(i int) string { - if 0 <= i && i < len(h.index)-1 { - return h.data[h.index[i]:h.index[i+1]] - } - return "" -} - -// tagSet is used to find the index of a language in a set of tags. -type tagSet struct { - single tagIndex - long []string -} - -var ( - langTagSet = tagSet{ - single: langIndex, - long: langTagsLong, - } - - // selfTagSet is used for indexing the language strings in their own - // language. - selfTagSet = tagSet{ - single: selfIndex, - long: selfTagsLong, - } - - zzzz = language.MustParseScript("Zzzz") - zz = language.MustParseRegion("ZZ") -) - -// index returns the index of the tag for the given base, script and region or -// its parent if the tag is not available. If the match is for a parent entry, -// the excess script and region are returned. -func (ts *tagSet) index(base language.Base, scr language.Script, reg language.Region) (int, language.Script, language.Region) { - lang := base.String() - index := -1 - if (scr != language.Script{} || reg != language.Region{}) { - if scr == zzzz { - scr = language.Script{} - } - if reg == zz { - reg = language.Region{} - } - - i := sort.SearchStrings(ts.long, lang) - // All entries have either a script or a region and not both. - scrStr, regStr := scr.String(), reg.String() - for ; i < len(ts.long) && strings.HasPrefix(ts.long[i], lang); i++ { - if s := ts.long[i][len(lang)+1:]; s == scrStr { - scr = language.Script{} - index = i + ts.single.len() - break - } else if s == regStr { - reg = language.Region{} - index = i + ts.single.len() - break - } - } - } - if index == -1 { - index = ts.single.index(lang) - } - return index, scr, reg -} - -func (ts *tagSet) Tags() []language.Tag { - tags := make([]language.Tag, 0, ts.single.len()+len(ts.long)) - ts.single.keys(func(s string) { - tags = append(tags, language.Raw.MustParse(s)) - }) - for _, s := range ts.long { - tags = append(tags, language.Raw.MustParse(s)) - } - return tags -} - -func supportedScripts() []language.Script { - scr := make([]language.Script, 0, scriptIndex.len()) - scriptIndex.keys(func(s string) { - scr = append(scr, language.MustParseScript(s)) - }) - return scr -} - -func supportedRegions() []language.Region { - reg := make([]language.Region, 0, regionIndex.len()) - regionIndex.keys(func(s string) { - reg = append(reg, language.MustParseRegion(s)) - }) - return reg -} - -// tagIndex holds a concatenated lists of subtags of length 2 to 4, one string -// for each length, which can be used in combination with binary search to get -// the index associated with a tag. -// For example, a tagIndex{ -// "arenesfrruzh", // 6 2-byte tags. -// "barwae", // 2 3-byte tags. -// "", -// } -// would mean that the 2-byte tag "fr" had an index of 3, and the 3-byte tag -// "wae" had an index of 7. -type tagIndex [3]string - -func (t *tagIndex) index(s string) int { - sz := len(s) - if sz < 2 || 4 < sz { - return -1 - } - a := t[sz-2] - index := sort.Search(len(a)/sz, func(i int) bool { - p := i * sz - return a[p:p+sz] >= s - }) - p := index * sz - if end := p + sz; end > len(a) || a[p:end] != s { - return -1 - } - // Add the number of tags for smaller sizes. - for i := 0; i < sz-2; i++ { - index += len(t[i]) / (i + 2) - } - return index -} - -// len returns the number of tags that are contained in the tagIndex. -func (t *tagIndex) len() (n int) { - for i, s := range t { - n += len(s) / (i + 2) - } - return n -} - -// keys calls f for each tag. -func (t *tagIndex) keys(f func(key string)) { - for i, s := range *t { - for ; s != ""; s = s[i+2:] { - f(s[:i+2]) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/maketables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/maketables.go deleted file mode 100644 index db0c2c6f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/maketables.go +++ /dev/null @@ -1,587 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// Generator for display name tables. - -package main - -import ( - "bytes" - "flag" - "fmt" - "log" - "reflect" - "sort" - "strings" - - "golang.org/x/text/cldr" - "golang.org/x/text/internal/gen" - "golang.org/x/text/language" -) - -var ( - test = flag.Bool("test", false, - "test existing tables; can be used to compare web data with package data.") - outputFile = flag.String("output", "tables.go", "output file") - - stats = flag.Bool("stats", false, "prints statistics to stderr") - - short = flag.Bool("short", false, `Use "short" alternatives, when available.`) - draft = flag.String("draft", - "contributed", - `Minimal draft requirements (approved, contributed, provisional, unconfirmed).`) - pkg = flag.String("package", - "display", - "the name of the package in which the generated file is to be included") - - tags = newTagSet("tags", - []language.Tag{}, - "space-separated list of tags to include or empty for all") - dict = newTagSet("dict", - dictTags(), - "space-separated list or tags for which to include a Dictionary. "+ - `"" means the common list from go.text/language.`) -) - -func dictTags() (tag []language.Tag) { - // TODO: replace with language.Common.Tags() once supported. - const str = "af am ar ar-001 az bg bn ca cs da de el en en-US en-GB " + - "es es-ES es-419 et fa fi fil fr fr-CA gu he hi hr hu hy id is it ja " + - "ka kk km kn ko ky lo lt lv mk ml mn mr ms my ne nl no pa pl pt pt-BR " + - "pt-PT ro ru si sk sl sq sr sr-Latn sv sw ta te th tr uk ur uz vi " + - "zh zh-Hans zh-Hant zu" - - for _, s := range strings.Split(str, " ") { - tag = append(tag, language.MustParse(s)) - } - return tag -} - -func main() { - gen.Init() - - // Read the CLDR zip file. - r := gen.OpenCLDRCoreZip() - defer r.Close() - - d := &cldr.Decoder{} - d.SetDirFilter("main", "supplemental") - d.SetSectionFilter("localeDisplayNames") - data, err := d.DecodeZip(r) - if err != nil { - log.Fatalf("DecodeZip: %v", err) - } - - w := gen.NewCodeWriter() - defer w.WriteGoFile(*outputFile, "display") - - gen.WriteCLDRVersion(w) - - b := builder{ - w: w, - data: data, - group: make(map[string]*group), - } - b.generate() -} - -const tagForm = language.All - -// tagSet is used to parse command line flags of tags. It implements the -// flag.Value interface. -type tagSet map[language.Tag]bool - -func newTagSet(name string, tags []language.Tag, usage string) tagSet { - f := tagSet(make(map[language.Tag]bool)) - for _, t := range tags { - f[t] = true - } - flag.Var(f, name, usage) - return f -} - -// String implements the String method of the flag.Value interface. -func (f tagSet) String() string { - tags := []string{} - for t := range f { - tags = append(tags, t.String()) - } - sort.Strings(tags) - return strings.Join(tags, " ") -} - -// Set implements Set from the flag.Value interface. -func (f tagSet) Set(s string) error { - if s != "" { - for _, s := range strings.Split(s, " ") { - if s != "" { - tag, err := tagForm.Parse(s) - if err != nil { - return err - } - f[tag] = true - } - } - } - return nil -} - -func (f tagSet) contains(t language.Tag) bool { - if len(f) == 0 { - return true - } - return f[t] -} - -// builder is used to create all tables with display name information. -type builder struct { - w *gen.CodeWriter - - data *cldr.CLDR - - fromLocs []string - - // destination tags for the current locale. - toTags []string - toTagIndex map[string]int - - // list of supported tags - supported []language.Tag - - // key-value pairs per group - group map[string]*group - - // statistics - sizeIndex int // total size of all indexes of headers - sizeData int // total size of all data of headers - totalSize int -} - -type group struct { - // Maps from a given language to the Namer data for this language. - lang map[language.Tag]keyValues - headers []header - - toTags []string - threeStart int - fourPlusStart int -} - -// set sets the typ to the name for locale loc. -func (g *group) set(t language.Tag, typ, name string) { - kv := g.lang[t] - if kv == nil { - kv = make(keyValues) - g.lang[t] = kv - } - if kv[typ] == "" { - kv[typ] = name - } -} - -type keyValues map[string]string - -type header struct { - tag language.Tag - data string - index []uint16 -} - -var versionInfo = `// Version is deprecated. Use CLDRVersion. -const Version = %#v - -` - -var self = language.MustParse("mul") - -// generate builds and writes all tables. -func (b *builder) generate() { - fmt.Fprintf(b.w, versionInfo, cldr.Version) - - b.filter() - b.setData("lang", func(g *group, loc language.Tag, ldn *cldr.LocaleDisplayNames) { - if ldn.Languages != nil { - for _, v := range ldn.Languages.Language { - tag := tagForm.MustParse(v.Type) - if tags.contains(tag) { - g.set(loc, tag.String(), v.Data()) - } - } - } - }) - b.setData("script", func(g *group, loc language.Tag, ldn *cldr.LocaleDisplayNames) { - if ldn.Scripts != nil { - for _, v := range ldn.Scripts.Script { - g.set(loc, language.MustParseScript(v.Type).String(), v.Data()) - } - } - }) - b.setData("region", func(g *group, loc language.Tag, ldn *cldr.LocaleDisplayNames) { - if ldn.Territories != nil { - for _, v := range ldn.Territories.Territory { - g.set(loc, language.MustParseRegion(v.Type).String(), v.Data()) - } - } - }) - - b.makeSupported() - - b.writeParents() - - b.writeGroup("lang") - b.writeGroup("script") - b.writeGroup("region") - - b.w.WriteConst("numSupported", len(b.supported)) - buf := bytes.Buffer{} - for _, tag := range b.supported { - fmt.Fprint(&buf, tag.String(), "|") - } - b.w.WriteConst("supported", buf.String()) - - b.writeDictionaries() - - b.supported = []language.Tag{self} - - // Compute the names of locales in their own language. Some of these names - // may be specified in their parent locales. We iterate the maximum depth - // of the parent three times to match successive parents of tags until a - // possible match is found. - for i := 0; i < 4; i++ { - b.setData("self", func(g *group, tag language.Tag, ldn *cldr.LocaleDisplayNames) { - parent := tag - if b, s, r := tag.Raw(); i > 0 && (s != language.Script{} && r == language.Region{}) { - parent, _ = language.Raw.Compose(b) - } - if ldn.Languages != nil { - for _, v := range ldn.Languages.Language { - key := tagForm.MustParse(v.Type) - saved := key - if key == parent { - g.set(self, tag.String(), v.Data()) - } - for k := 0; k < i; k++ { - key = key.Parent() - } - if key == tag { - g.set(self, saved.String(), v.Data()) // set does not overwrite a value. - } - } - } - }) - } - - b.writeGroup("self") -} - -func (b *builder) setData(name string, f func(*group, language.Tag, *cldr.LocaleDisplayNames)) { - b.sizeIndex = 0 - b.sizeData = 0 - b.toTags = nil - b.fromLocs = nil - b.toTagIndex = make(map[string]int) - - g := b.group[name] - if g == nil { - g = &group{lang: make(map[language.Tag]keyValues)} - b.group[name] = g - } - for _, loc := range b.data.Locales() { - // We use RawLDML instead of LDML as we are managing our own inheritance - // in this implementation. - ldml := b.data.RawLDML(loc) - - // We do not support the POSIX variant (it is not a supported BCP 47 - // variant). This locale also doesn't happen to contain any data, so - // we'll skip it by checking for this. - tag, err := tagForm.Parse(loc) - if err != nil { - if ldml.LocaleDisplayNames != nil { - log.Fatalf("setData: %v", err) - } - continue - } - if ldml.LocaleDisplayNames != nil && tags.contains(tag) { - f(g, tag, ldml.LocaleDisplayNames) - } - } -} - -func (b *builder) filter() { - filter := func(s *cldr.Slice) { - if *short { - s.SelectOnePerGroup("alt", []string{"short", ""}) - } else { - s.SelectOnePerGroup("alt", []string{"stand-alone", ""}) - } - d, err := cldr.ParseDraft(*draft) - if err != nil { - log.Fatalf("filter: %v", err) - } - s.SelectDraft(d) - } - for _, loc := range b.data.Locales() { - if ldn := b.data.RawLDML(loc).LocaleDisplayNames; ldn != nil { - if ldn.Languages != nil { - s := cldr.MakeSlice(&ldn.Languages.Language) - if filter(&s); len(ldn.Languages.Language) == 0 { - ldn.Languages = nil - } - } - if ldn.Scripts != nil { - s := cldr.MakeSlice(&ldn.Scripts.Script) - if filter(&s); len(ldn.Scripts.Script) == 0 { - ldn.Scripts = nil - } - } - if ldn.Territories != nil { - s := cldr.MakeSlice(&ldn.Territories.Territory) - if filter(&s); len(ldn.Territories.Territory) == 0 { - ldn.Territories = nil - } - } - } - } -} - -// makeSupported creates a list of all supported locales. -func (b *builder) makeSupported() { - // tags across groups - for _, g := range b.group { - for t, _ := range g.lang { - b.supported = append(b.supported, t) - } - } - b.supported = b.supported[:unique(tagsSorter(b.supported))] - -} - -type tagsSorter []language.Tag - -func (a tagsSorter) Len() int { return len(a) } -func (a tagsSorter) Swap(i, j int) { a[i], a[j] = a[j], a[i] } -func (a tagsSorter) Less(i, j int) bool { return a[i].String() < a[j].String() } - -func (b *builder) writeGroup(name string) { - g := b.group[name] - - for _, kv := range g.lang { - for t, _ := range kv { - g.toTags = append(g.toTags, t) - } - } - g.toTags = g.toTags[:unique(tagsBySize(g.toTags))] - - // Allocate header per supported value. - g.headers = make([]header, len(b.supported)) - for i, sup := range b.supported { - kv, ok := g.lang[sup] - if !ok { - g.headers[i].tag = sup - continue - } - data := []byte{} - index := make([]uint16, len(g.toTags), len(g.toTags)+1) - for j, t := range g.toTags { - index[j] = uint16(len(data)) - data = append(data, kv[t]...) - } - index = append(index, uint16(len(data))) - - // Trim the tail of the index. - // TODO: indexes can be reduced in size quite a bit more. - n := len(index) - for ; n >= 2 && index[n-2] == index[n-1]; n-- { - } - index = index[:n] - - // Workaround for a bug in CLDR 26. - // See http://unicode.org/cldr/trac/ticket/8042. - if cldr.Version == "26" && sup.String() == "hsb" { - data = bytes.Replace(data, []byte{'"'}, nil, 1) - } - g.headers[i] = header{sup, string(data), index} - } - g.writeTable(b.w, name) -} - -type tagsBySize []string - -func (l tagsBySize) Len() int { return len(l) } -func (l tagsBySize) Swap(i, j int) { l[i], l[j] = l[j], l[i] } -func (l tagsBySize) Less(i, j int) bool { - a, b := l[i], l[j] - // Sort single-tag entries based on size first. Otherwise alphabetic. - if len(a) != len(b) && (len(a) <= 4 || len(b) <= 4) { - return len(a) < len(b) - } - return a < b -} - -// parentIndices returns slice a of len(tags) where tags[a[i]] is the parent -// of tags[i]. -func parentIndices(tags []language.Tag) []int16 { - index := make(map[language.Tag]int16) - for i, t := range tags { - index[t] = int16(i) - } - - // Construct default parents. - parents := make([]int16, len(tags)) - for i, t := range tags { - parents[i] = -1 - for t = t.Parent(); t != language.Und; t = t.Parent() { - if j, ok := index[t]; ok { - parents[i] = j - break - } - } - } - return parents -} - -func (b *builder) writeParents() { - parents := parentIndices(b.supported) - fmt.Fprintf(b.w, "var parents = ") - b.w.WriteArray(parents) -} - -// writeKeys writes keys to a special index used by the display package. -// tags are assumed to be sorted by length. -func writeKeys(w *gen.CodeWriter, name string, keys []string) { - w.Size += int(3 * reflect.TypeOf("").Size()) - w.WriteComment("Number of keys: %d", len(keys)) - fmt.Fprintf(w, "var (\n\t%sIndex = tagIndex{\n", name) - for i := 2; i <= 4; i++ { - sub := []string{} - for _, t := range keys { - if len(t) != i { - break - } - sub = append(sub, t) - } - s := strings.Join(sub, "") - w.WriteString(s) - fmt.Fprintf(w, ",\n") - keys = keys[len(sub):] - } - fmt.Fprintln(w, "\t}") - if len(keys) > 0 { - w.Size += int(reflect.TypeOf([]string{}).Size()) - fmt.Fprintf(w, "\t%sTagsLong = ", name) - w.WriteSlice(keys) - } - fmt.Fprintln(w, ")\n") -} - -// identifier creates an identifier from the given tag. -func identifier(t language.Tag) string { - return strings.Replace(t.String(), "-", "", -1) -} - -func (h *header) writeEntry(w *gen.CodeWriter, name string) { - if len(dict) > 0 && dict.contains(h.tag) { - fmt.Fprintf(w, "\t{ // %s\n", h.tag) - fmt.Fprintf(w, "\t\t%[1]s%[2]sStr,\n\t\t%[1]s%[2]sIdx,\n", identifier(h.tag), name) - fmt.Fprintln(w, "\t},") - } else if len(h.data) == 0 { - fmt.Fprintln(w, "\t\t{}, //", h.tag) - } else { - fmt.Fprintf(w, "\t{ // %s\n", h.tag) - w.WriteString(h.data) - fmt.Fprintln(w, ",") - w.WriteSlice(h.index) - fmt.Fprintln(w, ",\n\t},") - } -} - -// write the data for the given header as single entries. The size for this data -// was already accounted for in writeEntry. -func (h *header) writeSingle(w *gen.CodeWriter, name string) { - if len(dict) > 0 && dict.contains(h.tag) { - tag := identifier(h.tag) - w.WriteConst(tag+name+"Str", h.data) - - // Note that we create a slice instead of an array. If we use an array - // we need to refer to it as a[:] in other tables, which will cause the - // array to always be included by the linker. See Issue 7651. - w.WriteVar(tag+name+"Idx", h.index) - } -} - -// WriteTable writes an entry for a single Namer. -func (g *group) writeTable(w *gen.CodeWriter, name string) { - start := w.Size - writeKeys(w, name, g.toTags) - w.Size += len(g.headers) * int(reflect.ValueOf(g.headers[0]).Type().Size()) - - fmt.Fprintf(w, "var %sHeaders = [%d]header{\n", name, len(g.headers)) - - title := strings.Title(name) - for _, h := range g.headers { - h.writeEntry(w, title) - } - fmt.Fprintln(w, "}\n") - - for _, h := range g.headers { - h.writeSingle(w, title) - } - n := w.Size - start - fmt.Fprintf(w, "// Total size for %s: %d bytes (%d KB)\n\n", name, n, n/1000) -} - -func (b *builder) writeDictionaries() { - fmt.Fprintln(b.w, "// Dictionary entries of frequent languages") - fmt.Fprintln(b.w, "var (") - parents := parentIndices(b.supported) - - for i, t := range b.supported { - if dict.contains(t) { - ident := identifier(t) - fmt.Fprintf(b.w, "\t%s = Dictionary{ // %s\n", ident, t) - if p := parents[i]; p == -1 { - fmt.Fprintln(b.w, "\t\tnil,") - } else { - fmt.Fprintf(b.w, "\t\t&%s,\n", identifier(b.supported[p])) - } - fmt.Fprintf(b.w, "\t\theader{%[1]sLangStr, %[1]sLangIdx},\n", ident) - fmt.Fprintf(b.w, "\t\theader{%[1]sScriptStr, %[1]sScriptIdx},\n", ident) - fmt.Fprintf(b.w, "\t\theader{%[1]sRegionStr, %[1]sRegionIdx},\n", ident) - fmt.Fprintln(b.w, "\t}") - } - } - fmt.Fprintln(b.w, ")") - - var s string - var a []uint16 - sz := reflect.TypeOf(s).Size() - sz += reflect.TypeOf(a).Size() - sz *= 3 - sz += reflect.TypeOf(&a).Size() - n := int(sz) * len(dict) - fmt.Fprintf(b.w, "// Total size for %d entries: %d bytes (%d KB)\n\n", len(dict), n, n/1000) - - b.w.Size += n -} - -// unique sorts the given lists and removes duplicate entries by swapping them -// past position k, where k is the number of unique values. It returns k. -func unique(a sort.Interface) int { - if a.Len() == 0 { - return 0 - } - sort.Sort(a) - k := 1 - for i := 1; i < a.Len(); i++ { - if a.Less(k-1, i) { - if k != i { - a.Swap(k, i) - } - k++ - } - } - return k -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/tables.go deleted file mode 100644 index 32090dc1..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/display/tables.go +++ /dev/null @@ -1,43658 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package display - -// CLDRVersion is the CLDR version from which the tables in this package are derived. -const CLDRVersion = "27.0.1" - -// Version is deprecated. Use CLDRVersion. -const Version = "27.0.1" - -var parents = [210]int16{ - // Entry 0 - 3F - -1, -1, -1, -1, -1, 4, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 18, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 31, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 41, -1, -1, 44, 44, -1, - -1, -1, -1, 50, -1, -1, -1, -1, - -1, 56, -1, -1, -1, -1, -1, -1, - // Entry 40 - 7F - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - // Entry 80 - BF - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 146, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 159, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 175, -1, 177, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 190, - // Entry C0 - FF - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 203, -1, -1, -1, - 207, -1, -} - -// Number of keys: 604 -var ( - langIndex = tagIndex{ - "aaabaeafakamanarasavayazbabebgbibmbnbobrbscacechcocrcscucvcydadedvdzeeel" + - "eneoeseteufafffifjfofrfygagdglgngugvhahehihohrhthuhyhziaidieigiiikio" + - "isitiujajvkakgkikjkkklkmknkokrkskukvkwkylalblglilnloltlulvmgmhmimkml" + - "mnmrmsmtmynandnengnlnnnonrnvnyocojomorospapiplpsptqurmrnrorurwsascsd" + - "sesgsiskslsmsnsosqsrssstsusvswtatetgthtitktntotrtstttyugukuruzvevivo" + - "wawoxhyiyozazhzu", - "aceachadaadyaebafhagqainakkakzalealnaltanganparcarnaroarparqarwaryarzasa" + - "aseastavkawaazbbalbanbarbasbaxbbcbbjbejbembewbezbfdbfqbhobikbinbjnbk" + - "mblabpybqibrabrhbrxbssbuabugbumbynbyvcadcarcaycchcebcggchbchgchkchmc" + - "hnchochpchrchyckbcopcpscrhcsbdakdardavdeldendgrdindjedoidsbdtpduadum" + - "dyodyudzgebuefieglegyekaelxenmesuewoextfanfilfitfonfrcfrmfrofrpfrrfr" + - "sfurgaagaggangaygbagbzgezgilglkgmhgohgomgongorgotgrbgrcgswgucgurguzg" + - "wihaihakhawhifhilhithmnhsbhsnhupibaibbiloinhizhjamjbojgojmcjprjrbjut" + - "kaakabkackajkamkawkbdkblkcgkdekeakenkfokgpkhakhokhqkhwkiukkjklnkmbko" + - "ikokkoskpekrckrikrjkrlkruksbksfkshkumkutladlaglahlamlezlfnlijlivlktl" + - "molollozltglualuilunluolusluylzhlzzmadmafmagmaimakmanmasmdemdfmdrmen" + - "mermfemgamghmgomicminmncmnimohmosmrjmuamulmusmwlmwrmwvmyemyvmznnanna" + - "pnaqndsnewnianiunjonmgnnhnognonnovnqonsonusnwcnymnynnyonziosaotapagp" + - "alpampappaupcdpdcpdtpeopflphnpmspntponprgproqucqugrajraprarrgnrifrof" + - "romrtmruerugruprwksadsahsamsaqsassatsazsbasbpscnscosdcseesehseiselse" + - "ssgasgsshishnshusidslislysmasmjsmnsmssnksogsrnsrrssystqsuksussuxswbs" + - "wcsycsyrszltcytemteotertettigtivtkltkrtlhtlitlytmhtogtpitrutrvtsdtsi" + - "ttttumtvltwqtyvtzmudmugaumbundvaivecvepvlsvmfvotvrovunwaewalwarwaswb" + - "pwuuxalxmfxogyaoyapyavybbyrlyuezapzblzeazenzghzunzxxzza", - "", - } - langTagsLong = []string{ // 19 elements - "ar-001", - "de-AT", - "de-CH", - "en-AU", - "en-CA", - "en-GB", - "en-US", - "es-419", - "es-ES", - "es-MX", - "fr-CA", - "fr-CH", - "nl-BE", - "pt-BR", - "pt-PT", - "ro-MD", - "sr-Latn", - "zh-Hans", - "zh-Hant", - } -) - -var langHeaders = [210]header{ - { // af - afLangStr, - afLangIdx, - }, - { // agq - "AkanÀmalìÀlabìBɛ̀làlusànBùugɨlìaBɨ̀ŋgalìChɛ̂Dzamɛ̀Gɨ̀lêʔKɨŋgeleSɨ̀kpanìs" + - "KpɛɛshìaKɨ̀fàlàŋsiKɨtsɔŋkaÅ‹EndìHɔŋgalìaÈndònÉ›shìaEgbòÈtalìaDzàkpànêD" + - "zàbvànêKɨmɛ̀kùulîaMàlaeBùumÉ›sɛ̀Nɛ̀kpalìDɔ̂sKpuwndzabìKpÉ”lìsKpotùwgîi" + - "LùmanyìaLushìaLùwandàSòmalìSuedìsTamìTàeTʉʉkìsÙkÉ›lÉ›nìaUudùwVìyÉ›tnàmê" + - "YulùbaChàenêZulùAghem", - []uint16{ // 188 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000b, 0x000b, - 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0020, 0x002b, - 0x002b, 0x002b, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, - 0x0037, 0x0037, 0x0037, 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, - 0x0045, 0x0045, 0x0045, 0x0045, 0x004f, 0x0058, 0x0058, 0x0064, - 0x0064, 0x0064, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x007e, - 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x008b, - 0x008b, 0x0090, 0x0090, 0x0090, 0x0090, 0x009b, 0x009b, 0x009b, - // Entry 40 - 7F - 0x009b, 0x00a9, 0x00a9, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00b6, 0x00b6, 0x00c1, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00d4, 0x00d4, 0x00dc, 0x00dc, 0x00dc, 0x00dc, - 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, - 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, - 0x00dc, 0x00dc, 0x00dc, 0x00e2, 0x00e2, 0x00ee, 0x00ee, 0x00ee, - 0x00f9, 0x00f9, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, - 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x010a, 0x010a, 0x0112, - // Entry 80 - BF - 0x0112, 0x011d, 0x011d, 0x011d, 0x011d, 0x0127, 0x012e, 0x0137, - 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, - 0x0137, 0x0137, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, - 0x0146, 0x0146, 0x014b, 0x014b, 0x014b, 0x014f, 0x014f, 0x014f, - 0x014f, 0x014f, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0164, - 0x016a, 0x016a, 0x016a, 0x0177, 0x0177, 0x0177, 0x0177, 0x0177, - 0x0177, 0x017e, 0x017e, 0x0186, 0x018b, 0x018b, 0x018b, 0x018b, - 0x018b, 0x018b, 0x018b, 0x0190, - }, - }, - { // ak - "AkanAmarikArabikBelarus kasaBÉ”lgeria kasaBengali kasaKyÉ›k kasaGyaamanGre" + - "ek kasaBorÉ”foSpain kasaPɛɛhyia kasaFrÉ›nkyeHausaHindiHangri kasaIndon" + - "ihyia kasaIgboItaly kasaGyapan kasaGyabanis kasaKambodia kasaKorea k" + - "asaMalay kasaBɛɛmis kasaNÉ›pal kasaDɛɛkyePungyabi kasaPÉ”land kasaPɔɔt" + - "ugal kasaRomenia kasaRahyia kasaRewanda kasaSomalia kasaSweden kasaT" + - "amil kasaTaeland kasaTɛɛki kasaUkren kasaUrdu kasaViÉ›tnam kasaYoruba" + - "Kyaena kasaZulu", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000a, 0x000a, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x001c, 0x002a, - 0x002a, 0x002a, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0047, 0x0047, 0x0047, 0x0047, 0x0051, 0x0058, 0x0058, 0x0062, - 0x0062, 0x0062, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0078, - 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x007d, - 0x007d, 0x0082, 0x0082, 0x0082, 0x0082, 0x008d, 0x008d, 0x008d, - // Entry 40 - 7F - 0x008d, 0x009c, 0x009c, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, - 0x00aa, 0x00aa, 0x00b5, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00cf, 0x00cf, 0x00d9, 0x00d9, 0x00d9, 0x00d9, - 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, - 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, - 0x00d9, 0x00d9, 0x00d9, 0x00e3, 0x00e3, 0x00f0, 0x00f0, 0x00f0, - 0x00fb, 0x00fb, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, - 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0110, 0x0110, 0x011c, - // Entry 80 - BF - 0x011c, 0x012b, 0x012b, 0x012b, 0x012b, 0x0137, 0x0142, 0x014e, - 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, - 0x014e, 0x014e, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, - 0x0165, 0x0165, 0x016f, 0x016f, 0x016f, 0x017b, 0x017b, 0x017b, - 0x017b, 0x017b, 0x0187, 0x0187, 0x0187, 0x0187, 0x0187, 0x0191, - 0x019a, 0x019a, 0x019a, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01ad, 0x01ad, 0x01b8, 0x01bc, - }, - }, - { // am - amLangStr, - amLangIdx, - }, - { // ar - arLangStr, - arLangIdx, - }, - { // ar-EG - "الدنماركية", - []uint16{ // 32 elements - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0014, - }, - }, - { // as - "অসমীয়া", - []uint16{ // 10 elements - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0015, - }, - }, - { // asa - "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKichekiKijerumaniKigiri" + - "kiKiingeredhaKihithpaniaKiajemiKifaranthaKihauthaKihindiKihungariKii" + - "ndonethiaKiigboKiitaliaanoKijapaniKijavaKikambodiaKikoreaKimalesiaKi" + - "burmaKinepaliKiholandhiKipunjabiKipolandiKirenoKiromaniaKiruthiKinya" + - "randwaKithomaliKithwidiKitamilKitailandiKiturukiKiukraniaKiurduKivie" + - "tinamuKiyorubaKichinaKidhuluKipare", - []uint16{ // 205 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, - 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, - 0x0031, 0x0031, 0x0031, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, - 0x0042, 0x0042, 0x0042, 0x0042, 0x004a, 0x0055, 0x0055, 0x0060, - 0x0060, 0x0060, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0071, - 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0079, - 0x0079, 0x0080, 0x0080, 0x0080, 0x0080, 0x0089, 0x0089, 0x0089, - // Entry 40 - 7F - 0x0089, 0x0095, 0x0095, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, - 0x00a6, 0x00a6, 0x00ae, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, - 0x00b4, 0x00b4, 0x00be, 0x00be, 0x00c5, 0x00c5, 0x00c5, 0x00c5, - 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, - 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, - 0x00c5, 0x00c5, 0x00c5, 0x00ce, 0x00ce, 0x00d5, 0x00d5, 0x00d5, - 0x00dd, 0x00dd, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, - 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00f0, 0x00f0, 0x00f9, - // Entry 80 - BF - 0x00f9, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x0108, 0x010f, 0x011a, - 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, - 0x011a, 0x011a, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, - 0x012b, 0x012b, 0x0132, 0x0132, 0x0132, 0x013c, 0x013c, 0x013c, - 0x013c, 0x013c, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x014d, - 0x0153, 0x0153, 0x0153, 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, - 0x015e, 0x0166, 0x0166, 0x016d, 0x0174, 0x0174, 0x0174, 0x0174, - 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, - // Entry C0 - FF - 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, - 0x0174, 0x0174, 0x0174, 0x0174, 0x017a, - }, - }, - { // ast - "afarabkhazianuavestanínafrikaansakamharicuaragonésárabeasamésaváricuayma" + - "raazerbaixanubashkirbielorrusubúlgarubislamabambarabengalíntibetanub" + - "retónbosniucatalánchechenuchamorrocorsucreechecueslávicu eclesiástic" + - "uchuvashgalésdanésalemándivehidzongkhaewegrieguinglésesperantoespaño" + - "lestoniuvascupersafulahfinlandésfixanuferoésfrancésfrisón occidental" + - "irlandésgaélicu escocésgalleguguaraníguyaratímanésḥausahebréuhindihi" + - "ri motucroatahaitianuhúngaruarmeniuhererointerlinguaindonesiuinterli" + - "ngueigboyi de Sichuaninupiaqidoislandésitalianuinuktitutxaponésxavan" + - "ésxeorxanukongokikuyukuanyamakazaquistanínkalaallisutkhmercanarésco" + - "reanukanuricachemiréscurdukomicórnicukirguistanínllatínluxemburguésg" + - "andalimburguéslingalalaosianulituanuluba-katangaletónmalgaxemarshall" + - "ésmaorímacedoniumalayalammongolmarathimalayumaltésbirmanunaurundebe" + - "le del nortenepalésndonganeerlandésnoruegu Nynorsknoruegu BokmÃ¥lndeb" + - "ele del surnavajonyanjaoccitanuojibwaoromooriyaoséticupunyabípolacup" + - "ashtuportuguésquechuaromancherundirumanurusurwsánscritusardusindhisa" + - "mi del nortesangocingaléseslovacueslovenusamoanushonasomalínalbanuse" + - "rbiuswatisotho del sursondanéssuecusuaḥilitamiltelugutaxiquistanínta" + - "ilandéstigrinyaturcomanutswanatonganuturcutsongatártarutahitianuuigu" + - "rucraínuruzbequistanínvendavietnamínvalónwolofxhosayiddishyorubazhua" + - "ngchinuzulúachinésacoliadangmeadygheárabe de Túnezafrihiliaghemainua" + - "cadianualabamaaleutgheg d’Albaniaaltai del suringlés antiguuangikaar" + - "améumapuchearaonaarapahoárabe d’Arxeliaarawakárabe de Marruecosárabe" + - " d’Exiptuasullingua de signos americanaasturianukotavaawadhiazerbaix" + - "anu del surbaluchibalinésbávarubasaabamunbatak tobaghomalabejabembab" + - "etawibenabafutbadagabhojpuribikolbinibanjarkomsiksikabishnupriyabakh" + - "tiaribrajbrahuibodoakooseburiatbuginésbulublinmedumbacaddocaribecayu" + - "gaatsamcebuanuchigachibchachagataichuukésmarixíriga chinookchoctawch" + - "ipewyanucheroquicheyennekurdu soranicoptucapiznonturcu de Crimeakash" + - "ubianudakotadargwataitadelawareslavedogribdinkazarmadogribaxu sorbiu" + - "dusun centraldualaneerlandés mediujola-fonyidyuladazagaembúefikemili" + - "anuexipciu antiguuekajukelamitainglés mediuyupik centralewondoestrem" + - "eñufangfilipínfinlandés de Tornedalenfonfrancés cajunfrancés mediufr" + - "ancés antiguuarpitanufrisón del nortefrisón orientalfriulianugagagau" + - "zchinu gangayogbayadari zoroastrianugeezgilbertésgilakialtualemán me" + - "diualtualemán antiguugoan konkanigondigorontalogóticugrebogriegu ant" + - "iguualemán de Suizawayuufrafragusiigwichʼinhaidachinu hakkahawaianuh" + - "indi de Fijihiligaynonhititahmongaltu sorbiuchinu xianghupaibanibibi" + - "oilokoingushingrianuinglés criollu xamaicanulojbanngombamachamexudeo" + - "-persaxudeo-árabejutlandéskara-kalpakkabileñukachinjjukambakawikabar" + - "dianukanembutyapmakondecabuverdianukenyangkorokaingangkhasikhotanésk" + - "oyra chiinikhowarkirmanjkikakoklnkimbundukomi-permyakkonkanikosraean" + - "ukpellekarachay-balkarkriokinaray-akarelianukurukhshambalabafiacolon" + - "ianukumykkutenailadinolangilahndalambalezghianulingua franca novalig" + - "urianulivonianulakotalombardumongolozilatgalianuluba-lulualuisenolun" + - "daluomizoluyiachinu lliterariulazmadurésmafamagahimaithilimakasarman" + - "dingomasaimabamokshamandarmendemerumorisyenírlandés mediumakhuwa-mee" + - "ttometa’micmacminangkabaumanchúmanipurimohawkmossimari occidentalmun" + - "dangmúltiples llingüescreekmirandésmarwarimentawaimyeneerzyamazander" + - "anichinu min nannapolitanunamabaxu alemánnewariniasniueanuao nagakwa" + - "siongiemboonnogainoruegu antiguunovialn’kosotho del nortenuernewari " + - "clásicunyamwezinyankolenyoronzimaturcu otomanupangasinanpampangapapi" + - "amentopalauanupícarualemán de Pennsylvaniapersa antiguualemán palati" + - "nufeniciupiamontéspohnpeianuprusianuprovenzal antiguukʼicheʼrajastha" + - "nínromañolrifianuromboromanírotumanurusynrwasakhaaraméu samaritanusa" + - "mburusasaksantalisaurashtrasangusicilianuscotssardu sassaréssénecase" + - "nakoyraboro senniirlandés antiguutachelhitshansidamosami del surlule" + - " samiinari samiskolt samisoninkesranan tongoserersahofrisón de Sater" + - "landsukumasususumeriucomorianuswahili del Congosiriacu clásicusiriac" + - "usilesianutulutimnetesotetumtigretivtokelauklingontamashektok pisint" + - "arokotumbukatuvalutasawaqtuvinianutamazight del Atlas centraludmurtu" + - "garíticuumbundurootvaivenecianuflamencu occidentalvunjowolayttawaray" + - "chinu wusogayaoyapésyangbenyembacantonészapotecazeelandéstamazight e" + - "stándar de Marruecosensin conteníu llingüísticuárabe estándar modern" + - "ualtualemán de Suizainglés de Canadáinglés de Gran Bretañainglés ame" + - "ricanuespañol de Méxicofrancés de Canadáfrancés de Suizaflamencuport" + - "ugués del Brasilmoldavuserbo-croatachinu simplificáuchinu tradiciona" + - "l", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0004, 0x000e, 0x0018, 0x0021, 0x0023, 0x002b, 0x0034, - 0x003a, 0x0041, 0x0049, 0x004f, 0x005a, 0x0061, 0x006b, 0x0073, - 0x007a, 0x0081, 0x008a, 0x0092, 0x0099, 0x009f, 0x00a7, 0x00af, - 0x00b7, 0x00bc, 0x00c0, 0x00c5, 0x00dc, 0x00e3, 0x00e9, 0x00ef, - 0x00f6, 0x00fc, 0x0104, 0x0107, 0x010d, 0x0114, 0x011d, 0x0125, - 0x012c, 0x0131, 0x0136, 0x013b, 0x0145, 0x014b, 0x0152, 0x015a, - 0x016c, 0x0175, 0x0186, 0x018d, 0x0195, 0x019e, 0x01a4, 0x01ab, - 0x01b2, 0x01b7, 0x01c0, 0x01c6, 0x01ce, 0x01d6, 0x01dd, 0x01e3, - // Entry 40 - 7F - 0x01ee, 0x01f7, 0x0202, 0x0206, 0x0213, 0x021a, 0x021d, 0x0226, - 0x022e, 0x0237, 0x023f, 0x0247, 0x024f, 0x0254, 0x025a, 0x0262, - 0x0270, 0x027b, 0x0280, 0x0288, 0x028f, 0x0295, 0x02a0, 0x02a5, - 0x02a9, 0x02b1, 0x02be, 0x02c5, 0x02d2, 0x02d7, 0x02e2, 0x02e9, - 0x02f1, 0x02f8, 0x0304, 0x030a, 0x0311, 0x031c, 0x0322, 0x032b, - 0x0334, 0x033a, 0x0341, 0x0347, 0x034e, 0x0355, 0x035a, 0x036b, - 0x0373, 0x0379, 0x0384, 0x0393, 0x03a2, 0x03b1, 0x03b7, 0x03bd, - 0x03c5, 0x03cb, 0x03d0, 0x03d5, 0x03dd, 0x03e5, 0x03e5, 0x03eb, - // Entry 80 - BF - 0x03f1, 0x03fb, 0x0402, 0x040a, 0x040f, 0x0415, 0x0419, 0x041b, - 0x0425, 0x042a, 0x0430, 0x043e, 0x0443, 0x044c, 0x0454, 0x045c, - 0x0463, 0x0468, 0x0470, 0x0476, 0x047c, 0x0481, 0x048e, 0x0497, - 0x049c, 0x04a5, 0x04aa, 0x04b0, 0x04be, 0x04c8, 0x04d0, 0x04d9, - 0x04df, 0x04e6, 0x04eb, 0x04f1, 0x04f9, 0x0502, 0x0507, 0x050e, - 0x0510, 0x051e, 0x0523, 0x052d, 0x052d, 0x0533, 0x0538, 0x053d, - 0x0544, 0x054a, 0x0550, 0x0555, 0x055a, 0x0562, 0x0567, 0x056e, - 0x0574, 0x0584, 0x058c, 0x0591, 0x0595, 0x059d, 0x05a4, 0x05a9, - // Entry C0 - FF - 0x05b9, 0x05c6, 0x05d5, 0x05db, 0x05e2, 0x05e9, 0x05ef, 0x05f6, - 0x0608, 0x060e, 0x0621, 0x0632, 0x0635, 0x0650, 0x0659, 0x065f, - 0x0665, 0x0678, 0x067f, 0x0687, 0x068e, 0x0693, 0x0698, 0x06a2, - 0x06a9, 0x06ad, 0x06b2, 0x06b8, 0x06bc, 0x06c1, 0x06c7, 0x06cf, - 0x06d4, 0x06d8, 0x06de, 0x06e1, 0x06e8, 0x06f3, 0x06fc, 0x0700, - 0x0706, 0x070a, 0x0710, 0x0716, 0x071e, 0x0722, 0x0726, 0x072d, - 0x0732, 0x0738, 0x073e, 0x0743, 0x074a, 0x074f, 0x0756, 0x075e, - 0x0766, 0x076a, 0x0779, 0x0780, 0x078a, 0x0792, 0x079a, 0x07a6, - // Entry 100 - 13F - 0x07ab, 0x07b3, 0x07c2, 0x07cc, 0x07d2, 0x07d8, 0x07dd, 0x07e5, - 0x07ea, 0x07f0, 0x07f5, 0x07fa, 0x07ff, 0x080a, 0x0817, 0x081c, - 0x082d, 0x0837, 0x083c, 0x0842, 0x0847, 0x084b, 0x0853, 0x0862, - 0x0868, 0x086f, 0x087c, 0x0889, 0x088f, 0x0899, 0x089d, 0x08a5, - 0x08bd, 0x08c0, 0x08ce, 0x08dc, 0x08ec, 0x08f4, 0x0905, 0x0915, - 0x091e, 0x0920, 0x0926, 0x092f, 0x0933, 0x0938, 0x0949, 0x094d, - 0x0957, 0x095d, 0x096e, 0x0981, 0x098d, 0x0992, 0x099b, 0x09a2, - 0x09a7, 0x09b5, 0x09c5, 0x09ca, 0x09d0, 0x09d5, 0x09de, 0x09e3, - // Entry 140 - 17F - 0x09ee, 0x09f6, 0x0a03, 0x0a0d, 0x0a13, 0x0a18, 0x0a23, 0x0a2e, - 0x0a32, 0x0a36, 0x0a3c, 0x0a41, 0x0a47, 0x0a4f, 0x0a68, 0x0a6e, - 0x0a74, 0x0a7b, 0x0a86, 0x0a92, 0x0a9c, 0x0aa7, 0x0ab0, 0x0ab6, - 0x0ab9, 0x0abe, 0x0ac2, 0x0acc, 0x0ad3, 0x0ad7, 0x0ade, 0x0aea, - 0x0af1, 0x0af5, 0x0afd, 0x0b02, 0x0b0b, 0x0b17, 0x0b1d, 0x0b26, - 0x0b2a, 0x0b2d, 0x0b35, 0x0b41, 0x0b48, 0x0b51, 0x0b57, 0x0b66, - 0x0b6a, 0x0b73, 0x0b7c, 0x0b82, 0x0b8a, 0x0b8f, 0x0b98, 0x0b9d, - 0x0ba4, 0x0baa, 0x0baf, 0x0bb5, 0x0bba, 0x0bc3, 0x0bd5, 0x0bde, - // Entry 180 - 1BF - 0x0be7, 0x0bed, 0x0bf5, 0x0bfa, 0x0bfe, 0x0c08, 0x0c12, 0x0c19, - 0x0c1e, 0x0c21, 0x0c25, 0x0c2a, 0x0c3a, 0x0c3d, 0x0c45, 0x0c49, - 0x0c4f, 0x0c57, 0x0c5e, 0x0c66, 0x0c6b, 0x0c6f, 0x0c75, 0x0c7b, - 0x0c80, 0x0c84, 0x0c8c, 0x0c9c, 0x0caa, 0x0cb1, 0x0cb7, 0x0cc2, - 0x0cc9, 0x0cd1, 0x0cd7, 0x0cdc, 0x0ceb, 0x0cf2, 0x0d06, 0x0d0b, - 0x0d14, 0x0d1b, 0x0d23, 0x0d28, 0x0d2d, 0x0d38, 0x0d45, 0x0d4f, - 0x0d53, 0x0d5f, 0x0d65, 0x0d69, 0x0d70, 0x0d77, 0x0d7d, 0x0d86, - 0x0d8b, 0x0d9a, 0x0da0, 0x0da6, 0x0db5, 0x0db9, 0x0dc8, 0x0dd0, - // Entry 1C0 - 1FF - 0x0dd8, 0x0ddd, 0x0de2, 0x0de2, 0x0def, 0x0df9, 0x0df9, 0x0e01, - 0x0e0b, 0x0e13, 0x0e1a, 0x0e31, 0x0e31, 0x0e3e, 0x0e4e, 0x0e55, - 0x0e5f, 0x0e5f, 0x0e69, 0x0e71, 0x0e82, 0x0e8b, 0x0e8b, 0x0e97, - 0x0e97, 0x0e97, 0x0e9f, 0x0ea6, 0x0eab, 0x0eb2, 0x0eba, 0x0ebf, - 0x0ebf, 0x0ebf, 0x0ec2, 0x0ec2, 0x0ec7, 0x0ed9, 0x0ee0, 0x0ee5, - 0x0eec, 0x0ef6, 0x0ef6, 0x0efb, 0x0f04, 0x0f09, 0x0f18, 0x0f1f, - 0x0f23, 0x0f23, 0x0f23, 0x0f32, 0x0f43, 0x0f43, 0x0f4c, 0x0f50, - 0x0f50, 0x0f56, 0x0f56, 0x0f56, 0x0f62, 0x0f6b, 0x0f75, 0x0f7f, - // Entry 200 - 23F - 0x0f86, 0x0f86, 0x0f92, 0x0f97, 0x0f9b, 0x0faf, 0x0fb5, 0x0fb9, - 0x0fc0, 0x0fc9, 0x0fda, 0x0fea, 0x0ff1, 0x0ffa, 0x0ffe, 0x1003, - 0x1007, 0x1007, 0x100c, 0x1011, 0x1014, 0x101b, 0x101b, 0x1022, - 0x1022, 0x1022, 0x102a, 0x102a, 0x1033, 0x1033, 0x1039, 0x1039, - 0x1039, 0x1039, 0x1040, 0x1046, 0x104d, 0x1056, 0x1071, 0x1077, - 0x1081, 0x1088, 0x108c, 0x108f, 0x1098, 0x1098, 0x10ab, 0x10ab, - 0x10ab, 0x10ab, 0x10b0, 0x10b0, 0x10b8, 0x10bd, 0x10bd, 0x10bd, - 0x10c5, 0x10c5, 0x10c5, 0x10c9, 0x10cc, 0x10d2, 0x10d9, 0x10de, - // Entry 240 - 27F - 0x10de, 0x10e7, 0x10ef, 0x10ef, 0x10f9, 0x10f9, 0x1119, 0x1119, - 0x1137, 0x1137, 0x114f, 0x114f, 0x1163, 0x1163, 0x1175, 0x118d, - 0x119e, 0x119e, 0x119e, 0x11b1, 0x11c4, 0x11d5, 0x11dd, 0x11f2, - 0x11f2, 0x11f9, 0x1205, 0x1217, 0x1228, - }, - }, - { // az - azLangStr, - azLangIdx, - }, - { // az-Cyrl - "ÐзәрбајҹаналманҹаинÒилиÑҹәиÑпанҹафранÑызҹаиталјанҹајапонҹапортугалҹаруÑÒ¹" + - "ачинҹә", - []uint16{ // 180 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0014, 0x0014, 0x0014, 0x0014, - 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, - 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, - 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0034, 0x0034, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0054, - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - // Entry 40 - 7F - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - 0x0066, 0x0066, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, - 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, - 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, - 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, - 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, - 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, - 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, - // Entry 80 - BF - 0x0074, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, 0x0092, 0x0092, - 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, - 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, - 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, - 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, - 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, - 0x0092, 0x0092, 0x0092, 0x009c, - }, - }, - { // bas - "HÉ”p u akanHÉ”p u amhÄrìkHÉ”p u arâbHÉ”p u bièlòrûsHÉ”p u bûlgârHÉ”p u bɛŋgàli" + - "HÉ”p u cɛ̂kHÉ”p u jamânHÉ”p u gri á·‡kyàHÉ”p u Å‹gisìHÉ”p u panyÄHÉ”p u pÉ›rsì" + - "àHÉ”p u pulàsiHÉ”p u É“ausaHÉ”p u hindìHÉ”p u hɔŋgrìiHÉ”p u indònesìàHÉ”p " + - "u iɓòHÉ”p u italìàHÉ”p u yapànHÉ”p u yavàHÉ”p u kmɛ̂rHÉ”p u kÉ”rēàHÉ”p u ma" + - "kɛ᷆HÉ”p u birmànHÉ”p u nepaá·†lHÉ”p u nlɛ̀ndiHÉ”p u pÉ›njàbiHÉ”p u pÉ”lɔ̄nàHÉ”" + - "p u pÉ”tɔ̄kìHÉ”p u rùmanìàHÉ”p u ruslàndHÉ”p u ruÄndàHÉ”p u somàlîHÉ”p u s" + - "uɛ᷆dHÉ”p u tamuá·†lHÉ”p u tâyHÉ”p u tûrkHÉ”p u ukrÇŽnìàHÉ”p u urdùHÉ”p u vyɛ̄" + - "dnàmHÉ”p u yorÅ«bàHÉ”p u kinàHÉ”p u zulùÆàsàa", - []uint16{ // 214 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000b, 0x001b, 0x001b, - 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0039, 0x0048, - 0x0048, 0x0048, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, - 0x0059, 0x0059, 0x0059, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0073, 0x0073, 0x0073, 0x0073, 0x0085, 0x0093, 0x0093, 0x00a0, - 0x00a0, 0x00a0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00be, - 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00cb, - 0x00cb, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00e9, 0x00e9, 0x00e9, - // Entry 40 - 7F - 0x00e9, 0x00fc, 0x00fc, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, - 0x0117, 0x0117, 0x0124, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, - 0x0130, 0x0130, 0x013e, 0x013e, 0x014d, 0x014d, 0x014d, 0x014d, - 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, - 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, - 0x014d, 0x014d, 0x014d, 0x015c, 0x015c, 0x016a, 0x016a, 0x016a, - 0x0179, 0x0179, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, - 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0199, 0x0199, 0x01ab, - // Entry 80 - BF - 0x01ab, 0x01bd, 0x01bd, 0x01bd, 0x01bd, 0x01ce, 0x01dd, 0x01ec, - 0x01ec, 0x01ec, 0x01ec, 0x01ec, 0x01ec, 0x01ec, 0x01ec, 0x01ec, - 0x01ec, 0x01ec, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, - 0x020a, 0x020a, 0x0219, 0x0219, 0x0219, 0x0224, 0x0224, 0x0224, - 0x0224, 0x0224, 0x0230, 0x0230, 0x0230, 0x0230, 0x0230, 0x0241, - 0x024d, 0x024d, 0x024d, 0x025f, 0x025f, 0x025f, 0x025f, 0x025f, - 0x025f, 0x026e, 0x026e, 0x027a, 0x0286, 0x0286, 0x0286, 0x0286, - 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, - // Entry C0 - FF - 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, - 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, - 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x028e, - }, - }, - { // be - "абхазÑкаÑафрыкаанÑамхарÑкаÑарагонÑкаÑарабÑкаÑаÑамÑкаÑаварÑкаÑаймараазерб" + - "айджанÑкаÑбашкірÑкаÑбеларуÑкаÑбалгарÑкаÑбенгальÑкаÑбрÑтонÑкаÑбаÑній" + - "ÑкаÑкаталонÑкаÑчачÑнÑкаÑчÑшÑкаÑчувашÑкаÑвалійÑкаÑдацкаÑнÑмецкаÑгрÑц" + - "каÑанглійÑкаÑÑÑперантаіÑпанÑкаÑÑÑтонÑкаÑбаÑкÑкаÑфарÑіфінÑкаÑфарÑÑ€Ñк" + - "аÑфранцузÑкаÑфрызÑкаÑірландÑкаÑшатландÑÐºÐ°Ñ Ð³ÑльÑкаÑгаліÑійÑкаÑгуара" + - "нігуÑрацііўрытхіндзіхарвацкаÑвенгерÑкаÑармÑнÑкаÑінтÑрлінгваінданезі" + - "йÑкаÑінтÑрлінгвеіÑландÑкаÑітальÑнÑкаÑÑпонÑкаÑÑванÑкаÑгрузінÑкаÑказа" + - "Ñ…ÑкаÑканнадакарÑйÑкаÑкурдÑкаÑлацінÑкаÑлінгалалаоÑкаÑлітоўÑкаÑлатышÑ" + - "каÑмакедонÑкаÑмалаÑламÑкаÑмангольÑкаÑмаратхімалайÑкаÑмальтыйÑкаÑнеп" + - "альÑкаÑгаландÑкаÑнарвежÑÐºÐ°Ñ (нюнорÑк)нарвÑÑÐºÐ°Ñ Ð±ÑƒÐºÐ¼Ð°Ð»Ð¿Ñ€Ð°Ð²Ð°Ð½ÑальÑкаÑ" + - "панджабіпольÑкаÑпуштупартугальÑкаÑрумынÑкаÑруÑкаÑÑанÑкрытÑіндхіÑінг" + - "альÑкаÑÑлавацкаÑÑлавенÑкаÑÑамалійÑкаÑалбанÑкаÑÑербÑкаÑÑуданÑкаÑшвед" + - "ÑкаÑÑуахілітамільÑкаÑÑ‚ÑлугутайÑкаÑтыгрыньÑтуркменÑкаÑтурÑцкаÑтатарÑ" + - "каÑуйгурÑкаÑукраінÑкаÑурдуузбекÑкаÑв’етнамÑкаÑхоÑаідышкітайÑкаÑзулу" + - "адыгейÑкаÑакадзкаÑалеуцкаÑÑтараанглійÑкаÑарамейÑкаÑаÑтурыйÑкаÑбурац" + - "каÑкопцкаÑÑтараÑгіпецкаÑтагальÑкаÑÑтарафранцузÑкаÑÑтарагрÑцкаÑÑкуцк" + - "аÑклінгонневÑÐ´Ð¾Ð¼Ð°Ñ Ð¼Ð¾Ð²Ð°Ð½ÑÐ¼ÐµÑ†ÐºÐ°Ñ (аўÑÑ‚Ñ€.)нÑÐ¼ÐµÑ†ÐºÐ°Ñ (швейц.)англійÑкаÑ" + - " (аўÑтрал.)англійÑÐºÐ°Ñ (канад.)англійÑÐºÐ°Ñ (ЗШÐ)Ñ–ÑпанÑÐºÐ°Ñ (лацінаамер." + - ")французÑÐºÐ°Ñ (канад.)французÑÐºÐ°Ñ (швейц.)фламандÑкаÑпартугальÑÐºÐ°Ñ (б" + - "разіл.)малдаўÑкаÑÑербÑка-харвацкаÑÑÐ¿Ñ€Ð¾ÑˆÑ‡Ð°Ð½Ð°Ñ ÐºÑ–Ñ‚Ð°Ð¹ÑкаÑÑ‚Ñ€Ð°Ð´Ñ‹Ñ†Ñ‹Ð¹Ð½Ð°Ñ Ðº" + - "ітайÑкаÑ", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0012, 0x0012, 0x0024, 0x0024, 0x0036, 0x004a, - 0x005a, 0x006a, 0x007a, 0x0086, 0x00a4, 0x00b8, 0x00cc, 0x00e0, - 0x00e0, 0x00e0, 0x00f6, 0x00f6, 0x010a, 0x011e, 0x0134, 0x0146, - 0x0146, 0x0146, 0x0146, 0x0154, 0x0154, 0x0166, 0x0178, 0x0184, - 0x0194, 0x0194, 0x0194, 0x0194, 0x01a2, 0x01b6, 0x01c8, 0x01da, - 0x01ec, 0x01fc, 0x0206, 0x0206, 0x0214, 0x0214, 0x0226, 0x023c, - 0x024c, 0x0260, 0x0287, 0x029d, 0x02ab, 0x02b9, 0x02b9, 0x02b9, - 0x02c3, 0x02cf, 0x02cf, 0x02e1, 0x02e1, 0x02f5, 0x0307, 0x0307, - // Entry 40 - 7F - 0x031d, 0x0337, 0x034d, 0x034d, 0x034d, 0x034d, 0x034d, 0x0361, - 0x0377, 0x0377, 0x0387, 0x0397, 0x03ab, 0x03ab, 0x03ab, 0x03ab, - 0x03bd, 0x03bd, 0x03bd, 0x03cb, 0x03dd, 0x03dd, 0x03dd, 0x03ed, - 0x03ed, 0x03ed, 0x03ed, 0x03ff, 0x03ff, 0x03ff, 0x03ff, 0x040d, - 0x041b, 0x042d, 0x042d, 0x043f, 0x043f, 0x043f, 0x043f, 0x0455, - 0x046d, 0x0483, 0x0491, 0x04a3, 0x04b9, 0x04b9, 0x04b9, 0x04b9, - 0x04cd, 0x04cd, 0x04e1, 0x0506, 0x0525, 0x0525, 0x0525, 0x0525, - 0x0541, 0x0541, 0x0541, 0x0541, 0x0541, 0x0551, 0x0551, 0x0561, - // Entry 80 - BF - 0x056b, 0x0585, 0x0585, 0x0585, 0x0585, 0x0597, 0x05a3, 0x05a3, - 0x05b3, 0x05b3, 0x05bf, 0x05bf, 0x05bf, 0x05d5, 0x05e7, 0x05fb, - 0x05fb, 0x05fb, 0x0611, 0x0623, 0x0633, 0x0633, 0x0633, 0x0645, - 0x0655, 0x0663, 0x0677, 0x0683, 0x0683, 0x0691, 0x06a1, 0x06b7, - 0x06b7, 0x06b7, 0x06c7, 0x06c7, 0x06d9, 0x06d9, 0x06eb, 0x06ff, - 0x0707, 0x0719, 0x0719, 0x0730, 0x0730, 0x0730, 0x0730, 0x0738, - 0x0740, 0x0740, 0x0740, 0x0752, 0x075a, 0x075a, 0x075a, 0x075a, - 0x076e, 0x076e, 0x076e, 0x076e, 0x076e, 0x077e, 0x077e, 0x078e, - // Entry C0 - FF - 0x078e, 0x078e, 0x07ac, 0x07ac, 0x07c0, 0x07c0, 0x07c0, 0x07c0, - 0x07c0, 0x07c0, 0x07c0, 0x07c0, 0x07c0, 0x07c0, 0x07d6, 0x07d6, - 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, - 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, - 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, - 0x07d6, 0x07d6, 0x07d6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, - 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, - 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, - // Entry 100 - 13F - 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, - 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, - 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x0810, - 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, 0x0824, - 0x0824, 0x0824, 0x0824, 0x0824, 0x0844, 0x0844, 0x0844, 0x0844, - 0x0844, 0x0844, 0x0844, 0x0844, 0x0844, 0x0844, 0x0844, 0x0844, - 0x0844, 0x0844, 0x0844, 0x0844, 0x0844, 0x0844, 0x0844, 0x0844, - 0x0844, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - // Entry 140 - 17F - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - // Entry 180 - 1BF - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - // Entry 1C0 - 1FF - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x085c, 0x086a, 0x086a, 0x086a, 0x086a, - 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, - 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, - 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, - // Entry 200 - 23F - 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, - 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, - 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x086a, 0x0878, - 0x0878, 0x0878, 0x0878, 0x0878, 0x0878, 0x0878, 0x0878, 0x0878, - 0x0878, 0x0878, 0x0878, 0x0878, 0x0878, 0x0878, 0x0878, 0x0878, - 0x0878, 0x0878, 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, - 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, - 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, - // Entry 240 - 27F - 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, 0x0893, - 0x0893, 0x0893, 0x0893, 0x08b1, 0x08cf, 0x08f5, 0x0917, 0x0917, - 0x0934, 0x095e, 0x095e, 0x095e, 0x0982, 0x09a6, 0x09bc, 0x09e6, - 0x09e6, 0x09fa, 0x0a1b, 0x0a42, 0x0a6b, - }, - }, - { // bem - "Ichi AkanIchi AmhariIchi ArabIchi BelarusIchi BulgarianiIchi BengaliIchi" + - " ChekiIchi JemaniIchi GrikiIchi SunguIchi SpanishiIchi PesiaIchi Fre" + - "nchiIchi HausaIchi HinduIchi HangarianIchi IndonesianiIchi IboIchi I" + - "talianiIchi JapanisiIchi JavanisiIchi KhmerIchi KorianiIchi Maleshan" + - "iIchi BurmaIchi NepaliIchi DachiIchi PunjabiIchi PolishiIchi Potogis" + - "iIchi RomanianiIchi RusianiIchi RwandaIchi SomaliaIchi SwideniIchi T" + - "amilIchi ThaiIchi TakishiIchi UkranianiIchi UruduIchi VietinamuIchi " + - "YorubaIchi ChainisiIchi ZuluIchibemba", - []uint16{ // 219 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0014, 0x0014, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0029, 0x0038, - 0x0038, 0x0038, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, - 0x0044, 0x0044, 0x0044, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, - 0x0059, 0x0059, 0x0059, 0x0059, 0x0063, 0x006d, 0x006d, 0x007a, - 0x007a, 0x007a, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0090, - 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x009a, - 0x009a, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00b2, 0x00b2, 0x00b2, - // Entry 40 - 7F - 0x00b2, 0x00c2, 0x00c2, 0x00ca, 0x00ca, 0x00ca, 0x00ca, 0x00ca, - 0x00d7, 0x00d7, 0x00e4, 0x00f1, 0x00f1, 0x00f1, 0x00f1, 0x00f1, - 0x00f1, 0x00f1, 0x00fb, 0x00fb, 0x0107, 0x0107, 0x0107, 0x0107, - 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, - 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, - 0x0107, 0x0107, 0x0107, 0x0115, 0x0115, 0x011f, 0x011f, 0x011f, - 0x012a, 0x012a, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0140, 0x0140, 0x014c, - // Entry 80 - BF - 0x014c, 0x0159, 0x0159, 0x0159, 0x0159, 0x0167, 0x0173, 0x017e, - 0x017e, 0x017e, 0x017e, 0x017e, 0x017e, 0x017e, 0x017e, 0x017e, - 0x017e, 0x017e, 0x018a, 0x018a, 0x018a, 0x018a, 0x018a, 0x018a, - 0x0196, 0x0196, 0x01a0, 0x01a0, 0x01a0, 0x01a9, 0x01a9, 0x01a9, - 0x01a9, 0x01a9, 0x01b5, 0x01b5, 0x01b5, 0x01b5, 0x01b5, 0x01c3, - 0x01cd, 0x01cd, 0x01cd, 0x01db, 0x01db, 0x01db, 0x01db, 0x01db, - 0x01db, 0x01e6, 0x01e6, 0x01f3, 0x01fc, 0x01fc, 0x01fc, 0x01fc, - 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, - // Entry C0 - FF - 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, - 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, - 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, - 0x01fc, 0x01fc, 0x0205, - }, - }, - { // bez - "HiakanHiamhariHiharabuHibelarusiHibulgariaHibanglaHichekiHijerumaniHigir" + - "ikiHiingerezaHihispaniaHiajemiHifaransaHihausaHihindiHihungariHiindo" + - "nesiaHiiboHiitalianoHijapaniHijavaHikambodiaHikoreaHimalesiaHiburmaH" + - "inepaliHiholanziHipunjabiHipolandiHilenoHilomaniaHilusiHinyarwandaHi" + - "somaliHiswidiHitamilHitailandHitulukiHiukraniaHiurduHivietinamuHiyor" + - "ubaHichinaHizuluHibena", - []uint16{ // 221 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0020, 0x002a, - 0x002a, 0x002a, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0055, 0x0055, 0x005f, - 0x005f, 0x005f, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x006f, - 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0076, - 0x0076, 0x007d, 0x007d, 0x007d, 0x007d, 0x0086, 0x0086, 0x0086, - // Entry 40 - 7F - 0x0086, 0x0091, 0x0091, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, - 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, - 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, - 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, - // Entry 80 - BF - 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, - 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, - 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, - 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0131, 0x0131, 0x0131, - 0x0131, 0x0131, 0x0139, 0x0139, 0x0139, 0x0139, 0x0139, 0x0142, - 0x0148, 0x0148, 0x0148, 0x0153, 0x0153, 0x0153, 0x0153, 0x0153, - 0x0153, 0x015b, 0x015b, 0x0162, 0x0168, 0x0168, 0x0168, 0x0168, - 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, - // Entry C0 - FF - 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, - 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, - 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, - 0x0168, 0x0168, 0x0168, 0x0168, 0x016e, - }, - }, - { // bg - bgLangStr, - bgLangIdx, - }, - { // bm - "akankanamarikikanlarabukanbiyelorisikanbuligarikanbamanakanbÉ›ngalikancÉ›k" + - "ikanalimaɲikangÉ›rÉ›sikanangilÉ›kanesipaɲolkanperisanikantubabukanawusa" + - "kaninidikanoÅ‹irikanÆndonezikanigibokanitalikanzapÉ”nekanjavanekankamb" + - "ojikankorekanmalÉ›zikanbirimanikannepalekanolandekanpÉ›nijabikanpolone" + - "kanpÉ”ritigalikanrumanikanirisikanruwandakansomalikansuwÉ›dikantamulik" + - "antayikanturikikanukÉ›rÉ›nikanurudukanwiyÉ›tinamukanyorubakansiniwakanz" + - "ulukan", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0011, 0x0011, - 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x0027, 0x0032, - 0x0032, 0x003b, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, - 0x0046, 0x0046, 0x0046, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, - 0x0059, 0x0059, 0x0059, 0x0059, 0x0064, 0x006e, 0x006e, 0x007a, - 0x007a, 0x007a, 0x0085, 0x0085, 0x0085, 0x0085, 0x0085, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x0096, - 0x0096, 0x009e, 0x009e, 0x009e, 0x009e, 0x00a7, 0x00a7, 0x00a7, - // Entry 40 - 7F - 0x00a7, 0x00b3, 0x00b3, 0x00bb, 0x00bb, 0x00bb, 0x00bb, 0x00bb, - 0x00c3, 0x00c3, 0x00cd, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, - 0x00d6, 0x00d6, 0x00e0, 0x00e0, 0x00e7, 0x00e7, 0x00e7, 0x00e7, - 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, - 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, - 0x00e7, 0x00e7, 0x00e7, 0x00f1, 0x00f1, 0x00fc, 0x00fc, 0x00fc, - 0x0105, 0x0105, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, - 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x011a, 0x011a, 0x0123, - // Entry 80 - BF - 0x0123, 0x0131, 0x0131, 0x0131, 0x0131, 0x013a, 0x0142, 0x014c, - 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, - 0x014c, 0x014c, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, - 0x015f, 0x015f, 0x0168, 0x0168, 0x0168, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0184, - 0x018c, 0x018c, 0x018c, 0x019a, 0x019a, 0x019a, 0x019a, 0x019a, - 0x019a, 0x01a3, 0x01a3, 0x01ac, 0x01b3, - }, - }, - { // bn - bnLangStr, - bnLangIdx, - }, - { // bo - "བོད་སà¾à½‘་རྫོང་à½à½§à½²à½“་དིརི་པིན་སà¾à½‘་ནེ་པ་ལིཨུ་རུ་སུ་སà¾à½‘་རྒྱ་སà¾à½‘་", - []uint16{ // 180 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, - 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, - 0x0018, 0x0018, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, - 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, - 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, - 0x002a, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - // Entry 40 - 7F - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, - 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, - 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, - 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, - 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, - 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, - 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, - // Entry 80 - BF - 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0099, 0x0099, - 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, - 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, - 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, - 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, - 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, - 0x0099, 0x0099, 0x0099, 0x00b1, - }, - }, - {}, // bo-IN - { // br - "afarabkhazegavestegafrikaansakanamharegaragonegarabegasamegavaraymaraaze" + - "ribachkirbelarusegbulgaregbislamabambarabengalitibetanegbrezhonegbos" + - "negkatalanegtchetchenegchamorrukorsegkritchekegslavoneg iliztchouvat" + - "chkembraegdanegalamanegdivehidzongkhaewegresianegsaoznegesperantegsp" + - "agnolegestonegeuskaregpersegfinnegfidjiegfaeroeggallegfrizeg ar Cʼho" + - "rnôgiwerzhonegskoseggalizegguaranigujaratimanaveghaousahebraeghindih" + - "iri motukroateghaitieghungaregarmenianeghererointerlinguaindonezegin" + - "terlingueigboyieg Sichuaninupiaqidoislandegitalianeginuktitutjapaneg" + - "javanegjorjianegkongokikuyukwanyamakazakkhmerkanaregkoreanegkanourik" + - "ashmirikurdegkerneveuregkirgizlatinluksembourgeggandalimbourgeglinga" + - "lalaoseglituanegluba-katangalatviegmalgachegmarshallmaorimakedonegma" + - "layalammongolegmarathimalaysegmaltegbirmanegnauruegndebele an Norzhn" + - "epalegndonganederlandegnorvegeg nynorsknorvegeg bokmÃ¥lndebele ar Sun" + - "avacʼhonyanjaokitanegojibwaoriyaosetegpunjabipalipolonegpachtoportug" + - "alegkechuaegromañchegrundiroumanegrusianegkinyarwandasanskritegsarde" + - "gsindhisámi an Norzhsangosinghalegslovakegslovenegsamoanshonasomalia" + - "lbanegserbegswatisotho ar Susundanegsvedegswahilitamilegtelougoutadj" + - "ikthaitigrignaturkmenegtswanatongaturkegtsongatatartahitianegouigour" + - "egukrainegourdououzbekegvendavietnamegvolapükwallonegwolofxhosayiddi" + - "shyoroubazhuangsinaegzoulouegachinegacoliadangmeadygeiegarabeg Tuniz" + - "iaafrihiliaghemainouegakadegalabamaegaleouteggegegaltaieg ar Suhensa" + - "oznegarameegaraoukanegarapahoarabeg Aljeriaarawakegarabeg Marokoarab" + - "eg Egiptasuawadhiazeri ar Subaloutchibalinegbavariegbasaabedawiegbem" + - "babenabhojpuribikolbinibrajbrahwegbodobouriatbugiblincaddokaribegceb" + - "uanochibchamariegchoktawchipewyancherokeecheyennekurdeg soranikopteg" + - "turkeg Krimeakachoubegdakotadargwadelawaredogribdinkadogriizelsorabe" + - "gnederlandeg krenndyulaembuefikhenegiptegekajukelamegkrennsaoznegewo" + - "ndofangfilipinegfonkrenncʼhalleghencʼhallegarpitanegfrizeg an Norzhf" + - "rizeg ar Reterfrioulaneggagagaouzegsinaeg Gangayogbayagezeggilberteg" + - "krennalamaneg uhelhenalamaneg uhelgorontalogoteggrebohencʼhresianega" + - "lamaneg Suishaidasinaeg Hakkahawaieghiligaynonhmonguhelsorabegsinaeg" + - " Xianhupaibanibibioingouchegyuzev-persegyuzev-arabegkarakalpakkabile" + - "gkachinkambakabardegkabuverdianukhasikhotanegkimbundukonkanikosraekp" + - "ellekaratchay-balkarkareliegkurukhkutenailadinolahndalambalezgilingu" + - "a franca novaliguriegmongoloziluba-lulualuisenolundaluolushailuyiasi" + - "naeg lennegelmagahimaithilimasaimokshamandarmendemorisegkrenniwerzho" + - "negmanchoumanipurimohawkmarieg ar Cʼhornôgyezhoù liesmuskogierzasina" + - "eg Min Nannapolitanegalamaneg izelnewariniasniuenogayhennorsegnovial" + - "sotho an Norzhnewari klaselnyamwezinyankolenyoroosageturkeg otomanpa" + - "ngasinanpahlavipampangapapiamentopalaupikardegalamaneg Pennsylvaniah" + - "enbersegfenikianegpiemontegpontegpohnpeihenbruseghenbrovañsegrajasth" + - "anirapanuirarotongaromagnolegromboromaniegaroumanegrwasandaweyakoute" + - "garameeg ar Samaritanedsasaksantalisikiliegskotegsasaresegheniwerzho" + - "negshanarabeg Tchadsidamosámi ar Susámi LuleÃ¥sámi Inarisámi Skoltson" + - "inkesogdiegserersumeregkomoregsirieg klaselsiriegtoulouegterenotetum" + - "tigreanegtivtokelauklingontinglittamachegnyasa tongatok pisintsimshi" + - "antumbukatuvalutouvaoudmourtegougaritegumbunduyezh dianavvaiflandrez" + - "eg ar c’hornôgvotyakegwalserwalamowaraywashosinaeg Wukalmoukyaoyapeg" + - "kantonegzapotegBlisszelandegzenagatamacheg Maroko standartzunidiyezh" + - "arabeg modernalamaneg Aostriaalamaneg uhel Suissaozneg Aostraliasaoz" + - "neg Kanadasaozneg Breizh-Veursaozneg Amerikaspagnoleg Amerika latins" + - "pagnoleg Europaspagnoleg Mecʼhikogalleg Kanadagalleg Suisflandrezegp" + - "ortugaleg Brazilportugaleg Europamoldovegserb-kroategsinaeg eeunaets" + - "inaeg hengounel", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0004, 0x000c, 0x0013, 0x001c, 0x0020, 0x0027, 0x002f, - 0x0035, 0x003b, 0x003f, 0x0045, 0x004a, 0x0051, 0x005a, 0x0062, - 0x0069, 0x0070, 0x0077, 0x0080, 0x0089, 0x008f, 0x0098, 0x00a3, - 0x00ab, 0x00b1, 0x00b4, 0x00bb, 0x00c8, 0x00d2, 0x00da, 0x00df, - 0x00e7, 0x00ed, 0x00f5, 0x00f8, 0x0101, 0x0108, 0x0112, 0x011b, - 0x0122, 0x012a, 0x0130, 0x0130, 0x0136, 0x013d, 0x0144, 0x014a, - 0x015e, 0x0168, 0x016e, 0x0175, 0x017c, 0x0184, 0x018b, 0x0191, - 0x0198, 0x019d, 0x01a6, 0x01ad, 0x01b4, 0x01bc, 0x01c6, 0x01cc, - // Entry 40 - 7F - 0x01d7, 0x01e0, 0x01eb, 0x01ef, 0x01fb, 0x0202, 0x0205, 0x020d, - 0x0216, 0x021f, 0x0226, 0x022d, 0x0236, 0x023b, 0x0241, 0x0249, - 0x024e, 0x024e, 0x0253, 0x025a, 0x0262, 0x0269, 0x0271, 0x0277, - 0x0277, 0x0282, 0x0288, 0x028d, 0x029a, 0x029f, 0x02a9, 0x02b0, - 0x02b6, 0x02be, 0x02ca, 0x02d1, 0x02da, 0x02e2, 0x02e7, 0x02f0, - 0x02f9, 0x0301, 0x0308, 0x0310, 0x0316, 0x031e, 0x0325, 0x0335, - 0x033c, 0x0342, 0x034d, 0x035d, 0x036d, 0x037a, 0x0383, 0x0389, - 0x0391, 0x0397, 0x0397, 0x039c, 0x03a2, 0x03a9, 0x03ad, 0x03b4, - // Entry 80 - BF - 0x03ba, 0x03c4, 0x03cc, 0x03d6, 0x03db, 0x03e3, 0x03eb, 0x03f6, - 0x0400, 0x0406, 0x040c, 0x041a, 0x041f, 0x0428, 0x0430, 0x0438, - 0x043e, 0x0443, 0x0449, 0x0450, 0x0456, 0x045b, 0x0466, 0x046e, - 0x0474, 0x047b, 0x0482, 0x048a, 0x0490, 0x0494, 0x049c, 0x04a5, - 0x04ab, 0x04b0, 0x04b6, 0x04bc, 0x04c1, 0x04cb, 0x04d4, 0x04dc, - 0x04e2, 0x04ea, 0x04ef, 0x04f8, 0x0500, 0x0508, 0x050d, 0x0512, - 0x0519, 0x0520, 0x0526, 0x052c, 0x0534, 0x053b, 0x0540, 0x0547, - 0x054f, 0x055d, 0x0565, 0x056a, 0x0571, 0x0577, 0x0580, 0x0588, - // Entry C0 - FF - 0x058d, 0x059a, 0x05a4, 0x05a4, 0x05ab, 0x05b5, 0x05b5, 0x05bc, - 0x05ca, 0x05d2, 0x05df, 0x05eb, 0x05ee, 0x05ee, 0x05ee, 0x05ee, - 0x05f4, 0x05ff, 0x0608, 0x060f, 0x0617, 0x061c, 0x061c, 0x061c, - 0x061c, 0x0624, 0x0629, 0x0629, 0x062d, 0x062d, 0x062d, 0x0635, - 0x063a, 0x063e, 0x063e, 0x063e, 0x063e, 0x063e, 0x063e, 0x0642, - 0x0649, 0x064d, 0x064d, 0x0654, 0x0658, 0x0658, 0x065c, 0x065c, - 0x0661, 0x0668, 0x0668, 0x0668, 0x066f, 0x066f, 0x0676, 0x0676, - 0x0676, 0x067c, 0x067c, 0x0683, 0x068c, 0x0694, 0x069c, 0x06a9, - // Entry 100 - 13F - 0x06af, 0x06af, 0x06bc, 0x06c5, 0x06cb, 0x06d1, 0x06d1, 0x06d9, - 0x06d9, 0x06df, 0x06e4, 0x06e4, 0x06e9, 0x06f4, 0x06f4, 0x06f4, - 0x0705, 0x0705, 0x070a, 0x070a, 0x070e, 0x0712, 0x0712, 0x071c, - 0x0722, 0x0728, 0x0734, 0x0734, 0x073a, 0x073a, 0x073e, 0x0747, - 0x0747, 0x074a, 0x074a, 0x0758, 0x0764, 0x076d, 0x077c, 0x078b, - 0x0795, 0x0797, 0x07a0, 0x07aa, 0x07ae, 0x07b3, 0x07b3, 0x07b8, - 0x07c1, 0x07c1, 0x07d3, 0x07e3, 0x07e3, 0x07e3, 0x07ec, 0x07f1, - 0x07f6, 0x0805, 0x0812, 0x0812, 0x0812, 0x0812, 0x0812, 0x0817, - // Entry 140 - 17F - 0x0823, 0x082a, 0x082a, 0x0834, 0x0834, 0x0839, 0x0844, 0x084f, - 0x0853, 0x0857, 0x085d, 0x085d, 0x0866, 0x0866, 0x0866, 0x0866, - 0x0866, 0x0866, 0x0872, 0x087e, 0x087e, 0x0888, 0x088f, 0x0895, - 0x0895, 0x089a, 0x089a, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08ae, - 0x08ae, 0x08ae, 0x08ae, 0x08b3, 0x08bb, 0x08bb, 0x08bb, 0x08bb, - 0x08bb, 0x08bb, 0x08c3, 0x08c3, 0x08ca, 0x08d0, 0x08d6, 0x08e6, - 0x08e6, 0x08e6, 0x08ee, 0x08f4, 0x08f4, 0x08f4, 0x08f4, 0x08f4, - 0x08fb, 0x0901, 0x0901, 0x0907, 0x090c, 0x0911, 0x0923, 0x092b, - // Entry 180 - 1BF - 0x092b, 0x092b, 0x092b, 0x0930, 0x0934, 0x0934, 0x093e, 0x0945, - 0x094a, 0x094d, 0x0953, 0x0958, 0x0967, 0x0967, 0x0967, 0x0967, - 0x096d, 0x0975, 0x0975, 0x0975, 0x097a, 0x097a, 0x0980, 0x0986, - 0x098b, 0x098b, 0x0992, 0x09a1, 0x09a1, 0x09a1, 0x09a1, 0x09a1, - 0x09a8, 0x09b0, 0x09b6, 0x09b6, 0x09ca, 0x09ca, 0x09d6, 0x09dd, - 0x09dd, 0x09dd, 0x09dd, 0x09dd, 0x09e1, 0x09e1, 0x09ef, 0x09fa, - 0x09fa, 0x0a07, 0x0a0d, 0x0a11, 0x0a15, 0x0a15, 0x0a15, 0x0a15, - 0x0a1a, 0x0a23, 0x0a29, 0x0a29, 0x0a37, 0x0a37, 0x0a44, 0x0a4c, - // Entry 1C0 - 1FF - 0x0a54, 0x0a59, 0x0a59, 0x0a5e, 0x0a6b, 0x0a75, 0x0a7c, 0x0a84, - 0x0a8e, 0x0a93, 0x0a9b, 0x0ab0, 0x0ab0, 0x0ab9, 0x0ab9, 0x0ac3, - 0x0acc, 0x0ad2, 0x0ad9, 0x0ae2, 0x0aef, 0x0aef, 0x0aef, 0x0af9, - 0x0b00, 0x0b09, 0x0b13, 0x0b13, 0x0b18, 0x0b20, 0x0b20, 0x0b20, - 0x0b20, 0x0b29, 0x0b2c, 0x0b33, 0x0b3b, 0x0b51, 0x0b51, 0x0b56, - 0x0b5d, 0x0b5d, 0x0b5d, 0x0b5d, 0x0b65, 0x0b6b, 0x0b74, 0x0b74, - 0x0b74, 0x0b74, 0x0b74, 0x0b74, 0x0b81, 0x0b81, 0x0b81, 0x0b85, - 0x0b91, 0x0b97, 0x0b97, 0x0b97, 0x0ba2, 0x0bae, 0x0bb9, 0x0bc4, - // Entry 200 - 23F - 0x0bcb, 0x0bd2, 0x0bd2, 0x0bd7, 0x0bd7, 0x0bd7, 0x0bd7, 0x0bd7, - 0x0bde, 0x0be5, 0x0be5, 0x0bf2, 0x0bf8, 0x0bf8, 0x0c00, 0x0c00, - 0x0c00, 0x0c06, 0x0c0b, 0x0c14, 0x0c17, 0x0c1e, 0x0c1e, 0x0c25, - 0x0c2c, 0x0c2c, 0x0c34, 0x0c3f, 0x0c48, 0x0c48, 0x0c48, 0x0c48, - 0x0c51, 0x0c51, 0x0c58, 0x0c5e, 0x0c5e, 0x0c63, 0x0c63, 0x0c6d, - 0x0c76, 0x0c7d, 0x0c88, 0x0c8b, 0x0c8b, 0x0c8b, 0x0ca4, 0x0ca4, - 0x0cac, 0x0cac, 0x0cac, 0x0cb2, 0x0cb8, 0x0cbd, 0x0cc2, 0x0cc2, - 0x0ccb, 0x0cd2, 0x0cd2, 0x0cd2, 0x0cd5, 0x0cda, 0x0cda, 0x0cda, - // Entry 240 - 27F - 0x0cda, 0x0ce2, 0x0ce9, 0x0cee, 0x0cf6, 0x0cfc, 0x0d14, 0x0d18, - 0x0d1e, 0x0d1e, 0x0d2b, 0x0d3b, 0x0d4d, 0x0d5e, 0x0d6c, 0x0d7f, - 0x0d8e, 0x0da5, 0x0db5, 0x0dc8, 0x0dd5, 0x0de0, 0x0dea, 0x0dfb, - 0x0e0c, 0x0e14, 0x0e20, 0x0e2e, 0x0e3e, - }, - }, - { // brx - "अबà¥à¤–ाज़ियनà¥à¤…वसà¥à¤¤à¤¨à¥à¤…फà¥à¤°à¥€à¤•à¥€à¤…कनअमà¥à¤¹à¤¾à¤°à¤¿à¤•à¥à¤†à¤°à¥à¤—ोनीअरबीअसामीअवारिकà¥à¤†à¤¯à¤®à¤¾à¤°à¤¾à¤…ज़रबै" + - "जानीबशख़िरà¥à¤¬à¥ˆà¤²à¥‹à¤°à¥‚सियनà¥à¤¬à¤²à¥à¤—ैरियनà¥à¤¬à¤¿à¤¸à¥à¤²à¤¾à¤®à¤¾à¤¬à¤¾à¤‚बाराबंगलातिबà¥à¤¬à¤¤à¥€à¤¬à¥à¤°à¤Ÿà¥‹à¤‚ब" + - "ोसà¥à¤¨à¤¿à¤¯à¤¾à¤ˆà¤•à¤¾à¤¤à¤¾à¤²à¤¾à¤¨à¥à¤šà¥‡à¤šà¥‡à¤¨à¥à¤šà¤¾à¤®à¥‹à¤°à¥‹à¤•à¥‹à¤°à¥à¤¸à¥€à¤•à¤¨à¥à¤•à¥à¤°à¥€à¤šà¥‡à¤•à¥à¤šà¤°à¥à¤š सà¥à¤²à¤¾à¤µà¤¿à¤•à¥à¤šà¥à¤µà¤¾à¤¶à¥à¤µà¥ˆ" + - "लà¥à¤¶à¥à¤¡à¥ˆà¤¨à¥€à¤¶à¥à¤œà¤¼à¤°à¥à¤®à¤¨à¤¦à¥€à¤µà¥‡à¤¹à¥€à¤­à¥à¤Ÿà¤¾à¤¨à¥€à¤à¤µà¥‡à¤—à¥à¤°à¥€à¤•à¤…ंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤à¤¸à¥à¤ªà¥‡à¤°à¤¾à¤¨à¥à¤¤à¥‹à¤¸à¥à¤ªà¥ˆà¤¨à¤¿à¤¶à¤à¤¸à¥" + - "टोनियनà¥à¤¬à¤¾à¤¸à¥à¤•à¥à¤«à¤¾à¤°à¥à¤¸à¥€à¤«à¥à¤²à¤¾à¤¹à¥à¤«à¤¿à¤¨à¤¿à¤¶à¥à¤«à¤¼à¥€à¤œà¥€à¤«à¤¿à¤°à¥‹à¤œà¤¼à¥€à¤«à¥à¤°à¤¾à¤‚सीसीपशà¥à¤šà¥€à¤®à¥€ फà¥à¤°à¥€à¤œà¤¼" + - "ियनà¥à¤†à¤ˆà¤°à¤¿à¤¶à¤¸à¥à¤•à¥‰à¤Ÿà¥à¤¸à¥ गैलिकà¥à¤—ैलिशियनà¥à¤—à¥à¤†à¤°à¤¾à¤¨à¥€à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤®à¥ˆà¤‚कà¥à¤¸à¤¹à¤‰à¤¸à¤¾à¤¹à¤¿à¤¬à¥à¤°à¥à¤¹à¤¿à¤‚" + - "दीहीरी मोटà¥à¤•à¥à¤°à¥‹à¤à¤¶à¤¨à¥à¤¹à¤¾à¤ˆà¤¶à¥€à¤¯à¤¨à¥à¤¹à¤‚गैरीयनà¥à¤…रमेनियनà¥à¤¹à¥‡à¤°à¥‡à¤°à¥‹à¤ˆà¤¨à¥à¤Ÿà¤°à¤²à¤¿à¤‚गà¥à¤µà¤¾à¤‡à¤¨à¥" + - "डोनेशियनà¥à¤ˆà¤¨à¥à¤Ÿà¤°à¤²à¤¿à¤‚गà¥à¤µà¥‡à¤ˆà¤—à¥à¤¬à¥‹à¤¸à¥€à¤šà¥à¤†à¤¨à¥ यीइनà¥à¤ªà¤¿à¤¯à¤¾à¤•à¤¼à¥à¤ˆà¤¡à¥‹à¤†à¤ˆà¤¸à¥à¤²à¥ˆà¤‚डिकà¥à¤ˆà¤Ÿà¤¾à¤²à¤¿à¤¯" + - "नà¥à¤‡à¤¨à¥‚कà¥à¤Ÿà¥€à¤Ÿà¥‚तà¥à¤œà¤¾à¤ªà¤¾à¤¨à¥€à¤œà¤¾à¤µà¤¾à¤¨à¥€à¤¸à¤œà¥‰à¤°à¥à¤œà¤¿à¤¯à¤¨à¥à¤•à¥‰à¤‚गोकिकà¥à¤¯à¥à¤•à¥à¤†à¤¨à¤¯à¤¾à¤®à¤¾à¤•à¤¼à¤œà¤¼à¤¾à¤–़à¥à¤•à¤²à¤¾à¤²" + - "ीसà¥à¤¤à¤–à¥à¤®à¥‡à¤°à¤•à¤¨à¥à¤¨à¤¡à¥à¤•à¥‹à¤°à¥€à¤¯à¤¨à¥à¤•à¤¨à¥à¤°à¥€à¤•à¤¶à¥à¤®à¤¿à¤°à¥€à¤•à¥à¤°à¥à¤¦à¥€à¤•à¥‹à¤®à¥€à¤•à¥Œà¤°à¥à¤¨à¤µà¥‰à¤²à¥€à¤•à¤¿à¤°à¤—़ीज़à¥à¤²à¥ˆà¤Ÿà¥€" + - "नà¥à¤²à¥à¤•à¥à¤¸à¤®à¤¬à¥à¤°à¥à¤—ीगांडालींबà¥à¤°à¥à¤—ीलिंगालालाओसीयनà¥à¤²à¤¿à¤¥à¥à¤†à¤¨à¤¿à¤¯à¤¨à¥à¤²à¥à¤¬à¤¾ कटांगाला" + - "टवियनॠ(लैटà¥à¤Ÿà¥€à¤¶)मालागासीमारà¥à¤¶à¤²à¥€à¤®à¤¾à¤“रीमैसेडोनियनà¥à¤®à¤²à¤¯à¤¾à¤²à¤®à¤®à¥‹à¤‚गोलियनमराठ" + - "ीमलायमालटीज़à¥à¤¬à¤°à¥à¤®à¥€à¤¨à¤¾à¤Šà¤°à¥‚उतà¥à¤¤à¤° नà¥à¤¦à¤¬à¥‡à¤²à¥‡à¤¨à¥‡à¤ªà¤¾à¤²à¥€à¤¨à¥à¤¡à¥‹à¤‚गाडचà¥à¤¨à¥‰à¤°à¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨à¥ नी" + - "नॉरà¥à¤¸à¥à¤•à¥à¤¨à¥‹à¤°à¥à¤µà¥‡à¤—ी बोकमालदकà¥à¤·à¤¿à¤£à¥€ नà¥à¤¦à¤¬à¥‡à¤²à¥‡à¤¨à¤¾à¤µà¤¾à¤¹à¥‹à¤¨à¥à¤¯à¤¾à¤¨à¤œà¤¾à¤“कà¥à¤¸à¥€à¤¤à¤¾à¤¨à¤“हीबवाओ" + - "रोमो (अफ़ान)उड़ियाओसà¥à¤¸à¥‡à¤Ÿà¥€à¤ªà¤‚जाबीपालीपोलिशपख़à¥à¤¤à¥à¤ªà¥à¤°à¥à¤¤à¤—ालीकà¥à¤µà¥‡à¤šà¥à¤†à¤°à¥‡à¤¹à¥" + - "टो-रोमानà¥à¤¸à¤•à¤¿à¤°à¥‚नà¥à¤¦à¥€à¤°à¥‚मानीयनà¥à¤°à¥à¤¸à¥€à¤•à¤¿à¤¨à¥à¤¯à¤¾à¤°à¥à¤†à¤£à¥à¤¡à¤¾à¤¸à¤‚सà¥à¤•à¥ƒà¤¤à¥à¤¸à¤¾à¤°à¥à¤¦à¥€à¤¨à¥€à¤¸à¤¿à¤‚धीउ" + - "तà¥à¤¤à¤°à¥€ सामीसांगà¥à¤°à¥‹à¤¸à¥€à¤‚हालासà¥à¤²à¥‹à¤µà¤¾à¤•à¥à¤¸à¥à¤²à¥‹à¤µà¥‡à¤¨à¤¿à¤¯à¤¨à¥à¤¸à¤¾à¤®à¥‹à¤…नशोनासोमालीआलà¥à¤¬à¥‡à¤¨à¤¿" + - "यनà¥à¤¸à¤°à¥à¤¬à¤¿à¤¯à¤¨à¥à¤¸à¥à¤µà¤¾à¤Ÿà¤¿à¤¸à¥à¤¨à¥à¤¦à¤¾à¤¨à¥€à¤¸à¥à¤µà¥€à¤¡à¤¿à¤¶à¤¸à¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤¤à¤®à¤¿à¤³à¤¤à¥‡à¤²à¥à¤—à¥à¤¤à¤¾à¤œà¤¿à¤•à¥à¤¥à¤¾à¤ˆà¤¤à¤¿à¤—à¥à¤°à¥€à¤¨" + - "à¥à¤¯à¤¾à¤¤à¥à¤°à¥à¤•à¤®à¥‡à¤¨à¤¤à¥à¤¸à¥à¤µà¤¾à¤¨à¤¾à¤Ÿà¥‰à¤‚गातà¥à¤°à¥à¤•à¥€à¤¸à¥‹à¤‚गाटाटरà¥à¤Ÿà¤¾à¤¹à¤¿à¤Ÿà¤¿à¤‰à¤ˆà¤—़à¥à¤°à¤¯à¥‚कà¥à¤°à¥‡à¤¨à¤¿à¤¯à¤¨à¥à¤Šà¤°à¥" + - "दà¥à¤‰à¤œà¤¼à¤¬à¥‡à¤•à¥à¤µà¥‡à¤‚डावियेतनामीवोलापोकवालà¥à¤¨à¤µà¥‹à¤²à¥‹à¤«à¤–़ोसायीदà¥à¤¦à¥€à¤¶à¤¯à¥‹à¤°à¥‚बाज़à¥à¤†à¤‚गची" + - "नीज़à¥à¤²à¥‚अचेहनीअकोलीअडांगमेअडीगेअफà¥à¤°à¥€à¤¹à¥€à¤²à¥€à¤à¤¨à¥‚अकाडिनीअलà¥à¤Ÿà¤ªà¥à¤°à¤¾à¤¨à¥€ अंगà¥à¤°à¥‡" + - "ज़ीअंगीकाअरामाईकअरापाहोअरावाकअवधीबलूचीबालिनीबासà¥à¤•à¤¼à¥à¤¬à¥‡à¤œà¤¾à¤¬à¥‡à¤‚बाभोजपà¥à¤°" + - "ीबिकोलà¥à¤¬à¤¿à¤¨à¥€à¤¸à¥€à¤•à¤¸à¥€à¤•à¤¾à¤¬à¥à¤°à¤œà¤¬à¤¡à¤¼à¥‹à¤¬à¥à¤°à¤¿à¤¯à¤¾à¤¤à¤¬à¥à¤—ीनीबà¥à¤²à¥€à¤¨à¤•à¤¾à¤¦à¥à¤¦à¥Œà¤•à¤¾à¤°à¥€à¤¬à¥à¤†à¤¤à¥à¤¸à¤®à¤šà¥‡à¤¬à¥à¤†" + - "नोचीबचाचगताईचà¥à¤•à¥‡à¤¸à¥‡à¤®à¤¾à¤°à¥€à¤šà¥€à¤¨à¥‚कॠजारà¥à¤—नà¥à¤šà¥Œà¤•à¥à¤Ÿà¥‹à¤šà¤¿à¤ªà¥‡à¤µà¤¿à¤¯à¤¾à¤¨à¥à¤šà¥€à¤°à¥‹à¤•à¥€à¤¶à¤¾à¤¯à¤¾à¤¨à¥à¤•à¥‰" + - "पà¥à¤Ÿà¥€à¤•à¥à¤¤à¥à¤°à¥à¤•à¥€ कà¥à¤°à¤¿à¤®à¤¿à¤¯à¤¾à¤•à¤¾à¤¶à¥à¤¬à¤¿à¤¯à¤¾à¤¨à¥à¤¡à¤•à¥Œà¤Ÿà¤¾à¤¦à¤°à¥à¤—वादलावारà¥à¤¸à¥à¤²à¥‡à¤µà¥à¤¡à¥‹à¤—रीबà¥à¤¡à¥€à¤‚ग" + - "काडोगरीसोरà¥à¤¬à¤¿à¤¯à¤¨à¥à¤¡à¥à¤†à¤²à¤¾à¤®à¤§à¥à¤¯ डचदà¥à¤¯à¥à¤†à¤²à¤¾à¤à¤«à¥€à¤•à¥à¤ªà¥à¤°à¤¾à¤šà¥€à¤¨ मिसà¥à¤°à¥€à¤à¤•à¤¾à¤œà¥à¤•à¤à¤²à¤¾à¤®à¥€à¤®" + - "धà¥à¤¯ अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤à¤µà¥Œà¤‚डोफाà¤à¤—à¥à¤«à¤¿à¤²à¤¿à¤ªà¤¿à¤¨à¥‹à¤«à¥‹à¤¨à¤®à¤§à¥à¤¯ फà¥à¤°à¤¾à¤‚सीसीपà¥à¤°à¤¾à¤¨à¥€ फà¥à¤°à¤¾à¤‚सीसीउ" + - "तà¥à¤¤à¤°à¥€ फà¥à¤°à¥€à¤œà¤¼à¤¿à¤¯à¤¨à¥à¤ªà¥‚रà¥à¤µà¥€ फà¥à¤°à¥€à¤œà¤¼à¤¿à¤¯à¤¨à¥à¤«à¥à¤°à¥€à¤‰à¤²à¥€à¤…नà¥à¤—ागायोगà¥à¤¬à¤¾à¤¯à¤¾à¤—ीज़à¥à¤—ीलबरà¥" + - "टीमधà¥à¤¯ उचà¥à¤šà¤¸à¥à¤¤à¤°à¥€ जरà¥à¤®à¤¨à¤ªà¥à¤°à¤¾à¤¨à¥€ उचà¥à¤šà¤¸à¥à¤¤à¤°à¥€ जरà¥à¤®à¤¨à¤—ाà¤à¤¡à¥€à¤—ोरंटालोगॉथिकगà¥à¤°à¥‡" + - "बोपà¥à¤°à¤¾à¤šà¥€à¤¨ यूनानीसà¥à¤µà¥€à¤¸ जरà¥à¤®à¤¨à¤—à¥à¤µà¥€à¤šà¤²à¥€à¤¨à¤¹à¤ˆà¤¡à¤¾à¤¹à¤µà¤¾à¤ˆà¤…नहीलीगैनोनहीतà¥à¤¤à¥€à¤¹à¥à¤®à¥Œà¤‚ग" + - "ऊपरी सौरà¥à¤¬à¤¿à¤¯à¤¨à¤¹à¥‚पाईबानà¥à¤ˆà¤²à¥‹à¤•à¥‹à¤ˆà¤‚गà¥à¤·à¤²à¥‹à¤œà¤¬à¤¾à¤¨à¤¯à¤¹à¥à¤¦à¥€ फ़ारसीयहà¥à¤¦à¥€ अरबीकारा क" + - "लपककाबीलà¥à¤•à¤šà¥€à¤¨à¥à¤œà¥à¤•à¤‚बाकावीकबारà¥à¤¡à¥€ भाषातà¥à¤¯à¤¾à¤ªà¥à¤•à¥‹à¤°à¥‹à¤–़ासीख़ोतानीकींबà¥à¤‚डà¥" + - "कोंकणीकोसà¥à¤°à¤¾à¤ˆà¤¯à¤¨à¥à¤•à¥à¤ªà¥‡à¤²à¥‡à¤•à¤°à¤¾à¤šà¤¯à¥ बलकारà¥à¤•à¤°à¥‡à¤²à¤¿à¤¯à¤¨à¥à¤•à¥à¤°à¥à¤–़à¥à¤•à¥à¤®à¥€à¤•à¥à¤•à¥à¤¤à¥‡à¤¨à¤¾à¤ˆà¤²à¤¾à¤¡" + - "़ीनोलाहà¥à¤¡à¤¾à¤‚लांबालेज़गीयानमोंगोलोज़ीलà¥à¤¬à¤¾ लà¥à¤²à¥à¤†à¤²à¥à¤ˆà¤¸à¥‡à¤¨à¥‹à¤²à¥à¤‚डालà¥à¤“लà¥à¤¶à¤¾à¤ˆà¤®" + - "ादà¥à¤°à¥€à¤®à¤˜à¥€à¤®à¥ˆà¤¥à¥€à¤²à¥€à¤®à¤•à¥à¤¸à¤°à¤®à¤¾à¤‚डींगोमसाईमोकà¥à¤·à¤¾à¤®à¤‚दारमेंदेमधà¥à¤¯ आईरीश भाषामीकम" + - "ाकमिनंगकाबाउमांचà¥à¤®à¤£à¥€à¤ªà¥à¤°à¥€à¤®à¥‹à¤¹à¥‹à¤•à¤®à¥‹à¤¸à¥à¤¸à¥€à¤•à¥à¤°à¥€à¤•à¤®à¥€à¤°à¤¾à¤‚डीमारवाड़ीà¤à¤°à¥à¤œà¤¼à¤¿à¤¯à¤¾à¤¨à¥‡à¤†" + - "पोलिटननीजी सà¥à¤¤à¤°à¤¿à¤¯ जरà¥à¤®à¤¨à¤¨à¥‡à¤µà¤¾à¤°à¥€à¤¨à¤¿à¤¯à¤¾à¤¸à¤¨à¤¿à¤¯à¥à¤‡à¤†à¤¨à¤¨à¥‹à¤—ाईपà¥à¤°à¤¾à¤¨à¥€ नॉरà¥à¤¸à¥à¤¨à¥à¤—कोपà¥" + - "रानी नेवारीनà¥à¤¯à¤¾à¤®à¤µà¥‡à¤œà¤¼à¥€à¤¨à¥à¤¯à¤¾à¤¨à¤•à¥‹à¤²à¥‡à¤¨à¥à¤¯à¥Œà¤°à¥‹à¤¨à¥à¤œà¤¼à¥€à¤®à¤¾à¤“सेजतà¥à¤°à¥à¤•à¥€ ओटोमानपांगास" + - "ीननपहलवीपंपंगापापीआमेनà¥à¤¤à¥‹à¤ªà¤¾à¤²à¤¾à¤Šà¤ªà¥à¤°à¤¾à¤¨à¥€ फ़ारसीफीनीसीपोहनपीपà¥à¤°à¤¾à¤¨à¥€ पà¥à¤°à¥‹" + - "वाà¤à¤¸à¤¾à¤²à¤°à¤¾à¤œà¤¸à¥à¤¥à¤¾à¤¨à¥€à¤°à¤¾à¤ªà¤¾à¤¨à¥à¤ˆà¤°à¤¾à¤°à¥‹à¤Ÿà¥‹à¤‚गारà¥à¤®à¤¾à¤¨à¥€à¤†à¤°à¥‹à¤®à¤¾à¤¨à¥€à¤¸à¤‚डावेयकà¥à¤Ÿà¥à¤¸à¤®à¤¾à¤°à¥€à¤¤à¥€ आरा" + - "माईक़सासकसंतालीसीसीलीअनसà¥à¤•à¥‰à¤Ÿà¤¸à¥‡à¤²à¤•à¥à¤ªà¤ªà¥à¤°à¤¾à¤¨à¥€ आईरीशशानसीदामोपशà¥à¤šà¥€à¤®à¥€ साम" + - "ीलà¥à¤²à¥‡ सामीईनारी सामीसà¥à¤•à¥‹à¤²à¥à¤Ÿà¥ सामीसोनिंगकेसोगडीयनसà¥à¤°à¤¨à¤¾à¤¨à¥ टॉंगोसेरेर" + - "सà¥à¤•à¥à¤®à¤¾à¤¸à¥à¤¸à¥à¤¸à¥à¤®à¥‡à¤°à¤¿à¤…नपारंपरीक सिरिआकसिरिआकतीमनेतेरेनोतेतà¥à¤®à¤Ÿà¥€à¤—à¥à¤°à¥‡à¤Ÿà¥€à¤µà¥à¤Ÿ" + - "ोकेलौकà¥à¤²à¥€à¤‚गदनटà¥à¤²à¤¿à¤‚गीततमाशेकनà¥à¤¯à¤¾à¤¸à¤¾ टॉंगातोक पिसीनतà¥à¤¸à¥€à¤®à¤¶à¥€à¤†à¤¨à¥à¤Ÿà¥à¤à¤¬à¥à¤•à¤¾à¤Ÿ" + - "à¥à¤µà¤¾à¤²à¥à¤Ÿà¥à¤µà¥€à¤‰à¤¡à¤¼à¤®à¥à¤°à¥à¤¤à¤‰à¤—ारितीउंबà¥à¤‚डà¥à¤°à¥à¤Ÿà¤µà¤¾à¤ˆà¤µà¥‹à¤Ÿà¥€à¤•à¤µà¤¾à¤²à¤¾à¤®à¥‹à¤µà¤¾à¤°à¤¯à¤µà¤¾à¤¶à¥‹à¤•à¤¾à¤²à¤®à¥€à¤•à¤¯à¤¾à¤“य" + - "ापीज़ज़ापोतेकबà¥à¤²à¥€à¤¸ चिनà¥à¤¹à¤œà¤¼à¥‡à¤¨à¤¾à¤—ाज़à¥à¤¨à¥€à¤°à¤¿à¤•à¥à¤¤à¤œà¤¼à¤¾à¤œà¤¼à¤¾à¤œà¤°à¥à¤®à¤¨ (ऑसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾)उच" + - "à¥à¤š सà¥à¤¤à¤°à¤¿à¤¯ सà¥à¤µà¥€à¤¸ जरà¥à¤®à¤¨à¤…ंगà¥à¤°à¥‡à¤œà¤¼à¥€ (ऑसà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾ का)अंगà¥à¤°à¥‡à¤œà¤¼à¥€ (कनाडाई)अ" + - "ंगà¥à¤°à¥‡à¤œà¥€ (बà¥à¤°à¤¿à¤Ÿà¤¿à¤¶)अंगà¥à¤°à¥‡à¤œà¤¼à¥€ (अमरिकी)लैटिन अमरिकी सà¥à¤ªà¥ˆà¤¨à¤¿à¤¶à¤ˆà¤µà¥‡à¤°à¤¿à¤¯à¤¾à¤ˆ सà¥" + - "पैनिशफà¥à¤°à¤¾à¤‚सीसी (कनाडाई)फà¥à¤°à¤¾à¤‚सीसी (सà¥à¤µà¥€à¤¸)फà¥à¤²à¥‡à¤®à¥€à¤®à¥‹à¤²à¥à¤¡à¥‡à¤µà¤¿à¤¯à¤¨à¥à¤¸à¤°à¥à¤¬à¥‹-कà¥à¤°" + - "ोà¤à¤¶à¤¨à¥à¤šà¥€à¤¨à¥€ (सरलीकृत)चीनी (पारमà¥à¤ªà¤°à¤¿à¤•)", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0021, 0x0036, 0x004b, 0x0054, 0x006f, 0x0084, - 0x0090, 0x009f, 0x00b4, 0x00c6, 0x00e4, 0x00f9, 0x011a, 0x0138, - 0x0150, 0x0165, 0x0174, 0x0189, 0x019b, 0x01b6, 0x01ce, 0x01e0, - 0x01f2, 0x020d, 0x0219, 0x0225, 0x024a, 0x025c, 0x026e, 0x0280, - 0x0292, 0x02a4, 0x02b6, 0x02bf, 0x02ce, 0x02e9, 0x030a, 0x031f, - 0x033d, 0x034f, 0x0361, 0x0373, 0x0385, 0x0394, 0x03a9, 0x03c4, - 0x03f8, 0x0407, 0x0432, 0x044d, 0x0462, 0x0477, 0x0489, 0x0495, - 0x04a7, 0x04b6, 0x04cf, 0x04e7, 0x04ff, 0x051a, 0x0535, 0x0547, - // Entry 40 - 7F - 0x056b, 0x058f, 0x05b3, 0x05c2, 0x05de, 0x05fc, 0x0605, 0x0626, - 0x063e, 0x065f, 0x0671, 0x0686, 0x06a1, 0x06b0, 0x06c2, 0x06da, - 0x06f2, 0x070a, 0x0719, 0x072b, 0x0740, 0x074f, 0x0764, 0x0776, - 0x0782, 0x079d, 0x07b8, 0x07ca, 0x07ee, 0x07fd, 0x0818, 0x082d, - 0x0845, 0x0863, 0x0882, 0x08b2, 0x08ca, 0x08df, 0x08ee, 0x090f, - 0x0921, 0x093c, 0x094b, 0x0957, 0x096f, 0x097e, 0x098d, 0x09b2, - 0x09c4, 0x09d9, 0x09e2, 0x0a22, 0x0a4d, 0x0a78, 0x0a8a, 0x0a9f, - 0x0ab7, 0x0ac9, 0x0aea, 0x0afc, 0x0b11, 0x0b23, 0x0b2f, 0x0b3e, - // Entry 80 - BF - 0x0b50, 0x0b6b, 0x0b80, 0x0ba8, 0x0bc0, 0x0bdb, 0x0be7, 0x0c0e, - 0x0c26, 0x0c3e, 0x0c4d, 0x0c6c, 0x0c81, 0x0c96, 0x0cae, 0x0ccf, - 0x0ce1, 0x0ced, 0x0cff, 0x0d1d, 0x0d35, 0x0d47, 0x0d47, 0x0d5f, - 0x0d74, 0x0d8c, 0x0d98, 0x0daa, 0x0dbc, 0x0dc5, 0x0de3, 0x0dfb, - 0x0e13, 0x0e22, 0x0e34, 0x0e43, 0x0e52, 0x0e64, 0x0e76, 0x0e97, - 0x0ea6, 0x0ebb, 0x0eca, 0x0ee5, 0x0efa, 0x0f09, 0x0f18, 0x0f27, - 0x0f3c, 0x0f4e, 0x0f60, 0x0f6c, 0x0f7b, 0x0f8d, 0x0f9c, 0x0fb1, - 0x0fc0, 0x0fc0, 0x0fdb, 0x0fdb, 0x0fe4, 0x0ff9, 0x0ff9, 0x1005, - // Entry C0 - FF - 0x1005, 0x1005, 0x1033, 0x1045, 0x105a, 0x105a, 0x105a, 0x106f, - 0x106f, 0x1081, 0x1081, 0x1081, 0x1081, 0x1081, 0x1081, 0x1081, - 0x108d, 0x108d, 0x109c, 0x10ae, 0x10ae, 0x10c3, 0x10c3, 0x10c3, - 0x10c3, 0x10cf, 0x10de, 0x10de, 0x10de, 0x10de, 0x10de, 0x10f3, - 0x1105, 0x1111, 0x1111, 0x1111, 0x1126, 0x1126, 0x1126, 0x1132, - 0x1132, 0x113e, 0x113e, 0x1153, 0x1165, 0x1165, 0x1174, 0x1174, - 0x1186, 0x1198, 0x1198, 0x11a7, 0x11bc, 0x11bc, 0x11cb, 0x11da, - 0x11ec, 0x11f8, 0x1220, 0x1232, 0x1250, 0x1262, 0x1274, 0x1274, - // Entry 100 - 13F - 0x128c, 0x128c, 0x12b7, 0x12d5, 0x12e4, 0x12f6, 0x12f6, 0x130b, - 0x131d, 0x1332, 0x1344, 0x1344, 0x1353, 0x136e, 0x136e, 0x137d, - 0x1390, 0x1390, 0x13a5, 0x13a5, 0x13a5, 0x13b4, 0x13b4, 0x13dc, - 0x13ee, 0x13fd, 0x1425, 0x1425, 0x1437, 0x1437, 0x1446, 0x145e, - 0x145e, 0x1467, 0x1467, 0x148f, 0x14bd, 0x14bd, 0x14ee, 0x151f, - 0x153d, 0x1543, 0x1543, 0x1543, 0x154f, 0x1561, 0x1561, 0x1570, - 0x1588, 0x1588, 0x15c0, 0x15fe, 0x15fe, 0x160d, 0x1625, 0x1634, - 0x1646, 0x166e, 0x168d, 0x168d, 0x168d, 0x168d, 0x16a5, 0x16b1, - // Entry 140 - 17F - 0x16b1, 0x16c3, 0x16c3, 0x16de, 0x16f0, 0x1702, 0x1727, 0x1727, - 0x1733, 0x1742, 0x1742, 0x1751, 0x1760, 0x1760, 0x1760, 0x1772, - 0x1772, 0x1772, 0x1794, 0x17b0, 0x17b0, 0x17c9, 0x17db, 0x17ea, - 0x17f0, 0x17fc, 0x1808, 0x182a, 0x182a, 0x183c, 0x183c, 0x183c, - 0x183c, 0x1848, 0x1848, 0x1857, 0x186c, 0x186c, 0x186c, 0x186c, - 0x186c, 0x186c, 0x1884, 0x1884, 0x1896, 0x18b4, 0x18c6, 0x18eb, - 0x18eb, 0x18eb, 0x1903, 0x1918, 0x1918, 0x1918, 0x1918, 0x192a, - 0x193f, 0x1954, 0x1954, 0x1969, 0x1978, 0x1993, 0x1993, 0x1993, - // Entry 180 - 1BF - 0x1993, 0x1993, 0x1993, 0x19a2, 0x19b1, 0x19b1, 0x19cd, 0x19e2, - 0x19f1, 0x19fa, 0x1a09, 0x1a09, 0x1a09, 0x1a09, 0x1a1b, 0x1a1b, - 0x1a24, 0x1a36, 0x1a45, 0x1a5d, 0x1a69, 0x1a69, 0x1a7b, 0x1a8a, - 0x1a99, 0x1a99, 0x1a99, 0x1ac2, 0x1ac2, 0x1ac2, 0x1ad4, 0x1af2, - 0x1b01, 0x1b16, 0x1b25, 0x1b37, 0x1b37, 0x1b37, 0x1b37, 0x1b46, - 0x1b5b, 0x1b73, 0x1b73, 0x1b73, 0x1b8b, 0x1b8b, 0x1b8b, 0x1ba6, - 0x1ba6, 0x1bd5, 0x1be7, 0x1bf6, 0x1c0b, 0x1c0b, 0x1c0b, 0x1c0b, - 0x1c1a, 0x1c3f, 0x1c3f, 0x1c4e, 0x1c4e, 0x1c4e, 0x1c73, 0x1c91, - // Entry 1C0 - 1FF - 0x1cac, 0x1cbe, 0x1cd3, 0x1cdf, 0x1d04, 0x1d1f, 0x1d2e, 0x1d40, - 0x1d61, 0x1d70, 0x1d70, 0x1d70, 0x1d70, 0x1d95, 0x1d95, 0x1da7, - 0x1da7, 0x1da7, 0x1db9, 0x1db9, 0x1dea, 0x1dea, 0x1dea, 0x1e05, - 0x1e1a, 0x1e35, 0x1e35, 0x1e35, 0x1e35, 0x1e47, 0x1e47, 0x1e47, - 0x1e47, 0x1e5c, 0x1e5c, 0x1e6e, 0x1e7d, 0x1eab, 0x1eab, 0x1eb7, - 0x1ec9, 0x1ec9, 0x1ec9, 0x1ec9, 0x1ee1, 0x1ef0, 0x1ef0, 0x1ef0, - 0x1ef0, 0x1ef0, 0x1f02, 0x1f02, 0x1f24, 0x1f24, 0x1f24, 0x1f2d, - 0x1f2d, 0x1f3f, 0x1f3f, 0x1f3f, 0x1f61, 0x1f7a, 0x1f96, 0x1fbb, - // Entry 200 - 23F - 0x1fd3, 0x1fe8, 0x200d, 0x201c, 0x201c, 0x201c, 0x202e, 0x203a, - 0x2052, 0x2052, 0x2052, 0x207d, 0x208f, 0x208f, 0x208f, 0x209e, - 0x209e, 0x20b0, 0x20bf, 0x20d1, 0x20dd, 0x20ef, 0x20ef, 0x2107, - 0x211f, 0x211f, 0x2131, 0x2153, 0x216c, 0x216c, 0x216c, 0x216c, - 0x218a, 0x218a, 0x219f, 0x21b1, 0x21b1, 0x21bd, 0x21bd, 0x21d5, - 0x21ea, 0x21ff, 0x2208, 0x2211, 0x2211, 0x2211, 0x2211, 0x2211, - 0x2220, 0x2220, 0x2220, 0x2220, 0x2232, 0x223e, 0x224a, 0x224a, - 0x224a, 0x225c, 0x225c, 0x225c, 0x2265, 0x2277, 0x2277, 0x2277, - // Entry 240 - 27F - 0x2277, 0x2277, 0x228f, 0x22ae, 0x22ae, 0x22c3, 0x22c3, 0x22d2, - 0x22e1, 0x22f3, 0x22f3, 0x2320, 0x235f, 0x23a5, 0x23d5, 0x2405, - 0x2435, 0x246d, 0x249b, 0x249b, 0x24cb, 0x24f8, 0x250a, 0x250a, - 0x250a, 0x252b, 0x2553, 0x2577, 0x25a1, - }, - }, - { // bs - "afarskiabhazijskiavestanskiafrikanerskiakanamharskiaragonežanskiarapskia" + - "semijskiavarskiajmaraazerbejdžanskibaÅ¡kirskibjeloruskibugarskibislam" + - "abambarabengalskitibetanskibretonskibosanskikatalonskiÄeÄenskiÄamoro" + - "korzikanskikriÄeÅ¡kistaroslovenskiÄuvaÅ¡kicydanskinjemaÄkidivehijskidž" + - "ongaevegrÄkiengleskiesperantoÅ¡panskiestonskibaskijskiperzijskifulahf" + - "inskifidžijskifarskifrancuskifrizijskiirskiÅ¡kotski galskigalskigvara" + - "nigudžaratimankshausahebrejskihindihiri motuhrvatskihaićanskimaÄ‘arsk" + - "ijermenskihererointerlingvaindonezijskiinterlingveigbosiÄuan jiinupi" + - "akidoislandskiitalijanskiinuktitutjapanskijavanskigruzijskikongokiku" + - "jukuanjamakazaÄkikalalisutskikmerskikanadakorejskikanurikaÅ¡mirikurds" + - "kikomikorniÅ¡kikirgiskilatinskiluksemburÅ¡kigandalimburgiÅ¡lingalalaoÅ¡k" + - "ilitvanskiluba-katangaletonskimalagazijskimarÅ¡alskimaorskimakedonski" + - "malajalammongolskimaratimalajskimalteÅ¡kiburmanskinaurusjeverni ndebe" + - "lenepalskindongaholandskinorveÅ¡ki njorsknorveÅ¡ki bokmaljužni ndebele" + - "navahonjanjaprovansalskiojibvaoromoorijskiosetskipandžabskipalipoljs" + - "kipaÅ¡tunskiportugalskikvenÄareto-romanskirundirumunskiruskikinjarvan" + - "dasanskritsardinijskisindisjeverni samisangosingaleskislovaÄkisloven" + - "aÄkisamoanskiÅ¡onasomalskialbanskisrpskisvatisesotosudanskiÅ¡vedskisva" + - "hilitamilskitelugutadžiÄkitajlandskitigrinjaturkmenskitsvanatongatur" + - "skitsongatatarskitahićanskiujgurskiukrajinskiurduuzbeÄkivendavijetna" + - "mskivolapükvalunvolofkosajidiÅ¡jorubanskizuangkineskizuluaÄineskiakol" + - "iadangmejskiadigejskiafrihiliaghemainuakadijskialjutjužni altaistaro" + - "engleskiangikaarmajskiaraukanskiarapahoaravakasuasturijskiavadhibalu" + - "Äibalinezijskibasabejabembabenabojpuribikolbinisiksikabrajbodoburia" + - "tbuginežanskiiblinkadokaripskiatsamcebuanoÄigaÄibÄaÄagataiÄukeskimar" + - "iÄinukskiÄoktavskiÄipvijanskiÄirokiÄejenskisoranski kurdskikoptskikr" + - "imeanski turskikaÅ¡ubijanskidakotadargvataitadelaverslavskidogribdink" + - "azarmadogridonjolužiÄkosrpskidualasrednji holandskijola-fonyiÄ‘ulaemb" + - "uefikskistaroegipatskiekajukelamitskisrednji engleskievondofangfilip" + - "inskifonsrednji francuskistarofrancuskiseverno-frizijskiistoÄni friz" + - "ijskifriulijskigagagauÅ¡kigajogbajadžizgilbertÅ¡kisrednji visoki nemaÄ" + - "kistaronemaÄkigondigorontalogotskigrebostarogrÄkiÅ¡vajcarski njemaÄki" + - "gusiihaidahavajskihiligajnonhititehmonggornjolužiÄkosrpskihupaibanil" + - "okoinguÅ¡etskilojbanngombamachamejudeo-persijskijudeo-arapskikara-kal" + - "paÅ¡kikabilekaÄinžjukambakavikabardijskitjapmakondezelenortskikorokas" + - "ikotanizijskikoyra chiinikalenjinkimbundukomi-permjaÄkikonkanikosrea" + - "nskikpelekaraÄaj-balkarkarelijskikurukhshambalabafiakumikkutenailadi" + - "nolangilandalambalezgianlakotamongoloziluba-lulualuisenolundaluoluÅ¡a" + - "iluyiamadureÅ¡kimagahimaitilimakasarmandingomasaimokÅ¡amandarmendemeru" + - "mauricijski kreolskisrednji irskimakhuwa-meettometa’mikmakminangkaba" + - "umanÄumanipurimahavskimosimundangviÅ¡e jezikakriÅ¡kimirandeÅ¡kimarvarie" + - "rzijaneapolitanskinamaniski nemaÄkinevariniasniueankwasionogaistari " + - "norskinkoseverni sotonuerklasiÄni nevarinjamvezinjankolenjoronzimaos" + - "ageotomanski turskipangasinskipahlavipampangapapiamentopalauanskista" + - "ropersijskifeniÄanskiponpejskistaroprovansalskikiÄeraÄ‘astanirapanuir" + - "arotonganromboromaniaromanijskiruasandavejakutsamaritanski aramejski" + - "samburusasaksantalisangusicilijanskiÅ¡kotskisenaselkapkojraboro senis" + - "taroirskitahelhitÅ¡ansidamojužni samilule samiinari samiskoltski jezi" + - "ksoninkesodžijenskisrananski tongoserersukumasususumerskikongoanski " + - "swahiliklasiÄni sirijskisirijskitimnetesoterenotetumtigretivtokelauk" + - "lingonskitlingittamaÅ¡eknjasa tongatok pisintsimÅ¡iantumbukatuvalutasa" + - "vaktuvinijskimarokanski tamazigtudmurtugaritskiumbundurunvaivotskivu" + - "njovalamovarejvaÅ¡okalmiksogajaojapeÅ¡kizapoteÄkiblisimbolizenagastand" + - "ardni marokanski tamazigtzunibez lingvistiÄkog sadržajazazamoderni s" + - "tandardni arapskiaustrijski njemaÄkigornjonjemaÄki (Å¡vicarski)austra" + - "lski engleskikanadski engleskibritanski engleskiameriÄki engleskilat" + - "inoameriÄki Å¡panskievropski Å¡panskimeksiÄki Å¡panskikanadski francusk" + - "iÅ¡vajcarski francuskiflamanskimoldavskisrpskohrvatskikineski (pojedn" + - "ostavljeni)kineski (tradicionalni)", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0007, 0x0011, 0x001b, 0x0027, 0x002b, 0x0033, 0x0041, - 0x0048, 0x0051, 0x0058, 0x005e, 0x006d, 0x0077, 0x0081, 0x0089, - 0x0090, 0x0097, 0x00a0, 0x00aa, 0x00b3, 0x00bb, 0x00c5, 0x00cf, - 0x00d6, 0x00e1, 0x00e4, 0x00eb, 0x00f9, 0x0102, 0x0104, 0x010a, - 0x0113, 0x011d, 0x0124, 0x0127, 0x012d, 0x0135, 0x013e, 0x0146, - 0x014e, 0x0157, 0x0160, 0x0165, 0x016b, 0x0175, 0x017b, 0x0184, - 0x018d, 0x0192, 0x01a1, 0x01a7, 0x01ae, 0x01b8, 0x01bd, 0x01c2, - 0x01cb, 0x01d0, 0x01d9, 0x01e1, 0x01eb, 0x01f4, 0x01fd, 0x0203, - // Entry 40 - 7F - 0x020e, 0x021a, 0x0225, 0x0229, 0x0233, 0x023a, 0x023d, 0x0246, - 0x0251, 0x025a, 0x0262, 0x026a, 0x0273, 0x0278, 0x027e, 0x0286, - 0x028e, 0x029a, 0x02a1, 0x02a7, 0x02af, 0x02b5, 0x02bd, 0x02c4, - 0x02c8, 0x02d1, 0x02d9, 0x02e1, 0x02ee, 0x02f3, 0x02fd, 0x0304, - 0x030b, 0x0314, 0x0320, 0x0328, 0x0334, 0x033e, 0x0345, 0x034f, - 0x0358, 0x0361, 0x0367, 0x036f, 0x0378, 0x0381, 0x0386, 0x0396, - 0x039e, 0x03a4, 0x03ad, 0x03bd, 0x03cd, 0x03db, 0x03e1, 0x03e7, - 0x03f3, 0x03f9, 0x03fe, 0x0405, 0x040c, 0x0417, 0x041b, 0x0422, - // Entry 80 - BF - 0x042c, 0x0437, 0x043e, 0x044b, 0x0450, 0x0458, 0x045d, 0x0468, - 0x0470, 0x047b, 0x0480, 0x048d, 0x0492, 0x049c, 0x04a5, 0x04b0, - 0x04b9, 0x04be, 0x04c6, 0x04ce, 0x04d4, 0x04d9, 0x04df, 0x04e7, - 0x04ef, 0x04f6, 0x04fe, 0x0504, 0x050e, 0x0518, 0x0520, 0x052a, - 0x0530, 0x0535, 0x053b, 0x0541, 0x0549, 0x0554, 0x055c, 0x0566, - 0x056a, 0x0572, 0x0577, 0x0582, 0x058a, 0x058f, 0x0594, 0x0598, - 0x059e, 0x05a8, 0x05ad, 0x05b4, 0x05b8, 0x05c1, 0x05c6, 0x05d1, - 0x05da, 0x05da, 0x05e2, 0x05e7, 0x05eb, 0x05f4, 0x05f4, 0x05f9, - // Entry C0 - FF - 0x05f9, 0x0605, 0x0612, 0x0618, 0x0620, 0x062a, 0x062a, 0x0631, - 0x0631, 0x0637, 0x0637, 0x0637, 0x063a, 0x063a, 0x0644, 0x0644, - 0x064a, 0x064a, 0x0651, 0x065d, 0x065d, 0x0661, 0x0661, 0x0661, - 0x0661, 0x0665, 0x066a, 0x066a, 0x066e, 0x066e, 0x066e, 0x0675, - 0x067a, 0x067e, 0x067e, 0x067e, 0x0685, 0x0685, 0x0685, 0x0689, - 0x0689, 0x068d, 0x068d, 0x0693, 0x06a1, 0x06a1, 0x06a5, 0x06a5, - 0x06a9, 0x06b1, 0x06b1, 0x06b6, 0x06bd, 0x06c2, 0x06c9, 0x06d1, - 0x06d9, 0x06dd, 0x06e6, 0x06f0, 0x06fc, 0x0703, 0x070c, 0x071c, - // Entry 100 - 13F - 0x0723, 0x0723, 0x0734, 0x0741, 0x0747, 0x074d, 0x0752, 0x0759, - 0x0760, 0x0766, 0x076b, 0x0770, 0x0775, 0x0789, 0x0789, 0x078e, - 0x079f, 0x07a9, 0x07ae, 0x07ae, 0x07b2, 0x07b9, 0x07b9, 0x07c7, - 0x07cd, 0x07d6, 0x07e6, 0x07e6, 0x07ec, 0x07ec, 0x07f0, 0x07fa, - 0x07fa, 0x07fd, 0x07fd, 0x080e, 0x081c, 0x081c, 0x082d, 0x083f, - 0x0849, 0x084b, 0x0854, 0x0854, 0x0858, 0x085d, 0x085d, 0x0862, - 0x086d, 0x086d, 0x0884, 0x0891, 0x0891, 0x0896, 0x089f, 0x08a5, - 0x08aa, 0x08b5, 0x08ca, 0x08ca, 0x08ca, 0x08cf, 0x08cf, 0x08d4, - // Entry 140 - 17F - 0x08d4, 0x08dc, 0x08dc, 0x08e6, 0x08ec, 0x08f1, 0x0906, 0x0906, - 0x090a, 0x090e, 0x090e, 0x0913, 0x091e, 0x091e, 0x091e, 0x0924, - 0x092a, 0x0931, 0x0940, 0x094d, 0x094d, 0x095b, 0x0961, 0x0967, - 0x096b, 0x0970, 0x0974, 0x097f, 0x097f, 0x0983, 0x098a, 0x0995, - 0x0995, 0x0999, 0x0999, 0x099d, 0x09a9, 0x09b5, 0x09b5, 0x09b5, - 0x09b5, 0x09bd, 0x09c5, 0x09d4, 0x09db, 0x09e5, 0x09ea, 0x09f9, - 0x09f9, 0x09f9, 0x0a03, 0x0a09, 0x0a11, 0x0a16, 0x0a16, 0x0a1b, - 0x0a22, 0x0a28, 0x0a2d, 0x0a32, 0x0a37, 0x0a3e, 0x0a3e, 0x0a3e, - // Entry 180 - 1BF - 0x0a3e, 0x0a44, 0x0a44, 0x0a49, 0x0a4d, 0x0a4d, 0x0a57, 0x0a5e, - 0x0a63, 0x0a66, 0x0a6c, 0x0a71, 0x0a71, 0x0a71, 0x0a7b, 0x0a7b, - 0x0a81, 0x0a88, 0x0a8f, 0x0a97, 0x0a9c, 0x0a9c, 0x0aa2, 0x0aa8, - 0x0aad, 0x0ab1, 0x0ac5, 0x0ad2, 0x0ae0, 0x0ae7, 0x0aed, 0x0af8, - 0x0afe, 0x0b06, 0x0b0e, 0x0b12, 0x0b12, 0x0b19, 0x0b25, 0x0b2c, - 0x0b37, 0x0b3e, 0x0b3e, 0x0b3e, 0x0b44, 0x0b44, 0x0b44, 0x0b51, - 0x0b55, 0x0b63, 0x0b69, 0x0b6d, 0x0b73, 0x0b73, 0x0b79, 0x0b79, - 0x0b7e, 0x0b8a, 0x0b8a, 0x0b8d, 0x0b99, 0x0b9d, 0x0bad, 0x0bb5, - // Entry 1C0 - 1FF - 0x0bbd, 0x0bc2, 0x0bc7, 0x0bcc, 0x0bdc, 0x0be7, 0x0bee, 0x0bf6, - 0x0c00, 0x0c0a, 0x0c0a, 0x0c0a, 0x0c0a, 0x0c18, 0x0c18, 0x0c23, - 0x0c23, 0x0c23, 0x0c2c, 0x0c2c, 0x0c3d, 0x0c42, 0x0c42, 0x0c4c, - 0x0c53, 0x0c5d, 0x0c5d, 0x0c5d, 0x0c62, 0x0c68, 0x0c68, 0x0c68, - 0x0c68, 0x0c73, 0x0c76, 0x0c7d, 0x0c82, 0x0c98, 0x0c9f, 0x0ca4, - 0x0cab, 0x0cab, 0x0cab, 0x0cb0, 0x0cbc, 0x0cc4, 0x0cc4, 0x0cc4, - 0x0cc8, 0x0cc8, 0x0cce, 0x0cdc, 0x0ce6, 0x0ce6, 0x0cee, 0x0cf2, - 0x0cf2, 0x0cf8, 0x0cf8, 0x0cf8, 0x0d03, 0x0d0c, 0x0d16, 0x0d24, - // Entry 200 - 23F - 0x0d2b, 0x0d37, 0x0d46, 0x0d4b, 0x0d4b, 0x0d4b, 0x0d51, 0x0d55, - 0x0d5d, 0x0d5d, 0x0d6f, 0x0d81, 0x0d89, 0x0d89, 0x0d89, 0x0d8e, - 0x0d92, 0x0d98, 0x0d9d, 0x0da2, 0x0da5, 0x0dac, 0x0dac, 0x0db6, - 0x0dbd, 0x0dbd, 0x0dc5, 0x0dd0, 0x0dd9, 0x0dd9, 0x0dd9, 0x0dd9, - 0x0de2, 0x0de2, 0x0de9, 0x0def, 0x0df6, 0x0e00, 0x0e13, 0x0e19, - 0x0e22, 0x0e29, 0x0e2c, 0x0e2f, 0x0e2f, 0x0e2f, 0x0e2f, 0x0e2f, - 0x0e35, 0x0e35, 0x0e3a, 0x0e3a, 0x0e40, 0x0e45, 0x0e4a, 0x0e4a, - 0x0e4a, 0x0e50, 0x0e50, 0x0e54, 0x0e57, 0x0e5f, 0x0e5f, 0x0e5f, - // Entry 240 - 27F - 0x0e5f, 0x0e5f, 0x0e69, 0x0e73, 0x0e73, 0x0e79, 0x0e97, 0x0e9b, - 0x0eb7, 0x0ebb, 0x0ed5, 0x0ee9, 0x0f05, 0x0f18, 0x0f29, 0x0f3b, - 0x0f4d, 0x0f65, 0x0f76, 0x0f88, 0x0f9a, 0x0faf, 0x0fb8, 0x0fb8, - 0x0fb8, 0x0fc1, 0x0fcf, 0x0fe9, 0x1000, - }, - }, - { // bs-Cyrl - "афарÑкиабказијÑкиавеÑтанÑкиафриканерÑкиаканамхарÑкиарагонежанÑкиарапÑкиа" + - "ÑемијÑкиаварÑкиајмараазербејџанÑкибашкирбелоруÑкибугарÑкибиÑламабам" + - "барабенглаÑкитибетанÑкибретонÑкибоÑанÑкикаталонÑкичеченÑкичаморокор" + - "зиканÑкикричешкиÑтароÑловенÑкичувашкивелшкиданÑкинемачкидивехијÑкиџ" + - "онгаевегрчкиенглеÑкиеÑперантошпанÑкиеÑтонÑкибаÑкијÑкиперÑијÑкифулах" + - "финÑкифиджијÑкифарÑкифранцуÑкифризијÑкиирÑкишкотÑки галÑкигалÑкигва" + - "ранигуџаратиманкÑхауÑахебрејÑкихиндихири мотухрватÑкихаитÑкимађарÑк" + - "ијерменÑкихерероинтерлингваиндонежанÑкимеђујезичкиигбоÑичуан јиунуп" + - "иакидоиÑландÑкииталијанÑкиинуктитутјапанÑкијаванÑкигрузијÑкиконгоки" + - "кујукуањамакозачкикалалиÑуткмерÑкиканадакорејÑкиканурикашмирÑкикурд" + - "ÑкикомикорнишкикиргиÑкилатинÑкилукÑембуршкигандалимбургишлингалалао" + - "ÑкилитванÑкилуба-катангалетонÑкималагаÑијÑкимаршалÑкимаорÑкимакедон" + - "ÑкималајаламмонголÑкимаратималајÑкимелтешкибурманÑкинауруÑеверни нд" + - "ебеленепалÑкиндонгахоландÑкинорвешки њорÑкнорвешки бокмалјужни ндеб" + - "еленавахоњањапрованÑалÑкиојибваоромооријÑкиоÑетÑкипанџабÑкипалипољÑ" + - "кипаштунÑкипортугалÑкиквенчарето-романÑкирундирумунÑкируÑкикинјаруа" + - "ндаÑанÑкритÑардињаÑкиÑиндиÑеверни ÑамиÑангоÑингалеÑкиÑловачкиÑловен" + - "ачкиÑамоанÑкишонаÑомалÑкиалбанÑкиÑрпÑкиÑватиÑеÑотоÑуданÑкишведÑкиÑв" + - "ахилитамилÑкителугутађиктајландÑкитигрињатуркменÑкитÑванатонгатурÑк" + - "итÑонгататарÑкитахићанÑкиујгурÑкиукрајинÑкиурдуузбечкивендавијетнам" + - "ÑкиволапуквалунволофкÑхоÑајидишјорубажуангкинеÑкизулуачинеÑкиаколиа" + - "дангмејÑкиадигејÑкиафрихилиаинуакадијÑкиаљутјужни алтаиÑтароенглеÑк" + - "иангикаармајÑкиароканијÑкиарапахоаравакаÑтуријÑкиавадхибалучибалине" + - "зијÑкибаÑабејабембабојпурибиколбиниÑиÑикабрајбуриатбугинежанÑкиблин" + - "кадокарипÑкиатÑамÑкицебуаночибчачагатаичукеÑкимаричинукÑкичоктавÑки" + - "чипвијанÑкичерокичејенÑкикоптÑкикримеанÑки турÑкикашубијанÑкидакота" + - "даргваделаверÑлавÑкидогрибдинкадогриниÑки ÑорбијанÑкидуалаÑредњи хо" + - "ландÑкиђулаефикÑкиÑтароегипатÑкиекајукеламитÑкиÑредњи енглеÑкиевонд" + - "офангтагалогфонÑредњи француÑкиÑтарофранцуÑкиÑеверно-фризијÑкииÑточ" + - "ни фризијÑкифриулијÑкигагајогбајаџизгилбертшкиÑредњи виÑоки немачки" + - "ÑтаронемачкигондигоронталоготÑкигребоÑтарогрчкишвајцарÑки немачкигв" + - "ич’инхаидахавајÑкихилигајнонхититехмонггорњи ÑорбијÑкихупаибанилоко" + - "ингвишкилојбанјудео-перÑијÑкијудео-арапÑкикара-калпашкикабилекачинђ" + - "укамбакавикабардијÑкитјапкорокаÑикотанешкикимбундуконканикоÑреанÑки" + - "кпелекарачај-балкаркарелијÑкикурукхкумиккутенаиладиноландаламбалезг" + - "ианмонголозилуба-лулуалуиÑенолундалуолушаимадурешкимагахимаитилимак" + - "аÑармандингомаÑаимокшамандармендеÑредњи ирÑкимикмакминангкабауманчу" + - "манипуримахавÑкимоÑивише језикакришкимирандешкимарвариерзијанеаполи" + - "танÑкиниÑки немачкиневариниаÑниуеанногаиÑтари норÑкин’коÑеверни Ñот" + - "оклаÑични неварињамвезињанколењоронзимаоÑагеотоманÑки турÑкипангаÑи" + - "нÑкипахлавипампангапапиаментопалауанÑкиÑтароперÑијÑкифеничанÑкипонп" + - "ејÑкиÑтаропрованÑалÑкирађаÑтанирапануираротонганроманиароманијÑкиÑа" + - "ндавејакутÑамаританÑки арамејÑкиÑаÑакÑанталиÑицилијанÑкишкотÑкиÑелк" + - "апÑтароирÑкишанÑидамојужни Ñамилуле Ñамиинари ÑамиÑколтÑки језикÑон" + - "инкеÑоџијенÑкиÑрананÑки тонгоÑерерÑукумаÑуÑуÑумерÑкикоморÑкиклаÑичн" + - "и ÑиријÑкиÑиријÑкитимнетеренотетумтигретивтокелауклингонÑкитлингитт" + - "амашекњаÑа тонгаток пиÑинтÑимшиантумбукатувалутувинијÑкиудмуртугари" + - "Ñ‚ÑкиумбундурутваивотÑкиваламоварајвашокалмикјаојапешкикантонÑкизапо" + - "течкиблиÑимболизенагазунибез лингвиÑтичког ÑадржајазазаÐуÑтријÑки н" + - "емачкиШвајцарÑки виÑоки немачкиÐуÑтралијÑки енглеÑкиКанадÑки енглеÑ" + - "киБританÑки енглеÑкиСÐД енглеÑкиЛатино-амерички шпанÑкиИберијÑки шп" + - "анÑкиКанадÑки француÑкиШвајцарÑки француÑкифламанÑкиБразилÑки порту" + - "галÑкиИберијÑки португалÑкимолдавÑкиÑрпÑкохрватÑкикинеÑки (поједноÑ" + - "тављен)кинеÑки (традиционални)", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x000e, 0x0022, 0x0036, 0x004e, 0x0056, 0x0066, 0x0080, - 0x008e, 0x00a0, 0x00ae, 0x00ba, 0x00d4, 0x00e0, 0x00f2, 0x0102, - 0x0110, 0x011e, 0x0130, 0x0144, 0x0156, 0x0166, 0x017a, 0x018a, - 0x0196, 0x01ac, 0x01b2, 0x01bc, 0x01d8, 0x01e6, 0x01f2, 0x01fe, - 0x020c, 0x0220, 0x022a, 0x0230, 0x023a, 0x024a, 0x025c, 0x026a, - 0x027a, 0x028c, 0x029e, 0x02a8, 0x02b4, 0x02c6, 0x02d2, 0x02e4, - 0x02f6, 0x0300, 0x031b, 0x0327, 0x0335, 0x0345, 0x034f, 0x0359, - 0x036b, 0x0375, 0x0386, 0x0396, 0x03a4, 0x03b4, 0x03c6, 0x03d2, - // Entry 40 - 7F - 0x03e8, 0x0400, 0x0416, 0x041e, 0x042f, 0x043d, 0x0443, 0x0455, - 0x046b, 0x047d, 0x048d, 0x049d, 0x04af, 0x04b9, 0x04c5, 0x04d3, - 0x04e1, 0x04f3, 0x0501, 0x050d, 0x051d, 0x0529, 0x053b, 0x0549, - 0x0551, 0x0561, 0x0571, 0x0581, 0x0599, 0x05a3, 0x05b5, 0x05c3, - 0x05cf, 0x05e1, 0x05f8, 0x0608, 0x0620, 0x0632, 0x0640, 0x0654, - 0x0666, 0x0678, 0x0684, 0x0694, 0x06a4, 0x06b6, 0x06c0, 0x06dd, - 0x06ed, 0x06f9, 0x070b, 0x0726, 0x0743, 0x075c, 0x0768, 0x0770, - 0x0788, 0x0794, 0x079e, 0x07ac, 0x07ba, 0x07cc, 0x07d4, 0x07e0, - // Entry 80 - BF - 0x07f2, 0x0808, 0x0814, 0x082d, 0x0837, 0x0847, 0x0851, 0x0867, - 0x0877, 0x088b, 0x0895, 0x08ac, 0x08b6, 0x08ca, 0x08da, 0x08ee, - 0x0900, 0x0908, 0x0918, 0x0928, 0x0934, 0x093e, 0x094a, 0x095a, - 0x0968, 0x0976, 0x0986, 0x0992, 0x099c, 0x09b0, 0x09be, 0x09d2, - 0x09de, 0x09e8, 0x09f4, 0x0a00, 0x0a10, 0x0a24, 0x0a34, 0x0a48, - 0x0a50, 0x0a5e, 0x0a68, 0x0a7e, 0x0a8c, 0x0a96, 0x0aa0, 0x0aac, - 0x0ab6, 0x0ac2, 0x0acc, 0x0ada, 0x0ae2, 0x0af2, 0x0afc, 0x0b12, - 0x0b24, 0x0b24, 0x0b34, 0x0b34, 0x0b3c, 0x0b4e, 0x0b4e, 0x0b56, - // Entry C0 - FF - 0x0b56, 0x0b6b, 0x0b85, 0x0b91, 0x0ba1, 0x0bb7, 0x0bb7, 0x0bc5, - 0x0bc5, 0x0bd1, 0x0bd1, 0x0bd1, 0x0bd1, 0x0bd1, 0x0be5, 0x0be5, - 0x0bf1, 0x0bf1, 0x0bfd, 0x0c15, 0x0c15, 0x0c1d, 0x0c1d, 0x0c1d, - 0x0c1d, 0x0c25, 0x0c2f, 0x0c2f, 0x0c2f, 0x0c2f, 0x0c2f, 0x0c3d, - 0x0c47, 0x0c4f, 0x0c4f, 0x0c4f, 0x0c5b, 0x0c5b, 0x0c5b, 0x0c63, - 0x0c63, 0x0c63, 0x0c63, 0x0c6f, 0x0c87, 0x0c87, 0x0c8f, 0x0c8f, - 0x0c97, 0x0ca7, 0x0ca7, 0x0cb7, 0x0cc5, 0x0cc5, 0x0ccf, 0x0cdd, - 0x0ceb, 0x0cf3, 0x0d03, 0x0d15, 0x0d2b, 0x0d37, 0x0d47, 0x0d47, - // Entry 100 - 13F - 0x0d55, 0x0d55, 0x0d76, 0x0d8e, 0x0d9a, 0x0da6, 0x0da6, 0x0db4, - 0x0dc2, 0x0dce, 0x0dd8, 0x0dd8, 0x0de2, 0x0e03, 0x0e03, 0x0e0d, - 0x0e2c, 0x0e2c, 0x0e34, 0x0e34, 0x0e34, 0x0e42, 0x0e42, 0x0e5e, - 0x0e6a, 0x0e7c, 0x0e99, 0x0e99, 0x0ea5, 0x0ea5, 0x0ead, 0x0ebb, - 0x0ebb, 0x0ec1, 0x0ec1, 0x0ee0, 0x0efc, 0x0efc, 0x0f1d, 0x0f3e, - 0x0f52, 0x0f56, 0x0f56, 0x0f56, 0x0f5e, 0x0f68, 0x0f68, 0x0f6e, - 0x0f82, 0x0f82, 0x0faa, 0x0fc2, 0x0fc2, 0x0fcc, 0x0fde, 0x0fea, - 0x0ff4, 0x1008, 0x102b, 0x102b, 0x102b, 0x102b, 0x103a, 0x1044, - // Entry 140 - 17F - 0x1044, 0x1054, 0x1054, 0x1068, 0x1074, 0x107e, 0x109b, 0x109b, - 0x10a3, 0x10ab, 0x10ab, 0x10b5, 0x10c5, 0x10c5, 0x10c5, 0x10d1, - 0x10d1, 0x10d1, 0x10ee, 0x1107, 0x1107, 0x1120, 0x112c, 0x1136, - 0x113a, 0x1144, 0x114c, 0x1162, 0x1162, 0x116a, 0x116a, 0x116a, - 0x116a, 0x1172, 0x1172, 0x117a, 0x118c, 0x118c, 0x118c, 0x118c, - 0x118c, 0x118c, 0x119c, 0x119c, 0x11aa, 0x11be, 0x11c8, 0x11e3, - 0x11e3, 0x11e3, 0x11f7, 0x1203, 0x1203, 0x1203, 0x1203, 0x120d, - 0x121b, 0x1227, 0x1227, 0x1231, 0x123b, 0x1249, 0x1249, 0x1249, - // Entry 180 - 1BF - 0x1249, 0x1249, 0x1249, 0x1253, 0x125b, 0x125b, 0x126e, 0x127c, - 0x1286, 0x128c, 0x1296, 0x1296, 0x1296, 0x1296, 0x12a8, 0x12a8, - 0x12b4, 0x12c2, 0x12d0, 0x12e0, 0x12ea, 0x12ea, 0x12f4, 0x1300, - 0x130a, 0x130a, 0x130a, 0x1321, 0x1321, 0x1321, 0x132d, 0x1343, - 0x134d, 0x135d, 0x136d, 0x1375, 0x1375, 0x1375, 0x138a, 0x1396, - 0x13aa, 0x13b8, 0x13b8, 0x13b8, 0x13c4, 0x13c4, 0x13c4, 0x13de, - 0x13de, 0x13f7, 0x1403, 0x140b, 0x1417, 0x1417, 0x1417, 0x1417, - 0x1421, 0x1438, 0x1438, 0x1441, 0x1458, 0x1458, 0x1475, 0x1483, - // Entry 1C0 - 1FF - 0x1491, 0x1499, 0x14a3, 0x14ad, 0x14cc, 0x14e2, 0x14f0, 0x1500, - 0x1514, 0x1528, 0x1528, 0x1528, 0x1528, 0x1544, 0x1544, 0x1558, - 0x1558, 0x1558, 0x156a, 0x156a, 0x158c, 0x158c, 0x158c, 0x159e, - 0x15ac, 0x15c0, 0x15c0, 0x15c0, 0x15c0, 0x15cc, 0x15cc, 0x15cc, - 0x15cc, 0x15e2, 0x15e2, 0x15f0, 0x15fa, 0x1625, 0x1625, 0x162f, - 0x163d, 0x163d, 0x163d, 0x163d, 0x1655, 0x1663, 0x1663, 0x1663, - 0x1663, 0x1663, 0x166f, 0x166f, 0x1683, 0x1683, 0x1683, 0x1689, - 0x1689, 0x1695, 0x1695, 0x1695, 0x16a8, 0x16b9, 0x16cc, 0x16e7, - // Entry 200 - 23F - 0x16f5, 0x1709, 0x1726, 0x1730, 0x1730, 0x1730, 0x173c, 0x1744, - 0x1754, 0x1764, 0x1764, 0x1785, 0x1795, 0x1795, 0x1795, 0x179f, - 0x179f, 0x17ab, 0x17b5, 0x17bf, 0x17c5, 0x17d3, 0x17d3, 0x17e7, - 0x17f5, 0x17f5, 0x1803, 0x1816, 0x1827, 0x1827, 0x1827, 0x1827, - 0x1837, 0x1837, 0x1845, 0x1851, 0x1851, 0x1865, 0x1865, 0x1871, - 0x1883, 0x1891, 0x1897, 0x189d, 0x189d, 0x189d, 0x189d, 0x189d, - 0x18a9, 0x18a9, 0x18a9, 0x18a9, 0x18b5, 0x18bf, 0x18c7, 0x18c7, - 0x18c7, 0x18d3, 0x18d3, 0x18d3, 0x18d9, 0x18e7, 0x18e7, 0x18e7, - // Entry 240 - 27F - 0x18e7, 0x18f9, 0x190b, 0x191f, 0x191f, 0x192b, 0x192b, 0x1933, - 0x1965, 0x196d, 0x196d, 0x1990, 0x19c0, 0x19e9, 0x1a0a, 0x1a2d, - 0x1a44, 0x1a70, 0x1a91, 0x1a91, 0x1ab4, 0x1adb, 0x1aed, 0x1b16, - 0x1b3f, 0x1b51, 0x1b6d, 0x1b9a, 0x1bc5, - }, - }, - { // ca - caLangStr, - caLangIdx, - }, - { // cgg - "OrukaniOrumarikiOruharabuOruberarusiOruburugariyaOrubengariOruceekiOrugi" + - "rimaaniOruguriikiOrungyerezaOrusupaaniOrupaasiyaOrufaransaOruhausaOr" + - "uhindiOruhangareOruindoneziaOruiboOruyitareOrujapaaniOrujavaOrukambo" + - "diyaOrukoreyaOrumalesiyaOruburumaOrunepaliOrudaakiOrupungyabiOrupoor" + - "iOrupocugoOruromaniaOrurrashaOrunyarwandaOrusomaariOruswidiOrutamiri" + - "OrutailandiOrukurukiOrukurainiOru-UruduOruviyetinaamuOruyorubaOrucha" + - "inaOruzuruRukiga", - []uint16{ // 246 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0010, 0x0010, - 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0024, 0x0031, - 0x0031, 0x0031, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, - 0x003b, 0x003b, 0x003b, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, - 0x004f, 0x004f, 0x004f, 0x004f, 0x0059, 0x0064, 0x0064, 0x006e, - 0x006e, 0x006e, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0082, - 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x008a, - 0x008a, 0x0092, 0x0092, 0x0092, 0x0092, 0x009c, 0x009c, 0x009c, - // Entry 40 - 7F - 0x009c, 0x00a8, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00b7, 0x00b7, 0x00c1, 0x00c8, 0x00c8, 0x00c8, 0x00c8, 0x00c8, - 0x00c8, 0x00c8, 0x00d4, 0x00d4, 0x00dd, 0x00dd, 0x00dd, 0x00dd, - 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, - 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, - 0x00dd, 0x00dd, 0x00dd, 0x00e8, 0x00e8, 0x00f1, 0x00f1, 0x00f1, - 0x00fa, 0x00fa, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, - 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x010d, 0x010d, 0x0115, - // Entry 80 - BF - 0x0115, 0x011e, 0x011e, 0x011e, 0x011e, 0x0128, 0x0131, 0x013d, - 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, - 0x013d, 0x013d, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, - 0x014f, 0x014f, 0x0158, 0x0158, 0x0158, 0x0163, 0x0163, 0x0163, - 0x0163, 0x0163, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x0176, - 0x017f, 0x017f, 0x017f, 0x018d, 0x018d, 0x018d, 0x018d, 0x018d, - 0x018d, 0x0196, 0x0196, 0x019f, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - // Entry C0 - FF - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01ac, - }, - }, - { // chr - "Ꭰá‚á“á¥áŽ©áŽµááá†á‚ᎦᎸá¥áŽ¬á©áŽµá²á¥áŽ¢á£á©á‚áá‰á§áŽ¦áŽµá²á‚Ꭲá“Ꮆá‚ᎨᎦá³áŽ¦áŽ á£á—á£áŽ³áŽ©áŽ¼áŽ»áŽ¦áŽ áŽ«áŒáá‚Ꭶá„á¬áŽµáá›áŽ¾ Ꭶá¬á‚Ꭿáá—", - []uint16{ // 555 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x0015, 0x0015, 0x001e, - 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0027, - 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, - 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, - // Entry 40 - 7F - 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, - 0x0039, 0x0039, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - // Entry 80 - BF - 0x0045, 0x0051, 0x0051, 0x0051, 0x0051, 0x0051, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - // Entry C0 - FF - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, - 0x006f, 0x006f, 0x006f, 0x0078, 0x0078, 0x0081, 0x0081, 0x0081, - // Entry 100 - 13F - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - // Entry 140 - 17F - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - // Entry 180 - 1BF - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x0093, - 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, - 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, - 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, - // Entry 1C0 - 1FF - 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, - 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, - 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, - 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, - 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, - 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x009c, - 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, - 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, - // Entry 200 - 23F - 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, - 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, - 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, - 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, - 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, - 0x009c, 0x009c, 0x00c1, - }, - }, - { // cs - csLangStr, - csLangIdx, - }, - { // cy - "AffaregAbchasegAfestanegAffricânegAcanegAmharegAragonegArabegAsamegAfare" + - "gAserbaijanegBashcortegBelarwsegBwlgaregBislamaBambaregBengalegTibet" + - "egLlydawegBosniegCatalanegTsietsienegTsiamorroCorsegCriTsiecegHen Sl" + - "afonegCymraegDanegAlmaenegDifehiEweGroegSaesnegEsperantoSbaenegEston" + - "egBasgegPersegFfwlaFfinnegFfijïegFfaröegFfrangegFfriseg y GorllewinG" + - "wyddelegGaeleg yr AlbanGalisiegGuaraníGwjaratiManawegHawsaHebraegHin" + - "diCroategCreol HaitiHwngaregArmenegHereroInterlinguaIndonesegInterli" + - "ngueIgboNwoswInwpiacegIslandegEidalegInwctitwtJapaneegJafanaegGeorge" + - "gCongokiCasachegChmeregKannadaCoreegCanwriCashmiregCwrdegComiCernywe" + - "gCirgisegLladinLwcsembwrgegGandaLimbwrgegLingalaLaoegLithwanegLatfie" + - "gMalagasegMarsialegMaoriMacedonegMalayalamMongolegMarathiMaleiegMalt" + - "egByrmanegNawrŵegNdebele GogleddolNepalegNdongaIseldiregNorwyeg Nyno" + - "rskNorwyeg BokmÃ¥lNdebele DeheuolNafahoNianjaOcsitanegOjibwaOromoOriy" + - "aOsetegPwnjabegPaliPwylegPashtoPortiwgeegQuechuaRomaunschRwndiRwmane" + - "gRwsegCiniarŵandegSansgritSardegSindhiSami GogleddolSangoSinhalegSlo" + - "facegSlofenegSamöegSomalegAlbanegSerbegSesothegSwndanegSwedegSwahili" + - "TamilegTeluguTajicegThaiTigrinyaTwrcmenegTswanaTongegTyrcegTsongaegT" + - "ataregUighurWcreinegWrdwWsbecegFendegFietnamegWalwnegWoloffXhosaIdde" + - "w-AlmaenegIorwbaTsieineegSwlwAcehnegAcoliAdangmegCircaseg Gorllewino" + - "lArabeg TunisiaAffrihiliAghemegAinŵegAcadegAlabamäegAlewtegGhegeg Al" + - "baniaAltäeg DeheuolHen SaesnegAramaegArawcanegAraonaegArapahoArabeg " + - "AlgeriaArawacegArabeg MorocoArabeg yr AifftIaith Arwyddion AmericaAs" + - "erbaijaneg DeheuolBalwtsiBalïegBasâegBamwmegBejäegBembegBenaComegBra" + - "huiBwriategBwlwCadoCaribegAtsamegMariegSioctoTsierocîCheyenneCwrdeg " + - "SoraniCoptegTyrceg y CrimeaDacotaegDargwaDincaZarmaegDogriSorbeg Isa" + - "fIseldireg CanolEmbwHen EifftegElamegSaesneg CanolEwondoExtremadureg" + - "FfilipinegFfinneg TornedalFfrangeg CajwnFfrangeg CanolHen FfrangegFf" + - "riseg y GogleddFfriseg y DwyrainFfriwlegGaioGbaiaDareg y Zoroastriai" + - "dGilbertegUchel Almaeneg CanolHen Uchel AlmaenegGothegHen RoegAlmaen" + - "eg y SwistirHaidaHawäiegHethegHmongegSorbeg UchafIbanegIbibioIlocane" + - "gIngwsiegMatsiameIddew-BersiegIddew-ArabegCara-CalpacegCabilegCambaC" + - "ircaseg DwyreiniolMacondegCaboferdianegCàsegConcaniCarelegBaffiaCwle" + - "negCwmicegIddew-SbaenegLangiLahndaLambaLezghegLombardegMongoLoziLatg" + - "aliegLwndaLŵoLwshaiegLwyiaMadwregMagahiMaithiliMacasaregMandingoMasa" + - "iMocsiaMandaregMendegMêrwGwyddeleg CanolMicmacegManshwManipwriMohoce" + - "gMosiMasmwy nag un iaithMirandegMarwariNapliegIsel AlmaenegNewaegHen" + - " NorsegSotho GogleddolNŵeregHen NewariNiamweziNiancoleNioroNzimegOsa" + - "gegTyrceg OtomanPangasinegPahlafiPampangaPicardegAlmaeneg Pensylfani" + - "aHen BersiegAlmaeneg PalatinPhoenicegPiedmontegPohnpeianegPrwsegHen " + - "BrofensalegK’iche’RajasthanegRapanŵiRaratongegRomboRomaniRotumanegAr" + - "omanegRwaSandäwegAramaeg SamariaSambŵrwSasacegSantaliNgambeiegSangwS" + - "isilegSgotegSasareseg SardiniaSenecaSelcypegHen WyddelegArabeg ChadS" + - "idamoIs-silesiegSami DeheuolSami LwleSami InariSami ScoltSonincegSog" + - "degSwcwmaSwsŵegSwmeregComoregSwahili’r CongoHen SyriegSyriegSilesieg" + - "TuluTimnegTetumegKlingonTamashecegTwfalwegFotiacegWgaritegUmbunduy G" + - "wraiddFaiegFenisegFflemeg GorllewinolWalamoCalmycegIembaegCantoneegZ" + - "apotecegBlisssymbolsZêlandegTamazight Safonol MorocoZuniDim cynnwys " + - "ieithyddolZazäegArabeg Modern SafonolAlmaeneg AwstriaAlmaeneg Safono" + - "l y SwistirSaesneg AwstraliaSaesneg CanadaSaesneg PrydainSaesneg Ame" + - "ricaSbaeneg America LadinSbaeneg EwropSbaeneg MecsicoFfrangeg Canada" + - "Ffrangeg y SwistirFflemegPortiwgeeg BrasilPortiwgeeg EwropMoldofegSe" + - "rbo-CroategTsieineeg SymledigTsieineeg Traddodiadol", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0007, 0x000f, 0x0018, 0x0023, 0x0029, 0x0030, 0x0038, - 0x003e, 0x0044, 0x004a, 0x004a, 0x0056, 0x0060, 0x0069, 0x0071, - 0x0078, 0x0080, 0x0088, 0x008f, 0x0097, 0x009e, 0x00a7, 0x00b2, - 0x00bb, 0x00c1, 0x00c4, 0x00cb, 0x00d7, 0x00d7, 0x00de, 0x00e3, - 0x00eb, 0x00f1, 0x00f1, 0x00f4, 0x00f9, 0x0100, 0x0109, 0x0110, - 0x0117, 0x011d, 0x0123, 0x0128, 0x012f, 0x0137, 0x013f, 0x0147, - 0x015a, 0x0163, 0x0172, 0x017a, 0x0182, 0x018a, 0x0191, 0x0196, - 0x019d, 0x01a2, 0x01a2, 0x01a9, 0x01b4, 0x01bc, 0x01c3, 0x01c9, - // Entry 40 - 7F - 0x01d4, 0x01dd, 0x01e8, 0x01ec, 0x01f1, 0x01fa, 0x01fa, 0x0202, - 0x0209, 0x0212, 0x021a, 0x0222, 0x0229, 0x022e, 0x0230, 0x0230, - 0x0238, 0x0238, 0x023f, 0x0246, 0x024c, 0x0252, 0x025b, 0x0261, - 0x0265, 0x026d, 0x0275, 0x027b, 0x0287, 0x028c, 0x0295, 0x029c, - 0x02a1, 0x02aa, 0x02aa, 0x02b1, 0x02ba, 0x02c3, 0x02c8, 0x02d1, - 0x02da, 0x02e2, 0x02e9, 0x02f0, 0x02f6, 0x02fe, 0x0306, 0x0317, - 0x031e, 0x0324, 0x032d, 0x033c, 0x034b, 0x035a, 0x0360, 0x0366, - 0x036f, 0x0375, 0x037a, 0x037f, 0x0385, 0x038d, 0x0391, 0x0397, - // Entry 80 - BF - 0x039d, 0x03a7, 0x03ae, 0x03b7, 0x03bc, 0x03c3, 0x03c8, 0x03d5, - 0x03dd, 0x03e3, 0x03e9, 0x03f7, 0x03fc, 0x0404, 0x040c, 0x0414, - 0x041b, 0x041b, 0x0422, 0x0429, 0x042f, 0x042f, 0x0437, 0x043f, - 0x0445, 0x044c, 0x0453, 0x0459, 0x0460, 0x0464, 0x046c, 0x0475, - 0x047b, 0x0481, 0x0487, 0x048f, 0x0496, 0x0496, 0x049c, 0x04a4, - 0x04a8, 0x04af, 0x04b5, 0x04be, 0x04be, 0x04c5, 0x04cb, 0x04d0, - 0x04de, 0x04e4, 0x04e4, 0x04ed, 0x04f1, 0x04f8, 0x04fd, 0x0505, - 0x0519, 0x0527, 0x0530, 0x0537, 0x053e, 0x0544, 0x054e, 0x0555, - // Entry C0 - FF - 0x0563, 0x0572, 0x057d, 0x057d, 0x0584, 0x058d, 0x0595, 0x059c, - 0x05aa, 0x05b2, 0x05bf, 0x05ce, 0x05ce, 0x05e5, 0x05e5, 0x05e5, - 0x05e5, 0x05f9, 0x0600, 0x0607, 0x0607, 0x060e, 0x0615, 0x0615, - 0x0615, 0x061c, 0x0622, 0x0622, 0x0626, 0x0626, 0x0626, 0x0626, - 0x0626, 0x0626, 0x0626, 0x062b, 0x062b, 0x062b, 0x062b, 0x062b, - 0x0631, 0x0631, 0x0631, 0x0639, 0x0639, 0x063d, 0x063d, 0x063d, - 0x0641, 0x0648, 0x0648, 0x064f, 0x064f, 0x064f, 0x064f, 0x064f, - 0x064f, 0x0655, 0x0655, 0x065b, 0x065b, 0x0664, 0x066c, 0x0679, - // Entry 100 - 13F - 0x067f, 0x067f, 0x068e, 0x068e, 0x0696, 0x069c, 0x069c, 0x069c, - 0x069c, 0x069c, 0x06a1, 0x06a8, 0x06ad, 0x06b8, 0x06b8, 0x06b8, - 0x06c7, 0x06c7, 0x06c7, 0x06c7, 0x06cb, 0x06cb, 0x06cb, 0x06d6, - 0x06d6, 0x06dc, 0x06e9, 0x06e9, 0x06ef, 0x06fb, 0x06fb, 0x0705, - 0x0715, 0x0715, 0x0723, 0x0731, 0x073d, 0x073d, 0x074e, 0x075f, - 0x0767, 0x0767, 0x0767, 0x0767, 0x076b, 0x0770, 0x0784, 0x0784, - 0x078d, 0x078d, 0x07a1, 0x07b3, 0x07b3, 0x07b3, 0x07b3, 0x07b9, - 0x07b9, 0x07c1, 0x07d3, 0x07d3, 0x07d3, 0x07d3, 0x07d3, 0x07d8, - // Entry 140 - 17F - 0x07d8, 0x07e0, 0x07e0, 0x07e0, 0x07e6, 0x07ed, 0x07f9, 0x07f9, - 0x07f9, 0x07ff, 0x0805, 0x080d, 0x0815, 0x0815, 0x0815, 0x0815, - 0x0815, 0x081d, 0x082a, 0x0836, 0x0836, 0x0843, 0x084a, 0x084a, - 0x084a, 0x084f, 0x084f, 0x0862, 0x0862, 0x0862, 0x086a, 0x0877, - 0x0877, 0x0877, 0x0877, 0x087d, 0x087d, 0x087d, 0x087d, 0x087d, - 0x087d, 0x087d, 0x087d, 0x087d, 0x0884, 0x0884, 0x0884, 0x0884, - 0x0884, 0x0884, 0x088b, 0x088b, 0x088b, 0x0891, 0x0898, 0x089f, - 0x089f, 0x08ac, 0x08b1, 0x08b7, 0x08bc, 0x08c3, 0x08c3, 0x08c3, - // Entry 180 - 1BF - 0x08c3, 0x08c3, 0x08cc, 0x08d1, 0x08d5, 0x08de, 0x08de, 0x08de, - 0x08e3, 0x08e7, 0x08ef, 0x08f4, 0x08f4, 0x08f4, 0x08fb, 0x08fb, - 0x0901, 0x0909, 0x0912, 0x091a, 0x091f, 0x091f, 0x0925, 0x092d, - 0x0933, 0x0938, 0x0938, 0x0947, 0x0947, 0x0947, 0x094f, 0x094f, - 0x0955, 0x095d, 0x0964, 0x0968, 0x0968, 0x096b, 0x097b, 0x097b, - 0x0983, 0x098a, 0x098a, 0x098a, 0x098a, 0x098a, 0x098a, 0x0991, - 0x0991, 0x099e, 0x09a4, 0x09a4, 0x09a4, 0x09a4, 0x09a4, 0x09a4, - 0x09a4, 0x09ae, 0x09ae, 0x09ae, 0x09bd, 0x09c4, 0x09ce, 0x09d6, - // Entry 1C0 - 1FF - 0x09de, 0x09e3, 0x09e9, 0x09ef, 0x09fc, 0x0a06, 0x0a0d, 0x0a15, - 0x0a15, 0x0a15, 0x0a1d, 0x0a31, 0x0a31, 0x0a3c, 0x0a4c, 0x0a55, - 0x0a5f, 0x0a5f, 0x0a6a, 0x0a70, 0x0a7f, 0x0a8a, 0x0a8a, 0x0a95, - 0x0a9d, 0x0aa7, 0x0aa7, 0x0aa7, 0x0aac, 0x0ab2, 0x0abb, 0x0abb, - 0x0abb, 0x0ac3, 0x0ac6, 0x0acf, 0x0acf, 0x0ade, 0x0ae6, 0x0aed, - 0x0af4, 0x0af4, 0x0afd, 0x0b02, 0x0b09, 0x0b0f, 0x0b21, 0x0b27, - 0x0b27, 0x0b27, 0x0b2f, 0x0b2f, 0x0b3b, 0x0b3b, 0x0b3b, 0x0b3b, - 0x0b46, 0x0b4c, 0x0b57, 0x0b57, 0x0b63, 0x0b6c, 0x0b76, 0x0b80, - // Entry 200 - 23F - 0x0b88, 0x0b8e, 0x0b8e, 0x0b8e, 0x0b8e, 0x0b8e, 0x0b94, 0x0b9b, - 0x0ba2, 0x0ba9, 0x0bba, 0x0bc4, 0x0bca, 0x0bd2, 0x0bd6, 0x0bdc, - 0x0bdc, 0x0bdc, 0x0be3, 0x0be3, 0x0be3, 0x0be3, 0x0be3, 0x0bea, - 0x0bea, 0x0bea, 0x0bf4, 0x0bf4, 0x0bf4, 0x0bf4, 0x0bf4, 0x0bf4, - 0x0bf4, 0x0bf4, 0x0bf4, 0x0bfc, 0x0bfc, 0x0bfc, 0x0bfc, 0x0c04, - 0x0c0c, 0x0c13, 0x0c1c, 0x0c21, 0x0c28, 0x0c28, 0x0c3b, 0x0c3b, - 0x0c3b, 0x0c3b, 0x0c3b, 0x0c3b, 0x0c41, 0x0c41, 0x0c41, 0x0c41, - 0x0c41, 0x0c49, 0x0c49, 0x0c49, 0x0c49, 0x0c49, 0x0c49, 0x0c50, - // Entry 240 - 27F - 0x0c50, 0x0c59, 0x0c62, 0x0c6e, 0x0c77, 0x0c77, 0x0c8f, 0x0c93, - 0x0ca9, 0x0cb0, 0x0cc5, 0x0cd5, 0x0cef, 0x0d00, 0x0d0e, 0x0d1d, - 0x0d2c, 0x0d41, 0x0d4e, 0x0d5d, 0x0d6c, 0x0d7e, 0x0d85, 0x0d96, - 0x0da6, 0x0dae, 0x0dbb, 0x0dcd, 0x0de3, - }, - }, - { // da - daLangStr, - daLangIdx, - }, - { // dav - "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + - "ikiKingerezaKihispaniaKiajemiKifaransaKihausaKihindiKihungariKiindon" + - "esiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaK" + - "inepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKi" + - "somaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyo" + - "rubaKichinaKizuluKitaita", - []uint16{ // 263 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, - 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, - 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0054, 0x0054, 0x005e, - 0x005e, 0x005e, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006e, - 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0075, - 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, - // Entry 40 - 7F - 0x0085, 0x0090, 0x0090, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, - 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, - 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, - 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, - // Entry 80 - BF - 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, - 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, - 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, - 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0132, 0x0132, 0x0132, - 0x0132, 0x0132, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x0143, - 0x0149, 0x0149, 0x0149, 0x0154, 0x0154, 0x0154, 0x0154, 0x0154, - 0x0154, 0x015c, 0x015c, 0x0163, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry C0 - FF - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 100 - 13F - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0170, - }, - }, - { // de - deLangStr, - deLangIdx, - }, - { // de-CH - "WeissrussischAltpreussisch", - []uint16{ // 468 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - // Entry 40 - 7F - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - // Entry 80 - BF - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - // Entry C0 - FF - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - // Entry 100 - 13F - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - // Entry 140 - 17F - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - // Entry 180 - 1BF - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - // Entry 1C0 - 1FF - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x001a, - }, - }, - { // dje - "Akan senniAmhaarik senniLaaraw senniBelaruus senniBulagaari senniBengali" + - " senniCek senniAlmaÅ‹ senniGrek senniInglisi senniEspaaɲe senniFarsi " + - "senniFransee senniHawsance senniInduu senniHungaari senniIndoneesi s" + - "enniIboo senniItaali senniJaponee senniJavanee senniKmeer senniKoree" + - " senniMaleezi senniBurme senniNeepal senniHolandee senniPunjaabi sen" + - "niiPolonee senniPortugee senniRumaani senniRuusi senniRwanda senniSo" + - "maali senniSuweede senniTamil senniTaailandu senniTurku senniUkreen " + - "senniUrdu senniVietnaam senniYorbance senniSinuwa senniZulu senniZar" + - "maciine", - []uint16{ // 268 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0018, 0x0018, - 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0032, 0x0041, - 0x0041, 0x0041, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, - 0x004e, 0x004e, 0x004e, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, - 0x0063, 0x0063, 0x0063, 0x0063, 0x006d, 0x007a, 0x007a, 0x0088, - 0x0088, 0x0088, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x00a0, - 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00ae, - 0x00ae, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00c7, 0x00c7, 0x00c7, - // Entry 40 - 7F - 0x00c7, 0x00d6, 0x00d6, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, - 0x00ec, 0x00ec, 0x00f9, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x0111, 0x0111, 0x011c, 0x011c, 0x011c, 0x011c, - 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, - 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, - 0x011c, 0x011c, 0x011c, 0x0129, 0x0129, 0x0134, 0x0134, 0x0134, - 0x0140, 0x0140, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, - 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x015d, 0x015d, 0x016a, - // Entry 80 - BF - 0x016a, 0x0178, 0x0178, 0x0178, 0x0178, 0x0185, 0x0190, 0x019c, - 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, - 0x019c, 0x019c, 0x01a9, 0x01a9, 0x01a9, 0x01a9, 0x01a9, 0x01a9, - 0x01b6, 0x01b6, 0x01c1, 0x01c1, 0x01c1, 0x01d0, 0x01d0, 0x01d0, - 0x01d0, 0x01d0, 0x01db, 0x01db, 0x01db, 0x01db, 0x01db, 0x01e7, - 0x01f1, 0x01f1, 0x01f1, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, - 0x01ff, 0x020d, 0x020d, 0x0219, 0x0223, 0x0223, 0x0223, 0x0223, - 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, - // Entry C0 - FF - 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, - 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, - 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, - 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, - 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, - 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, - 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, - 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, - // Entry 100 - 13F - 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, - 0x0223, 0x0223, 0x0223, 0x022d, - }, - }, - { // dsb - "afaršćinaabchazšćinaafrikansakanšćinaamharšćinaaragonšćinaarabšćinaasamÅ¡" + - "ćinaawaršćinaaymaršćinaazerbajdžanšćinabaÅ¡kiršćinaběłorušćinabulgar" + - "šćinabislamšćinabambarabengalšćinatibetšćinabretonšćinabosnišćinaka" + - "tanlanšćinaÄamoršćinakorsišćinakriÄešćinawalizišćinadanšćinanimšćina" + - "divehidzongkhaewegrichišćinaengelšćinaesperantoÅ¡pańšćinaestišćinabas" + - "kišćinapersišćinafinšćinafidžišćinaferejšćinafrancojšćinafrizišćinai" + - "ršćinaÅ¡otišćinagalicišćinaguaranigudžaratšćinamanšćinahausahebrejšći" + - "nahindišćinachorwatšćinahaitišćinahungoršćinaarmeńšćinainterlinguain" + - "donešćinaigbosichuan yiinupiakidoislandšćinaitalšćinainuitšćinajapaÅ„" + - "šćinajavašćinageorgišćinakikuyukazachšćinagrönlandšćinakambodžanšći" + - "nakannadšćinakorejańšćinakaÅ¡miršćinakurdišćinakornišćinakirgišćinaÅ‚a" + - "tyńšćinaluxemburgšćinagandšćinalimburšćinalingalalaošćinalitawšćinal" + - "uba-katangaletišćinamalgašćinamaorišćinamakedońšćinamalajamšćinamong" + - "olšćinamaratišćinamalajšćinamaltašćinaburmašćinanaurušćinapódpoÅ‚nocn" + - "e ndebelenepalšćinanižozemšćinanorwegske nynorsknorwegske bokmÃ¥lnava" + - "hookcitanšćinaoromoorojišćinapandžabšćinapólšćinapaÅ¡tunšćinaportugal" + - "šćinakeÄuaretoromańšćinakirundišćinarumunšćinarušćinakinjarwandasan" + - "skritsardinšćinasindšćinalapšćinasangosingalšćinasÅ‚owakšćinasÅ‚owjeÅ„Å¡" + - "ćinasamošćinaÅ¡onšćinasomališćinaalbanšćinaserbišćinasiswatipódpoÅ‚dn" + - "jowa sotšćina (Sesotho)sundanšćinaÅ¡wedšćinaswahilišćinatamilšćinatel" + - "ugšćinatadžikišćinathailandšćinatigrinjaturkmeńšćinatswanatonganšćin" + - "aturkojšćinatsongatataršćinatahitišćinaujguršćinaukrainšćinaurdušćin" + - "ausbekšćinavietnamšćinavolapükwalonšćinawolofxhosajidišćinajorubšćin" + - "azhuangchinšćinazuluaghemanglosaksojšćinaarawkašćinapareasturšćinabe" + - "mbabenabodobugišćinachigachoctawšćinacherokeesoranitaitazarmadolnose" + - "rbšćinadualajola-fonyiembufilipinšćinagagauzšćinagotišćinaÅ¡wicarska " + - "nimšćinagusiihawaiišćinagórnoserbšćinangombamachamekabylšćinakambama" + - "kondekapverdšćinakoyra chiinikalenjinkomi-permyakkonkaniÅ¡ambalabafia" + - "langilakotšćinaluoluhyamasaišćinamerumauriciska kreolšćinamakhuwa-me" + - "ettometa’mohawkšćinamundangkriknamadolnonimšćinakwasion’konuernyanko" + - "leprusÄinakʼicheʼromborwasamburusangusicilianišćinasenakoyra sennita" + - "Å¡elhitpódpoÅ‚dnjowa samišćinalule-samišćinainari-samišćinaskolt-sami" + - "šćinasaterfrizišćinakongojska swahilišćinatesotasawaqcentralnoatlas" + - "ki tamazightnjeznata rÄ›cvaivunjosogastandardny marokkaÅ„ski tamazight" + - "žedno rÄ›cne wopÅ›imjeÅ›emoderna wusokoarabšćinaawstriska nimšćinaÅ¡wic" + - "arska wusokonimšćinaawstralska engelšćinakanadiska engelšćinabritisk" + - "a engelšćinaameriska engelšćinaÅ‚atyÅ„skoamerikaÅ„ska Å¡pańšćinaeuropejs" + - "ka Å¡pańšćinamexikaÅ„ska Å¡pańšćinakanadiska francojšćinaÅ¡wicarska fran" + - "cojšćinaflamšćinabrazilska portugalšćinaeuropejska portugalšćinamold" + - "awišćinaserbochorwatšćinachinšćina (zjadnorjona)chinšćina (tradicion" + - "alna)", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x000b, 0x0018, 0x0018, 0x0020, 0x002b, 0x0037, 0x0044, - 0x004f, 0x005a, 0x0065, 0x0071, 0x0084, 0x0092, 0x00a1, 0x00ae, - 0x00bb, 0x00c2, 0x00cf, 0x00db, 0x00e8, 0x00f4, 0x0103, 0x0103, - 0x0110, 0x011c, 0x011f, 0x0129, 0x0129, 0x0129, 0x0136, 0x0140, - 0x014a, 0x0150, 0x0158, 0x015b, 0x0168, 0x0174, 0x017d, 0x018a, - 0x0195, 0x01a1, 0x01ad, 0x01ad, 0x01b7, 0x01c4, 0x01d0, 0x01de, - 0x01ea, 0x01f3, 0x01ff, 0x020c, 0x0213, 0x0223, 0x022d, 0x0232, - 0x023f, 0x024b, 0x024b, 0x0259, 0x0265, 0x0272, 0x027f, 0x027f, - // Entry 40 - 7F - 0x028a, 0x0297, 0x0297, 0x029b, 0x02a5, 0x02ac, 0x02af, 0x02bc, - 0x02c7, 0x02d3, 0x02e0, 0x02eb, 0x02f8, 0x02f8, 0x02fe, 0x02fe, - 0x030b, 0x031b, 0x032c, 0x0339, 0x0348, 0x0348, 0x0356, 0x0362, - 0x0362, 0x036e, 0x037a, 0x0388, 0x0398, 0x03a3, 0x03b0, 0x03b7, - 0x03c1, 0x03cd, 0x03d9, 0x03e4, 0x03f0, 0x03f0, 0x03fc, 0x040b, - 0x0419, 0x0426, 0x0433, 0x043f, 0x044b, 0x0457, 0x0463, 0x0478, - 0x0484, 0x0484, 0x0493, 0x04a4, 0x04b5, 0x04b5, 0x04bb, 0x04bb, - 0x04c9, 0x04c9, 0x04ce, 0x04da, 0x04da, 0x04e9, 0x04e9, 0x04f4, - // Entry 80 - BF - 0x0502, 0x0511, 0x0517, 0x0528, 0x0536, 0x0542, 0x054b, 0x0556, - 0x055e, 0x056b, 0x0576, 0x0580, 0x0585, 0x0592, 0x05a0, 0x05b0, - 0x05bb, 0x05c6, 0x05d3, 0x05df, 0x05eb, 0x05f2, 0x0615, 0x0622, - 0x062e, 0x063c, 0x0648, 0x0654, 0x0663, 0x0672, 0x067a, 0x0689, - 0x068f, 0x069c, 0x06a9, 0x06af, 0x06bb, 0x06c8, 0x06d4, 0x06e1, - 0x06ec, 0x06f8, 0x06f8, 0x0706, 0x070e, 0x071a, 0x071f, 0x0724, - 0x072f, 0x073b, 0x0741, 0x074c, 0x0750, 0x0750, 0x0750, 0x0750, - 0x0750, 0x0750, 0x0750, 0x0755, 0x0755, 0x0755, 0x0755, 0x0755, - // Entry C0 - FF - 0x0755, 0x0755, 0x0767, 0x0767, 0x0767, 0x0774, 0x0774, 0x0774, - 0x0774, 0x0774, 0x0774, 0x0774, 0x0778, 0x0778, 0x0784, 0x0784, - 0x0784, 0x0784, 0x0784, 0x0784, 0x0784, 0x0784, 0x0784, 0x0784, - 0x0784, 0x0784, 0x0789, 0x0789, 0x078d, 0x078d, 0x078d, 0x078d, - 0x078d, 0x078d, 0x078d, 0x078d, 0x078d, 0x078d, 0x078d, 0x078d, - 0x078d, 0x0791, 0x0791, 0x0791, 0x079c, 0x079c, 0x079c, 0x079c, - 0x079c, 0x079c, 0x079c, 0x079c, 0x079c, 0x07a1, 0x07a1, 0x07a1, - 0x07a1, 0x07a1, 0x07a1, 0x07af, 0x07af, 0x07b7, 0x07b7, 0x07bd, - // Entry 100 - 13F - 0x07bd, 0x07bd, 0x07bd, 0x07bd, 0x07bd, 0x07bd, 0x07c2, 0x07c2, - 0x07c2, 0x07c2, 0x07c2, 0x07c7, 0x07c7, 0x07d7, 0x07d7, 0x07dc, - 0x07dc, 0x07e6, 0x07e6, 0x07e6, 0x07ea, 0x07ea, 0x07ea, 0x07ea, - 0x07ea, 0x07ea, 0x07ea, 0x07ea, 0x07ea, 0x07ea, 0x07ea, 0x07f8, - 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x07f8, - 0x07f8, 0x07f8, 0x0805, 0x0805, 0x0805, 0x0805, 0x0805, 0x0805, - 0x0805, 0x0805, 0x0805, 0x0805, 0x0805, 0x0805, 0x0805, 0x0810, - 0x0810, 0x0810, 0x0825, 0x0825, 0x0825, 0x082a, 0x082a, 0x082a, - // Entry 140 - 17F - 0x082a, 0x0837, 0x0837, 0x0837, 0x0837, 0x0837, 0x0848, 0x0848, - 0x0848, 0x0848, 0x0848, 0x0848, 0x0848, 0x0848, 0x0848, 0x0848, - 0x084e, 0x0855, 0x0855, 0x0855, 0x0855, 0x0855, 0x0861, 0x0861, - 0x0861, 0x0866, 0x0866, 0x0866, 0x0866, 0x0866, 0x086d, 0x087b, - 0x087b, 0x087b, 0x087b, 0x087b, 0x087b, 0x0887, 0x0887, 0x0887, - 0x0887, 0x088f, 0x088f, 0x089b, 0x08a2, 0x08a2, 0x08a2, 0x08a2, - 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08aa, 0x08af, 0x08af, 0x08af, - 0x08af, 0x08af, 0x08b4, 0x08b4, 0x08b4, 0x08b4, 0x08b4, 0x08b4, - // Entry 180 - 1BF - 0x08b4, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, - 0x08c0, 0x08c3, 0x08c3, 0x08c8, 0x08c8, 0x08c8, 0x08c8, 0x08c8, - 0x08c8, 0x08c8, 0x08c8, 0x08c8, 0x08d4, 0x08d4, 0x08d4, 0x08d4, - 0x08d4, 0x08d8, 0x08ef, 0x08ef, 0x08fd, 0x0904, 0x0904, 0x0904, - 0x0904, 0x0904, 0x0911, 0x0911, 0x0911, 0x0918, 0x0918, 0x091c, - 0x091c, 0x091c, 0x091c, 0x091c, 0x091c, 0x091c, 0x091c, 0x091c, - 0x0920, 0x092f, 0x092f, 0x092f, 0x092f, 0x092f, 0x0935, 0x0935, - 0x0935, 0x0935, 0x0935, 0x093b, 0x093b, 0x093f, 0x093f, 0x093f, - // Entry 1C0 - 1FF - 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, - 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, - 0x0947, 0x0947, 0x0947, 0x0950, 0x0950, 0x0959, 0x0959, 0x0959, - 0x0959, 0x0959, 0x0959, 0x0959, 0x095e, 0x095e, 0x095e, 0x095e, - 0x095e, 0x095e, 0x0961, 0x0961, 0x0961, 0x0961, 0x0968, 0x0968, - 0x0968, 0x0968, 0x0968, 0x096d, 0x097d, 0x097d, 0x097d, 0x097d, - 0x0981, 0x0981, 0x0981, 0x098c, 0x098c, 0x098c, 0x0995, 0x0995, - 0x0995, 0x0995, 0x0995, 0x0995, 0x09af, 0x09bf, 0x09d0, 0x09e1, - // Entry 200 - 23F - 0x09e1, 0x09e1, 0x09e1, 0x09e1, 0x09e1, 0x09f2, 0x09f2, 0x09f2, - 0x09f2, 0x09f2, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, - 0x0a0e, 0x0a0e, 0x0a0e, 0x0a0e, 0x0a0e, 0x0a0e, 0x0a0e, 0x0a0e, - 0x0a0e, 0x0a0e, 0x0a0e, 0x0a0e, 0x0a0e, 0x0a0e, 0x0a0e, 0x0a0e, - 0x0a0e, 0x0a0e, 0x0a0e, 0x0a0e, 0x0a15, 0x0a15, 0x0a2f, 0x0a2f, - 0x0a2f, 0x0a2f, 0x0a3c, 0x0a3f, 0x0a3f, 0x0a3f, 0x0a3f, 0x0a3f, - 0x0a3f, 0x0a3f, 0x0a44, 0x0a44, 0x0a44, 0x0a44, 0x0a44, 0x0a44, - 0x0a44, 0x0a44, 0x0a44, 0x0a48, 0x0a48, 0x0a48, 0x0a48, 0x0a48, - // Entry 240 - 27F - 0x0a48, 0x0a48, 0x0a48, 0x0a48, 0x0a48, 0x0a48, 0x0a69, 0x0a69, - 0x0a83, 0x0a83, 0x0a9c, 0x0ab0, 0x0acb, 0x0ae2, 0x0af8, 0x0b0d, - 0x0b22, 0x0b46, 0x0b5e, 0x0b77, 0x0b8f, 0x0ba8, 0x0bb3, 0x0bcc, - 0x0be6, 0x0bf4, 0x0c07, 0x0c20, 0x0c3b, - }, - }, - { // dua - "duálá", - []uint16{ // 272 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 80 - BF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry C0 - FF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 100 - 13F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, - }, - }, - { // dyo - "akanamharikarabbelarusbulgaaribengalisekalmangreekangleespañolpersanfran" + - "sehausaenduongruaindoneesiigboitaliensaponeesavaneekmeerkoreemaleesi" + - "birmaninepaleesneerlandepenjabipoloneesportugeesrumeenrusruandasomal" + - "isueditamiltayturkiukrainurduvietnamyorubasinuasulujoola", - []uint16{ // 274 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000b, 0x000b, - 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x0016, 0x001e, - 0x001e, 0x001e, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x002d, 0x002d, 0x002d, 0x002d, 0x0032, 0x0037, 0x0037, 0x003f, - 0x003f, 0x003f, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x004b, - 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x0050, - 0x0050, 0x0054, 0x0054, 0x0054, 0x0054, 0x005a, 0x005a, 0x005a, - // Entry 40 - 7F - 0x005a, 0x0063, 0x0063, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, - 0x006e, 0x006e, 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, - 0x007c, 0x007c, 0x0081, 0x0081, 0x0086, 0x0086, 0x0086, 0x0086, - 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, - 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, - 0x0086, 0x0086, 0x0086, 0x008d, 0x008d, 0x0094, 0x0094, 0x0094, - 0x009c, 0x009c, 0x00a5, 0x00a5, 0x00a5, 0x00a5, 0x00a5, 0x00a5, - 0x00a5, 0x00a5, 0x00a5, 0x00a5, 0x00a5, 0x00ac, 0x00ac, 0x00b4, - // Entry 80 - BF - 0x00b4, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00c3, 0x00c6, 0x00cc, - 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, - 0x00d7, 0x00d7, 0x00dc, 0x00dc, 0x00dc, 0x00df, 0x00df, 0x00df, - 0x00df, 0x00df, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00ea, - 0x00ee, 0x00ee, 0x00ee, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, - 0x00f5, 0x00fb, 0x00fb, 0x0100, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - // Entry C0 - FF - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - // Entry 100 - 13F - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0109, - }, - }, - { // dz - "ཨ་ཕར་à½à½¨à½±à½–་à½à¼‹à½Ÿà½²à¼‹à½¡à¼‹à½à½¨à½•à¼‹à½¢à½²à¼‹à½€à½±à½“ས་à½à½¨à½˜à¼‹à½§à¼‹à½¢à½²à½€à¼‹à½à½¨à½ºà¼‹à½¢à¼‹à½–ིཀ་à½à½¨à¼‹à½¦à¼‹à½˜à½²à½¦à¼‹à½à½¨à¼‹à½›à½¢à¼‹à½–ྷའི་ཇཱན" + - "་à½à½–ེལ་ཨ་རུས་à½à½–ཱལ་གེ་རི་ཡཱན་à½à½–ངྒ་ལ་à½à½–ོད་à½à½–ྷོས་ནི་ཡཱན་à½à½€à½ºà¼‹à½Šà¼‹à½£à½±à½“་à½à½…ེཀ" + - "་à½à½à½ºà½£à½¤à¼‹à½à½Œà½ºà¼‹à½“ིཤ་à½à½‡à½±à½¢à¼‹à½˜à½±à½“་à½à½‘ི་བེ་ཧི་à½à½¢à¾«à½¼à½„་à½à½‚ྲིཀ་à½à½¨à½²à½„་ལིཤ་à½à½¨à½ºà½¦à¼‹à½”་རཱན་" + - "à½à½¼à¼‹à½à½¨à½²à½¦à¼‹à½”ེ་ནིཤ་à½à½¨à½ºà½¦à¼‹à½Šà½¼à¼‹à½“ི་ཡཱན་à½à½–ཱསཀ་à½à½”ར་ཤི་ཡཱན་à½à½•à½²à¼‹à½“ིཤ་à½à½•à½²à¼‹à½‡à½²à¼‹à½¡à½±à½“་" + - "à½à½•à½±à¼‹à½¢à½¼à¼‹à½¨à½²à½¦à¼‹à½à½•à¾²à½“ཅ་à½à½“ུབ་ཕྼི་སི་ཡན་à½à½¨à½±à½ à½²à¼‹à½¢à½²à½¤à¼‹à½à½‚ལ་ཨིས་ཨི་ཡན་à½à½‚ུ་à½à¼‹à½¢à¼‹à½“ི" + - "་à½à½‚ུ་ཇ་ར་à½à½²à¼‹à½à½§à½à¼‹à½¦à¼‹à½à½§à½ºà¼‹à½–ྲུ་à½à½§à½²à½“་དི་à½à½€à¾²à½¼à¼‹à½¨à½ºà¼‹à½¤à½²à¼‹à½¡à½±à½“་à½à½§à½ºà¼‹à½à½²à¼‹à½¡à½±à½“་à½à½§à½±à½„་ག" + - "ྷ་རི་ཡཱན་à½à½¨à½¢à¼‹à½˜à½²à¼‹à½“ི་ཡཱན་à½à½¨à½²à½“་ཌོ་ནེ་ཤི་ཡཱན་à½à½¨à½²à½‚་བོ་à½à½¨à¼‹à½¡à½²à½¦à¼‹à½£à½ºà½“་ཌིཀ་à½à½¨" + - "ི་ཊ་ལི་ཡཱན་à½à½‡à½±à¼‹à½”ཱ་ནིས་à½à½‡à½±à¼‹à½–་ནིས་à½à½‡à½½à¼‹à½‡à½²à¼‹à½¡à½±à½“་à½à½€à¼‹à½›à½‚ས་à½à½à½ºà¼‹à½˜à½ºà½¢à¼‹à½à½€à¼‹à½“་ཌ་à½" + - "ཀོ་རི་ཡཱན་à½à½€à½±à½¤à¼‹à½˜à½²à¼‹à½¢à½²à¼‹à½à½€à½¢à¼‹à½Œà½²à½¤à¼‹à½à½€à½²à½¢à¼‹à½‚ིས་à½à½£à½ºà¼‹à½Šà½²à½“་à½à½£à½‚་ཛམ་བོརྒ་à½à½£à½±à¼‹à½à½¼à½¦à¼‹" + - "à½à½£à½²à¼‹à½à½´à¼‹à½à½ºà¼‹à½“ི་ཡཱན་à½à½£à½Šà¼‹à½–ི་ཡཱན་à½à½˜à¼‹à½£à¼‹à½‚་སི་à½à½˜à¼‹à½¨à½¼à¼‹à½¢à½²à¼‹à½à½˜à¼‹à½¦à½ºà¼‹à½Œà½¼à¼‹à½“ི་ཡཱན་à½à½˜à¼‹" + - "ལ་ཡ་ལམ་à½à½˜à¼‹à½¢à¼‹à½à½²à¼‹à½à½˜à¼‹à½£à½ºà¼‹à½à½˜à½±à½£à¼‹à½Šà¼‹à½à½–ར་མིས་à½à½“ེ་པཱལི་à½à½Œà½†à¼‹à½à½“ོར་à½à½ºà¼‹à½‡à½²à¼‹à½¡à½±à½“་ནོ" + - "རསཀ་à½à½“ོར་à½à½ºà¼‹à½‡à½²à¼‹à½¡à½±à½“་བོཀ་མཱལ་à½à½¨à½¼à¼‹à½¢à½²à¼‹à½¡à¼‹à½à½”ཱན་ཇ་བི་à½à½”ོ་ལིཤ་à½à½”ཱཤ་à½à½¼à¼‹à½à½”ོར" + - "་ཅུ་གིས་à½à½€à¾­à½ºà¼‹à½†à½´à¼‹à½¨à¼‹à½à½¢à½¼à¼‹à½˜à½ºà¼‹à½“ིཤ་à½à½¢à½¼à¼‹à½˜à½ºà¼‹à½“ི་ཡཱན་à½à½¨à½´à¼‹à½¢à½´à¼‹à½¦à½´à½ à½²à¼‹à½à½¦à½¾à½¦à¾à¾²à¾€à½à¼‹à½à½¦" + - "ིན་དཱི་à½à½¦à½²à½„་ཧ་ལ་à½à½¦à½´à¼‹à½£à½¼à¼‹à½–ཱཀ་à½à½¦à½´à¼‹à½£à½¼à¼‹à½–ི་ནི་ཡཱན་à½à½¦à½¼à¼‹à½˜à¼‹à½£à½²à¼‹à½à½¨à½±à½£à¼‹à½–ེ་ནི་ཡཱ" + - "ན་à½à½¦à½±à½¢à¼‹à½–ྷི་ཡཱན་à½à½¦à½±à½´à½“་ད་ནིས་à½à½¦à½´à½ à½²à¼‹à½Œà½²à½¤à¼‹à½à½¦à¾­à½±à¼‹à½§à½²à¼‹à½£à½²à¼‹à½à½à¼‹à½˜à½²à½£à¼‹à½à½à½ºà¼‹à½£à½´à¼‹à½‚ུ་à½" + - "à½à¼‹à½‡à½²à½€à¼‹à½à½à½±à½ à½²à¼‹à½à½à½²à½‚་རི་ཉ་à½à½Šà½±à½¢à½€à¼‹à½˜à½ºà½“་à½à½Šà½¼à½„་གྷན་à½à½Šà½±à½¢à¼‹à½€à½²à½¤à¼‹à½à½Šà¼‹à½Šà½¢à¼‹à½à½à½²à¼‹à½‚ུར་à½à½¡" + - "ུ་ཀེ་རེ་ནི་ཡཱན་à½à½¨à½´à½¢à¼‹à½‘ུ་à½à½¨à½´à½¦à¼‹à½–ེཀ་à½à½–ེཊ་ནཱ་མིས་à½à½à½¼à¼‹à½£à½¼à½•à¼‹à½à½žà½¼à¼‹à½¦à¼‹à½à½¡à½¼à¼‹à½¢à½´à¼‹à½–" + - "་à½à½¢à¾’ྱ་མི་à½à½Ÿà½´à¼‹à½£à½´à¼‹à½à½‘་ཀོ་à½à¼‹à½à½•à½²à¼‹à½£à½²à¼‹à½”ི་ནོ་à½à½¦à½´à¼‹à½¡à½²à½¦à¼‹à½‡à½±à½¢à¼‹à½˜à½±à½“་à½à½§à¼‹à½à¼‹à½¡à½²à½ à½²à¼‹à½à½€à¼‹" + - "ཆིན་à½à½€à½¼à¼‹à½¢à½¼à¼‹à½à½˜à½“་ཇུ་à½à½¤à½±à½“་à½à½à¼‹à½„ོ་མ་ཤེསཔསà¾à½‘་རིག་ནང་དོན་མེདཔཨཱོས་ཊྲི་ཡཱན" + - "་ཇཱར་མཱན་à½à½¦à½´à¼‹à½¡à½²à½¦à¼‹à½‚ི་མà½à½¼à¼‹à½¦à½ à½²à¼‹à½‡à½±à½¢à¼‹à½˜à½±à½“་à½à½¨à½±à½¼à½¦à¼‹à½Šà¾²à½ºà¼‹à½£à½²à¼‹à½¡à½±à½“་ཨིང་ལིཤ་à½à½€à½ºà¼‹à½“" + - "་ཌི་ཡཱན་ཨིང་ལིཤ་à½à½–ྲི་ཊིཤ་ཨིང་ལིཤ་à½à½¡à½´à¼‹à½¨à½ºà½¦à¼‹à½¨à½²à½„་ལིཤ་à½à½£à½ºà¼‹à½Šà½²à½“་ཨ་མེ་རི་ཀ" + - "ཱན་གི་ཨིས་པེ་ནིཤ་à½à½¡à½´à¼‹à½¢à½¼à½–་ཀྱི་ཨིས་པེ་ནིཤ་à½à½€à½ºà¼‹à½“་ཌི་ཡཱན་ཕྲནཅ་à½à½¦à½´à¼‹à½¡à½²à½¦à¼‹" + - "ཕྲནཅ་à½à½•à¾·à½ºà½£à½ºà¼‹à½˜à½²à½¤à¼‹à½à½–ྲ་ཛི་ལི་ཡཱན་པོར་ཅུ་གིས་à½à½¨à½²à¼‹à½–ེ་རི་ཡཱན་པོར་ཅུ་གིས་" + - "à½à½¢à¾’ྱ་མི་à½à¼‹à½ à½‡à½˜à¼‹à½¦à½„མསྔ་དུས་ཀྱི་རྒྱ་མི་à½", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0012, 0x0036, 0x0036, 0x005a, 0x005a, 0x0078, 0x0078, - 0x0096, 0x00b1, 0x00b1, 0x00b1, 0x00de, 0x00de, 0x00ff, 0x012c, - 0x012c, 0x012c, 0x0141, 0x0150, 0x0150, 0x0177, 0x0195, 0x0195, - 0x0195, 0x0195, 0x0195, 0x01a4, 0x01a4, 0x01a4, 0x01b6, 0x01ce, - 0x01e9, 0x0207, 0x0219, 0x0219, 0x022b, 0x0246, 0x0270, 0x0294, - 0x02c1, 0x02d3, 0x02f4, 0x02f4, 0x030c, 0x032d, 0x034e, 0x0360, - 0x038d, 0x03ab, 0x03ab, 0x03d5, 0x03f6, 0x0417, 0x0417, 0x0429, - 0x0441, 0x0459, 0x0459, 0x0486, 0x04a7, 0x04d4, 0x04fe, 0x04fe, - // Entry 40 - 7F - 0x04fe, 0x0534, 0x0534, 0x054c, 0x054c, 0x054c, 0x054c, 0x0579, - 0x05a0, 0x05a0, 0x05c1, 0x05df, 0x0600, 0x0600, 0x0600, 0x0600, - 0x0615, 0x0615, 0x062d, 0x0642, 0x0663, 0x0663, 0x0684, 0x069c, - 0x069c, 0x069c, 0x06b7, 0x06cf, 0x06f3, 0x06f3, 0x06f3, 0x06f3, - 0x070b, 0x073e, 0x073e, 0x075f, 0x077d, 0x077d, 0x0798, 0x07c8, - 0x07e6, 0x07e6, 0x07fe, 0x0810, 0x0825, 0x083d, 0x083d, 0x083d, - 0x0858, 0x0858, 0x0864, 0x08a3, 0x08e8, 0x08e8, 0x08e8, 0x08e8, - 0x08e8, 0x08e8, 0x08e8, 0x0903, 0x0903, 0x0921, 0x0921, 0x0939, - // Entry 80 - BF - 0x0951, 0x0975, 0x0993, 0x09b4, 0x09b4, 0x09de, 0x0a02, 0x0a02, - 0x0a1d, 0x0a1d, 0x0a38, 0x0a38, 0x0a38, 0x0a53, 0x0a74, 0x0aa7, - 0x0aa7, 0x0aa7, 0x0ac2, 0x0aef, 0x0b16, 0x0b16, 0x0b16, 0x0b3a, - 0x0b58, 0x0b79, 0x0b8e, 0x0bac, 0x0bc1, 0x0bd3, 0x0bf1, 0x0c0f, - 0x0c0f, 0x0c2a, 0x0c45, 0x0c45, 0x0c57, 0x0c57, 0x0c6f, 0x0ca2, - 0x0cba, 0x0cd5, 0x0cd5, 0x0cf9, 0x0cf9, 0x0cf9, 0x0d11, 0x0d23, - 0x0d23, 0x0d3e, 0x0d3e, 0x0d56, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, - 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, - // Entry C0 - FF - 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, - 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, - 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, - 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, - 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, - 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, - 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, - 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, - // Entry 100 - 13F - 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d83, 0x0d83, 0x0d83, 0x0d83, - 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, - 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, - 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0daa, - 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, - 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, - 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, - 0x0daa, 0x0daa, 0x0dda, 0x0dda, 0x0dda, 0x0dda, 0x0dda, 0x0dda, - // Entry 140 - 17F - 0x0dda, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, - 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, - 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0e0d, - 0x0e0d, 0x0e0d, 0x0e0d, 0x0e0d, 0x0e0d, 0x0e0d, 0x0e0d, 0x0e0d, - 0x0e0d, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, - 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, - 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, - 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, - // Entry 180 - 1BF - 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, - 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, - 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, - 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, - 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, - 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, - 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, - 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, - // Entry 1C0 - 1FF - 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, - 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, - 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, - 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, - 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, - 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, - 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e46, - 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, - // Entry 200 - 23F - 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, - 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, - 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, - 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, - 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, - 0x0e46, 0x0e46, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, - 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, - 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, - // Entry 240 - 27F - 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, - 0x0ea0, 0x0ea0, 0x0ea0, 0x0ee2, 0x0f33, 0x0f7e, 0x0fbd, 0x0ff0, - 0x1020, 0x1086, 0x10cb, 0x10cb, 0x1101, 0x1128, 0x1149, 0x1194, - 0x11df, 0x11df, 0x11df, 0x120f, 0x1248, - }, - }, - { // ebu - "KÄ©akanKÄ©amhariKÄ©arabuKÄ©mbelarusiKÄ©bulgariaKÄ©banglaKÄ©chekiKÄ©njeremaniKÄ©ng" + - "rikiKÄ©thunguKÄ©hispaniaKÄ©anjemiKÄ©faransaKÄ©hausaKÄ©hindÄ©KÄ©hungariKÄ©indo" + - "nesiaKÄ©igboKÄ©italianoKÄ©njapaniKÄ©javaKÄ©kambodiaKÄ©koreaKÄ©malesiaKÄ©burm" + - "aKÄ©nepaliKÄ©holanziKÄ©punjabiKÄ©polandiKÄ©renoKÄ©romaniaKÄ©rusiKÄ©nyarwanda" + - "KÄ©somaliKÄ©swidiKÄ©tamilKÄ©tailandiKÄ©turukiKÄ©ukraniaKÄ©urduKÄ©vietinamuKÄ©" + - "yorubaKÄ©chinaKÄ©zuluKÄ©embu", - []uint16{ // 277 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0010, 0x0010, - 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0024, 0x002f, - 0x002f, 0x002f, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, - 0x0038, 0x0038, 0x0038, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x004c, 0x004c, 0x004c, 0x004c, 0x0055, 0x005e, 0x005e, 0x0069, - 0x0069, 0x0069, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x007c, - 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x0084, - 0x0084, 0x008d, 0x008d, 0x008d, 0x008d, 0x0097, 0x0097, 0x0097, - // Entry 40 - 7F - 0x0097, 0x00a3, 0x00a3, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, - 0x00b5, 0x00b5, 0x00bf, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, - 0x00c6, 0x00c6, 0x00d1, 0x00d1, 0x00d9, 0x00d9, 0x00d9, 0x00d9, - 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, - 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, - 0x00d9, 0x00d9, 0x00d9, 0x00e3, 0x00e3, 0x00eb, 0x00eb, 0x00eb, - 0x00f4, 0x00f4, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, - 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x0108, 0x0108, 0x0112, - // Entry 80 - BF - 0x0112, 0x0119, 0x0119, 0x0119, 0x0119, 0x0123, 0x012a, 0x0136, - 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, - 0x0136, 0x0136, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, - 0x0147, 0x0147, 0x014f, 0x014f, 0x014f, 0x015a, 0x015a, 0x015a, - 0x015a, 0x015a, 0x0163, 0x0163, 0x0163, 0x0163, 0x0163, 0x016d, - 0x0174, 0x0174, 0x0174, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0189, 0x0189, 0x0191, 0x0198, 0x0198, 0x0198, 0x0198, - 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, - // Entry C0 - FF - 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, - 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, - 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, - 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, - 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, - 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, - 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, - 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, - // Entry 100 - 13F - 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, - 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, - 0x0198, 0x0198, 0x0198, 0x0198, 0x019f, - }, - }, - { // ee - "abkhaziagbeafrikaangbeblugbeamhariagbearabiagbeassamegbeaymargbeazerbaij" + - "angbebelarusiagbebulgariagbebambaragbebengalgbetibetagbebretongbebos" + - "niagbekatalagbetsÉ›kgbewalesgbedenmarkgbegermaniagbedivehgbedzongkhag" + - "beeÊ‹egbegrisigbeyevugbeesperantogbespaniagbeestoniagbebasqugbepersia" + - "gbefinlanÉ–gbefidzigbefransegbeirelanÉ–gbegalatagbeguarangbegujaratiha" + - "usagbehebrigbehindigbekroatiagbehaitigbehungarigbearmeniagbeindonesi" + - "agbeigbogbeicelanÉ–gbeitaliagbedzapangbedzavangbegÉ”giagbekazakhstangb" + - "ekhmergbekannadagbekoreagbekashmirgbekurdiagbekirghistangbelatinlaks" + - "embÉ”ggbelingalalaogbelithuaniagbelatviagbemalagasegbemaorgbemakedoni" + - "agbemalayagbemongoliagbemarathiagbemalaygbemaltagbeburmagbedziehe nd" + - "ebelegbenepalgbehÉ”landgbenÉ”weigbe ninÉ”sknÉ”weigbe bokmÃ¥lnyanjagbeoriy" + - "agbeossetiagbepundzabgbepolandgbepashtogbepÉ”tugalgbekwetsuagberomans" + - "hgberundigberomaniagberÉ”tsiagberuwandagbesanskrigbesindhgbedziehe sa" + - "migbesangogbesinhalgbeslovakiagbesloveniagbesamoagbeshonagbesomaliag" + - "bealbaniagbeserbiagbeswatgbeanyiehe sothogbesudangbeswedengbeswahili" + - "tamilgbetelegugbetadzikistangbetailandgbetigrinyagbetÉ›kmengbetswanag" + - "betongagbetÉ›kigbetsongagbetahitigbeuighurgbeukraingbeurdugbeuzbekist" + - "angbevendagbevietnamgbewolofgbexhosagbeyorubagbekinagbezulugbeasagbe" + - "bembagbebenagbebodogbeembugbeefigbefilipingbeswizerlanÉ–tÉ”wo Æ’e germa" + - "niagbehawaigbecape verdegbelahndagbeluyiagbegbegbÉ”gblÉ” sÉ”gbÉ”wodziehe" + - " sothogberombogberwagbesakagbekomorogbetetumgbetok pisigbegbegbÉ”gblÉ”" + - " manyawalsegbecantongbegbegbÉ”gblÉ” manÉ”meeaustriatÉ”wo Æ’e germaniagbes" + - "wizerlanÉ– germaniagbe kÉ”kÉ”tÉ”australiatÉ”wo Æ’e yevugbekanadatÉ”wo Æ’e ye" + - "vugbebritaintÉ”wo Æ’e yevugbeu.s.dukÉ”metÉ”wo Æ’e yevugbelatin amerikatÉ”w" + - "o Æ’e spaniagbeiberiatÉ”wo Æ’e spaniagbekanadatÉ”wo Æ’e fransegbeswizerla" + - "nÉ–tÉ”wo Æ’e fransegbeflemiagbebraziltÉ”wo Æ’e portugalgbeiberiatÉ”wo Æ’e p" + - "ortugalgbeserbo-croatiagbetsainagbeblema tsainagbe", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x000b, 0x000b, 0x0016, 0x001c, 0x0026, 0x0026, - 0x002f, 0x0038, 0x0038, 0x0040, 0x004d, 0x004d, 0x0059, 0x0064, - 0x0064, 0x006e, 0x0077, 0x0080, 0x0089, 0x0092, 0x009b, 0x009b, - 0x009b, 0x009b, 0x009b, 0x00a3, 0x00a3, 0x00a3, 0x00ab, 0x00b5, - 0x00c0, 0x00c8, 0x00d3, 0x00da, 0x00e2, 0x00e9, 0x00f5, 0x00fe, - 0x0108, 0x0110, 0x0119, 0x0119, 0x0124, 0x012c, 0x012c, 0x0135, - 0x0135, 0x0140, 0x0140, 0x0149, 0x0152, 0x015a, 0x015a, 0x0162, - 0x016a, 0x0172, 0x0172, 0x017c, 0x0184, 0x018e, 0x0198, 0x0198, - // Entry 40 - 7F - 0x0198, 0x01a4, 0x01a4, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01b6, - 0x01bf, 0x01bf, 0x01c8, 0x01d1, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01e7, 0x01e7, 0x01ef, 0x01f9, 0x0201, 0x0201, 0x020b, 0x0214, - 0x0214, 0x0214, 0x0221, 0x0226, 0x0233, 0x0233, 0x0233, 0x023a, - 0x0240, 0x024c, 0x024c, 0x0255, 0x0260, 0x0260, 0x0267, 0x0273, - 0x027c, 0x0287, 0x0292, 0x029a, 0x02a2, 0x02aa, 0x02aa, 0x02bb, - 0x02c3, 0x02c3, 0x02cd, 0x02de, 0x02ef, 0x02ef, 0x02ef, 0x02f8, - 0x02f8, 0x02f8, 0x02f8, 0x0300, 0x030a, 0x0314, 0x0314, 0x031d, - // Entry 80 - BF - 0x0326, 0x0331, 0x033b, 0x0345, 0x034d, 0x0357, 0x0361, 0x036b, - 0x0375, 0x0375, 0x037d, 0x038b, 0x0393, 0x039c, 0x03a7, 0x03b2, - 0x03ba, 0x03c2, 0x03cc, 0x03d6, 0x03df, 0x03e6, 0x03f6, 0x03fe, - 0x0407, 0x040e, 0x0416, 0x041f, 0x042d, 0x0437, 0x0442, 0x044c, - 0x0455, 0x045d, 0x0465, 0x046e, 0x046e, 0x0477, 0x0480, 0x0489, - 0x0490, 0x049d, 0x04a5, 0x04af, 0x04af, 0x04af, 0x04b7, 0x04bf, - 0x04bf, 0x04c8, 0x04c8, 0x04cf, 0x04d6, 0x04d6, 0x04d6, 0x04d6, - 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04d6, - // Entry C0 - FF - 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04d6, - 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04dc, 0x04dc, 0x04dc, 0x04dc, - 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, - 0x04dc, 0x04dc, 0x04e4, 0x04e4, 0x04eb, 0x04eb, 0x04eb, 0x04eb, - 0x04eb, 0x04eb, 0x04eb, 0x04eb, 0x04eb, 0x04eb, 0x04eb, 0x04eb, - 0x04eb, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, - 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, - 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, - // Entry 100 - 13F - 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, - 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, - 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f9, 0x04ff, 0x04ff, 0x04ff, - 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x0509, - 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, - 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, - 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, - 0x0509, 0x0509, 0x0529, 0x0529, 0x0529, 0x0529, 0x0529, 0x0529, - // Entry 140 - 17F - 0x0529, 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, - 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, - 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, - 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, 0x0531, 0x053e, - 0x053e, 0x053e, 0x053e, 0x053e, 0x053e, 0x053e, 0x053e, 0x053e, - 0x053e, 0x053e, 0x053e, 0x053e, 0x053e, 0x053e, 0x053e, 0x053e, - 0x053e, 0x053e, 0x053e, 0x053e, 0x053e, 0x053e, 0x053e, 0x053e, - 0x053e, 0x053e, 0x053e, 0x0547, 0x0547, 0x0547, 0x0547, 0x0547, - // Entry 180 - 1BF - 0x0547, 0x0547, 0x0547, 0x0547, 0x0547, 0x0547, 0x0547, 0x0547, - 0x0547, 0x0547, 0x0547, 0x054f, 0x054f, 0x054f, 0x054f, 0x054f, - 0x054f, 0x054f, 0x054f, 0x054f, 0x054f, 0x054f, 0x054f, 0x054f, - 0x054f, 0x054f, 0x054f, 0x054f, 0x054f, 0x054f, 0x054f, 0x054f, - 0x054f, 0x054f, 0x054f, 0x054f, 0x054f, 0x054f, 0x0565, 0x0565, - 0x0565, 0x0565, 0x0565, 0x0565, 0x0565, 0x0565, 0x0565, 0x0565, - 0x0565, 0x0565, 0x0565, 0x0565, 0x0565, 0x0565, 0x0565, 0x0565, - 0x0565, 0x0565, 0x0565, 0x0565, 0x0574, 0x0574, 0x0574, 0x0574, - // Entry 1C0 - 1FF - 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, - 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, - 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, - 0x0574, 0x0574, 0x0574, 0x0574, 0x057c, 0x057c, 0x057c, 0x057c, - 0x057c, 0x057c, 0x0582, 0x0582, 0x0589, 0x0589, 0x0589, 0x0589, - 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, - 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, - 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, - // Entry 200 - 23F - 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, - 0x0589, 0x0592, 0x0592, 0x0592, 0x0592, 0x0592, 0x0592, 0x0592, - 0x0592, 0x0592, 0x059a, 0x059a, 0x059a, 0x059a, 0x059a, 0x059a, - 0x059a, 0x059a, 0x059a, 0x059a, 0x05a5, 0x05a5, 0x05a5, 0x05a5, - 0x05a5, 0x05a5, 0x05a5, 0x05a5, 0x05a5, 0x05a5, 0x05a5, 0x05a5, - 0x05a5, 0x05a5, 0x05b7, 0x05b7, 0x05b7, 0x05b7, 0x05b7, 0x05b7, - 0x05b7, 0x05b7, 0x05b7, 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05bf, - 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05bf, - // Entry 240 - 27F - 0x05bf, 0x05c8, 0x05c8, 0x05c8, 0x05c8, 0x05c8, 0x05c8, 0x05c8, - 0x05dd, 0x05dd, 0x05dd, 0x05f9, 0x061a, 0x0634, 0x064b, 0x0663, - 0x067f, 0x069f, 0x06b8, 0x06b8, 0x06d1, 0x06ef, 0x06f8, 0x0713, - 0x072e, 0x072e, 0x073e, 0x0747, 0x0756, - }, - }, - { // el - elLangStr, - elLangIdx, - }, - { // en - enLangStr, - enLangIdx, - }, - { // en-AU - "BamumUnited States English", - []uint16{ // 593 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 80 - BF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry C0 - FF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - // Entry 100 - 13F - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - // Entry 140 - 17F - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - // Entry 180 - 1BF - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - // Entry 1C0 - 1FF - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - // Entry 200 - 23F - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - // Entry 240 - 27F - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, - 0x001a, - }, - }, - { // eo - "afaraabÄ¥azaafrikansatwamharaarabaasamaajmaraazerbajÄanabaÅkirabelorusabu" + - "lgarabislamobengalatibetabretonabosniakatalunakorsikaĉeÄ¥akimradanage" + - "rmanamahladzonkogrekaanglaesperantohispanaestonaeÅ­skapersafinnafiÄia" + - "feroafrancafrisairlandagaelagalegagvaraniaguÄaratahaÅ­sahebreahindakr" + - "oatahaitia kreolahungaraarmenainterlingvaoindoneziaokcidentaloeskima" + - "islandaitalainuitajapanajavakartvelakazaÄ¥agronlandakmerakanarakoreak" + - "aÅmirakurdakirgizalatinoluksemburgalingalalaÅ­alitovalatvamalagasamao" + - "riamakedonamalajalamamongolamaratamalajamaltabirmanauranepalanederla" + - "ndanovnorvegadannorvegaokcitanaoromaorijopanÄabapolapaÅtoaportugalak" + - "eĉuaromanĉaburundarumanarusaruandasanskritosindasangoasinhalaslovaka" + - "slovenasamoaÅonasomalaalbanaserbasvaziasotasundasvedasvahilatamilate" + - "luguataÄikatajatigrajaturkmenacvanatongaaturkacongatataraujguraukrai" + - "naurduouzbekavjetnamavolapukovolofaksosajidajorubaÄuangaĉinazuluaibi" + - "bioefikafilipinahavajaklingonanekonata lingvonelingvaĵobrazilportuga" + - "laeÅ­ropportugalaserbo-Kroataĉina simpligitaĉina tradicia", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0005, 0x000c, 0x000c, 0x0015, 0x0017, 0x001d, 0x001d, - 0x0022, 0x0027, 0x0027, 0x002d, 0x0039, 0x0041, 0x0049, 0x0050, - 0x0057, 0x0057, 0x005e, 0x0064, 0x006b, 0x0071, 0x0079, 0x0079, - 0x0079, 0x0080, 0x0080, 0x0086, 0x0086, 0x0086, 0x008b, 0x008f, - 0x0096, 0x009b, 0x00a1, 0x00a1, 0x00a6, 0x00ab, 0x00b4, 0x00bb, - 0x00c1, 0x00c7, 0x00cc, 0x00cc, 0x00d1, 0x00d7, 0x00dc, 0x00e2, - 0x00e7, 0x00ee, 0x00f3, 0x00f9, 0x0101, 0x010a, 0x010a, 0x0110, - 0x0116, 0x011b, 0x011b, 0x0121, 0x012e, 0x0135, 0x013b, 0x013b, - // Entry 40 - 7F - 0x0147, 0x0150, 0x015b, 0x015b, 0x015b, 0x0161, 0x0161, 0x0168, - 0x016d, 0x0173, 0x0179, 0x017d, 0x0185, 0x0185, 0x0185, 0x0185, - 0x018c, 0x0195, 0x019a, 0x01a0, 0x01a5, 0x01a5, 0x01ad, 0x01b2, - 0x01b2, 0x01b2, 0x01b9, 0x01bf, 0x01ca, 0x01ca, 0x01ca, 0x01d1, - 0x01d6, 0x01dc, 0x01dc, 0x01e1, 0x01e9, 0x01e9, 0x01ef, 0x01f7, - 0x0201, 0x0208, 0x020e, 0x0214, 0x0219, 0x021e, 0x0223, 0x0223, - 0x0229, 0x0229, 0x0233, 0x023d, 0x0247, 0x0247, 0x0247, 0x0247, - 0x024f, 0x024f, 0x0254, 0x0259, 0x0259, 0x0261, 0x0261, 0x0265, - // Entry 80 - BF - 0x026c, 0x0275, 0x027b, 0x0283, 0x028a, 0x0290, 0x0294, 0x029a, - 0x02a3, 0x02a3, 0x02a8, 0x02a8, 0x02ae, 0x02b5, 0x02bc, 0x02c3, - 0x02c8, 0x02cd, 0x02d3, 0x02d9, 0x02de, 0x02e4, 0x02e8, 0x02ed, - 0x02f2, 0x02f9, 0x02ff, 0x0306, 0x030d, 0x0311, 0x0318, 0x0320, - 0x0325, 0x032b, 0x0330, 0x0335, 0x033b, 0x033b, 0x0341, 0x0348, - 0x034d, 0x0353, 0x0353, 0x035b, 0x0363, 0x0363, 0x0369, 0x036e, - 0x0372, 0x0378, 0x037f, 0x0384, 0x0389, 0x0389, 0x0389, 0x0389, - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - // Entry C0 - FF - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - // Entry 100 - 13F - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0394, 0x0394, 0x0394, - 0x0394, 0x0394, 0x0394, 0x0394, 0x0394, 0x0394, 0x0394, 0x039c, - 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, - 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, - 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, - 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, - // Entry 140 - 17F - 0x039c, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - // Entry 180 - 1BF - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - // Entry 1C0 - 1FF - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - // Entry 200 - 23F - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03aa, - 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, - 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, - 0x03aa, 0x03aa, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, - 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, - 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, - // Entry 240 - 27F - 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, - 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, - 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03d3, - 0x03e2, 0x03e2, 0x03ee, 0x03fe, 0x040c, - }, - }, - { // es - esLangStr, - esLangIdx, - }, - {}, // es-CL - { // es-MX - "bashkir", - []uint16{ // 14 elements - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, - }, - }, - { // et - etLangStr, - etLangIdx, - }, - { // eu - "abkhazeraafrikaansaakaneraamhareraarabieraassameraaimaraazerbaijanerabas" + - "hkirrerabielorrusierabulgarierabambarerabengaleratibeterabretoierabo" + - "snierakatalanakorsikeratxekieragaleseradanieraalemanadivehieradzongk" + - "haeweeragrezieraingelesaesperantoaespainieraestonieraeuskarapersiera" + - "finlandierafijierafaroerafrantsesafrisieragaelikoaeskoziako gaelikoa" + - "galizieraguaranieragujarateramanxerahausahebreerahindiakroazierahait" + - "ierahungarieraarmenieraInterlinguaindonesierainterlingueigboerasichu" + - "an yiaislandieraitalierainuiterajaponierajaverageorgieraKikongoakiku" + - "yuerakazakherakalaallisuterakhemererakannaderakoreerakashmirerakurdu" + - "erakornubierakirgizeralatinaluxenburgeraganderalingalalaoseralituani" + - "eraluba-katangeraletonieramalagasyeramaorieramazedonieramalayalamera" + - "mongolieramaratheramalaysieramalteraburmatarraiparraldeko ndebeleera" + - "nepaleranederlanderanynorsk norvegierabokmala (Norvegia)nyanjaOkzita" + - "nieraoromoeraoriyeraosetierapunjaberapolonierapaxtueraportugesaquech" + - "ueraerromantxerarundieraerrumanieraerrusierakinyaruandasanskritoasin" + - "dhiaiparraldeko samierasangoerasinhalaeslovakieraeslovenierasamoeras" + - "honerasomalieraalbanieraserbieraswatierahegoaldeko sothoerasundanera" + - "suedieraswahilitamileratelugueratajikistanerathailandieratigriñeratu" + - "rkmenieratswaneratongeraturkieratsongeratatareratahitierauigurrerauk" + - "raineraurduauzbekeravenderavietnamerawoloferaxhoseraJiddishayorubera" + - "txinerazulueraAcholieraaghemeramaputxeaasuabemberabenerabodoerachige" + - "ratxerokierasoranierataiterazarmerabehe-sorabieradualerafonyi jolera" + - "embuaefikeratagalogaGagagauzeraalemana (Suitza)gusiierahawaiieragoi-" + - "sorabierangombamachamerakabilerakamberamakonderaCabo Verdeko kreolak" + - "oyra chiinierakalenjinerakomi-permyakerakonkanierashambalerabafieral" + - "angieralakoteraLozieraLuba-lulualuoeraluhyeramasaieramerueraMauritan" + - "iako kreoleramakhuwa-meettoerameteramohawkeramudangerahizkuntza anit" + - "zaknamerakwasieran’koerapedieranuereraankolerak’iche’raromboerarwaer" + - "asamburuerasanguerasenerakoyraboro senniatachelhitahegoaldeko samier" + - "aLule samieraInari samieraSkolt samieraKongoko swahiliatesoeratetuma" + - "Klingoneratok pisinaTumbukeratasawaqaMaroko erdialdeko tamazightahiz" + - "kuntza ezezagunavaieravunjoasogeratamazight estandarraez dago eduki " + - "linguistikorikarabiera moderno estandarraaleman garaia (Suitza)ingel" + - "esa (AEB)espainiera (Europa)flandrieraportugesa (Europa)serbokroazie" + - "ratxinera soilduatxinera tradizionala", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0009, 0x0009, 0x0013, 0x001a, 0x0022, 0x0022, - 0x002a, 0x0032, 0x0032, 0x0038, 0x0045, 0x0050, 0x005d, 0x0067, - 0x0067, 0x0070, 0x0079, 0x0081, 0x008a, 0x0092, 0x009a, 0x009a, - 0x009a, 0x00a3, 0x00a3, 0x00ab, 0x00ab, 0x00ab, 0x00b3, 0x00ba, - 0x00c1, 0x00ca, 0x00d2, 0x00d8, 0x00e0, 0x00e8, 0x00f2, 0x00fc, - 0x0105, 0x010c, 0x0114, 0x0114, 0x011f, 0x0126, 0x012d, 0x0136, - 0x013e, 0x0146, 0x0158, 0x0161, 0x016b, 0x0175, 0x017c, 0x0181, - 0x0189, 0x018f, 0x018f, 0x0198, 0x01a0, 0x01aa, 0x01b3, 0x01b3, - // Entry 40 - 7F - 0x01be, 0x01c9, 0x01d4, 0x01db, 0x01e6, 0x01e6, 0x01e6, 0x01f0, - 0x01f8, 0x0200, 0x0209, 0x020f, 0x0218, 0x0220, 0x0229, 0x0229, - 0x0232, 0x0240, 0x0249, 0x0252, 0x0259, 0x0259, 0x0263, 0x026b, - 0x026b, 0x0275, 0x027e, 0x0284, 0x0290, 0x0297, 0x0297, 0x029e, - 0x02a5, 0x02af, 0x02bd, 0x02c6, 0x02d1, 0x02d1, 0x02d9, 0x02e4, - 0x02f0, 0x02fa, 0x0303, 0x030d, 0x0314, 0x031e, 0x031e, 0x0334, - 0x033c, 0x033c, 0x0348, 0x035a, 0x036c, 0x036c, 0x036c, 0x0372, - 0x037d, 0x037d, 0x0385, 0x038c, 0x0394, 0x039d, 0x039d, 0x03a6, - // Entry 80 - BF - 0x03ae, 0x03b7, 0x03c0, 0x03cc, 0x03d4, 0x03df, 0x03e8, 0x03f3, - 0x03fd, 0x03fd, 0x0404, 0x0417, 0x041f, 0x0426, 0x0431, 0x043c, - 0x0443, 0x044a, 0x0453, 0x045c, 0x0464, 0x046c, 0x047f, 0x0488, - 0x0490, 0x0497, 0x049f, 0x04a8, 0x04b5, 0x04c1, 0x04cb, 0x04d6, - 0x04de, 0x04e5, 0x04ed, 0x04f5, 0x04fd, 0x0506, 0x050f, 0x0518, - 0x051d, 0x0525, 0x052c, 0x0536, 0x0536, 0x0536, 0x053e, 0x0545, - 0x054d, 0x0555, 0x0555, 0x055c, 0x0563, 0x0563, 0x056c, 0x056c, - 0x056c, 0x056c, 0x056c, 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, - // Entry C0 - FF - 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, 0x057c, 0x057c, 0x057c, - 0x057c, 0x057c, 0x057c, 0x057c, 0x0580, 0x0580, 0x0580, 0x0580, - 0x0580, 0x0580, 0x0580, 0x0580, 0x0580, 0x0580, 0x0580, 0x0580, - 0x0580, 0x0580, 0x0587, 0x0587, 0x058d, 0x058d, 0x058d, 0x058d, - 0x058d, 0x058d, 0x058d, 0x058d, 0x058d, 0x058d, 0x058d, 0x058d, - 0x058d, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, - 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x059b, 0x059b, 0x059b, - 0x059b, 0x059b, 0x059b, 0x059b, 0x059b, 0x05a5, 0x05a5, 0x05ae, - // Entry 100 - 13F - 0x05ae, 0x05ae, 0x05ae, 0x05ae, 0x05ae, 0x05ae, 0x05b5, 0x05b5, - 0x05b5, 0x05b5, 0x05b5, 0x05bc, 0x05bc, 0x05ca, 0x05ca, 0x05d1, - 0x05d1, 0x05dd, 0x05dd, 0x05dd, 0x05e2, 0x05e9, 0x05e9, 0x05e9, - 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05f1, - 0x05f1, 0x05f1, 0x05f1, 0x05f1, 0x05f1, 0x05f1, 0x05f1, 0x05f1, - 0x05f1, 0x05f3, 0x05fc, 0x05fc, 0x05fc, 0x05fc, 0x05fc, 0x05fc, - 0x05fc, 0x05fc, 0x05fc, 0x05fc, 0x05fc, 0x05fc, 0x05fc, 0x05fc, - 0x05fc, 0x05fc, 0x060c, 0x060c, 0x060c, 0x0614, 0x0614, 0x0614, - // Entry 140 - 17F - 0x0614, 0x061d, 0x061d, 0x061d, 0x061d, 0x061d, 0x062a, 0x062a, - 0x062a, 0x062a, 0x062a, 0x062a, 0x062a, 0x062a, 0x062a, 0x062a, - 0x0630, 0x0639, 0x0639, 0x0639, 0x0639, 0x0639, 0x0641, 0x0641, - 0x0641, 0x0648, 0x0648, 0x0648, 0x0648, 0x0648, 0x0651, 0x0664, - 0x0664, 0x0664, 0x0664, 0x0664, 0x0664, 0x0673, 0x0673, 0x0673, - 0x0673, 0x067e, 0x067e, 0x068d, 0x0697, 0x0697, 0x0697, 0x0697, - 0x0697, 0x0697, 0x0697, 0x0697, 0x06a1, 0x06a8, 0x06a8, 0x06a8, - 0x06a8, 0x06a8, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, - // Entry 180 - 1BF - 0x06b0, 0x06b8, 0x06b8, 0x06b8, 0x06bf, 0x06bf, 0x06c9, 0x06c9, - 0x06c9, 0x06cf, 0x06cf, 0x06d6, 0x06d6, 0x06d6, 0x06d6, 0x06d6, - 0x06d6, 0x06d6, 0x06d6, 0x06d6, 0x06de, 0x06de, 0x06de, 0x06de, - 0x06de, 0x06e5, 0x06fa, 0x06fa, 0x070b, 0x0711, 0x0711, 0x0711, - 0x0711, 0x0711, 0x071a, 0x071a, 0x071a, 0x0723, 0x0734, 0x0734, - 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, - 0x073a, 0x073a, 0x073a, 0x073a, 0x073a, 0x073a, 0x0742, 0x0742, - 0x0742, 0x0742, 0x0742, 0x074b, 0x0752, 0x0759, 0x0759, 0x0759, - // Entry 1C0 - 1FF - 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, - 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, - 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x076e, 0x076e, 0x076e, - 0x076e, 0x076e, 0x076e, 0x076e, 0x0776, 0x0776, 0x0776, 0x0776, - 0x0776, 0x0776, 0x077c, 0x077c, 0x077c, 0x077c, 0x0786, 0x0786, - 0x0786, 0x0786, 0x0786, 0x078e, 0x078e, 0x078e, 0x078e, 0x078e, - 0x0794, 0x0794, 0x0794, 0x07a4, 0x07a4, 0x07a4, 0x07ae, 0x07ae, - 0x07ae, 0x07ae, 0x07ae, 0x07ae, 0x07c0, 0x07cc, 0x07d9, 0x07e6, - // Entry 200 - 23F - 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, - 0x07e6, 0x07e6, 0x07f6, 0x07f6, 0x07f6, 0x07f6, 0x07f6, 0x07f6, - 0x07fd, 0x07fd, 0x0803, 0x0803, 0x0803, 0x0803, 0x0803, 0x080d, - 0x080d, 0x080d, 0x080d, 0x080d, 0x0817, 0x0817, 0x0817, 0x0817, - 0x0817, 0x0817, 0x0820, 0x0820, 0x0828, 0x0828, 0x0844, 0x0844, - 0x0844, 0x0844, 0x0857, 0x085d, 0x085d, 0x085d, 0x085d, 0x085d, - 0x085d, 0x085d, 0x0863, 0x0863, 0x0863, 0x0863, 0x0863, 0x0863, - 0x0863, 0x0863, 0x0863, 0x0869, 0x0869, 0x0869, 0x0869, 0x0869, - // Entry 240 - 27F - 0x0869, 0x0869, 0x0869, 0x0869, 0x0869, 0x0869, 0x087d, 0x087d, - 0x0899, 0x0899, 0x08b4, 0x08b4, 0x08ca, 0x08ca, 0x08ca, 0x08ca, - 0x08d8, 0x08d8, 0x08eb, 0x08eb, 0x08eb, 0x08eb, 0x08f5, 0x08f5, - 0x0907, 0x0907, 0x0915, 0x0924, 0x0938, - }, - }, - { // ewo - "ǸkÉ”ÌbÉ” akánǸkÉ”ÌbÉ” amáriaǸkÉ”ÌbÉ” arábiaǸkÉ”ÌbÉ” belarúsianǸkÉ”ÌbÉ” bulÉ™gárianǸ" + - "kÉ”ÌbÉ” bÉ›ngalíǸkÉ”ÌbÉ” tsÉ›ÌgǸkÉ”ÌbÉ” ndzámanǸkÉ”ÌbÉ” gÉ™lÉ›ÌgǸkÉ”ÌbÉ” éngÉ™lísǹk" + - "É”ÌbÉ” kpÉ™nyáǹkÉ”ÌbÉ” fÉ›ÌrÉ™sianǸkÉ”ÌbÉ” fulÉ›nsíǸkÉ”ÌbÉ” aúsáǸkÉ”ÌbÉ” hindíǸkÉ”" + - "ÌbÉ” ungáríanǸkÉ”ÌbÉ” É›ndonésianǸkÉ”ÌbÉ” ibóǸkÉ”ÌbÉ” etáliÉ›nǸkÉ”ÌbÉ” hapÉ”ÌnǸ" + - "kÉ”ÌbÉ” havanísǸkÉ”ÌbÉ” kÉ™mÉ›ÌrǸkÉ”ÌbÉ” koréanǸkÉ”ÌbÉ” malÉ›ÌsianǸkÉ”ÌbÉ” birÉ™má" + - "nǹkÉ”ÌbÉ” nefálianǸkÉ”ÌbÉ” nÉ›rÉ™lándíaǹkÉ”ÌbÉ” funÉ™hábiaǹkÉ”ÌbÉ” fólisǹkÉ”ÌbÉ” " + - "fÉ”tugÉ›ÌsÅ„kÉ”ÌbÉ” románíaǹkÉ”ÌbÉ” rúsianǹkÉ”ÌbÉ” ruwandáǹkÉ”ÌbÉ” somáliaǹkÉ”Ìb" + - "É” suwÉ›ÌdǹkÉ”ÌbÉ” tamílǹkÉ”ÌbÉ” táilanǹkÉ”ÌbÉ” túrÉ™kiǹkÉ”ÌbÉ” ukeléniaǹkÉ”ÌbÉ”" + - " urudúǹkÉ”ÌbÉ” hiÉ›dÉ™námǹkÉ”ÌbÉ” yorúbaǸkÉ”ÌbÉ” tsainísǹkÉ”ÌbÉ” zulúewondo", - []uint16{ // 285 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0022, 0x0022, - 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x004a, 0x0061, - 0x0061, 0x0061, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, - 0x0075, 0x0075, 0x0075, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - 0x009a, 0x009a, 0x009a, 0x009a, 0x00ae, 0x00c3, 0x00c3, 0x00d6, - 0x00d6, 0x00d6, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x0101, - 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0112, - 0x0112, 0x0123, 0x0123, 0x0123, 0x0123, 0x0138, 0x0138, 0x0138, - // Entry 40 - 7F - 0x0138, 0x014f, 0x014f, 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, - 0x0172, 0x0172, 0x0185, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, - 0x0198, 0x0198, 0x01ac, 0x01ac, 0x01be, 0x01be, 0x01be, 0x01be, - 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, - 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, - 0x01be, 0x01be, 0x01be, 0x01d4, 0x01d4, 0x01e8, 0x01e8, 0x01e8, - 0x01fc, 0x01fc, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, - 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x022b, 0x022b, 0x023c, - // Entry 80 - BF - 0x023c, 0x0252, 0x0252, 0x0252, 0x0252, 0x0266, 0x0278, 0x028b, - 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, - 0x028b, 0x028b, 0x029e, 0x029e, 0x029e, 0x029e, 0x029e, 0x029e, - 0x02b1, 0x02b1, 0x02c2, 0x02c2, 0x02c2, 0x02d4, 0x02d4, 0x02d4, - 0x02d4, 0x02d4, 0x02e7, 0x02e7, 0x02e7, 0x02e7, 0x02e7, 0x02fb, - 0x030c, 0x030c, 0x030c, 0x0322, 0x0322, 0x0322, 0x0322, 0x0322, - 0x0322, 0x0334, 0x0334, 0x0347, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - // Entry C0 - FF - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - // Entry 100 - 13F - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x0357, 0x0357, 0x035d, - }, - }, - { // fa - faLangStr, - faLangIdx, - }, - { // fa-AF - "هسپانویÙنلندیآیرلندیکروشیاییاندونیزیاییآیسلندیایتالویجاپانیکوریاییقرغزیم" + - "غلینیپالیهالندینارویژیپولندیپرتگالیسویدنیتاجکی", - []uint16{ // 157 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x001a, 0x001a, 0x001a, 0x001a, - 0x001a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, - // Entry 40 - 7F - 0x0038, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x005c, - 0x006a, 0x006a, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, - 0x0076, 0x0076, 0x0076, 0x0076, 0x0084, 0x0084, 0x0084, 0x0084, - 0x0084, 0x0084, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, - 0x00a2, 0x00a2, 0x00ae, 0x00ae, 0x00bc, 0x00bc, 0x00bc, 0x00bc, - 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00c8, - // Entry 80 - BF - 0x00c8, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, - 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, - 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, - 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00ec, - }, - }, - { // ff - "AkaanAmarikAarabeereBelaruuseBulgariireBengaliCekkereDocceereGerkeEngele" + - "ereEspañolPerseerePulaarFarayseereHawsaÅ‹kooreHinndiHongariireEndones" + - "iireIgibooreItaliyeereSaponeereSawaneereKemeereKoreereMalayeereBurme" + - "eseNepaaleereDacceerePunjabeerePoloneerePurtugeereRomaneereRiisRuwaa" + - "nndeereSomaliiSweedeereTamilTaayTurkeereUkereneereUrduWiyetnameereYo" + - "rrubaaSinuwaareSuluÅ‹koore", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x000b, 0x000b, - 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x001d, 0x0027, - 0x0027, 0x0027, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x003d, 0x003d, 0x003d, 0x003d, 0x0042, 0x004b, 0x004b, 0x0053, - 0x0053, 0x0053, 0x005b, 0x0061, 0x0061, 0x0061, 0x0061, 0x006b, - 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x0077, - 0x0077, 0x007d, 0x007d, 0x007d, 0x007d, 0x0087, 0x0087, 0x0087, - // Entry 40 - 7F - 0x0087, 0x0092, 0x0092, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, - 0x00a4, 0x00a4, 0x00ad, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, - 0x00b6, 0x00b6, 0x00bd, 0x00bd, 0x00c4, 0x00c4, 0x00c4, 0x00c4, - 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, - 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, - 0x00c4, 0x00c4, 0x00c4, 0x00cd, 0x00cd, 0x00d5, 0x00d5, 0x00d5, - 0x00df, 0x00df, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, - 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00f1, 0x00f1, 0x00fa, - // Entry 80 - BF - 0x00fa, 0x0104, 0x0104, 0x0104, 0x0104, 0x010d, 0x0111, 0x011d, - 0x011d, 0x011d, 0x011d, 0x011d, 0x011d, 0x011d, 0x011d, 0x011d, - 0x011d, 0x011d, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, - 0x012d, 0x012d, 0x0132, 0x0132, 0x0132, 0x0136, 0x0136, 0x0136, - 0x0136, 0x0136, 0x013e, 0x013e, 0x013e, 0x013e, 0x013e, 0x0148, - 0x014c, 0x014c, 0x014c, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, - 0x0158, 0x0160, 0x0160, 0x0169, 0x0174, - }, - }, - { // fi - fiLangStr, - fiLangIdx, - }, - { // fil - filLangStr, - filLangIdx, - }, - { // fo - "abkhazisktafrískatwiamharisktarabisktassamesisktaymaraazerbaijaniskthvit" + - "arussisktbulgarsktbambarabengaliskttibetansktbretonsktbosnisktkatala" + - "nsktkekkisktvalisisktdanskttýsktdivehidzongkhagrikisktensktesperanto" + - "spansktestlendsktbaskisktpersisktfinsktfidjiansktføroysktfransktvest" + - "frisiktírsktskotskt gælisktgalisisktguaranigujaritihaussahebraiskthi" + - "ndikroatiskthaitisktungarsktarmensktinterlinguaindonesisktinterlingu" + - "eigboíslendsktitalsktjapansktjavanesisktgeorgisktkazakisktkambodjans" + - "ktkannadakoreansktkashmirisktkurdisktkirgisiktlatínluxemburgisktling" + - "alalaotisktlitavsktlatvisktmalagasisktmaorisktmakedonsktmalayalammon" + - "golisktmarathisktmalajisktmaltesisktburmesisktnepalskthollendsktnýno" + - "rsktnorskt bokmálnyanjaoccitanoriyaossetisktpunjabisktpolsktafghansk" + - "tportugisisktquechuaromanshrundiromansktrussisktruandasanskritsindhi" + - "sangosinhalesisktslovakisktslovensktsamoisktshonasomalisktalbansktse" + - "rbisktswatisktsesothosundanesisktsvensktswahilitamilskttelugiskttaji" + - "kisktthailendskttigrinyaturkmenskttswanatongansktturkiskttsongatatar" + - "iskttahitisktuighurukrainskturduuzbekisktvendavietnamesisktwolofxhos" + - "ajiddisktyorubakinesisktsuluasu (Tanzania)bembabena (Tanzania)bakoss" + - "ikiembuefikfilipiniskthawaiiansktkapverdisktlahndaolulujiashimaoréte" + - "tumklingonskttok pisinukjent málkantonesísktserbokroatiskt", - []uint16{ // 603 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x000a, 0x000a, 0x0012, 0x0015, 0x001e, 0x001e, - 0x0026, 0x0031, 0x0031, 0x0037, 0x0045, 0x0045, 0x0052, 0x005b, - 0x005b, 0x0062, 0x006c, 0x0076, 0x007f, 0x0087, 0x0091, 0x0091, - 0x0091, 0x0091, 0x0091, 0x0099, 0x0099, 0x0099, 0x00a2, 0x00a8, - 0x00ae, 0x00b4, 0x00bc, 0x00bc, 0x00c4, 0x00c9, 0x00d2, 0x00d9, - 0x00e3, 0x00eb, 0x00f3, 0x00f3, 0x00f9, 0x0103, 0x010c, 0x0113, - 0x011e, 0x0124, 0x0134, 0x013d, 0x0144, 0x014c, 0x014c, 0x0152, - 0x015b, 0x0160, 0x0160, 0x0169, 0x0171, 0x0179, 0x0181, 0x0181, - // Entry 40 - 7F - 0x018c, 0x0197, 0x01a2, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01b0, - 0x01b7, 0x01b7, 0x01bf, 0x01ca, 0x01d3, 0x01d3, 0x01d3, 0x01d3, - 0x01dc, 0x01dc, 0x01e8, 0x01ef, 0x01f8, 0x01f8, 0x0203, 0x020b, - 0x020b, 0x020b, 0x0214, 0x021a, 0x0227, 0x0227, 0x0227, 0x022e, - 0x0236, 0x023e, 0x023e, 0x0246, 0x0251, 0x0251, 0x0259, 0x0263, - 0x026c, 0x0276, 0x0280, 0x0289, 0x0293, 0x029d, 0x029d, 0x029d, - 0x02a5, 0x02a5, 0x02af, 0x02b8, 0x02c6, 0x02c6, 0x02c6, 0x02cc, - 0x02d3, 0x02d3, 0x02d3, 0x02d8, 0x02e1, 0x02eb, 0x02eb, 0x02f1, - // Entry 80 - BF - 0x02fa, 0x0306, 0x030d, 0x0314, 0x0319, 0x0321, 0x0329, 0x032f, - 0x0337, 0x0337, 0x033d, 0x033d, 0x0342, 0x034e, 0x0358, 0x0361, - 0x0369, 0x036e, 0x0377, 0x037f, 0x0387, 0x038f, 0x0396, 0x03a2, - 0x03a9, 0x03b0, 0x03b8, 0x03c1, 0x03ca, 0x03d5, 0x03dd, 0x03e7, - 0x03ed, 0x03f6, 0x03fe, 0x0404, 0x040d, 0x0416, 0x041c, 0x0425, - 0x0429, 0x0432, 0x0437, 0x0444, 0x0444, 0x0444, 0x0449, 0x044e, - 0x0456, 0x045c, 0x045c, 0x0465, 0x0469, 0x0469, 0x0469, 0x0469, - 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, - // Entry C0 - FF - 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, - 0x0469, 0x0469, 0x0469, 0x0469, 0x0477, 0x0477, 0x0477, 0x0477, - 0x0477, 0x0477, 0x0477, 0x0477, 0x0477, 0x0477, 0x0477, 0x0477, - 0x0477, 0x0477, 0x047c, 0x047c, 0x048b, 0x048b, 0x048b, 0x048b, - 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, - 0x048b, 0x048b, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, - 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, - 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, - // Entry 100 - 13F - 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, - 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, - 0x0492, 0x0492, 0x0492, 0x0492, 0x0498, 0x049c, 0x049c, 0x049c, - 0x049c, 0x049c, 0x049c, 0x049c, 0x049c, 0x049c, 0x049c, 0x04a7, - 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, - 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, - 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, - 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, - // Entry 140 - 17F - 0x04a7, 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, - 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, - 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, - 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04bd, - 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, - 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, - 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, - 0x04bd, 0x04bd, 0x04bd, 0x04c3, 0x04c3, 0x04c3, 0x04c3, 0x04c3, - // Entry 180 - 1BF - 0x04c3, 0x04c3, 0x04c3, 0x04c3, 0x04c3, 0x04c3, 0x04c3, 0x04c3, - 0x04c3, 0x04c3, 0x04c3, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - // Entry 1C0 - 1FF - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - // Entry 200 - 23F - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - 0x04cb, 0x04d4, 0x04d4, 0x04d4, 0x04d4, 0x04d4, 0x04d4, 0x04d4, - 0x04d4, 0x04d4, 0x04d9, 0x04d9, 0x04d9, 0x04d9, 0x04d9, 0x04e3, - 0x04e3, 0x04e3, 0x04e3, 0x04e3, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - 0x04ec, 0x04ec, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - // Entry 240 - 27F - 0x04f7, 0x0504, 0x0504, 0x0504, 0x0504, 0x0504, 0x0504, 0x0504, - 0x0504, 0x0504, 0x0504, 0x0504, 0x0504, 0x0504, 0x0504, 0x0504, - 0x0504, 0x0504, 0x0504, 0x0504, 0x0504, 0x0504, 0x0504, 0x0504, - 0x0504, 0x0504, 0x0512, - }, - }, - { // fr - frLangStr, - frLangIdx, - }, - { // fr-CA - frCALangStr, - frCALangIdx, - }, - { // fur - "afarabcazianavestanafrikaansamaricaragonêsarapassamêsavaraymaràazerbaija" + - "nibielorùsbulgarbengalêstibetanbretonbosniaccatalancecenchamorrocors" + - "creececsclâf de glesiegalêsdanêstodescgrêcinglêsesperantospagnûlesto" + - "nbascpersianfulahfinlandêsfizianfaroêsfrancêsfrisiangaelic irlandêsg" + - "aelic scozêsgalizianguaranìgujaratimanxebraichindicravuathaitianongj" + - "arêsarmenindonesianigboinupiaqidoislandêstalianinuktitutgjaponêsgjeo" + - "rgjiankazackalaallisutkhmerkannadacoreancurdcornualiêslatinlussembur" + - "ghêslimburghêslingalalaolituanletonmalagasymaorimacedonmalayalammong" + - "ulmarathimalêsmaltêsndebele setentrionâlnepalêsolandêsnorvegjês nyno" + - "rsknorvegjês bokmÃ¥lnavajoocitanoriyaoseticpunjabipolacpashtoportughê" + - "squechuarumançromenrussanscritsardegnûlsindhisami setentrionâlsangos" + - "inalêsslovacslovensamoansomalalbanêsserpswatisotho meridionâlsundanê" + - "ssvedêsswahilitamiltelegutagicthaiturcmenturctartartahitianuigurucra" + - "inurduuzbecvendavietnamitevalonwolofxhosayiddishyorubacinêszuluvieri" + - " inglêsaramaicasturiancopticsclâfvieri egjizianfilipinvieri francêsf" + - "urlangoticvieri grêcladinlenghis multiplismirandêsnapoletanbas todes" + - "cvieri norvegjêssotho setentrionâlturc otomanpapiamentovieri persian" + - "vieri provenzâlsicilianscozêsvieri irlandêssumerictetumindeterminade" + - "todesc de Austriealt todesc de Svuizareinglês australianinglês canad" + - "êsinglês britanicingles merecanspagnûl de Americhe Latinespagnûl ib" + - "ericfrancês dal Canadefrancês de Svuizareflamantportughês brasilianp" + - "ortughês ibericmoldâfcinês semplificâtcinês tradizionâl", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0004, 0x000c, 0x0013, 0x001c, 0x001c, 0x0022, 0x002b, - 0x002f, 0x0037, 0x003b, 0x0042, 0x004d, 0x004d, 0x0056, 0x005c, - 0x005c, 0x005c, 0x0065, 0x006c, 0x0072, 0x0079, 0x0080, 0x0085, - 0x008d, 0x0091, 0x0095, 0x0098, 0x00a8, 0x00a8, 0x00ae, 0x00b4, - 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00bf, 0x00c6, 0x00cf, 0x00d7, - 0x00dc, 0x00e0, 0x00e7, 0x00ec, 0x00f6, 0x00fc, 0x0103, 0x010b, - 0x0112, 0x0122, 0x0130, 0x0138, 0x0140, 0x0148, 0x014c, 0x014c, - 0x0152, 0x0157, 0x0157, 0x015e, 0x0165, 0x016e, 0x0173, 0x0173, - // Entry 40 - 7F - 0x0173, 0x017d, 0x017d, 0x0181, 0x0181, 0x0188, 0x018b, 0x0194, - 0x019a, 0x01a3, 0x01ac, 0x01ac, 0x01b6, 0x01b6, 0x01b6, 0x01b6, - 0x01bb, 0x01c6, 0x01cb, 0x01d2, 0x01d8, 0x01d8, 0x01d8, 0x01dc, - 0x01dc, 0x01e7, 0x01e7, 0x01ec, 0x01fa, 0x01fa, 0x0205, 0x020c, - 0x020f, 0x0215, 0x0215, 0x021a, 0x0222, 0x0222, 0x0227, 0x022e, - 0x0237, 0x023d, 0x0244, 0x024a, 0x0251, 0x0251, 0x0251, 0x0266, - 0x026e, 0x026e, 0x0276, 0x0288, 0x029a, 0x029a, 0x02a0, 0x02a0, - 0x02a6, 0x02a6, 0x02a6, 0x02ab, 0x02b1, 0x02b8, 0x02b8, 0x02bd, - // Entry 80 - BF - 0x02c3, 0x02cd, 0x02d4, 0x02db, 0x02db, 0x02e0, 0x02e3, 0x02e3, - 0x02eb, 0x02f5, 0x02fb, 0x030d, 0x0312, 0x031a, 0x0320, 0x0326, - 0x032c, 0x032c, 0x0331, 0x0339, 0x033d, 0x0342, 0x0353, 0x035c, - 0x0363, 0x036a, 0x036f, 0x0375, 0x037a, 0x037e, 0x037e, 0x0385, - 0x0385, 0x0385, 0x0389, 0x0389, 0x038f, 0x0397, 0x039c, 0x03a2, - 0x03a6, 0x03ab, 0x03b0, 0x03ba, 0x03ba, 0x03bf, 0x03c4, 0x03c9, - 0x03d0, 0x03d6, 0x03d6, 0x03dc, 0x03e0, 0x03e0, 0x03e0, 0x03e0, - 0x03e0, 0x03e0, 0x03e0, 0x03e0, 0x03e0, 0x03e0, 0x03e0, 0x03e0, - // Entry C0 - FF - 0x03e0, 0x03e0, 0x03ed, 0x03ed, 0x03f4, 0x03f4, 0x03f4, 0x03f4, - 0x03f4, 0x03f4, 0x03f4, 0x03f4, 0x03f4, 0x03f4, 0x03fc, 0x03fc, - 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, - 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, - 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, - 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, - 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, - 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, - // Entry 100 - 13F - 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, - 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, - 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0416, - 0x0416, 0x0416, 0x0416, 0x0416, 0x0416, 0x0416, 0x0416, 0x041d, - 0x041d, 0x041d, 0x041d, 0x041d, 0x042b, 0x042b, 0x042b, 0x042b, - 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, - 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0436, - 0x0436, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, - // Entry 140 - 17F - 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, - 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, - 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, - 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, - 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, - 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, - 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, - 0x0441, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, - // Entry 180 - 1BF - 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, - 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, - 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, - 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, - 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0457, 0x0457, - 0x0460, 0x0460, 0x0460, 0x0460, 0x0460, 0x0460, 0x0460, 0x0469, - 0x0469, 0x0473, 0x0473, 0x0473, 0x0473, 0x0473, 0x0473, 0x0473, - 0x0473, 0x0483, 0x0483, 0x0483, 0x0496, 0x0496, 0x0496, 0x0496, - // Entry 1C0 - 1FF - 0x0496, 0x0496, 0x0496, 0x0496, 0x04a1, 0x04a1, 0x04a1, 0x04a1, - 0x04ab, 0x04ab, 0x04ab, 0x04ab, 0x04ab, 0x04b8, 0x04b8, 0x04b8, - 0x04b8, 0x04b8, 0x04b8, 0x04b8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, - 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, - 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, - 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04d0, 0x04d7, 0x04d7, 0x04d7, - 0x04d7, 0x04d7, 0x04d7, 0x04d7, 0x04e6, 0x04e6, 0x04e6, 0x04e6, - 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, - // Entry 200 - 23F - 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, - 0x04ed, 0x04ed, 0x04ed, 0x04ed, 0x04ed, 0x04ed, 0x04ed, 0x04ed, - 0x04ed, 0x04ed, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, - 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, - 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, - 0x04f2, 0x04f2, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, - 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, - 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, - // Entry 240 - 27F - 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, - 0x04ff, 0x04ff, 0x04ff, 0x0510, 0x0526, 0x0538, 0x0548, 0x0558, - 0x0566, 0x0581, 0x0590, 0x0590, 0x05a3, 0x05b7, 0x05be, 0x05d2, - 0x05e3, 0x05ea, 0x05ea, 0x05fd, 0x0610, - }, - }, - { // fy - "AfarAbchazyskAvestyskAfrikaanskAkanAmhaarskAragoneeskArabyskAssameeskAva" + - "ryskAymaraAzerbeidzjaanskBasjkierskWyt-RussyskBulgaarskBislamaBambar" + - "aBengaalskTibetaanskBretonskBosnyskKatalaanskTsjetsjeenskChamorroKor" + - "sikaanskCreeTsjechyskKerkslavyskTsjoevasjyskWelskDeenskDútskDivehiDz" + - "ongkhaEweGryksIngelskEsperantoSpaanskEstlânskBaskyskPerzyskFulahFins" + - "kFijyskFaeröerskFrânskWest-FryskIerskSchotsk GaelicGalisyskGuaraníGu" + - "jaratiManksHausaHebreeuwskHindiHiri MotuKroatyskHaïtiaanskHongaarskA" + - "rmeenskHereroInterlinguaYndonezyskInterlingueIgboSichuan YiInupiaqId" + - "oYslânsItaliaanskInuktitutJapansJavaanskGeorgyskKongoKikuyuKuanyamaK" + - "azachsGrienlânsKhmerKannadaKoreaanskKanuriKasjmiriKoerdyskKomiCornis" + - "hKirgizyskLatynLuxemburgsGandaLimburgsLingalaLaotiaanskLitouwsLuba-K" + - "atangaLetlânsMalagasyskMarshalleesMaoriMacedonyskMalayalamMongoolsMa" + - "rathiMaleisMalteesBirmeesNauruaanskNoard-NdbeleNepaleesNdongaNederlâ" + - "nskNoors - NynorskNoors - BokmÃ¥lSûd-NdbeleNavajoNyanjaOccitaanskOjib" + - "waOromoOdiaOssetyskPunjabiPaliPoalskPasjtoePortugeeskQuechuaReto-Rom" + - "aanskKirundiRoemeenskRussyskKinyarwandaSanskrietSardinyskSindhiNoard" + - "-SamyskSangoSingaleesSlowaaksSloveenskSamoaanskShonaSomalyskAlbanees" + - "kServyskSwaziSûd-SothoSoendaneeskZweedsSwahiliTamilTeluguTadzjieksTh" + - "aisTigrinyaTurkmeensTswanaTongaanskTurksTsongaTataarsTahityskOeigoer" + - "sOekraïensUrduOezbeeksVendaVietnameesVolapükWaalsWolofXhosaJiddyskYo" + - "rubaZhuangSineeskZuluAtjeeskAkoliAdangmeAdygheAfrihiliAghemAinuAkkad" + - "yskAleutSûd-AltaïskâldingelskAngikaArameeskAraukaanskArapahoArawakAs" + - "uAsturyskAwadhiBaloetsjyskBalineeskBasaBamounGhomala’BejaBembaBenaBa" + - "futBhojpuriBikolBiniKomSiksikaBrajBodoAkooseBuriatBugineeskBuluBlinM" + - "edumbaKaddoKaribyskCayugaAtsamCebuanoChigaChibchaChagataiChuukeeskMa" + - "riChinook-jargonChoctawChipewyanCherokeeCheyenneSoranîKoptyskKrim-Ta" + - "taarskKasjoebyskDakotaDargwaTaitaDelawareSlaveDogribDinkaZarmaDogriN" + - "edersorbyskDualaMiddelnederlânskJola-FonyiDyulaDazagaEmbuEfikAldegyp" + - "tyskEkajukElamityskMiddelingelskEwondoFangFilipynskFonMiddelfrânskAl" + - "dfrânskNoard-FryskEast-FryskFriulyskGaGayoGbayaGeezGilberteeskMiddel" + - "heechdútskAlsheechdútskGondiGorontaloGothyskGreboAldgryksSwitsers Dú" + - "tskGusiiGwichʼinHaidaHawaïaanskHiligaynonHettityskHmongOppersorbyskH" + - "upaIbanIbibioIlokoIngoesjLojbanNgombaMachameJudeo-PerzyskJudeo-Araby" + - "skKarakalpaksKabyleKachinJjuKambaKawiKabardyskKanembuTyapMakondeKaap" + - "verdysk CreoolsKoroKhasiKhotaneeskKoyra ChiiniKakoKalenjinKimbunduKo" + - "nkaniKosraeaanskKpelleKarachay-BalkarKarelyskKurukhShambalaBafiaKöls" + - "chKoemuksKutenaiLadinoLangiLahndaLambaLezgyskLakotaMongoLoziLuba-Lul" + - "uaLuisenoLundaLuoLushaiLuyiaMadureesMafaMagahiMaithiliMakassaarsMand" + - "ingoMasaiMabaMokshaMandarMendeMeruMorisyenMiddeliersMakhuwa-MeettoMe" + - "ta’Mi’kmaqMinangkabauMantsjoeManipoeriMohawkMossiMundangMeardere tal" + - "enCreekMirandeesMarwariMyeneErzjaNapolitaanskNamaLaagduitsNewariNias" + - "NiueaanskNgumbaNgiemboonNogaiAldnoarskN’koNoard-SothoNuerKlassiek Ne" + - "wariNyamweziNyankoleNyoroNzimaOsageOttomaansk-TurksPangasinanPahlavi" + - "PampangaPapiamentsPalauaanskAldperzyskFoenisyskPohnpeiaanskAldproven" + - "çaalsRajasthaniRapanuiRarotonganRomboRomaniAromaniaanskRwaSandaweJa" + - "koetsSamaritaansk-ArameeskSamburuSasakSantaliNgambaySanguSiciliaansk" + - "SchotsSenecaSenaSelkupKoyraboro SenniAldyrskTashelhiytShanTsjadysk A" + - "rabyskSidamoSûd-SamyskLule SamiInari SamiSkolt SamiSoninkeSogdyskSra" + - "nantongoSererSahoSukumaSoesoeSoemeryskShimaoreCongo SwahiliKlassiek " + - "SyryskSyryskTimneTesoTerenoTetunTigreTivTokelausKlingonTlingitTamash" + - "ekNyasa TongaTok PisinTarokoTsimshianToemboekaTuvaluaanskTasawaqTuvi" + - "nyskTamazight (Sintraal-Marokko)OedmoertsOegarityskUmbunduRootVaiVot" + - "yskVunjoWalserWalamoWarayWashoKalmykSogaYaoYapeesYangbenYembaKantone" + - "eskZapotecBlissymbolenZenagaStandert Marokkaanske TamazightZuniGjin " + - "linguïstyske ynhâldZazaModern standert ArabyskEastenryks DútskSwitse" + - "rsk HeechdútskAustralysk IngelskKanadeesk IngelskBritsk IngelskAmeri" + - "kaansk IngelskLatynsk-Amerikaansk SpaanskEuropeesk SpaanskMeksikaans" + - "k SpaanskKanadeesk FrânskSwitserse FrânskVlaamsBrazyljaansk Portugee" + - "sEuropees PortugeesMoldavyskServokroatyskFerienfâldich SineeskTradis" + - "joneel Sineesk", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0004, 0x000d, 0x0015, 0x001f, 0x0023, 0x002b, 0x0035, - 0x003c, 0x0045, 0x004c, 0x0052, 0x0061, 0x006b, 0x0076, 0x007f, - 0x0086, 0x008d, 0x0096, 0x00a0, 0x00a8, 0x00af, 0x00b9, 0x00c5, - 0x00cd, 0x00d8, 0x00dc, 0x00e5, 0x00f0, 0x00fc, 0x0101, 0x0107, - 0x010d, 0x0113, 0x011b, 0x011e, 0x0123, 0x012a, 0x0133, 0x013a, - 0x0143, 0x014a, 0x0151, 0x0156, 0x015b, 0x0161, 0x016b, 0x0172, - 0x017c, 0x0181, 0x018f, 0x0197, 0x019f, 0x01a7, 0x01ac, 0x01b1, - 0x01bb, 0x01c0, 0x01c9, 0x01d1, 0x01dc, 0x01e5, 0x01ed, 0x01f3, - // Entry 40 - 7F - 0x01fe, 0x0208, 0x0213, 0x0217, 0x0221, 0x0228, 0x022b, 0x0232, - 0x023c, 0x0245, 0x024b, 0x0253, 0x025b, 0x0260, 0x0266, 0x026e, - 0x0275, 0x027f, 0x0284, 0x028b, 0x0294, 0x029a, 0x02a2, 0x02aa, - 0x02ae, 0x02b5, 0x02be, 0x02c3, 0x02cd, 0x02d2, 0x02da, 0x02e1, - 0x02eb, 0x02f2, 0x02fe, 0x0306, 0x0310, 0x031b, 0x0320, 0x032a, - 0x0333, 0x033b, 0x0342, 0x0348, 0x034f, 0x0356, 0x0360, 0x036c, - 0x0374, 0x037a, 0x0385, 0x0394, 0x03a3, 0x03ae, 0x03b4, 0x03ba, - 0x03c4, 0x03ca, 0x03cf, 0x03d3, 0x03db, 0x03e2, 0x03e6, 0x03ec, - // Entry 80 - BF - 0x03f3, 0x03fd, 0x0404, 0x0411, 0x0418, 0x0421, 0x0428, 0x0433, - 0x043c, 0x0445, 0x044b, 0x0457, 0x045c, 0x0465, 0x046d, 0x0476, - 0x047f, 0x0484, 0x048c, 0x0495, 0x049c, 0x04a1, 0x04ab, 0x04b6, - 0x04bc, 0x04c3, 0x04c8, 0x04ce, 0x04d7, 0x04dc, 0x04e4, 0x04ed, - 0x04f3, 0x04fc, 0x0501, 0x0507, 0x050e, 0x0516, 0x051e, 0x0528, - 0x052c, 0x0534, 0x0539, 0x0543, 0x054b, 0x0550, 0x0555, 0x055a, - 0x0561, 0x0567, 0x056d, 0x0574, 0x0578, 0x057f, 0x0584, 0x058b, - 0x0591, 0x0591, 0x0599, 0x059e, 0x05a2, 0x05aa, 0x05aa, 0x05af, - // Entry C0 - FF - 0x05af, 0x05bc, 0x05c7, 0x05cd, 0x05d5, 0x05df, 0x05df, 0x05e6, - 0x05e6, 0x05ec, 0x05ec, 0x05ec, 0x05ef, 0x05ef, 0x05f7, 0x05f7, - 0x05fd, 0x05fd, 0x0608, 0x0611, 0x0611, 0x0615, 0x061b, 0x061b, - 0x0625, 0x0629, 0x062e, 0x062e, 0x0632, 0x0637, 0x0637, 0x063f, - 0x0644, 0x0648, 0x0648, 0x064b, 0x0652, 0x0652, 0x0652, 0x0656, - 0x0656, 0x065a, 0x0660, 0x0666, 0x066f, 0x0673, 0x0677, 0x067e, - 0x0683, 0x068b, 0x0691, 0x0696, 0x069d, 0x06a2, 0x06a9, 0x06b1, - 0x06ba, 0x06be, 0x06cc, 0x06d3, 0x06dc, 0x06e4, 0x06ec, 0x06f3, - // Entry 100 - 13F - 0x06fa, 0x06fa, 0x0707, 0x0711, 0x0717, 0x071d, 0x0722, 0x072a, - 0x072f, 0x0735, 0x073a, 0x073f, 0x0744, 0x0750, 0x0750, 0x0755, - 0x0766, 0x0770, 0x0775, 0x077b, 0x077f, 0x0783, 0x0783, 0x078e, - 0x0794, 0x079d, 0x07aa, 0x07aa, 0x07b0, 0x07b0, 0x07b4, 0x07bd, - 0x07bd, 0x07c0, 0x07c0, 0x07cd, 0x07d7, 0x07d7, 0x07e2, 0x07ec, - 0x07f4, 0x07f6, 0x07f6, 0x07f6, 0x07fa, 0x07ff, 0x07ff, 0x0803, - 0x080e, 0x080e, 0x081f, 0x082d, 0x082d, 0x0832, 0x083b, 0x0842, - 0x0847, 0x084f, 0x085e, 0x085e, 0x085e, 0x0863, 0x086c, 0x0871, - // Entry 140 - 17F - 0x0871, 0x087c, 0x087c, 0x0886, 0x088f, 0x0894, 0x08a0, 0x08a0, - 0x08a4, 0x08a8, 0x08ae, 0x08b3, 0x08ba, 0x08ba, 0x08ba, 0x08c0, - 0x08c6, 0x08cd, 0x08da, 0x08e7, 0x08e7, 0x08f2, 0x08f8, 0x08fe, - 0x0901, 0x0906, 0x090a, 0x0913, 0x091a, 0x091e, 0x0925, 0x0938, - 0x0938, 0x093c, 0x093c, 0x0941, 0x094b, 0x0957, 0x0957, 0x0957, - 0x095b, 0x0963, 0x096b, 0x096b, 0x0972, 0x097d, 0x0983, 0x0992, - 0x0992, 0x0992, 0x099a, 0x09a0, 0x09a8, 0x09ad, 0x09b4, 0x09bb, - 0x09c2, 0x09c8, 0x09cd, 0x09d3, 0x09d8, 0x09df, 0x09df, 0x09df, - // Entry 180 - 1BF - 0x09df, 0x09e5, 0x09e5, 0x09ea, 0x09ee, 0x09ee, 0x09f8, 0x09ff, - 0x0a04, 0x0a07, 0x0a0d, 0x0a12, 0x0a12, 0x0a12, 0x0a1a, 0x0a1e, - 0x0a24, 0x0a2c, 0x0a36, 0x0a3e, 0x0a43, 0x0a47, 0x0a4d, 0x0a53, - 0x0a58, 0x0a5c, 0x0a64, 0x0a6e, 0x0a7c, 0x0a83, 0x0a8c, 0x0a97, - 0x0a9f, 0x0aa8, 0x0aae, 0x0ab3, 0x0ab3, 0x0aba, 0x0ac8, 0x0acd, - 0x0ad6, 0x0add, 0x0add, 0x0ae2, 0x0ae7, 0x0ae7, 0x0ae7, 0x0af3, - 0x0af7, 0x0b00, 0x0b06, 0x0b0a, 0x0b13, 0x0b13, 0x0b19, 0x0b22, - 0x0b27, 0x0b30, 0x0b30, 0x0b36, 0x0b41, 0x0b45, 0x0b54, 0x0b5c, - // Entry 1C0 - 1FF - 0x0b64, 0x0b69, 0x0b6e, 0x0b73, 0x0b83, 0x0b8d, 0x0b94, 0x0b9c, - 0x0ba6, 0x0bb0, 0x0bb0, 0x0bb0, 0x0bb0, 0x0bba, 0x0bba, 0x0bc3, - 0x0bc3, 0x0bc3, 0x0bcf, 0x0bcf, 0x0bde, 0x0bde, 0x0bde, 0x0be8, - 0x0bef, 0x0bf9, 0x0bf9, 0x0bf9, 0x0bfe, 0x0c04, 0x0c04, 0x0c04, - 0x0c04, 0x0c10, 0x0c13, 0x0c1a, 0x0c21, 0x0c36, 0x0c3d, 0x0c42, - 0x0c49, 0x0c49, 0x0c50, 0x0c55, 0x0c60, 0x0c66, 0x0c66, 0x0c6c, - 0x0c70, 0x0c70, 0x0c76, 0x0c85, 0x0c8c, 0x0c8c, 0x0c96, 0x0c9a, - 0x0caa, 0x0cb0, 0x0cb0, 0x0cb0, 0x0cbb, 0x0cc4, 0x0cce, 0x0cd8, - // Entry 200 - 23F - 0x0cdf, 0x0ce6, 0x0cf1, 0x0cf6, 0x0cfa, 0x0cfa, 0x0d00, 0x0d06, - 0x0d0f, 0x0d17, 0x0d24, 0x0d33, 0x0d39, 0x0d39, 0x0d39, 0x0d3e, - 0x0d42, 0x0d48, 0x0d4d, 0x0d52, 0x0d55, 0x0d5d, 0x0d5d, 0x0d64, - 0x0d6b, 0x0d6b, 0x0d73, 0x0d7e, 0x0d87, 0x0d87, 0x0d8d, 0x0d8d, - 0x0d96, 0x0d96, 0x0d9f, 0x0daa, 0x0db1, 0x0db9, 0x0dd5, 0x0dde, - 0x0de8, 0x0def, 0x0df3, 0x0df6, 0x0df6, 0x0df6, 0x0df6, 0x0df6, - 0x0dfc, 0x0dfc, 0x0e01, 0x0e07, 0x0e0d, 0x0e12, 0x0e17, 0x0e17, - 0x0e17, 0x0e1d, 0x0e1d, 0x0e21, 0x0e24, 0x0e2a, 0x0e31, 0x0e36, - // Entry 240 - 27F - 0x0e36, 0x0e40, 0x0e47, 0x0e53, 0x0e53, 0x0e59, 0x0e78, 0x0e7c, - 0x0e96, 0x0e9a, 0x0eb1, 0x0ec2, 0x0ed7, 0x0ee9, 0x0efa, 0x0f08, - 0x0f1b, 0x0f36, 0x0f47, 0x0f5a, 0x0f6b, 0x0f7c, 0x0f82, 0x0f98, - 0x0faa, 0x0fb3, 0x0fc0, 0x0fd6, 0x0fea, - }, - }, - { // ga - "AfáirisAbcáisisAivéistisAfracáinisAcáinisAmáirisAragóinisAraibisAsaimisA" + - "váirisAidhmirisAsarbaiseáinisBaiscírisBealarúisisBulgáirisBioslaimis" + - "BeangáilisTibéidisBriotáinisBoisnisCatalóinisSisinisSeamóirisCorsaic" + - "isCraísSeicisSlavais na hEaglaiseSuvaisisBreatnaisDanmhairgisGearmái" + - "nisDivéihisSeoinicisGréigisBéarlaEsperantoSpáinnisEastóinisBascaisPe" + - "irsisFuláinisFionlainnisFidsisFaróisFraincisFreaslainnis IartharachG" + - "aeilgeGaeilge na hAlbanGailísisGuaráinisGúisearáitisManainnisHásaisE" + - "abhraisHiondúisMotúis HíríCróitisCriól HáítíochUngáirisAirméinisHeir" + - "éirisInterlinguaIndinéisisInterlingueÃogbóisIniúipiaicisIdoÃoslainn" + - "isIodáilisIonúitisSeapáinisIáivisSeoirsisCongóisCiocúisCuainiáimisCa" + - "saicisKalaallisutCiméirisCannadaisCóiréisCanúirisCaismírisCoirdisCoi" + - "misCoirnisCirgisisLaidinLucsambuirgisLugandaisLiongáilisLaoisisLiotu" + - "áinisLúba-CataingisLaitvisMalagáisisMairsillisMaoraisMacadóinisMail" + - "éalaimisMongóilisMaraitisMalaeisMáltaisBurmaisNárúisNdeibéilis an T" + - "uaiscirtNeipeailisNdongaisOllainnisNua-IoruaisIoruais BokmÃ¥lNdeibéil" + - "is an DeiscirtNavachóisSiséivisOcsatáinisÓisibisOraimisOirísisOiséit" + - "isPuinseáibisPáilisPolainnisPaistisPortaingéilisCeatsuaisRómainisRúi" + - "ndisRómáinisRúisisCiniaruaindisSanscraitSairdínisSindisSáimis Thuaid" + - "hSangóisSiolóinisSlóvaicisSlóivéinisSamóisSeoinisSomáilisAlbáinisSei" + - "rbisSuaisisSeasóitisSundaisSualainnisSvahaílisTamailisTeileagúisTáid" + - "sícisTéalainnisTigrinisTuircméinisSuáinisTongaisTuircisSongaisTatair" + - "isTaihítisUigiúirisÚcráinisUrdúisÚisbéiceastáinisVeindisVítneaimisVo" + - "lapükVallúnaisVolaifisCóisisGiúdaisIarúibisSiuáingisSínisSúlúisAidhn" + - "iúisAcáidisSean-BhéarlaAramaisMapúitsisAstúirisBailísBaváirisBeimbis" + - "BuiriáitisBuiginisSeabúáinisMairisSeiricisCoptaisCaisiúibisZarmaisSo" + - "rbais ÃochtarachMeán-OllainnisSean-ÉigiptisMeán-BhéarlaFilipínisMeán" + - "-FhraincisSean-FhraincisFreaslainnis an TuaiscirtFriúilisAetóipisMeá" + - "n-Ard-GhearmáinisSean-Ard-GhearmáinisSean-GhréigisGearmáinis Eilvéis" + - "eachUaúisHaicéisHaváisHiondúis FhidsíHilgeanóinisHitisMongaisSorbais" + - " UachtarachHúipisIbibisIongúisIútlainnisCara-ChalpáisConcáinisCairéi" + - "lisCurúicisLaidínisPuinseáibis IartharachLiogúirisLiovóinisLombairdi" + - "sMeindisMeán-GhaeilgeManapúirisMóháicisMairis IartharachMioraindéisM" + - "armhairisGearmáinis ÃochtarachNíobhaisSean-LochlainnisSútúis an Tuai" + - "scirtSean-PheirsisPrúisisRomainisArómáinisSachaisAramais ShamárachSa" + - "ntáilisSicilisAlbainisSean-GhaeilgeSáimis LuleSogdánaisSuiméirisSvah" + - "aílis an ChongóSiricisSiléisisKlingonUdmairtisTeanga AnaithnidVeinéi" + - "sisPléimeannais IartharachCailmícisCantainisSéalainnisZúinisGan ábha" + - "r teangeolaíochAraibis ChaighdeánachGearmáinis OstarachArd-Ghearmáin" + - "is EilvéiseachBéarla AstrálachBéarla CeanadachBéarla BriotanachBéarl" + - "a MeiriceánachSpáinnis Mheiriceá LaidinighSpáinnis EorpachSpáinnis M" + - "heicsiceachFraincis CheanadachFraincis EilvéiseachPléimeannaisPortai" + - "ngéilis na BrasaílePortaingéilis IbéarachMoldáivisSeirbea-ChróitisSí" + - "nis ShimplitheSínis Thraidisiúnta", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0008, 0x0011, 0x001b, 0x0026, 0x002e, 0x0036, 0x0040, - 0x0047, 0x004e, 0x0056, 0x005f, 0x006e, 0x0078, 0x0084, 0x008e, - 0x0098, 0x0098, 0x00a3, 0x00ac, 0x00b7, 0x00be, 0x00c9, 0x00d0, - 0x00da, 0x00e3, 0x00e9, 0x00ef, 0x0103, 0x010b, 0x0114, 0x011f, - 0x012a, 0x0133, 0x013c, 0x013c, 0x0144, 0x014b, 0x0154, 0x015d, - 0x0167, 0x016e, 0x0175, 0x017e, 0x0189, 0x018f, 0x0196, 0x019e, - 0x01b5, 0x01bc, 0x01cd, 0x01d6, 0x01e0, 0x01ee, 0x01f7, 0x01fe, - 0x0206, 0x020f, 0x021d, 0x0225, 0x0237, 0x0240, 0x024a, 0x0254, - // Entry 40 - 7F - 0x025f, 0x026a, 0x0275, 0x027e, 0x027e, 0x028b, 0x028e, 0x0299, - 0x02a2, 0x02ab, 0x02b5, 0x02bc, 0x02c4, 0x02cc, 0x02d4, 0x02e0, - 0x02e8, 0x02f3, 0x02fc, 0x0305, 0x030e, 0x0317, 0x0321, 0x0328, - 0x032e, 0x0335, 0x033d, 0x0343, 0x0350, 0x0359, 0x0359, 0x0364, - 0x036b, 0x0376, 0x0385, 0x038c, 0x0397, 0x03a1, 0x03a8, 0x03b3, - 0x03c0, 0x03ca, 0x03d2, 0x03d9, 0x03e1, 0x03e8, 0x03f0, 0x0408, - 0x0412, 0x041a, 0x0423, 0x042e, 0x043d, 0x0454, 0x045e, 0x0467, - 0x0472, 0x047a, 0x0481, 0x0489, 0x0492, 0x049e, 0x04a5, 0x04ae, - // Entry 80 - BF - 0x04b5, 0x04c3, 0x04cc, 0x04d5, 0x04dd, 0x04e7, 0x04ee, 0x04fb, - 0x0504, 0x050e, 0x0514, 0x0523, 0x052b, 0x0535, 0x053f, 0x054b, - 0x0552, 0x0559, 0x0562, 0x056b, 0x0572, 0x0579, 0x0583, 0x058a, - 0x0594, 0x059e, 0x05a6, 0x05b1, 0x05bc, 0x05c7, 0x05cf, 0x05db, - 0x05e3, 0x05ea, 0x05f1, 0x05f8, 0x0600, 0x0609, 0x0613, 0x061d, - 0x0624, 0x0637, 0x063e, 0x0649, 0x0651, 0x065b, 0x0663, 0x066a, - 0x0672, 0x067b, 0x0685, 0x068b, 0x0693, 0x0693, 0x0693, 0x0693, - 0x0693, 0x0693, 0x0693, 0x0693, 0x069d, 0x06a5, 0x06a5, 0x06a5, - // Entry C0 - FF - 0x06a5, 0x06a5, 0x06b2, 0x06b2, 0x06b9, 0x06c3, 0x06c3, 0x06c3, - 0x06c3, 0x06c3, 0x06c3, 0x06c3, 0x06c3, 0x06c3, 0x06cc, 0x06cc, - 0x06cc, 0x06cc, 0x06cc, 0x06d3, 0x06dc, 0x06dc, 0x06dc, 0x06dc, - 0x06dc, 0x06dc, 0x06e3, 0x06e3, 0x06e3, 0x06e3, 0x06e3, 0x06e3, - 0x06e3, 0x06e3, 0x06e3, 0x06e3, 0x06e3, 0x06e3, 0x06e3, 0x06e3, - 0x06e3, 0x06e3, 0x06e3, 0x06ee, 0x06f6, 0x06f6, 0x06f6, 0x06f6, - 0x06f6, 0x06f6, 0x06f6, 0x06f6, 0x0702, 0x0702, 0x0702, 0x0702, - 0x0702, 0x0708, 0x0708, 0x0708, 0x0708, 0x0710, 0x0710, 0x0710, - // Entry 100 - 13F - 0x0717, 0x0717, 0x0717, 0x0722, 0x0722, 0x0722, 0x0722, 0x0722, - 0x0722, 0x0722, 0x0722, 0x0729, 0x0729, 0x073c, 0x073c, 0x073c, - 0x074b, 0x074b, 0x074b, 0x074b, 0x074b, 0x074b, 0x074b, 0x0759, - 0x0759, 0x0759, 0x0767, 0x0767, 0x0767, 0x0767, 0x0767, 0x0771, - 0x0771, 0x0771, 0x0771, 0x0780, 0x078e, 0x078e, 0x07a7, 0x07a7, - 0x07b0, 0x07b0, 0x07b0, 0x07b0, 0x07b0, 0x07b0, 0x07b0, 0x07b9, - 0x07b9, 0x07b9, 0x07cf, 0x07e4, 0x07e4, 0x07e4, 0x07e4, 0x07e4, - 0x07e4, 0x07f2, 0x080a, 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, - // Entry 140 - 17F - 0x0818, 0x081f, 0x0830, 0x083d, 0x0842, 0x0849, 0x085b, 0x085b, - 0x0862, 0x0862, 0x0868, 0x0868, 0x0870, 0x0870, 0x0870, 0x0870, - 0x0870, 0x0870, 0x0870, 0x0870, 0x087b, 0x0889, 0x0889, 0x0889, - 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, - 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, - 0x0889, 0x0889, 0x0889, 0x0889, 0x0893, 0x0893, 0x0893, 0x0893, - 0x0893, 0x0893, 0x089d, 0x08a6, 0x08a6, 0x08a6, 0x08a6, 0x08a6, - 0x08a6, 0x08af, 0x08af, 0x08c6, 0x08c6, 0x08c6, 0x08c6, 0x08d0, - // Entry 180 - 1BF - 0x08da, 0x08da, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, - 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, - 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, - 0x08eb, 0x08eb, 0x08eb, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, - 0x08f9, 0x0904, 0x090e, 0x090e, 0x091f, 0x091f, 0x091f, 0x091f, - 0x092b, 0x0935, 0x0935, 0x0935, 0x0935, 0x0935, 0x0935, 0x0935, - 0x0935, 0x094c, 0x094c, 0x094c, 0x0955, 0x0955, 0x0955, 0x0955, - 0x0955, 0x0965, 0x0965, 0x0965, 0x097a, 0x097a, 0x097a, 0x097a, - // Entry 1C0 - 1FF - 0x097a, 0x097a, 0x097a, 0x097a, 0x097a, 0x097a, 0x097a, 0x097a, - 0x097a, 0x097a, 0x097a, 0x097a, 0x097a, 0x0987, 0x0987, 0x0987, - 0x0987, 0x0987, 0x0987, 0x098f, 0x098f, 0x098f, 0x098f, 0x098f, - 0x098f, 0x098f, 0x098f, 0x098f, 0x098f, 0x0997, 0x0997, 0x0997, - 0x0997, 0x09a2, 0x09a2, 0x09a2, 0x09a9, 0x09bb, 0x09bb, 0x09bb, - 0x09c5, 0x09c5, 0x09c5, 0x09c5, 0x09cc, 0x09d4, 0x09d4, 0x09d4, - 0x09d4, 0x09d4, 0x09d4, 0x09d4, 0x09e1, 0x09e1, 0x09e1, 0x09e1, - 0x09e1, 0x09e1, 0x09e1, 0x09e1, 0x09e1, 0x09ed, 0x09ed, 0x09ed, - // Entry 200 - 23F - 0x09ed, 0x09f7, 0x09f7, 0x09f7, 0x09f7, 0x09f7, 0x09f7, 0x09f7, - 0x0a01, 0x0a01, 0x0a16, 0x0a16, 0x0a1d, 0x0a26, 0x0a26, 0x0a26, - 0x0a26, 0x0a26, 0x0a26, 0x0a26, 0x0a26, 0x0a26, 0x0a26, 0x0a2d, - 0x0a2d, 0x0a2d, 0x0a2d, 0x0a2d, 0x0a2d, 0x0a2d, 0x0a2d, 0x0a2d, - 0x0a2d, 0x0a2d, 0x0a2d, 0x0a2d, 0x0a2d, 0x0a2d, 0x0a2d, 0x0a36, - 0x0a36, 0x0a36, 0x0a46, 0x0a46, 0x0a50, 0x0a50, 0x0a68, 0x0a68, - 0x0a68, 0x0a68, 0x0a68, 0x0a68, 0x0a68, 0x0a68, 0x0a68, 0x0a68, - 0x0a68, 0x0a72, 0x0a72, 0x0a72, 0x0a72, 0x0a72, 0x0a72, 0x0a72, - // Entry 240 - 27F - 0x0a72, 0x0a7b, 0x0a7b, 0x0a7b, 0x0a86, 0x0a86, 0x0a86, 0x0a8d, - 0x0aa6, 0x0aa6, 0x0abc, 0x0ad0, 0x0aed, 0x0aff, 0x0b10, 0x0b22, - 0x0b37, 0x0b55, 0x0b66, 0x0b7c, 0x0b8f, 0x0ba4, 0x0bb1, 0x0bcc, - 0x0be4, 0x0bee, 0x0bff, 0x0c10, 0x0c25, - }, - }, - { // gd - "AfarAbchasaisAvestanaisAfraganaisAkanAmtharaisAragonaisArabaisAsamaisAva" + - "raisAsarbaideànaisBashkirBealaruisisBulgaraisBislamaBambaraBeangaili" + - "sTibeitisBreatnaisBosnaisCatalanaisDeideanaisChamorroCorsaisSeacaisS" + - "làbhais na h-EaglaiseCuimrisDanmhairgisGearmailtisDivehiDzongkhaEweG" + - "reugaisBeurlaEsperantoSpàinntisEastoinisBasgaisFarsaidhFionnlannaisF" + - "ìdisFàrothaisFraingisFrìoslannais SiarachGaeilgeGàidhligGailìsisGua" + - "raníGujaratiGaelgHausaEabhraHindisHiri MotuCròthaisisCrìtheol Haidht" + - "iUngairisAirmeinisInterlinguaInnd-InnsisInterlingueIgboYi SichuanInu" + - "piaqIdoInnis TìlisEadailtisInuktitutSeapanaisDeàbhanaisCairtbheilisK" + - "ikuyuCasachaisKalaallisutCmèarKannadaCoirèanaisCaismirisCùrdaisCòrna" + - "isCìorgasaisLaideannLugsamburgaisGandaLingalaLàthoLiotuainisLuba-Kat" + - "angaLaitbheisMalagasaisMarshallaisMÄoriMasadonaisMalayalamMongolaisM" + - "arathiMalaidhisMaltaisBurmaisNabhruNdebele ThuathachNeapàilisDuitsis" + - "Nynorsk na NirribhidhBokmÃ¥l na NirribhidhNdebele DheasachChichewaOgs" + - "atanaisOromoOriyaOsseticPanjabiPaliPòlainnisPachtuPortagailisCeatsua" + - "RumainsKirundiRomàinisRuisisKinyarwandaSanskritSàrdaisSindhiSàmais T" + - "huathachSangoSinhalaSlòbhacaisSlòbhainisSamothaisShonaSomàilisAlbàin" + - "isSèirbisLeasotach DheasachCànan SundaSuainisKiswahiliTaimilisTelugu" + - "TaidigisTàidhTigrinyaTurcmanaisTongaisTurcaisTsongaTataraisÙigiurais" + - "UcràinisÙrduUsbagaisVendaBhiet-NamaisVolapükWolofXhosaIùdhaisIorubaS" + - "ìnisZuluArabais ThuiniseachAghemAleutaisSeann-BheurlaAramaisMapuche" + - "Arabais AildireachArabais MhorocachArabais ÈipheiteachAsuCainnt-shan" + - "ais na h-AimeireagaAstùraisAsarbaideànais DheasachBaluchìBembaBenaBo" + - "doChigaCherokeeCùrdais SoranîCoptaisTurcais ChriomachCaisiubaisTaita" + - "ZarmaSòrbais ÃŒochdarachDualaMeadhan-DhuitsisJola-FonyiEmbuÈipheitis " + - "ÀrsaidhElamaisMeadhan-BheurlaFilipinisMeadhan-FhraingisSeann-Fhrain" + - "gisFrìoslannais ThuathachFrìoslannais EarachFriùilisGagauzGe’ezCirib" + - "easaisMeadhan-Àrd-GearmailtisSeann-Àrd-GearmailtisGotaisGreugais Àrs" + - "aidhGearmailtis EilbheiseachGusiiCànan Hawai’iHindis FhìditheachSòrb" + - "ais UachdarachBeurla Crìtheolach DiameugaNgombaMachamePeirsis Iùdhac" + - "hArabais IùdhachKabyleKambaMakondeKabuverdianuKoyra ChiiniKalenjinKo" + - "mi-PermyakKonkaniShambalaBafiaLadinoLangiLiogùraisLakhótaLombardaisL" + - "uoLuyiaSìnis an LitreachaisMaasaiMeruMorisyenMeadhan-GhaeilgeMakhuwa" + - "-MeettoMeta’MohawkMundangIomadh cànanNamaKwasioSeann-LochlannaisN’Ko" + - "Leasotais ThuathachNuerNyankoleTurcais OtomanachPalabhaisGearmailtis" + - " PhennsylvaniaSeann-PheirsisPruisisK’iche’Rapa NuiRomboRomanaisRwaSa" + - "chaisAramais ShamaritanachSamburuSanguSisilisAlbaisSenaKoyraboro Sen" + - "niSeann-GhaeilgeTachelhitArabais SeàdachSàmais DheasachSàmais LuleSà" + - "mais InariSàmais SkoltSoninkeComoraisKiswahili na CongoSuraidheac Ch" + - "lasaigeachSuraidheacTesoTetumTokelauNyasa TongaTok PisinTasawaqTamaz" + - "ight Meadhan na h-AtlasCànan neo-aithnichteVaiFlannrais SiarachVunjo" + - "SogaCantonaisTamazight Stannardach MorocoSusbaint nach eil ‘na chàna" + - "nNuadh-Arabais StannardachGearmailtis na h-OstaireÀrd-Ghearmailtis n" + - "a h-EilbheiseBeurla AstràiliaBeurla ChanadaBeurla BhreatainnBeurla n" + - "a h-AimeireagaSpàinntis na h-Aimeireaga LaidinneachSpàinntis Eòrpach" + - "Spàinntis MheagsagachFraingis ChanadaFraingis EilbheiseachFlannraisP" + - "ortagailis BhraisileachPortagailis EòrpachMoldobhaisSìnis Shimplicht" + - "eSìnis Thradaiseanta", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0004, 0x000d, 0x0017, 0x0021, 0x0025, 0x002e, 0x0037, - 0x003e, 0x0045, 0x004c, 0x004c, 0x005b, 0x0062, 0x006d, 0x0076, - 0x007d, 0x0084, 0x008e, 0x0096, 0x009f, 0x00a6, 0x00b0, 0x00ba, - 0x00c2, 0x00c9, 0x00c9, 0x00d0, 0x00e7, 0x00e7, 0x00ee, 0x00f9, - 0x0104, 0x010a, 0x0112, 0x0115, 0x011d, 0x0123, 0x012c, 0x0136, - 0x013f, 0x0146, 0x014e, 0x014e, 0x015a, 0x0160, 0x016a, 0x0172, - 0x0187, 0x018e, 0x0197, 0x01a0, 0x01a8, 0x01b0, 0x01b5, 0x01ba, - 0x01c0, 0x01c6, 0x01cf, 0x01da, 0x01eb, 0x01f3, 0x01fc, 0x01fc, - // Entry 40 - 7F - 0x0207, 0x0212, 0x021d, 0x0221, 0x022b, 0x0232, 0x0235, 0x0241, - 0x024a, 0x0253, 0x025c, 0x0267, 0x0273, 0x0273, 0x0279, 0x0279, - 0x0282, 0x028d, 0x0293, 0x029a, 0x02a5, 0x02a5, 0x02ae, 0x02b6, - 0x02b6, 0x02be, 0x02c9, 0x02d1, 0x02de, 0x02e3, 0x02e3, 0x02ea, - 0x02f0, 0x02fa, 0x0306, 0x030f, 0x0319, 0x0324, 0x032a, 0x0334, - 0x033d, 0x0346, 0x034d, 0x0356, 0x035d, 0x0364, 0x036a, 0x037b, - 0x0385, 0x0385, 0x038c, 0x03a1, 0x03b6, 0x03c6, 0x03c6, 0x03ce, - 0x03d8, 0x03d8, 0x03dd, 0x03e2, 0x03e9, 0x03f0, 0x03f4, 0x03fe, - // Entry 80 - BF - 0x0404, 0x040f, 0x0416, 0x041d, 0x0424, 0x042d, 0x0433, 0x043e, - 0x0446, 0x044e, 0x0454, 0x0465, 0x046a, 0x0471, 0x047c, 0x0487, - 0x0490, 0x0495, 0x049e, 0x04a7, 0x04af, 0x04af, 0x04c1, 0x04cd, - 0x04d4, 0x04dd, 0x04e5, 0x04eb, 0x04f3, 0x04f9, 0x0501, 0x050b, - 0x050b, 0x0512, 0x0519, 0x051f, 0x0527, 0x0527, 0x0531, 0x053a, - 0x053f, 0x0547, 0x054c, 0x0558, 0x0560, 0x0560, 0x0565, 0x056a, - 0x0572, 0x0578, 0x0578, 0x057e, 0x0582, 0x0582, 0x0582, 0x0582, - 0x0582, 0x0595, 0x0595, 0x059a, 0x059a, 0x059a, 0x059a, 0x05a2, - // Entry C0 - FF - 0x05a2, 0x05a2, 0x05af, 0x05af, 0x05b6, 0x05bd, 0x05bd, 0x05bd, - 0x05cf, 0x05cf, 0x05e0, 0x05f4, 0x05f7, 0x0615, 0x061e, 0x061e, - 0x061e, 0x0636, 0x063e, 0x063e, 0x063e, 0x063e, 0x063e, 0x063e, - 0x063e, 0x063e, 0x0643, 0x0643, 0x0647, 0x0647, 0x0647, 0x0647, - 0x0647, 0x0647, 0x0647, 0x0647, 0x0647, 0x0647, 0x0647, 0x0647, - 0x0647, 0x064b, 0x064b, 0x064b, 0x064b, 0x064b, 0x064b, 0x064b, - 0x064b, 0x064b, 0x064b, 0x064b, 0x064b, 0x0650, 0x0650, 0x0650, - 0x0650, 0x0650, 0x0650, 0x0650, 0x0650, 0x0658, 0x0658, 0x0668, - // Entry 100 - 13F - 0x066f, 0x066f, 0x0680, 0x068a, 0x068a, 0x068a, 0x068f, 0x068f, - 0x068f, 0x068f, 0x068f, 0x0694, 0x0694, 0x06a8, 0x06a8, 0x06ad, - 0x06bd, 0x06c7, 0x06c7, 0x06c7, 0x06cb, 0x06cb, 0x06cb, 0x06de, - 0x06de, 0x06e5, 0x06f4, 0x06f4, 0x06f4, 0x06f4, 0x06f4, 0x06fd, - 0x06fd, 0x06fd, 0x06fd, 0x070e, 0x071d, 0x071d, 0x0734, 0x0748, - 0x0751, 0x0751, 0x0757, 0x0757, 0x0757, 0x0757, 0x0757, 0x075e, - 0x0769, 0x0769, 0x0781, 0x0797, 0x0797, 0x0797, 0x0797, 0x079d, - 0x079d, 0x07ae, 0x07c6, 0x07c6, 0x07c6, 0x07cb, 0x07cb, 0x07cb, - // Entry 140 - 17F - 0x07cb, 0x07db, 0x07ee, 0x07ee, 0x07ee, 0x07ee, 0x0801, 0x0801, - 0x0801, 0x0801, 0x0801, 0x0801, 0x0801, 0x0801, 0x081d, 0x081d, - 0x0823, 0x082a, 0x083a, 0x084a, 0x084a, 0x084a, 0x0850, 0x0850, - 0x0850, 0x0855, 0x0855, 0x0855, 0x0855, 0x0855, 0x085c, 0x0868, - 0x0868, 0x0868, 0x0868, 0x0868, 0x0868, 0x0874, 0x0874, 0x0874, - 0x0874, 0x087c, 0x087c, 0x0888, 0x088f, 0x088f, 0x088f, 0x088f, - 0x088f, 0x088f, 0x088f, 0x088f, 0x0897, 0x089c, 0x089c, 0x089c, - 0x089c, 0x08a2, 0x08a7, 0x08a7, 0x08a7, 0x08a7, 0x08a7, 0x08b1, - // Entry 180 - 1BF - 0x08b1, 0x08b9, 0x08c3, 0x08c3, 0x08c3, 0x08c3, 0x08c3, 0x08c3, - 0x08c3, 0x08c6, 0x08c6, 0x08cb, 0x08e0, 0x08e0, 0x08e0, 0x08e0, - 0x08e0, 0x08e0, 0x08e0, 0x08e0, 0x08e6, 0x08e6, 0x08e6, 0x08e6, - 0x08e6, 0x08ea, 0x08f2, 0x0902, 0x0910, 0x0917, 0x0917, 0x0917, - 0x0917, 0x0917, 0x091d, 0x091d, 0x091d, 0x0924, 0x0931, 0x0931, - 0x0931, 0x0931, 0x0931, 0x0931, 0x0931, 0x0931, 0x0931, 0x0931, - 0x0935, 0x0935, 0x0935, 0x0935, 0x0935, 0x0935, 0x093b, 0x093b, - 0x093b, 0x094c, 0x094c, 0x0952, 0x0965, 0x0969, 0x0969, 0x0969, - // Entry 1C0 - 1FF - 0x0971, 0x0971, 0x0971, 0x0971, 0x0982, 0x0982, 0x0982, 0x0982, - 0x0982, 0x098b, 0x098b, 0x09a4, 0x09a4, 0x09b2, 0x09b2, 0x09b2, - 0x09b2, 0x09b2, 0x09b2, 0x09b9, 0x09b9, 0x09c4, 0x09c4, 0x09c4, - 0x09cc, 0x09cc, 0x09cc, 0x09cc, 0x09d1, 0x09d9, 0x09d9, 0x09d9, - 0x09d9, 0x09d9, 0x09dc, 0x09dc, 0x09e3, 0x09f8, 0x09ff, 0x09ff, - 0x09ff, 0x09ff, 0x09ff, 0x0a04, 0x0a0b, 0x0a11, 0x0a11, 0x0a11, - 0x0a15, 0x0a15, 0x0a15, 0x0a24, 0x0a32, 0x0a32, 0x0a3b, 0x0a3b, - 0x0a4b, 0x0a4b, 0x0a4b, 0x0a4b, 0x0a5b, 0x0a67, 0x0a74, 0x0a81, - // Entry 200 - 23F - 0x0a88, 0x0a88, 0x0a88, 0x0a88, 0x0a88, 0x0a88, 0x0a88, 0x0a88, - 0x0a88, 0x0a90, 0x0aa2, 0x0ab9, 0x0ac3, 0x0ac3, 0x0ac3, 0x0ac3, - 0x0ac7, 0x0ac7, 0x0acc, 0x0acc, 0x0acc, 0x0ad3, 0x0ad3, 0x0ad3, - 0x0ad3, 0x0ad3, 0x0ad3, 0x0ade, 0x0ae7, 0x0ae7, 0x0ae7, 0x0ae7, - 0x0ae7, 0x0ae7, 0x0ae7, 0x0ae7, 0x0aee, 0x0aee, 0x0b0a, 0x0b0a, - 0x0b0a, 0x0b0a, 0x0b1f, 0x0b22, 0x0b22, 0x0b22, 0x0b33, 0x0b33, - 0x0b33, 0x0b33, 0x0b38, 0x0b38, 0x0b38, 0x0b38, 0x0b38, 0x0b38, - 0x0b38, 0x0b38, 0x0b38, 0x0b3c, 0x0b3c, 0x0b3c, 0x0b3c, 0x0b3c, - // Entry 240 - 27F - 0x0b3c, 0x0b45, 0x0b45, 0x0b45, 0x0b45, 0x0b45, 0x0b61, 0x0b61, - 0x0b80, 0x0b80, 0x0b99, 0x0bb1, 0x0bd1, 0x0be2, 0x0bf0, 0x0c01, - 0x0c17, 0x0c3d, 0x0c50, 0x0c66, 0x0c76, 0x0c8b, 0x0c94, 0x0cac, - 0x0cc0, 0x0cca, 0x0cca, 0x0cdc, 0x0cf0, - }, - }, - { // gl - "abkhazoafrikaansakánamáricoaragonésárabeassamésaimaráacerbaixanobaskirbi" + - "elorrusobúlgarobambarabengalítibetanobretónbosniocataláncorsochecoes" + - "lavo eclesiásticogalésdinamarquésalemándivehidzongkhaewégregoinglése" + - "sperantoespañolestonianoéuscaropersafinésfixianofaroésfrancésfrisóni" + - "rlandésgaélico escocésgalegoguaraníguxaratianomanxhausahebreohindicr" + - "oatahaitianohúngaroarmeniointerlinguaindonesioiboyi sichuanésislandé" + - "sitalianoinuitxaponésxavanésxeorxianokongokikuyucasacogroenlandéscam" + - "bodianokannadacoreanocachemirkurdocórnicoquirguizlatínluxemburguésga" + - "ndalingalalaotianolituanoluba-katangaletónmalgaxemaorímacedoniomalab" + - "armongolmarathimalaiomaltésbirmanondebele do nortenepalíholandésnoru" + - "egués nynorsknoruegués bokmalchewaoccitanooromooriyaosetiopunjabipol" + - "acopaxtúnportuguésquechuaromancherundiromanésrusoruandéssánscritosin" + - "dhisami do nortesangocingaléseslovacoeslovenosamoanoshonasomalíalban" + - "ésserbioswatisesotosondanéssuecoswahilitamiltelugutaxicotailandésti" + - "griñaturcomanotswanatonganésturcoxitsongatártarotahitianouigurucraín" + - "ourdúuzbecovendavietnamitawólofxhosayiddishiorubachinészulúacoliaghe" + - "marameomapucheasuasturianobembabenabodokigacheroquicurdo soranítaita" + - "zarmabaixo sorabiodualajola-fonyiembuibibioexipcio antigofilipinogag" + - "agauzgrego antigoalemán suízogusiihawaianoalto sorabiongombamachamek" + - "abilekambamakondecaboverdianokoyra chiinikalenjinkomi permiokonkanis" + - "hambalabafialangilakotaloziluba-lulualuoluyiamasaimerucrioulo maurit" + - "anomakhuwa-meettometa’mohawkmundangvarias linguasnamakwasion’kosesot" + - "ho sa leboanuernyankolequichéromborwasamburusangusenakoyraboro senni" + - "tachelhitsaami do sursaami lulesaami inarisaami skoltsuahili congolé" + - "stesotetúnklingontok pisintumbukatasawaqtamazight marroquí centralli" + - "ngua descoñecida ou non válidavaivunjosogatamazight de Marrocos está" + - "ndarsen contido lingüísticoárabe estándar modernoalemán de austriaal" + - "to alemán suízoinglés australianoinglés canadianoinglés británicoing" + - "lés dos Estados Unidosespañol latinoamericanocastelánespañol de Méxi" + - "cofrancés canadianofrancés suízoflamencoportugués brasileiroportugué" + - "s europeoserbocroatachinés simplificadochinés tradicional", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x0007, 0x0010, 0x0015, 0x001d, 0x0026, - 0x002c, 0x0034, 0x0034, 0x003b, 0x0046, 0x004c, 0x0056, 0x005e, - 0x005e, 0x0065, 0x006d, 0x0075, 0x007c, 0x0082, 0x008a, 0x008a, - 0x008a, 0x008f, 0x008f, 0x0094, 0x00a8, 0x00a8, 0x00ae, 0x00ba, - 0x00c1, 0x00c7, 0x00cf, 0x00d3, 0x00d8, 0x00df, 0x00e8, 0x00f0, - 0x00f9, 0x0101, 0x0106, 0x0106, 0x010c, 0x0113, 0x011a, 0x0122, - 0x0129, 0x0132, 0x0143, 0x0149, 0x0151, 0x015c, 0x0160, 0x0165, - 0x016b, 0x0170, 0x0170, 0x0176, 0x017e, 0x0186, 0x018d, 0x018d, - // Entry 40 - 7F - 0x0198, 0x01a1, 0x01a1, 0x01a4, 0x01b1, 0x01b1, 0x01b1, 0x01ba, - 0x01c2, 0x01c7, 0x01cf, 0x01d7, 0x01e0, 0x01e5, 0x01eb, 0x01eb, - 0x01f1, 0x01fd, 0x0207, 0x020e, 0x0215, 0x0215, 0x021d, 0x0222, - 0x0222, 0x022a, 0x0232, 0x0238, 0x0245, 0x024a, 0x024a, 0x0251, - 0x0259, 0x0260, 0x026c, 0x0272, 0x0279, 0x0279, 0x027f, 0x0288, - 0x028f, 0x0295, 0x029c, 0x02a2, 0x02a9, 0x02b0, 0x02b0, 0x02c0, - 0x02c7, 0x02c7, 0x02d0, 0x02e2, 0x02f3, 0x02f3, 0x02f3, 0x02f8, - 0x0300, 0x0300, 0x0305, 0x030a, 0x0310, 0x0317, 0x0317, 0x031d, - // Entry 80 - BF - 0x0324, 0x032e, 0x0335, 0x033d, 0x0342, 0x034a, 0x034e, 0x0356, - 0x0360, 0x0360, 0x0366, 0x0373, 0x0378, 0x0381, 0x0389, 0x0391, - 0x0398, 0x039d, 0x03a4, 0x03ac, 0x03b2, 0x03b7, 0x03bd, 0x03c6, - 0x03cb, 0x03d2, 0x03d7, 0x03dd, 0x03e3, 0x03ed, 0x03f5, 0x03fe, - 0x0404, 0x040d, 0x0412, 0x041a, 0x0422, 0x042b, 0x0430, 0x0438, - 0x043d, 0x0443, 0x0448, 0x0452, 0x0452, 0x0452, 0x0458, 0x045d, - 0x0464, 0x046a, 0x046a, 0x0471, 0x0476, 0x0476, 0x047b, 0x047b, - 0x047b, 0x047b, 0x047b, 0x0480, 0x0480, 0x0480, 0x0480, 0x0480, - // Entry C0 - FF - 0x0480, 0x0480, 0x0480, 0x0480, 0x0486, 0x048d, 0x048d, 0x048d, - 0x048d, 0x048d, 0x048d, 0x048d, 0x0490, 0x0490, 0x0499, 0x0499, - 0x0499, 0x0499, 0x0499, 0x0499, 0x0499, 0x0499, 0x0499, 0x0499, - 0x0499, 0x0499, 0x049e, 0x049e, 0x04a2, 0x04a2, 0x04a2, 0x04a2, - 0x04a2, 0x04a2, 0x04a2, 0x04a2, 0x04a2, 0x04a2, 0x04a2, 0x04a2, - 0x04a2, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, - 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04aa, 0x04aa, 0x04aa, - 0x04aa, 0x04aa, 0x04aa, 0x04aa, 0x04aa, 0x04b2, 0x04b2, 0x04bf, - // Entry 100 - 13F - 0x04bf, 0x04bf, 0x04bf, 0x04bf, 0x04bf, 0x04bf, 0x04c4, 0x04c4, - 0x04c4, 0x04c4, 0x04c4, 0x04c9, 0x04c9, 0x04d6, 0x04d6, 0x04db, - 0x04db, 0x04e5, 0x04e5, 0x04e5, 0x04e9, 0x04ef, 0x04ef, 0x04fd, - 0x04fd, 0x04fd, 0x04fd, 0x04fd, 0x04fd, 0x04fd, 0x04fd, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0507, 0x050d, 0x050d, 0x050d, 0x050d, 0x050d, 0x050d, - 0x050d, 0x050d, 0x050d, 0x050d, 0x050d, 0x050d, 0x050d, 0x050d, - 0x050d, 0x0519, 0x0527, 0x0527, 0x0527, 0x052c, 0x052c, 0x052c, - // Entry 140 - 17F - 0x052c, 0x0534, 0x0534, 0x0534, 0x0534, 0x0534, 0x0540, 0x0540, - 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, - 0x0546, 0x054d, 0x054d, 0x054d, 0x054d, 0x054d, 0x0553, 0x0553, - 0x0553, 0x0558, 0x0558, 0x0558, 0x0558, 0x0558, 0x055f, 0x056b, - 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x0577, 0x0577, 0x0577, - 0x0577, 0x057f, 0x057f, 0x058a, 0x0591, 0x0591, 0x0591, 0x0591, - 0x0591, 0x0591, 0x0591, 0x0591, 0x0599, 0x059e, 0x059e, 0x059e, - 0x059e, 0x059e, 0x05a3, 0x05a3, 0x05a3, 0x05a3, 0x05a3, 0x05a3, - // Entry 180 - 1BF - 0x05a3, 0x05a9, 0x05a9, 0x05a9, 0x05ad, 0x05ad, 0x05b7, 0x05b7, - 0x05b7, 0x05ba, 0x05ba, 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05bf, - 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05c4, 0x05c4, 0x05c4, 0x05c4, - 0x05c4, 0x05c8, 0x05d9, 0x05d9, 0x05e7, 0x05ee, 0x05ee, 0x05ee, - 0x05ee, 0x05ee, 0x05f4, 0x05f4, 0x05f4, 0x05fb, 0x0609, 0x0609, - 0x0609, 0x0609, 0x0609, 0x0609, 0x0609, 0x0609, 0x0609, 0x0609, - 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x0613, 0x0613, - 0x0613, 0x0613, 0x0613, 0x0619, 0x0629, 0x062d, 0x062d, 0x062d, - // Entry 1C0 - 1FF - 0x0635, 0x0635, 0x0635, 0x0635, 0x0635, 0x0635, 0x0635, 0x0635, - 0x0635, 0x0635, 0x0635, 0x0635, 0x0635, 0x0635, 0x0635, 0x0635, - 0x0635, 0x0635, 0x0635, 0x0635, 0x0635, 0x063c, 0x063c, 0x063c, - 0x063c, 0x063c, 0x063c, 0x063c, 0x0641, 0x0641, 0x0641, 0x0641, - 0x0641, 0x0641, 0x0644, 0x0644, 0x0644, 0x0644, 0x064b, 0x064b, - 0x064b, 0x064b, 0x064b, 0x0650, 0x0650, 0x0650, 0x0650, 0x0650, - 0x0654, 0x0654, 0x0654, 0x0663, 0x0663, 0x0663, 0x066c, 0x066c, - 0x066c, 0x066c, 0x066c, 0x066c, 0x0678, 0x0682, 0x068d, 0x0698, - // Entry 200 - 23F - 0x0698, 0x0698, 0x0698, 0x0698, 0x0698, 0x0698, 0x0698, 0x0698, - 0x0698, 0x0698, 0x06a9, 0x06a9, 0x06a9, 0x06a9, 0x06a9, 0x06a9, - 0x06ad, 0x06ad, 0x06b3, 0x06b3, 0x06b3, 0x06b3, 0x06b3, 0x06ba, - 0x06ba, 0x06ba, 0x06ba, 0x06ba, 0x06c3, 0x06c3, 0x06c3, 0x06c3, - 0x06c3, 0x06c3, 0x06ca, 0x06ca, 0x06d1, 0x06d1, 0x06ec, 0x06ec, - 0x06ec, 0x06ec, 0x070e, 0x0711, 0x0711, 0x0711, 0x0711, 0x0711, - 0x0711, 0x0711, 0x0716, 0x0716, 0x0716, 0x0716, 0x0716, 0x0716, - 0x0716, 0x0716, 0x0716, 0x071a, 0x071a, 0x071a, 0x071a, 0x071a, - // Entry 240 - 27F - 0x071a, 0x071a, 0x071a, 0x071a, 0x071a, 0x071a, 0x0739, 0x0739, - 0x0752, 0x0752, 0x076a, 0x077c, 0x078f, 0x07a2, 0x07b3, 0x07c5, - 0x07df, 0x07f7, 0x0800, 0x0813, 0x0825, 0x0834, 0x083c, 0x0851, - 0x0863, 0x0863, 0x086e, 0x0882, 0x0895, - }, - }, - { // gsw - "AfarAbchasischAvestischAfrikaansAkanAmharischAragonesischArabischAssames" + - "ischAwarischAymaraAserbaidschanischBaschkirischWiissrussischBulgaari" + - "schBislamaBambaraBengalischTibeetischBrötoonischBosnischKatalaanisch" + - "TschetscheenischChamorroKorsischCreeTschechischChileslawischTschuwas" + - "chischWalisischTänischTüütschMalediivischDschongkhaEweGriechischÄngl" + - "ischEschperantoSchpanischEestnischBaskischPersischFulFinnischFidschi" + - "anischFäröischFranzösischFriesischIirischSchottisch-GäälischGalizisc" + - "hGuaraniGujaratiManx-GäälischHaussaHebräischHindiHiri-MotuKroazischH" + - "aitischUngarischArmenischHereroInterlinguaIndonesischInterlingueIgbo" + - "Sezuanischs YiInupiakIdoIisländischItaliänischInukitutJapanischJavan" + - "ischGeorgischKongolesischKikuyu-SchpraachKwanyamaKasachischGröönländ" + - "ischKambodschanischKannadaKoreaanischKanuri-SchpraachKaschmirischKur" + - "dischKomi-SchpraachKornischKirgiisischLatiinLuxemburgischGanda-Schpr" + - "aachLimburgischLingalaLaozischLitauischLubaLettischMadagassischMarsc" + - "hallesischMaoriMazedonischMalayalamMongolischMarathiMalaiischMaltesi" + - "schBirmanischNauruischNord-Ndebele-SchpraachNepalesischNdongaNiderlä" + - "ndischNorwegisch NynorskNorwegisch BokmÃ¥lSüüd-Ndebele-SchpraachNavaj" + - "o-SchpraachChewa-SchpraachOkzitanischOjibwa-SchpraachOromoOrijaOssez" + - "ischPandschabischPaliPolnischPaschtuPortugiisischQuechuaRätoromanisc" + - "hRundi-SchpraachRumänischRussischRuandischSanschkritSardischSindhiNo" + - "rd-SamischSangoSinghalesischSlowakischSlowenischSamoanischSchhonaSom" + - "aliAlbanischSerbischSwaziSüüd-Sotho-SchpraachSundanesischSchwedischS" + - "uaheliTamilischTeluguTadschikischThailändischTigrinjaTurkmenischTswa" + - "na-SchpraachTongaischTürkischTsongaTatarischTahitischUigurischUkrain" + - "ischUrduUsbekischVenda-SchpraachVietnamesischVolapükWallonischWolofX" + - "hosaJiddischYorubaZhuangChineesischZuluAcehAcholiAdangmeAdygaiAfrihi" + - "liAinuAkkadischAleutischSüüd-AltaischAltänglischAngikaAramääischArau" + - "kanischArapahoArawakAschturianischAwadhiBelutschischBalinesischBasaa" + - "BedauyeBembaBhodschpuriBikolischBiniBlackfoot-SchpraachBraj-BhakhaBu" + - "rjatischBugineesischBlinCaddoKariibischAtsamCebuanoTschibtschaTschag" + - "ataischTrukesischTscheremissischChinookChoctawChipewyanCherokeeCheye" + - "nneKoptischKrimtatarischKaschubischTakotaTargiinischDelaware-Schpraa" + - "chSlaveyTogribTinkaTogriNidersorbischTualaMittelniderländischTiulaEf" + - "ikischAltägyptischEkajukElamischMittelänglischEwondoPangwe-Schpraach" + - "FilipinoFonMittelfranzösischAltfranzösischNordfriesischOschtfriesisc" + - "hFriulischGaGayoGbayaGeezGilbertesischMittelhochtüütschAlthochtüütsc" + - "hGondiMongondouGotischGreboAltgriechischSchwiizertüütschKutchinischH" + - "aidaHawaiianischHiligaynonischHethitischMiaoObersorbischHupaIbanisch" + - "IlokanoInguschischLojbanischJüüdisch-PersischJüüdisch-ArabischKaraka" + - "lpakischKabylischKachin-SchpraachJjuKambaKawiKabardinischTyapKoroKha" + - "sischSakischKimbundu-SchpraachKonkaniKosraeanischKpelle-SchpraachKar" + - "atschaiisch-BalkarischKarelischOraon-SchpraachKumükischKutenai-Schpr" + - "aachLadinoLahndanischLambanischLesgischMongoRotse-SchpraachLuba-Lulu" + - "aLuiseno-SchpraachLunda-SchpraachLuo-SchpraachLushai-SchpraachMadure" + - "sischKhottaMaithiliMakassarischManding-SchpraachMassai-SchpraachMoks" + - "chamordwinischMandaresischMende-SchpraachMittelirischMicmac-Schpraac" + - "hMinangkabau-SchpraachMandschurischMeithei-SchpraachMohawk-Schpraach" + - "Mossi-SchpraachMehrschpraachigMuskogee-SchpraachMirandesischMarwaris" + - "chErzyaNeapolitanischNidertüütschNewarischNias-SchpraachNiue-Schpraa" + - "chNogaischAltnordischN’KoNord-Sotho-SchpraachAlt-NewariNyamwezi-Schp" + - "raachNyankoleNyoroNzimaOsage-SchpraachOsmanischPangasinanischMittelp" + - "ersischPampanggan-SchpraachPapiamentoPalauAltpersischPhönikischPonap" + - "eanischAltprovenzalischRajasthaniOschterinsel-SchpraachRarotonganisc" + - "hZigüünerschpraachAromunischSandawe-SchpraachJakutischSamaritanischS" + - "asakSantaliSizilianischSchottischSelkupischAltirischSchan-SchpraachS" + - "idamoSüüd-SamischLule-SamischInari-SamischSkolt-SamischSoninke-Schpr" + - "aachSogdischSrananischSerer-SchpraachSukuma-SchpraachSusuSumerischAl" + - "tsyrischSyrischTemneTereno-SchpraachTetum-SchpraachTigreTiv-Schpraac" + - "hTokelauanischKlingonischTlingit-SchpraachTamaseqTsonga-SchpraachNeu" + - "melanesischTsimshian-SchpraachTumbuka-SchpraachElliceanischTuwinisch" + - "UdmurtischUgaritischMbundu-SchpraachRootVai-SchpraachWotischWalamo-S" + - "chpraachWarayWasho-SchpraachKalmückischYao-SchpraachYapesischZapotek" + - "ischBliss-SymboolZenagaZuni-SchpraachKän schpraachliche InhaltZazaÖs" + - "chtriichischs TüütschSchwiizer HochtüütschAuschtralischs ÄnglischKan" + - "adischs ÄnglischBritischs ÄnglischAmerikanischs ÄnglischLatiinamerik" + - "anischs SchpanischIbeerischs SchpanischKanadischs FranzösischSchwiiz" + - "er FranzösischFläämischBrasilianischs PortugiisischIberischs Portugi" + - "isischMoldawischSerbo-KroatischVeräifachts ChineesischTradizionells " + - "Chineesisch", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0004, 0x000e, 0x0017, 0x0020, 0x0024, 0x002d, 0x0039, - 0x0041, 0x004c, 0x0054, 0x005a, 0x006b, 0x0077, 0x0084, 0x008f, - 0x0096, 0x009d, 0x00a7, 0x00b1, 0x00bd, 0x00c5, 0x00d1, 0x00e1, - 0x00e9, 0x00f1, 0x00f5, 0x0100, 0x010d, 0x011b, 0x0124, 0x012c, - 0x0135, 0x0141, 0x014b, 0x014e, 0x0158, 0x0161, 0x016c, 0x0176, - 0x017f, 0x0187, 0x018f, 0x0192, 0x019a, 0x01a7, 0x01b1, 0x01bd, - 0x01c6, 0x01cd, 0x01e2, 0x01eb, 0x01f2, 0x01fa, 0x0209, 0x020f, - 0x0219, 0x021e, 0x0227, 0x0230, 0x0238, 0x0241, 0x024a, 0x0250, - // Entry 40 - 7F - 0x025b, 0x0266, 0x0271, 0x0275, 0x0283, 0x028a, 0x028d, 0x0299, - 0x02a5, 0x02ad, 0x02b6, 0x02bf, 0x02c8, 0x02d4, 0x02e4, 0x02ec, - 0x02f6, 0x0306, 0x0315, 0x031c, 0x0327, 0x0337, 0x0343, 0x034b, - 0x0359, 0x0361, 0x036c, 0x0372, 0x037f, 0x038e, 0x0399, 0x03a0, - 0x03a8, 0x03b1, 0x03b5, 0x03bd, 0x03c9, 0x03d8, 0x03dd, 0x03e8, - 0x03f1, 0x03fb, 0x0402, 0x040b, 0x0415, 0x041f, 0x0428, 0x043e, - 0x0449, 0x044f, 0x045d, 0x046f, 0x0481, 0x0499, 0x04a9, 0x04b8, - 0x04c3, 0x04d3, 0x04d8, 0x04dd, 0x04e6, 0x04f3, 0x04f7, 0x04ff, - // Entry 80 - BF - 0x0506, 0x0513, 0x051a, 0x0528, 0x0537, 0x0541, 0x0549, 0x0552, - 0x055c, 0x0564, 0x056a, 0x0576, 0x057b, 0x0588, 0x0592, 0x059c, - 0x05a6, 0x05ad, 0x05b3, 0x05bc, 0x05c4, 0x05c9, 0x05df, 0x05eb, - 0x05f5, 0x05fc, 0x0605, 0x060b, 0x0617, 0x0624, 0x062c, 0x0637, - 0x0647, 0x0650, 0x0659, 0x065f, 0x0668, 0x0671, 0x067a, 0x0684, - 0x0688, 0x0691, 0x06a0, 0x06ad, 0x06b5, 0x06bf, 0x06c4, 0x06c9, - 0x06d1, 0x06d7, 0x06dd, 0x06e8, 0x06ec, 0x06f0, 0x06f6, 0x06fd, - 0x0703, 0x0703, 0x070b, 0x070b, 0x070f, 0x0718, 0x0718, 0x0721, - // Entry C0 - FF - 0x0721, 0x0730, 0x073c, 0x0742, 0x074e, 0x0759, 0x0759, 0x0760, - 0x0760, 0x0766, 0x0766, 0x0766, 0x0766, 0x0766, 0x0774, 0x0774, - 0x077a, 0x077a, 0x0786, 0x0791, 0x0791, 0x0796, 0x0796, 0x0796, - 0x0796, 0x079d, 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07ad, - 0x07b6, 0x07ba, 0x07ba, 0x07ba, 0x07cd, 0x07cd, 0x07cd, 0x07d8, - 0x07d8, 0x07d8, 0x07d8, 0x07e2, 0x07ee, 0x07ee, 0x07f2, 0x07f2, - 0x07f7, 0x0801, 0x0801, 0x0806, 0x080d, 0x080d, 0x0818, 0x0825, - 0x082f, 0x083e, 0x0845, 0x084c, 0x0855, 0x085d, 0x0865, 0x0865, - // Entry 100 - 13F - 0x086d, 0x086d, 0x087a, 0x0885, 0x088b, 0x0896, 0x0896, 0x08a8, - 0x08ae, 0x08b4, 0x08b9, 0x08b9, 0x08be, 0x08cb, 0x08cb, 0x08d0, - 0x08e4, 0x08e4, 0x08e9, 0x08e9, 0x08e9, 0x08f1, 0x08f1, 0x08fe, - 0x0904, 0x090c, 0x091b, 0x091b, 0x0921, 0x0921, 0x0931, 0x0939, - 0x0939, 0x093c, 0x093c, 0x094e, 0x095d, 0x095d, 0x096a, 0x0978, - 0x0981, 0x0983, 0x0983, 0x0983, 0x0987, 0x098c, 0x098c, 0x0990, - 0x099d, 0x099d, 0x09b0, 0x09c0, 0x09c0, 0x09c5, 0x09ce, 0x09d5, - 0x09da, 0x09e7, 0x09f9, 0x09f9, 0x09f9, 0x09f9, 0x0a04, 0x0a09, - // Entry 140 - 17F - 0x0a09, 0x0a15, 0x0a15, 0x0a23, 0x0a2d, 0x0a31, 0x0a3d, 0x0a3d, - 0x0a41, 0x0a49, 0x0a49, 0x0a50, 0x0a5b, 0x0a5b, 0x0a5b, 0x0a65, - 0x0a65, 0x0a65, 0x0a78, 0x0a8b, 0x0a8b, 0x0a99, 0x0aa2, 0x0ab2, - 0x0ab5, 0x0aba, 0x0abe, 0x0aca, 0x0aca, 0x0ace, 0x0ace, 0x0ace, - 0x0ace, 0x0ad2, 0x0ad2, 0x0ada, 0x0ae1, 0x0ae1, 0x0ae1, 0x0ae1, - 0x0ae1, 0x0ae1, 0x0af3, 0x0af3, 0x0afa, 0x0b06, 0x0b16, 0x0b2f, - 0x0b2f, 0x0b2f, 0x0b38, 0x0b47, 0x0b47, 0x0b47, 0x0b47, 0x0b51, - 0x0b62, 0x0b68, 0x0b68, 0x0b73, 0x0b7d, 0x0b85, 0x0b85, 0x0b85, - // Entry 180 - 1BF - 0x0b85, 0x0b85, 0x0b85, 0x0b8a, 0x0b99, 0x0b99, 0x0ba3, 0x0bb4, - 0x0bc3, 0x0bd0, 0x0be0, 0x0be0, 0x0be0, 0x0be0, 0x0beb, 0x0beb, - 0x0bf1, 0x0bf9, 0x0c05, 0x0c16, 0x0c26, 0x0c26, 0x0c38, 0x0c44, - 0x0c53, 0x0c53, 0x0c53, 0x0c5f, 0x0c5f, 0x0c5f, 0x0c6f, 0x0c84, - 0x0c91, 0x0ca2, 0x0cb2, 0x0cc1, 0x0cc1, 0x0cc1, 0x0cd0, 0x0ce2, - 0x0cee, 0x0cf8, 0x0cf8, 0x0cf8, 0x0cfd, 0x0cfd, 0x0cfd, 0x0d0b, - 0x0d0b, 0x0d19, 0x0d22, 0x0d30, 0x0d3e, 0x0d3e, 0x0d3e, 0x0d3e, - 0x0d46, 0x0d51, 0x0d51, 0x0d57, 0x0d6b, 0x0d6b, 0x0d75, 0x0d87, - // Entry 1C0 - 1FF - 0x0d8f, 0x0d94, 0x0d99, 0x0da8, 0x0db1, 0x0dbf, 0x0dcd, 0x0de1, - 0x0deb, 0x0df0, 0x0df0, 0x0df0, 0x0df0, 0x0dfb, 0x0dfb, 0x0e06, - 0x0e06, 0x0e06, 0x0e12, 0x0e12, 0x0e22, 0x0e22, 0x0e22, 0x0e2c, - 0x0e42, 0x0e50, 0x0e50, 0x0e50, 0x0e50, 0x0e63, 0x0e63, 0x0e63, - 0x0e63, 0x0e6d, 0x0e6d, 0x0e7e, 0x0e87, 0x0e94, 0x0e94, 0x0e99, - 0x0ea0, 0x0ea0, 0x0ea0, 0x0ea0, 0x0eac, 0x0eb6, 0x0eb6, 0x0eb6, - 0x0eb6, 0x0eb6, 0x0ec0, 0x0ec0, 0x0ec9, 0x0ec9, 0x0ec9, 0x0ed8, - 0x0ed8, 0x0ede, 0x0ede, 0x0ede, 0x0eec, 0x0ef8, 0x0f05, 0x0f12, - // Entry 200 - 23F - 0x0f23, 0x0f2b, 0x0f35, 0x0f44, 0x0f44, 0x0f44, 0x0f54, 0x0f58, - 0x0f61, 0x0f61, 0x0f61, 0x0f6b, 0x0f72, 0x0f72, 0x0f72, 0x0f77, - 0x0f77, 0x0f87, 0x0f96, 0x0f9b, 0x0fa8, 0x0fb5, 0x0fb5, 0x0fc0, - 0x0fd1, 0x0fd1, 0x0fd8, 0x0fe8, 0x0ff6, 0x0ff6, 0x0ff6, 0x0ff6, - 0x1009, 0x1009, 0x101a, 0x1026, 0x1026, 0x102f, 0x102f, 0x1039, - 0x1043, 0x1053, 0x1057, 0x1064, 0x1064, 0x1064, 0x1064, 0x1064, - 0x106b, 0x106b, 0x106b, 0x106b, 0x107b, 0x1080, 0x108f, 0x108f, - 0x108f, 0x109b, 0x109b, 0x109b, 0x10a8, 0x10b1, 0x10b1, 0x10b1, - // Entry 240 - 27F - 0x10b1, 0x10b1, 0x10bc, 0x10c9, 0x10c9, 0x10cf, 0x10cf, 0x10dd, - 0x10f7, 0x10fb, 0x10fb, 0x1115, 0x112c, 0x1144, 0x1158, 0x116b, - 0x1182, 0x11a0, 0x11b5, 0x11b5, 0x11cc, 0x11e2, 0x11ed, 0x1209, - 0x1220, 0x122a, 0x1239, 0x1251, 0x126a, - }, - }, - { // gu - guLangStr, - guLangIdx, - }, - { // guz - "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + - "ikiKingerezaKihispaniaKiajemiKifaransaKihausaKihindiKihungariKiindon" + - "esiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaK" + - "inepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKi" + - "somaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyo" + - "rubaKichinaKizuluEkegusii", - []uint16{ // 318 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, - 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, - 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0054, 0x0054, 0x005e, - 0x005e, 0x005e, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006e, - 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0075, - 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, - // Entry 40 - 7F - 0x0085, 0x0090, 0x0090, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, - 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, - 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, - 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, - // Entry 80 - BF - 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, - 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, - 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, - 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0132, 0x0132, 0x0132, - 0x0132, 0x0132, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x0143, - 0x0149, 0x0149, 0x0149, 0x0154, 0x0154, 0x0154, 0x0154, 0x0154, - 0x0154, 0x015c, 0x015c, 0x0163, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry C0 - FF - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 100 - 13F - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0171, - }, - }, - { // gv - "Gaelg", - []uint16{ // 55 elements - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, - }, - }, - { // ha - "AkanAmharikLarabciBelarusanciBulgaranciBengaliHarshen CakJamusanciGirkan" + - "ciTuranciIspaniyanciParisanciFaransanciHausaHarshen HindiHarshen Hun" + - "gariHarshen IndunusiyaInyamuranciItaliyanciJapananciJabananciHarshen" + - " KimarHarshen KoreyaHarshen MalaiBurmanciNepaliHolanciPunjabiHarshen" + - " PolanHarshen PortugalRomaniyanciRashanciKiniyaruwandaSomaliHarshen " + - "SuwedanTamilThaiHarshen TurkiyyaHarshen YukurenHarshen UrduHarshen B" + - "iyetinamYarbanciHarshen SinHarshen Zulu", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000b, 0x000b, - 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x001d, 0x0027, - 0x0027, 0x0027, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0042, 0x0042, 0x0042, 0x0042, 0x004a, 0x0051, 0x0051, 0x005c, - 0x005c, 0x005c, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006f, - 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0074, - 0x0074, 0x0081, 0x0081, 0x0081, 0x0081, 0x0090, 0x0090, 0x0090, - // Entry 40 - 7F - 0x0090, 0x00a2, 0x00a2, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00b7, 0x00b7, 0x00c0, 0x00c9, 0x00c9, 0x00c9, 0x00c9, 0x00c9, - 0x00c9, 0x00c9, 0x00d6, 0x00d6, 0x00e4, 0x00e4, 0x00e4, 0x00e4, - 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, - 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, - 0x00e4, 0x00e4, 0x00e4, 0x00f1, 0x00f1, 0x00f9, 0x00f9, 0x00f9, - 0x00ff, 0x00ff, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x010d, 0x010d, 0x011a, - // Entry 80 - BF - 0x011a, 0x012a, 0x012a, 0x012a, 0x012a, 0x0135, 0x013d, 0x014a, - 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, - 0x014a, 0x014a, 0x0150, 0x0150, 0x0150, 0x0150, 0x0150, 0x0150, - 0x015f, 0x015f, 0x0164, 0x0164, 0x0164, 0x0168, 0x0168, 0x0168, - 0x0168, 0x0168, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0187, - 0x0193, 0x0193, 0x0193, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, - 0x01a4, 0x01ac, 0x01ac, 0x01b7, 0x01c3, - }, - }, - { // haw - "Ê»AlapiaWaleKenemakaKelemÄniaHelenePelekÄniaPanioloPÄ«kÄ«PalaniÊ»AilikiHeber" + - "aʻĪkÄliaKepanÄ«KÅleaLÄkinaMÄoriHÅlaniPukikÄ«LÅ«kiaKÄmoaKuekeneTongaPola" + - "polaWiekanamaPÄkÄ“Kuikilani KelemÄniaʻŌlelo HawaiÊ»iÊ»Ike Ê»ole ‘ia a kÅ«" + - "pono Ê»ole paha ka Ê»ÅleloPelekÄne NÅ« HÅlaniPelekÄne KanakÄPelekÄnia P" + - "ekekÄnePelekÄnia Ê»AmelikaPalani KanakÄKuikilaniPukikÄ« PalakilaPÄkÄ“ H" + - "oÊ»omaÊ»alahi Ê»iaPÄkÄ“ KuÊ»una", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x000c, 0x0014, - 0x001e, 0x001e, 0x001e, 0x001e, 0x0024, 0x002e, 0x002e, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x003b, 0x003b, 0x0041, - 0x0041, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, - 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, - // Entry 40 - 7F - 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, - 0x0059, 0x0059, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, - 0x0060, 0x0060, 0x0060, 0x0060, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, - 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x0073, 0x0073, - 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, - 0x0073, 0x0073, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, - 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, - // Entry 80 - BF - 0x007a, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0087, 0x0087, - 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - 0x008d, 0x008d, 0x008d, 0x008d, 0x008d, 0x008d, 0x008d, 0x008d, - 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, - 0x0094, 0x0099, 0x0099, 0x0099, 0x0099, 0x00a1, 0x00a1, 0x00a1, - 0x00a1, 0x00a1, 0x00a1, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, - 0x00aa, 0x00aa, 0x00aa, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - // Entry C0 - FF - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - // Entry 100 - 13F - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, - // Entry 140 - 17F - 0x00c4, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - // Entry 180 - 1BF - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - // Entry 1C0 - 1FF - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - // Entry 200 - 23F - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00d5, 0x00d5, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, - 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, - 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, - // Entry 240 - 27F - 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, - 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x011c, 0x012d, 0x0141, - 0x0155, 0x0155, 0x0155, 0x0155, 0x0163, 0x016c, 0x016c, 0x017c, - 0x017c, 0x017c, 0x017c, 0x0196, 0x01a4, - }, - }, - { // he - heLangStr, - heLangIdx, - }, - { // hi - hiLangStr, - hiLangIdx, - }, - { // hr - hrLangStr, - hrLangIdx, - }, - { // hsb - "afaršćinaabchazišćinaafrikaanšćinaakanšćinaamharšćinaaragonšćinaarabšćin" + - "aasamšćinaawaršćinaaymaršćinaazerbajdźanšćinabaÅ¡kiršćinaběłorušćinab" + - "oÅ‚haršćinabislamšćinabambarabengalšćinatibetšćinabretonšćinabosnišći" + - "nakatalanšćinaÄamoršćinakorsišćinakriÄěšćinawalizišćinadanšćinanÄ›mÄi" + - "nadivehidzongkhaewegrjekšćinajendźelšćinaesperantoÅ¡panišćinaestišćin" + - "abaskišćinapersišćinafinšćinafidźišćinafäröšćinafrancošćinafrizišćin" + - "airšćinaÅ¡otiska gelšćinagalicišćinaguaranigujaratimanšćinahausahebre" + - "jšćinahindišćinachorwatšćinahaitišćinamadźaršćinaarmenšćinainterling" + - "uaindonešćinaigbosichuan yiinupiakidoislandšćinaitalšćinainuitšćinaj" + - "apanšćinajavašćinageorgišćinakikuyukazachšćinagröndlandšćinakhmeršći" + - "nakannadšćinakorejšćinakaÅ¡miršćinakurdišćinakornišćinakirgišćinaÅ‚aćo" + - "nšćinaluxemburgšćinagandšćinalimburšćinalingalalaošćinalitawšćinalub" + - "a-katangaletišćinamalagassišćinamaoršćinamakedonšćinamalajamšćinamon" + - "golšćinamaratišćinamalajšćinamaltašćinaburmašćinanaurušćinasewjero-n" + - "debelenepalšćinanižozemšćinanorwegšćina (nynorsk)norwegšćina (bokmÃ¥l" + - ")navahookcitanšćinaoromoorijšćinapandźabšćinapólšćinapaÅ¡tunšćinaport" + - "ugalšćinakeÄuaretoromanšćinakirundišćinarumunšćinarušćinakinjarwanda" + - "sanskritsardinšćinasindhišćinasewjerosamišćinasangosinghalšćinasÅ‚owa" + - "kšćinasÅ‚owjenšćinasamoašćinaÅ¡onašćinasomališćinaalbanšćinaserbišćina" + - "siswatijužnosotšćina (Sesotho)sundanezišćinaÅ¡wedšćinasuahelšćinatami" + - "lšćinatelugutadźikšćinathailandšćinatigrinšćinaturkmenšćinatswanaton" + - "gašćinaturkowšćinatsongatataršćinatahitišćinaujguršćinaukrainšćinaur" + - "dušćinauzbekšćinavietnamšćinavolapükwalonšćinawolofxhosajidišćinajor" + - "ubašćinazhuangchinšćinazulušćinaaghemšćinaanglosakšćinaarawkanšćinap" + - "areasturšćinabembabenabodobuginezišćinachigachoctawšćinacherokeesora" + - "nitaitazarmadelnjoserbšćinadualajola-fonyiembufilipinšćinagagauzišći" + - "nagotšćinaÅ¡wicarska nÄ›mÄinagusiihawaiišćinahornjoserbšćinangombamach" + - "amekabylšćinakambamakondekapverdšćinakoyra chiinikalenjinpermska kom" + - "išćinakonkaniÅ¡ambalabafialangilakotaluoluhyamasaišćinamerumauriciska" + - " kreolšćinamakhuwa-meettometa’mohawkšćinamundangkriknamadelnjonÄ›mÄin" + - "akwasion’konuernyankoleprušćinakʼicheʼromborwasamburusangusicilšćina" + - "senakoyra sennitaÅ¡elhitjužnosamišćinalule-samišćinainari-samišćinask" + - "olt-samišćinasaterfrizišćinakongoska suahelšćinatesotasawaqtamazight" + - " (srjedźny Marokko)njeznata rÄ›Ävaivunjosogatamazightžadyn rÄ›Äny wobs" + - "ahmoderna wysokoarabšćinaawstriska nÄ›mÄinaÅ¡wicarska wysokonÄ›mÄinaaws" + - "tralska jendźelšćinakanadiska jendźelšćinabritiska jendźelšćinaameri" + - "ska jendźelšćinaÅ‚aćonskoameriska Å¡panišćinaeuropska Å¡panišćinamexisk" + - "a Å¡panišćinakanadiska francošćinaÅ¡wicarska francošćinaflamšćinabrazi" + - "lska portugalšćinaeuropska portugalšćinamoldawšćinaserbochorwatšćina" + - "chinšćina (zjednorjena)chinšćina (tradicionalna)", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x000b, 0x0019, 0x0019, 0x0028, 0x0033, 0x003f, 0x004c, - 0x0057, 0x0062, 0x006d, 0x0079, 0x008c, 0x009a, 0x00a9, 0x00b7, - 0x00c4, 0x00cb, 0x00d8, 0x00e4, 0x00f1, 0x00fd, 0x010b, 0x010b, - 0x0118, 0x0124, 0x0127, 0x0132, 0x0132, 0x0132, 0x013f, 0x0149, - 0x0152, 0x0158, 0x0160, 0x0163, 0x016f, 0x017e, 0x0187, 0x0194, - 0x019f, 0x01ab, 0x01b7, 0x01b7, 0x01c1, 0x01ce, 0x01db, 0x01e8, - 0x01f4, 0x01fd, 0x0210, 0x021d, 0x0224, 0x022c, 0x0236, 0x023b, - 0x0248, 0x0254, 0x0254, 0x0262, 0x026e, 0x027c, 0x0288, 0x0288, - // Entry 40 - 7F - 0x0293, 0x02a0, 0x02a0, 0x02a4, 0x02ae, 0x02b5, 0x02b8, 0x02c5, - 0x02d0, 0x02dc, 0x02e8, 0x02f3, 0x0300, 0x0300, 0x0306, 0x0306, - 0x0313, 0x0324, 0x0330, 0x033d, 0x0349, 0x0349, 0x0357, 0x0363, - 0x0363, 0x036f, 0x037b, 0x0389, 0x0399, 0x03a4, 0x03b1, 0x03b8, - 0x03c2, 0x03ce, 0x03da, 0x03e5, 0x03f5, 0x03f5, 0x0400, 0x040e, - 0x041c, 0x0429, 0x0436, 0x0442, 0x044e, 0x045a, 0x0466, 0x0475, - 0x0481, 0x0481, 0x0490, 0x04a7, 0x04be, 0x04be, 0x04c4, 0x04c4, - 0x04d2, 0x04d2, 0x04d7, 0x04e2, 0x04e2, 0x04f1, 0x04f1, 0x04fc, - // Entry 80 - BF - 0x050a, 0x0519, 0x051f, 0x052f, 0x053d, 0x0549, 0x0552, 0x055d, - 0x0565, 0x0572, 0x057f, 0x0591, 0x0596, 0x05a4, 0x05b2, 0x05c1, - 0x05cd, 0x05d9, 0x05e6, 0x05f2, 0x05fe, 0x0605, 0x061f, 0x062f, - 0x063b, 0x0648, 0x0654, 0x065a, 0x0668, 0x0677, 0x0684, 0x0692, - 0x0698, 0x06a4, 0x06b1, 0x06b7, 0x06c3, 0x06d0, 0x06dc, 0x06e9, - 0x06f4, 0x0700, 0x0700, 0x070e, 0x0716, 0x0722, 0x0727, 0x072c, - 0x0737, 0x0744, 0x074a, 0x0755, 0x0760, 0x0760, 0x0760, 0x0760, - 0x0760, 0x0760, 0x0760, 0x076c, 0x076c, 0x076c, 0x076c, 0x076c, - // Entry C0 - FF - 0x076c, 0x076c, 0x077b, 0x077b, 0x077b, 0x0789, 0x0789, 0x0789, - 0x0789, 0x0789, 0x0789, 0x0789, 0x078d, 0x078d, 0x0799, 0x0799, - 0x0799, 0x0799, 0x0799, 0x0799, 0x0799, 0x0799, 0x0799, 0x0799, - 0x0799, 0x0799, 0x079e, 0x079e, 0x07a2, 0x07a2, 0x07a2, 0x07a2, - 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07a2, - 0x07a2, 0x07a6, 0x07a6, 0x07a6, 0x07b5, 0x07b5, 0x07b5, 0x07b5, - 0x07b5, 0x07b5, 0x07b5, 0x07b5, 0x07b5, 0x07ba, 0x07ba, 0x07ba, - 0x07ba, 0x07ba, 0x07ba, 0x07c8, 0x07c8, 0x07d0, 0x07d0, 0x07d6, - // Entry 100 - 13F - 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07db, 0x07db, - 0x07db, 0x07db, 0x07db, 0x07e0, 0x07e0, 0x07f1, 0x07f1, 0x07f6, - 0x07f6, 0x0800, 0x0800, 0x0800, 0x0804, 0x0804, 0x0804, 0x0804, - 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0812, - 0x0812, 0x0812, 0x0812, 0x0812, 0x0812, 0x0812, 0x0812, 0x0812, - 0x0812, 0x0812, 0x0820, 0x0820, 0x0820, 0x0820, 0x0820, 0x0820, - 0x0820, 0x0820, 0x0820, 0x0820, 0x0820, 0x0820, 0x0820, 0x082a, - 0x082a, 0x082a, 0x083e, 0x083e, 0x083e, 0x0843, 0x0843, 0x0843, - // Entry 140 - 17F - 0x0843, 0x0850, 0x0850, 0x0850, 0x0850, 0x0850, 0x0861, 0x0861, - 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, - 0x0867, 0x086e, 0x086e, 0x086e, 0x086e, 0x086e, 0x087a, 0x087a, - 0x087a, 0x087f, 0x087f, 0x087f, 0x087f, 0x087f, 0x0886, 0x0894, - 0x0894, 0x0894, 0x0894, 0x0894, 0x0894, 0x08a0, 0x08a0, 0x08a0, - 0x08a0, 0x08a8, 0x08a8, 0x08bb, 0x08c2, 0x08c2, 0x08c2, 0x08c2, - 0x08c2, 0x08c2, 0x08c2, 0x08c2, 0x08ca, 0x08cf, 0x08cf, 0x08cf, - 0x08cf, 0x08cf, 0x08d4, 0x08d4, 0x08d4, 0x08d4, 0x08d4, 0x08d4, - // Entry 180 - 1BF - 0x08d4, 0x08da, 0x08da, 0x08da, 0x08da, 0x08da, 0x08da, 0x08da, - 0x08da, 0x08dd, 0x08dd, 0x08e2, 0x08e2, 0x08e2, 0x08e2, 0x08e2, - 0x08e2, 0x08e2, 0x08e2, 0x08e2, 0x08ee, 0x08ee, 0x08ee, 0x08ee, - 0x08ee, 0x08f2, 0x0909, 0x0909, 0x0917, 0x091e, 0x091e, 0x091e, - 0x091e, 0x091e, 0x092b, 0x092b, 0x092b, 0x0932, 0x0932, 0x0936, - 0x0936, 0x0936, 0x0936, 0x0936, 0x0936, 0x0936, 0x0936, 0x0936, - 0x093a, 0x0949, 0x0949, 0x0949, 0x0949, 0x0949, 0x094f, 0x094f, - 0x094f, 0x094f, 0x094f, 0x0955, 0x0955, 0x0959, 0x0959, 0x0959, - // Entry 1C0 - 1FF - 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, - 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, - 0x0961, 0x0961, 0x0961, 0x096b, 0x096b, 0x0974, 0x0974, 0x0974, - 0x0974, 0x0974, 0x0974, 0x0974, 0x0979, 0x0979, 0x0979, 0x0979, - 0x0979, 0x0979, 0x097c, 0x097c, 0x097c, 0x097c, 0x0983, 0x0983, - 0x0983, 0x0983, 0x0983, 0x0988, 0x0994, 0x0994, 0x0994, 0x0994, - 0x0998, 0x0998, 0x0998, 0x09a3, 0x09a3, 0x09a3, 0x09ac, 0x09ac, - 0x09ac, 0x09ac, 0x09ac, 0x09ac, 0x09bd, 0x09cd, 0x09de, 0x09ef, - // Entry 200 - 23F - 0x09ef, 0x09ef, 0x09ef, 0x09ef, 0x09ef, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a16, 0x0a16, 0x0a16, 0x0a16, 0x0a16, 0x0a16, - 0x0a1a, 0x0a1a, 0x0a1a, 0x0a1a, 0x0a1a, 0x0a1a, 0x0a1a, 0x0a1a, - 0x0a1a, 0x0a1a, 0x0a1a, 0x0a1a, 0x0a1a, 0x0a1a, 0x0a1a, 0x0a1a, - 0x0a1a, 0x0a1a, 0x0a1a, 0x0a1a, 0x0a21, 0x0a21, 0x0a3e, 0x0a3e, - 0x0a3e, 0x0a3e, 0x0a4c, 0x0a4f, 0x0a4f, 0x0a4f, 0x0a4f, 0x0a4f, - 0x0a4f, 0x0a4f, 0x0a54, 0x0a54, 0x0a54, 0x0a54, 0x0a54, 0x0a54, - 0x0a54, 0x0a54, 0x0a54, 0x0a58, 0x0a58, 0x0a58, 0x0a58, 0x0a58, - // Entry 240 - 27F - 0x0a58, 0x0a58, 0x0a58, 0x0a58, 0x0a58, 0x0a58, 0x0a61, 0x0a61, - 0x0a76, 0x0a76, 0x0a8f, 0x0aa2, 0x0abc, 0x0ad6, 0x0aef, 0x0b07, - 0x0b1f, 0x0b3f, 0x0b55, 0x0b6a, 0x0b81, 0x0b99, 0x0ba4, 0x0bbd, - 0x0bd5, 0x0be2, 0x0bf5, 0x0c0e, 0x0c29, - }, - }, - { // hu - huLangStr, - huLangIdx, - }, - { // hy - hyLangStr, - hyLangIdx, - }, - { // id - idLangStr, - idLangIdx, - }, - { // ig - "AkanAmariikịArabiikịBelaruusuBá»lụgarịaBengaliCheekịJamaanGiriikịOyiboPan" + - "yaPeshanFụrenchAwụsaHindiMagịyaIndonisiaIgboItaloJapaneseJavaKeme, E" + - "titiKoriaMaleyiMịanmaNepaliDá»á»chPunjabiPoliishiPotokiRumeniaRá»shanRụ" + - "wandaSomaliSụwidiishiTamụlụTaịTá»kiishiUkureenịUruduViyetịnaamụYoruba" + - "MandarịịnịZulu", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000e, 0x000e, - 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0021, 0x0030, - 0x0030, 0x0030, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, - 0x0037, 0x0037, 0x0037, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0045, 0x0045, 0x0045, 0x0045, 0x004e, 0x0053, 0x0053, 0x0058, - 0x0058, 0x0058, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x0067, - 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x006e, - 0x006e, 0x0073, 0x0073, 0x0073, 0x0073, 0x007b, 0x007b, 0x007b, - // Entry 40 - 7F - 0x007b, 0x0084, 0x0084, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, - 0x008d, 0x008d, 0x0095, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, - 0x0099, 0x0099, 0x00a4, 0x00a4, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00af, 0x00af, 0x00b7, 0x00b7, 0x00b7, - 0x00bd, 0x00bd, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, - 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00cd, 0x00cd, 0x00d5, - // Entry 80 - BF - 0x00d5, 0x00db, 0x00db, 0x00db, 0x00db, 0x00e2, 0x00ea, 0x00f3, - 0x00f3, 0x00f3, 0x00f3, 0x00f3, 0x00f3, 0x00f3, 0x00f3, 0x00f3, - 0x00f3, 0x00f3, 0x00f9, 0x00f9, 0x00f9, 0x00f9, 0x00f9, 0x00f9, - 0x0105, 0x0105, 0x010f, 0x010f, 0x010f, 0x0114, 0x0114, 0x0114, - 0x0114, 0x0114, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x0128, - 0x012d, 0x012d, 0x012d, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, - 0x013c, 0x0142, 0x0142, 0x0152, 0x0156, - }, - }, - { // ii - "ꄓꇩꉙꑱꇩꉙꑭꀠꑸꉙꃔꇩꉙꆈꌠꉙꑴꄊꆺꉙêꀪꉙêꄨꑸꉙꊉꇩꉙêꇩꉙꅉꀋꌠꅇꂷꀠꑟêꄨꑸꉙêˆê¯êꇩꉙꀎê‹êꇩꉙ", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0012, 0x0012, 0x001e, - 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0027, - 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, - 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, - // Entry 40 - 7F - 0x0027, 0x0027, 0x0027, 0x0027, 0x0030, 0x0030, 0x0030, 0x0030, - 0x003c, 0x003c, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - // Entry 80 - BF - 0x0045, 0x0051, 0x0051, 0x0051, 0x0051, 0x0051, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - // Entry C0 - FF - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - // Entry 100 - 13F - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - // Entry 140 - 17F - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - // Entry 180 - 1BF - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - // Entry 1C0 - 1FF - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - // Entry 200 - 23F - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, - 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, - 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, - // Entry 240 - 27F - 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, - 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, - 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0084, - 0x0084, 0x0084, 0x0084, 0x0093, 0x00a2, - }, - }, - { // is - isLangStr, - isLangIdx, - }, - { // it - itLangStr, - itLangIdx, - }, - { // ja - jaLangStr, - jaLangIdx, - }, - { // jgo - "AlâbÉ›NjámanÅŠgÉ›lɛ̂kAÅ‹gÉ›lúshiFÉ›lánciShinwâNdaꞌacú-pʉɔ yi pÉ›Ì ká kÉ›Ì jí", - []uint16{ // 555 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x000e, 0x000e, 0x000e, 0x000e, 0x0019, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - // Entry 40 - 7F - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - // Entry 80 - BF - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - // Entry C0 - FF - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - // Entry 100 - 13F - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - // Entry 140 - 17F - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - // Entry 180 - 1BF - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - // Entry 1C0 - 1FF - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - // Entry 200 - 23F - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x005c, - }, - }, - { // jmc - "KiakanyiKiamharyiKyiarabuKyibelarusiKyibulgaryiaKyibanglaKyicheckiKyijer" + - "umaniKyigirikiKyingerezaKyihispaniaKyiajemiKyifaransaKyihausaKyihind" + - "iKyihungariKyiindonesiaKyiigboKyiitalianoKyijapaniKyijavaKyikambodia" + - "KyikoreaKyimalesiaKyiburmaKyinepaliKyiholanziKyipunjabiKyipolandiKyi" + - "renoKyiromaniaKyirusiKyinyarwandaKyisomalyiKyiswidiKyitamilKyitailan" + - "diKyiturukyiKyiukraniaKyiurduKyivietinamuKyiyorubaKyichinaKyizuluKim" + - "achame", - []uint16{ // 338 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0011, 0x0011, - 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0024, 0x0030, - 0x0030, 0x0030, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0039, 0x0039, 0x0039, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x004d, 0x004d, 0x004d, 0x004d, 0x0056, 0x0060, 0x0060, 0x006b, - 0x006b, 0x006b, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x007d, - 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x0085, - 0x0085, 0x008d, 0x008d, 0x008d, 0x008d, 0x0097, 0x0097, 0x0097, - // Entry 40 - 7F - 0x0097, 0x00a3, 0x00a3, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, - 0x00b5, 0x00b5, 0x00be, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, - 0x00c5, 0x00c5, 0x00d0, 0x00d0, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00e2, 0x00e2, 0x00ea, 0x00ea, 0x00ea, - 0x00f3, 0x00f3, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, - 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x0107, 0x0107, 0x0111, - // Entry 80 - BF - 0x0111, 0x0118, 0x0118, 0x0118, 0x0118, 0x0122, 0x0129, 0x0135, - 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, - 0x0135, 0x0135, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, - 0x0147, 0x0147, 0x014f, 0x014f, 0x014f, 0x015a, 0x015a, 0x015a, - 0x015a, 0x015a, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x016e, - 0x0175, 0x0175, 0x0175, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, - 0x0181, 0x018a, 0x018a, 0x0192, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry C0 - FF - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry 100 - 13F - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry 140 - 17F - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x01a2, - }, - }, - { // ka - kaLangStr, - kaLangIdx, - }, - { // kab - "TakanitTamahrictTaÉ›rabtTabilarusitTabulgaritTabengalitTaÄikitTalmantTagr" + - "ikitTaglizitTaspenyulitTafarisitTafransistTahwasitTahenditTahungarit" + - "TandunisitTigbutTaá¹­alyanitTajapunitTajavanitTakemritTakuritTamalawit" + - "TaburmisitTanipalitTaduÄitTapunjabitTapulunitTapurtugalitTarumanitTa" + - "rusitTaruwanditTaá¹£umalitTaswiditTaá¹­amulitTaá¹­aylunditTaá¹­urkitTukranit" + - "TurdutTabyiá¹­namitTayurubitTacinwat, TamundarintTazulutTaqbaylit", - []uint16{ // 343 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0010, 0x0010, - 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0023, 0x002d, - 0x002d, 0x002d, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, - 0x0037, 0x0037, 0x0037, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0046, 0x0046, 0x0046, 0x0046, 0x004e, 0x0056, 0x0056, 0x0061, - 0x0061, 0x0061, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x0074, - 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x007c, - 0x007c, 0x0084, 0x0084, 0x0084, 0x0084, 0x008e, 0x008e, 0x008e, - // Entry 40 - 7F - 0x008e, 0x0098, 0x0098, 0x009e, 0x009e, 0x009e, 0x009e, 0x009e, - 0x00aa, 0x00aa, 0x00b3, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, - 0x00bc, 0x00bc, 0x00c4, 0x00c4, 0x00cb, 0x00cb, 0x00cb, 0x00cb, - 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, - 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, - 0x00cb, 0x00cb, 0x00cb, 0x00d4, 0x00d4, 0x00de, 0x00de, 0x00de, - 0x00e7, 0x00e7, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, - 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00f9, 0x00f9, 0x0102, - // Entry 80 - BF - 0x0102, 0x010e, 0x010e, 0x010e, 0x010e, 0x0117, 0x011e, 0x0128, - 0x0128, 0x0128, 0x0128, 0x0128, 0x0128, 0x0128, 0x0128, 0x0128, - 0x0128, 0x0128, 0x0133, 0x0133, 0x0133, 0x0133, 0x0133, 0x0133, - 0x013b, 0x013b, 0x0146, 0x0146, 0x0146, 0x0153, 0x0153, 0x0153, - 0x0153, 0x0153, 0x015d, 0x015d, 0x015d, 0x015d, 0x015d, 0x0165, - 0x016b, 0x016b, 0x016b, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, - 0x0178, 0x0181, 0x0181, 0x0196, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - // Entry C0 - FF - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - // Entry 100 - 13F - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - // Entry 140 - 17F - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x01a6, - }, - }, - { // kam - "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + - "ikiKingerezaKihispaniaKiajemiKifaransaKihausaKihindiKihungariKiindon" + - "esiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaK" + - "inepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKi" + - "somaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyo" + - "rubaKichinaKizuluKikamba", - []uint16{ // 346 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, - 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, - 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0054, 0x0054, 0x005e, - 0x005e, 0x005e, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006e, - 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0075, - 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, - // Entry 40 - 7F - 0x0085, 0x0090, 0x0090, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, - 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, - 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, - 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, - // Entry 80 - BF - 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, - 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, - 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, - 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0132, 0x0132, 0x0132, - 0x0132, 0x0132, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x0143, - 0x0149, 0x0149, 0x0149, 0x0154, 0x0154, 0x0154, 0x0154, 0x0154, - 0x0154, 0x015c, 0x015c, 0x0163, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry C0 - FF - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 100 - 13F - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 140 - 17F - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0170, - }, - }, - { // kde - "ChakanChamhaliChalabuChibelalusiChibulgaliaChibanglaChichechiChidyeluman" + - "iChigilichiChiingelezaChihispaniaChiajemiChifalansaChihausaChihindiC" + - "hihungaliChiiongonesiaChiigboChiitalianoChidyapaniChidyavaChikambodi" + - "aChikoleaChimalesiaChibulmaChinepaliChiholanziChipunjabiChipolandiCh" + - "ilenoChilomaniaChilusiChinyalwandaChisomaliChiswidiChitamilChitailan" + - "diChituluchiChiuklaniaChiulduChivietinamuChiyolubaChichinaChizuluChi" + - "makonde", - []uint16{ // 351 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0020, 0x002b, - 0x002b, 0x002b, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0034, 0x0034, 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, - 0x0049, 0x0049, 0x0049, 0x0049, 0x0053, 0x005e, 0x005e, 0x0069, - 0x0069, 0x0069, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x007b, - 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x0083, - 0x0083, 0x008b, 0x008b, 0x008b, 0x008b, 0x0095, 0x0095, 0x0095, - // Entry 40 - 7F - 0x0095, 0x00a2, 0x00a2, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00b4, 0x00b4, 0x00be, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, - 0x00c6, 0x00c6, 0x00d1, 0x00d1, 0x00d9, 0x00d9, 0x00d9, 0x00d9, - 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, - 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, - 0x00d9, 0x00d9, 0x00d9, 0x00e3, 0x00e3, 0x00eb, 0x00eb, 0x00eb, - 0x00f4, 0x00f4, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, - 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x0108, 0x0108, 0x0112, - // Entry 80 - BF - 0x0112, 0x0119, 0x0119, 0x0119, 0x0119, 0x0123, 0x012a, 0x0136, - 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, - 0x0136, 0x0136, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, - 0x0147, 0x0147, 0x014f, 0x014f, 0x014f, 0x015a, 0x015a, 0x015a, - 0x015a, 0x015a, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x016e, - 0x0175, 0x0175, 0x0175, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, - 0x0181, 0x018a, 0x018a, 0x0192, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry C0 - FF - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry 100 - 13F - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry 140 - 17F - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x01a3, - }, - }, - { // kea - "abkaziuafrikanerakanamarikuarabiasamesaimaraazerbaijanubaxkirbielorusubu" + - "lgarubambarabengalitibetanubretãubosniukatalãucórsikutxekugalesdinam" + - "arkesalimãudzonkaevegreguinglessperantuspanholstonianubaskupersafinl" + - "andesfijianufaroesfransesfrisiu osidentalirlandesgaleguguaranigujara" + - "timanksauzaebraikuindikroataaitianuúngaruarméniuindoneziuibonuosuisl" + - "andesitalianuinuktitutjaponesjavanesjorjianukazakkmerkanareskureanuk" + - "axmirakurdukirgizlatinluxemburgeslausianulituanesletãumalgaximaorima" + - "sedoniumalaialammaratimalaiumaltesbirmanesnepalesolandesnorueges nyn" + - "orsknorueges bokmÃ¥loromooriyapandjabipulakupaxtopurtugeskexuaromanxi" + - "rumenurusukiniaruandasanskritusindisingalesslovakusloveniusomalialba" + - "nessérviusundanessuekusuaílitamiltelugutajiktailandestigriniaturkmen" + - "utonganesturkutataruigurukranianuurduuzbekivietnamitauolofkozaioruba" + - "xineszuluaghemaraukanuasubembabenabodoxigaxerokikurdu soranitaitazar" + - "masórbiu baxudualajola-fonyiembufilipinugagauzalimãu di Suisagusiiav" + - "aianusórbiu altuñombamatxamekabuverdianukitxelingua diskonxedusem ko" + - "nteudo linguistikuarabi mudernualimãu austriakualtu alimãu suisuingl" + - "es australianuingles kanadianuingles britanukuingles merkanuspanhol " + - "latinu-merkanuspanhol europeuspanhol mexikanufranses kanadianufranse" + - "s suisuflamengupurtuges brazilerupurtuges europeuxines simplifikadux" + - "ines tradisional", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x0007, 0x0010, 0x0014, 0x001b, 0x001b, - 0x0020, 0x0026, 0x0026, 0x002c, 0x0037, 0x003d, 0x0046, 0x004d, - 0x004d, 0x0054, 0x005b, 0x0063, 0x006a, 0x0070, 0x0078, 0x0078, - 0x0078, 0x0080, 0x0080, 0x0085, 0x0085, 0x0085, 0x008a, 0x0094, - 0x009b, 0x009b, 0x00a1, 0x00a4, 0x00a9, 0x00af, 0x00b7, 0x00be, - 0x00c6, 0x00cb, 0x00d0, 0x00d0, 0x00d9, 0x00e0, 0x00e6, 0x00ed, - 0x00fd, 0x0105, 0x0105, 0x010b, 0x0112, 0x011a, 0x011f, 0x0123, - 0x012a, 0x012e, 0x012e, 0x0134, 0x013b, 0x0142, 0x014a, 0x014a, - // Entry 40 - 7F - 0x014a, 0x0153, 0x0153, 0x0156, 0x015b, 0x015b, 0x015b, 0x0163, - 0x016b, 0x0174, 0x017b, 0x0182, 0x018a, 0x018a, 0x018a, 0x018a, - 0x018f, 0x018f, 0x0193, 0x019a, 0x01a1, 0x01a1, 0x01a8, 0x01ad, - 0x01ad, 0x01ad, 0x01b3, 0x01b8, 0x01c3, 0x01c3, 0x01c3, 0x01c3, - 0x01cb, 0x01d3, 0x01d3, 0x01d9, 0x01e0, 0x01e0, 0x01e5, 0x01ee, - 0x01f7, 0x01f7, 0x01fd, 0x0203, 0x0209, 0x0211, 0x0211, 0x0211, - 0x0218, 0x0218, 0x021f, 0x022f, 0x023f, 0x023f, 0x023f, 0x023f, - 0x023f, 0x023f, 0x0244, 0x0249, 0x0249, 0x0251, 0x0251, 0x0257, - // Entry 80 - BF - 0x025c, 0x0264, 0x0269, 0x0270, 0x0270, 0x0276, 0x027a, 0x0285, - 0x028e, 0x028e, 0x0293, 0x0293, 0x0293, 0x029b, 0x02a2, 0x02aa, - 0x02aa, 0x02aa, 0x02b0, 0x02b7, 0x02be, 0x02be, 0x02be, 0x02c6, - 0x02cb, 0x02d2, 0x02d7, 0x02dd, 0x02e2, 0x02eb, 0x02f3, 0x02fb, - 0x02fb, 0x0303, 0x0308, 0x0308, 0x030d, 0x030d, 0x0312, 0x031b, - 0x031f, 0x0325, 0x0325, 0x032f, 0x032f, 0x032f, 0x0334, 0x0338, - 0x0338, 0x033e, 0x033e, 0x0343, 0x0347, 0x0347, 0x0347, 0x0347, - 0x0347, 0x0347, 0x0347, 0x034c, 0x034c, 0x034c, 0x034c, 0x034c, - // Entry C0 - FF - 0x034c, 0x034c, 0x034c, 0x034c, 0x034c, 0x0354, 0x0354, 0x0354, - 0x0354, 0x0354, 0x0354, 0x0354, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x035c, 0x035c, 0x0360, 0x0360, 0x0360, 0x0360, - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, - 0x0360, 0x0364, 0x0364, 0x0364, 0x0364, 0x0364, 0x0364, 0x0364, - 0x0364, 0x0364, 0x0364, 0x0364, 0x0364, 0x0368, 0x0368, 0x0368, - 0x0368, 0x0368, 0x0368, 0x0368, 0x0368, 0x036e, 0x036e, 0x037a, - // Entry 100 - 13F - 0x037a, 0x037a, 0x037a, 0x037a, 0x037a, 0x037a, 0x037f, 0x037f, - 0x037f, 0x037f, 0x037f, 0x0384, 0x0384, 0x0390, 0x0390, 0x0395, - 0x0395, 0x039f, 0x039f, 0x039f, 0x03a3, 0x03a3, 0x03a3, 0x03a3, - 0x03a3, 0x03a3, 0x03a3, 0x03a3, 0x03a3, 0x03a3, 0x03a3, 0x03ab, - 0x03ab, 0x03ab, 0x03ab, 0x03ab, 0x03ab, 0x03ab, 0x03ab, 0x03ab, - 0x03ab, 0x03ab, 0x03b1, 0x03b1, 0x03b1, 0x03b1, 0x03b1, 0x03b1, - 0x03b1, 0x03b1, 0x03b1, 0x03b1, 0x03b1, 0x03b1, 0x03b1, 0x03b1, - 0x03b1, 0x03b1, 0x03c1, 0x03c1, 0x03c1, 0x03c6, 0x03c6, 0x03c6, - // Entry 140 - 17F - 0x03c6, 0x03cd, 0x03cd, 0x03cd, 0x03cd, 0x03cd, 0x03d9, 0x03d9, - 0x03d9, 0x03d9, 0x03d9, 0x03d9, 0x03d9, 0x03d9, 0x03d9, 0x03d9, - 0x03df, 0x03e6, 0x03e6, 0x03e6, 0x03e6, 0x03e6, 0x03e6, 0x03e6, - 0x03e6, 0x03e6, 0x03e6, 0x03e6, 0x03e6, 0x03e6, 0x03e6, 0x03f2, - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - // Entry 180 - 1BF - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - // Entry 1C0 - 1FF - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, - 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x03f7, 0x03f7, 0x03f7, - 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, - 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, - 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, - 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, - 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, - // Entry 200 - 23F - 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, - 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, - 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, - 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, - 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, 0x03f7, - 0x03f7, 0x03f7, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, - 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, - 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, - // Entry 240 - 27F - 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, - 0x0420, 0x0420, 0x042d, 0x043e, 0x0450, 0x0462, 0x0472, 0x0482, - 0x0490, 0x04a6, 0x04b5, 0x04c5, 0x04d6, 0x04e3, 0x04eb, 0x04fd, - 0x050d, 0x050d, 0x050d, 0x051f, 0x0530, - }, - }, - { // khq - "Akan senniAmhaarik senniLaaraw senniBelaruus senniBulagaari senniBengali" + - " senniCek senniAlmaÅ‹ senniGrek senniInglisi senniEspaaɲe senniFarsi " + - "senniFransee senniHawsance senniInduu senniHungaari senniIndoneesi s" + - "enniIboo senniItaali senniJaponee senniJavanee senniKmeer senni, Gam" + - "e hereKoree senniMaleezi senniBurme senniNeepal senniHolandee senniP" + - "unjaabi senniiPolonee senniPortugee senniRumaani senniRuusi senniRwa" + - "nda senniSomaali senniSuweede senniTamil senniTaailandu senniTurku s" + - "enniUkreen senniUrdu senniVietnaam senniYorbance senniSinuwa senni, " + - "MandareÅ‹Julu senniKoyra ciini", - []uint16{ // 358 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0018, 0x0018, - 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0032, 0x0041, - 0x0041, 0x0041, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, - 0x004e, 0x004e, 0x004e, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, - 0x0063, 0x0063, 0x0063, 0x0063, 0x006d, 0x007a, 0x007a, 0x0088, - 0x0088, 0x0088, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x00a0, - 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00ae, - 0x00ae, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00c7, 0x00c7, 0x00c7, - // Entry 40 - 7F - 0x00c7, 0x00d6, 0x00d6, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, - 0x00ec, 0x00ec, 0x00f9, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x011c, 0x011c, 0x0127, 0x0127, 0x0127, 0x0127, - 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, - 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, - 0x0127, 0x0127, 0x0127, 0x0134, 0x0134, 0x013f, 0x013f, 0x013f, - 0x014b, 0x014b, 0x0159, 0x0159, 0x0159, 0x0159, 0x0159, 0x0159, - 0x0159, 0x0159, 0x0159, 0x0159, 0x0159, 0x0168, 0x0168, 0x0175, - // Entry 80 - BF - 0x0175, 0x0183, 0x0183, 0x0183, 0x0183, 0x0190, 0x019b, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, - 0x01c1, 0x01c1, 0x01cc, 0x01cc, 0x01cc, 0x01db, 0x01db, 0x01db, - 0x01db, 0x01db, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01f2, - 0x01fc, 0x01fc, 0x01fc, 0x020a, 0x020a, 0x020a, 0x020a, 0x020a, - 0x020a, 0x0218, 0x0218, 0x022f, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - // Entry C0 - FF - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - // Entry 100 - 13F - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - // Entry 140 - 17F - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0244, - }, - }, - { // ki - "KiakanKiamhariKÄ©arabuKibelarusiKibulgariaKibanglaKicheckiKÄ©njeremaniKigi" + - "rikiGÄ©thungÅ©KihispaniaKiajemiKÄ©baranjaKihausaKÄ©hÄ©ndÄ©KihungariKiindon" + - "esiaKiigboKÄ©talianoKÄ©njabaniKijavaGikuyuKikambodiaKikoreaKimalesiaKi" + - "burmaKinepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKÄ©raciaKinyar" + - "wandaKÄ©cumarÄ©KiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietin" + - "amuKiyorubaKÄ©cainaKizulu", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0020, 0x002a, - 0x002a, 0x002a, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, - 0x0046, 0x0046, 0x0046, 0x0046, 0x004e, 0x0058, 0x0058, 0x0062, - 0x0062, 0x0062, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0073, - 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x007a, - 0x007a, 0x0084, 0x0084, 0x0084, 0x0084, 0x008d, 0x008d, 0x008d, - // Entry 40 - 7F - 0x008d, 0x0098, 0x0098, 0x009e, 0x009e, 0x009e, 0x009e, 0x009e, - 0x00a8, 0x00a8, 0x00b2, 0x00b8, 0x00b8, 0x00b8, 0x00be, 0x00be, - 0x00be, 0x00be, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, 0x00cf, - 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, - 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, - 0x00cf, 0x00cf, 0x00cf, 0x00d8, 0x00d8, 0x00df, 0x00df, 0x00df, - 0x00e7, 0x00e7, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, - 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f9, 0x00f9, 0x0102, - // Entry 80 - BF - 0x0102, 0x0108, 0x0108, 0x0108, 0x0108, 0x0111, 0x0119, 0x0124, - 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, - 0x0124, 0x0124, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x0135, 0x0135, 0x013c, 0x013c, 0x013c, 0x0146, 0x0146, 0x0146, - 0x0146, 0x0146, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x0157, - 0x015d, 0x015d, 0x015d, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, - 0x0168, 0x0170, 0x0170, 0x0178, 0x017e, - }, - }, - { // kk - kkLangStr, - kkLangIdx, - }, - { // kkj - "yamannumbu buykakÉ”", - []uint16{ // 361 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x0005, 0x0005, - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - // Entry 40 - 7F - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - // Entry 80 - BF - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - // Entry C0 - FF - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - // Entry 100 - 13F - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - // Entry 140 - 17F - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x0013, - }, - }, - { // kl - "kalaallisut", - []uint16{ // 82 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x000b, - }, - }, - { // kln - "kutitab Akakutitab Amariekkutitab Arabukkutitab Belarusakutitab Bulgaria" + - "kutitab Bengalikutitab Chekkutitab Chermanikutitab Greecekutitab Uin" + - "geresakutitab Espianikkutitab Persiakutitab Kifaransakutitab Hausaku" + - "titab Maindiikkutitab Hangarikutitab Indonesiakutitab Igbokutitab Ta" + - "lianekkutitap Japankutitap Javanesekutitab Kher nebo Kwenkutitab Kor" + - "eakutitab Malaykutitab Burmakutitab Nepalikutitab Boakutitab Punjabk" + - "utitap Polandkutitab Portugalkutitab Romaniekkutitab Russiakutitab K" + - "inyarwandakutitab Somaliekkutitab Swedenkutitab Tamilkutitab Thailan" + - "dkutitab Turkeykutitab Ukrainekutitab Urdukutitab Vietnamkutitab Yor" + - "ubakutitab Chinakutitab ZuluKalenjin", - []uint16{ // 362 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000b, 0x001a, 0x001a, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0038, 0x0048, - 0x0048, 0x0048, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, - 0x0057, 0x0057, 0x0057, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0073, 0x0073, 0x0073, 0x0073, 0x0081, 0x0092, 0x0092, 0x00a2, - 0x00a2, 0x00a2, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00c1, - 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00ce, - 0x00ce, 0x00de, 0x00de, 0x00de, 0x00de, 0x00ed, 0x00ed, 0x00ed, - // Entry 40 - 7F - 0x00ed, 0x00fe, 0x00fe, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, - 0x011a, 0x011a, 0x0127, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, - 0x0137, 0x0137, 0x014d, 0x014d, 0x015a, 0x015a, 0x015a, 0x015a, - 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, - 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, - 0x015a, 0x015a, 0x015a, 0x0167, 0x0167, 0x0174, 0x0174, 0x0174, - 0x0182, 0x0182, 0x018d, 0x018d, 0x018d, 0x018d, 0x018d, 0x018d, - 0x018d, 0x018d, 0x018d, 0x018d, 0x018d, 0x019b, 0x019b, 0x01a9, - // Entry 80 - BF - 0x01a9, 0x01b9, 0x01b9, 0x01b9, 0x01b9, 0x01c9, 0x01d7, 0x01ea, - 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01ea, - 0x01ea, 0x01ea, 0x01fa, 0x01fa, 0x01fa, 0x01fa, 0x01fa, 0x01fa, - 0x0208, 0x0208, 0x0215, 0x0215, 0x0215, 0x0225, 0x0225, 0x0225, - 0x0225, 0x0225, 0x0233, 0x0233, 0x0233, 0x0233, 0x0233, 0x0242, - 0x024e, 0x024e, 0x024e, 0x025d, 0x025d, 0x025d, 0x025d, 0x025d, - 0x025d, 0x026b, 0x026b, 0x0278, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - // Entry C0 - FF - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - // Entry 100 - 13F - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - // Entry 140 - 17F - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x028c, - }, - }, - { // km - kmLangStr, - kmLangIdx, - }, - { // kn - knLangStr, - knLangIdx, - }, - { // ko - koLangStr, - koLangIdx, - }, - { // kok - "अफारअबखेज़ियनअफà¥à¤°à¤¿à¤•à¤¾à¤¨à¥à¤¸à¤¤à¥à¤µà¤¿à¤…महारिकà¥à¤…रेबिकà¥à¤…सामीà¤à¤®à¤°à¤¾à¤…ज़रबैजानीबषà¥à¤•à¤¿à¤°à¤¬à¥ˆà¤²à¥‹à¤°" + - "à¥à¤¸à¤¿à¤¯à¤¨à¥à¤¬à¤²à¥à¤—ेरियनबिसलमाबंगालीतिबेतियनबà¥à¤°à¥‡à¤Ÿà¤¨à¤•à¤Ÿà¤²à¤¾à¤¨à¤•à¥‹à¤°à¥à¤¶à¤¿à¤¯à¤¨à¤œà¤¼à¥‡à¤•à¥à¤µà¥‡à¤³à¥à¤·à¥à¤¡" + - "ानिषजरà¥à¤®à¤¨à¤­à¥‚टानीगà¥à¤°à¥€à¤•à¥à¤†à¤‚गà¥à¤²à¤‡à¤¸à¥à¤ªà¤°à¤¾à¤¨à¥à¤Ÿà¥‹à¤¸à¥à¤ªà¤¾à¤¨à¤¿à¤·à¤‡à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¨à¥à¤¬à¤¾à¤¸à¥à¤•à¤ªà¤°à¥à¤·à¤¿à¤¯à¤¨à¥" + - "फिनà¥à¤¨à¤¿à¤·à¥à¤«à¤¿à¤œà¥€à¤«à¥‡à¤°à¥‹à¤¸à¥à¤«à¥à¤°à¥‡à¤¨à¥à¤šà¤«à¥à¤°à¤¿à¤¶à¤¿à¤¯à¤¨à¥à¤à¤°à¤¿à¤·à¤¸à¥à¤•à¤¾à¤Ÿà¤¸à¥ गेलिकà¥à¤—ेलीशियनगौरानी" + - "गà¥à¤œà¤°à¤¾à¤¤à¥€à¤¹à¥Œà¤¸à¤¾à¤¹à¥‡à¤¬à¥à¤°à¥à¤¹à¤¿à¤¨à¥à¤¦à¥€à¤•à¥à¤°à¥‹à¤¯à¥‡à¤·à¤¿à¤¯à¤¨à¥à¤¹à¤‚गेरियनà¥à¤†à¤°à¥à¤®à¥€à¤¨à¤¿à¤¯à¤¨à¥à¤‡à¤¨à¥à¤Ÿà¤°à¤²à¤¿à¤‚गà¥à¤µà¤¾à¤‡" + - "नà¥à¤¡à¥‹à¤¨à¥‡à¤·à¤¿à¤¯à¤¨à¤‡à¤¨à¥à¤Ÿà¤°à¤²à¤¿à¤‚गà¥à¤‡à¤¨à¥‚पेयाकà¥à¤†à¤ˆà¤¸à¥à¤²à¤¾à¤¨à¥à¤¡à¤¿à¤•à¤‡à¤Ÿà¤¾à¤²à¤¿à¤¯à¤¨à¤‡à¤¨à¥à¤¯à¥à¤•à¤Ÿà¥à¤Ÿà¤œà¤¾à¤ªà¤¨à¥€à¤¸à¥à¤œà¤¾à¤µ" + - "नीसà¥à¤œà¤¾à¤°à¥à¤œà¤¿à¤¯à¤¨à¥à¤•à¤œà¤¼à¤–à¥à¤—à¥à¤°à¥€à¤¨à¤²à¤¾à¤¨à¥à¤¡à¤¿à¤•à¤•à¤‚बोडियनकनà¥à¤¨à¤¡à¤¾à¤•à¥‹à¤°à¤¿à¤¯à¤¨à¥à¤•à¤¶à¥à¤®à¥€à¤°à¥€à¤•à¥à¤°à¥à¤¦à¤¿à¤·à¤•" + - "िरà¥à¤—िज़लाटिनलिंगालालाओतियनà¥à¤²à¤¿à¤¥à¥à¤†à¤¨à¤¿à¤¯à¤¨à¥à¤²à¤¾à¤Ÿà¥à¤µà¤¿à¤¯à¤¨à¥ (लेटà¥à¤Ÿà¤¿à¤·à¥)मलागसीमाओ" + - "रीमसीडोनियनà¥à¤®à¤³à¤¿à¤¯à¤¾à¤³à¤®à¤®à¤‚गोलियनà¥à¤®à¤°à¤¾à¤ à¥€à¤®à¤²à¤¯à¤®à¤¾à¤²à¤¤à¥€à¤¸à¥à¤¬à¤°à¥à¤®à¥€à¤œà¤¼à¥à¤¨à¥Œà¤°à¥‹à¤¨à¥‡à¤ªà¤¾à¤³à¥€à¤¡à¤šà¥à¤¨à¥‹" + - "रà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨à¤“सिटानà¥à¤“रोमो (अफान)ओरियापंजाबीपोलिषपाषà¥à¤Ÿà¥‹ (पà¥à¤·à¥à¤Ÿà¥‹)पोरà¥à¤šà¥à¤—ी" + - "ज़à¥à¤•à¥à¤µà¥‡à¤šà¥à¤µà¤¾à¤°à¤¹à¤Ÿà¥‹-रोमानà¥à¤¸à¥à¤•à¤¿à¤°à¥à¤¨à¥à¤¦à¥€à¤°à¥‹à¤®à¤¾à¤¨à¤¿à¤¯à¤¨à¥à¤°à¤·à¥à¤¯à¤¨à¥à¤•à¤¿à¤¨à¥à¤¯à¤¾à¤°à¥à¤µà¤¾à¤¨à¥à¤¡à¤¾à¤¸à¤‚सà¥à¤•" + - "ृतसिंधीसांगà¥à¤°à¥‹à¤¸à¤¿à¤¨à¥à¤¹à¤²à¥€à¤¸à¥à¤¸à¥à¤²à¥‹à¤µà¤¾à¤•à¤¸à¥à¤²à¥‹à¤µà¥‡à¤¨à¤¿à¤¯à¤¨à¥à¤¸à¤®à¥‹à¤¨à¤¶à¥‹à¤¨à¤¾à¤¸à¥‹à¤®à¤¾à¤³à¥€à¤†à¤²à¥à¤¬à¥‡à¤¨à¤¿à¤¯à¤¨à¥à¤¸" + - "ेरà¥à¤¬à¤¿à¤¯à¤¨à¥à¤¸à¤¿à¤¸à¥à¤µà¤¾à¤¤à¥€à¤¸à¥‡à¤¸à¥‹à¤¥à¥‹à¤¸à¥à¤‚दनीससà¥à¤µà¥€à¤¦à¥€à¤·à¤¸à¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤¤à¤®à¤¿à¤³à¤¤à¥‡à¤²à¥à¤—ूतजिकथाईतिगà¥à¤°" + - "िनà¥à¤¯à¤¾à¤¤à¥à¤°à¥à¤•à¤®à¤¨à¤¸à¥‡à¤¤à¥à¤¸à¥à¤µà¤¾à¤¨à¤¾à¤¤à¥‹à¤‚गातà¥à¤°à¥à¤•à¤¿à¤·à¤¤à¥à¤¸à¥‹à¤—ातटारउधूरयà¥à¤•à¥à¤°à¥‡à¤¨à¤¿à¤¯à¤¨à¥à¤‰à¤°à¥à¤¦à¥‚उज" + - "़बेकवियतà¥à¤¨à¤¾à¤®à¥€à¤œà¤¼à¤“लापà¥à¤•à¤‰à¤²à¥‹à¤«à¤¼à¤à¤¼à¥Œà¤¸à¤¾à¤‡à¤¦à¥à¤¦à¤¿à¤·à¥à¤¯à¥‚रà¥à¤¬à¤¾à¤à¥à¤¹à¥à¤¨à¥à¤—चीनीसà¥à¤œà¥à¤²à¥‚तगालो" + - "गकोंकणीमोलà¥à¤¡à¤¾à¤µà¤¿à¤¯à¤¨à¥à¤¸à¥‡à¤°à¥à¤¬à¥‹-कà¥à¤°à¥‹à¤¯à¥‡à¤·à¤¿à¤¯à¤¨à¥", - []uint16{ // 603 elements - // Entry 0 - 3F - 0x0000, 0x000c, 0x0027, 0x0027, 0x0045, 0x0051, 0x0069, 0x0069, - 0x007e, 0x008d, 0x008d, 0x0099, 0x00b7, 0x00c9, 0x00ea, 0x0105, - 0x0117, 0x0117, 0x0129, 0x0141, 0x0153, 0x0153, 0x0162, 0x0162, - 0x0162, 0x017a, 0x017a, 0x0189, 0x0189, 0x0189, 0x019b, 0x01aa, - 0x01b9, 0x01b9, 0x01cb, 0x01cb, 0x01dd, 0x01ec, 0x020a, 0x021f, - 0x023d, 0x024c, 0x0264, 0x0264, 0x027c, 0x0288, 0x029a, 0x02af, - 0x02ca, 0x02d6, 0x02fe, 0x0316, 0x0328, 0x033d, 0x033d, 0x0349, - 0x035b, 0x036d, 0x036d, 0x038e, 0x038e, 0x03a9, 0x03c7, 0x03c7, - // Entry 40 - 7F - 0x03eb, 0x040c, 0x042a, 0x042a, 0x042a, 0x0445, 0x0445, 0x0466, - 0x047b, 0x0496, 0x04ab, 0x04c0, 0x04db, 0x04db, 0x04db, 0x04db, - 0x04ea, 0x050e, 0x0526, 0x0538, 0x054d, 0x054d, 0x0562, 0x0577, - 0x0577, 0x0577, 0x058f, 0x059e, 0x059e, 0x059e, 0x059e, 0x05b3, - 0x05cb, 0x05e9, 0x05e9, 0x061f, 0x0631, 0x0631, 0x0640, 0x065e, - 0x0673, 0x068e, 0x069d, 0x06a6, 0x06bb, 0x06d3, 0x06df, 0x06df, - 0x06f1, 0x06f1, 0x06fa, 0x06fa, 0x0718, 0x0718, 0x0718, 0x0718, - 0x072d, 0x072d, 0x074b, 0x075a, 0x075a, 0x076c, 0x076c, 0x077b, - // Entry 80 - BF - 0x07a2, 0x07c3, 0x07db, 0x0800, 0x0818, 0x0833, 0x0845, 0x086f, - 0x0884, 0x0884, 0x0893, 0x0893, 0x08a8, 0x08c3, 0x08d8, 0x08f9, - 0x0905, 0x0911, 0x0923, 0x0941, 0x095c, 0x0974, 0x0986, 0x099b, - 0x09b0, 0x09c8, 0x09d4, 0x09e6, 0x09f2, 0x09fb, 0x0a19, 0x0a2e, - 0x0a4c, 0x0a5b, 0x0a70, 0x0a82, 0x0a8e, 0x0a8e, 0x0a9a, 0x0abb, - 0x0aca, 0x0adc, 0x0adc, 0x0afd, 0x0b0f, 0x0b0f, 0x0b1e, 0x0b2d, - 0x0b42, 0x0b54, 0x0b69, 0x0b7b, 0x0b87, 0x0b87, 0x0b87, 0x0b87, - 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, - // Entry C0 - FF - 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, - 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, - 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, - 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, - 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, - 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, - 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, - 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, - // Entry 100 - 13F - 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, - 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, - 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, - 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b99, - 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, - 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, - 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, - 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, - // Entry 140 - 17F - 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, - 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, - 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, - 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, - 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, - 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - // Entry 180 - 1BF - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - // Entry 1C0 - 1FF - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - // Entry 200 - 23F - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - // Entry 240 - 27F - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, - 0x0bab, 0x0bcc, 0x0c00, - }, - }, - { // ks - "اَÙاراَبخازÙیاناَویستَناَÙریٖکانٛزاَکاناَمÛاریاَراگونیعربیاسٲمÛاَوارÙکای" + - "مارااَزَربیجانیبَشکیٖربیلَروٗشیَنبینابÙسلامابَمبارابَنٛگٲلÛتÙبتیبری" + - "ٹَنبوسنÙیَنکَتلانچیچَنکَموروکارسÙکَنکریچیٚکچٔرچ سلاوÙÚ©Ú†Ùواشویٚلشڈین" + - "ÙشجٔرمَندÙÙˆÛŒÛیزونٛگکھاایٖویوٗنٲنیاَنٛگیٖزÛایٚسپَرینٹوسپینÙشایٚسٹونی" + - "َنباسکÙارسیÙÙلاÛÙÙÙ†ÙØ´ÙÙجیَنÙَروسÙریٚنچمغربی ÙرÙشیَناَیرÙشسکوٹÙØ´ گیے" + - "Ù„ÙکگیلÙØ´ÙیَنگÙوارَنیگÙجرٲتیمینٛکسÛاوساعبرٲنÛÛÙندیÛÙری موتوٗکروشÙیَن" + - "ÛیتÙیاںÛَنٛگیریَناَرمینیَنÛیٚریٖرواÙنٹَرلÙنٛگوااÙنڈونیشیااÙنٹَر Ù„ÙÙ†" + - "ٛنگویےاÙگبوسÙچوان یٖیاÙÙ†ÙÙ¾ÙیاکاÙڈوآیÙسلینڈÙکاÙٹیلیَناÙÙ†ÙکتÙتوٗجاپٲن" + - "ÛجَوَنیٖزجارجÙیَنکونٛگوکÙÚ©ÙیوٗکÙوانیاماکازَخکَلالÙسÙتخَمیرکَنَڑکوری" + - "َنکَنوٗریکٲشÙرکÙردÙشکومیکورنÙØ´Ú©ÙرگÙزلاتیٖنیلÙکھزیمبورگÙشگاندالÙمبٔر" + - "Ú¯ÙشلÙنگالالاولÙتھوانÙیَنلوÙبا کَتَنٛگالَتوÙیَنمَلاگَسیمارشَلیٖزماور" + - "یمیکَڈونیَنمٔلیالَممَنٛگولیمَرٲٹھÛمَلَےمَلتیٖسبٔمیٖزناورÙØ´Ùمال ڈَبی" + - "لنیٚپٲلÛڈونٛگاڈَچناروییَن Ù†ÙŽÛ’ نورسکناروییَن بوکمالجنوب ڈیٚبیلنَواجو" + - "Ù†ÙیَنجااوکسیٖٹَناوجÙبوااوٚرومواوٚرÙیااوٚسیٚٹÙکپَنجٲبÛپالیپالÙشپَشتو" + - "ٗپÙرتَگیٖزکÙویشÙوارومانشرÙندیرومٲنیروٗسیکÙنیاوÙنداسَنسکرٕتسراڈیٖنیس" + - "ÙندیشÙمٲلی سَمیسَنگوسÙÙ†ÛالاسلووَکسلووینیَنسَمواَنشوناسومٲلیالبانÙیَ" + - "نسٔربÙیَنسواتیجنوبی ستھوسَنڈَنیٖزسویٖڈÙشسواÛÙلیتَمÙلتیلگوٗتاجÙکتھاے" + - "Ù¹ÙگرÙنیاتÙرکمینسواناٹونٛگاتÙرکÙشژونٛگاتَتارتاÛیشÙیَنیوٗکرینیٲییاÙرد" + - "وٗاÙزبیکوینداوÙیَتنَمیٖزوولَپÙکوَلوٗنوولوÙکھوسایÙدÙشیورÙبازÙÛانٛگچی" + - "ٖنیزÙلوٗاَچَےنیٖزاَکولیاَدَنٛگمیےاَدَیٖگیےاَÙرÙÛÙلیاینوٗاَکادÙیَناَ" + - "لویتیجنوٗبی اَلتاییپرون اَنٛگریٖزیاَنٛگÙکااَرَمیکایرو کونÙیَناَراپا" + - "ÛواَراوَکایسٹوٗریَناَوَدیبَلوٗچیبالÙنیٖزباسابیجابیٚمبابوجپوٗریبÙکول" + - "بÙنیسÙکسÙکابرٛجبÙرÙیَتبَگنیٖزبٕلÙنکاڈوکارÙباتسَمسیباونوچیٖبچاچھَگتا" + - "Û’Ú†ÙکیٖزماریچÙنوٗک جارگَنچوکتَوشیپویانچیٚروکیشییونکاپٹÙککرٕمیٖن تÙرک" + - "یکَشوٗبÙیَنڈکوٹادَرگواڈیٚلوییَرسلیوڈاگرÙبڈÙنکاڈوگریبوٚنÙÙ… ساربÙیَند" + - "Ùوالاوَستی Ù¾ÙرتÙگالیڈÙیوٗلاایٚÙÙکقدیٖمی Ù…ÙصریایٚکاجÙکایٚلامایÙٹوَسط" + - "ÛŒ اَنٛگریٖزÛایٚوونڈوÙینٛگÙÙÙ„ÙپیٖنوÙونوسطی Ùریٚنچپرون ÙریٚنچشÙمٲلی Ù" + - "رÙشیَنمشرÙÙ‚ÛŒ ÙرÙشیَنÙروٗلÙیَنگاگیےیوگبایاگیٖزگÙلبٔرٹیٖزوَسطی Ûاے جٔ" + - "رمَنپرون Ûاے جٔرمَنگوندیگورینٹیلوگوتھÙکگرÙبوقدیٖم یوٗنٲنیسٕوÙس جٔرم" + - "ÙŽÙ†Ú¯ÙÙˆÙÚ† اÙÙ†ÛَیداÛوایÙیَنÛÙلیٖگینَنÛÙتایÙتÛمونٛگÛیٚرÙÙ… ساربÙیَنÛÙپاا" + - "ÙباناÙلوکواÙÙ†Ù›Ú¯Ùشلوجبانجوڈیو Ùارسیجوڈیو عربیکارا کَلپَککَبایÙلکاچÙÙ†" + - "جÙوٗکامباکَویکَبارڈÙیَنتَیَپکوروکھاسیکھوتَنیٖزکÙمبÙندوٗکونکَنیکوسری" + - "یَنکَپیلیکراچیے بَلکارکَریلÙیَنکÙرÙÚ©Ú¾Ú©ÙÙ…ÙÚ©Ú©ÙتینَےلیڈÙنولَÛَندالَمبا" + - "لیزگÙیَنمونٛگولوزیلوٗبا لوٗلÙوالویÙسینولÙندالÙوولÙسÛاےمَدÙریٖزمَگاے" + - "میتَھلیمَکَسارمَندÙنٛگومَساےموکشامَندَرمیندیےوَستی ایرÙشمÙکمیکمÙÙ†ÙŽÙ†" + - "ٛگکَباومانٛچوٗمَنیپوٗریموÛØ§Ú©Ù…ÙˆØ³ÛŒÙˆØ§Ø±ÛŒØ§Û Ø²Ø¨Ø§Ù†Ú©Ø±ÛŒÙ–Ú©Ù…Ùراندیٖزمارواڑیایٚ" + - "رزÙیانیٖپالیٹَنبوٚنÙÙ… جٔرمَننیٚوارینÙیاسنÙیویَننوگاےپرون نارسیایٚن " + - "کوشمالی ستھوکلاسÙÚ©ÙŽÙ„ نیوارینÙیَمویٚزینÙیَنکولنÙیورونَظیٖمااوٚسیجاوٹ" + - "ومَن تÙرکÙشپَنٛگاسÙنَنپَÛلَویپَمپَنٛگاپَپÙیامیٚنٹوپَلااÙواںپرون Ùار" + - "سیÙونیٖشیَنپانپیٚیَنپرون پروویٚنچَلراجÙستھٲنÛرَپانویرَروٹونٛگَنرومَ" + - "نیاَرومانیسَندَویےیاکÙتسَمارÙتَن اَرامیکسَسَکسَنتالیسÙÚ†ÙÙ„Ùیَنسکاٹسس" + - "یٚلکÙپپرون ایرÙششانسÙداموجنوٗبی سَمیلولیے سَمیاÙناری سَمیسکولٹ سَمی" + - "سونÙنکیےسوگڈÙیَنسرٛانَن ٹونٛگوسیٚریرسÙÚ©ÙماسÙسوٗسÙمیریَنسیٖریٲییٹÙمن" + - "یےٹیٚریٚنوٹیٹَمٹاےگریےتیٖوٹوکیٖلاوکÙÙ„ÙنگونٹÙÙ„ÙÙ†Ú¯Ùتتاماشیکنیاسا ٹونٛ" + - "گاٹاک Ù¾ÙسÙÙ†Ú˜Ú¾ÙمشÙیانتÙمبÙکاتÙوالوٗتÙویٖنیَناÙدمÙرتاÙگارتÙÚ©ÛŒÙمبÙندوٗ" + - "روٗٹواےووتÙکوالامووَریےواشوکالمÙکیاویَپیٖززَپوتیٚکزیناگازوٗنیکانٛÛÛ" + - " تÛÙ Ù„Ùسانیاتی مواد Ù†ÛٕزازاآسٹرÙیَن جٔرمَنسٕوÙس Ûاےجٔرمَنآسٹریلیَن ا" + - "َنٛگریٖزÛکینَڈÙیٲیی اَنٛگریٖزÛبَرطانوی اَنٛگریٖزÛیوٗ ایٚس اَنٛگریٖز" + - "Ûلیٹٕن امریٖکی سپینÙشلÙبیریَن سپینÙشکَنیڈیَن Ùریٚنچسٕوٕس ÙریٚنچÙلیٚ" + - "Ù…Ùشبرازیٖلی Ù¾ÙتَگیٖزلÙبیریَن Ù¾ÙرتَگیٖزمولداوÙیَنسیٚربو کروشÙیَنسیٚو" + - "د چیٖنیرÙوٲجی چیٖنی", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x000a, 0x001e, 0x002e, 0x0044, 0x004e, 0x005c, 0x006c, - 0x0074, 0x007e, 0x008c, 0x0098, 0x00ae, 0x00bc, 0x00d2, 0x00da, - 0x00e8, 0x00f6, 0x0106, 0x0110, 0x011c, 0x012c, 0x0138, 0x0142, - 0x014e, 0x015e, 0x0164, 0x016c, 0x0181, 0x018b, 0x0195, 0x019f, - 0x01ab, 0x01b7, 0x01c7, 0x01cf, 0x01dd, 0x01ef, 0x0205, 0x0211, - 0x0225, 0x022d, 0x0237, 0x0241, 0x024b, 0x0257, 0x0261, 0x026d, - 0x0286, 0x0292, 0x02ab, 0x02bd, 0x02cd, 0x02db, 0x02e7, 0x02f1, - 0x02fd, 0x0307, 0x031a, 0x032a, 0x0338, 0x034c, 0x035e, 0x036e, - // Entry 40 - 7F - 0x0388, 0x039c, 0x03bb, 0x03c5, 0x03d8, 0x03ea, 0x03f2, 0x0406, - 0x0416, 0x042a, 0x0436, 0x0446, 0x0456, 0x0462, 0x0470, 0x0482, - 0x048c, 0x049e, 0x04a8, 0x04b2, 0x04be, 0x04cc, 0x04d6, 0x04e2, - 0x04ea, 0x04f6, 0x0502, 0x0510, 0x052a, 0x0534, 0x0546, 0x0554, - 0x055a, 0x0570, 0x058b, 0x059b, 0x05ab, 0x05bd, 0x05c7, 0x05db, - 0x05eb, 0x05fb, 0x0609, 0x0613, 0x0621, 0x062d, 0x0637, 0x064c, - 0x065a, 0x0666, 0x066c, 0x068e, 0x06ab, 0x06c0, 0x06cc, 0x06da, - 0x06ec, 0x06fa, 0x0708, 0x0716, 0x0728, 0x0736, 0x073e, 0x0748, - // Entry 80 - BF - 0x0754, 0x0766, 0x0776, 0x0782, 0x078c, 0x0798, 0x07a2, 0x07b6, - 0x07c6, 0x07d6, 0x07e0, 0x07f5, 0x07ff, 0x080d, 0x0819, 0x082b, - 0x0839, 0x0841, 0x084d, 0x085f, 0x086f, 0x0879, 0x088c, 0x089e, - 0x08ac, 0x08ba, 0x08c4, 0x08d0, 0x08da, 0x08e2, 0x08f2, 0x0900, - 0x090a, 0x0916, 0x0922, 0x092e, 0x0938, 0x094a, 0x094a, 0x0960, - 0x096c, 0x0978, 0x0982, 0x0998, 0x09a6, 0x09b2, 0x09bc, 0x09c6, - 0x09d0, 0x09dc, 0x09ea, 0x09f4, 0x09fe, 0x0a10, 0x0a1c, 0x0a30, - 0x0a42, 0x0a42, 0x0a54, 0x0a54, 0x0a5e, 0x0a70, 0x0a70, 0x0a7e, - // Entry C0 - FF - 0x0a7e, 0x0a99, 0x0ab6, 0x0ac6, 0x0ad4, 0x0aeb, 0x0aeb, 0x0afb, - 0x0afb, 0x0b09, 0x0b09, 0x0b09, 0x0b09, 0x0b09, 0x0b1d, 0x0b1d, - 0x0b29, 0x0b29, 0x0b37, 0x0b47, 0x0b47, 0x0b4f, 0x0b4f, 0x0b4f, - 0x0b4f, 0x0b57, 0x0b63, 0x0b63, 0x0b63, 0x0b63, 0x0b63, 0x0b73, - 0x0b7d, 0x0b85, 0x0b85, 0x0b85, 0x0b93, 0x0b93, 0x0b93, 0x0b9b, - 0x0b9b, 0x0b9b, 0x0b9b, 0x0ba9, 0x0bb7, 0x0bb7, 0x0bc1, 0x0bc1, - 0x0bc9, 0x0bd3, 0x0bd3, 0x0bdd, 0x0beb, 0x0beb, 0x0bf7, 0x0c05, - 0x0c11, 0x0c19, 0x0c32, 0x0c3e, 0x0c4c, 0x0c5a, 0x0c64, 0x0c64, - // Entry 100 - 13F - 0x0c70, 0x0c70, 0x0c89, 0x0c9d, 0x0ca7, 0x0cb3, 0x0cb3, 0x0cc5, - 0x0ccd, 0x0cd9, 0x0ce3, 0x0ce3, 0x0ced, 0x0d0a, 0x0d0a, 0x0d16, - 0x0d33, 0x0d33, 0x0d41, 0x0d41, 0x0d41, 0x0d4d, 0x0d4d, 0x0d64, - 0x0d74, 0x0d88, 0x0da7, 0x0da7, 0x0db7, 0x0db7, 0x0dc1, 0x0dd3, - 0x0dd3, 0x0dd9, 0x0dd9, 0x0dee, 0x0e03, 0x0e03, 0x0e1e, 0x0e39, - 0x0e4b, 0x0e4f, 0x0e4f, 0x0e4f, 0x0e59, 0x0e63, 0x0e63, 0x0e6b, - 0x0e7f, 0x0e7f, 0x0e9d, 0x0eb9, 0x0eb9, 0x0ec3, 0x0ed5, 0x0ee1, - 0x0eeb, 0x0f04, 0x0f1b, 0x0f1b, 0x0f1b, 0x0f1b, 0x0f2c, 0x0f36, - // Entry 140 - 17F - 0x0f36, 0x0f46, 0x0f46, 0x0f5a, 0x0f68, 0x0f74, 0x0f91, 0x0f91, - 0x0f99, 0x0fa3, 0x0fa3, 0x0faf, 0x0fbd, 0x0fbd, 0x0fbd, 0x0fc9, - 0x0fc9, 0x0fc9, 0x0fde, 0x0ff1, 0x0ff1, 0x1006, 0x1014, 0x101e, - 0x1026, 0x1030, 0x1038, 0x104c, 0x104c, 0x1056, 0x1056, 0x1056, - 0x1056, 0x105e, 0x105e, 0x1068, 0x107a, 0x107a, 0x107a, 0x107a, - 0x107a, 0x107a, 0x108c, 0x108c, 0x109a, 0x10aa, 0x10b6, 0x10cf, - 0x10cf, 0x10cf, 0x10e1, 0x10ed, 0x10ed, 0x10ed, 0x10ed, 0x10f7, - 0x1105, 0x1111, 0x1111, 0x111f, 0x1129, 0x1139, 0x1139, 0x1139, - // Entry 180 - 1BF - 0x1139, 0x1139, 0x1139, 0x1145, 0x114d, 0x114d, 0x1166, 0x1176, - 0x1180, 0x1188, 0x1194, 0x1194, 0x1194, 0x1194, 0x11a4, 0x11a4, - 0x11ae, 0x11bc, 0x11ca, 0x11dc, 0x11e6, 0x11e6, 0x11f0, 0x11fc, - 0x1208, 0x1208, 0x1208, 0x121d, 0x121d, 0x121d, 0x1229, 0x1241, - 0x124f, 0x1261, 0x126b, 0x1273, 0x1273, 0x1273, 0x1288, 0x1292, - 0x12a4, 0x12b2, 0x12b2, 0x12b2, 0x12c2, 0x12c2, 0x12c2, 0x12d6, - 0x12d6, 0x12ef, 0x12fd, 0x1307, 0x1315, 0x1315, 0x1315, 0x1315, - 0x131f, 0x1332, 0x1332, 0x133f, 0x1352, 0x1352, 0x136f, 0x1383, - // Entry 1C0 - 1FF - 0x1393, 0x139f, 0x13ad, 0x13b9, 0x13d4, 0x13ea, 0x13f8, 0x140a, - 0x1422, 0x1434, 0x1434, 0x1434, 0x1434, 0x1447, 0x1447, 0x1459, - 0x1459, 0x1459, 0x146b, 0x146b, 0x1488, 0x1488, 0x1488, 0x149c, - 0x14aa, 0x14c0, 0x14c0, 0x14c0, 0x14c0, 0x14cc, 0x14cc, 0x14cc, - 0x14cc, 0x14dc, 0x14dc, 0x14ec, 0x14f6, 0x1517, 0x1517, 0x1521, - 0x152f, 0x152f, 0x152f, 0x152f, 0x1541, 0x154b, 0x154b, 0x154b, - 0x154b, 0x154b, 0x1559, 0x1559, 0x156c, 0x156c, 0x156c, 0x1572, - 0x1572, 0x157e, 0x157e, 0x157e, 0x1593, 0x15a6, 0x15bb, 0x15ce, - // Entry 200 - 23F - 0x15de, 0x15ee, 0x1609, 0x1615, 0x1615, 0x1615, 0x1621, 0x162b, - 0x163b, 0x163b, 0x163b, 0x163b, 0x164b, 0x164b, 0x164b, 0x1657, - 0x1657, 0x1667, 0x1671, 0x167f, 0x1687, 0x1697, 0x1697, 0x16a7, - 0x16b7, 0x16b7, 0x16c5, 0x16dc, 0x16ed, 0x16ed, 0x16ed, 0x16ed, - 0x16ff, 0x16ff, 0x170d, 0x171b, 0x171b, 0x172d, 0x172d, 0x173b, - 0x174b, 0x175d, 0x1765, 0x176b, 0x176b, 0x176b, 0x176b, 0x176b, - 0x1775, 0x1775, 0x1775, 0x1775, 0x1781, 0x178b, 0x1793, 0x1793, - 0x1793, 0x179f, 0x179f, 0x179f, 0x17a5, 0x17b1, 0x17b1, 0x17b1, - // Entry 240 - 27F - 0x17b1, 0x17b1, 0x17c1, 0x17c1, 0x17c1, 0x17cd, 0x17cd, 0x17d7, - 0x180d, 0x1815, 0x1815, 0x1832, 0x184f, 0x1876, 0x189f, 0x18c4, - 0x18e8, 0x190e, 0x192b, 0x192b, 0x1948, 0x195f, 0x196d, 0x198e, - 0x19b1, 0x19c5, 0x19e2, 0x19f7, 0x1a0e, - }, - }, - { // ksb - "KiakanKiamhaliKialabuKibelaausiKibulgaliaKibanglaKicheckiKijeumaniKigiik" + - "iKiingeezaKihispaniaKiajemiKifalansaKihausaKihindiKihungaiKiindonesi" + - "aKiigboKiitalianoKijapaniKijavaKikambodiaKikoleaKimalesiaKibulmaKine" + - "paliKiholanziKipunjabiKipolandiKilenoKiomaniaKilusiKinyalwandaKisoma" + - "liKiswidiKitamilKitailandiKituukiKiuklaniaKiulduKivietinamuKiyolubaK" + - "ichinaKizuluKishambaa", - []uint16{ // 373 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, - 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, - 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0042, 0x0042, 0x0042, 0x0042, 0x0049, 0x0052, 0x0052, 0x005c, - 0x005c, 0x005c, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x006c, - 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x0073, - 0x0073, 0x007a, 0x007a, 0x007a, 0x007a, 0x0082, 0x0082, 0x0082, - // Entry 40 - 7F - 0x0082, 0x008d, 0x008d, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, - 0x009d, 0x009d, 0x00a5, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, - 0x00ab, 0x00ab, 0x00b5, 0x00b5, 0x00bc, 0x00bc, 0x00bc, 0x00bc, - 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, - 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, - 0x00bc, 0x00bc, 0x00bc, 0x00c5, 0x00c5, 0x00cc, 0x00cc, 0x00cc, - 0x00d4, 0x00d4, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, - 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00e6, 0x00e6, 0x00ef, - // Entry 80 - BF - 0x00ef, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00fd, 0x0103, 0x010e, - 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, - 0x010e, 0x010e, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, - 0x011d, 0x011d, 0x0124, 0x0124, 0x0124, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x013e, - 0x0144, 0x0144, 0x0144, 0x014f, 0x014f, 0x014f, 0x014f, 0x014f, - 0x014f, 0x0157, 0x0157, 0x015e, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - // Entry C0 - FF - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - // Entry 100 - 13F - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - // Entry 140 - 17F - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x016d, - }, - }, - { // ksf - "riakanriamarikriarabribÉ›lÉ”rísribulgaríribÉ›ngáliricÉ›ÌkridjÉ›rmanrigrÉ›Ìkrii" + - "ngÉ›rísrikpanyáripÉ›rsánripÉ›rÉ›sÇÌrikaksariíndíriÉ”ngrɔáriindonÉ›síriigbo" + - "riitalyÉ›ÌnrijapÉ”ÌÅ‹rijawanÉ›ÌrikmÉ›rrikÉ”rɛɛÌrimalaíribirmánrinepalÉ›ÌriÉ”" + - "lándÉ›ÌripÉ›njabíripÉ”lÉ”ÌnripÉ”rtugÉ›ÌrirÉ”mánrirísrirwandarisomalíriswÉ›Ìd" + - "ÇritamúlritaíriturkriukrÉ›ÌnriurdúriwyÉ›tnámriyúubaricinɔárizúlurikpa", - []uint16{ // 374 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0020, 0x002a, - 0x002a, 0x002a, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, - 0x0047, 0x0047, 0x0047, 0x0047, 0x0050, 0x005b, 0x005b, 0x0064, - 0x0064, 0x0064, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x007b, - 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x0082, - 0x0082, 0x008a, 0x008a, 0x008a, 0x008a, 0x0095, 0x0095, 0x0095, - // Entry 40 - 7F - 0x0095, 0x00a1, 0x00a1, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, - 0x00b3, 0x00b3, 0x00be, 0x00c9, 0x00c9, 0x00c9, 0x00c9, 0x00c9, - 0x00c9, 0x00c9, 0x00d0, 0x00d0, 0x00dc, 0x00dc, 0x00dc, 0x00dc, - 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, - 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, - 0x00dc, 0x00dc, 0x00dc, 0x00e4, 0x00e4, 0x00ed, 0x00ed, 0x00ed, - 0x00f8, 0x00f8, 0x0105, 0x0105, 0x0105, 0x0105, 0x0105, 0x0105, - 0x0105, 0x0105, 0x0105, 0x0105, 0x0105, 0x0110, 0x0110, 0x011b, - // Entry 80 - BF - 0x011b, 0x0128, 0x0128, 0x0128, 0x0128, 0x0131, 0x0137, 0x013f, - 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, - 0x013f, 0x013f, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, - 0x0153, 0x0153, 0x015b, 0x015b, 0x015b, 0x0161, 0x0161, 0x0161, - 0x0161, 0x0161, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0171, - 0x0178, 0x0178, 0x0178, 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, - 0x0183, 0x018b, 0x018b, 0x0194, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - // Entry C0 - FF - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - // Entry 100 - 13F - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - // Entry 140 - 17F - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, - 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x01a0, - }, - }, - { // ksh - "AfahreschAbchahseschAvästahneschAfrikaansAkahneschAmhahreschArrajonehses" + - "chArahbeschAßamehseschAvahreschAimahreschAsserbaidschahneschBaschkih" + - "reschWiißrußeschBulljaareschBambaraBängjaaleschTibehteschBettohnesch" + - "BoßneschKattalahneschKorseschTschäscheschKerscheßlahweschTschowasche" + - "schWallihseschDähneschDeutschDivehjeschButahneschEweJrihscheschÄngle" + - "schEsperantoSchpahneschÄßneschBaskeschPärseschFinneschFidscheschFärr" + - "öereschFranzüüseschWäßfriiseschIereschJalliizeschJuwaraaneschGutsch" + - "arateschHaußaHebräjeschHindiKrowateschHa’iiteschUnjarreschArmeenesch" + - "IndoneeseschIgboIdoIßländeschEtalljäneschInuktitutJapaaneschJavahnes" + - "chJe’orjeschKassakeschKhmerKannadaKorrejaaneschKaschmiereschKurdesch" + - "KirjihseschLateijneschLuxemborjeschLingjallaLahooteschLittoueschLätt" + - "eschMadajaßkeschMaahoriMazedooneschMallajalamMongjoleschMarraateschM" + - "allaijeschMalteeseschBurmesseschNood-NdebeleNepallesseschHolländesch" + - "Neu-NorrweejeschNorrweejesch BokmÃ¥lSchi-SchewaOriijaOßeeteschPanscha" + - "abeschPollneschPaschtuuneschPochtojeseschKättschowaRätoromaaneschK-R" + - "undeschRumäneschRußßeschKinja-RuandeschSanskritSinndiNood-Lappländes" + - "chSangjoSingjaleeseschẞlovakeschẞloveeneschSammohaneschSchi-SchonaSo" + - "maaleschAlbaaneschSärbeschSi-SwateschSöd-SootoSindaneeseschSchweedes" + - "chSuaheeleschTamiileschTelluujuTadschiikeschTailändeschTijrenejaanes" + - "chTörkmeeneschSe-ZwaaneschTongjaaneschTörkeschXi-ZongjaneschTattaare" + - "schTahiteschUj’juuerschUkraineschUrdu/HindiUßbeekeschWendaVijätnamme" + - "eseschWoloffIsi-KhoosaJoruubaSchineeseschSuuluAschenehseschTonehsesc" + - "h ArahbeschAfrehihleschAkahdeschAle’uhteschAhl ÄngleschAljehresch Ar" + - "ahbeschMarokahnesch ArahbeschÄjiptesch ArahbeschPareAmärrekahnesche " + - "BlendeschprohchAstuhrejahneschSödasserbaidschahneschBeluhtscheschBal" + - "inehseschBaireschBembaBenaBischnuprejahneschBrajeschBrahuijeschBoddo" + - "BurejahteschBujinehseschKopteschKaschuhbeschNiddersorbeschMeddelnehd" + - "erlängschDassajahneschEmbuEfikEmilijahneschAhl ÄjipteschMeddelängles" + - "chZätrahl-JupikfilSchwitzerdütschHauajaaneschEngjuscheschIngjrijahne" + - "schJamaikahnesch-ÄngleschLodschbahnJühdesch-PärseschJüteschKapvärdes" + - "chKölschde Landa-SchproocheLuyjanesch-ongerscheidlijje Schprooche-No" + - "od-SootoKiromboJackuteschKommooreschTetumschTook Pisin-onbikannte-Sc" + - "hprooch-WalserdütschKanton-Schineeseschkein SchproochSchtandatt Arah" + - "beschDeutsch uß ÖßterichDeutsch uß de SchweijzÄnglesch uß Außtraalij" + - "eÄnglesch uß KanadaÄnglesch uß JruußbrettannijeAmärrekaanesch Ängles" + - "chSchpaanesch uß Latting-AmmärrikaSchpahnesch en SchpahnejeSchpahnes" + - "ch en MäxikohFranzüüsesch uß KanadaFranzüüsesch uß de SchweijzFlämes" + - "chBrasilljaanesch PochtojeseschPochtojesesch uß PochtojallSärbokowat" + - "eschSchineesesch en de eijfacher SchreffSchineesesch en de tradizjon" + - "älle Schreff", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0009, 0x0014, 0x0021, 0x002a, 0x0033, 0x003d, 0x004b, - 0x0054, 0x0060, 0x0069, 0x0073, 0x0086, 0x0093, 0x00a0, 0x00ac, - 0x00ac, 0x00b3, 0x00c0, 0x00ca, 0x00d5, 0x00de, 0x00eb, 0x00eb, - 0x00eb, 0x00f3, 0x00f3, 0x0100, 0x0111, 0x011f, 0x012a, 0x0133, - 0x013a, 0x0144, 0x014e, 0x0151, 0x015c, 0x0165, 0x016e, 0x0179, - 0x0182, 0x018a, 0x0193, 0x0193, 0x019b, 0x01a5, 0x01b2, 0x01c0, - 0x01ce, 0x01d5, 0x01d5, 0x01e0, 0x01ec, 0x01fa, 0x01fa, 0x0200, - 0x020b, 0x0210, 0x0210, 0x021a, 0x0226, 0x0230, 0x023a, 0x023a, - // Entry 40 - 7F - 0x023a, 0x0246, 0x0246, 0x024a, 0x024a, 0x024a, 0x024d, 0x0259, - 0x0266, 0x026f, 0x0279, 0x0283, 0x028f, 0x028f, 0x028f, 0x028f, - 0x0299, 0x0299, 0x029e, 0x02a5, 0x02b2, 0x02b2, 0x02bf, 0x02c7, - 0x02c7, 0x02c7, 0x02d2, 0x02dd, 0x02ea, 0x02ea, 0x02ea, 0x02f3, - 0x02fd, 0x0307, 0x0307, 0x0310, 0x031d, 0x031d, 0x0324, 0x0330, - 0x033a, 0x0345, 0x0350, 0x035b, 0x0366, 0x0371, 0x0371, 0x037d, - 0x038a, 0x038a, 0x0396, 0x03a6, 0x03ba, 0x03ba, 0x03ba, 0x03c5, - 0x03c5, 0x03c5, 0x03c5, 0x03cb, 0x03d5, 0x03e2, 0x03e2, 0x03eb, - // Entry 80 - BF - 0x03f8, 0x0405, 0x0410, 0x041f, 0x0429, 0x0433, 0x043d, 0x044c, - 0x0454, 0x0454, 0x045a, 0x046c, 0x0472, 0x0480, 0x048c, 0x0499, - 0x04a5, 0x04b0, 0x04ba, 0x04c4, 0x04cd, 0x04d8, 0x04e2, 0x04ef, - 0x04fa, 0x0505, 0x050f, 0x0517, 0x0524, 0x0530, 0x053f, 0x054c, - 0x0558, 0x0564, 0x056d, 0x057b, 0x0586, 0x058f, 0x059c, 0x05a6, - 0x05b0, 0x05bb, 0x05c0, 0x05d1, 0x05d1, 0x05d1, 0x05d7, 0x05e1, - 0x05e1, 0x05e8, 0x05e8, 0x05f4, 0x05f9, 0x0606, 0x0606, 0x0606, - 0x0606, 0x061a, 0x0626, 0x0626, 0x0626, 0x062f, 0x062f, 0x063c, - // Entry C0 - FF - 0x063c, 0x063c, 0x0649, 0x0649, 0x0649, 0x0649, 0x0649, 0x0649, - 0x065d, 0x065d, 0x0673, 0x0687, 0x068b, 0x06ab, 0x06ba, 0x06ba, - 0x06ba, 0x06d1, 0x06de, 0x06ea, 0x06f2, 0x06f2, 0x06f2, 0x06f2, - 0x06f2, 0x06f2, 0x06f7, 0x06f7, 0x06fb, 0x06fb, 0x06fb, 0x06fb, - 0x06fb, 0x06fb, 0x06fb, 0x06fb, 0x06fb, 0x070d, 0x070d, 0x0715, - 0x0720, 0x0725, 0x0725, 0x0731, 0x073d, 0x073d, 0x073d, 0x073d, - 0x073d, 0x073d, 0x073d, 0x073d, 0x073d, 0x073d, 0x073d, 0x073d, - 0x073d, 0x073d, 0x073d, 0x073d, 0x073d, 0x073d, 0x073d, 0x073d, - // Entry 100 - 13F - 0x0745, 0x0745, 0x0745, 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, - 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, 0x075f, 0x075f, 0x075f, - 0x0773, 0x0773, 0x0773, 0x0780, 0x0784, 0x0788, 0x0795, 0x07a3, - 0x07a3, 0x07a3, 0x07b2, 0x07c0, 0x07c0, 0x07c0, 0x07c0, 0x07c3, - 0x07c3, 0x07c3, 0x07c3, 0x07c3, 0x07c3, 0x07c3, 0x07c3, 0x07c3, - 0x07c3, 0x07c3, 0x07c3, 0x07c3, 0x07c3, 0x07c3, 0x07c3, 0x07c3, - 0x07c3, 0x07c3, 0x07c3, 0x07c3, 0x07c3, 0x07c3, 0x07c3, 0x07c3, - 0x07c3, 0x07c3, 0x07d3, 0x07d3, 0x07d3, 0x07d3, 0x07d3, 0x07d3, - // Entry 140 - 17F - 0x07d3, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, - 0x07df, 0x07df, 0x07df, 0x07df, 0x07eb, 0x07f9, 0x0810, 0x081a, - 0x081a, 0x081a, 0x082d, 0x082d, 0x0835, 0x0835, 0x0835, 0x0835, - 0x0835, 0x0835, 0x0835, 0x0835, 0x0835, 0x0835, 0x0835, 0x0841, - 0x0841, 0x0841, 0x0841, 0x0841, 0x0841, 0x0841, 0x0841, 0x0841, - 0x0841, 0x0841, 0x0841, 0x0841, 0x0841, 0x0841, 0x0841, 0x0841, - 0x0841, 0x0841, 0x0841, 0x0841, 0x0841, 0x0841, 0x0848, 0x0848, - 0x0848, 0x0848, 0x0848, 0x085b, 0x085b, 0x085b, 0x085b, 0x085b, - // Entry 180 - 1BF - 0x085b, 0x085b, 0x085b, 0x085b, 0x085b, 0x085b, 0x085b, 0x085b, - 0x085b, 0x085b, 0x085b, 0x0865, 0x0865, 0x0865, 0x0865, 0x0865, - 0x0865, 0x0865, 0x0865, 0x0865, 0x0865, 0x0865, 0x0865, 0x0865, - 0x0865, 0x0865, 0x0865, 0x0865, 0x0865, 0x0865, 0x0865, 0x0865, - 0x0865, 0x0865, 0x0865, 0x0865, 0x0865, 0x0865, 0x0882, 0x0882, - 0x0882, 0x0882, 0x0882, 0x0882, 0x0882, 0x0882, 0x0882, 0x0882, - 0x0882, 0x0882, 0x0882, 0x0882, 0x0882, 0x0882, 0x0882, 0x0882, - 0x0882, 0x0882, 0x0882, 0x0882, 0x088c, 0x088c, 0x088c, 0x088c, - // Entry 1C0 - 1FF - 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, - 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, - 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, - 0x088c, 0x088c, 0x088c, 0x088c, 0x0893, 0x0893, 0x0893, 0x0893, - 0x0893, 0x0893, 0x0893, 0x0893, 0x089d, 0x089d, 0x089d, 0x089d, - 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, - 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, - 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, - // Entry 200 - 23F - 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, 0x089d, - 0x089d, 0x08a8, 0x08a8, 0x08a8, 0x08a8, 0x08a8, 0x08a8, 0x08a8, - 0x08a8, 0x08a8, 0x08b0, 0x08b0, 0x08b0, 0x08b0, 0x08b0, 0x08b0, - 0x08b0, 0x08b0, 0x08b0, 0x08b0, 0x08ba, 0x08ba, 0x08ba, 0x08ba, - 0x08ba, 0x08ba, 0x08ba, 0x08ba, 0x08ba, 0x08ba, 0x08ba, 0x08ba, - 0x08ba, 0x08ba, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, - 0x08d0, 0x08d0, 0x08d0, 0x08dd, 0x08dd, 0x08dd, 0x08dd, 0x08dd, - 0x08dd, 0x08dd, 0x08dd, 0x08dd, 0x08dd, 0x08dd, 0x08dd, 0x08dd, - // Entry 240 - 27F - 0x08dd, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, - 0x08fe, 0x08fe, 0x0912, 0x0928, 0x093f, 0x0959, 0x096d, 0x098c, - 0x09a5, 0x09c7, 0x09e0, 0x09f7, 0x0a10, 0x0a2e, 0x0a37, 0x0a54, - 0x0a70, 0x0a70, 0x0a7f, 0x0aa3, 0x0acc, - }, - }, - { // kw - "kernewek", - []uint16{ // 90 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0008, - }, - }, - { // ky - kyLangStr, - kyLangIdx, - }, - { // lag - "KɨakáaniKɨmʉháariKɨaráabuKɨberalúusiKɨbulugáriaKɨbangálaKɨchéekiKɨjerʉmá" + - "aniKɨgiríkiKɨɨngeréesaKɨhispániaKɨajéemiKɨfaráansaKɨhaúusaKɨhíindiKɨ" + - "hungáriKɨɨndonésiaKiígiboKɨtaliáanoKɨjapáaniKɨjáavaKɨkambódiaKɨkoréa" + - "KɨmelésiaKɨbáamaKɨnepáaliKɨholáanziKɨpúnjabiKɨpólandiKɨréenoKɨromaní" + - "aKɨrúusiKɨnyarwáandaKɨsómáaliKɨswíidiKɨtamíiliKɨtáilandiKɨturúukiKɨu" + - "kɨraníaKɨúrduKɨvietináamuKɨyorúubaKɨchíinaKɨzúuluKɨlaangi", - []uint16{ // 379 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0016, 0x0016, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x002d, 0x003a, - 0x003a, 0x003a, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, - 0x005d, 0x005d, 0x005d, 0x005d, 0x0067, 0x0075, 0x0075, 0x0081, - 0x0081, 0x0081, 0x008b, 0x008b, 0x008b, 0x008b, 0x008b, 0x0097, - 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x00a1, - 0x00a1, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00b6, 0x00b6, 0x00b6, - // Entry 40 - 7F - 0x00b6, 0x00c4, 0x00c4, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00d8, 0x00d8, 0x00e3, 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x00ec, - 0x00ec, 0x00ec, 0x00f8, 0x00f8, 0x0101, 0x0101, 0x0101, 0x0101, - 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, - 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, - 0x0101, 0x0101, 0x0101, 0x010c, 0x010c, 0x0115, 0x0115, 0x0115, - 0x0120, 0x0120, 0x012c, 0x012c, 0x012c, 0x012c, 0x012c, 0x012c, - 0x012c, 0x012c, 0x012c, 0x012c, 0x012c, 0x0137, 0x0137, 0x0142, - // Entry 80 - BF - 0x0142, 0x014b, 0x014b, 0x014b, 0x014b, 0x0156, 0x015f, 0x016d, - 0x016d, 0x016d, 0x016d, 0x016d, 0x016d, 0x016d, 0x016d, 0x016d, - 0x016d, 0x016d, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, - 0x0183, 0x0183, 0x018e, 0x018e, 0x018e, 0x019a, 0x019a, 0x019a, - 0x019a, 0x019a, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01b2, - 0x01ba, 0x01ba, 0x01ba, 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01c8, - 0x01c8, 0x01d3, 0x01d3, 0x01dd, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - // Entry C0 - FF - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - // Entry 100 - 13F - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - // Entry 140 - 17F - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, - 0x01e6, 0x01e6, 0x01ef, - }, - }, - { // lb - "AfarAbchaseschAvesteschAfrikaansAkanAmhareschAragoneseschArabeschAssames" + - "eschAwareschAymaraAserbaidschaneschBaschkireschWäissrusseschBulgares" + - "chBislamaBambara-SproochBengaleschTibeteschBretoneschBosneschKatalan" + - "eschTschetscheneschChamorro-SproochKorseschCreeTschecheschKierchesla" + - "weschTschuwascheschWaliseschDäneschDäitschMaldiveschBhutaneschEwe-Sp" + - "roochGriicheschEngleschEsperantoSpueneschEstneschBaskeschPerseschFul" + - "FinneschFidschianeschFäröeschFranséischWestfrieseschIreschSchottesch" + - "t GälleschGalizeschGuaraniGujaratiManxHausaHebräeschHindiHiri-MotuKr" + - "oateschHaitianeschUngareschArmeneschHerero-SproochInterlinguaIndones" + - "eschInterlingueIgbo-SproochSichuan YiInupiakIdo-SproochIslänneschIta" + - "lieneschInukitutJapaneschJavaneschGeorgeschKongoleseschKikuyu-Sprooc" + - "hKwanyamaKasacheschGrönlänneschKambodschaneschKannadaKoreaneschKanur" + - "i-SproochKaschmireschKurdeschKomi-SproochKorneschKirgiseschLatäinLët" + - "zebuergeschGanda-SproochLimburgeschLingalaLaoteschLitaueschLuba-Kata" + - "ngaLetteschMalagassi-SproochMarschalleseschMaoriMazedoneschMalayalam" + - "MongoleschMarathiMalaieschMalteseschBirmaneschNaurueschNord-Ndebele-" + - "SproochNepaleseschNdongaHollänneschNorwegesch NynorskNorwegesch Bokm" + - "Ã¥lSüd-Ndebele-SproochNavajoNyanja-SproochOkzitaneschOjibwa-SproochO" + - "romoOrijaOsseteschPandschabeschPaliPolneschPaschtuPortugiseschQuechu" + - "aRätoromaneschRundi-SproochRumäneschRusseschRuandeschSanskritSardesc" + - "hSindhiNordsameschSangoSinghaleseschSlowakeschSloweneschSamoaneschSh" + - "onaSomaliAlbaneschSerbeschSwaziSüd-Sotho-SproochSundaneseschSchwedes" + - "chSuaheliTamileschTeluguTadschikeschThailänneschTigrinjaTurkmeneschT" + - "swana-SproochTongaeschTierkeschTsongaTatareschTahiteschUigureschUkra" + - "ineschUrduUsbekeschVenda-SproochVietnameseschVolapükWallouneschWolof" + - "XhosaJiddeschYorubaZhuangChineseschZuluAceh-SproochAcholi-SproochAda" + - "ngmeAdygéieschTunesescht ArabeschAfrihiliAghemAinu-SproochAkkadeschA" + - "labamaAleuteschGegeschSüd-AlaeschAlengleschAngikaAramäeschAraukanesc" + - "hAraonaArapaho-SproochAlgerescht ArabeschArawak-SproochMarokkanescht" + - " ArabeschEgyptescht ArabeschAsu (Tanzania)Amerikanesch Zeechesprooch" + - "AsturianeschKotavaAwadhiSüd-AserbaidschaneschBelutscheschBalinesesch" + - "BaireschBasaa-SproochBamunBatak TobaGhomálá’BedauyeBemba-SproochBeta" + - "wiBenaBafutBadagaBhodschpuriBikol-SproochBini-SproochBanjareseschKom" + - "Blackfoot-SproochBishnupriyaBachtiareschBraj-BhakhaBrahuiBodoAkooseB" + - "urjateschBugineseschBuluBlinMedumbaCaddoKaribeschCayugaAtsamCebuanoK" + - "igaChibcha-SproochTschagataeschTrukeseschMariChinookChoctawChipewyan" + - "CherokeeCheyenneSoraniKopteschCapiznonKrimtatareschKaschubeschDakota" + - "-SproochDargineschTaitaDelaware-SproochSlaveDogribDinka-SproochZarma" + - "DogriNiddersorbeschZentral-DusunDualaMëttelhollänneschJola-FonyiDyul" + - "a-SproochDazagaKiembuEfikEmilianeschEgypteschEkajukElameschMëtteleng" + - "leschYup’ikEwondoExtremadureschPangwe-SproochFilipinoMeänkieliFon-Sp" + - "roochCajunMëttelfranséischAlfranséischFrankoprovenzaleschNordfrieses" + - "chOstfrieseschFriuleschGa-SproochGagauseschGan-ChineseschGayoGbaya-S" + - "proochZoroastrianescht DariGeezGilberteseschGilakiMëttelhéichdäitsch" + - "AlhéichdäitschGoan-KonkaniGondi-SproochMongondouGoteschGrebo-Sprooch" + - "AlgriicheschSchwäizerdäitschWayuuFarefareGusii-SproochKutchin-Sprooc" + - "hHaida-SproochHakka-ChineseschHawaieschFidschi-HindiHiligaynon-Sproo" + - "chHethiteschMiao-SproochUewersorbeschXiang-ChineseschHupaIbanIbibioI" + - "lokano-SproochInguscheschIschoreschJamaikanesch-KreoleschLojbanNgomb" + - "aMachameJiddesch-PerseschJiddesch-ArabeschJüteschKarakalpakeschKabyl" + - "eschKachin-SproochJjuKambaKawiKabardineschKanembuTyapMakondeKabuverd" + - "ianuKenyangKoroKaingangKhasi-SproochSakeschKoyra ChiiniKhowarKirmanj" + - "kiKakoKalenjinKimbundu-SproochKomi-PermiakKonkaniKosraeaneschKpelle-" + - "SproochKaratschaiesch-BalkareschKrioKinaray-aKareleschOraon-SproochS" + - "hambalaBafiaKölschKumükeschKutenai-SproochLadinoLangiLahndaLamba-Spr" + - "oochLesgeschLingua Franca NovaLigureschLiveschLakota-SproochLombarde" + - "schMongoRotse-SproochLettgalleschLuba-LuluaLuiseno-SproochLunda-Spro" + - "ochLuo-SproochLushai-SproochOlulujiaKlassescht ChineseschLasesch Spr" + - "oochMadureseschMafaKhottaMaithiliMakassareschManding-SproochMassai-S" + - "proochMabaMokshaMandareseschMende-SproochMeru-SproochMorisyenMëtteli" + - "reschMakhuwa-MeettoMeta’Micmac-SproochMinangkabau-SproochMandschures" + - "chMeithei-SproochMohawk-SproochMossi-SproochWest-MariMundangMéisproo" + - "chegMuskogee-SproochMirandeseschMarwariMentawaiMyeneErsja-Mordwinesc" + - "hMazandaraniMin-Nan-ChineseschNeapolitaneschNamaNidderdäitschNewariN" + - "ias-SproochNiue-SproochAo NagaKwasioNgiemboonNogaiAlnordeschNovialN’" + - "KoNord-Sotho-SproochNuerAl-NewariNyamwezi-SproochNyankoleNyoroNzimaO" + - "sage-SproochOsmaneschPangasinan-SproochMëttelperseschPampanggan-Spro" + - "ochPapiamentoPalauPicardeschPennsylvaniadäitschPlattdäitschAlpersesc" + - "hPfälzesch DäitschPhönikeschPiemonteseschPonteschPonapeaneschPreises" + - "chAlprovenzaleschQuiché-SproochKichwa (Chimborazo-Gebidder)Rajasthan" + - "iOuschterinsel-SproochRarotonganeschRomagnolTarifitRomboRomaniRotuma" + - "neschRussineschRovianaAromuneschRwaSandawe-SproochJakuteschSamaritan" + - "eschSamburuSasakSantaliSaurashtraNgambaySanguSizilianeschSchotteschS" + - "assareseschSenecaSenaSeriSelkupeschKoyra SenniAlireschSamogiteschTas" + - "chelhitSchan-SproochTschadesch-ArabeschSidamoNidderschleseschSelayar" + - "SüdsameschLule-LappeschInari-LappeschSkolt-LappeschSoninke-SproochSo" + - "gdeschSrananeschSerer-SproochSahoSaterfrieseschSukuma-SproochSusuSum" + - "ereschKomoreschKongo-SwahiliAlsyreschSyreschSchleseschTuluTemneTesoT" + - "ereno-SproochTetum-SproochTigreTiv-SproochTokelauaneschTsachureschKl" + - "ingoneschTlingit-SproochTaleschTamaseqTsonga-SproochNeimelaneseschTu" + - "royoSeediqTsakoneschTsimshian-SproochTateschTumbuka-SproochElliceane" + - "schTasawaqTuwineschMëttlert-Atlas-TamazightUdmurteschUgariteschMbund" + - "u-SproochRootVai-SproochVenezeschWepseschWestflämeschMainfränkeschWo" + - "teschVoroVunjoWalliserdäitschWalamo-SproochWarayWasho-SproochWu-Chin" + - "eseschKalmückeschMingrelesch SproochSogaYao-SproochYapeseschYangbenY" + - "embaNheengatuKantoneseschZapotekeschBliss-SymbolerSeelänneschZenagaM" + - "arokkanescht Standard-TamazightZuni-SproochKeng SproochinhalterZazaM" + - "odernt HéicharabeschÉisträichescht DäitschSchwäizer HéichdäitschAust" + - "ralescht EngleschKanadescht EngleschBritescht EngleschAmerikanescht " + - "EngleschLatäinamerikanescht SpueneschEuropäescht SpueneschMexikanesc" + - "ht SpueneschKanadescht FranséischSchwäizer FranséischFlämeschBrasili" + - "anescht PortugiseschEuropäescht PortugiseschMoldaweschSerbo-Kroatesc" + - "hChinesesch (vereinfacht)Chinesesch (traditionell)", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0004, 0x000e, 0x0017, 0x0020, 0x0024, 0x002d, 0x0039, - 0x0041, 0x004c, 0x0054, 0x005a, 0x006b, 0x0077, 0x0085, 0x008f, - 0x0096, 0x00a5, 0x00af, 0x00b8, 0x00c2, 0x00ca, 0x00d5, 0x00e4, - 0x00f4, 0x00fc, 0x0100, 0x010b, 0x011a, 0x0128, 0x0131, 0x0139, - 0x0141, 0x014b, 0x0155, 0x0160, 0x016a, 0x0172, 0x017b, 0x0184, - 0x018c, 0x0194, 0x019c, 0x019f, 0x01a7, 0x01b4, 0x01be, 0x01c9, - 0x01d6, 0x01dc, 0x01f1, 0x01fa, 0x0201, 0x0209, 0x020d, 0x0212, - 0x021c, 0x0221, 0x022a, 0x0233, 0x023e, 0x0247, 0x0250, 0x025e, - // Entry 40 - 7F - 0x0269, 0x0274, 0x027f, 0x028b, 0x0295, 0x029c, 0x02a7, 0x02b2, - 0x02bd, 0x02c5, 0x02ce, 0x02d7, 0x02e0, 0x02ec, 0x02fa, 0x0302, - 0x030c, 0x031a, 0x0329, 0x0330, 0x033a, 0x0348, 0x0354, 0x035c, - 0x0368, 0x0370, 0x037a, 0x0381, 0x0390, 0x039d, 0x03a8, 0x03af, - 0x03b7, 0x03c0, 0x03cc, 0x03d4, 0x03e5, 0x03f4, 0x03f9, 0x0404, - 0x040d, 0x0417, 0x041e, 0x0427, 0x0431, 0x043b, 0x0444, 0x0458, - 0x0463, 0x0469, 0x0475, 0x0487, 0x0499, 0x04ad, 0x04b3, 0x04c1, - 0x04cc, 0x04da, 0x04df, 0x04e4, 0x04ed, 0x04fa, 0x04fe, 0x0506, - // Entry 80 - BF - 0x050d, 0x0519, 0x0520, 0x052e, 0x053b, 0x0545, 0x054d, 0x0556, - 0x055e, 0x0566, 0x056c, 0x0577, 0x057c, 0x0589, 0x0593, 0x059d, - 0x05a7, 0x05ac, 0x05b2, 0x05bb, 0x05c3, 0x05c8, 0x05da, 0x05e6, - 0x05f0, 0x05f7, 0x0600, 0x0606, 0x0612, 0x061f, 0x0627, 0x0632, - 0x0640, 0x0649, 0x0652, 0x0658, 0x0661, 0x066a, 0x0673, 0x067d, - 0x0681, 0x068a, 0x0697, 0x06a4, 0x06ac, 0x06b7, 0x06bc, 0x06c1, - 0x06c9, 0x06cf, 0x06d5, 0x06df, 0x06e3, 0x06ef, 0x06fd, 0x0704, - 0x070f, 0x0722, 0x072a, 0x072f, 0x073b, 0x0744, 0x074b, 0x0754, - // Entry C0 - FF - 0x075b, 0x0767, 0x0771, 0x0777, 0x0781, 0x078c, 0x0792, 0x07a1, - 0x07b4, 0x07c2, 0x07d8, 0x07eb, 0x07f9, 0x0813, 0x081f, 0x0825, - 0x082b, 0x0841, 0x084d, 0x0858, 0x0860, 0x086d, 0x0872, 0x087c, - 0x0888, 0x088f, 0x089c, 0x08a2, 0x08a6, 0x08ab, 0x08b1, 0x08bc, - 0x08c9, 0x08d5, 0x08e1, 0x08e4, 0x08f5, 0x0900, 0x090c, 0x0917, - 0x091d, 0x0921, 0x0927, 0x0931, 0x093c, 0x0940, 0x0944, 0x094b, - 0x0950, 0x0959, 0x095f, 0x0964, 0x096b, 0x096f, 0x097e, 0x098b, - 0x0995, 0x0999, 0x09a0, 0x09a7, 0x09b0, 0x09b8, 0x09c0, 0x09c6, - // Entry 100 - 13F - 0x09ce, 0x09d6, 0x09e3, 0x09ee, 0x09fc, 0x0a06, 0x0a0b, 0x0a1b, - 0x0a20, 0x0a26, 0x0a33, 0x0a38, 0x0a3d, 0x0a4b, 0x0a58, 0x0a5d, - 0x0a70, 0x0a7a, 0x0a87, 0x0a8d, 0x0a93, 0x0a97, 0x0aa2, 0x0aab, - 0x0ab1, 0x0ab9, 0x0ac8, 0x0ad0, 0x0ad6, 0x0ae4, 0x0af2, 0x0afa, - 0x0b04, 0x0b0f, 0x0b14, 0x0b26, 0x0b33, 0x0b46, 0x0b53, 0x0b5f, - 0x0b68, 0x0b72, 0x0b7c, 0x0b8a, 0x0b8e, 0x0b9b, 0x0bb0, 0x0bb4, - 0x0bc1, 0x0bc7, 0x0bdc, 0x0bec, 0x0bf8, 0x0c05, 0x0c0e, 0x0c15, - 0x0c22, 0x0c2e, 0x0c40, 0x0c45, 0x0c4d, 0x0c5a, 0x0c69, 0x0c76, - // Entry 140 - 17F - 0x0c86, 0x0c8f, 0x0c9c, 0x0cae, 0x0cb8, 0x0cc4, 0x0cd1, 0x0ce1, - 0x0ce5, 0x0ce9, 0x0cef, 0x0cfe, 0x0d09, 0x0d13, 0x0d29, 0x0d2f, - 0x0d35, 0x0d3c, 0x0d4d, 0x0d5e, 0x0d66, 0x0d74, 0x0d7d, 0x0d8b, - 0x0d8e, 0x0d93, 0x0d97, 0x0da3, 0x0daa, 0x0dae, 0x0db5, 0x0dc1, - 0x0dc8, 0x0dcc, 0x0dd4, 0x0de1, 0x0de8, 0x0df4, 0x0dfa, 0x0e03, - 0x0e07, 0x0e0f, 0x0e1f, 0x0e2b, 0x0e32, 0x0e3e, 0x0e4c, 0x0e65, - 0x0e69, 0x0e72, 0x0e7b, 0x0e88, 0x0e90, 0x0e95, 0x0e9c, 0x0ea6, - 0x0eb5, 0x0ebb, 0x0ec0, 0x0ec6, 0x0ed3, 0x0edb, 0x0eed, 0x0ef6, - // Entry 180 - 1BF - 0x0efd, 0x0f0b, 0x0f16, 0x0f1b, 0x0f28, 0x0f34, 0x0f3e, 0x0f4d, - 0x0f5a, 0x0f65, 0x0f73, 0x0f7b, 0x0f90, 0x0f9f, 0x0faa, 0x0fae, - 0x0fb4, 0x0fbc, 0x0fc8, 0x0fd7, 0x0fe5, 0x0fe9, 0x0fef, 0x0ffb, - 0x1008, 0x1014, 0x101c, 0x1029, 0x1037, 0x103e, 0x104c, 0x105f, - 0x106c, 0x107b, 0x1089, 0x1096, 0x109f, 0x10a6, 0x10b3, 0x10c3, - 0x10cf, 0x10d6, 0x10de, 0x10e3, 0x10f4, 0x10ff, 0x1111, 0x111f, - 0x1123, 0x1131, 0x1137, 0x1143, 0x114f, 0x1156, 0x115c, 0x1165, - 0x116a, 0x1174, 0x117a, 0x1180, 0x1192, 0x1196, 0x119f, 0x11af, - // Entry 1C0 - 1FF - 0x11b7, 0x11bc, 0x11c1, 0x11ce, 0x11d7, 0x11e9, 0x11f8, 0x120a, - 0x1214, 0x1219, 0x1223, 0x1237, 0x1244, 0x124e, 0x1261, 0x126c, - 0x1279, 0x1281, 0x128d, 0x1296, 0x12a5, 0x12b4, 0x12d0, 0x12da, - 0x12ef, 0x12fd, 0x1305, 0x130c, 0x1311, 0x1317, 0x1322, 0x132c, - 0x1333, 0x133d, 0x1340, 0x134f, 0x1358, 0x1365, 0x136c, 0x1371, - 0x1378, 0x1382, 0x1389, 0x138e, 0x139a, 0x13a4, 0x13b0, 0x13b6, - 0x13ba, 0x13be, 0x13c8, 0x13d3, 0x13db, 0x13e6, 0x13f0, 0x13fd, - 0x1410, 0x1416, 0x1426, 0x142d, 0x1438, 0x1445, 0x1453, 0x1461, - // Entry 200 - 23F - 0x1470, 0x1478, 0x1482, 0x148f, 0x1493, 0x14a1, 0x14af, 0x14b3, - 0x14bc, 0x14c5, 0x14d2, 0x14db, 0x14e2, 0x14ec, 0x14f0, 0x14f5, - 0x14f9, 0x1507, 0x1514, 0x1519, 0x1524, 0x1531, 0x153c, 0x1547, - 0x1556, 0x155d, 0x1564, 0x1572, 0x1580, 0x1586, 0x158c, 0x1596, - 0x15a7, 0x15ae, 0x15bd, 0x15c9, 0x15d0, 0x15d9, 0x15f2, 0x15fc, - 0x1606, 0x1614, 0x1618, 0x1623, 0x162c, 0x1634, 0x1641, 0x164f, - 0x1656, 0x165a, 0x165f, 0x166f, 0x167d, 0x1682, 0x168f, 0x168f, - 0x169c, 0x16a8, 0x16bb, 0x16bf, 0x16ca, 0x16d3, 0x16da, 0x16df, - // Entry 240 - 27F - 0x16e8, 0x16f4, 0x16ff, 0x170d, 0x1719, 0x171f, 0x173f, 0x174b, - 0x175f, 0x1763, 0x1779, 0x1792, 0x17ab, 0x17c0, 0x17d3, 0x17e5, - 0x17fb, 0x1819, 0x182f, 0x1845, 0x185b, 0x1871, 0x187a, 0x1895, - 0x18ae, 0x18b8, 0x18c7, 0x18df, 0x18f8, - }, - }, - { // lg - "Lu-akaaniLu-amharikiLuwarabuLubelarusiLubulugariyaLubengaliLuceekeLudaak" + - "iLugereeki/LuyonaaniLungerezaLusipanyaLuperusiLufalansaLuhawuzaLuhin" + - "duLuhangareLuyindonezyaLuyiboLuyitaleLujapaniLunnajjavaLukmeLukoreya" + - "LugandaLumalayiLubbamaLunepaliLuholandiLupunjabiLupolandiLupotugiizi" + - "LulomaniyaLulasaLunarwandaLusomaliyaLuswideniLutamiiruLuttaayiLutake" + - "LuyukurayineLu-uruduLuvyetinaamuLuyorubaLucayinaLuzzulu", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0014, 0x0014, - 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x0026, 0x0032, - 0x0032, 0x0032, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, - 0x003b, 0x003b, 0x003b, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0049, 0x0049, 0x0049, 0x0049, 0x005c, 0x0065, 0x0065, 0x006e, - 0x006e, 0x006e, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x007f, - 0x007f, 0x007f, 0x007f, 0x007f, 0x007f, 0x007f, 0x007f, 0x0087, - 0x0087, 0x008e, 0x008e, 0x008e, 0x008e, 0x0097, 0x0097, 0x0097, - // Entry 40 - 7F - 0x0097, 0x00a3, 0x00a3, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00b1, 0x00b1, 0x00b9, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, - 0x00c3, 0x00c3, 0x00c8, 0x00c8, 0x00d0, 0x00d0, 0x00d0, 0x00d0, - 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00d7, 0x00d7, 0x00d7, - 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, - 0x00d7, 0x00d7, 0x00d7, 0x00df, 0x00df, 0x00e6, 0x00e6, 0x00e6, - 0x00ee, 0x00ee, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, - 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x0100, 0x0100, 0x0109, - // Entry 80 - BF - 0x0109, 0x0114, 0x0114, 0x0114, 0x0114, 0x011e, 0x0124, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, - 0x0141, 0x0141, 0x014a, 0x014a, 0x014a, 0x0152, 0x0152, 0x0152, - 0x0152, 0x0152, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0164, - 0x016c, 0x016c, 0x016c, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, - 0x0178, 0x0180, 0x0180, 0x0188, 0x018f, - }, - }, - { // lkt - "Abkhaz IyápiAvestan IyápiAfrikaans IyápiAmharic IyápiArab IyápiAssamese " + - "IyápiAvaric IyápiAzerbaijani IyápiBashkir IyápiBelarus IyápiBulgar I" + - "yápiBengali IyápiTibetan IyápiBosnia IyápiCatalan IyápiChechen Iyápi" + - "MaÅ¡tíŋÄa Oyáte IyápiCzech IyápiChuvash IyápiWales IyápiDane IyápiIyá" + - "Å¡iÄa IyápiGreece IyápiWašíÄuiyapiEsperanto IyápiSpayóla IyápiEstoni" + - "a IyápiBasque IyápiPersian IyápiFinnish IyápiFiji IyápiFaroese Iyápi" + - "WašíÄu IkÄéka IyápiIrish IyápiGalician IyápiGuarani IyápiGujarati Iy" + - "ápiHausa IyápiHebrew IyápiHindi IyápiCroatian IyápiHaiti IyápiHunga" + - "ry IyápiArmenia IyápiIndonesia IyápiIgbo IyápiIceland IyápiItalia Iy" + - "ápiKisúŋla IyápiJava IyápiGeoria IyápiKazakh IyápiKhmer IyápiKannad" + - "a IyápiKorea IyápiKashmir IyápiKurd IyápiKirghiz IyápiLatin IyápiLux" + - "embourg IyápiLao IyápiLithuania IyápiltLatvia IyápiMalagasy IyápiMao" + - "ri IyápiMacedonia IyápiMalayalam IyápiMarathi IyápiMalay IyápiMaltes" + - "e IyápiBurmese IyápiNepal IyápiDutch IyápiÅ ináglegleǧa IyápiÈžaȟátÈŸuÅ‹" + - "waÅ‹ IyápiOriya IyápiPunjabi IyápiPolish IyápiPashto IyápiPortuguese " + - "IyápiQuechua IyápiRomansh IyápiRomanian IyápiRussia IyápiSanskrit Iy" + - "ápiSindhi IyápiSinhala IyápiSlovak IyápiSlovenian IyápiSomali Iyápi" + - "Albanian IyápiSerbia IyápiSundanese IyápiSwedish IyápiSwahili IyápiT" + - "amil IyápiTelugu IyápiTajik IyápiThai IyápiTigrinya IyápiTurkmen Iyá" + - "piTongan IyápiTurkish IyápiTatar IyápiUyghur IyápiUkrain IyápiUrdu I" + - "yápiUzbek IyápiVietnamese IyápiWolof IyápiXhosa IyápiYoruba IyápiPÈŸe" + - "ÄhókaÅ‹ Háŋska IyápiZulu IyápiAdyghe IyápiItóǧata Altai IyápiMaÈŸpíya" + - " Tȟó IyápiBaluchi IyápiBamun IyápiBeja IyápiBuriat IyápiMari IyápiCh" + - "erokee IyápiÅ ahíyela IyápiCoptic IyápiCrimean Turkish IyápiDakȟótiya" + - "piDargwa IyápiDogri IyápiFilipino IyápiGbaya IyápiHawaiian IyápiIngu" + - "sh IyápiKara-Kalpak IyápiKabardian IyápiLahnda IyápiLakȟólʼiyapiMizo" + - " IyápiNamipuri IyápiComonian IyápiTukté iyápi tÈŸaŋíŋ Å¡niZaza IyápiÅ a" + - "gláša WašíÄuiyapiMílahaÅ‹ska WašíÄuiyapiWiyóȟpeyata Spayóla IyápiSpay" + - "ólaÈŸÄa IyápiFlemish IyápiPÈŸeÄhókaÅ‹ Háŋska Iyápi IkÄékaPÈŸeÄhókaÅ‹ Háŋ" + - "ska Iyápi ÈžÄe", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x000d, 0x001b, 0x002b, 0x002b, 0x0039, 0x0039, - 0x0044, 0x0053, 0x0060, 0x0060, 0x0072, 0x0080, 0x008e, 0x009b, - 0x009b, 0x009b, 0x00a9, 0x00b7, 0x00b7, 0x00c4, 0x00d2, 0x00e0, - 0x00e0, 0x00e0, 0x00fa, 0x0106, 0x0106, 0x0114, 0x0120, 0x012b, - 0x013c, 0x013c, 0x013c, 0x013c, 0x0149, 0x0157, 0x0167, 0x0176, - 0x0184, 0x0191, 0x019f, 0x019f, 0x01ad, 0x01b8, 0x01c6, 0x01df, - 0x01df, 0x01eb, 0x01eb, 0x01fa, 0x0208, 0x0217, 0x0217, 0x0223, - 0x0230, 0x023c, 0x023c, 0x024b, 0x0257, 0x0265, 0x0273, 0x0273, - // Entry 40 - 7F - 0x0273, 0x0283, 0x0283, 0x028e, 0x028e, 0x028e, 0x028e, 0x029c, - 0x02a9, 0x02a9, 0x02b9, 0x02c4, 0x02d1, 0x02d1, 0x02d1, 0x02d1, - 0x02de, 0x02de, 0x02ea, 0x02f8, 0x0304, 0x0304, 0x0312, 0x031d, - 0x031d, 0x031d, 0x032b, 0x0337, 0x0348, 0x0348, 0x0348, 0x0348, - 0x0352, 0x0364, 0x0364, 0x0371, 0x0380, 0x0380, 0x038c, 0x039c, - 0x03ac, 0x03ac, 0x03ba, 0x03c6, 0x03d4, 0x03e2, 0x03e2, 0x03e2, - 0x03ee, 0x03ee, 0x03fa, 0x03fa, 0x03fa, 0x03fa, 0x0410, 0x0410, - 0x0410, 0x0428, 0x0428, 0x0434, 0x0434, 0x0442, 0x0442, 0x044f, - // Entry 80 - BF - 0x045c, 0x046d, 0x047b, 0x0489, 0x0489, 0x0498, 0x04a5, 0x04a5, - 0x04b4, 0x04b4, 0x04c1, 0x04c1, 0x04c1, 0x04cf, 0x04dc, 0x04ec, - 0x04ec, 0x04ec, 0x04f9, 0x0508, 0x0515, 0x0515, 0x0515, 0x0525, - 0x0533, 0x0541, 0x054d, 0x055a, 0x0566, 0x0571, 0x0580, 0x058e, - 0x058e, 0x059b, 0x05a9, 0x05a9, 0x05b5, 0x05b5, 0x05c2, 0x05cf, - 0x05da, 0x05e6, 0x05e6, 0x05f7, 0x05f7, 0x05f7, 0x0603, 0x060f, - 0x060f, 0x061c, 0x061c, 0x0639, 0x0644, 0x0644, 0x0644, 0x0644, - 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, - // Entry C0 - FF - 0x0651, 0x0667, 0x0667, 0x0667, 0x0667, 0x0667, 0x0667, 0x067d, - 0x067d, 0x067d, 0x067d, 0x067d, 0x067d, 0x067d, 0x067d, 0x067d, - 0x067d, 0x067d, 0x068b, 0x068b, 0x068b, 0x068b, 0x0697, 0x0697, - 0x0697, 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, - 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, - 0x06a2, 0x06a2, 0x06a2, 0x06af, 0x06af, 0x06af, 0x06af, 0x06af, - 0x06af, 0x06af, 0x06af, 0x06af, 0x06af, 0x06af, 0x06af, 0x06af, - 0x06af, 0x06ba, 0x06ba, 0x06ba, 0x06ba, 0x06c9, 0x06da, 0x06da, - // Entry 100 - 13F - 0x06e7, 0x06e7, 0x06fd, 0x06fd, 0x070a, 0x0717, 0x0717, 0x0717, - 0x0717, 0x0717, 0x0717, 0x0717, 0x0723, 0x0723, 0x0723, 0x0723, - 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, - 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, 0x0732, - 0x0732, 0x0732, 0x0732, 0x0732, 0x0732, 0x0732, 0x0732, 0x0732, - 0x0732, 0x0732, 0x0732, 0x0732, 0x0732, 0x073e, 0x073e, 0x073e, - 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, - 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, - // Entry 140 - 17F - 0x073e, 0x074d, 0x074d, 0x074d, 0x074d, 0x074d, 0x074d, 0x074d, - 0x074d, 0x074d, 0x074d, 0x074d, 0x075a, 0x075a, 0x075a, 0x075a, - 0x075a, 0x075a, 0x075a, 0x075a, 0x075a, 0x076c, 0x076c, 0x076c, - 0x076c, 0x076c, 0x076c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, - 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, - 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, - 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, - 0x077c, 0x077c, 0x077c, 0x0789, 0x0789, 0x0789, 0x0789, 0x0789, - // Entry 180 - 1BF - 0x0789, 0x0798, 0x0798, 0x0798, 0x0798, 0x0798, 0x0798, 0x0798, - 0x0798, 0x0798, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, - 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, - 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, - 0x07a3, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, - 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, - 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, - 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, - // Entry 1C0 - 1FF - 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, - 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, - 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, - 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, - 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, - 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, - 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, - 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, - // Entry 200 - 23F - 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, - 0x07b2, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, - 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, - 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, - 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, - 0x07c1, 0x07c1, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, - 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, - 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, - // Entry 240 - 27F - 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, - 0x07de, 0x07e9, 0x07e9, 0x07e9, 0x07e9, 0x07e9, 0x07e9, 0x0802, - 0x081d, 0x083a, 0x084e, 0x084e, 0x084e, 0x084e, 0x085c, 0x085c, - 0x085c, 0x085c, 0x085c, 0x0882, 0x08a5, - }, - }, - { // ln - "akanliamarikilialabolibyelorisílibiligalilibengalilitshekÉ›lialemáligelek" + - "ilingÉ›lÉ›ÌsalisipanyelipelésanÉ›lifalansÉ›Ìhausalihindiliongililindonez" + - "iigbolitalianolizapÉ”lizavalikambodzalikoreyalingálalimalezilibilimál" + - "inepalÉ›lifalamálipendzabilipolonÉ›lipulutugÉ›Ìsiliromanilirisíkinyarwa" + - "ndalisomalilisuwedÉ›litamulilitayelitilikilikrÉ›niliurduliviyetinámiyo" + - "rubalisinwazulu", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000d, 0x000d, - 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0020, 0x002a, - 0x002a, 0x002a, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, - 0x0033, 0x0033, 0x0033, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x0044, 0x0044, 0x0044, 0x0044, 0x004c, 0x0059, 0x0059, 0x0062, - 0x0062, 0x0062, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x007a, - 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007f, - 0x007f, 0x0086, 0x0086, 0x0086, 0x0086, 0x008e, 0x008e, 0x008e, - // Entry 40 - 7F - 0x008e, 0x0097, 0x0097, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, - 0x00a4, 0x00a4, 0x00ab, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, - 0x00b1, 0x00b1, 0x00bb, 0x00bb, 0x00c3, 0x00c3, 0x00c3, 0x00c3, - 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00cb, - 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, - 0x00cb, 0x00cb, 0x00cb, 0x00d3, 0x00d3, 0x00dc, 0x00dc, 0x00dc, - 0x00e5, 0x00e5, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, - 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00f8, 0x00f8, 0x0101, - // Entry 80 - BF - 0x0101, 0x0110, 0x0110, 0x0110, 0x0110, 0x0118, 0x011f, 0x012a, - 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, - 0x012a, 0x012a, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, - 0x013b, 0x013b, 0x0143, 0x0143, 0x0143, 0x0149, 0x0149, 0x0149, - 0x0149, 0x0149, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0159, - 0x015f, 0x015f, 0x015f, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x0172, 0x0172, 0x0179, 0x017d, - }, - }, - { // lo - loLangStr, - loLangIdx, - }, - { // lt - ltLangStr, - ltLangIdx, - }, - { // lu - "LiakanLiamharikiArabiBelarusiBulegariBengaliTshekiLizelumaniGilikiLingel" + - "esaLihispaniaMpepajemiMfwàlànsaHausaHindiHongiliLindoneziaIgboLitali" + - "LiyapaniJavaLikoreyaTshilubaLimalezianepaliolandiLipunjabiMpoloniMpu" + - "tulugÉ›siLiromaniLirisikinyarwandaLisomaliLisuwidiMtamuiliNtailandiNt" + - "ulukiNkraniUrduLiviyetinamuNyorubashinÉ›Nzulu", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0010, 0x0010, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001d, 0x0025, - 0x0025, 0x0025, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, - 0x002c, 0x002c, 0x002c, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x003c, 0x003c, 0x003c, 0x003c, 0x0042, 0x004b, 0x004b, 0x0055, - 0x0055, 0x0055, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x0069, - 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x006e, - 0x006e, 0x0073, 0x0073, 0x0073, 0x0073, 0x007a, 0x007a, 0x007a, - // Entry 40 - 7F - 0x007a, 0x0084, 0x0084, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, - 0x008e, 0x008e, 0x0096, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, - 0x009a, 0x009a, 0x009a, 0x009a, 0x00a2, 0x00a2, 0x00a2, 0x00a2, - 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, - 0x00a2, 0x00a2, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, - 0x00aa, 0x00aa, 0x00aa, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, - 0x00b9, 0x00b9, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, - // Entry 80 - BF - 0x00cf, 0x00db, 0x00db, 0x00db, 0x00db, 0x00e3, 0x00e9, 0x00f4, - 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, - 0x00f4, 0x00f4, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, - 0x0104, 0x0104, 0x010c, 0x010c, 0x010c, 0x0115, 0x0115, 0x0115, - 0x0115, 0x0115, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x0122, - 0x0126, 0x0126, 0x0126, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, - 0x0132, 0x0139, 0x0139, 0x013f, 0x0144, - }, - }, - { // luo - "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + - "ikiKingerezaKihispaniaKiajemiKifaransaKihausaKihindiKihungariKiindon" + - "esiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaK" + - "inepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKi" + - "somaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyo" + - "rubaKichinaKizuluDholuo", - []uint16{ // 394 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, - 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, - 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0054, 0x0054, 0x005e, - 0x005e, 0x005e, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006e, - 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0075, - 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, - // Entry 40 - 7F - 0x0085, 0x0090, 0x0090, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, - 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, - 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, - 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, - // Entry 80 - BF - 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, - 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, - 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, - 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0132, 0x0132, 0x0132, - 0x0132, 0x0132, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x0143, - 0x0149, 0x0149, 0x0149, 0x0154, 0x0154, 0x0154, 0x0154, 0x0154, - 0x0154, 0x015c, 0x015c, 0x0163, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry C0 - FF - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 100 - 13F - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 140 - 17F - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 180 - 1BF - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x016f, - }, - }, - { // luy - "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + - "ikiLusunguKihispaniaKiajemiKifaransaKihausaLuhindiKihungariKiindones" + - "iaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaKin" + - "epaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKiso" + - "maliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyoru" + - "baKichinaKizuluLuluhia", - []uint16{ // 396 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, - 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, - 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0052, 0x0052, 0x005c, - 0x005c, 0x005c, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x006c, - 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x0073, - 0x0073, 0x007a, 0x007a, 0x007a, 0x007a, 0x0083, 0x0083, 0x0083, - // Entry 40 - 7F - 0x0083, 0x008e, 0x008e, 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, - 0x009e, 0x009e, 0x00a6, 0x00ac, 0x00ac, 0x00ac, 0x00ac, 0x00ac, - 0x00ac, 0x00ac, 0x00b6, 0x00b6, 0x00bd, 0x00bd, 0x00bd, 0x00bd, - 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, - 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, - 0x00bd, 0x00bd, 0x00bd, 0x00c6, 0x00c6, 0x00cd, 0x00cd, 0x00cd, - 0x00d5, 0x00d5, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, - 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00e7, 0x00e7, 0x00f0, - // Entry 80 - BF - 0x00f0, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00ff, 0x0105, 0x0110, - 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, - 0x0110, 0x0110, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, - 0x011f, 0x011f, 0x0126, 0x0126, 0x0126, 0x0130, 0x0130, 0x0130, - 0x0130, 0x0130, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0141, - 0x0147, 0x0147, 0x0147, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, - 0x0152, 0x015a, 0x015a, 0x0161, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - // Entry C0 - FF - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - // Entry 100 - 13F - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - // Entry 140 - 17F - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - // Entry 180 - 1BF - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x016e, - }, - }, - { // lv - lvLangStr, - lvLangIdx, - }, - { // mas - "nkʉtʉÌk É”Ìɔ̄ lAkannkʉtʉÌk É”Ìɔ̄ lAmharinkʉtʉÌk É”Ìɔ̄ lmarabunkʉtʉÌk É”Ìɔ̄ l" + - "BelarusinkʉtʉÌk É”Ìɔ̄ lBulgarialnkʉtʉÌk É”Ìɔ̄ lBengalinkʉtʉÌk É”Ìɔ̄ lch" + - "ekinkʉtʉÌk É”Ìɔ̄ ljerumaninkʉtʉÌk É”Ìɔ̄ lgirikinkʉtʉÌk É”Ìɔ̄ nkɨÌresank" + - "ʉtʉÌk É”Ìɔ̄ lspaniankʉtʉÌk É”Ìɔ̄ lpersiankʉtʉÌk É”Ìɔ̄ faransankʉtʉÌk É”" + - "Ìɔ̄ hausankʉtʉÌk É”Ìɔ̄ lmoindinkʉtʉÌk É”Ìɔ̄ lhungarinkʉtʉÌk É”Ìɔ̄ Indo" + - "nesiankʉtʉÌk É”Ìɔ̄ IgbonkʉtʉÌk É”Ìɔ̄ ltaliannkʉtʉÌk É”Ìɔ̄ japaninkʉtʉÌk" + - " É”Ìɔ̄ ljanankʉtʉÌk É”Ìɔ̄ lkambodiankʉtʉÌk É”Ìɔ̄ lkoreankʉtʉÌk É”Ìɔ̄ mal" + - "aynkʉtʉÌk É”Ìɔ̄ lBurmankʉtʉÌk É”Ìɔ̄ lnepalinkʉtʉÌk É”Ìɔ̄ lduchinkʉtʉÌk " + - "É”Ìɔ̄ lpunjabinkʉtʉÌk É”Ìɔ̄ lpolandnkʉtʉÌk É”Ìɔ̄ lportuguesenkʉtʉÌk É”Ì" + - "ɔ̄ lromaniankʉtʉÌk É”Ìɔ̄ lrusinkʉtʉÌk É”Ìɔ̄ lruwandankʉtʉÌk É”Ìɔ̄ lchu" + - "marinkʉtʉÌk É”Ìɔ̄ lswidinkʉtʉÌk É”Ìɔ̄ ltamilnkʉtʉÌk É”Ìɔ̄ ltainkʉtʉÌk É”" + - "Ìɔ̄ lturukinkʉtʉÌk É”Ìɔ̄ lkraniankʉtʉÌk É”Ìɔ̄ lurdunkʉtʉÌk É”Ìɔ̄ lviet" + - "inamunkʉtʉÌk É”Ìɔ̄ lyorubankʉtʉÌk É”Ìɔ̄ lchinankʉtʉÌk É”Ìɔ̄ lzuluMaa", - []uint16{ // 405 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0019, 0x0034, 0x0034, - 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x006c, 0x0089, - 0x0089, 0x0089, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, - 0x00a6, 0x00a6, 0x00a6, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c0, - 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00f8, 0x0116, 0x0116, 0x0131, - 0x0131, 0x0131, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0180, - 0x0180, 0x019b, 0x019b, 0x019b, 0x019b, 0x01b7, 0x01b7, 0x01b7, - // Entry 40 - 7F - 0x01b7, 0x01d4, 0x01d4, 0x01ec, 0x01ec, 0x01ec, 0x01ec, 0x01ec, - 0x0207, 0x0207, 0x0221, 0x023a, 0x023a, 0x023a, 0x023a, 0x023a, - 0x023a, 0x023a, 0x0257, 0x0257, 0x0271, 0x0271, 0x0271, 0x0271, - 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, - 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, - 0x0271, 0x0271, 0x0271, 0x028a, 0x028a, 0x02a4, 0x02a4, 0x02a4, - 0x02bf, 0x02bf, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, - 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02f5, 0x02f5, 0x0310, - // Entry 80 - BF - 0x0310, 0x032f, 0x032f, 0x032f, 0x032f, 0x034b, 0x0364, 0x0380, - 0x0380, 0x0380, 0x0380, 0x0380, 0x0380, 0x0380, 0x0380, 0x0380, - 0x0380, 0x0380, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, - 0x03b6, 0x03b6, 0x03d0, 0x03d0, 0x03d0, 0x03e8, 0x03e8, 0x03e8, - 0x03e8, 0x03e8, 0x0403, 0x0403, 0x0403, 0x0403, 0x0403, 0x041e, - 0x0437, 0x0437, 0x0437, 0x0455, 0x0455, 0x0455, 0x0455, 0x0455, - 0x0455, 0x0470, 0x0470, 0x048a, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - // Entry C0 - FF - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - // Entry 100 - 13F - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - // Entry 140 - 17F - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - // Entry 180 - 1BF - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a6, - }, - }, - { // mer - "KÄ©akaniKÄ©amarÄ©kiKÄ©arabuKÄ©belarusiKÄ©bulugÄ©riaKÄ©bangiraKÄ©chekiKÄ©njamanÄ©KÄ©n" + - "girikiKÄ©ngerethaKÄ©spÄ©niKÄ©pasiaKÄ©furansiKÄ©hausaKÄ©hÄ©ndiKÄ©hangarÄ©KÄ©indo" + - "nesiaKÄ©igboKÄ©italÄ©KÄ©japaniKÄ©javaKÄ©kambodiaKÄ©koreaKÄ©malesiaKÄ©burmaKÄ©n" + - "epaliKÄ©holandiKÄ©punjabuKÄ©polandiKÄ©pochogoKÄ©romaniaKÄ©rashiaKÄ©rwandaKÄ©" + - "somaliKÄ©swideniKÄ©tamiluKÄ©thailandiKÄ©takÄ©KÄ©ukirÄ©niKÄ©urduKÄ©vietinamuKÄ©" + - "yorubaKÄ©chinaKÄ©zuluKÄ©mÄ©rÅ©", - []uint16{ // 410 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0013, 0x0013, - 0x001b, 0x001b, 0x001b, 0x001b, 0x001b, 0x001b, 0x0026, 0x0033, - 0x0033, 0x0033, 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, - 0x003d, 0x003d, 0x003d, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0050, 0x0050, 0x0050, 0x0050, 0x005a, 0x0065, 0x0065, 0x006e, - 0x006e, 0x006e, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0080, - 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0088, - 0x0088, 0x0091, 0x0091, 0x0091, 0x0091, 0x009c, 0x009c, 0x009c, - // Entry 40 - 7F - 0x009c, 0x00a8, 0x00a8, 0x00af, 0x00af, 0x00af, 0x00af, 0x00af, - 0x00b8, 0x00b8, 0x00c1, 0x00c8, 0x00c8, 0x00c8, 0x00c8, 0x00c8, - 0x00c8, 0x00c8, 0x00d3, 0x00d3, 0x00db, 0x00db, 0x00db, 0x00db, - 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, - 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, - 0x00db, 0x00db, 0x00db, 0x00e5, 0x00e5, 0x00ed, 0x00ed, 0x00ed, - 0x00f6, 0x00f6, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x010a, 0x010a, 0x0114, - // Entry 80 - BF - 0x0114, 0x011e, 0x011e, 0x011e, 0x011e, 0x0128, 0x0131, 0x013a, - 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, - 0x013a, 0x013a, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, - 0x014d, 0x014d, 0x0156, 0x0156, 0x0156, 0x0162, 0x0162, 0x0162, - 0x0162, 0x0162, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x0175, - 0x017c, 0x017c, 0x017c, 0x0188, 0x0188, 0x0188, 0x0188, 0x0188, - 0x0188, 0x0191, 0x0191, 0x0199, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - // Entry C0 - FF - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - // Entry 100 - 13F - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - // Entry 140 - 17F - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - // Entry 180 - 1BF - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, - 0x01a0, 0x01a9, - }, - }, - { // mfe - "akanamarikarabbielorisbilgarbengalitchekalmangrekangleespagnolpersanfran" + - "sehaoussahindihongrwaindonezienigboitalienzaponezavanekhmer, santral" + - "koreenmalebirmannepaleolandepenjabipoloneportigerouminrisrwandasomal" + - "iswedwatamoulthaïtirkikrenienourdouvietnamienyorubasinwa, mandarinzo" + - "uloukreol morisien", - []uint16{ // 411 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000a, 0x000a, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x0016, 0x001c, - 0x001c, 0x001c, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, - 0x0023, 0x0023, 0x0023, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x002d, 0x002d, 0x002d, 0x002d, 0x0031, 0x0036, 0x0036, 0x003e, - 0x003e, 0x003e, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x004a, - 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, 0x0051, - 0x0051, 0x0056, 0x0056, 0x0056, 0x0056, 0x005d, 0x005d, 0x005d, - // Entry 40 - 7F - 0x005d, 0x0067, 0x0067, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, - 0x0072, 0x0072, 0x0078, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, - 0x007e, 0x007e, 0x008c, 0x008c, 0x0092, 0x0092, 0x0092, 0x0092, - 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, - 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, - 0x0092, 0x0092, 0x0092, 0x0096, 0x0096, 0x009c, 0x009c, 0x009c, - 0x00a2, 0x00a2, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00a8, - 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00af, 0x00af, 0x00b5, - // Entry 80 - BF - 0x00b5, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00c2, 0x00c5, 0x00cb, - 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, - 0x00cb, 0x00cb, 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, - 0x00d7, 0x00d7, 0x00dd, 0x00dd, 0x00dd, 0x00e2, 0x00e2, 0x00e2, - 0x00e2, 0x00e2, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00ee, - 0x00f4, 0x00f4, 0x00f4, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, - 0x00fe, 0x0104, 0x0104, 0x0113, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - // Entry C0 - FF - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - // Entry 100 - 13F - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - // Entry 140 - 17F - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - // Entry 180 - 1BF - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0127, - }, - }, - { // mg - "AkanAmharikaAraboBielorosyBiolgaraBengaliTsekyAlemaninaGrikaAnglisyEspan" + - "iolaPersaFrantsayhaoussahindihongroàIndonezianinaigboItalianinaJapon" + - "eyJavaneykhmerKoreaninaMalagasyMalayBirmanaNepaleHolandeyPenjabiPolo" + - "neyPortiogeyRomanianinaRosianinaRoandeSomalianinaSoisaTamoilaTaioane" + - "yTiorkaOkrainianinaOrdòVietnamianinaYôrobàSinoa, MandarinZolò", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000c, 0x000c, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001a, 0x0022, - 0x0022, 0x0022, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, - 0x0029, 0x0029, 0x0029, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x0037, 0x0037, 0x0037, 0x0037, 0x003c, 0x0043, 0x0043, 0x004c, - 0x004c, 0x004c, 0x0051, 0x0051, 0x0051, 0x0051, 0x0051, 0x0059, - 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0060, - 0x0060, 0x0065, 0x0065, 0x0065, 0x0065, 0x006d, 0x006d, 0x006d, - // Entry 40 - 7F - 0x006d, 0x007a, 0x007a, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, - 0x0088, 0x0088, 0x008f, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, - 0x0096, 0x0096, 0x009b, 0x009b, 0x00a4, 0x00a4, 0x00a4, 0x00a4, - 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, - 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00ac, 0x00ac, 0x00ac, 0x00ac, - 0x00ac, 0x00ac, 0x00ac, 0x00b1, 0x00b1, 0x00b8, 0x00b8, 0x00b8, - 0x00be, 0x00be, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, - 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00cd, 0x00cd, 0x00d4, - // Entry 80 - BF - 0x00d4, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00e8, 0x00f1, 0x00f7, - 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, - 0x00f7, 0x00f7, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, - 0x0107, 0x0107, 0x010e, 0x010e, 0x010e, 0x0116, 0x0116, 0x0116, - 0x0116, 0x0116, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x0128, - 0x012d, 0x012d, 0x012d, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, - 0x013a, 0x0142, 0x0142, 0x0151, 0x0156, - }, - }, - { // mgh - "IkanImhariIarabuIbelausiIbulgariaIbanglaIchekiIjerimaniIgirikiIngilishiI" + - "hispaniolaIajemiIfaransaIhausaIhindiIhungariIgboItalianoIjapaniIjava" + - "IkambodiaIkoreaImalesiaIburmaInepaliIholanziIpunjabiIpolandiNrenoIro" + - "maniaIrisiInyarandaIsomaliIswidiItamilItailandiIturukiIukranIhurduIv" + - "yetinamuIyorubaIchinaIzuluMakua", - []uint16{ // 413 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000a, 0x000a, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0018, 0x0021, - 0x0021, 0x0021, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x0037, 0x0037, 0x0037, 0x0037, 0x003e, 0x0047, 0x0047, 0x0052, - 0x0052, 0x0052, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0060, - 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0066, - 0x0066, 0x006c, 0x006c, 0x006c, 0x006c, 0x0074, 0x0074, 0x0074, - // Entry 40 - 7F - 0x0074, 0x0074, 0x0074, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, - 0x0080, 0x0080, 0x0087, 0x008c, 0x008c, 0x008c, 0x008c, 0x008c, - 0x008c, 0x008c, 0x0095, 0x0095, 0x009b, 0x009b, 0x009b, 0x009b, - 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, - 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, - 0x009b, 0x009b, 0x009b, 0x00a3, 0x00a3, 0x00a9, 0x00a9, 0x00a9, - 0x00b0, 0x00b0, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, - 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00c0, 0x00c0, 0x00c8, - // Entry 80 - BF - 0x00c8, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00d5, 0x00da, 0x00e3, - 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, - 0x00e3, 0x00e3, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, - 0x00f0, 0x00f0, 0x00f6, 0x00f6, 0x00f6, 0x00ff, 0x00ff, 0x00ff, - 0x00ff, 0x00ff, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x010c, - 0x0112, 0x0112, 0x0112, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, - 0x011c, 0x0123, 0x0123, 0x0129, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - // Entry C0 - FF - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - // Entry 100 - 13F - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - // Entry 140 - 17F - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - // Entry 180 - 1BF - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x0133, - }, - }, - { // mgo - "metaʼngam tisɔʼ", - []uint16{ // 555 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 80 - BF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry C0 - FF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 100 - 13F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 140 - 17F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 180 - 1BF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - // Entry 1C0 - 1FF - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - // Entry 200 - 23F - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0012, - }, - }, - { // mk - mkLangStr, - mkLangIdx, - }, - { // ml - mlLangStr, - mlLangIdx, - }, - { // mn - mnLangStr, - mnLangIdx, - }, - { // mr - mrLangStr, - mrLangIdx, - }, - { // ms - msLangStr, - msLangIdx, - }, - { // mt - "AfarAbkażjanAvestanAfrikansAkanAmħarikuAragoneseGħarbiAssameseAvarikAjma" + - "raAżerbajÄ¡aniBaxkirBelarussuBulgaruBislamaBambaraBengaliTibetjanBren" + - "tonBosnijanKatalanÄŠeÄ‹enÄŠamorroKorsikuKrijÄŠekSlaviku tal-KnisjaÄŠuvaxW" + - "elxDaniżĠermaniżDiveħiDżongkaEweGriegIngliżEsperantoSpanjolEstonjanB" + - "askPersjanFulaħFinlandiżFiÄ¡iFawriżFranÄ‹iżFriżjanIrlandiżGalliku SkoÄ‹" + - "Ä‹iżGallegjanGwaraniGuÄ¡aratiManksĦawsaEbrajkĦindiĦiri MotuKroatHaiti" + - "anUngeriżArmenjanĦereroInterlinguaIndoneżjanInterlingueIgboSichuan Y" + - "iInupjakIdoIżlandiżTaljanInukitutÄ appuniżĠavaniżĠorÄ¡janKongoKikujuKu" + - "anyamaKażakKalallisutKmerKannadaKorejanKanuriKaxmiriKurdiżKomiKornik" + - "uKirgiżLatinLetżburgiżGandaLimburgishLingaljanLaoLitwanjanLuba-Katan" + - "gaLatvjanMalagażiMarxallMaoriMaÄ‹edonjanMalajalamMongoljanMaratiMalaj" + - "anMaltiBurmiżNawuruNdebele, ta’ FuqNepaliżNdongaOlandiżNinorsk Norve" + - "Ä¡iżBokmahal NorveÄ¡iżNdebele, t’IsfelNavaħoÄŠiÄ‹ewa; NjanÄ¡aOÄ‹Ä‹itanOÄ¡ib" + - "waOromo (Afan)OrijaOssettikuPunÄ¡abiPaliPollakkPaxtunPortugiżKeÄ‹waRet" + - "o-RomanzRundiRumenRussuKinjarwandaSanskritSardinjanSindiSami ta’ Fuq" + - "SangoSinħaliżSlovakkSlovenSamojanXonaSomaliAlbaniżSerbSwatiSoto, t’I" + - "sfelSundaniżSvediżSwaħiliTamilTeluguTaÄ¡ikTajlandiżTigrinjaTurkmeniZw" + - "anaTonganTorkTsongaTatarTaħitjanWigurUkranjanUrduUżbekVendaVjetnamiż" + - "VolapukWalloonWolofĦożaJiddixJorubaÅ»wangÄŠiniżŻuluAÄ‹iniżAkoliAdangmeA" + - "dygheAfriħiliAjnuAkkadjenAleutIngliż, AntikAngikaAramajkArawkanjanAr" + - "apaħoArawakAsturianAwadħiBaluÄ‹iBaliniżBasaBejaBembaBojpuriBikolBiniS" + - "iksikaBrajBurjatBuginiżBlinKaddoKaribAtsamSibwanoÄŠibÄ‹aÄŠagatajÄŠukeseM" + - "ariÄ argon taÄ‹-ÄŠinukÄŠostawÄŠipewjanÄŠerokijXajennKoptikuCrimean Turkish" + - "; Crimean TatarKashubianDakotaDargwaDelawerjanSlavDogribDinkaDogriLo" + - "wer SorbianDwalaOlandiż, MedjevaliDjulaEfikEÄ¡izzjan (Antik)EkajukEla" + - "mitIngliż, MedjevaliEwondoFangFilippinoFonFranÄ‹iż, MedjevaliFranÄ‹iż," + - " AntikFrijuljanGaGajoGbajaGeezGilbertjanÄ ermaniku, Medjevali PulitÄ e" + - "rmaniku, Antik PulitGondiGorontaloGotikuÄ erboGrieg, AntikGwiÄ‹inĦajda" + - "ĦawajjanHiligaynonĦittitĦmongUpper SorbianĦupaIbanIlokoIngushLojban" + - "Lhudi-PersjanLhudi-GħarbiKara-KalpakKabuljanKaÄ‹inKambaKawiKabardianK" + - "asiKotaniżKimbunduKonkaniKosrejanKpelleKarachay-BalkarKuruskKumikuKu" + - "tenajLadinoLandaLambaLeżgjanMongoLożiLuba-LuluwaLuwisinużLundaLuwaLu" + - "xajMaduriżMagaħiMajtiliMakasarMandingwanMasajMokshaMandarMendeIrland" + - "iż, MedjevaliMikmekMinangkabawManÄ‹urjanManipuriMoħakMossiLingwi Dive" + - "rsiKriekMirandiżMarwariErzyaNeapolitanÄ ermaniż Komuni; Sassonu Komun" + - "iNewariNijasNijuwejanNogaiSkandinav, AntikSoto, ta’ FuqClassical New" + - "ariNjamweżiNyankoleNjoroNżimaOsaÄ¡janTork (Imperu Ottoman)Pangasinjan" + - "PaħlaviPampamgaPapjamentoPalawjanPersjan AntikFeniÄ‹juPonpejanProvenz" + - "al, AntikRaÄ¡astaniRapanwiRarotonganiÅ»ingaruAromanijanSandaweJakutSam" + - "ritanSaskaSantaliSkoÄ‹Ä‹iżSelkupIrlandiż, AntikXanSidamoSouthern SamiL" + - "ule SamiInari SamiSkolt SamiSoninkeSogdienSererSukumaSusuSumerjanSir" + - "janTimneTerenoTetumTigreTivTokelauKlingonTlingitTamaxekTonga (Njasa)" + - "Tok PisinZimxjanTumbukaTuvaluTuvinjanUdmurtUgaritikuUmbunduGħerqVaiV" + - "otikWalamoWarajWaxoKalmykJaoJapeseÅ»apotekÅ»enagaÅ»uniGħarbi Standard M" + - "odernIngliż AwstraljanIngliż BrittanikuIngliż AmerikanFranÄ‹iż Kanadi" + - "żFranÄ‹iż Å»vizzeruMoldavjanSerbo-KroatÄŠiniż Simplifikat", - []uint16{ // 604 elements - // Entry 0 - 3F - 0x0000, 0x0004, 0x000d, 0x0014, 0x001c, 0x0020, 0x0029, 0x0032, - 0x0039, 0x0041, 0x0047, 0x004d, 0x005a, 0x0060, 0x0069, 0x0070, - 0x0077, 0x007e, 0x0085, 0x008d, 0x0094, 0x009c, 0x00a3, 0x00aa, - 0x00b2, 0x00b9, 0x00bd, 0x00c1, 0x00d3, 0x00d9, 0x00dd, 0x00e3, - 0x00ed, 0x00f4, 0x00fc, 0x00ff, 0x0104, 0x010b, 0x0114, 0x011b, - 0x0123, 0x0127, 0x012e, 0x0134, 0x013e, 0x0143, 0x014a, 0x0153, - 0x015b, 0x0164, 0x0176, 0x017f, 0x0186, 0x018f, 0x0194, 0x019a, - 0x01a0, 0x01a6, 0x01b0, 0x01b5, 0x01bc, 0x01c4, 0x01cc, 0x01d3, - // Entry 40 - 7F - 0x01de, 0x01e9, 0x01f4, 0x01f8, 0x0202, 0x0209, 0x020c, 0x0216, - 0x021c, 0x0224, 0x022e, 0x0237, 0x0240, 0x0245, 0x024b, 0x0253, - 0x0259, 0x0263, 0x0267, 0x026e, 0x0275, 0x027b, 0x0282, 0x0289, - 0x028d, 0x0294, 0x029b, 0x02a0, 0x02ac, 0x02b1, 0x02bb, 0x02c4, - 0x02c7, 0x02d0, 0x02dc, 0x02e3, 0x02ec, 0x02f3, 0x02f8, 0x0303, - 0x030c, 0x0315, 0x031b, 0x0322, 0x0327, 0x032e, 0x0334, 0x0346, - 0x034e, 0x0354, 0x035c, 0x036e, 0x0381, 0x0393, 0x039a, 0x03ab, - 0x03b4, 0x03bb, 0x03c7, 0x03cc, 0x03d5, 0x03dd, 0x03e1, 0x03e8, - // Entry 80 - BF - 0x03ee, 0x03f7, 0x03fd, 0x0408, 0x040d, 0x0412, 0x0417, 0x0422, - 0x042a, 0x0433, 0x0438, 0x0446, 0x044b, 0x0455, 0x045c, 0x0462, - 0x0469, 0x046d, 0x0473, 0x047b, 0x047f, 0x0484, 0x0493, 0x049c, - 0x04a3, 0x04ab, 0x04b0, 0x04b6, 0x04bc, 0x04c6, 0x04ce, 0x04d6, - 0x04db, 0x04e1, 0x04e5, 0x04eb, 0x04f0, 0x04f9, 0x04fe, 0x0506, - 0x050a, 0x0510, 0x0515, 0x051f, 0x0526, 0x052d, 0x0532, 0x0538, - 0x053e, 0x0544, 0x054a, 0x0551, 0x0556, 0x055e, 0x0563, 0x056a, - 0x0570, 0x0570, 0x0579, 0x0579, 0x057d, 0x0585, 0x0585, 0x058a, - // Entry C0 - FF - 0x058a, 0x058a, 0x0598, 0x059e, 0x05a5, 0x05af, 0x05af, 0x05b7, - 0x05b7, 0x05bd, 0x05bd, 0x05bd, 0x05bd, 0x05bd, 0x05c5, 0x05c5, - 0x05cc, 0x05cc, 0x05d3, 0x05db, 0x05db, 0x05df, 0x05df, 0x05df, - 0x05df, 0x05e3, 0x05e8, 0x05e8, 0x05e8, 0x05e8, 0x05e8, 0x05ef, - 0x05f4, 0x05f8, 0x05f8, 0x05f8, 0x05ff, 0x05ff, 0x05ff, 0x0603, - 0x0603, 0x0603, 0x0603, 0x0609, 0x0611, 0x0611, 0x0615, 0x0615, - 0x061a, 0x061f, 0x061f, 0x0624, 0x062b, 0x062b, 0x0632, 0x063a, - 0x0641, 0x0645, 0x0658, 0x065f, 0x0668, 0x0670, 0x0676, 0x0676, - // Entry 100 - 13F - 0x067d, 0x067d, 0x069b, 0x06a4, 0x06aa, 0x06b0, 0x06b0, 0x06ba, - 0x06be, 0x06c4, 0x06c9, 0x06c9, 0x06ce, 0x06db, 0x06db, 0x06e0, - 0x06f3, 0x06f3, 0x06f8, 0x06f8, 0x06f8, 0x06fc, 0x06fc, 0x070d, - 0x0713, 0x0719, 0x072b, 0x072b, 0x0731, 0x0731, 0x0735, 0x073e, - 0x073e, 0x0741, 0x0741, 0x0755, 0x0765, 0x0765, 0x0765, 0x0765, - 0x076e, 0x0770, 0x0770, 0x0770, 0x0774, 0x0779, 0x0779, 0x077d, - 0x0787, 0x0787, 0x07a2, 0x07b9, 0x07b9, 0x07be, 0x07c7, 0x07cd, - 0x07d3, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07e6, 0x07ec, - // Entry 140 - 17F - 0x07ec, 0x07f5, 0x07f5, 0x07ff, 0x0806, 0x080c, 0x0819, 0x0819, - 0x081e, 0x0822, 0x0822, 0x0827, 0x082d, 0x082d, 0x082d, 0x0833, - 0x0833, 0x0833, 0x0840, 0x084d, 0x084d, 0x0858, 0x0860, 0x0866, - 0x0866, 0x086b, 0x086f, 0x0878, 0x0878, 0x0878, 0x0878, 0x0878, - 0x0878, 0x0878, 0x0878, 0x087c, 0x0884, 0x0884, 0x0884, 0x0884, - 0x0884, 0x0884, 0x088c, 0x088c, 0x0893, 0x089b, 0x08a1, 0x08b0, - 0x08b0, 0x08b0, 0x08b0, 0x08b6, 0x08b6, 0x08b6, 0x08b6, 0x08bc, - 0x08c3, 0x08c9, 0x08c9, 0x08ce, 0x08d3, 0x08db, 0x08db, 0x08db, - // Entry 180 - 1BF - 0x08db, 0x08db, 0x08db, 0x08e0, 0x08e5, 0x08e5, 0x08f0, 0x08fa, - 0x08ff, 0x0903, 0x0908, 0x0908, 0x0908, 0x0908, 0x0910, 0x0910, - 0x0917, 0x091e, 0x0925, 0x092f, 0x0934, 0x0934, 0x093a, 0x0940, - 0x0945, 0x0945, 0x0945, 0x0959, 0x0959, 0x0959, 0x095f, 0x096a, - 0x0974, 0x097c, 0x0982, 0x0987, 0x0987, 0x0987, 0x0995, 0x099a, - 0x09a3, 0x09aa, 0x09aa, 0x09aa, 0x09af, 0x09af, 0x09af, 0x09b9, - 0x09b9, 0x09da, 0x09e0, 0x09e5, 0x09ee, 0x09ee, 0x09ee, 0x09ee, - 0x09f3, 0x0a03, 0x0a03, 0x0a03, 0x0a12, 0x0a12, 0x0a22, 0x0a2b, - // Entry 1C0 - 1FF - 0x0a33, 0x0a38, 0x0a3e, 0x0a46, 0x0a5b, 0x0a66, 0x0a6e, 0x0a76, - 0x0a80, 0x0a88, 0x0a88, 0x0a88, 0x0a88, 0x0a95, 0x0a95, 0x0a9d, - 0x0a9d, 0x0a9d, 0x0aa5, 0x0aa5, 0x0ab5, 0x0ab5, 0x0ab5, 0x0abf, - 0x0ac6, 0x0ad1, 0x0ad1, 0x0ad1, 0x0ad1, 0x0ad9, 0x0ad9, 0x0ad9, - 0x0ad9, 0x0ae3, 0x0ae3, 0x0aea, 0x0aef, 0x0af7, 0x0af7, 0x0afc, - 0x0b03, 0x0b03, 0x0b03, 0x0b03, 0x0b03, 0x0b0d, 0x0b0d, 0x0b0d, - 0x0b0d, 0x0b0d, 0x0b13, 0x0b13, 0x0b23, 0x0b23, 0x0b23, 0x0b26, - 0x0b26, 0x0b2c, 0x0b2c, 0x0b2c, 0x0b39, 0x0b42, 0x0b4c, 0x0b56, - // Entry 200 - 23F - 0x0b5d, 0x0b64, 0x0b64, 0x0b69, 0x0b69, 0x0b69, 0x0b6f, 0x0b73, - 0x0b7b, 0x0b7b, 0x0b7b, 0x0b7b, 0x0b81, 0x0b81, 0x0b81, 0x0b86, - 0x0b86, 0x0b8c, 0x0b91, 0x0b96, 0x0b99, 0x0ba0, 0x0ba0, 0x0ba7, - 0x0bae, 0x0bae, 0x0bb5, 0x0bc2, 0x0bcb, 0x0bcb, 0x0bcb, 0x0bcb, - 0x0bd2, 0x0bd2, 0x0bd9, 0x0bdf, 0x0bdf, 0x0be7, 0x0be7, 0x0bed, - 0x0bf6, 0x0bfd, 0x0c03, 0x0c06, 0x0c06, 0x0c06, 0x0c06, 0x0c06, - 0x0c0b, 0x0c0b, 0x0c0b, 0x0c0b, 0x0c11, 0x0c16, 0x0c1a, 0x0c1a, - 0x0c1a, 0x0c20, 0x0c20, 0x0c20, 0x0c23, 0x0c29, 0x0c29, 0x0c29, - // Entry 240 - 27F - 0x0c29, 0x0c29, 0x0c31, 0x0c31, 0x0c31, 0x0c38, 0x0c38, 0x0c3d, - 0x0c3d, 0x0c3d, 0x0c54, 0x0c54, 0x0c54, 0x0c66, 0x0c66, 0x0c78, - 0x0c88, 0x0c88, 0x0c88, 0x0c88, 0x0c9a, 0x0cad, 0x0cad, 0x0cad, - 0x0cad, 0x0cb6, 0x0cc1, 0x0cd4, - }, - }, - { // mua - "akaÅ‹amharikarabiyabelarussiyabulgariabengaliasyekyagermaÅ‹grekzah Anglofo" + - "Å‹EspaniyaPersiazah sÇr FranssÇhaussahindihungariyaindonesiyaigboita" + - "liyazah sÇr JapoÅ‹javaniyakmerkoreamalasiyabirmaniaNepaliyazah sÇr ma" + - " kasÇÅ‹PÇnjabiPoloniyaZah sÇr PortugalRomaniyaRussiyaZah sÇr RwandaSo" + - "maliyaSwediaTamulthTurkUkrainiaUrduVietnamiyaYorubazah SyiÅ‹ZuluMUNDA" + - "ÅŠ", - []uint16{ // 422 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x000c, 0x000c, - 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x001e, 0x0026, - 0x0026, 0x0026, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x003b, 0x003b, 0x003b, 0x003b, 0x003f, 0x004c, 0x004c, 0x0054, - 0x0054, 0x0054, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x006b, - 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x0071, - 0x0071, 0x0076, 0x0076, 0x0076, 0x0076, 0x007f, 0x007f, 0x007f, - // Entry 40 - 7F - 0x007f, 0x0089, 0x0089, 0x008d, 0x008d, 0x008d, 0x008d, 0x008d, - 0x0094, 0x0094, 0x00a3, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, - 0x00ab, 0x00ab, 0x00af, 0x00af, 0x00b4, 0x00b4, 0x00b4, 0x00b4, - 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, - 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, - 0x00b4, 0x00b4, 0x00b4, 0x00bc, 0x00bc, 0x00c4, 0x00c4, 0x00c4, - 0x00cc, 0x00cc, 0x00df, 0x00df, 0x00df, 0x00df, 0x00df, 0x00df, - 0x00df, 0x00df, 0x00df, 0x00df, 0x00df, 0x00e7, 0x00e7, 0x00ef, - // Entry 80 - BF - 0x00ef, 0x0100, 0x0100, 0x0100, 0x0100, 0x0108, 0x010f, 0x011e, - 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, - 0x011e, 0x011e, 0x0126, 0x0126, 0x0126, 0x0126, 0x0126, 0x0126, - 0x012c, 0x012c, 0x0131, 0x0131, 0x0131, 0x0133, 0x0133, 0x0133, - 0x0133, 0x0133, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x013f, - 0x0143, 0x0143, 0x0143, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, - 0x014d, 0x0153, 0x0153, 0x015c, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - // Entry C0 - FF - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - // Entry 100 - 13F - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - // Entry 140 - 17F - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - // Entry 180 - 1BF - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0167, - }, - }, - { // my - myLangStr, - myLangIdx, - }, - { // naq - "AkangowabAmharicgowabArabiÇî gowabBelarusanÇî gowabBulgariaÇî gowabBenga" + - "liÇî gowabCzechÇî gowabDuitsXriksEngelsSpaansPersiaÇî gowabFransHaus" + - "agowabHindigowabHungariaÇî gowabIndonesiaÇî gowabIgbogowabItaliansJa" + - "paneesJavaneseKhmerÇî gowab, CentralKoreaÇî gowabMalayÇî gowabBurmes" + - "Çî gowabNepalÇî gowabHollandsPunjabigowabPoleÇî gowabPortugeesRoman" + - "iaÇî gowabRussiaÇî gowabRwandaÇî gowabSomaliÇî gowabSwedeÇî gowabTam" + - "ilÇî gowabThaiÇî gowabTurkeÇî gowabUkrainiaÇî gowabUrduÇî gowabVietn" + - "amÇî gowabYorubabChineesÇî gowab, MandarinniZulubKhoekhoegowab", - []uint16{ // 433 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0015, 0x0015, - 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0037, 0x0049, - 0x0049, 0x0049, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, - 0x006e, 0x006e, 0x006e, 0x006e, 0x0073, 0x0079, 0x0079, 0x007f, - 0x007f, 0x007f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0094, - 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, 0x009e, - 0x009e, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00ba, 0x00ba, 0x00ba, - // Entry 40 - 7F - 0x00ba, 0x00cd, 0x00cd, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, - 0x00de, 0x00de, 0x00e6, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, - 0x00ee, 0x00ee, 0x0106, 0x0106, 0x0115, 0x0115, 0x0115, 0x0115, - 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, - 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, - 0x0115, 0x0115, 0x0115, 0x0124, 0x0124, 0x0134, 0x0134, 0x0134, - 0x0143, 0x0143, 0x014b, 0x014b, 0x014b, 0x014b, 0x014b, 0x014b, - 0x014b, 0x014b, 0x014b, 0x014b, 0x014b, 0x0157, 0x0157, 0x0165, - // Entry 80 - BF - 0x0165, 0x016e, 0x016e, 0x016e, 0x016e, 0x017f, 0x018f, 0x019f, - 0x019f, 0x019f, 0x019f, 0x019f, 0x019f, 0x019f, 0x019f, 0x019f, - 0x019f, 0x019f, 0x01af, 0x01af, 0x01af, 0x01af, 0x01af, 0x01af, - 0x01be, 0x01be, 0x01cd, 0x01cd, 0x01cd, 0x01db, 0x01db, 0x01db, - 0x01db, 0x01db, 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01fc, - 0x020a, 0x020a, 0x020a, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, - 0x021b, 0x0222, 0x0222, 0x023f, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - // Entry C0 - FF - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - // Entry 100 - 13F - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - // Entry 140 - 17F - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - // Entry 180 - 1BF - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, - 0x0251, - }, - }, - { // nd - "isi-Akhaniisi-Amaharikhiisi-Alabhuisi-Bhelarashiyaniisi-Bulgariaisi-Bhen" + - "galiisi-Czechisi-Jalimaniisi-Gilikiisi-Ngisiisi-Sipeyiniisi-Pheshiya" + - "niisi-Fulentshiisi-Hausaisi-Hindiisi-Hangariisi-Indonesiaisi-Igboisi" + - "-Italianoisi-Japhaniisi-Javaisi-Khambodiyaisi-Koriyaisi-Malayiisi-Bu" + - "rmaisiNdebeleisi-Nepaliisi-Dutchisi-Phunjabiisi-Pholoshiisi-Potukezi" + - "isi-Romaniisi-Rashiyaisi-Ruwandaisi-Somaliisi-Swidishiisi-Thamilisi-" + - "Thayiisi-Thekishiisi-Ukrainisi-Uduisi-Vietnameseisi-Yorubhaisi-China" + - "isi-Zulu", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0018, 0x0018, - 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0034, 0x0040, - 0x0040, 0x0040, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, - 0x004c, 0x004c, 0x004c, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, - 0x0061, 0x0061, 0x0061, 0x0061, 0x006b, 0x0074, 0x0074, 0x0080, - 0x0080, 0x0080, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x009b, - 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x00a4, - 0x00a4, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00b8, 0x00b8, 0x00b8, - // Entry 40 - 7F - 0x00b8, 0x00c5, 0x00c5, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, - 0x00d9, 0x00d9, 0x00e4, 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x00ec, - 0x00ec, 0x00ec, 0x00fa, 0x00fa, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x010e, 0x010e, 0x0117, 0x0117, 0x0121, - 0x012b, 0x012b, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0140, 0x0140, 0x014c, - // Entry 80 - BF - 0x014c, 0x0158, 0x0158, 0x0158, 0x0158, 0x0162, 0x016d, 0x0178, - 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, - 0x0178, 0x0178, 0x0182, 0x0182, 0x0182, 0x0182, 0x0182, 0x0182, - 0x018e, 0x018e, 0x0198, 0x0198, 0x0198, 0x01a1, 0x01a1, 0x01a1, - 0x01a1, 0x01a1, 0x01ad, 0x01ad, 0x01ad, 0x01ad, 0x01ad, 0x01b7, - 0x01be, 0x01be, 0x01be, 0x01cc, 0x01cc, 0x01cc, 0x01cc, 0x01cc, - 0x01cc, 0x01d7, 0x01d7, 0x01e0, 0x01e8, - }, - }, - { // ne - neLangStr, - neLangIdx, - }, - { // nl - nlLangStr, - nlLangIdx, - }, - { // nmg - "KiÉ›l akanKiÉ›l amariaKiÉ›l b’árabeKiÉ›l belarussieKiÉ›l bulgariaKiÉ›l bengali" + - "aKiÉ›l bó tchÉ›kJámanKiÉ›l bó grÉ›kNgɛ̄lɛ̄nPaŋáKiÉ›l pÉ›rsiaFalaKiÉ›l máwús" + - "áKiÉ›l b’indienKiÉ›l b’ɔÌngroisKiÉ›l indonesieKiÉ›l ikboKiÉ›l italiaKiÉ›l" + - " bó japonɛ̌KiÉ›l bó javanɛ̌KiÉ›l bó mÉ›rKiÉ›l koréKiÉ›l Malɛ̌siÄKiÉ›l birm" + - "aniaKiÉ›l nepalKiÉ›l bóllandaisKiÉ›l pÉ›ndjabiKiÉ›l pÉ”lɔŋeKiÉ›l bó pɔ̄rtug" + - "ɛ̂KiÉ›l bó rumɛ̂nKiÉ›l russiaKiÉ›l rwandÄKiÉ›l somaliÄKiÉ›l bó suedoisKi" + - "É›l tamulKiÉ›l thaïKiÉ›l bó turkKiÉ›l b’ukrɛ̄nienKiÉ›l úrduKiÉ›l viÉ›tnamY" + - "orúbâKiÉ›l bó chinoisZulu", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0016, 0x0016, - 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0036, 0x0044, - 0x0044, 0x0044, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, - 0x0052, 0x0052, 0x0052, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, - 0x0068, 0x0068, 0x0068, 0x0068, 0x0077, 0x0083, 0x0083, 0x0089, - 0x0089, 0x0089, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x009a, - 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x00a9, - 0x00a9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00cd, 0x00cd, 0x00cd, - // Entry 40 - 7F - 0x00cd, 0x00dc, 0x00dc, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00e6, - 0x00f2, 0x00f2, 0x0105, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, - 0x0118, 0x0118, 0x0126, 0x0126, 0x0131, 0x0131, 0x0131, 0x0131, - 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, - 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, - 0x0131, 0x0131, 0x0131, 0x0142, 0x0142, 0x0150, 0x0150, 0x0150, - 0x015b, 0x015b, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x017b, 0x017b, 0x018a, - // Entry 80 - BF - 0x018a, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01b3, 0x01bf, 0x01cc, - 0x01cc, 0x01cc, 0x01cc, 0x01cc, 0x01cc, 0x01cc, 0x01cc, 0x01cc, - 0x01cc, 0x01cc, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01eb, 0x01eb, 0x01f6, 0x01f6, 0x01f6, 0x0201, 0x0201, 0x0201, - 0x0201, 0x0201, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x0224, - 0x022f, 0x022f, 0x022f, 0x023d, 0x023d, 0x023d, 0x023d, 0x023d, - 0x023d, 0x0245, 0x0245, 0x0256, 0x025a, - }, - }, - { // nn - "afarabkhasiskavestiskafrikaansakanamhariskaragonskarabiskassamiskavarisk" + - "aymaraaserbajdsjanskbasjkirskkviterussiskbulgarskbislamabambarabenga" + - "litibetanskbretonskbosniskkatalansktsjetsjenskchamorrokorsikanskcree" + - "tsjekkiskkyrkjeslavisktsjuvanskwalisiskdansktyskdivehidzongkhaewegre" + - "skengelskesperantospanskestiskbaskiskpersiskfulanifinskfijianskfærøy" + - "skfranskvestfrisiskirskskotsk-gæliskgaliciskguaranigujaratimanxhausa" + - "hebraiskhindihiri motukroatiskhaitiskungarskarmenskhererointerlingua" + - "indonesiskinterlingueibosichuan-yiinupiakidoislandskitalienskinuktit" + - "utjapanskjavanesiskgeorgiskkikongokikuyukuanyamakasakhiskkalaallisut" + - "; grønlandskkhmerkannadakoreanskkanurikasjmirikurdiskkomikorniskkirg" + - "isisklatinluxemburgskgandalimburgisklingalalaotisklitauiskluba-katan" + - "galatviskmadagassiskmarshallesiskmaorimakedonskmalayalammongolskmara" + - "thimalayiskmaltesiskburmesisknaurunord-ndebelenepalskndonganederland" + - "sknynorskbokmÃ¥lsør-ndebelenavajonyanjaoksitanskojibwaoromooriyaosset" + - "iskpanjabipalipolskpashtoportugisiskquechuaretoromanskrundirumenskru" + - "ssiskkinjarwandasanskritsardinsksindhinordsamisksangosingalesiskslov" + - "akiskslovensksamoanskshonasomalialbanskserbiskswatisørsothosundanesi" + - "sksvenskswahilitamiltelugutatsjikiskthaitigrinjaturkmensktswanatonga" + - " (Tonga-øyane)tyrkisktsongatatarisktahitiskuiguriskukrainskurduusbek" + - "iskvendavietnamesiskvolapykvallonskwolofxhosajiddiskjorubazhuangkine" + - "siskzuluachinesiskacoliadangmeadygheafrihiliaghemainuakkadiskaleutis" + - "ksør-altaigammalengelskangikaarameiskaraukanskarapahoarawakasu (Tanz" + - "ania)asturiskawadhibaluchibalinesiskbasabejabembabena (Tanzania)bhoj" + - "puribikolbinisiksikabrajbodoburjatiskbuginesiskblincaddokaribiskatsa" + - "mcebuanskchibchachagataichuukesiskmarichinookchoctawchipewianskchero" + - "keecheyennekoptiskkrimtatariskkasjubiskdakotadargwadelawareslavejdog" + - "ribdinkazarmadogrilÃ¥gsorbiskdualamellumnederlandskjola-fonyidyulakie" + - "mbuefikgammalegyptiskekajukelamittiskmellomengelskewondofangfilippin" + - "skfonmellomfranskgammalfransknordfrisiskaustfrisiskfriulianskgagayog" + - "bayageskiribatiskmellomhøgtyskgammalhøgtyskgondigorontalogotiskgrebo" + - "gammalgresksveitsertyskgwichinhaidahawaiiskhiligaynonhettittiskhmong" + - "høgsorbiskhupaibanilokoingusjisklojbanjødepersiskjødearabiskkarakalp" + - "akiskkabylskkachinjjukambakawikabardisktyapkapverdiskkorokhasikhotan" + - "esiskkimbundukonkanikosraeanskkpellekarachay-balkarkarelskkurukhbafi" + - "akumykkutenailadinsklahndalambalezghianmongoloziluba-lulualuisenolun" + - "daluolushaimaduresiskmagahimaithilimakasarmandingomasaimokshamandarm" + - "endemellomirskmicmacminangkabaumandsjumanipurimohawkmossimundangflei" + - "re sprÃ¥kcreekmirandesiskmarwarierzyanapolitansklÃ¥gtysknewariniasniue" + - "anskkwasionogaigammalnorskn’konordsothonuerklassisk newarisknyamwezi" + - "nyankolenyoronzimaosageottomansk tyrkiskpangasinanpahlavipampangapap" + - "iamentopalauiskgammalpersiskfønikiskponapiskgammalprovençalskrajasth" + - "anirapanuirarotonganskromboromaniaromanskrwasandawejakutsksamaritans" + - "k arameisksasaksantalisangusicilianskskotskselkupiskgammalirskshansi" + - "damosørsamisklulesamiskenaresamiskskoltesamisksoninkesogdisksranan t" + - "ongoserersukumasususumeriskshimaoreklassisk syrisksyrisktemneterenot" + - "etumtigrétivitokelauklingontlingittamasjektonga (Nyasa)tok pisintsim" + - "shiantumbukatuvalutasawaqtuviniskudmurtugaritiskumbundurotvaivotiskw" + - "alamowaraywashokalmykyaoyapesiskyangbenkantonesiskzapotecblissymbolz" + - "enagazuniutan sprÃ¥kleg innhaldzazaausterriksk tysksveitsisk høgtyska" + - "ustralisk engelskkanadisk engelskbritisk engelskengelsk (amerikansk)" + - "latinamerikansk spanskiberisk spanskkanadisk fransksveitsisk franskf" + - "lamskbrasiliansk portugisiskeuropeisk portugisiskmoldaviskserbokroat" + - "iskforenkla kinesisktradisjonell kinesisk", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0004, 0x000d, 0x0015, 0x001e, 0x0022, 0x002a, 0x0032, - 0x0039, 0x0041, 0x0048, 0x004e, 0x005c, 0x0065, 0x0071, 0x0079, - 0x0080, 0x0087, 0x008e, 0x0097, 0x009f, 0x00a6, 0x00af, 0x00ba, - 0x00c2, 0x00cc, 0x00d0, 0x00d9, 0x00e6, 0x00ef, 0x00f7, 0x00fc, - 0x0100, 0x0106, 0x010e, 0x0111, 0x0116, 0x011d, 0x0126, 0x012c, - 0x0132, 0x0139, 0x0140, 0x0146, 0x014b, 0x0153, 0x015c, 0x0162, - 0x016d, 0x0171, 0x017f, 0x0187, 0x018e, 0x0196, 0x019a, 0x019f, - 0x01a7, 0x01ac, 0x01b5, 0x01bd, 0x01c4, 0x01cb, 0x01d2, 0x01d8, - // Entry 40 - 7F - 0x01e3, 0x01ed, 0x01f8, 0x01fb, 0x0205, 0x020c, 0x020f, 0x0217, - 0x0220, 0x0229, 0x0230, 0x023a, 0x0242, 0x0249, 0x024f, 0x0257, - 0x0260, 0x0278, 0x027d, 0x0284, 0x028c, 0x0292, 0x029a, 0x02a1, - 0x02a5, 0x02ac, 0x02b5, 0x02ba, 0x02c5, 0x02ca, 0x02d4, 0x02db, - 0x02e2, 0x02ea, 0x02f6, 0x02fd, 0x0308, 0x0315, 0x031a, 0x0323, - 0x032c, 0x0334, 0x033b, 0x0343, 0x034c, 0x0355, 0x035a, 0x0366, - 0x036d, 0x0373, 0x037e, 0x0385, 0x038c, 0x0398, 0x039e, 0x03a4, - 0x03ad, 0x03b3, 0x03b8, 0x03bd, 0x03c5, 0x03cc, 0x03d0, 0x03d5, - // Entry 80 - BF - 0x03db, 0x03e6, 0x03ed, 0x03f8, 0x03fd, 0x0404, 0x040b, 0x0416, - 0x041e, 0x0426, 0x042c, 0x0436, 0x043b, 0x0446, 0x044f, 0x0457, - 0x045f, 0x0464, 0x046a, 0x0471, 0x0478, 0x047d, 0x0486, 0x0491, - 0x0497, 0x049e, 0x04a3, 0x04a9, 0x04b3, 0x04b7, 0x04bf, 0x04c8, - 0x04ce, 0x04e2, 0x04e9, 0x04ef, 0x04f7, 0x04ff, 0x0507, 0x050f, - 0x0513, 0x051b, 0x0520, 0x052c, 0x0533, 0x053b, 0x0540, 0x0545, - 0x054c, 0x0552, 0x0558, 0x0560, 0x0564, 0x056e, 0x0573, 0x057a, - 0x0580, 0x0580, 0x0588, 0x058d, 0x0591, 0x0599, 0x0599, 0x05a1, - // Entry C0 - FF - 0x05a1, 0x05ab, 0x05b8, 0x05be, 0x05c6, 0x05cf, 0x05cf, 0x05d6, - 0x05d6, 0x05dc, 0x05dc, 0x05dc, 0x05ea, 0x05ea, 0x05f2, 0x05f2, - 0x05f8, 0x05f8, 0x05ff, 0x0609, 0x0609, 0x060d, 0x060d, 0x060d, - 0x060d, 0x0611, 0x0616, 0x0616, 0x0625, 0x0625, 0x0625, 0x062d, - 0x0632, 0x0636, 0x0636, 0x0636, 0x063d, 0x063d, 0x063d, 0x0641, - 0x0641, 0x0645, 0x0645, 0x064e, 0x0658, 0x0658, 0x065c, 0x065c, - 0x0661, 0x0669, 0x0669, 0x066e, 0x0676, 0x0676, 0x067d, 0x0685, - 0x068f, 0x0693, 0x069a, 0x06a1, 0x06ac, 0x06b4, 0x06bc, 0x06bc, - // Entry 100 - 13F - 0x06c3, 0x06c3, 0x06cf, 0x06d8, 0x06de, 0x06e4, 0x06e4, 0x06ec, - 0x06f2, 0x06f8, 0x06fd, 0x0702, 0x0707, 0x0712, 0x0712, 0x0717, - 0x0728, 0x0732, 0x0737, 0x0737, 0x073d, 0x0741, 0x0741, 0x074f, - 0x0755, 0x075f, 0x076c, 0x076c, 0x0772, 0x0772, 0x0776, 0x0780, - 0x0780, 0x0783, 0x0783, 0x078f, 0x079b, 0x079b, 0x07a6, 0x07b1, - 0x07bb, 0x07bd, 0x07bd, 0x07bd, 0x07c1, 0x07c6, 0x07c6, 0x07c9, - 0x07d3, 0x07d3, 0x07e1, 0x07ef, 0x07ef, 0x07f4, 0x07fd, 0x0803, - 0x0808, 0x0813, 0x081f, 0x081f, 0x081f, 0x081f, 0x0826, 0x082b, - // Entry 140 - 17F - 0x082b, 0x0833, 0x0833, 0x083d, 0x0847, 0x084c, 0x0857, 0x0857, - 0x085b, 0x085f, 0x085f, 0x0864, 0x086d, 0x086d, 0x086d, 0x0873, - 0x0873, 0x0873, 0x087f, 0x088b, 0x088b, 0x0898, 0x089f, 0x08a5, - 0x08a8, 0x08ad, 0x08b1, 0x08ba, 0x08ba, 0x08be, 0x08be, 0x08c8, - 0x08c8, 0x08cc, 0x08cc, 0x08d1, 0x08dc, 0x08dc, 0x08dc, 0x08dc, - 0x08dc, 0x08dc, 0x08e4, 0x08e4, 0x08eb, 0x08f5, 0x08fb, 0x090a, - 0x090a, 0x090a, 0x0911, 0x0917, 0x0917, 0x091c, 0x091c, 0x0921, - 0x0928, 0x092f, 0x092f, 0x0935, 0x093a, 0x0942, 0x0942, 0x0942, - // Entry 180 - 1BF - 0x0942, 0x0942, 0x0942, 0x0947, 0x094b, 0x094b, 0x0955, 0x095c, - 0x0961, 0x0964, 0x096a, 0x096a, 0x096a, 0x096a, 0x0974, 0x0974, - 0x097a, 0x0982, 0x0989, 0x0991, 0x0996, 0x0996, 0x099c, 0x09a2, - 0x09a7, 0x09a7, 0x09a7, 0x09b1, 0x09b1, 0x09b1, 0x09b7, 0x09c2, - 0x09c9, 0x09d1, 0x09d7, 0x09dc, 0x09dc, 0x09e3, 0x09f0, 0x09f5, - 0x0a00, 0x0a07, 0x0a07, 0x0a07, 0x0a0c, 0x0a0c, 0x0a0c, 0x0a17, - 0x0a17, 0x0a1f, 0x0a25, 0x0a29, 0x0a31, 0x0a31, 0x0a37, 0x0a37, - 0x0a3c, 0x0a47, 0x0a47, 0x0a4d, 0x0a56, 0x0a5a, 0x0a6b, 0x0a73, - // Entry 1C0 - 1FF - 0x0a7b, 0x0a80, 0x0a85, 0x0a8a, 0x0a9b, 0x0aa5, 0x0aac, 0x0ab4, - 0x0abe, 0x0ac6, 0x0ac6, 0x0ac6, 0x0ac6, 0x0ad3, 0x0ad3, 0x0adc, - 0x0adc, 0x0adc, 0x0ae4, 0x0ae4, 0x0af6, 0x0af6, 0x0af6, 0x0b00, - 0x0b07, 0x0b13, 0x0b13, 0x0b13, 0x0b18, 0x0b1e, 0x0b1e, 0x0b1e, - 0x0b1e, 0x0b26, 0x0b29, 0x0b30, 0x0b37, 0x0b4b, 0x0b4b, 0x0b50, - 0x0b57, 0x0b57, 0x0b57, 0x0b5c, 0x0b66, 0x0b6c, 0x0b6c, 0x0b6c, - 0x0b6c, 0x0b6c, 0x0b75, 0x0b75, 0x0b7f, 0x0b7f, 0x0b7f, 0x0b83, - 0x0b83, 0x0b89, 0x0b89, 0x0b89, 0x0b93, 0x0b9d, 0x0ba8, 0x0bb4, - // Entry 200 - 23F - 0x0bbb, 0x0bc2, 0x0bce, 0x0bd3, 0x0bd3, 0x0bd3, 0x0bd9, 0x0bdd, - 0x0be5, 0x0bed, 0x0bed, 0x0bfc, 0x0c02, 0x0c02, 0x0c02, 0x0c07, - 0x0c07, 0x0c0d, 0x0c12, 0x0c18, 0x0c1c, 0x0c23, 0x0c23, 0x0c2a, - 0x0c31, 0x0c31, 0x0c39, 0x0c46, 0x0c4f, 0x0c4f, 0x0c4f, 0x0c4f, - 0x0c58, 0x0c58, 0x0c5f, 0x0c65, 0x0c6c, 0x0c74, 0x0c74, 0x0c7a, - 0x0c83, 0x0c8a, 0x0c8d, 0x0c90, 0x0c90, 0x0c90, 0x0c90, 0x0c90, - 0x0c96, 0x0c96, 0x0c96, 0x0c96, 0x0c9c, 0x0ca1, 0x0ca6, 0x0ca6, - 0x0ca6, 0x0cac, 0x0cac, 0x0cac, 0x0caf, 0x0cb7, 0x0cbe, 0x0cbe, - // Entry 240 - 27F - 0x0cbe, 0x0cc9, 0x0cd0, 0x0cda, 0x0cda, 0x0ce0, 0x0ce0, 0x0ce4, - 0x0cfa, 0x0cfe, 0x0cfe, 0x0d0e, 0x0d20, 0x0d32, 0x0d42, 0x0d51, - 0x0d65, 0x0d7b, 0x0d89, 0x0d89, 0x0d98, 0x0da8, 0x0dae, 0x0dc5, - 0x0dda, 0x0de3, 0x0df0, 0x0e01, 0x0e16, - }, - }, - { // nnh - "nzÇŽmɔ̂ɔnngilísèShwóŋò menkesaÅ‹felaÅ‹séeShwóŋò pʉa mbasÇŽShwóŋò pamomShwóŋò" + - " pʉa nzsekàʼaShwóŋò pafutShwóŋò pʉ̀a njinikomShwóŋò pakÉ”siShwóŋò mbu" + - "luShwóŋò ngáŋtʉɔʼShwóŋò pʉa YɔɔnmendiShwóŋò pʉa shÿó BÉ›gtùaShwóŋò ng" + - "iembɔɔnShwóŋò pʉa shÿó MbafìaShwóŋò TsaÅ‹", - []uint16{ // 576 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0028, 0x0028, 0x0028, 0x0028, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - // Entry 40 - 7F - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - // Entry 80 - BF - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - // Entry C0 - FF - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0047, 0x0056, 0x0056, - 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x007e, 0x007e, 0x007e, - 0x007e, 0x007e, 0x007e, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, - 0x0097, 0x0097, 0x00a8, 0x00a8, 0x00a8, 0x00b7, 0x00b7, 0x00ce, - 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, - 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, - // Entry 100 - 13F - 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, - 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, - 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, - 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00e8, 0x00e8, 0x00e8, 0x00e8, - 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, - 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, - 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, - 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, - // Entry 140 - 17F - 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, - 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, - 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, - 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, - 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, - 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - // Entry 180 - 1BF - 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - // Entry 1C0 - 1FF - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - // Entry 200 - 23F - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x0138, 0x0147, - }, - }, - { // no - noLangStr, - noLangIdx, - }, - { // nus - "Thok aka̱niThok bunyniThok JalabniThok bäläruthaThok bälga̱a̱rianiThok b" + - "ängaliThok cikThok jarmaniThok girikniThok liÅ‹li̱thniThok i̱thpaani" + - "aniThok perthianiThok pÉ”rÉ”thaniThok É£owthaniThok ɣändiniThok ɣänga̱a" + - "̱riÉ›niThok indunithianiThok i̱gboniThok i̱talianiThok japanniThok j" + - "abanithniThok kameeriThok kurianiThok mayÉ›yniThok bormi̱thniThok nap" + - "alniThok da̱cThok puÉ”njabaniThok pölicniThok puÉ”tigaliThok ji̱ römTh" + - "ok ra̱ciaaniThok ruaandaniThok thomaalianiThok i̱thwidicniThok tamil" + - "niThok tayniThok turkicniThok ukeraaniniThok udoniThok betnaamniThok" + - " yurubaniThok caynaThok dhuluniThok Nath", - []uint16{ // 446 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x0017, 0x0017, - 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0033, 0x0048, - 0x0048, 0x0048, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, - 0x0055, 0x0055, 0x0055, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, - 0x0069, 0x0069, 0x0069, 0x0069, 0x0075, 0x0086, 0x0086, 0x0098, - 0x0098, 0x0098, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00b6, - 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00c4, - 0x00c4, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00e9, 0x00e9, 0x00e9, - // Entry 40 - 7F - 0x00e9, 0x00fa, 0x00fa, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, - 0x0116, 0x0116, 0x0122, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, - 0x0131, 0x0131, 0x013d, 0x013d, 0x0149, 0x0149, 0x0149, 0x0149, - 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, - 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, - 0x0149, 0x0149, 0x0149, 0x0156, 0x0156, 0x0166, 0x0166, 0x0166, - 0x0172, 0x0172, 0x017c, 0x017c, 0x017c, 0x017c, 0x017c, 0x017c, - 0x017c, 0x017c, 0x017c, 0x017c, 0x017c, 0x018c, 0x018c, 0x0199, - // Entry 80 - BF - 0x0199, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01b6, 0x01c5, 0x01d3, - 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, - 0x01d3, 0x01d3, 0x01e3, 0x01e3, 0x01e3, 0x01e3, 0x01e3, 0x01e3, - 0x01f4, 0x01f4, 0x0200, 0x0200, 0x0200, 0x020a, 0x020a, 0x020a, - 0x020a, 0x020a, 0x0217, 0x0217, 0x0217, 0x0217, 0x0217, 0x0226, - 0x0230, 0x0230, 0x0230, 0x023e, 0x023e, 0x023e, 0x023e, 0x023e, - 0x023e, 0x024b, 0x024b, 0x0255, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - // Entry C0 - FF - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - // Entry 100 - 13F - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - // Entry 140 - 17F - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - // Entry 180 - 1BF - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, - 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x026a, - }, - }, - { // nyn - "OrukaniOrumarikiOruharabuOruberarusiOruburugariyaOrubengariOruceekiOrugi" + - "rimaaniOruguriikiOrungyerezaOrusupaaniOrupaasiyaOrufaransaOruhausaOr" + - "uhindiOruhangareOruindoneziaOruiboOruyitareOrujapaaniOrujavaOrukambo" + - "diyaOrukoreyaOrumalesiyaOruburumaOrunepaliOrudaakiOrupungyabiOrupoor" + - "iOrupocugoOruromaniaOrurrashaOrunyarwandaOrusomaariOruswidiOrutamiri" + - "OrutailandiOrukurukiOrukurainiOru-UruduOruviyetinaamuOruyorubaOrucha" + - "inaOruzuruRunyankore", - []uint16{ // 449 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0010, 0x0010, - 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0024, 0x0031, - 0x0031, 0x0031, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, - 0x003b, 0x003b, 0x003b, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, - 0x004f, 0x004f, 0x004f, 0x004f, 0x0059, 0x0064, 0x0064, 0x006e, - 0x006e, 0x006e, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0082, - 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x008a, - 0x008a, 0x0092, 0x0092, 0x0092, 0x0092, 0x009c, 0x009c, 0x009c, - // Entry 40 - 7F - 0x009c, 0x00a8, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00b7, 0x00b7, 0x00c1, 0x00c8, 0x00c8, 0x00c8, 0x00c8, 0x00c8, - 0x00c8, 0x00c8, 0x00d4, 0x00d4, 0x00dd, 0x00dd, 0x00dd, 0x00dd, - 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, - 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, - 0x00dd, 0x00dd, 0x00dd, 0x00e8, 0x00e8, 0x00f1, 0x00f1, 0x00f1, - 0x00fa, 0x00fa, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, - 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x010d, 0x010d, 0x0115, - // Entry 80 - BF - 0x0115, 0x011e, 0x011e, 0x011e, 0x011e, 0x0128, 0x0131, 0x013d, - 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, - 0x013d, 0x013d, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, - 0x014f, 0x014f, 0x0158, 0x0158, 0x0158, 0x0163, 0x0163, 0x0163, - 0x0163, 0x0163, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x0176, - 0x017f, 0x017f, 0x017f, 0x018d, 0x018d, 0x018d, 0x018d, 0x018d, - 0x018d, 0x0196, 0x0196, 0x019f, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - // Entry C0 - FF - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - // Entry 100 - 13F - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - // Entry 140 - 17F - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - // Entry 180 - 1BF - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, - // Entry 1C0 - 1FF - 0x01b0, - }, - }, - { // om - "AfrikootaAfaan SidaamaaArabiffaaAfaan AzerbaijaniAfaan BelarusiaAfaan Bu" + - "lgariyaAfaan BaangladeshiAfaan BosniyaaAfaan KatalaaAfaan CzechWelis" + - "hiffaaAfaan DeenmaarkAfaan JarmaniiAfaan GiriikiIngliffaAfaan Espera" + - "ntooAfaan IspeenAfaan IstooniyaAfaan BaskuuAfaan PersiaAfaan Fiilaan" + - "diAfaan FaroeseAfaan FaransaayiiAfaan FirisiyaaniAfaan AyirishiiScot" + - "s GaelicAfaan GalishiiAfaan GuaraniAfaan GujaratiAfaan HebrewAfaan H" + - "indiiAfaan CroatianAfaan HangaariInterlinguaAfaan IndoneziyaAyiislan" + - "diffaaAfaan XaaliyaaniAfaan JapaniiAfaan JavaAfaan GeorgianAfaan Kan" + - "nadaAfaan KoreaAfaan LaatiniAfaan LiituniyaaAfaan LativiyaaAfaan Mac" + - "edooniyaaMalayaalamiffaaAfaan MaratiiMalaayiffaaAfaan MaltesiiAfaan " + - "NepaliiAfaan DachiiAfaan NorwegianAfaan NorweyiiAfaan OccitOromooAfa" + - "an PunjabiiAfaan PolandiiAfaan PorchugaalAfaan RomaniyaaAfaan Rushiy" + - "aaAfaan SinhaleseAfaan SlovakAfaan IslovaniyaaAfaan AlbaniyaaAfaan S" + - "erbiyaAfaan SudaaniiAfaan SuwidiinSuwahiliiAfaan TamiliiAfaan Telugu" + - "Afaan TayiiAfaan TigireeLammii TurkiiAfaan TurkiiAfaan UkreeniiAfaan" + - " UrduAfaan UzbekAfaan VeetinamAfaan XhosaChineseAfaan ZuuluAfaan Fil" + - "ippiniiAfaan KilingonAfaan Portugali (Braazil)Afaan Protuguese", - []uint16{ // 601 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0009, 0x0017, 0x0017, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0031, 0x0031, 0x0040, 0x004f, - 0x004f, 0x004f, 0x0061, 0x0061, 0x0061, 0x006f, 0x007c, 0x007c, - 0x007c, 0x007c, 0x007c, 0x0087, 0x0087, 0x0087, 0x0092, 0x00a1, - 0x00af, 0x00af, 0x00af, 0x00af, 0x00bc, 0x00c4, 0x00d4, 0x00e0, - 0x00ef, 0x00fb, 0x0107, 0x0107, 0x0116, 0x0116, 0x0123, 0x0134, - 0x0145, 0x0154, 0x0160, 0x016e, 0x017b, 0x0189, 0x0189, 0x0189, - 0x0195, 0x01a1, 0x01a1, 0x01af, 0x01af, 0x01bd, 0x01bd, 0x01bd, - // Entry 40 - 7F - 0x01c8, 0x01d8, 0x01d8, 0x01d8, 0x01d8, 0x01d8, 0x01d8, 0x01e6, - 0x01f6, 0x01f6, 0x0203, 0x020d, 0x021b, 0x021b, 0x021b, 0x021b, - 0x021b, 0x021b, 0x021b, 0x0228, 0x0233, 0x0233, 0x0233, 0x0233, - 0x0233, 0x0233, 0x0233, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, - 0x0240, 0x0250, 0x0250, 0x025f, 0x025f, 0x025f, 0x025f, 0x0271, - 0x0280, 0x0280, 0x028d, 0x0298, 0x02a6, 0x02a6, 0x02a6, 0x02a6, - 0x02b3, 0x02b3, 0x02bf, 0x02ce, 0x02dc, 0x02dc, 0x02dc, 0x02dc, - 0x02e7, 0x02e7, 0x02ed, 0x02ed, 0x02ed, 0x02fb, 0x02fb, 0x0309, - // Entry 80 - BF - 0x0309, 0x0319, 0x0319, 0x0319, 0x0319, 0x0328, 0x0336, 0x0336, - 0x0336, 0x0336, 0x0336, 0x0336, 0x0336, 0x0345, 0x0351, 0x0362, - 0x0362, 0x0362, 0x0362, 0x0371, 0x037e, 0x037e, 0x037e, 0x038c, - 0x039a, 0x03a3, 0x03b0, 0x03bc, 0x03bc, 0x03c7, 0x03d4, 0x03e1, - 0x03e1, 0x03e1, 0x03ed, 0x03ed, 0x03ed, 0x03ed, 0x03ed, 0x03fb, - 0x0405, 0x0410, 0x0410, 0x041e, 0x041e, 0x041e, 0x041e, 0x0429, - 0x0429, 0x0429, 0x0429, 0x0430, 0x043b, 0x043b, 0x043b, 0x043b, - 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, - // Entry C0 - FF - 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, - 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, - 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, - 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, - 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, - 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, - 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, - 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, - // Entry 100 - 13F - 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, - 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, - 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, - 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - // Entry 140 - 17F - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - // Entry 180 - 1BF - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - // Entry 1C0 - 1FF - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - // Entry 200 - 23F - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, - 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x0459, - 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, - 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, - 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, - 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, - 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, - // Entry 240 - 27F - 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, - 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, - 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0472, - 0x0482, - }, - }, - { // or - "ଅଫାରà­à¬†à¬¬à­à¬–ାଜିଆନà­à¬…ବେସà­à¬¤à¬¨à¬†à¬«à­à¬°à¬¿à¬•à¬¾à¬¨à¬¸à­à¬…କନà­à¬†à¬®à¬¹à¬¾à¬°à¬•à¬¿à¬†à¬°à­à¬—ୋନୀଆରବିକà­à¬†à¬¸à¬¾à¬®à­€à¬†à¬­à¬¾à¬°à¬¿à¬•à­à¬†à­Ÿà¬®à¬¾" + - "ରାଆଜେରବାଇଜାନିବଶଖିରà­à¬¬à­‡à¬²à¬¾à¬°à­à¬·à¬¿à¬†à¬¨à­à¬¬à­à¬²à¬—େରିଆନà­à¬¬à¬¿à¬¸à¬²à¬¾à¬®à¬¾à¬¬à¬¾à¬®à­à¬¬à¬¾à¬°à¬¾à¬¬à¬™à­à¬—ାଳୀତିବେ" + - "ତାନà­à¬¬à­à¬°à­‡à¬Ÿà¬¨à­à¬•à¬¾à¬Ÿà¬²à¬¾à¬¨à­à¬•à¬¾à¬Ÿà¬¾à¬²à¬¾à¬¨à­à¬šà­‡à¬šà¬¨à­à¬šà¬¾à¬®à­‹à¬°à­‹à¬•à­‹à¬°à­à¬¸à¬¿à¬•à¬¾à¬¨à­à¬•à­à¬°à­€à¬šà­‡à¬•à­à¬šà¬°à­à¬šà­à¬š ସà­à¬²à¬¾" + - "ଭିକà­à¬šà­à¬­à¬¾à¬¶à­à­±à­‡à¬²à­à¬¸à¬¡à¬¾à¬¨à­à¬¨à¬¿à¬¸à­à¬œà¬°à­à¬®à¬¾à¬¨à­à¬¡à¬¿à¬­à­‡à¬¹à­€à¬­à­‚ଟାନୀଇୱେଗà­à¬°à­€à¬•à­à¬‡à¬‚ରାଜୀà¬à¬¸à­à¬ªà¬¾à¬°à­‡à¬£à­" + - "ଟୋସà­à¬ªà¬¾à¬¨à¬¿à¬¸à­à¬à¬¸à­à¬¤à­‹à¬¨à¬¿à¬†à¬¨à­à¬¬à¬¾à¬¸à­à¬•à­à­±à¬¿à¬ªà¬°à­à¬¸à¬¿à¬†à¬¨à­à¬«à­à¬²à¬¾à¬¹à¬«à¬¿à¬¨à­à¬¨à¬¿à¬¸à­à¬«à¬¿à¬œà¬¿à¬«à¬¾à¬°à­‹à¬à¬¸à­‡à¬«à­à¬°à­‡à¬žà­" + - "ଚପଶà­à¬šà¬¿à¬® ଫà­à¬°à¬¿à¬¸à¬¿à­Ÿà¬¨à­à¬‡à¬°à¬¿à¬¸à­à¬¸à­à¬•à¬Ÿà¬¿à¬¸à­ ଗାà¬à¬²à¬¿à¬•à­à¬—ାଲସିଆନà­à¬—à­à¬†à¬°à¬¾à¬¨à­€à¬—à­à¬œà­à¬°à¬¾à¬Ÿà­€à¬®à¬¾à¬à¬•à­à¬¸" + - "ହୌସାହେବà­à¬°à­à­Ÿà­à¬¹à¬¿à¬¨à­à¬¦à­€à¬¹à¬¿à¬°à¬¿ ମୋଟà­à¬•à­à¬°à­‹à¬†à¬Ÿà¬¿à¬†à¬¨à­à¬¹à­ˆà¬¤à¬¾à­Ÿà¬¿à¬¨à­à¬¹à¬™à­à¬—େରିଆନà­à¬†à¬°à­à¬®à­‡à¬¨à¬¿à¬†à¬¨à­à¬¹" + - "େରେରୋଇରà­à¬£à­à¬Ÿà¬²à¬¿à¬™à­à¬—à­à¬†à¬‡à¬£à­à¬¡à­‹à¬¨à­‡à¬¸à¬¿à¬†à¬¨à­à¬‡à¬°à­à¬£à­à¬Ÿà¬°à¬²à¬¿à¬™à­à¬—à­à¬‡à¬‡à¬—à­à¬¬à­‹à¬¸à¬¿à¬šà­à¬†à¬¨à­ ୟୀଇନà­à¬ªà¬¿à­Ÿà¬¾" + - "କà­à¬‡à¬¡à­‹à¬†à¬‡à¬¸à¬²à¬¾à¬£à­à¬¡à¬¿à¬•à­à¬‡à¬Ÿà¬¾à¬²à¬¿à¬†à¬¨à­à¬‡à¬¨à¬•à­€à¬Ÿà­à¬¤à­à¬œà¬¾à¬ªà¬¾à¬¨à­€à¬œà­à¬œà¬¾à¬­à¬¾à¬¨à­€à¬œà­à¬œà¬°à­à¬œà¬¿à¬†à¬¨à­à¬•à¬™à­à¬—ୋକୀକà­à­Ÿ" + - "à­à¬•à­à­±à¬¾à¬¨à­à­Ÿà¬¾à¬®à­à¬•à¬¾à¬œà¬¾à¬•à­à¬—à­à¬°à­€à¬¨à¬²à¬¾à¬£à­à¬¡à¬¿à¬•à­à¬–à­à¬®à­‡à¬°à­à¬•à¬¨à­à¬¨à¬¡à¬•à­‹à¬°à¬¿à¬†à¬¨à­à¬•à¬¨à­à¬°à­€à¬•à¬¾à¬¶à­à¬®à¬¿à¬°à­€à¬•à­à¬°à­à¬¦" + - "à­à¬¦à¬¿à¬¶à­à¬•à­‹à¬®à¬¿à¬•à­‹à¬°à­à¬¨à¬¿à¬¸à­à¬•à¬¿à¬°à¬—ିଜà­à¬²à¬¾à¬Ÿà¬¿à¬¨à­à¬²à¬•à­à¬¸à­‡à¬®à¬¬à¬°à­à¬—ିସà­à¬—ନà­à¬¦à¬¾à¬²à¬¿à¬®à­à¬¬à­à¬°à­à¬—ିସà­à¬²à¬¿à¬™à­à¬—ା" + - "ଲାଲାଓଲିଥà­à¬†à¬¨à¬¿à¬†à¬¨à­à¬²à­à­Ÿà­à¬¬à¬¾-କାଟାଙà­à¬—ାଲାଟଭିଆନà­à¬®à¬¾à¬²à¬¾à¬—ାସୀମାରà­à¬¶à¬¾à¬²à­€à¬œà­à¬®à¬¾à¬“ରୀମାକଡୋ" + - "ନିଆନà­à¬®à¬¾à¬²à¬¾à­Ÿà¬²à¬®à­à¬®à¬™à­à¬—ୋଲିଆନà­à¬®à¬°à¬¾à¬ à­€à¬®à¬¾à¬²à­Ÿà¬®à¬¾à¬²à¬Ÿà­€à¬œà­à¬¬à¬°à­à¬®à­€à¬œà­à¬¨à¬¾à¬‰à¬°à­à¬‰à¬¤à­à¬¤à¬° ନେଡବେଲେନେ" + - "ପାଳୀଡୋଙà­à¬—ାଡଚà­à¬¨à¬°à­±à­‡à¬œà¬¿à¬†à¬¨à­ ନିୟୋରà­à¬¸à­à¬•à¬¨à¬°à­±à­‡à¬œà¬¿à¬†à¬¨à­ ବୋକମଲà­à¬¦à¬•à­à¬·à¬¿à¬£ ନେଡବେଲେନାଭା" + - "ଜୋନିୟାଞà­à¬œà¬“ସିଟାନà­à¬“ଜିୱାଓରୋମୋଓଡ଼ିଆଓସେଟିକà­à¬ªà¬žà­à¬œà¬¾à¬¬à­€à¬ªà¬¾à¬²à¬¿à¬ªà­‹à¬²à¬¿à¬¶à­à¬ªà¬¾à¬¸à­à¬¤à­‹à¬ªà¬°à­à¬¤à­" + - "ତà­à¬—à­à¬°à­€à¬œà­à¬•à­à­±à­‡à¬šà­à¬†à¬°à­‡à¬¹à­‡à¬Ÿà­‹-ରୋମାନà­à¬¸à¬°à­à¬£à­à¬¡à¬¿à¬°à­‹à¬®à¬¾à¬¨à¬¿à¬†à¬¨à­à¬°à¬·à¬¿à¬†à¬¨à­à¬•à¬¿à¬¨à­à­Ÿà¬¾à¬°à­±à¬¾à¬£à­à¬¡à¬¾à¬¸à¬‚ସ" + - "à­à¬•à­ƒà¬¤à¬¸à¬°à­à¬¦à¬¿à¬¨à¬¿à¬†à¬¨à­à¬¸à¬¿à¬¨à­à¬§à­€à¬‰à¬¤à­à¬¤à¬° ସାମିସାଙà­à¬—ୋସିଂହଳସà­à¬²à­‹à¬­à¬¾à¬•à­à¬¸à­à¬²à­‹à¬­à­‡à¬¨à¬¿à¬†à¬¨à­à¬¸à¬¾à¬®à­‹à¬†à¬¨" + - "à­à¬¶à­‹à¬¨à¬¾à¬¸à­‹à¬®à¬¾à¬²à¬¿à¬†à¬†à¬²à¬¬à¬¾à¬¨à¬¿à¬†à¬¨à­à¬¸à¬°à­à¬¬à¬¿à¬†à¬¨à­à¬¸à­à¬¬à¬¾à¬¤à­€à¬¸à­‡à¬¸à­‹à¬¥à­‹à¬¸à­à¬¦à¬¾à¬¨à­€à¬œà­à¬¸à­à­±à­‡à¬¡à¬¿à¬¸à­à¬¸à­à­±à¬¾à¬¹à¬¿à¬²à­à¬¤" + - "ାମିଲà­à¬¤à­‡à¬²à­à¬—à­à¬¤à¬¾à¬œà¬¿à¬•à­à¬¥à¬¾à¬‡à¬Ÿà­à¬°à¬¿à¬—ିନିଆତà­à¬°à­à¬•à¬®à­‡à¬¨à­à¬¸à­‡à¬¸à­à¬¬à¬¾à¬¨à¬¾à¬Ÿà­‹à¬™à­à¬—ାତà­à¬°à­à¬•à¬¿à¬¸à­à¬¸à­‹à¬‚ଗାତ" + - "ାତାରà­à¬¤à¬¾à¬¹à¬¿à¬¤à¬¿à¬†à¬¨à­à­Ÿà­à¬˜à­à¬°à­à­Ÿà­à¬•à­à¬°à¬¾à¬¨à¬¿à¬†à¬¨à­à¬‰à¬°à­à¬¦à­à¬¦à­à¬‰à¬œà¬¬à­‡à¬•à­à¬­à­‡à¬£à­à¬¡à¬¾à¬­à¬¿à¬à¬¤à¬¨à¬¾à¬®à¬¿à¬œà­à¬¬à­‹à¬²à¬¾à¬ªà­" + - "କୱାଲà­à¬¨à­à­±à­‹à¬²à¬«à­à¬–ୋସାୟିଡିସà­à­Ÿà­‹à¬°à­à¬¬à¬¾à¬œà­à¬†à¬™à­à¬—ଚାଇନୀଜà­à¬œà­à¬²à­à¬†à¬šà¬¾à¬‡à¬¨à­€à¬œà­à¬†à¬•à­‹à¬²à¬¿à¬†à¬¦à¬¾à¬™à­à¬—େମ" + - "à­à¬…ଦà­à­Ÿà¬˜à­‡à¬†à¬«à­à¬°à¬¿à¬¹à¬¿à¬²à¬¿à¬†à¬‡à¬¨à­à¬†à¬•à¬¾à¬¡à¬¿à¬†à¬¨à­à¬†à¬²à­‡à¬‡à¬Ÿà­à¬¦à¬•à­à¬·à¬¿à¬£ ଆଲà­à¬Ÿà¬¾à¬‡à¬ªà­à¬°à­à¬£à¬¾ ଇà¬à¬°à¬¾à¬œà­€à¬…à¬à¬—ୀକା" + - "ଆରାମାଇକà­à¬†à¬°à¬¾à¬‰à¬•à¬¾à¬¨à¬¿à¬†à¬¨à­à¬†à¬°à¬¾à¬ªà¬¾à¬¹à­‹à¬†à¬°à­±à¬•à¬†à¬·à­à¬Ÿà­à¬°à¬¿à¬†à¬¨à­à¬†à­±à¬¾à¬§à¬¿à¬¬à¬¾à¬²à­à¬šà¬¿à¬¬à¬¾à¬²à¬¿à¬¨à­€à¬œà­à¬¬à¬¾à¬¸à¬¾à¬¬à­‡à¬œ" + - "ାବେମà­à¬¬à¬¾à¬­à­‹à¬œà¬ªà­à¬°à­€à¬¬à¬¿à¬•à­‹à¬²à­à¬¬à¬¿à¬¨à¬¿à¬¬à¬¿à¬•à­à¬¸à¬¿à¬•à¬¾à¬¬à­à¬°à¬¾à¬œà­à¬¬à­à¬°à¬¿à¬†à¬Ÿà­à¬¬à­à¬—ୀନୀଜà­à¬¬à­à¬²à¬¿à¬¨à­à¬•à¬¾à¬¡à­‹à¬•à¬¾à¬°" + - "ିବà­à¬†à¬¤à­à¬¸à¬®à­à¬¸à­€à¬¬à­à¬†à¬¨à­‹à¬šà¬¿à¬¬à­à¬šà¬¾à¬›à¬—ତାଇଚà­à¬•à­€à¬¸à­‡à¬®à¬¾à¬°à­€à¬šà¬¿à¬¨à­à¬•à­ ଜାରଗାà¬à¬¨à­à¬šà­‹à¬Ÿà­±à¬¾à¬šà¬¿à¬ªà­‡à­±à¬¾à¬¨à­à¬š" + - "େରୋକୀଚେଚେନାକପà­à¬Ÿà¬¿à¬•à­à¬•à­à¬°à­€à¬®à¬¿à¬¨à­ ତà­à¬°à­à¬•à­€à¬¸à­à¬•à¬¾à¬¶à­à¬¬à¬¿à¬†à¬¨à­à¬¡à¬¾à¬•à­‹à¬Ÿà¬¾à¬¡à¬¾à¬°à¬¾à¬—à­à­±à¬¾à¬¡à­‡à¬²à¬¾à­±à­‡à¬°à­" + - "ସà­à¬²à­‡à¬­à­à¬¡à­‹à¬—à­à¬°à¬¿à¬¬à­à¬¦à¬¿à¬™à­à¬•à¬¾à¬¡à­‹à¬—à­à¬°à­€à¬¨à¬¿à¬šà¬³à¬¾ ସରà­à¬¬à¬¿à¬†à¬¨à­à¬¡à­à¬†à¬¨à¬¾à¬®à¬§à­à­Ÿ ପରà­à¬¤à­à¬¤à­à¬—ାଲୀଡà­à¬†à¬²à¬¾" + - "à¬à¬«à¬¿à¬•à­à¬ªà­à¬°à¬¾à¬šà­€à¬¨à­ ମିଶିରିà¬à¬•à¬¾à¬œà­à¬•à­à¬à¬²à¬¾à¬®à¬¾à¬‡à¬Ÿà­à¬®à¬§à­à­Ÿ ଇà¬à¬°à¬¾à¬œà­€à¬‡à­±à­‹à¬£à­à¬¡à­‹à¬«à¬¾à¬™à­à¬—ଫିଲିପିନୋ" + - "ଫନà­à¬®à¬§à­à­Ÿ ଫà­à¬°à­‡à¬žà­à¬šà¬ªà­à¬°à­à¬£à¬¾ ଫà­à¬°à­‡à¬žà­à¬šà¬‰à¬¤à­à¬¤à¬° ଫà­à¬°à¬¿à¬¸à¬¿à­Ÿà¬¾à¬¨à­à¬ªà­‚ରà­à¬¬ ଫà­à¬°à¬¿à¬¸à¬¿à­Ÿà¬¾à¬¨à­à¬«à­à¬°à¬¿à­Ÿ" + - "à­à¬²à­€à­Ÿà¬¾à¬¨à­à¬—ାଗାୟୋଗବାୟାଗୀଜà­à¬œà¬¿à¬¬à­à¬°à¬¾à¬Ÿà­€à¬œà­à¬®à¬¿à¬¡à¬¿à¬²à­ ହାଇ ଜରà­à¬®à¬¾à¬¨à­à¬ªà­à¬°à­à¬£à¬¾ ହାଇ ଜରà­à¬®à¬¾" + - "ନà­à¬—ୋଣà­à¬¡à¬¿à¬—ୋରୋଣà­à¬Ÿà¬¾à¬²à­‹à¬—ୋଥିକà­à¬—à­à¬°à­‡à¬¬à­‹à¬ªà­à¬°à¬¾à¬šà­€à¬¨à­ à­Ÿà­à¬¨à¬¾à¬¨à­€à¬¸à­à¬¬à¬¿à¬¸à­ ଜରà­à¬®à¬¾à¬¨à­à¬¸à­à¬¬à¬¿à¬šà­ " + - "ଇନà­à¬¹à¬¾à¬‡à¬¡à¬¾à¬¹à¬¾à­±à¬¾à¬‡à¬¨à­à¬¹à¬¿à¬²à¬¿à¬—ୈନନà­à¬¹à¬¿à¬¤à­€à¬¤à­‡à¬¹à¬à¬™à­à¬—ଉପର ସରà­à¬¬à¬¿à¬†à¬¨à­à¬¹à­à¬ªà¬¾à¬‡à¬¬à¬¾à¬¨à­à¬‡à¬²à­‹à¬•à­‹à¬‡à¬à¬™à­à¬—" + - "à­à¬¶à­à¬²à­‹à¬œà¬¬à¬¾à¬¨à­à¬œà­à¬¡à­‡à¬“-ପରà­à¬¸à¬¿à¬†à¬¨à­à¬œà­à¬¡à­‡à¬“-ଆରବୀକà­à¬•à¬¾à¬°à¬¾-କଲà­à¬ªà¬•à­à¬•à¬¬à¬¾à¬‡à¬²à­à¬•à¬šà¬¿à¬¨à­à¬œà­à¬œà­à¬•à¬®à­à¬¬" + - "ାକାୱିକାବାରà­à¬¡à¬¿à¬†à¬¨à­à¬¤à­à­Ÿà¬¾à¬ªà­à¬•à­‹à¬°à­‹à¬–ାସୀଖୋତାନୀଜà­à¬•à¬¿à¬®à­à¬¬à­à¬£à­à¬¡à­à¬•à­‹à¬¨à¬•à¬¾à¬¨à­€à¬•à­‹à¬¸à¬°à­ˆà¬¨à­à¬•à­ˆà¬ªà­‡" + - "ଲେକରାଚୟ-ବଲà­à¬•à¬¾à¬°à¬•à¬¾à¬°à­‡à¬²à¬¿à­Ÿà¬¾à¬¨à­à¬•à­à¬°à­à¬–କà­à¬®à­€à¬•à­à¬•à­à¬¤à­‡à¬¨à¬¾à¬‰à¬²à¬¾à¬¦à¬¿à¬¨à­‹à¬²à¬¾à¬¹à¬¾à¬£à­à¬¡à¬¾à¬²à¬¾à¬®à­à¬¬à¬¾à¬²à­‡à¬œà¬—" + - "ିୟାନà­à¬®à¬™à­à¬—ୋଲୋଜିଲà­à¬¬à¬¾-ଲà­à¬²à­à¬†à¬²à­à¬‡à¬¸à­‡à¬¨à­‹à¬²à­à¬£à­à¬¡à¬¾à¬²à­à¬“ଲà­à¬¸à¬¾à¬‰à¬®à¬¾à¬¦à­à¬°à­€à¬¸à­à¬®à¬¾à¬—ାହୀମୈଥିଳୀମ" + - "କାସରà­à¬®à¬¾à¬£à­à¬¡à¬¿à¬™à­à¬—ୋମାସାଇମୋକà­à¬·à¬®à¬¨à­à¬¦à¬¾à¬°à¬®à­‡à¬£à­à¬¡à­‡à¬®à¬§à­à­Ÿ ଇରିଶà­à¬®à¬¿à¬•à¬®à­Œà¬•à­à¬®à¬¿à¬¨à¬¾à¬™à­à¬—ାବାଉମ" + - "ାଞà­à¬šà­à¬®à¬£à¬¿à¬ªà­à¬°à­€à¬®à­‹à¬¹à­Œà¬•à¬®à­‹à¬¸à¬¿à¬¬à¬¿à¬¬à¬¿à¬§ ଭାଷାମାନକà­à¬°à­€à¬•à­à¬®à¬¿à¬°à¬¾à¬£à­à¬¡à¬¿à¬œà­à¬®à¬¾à¬°à­±à¬¾à¬°à­€à¬à¬°à­à¬œà­Ÿà¬¾à¬¨à­€à¬ª" + - "ୋଲିଟାନà­à¬²à­‹ ଜରà­à¬®à¬¾à¬¨à­à¬¨à­‡à­±à¬¾à¬°à­€à¬¨à­€à­Ÿà¬¾à¬¸à­à¬¨à¬¿à­Ÿà­à¬†à¬¨à­à¬¨à­‹à¬—ାଇପà­à¬°à­à¬£à¬¾ ନରà­à¬¸à¬à¬¨à­à¬•à­‹à¬‰à¬¤à­à¬¤à¬°à­€ ସୋ" + - "ଥୋପାରମà­à¬ªà¬°à¬¿à¬• ନେୱାରୀନà­à­Ÿà¬¾à¬®à­±à­‡à¬œà­€à¬¨à­à­Ÿà¬¾à¬¨à¬•à­‹à¬²à­à¬¨à­à­Ÿà¬¾à¬°à­‹à¬žà­à¬œà¬¿à¬®à¬¾à­±à­Œà¬¸à­‡à¬œà­à¬“ଟà­à¬Ÿà­‹à¬®à¬¨à­ ତà­à¬°" + - "à­à¬•à¬¿à¬¸à­à¬ªà¬¾à¬™à­à¬—ାସିନିଆନà­à¬ªà¬¾à¬¹à­à¬²à¬¾à¬­à¬¿à¬ªà¬¾à¬®à­à¬ªà¬¾à¬™à­à¬—ାପାପିୟାମିଣà­à¬Ÿà­‹à¬ªà¬¾à¬²à¬¾à¬‰à¬†à¬¨à­à¬ªà­à¬°à­à¬£à¬¾ ପରà­" + - "ସିଆନà­à¬«à­‹à¬¨à­‡à¬¸à¬¿à¬†à¬¨à­à¬ªà­‹à¬¹à¬ªà¬¿à¬à¬¨à­à¬ªà­à¬°à­à¬£à¬¾ ପà­à¬°à­‡à¬­à­‡à¬¨à­‡à¬¸à¬¿à¬†à¬²à­à¬°à¬¾à¬œà¬¸à­à¬¥à¬¾à¬¨à­€à¬°à¬¾à¬ªà¬¾à¬¨à­à¬‡à¬°à¬¾à¬°à­‹à¬¤à­‹à¬™à­" + - "ଗନà­à¬°à­‹à¬®à¬¾à¬¨à¬¿à¬†à¬°à­‹à¬®à¬¾à¬¨à¬¿à¬†à¬¨à­à¬¸à¬£à­à¬¡à¬¾à­±à­‡à­Ÿà¬¾à¬•à­à¬Ÿà­à¬¸à¬¾à¬®à­Œà¬°à¬¿à¬Ÿà¬¨à­ ଆରମାଇକà­à¬¸à¬¾à¬¸à¬¾à¬•à­à¬¸à¬¾à¬¨à­à¬¤à¬¾à¬³à¬¿à¬¸à¬¿à¬¶" + - "ିଲିଆନà­à¬¸à­à¬•à¬Ÿà¬¸à­à¬¸à­‡à¬²à­à¬•à¬ªà­à¬ªà­à¬°à­à¬£à¬¾ ଇରିଶà­à¬¶à¬¾à¬¨à­à¬¸à¬¿à¬¦à¬¾à¬®à­‹à¬¦à¬•à­à¬·à¬¿à¬£ ସାମିଲà­à¬²à­‡ ସାମିଇନାରୀ" + - " ସାମିସà­à¬•à­‹à¬²à­à¬Ÿ ସାମୀସୋନିଙà­à¬•à­‡à¬¸à­‹à¬—ଡିà¬à¬¨à­à¬¶à¬¾à¬°à¬¾à¬¨à¬¾ ଟୋଙà­à¬—ୋଶେରେରà­à¬¸à­à¬•à­à¬®à¬¾à¬¶à­à¬¶à­à¬¸à­à¬®à­‡à¬°à¬¿" + - "ଆନà­à¬•à­à¬²à¬¾à¬¸à¬¿à¬•à¬¾à¬²à­ ସିରିକà­à¬¸à¬¿à¬°à¬¿à¬•à­à¬¤à¬¿à¬®à¬¨à­‡à¬¤à­‡à¬°à­‡à¬¨à­‹à¬¤à­‡à¬¤à­à¬®à­à¬Ÿà¬¾à¬‡à¬—à­à¬°à­‡à¬¤à­€à¬­à­à¬Ÿà­‹à¬•à­‡à¬²à¬¾à¬‰à¬•à­à¬²à¬¿à¬™" + - "à­à¬—ନà­à¬¤à­à¬²à¬¿à¬™à­à¬—ିଟà­à¬¤à¬¾à¬®à¬¾à¬¶à­‡à¬•à­à¬¨à­à­Ÿà¬¾à¬¸à¬¾ ଟୋଙà­à¬—ୋଟୋକୠପିସିନà­à¬¤à¬¿à¬¸à¬¿à¬®à¬¿à¬¸à¬¿à¬†à¬¨à­à¬Ÿà­à¬®à­à¬¬à­à¬•à¬¾à¬¤" + - "à­à¬­à¬¾à¬²à­à¬¤à­à¬­à¬¿à¬¨à¬¿à¬†à¬¨à­à¬‰à¬¦à¬®à­‚ରà­à¬¤à­à¬¤à­Ÿà­à¬—ୋରଟିକà­à¬‰à¬®à­à¬¬à­à¬£à­à¬¡à­à¬®à­‚ଳଭାଇଭୋଟିକà­à­±à¬¾à¬²à¬®à­‹à­±à¬¾à¬°à­ˆà­±à¬¾à¬¸à­‹" + - "କାଲà­à¬®à­€à¬•à­à­Ÿà¬¾à¬“ୟାପୀସà­à¬œà¬¾à¬ªà­‹à¬Ÿà­‡à¬•à­à¬¬à­à¬²à¬¿à¬¸à¬¿à¬®à­à¬¬à¬²à¬¸à­à¬œà­‡à¬¨à¬¾à¬—ାଜà­à¬¨à­€à¬•à­Œà¬£à¬¸à¬¿ ଲିଙà­à¬—à­à¬‡à¬·à­à¬Ÿ ସା" + - "ମଗà­à¬°à­€ ନାହିà¬à¬œà¬¾à¬œà¬¾à¬…ଷà­à¬Ÿà­à¬°à¬¿à¬†à¬¨à­ ଜରà­à¬®à¬¾à¬¨à¬¸à­à¬¬à¬¿à¬¸à­ ହାଇ ଜରà­à¬®à¬¾à¬¨à­à¬…ଷà­à¬Ÿà­à¬°à­‡à¬²à¬¿à¬†à¬¨à­ ଇà¬à¬°" + - "ାଜୀକାନାଡିଆନୠଇà¬à¬°à¬¾à¬œà­€à¬¬à­à¬°à¬¿à¬Ÿà¬¿à¬¶à­ ଇà¬à¬°à¬¾à¬œà­€à­Ÿà­.à¬à¬¸à­. ଇà¬à¬°à¬¾à¬œà­€à¬²à¬¾à¬Ÿà¬¿à¬¨à­ ଆମେରିକାନୠସ" + - "à­à¬ªà¬¾à¬¨à¬¿à¬¶à­à¬²à­‡à¬¬à­‡à¬°à¬¿à¬†à¬¨à­ ସà­à¬ªà¬¾à¬¨à¬¿à¬¶à­à¬•à¬¾à¬¨à¬¾à¬¡à¬¿à¬†à¬¨à­ ଫà­à¬°à­‡à¬žà­à¬šà¬¸à­à¬¬à¬¿à¬¸à­ ଫà­à¬°à­‡à¬žà­à¬šà­à¬«à­à¬²à­‡à¬®à¬¿à¬¶à­à¬¬" + - "à­à¬°à¬¾à¬œà¬¿à¬²à¬¿à¬†à¬¨à­ ପରà­à¬¤à­à¬¤à­à¬—ୀଜà­à¬²à­‡à¬¬à­‡à¬°à¬¿à¬†à¬¨à­ ପରà­à¬¤à­à¬¤à­à¬—ୀଜà­à¬®à­‹à¬²à¬¡à­‹à¬­à¬¿à¬†à¬¨à­à¬¸à¬°à­à¬¬à­‹-କà­à¬°à­‹à¬†à¬Ÿà¬¿" + - "ଆନà­à¬¸à¬°à¬³à¬¿à¬•à¬°à¬£ ଚାଇନୀଜà­à¬ªà¬¾à¬°à¬®à­à¬ªà¬°à¬¿à¬• ଚାଇନୀଜà­", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x000f, 0x002d, 0x0042, 0x0060, 0x006c, 0x0081, 0x0096, - 0x00a8, 0x00b7, 0x00cc, 0x00de, 0x00ff, 0x0111, 0x0132, 0x0150, - 0x0165, 0x017d, 0x0192, 0x01aa, 0x01bf, 0x01d4, 0x01ec, 0x01fb, - 0x020d, 0x022b, 0x0237, 0x0243, 0x026e, 0x0280, 0x028f, 0x02a7, - 0x02bc, 0x02ce, 0x02e0, 0x02e9, 0x02fb, 0x030d, 0x032e, 0x0346, - 0x0364, 0x037c, 0x0394, 0x03a3, 0x03bb, 0x03c7, 0x03dc, 0x03f1, - 0x041f, 0x042e, 0x0459, 0x0471, 0x0486, 0x049e, 0x04b0, 0x04bc, - 0x04d4, 0x04e6, 0x04ff, 0x051d, 0x0535, 0x0553, 0x0571, 0x0583, - // Entry 40 - 7F - 0x05aa, 0x05ce, 0x05f8, 0x0607, 0x0623, 0x063e, 0x0647, 0x0668, - 0x0680, 0x0698, 0x06b0, 0x06c8, 0x06e0, 0x06ef, 0x0701, 0x071f, - 0x0731, 0x0758, 0x076a, 0x0779, 0x078e, 0x079d, 0x07b5, 0x07d3, - 0x07df, 0x07f7, 0x080c, 0x081e, 0x0845, 0x0854, 0x0878, 0x0890, - 0x0899, 0x08b7, 0x08e2, 0x08fa, 0x0912, 0x0930, 0x093f, 0x095d, - 0x0975, 0x0993, 0x09a2, 0x09ae, 0x09c3, 0x09d8, 0x09e7, 0x0a0c, - 0x0a1e, 0x0a30, 0x0a39, 0x0a70, 0x0a9e, 0x0ac6, 0x0ad8, 0x0aed, - 0x0b02, 0x0b11, 0x0b20, 0x0b2f, 0x0b44, 0x0b59, 0x0b65, 0x0b77, - // Entry 80 - BF - 0x0b89, 0x0bb0, 0x0bc5, 0x0bed, 0x0bff, 0x0c1a, 0x0c2c, 0x0c53, - 0x0c68, 0x0c86, 0x0c98, 0x0cb4, 0x0cc6, 0x0cd5, 0x0ced, 0x0d0e, - 0x0d23, 0x0d2f, 0x0d44, 0x0d5f, 0x0d77, 0x0d89, 0x0d9b, 0x0db3, - 0x0dcb, 0x0de3, 0x0df5, 0x0e07, 0x0e19, 0x0e22, 0x0e3d, 0x0e58, - 0x0e70, 0x0e82, 0x0e9a, 0x0ea9, 0x0ebb, 0x0ed6, 0x0ee8, 0x0f09, - 0x0f1e, 0x0f30, 0x0f42, 0x0f60, 0x0f75, 0x0f87, 0x0f96, 0x0fa2, - 0x0fb4, 0x0fc6, 0x0fd8, 0x0fed, 0x0ff9, 0x1011, 0x1020, 0x103b, - 0x104d, 0x104d, 0x1068, 0x1068, 0x1074, 0x108c, 0x108c, 0x109e, - // Entry C0 - FF - 0x109e, 0x10c3, 0x10e8, 0x10fa, 0x1112, 0x1133, 0x1133, 0x1148, - 0x1148, 0x1154, 0x1154, 0x1154, 0x1154, 0x1154, 0x1172, 0x1172, - 0x1181, 0x1181, 0x1193, 0x11ab, 0x11ab, 0x11b7, 0x11b7, 0x11b7, - 0x11b7, 0x11c3, 0x11d5, 0x11d5, 0x11d5, 0x11d5, 0x11d5, 0x11ea, - 0x11fc, 0x1208, 0x1208, 0x1208, 0x1220, 0x1220, 0x1220, 0x1232, - 0x1232, 0x1232, 0x1232, 0x1247, 0x125f, 0x125f, 0x1271, 0x1271, - 0x127d, 0x128f, 0x128f, 0x12a1, 0x12b6, 0x12b6, 0x12c8, 0x12d7, - 0x12e9, 0x12f5, 0x1320, 0x132f, 0x1347, 0x1359, 0x136b, 0x136b, - // Entry 100 - 13F - 0x1380, 0x1380, 0x13b1, 0x13cc, 0x13de, 0x13f6, 0x13f6, 0x140e, - 0x1420, 0x1438, 0x144a, 0x144a, 0x145c, 0x1484, 0x1484, 0x1493, - 0x14c1, 0x14c1, 0x14d0, 0x14d0, 0x14d0, 0x14df, 0x14df, 0x150a, - 0x151f, 0x1537, 0x1556, 0x1556, 0x156b, 0x156b, 0x157a, 0x1592, - 0x1592, 0x159b, 0x159b, 0x15bd, 0x15e5, 0x15e5, 0x1613, 0x1641, - 0x1665, 0x166b, 0x166b, 0x166b, 0x1677, 0x1686, 0x1686, 0x1692, - 0x16b0, 0x16b0, 0x16e2, 0x1714, 0x1714, 0x1726, 0x1744, 0x1756, - 0x1768, 0x1793, 0x17bb, 0x17bb, 0x17bb, 0x17bb, 0x17d7, 0x17e6, - // Entry 140 - 17F - 0x17e6, 0x17fb, 0x17fb, 0x1816, 0x1828, 0x1837, 0x1859, 0x1859, - 0x1865, 0x1874, 0x1874, 0x1883, 0x189b, 0x189b, 0x189b, 0x18b0, - 0x18b0, 0x18b0, 0x18d8, 0x18fa, 0x18fa, 0x1919, 0x192b, 0x193a, - 0x1946, 0x1955, 0x1961, 0x1982, 0x1982, 0x1994, 0x1994, 0x1994, - 0x1994, 0x19a0, 0x19a0, 0x19ac, 0x19c4, 0x19c4, 0x19c4, 0x19c4, - 0x19c4, 0x19c4, 0x19e2, 0x19e2, 0x19f7, 0x1a0c, 0x1a1e, 0x1a40, - 0x1a40, 0x1a40, 0x1a5e, 0x1a6d, 0x1a6d, 0x1a6d, 0x1a6d, 0x1a7f, - 0x1a94, 0x1aa6, 0x1aa6, 0x1abe, 0x1ad0, 0x1aeb, 0x1aeb, 0x1aeb, - // Entry 180 - 1BF - 0x1aeb, 0x1aeb, 0x1aeb, 0x1afa, 0x1b06, 0x1b06, 0x1b22, 0x1b37, - 0x1b49, 0x1b52, 0x1b61, 0x1b61, 0x1b61, 0x1b61, 0x1b79, 0x1b79, - 0x1b8b, 0x1b9d, 0x1baf, 0x1bcd, 0x1bdc, 0x1bdc, 0x1beb, 0x1bfd, - 0x1c0f, 0x1c0f, 0x1c0f, 0x1c2b, 0x1c2b, 0x1c2b, 0x1c40, 0x1c61, - 0x1c73, 0x1c88, 0x1c97, 0x1ca3, 0x1ca3, 0x1ca3, 0x1cc8, 0x1cda, - 0x1cf8, 0x1d0d, 0x1d0d, 0x1d0d, 0x1d1f, 0x1d1f, 0x1d1f, 0x1d3d, - 0x1d3d, 0x1d59, 0x1d6b, 0x1d7d, 0x1d92, 0x1d92, 0x1d92, 0x1d92, - 0x1da1, 0x1dc0, 0x1dc0, 0x1dcf, 0x1dee, 0x1dee, 0x1e1c, 0x1e37, - // Entry 1C0 - 1FF - 0x1e52, 0x1e64, 0x1e76, 0x1e88, 0x1eb9, 0x1ee0, 0x1ef8, 0x1f16, - 0x1f3a, 0x1f52, 0x1f52, 0x1f52, 0x1f52, 0x1f7d, 0x1f7d, 0x1f98, - 0x1f98, 0x1f98, 0x1fb0, 0x1fb0, 0x1fea, 0x1fea, 0x1fea, 0x2005, - 0x201a, 0x203b, 0x203b, 0x203b, 0x203b, 0x204d, 0x204d, 0x204d, - 0x204d, 0x206b, 0x206b, 0x2080, 0x2092, 0x20c3, 0x20c3, 0x20d5, - 0x20ed, 0x20ed, 0x20ed, 0x20ed, 0x2108, 0x211a, 0x211a, 0x211a, - 0x211a, 0x211a, 0x212f, 0x212f, 0x2151, 0x2151, 0x2151, 0x215d, - 0x215d, 0x216f, 0x216f, 0x216f, 0x218e, 0x21a7, 0x21c3, 0x21e5, - // Entry 200 - 23F - 0x21fd, 0x2215, 0x223a, 0x224c, 0x224c, 0x224c, 0x225e, 0x226a, - 0x2285, 0x2285, 0x2285, 0x22b6, 0x22c8, 0x22c8, 0x22c8, 0x22d7, - 0x22d7, 0x22e9, 0x22fb, 0x2310, 0x231c, 0x2331, 0x2331, 0x234c, - 0x236a, 0x236a, 0x2382, 0x23a7, 0x23c6, 0x23c6, 0x23c6, 0x23c6, - 0x23e7, 0x23e7, 0x23ff, 0x2411, 0x2411, 0x242c, 0x242c, 0x2447, - 0x2462, 0x247d, 0x2486, 0x248f, 0x248f, 0x248f, 0x248f, 0x248f, - 0x24a1, 0x24a1, 0x24a1, 0x24a1, 0x24b0, 0x24bc, 0x24c8, 0x24c8, - 0x24c8, 0x24e0, 0x24e0, 0x24e0, 0x24e9, 0x24fb, 0x24fb, 0x24fb, - // Entry 240 - 27F - 0x24fb, 0x24fb, 0x2513, 0x2537, 0x2537, 0x2549, 0x2549, 0x2555, - 0x25a9, 0x25b5, 0x25b5, 0x25e6, 0x2618, 0x264f, 0x267d, 0x26a8, - 0x26cc, 0x2713, 0x2747, 0x2747, 0x2778, 0x27a3, 0x27bb, 0x27fe, - 0x283b, 0x2859, 0x2887, 0x28b2, 0x28e3, - }, - }, - { // os - "абхазагавеÑтӕафрикаанÑараббагавайрагтӕтӕйрагбашкирагболгайрагбоÑниагката" + - "лайнагцӕцӕйнагчехагчувашагданиагнемыцагбердзейнаганглиÑагеÑперантои" + - "ÑпайнагеÑтойнагбаÑкагперÑайнагфиннагфиджифарерагфранцагирландиагуир" + - "агхорватагвенгериагÑомихагиталиагÑпойнаггуырдзиагкурдаглатинагмӕчъи" + - "дониронпортугалиагуырыÑÑагкитайагадыгейаграгон англиÑагбурÑтагкопта" + - "грагон египтагфилиппинаграгон францаграгон бердзейнагмӕхъӕлонкӕÑгон" + - "бӕлхъӕронхъуымыхъхъаглекъагцигайнагнӕзонгӕ ӕвзагавÑтралиаг немыцагш" + - "вйецариаг немыцагавÑтралиаг англиÑагканадӕйаг англиÑагбритайнаг анг" + - "лиÑагамерикаг англиÑаглатинаг америкаг англиÑагевропӕйаг англиÑагка" + - "надӕйаг францагшвейцариаг францагбразилиаг португалиагевропӕйаг пол" + - "тугалиагӕнцонгонд китайагтрадицион китайаг", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x000e, 0x001a, 0x002c, 0x002c, 0x002c, 0x002c, - 0x003a, 0x003a, 0x0048, 0x0048, 0x0058, 0x0068, 0x0068, 0x007a, - 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x0088, 0x009c, 0x00ac, - 0x00ac, 0x00ac, 0x00ac, 0x00b6, 0x00b6, 0x00c4, 0x00c4, 0x00d0, - 0x00de, 0x00de, 0x00de, 0x00de, 0x00f2, 0x0102, 0x0114, 0x0124, - 0x0134, 0x0140, 0x0152, 0x0152, 0x015e, 0x0168, 0x0176, 0x0184, - 0x0184, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, - 0x01a0, 0x01a0, 0x01a0, 0x01b0, 0x01b0, 0x01c2, 0x01d0, 0x01d0, - // Entry 40 - 7F - 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, - 0x01de, 0x01de, 0x01ec, 0x01ec, 0x01fe, 0x01fe, 0x01fe, 0x01fe, - 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x020a, - 0x020a, 0x020a, 0x020a, 0x0218, 0x0218, 0x0218, 0x0218, 0x0218, - 0x0218, 0x0218, 0x0218, 0x0218, 0x0218, 0x0218, 0x0218, 0x0228, - 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, - 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, - 0x0228, 0x0228, 0x0228, 0x0228, 0x0230, 0x0230, 0x0230, 0x0230, - // Entry 80 - BF - 0x0230, 0x0246, 0x0246, 0x0246, 0x0246, 0x0246, 0x0256, 0x0256, - 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, - 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, - 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, - 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, - 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, - 0x0256, 0x0256, 0x0256, 0x0264, 0x0264, 0x0264, 0x0264, 0x0264, - 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, - // Entry C0 - FF - 0x0274, 0x0274, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, - 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, - 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, - 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, - 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, - 0x028f, 0x028f, 0x028f, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, - 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, - 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, - // Entry 100 - 13F - 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, - 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, - 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02c2, - 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02d6, - 0x02d6, 0x02d6, 0x02d6, 0x02d6, 0x02ef, 0x02ef, 0x02ef, 0x02ef, - 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, - 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, - 0x02ef, 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, - // Entry 140 - 17F - 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, - 0x030e, 0x030e, 0x030e, 0x030e, 0x031e, 0x031e, 0x031e, 0x031e, - 0x031e, 0x031e, 0x031e, 0x031e, 0x031e, 0x031e, 0x031e, 0x031e, - 0x031e, 0x031e, 0x031e, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, - 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, - 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, 0x033c, - 0x033c, 0x033c, 0x033c, 0x033c, 0x033c, 0x033c, 0x033c, 0x0354, - 0x0354, 0x0354, 0x0354, 0x0354, 0x0354, 0x0360, 0x0360, 0x0360, - // Entry 180 - 1BF - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, - // Entry 1C0 - 1FF - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0370, 0x0370, 0x0370, - 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, - 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, - 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, - 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, - // Entry 200 - 23F - 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, - 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, - 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, - 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, - 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, - 0x0370, 0x0370, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - // Entry 240 - 27F - 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, - 0x0389, 0x0389, 0x0389, 0x03ac, 0x03cf, 0x03f4, 0x0417, 0x043a, - 0x045b, 0x048b, 0x04ae, 0x04ae, 0x04cf, 0x04f2, 0x04f2, 0x051b, - 0x0544, 0x0544, 0x0544, 0x0565, 0x0586, - }, - }, - { // pa - paLangStr, - paLangIdx, - }, - { // pa-Arab - "پنجابی", - []uint16{ // 126 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, - }, - }, - { // pl - plLangStr, - plLangIdx, - }, - { // ps - "عربيالمانيیونانيانګلیسيحبشيÙارسيÙینلنډيÙرانسويعبريهنديارمنيایټالويجاپانی" + - "کرديلاتینيملغاسيمقدونيمغوليملایاپولنډيپښتوپورتګاليروسيسنسکریټسویډنی" + - "تاجکترکمنيتاتارازبکيچینيبلوڅي", - []uint16{ // 211 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0014, 0x0014, 0x0014, 0x0014, 0x0020, 0x002e, 0x002e, 0x002e, - 0x0036, 0x0036, 0x0040, 0x0040, 0x004e, 0x004e, 0x004e, 0x005c, - 0x005c, 0x005c, 0x005c, 0x005c, 0x005c, 0x005c, 0x005c, 0x005c, - 0x0064, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x0076, 0x0076, - // Entry 40 - 7F - 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, - 0x0084, 0x0084, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, - 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0098, - 0x0098, 0x0098, 0x0098, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, - 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00b0, 0x00b0, 0x00b0, 0x00bc, - 0x00bc, 0x00c6, 0x00c6, 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00d0, - 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00d0, - 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00dc, - // Entry 80 - BF - 0x00e4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00fc, 0x00fc, - 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, - 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, - 0x0116, 0x0116, 0x0116, 0x0116, 0x011e, 0x011e, 0x011e, 0x012a, - 0x012a, 0x012a, 0x012a, 0x012a, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x013e, 0x013e, 0x013e, 0x013e, 0x013e, 0x013e, 0x013e, - 0x013e, 0x013e, 0x013e, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, - 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, - // Entry C0 - FF - 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, - 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, - 0x0146, 0x0146, 0x0150, - }, - }, - { // pt - ptLangStr, - ptLangIdx, - }, - { // pt-PT - ptPTLangStr, - ptPTLangIdx, - }, - { // qu - "Afrikaans SimiAmarico SimiArabe SimiAsames SimiAzerbaiyano SimiBaskir Si" + - "miBielorruso SimiBulgaro SimiBangla SimiTibetano SimiBreton SimiBosn" + - "io SimiCatalan SimiCorso SimiCheco SimiGales SimiDanes SimiAleman Si" + - "miDivehi SimiGriego SimiIngles SimiEspañol SimiEstonio SimiEuskera S" + - "imiPersa SimiFulah SimiFines SimiFeroes SimiFrances SimiFrison SimiI" + - "rlandes SimiGaelico Escoces SimiGallego SimiGujarati SimiHausa SimiH" + - "ebreo SimiHindi SimiCroata SimiHaitiano Criollo SimiHungaro SimiArme" + - "nio SimiIndonesio SimiIgbo SimiYi SimiIslandes SimiItaliano SimiInuk" + - "titut SimiJapones SimiGeorgiano SimiKazajo SimiGroenlandes SimiKhmer" + - " SimiKannada SimiCoreano SimiKirghiz SimiLuxemburgues SimiLao SimiLi" + - "tuano SimiLeton SimiMaori SimiMacedonio SimiMalayalam SimiMongol Sim" + - "iMarathi SimiMalayo SimiMaltes SimiNepali SimiNeerlandes SimiNoruego" + - " SimiOccitano SimiOdia SimiPunyabi SimiPolaco SimiPashto SimiPortugu" + - "es SimiRunasimiRomanche SimiRumano SimiRuso SimiKinyarwanda SimiSans" + - "crito SimiSindhi SimiChincha Sami SimiCingales SimiEslovaco SimiEslo" + - "veno SimiAlbanes SimiSerbio SimiSueco SimiSuajili SimiTamil SimiTelu" + - "gu SimiTayiko SimiTailandes SimiTigriña SimiTurcomano SimiSetsuana S" + - "imiTurco SimiTartaro SimiUigur SimiUcraniano SimiUrdu SimiUzbeko Sim" + - "iVietnamita SimiWolof SimiIsixhosa SimiYoruba SimiChino SimiIsizulu " + - "SimiMapuche SimiCheroqui SimiChawpi Kurdo SimiBajo Sorbio SimiFilipi" + - "no SimiAlsaciano SimiHmong Daw SimiAlto Sorbio SimiKonkani SimiMohaw" + - "k SimiSesotho Sa Leboa SimiPapiamento SimiKʼicheʼ SimiSakha SimiQull" + - "a Sami SimiSami Lule SimiSami Inari SimiSami Skolt SimiSiriaco Simi", - []uint16{ // 525 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x000e, 0x000e, 0x001a, 0x001a, - 0x0024, 0x002f, 0x002f, 0x002f, 0x003f, 0x004a, 0x0059, 0x0065, - 0x0065, 0x0065, 0x0070, 0x007d, 0x0088, 0x0093, 0x009f, 0x009f, - 0x009f, 0x00a9, 0x00a9, 0x00b3, 0x00b3, 0x00b3, 0x00bd, 0x00c7, - 0x00d2, 0x00dd, 0x00dd, 0x00dd, 0x00e8, 0x00f3, 0x00f3, 0x0100, - 0x010c, 0x0118, 0x0122, 0x012c, 0x0136, 0x0136, 0x0141, 0x014d, - 0x0158, 0x0165, 0x0179, 0x0185, 0x0185, 0x0192, 0x0192, 0x019c, - 0x01a7, 0x01b1, 0x01b1, 0x01bc, 0x01d1, 0x01dd, 0x01e9, 0x01e9, - // Entry 40 - 7F - 0x01e9, 0x01f7, 0x01f7, 0x0200, 0x0207, 0x0207, 0x0207, 0x0214, - 0x0221, 0x022f, 0x023b, 0x023b, 0x0249, 0x0249, 0x0249, 0x0249, - 0x0254, 0x0264, 0x026e, 0x027a, 0x0286, 0x0286, 0x0286, 0x0286, - 0x0286, 0x0286, 0x0292, 0x0292, 0x02a3, 0x02a3, 0x02a3, 0x02a3, - 0x02ab, 0x02b7, 0x02b7, 0x02c1, 0x02c1, 0x02c1, 0x02cb, 0x02d9, - 0x02e7, 0x02f2, 0x02fe, 0x0309, 0x0314, 0x0314, 0x0314, 0x0314, - 0x031f, 0x031f, 0x032e, 0x032e, 0x033a, 0x033a, 0x033a, 0x033a, - 0x0347, 0x0347, 0x0347, 0x0350, 0x0350, 0x035c, 0x035c, 0x0367, - // Entry 80 - BF - 0x0372, 0x0380, 0x0388, 0x0395, 0x0395, 0x03a0, 0x03a9, 0x03b9, - 0x03c7, 0x03c7, 0x03d2, 0x03e3, 0x03e3, 0x03f0, 0x03fd, 0x040a, - 0x040a, 0x040a, 0x040a, 0x0416, 0x0421, 0x0421, 0x0421, 0x0421, - 0x042b, 0x0437, 0x0441, 0x044c, 0x0457, 0x0465, 0x0472, 0x0480, - 0x048d, 0x048d, 0x0497, 0x0497, 0x04a3, 0x04a3, 0x04ad, 0x04bb, - 0x04c4, 0x04cf, 0x04cf, 0x04de, 0x04de, 0x04de, 0x04e8, 0x04f5, - 0x04f5, 0x0500, 0x0500, 0x050a, 0x0516, 0x0516, 0x0516, 0x0516, - 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, - // Entry C0 - FF - 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, 0x0522, 0x0522, 0x0522, - 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, - 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, - 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, - 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, - 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, - 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, - 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x052f, 0x052f, 0x0540, - // Entry 100 - 13F - 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, - 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0550, 0x0550, 0x0550, - 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, - 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, 0x055d, - 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, - 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, - 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, - 0x055d, 0x055d, 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, - // Entry 140 - 17F - 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x0579, 0x0589, 0x0589, - 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, - 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, - 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, - 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, - 0x0589, 0x0589, 0x0589, 0x0589, 0x0595, 0x0595, 0x0595, 0x0595, - 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, - 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, - // Entry 180 - 1BF - 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, - 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, - 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, - 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, - 0x0595, 0x0595, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, - 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, - 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, - 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05b5, 0x05b5, 0x05b5, 0x05b5, - // Entry 1C0 - 1FF - 0x05b5, 0x05b5, 0x05b5, 0x05b5, 0x05b5, 0x05b5, 0x05b5, 0x05b5, - 0x05c4, 0x05c4, 0x05c4, 0x05c4, 0x05c4, 0x05c4, 0x05c4, 0x05c4, - 0x05c4, 0x05c4, 0x05c4, 0x05c4, 0x05c4, 0x05d2, 0x05d2, 0x05d2, - 0x05d2, 0x05d2, 0x05d2, 0x05d2, 0x05d2, 0x05d2, 0x05d2, 0x05d2, - 0x05d2, 0x05d2, 0x05d2, 0x05d2, 0x05dc, 0x05dc, 0x05dc, 0x05dc, - 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, - 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, - 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05eb, 0x05f9, 0x0608, 0x0617, - // Entry 200 - 23F - 0x0617, 0x0617, 0x0617, 0x0617, 0x0617, 0x0617, 0x0617, 0x0617, - 0x0617, 0x0617, 0x0617, 0x0617, 0x0623, - }, - }, - { // rm - "afarabchasianavesticafrikaansakanamaricaragonaisarabassamiavaricaymaraas" + - "erbeidschanicbaschkirbielorussbulgarbislamabambarabengaltibetanbreto" + - "nbosniaccatalantschetschenchamorrocorscreetschecslav da baselgiatsch" + - "uvaschkimricdanaistudestgmaledivicdzongkhaewegrecenglaisesperantospa" + - "gnolestonbascpersianfulahfinlandaisfidschianferraisfranzosfrisirland" + - "aisgaelic scotgalicianguaranigujaratimanxhaussaebraichindihiri motuc" + - "roathaitianungaraisarmenhererointerlinguaindonaisinterlingueigbosich" + - "uan yiinupiakidoislandaistalianinuktitutgiapunaisjavanaisgeorgiankon" + - "gokikuyukuanyamacasacgrönlandaiscambodschankannadacoreankanurikashmi" + - "ricurdkomicornickirghislatinluxemburgaisgandalimburgaislingalalaotli" + - "tuanluba-katangalettonmalagassimarschallaismaorimacedonmalayalammong" + - "olicmarathimalaicmaltaisbirmannaurundebele dal nordnepalaisndongaoll" + - "andaisnorvegiais nynorsknorvegais bokmÃ¥lndebele dal sidnavajonyanjao" + - "ccitanojibwaoromooriyaosseticpunjabipalipolacpaschtoportugaisquechua" + - "rumantschrundirumenrusskinyarwandasanscritsardsindhisami dal nordsan" + - "gosingalaisslovacslovensamoanshonasomalialbanaisserbswazisotho dal s" + - "idsundanaissvedaissuahilitamiltelugutadjiktailandaistigrinyaturkment" + - "swanatongatirctsongatatartahitianuiguricucranaisurduusbecvendavietna" + - "maisvolapukvallonwolofxhosajiddicyorubazhuangchinaiszuluacehacoliand" + - "angmeadygaiafrihiliainuaccadicaleuticaltaic dal sidenglais veglangik" + - "aarameicaraucanicarapahoarawakasturianawadhibelutschibalinaisbasaabe" + - "dschabembabhojpuribikolbinisiksikabrajburiatbugiblincaddocaribicatsa" + - "mcebuanochibchatschagataicchuukaismaripatuà chinookchoctawchipewyanc" + - "herokeecheyennecoptictirc crimeankaschubicdakotadargwadelawareslavey" + - "dogribdinkadogribass sorbdualaollandais mesaundiulaefikegipzian vegl" + - "ekajukelamiticenglais mesaunewondofangfilippinofonfranzos mesaunfran" + - "zos veglfris dal nordfris da l’ostfriulangagayogbayageezgilbertaistu" + - "destg mesaunvegl tudestg da scrittiragondigorontalogoticgrebogrec ve" + - "gltudestg svizzergwichʼinhaidahawaianhiligaynonettitichmongaut sorbh" + - "upaibanilocanoingushlojbangiudaic-persiangiudaic-arabkarakalpakkabyl" + - "ekachinjjukambakawikabardictyapkorokhasikhotanaiskimbundukonkanikosr" + - "aeankpellekarachay-balkarcareliankurukhkumukkutenailadinolahndalamba" + - "lezghianlomongoloziluba-lulualuisenolundaluolushaimaduraismagahimait" + - "hilimakassarmandingomasaimokshamandarmendeirlandais mesaunmicmacmina" + - "ngkabaumanchumanipurimohawkmossiplurilingcreekmirandaismarwarierzyan" + - "eapolitanbass tudestgnewariniasniuenogainordic vegln’kosotho dal nor" + - "dnewari classicnyamwezinyankolenyoronzimaosagetirc ottomanpangasinan" + - "pahlavipampangapapiamentopalaupersian veglfenizianponapeanprovenzal " + - "veglrajasthanirapanuirarotongaromaniaromunicsandawejakutarameic sama" + - "ritansasaksantalisicilianscotselkupirlandais veglshansidamosami dal " + - "sidsami lulesami inarisami skoltsoninkesogdiansranan tongoserersukum" + - "asususumericsiric classicsirictemneterenotetumtigretivtokelauklingon" + - "ictlingittamasheqlingua tsongatok pisintsimshiantumbukatuvalutuvinia" + - "nudmurtugariticmbundulinguas betg determinadasvaivoticwalamowaraywas" + - "hokalmukyaoyapaiszapotecsimbols da Blisszenagazuninagins cuntegns li" + - "nguisticszazatudestg austriacenglais australianenglais canadaisengla" + - "is britannicenglais americanspagnol latinamericanspagnol ibericfranz" + - "os canadaisfranzos svizzerflamportugais brasilianportugais iberianmo" + - "ldavserbo-croatchinais simplifitgàchinais tradiziunal", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0004, 0x000d, 0x0014, 0x001d, 0x0021, 0x0027, 0x0030, - 0x0034, 0x003a, 0x0040, 0x0046, 0x0055, 0x005d, 0x0066, 0x006c, - 0x0073, 0x007a, 0x0080, 0x0087, 0x008d, 0x0094, 0x009b, 0x00a6, - 0x00ae, 0x00b2, 0x00b6, 0x00bc, 0x00cc, 0x00d6, 0x00dc, 0x00e2, - 0x00e9, 0x00f2, 0x00fa, 0x00fd, 0x0101, 0x0108, 0x0111, 0x0118, - 0x011d, 0x0121, 0x0128, 0x012d, 0x0137, 0x0140, 0x0147, 0x014e, - 0x0152, 0x015b, 0x0166, 0x016e, 0x0175, 0x017d, 0x0181, 0x0187, - 0x018d, 0x0192, 0x019b, 0x01a0, 0x01a7, 0x01af, 0x01b4, 0x01ba, - // Entry 40 - 7F - 0x01c5, 0x01cd, 0x01d8, 0x01dc, 0x01e6, 0x01ed, 0x01f0, 0x01f9, - 0x01ff, 0x0208, 0x0211, 0x0219, 0x0221, 0x0226, 0x022c, 0x0234, - 0x0239, 0x0245, 0x0250, 0x0257, 0x025d, 0x0263, 0x026b, 0x026f, - 0x0273, 0x0279, 0x0280, 0x0285, 0x0291, 0x0296, 0x02a0, 0x02a7, - 0x02ab, 0x02b1, 0x02bd, 0x02c3, 0x02cc, 0x02d8, 0x02dd, 0x02e4, - 0x02ed, 0x02f5, 0x02fc, 0x0302, 0x0309, 0x030f, 0x0314, 0x0324, - 0x032c, 0x0332, 0x033b, 0x034d, 0x035e, 0x036d, 0x0373, 0x0379, - 0x0380, 0x0386, 0x038b, 0x0390, 0x0397, 0x039e, 0x03a2, 0x03a7, - // Entry 80 - BF - 0x03ae, 0x03b7, 0x03be, 0x03c7, 0x03cc, 0x03d1, 0x03d5, 0x03e0, - 0x03e8, 0x03ec, 0x03f2, 0x03ff, 0x0404, 0x040d, 0x0413, 0x0419, - 0x041f, 0x0424, 0x042a, 0x0432, 0x0436, 0x043b, 0x0448, 0x0451, - 0x0458, 0x045f, 0x0464, 0x046a, 0x0470, 0x047a, 0x0482, 0x0489, - 0x048f, 0x0494, 0x0498, 0x049e, 0x04a3, 0x04ab, 0x04b2, 0x04ba, - 0x04be, 0x04c3, 0x04c8, 0x04d2, 0x04d9, 0x04df, 0x04e4, 0x04e9, - 0x04ef, 0x04f5, 0x04fb, 0x0502, 0x0506, 0x050a, 0x050f, 0x0517, - 0x051d, 0x051d, 0x0525, 0x0525, 0x0529, 0x0530, 0x0530, 0x0537, - // Entry C0 - FF - 0x0537, 0x0545, 0x0551, 0x0557, 0x055e, 0x0567, 0x0567, 0x056e, - 0x056e, 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, 0x057c, 0x057c, - 0x0582, 0x0582, 0x058b, 0x0593, 0x0593, 0x0598, 0x0598, 0x0598, - 0x0598, 0x059f, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05ac, - 0x05b1, 0x05b5, 0x05b5, 0x05b5, 0x05bc, 0x05bc, 0x05bc, 0x05c0, - 0x05c0, 0x05c0, 0x05c0, 0x05c6, 0x05ca, 0x05ca, 0x05ce, 0x05ce, - 0x05d3, 0x05da, 0x05da, 0x05df, 0x05e6, 0x05e6, 0x05ed, 0x05f8, - 0x0600, 0x0604, 0x0612, 0x0619, 0x0622, 0x062a, 0x0632, 0x0632, - // Entry 100 - 13F - 0x0638, 0x0638, 0x0644, 0x064d, 0x0653, 0x0659, 0x0659, 0x0661, - 0x0667, 0x066d, 0x0672, 0x0672, 0x0677, 0x0680, 0x0680, 0x0685, - 0x0695, 0x0695, 0x069a, 0x069a, 0x069a, 0x069e, 0x069e, 0x06ab, - 0x06b1, 0x06b9, 0x06c7, 0x06c7, 0x06cd, 0x06cd, 0x06d1, 0x06da, - 0x06da, 0x06dd, 0x06dd, 0x06eb, 0x06f7, 0x06f7, 0x0704, 0x0713, - 0x071a, 0x071c, 0x071c, 0x071c, 0x0720, 0x0725, 0x0725, 0x0729, - 0x0733, 0x0733, 0x0741, 0x075a, 0x075a, 0x075f, 0x0768, 0x076d, - 0x0772, 0x077b, 0x078a, 0x078a, 0x078a, 0x078a, 0x0793, 0x0798, - // Entry 140 - 17F - 0x0798, 0x079f, 0x079f, 0x07a9, 0x07b0, 0x07b5, 0x07bd, 0x07bd, - 0x07c1, 0x07c5, 0x07c5, 0x07cc, 0x07d2, 0x07d2, 0x07d2, 0x07d8, - 0x07d8, 0x07d8, 0x07e7, 0x07f3, 0x07f3, 0x07fd, 0x0803, 0x0809, - 0x080c, 0x0811, 0x0815, 0x081d, 0x081d, 0x0821, 0x0821, 0x0821, - 0x0821, 0x0825, 0x0825, 0x082a, 0x0833, 0x0833, 0x0833, 0x0833, - 0x0833, 0x0833, 0x083b, 0x083b, 0x0842, 0x084a, 0x0850, 0x085f, - 0x085f, 0x085f, 0x0867, 0x086d, 0x086d, 0x086d, 0x086d, 0x0872, - 0x0879, 0x087f, 0x087f, 0x0885, 0x088a, 0x0892, 0x0892, 0x0892, - // Entry 180 - 1BF - 0x0892, 0x0892, 0x0892, 0x0899, 0x089d, 0x089d, 0x08a7, 0x08ae, - 0x08b3, 0x08b6, 0x08bc, 0x08bc, 0x08bc, 0x08bc, 0x08c4, 0x08c4, - 0x08ca, 0x08d2, 0x08da, 0x08e2, 0x08e7, 0x08e7, 0x08ed, 0x08f3, - 0x08f8, 0x08f8, 0x08f8, 0x0908, 0x0908, 0x0908, 0x090e, 0x0919, - 0x091f, 0x0927, 0x092d, 0x0932, 0x0932, 0x0932, 0x093b, 0x0940, - 0x0949, 0x0950, 0x0950, 0x0950, 0x0955, 0x0955, 0x0955, 0x095f, - 0x095f, 0x096b, 0x0971, 0x0975, 0x0979, 0x0979, 0x0979, 0x0979, - 0x097e, 0x0989, 0x0989, 0x098f, 0x099d, 0x099d, 0x09ab, 0x09b3, - // Entry 1C0 - 1FF - 0x09bb, 0x09c0, 0x09c5, 0x09ca, 0x09d6, 0x09e0, 0x09e7, 0x09ef, - 0x09f9, 0x09fe, 0x09fe, 0x09fe, 0x09fe, 0x0a0a, 0x0a0a, 0x0a12, - 0x0a12, 0x0a12, 0x0a1a, 0x0a1a, 0x0a28, 0x0a28, 0x0a28, 0x0a32, - 0x0a39, 0x0a42, 0x0a42, 0x0a42, 0x0a42, 0x0a48, 0x0a48, 0x0a48, - 0x0a48, 0x0a50, 0x0a50, 0x0a57, 0x0a5c, 0x0a6d, 0x0a6d, 0x0a72, - 0x0a79, 0x0a79, 0x0a79, 0x0a79, 0x0a81, 0x0a85, 0x0a85, 0x0a85, - 0x0a85, 0x0a85, 0x0a8b, 0x0a8b, 0x0a99, 0x0a99, 0x0a99, 0x0a9d, - 0x0a9d, 0x0aa3, 0x0aa3, 0x0aa3, 0x0aaf, 0x0ab8, 0x0ac2, 0x0acc, - // Entry 200 - 23F - 0x0ad3, 0x0ada, 0x0ae6, 0x0aeb, 0x0aeb, 0x0aeb, 0x0af1, 0x0af5, - 0x0afc, 0x0afc, 0x0afc, 0x0b09, 0x0b0e, 0x0b0e, 0x0b0e, 0x0b13, - 0x0b13, 0x0b19, 0x0b1e, 0x0b23, 0x0b26, 0x0b2d, 0x0b2d, 0x0b36, - 0x0b3d, 0x0b3d, 0x0b45, 0x0b52, 0x0b5b, 0x0b5b, 0x0b5b, 0x0b5b, - 0x0b64, 0x0b64, 0x0b6b, 0x0b71, 0x0b71, 0x0b79, 0x0b79, 0x0b7f, - 0x0b87, 0x0b8d, 0x0ba6, 0x0ba9, 0x0ba9, 0x0ba9, 0x0ba9, 0x0ba9, - 0x0bae, 0x0bae, 0x0bae, 0x0bae, 0x0bb4, 0x0bb9, 0x0bbe, 0x0bbe, - 0x0bbe, 0x0bc4, 0x0bc4, 0x0bc4, 0x0bc7, 0x0bcd, 0x0bcd, 0x0bcd, - // Entry 240 - 27F - 0x0bcd, 0x0bcd, 0x0bd4, 0x0be4, 0x0be4, 0x0bea, 0x0bea, 0x0bee, - 0x0c09, 0x0c0d, 0x0c0d, 0x0c1d, 0x0c1d, 0x0c2f, 0x0c3f, 0x0c50, - 0x0c60, 0x0c75, 0x0c83, 0x0c83, 0x0c93, 0x0ca2, 0x0ca6, 0x0cb9, - 0x0cca, 0x0cd0, 0x0cdb, 0x0cef, 0x0d02, - }, - }, - { // rn - "IgikaniIkimuharikiIcarabuIkibelarusiyaIkinyabuligariyaIkibengaliIgicekeI" + - "kidageIkigerekiIcongerezaIcesipanyoloIgiperisiIgifaransaIgihawusaIgi" + - "hindiIkinyahongiriyaIkinyendoziyaIkiguboIgitaliyaniIkiyapaniIkinyeja" + - "vaIgikambodiyaIkinyakoreyaIkinyamaleziyaIkinyabirimaniyaIkinepaliIgi" + - "holandiIgipunjabiIkinyapolonyeIgiporutugariIkirundiIkinyarumaniyaIki" + - "rusiyaIkinyarwandaIgisomaliIgisuweduwaIgitamiliIkinyatayilandiIgitur" + - "ukiyaIkinyayukereniInyeyuruduIkinyaviyetinamuIkiyorubaIgishinwaIkizu" + - "lu", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0012, 0x0012, - 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0026, 0x0036, - 0x0036, 0x0036, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, - 0x004e, 0x004e, 0x004e, 0x004e, 0x0057, 0x0061, 0x0061, 0x006d, - 0x006d, 0x006d, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0080, - 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0089, - 0x0089, 0x0091, 0x0091, 0x0091, 0x0091, 0x00a0, 0x00a0, 0x00a0, - // Entry 40 - 7F - 0x00a0, 0x00ad, 0x00ad, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, - 0x00bf, 0x00bf, 0x00c8, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, - 0x00d2, 0x00d2, 0x00de, 0x00de, 0x00ea, 0x00ea, 0x00ea, 0x00ea, - 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, - 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, - 0x00ea, 0x00ea, 0x00ea, 0x00f8, 0x00f8, 0x0108, 0x0108, 0x0108, - 0x0111, 0x0111, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x0125, 0x0125, 0x0132, - // Entry 80 - BF - 0x0132, 0x013f, 0x013f, 0x013f, 0x0147, 0x0155, 0x015e, 0x016a, - 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, - 0x016a, 0x016a, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, - 0x017e, 0x017e, 0x0187, 0x0187, 0x0187, 0x0196, 0x0196, 0x0196, - 0x0196, 0x0196, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01af, - 0x01b9, 0x01b9, 0x01b9, 0x01c9, 0x01c9, 0x01c9, 0x01c9, 0x01c9, - 0x01c9, 0x01d2, 0x01d2, 0x01db, 0x01e2, - }, - }, - { // ro - roLangStr, - roLangIdx, - }, - { // rof - "KiakaniKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigi" + - "rikiKiingerezaKihispaniaKiajemiKyifaransaKihausaKihindiKihungariKiin" + - "donesiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKibur" + - "maKinepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwand" + - "aKisomaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuK" + - "iyorubaKichinaKizuluKihorombo", - []uint16{ // 477 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x000f, 0x000f, - 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0020, 0x002a, - 0x002a, 0x002a, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, - 0x0044, 0x0044, 0x0044, 0x0044, 0x004c, 0x0056, 0x0056, 0x0060, - 0x0060, 0x0060, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0071, - 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0078, - 0x0078, 0x007f, 0x007f, 0x007f, 0x007f, 0x0088, 0x0088, 0x0088, - // Entry 40 - 7F - 0x0088, 0x0093, 0x0093, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, - 0x00a3, 0x00a3, 0x00ab, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, - 0x00b1, 0x00b1, 0x00bb, 0x00bb, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00cb, 0x00cb, 0x00d2, 0x00d2, 0x00d2, - 0x00da, 0x00da, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, - 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00ec, 0x00ec, 0x00f5, - // Entry 80 - BF - 0x00f5, 0x00fb, 0x00fb, 0x00fb, 0x00fb, 0x0104, 0x010a, 0x0115, - 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, - 0x0115, 0x0115, 0x011d, 0x011d, 0x011d, 0x011d, 0x011d, 0x011d, - 0x0124, 0x0124, 0x012b, 0x012b, 0x012b, 0x0135, 0x0135, 0x0135, - 0x0135, 0x0135, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x0146, - 0x014c, 0x014c, 0x014c, 0x0157, 0x0157, 0x0157, 0x0157, 0x0157, - 0x0157, 0x015f, 0x015f, 0x0166, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - // Entry C0 - FF - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - // Entry 100 - 13F - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - // Entry 140 - 17F - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - // Entry 180 - 1BF - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - // Entry 1C0 - 1FF - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x0175, - }, - }, - { // ru - ruLangStr, - ruLangIdx, - }, - { // rw - "IkinyafurikaneriInyetuwiInyamuharikiIcyarabuIcyasamiziInyazeribayijaniIk" + - "ibelarusiyaUrunyabuligariyaIkibengaliInyebiritoniInyebosiniyaIgikata" + - "laniIgicekeIkigaluwaIkidaninwaIkidageIkigerekiIcyongerezaIcyesiperan" + - "toIcyesipanyoloIcyesitoniyaIkibasikiInyeperisiIgifinilandeInyefaroyi" + - "ziIgifaransaIgifiriziyaniIkirilandiIkigaluwa cy’IgisweduwaIkigalisiy" + - "aInyaguwaraniInyegujaratiIgiheburayoIgihindiIgikorowasiyaIgihongiriy" + - "aIkinyarumeniyaUrurimi GahuzamiryangoIkinyendoziyaUruhuzandimiIgisil" + - "andeIgitaliyaniIkiyapaniInyejavaInyejeworujiyaIgikambodiyaIgikanadaI" + - "gikoreyaInyekuridishiInkerigiziIkilatiniIlingalaIkilawotiyaniIkilitu" + - "waniyaIkinyaletoviyaniIkimasedoniyaniIkimalayalamiIkimongoliIkimarat" + - "iIkimalayiIkimalitezeIkinepaliIkinerilandeInyenoruveji (Nyonorusiki)" + - "IkinoruvejiInyogusitaniInyoriyaIgipunjabiIgipoloneImpashitoIgiporutu" + - "galiIkinyarumaniyaIkirusiyaKinyarwandaIgisansikiriIgisindiInyesimpal" + - "ezeIgisilovakiIkinyasiloveniyaIgisomaliIcyalubaniyaIgiseribeInyeseso" + - "toInyesudaniIgisuweduwaIgiswahiliIgitamiliIgiteluguIgitayiInyatigiri" + - "nyaInyeturukimeniIgiturukiyaIkiwiguriIkinyayukereniInyeyuruduInyeyuz" + - "ubekiIkinyaviyetinamuInyehawusaInyeyidishiInyezuluIkinyafilipineInye" + - "kilingoniInyeporutigali (Brezili)Inyeporutigali (Igiporutigali)Inyes" + - "eribiya na Korowasiya", - []uint16{ // 603 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0018, 0x0024, 0x0024, - 0x002c, 0x0036, 0x0036, 0x0036, 0x0046, 0x0046, 0x0053, 0x0063, - 0x0063, 0x0063, 0x006d, 0x006d, 0x0079, 0x0085, 0x0090, 0x0090, - 0x0090, 0x0090, 0x0090, 0x0097, 0x0097, 0x0097, 0x00a0, 0x00aa, - 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00ba, 0x00c5, 0x00d2, 0x00df, - 0x00eb, 0x00f4, 0x00fe, 0x00fe, 0x010a, 0x010a, 0x0116, 0x0120, - 0x012d, 0x0137, 0x0150, 0x015b, 0x0167, 0x0173, 0x0173, 0x0173, - 0x017e, 0x0186, 0x0186, 0x0193, 0x0193, 0x019f, 0x01ad, 0x01ad, - // Entry 40 - 7F - 0x01c3, 0x01d0, 0x01dc, 0x01dc, 0x01dc, 0x01dc, 0x01dc, 0x01e6, - 0x01f1, 0x01f1, 0x01fa, 0x0202, 0x0210, 0x0210, 0x0210, 0x0210, - 0x0210, 0x0210, 0x021c, 0x0225, 0x022e, 0x022e, 0x022e, 0x023b, - 0x023b, 0x023b, 0x0245, 0x024e, 0x024e, 0x024e, 0x024e, 0x0256, - 0x0263, 0x0270, 0x0270, 0x0280, 0x0280, 0x0280, 0x0280, 0x028f, - 0x029c, 0x02a6, 0x02af, 0x02b8, 0x02c3, 0x02c3, 0x02c3, 0x02c3, - 0x02cc, 0x02cc, 0x02d8, 0x02f2, 0x02fd, 0x02fd, 0x02fd, 0x02fd, - 0x0309, 0x0309, 0x0309, 0x0311, 0x0311, 0x031b, 0x031b, 0x0324, - // Entry 80 - BF - 0x032d, 0x033a, 0x033a, 0x033a, 0x033a, 0x0348, 0x0351, 0x035c, - 0x0368, 0x0368, 0x0370, 0x0370, 0x0370, 0x037d, 0x0388, 0x0398, - 0x0398, 0x0398, 0x03a1, 0x03ad, 0x03b6, 0x03b6, 0x03c0, 0x03ca, - 0x03d5, 0x03df, 0x03e8, 0x03f1, 0x03f1, 0x03f8, 0x0405, 0x0413, - 0x0413, 0x0413, 0x041e, 0x041e, 0x041e, 0x041e, 0x0427, 0x0435, - 0x043f, 0x044b, 0x044b, 0x045b, 0x045b, 0x045b, 0x045b, 0x0465, - 0x0470, 0x0470, 0x0470, 0x0470, 0x0478, 0x0478, 0x0478, 0x0478, - 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, - // Entry C0 - FF - 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, - 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, - 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, - 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, - 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, - 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, - 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, - 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, - // Entry 100 - 13F - 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, - 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, - 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, - 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - // Entry 140 - 17F - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - // Entry 180 - 1BF - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - // Entry 1C0 - 1FF - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - // Entry 200 - 23F - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, - 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0493, - 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, - 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, - 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, - 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, - 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, - // Entry 240 - 27F - 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, - 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, - 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x04ab, - 0x04c9, 0x04c9, 0x04e3, - }, - }, - { // rwk - "KiakanyiKiamharyiKyiarabuKyibelarusiKyibulgaryiaKyibanglaKyicheckiKyijer" + - "umaniKyigirikiKyingerezaKyihispaniaKyiajemiKyifaransaKyihausaKyihind" + - "iKyihungariKyiindonesiaKyiigboKyiitalianoKyijapaniKyijavaKyikambodia" + - "KyikoreaKyimalesiaKyiburmaKyinepaliKyiholanziKyipunjabiKyipolandiKyi" + - "renoKyiromaniaKyirusiKyinyarwandaKyisomalyiKyiswidiKyitamilKyitailan" + - "diKyiturukyiKyiukraniaKyiurduKyivietinamuKyiyorubaKyichinaKyizuluKir" + - "uwa", - []uint16{ // 483 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0011, 0x0011, - 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0024, 0x0030, - 0x0030, 0x0030, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0039, 0x0039, 0x0039, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x004d, 0x004d, 0x004d, 0x004d, 0x0056, 0x0060, 0x0060, 0x006b, - 0x006b, 0x006b, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x007d, - 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x0085, - 0x0085, 0x008d, 0x008d, 0x008d, 0x008d, 0x0097, 0x0097, 0x0097, - // Entry 40 - 7F - 0x0097, 0x00a3, 0x00a3, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, - 0x00b5, 0x00b5, 0x00be, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, - 0x00c5, 0x00c5, 0x00d0, 0x00d0, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00e2, 0x00e2, 0x00ea, 0x00ea, 0x00ea, - 0x00f3, 0x00f3, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, - 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x0107, 0x0107, 0x0111, - // Entry 80 - BF - 0x0111, 0x0118, 0x0118, 0x0118, 0x0118, 0x0122, 0x0129, 0x0135, - 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, - 0x0135, 0x0135, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, - 0x0147, 0x0147, 0x014f, 0x014f, 0x014f, 0x015a, 0x015a, 0x015a, - 0x015a, 0x015a, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x016e, - 0x0175, 0x0175, 0x0175, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, - 0x0181, 0x018a, 0x018a, 0x0192, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry C0 - FF - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry 100 - 13F - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry 140 - 17F - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry 180 - 1BF - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry 1C0 - 1FF - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x019f, - }, - }, - { // sah - "ÐбхааÑÑ‚Ñ‹Ñ‹ÐппырыкааныÑÑ‚Ñ‹Ñ‹ÐраабтыыÐдьырбайдьаанныыБөлөрүүÑтүүБулҕаардыыБен" + - "галлыыТибиÑттииБоÑныйалыыКаталаанныыЧиÑÑкÑйдииДаатÑкайдыыÐиÑмÑÑтииГ" + - "ириÑктииÐҥылычаанныыЫÑпаанныыЭÑтиÑнийÑлииПиÑÑ€ÑийÑлииПииннииПыранÑуу" + - "ÑтууБÑҥгиÑрдииЭрмÑÑннииЫтаалыйалыыДьоппуоннууГуруÑууннууХаһаахтыыКÑ" + - "риÑйдииКыргыÑтыыЛатыынныыМоҕуоллууÐьыпааллыыПандьаабтыыПортугааллыы" + - "РумыынныыÐууччалыыСловаактыыÐлбаанÑкайдыыТамыллыыТөлүгүлүүТадьыыкты" + - "ыУйгуурдууУкрайыыньыÑтыыҮзбиÑктииКытайдыыЗуулулууПилипииннииÑаха Ñ‚Ñ‹" + - "ла", - []uint16{ // 485 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0012, 0x0012, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0060, 0x0060, 0x0076, 0x008a, - 0x008a, 0x008a, 0x009c, 0x00ae, 0x00ae, 0x00c2, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x0102, - 0x0114, 0x0114, 0x0114, 0x0114, 0x0126, 0x013e, 0x013e, 0x0150, - 0x0168, 0x0168, 0x017e, 0x017e, 0x018c, 0x018c, 0x018c, 0x01a4, - 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, - 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01b8, 0x01ca, 0x01ca, - // Entry 40 - 7F - 0x01ca, 0x01ca, 0x01ca, 0x01ca, 0x01ca, 0x01ca, 0x01ca, 0x01ca, - 0x01e0, 0x01e0, 0x01f6, 0x01f6, 0x020c, 0x020c, 0x020c, 0x020c, - 0x021e, 0x021e, 0x021e, 0x021e, 0x0230, 0x0230, 0x0230, 0x0230, - 0x0230, 0x0230, 0x0242, 0x0254, 0x0254, 0x0254, 0x0254, 0x0254, - 0x0254, 0x0254, 0x0254, 0x0254, 0x0254, 0x0254, 0x0254, 0x0254, - 0x0254, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, - 0x027a, 0x027a, 0x027a, 0x027a, 0x027a, 0x027a, 0x027a, 0x027a, - 0x027a, 0x027a, 0x027a, 0x027a, 0x027a, 0x0290, 0x0290, 0x0290, - // Entry 80 - BF - 0x0290, 0x02a8, 0x02a8, 0x02a8, 0x02a8, 0x02ba, 0x02cc, 0x02cc, - 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02e0, 0x02e0, - 0x02e0, 0x02e0, 0x02e0, 0x02fa, 0x02fa, 0x02fa, 0x02fa, 0x02fa, - 0x02fa, 0x02fa, 0x030a, 0x031c, 0x0330, 0x0330, 0x0330, 0x0330, - 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0342, 0x035e, - 0x035e, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, - 0x0370, 0x0370, 0x0370, 0x0380, 0x0390, 0x0390, 0x0390, 0x0390, - 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, - // Entry C0 - FF - 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, - 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, - 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, - 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, - 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, - 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, - 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, - 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, - // Entry 100 - 13F - 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, - 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, - 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, - 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - // Entry 140 - 17F - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - // Entry 180 - 1BF - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - // Entry 1C0 - 1FF - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, - 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03b7, - }, - }, - { // saq - "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + - "ikiKingerezaKihispaniaKiajemiKifaransaKihausaKihindiKihungariKiindon" + - "esiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaK" + - "inepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKi" + - "somaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyo" + - "rubaKichinaKizuluKisampur", - []uint16{ // 487 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, - 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, - 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0054, 0x0054, 0x005e, - 0x005e, 0x005e, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006e, - 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0075, - 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, - // Entry 40 - 7F - 0x0085, 0x0090, 0x0090, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, - 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, - 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, - 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, - // Entry 80 - BF - 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, - 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, - 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, - 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0132, 0x0132, 0x0132, - 0x0132, 0x0132, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x0143, - 0x0149, 0x0149, 0x0149, 0x0154, 0x0154, 0x0154, 0x0154, 0x0154, - 0x0154, 0x015c, 0x015c, 0x0163, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry C0 - FF - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 100 - 13F - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 140 - 17F - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 180 - 1BF - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 1C0 - 1FF - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0171, - }, - }, - { // sbp - "IshiyakaniIshiyamuhaliIshiyalabuIshibelalusiIshibulugaliaIshibangilaIshi" + - "shekiIshijelumaniIshigilikiIshingelesaIshihisipaniyaIshiajemiIshifal" + - "ansaIshihawusaIshihindiIshihungaliIshihindonesiaIshihigiboIshihitali" + - "yanoIshijapaniIshijavaIshikambodiaIshikoleyaIshimalesiyaIshibulumaIs" + - "hinepaliIshiholansiIshipunjabiIshipolandiIshilenoIshilomaniyaIshilus" + - "iIshinyalwandaIshisomaliIshiswidiIshitamiliIshitayilandiIshitulukiIs" + - "hiyukilaniyaIshiwuludiIshivietinamuIshiyolubaIshishinaIshisuluIshisa" + - "ngu", - []uint16{ // 492 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0016, 0x0016, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x002c, 0x0039, - 0x0039, 0x0039, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, - 0x0044, 0x0044, 0x0044, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, - 0x0059, 0x0059, 0x0059, 0x0059, 0x0063, 0x006e, 0x006e, 0x007c, - 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, 0x0085, 0x0085, 0x0090, - 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x009a, - 0x009a, 0x00a3, 0x00a3, 0x00a3, 0x00a3, 0x00ae, 0x00ae, 0x00ae, - // Entry 40 - 7F - 0x00ae, 0x00bc, 0x00bc, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, - 0x00d4, 0x00d4, 0x00de, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00e6, - 0x00e6, 0x00e6, 0x00f2, 0x00f2, 0x00fc, 0x00fc, 0x00fc, 0x00fc, - 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, - 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, - 0x00fc, 0x00fc, 0x00fc, 0x0108, 0x0108, 0x0112, 0x0112, 0x0112, - 0x011c, 0x011c, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, - 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0132, 0x0132, 0x013d, - // Entry 80 - BF - 0x013d, 0x0145, 0x0145, 0x0145, 0x0145, 0x0151, 0x0159, 0x0166, - 0x0166, 0x0166, 0x0166, 0x0166, 0x0166, 0x0166, 0x0166, 0x0166, - 0x0166, 0x0166, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, - 0x0179, 0x0179, 0x0183, 0x0183, 0x0183, 0x0190, 0x0190, 0x0190, - 0x0190, 0x0190, 0x019a, 0x019a, 0x019a, 0x019a, 0x019a, 0x01a8, - 0x01b2, 0x01b2, 0x01b2, 0x01bf, 0x01bf, 0x01bf, 0x01bf, 0x01bf, - 0x01bf, 0x01c9, 0x01c9, 0x01d2, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - // Entry C0 - FF - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - // Entry 100 - 13F - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - // Entry 140 - 17F - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - // Entry 180 - 1BF - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - // Entry 1C0 - 1FF - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, - 0x01da, 0x01da, 0x01da, 0x01e3, - }, - }, - { // se - "afrikánsagiellaaragoniagiellaarábagiellavilges-ruoÅ¡Å¡agiellabulgáriagiell" + - "abengalgiellatibetagiellabretonagiellabosniagiellakatalánagiellacors" + - "icagiellaÄeahkagiellakymragielladánskkagielladuiskkagielladivehigiel" + - "ladzongkhagiellagreikkagiellaeaÅ‹galsgiellaspánskkagiellaesttegiellap" + - "ersijagiellasuomagiellafidjigiellafearagiellafránskkagiellaoarjifrii" + - "sagiellaiirragiellagujaratagiellamanksgiellahaussagiellahindigiellak" + - "roátiagiellahaitigiellaungárgiellaarmeenagiellaindonesiagiellaislánd" + - "dagiellaitáliagiellajapánagiellajavagiellageorgiagiellakazakgiellaka" + - "mbodiagiellakoreagiellakurdigiellakomigiellakornagiellaláhtengiellal" + - "uxemburggagiellalaogiellaliettuvagiellalátviagiellamaorigiellamakedo" + - "niagiellamongoliagiellamaltagiellaburmagiellanepaligiellahollánddagi" + - "ellaoÄ‘Ä‘adárogiellagirjedárogiellaoksitánagiellapanjabigiellapolskkag" + - "iellaportugálagiellaromanÅ¡giellaromániagiellaruoÅ¡Å¡agiellasardigiella" + - "davvisámegiellaslovákiagiellaslovenagiellasamoagiellaalbánagiellaser" + - "biagiellaruoŧagiellaŧaigielladurkagiellatahitigiellaukrainagiellaurd" + - "ugiellavietnamgiellavallonagiellakiinnágiellaacehgiellaboares eaÅ‹gal" + - "asgiellaasturiagiellamarigiellafilippiinnagiellahawaiigiellagárjilgi" + - "ellamokÅ¡agiellaersagiellasisiliagiellaselkupagiellalullisámegiellaju" + - "levsámegiellaanáraÅ¡giellanuortalaÅ¡giellashimaorigiellaudmurtagiellad" + - "ovdameahttun giellakantongiellaserbokroatiagiellaálki kiinágiellaárb" + - "evirolaÅ¡ kiinnágiella", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x001e, - 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x003f, 0x004e, - 0x004e, 0x004e, 0x005a, 0x0066, 0x0073, 0x007f, 0x008e, 0x008e, - 0x008e, 0x009b, 0x009b, 0x00a8, 0x00a8, 0x00a8, 0x00b3, 0x00c1, - 0x00ce, 0x00da, 0x00e8, 0x00e8, 0x00f5, 0x0103, 0x0103, 0x0112, - 0x011d, 0x011d, 0x012a, 0x012a, 0x0135, 0x0140, 0x014b, 0x015a, - 0x016b, 0x0176, 0x0176, 0x0176, 0x0176, 0x0184, 0x018f, 0x019b, - 0x019b, 0x01a6, 0x01a6, 0x01b4, 0x01bf, 0x01cb, 0x01d8, 0x01d8, - // Entry 40 - 7F - 0x01d8, 0x01e7, 0x01e7, 0x01e7, 0x01e7, 0x01e7, 0x01e7, 0x01f6, - 0x0203, 0x0203, 0x0210, 0x021a, 0x0227, 0x0227, 0x0227, 0x0227, - 0x0232, 0x0232, 0x0240, 0x0240, 0x024b, 0x024b, 0x024b, 0x0256, - 0x0260, 0x026b, 0x026b, 0x0278, 0x0289, 0x0289, 0x0289, 0x0289, - 0x0292, 0x02a0, 0x02a0, 0x02ad, 0x02ad, 0x02ad, 0x02b8, 0x02c7, - 0x02c7, 0x02d5, 0x02d5, 0x02d5, 0x02e0, 0x02eb, 0x02eb, 0x02eb, - 0x02f7, 0x02f7, 0x0307, 0x0318, 0x0328, 0x0328, 0x0328, 0x0328, - 0x0337, 0x0337, 0x0337, 0x0337, 0x0337, 0x0344, 0x0344, 0x0351, - // Entry 80 - BF - 0x0351, 0x0361, 0x0361, 0x036e, 0x036e, 0x037c, 0x038a, 0x038a, - 0x038a, 0x0395, 0x0395, 0x03a5, 0x03a5, 0x03a5, 0x03b4, 0x03c1, - 0x03cc, 0x03cc, 0x03cc, 0x03d9, 0x03e5, 0x03e5, 0x03e5, 0x03e5, - 0x03f1, 0x03f1, 0x03f1, 0x03f1, 0x03f1, 0x03fb, 0x03fb, 0x03fb, - 0x03fb, 0x03fb, 0x0406, 0x0406, 0x0406, 0x0412, 0x0412, 0x041f, - 0x0429, 0x0429, 0x0429, 0x0436, 0x0436, 0x0443, 0x0443, 0x0443, - 0x0443, 0x0443, 0x0443, 0x0450, 0x0450, 0x045a, 0x045a, 0x045a, - 0x045a, 0x045a, 0x045a, 0x045a, 0x045a, 0x045a, 0x045a, 0x045a, - // Entry C0 - FF - 0x045a, 0x045a, 0x0470, 0x0470, 0x0470, 0x0470, 0x0470, 0x0470, - 0x0470, 0x0470, 0x0470, 0x0470, 0x0470, 0x0470, 0x047d, 0x047d, - 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, - 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, - 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, - 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, - 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, - 0x047d, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, - // Entry 100 - 13F - 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, - 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, - 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, - 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0498, - 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, - 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, - 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, - 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, - // Entry 140 - 17F - 0x0498, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, - 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, - 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, - 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, - 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, - 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, - 0x04a4, 0x04a4, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, - 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, - // Entry 180 - 1BF - 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, - 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, - 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04bd, 0x04bd, - 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, - 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, - 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04c7, 0x04c7, 0x04c7, 0x04c7, - 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, - 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, - // Entry 1C0 - 1FF - 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, - 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, - 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, - 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, - 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, - 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04d4, 0x04d4, 0x04d4, 0x04d4, - 0x04d4, 0x04d4, 0x04e1, 0x04e1, 0x04e1, 0x04e1, 0x04e1, 0x04e1, - 0x04e1, 0x04e1, 0x04e1, 0x04e1, 0x04f1, 0x0501, 0x050f, 0x051f, - // Entry 200 - 23F - 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, - 0x051f, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, - 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, - 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, - 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x053a, - 0x053a, 0x053a, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, - 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, - 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, - // Entry 240 - 27F - 0x054e, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, - 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, - 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, - 0x055a, 0x055a, 0x056c, 0x057e, 0x0599, - }, - }, - { // se-FI - "vilgesruoÅ¡Å¡agiellabengalagiellafižigiellaarmenagiellakazakhgiellakamboža" + - "giellanepalagiellapanjabagiellathaigiellavietnamagiellaaÄehgiellakom" + - "oragiellastandárda arábagiellanuortariikkalaÅ¡ duiskkagiellaÅ¡veicalaÅ¡" + - " duiskkagiellaaustrálialaÅ¡ eaÅ‹galsgiellakanádalaÅ¡ eaÅ‹galsgiellabriht" + - "talaÅ¡ eaÅ‹galsgiellaamerihkálaÅ¡ eaÅ‹galsgiellalatiinna-amerihkalaÅ¡ spá" + - "nskkagiellaespánjalaÅ¡ spánskkagiellameksikolaÅ¡ spánskkagiellakanádal" + - "aÅ¡ fránskkagiellaÅ¡veicalaÅ¡ fránskkagiellabelgialaÅ¡ hollánddagiellabr" + - "asilialaÅ¡ portugálagiellaportugálalaÅ¡ portugálagiellamoldávialaÅ¡ rom" + - "ániagiellaálkes kiinnágiella", - []uint16{ // 604 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0014, 0x0014, - 0x0014, 0x0014, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, - 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, - 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, - 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x002c, 0x002c, 0x002c, - 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, - 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x0038, 0x0038, - // Entry 40 - 7F - 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, - 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, - 0x0044, 0x0044, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, - 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, - 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, - 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, - 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, - 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x006b, 0x006b, 0x006b, - // Entry 80 - BF - 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, - 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, - 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, - 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x0075, 0x0075, 0x0075, - 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, - 0x0075, 0x0075, 0x0075, 0x0083, 0x0083, 0x0083, 0x0083, 0x0083, - 0x0083, 0x0083, 0x0083, 0x0083, 0x0083, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - // Entry C0 - FF - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - // Entry 100 - 13F - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - // Entry 140 - 17F - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - // Entry 180 - 1BF - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - // Entry 1C0 - 1FF - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - // Entry 200 - 23F - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, - 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, - 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, - 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, - 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, - 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, - 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, - // Entry 240 - 27F - 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, - 0x009a, 0x009a, 0x00b1, 0x00cf, 0x00e8, 0x0105, 0x011f, 0x0139, - 0x0155, 0x017a, 0x0196, 0x01b1, 0x01cc, 0x01e7, 0x0202, 0x021f, - 0x023e, 0x025a, 0x025a, 0x026e, - }, - }, - { // seh - "akanamáricoárabebielo-russobúlgarobengalitchecoalemãogregoinglêsespanhol" + - "persafrancêshausahindihúngaroindonésioiboitalianojaponêsjavanêscmerc" + - "oreanomalaiobirmanêsnepalêsholandêspanjabipolonêsportuguêsromenoruss" + - "okinyarwandasomalisuecotâmiltailandêsturcoucranianourduvietnamitaior" + - "ubáchinêszulusena", - []uint16{ // 497 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000c, 0x000c, - 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x001d, 0x0025, - 0x0025, 0x0025, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, - 0x002c, 0x002c, 0x002c, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0039, 0x0039, 0x0039, 0x0039, 0x003e, 0x0045, 0x0045, 0x004d, - 0x004d, 0x004d, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x005a, - 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005f, - 0x005f, 0x0064, 0x0064, 0x0064, 0x0064, 0x006c, 0x006c, 0x006c, - // Entry 40 - 7F - 0x006c, 0x0076, 0x0076, 0x0079, 0x0079, 0x0079, 0x0079, 0x0079, - 0x0081, 0x0081, 0x0089, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, - 0x0091, 0x0091, 0x0095, 0x0095, 0x009c, 0x009c, 0x009c, 0x009c, - 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, - 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, - 0x009c, 0x009c, 0x009c, 0x00a2, 0x00a2, 0x00ab, 0x00ab, 0x00ab, - 0x00b3, 0x00b3, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, - 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00c3, 0x00c3, 0x00cb, - // Entry 80 - BF - 0x00cb, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00db, 0x00e0, 0x00eb, - 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, - 0x00eb, 0x00eb, 0x00f1, 0x00f1, 0x00f1, 0x00f1, 0x00f1, 0x00f1, - 0x00f6, 0x00f6, 0x00fc, 0x00fc, 0x00fc, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x0114, - 0x0118, 0x0118, 0x0118, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0129, 0x0129, 0x0130, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - // Entry C0 - FF - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - // Entry 100 - 13F - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - // Entry 140 - 17F - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - // Entry 180 - 1BF - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - // Entry 1C0 - 1FF - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0138, - }, - }, - { // ses - "Akan senniAmhaarik senniLaaraw senniBelaruus senniBulagaari senniBengali" + - " senniCek senniAlmaÅ‹ senniGrek senniInglisi senniEspaaɲe senniFarsi " + - "senniFransee senniHawsance senniInduu senniHungaari senniIndoneesi s" + - "enniIboo senniItaali senniJaponee senniJavanee senniKmeer senniKoree" + - " senniMaleezi senniBurme senniNeepal senniHolandee senniPunjaabi sen" + - "niiPolonee senniPortugee senniRumaani senniRuusi senniRwanda senniSo" + - "maali senniSuweede senniTamil senniTaailandu senniTurku senniUkreen " + - "senniUrdu senniVietnaam senniYorbance senniSinuwa senni, MandareÅ‹Zul" + - "u senniKoyraboro senni", - []uint16{ // 500 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0018, 0x0018, - 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0032, 0x0041, - 0x0041, 0x0041, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, - 0x004e, 0x004e, 0x004e, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, - 0x0063, 0x0063, 0x0063, 0x0063, 0x006d, 0x007a, 0x007a, 0x0088, - 0x0088, 0x0088, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x00a0, - 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00ae, - 0x00ae, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00c7, 0x00c7, 0x00c7, - // Entry 40 - 7F - 0x00c7, 0x00d6, 0x00d6, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, - 0x00ec, 0x00ec, 0x00f9, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x0111, 0x0111, 0x011c, 0x011c, 0x011c, 0x011c, - 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, - 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, - 0x011c, 0x011c, 0x011c, 0x0129, 0x0129, 0x0134, 0x0134, 0x0134, - 0x0140, 0x0140, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, - 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x015d, 0x015d, 0x016a, - // Entry 80 - BF - 0x016a, 0x0178, 0x0178, 0x0178, 0x0178, 0x0185, 0x0190, 0x019c, - 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, - 0x019c, 0x019c, 0x01a9, 0x01a9, 0x01a9, 0x01a9, 0x01a9, 0x01a9, - 0x01b6, 0x01b6, 0x01c1, 0x01c1, 0x01c1, 0x01d0, 0x01d0, 0x01d0, - 0x01d0, 0x01d0, 0x01db, 0x01db, 0x01db, 0x01db, 0x01db, 0x01e7, - 0x01f1, 0x01f1, 0x01f1, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, - 0x01ff, 0x020d, 0x020d, 0x0224, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - // Entry C0 - FF - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - // Entry 100 - 13F - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - // Entry 140 - 17F - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - // Entry 180 - 1BF - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - // Entry 1C0 - 1FF - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, - 0x022e, 0x022e, 0x022e, 0x023d, - }, - }, - { // sg - "AkâanAmarîkiArâboBielörûsiBulugäriBengäliTyêkiZâmaniGerêkiAnglëeEspanyöl" + - "FarsîFarânziHaüsäHîndiHongruäaEnndonezïiÃgböÊnndeZaponëeZavanëeKmêre" + - "KoreyëenMalëeMiamära, BirimäniNepalëeHolandëePenzäbïPolonëePortugëe," + - " PûraRumëenRûsiRuandäaSängöSomalïiSueduäaTämûliThâiTûrûkuUkrêniÛrduV" + - "ietnämYorubaShinuäaZûlu", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x001f, 0x0028, - 0x0028, 0x0028, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x003d, 0x003d, 0x003d, 0x003d, 0x0044, 0x004b, 0x004b, 0x0054, - 0x0054, 0x0054, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x0062, - 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0069, - 0x0069, 0x006f, 0x006f, 0x006f, 0x006f, 0x0078, 0x0078, 0x0078, - // Entry 40 - 7F - 0x0078, 0x0083, 0x0083, 0x0089, 0x0089, 0x0089, 0x0089, 0x0089, - 0x008f, 0x008f, 0x0097, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, - 0x009f, 0x009f, 0x00a5, 0x00a5, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00ae, 0x00ae, 0x00ae, 0x00b4, 0x00b4, 0x00c7, 0x00c7, 0x00c7, - 0x00cf, 0x00cf, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00e1, 0x00e1, 0x00e9, - // Entry 80 - BF - 0x00e9, 0x00f9, 0x00f9, 0x00f9, 0x00f9, 0x0100, 0x0105, 0x010d, - 0x010d, 0x010d, 0x010d, 0x010d, 0x0114, 0x0114, 0x0114, 0x0114, - 0x0114, 0x0114, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, - 0x0124, 0x0124, 0x012c, 0x012c, 0x012c, 0x0131, 0x0131, 0x0131, - 0x0131, 0x0131, 0x0139, 0x0139, 0x0139, 0x0139, 0x0139, 0x0140, - 0x0145, 0x0145, 0x0145, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, - 0x014d, 0x0153, 0x0153, 0x015b, 0x0160, - }, - }, - { // shi - "ⵜⴰⴽⴰâµâµœâµœâ´°âµŽâµ€â´°âµ”ⵉⵜⵜⴰⵄⵔⴰⴱⵜⵜⴰⴱⵉâµâ´°âµ”ⵓⵙⵜⵜⴰⴱâµâµ–ⴰⵔⵉⵜⵜⴰⴱâµâµ–â´°âµâµ‰âµœâµœâ´°âµœâµ›âµ‰â´½âµ‰âµœâµœâ´°âµâµ‰âµŽâ´°âµâµœâµœâ´°â´³âµ”ⵉⴳⵉ" + - "ⵜⵜⴰâµâ´³âµâµ‰âµ£âµœâµœâ´°âµ™â´±âµâµ¢âµ“âµâµ‰âµœâµœâ´°â´¼âµ“ⵔⵙⵉⵜⵜⴰⴼⵔⴰâµâµ™âµ‰âµ™âµœâµœâ´°âµ€â´°âµ¡âµ™â´°âµœâµœâ´°âµ€âµ‰âµâ´·âµ‰âµœâµœâ´°âµ€âµâµ–ⴰⵔⵉⵜⵜⴰâµâ´·" + - "ⵓâµâµ‰âµ™âµ‰âµœâµœâµ‰â´³â´±âµ“ⵜⵜⴰⵟⴰâµâµ¢â´°âµâµœâµœâ´°âµŠâ´°â´±â´±âµ“âµâµ‰âµœâµœâ´°âµŠâ´°â´¼â´°âµâµ‰âµœâµœâ´°âµ…ⵎⵉⵔⵜⵜⴰⴽⵓⵔⵉⵜⵜⴰⵎⴰâµâ´°âµ¡âµ‰âµœâµœâ´°â´±" + - "ⵉⵔⵎⴰâµâµ‰âµœâµœâ´°âµâµ‰â´±â´°âµâµ‰âµœâµœâ´°âµ€âµ“âµâ´°âµâ´·âµ‰âµœâµœâ´°â´±âµâµŠâ´°â´±âµ‰âµœâµœâ´°â´±âµ“âµâµ“âµâµ‰âµœâµœâ´°â´±âµ•âµŸâµ‡âµ‰âµ£âµœâµœâ´°âµ”ⵓⵎⴰâµâµ‰âµœâµœâ´°âµ”ⵓ" + - "ⵙⵉⵜⵜⴰⵔⵓⵡⴰâµâ´·âµ‰âµœâµœâ´°âµ™âµ“ⵎⴰâµâµ‰âµœâµœâ´°âµ™âµ¡âµ‰â´·âµ‰âµœâµœâ´°âµœâ´°âµŽâµ‰âµâµœâµœâ´°âµœâ´°âµ¢âµâ´°âµâ´·âµ‰âµœâµœâ´°âµœâµ“ⵔⴽⵉⵜⵜⵓⴽⵔⴰâµâµ‰âµœâµœ" + - "ⵓⵔⴷⵓⵜⵜⴰⴼⵉⵜâµâ´°âµŽâµ‰âµœâµœâ´°âµ¢âµ”ⵓⴱⴰⵜⵜⴰⵛⵉâµâµ¡âµ‰âµœâµœâ´°âµ£âµ“âµâµ“ⵜⵜⴰⵎⴰⵣⵉⵖⵜ", - []uint16{ // 503 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x002a, 0x002a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005d, 0x0078, - 0x0078, 0x0078, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, - 0x0093, 0x0093, 0x0093, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, - 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00db, 0x00f3, 0x00f3, 0x0111, - 0x0111, 0x0111, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0147, - 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x015f, - 0x015f, 0x0177, 0x0177, 0x0177, 0x0177, 0x0192, 0x0192, 0x0192, - // Entry 40 - 7F - 0x0192, 0x01b0, 0x01b0, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, - 0x01dd, 0x01dd, 0x01fb, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, - 0x0216, 0x0216, 0x022b, 0x022b, 0x0240, 0x0240, 0x0240, 0x0240, - 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, - 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, - 0x0240, 0x0240, 0x0240, 0x025b, 0x025b, 0x0279, 0x0279, 0x0279, - 0x0294, 0x0294, 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02b2, - 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02cd, 0x02cd, 0x02e8, - // Entry 80 - BF - 0x02e8, 0x0303, 0x0303, 0x0303, 0x0303, 0x031e, 0x0333, 0x0351, - 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, - 0x0351, 0x0351, 0x036c, 0x036c, 0x036c, 0x036c, 0x036c, 0x036c, - 0x0384, 0x0384, 0x039c, 0x039c, 0x039c, 0x03bd, 0x03bd, 0x03bd, - 0x03bd, 0x03bd, 0x03d5, 0x03d5, 0x03d5, 0x03d5, 0x03d5, 0x03ed, - 0x03ff, 0x03ff, 0x03ff, 0x041d, 0x041d, 0x041d, 0x041d, 0x041d, - 0x041d, 0x0435, 0x0435, 0x044d, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - // Entry C0 - FF - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - // Entry 100 - 13F - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - // Entry 140 - 17F - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - // Entry 180 - 1BF - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - // Entry 1C0 - 1FF - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x047a, - }, - }, - { // shi-Latn - "takanttamharittaÉ›rabttabilarusttablÉ£arittabnÉ£alittatcikittalimanttagrigi" + - "ttanglizttasbnyulittafursittafransisttahawsattahindittahnÉ£arittandun" + - "isittigbuttaá¹­alyanttajabbunittajavanittaxmirttakurittamalawittabirma" + - "nittanibalittahulandittabnjabittabulunittabṛṭqizttarumanittarusittar" + - "uwandittasumalittaswidittatamilttataylandittaturkittukranitturduttaf" + - "itnamittayrubattacinwittazuluttamazight", - []uint16{ // 503 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0020, 0x002a, - 0x002a, 0x002a, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0034, 0x0034, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x0044, 0x0044, 0x0044, 0x0044, 0x004c, 0x0054, 0x0054, 0x005e, - 0x005e, 0x005e, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0070, - 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0078, - 0x0078, 0x0080, 0x0080, 0x0080, 0x0080, 0x008a, 0x008a, 0x008a, - // Entry 40 - 7F - 0x008a, 0x0094, 0x0094, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, - 0x00a5, 0x00a5, 0x00af, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, - 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00c6, 0x00c6, 0x00c6, 0x00c6, - 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, - 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, - 0x00c6, 0x00c6, 0x00c6, 0x00cf, 0x00cf, 0x00d9, 0x00d9, 0x00d9, - 0x00e2, 0x00e2, 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x00ec, - 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x00f5, 0x00f5, 0x00fe, - // Entry 80 - BF - 0x00fe, 0x010b, 0x010b, 0x010b, 0x010b, 0x0114, 0x011b, 0x0125, - 0x0125, 0x0125, 0x0125, 0x0125, 0x0125, 0x0125, 0x0125, 0x0125, - 0x0125, 0x0125, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x0136, 0x0136, 0x013e, 0x013e, 0x013e, 0x0149, 0x0149, 0x0149, - 0x0149, 0x0149, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0159, - 0x015f, 0x015f, 0x015f, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0171, 0x0171, 0x0179, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - // Entry C0 - FF - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - // Entry 100 - 13F - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - // Entry 140 - 17F - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - // Entry 180 - 1BF - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - // Entry 1C0 - 1FF - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, - 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0189, - }, - }, - { // si - siLangStr, - siLangIdx, - }, - { // sk - skLangStr, - skLangIdx, - }, - { // sl - slLangStr, - slLangIdx, - }, - { // smn - "arabiakielâvielgisruošâkielâbulgariakielâtÅ¡eekikielâkirkkoslaavitanskaki" + - "elâsaksakielâkreikakielâengâlâskielâespanjakielâeestikielâsuomâkielâ" + - "ranskakielâiirikielâhepreakielâkroatiakielâuÅ‹garkielâarmeniakielâisl" + - "andkielâitaliakielâjaapaankielâkurdikielâkomikielâläättinkielâlatvia" + - "kielâmaorikielâmakedoniakielâmongoliakielâneepaalkielâhollandkielâtá" + - "rukielâ nynorsktárukielâpuolakielâportugalkielâromaniakielâruošâkiel" + - "âsanskritkielâtavesämikielâsloveniakielâserbiakielâruotâkielâturkki" + - "kielâukrainakielâvietnamkielâkiinakielâainukielâmarikielâtoovláškrei" + - "kakielâmokšâkielâviestârmarikielâtoovláštárukielâroomaankielâmaadâsä" + - "mikielâjuulevsämikielâanarâškielânuorttâlâškielâudmurtkielâvepsäkiel" + - "âkantonkiinakielâNuorttâriijkâ saksakielâAustralia engâlâskielâKana" + - "da engâlâskielâoovtâkiärdánis kiinakielâärbivuáválâš kiinakielâ", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x0020, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x003b, 0x0047, 0x0047, 0x0047, 0x0053, - 0x005e, 0x005e, 0x005e, 0x005e, 0x006a, 0x0079, 0x0079, 0x0086, - 0x0091, 0x0091, 0x0091, 0x0091, 0x009d, 0x009d, 0x009d, 0x00a9, - 0x00a9, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, - 0x00bf, 0x00bf, 0x00bf, 0x00cc, 0x00cc, 0x00d8, 0x00e5, 0x00e5, - // Entry 40 - 7F - 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00f1, - 0x00fd, 0x00fd, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, - 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x0115, - 0x011f, 0x011f, 0x011f, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x013a, 0x013a, 0x013a, 0x0145, 0x0154, - 0x0154, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, - 0x016f, 0x016f, 0x017c, 0x018f, 0x019a, 0x019a, 0x019a, 0x019a, - 0x019a, 0x019a, 0x019a, 0x019a, 0x019a, 0x019a, 0x019a, 0x01a5, - // Entry 80 - BF - 0x01a5, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01c0, 0x01cd, 0x01cd, - 0x01db, 0x01db, 0x01db, 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01f8, - 0x01f8, 0x01f8, 0x01f8, 0x01f8, 0x0204, 0x0204, 0x0204, 0x0204, - 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, - 0x0210, 0x0210, 0x021c, 0x021c, 0x021c, 0x021c, 0x021c, 0x0229, - 0x0229, 0x0229, 0x0229, 0x0236, 0x0236, 0x0236, 0x0236, 0x0236, - 0x0236, 0x0236, 0x0236, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, - 0x0241, 0x0241, 0x0241, 0x0241, 0x024b, 0x024b, 0x024b, 0x024b, - // Entry C0 - FF - 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, - 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, - 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, - 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, - 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, - 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, - 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, - 0x024b, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, - // Entry 100 - 13F - 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, - 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, - 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, - 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, - 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, - 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, - 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, - 0x0255, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, - // Entry 140 - 17F - 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, - 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, - 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, - 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, - 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, - 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, - 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, - 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, - // Entry 180 - 1BF - 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, - 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, - 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x0277, 0x0277, - 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, - 0x0277, 0x0277, 0x0277, 0x0277, 0x0289, 0x0289, 0x0289, 0x0289, - 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, - 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, - 0x0289, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, - // Entry 1C0 - 1FF - 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, - 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, - 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, - 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x02aa, 0x02aa, 0x02aa, - 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, - 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, - 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, - 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02bb, 0x02cc, 0x02da, 0x02ed, - // Entry 200 - 23F - 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, - 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, - 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, - 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, - 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02f9, - 0x02f9, 0x02f9, 0x02f9, 0x02f9, 0x02f9, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - // Entry 240 - 27F - 0x0305, 0x0316, 0x0316, 0x0316, 0x0316, 0x0316, 0x0316, 0x0316, - 0x0316, 0x0316, 0x0316, 0x0331, 0x0331, 0x034a, 0x0360, 0x0360, - 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, - 0x0360, 0x0360, 0x0360, 0x037d, 0x039a, - }, - }, - { // sn - "chiAkanichiAmaricchiArabuchiBelarusichiBulgarianchiBengalichiCzechchiJer" + - "imanichiGreekChirunguchiSpanishchiPeshiyachiFurenchichiHausachiHindi" + - "chiHungarichiIndonesiachiIgbochiTarianachiJapanichiJavachiKhemachiKo" + - "riachiMalaychiBurmachiNepalichiDutchchiPunjabichiPolishchiPutukezich" + - "iRomanianchiRashiyachiRwandachiShonachiSomalichiSwedishchiTamilchiTh" + - "aichiTurkishchiUkreniachiUrduchiVietnamchiYorubachiChinesechiZulu", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0011, 0x0011, - 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0024, 0x0030, - 0x0030, 0x0030, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, - 0x003a, 0x003a, 0x003a, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x004d, 0x004d, 0x004d, 0x004d, 0x0055, 0x005d, 0x005d, 0x0067, - 0x0067, 0x0067, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x007c, - 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x0084, - 0x0084, 0x008c, 0x008c, 0x008c, 0x008c, 0x0096, 0x0096, 0x0096, - // Entry 40 - 7F - 0x0096, 0x00a2, 0x00a2, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00b3, 0x00b3, 0x00bc, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, - 0x00c3, 0x00c3, 0x00cb, 0x00cb, 0x00d3, 0x00d3, 0x00d3, 0x00d3, - 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, - 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, - 0x00d3, 0x00d3, 0x00d3, 0x00db, 0x00db, 0x00e3, 0x00e3, 0x00e3, - 0x00ec, 0x00ec, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, - 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00fe, 0x00fe, 0x0107, - // Entry 80 - BF - 0x0107, 0x0112, 0x0112, 0x0112, 0x0112, 0x011d, 0x0127, 0x0130, - 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, - 0x0130, 0x0138, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, - 0x014b, 0x014b, 0x0153, 0x0153, 0x0153, 0x015a, 0x015a, 0x015a, - 0x015a, 0x015a, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x016e, - 0x0175, 0x0175, 0x0175, 0x017f, 0x017f, 0x017f, 0x017f, 0x017f, - 0x017f, 0x0188, 0x0188, 0x0192, 0x0199, - }, - }, - { // so - "AkanAxmaariCarabiBeleruusiyaanBulgeeriyaanBangaaliJeegJarmalGiriikIngiri" + - "isiIsbaanishFaarisiFaransiisFiriisiyan GalbeedHawsaHindiHangariyaanI" + - "ndunuusiyaanIgboTalyaaniJabbaaniisJafaaniisKamboodhianKuuriyaanMalaa" + - "yBurmeseNebaaliHolandaysBunjaabiBoolishBoortaqiisRomankaRuushRwandaS" + - "oomaaliSwiidhisTamiilTaaylandaysTurkishYukreeniyaanUrduuFiitnaamaysY" + - "oruubaJayniisZuulu", - []uint16{ // 181 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000b, 0x000b, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001e, 0x002a, - 0x002a, 0x002a, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, - 0x0032, 0x0032, 0x0032, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x003c, 0x003c, 0x003c, 0x003c, 0x0042, 0x004b, 0x004b, 0x0054, - 0x0054, 0x0054, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x0064, - 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x007b, - 0x007b, 0x0080, 0x0080, 0x0080, 0x0080, 0x008b, 0x008b, 0x008b, - // Entry 40 - 7F - 0x008b, 0x0098, 0x0098, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, - 0x00a4, 0x00a4, 0x00ae, 0x00b7, 0x00b7, 0x00b7, 0x00b7, 0x00b7, - 0x00b7, 0x00b7, 0x00c2, 0x00c2, 0x00cb, 0x00cb, 0x00cb, 0x00cb, - 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, - 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, - 0x00cb, 0x00cb, 0x00cb, 0x00d1, 0x00d1, 0x00d8, 0x00d8, 0x00d8, - 0x00df, 0x00df, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, - 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00f0, 0x00f0, 0x00f7, - // Entry 80 - BF - 0x00f7, 0x0101, 0x0101, 0x0101, 0x0101, 0x0108, 0x010d, 0x0113, - 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, - 0x0113, 0x0113, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, - 0x0123, 0x0123, 0x0129, 0x0129, 0x0129, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x0147, - 0x014c, 0x014c, 0x014c, 0x0157, 0x0157, 0x0157, 0x0157, 0x0157, - 0x0157, 0x015e, 0x015e, 0x0165, 0x016a, - }, - }, - { // sq - sqLangStr, - sqLangIdx, - }, - { // sr - srLangStr, - srLangIdx, - }, - { // sr-Latn - srLatnLangStr, - srLatnLangIdx, - }, - { // sv - svLangStr, - svLangIdx, - }, - { // sv-FI - "kirgiziska", - []uint16{ // 91 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x000a, - }, - }, - { // sw - swLangStr, - swLangIdx, - }, - { // sw-CD - "KiakanKibanglaKicheckiKingerezaKiswahili ya Kongo", - []uint16{ // 523 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, - 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - // Entry 40 - 7F - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - // Entry 80 - BF - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - // Entry C0 - FF - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - // Entry 100 - 13F - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - // Entry 140 - 17F - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - // Entry 180 - 1BF - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - // Entry 1C0 - 1FF - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - // Entry 200 - 23F - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x0031, - }, - }, - { // ta - taLangStr, - taLangIdx, - }, - { // te - teLangStr, - teLangIdx, - }, - { // teo - "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + - "ikiKingerezaKihispaniaKiajemiKifaransaKihausaKihindiKihungariKiindon" + - "esiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaK" + - "inepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKi" + - "somaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyo" + - "rubaKichinaKizuluKiteso", - []uint16{ // 529 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, - 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, - 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0054, 0x0054, 0x005e, - 0x005e, 0x005e, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006e, - 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0075, - 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, - // Entry 40 - 7F - 0x0085, 0x0090, 0x0090, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, - 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, - 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, - 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, - // Entry 80 - BF - 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, - 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, - 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, - 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0132, 0x0132, 0x0132, - 0x0132, 0x0132, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x0143, - 0x0149, 0x0149, 0x0149, 0x0154, 0x0154, 0x0154, 0x0154, 0x0154, - 0x0154, 0x015c, 0x015c, 0x0163, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry C0 - FF - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 100 - 13F - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 140 - 17F - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 180 - 1BF - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 1C0 - 1FF - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - // Entry 200 - 23F - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, - 0x016f, - }, - }, - { // th - thLangStr, - thLangIdx, - }, - { // ti - "አáሪቃንሰኛትዊአáˆáˆáˆ¨áŠ›á‹“ረበኛአዜርባይጃንኛቤላራሻኛቡáˆáŒ‹áˆªáŠ›á‰ áŠ•áŒ‹áˆŠáŠ›á‰¥áˆ¬á‰¶áŠ•á‰¦áˆµáŠ’ያንካታላንቼክኛወáˆáˆ½á‹´áŠ’ሽጀርመንáŒáˆªáŠ¨áŠ›áŠ¥" + - "ንáŒáˆŠá‹áŠ›áŠ¤áˆµáራንቶስá“ኒሽኤስቶኒአንባስክኛáርሲያኛáŠáŠ’ሽá‹áˆ®áŠ›áˆáˆ¨áŠ•áˆ³á‹­áŠ›áሪሰኛአይሪሽእስኮትስ ጌáˆáŠ­áŠ›áŒ‹áˆˆá‰ªáŠ›áŒ“ራ" + - "ኒጉጃራቲኛዕብራስጥሕንደኛክሮሽያንኛሀንጋሪኛኢንቴር ቋንቋእንዶኑሲኛአይስላንደኛጣሊያንኛጃá“ንኛጃቫንኛጊዮርጊያኛ" + - "ካማደኛኮሪያኛኩርድሽኪሩጋዚላቲንኛሊቱአኒየንላቲቪያንማክዶኒኛማላያላáˆáŠ›áˆ›áˆ«á‰²áŠ›áˆ›áˆ‹á‹­áŠ›áˆ›áˆá‰²áˆµáŠ›áŠ”á–ሊኛደችኖርዌይኛ" + - " (ናይ áŠáŠ–ርስክ)ኖርዌጂያንኦኪታንኛኦሪያá‘ንጃቢኛá–ሊሽá“ሽቶá–ርቱጋሊኛሮማኒያንራሽኛስንሃáˆáŠ›áˆµáˆŽá‰¨áŠ­áŠ›áˆµá‰á‰ªáŠ›áŠ áˆá‰¤áŠ’" + - "ኛሰርቢኛሰሴቶሱዳንኛስዊድንኛሰዋሂሊኛታሚáˆáŠ›á‰°áˆ‰áŒ‰áŠ›á‰³á‹­áŠ›á‰µáŒáˆ­áŠ›áŠ“á‹­ ቱርኪ ሰብዓይ (ቱርካዊ)ቱርከኛዩክረኒኛኡር" + - "ዱኛኡá‹á‰ áŠ­áŠ›á‰ªá‰µáŠ“áˆáŠ›á‹žáˆ³áŠ›á‹ªá‹²áˆ½á‹™áˆ‰áŠ›á‰³áŒ‹áˆŽáŒˆáŠ›áŠ­áˆŠáŠ•áŒáŠ¦áŠ•áŠ›á–ርቱጋáˆáŠ› (ናይ ብራዚáˆ)á–ርቱጋáˆáŠ› (ናይ á–ርቱጋáˆ)" + - "ሰርቦ- ክሮዊታን", - []uint16{ // 603 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0015, 0x001b, 0x002a, 0x002a, - 0x0036, 0x0036, 0x0036, 0x0036, 0x004e, 0x004e, 0x005d, 0x006c, - 0x006c, 0x006c, 0x007b, 0x007b, 0x0087, 0x0096, 0x00a2, 0x00a2, - 0x00a2, 0x00a2, 0x00a2, 0x00ab, 0x00ab, 0x00ab, 0x00b4, 0x00bd, - 0x00c9, 0x00c9, 0x00c9, 0x00c9, 0x00d5, 0x00e7, 0x00f9, 0x0105, - 0x0117, 0x0123, 0x0132, 0x0132, 0x013b, 0x013b, 0x0144, 0x0156, - 0x0162, 0x016e, 0x018a, 0x0196, 0x019f, 0x01ae, 0x01ae, 0x01ae, - 0x01bd, 0x01c9, 0x01c9, 0x01db, 0x01db, 0x01ea, 0x01ea, 0x01ea, - // Entry 40 - 7F - 0x0200, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0227, - 0x0236, 0x0236, 0x0242, 0x024e, 0x0260, 0x0260, 0x0260, 0x0260, - 0x0260, 0x0260, 0x0260, 0x026c, 0x0278, 0x0278, 0x0278, 0x0284, - 0x0284, 0x0284, 0x0290, 0x029c, 0x029c, 0x029c, 0x029c, 0x029c, - 0x029c, 0x02ae, 0x02ae, 0x02bd, 0x02bd, 0x02bd, 0x02bd, 0x02cc, - 0x02de, 0x02de, 0x02ea, 0x02f6, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0311, 0x0311, 0x0317, 0x033f, 0x0351, 0x0351, 0x0351, 0x0351, - 0x0360, 0x0360, 0x0360, 0x0369, 0x0369, 0x0378, 0x0378, 0x0381, - // Entry 80 - BF - 0x038a, 0x039c, 0x039c, 0x039c, 0x039c, 0x03ab, 0x03b4, 0x03b4, - 0x03b4, 0x03b4, 0x03b4, 0x03b4, 0x03b4, 0x03c3, 0x03d2, 0x03de, - 0x03de, 0x03de, 0x03de, 0x03ed, 0x03f9, 0x03f9, 0x0402, 0x040e, - 0x041d, 0x042c, 0x0438, 0x0444, 0x0444, 0x044d, 0x0459, 0x0485, - 0x0485, 0x0485, 0x0491, 0x0491, 0x0491, 0x0491, 0x0491, 0x04a0, - 0x04ac, 0x04bb, 0x04bb, 0x04ca, 0x04ca, 0x04ca, 0x04ca, 0x04d3, - 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04e5, 0x04e5, 0x04e5, 0x04e5, - 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, - // Entry C0 - FF - 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, - 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, - 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, - 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, - 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, - 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, - 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, - 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, - // Entry 100 - 13F - 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, - 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, - 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, - 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - // Entry 140 - 17F - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - // Entry 180 - 1BF - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - // Entry 1C0 - 1FF - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - // Entry 200 - 23F - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x0509, - 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, - 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, - 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, - 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, - 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, - // Entry 240 - 27F - 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, - 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, - 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0531, - 0x055c, 0x055c, 0x0576, - }, - }, - { // to - "lea fakaÊ»afÄlalea fakaÊ»apakasialea fakaÊ»avesitanilea fakaÊ»afilikanalea f" + - "akaÊ»akanilea fakaÊ»amelikilea fakaÊ»alakonilea fakaÊ»alepealea fakaÊ»asa" + - "mialea fakaÊ»avalikilea fakaÊ»aimalalea fakaÊ»asapaisanilea fakapasikil" + - "ilea fakapelalusilea fakapulukalialea fakapisilamalea fakapamipalale" + - "a fakapengikalilea fakatipetilea fakapeletonilea fakaposinialea faka" + - "katalanilea fakaseselea fakakamololea fakakÅsikalea fakakelÄ«lea faka" + - "sekilea fakasilavia-fakasiasilea fakasuvasalea fakauÄ“lesilea fakaten" + - "imaÊ»akelea fakasiamanelea fakativehilea fakaputenilea fakaÊ»euelea fa" + - "kakalisilea fakapÄlangilea fakaÊ»esipulanitolea fakasipÄ“nisilea fakaÊ»" + - "esitÅnialea fakapÄsikilea fakapÄ“sialea fakafulÄlea fakafinilanilea f" + - "akafisilea fakafaloelea fakafalanisÄ“lea fakafilisia-hihifolea fakaÊ»a" + - "elanilea fakakaelikilea fakakalisialea fakakualanilea fakakutalatile" + - "a fakamangikÄ«lea fakahausalea fakahepelÅ«lea fakahinitÄ«lea fakahili-m" + - "otulea fakakuloisialea fakahaitilea fakahungakalialea fakaÊ»Ämenialea" + - " fakahelelolea fakavahaÊ»alealea fakaÊ»initÅnesialea fakavahaÊ»alingikÄ“" + - "lea fakaÊ»ikipÅlea fakasisiuani-Ä«lea fakaÊ»inupiakilea fakaÊ»itolea fak" + - "aÊ»aisilanilea fakaʻītalilea fakaÊ»inuketitutilea fakasiapanilea fakas" + - "avalea fakaseÅsialea fakakongikÅlea fakakikuiulea fakakuaniamalea fa" + - "kakasakilea fakakalaÊ»alisutilea fakakamipÅtialea fakakanatalea fakak" + - "Ålealea fakakanulilea fakakÄsimilalea fakakulitÄ«lea fakakomilea fak" + - "akoniualilea fakakÄ«sisilea fakalatinalea fakalakisimipekilea fakakan" + - "italea fakalimipÅ«likilea lingikalalea fakalaulea fakalituanialea fak" + - "alupa-katangalea fakalativialea fakamalakasilea fakamÄsololea fakama" + - "ulilea fakamasitÅnialea fakaÊ»initia-malÄialamilea fakamongokÅlialea " + - "fakamalatilea fakamaleilea fakamolotalea fakapemalea fakanaululea fa" + - "kanetepele-tokelaulea fakanepalilea fakanetongikÄlea fakahÅlanilea f" + - "akanoauÄ“-ninosikilea fakanouaÄ“-pokimalilea fakanetepele-tongalea fak" + - "anavaholea fakanianisalea fakaÊ»okitanelea fakaÊ»osipiuÄlea fakaÊ»olomo" + - "lea fakaÊ»initia-Ê»olÄealea fakaÊ»osetikilea fakapÅ«nusapilea fakapÄlile" + - "a fakapÅlanilea fakapasitÅlea fakapotukalilea fakakuetisalea fakalai" + - "to-lomÄ“nialea fakaluanitilea fakalÅmenialea fakalÅ«sialea fakakiniÄua" + - "nitalea fakasanisukulitilea fakasaletÄ«nialea fakasÄ«nitilea fakasami-" + - "tokelaulea fakasangikÅlea fakasingihalalea fakasolÄvakilea fakasolov" + - "enialea fakahaÊ»amoalea fakasionalea fakasomalilea fakaÊ»alapÄ“nialea f" + - "akasÄ“pialea fakasuasilanilea fakasoto-tongalea fakasunitÄlea fakasuÄ“" + - "tenilea fakasuahililea fakatamililea fakaÊ»initia-telukulea fakatÄsik" + - "ilea fakatailanilea fakatikilinialea fakatÄ“kimenilea suanalea fakato" + - "ngalea fakatoakelea fakatisongalea fakatatalelea fakatahitilea fakaÊ»" + - "uikÅ«lilea fakaʻūkalaÊ»inelea fakaʻūtÅ«lea fakaÊ»usipekilea fakavenitÄle" + - "a fakavietinamilea fakavolapikilea fakaÊ»ualonialea fakaÊ»uolofolea fa" + - "katÅsalea fakaÄ«tisilea fakaÊ»iÅlupalea fakasuangilea fakasiainalea fa" + - "kasululea fakaÊ»atisÄ“lea fakaÊ»akolilea fakaÊ»atangimÄ“lea fakaÊ»atikÄ“lea" + - " fakaÊ»alepea-tunÄ«sialea fakaÊ»afilihililea fakaÊ»akihemilea fakaÊ»ainul" + - "ea fakaÊ»akatialea fakaÊ»alapamalea fakaÊ»aleutilea fakaÊ»alapÄ“nia-kekil" + - "ea fakaÊ»alitai-tongalea fakapÄlangi-motuÊ»alea fakaÊ»angikalea fakaÊ»al" + - "Ämitilea fakamapuselea fakaÊ»alaonalea fakaÊ»alapaholea fakaÊ»alepea-Ê»" + - "aisilialea fakaÊ»alauakilea fakaÊ»alepea-molokolea fakaÊ»alepea-Ê»isipit" + - "elea fakaÊ»asulea fakaÊ»ilonga-Ê»amelikalea fakaÊ»asitÅ«lialea fakakotava" + - "lea fakaÊ»auatilea fakaÊ»asapaisani-tongalea fakapalusilea fakapalilea" + - " fakapavÄlialea fakapasaÊ»alea fakapamunilea fakatÅpe-pÄ“tekilea fakak" + - "omalalea fakapesalea fakapÄ“mipalea fakapetavilea fakapenalea fakapaf" + - "utilea fakapatakalea fakaposipulilea fakapikolilea fakapinilea fakap" + - "anisalilea fakakomelea fakasikesikÄlea fakapisinupilialea fakapakiti" + - "Älilea fakapalailea fakapalahuilea fakapÅtolea fakaÊ»akÅselea fakapu" + - "liatilea fakapukisilea fakapululea fakapilinilea fakametÅ«mipalea fak" + - "akatolea fakakalipalea fakakaiukalea fakaÊ»atisamilea fakasepuanolea " + - "fakakikalea fakasÄ«pisalea fakasakatÄilea fakatÅ«kelea fakamalÄ«lea fak" + - "asinuki-takotelea fakasokitaulea fakasipeuianilea fakaselokÄ«lea faka" + - "seienelea fakakÅ«tisi-solanilea fakakopitikalea fakakapisenolea fakat" + - "oake-kilimealea fakakasiupialea fakatakotalea fakatalakuÄlea fakatai" + - "talea fakatelaualelea fakasilavelea fakatÅkelipilea fakatingikÄlea f" + - "akatisÄmalea fakatokililea fakasÅpia-hifolea fakatusuni-lolotolea fa" + - "katualalea fakahÅlani-lotolotolea fakaiola-fonÄ«lea fakatiulalea faka" + - "tasakalea fakaÊ»emipÅ«lea fakaÊ»efikilea fakaÊ»emilialea fakaÊ»isipitemuÊ»" + - "alea fakaÊ»ekaiukilea fakaÊ»elamitelea fakapÄlangi-lotolotolea fakaiÅ«p" + - "iki-lolotolea fakaÊ»euÅnitolea fakaÊ»ekisitematulalea fakafangilea fak" + - "afilipainilea fakafinilani-tÅnetalelea fakafÅngilea fakafalanisÄ“-kas" + - "unilea fakafalanisÄ“-lotolotolea fakafalanisÄ“-motuÊ»alea fakaÊ»Äpitanol" + - "ea fakafilisia-tokelaulea fakafilisia-hahakelea fakafulilÄnilea faka" + - "kÄlea fakakakausilea fakasiaina-kanilea fakakaiolea fakakapaialea fa" + - "kateli-soloasitelialea fakasiÊ»isilea fakakilipasilea fakakilakilea f" + - "akasiamane-hake-lotolotolea fakasiamane-hake-motuÊ»alea fakakonikanÄ«-" + - "koanilea fakakonitÄ«lea fakakolonitalolea fakakotikalea fakakÄ“polea f" + - "akakalisimuÊ»alea fakasiamane-suisilanilea fakaÊ»uaiÅ«lea fakafalefalel" + - "ea fakakusÄ«lea fakaÊ»uÄ«sinilea fakahaitalea fakasiaina-hakalea fakaha" + - "uaiÊ»ilea fakahihitÄ«-fisilea fakahilikainonilea fakahititelea fakamÅn" + - "gilea fakasÅpia-hakelea fakasiaina-siangilea fakahupalea fakaÊ»ipanil" + - "ea fakaÊ»ipipiolea fakaÊ»ilokolea fakaÊ»ingusilea fakaÊ»ingilianilea fak" + - "apÄlangi-samaikalea fakalosipanilea fakanikÅmipalea fakamasamelea fa" + - "kaÊ»iuteo-pÄ“sialea fakaÊ»iuteo-Ê»alepealea fakaÊ»iutilanilea fakakala-ka" + - "lipakilea fakakapilelea fakakasinilea fakasisÅ«lea fakakamipalea faka" + - "kavilea fakakapÄlitialea fakakanÄ“mipulea fakatiapilea fakamakÅnitele" + - "a fakakapuvelitianulea fakakeniangilea fakakololea fakakaingangilea " + - "fakakÄsilea fakakÅtanilea fakakoila-sÄ«nilea fakakoualilea fakakilima" + - "nisikÄ«lea fakakakolea fakakalenisinilea fakakimipÅ«nitulea fakakomi-p" + - "elemiakilea fakakonikanÄ«lea fakakosilaelea fakakepelelea fakakalate-" + - "palakililea fakakiliolea fakakinaraiÄlea fakakalelialea fakakulukile" + - "a fakasiamipalalea fakapafialea fakakolongialea fakakumikilea fakaku" + - "tenailea fakalatinolea fakalangilea fakalÄnitalea fakalamipÄlea faka" + - "lesikialea fakakavakava-foÊ»oulea fakalikulialea fakalivonialea fakal" + - "akotalea fakalomipÄtilea fakamongikÅlea fakalosilea fakalatakalelea " + - "fakalupa-lulualea fakaluisenolea fakalunitÄlea fakaluolea fakamisole" + - "a fakaluÄ«alea fakasiaina-faÊ»utohilea fakalasulea fakamatulalea fakam" + - "afalea fakamakahilea fakamaitililea fakamakasalilea fakamanitÄ«ngikol" + - "ea fakamasailea fakamapalea fakamokisiÄlea fakamanetalilea fakamenet" + - "Ä«lea fakamelulea fakamolisienilea fakaÊ»aelani-lotolotolea fakamakÅ«a" + - "-meÊ»etolea fakametalea fakamikemakilea fakaminangikapaulea fakamanis" + - "Å«lea fakamanipulilea fakamohaukilea fakamosilea fakamali-hihifolea " + - "fakamunitangilea tuifiolea fakakilekilea fakamilanitÄ“silea fakamaliw" + - "alilea fakamenitauailea fakamienelea fakaÊ»elisialea fakamasanitelani" + - "lea fakasiaina-mininanilea fakanapoletanolea fakanamalea fakasiamane" + - "-hifolea fakaneualilea fakaniasilea fakaniuÄ“lea fakaÊ»aonasalea fakak" + - "uasiolea fakangiemipÅnilea fakanokailea fakanoauÄ“-motuÊ»alea fakanovi" + - "alelea fakanikÅlea fakasoto-tokelaulea fakanuelilea fakaneuali-motuÊ»" + - "alea fakaniamiuesilea fakanianikolelea fakaniololea fakanesimalea fa" + - "kaÊ»osÄ“selea fakatoake-Ê»otomanilea fakapangasinanilea fakapÄlavilea f" + - "akapamipangalea fakapapiamÄ“nitolea fakapalaulea fakapikÄtilea fakasi" + - "amane-penisilivanialea fakasiamane-lafalafalea fakapÄ“sia-motuÊ»alea f" + - "akasiamane-palatinelea fakafoinikialea fakapiemonitelea fakaponitiki" + - "lea fakaponapÄ“lea fakapulÅ«sialea fakapolovenisi-motuÊ»alea fakakÄ«sÄ“le" + - "a fakakuitisa-simipolasolea fakalasasitanilea fakalapanuilea fakalal" + - "otongalea fakaromaniololea fakalifilea fakalomipÅlea fakalomanilea f" + - "akalotumalea fakalusinilea fakalovianalea fakaÊ»alomanialea fakaluÄle" + - "a fakasanitauelea fakasakalea fakasamalitani-Ê»alÄmitilea fakasamipul" + - "ulea fakasasakilea fakasanitalilea fakasaulasitilÄlea fakangÄmipaile" + - "a fakasangulea fakasisÄ«lialea fakasikotilanilea fakasaletÄ«nia-sasale" + - "sulea fakasenekalea fakasenalea fakaselilea fakaselikupilea fakakoil" + - "apolo-senilea fakaÊ»aelani-motuÊ»alea fakasamositialea fakataselihitil" + - "ea fakasianilea fakaÊ»alepea-sÄtilea fakasitamolea fakasilesia-hifole" + - "a fakaselaiÄlea fakasami-tongalea fakasami-lulelea fakasami-Ê»inalile" + - "a fakasami-sikolitalea fakasoninekÄ“lea fakasokitianalea fakasuranane" + - "-tongikÅlea fakasÄ“lÄ“lelea fakasaholea fakafilisia-satÄ“lanilea fakasu" + - "kumalea fakasusÅ«lea fakasumelialea fakakomololea fakasuahili-kongikÅ" + - "lea fakasuliÄiÄ-muÊ»alea fakasuliÄiÄlea fakasilesialea fakatululea fa" + - "katimenÄ“lea fakatesolea fakatelenolea fakatetumulea fakatikilÄ«nialea" + - " fakativilea fakatokelaulea fakasÄkulilea fakakilingonilea fakatilin" + - "gikÄ«telea fakatalisilea fakatamasiekilea fakaniasa-tongalea fakatoki" + - "-pisinilea fakatuloiolea fakatalokolea fakasakÅnialea fakatisÄ«misian" + - "ilea fakatati-moselemilea fakatumepukalea fakatÅ«valulea fakatasauaki" + - "lea fakatuvÄ«nialea fakatamasaiti-Ê»atilasi-lolotolea fakaÊ»utimulitile" + - "a fakaʻūkalitilea fakaÊ»umipÅ«nitulea fakaÊ»ilonga-tefitolea fakavailea" + - " fakavenÄ“sialea fakavepisilea fakavelamingi-hihifolea fakafalanikoni" + - "-lolotolea fakavotikilea fakavÅlolea fakavÅ«nisolea fakaÊ»ualiselilea " + - "fakaÊ»uolaitalea fakaÊ»ualailea fakaÊ»uasiÅlea fakasiaina-uÅ«lea fakakal" + - "imikilea fakamingilelialea fakasokalea fakaÊ»iaolea fakaÊ»iapilea faka" + - "Ê»iangipenilea fakaÊ»iÄ“mipalea fakaneʻēngatÅ«lea fakakuangitongilea fa" + - "kasapotekilea fakaÊ»ilonga-pilisilea fakasÄ“lanilea fakasenakalea faka" + - "tamasaiti-molokolea fakasuniÊ»ikai ha lealea fakasÄsÄlea fakaÊ»alepea " + - "(mÄmani)lea fakasiamane-Ê»aositulialea fakasiamane-hake-suisilanilea " + - "fakapÄlangi-Ê»aositelÄ“lialea fakapÄlangi-kÄnatalea fakapilitÄnialea f" + - "akapÄlangi-Ê»amelikalea fakasipÄ“nisi lÄtini-Ê»amelikalea fakasipÄ“nisi-" + - "‘iulopelea fakasipÄ“nisi-mekisikoulea fakafalanisÄ“-kÄnatalea fakafa" + - "lanisÄ“-suisilanilea fakahÅlani-pelesiumelea fakapotukali-palÄsililea" + - " fakapotukali-Ê»iulopelea fakamolitÄvialea fakakuloisia-sÄ“pialea faka" + - "siaina-fakafaingofualea fakasiaina-tukufakaholo", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0010, 0x0022, 0x0035, 0x0048, 0x0057, 0x0068, 0x0079, - 0x0089, 0x0099, 0x00aa, 0x00ba, 0x00ce, 0x00de, 0x00ee, 0x00ff, - 0x010f, 0x011f, 0x0130, 0x013e, 0x014e, 0x015d, 0x016d, 0x0179, - 0x0187, 0x0196, 0x01a3, 0x01af, 0x01c8, 0x01d6, 0x01e5, 0x01f8, - 0x0207, 0x0215, 0x0223, 0x0230, 0x023e, 0x024e, 0x0263, 0x0274, - 0x0287, 0x0296, 0x02a4, 0x02b1, 0x02c1, 0x02cd, 0x02da, 0x02eb, - 0x0301, 0x0311, 0x0320, 0x032f, 0x033e, 0x034e, 0x035e, 0x036b, - 0x037a, 0x0389, 0x039a, 0x03aa, 0x03b7, 0x03c9, 0x03da, 0x03e8, - // Entry 40 - 7F - 0x03fa, 0x040f, 0x0426, 0x0436, 0x0449, 0x045b, 0x0468, 0x047a, - 0x048a, 0x049f, 0x04ae, 0x04ba, 0x04c9, 0x04d9, 0x04e7, 0x04f7, - 0x0505, 0x051a, 0x052c, 0x053a, 0x0548, 0x0556, 0x0567, 0x0576, - 0x0582, 0x0592, 0x05a1, 0x05af, 0x05c3, 0x05d1, 0x05e4, 0x05f1, - 0x05fc, 0x060c, 0x0620, 0x062f, 0x063f, 0x064e, 0x065b, 0x066d, - 0x0689, 0x069c, 0x06aa, 0x06b7, 0x06c5, 0x06d1, 0x06de, 0x06f6, - 0x0704, 0x0716, 0x0725, 0x073c, 0x0753, 0x0769, 0x0777, 0x0786, - 0x0797, 0x07a9, 0x07b8, 0x07d1, 0x07e2, 0x07f3, 0x0800, 0x080f, - // Entry 80 - BF - 0x081e, 0x082e, 0x083d, 0x0853, 0x0862, 0x0872, 0x0880, 0x0894, - 0x08a8, 0x08ba, 0x08c9, 0x08dd, 0x08ed, 0x08fe, 0x090f, 0x0920, - 0x0930, 0x093d, 0x094b, 0x095e, 0x096c, 0x097d, 0x098f, 0x099e, - 0x09ae, 0x09bd, 0x09cb, 0x09e2, 0x09f1, 0x0a00, 0x0a11, 0x0a22, - 0x0a2b, 0x0a38, 0x0a45, 0x0a54, 0x0a62, 0x0a70, 0x0a81, 0x0a96, - 0x0aa5, 0x0ab6, 0x0ac5, 0x0ad6, 0x0ae6, 0x0af7, 0x0b07, 0x0b14, - 0x0b22, 0x0b33, 0x0b41, 0x0b4f, 0x0b5b, 0x0b6b, 0x0b7a, 0x0b8d, - 0x0b9d, 0x0bb6, 0x0bc9, 0x0bda, 0x0be8, 0x0bf8, 0x0c09, 0x0c19, - // Entry C0 - FF - 0x0c31, 0x0c47, 0x0c5f, 0x0c6f, 0x0c81, 0x0c8f, 0x0c9f, 0x0cb0, - 0x0cca, 0x0cdb, 0x0cf2, 0x0d0c, 0x0d19, 0x0d33, 0x0d46, 0x0d54, - 0x0d63, 0x0d7d, 0x0d8b, 0x0d97, 0x0da7, 0x0db6, 0x0dc4, 0x0dd9, - 0x0de7, 0x0df3, 0x0e02, 0x0e10, 0x0e1c, 0x0e2a, 0x0e38, 0x0e48, - 0x0e56, 0x0e62, 0x0e72, 0x0e7e, 0x0e8f, 0x0ea2, 0x0eb4, 0x0ec1, - 0x0ed0, 0x0edd, 0x0eed, 0x0efc, 0x0f0a, 0x0f16, 0x0f24, 0x0f35, - 0x0f41, 0x0f4f, 0x0f5d, 0x0f6e, 0x0f7d, 0x0f89, 0x0f98, 0x0fa8, - 0x0fb5, 0x0fc2, 0x0fd7, 0x0fe6, 0x0ff7, 0x1006, 0x1014, 0x102a, - // Entry 100 - 13F - 0x103a, 0x104a, 0x105f, 0x106f, 0x107d, 0x108d, 0x109a, 0x10aa, - 0x10b8, 0x10c9, 0x10d9, 0x10e8, 0x10f6, 0x1109, 0x111e, 0x112b, - 0x1143, 0x1155, 0x1162, 0x1170, 0x1180, 0x118f, 0x119f, 0x11b5, - 0x11c6, 0x11d7, 0x11f0, 0x1206, 0x1218, 0x122f, 0x123c, 0x124d, - 0x1267, 0x1275, 0x128d, 0x12a7, 0x12c0, 0x12d2, 0x12e9, 0x12ff, - 0x1310, 0x131b, 0x132a, 0x133d, 0x1349, 0x1357, 0x1370, 0x137f, - 0x138f, 0x139d, 0x13ba, 0x13d6, 0x13ed, 0x13fc, 0x140e, 0x141c, - 0x1429, 0x143c, 0x1455, 0x1464, 0x1474, 0x1481, 0x1492, 0x149f, - // Entry 140 - 17F - 0x14b2, 0x14c2, 0x14d6, 0x14e9, 0x14f7, 0x1505, 0x1518, 0x152d, - 0x1539, 0x1548, 0x1558, 0x1567, 0x1577, 0x158a, 0x15a2, 0x15b2, - 0x15c3, 0x15d1, 0x15e7, 0x15ff, 0x1611, 0x1626, 0x1634, 0x1642, - 0x164f, 0x165d, 0x1669, 0x167b, 0x168c, 0x1699, 0x16aa, 0x16bf, - 0x16cf, 0x16db, 0x16ec, 0x16f9, 0x1708, 0x171b, 0x1729, 0x173e, - 0x174a, 0x175c, 0x176f, 0x1785, 0x1796, 0x17a5, 0x17b3, 0x17ca, - 0x17d7, 0x17e8, 0x17f7, 0x1805, 0x1816, 0x1823, 0x1833, 0x1841, - 0x1850, 0x185e, 0x186b, 0x187a, 0x1889, 0x1898, 0x18af, 0x18be, - // Entry 180 - 1BF - 0x18cd, 0x18db, 0x18ec, 0x18fc, 0x1908, 0x1918, 0x192a, 0x1939, - 0x1948, 0x1953, 0x195f, 0x196c, 0x1984, 0x1990, 0x199e, 0x19aa, - 0x19b8, 0x19c7, 0x19d7, 0x19eb, 0x19f8, 0x1a04, 0x1a14, 0x1a24, - 0x1a33, 0x1a3f, 0x1a50, 0x1a69, 0x1a7f, 0x1a8b, 0x1a9b, 0x1aaf, - 0x1abe, 0x1ace, 0x1add, 0x1ae9, 0x1afc, 0x1b0d, 0x1b17, 0x1b25, - 0x1b38, 0x1b48, 0x1b59, 0x1b66, 0x1b76, 0x1b8a, 0x1ba1, 0x1bb3, - 0x1bbf, 0x1bd3, 0x1be1, 0x1bee, 0x1bfb, 0x1c0b, 0x1c19, 0x1c2c, - 0x1c39, 0x1c4f, 0x1c5e, 0x1c6b, 0x1c7f, 0x1c8c, 0x1ca2, 0x1cb3, - // Entry 1C0 - 1FF - 0x1cc4, 0x1cd1, 0x1cdf, 0x1cef, 0x1d06, 0x1d19, 0x1d28, 0x1d39, - 0x1d4d, 0x1d5a, 0x1d69, 0x1d86, 0x1d9e, 0x1db4, 0x1dcc, 0x1ddc, - 0x1ded, 0x1dfd, 0x1e0c, 0x1e1c, 0x1e36, 0x1e44, 0x1e5e, 0x1e70, - 0x1e7f, 0x1e90, 0x1ea1, 0x1ead, 0x1ebc, 0x1eca, 0x1ed8, 0x1ee6, - 0x1ef5, 0x1f07, 0x1f13, 0x1f23, 0x1f2f, 0x1f4c, 0x1f5c, 0x1f6a, - 0x1f7a, 0x1f8e, 0x1f9f, 0x1fac, 0x1fbc, 0x1fce, 0x1fe9, 0x1ff7, - 0x2003, 0x200f, 0x201f, 0x2035, 0x204d, 0x205e, 0x2070, 0x207d, - 0x2093, 0x20a1, 0x20b5, 0x20c4, 0x20d6, 0x20e7, 0x20fb, 0x2110, - // Entry 200 - 23F - 0x2121, 0x2132, 0x214b, 0x215b, 0x2167, 0x2180, 0x218e, 0x219b, - 0x21aa, 0x21b8, 0x21d0, 0x21e7, 0x21f8, 0x2207, 0x2213, 0x2222, - 0x222e, 0x223c, 0x224a, 0x225c, 0x2268, 0x2277, 0x2286, 0x2297, - 0x22ab, 0x22b9, 0x22ca, 0x22dd, 0x22f0, 0x22fe, 0x230c, 0x231c, - 0x2330, 0x2345, 0x2355, 0x2364, 0x2374, 0x2384, 0x23a6, 0x23b9, - 0x23cb, 0x23df, 0x23f6, 0x2401, 0x2411, 0x241f, 0x2437, 0x2450, - 0x245e, 0x246b, 0x247a, 0x248c, 0x249d, 0x24ac, 0x24bc, 0x24bc, - 0x24ce, 0x24de, 0x24f0, 0x24fc, 0x2509, 0x2517, 0x252a, 0x253b, - // Entry 240 - 27F - 0x254f, 0x2562, 0x2572, 0x2589, 0x2598, 0x25a6, 0x25be, 0x25ca, - 0x25d7, 0x25e5, 0x25ff, 0x261a, 0x2638, 0x2657, 0x266f, 0x2681, - 0x269b, 0x26be, 0x26d9, 0x26f4, 0x270d, 0x2728, 0x2741, 0x275b, - 0x2774, 0x2786, 0x279d, 0x27b9, 0x27d4, - }, - }, - { // tr - trLangStr, - trLangIdx, - }, - { // twq - "Akan senniAmhaarik senniLaaraw senniBelaruus senniBulagaari senniBengali" + - " senniCek senniAlmaÅ‹ senniGrek senniInglisi senniEspaaɲe senniFarsi " + - "senniFransee senniHawsance senniInduu senniHungaari senniIndoneesi s" + - "enniIboo senniItaali senniJaponee senniJavanee senniKmeer senni, Gam" + - "e hereKoree senniMaleezi senniBurme senniNeepal senniHolandee senniP" + - "unjaabi senniiPolonee senniPortugee senniRumaani senniRuusi senniRwa" + - "nda senniSomaali senniSuweede senniTamil senniTaailandu senniTurku s" + - "enniUkreen senniUrdu senniVietnaam senniYorbance senniSinuwa senni, " + - "MandareÅ‹Zulu senniTasawaq senni", - []uint16{ // 549 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0018, 0x0018, - 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0032, 0x0041, - 0x0041, 0x0041, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, - 0x004e, 0x004e, 0x004e, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, - 0x0063, 0x0063, 0x0063, 0x0063, 0x006d, 0x007a, 0x007a, 0x0088, - 0x0088, 0x0088, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x00a0, - 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00ae, - 0x00ae, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00c7, 0x00c7, 0x00c7, - // Entry 40 - 7F - 0x00c7, 0x00d6, 0x00d6, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, - 0x00ec, 0x00ec, 0x00f9, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x0106, 0x0106, 0x011c, 0x011c, 0x0127, 0x0127, 0x0127, 0x0127, - 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, - 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, - 0x0127, 0x0127, 0x0127, 0x0134, 0x0134, 0x013f, 0x013f, 0x013f, - 0x014b, 0x014b, 0x0159, 0x0159, 0x0159, 0x0159, 0x0159, 0x0159, - 0x0159, 0x0159, 0x0159, 0x0159, 0x0159, 0x0168, 0x0168, 0x0175, - // Entry 80 - BF - 0x0175, 0x0183, 0x0183, 0x0183, 0x0183, 0x0190, 0x019b, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, - 0x01c1, 0x01c1, 0x01cc, 0x01cc, 0x01cc, 0x01db, 0x01db, 0x01db, - 0x01db, 0x01db, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01f2, - 0x01fc, 0x01fc, 0x01fc, 0x020a, 0x020a, 0x020a, 0x020a, 0x020a, - 0x020a, 0x0218, 0x0218, 0x022f, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - // Entry C0 - FF - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - // Entry 100 - 13F - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - // Entry 140 - 17F - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - // Entry 180 - 1BF - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - // Entry 1C0 - 1FF - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - // Entry 200 - 23F - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, - 0x0239, 0x0239, 0x0239, 0x0239, 0x0246, - }, - }, - { // tzm - "TakanitTamharitTaεrabtTabilarusitTabelÉ£aritTabinÉ£alitTaÄiktTalmanitTayun" + - "anitTanglizttasbelyunitTafarisitTafá¹›ansistTahawsatTahinditTahenÉ£arit" + - "TindunisitTigbutTaá¹­alyantTajappunitTajavanitTaxmert ,TalammastTakuri" + - "tTamalizitTaburmanitTanippalitTahulaná¸itTabenjabitTappulunitTaburtuÉ£" + - "alitTaá¹›umanitTarusitTarwanditTaá¹£umalitTaswiditTatamiltTaá¹­aytTaturkit" + - "TukranitTurdutTaviá¹­namitTayurubatTacinwit,MandarintazulutTamaziÉ£t", - []uint16{ // 551 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x000f, 0x000f, - 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0022, 0x002d, - 0x002d, 0x002d, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, - 0x0038, 0x0038, 0x0038, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0047, 0x0047, 0x0047, 0x0047, 0x0050, 0x0058, 0x0058, 0x0063, - 0x0063, 0x0063, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x0078, - 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0080, - 0x0080, 0x0088, 0x0088, 0x0088, 0x0088, 0x0093, 0x0093, 0x0093, - // Entry 40 - 7F - 0x0093, 0x009d, 0x009d, 0x00a3, 0x00a3, 0x00a3, 0x00a3, 0x00a3, - 0x00ae, 0x00ae, 0x00b8, 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c1, - 0x00c1, 0x00c1, 0x00d3, 0x00d3, 0x00da, 0x00da, 0x00da, 0x00da, - 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, - 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, - 0x00da, 0x00da, 0x00da, 0x00e3, 0x00e3, 0x00ed, 0x00ed, 0x00ed, - 0x00f7, 0x00f7, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, - 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x010d, 0x010d, 0x0117, - // Entry 80 - BF - 0x0117, 0x0124, 0x0124, 0x0124, 0x0124, 0x012f, 0x0136, 0x013f, - 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, - 0x013f, 0x013f, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, - 0x0152, 0x0152, 0x015a, 0x015a, 0x015a, 0x0162, 0x0162, 0x0162, - 0x0162, 0x0162, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x0172, - 0x0178, 0x0178, 0x0178, 0x0184, 0x0184, 0x0184, 0x0184, 0x0184, - 0x0184, 0x018d, 0x018d, 0x019e, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - // Entry C0 - FF - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - // Entry 100 - 13F - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - // Entry 140 - 17F - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - // Entry 180 - 1BF - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - // Entry 1C0 - 1FF - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - // Entry 200 - 23F - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01ae, - }, - }, - { // ug - "ئاÙارچەئابخازچەئاۋÛستاچەئاÙرىكانچەئاكانچەئامخاراچەئاراگونچەئەرەبچەئاسسام" + - "چەئاۋارچەئايماراچەئەزەرىچەباشقىرتچەبÛلارۇسچەبۇلغارچەبىسلاماچەبامبار" + - "اچەبÛنگالچەتىبەتچەبىرÛتونچەبوسنىيەچەكاتالانچەچÛچىنچەچامورروچەكورساچ" + - "ەكرىچەچÛخچەقەدىمكى سلاۋيانچەچۇۋاشچەۋÛلشچەدانىشچەگÛرمانچەدىۋەخىچەبۇت" + - "انچەئÛÛ‹ÛچەگىرÛكچەئىنگلىزچەدۇنيا تىلىئىسپانچەئÛستونچەباسكىچەپارسچەÙÛ‡" + - "لاچەÙىنچەÙىجىچەÙائÛروچەÙىرانسۇزچەغەربى ÙىرىزيەچەئىرÛلاندچەسكوتچەگال" + - "ىتسىيانچەگۇئارانىچەگۇجاراتچەمانچەخائۇساچەئىبرانىچەھىندىچەھىرى موتۇچ" + - "ەخورۋاتچەھايتىچەماجارچەئەرمەنچەخÛرÛروچەئارىلىق تىلھىندونÛزىيەچەئىنت" + - "ىرلىڭچەئىبوچەيىچە (سىچۈەن)ئىنۇپىكچەئىدوچەئىسلاندچەئىتاليانچەئىنۇكتى" + - "تۇتچەياپونچەياۋاچەگىرۇزىنچەكونگوچەكىكۇيۇچەكىۋانياماچەقازاقچەگىرÛنلا" + - "ندچەكىخمÛرچەكانناداچەكورÛيەچەكانۇرىچەكەشمىرچەكۇردچەكومىچەكورنىشچەقى" + - "رغىزچەلاتىنچەلىيۇكسÛمبۇرگچەگانداچەلىمبۇرگچەلىنگالاچەلائوسچەلىتۋاچەل" + - "ۇبا-كاتانگاچەلاتۋىيەچەماداغاسقارچەمارشالچەماۋرىچەماكÛدونچەمالايامچە" + - "موڭغۇلچەماراتچەمالايچەمالتاچەبىرماچەناۋرۇچەشىمالى ندەبەلەچەنÛپالچەن" + - "دونگاچەگوللاندىيەچەيÛÚ­Ù‰ نورۋÛگچەنورۋىگىيە بوكمالچەجەنۇبى ندەبەلەچەن" + - "اۋاخوچەنيانجاچەئوكسىتانچەئوجىبۋاچەئوروموچەئورىياچەئوسسÛتچەچەپەنجابچ" + - "ەپالىچەپولەكچەپۇشتۇچەپورتۇگالچەكÛچياچەرومانىشچەرۇندىچەرۇمىنىيەچەرۇس" + - "چەرىۋانداچەسانسكرىتچەساردىنىيەچەسىندىچەشىمالى سامىچەسانگوچەسىنگالچە" + - "سىلوۋاكچەسىلوۋÛنىيەچەساموئاچەشوناچەسومالىچەئالبانچەسÛربچەسىۋاتىچەجە" + - "نۇبى سوتوچەسۇنداچەشۋÛدچەسىۋالىچەتامىلچەتÛلۇگۇچەتاجىكچەتايلاندچەتىگر" + - "ىنياچەتۈركمەنچەسىۋاناچەتوڭانچەتۈركچەسونگاچەتاتارچەتاختىچەئۇيغۇرچەئۇ" + - "كرائىنچەئوردوچەئۆزبÛÙƒÚ†Û•Û‹ÛنداچەۋىيÛتنامچەۋولاپۇكچەۋاللۇنچەۋولوÙچەخوس" + - "اچەيىددىشچەيورۇباچەجۇاڭچەخەنچەزۇلۇچەئاتجÛچەئاچولىچەئاداڭمÛچەئادىگÛÙŠ" + - "چەئاÙرىخىلىچەئاگەمچەئاينۇچەئاككادچەئالÛيۇتچەجەنۇبى ئالتاي تىللىرىقە" + - "دىمكى ئىنگلىزچەئانگىكاچەئارامۇچەماپۇچەئاراپاخوچەئاراۋاكچەئاسۇچەئاست" + - "ۇرىيەچەئاۋادىچەبÛلۇجىچەبالىچەباساچەبامۇنچەگومالاچەبÛجاچەبÛمباچەبÛنا" + - "چەباÙۇتچەبوجپۇرىچەبىكولچەبىنىچەكومچەسىكسىكاچەبىراجچەبودوچەئاكۇسچەبۇ" + - "رىياتچەبۇگىچەبۇلۇچەبىلىنچەمÛدۇمباچەكاددوچەكارىبچەكايۇگاچەئاتسامچەسÛ" + - "بۇچەچىگاچەچىبچاچەچاغاتايچەچۇكچەمارىچەچىنۇك-ژارگونچەچوكتاۋچەچىپÛۋيان" + - "Ú†Û•Ú†ÛروكىچەچÛÙŠÛنچەسورانى كۇردچەكوپتىكچەقىرىم تۈركچەكاسزۇبىچەداكوتاچە" + - "دارگىۋاچەتايتاچەدÛلاۋارÛچەسلاۋچەدوگرىبچەدىنكاچەزارماچەدوگرىچەتوۋەن " + - "سÛربچەدۇئالاچەئوتتۇرا گوللاندىيەچەجولاچەدىيۇلاچەدازاگاچەئÛمبۇچەئÛÙÙ‰" + - "كچەقەدىمكى مىسىرچەئÛكاجۇكچەئÛلامىتچەئوتتۇرا ئەسىر ئىنگلىزچەئÛۋوندوچ" + - "Û•ÙاڭچەÙىلىپپىنچەÙونچەئوتتۇرا ئەسىر Ùىرانسۇزچەقەدىمكى Ùىرانسۇزچەشىما" + - "لى Ùىرىزيەچەشەرقى ÙىرىزيەچەÙىرىئۇلىچەگاچەگايوچەگىباياچەگىزچەگىلبÛرت" + - "چەئوتتۇرا ئەسىر ئÛگىزلىك Ú¯Ûرمانچەقەدىمكى ئÛگىزلىك Ú¯Ûرمانچەگوندىچەگو" + - "رونتالوچەگوتچەگرÛبوچەقەدىمكى گىرÛÙƒÚ†Û•Ú¯Ûرمانچە شىۋىتسارىيەگۇسىچەگىۋىچ" + - "ىنچەھەيدەچەھاۋايچەخىلىگاينونچەخىتتىتچەمۆڭچەيۇقىرىقى سÛربچەخۇپاچەئىب" + - "انچەئىبىبىئوچەئىلوكانوچەئىنگۇشچەلوجبانچەنگومباچەماچامچەئىبرانى پارس" + - "چەئىبرانى ئەرەبچەقارا-قالپاقچەكابىلÛچەكاچىنچەجۇچەكامباچەكاۋىچەكابار" + - "دەيچەكانÛمبۇچەتياپچەماكوندÛچەكابۇۋÛردىيانچەكوروچەكاسىچەخوتەنچەكويرا" + - " چىنىچەكاكوچەكالÛنجىنچەكىمبۇندۇچەكونكانىچەكوسرايÛچەكىپەللÛچەقاراچاي-" + - "بالقارچەكارەلچەكۇرۇكچەشامبالاچەباÙىياچەكولىشچەقۇمۇقچەكۇتەنايچەلادىن" + - "وچەلانگىچەلانداچەلامباچەلÛزگىنچەمونگوچەلوزىچەلۇبا-لۇئاچەلۇيسÛÙ†Ú¯ÙˆÚ†Û•Ù„" + - "ۇنداچەلۇئوچەمىزوچەلۇياچەمادۇرÛسچەماÙاچەماگاخىچەمايتىلىچەماكاسارچەما" + - "ندىنگوچەماسايچەماباچەموكشاچەماندارچەمÛندÛÚ†Û•Ù…ÛرۇچەمورىسيÛنچەئوتتۇرا " + - "ئەسىر ئىرÛلاندچەماكۇۋاچەمÛتاچە’مىكماكچەمىناڭكابائۇچەمانجۇچەمانىپۇرى" + - "چەموخوكچەموسسىچەمۇنداڭچەكۆپ تىللاركىرىكچەمىراندÛسچەمارۋارىچەميÛÙ†ÛÚ†Û•" + - "ئÛرزاچەناپولىچەناماچەتۆۋەن Ú¯ÛرمانچەنÛۋارىچەنىئاسچەنيۇئÛچەكۋاسىيوچەن" + - "Ú¯Ûمبۇنچەنوغايچەقەدىمكى نورۋÛگچەنىكوچەشىمالى سوتوچەمۇئÛرچەنÛۋارچەنيا" + - "Ù…Û‹ÛزىچەنىيانكولÛچەنىئوروچەنىزەماچەئوساگÛلارچەئوسمان تۈركچەپانگاسىنا" + - "نچەپەھلەۋىچەپامپانگاچەپاپىيامەنتۇچەپالاۋچەقەدىمكى پارىسچەÙىنىكىيەچە" + - "پوناپÛئانچەقەدىمكى پروۋÛنچالچەراجاستانچەراپانىيچەرومبوچەسىگانچەئارو" + - "مانچەرىۋاچەسانداۋÛچەياقۇتچەسامارىتانچەسامبۇرۇچەساساكچەسانتالىچەنگام" + - "بايچەسانگۇچەسىتسىلىيەچەشوتلاندىيەچەسÛكنÛكاچەسÛناچەسÛلكاپچەشەرقىي سو" + - "ڭخايچەقەدىمكى ئىرÛلاندچەشىلخاچەشانچەچاد ئەرەبچەسىداموچەجەنۇبى سامى " + - "ØªÙ‰Ù„Ù„Ù‰Ø±Ù‰Ù„Û‡Ù„Û Ø³Ø§Ù…Ù‰Ú†Û•Ø¦Ù‰Ù†Ø§Ø±Ù‰ سامىچەسىكولت سامىچەسونىنكەچەسوغدىچەسىرانان" + - "-توڭوچەسÛرÛرچەساخوچەسۇكۇماچەسۇسۇچەسۈمەرچەكومورىچەكونگو سىۋالىچەكلاسس" + - "ىك سۈرىيەچەسۈرىيەچەتÛمنÛچەتÛسوچەتÛرÛناچەتÛتۇمچەتىگرÛچەتىۋچەتوكÛلاۋچ" + - "ەكىلىنگونچەتىلىنگىتچەتاماشÛكچەنياسا توڭانچەتوك-پىسىنچەتوروكوچەسىمشي" + - "انچەتۇمبۇكاچەتۇۋالۇچەشىمالىي سوڭخايچەتوۋاچەمەركىزى ئاتلاس تاماچاگىت" + - "ئۇدمۇرتچەئۇگارىتىكچەئۇمبۇندۇچەغول تىلۋايچەۋوتÛچەۋۇنجوچەۋالسÛرچەۋولا" + - "يتاچەۋارايچەۋاشوچەقالماقچەسوگاچەياۋچەياپچەياڭبەنچەيÛمباچەگۇاڭدوڭچەز" + - "اپوتÛكچەبىلىس بەلگىلىرىزÛناگاچەئۆلچەملىك ماراكەش تامازىتچەزۇنىچەتىل" + - " مەزمۇنى يوقزازاچەھازىرقى زامان ئۆلچەملىك ئەرەبچەئاۋستىرىيە Ú¯Ûرمانچە" + - "شىۋىتسارىيە ئÛگىزلىك Ú¯Ûرمانچەئاۋسترالىيە ئىنگلىزچەكانادا ئىنگلىزچەئ" + - "ەنگلىيە ئىنگلىزچەئامÛرىكا ئىنگلىزچەلاتىن ئامÛرىكا ئىسپانچەياۋروپا ئ" + - "ىسپانچەمÛكسىكا ئىسپانچەكانادا Ùىرانسۇزچەشىۋىتسارىيە Ùىرانسۇزچەبىراز" + - "ىلىيە پورتۇگالچەياۋروپا پورتۇگالچەسÛرب-كرودىيەچەئاددىي خەنچەمۇرەككە" + - "Ù¾ خەنچە", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x000e, 0x001e, 0x0030, 0x0044, 0x0052, 0x0064, 0x0076, - 0x0084, 0x0094, 0x00a2, 0x00b4, 0x00c4, 0x00d6, 0x00e8, 0x00f8, - 0x010a, 0x011c, 0x012c, 0x013a, 0x014c, 0x015e, 0x0170, 0x017e, - 0x0190, 0x019e, 0x01a8, 0x01b2, 0x01d3, 0x01e1, 0x01ed, 0x01fb, - 0x020b, 0x021b, 0x0229, 0x0235, 0x0243, 0x0255, 0x0268, 0x0278, - 0x0288, 0x0296, 0x02a2, 0x02ae, 0x02b8, 0x02c4, 0x02d4, 0x02e8, - 0x0305, 0x0319, 0x0325, 0x033d, 0x0351, 0x0363, 0x036d, 0x037d, - 0x038f, 0x039d, 0x03b2, 0x03c2, 0x03d0, 0x03de, 0x03ee, 0x03fe, - // Entry 40 - 7F - 0x0413, 0x042d, 0x0443, 0x044f, 0x0466, 0x0478, 0x0484, 0x0496, - 0x04aa, 0x04c2, 0x04d0, 0x04dc, 0x04ee, 0x04fc, 0x050c, 0x0522, - 0x0530, 0x0546, 0x0556, 0x0568, 0x0578, 0x0588, 0x0598, 0x05a4, - 0x05b0, 0x05c0, 0x05d0, 0x05de, 0x05fa, 0x0608, 0x061a, 0x062c, - 0x063a, 0x0648, 0x0663, 0x0675, 0x068d, 0x069d, 0x06ab, 0x06bd, - 0x06cf, 0x06df, 0x06ed, 0x06fb, 0x0709, 0x0717, 0x0725, 0x0744, - 0x0752, 0x0762, 0x077a, 0x0793, 0x07b6, 0x07d5, 0x07e5, 0x07f5, - 0x0809, 0x081b, 0x082b, 0x083b, 0x084f, 0x085f, 0x086b, 0x0879, - // Entry 80 - BF - 0x0887, 0x089b, 0x08a9, 0x08bb, 0x08c9, 0x08dd, 0x08e7, 0x08f9, - 0x090d, 0x0923, 0x0931, 0x094a, 0x0958, 0x0968, 0x097a, 0x0992, - 0x09a2, 0x09ae, 0x09be, 0x09ce, 0x09da, 0x09ea, 0x0a03, 0x0a11, - 0x0a1d, 0x0a2d, 0x0a3b, 0x0a4b, 0x0a59, 0x0a6b, 0x0a7f, 0x0a91, - 0x0aa1, 0x0aaf, 0x0abb, 0x0ac9, 0x0ad7, 0x0ae5, 0x0af5, 0x0b09, - 0x0b17, 0x0b27, 0x0b35, 0x0b49, 0x0b5b, 0x0b6b, 0x0b79, 0x0b85, - 0x0b95, 0x0ba5, 0x0bb1, 0x0bbb, 0x0bc7, 0x0bd5, 0x0be5, 0x0bf7, - 0x0c09, 0x0c09, 0x0c1f, 0x0c2d, 0x0c3b, 0x0c4b, 0x0c4b, 0x0c5d, - // Entry C0 - FF - 0x0c5d, 0x0c85, 0x0ca6, 0x0cb8, 0x0cc8, 0x0cd4, 0x0cd4, 0x0ce8, - 0x0ce8, 0x0cfa, 0x0cfa, 0x0cfa, 0x0d06, 0x0d06, 0x0d1c, 0x0d1c, - 0x0d2c, 0x0d2c, 0x0d3c, 0x0d48, 0x0d48, 0x0d54, 0x0d62, 0x0d62, - 0x0d72, 0x0d7e, 0x0d8c, 0x0d8c, 0x0d98, 0x0da6, 0x0da6, 0x0db8, - 0x0dc6, 0x0dd2, 0x0dd2, 0x0ddc, 0x0dee, 0x0dee, 0x0dee, 0x0dfc, - 0x0dfc, 0x0e08, 0x0e16, 0x0e28, 0x0e34, 0x0e40, 0x0e4e, 0x0e60, - 0x0e6e, 0x0e7c, 0x0e8c, 0x0e9c, 0x0ea8, 0x0eb4, 0x0ec2, 0x0ed4, - 0x0ede, 0x0eea, 0x0f05, 0x0f15, 0x0f29, 0x0f39, 0x0f47, 0x0f60, - // Entry 100 - 13F - 0x0f70, 0x0f70, 0x0f87, 0x0f99, 0x0fa9, 0x0fbb, 0x0fc9, 0x0fdd, - 0x0fe9, 0x0ff9, 0x1007, 0x1015, 0x1023, 0x103a, 0x103a, 0x104a, - 0x1071, 0x107d, 0x108d, 0x109d, 0x10ab, 0x10b9, 0x10b9, 0x10d6, - 0x10e8, 0x10fa, 0x1126, 0x1126, 0x1138, 0x1138, 0x1142, 0x1156, - 0x1156, 0x1160, 0x1160, 0x118e, 0x11b1, 0x11b1, 0x11d0, 0x11ed, - 0x1201, 0x1209, 0x1209, 0x1209, 0x1215, 0x1225, 0x1225, 0x122f, - 0x1241, 0x1241, 0x127c, 0x12ac, 0x12ac, 0x12ba, 0x12d0, 0x12da, - 0x12e8, 0x1305, 0x132c, 0x132c, 0x132c, 0x1338, 0x134a, 0x1358, - // Entry 140 - 17F - 0x1358, 0x1366, 0x1366, 0x137e, 0x138e, 0x1398, 0x13b5, 0x13b5, - 0x13c1, 0x13cf, 0x13e3, 0x13f7, 0x1407, 0x1407, 0x1407, 0x1417, - 0x1427, 0x1435, 0x1450, 0x146d, 0x146d, 0x1486, 0x1496, 0x14a4, - 0x14ac, 0x14ba, 0x14c6, 0x14da, 0x14ec, 0x14f8, 0x150a, 0x1526, - 0x1526, 0x1532, 0x1532, 0x153e, 0x154c, 0x1563, 0x1563, 0x1563, - 0x156f, 0x1583, 0x1597, 0x1597, 0x15a9, 0x15bb, 0x15cd, 0x15ec, - 0x15ec, 0x15ec, 0x15fa, 0x1608, 0x161a, 0x162a, 0x1638, 0x1646, - 0x1658, 0x1668, 0x1676, 0x1684, 0x1692, 0x16a2, 0x16a2, 0x16a2, - // Entry 180 - 1BF - 0x16a2, 0x16a2, 0x16a2, 0x16b0, 0x16bc, 0x16bc, 0x16d1, 0x16e5, - 0x16f3, 0x16ff, 0x170b, 0x1717, 0x1717, 0x1717, 0x1729, 0x1735, - 0x1745, 0x1757, 0x1769, 0x177d, 0x178b, 0x1797, 0x17a5, 0x17b5, - 0x17c3, 0x17cf, 0x17e3, 0x1811, 0x1821, 0x1830, 0x1840, 0x185a, - 0x1868, 0x187c, 0x188a, 0x1898, 0x1898, 0x18a8, 0x18bb, 0x18c9, - 0x18dd, 0x18ef, 0x18ef, 0x18fd, 0x190b, 0x190b, 0x190b, 0x191b, - 0x1927, 0x1942, 0x1952, 0x1960, 0x196e, 0x196e, 0x1980, 0x1992, - 0x19a0, 0x19bf, 0x19bf, 0x19cb, 0x19e4, 0x19f2, 0x1a00, 0x1a14, - // Entry 1C0 - 1FF - 0x1a2a, 0x1a3a, 0x1a4a, 0x1a60, 0x1a79, 0x1a91, 0x1aa3, 0x1ab7, - 0x1ad1, 0x1adf, 0x1adf, 0x1adf, 0x1adf, 0x1afc, 0x1afc, 0x1b10, - 0x1b10, 0x1b10, 0x1b26, 0x1b26, 0x1b4b, 0x1b4b, 0x1b4b, 0x1b5f, - 0x1b71, 0x1b71, 0x1b71, 0x1b71, 0x1b7f, 0x1b8d, 0x1b8d, 0x1b8d, - 0x1b8d, 0x1b9f, 0x1bab, 0x1bbd, 0x1bcb, 0x1be1, 0x1bf3, 0x1c01, - 0x1c13, 0x1c13, 0x1c25, 0x1c33, 0x1c49, 0x1c61, 0x1c61, 0x1c73, - 0x1c7f, 0x1c7f, 0x1c8f, 0x1cac, 0x1ccf, 0x1ccf, 0x1cdd, 0x1ce7, - 0x1cfc, 0x1d0c, 0x1d0c, 0x1d0c, 0x1d30, 0x1d45, 0x1d5e, 0x1d77, - // Entry 200 - 23F - 0x1d89, 0x1d97, 0x1db2, 0x1dc0, 0x1dcc, 0x1dcc, 0x1ddc, 0x1de8, - 0x1df6, 0x1e06, 0x1e21, 0x1e40, 0x1e50, 0x1e50, 0x1e50, 0x1e5e, - 0x1e6a, 0x1e7a, 0x1e88, 0x1e96, 0x1ea0, 0x1eb2, 0x1eb2, 0x1ec6, - 0x1eda, 0x1eda, 0x1eec, 0x1f05, 0x1f1a, 0x1f1a, 0x1f2a, 0x1f2a, - 0x1f3c, 0x1f3c, 0x1f4e, 0x1f5e, 0x1f7d, 0x1f89, 0x1fb7, 0x1fc9, - 0x1fdf, 0x1ff3, 0x2000, 0x200a, 0x200a, 0x200a, 0x200a, 0x200a, - 0x2016, 0x2016, 0x2024, 0x2034, 0x2046, 0x2054, 0x2060, 0x2060, - 0x2060, 0x2070, 0x2070, 0x207c, 0x2086, 0x2090, 0x20a0, 0x20ae, - // Entry 240 - 27F - 0x20ae, 0x20c0, 0x20d2, 0x20ef, 0x20ef, 0x20ff, 0x2133, 0x213f, - 0x215b, 0x2167, 0x21a2, 0x21c7, 0x21ff, 0x2228, 0x2247, 0x226a, - 0x228d, 0x22b9, 0x22d8, 0x22f7, 0x2318, 0x2343, 0x2343, 0x236c, - 0x238f, 0x238f, 0x23aa, 0x23c1, 0x23dc, - }, - }, - { // uk - ukLangStr, - ukLangIdx, - }, - { // ur - urLangStr, - urLangIdx, - }, - { // ur-IN - "اÙریقیکارسیکائیکنڑکردلٹويایزرمÛمعیاری مراقشی تمازیقیجدید معیاری عربیآسان" + - " چینی", - []uint16{ // 604 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, - 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, - 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, - 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, - 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, - // Entry 40 - 7F - 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, - 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, - 0x001e, 0x001e, 0x001e, 0x0024, 0x0024, 0x0024, 0x0024, 0x002a, - 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, - 0x002a, 0x002a, 0x002a, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - // Entry 80 - BF - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - // Entry C0 - FF - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - // Entry 100 - 13F - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - // Entry 140 - 17F - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - // Entry 180 - 1BF - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - // Entry 1C0 - 1FF - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - // Entry 200 - 23F - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - // Entry 240 - 27F - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, - 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, - 0x0084, 0x0084, 0x0084, 0x0095, - }, - }, - { // uz - uzLangStr, - uzLangIdx, - }, - { // uz-Arab - "دریپشتواوزبیک", - []uint16{ // 170 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - // Entry 40 - 7F - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - // Entry 80 - BF - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x001a, - }, - }, - { // uz-Cyrl - "ÐбхазчаÐфриканчаÐмхарчаÐрабчаÐÑÑамчаОзарбайжончаБеларуÑчаБолгарчаБенгалч" + - "аТибетчаБоÑниÑчаКаталанчаЧехчаУÑлÑчаДаниÑчаОлмончаГрекчаИнглизчаЭÑп" + - "ерантоИÑпанчаЭÑтончаБаÑкчаФорÑчаФинчаФижичаФарÑрчаФранцузчаҒарбий Ñ„" + - "ризианчаИрландчаГалицийчаГуараниГужаратиХауÑаИбронийҲиндчаХорватчаГ" + - "аитианчаВенгрчаÐрманчаИндонезиÑчаИгбоИÑландчаИталÑнчаЯпончаЯванчаГр" + - "узинчаҚозоқчаХмерчаКаннадаКорейÑчаКашмирчаКурдчаҚирғизчаЛотинчаЛюкÑ" + - "ембургчаЛаоЛитвачаЛатишчаМалагаÑиМаориМакедончаМалайаламМаратиМалай" + - "чаМальтачаБирманчаÐепалчаГолландчаÐорвегча ÐинорÑкÐорвегча БокмалОр" + - "иÑПанжобчаПолÑкчаПуштуПортугалчаКвечуаРоманчаРуминчаРуÑчаСанÑкритча" + - "СиндхиСинхалаСловакчаСловенчаСомаличаÐлбанчаСербчаСунданчаШведчаСуа" + - "хилиТамилчаТелугуТожикчаТайчаТигриньÑТуркманчаТонгочаТуркчаТатарчаУ" + - "йғурчаУкраинчаУрдуЎзбекВьетнамчаВолофчаХоÑаЙорубаХитойчаЗулуФилипин" + - "Ð¾Ð¨Ð²ÐµÐ¹Ñ†Ð°Ñ€Ð¸Ñ Ð½ÐµÐ¼Ð¸ÑчаÑиГавайчаÐомаълум тилСтандарт Марокаш ТамазитТил " + - "таркиби йўқЛотин Ðмерика иÑпанчаÑиФламандча", - []uint16{ // 599 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x000e, 0x000e, 0x0020, 0x0020, 0x002e, 0x002e, - 0x003a, 0x0048, 0x0048, 0x0048, 0x0060, 0x0060, 0x0072, 0x0082, - 0x0082, 0x0082, 0x0092, 0x00a0, 0x00a0, 0x00b0, 0x00c2, 0x00c2, - 0x00c2, 0x00c2, 0x00c2, 0x00cc, 0x00cc, 0x00cc, 0x00d8, 0x00e6, - 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x0100, 0x0110, 0x0122, 0x0130, - 0x013e, 0x014a, 0x0156, 0x0156, 0x0160, 0x016c, 0x017a, 0x018c, - 0x01ab, 0x01bb, 0x01bb, 0x01cd, 0x01db, 0x01eb, 0x01eb, 0x01f5, - 0x0203, 0x020f, 0x020f, 0x021f, 0x0231, 0x023f, 0x024d, 0x024d, - // Entry 40 - 7F - 0x024d, 0x0263, 0x0263, 0x026b, 0x026b, 0x026b, 0x026b, 0x027b, - 0x028b, 0x028b, 0x0297, 0x02a3, 0x02b3, 0x02b3, 0x02b3, 0x02b3, - 0x02c1, 0x02c1, 0x02cd, 0x02db, 0x02eb, 0x02eb, 0x02fb, 0x0307, - 0x0307, 0x0307, 0x0317, 0x0325, 0x033d, 0x033d, 0x033d, 0x033d, - 0x0343, 0x0351, 0x0351, 0x035f, 0x036f, 0x036f, 0x0379, 0x038b, - 0x039d, 0x039d, 0x03a9, 0x03b7, 0x03c7, 0x03d7, 0x03d7, 0x03d7, - 0x03e5, 0x03e5, 0x03f7, 0x0416, 0x0433, 0x0433, 0x0433, 0x0433, - 0x0433, 0x0433, 0x0433, 0x043b, 0x043b, 0x044b, 0x044b, 0x0459, - // Entry 80 - BF - 0x0463, 0x0477, 0x0483, 0x0491, 0x0491, 0x049f, 0x04a9, 0x04a9, - 0x04bd, 0x04bd, 0x04c9, 0x04c9, 0x04c9, 0x04d7, 0x04e7, 0x04f7, - 0x04f7, 0x04f7, 0x0507, 0x0515, 0x0521, 0x0521, 0x0521, 0x0531, - 0x053d, 0x054b, 0x0559, 0x0565, 0x0573, 0x057d, 0x058d, 0x059f, - 0x059f, 0x05ad, 0x05b9, 0x05b9, 0x05c7, 0x05c7, 0x05d5, 0x05e5, - 0x05ed, 0x05f7, 0x05f7, 0x0609, 0x0609, 0x0609, 0x0617, 0x061f, - 0x061f, 0x062b, 0x062b, 0x0639, 0x0641, 0x0641, 0x0641, 0x0641, - 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, - // Entry C0 - FF - 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, - 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, - 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, - 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, - 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, - 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, - 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, - 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, - // Entry 100 - 13F - 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, - 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, - 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, - 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0651, - 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, - 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, - 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, - 0x0651, 0x0651, 0x0676, 0x0676, 0x0676, 0x0676, 0x0676, 0x0676, - // Entry 140 - 17F - 0x0676, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - // Entry 180 - 1BF - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - // Entry 1C0 - 1FF - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - // Entry 200 - 23F - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, - 0x0684, 0x0684, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, - 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, - 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, - // Entry 240 - 27F - 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x06c9, 0x06c9, - 0x06e5, 0x06e5, 0x06e5, 0x06e5, 0x06e5, 0x06e5, 0x06e5, 0x06e5, - 0x06e5, 0x0711, 0x0711, 0x0711, 0x0711, 0x0711, 0x0723, - }, - }, - { // vai - "ꕉꕪꘋꕉꕆꕌꔸꕞꕌê–ꔆꕞꖩꔻꗂꔠꗸꘋꗩꕭꔷꗿꗡꕧꕮꔧꗥꗷꘋꕶꕱê•ê˜Šê”§ê—¨ê—¡ê”»ê˜‚ꘋꗱꘋꔻꕌꖙꕢꔦꔺꖽꔟꗸꘋꔤꖆꕇꔻꘂꘋꔤꕼꔤꕚꔷꘂꘋꕧê•ê•‡ê”§ê•§ê•™ê•‡ê”§" + - "ꕃꘈꗢê–ꔸꘂꘋꕮꔒꔀꗩꕆꔻꕇê•ê”·ê—ꔿꖛꕨꔬê—ꔒꔻꕶꕿꕃꔤꖄꕆꕇꘂꘋê—ꖺꔻꘂꘋꕟꖙꕡꖇꕮꔷꖬꔨꗵꘋꕚꕆꔷꕚꔤꗋꕃꖳꖴꔓꕇꘂꘋꖺꖦꔲꕩꕯ" + - "ꕆꔧꖎꖄꕑꕦꕇꔧꖮꖨꕙꔤ", - []uint16{ // 556 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0015, 0x0015, - 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x002a, 0x0036, - 0x0036, 0x0036, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x004e, 0x004e, 0x004e, 0x004e, 0x0057, 0x005d, 0x005d, 0x0066, - 0x0066, 0x0066, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x007e, - 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x0087, - 0x0087, 0x008d, 0x008d, 0x008d, 0x008d, 0x0099, 0x0099, 0x0099, - // Entry 40 - 7F - 0x0099, 0x00ab, 0x00ab, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, - 0x00c0, 0x00c0, 0x00cc, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00e1, 0x00e1, 0x00ed, 0x00ed, 0x00ed, 0x00ed, - 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, - 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, - 0x00ed, 0x00ed, 0x00ed, 0x00f6, 0x00f6, 0x00ff, 0x00ff, 0x00ff, - 0x0108, 0x0108, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, - 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x0117, 0x0117, 0x0120, - // Entry 80 - BF - 0x0120, 0x012c, 0x012c, 0x012c, 0x012c, 0x013b, 0x014a, 0x0153, - 0x0153, 0x0153, 0x0153, 0x0153, 0x0153, 0x0153, 0x0153, 0x0153, - 0x0153, 0x0153, 0x015c, 0x015c, 0x015c, 0x015c, 0x015c, 0x015c, - 0x0168, 0x0168, 0x0171, 0x0171, 0x0171, 0x0177, 0x0177, 0x0177, - 0x0177, 0x0177, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x018f, - 0x0195, 0x0195, 0x0195, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, - 0x01a4, 0x01ad, 0x01ad, 0x01b6, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - // Entry C0 - FF - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - // Entry 100 - 13F - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - // Entry 140 - 17F - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - // Entry 180 - 1BF - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - // Entry 1C0 - 1FF - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - // Entry 200 - 23F - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, - 0x01bc, 0x01bc, 0x01bc, 0x01c2, - }, - }, - { // vai-Latn - "AkaÅ‹AmiháriLahabuBhelarusaÅ‹BhÉ”gerɛŋBhɛŋgáliChÉ›JamáĩHÉ›lɛŋPooPanyɛĩPɛɛsiyÉ›" + - "Å‹FɛŋsiHawusaHíiÅ‹diHɔŋgérɛŋÃndonisiyɛŋÃgboItáliyɛŋJapaníĩJavaníĩKimÉ›" + - "ɛ̃ tÉ›KoríyɛŋMaléeeBhÉ›mísiNipaliDÉ”chiPuÅ‹jabhiPÉ”ÌlésiPotokíiRomíniyɛŋ" + - "RÉ”shiyɛŋRawundaSomáliSúwídɛŋTamíliTáiTÉ”ÌkiYukureniyɛŋƆduViyamíĩYórób" + - "haChaniÄ©ZúluVai", - []uint16{ // 556 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x000d, 0x000d, - 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x001e, 0x0029, - 0x0029, 0x0029, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0034, 0x0034, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, - 0x003f, 0x003f, 0x003f, 0x003f, 0x0047, 0x004a, 0x004a, 0x0052, - 0x0052, 0x0052, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x0065, - 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006b, - 0x006b, 0x0073, 0x0073, 0x0073, 0x0073, 0x0080, 0x0080, 0x0080, - // Entry 40 - 7F - 0x0080, 0x008e, 0x008e, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, - 0x009e, 0x009e, 0x00a7, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, - 0x00b0, 0x00b0, 0x00bd, 0x00bd, 0x00c7, 0x00c7, 0x00c7, 0x00c7, - 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, - 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, - 0x00c7, 0x00c7, 0x00c7, 0x00ce, 0x00ce, 0x00d7, 0x00d7, 0x00d7, - 0x00dd, 0x00dd, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, - 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00ec, 0x00ec, 0x00f6, - // Entry 80 - BF - 0x00f6, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x010a, 0x0115, 0x011c, - 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, - 0x011c, 0x011c, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, - 0x012e, 0x012e, 0x0135, 0x0135, 0x0135, 0x0139, 0x0139, 0x0139, - 0x0139, 0x0139, 0x0140, 0x0140, 0x0140, 0x0140, 0x0140, 0x014d, - 0x0151, 0x0151, 0x0151, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, - 0x015a, 0x0163, 0x0163, 0x016a, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - // Entry C0 - FF - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - // Entry 100 - 13F - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - // Entry 140 - 17F - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - // Entry 180 - 1BF - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - // Entry 1C0 - 1FF - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - // Entry 200 - 23F - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, - 0x016f, 0x016f, 0x016f, 0x0172, - }, - }, - { // vi - viLangStr, - viLangIdx, - }, - { // vun - "KiakanyiKiamharyiKyiarabuKyibelarusiKyibulgaryiaKyibanglaKyicheckiKyijer" + - "umaniKyigirikiKyingerezaKyihispaniaKyiajemiKyifaransaKyihausaKyihind" + - "iKyihungariKyiindonesiaKyiigboKyiitalianoKyijapaniKyijavaKyikambodia" + - "KyikoreaKyimalesiaKyiburmaKyinepaliKyiholanziKyipunjabiKyipolandiKyi" + - "renoKyiromaniaKyirusiKyinyarwandaKyisomalyiKyiswidiKyitamilKyitailan" + - "diKyiturukyiKyiukraniaKyiurduKyivietinamuKyiyorubaKyichinaKyizuluKyi" + - "vunjo", - []uint16{ // 563 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0011, 0x0011, - 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0024, 0x0030, - 0x0030, 0x0030, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0039, 0x0039, 0x0039, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x004d, 0x004d, 0x004d, 0x004d, 0x0056, 0x0060, 0x0060, 0x006b, - 0x006b, 0x006b, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x007d, - 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x0085, - 0x0085, 0x008d, 0x008d, 0x008d, 0x008d, 0x0097, 0x0097, 0x0097, - // Entry 40 - 7F - 0x0097, 0x00a3, 0x00a3, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, - 0x00b5, 0x00b5, 0x00be, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, - 0x00c5, 0x00c5, 0x00d0, 0x00d0, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00e2, 0x00e2, 0x00ea, 0x00ea, 0x00ea, - 0x00f3, 0x00f3, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, - 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x0107, 0x0107, 0x0111, - // Entry 80 - BF - 0x0111, 0x0118, 0x0118, 0x0118, 0x0118, 0x0122, 0x0129, 0x0135, - 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, - 0x0135, 0x0135, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, - 0x0147, 0x0147, 0x014f, 0x014f, 0x014f, 0x015a, 0x015a, 0x015a, - 0x015a, 0x015a, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x016e, - 0x0175, 0x0175, 0x0175, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, - 0x0181, 0x018a, 0x018a, 0x0192, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry C0 - FF - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry 100 - 13F - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry 140 - 17F - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry 180 - 1BF - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry 1C0 - 1FF - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - // Entry 200 - 23F - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, - 0x0199, 0x0199, 0x01a1, - }, - }, - { // wae - "AbÄasiÅ¡AfrikánsAmhariÅ¡ArabiÅ¡AssamesiÅ¡AymaraSerbaidÅ¡aniÅ¡WísrussiÅ¡BulgariÅ¡" + - "BengaliÅ¡TibetiÅ¡BosniÅ¡KatalaniÅ¡TÅ¡eÄiÅ¡WalisiÅ¡DäniÅ¡TitÅ¡MalediwiÅ¡ButaniÅ¡" + - "GriÄiÅ¡EngliÅ¡SchpaniÅ¡EstniÅ¡BaskiÅ¡PersiÅ¡FiniÅ¡FidÅ¡ianiÅ¡WälÅ¡IriÅ¡GaliziÅ¡G" + - "uaraniGujaratiHausaHebräiÅ¡HindiKroatiÅ¡HaitianiÅ¡UngariÅ¡ArmeniÅ¡Indones" + - "iÅ¡IgboIisländiÅ¡ItalieniÅ¡JapaniÅ¡GeorgiÅ¡KazaÄiÅ¡KambodÅ¡aniÅ¡KannadaKorea" + - "niÅ¡KaÅ¡miriÅ¡KurdiÅ¡KirgisiÅ¡LatiniÅ¡LuxemburgiÅ¡LingalaLaotiÅ¡LitauiÅ¡Letti" + - "Å¡MalagásiMaoriMazedoniÅ¡MalayalamMongoliÅ¡MarathiMalaíšMaltesiÅ¡Burmes" + - "iÅ¡NordndebeleNepalesiÅ¡HoländiÅ¡NorwegiÅ¡ NynorskNorwegiÅ¡ BokmÃ¥lNyanjaO" + - "riyaOsétiÅ¡PandÅ¡abiÅ¡PolniÅ¡PaÅ¡tuPortugisiÅ¡QueÄuaRätromaniÅ¡RundiRumäniÅ¡" + - "RusiÅ¡RuandiÅ¡SanskritSindhiNordsamiÅ¡SangoSingalesiÅ¡SlowakiÅ¡SloweniÅ¡Sa" + - "moaniÅ¡ShonaSomaliÅ¡AlbaniÅ¡SerbiÅ¡SwaziSüdsothoSundanesiÅ¡SchwediÅ¡Suahel" + - "iÅ¡TamiliÅ¡TeluguTadÅ¡ikiÅ¡ThailändiÅ¡TigrinjaTurkmeniÅ¡TswanaTongaTürkiÅ¡T" + - "songaTaitiÅ¡UiguriÅ¡UkrainiÅ¡UrduUsbekiÅ¡VendaVietnamesiÅ¡WolofXhosaYorub" + - "aChinesiÅ¡ZuluEfikFilipiniÅ¡HawaíaniÅ¡NordsothoJakutiÅ¡TetumNiwmelanesiÅ¡" + - "Unbekannti SchpraÄWalserÖštriÄiÅ¡es TitÅ¡Schwizer HoÄtitÅ¡AuÅ¡traliÅ¡es E" + - "ngliÅ¡KanadiÅ¡es EngliÅ¡BritiÅ¡es EngliÅ¡AmerikaniÅ¡es EngliÅ¡Latiamerikani" + - "Å¡es SchpaniÅ¡IberiÅ¡es SchpaniÅ¡KanadiÅ¡es WälÅ¡Schwizer WälÅ¡FlämiÅ¡Brasi" + - "lianiÅ¡es PortugisiÅ¡IberiÅ¡es PortugisiÅ¡VereifaÄts ChinesiÅ¡Traditionel" + - "ls ChinesiÅ¡", - []uint16{ // 605 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0009, 0x0009, 0x0012, 0x0012, 0x001a, 0x001a, - 0x0021, 0x002b, 0x002b, 0x0031, 0x003f, 0x003f, 0x004a, 0x0053, - 0x0053, 0x0053, 0x005c, 0x0064, 0x0064, 0x006b, 0x0075, 0x0075, - 0x0075, 0x0075, 0x0075, 0x007e, 0x007e, 0x007e, 0x0086, 0x008d, - 0x0092, 0x009c, 0x00a4, 0x00a4, 0x00ac, 0x00b3, 0x00b3, 0x00bc, - 0x00c3, 0x00ca, 0x00d1, 0x00d1, 0x00d7, 0x00e2, 0x00e2, 0x00e8, - 0x00e8, 0x00ed, 0x00ed, 0x00f5, 0x00fc, 0x0104, 0x0104, 0x0109, - 0x0112, 0x0117, 0x0117, 0x011f, 0x0129, 0x0131, 0x0139, 0x0139, - // Entry 40 - 7F - 0x0139, 0x0143, 0x0143, 0x0147, 0x0147, 0x0147, 0x0147, 0x0152, - 0x015c, 0x015c, 0x0164, 0x0164, 0x016c, 0x016c, 0x016c, 0x016c, - 0x0175, 0x0175, 0x0182, 0x0189, 0x0192, 0x0192, 0x019c, 0x01a3, - 0x01a3, 0x01a3, 0x01ac, 0x01b4, 0x01c0, 0x01c0, 0x01c0, 0x01c7, - 0x01ce, 0x01d6, 0x01d6, 0x01dd, 0x01e6, 0x01e6, 0x01eb, 0x01f5, - 0x01fe, 0x0207, 0x020e, 0x0216, 0x021f, 0x0228, 0x0228, 0x0233, - 0x023d, 0x023d, 0x0247, 0x0258, 0x0269, 0x0269, 0x0269, 0x026f, - 0x026f, 0x026f, 0x026f, 0x0274, 0x027c, 0x0287, 0x0287, 0x028e, - // Entry 80 - BF - 0x0294, 0x029f, 0x02a6, 0x02b2, 0x02b7, 0x02c0, 0x02c6, 0x02ce, - 0x02d6, 0x02d6, 0x02dc, 0x02e6, 0x02eb, 0x02f6, 0x02ff, 0x0308, - 0x0311, 0x0316, 0x031e, 0x0326, 0x032d, 0x0332, 0x033b, 0x0346, - 0x034f, 0x0358, 0x0360, 0x0366, 0x0370, 0x037c, 0x0384, 0x038e, - 0x0394, 0x0399, 0x03a1, 0x03a7, 0x03a7, 0x03ae, 0x03b6, 0x03bf, - 0x03c3, 0x03cb, 0x03d0, 0x03dc, 0x03dc, 0x03dc, 0x03e1, 0x03e6, - 0x03e6, 0x03ec, 0x03ec, 0x03f5, 0x03f9, 0x03f9, 0x03f9, 0x03f9, - 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, - // Entry C0 - FF - 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, - 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, - 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, - 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, - 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, - 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, - 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, - 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, - // Entry 100 - 13F - 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, - 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, - 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03fd, 0x03fd, 0x03fd, - 0x03fd, 0x03fd, 0x03fd, 0x03fd, 0x03fd, 0x03fd, 0x03fd, 0x0407, - 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, - 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, - 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, - 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, - // Entry 140 - 17F - 0x0407, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - // Entry 180 - 1BF - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, - 0x0412, 0x0412, 0x0412, 0x0412, 0x041b, 0x041b, 0x041b, 0x041b, - // Entry 1C0 - 1FF - 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, - 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, - 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, - 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, - 0x041b, 0x041b, 0x041b, 0x041b, 0x0423, 0x0423, 0x0423, 0x0423, - 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, - 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, - 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, - // Entry 200 - 23F - 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, - 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, - 0x0423, 0x0423, 0x0428, 0x0428, 0x0428, 0x0428, 0x0428, 0x0428, - 0x0428, 0x0428, 0x0428, 0x0428, 0x0435, 0x0435, 0x0435, 0x0435, - 0x0435, 0x0435, 0x0435, 0x0435, 0x0435, 0x0435, 0x0435, 0x0435, - 0x0435, 0x0435, 0x0448, 0x0448, 0x0448, 0x0448, 0x0448, 0x0448, - 0x0448, 0x0448, 0x0448, 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, - 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, - // Entry 240 - 27F - 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, - 0x044e, 0x044e, 0x044e, 0x0462, 0x0474, 0x0489, 0x049b, 0x04ac, - 0x04c1, 0x04dc, 0x04ef, 0x04ef, 0x0500, 0x050f, 0x0517, 0x0531, - 0x0546, 0x0546, 0x0546, 0x055b, 0x0572, - }, - }, - { // xog - "OluakaaniOluamharikiOluwarabuOlubelarusiOlubulugariyaOlubengaliOluceekeO" + - "ludaakiOluyonaaniOlungerezaOlusipanyaOluperusiOlufalansaOluhawuzaOlu" + - "hinduOluhangareOluyindonezyaOluyiboOluyitaleOlujapaniOlunnajjavaOluk" + - "meOlukoreyaOlumalayiOlubbamaOlunepaliOluholandiOlupunjabiOlupolandiO" + - "lupotugiiziOlulomaniyaOlulasaOlunarwandaOlusomaliyaOluswideniOlutami" + - "iruOluttaayiOlutakeOluyukurayineOlu-uruduOluvyetinaamuOluyorubaOluca" + - "yinaOluzzuluOlusoga", - []uint16{ // 572 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0014, 0x0014, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0028, 0x0035, - 0x0035, 0x0035, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, - 0x004f, 0x004f, 0x004f, 0x004f, 0x0059, 0x0063, 0x0063, 0x006d, - 0x006d, 0x006d, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0080, - 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0089, - 0x0089, 0x0091, 0x0091, 0x0091, 0x0091, 0x009b, 0x009b, 0x009b, - // Entry 40 - 7F - 0x009b, 0x00a8, 0x00a8, 0x00af, 0x00af, 0x00af, 0x00af, 0x00af, - 0x00b8, 0x00b8, 0x00c1, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00d2, 0x00d2, 0x00db, 0x00db, 0x00db, 0x00db, - 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, - 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, - 0x00db, 0x00db, 0x00db, 0x00e4, 0x00e4, 0x00ec, 0x00ec, 0x00ec, - 0x00f5, 0x00f5, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, - 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x0109, 0x0109, 0x0113, - // Entry 80 - BF - 0x0113, 0x011f, 0x011f, 0x011f, 0x011f, 0x012a, 0x0131, 0x013c, - 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, - 0x013c, 0x013c, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, - 0x0151, 0x0151, 0x015b, 0x015b, 0x015b, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x016b, 0x016b, 0x016b, 0x016b, 0x016b, 0x0178, - 0x0181, 0x0181, 0x0181, 0x018e, 0x018e, 0x018e, 0x018e, 0x018e, - 0x018e, 0x0197, 0x0197, 0x01a0, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - // Entry C0 - FF - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - // Entry 100 - 13F - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - // Entry 140 - 17F - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - // Entry 180 - 1BF - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - // Entry 1C0 - 1FF - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - // Entry 200 - 23F - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, - 0x01a8, 0x01a8, 0x01a8, 0x01af, - }, - }, - { // yav - "akánÉ›amalíkeÌpakaspielúsebulgálÉ›pengálÉ›ÌÉ›cÉ›ÌkÉ›Ìɛŋndiámanyavánɛíŋgilísénu" + - "É›spanyÉ”ÌlÉ›nupÉ›ÌlisÉ›feleÅ‹sípakasíndíɔÌÅ‹gɛíndonísiɛíboitáliÉ›ndiámanyá" + - "vanÉ›kímɛɛkolíemáliÉ›bímanÉ›nunipálÉ›nilándÉ›nupunsapíɛÌnupolonÉ›ÌÉ›nupÉ”lit" + - "ukÉ›ÌÉ›nulumÉ›ÌÅ‹É›nulúsenuluándÉ›ÌÉ›nusomalíɛnusuetuanutámulenutáyÉ›nutúluk" + - "enukeleniÉ›ÌÅ‹É›nulutúnufiÉ›tnamíɛŋnuyolúpasinúɛnusulúnuasue", - []uint16{ // 575 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x000f, 0x000f, - 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x001e, 0x0027, - 0x0027, 0x0027, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0034, 0x0034, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x004a, 0x004a, 0x004a, 0x004a, 0x0052, 0x005e, 0x005e, 0x006e, - 0x006e, 0x006e, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x0083, - 0x0083, 0x0083, 0x0083, 0x0083, 0x0083, 0x0083, 0x0083, 0x0088, - 0x0088, 0x008e, 0x008e, 0x008e, 0x008e, 0x0097, 0x0097, 0x0097, - // Entry 40 - 7F - 0x0097, 0x00a3, 0x00a3, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, - 0x00af, 0x00af, 0x00b7, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, - 0x00bf, 0x00bf, 0x00c7, 0x00c7, 0x00cd, 0x00cd, 0x00cd, 0x00cd, - 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, - 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, - 0x00cd, 0x00cd, 0x00cd, 0x00d4, 0x00d4, 0x00dc, 0x00dc, 0x00dc, - 0x00e6, 0x00e6, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, - 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00fd, 0x00fd, 0x010a, - // Entry 80 - BF - 0x010a, 0x011a, 0x011a, 0x011a, 0x011a, 0x0127, 0x012e, 0x013c, - 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, - 0x013c, 0x013c, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, - 0x014f, 0x014f, 0x0158, 0x0158, 0x0158, 0x0160, 0x0160, 0x0160, - 0x0160, 0x0160, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0179, - 0x0180, 0x0180, 0x0180, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, - 0x0190, 0x0199, 0x0199, 0x01a0, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - // Entry C0 - FF - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - // Entry 100 - 13F - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - // Entry 140 - 17F - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - // Entry 180 - 1BF - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - // Entry 1C0 - 1FF - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - // Entry 200 - 23F - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, - 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01ad, - }, - }, - { // yi - "×ַפֿ×ַר×ַפֿריק×ַנס×ַמה×ַריש×ַר×Ö·×’×ניש×ַר×ַביש×ַס×ַמיש×ַזערביידזש×ַנישבעל" + - "×ַרוסישבולג×ַרישבענג×ַלישטיבעטישברעט×נישב×סנישק×ַט×ַל×נישטשעכישקלוי" + - "סטער־סל×ַווישוועלשישדענישדײַטשגריכישענגלישעספּער×ַנט×שפּ×ַנישעסטישב" + - "×ַסקישפּערסישפֿינישפֿידזשיפֿ×ַר×ישפֿר×ַנצויזישמערב־פֿריזיש×ירישסק×ט" + - "יש געלישג×ַלישישמ×ַנקסה×ַוס×ַהעברע×ישהינדיקר××ַטיש×ונגעריש×ַרמעניש×" + - "ינד×נעזיש×יד××יסל×ַנדיש×יט×ַליענישי×ַפּ×ַנישי×ַוו×ַנעזישגרוזינישק×Ö·" + - "×–×ַכישכמערק×Ö·× ×ַד×ַק×רע×ישקורדישק×רנישקירגיזישל×טיינישלוקסעמבורגישל" + - "×Ö·×ליטווישלעטישמ×Ö·×רישמ×ַקעד×נישמ×ַל×Ö·×™×ַל×Ö·×מ×× ×’×לישמ×ַלטעזישבירמ×" + - "ַנישנעפּ×ַלישה×לענדישנײַ־נ×רוועגישנ×רוועגיש×קסיט×ַניש×סעטישפּוילישפ" + - "Ö¼×ַשט×ָפּ×רטוגעזישרומענישרוסישס×ַנסקריטס×ַרדישסינדהינ×רדס×ַמישסינה×" + - "ַלישסל×וו×ַקישסל×ווענישס×ַמ××ַנישש×× ×ַס×מ×ַליש×ַלב×ַנישסערביששוועדי" + - "שסוו×ַהילישט×ַמילטורקמענישט×ָטעריש×וקר×Ö·×יניש×ורדו×וזבעקישוויעטנ×ַמ" + - "עזישוו×ל×ַפּוקייִדישכינעזישזולו×ַק×ַדיש×ַלט ענגליש×ַר×Ö·×ž×™×©×“×¨×•× ×Ö·×–×¢" + - "רביידזש×ַנישב×ַלינעזישבײַערישסעבו×ַנישקרי×־טערקישק×ַשוביש×ונטער־ס×ר" + - "בישזש×ל×־פֿ×נימיטל ענגלישפֿיליפּינ××ַלט־פֿר×ַנצויזישדרו×־פֿריזישמזר" + - "ח־פֿריזישמיטל הויכדויטש×ַלט־ הויכדויטשג×טיש×ור×ַלט־גריכישפידזשי ×”×™× " + - "די×ייבער־ס×רבישל×זשב×ָןיידיש־פערסישל×ַדינ×ליווישמיז×× ×ַפּ×ליטַנישני" + - "דערדײַטש×ַלט פּערסישפּרייסישרוסינישסיצילי×ַנישסק×טס×ַלט־×יריש×ונטער" + - " שלעזישslyסומערישק×מ×רישק×× ×’×־סוו×ַהיליששלעזישטיגרע×ומב×ַוו×וסטע שפּ" + - "ר×ַךמערב פֿלעמיששפּ×ַניש (ES)פֿלעמישסערב×־קר××ַטיש", - []uint16{ // 603 elements - // Entry 0 - 3F - 0x0000, 0x000e, 0x000e, 0x000e, 0x0024, 0x0024, 0x0036, 0x004a, - 0x005a, 0x006a, 0x006a, 0x006a, 0x008a, 0x008a, 0x009e, 0x00b0, - 0x00b0, 0x00b0, 0x00c2, 0x00d0, 0x00e0, 0x00ec, 0x0102, 0x0102, - 0x0102, 0x0102, 0x0102, 0x010e, 0x0130, 0x0130, 0x013e, 0x0148, - 0x0152, 0x0152, 0x0152, 0x0152, 0x015e, 0x016a, 0x0180, 0x0190, - 0x019a, 0x01a8, 0x01b6, 0x01b6, 0x01c2, 0x01d0, 0x01e0, 0x01f8, - 0x0210, 0x021a, 0x0231, 0x0241, 0x0241, 0x0241, 0x024d, 0x025b, - 0x026b, 0x0275, 0x0275, 0x0285, 0x0285, 0x0295, 0x02a5, 0x02a5, - // Entry 40 - 7F - 0x02a5, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02c1, 0x02d5, - 0x02eb, 0x02eb, 0x02ff, 0x0317, 0x0327, 0x0327, 0x0327, 0x0327, - 0x0339, 0x0339, 0x0341, 0x0353, 0x0361, 0x0361, 0x0361, 0x036d, - 0x036d, 0x0379, 0x0389, 0x0399, 0x03b1, 0x03b1, 0x03b1, 0x03b1, - 0x03b9, 0x03c7, 0x03c7, 0x03d1, 0x03d1, 0x03d1, 0x03df, 0x03f3, - 0x040d, 0x041d, 0x041d, 0x041d, 0x042f, 0x0441, 0x0441, 0x0441, - 0x0453, 0x0453, 0x0463, 0x047d, 0x048f, 0x048f, 0x048f, 0x048f, - 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04af, 0x04af, 0x04af, 0x04bd, - // Entry 80 - BF - 0x04cd, 0x04e3, 0x04e3, 0x04e3, 0x04e3, 0x04f1, 0x04fb, 0x04fb, - 0x050d, 0x051b, 0x0527, 0x053b, 0x053b, 0x054d, 0x0561, 0x0573, - 0x0587, 0x0591, 0x05a1, 0x05b3, 0x05bf, 0x05bf, 0x05bf, 0x05bf, - 0x05cd, 0x05e1, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ff, - 0x05ff, 0x05ff, 0x05ff, 0x05ff, 0x060f, 0x060f, 0x060f, 0x0625, - 0x062f, 0x063f, 0x063f, 0x0659, 0x066d, 0x066d, 0x066d, 0x066d, - 0x0679, 0x0679, 0x0679, 0x0687, 0x068f, 0x068f, 0x068f, 0x068f, - 0x068f, 0x068f, 0x068f, 0x068f, 0x068f, 0x069f, 0x069f, 0x069f, - // Entry C0 - FF - 0x069f, 0x069f, 0x06b4, 0x06b4, 0x06c4, 0x06c4, 0x06c4, 0x06c4, - 0x06c4, 0x06c4, 0x06c4, 0x06c4, 0x06c4, 0x06c4, 0x06c4, 0x06c4, - 0x06c4, 0x06ed, 0x06ed, 0x0701, 0x070f, 0x070f, 0x070f, 0x070f, - 0x070f, 0x070f, 0x070f, 0x070f, 0x070f, 0x070f, 0x070f, 0x070f, - 0x070f, 0x070f, 0x070f, 0x070f, 0x070f, 0x070f, 0x070f, 0x070f, - 0x070f, 0x070f, 0x070f, 0x070f, 0x070f, 0x070f, 0x070f, 0x070f, - 0x070f, 0x070f, 0x070f, 0x070f, 0x0721, 0x0721, 0x0721, 0x0721, - 0x0721, 0x0721, 0x0721, 0x0721, 0x0721, 0x0721, 0x0721, 0x0721, - // Entry 100 - 13F - 0x0721, 0x0721, 0x0737, 0x0747, 0x0747, 0x0747, 0x0747, 0x0747, - 0x0747, 0x0747, 0x0747, 0x0747, 0x0747, 0x0761, 0x0761, 0x0761, - 0x0761, 0x0777, 0x0777, 0x0777, 0x0777, 0x0777, 0x0777, 0x0777, - 0x0777, 0x0777, 0x078c, 0x078c, 0x078c, 0x078c, 0x078c, 0x07a0, - 0x07a0, 0x07a0, 0x07a0, 0x07a0, 0x07c2, 0x07c2, 0x07da, 0x07f2, - 0x07f2, 0x07f2, 0x07f2, 0x07f2, 0x07f2, 0x07f2, 0x07f2, 0x07f2, - 0x07f2, 0x07f2, 0x080d, 0x082a, 0x082a, 0x082a, 0x082a, 0x0834, - 0x0834, 0x0850, 0x0850, 0x0850, 0x0850, 0x0850, 0x0850, 0x0850, - // Entry 140 - 17F - 0x0850, 0x0850, 0x0867, 0x0867, 0x0867, 0x0867, 0x0881, 0x0881, - 0x0881, 0x0881, 0x0881, 0x0881, 0x0881, 0x0881, 0x0881, 0x0891, - 0x0891, 0x0891, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, - 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, - 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, - 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, - 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, 0x08a9, - 0x08a9, 0x08b7, 0x08b7, 0x08b7, 0x08b7, 0x08b7, 0x08b7, 0x08b7, - // Entry 180 - 1BF - 0x08c3, 0x08c3, 0x08c3, 0x08c3, 0x08c3, 0x08c3, 0x08c3, 0x08c3, - 0x08c3, 0x08c3, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, - 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, - 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, - 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, - 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08e5, - 0x08e5, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, - 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, - // Entry 1C0 - 1FF - 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, - 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x0910, 0x0910, 0x0910, - 0x0910, 0x0910, 0x0910, 0x0920, 0x0920, 0x0920, 0x0920, 0x0920, - 0x0920, 0x0920, 0x0920, 0x0920, 0x0920, 0x0920, 0x0920, 0x092e, - 0x092e, 0x092e, 0x092e, 0x092e, 0x092e, 0x092e, 0x092e, 0x092e, - 0x092e, 0x092e, 0x092e, 0x092e, 0x0944, 0x094e, 0x094e, 0x094e, - 0x094e, 0x094e, 0x094e, 0x094e, 0x0962, 0x0962, 0x0962, 0x0962, - 0x0962, 0x0962, 0x097b, 0x097e, 0x097e, 0x097e, 0x097e, 0x097e, - // Entry 200 - 23F - 0x097e, 0x097e, 0x097e, 0x097e, 0x097e, 0x097e, 0x097e, 0x097e, - 0x098c, 0x099a, 0x09ba, 0x09ba, 0x09ba, 0x09c6, 0x09c6, 0x09c6, - 0x09c6, 0x09c6, 0x09c6, 0x09d0, 0x09d0, 0x09d0, 0x09d0, 0x09d0, - 0x09d0, 0x09d0, 0x09d0, 0x09d0, 0x09d0, 0x09d0, 0x09d0, 0x09d0, - 0x09d0, 0x09d0, 0x09d0, 0x09d0, 0x09d0, 0x09d0, 0x09d0, 0x09d0, - 0x09d0, 0x09d0, 0x09f9, 0x09f9, 0x09f9, 0x09f9, 0x0a10, 0x0a10, - 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, - 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, - // Entry 240 - 27F - 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, - 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, - 0x0a10, 0x0a10, 0x0a25, 0x0a25, 0x0a25, 0x0a25, 0x0a33, 0x0a33, - 0x0a33, 0x0a33, 0x0a4f, - }, - }, - { // yo - "Èdè AfrikaniÈdè AkaniÈdè AmarikiÈdè ArabikiTi AssamÈdè AzerbaijaniÈdè Be" + - "larusiÈdè BugariaÈdè BengaliÈdè BretoniÈdè BosniaÈdè CatalaÈdè seeki" + - "Èdè WelshiÈdè Ilẹ̀ DenmarkÈdè Ilẹ̀ GemaniÈdè GirikiÈdè Gẹ̀ẹÌsìÈdè E" + - "sperantoÈdè SipanisiÈdè EstoniaÈdè BaskiÈdè PasiaÈdè FinisiÈdè Faroe" + - "siÈdè FaranséÈdè FrisiaÈdè IrelandÈdè Gaelik ti Ilu ScotlandÈdè Gali" + - "ciaÈdè GuaraniÈdè GujaratiÈdè HausaÈdè HeberuÈdè HindiÈdè KroatiaÈdè" + - " HungariaÈdè Ile ArmeniaÈdè pipoÈdè IndonasiaIru ÈdèÈdè IboÈdè Icela" + - "ndicÈdè ItalianiÈdè JapanisiÈdè JavanasiÈdè GeorgiaÈdè kameriÈdè Kan" + - "nadaÈdè KoriaÈdè LatiniÈdè LithuaniaÈdè LatvianuÈdè MacedoniaÈdè mar" + - "athiÈdè MalayaÈdè MaltaÈdè BumiisiÈdè NepaliÈdè DukiÈdè NorwayÈdè Oc" + - "citaniÈdè PunjabiÈdè Ilẹ̀ PolandiÈdè Pá»tugiÈdè RomaniaÈdè Ì£Rá»á»siaÈdè" + - " RuwandaÈdè awon ara IndoÈdè SindhiÈdè SinhaleseÈdè SlovakiÈdè Slove" + - "niaÈdè ara SomaliaÈdè AlbaniaÈdè SerbiaÈdè SesotoÈdè SudaniÈdè Suwid" + - "iisiÈdè SwahiliÈdè TamiliÈdè TeluguÈdè TaiÈdè TigrinyaÈdè TurkmenÈdè" + - " Tá»á»kisiÈdè UkaniaÈdè UduÈdè UzbekÈdè JetinamuÈdè XhosaÈdè YiddishiÈ" + - "dè YorùbáÈdè MandariÈdè á¹¢uluÈdè TagalogiÈdè KlingoniÈdè Serbo-Croati" + - "ani", - []uint16{ // 603 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x000e, 0x0019, 0x0026, 0x0026, - 0x0033, 0x003b, 0x003b, 0x003b, 0x004c, 0x004c, 0x005a, 0x0067, - 0x0067, 0x0067, 0x0074, 0x0074, 0x0081, 0x008d, 0x0099, 0x0099, - 0x0099, 0x0099, 0x0099, 0x00a4, 0x00a4, 0x00a4, 0x00b0, 0x00c5, - 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00e5, 0x00f9, 0x0108, 0x0116, - 0x0123, 0x012e, 0x0139, 0x0139, 0x0145, 0x0145, 0x0152, 0x0160, - 0x016c, 0x0179, 0x0195, 0x01a2, 0x01af, 0x01bd, 0x01bd, 0x01c8, - 0x01d4, 0x01df, 0x01df, 0x01ec, 0x01ec, 0x01fa, 0x020b, 0x020b, - // Entry 40 - 7F - 0x0215, 0x0224, 0x022d, 0x0236, 0x0236, 0x0236, 0x0236, 0x0245, - 0x0253, 0x0253, 0x0261, 0x026f, 0x027c, 0x027c, 0x027c, 0x027c, - 0x027c, 0x027c, 0x0288, 0x0295, 0x02a0, 0x02a0, 0x02a0, 0x02a0, - 0x02a0, 0x02a0, 0x02a0, 0x02ac, 0x02ac, 0x02ac, 0x02ac, 0x02ac, - 0x02ac, 0x02bb, 0x02bb, 0x02c9, 0x02c9, 0x02c9, 0x02c9, 0x02d8, - 0x02d8, 0x02d8, 0x02e5, 0x02f1, 0x02fc, 0x0309, 0x0309, 0x0309, - 0x0315, 0x0315, 0x031f, 0x031f, 0x032b, 0x032b, 0x032b, 0x032b, - 0x0339, 0x0339, 0x0339, 0x0339, 0x0339, 0x0346, 0x0346, 0x035b, - // Entry 80 - BF - 0x035b, 0x0369, 0x0369, 0x0369, 0x0369, 0x0376, 0x0388, 0x0395, - 0x03a8, 0x03a8, 0x03b4, 0x03b4, 0x03b4, 0x03c3, 0x03d0, 0x03de, - 0x03de, 0x03de, 0x03ef, 0x03fc, 0x0408, 0x0408, 0x0414, 0x0420, - 0x042f, 0x043c, 0x0448, 0x0454, 0x0454, 0x045d, 0x046b, 0x0478, - 0x0478, 0x0478, 0x0489, 0x0489, 0x0489, 0x0489, 0x0489, 0x0495, - 0x049e, 0x04a9, 0x04a9, 0x04b7, 0x04b7, 0x04b7, 0x04b7, 0x04c2, - 0x04d0, 0x04de, 0x04de, 0x04eb, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - // Entry C0 - FF - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - // Entry 100 - 13F - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, - 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - // Entry 140 - 17F - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - // Entry 180 - 1BF - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - // Entry 1C0 - 1FF - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - // Entry 200 - 23F - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, - 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0513, - 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, - 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, - 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, - 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, - 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, - // Entry 240 - 27F - 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, - 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, - 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, - 0x0513, 0x0513, 0x0528, - }, - }, - { // yo-BJ - "Èdè AfrikaniÈdè AkaniÈdè AmarikiÈdè ArabikiTi AssamÈdè AzerbaijaniÈdè Be" + - "larusiÈdè BugariaÈdè BengaliÈdè BretoniÈdè BosniaÈdè CatalaÈdè seeki" + - "Èdè WelshiÈdè Ilɛ̀ DenmarkÈdè Ilɛ̀ GemaniÈdè GirikiÈdè Gɛ̀ɛÌsìÈdè E" + - "sperantoÈdè SipanisiÈdè EstoniaÈdè BaskiÈdè PasiaÈdè FinisiÈdè Faroe" + - "siÈdè FaranséÈdè FrisiaÈdè IrelandÈdè Gaelik ti Ilu ScotlandÈdè Gali" + - "ciaÈdè GuaraniÈdè GujaratiÈdè HausaÈdè HeberuÈdè HindiÈdè KroatiaÈdè" + - " HungariaÈdè Ile ArmeniaÈdè pipoÈdè IndonasiaIru ÈdèÈdè IboÈdè Icela" + - "ndicÈdè ItalianiÈdè JapanisiÈdè JavanasiÈdè GeorgiaÈdè kameriÈdè Kan" + - "nadaÈdè KoriaÈdè LatiniÈdè LithuaniaÈdè LatvianuÈdè MacedoniaÈdè mar" + - "athiÈdè MalayaÈdè MaltaÈdè BumiisiÈdè NepaliÈdè DukiÈdè NorwayÈdè Oc" + - "citaniÈdè PunjabiÈdè Ilɛ̀ PolandiÈdè PÉ”tugiÈdè RomaniaÈdè Ì£RɔɔsiaÈdè" + - " RuwandaÈdè awon ara IndoÈdè SindhiÈdè SinhaleseÈdè SlovakiÈdè Slove" + - "niaÈdè ara SomaliaÈdè AlbaniaÈdè SerbiaÈdè SesotoÈdè SudaniÈdè Suwid" + - "iisiÈdè SwahiliÈdè TamiliÈdè TeluguÈdè TaiÈdè TigrinyaÈdè TurkmenÈdè" + - " TɔɔkisiÈdè UkaniaÈdè UduÈdè UzbekÈdè JetinamuÈdè XhosaÈdè YiddishiÈ" + - "dè YorùbáÈdè MandariÈdè ShuluÈdè TagalogiÈdè KlingoniÈdè Serbo-Croat" + - "iani", - []uint16{ // 603 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x000e, 0x0019, 0x0026, 0x0026, - 0x0033, 0x003b, 0x003b, 0x003b, 0x004c, 0x004c, 0x005a, 0x0067, - 0x0067, 0x0067, 0x0074, 0x0074, 0x0081, 0x008d, 0x0099, 0x0099, - 0x0099, 0x0099, 0x0099, 0x00a4, 0x00a4, 0x00a4, 0x00b0, 0x00c4, - 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00e3, 0x00f5, 0x0104, 0x0112, - 0x011f, 0x012a, 0x0135, 0x0135, 0x0141, 0x0141, 0x014e, 0x015c, - 0x0168, 0x0175, 0x0191, 0x019e, 0x01ab, 0x01b9, 0x01b9, 0x01c4, - 0x01d0, 0x01db, 0x01db, 0x01e8, 0x01e8, 0x01f6, 0x0207, 0x0207, - // Entry 40 - 7F - 0x0211, 0x0220, 0x0229, 0x0232, 0x0232, 0x0232, 0x0232, 0x0241, - 0x024f, 0x024f, 0x025d, 0x026b, 0x0278, 0x0278, 0x0278, 0x0278, - 0x0278, 0x0278, 0x0284, 0x0291, 0x029c, 0x029c, 0x029c, 0x029c, - 0x029c, 0x029c, 0x029c, 0x02a8, 0x02a8, 0x02a8, 0x02a8, 0x02a8, - 0x02a8, 0x02b7, 0x02b7, 0x02c5, 0x02c5, 0x02c5, 0x02c5, 0x02d4, - 0x02d4, 0x02d4, 0x02e1, 0x02ed, 0x02f8, 0x0305, 0x0305, 0x0305, - 0x0311, 0x0311, 0x031b, 0x031b, 0x0327, 0x0327, 0x0327, 0x0327, - 0x0335, 0x0335, 0x0335, 0x0335, 0x0335, 0x0342, 0x0342, 0x0356, - // Entry 80 - BF - 0x0356, 0x0363, 0x0363, 0x0363, 0x0363, 0x0370, 0x0380, 0x038d, - 0x03a0, 0x03a0, 0x03ac, 0x03ac, 0x03ac, 0x03bb, 0x03c8, 0x03d6, - 0x03d6, 0x03d6, 0x03e7, 0x03f4, 0x0400, 0x0400, 0x040c, 0x0418, - 0x0427, 0x0434, 0x0440, 0x044c, 0x044c, 0x0455, 0x0463, 0x0470, - 0x0470, 0x0470, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x048b, - 0x0494, 0x049f, 0x049f, 0x04ad, 0x04ad, 0x04ad, 0x04ad, 0x04b8, - 0x04c6, 0x04d4, 0x04d4, 0x04e1, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - // Entry C0 - FF - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - // Entry 100 - 13F - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, - 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04ec, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - // Entry 140 - 17F - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - // Entry 180 - 1BF - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - // Entry 1C0 - 1FF - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - // Entry 200 - 23F - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, - 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x0508, - 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, - 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, - 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, - 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, - 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, - // Entry 240 - 27F - 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, - 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, - 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, - 0x0508, 0x0508, 0x051d, - }, - }, - { // zgh - "ⵜⴰⴽⴰâµâµœâµœâ´°âµŽâµ€â´°âµ”ⵉⵜⵜⴰⵄⵔⴰⴱⵜⵜⴰⴱⵉâµâ´°âµ”ⵓⵙⵜⵜⴰⴱâµâµ–ⴰⵔⵉⵜⵜⴰⴱâµâµ–â´°âµâµ‰âµœâµœâ´°âµœâµ›âµ‰â´½âµ‰âµœâµœâ´°âµâµ‰âµŽâ´°âµâµœâµœâ´°â´³âµ”ⵉⴳⵉ" + - "ⵜⵜⴰâµâ´³âµâµ‰âµ£âµœâµœâ´°âµ™â´±âµâµ¢âµ“âµâµ‰âµœâµœâ´°â´¼âµ“ⵔⵙⵉⵜⵜⴰⴼⵔⴰâµâµ™âµ‰âµ™âµœâµœâ´°âµ€â´°âµ¡âµ™â´°âµœâµœâ´°âµ€âµ‰âµâ´·âµ‰âµœâµœâ´°âµ€âµâµ–ⴰⵔⵉⵜⵜⴰâµâ´·" + - "ⵓâµâµ‰âµ™âµ‰âµœâµœâµ‰â´³â´±âµ“ⵜⵜⴰⵟⴰâµâµ¢â´°âµâµœâµœâ´°âµŠâ´°â´±â´±âµ“âµâµ‰âµœâµœâ´°âµŠâ´°â´±â´°âµâµ‰âµœâµœâ´°âµ…ⵎⵉⵔⵜⵜⴰⴽⵓⵔⵉⵜⵜⴰⵎⴰâµâ´°âµ¡âµ‰âµœâµœâ´°â´±" + - "ⵉⵔⵎⴰâµâµ‰âµœâµœâ´°âµâµ‰â´±â´°âµâµ‰âµœâµœâ´°âµ€âµ“âµâ´°âµâ´·âµ‰âµœâµœâ´°â´±âµâµŠâ´°â´±âµ‰âµœâµœâ´°â´±âµ“âµâµ“âµâµ‰âµœâµœâ´°â´±âµ•âµŸâµ‡âµ‰âµ£âµœâµœâ´°âµ”ⵓⵎⴰâµâµ‰âµœâµœâ´°âµ”ⵓ" + - "ⵙⵉⵜⵜⴰⵔⵓⵡⴰâµâ´·âµ‰âµœâµœâ´°âµ™âµ“ⵎⴰâµâµ‰âµœâµœâ´°âµ™âµ¡âµ‰â´·âµ‰âµœâµœâ´°âµœâ´°âµŽâµ‰âµâµœâµœâ´°âµœâ´°âµ¢âµâ´°âµâ´·âµ‰âµœâµœâ´°âµœâµ“ⵔⴽⵉⵜⵜⵓⴽⵔⴰâµâµ‰âµœâµœ" + - "ⵓⵔⴷⵓⵜⵜⴰⴱⵉⵜâµâ´°âµŽâµ‰âµœâµœâ´°âµ¢âµ”ⵓⴱⴰⵜⵜⴰⵛⵉâµâµ¡âµ‰âµœâµœâ´°âµ£âµ“âµâµ“ⵜⵜⴰⵎⴰⵣⵉⵖⵜ", - []uint16{ // 583 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x002a, 0x002a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005d, 0x0078, - 0x0078, 0x0078, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, - 0x0093, 0x0093, 0x0093, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, - 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00db, 0x00f3, 0x00f3, 0x0111, - 0x0111, 0x0111, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0147, - 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x015f, - 0x015f, 0x0177, 0x0177, 0x0177, 0x0177, 0x0192, 0x0192, 0x0192, - // Entry 40 - 7F - 0x0192, 0x01b0, 0x01b0, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, - 0x01dd, 0x01dd, 0x01fb, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, - 0x0216, 0x0216, 0x022b, 0x022b, 0x0240, 0x0240, 0x0240, 0x0240, - 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, - 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, - 0x0240, 0x0240, 0x0240, 0x025b, 0x025b, 0x0279, 0x0279, 0x0279, - 0x0294, 0x0294, 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02b2, - 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02cd, 0x02cd, 0x02e8, - // Entry 80 - BF - 0x02e8, 0x0303, 0x0303, 0x0303, 0x0303, 0x031e, 0x0333, 0x0351, - 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, - 0x0351, 0x0351, 0x036c, 0x036c, 0x036c, 0x036c, 0x036c, 0x036c, - 0x0384, 0x0384, 0x039c, 0x039c, 0x039c, 0x03bd, 0x03bd, 0x03bd, - 0x03bd, 0x03bd, 0x03d5, 0x03d5, 0x03d5, 0x03d5, 0x03d5, 0x03ed, - 0x03ff, 0x03ff, 0x03ff, 0x041d, 0x041d, 0x041d, 0x041d, 0x041d, - 0x041d, 0x0435, 0x0435, 0x044d, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - // Entry C0 - FF - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - // Entry 100 - 13F - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - // Entry 140 - 17F - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - // Entry 180 - 1BF - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - // Entry 1C0 - 1FF - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - // Entry 200 - 23F - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, - // Entry 240 - 27F - 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x047a, - }, - }, - { // zh - zhLangStr, - zhLangIdx, - }, - { // zh-Hant - zhHantLangStr, - zhHantLangIdx, - }, - { // zh-Hant-HK - "æ„大利文瑞士德語巴西葡è„牙語", - []uint16{ // 600 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - // Entry 80 - BF - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - // Entry C0 - FF - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - // Entry 100 - 13F - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - // Entry 140 - 17F - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - // Entry 180 - 1BF - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - // Entry 1C0 - 1FF - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - // Entry 200 - 23F - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - // Entry 240 - 27F - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x0018, 0x0018, 0x0018, 0x0018, - 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x002a, - }, - }, - { // zu - zuLangStr, - zuLangIdx, - }, -} - -// Size: 1912 bytes -var afLangStr string = "" + - "AbkasiesAfrikaansAkanAmhariesArabiesAssameesAymaraAzerbeidjansBaskirWit-" + - "RussiesBulgaarsBambaraBengaalsTibettaansBretonsBosniesKatalaansKorsikaan" + - "sTsjeggiesWalliesDeensDuitsDivehiDzongkhaEweGrieksEngelsEsperantoSpaansE" + - "stniesBaskiesPersiesFinsFidjiaansFaroeesFransWes-FriesIersSkotse Gallies" + - "GalisiesGuaraniGoedjaratiManxHausaHebreeusHindiKroatiesHaïtiaansHongaars" + - "ArmeensInterlinguaIndonesiesIgboSichuan YiYslandsItaliaansInnuïtiesJapan" + - "neesJavaansGeorgiesKongoleesKikuyuKazaksKalaallisutKhmerKannadaKoreaansK" + - "asjmirsKoerdiesKorniesKirgisiesLatynLuxemburgsGandaLingaalsLaoLitausLuba" + - "-KatangaLettiesMalgassiesMaoriMasedoniesMalabaarsMongoolsMarathiMaleisMa" + - "lteesBirmaansNoord-NdebeleNepaleesNederlandsNoorweegse NynorskNoorse Bok" + - "mÃ¥lSuid-NdebeleNyanjaOksitaansOromoOriyaOssetiesPandjabiPoolsPasjtoPortu" + - "geesQuechuaReto-RomaansRundiRoemeensRussiesRwandeesSanskritSindhiNoordel" + - "ike SamiSangoSinhalaSlowaaksSloweensSamoaansShonaSomaliesAlbaneesSerwies" + - "SwaziSuid-SothoSundaneesSweedsSwahiliTamilTeluguTadzjieksThaiTigrinyaTur" + - "kmeensTswanaTongaansTurksTsongaTataarsTahitiesUighurOekraïensOerdoeOezbe" + - "eksVendaViëtnameesWolofXhosaJiddisjYorubaSjineesZoeloeAkoliAghemArameesM" + - "apucheAsuBembaBenaBodoSjigaCherokeesSorani KoerdiesTaitaZarmaLae Sorbies" + - "DualaJola-FonyiEmbuEfikAntieke EgiptiesFilippynsGaaGagauzGotiesAntieke G" + - "rieksSwitserse DuitsGusiiHawaiiesHoog-SorbiesNgombaMachameKabyleKambaMak" + - "ondeKabuverdianuKoyra ChiiniKalenjinKomi-PermyaksKonkaniShambalaBafiaLan" + - "giLakotaLoziLuba-LuluaLuoLuyiaMasaiMeruMorisjenMakhuwa-MeettoMeta’Mohawk" + - "MundangVeelvuldige taleNamaKwasioN’KoNoord-SothoNuerNyankoleK’iche’Rombo" + - "RwaSamburuSanguSenaKoyraboro SenniTachelhitSuid-SamiLule SamiInari SamiS" + - "kolt SamiSwahili (Kongo)TesoTetumKlingonTok PisinToemboekaTasawaqSentraa" + - "l Atlas TamazightOnbekende of ongeldige taalVaiVunjoSogaStandaard Marokk" + - "aanse TamazightGeen linguistiese inhoudModerne Standaard ArabiesSwitsers" + - "e hoog-DuitsVlaamsMoldawies" - -// Size: 1228 bytes, 602 elements -var afLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0008, 0x0008, 0x0011, 0x0015, 0x001d, 0x001d, - 0x0024, 0x002c, 0x002c, 0x0032, 0x003e, 0x0044, 0x004f, 0x0057, - 0x0057, 0x005e, 0x0066, 0x0070, 0x0077, 0x007e, 0x0087, 0x0087, - 0x0087, 0x0091, 0x0091, 0x009a, 0x009a, 0x009a, 0x00a1, 0x00a6, - 0x00ab, 0x00b1, 0x00b9, 0x00bc, 0x00c2, 0x00c8, 0x00d1, 0x00d7, - 0x00de, 0x00e5, 0x00ec, 0x00ec, 0x00f0, 0x00f9, 0x0100, 0x0105, - 0x010e, 0x0112, 0x0120, 0x0128, 0x012f, 0x0139, 0x013d, 0x0142, - 0x014a, 0x014f, 0x014f, 0x0157, 0x0161, 0x0169, 0x0170, 0x0170, - // Entry 40 - 7F - 0x017b, 0x0185, 0x0185, 0x0189, 0x0193, 0x0193, 0x0193, 0x019a, - 0x01a3, 0x01ad, 0x01b6, 0x01bd, 0x01c5, 0x01ce, 0x01d4, 0x01d4, - 0x01da, 0x01e5, 0x01ea, 0x01f1, 0x01f9, 0x01f9, 0x0201, 0x0209, - 0x0209, 0x0210, 0x0219, 0x021e, 0x0228, 0x022d, 0x022d, 0x0235, - 0x0238, 0x023e, 0x024a, 0x0251, 0x025b, 0x025b, 0x0260, 0x026a, - 0x0273, 0x027b, 0x0282, 0x0288, 0x028f, 0x0297, 0x0297, 0x02a4, - 0x02ac, 0x02ac, 0x02b6, 0x02c8, 0x02d6, 0x02e2, 0x02e2, 0x02e8, - 0x02f1, 0x02f1, 0x02f6, 0x02fb, 0x0303, 0x030b, 0x030b, 0x0310, - // Entry 80 - BF - 0x0316, 0x031f, 0x0326, 0x0332, 0x0337, 0x033f, 0x0346, 0x034e, - 0x0356, 0x0356, 0x035c, 0x036b, 0x0370, 0x0377, 0x037f, 0x0387, - 0x038f, 0x0394, 0x039c, 0x03a4, 0x03ab, 0x03b0, 0x03ba, 0x03c3, - 0x03c9, 0x03d0, 0x03d5, 0x03db, 0x03e4, 0x03e8, 0x03f0, 0x03f9, - 0x03ff, 0x0407, 0x040c, 0x0412, 0x0419, 0x0421, 0x0427, 0x0431, - 0x0437, 0x043f, 0x0444, 0x044f, 0x044f, 0x044f, 0x0454, 0x0459, - 0x0460, 0x0466, 0x0466, 0x046d, 0x0473, 0x0473, 0x0478, 0x0478, - 0x0478, 0x0478, 0x0478, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, - // Entry C0 - FF - 0x047d, 0x047d, 0x047d, 0x047d, 0x0484, 0x048b, 0x048b, 0x048b, - 0x048b, 0x048b, 0x048b, 0x048b, 0x048e, 0x048e, 0x048e, 0x048e, - 0x048e, 0x048e, 0x048e, 0x048e, 0x048e, 0x048e, 0x048e, 0x048e, - 0x048e, 0x048e, 0x0493, 0x0493, 0x0497, 0x0497, 0x0497, 0x0497, - 0x0497, 0x0497, 0x0497, 0x0497, 0x0497, 0x0497, 0x0497, 0x0497, - 0x0497, 0x049b, 0x049b, 0x049b, 0x049b, 0x049b, 0x049b, 0x049b, - 0x049b, 0x049b, 0x049b, 0x049b, 0x049b, 0x04a0, 0x04a0, 0x04a0, - 0x04a0, 0x04a0, 0x04a0, 0x04a0, 0x04a0, 0x04a9, 0x04a9, 0x04b8, - // Entry 100 - 13F - 0x04b8, 0x04b8, 0x04b8, 0x04b8, 0x04b8, 0x04b8, 0x04bd, 0x04bd, - 0x04bd, 0x04bd, 0x04bd, 0x04c2, 0x04c2, 0x04cd, 0x04cd, 0x04d2, - 0x04d2, 0x04dc, 0x04dc, 0x04dc, 0x04e0, 0x04e4, 0x04e4, 0x04f4, - 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04fd, - 0x04fd, 0x04fd, 0x04fd, 0x04fd, 0x04fd, 0x04fd, 0x04fd, 0x04fd, - 0x04fd, 0x0500, 0x0506, 0x0506, 0x0506, 0x0506, 0x0506, 0x0506, - 0x0506, 0x0506, 0x0506, 0x0506, 0x0506, 0x0506, 0x0506, 0x050c, - 0x050c, 0x051a, 0x0529, 0x0529, 0x0529, 0x052e, 0x052e, 0x052e, - // Entry 140 - 17F - 0x052e, 0x0536, 0x0536, 0x0536, 0x0536, 0x0536, 0x0542, 0x0542, - 0x0542, 0x0542, 0x0542, 0x0542, 0x0542, 0x0542, 0x0542, 0x0542, - 0x0548, 0x054f, 0x054f, 0x054f, 0x054f, 0x054f, 0x0555, 0x0555, - 0x0555, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x0561, 0x056d, - 0x056d, 0x056d, 0x056d, 0x056d, 0x056d, 0x0579, 0x0579, 0x0579, - 0x0579, 0x0581, 0x0581, 0x058e, 0x0595, 0x0595, 0x0595, 0x0595, - 0x0595, 0x0595, 0x0595, 0x0595, 0x059d, 0x05a2, 0x05a2, 0x05a2, - 0x05a2, 0x05a2, 0x05a7, 0x05a7, 0x05a7, 0x05a7, 0x05a7, 0x05a7, - // Entry 180 - 1BF - 0x05a7, 0x05ad, 0x05ad, 0x05ad, 0x05b1, 0x05b1, 0x05bb, 0x05bb, - 0x05bb, 0x05be, 0x05be, 0x05c3, 0x05c3, 0x05c3, 0x05c3, 0x05c3, - 0x05c3, 0x05c3, 0x05c3, 0x05c3, 0x05c8, 0x05c8, 0x05c8, 0x05c8, - 0x05c8, 0x05cc, 0x05d4, 0x05d4, 0x05e2, 0x05e9, 0x05e9, 0x05e9, - 0x05e9, 0x05e9, 0x05ef, 0x05ef, 0x05ef, 0x05f6, 0x0606, 0x0606, - 0x0606, 0x0606, 0x0606, 0x0606, 0x0606, 0x0606, 0x0606, 0x0606, - 0x060a, 0x060a, 0x060a, 0x060a, 0x060a, 0x060a, 0x0610, 0x0610, - 0x0610, 0x0610, 0x0610, 0x0616, 0x0621, 0x0625, 0x0625, 0x0625, - // Entry 1C0 - 1FF - 0x062d, 0x062d, 0x062d, 0x062d, 0x062d, 0x062d, 0x062d, 0x062d, - 0x062d, 0x062d, 0x062d, 0x062d, 0x062d, 0x062d, 0x062d, 0x062d, - 0x062d, 0x062d, 0x062d, 0x062d, 0x062d, 0x0638, 0x0638, 0x0638, - 0x0638, 0x0638, 0x0638, 0x0638, 0x063d, 0x063d, 0x063d, 0x063d, - 0x063d, 0x063d, 0x0640, 0x0640, 0x0640, 0x0640, 0x0647, 0x0647, - 0x0647, 0x0647, 0x0647, 0x064c, 0x064c, 0x064c, 0x064c, 0x064c, - 0x0650, 0x0650, 0x0650, 0x065f, 0x065f, 0x065f, 0x0668, 0x0668, - 0x0668, 0x0668, 0x0668, 0x0668, 0x0671, 0x067a, 0x0684, 0x068e, - // Entry 200 - 23F - 0x068e, 0x068e, 0x068e, 0x068e, 0x068e, 0x068e, 0x068e, 0x068e, - 0x068e, 0x068e, 0x069d, 0x069d, 0x069d, 0x069d, 0x069d, 0x069d, - 0x06a1, 0x06a1, 0x06a6, 0x06a6, 0x06a6, 0x06a6, 0x06a6, 0x06ad, - 0x06ad, 0x06ad, 0x06ad, 0x06ad, 0x06b6, 0x06b6, 0x06b6, 0x06b6, - 0x06b6, 0x06b6, 0x06bf, 0x06bf, 0x06c6, 0x06c6, 0x06de, 0x06de, - 0x06de, 0x06de, 0x06f9, 0x06fc, 0x06fc, 0x06fc, 0x06fc, 0x06fc, - 0x06fc, 0x06fc, 0x0701, 0x0701, 0x0701, 0x0701, 0x0701, 0x0701, - 0x0701, 0x0701, 0x0701, 0x0705, 0x0705, 0x0705, 0x0705, 0x0705, - // Entry 240 - 27F - 0x0705, 0x0705, 0x0705, 0x0705, 0x0705, 0x0705, 0x0724, 0x0724, - 0x073c, 0x073c, 0x0755, 0x0755, 0x0769, 0x0769, 0x0769, 0x0769, - 0x0769, 0x0769, 0x0769, 0x0769, 0x0769, 0x0769, 0x076f, 0x076f, - 0x076f, 0x0778, -} - -// Size: 3927 bytes -var amLangStr string = "" + - "አá‹áˆ­áŠ›áŠ á‰¥áˆá‹šáŠ›áŠ áሪካንኛአካንኛአማርኛዓረብኛአሳሜዛዊአያማርኛአዘርባጃንኛባስኪርኛቤላራሻኛቡáˆáŒ‹áˆªáŠ›á‰¢áˆµáˆ‹áˆáŠ›á‰£áˆá‰£áˆ­áŠ›á‰¤áŠ•áŒ‹" + - "ሊኛቲቤታንኛብሬቶንኛቦስኒያንኛካታላንኛኮርሲካኛቼክኛወáˆáˆ½á‹´áŠ’ሽጀርመንዲቬህድዞንáŒáŠ»áŠ›áŠ¢á‹ŠáŒáˆªáŠ­áŠ›áŠ¥áŠ•áŒáˆŠá‹áŠ›áŠ¤áˆµáራንቶስá“" + - "ኒሽኢስቶኒያንኛባስክኛáርሺያኛáŠáŠ’ሽáŠáŒ‚ኛá‹áˆ®áŠ›áˆáˆ¨áŠ•áˆ³á‹­áŠ›á‹¨áˆá‹•áˆ«á‰¥ áሪስኛአይሪሽእስኮትስ ጌáˆáŠ­áŠ›áŒ‹áˆŠáˆºá‹«áŒ“ራኒኛጉጃርቲኛ" + - "ማንክስኛሃá‹áˆ³áŠ›á‹•á‰¥áˆ«áˆµáŒ¥áˆ’ንዱኛክሮሽያንኛሃይትኛሀንጋሪኛአርመናዊኢንቴርሊንጓኢንዶኔዥኛእንተርሊንáŒá‹ˆáŠ¢áŒá‰¦áŠ›áˆ²á‰¹áŠ•á‹ªáŠ›áŠ¥áŠ‘" + - "á’ያቅኛአይስላንድኛጣሊያንኛእኑክቲቱትኛጃá“ንኛጃቫንኛጆርጂያንኮንጎኛኪኩዩካዛክኛካላሊሱትኛክመርኛ ማእከላዊካናዳኛኮሪያ" + - "ኛካሽሚርኛኩርድሽኛኮርኒሽኪርጊá‹áŠ›áˆ‹á‰²áŠ•áŠ›áˆ‰áŠ­á‹˜áˆá‰ áˆ­áŒˆáˆ­áŠ›áŒ‹áŠ•á‹³áŠ›áˆŠáŠ•áŒ‹áˆ‹áŠ›áˆ‹á‹áˆµáŠ›áˆ‰á‰´áŠ•á‹«áŠ•áŠ›áˆ‰á‰£ ካታንጋላትቪያንማላጋስኛማ" + - "ዮሪኛማሴዶንኛማላያላáˆáŠ›áˆžáŠ•áŒŽáˆ‹á‹ŠáŠ›áˆ›áˆ«á‰²áŠ›áˆ›áˆ‹á‹­áŠ›áˆ›áˆá‰²áˆµáŠ›á‰¡áˆ­áˆ›áŠ›áŠ“ኡሩሰሜን ንዴብሌኔá“ሊኛደችየኖርዌይ ናይኖርስክየኖርዌ" + - "á‹­ ቦክማáˆáŠ•á‹«áŠ•áŒƒáŠ¦áŠªá‰³áŠ•áŠ›áŠ¦áˆ®áˆžáŠ›áŠ¦áˆªá‹«áŠ›áŠ¦áˆ´á‰²áŠ­á‘ንጃብኛá–ሊሽኛá“ሽቶኛá–ርቹጋáˆáŠ›áŠµá‰¿áŠ›áˆ®áˆ›áŠ•áˆ½áˆ©áŠ•á‹²áŠ›áˆ®áˆ›áŠ’ያንራሽኛኪንያርዋ" + - "ንድኛሳንስክሪትኛሲንድሂኛሰሜናዊ ሳሚሳንጎኛሲንሃáˆáŠ›áˆµáˆŽá‰«áŠ­áŠ›áˆµáˆŽá‰ªáŠ›áˆ³áˆžáŠ áŠ›áˆ¾áŠ“ኛሱማáˆáŠ›áˆá‰¤áŠ’ኛሰርቢኛስዋቲኛሶዞኛሱዳንኛ" + - "ስዊድንኛስዋሂሊኛታሚáˆáŠ›á‰°áˆ‰áŒ‰áŠ›á‰³áŒ‚ኪኛታይኛትáŒáˆ­áŠ›á‰±áˆ­áŠ­áˆ˜áŠ•áŠ›áŒ½á‹‹áŠ“ዊኛቶንጋኛቱርክኛጾንጋኛታታርኛታሂታንኛኡዊáŒáˆáˆ­áŠ›á‹©áŠ­áˆ¬" + - "ንኛኡርዱኛኡá‹á‰¤áŠ­áŠ›á‰¬áŠ•á‹³á‰ªá‰µáŠ“áˆáŠ›á‰®áˆ‹á‘ክኛዎሎáኛዞሳኛይዲሽኛዮሩባዊኛዡዋንáŒáŠ›á‰»á‹­áŠ•áŠ›á‹™áˆ‰áŠ›áŠ áŠ®áˆŠáŠ›áŠ áŒˆáˆáˆ›á‘ቼአሱቤáˆá‰£á‰¤áŠ“ቦ" + - "ዶብሊንቺጋኛቼሮኬኛየሶራኒ ኩርድኛታይታኛዛርማኛየታችኛዠሶርቢያንኛዱዋላኛጆላ áŽáŠ•á‹«áŠ›áŠ¢á‰¦áŠ›áŠ¤áŠáŠ­áŠáˆŠá’ንኛጋጋጉá‹áŠ›áŒá‹•á‹" + - "ኛየስዊዠጀርመንጉስሊኛሃዊያኛየላይኛዠሶርቢያንኛንጎባኛማቻሜኛካብይáˆáŠ«áˆá‰£áˆ›áŠ®áŠ•á‹´áŠ«á‰¡á‰¨áˆ­á‹²á‹«áŠ‘ኮይራ ቺኒካለንጂንኮሚ " + - "á”ርáˆá‹«áŠ­áŠ®áŠ«áŠ’ሻáˆá‰£áˆ‹á‰£áŠá‹«áˆ‹áŠ•áŒŠáˆ‹áŠ®á‰³áˆŽá‹šáŠ›áˆ‰á‰£-ሉáˆáˆ‰áŠ¦áˆ‰á‹ªá‹«áˆ›áˆ³á‹­áˆœáˆ©áˆžáˆªáˆ²á‹¨áŠ›áˆ›áŠ©á‹‹ ሜቶሜታሞሃá‹áŠ­áˆ™áŠ•á‹³áŠ•áŒáŠ“ማክዋሲዮንኮሰ" + - "ሜናዊ ሶቶኑዌርኒያንኮáˆáŠ›áŠªá‰¼áˆ®áˆá‰¦áˆ­á‹‹áˆ³áˆá‰¡áˆ©áˆ³áŠ•áŒ‰áˆ´áŠ“ኮይራቦሮ ሴኒታቼáˆáˆ‚ትሲዳáˆáŠ›á‹°á‰¡á‰£á‹Š ሳሚሉሌ ሳሚኢናሪ ሳሚስኮáˆá‰µ" + - " ሳሚኮንጎ ስዋሂሊቴሶቴተáˆá‰µáŒáˆ¨áŠ­áˆŠáŠ•áŒŽáŠ•áŠ›á‰¶áŠ­ á’ሲንቱáˆá‰¡áŠ«á‰³áˆ³á‹‹á‰…መካከለኛ አትላስ ታማዚáŒá‰µá‹«áˆá‰³á‹ˆá‰€ ቋንቋቫይቩንጆሶጋመ" + - "ደበኛ የሞሮኮ ታማዚáŒá‰µá‰‹áŠ•á‰‹á‹Š ይዘት አይደለáˆá‹˜áˆ˜áŠ“á‹Š መደበኛ ዓረብኛየኦስትሪያ ጀርመንየስዊዠከáተኛ ጀርመንኛየአ" + - "á‹áˆµá‰µáˆ«áˆŠá‹« እንáŒáˆŠá‹áŠ›á‹¨áŠ«áŠ“ዳ እንáŒáˆŠá‹áŠ›á‹¨á‰¥áˆªá‰²áˆ½ እንáŒáˆŠá‹áŠ›á‹¨áŠ áˆœáˆªáŠ« እንáŒáˆŠá‹áŠ›á‹¨áˆ‹á‰²áŠ• አሜሪካ ስá“ኒሽየአá‹áˆ®á“ እስ" + - "á“ንኛየካናዳ áˆáˆ¨áŠ•áˆ³á‹­áŠ›á‹¨áˆµá‹Šá‹ áˆáˆ¨áŠ•áˆ³á‹­áŠ›áሌሚሽየብራዚሠá–ርቹጋáˆáŠ›á‹¨áŠ á‹áˆ®á“ á–ርቹጋáˆáŠ›áˆžáˆá‹³á‰«á‹ŠáŠ“ቀለሠያለ ቻይንኛ" + - "ባህላዊ ቻይንኛ" - -// Size: 1234 bytes, 605 elements -var amLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000c, 0x001b, 0x001b, 0x002d, 0x0039, 0x0045, 0x0045, - 0x0051, 0x0060, 0x0060, 0x006f, 0x0084, 0x0093, 0x00a2, 0x00b1, - 0x00c0, 0x00cf, 0x00de, 0x00ed, 0x00fc, 0x010e, 0x011d, 0x011d, - 0x011d, 0x012c, 0x012c, 0x0135, 0x0135, 0x0135, 0x013e, 0x0147, - 0x0153, 0x015c, 0x016e, 0x0174, 0x0180, 0x0192, 0x01a4, 0x01b0, - 0x01c5, 0x01d1, 0x01e0, 0x01e0, 0x01e9, 0x01f2, 0x01fb, 0x020d, - 0x0229, 0x0235, 0x0251, 0x025d, 0x0269, 0x0278, 0x0287, 0x0293, - 0x02a2, 0x02ae, 0x02ae, 0x02c0, 0x02cc, 0x02db, 0x02ea, 0x02ea, - // Entry 40 - 7F - 0x02ff, 0x0311, 0x0329, 0x0335, 0x0344, 0x0356, 0x0356, 0x036b, - 0x037a, 0x038f, 0x039b, 0x03a7, 0x03b6, 0x03c2, 0x03cb, 0x03cb, - 0x03d7, 0x03e9, 0x0405, 0x0411, 0x041d, 0x041d, 0x042c, 0x043b, - 0x043b, 0x0447, 0x0456, 0x0462, 0x047d, 0x0489, 0x0489, 0x0498, - 0x04a4, 0x04b6, 0x04c9, 0x04d8, 0x04e7, 0x04e7, 0x04f3, 0x0502, - 0x0514, 0x0526, 0x0532, 0x053e, 0x054d, 0x0559, 0x0562, 0x0578, - 0x0584, 0x0584, 0x058a, 0x05ac, 0x05c8, 0x05c8, 0x05c8, 0x05d4, - 0x05e3, 0x05e3, 0x05ef, 0x05fb, 0x0607, 0x0616, 0x0616, 0x0622, - // Entry 80 - BF - 0x062e, 0x0640, 0x0649, 0x0655, 0x0661, 0x0670, 0x0679, 0x0691, - 0x06a6, 0x06a6, 0x06b5, 0x06c8, 0x06d4, 0x06e3, 0x06f2, 0x06fe, - 0x070a, 0x0713, 0x071f, 0x072b, 0x0737, 0x0743, 0x074c, 0x0758, - 0x0767, 0x0776, 0x0782, 0x078e, 0x079a, 0x07a3, 0x07af, 0x07c1, - 0x07d0, 0x07dc, 0x07e8, 0x07f4, 0x0800, 0x080f, 0x0821, 0x0830, - 0x083c, 0x084b, 0x0854, 0x0863, 0x0872, 0x0872, 0x087e, 0x0887, - 0x0893, 0x08a2, 0x08b1, 0x08bd, 0x08c6, 0x08c6, 0x08d2, 0x08d2, - 0x08d2, 0x08d2, 0x08d2, 0x08db, 0x08db, 0x08db, 0x08db, 0x08db, - // Entry C0 - FF - 0x08db, 0x08db, 0x08db, 0x08db, 0x08db, 0x08e4, 0x08e4, 0x08e4, - 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08ea, 0x08ea, 0x08ea, 0x08ea, - 0x08ea, 0x08ea, 0x08ea, 0x08ea, 0x08ea, 0x08ea, 0x08ea, 0x08ea, - 0x08ea, 0x08ea, 0x08f3, 0x08f3, 0x08f9, 0x08f9, 0x08f9, 0x08f9, - 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, 0x08f9, - 0x08f9, 0x08ff, 0x08ff, 0x08ff, 0x08ff, 0x08ff, 0x0908, 0x0908, - 0x0908, 0x0908, 0x0908, 0x0908, 0x0908, 0x0911, 0x0911, 0x0911, - 0x0911, 0x0911, 0x0911, 0x0911, 0x0911, 0x091d, 0x091d, 0x0936, - // Entry 100 - 13F - 0x0936, 0x0936, 0x0936, 0x0936, 0x0936, 0x0936, 0x0942, 0x0942, - 0x0942, 0x0942, 0x0942, 0x094e, 0x094e, 0x0970, 0x0970, 0x097c, - 0x097c, 0x098f, 0x098f, 0x098f, 0x0998, 0x09a1, 0x09a1, 0x09a1, - 0x09a1, 0x09a1, 0x09a1, 0x09a1, 0x09a1, 0x09a1, 0x09a1, 0x09b0, - 0x09b0, 0x09b0, 0x09b0, 0x09b0, 0x09b0, 0x09b0, 0x09b0, 0x09b0, - 0x09b0, 0x09b3, 0x09bf, 0x09bf, 0x09bf, 0x09bf, 0x09bf, 0x09cb, - 0x09cb, 0x09cb, 0x09cb, 0x09cb, 0x09cb, 0x09cb, 0x09cb, 0x09cb, - 0x09cb, 0x09cb, 0x09e4, 0x09e4, 0x09e4, 0x09f0, 0x09f0, 0x09f0, - // Entry 140 - 17F - 0x09f0, 0x09fc, 0x09fc, 0x09fc, 0x09fc, 0x09fc, 0x0a1e, 0x0a1e, - 0x0a1e, 0x0a1e, 0x0a1e, 0x0a1e, 0x0a1e, 0x0a1e, 0x0a1e, 0x0a1e, - 0x0a2a, 0x0a36, 0x0a36, 0x0a36, 0x0a36, 0x0a36, 0x0a42, 0x0a42, - 0x0a42, 0x0a4b, 0x0a4b, 0x0a4b, 0x0a4b, 0x0a4b, 0x0a57, 0x0a6c, - 0x0a6c, 0x0a6c, 0x0a6c, 0x0a6c, 0x0a6c, 0x0a7c, 0x0a7c, 0x0a7c, - 0x0a7c, 0x0a8b, 0x0a8b, 0x0aa1, 0x0aaa, 0x0aaa, 0x0aaa, 0x0aaa, - 0x0aaa, 0x0aaa, 0x0aaa, 0x0aaa, 0x0ab6, 0x0abf, 0x0abf, 0x0abf, - 0x0abf, 0x0abf, 0x0ac8, 0x0ac8, 0x0ac8, 0x0ac8, 0x0ac8, 0x0ac8, - // Entry 180 - 1BF - 0x0ac8, 0x0ad1, 0x0ad1, 0x0ad1, 0x0ada, 0x0ada, 0x0ae7, 0x0ae7, - 0x0ae7, 0x0aed, 0x0aed, 0x0af6, 0x0af6, 0x0af6, 0x0af6, 0x0af6, - 0x0af6, 0x0af6, 0x0af6, 0x0af6, 0x0aff, 0x0aff, 0x0aff, 0x0aff, - 0x0aff, 0x0b05, 0x0b14, 0x0b14, 0x0b24, 0x0b2a, 0x0b2a, 0x0b2a, - 0x0b2a, 0x0b2a, 0x0b36, 0x0b36, 0x0b36, 0x0b45, 0x0b45, 0x0b45, - 0x0b45, 0x0b45, 0x0b45, 0x0b45, 0x0b45, 0x0b45, 0x0b45, 0x0b45, - 0x0b4b, 0x0b4b, 0x0b4b, 0x0b4b, 0x0b4b, 0x0b4b, 0x0b57, 0x0b57, - 0x0b57, 0x0b57, 0x0b57, 0x0b5d, 0x0b70, 0x0b79, 0x0b79, 0x0b79, - // Entry 1C0 - 1FF - 0x0b8b, 0x0b8b, 0x0b8b, 0x0b8b, 0x0b8b, 0x0b8b, 0x0b8b, 0x0b8b, - 0x0b8b, 0x0b8b, 0x0b8b, 0x0b8b, 0x0b8b, 0x0b8b, 0x0b8b, 0x0b8b, - 0x0b8b, 0x0b8b, 0x0b8b, 0x0b8b, 0x0b8b, 0x0b91, 0x0b91, 0x0b91, - 0x0b91, 0x0b91, 0x0b91, 0x0b91, 0x0b9a, 0x0b9a, 0x0b9a, 0x0b9a, - 0x0b9a, 0x0b9a, 0x0ba0, 0x0ba0, 0x0ba0, 0x0ba0, 0x0bac, 0x0bac, - 0x0bac, 0x0bac, 0x0bac, 0x0bb5, 0x0bb5, 0x0bb5, 0x0bb5, 0x0bb5, - 0x0bbb, 0x0bbb, 0x0bbb, 0x0bd1, 0x0bd1, 0x0bd1, 0x0be0, 0x0be0, - 0x0be0, 0x0bec, 0x0bec, 0x0bec, 0x0bff, 0x0c0c, 0x0c1c, 0x0c2f, - // Entry 200 - 23F - 0x0c2f, 0x0c2f, 0x0c2f, 0x0c2f, 0x0c2f, 0x0c2f, 0x0c2f, 0x0c2f, - 0x0c2f, 0x0c2f, 0x0c45, 0x0c45, 0x0c45, 0x0c45, 0x0c45, 0x0c45, - 0x0c4b, 0x0c4b, 0x0c54, 0x0c5d, 0x0c5d, 0x0c5d, 0x0c5d, 0x0c6f, - 0x0c6f, 0x0c6f, 0x0c6f, 0x0c6f, 0x0c7f, 0x0c7f, 0x0c7f, 0x0c7f, - 0x0c7f, 0x0c7f, 0x0c8b, 0x0c8b, 0x0c97, 0x0c97, 0x0cc3, 0x0cc3, - 0x0cc3, 0x0cc3, 0x0cdc, 0x0ce2, 0x0ce2, 0x0ce2, 0x0ce2, 0x0ce2, - 0x0ce2, 0x0ce2, 0x0ceb, 0x0ceb, 0x0ceb, 0x0ceb, 0x0ceb, 0x0ceb, - 0x0ceb, 0x0ceb, 0x0ceb, 0x0cf1, 0x0cf1, 0x0cf1, 0x0cf1, 0x0cf1, - // Entry 240 - 27F - 0x0cf1, 0x0cf1, 0x0cf1, 0x0cf1, 0x0cf1, 0x0cf1, 0x0d1a, 0x0d1a, - 0x0d40, 0x0d40, 0x0d66, 0x0d85, 0x0dae, 0x0dd9, 0x0df8, 0x0e1a, - 0x0e3c, 0x0e62, 0x0e81, 0x0e81, 0x0ea0, 0x0ebf, 0x0ecb, 0x0eed, - 0x0f0f, 0x0f21, 0x0f21, 0x0f3e, 0x0f57, -} - -// Size: 9558 bytes -var arLangStr string = "" + - "الأÙاريةالأبخازيةالأÙستيةالأÙريقانيةالأكانيةالأمهريةالأراغونيةالعربيةالأ" + - "ساميةالأواريةالأيماراالأذربيجانيةالباشكيريةالبيلاروسيةالبلغاريةالبيسلام" + - "يةالبامباراالبنغاليةالتبتيةالبريتونيةالبوسنيةالكتالانيةالشيشانيةالتشامو" + - "روالكورسيكيةالكرىالتشيكيةسلاÙية كنسيةالتشوÙاشيالولزيةالدانماركيةالألمان" + - "يةالمالديÙيةالزونخايةالإيوياليونانيةالإنجليزيةالإسبرانتوالإسبانيةالإستو" + - "نيةلغة الباسكالÙارسيةالÙلةالÙنلنديةالÙيجيةالÙارويزالÙرنسيةالÙريزيانالأي" + - "رلنديةالغيلية الأسكتلنديةالجاليكيةالجوارانيالغوجاراتيةالمنكيةالهوساالعب" + - "ريةالهنديةالهيري موتوالكرواتيةالهايتيةالهنغاريةالأرمينيةالهيريرواللّغة " + - "الوسيطةالإندونيسيةالإنترلينجالإيجبوالسيتشيون ييالإينبياكالإيدوالأيسلاند" + - "يةالإيطاليةالإينكتيتتاليابانيةالجاويةالجورجيةالكونغوالكيكيوالكيونياماال" + - "كازاخستانيةالكالاليستالخميريةالكاناداالكوريةالكانيوريالكشميريةالكرديةال" + - "كوميالكورنيةالقرغيزيةاللاتينيةاللوكسمبرجيةالجانداالليمبرجيشيةاللينجالاا" + - "للاويةاللتوانيةاللبا-كاتانجااللاتÙيةالمالاجاشيةالمارشاليةالماوريةالمقدو" + - "نيةالماليالامالمنغوليةالماراثيلغة الملايوالمالطيةالبورميةالنوروالنديبيل" + - " الشماليالنيباليةالندونجاالهولنديةالنينورسك النرويجيالبوكمالية النرويجية" + - "النديبيل الجنوبيالناÙاجوالنيانجاالأوكيتانيةالأوجيبواالأوروموالأوريياالأ" + - "وسيتيكالبنجابيةالباليةالبولنديةالبشتونيةالبرتغاليةالكويتشواالرومانشيةال" + - "رنديالرومانيةالروسيةالكينياروانداالسنسكريتيةالسردينيةالسنديةالسامي الشم" + - "اليالسانجوالسنهاليةالسلوÙاكيةالسلوÙانيةالساموائيةالشوناالصوماليةالألبان" + - "يةالصربيةالسواتيالسوتو الجنوبيةالسوندانيةالسويديةالسواحليةالتاميليةالتي" + - "لجوالطاجيكيةالتايلانديةالتغرينيةالتركمانيةالتسوانيةالتونغيةالتركيةالسون" + - "جاالتتاريةالتاهيتيةالأغوريةالأوكرانيةالأرديةالأوزبكيةالÙينداالÙيتناميةل" + - "غة الÙولابوكالولونيةالولوÙالخوسااليديشيةاليوروبيةالزهيونجالصينيةالزولوا" + - "لأتشينيزيةالأكوليةالأدانجميةالأديغةالأÙريهيليةالأغمالآينويةالأكاديةالأل" + - "يوتيةالألطائية الجنوبيةالإنجليزية القديمةالأنجيكاالآراميةالأروكانيةالأر" + - "اباهوالأراواكيةالآسوالأستريةالأواديةالبلوشيةاللغة الباليةالباسابامنلغة " + - "الغومالاالبيجاالبيمبابينالغة الباÙوتالبهوجبوريةالبيكوليةالبينيةلغة الكو" + - "مالسيكسيكيةالبراجيةالبودوأكوسالبرياتيةالبجينيزيةلغة البولوالبلينيةلغة ا" + - "لميدومباالكادوالكاريبيةالكايوجيةالأتسامالسيبونيةتشيغاالتشيبشاالتشاجاتاي" + - "التشكيزيةالماريالشينوك جارجونالشوكتوالشيباوايانالشيروكيالشايانالسورانية" + - " الكرديةالقبطيةلغة تتار القرمالكاشبايانالداكوتاالدارجواتيتاالديلويرالسلا" + - "Ùيةالدوجريبالدنكاالزارميةالدوجريةالصربية السÙلىالديولاالهولندية الوسطىج" + - "ولا ÙونياالدايلاالقرعانيةإمبوالإÙيكالمصرية القديمةالإكاجكالإمايتالإنجلي" + - "زية الوسطىالإيوندوالÙانجالÙلبينيةالÙونالÙرنسية الوسطىالÙرنسية القديمةال" + - "Ùريزينية الشماليةالÙريزينية الشرقيةالÙريلايانالجاالغاغوزالجايوالجبياالج" + - "عزيةلغة أهل جبل طارقالألمانية العليا الوسطىالألمانية العليا القديمةالجن" + - "ديالجورونتالوالقوطيةالجريبواليونانية القديمةالألمانية السويسريةالغيزيةغ" + - "وتشنالهيدالغة أهل الهاوايالهيليجينونالحثيةالهمونجيةالصربية العلياالهباا" + - "لإيبانالإيبيبيويةالإيلوكوالإنجوشيةاللوجباننغومباالماتشاميةالÙارسية اليه" + - "وديةالعربية اليهوديةالكارا-كالباكالقبيليةالكاتشينالجوالكامباالكويالكابا" + - "ردايانكانمبوالتايابيةماكوندهكابوÙيرديانوالكوروالكازيةالخوتانيزكويرا تشي" + - "نيكالينجينالكيمبندوكومي-بيرماياكالكونكانيةالكوسراينالكبيلالكاراتشاي-بال" + - "كارالكاريليةالكوروخشامبالالغة الباÙيالغة الكولونيانالقموقيةالكتيناياللا" + - "دينولانجياللاهندااللامباالليزجيةلاكوتامنغولىاللوزياللبا-لؤلؤاللوسينوالل" + - "وندااللوالميزولغة اللوياالمادريزالماجاالمايثيليالماكاسارالماندينغالماسا" + - "يماباالموكشاالماندارالميندالميروالمورسيانيةالأيرلندية الوسطىماخاوا-ميتو" + - "ميتاالميكماكيونيةالمينانجكاباوالمانشوالمانيبوريةالموهوكالموسيمندنجلغات " + - "متعددةالكريكالميرانديزالمارواريةالأرزيةاللغة النابوليةلغة الناماالألمان" + - "ية السÙلىالنواريةالنياسالنيويكواسيولغة النجيمبونالنوجايالنورس القديمأنك" + - "والسوتو الشماليةالنويرالنوارية التقليديةالنيامويزيالنيانكولالنيوروالنزي" + - "ماالأوساجالتركية العثمانيةالبانجاسينانالبهلويةالبامبانجاالبابيامينتوالب" + - "الوانالÙارسية القديمةالÙينيقيةالبوهنبيايانالبروÙانسية القديمةكيشيالراجا" + - "سثانيةالرابانيالراروتونجانيالرومبوغجريالأرومانيانالرواالسانداويالساخيةا" + - "لآرامية السامريةسامبوروالساساكالسانتالينامبيسانغوالصقليةالأسكتلنديةالسن" + - "يكاسيناالسيلكبكويرابورو سينيالأيرلندية القديمةتشلحيتالشانيةالعربية التش" + - "اديةالسيداموالسامي الجنوبياللول ساميالإيناري ساميالسكولت ساميالسونينكال" + - "سوجدينالسرانان تونجوالسررلغة الساهوالسوكوماالسوسوالسوماريةالقمريةلغة ال" + - "كونغو السواحليةسريانية تقليديةالسريانيةالتيمنتيسوالتيرينوالتيتمالتغريةا" + - "لتيÙالتوكيلاوالكلينجونالتلينغيتيةالتاماشيكتونجا - نياساالتوك بيسينلغة ا" + - "لتاروكوالتسيمشيانالتامبوكاالتوÙالوتاساواقالتوÙيةالأمازيغية وسط الأطلسال" + - "أدمرتاليجاريتيكالأمبندوالجذرالÙايالÙوتيكالÙونجوالوالسرالولاياتاالوارايا" + - "لواشوالكالميكالسوغاالياواليابيزيانجبنيمباالكَنْتÙونيةالزابوتيكرموز المع" + - "ايير الأساسيةالزيناجاالتمازيغية المغربية القياسيةالزونيةبدون محتوى لغوي" + - "زازاالعربية الرسمية الحديثةالألمانية النمساويةالألمانية العليا السويسري" + - "ةالإنجليزية الأستراليةالإنجليزية الكنديةالإنجليزية البريطانيةالإنجليزية" + - " الولايات المتحدةالإسبانية أمريكا اللاتينيةالإسبانية الأوروبيةالإسبانية " + - "المكسيكيةالÙرنسية الكنديةالÙرنسية السويسريةالÙلمنكيةالبرتغالية البرازيل" + - "يةالبرتغالية الأوروبيةالمولدوÙيةصربية-كرواتيةالصينية المبسطةالصينية الت" + - "قليدية" - -// Size: 1234 bytes, 605 elements -var arLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0010, 0x0022, 0x0032, 0x0048, 0x0058, 0x0068, 0x007c, - 0x008a, 0x009a, 0x00aa, 0x00ba, 0x00d2, 0x00e6, 0x00fc, 0x010e, - 0x0122, 0x0134, 0x0146, 0x0154, 0x0168, 0x0178, 0x018c, 0x019e, - 0x01b0, 0x01c4, 0x01ce, 0x01de, 0x01f5, 0x0207, 0x0215, 0x022b, - 0x023d, 0x0251, 0x0263, 0x026f, 0x0281, 0x0295, 0x02a9, 0x02bb, - 0x02cd, 0x02e0, 0x02f0, 0x02fa, 0x030c, 0x031a, 0x032a, 0x033a, - 0x034c, 0x0360, 0x0385, 0x0397, 0x03a9, 0x03bf, 0x03cd, 0x03d9, - 0x03e7, 0x03f5, 0x040a, 0x041c, 0x042c, 0x043e, 0x0450, 0x0460, - // Entry 40 - 7F - 0x047b, 0x0491, 0x04a5, 0x04b3, 0x04ca, 0x04dc, 0x04e8, 0x04fe, - 0x0510, 0x0524, 0x0536, 0x0544, 0x0554, 0x0562, 0x0570, 0x0584, - 0x059e, 0x05b2, 0x05c2, 0x05d2, 0x05e0, 0x05f2, 0x0604, 0x0612, - 0x061e, 0x062e, 0x0640, 0x0652, 0x066a, 0x0678, 0x0690, 0x06a2, - 0x06b0, 0x06c2, 0x06db, 0x06eb, 0x0701, 0x0715, 0x0725, 0x0737, - 0x074b, 0x075d, 0x076d, 0x0782, 0x0792, 0x07a2, 0x07ae, 0x07cd, - 0x07df, 0x07ef, 0x0801, 0x0824, 0x084b, 0x086a, 0x087a, 0x088a, - 0x08a0, 0x08b2, 0x08c2, 0x08d2, 0x08e4, 0x08f6, 0x0904, 0x0916, - // Entry 80 - BF - 0x0928, 0x093c, 0x094e, 0x0962, 0x096e, 0x0980, 0x098e, 0x09a8, - 0x09be, 0x09d0, 0x09de, 0x09f9, 0x0a07, 0x0a19, 0x0a2d, 0x0a41, - 0x0a55, 0x0a61, 0x0a73, 0x0a85, 0x0a93, 0x0aa1, 0x0abe, 0x0ad2, - 0x0ae2, 0x0af4, 0x0b06, 0x0b14, 0x0b26, 0x0b3c, 0x0b4e, 0x0b62, - 0x0b74, 0x0b84, 0x0b92, 0x0ba0, 0x0bb0, 0x0bc2, 0x0bd2, 0x0be6, - 0x0bf4, 0x0c06, 0x0c14, 0x0c28, 0x0c41, 0x0c51, 0x0c5d, 0x0c69, - 0x0c79, 0x0c8b, 0x0c9b, 0x0ca9, 0x0cb5, 0x0ccb, 0x0cdb, 0x0cef, - 0x0cfd, 0x0cfd, 0x0d13, 0x0d1d, 0x0d2d, 0x0d3d, 0x0d3d, 0x0d4f, - // Entry C0 - FF - 0x0d4f, 0x0d72, 0x0d95, 0x0da5, 0x0db5, 0x0dc9, 0x0dc9, 0x0ddb, - 0x0ddb, 0x0def, 0x0def, 0x0def, 0x0df9, 0x0df9, 0x0e09, 0x0e09, - 0x0e19, 0x0e19, 0x0e29, 0x0e42, 0x0e42, 0x0e4e, 0x0e56, 0x0e56, - 0x0e6d, 0x0e79, 0x0e87, 0x0e87, 0x0e8f, 0x0ea4, 0x0ea4, 0x0eba, - 0x0ecc, 0x0eda, 0x0eda, 0x0eeb, 0x0eff, 0x0eff, 0x0eff, 0x0f0f, - 0x0f0f, 0x0f1b, 0x0f23, 0x0f35, 0x0f49, 0x0f5c, 0x0f6c, 0x0f85, - 0x0f91, 0x0fa3, 0x0fb5, 0x0fc3, 0x0fd5, 0x0fdf, 0x0fef, 0x1003, - 0x1015, 0x1021, 0x103c, 0x104a, 0x1060, 0x1070, 0x107e, 0x109f, - // Entry 100 - 13F - 0x10ad, 0x10ad, 0x10c7, 0x10db, 0x10eb, 0x10fb, 0x1103, 0x1113, - 0x1123, 0x1133, 0x113f, 0x114f, 0x115f, 0x117a, 0x117a, 0x1188, - 0x11a7, 0x11ba, 0x11c8, 0x11da, 0x11e2, 0x11ee, 0x11ee, 0x120b, - 0x1219, 0x1227, 0x1248, 0x1248, 0x1258, 0x1258, 0x1264, 0x1276, - 0x1276, 0x1280, 0x1280, 0x129d, 0x12bc, 0x12bc, 0x12e1, 0x1304, - 0x1318, 0x1320, 0x132e, 0x132e, 0x133a, 0x1346, 0x1346, 0x1354, - 0x1371, 0x1371, 0x139d, 0x13cb, 0x13cb, 0x13d7, 0x13ed, 0x13fb, - 0x1409, 0x142a, 0x144f, 0x144f, 0x144f, 0x145d, 0x1467, 0x1473, - // Entry 140 - 17F - 0x1473, 0x148f, 0x148f, 0x14a5, 0x14b1, 0x14c3, 0x14de, 0x14de, - 0x14e8, 0x14f6, 0x150c, 0x151c, 0x152e, 0x152e, 0x152e, 0x153e, - 0x154a, 0x155e, 0x157f, 0x159e, 0x159e, 0x15b7, 0x15c7, 0x15d7, - 0x15df, 0x15ed, 0x15f7, 0x160f, 0x161b, 0x162d, 0x163b, 0x1653, - 0x1653, 0x165f, 0x165f, 0x166d, 0x167f, 0x1694, 0x1694, 0x1694, - 0x1694, 0x16a4, 0x16b6, 0x16cf, 0x16e3, 0x16f5, 0x1701, 0x1722, - 0x1722, 0x1722, 0x1734, 0x1742, 0x1750, 0x1765, 0x1780, 0x1790, - 0x17a0, 0x17b0, 0x17ba, 0x17ca, 0x17d8, 0x17e8, 0x17e8, 0x17e8, - // Entry 180 - 1BF - 0x17e8, 0x17f4, 0x17f4, 0x1800, 0x180c, 0x180c, 0x181f, 0x182f, - 0x183d, 0x1845, 0x1851, 0x1864, 0x1864, 0x1864, 0x1874, 0x1874, - 0x1880, 0x1892, 0x18a4, 0x18b6, 0x18c4, 0x18cc, 0x18da, 0x18ea, - 0x18f6, 0x1902, 0x1918, 0x1939, 0x194e, 0x1956, 0x1970, 0x198a, - 0x1998, 0x19ae, 0x19bc, 0x19c8, 0x19c8, 0x19d2, 0x19e7, 0x19f3, - 0x1a07, 0x1a1b, 0x1a1b, 0x1a1b, 0x1a29, 0x1a29, 0x1a29, 0x1a46, - 0x1a59, 0x1a78, 0x1a88, 0x1a94, 0x1aa0, 0x1aa0, 0x1aac, 0x1ac5, - 0x1ad3, 0x1aec, 0x1aec, 0x1af4, 0x1b11, 0x1b1d, 0x1b40, 0x1b54, - // Entry 1C0 - 1FF - 0x1b66, 0x1b74, 0x1b82, 0x1b90, 0x1bb1, 0x1bc9, 0x1bd9, 0x1bed, - 0x1c05, 0x1c15, 0x1c15, 0x1c15, 0x1c15, 0x1c34, 0x1c34, 0x1c46, - 0x1c46, 0x1c46, 0x1c5e, 0x1c5e, 0x1c83, 0x1c8b, 0x1c8b, 0x1ca3, - 0x1cb3, 0x1ccd, 0x1ccd, 0x1ccd, 0x1cdb, 0x1ce3, 0x1ce3, 0x1ce3, - 0x1ce3, 0x1cf9, 0x1d03, 0x1d15, 0x1d23, 0x1d44, 0x1d52, 0x1d60, - 0x1d72, 0x1d72, 0x1d7c, 0x1d86, 0x1d94, 0x1daa, 0x1daa, 0x1db8, - 0x1dc0, 0x1dc0, 0x1dce, 0x1de9, 0x1e0c, 0x1e0c, 0x1e18, 0x1e26, - 0x1e45, 0x1e55, 0x1e55, 0x1e55, 0x1e70, 0x1e83, 0x1e9c, 0x1eb3, - // Entry 200 - 23F - 0x1ec3, 0x1ed3, 0x1eee, 0x1ef8, 0x1f0b, 0x1f0b, 0x1f1b, 0x1f27, - 0x1f39, 0x1f47, 0x1f6f, 0x1f8c, 0x1f9e, 0x1f9e, 0x1f9e, 0x1faa, - 0x1fb2, 0x1fc2, 0x1fce, 0x1fdc, 0x1fe6, 0x1ff8, 0x1ff8, 0x200a, - 0x2020, 0x2020, 0x2032, 0x2049, 0x205e, 0x205e, 0x2075, 0x2075, - 0x2089, 0x2089, 0x209b, 0x20ab, 0x20b9, 0x20c7, 0x20ef, 0x20fd, - 0x2111, 0x2121, 0x212b, 0x2135, 0x2135, 0x2135, 0x2135, 0x2135, - 0x2143, 0x2143, 0x2151, 0x215f, 0x2171, 0x217f, 0x218b, 0x218b, - 0x218b, 0x219b, 0x219b, 0x21a7, 0x21b1, 0x21bf, 0x21cb, 0x21d3, - // Entry 240 - 27F - 0x21d3, 0x21eb, 0x21fd, 0x2227, 0x2227, 0x2237, 0x226d, 0x227b, - 0x2297, 0x229f, 0x22cb, 0x22f0, 0x2322, 0x234b, 0x236e, 0x2397, - 0x23cb, 0x23fd, 0x2422, 0x2447, 0x2466, 0x2489, 0x249b, 0x24c4, - 0x24eb, 0x24ff, 0x2518, 0x2535, 0x2556, -} - -// Size: 4672 bytes -var azLangStr string = "" + - "afarcaabxazavestancaafrikaansakancaamhararagoncaÉ™rÉ™bassamavarikcÉ™aymarca" + - "azÉ™rbaycanbaÅŸqırdbelarusbolqarbislama dilibambarabenqaltibetBretoncabosn" + - "iakkatalançeçen diliçamoro dilikorsikakri diliçexkilsÉ™ slav diliçuvaÅŸ di" + - "liuelsdanimarkaalmandiveh dilidzonqaeveyunaningilisesperantoispanestonba" + - "skfarsfula dilifinficifarerfransızqÉ™rbi frizirlandskot gaelik diliqalisi" + - "anquaraniqucaratmankshausaivrithindihiri motu dilixorvathaitimacarermÉ™ni" + - "Herer diliinterlingua diliindonezinterlingue diliiqbosiçuan yiinupiaq di" + - "liido diliislanditalyaninuktitutyaponyavagürcükonqo dilikikuyukuanyama d" + - "iliqazaxkalaallisutkxmerkannadakoreyakanur dilikaÅŸmirkürdkomi dilikornqı" + - "rğızlatınlüksemburqqandalimburqiÅŸ dililinqalalaoslitvaluba-katanqalatışm" + - "alaqasmarÅŸal dilimaorimakedonmalayalammonqolmaratimalaymaltabirmanauru d" + - "iliÅŸimali ndebelenepalnqonka dilihollandnünorsk norveçbokmal norveçcÉ™nub" + - " ndebele dilinavayo dilinyanca dilioksitancaocibva dilioromooriyaosetik " + - "dilipÉ™ncabpali dilipolyakpuÅŸtuportuqalkeçuaretoromanrundirumınruskinyarv" + - "andasanskritsardin dilisindhiÅŸimali samisanqosinhalslovakslovensamoa dil" + - "iÅŸonasomalialbanserbsvati diliSesoto dilisudanisveçsuahilitamilteluqutac" + - "iktaytiqrintürkmÉ™nsvana dilitonqatürksonqa dilitatartaxiti diliuyÄŸurukra" + - "ynaurduözbÉ™kvenda dilivyetnamvolapük dilivalun dilivolofxosaYahudi diliy" + - "orubajuÉ™nq diliçinzuluakin diliakoli diliadangme diliaduge diliafrihili " + - "diliaqhemaynucaakadiancaaleutcacÉ™nub altay diliqÉ™dimi ingiliscÉ™angikÉ™ di" + - "liaramik diliaraukancaarapaho diliaravakçaasuasturicÉ™avadicÉ™baluc diliba" + - "lincÉ™basa dilibeja dilibembabenabxoçpuri dilibikolcabini dilisiksikÉ™ dil" + - "ibraj dilibodoburyat dilibugin dilibilincÉ™kado dilikarib diliatsamcakebu" + - "ano diliçiqaçibçə diliçaÄŸatay diliçukiz dilimari diliçinuk lÉ™hçəsiçoktau" + - " diliçipevyan diliçirokiçeyen dilisorani kürdkopt dilikrım türkçəkaÅŸubya" + - "n dilidakota dilidarqva dilitaitadelaver dilislaveydoqrib dilidinka dili" + - "zarmadoqri diliaÅŸağı sorbdualaortacaq hollandcadioladyula diliembuefik d" + - "iliqÉ™dimi misir diliekacuk dilielamit diliortacaq ingiliscÉ™evondo dilifa" + - "ng dilifilippinfon diliortacaq fransızcaqÉ™dimi fransızcaÅŸimal fris dilif" + - "riul diliqa diliqaqauzqayo diliqabaya diliqez diliqilbert giliortacaq yü" + - "ksÉ™k almancaqÉ™dimi almancaqondi diliqorontalo diligotçaqrebo diliqÉ™dimi " + - "yunancaÄ°sveçrÉ™ almancasıqusiqviçin dilihayda dilihavayhiliqaynon dilihit" + - "tit dilimonq diliyuxarı sorbhupa diliiban diliiloko diliinquÅŸ dililoÄŸban" + - " dilinqombamaçamjudo-farscajude-É™rÉ™bcÉ™qara-qalpaq dilikabilekaçincaju di" + - "likambakavi dilikabardcatiyap dilimakondkabuverdiankoro dilixazi dilixot" + - "an dilikoyra çiinikalencinkimbundu dilikomi-permyakkonkankosreyan dilikp" + - "elle diliqaraçay-balkar dilikarelyan dilikurux diliÅŸambalabafiakumuk dil" + - "ikutenay dililadin dililangilaxnda dililamba dililÉ™zqi dililakotamonqo d" + - "ililozi dililuba-lulua dililuyseno dililunda dililuolushaycaluyiamaduriz" + - " dilimaqahi dilimaitili dilimakasar dilimÉ™ndinqo dilimasaymokÅŸa dilimand" + - "ar dilimende dilimerumorisienortacaq irlandcamaxuva-meettometa’mikmak di" + - "liminanqkaban dilimançu dilimanipüri dilimohavkmosi dilimundanqdigÉ™r dil" + - "lÉ™rkrik dilimirand dilimaruari dilierzya dilineapolital dilinamaaÅŸağı al" + - "mancanevari dilinyas diliniyuan dilikvasionoqay diliqÉ™dimi norscanqoÅŸima" + - "l soto dilinuernyamvezi dilinyankolniyoro dilinizima diliosage diliosman" + - " dilipanqasinan dilipaxlavi dilipampanqa dilipapyamento dilipalayancaqÉ™d" + - "imi farscafoyenik diliponpeyan diliqÉ™dimi provensialcakiçeracastan dilir" + - "apanu dilirarotonqan diliromboroman diliaromancaruasandave diliyakut dil" + - "isamaritan dilisamburusasak dilisantal dilisanqusisili diliskots dilisen" + - "aselkup dilikoyraboro senniqÉ™dimi irlandcataçelitÅŸan dilisidamo dilicÉ™nu" + - "bi samilule samiinari samiskoltsoninke dilisoqdiyen dilisranan tonqo dil" + - "iserer diliisukuma dilisusu dilisumeryan diliKonqo suahilicÉ™sisiryak dil" + - "itimne dilitesotereno dilitetum dilitiqre dilitiv dilitokelay diliklinqo" + - "ntlinqit dilitamaÅŸek diliniyasa tonga dilitok pisin dilisimÅŸyan dilitumb" + - "uka dilituvalu dilitasavaqtuvinyan diliMÉ™rkÉ™zi Atlas tamazicÉ™siudmurt di" + - "liuqaritik diliumbundu dilirut dilivaivotik dilivunyovalamo dilivaray di" + - "livaÅŸo dilikalmıqcasoqayao diliyapiz dilizapotek diliblisimbols dilizena" + - "qa dilitamazizuni dilidil mÉ™zmunu yoxdurzaza diliModern Standart ÆrÉ™bcÉ™A" + - "vstriya almancasıİsveçrÉ™ yüksÉ™k almancasıAvstraliya ingiliscÉ™siKanada in" + - "giliscÉ™siBritaniya ingiliscÉ™siAmerika ingiliscÉ™siLatın Amerikası ispanca" + - "sıKastiliya ispancasıMeksika ispancasıKanada fransızcasıİsveçrÉ™ fransızc" + - "asıflamandBraziliya portuqalcasıPortuqaliya portuqalcasımoldavserb-xorva" + - "tcasadÉ™ləşmiÅŸ çinÉ™nÉ™nÉ™vi çin" - -// Size: 1234 bytes, 605 elements -var azLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0006, 0x000b, 0x0014, 0x001d, 0x0023, 0x0028, 0x0030, - 0x0036, 0x003b, 0x0044, 0x004b, 0x0056, 0x005f, 0x0066, 0x006c, - 0x0078, 0x007f, 0x0085, 0x008a, 0x0092, 0x0099, 0x00a0, 0x00ac, - 0x00b8, 0x00bf, 0x00c7, 0x00cb, 0x00db, 0x00e7, 0x00eb, 0x00f4, - 0x00f9, 0x0103, 0x0109, 0x010c, 0x0111, 0x0118, 0x0121, 0x0126, - 0x012b, 0x012f, 0x0133, 0x013c, 0x013f, 0x0143, 0x0148, 0x0150, - 0x015b, 0x0161, 0x0171, 0x0179, 0x0180, 0x0187, 0x018c, 0x0191, - 0x0196, 0x019b, 0x01a9, 0x01af, 0x01b4, 0x01b9, 0x01c0, 0x01ca, - // Entry 40 - 7F - 0x01da, 0x01e1, 0x01f1, 0x01f5, 0x01ff, 0x020b, 0x0213, 0x0219, - 0x0220, 0x0229, 0x022e, 0x0232, 0x0239, 0x0243, 0x0249, 0x0256, - 0x025b, 0x0266, 0x026b, 0x0272, 0x0278, 0x0282, 0x0289, 0x028e, - 0x0297, 0x029b, 0x02a4, 0x02aa, 0x02b5, 0x02ba, 0x02c9, 0x02d0, - 0x02d4, 0x02d9, 0x02e5, 0x02ec, 0x02f3, 0x02ff, 0x0304, 0x030b, - 0x0314, 0x031a, 0x0320, 0x0325, 0x032a, 0x032f, 0x0339, 0x0348, - 0x034d, 0x0358, 0x035f, 0x036f, 0x037d, 0x0390, 0x039b, 0x03a6, - 0x03af, 0x03ba, 0x03bf, 0x03c4, 0x03cf, 0x03d6, 0x03df, 0x03e5, - // Entry 80 - BF - 0x03eb, 0x03f3, 0x03f9, 0x0402, 0x0407, 0x040d, 0x0410, 0x041b, - 0x0423, 0x042e, 0x0434, 0x0440, 0x0445, 0x044b, 0x0451, 0x0457, - 0x0461, 0x0466, 0x046c, 0x0471, 0x0475, 0x047f, 0x048a, 0x048f, - 0x0495, 0x049c, 0x04a1, 0x04a7, 0x04ac, 0x04af, 0x04b5, 0x04be, - 0x04c8, 0x04cd, 0x04d2, 0x04dc, 0x04e1, 0x04ec, 0x04f2, 0x04f9, - 0x04fd, 0x0504, 0x050e, 0x0515, 0x0522, 0x052c, 0x0531, 0x0535, - 0x0540, 0x0546, 0x0551, 0x0555, 0x0559, 0x0562, 0x056c, 0x0578, - 0x0582, 0x0582, 0x058f, 0x0594, 0x059a, 0x05a3, 0x05a3, 0x05aa, - // Entry C0 - FF - 0x05aa, 0x05bb, 0x05cd, 0x05d9, 0x05e4, 0x05ed, 0x05ed, 0x05f9, - 0x05f9, 0x0602, 0x0602, 0x0602, 0x0605, 0x0605, 0x060e, 0x060e, - 0x0616, 0x0616, 0x0620, 0x0628, 0x0628, 0x0631, 0x0631, 0x0631, - 0x0631, 0x063a, 0x063f, 0x063f, 0x0643, 0x0643, 0x0643, 0x0651, - 0x0658, 0x0661, 0x0661, 0x0661, 0x066e, 0x066e, 0x066e, 0x0677, - 0x0677, 0x067b, 0x067b, 0x0686, 0x0690, 0x0690, 0x0698, 0x0698, - 0x06a1, 0x06ab, 0x06ab, 0x06b2, 0x06be, 0x06c3, 0x06d0, 0x06de, - 0x06e9, 0x06f2, 0x0703, 0x070f, 0x071d, 0x0724, 0x072f, 0x073b, - // Entry 100 - 13F - 0x0744, 0x0744, 0x0753, 0x0761, 0x076c, 0x0777, 0x077c, 0x0788, - 0x078e, 0x0799, 0x07a3, 0x07a8, 0x07b2, 0x07bf, 0x07bf, 0x07c4, - 0x07d5, 0x07da, 0x07e4, 0x07e4, 0x07e8, 0x07f1, 0x07f1, 0x0803, - 0x080e, 0x0819, 0x082b, 0x082b, 0x0836, 0x0836, 0x083f, 0x0847, - 0x0847, 0x084f, 0x084f, 0x0861, 0x0873, 0x0873, 0x0883, 0x0883, - 0x088d, 0x0894, 0x089a, 0x089a, 0x08a3, 0x08ae, 0x08ae, 0x08b6, - 0x08c2, 0x08c2, 0x08da, 0x08e9, 0x08e9, 0x08f3, 0x0901, 0x0907, - 0x0911, 0x0920, 0x0935, 0x0935, 0x0935, 0x0939, 0x0945, 0x094f, - // Entry 140 - 17F - 0x094f, 0x0954, 0x0954, 0x0963, 0x096e, 0x0977, 0x0983, 0x0983, - 0x098c, 0x0995, 0x0995, 0x099f, 0x09aa, 0x09aa, 0x09aa, 0x09b6, - 0x09bc, 0x09c2, 0x09cd, 0x09db, 0x09db, 0x09eb, 0x09f1, 0x09f9, - 0x0a00, 0x0a05, 0x0a0e, 0x0a16, 0x0a16, 0x0a20, 0x0a26, 0x0a31, - 0x0a31, 0x0a3a, 0x0a3a, 0x0a43, 0x0a4d, 0x0a59, 0x0a59, 0x0a59, - 0x0a59, 0x0a61, 0x0a6e, 0x0a7a, 0x0a80, 0x0a8d, 0x0a98, 0x0aac, - 0x0aac, 0x0aac, 0x0ab9, 0x0ac3, 0x0acb, 0x0ad0, 0x0ad0, 0x0ada, - 0x0ae6, 0x0af0, 0x0af5, 0x0b00, 0x0b0a, 0x0b15, 0x0b15, 0x0b15, - // Entry 180 - 1BF - 0x0b15, 0x0b1b, 0x0b1b, 0x0b25, 0x0b2e, 0x0b2e, 0x0b3d, 0x0b49, - 0x0b53, 0x0b56, 0x0b5e, 0x0b63, 0x0b63, 0x0b63, 0x0b6f, 0x0b6f, - 0x0b7a, 0x0b86, 0x0b92, 0x0ba0, 0x0ba5, 0x0ba5, 0x0bb0, 0x0bbb, - 0x0bc5, 0x0bc9, 0x0bd1, 0x0be1, 0x0bee, 0x0bf5, 0x0c00, 0x0c10, - 0x0c1b, 0x0c29, 0x0c2f, 0x0c38, 0x0c38, 0x0c3f, 0x0c4d, 0x0c56, - 0x0c61, 0x0c6d, 0x0c6d, 0x0c6d, 0x0c77, 0x0c77, 0x0c77, 0x0c86, - 0x0c8a, 0x0c9a, 0x0ca5, 0x0cae, 0x0cb9, 0x0cb9, 0x0cbf, 0x0cbf, - 0x0cc9, 0x0cd7, 0x0cd7, 0x0cda, 0x0cea, 0x0cee, 0x0cee, 0x0cfb, - // Entry 1C0 - 1FF - 0x0d02, 0x0d0d, 0x0d18, 0x0d22, 0x0d2c, 0x0d3b, 0x0d47, 0x0d54, - 0x0d63, 0x0d6c, 0x0d6c, 0x0d6c, 0x0d6c, 0x0d7a, 0x0d7a, 0x0d86, - 0x0d86, 0x0d86, 0x0d93, 0x0d93, 0x0da7, 0x0dac, 0x0dac, 0x0db9, - 0x0dc4, 0x0dd3, 0x0dd3, 0x0dd3, 0x0dd8, 0x0de2, 0x0de2, 0x0de2, - 0x0de2, 0x0dea, 0x0ded, 0x0df9, 0x0e03, 0x0e11, 0x0e18, 0x0e22, - 0x0e2d, 0x0e2d, 0x0e2d, 0x0e32, 0x0e3d, 0x0e47, 0x0e47, 0x0e47, - 0x0e4b, 0x0e4b, 0x0e56, 0x0e65, 0x0e75, 0x0e75, 0x0e7d, 0x0e86, - 0x0e86, 0x0e91, 0x0e91, 0x0e91, 0x0e9d, 0x0ea6, 0x0eb0, 0x0eb5, - // Entry 200 - 23F - 0x0ec1, 0x0ece, 0x0edf, 0x0eea, 0x0eea, 0x0eea, 0x0ef5, 0x0efe, - 0x0f0b, 0x0f0b, 0x0f1d, 0x0f1d, 0x0f28, 0x0f28, 0x0f28, 0x0f32, - 0x0f36, 0x0f41, 0x0f4b, 0x0f55, 0x0f5d, 0x0f69, 0x0f69, 0x0f70, - 0x0f7c, 0x0f7c, 0x0f89, 0x0f9a, 0x0fa8, 0x0fa8, 0x0fa8, 0x0fa8, - 0x0fb5, 0x0fb5, 0x0fc1, 0x0fcc, 0x0fd3, 0x0fe0, 0x0ffb, 0x1006, - 0x1013, 0x101f, 0x1027, 0x102a, 0x102a, 0x102a, 0x102a, 0x102a, - 0x1034, 0x1034, 0x1039, 0x1039, 0x1044, 0x104e, 0x1058, 0x1058, - 0x1058, 0x1061, 0x1061, 0x1065, 0x106d, 0x1077, 0x1077, 0x1077, - // Entry 240 - 27F - 0x1077, 0x1077, 0x1083, 0x1092, 0x1092, 0x109d, 0x10a3, 0x10ac, - 0x10bf, 0x10c8, 0x10e1, 0x10f4, 0x1112, 0x1129, 0x113c, 0x1152, - 0x1166, 0x1182, 0x1196, 0x11a8, 0x11bc, 0x11d4, 0x11db, 0x11f2, - 0x120b, 0x1211, 0x121e, 0x1231, 0x1240, -} - -// Size: 7876 bytes -var bgLangStr string = "" + - "афарабхазкиавеÑÑ‚ÑкиафриканÑаканамхарÑкиарагонÑкиарабÑкиаÑамÑкиаварÑкиайм" + - "араазербайджанÑкибашкирÑкибеларуÑкибългарÑкибиÑламабамбарабенгалÑкитибе" + - "Ñ‚ÑкибретонÑкибоÑненÑкикаталонÑкичеченÑкичаморокорÑиканÑкикриичешкицърко" + - "вно ÑлавÑнÑкичувашкиуелÑкидатÑкинемÑкидивехидзонхаевегръцкианглийÑкиеÑп" + - "ерантоиÑпанÑкиеÑтонÑкибаÑкиперÑийÑкифулафинÑкифиджийÑкифарьорÑкифренÑки" + - "фризийÑкиирландÑкишотландÑки галÑкигалиÑийÑкигуаранигуджаратиманкÑкихау" + - "заивритхиндихири мотухърватÑкихаитÑнÑкиунгарÑкиарменÑкихерероинтерлингв" + - "аиндонезийÑкиокÑиденталигбоÑъчуанÑки иинупиакидоиÑландÑкииталианÑкиинук" + - "титутÑпонÑкиÑванÑкигрузинÑкиконгоанÑкикикуюкванÑмаказахÑкигренландÑкикх" + - "мерÑкиканнадакорейÑкиканурикашмирÑкикюрдÑкиКомикорнуолÑкикиргизкилатинÑ" + - "килюкÑембургÑкигандалимбургÑкилингалалаоÑкилитовÑкилуба катангалатвийÑк" + - "ималгашкимаршалеземаорÑкимакедонÑкималаÑламмонголÑкимаратималайÑкималти" + - "йÑкибирманÑкинауруÑеверен ндебеленепалÑкиндонганидерландÑкинорвежки нюн" + - "ошкнорвежки букмолюжен ндебеленавахочинÑнджаокÑитанÑкиоджибваоромоориÑо" + - "ÑетÑкипенджабÑкипалиполÑкипущупортугалÑкикечуаретороманÑкирундирумънÑки" + - "руÑкикинÑруандаÑанкÑкритÑкиÑардинÑкиÑиндхиÑеверноÑаамÑкиÑангоÑинхалÑкиÑ" + - "ловашкиÑловенÑкиÑамоанÑкишонаÑомалийÑкиалбанÑкиÑръбÑкиÑуазиÑеÑутоÑундан" + - "ÑкишведÑкиÑуахилитамилÑкителугутаджикÑкитайÑкитигринÑтуркменÑкитÑванато" + - "нгатурÑкитÑонгататарÑкитаитÑнÑкиуйгурÑкиукраинÑкиурдуузбекÑкивендавиетн" + - "амÑкиволапюквалонÑкиволофкÑоÑаидишйорубазуангкитайÑкизулуÑкиачинÑкиакол" + - "иадангмеадигеафрихилиагемайнуакадÑкиалеутÑкиюжноалтайÑкиÑтароанглийÑкиа" + - "нгикаарамейÑкимапучеарапахоаравакаÑуаÑтурÑкиавадибалучибалинейÑкибаÑабе" + - "ÑбембабенабожпурибиколÑкибиниÑикÑикабраджбодобурÑÑ‚ÑкибугинÑкибиленÑкика" + - "ддокарибÑкиатÑамÑебуаночигачибчачагатайчуукмарийÑкижаргон чинуукчокточи" + - "ипувÑкичерокичейенÑкикюрдÑки (Ñорани)коптÑкикримÑкотатарÑкикашубÑкидако" + - "Ñ‚ÑкидаргватаитаделауерÑлейвидогрибдинкаджермадогридолнолужишкидуалаÑред" + - "новековен холандÑкидиоладиулаембуефикегипетÑкиекажукеламитÑкиÑредновеко" + - "вен английÑкиевондофангфилипинÑкифонÑредновековен френÑкиÑтарофренÑкиÑе" + - "верен фризÑкиизточен фризÑкифриулианÑкигагагаузкигайогбаÑгиизгилбертÑки" + - "Ñредновековен немÑкиÑтаровиÑоконемÑкигондигоронталоготичеÑкигребодревно" + - "гръцкишвейцарÑки немÑкигуÑиигвичинхайдахавайÑкихилигайнонхитÑкихмонггор" + - "нолужишкихупаибанилокоингушетÑкилоджбаннгомбамачамееврейÑко-перÑийÑкиев" + - "рейÑко-арабÑкикаракалпашкикабилÑкикачинÑкижжикамбакавикабардиантуапмако" + - "ндекабовердианÑкикорокхаÑикотÑкикойра чииникаленджинкимбундукоми-пермÑц" + - "киконканикоÑраенкпелекарачай-балкарÑкикарелÑкикурукшамбалабафиÑкумикÑки" + - "кутенайладинолангилахндаламбалезгинÑкилакотамонголозилуба-лулуалуиÑеньо" + - "лундалуолушаилуÑмадурÑкимагахимайтхилимакаÑармандингомаÑайÑкимокшаманда" + - "рмендемерумориÑиенÑредновековен ирландÑкимакуа метометамикмакминангбаум" + - "анчжурÑкиманипуримохоукмоÑимундангмногоезичникрикмирандийÑкимарвариерзи" + - "анеаполитанÑкинамадолноÑакÑонÑкиневарÑкиниаÑниуеанкваÑионогаиÑтаронорве" + - "жÑкинкоÑеверен ÑотонуерклаÑичеÑки невариниамвезинианколенуоронзимаоÑедж" + - "иотоманÑки турÑкипангаÑинанпехлевийÑкипампангапапиаментупалауанÑтаропер" + - "ÑийÑкифиникийÑкипохнпеианпрованÑалÑкикичераджаÑтанÑкирапа нуирапотонган" + - "ромбоциганÑки езикарумънÑкирваÑандвеÑкутÑкиÑамаританÑки арамейÑкиÑамбур" + - "уÑаÑакÑанталиÑангуÑицилианÑкишотландÑкиÑенаÑелкупкойраборо ÑениÑтароирл" + - "андÑкиташелхитшанÑидамоюжноÑаамÑкилуле-ÑаамÑкиинари-ÑаамÑкиÑколт-ÑаамÑк" + - "иÑонинкеÑогдийÑкиÑранан тонгоÑерерÑукумаÑуÑушумерÑкикоморÑкиконгоанÑки " + - "ÑуахиликлаÑичеÑки ÑирийÑкиÑирийÑкитемнетеÑотеренотетумтигретивтокелайÑк" + - "иклингонтлингиттамашекнианÑа тонгаток пиÑинцимшианÑкитумбукатувалуанÑки" + - "таÑавактувинÑкицентралноатлаÑки тамазигтудмуртÑкиугаритÑкиумбундуроотва" + - "ивотиквунджоваламоварайуашокалмикÑогаÑоÑпезекантонÑÐºÐ¸Ð·Ð°Ð¿Ð¾Ñ‚ÐµÐºÐ±Ð»Ð¸Ñ Ñимвол" + - "изенагаÑтандартен мароканÑки тамазигтзунибез лингвиÑтично Ñъдържаниезаз" + - "аÑъвременен Ñтандартен арабÑкиавÑтрийÑки немÑкишвейцарÑки горногерманÑк" + - "иавÑтралийÑки английÑкиканадÑки английÑкибританÑки английÑкиамериканÑки" + - " английÑкимекÑиканÑки иÑпанÑкиканадÑки френÑкишвейцарÑки френÑкифламандÑ" + - "кимолдовÑкиÑърбохърватÑкиопроÑтен китайÑкитрадиционен китайÑки" - -// Size: 1234 bytes, 605 elements -var bgLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0008, 0x0016, 0x0026, 0x0036, 0x003e, 0x004e, 0x0060, - 0x006e, 0x007c, 0x008a, 0x0096, 0x00b2, 0x00c4, 0x00d6, 0x00e8, - 0x00f6, 0x0104, 0x0116, 0x0126, 0x0138, 0x014a, 0x015e, 0x016e, - 0x017a, 0x0190, 0x0198, 0x01a2, 0x01c5, 0x01d3, 0x01df, 0x01eb, - 0x01f7, 0x0203, 0x020f, 0x0215, 0x0221, 0x0233, 0x0245, 0x0255, - 0x0265, 0x026f, 0x0281, 0x0289, 0x0295, 0x02a7, 0x02b9, 0x02c7, - 0x02d9, 0x02eb, 0x030c, 0x0320, 0x032e, 0x0340, 0x034e, 0x0358, - 0x0362, 0x036c, 0x037d, 0x038f, 0x03a1, 0x03b1, 0x03c1, 0x03cd, - // Entry 40 - 7F - 0x03e3, 0x03fb, 0x040f, 0x0417, 0x042c, 0x043a, 0x0440, 0x0452, - 0x0466, 0x0478, 0x0486, 0x0494, 0x04a6, 0x04ba, 0x04c4, 0x04d2, - 0x04e2, 0x04f8, 0x0508, 0x0516, 0x0526, 0x0532, 0x0544, 0x0552, - 0x055a, 0x056e, 0x057e, 0x058e, 0x05a8, 0x05b2, 0x05c6, 0x05d4, - 0x05e0, 0x05f0, 0x0607, 0x0619, 0x0629, 0x063b, 0x0649, 0x065d, - 0x066d, 0x067f, 0x068b, 0x069b, 0x06ad, 0x06bf, 0x06c9, 0x06e6, - 0x06f6, 0x0702, 0x071a, 0x0737, 0x0754, 0x076b, 0x0777, 0x0787, - 0x079b, 0x07a9, 0x07b3, 0x07bb, 0x07c9, 0x07dd, 0x07e5, 0x07f1, - // Entry 80 - BF - 0x07f9, 0x080f, 0x0819, 0x0831, 0x083b, 0x084b, 0x0855, 0x0869, - 0x0881, 0x0893, 0x089f, 0x08bb, 0x08c5, 0x08d7, 0x08e7, 0x08f9, - 0x090b, 0x0913, 0x0927, 0x0937, 0x0945, 0x094f, 0x095b, 0x096d, - 0x097b, 0x0989, 0x0999, 0x09a5, 0x09b7, 0x09c3, 0x09d1, 0x09e5, - 0x09f1, 0x09fb, 0x0a07, 0x0a13, 0x0a23, 0x0a35, 0x0a45, 0x0a57, - 0x0a5f, 0x0a6f, 0x0a79, 0x0a8d, 0x0a9b, 0x0aab, 0x0ab5, 0x0abf, - 0x0ac7, 0x0ad3, 0x0add, 0x0aed, 0x0afb, 0x0b09, 0x0b13, 0x0b21, - 0x0b2b, 0x0b2b, 0x0b3b, 0x0b43, 0x0b4b, 0x0b59, 0x0b59, 0x0b69, - // Entry C0 - FF - 0x0b69, 0x0b81, 0x0b9d, 0x0ba9, 0x0bbb, 0x0bc7, 0x0bc7, 0x0bd5, - 0x0bd5, 0x0be1, 0x0be1, 0x0be1, 0x0be7, 0x0be7, 0x0bf7, 0x0bf7, - 0x0c01, 0x0c01, 0x0c0d, 0x0c21, 0x0c21, 0x0c29, 0x0c29, 0x0c29, - 0x0c29, 0x0c2f, 0x0c39, 0x0c39, 0x0c41, 0x0c41, 0x0c41, 0x0c4f, - 0x0c5f, 0x0c67, 0x0c67, 0x0c67, 0x0c75, 0x0c75, 0x0c75, 0x0c7f, - 0x0c7f, 0x0c87, 0x0c87, 0x0c97, 0x0ca7, 0x0ca7, 0x0cb7, 0x0cb7, - 0x0cc1, 0x0cd1, 0x0cd1, 0x0cdb, 0x0ce9, 0x0cf1, 0x0cfb, 0x0d09, - 0x0d11, 0x0d21, 0x0d3a, 0x0d44, 0x0d56, 0x0d62, 0x0d72, 0x0d8f, - // Entry 100 - 13F - 0x0d9d, 0x0d9d, 0x0dbb, 0x0dcb, 0x0ddb, 0x0de7, 0x0df1, 0x0dff, - 0x0e0b, 0x0e17, 0x0e21, 0x0e2d, 0x0e37, 0x0e4f, 0x0e4f, 0x0e59, - 0x0e86, 0x0e90, 0x0e9a, 0x0e9a, 0x0ea2, 0x0eaa, 0x0eaa, 0x0ebc, - 0x0ec8, 0x0eda, 0x0f07, 0x0f07, 0x0f13, 0x0f13, 0x0f1b, 0x0f2f, - 0x0f2f, 0x0f35, 0x0f35, 0x0f5e, 0x0f76, 0x0f76, 0x0f93, 0x0fb0, - 0x0fc6, 0x0fca, 0x0fda, 0x0fda, 0x0fe2, 0x0fea, 0x0fea, 0x0ff2, - 0x1006, 0x1006, 0x102d, 0x104f, 0x104f, 0x1059, 0x106b, 0x107d, - 0x1087, 0x109f, 0x10c0, 0x10c0, 0x10c0, 0x10ca, 0x10d6, 0x10e0, - // Entry 140 - 17F - 0x10e0, 0x10f0, 0x10f0, 0x1104, 0x1110, 0x111a, 0x1132, 0x1132, - 0x113a, 0x1142, 0x1142, 0x114c, 0x1160, 0x1160, 0x1160, 0x116e, - 0x117a, 0x1186, 0x11a9, 0x11c8, 0x11c8, 0x11e0, 0x11f0, 0x1200, - 0x1206, 0x1210, 0x1218, 0x122a, 0x122a, 0x1232, 0x1240, 0x125c, - 0x125c, 0x1264, 0x1264, 0x126e, 0x127a, 0x128f, 0x128f, 0x128f, - 0x128f, 0x12a1, 0x12b1, 0x12ca, 0x12d8, 0x12e6, 0x12f0, 0x1311, - 0x1311, 0x1311, 0x1321, 0x132b, 0x1339, 0x1343, 0x1343, 0x1353, - 0x1361, 0x136d, 0x1377, 0x1383, 0x138d, 0x139f, 0x139f, 0x139f, - // Entry 180 - 1BF - 0x139f, 0x13ab, 0x13ab, 0x13b5, 0x13bd, 0x13bd, 0x13d0, 0x13e0, - 0x13ea, 0x13f0, 0x13fa, 0x1400, 0x1400, 0x1400, 0x1410, 0x1410, - 0x141c, 0x142c, 0x143a, 0x144a, 0x145a, 0x145a, 0x1464, 0x1470, - 0x147a, 0x1482, 0x1492, 0x14bf, 0x14d2, 0x14da, 0x14e6, 0x14f8, - 0x150c, 0x151c, 0x1528, 0x1530, 0x1530, 0x153e, 0x1554, 0x155c, - 0x1572, 0x1580, 0x1580, 0x1580, 0x158a, 0x158a, 0x158a, 0x15a4, - 0x15ac, 0x15c8, 0x15d8, 0x15e0, 0x15ec, 0x15ec, 0x15f8, 0x15f8, - 0x1602, 0x161e, 0x161e, 0x1624, 0x163b, 0x1643, 0x1664, 0x1674, - // Entry 1C0 - 1FF - 0x1684, 0x168e, 0x1698, 0x16a4, 0x16c3, 0x16d7, 0x16ed, 0x16fd, - 0x1711, 0x171f, 0x171f, 0x171f, 0x171f, 0x173b, 0x173b, 0x174f, - 0x174f, 0x174f, 0x1761, 0x1761, 0x1779, 0x1781, 0x1781, 0x1799, - 0x17a8, 0x17bc, 0x17bc, 0x17bc, 0x17c6, 0x17df, 0x17df, 0x17df, - 0x17df, 0x17f1, 0x17f7, 0x1803, 0x1811, 0x183c, 0x184a, 0x1854, - 0x1862, 0x1862, 0x1862, 0x186c, 0x1882, 0x1896, 0x1896, 0x1896, - 0x189e, 0x189e, 0x18aa, 0x18c5, 0x18e1, 0x18e1, 0x18f1, 0x18f7, - 0x18f7, 0x1903, 0x1903, 0x1903, 0x1919, 0x1930, 0x1949, 0x1962, - // Entry 200 - 23F - 0x1970, 0x1982, 0x1999, 0x19a3, 0x19a3, 0x19a3, 0x19af, 0x19b7, - 0x19c7, 0x19d7, 0x19fa, 0x1a1f, 0x1a2f, 0x1a2f, 0x1a2f, 0x1a39, - 0x1a41, 0x1a4d, 0x1a57, 0x1a61, 0x1a67, 0x1a7b, 0x1a7b, 0x1a89, - 0x1a97, 0x1a97, 0x1aa5, 0x1abc, 0x1acd, 0x1acd, 0x1acd, 0x1acd, - 0x1ae1, 0x1ae1, 0x1aef, 0x1b05, 0x1b13, 0x1b23, 0x1b54, 0x1b66, - 0x1b78, 0x1b86, 0x1b8e, 0x1b94, 0x1b94, 0x1b94, 0x1b94, 0x1b94, - 0x1b9e, 0x1b9e, 0x1baa, 0x1baa, 0x1bb6, 0x1bc0, 0x1bc8, 0x1bc8, - 0x1bc8, 0x1bd4, 0x1bd4, 0x1bdc, 0x1be0, 0x1bea, 0x1bea, 0x1bea, - // Entry 240 - 27F - 0x1bea, 0x1bfc, 0x1c0a, 0x1c21, 0x1c21, 0x1c2d, 0x1c67, 0x1c6f, - 0x1ca3, 0x1cab, 0x1ce3, 0x1d04, 0x1d35, 0x1d60, 0x1d83, 0x1da8, - 0x1dd1, 0x1dd1, 0x1dd1, 0x1df8, 0x1e17, 0x1e3a, 0x1e4e, 0x1e4e, - 0x1e4e, 0x1e60, 0x1e7c, 0x1e9d, 0x1ec4, -} - -// Size: 11736 bytes -var bnLangStr string = "" + - "আফারআবখাজিয়ানআবেসà§à¦¤à§€à¦¯à¦¼à¦†à¦«à§à¦°à¦¿à¦•à¦¾à¦¨à§à¦¸à¦†à¦•à¦¾à¦¨à¦†à¦®à¦¹à¦¾à¦°à¦¿à¦•à¦†à¦°à§à¦—োনিজআরবীআসামিআভেরিকআয়মা" + - "রাআজারবাইজানীবাশকিরবেলারà§à¦¶à¦¿à¦¯à¦¼à¦¬à§à¦²à¦—েরিয়বিসলামাবামবারাবাংলাতিবà§à¦¬à¦¤à¦¿à¦¬à§à¦°à§‡à¦Ÿà¦¨" + - "বসনীয়ানকাতালানচেচেনচামোরোকরà§à¦¸à¦¿à¦•à¦¾à¦¨à¦•à§à¦°à¦¿à¦šà§‡à¦•à¦šà¦¾à¦°à§à¦š সà§à¦²à¦¾à¦­à¦¿à¦•à¦šà§à¦¬à¦¾à¦¸à¦“য়েলশডেনিশ" + - "জারà§à¦®à¦¾à¦¨à¦¦à¦¿à¦¬à§‡à¦¹à¦¿à¦œà§‹à¦™à§à¦—াà¦à¦¯à¦¼à§‡à¦—à§à¦°à¦¿à¦•à¦‡à¦‚রেজিà¦à¦¸à§à¦ªà§‡à¦°à¦¾à¦¨à§à¦¤à§‹à¦¸à§à¦ªà§à¦¯à¦¾à¦¨à¦¿à¦¶à¦à¦¸à§à¦¤à§‹à¦¨à§€à¦¯à¦¼à¦¬à¦¾à¦¸à§à¦•à¦«à¦¾" + - "রà§à¦¸à¦¿à¦«à§à¦²à¦¾à¦¹à§à¦«à¦¿à¦¨à¦¿à¦¶à¦«à¦¿à¦œà¦¿à¦“ফেরাউনিফরাসিপশà§à¦šà¦¿à¦® ফà§à¦°à¦¿à¦¸à¦¿à¦¯à¦¼à¦†à¦‡à¦°à¦¿à¦¶à¦¸à§à¦•à¦Ÿà¦¸-গà§à¦¯à§‡à¦²à¦¿à¦•à¦—à§à¦¯à¦¾à¦²" + - "িশিয়গà§à¦¯à¦¼à¦¾à¦°à¦¾à¦¨à¦¿à¦—à§à¦œà¦°à¦¾à¦Ÿà¦¿à¦®à§à¦¯à¦¾à¦™à§à¦•à¦¸à¦¹à¦¾à¦‰à¦¸à¦¾à¦¹à¦¿à¦¬à§à¦°à§à¦¹à¦¿à¦¨à§à¦¦à¦¿à¦¹à¦¿à¦°à¦¿ মোতà§à¦•à§à¦°à§‹à¦¯à¦¼à§‡à¦¶à§€à¦¯à¦¼à¦¹à¦¾à¦‡à¦¤" + - "িয়ানহাঙà§à¦—েরীয়আরà§à¦®à§‡à¦¨à¦¿à¦¯à¦¼à¦¹à§‡à¦°à§‡à¦°à§‹à¦‡à¦¨à§à¦Ÿà¦¾à¦°à¦²à¦¿à¦™à§à¦—à§à¦¯à¦¼à¦¾à¦‡à¦¨à§à¦¦à§‹à¦¨à§‡à¦¶à§€à¦¯à¦¼à¦‡à¦¨à§à¦Ÿà¦¾à¦°à¦²à¦¿à¦™à§à¦—ইগà§" + - "\u200cবোসিচà§à¦¯à¦¼à¦¾à¦¨ য়িইনà§à¦ªà¦¿à¦¯à¦¼à¦¾à¦•à¦‡à¦¡à§‹à¦†à¦‡à¦¸à¦²à§à¦¯à¦¾à¦¨à§à¦¡à§€à¦¯à¦¼à¦‡à¦¤à¦¾à¦²à§€à¦¯à¦¼à¦‡à¦¨à§à¦•à§à¦Ÿà¦¿à¦Ÿà§à¦Ÿà¦œà¦¾à¦ªà¦¾à¦¨à¦¿à¦œà¦¾à¦­à¦¾" + - "নিজরà§à¦œà¦¿à¦¯à¦¼à¦¾à¦¨à¦•à¦™à§à¦—োকিকà§à§à¦‡à¦¯à¦¼à§à¦•à§‹à¦¯à¦¼à¦¾à¦¨à¦¿à¦¯à¦¼à¦¾à¦®à¦¾à¦•à¦¾à¦œà¦¾à¦–কà§à¦¯à¦¾à¦²à¦¾à¦²à§à¦²à¦¿à¦¸à§à¦Ÿà¦–মেরকানà§à¦¨à¦¾à¦¡à¦¼à§€à¦•à§‹" + - "রিয়ানকানà§à¦°à¦¿à¦•à¦¾à¦¶à§à¦®à§€à¦°à§€à¦•à§à¦°à§à¦¦à¦¿à¦•à§‹à¦®à¦¿à¦•à¦°à§à¦£à¦¿à¦¶à¦•à¦¿à¦°à§à¦—িজলাটিনলà§à¦•à§à¦¸à§‡à¦®à¦¬à¦¾à¦°à§à¦—ীয়গানà§à¦¡à¦¾à¦²" + - "িমà§à¦¬à§à¦°à§à¦—িশলিঙà§à¦—ালালাওলিথà§à¦¯à¦¼à§‡à¦¨à§€à¦¯à¦¼à¦²à§à¦¬à¦¾-কাটাঙà§à¦—ালাতà§\u200cভীয়মালাগাসিমার" + - "à§à¦¶à¦¾à¦²à¦¿à¦œà¦®à¦¾à¦“রিমà§à¦¯à¦¾à¦¸à¦¿à¦¡à§‹à¦¨à§€à¦¯à¦¼à¦®à¦¾à¦²à¦¾à¦¯à¦¼à¦¾à¦²à¦¾à¦®à¦®à¦™à§à¦—োলিয়মারাঠিমালয়মলà§à¦Ÿà¦¿à¦¯à¦¼à¦¬à¦°à§à¦®à¦¿à¦¨à¦¾à¦‰à¦°à§" + - "উতà§à¦¤à¦° à¦à¦¨à§à¦¦à§‡à¦¬à¦¿à¦²à¦¿à¦¨à§‡à¦ªà¦¾à¦²à§€à¦à¦¨à§à¦¦à§‹à¦™à§à¦—াডাচনরওয়েজীয়ান নিনরà§à¦¸à§à¦•à¦¨à¦°à¦“য়েজিয়ান বোক" + - "মালদকà§à¦·à¦¿à¦£ à¦à¦¨à¦¡à§‡à¦¬à§‡à¦²à§‡à¦¨à¦¾à¦­à¦¾à¦œà§‹à¦¨à¦¾à¦¯à¦¼à¦¾à¦žà§à¦œà¦¾à¦…কà§à¦¸à¦¿à¦Ÿà¦¾à¦¨à¦“জিবওয়াঅরোমোওড়িয়াওসেটিকপাঞ" + - "à§à¦œà¦¾à¦¬à§€à¦ªà¦¾à¦²à¦¿à¦ªà§‹à¦²à¦¿à¦¶à¦ªà¦¾à¦¶à§à¦¤à§à¦ªà¦°à§à¦¤à§à¦—ীজকেচà§à¦¯à¦¼à¦¾à¦°à§‹à¦®à¦¾à¦¨à§à¦¸à¦°à§à¦¨à§à¦¦à¦¿à¦°à§‹à¦®à¦¾à¦¨à§€à¦¯à¦¼à¦°à§à¦¶à¦•à¦¿à¦¨à¦¯à¦¼à¦¾à¦°à§‹à¦¯à¦¼à¦¾" + - "নà§à¦¡à¦¾à¦¸à¦‚ষà§à¦•à§ƒà¦¤à¦¸à¦¾à¦°à§à¦¡à¦¿à¦¨à¦¿à¦¯à¦¼à¦¾à¦¨à¦¸à¦¿à¦¨à§à¦§à¦¿à¦‰à¦¤à§à¦¤à¦°à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ সামিসাঙà§à¦—োসিংহলীসà§à¦²à§‹à¦­à¦¾à¦•à¦¸à§à¦²à§‹" + - "ভেনীয়সামোয়ানশোনাসোমালীআলবেনীয়সারà§à¦¬à§€à¦¯à¦¼à¦¸à§‹à¦¯à¦¼à¦¾à¦¤à¦¿à¦¦à¦•à§à¦·à¦¿à¦¨ সোথোসà§à¦¦à¦¾à¦¨à§€à¦¸à§à¦‡à¦¡à¦¿à¦¶" + - "সোয়াহিলিতামিলতেলেগà§à¦¤à¦¾à¦œà¦¿à¦•à¦¥à¦¾à¦‡à¦¤à¦¿à¦—রিনিয়াতà§à¦°à§à¦•à¦®à§‡à¦¨à§€à¦¸à§‹à¦¯à¦¼à¦¾à¦¨à¦¾à¦Ÿà§‹à¦™à§à¦—ানতà§à¦°à§à¦•à§€à¦¸à¦™à§" + - "গাতাতারতাহিতিয়ানউইঘà§à¦°à¦‡à¦‰à¦•à§à¦°à§‡à¦¨à§€à¦¯à¦¼à¦‰à¦°à§à¦¦à§à¦‰à¦œà¦¬à§‡à¦•à§€à¦¯à¦¼à¦­à§‡à¦¨à§à¦¡à¦¾à¦­à¦¿à¦¯à¦¼à§‡à¦¤à¦¨à¦¾à¦®à§€à¦­à§‹à¦²à¦¾à¦ªà§à¦•à¦“য" + - "়ালà§à¦¨à¦‰à¦“লোফজোসায়িদà§à¦¦à¦¿à¦¶à¦‡à¦“রà§à¦¬à¦¾à¦à§à§à¦¯à¦¼à¦¾à¦™à¦šà§€à¦¨à¦¾à¦œà§à¦²à§à¦…à§à¦¯à¦¾à¦šà¦¾à¦‡à¦¨à¦¿à¦œà¦†à¦•à§‹à¦²à¦¿à¦…দাগà§à¦®à§‡à¦†à¦¦à§‡à¦—ে" + - "আফà§à¦°à¦¿à¦¹à¦¿à¦²à¦¿à¦à¦˜à§‡à¦®à¦†à¦‡à¦¨à§à¦†à¦•à§à¦•à¦¾à¦¦à¦¿à¦¯à¦¼à¦¾à¦¨à¦†à¦²à§‡à¦‰à¦¤à¦¦à¦•à§à¦·à¦¿à¦¨ আলতাইপà§à¦°à¦¾à¦šà§€à¦¨ ইংরেজীআঙà§à¦—িকাআরাম" + - "াইকমাপà§à¦šà¦¿à¦†à¦°à¦¾à¦ªà¦¾à¦¹à§‹à¦†à¦°à¦¾à¦“য়াকআসà§à¦†à¦¸à§à¦¤à§à¦°à¦¿à¦¯à¦¼à¦†à¦“য়াধিবেলà§à¦šà§€à¦¬à¦¾à¦²à¦¿à¦¨à§€à¦¯à¦¼à¦¬à¦¾à¦¸à¦¾à¦¬à§‡à¦œà¦¾à¦¬à§‡à¦®à§à¦¬" + - "াবেনাভোজপà§à¦°à¦¿à¦¬à¦¿à¦•à§‹à¦²à¦¬à¦¿à¦¨à¦¿à¦¸à¦¿à¦•à¦¸à¦¿à¦•à¦¾à¦¬à§à¦°à¦¾à¦œà¦¬à¦¡à¦¼à§‹à¦¬à§à¦°à¦¿à¦¯à¦¼à¦¾à¦¤à¦¬à§à¦—িনিবà§à¦²à¦¿à¦¨à¦•à§à¦¯à¦¾à¦¡à§‹à¦•à§à¦¯à¦¾à¦°à¦¿à¦¬à¦†" + - "তà§à¦¸à¦¾à¦®à¦šà§‡à¦¬à§à¦¯à¦¼à¦¾à¦¨à§‹à¦šà¦¿à¦—াচিবচাচাগাতাইচà§à¦•à¦¿à¦®à¦¾à¦°à¦¿à¦šà¦¿à¦¨à§à¦• জারà§à¦—নচকটোওচিপেওয়ানচেরোকী" + - "শাইয়েনসোরানি কà§à¦°à§à¦¦à¦¿à¦¶à¦•à¦ªà¦Ÿà¦¿à¦•à¦•à§à¦°à¦¿à¦®à¦¿à¦¯à¦¼à¦¾à¦¨ তà§à¦°à§à¦•à¦¿à¦•à¦¾à¦¶à§à¦¬à¦¿à¦¯à¦¼à¦¾à¦¨à¦¡à¦¾à¦•à§‹à¦Ÿà¦¾à¦¦à¦¾à¦°à§à¦—ওয়াতা" + - "ইতাডেলাওয়েরসà§à¦²à§à¦¯à¦¾à¦­à¦¦à§‹à¦—à§à¦°à§€à¦¬à¦¡à¦¿à¦‚কাজারà§à¦®à¦¾à¦¡à§‹à¦—রিনিমà§à¦¨à¦¤à¦° সোরà§à¦¬à¦¿à¦¯à¦¼à¦¾à¦¨à¦¦à§à¦¯à¦¼à¦¾à¦²à¦¾à¦®à¦§à§" + - "য ডাচজলা-ফনীডিউলাà¦à¦®à§à¦¬à§à¦à¦«à¦¿à¦•à¦ªà§à¦°à¦¾à¦šà§€à¦¨ মিশরীয়ইকাজà§à¦•à¦à¦²à¦¾à¦®à¦¾à¦‡à¦Ÿà¦®à¦§à§à¦¯ ইংরেজিইওনà§à¦¡" + - "োফà§à¦¯à¦¾à¦™à§à¦—ফিলিপিনোফনমধà§à¦¯ ফরাসিপà§à¦°à¦¾à¦šà§€à¦¨ ফরাসিউতà§à¦¤à¦°à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ ফà§à¦°à¦¿à¦¸à¦¿à¦¯à¦¼à¦¾à¦¨à¦ªà§‚রà§à¦¬" + - " ফà§à¦°à¦¿à¦¸à¦¿à¦¯à¦¼à¦«à§à¦°à¦¿à¦‰à¦²à¦¿à¦¯à¦¼à¦¾à¦¨à¦—াগাগাউজগায়োবায়াগীজগিলবারà§à¦Ÿà¦¿à¦œà¦®à¦§à§à¦¯-উচà§à¦š জারà§à¦®à¦¾à¦¨à¦¿à¦ªà§à¦°" + - "াচীন উচà§à¦š জারà§à¦®à¦¾à¦¨à¦¿à¦—োনà§à¦¡à¦¿à¦—োরোনà§à¦¤à¦¾à¦²à§‹à¦—থিকগà§à¦°à§‡à¦¬à§‹à¦ªà§à¦°à¦¾à¦šà§€à¦¨ গà§à¦°à§€à¦•à¦¸à§à¦‡à¦¸ জারà§à¦®à¦¾à¦¨à¦—" + - "à§à¦¸à§€à¦—ওইচà§â€™à¦‡à¦¨à¦¹à¦¾à¦‡à¦¡à¦¾à¦¹à¦¾à¦“য়াইয়ানহিলিগà§à¦¯à¦¾à¦¯à¦¼à¦¨à§‹à¦¨à¦¹à¦¿à¦Ÿà§à¦Ÿà¦¿à¦Ÿà¦¹à§\u200cমোঙউচà§à¦š সোরà§à¦¬à¦¿à¦¯" + - "়ানহà§à¦ªà¦¾à¦‡à¦¬à¦¾à¦¨à¦‡à¦²à§‹à¦•à§‹à¦‡à¦™à§à¦—à§à¦¶à¦²à§‹à¦œà¦¬à¦¾à¦¨à¦—োমà§à¦¬à¦¾à¦®à¦¾à¦•à¦¾à¦®à§‡à¦œà§à¦¦à§‡à¦“ ফারà§à¦¸à¦¿à¦œà§à¦¦à§‡à¦“ আরবিকারা-কাল" + - "à§à¦ªà¦¾à¦•à¦•à¦¾à¦¬à¦¾à¦‡à¦²à§‡à¦•à¦¾à¦šà¦¿à¦¨à¦…জà§à¦œà§à¦•à¦¾à¦®à§à¦¬à¦¾à¦•à¦¾à¦‰à¦‡à¦•à¦¾à¦¬à¦¾à¦°à§à¦¡à¦¿à¦¯à¦¼à¦¾à¦¨à¦Ÿà¦¾à¦‡à¦¯à¦¼à¦¾à¦ªà¦®à¦¾à¦•à§‹à¦¨à§à¦¦à§‡à¦•à¦¾à¦¬à§à¦­à¦¾à¦°à¦¦à¦¿à¦¯à¦¼à¦¾" + - "নà§à¦•à§‹à¦°à§‹à¦–াশিখোটানিজকোয়রা চীনিকালেনজিনকিমà§à¦¬à§à¦¨à§à¦¦à§à¦•à¦®à¦¿-পারমিআককোঙà§à¦•à¦¾à¦¨à¦¿à¦•à§‹à¦¸à§à¦°" + - "াইনকà§\u200cপেলà§à¦²à§‡à¦•à¦¾à¦°à¦šà§‡-বালà§à¦•à¦¾à¦°à¦•à¦¾à¦°à§‡à¦²à¦¿à¦¯à¦¼à¦¾à¦¨à¦•à§à¦°à§à¦–শামà§à¦¬à¦¾à¦²à¦¾à¦¬à¦¾à¦«à¦¿à¦¯à¦¼à¦¾à¦•à§à¦®à¦¿à¦•à¦•à§à¦Ÿà§‡à¦¨" + - "াইলাডিনোলাঙà§à¦—িলানà§à¦¡à¦¾à¦²à¦¾à¦®à§à¦¬à¦¾à¦²à§‡à¦œà¦˜à¦¿à¦¯à¦¼à¦¾à¦¨à¦²à¦¾à¦•à§‹à¦Ÿà¦¾à¦®à§‹à¦™à§à¦—োলোজিলà§à¦¬à¦¾-লà§à¦²à§à¦¯à¦¼à¦¾à¦²à§à¦‡à¦¸à§‡à¦¨à§‹" + - "লà§à¦¨à§à¦¡à¦¾à¦²à§à¦¯à¦¼à§‹à¦²à§à¦¶à¦¾à¦‡à¦²à§à¦‡à¦¯à¦¼à¦¾à¦®à¦¾à¦¦à§à¦°à§‡à¦¸à§‡à¦®à¦¾à¦—াহিমৈথিলিমà§à¦¯à¦¾à¦•à¦¾à¦¸à¦¾à¦°à¦®à§à¦¯à¦¾à¦¨à§à¦¡à¦¿à¦™à§à¦—োমাসাইমো" + - "কশামà§à¦¯à¦¾à¦£à§à¦¡à¦¾à¦°à¦®à§‡à¦¨à§à¦¡à§‡à¦®à§‡à¦°à§à¦®à¦°à¦¿à¦¸à¦¿à¦¯à¦¼à¦¾à¦¨à¦®à¦§à§à¦¯ আইরিশমাখà§à¦¯à¦¼à¦¾-মেতà§à¦¤à§‹à¦®à§‡à¦Ÿà¦¾à¦®à¦¿à¦•à¦®à§à¦¯à¦¾à¦•à¦®à¦¿à¦¨" + - "াঙà§à¦—à§\u200cকাবাউমাঞà§à¦šà§à¦®à¦£à¦¿à¦ªà§à¦°à§€à¦®à§‹à¦¹à¦¾à¦“কমসিমà§à¦¦à¦¾à¦™à§à¦—বহà§à¦—à§à¦£à¦¿à¦¤à¦• ভাষাসমূহকà§à¦°à¦¿à¦•à¦®à¦¿" + - "রানà§à¦¡à¦¿à¦œà¦®à¦¾à¦°à§‹à¦¯à¦¼à¦¾à¦°à¦¿à¦à¦°à¦œà¦¿à¦¯à¦¼à¦¾à¦¨à§‡à¦¯à¦¼à¦¾à¦ªà§‹à¦²à¦¿à¦Ÿà¦¾à¦¨à¦¨à¦¾à¦®à¦¾à¦¨à¦¿à¦®à§à¦¨ জারà§à¦®à¦¾à¦¨à¦¿à¦¨à§‡à¦“য়ারিনিয়াসনিউ" + - "য়ানকোয়াসিওনোগাইপà§à¦°à¦¾à¦šà§€à¦¨ নরà§à¦¸à¦à¦¨â€™à¦•à§‹à¦‰à¦¤à§à¦¤à¦°à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ সোথোনà§à¦¯à¦¼à¦¾à¦°à¦ªà§à¦°à¦¾à¦šà§€à¦¨ নেওয" + - "়ারীনà§à¦¯à¦¾à¦¯à¦¼à¦¾à¦®à¦“য়েজিনà§à¦¯à¦¾à¦¯à¦¼à¦¾à¦™à§à¦•à§‹à¦²à§‡à¦¨à§à¦¯à§‹à¦°à§‹à¦à¦¨à§.জিমাওসেজঅটোমান তà§à¦°à§à¦•à¦¿à¦ªà¦¾à¦™à§à¦—াসি" + - "নানপাহà§à¦²à¦¾à¦­à¦¿à¦ªà¦¾à¦®à§à¦ªà¦¾à¦™à§à¦—াপাপিয়ামেনà§à¦Ÿà§‹à¦ªà¦¾à¦²à¦¾à¦¯à¦¼à§à¦¯à¦¼à¦¾à¦¨à¦ªà§à¦°à¦¾à¦šà§€à¦¨ ফারà§à¦¸à¦¿à¦«à§‹à¦¨à¦¿à¦¶à§€à¦¯à¦¼à¦¾à¦¨à¦ª" + - "োহà§à¦¨à¦ªà§‡à¦‡à¦¯à¦¼à¦¾à¦¨à¦ªà§à¦°à¦¾à¦šà§€à¦¨ পà§à¦°à§‹à¦­à§‡à¦¨à¦¸à¦¾à¦²à¦•à¦¿â€˜à¦šà§‡à¦°à¦¾à¦œà¦¸à§à¦¥à¦¾à¦¨à§€à¦°à¦¾à¦ªà¦¾à¦¨à§à¦‡à¦°à¦¾à¦°à§‹à¦Ÿà§‹à¦‚গানরমà§à¦¬à§‹à¦°à§‹à¦®à¦¾à¦¨" + - "িআরমেনিয়ানরাওয়াসà§à¦¯à¦¾à¦¨à§à¦¡à¦¾à¦“য়েইয়াকà§à¦Ÿà¦¸à¦¾à¦®à¦¾à¦°à¦¿à¦Ÿà¦¾à¦¨ আরামিকসামবà§à¦°à§à¦¸à¦¾à¦¸à¦¾à¦•à¦¸à¦¾à¦à¦“তা" + - "লিসাঙà§à¦—à§à¦¸à¦¿à¦¸à¦¿à¦²à¦¿à¦¯à¦¼à¦¾à¦¨à¦¸à§à¦•à¦Ÿà¦¸à¦¸à§‡à¦¨à¦¾à¦¸à§‡à¦²à§à¦•à§à¦ªà¦•à§‹à¦¯à¦¼à¦°à¦¾à¦¬à§‡à¦¨à§‹ সেনà§à¦¨à§€à¦ªà§à¦°à¦¾à¦šà§€à¦¨ আইরিশতাচেলহ" + - "িতশানসিডামোদকà§à¦·à¦¿à¦£à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ সামিলà§à¦²à§‡ সামিইনারি সামিসà§à¦•à§‹à¦²à§à¦Ÿ সামিসোনিঙà§à¦•à§‡à¦¸" + - "োগডিয়ানসà§à¦°à¦¾à¦¨à¦¾à¦¨ টোঙà§à¦—োসেরেরসà§à¦•à§à¦®à¦¾à¦¸à§à¦¸à§à¦¸à§à¦®à§‡à¦°à§€à¦¯à¦¼à¦•à¦™à§à¦—ো সোয়াহিলিপà§à¦°à¦¾à¦šà§€à¦¨ সি" + - "রিওসিরিয়াকটাইমà§à¦¨à§‡à¦¤à§‡à¦¸à§‹à¦¤à§‡à¦°à§‡à¦¨à§‹à¦¤à§‡à¦¤à§à¦®à¦Ÿà¦¾à¦‡à¦—à§à¦°à§‡à¦Ÿà¦¿à¦­à¦Ÿà§‹à¦•à§‡à¦²à¦¾à¦‰à¦•à§à¦²à¦¿à¦™à§à¦—নতà§à¦²à¦¿à¦™à§à¦—িটতাম" + - "াশেকনায়াসা টোঙà§à¦—াটোক পিসিনসিমশিয়ানতà§à¦®à§à¦¬à§à¦•à¦¾à¦Ÿà§à¦­à¦¾à¦²à§à¦¤à¦¾à¦¸à¦¾à¦“য়াকটà§à¦­à¦¿à¦¨à¦¿à¦¯à¦¼à¦¾à¦¨à¦¸" + - "েনà§à¦Ÿà§à¦°à¦¾à¦² আটলাস তামাজিগাতউডমà§à¦°à§à¦Ÿà¦‰à¦—ারিটিকউমà§à¦¬à§à¦¨à§à¦¦à§à¦®à§‚লভাইভোটিকভà§à¦žà§à¦œà§‹à¦“য়াল" + - "ামোওয়ারেওয়াশোকালà§à¦®à¦‡à¦•à¦¸à§‹à¦—াইয়াওইয়াপেসেজাপোটেকচিতà§à¦° ভাষাজেনাগাআদরà§à¦¶ মর" + - "কà§à¦•à§‹à¦¨ তামাজিগাতজà§à¦¨à¦¿à¦­à¦¾à¦·à¦¾à¦­à¦¿à¦¤à§à¦¤à¦¿à¦• বিষয়বসà§à¦¤à§ নেইজাজাআধà§à¦¨à¦¿à¦• আদরà§à¦¶ আরবীঅসà§à¦Ÿ" + - "à§à¦°à¦¿à¦¯à¦¼à¦¾à¦¨ জারমানসà§à¦‡à¦¸ উচà§à¦š জারà§à¦®à¦¾à¦¨à¦¿à¦…সà§à¦Ÿà§à¦°à§‡à¦²à§€à¦¯à¦¼ ইংরেজিকানাডীয় ইংরেজিবà§à¦°à¦¿à¦Ÿ" + - "িশ ইংরেজিআমেরিকার ইংরেজিলà§à¦¯à¦¾à¦Ÿà¦¿à¦¨ আমেরিকান সà§à¦ªà§à¦¯à¦¾à¦¨à¦¿à¦¶à¦‡à¦‰à¦°à§‹à¦ªà§€à¦¯à¦¼ সà§à¦ªà§à¦¯à¦¾à¦¨à¦¿à¦¶à¦®à§" + - "যাকà§à¦¸à¦¿à¦•à¦¾à¦¨ সà§à¦ªà§à¦¯à¦¾à¦¨à¦¿à¦¶à¦•à§à¦¯à¦¾à¦¨à¦¾à¦¡à¦¿à¦¯à¦¼à¦¾à¦¨ ফরাসীসà§à¦‡à¦¸ ফরাসিফà§à¦²à§‡à¦®à¦¿à¦¶à¦¬à§à¦°à¦¾à¦œà¦¿à¦²à§‡à¦° পরà§à¦¤à§à¦—" + - "ীজইউরোপের পরà§à¦¤à§à¦—ীজমলদাভিয়সারà§à¦¬à§‹-কà§à¦°à§‹à¦¯à¦¼à§‡à¦¶à¦¿à¦¯à¦¼à¦¸à¦°à¦²à§€à¦•à§ƒà¦¤ চীনাà¦à¦¤à¦¿à¦¹à§à¦¯à¦¬à¦¾à¦¹à¦¿ চীন" + - "া" - -// Size: 1234 bytes, 605 elements -var bnLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000c, 0x002a, 0x0045, 0x0063, 0x006f, 0x0084, 0x009c, - 0x00a8, 0x00b7, 0x00c9, 0x00de, 0x00ff, 0x0111, 0x012f, 0x014a, - 0x015f, 0x0174, 0x0183, 0x0198, 0x01aa, 0x01c2, 0x01d7, 0x01e6, - 0x01f8, 0x0210, 0x021c, 0x0225, 0x024a, 0x0259, 0x026b, 0x027a, - 0x028f, 0x02a1, 0x02b3, 0x02bf, 0x02ce, 0x02e0, 0x0301, 0x031c, - 0x0337, 0x0346, 0x0358, 0x036a, 0x0379, 0x0388, 0x039d, 0x03ac, - 0x03d7, 0x03e6, 0x040b, 0x0429, 0x0444, 0x0459, 0x0471, 0x0480, - 0x0492, 0x04a4, 0x04bd, 0x04de, 0x04f9, 0x0517, 0x0532, 0x0544, - // Entry 40 - 7F - 0x0571, 0x0592, 0x05b3, 0x05c5, 0x05e7, 0x0602, 0x060b, 0x0632, - 0x0647, 0x0665, 0x0677, 0x0689, 0x06a4, 0x06b3, 0x06ce, 0x06f2, - 0x0701, 0x0728, 0x0734, 0x074f, 0x0767, 0x0779, 0x0791, 0x07a3, - 0x07af, 0x07c1, 0x07d6, 0x07e5, 0x0812, 0x0824, 0x0845, 0x085d, - 0x0866, 0x0887, 0x08ac, 0x08c7, 0x08df, 0x08fa, 0x0909, 0x092d, - 0x094b, 0x0966, 0x0978, 0x0987, 0x099c, 0x09ab, 0x09ba, 0x09e5, - 0x09f7, 0x0a12, 0x0a1b, 0x0a58, 0x0a8f, 0x0aba, 0x0acc, 0x0ae7, - 0x0aff, 0x0b17, 0x0b26, 0x0b3b, 0x0b4d, 0x0b65, 0x0b71, 0x0b80, - // Entry 80 - BF - 0x0b92, 0x0baa, 0x0bbf, 0x0bd4, 0x0be6, 0x0bfe, 0x0c07, 0x0c34, - 0x0c49, 0x0c6d, 0x0c7f, 0x0cb3, 0x0cc5, 0x0cd7, 0x0cec, 0x0d0a, - 0x0d22, 0x0d2e, 0x0d40, 0x0d58, 0x0d70, 0x0d85, 0x0da4, 0x0db6, - 0x0dc8, 0x0de3, 0x0df2, 0x0e04, 0x0e13, 0x0e1c, 0x0e3a, 0x0e55, - 0x0e6a, 0x0e7f, 0x0e91, 0x0ea0, 0x0eaf, 0x0ecd, 0x0edc, 0x0efa, - 0x0f09, 0x0f21, 0x0f33, 0x0f51, 0x0f66, 0x0f7b, 0x0f8a, 0x0f96, - 0x0fae, 0x0fc0, 0x0fd5, 0x0fe1, 0x0fed, 0x100b, 0x101a, 0x102f, - 0x103e, 0x103e, 0x1059, 0x1065, 0x1071, 0x1092, 0x1092, 0x10a1, - // Entry C0 - FF - 0x10a1, 0x10c3, 0x10eb, 0x1100, 0x1115, 0x1127, 0x1127, 0x113c, - 0x113c, 0x1154, 0x1154, 0x1154, 0x115d, 0x115d, 0x1178, 0x1178, - 0x118d, 0x118d, 0x119f, 0x11b7, 0x11b7, 0x11c3, 0x11c3, 0x11c3, - 0x11c3, 0x11cf, 0x11e1, 0x11e1, 0x11ed, 0x11ed, 0x11ed, 0x1202, - 0x1211, 0x121d, 0x121d, 0x121d, 0x1232, 0x1232, 0x1232, 0x1241, - 0x1241, 0x124d, 0x124d, 0x1265, 0x1277, 0x1277, 0x1286, 0x1286, - 0x1298, 0x12ad, 0x12ad, 0x12bf, 0x12da, 0x12e6, 0x12f5, 0x130a, - 0x1316, 0x1322, 0x1344, 0x1353, 0x136e, 0x1380, 0x1395, 0x13bd, - // Entry 100 - 13F - 0x13cc, 0x13cc, 0x13fd, 0x141b, 0x142d, 0x1448, 0x1457, 0x1472, - 0x1487, 0x149c, 0x14ab, 0x14bd, 0x14cc, 0x1500, 0x1500, 0x1515, - 0x152b, 0x153e, 0x154d, 0x154d, 0x155c, 0x1568, 0x1568, 0x1593, - 0x15a5, 0x15ba, 0x15d9, 0x15d9, 0x15eb, 0x15eb, 0x1600, 0x1618, - 0x1618, 0x161e, 0x161e, 0x163a, 0x165f, 0x165f, 0x16a5, 0x16cd, - 0x16ee, 0x16f4, 0x1706, 0x1706, 0x1715, 0x1724, 0x1724, 0x172d, - 0x174b, 0x174b, 0x177d, 0x17b8, 0x17b8, 0x17ca, 0x17e8, 0x17f4, - 0x1806, 0x182b, 0x184d, 0x184d, 0x184d, 0x1859, 0x1871, 0x1880, - // Entry 140 - 17F - 0x1880, 0x18a1, 0x18a1, 0x18c8, 0x18dd, 0x18ef, 0x191a, 0x191a, - 0x1926, 0x1932, 0x1932, 0x1941, 0x1953, 0x1953, 0x1953, 0x1965, - 0x1977, 0x1989, 0x19ab, 0x19c7, 0x19c7, 0x19e9, 0x19fe, 0x1a0d, - 0x1a1c, 0x1a2e, 0x1a3a, 0x1a5e, 0x1a5e, 0x1a73, 0x1a8b, 0x1ab5, - 0x1ab5, 0x1ac1, 0x1ac1, 0x1acd, 0x1ae2, 0x1b01, 0x1b01, 0x1b01, - 0x1b01, 0x1b19, 0x1b37, 0x1b56, 0x1b6e, 0x1b86, 0x1ba1, 0x1bc6, - 0x1bc6, 0x1bc6, 0x1be4, 0x1bf3, 0x1c0b, 0x1c20, 0x1c20, 0x1c2f, - 0x1c44, 0x1c56, 0x1c68, 0x1c7a, 0x1c8c, 0x1ca7, 0x1ca7, 0x1ca7, - // Entry 180 - 1BF - 0x1ca7, 0x1cb9, 0x1cb9, 0x1ccb, 0x1cd7, 0x1cd7, 0x1cf9, 0x1d0e, - 0x1d20, 0x1d2f, 0x1d3e, 0x1d50, 0x1d50, 0x1d50, 0x1d68, 0x1d68, - 0x1d7a, 0x1d8c, 0x1da7, 0x1dcb, 0x1dda, 0x1dda, 0x1de9, 0x1e04, - 0x1e16, 0x1e22, 0x1e3d, 0x1e59, 0x1e81, 0x1e8d, 0x1ea5, 0x1ecf, - 0x1ee1, 0x1ef6, 0x1f08, 0x1f11, 0x1f11, 0x1f26, 0x1f5a, 0x1f69, - 0x1f84, 0x1f9f, 0x1f9f, 0x1f9f, 0x1fb4, 0x1fb4, 0x1fb4, 0x1fd8, - 0x1fe4, 0x200c, 0x2024, 0x2036, 0x204b, 0x204b, 0x2063, 0x2063, - 0x2072, 0x2094, 0x2094, 0x20a3, 0x20d7, 0x20e9, 0x2117, 0x2141, - // Entry 1C0 - 1FF - 0x2168, 0x217a, 0x2190, 0x219c, 0x21c1, 0x21e2, 0x21fa, 0x2218, - 0x223f, 0x2260, 0x2260, 0x2260, 0x2260, 0x2288, 0x2288, 0x22a6, - 0x22a6, 0x22a6, 0x22ca, 0x22ca, 0x22fe, 0x230d, 0x230d, 0x2328, - 0x233d, 0x235b, 0x235b, 0x235b, 0x236a, 0x237c, 0x237c, 0x237c, - 0x237c, 0x239a, 0x23ac, 0x23d0, 0x23e5, 0x2413, 0x2428, 0x2437, - 0x244f, 0x244f, 0x244f, 0x2461, 0x247f, 0x248e, 0x248e, 0x248e, - 0x249a, 0x249a, 0x24af, 0x24e0, 0x2505, 0x2505, 0x251d, 0x2526, - 0x2526, 0x2538, 0x2538, 0x2538, 0x256f, 0x2588, 0x25a4, 0x25c6, - // Entry 200 - 23F - 0x25de, 0x25f9, 0x2621, 0x2630, 0x2630, 0x2630, 0x2642, 0x264e, - 0x2666, 0x2666, 0x2691, 0x26b6, 0x26ce, 0x26ce, 0x26ce, 0x26e3, - 0x26ef, 0x2701, 0x2710, 0x2725, 0x272e, 0x2743, 0x2743, 0x275b, - 0x2776, 0x2776, 0x278b, 0x27b3, 0x27cc, 0x27cc, 0x27cc, 0x27cc, - 0x27e7, 0x27e7, 0x27ff, 0x2811, 0x282c, 0x284a, 0x2891, 0x28a6, - 0x28be, 0x28d9, 0x28e2, 0x28eb, 0x28eb, 0x28eb, 0x28eb, 0x28eb, - 0x28fa, 0x28fa, 0x290c, 0x290c, 0x2924, 0x2936, 0x2948, 0x2948, - 0x2948, 0x295d, 0x295d, 0x2969, 0x2978, 0x2990, 0x2990, 0x2990, - // Entry 240 - 27F - 0x2990, 0x2990, 0x29a5, 0x29c1, 0x29c1, 0x29d3, 0x2a14, 0x2a20, - 0x2a6a, 0x2a76, 0x2aa5, 0x2ad9, 0x2b0b, 0x2b3f, 0x2b6a, 0x2b92, - 0x2bbd, 0x2c07, 0x2c3b, 0x2c78, 0x2cac, 0x2cc8, 0x2cdd, 0x2d11, - 0x2d3f, 0x2d57, 0x2d8b, 0x2dad, 0x2dd8, -} - -// Size: 4000 bytes -var caLangStr string = "" + - "àfarabkhazavèsticafrikaansàkanamhàricaragonèsàrabassamèsàvaraimaraazerba" + - "idjanèsbaixkirbielorúsbúlgarbislamabambarabengalítibetàbretóbosniàcatalà" + - "txetxèchamorrocorscreetxeceslau eclesiàstictxuvaixgal·lèsdanèsalemanydiv" + - "ehidzongkaewegrecanglèsesperantoespanyolestoniàbascpersafulfinèsfijiàfer" + - "oèsfrancèsfrisó orientalirlandèsgaèlic escocèsgallecguaranígujaratimanxh" + - "aussahebreuhindihiri motucroathaitiàhongarèsarmenihererointerlinguaindon" + - "esiinterlingueigboyi sichuaninupiakidoislandèsitaliàinuktitutjaponèsjava" + - "nèsgeorgiàkongokikuiukuanyamakazakhgrenlandèskhmerkannadacoreàkanuricaix" + - "mirikurdkomicòrnickirguísllatíluxemburguèsgandalimburguèslingalalaosiàli" + - "tuàluba katangaletómalgaixmarshallèsmaorimacedonimalaiàlammongolmarathim" + - "alaimaltèsbirmànauruàndebele septentrionalnepalèsndonganeerlandèsnoruec " + - "nynorsknoruec bokmÃ¥lndebele meridionalnavahonyanjaoccitàojibwaoromooriya" + - "ossetpanjabipalipolonèspaixtuportuguèsquítxuaretoromànicrundiromanèsrusr" + - "uandèssànscritsardsindhisami septentrionalsangosingalèseslovaceslovèsamo" + - "àshonasomalialbanèsserbisiswatisotho meridionalsundanèssuecsuahilitàmil" + - "telugutadjiktailandèstigrinyaturcmantswanatongalèsturctsongatàtartahitià" + - "uigurucraïnèsurdúuzbekvendavietnamitavolapükvalówòlofxosajiddischiorubaz" + - "huangxinèszuluatjehacoliadangmeadiguéafrihiliaghemainuaccadialeutaaltaic" + - " meridionalanglès anticangikaarameuaraucàarapahoarauacpareasturiàawadhib" + - "alutxibalinèsbasabamunghomalabejabembabenabafutbhojpuribicolbinikomblack" + - "footbrajbodoakooseburiatbuguisekibilinmedumbacaddocaribcayugaatsamcebuàc" + - "higatxibtxatxagataichuukmaripidgin chinookchoctawchipewyancherokeexeienn" + - "ekurd soranicoptetàtar de Crimeacaixubidakotadarguàtaitadelawareslaveydo" + - "gribdinkazarmadogribaix sòrabdoualaneerlandès mitjàdiolajuladazagaembuef" + - "ikegipci anticekajukelamitaanglès mitjàewondofangfilipífonfrancès mitjàf" + - "rancès anticfrisó septentrionalfrisó occidentalfriülàgagagaúsgayogbayagu" + - "eezgilbertèsalt alemany mitjàalt alemany anticgondigorontalogòticgrebogr" + - "ec anticalemany suísgusígwichinhaidahawaiàhiligainonhititahmongalt sòrab" + - "hupaibanibibioilocàingúixlojbanngombamachamejudeopersajudeoàrabkarakalpa" + - "kcabilenckatxinjjukambakawikabardíkanembutyapmakondecrioll capverdiàkoro" + - "khasikhotanèskoyra chiinikakokalenjinkimbundukomi-permiackonkanikosraeàk" + - "pellekaratxaicareliàkurukhshambalabafiacologniankúmikkutenailadílangipan" + - "jabi occidentallambalesguiàlakotamongoloziluba-lulualuisenyolundaluomizo" + - "luyiamadurèsmafamagahimaithilimakassarmandingamassaimabamordovià moksama" + - "ndarmendemerumauriciàgaèlic irlandès mitjàmakhuwa-mettometa’micmacminang" + - "kabaumanxúmanipurímohawkmorémundangllengües vàriescreekmirandèsmarwarimy" + - "enemordovià erzanapolitànamabaix alemanynewariniasniueàbissiongiemboonno" + - "gainòrdic anticn’Kosotho septentrionalnuernewari clàssicnyamwesinyankole" + - "nyoronzemaosageturc otomàpangasipahlavipampangàpapiamentopalauàpersa ant" + - "icfeniciponapeàprovençal anticquitxérajasthanirapanuirarotongàromboroman" + - "íaromanèsrwosandaweiacutarameu samaritàsamburusasaksantalingambaysangus" + - "iciliàescocèssenecasenaselkupsonghai orientalirlandès antictaixelhitxanà" + - "rab txadiàsidamosami meridionalsami lulesami d’Inarisami skoltsoninkesog" + - "diàsrananserersahosukumasusúsumericomoriàsuahili del Congosiríac clàssic" + - "siríactemnetesoterenatetuntigretivtokelauèsklingoniàtlingittamazighttong" + - "atok pisintarokotsimshiàtumbukatuvaluàtasawaqtuviniàamazic del Marroc ce" + - "ntraludmurtugaríticumbunduarrelvaivòticvunjowalserametowaray-waraywashoc" + - "almucsogayaoyapeàyangbenyembacantonèszapotecasímbols Blisszenagaamazic e" + - "stàndard marroquízunisense contingut lingüísticzazaàrab estàndard modern" + - "alemany austríacalt alemany suísanglès australiàanglès canadencanglès br" + - "itànicanglès americàespanyol hispanoamericàespanyol europeuespanyol de M" + - "èxicfrancès canadencfrancès suísflamencportuguès del Brasilportuguès de" + - " Portugalmoldauserbocroatxinès simplificatxinès tradicional" - -// Size: 1234 bytes, 605 elements -var caLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0005, 0x000b, 0x0013, 0x001c, 0x0021, 0x0029, 0x0032, - 0x0037, 0x003f, 0x0044, 0x004a, 0x0058, 0x005f, 0x0068, 0x006f, - 0x0076, 0x007d, 0x0085, 0x008c, 0x0092, 0x0099, 0x00a0, 0x00a7, - 0x00af, 0x00b3, 0x00b7, 0x00bb, 0x00cd, 0x00d4, 0x00dd, 0x00e3, - 0x00ea, 0x00f0, 0x00f7, 0x00fa, 0x00fe, 0x0105, 0x010e, 0x0116, - 0x011e, 0x0122, 0x0127, 0x012a, 0x0130, 0x0136, 0x013d, 0x0145, - 0x0154, 0x015d, 0x016d, 0x0173, 0x017b, 0x0183, 0x0187, 0x018d, - 0x0193, 0x0198, 0x01a1, 0x01a6, 0x01ad, 0x01b6, 0x01bc, 0x01c2, - // Entry 40 - 7F - 0x01cd, 0x01d5, 0x01e0, 0x01e4, 0x01ee, 0x01f5, 0x01f8, 0x0201, - 0x0208, 0x0211, 0x0219, 0x0221, 0x0229, 0x022e, 0x0234, 0x023c, - 0x0242, 0x024d, 0x0252, 0x0259, 0x025f, 0x0265, 0x026d, 0x0271, - 0x0275, 0x027c, 0x0284, 0x028a, 0x0297, 0x029c, 0x02a7, 0x02ae, - 0x02b5, 0x02bb, 0x02c7, 0x02cc, 0x02d3, 0x02de, 0x02e3, 0x02eb, - 0x02f5, 0x02fb, 0x0302, 0x0307, 0x030e, 0x0314, 0x031b, 0x0330, - 0x0338, 0x033e, 0x0349, 0x0357, 0x0365, 0x0377, 0x037d, 0x0383, - 0x038a, 0x0390, 0x0395, 0x039a, 0x039f, 0x03a6, 0x03aa, 0x03b2, - // Entry 80 - BF - 0x03b8, 0x03c2, 0x03ca, 0x03d6, 0x03db, 0x03e3, 0x03e6, 0x03ee, - 0x03f7, 0x03fb, 0x0401, 0x0413, 0x0418, 0x0421, 0x0428, 0x042f, - 0x0435, 0x043a, 0x0440, 0x0448, 0x044d, 0x0454, 0x0464, 0x046d, - 0x0471, 0x0478, 0x047e, 0x0484, 0x048a, 0x0494, 0x049c, 0x04a3, - 0x04a9, 0x04b2, 0x04b6, 0x04bc, 0x04c2, 0x04ca, 0x04cf, 0x04d9, - 0x04de, 0x04e3, 0x04e8, 0x04f2, 0x04fa, 0x04ff, 0x0505, 0x0509, - 0x0511, 0x0517, 0x051d, 0x0523, 0x0527, 0x052c, 0x0531, 0x0538, - 0x053f, 0x053f, 0x0547, 0x054c, 0x0550, 0x0556, 0x0556, 0x055c, - // Entry C0 - FF - 0x055c, 0x056d, 0x057a, 0x0580, 0x0586, 0x058d, 0x058d, 0x0594, - 0x0594, 0x059a, 0x059a, 0x059a, 0x059e, 0x059e, 0x05a6, 0x05a6, - 0x05ac, 0x05ac, 0x05b3, 0x05bb, 0x05bb, 0x05bf, 0x05c4, 0x05c4, - 0x05cb, 0x05cf, 0x05d4, 0x05d4, 0x05d8, 0x05dd, 0x05dd, 0x05e5, - 0x05ea, 0x05ee, 0x05ee, 0x05f1, 0x05fa, 0x05fa, 0x05fa, 0x05fe, - 0x05fe, 0x0602, 0x0608, 0x060e, 0x0613, 0x0617, 0x061c, 0x0623, - 0x0628, 0x062d, 0x0633, 0x0638, 0x063e, 0x0643, 0x064a, 0x0652, - 0x0657, 0x065b, 0x0669, 0x0670, 0x0679, 0x0681, 0x0688, 0x0693, - // Entry 100 - 13F - 0x0698, 0x0698, 0x06a8, 0x06af, 0x06b5, 0x06bc, 0x06c1, 0x06c9, - 0x06cf, 0x06d5, 0x06da, 0x06df, 0x06e4, 0x06ef, 0x06ef, 0x06f5, - 0x0707, 0x070c, 0x0710, 0x0716, 0x071a, 0x071e, 0x071e, 0x072a, - 0x0730, 0x0737, 0x0745, 0x0745, 0x074b, 0x074b, 0x074f, 0x0756, - 0x0756, 0x0759, 0x0759, 0x0768, 0x0776, 0x0776, 0x078a, 0x079b, - 0x07a3, 0x07a5, 0x07ac, 0x07ac, 0x07b0, 0x07b5, 0x07b5, 0x07ba, - 0x07c4, 0x07c4, 0x07d6, 0x07e7, 0x07e7, 0x07ec, 0x07f5, 0x07fb, - 0x0800, 0x080a, 0x0817, 0x0817, 0x0817, 0x081c, 0x0823, 0x0828, - // Entry 140 - 17F - 0x0828, 0x082f, 0x082f, 0x0839, 0x083f, 0x0844, 0x084e, 0x084e, - 0x0852, 0x0856, 0x085c, 0x0862, 0x0869, 0x0869, 0x0869, 0x086f, - 0x0875, 0x087c, 0x0886, 0x0890, 0x0890, 0x089a, 0x08a2, 0x08a8, - 0x08ab, 0x08b0, 0x08b4, 0x08bc, 0x08c3, 0x08c7, 0x08ce, 0x08df, - 0x08df, 0x08e3, 0x08e3, 0x08e8, 0x08f1, 0x08fd, 0x08fd, 0x08fd, - 0x0901, 0x0909, 0x0911, 0x091d, 0x0924, 0x092c, 0x0932, 0x093a, - 0x093a, 0x093a, 0x0942, 0x0948, 0x0950, 0x0955, 0x095e, 0x0964, - 0x096b, 0x0970, 0x0975, 0x0987, 0x098c, 0x0994, 0x0994, 0x0994, - // Entry 180 - 1BF - 0x0994, 0x099a, 0x099a, 0x099f, 0x09a3, 0x09a3, 0x09ad, 0x09b5, - 0x09ba, 0x09bd, 0x09c1, 0x09c6, 0x09c6, 0x09c6, 0x09ce, 0x09d2, - 0x09d8, 0x09e0, 0x09e8, 0x09f0, 0x09f6, 0x09fa, 0x0a09, 0x0a0f, - 0x0a14, 0x0a18, 0x0a21, 0x0a39, 0x0a46, 0x0a4d, 0x0a53, 0x0a5e, - 0x0a64, 0x0a6d, 0x0a73, 0x0a78, 0x0a78, 0x0a7f, 0x0a90, 0x0a95, - 0x0a9e, 0x0aa5, 0x0aa5, 0x0aaa, 0x0ab8, 0x0ab8, 0x0ab8, 0x0ac1, - 0x0ac5, 0x0ad1, 0x0ad7, 0x0adb, 0x0ae1, 0x0ae1, 0x0ae7, 0x0af0, - 0x0af5, 0x0b02, 0x0b02, 0x0b08, 0x0b1b, 0x0b1f, 0x0b2e, 0x0b36, - // Entry 1C0 - 1FF - 0x0b3e, 0x0b43, 0x0b48, 0x0b4d, 0x0b58, 0x0b5f, 0x0b66, 0x0b6f, - 0x0b79, 0x0b80, 0x0b80, 0x0b80, 0x0b80, 0x0b8b, 0x0b8b, 0x0b91, - 0x0b91, 0x0b91, 0x0b99, 0x0b99, 0x0ba9, 0x0bb0, 0x0bb0, 0x0bba, - 0x0bc1, 0x0bcb, 0x0bcb, 0x0bcb, 0x0bd0, 0x0bd7, 0x0bd7, 0x0bd7, - 0x0bd7, 0x0be0, 0x0be3, 0x0bea, 0x0bef, 0x0bff, 0x0c06, 0x0c0b, - 0x0c12, 0x0c12, 0x0c19, 0x0c1e, 0x0c26, 0x0c2e, 0x0c2e, 0x0c34, - 0x0c38, 0x0c38, 0x0c3e, 0x0c4e, 0x0c5d, 0x0c5d, 0x0c66, 0x0c69, - 0x0c76, 0x0c7c, 0x0c7c, 0x0c7c, 0x0c8b, 0x0c94, 0x0ca2, 0x0cac, - // Entry 200 - 23F - 0x0cb3, 0x0cba, 0x0cc0, 0x0cc5, 0x0cc9, 0x0cc9, 0x0ccf, 0x0cd4, - 0x0cda, 0x0ce2, 0x0cf3, 0x0d03, 0x0d0a, 0x0d0a, 0x0d0a, 0x0d0f, - 0x0d13, 0x0d19, 0x0d1e, 0x0d23, 0x0d26, 0x0d30, 0x0d30, 0x0d3a, - 0x0d41, 0x0d41, 0x0d4a, 0x0d4f, 0x0d58, 0x0d58, 0x0d5e, 0x0d5e, - 0x0d67, 0x0d67, 0x0d6e, 0x0d76, 0x0d7d, 0x0d85, 0x0d9e, 0x0da4, - 0x0dad, 0x0db4, 0x0db9, 0x0dbc, 0x0dbc, 0x0dbc, 0x0dbc, 0x0dbc, - 0x0dc2, 0x0dc2, 0x0dc7, 0x0dcd, 0x0dd2, 0x0ddd, 0x0de2, 0x0de2, - 0x0de2, 0x0de8, 0x0de8, 0x0dec, 0x0def, 0x0df5, 0x0dfc, 0x0e01, - // Entry 240 - 27F - 0x0e01, 0x0e0a, 0x0e12, 0x0e20, 0x0e20, 0x0e26, 0x0e41, 0x0e45, - 0x0e61, 0x0e65, 0x0e7c, 0x0e8d, 0x0e9e, 0x0eb0, 0x0ec0, 0x0ed1, - 0x0ee1, 0x0ef9, 0x0f09, 0x0f1b, 0x0f2c, 0x0f3a, 0x0f41, 0x0f56, - 0x0f6c, 0x0f72, 0x0f7c, 0x0f8e, 0x0fa0, -} - -// Size: 7260 bytes -var csLangStr string = "" + - "afarÅ¡tinaabcházÅ¡tinaavestánÅ¡tinaafrikánÅ¡tinaakanÅ¡tinaamharÅ¡tinaaragonÅ¡ti" + - "naarabÅ¡tinaásámÅ¡tinaavarÅ¡tinaajmarÅ¡tinaázerbájdžánÅ¡tinabaÅ¡kirÅ¡tinabÄ›loru" + - "Å¡tinabulharÅ¡tinabislamÅ¡tinabambarÅ¡tinabengálÅ¡tinatibetÅ¡tinabretonÅ¡tinab" + - "osenÅ¡tinakatalánÅ¡tinaÄeÄenÅ¡tinaÄamorokorsiÄtinakríjÅ¡tinaÄeÅ¡tinastaroslov" + - "Ä›nÅ¡tinaÄuvaÅ¡tinavelÅ¡tinadánÅ¡tinanÄ›mÄinamaledivÅ¡tinadzongkäeweÅ¡tinaÅ™eÄti" + - "naangliÄtinaesperantoÅ¡panÄ›lÅ¡tinaestonÅ¡tinabaskiÄtinaperÅ¡tinafulbÅ¡tinafin" + - "Å¡tinafidžijÅ¡tinafaerÅ¡tinafrancouzÅ¡tinafríštinairÅ¡tinaskotská gaelÅ¡tinag" + - "alicijÅ¡tinaguaranÅ¡tinagudžarátÅ¡tinamanÅ¡tinahauÅ¡tinahebrejÅ¡tinahindÅ¡tinah" + - "iri motuchorvatÅ¡tinahaitÅ¡tinamaÄarÅ¡tinaarménÅ¡tinahererÅ¡tinainterlinguain" + - "donéštinainterlingueigboÅ¡tinas’-Ächuan iinupiakÅ¡tinaidoislandÅ¡tinaitalÅ¡t" + - "inainuktitutÅ¡tinajaponÅ¡tinajavánÅ¡tinagruzínÅ¡tinakonžštinakikujÅ¡tinakuaňa" + - "mÅ¡tinakazaÅ¡tinagrónÅ¡tinakhmérÅ¡tinakannadÅ¡tinakorejÅ¡tinakanurikaÅ¡mírÅ¡tina" + - "kurdÅ¡tinakomijÅ¡tinakornÅ¡tinakyrgyzÅ¡tinalatinalucemburÅ¡tinagandÅ¡tinalimbu" + - "rÅ¡tinalingalÅ¡tinalaoÅ¡tinalitevÅ¡tinalubu-katanžštinalotyÅ¡tinamalgaÅ¡tinama" + - "ršálÅ¡tinamaorÅ¡tinamakedonÅ¡tinamalajálamÅ¡tinamongolÅ¡tinamaráthÅ¡tinamalajÅ¡" + - "tinamaltÅ¡tinabarmÅ¡tinanaurÅ¡tinandebele (Zimbabwe)nepálÅ¡tinandondÅ¡tinaniz" + - "ozemÅ¡tinanorÅ¡tina (nynorsk)norÅ¡tina (bokmÃ¥l)ndebele (Jižní Afrika)navažš" + - "tinaňandžštinaokcitánÅ¡tinaodžibvejÅ¡tinaoromÅ¡tinaurijÅ¡tinaosetÅ¡tinapaňdžá" + - "bÅ¡tinapálípolÅ¡tinapaÅ¡tÅ¡tinaportugalÅ¡tinakeÄuánÅ¡tinarétorománÅ¡tinakirundÅ¡" + - "tinarumunÅ¡tinaruÅ¡tinakiňarwandÅ¡tinasanskrtsardÅ¡tinasindhÅ¡tinasámÅ¡tina (s" + - "everní)sangÅ¡tinasinhálÅ¡tinaslovenÅ¡tinaslovinÅ¡tinasamojÅ¡tinaÅ¡onÅ¡tinasomál" + - "Å¡tinaalbánÅ¡tinasrbÅ¡tinasiswatÅ¡tinasotÅ¡tina (jižní)sundÅ¡tinaÅ¡védÅ¡tinasva" + - "hilÅ¡tinatamilÅ¡tinatelugÅ¡tinatádžiÄtinathajÅ¡tinatigrinijÅ¡tinaturkmenÅ¡tina" + - "setswanÅ¡tinatongánÅ¡tinatureÄtinatsongatatarÅ¡tinatahitÅ¡tinaujgurÅ¡tinaukra" + - "jinÅ¡tinaurdÅ¡tinauzbeÄtinavendavietnamÅ¡tinavolapükvalonÅ¡tinawolofÅ¡tinaxho" + - "Å¡tinajidiÅ¡jorubÅ¡tinaÄuangÅ¡tinaÄínÅ¡tinazuluÅ¡tinaacehÅ¡tinaakolÅ¡tinaadangm" + - "eadygejÅ¡tinaarabÅ¡tina (tuniská)afrihiliaghemainÅ¡tinaakkadÅ¡tinaalabamÅ¡tin" + - "aaleutÅ¡tinaalbánÅ¡tina (Gheg)altajÅ¡tina (jižní)staroangliÄtinaangikaarame" + - "jÅ¡tinaaraukánÅ¡tinaaraonÅ¡tinaarapažštinaarabÅ¡tina (alžírská)arawacké jazy" + - "kyarabÅ¡tina (marocká)arabÅ¡tina (egyptská)asuznaková Å™eÄ (americká)asturÅ¡" + - "tinakotavaawadhÅ¡tinaázerbájdžánÅ¡tina (jižní)balúÄÅ¡tinabalijÅ¡tinabavorÅ¡ti" + - "nabasabamunbatak tobaghomalabedžabembÅ¡tinabatavÅ¡tinabenabafutbadagÅ¡tinab" + - "hojpurÅ¡tinabikolÅ¡tinabinibandžarÅ¡tinakomsiksikabiÅ¡nuprijskomanipurÅ¡tinab" + - "achtijárÅ¡tinabradžštinabrahujÅ¡tinabodoÅ¡tinaakooseburjatÅ¡tinabugiÅ¡tinabul" + - "ublinÅ¡tinamedumbacaddokaribÅ¡tinakajugÅ¡tinaatsamcebuánÅ¡tinakigaÄibÄaÄagat" + - "ajÅ¡tinaÄukÅ¡tinamarijÅ¡tinaÄinuk pidžinÄoktÅ¡tinaÄipevajÅ¡tinaÄerokézÅ¡tinaÄe" + - "jenÅ¡tinakurdÅ¡tina (sorání)koptÅ¡tinakapiznonÅ¡tinatureÄtina (krymská)kaÅ¡ub" + - "Å¡tinadakotÅ¡tinadargÅ¡tinataitadelawarÅ¡tinaslejvÅ¡tina (athabaský jazyk)do" + - "gribdinkÅ¡tinazarmÅ¡tinadogarÅ¡tinadolnolužická srbÅ¡tinakadazandusunÅ¡tinadu" + - "alÅ¡tinaholandÅ¡tina (stÅ™edovÄ›ká)jola-fonyidjuladazagaembuefikÅ¡tinaemilijÅ¡" + - "tinaegyptÅ¡tina staráekajukelamitÅ¡tinaangliÄtina (stÅ™edovÄ›ká)jupikÅ¡tina (" + - "stÅ™edoaljaÅ¡ská)ewondoextremadurÅ¡tinafangfilipínÅ¡tinafinÅ¡tina (tornedalsk" + - "á)fonÅ¡tinafrancouzÅ¡tina (kajunská)francouzÅ¡tina (stÅ™edovÄ›ká)francouzÅ¡ti" + - "na (stará)franko-provensálÅ¡tinafríština (severní)fríština (východní)furl" + - "anÅ¡tinagaÅ¡tinagagauzÅ¡tinaÄínÅ¡tina (dialekty Gan)gayogbajadaríjÅ¡tina (zor" + - "oastrijská)geezkiribatÅ¡tinagilaÄtinahornonÄ›mÄina (stÅ™edovÄ›ká)hornonÄ›mÄin" + - "a (stará)konkánÅ¡tina (Goa)góndÅ¡tinagorontalogótÅ¡tinagrebostaroÅ™eÄtinanÄ›m" + - "Äina (Å výcarsko)wayúuÅ¡tinafrafragusiigwichʼinhaidÅ¡tinaÄínÅ¡tina (dialekt" + - "y Hakka)havajÅ¡tinahindÅ¡tina (Fidži)hiligajnonÅ¡tinachetitÅ¡tinahmongÅ¡tinah" + - "ornolužická srbÅ¡tinaÄínÅ¡tina (dialekty Xiang)hupaibanÅ¡tinaibibioilokánÅ¡t" + - "inainguÅ¡tinaingrijÅ¡tinajamajská kreolÅ¡tinalojbanngombamaÅ¡amejudeoperÅ¡tin" + - "ajudeoarabÅ¡tinajutÅ¡tinakarakalpaÄtinakabylÅ¡tinakaÄijÅ¡tinajjukambÅ¡tinakaw" + - "ikabardinÅ¡tinakanembutyapmakondekapverdÅ¡tinakenyangkorokaingangkhásíchot" + - "ánÅ¡tinakoyra chiinichovarÅ¡tinazazakÅ¡tinakakokalendžinkimbundÅ¡tinakomi-p" + - "ermjaÄtinakonkánÅ¡tinakosrajÅ¡tinakpellekaraÄajevo-balkarÅ¡tinakriokinaraj-" + - "akarelÅ¡tinakuruchÅ¡tinaÅ¡ambalabafiakolínÅ¡tinakumyÄtinakutenajÅ¡tinaladinÅ¡t" + - "inalangilahndÅ¡tinalambÅ¡tinalezginÅ¡tinalingua franca novaligurÅ¡tinalivonÅ¡" + - "tinalakotÅ¡tinalombardÅ¡tinamongÅ¡tinalozÅ¡tinalatgalÅ¡tinaluba-luluaÅ¡tinalui" + - "seňolundÅ¡tinaluoÅ¡tinamizoÅ¡tinaluhjaÄínÅ¡tina (klasická)lazÅ¡tinamadurÅ¡tina" + - "mafamagahijÅ¡tinamaithiliÅ¡tinamakasarÅ¡tinamandingÅ¡tinamasajÅ¡tinamabamokÅ¡a" + - "nÅ¡tinamandarmendemerumauricijská kreolÅ¡tinairÅ¡tina (stÅ™edovÄ›ká)makhuwa-m" + - "eettometa’micmacminangkabaumandžuÅ¡tinamanipurÅ¡tinamohawkÅ¡tinamosimarijÅ¡t" + - "ina (západní)mundangsložené (víceřádkové) jazykykríkÅ¡tinamirandÅ¡tinamárv" + - "árÅ¡tinamentavajÅ¡tinamyeneerzjanÅ¡tinamázandaránÅ¡tinaÄínÅ¡tina (dialekty M" + - "innan)neapolÅ¡tinanamaÅ¡tinadolnonÄ›mÄinanévárÅ¡tinaniasniueÅ¡tinaao (jazyky " + - "Nágálandu)kwasiongiemboonnogajÅ¡tinanorÅ¡tina historickánovialn’kosotÅ¡tina" + - " (severní)nuerÅ¡tinanewarÅ¡tina (klasická)ňamwežštinaňankolÅ¡tinaňorÅ¡tinanz" + - "imaosagetureÄtina (osmanská)pangasinanÅ¡tinapahlavÅ¡tinapapangaupapiamento" + - "palauÅ¡tinapicardÅ¡tinanÄ›mÄina (pensylvánská)nÄ›mÄina (plautdietsch)starope" + - "rÅ¡tinafalÄtinaféniÄtinapiemonÅ¡tinapontÅ¡tinapohnpeiÅ¡tinapruÅ¡tinaprovensál" + - "Å¡tinakiÄékeÄuánÅ¡tina (chimborazo)rádžastánÅ¡tinarapanujÅ¡tinararotongánÅ¡t" + - "inaromaňolÅ¡tinarífÅ¡tinaromboromÅ¡tinarotumanÅ¡tinarusínÅ¡tinarovianÅ¡tinaaru" + - "munÅ¡tinarwasandawÅ¡tinajakutÅ¡tinasamarÅ¡tinasamburusasakÅ¡tinasantálÅ¡tinasa" + - "urášterÅ¡tinangambaysangoÅ¡tinasicilÅ¡tinaskotÅ¡tinasassarÅ¡tinasenecasenaser" + - "iÅ¡tinaselkupÅ¡tinakoyraboro senniirÅ¡tina (stará)žemaitÅ¡tinatachelhitÅ¡anÅ¡t" + - "inaarabÅ¡tina (Äadská)sidamonÄ›mÄina (slezská)selajarÅ¡tinasámÅ¡tina (jižní)" + - "sámÅ¡tina (lulejská)sámÅ¡tina (inarijská)sámÅ¡tina (skoltská)sonikÅ¡tinasogd" + - "Å¡tinasranan tongosererÅ¡tinasahofríština (saterlandská)sukumasususumerÅ¡t" + - "inakomorÅ¡tinasvahilÅ¡tina (Kongo)syrÅ¡tina (klasická)syrÅ¡tinaslezÅ¡tinatulu" + - "Å¡tinatemnetesoterenotetumÅ¡tinatigrejÅ¡tinativÅ¡tinatokelauÅ¡tinacachurÅ¡tin" + - "aklingonÅ¡tinatlingittalyÅ¡tinatamaÅ¡ektonžština (nyasa)tok pisinturojÅ¡tina" + - "tarokotsakonÅ¡tinatsimÅ¡ijské jazykytatÅ¡tinatumbukÅ¡tinatuvalÅ¡tinatasawaqtu" + - "vinÅ¡tinatamazight (stÅ™ední Maroko)udmurtÅ¡tinaugaritÅ¡tinaumbunduneznámý j" + - "azykvaibenátÅ¡tinavepÅ¡tinavlámÅ¡tina (západní)nÄ›mÄina (mohansko-franské di" + - "alekty)votÅ¡tinavõruÅ¡tinavunjonÄ›mÄina (walser)wolajtÅ¡tinawarajÅ¡tinawaÅ¡tin" + - "aÄínÅ¡tina (dialekty Wu)kalmyÄtinamingrelÅ¡tinasogÅ¡tinajaoÅ¡tinajapÅ¡tinajan" + - "gbenÅ¡tinayembanheengatukantonÅ¡tinazapotéÄtinabliss systémzélandÅ¡tinazena" + - "gatamazight (standardní marocký)zunijÅ¡tinažádný jazykový obsahzazaarabÅ¡t" + - "ina (moderní standardní)nÄ›mÄina standardní (Å výcarsko)angliÄtina (USA)Å¡p" + - "anÄ›lÅ¡tina (Evropa)vlámÅ¡tinaportugalÅ¡tina (Evropa)moldavÅ¡tinasrbochorvatÅ¡" + - "tinaÄínÅ¡tina (zjednoduÅ¡ená)" - -// Size: 1232 bytes, 604 elements -var csLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000a, 0x0017, 0x0025, 0x0033, 0x003d, 0x0048, 0x0054, - 0x005e, 0x006a, 0x0074, 0x007f, 0x0094, 0x00a1, 0x00ae, 0x00ba, - 0x00c6, 0x00d2, 0x00df, 0x00ea, 0x00f6, 0x0101, 0x010f, 0x011c, - 0x0123, 0x012e, 0x0139, 0x0142, 0x0154, 0x015f, 0x0168, 0x0172, - 0x017b, 0x0188, 0x0190, 0x0199, 0x01a2, 0x01ad, 0x01b6, 0x01c4, - 0x01cf, 0x01da, 0x01e3, 0x01ed, 0x01f6, 0x0203, 0x020d, 0x021b, - 0x0225, 0x022d, 0x0240, 0x024d, 0x0259, 0x0269, 0x0272, 0x027b, - 0x0287, 0x0291, 0x029a, 0x02a7, 0x02b1, 0x02bd, 0x02c9, 0x02d4, - // Entry 40 - 7F - 0x02df, 0x02ec, 0x02f7, 0x0301, 0x030f, 0x031c, 0x031f, 0x032b, - 0x0335, 0x0344, 0x034f, 0x035b, 0x0368, 0x0373, 0x037e, 0x038b, - 0x0395, 0x03a0, 0x03ac, 0x03b8, 0x03c3, 0x03c9, 0x03d7, 0x03e1, - 0x03ec, 0x03f6, 0x0402, 0x0408, 0x0416, 0x0420, 0x042c, 0x0438, - 0x0441, 0x044c, 0x045e, 0x0468, 0x0473, 0x0481, 0x048b, 0x0498, - 0x04a8, 0x04b4, 0x04c1, 0x04cc, 0x04d6, 0x04e0, 0x04ea, 0x04fc, - 0x0508, 0x0513, 0x0520, 0x0533, 0x0546, 0x055e, 0x056a, 0x0577, - 0x0585, 0x0594, 0x059e, 0x05a8, 0x05b2, 0x05c2, 0x05c8, 0x05d1, - // Entry 80 - BF - 0x05dc, 0x05ea, 0x05f8, 0x0609, 0x0615, 0x0620, 0x0628, 0x0638, - 0x063f, 0x0649, 0x0654, 0x0669, 0x0673, 0x0680, 0x068c, 0x0698, - 0x06a3, 0x06ad, 0x06b9, 0x06c5, 0x06ce, 0x06da, 0x06ed, 0x06f7, - 0x0703, 0x070f, 0x071a, 0x0725, 0x0732, 0x073c, 0x074a, 0x0757, - 0x0764, 0x0771, 0x077b, 0x0781, 0x078c, 0x0797, 0x07a2, 0x07af, - 0x07b8, 0x07c2, 0x07c7, 0x07d4, 0x07dc, 0x07e7, 0x07f2, 0x07fb, - 0x0801, 0x080c, 0x0818, 0x0823, 0x082d, 0x0837, 0x0841, 0x0848, - 0x0854, 0x0869, 0x0871, 0x0876, 0x087f, 0x088a, 0x0896, 0x08a1, - // Entry C0 - FF - 0x08b4, 0x08c9, 0x08d9, 0x08df, 0x08eb, 0x08f9, 0x0904, 0x0911, - 0x0929, 0x0939, 0x094e, 0x0964, 0x0967, 0x0981, 0x098c, 0x0992, - 0x099d, 0x09bc, 0x09c9, 0x09d4, 0x09df, 0x09e3, 0x09e8, 0x09f2, - 0x09f9, 0x09ff, 0x0a09, 0x0a14, 0x0a18, 0x0a1d, 0x0a28, 0x0a35, - 0x0a40, 0x0a44, 0x0a52, 0x0a55, 0x0a5c, 0x0a76, 0x0a86, 0x0a92, - 0x0a9e, 0x0aa8, 0x0aae, 0x0aba, 0x0ac4, 0x0ac8, 0x0ad2, 0x0ad9, - 0x0ade, 0x0ae9, 0x0af4, 0x0af9, 0x0b06, 0x0b0a, 0x0b11, 0x0b1f, - 0x0b29, 0x0b34, 0x0b42, 0x0b4d, 0x0b5b, 0x0b6a, 0x0b76, 0x0b8b, - // Entry 100 - 13F - 0x0b95, 0x0ba3, 0x0bb8, 0x0bc4, 0x0bcf, 0x0bd9, 0x0bde, 0x0beb, - 0x0c09, 0x0c0f, 0x0c19, 0x0c23, 0x0c2e, 0x0c46, 0x0c58, 0x0c62, - 0x0c7e, 0x0c88, 0x0c8d, 0x0c93, 0x0c97, 0x0ca1, 0x0cad, 0x0cbf, - 0x0cc5, 0x0cd1, 0x0cec, 0x0d0b, 0x0d11, 0x0d21, 0x0d25, 0x0d33, - 0x0d4b, 0x0d54, 0x0d6e, 0x0d8c, 0x0da3, 0x0dba, 0x0dcf, 0x0de6, - 0x0df2, 0x0dfa, 0x0e06, 0x0e20, 0x0e24, 0x0e29, 0x0e46, 0x0e4a, - 0x0e57, 0x0e61, 0x0e7f, 0x0e96, 0x0ea9, 0x0eb4, 0x0ebd, 0x0ec7, - 0x0ecc, 0x0eda, 0x0ef1, 0x0efd, 0x0f03, 0x0f08, 0x0f11, 0x0f1b, - // Entry 140 - 17F - 0x0f37, 0x0f42, 0x0f55, 0x0f65, 0x0f71, 0x0f7c, 0x0f94, 0x0fb0, - 0x0fb4, 0x0fbe, 0x0fc4, 0x0fd1, 0x0fdb, 0x0fe7, 0x0ffc, 0x1002, - 0x1008, 0x100f, 0x101d, 0x102c, 0x1035, 0x1044, 0x104f, 0x105b, - 0x105e, 0x1068, 0x106c, 0x107a, 0x1081, 0x1085, 0x108c, 0x1099, - 0x10a0, 0x10a4, 0x10ac, 0x10b3, 0x10c0, 0x10cc, 0x10d8, 0x10e3, - 0x10e7, 0x10f1, 0x10fe, 0x110f, 0x111c, 0x1128, 0x112e, 0x1146, - 0x114a, 0x1153, 0x115e, 0x116a, 0x1172, 0x1177, 0x1183, 0x118d, - 0x119a, 0x11a5, 0x11aa, 0x11b5, 0x11bf, 0x11cb, 0x11dd, 0x11e8, - // Entry 180 - 1BF - 0x11f3, 0x11fe, 0x120b, 0x1215, 0x121e, 0x122a, 0x123a, 0x1242, - 0x124c, 0x1255, 0x125f, 0x1264, 0x127b, 0x1284, 0x128f, 0x1293, - 0x12a0, 0x12ae, 0x12bb, 0x12c8, 0x12d3, 0x12d7, 0x12e4, 0x12ea, - 0x12ef, 0x12f3, 0x130b, 0x1323, 0x1331, 0x1338, 0x133e, 0x1349, - 0x1356, 0x1363, 0x136f, 0x1373, 0x138a, 0x1391, 0x13b3, 0x13be, - 0x13ca, 0x13d8, 0x13e6, 0x13eb, 0x13f7, 0x1409, 0x1426, 0x1432, - 0x143c, 0x144a, 0x1457, 0x145b, 0x1465, 0x147c, 0x1482, 0x148b, - 0x1496, 0x14ab, 0x14b1, 0x14b7, 0x14cb, 0x14d5, 0x14ec, 0x14fa, - // Entry 1C0 - 1FF - 0x1507, 0x1511, 0x1516, 0x151b, 0x1531, 0x1541, 0x154d, 0x1555, - 0x155f, 0x156a, 0x1576, 0x1590, 0x15a8, 0x15b6, 0x15bf, 0x15ca, - 0x15d6, 0x15e0, 0x15ed, 0x15f6, 0x1606, 0x160c, 0x1627, 0x1639, - 0x1646, 0x1657, 0x1665, 0x166f, 0x1674, 0x167d, 0x168a, 0x1696, - 0x16a2, 0x16ae, 0x16b1, 0x16bd, 0x16c8, 0x16d3, 0x16da, 0x16e5, - 0x16f2, 0x1703, 0x170a, 0x1715, 0x1720, 0x172a, 0x1736, 0x173c, - 0x1740, 0x174a, 0x1756, 0x1765, 0x1776, 0x1783, 0x178c, 0x1796, - 0x17ab, 0x17b1, 0x17c5, 0x17d2, 0x17e6, 0x17fc, 0x1813, 0x1829, - // Entry 200 - 23F - 0x1834, 0x183e, 0x184a, 0x1855, 0x1859, 0x1873, 0x1879, 0x187d, - 0x1888, 0x1893, 0x18a7, 0x18bc, 0x18c5, 0x18cf, 0x18d9, 0x18de, - 0x18e2, 0x18e8, 0x18f3, 0x18ff, 0x1908, 0x1915, 0x1921, 0x192e, - 0x1935, 0x193f, 0x1947, 0x195a, 0x1963, 0x196e, 0x1974, 0x1980, - 0x1993, 0x199c, 0x19a8, 0x19b3, 0x19ba, 0x19c5, 0x19e1, 0x19ed, - 0x19f9, 0x1a00, 0x1a0f, 0x1a12, 0x1a1e, 0x1a27, 0x1a3e, 0x1a64, - 0x1a6d, 0x1a78, 0x1a7d, 0x1a8f, 0x1a9b, 0x1aa6, 0x1aae, 0x1aae, - 0x1ac7, 0x1ad2, 0x1adf, 0x1ae8, 0x1af1, 0x1afa, 0x1b07, 0x1b0c, - // Entry 240 - 27F - 0x1b15, 0x1b21, 0x1b2e, 0x1b3b, 0x1b48, 0x1b4e, 0x1b6e, 0x1b79, - 0x1b91, 0x1b95, 0x1bb6, 0x1bb6, 0x1bd9, 0x1bd9, 0x1bd9, 0x1bd9, - 0x1bea, 0x1bea, 0x1c01, 0x1c01, 0x1c01, 0x1c01, 0x1c0c, 0x1c0c, - 0x1c23, 0x1c2f, 0x1c40, 0x1c5c, -} - -// Size: 3966 bytes -var daLangStr string = "" + - "afarabkhasiskavestanafrikaansakanamhariskaragonesiskarabiskassamesiskava" + - "riskaymaraaserbajdsjanskbashkirhviderussiskbulgarskbislamabambarabengali" + - "tibetanskbretonskbosniskcatalansktjetjenskchamorrokorsikanskcreetjekkisk" + - "kirkeslaviskchuvashwalisiskdansktyskdivehidzongkhaewegræskengelskesperan" + - "tospanskestiskbaskiskpersiskfulahfinskfijianskfærøskfranskfrisiskirsksko" + - "tsk gæliskgaliciskguaranigujaratimanxhausahebraiskhindihirimotukroatiskh" + - "aitiskungarskarmenskhererointerlinguaindonesiskinterlingueigbosichuan yi" + - "inupiaqidoislandskitalienskinuktitutjapanskjavanesiskgeorgiskkongokikuyu" + - "kuanyamakasakhiskgrønlandskkhmerkannadakoreanskkanurikashmirikurdiskkomi" + - "corniskkirgisisklatinluxembourgskgandalimburgsklingalalaolitauiskluba-Ka" + - "tangalettiskmalagassiskmarshallesemaorimakedonskmalayalammongolskmarathi" + - "skmalaymaltesiskburmesisknaurunordndebelenepalesiskndongahollandsknynors" + - "knorsk bokmÃ¥lsydndebelenavajonyanjaoccitanskojibwaoromooriyaossetiskpunj" + - "abipalipolskpashtoportugisiskquechuarætoromanskrundirumænskrussiskkinyar" + - "wandasanskritsardinsksindhinordsamisksangosingalesiskslovakiskslovensksa" + - "moanskshonasomaliskalbanskserbiskswatisydsothosundanesisksvenskswahilita" + - "milsktelugutajikthailandsktigrinyaturkmensktswanatongansktyrkisktsongata" + - "tarisktahitianskuyguriskukrainskurduusbekiskvendavietnamesiskvolapykvall" + - "onskwolofxhosajiddischyorubazhuangkinesiskzuluachinesiskacoliadangmeadyg" + - "heafrihiliaghemainuakkadiskaleutisksydaltaiskoldengelskangikaaramæiskara" + - "ukanskarapahoarawakasuasturiskawadhibaluchibalinesiskbasabamunghomalabej" + - "abembabenabafutbhojpuribikolbinikomsiksikabrajbodobakossiburiatiskbugine" + - "siskbulublinmedumbacaddocaribiskcayugaatsamcebuanochigachibchachagataich" + - "uukesemarichinookchoctawchipewyancherokeecheyennesoranikoptiskkrim tyrki" + - "skkasjubiskdakotadargwataitadelawareathapaskiskdogribdinkazarmadogrinede" + - "rsorbiskdualamiddelhollandskjola-fonyidyuladazagakiembuefikoldegyptiskek" + - "ajukelamitiskmiddelengelskewondofangfilippinskfonmiddelfranskoldfranskno" + - "rdfrisiskøstfrisiskfriuliangagagauziskgayogbayageezgilbertesiskmiddelhøj" + - "tyskoldhøjtyskgondigorontalogotiskgrebooldgræskschweizertyskgusiigwichin" + - "haidahawaiianskhiligaynonhittitiskhmongøvresorbiskhupaibanibibioilokoing" + - "ushlojbanngombamachamejødisk-persiskjødisk-arabiskkarakalpakiskkabyliskk" + - "achinjjukambakawikabardiankanembutyapmakondekapverdiskkorokhasikhotanesi" + - "skkoyra-chiinikakokalenjinkimbundukomi-permjakiskkonkanikosraeankpelleka" + - "ratjai-balkarkarelskkurukhshambalabafiakölschkymykkutenajladinolangilahn" + - "dalambalezghianlakotamongoloziluba-Lulualuisenolundaluolushailuyanamadur" + - "esemafamagahimaithilimakasarmandingomasaimabamokshamandarmendemerumorisy" + - "enmiddelirskmakhuwa-meettometamicmacminangkabaumanchumanipurimohawkmossi" + - "mundangflere sprogcreekmirandesiskmarwarimyeneerzyaneapolitansknamaneder" + - "tysknewariniasniueankwasiongiemboonnogaioldislandskn-konordsothonuerklas" + - "sisk newarisknyamwezinyankolenyoro sprognzimaosageosmannisk-tyrkiskpanga" + - "sinanpahlavipampangapapiamentopalauanskoldpersiskfønikiskponapeoldproven" + - "calskquichérajasthanirapanuirarotonganromboromaniarumænskrwasandaweyakut" + - "samaritansksamburusasaksantalingambaysangusicilianskskotsksenecasenaselk" + - "upiskkoyraboro sennioldirsktachelhitshantchadisk-arabisksidamosydsamiskl" + - "ulesamiskenaresamiskskoltesamisksoninkesogdiansksranan tongoserersahosuk" + - "umasususumeriskshimaorecongolesisk swahiliklassisk syrisksyrisktemneteso" + - "terenotetumtigretivitokelauklingontlingittamasheknyasa tongansktok pisin" + - "tarokotsimshisktumbukatuvalutasawaqtuviniancentralmarokkansk tamazightud" + - "murtugaristiskumbundurotvaivotiskvunjowalsertyskwalamowaraywashokalmykso" + - "gayaoyapeseyangbenyembakantonesiskzapotecblissymbolerzenagatamazightzuni" + - "intet sprogligt indholdzazamoderne standardarabiskøstrigsk tyskschweizer" + - "højtyskaustralsk engelskcanadisk engelskbritisk engelskamerikansk engels" + - "klatinamerikansk spanskeuropæisk spanskmexicansk spanskcanadisk fransksc" + - "hweizisk franskflamskbrasiliansk portugisiskeuropæisk portugisiskmoldovi" + - "skserbokroatiskforenklet kinesisktraditionelt kinesisk" - -// Size: 1234 bytes, 605 elements -var daLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000d, 0x0014, 0x001d, 0x0021, 0x0029, 0x0034, - 0x003b, 0x0045, 0x004c, 0x0052, 0x0060, 0x0067, 0x0073, 0x007b, - 0x0082, 0x0089, 0x0090, 0x0099, 0x00a1, 0x00a8, 0x00b1, 0x00ba, - 0x00c2, 0x00cc, 0x00d0, 0x00d8, 0x00e4, 0x00eb, 0x00f3, 0x00f8, - 0x00fc, 0x0102, 0x010a, 0x010d, 0x0113, 0x011a, 0x0123, 0x0129, - 0x012f, 0x0136, 0x013d, 0x0142, 0x0147, 0x014f, 0x0157, 0x015d, - 0x0164, 0x0168, 0x0176, 0x017e, 0x0185, 0x018d, 0x0191, 0x0196, - 0x019e, 0x01a3, 0x01ab, 0x01b3, 0x01ba, 0x01c1, 0x01c8, 0x01ce, - // Entry 40 - 7F - 0x01d9, 0x01e3, 0x01ee, 0x01f2, 0x01fc, 0x0203, 0x0206, 0x020e, - 0x0217, 0x0220, 0x0227, 0x0231, 0x0239, 0x023e, 0x0244, 0x024c, - 0x0255, 0x0260, 0x0265, 0x026c, 0x0274, 0x027a, 0x0282, 0x0289, - 0x028d, 0x0294, 0x029d, 0x02a2, 0x02ae, 0x02b3, 0x02bc, 0x02c3, - 0x02c6, 0x02ce, 0x02da, 0x02e1, 0x02ec, 0x02f7, 0x02fc, 0x0305, - 0x030e, 0x0316, 0x031f, 0x0324, 0x032d, 0x0336, 0x033b, 0x0346, - 0x0350, 0x0356, 0x035f, 0x0366, 0x0373, 0x037d, 0x0383, 0x0389, - 0x0392, 0x0398, 0x039d, 0x03a2, 0x03aa, 0x03b1, 0x03b5, 0x03ba, - // Entry 80 - BF - 0x03c0, 0x03cb, 0x03d2, 0x03de, 0x03e3, 0x03eb, 0x03f2, 0x03fd, - 0x0405, 0x040d, 0x0413, 0x041d, 0x0422, 0x042d, 0x0436, 0x043e, - 0x0446, 0x044b, 0x0453, 0x045a, 0x0461, 0x0466, 0x046e, 0x0479, - 0x047f, 0x0486, 0x048d, 0x0493, 0x0498, 0x04a2, 0x04aa, 0x04b3, - 0x04b9, 0x04c1, 0x04c8, 0x04ce, 0x04d6, 0x04e0, 0x04e8, 0x04f0, - 0x04f4, 0x04fc, 0x0501, 0x050d, 0x0514, 0x051c, 0x0521, 0x0526, - 0x052e, 0x0534, 0x053a, 0x0542, 0x0546, 0x0550, 0x0555, 0x055c, - 0x0562, 0x0562, 0x056a, 0x056f, 0x0573, 0x057b, 0x057b, 0x0583, - // Entry C0 - FF - 0x0583, 0x058d, 0x0597, 0x059d, 0x05a6, 0x05af, 0x05af, 0x05b6, - 0x05b6, 0x05bc, 0x05bc, 0x05bc, 0x05bf, 0x05bf, 0x05c7, 0x05c7, - 0x05cd, 0x05cd, 0x05d4, 0x05de, 0x05de, 0x05e2, 0x05e7, 0x05e7, - 0x05ee, 0x05f2, 0x05f7, 0x05f7, 0x05fb, 0x0600, 0x0600, 0x0608, - 0x060d, 0x0611, 0x0611, 0x0614, 0x061b, 0x061b, 0x061b, 0x061f, - 0x061f, 0x0623, 0x062a, 0x0633, 0x063d, 0x0641, 0x0645, 0x064c, - 0x0651, 0x0659, 0x065f, 0x0664, 0x066b, 0x0670, 0x0677, 0x067f, - 0x0687, 0x068b, 0x0692, 0x0699, 0x06a2, 0x06aa, 0x06b2, 0x06b8, - // Entry 100 - 13F - 0x06bf, 0x06bf, 0x06cb, 0x06d4, 0x06da, 0x06e0, 0x06e5, 0x06ed, - 0x06f8, 0x06fe, 0x0703, 0x0708, 0x070d, 0x0719, 0x0719, 0x071e, - 0x072d, 0x0737, 0x073c, 0x0742, 0x0748, 0x074c, 0x074c, 0x0757, - 0x075d, 0x0766, 0x0773, 0x0773, 0x0779, 0x0779, 0x077d, 0x0787, - 0x0787, 0x078a, 0x078a, 0x0796, 0x079f, 0x079f, 0x07aa, 0x07b5, - 0x07bd, 0x07bf, 0x07c8, 0x07c8, 0x07cc, 0x07d1, 0x07d1, 0x07d5, - 0x07e1, 0x07e1, 0x07ef, 0x07fa, 0x07fa, 0x07ff, 0x0808, 0x080e, - 0x0813, 0x081c, 0x0829, 0x0829, 0x0829, 0x082e, 0x0835, 0x083a, - // Entry 140 - 17F - 0x083a, 0x0844, 0x0844, 0x084e, 0x0857, 0x085c, 0x0868, 0x0868, - 0x086c, 0x0870, 0x0876, 0x087b, 0x0881, 0x0881, 0x0881, 0x0887, - 0x088d, 0x0894, 0x08a3, 0x08b2, 0x08b2, 0x08bf, 0x08c7, 0x08cd, - 0x08d0, 0x08d5, 0x08d9, 0x08e2, 0x08e9, 0x08ed, 0x08f4, 0x08fe, - 0x08fe, 0x0902, 0x0902, 0x0907, 0x0912, 0x091e, 0x091e, 0x091e, - 0x0922, 0x092a, 0x0932, 0x0941, 0x0948, 0x0950, 0x0956, 0x0965, - 0x0965, 0x0965, 0x096c, 0x0972, 0x097a, 0x097f, 0x0986, 0x098b, - 0x0992, 0x0998, 0x099d, 0x09a3, 0x09a8, 0x09b0, 0x09b0, 0x09b0, - // Entry 180 - 1BF - 0x09b0, 0x09b6, 0x09b6, 0x09bb, 0x09bf, 0x09bf, 0x09c9, 0x09d0, - 0x09d5, 0x09d8, 0x09de, 0x09e4, 0x09e4, 0x09e4, 0x09ec, 0x09f0, - 0x09f6, 0x09fe, 0x0a05, 0x0a0d, 0x0a12, 0x0a16, 0x0a1c, 0x0a22, - 0x0a27, 0x0a2b, 0x0a33, 0x0a3d, 0x0a4b, 0x0a4f, 0x0a55, 0x0a60, - 0x0a66, 0x0a6e, 0x0a74, 0x0a79, 0x0a79, 0x0a80, 0x0a8b, 0x0a90, - 0x0a9b, 0x0aa2, 0x0aa2, 0x0aa7, 0x0aac, 0x0aac, 0x0aac, 0x0ab8, - 0x0abc, 0x0ac5, 0x0acb, 0x0acf, 0x0ad5, 0x0ad5, 0x0adb, 0x0ae4, - 0x0ae9, 0x0af4, 0x0af4, 0x0af8, 0x0b01, 0x0b05, 0x0b16, 0x0b1e, - // Entry 1C0 - 1FF - 0x0b26, 0x0b31, 0x0b36, 0x0b3b, 0x0b4c, 0x0b56, 0x0b5d, 0x0b65, - 0x0b6f, 0x0b78, 0x0b78, 0x0b78, 0x0b78, 0x0b82, 0x0b82, 0x0b8b, - 0x0b8b, 0x0b8b, 0x0b91, 0x0b91, 0x0b9f, 0x0ba6, 0x0ba6, 0x0bb0, - 0x0bb7, 0x0bc1, 0x0bc1, 0x0bc1, 0x0bc6, 0x0bcc, 0x0bcc, 0x0bcc, - 0x0bcc, 0x0bd5, 0x0bd8, 0x0bdf, 0x0be4, 0x0bef, 0x0bf6, 0x0bfb, - 0x0c02, 0x0c02, 0x0c09, 0x0c0e, 0x0c18, 0x0c1e, 0x0c1e, 0x0c24, - 0x0c28, 0x0c28, 0x0c31, 0x0c40, 0x0c47, 0x0c47, 0x0c50, 0x0c54, - 0x0c64, 0x0c6a, 0x0c6a, 0x0c6a, 0x0c73, 0x0c7d, 0x0c88, 0x0c94, - // Entry 200 - 23F - 0x0c9b, 0x0ca4, 0x0cb0, 0x0cb5, 0x0cb9, 0x0cb9, 0x0cbf, 0x0cc3, - 0x0ccb, 0x0cd3, 0x0ce6, 0x0cf5, 0x0cfb, 0x0cfb, 0x0cfb, 0x0d00, - 0x0d04, 0x0d0a, 0x0d0f, 0x0d14, 0x0d18, 0x0d1f, 0x0d1f, 0x0d26, - 0x0d2d, 0x0d2d, 0x0d35, 0x0d43, 0x0d4c, 0x0d4c, 0x0d52, 0x0d52, - 0x0d5b, 0x0d5b, 0x0d62, 0x0d68, 0x0d6f, 0x0d77, 0x0d92, 0x0d98, - 0x0da2, 0x0da9, 0x0dac, 0x0daf, 0x0daf, 0x0daf, 0x0daf, 0x0daf, - 0x0db5, 0x0db5, 0x0dba, 0x0dc4, 0x0dca, 0x0dcf, 0x0dd4, 0x0dd4, - 0x0dd4, 0x0dda, 0x0dda, 0x0dde, 0x0de1, 0x0de7, 0x0dee, 0x0df3, - // Entry 240 - 27F - 0x0df3, 0x0dfe, 0x0e05, 0x0e11, 0x0e11, 0x0e17, 0x0e20, 0x0e24, - 0x0e3b, 0x0e3f, 0x0e56, 0x0e64, 0x0e75, 0x0e86, 0x0e96, 0x0ea5, - 0x0eb7, 0x0ecd, 0x0ede, 0x0eee, 0x0efd, 0x0f0e, 0x0f14, 0x0f2b, - 0x0f41, 0x0f4a, 0x0f57, 0x0f69, 0x0f7e, -} - -// Size: 6193 bytes -var deLangStr string = "" + - "AfarAbchasischAvestischAfrikaansAkanAmharischAragonesischArabischAssames" + - "ischAwarischAymaraAserbaidschanischBaschkirischWeißrussischBulgarischBis" + - "lamaBambara-SpracheBengalischTibetischBretonischBosnischKatalanischTsche" + - "tschenischChamorro-SpracheKorsischCreeTschechischKirchenslawischTschuwas" + - "chischWalisischDänischDeutschMaledivischBhutanischEweGriechischEnglischE" + - "sperantoSpanischEstnischBaskischPersischFulFinnischFidschiFäröischFranzö" + - "sischWestfriesischIrischSchottisches GälischGalizischGuaraniGujaratiManx" + - "HausaHebräischHindiHiri-MotuKroatischHaitianischUngarischArmenischHerero" + - "-SpracheInterlinguaIndonesischInterlingueIgboYiInupiakIdo-SpracheIsländi" + - "schItalienischInuktitutJapanischJavanischGeorgischKongolesischKikuyuKwan" + - "yamaKasachischGrönländischKambodschanischKannadaKoreanischKanuri-Sprache" + - "KaschmirischKurdischKomi-SpracheKornischKirgisischLateinLuxemburgischGan" + - "daLimburgischLingalaLaotischLitauischLuba-KatangaLettischMadagassischMar" + - "schallesischMaoriMazedonischMalayalamMongolischMarathiMalaiischMaltesisc" + - "hBirmanischNauruischNord-Ndebele-SpracheNepalesischNdongaNiederländischN" + - "orwegisch NynorskNorwegisch BokmÃ¥lSüd-Ndebele-SpracheNavajoNyanja-Sprach" + - "eOkzitanischOjibwa-SpracheOromoOriyaOssetischPanjabiPaliPolnischPaschtuP" + - "ortugiesischQuechuaRätoromanischRundi-SpracheRumänischRussischRuandischS" + - "anskritSardischSindhiNord-SamischSangoSinghalesischSlowakischSlowenischS" + - "amoanischShonaSomaliAlbanischSerbischSwaziSüd-Sotho-SpracheSundanesischS" + - "chwedischSuaheliTamilischTeluguTadschikischThailändischTigrinjaTurkmenis" + - "chTswana-SpracheTongaischTürkischTsongaTatarischTahitischUigurischUkrain" + - "ischUrduUsbekischVenda-SpracheVietnamesischVolapükWallonischWolofXhosaJi" + - "ddischYorubaZhuangChinesischZuluAceh-SpracheAcholi-SpracheAdangmeAdygeis" + - "chTunesisches ArabischAfrihiliAghemAinu-SpracheAkkadischAlabamaAleutisch" + - "GegischSüd-AltaischAltenglischAngikaAramäischAraukanischAraonaArapaho-Sp" + - "racheAlgerisches ArabischArawak-SpracheMarokkanisches ArabischÄgyptische" + - "s ArabischPareAmerikanische GebärdenspracheAsturianischKotavaAwadhiSüdas" + - "erbaidschanischBelutschischBalinesischBairischBasaa-SpracheBamunBatak To" + - "baGhomalaBedauyeBemba-SpracheBetawiBenaBafutBadagaBhodschpuriBikol-Sprac" + - "heBini-SpracheBanjaresischKomBlackfoot-SpracheBishnupriyaBachtiarischBra" + - "j-BhakhaBrahuiBodoAkooseBurjatischBuginesischBuluBlinMedumbaCaddoKaribis" + - "chCayugaAtsamCebuanoRukigaChibcha-SpracheTschagataischTrukesischTscherem" + - "issischChinookChoctawChipewyanCherokeeCheyenneSoraniKoptischCapiznonKrim" + - "tatarischKaschubischDakota-SpracheDarginischTaitaDelaware-SpracheSlaveDo" + - "gribDinka-SpracheZarmaDogriNiedersorbischZentral-DusunDualaMittelniederl" + - "ändischDiolaDyula-SpracheDazagaEmbuEfikEmilianischÄgyptischEkajukElamis" + - "chMittelenglischZentral-Alaska-YupikEwondoExtremadurischPangwe-SpracheFi" + - "lipinoMeänkieliFon-SpracheCajunMittelfranzösischAltfranzösischFrankoprov" + - "enzalischNordfriesischOstfriesischFriulischGa-SpracheGagausischGanGayoGb" + - "aya-SpracheGabriGeezGilbertesischGilakiMittelhochdeutschAlthochdeutschGo" + - "a-KonkaniGondi-SpracheMongondouGotischGrebo-SpracheAltgriechischSchweize" + - "rdeutschWayúuFarefareGusiiKutchin-SpracheHaida-SpracheHakkaHawaiischFids" + - "chi-HindiHiligaynon-SpracheHethitischMiao-SpracheObersorbischXiangHupaIb" + - "anIbibioIlokano-SpracheInguschischIschorischJamaikanisch-kreolische Spra" + - "cheLojbanNgombaMachameJüdisch-PersischJüdisch-ArabischJütischKarakalpaki" + - "schKabylischKachin-SpracheJjuKambaKawiKabardinischKanembuTyapMakondeKabu" + - "verdianuKenyangKoroKaingangKhasi-SpracheSakischKoyra ChiiniKhowarKirmanj" + - "kiKakoKalenjinKimbundu-SpracheKomi-PermjakischKonkaniKosraeanischKpelle-" + - "SpracheKaratschaiisch-BalkarischKrioKinaray-aKarelischOraon-SpracheShamb" + - "alaBafiaKölschKumükischKutenai-SpracheLadinoLangiLahndaLamba-SpracheLesg" + - "ischLingua Franca NovaLigurischLivischLakotaLombardischMongoRotse-Sprach" + - "eLettgallischLuba-LuluaLuiseno-SpracheLunda-SpracheLuo-SpracheLushai-Spr" + - "acheLuhyaKlassisches ChinesischLasischMaduresischMafaKhottaMaithiliMakas" + - "sarischManding-SpracheMassai-SpracheMabaMokshaMandaresischMende-SpracheM" + - "eruMorisyenMittelirischMakhuwa-MeettoMeta’Micmac-SpracheMinangkabau-Spra" + - "cheMandschurischMeithei-SpracheMohawkMossi-SpracheBergmariMundangMehrspr" + - "achigMuskogee-SpracheMirandesischMarwariMentawaiMyeneErsja-MordwinischMa" + - "sanderanischMin NanNeapolitanischNamaNiederdeutschNewariNias-SpracheNiue" + - "-SpracheAo-NagaKwasioNgiemboonNogaiAltnordischNovialN’KoNord-Sotho-Sprac" + - "heNuerAlt-NewariNyamwezi-SpracheNyankoleNyoroNzimaOsage-SpracheOsmanisch" + - "Pangasinan-SpracheMittelpersischPampanggan-SprachePapiamentoPalauPicardi" + - "schPennsylvaniadeutschPlautdietschAltpersischPfälzischPhönikischPiemonte" + - "sischPontischPonapeanischAltpreußischAltprovenzalischK’iche’Chimborazo H" + - "ochland-QuechuaRajasthaniOsterinsel-SpracheRarotonganischRomagnolTarifit" + - "RomboRomaniRotumanischRussinischRovianaAromunischRwaSandawe-SpracheJakut" + - "ischSamaritanischSamburuSasakSantaliSaurashtraNgambaySanguSizilianischSc" + - "hottischSassarischSenecaSenaSeriSelkupischKoyra SenniAltirischSamogitisc" + - "hTaschelhitSchan-SpracheTschadisch-ArabischSidamoSchlesischSelayarSüd-Sa" + - "mischLule-LappischInari-LappischSkolt-LappischSoninke-SpracheSogdischSra" + - "nanischSerer-SpracheSahoSaterfriesischSukuma-SpracheSusuSumerischKomoris" + - "chKongo-SuaheliAltsyrischSyrischSchlesisch (Polen)TuluTemneTesoTereno-Sp" + - "racheTetum-SpracheTigreTiv-SpracheTokelauanischTsachurischKlingonischTli" + - "ngit-SpracheTalischTamaseqTsonga-SpracheNeumelanesischTuroyoTarokoTsakon" + - "ischTsimshian-SpracheTatischTumbuka-SpracheElliceanischTasawaqTuwinischZ" + - "entralatlas-TamazightUdmurtischUgaritischMbundu-SpracheRootVaiVenetischW" + - "epsischWestflämischMainfränkischWotischVõroVunjoWalser-DialekteWalamo-Sp" + - "racheWarayWasho-SpracheWuKalmückischMingrelischSogaYao-SpracheYapesischY" + - "angbenYembaNheengatuKantonesischZapotekischBliss-SymboleSeeländischZenag" + - "aTamazightZuni-SpracheKeine SprachinhalteZazaModernes HocharabischÖsterr" + - "eichisches DeutschSchweizer HochdeutschAustralisches EnglischKanadisches" + - " EnglischBritisches EnglischAmerikanisches EnglischLateinamerikanisches " + - "SpanischEuropäisches SpanischMexikanisches SpanischKanadisches Französis" + - "chSchweizer FranzösischFlämischBrasilianisches PortugiesischEuropäisches" + - " PortugiesischMoldauischSerbo-KroatischChinesisch (vereinfacht)Chinesisc" + - "h (traditionell)" - -// Size: 1234 bytes, 605 elements -var deLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000e, 0x0017, 0x0020, 0x0024, 0x002d, 0x0039, - 0x0041, 0x004c, 0x0054, 0x005a, 0x006b, 0x0077, 0x0084, 0x008e, - 0x0095, 0x00a4, 0x00ae, 0x00b7, 0x00c1, 0x00c9, 0x00d4, 0x00e3, - 0x00f3, 0x00fb, 0x00ff, 0x010a, 0x0119, 0x0127, 0x0130, 0x0138, - 0x013f, 0x014a, 0x0154, 0x0157, 0x0161, 0x0169, 0x0172, 0x017a, - 0x0182, 0x018a, 0x0192, 0x0195, 0x019d, 0x01a4, 0x01ae, 0x01ba, - 0x01c7, 0x01cd, 0x01e2, 0x01eb, 0x01f2, 0x01fa, 0x01fe, 0x0203, - 0x020d, 0x0212, 0x021b, 0x0224, 0x022f, 0x0238, 0x0241, 0x024f, - // Entry 40 - 7F - 0x025a, 0x0265, 0x0270, 0x0274, 0x0276, 0x027d, 0x0288, 0x0293, - 0x029e, 0x02a7, 0x02b0, 0x02b9, 0x02c2, 0x02ce, 0x02d4, 0x02dc, - 0x02e6, 0x02f4, 0x0303, 0x030a, 0x0314, 0x0322, 0x032e, 0x0336, - 0x0342, 0x034a, 0x0354, 0x035a, 0x0367, 0x036c, 0x0377, 0x037e, - 0x0386, 0x038f, 0x039b, 0x03a3, 0x03af, 0x03be, 0x03c3, 0x03ce, - 0x03d7, 0x03e1, 0x03e8, 0x03f1, 0x03fb, 0x0405, 0x040e, 0x0422, - 0x042d, 0x0433, 0x0442, 0x0454, 0x0466, 0x047a, 0x0480, 0x048e, - 0x0499, 0x04a7, 0x04ac, 0x04b1, 0x04ba, 0x04c1, 0x04c5, 0x04cd, - // Entry 80 - BF - 0x04d4, 0x04e1, 0x04e8, 0x04f6, 0x0503, 0x050d, 0x0515, 0x051e, - 0x0526, 0x052e, 0x0534, 0x0540, 0x0545, 0x0552, 0x055c, 0x0566, - 0x0570, 0x0575, 0x057b, 0x0584, 0x058c, 0x0591, 0x05a3, 0x05af, - 0x05b9, 0x05c0, 0x05c9, 0x05cf, 0x05db, 0x05e8, 0x05f0, 0x05fb, - 0x0609, 0x0612, 0x061b, 0x0621, 0x062a, 0x0633, 0x063c, 0x0646, - 0x064a, 0x0653, 0x0660, 0x066d, 0x0675, 0x067f, 0x0684, 0x0689, - 0x0691, 0x0697, 0x069d, 0x06a7, 0x06ab, 0x06b7, 0x06c5, 0x06cc, - 0x06d5, 0x06e9, 0x06f1, 0x06f6, 0x0702, 0x070b, 0x0712, 0x071b, - // Entry C0 - FF - 0x0722, 0x072f, 0x073a, 0x0740, 0x074a, 0x0755, 0x075b, 0x076a, - 0x077e, 0x078c, 0x07a3, 0x07b8, 0x07bc, 0x07da, 0x07e6, 0x07ec, - 0x07f2, 0x0807, 0x0813, 0x081e, 0x0826, 0x0833, 0x0838, 0x0842, - 0x0849, 0x0850, 0x085d, 0x0863, 0x0867, 0x086c, 0x0872, 0x087d, - 0x088a, 0x0896, 0x08a2, 0x08a5, 0x08b6, 0x08c1, 0x08cd, 0x08d8, - 0x08de, 0x08e2, 0x08e8, 0x08f2, 0x08fd, 0x0901, 0x0905, 0x090c, - 0x0911, 0x091a, 0x0920, 0x0925, 0x092c, 0x0932, 0x0941, 0x094e, - 0x0958, 0x0967, 0x096e, 0x0975, 0x097e, 0x0986, 0x098e, 0x0994, - // Entry 100 - 13F - 0x099c, 0x09a4, 0x09b1, 0x09bc, 0x09ca, 0x09d4, 0x09d9, 0x09e9, - 0x09ee, 0x09f4, 0x0a01, 0x0a06, 0x0a0b, 0x0a19, 0x0a26, 0x0a2b, - 0x0a40, 0x0a45, 0x0a52, 0x0a58, 0x0a5c, 0x0a60, 0x0a6b, 0x0a75, - 0x0a7b, 0x0a83, 0x0a91, 0x0aa5, 0x0aab, 0x0ab9, 0x0ac7, 0x0acf, - 0x0ad9, 0x0ae4, 0x0ae9, 0x0afb, 0x0b0a, 0x0b1d, 0x0b2a, 0x0b36, - 0x0b3f, 0x0b49, 0x0b53, 0x0b56, 0x0b5a, 0x0b67, 0x0b6c, 0x0b70, - 0x0b7d, 0x0b83, 0x0b94, 0x0ba2, 0x0bad, 0x0bba, 0x0bc3, 0x0bca, - 0x0bd7, 0x0be4, 0x0bf4, 0x0bfa, 0x0c02, 0x0c07, 0x0c16, 0x0c23, - // Entry 140 - 17F - 0x0c28, 0x0c31, 0x0c3e, 0x0c50, 0x0c5a, 0x0c66, 0x0c72, 0x0c77, - 0x0c7b, 0x0c7f, 0x0c85, 0x0c94, 0x0c9f, 0x0ca9, 0x0cc8, 0x0cce, - 0x0cd4, 0x0cdb, 0x0cec, 0x0cfd, 0x0d05, 0x0d13, 0x0d1c, 0x0d2a, - 0x0d2d, 0x0d32, 0x0d36, 0x0d42, 0x0d49, 0x0d4d, 0x0d54, 0x0d60, - 0x0d67, 0x0d6b, 0x0d73, 0x0d80, 0x0d87, 0x0d93, 0x0d99, 0x0da2, - 0x0da6, 0x0dae, 0x0dbe, 0x0dce, 0x0dd5, 0x0de1, 0x0def, 0x0e08, - 0x0e0c, 0x0e15, 0x0e1e, 0x0e2b, 0x0e33, 0x0e38, 0x0e3f, 0x0e49, - 0x0e58, 0x0e5e, 0x0e63, 0x0e69, 0x0e76, 0x0e7e, 0x0e90, 0x0e99, - // Entry 180 - 1BF - 0x0ea0, 0x0ea6, 0x0eb1, 0x0eb6, 0x0ec3, 0x0ecf, 0x0ed9, 0x0ee8, - 0x0ef5, 0x0f00, 0x0f0e, 0x0f13, 0x0f29, 0x0f30, 0x0f3b, 0x0f3f, - 0x0f45, 0x0f4d, 0x0f59, 0x0f68, 0x0f76, 0x0f7a, 0x0f80, 0x0f8c, - 0x0f99, 0x0f9d, 0x0fa5, 0x0fb1, 0x0fbf, 0x0fc6, 0x0fd4, 0x0fe7, - 0x0ff4, 0x1003, 0x1009, 0x1016, 0x101e, 0x1025, 0x1031, 0x1041, - 0x104d, 0x1054, 0x105c, 0x1061, 0x1072, 0x1080, 0x1087, 0x1095, - 0x1099, 0x10a6, 0x10ac, 0x10b8, 0x10c4, 0x10cb, 0x10d1, 0x10da, - 0x10df, 0x10ea, 0x10f0, 0x10f6, 0x1108, 0x110c, 0x1116, 0x1126, - // Entry 1C0 - 1FF - 0x112e, 0x1133, 0x1138, 0x1145, 0x114e, 0x1160, 0x116e, 0x1180, - 0x118a, 0x118f, 0x1199, 0x11ac, 0x11b8, 0x11c3, 0x11cd, 0x11d8, - 0x11e5, 0x11ed, 0x11f9, 0x1206, 0x1216, 0x1221, 0x123c, 0x1246, - 0x1258, 0x1266, 0x126e, 0x1275, 0x127a, 0x1280, 0x128b, 0x1295, - 0x129c, 0x12a6, 0x12a9, 0x12b8, 0x12c1, 0x12ce, 0x12d5, 0x12da, - 0x12e1, 0x12eb, 0x12f2, 0x12f7, 0x1303, 0x130d, 0x1317, 0x131d, - 0x1321, 0x1325, 0x132f, 0x133a, 0x1343, 0x134e, 0x1358, 0x1365, - 0x1378, 0x137e, 0x1388, 0x138f, 0x139b, 0x13a8, 0x13b6, 0x13c4, - // Entry 200 - 23F - 0x13d3, 0x13db, 0x13e5, 0x13f2, 0x13f6, 0x1404, 0x1412, 0x1416, - 0x141f, 0x1428, 0x1435, 0x143f, 0x1446, 0x1458, 0x145c, 0x1461, - 0x1465, 0x1473, 0x1480, 0x1485, 0x1490, 0x149d, 0x14a8, 0x14b3, - 0x14c2, 0x14c9, 0x14d0, 0x14de, 0x14ec, 0x14f2, 0x14f8, 0x1502, - 0x1513, 0x151a, 0x1529, 0x1535, 0x153c, 0x1545, 0x155b, 0x1565, - 0x156f, 0x157d, 0x1581, 0x1584, 0x158d, 0x1595, 0x15a2, 0x15b0, - 0x15b7, 0x15bc, 0x15c1, 0x15d0, 0x15de, 0x15e3, 0x15f0, 0x15f0, - 0x15f2, 0x15fe, 0x1609, 0x160d, 0x1618, 0x1621, 0x1628, 0x162d, - // Entry 240 - 27F - 0x1636, 0x1642, 0x164d, 0x165a, 0x1666, 0x166c, 0x1675, 0x1681, - 0x1694, 0x1698, 0x16ad, 0x16c6, 0x16db, 0x16f1, 0x1705, 0x1718, - 0x172f, 0x174c, 0x1762, 0x1778, 0x1790, 0x17a6, 0x17af, 0x17cc, - 0x17e7, 0x17f1, 0x1800, 0x1818, 0x1831, -} - -// Size: 8765 bytes -var elLangStr string = "" + - "ΑφάÏΑμπχαζικάΑβεστάνΑφÏικάανςΑκάνΑμαÏικάΑÏαγκονικάΑÏαβικάΑσαμεζικάΆβαÏικ" + - "ΑϊμάÏαΑζεÏμπαϊτζανικάΜπασκίÏΛευκοÏωσικάΒουλγαÏικάΜπισλάμαΜπαμπάÏαΜπενγκ" + - "άλιΘιβετιανάΒÏετονικάΒοσνιακάΚαταλανικάΤσέτσνιανΚαμόÏÏοΚοÏσικανικάΚÏιΤσ" + - "εχικάΕκκλησιαστικά ΣλαβικάΧουβάςΟυαλικάΔανικάΓεÏμανικάÎτιβέχιÎτζόνγκχαΓ" + - "ιΕλληνικάΑγγλικάΕσπεÏάντοΙσπανικάΕσθονικάΒασκικάΠεÏσικάΦουλάχΦινλανδικά" + - "ΦίτζιΦαÏόεΓαλλικάΔυτικά ΦÏιζιανάΙÏλανδικάΣκωτικά ΚελτικάΓαλικιανάΓκουαÏ" + - "ανίΓκουγιαÏάτιΜανξΧάουσαΕβÏαϊκάΧίντιΧίÏι ΜότουΚÏοατικάΑϊτιανάΟυγγÏικάΑÏ" + - "μενικάΧεÏέÏοΙντεÏλίνγκουαΙνδονησιακάΙντεÏλίνγκουεΊγκμποΣικουάν ΓιΙνουπι" + - "άκΊντοΙσλανδικάΙταλικάΙνουκτιτοÏτΙαπωνικάΙαβανεζικάΓεωÏγιανάΚονγκόΚικοÏ" + - "γιουΚουανιγιάμαΚαζακικάΚαλαάλισουτΚαμποτζιανάΚανάνταΚοÏεατικάΚανοÏÏιΚασ" + - "μίÏιΚουÏδικάΚόμιΚόÏνιςΚυÏγιζικάΛατινικάΛουξεμβουÏγιανάΓκάνταΛιμβουÏγιαν" + - "άΛινγκάλαΛαοθιανάΛιθουανικάΛοÏμπα-ΚατάνγκαΛετονικάΜαλαγάσιΜάÏσαλΜάοÏιΣλ" + - "αβομακεδονικάΜαλαγιαλάμΜογγολικάΜαÏάθιΜαλάιΜαλτεζικάΒιÏμανικάÎαοÏÏουÎτε" + - "μπέλε ΒοÏÏάÎεπάλιÎτόνγκαΟλλανδικάÎοÏβηγικά ÎινόÏσκÎοÏβηγικά ΜποκμάλÎτεμ" + - "πέλε ÎότουÎάβαχοÎιάντζαΟκσιτανικάΟζιβίγουαΟÏόμοΟÏίγιαΟσετικάΠαντζαπικάΠ" + - "άλιΠολωνικάΠάστοΠοÏτογαλικάΚετσοÏαΡομανικάΡοÏντιΡουμανικάΡωσικάΚινιαÏβά" + - "νταΣανσκÏιτικάΣαÏδινικάΣίντιΒόÏεια ΣάμιΣάνγκοΣινχαλεζικάΣλοβακικάΣλοβεν" + - "ικάΣαμόανΣχόναΣομάλιΑλβανικάΣεÏβικάΣουάτιÎότια ΣόθοΣουδανικάΣουηδικάΣου" + - "αχίλιΤαμίλΤελοÏγκουΤατζίκΤαϊλανδικάΤιγκÏίνυαΤουÏκμενικάΤσιγουάναΤονγκαν" + - "ικάΤουÏκικάΤσόνγκαΤατάÏΤαϊτιανάΟυιγουÏικάΟυκÏανικάΟυÏντοÏΟυζμπεκικάΒένδ" + - "αΒιετναμικάΒόλαπικΓουαλοÏνΓουόλοφΖόσαΓίντιςΓιοÏοÏμπαΖουάνγκΚινεζικάΖουλ" + - "οÏΑχινίζΑκολίΑντάνγκμεΑντιγκέαΑφÏιχίλιΑγκέμΑϊνοÏΑκάντιανΑλοÏÏ„Îότια Αλατ" + - "αϊκάΠαλαιά ΑγγλικάΑνγκικάΑÏαμαϊκάΑÏουκάνιανΑÏάπαχοΑÏαγουάκΆσουΑστουÏιαν" + - "άΑγουαντίΜπαλοÏτσιΜπαλινίζΜπάσαΜπαμοÏνΓκομάλαΜπέζαΜπέμπαΜπέναΜπαφοÏτΜπο" + - "ζποÏÏιΜπικόλΜπίνιΚομΣικσίκαΜπÏατζΜπόντοΑκόσιΜπουÏιάτΜπουγκίζΜπουλοÏΜπλι" + - "νΜεντοÏμπαΚάντοΚαÏίμπΚαγιοÏγκαΑτσάμΚεμπουάνοΤσίγκαΤσίμπτσαΤσαγκατάιΤσου" + - "κίζιΜάÏιΙδιωματικά ΣινοÏκΤσοκτάουΤσίπιουανΤσεÏόκιΣεγιένΚουÏδικά ΣοÏάνιΚ" + - "οπτικάΤουÏκικά ΚÏιμαίαςΚασοÏμπιανÎτακόταÎτάÏγκουαΤάιταÎτέλαγουεÏΣλαβικά" + - "ÎτόγκÏιμπÎτίνκαΖάÏμαÎτόγκÏιΓλώσσα Κάτω ΛουσατίαςÎτουάλαΜέσα ΟλλανδικάΤζ" + - "όλα-ΦόνιÎτογιοÏλαÎταζάγκαΈμπουΕφίκΑÏχαία ΑιγυπτιακάΕκατζοÏκΕλαμάιτΜέσα " + - "ΑγγλικάΕγουόντοΦανγκΦιλιππινεζικάΦονΜέσα ΓαλλικάΠαλαιά ΓαλλικάΒόÏεια ΦÏ" + - "ιζιανάΑνατολικά ΦÏιζιανάΦÏιοÏλιανΓκαΓκαγκάουζΓκάγιοΓκμπάγιαΓκιζΓκιλμπεÏ" + - "τίζΜέσα Άνω ΓεÏμανικάΠαλαιά Άνω ΓεÏμανικάΓκόντιΓκοÏοντάλοΓοτθικάΓκÏίμπο" + - "ΑÏχαία ΕλληνικάΕλβετικά ΓεÏμανικάΓκοÏσιΓκουίτσινΧάινταΧαβανεζικάΧιλιγκα" + - "γιόνΧιτίτεΧμονγκΓλώσσα Άνω ΛουσατίαςΧοÏπαΙμπάνΙμπίμπιοΙλόκοΙνγκοÏςΛόζμπ" + - "ανÎγκόμπαΜάχαμεΙουδαϊκά-ΠεÏσικάΙουδαϊκά-ΑÏαβικάΚάÏα-ΚαλπάκΚαμπίλεΚατσίν" + - "ΤζουΚάμπαΚάουιΚαμπαÏντιανάΚανέμπουΤουάπΜακόντεΓλώσσα του ΠÏάσινου ΑκÏωτ" + - "ηÏίουΚόÏοΚάσιΚοτανικάΚόιÏα ΤσίνιΚάκοΚαλεντζίνΚιμποÏντουΚόμι-ΠεÏμιάκΚονκ" + - "άνιΚοσÏαενικάΚπέλεΚαÏατσάι-ΜπαλκάÏΚαÏελιακάΚουÏοÏχΣάμπαλαΜπάφιαΚολωνικά" + - "ΚουμγιοÏκΚουτενάιΛαδίνοΛάνγκιΛάχδαΛάμπαΛαζγκιάνΛακόταΜόνγκοΛόζιΛοÏμπα-Λ" + - "ουλοÏαΛουισένοΛοÏνταΛοÏοΛουσάιΛουχίαΜαντουÏίζΜάφαΜαγκάχιΜαϊτχίλιΜακαζάÏ" + - "ΜαντίνγκοΜασάιΜάμπαΜόκσαΜανδάÏΜέντεΜεÏοÏΜοÏίσιενΜέσα ΙÏλανδικάΜακοÏβα-Îœ" + - "έτοΜετάΜικμάκΜινανγκαμπάουΜαντσοÏΜανιποÏÏιΜοχόκΜόσιΜουντάνγκΠολλαπλές γ" + - "λώσσεςΚÏικΜιÏαντεζικάΜαÏγουάÏιΜιένεΈÏζυαÎαπολιτανικάÎάμαΚάτω ΓεÏμανικάÎ" + - "εγουάÏιÎίαςÎιοÏεανΚβάσιοÎγκιεμποÏνÎογκάιΠαλαιά ÎοÏβηγικάÎ’ΚοΒόÏεια Σόθο" + - "ÎουέÏΚλασικά ÎεουάÏιÎιαμγουέζιÎιανκόλεÎιόÏοÎζίμαΟσάζΟθωμανικά ΤουÏκικάΠ" + - "ανγκασινάνΠαχλάβιΠαμπάνγκαΠαπιαμέντοΠαλάουανΑÏχαία ΠεÏσικάΦοινικικάΠοχπ" + - "έιανΠαλαιά ΠÏοβενσιάλΚισέΡαζασθάνιΡαπανοÏιΡαÏοτονγκάνΡόμποΡομανίΑÏομανι" + - "κάΡουάΣαντάγουεΓιακοÏτΣαμαÏίτικα ΑÏαμαϊκάΣαμποÏÏουΣασάκΣαντάλιÎγκαμπέιΣ" + - "άνγκουΣικελιανάΣκωτικάΣένεκαΣέναΣελκοÏπΚοϊÏαμπόÏο ΣένιΠαλαιά ΙÏλανδικάΤ" + - "ασελχίτΣανΑÏαβικά του ΤσαντΣιντάμοÎότια ΣάμιΛοÏλε ΣάμιΙνάÏι ΣάμιΣκολτ Σ" + - "άμιΣονίνκεΣογκντιένΣÏÎ±Î½Î¬Ï Î¤ÏŒÎ½Î³ÎºÎ¿Î£ÎµÏέÏΣάχοΣουκοÏμαΣοÏσουΣουμεÏικάΚομόÏÏι" + - "αΚονγκό ΣουαχίλιΚλασικά ΣυÏιακάΣυÏιακάΤίμνεΤέσοΤεÏένοΤέτουμΤίγκÏεΤιβΤοκ" + - "ελάουΚλίνγκονΤλίνγκιτΤαμασέκÎιάσα ΤόνγκαΤοκ ΠισίνΤαÏόκοΤσίμσιανΤουμποÏκ" + - "αΤουβαλοÏΤασαβάκΤουβίνιανΤαμαζίτ ΚεντÏÎ¹ÎºÎ¿Ï ÎœÎ±ÏόκοΟυντμοÏÏτΟυγκαÏίτικΟυμ" + - "ποÏντουΡουτΒάιΒότικΒοÏντζοΒάλσεÏΓουάλαμοΓουάÏειΓουασόΚαλμίκΣόγκαΓιάοΓια" + - "πίζΓιανγκμπένΓιέμπαΚαντονέζικαΖάποτεκΣÏμβολα BlissΖενάγκαΤυπικά Ταμαζίγ" + - "κτ ΜαÏόκουΖοÏνιΧωÏίς γλωσσολογικό πεÏιεχόμενοΖάζαΣÏγχÏονα Τυπικά ΑÏαβικ" + - "άΓεÏμανικά ΑυστÏίαςΓεÏμανικά ΕλβετίαςΑγγλικά ΑυστÏαλίαςΑγγλικά ΚαναδάΑγ" + - "γλικά Ηνωμένου ΒασιλείουΑγγλικά ΑμεÏικήςΙσπανικά Λατινικής ΑμεÏικήςΙσπα" + - "νικά ΕυÏώπηςΙσπανικά ΜεξικοÏΓαλλικά ΚαναδάΓαλλικά ΕλβετίαςΦλαμανδικάΠοÏ" + - "τογαλικά Î’ÏαζιλίαςΠοÏτογαλικά ΕυÏώπηςΜολδαβικάΣεÏβοκÏοατικάΑπλοποιημένα" + - " ΚινεζικάΠαÏαδοσιακά Κινεζικά" - -// Size: 1234 bytes, 605 elements -var elLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0008, 0x001a, 0x0028, 0x003a, 0x0042, 0x0050, 0x0064, - 0x0072, 0x0084, 0x0090, 0x009c, 0x00ba, 0x00c8, 0x00de, 0x00f2, - 0x0102, 0x0112, 0x0124, 0x0136, 0x0148, 0x0158, 0x016c, 0x017e, - 0x018c, 0x01a2, 0x01a8, 0x01b6, 0x01df, 0x01eb, 0x01f9, 0x0205, - 0x0217, 0x0225, 0x0237, 0x023b, 0x024b, 0x0259, 0x026b, 0x027b, - 0x028b, 0x0299, 0x02a7, 0x02b3, 0x02c7, 0x02d1, 0x02db, 0x02e9, - 0x0306, 0x0318, 0x0335, 0x0347, 0x0359, 0x036f, 0x0377, 0x0383, - 0x0391, 0x039b, 0x03ae, 0x03be, 0x03cc, 0x03dc, 0x03ec, 0x03f8, - // Entry 40 - 7F - 0x0412, 0x0428, 0x0442, 0x044e, 0x0461, 0x0471, 0x0479, 0x048b, - 0x0499, 0x04af, 0x04bf, 0x04d3, 0x04e5, 0x04f1, 0x0503, 0x0519, - 0x0529, 0x053f, 0x0555, 0x0563, 0x0575, 0x0583, 0x0591, 0x05a1, - 0x05a9, 0x05b5, 0x05c7, 0x05d7, 0x05f5, 0x0601, 0x0619, 0x0629, - 0x0639, 0x064d, 0x066a, 0x067a, 0x068a, 0x0696, 0x06a0, 0x06be, - 0x06d2, 0x06e4, 0x06f0, 0x06fa, 0x070c, 0x071e, 0x072c, 0x0747, - 0x0753, 0x0761, 0x0773, 0x0794, 0x07b5, 0x07d0, 0x07dc, 0x07ea, - 0x07fe, 0x0810, 0x081a, 0x0826, 0x0834, 0x0848, 0x0850, 0x0860, - // Entry 80 - BF - 0x086a, 0x0880, 0x088e, 0x089e, 0x08aa, 0x08bc, 0x08c8, 0x08de, - 0x08f4, 0x0906, 0x0910, 0x0925, 0x0931, 0x0947, 0x0959, 0x096b, - 0x0977, 0x0981, 0x098d, 0x099d, 0x09ab, 0x09b7, 0x09ca, 0x09dc, - 0x09ec, 0x09fc, 0x0a06, 0x0a18, 0x0a24, 0x0a38, 0x0a4a, 0x0a60, - 0x0a72, 0x0a86, 0x0a96, 0x0aa4, 0x0aae, 0x0abe, 0x0ad2, 0x0ae4, - 0x0af2, 0x0b06, 0x0b10, 0x0b24, 0x0b32, 0x0b42, 0x0b50, 0x0b58, - 0x0b64, 0x0b76, 0x0b84, 0x0b94, 0x0ba0, 0x0bac, 0x0bb6, 0x0bc8, - 0x0bd8, 0x0bd8, 0x0be8, 0x0bf2, 0x0bfc, 0x0c0c, 0x0c0c, 0x0c16, - // Entry C0 - FF - 0x0c16, 0x0c31, 0x0c4c, 0x0c5a, 0x0c6a, 0x0c7e, 0x0c7e, 0x0c8c, - 0x0c8c, 0x0c9c, 0x0c9c, 0x0c9c, 0x0ca4, 0x0ca4, 0x0cb8, 0x0cb8, - 0x0cc8, 0x0cc8, 0x0cda, 0x0cea, 0x0cea, 0x0cf4, 0x0d02, 0x0d02, - 0x0d10, 0x0d1a, 0x0d26, 0x0d26, 0x0d30, 0x0d3e, 0x0d3e, 0x0d50, - 0x0d5c, 0x0d66, 0x0d66, 0x0d6c, 0x0d7a, 0x0d7a, 0x0d7a, 0x0d86, - 0x0d86, 0x0d92, 0x0d9c, 0x0dac, 0x0dbc, 0x0dca, 0x0dd4, 0x0de6, - 0x0df0, 0x0dfc, 0x0e0e, 0x0e18, 0x0e2a, 0x0e36, 0x0e46, 0x0e58, - 0x0e68, 0x0e70, 0x0e91, 0x0ea1, 0x0eb3, 0x0ec1, 0x0ecd, 0x0eea, - // Entry 100 - 13F - 0x0ef8, 0x0ef8, 0x0f19, 0x0f2d, 0x0f3b, 0x0f4d, 0x0f57, 0x0f6b, - 0x0f79, 0x0f8b, 0x0f97, 0x0fa1, 0x0faf, 0x0fd7, 0x0fd7, 0x0fe5, - 0x1000, 0x1013, 0x1025, 0x1035, 0x103f, 0x1047, 0x1047, 0x1068, - 0x1078, 0x1086, 0x109d, 0x109d, 0x10ad, 0x10ad, 0x10b7, 0x10d1, - 0x10d1, 0x10d7, 0x10d7, 0x10ee, 0x1109, 0x1109, 0x1126, 0x1149, - 0x115b, 0x1161, 0x1173, 0x1173, 0x117f, 0x118f, 0x118f, 0x1197, - 0x11ad, 0x11ad, 0x11cf, 0x11f5, 0x11f5, 0x1201, 0x1215, 0x1223, - 0x1231, 0x124e, 0x1271, 0x1271, 0x1271, 0x127d, 0x128f, 0x129b, - // Entry 140 - 17F - 0x129b, 0x12af, 0x12af, 0x12c5, 0x12d1, 0x12dd, 0x1303, 0x1303, - 0x130d, 0x1317, 0x1327, 0x1331, 0x133f, 0x133f, 0x133f, 0x134d, - 0x135b, 0x1367, 0x1386, 0x13a5, 0x13a5, 0x13ba, 0x13c8, 0x13d4, - 0x13dc, 0x13e6, 0x13f0, 0x1408, 0x1418, 0x1422, 0x1430, 0x1469, - 0x1469, 0x1471, 0x1471, 0x1479, 0x1489, 0x149e, 0x149e, 0x149e, - 0x14a6, 0x14b8, 0x14cc, 0x14e3, 0x14f1, 0x1505, 0x150f, 0x152e, - 0x152e, 0x152e, 0x1540, 0x154e, 0x155c, 0x1568, 0x1578, 0x158a, - 0x159a, 0x15a6, 0x15b2, 0x15bc, 0x15c6, 0x15d6, 0x15d6, 0x15d6, - // Entry 180 - 1BF - 0x15d6, 0x15e2, 0x15e2, 0x15ee, 0x15f6, 0x15f6, 0x1611, 0x1621, - 0x162d, 0x1635, 0x1641, 0x164d, 0x164d, 0x164d, 0x165f, 0x1667, - 0x1675, 0x1685, 0x1693, 0x16a5, 0x16af, 0x16b9, 0x16c3, 0x16cf, - 0x16d9, 0x16e3, 0x16f3, 0x170e, 0x1725, 0x172d, 0x1739, 0x1753, - 0x1761, 0x1773, 0x177d, 0x1785, 0x1785, 0x1797, 0x17b8, 0x17c0, - 0x17d6, 0x17e8, 0x17e8, 0x17f2, 0x17fc, 0x17fc, 0x17fc, 0x1814, - 0x181c, 0x1837, 0x1847, 0x184f, 0x185d, 0x185d, 0x1869, 0x187d, - 0x1889, 0x18a8, 0x18a8, 0x18b1, 0x18c6, 0x18d0, 0x18ed, 0x1901, - // Entry 1C0 - 1FF - 0x1911, 0x191b, 0x1925, 0x192d, 0x1950, 0x1966, 0x1974, 0x1986, - 0x199a, 0x19aa, 0x19aa, 0x19aa, 0x19aa, 0x19c5, 0x19c5, 0x19d7, - 0x19d7, 0x19d7, 0x19e7, 0x19e7, 0x1a08, 0x1a10, 0x1a10, 0x1a22, - 0x1a32, 0x1a48, 0x1a48, 0x1a48, 0x1a52, 0x1a5e, 0x1a5e, 0x1a5e, - 0x1a5e, 0x1a70, 0x1a78, 0x1a8a, 0x1a98, 0x1abd, 0x1acf, 0x1ad9, - 0x1ae7, 0x1ae7, 0x1af7, 0x1b05, 0x1b17, 0x1b25, 0x1b25, 0x1b31, - 0x1b39, 0x1b39, 0x1b47, 0x1b64, 0x1b83, 0x1b83, 0x1b93, 0x1b99, - 0x1bb9, 0x1bc7, 0x1bc7, 0x1bc7, 0x1bda, 0x1bed, 0x1c00, 0x1c13, - // Entry 200 - 23F - 0x1c21, 0x1c33, 0x1c4c, 0x1c56, 0x1c5e, 0x1c5e, 0x1c6e, 0x1c7a, - 0x1c8c, 0x1c9c, 0x1cb9, 0x1cd6, 0x1ce4, 0x1ce4, 0x1ce4, 0x1cee, - 0x1cf6, 0x1d02, 0x1d0e, 0x1d1a, 0x1d20, 0x1d30, 0x1d30, 0x1d40, - 0x1d50, 0x1d50, 0x1d5e, 0x1d75, 0x1d86, 0x1d86, 0x1d92, 0x1d92, - 0x1da2, 0x1da2, 0x1db4, 0x1dc4, 0x1dd2, 0x1de4, 0x1e12, 0x1e24, - 0x1e38, 0x1e4c, 0x1e54, 0x1e5a, 0x1e5a, 0x1e5a, 0x1e5a, 0x1e5a, - 0x1e64, 0x1e64, 0x1e72, 0x1e7e, 0x1e8e, 0x1e9c, 0x1ea8, 0x1ea8, - 0x1ea8, 0x1eb4, 0x1eb4, 0x1ebe, 0x1ec6, 0x1ed2, 0x1ee6, 0x1ef2, - // Entry 240 - 27F - 0x1ef2, 0x1f08, 0x1f16, 0x1f2a, 0x1f2a, 0x1f38, 0x1f66, 0x1f70, - 0x1faa, 0x1fb2, 0x1fde, 0x2001, 0x2024, 0x2047, 0x2062, 0x2094, - 0x20b3, 0x20e7, 0x2106, 0x2125, 0x2140, 0x215f, 0x2173, 0x219c, - 0x21c1, 0x21d3, 0x21ed, 0x2216, 0x223d, -} - -// Size: 4849 bytes -var enLangStr string = "" + - "AfarAbkhazianAvestanAfrikaansAkanAmharicAragoneseArabicAssameseAvaricAym" + - "araAzerbaijaniBashkirBelarusianBulgarianBislamaBambaraBengaliTibetanBret" + - "onBosnianCatalanChechenChamorroCorsicanCreeCzechChurch SlavicChuvashWels" + - "hDanishGermanDivehiDzongkhaEweGreekEnglishEsperantoSpanishEstonianBasque" + - "PersianFulahFinnishFijianFaroeseFrenchWestern FrisianIrishScottish Gaeli" + - "cGalicianGuaraniGujaratiManxHausaHebrewHindiHiri MotuCroatianHaitianHung" + - "arianArmenianHereroInterlinguaIndonesianInterlingueIgboSichuan YiInupiaq" + - "IdoIcelandicItalianInuktitutJapaneseJavaneseGeorgianKongoKikuyuKuanyamaK" + - "azakhKalaallisutKhmerKannadaKoreanKanuriKashmiriKurdishKomiCornishKyrgyz" + - "LatinLuxembourgishGandaLimburgishLingalaLaoLithuanianLuba-KatangaLatvian" + - "MalagasyMarshalleseMaoriMacedonianMalayalamMongolianMarathiMalayMalteseB" + - "urmeseNauruNorth NdebeleNepaliNdongaDutchNorwegian NynorskNorwegian Bokm" + - "Ã¥lSouth NdebeleNavajoNyanjaOccitanOjibwaOromoOriyaOsseticPunjabiPaliPol" + - "ishPashtoPortugueseQuechuaRomanshRundiRomanianRussianKinyarwandaSanskrit" + - "SardinianSindhiNorthern SamiSangoSinhalaSlovakSlovenianSamoanShonaSomali" + - "AlbanianSerbianSwatiSouthern SothoSundaneseSwedishSwahiliTamilTeluguTaji" + - "kThaiTigrinyaTurkmenTswanaTonganTurkishTsongaTatarTahitianUyghurUkrainia" + - "nUrduUzbekVendaVietnameseVolapükWalloonWolofXhosaYiddishYorubaZhuangChin" + - "eseZuluAchineseAcoliAdangmeAdygheTunisian ArabicAfrihiliAghemAinuAkkadia" + - "nAlabamaAleutGheg AlbanianSouthern AltaiOld EnglishAngikaAramaicMapucheA" + - "raonaArapahoAlgerian ArabicArawakMoroccan ArabicEgyptian ArabicAsuAmeric" + - "an Sign LanguageAsturianKotavaAwadhiSouth AzerbaijaniBaluchiBalineseBava" + - "rianBasaaBamunBatak TobaGhomalaBejaBembaBetawiBenaBafutBadagaBhojpuriBik" + - "olBiniBanjarKomSiksikaBishnupriyaBakhtiariBrajBrahuiBodoAkooseBuriatBugi" + - "neseBuluBlinMedumbaCaddoCaribCayugaAtsamCebuanoChigaChibchaChagataiChuuk" + - "eseMariChinook JargonChoctawChipewyanCherokeeCheyenneCentral KurdishCopt" + - "icCapiznonCrimean TurkishKashubianDakotaDargwaTaitaDelawareSlaveDogribDi" + - "nkaZarmaDogriLower SorbianCentral DusunDualaMiddle DutchJola-FonyiDyulaD" + - "azagaEmbuEfikEmilianAncient EgyptianEkajukElamiteMiddle EnglishCentral Y" + - "upikEwondoExtremaduranFangFilipinoTornedalen FinnishFonCajun FrenchMiddl" + - "e FrenchOld FrenchArpitanNorthern FrisianEastern FrisianFriulianGaGagauz" + - "Gan ChineseGayoGbayaZoroastrian DariGeezGilberteseGilakiMiddle High Germ" + - "anOld High GermanGoan KonkaniGondiGorontaloGothicGreboAncient GreekSwiss" + - " GermanWayuuFrafraGusiiGwichʼinHaidaHakka ChineseHawaiianFiji HindiHilig" + - "aynonHittiteHmongUpper SorbianXiang ChineseHupaIbanIbibioIlokoIngushIngr" + - "ianJamaican Creole EnglishLojbanNgombaMachameJudeo-PersianJudeo-ArabicJu" + - "tishKara-KalpakKabyleKachinJjuKambaKawiKabardianKanembuTyapMakondeKabuve" + - "rdianuKenyangKoroKaingangKhasiKhotaneseKoyra ChiiniKhowarKirmanjkiKakoKa" + - "lenjinKimbunduKomi-PermyakKonkaniKosraeanKpelleKarachay-BalkarKrioKinara" + - "y-aKarelianKurukhShambalaBafiaColognianKumykKutenaiLadinoLangiLahndaLamb" + - "aLezghianLingua Franca NovaLigurianLivonianLakotaLombardMongoLoziLatgali" + - "anLuba-LuluaLuisenoLundaLuoMizoLuyiaLiterary ChineseLazMadureseMafaMagah" + - "iMaithiliMakasarMandingoMasaiMabaMokshaMandarMendeMeruMorisyenMiddle Iri" + - "shMakhuwa-MeettoMetaʼMicmacMinangkabauManchuManipuriMohawkMossiWestern M" + - "ariMundangMultiple LanguagesCreekMirandeseMarwariMentawaiMyeneErzyaMazan" + - "deraniMin Nan ChineseNeapolitanNamaLow GermanNewariNiasNiueanAo NagaKwas" + - "ioNgiemboonNogaiOld NorseNovialNʼKoNorthern SothoNuerClassical NewariNya" + - "mweziNyankoleNyoroNzimaOsageOttoman TurkishPangasinanPahlaviPampangaPapi" + - "amentoPalauanPicardPennsylvania GermanPlautdietschOld PersianPalatine Ge" + - "rmanPhoenicianPiedmontesePonticPohnpeianPrussianOld ProvençalKʼicheʼChim" + - "borazo Highland QuichuaRajasthaniRapanuiRarotonganRomagnolRiffianRomboRo" + - "manyRotumanRusynRovianaAromanianRwaSandaweSakhaSamaritan AramaicSamburuS" + - "asakSantaliSaurashtraNgambaySanguSicilianScotsSassarese SardinianSenecaS" + - "enaSeriSelkupKoyraboro SenniOld IrishSamogitianTachelhitShanChadian Arab" + - "icSidamoLower SilesianSelayarSouthern SamiLule SamiInari SamiSkolt SamiS" + - "oninkeSogdienSranan TongoSererSahoSaterland FrisianSukumaSusuSumerianCom" + - "orianCongo SwahiliClassical SyriacSyriacSilesianTuluTimneTesoTerenoTetum" + - "TigreTivTokelauTsakhurKlingonTlingitTalyshTamashekNyasa TongaTok PisinTu" + - "royoTarokoTsakonianTsimshianMuslim TatTumbukaTuvaluTasawaqTuvinianCentra" + - "l Atlas TamazightUdmurtUgariticUmbunduRootVaiVenetianVepsWest FlemishMai" + - "n-FranconianVoticVõroVunjoWalserWolayttaWarayWashoWarlpiriWu ChineseKalm" + - "ykMingrelianSogaYaoYapeseYangbenYembaNheengatuCantoneseZapotecBlissymbol" + - "sZeelandicZenagaStandard Moroccan TamazightZuniNo linguistic contentZaza" + - "Modern Standard ArabicAustrian GermanSwiss High GermanAustralian English" + - "Canadian EnglishBritish EnglishAmerican EnglishLatin American SpanishEur" + - "opean SpanishMexican SpanishCanadian FrenchSwiss FrenchFlemishBrazilian " + - "PortugueseEuropean PortugueseMoldavianSerbo-CroatianSimplified ChineseTr" + - "aditional Chinese" - -// Size: 1234 bytes, 605 elements -var enLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000d, 0x0014, 0x001d, 0x0021, 0x0028, 0x0031, - 0x0037, 0x003f, 0x0045, 0x004b, 0x0056, 0x005d, 0x0067, 0x0070, - 0x0077, 0x007e, 0x0085, 0x008c, 0x0092, 0x0099, 0x00a0, 0x00a7, - 0x00af, 0x00b7, 0x00bb, 0x00c0, 0x00cd, 0x00d4, 0x00d9, 0x00df, - 0x00e5, 0x00eb, 0x00f3, 0x00f6, 0x00fb, 0x0102, 0x010b, 0x0112, - 0x011a, 0x0120, 0x0127, 0x012c, 0x0133, 0x0139, 0x0140, 0x0146, - 0x0155, 0x015a, 0x0169, 0x0171, 0x0178, 0x0180, 0x0184, 0x0189, - 0x018f, 0x0194, 0x019d, 0x01a5, 0x01ac, 0x01b5, 0x01bd, 0x01c3, - // Entry 40 - 7F - 0x01ce, 0x01d8, 0x01e3, 0x01e7, 0x01f1, 0x01f8, 0x01fb, 0x0204, - 0x020b, 0x0214, 0x021c, 0x0224, 0x022c, 0x0231, 0x0237, 0x023f, - 0x0245, 0x0250, 0x0255, 0x025c, 0x0262, 0x0268, 0x0270, 0x0277, - 0x027b, 0x0282, 0x0288, 0x028d, 0x029a, 0x029f, 0x02a9, 0x02b0, - 0x02b3, 0x02bd, 0x02c9, 0x02d0, 0x02d8, 0x02e3, 0x02e8, 0x02f2, - 0x02fb, 0x0304, 0x030b, 0x0310, 0x0317, 0x031e, 0x0323, 0x0330, - 0x0336, 0x033c, 0x0341, 0x0352, 0x0363, 0x0370, 0x0376, 0x037c, - 0x0383, 0x0389, 0x038e, 0x0393, 0x039a, 0x03a1, 0x03a5, 0x03ab, - // Entry 80 - BF - 0x03b1, 0x03bb, 0x03c2, 0x03c9, 0x03ce, 0x03d6, 0x03dd, 0x03e8, - 0x03f0, 0x03f9, 0x03ff, 0x040c, 0x0411, 0x0418, 0x041e, 0x0427, - 0x042d, 0x0432, 0x0438, 0x0440, 0x0447, 0x044c, 0x045a, 0x0463, - 0x046a, 0x0471, 0x0476, 0x047c, 0x0481, 0x0485, 0x048d, 0x0494, - 0x049a, 0x04a0, 0x04a7, 0x04ad, 0x04b2, 0x04ba, 0x04c0, 0x04c9, - 0x04cd, 0x04d2, 0x04d7, 0x04e1, 0x04e9, 0x04f0, 0x04f5, 0x04fa, - 0x0501, 0x0507, 0x050d, 0x0514, 0x0518, 0x0520, 0x0525, 0x052c, - 0x0532, 0x0541, 0x0549, 0x054e, 0x0552, 0x055a, 0x0561, 0x0566, - // Entry C0 - FF - 0x0573, 0x0581, 0x058c, 0x0592, 0x0599, 0x05a0, 0x05a6, 0x05ad, - 0x05bc, 0x05c2, 0x05d1, 0x05e0, 0x05e3, 0x05f9, 0x0601, 0x0607, - 0x060d, 0x061e, 0x0625, 0x062d, 0x0635, 0x063a, 0x063f, 0x0649, - 0x0650, 0x0654, 0x0659, 0x065f, 0x0663, 0x0668, 0x066e, 0x0676, - 0x067b, 0x067f, 0x0685, 0x0688, 0x068f, 0x069a, 0x06a3, 0x06a7, - 0x06ad, 0x06b1, 0x06b7, 0x06bd, 0x06c5, 0x06c9, 0x06cd, 0x06d4, - 0x06d9, 0x06de, 0x06e4, 0x06e9, 0x06f0, 0x06f5, 0x06fc, 0x0704, - 0x070c, 0x0710, 0x071e, 0x0725, 0x072e, 0x0736, 0x073e, 0x074d, - // Entry 100 - 13F - 0x0753, 0x075b, 0x076a, 0x0773, 0x0779, 0x077f, 0x0784, 0x078c, - 0x0791, 0x0797, 0x079c, 0x07a1, 0x07a6, 0x07b3, 0x07c0, 0x07c5, - 0x07d1, 0x07db, 0x07e0, 0x07e6, 0x07ea, 0x07ee, 0x07f5, 0x0805, - 0x080b, 0x0812, 0x0820, 0x082d, 0x0833, 0x083f, 0x0843, 0x084b, - 0x085d, 0x0860, 0x086c, 0x0879, 0x0883, 0x088a, 0x089a, 0x08a9, - 0x08b1, 0x08b3, 0x08b9, 0x08c4, 0x08c8, 0x08cd, 0x08dd, 0x08e1, - 0x08eb, 0x08f1, 0x0903, 0x0912, 0x091e, 0x0923, 0x092c, 0x0932, - 0x0937, 0x0944, 0x0950, 0x0955, 0x095b, 0x0960, 0x0969, 0x096e, - // Entry 140 - 17F - 0x097b, 0x0983, 0x098d, 0x0997, 0x099e, 0x09a3, 0x09b0, 0x09bd, - 0x09c1, 0x09c5, 0x09cb, 0x09d0, 0x09d6, 0x09dd, 0x09f4, 0x09fa, - 0x0a00, 0x0a07, 0x0a14, 0x0a20, 0x0a26, 0x0a31, 0x0a37, 0x0a3d, - 0x0a40, 0x0a45, 0x0a49, 0x0a52, 0x0a59, 0x0a5d, 0x0a64, 0x0a70, - 0x0a77, 0x0a7b, 0x0a83, 0x0a88, 0x0a91, 0x0a9d, 0x0aa3, 0x0aac, - 0x0ab0, 0x0ab8, 0x0ac0, 0x0acc, 0x0ad3, 0x0adb, 0x0ae1, 0x0af0, - 0x0af4, 0x0afd, 0x0b05, 0x0b0b, 0x0b13, 0x0b18, 0x0b21, 0x0b26, - 0x0b2d, 0x0b33, 0x0b38, 0x0b3e, 0x0b43, 0x0b4b, 0x0b5d, 0x0b65, - // Entry 180 - 1BF - 0x0b6d, 0x0b73, 0x0b7a, 0x0b7f, 0x0b83, 0x0b8c, 0x0b96, 0x0b9d, - 0x0ba2, 0x0ba5, 0x0ba9, 0x0bae, 0x0bbe, 0x0bc1, 0x0bc9, 0x0bcd, - 0x0bd3, 0x0bdb, 0x0be2, 0x0bea, 0x0bef, 0x0bf3, 0x0bf9, 0x0bff, - 0x0c04, 0x0c08, 0x0c10, 0x0c1c, 0x0c2a, 0x0c30, 0x0c36, 0x0c41, - 0x0c47, 0x0c4f, 0x0c55, 0x0c5a, 0x0c66, 0x0c6d, 0x0c7f, 0x0c84, - 0x0c8d, 0x0c94, 0x0c9c, 0x0ca1, 0x0ca6, 0x0cb1, 0x0cc0, 0x0cca, - 0x0cce, 0x0cd8, 0x0cde, 0x0ce2, 0x0ce8, 0x0cef, 0x0cf5, 0x0cfe, - 0x0d03, 0x0d0c, 0x0d12, 0x0d17, 0x0d25, 0x0d29, 0x0d39, 0x0d41, - // Entry 1C0 - 1FF - 0x0d49, 0x0d4e, 0x0d53, 0x0d58, 0x0d67, 0x0d71, 0x0d78, 0x0d80, - 0x0d8a, 0x0d91, 0x0d97, 0x0daa, 0x0db6, 0x0dc1, 0x0dd0, 0x0dda, - 0x0de5, 0x0deb, 0x0df4, 0x0dfc, 0x0e0a, 0x0e13, 0x0e2e, 0x0e38, - 0x0e3f, 0x0e49, 0x0e51, 0x0e58, 0x0e5d, 0x0e63, 0x0e6a, 0x0e6f, - 0x0e76, 0x0e7f, 0x0e82, 0x0e89, 0x0e8e, 0x0e9f, 0x0ea6, 0x0eab, - 0x0eb2, 0x0ebc, 0x0ec3, 0x0ec8, 0x0ed0, 0x0ed5, 0x0ee8, 0x0eee, - 0x0ef2, 0x0ef6, 0x0efc, 0x0f0b, 0x0f14, 0x0f1e, 0x0f27, 0x0f2b, - 0x0f39, 0x0f3f, 0x0f4d, 0x0f54, 0x0f61, 0x0f6a, 0x0f74, 0x0f7e, - // Entry 200 - 23F - 0x0f85, 0x0f8c, 0x0f98, 0x0f9d, 0x0fa1, 0x0fb2, 0x0fb8, 0x0fbc, - 0x0fc4, 0x0fcc, 0x0fd9, 0x0fe9, 0x0fef, 0x0ff7, 0x0ffb, 0x1000, - 0x1004, 0x100a, 0x100f, 0x1014, 0x1017, 0x101e, 0x1025, 0x102c, - 0x1033, 0x1039, 0x1041, 0x104c, 0x1055, 0x105b, 0x1061, 0x106a, - 0x1073, 0x107d, 0x1084, 0x108a, 0x1091, 0x1099, 0x10b0, 0x10b6, - 0x10be, 0x10c5, 0x10c9, 0x10cc, 0x10d4, 0x10d8, 0x10e4, 0x10f3, - 0x10f8, 0x10fd, 0x1102, 0x1108, 0x1110, 0x1115, 0x111a, 0x1122, - 0x112c, 0x1132, 0x113c, 0x1140, 0x1143, 0x1149, 0x1150, 0x1155, - // Entry 240 - 27F - 0x115e, 0x1167, 0x116e, 0x1179, 0x1182, 0x1188, 0x11a3, 0x11a7, - 0x11bc, 0x11c0, 0x11d6, 0x11e5, 0x11f6, 0x1208, 0x1218, 0x1227, - 0x1237, 0x124d, 0x125d, 0x126c, 0x127b, 0x1287, 0x128e, 0x12a2, - 0x12b5, 0x12be, 0x12cc, 0x12de, 0x12f1, -} - -// Size: 4180 bytes -var esLangStr string = "" + - "afarabjasioavésticoafrikáansakanamáricoaragonésárabeasamésavaraimaraazer" + - "baiyanobaskirbielorrusobúlgarobislamabambarabengalítibetanobretónbosnioc" + - "atalánchechenochamorrocorsocreechecoeslavo eclesiásticochuvashgalésdanés" + - "alemándivehidzongkhaewégriegoinglésesperantoespañolestonioeuskerapersafu" + - "lafinésfiyianoferoésfrancésfrisón occidentalirlandésgaélico escocésgalle" + - "goguaranígujaratimanéshausahebreohindihiri motucroatahaitianohúngaroarme" + - "niohererointerlinguaindonesiointerlingueigboyi de Sichuáninupiaqidoislan" + - "désitalianoinuktitutjaponésjavanésgeorgianokongokikuyukuanyamakazajogroe" + - "nlandésjemercanaréscoreanokanuricachemirokurdokomicórnicokirguíslatínlux" + - "emburguésgandalimburguéslingalalaosianolituanoluba-katangaletónmalgachem" + - "arshalésmaorímacedoniomalayalammongolmaratímalayomaltésbirmanonauruanond" + - "ebele septentrionalnepalíndonganeerlandésnynorsk noruegobokmal noruegond" + - "ebele meridionalnavajonyanjaoccitanoojibwaoromooriyaoséticopanyabípalipo" + - "lacopastúnportuguésquechuaretorrománicokiroundirumanorusokinyarwandasáns" + - "critosardosindhisami septentrionalsangocingaléseslovacoeslovenosamoanosh" + - "onasomalíalbanésserbiosiswatisesotho meridionalsundanéssuecoswahilitamil" + - "telugutayikotailandéstigriñaturcomanosetchwanatonganoturcotsongatártarot" + - "ahitianouigurucranianourduuzbekovendavietnamitavolapükvalónwólofxhosayíd" + - "ishyorubazhuangchinozulúacehnésacoliadangmeadigeoafrihiliaghemainuacadio" + - "aleutianoaltái meridionalinglés antiguoangikaarameomapuchearapahoarahuac" + - "oasuasturianoavadhibaluchibalinésbasabamunghomalabejabembabenabafutbhojp" + - "uribicolbinikomsiksikabrajbodoakooseburiatbuginésbulublinmedumbacaddocar" + - "ibecayugaatsamcebuanochigachibchachagatáitrukésmaríjerga chinukchoctawch" + - "ipewyancheroquicheyenekurdo soranicoptotártaro de Crimeacasubiodakotadar" + - "gvataitadelawareslavedogribdinkazarmadogribajo sorbiodualaneerlandés med" + - "ievaljola-fonyidiuladazagaembuefikegipcio antiguoekajukelamitainglés med" + - "ievalewondofangfilipinofonfrancés medievalfrancés antiguofrisón septentr" + - "ionalfrisón orientalfriulanogagagauzogayogbayageezgilbertésalemán de la " + - "alta edad mediaalemán de la alta edad antiguagondigorontalogóticogrebogr" + - "iego antiguoalemán suizogusiikutchinhaidahawaianohiligaynonhititahmongal" + - "to sorbiohupaibanibibioilocanoingushlojbanngombamachamejudeo-persajudeo-" + - "árabekarakalpakocabilakachinjjukambakawikabardianokanembutyapmakondecri" + - "ollo caboverdianokorokhasikotanéskoyra chiinikakokalenjinkimbundukomi pe" + - "rmiokonkaníkosraeanokpellekarachay-balkarcareliokurukhshambalabafiakölsc" + - "hkumykkutenailadinolangilahndalambalezgianolakotamongoloziluba-lulualuis" + - "eñolundaluolushailuyiamadurésmafamagahimaithilimacasarmandingomasáimabam" + - "okshamandarmendemerucriollo mauricianoirlandés medievalmakhuwa-meettomet" + - "a’micmacminangkabaumanchúmanipurimohawkmossimundanglenguas múltiplescree" + - "kmirandésmarwarimyeneerzyanapolitanonamabajo alemánnewariniasniueanokwas" + - "iongiemboonnogainórdico antiguon’kosotho septentrionalnuernewari clásico" + - "nyamwezinyankolenyoronzimaosageturco otomanopangasinánpahlavipampangapap" + - "iamentopalauanopersa antiguofeniciopohnpeianoprovenzal antiguoquichéraja" + - "sthanirapanuirarotonganoromboromaníarrumanorwasandawesakhaarameo samarit" + - "anosamburusasaksantalingambaysangusicilianoescocéssenecasenaselkupkoyrab" + - "oro senniirlandés antiguotashelhitshanárabe chadianosidamosami meridiona" + - "lsami lulesami inarisami skoltsoninkésogdianosranan tongoserersahosukuma" + - "sususumeriocomorenseswahili del Congosiríaco clásicosiriacotemnetesotere" + - "notetúntigrétivtokelauanoklingontlingittamashektonga del Nyasatok pisint" + - "arokotsimshianotumbukatuvaluanotasawaqtuvinianotamazight del Marruecos C" + - "entraludmurtugaríticoumbunduraízvaivóticovunjowalserwalamowaraywashokalm" + - "yksogayaoyapésyangbenyembacantonészapotecosímbolos Blisszenagatamazight " + - "estándar marroquízunisin contenido lingüísticozazakiárabe estándar moder" + - "noalemán austríacoalto alemán suizoinglés australianoinglés canadiensein" + - "glés británicoinglés estadounidenseespañol latinoamericanoespañol de Esp" + - "añaespañol de Méxicofrancés canadiensefrancés suizoflamencoportugués de " + - "Brasilportugués de Portugalmoldavoserbocroatachino simplificadochino tra" + - "dicional" - -// Size: 1234 bytes, 605 elements -var esLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000b, 0x0014, 0x001e, 0x0022, 0x002a, 0x0033, - 0x0039, 0x0040, 0x0044, 0x004a, 0x0055, 0x005b, 0x0065, 0x006d, - 0x0074, 0x007b, 0x0083, 0x008b, 0x0092, 0x0098, 0x00a0, 0x00a8, - 0x00b0, 0x00b5, 0x00b9, 0x00be, 0x00d2, 0x00d9, 0x00df, 0x00e5, - 0x00ec, 0x00f2, 0x00fa, 0x00fe, 0x0104, 0x010b, 0x0114, 0x011c, - 0x0123, 0x012a, 0x012f, 0x0133, 0x0139, 0x0140, 0x0147, 0x014f, - 0x0161, 0x016a, 0x017b, 0x0182, 0x018a, 0x0192, 0x0198, 0x019d, - 0x01a3, 0x01a8, 0x01b1, 0x01b7, 0x01bf, 0x01c7, 0x01ce, 0x01d4, - // Entry 40 - 7F - 0x01df, 0x01e8, 0x01f3, 0x01f7, 0x0205, 0x020c, 0x020f, 0x0218, - 0x0220, 0x0229, 0x0231, 0x0239, 0x0242, 0x0247, 0x024d, 0x0255, - 0x025b, 0x0267, 0x026c, 0x0274, 0x027b, 0x0281, 0x028a, 0x028f, - 0x0293, 0x029b, 0x02a3, 0x02a9, 0x02b6, 0x02bb, 0x02c6, 0x02cd, - 0x02d5, 0x02dc, 0x02e8, 0x02ee, 0x02f6, 0x0300, 0x0306, 0x030f, - 0x0318, 0x031e, 0x0325, 0x032b, 0x0332, 0x0339, 0x0341, 0x0356, - 0x035d, 0x0363, 0x036e, 0x037d, 0x038b, 0x039d, 0x03a3, 0x03a9, - 0x03b1, 0x03b7, 0x03bc, 0x03c1, 0x03c9, 0x03d1, 0x03d5, 0x03db, - // Entry 80 - BF - 0x03e2, 0x03ec, 0x03f3, 0x0401, 0x0409, 0x040f, 0x0413, 0x041e, - 0x0428, 0x042d, 0x0433, 0x0445, 0x044a, 0x0453, 0x045b, 0x0463, - 0x046a, 0x046f, 0x0476, 0x047e, 0x0484, 0x048b, 0x049d, 0x04a6, - 0x04ab, 0x04b2, 0x04b7, 0x04bd, 0x04c3, 0x04cd, 0x04d5, 0x04de, - 0x04e7, 0x04ee, 0x04f3, 0x04f9, 0x0501, 0x050a, 0x050f, 0x0518, - 0x051c, 0x0522, 0x0527, 0x0531, 0x0539, 0x053f, 0x0545, 0x054a, - 0x0551, 0x0557, 0x055d, 0x0562, 0x0567, 0x056f, 0x0574, 0x057b, - 0x0581, 0x0581, 0x0589, 0x058e, 0x0592, 0x0598, 0x0598, 0x05a1, - // Entry C0 - FF - 0x05a1, 0x05b2, 0x05c1, 0x05c7, 0x05cd, 0x05d4, 0x05d4, 0x05db, - 0x05db, 0x05e3, 0x05e3, 0x05e3, 0x05e6, 0x05e6, 0x05ef, 0x05ef, - 0x05f5, 0x05f5, 0x05fc, 0x0604, 0x0604, 0x0608, 0x060d, 0x060d, - 0x0614, 0x0618, 0x061d, 0x061d, 0x0621, 0x0626, 0x0626, 0x062e, - 0x0633, 0x0637, 0x0637, 0x063a, 0x0641, 0x0641, 0x0641, 0x0645, - 0x0645, 0x0649, 0x064f, 0x0655, 0x065d, 0x0661, 0x0665, 0x066c, - 0x0671, 0x0677, 0x067d, 0x0682, 0x0689, 0x068e, 0x0695, 0x069e, - 0x06a5, 0x06aa, 0x06b6, 0x06bd, 0x06c6, 0x06ce, 0x06d5, 0x06e1, - // Entry 100 - 13F - 0x06e6, 0x06e6, 0x06f8, 0x06ff, 0x0705, 0x070b, 0x0710, 0x0718, - 0x071d, 0x0723, 0x0728, 0x072d, 0x0732, 0x073d, 0x073d, 0x0742, - 0x0756, 0x0760, 0x0765, 0x076b, 0x076f, 0x0773, 0x0773, 0x0782, - 0x0788, 0x078f, 0x079f, 0x079f, 0x07a5, 0x07a5, 0x07a9, 0x07b1, - 0x07b1, 0x07b4, 0x07b4, 0x07c5, 0x07d5, 0x07d5, 0x07ea, 0x07fa, - 0x0802, 0x0804, 0x080b, 0x080b, 0x080f, 0x0814, 0x0814, 0x0818, - 0x0822, 0x0822, 0x083f, 0x085e, 0x085e, 0x0863, 0x086c, 0x0873, - 0x0878, 0x0886, 0x0893, 0x0893, 0x0893, 0x0898, 0x089f, 0x08a4, - // Entry 140 - 17F - 0x08a4, 0x08ac, 0x08ac, 0x08b6, 0x08bc, 0x08c1, 0x08cc, 0x08cc, - 0x08d0, 0x08d4, 0x08da, 0x08e1, 0x08e7, 0x08e7, 0x08e7, 0x08ed, - 0x08f3, 0x08fa, 0x0905, 0x0911, 0x0911, 0x091c, 0x0922, 0x0928, - 0x092b, 0x0930, 0x0934, 0x093e, 0x0945, 0x0949, 0x0950, 0x0964, - 0x0964, 0x0968, 0x0968, 0x096d, 0x0975, 0x0981, 0x0981, 0x0981, - 0x0985, 0x098d, 0x0995, 0x09a0, 0x09a8, 0x09b1, 0x09b7, 0x09c6, - 0x09c6, 0x09c6, 0x09cd, 0x09d3, 0x09db, 0x09e0, 0x09e7, 0x09ec, - 0x09f3, 0x09f9, 0x09fe, 0x0a04, 0x0a09, 0x0a11, 0x0a11, 0x0a11, - // Entry 180 - 1BF - 0x0a11, 0x0a17, 0x0a17, 0x0a1c, 0x0a20, 0x0a20, 0x0a2a, 0x0a32, - 0x0a37, 0x0a3a, 0x0a40, 0x0a45, 0x0a45, 0x0a45, 0x0a4d, 0x0a51, - 0x0a57, 0x0a5f, 0x0a66, 0x0a6e, 0x0a74, 0x0a78, 0x0a7e, 0x0a84, - 0x0a89, 0x0a8d, 0x0a9f, 0x0ab1, 0x0abf, 0x0ac6, 0x0acc, 0x0ad7, - 0x0ade, 0x0ae6, 0x0aec, 0x0af1, 0x0af1, 0x0af8, 0x0b0a, 0x0b0f, - 0x0b18, 0x0b1f, 0x0b1f, 0x0b24, 0x0b29, 0x0b29, 0x0b29, 0x0b33, - 0x0b37, 0x0b43, 0x0b49, 0x0b4d, 0x0b54, 0x0b54, 0x0b5a, 0x0b63, - 0x0b68, 0x0b78, 0x0b78, 0x0b7e, 0x0b91, 0x0b95, 0x0ba4, 0x0bac, - // Entry 1C0 - 1FF - 0x0bb4, 0x0bb9, 0x0bbe, 0x0bc3, 0x0bd0, 0x0bdb, 0x0be2, 0x0bea, - 0x0bf4, 0x0bfc, 0x0bfc, 0x0bfc, 0x0bfc, 0x0c09, 0x0c09, 0x0c10, - 0x0c10, 0x0c10, 0x0c1a, 0x0c1a, 0x0c2b, 0x0c32, 0x0c32, 0x0c3c, - 0x0c43, 0x0c4e, 0x0c4e, 0x0c4e, 0x0c53, 0x0c5a, 0x0c5a, 0x0c5a, - 0x0c5a, 0x0c62, 0x0c65, 0x0c6c, 0x0c71, 0x0c82, 0x0c89, 0x0c8e, - 0x0c95, 0x0c95, 0x0c9c, 0x0ca1, 0x0caa, 0x0cb2, 0x0cb2, 0x0cb8, - 0x0cbc, 0x0cbc, 0x0cc2, 0x0cd1, 0x0ce2, 0x0ce2, 0x0ceb, 0x0cef, - 0x0cfe, 0x0d04, 0x0d04, 0x0d04, 0x0d13, 0x0d1c, 0x0d26, 0x0d30, - // Entry 200 - 23F - 0x0d38, 0x0d40, 0x0d4c, 0x0d51, 0x0d55, 0x0d55, 0x0d5b, 0x0d5f, - 0x0d66, 0x0d6f, 0x0d80, 0x0d91, 0x0d98, 0x0d98, 0x0d98, 0x0d9d, - 0x0da1, 0x0da7, 0x0dad, 0x0db3, 0x0db6, 0x0dc0, 0x0dc0, 0x0dc7, - 0x0dce, 0x0dce, 0x0dd6, 0x0de5, 0x0dee, 0x0dee, 0x0df4, 0x0df4, - 0x0dfe, 0x0dfe, 0x0e05, 0x0e0e, 0x0e15, 0x0e1e, 0x0e3d, 0x0e43, - 0x0e4d, 0x0e54, 0x0e59, 0x0e5c, 0x0e5c, 0x0e5c, 0x0e5c, 0x0e5c, - 0x0e63, 0x0e63, 0x0e68, 0x0e6e, 0x0e74, 0x0e79, 0x0e7e, 0x0e7e, - 0x0e7e, 0x0e84, 0x0e84, 0x0e88, 0x0e8b, 0x0e91, 0x0e98, 0x0e9d, - // Entry 240 - 27F - 0x0e9d, 0x0ea6, 0x0eae, 0x0ebd, 0x0ebd, 0x0ec3, 0x0ee0, 0x0ee4, - 0x0eff, 0x0f05, 0x0f1d, 0x0f2f, 0x0f41, 0x0f54, 0x0f66, 0x0f78, - 0x0f8e, 0x0fa6, 0x0fb9, 0x0fcc, 0x0fdf, 0x0fed, 0x0ff5, 0x1009, - 0x101f, 0x1026, 0x1031, 0x1043, 0x1054, -} - -// Size: 3704 bytes -var etLangStr string = "" + - "afariabhaasiavestaafrikaaniakaniamhariaragoniaraabiaassamiavaariaimaraas" + - "erbaidžaanibaÅ¡kiirivalgevenebulgaariabislamabambarabengalitiibetibretoon" + - "ibosniakatalaanitÅ¡etÅ¡eenitÅ¡amorrokorsikakriitÅ¡ehhikirikuslaavitÅ¡uvaÅ¡ikõm" + - "ritaanisaksamaldiividzongkhaevekreekaingliseesperantohispaaniaeestibaski" + - "pärsiafulbesoomefidžifääriprantsuseläänefriisiiirigaeligaleegiguaraniigu" + - "džaratimänksihausaheebreahindimotuhorvaadihaitiungariarmeeniahererointer" + - "linguaindoneesiainterlingueibosichuani jiiinjupiakiidoislandiitaaliainuk" + - "titutijaapanijaavagruusiakongokikujuambokasahhigröönikhmeerikannadakorea" + - "kanurikaÅ¡miirikurdikomikornikirgiisiladinaletseburgigandalimburgilingala" + - "laoleedulubalätimalagassimarÅ¡allimaoorimakedooniamalajalamimongolimarath" + - "imalaimaltabirmanaurupõhjandebelenepalindongahollandinorra nynorsknorra " + - "bokmÃ¥llõunandebelenavahonjandžaprovansiodžibveioromooriaosseedipandžabip" + - "aalipoolapuÅ¡tuportugaliketÅ¡uaretoromaanirundirumeeniaveneruandasanskriti" + - "sardiiniasindhipõhjasaamisangosingalislovakisloveenisamoaÅ¡onasomaalialba" + - "aniaserbiasvaasilõunasothosundarootsisuahiilitamilitelugutadžikitaitigri" + - "njatürkmeenitsvanatongatürgitsongatataritahitiuiguuriukrainaurduusbekive" + - "ndavietnamivolapükivalloonivolofikoosajidiÅ¡ijorubatÅ¡uangihiinasuuluatÅ¡eh" + - "iakoliadangmeadõgeeafrihiliaghemiainuakadialeuudialtaivanaingliseangikaa" + - "rameaaraukaaniarapahoaravakiasaastuuriaavadhibelutÅ¡ibalibasabamunighomal" + - "abedžabembabenabafutibhodžpuribikoliedoitaÅ‹ikomisiksikabradžibodoakooseb" + - "urjaadibugibulubilinimedumbakadokariibicayugaatsamisebuchigatÅ¡ibtÅ¡atÅ¡aga" + - "taitÅ¡uugimaritÅ¡inuki žargoontÅ¡oktotÅ¡ipevaitÅ¡erokiiÅ¡aieenisorani kurdikop" + - "tikrimmitatarikaÅ¡uubisiuudargitaitadelavarisleividogribidinkazarmadogria" + - "lamsorbidualakeskhollandijola-fonyidjuladazagaembuefikimuinasegiptuseeka" + - "džukieelamikeskingliseevondofangifilipinofonikeskprantsusevanaprantsusep" + - "õhjafriisiidafriisifriuuligaagagauusigajogbajaetioopiakiribatikeskülems" + - "aksavanaülemsaksagondigorontalogootigrebovanakreekaÅ¡veitsisaksagusiigvit" + - "Å¡inihaidahavaihiligainonihetihmongiülemsorbihupaibaniibibioilokoinguÅ¡il" + - "ojbaningombamachamejuudipärsiajuudiaraabiakarakalpakikabiilikatÅ¡inijjuka" + - "mbakaavikabardi-tÅ¡erkessikanembutyapimakondekabuverdianukorokhasisakikoy" + - "ra chiinikakokaljenjinmbundupermikomikonkanikosraekpellekaratÅ¡ai-balkaar" + - "ikarjalaoraonishambalabafiacolognianikumõkikutenailadiinolangilahndalamb" + - "alesgilakotamongoloziluba-lulualuisenjolundaluoluÅ¡eiluyiamaduramafamagal" + - "imaithilimakassarimalinkemasaimabamokÅ¡amandarimendemeruMauritiuse kreool" + - "keelkeskiirimakhuwa-meettometa’mikmakiminangkabaumandžumanipurimohoogimo" + - "remundangimitu keeltmaskogimirandamarvarimyeneersanapolinamaalamsaksanev" + - "ariniasiniuekwasiongiembooninogaivanapõhjalankoopedinuerivananevarinjamv" + - "esinkolenjoronzimaoseidžiosmanitürgipangasinanipahlavipampangapapiamento" + - "belauvanapärsiafoiniikiapoonpeivanaprovansik’iche’radžastanirapanuirarot" + - "ongarombomustlaskeelaromuunirwasandavejakuudisamaaria arameasamburusasak" + - "isantalingembaysangusitsiiliaÅ¡otisenecasenasölkupikoyraboro sennivanaiir" + - "itachelhitiÅ¡aniTÅ¡aadi araabiasidamolõunasaamilule saamiinari saamikoltas" + - "aamisoninkesogdisrananisererisahosukumasususumerikomooriKongo suahiilikl" + - "assikaline süüriasüüriatemnetesoterenotetumitigreetivitokelauklingonitli" + - "ngititamaÅ¡ekitÅ¡itongauusmelaneesiatarokotÅ¡imÅ¡itumbukatuvalutaswaqitõvaKe" + - "sk-Maroko tamazightiudmurdiugaritiumbundurootvaivadjavunjowalserivolamov" + - "araivaÅ¡okalmõkisogajaojapiyangbeniyembakantonisapoteegiblissümbolidzenag" + - "atamasikti (Maroko)sunjimittekeelelinezazaaraabia (tänapäevane)saksa (kõ" + - "rgsaksa)inglise (Briti)inglise (USA)hispaania (Euroopa)flaamiportugali (" + - "Euroopa)moldovaserbia-horvaadihiina (lihtsustatud)hiina (traditsioonilin" + - "e)" - -// Size: 1234 bytes, 605 elements -var etLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0005, 0x000c, 0x0012, 0x001b, 0x0020, 0x0026, 0x002d, - 0x0034, 0x003a, 0x0040, 0x0046, 0x0054, 0x005d, 0x0066, 0x006f, - 0x0076, 0x007d, 0x0084, 0x008b, 0x0093, 0x0099, 0x00a2, 0x00ad, - 0x00b6, 0x00bd, 0x00c1, 0x00c8, 0x00d4, 0x00dd, 0x00e3, 0x00e8, - 0x00ed, 0x00f5, 0x00fd, 0x0100, 0x0106, 0x010d, 0x0116, 0x011f, - 0x0124, 0x0129, 0x0130, 0x0135, 0x013a, 0x0140, 0x0147, 0x0150, - 0x015d, 0x0161, 0x0166, 0x016d, 0x0175, 0x017f, 0x0186, 0x018b, - 0x0192, 0x0197, 0x019b, 0x01a3, 0x01a8, 0x01ae, 0x01b6, 0x01bc, - // Entry 40 - 7F - 0x01c7, 0x01d1, 0x01dc, 0x01df, 0x01eb, 0x01f4, 0x01f7, 0x01fe, - 0x0205, 0x020f, 0x0216, 0x021b, 0x0222, 0x0227, 0x022d, 0x0231, - 0x0238, 0x0240, 0x0247, 0x024e, 0x0253, 0x0259, 0x0262, 0x0267, - 0x026b, 0x0270, 0x0278, 0x027e, 0x0288, 0x028d, 0x0295, 0x029c, - 0x029f, 0x02a4, 0x02a8, 0x02ad, 0x02b6, 0x02bf, 0x02c5, 0x02cf, - 0x02d9, 0x02e0, 0x02e7, 0x02ec, 0x02f1, 0x02f6, 0x02fb, 0x0308, - 0x030e, 0x0314, 0x031c, 0x0329, 0x0336, 0x0343, 0x0349, 0x0351, - 0x0359, 0x0362, 0x0367, 0x036b, 0x0372, 0x037b, 0x0380, 0x0385, - // Entry 80 - BF - 0x038b, 0x0394, 0x039b, 0x03a6, 0x03ab, 0x03b3, 0x03b7, 0x03bd, - 0x03c6, 0x03cf, 0x03d5, 0x03e0, 0x03e5, 0x03ec, 0x03f3, 0x03fb, - 0x0400, 0x0405, 0x040c, 0x0414, 0x041a, 0x0420, 0x042b, 0x0430, - 0x0436, 0x043e, 0x0444, 0x044a, 0x0452, 0x0455, 0x045d, 0x0467, - 0x046d, 0x0472, 0x0478, 0x047e, 0x0484, 0x048a, 0x0491, 0x0498, - 0x049c, 0x04a2, 0x04a7, 0x04af, 0x04b8, 0x04c0, 0x04c6, 0x04cb, - 0x04d2, 0x04d8, 0x04e0, 0x04e5, 0x04ea, 0x04f1, 0x04f6, 0x04fd, - 0x0504, 0x0504, 0x050c, 0x0512, 0x0516, 0x051b, 0x051b, 0x0522, - // Entry C0 - FF - 0x0522, 0x0527, 0x0532, 0x0538, 0x053e, 0x0547, 0x0547, 0x054e, - 0x054e, 0x0555, 0x0555, 0x0555, 0x0558, 0x0558, 0x0560, 0x0560, - 0x0566, 0x0566, 0x056e, 0x0572, 0x0572, 0x0576, 0x057c, 0x057c, - 0x0583, 0x0589, 0x058e, 0x058e, 0x0592, 0x0598, 0x0598, 0x05a2, - 0x05a8, 0x05ab, 0x05ab, 0x05b5, 0x05bc, 0x05bc, 0x05bc, 0x05c3, - 0x05c3, 0x05c7, 0x05cd, 0x05d5, 0x05d9, 0x05dd, 0x05e3, 0x05ea, - 0x05ee, 0x05f5, 0x05fb, 0x0601, 0x0605, 0x060a, 0x0613, 0x061c, - 0x0623, 0x0627, 0x0638, 0x063f, 0x0648, 0x0651, 0x0659, 0x0665, - // Entry 100 - 13F - 0x066a, 0x066a, 0x0676, 0x067e, 0x0682, 0x0687, 0x068c, 0x0694, - 0x069a, 0x06a1, 0x06a6, 0x06ab, 0x06b0, 0x06b9, 0x06b9, 0x06be, - 0x06ca, 0x06d4, 0x06d9, 0x06df, 0x06e3, 0x06e8, 0x06e8, 0x06f6, - 0x06ff, 0x0705, 0x0710, 0x0710, 0x0716, 0x0716, 0x071b, 0x0723, - 0x0723, 0x0727, 0x0727, 0x0734, 0x0741, 0x0741, 0x074d, 0x0756, - 0x075d, 0x0760, 0x0768, 0x0768, 0x076c, 0x0771, 0x0771, 0x0779, - 0x0781, 0x0781, 0x078f, 0x079d, 0x079d, 0x07a2, 0x07ab, 0x07b0, - 0x07b5, 0x07bf, 0x07cc, 0x07cc, 0x07cc, 0x07d1, 0x07da, 0x07df, - // Entry 140 - 17F - 0x07df, 0x07e4, 0x07e4, 0x07ef, 0x07f3, 0x07f9, 0x0803, 0x0803, - 0x0807, 0x080c, 0x0812, 0x0817, 0x081e, 0x081e, 0x081e, 0x0825, - 0x082b, 0x0832, 0x083e, 0x084a, 0x084a, 0x0855, 0x085c, 0x0864, - 0x0867, 0x086c, 0x0871, 0x0883, 0x088a, 0x088f, 0x0896, 0x08a2, - 0x08a2, 0x08a6, 0x08a6, 0x08ab, 0x08af, 0x08bb, 0x08bb, 0x08bb, - 0x08bf, 0x08c8, 0x08ce, 0x08d7, 0x08de, 0x08e4, 0x08ea, 0x08fc, - 0x08fc, 0x08fc, 0x0903, 0x0909, 0x0911, 0x0916, 0x0920, 0x0927, - 0x092e, 0x0935, 0x093a, 0x0940, 0x0945, 0x094a, 0x094a, 0x094a, - // Entry 180 - 1BF - 0x094a, 0x0950, 0x0950, 0x0955, 0x0959, 0x0959, 0x0963, 0x096b, - 0x0970, 0x0973, 0x0979, 0x097e, 0x097e, 0x097e, 0x0984, 0x0988, - 0x098e, 0x0996, 0x099f, 0x09a6, 0x09ab, 0x09af, 0x09b5, 0x09bc, - 0x09c1, 0x09c5, 0x09da, 0x09e2, 0x09f0, 0x09f7, 0x09fe, 0x0a09, - 0x0a10, 0x0a18, 0x0a1f, 0x0a23, 0x0a23, 0x0a2b, 0x0a35, 0x0a3c, - 0x0a43, 0x0a4a, 0x0a4a, 0x0a4f, 0x0a53, 0x0a53, 0x0a53, 0x0a59, - 0x0a5d, 0x0a66, 0x0a6c, 0x0a71, 0x0a75, 0x0a75, 0x0a7b, 0x0a85, - 0x0a8a, 0x0a96, 0x0a96, 0x0a9a, 0x0a9e, 0x0aa3, 0x0aad, 0x0ab5, - // Entry 1C0 - 1FF - 0x0aba, 0x0abf, 0x0ac4, 0x0acc, 0x0ad8, 0x0ae3, 0x0aea, 0x0af2, - 0x0afc, 0x0b01, 0x0b01, 0x0b01, 0x0b01, 0x0b0c, 0x0b0c, 0x0b15, - 0x0b15, 0x0b15, 0x0b1c, 0x0b1c, 0x0b28, 0x0b33, 0x0b33, 0x0b3e, - 0x0b45, 0x0b4e, 0x0b4e, 0x0b4e, 0x0b53, 0x0b5e, 0x0b5e, 0x0b5e, - 0x0b5e, 0x0b66, 0x0b69, 0x0b70, 0x0b77, 0x0b86, 0x0b8d, 0x0b93, - 0x0b9a, 0x0b9a, 0x0ba1, 0x0ba6, 0x0baf, 0x0bb4, 0x0bb4, 0x0bba, - 0x0bbe, 0x0bbe, 0x0bc6, 0x0bd5, 0x0bdd, 0x0bdd, 0x0be7, 0x0bec, - 0x0bfb, 0x0c01, 0x0c01, 0x0c01, 0x0c0c, 0x0c16, 0x0c21, 0x0c2b, - // Entry 200 - 23F - 0x0c32, 0x0c37, 0x0c3e, 0x0c44, 0x0c48, 0x0c48, 0x0c4e, 0x0c52, - 0x0c58, 0x0c5f, 0x0c6d, 0x0c82, 0x0c8a, 0x0c8a, 0x0c8a, 0x0c8f, - 0x0c93, 0x0c99, 0x0c9f, 0x0ca5, 0x0ca9, 0x0cb0, 0x0cb0, 0x0cb8, - 0x0cc0, 0x0cc0, 0x0cc9, 0x0cd2, 0x0cdf, 0x0cdf, 0x0ce5, 0x0ce5, - 0x0ced, 0x0ced, 0x0cf4, 0x0cfa, 0x0d01, 0x0d06, 0x0d1c, 0x0d23, - 0x0d2a, 0x0d31, 0x0d35, 0x0d38, 0x0d38, 0x0d38, 0x0d38, 0x0d38, - 0x0d3d, 0x0d3d, 0x0d42, 0x0d49, 0x0d4f, 0x0d54, 0x0d59, 0x0d59, - 0x0d59, 0x0d61, 0x0d61, 0x0d65, 0x0d68, 0x0d6c, 0x0d74, 0x0d79, - // Entry 240 - 27F - 0x0d79, 0x0d80, 0x0d89, 0x0d96, 0x0d96, 0x0d9c, 0x0dae, 0x0db3, - 0x0dc1, 0x0dc5, 0x0ddc, 0x0ddc, 0x0dee, 0x0dee, 0x0dee, 0x0dfd, - 0x0e0a, 0x0e0a, 0x0e1d, 0x0e1d, 0x0e1d, 0x0e1d, 0x0e23, 0x0e23, - 0x0e36, 0x0e3d, 0x0e4c, 0x0e60, 0x0e78, -} - -// Size: 7513 bytes -var faLangStr string = "" + - "Ø¢ÙاریآبخازیاوستاییآÙریکانسآکانامهریآراگونیعربیآسامیآواریآیماراییترکی آذر" + - "بایجانیباشغیریبلوروسیبلغاریبیسلامابامباراییبنگالیتبتیبرتانیاییبوسنیاییک" + - "اتالانچچنیچاموروییکورسیکریاییچکیاسلاوی کلیساییچوواشیویلزیدانمارکیآلمانی" + - "مالدیویجونخاییاوه\u200cاییونانیانگلیسیاسپرانتواسپانیاییاستونیاییباسکیÙا" + - "رسیÙولاییÙنلاندیÙیجیاییÙاروییÙرانسویÙریزی غربیایرلندیگیلی اسکاتلندیگالی" + - "سیاییگوارانیگجراتیمانیهوسیاییعبریهندیموتویی هیریکرواتهائیتیاییمجاریارمن" + - "یهریروییمیان\u200cزباناندونزیاییاکسیدنتالایگبویییی سیچواناینوپیکایدوایس" + - "لندیایتالیاییاینوکتیتوتژاپنیجاوه\u200cایگرجیکنگوییکیکویوییکوانیاماقزاقی" + - "گرینلندیخمریکاناده\u200cایکره\u200cایکانوریاییکشمیریکردیکومیاییکرنوالیق" + - "رقیزیلاتینیلوگزامبورگیگانداییلیمبورگیلینگالالائوسیلیتوانیاییلوباییâ€Ú©Ø§ØªØ§" + - "نگالتونیاییمالاگاسیاییمارشالیمائوریاییمقدونیمالایالامیمغولیمراتیمالاییم" + - "التیبرمه\u200cاینائوروییانده\u200cبله\u200cای شمالینپالیاندونگاییهلندین" + - "رس جدید نروژیبوکسمال نروژیانده\u200cبله\u200cای جنوبیناواهویینیانجاییاو" + - "کیتاییاوجیبواییاوروموییاوریه\u200cایآسیپنجابیپالیلهستانیپشتوپرتغالیکچوا" + - "ییرومانشروندیاییرومانیاییروسیکینیاروانداییسنسکریتساردینیاییسندیسامی شما" + - "لیسانگوییسینهالیاسلواکیاسلووینیاییساموآییشوناییسومالیاییآلبانیاییصربیسو" + - "ازیاییسوتویی جنوبیسونداییسوئدیسواحلیتامیلیتلوگوییتاجیکیتایلندیتیگرینیای" + - "یترکمنیتسواناییتونگاییترکی استانبولیتسونگاییتاتاریتاهیتیاییاویغوریاوکرا" + - "ینیاردوازبکیونداییویتنامیولاپوکوالونیولوÙیخوسایییدییوروباییچوانگیچینیزو" + - "لوییآچئیآچولیاییآدانگمه\u200cایآدیجیاییعربی تونسیآÙریهیلیآگیمآینوییاکدی" + - "آلاباماییآلئوتیآلتایی جنوبیانگلیسی باستانآنگیکاآرامیماپوچه\u200cایآراپا" + - "هوییعربی الجزایریآراواکیعربی مراکشیعربی مصریآسوترکی آذربایجانی ایرانبلو" + - "چیبالیاییباواریاییباساییبمونیبجاییبمباییبناییبوجپوریبیکولیبینیلری بختیا" + - "ریبراجبراهوییبودوییبوریاتیبوگیاییبلینکادوییکاریبیسبوییچیگاچیبچاجغتاییچو" + - "کیماریاییچوکتوییچیپه\u200cویه\u200cایچروکیاییشایانیکردی سورانیقبطیترکی " + - "کریمهکاشوبیداکوتاییدارقینیتایتادلاواریدوگریبدینکاییزرمادوگریصÙربی سÙلید" + - "وآلاییهلندی میانهدیولا ÙونیدایولاییامبواÙیکیمصری کهناکاجوکعیلامیانگلیسی" + - " میانهاواندوÙانکیÙیلیپینیÙونیÙرانسوی میانهÙرانسوی باستانÙریزی شمالیÙریزی" + - " شرقیÙریولیاییگاییگاگاوزگایوییگبایاییدری زرتشتیگی\u200cئزیگیلبرتیگیلکیآل" + - "مانی علیای میانهآلمانی علیای باستانگوندیگورونتالوگوتیگریبویییونانی کهنآ" + - "لمانی سوئیسیگوسیگویچ اینهایداییهاوائیاییهندی Ùیجیاییهیلی\u200cگاینونیهی" + - "تیهمونگصÙربی علیاهوپاآیبنایلوکوییاینگوشیلوجباننگومباماچامه\u200cایÙارسی" + - " یهودیعربی یهودیقره\u200cقالپاقیقبایلیکاچینیجوکامباییکاویاییکاباردینیتیا" + - "پیماکوندهکابووردیانوکوروخاسیاییختنیکوجراچینیکهوارزازاکیکالنجینکیمبوندوی" + - "یکومی پرمیاککنکانیکپله\u200cایقره\u200cچاییâ€Ø¨Ø§Ù„کاریکوروخیشامبالاباÙیایی" + - "کومیکیکوتنیلادینولانگیلاهندالامبالزگیلاکوتامونگوییلوزیاییلوباییâ€Ù„ولوالو" + - "یسنولونداییلوئوییلوشه\u200cایلویاچینی ادبیمادوراییماگاهیاییمایدیلیماکاس" + - "ارماندینگوییماساییمکشاییماندارمنده\u200cایمروییموریسینایرلندی میانهماکو" + - "ا متومتاییمیکماکیمینانگ\u200cکابوییمانچوییمیته\u200cایموهاکیماسیاییماند" + - "انگیچندین زبانکریکیمارواریارزیاییناپلیناماییآلمانی سÙلینواریایینیاسینیو" + - "ییکوازیونغایینرس باستاننکوسوتویی شمالینویرنواریایی کلاسیکنیام\u200cوزیا" + - "یینیانکوله\u200cاینیورویینزیماییاوسیجیترکی عثمانیپانگاسینانیپهلویپامپان" + - "گاییپاپیامنتوپالائوییآلمانی پنسیلوانیاییÙارسی باستانÙنیقیپانپییپروسیپرو" + - "وانسی باستانکیچه\u200cراجستانیراپانوییراروتونگاییرومبوییرومانوییرواییسا" + - "نداوه\u200cاییاقوتیآرامی سامریسامبوروساساکیسانتالیسانگوسیسیلیاسکاتلندیس" + - "ناسلکوپیکویرابورا سنیایرلندی باستانتاچل\u200cهیتشانیعربی چادیسیداموییسا" + - "Ù…ÛŒ جنوبیلوله سامیایناری سامیاسکولت سامیسونینکه\u200cایسغدیتاکی\u200cتاک" + - "یسریریسوکوماییسوسوییسومریکوموریسواحلی کنگوییسریانی کلاسیکسریانیتمنه" + - "\u200cایتسوییترنوتتومیتیگره\u200cایتیویکلینگونتلین\u200cگیتیتاماشقیتونگا" + - "یی نیاساتوک\u200cپیسینیتسیم\u200cشیانیتومبوکاییتووالوییتسواکیتوواییآماز" + - "یغی اطلس مرکزیاودمورتیاوگاریتیامبوندوییریشهویاییوتیونجووالاموواراییواشو" + - "ییقلموقیسوگایییائویییاپیکانتونیزاپوتکیزناگاآمازیغی معیار مراکشزونیاییبد" + - "ون محتوای زبانیزازاییعربی رسمیآلمانی اتریشآلمانی علیای سوئیسانگلیسی است" + - "رالیاانگلیسی کاناداانگلیسی بریتانیاانگلیسی امریکااسپانیایی امریکای لاتی" + - "ناسپانیایی اروپااسپانیایی مکزیکÙرانسوی کاناداÙرانسوی سوئیسÙلمنگیپرتغالی" + - " برزیلپرتغالی اروپامولداویاییصرب Ùˆ کرواتیچینی ساده\u200cشدهچینی سنتی" - -// Size: 1234 bytes, 605 elements -var faLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000a, 0x0016, 0x0024, 0x0034, 0x003c, 0x0046, 0x0054, - 0x005c, 0x0066, 0x0070, 0x0080, 0x009d, 0x00ab, 0x00b9, 0x00c5, - 0x00d3, 0x00e5, 0x00f1, 0x00f9, 0x010b, 0x011b, 0x0129, 0x0131, - 0x0141, 0x014b, 0x0157, 0x015d, 0x0178, 0x0184, 0x018e, 0x019e, - 0x01aa, 0x01b8, 0x01c6, 0x01d3, 0x01df, 0x01ed, 0x01fd, 0x020f, - 0x0221, 0x022b, 0x0235, 0x0241, 0x024f, 0x025d, 0x0269, 0x0277, - 0x028a, 0x0298, 0x02b3, 0x02c5, 0x02d3, 0x02df, 0x02e7, 0x02f5, - 0x02fd, 0x0305, 0x031a, 0x0324, 0x0336, 0x0340, 0x034a, 0x0358, - // Entry 40 - 7F - 0x036b, 0x037f, 0x0391, 0x039f, 0x03b0, 0x03be, 0x03c6, 0x03d4, - 0x03e6, 0x03fa, 0x0404, 0x0413, 0x041b, 0x0427, 0x0437, 0x0447, - 0x0451, 0x0461, 0x0469, 0x047c, 0x0489, 0x049b, 0x04a7, 0x04af, - 0x04bd, 0x04cb, 0x04d7, 0x04e3, 0x04f9, 0x0507, 0x0517, 0x0525, - 0x0531, 0x0545, 0x0562, 0x0572, 0x0588, 0x0596, 0x05a8, 0x05b4, - 0x05c8, 0x05d2, 0x05dc, 0x05e8, 0x05f2, 0x0601, 0x0611, 0x0634, - 0x063e, 0x0650, 0x065a, 0x0674, 0x068d, 0x06b0, 0x06c0, 0x06d0, - 0x06e0, 0x06f2, 0x0702, 0x0713, 0x0719, 0x0725, 0x072d, 0x073b, - // Entry 80 - BF - 0x0743, 0x0751, 0x075d, 0x0769, 0x0779, 0x078b, 0x0793, 0x07ad, - 0x07bb, 0x07cf, 0x07d7, 0x07ea, 0x07f8, 0x0806, 0x0814, 0x082a, - 0x0838, 0x0844, 0x0856, 0x0868, 0x0870, 0x0880, 0x0897, 0x08a5, - 0x08af, 0x08bb, 0x08c7, 0x08d5, 0x08e1, 0x08ef, 0x0903, 0x090f, - 0x091f, 0x092d, 0x0948, 0x0958, 0x0964, 0x0976, 0x0984, 0x0994, - 0x099c, 0x09a6, 0x09b2, 0x09c0, 0x09cc, 0x09d8, 0x09e2, 0x09ee, - 0x09f4, 0x0a04, 0x0a10, 0x0a18, 0x0a24, 0x0a2c, 0x0a3c, 0x0a51, - 0x0a61, 0x0a74, 0x0a84, 0x0a8c, 0x0a98, 0x0aa0, 0x0ab2, 0x0abe, - // Entry C0 - FF - 0x0abe, 0x0ad5, 0x0af0, 0x0afc, 0x0b06, 0x0b19, 0x0b19, 0x0b2b, - 0x0b44, 0x0b52, 0x0b67, 0x0b78, 0x0b7e, 0x0b7e, 0x0b7e, 0x0b7e, - 0x0b7e, 0x0ba6, 0x0bb0, 0x0bbe, 0x0bd0, 0x0bdc, 0x0be6, 0x0be6, - 0x0be6, 0x0bf0, 0x0bfc, 0x0bfc, 0x0c06, 0x0c06, 0x0c06, 0x0c14, - 0x0c20, 0x0c28, 0x0c28, 0x0c28, 0x0c28, 0x0c28, 0x0c3d, 0x0c45, - 0x0c53, 0x0c5f, 0x0c5f, 0x0c6d, 0x0c7b, 0x0c7b, 0x0c83, 0x0c83, - 0x0c8f, 0x0c9b, 0x0c9b, 0x0c9b, 0x0ca5, 0x0cad, 0x0cb7, 0x0cc3, - 0x0ccb, 0x0cd9, 0x0cd9, 0x0ce7, 0x0cff, 0x0d0f, 0x0d1b, 0x0d30, - // Entry 100 - 13F - 0x0d38, 0x0d38, 0x0d4b, 0x0d57, 0x0d67, 0x0d75, 0x0d7f, 0x0d8d, - 0x0d8d, 0x0d99, 0x0da7, 0x0daf, 0x0db9, 0x0dcc, 0x0dcc, 0x0dda, - 0x0def, 0x0e02, 0x0e12, 0x0e12, 0x0e1a, 0x0e24, 0x0e24, 0x0e33, - 0x0e3f, 0x0e4b, 0x0e64, 0x0e64, 0x0e70, 0x0e70, 0x0e7a, 0x0e8a, - 0x0e8a, 0x0e92, 0x0e92, 0x0eab, 0x0ec6, 0x0ec6, 0x0edb, 0x0eee, - 0x0f00, 0x0f08, 0x0f14, 0x0f14, 0x0f20, 0x0f2e, 0x0f41, 0x0f4e, - 0x0f5c, 0x0f66, 0x0f88, 0x0fac, 0x0fac, 0x0fb6, 0x0fc8, 0x0fd0, - 0x0fde, 0x0ff1, 0x100a, 0x100a, 0x100a, 0x1012, 0x1021, 0x102f, - // Entry 140 - 17F - 0x102f, 0x1041, 0x1058, 0x1071, 0x1079, 0x1083, 0x1096, 0x1096, - 0x109e, 0x10a6, 0x10a6, 0x10b6, 0x10c4, 0x10c4, 0x10c4, 0x10d0, - 0x10dc, 0x10ef, 0x1104, 0x1117, 0x1117, 0x112e, 0x113a, 0x1146, - 0x114a, 0x1158, 0x1166, 0x1178, 0x1178, 0x1182, 0x1190, 0x11a6, - 0x11a6, 0x11ae, 0x11ae, 0x11bc, 0x11c4, 0x11d6, 0x11e0, 0x11ec, - 0x11ec, 0x11fa, 0x120e, 0x1223, 0x122f, 0x122f, 0x123e, 0x1260, - 0x1260, 0x1260, 0x1260, 0x126c, 0x127a, 0x1288, 0x1288, 0x1294, - 0x129e, 0x12aa, 0x12b4, 0x12c0, 0x12ca, 0x12d2, 0x12d2, 0x12d2, - // Entry 180 - 1BF - 0x12d2, 0x12de, 0x12de, 0x12ec, 0x12fa, 0x12fa, 0x1313, 0x131f, - 0x132d, 0x1339, 0x1348, 0x1350, 0x1361, 0x1361, 0x1371, 0x1371, - 0x1383, 0x1391, 0x139f, 0x13b3, 0x13bf, 0x13bf, 0x13cb, 0x13d7, - 0x13e6, 0x13f0, 0x13fe, 0x1417, 0x1428, 0x1432, 0x1440, 0x145b, - 0x1469, 0x1478, 0x1484, 0x1492, 0x1492, 0x14a2, 0x14b5, 0x14bf, - 0x14bf, 0x14cd, 0x14cd, 0x14cd, 0x14db, 0x14db, 0x14db, 0x14e5, - 0x14f1, 0x1506, 0x1516, 0x1520, 0x152a, 0x152a, 0x1536, 0x1536, - 0x1540, 0x1553, 0x1553, 0x1559, 0x1570, 0x1578, 0x1595, 0x15ac, - // Entry 1C0 - 1FF - 0x15c3, 0x15d1, 0x15df, 0x15eb, 0x1600, 0x1616, 0x1620, 0x1634, - 0x1646, 0x1656, 0x1656, 0x167b, 0x167b, 0x1692, 0x1692, 0x169c, - 0x169c, 0x169c, 0x16a8, 0x16b2, 0x16cf, 0x16da, 0x16da, 0x16ea, - 0x16fa, 0x1710, 0x1710, 0x1710, 0x171e, 0x172e, 0x172e, 0x172e, - 0x172e, 0x172e, 0x1738, 0x174d, 0x1759, 0x176e, 0x177c, 0x1788, - 0x1796, 0x1796, 0x1796, 0x17a0, 0x17ac, 0x17be, 0x17be, 0x17be, - 0x17c4, 0x17c4, 0x17d0, 0x17e9, 0x1804, 0x1804, 0x1815, 0x181d, - 0x182e, 0x183e, 0x183e, 0x183e, 0x1851, 0x1862, 0x1877, 0x188c, - // Entry 200 - 23F - 0x18a1, 0x18a9, 0x18bc, 0x18c6, 0x18c6, 0x18c6, 0x18d6, 0x18e2, - 0x18ec, 0x18f8, 0x1911, 0x192a, 0x1936, 0x1936, 0x1936, 0x1945, - 0x194f, 0x1957, 0x1961, 0x1972, 0x197a, 0x197a, 0x197a, 0x1988, - 0x199b, 0x199b, 0x19a9, 0x19c2, 0x19d7, 0x19d7, 0x19d7, 0x19d7, - 0x19ec, 0x19ec, 0x19fe, 0x1a0e, 0x1a1a, 0x1a26, 0x1a48, 0x1a58, - 0x1a68, 0x1a7a, 0x1a82, 0x1a8c, 0x1a8c, 0x1a8c, 0x1a8c, 0x1a8c, - 0x1a92, 0x1a92, 0x1a9a, 0x1a9a, 0x1aa6, 0x1ab2, 0x1abe, 0x1abe, - 0x1abe, 0x1aca, 0x1aca, 0x1ad6, 0x1ae2, 0x1aea, 0x1aea, 0x1aea, - // Entry 240 - 27F - 0x1aea, 0x1af8, 0x1b06, 0x1b06, 0x1b06, 0x1b10, 0x1b34, 0x1b42, - 0x1b62, 0x1b6e, 0x1b7f, 0x1b96, 0x1bb8, 0x1bd7, 0x1bf2, 0x1c11, - 0x1c2c, 0x1c58, 0x1c75, 0x1c92, 0x1cad, 0x1cc6, 0x1cd2, 0x1ceb, - 0x1d04, 0x1d18, 0x1d2e, 0x1d48, 0x1d59, -} - -// Size: 4652 bytes -var fiLangStr string = "" + - "afarabhaasiavestaafrikaansakanamharaaragoniaarabiaassamiavaariaimaraazer" + - "ibaÅ¡kiirivalkovenäjäbulgariabislamabambarabengalitiibetbretonibosniakata" + - "laanitÅ¡etÅ¡eenitÅ¡amorrokorsikacreetÅ¡ekkikirkkoslaavitÅ¡uvassikymritanskasa" + - "ksadivehidzongkhaewekreikkaenglantiesperantoespanjavirobaskifarsifulanis" + - "uomifidžifääriranskalänsifriisiiirigaeligaliciaguaranigudžaratimanksihau" + - "sahepreahindihiri-motukroatiahaitiunkariarmeniahererointerlinguaindonesi" + - "ainterlingueigbosichuanin-yiinupiaqidoislantiitaliainuktitutjapanijaavag" + - "eorgiakongokikujukuanjamakazakkikalaallisutkhmerkannadakoreakanurikaÅ¡mir" + - "ikurdikomikornikirgiisilatinaluxemburggandalimburglingalalaoliettuakatan" + - "ganlubalatviamalagassimarshallmaorimakedoniamalajalammongolimarathimalai" + - "jimaltaburmanaurupohjois-ndebelenepalindongahollantinorjan nynorsknorjan" + - " bokmÃ¥letelä-ndebelenavajonjandžaoksitaaniodžibwaoromoorijaosseettipandž" + - "abipaalipuolapaÅ¡tuportugaliketÅ¡uaretoromaanirundiromaniavenäjäruandasans" + - "kritsardisindhipohjoissaamesangosinhalaslovakkisloveenisamoaÅ¡onasomalial" + - "baniaserbiaswazieteläsothosundaruotsiswahilitamilitelugutadžikkithaitigr" + - "injaturkmeenitswanatongaturkkitsongatataaritahitiuiguuriukrainaurduuzbek" + - "kivendavietnamvolapükvalloniwolofxhosajiddiÅ¡jorubazhuangkiinazuluatÅ¡ehat" + - "Å¡oliadangmeadygetunisianarabiaafrihiliaghemainuakkadialabamaaleuttigega" + - "ltaimuinaisenglantiangikavaltakunnanarameamapudungunaraonaarapahoalgeria" + - "narabiaarawakmarokonarabiaegyptinarabiaasuamerikkalainen viittomakielias" + - "turiakotavaawadhieteläazeribelutÅ¡ibalibaijeribasaabamumbatak-tobaghomala" + - "bedžabembabetawibenafutbadagabhodžpuribikolbinibanjarkomsiksikabiÅ¡nupria" + - "bahtiaribradžbrahuibodokooseburjaattibugibulubilinmedumbacaddokaribicayu" + - "gaatsamcebuanokigatÅ¡ibtÅ¡atÅ¡agataichuukmarichinook-jargonchoctawchipewyan" + - "cherokeecheyennesoranikopticapiznonkrimintataarikaÅ¡ubidakotadargitaitade" + - "lawareslevidogribdinkadjermadogrialasorbidusundualakeskihollantijola-fon" + - "yidjuladazagaembuefikemiliamuinaisegyptiekajukelamikeskienglantialaskanj" + - "upikewondoextremadurafangfilipinomeänkielifoncajunkeskiranskamuinaisrans" + - "kaarpitaanipohjoisfriisiitäfriisifriuligagagauzigan-kiinagajogbajazoroas" + - "trialaisdarige’ezkiribatigilakikeskiyläsaksamuinaisyläsaksagoankonkanigo" + - "ndigorontalogoottigrebomuinaiskreikkasveitsinsaksawayuufrafragusiigwitÅ¡i" + - "nhaidahakka-kiinahavaijifidžinhindihiligainoheettihmongyläsorbixiang-kii" + - "nahupaibanibibioilokoinguuÅ¡iinkeroinenjamaikankreolienglantilojbanngomba" + - "machamejuutalaispersiajuutalaisarabiajuuttikarakalpakkikabyylikatÅ¡injjuk" + - "ambakavikabardikanembutyapmakondekapverdenkreolikenyangnorsunluurannikon" + - "korokaingangkhasikhotanikoyra chiinikhowarkirmanjkikakokalenjinkimbunduk" + - "omipermjakkikonkanikosraekpellekaratÅ¡ai-balkaarikriokinaray-akarjalakuru" + - "khshambalabafiakölschkumykkikutenailadinolangolahndalambalezgilingua fra" + - "nca novaliguuriliivilakotalombardimongolozilatgalliluluanlubaluiseñolund" + - "aluolusailuhyaklassinen kiinalazimaduramafamagahimaithilimakassarmanding" + - "omaasaimabamokÅ¡amandarmendemerumorisyenkeski-iirimakua-meettometa’micmac" + - "minangkabaumantÅ¡umanipurimohawkmossivuorimarimundangmonia kieliäcreekmir" + - "andeesimarwarimentawaimyeneersämazandaranimin nan -kiinanapolinamaalasak" + - "sanewariniasniueao nagakwasiongiemboonnogaimuinaisnorjanovialn’kopohjois" + - "sothonuerklassinen newarinyamwezinyankolenyoronzimaosageosmanipangasinan" + - "pahlavipampangapapiamentupalaupicardipennsylvaniansaksaplautdietschmuina" + - "ispersiapfaltsifoinikiapiemontepontoksenkreikkapohnpeimuinaispreussimuin" + - "aisprovensaalikʼicheʼchimborazonylänköketÅ¡uaradžastanirapanuirarotongaro" + - "magnolitarifitromboromanirotumaruteenirovianaaromaniarwasandawejakuuttis" + - "amarianarameasamburusasaksantalisauraÅ¡tringambaysangusisiliaskottisassar" + - "insardisenecasenaseriselkuppikoyraboro sennimuinaisiirisamogiittitaÅ¡elhi" + - "tshantÅ¡adinarabiasidamosleesiansaksaselayareteläsaameluulajansaameinarin" + - "saamekoltansaamesoninkesogdisrananserersahosaterlandinfriisisukumasususu" + - "merikomorikingwanamuinaissyyriasyyriasleesiatulutemnetesoterenotetumtigr" + - "etivtokelautsahuriklingontlingittaliÅ¡itamaÅ¡ekmalawintongatok-pisinturojo" + - "tarokotsakoniatsimÅ¡itatitumbukatuvalutasawaqtuvakeskiatlaksentamazightud" + - "murttiugaritmbundujuurivaivenetsiavepsälänsiflaamimaininfrankkivatjavõro" + - "vunjowalserwolaittawaraywashowu-kiinakalmukkimingrelisogajaojapiyangbeny" + - "embañeengatúkantoninkiinazapoteekkiblisskieliseelantizenagavakioitu tama" + - "zightzuniei kielellistä sisältöäzazayleisarabiaitävallansaksasveitsinylä" + - "saksaaustralianenglantikanadanenglantibritannianenglantiamerikanenglanti" + - "amerikanespanjaespanjanespanjameksikonespanjakanadanranskasveitsinranska" + - "flaamibrasilianportugaliportugalinportugalimoldovaserbokroaattiyksinkert" + - "aistettu kiinaperinteinen kiina" - -// Size: 1234 bytes, 605 elements -var fiLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000b, 0x0011, 0x001a, 0x001e, 0x0024, 0x002c, - 0x0032, 0x0038, 0x003e, 0x0044, 0x0049, 0x0052, 0x005f, 0x0067, - 0x006e, 0x0075, 0x007c, 0x0082, 0x0089, 0x008f, 0x0098, 0x00a3, - 0x00ac, 0x00b3, 0x00b7, 0x00be, 0x00ca, 0x00d3, 0x00d8, 0x00de, - 0x00e3, 0x00e9, 0x00f1, 0x00f4, 0x00fb, 0x0103, 0x010c, 0x0113, - 0x0117, 0x011c, 0x0121, 0x0127, 0x012c, 0x0132, 0x0139, 0x013f, - 0x014b, 0x014f, 0x0154, 0x015b, 0x0162, 0x016c, 0x0172, 0x0177, - 0x017d, 0x0182, 0x018b, 0x0192, 0x0197, 0x019d, 0x01a4, 0x01aa, - // Entry 40 - 7F - 0x01b5, 0x01be, 0x01c9, 0x01cd, 0x01d9, 0x01e0, 0x01e3, 0x01ea, - 0x01f0, 0x01f9, 0x01ff, 0x0204, 0x020b, 0x0210, 0x0216, 0x021e, - 0x0225, 0x0230, 0x0235, 0x023c, 0x0241, 0x0247, 0x024f, 0x0254, - 0x0258, 0x025d, 0x0265, 0x026b, 0x0274, 0x0279, 0x0280, 0x0287, - 0x028a, 0x0291, 0x029d, 0x02a3, 0x02ac, 0x02b4, 0x02b9, 0x02c2, - 0x02cb, 0x02d2, 0x02d9, 0x02e0, 0x02e5, 0x02ea, 0x02ef, 0x02fe, - 0x0304, 0x030a, 0x0312, 0x0320, 0x032e, 0x033c, 0x0342, 0x034a, - 0x0353, 0x035b, 0x0360, 0x0365, 0x036d, 0x0376, 0x037b, 0x0380, - // Entry 80 - BF - 0x0386, 0x038f, 0x0396, 0x03a1, 0x03a6, 0x03ad, 0x03b5, 0x03bb, - 0x03c3, 0x03c8, 0x03ce, 0x03da, 0x03df, 0x03e6, 0x03ee, 0x03f6, - 0x03fb, 0x0400, 0x0406, 0x040d, 0x0413, 0x0418, 0x0423, 0x0428, - 0x042e, 0x0435, 0x043b, 0x0441, 0x044a, 0x044e, 0x0456, 0x045f, - 0x0465, 0x046a, 0x0470, 0x0476, 0x047d, 0x0483, 0x048a, 0x0491, - 0x0495, 0x049c, 0x04a1, 0x04a8, 0x04b0, 0x04b7, 0x04bc, 0x04c1, - 0x04c8, 0x04ce, 0x04d4, 0x04d9, 0x04dd, 0x04e3, 0x04ea, 0x04f1, - 0x04f6, 0x0504, 0x050c, 0x0511, 0x0515, 0x051b, 0x0522, 0x0529, - // Entry C0 - FF - 0x052c, 0x0531, 0x0540, 0x0546, 0x0557, 0x0561, 0x0567, 0x056e, - 0x057c, 0x0582, 0x058f, 0x059c, 0x059f, 0x05bb, 0x05c2, 0x05c8, - 0x05ce, 0x05d9, 0x05e1, 0x05e5, 0x05ec, 0x05f1, 0x05f6, 0x0600, - 0x0607, 0x060d, 0x0612, 0x0618, 0x061c, 0x061f, 0x0625, 0x062f, - 0x0634, 0x0638, 0x063e, 0x0641, 0x0648, 0x0652, 0x065a, 0x0660, - 0x0666, 0x066a, 0x066f, 0x0678, 0x067c, 0x0680, 0x0685, 0x068c, - 0x0691, 0x0697, 0x069d, 0x06a2, 0x06a9, 0x06ad, 0x06b6, 0x06bf, - 0x06c4, 0x06c8, 0x06d6, 0x06dd, 0x06e6, 0x06ee, 0x06f6, 0x06fc, - // Entry 100 - 13F - 0x0701, 0x0709, 0x0716, 0x071d, 0x0723, 0x0728, 0x072d, 0x0735, - 0x073a, 0x0740, 0x0745, 0x074b, 0x0750, 0x0758, 0x075d, 0x0762, - 0x076f, 0x0779, 0x077e, 0x0784, 0x0788, 0x078c, 0x0792, 0x079f, - 0x07a5, 0x07aa, 0x07b7, 0x07c3, 0x07c9, 0x07d4, 0x07d8, 0x07e0, - 0x07ea, 0x07ed, 0x07f2, 0x07fd, 0x080a, 0x0813, 0x0820, 0x082a, - 0x0830, 0x0832, 0x0839, 0x0842, 0x0846, 0x084b, 0x085d, 0x0864, - 0x086c, 0x0872, 0x0880, 0x0890, 0x089b, 0x08a0, 0x08a9, 0x08af, - 0x08b4, 0x08c2, 0x08cf, 0x08d4, 0x08da, 0x08df, 0x08e7, 0x08ec, - // Entry 140 - 17F - 0x08f7, 0x08fe, 0x090a, 0x0913, 0x0919, 0x091e, 0x0927, 0x0932, - 0x0936, 0x093a, 0x0940, 0x0945, 0x094d, 0x0957, 0x096d, 0x0973, - 0x0979, 0x0980, 0x098f, 0x099e, 0x09a4, 0x09b0, 0x09b7, 0x09be, - 0x09c1, 0x09c6, 0x09ca, 0x09d1, 0x09d8, 0x09dc, 0x09e3, 0x09f2, - 0x09f9, 0x0a0e, 0x0a16, 0x0a1b, 0x0a22, 0x0a2e, 0x0a34, 0x0a3d, - 0x0a41, 0x0a49, 0x0a51, 0x0a5e, 0x0a65, 0x0a6b, 0x0a71, 0x0a83, - 0x0a87, 0x0a90, 0x0a97, 0x0a9d, 0x0aa5, 0x0aaa, 0x0ab1, 0x0ab8, - 0x0abf, 0x0ac5, 0x0aca, 0x0ad0, 0x0ad5, 0x0ada, 0x0aec, 0x0af3, - // Entry 180 - 1BF - 0x0af8, 0x0afe, 0x0b06, 0x0b0b, 0x0b0f, 0x0b17, 0x0b21, 0x0b29, - 0x0b2e, 0x0b31, 0x0b36, 0x0b3b, 0x0b4a, 0x0b4e, 0x0b54, 0x0b58, - 0x0b5e, 0x0b66, 0x0b6e, 0x0b76, 0x0b7c, 0x0b80, 0x0b86, 0x0b8c, - 0x0b91, 0x0b95, 0x0b9d, 0x0ba7, 0x0bb3, 0x0bba, 0x0bc0, 0x0bcb, - 0x0bd2, 0x0bda, 0x0be0, 0x0be5, 0x0bee, 0x0bf5, 0x0c02, 0x0c07, - 0x0c11, 0x0c18, 0x0c20, 0x0c25, 0x0c2a, 0x0c35, 0x0c43, 0x0c49, - 0x0c4d, 0x0c55, 0x0c5b, 0x0c5f, 0x0c63, 0x0c6a, 0x0c70, 0x0c79, - 0x0c7e, 0x0c8a, 0x0c90, 0x0c96, 0x0ca2, 0x0ca6, 0x0cb6, 0x0cbe, - // Entry 1C0 - 1FF - 0x0cc6, 0x0ccb, 0x0cd0, 0x0cd5, 0x0cdb, 0x0ce5, 0x0cec, 0x0cf4, - 0x0cfe, 0x0d03, 0x0d0a, 0x0d1c, 0x0d28, 0x0d35, 0x0d3c, 0x0d44, - 0x0d4c, 0x0d5c, 0x0d63, 0x0d71, 0x0d83, 0x0d8c, 0x0da6, 0x0db1, - 0x0db8, 0x0dc1, 0x0dca, 0x0dd1, 0x0dd6, 0x0ddc, 0x0de2, 0x0de9, - 0x0df0, 0x0df8, 0x0dfb, 0x0e02, 0x0e0a, 0x0e18, 0x0e1f, 0x0e24, - 0x0e2b, 0x0e35, 0x0e3c, 0x0e41, 0x0e48, 0x0e4e, 0x0e5b, 0x0e61, - 0x0e65, 0x0e69, 0x0e71, 0x0e80, 0x0e8b, 0x0e95, 0x0e9e, 0x0ea2, - 0x0eaf, 0x0eb5, 0x0ec2, 0x0ec9, 0x0ed4, 0x0ee1, 0x0eec, 0x0ef7, - // Entry 200 - 23F - 0x0efe, 0x0f03, 0x0f09, 0x0f0e, 0x0f12, 0x0f23, 0x0f29, 0x0f2d, - 0x0f33, 0x0f39, 0x0f41, 0x0f4e, 0x0f54, 0x0f5b, 0x0f5f, 0x0f64, - 0x0f68, 0x0f6e, 0x0f73, 0x0f78, 0x0f7b, 0x0f82, 0x0f89, 0x0f90, - 0x0f97, 0x0f9e, 0x0fa6, 0x0fb2, 0x0fbb, 0x0fc1, 0x0fc7, 0x0fcf, - 0x0fd6, 0x0fda, 0x0fe1, 0x0fe7, 0x0fee, 0x0ff2, 0x1008, 0x1010, - 0x1016, 0x101c, 0x1021, 0x1024, 0x102c, 0x1032, 0x103e, 0x104b, - 0x1050, 0x1055, 0x105a, 0x1060, 0x1068, 0x106d, 0x1072, 0x1072, - 0x107a, 0x1082, 0x108a, 0x108e, 0x1091, 0x1095, 0x109c, 0x10a1, - // Entry 240 - 27F - 0x10ab, 0x10b8, 0x10c2, 0x10cc, 0x10d4, 0x10da, 0x10ec, 0x10f0, - 0x110b, 0x110f, 0x111a, 0x1129, 0x113a, 0x114c, 0x115b, 0x116d, - 0x117d, 0x118c, 0x119b, 0x11aa, 0x11b7, 0x11c5, 0x11cb, 0x11dd, - 0x11f0, 0x11f7, 0x1204, 0x121b, 0x122c, -} - -// Size: 2002 bytes -var filLangStr string = "" + - "AbkhazianAfrikaansAkanAmharicArabeAssameseAymaraAzerbaijaniBashkirBelaru" + - "sianBulgarianBambaraBengaliTibetanBretonBosnianCatalanCorsicanCzechWelsh" + - "DanishGermanDivehiDzongkhaEweGreekInglesEsperantoSpanishEstonianBasquePe" + - "rsianFinnishFijianFaroeseFrenchWestern FrisianIrishScots GaelicGalicianG" + - "uaraniGujaratiManxHausaHebrewHindiCroatianHaitianHungarianArmenianInterl" + - "inguaIndonesianInterlingueIgboSichuan YiIcelandicItalianInuktitutJapanes" + - "eJavaneseGeorgianKongoKikuyuKazakhKalaallisutKhmerKannadaKoreanKashmiriK" + - "urdishCornishKirghizLatinLuxembourgishGandaLingalaLaoLithuanianLuba-Kata" + - "ngaLatvianMalagasyMaoriMacedonianMalayalamMongolianMarathiMalayMalteseBu" + - "rmeseNorth NdebeleNepaliDutchNorwegian NynorskNorwegian BokmalNyanjaOcci" + - "tanOromoOriyaOsseticPunjabiPolishPashtoPortugesQuechuaRomanshRundiRomani" + - "anRussianKinyarwandaSanskritSindhiNorthern SamiSangoSinhalaSlovakSloveni" + - "anSamoanShonaSomaliAlbanianSerbianSwatiSouthern SothoSundaneseSwedishSwa" + - "hiliTamilTeluguTajikThaiTigrinyaTurkmenTswanaTonganTurkishTsongaTatarTah" + - "itianUyghurUkranianUrduUzbekVendaVietnameseWolofXhosaYiddishYorubaChines" + - "eZuluAcoliAghemMapucheAsuBembaBenaBodoChigaCherokeeSorani KurdishTaitaZa" + - "rmaLower SorbianDualaJola-FonyiEmbuEfikFilipinoGaGagauzSwiss GermanGusii" + - "HawaiianUpper SorbianNgombaMachameKabyleKambaMakondeKabuverdianuKoyra Ch" + - "iiniKalenjinKomi-PermyakKonkaniShambalaBafiaLangiLakotaLoziLuba-LuluaLuo" + - "LuyiaMasaiMeruMorisyenMakhuwa-MeettoMeta’MohawkMundangNamaKwasioN’KoNort" + - "hern SothoNuerNyankoleKʼicheʼRomboRwaSamburuSanguSenaKoyraboro SenniTach" + - "elhitSouthern SamiLule SamiInari SamiSkolt SamiComorianSwahili (Congo)Te" + - "soTetumKlingonTok PisinTumbukaTasawaqTamazight ng Gitnang AtlasHindi Kil" + - "alang WikaVaiVunjoSogaCantoneseStandard Moroccan TamazightWalang nilalam" + - "an na ukol sa wikaModernong Karaniwang ArabeIngles ng AustralyaIngles sa" + - " CanadaIngles (UK)Ingles (US)Latin American SpanishEuropean SpanishMexic" + - "an SpanishCanadian FrenchSwiss FrenchFlemishBrazilian PortugueseEuropean" + - " PortugueseMoldavianSerbo-CroatianSimplified Chinese" - -// Size: 1232 bytes, 604 elements -var filLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0009, 0x0009, 0x0012, 0x0016, 0x001d, 0x001d, - 0x0022, 0x002a, 0x002a, 0x0030, 0x003b, 0x0042, 0x004c, 0x0055, - 0x0055, 0x005c, 0x0063, 0x006a, 0x0070, 0x0077, 0x007e, 0x007e, - 0x007e, 0x0086, 0x0086, 0x008b, 0x008b, 0x008b, 0x0090, 0x0096, - 0x009c, 0x00a2, 0x00aa, 0x00ad, 0x00b2, 0x00b8, 0x00c1, 0x00c8, - 0x00d0, 0x00d6, 0x00dd, 0x00dd, 0x00e4, 0x00ea, 0x00f1, 0x00f7, - 0x0106, 0x010b, 0x0117, 0x011f, 0x0126, 0x012e, 0x0132, 0x0137, - 0x013d, 0x0142, 0x0142, 0x014a, 0x0151, 0x015a, 0x0162, 0x0162, - // Entry 40 - 7F - 0x016d, 0x0177, 0x0182, 0x0186, 0x0190, 0x0190, 0x0190, 0x0199, - 0x01a0, 0x01a9, 0x01b1, 0x01b9, 0x01c1, 0x01c6, 0x01cc, 0x01cc, - 0x01d2, 0x01dd, 0x01e2, 0x01e9, 0x01ef, 0x01ef, 0x01f7, 0x01fe, - 0x01fe, 0x0205, 0x020c, 0x0211, 0x021e, 0x0223, 0x0223, 0x022a, - 0x022d, 0x0237, 0x0243, 0x024a, 0x0252, 0x0252, 0x0257, 0x0261, - 0x026a, 0x0273, 0x027a, 0x027f, 0x0286, 0x028d, 0x028d, 0x029a, - 0x02a0, 0x02a0, 0x02a5, 0x02b6, 0x02c6, 0x02c6, 0x02c6, 0x02cc, - 0x02d3, 0x02d3, 0x02d8, 0x02dd, 0x02e4, 0x02eb, 0x02eb, 0x02f1, - // Entry 80 - BF - 0x02f7, 0x02ff, 0x0306, 0x030d, 0x0312, 0x031a, 0x0321, 0x032c, - 0x0334, 0x0334, 0x033a, 0x0347, 0x034c, 0x0353, 0x0359, 0x0362, - 0x0368, 0x036d, 0x0373, 0x037b, 0x0382, 0x0387, 0x0395, 0x039e, - 0x03a5, 0x03ac, 0x03b1, 0x03b7, 0x03bc, 0x03c0, 0x03c8, 0x03cf, - 0x03d5, 0x03db, 0x03e2, 0x03e8, 0x03ed, 0x03f5, 0x03fb, 0x0403, - 0x0407, 0x040c, 0x0411, 0x041b, 0x041b, 0x041b, 0x0420, 0x0425, - 0x042c, 0x0432, 0x0432, 0x0439, 0x043d, 0x043d, 0x0442, 0x0442, - 0x0442, 0x0442, 0x0442, 0x0447, 0x0447, 0x0447, 0x0447, 0x0447, - // Entry C0 - FF - 0x0447, 0x0447, 0x0447, 0x0447, 0x0447, 0x044e, 0x044e, 0x044e, - 0x044e, 0x044e, 0x044e, 0x044e, 0x0451, 0x0451, 0x0451, 0x0451, - 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, - 0x0451, 0x0451, 0x0456, 0x0456, 0x045a, 0x045a, 0x045a, 0x045a, - 0x045a, 0x045a, 0x045a, 0x045a, 0x045a, 0x045a, 0x045a, 0x045a, - 0x045a, 0x045e, 0x045e, 0x045e, 0x045e, 0x045e, 0x045e, 0x045e, - 0x045e, 0x045e, 0x045e, 0x045e, 0x045e, 0x0463, 0x0463, 0x0463, - 0x0463, 0x0463, 0x0463, 0x0463, 0x0463, 0x046b, 0x046b, 0x0479, - // Entry 100 - 13F - 0x0479, 0x0479, 0x0479, 0x0479, 0x0479, 0x0479, 0x047e, 0x047e, - 0x047e, 0x047e, 0x047e, 0x0483, 0x0483, 0x0490, 0x0490, 0x0495, - 0x0495, 0x049f, 0x049f, 0x049f, 0x04a3, 0x04a7, 0x04a7, 0x04a7, - 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04a7, 0x04af, - 0x04af, 0x04af, 0x04af, 0x04af, 0x04af, 0x04af, 0x04af, 0x04af, - 0x04af, 0x04b1, 0x04b7, 0x04b7, 0x04b7, 0x04b7, 0x04b7, 0x04b7, - 0x04b7, 0x04b7, 0x04b7, 0x04b7, 0x04b7, 0x04b7, 0x04b7, 0x04b7, - 0x04b7, 0x04b7, 0x04c3, 0x04c3, 0x04c3, 0x04c8, 0x04c8, 0x04c8, - // Entry 140 - 17F - 0x04c8, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04dd, 0x04dd, - 0x04dd, 0x04dd, 0x04dd, 0x04dd, 0x04dd, 0x04dd, 0x04dd, 0x04dd, - 0x04e3, 0x04ea, 0x04ea, 0x04ea, 0x04ea, 0x04ea, 0x04f0, 0x04f0, - 0x04f0, 0x04f5, 0x04f5, 0x04f5, 0x04f5, 0x04f5, 0x04fc, 0x0508, - 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0514, 0x0514, 0x0514, - 0x0514, 0x051c, 0x051c, 0x0528, 0x052f, 0x052f, 0x052f, 0x052f, - 0x052f, 0x052f, 0x052f, 0x052f, 0x0537, 0x053c, 0x053c, 0x053c, - 0x053c, 0x053c, 0x0541, 0x0541, 0x0541, 0x0541, 0x0541, 0x0541, - // Entry 180 - 1BF - 0x0541, 0x0547, 0x0547, 0x0547, 0x054b, 0x054b, 0x0555, 0x0555, - 0x0555, 0x0558, 0x0558, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, - 0x055d, 0x055d, 0x055d, 0x055d, 0x0562, 0x0562, 0x0562, 0x0562, - 0x0562, 0x0566, 0x056e, 0x056e, 0x057c, 0x0583, 0x0583, 0x0583, - 0x0583, 0x0583, 0x0589, 0x0589, 0x0589, 0x0590, 0x0590, 0x0590, - 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, - 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x059a, 0x059a, - 0x059a, 0x059a, 0x059a, 0x05a0, 0x05ae, 0x05b2, 0x05b2, 0x05b2, - // Entry 1C0 - 1FF - 0x05ba, 0x05ba, 0x05ba, 0x05ba, 0x05ba, 0x05ba, 0x05ba, 0x05ba, - 0x05ba, 0x05ba, 0x05ba, 0x05ba, 0x05ba, 0x05ba, 0x05ba, 0x05ba, - 0x05ba, 0x05ba, 0x05ba, 0x05ba, 0x05ba, 0x05c3, 0x05c3, 0x05c3, - 0x05c3, 0x05c3, 0x05c3, 0x05c3, 0x05c8, 0x05c8, 0x05c8, 0x05c8, - 0x05c8, 0x05c8, 0x05cb, 0x05cb, 0x05cb, 0x05cb, 0x05d2, 0x05d2, - 0x05d2, 0x05d2, 0x05d2, 0x05d7, 0x05d7, 0x05d7, 0x05d7, 0x05d7, - 0x05db, 0x05db, 0x05db, 0x05ea, 0x05ea, 0x05ea, 0x05f3, 0x05f3, - 0x05f3, 0x05f3, 0x05f3, 0x05f3, 0x0600, 0x0609, 0x0613, 0x061d, - // Entry 200 - 23F - 0x061d, 0x061d, 0x061d, 0x061d, 0x061d, 0x061d, 0x061d, 0x061d, - 0x061d, 0x0625, 0x0634, 0x0634, 0x0634, 0x0634, 0x0634, 0x0634, - 0x0638, 0x0638, 0x063d, 0x063d, 0x063d, 0x063d, 0x063d, 0x0644, - 0x0644, 0x0644, 0x0644, 0x0644, 0x064d, 0x064d, 0x064d, 0x064d, - 0x064d, 0x064d, 0x0654, 0x0654, 0x065b, 0x065b, 0x0675, 0x0675, - 0x0675, 0x0675, 0x0688, 0x068b, 0x068b, 0x068b, 0x068b, 0x068b, - 0x068b, 0x068b, 0x0690, 0x0690, 0x0690, 0x0690, 0x0690, 0x0690, - 0x0690, 0x0690, 0x0690, 0x0694, 0x0694, 0x0694, 0x0694, 0x0694, - // Entry 240 - 27F - 0x0694, 0x069d, 0x069d, 0x069d, 0x069d, 0x069d, 0x06b8, 0x06b8, - 0x06d8, 0x06d8, 0x06f2, 0x06f2, 0x06f2, 0x0705, 0x0715, 0x0720, - 0x072b, 0x0741, 0x0751, 0x0760, 0x076f, 0x077b, 0x0782, 0x0796, - 0x07a9, 0x07b2, 0x07c0, 0x07d2, -} - -// Size: 4124 bytes -var frLangStr string = "" + - "afarabkhazeavestiqueafrikaansakanamhariquearagonaisarabeassamaisavarayma" + - "raazéribachkirbiélorussebulgarebichelamarbambarabengalitibétainbretonbos" + - "niaquecatalantchétchènechamorrocorsecreetchèqueslavon d’églisetchouvache" + - "galloisdanoisallemandmaldiviendzongkhaéwégrecanglaisespérantoespagnolest" + - "onienbasquepersanpeulfinnoisfidjienféroïenfrançaisfrison occidentalirlan" + - "daisgaélique écossaisgalicienguaranigujaratimanxhaoussahébreuhindihiri m" + - "otucroatehaïtienhongroisarménienhérérointerlinguaindonésieninterlingueig" + - "boyi du Sichuaninupiaqidoislandaisitalieninuktitutjaponaisjavanaisgéorgi" + - "enkongokikuyukuanyamakazakhgroenlandaiskhmerkannadacoréenkanourikashmiri" + - "kurdekomicorniquekirghizelatinluxembourgeoisgandalimbourgeoislingalalaol" + - "ituanienluba-katangalettonmalgachemarshallmaorimacédonienmalayalammongol" + - "marathemalaismaltaisbirmannauruanndébélé du Nordnépalaisndonganéerlandai" + - "snorvégien nynorsknorvégien bokmÃ¥lndébélé du Sudnavahonyanjaoccitanojibw" + - "aoromooriyaossètependjabipalipolonaispachtoportugaisquechuaromancheround" + - "iroumainrusserwandasanskritsardesindhisami du Nordsanghocinghalaisslovaq" + - "ueslovènesamoanshonasomalialbanaisserbeswatisesothosoundanaissuédoisswah" + - "ilitamoultélougoutadjikthaïtigrignaturkmènetswanatonguienturctsongatatar" + - "tahitienouïghourukrainienourdououzbekvendavietnamienvolapukwallonwolofxh" + - "osayiddishyorubazhuangchinoiszoulouacehacoliadangmeadyghéenafrihiliaghem" + - "aïnouakkadienaléoutealtaï du Sudancien anglaisangikaaraméenaraukanarapah" + - "oarawakassouasturienawadhibaloutchibalinaisbassabamounghomalabedjabembab" + - "énabafutbhojpuribikolbinikomsiksikabrajbodoakoosebouriatebugibouloublin" + - "medumbacaddocaribecayugaatsamcebuanokigachibchatchaghataïchuukmarijargon" + - " chinookchoctawchipewyancherokeecheyennesoranicopteturc de Criméekachoub" + - "edakotadargwataitadelawareslaveydogribdinkazarmadogribas-sorabedoualamoy" + - "en néerlandaisdiola-fognydiouladazagaembouefikégyptien ancienekajukélami" + - "temoyen anglaiséwondofangfilipinofonmoyen françaisancien françaisfranco-" + - "provençalfrison du Nordfrison orientalfrioulangagagaouzegayogbayaguèzegi" + - "lbertaismoyen haut-allemandancien haut allemandgondigorontalogotiquegreb" + - "ogrec anciensuisse allemandgusiigwichʼinhaidahawaïenhiligaynonhittitehmo" + - "nghaut-sorabehupaibanibibioilokanoingouchelojbanngombamachamejudéo-persa" + - "njudéo-arabekarakalpakkabylekachinjjukambakawikabardinkanemboutyapmakond" + - "ecapverdienkorokhasikhotanaiskoyra chiinikakokalenjinkiMboundoukomi-perm" + - "iakkonkanikusaienkpellékaratchaï balkarcarélienkurukhchambalabafiafranci" + - "que ripuairekoumykkutenailadinolangilahndalambalezghienlakotamongolozilu" + - "ba-lulualuisenolundaluolushaioluluyiamaduraismafamagahimaithilimakassarm" + - "andinguemasaimabamoksamandarmendémeroucréole mauricienmoyen irlandaismak" + - "huwa-meettométa’micmacminangkabaumandchoumanipurimohawkmorémundangmultil" + - "inguecreekmirandaismarwarîmyènèerzyanapolitainnamabas-allemandnewarinias" + - "niuékwasiongiemboonnogaïvieux norroisn’kosotho du Nordnuernewarî classiq" + - "uenyamwezinyankolényoronzemaosageturc ottomanpangasinanpahlavipampanganp" + - "apiamentopalaupersan ancienphénicienpohnpeiprovençal ancienk’iche’rajast" + - "hanirapanuirarotongienrombotziganevalaquerwasandaweiakoutearaméen samari" + - "tainsamburusasaksantalngambaysangusicilienécossaissenecasenaselkoupekoyr" + - "aboro senniancien irlandaischleuhshanarabe tchadiensidamosami du Sudsami" + - " de Lulesami d’Inarisami skoltsoninkésogdiensranan tongosérèresahosukuma" + - "soussousumériencomorienswahili du Congosyriaque classiquesyriaquetemnete" + - "soterenotetumtigrétivtokelauklingontlingittamacheqtonga nyasatok pisinta" + - "rokotsimshiantumbukatuvalutasawaqtouvatamazightoudmourteougaritiqueumbun" + - "duracinevaïvotevunjowalserwalamowaraywashokalmouksogayaoyapoisyangbenyem" + - "bacantonaiszapotèquesymboles Blisszenagaamazighe standard marocainzunisa" + - "ns contenu linguistiquezazakiarabe standard moderneallemand autrichienal" + - "lemand suisseanglais australienanglais canadienanglais britanniqueanglai" + - "s américainespagnol latino-américainespagnol européenespagnol mexicainfr" + - "ançais canadienfrançais suisseflamandportugais brésilienportugais europé" + - "enmoldaveserbo-croatechinois simplifiéchinois traditionnel" - -// Size: 1234 bytes, 605 elements -var frLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000b, 0x0014, 0x001d, 0x0021, 0x002a, 0x0033, - 0x0038, 0x0040, 0x0044, 0x004a, 0x0050, 0x0057, 0x0062, 0x0069, - 0x0073, 0x007a, 0x0081, 0x008a, 0x0090, 0x0099, 0x00a0, 0x00ac, - 0x00b4, 0x00b9, 0x00bd, 0x00c5, 0x00d7, 0x00e1, 0x00e8, 0x00ee, - 0x00f6, 0x00ff, 0x0107, 0x010c, 0x0110, 0x0117, 0x0121, 0x0129, - 0x0131, 0x0137, 0x013d, 0x0141, 0x0148, 0x014f, 0x0158, 0x0161, - 0x0172, 0x017b, 0x018e, 0x0196, 0x019d, 0x01a5, 0x01a9, 0x01b0, - 0x01b7, 0x01bc, 0x01c5, 0x01cb, 0x01d3, 0x01db, 0x01e4, 0x01ec, - // Entry 40 - 7F - 0x01f7, 0x0202, 0x020d, 0x0211, 0x021e, 0x0225, 0x0228, 0x0231, - 0x0238, 0x0241, 0x0249, 0x0251, 0x025a, 0x025f, 0x0265, 0x026d, - 0x0273, 0x027f, 0x0284, 0x028b, 0x0292, 0x0299, 0x02a1, 0x02a6, - 0x02aa, 0x02b2, 0x02ba, 0x02bf, 0x02cd, 0x02d2, 0x02de, 0x02e5, - 0x02e8, 0x02f1, 0x02fd, 0x0303, 0x030b, 0x0313, 0x0318, 0x0323, - 0x032c, 0x0332, 0x0339, 0x033f, 0x0346, 0x034c, 0x0353, 0x0365, - 0x036e, 0x0374, 0x0380, 0x0392, 0x03a4, 0x03b5, 0x03bb, 0x03c1, - 0x03c8, 0x03ce, 0x03d3, 0x03d8, 0x03df, 0x03e7, 0x03eb, 0x03f3, - // Entry 80 - BF - 0x03f9, 0x0402, 0x0409, 0x0411, 0x0417, 0x041e, 0x0423, 0x0429, - 0x0431, 0x0436, 0x043c, 0x0448, 0x044e, 0x0458, 0x0460, 0x0468, - 0x046e, 0x0473, 0x0479, 0x0481, 0x0486, 0x048b, 0x0492, 0x049c, - 0x04a4, 0x04ab, 0x04b1, 0x04ba, 0x04c0, 0x04c5, 0x04cd, 0x04d6, - 0x04dc, 0x04e4, 0x04e8, 0x04ee, 0x04f3, 0x04fb, 0x0504, 0x050d, - 0x0513, 0x0519, 0x051e, 0x0528, 0x052f, 0x0535, 0x053a, 0x053f, - 0x0546, 0x054c, 0x0552, 0x0559, 0x055f, 0x0563, 0x0568, 0x056f, - 0x0578, 0x0578, 0x0580, 0x0585, 0x058b, 0x0593, 0x0593, 0x059b, - // Entry C0 - FF - 0x059b, 0x05a8, 0x05b6, 0x05bc, 0x05c4, 0x05cb, 0x05cb, 0x05d2, - 0x05d2, 0x05d8, 0x05d8, 0x05d8, 0x05dd, 0x05dd, 0x05e5, 0x05e5, - 0x05eb, 0x05eb, 0x05f4, 0x05fc, 0x05fc, 0x0601, 0x0607, 0x0607, - 0x060e, 0x0613, 0x0618, 0x0618, 0x061d, 0x0622, 0x0622, 0x062a, - 0x062f, 0x0633, 0x0633, 0x0636, 0x063d, 0x063d, 0x063d, 0x0641, - 0x0641, 0x0645, 0x064b, 0x0653, 0x0657, 0x065d, 0x0661, 0x0668, - 0x066d, 0x0673, 0x0679, 0x067e, 0x0685, 0x0689, 0x0690, 0x069b, - 0x06a0, 0x06a4, 0x06b2, 0x06b9, 0x06c2, 0x06ca, 0x06d2, 0x06d8, - // Entry 100 - 13F - 0x06dd, 0x06dd, 0x06ec, 0x06f4, 0x06fa, 0x0700, 0x0705, 0x070d, - 0x0713, 0x0719, 0x071e, 0x0723, 0x0728, 0x0732, 0x0732, 0x0738, - 0x074a, 0x0755, 0x075b, 0x0761, 0x0766, 0x076a, 0x076a, 0x077a, - 0x0780, 0x0788, 0x0795, 0x0795, 0x079c, 0x079c, 0x07a0, 0x07a8, - 0x07a8, 0x07ab, 0x07ab, 0x07ba, 0x07ca, 0x07db, 0x07e9, 0x07f8, - 0x0800, 0x0802, 0x080a, 0x080a, 0x080e, 0x0813, 0x0813, 0x0819, - 0x0823, 0x0823, 0x0836, 0x084a, 0x084a, 0x084f, 0x0858, 0x085f, - 0x0864, 0x086f, 0x087e, 0x087e, 0x087e, 0x0883, 0x088c, 0x0891, - // Entry 140 - 17F - 0x0891, 0x0899, 0x0899, 0x08a3, 0x08aa, 0x08af, 0x08ba, 0x08ba, - 0x08be, 0x08c2, 0x08c8, 0x08cf, 0x08d7, 0x08d7, 0x08d7, 0x08dd, - 0x08e3, 0x08ea, 0x08f7, 0x0903, 0x0903, 0x090d, 0x0913, 0x0919, - 0x091c, 0x0921, 0x0925, 0x092d, 0x0935, 0x0939, 0x0940, 0x094a, - 0x094a, 0x094e, 0x094e, 0x0953, 0x095c, 0x0968, 0x0968, 0x0968, - 0x096c, 0x0974, 0x097e, 0x098a, 0x0991, 0x0998, 0x099f, 0x09b0, - 0x09b0, 0x09b0, 0x09b9, 0x09bf, 0x09c7, 0x09cc, 0x09de, 0x09e4, - 0x09eb, 0x09f1, 0x09f6, 0x09fc, 0x0a01, 0x0a09, 0x0a09, 0x0a09, - // Entry 180 - 1BF - 0x0a09, 0x0a0f, 0x0a0f, 0x0a14, 0x0a18, 0x0a18, 0x0a22, 0x0a29, - 0x0a2e, 0x0a31, 0x0a37, 0x0a3f, 0x0a3f, 0x0a3f, 0x0a47, 0x0a4b, - 0x0a51, 0x0a59, 0x0a61, 0x0a6a, 0x0a6f, 0x0a73, 0x0a78, 0x0a7e, - 0x0a84, 0x0a89, 0x0a9a, 0x0aa9, 0x0ab7, 0x0abf, 0x0ac5, 0x0ad0, - 0x0ad8, 0x0ae0, 0x0ae6, 0x0aeb, 0x0aeb, 0x0af2, 0x0afd, 0x0b02, - 0x0b0b, 0x0b13, 0x0b13, 0x0b1a, 0x0b1f, 0x0b1f, 0x0b1f, 0x0b29, - 0x0b2d, 0x0b39, 0x0b3f, 0x0b43, 0x0b48, 0x0b48, 0x0b4e, 0x0b57, - 0x0b5d, 0x0b6a, 0x0b6a, 0x0b70, 0x0b7d, 0x0b81, 0x0b92, 0x0b9a, - // Entry 1C0 - 1FF - 0x0ba3, 0x0ba8, 0x0bad, 0x0bb2, 0x0bbe, 0x0bc8, 0x0bcf, 0x0bd8, - 0x0be2, 0x0be7, 0x0be7, 0x0be7, 0x0be7, 0x0bf4, 0x0bf4, 0x0bfe, - 0x0bfe, 0x0bfe, 0x0c05, 0x0c05, 0x0c16, 0x0c21, 0x0c21, 0x0c2b, - 0x0c32, 0x0c3d, 0x0c3d, 0x0c3d, 0x0c42, 0x0c49, 0x0c49, 0x0c49, - 0x0c49, 0x0c50, 0x0c53, 0x0c5a, 0x0c61, 0x0c74, 0x0c7b, 0x0c80, - 0x0c86, 0x0c86, 0x0c8d, 0x0c92, 0x0c9a, 0x0ca3, 0x0ca3, 0x0ca9, - 0x0cad, 0x0cad, 0x0cb5, 0x0cc4, 0x0cd4, 0x0cd4, 0x0cda, 0x0cde, - 0x0cec, 0x0cf2, 0x0cf2, 0x0cf2, 0x0cfd, 0x0d09, 0x0d17, 0x0d21, - // Entry 200 - 23F - 0x0d29, 0x0d30, 0x0d3c, 0x0d44, 0x0d48, 0x0d48, 0x0d4e, 0x0d55, - 0x0d5e, 0x0d66, 0x0d76, 0x0d88, 0x0d90, 0x0d90, 0x0d90, 0x0d95, - 0x0d99, 0x0d9f, 0x0da4, 0x0daa, 0x0dad, 0x0db4, 0x0db4, 0x0dbb, - 0x0dc2, 0x0dc2, 0x0dca, 0x0dd5, 0x0dde, 0x0dde, 0x0de4, 0x0de4, - 0x0ded, 0x0ded, 0x0df4, 0x0dfa, 0x0e01, 0x0e06, 0x0e0f, 0x0e18, - 0x0e23, 0x0e2a, 0x0e30, 0x0e34, 0x0e34, 0x0e34, 0x0e34, 0x0e34, - 0x0e38, 0x0e38, 0x0e3d, 0x0e43, 0x0e49, 0x0e4e, 0x0e53, 0x0e53, - 0x0e53, 0x0e5a, 0x0e5a, 0x0e5e, 0x0e61, 0x0e67, 0x0e6e, 0x0e73, - // Entry 240 - 27F - 0x0e73, 0x0e7c, 0x0e86, 0x0e94, 0x0e94, 0x0e9a, 0x0eb4, 0x0eb8, - 0x0ed1, 0x0ed7, 0x0eed, 0x0f00, 0x0f0f, 0x0f21, 0x0f31, 0x0f44, - 0x0f56, 0x0f70, 0x0f82, 0x0f93, 0x0fa5, 0x0fb5, 0x0fbc, 0x0fd0, - 0x0fe3, 0x0fea, 0x0ff6, 0x1008, 0x101c, -} - -// Size: 3 bytes -const frCALangStr string = "luo" - -// Size: 812 bytes, 394 elements -var frCALangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 80 - BF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry C0 - FF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 100 - 13F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 140 - 17F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 180 - 1BF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0003, -} - -// Size: 11217 bytes -var guLangStr string = "" + - "અફારઅબખાજિયનઅવેસà«àª¤àª¨àª†àª«à«àª°àª¿àª•àª¨à«àª¸àª…કાનàªàª®à«àª¹àª¾àª°àª¿àª•àª…રà«àª—ોનીàªàª…રબીઆસામીઅવેરિકઆયમારાઅàªàª°" + - "બૈજાનીબશà«àª•à«€àª°àª¬à«‡àª²àª¾àª°à«àª¶àª¿àª¯àª¨àª¬àª²à«àª—ેરિયનબિસà«àª²àª¾àª®àª¾àª¬àª¾àª®à«àª¬àª¾àª°àª¾àª¬àª‚ગાળીતિબેટીયનબà«àª°à«‡àªŸà«‹àª¨àª¬à«‹" + - "સà«àª¨àª¿àª¯àª¨àª•àª¤àª²àª¾àª¨àªšà«‡àªšàª¨àª•à«‡àª®à«‹àª°à«‹àª•à«‹àª°à«àª¸àª¿àª•àª¨àª•à«àª°à«€àªšà«‡àª•àªšàª°à«àªš સà«àª²àª¾àªµàª¿àª•àªšà«‚વાશવેલà«àª¶àª¡à«‡àª¨àª¿àª¶àªœàª°à«àª®àª¨àª¦àª¿" + - "વેહીડà«àªà«‹àª‚ગà«àª–ાઈવગà«àª°à«€àª•àª…ંગà«àª°à«‡àªœà«€àªàª¸à«àªªà«‡àª°àª¾àª¨à«àªŸà«‹àª¸à«àªªà«‡àª¨àª¿àª¶àªàª¸à«àªŸà«‹àª¨àª¿àª¯àª¨àª¬àª¾àª¸à«àª•àª«àª¾àª°àª¸à«€àª«à«àª²àª¾àª¹" + - "ફિનિશફિજીયનફોરિસà«àª¤àª«à«àª°à«‡àª¨à«àªšàªªàª¶à«àªšàª¿àª®à«€ ફà«àª°àª¿àª¶àª¿àª¯àª¨àª†àª‡àª°àª¿àª¶àª¸à«àª•à«‹àªŸà«àª¸ ગેલિકગેલિશિયનગà«àª†" + - "રાનીગà«àªœàª°àª¾àª¤à«€àª®àª¾àª‚કà«àª¸àª¹à«Œàª¸àª¾àª¹à«€àª¬à«àª°à«àª¹àª¿àª¨à«àª¦à«€àª¹àª¿àª°à«€ મોટૂકà«àª°à«‹àªàª¶àª¿àª¯àª¨àª¹à«ˆàª¤à«€àª¯àª¨àª¹àª‚ગેરિયનઆરà«àª®à«‡" + - "નિયનહેરેરોઇંટરલિંગà«àª†àª‡àª¨à«àª¡à«‹àª¨à«‡àª¶àª¿àª¯àª¨àª‡àª‚ટરલિંગઇગà«àª¬à«‹àª¸àª¿àªšà«àª†àª¨ યીઇનà«àªªàª¿àª¯àª¾àª•àª‡àª¡à«Œàª†àª‡àª¸àª²à«‡àª¨" + - "à«àª¡àª¿àª•àª‡àªŸàª¾àª²àª¿àª¯àª¨àª‡àª¨à«àª•àª¿àªŸà«‚ટજાપાનીàªàªœàª¾àªµàª¾àª¨à«€àª¸àªœà«àª¯à«‹àª°à«àªœàª¿àª…નકોંગોકિકà«àª¯à«‚કà«àªµàª¾àª¨à«àª¯àª¾àª®àª¾àª•àªàª¾àª–કલ" + - "ાલà«àª²àª¿àª¸à«àª¤àª–à«àª®à«‡àª°àª•àª¨à«àª¨àª¡àª•à«‹àª°àª¿àª¯àª¨àª•àª¨à«àª°à«€àª•àª¾àª¶à«àª®à«€àª°à«€àª•à«àª°à«àª¦àª¿àª¶àª•à«‹àª®à«€àª•à«‹àª°à«àª¨àª¿àª¶àª•àª¿àª°à«àª—à«€àªàª²à«‡àªŸàª¿àª¨àª²àª•à«" + - "àªà«‡àª®àª¬àª°à«àª—િશગાંડાલિંબૂરà«àª—િશલિંગાલાલાઓથિયનલિથà«àª¨àª¿àª¯àª¨àª²à«àª¯à«‚બા કટાંગાલાતવિયનમલાગ" + - "સીમારà«àª¶àª²à«€àªàª®àª¾àª“રીમેસેડોનિયનમલયાલમમોંગોલિયનમરાઠીમલયમાલà«àªŸàª¿àªàª¬àª°à«àª®à«€àªàª¨àª¾àª‰àª°à«‚ઉતર " + - "દેબેલનેપાળીડોનà«àª—ાડચનૉરà«àªµà«‡àªœà«€àª¯àª¨ નાયનૉરà«àª¸à«àª•àª¨à«‹àª°à«àªµà«‡àªœà«€àª¯àª¨ બોકમાલદકà«àª·àª¿àª£ દેબેલન" + - "ાવાજોનà«àª¯àª¾àª¨à«àªœàª¾àª“કà«àª¸àª¿àªŸàª¨àª“àªàª¿àª‚બà«àªµàª¾àª“રોમોઉડિયાઓસà«àª¸à«‡àªŸàª¿àª•àªªàª‚જાબીપાલીપોલીશપશà«àª¤à«‹àªªà«‹àª°à«" + - "ટà«àª—à«€àªàª•à«àªµà«‡àªšà«àª†àª°à«‹àª®àª¾àª¨à«àª¶àª°à«‚નà«àª¦à«€àª°à«‹àª®àª¾àª¨àª¿àª¯àª¨àª°àª¶àª¿àª¯àª¨àª•àª¿àª¨à«àª¯àª¾àª°àªµàª¾àª¨à«àª¡àª¾àª¸àª‚સà«àª•à«ƒàª¤àª¸àª¾àª°à«àª¦àª¿àª¨àª¿àª¯àª¨àª¸àª¿" + - "ંધીઉતà«àª¤àª°à«€àª¯ સામીસાંગોસિંહાલીસà«àª²à«‹àªµà«…કસà«àª²à«‹àªµà«‡àª¨àª¿àª¯àª¨àª¸àª¾àª®à«‹àª¨àª¶à«‹àª¨àª¾àª¸à«‹àª®àª¾àª²à«€àª…લà«àª¬à«‡àª¨àª¿àª¯àª¨àª¸àª°" + - "à«àª¬àª¿àª¯àª¨àª¸à«àªµàª¾àª¤à«€àª¸àª¦àª°à«àª¨ સોથોસંડેનીàªàª¸à«àªµà«€àª¡àª¿àª¶àª¸à«àªµàª¾àª¹àª¿àª²à«€àª¤àª®àª¿àª²àª¤à«‡àª²à«àª—à«àª¤àª¾àªœà«€àª•àª¥àª¾àªˆàªŸàª¾àª‡àª—à«àª°àª¿àª¨àª¿" + - "યાતà«àª°à«àª•àª®à«‡àª¨àª¤à«àª¸à«àªµàª¾àª¨àª¾àªŸà«‹àª‚ગાનટરà«àª•à«€àª¶àª¸à«‹àª‚ગાતતારતાહિતિયનઉઇગà«àª°àª¯à«àª•à«àª°à«‡àª¨àª¿àª¯àª¨àª‰àª°à«àª¦à«‚ઉàªà«" + - "બેકવેનà«àª¦àª¾àªµàª¿àª¯à«‡àª¤àª¨àª¾àª®à«€àª¸àªµà«‹àª²àª¾àªªà«àª•àªµàª¾àª²à«‚નવોલોફખોસાયિદà«àª¦àª¿àª¶àª¯à«‹àª°à«‚બાàªà«àª†àª—ચાઇનીàªàªà«àª²à«àª…ચી" + - "નીàªàª•à«‹àª²à«€àª…દાંગà«àª®à«€àª…દિઘેઅફà«àª°àª¿àª¹àª¿àª²à«€àª…ઘેમàªàª¨à«àª…કà«àª•àª¾àª¦à«€àª¯àª¾àª¨àª…લેઉતદકà«àª·àª¿àª£ અલà«àª¤àª¾àª‡àªœà«àª¨à«€ અ" + - "ંગà«àª°à«‡àªœà«€àª…ંગીકાઅરà«àª®àª¾àª‡àª•àªàª°à«‹àª•à«ˆàª¨àª¿àª¯àª¨àª…રાપાહોઆલà«àªœà«‡àª°àª¿àª¯àª¨ અરબીઅરાવકમોરોકà«àª•àª¨ અરબીઈજ" + - "િપà«àª¶àª¿àª¯àª¨ અરબીઅસà«àª…સà«àª¤à«àª°àª¿àª¯àª¨àª…વધીદકà«àª·àª¿àª£ àªàª°àª¬à«ˆàªœàª¾àª¨à«€àª¬àª²à«‚ચીબાલિનીસબસાબેજાબેમà«àª¬àª¾àª¬à«‡" + - "નાભોજપà«àª°à«€àª¬àª¿àª•à«‹àª²àª¬àª¿àª¨à«€àª¸àª¿àª•à«àª¸àª¿àª•àª¾àª¬àª¿àª·à«àª¨à«àªªà«àª°àª¿àª¯àª¾àªµà«àª°àªœàª¬à«àª°àª¾àª¹à«àªˆàª¬à«‹àª¡à«‹àª¬à«àª°àª¿àª¯àª¾àª¤àª¬àª—િનીસબà«àª²àª¿" + - "નકડà«àª¡à«‹àª•àª°àª¿àª¬àª…તà«àª¸àª®àª¸àª¿àª¬à«àª†àª¨à«‹àªšàª¿àª—ાચિબà«àªšàª¾àª›àª—ાતાઇચૂકીસેમારીચિનૂક જારà«àª—નચોકà«àª¤à«Œàª¶àª¿àªªà«‡" + - "વà«àª¯àª¾àª¨àª¶à«‡àª°à«‹àª•à«€àª¶à«‡àª¯à«‡àª¨à«àª¨àª¸à«‹àª°àª¾àª¨à«€ કà«àª°à«àª¦àª¿àª¶àª•à«‹àªªà«àªŸàª¿àª•àª•à«àª°àª¿àª®àª¿àª¯àª¨ તà«àª°à«àª•à«€àª•àª¾àª¶à«àª¬àª¿àª¯àª¨àª¦àª¾àª•à«‹àª¤àª¾àª¦àª¾" + - "રà«àª—વાતૈતાદેલેવેરસà«àª²à«‡àªµàª¡à«‹àª—à«àª°àª¿àª¬àª¦àª¿àª¨à«àª•àª¾àªàª°à«àª®àª¾àª¡à«‹àª—à«àª°à«€àª¨àª¿àª®à«àª¨ સોરà«àª¬àª¿àª¯àª¨àª¦à«àª†àª²àª¾àª®àª§à«àª¯ ડ" + - "ચજોલા-ફોનà«àª¯à«€àª¡à«àª¯à«àª²àª¾àªàª®à«àª¬à«àªàª«àª¿àª•àªªà«àª°àª¾àªšà«€àª¨ ઇજીપà«àª¶àª¿àª¯àª¨àªàª•àª¾àªœà«àª•àªàª²àª¾àª®àª¾àª‡àªŸàª®àª¿àª¡àª¿àª² અંગà«àª°à«‡àªœ" + - "ીઇવોનà«àª¡à«‹àª«à«‡àª‚ગફિલિપિનોફોનમિડિલ ફà«àª°à«‡àª‚ચજૂની ફà«àª°à«‡àª‚ચનોરà«àª§àª°à«àª¨ ફà«àª°àª¿àª¶àª¿àª¯àª¨àªªà«‚રà«àªµ ફ" + - "à«àª°àª¿àª¶àª¿àª¯àª¨àª«à«àª°àª¿àª¯à«àª²àª¿àª¯àª¾àª¨Gaગાગાàªàª—ાયોબાયાàªà«‹àª°à«‹àª¸à«àªŸà«àª°àª¿àª…ન દારીગીàªàªœàª¿àª²à«àª¬àª°àªŸà«€àªàª®àª§à«àª¯ હાઇ" + - " જરà«àª®àª¨àªœà«‚ની હાઇ જરà«àª®àª¨àª—ોઅન કોંકણીગોંડીગોરોનà«àª¤àª¾àª²à«‹àª—ોથિકગà«àª°à«‡àª¬à«‹àªªà«àª°àª¾àªšà«€àª¨ ગà«àª°à«€àª•àª¸à«" + - "વિસ જરà«àª®àª¨àª—à«àª¸à«€àª—à«àªµàª¿àªšâ€™àª‡àª¨àª¹à«ˆàª¡àª¾àª¹àª¾àªµàª¾àª‡àª¯àª¨àª«à«€àªœà«€ હિંદીહિલિગેનોનહિટà«àªŸàª¿àª¤à«‡àª®à«‹àª‚ગઅપà«àªªàª° સ" + - "ોરà«àª¬àª¿àª¯àª¨àª¹à«‚પાઇબાનઇલોકોઇંગà«àª¶àª²à«‹àªœà«àª¬àª¾àª¨àª¨àª—ોમà«àª¬àª¾àª®àª•àª¾àª®à«‡àªœà«àª¦à«‡àª“-પરà«àª¶àª¿àª¯àª¨àªœà«àª¦à«‡àª“-અરબીકાર" + - "ા-કલà«àªªàª•àª•àª¬àª¾àª‡àª²àª•àª¾àªšàª¿àª¨àªœà«àªœà«àª•àª®à«àª¬àª¾àª•àª¾àªµà«€àª•àª¬àª¾àª°à«àª¡àª¿àª¯àª¨àª¤à«àª¯àª¾àªªàª®àª•à«‹àª¨à«àª¡à«‡àª•àª¾àª¬à«àªµàª°à«àª¡àª¿àª†àª¨à«àª•à«‹àª°à«‹àª–ાસ" + - "ીખોતાનીસકોયરા ચિનિકલેજિનકિમà«àª¬àª¨à«àª¦à«àª•à«‹àª®à«€-પરà«àª®à«àª¯àª¾àª•àª•à«‹àª‚કણીકોસરિયનકà«àªªà«‡àª²à«àª²à«‡àª•àª°àª¾" + - "ચય-બલà«àª•àª¾àª°àª•àª°à«‡àª²àª¿àª¯àª¨àª•à«àª°à«‚ખશમà«àª¬àª¾àª²àª¾àª¬àª«àª¿àª¯àª¾àª•à«àª®à«€àª•àª•à«àª¤à«‡àª¨àª¾àª‡àª²àª¾àª¦à«€àª¨à«‹àª²àª‚ગીલાહનà«àª¡àª¾àª²àª¾àª®à«àª¬àª¾àª²à«‡" + - "àªàª§à«€àª¯àª¨àª²àª¿àª‚ગà«àªµàª¾ ફેનà«àª•àª¾ નોવાલાકોટામોગોલોàªà«€àª²à«àª¯à«‚બા-લà«àª²à«àª†àª²à«àª‡àª¸à«‡àª¨à«‹àª²à«àª¨à«àª¡àª¾àª²à«àª¯à«àª“લà«" + - "શાઇલà«àªˆàª¯àª¾àª®àª¾àª¦à«àª°à«€àª¸àª®àª—હીમૈથિલીમકાસરમનà«àª¡àª¿àª¨à«àª—ોમસાઇમોકà«àª·àª®àª‚ડારમેનà«àª¡à«‡àª®à«‡àª°à«àª®à«‹àª°à«€àª¸à«àª¯" + - "ેનમિડિલ આઇરિશમાખà«àªµàª¾-મીટà«àªŸà«àª®à«‡àª¤àª¾àª®àª¿àª•àª®à«‡àª•àª®àª¿àª¨àª¾àª‚ગà«àª•àª¾àª¬àª¾àª‰àª®àª¾àª¨à«àªšà«àª®àª£àª¿àªªà«àª°à«€àª®à«‹àª¹à«Œàª•àª®à«‹àª¸à«" + - "સીપશà«àªšàª¿àª®à«€ મારીમà«àª¨àª¡àª¾àª¨à«àª—બહà«àªµàª¿àª§ ભાષાકà«àª°àª¿àª•àª®àª¿àª°àª¾àª‚ડીમારવાડીàªàª°à«àªàª¯àª¾àª¨à«‡àªªà«‹àª²àª¿àªŸàª¾àª¨àª¨àª®àª¾" + - "લો જરà«àª®àª¨àª¨à«‡àªµàª¾àª¡à«€àª¨àª¿àª¯àª¾àª¸àª¨àª¿àª¯à«àª†àª¨àª•à«àªµàª¾àª¸àª¿àª“નોગાઇજૂની નોરà«àª¸àªàª¨â€™àª•à«‹àª‰àª¤àª°à«€ સોથોનà«àªàª°àªªàª°àª‚પર" + - "ાગત નેવારીનà«àª¯àª¾àª®àªµà«‡àªà«€àª¨à«àª¯àª¾àª¨àª•à«‹àª²àª¨à«àª¯à«‹àª°à«‹àª¨à«àªàª¿àª®àª¾àª“સેજઓટોમાન તà«àª°à«àª•àª¿àª¶àªªàª‚ગાસીનાનપહલવ" + - "ીપમà«àªªàª¾àª¨à«àª—ાપાપિયામેનà«àªŸà«‹àªªàª²àª¾àª‰àª†àª¨àªœà«‚ની ફારસીફોનિશિયનપોહપિàªàª¨àªœà«àª¨à«€ પà«àª°à«‹àªµà«‡àª¨à«àª¸àª²àª•àª¿" + - "ચેરાજસà«àª¥àª¾àª¨à«€àª°àª¾àªªàª¾àª¨à«àª‡àª°àª¾àª°à«‹àªŸà«‹àª‚ગનરોમà«àª¬à«‹àª°à«‹àª®àª¾àª¨à«€àª…રોમેનિયનરવાસોંડવેયાકૂતસામરિટાન" + - " અરેમિકસમà«àª¬à«àª°à«àª¸àª¾àª¸àª¾àª•àª¸àª‚તાલીસાંગà«àª¸àª¿àª¸àª¿àª²àª¿àª¯àª¾àª¨àª¸à«àª•à«‹àªŸà«àª¸àª¸à«‡àª¨àª¾àª¸à«‡àª²à«àª•àªªàª•à«‹àª¯àª°àª¾àª¬à«‹àª°à«‹ સેનà«àª¨à«€" + - "જૂની આયરિશતેશીલહિટશેનસિદામોદકà«àª·àª¿àª£ સામીલà«àª¯à«àª² સામીઇનારી સામીસà«àª•à«‹àª²à«àªŸ સામી" + - "સોનિનà«àª•à«‡àª¸à«‹àª—à«àª¡àª¿àªàª¨àª¸à«àª°àª¾àª¨àª¨ ટોનà«àª—ોસેરેરસà«àª•à«àª®àª¾àª¸à«àª¸à«àª¸à«àª®à«‡àª°àª¿àª¯àª¨àª•à«‹àª®à«‹àª°àª¿àª¯àª¨àª•à«‹àª‚ગો સà«àªµàª¾" + - "હિલીપરંપરાગત સિરિàªàª•àª¸àª¿àª°àª¿àªàª•àª¤à«àª²à«àªŸàª¿àª®à«àª¨à«‡àª¤à«‡àª¸à«‹àª¤à«‡àª°à«‡àª¨à«‹àª¤à«‡àª¤à«àª®àªŸàª¾àª‡àª—à«àª°à«‡àª¤àª¿àªµàª¤à«‹àª•à«‡àª²àª¾àª‰àª•à«àª²" + - "િનà«àª—ોનલિંગિતતામાશેખનà«àª¯àª¾àª¸àª¾ ટોનà«àª—ાટોક પિસિનસિમà«àª¶àª¿àª¯àª¨àª®à«àª¸à«àª²àª¿àª® તાટતà«àª®à«àª¬à«àª•àª¾àª¤à«" + - "વાલà«àª¤àª¸àª¾àªµàª¾àª•àªŸà«àªµà«€àª¨àª¿àª¯àª¨àª¸à«‡àª¨à«àªŸà«àª°àª² àªàªŸà«àª²àª¸ તામાàªàª¿àª—à«àªŸàª‰àª¦àª®à«àª°à«àª¤àª¯à«àª—ેરિટિકઉમà«àª¬à«àª¨à«àª¡à«‚મૂલ" + - "વાઇવોટિકવà«àª¨à«àªœà«‹àªµàª²àª¾àª®à«‹àªµàª¾àª°à«‡àªµàª¾àª¶à«‹àª•àª¾àª²à«àª®àª¿àª•àª¸à«‹àª—ાયાઓયાપીસકેંટોનીàªàªà«‡àªªà«‹àªŸà«‡àª•àª¬à«àª²àª¿àª¸àª¿àª®à«àª¬" + - "ોલà«àª¸àªà«‡àª¨àª¾àª—ાપà«àª°àª®àª¾àª£àª­à«‚ત મોરોકà«àª•àª¨ ટમાàªàª¿àªŸàªà«‚નીકોઇ ભાષાશાસà«àª¤à«àª°à«€àª¯ સામગà«àª°à«€ નથીàªàª¾" + - "àªàª¾àª®à«‹àª¡àª°à«àª¨ સà«àªŸàª¾àª¨à«àª¡àª°à«àª¡ અરબીઓસà«àªŸà«àª°àª¿àª…ન જરà«àª®àª¨àª¸à«àªµàª¿àª¸ હાય જરà«àª®àª¨àª“સà«àªŸà«àª°à«‡àª²àª¿àª¯àª¨ અંગà«" + - "રેજીકેનેડિયન અંગà«àª°à«‡àªœà«€àª¬à«àª°àª¿àªŸàª¿àª¶ અંગà«àª°à«‡àªœà«€àª…મેરિકન અંગà«àª°à«‡àªœà«€àª²à«‡àªŸàª¿àª¨ અમેરિકન સà«àªª" + - "ેનિશયà«àª°à«‹àªªàª¿àª¯àª¨ સà«àªªà«‡àª¨àª¿àª¶àª®à«‡àª•à«àª¸àª¿àª•àª¨ સà«àªªà«‡àª¨àª¿àª¶àª•à«‡àª¨à«‡àª¡àª¿àª¯àª¨ ફà«àª°à«‡àª‚ચસà«àªµàª¿àª¸ ફà«àª°à«‡àª‚ચફà«àª²à«‡àª®àª¿àª¶" + - "બà«àª°àª¾àªàª¿àª²à«€àª¯àª¨ પોરà«àªŸà«àª—à«€àªàª¯à«àª°à«‹àªªàª¿àª¯àª¨ પોરà«àªŸà«àª—à«€àªàª®à«‹àª²àª¡àª¾àªµàª¿àª¯àª¨àª¸àª°à«àª¬à«‹-કà«àª°à«‹àªàª¶àª¿àª¯àª¨àª¸àª°àª³à«€àª•à«ƒàª¤ " + - "ચાઇનીàªàªªàª¾àª°àª‚પરિક ચાઇનીàª" - -// Size: 1234 bytes, 605 elements -var guLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000c, 0x0024, 0x0039, 0x0054, 0x0060, 0x0078, 0x0090, - 0x009c, 0x00ab, 0x00bd, 0x00cf, 0x00ea, 0x00fc, 0x011a, 0x0135, - 0x014d, 0x0165, 0x0177, 0x018f, 0x01a4, 0x01bc, 0x01cb, 0x01d7, - 0x01e9, 0x0201, 0x020d, 0x0216, 0x0238, 0x0247, 0x0256, 0x0265, - 0x0274, 0x0286, 0x02a1, 0x02a7, 0x02b6, 0x02ce, 0x02ef, 0x0304, - 0x031f, 0x032e, 0x033d, 0x034c, 0x035b, 0x036d, 0x0382, 0x0397, - 0x03c5, 0x03d4, 0x03f9, 0x0411, 0x0426, 0x043b, 0x044d, 0x0459, - 0x046b, 0x047d, 0x0496, 0x04b1, 0x04c3, 0x04db, 0x04f6, 0x0508, - // Entry 40 - 7F - 0x0526, 0x0547, 0x055f, 0x056e, 0x0587, 0x059f, 0x05a8, 0x05c6, - 0x05db, 0x05f3, 0x0608, 0x061d, 0x063b, 0x064a, 0x065c, 0x067a, - 0x0686, 0x06a4, 0x06b3, 0x06c2, 0x06d4, 0x06e3, 0x06fb, 0x0710, - 0x071c, 0x0731, 0x0746, 0x0755, 0x0779, 0x0788, 0x07a6, 0x07bb, - 0x07d0, 0x07e8, 0x080d, 0x0822, 0x0834, 0x084c, 0x085b, 0x0879, - 0x088b, 0x08a6, 0x08b5, 0x08be, 0x08d3, 0x08e5, 0x08f4, 0x090d, - 0x091f, 0x0931, 0x0937, 0x0974, 0x09a5, 0x09c7, 0x09d9, 0x09f1, - 0x0a06, 0x0a1e, 0x0a2d, 0x0a3c, 0x0a54, 0x0a66, 0x0a72, 0x0a81, - // Entry 80 - BF - 0x0a90, 0x0aab, 0x0ac0, 0x0ad5, 0x0ae7, 0x0aff, 0x0b0e, 0x0b35, - 0x0b4a, 0x0b68, 0x0b77, 0x0b99, 0x0ba8, 0x0bbd, 0x0bd2, 0x0bf0, - 0x0bff, 0x0c0b, 0x0c1d, 0x0c38, 0x0c4d, 0x0c5f, 0x0c7b, 0x0c90, - 0x0ca5, 0x0cbd, 0x0cc9, 0x0cdb, 0x0cea, 0x0cf3, 0x0d14, 0x0d2c, - 0x0d44, 0x0d56, 0x0d68, 0x0d77, 0x0d83, 0x0d9b, 0x0daa, 0x0dc8, - 0x0dd7, 0x0de9, 0x0dfb, 0x0e19, 0x0e2e, 0x0e3d, 0x0e4c, 0x0e58, - 0x0e6d, 0x0e7f, 0x0e8b, 0x0e9d, 0x0ea9, 0x0eb8, 0x0ec7, 0x0edf, - 0x0eee, 0x0eee, 0x0f09, 0x0f15, 0x0f1e, 0x0f3c, 0x0f3c, 0x0f4b, - // Entry C0 - FF - 0x0f4b, 0x0f70, 0x0f95, 0x0fa7, 0x0fbc, 0x0fd7, 0x0fd7, 0x0fec, - 0x1014, 0x1023, 0x1048, 0x1070, 0x1079, 0x1079, 0x1094, 0x1094, - 0x10a0, 0x10cb, 0x10da, 0x10ef, 0x10ef, 0x10f8, 0x10f8, 0x10f8, - 0x10f8, 0x1104, 0x1116, 0x1116, 0x1122, 0x1122, 0x1122, 0x1137, - 0x1146, 0x1152, 0x1152, 0x1152, 0x116a, 0x118e, 0x118e, 0x119a, - 0x11af, 0x11bb, 0x11bb, 0x11d0, 0x11e2, 0x11e2, 0x11f1, 0x11f1, - 0x1200, 0x120c, 0x120c, 0x121b, 0x1230, 0x123c, 0x124e, 0x1260, - 0x1272, 0x127e, 0x12a0, 0x12b2, 0x12cd, 0x12df, 0x12f4, 0x131c, - // Entry 100 - 13F - 0x1331, 0x1331, 0x135c, 0x1374, 0x1386, 0x139b, 0x13a7, 0x13bc, - 0x13cb, 0x13e0, 0x13f2, 0x1401, 0x1413, 0x143b, 0x143b, 0x144a, - 0x145d, 0x147c, 0x148e, 0x148e, 0x149d, 0x14a9, 0x14a9, 0x14da, - 0x14ec, 0x1501, 0x1529, 0x1529, 0x153e, 0x153e, 0x154a, 0x1562, - 0x1562, 0x156b, 0x156b, 0x158d, 0x15ac, 0x15ac, 0x15dd, 0x1605, - 0x1626, 0x1628, 0x1637, 0x1637, 0x1643, 0x164f, 0x1680, 0x1689, - 0x16a4, 0x16a4, 0x16ca, 0x16f0, 0x170f, 0x171e, 0x173c, 0x174b, - 0x175d, 0x1782, 0x17a1, 0x17a1, 0x17a1, 0x17ad, 0x17c5, 0x17d1, - // Entry 140 - 17F - 0x17d1, 0x17e6, 0x1802, 0x181d, 0x1835, 0x1841, 0x1869, 0x1869, - 0x1875, 0x1881, 0x1881, 0x1890, 0x189f, 0x189f, 0x189f, 0x18b4, - 0x18c9, 0x18d8, 0x18fd, 0x1919, 0x1919, 0x1935, 0x1944, 0x1953, - 0x195f, 0x196e, 0x197a, 0x1995, 0x1995, 0x19a4, 0x19b9, 0x19dd, - 0x19dd, 0x19e9, 0x19e9, 0x19f5, 0x1a0a, 0x1a26, 0x1a26, 0x1a26, - 0x1a26, 0x1a38, 0x1a53, 0x1a78, 0x1a8a, 0x1a9f, 0x1ab7, 0x1ad9, - 0x1ad9, 0x1ad9, 0x1aee, 0x1afd, 0x1b12, 0x1b21, 0x1b21, 0x1b30, - 0x1b45, 0x1b57, 0x1b63, 0x1b78, 0x1b8a, 0x1b9f, 0x1bd4, 0x1bd4, - // Entry 180 - 1BF - 0x1bd4, 0x1be6, 0x1be6, 0x1bf2, 0x1bfe, 0x1bfe, 0x1c20, 0x1c35, - 0x1c47, 0x1c56, 0x1c65, 0x1c74, 0x1c74, 0x1c74, 0x1c89, 0x1c89, - 0x1c95, 0x1ca7, 0x1cb6, 0x1cd1, 0x1cdd, 0x1cdd, 0x1cec, 0x1cfb, - 0x1d0d, 0x1d19, 0x1d34, 0x1d53, 0x1d78, 0x1d84, 0x1d96, 0x1dba, - 0x1dcc, 0x1de1, 0x1df0, 0x1e02, 0x1e24, 0x1e3c, 0x1e5b, 0x1e6a, - 0x1e7f, 0x1e94, 0x1e94, 0x1e94, 0x1ea6, 0x1ea6, 0x1ea6, 0x1ec1, - 0x1eca, 0x1ee0, 0x1ef2, 0x1f01, 0x1f13, 0x1f13, 0x1f28, 0x1f28, - 0x1f37, 0x1f53, 0x1f53, 0x1f62, 0x1f7b, 0x1f87, 0x1fb2, 0x1fcd, - // Entry 1C0 - 1FF - 0x1fe5, 0x1ff7, 0x2009, 0x2015, 0x203d, 0x2058, 0x2067, 0x2082, - 0x20a6, 0x20b8, 0x20b8, 0x20b8, 0x20b8, 0x20d4, 0x20d4, 0x20ec, - 0x20ec, 0x20ec, 0x2101, 0x2101, 0x212c, 0x2138, 0x2138, 0x2153, - 0x2168, 0x2183, 0x2183, 0x2183, 0x2195, 0x21a7, 0x21a7, 0x21a7, - 0x21a7, 0x21c2, 0x21cb, 0x21dd, 0x21ec, 0x2217, 0x222c, 0x223b, - 0x224d, 0x224d, 0x224d, 0x225c, 0x2277, 0x228c, 0x228c, 0x228c, - 0x2298, 0x2298, 0x22aa, 0x22d8, 0x22f4, 0x22f4, 0x230c, 0x2315, - 0x2315, 0x2327, 0x2327, 0x2327, 0x2346, 0x2362, 0x237e, 0x23a0, - // Entry 200 - 23F - 0x23b8, 0x23d0, 0x23f5, 0x2404, 0x2404, 0x2404, 0x2416, 0x2422, - 0x243a, 0x2452, 0x247a, 0x24a5, 0x24b7, 0x24b7, 0x24c3, 0x24d5, - 0x24e1, 0x24f3, 0x2502, 0x2517, 0x2520, 0x2535, 0x2535, 0x2550, - 0x2562, 0x2562, 0x2577, 0x259c, 0x25b5, 0x25b5, 0x25b5, 0x25b5, - 0x25cd, 0x25ec, 0x2604, 0x2616, 0x2628, 0x2640, 0x2684, 0x2699, - 0x26b4, 0x26cf, 0x26d8, 0x26e1, 0x26e1, 0x26e1, 0x26e1, 0x26e1, - 0x26f0, 0x26f0, 0x2702, 0x2702, 0x2711, 0x271d, 0x2729, 0x2729, - 0x2729, 0x273e, 0x273e, 0x274a, 0x2753, 0x2762, 0x2762, 0x2762, - // Entry 240 - 27F - 0x2762, 0x277a, 0x278f, 0x27b6, 0x27b6, 0x27c8, 0x280f, 0x281b, - 0x286c, 0x2878, 0x28b6, 0x28e1, 0x290a, 0x2944, 0x2975, 0x29a3, - 0x29d1, 0x2a0c, 0x2a3a, 0x2a68, 0x2a93, 0x2ab5, 0x2aca, 0x2b04, - 0x2b38, 0x2b53, 0x2b7e, 0x2ba6, 0x2bd1, -} - -// Size: 7063 bytes -var heLangStr string = "" + - "×פ×רית×בחזית×בסטן×פריק×נס×ק×ן×מהרית×ר×גוניתערבית×ס×מית×ב×רית×יימ×רית×זרי" + - "תבשקיריתבל×רוסיתבולגריתביסלמהבמב×רהבנגליתטיבטיתברטוניתבוסניתקטל×ניתצ׳צ׳" + - "ניתצ׳מורוקורסיקניתקריצ׳כיתסל×בית כנסייתית עתיקהצ׳וב×שולשיתדניתגרמניתדיב" + - "הידזונקה×ווהיוונית×נגלית×ספרנטוספרדית×סטוניתבסקיתפרסיתפולהפיניתפיג׳יתפ×" + - "רו×זיתצרפתיתפריזית×יריתג×לית סקוטיתגליצי×ניתגו×רניגוג׳ר×טיתמ×ניתה×וסהעב" + - "ריתהינדיה×רי מוטוקרו×טיתה×יטיתהונגרית×רמניתהררו\u200f×ינטרלינגו××”×ינדונ" + - "זית×ינטרלינגה×יגבוסיצ׳ו×ן ×™×™×ינופי×ק×ידו×יסלנדית×יטלקית×ינוקטיטוטיפניתי" + - "×ווניתג×ורגיתקונגוקיקויוקו×× ×™×מהקזחיתק×ל×ליסוטיתקמריתקנ×דהקורי×ניתק×נור" + - "יקשמיריתכורדיתקומיקורניתקירגיזיתלטיניתלוקסמבורגיתג×נדהלימבורגישלינגלהל×" + - "יתליט×יתלובה-קטנגהלטביתמלגשיתמרש×לסמ×וריתמקדוניתמל××™×ל×מונגוליתמרטהימל×" + - "יתמלטיתבורמזיתנ×וריתצפון נדבלהנפ×ליתנדונגההולנדיתנורבגית חדשה\u200fנורב" + - "גית ×¡×¤×¨×•×ª×™×ª×“×¨×•× × ×“×‘×œ×”× ×‘×—×•× ×™×נג׳ה×וקסיטנית×וג׳יבווה×ורומו×וריה×וסטיתפנג׳" + - "×ביתפ×ליפולניתפ×שטופורטוגליתקצ׳ו×הרומ×נשקירונדירומניתרוסיתקינירו×נדהסנס" + - "קריטסרדיניתסינדהיתל×פית צפוניתסנגוסינהלהסלובקיתסלובניתסמו×יתשונהסומלית×" + - "לבניתסרביתסיסוו×טיססות׳וסונדניתשוודיתסווהיליתטמיליתטלוגוטג׳יקיתת×יתטיגר" + - "×™× ×יתטורקמניתטוניסיהטונגןטורקיתטסונגהטטריתטהיטית×ויגהור×וקר×ינית×ורדו×ו" + - "זבקיתוונדהוי×טנמית\u200fוול×פיקוו×לוןג׳ולוףקסוסהיידישיורובהז׳ו×נגסיניתז" + - "ולו×כינזית×קולי×דנמה×דיגית×פריהילי××”×™×™××ינו×כדית×ל×וט×לט××™ דרומית×נגלית" + - " עתיקה×נג׳יקה×רמית×ר×וקנית×רפהו×רוו×ק×סו×סטורית×וו×דיתב×לוצ׳יבלינזיתבוו×" + - "ריתבס××ב×קסגומלבז׳הבמבהבנהב×פוטבוג׳פוריביקולביניקו×סיקסיקהבר×ג׳בודו×קוס" + - "הבורי×טבוגינזיתבולובליןמדומבהק×דוק×ריבק×יוגה×טס×קבו×נוצ׳יגהצ׳יבצ׳הצ׳××’×" + - "ט×יצ׳וקסהמ×ריניב צ׳ינוקצ׳וקט×וצ׳יפווי×ןצ׳רוקיש×ייןכורדית סור×ניתקופטיתט" + - "טרית של קרי×קשובי×ןדקוטהדרגווהט×יטהדל×וורסל×ביתדוגריבדינקהז×רמהדוגריסור" + - "בית נמוכהדו×לההולנדית תיכונההולה-פוניידיולהדז×× ×’×”×מבו×פיקמצרית עתיקה×קי" + - "וקעילמית×נגלית תיכונה×וונדופנגפיליפיניתפוןצרפתית תיכונהצרפתית עתיקהפריז" + - "ית צפוניתפריזי×ן מזרחיתפריוליתג××’×’×וזיתג×יוגב×יהגעזגילברטזיתגרמנית בינו" + - "נית-גבוההגרמנית עתיקה גבוההגונדיגורונט×לוגותיתגרבויוונית עתיקהגרמנית שו" + - "ויצריתגוסיגוויצ׳יןה×ידההוו×יתהיליג×ינוןחיתיתמונגסורבית גבוהההופה×יב×ן××™" + - "ביביו×ילוקו×ינגושיתלויב×ןנגומהמצ׳×מהפרסית יהודיתערבית יהודיתק×ר×-קלפ×קק" + - "בילהקצ׳יןג׳יוקמבהק×וויקברדיתקנמבוטי×פמקונדהק×בוורדי×נוקורוק×סיקוט×נזיתק" + - "וירה צ׳יניק×קוק×לנג׳יןקימבונדוקומי-פרמי×קיתקונק×ניקוסר××™×ןקפלהקר×צ׳י-בל" + - "קרק×רליתקורוקשמב×להב×פיהקולוני×ןקומיקקוטנ×ילדינול×נגילנדהלמבהלזגיתלקוטה" + - "מונגולוזילובה, לולו×הלו×יסנולונדהלו×ולוש×ילויהמדורסהמ×פ×מ××’×היתמ×יטילית" + - "מקס×רמנדינגומ×ס×יתמ×ב×מוקשהמנד×רמנדהמרומוריסיין×ירית תיכונהמקו××”-מיטומט" + - "×מיקמקמיננגקב×ומנצ׳ומניפוריתמוהוקמוסימונד×נגמספר שפותקריקמירנדזיתמרוו×ר" + - "ימ×יין×רזיהנפוליטניתנ×מהגרמנית תחתיתנוו×ריני×סניו××™×ןקוו×סיונגי×מבוןנוג" + - "××™\u200fנורדית עתיקהנ׳קוסוטו הצפוניתנו×רנוו×רית קל×סיתני×מווזיני×נקולהנ" + - "יורונזימה×וסג׳הטורקית עותומניתפנגסינ×ןפל×ביפמפ×ניהפפי×מנטופלוו×ןפרסית ×¢" + - "תיקהפניקיתפונפי×ןפרובנס×ל עתיקהקיצ׳הר×ג׳סטןרפ×נויררוטונג×ןרומבורומ×נית×" + - "רומניתרוו×סנד×ווהס××—×”×רמית שומרוניתסמבורוסס×קס×נטלינגמב×יס×נגוסיצילי×× ×™" + - "תסקוטיתסנקהסנהסלקופקויר×בורו סני×ירית עתיקהטצ׳להיטש×ןערבית צ׳×דיתסידמוס" + - "×מי דרומיתלולה ס×מי××™× ×רי ס×מיסקולט ס×מיסונינקהסוגדי×ןסרנ×ן טונגוסררס××”" + - "וסוקומהסוסושומריתסווהילי קונגולטזיתסירית קל×סיתסוריתטימנהטסוטרנוטטו×טיג" + - "ריתטיבטוקל×וקלינגוןטלינגיטטמ×שקני×סה טונגהטוק פיסיןטרוקוטסימשי×ןטומבוקה" + - "טוב×לוטסוו×קטוביניתטמזייט של מרכז מרוקו×ודמורט×וגריתית×ומבונדורוטו×יווט" + - "יקוונג׳ווו×לסרוול×מווור×יוו×שוקלמיקסוגהי×וי×פזיתי×נגבןימבהקנטונזיתז×פוט" + - "קבליסימבולסזנ×גהתמזיע׳ת מרוק×ית ×ª×§× ×™×ª×–×•× ×™×œ×œ× ×ª×•×›×Ÿ לשוניז××–×ערבית ספרותי" + - "תגרמנית ×וסטריתגרמנית שוויצרית (גבוהה)×נגלית ×וסטרלית×נגלית קנדית×נגלית" + - " בריטית×נגלית ×מריק×יתספרדית לטינו־×מריק×יתספרדית ×ירופ×יתספרדית מקסיקני" + - "תצרפתית קנדיתצרפתית שוויצריתפלמיתפורטוגלית ברזיל×יתפורטוגלית ×ירופ×יתמו" + - "לדביתסרבו-קרו×טיתסינית מפושטתסינית מסורתית" - -// Size: 1234 bytes, 605 elements -var heLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000c, 0x0018, 0x0022, 0x0032, 0x003a, 0x0046, 0x0056, - 0x0060, 0x006c, 0x0078, 0x0088, 0x0092, 0x00a0, 0x00b0, 0x00be, - 0x00ca, 0x00d6, 0x00e2, 0x00ee, 0x00fc, 0x0108, 0x0116, 0x0124, - 0x0130, 0x0142, 0x0148, 0x0152, 0x017a, 0x0186, 0x0190, 0x0198, - 0x01a4, 0x01ae, 0x01ba, 0x01c2, 0x01ce, 0x01da, 0x01e8, 0x01f4, - 0x0202, 0x020c, 0x0216, 0x021e, 0x0228, 0x0234, 0x0244, 0x0250, - 0x025c, 0x0266, 0x027d, 0x028f, 0x029b, 0x02ad, 0x02b7, 0x02c1, - 0x02cb, 0x02d5, 0x02e6, 0x02f4, 0x0300, 0x030e, 0x031a, 0x0322, - // Entry 40 - 7F - 0x033d, 0x034f, 0x0363, 0x036d, 0x0380, 0x0390, 0x0398, 0x03a8, - 0x03b6, 0x03ca, 0x03d4, 0x03e2, 0x03f0, 0x03fa, 0x0406, 0x0416, - 0x0420, 0x0436, 0x0440, 0x044a, 0x045a, 0x0466, 0x0474, 0x0480, - 0x0488, 0x0494, 0x04a4, 0x04b0, 0x04c6, 0x04d0, 0x04e2, 0x04ee, - 0x04f6, 0x0502, 0x0515, 0x051f, 0x052b, 0x0537, 0x0543, 0x0551, - 0x055f, 0x056f, 0x0579, 0x0583, 0x058d, 0x059b, 0x05a7, 0x05ba, - 0x05c6, 0x05d2, 0x05e0, 0x05f7, 0x0617, 0x062a, 0x0632, 0x0640, - 0x0652, 0x0664, 0x0670, 0x067a, 0x0686, 0x0696, 0x069e, 0x06aa, - // Entry 80 - BF - 0x06b4, 0x06c6, 0x06d2, 0x06de, 0x06ec, 0x06f8, 0x0702, 0x0716, - 0x0724, 0x0732, 0x0740, 0x0757, 0x075f, 0x076b, 0x0779, 0x0787, - 0x0793, 0x079b, 0x07a7, 0x07b3, 0x07bd, 0x07cd, 0x07d9, 0x07e7, - 0x07f3, 0x0803, 0x080f, 0x0819, 0x0827, 0x082f, 0x0841, 0x0851, - 0x085f, 0x0869, 0x0875, 0x0881, 0x088b, 0x0897, 0x08a5, 0x08b7, - 0x08c1, 0x08cf, 0x08d9, 0x08e9, 0x08fa, 0x0906, 0x0912, 0x091c, - 0x0926, 0x0932, 0x093e, 0x0948, 0x0950, 0x095e, 0x0968, 0x0972, - 0x097e, 0x097e, 0x098e, 0x0998, 0x09a0, 0x09aa, 0x09aa, 0x09b4, - // Entry C0 - FF - 0x09b4, 0x09cb, 0x09e2, 0x09f0, 0x09fa, 0x0a0a, 0x0a0a, 0x0a14, - 0x0a14, 0x0a20, 0x0a20, 0x0a20, 0x0a26, 0x0a26, 0x0a34, 0x0a34, - 0x0a42, 0x0a42, 0x0a50, 0x0a5e, 0x0a6c, 0x0a74, 0x0a7c, 0x0a7c, - 0x0a84, 0x0a8c, 0x0a94, 0x0a94, 0x0a9a, 0x0aa4, 0x0aa4, 0x0ab4, - 0x0abe, 0x0ac6, 0x0ac6, 0x0acc, 0x0ada, 0x0ada, 0x0ada, 0x0ae4, - 0x0ae4, 0x0aec, 0x0af6, 0x0b02, 0x0b12, 0x0b1a, 0x0b22, 0x0b2e, - 0x0b36, 0x0b40, 0x0b4c, 0x0b54, 0x0b60, 0x0b6a, 0x0b78, 0x0b88, - 0x0b94, 0x0b9c, 0x0baf, 0x0bbd, 0x0bcf, 0x0bdb, 0x0be5, 0x0c00, - // Entry 100 - 13F - 0x0c0c, 0x0c0c, 0x0c24, 0x0c32, 0x0c3c, 0x0c48, 0x0c52, 0x0c5e, - 0x0c6a, 0x0c76, 0x0c80, 0x0c8a, 0x0c94, 0x0cab, 0x0cab, 0x0cb5, - 0x0cd0, 0x0ce3, 0x0ced, 0x0cf9, 0x0d01, 0x0d09, 0x0d09, 0x0d1e, - 0x0d28, 0x0d34, 0x0d4d, 0x0d4d, 0x0d59, 0x0d59, 0x0d5f, 0x0d71, - 0x0d71, 0x0d77, 0x0d77, 0x0d90, 0x0da7, 0x0da7, 0x0dc0, 0x0ddb, - 0x0de9, 0x0ded, 0x0dfb, 0x0dfb, 0x0e03, 0x0e0d, 0x0e0d, 0x0e13, - 0x0e25, 0x0e25, 0x0e4b, 0x0e6d, 0x0e6d, 0x0e77, 0x0e89, 0x0e93, - 0x0e9b, 0x0eb2, 0x0ecf, 0x0ecf, 0x0ecf, 0x0ed7, 0x0ee7, 0x0ef1, - // Entry 140 - 17F - 0x0ef1, 0x0efd, 0x0efd, 0x0f11, 0x0f1b, 0x0f23, 0x0f3a, 0x0f3a, - 0x0f42, 0x0f4c, 0x0f5a, 0x0f66, 0x0f76, 0x0f76, 0x0f76, 0x0f82, - 0x0f8c, 0x0f98, 0x0faf, 0x0fc6, 0x0fc6, 0x0fd9, 0x0fe3, 0x0fed, - 0x0ff5, 0x0ffd, 0x1007, 0x1013, 0x101d, 0x1025, 0x1031, 0x1047, - 0x1047, 0x104f, 0x104f, 0x1057, 0x1067, 0x107c, 0x107c, 0x107c, - 0x1084, 0x1094, 0x10a4, 0x10bd, 0x10cb, 0x10db, 0x10e3, 0x10f8, - 0x10f8, 0x10f8, 0x1104, 0x110e, 0x111a, 0x1124, 0x1134, 0x113e, - 0x114a, 0x1154, 0x115e, 0x1166, 0x116e, 0x1178, 0x1178, 0x1178, - // Entry 180 - 1BF - 0x1178, 0x1182, 0x1182, 0x118c, 0x1194, 0x1194, 0x11aa, 0x11b8, - 0x11c2, 0x11ca, 0x11d4, 0x11dc, 0x11dc, 0x11dc, 0x11e8, 0x11f0, - 0x11fe, 0x120e, 0x1218, 0x1226, 0x1232, 0x123a, 0x1244, 0x124e, - 0x1256, 0x125c, 0x126c, 0x1283, 0x1296, 0x129c, 0x12a6, 0x12b8, - 0x12c2, 0x12d2, 0x12dc, 0x12e4, 0x12e4, 0x12f2, 0x1303, 0x130b, - 0x131b, 0x1329, 0x1329, 0x1333, 0x133d, 0x133d, 0x133d, 0x134f, - 0x1357, 0x136e, 0x137a, 0x1382, 0x1390, 0x1390, 0x139e, 0x13ae, - 0x13b8, 0x13d2, 0x13d2, 0x13da, 0x13f1, 0x13f9, 0x1414, 0x1424, - // Entry 1C0 - 1FF - 0x1434, 0x143e, 0x1448, 0x1454, 0x1471, 0x1481, 0x148b, 0x1499, - 0x14a9, 0x14b5, 0x14b5, 0x14b5, 0x14b5, 0x14ca, 0x14ca, 0x14d6, - 0x14d6, 0x14d6, 0x14e4, 0x14e4, 0x14ff, 0x1509, 0x1509, 0x1517, - 0x1523, 0x1535, 0x1535, 0x1535, 0x153f, 0x154d, 0x154d, 0x154d, - 0x154d, 0x155b, 0x1563, 0x1571, 0x1579, 0x1594, 0x15a0, 0x15a8, - 0x15b4, 0x15b4, 0x15c0, 0x15ca, 0x15de, 0x15ea, 0x15ea, 0x15f2, - 0x15f8, 0x15f8, 0x1602, 0x161b, 0x1630, 0x1630, 0x163e, 0x1644, - 0x165b, 0x1665, 0x1665, 0x1665, 0x167a, 0x168b, 0x16a0, 0x16b3, - // Entry 200 - 23F - 0x16c1, 0x16cf, 0x16e4, 0x16ea, 0x16f2, 0x16f2, 0x16fe, 0x1706, - 0x1712, 0x1712, 0x1735, 0x174c, 0x1756, 0x1756, 0x1756, 0x1760, - 0x1766, 0x176e, 0x1776, 0x1782, 0x1788, 0x1794, 0x1794, 0x17a2, - 0x17b0, 0x17b0, 0x17ba, 0x17cf, 0x17e0, 0x17e0, 0x17ea, 0x17ea, - 0x17fa, 0x17fa, 0x1808, 0x1814, 0x1820, 0x182e, 0x1853, 0x1861, - 0x1871, 0x1881, 0x1887, 0x188d, 0x188d, 0x188d, 0x188d, 0x188d, - 0x1897, 0x1897, 0x18a3, 0x18af, 0x18bb, 0x18c5, 0x18cf, 0x18cf, - 0x18cf, 0x18d9, 0x18d9, 0x18e1, 0x18e7, 0x18f3, 0x18ff, 0x1907, - // Entry 240 - 27F - 0x1907, 0x1917, 0x1923, 0x1937, 0x1937, 0x1941, 0x1969, 0x1971, - 0x198b, 0x1993, 0x19ac, 0x19c7, 0x19f1, 0x1a0e, 0x1a25, 0x1a3e, - 0x1a5b, 0x1a84, 0x1aa1, 0x1abe, 0x1ad5, 0x1af2, 0x1afc, 0x1b1f, - 0x1b42, 0x1b50, 0x1b67, 0x1b7e, 0x1b97, -} - -// Size: 10978 bytes -var hiLangStr string = "" + - "अफ़ारअबà¥à¤–़ाज़ियनअवसà¥à¤¤à¤¾à¤ˆà¤…फ़à¥à¤°à¥€à¤•à¥€à¤…कनअमà¥à¤¹à¥‡à¤°à¥€à¤…रà¥à¤—ोनीअरबीअसमियाअवेरिकआयमाराअज" + - "़रबैजानीबशख़िरबेलारूसीबà¥à¤²à¥à¤—ारियाईबिसà¥à¤²à¤¾à¤®à¤¾à¤¬à¤¾à¤®à¥à¤¬à¤¾à¤°à¤¾à¤¬à¤‚गालीतिबà¥à¤¬à¤¤à¥€à¤¬à¥à¤°à¥‡à¤Ÿà¤¨à¤¬à¥‹" + - "सà¥à¤¨à¤¿à¤¯à¤¾à¤ˆà¤•à¤¾à¤¤à¤¾à¤²à¤¾à¤¨à¤šà¥‡à¤šà¤¨à¤•à¤®à¥‹à¤°à¥‹à¤•à¥‹à¤°à¥à¤¸à¥€à¤•à¤¨à¤•à¥à¤°à¥€à¤šà¥‡à¤•à¤šà¤°à¥à¤š सालà¥à¤µà¤¿à¤•à¤šà¥‚वाशवेलà¥à¤¶à¤¡à¥‡à¤¨à¤¿à¤¶à¤œà¤°à¥à¤®à¤¨" + - "दिवेहीज़ोनà¥à¤—खाईवेयूनानीअंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤à¤¸à¥à¤ªà¥‡à¤°à¥‡à¤‚तोसà¥à¤ªà¥‡à¤¨à¥€à¤à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤ˆà¤¬à¤¾à¤¸à¥à¤•à¤«à¤¼à¤¾à¤°à¤¸à¥€à¤«" + - "à¥à¤²à¤¾à¤¹à¤«à¤¼à¤¿à¤¨à¤¿à¤¶à¤«à¤¼à¥€à¤œà¥€à¤«à¤¼à¥ˆà¤°à¥‹à¤‡à¤œà¤¼à¤«à¤¼à¥à¤°à¥‡à¤‚चपशà¥à¤šà¤¿à¤®à¥€ फ़à¥à¤°à¤¿à¤¸à¤¿à¤¯à¤¾à¤ˆà¤†à¤‡à¤°à¤¿à¤¶à¤¸à¥à¤•à¤¾à¤Ÿà¥à¤¸à¥ गायेलिकà¥" + - "गैलिशियनगà¥à¤†à¤°à¤¾à¤¨à¥€à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤®à¥ˆà¤‚कà¥à¤¸à¤¹à¥Œà¤¸à¤¾à¤¹à¤¿à¤¬à¥à¤°à¥‚हिनà¥à¤¦à¥€à¤¹à¤¿à¤°à¥€ मोटूकà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾à¤ˆà¤¹à¥ˆà¤¤à¤¿à¤¯à¤¾à¤ˆ" + - "हंगेरियाईआरà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆà¤¹à¤°à¥ˆà¤°à¥‹à¤ˆà¤¨à¥à¤Ÿà¤°à¤²à¤¿à¤‚गà¥à¤†à¤‡à¤‚डोनेशियाईईनà¥à¤Ÿà¤°à¤²à¤¿à¤‚गà¥à¤‡à¤ˆà¤—à¥à¤¬à¥‹à¤¸à¤¿à¤šà¥à¤†à¤¨ य" + - "ीइनà¥à¤ªà¤¿à¤¯à¤¾à¤•à¥à¤‡à¤¡à¥Œà¤†à¤‡à¤¸à¤²à¥ˆà¤‚डीइतालवीइनूकीटूतà¥à¤œà¤¾à¤ªà¤¾à¤¨à¥€à¤œà¤¾à¤µà¤¾à¤¨à¥€à¤œà¤¼à¤œà¥‰à¤°à¥à¤œà¤¿à¤¯à¤¾à¤ˆà¤•à¥‹à¤‚गोकिकà¥à¤¯à¥‚" + - "कà¥à¤µà¤¾à¤¨à¥à¤¯à¤¾à¤®à¤¾à¤•à¤œà¤¼à¤¾à¤–़गà¥à¤°à¥€à¤¨à¤²à¥ˆà¤‚डिकखमेरकनà¥à¤¨à¤¡à¤¼à¤•à¥‹à¤°à¤¿à¤¯à¤¾à¤ˆà¤•à¤¨à¥à¤°à¥€à¤•à¤¶à¥à¤®à¥€à¤°à¥€à¤•à¥à¤°à¥à¤¦à¤¿à¤¶à¤•à¥‹à¤®à¥€à¤•à¥‹à¤°" + - "à¥à¤¨à¤¿à¤¶à¤•à¤¿à¤°à¥à¤—ीज़लैटिनलगà¥à¤œà¤¼à¤®à¤¬à¤°à¥à¤—ीगांडालिंबरà¥à¤—िशलिंगालालाओलिथà¥à¤†à¤¨à¤¿à¤¯à¤¾à¤ˆà¤²à¥à¤¯à¥‚बा-क" + - "टांगालातवियाईमालागासीमारà¥à¤¶à¤²à¥€à¤œà¤¼à¤®à¤¾à¤“रीमैसिडोनियाईमलयालममंगोलीयाईमराठीमलयम" + - "ालà¥à¤Ÿà¥€à¤œà¤¼à¤¬à¤°à¥à¤®à¥€à¤œà¤¼à¤¨à¤¾à¤‰à¤°à¥‚उतà¥à¤¤à¤°à¥€ देबेलनेपालीडोनà¥à¤—ाडचनॉरà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¾à¤ˆ नॉयनॉरà¥à¤¸à¥à¤•à¤¨à¥‰à¤°" + - "à¥à¤µà¥‡à¤œà¤¿à¤¯à¤¾à¤ˆ बोकमालदकà¥à¤·à¤¿à¤£ देबेलनावाजोनà¥à¤¯à¤¾à¤¨à¤œà¤¾à¤“सीटानओजिबà¥à¤µà¤¾à¤“रोमोउड़ियाओसà¥à¤¸à¥‡à¤Ÿ" + - "िकपंजाबीपालीपोलिशपशà¥à¤¤à¥‹à¤ªà¥à¤°à¥à¤¤à¤—ालीकà¥à¤µà¥‡à¤šà¥à¤†à¤°à¥‹à¤®à¤¾à¤¨à¥à¤¶à¤°à¥à¤¨à¥à¤¦à¥€à¤°à¥‹à¤®à¤¾à¤¨à¤¿à¤¯à¤¾à¤ˆà¤°à¥‚सीकिनà¥à¤¯à¤¾" + - "रवांडासंसà¥à¤•à¥ƒà¤¤à¤¸à¤¾à¤°à¥à¤¦à¤¿à¤¨à¤¿à¤¯à¤¨à¤¸à¤¿à¤‚धीनॉरà¥à¤¦à¤¨ सामीसांगोसिंहलीसà¥à¤²à¥‹à¤µà¤¾à¤•à¤¸à¥à¤²à¥‹à¤µà¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆà¤¸à¤¾" + - "मोनशोणासोमालीअलà¥à¤¬à¤¾à¤¨à¤¿à¤¯à¤¾à¤ˆà¤¸à¤°à¥à¤¬à¤¿à¤¯à¤¾à¤ˆà¤¸à¥à¤µà¤¾à¤¤à¥€à¤¸à¥‡à¤¸à¥‹à¤¥à¥‹à¤¸à¥à¤‚डानीसà¥à¤µà¥€à¤¡à¤¿à¤¶à¤¸à¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤¤à¤®à¤¿à¤²à¤¤" + - "ेलà¥à¤—ूताजिकथाईतिगà¥à¤°à¥€à¤¨à¥à¤¯à¤¾à¤¤à¥à¤°à¥à¤•à¤®à¥‡à¤¨à¤¸à¥‡à¤¤à¥à¤¸à¥à¤µà¤¾à¤¨à¤¾à¤Ÿà¥‹à¤‚गनतà¥à¤°à¥à¤•à¥€à¤¸à¥‹à¤‚गातातारताहितियन" + - "विघà¥à¤°à¤¯à¥‚कà¥à¤°à¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆà¤‰à¤°à¥à¤¦à¥‚उज़à¥à¤¬à¥‡à¤•à¤µà¥‡à¤¨à¥à¤¦à¤¾à¤µà¤¿à¤¯à¤¤à¤¨à¤¾à¤®à¥€à¤µà¥‹à¤²à¤¾à¤ªà¥à¤•à¤µà¤¾à¤²à¥à¤²à¥‚नवोलोफ़ख़ोसायेह" + - "à¥à¤¦à¥€à¤¯à¥‹à¤°à¥‚बाज़à¥à¤†à¤‚गचीनीज़à¥à¤²à¥‚अचाइनीसअकोलीअदानà¥à¤—मेअदिघेअफà¥à¤°à¤¿à¤¹à¤¿à¤²à¥€à¤…गà¥à¤¹à¥‡à¤®à¤à¤¨à¥‚अकà¥" + - "कादीअलेउतदकà¥à¤·à¤¿à¤£à¥€ अलà¥à¤¤à¤¾à¤ˆà¤ªà¥à¤°à¤¾à¤¨à¥€ अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤…ंगिकाà¤à¤°à¥‡à¤®à¥‡à¤•à¤®à¤¾à¤ªà¥‚चेअराफाओअरावकअस" + - "à¥à¤…सà¥à¤¤à¥à¤°à¤¿à¤¯à¤¨à¤…वधीबलूचीबालिनीसबसाबेजाबेमà¥à¤¬à¤¾à¤¬à¥‡à¤¨à¤¾à¤­à¥‹à¤œà¤ªà¥à¤°à¥€à¤¬à¤¿à¤•à¥‹à¤²à¤¬à¤¿à¤¨à¥€à¤¸à¤¿à¤•à¥à¤¸à¤¿à¤•à¤¾à¤¬à¥à¤°" + - "जबोडोबà¥à¤°à¤¿à¤¯à¤¾à¤¤à¤¬à¤—िनीसबà¥à¤²à¤¿à¤¨à¤•à¥ˆà¤¡à¥à¤¡à¥‹à¤•à¥ˆà¤°à¤¿à¤¬à¤…तà¥à¤¸à¤®à¤¸à¤¿à¤¬à¥à¤†à¤¨à¥‹à¤¶à¤¿à¤—ाचिबà¥à¤šà¤¾à¤›à¤—ाताईचूकीसमार" + - "ीचिनूक जारगॉनचोकà¥à¤¤à¥Œà¤¶à¤¿à¤ªà¥‡à¤µà¥à¤¯à¤¾à¤¨à¤¶à¥‡à¤°à¥‹à¤•à¥€à¤¶à¥‡à¤¯à¥‡à¤¨à¥à¤¨à¤¸à¥‹à¤°à¤¾à¤¨à¥€ कà¥à¤°à¥à¤¦à¤¿à¤¶à¤•à¥‰à¤ªà¥à¤Ÿà¤¿à¤•à¤•à¥à¤°à¥€à¤®à¥€à¤¨ " + - "तà¥à¤°à¥à¤•à¥€à¤•à¤¾à¤¶à¥à¤¬à¤¿à¤¯à¤¨à¤¦à¤¾à¤•à¥‹à¤¤à¤¾à¤¦à¤¾à¤°à¥à¤—वातैताडिलैवेयरसà¥à¤²à¥‡à¤µà¤¡à¥‹à¤—à¥à¤°à¤¿à¤¬à¤¦à¤¿à¤¨à¥à¤•à¤¾à¤à¤¾à¤°à¥à¤®à¤¾à¤¡à¥‹à¤—à¥à¤°à¥€à¤¨" + - "िचला सॉरà¥à¤¬à¤¿à¤¯à¤¨à¤¦à¥à¤†à¤²à¤¾à¤®à¤§à¥à¤¯ पà¥à¤°à¥à¤¤à¤—ालीजोला-फोंईडà¥à¤¯à¥à¤²à¤¾à¤à¤®à¥à¤¬à¥à¤à¤«à¤¿à¤•à¤ªà¥à¤°à¤¾à¤šà¥€à¤¨ मिसà¥à¤°à¥€" + - "à¤à¤•à¤¾à¤œà¥à¤•à¤à¤²à¤¾à¤®à¤¾à¤‡à¤Ÿà¤®à¤§à¥à¤¯à¤•à¤¾à¤²à¥€à¤¨ अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤‡à¤µà¥‹à¤¨à¥à¤¡à¥‹à¤«à¥ˆà¤¨à¥à¤—फ़िलिपीनोफॉनमधà¥à¤¯à¤•à¤¾à¤²à¥€à¤¨ फ़à¥à¤°" + - "ांसीसीपà¥à¤°à¤¾à¤¤à¤¨ फ़à¥à¤°à¤¾à¤‚सीसीउतà¥à¤¤à¤°à¥€ फà¥à¤°à¥€à¤¸à¥€à¤¯à¤¨à¤ªà¥‚रà¥à¤µà¥€ फà¥à¤°à¥€à¤¸à¥€à¤¯à¤¨à¤«à¥à¤°à¥€à¤¯à¥à¤²à¥€à¤¯à¤¾à¤¨à¤—ागागौ" + - "ज़गायोगà¥à¤¬à¤¾à¤¯à¤¾à¤—ीज़गिलà¥à¤¬à¤°à¤¤à¥€à¤¸à¤®à¤§à¥à¤¯à¤•à¤¾à¤²à¥€à¤¨ हाइ जरà¥à¤®à¤¨à¤ªà¥à¤°à¤¾à¤¤à¤¨ हाइ जरà¥à¤®à¤¨à¤—ाà¤à¤¡à¥€à¤—ोरोन" + - "à¥à¤¤à¤¾à¤²à¥‹à¤—ॉथिकगà¥à¤°à¥‡à¤¬à¥‹à¤ªà¥à¤°à¤¾à¤šà¥€à¤¨ यूनानीसà¥à¤µà¤¿à¤¸ जरà¥à¤®à¤¨à¤—à¥à¤¸à¥€à¤—à¥à¤µà¤¿à¤šâ€™à¤‡à¤¨à¤¹à¥ˆà¤¡à¤¾à¤¹à¤µà¤¾à¤ˆà¤¹à¤¿à¤²à¤¿à¤—ेननह" + - "िताइतहà¥à¤®à¥‰à¤‚गऊपरी सॉरà¥à¤¬à¤¿à¤¯à¤¨à¤¹à¥‚पाइबानइलोकोइंगà¥à¤¶à¤²à¥‹à¤œà¥à¤¬à¤¾à¤¨à¤¨à¤—ोंबामैकहैमेजà¥à¤¦à¥‡à¤“-पर" + - "à¥à¤¶à¤¿à¤¯à¤¨à¤œà¥à¤¦à¥‡à¤“-अरेबिककारा-कलà¥à¤ªà¤•à¤•à¤¬à¤¾à¤‡à¤²à¤•à¤¾à¤šà¤¿à¤¨à¤œà¥à¤œà¥à¤•à¤®à¥à¤¬à¤¾à¤•à¤¾à¤µà¥€à¤•à¤¬à¤¾à¤°à¥à¤¡à¤¿à¤¯à¤¨à¤¤à¥à¤¯à¤¾à¤ªà¤®à¥ˆà¤•à¥‹à¤‚ड" + - "काबà¥à¤µà¥‡à¤°à¥à¤¦à¤¿à¤¯à¤¾à¤¨à¥à¤•à¥‹à¤°à¥‹à¤–ासीखोतानीसकोयरा चीनीकलेंजिनकिमà¥à¤¬à¤¨à¥à¤¦à¥à¤•à¥‹à¤®à¥€-परà¥à¤®à¤¯à¤¾à¤•à¤•à¥‹à¤‚" + - "कणीकोसरैनकà¥à¤ªà¥‡à¤²à¥à¤²à¥ˆà¤•à¤°à¤¾à¤šà¤¯-बलà¥à¤•à¤¾à¤°à¤•à¤°à¥‡à¤²à¤¿à¤¯à¤¨à¤•à¥à¤°à¥‚खशमà¥à¤¬à¤¾à¤²à¤¾à¤¬à¤«à¤¿à¤†à¤•à¥à¤®à¥€à¤•à¤•à¥à¤¤à¥‡à¤¨à¤¾à¤ˆà¤²à¤¾à¤¦à¥€à¤¨à¥‹" + - "लांगिलाहà¥à¤¨à¥à¤¡à¤¾à¤²à¤¾à¤®à¥à¤¬à¤¾à¤²à¥‡à¤œà¤¼à¥à¤˜à¥€à¤¯à¤¨à¤²à¥ˆà¤•à¥‹à¤Ÿà¤¾à¤®à¥‹à¤‚गोलोज़ीलà¥à¤¯à¥‚बा-लà¥à¤²à¥à¤†à¤²à¥à¤‡à¤¸à¥‡à¤¨à¥‹à¤²à¥à¤¨à¥à¤¡à¤¾à¤²" + - "à¥à¤¯à¥à¤“लà¥à¤¶à¤¾à¤ˆà¤²à¥à¤¯à¥à¤ˆà¤†à¤®à¤¾à¤¦à¥à¤°à¥€à¤¸à¤®à¤—ाहीमैथिलीमकासरमनà¥à¤¡à¤¿à¤¨à¥à¤—ोमसाईमोकà¥à¤·à¤®à¤‚धारमेनà¥à¤¡à¥‡à¤®à¥‡à¤°" + - "à¥à¤®à¥‹à¤°à¥€à¤¸à¥à¤¯à¥‡à¤¨à¤®à¤§à¥à¤¯à¤•à¤¾à¤² आइरिशमैखà¥à¤µà¤¾-मीटà¥à¤Ÿà¥‹à¤®à¥‡à¤Ÿà¤¾à¤®à¤¿à¤•à¤®à¥ˆà¤•à¤®à¤¿à¤¨à¤¾à¤‚गà¥à¤•à¤¾à¤¬à¤¾à¤‰à¤®à¤¨à¥à¤šà¥à¤®à¤£à¤¿à¤ªà¥‚री" + - "मोहौकमोसà¥à¤¸à¥€à¤®à¥à¤‚डैंगविविध भाषाà¤à¤à¤•à¥à¤°à¥€à¤•à¤®à¤¿à¤°à¤¾à¤‚डीमारवाड़ीà¤à¤°à¥à¤œà¤¼à¤¯à¤¾à¤¨à¥€à¤ªà¥‹à¤²à¤¿à¤Ÿà¤¨à¤¨à¤¾à¤®à¤¾à¤¨" + - "िचला जरà¥à¤®à¤¨à¤¨à¥‡à¤µà¤¾à¤¡à¤¼à¥€à¤¨à¤¿à¤¯à¤¾à¤¸à¤¨à¤¿à¤¯à¥à¤†à¤¨à¤•à¥à¤µà¤¾à¤¸à¤¿à¤“नोगाईपà¥à¤°à¤¾à¤¨à¤¾ नॉरà¥à¤¸à¤à¤¨à¥à¤•à¥‹à¤‰à¤¤à¥à¤¤à¤°à¥€ सोथोनà¥" + - "à¤à¤°à¤ªà¤¾à¤°à¤®à¥à¤ªà¤°à¤¿à¤• नेवारीनà¥à¤¯à¤¾à¤®à¤µà¥‡à¤œà¤¼à¥€à¤¨à¥à¤¯à¤¾à¤¨à¤•à¥‹à¤²à¤¨à¥à¤¯à¥‹à¤°à¥‹à¤¨à¥à¤œà¤¼à¥€à¤®à¤¾à¤“सेजओटोमान तà¥à¤°à¥à¤•à¤¿à¤¶à¤ªà¤‚ग" + - "ासीनानपाहà¥à¤²à¤¾à¤µà¥€à¤ªà¤¾à¤®à¥à¤ªà¤¾à¤¨à¥à¤—ापापियामेनà¥à¤Ÿà¥‹à¤ªà¤²à¥‹à¤‰à¤†à¤¨à¤ªà¥à¤°à¤¾à¤¨à¥€ फारसीफोà¤à¤¨à¤¿à¤¶à¤¿à¤¯à¤¨à¤ªà¥‹à¤¹à¥à¤¨à¤ªà¤¿" + - "à¤à¤¨à¤ªà¥à¤°à¤¾à¤¨à¥€ पà¥à¤°à¥‹à¤µà¥‡à¤¨à¥à¤¸à¤²à¤•à¤¿à¤¶à¤°à¤¾à¤œà¤¸à¥à¤¥à¤¾à¤¨à¥€à¤°à¤¾à¤ªà¤¾à¤¨à¥à¤ˆà¤°à¤¾à¤°à¥‹à¤¤à¥‹à¤‚गनरोमà¥à¤¬à¥‹à¤°à¥‹à¤®à¤¾à¤¨à¥€à¤…रोमानियनरव" + - "ासनà¥à¤¡à¤¾à¤µà¥‡à¤¯à¤¾à¤•à¥‚तसामैरिटन अरैमिकसैमà¥à¤¬à¥à¤°à¥à¤¸à¤¾à¤¸à¤¾à¤•à¤¸à¤‚तालीसैंगà¥à¤¸à¤¿à¤¸à¤¿à¤²à¤¿à¤¯à¤¨à¤¸à¥à¤•à¥‰à¤Ÿà¥à¤¸à¤¸à¥‡à¤¨" + - "ासेलà¥à¤•à¤ªà¤•à¥‹à¤¯à¤°à¤¾à¤¬à¥‹à¤°à¥‹ सेनà¥à¤¨à¥€à¤ªà¥à¤°à¤¾à¤¨à¥€ आइरिशतैचेलà¥à¤¹à¤¿à¤¤à¤¶à¥ˆà¤¨à¤¸à¤¿à¤¦à¤¾à¤®à¥‹à¤¦à¤•à¥à¤·à¤¿à¤£ सामीलà¥à¤¯à¥à¤² " + - "सामीइनारी सामीसà¥à¤•à¥‹à¤²à¥à¤Ÿ सामीसोनिनà¥à¤•à¥‡à¤¸à¥‹à¤—à¥à¤¡à¤¿à¤à¤¨à¤¸à¥à¤°à¤¾à¤¨à¤¾à¤¨ टॉनà¥à¤—ोसेरेरसà¥à¤•à¥à¤®à¤¾à¤¸à¥à¤¸" + - "à¥à¤¸à¥à¤®à¥‡à¤°à¤¿à¤¯à¤¨à¤•à¤¾à¤‚गो सà¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤•à¥à¤²à¤¾à¤¸à¤¿à¤•à¤² सिरिà¤à¤•à¤¸à¤¿à¤°à¤¿à¤à¤•à¤Ÿà¤¿à¤®à¥à¤¨à¥‡à¤Ÿà¥‡à¤¸à¥‹à¤¤à¥‡à¤°à¥‡à¤¨à¥‹à¤¤à¥‡à¤¤à¥à¤®à¤Ÿà¤¾à¤‡à¤—à¥" + - "रेतिवतोकेलाऊकà¥à¤²à¤¿à¤‚गनतà¥à¤²à¤¿à¤‚गिततामाशेकनà¥à¤¯à¤¾à¤¸à¤¾ टोनà¥à¤—ाटोक पिसिनतà¥à¤¸à¤¿à¤®à¥€à¤¶à¤¿à¤¯à¤¨à¤¤à¤®à¥à¤¬" + - "ूकातà¥à¤µà¤¾à¤²à¥à¤Ÿà¤¾à¤¸à¤µà¤¾à¤•à¤¤à¥à¤µà¥€à¤¨à¤¿à¤¯à¤¨à¤®à¤§à¥à¤¯ à¤à¤Ÿà¤²à¤¸ तमाज़ितउदमà¥à¤°à¥à¤¤à¤¯à¥à¤—ैरिटिकउमà¥à¤¬à¥à¤¨à¥à¤¡à¥à¤°à¥‚टवा" + - "ईवॉटिकवà¥à¤‚जोवलामोवारैवाशोकालà¥à¤®à¤¿à¤•à¤¸à¥‹à¤—ायाओयापीसकैंटोनीज़ज़ेपोटेकबà¥à¤²à¤¿à¤¸à¤¿à¤®à¥à¤¬à¥‰" + - "लà¥à¤¸à¤œà¤¼à¥‡à¤¨à¤¾à¤¨à¥à¤—ामानक मोरकà¥à¤•à¤¨ तामाज़ाइटज़ूनीकोई भाषा सामगà¥à¤°à¥€ नहींज़ाज़ाआधà¥à¤¨" + - "िक मानक अरबीऑसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤ˆ जरà¥à¤®à¤¨à¤¸à¥à¤µà¤¿à¤¸ उचà¥à¤š जरà¥à¤®à¤¨à¤‘सà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾à¤ˆ अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤•à¤¨à¤¾à¤¡" + - "ाई अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤¬à¥à¤°à¤¿à¤Ÿà¤¿à¤¶ अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤…मेरिकी अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤²à¥ˆà¤Ÿà¤¿à¤¨ अमेरिकी सà¥à¤ªà¥‡à¤¨à¥€à¤¯à¥‚रो" + - "पीय सà¥à¤ªà¥‡à¤¨à¥€à¤®à¥ˆà¤•à¥à¤¸à¤¿à¤•à¤¨ सà¥à¤ªà¥‡à¤¨à¤¿à¤¶à¤•à¤¨à¤¾à¤¡à¤¾à¤ˆ फ़à¥à¤°à¥‡à¤‚चसà¥à¤µà¤¿à¤¸ फ़à¥à¤°à¥‡à¤‚चफ़à¥à¤²à¥‡à¤®à¤¿à¤¶à¤¬à¥à¤°à¤¾à¤œà¤¼à¥€à¤²à¥€" + - " पà¥à¤°à¥à¤¤à¤—ालीयूरोपीय पà¥à¤°à¥à¤¤à¤—ालीमोलडावियनसेरà¥à¤¬à¥‹-कà¥à¤°à¥‹à¤à¤¶à¤¨à¥à¤¸à¤°à¤²à¥€à¤•à¥ƒà¤¤ चीनीपारंपरिक " + - "चीनी" - -// Size: 1234 bytes, 605 elements -var hiLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000f, 0x0030, 0x0045, 0x005d, 0x0066, 0x007b, 0x0090, - 0x009c, 0x00ae, 0x00c0, 0x00d2, 0x00f0, 0x0102, 0x011a, 0x013b, - 0x0153, 0x016b, 0x017d, 0x0192, 0x01a4, 0x01bf, 0x01d4, 0x01e0, - 0x01ef, 0x0207, 0x0213, 0x021c, 0x023e, 0x024d, 0x025c, 0x026b, - 0x027a, 0x028c, 0x02a4, 0x02ad, 0x02bf, 0x02da, 0x02f8, 0x030a, - 0x0328, 0x0337, 0x0349, 0x0358, 0x036a, 0x0379, 0x0391, 0x03a6, - 0x03da, 0x03e9, 0x041a, 0x0432, 0x0447, 0x045c, 0x046e, 0x047a, - 0x048c, 0x049e, 0x04b7, 0x04d5, 0x04ea, 0x0505, 0x0523, 0x0532, - // Entry 40 - 7F - 0x0553, 0x0574, 0x0595, 0x05a4, 0x05bd, 0x05d8, 0x05e1, 0x05f9, - 0x060b, 0x0626, 0x0638, 0x0650, 0x066b, 0x067a, 0x068c, 0x06aa, - 0x06bc, 0x06dd, 0x06e9, 0x06fb, 0x0710, 0x071f, 0x0734, 0x0749, - 0x0755, 0x076a, 0x0782, 0x0791, 0x07b2, 0x07c1, 0x07dc, 0x07f1, - 0x07fa, 0x0818, 0x083d, 0x0855, 0x086d, 0x0888, 0x0897, 0x08b8, - 0x08ca, 0x08e5, 0x08f4, 0x08fd, 0x0915, 0x092a, 0x0939, 0x095b, - 0x096d, 0x097f, 0x0985, 0x09c5, 0x09f9, 0x0a1b, 0x0a2d, 0x0a42, - 0x0a54, 0x0a69, 0x0a78, 0x0a8a, 0x0aa2, 0x0ab4, 0x0ac0, 0x0acf, - // Entry 80 - BF - 0x0ade, 0x0af9, 0x0b0e, 0x0b23, 0x0b35, 0x0b50, 0x0b5c, 0x0b80, - 0x0b95, 0x0bb3, 0x0bc2, 0x0be1, 0x0bf0, 0x0c02, 0x0c17, 0x0c38, - 0x0c47, 0x0c53, 0x0c65, 0x0c83, 0x0c9b, 0x0cad, 0x0cbf, 0x0cd4, - 0x0ce9, 0x0d01, 0x0d0d, 0x0d1f, 0x0d2e, 0x0d37, 0x0d55, 0x0d6d, - 0x0d8b, 0x0d9a, 0x0dac, 0x0dbb, 0x0dca, 0x0de2, 0x0df1, 0x0e12, - 0x0e21, 0x0e36, 0x0e48, 0x0e60, 0x0e75, 0x0e8a, 0x0e9c, 0x0eab, - 0x0ebd, 0x0ecf, 0x0ee1, 0x0eed, 0x0efc, 0x0f11, 0x0f20, 0x0f38, - 0x0f47, 0x0f47, 0x0f62, 0x0f74, 0x0f7d, 0x0f92, 0x0f92, 0x0fa1, - // Entry C0 - FF - 0x0fa1, 0x0fc9, 0x0ff7, 0x1009, 0x101b, 0x102d, 0x102d, 0x103f, - 0x103f, 0x104e, 0x104e, 0x104e, 0x1057, 0x1057, 0x1072, 0x1072, - 0x107e, 0x107e, 0x108d, 0x10a2, 0x10a2, 0x10ab, 0x10ab, 0x10ab, - 0x10ab, 0x10b7, 0x10c9, 0x10c9, 0x10d5, 0x10d5, 0x10d5, 0x10ea, - 0x10f9, 0x1105, 0x1105, 0x1105, 0x111d, 0x111d, 0x111d, 0x1129, - 0x1129, 0x1135, 0x1135, 0x114a, 0x115c, 0x115c, 0x116b, 0x116b, - 0x117d, 0x118c, 0x118c, 0x119b, 0x11b0, 0x11bc, 0x11ce, 0x11e0, - 0x11ef, 0x11fb, 0x121d, 0x122f, 0x124a, 0x125c, 0x1271, 0x1299, - // Entry 100 - 13F - 0x12ae, 0x12ae, 0x12d6, 0x12ee, 0x1300, 0x1315, 0x1321, 0x1339, - 0x1348, 0x135d, 0x136f, 0x1381, 0x1393, 0x13bb, 0x13bb, 0x13ca, - 0x13f2, 0x140b, 0x141d, 0x141d, 0x142c, 0x1438, 0x1438, 0x1460, - 0x1472, 0x1487, 0x14be, 0x14be, 0x14d3, 0x14d3, 0x14e2, 0x14fd, - 0x14fd, 0x1506, 0x1506, 0x1540, 0x1571, 0x1571, 0x159c, 0x15c7, - 0x15e8, 0x15ee, 0x1600, 0x1600, 0x160c, 0x161e, 0x161e, 0x162a, - 0x1645, 0x1645, 0x167a, 0x16a6, 0x16a6, 0x16b5, 0x16d3, 0x16e2, - 0x16f4, 0x171c, 0x173b, 0x173b, 0x173b, 0x1747, 0x175f, 0x176b, - // Entry 140 - 17F - 0x176b, 0x1777, 0x1777, 0x178f, 0x17a1, 0x17b3, 0x17d8, 0x17d8, - 0x17e4, 0x17f0, 0x17f0, 0x17ff, 0x180e, 0x180e, 0x180e, 0x1823, - 0x1835, 0x184a, 0x186f, 0x1891, 0x1891, 0x18ad, 0x18bc, 0x18cb, - 0x18d7, 0x18e6, 0x18f2, 0x190d, 0x190d, 0x191c, 0x192e, 0x1958, - 0x1958, 0x1964, 0x1964, 0x1970, 0x1985, 0x19a1, 0x19a1, 0x19a1, - 0x19a1, 0x19b6, 0x19d1, 0x19f3, 0x1a05, 0x1a17, 0x1a2f, 0x1a51, - 0x1a51, 0x1a51, 0x1a66, 0x1a75, 0x1a8a, 0x1a96, 0x1a96, 0x1aa5, - 0x1aba, 0x1acc, 0x1adb, 0x1af3, 0x1b05, 0x1b20, 0x1b20, 0x1b20, - // Entry 180 - 1BF - 0x1b20, 0x1b32, 0x1b32, 0x1b41, 0x1b50, 0x1b50, 0x1b72, 0x1b87, - 0x1b99, 0x1ba8, 0x1bb7, 0x1bc9, 0x1bc9, 0x1bc9, 0x1bde, 0x1bde, - 0x1bed, 0x1bff, 0x1c0e, 0x1c29, 0x1c35, 0x1c35, 0x1c44, 0x1c53, - 0x1c65, 0x1c71, 0x1c8c, 0x1cb1, 0x1cd6, 0x1ce2, 0x1cf4, 0x1d18, - 0x1d27, 0x1d3c, 0x1d4b, 0x1d5d, 0x1d5d, 0x1d72, 0x1d94, 0x1da3, - 0x1db8, 0x1dd0, 0x1dd0, 0x1dd0, 0x1de5, 0x1de5, 0x1de5, 0x1dfd, - 0x1e09, 0x1e28, 0x1e3d, 0x1e4c, 0x1e5e, 0x1e5e, 0x1e73, 0x1e73, - 0x1e82, 0x1ea4, 0x1ea4, 0x1eb3, 0x1ed2, 0x1ede, 0x1f0c, 0x1f2a, - // Entry 1C0 - 1FF - 0x1f42, 0x1f54, 0x1f69, 0x1f75, 0x1f9d, 0x1fb8, 0x1fd0, 0x1fee, - 0x2012, 0x2024, 0x2024, 0x2024, 0x2024, 0x2046, 0x2046, 0x2061, - 0x2061, 0x2061, 0x207c, 0x207c, 0x20ad, 0x20b6, 0x20b6, 0x20d1, - 0x20e6, 0x2101, 0x2101, 0x2101, 0x2113, 0x2125, 0x2125, 0x2125, - 0x2125, 0x2140, 0x2149, 0x215e, 0x216d, 0x2198, 0x21b0, 0x21bf, - 0x21d1, 0x21d1, 0x21d1, 0x21e0, 0x21f8, 0x220d, 0x220d, 0x220d, - 0x2219, 0x2219, 0x222b, 0x2259, 0x227b, 0x227b, 0x2296, 0x229f, - 0x229f, 0x22b1, 0x22b1, 0x22b1, 0x22d0, 0x22ec, 0x2308, 0x232a, - // Entry 200 - 23F - 0x2342, 0x235a, 0x2382, 0x2391, 0x2391, 0x2391, 0x23a3, 0x23af, - 0x23c7, 0x23c7, 0x23ef, 0x241a, 0x242c, 0x242c, 0x242c, 0x243e, - 0x244a, 0x245c, 0x246b, 0x2480, 0x2489, 0x249e, 0x249e, 0x24b3, - 0x24cb, 0x24cb, 0x24e0, 0x2505, 0x251e, 0x251e, 0x251e, 0x251e, - 0x253c, 0x253c, 0x2551, 0x2563, 0x2575, 0x258d, 0x25bc, 0x25d1, - 0x25ec, 0x2607, 0x2610, 0x2619, 0x2619, 0x2619, 0x2619, 0x2619, - 0x2628, 0x2628, 0x2637, 0x2637, 0x2646, 0x2652, 0x265e, 0x265e, - 0x265e, 0x2673, 0x2673, 0x267f, 0x2688, 0x2697, 0x2697, 0x2697, - // Entry 240 - 27F - 0x2697, 0x26b2, 0x26ca, 0x26f1, 0x26f1, 0x270c, 0x274a, 0x2759, - 0x2792, 0x27a4, 0x27d0, 0x27fe, 0x282a, 0x286a, 0x2898, 0x28c9, - 0x28fa, 0x2932, 0x295a, 0x2988, 0x29b0, 0x29d5, 0x29ed, 0x2a24, - 0x2a55, 0x2a70, 0x2a9b, 0x2abd, 0x2ae2, -} - -// Size: 4364 bytes -var hrLangStr string = "" + - "afarskiabhaskiavestanafrikaansakanskiamharskiaragonskiarapskiasamskiavar" + - "skiaymaraazerbajdžanskibaÅ¡kirskibjeloruskibugarskibislamabambarabengalsk" + - "itibetanskibretonskibosanskikatalonskiÄeÄenskichamorrokorziÄkicreeÄeÅ¡kic" + - "rkvenoslavenskichuvashvelÅ¡kidanskinjemaÄkidivehidzongkhaewegrÄkiengleski" + - "esperantoÅ¡panjolskiestonskibaskijskiperzijskifulahfinskifidžijskiferojsk" + - "ifrancuskizapadnofrizijskiirskiÅ¡kotski-galskigalicijskiguaranigudžaratsk" + - "imanskihausahebrejskihindskihiri motuhrvatskikreolskimaÄ‘arskiarmenskiher" + - "erointerlinguaindonezijskiinterliguaigbosichuan yiinupiaqidoislandskital" + - "ijanskiinuktitutjapanskijavanskigruzijskikongokikuyukuanyamakazaÅ¡kikalaa" + - "llisutkmerskikannadskikorejskikanurikaÅ¡mirskikurdskikomikornskikirgiÅ¡kil" + - "atinskiluksemburÅ¡kigandalimburgishlingalalaoskilitavskiluba-katangalatvi" + - "jskimalgaÅ¡kimarÅ¡alskimaorskimakedonskimalajalamskimongolskimarathskimala" + - "jskimalteÅ¡kiburmanskinaurusjeverni ndebelenepalskindonganizozemskinovono" + - "rveÅ¡kiknjiževni norveÅ¡kijužni ndebelenavajonyanjaokcitanskiojibwaoromski" + - "orijskiosetskipandžapskipalipoljskipaÅ¡tuportugalskikeÄuaromanÅ¡rundirumun" + - "jskiruskikinyarwandasanskrtskisardskisindhijužni samisangosinhaleÅ¡kislov" + - "aÄkislovenskisamoanskishonasomalskialbanskisrpskisvatisesotskisundanskiÅ¡" + - "vedskisvahilitamilskitelugutadžiÄkitajlandskitigrinjaturkmenskicvanatong" + - "anskiturskitsongatatarskitahićanskiujgurskiukrajinskiurdskiuzbeÄkivendav" + - "ijetnamskivolapükvalonskiwolofxhosajidiÅ¡jorubazhuangkineskizuluachinesea" + - "coliadangmeadigejskiafrihiliaghemainuakkadianaleutskijužni altaistaroeng" + - "leskiangikaaramejskiaraukanskiarapahoarawakasuasturijskiawadhibaluchibal" + - "inezijskibasabamunskighomalabejabembabenabafutbhojpuribikolbinikomsiksik" + - "abrajbodoakooseburiatbuginskibulublinmedumbacaddokaripskicayugaatsamcebu" + - "anochigachibchachagataichuukesemarichinook žargonchoctawchipewyanÄerokiÄ" + - "ejenskisoranski kurdskikoptskikrimski turskikaÅ¡upskidakota jezikdargwata" + - "itadelavarskislavedogribdinkazarmadogrilužiÄkosrpskidualanizozemski, sre" + - "dnjijola-fonyidyuladazagaembuefikstaroegipatskiekajukelamitskiengleski, " + - "srednjiewondofangfilipinofonfrancuski, srednjistarofrancuskisjevernofriz" + - "ijskiistoÄnofrizijskifriulskigagagauskigayogbayastaroetiopskigilbertskin" + - "jemaÄki, srednji visokistaronjemaÄki, visokigondigorontalogothicgrebosta" + - "rogrÄkiÅ¡vicarski njemaÄkigusiigwich’inhaidihavajskihiligaynonhetitskihmo" + - "nggornjolužiÄkihupaibanibibioilokoinguÅ¡etskilojbanngombamachamejudejsko-" + - "perzijskijudejsko-arapskikara-kalpakkabilskikachinkajekambakawikabardian" + - "kanembutyapmakondezelenortskikorokhasikhotanesekoyra chiinikakokalenjink" + - "imbundukomski ili permskikonkaninaurskikpellekarachay-balkarkarelijskiku" + - "ruÅ¡kishambalabafiakelnskikumykkutenailadinolangilahndalambalezgiÅ¡kilakot" + - "amongoloziluba-lulualuisenolundaluolushailuyiamadurskimafamagahimaithili" + - "makasarmandingomasajskimabamokshamandarmendemerumauricijski kreolskiirsk" + - "i, srednjimakhuwa-meettometa’micmacminangkabaumandžurskimanipurskimohawk" + - "mossimundangviÅ¡e jezikacreekmirandskimarwarimyenemordvinskinapolitanskin" + - "amadonjonjemaÄkinewariniasniujskikwasiongiemboonnogajskistaronorveÅ¡kin’k" + - "osjeverni sothonuerklasiÄni newarinyamwezinyankolenyoronzimaosageturski " + - "- otomanskipangasinanpahlavipampangapapiamentopalauanskistaroperzijskife" + - "niÄkipohnpeianstaroprovansalskikiÄerajasthanirapa nuirarotonÅ¡kiromboroms" + - "kiaromunskirwasandawejakutskisamarijanski aramejskisamburusasaksantaling" + - "ambaysangusicilijskiÅ¡kotskisenecasenaselkupskikoyraboro sennistaroirskit" + - "achelhitshanÄadski arapskisidamosjeverni samilule samiinari samiskolt sa" + - "misoninkesogdiensranan tongoserersahosukumasususumerskikomorskikongoansk" + - "i swahiliklasiÄni sirskisirijskitemnetesoterenotetumtigriÅ¡kitivtokelauns" + - "kiklingonskitlingittamasheknyasa tongatok pisintarokotsimshiantumbukatuv" + - "aluanskitasawaqtuvinianmarokanski tamazightudmurtskiugaritskiumbundukori" + - "jenskivaivoticvunjowalserwalamowaraywashokalmyksogayaojapskiyangbenyemba" + - "kantonskizapotecblissymbolszenagastandardni marokanski tamazightzunibez " + - "jeziÄnog sadržajazazakimoderni standardni arapskiaustrijski njemaÄkigorn" + - "jonjemaÄki (Å¡vicarski)australski engleskikanadski engleskibritanski engl" + - "eskiameriÄki engleskilatinoameriÄki Å¡panjolskieuropski Å¡panjolskimeksiÄk" + - "i Å¡panjolskikanadski francuskiÅ¡vicarski francuskiflamanskibrazilski port" + - "ugalskieuropski portugalskimoldavskisrpsko-hrvatskikineski (pojednostavl" + - "jeni)kineski (tradicionalni)" - -// Size: 1234 bytes, 605 elements -var hrLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0007, 0x000e, 0x0015, 0x001e, 0x0025, 0x002d, 0x0036, - 0x003d, 0x0044, 0x004b, 0x0051, 0x0060, 0x006a, 0x0074, 0x007c, - 0x0083, 0x008a, 0x0093, 0x009d, 0x00a6, 0x00ae, 0x00b8, 0x00c2, - 0x00ca, 0x00d3, 0x00d7, 0x00de, 0x00ee, 0x00f5, 0x00fc, 0x0102, - 0x010b, 0x0111, 0x0119, 0x011c, 0x0122, 0x012a, 0x0133, 0x013e, - 0x0146, 0x014f, 0x0158, 0x015d, 0x0163, 0x016d, 0x0175, 0x017e, - 0x018e, 0x0193, 0x01a2, 0x01ac, 0x01b3, 0x01bf, 0x01c5, 0x01ca, - 0x01d3, 0x01da, 0x01e3, 0x01eb, 0x01f3, 0x01fc, 0x0204, 0x020a, - // Entry 40 - 7F - 0x0215, 0x0221, 0x022b, 0x022f, 0x0239, 0x0240, 0x0243, 0x024c, - 0x0256, 0x025f, 0x0267, 0x026f, 0x0278, 0x027d, 0x0283, 0x028b, - 0x0293, 0x029e, 0x02a5, 0x02ae, 0x02b6, 0x02bc, 0x02c6, 0x02cd, - 0x02d1, 0x02d8, 0x02e1, 0x02e9, 0x02f6, 0x02fb, 0x0305, 0x030c, - 0x0312, 0x031a, 0x0326, 0x032f, 0x0338, 0x0342, 0x0349, 0x0353, - 0x035f, 0x0368, 0x0371, 0x0379, 0x0382, 0x038b, 0x0390, 0x03a0, - 0x03a8, 0x03ae, 0x03b8, 0x03c5, 0x03d9, 0x03e7, 0x03ed, 0x03f3, - 0x03fd, 0x0403, 0x040a, 0x0411, 0x0418, 0x0423, 0x0427, 0x042e, - // Entry 80 - BF - 0x0434, 0x043f, 0x0445, 0x044c, 0x0451, 0x045a, 0x045f, 0x046a, - 0x0474, 0x047b, 0x0481, 0x048c, 0x0491, 0x049c, 0x04a5, 0x04ae, - 0x04b7, 0x04bc, 0x04c4, 0x04cc, 0x04d2, 0x04d7, 0x04df, 0x04e8, - 0x04f0, 0x04f7, 0x04ff, 0x0505, 0x050f, 0x0519, 0x0521, 0x052b, - 0x0530, 0x0539, 0x053f, 0x0545, 0x054d, 0x0558, 0x0560, 0x056a, - 0x0570, 0x0578, 0x057d, 0x0588, 0x0590, 0x0598, 0x059d, 0x05a2, - 0x05a8, 0x05ae, 0x05b4, 0x05bb, 0x05bf, 0x05c7, 0x05cc, 0x05d3, - 0x05dc, 0x05dc, 0x05e4, 0x05e9, 0x05ed, 0x05f5, 0x05f5, 0x05fd, - // Entry C0 - FF - 0x05fd, 0x0609, 0x0616, 0x061c, 0x0625, 0x062f, 0x062f, 0x0636, - 0x0636, 0x063c, 0x063c, 0x063c, 0x063f, 0x063f, 0x0649, 0x0649, - 0x064f, 0x064f, 0x0656, 0x0662, 0x0662, 0x0666, 0x066e, 0x066e, - 0x0675, 0x0679, 0x067e, 0x067e, 0x0682, 0x0687, 0x0687, 0x068f, - 0x0694, 0x0698, 0x0698, 0x069b, 0x06a2, 0x06a2, 0x06a2, 0x06a6, - 0x06a6, 0x06aa, 0x06b0, 0x06b6, 0x06be, 0x06c2, 0x06c6, 0x06cd, - 0x06d2, 0x06da, 0x06e0, 0x06e5, 0x06ec, 0x06f1, 0x06f8, 0x0700, - 0x0708, 0x070c, 0x071b, 0x0722, 0x072b, 0x0732, 0x073b, 0x074b, - // Entry 100 - 13F - 0x0752, 0x0752, 0x0760, 0x0769, 0x0775, 0x077b, 0x0780, 0x078a, - 0x078f, 0x0795, 0x079a, 0x079f, 0x07a4, 0x07b3, 0x07b3, 0x07b8, - 0x07cb, 0x07d5, 0x07da, 0x07e0, 0x07e4, 0x07e8, 0x07e8, 0x07f6, - 0x07fc, 0x0805, 0x0816, 0x0816, 0x081c, 0x081c, 0x0820, 0x0828, - 0x0828, 0x082b, 0x082b, 0x083d, 0x084b, 0x084b, 0x085c, 0x086d, - 0x0875, 0x0877, 0x087f, 0x087f, 0x0883, 0x0888, 0x0888, 0x0895, - 0x089f, 0x089f, 0x08b8, 0x08ce, 0x08ce, 0x08d3, 0x08dc, 0x08e2, - 0x08e7, 0x08f2, 0x0906, 0x0906, 0x0906, 0x090b, 0x0915, 0x091a, - // Entry 140 - 17F - 0x091a, 0x0922, 0x0922, 0x092c, 0x0934, 0x0939, 0x0948, 0x0948, - 0x094c, 0x0950, 0x0956, 0x095b, 0x0966, 0x0966, 0x0966, 0x096c, - 0x0972, 0x0979, 0x098b, 0x099b, 0x099b, 0x09a6, 0x09ae, 0x09b4, - 0x09b8, 0x09bd, 0x09c1, 0x09ca, 0x09d1, 0x09d5, 0x09dc, 0x09e7, - 0x09e7, 0x09eb, 0x09eb, 0x09f0, 0x09f9, 0x0a05, 0x0a05, 0x0a05, - 0x0a09, 0x0a11, 0x0a19, 0x0a2b, 0x0a32, 0x0a39, 0x0a3f, 0x0a4e, - 0x0a4e, 0x0a4e, 0x0a58, 0x0a60, 0x0a68, 0x0a6d, 0x0a74, 0x0a79, - 0x0a80, 0x0a86, 0x0a8b, 0x0a91, 0x0a96, 0x0a9f, 0x0a9f, 0x0a9f, - // Entry 180 - 1BF - 0x0a9f, 0x0aa5, 0x0aa5, 0x0aaa, 0x0aae, 0x0aae, 0x0ab8, 0x0abf, - 0x0ac4, 0x0ac7, 0x0acd, 0x0ad2, 0x0ad2, 0x0ad2, 0x0ada, 0x0ade, - 0x0ae4, 0x0aec, 0x0af3, 0x0afb, 0x0b03, 0x0b07, 0x0b0d, 0x0b13, - 0x0b18, 0x0b1c, 0x0b30, 0x0b3e, 0x0b4c, 0x0b53, 0x0b59, 0x0b64, - 0x0b6f, 0x0b79, 0x0b7f, 0x0b84, 0x0b84, 0x0b8b, 0x0b97, 0x0b9c, - 0x0ba5, 0x0bac, 0x0bac, 0x0bb1, 0x0bbb, 0x0bbb, 0x0bbb, 0x0bc7, - 0x0bcb, 0x0bd9, 0x0bdf, 0x0be3, 0x0bea, 0x0bea, 0x0bf0, 0x0bf9, - 0x0c01, 0x0c0f, 0x0c0f, 0x0c15, 0x0c23, 0x0c27, 0x0c37, 0x0c3f, - // Entry 1C0 - 1FF - 0x0c47, 0x0c4c, 0x0c51, 0x0c56, 0x0c68, 0x0c72, 0x0c79, 0x0c81, - 0x0c8b, 0x0c95, 0x0c95, 0x0c95, 0x0c95, 0x0ca3, 0x0ca3, 0x0cab, - 0x0cab, 0x0cab, 0x0cb4, 0x0cb4, 0x0cc5, 0x0cca, 0x0cca, 0x0cd4, - 0x0cdc, 0x0ce7, 0x0ce7, 0x0ce7, 0x0cec, 0x0cf2, 0x0cf2, 0x0cf2, - 0x0cf2, 0x0cfb, 0x0cfe, 0x0d05, 0x0d0d, 0x0d23, 0x0d2a, 0x0d2f, - 0x0d36, 0x0d36, 0x0d3d, 0x0d42, 0x0d4c, 0x0d54, 0x0d54, 0x0d5a, - 0x0d5e, 0x0d5e, 0x0d67, 0x0d76, 0x0d80, 0x0d80, 0x0d89, 0x0d8d, - 0x0d9c, 0x0da2, 0x0da2, 0x0da2, 0x0daf, 0x0db8, 0x0dc2, 0x0dcc, - // Entry 200 - 23F - 0x0dd3, 0x0dda, 0x0de6, 0x0deb, 0x0def, 0x0def, 0x0df5, 0x0df9, - 0x0e01, 0x0e09, 0x0e1b, 0x0e2b, 0x0e33, 0x0e33, 0x0e33, 0x0e38, - 0x0e3c, 0x0e42, 0x0e47, 0x0e50, 0x0e53, 0x0e5e, 0x0e5e, 0x0e68, - 0x0e6f, 0x0e6f, 0x0e77, 0x0e82, 0x0e8b, 0x0e8b, 0x0e91, 0x0e91, - 0x0e9a, 0x0e9a, 0x0ea1, 0x0eac, 0x0eb3, 0x0ebb, 0x0ecf, 0x0ed8, - 0x0ee1, 0x0ee8, 0x0ef2, 0x0ef5, 0x0ef5, 0x0ef5, 0x0ef5, 0x0ef5, - 0x0efa, 0x0efa, 0x0eff, 0x0f05, 0x0f0b, 0x0f10, 0x0f15, 0x0f15, - 0x0f15, 0x0f1b, 0x0f1b, 0x0f1f, 0x0f22, 0x0f28, 0x0f2f, 0x0f34, - // Entry 240 - 27F - 0x0f34, 0x0f3d, 0x0f44, 0x0f4f, 0x0f4f, 0x0f55, 0x0f74, 0x0f78, - 0x0f8f, 0x0f95, 0x0faf, 0x0fc3, 0x0fdf, 0x0ff2, 0x1003, 0x1015, - 0x1027, 0x1042, 0x1056, 0x106b, 0x107d, 0x1091, 0x109a, 0x10af, - 0x10c3, 0x10cc, 0x10db, 0x10f5, 0x110c, -} - -// Size: 3870 bytes -var huLangStr string = "" + - "afarabházavesztánafrikaansakanamharaaragonézarabasszámiavarajmaraazerbaj" + - "dzsánibaskírbeloruszbolgárbislamabambarabengálitibetibretonbosnyákkatalá" + - "ncsecsencsamorókorzikaikrícsehegyházi szlávcsuvaswalesidánnémetdivehibut" + - "ánievegörögangoleszperantóspanyolésztbaszkperzsafulanifinnfidzsiferöeri" + - "franciafrízírskót gaelgalíciaiguaranigudzsaratiman-szigetihauszahéberhin" + - "dihiri motuhorváthaitimagyarörményhererointerlingvaindonézinterlingueigb" + - "ószecsuán jiinupiakidóizlandiolaszinuktitutjapánjávaigrúzkongokikujukua" + - "nyamakazahgrönlandikambodzsaikannadakoreaikanurikásmírikurdkomikornikirg" + - "izlatinluxemburgigandalimburgilingalalaoszilitvánluba-katangalettmálgasm" + - "arshallimaorimacedónmalajálammongolmarathimalájmáltaiburmainauruiészaki " + - "ndebelenepálindongahollandnorvég nynorsknorvég bokmaldéli ndebelenavahón" + - "yanjaokszitánojibvaoromóiorijaoszétpandzsábipalilengyelpastuportugálkecs" + - "uaréto-románkirundirománoroszkiruandaszanszkritszardíniaiszindhiészaki s" + - "zámiszangószingalézszlovákszlovénszamoaisonaszomáliaialbánszerbsziszuati" + - "szeszotószundanézsvédszuahélitamiltelugutadzsikthaitigrinjatürkménszecsu" + - "ánitongatörökcongatatártahitiujgurukránurduüzbégvendavietnamivolapükval" + - "lonvolofhoszajiddisjorubazsuangkínaizuluachinézakoliadangmeadygheafrihil" + - "iagemainuakkádaleutdél-altajióangolangikaarámiaraucaniarapahoaravakasuas" + - "ztúrawádibalucsibalinézbaszabamungomalabedzsabembabenabafutbodzspuribiko" + - "lbinikomsiksikabrajbodokosziburjátbuginézbulublinmedumbacaddokaribkajuga" + - "atszamcebuikigacsibcsacsagatájcsukézmaricsinuk zsargoncsoktócsipevécsero" + - "kicsejenszoráni kurdkoptkrími tatárkasubdakotadargvataitadelavárszlevido" + - "gribdinkazarmadogrialsó szorbdualaközép hollandjola-fonyidiuladazagaembu" + - "efikóegyiptomiekadzsukelamitközép angolevondofangfilippínófonközép franc" + - "iaófranciaészaki frízkeleti frízfriuligagagauzgajogbajageezikiribatiközé" + - "p felsÅ‘ németófelsÅ‘ németgondigorontalogótgrebóógörögsvájci németgusziig" + - "vicsinhaidahawaiihiligajnonhittitehmongfelsÅ‘ szorbhupaibanibibióilokóing" + - "uslojbanngombamachamezsidó-perzsazsidó-arabkara-kalpakkabijekacsinjjukam" + - "bakawikabardikanembutyapmakondekabuverdianukorokaszikotanézkojra-csínika" + - "kókalendzsinkimbundukomi-permjákkonkanikosreikpellekaracsáj-balkárkarela" + - "ikuruhsambalabafiakölschkumükkutenailadinolangilahndalambalezglakotamong" + - "óloziluba-lulualuisenolundaluolushailujiamaduraimafamagahimaithilimakas" + - "zarmandingómasaimabamoksánmandarmendemerumauritiusi kreolközép írmakua-m" + - "etómeta’mikmakminangkabaumandzsumanipurimohawkmoszimundangtöbbszörös nye" + - "lvekkríkmirandézmarvarimyeneerzjánynápolyinamaalsónémetnevariniasniuingu" + - "mbangiemboonnogajóskandinávn’kóészaki szotónuerklasszikus newarinyamvézi" + - "nyankolenyorónzimaosageottomán törökpangaszinanpahlavipampanganpapiament" + - "ópalauióperzsafÅ‘niciaipohnpeióprovánszikicseradzsasztánirapanuirarotong" + - "airomboromaarománrwoszandavejakutszamaritánus arámiszamburusasakszantáli" + - "ngambayszanguszicíliaiskótszenekaszenaszölkupkojra-szennióírtachelhitsan" + - "csádi arabszidamódéli számilule számiinar samikoltta lappszoninkesogdien" + - "szranai tongószererszahószukumaszuszusumércomoreikongói szuahéliklasszik" + - "us szírszíriaitemneteszóterenótetumtigrétivtokelauiklingontlingittamasek" + - "nyasa tongatok pisintarokócsimsiánitumbukatuvaluszaváktuvaiközép-marokkó" + - "i tamazigtudmurtugaritiumbunduÅ‘sivaivotjákvunjowalservalamovaraóvasókalm" + - "ükszogajaójapijangbenjembakantonizapotékBliss jelképrendszerzenagamarok" + - "kói tamazightzuninincs nyelvészeti tartalomzazamodern szabányos araboszt" + - "rák németsvájci felnémetausztrál angolkanadai angolbrit angolamerikai an" + - "gollatin-amerikai spanyoleurópai spanyolspanyol (mexikói)kanadai francia" + - "svájci franciaflamandbrazíliai portugáleurópai portugálmoldvaiszerbhorvá" + - "tegyszerűsített kínaihagyományos kínai" - -// Size: 1234 bytes, 605 elements -var huLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000a, 0x0013, 0x001c, 0x0020, 0x0026, 0x002f, - 0x0033, 0x003b, 0x003f, 0x0045, 0x0053, 0x005a, 0x0062, 0x0069, - 0x0070, 0x0077, 0x007f, 0x0085, 0x008b, 0x0093, 0x009b, 0x00a2, - 0x00aa, 0x00b2, 0x00b6, 0x00ba, 0x00c9, 0x00cf, 0x00d5, 0x00d9, - 0x00df, 0x00e5, 0x00ec, 0x00ef, 0x00f6, 0x00fb, 0x0106, 0x010d, - 0x0112, 0x0117, 0x011d, 0x0123, 0x0127, 0x012d, 0x0135, 0x013c, - 0x0141, 0x0144, 0x014e, 0x0157, 0x015e, 0x0168, 0x0173, 0x0179, - 0x017f, 0x0184, 0x018d, 0x0194, 0x0199, 0x019f, 0x01a7, 0x01ad, - // Entry 40 - 7F - 0x01b8, 0x01c0, 0x01cb, 0x01d0, 0x01dc, 0x01e3, 0x01e7, 0x01ee, - 0x01f3, 0x01fc, 0x0202, 0x0208, 0x020d, 0x0212, 0x0218, 0x0220, - 0x0225, 0x022f, 0x0239, 0x0240, 0x0246, 0x024c, 0x0255, 0x0259, - 0x025d, 0x0262, 0x0268, 0x026d, 0x0277, 0x027c, 0x0284, 0x028b, - 0x0291, 0x0298, 0x02a4, 0x02a8, 0x02af, 0x02b8, 0x02bd, 0x02c5, - 0x02cf, 0x02d5, 0x02dc, 0x02e2, 0x02e9, 0x02ef, 0x02f5, 0x0304, - 0x030b, 0x0311, 0x0318, 0x0327, 0x0335, 0x0342, 0x0349, 0x034f, - 0x0358, 0x035e, 0x0365, 0x036a, 0x0370, 0x037a, 0x037e, 0x0385, - // Entry 80 - BF - 0x038a, 0x0393, 0x0399, 0x03a5, 0x03ac, 0x03b2, 0x03b7, 0x03bf, - 0x03c9, 0x03d4, 0x03db, 0x03e9, 0x03f0, 0x03fa, 0x0402, 0x040a, - 0x0411, 0x0415, 0x041f, 0x0425, 0x042a, 0x0433, 0x043c, 0x0446, - 0x044b, 0x0454, 0x0459, 0x045f, 0x0466, 0x046a, 0x0472, 0x047b, - 0x0485, 0x048a, 0x0491, 0x0496, 0x049c, 0x04a2, 0x04a7, 0x04ad, - 0x04b1, 0x04b8, 0x04bd, 0x04c5, 0x04cd, 0x04d3, 0x04d8, 0x04dd, - 0x04e3, 0x04e9, 0x04ef, 0x04f5, 0x04f9, 0x0501, 0x0506, 0x050d, - 0x0513, 0x0513, 0x051b, 0x051f, 0x0523, 0x0529, 0x0529, 0x052e, - // Entry C0 - FF - 0x052e, 0x0539, 0x0540, 0x0546, 0x054c, 0x0554, 0x0554, 0x055b, - 0x055b, 0x0561, 0x0561, 0x0561, 0x0564, 0x0564, 0x056b, 0x056b, - 0x0571, 0x0571, 0x0578, 0x0580, 0x0580, 0x0585, 0x058a, 0x058a, - 0x0590, 0x0596, 0x059b, 0x059b, 0x059f, 0x05a4, 0x05a4, 0x05ad, - 0x05b2, 0x05b6, 0x05b6, 0x05b9, 0x05c0, 0x05c0, 0x05c0, 0x05c4, - 0x05c4, 0x05c8, 0x05cd, 0x05d4, 0x05dc, 0x05e0, 0x05e4, 0x05eb, - 0x05f0, 0x05f5, 0x05fb, 0x0601, 0x0606, 0x060a, 0x0611, 0x061a, - 0x0621, 0x0625, 0x0633, 0x063a, 0x0642, 0x0649, 0x064f, 0x065c, - // Entry 100 - 13F - 0x0660, 0x0660, 0x066d, 0x0672, 0x0678, 0x067e, 0x0683, 0x068b, - 0x0691, 0x0697, 0x069c, 0x06a1, 0x06a6, 0x06b1, 0x06b1, 0x06b6, - 0x06c5, 0x06cf, 0x06d4, 0x06da, 0x06de, 0x06e2, 0x06e2, 0x06ed, - 0x06f5, 0x06fb, 0x0708, 0x0708, 0x070e, 0x070e, 0x0712, 0x071d, - 0x071d, 0x0720, 0x0720, 0x072f, 0x0738, 0x0738, 0x0745, 0x0751, - 0x0757, 0x0759, 0x075f, 0x075f, 0x0763, 0x0768, 0x0768, 0x076c, - 0x0775, 0x0775, 0x078a, 0x0799, 0x0799, 0x079e, 0x07a7, 0x07ab, - 0x07b1, 0x07ba, 0x07c8, 0x07c8, 0x07c8, 0x07ce, 0x07d5, 0x07da, - // Entry 140 - 17F - 0x07da, 0x07e0, 0x07e0, 0x07ea, 0x07f1, 0x07f6, 0x0802, 0x0802, - 0x0806, 0x080a, 0x0811, 0x0817, 0x081c, 0x081c, 0x081c, 0x0822, - 0x0828, 0x082f, 0x083c, 0x0847, 0x0847, 0x0852, 0x0858, 0x085e, - 0x0861, 0x0866, 0x086a, 0x0871, 0x0878, 0x087c, 0x0883, 0x088f, - 0x088f, 0x0893, 0x0893, 0x0898, 0x08a0, 0x08ac, 0x08ac, 0x08ac, - 0x08b1, 0x08bb, 0x08c3, 0x08d0, 0x08d7, 0x08dd, 0x08e3, 0x08f4, - 0x08f4, 0x08f4, 0x08fb, 0x0900, 0x0907, 0x090c, 0x0913, 0x0919, - 0x0920, 0x0926, 0x092b, 0x0931, 0x0936, 0x093a, 0x093a, 0x093a, - // Entry 180 - 1BF - 0x093a, 0x0940, 0x0940, 0x0946, 0x094a, 0x094a, 0x0954, 0x095b, - 0x0960, 0x0963, 0x0969, 0x096e, 0x096e, 0x096e, 0x0975, 0x0979, - 0x097f, 0x0987, 0x098f, 0x0998, 0x099d, 0x09a1, 0x09a8, 0x09ae, - 0x09b3, 0x09b7, 0x09c7, 0x09d2, 0x09dd, 0x09e4, 0x09ea, 0x09f5, - 0x09fc, 0x0a04, 0x0a0a, 0x0a0f, 0x0a0f, 0x0a16, 0x0a2b, 0x0a30, - 0x0a39, 0x0a40, 0x0a40, 0x0a45, 0x0a4d, 0x0a4d, 0x0a4d, 0x0a55, - 0x0a59, 0x0a64, 0x0a6a, 0x0a6e, 0x0a72, 0x0a72, 0x0a78, 0x0a81, - 0x0a86, 0x0a92, 0x0a92, 0x0a99, 0x0aa7, 0x0aab, 0x0abc, 0x0ac5, - // Entry 1C0 - 1FF - 0x0acd, 0x0ad3, 0x0ad8, 0x0add, 0x0aed, 0x0af8, 0x0aff, 0x0b08, - 0x0b13, 0x0b19, 0x0b19, 0x0b19, 0x0b19, 0x0b21, 0x0b21, 0x0b2a, - 0x0b2a, 0x0b2a, 0x0b31, 0x0b31, 0x0b3d, 0x0b42, 0x0b42, 0x0b4f, - 0x0b56, 0x0b60, 0x0b60, 0x0b60, 0x0b65, 0x0b69, 0x0b69, 0x0b69, - 0x0b69, 0x0b70, 0x0b73, 0x0b7b, 0x0b80, 0x0b94, 0x0b9c, 0x0ba1, - 0x0baa, 0x0baa, 0x0bb1, 0x0bb7, 0x0bc1, 0x0bc6, 0x0bc6, 0x0bcd, - 0x0bd2, 0x0bd2, 0x0bda, 0x0be6, 0x0beb, 0x0beb, 0x0bf4, 0x0bf7, - 0x0c02, 0x0c0a, 0x0c0a, 0x0c0a, 0x0c16, 0x0c21, 0x0c2a, 0x0c35, - // Entry 200 - 23F - 0x0c3d, 0x0c44, 0x0c52, 0x0c58, 0x0c5e, 0x0c5e, 0x0c65, 0x0c6b, - 0x0c71, 0x0c78, 0x0c89, 0x0c99, 0x0ca1, 0x0ca1, 0x0ca1, 0x0ca6, - 0x0cac, 0x0cb3, 0x0cb8, 0x0cbe, 0x0cc1, 0x0cc9, 0x0cc9, 0x0cd0, - 0x0cd7, 0x0cd7, 0x0cde, 0x0ce9, 0x0cf2, 0x0cf2, 0x0cf9, 0x0cf9, - 0x0d03, 0x0d03, 0x0d0a, 0x0d10, 0x0d17, 0x0d1c, 0x0d36, 0x0d3c, - 0x0d43, 0x0d4a, 0x0d4e, 0x0d51, 0x0d51, 0x0d51, 0x0d51, 0x0d51, - 0x0d58, 0x0d58, 0x0d5d, 0x0d63, 0x0d69, 0x0d6f, 0x0d74, 0x0d74, - 0x0d74, 0x0d7b, 0x0d7b, 0x0d80, 0x0d84, 0x0d88, 0x0d8f, 0x0d94, - // Entry 240 - 27F - 0x0d94, 0x0d9b, 0x0da3, 0x0db8, 0x0db8, 0x0dbe, 0x0dd1, 0x0dd5, - 0x0df0, 0x0df4, 0x0e0a, 0x0e19, 0x0e2a, 0x0e39, 0x0e46, 0x0e50, - 0x0e5e, 0x0e74, 0x0e84, 0x0e96, 0x0ea5, 0x0eb4, 0x0ebb, 0x0ecf, - 0x0ee1, 0x0ee8, 0x0ef4, 0x0f0b, 0x0f1e, -} - -// Size: 4247 bytes -var hyLangStr string = "" + - "Õ¡Õ¢Õ­Õ¡Õ¦Õ¥Ö€Õ¥Õ¶Õ¡Ö†Ö€Õ«Õ¯Õ¡Õ¡Õ¶Õ½Õ¡Ö„Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¡Õ´Õ°Õ¡Ö€Õ¥Ö€Õ¥Õ¶Õ¡Ö€Õ¡Õ¢Õ¥Ö€Õ¥Õ¶Õ¡Õ½Õ¡Õ´Õ¥Ö€Õ¥Õ¶Õ¡Õ¤Ö€Õ¢Õ¥Õ»Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¢Õ¡Õ·Õ¯Õ«Ö€Õ¥Ö€Õ¥" + - "Õ¶Õ¢Õ¥Õ¬Õ¡Õ¼Õ¸Ö‚Õ½Õ¥Ö€Õ¥Õ¶Õ¢Õ¸Ö‚Õ¬Õ²Õ¡Ö€Õ¥Ö€Õ¥Õ¶Õ¢Õ¡Õ´Õ¢Õ¡Ö€Õ¡Õ¢Õ¥Õ¶Õ£Õ¡Õ¬Õ¥Ö€Õ¥Õ¶Õ¿Õ«Õ¢Õ¥Õ©Õ¥Ö€Õ¥Õ¶Õ¢Ö€Õ¥Õ¿Õ¸Õ¶Õ¥Ö€Õ¥Õ¶Õ¢Õ¸Õ½Õ¶Õ«Õ¥Ö€Õ¥Õ¶Õ¯Õ¡" + - "Õ¿Õ¡Õ¬Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¯Õ¸Ö€Õ½Õ«Õ¯Õ¥Ö€Õ¥Õ¶Õ¹Õ¥Õ­Õ¥Ö€Õ¥Õ¶Õ¸Ö‚Õ¥Õ¬Õ½Õ¥Ö€Õ¥Õ¶Õ¤Õ¡Õ¶Õ«Õ¥Ö€Õ¥Õ¶Õ£Õ¥Ö€Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ»Õ¸Õ¶Õ£Ö„Õ°Õ¡Õ§Õ¾Õ¥Õ°Õ¸Ö‚Õ¶Õ¡Ö€Õ¥Õ¶" + - "Õ¡Õ¶Õ£Õ¬Õ¥Ö€Õ¥Õ¶Õ§Õ½ÕºÕ¥Ö€Õ¡Õ¶Õ¿Õ¸Õ«Õ½ÕºÕ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ§Õ½Õ¿Õ¸Õ¶Õ¥Ö€Õ¥Õ¶Õ¢Õ¡Õ½Õ¯Õ¥Ö€Õ¥Õ¶ÕºÕ¡Ö€Õ½Õ¯Õ¥Ö€Õ¥Õ¶Ö†Õ«Õ¶Õ¶Õ¥Ö€Õ¥Õ¶Ö†Õ«Õ»Õ«Õ¥Ö€Õ¥Õ¶Ö†Õ¡Ö€" + - "ÕµÕ¸Ö€Õ¥Ö€Õ¥Õ¶Ö†Ö€Õ¡Õ¶Õ½Õ¥Ö€Õ¥Õ¶Õ¡Ö€Ö‡Õ´Õ¿ÕµÕ¡Õ¶ Ö†Ö€Õ«Õ¦Õ¥Ö€Õ¥Õ¶Õ«Õ¼Õ¬Õ¡Õ¶Õ¤Õ¥Ö€Õ¥Õ¶Õ£Õ¡Õ¬Õ«Õ½Õ¥Ö€Õ¥Õ¶Õ£Õ¸Ö‚Õ¡Ö€Õ¡Õ¶Õ«Õ£Õ¸Ö‚Õ»Õ¡Ö€Õ¡Õ©Õ«Õ´Õ¥" + - "Õ¶Õ¥Ö€Õ¥Õ¶Õ°Õ¡Õ¸Ö‚Õ½Õ¡Õ¥Õ¢Ö€Õ¡ÕµÕ¥Ö€Õ¥Õ¶Õ°Õ«Õ¶Õ¤Õ«Õ­Õ¸Ö€Õ¾Õ¡Õ©Õ¥Ö€Õ¥Õ¶Õ°Õ¡Õ«Õ©Õ¥Ö€Õ¥Õ¶Õ°Õ¸Ö‚Õ¶Õ£Õ¡Ö€Õ¥Ö€Õ¥Õ¶Õ°Õ¡ÕµÕ¥Ö€Õ¥Õ¶Õ«Õ¶Õ¤Õ¸Õ¶Õ¥Õ¦Õ¥Ö€Õ¥" + - "Õ¶Õ«Õ£Õ¢Õ¸Õ½Õ«Õ­Õ¸Ö‚Õ¡Õ¶ ÕµÕ«Õ«Õ½Õ¬Õ¡Õ¶Õ¤Õ¥Ö€Õ¥Õ¶Õ«Õ¿Õ¡Õ¬Õ¥Ö€Õ¥Õ¶Õ«Õ¶Õ¸Ö‚Õ¯Õ¿Õ«Õ¿Õ¸Ö‚Õ¿Õ³Õ¡ÕºÕ¸Õ¶Õ¥Ö€Õ¥Õ¶Õ³Õ¡Õ¾Õ¡ÕµÕ¥Ö€Õ¥Õ¶Õ¾Ö€Õ¡ÖÕ¥Ö€Õ¥Õ¶Õ¯" + - "Õ«Õ¯Õ¸Ö‚ÕµÕ¸Ö‚Õ²Õ¡Õ¦Õ¡Õ­Õ¥Ö€Õ¥Õ¶Õ¯Õ¡Õ¬Õ¡Õ¡Õ¬Õ«Õ½Õ¸Ö‚Õ¿Ö„Õ´Õ¥Ö€Õ¥Ö€Õ¥Õ¶Õ¯Õ¡Õ¶Õ¶Õ¡Õ¤Õ¡Õ¯Õ¸Ö€Õ¥Õ¥Ö€Õ¥Õ¶Ö„Õ¡Õ·Õ´Õ«Ö€Õ¥Ö€Õ¥Õ¶Ö„Ö€Õ¤Õ¥Ö€Õ¥Õ¶Õ¯Õ¸Õ¼Õ¶" + - "Õ¥Ö€Õ¥Õ¶Õ²Ö€Õ²Õ¦Õ¥Ö€Õ¥Õ¶Õ¬Õ¡Õ¿Õ«Õ¶Õ¥Ö€Õ¥Õ¶Õ¬ÕµÕ¸Ö‚Ö„Õ½Õ¥Õ´Õ¢Õ¸Ö‚Ö€Õ£Õ¥Ö€Õ¥Õ¶Õ£Õ¡Õ¶Õ¤Õ¡Õ¬Õ«Õ¶Õ£Õ¡Õ¬Õ¡Õ¬Õ¡Õ¸Õ½Õ¥Ö€Õ¥Õ¶Õ¬Õ«Õ¿Õ¾Õ¥Ö€Õ¥Õ¶Õ¬Õ¸Ö‚Õ¢Õ¡" + - "-Õ¯Õ¡Õ¿Õ¡Õ¶Õ£Õ¡Õ¬Õ¡Õ¿Õ¾Õ«Õ¥Ö€Õ¥Õ¶Õ´Õ¡Õ¬Õ¡Õ£Õ¡Õ½Õ¥Ö€Õ¥Õ¶Õ´Õ¡Õ¸Ö€Õ«Õ´Õ¡Õ¯Õ¥Õ¤Õ¸Õ¶Õ¥Ö€Õ¥Õ¶Õ´Õ¡Õ¬Õ¡ÕµÕ¡Õ¬Õ¡Õ´Õ´Õ¸Õ¶Õ²Õ¸Õ¬Õ¥Ö€Õ¥Õ¶Õ´Õ¡Ö€Õ¡Õ©Õ«Õ´Õ¡Õ¬" + - "Õ¡ÕµÕ¥Ö€Õ¥Õ¶Õ´Õ¡Õ¬Õ©Õ¥Ö€Õ¥Õ¶Õ¢Õ«Ö€Õ´Õ¡ÕµÕ¥Ö€Õ¥Õ¶Õ°ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ Õ¶Õ¤Õ¥Õ¢Õ¥Õ¬Õ¥Õ¶Õ¥ÕºÕ¡Õ¬Õ¥Ö€Õ¥Õ¶Õ°Õ¸Õ¬Õ¡Õ¶Õ¤Õ¥Ö€Õ¥Õ¶Õ¶Õ¸Ö€Õ¾Õ¥Õ£Õ¥Ö€Õ¥" + - "Õ¶ Õ¶ÕµÕ¸Ö‚Õ¶Õ¸Ö€Õ½Õ¯Õ¶Õ¸Ö€Õ¾Õ¥Õ£Õ¥Ö€Õ¥Õ¶ Õ¢Õ¸Ö‚Õ¯Õ´Õ¸Õ¬Ö…Ö€Õ¸Õ´Õ¸Ö…Ö€Õ«ÕµÕ¡ÖƒÕ¥Õ¶Õ»Õ¡Õ¢Õ¥Ö€Õ¥Õ¶Õ¬Õ¥Õ°Õ¥Ö€Õ¥Õ¶ÖƒÕ¸Ö‚Õ·Õ©Õ¸Ö‚ÕºÕ¸Ö€Õ¿Õ¸Ö‚Õ£Õ¡" + - "Õ¬Õ¥Ö€Õ¥Õ¶Ö„Õ¥Õ¹Õ¸Ö‚Õ¡Õ¼Õ¸Õ´Õ¡Õ¶Õ·Õ¥Ö€Õ¥Õ¶Õ¼Õ¸Ö‚Õ¶Õ¤Õ«Õ¼Õ¸Ö‚Õ´Õ«Õ¶Õ¥Ö€Õ¥Õ¶Õ¼Õ¸Ö‚Õ½Õ¥Ö€Õ¥Õ¶Ö„Õ«Õ¶ÕµÕ¡Ö€Õ¾Õ¡Õ¶Õ¤Õ¡Õ½Õ¡Õ¶Õ½Õ¯Ö€Õ«Õ¿Õ½Õ«Õ¶Õ¤Õ°Õ«Õ°" + - "ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ Õ½Õ¡Õ´Õ«Õ½Õ¡Õ¶Õ£Õ¸Õ½Õ«Õ¶Õ°Õ¡Õ¬Õ¥Ö€Õ¥Õ¶Õ½Õ¬Õ¸Õ¾Õ¡Õ¯Õ¥Ö€Õ¥Õ¶Õ½Õ¬Õ¸Õ¾Õ¥Õ¶Õ¥Ö€Õ¥Õ¶Õ·Õ¸Õ¶Õ¡Õ½Õ¸Õ´Õ¡Õ¬Õ«Õ¥Ö€Õ¥Õ¶Õ¡Õ¬Õ¢Õ¡Õ¶Õ¥Ö€" + - "Õ¥Õ¶Õ½Õ¥Ö€Õ¢Õ¥Ö€Õ¥Õ¶Õ½Õ¸Ö‚Õ¶Õ¤Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ·Õ¾Õ¥Õ¤Õ¥Ö€Õ¥Õ¶Õ½Õ¸Ö‚Õ¡Õ°Õ«Õ¬Õ«Õ©Õ¡Õ´Õ«Õ¬Õ¥Ö€Õ¥Õ¶Õ©Õ¥Õ¬Õ¸Ö‚Õ£Õ¸Ö‚Õ¿Õ¡Õ»Õ«Õ¯Õ¥Ö€Õ¥Õ¶Õ©Õ¡ÕµÕ¥Ö€Õ¥Õ¶Õ©" + - "Õ«Õ£Ö€Õ«Õ¶Õ«Õ¡Õ©Õ¸Ö‚Ö€Ö„Õ´Õ¥Õ¶Õ¥Ö€Õ¥Õ¶Õ¿Õ¸Õ¶Õ£Õ¡Õ©Õ¸Ö‚Ö€Ö„Õ¥Ö€Õ¥Õ¶Õ©Õ¡Õ©Õ¡Ö€Õ¥Ö€Õ¥Õ¶Õ¸Ö‚ÕµÕ²Õ¸Ö‚Ö€Õ¥Ö€Õ¥Õ¶Õ¸Ö‚Õ¯Ö€Õ¡Õ«Õ¶Õ¥Ö€Õ¥Õ¶Õ¸Ö‚Ö€Õ¤Õ¸Ö‚Õ¸" + - "Ö‚Õ¦Õ¢Õ¥Õ¯Õ¥Ö€Õ¥Õ¶Õ¾Õ«Õ¥Õ¿Õ¶Õ¡Õ´Õ¥Ö€Õ¥Õ¶Õ¾Õ¸Õ¬Õ¸Ö†Ö„Õ½Õ¸Õ¦Õ¡ÕµÕ¸Ö€Õ¸Ö‚Õ¢Õ¡Õ¹Õ«Õ¶Õ¡Ö€Õ¥Õ¶Õ¦Õ¸Ö‚Õ¬Õ¸Ö‚Õ½Õ¥Ö€Õ¥Õ¶Õ¡Õ²Õ¥Õ´Õ´Õ¡ÕºÕ¸Ö‚Õ¹Õ«Õ¡Õ½Õ¸Ö‚Õ¢" + - "Õ¥Õ´Õ¢Õ¡Õ¢Õ¥Õ¶Õ¡Õ¢Õ¸Õ¤Õ¸Õ¹Õ«Õ£Õ¡Õ·Õ¥Ö€Õ¸Õ¯Õ«Õ½Õ¸Ö€Õ¡Õ¶Õ« (Ö„Ö€Õ¤Õ¥Ö€Õ¥Õ¶)Õ©Õ¡Õ«Õ©Õ¡Õ¦Õ¡Ö€Õ´Õ¡Õ½Õ¿Õ¸Ö€Õ«Õ¶ Õ½Õ¸Ö€Õ¢Õ«Õ¥Ö€Õ¥Õ¶Õ¤Õ¸Ö‚Õ¡Õ¬Õ¡Õ»" + - "Õ¸Õ¬Õ¡-Ö†Õ¸Õ¶ÕµÕ«Õ§Õ´Õ¢Õ¸Ö‚Ö†Õ«Õ¬Õ«ÕºÕ«Õ¶Õ¥Ö€Õ¥Õ¶Õ£Õ¡Õ£Õ¡Õ¸Ö‚Õ¦Õ¥Ö€Õ¥Õ¶Õ·Õ¾Õ¥ÕµÖÕ¡Ö€Õ¡Õ¯Õ¡Õ¶ Õ£Õ¥Ö€Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ£Õ¸Ö‚Õ½Õ«Õ°Õ¡Õ¾Õ¡ÕµÕ«Õ¥Ö€" + - "Õ¥Õ¶Õ¾Õ¥Ö€Õ«Õ¶ Õ½Õ¸Ö€Õ¢Õ«Õ¥Ö€Õ¥Õ¶Õ¶Õ£Õ¸Õ´Õ¢Õ¡Õ´Õ¡Õ·Õ¡Õ´Õ¥Õ¯Õ¡Õ¢Õ«Õ¬Õ¥Ö€Õ¥Õ¶Õ¯Õ¡Õ´Õ¢Õ¡Õ´Õ¡Õ¯Õ¸Õ¶Õ¤Õ¥Õ¯Õ¸Ö‚Õ¢Õ¡Õ¾Õ¥Ö€Õ¤Õ«Õ¡Õ¶Õ¸Ö‚Õ¯Õ¸ÕµÖ€Õ¡ Õ¹" + - "Õ«Õ¶Õ«Õ¯Õ¡Õ¬Õ¥Õ¶Õ»Õ«Õ¶Õ¯Õ¸Õ´Õ«-ÕºÕ¥Ö€Õ´ÕµÕ¡Õ¯Õ¯Õ¸Õ¶Õ¯Õ¡Õ¶Õ«Õ·Õ¡Õ´Õ¢Õ¡Õ¬Õ¡Õ¢Õ¡Ö†Õ«Õ¡Õ¬Õ¡Õ¶Õ£Õ«Õ¬Õ¡Õ¯Õ¸Õ¿Õ¡Õ¬Õ¸Ö‚Õ¸Õ¬Õ¸Ö‚ÕµÕ¡Õ´Õ¡Õ½Õ¡Õ«Õ´Õ¥Ö€Õ¸" + - "Ö‚Õ´Õ¸Ö€Õ«Õ½ÕµÕ¥Õ¶Õ´Õ¡Ö„Õ¸Ö‚Õ¡-Õ´Õ¥Õ¿Õ¿Õ¸Õ´Õ¥Õ¿Õ¡Õ´Õ¸Õ°Õ¡Õ¾Ö„Õ´Õ¸Ö‚Õ¶Õ¤Õ¡Õ¶Õ£Õ¶Õ¡Õ´Õ¡Õ¯Õ¾Õ¡Õ½Õ«Õ¸Õ¶Õ¯Õ¸Õ¶Õ¸Ö‚Õ¥Ö€Õ¶ÕµÕ¡Õ¶Õ¯Õ¸Õ¬Õ¥Õ¯Õ«Õ¹Õ¥Õ¼Õ¸" + - "Õ´Õ¢Õ¸Õ¼Õ¾Õ¡Õ½Õ¡Õ´Õ¢Õ¸Ö‚Ö€Õ¸Ö‚Õ½Õ¡Õ¶Õ£Õ¸Ö‚Õ½Õ¥Õ¶Õ¡Õ¯Õ¸ÕµÖ€Õ¡Õ¢Õ¸Ö€Õ¸ Õ½Õ¥Õ¶Õ¶Õ«Õ¿Õ¡Õ·Õ¥Õ¬Õ°Õ«Õ©Õ°Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ Õ½Õ¡Õ´Õ«Õ¬Õ¸Ö‚Õ¬Õ¥ Õ½Õ¡Õ´" + - "Õ«Õ«Õ¶Õ¡Ö€Õ« Õ½Õ¡Õ´Õ«Õ½Õ¯Õ¸Õ¬Õ¿ Õ½Õ¡Õ´Õ«Õ¯Õ¸Õ¶Õ£Õ¸ÕµÕ« Õ½Õ¸Ö‚Õ¡Õ°Õ«Õ¬Õ«Õ¿Õ¥Õ½Õ¸Õ¿Õ¡Õ½Õ¡Õ¾Õ¡Ö„Õ¯Õ¥Õ¶Õ¿Ö€Õ¸Õ¶Õ¡Õ¿Õ¬Õ¡Õ½ÕµÕ¡Õ¶ Õ©Õ¡Õ´Õ¡Õ¦Õ«Õ­" + - "Õ¿Õ¡Õ¶Õ°Õ¡ÕµÕ¿ Õ¬Õ¥Õ¦Õ¸Ö‚Õ¾Õ¡Õ«Õ¾Õ¸Ö‚Õ¶Õ»Õ¸Õ½Õ¸Õ£Õ¡Õ½Õ¿Õ¡Õ¶Õ¤Õ¡Ö€Õ¿ Õ´Õ¡Ö€Õ¸Õ¯Õ¡Õ¯Õ¡Õ¶ Õ©Õ¡Õ´Õ¡Õ¦Õ«Õ²Õ¿Õ¡Õ¼Õ¡Õ¶Ö Õ¬Õ¥Õ¦Õ¾Õ¡ÕµÕ«Õ¶ Õ¢Õ¸Õ¾" + - "Õ¡Õ¶Õ¤Õ¡Õ¯Õ¸Ö‚Õ©ÕµÕ¡Õ¶ÕªÕ¡Õ´Õ¡Õ¶Õ¡Õ¯Õ¡Õ¯Õ«Ö Õ½Õ¿Õ¡Õ¶Õ¤Õ¡Ö€Õ¿ Õ¡Ö€Õ¡Õ¢Õ¥Ö€Õ¥Õ¶Õ¡Õ¾Õ½Õ¿Ö€Õ«Õ¡Õ¯Õ¡Õ¶ Õ£Õ¥Ö€Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ·Õ¾Õ¥ÕµÖÕ¡Ö€Õ¡Õ¯Õ¡" + - "Õ¶ Õ¢Õ¡Ö€Õ±Ö€ Õ£Õ¥Ö€Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¡Õ¾Õ½Õ¿Ö€Õ¡Õ¬Õ¡Õ¯Õ¡Õ¶ Õ¡Õ¶Õ£Õ¬Õ¥Ö€Õ¥Õ¶Õ¯Õ¡Õ¶Õ¡Õ¤Õ¡Õ¯Õ¡Õ¶ Õ¡Õ¶Õ£Õ¬Õ¥Ö€Õ¥Õ¶Õ¢Ö€Õ«Õ¿Õ¡Õ¶Õ¡Õ¯Õ¡Õ¶ Õ¡Õ¶Õ£Õ¬" + - "Õ¥Ö€Õ¥Õ¶Õ¡Õ´Õ¥Ö€Õ«Õ¯ÕµÕ¡Õ¶ Õ¡Õ¶Õ£Õ¬Õ¥Ö€Õ¥Õ¶Õ¬Õ¡Õ¿Õ«Õ¶Õ¡Õ¡Õ´Õ¥Ö€Õ«Õ¯ÕµÕ¡Õ¶ Õ«Õ½ÕºÕ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¥Õ¾Ö€Õ¸ÕºÕ¡Õ¯Õ¡Õ¶ Õ«Õ½ÕºÕ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ´Õ¥Ö„Õ½Õ«" + - "Õ¯Õ¡Õ¯Õ¡Õ¶ Õ«Õ½ÕºÕ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¯Õ¡Õ¶Õ¡Õ¤Õ¡Õ¯Õ¡Õ¶ Ö†Ö€Õ¡Õ¶Õ½Õ¥Ö€Õ¥Õ¶Õ·Õ¾Õ¥ÕµÖÕ¡Ö€Õ¡Õ¯Õ¡Õ¶ Ö†Ö€Õ¡Õ¶Õ½Õ¥Ö€Õ¥Õ¶Ö†Õ¬Õ¡Õ´Õ¡Õ¶Õ¤Õ¥Ö€Õ¥Õ¶Õ¢Ö€Õ¡Õ¦Õ«" + - "Õ¬Õ¡Õ¯Õ¡Õ¶ ÕºÕ¸Ö€Õ¿Õ¸Ö‚Õ£Õ¡Õ¬Õ¥Ö€Õ¥Õ¶Õ¥Õ¾Ö€Õ¸ÕºÕ¡Õ¯Õ¡Õ¶ ÕºÕ¸Ö€Õ¿Õ¸Ö‚Õ£Õ¡Õ¬Õ¥Ö€Õ¥Õ¶Õ´Õ¸Õ¬Õ¤Õ¸Õ¾Õ¥Ö€Õ¥Õ¶ÕºÕ¡Ö€Õ¦Õ¥ÖÕ¾Õ¡Õ® Õ¹Õ«Õ¶Õ¡Ö€Õ¥Õ¶Õ¡Õ¾" + - "Õ¡Õ¶Õ¤Õ¡Õ¯Õ¡Õ¶ Õ¹Õ«Õ¶Õ¡Ö€Õ¥Õ¶" - -// Size: 1234 bytes, 605 elements -var hyLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0012, 0x0012, 0x0024, 0x0034, 0x0046, 0x0046, - 0x0056, 0x0066, 0x0066, 0x0066, 0x007e, 0x0092, 0x00aa, 0x00c0, - 0x00c0, 0x00ce, 0x00e2, 0x00f4, 0x0108, 0x011a, 0x0130, 0x0130, - 0x0130, 0x0144, 0x0144, 0x0152, 0x0152, 0x0152, 0x0164, 0x0174, - 0x0188, 0x0188, 0x0196, 0x019c, 0x01ac, 0x01bc, 0x01ce, 0x01e0, - 0x01f2, 0x0202, 0x0214, 0x0214, 0x0224, 0x0234, 0x0248, 0x025a, - 0x027b, 0x028f, 0x028f, 0x02a1, 0x02b1, 0x02c3, 0x02d1, 0x02dd, - 0x02ef, 0x02f9, 0x02f9, 0x030d, 0x031d, 0x0333, 0x0341, 0x0341, - // Entry 40 - 7F - 0x0341, 0x0357, 0x0357, 0x035f, 0x0372, 0x0372, 0x0372, 0x0386, - 0x0396, 0x03ac, 0x03be, 0x03d0, 0x03e0, 0x03e0, 0x03f0, 0x03f0, - 0x0402, 0x0418, 0x0428, 0x0436, 0x0446, 0x0446, 0x045a, 0x0468, - 0x0468, 0x0478, 0x0488, 0x049a, 0x04bc, 0x04c6, 0x04c6, 0x04d4, - 0x04e4, 0x04f4, 0x050d, 0x051f, 0x0535, 0x0535, 0x053f, 0x0555, - 0x0567, 0x057b, 0x0587, 0x0599, 0x05a9, 0x05bd, 0x05bd, 0x05e2, - 0x05f4, 0x05f4, 0x0608, 0x062f, 0x0652, 0x0652, 0x0652, 0x0652, - 0x0652, 0x0652, 0x065c, 0x0666, 0x0666, 0x067a, 0x067a, 0x0688, - // Entry 80 - BF - 0x0696, 0x06b0, 0x06bc, 0x06d0, 0x06dc, 0x06f0, 0x0700, 0x0716, - 0x0726, 0x0726, 0x0732, 0x0751, 0x075b, 0x076f, 0x0783, 0x0797, - 0x0797, 0x079f, 0x07b3, 0x07c5, 0x07d5, 0x07d5, 0x07d5, 0x07eb, - 0x07fb, 0x080b, 0x081d, 0x082d, 0x083f, 0x084d, 0x085d, 0x0875, - 0x0875, 0x087f, 0x0891, 0x0891, 0x08a3, 0x08a3, 0x08b9, 0x08cf, - 0x08db, 0x08ef, 0x08ef, 0x0905, 0x0905, 0x0905, 0x090f, 0x0919, - 0x0919, 0x0927, 0x0927, 0x0935, 0x094b, 0x094b, 0x094b, 0x094b, - 0x094b, 0x094b, 0x094b, 0x0953, 0x0953, 0x0953, 0x0953, 0x0953, - // Entry C0 - FF - 0x0953, 0x0953, 0x0953, 0x0953, 0x0953, 0x0961, 0x0961, 0x0961, - 0x0961, 0x0961, 0x0961, 0x0961, 0x0969, 0x0969, 0x0969, 0x0969, - 0x0969, 0x0969, 0x0969, 0x0969, 0x0969, 0x0969, 0x0969, 0x0969, - 0x0969, 0x0969, 0x0973, 0x0973, 0x097b, 0x097b, 0x097b, 0x097b, - 0x097b, 0x097b, 0x097b, 0x097b, 0x097b, 0x097b, 0x097b, 0x097b, - 0x097b, 0x0983, 0x0983, 0x0983, 0x0983, 0x0983, 0x0983, 0x0983, - 0x0983, 0x0983, 0x0983, 0x0983, 0x0983, 0x098b, 0x098b, 0x098b, - 0x098b, 0x098b, 0x098b, 0x098b, 0x098b, 0x0997, 0x0997, 0x09b4, - // Entry 100 - 13F - 0x09b4, 0x09b4, 0x09b4, 0x09b4, 0x09b4, 0x09b4, 0x09be, 0x09be, - 0x09be, 0x09be, 0x09be, 0x09c8, 0x09c8, 0x09e7, 0x09e7, 0x09f3, - 0x09f3, 0x0a06, 0x0a06, 0x0a06, 0x0a10, 0x0a10, 0x0a10, 0x0a10, - 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a26, - 0x0a26, 0x0a26, 0x0a26, 0x0a26, 0x0a26, 0x0a26, 0x0a26, 0x0a26, - 0x0a26, 0x0a26, 0x0a3c, 0x0a3c, 0x0a3c, 0x0a3c, 0x0a3c, 0x0a3c, - 0x0a3c, 0x0a3c, 0x0a3c, 0x0a3c, 0x0a3c, 0x0a3c, 0x0a3c, 0x0a3c, - 0x0a3c, 0x0a3c, 0x0a67, 0x0a67, 0x0a67, 0x0a71, 0x0a71, 0x0a71, - // Entry 140 - 17F - 0x0a71, 0x0a85, 0x0a85, 0x0a85, 0x0a85, 0x0a85, 0x0aa2, 0x0aa2, - 0x0aa2, 0x0aa2, 0x0aa2, 0x0aa2, 0x0aa2, 0x0aa2, 0x0aa2, 0x0aa2, - 0x0aae, 0x0aba, 0x0aba, 0x0aba, 0x0aba, 0x0aba, 0x0acc, 0x0acc, - 0x0acc, 0x0ad6, 0x0ad6, 0x0ad6, 0x0ad6, 0x0ad6, 0x0ae4, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b13, 0x0b13, 0x0b13, - 0x0b13, 0x0b23, 0x0b23, 0x0b3a, 0x0b48, 0x0b48, 0x0b48, 0x0b48, - 0x0b48, 0x0b48, 0x0b48, 0x0b48, 0x0b56, 0x0b60, 0x0b60, 0x0b60, - 0x0b60, 0x0b60, 0x0b6a, 0x0b6a, 0x0b6a, 0x0b6a, 0x0b6a, 0x0b6a, - // Entry 180 - 1BF - 0x0b6a, 0x0b76, 0x0b76, 0x0b76, 0x0b76, 0x0b76, 0x0b76, 0x0b76, - 0x0b76, 0x0b7e, 0x0b7e, 0x0b88, 0x0b88, 0x0b88, 0x0b88, 0x0b88, - 0x0b88, 0x0b88, 0x0b88, 0x0b88, 0x0b92, 0x0b92, 0x0b92, 0x0b92, - 0x0b92, 0x0b9c, 0x0bac, 0x0bac, 0x0bc3, 0x0bcb, 0x0bcb, 0x0bcb, - 0x0bcb, 0x0bcb, 0x0bd7, 0x0bd7, 0x0bd7, 0x0be7, 0x0be7, 0x0be7, - 0x0be7, 0x0be7, 0x0be7, 0x0be7, 0x0be7, 0x0be7, 0x0be7, 0x0be7, - 0x0bef, 0x0bef, 0x0bef, 0x0bef, 0x0bef, 0x0bef, 0x0bfb, 0x0bfb, - 0x0bfb, 0x0bfb, 0x0bfb, 0x0c01, 0x0c01, 0x0c0b, 0x0c0b, 0x0c0b, - // Entry 1C0 - 1FF - 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, - 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, - 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, 0x0c23, 0x0c23, 0x0c23, - 0x0c23, 0x0c23, 0x0c23, 0x0c23, 0x0c2d, 0x0c2d, 0x0c2d, 0x0c2d, - 0x0c2d, 0x0c2d, 0x0c33, 0x0c33, 0x0c33, 0x0c33, 0x0c45, 0x0c45, - 0x0c45, 0x0c45, 0x0c45, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, - 0x0c59, 0x0c59, 0x0c59, 0x0c76, 0x0c76, 0x0c76, 0x0c86, 0x0c86, - 0x0c86, 0x0c86, 0x0c86, 0x0c86, 0x0ca1, 0x0cb4, 0x0cc7, 0x0cda, - // Entry 200 - 23F - 0x0cda, 0x0cda, 0x0cda, 0x0cda, 0x0cda, 0x0cda, 0x0cda, 0x0cda, - 0x0cda, 0x0cda, 0x0cf9, 0x0cf9, 0x0cf9, 0x0cf9, 0x0cf9, 0x0cf9, - 0x0d01, 0x0d01, 0x0d01, 0x0d01, 0x0d01, 0x0d01, 0x0d01, 0x0d01, - 0x0d01, 0x0d01, 0x0d01, 0x0d01, 0x0d01, 0x0d01, 0x0d01, 0x0d01, - 0x0d01, 0x0d01, 0x0d01, 0x0d01, 0x0d0f, 0x0d0f, 0x0d3e, 0x0d3e, - 0x0d3e, 0x0d3e, 0x0d55, 0x0d5b, 0x0d5b, 0x0d5b, 0x0d5b, 0x0d5b, - 0x0d5b, 0x0d5b, 0x0d67, 0x0d67, 0x0d67, 0x0d67, 0x0d67, 0x0d67, - 0x0d67, 0x0d67, 0x0d67, 0x0d6f, 0x0d6f, 0x0d6f, 0x0d6f, 0x0d6f, - // Entry 240 - 27F - 0x0d6f, 0x0d6f, 0x0d6f, 0x0d6f, 0x0d6f, 0x0d6f, 0x0da3, 0x0da3, - 0x0ddb, 0x0ddb, 0x0e13, 0x0e3c, 0x0e72, 0x0e99, 0x0ebc, 0x0ee1, - 0x0f04, 0x0f35, 0x0f5a, 0x0f81, 0x0fa6, 0x0fcf, 0x0fe5, 0x1014, - 0x1041, 0x1055, 0x1055, 0x1076, 0x1097, -} - -// Size: 4032 bytes -var idLangStr string = "" + - "AfarAbkhazAvestaAfrikaansAkanAmharikAragonArabAssamAvarAymaraAzerbaijanB" + - "ashkirBelarusiaBulgarBislamaBambaraBengaliTibetBretonBosniaKatalanCheche" + - "nChamorroKorsikaKreeCheskaBahasa Gereja SlavoniaChuvashWelshDanskJermanD" + - "ivehiDzongkhaEweYunaniInggrisEsperantoSpanyolEstiBaskPersiaFulaSuomiFiji" + - "FaroPrancisFrisia BaratIrlandiaGaelik SkotlandiaGalisiaGuaraniGujaratiMa" + - "nxHausaIbraniHindiHiri MotuKroasiaHaitiHungariaArmeniaHereroInterlinguaB" + - "ahasa IndonesiaInterlingueIgboSichuan YiInupiakIdoIslandiaItaliaInuktitu" + - "tJepangJawaGeorgiaKongoKikuyuKuanyamaKazakhKalaallisutKhmerKannadaKoreaK" + - "anuriKashmirKurdiKomiKornishKirgizLatinLuksemburgGandaLimburgiaLingalaLa" + - "oLituaviLuba-KatangaLatviMalagasiMarshallMaoriMakedoniaMalayalamMongolia" + - "MarathiMelayuMaltaBurmaNauruNdebele UtaraNepaliNdongaBelandaNynorsk Norw" + - "egiaBokmÃ¥l NorwegiaNdebele SelatanNavajoNyanjaOsitaniaOjibwaOromoOriyaOs" + - "setiaPunjabiPaliPolskiPashtoPortugisQuechuaReto-RomanRundiRumaniaRusiaKi" + - "nyarwandaSanskertaSardiniaSindhiSami UtaraSangoSinhalaSlovakSlovenSamoaS" + - "honaSomaliAlbaniaSerbSwatiSotho SelatanSundaSwediaSwahiliTamilTeluguTaji" + - "kThaiTigrinyaTurkmenTswanaTongaTurkiTsongaTatarTahitiUyghurUkrainaUrduUz" + - "bekVendaVietnamVolapukWalloonWolofXhosaYiddishYorubaZhuangChinaZuluAcehA" + - "coliAdangmeAdygeiArab TunisiaAfrihiliAghemAinuAkkadiaAlabamaAleutAltai S" + - "elatanInggris KunoAngikaAramAraukanArapahoArab AlgeriaArawakArab MarokoA" + - "rab MesirAsuBahasa Isyarat AmerikaAsturAwadhiAzerbaijani SelatanBaluchiB" + - "aliBavariaBasaBamunBatak TobaGhomalaBejaBembaBetawiBenaBafutBhojpuriBiko" + - "lBiniBanjarKomSiksikaBrajBodoAkooseBuriatBugisBuluBlinMedumbaKadoKaribCa" + - "yugaAtsamSebuanoKigaChibchaChagataiChuukeMariJargon ChinookKoktawChipewy" + - "anCherokeeCheyenneKurdi SoraniKoptikTatar KrimeaKashubiaDakotaDargwaTait" + - "aDelawareSlaveDogribDinkaZarmaDogriSorbia RendahDualaBelanda TengahJola-" + - "FonyiDyulaDazagaEmbuEfikMesir KunoEkajukElamInggris Abad PertengahanEwon" + - "doFangFilipinoFonPrancis Abad PertengahanPrancis KunoArpitanFrisia Utara" + - "Frisia TimurFriuliGaGagauzGayoGbayaGeezGilbertGilakiJerman Abad Pertenga" + - "hanJerman KunoGondiGorontaloGothikGreboYunani KunoJerman SwissGusiiGwich" + - "’inHaidaHawaiiHindi FijiHiligaynonHititHmongSorbia AtasHupaIbanIbibioI" + - "lokoIngushetiaLojbanNgombaMachameIbrani-PersiaIbrani-ArabKara-KalpakKaby" + - "leKachinJjuKambaKawiKabardiKanembuTyapMakondeKabuverdianuKenyangKoroKhas" + - "iKhotanKoyra ChiiniKakoKalenjinKimbunduKomi-PermyakKonkaniKosreKpelleKar" + - "achai BalkarKrioKareliaKurukShambalaBafiaDialek KolschKumykKutenaiLadino" + - "LangiLahndaLambaLezghiaLiguriaLakotaMongoLoziLuba-LuluaLuisenoLundaLuoMi" + - "zoLuyiaLazMaduraMafaMagahiMaithiliMakasarMandingoMasaiMabaMokshaMandarMe" + - "ndeMeruMorisienIrlandia Abad PertengahanMakhuwa-Meettometa’MikmakMinangk" + - "abauManchuriaManipuriMohawkMossiMundangBeberapa BahasaBahasa MuskogeeMir" + - "andaMarwariMentawaiMyeneEryzaNeapolitanNamaJerman RendahNewariNiasNiueaK" + - "wasioNgiemboonNogaiNorse KunoN’KoSotho UtaraNuerNewari KlasikNyamweziNya" + - "nkoleNyoroNzimaOsageTurki OsmaniPangasinaPahleviPampangaPapiamentoPalauJ" + - "erman PennsylvaniaPersia KunoFunisiaPohnpeiaProvencal LamaKʼicheʼRajasth" + - "aniRapanuiRarotongaRomboRomaniRotumaMakedo-RumaniaRwaSandaweSakhaAram Sa" + - "mariaSamburuSasakSantaliNgambaiSanguSisiliaSkotlandiaSenecaSenaSeriSelku" + - "pKoyraboro SenniIrlandia KunoTachelhitShanArab SuwaSidamoSilesia BawahSe" + - "layarSami SelatanLule SamiInari SamiSkolt SamiSoninkeSogdienSranan Tongo" + - "SererSahoSukumaSusuSumeriaKomoriaKongo SwahiliSuriah KlasikSuriahSilesia" + - "TuluTimneTesoTerenoTetunTigreTivTokelauKlingonTlingitTamashekNyasa Tonga" + - "Tok PisinTuroyoTarokoTsimshiaTat MuslimTumbukaTuvaluTasawaqTuviniaTamazi" + - "ght Maroko TengahUdmurtUgaritUmbunduRootVaiVenesiaVotiaVunjoWalserWalamo" + - "WaraiWashoKalmukSogaYaoYapoisYangbenYembaKantonZapotekBlissymbolZenagaTa" + - "mazight Maroko StandarZuniTidak ada konten linguistikZazaArab Standar Mo" + - "dernJerman AustriaJerman Tinggi SwissInggris AustraliaInggris KanadaIngg" + - "ris InggrisInggris AmerikaSpanyol Amerika LatinSpanyol EropaSpanyol Meks" + - "ikoPrancis KanadaPrancis SwissFlemishPortugis BrasilPortugis EropaMoldav" + - "iaSerbo-KroasiaChina (Aksara Sederhana)China (Aksara Tradisional)" - -// Size: 1234 bytes, 605 elements -var idLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000a, 0x0010, 0x0019, 0x001d, 0x0024, 0x002a, - 0x002e, 0x0033, 0x0037, 0x003d, 0x0047, 0x004e, 0x0057, 0x005d, - 0x0064, 0x006b, 0x0072, 0x0077, 0x007d, 0x0083, 0x008a, 0x0091, - 0x0099, 0x00a0, 0x00a4, 0x00aa, 0x00c0, 0x00c7, 0x00cc, 0x00d1, - 0x00d7, 0x00dd, 0x00e5, 0x00e8, 0x00ee, 0x00f5, 0x00fe, 0x0105, - 0x0109, 0x010d, 0x0113, 0x0117, 0x011c, 0x0120, 0x0124, 0x012b, - 0x0137, 0x013f, 0x0150, 0x0157, 0x015e, 0x0166, 0x016a, 0x016f, - 0x0175, 0x017a, 0x0183, 0x018a, 0x018f, 0x0197, 0x019e, 0x01a4, - // Entry 40 - 7F - 0x01af, 0x01bf, 0x01ca, 0x01ce, 0x01d8, 0x01df, 0x01e2, 0x01ea, - 0x01f0, 0x01f9, 0x01ff, 0x0203, 0x020a, 0x020f, 0x0215, 0x021d, - 0x0223, 0x022e, 0x0233, 0x023a, 0x023f, 0x0245, 0x024c, 0x0251, - 0x0255, 0x025c, 0x0262, 0x0267, 0x0271, 0x0276, 0x027f, 0x0286, - 0x0289, 0x0290, 0x029c, 0x02a1, 0x02a9, 0x02b1, 0x02b6, 0x02bf, - 0x02c8, 0x02d0, 0x02d7, 0x02dd, 0x02e2, 0x02e7, 0x02ec, 0x02f9, - 0x02ff, 0x0305, 0x030c, 0x031c, 0x032c, 0x033b, 0x0341, 0x0347, - 0x034f, 0x0355, 0x035a, 0x035f, 0x0366, 0x036d, 0x0371, 0x0377, - // Entry 80 - BF - 0x037d, 0x0385, 0x038c, 0x0396, 0x039b, 0x03a2, 0x03a7, 0x03b2, - 0x03bb, 0x03c3, 0x03c9, 0x03d3, 0x03d8, 0x03df, 0x03e5, 0x03eb, - 0x03f0, 0x03f5, 0x03fb, 0x0402, 0x0406, 0x040b, 0x0418, 0x041d, - 0x0423, 0x042a, 0x042f, 0x0435, 0x043a, 0x043e, 0x0446, 0x044d, - 0x0453, 0x0458, 0x045d, 0x0463, 0x0468, 0x046e, 0x0474, 0x047b, - 0x047f, 0x0484, 0x0489, 0x0490, 0x0497, 0x049e, 0x04a3, 0x04a8, - 0x04af, 0x04b5, 0x04bb, 0x04c0, 0x04c4, 0x04c8, 0x04cd, 0x04d4, - 0x04da, 0x04e6, 0x04ee, 0x04f3, 0x04f7, 0x04fe, 0x0505, 0x050a, - // Entry C0 - FF - 0x050a, 0x0517, 0x0523, 0x0529, 0x052d, 0x0534, 0x0534, 0x053b, - 0x0547, 0x054d, 0x0558, 0x0562, 0x0565, 0x057b, 0x0580, 0x0580, - 0x0586, 0x0599, 0x05a0, 0x05a4, 0x05ab, 0x05af, 0x05b4, 0x05be, - 0x05c5, 0x05c9, 0x05ce, 0x05d4, 0x05d8, 0x05dd, 0x05dd, 0x05e5, - 0x05ea, 0x05ee, 0x05f4, 0x05f7, 0x05fe, 0x05fe, 0x05fe, 0x0602, - 0x0602, 0x0606, 0x060c, 0x0612, 0x0617, 0x061b, 0x061f, 0x0626, - 0x062a, 0x062f, 0x0635, 0x063a, 0x0641, 0x0645, 0x064c, 0x0654, - 0x065a, 0x065e, 0x066c, 0x0672, 0x067b, 0x0683, 0x068b, 0x0697, - // Entry 100 - 13F - 0x069d, 0x069d, 0x06a9, 0x06b1, 0x06b7, 0x06bd, 0x06c2, 0x06ca, - 0x06cf, 0x06d5, 0x06da, 0x06df, 0x06e4, 0x06f1, 0x06f1, 0x06f6, - 0x0704, 0x070e, 0x0713, 0x0719, 0x071d, 0x0721, 0x0721, 0x072b, - 0x0731, 0x0735, 0x074d, 0x074d, 0x0753, 0x0753, 0x0757, 0x075f, - 0x075f, 0x0762, 0x0762, 0x077a, 0x0786, 0x078d, 0x0799, 0x07a5, - 0x07ab, 0x07ad, 0x07b3, 0x07b3, 0x07b7, 0x07bc, 0x07bc, 0x07c0, - 0x07c7, 0x07cd, 0x07e4, 0x07ef, 0x07ef, 0x07f4, 0x07fd, 0x0803, - 0x0808, 0x0813, 0x081f, 0x081f, 0x081f, 0x0824, 0x082e, 0x0833, - // Entry 140 - 17F - 0x0833, 0x0839, 0x0843, 0x084d, 0x0852, 0x0857, 0x0862, 0x0862, - 0x0866, 0x086a, 0x0870, 0x0875, 0x087f, 0x087f, 0x087f, 0x0885, - 0x088b, 0x0892, 0x089f, 0x08aa, 0x08aa, 0x08b5, 0x08bb, 0x08c1, - 0x08c4, 0x08c9, 0x08cd, 0x08d4, 0x08db, 0x08df, 0x08e6, 0x08f2, - 0x08f9, 0x08fd, 0x08fd, 0x0902, 0x0908, 0x0914, 0x0914, 0x0914, - 0x0918, 0x0920, 0x0928, 0x0934, 0x093b, 0x0940, 0x0946, 0x0955, - 0x0959, 0x0959, 0x0960, 0x0965, 0x096d, 0x0972, 0x097f, 0x0984, - 0x098b, 0x0991, 0x0996, 0x099c, 0x09a1, 0x09a8, 0x09a8, 0x09af, - // Entry 180 - 1BF - 0x09af, 0x09b5, 0x09b5, 0x09ba, 0x09be, 0x09be, 0x09c8, 0x09cf, - 0x09d4, 0x09d7, 0x09db, 0x09e0, 0x09e0, 0x09e3, 0x09e9, 0x09ed, - 0x09f3, 0x09fb, 0x0a02, 0x0a0a, 0x0a0f, 0x0a13, 0x0a19, 0x0a1f, - 0x0a24, 0x0a28, 0x0a30, 0x0a49, 0x0a57, 0x0a5e, 0x0a64, 0x0a6f, - 0x0a78, 0x0a80, 0x0a86, 0x0a8b, 0x0a8b, 0x0a92, 0x0aa1, 0x0ab0, - 0x0ab7, 0x0abe, 0x0ac6, 0x0acb, 0x0ad0, 0x0ad0, 0x0ad0, 0x0ada, - 0x0ade, 0x0aeb, 0x0af1, 0x0af5, 0x0afa, 0x0afa, 0x0b00, 0x0b09, - 0x0b0e, 0x0b18, 0x0b18, 0x0b1e, 0x0b29, 0x0b2d, 0x0b3a, 0x0b42, - // Entry 1C0 - 1FF - 0x0b4a, 0x0b4f, 0x0b54, 0x0b59, 0x0b65, 0x0b6e, 0x0b75, 0x0b7d, - 0x0b87, 0x0b8c, 0x0b8c, 0x0b9f, 0x0b9f, 0x0baa, 0x0baa, 0x0bb1, - 0x0bb1, 0x0bb1, 0x0bb9, 0x0bb9, 0x0bc7, 0x0bd0, 0x0bd0, 0x0bda, - 0x0be1, 0x0bea, 0x0bea, 0x0bea, 0x0bef, 0x0bf5, 0x0bfb, 0x0bfb, - 0x0bfb, 0x0c09, 0x0c0c, 0x0c13, 0x0c18, 0x0c24, 0x0c2b, 0x0c30, - 0x0c37, 0x0c37, 0x0c3e, 0x0c43, 0x0c4a, 0x0c54, 0x0c54, 0x0c5a, - 0x0c5e, 0x0c62, 0x0c68, 0x0c77, 0x0c84, 0x0c84, 0x0c8d, 0x0c91, - 0x0c9a, 0x0ca0, 0x0cad, 0x0cb4, 0x0cc0, 0x0cc9, 0x0cd3, 0x0cdd, - // Entry 200 - 23F - 0x0ce4, 0x0ceb, 0x0cf7, 0x0cfc, 0x0d00, 0x0d00, 0x0d06, 0x0d0a, - 0x0d11, 0x0d18, 0x0d25, 0x0d32, 0x0d38, 0x0d3f, 0x0d43, 0x0d48, - 0x0d4c, 0x0d52, 0x0d57, 0x0d5c, 0x0d5f, 0x0d66, 0x0d66, 0x0d6d, - 0x0d74, 0x0d74, 0x0d7c, 0x0d87, 0x0d90, 0x0d96, 0x0d9c, 0x0d9c, - 0x0da4, 0x0dae, 0x0db5, 0x0dbb, 0x0dc2, 0x0dc9, 0x0de0, 0x0de6, - 0x0dec, 0x0df3, 0x0df7, 0x0dfa, 0x0e01, 0x0e01, 0x0e01, 0x0e01, - 0x0e06, 0x0e06, 0x0e0b, 0x0e11, 0x0e17, 0x0e1c, 0x0e21, 0x0e21, - 0x0e21, 0x0e27, 0x0e27, 0x0e2b, 0x0e2e, 0x0e34, 0x0e3b, 0x0e40, - // Entry 240 - 27F - 0x0e40, 0x0e46, 0x0e4d, 0x0e57, 0x0e57, 0x0e5d, 0x0e75, 0x0e79, - 0x0e94, 0x0e98, 0x0eab, 0x0eb9, 0x0ecc, 0x0edd, 0x0eeb, 0x0efa, - 0x0f09, 0x0f1e, 0x0f2b, 0x0f3a, 0x0f48, 0x0f55, 0x0f5c, 0x0f6b, - 0x0f79, 0x0f81, 0x0f8e, 0x0fa6, 0x0fc0, -} - -// Size: 4224 bytes -var isLangStr string = "" + - "abkasískaavestískaafríkanskaakanamharískaaragonskaarabískaassamskaavarís" + - "kaaímaraaserskabaskírhvítrússneskabúlgarskabíslamabambarabengalskatíbesk" + - "abretónskabosnískakatalónskatsjetsjenskakamorrókorsískakrítékkneskakirkj" + - "uslavneskasjúvasvelskadanskaþýskadívehídsongkaewegrískaenskaesperantóspæ" + - "nskaeistneskabaskneskapersneskafúlafinnskafídjeyskafæreyskafranskavestur" + - "frísneskaírskaskosk gelískagalíanskagvaranígújaratímanskahásahebreskahin" + - "díhírímótúkróatískahaítískaungverskaarmenskahereróalþjóðatungaindónesísk" + - "ainterlingveígbósísúanjíínúpíakídóíslenskaítalskainúktitútjapanskajavans" + - "kageorgískakongóskakíkújúkúanjamakasakskagrænlenskakmerkannadakóreskakan" + - "úríkasmírskakúrdískakomískakornbreskakirgiskalatínalúxemborgískagandali" + - "mbúrgískalingalalaólitháískalúbakatangalettneskamalagasískamarshallskama" + - "orímakedónskamalajalammongólskamaratímalaískamaltneskaburmneskanárúskano" + - "rður-ndebelenepalskandongahollenskanýnorskanorskt bókmálsuðurndebelenava" + - "hónjanja; sísjeva; sjevaoksítanískaojibvaoromoóríaossetískapúnjabípalípó" + - "lskapastúportúgalskakvesjúarómanskarúndírúmenskarússneskakínjarvandasans" + - "krítsardínskasindínorðursamískasangósingalískaslóvakískaslóvenskasamóska" + - "shonasómalskaalbanskaserbneskasvatísuðursótósúndanskasænskasvahílítamíls" + - "katelúgútadsjikskataílenskatígrinjatúrkmenskatsúanatongverskatyrkneskats" + - "ongatatarskatahítískaúígúrúkraínskaúrdúúsbekskavendavíetnamskavallónskav" + - "olofsósajiddískajórúbasúangkínverskasúlúakkískaacoliadangmeadýgeafríhílí" + - "aghemakkadískaaleúskafornenskaarameískaarákanískaarapahóaravakskaasuastú" + - "rískaavadíbalúkíbalískabasabejabembabenabojpúríbíkolbínísiksikabraíbódób" + - "úríatbúgískablínkaddókaríbamálkebúanókígasíbsjasjagataísjúkískamarísínú" + - "ksjoktásípevískaCherokee-málsjeyensorani-kúrdískakoptískakrímtyrkneskaka" + - "súbískadakótadargvataítadelaverslavneskadogríbdinkazarmadogrílágsorbnesk" + - "adúalamiðhollenskajola-fonyidjúlaembuefíkfornegypskaekajúkelamítmiðenska" + - "evondófangfilippseyskafónmiðfranskafornfranskanorðurfrísneskaausturfrísn" + - "eskafríúlskagagagásgajógbajagísgilberskamiðháþýskafornháþýskagondígoront" + - "alógotneskagerbóforngrískasvissnesk þýskagusiigvísínhaídahavaískahíligaí" + - "nonhettitískahmonghásorbneskahúpaíbanílokóingúslojbanngombamasjámegyðing" + - "apersneskagyðingaarabískakarakalpakkabílekasínkambakavíkabardískamakonde" + - "grænhöfðeyskakasíkotaskakoyra chiinikalenjinkimbúndúkómí-permyakkonkaník" + - "osraskakpellekarasaíbalkarkúrúksjambalabafíakúmíkkútenaíladínskalangílan" + - "dalambalesgískalakótamongóloziluba-lulualúisenólúndalúólúsaíluyiamadúrsk" + - "amagahímaítílímakasarmandingómasaímoksamandarmendemerúmáritískamiðírskam" + - "akhuwa-meettometa’mikmakmínangkabámansjúmanípúrímóhískamossímundangmargv" + - "ísleg málkríkmarvaríersjanapólískanamalágþýska; lágsaxneskanevaríníasní" + - "veskakwasionógaínorrænan’konorðursótónúernjamvesínyankolenjórónsímaósage" + - "tyrkneska, ottómanpangasínmálpalavípampangapapíamentópaláskafornpersnesk" + - "afönikískaponpeiskafornpróvensalskakicherajastanírapanúírarótongskarombó" + - "romanírúasandavejakútsamversk arameískasambúrúsasaksantalísangúsikileysk" + - "askoskasenaselkúpkoíraboró-sennífornírskatachelhitsjansídamósuðursamíska" + - "lúlesamískaenaresamískaskoltesamískasóninkesogdíenserersúkúmasúsúsúmersk" + - "aKongó-svahílíklassísk sýrlenskasýrlenskatímnetesóterenótetúmtígretívtók" + - "eláskaklingonskatlingittamasjektongverska (nyasa)tokpisintsimsískatúmbúk" + - "atúvalúskatasawaqtúvínskatamazightúdmúrtúgarítískaúmbúndúrótvaívotískavu" + - "njóvalamóvaraívasjókalmúkskasógajaójapískasapótekblisstáknsenagastaðlað " + - "marokkóskt tamazightsúníekkert tungumálaefnistöðluð nútímaarabískaaustur" + - "rísk þýskasvissnesk háþýskaáströlsk enskakanadísk enskabresk enskabandar" + - "ísk enskarómanskamerísk spænskaevrópsk spænskamexíkósk spænskakanadísk " + - "franskasvissnesk franskaflæmskabrasílísk portúgalskaevrópsk portúgalskam" + - "oldóvskaserbókróatískakínverska (einfölduð)kínverska (hefðbundin)" - -// Size: 1234 bytes, 605 elements -var isLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x000a, 0x0014, 0x001f, 0x0023, 0x002d, 0x0036, - 0x003f, 0x0047, 0x0050, 0x0057, 0x005e, 0x0065, 0x0074, 0x007e, - 0x0086, 0x008d, 0x0096, 0x009e, 0x00a8, 0x00b1, 0x00bc, 0x00c8, - 0x00d0, 0x00d9, 0x00dd, 0x00e7, 0x00f6, 0x00fd, 0x0103, 0x0109, - 0x0110, 0x0118, 0x011f, 0x0122, 0x0129, 0x012e, 0x0138, 0x0140, - 0x0149, 0x0152, 0x015b, 0x0160, 0x0167, 0x0171, 0x017a, 0x0181, - 0x0191, 0x0197, 0x01a5, 0x01af, 0x01b7, 0x01c1, 0x01c7, 0x01cc, - 0x01d4, 0x01da, 0x01e6, 0x01f1, 0x01fb, 0x0204, 0x020c, 0x0213, - // Entry 40 - 7F - 0x0222, 0x022f, 0x023a, 0x0240, 0x024b, 0x0255, 0x025a, 0x0263, - 0x026b, 0x0276, 0x027e, 0x0286, 0x0290, 0x0299, 0x02a2, 0x02ab, - 0x02b3, 0x02be, 0x02c2, 0x02c9, 0x02d1, 0x02d9, 0x02e3, 0x02ed, - 0x02f5, 0x02ff, 0x0307, 0x030e, 0x031d, 0x0322, 0x032f, 0x0336, - 0x033a, 0x0345, 0x0351, 0x035a, 0x0366, 0x0371, 0x0377, 0x0382, - 0x038b, 0x0395, 0x039c, 0x03a5, 0x03ae, 0x03b7, 0x03c0, 0x03cf, - 0x03d7, 0x03dd, 0x03e6, 0x03ef, 0x03fe, 0x040b, 0x0412, 0x0429, - 0x0436, 0x043c, 0x0441, 0x0447, 0x0451, 0x045a, 0x045f, 0x0466, - // Entry 80 - BF - 0x046c, 0x0478, 0x0480, 0x0489, 0x0490, 0x0499, 0x04a3, 0x04af, - 0x04b8, 0x04c2, 0x04c8, 0x04d7, 0x04dd, 0x04e8, 0x04f4, 0x04fe, - 0x0506, 0x050b, 0x0514, 0x051c, 0x0525, 0x052b, 0x0537, 0x0541, - 0x0548, 0x0551, 0x055a, 0x0562, 0x056c, 0x0576, 0x057f, 0x058a, - 0x0591, 0x059b, 0x05a4, 0x05aa, 0x05b2, 0x05bd, 0x05c5, 0x05d0, - 0x05d6, 0x05df, 0x05e4, 0x05ef, 0x05ef, 0x05f9, 0x05fe, 0x0603, - 0x060c, 0x0614, 0x061a, 0x0624, 0x062a, 0x0632, 0x0637, 0x063e, - 0x0644, 0x0644, 0x064f, 0x0654, 0x0654, 0x065e, 0x065e, 0x0666, - // Entry C0 - FF - 0x0666, 0x0666, 0x066f, 0x066f, 0x0679, 0x0685, 0x0685, 0x068d, - 0x068d, 0x0696, 0x0696, 0x0696, 0x0699, 0x0699, 0x06a4, 0x06a4, - 0x06aa, 0x06aa, 0x06b2, 0x06ba, 0x06ba, 0x06be, 0x06be, 0x06be, - 0x06be, 0x06c2, 0x06c7, 0x06c7, 0x06cb, 0x06cb, 0x06cb, 0x06d4, - 0x06da, 0x06e0, 0x06e0, 0x06e0, 0x06e7, 0x06e7, 0x06e7, 0x06ec, - 0x06ec, 0x06f2, 0x06f2, 0x06fa, 0x0703, 0x0703, 0x0708, 0x0708, - 0x070e, 0x0719, 0x0719, 0x0719, 0x0722, 0x0727, 0x072e, 0x0737, - 0x0741, 0x0746, 0x074d, 0x0754, 0x075f, 0x076c, 0x0772, 0x0783, - // Entry 100 - 13F - 0x078c, 0x078c, 0x079a, 0x07a5, 0x07ac, 0x07b2, 0x07b8, 0x07bf, - 0x07c8, 0x07cf, 0x07d4, 0x07d9, 0x07df, 0x07ec, 0x07ec, 0x07f2, - 0x07ff, 0x0809, 0x080f, 0x080f, 0x0813, 0x0818, 0x0818, 0x0823, - 0x082a, 0x0831, 0x083a, 0x083a, 0x0841, 0x0841, 0x0845, 0x0851, - 0x0851, 0x0855, 0x0855, 0x0860, 0x086b, 0x086b, 0x087c, 0x088c, - 0x0896, 0x0898, 0x089e, 0x089e, 0x08a3, 0x08a8, 0x08a8, 0x08ac, - 0x08b5, 0x08b5, 0x08c3, 0x08d1, 0x08d1, 0x08d7, 0x08e1, 0x08e9, - 0x08ef, 0x08fa, 0x090b, 0x090b, 0x090b, 0x0910, 0x0918, 0x091e, - // Entry 140 - 17F - 0x091e, 0x0927, 0x0927, 0x0933, 0x093e, 0x0943, 0x094f, 0x094f, - 0x0954, 0x0959, 0x0959, 0x0960, 0x0966, 0x0966, 0x0966, 0x096c, - 0x0972, 0x097a, 0x098b, 0x099c, 0x099c, 0x09a6, 0x09ad, 0x09b3, - 0x09b3, 0x09b8, 0x09bd, 0x09c8, 0x09c8, 0x09c8, 0x09cf, 0x09df, - 0x09df, 0x09df, 0x09df, 0x09e4, 0x09eb, 0x09f7, 0x09f7, 0x09f7, - 0x09f7, 0x09ff, 0x0a09, 0x0a17, 0x0a1f, 0x0a27, 0x0a2d, 0x0a3b, - 0x0a3b, 0x0a3b, 0x0a3b, 0x0a42, 0x0a4a, 0x0a50, 0x0a50, 0x0a57, - 0x0a60, 0x0a69, 0x0a6f, 0x0a74, 0x0a79, 0x0a82, 0x0a82, 0x0a82, - // Entry 180 - 1BF - 0x0a82, 0x0a89, 0x0a89, 0x0a8f, 0x0a93, 0x0a93, 0x0a9d, 0x0aa6, - 0x0aac, 0x0ab1, 0x0ab8, 0x0abd, 0x0abd, 0x0abd, 0x0ac6, 0x0ac6, - 0x0acd, 0x0ad7, 0x0ade, 0x0ae7, 0x0aed, 0x0aed, 0x0af2, 0x0af8, - 0x0afd, 0x0b02, 0x0b0d, 0x0b17, 0x0b25, 0x0b2c, 0x0b32, 0x0b3e, - 0x0b45, 0x0b50, 0x0b59, 0x0b5f, 0x0b5f, 0x0b66, 0x0b76, 0x0b7b, - 0x0b7b, 0x0b83, 0x0b83, 0x0b83, 0x0b88, 0x0b88, 0x0b88, 0x0b93, - 0x0b97, 0x0bb0, 0x0bb7, 0x0bbc, 0x0bc4, 0x0bc4, 0x0bca, 0x0bca, - 0x0bd1, 0x0bd9, 0x0bd9, 0x0bdf, 0x0bec, 0x0bf1, 0x0bf1, 0x0bfa, - // Entry 1C0 - 1FF - 0x0c02, 0x0c09, 0x0c0f, 0x0c15, 0x0c28, 0x0c35, 0x0c3c, 0x0c44, - 0x0c50, 0x0c58, 0x0c58, 0x0c58, 0x0c58, 0x0c65, 0x0c65, 0x0c70, - 0x0c70, 0x0c70, 0x0c79, 0x0c79, 0x0c8a, 0x0c8f, 0x0c8f, 0x0c99, - 0x0ca2, 0x0cae, 0x0cae, 0x0cae, 0x0cb4, 0x0cbb, 0x0cbb, 0x0cbb, - 0x0cbb, 0x0cbb, 0x0cbf, 0x0cc6, 0x0ccc, 0x0cdf, 0x0ce8, 0x0ced, - 0x0cf5, 0x0cf5, 0x0cf5, 0x0cfb, 0x0d05, 0x0d0b, 0x0d0b, 0x0d0b, - 0x0d0f, 0x0d0f, 0x0d16, 0x0d28, 0x0d32, 0x0d32, 0x0d3b, 0x0d3f, - 0x0d3f, 0x0d47, 0x0d47, 0x0d47, 0x0d55, 0x0d62, 0x0d6f, 0x0d7d, - // Entry 200 - 23F - 0x0d85, 0x0d8d, 0x0d8d, 0x0d92, 0x0d92, 0x0d92, 0x0d9a, 0x0da0, - 0x0da9, 0x0da9, 0x0db9, 0x0dcd, 0x0dd7, 0x0dd7, 0x0dd7, 0x0ddd, - 0x0de2, 0x0de9, 0x0def, 0x0df5, 0x0df9, 0x0e04, 0x0e04, 0x0e0e, - 0x0e15, 0x0e15, 0x0e1d, 0x0e2f, 0x0e37, 0x0e37, 0x0e37, 0x0e37, - 0x0e41, 0x0e41, 0x0e4a, 0x0e55, 0x0e5c, 0x0e66, 0x0e6f, 0x0e77, - 0x0e84, 0x0e8e, 0x0e92, 0x0e96, 0x0e96, 0x0e96, 0x0e96, 0x0e96, - 0x0e9e, 0x0e9e, 0x0ea4, 0x0ea4, 0x0eab, 0x0eb1, 0x0eb7, 0x0eb7, - 0x0eb7, 0x0ec1, 0x0ec1, 0x0ec6, 0x0eca, 0x0ed2, 0x0ed2, 0x0ed2, - // Entry 240 - 27F - 0x0ed2, 0x0ed2, 0x0eda, 0x0ee4, 0x0ee4, 0x0eea, 0x0f09, 0x0f0f, - 0x0f24, 0x0f24, 0x0f40, 0x0f53, 0x0f67, 0x0f77, 0x0f86, 0x0f91, - 0x0fa1, 0x0fba, 0x0fcb, 0x0fde, 0x0fef, 0x1000, 0x1008, 0x1020, - 0x1035, 0x103f, 0x1050, 0x1068, 0x1080, -} - -// Size: 4915 bytes -var itLangStr string = "" + - "afarabcasoavestanafrikaansakanamaricoaragonesearaboassameseavaroaymaraaz" + - "erbaigianobaschirobielorussobulgarobislamabambarabengalesetibetanobreton" + - "ebosniacocatalanocecenochamorrocorsocreececoslavo della Chiesachuvashgal" + - "lesedanesetedescodivehidzongkhaewegrecoingleseesperantospagnoloestonebas" + - "copersianofulahfinlandesefigianofaroesefrancesefrisone occidentaleirland" + - "esegaelico scozzesegalizianoguaranígujaratimanxhausaebraicohindihiri mot" + - "ucroatohaitianoungheresearmenohererointerlinguaindonesianointerlingueigb" + - "osichuan yiinupiakidoislandeseitalianoinuktitutgiapponesegiavanesegeorgi" + - "anokongokikuyukuanyamakazakokalaallisutkhmerkannadacoreanokanurikashmiri" + - "curdokomicornicochirghisolatinolussemburghesegandalimburgeselingalalaoli" + - "tuanoluba-katangalettonemalgasciomarshallesemaorimacedonemalayalammongol" + - "omarathimalesemaltesebirmanonaurundebele del nordnepalesendongaolandesen" + - "orvegese nynorsknorvegese bokmÃ¥lndebele del sudnavajonyanjaoccitanoojibw" + - "aoromooriyaosseticopunjabipalipolaccopashtoportoghesequechuaromanciorund" + - "irumenorussokinyarwandasanscritosardosindhisami del nordsangosingalesesl" + - "ovaccoslovenosamoanoshonasomaloalbaneseserboswatisotho del sudsundaneses" + - "vedeseswahilitamiltelugutagicothaitigrinoturcomannotswanatonganoturcotso" + - "ngatatarotaitianouiguroucrainourduusbecovendavietnamitavolapükvallonewol" + - "ofxhosayiddishyorubazhuangcinesezuluaccineseacioliadangmeadyghearabo tun" + - "isinoafrihiliaghemainuaccadoalabamaaleutoalbanese ghegoaltai meridionale" + - "inglese anticoangikaaramaicoaraucanoaraonaarapahoarabo algerinoaruacoara" + - "bo marocchinoarabo egizianoasulingua dei segni americanaasturianokotavaa" + - "wadhiazero meridionalebelucibalinesebavaresebasabamunbatak tobaghomalabe" + - "giawembabetawibenabafutbadagabhojpuribicolbinibanjarkomsiksikabishnupriy" + - "abakhtiaribrajbrahuibodoakooseburiatbugibulublinmedumbacaddocaribicocayu" + - "gaatsamcebuanochigachibchaciagataicochuukesemarigergo chinookchoctawchip" + - "ewyancherokeecheyennecurdo soranicoptocapiznonturco crimeokashubiandakot" + - "adargwataitadelawareslavedogribdincazarmadogribasso sorabodusun centrale" + - "dualaolandese mediojola-fonydiuladazagaembuefikemilianoegiziano anticoek" + - "ajukaelamiticoinglese medioyupik centraleewondoestremegnofangfilippinofi" + - "nlandese del Tornedalenfonfrancese cajunfrancese mediofrancese anticofra" + - "ncoprovenzalefrisone settentrionalefrisone orientalefriulanogagagauzogan" + - "gayogbayadari zoroastrianogeezgilbertesegilakitedesco medio altotedesco " + - "antico altokonkani goanogondigorontalogoticogerbogreco anticotedesco svi" + - "zzerowayuugusiigwichʼinhaidahakkahawaianohindi figianohiligaynahittitehm" + - "ongalto soraboxianghupaibanibibioilocanoingushingricocreolo giamaicanolo" + - "jbanngamambomachamegiudeo persianogiudeo arabojutlandicokara-kalpakcabil" + - "okachinkaikambakawikabardiakanembutyapmakondecapoverdianokorokaingangkha" + - "sikhotanesekoyra chiinikhowarkirmanjkikakokalenjinkimbundupermiacokonkan" + - "ikosraeankpellekarachay-Balkarcarelianokurukhshambalabafiacoloniesekumyk" + - "kutenaigiudeo-spagnololangilahndalambalezghianLingua Franca Novaligureli" + - "vonelakotalombardololo bantuloziletgalloluba-lulualuisenolundaluolushail" + - "uyiacinese classicolazmaduresemafamagahimaithilimakasarmandingomasaimaba" + - "mokshamandarmendemerucreolo maurizianoirlandese mediomakhuwa-meettometa’" + - "micmacmenangkabaumanchumanipurimohawkmossimari occidentalemundangmultili" + - "nguacreekmirandesemarwarimentawaimyeneerzyamazandaranimin nannapoletanon" + - "amabasso tedesconewariniasniueaokwasiongiemboonnogainorse anticonovialn’" + - "kosotho del nordnuernewari classiconyamwezinyankolenyoronzimaosageturco " + - "ottomanopangasinanpahlavipampangapapiamentopalaupiccardotedesco della Pe" + - "nnsylvaniapersiano anticotedesco palatinofeniciopiemonteseponticoponapep" + - "russianoprovenzale anticok’iche’quechua dell’altopiano del Chimborazoraj" + - "asthanirapanuirarotongaromagnolotarifitromboromanirotumanorutenorovianaa" + - "rumenorwasandaweyakutaramaico samaritanosamburusasaksantalisaurashtranga" + - "mbaysangusicilianoscozzesesassaresesenecasenaseriselkupkoyraboro senniir" + - "landese anticosamogiticotashelhitshanchadian arabicsidamotedesco slesian" + - "oselayarsami del sudsami di Lulesami di Inarisami skoltsoninkesogdianosr" + - "anan tongoserersahosaterfriesischsukumasususumerocomorianocongo swahilis" + - "iriaco classicosiriacoslesianotulutemnetesoterenotetumtigretivtokelautsa" + - "khurklingontlingittalisciotamasheknyasa del Tongatok pisinturoyotarokoza" + - "conicotsimshiantat islamicotumbukatuvalutasawaqtuviniantamazightudmurtug" + - "ariticombundurootvaivenetovepsofiammingo occidentalevotovõrovunjowalserw" + - "alamowaraywashowukalmykmengreliosogayao (bantu)yapeseyangbenyembanheenga" + - "tucantonesezapotecblissymbolzelandesezenagatamazight del Marocco standar" + - "dzuninessun contenuto linguisticozazaarabo moderno standardtedesco austr" + - "iacoalto tedesco svizzeroinglese australianoinglese canadeseinglese brit" + - "annicoinglese americanospagnolo latinoamericanospagnolo europeospagnolo " + - "messicanofrancese canadesefrancese svizzerofiammingoportoghese brasilian" + - "oportoghese europeomoldavoserbo-croatocinese semplificatocinese tradizio" + - "nale" - -// Size: 1234 bytes, 605 elements -var itLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000a, 0x0011, 0x001a, 0x001e, 0x0025, 0x002e, - 0x0033, 0x003b, 0x0040, 0x0046, 0x0052, 0x005a, 0x0064, 0x006b, - 0x0072, 0x0079, 0x0082, 0x008a, 0x0091, 0x0099, 0x00a1, 0x00a7, - 0x00af, 0x00b4, 0x00b8, 0x00bc, 0x00ce, 0x00d5, 0x00dc, 0x00e2, - 0x00e9, 0x00ef, 0x00f7, 0x00fa, 0x00ff, 0x0106, 0x010f, 0x0117, - 0x011d, 0x0122, 0x012a, 0x012f, 0x0139, 0x0140, 0x0147, 0x014f, - 0x0162, 0x016b, 0x017b, 0x0184, 0x018c, 0x0194, 0x0198, 0x019d, - 0x01a4, 0x01a9, 0x01b2, 0x01b8, 0x01c0, 0x01c9, 0x01cf, 0x01d5, - // Entry 40 - 7F - 0x01e0, 0x01eb, 0x01f6, 0x01fa, 0x0204, 0x020b, 0x020e, 0x0217, - 0x021f, 0x0228, 0x0232, 0x023b, 0x0244, 0x0249, 0x024f, 0x0257, - 0x025d, 0x0268, 0x026d, 0x0274, 0x027b, 0x0281, 0x0289, 0x028e, - 0x0292, 0x0299, 0x02a2, 0x02a8, 0x02b6, 0x02bb, 0x02c5, 0x02cc, - 0x02cf, 0x02d6, 0x02e2, 0x02e9, 0x02f2, 0x02fd, 0x0302, 0x030a, - 0x0313, 0x031a, 0x0321, 0x0327, 0x032e, 0x0335, 0x033a, 0x034a, - 0x0352, 0x0358, 0x0360, 0x0371, 0x0382, 0x0391, 0x0397, 0x039d, - 0x03a5, 0x03ab, 0x03b0, 0x03b5, 0x03bd, 0x03c4, 0x03c8, 0x03cf, - // Entry 80 - BF - 0x03d5, 0x03df, 0x03e6, 0x03ee, 0x03f3, 0x03f9, 0x03fe, 0x0409, - 0x0412, 0x0417, 0x041d, 0x042a, 0x042f, 0x0438, 0x0440, 0x0447, - 0x044e, 0x0453, 0x0459, 0x0461, 0x0466, 0x046b, 0x0478, 0x0481, - 0x0488, 0x048f, 0x0494, 0x049a, 0x04a0, 0x04a4, 0x04ab, 0x04b5, - 0x04bb, 0x04c2, 0x04c7, 0x04cd, 0x04d3, 0x04db, 0x04e1, 0x04e8, - 0x04ec, 0x04f2, 0x04f7, 0x0501, 0x0509, 0x0510, 0x0515, 0x051a, - 0x0521, 0x0527, 0x052d, 0x0533, 0x0537, 0x053f, 0x0545, 0x054c, - 0x0552, 0x0560, 0x0568, 0x056d, 0x0571, 0x0577, 0x057e, 0x0584, - // Entry C0 - FF - 0x0592, 0x05a3, 0x05b1, 0x05b7, 0x05bf, 0x05c7, 0x05cd, 0x05d4, - 0x05e2, 0x05e8, 0x05f8, 0x0606, 0x0609, 0x0623, 0x062c, 0x0632, - 0x0638, 0x0649, 0x064f, 0x0657, 0x065f, 0x0663, 0x0668, 0x0672, - 0x0679, 0x067e, 0x0683, 0x0689, 0x068d, 0x0692, 0x0698, 0x06a0, - 0x06a5, 0x06a9, 0x06af, 0x06b2, 0x06b9, 0x06c4, 0x06cd, 0x06d1, - 0x06d7, 0x06db, 0x06e1, 0x06e7, 0x06eb, 0x06ef, 0x06f3, 0x06fa, - 0x06ff, 0x0707, 0x070d, 0x0712, 0x0719, 0x071e, 0x0725, 0x072f, - 0x0737, 0x073b, 0x0748, 0x074f, 0x0758, 0x0760, 0x0768, 0x0774, - // Entry 100 - 13F - 0x0779, 0x0781, 0x078d, 0x0796, 0x079c, 0x07a2, 0x07a7, 0x07af, - 0x07b4, 0x07ba, 0x07bf, 0x07c4, 0x07c9, 0x07d5, 0x07e3, 0x07e8, - 0x07f6, 0x07ff, 0x0804, 0x080a, 0x080e, 0x0812, 0x081a, 0x0829, - 0x0830, 0x0839, 0x0846, 0x0854, 0x085a, 0x0864, 0x0868, 0x0871, - 0x088a, 0x088d, 0x089b, 0x08a9, 0x08b8, 0x08c8, 0x08de, 0x08ef, - 0x08f7, 0x08f9, 0x0900, 0x0903, 0x0907, 0x090c, 0x091d, 0x0921, - 0x092b, 0x0931, 0x0943, 0x0956, 0x0963, 0x0968, 0x0971, 0x0977, - 0x097c, 0x0988, 0x0998, 0x099d, 0x099d, 0x09a2, 0x09ab, 0x09b0, - // Entry 140 - 17F - 0x09b5, 0x09bd, 0x09ca, 0x09d3, 0x09da, 0x09df, 0x09ea, 0x09ef, - 0x09f3, 0x09f7, 0x09fd, 0x0a04, 0x0a0a, 0x0a11, 0x0a22, 0x0a28, - 0x0a30, 0x0a37, 0x0a46, 0x0a52, 0x0a5c, 0x0a67, 0x0a6d, 0x0a73, - 0x0a76, 0x0a7b, 0x0a7f, 0x0a87, 0x0a8e, 0x0a92, 0x0a99, 0x0aa5, - 0x0aa5, 0x0aa9, 0x0ab1, 0x0ab6, 0x0abf, 0x0acb, 0x0ad1, 0x0ada, - 0x0ade, 0x0ae6, 0x0aee, 0x0af6, 0x0afd, 0x0b05, 0x0b0b, 0x0b1a, - 0x0b1a, 0x0b1a, 0x0b23, 0x0b29, 0x0b31, 0x0b36, 0x0b3f, 0x0b44, - 0x0b4b, 0x0b5a, 0x0b5f, 0x0b65, 0x0b6a, 0x0b72, 0x0b84, 0x0b8a, - // Entry 180 - 1BF - 0x0b90, 0x0b96, 0x0b9e, 0x0ba8, 0x0bac, 0x0bb4, 0x0bbe, 0x0bc5, - 0x0bca, 0x0bcd, 0x0bd3, 0x0bd8, 0x0be7, 0x0bea, 0x0bf2, 0x0bf6, - 0x0bfc, 0x0c04, 0x0c0b, 0x0c13, 0x0c18, 0x0c1c, 0x0c22, 0x0c28, - 0x0c2d, 0x0c31, 0x0c42, 0x0c51, 0x0c5f, 0x0c66, 0x0c6c, 0x0c77, - 0x0c7d, 0x0c85, 0x0c8b, 0x0c90, 0x0ca0, 0x0ca7, 0x0cb2, 0x0cb7, - 0x0cc0, 0x0cc7, 0x0ccf, 0x0cd4, 0x0cd9, 0x0ce4, 0x0ceb, 0x0cf5, - 0x0cf9, 0x0d06, 0x0d0c, 0x0d10, 0x0d14, 0x0d16, 0x0d1c, 0x0d25, - 0x0d2a, 0x0d36, 0x0d3c, 0x0d42, 0x0d50, 0x0d54, 0x0d63, 0x0d6b, - // Entry 1C0 - 1FF - 0x0d73, 0x0d78, 0x0d7d, 0x0d82, 0x0d90, 0x0d9a, 0x0da1, 0x0da9, - 0x0db3, 0x0db8, 0x0dc0, 0x0dda, 0x0dda, 0x0de9, 0x0df9, 0x0e00, - 0x0e0a, 0x0e11, 0x0e17, 0x0e20, 0x0e31, 0x0e3c, 0x0e63, 0x0e6d, - 0x0e74, 0x0e7d, 0x0e86, 0x0e8d, 0x0e92, 0x0e98, 0x0ea0, 0x0ea6, - 0x0ead, 0x0eb4, 0x0eb7, 0x0ebe, 0x0ec3, 0x0ed6, 0x0edd, 0x0ee2, - 0x0ee9, 0x0ef3, 0x0efa, 0x0eff, 0x0f08, 0x0f10, 0x0f19, 0x0f1f, - 0x0f23, 0x0f27, 0x0f2d, 0x0f3c, 0x0f4c, 0x0f56, 0x0f5f, 0x0f63, - 0x0f71, 0x0f77, 0x0f87, 0x0f8e, 0x0f9a, 0x0fa6, 0x0fb3, 0x0fbd, - // Entry 200 - 23F - 0x0fc4, 0x0fcc, 0x0fd8, 0x0fdd, 0x0fe1, 0x0fef, 0x0ff5, 0x0ff9, - 0x0fff, 0x1008, 0x1015, 0x1025, 0x102c, 0x1034, 0x1038, 0x103d, - 0x1041, 0x1047, 0x104c, 0x1051, 0x1054, 0x105b, 0x1062, 0x1069, - 0x1070, 0x1078, 0x1080, 0x108f, 0x1098, 0x109e, 0x10a4, 0x10ac, - 0x10b5, 0x10c1, 0x10c8, 0x10ce, 0x10d5, 0x10dd, 0x10e6, 0x10ec, - 0x10f5, 0x10fb, 0x10ff, 0x1102, 0x1108, 0x110d, 0x1122, 0x1122, - 0x1126, 0x112b, 0x1130, 0x1136, 0x113c, 0x1141, 0x1146, 0x1146, - 0x1148, 0x114e, 0x1157, 0x115b, 0x1166, 0x116c, 0x1173, 0x1178, - // Entry 240 - 27F - 0x1181, 0x118a, 0x1191, 0x119b, 0x11a4, 0x11aa, 0x11c8, 0x11cc, - 0x11e8, 0x11ec, 0x1202, 0x1213, 0x1228, 0x123b, 0x124b, 0x125d, - 0x126e, 0x1286, 0x1296, 0x12a8, 0x12b9, 0x12ca, 0x12d3, 0x12e8, - 0x12fa, 0x1301, 0x130d, 0x1320, 0x1333, -} - -// Size: 9904 bytes -var jaLangStr string = "" + - "アファル語アブãƒã‚ºèªžã‚¢ãƒ´ã‚§ã‚¹ã‚¿èªžã‚¢ãƒ•ãƒªã‚«ãƒ¼ãƒ³ã‚¹èªžã‚¢ã‚«ãƒ³èªžã‚¢ãƒ ãƒãƒ©èªžã‚¢ãƒ©ã‚´ãƒ³èªžã‚¢ãƒ©ãƒ“ア語アッサム語アヴァル語アイマラ語アゼルãƒã‚¤ã‚¸ãƒ£ãƒ³èªžãƒã‚·ã‚­ãƒ¼ãƒ«" + - "語ベラルーシ語ブルガリア語ビスラマ語ãƒãƒ³ãƒãƒ©èªžãƒ™ãƒ³ã‚¬ãƒ«èªžãƒãƒ™ãƒƒãƒˆèªžãƒ–ルトン語ボスニア語カタロニア語ãƒã‚§ãƒã‚§ãƒ³èªžãƒãƒ£ãƒ¢ãƒ­èªžã‚³ãƒ«ã‚·ã‚«èªžã‚¯ãƒªãƒ¼èªžãƒ" + - "ェコ語教会スラブ語ãƒãƒ¥ãƒ´ã‚¡ã‚·èªžã‚¦ã‚§ãƒ¼ãƒ«ã‚ºèªžãƒ‡ãƒ³ãƒžãƒ¼ã‚¯èªžãƒ‰ã‚¤ãƒ„語ディベヒ語ゾンカ語エウェ語ギリシャ語英語エスペラント語スペイン語エストニア語ãƒ" + - "スク語ペルシア語フラニ語フィンランド語フィジー語フェロー語フランス語西フリジア語アイルランド語スコットランド・ゲール語ガリシア語グアラニー語" + - "グジャラート語マン島語ãƒã‚¦ã‚µèªžãƒ˜ãƒ–ライ語ヒンディー語ヒリモツ語クロアãƒã‚¢èªžãƒã‚¤ãƒèªžãƒãƒ³ã‚¬ãƒªãƒ¼èªžã‚¢ãƒ«ãƒ¡ãƒ‹ã‚¢èªžãƒ˜ãƒ¬ãƒ­èªžã‚¤ãƒ³ã‚¿ãƒ¼ãƒªãƒ³ã‚°ã‚¢ã‚¤ãƒ³ãƒ‰ãƒã‚·" + - "ア語インターリングイボ語四å·ã‚¤èªžã‚¤ãƒŒãƒ”アック語イド語アイスランド語イタリア語イヌクウティトット語日本語ジャワ語グルジア語コンゴ語キクユ語クワ" + - "ニャマ語カザフ語グリーンランド語クメール語カンナダ語韓国語カヌリ語カシミール語クルド語コミ語コーンウォール語キルギス語ラテン語ルクセンブルク" + - "語ガンダ語リンブルフ語リンガラ語ラオ語リトアニア語ルãƒãƒ»ã‚«ã‚¿ãƒ³ã‚¬èªžãƒ©ãƒˆãƒ“ア語マダガスカル語マーシャル語マオリ語マケドニア語マラヤーラム語モン" + - "ゴル語マラーティー語マレー語マルタ語ビルマ語ナウル語北ンデベレ語ãƒãƒ‘ール語ンドンガ語オランダ語ノルウェー語(ニーノシュク)ノルウェー語(ブー" + - "クモール)å—ンデベレ語ナãƒãƒ›èªžãƒ‹ãƒ£ãƒ³ã‚¸ãƒ£èªžã‚ªãƒƒã‚¯èªžã‚ªã‚¸ãƒ–ウェー語オロモ語オリヤー語オセット語パンジャブ語パーリ語ãƒãƒ¼ãƒ©ãƒ³ãƒ‰èªžãƒ‘シュトゥー語ãƒ" + - "ルトガル語ケãƒãƒ¥ã‚¢èªžãƒ­ãƒžãƒ³ã‚·ãƒ¥èªžãƒ«ãƒ³ãƒ‡ã‚£èªžãƒ«ãƒ¼ãƒžãƒ‹ã‚¢èªžãƒ­ã‚·ã‚¢èªžãƒ«ãƒ¯ãƒ³ãƒ€èªžã‚µãƒ³ã‚¹ã‚¯ãƒªãƒƒãƒˆèªžã‚µãƒ«ãƒ‡ãƒ¼ãƒ‹ãƒ£èªžã‚·ãƒ³ãƒ‰èªžåŒ—サーミ語サンゴ語シンãƒãƒ©èªžã‚¹" + - "ロãƒã‚­ã‚¢èªžã‚¹ãƒ­ãƒ™ãƒ‹ã‚¢èªžã‚µãƒ¢ã‚¢èªžã‚·ãƒ§ãƒŠèªžã‚½ãƒžãƒªèªžã‚¢ãƒ«ãƒãƒ‹ã‚¢èªžã‚»ãƒ«ãƒ“ア語スワジ語å—部ソト語スンダ語スウェーデン語スワヒリ語タミル語テルグ語タジク" + - "語タイ語ティグリニア語トルクメン語ツワナ語トンガ語トルコ語ツォンガ語タタール語タヒãƒèªžã‚¦ã‚¤ã‚°ãƒ«èªžã‚¦ã‚¯ãƒ©ã‚¤ãƒŠèªžã‚¦ãƒ«ãƒ‰ã‚¥ãƒ¼èªžã‚¦ã‚ºãƒ™ã‚¯èªžãƒ™ãƒ³ãƒ€èªžãƒ™" + - "トナム語ヴォラピュク語ワロン語ウォロフ語コサ語イディッシュ語ヨルãƒèªžãƒãƒ¯ãƒ³èªžä¸­å›½èªžã‚ºãƒ¼ãƒ«ãƒ¼èªžã‚¢ãƒã‚§èªžã‚¢ãƒãƒ§ãƒªèªžã‚¢ãƒ€ãƒ³ã‚°ãƒ¡èªžã‚¢ãƒ‡ã‚£ã‚²èªžãƒãƒ¥ãƒ‹ã‚¸" + - "ア・アラビア語アフリヒリ語アゲム語アイヌ語アッカド語アラãƒãƒžèªžã‚¢ãƒ¬ã‚¦ãƒˆèªžã‚²ã‚°ãƒ»ã‚¢ãƒ«ãƒãƒ‹ã‚¢èªžå—アルタイ語å¤è‹±èªžã‚¢ãƒ³ã‚®ã‚«èªžã‚¢ãƒ©ãƒ èªžã‚¢ãƒ©ã‚¦ã‚«ãƒ³èªžã‚¢" + - "ラオナ語アラパホー語アルジェリア・アラビア語アラワク語モロッコ・アラビア語エジプト・アラビア語アス語アメリカ手話アストゥリアス語コタヴァアワ" + - "ディー語å—アゼルãƒã‚¤ã‚¸ãƒ£ãƒ³èªžãƒãƒ«ãƒ¼ãƒãƒ¼èªžãƒãƒªèªžãƒã‚µèªžãƒãƒ ãƒ³èªžãƒˆãƒãƒ»ãƒã‚¿ã‚¯èªžã‚´ãƒ¼ãƒžãƒ©èªžãƒ™ã‚¸ãƒ£èªžãƒ™ãƒ³ãƒèªžãƒ™ã‚¿ã‚¦ã‚£èªžãƒ™ãƒŠèªžãƒãƒ•ãƒƒãƒˆèªžãƒãƒ€ã‚¬èªžãƒœãƒ¼ã‚¸" + - "ュプリー語ビコル語ビニ語ãƒãƒ³ã‚¸ãƒ£ãƒ«èªžã‚³ãƒ èªžã‚·ã‚¯ã‚·ã‚«èªžãƒ“シュヌプリヤ・マニプリ語ãƒãƒ•ãƒ†ã‚£ãƒ¤ãƒ¼ãƒªãƒ¼èªžãƒ–ラジ語ブラフイ語ボド語アコース語ブリヤート" + - "語ブギ語ブル語ビリン語メドゥンãƒèªžã‚«ãƒ‰ãƒ¼èªžã‚«ãƒªãƒ–語カユーガ語ãƒãƒ£ãƒ¯ã‚¤èªžã‚»ãƒ–アノ語ãƒã‚¬èªžãƒãƒ–ãƒãƒ£èªžãƒãƒ£ã‚¬ã‚¿ã‚¤èªžãƒãƒ¥ãƒ¼ã‚¯èªžãƒžãƒªèªžãƒãƒŒãƒ¼ã‚¯æ··æˆèªžãƒ" + - "ョクトー語ãƒãƒšãƒ¯ã‚¤ã‚¢ãƒ³èªžãƒã‚§ãƒ­ã‚­ãƒ¼èªžã‚·ãƒ£ã‚¤ã‚¢ãƒ³èªžã‚¯ãƒ«ãƒ‰èªž(ソラニー)コプト語カピス語クリミア・タタール語カシューブ語ダコタ語ダルガン語タイタ" + - "語デラウェア語スレイビー語ドグリブ語ディンカ語ザルマ語ドーグリー語低ソルビア語中央ドゥスン語ドゥアラ語中世オランダ語ジョラï¼ãƒ•ã‚©ãƒ‹ã‚£èªžã‚¸ãƒ¥ãƒ©" + - "語ダザガ語エンブ語エフィク語エミリア語å¤ä»£ã‚¨ã‚¸ãƒ—ト語エカジュク語エラム語中英語中央アラスカ・ユピック語エウォンド語エストレマドゥーラ語ファン" + - "グ語フィリピノ語トルãƒãƒ€ãƒ¼ãƒ«ãƒ»ãƒ•ã‚£ãƒ³ãƒ©ãƒ³ãƒ‰èªžãƒ•ã‚©ãƒ³èªžã‚±ã‚¤ã‚¸ãƒ£ãƒ³ãƒ»ãƒ•ãƒ©ãƒ³ã‚¹èªžä¸­æœŸãƒ•ãƒ©ãƒ³ã‚¹èªžå¤ãƒ•ãƒ©ãƒ³ã‚¹èªžã‚¢ãƒ«ãƒ”タン語北フリジア語æ±ãƒ•ãƒªã‚¸ã‚¢èªžãƒ•ãƒª" + - "ウリ語ガ語ガガウズ語贛語ガヨ語ãƒãƒ¤èªžãƒ€ãƒªãƒ¼èªž(ゾロアスター教)ゲエズ語キリãƒã‚¹èªžã‚®ãƒ©ã‚­èªžä¸­é«˜ãƒ‰ã‚¤ãƒ„語å¤é«˜ãƒ‰ã‚¤ãƒ„語ゴア・コンカニ語ゴーンディー" + - "語ゴロンタロ語ゴート語グレボ語å¤ä»£ã‚®ãƒªã‚·ãƒ£èªžã‚¹ã‚¤ã‚¹ãƒ‰ã‚¤ãƒ„語ワユ語フラフラ語グシイ語グウィッãƒãƒ³èªžãƒã‚¤ãƒ€èªžå®¢å®¶èªžãƒãƒ¯ã‚¤èªžãƒ•ã‚£ã‚¸ãƒ¼ãƒ»ãƒ’ンディー語" + - "ヒリガイノン語ヒッタイト語フモン語上ソルビア語湘語アタパスカ語イãƒãƒ³èªžã‚¤ãƒ“ビオ語イロカノ語イングーシ語イングリア語ジャマイカ・クレオール語ロ" + - "ジãƒãƒ³èªžãƒ³ã‚´ãƒ³ãƒèªžãƒžãƒãƒ£ãƒ¡èªžãƒ¦ãƒ€ãƒ¤ãƒ»ãƒšãƒ«ã‚·ã‚¢èªžãƒ¦ãƒ€ãƒ¤ãƒ»ã‚¢ãƒ©ãƒ“ア語ユトランド語カラカルパク語カビル語カãƒãƒ³èªžã‚«ã‚¸ã‚§èªžã‚«ãƒ³ãƒèªžã‚«ã‚¦ã‚£èªžã‚«ãƒãƒ«ãƒ‰èªž" + - "ã‚«ãƒãƒ³ãƒ–語カタブ語マコンデ語カーボベルデ・クレオール語ニャン語コロ語カインガング語カシ語コータン語コイラ・ãƒãƒ¼ãƒ‹èªžã‚³ãƒ¯ãƒ¼ãƒ«èªžã‚­ãƒ«ãƒžãƒ³ã‚¸ãƒ¥ã‚­èªž" + - "カコ語カレンジン語キンブンド語コミ・ペルミャク語コンカニ語コスラエ語クペレ語カラãƒãƒ£ã‚¤èªžã‚¯ãƒªã‚ªèªžã‚­ãƒŠãƒ©ã‚¤ã‚¢èªžã‚«ãƒ¬ãƒªã‚¢èªžã‚¯ãƒ«ã‚¯èªžã‚µãƒ³ãƒãƒ¼èªžãƒãƒ•" + - "ィア語ケルン語クムク語クテナイ語ラディノ語ランギ語ラフンダー語ランãƒèªžãƒ¬ã‚ºã‚®èªžãƒªãƒ³ã‚°ã‚¢ãƒ»ãƒ•ãƒ©ãƒ³ã‚«ãƒ»ãƒŽãƒãƒªã‚°ãƒªã‚¢èªžãƒªãƒ´ã‚©ãƒ‹ã‚¢èªžãƒ©ã‚³ã‚¿èªžãƒ­ãƒ³ãƒãƒ«" + - "ド語モンゴ語ロジ語ラトガリア語ルãƒãƒ»ãƒ«ãƒ«ã‚¢èªžãƒ«ã‚¤ã‚»ãƒ¼ãƒ‹ãƒ§èªžãƒ«ãƒ³ãƒ€èªžãƒ«ã‚ªèªžãƒ«ã‚·ãƒ£ã‚¤èªžãƒ«ãƒ’ヤ語漢文ラズ語マドゥラ語マファ語マガヒー語マイティリー" + - "語マカッサル語マンディンゴ語マサイ語マãƒèªžãƒ¢ã‚¯ã‚·ãƒ£èªžãƒžãƒ³ãƒ€ãƒ«èªžãƒ¡ãƒ³ãƒ‡èªžãƒ¡ãƒ«èªžãƒ¢ãƒ¼ãƒªã‚·ãƒ£ã‚¹ãƒ»ã‚¯ãƒ¬ã‚ªãƒ¼ãƒ«èªžä¸­æœŸã‚¢ã‚¤ãƒ«ãƒ©ãƒ³ãƒ‰èªžãƒžã‚¯ã‚¢ãƒ»ãƒŸãƒ¼ãƒˆèªžãƒ¡ã‚¿" + - "語ミクマク語ミナンカãƒã‚¦èªžæº€å·žèªžãƒžãƒ‹ãƒ—リ語モーホーク語モシ語山地マリ語ムンダン語複数言語クリーク語ミランダ語マールワーリー語メンタワイ語ミエ" + - "ãƒèªžã‚¨ãƒ«ã‚¸ãƒ£èªžãƒžãƒ¼ã‚¶ãƒ³ãƒ€ãƒ©ãƒ¼ãƒ³èªžé–©å—語ナãƒãƒªèªžãƒŠãƒžèªžä½Žåœ°ãƒ‰ã‚¤ãƒ„語ãƒãƒ¯ãƒ¼ãƒ«èªžãƒ‹ã‚¢ã‚¹èªžãƒ‹ã‚¦ãƒ¼ã‚¨ã‚¤èªžã‚¢ã‚ªãƒ»ãƒŠã‚¬èªžã‚¯ãƒ¯ã‚·ã‚ªèªžãƒ³ã‚¸ã‚¨ãƒ ãƒ–ーン語ノガイ語" + - "å¤ãƒŽãƒ«ãƒ‰èªžãƒ³ã‚³èªžåŒ—部ソト語ヌエル語å¤å…¸ãƒãƒ¯ãƒ¼ãƒ«èªžãƒ‹ãƒ£ãƒ ã‚¦ã‚§ã‚¸èªžãƒ‹ãƒ£ãƒ³ã‚³ãƒ¬èªžãƒ‹ãƒ§ãƒ­èªžãƒ³ã‚¼ãƒžèªžã‚ªã‚»ãƒ¼ã‚¸èªžã‚ªã‚¹ãƒžãƒ³ãƒˆãƒ«ã‚³èªžãƒ‘ンガシナン語パフラヴィ" + - "ー語パンパンガ語パピアメント語パラオ語ピカルディ語ペンシルベニア・ドイツ語メノナイト低地ドイツ語å¤ä»£ãƒšãƒ«ã‚·ã‚¢èªžãƒ—ファルツ語フェニキア語ピエモ" + - "ンテ語ãƒãƒ³ãƒˆã‚¹ãƒ»ã‚®ãƒªã‚·ãƒ£èªžãƒãƒ³ãƒšã‚¤èªžãƒ—ロシア語å¤æœŸãƒ—ロãƒãƒ³ã‚¹èªžã‚­ãƒã‚§èªžãƒãƒ³ãƒœãƒ©ã‚½é«˜åœ°ã‚±ãƒãƒ¥ã‚¢èªžãƒ©ãƒ¼ã‚¸ãƒ£ã‚¹ã‚¿ãƒ¼ãƒ³èªžãƒ©ãƒ‘ヌイ語ラロトンガ語ロマー" + - "ニャ語リーフ語ロンボ語ロマーニー語ロツマ語ルシン語ロヴィアナ語アルーマニア語ルワ語サンダウェ語ヤクート語サマリア・アラム語サンブル語ササク語" + - "サンターリー語サウラーシュトラ語ンガムãƒã‚¤èªžã‚µãƒ³ã‚°èªžã‚·ãƒãƒªã‚¢èªžã‚¹ã‚³ãƒƒãƒˆãƒ©ãƒ³ãƒ‰èªžã‚µãƒƒã‚µãƒªãƒ»ã‚µãƒ«ãƒ‡ãƒ¼ãƒ‹ãƒ£èªžã‚»ãƒã‚«èªžã‚»ãƒŠèªžã‚»ãƒªèªžã‚»ãƒªã‚¯ãƒ—語コイラボ" + - "ロ・センニ語å¤æœŸã‚¢ã‚¤ãƒ«ãƒ©ãƒ³ãƒ‰èªžã‚µãƒ¢ã‚®ãƒ†ã‚£ã‚¢èªž)タシルãƒã‚¤ãƒˆèªžã‚·ãƒ£ãƒ³èªžãƒãƒ£ãƒ‰ãƒ»ã‚¢ãƒ©ãƒ“ア語シダモ語低シレジア語スラヤール語å—サーミ語ルレ・サーミ" + - "語イナリ・サーミ語スコルト・サーミ語ソニンケ語ソグド語スリナム語セレル語サホ語ザーターフリジア語スクマ語スス語シュメール語コモロ語コンゴ・ス" + - "ワヒリ語å¤å…¸ã‚·ãƒªã‚¢èªžã‚·ãƒªã‚¢èªžã‚·ãƒ¬ã‚¸ã‚¢èªžãƒˆã‚¥ãƒ«èªžãƒ†ãƒ ãƒèªžãƒ†ã‚½èªžãƒ†ãƒ¬ãƒ¼ãƒŽèªžãƒ†ãƒˆã‚¥ãƒ³èªžãƒ†ã‚£ã‚°ãƒ¬èªžãƒ†ã‚£ãƒ–語トケラウ語ツァフル語クリンゴン語トリンギッ" + - "ト語タリシュ語タマシェク語トンガ語(ニアサ)トク・ピシン語トゥロヨ語タロコ語ツァコン語ãƒãƒ ã‚·ãƒ¥èªžãƒ ã‚¹ãƒªãƒ ãƒ»ã‚¿ã‚¿ãƒ¼ãƒ«èªžãƒˆã‚¥ãƒ³ãƒ–カ語ツãƒãƒ«èªžã‚¿ã‚µ" + - "ワク語トゥヴァ語中央アトラス・タマジクト語ウドムルト語ウガリト語ムブンドゥ語ルートヴァイ語ヴェãƒãƒˆèªžãƒ´ã‚§ãƒ—ス語西フラマン語マインフランク語ヴ" + - "ォート語ヴォロ語ヴンジョ語ヴァリス語ウォライタ語ワライ語ワショ語呉語カルムイク語メグレル語ソガ語ヤオ語ヤップ語ヤンベン語イエンãƒèªžãƒ‹ã‚§ã‚¨ãƒ³ã‚¬" + - "トゥ語広æ±èªžã‚µãƒãƒ†ã‚«èªžãƒ–リスシンボルゼーラント語ゼナガ語タマージク語(モロッコ公用語)ズニ語言語的内容ãªã—ザザ語ç¾ä»£æ¨™æº–アラビア語標準ドイツ" + - "語(スイス)オーストラリア英語カナダ英語イギリス英語アメリカ英語スペイン語(イベリアåŠå³¶)フレミッシュ語ãƒãƒ«ãƒˆã‚¬ãƒ«èªž(イベリアåŠå³¶)モルダビ" + - "ア語セルボ・クロアãƒã‚¢èªžç°¡ä½“中国語ç¹ä½“中国語" - -// Size: 1234 bytes, 605 elements -var jaLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000f, 0x001e, 0x0030, 0x0048, 0x0054, 0x0063, 0x0072, - 0x0081, 0x0090, 0x009f, 0x00ae, 0x00c9, 0x00db, 0x00ed, 0x00ff, - 0x010e, 0x011d, 0x012c, 0x013b, 0x014a, 0x0159, 0x016b, 0x017d, - 0x018c, 0x019b, 0x01a7, 0x01b3, 0x01c5, 0x01d7, 0x01e9, 0x01fb, - 0x0207, 0x0216, 0x0222, 0x022e, 0x023d, 0x0243, 0x0258, 0x0267, - 0x0279, 0x0285, 0x0294, 0x02a0, 0x02b5, 0x02c4, 0x02d3, 0x02e2, - 0x02f4, 0x0309, 0x032d, 0x033c, 0x034e, 0x0363, 0x036f, 0x037b, - 0x038a, 0x039c, 0x03ab, 0x03bd, 0x03c9, 0x03db, 0x03ed, 0x03f9, - // Entry 40 - 7F - 0x0411, 0x0426, 0x043b, 0x0444, 0x0450, 0x0465, 0x046e, 0x0483, - 0x0492, 0x04b0, 0x04b9, 0x04c5, 0x04d4, 0x04e0, 0x04ec, 0x04fe, - 0x050a, 0x0522, 0x0531, 0x0540, 0x0549, 0x0555, 0x0567, 0x0573, - 0x057c, 0x0594, 0x05a3, 0x05af, 0x05c7, 0x05d3, 0x05e5, 0x05f4, - 0x05fd, 0x060f, 0x0627, 0x0636, 0x064b, 0x065d, 0x0669, 0x067b, - 0x0690, 0x069f, 0x06b4, 0x06c0, 0x06cc, 0x06d8, 0x06e4, 0x06f6, - 0x0705, 0x0714, 0x0723, 0x0749, 0x076f, 0x0781, 0x078d, 0x079f, - 0x07ab, 0x07c0, 0x07cc, 0x07db, 0x07ea, 0x07fc, 0x0808, 0x081a, - // Entry 80 - BF - 0x082f, 0x0841, 0x0850, 0x0862, 0x0871, 0x0883, 0x088f, 0x089e, - 0x08b6, 0x08cb, 0x08d7, 0x08e6, 0x08f2, 0x0901, 0x0913, 0x0925, - 0x0931, 0x093d, 0x0949, 0x095b, 0x096a, 0x0976, 0x0985, 0x0991, - 0x09a6, 0x09b5, 0x09c1, 0x09cd, 0x09d9, 0x09e2, 0x09f7, 0x0a09, - 0x0a15, 0x0a21, 0x0a2d, 0x0a3c, 0x0a4b, 0x0a57, 0x0a66, 0x0a78, - 0x0a8a, 0x0a99, 0x0aa5, 0x0ab4, 0x0ac9, 0x0ad5, 0x0ae4, 0x0aed, - 0x0b02, 0x0b0e, 0x0b1a, 0x0b23, 0x0b32, 0x0b3e, 0x0b4d, 0x0b5f, - 0x0b6e, 0x0b8f, 0x0ba1, 0x0bad, 0x0bb9, 0x0bc8, 0x0bd7, 0x0be6, - // Entry C0 - FF - 0x0c01, 0x0c13, 0x0c1c, 0x0c2b, 0x0c37, 0x0c49, 0x0c58, 0x0c6a, - 0x0c8e, 0x0c9d, 0x0cbb, 0x0cd9, 0x0ce2, 0x0cf4, 0x0d0c, 0x0d18, - 0x0d2a, 0x0d48, 0x0d5a, 0x0d63, 0x0d63, 0x0d6c, 0x0d78, 0x0d8d, - 0x0d9c, 0x0da8, 0x0db4, 0x0dc3, 0x0dcc, 0x0ddb, 0x0de7, 0x0dff, - 0x0e0b, 0x0e14, 0x0e26, 0x0e2f, 0x0e3e, 0x0e65, 0x0e80, 0x0e8c, - 0x0e9b, 0x0ea4, 0x0eb3, 0x0ec5, 0x0ece, 0x0ed7, 0x0ee3, 0x0ef5, - 0x0f01, 0x0f0d, 0x0f1c, 0x0f2b, 0x0f3a, 0x0f43, 0x0f52, 0x0f64, - 0x0f73, 0x0f7c, 0x0f91, 0x0fa3, 0x0fb8, 0x0fca, 0x0fdc, 0x0ff6, - // Entry 100 - 13F - 0x1002, 0x100e, 0x102c, 0x103e, 0x104a, 0x1059, 0x1065, 0x1077, - 0x1089, 0x1098, 0x10a7, 0x10b3, 0x10c5, 0x10d7, 0x10ec, 0x10fb, - 0x1110, 0x112b, 0x1137, 0x1143, 0x114f, 0x115e, 0x116d, 0x1182, - 0x1194, 0x11a0, 0x11a9, 0x11cd, 0x11df, 0x11fd, 0x120c, 0x121e, - 0x1248, 0x1254, 0x1275, 0x128a, 0x129c, 0x12ae, 0x12c0, 0x12d2, - 0x12e1, 0x12e7, 0x12f6, 0x12fc, 0x1305, 0x130e, 0x1331, 0x133d, - 0x134c, 0x1358, 0x136a, 0x137c, 0x1394, 0x13a9, 0x13bb, 0x13c7, - 0x13d3, 0x13e8, 0x13fd, 0x1406, 0x1415, 0x1421, 0x1436, 0x1442, - // Entry 140 - 17F - 0x144b, 0x1457, 0x1478, 0x148d, 0x149f, 0x14ab, 0x14bd, 0x14c3, - 0x14d5, 0x14e1, 0x14f0, 0x14ff, 0x1511, 0x1523, 0x1547, 0x1556, - 0x1565, 0x1574, 0x158f, 0x15aa, 0x15bc, 0x15d1, 0x15dd, 0x15e9, - 0x15f5, 0x1601, 0x160d, 0x161c, 0x162b, 0x1637, 0x1646, 0x166d, - 0x1679, 0x1682, 0x1697, 0x16a0, 0x16af, 0x16c7, 0x16d6, 0x16ee, - 0x16f7, 0x1709, 0x171b, 0x1736, 0x1745, 0x1754, 0x1760, 0x1772, - 0x177e, 0x1790, 0x179f, 0x17ab, 0x17ba, 0x17c9, 0x17d5, 0x17e1, - 0x17f0, 0x17ff, 0x180b, 0x181d, 0x1829, 0x1835, 0x1859, 0x1868, - // Entry 180 - 1BF - 0x187a, 0x1886, 0x1898, 0x18a4, 0x18ad, 0x18bf, 0x18d4, 0x18e9, - 0x18f5, 0x18fe, 0x190d, 0x1919, 0x191f, 0x1928, 0x1937, 0x1943, - 0x1952, 0x1967, 0x1979, 0x198e, 0x199a, 0x19a3, 0x19b2, 0x19c1, - 0x19cd, 0x19d6, 0x19fd, 0x1a18, 0x1a30, 0x1a39, 0x1a48, 0x1a5d, - 0x1a66, 0x1a75, 0x1a87, 0x1a90, 0x1a9f, 0x1aae, 0x1aba, 0x1ac9, - 0x1ad8, 0x1af0, 0x1b02, 0x1b0e, 0x1b1d, 0x1b38, 0x1b41, 0x1b4d, - 0x1b56, 0x1b68, 0x1b77, 0x1b83, 0x1b95, 0x1ba7, 0x1bb6, 0x1bce, - 0x1bda, 0x1be9, 0x1be9, 0x1bf2, 0x1c01, 0x1c0d, 0x1c22, 0x1c37, - // Entry 1C0 - 1FF - 0x1c49, 0x1c55, 0x1c61, 0x1c70, 0x1c88, 0x1c9d, 0x1cb2, 0x1cc4, - 0x1cd9, 0x1ce5, 0x1cf7, 0x1d1b, 0x1d3c, 0x1d51, 0x1d63, 0x1d75, - 0x1d87, 0x1da5, 0x1db4, 0x1dc3, 0x1ddb, 0x1de7, 0x1e0b, 0x1e26, - 0x1e35, 0x1e47, 0x1e59, 0x1e65, 0x1e71, 0x1e83, 0x1e8f, 0x1e9b, - 0x1ead, 0x1ec2, 0x1ecb, 0x1edd, 0x1eec, 0x1f07, 0x1f16, 0x1f22, - 0x1f37, 0x1f52, 0x1f64, 0x1f70, 0x1f7f, 0x1f97, 0x1fbb, 0x1fc7, - 0x1fd0, 0x1fd9, 0x1fe8, 0x2006, 0x2021, 0x2037, 0x204c, 0x2058, - 0x2073, 0x207f, 0x2091, 0x20a3, 0x20b2, 0x20c7, 0x20df, 0x20fa, - // Entry 200 - 23F - 0x2109, 0x2115, 0x2124, 0x2130, 0x2139, 0x2154, 0x2160, 0x2169, - 0x217b, 0x2187, 0x21a2, 0x21b4, 0x21c0, 0x21cf, 0x21db, 0x21e7, - 0x21f0, 0x21ff, 0x220e, 0x221d, 0x2229, 0x2238, 0x2247, 0x2259, - 0x226e, 0x227d, 0x228f, 0x22a6, 0x22bb, 0x22ca, 0x22d6, 0x22e5, - 0x22f4, 0x2312, 0x2324, 0x2330, 0x233f, 0x234e, 0x2375, 0x2387, - 0x2396, 0x23a8, 0x23b1, 0x23bd, 0x23cc, 0x23db, 0x23ed, 0x2405, - 0x2414, 0x2420, 0x242f, 0x243e, 0x2450, 0x245c, 0x2468, 0x2468, - 0x246e, 0x2480, 0x248f, 0x2498, 0x24a1, 0x24ad, 0x24bc, 0x24cb, - // Entry 240 - 27F - 0x24e3, 0x24ec, 0x24fb, 0x2510, 0x2522, 0x252e, 0x2557, 0x2560, - 0x2575, 0x257e, 0x2599, 0x2599, 0x25b6, 0x25d1, 0x25e0, 0x25f2, - 0x2604, 0x2604, 0x2627, 0x2627, 0x2627, 0x2627, 0x263c, 0x263c, - 0x2662, 0x2674, 0x2692, 0x26a1, 0x26b0, -} - -// Size: 9856 bytes -var kaLangStr string = "" + - "áƒáƒ¤áƒáƒ áƒ˜áƒáƒ¤áƒ®áƒáƒ–ურიáƒáƒ•áƒ”სტურიáƒáƒ¤áƒ áƒ˜áƒ™áƒáƒáƒœáƒ¡áƒ˜áƒáƒ™áƒáƒœáƒ˜áƒáƒ›áƒ°áƒáƒ áƒ£áƒšáƒ˜áƒáƒ áƒáƒ’áƒáƒœáƒ£áƒšáƒ˜áƒáƒ áƒáƒ‘ულიáƒáƒ¡áƒáƒ›áƒ£áƒ áƒ˜áƒáƒ˜áƒ›áƒáƒ " + - "áƒáƒáƒ–ერბáƒáƒ˜áƒ¯áƒáƒœáƒ£áƒšáƒ˜áƒ‘áƒáƒ¨áƒ™áƒ˜áƒ áƒ£áƒšáƒ˜áƒ‘ელáƒáƒ áƒ£áƒ¡áƒ£áƒšáƒ˜áƒ‘ულგáƒáƒ áƒ£áƒšáƒ˜áƒ‘áƒáƒ›áƒ‘áƒáƒ áƒáƒ‘ენგáƒáƒšáƒ£áƒ áƒ˜áƒ¢áƒ˜áƒ‘ეტურიბრეტ" + - "áƒáƒœáƒ£áƒšáƒ˜áƒ‘áƒáƒ¡áƒœáƒ˜áƒ£áƒ áƒ˜áƒ™áƒáƒ¢áƒáƒšáƒáƒœáƒ£áƒ áƒ˜áƒ©áƒ”ჩნურიკáƒáƒ áƒ¡áƒ˜áƒ™áƒ£áƒšáƒ˜áƒ™áƒ áƒ˜áƒ©áƒ”ხურისáƒáƒ”კლესირსლáƒáƒ•áƒ£áƒ áƒ˜áƒ©áƒ£áƒ•áƒáƒ¨" + - "ურიუელსურიდáƒáƒœáƒ˜áƒ£áƒ áƒ˜áƒ’ერმáƒáƒœáƒ£áƒšáƒ˜áƒ“ივეჰიძáƒáƒœáƒ’კხáƒáƒ”ვებერძნულიინგლისურიესპერáƒáƒœáƒ¢áƒáƒ”ს" + - "პáƒáƒœáƒ£áƒ áƒ˜áƒ”სტáƒáƒœáƒ£áƒ áƒ˜áƒ‘áƒáƒ¡áƒ™áƒ£áƒ áƒ˜áƒ¡áƒžáƒáƒ áƒ¡áƒ£áƒšáƒ˜áƒ¤áƒ˜áƒœáƒ£áƒ áƒ˜áƒ¤áƒ˜áƒ¯áƒ˜áƒ¤áƒáƒ áƒ”რულიფრáƒáƒœáƒ’ულიდáƒáƒ¡áƒáƒ•áƒšáƒ”თფრიზიულ" + - "იირლáƒáƒœáƒ“იურიშáƒáƒ¢áƒšáƒáƒœáƒ“იური გელურიგáƒáƒšáƒ˜áƒ¡áƒ˜áƒ£áƒ áƒ˜áƒ’უáƒáƒ áƒáƒœáƒ˜áƒ’უჯáƒáƒ áƒáƒ—იმენურიჰáƒáƒ£áƒ¡áƒáƒ”ბრáƒáƒ£áƒš" + - "იჰინდიხáƒáƒ áƒ•áƒáƒ¢áƒ£áƒšáƒ˜áƒ°áƒáƒ˜áƒ¢áƒ˜áƒ£áƒ áƒ˜áƒ£áƒœáƒ’რულისáƒáƒ›áƒ®áƒ£áƒ áƒ˜áƒ˜áƒœáƒ¢áƒ”რლინგუáƒáƒšáƒ£áƒ áƒ˜áƒ˜áƒœáƒ“áƒáƒœáƒ”ზიურიინტერლი" + - "ნგიიგბáƒáƒ¡áƒ˜áƒ©áƒ£áƒáƒœáƒ˜áƒ¡ იიდáƒáƒ˜áƒ¡áƒšáƒáƒœáƒ“იურიიტáƒáƒšáƒ˜áƒ£áƒ áƒ˜áƒ˜áƒœáƒ£áƒ™áƒ¢áƒ˜áƒ¢áƒ£áƒ¢áƒ˜áƒ˜áƒáƒžáƒáƒœáƒ£áƒ áƒ˜áƒ˜áƒáƒ•áƒ£áƒ áƒ˜áƒ¥áƒáƒ áƒ—ულიკ" + - "áƒáƒœáƒ’áƒáƒ™áƒ˜áƒ™áƒ£áƒ˜áƒ£áƒ§áƒáƒ–áƒáƒ®áƒ£áƒ áƒ˜áƒ“áƒáƒ¡áƒáƒ•áƒšáƒ”თ გრენლáƒáƒœáƒ“იურიქმერულიკáƒáƒœáƒáƒ“áƒáƒ™áƒáƒ áƒ”ულიკáƒáƒœáƒ£áƒ áƒ˜áƒ¥áƒáƒ¨áƒ›áƒ˜" + - "რულიქურთულიკáƒáƒ›áƒ˜áƒ™áƒáƒ áƒœáƒ£áƒšáƒ˜áƒ§áƒ˜áƒ áƒ’იზულილáƒáƒ—ინურილუქსემბურგულიგáƒáƒœáƒ“áƒáƒšáƒ˜áƒ›áƒ‘ურგულილინ" + - "გáƒáƒšáƒáƒšáƒáƒáƒ¡áƒ£áƒ áƒ˜áƒšáƒ˜áƒ¢áƒ•áƒ£áƒ áƒ˜áƒšáƒ£áƒ‘áƒ-კáƒáƒ¢áƒáƒœáƒ’áƒáƒšáƒáƒ¢áƒ•áƒ˜áƒ£áƒ áƒ˜áƒ›áƒáƒšáƒáƒ’áƒáƒ¡áƒ˜áƒ£áƒ áƒ˜áƒ›áƒáƒáƒ áƒ˜áƒ›áƒáƒ™áƒ”დáƒáƒœáƒ£áƒ áƒ˜áƒ›áƒáƒšáƒáƒ˜áƒ" + - "ლáƒáƒ›áƒ£áƒ áƒ˜áƒ›áƒáƒœáƒ¦áƒáƒšáƒ£áƒ áƒ˜áƒ›áƒáƒ áƒáƒ—ჰიმáƒáƒšáƒáƒ˜áƒ£áƒ áƒ˜áƒ›áƒáƒšáƒ¢áƒ£áƒ áƒ˜áƒ‘ირმულინáƒáƒ£áƒ áƒ£áƒ©áƒ áƒ“ილáƒáƒ”თ ნდებელენეპáƒáƒš" + - "ურინიდერლáƒáƒœáƒ“ურინáƒáƒ áƒ•áƒ”გიული ნიუნáƒáƒ áƒ¡áƒ™áƒ˜áƒœáƒáƒ áƒ•áƒ”გიული ბუკმáƒáƒšáƒ˜áƒœáƒáƒ•áƒáƒ®áƒáƒœáƒ˜áƒáƒœáƒ¯áƒáƒáƒ¥áƒ¡áƒ˜áƒ¢" + - "áƒáƒœáƒ£áƒ áƒ˜áƒáƒ¯áƒ˜áƒ‘ვეáƒáƒ áƒáƒ›áƒáƒáƒ áƒ˜áƒáƒáƒ¡áƒ£áƒ áƒ˜áƒžáƒ”ნჯáƒáƒ‘ურიპáƒáƒšáƒ˜áƒžáƒáƒšáƒáƒœáƒ£áƒ áƒ˜áƒžáƒ£áƒ¨áƒ¢áƒ£áƒžáƒáƒ áƒ¢áƒ£áƒ’áƒáƒšáƒ˜áƒ£áƒ áƒ˜áƒ™áƒ”ჩუáƒáƒ áƒ”" + - "ტáƒáƒ áƒáƒ›áƒáƒœáƒ£áƒšáƒ˜áƒ áƒ£áƒœáƒ“ირუმინულირუსულიკინიáƒáƒ áƒ£áƒáƒœáƒ“áƒáƒ¡áƒáƒœáƒ¡áƒ™áƒ áƒ˜áƒ¢áƒ˜áƒ¡áƒáƒ áƒ“ინიულისინდჰურიჩრდ" + - "ილáƒáƒ”თ სáƒáƒáƒ›áƒ£áƒ áƒ˜áƒ¡áƒáƒœáƒ’áƒáƒ¡áƒ˜áƒœáƒ°áƒáƒšáƒ£áƒ áƒ˜áƒ¡áƒšáƒáƒ•áƒáƒ™áƒ£áƒ áƒ˜áƒ¡áƒšáƒáƒ•áƒ”ნურისáƒáƒ›áƒáƒáƒ¨áƒáƒœáƒáƒ¡áƒáƒ›áƒáƒšáƒ˜áƒ£áƒ áƒ˜áƒáƒšáƒ‘áƒáƒœáƒ£áƒ " + - "ისერბულისáƒáƒ›áƒ®áƒ áƒ”თ სáƒáƒ—áƒáƒ¡ ენáƒáƒ¡áƒ£áƒœáƒ“ურიშვედურისუáƒáƒ°áƒ˜áƒšáƒ˜áƒ¢áƒáƒ›áƒ˜áƒšáƒ£áƒ áƒ˜áƒ¢áƒ”ლუგუტáƒáƒ¯áƒ˜áƒ™áƒ£áƒ áƒ˜áƒ¢áƒ" + - "ითიგრინიáƒáƒ—ურქმენულიტსვáƒáƒœáƒáƒ¢áƒáƒœáƒ’áƒáƒœáƒ£áƒ áƒ˜áƒ—ურქულითáƒáƒ—რულიუიღურულიუკრáƒáƒ˜áƒœáƒ£áƒšáƒ˜áƒ£áƒ áƒ“უუ" + - "ზბეკურივიეტნáƒáƒ›áƒ£áƒ áƒ˜áƒ•áƒáƒšáƒáƒ¤áƒ£áƒ áƒ˜áƒ¥áƒ°áƒáƒ¡áƒáƒ˜áƒ“იშიიáƒáƒ áƒ£áƒ‘áƒáƒ©áƒ˜áƒœáƒ£áƒ áƒ˜áƒ–ულუáƒáƒ©áƒ”ხურიáƒáƒ©áƒáƒšáƒ˜áƒáƒ“áƒáƒœáƒ’მე" + - "áƒáƒ“იღეურიáƒáƒ¦áƒ”მიáƒáƒ˜áƒœáƒ£áƒ£áƒ áƒ˜áƒáƒ¥áƒáƒ“ურიáƒáƒšáƒ”უტურისáƒáƒ›áƒ®áƒ áƒ”თ áƒáƒšáƒ—áƒáƒ£áƒ áƒ˜áƒ«áƒ•áƒ”ლი ინგლისურიáƒáƒœáƒ’იკ" + - "áƒáƒáƒ áƒáƒ›áƒ”ულიმáƒáƒžáƒ£áƒ“უნგუნიáƒáƒ áƒáƒžáƒáƒ°áƒáƒáƒ áƒáƒ•áƒáƒ™áƒ˜áƒáƒ¡áƒ£áƒáƒ¡áƒ¢áƒ£áƒ áƒ˜áƒ£áƒšáƒ˜áƒáƒ•áƒáƒ“იბელუჯიბáƒáƒšáƒ˜áƒœáƒ£áƒ áƒ˜áƒ‘áƒáƒ¡áƒáƒ‘" + - "áƒáƒ›áƒ£áƒœáƒ˜áƒ‘ეჯáƒáƒ‘ემბáƒáƒ‘ენáƒáƒ‘áƒáƒ¯áƒžáƒ£áƒ áƒ˜áƒ‘რáƒáƒ¯áƒ˜áƒ‘áƒáƒ“áƒáƒ‘ურიáƒáƒ¢áƒ£áƒšáƒ˜áƒ‘ილინიკáƒáƒ˜áƒ£áƒ’áƒáƒ©áƒ˜áƒ’áƒáƒ©áƒ˜áƒ‘ჩáƒáƒ›áƒáƒ áƒ˜áƒ£áƒš" + - "იჩერáƒáƒ™áƒ˜áƒ¡áƒáƒ áƒáƒœáƒ˜ ქურთულიკáƒáƒžáƒ¢áƒ£áƒ áƒ˜áƒ§áƒ˜áƒ áƒ˜áƒ›áƒ£áƒš-თურქულიკáƒáƒ¨áƒ£áƒ‘ურიდáƒáƒ™áƒáƒ¢áƒáƒ“áƒáƒ áƒ’უულიტáƒáƒ˜áƒ¢áƒ" + - "დელáƒáƒ•áƒáƒ áƒ£áƒšáƒ˜áƒ“áƒáƒ’რიბიდინკáƒáƒ–áƒáƒ áƒ›áƒáƒ“áƒáƒ’რიქვემáƒáƒ¡áƒáƒ áƒ‘ულიდუáƒáƒšáƒáƒ“იáƒáƒšáƒáƒ“იულáƒáƒ”მბუეფიკიძვ" + - "ელეგვიპტურიევáƒáƒœáƒ“áƒáƒ¤áƒ˜áƒšáƒ˜áƒžáƒ˜áƒœáƒ£áƒ áƒ˜áƒ¤áƒáƒœáƒ˜áƒ«áƒ•áƒ”ლი ფრáƒáƒœáƒ’ულიჩრდილáƒáƒ¤áƒ áƒ˜áƒ–იულიáƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თფ" + - "რიზიულიფრიულურიგáƒáƒ’áƒáƒ£áƒ–ურიგბáƒáƒ˜áƒáƒ’ეეზიძველი ზემáƒáƒ’ერმáƒáƒœáƒ£áƒšáƒ˜áƒ’áƒáƒœáƒ“იგáƒáƒ—ურიძველი " + - "ბერძნულიშვეიცáƒáƒ áƒ˜áƒ£áƒšáƒ˜ გერმáƒáƒœáƒ£áƒšáƒ˜áƒ’უსიიჰáƒáƒ•áƒáƒ˜áƒ£áƒ áƒ˜áƒ®áƒ”თური ენáƒáƒ–ემáƒáƒ¡áƒáƒ áƒ‘ულიიბáƒáƒœáƒ˜áƒ˜áƒ‘" + - "იბიáƒáƒ˜áƒœáƒ’უშურილáƒáƒŸáƒ‘áƒáƒœáƒ˜áƒœáƒ’áƒáƒ›áƒ‘áƒáƒ™áƒ˜áƒ›áƒáƒ¨áƒáƒ›áƒ˜áƒ˜áƒ£áƒ“ეáƒ-სპáƒáƒ áƒ¡áƒ£áƒšáƒ˜áƒ˜áƒ£áƒ“ეáƒ-áƒáƒ áƒáƒ‘ულიყáƒáƒ áƒáƒ§áƒáƒšáƒ¤áƒáƒ®" + - "ურიკáƒáƒ‘ილურიკáƒáƒ©áƒ˜áƒœáƒ˜áƒ™áƒáƒ›áƒ‘áƒáƒ§áƒáƒ‘áƒáƒ áƒ“áƒáƒ£áƒšáƒ˜áƒ›áƒáƒ™áƒáƒœáƒ“ეკáƒáƒ‘უვერდიáƒáƒœáƒ£áƒ™áƒáƒ˜áƒ áƒ-ჩიინიკáƒáƒšáƒ”ნჯინ" + - "იკიმბუნდუკáƒáƒ›áƒ˜-პერმიáƒáƒ™áƒ£áƒšáƒ˜áƒ™áƒáƒœáƒ™áƒáƒœáƒ˜áƒ™áƒžáƒ”ლეყáƒáƒ áƒáƒ©áƒáƒ£áƒš-ბáƒáƒšáƒ§áƒáƒ áƒ£áƒšáƒ˜áƒ™áƒáƒ áƒ”ლიურიკურუქიშ" + - "áƒáƒ›áƒ‘áƒáƒšáƒáƒ‘áƒáƒ¤áƒ˜áƒáƒ§áƒ£áƒ›áƒ£áƒ®áƒ£áƒ áƒ˜áƒ™áƒ£áƒ¢áƒ”ნáƒáƒ˜áƒšáƒáƒ“ინáƒáƒšáƒáƒœáƒ’ილáƒáƒœáƒ“áƒáƒšáƒáƒ›áƒ‘áƒáƒšáƒ”ზგიურილáƒáƒ™áƒáƒ¢áƒáƒ›áƒáƒœáƒ’áƒáƒšáƒáƒ–ი" + - "ლუისენიáƒáƒšáƒ£áƒœáƒ“áƒáƒšáƒ£áƒáƒ›áƒ˜áƒ–áƒáƒšáƒ£áƒ°áƒ˜áƒáƒ›áƒáƒ¤áƒáƒ›áƒáƒ’áƒáƒ°áƒ˜áƒ›áƒáƒ˜áƒ—ილიმáƒáƒ¡áƒáƒ˜áƒ›áƒáƒ‘áƒáƒ›áƒáƒ¥áƒ¨áƒáƒ›áƒ”ნდემერუმáƒáƒ áƒ˜áƒ¡" + - "იენიმáƒáƒ¥áƒ£áƒ•áƒ-მეეტáƒáƒ›áƒ”ტáƒâ€™ ენáƒáƒ›áƒáƒœáƒ¯áƒ£áƒ áƒ˜áƒ£áƒšáƒ˜áƒ›áƒáƒœáƒ˜áƒžáƒ£áƒ áƒ˜áƒ›áƒáƒ°áƒáƒ£áƒ™áƒ£áƒ áƒ˜áƒ›áƒ£áƒœáƒ“áƒáƒœáƒ’იკრიკიმირáƒáƒœ" + - "დულიმáƒáƒ áƒ•áƒáƒ áƒ˜áƒ›áƒ˜áƒ”ნეერზიáƒáƒœáƒ”áƒáƒžáƒáƒšáƒ˜áƒ¢áƒáƒœáƒ£áƒ áƒ˜áƒœáƒáƒ›áƒáƒœáƒ”ვáƒáƒ áƒ˜áƒ™áƒ•áƒáƒ¡áƒ˜áƒáƒœáƒáƒ¦áƒáƒ£áƒ áƒ˜áƒ«áƒ•áƒ”ლსკáƒáƒœáƒ“ინáƒáƒ•" + - "იურინკáƒáƒœáƒ£áƒ”რიკლáƒáƒ¡áƒ˜áƒ™áƒ£áƒ áƒ˜ ნევáƒáƒ áƒ£áƒšáƒ˜áƒœáƒ˜áƒáƒ›áƒ•áƒ”ზინიáƒáƒœáƒ™áƒáƒšáƒ”ნიáƒáƒ áƒáƒœáƒ–იმáƒáƒ¤áƒáƒšáƒáƒ£áƒ áƒ˜áƒ«áƒ•áƒ”ლი ს" + - "პáƒáƒ áƒ¡áƒ£áƒšáƒ˜áƒ¤áƒ˜áƒœáƒ˜áƒ™áƒ˜áƒ£áƒ áƒ˜áƒ«áƒ•áƒ”ლი პრáƒáƒ•áƒáƒœáƒ¡áƒ£áƒšáƒ˜áƒ™áƒ˜áƒ©áƒ”რáƒáƒ¯áƒáƒ¡áƒ—áƒáƒœáƒ˜áƒ áƒáƒžáƒáƒœáƒ£áƒ˜áƒ áƒáƒ áƒáƒ¢áƒáƒœáƒ’ულირáƒáƒ›áƒ‘áƒáƒ‘áƒ" + - "შურირუáƒáƒ˜áƒáƒ™áƒ£áƒ¢áƒ£áƒ áƒ˜áƒ¡áƒáƒ›áƒáƒ áƒ˜áƒ£áƒš-áƒáƒ áƒáƒ›áƒ”ულისáƒáƒ›áƒ‘ურუსáƒáƒœáƒ’უსიცილიურისენეკáƒáƒ¡áƒ”ნáƒáƒ¡áƒ”ლკუპუ" + - "რიკáƒáƒ˜áƒ áƒáƒ‘áƒáƒ áƒ-სენიძველი ირლáƒáƒœáƒ“იურიშილჰáƒáƒ¨áƒáƒœáƒ˜áƒ©áƒáƒ“ური áƒáƒ áƒáƒ‘ულისáƒáƒ›áƒ®áƒ áƒ”თ სáƒáƒáƒ›áƒ£áƒ áƒ˜" + - "ლულე-სáƒáƒáƒ›áƒ£áƒ áƒ˜áƒ˜áƒœáƒáƒ áƒ˜-სáƒáƒáƒ›áƒ£áƒ áƒ˜áƒ¡áƒ™áƒáƒšáƒ¢-სáƒáƒáƒ›áƒ£áƒ áƒ˜áƒ¨áƒ£áƒ›áƒ”რულიკáƒáƒ›áƒáƒ áƒ£áƒšáƒ˜áƒ™áƒáƒœáƒ’áƒáƒ¡ სუáƒáƒ°áƒ˜áƒšáƒ˜áƒ™áƒš" + - "áƒáƒ¡áƒ˜áƒ™áƒ£áƒ áƒ˜ სირიულისირიულიტესáƒáƒ—იგრეკლინგáƒáƒœáƒ˜áƒ¢áƒáƒ¡áƒáƒ•áƒáƒ¥áƒ˜áƒ¢áƒ£áƒ•áƒáƒªáƒ”ნტრáƒáƒšáƒ£áƒ áƒ˜ მáƒáƒ áƒáƒ™áƒáƒ¡ " + - "ტáƒáƒ›áƒáƒ–იგხტიუდმურტულიუგáƒáƒ áƒ˜áƒ—ულიუცნáƒáƒ‘ი ენáƒáƒ•áƒáƒ˜áƒ•áƒ£áƒœáƒ¯áƒáƒ•áƒ”ლáƒáƒ˜áƒ—áƒáƒ§áƒáƒšáƒ›áƒ£áƒ®áƒ£áƒ áƒ˜áƒ¡áƒáƒ’áƒáƒ™áƒáƒœáƒ¢" + - "áƒáƒœáƒ£áƒ áƒ˜áƒ‘ლისსიმბáƒáƒšáƒáƒ”ბიზენáƒáƒ’áƒáƒ¡áƒ¢áƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ მáƒáƒ áƒáƒ™áƒáƒ£áƒšáƒ˜ ტáƒáƒ›áƒáƒ–იგხტილინგვისტური შ" + - "იგთáƒáƒ•áƒ¡áƒ˜ áƒáƒ  áƒáƒ áƒ˜áƒ¡áƒ–áƒáƒ–áƒáƒ™áƒ˜áƒ—áƒáƒœáƒáƒ›áƒ”დრáƒáƒ•áƒ” სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ áƒáƒ áƒáƒ‘ულიáƒáƒ•áƒ¡áƒ¢áƒ áƒ˜áƒ£áƒšáƒ˜ გერმáƒáƒœáƒ£áƒš" + - "იშვეიცáƒáƒ áƒ˜áƒ£áƒšáƒ˜ ზემáƒáƒ’ერმáƒáƒœáƒ£áƒšáƒ˜áƒáƒ•áƒ¡áƒ¢áƒ áƒáƒšáƒ˜áƒ£áƒ áƒ˜ ინგლისურიკáƒáƒœáƒáƒ“ური ინგლისურიბრიტáƒ" + - "ნული ინგლისურიáƒáƒ›áƒ”რიკული ინგლისურილáƒáƒ—ინურ áƒáƒ›áƒ”რიკული ესპáƒáƒœáƒ£áƒ áƒ˜áƒ”ვრáƒáƒžáƒ£áƒšáƒ˜ ეს" + - "პáƒáƒœáƒ£áƒ áƒ˜áƒ›áƒ”ქსიკური ესპáƒáƒœáƒ£áƒ áƒ˜áƒ™áƒáƒœáƒáƒ“ური ფრáƒáƒœáƒ’ულიშვეიცáƒáƒ áƒ˜áƒ£áƒšáƒ˜ ფრáƒáƒœáƒ’ულიფლáƒáƒ›áƒáƒœáƒ“იუ" + - "რიბრáƒáƒ–ილიური პáƒáƒ áƒ¢áƒ£áƒ’áƒáƒšáƒ˜áƒ£áƒ áƒ˜áƒ”ვრáƒáƒžáƒ£áƒšáƒ˜ პáƒáƒ áƒ¢áƒ£áƒ’áƒáƒšáƒ˜áƒ£áƒ áƒ˜áƒ›áƒáƒšáƒ“áƒáƒ•áƒ£áƒ áƒ˜áƒ¡áƒ”რბულ-ხáƒáƒ áƒ•áƒáƒ¢áƒ£áƒš" + - "იგáƒáƒ›áƒáƒ áƒ¢áƒ˜áƒ•áƒ”ბული ჩინურიტრáƒáƒ“იციული ჩინური" - -// Size: 1234 bytes, 605 elements -var kaLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000f, 0x0027, 0x003f, 0x005d, 0x006c, 0x0084, 0x009f, - 0x00b4, 0x00c9, 0x00c9, 0x00db, 0x0102, 0x011d, 0x013b, 0x0156, - 0x0156, 0x016b, 0x0186, 0x019e, 0x01b9, 0x01d1, 0x01ef, 0x0204, - 0x0204, 0x021f, 0x0228, 0x023a, 0x026b, 0x0283, 0x0298, 0x02ad, - 0x02c8, 0x02da, 0x02ef, 0x02f8, 0x0310, 0x032b, 0x0346, 0x035e, - 0x0376, 0x038b, 0x03a3, 0x03a3, 0x03b5, 0x03c1, 0x03d9, 0x03f1, - 0x0421, 0x043f, 0x0473, 0x048e, 0x04a3, 0x04bb, 0x04cd, 0x04dc, - 0x04f1, 0x0500, 0x0500, 0x051b, 0x0533, 0x0548, 0x055d, 0x055d, - // Entry 40 - 7F - 0x058a, 0x05ab, 0x05c9, 0x05d5, 0x05f1, 0x05f1, 0x05fa, 0x0618, - 0x0630, 0x064e, 0x0666, 0x0678, 0x068d, 0x069c, 0x06ae, 0x06ae, - 0x06c6, 0x0703, 0x0718, 0x072a, 0x073f, 0x0751, 0x076c, 0x0781, - 0x078d, 0x07a2, 0x07bd, 0x07d5, 0x07fc, 0x080b, 0x0829, 0x083e, - 0x0853, 0x0868, 0x088a, 0x08a2, 0x08c3, 0x08c3, 0x08d2, 0x08f0, - 0x0914, 0x092f, 0x0944, 0x095c, 0x0971, 0x0986, 0x0995, 0x09c3, - 0x09db, 0x09db, 0x09ff, 0x0a39, 0x0a6d, 0x0a6d, 0x0a7f, 0x0a91, - 0x0aaf, 0x0ac1, 0x0ad0, 0x0adc, 0x0aeb, 0x0b06, 0x0b12, 0x0b2a, - // Entry 80 - BF - 0x0b39, 0x0b5d, 0x0b6c, 0x0b90, 0x0b9f, 0x0bb7, 0x0bc9, 0x0bea, - 0x0c05, 0x0c23, 0x0c3b, 0x0c69, 0x0c78, 0x0c93, 0x0cae, 0x0cc9, - 0x0cd8, 0x0ce4, 0x0cff, 0x0d17, 0x0d2c, 0x0d2c, 0x0d5b, 0x0d70, - 0x0d85, 0x0d9a, 0x0db2, 0x0dc4, 0x0ddc, 0x0de5, 0x0dfd, 0x0e1b, - 0x0e2d, 0x0e48, 0x0e5d, 0x0e5d, 0x0e72, 0x0e72, 0x0e8a, 0x0ea5, - 0x0eb1, 0x0ec9, 0x0ec9, 0x0ee7, 0x0ee7, 0x0ee7, 0x0eff, 0x0f0e, - 0x0f1d, 0x0f2f, 0x0f2f, 0x0f41, 0x0f4d, 0x0f62, 0x0f71, 0x0f86, - 0x0f9e, 0x0f9e, 0x0f9e, 0x0fad, 0x0fc2, 0x0fd7, 0x0fd7, 0x0fef, - // Entry C0 - FF - 0x0fef, 0x101a, 0x1045, 0x1057, 0x106f, 0x1090, 0x1090, 0x10a5, - 0x10a5, 0x10ba, 0x10ba, 0x10ba, 0x10c3, 0x10c3, 0x10de, 0x10de, - 0x10ed, 0x10ed, 0x10ff, 0x1117, 0x1117, 0x1123, 0x1135, 0x1135, - 0x1135, 0x1141, 0x1150, 0x1150, 0x115c, 0x115c, 0x115c, 0x1171, - 0x1171, 0x1171, 0x1171, 0x1171, 0x1171, 0x1171, 0x1171, 0x1180, - 0x1180, 0x118c, 0x118c, 0x11a7, 0x11a7, 0x11a7, 0x11b9, 0x11b9, - 0x11b9, 0x11b9, 0x11cb, 0x11cb, 0x11cb, 0x11d7, 0x11e6, 0x11e6, - 0x11e6, 0x11fb, 0x11fb, 0x11fb, 0x11fb, 0x120d, 0x120d, 0x1235, - // Entry 100 - 13F - 0x124a, 0x124a, 0x1275, 0x128d, 0x129f, 0x12b7, 0x12c6, 0x12e4, - 0x12e4, 0x12f9, 0x1308, 0x1317, 0x1326, 0x134a, 0x134a, 0x1359, - 0x1359, 0x1368, 0x1377, 0x1377, 0x1383, 0x1392, 0x1392, 0x13b9, - 0x13b9, 0x13b9, 0x13b9, 0x13b9, 0x13cb, 0x13cb, 0x13cb, 0x13e9, - 0x13e9, 0x13f5, 0x13f5, 0x13f5, 0x141d, 0x141d, 0x1447, 0x147d, - 0x1495, 0x1495, 0x14b0, 0x14b0, 0x14b0, 0x14bf, 0x14bf, 0x14ce, - 0x14ce, 0x14ce, 0x14ce, 0x1505, 0x1505, 0x1514, 0x1514, 0x1526, - 0x1526, 0x154e, 0x158b, 0x158b, 0x158b, 0x159a, 0x159a, 0x159a, - // Entry 140 - 17F - 0x159a, 0x15b2, 0x15b2, 0x15b2, 0x15ce, 0x15ce, 0x15ef, 0x15ef, - 0x15ef, 0x15fe, 0x1610, 0x1610, 0x1628, 0x1628, 0x1628, 0x163d, - 0x164f, 0x1667, 0x168f, 0x16b4, 0x16b4, 0x16db, 0x16f3, 0x1705, - 0x1705, 0x1714, 0x1714, 0x1732, 0x1732, 0x1732, 0x1747, 0x176b, - 0x176b, 0x176b, 0x176b, 0x176b, 0x176b, 0x178a, 0x178a, 0x178a, - 0x178a, 0x17a5, 0x17bd, 0x17e8, 0x17fd, 0x17fd, 0x180c, 0x1840, - 0x1840, 0x1840, 0x185b, 0x186d, 0x1882, 0x1891, 0x1891, 0x18a9, - 0x18be, 0x18d0, 0x18df, 0x18ee, 0x18fd, 0x1915, 0x1915, 0x1915, - // Entry 180 - 1BF - 0x1915, 0x1927, 0x1927, 0x1936, 0x1942, 0x1942, 0x1942, 0x195a, - 0x1969, 0x1972, 0x197e, 0x198d, 0x198d, 0x198d, 0x198d, 0x1999, - 0x19ab, 0x19c0, 0x19c0, 0x19c0, 0x19cf, 0x19db, 0x19ea, 0x19ea, - 0x19f9, 0x1a05, 0x1a20, 0x1a20, 0x1a42, 0x1a5b, 0x1a5b, 0x1a5b, - 0x1a79, 0x1a91, 0x1aac, 0x1aac, 0x1aac, 0x1ac4, 0x1ac4, 0x1ad3, - 0x1aee, 0x1b03, 0x1b03, 0x1b12, 0x1b21, 0x1b21, 0x1b21, 0x1b48, - 0x1b54, 0x1b54, 0x1b66, 0x1b66, 0x1b66, 0x1b66, 0x1b78, 0x1b78, - 0x1b8d, 0x1bc0, 0x1bc0, 0x1bc9, 0x1bc9, 0x1bd8, 0x1c0c, 0x1c24, - // Entry 1C0 - 1FF - 0x1c3c, 0x1c4b, 0x1c5a, 0x1c5a, 0x1c5a, 0x1c5a, 0x1c6f, 0x1c6f, - 0x1c6f, 0x1c6f, 0x1c6f, 0x1c6f, 0x1c6f, 0x1c97, 0x1c97, 0x1cb2, - 0x1cb2, 0x1cb2, 0x1cb2, 0x1cb2, 0x1ce0, 0x1cec, 0x1cec, 0x1d07, - 0x1d1c, 0x1d3d, 0x1d3d, 0x1d3d, 0x1d4c, 0x1d5e, 0x1d5e, 0x1d5e, - 0x1d5e, 0x1d5e, 0x1d67, 0x1d67, 0x1d7f, 0x1db0, 0x1dc5, 0x1dc5, - 0x1dc5, 0x1dc5, 0x1dc5, 0x1dd4, 0x1def, 0x1def, 0x1def, 0x1e01, - 0x1e0d, 0x1e0d, 0x1e28, 0x1e50, 0x1e7e, 0x1e7e, 0x1e8d, 0x1e99, - 0x1ec1, 0x1ec1, 0x1ec1, 0x1ec1, 0x1eec, 0x1f0e, 0x1f33, 0x1f58, - // Entry 200 - 23F - 0x1f58, 0x1f58, 0x1f58, 0x1f58, 0x1f58, 0x1f58, 0x1f58, 0x1f58, - 0x1f70, 0x1f88, 0x1fb0, 0x1fe1, 0x1ff6, 0x1ff6, 0x1ff6, 0x1ff6, - 0x2002, 0x2002, 0x2002, 0x2011, 0x2011, 0x2011, 0x2011, 0x2029, - 0x2029, 0x2029, 0x2029, 0x2029, 0x2029, 0x2029, 0x2029, 0x2029, - 0x2029, 0x2029, 0x2029, 0x2029, 0x2041, 0x204d, 0x20a0, 0x20bb, - 0x20d6, 0x20d6, 0x20f2, 0x20fb, 0x20fb, 0x20fb, 0x20fb, 0x20fb, - 0x20fb, 0x20fb, 0x210a, 0x210a, 0x211f, 0x211f, 0x211f, 0x211f, - 0x211f, 0x213a, 0x213a, 0x2146, 0x2146, 0x2146, 0x2146, 0x2146, - // Entry 240 - 27F - 0x2146, 0x2161, 0x2161, 0x218b, 0x218b, 0x219d, 0x21f9, 0x21f9, - 0x2247, 0x2259, 0x22b2, 0x22e9, 0x2332, 0x236f, 0x23a3, 0x23da, - 0x2411, 0x245b, 0x248c, 0x24c0, 0x24f1, 0x252b, 0x254c, 0x258f, - 0x25cc, 0x25e7, 0x2615, 0x264f, 0x2680, -} - -// Size: 3974 bytes -var kkLangStr string = "" + - "абхаз тіліафрикаанÑаканамхарараб тіліаÑÑам тіліәзірбайжан тілібашқұрт Ñ‚Ñ–" + - "Ð»Ñ–Ð±ÐµÐ»Ð°Ñ€ÑƒÑ Ñ‚Ñ–Ð»Ñ–Ð±Ð¾Ð»Ð³Ð°Ñ€ тілібамбарабенгал тілітибет тілібретон тілібоÑÐ½Ð¸Ñ " + - "тілікаталанкорÑикан тілічех Ñ‚Ñ–Ð»Ñ–Ð²Ð°Ð»Ð»Ð¸Ð¹Ð´Ð°Ñ‚Ð½ÐµÐ¼Ñ–Ñ Ñ‚Ñ–Ð»Ñ–Ð´Ð·Ð¾Ð½Ð³-кÑÑвегрек тілі" + - "ағылшын тіліÑÑперантоиÑпан тіліÑÑтон тілібаÑкпарÑÑ‹ тіліфинфиджифарерфра" + - "нцуз Ñ‚Ñ–Ð»Ñ–Ð±Ð°Ñ‚Ñ‹Ñ Ñ„Ñ€Ð¸Ð·Ð¸Ñ€Ð»Ð°Ð½Ð´ тілігалигуаранигуджаратимÑнÑхауÑаивритхиндихо" + - "рватгаитÑнвенгерармÑн тіліиндонез тіліигбоÑычуан и тіліиÑландитальÑн Ñ‚Ñ–" + - "ліинуктитутжапон тіліÑвагрузин тілікикуйюқазақ тілікалаалиÑуткхмерканна" + - "Ð´Ð°ÐºÓ™Ñ€Ñ–Ñ Ñ‚Ñ–Ð»Ñ–ÐºÐ°ÑˆÐ¼Ð¸Ñ€ тілікүрд тілікорнишқырғыз тілілатынлюкÑембурггандали" + - "Ð½Ð³Ð°Ð»Ð°Ð»Ð°Ð¾Ñ Ñ‚Ñ–Ð»Ñ–Ð»Ð¸Ñ‚Ð²Ð° тілілуба-катангалатыш тілімалагаÑимаоримакедон тілі" + - "малайÑламмоңғол тілімаратхималаймальтабирманÑолтүÑтік ндебелнепалнидерл" + - "анд тілінорвегиÑлық нинорÑкнорвегиÑлық букмолоромоориÑпенджабполÑк тілі" + - "пуштупортугал Ñ‚Ñ–Ð»Ñ–ÐºÐµÑ‡ÑƒÐ°Ñ€Ð¾Ð¼Ð°Ð½ÑˆÑ€ÑƒÐ½Ð´Ð¸Ñ€ÑƒÐ¼Ñ‹Ð½Ð¾Ñ€Ñ‹Ñ Ñ‚Ñ–Ð»Ñ–ÐºÐ¸Ð½ÑŒÑруандаÑанÑкритÑинд" + - "хиÑолтүÑтік ÑамиÑангоÑингалÑловакÑловеншонаÑомалиалбанÑерб тіліÑуданшве" + - "дÑуахилитамилтелугутәжік тілітайтигриньÑтүрікментонгантүріктатар тіліұй" + - "Ò“Ñ‹Ñ€ тіліукраин тіліурдуөзбеквьетнамволофкÑозайорубақытай тілізулуагхемм" + - "апучеаÑубембабенабодо тілікигачероки тіліÑорани тілітаитазарматөменгі л" + - "ужица тілідуаладиолаембуфилиппингагаузшвейцариÑлық Ð½ÐµÐ¼Ñ–Ñ Ñ‚Ñ–Ð»Ñ–Ð³ÑƒÑиигавай" + - "жоғарғы лужицангомбамачамекабилкамбамакондекабувердианакойра чиникаленж" + - "инкоми-пермь тіліконканишамбалабафиаланги тілілакоталуолухиамаÑаймерумо" + - "риÑиенмакуа-мееттометамохокимундангнамакваÑионконуернианколекичеромбору" + - "аÑамбуруÑангуÑенакойраборо ÑенниташелхитоңтүÑтік Ñаамилуле Ñааминари Ñа" + - "амÑколт Ñаамконго Ñуахили тілітеÑотаÑавакорталық Ð°Ñ‚Ð»Ð°Ñ Ñ‚Ð°Ð¼Ð°Ñагихт тіліб" + - "елгіÑіз тілвайвунджоÑогамарокколық Ñтандартты тамазигхттілдік мазмұны ж" + - "оққазіргі Ñтандартты араб тіліавÑтриÑлық Ð½ÐµÐ¼Ñ–Ñ Ñ‚Ñ–Ð»Ñ–Ð½ÐµÐ¼Ñ–Ñ Ñ‚Ñ–Ð»Ñ–Ð½Ñ–Ò£ швейца" + - "риÑлық диалектіавÑтралиÑлық ағылшын тіліканадалық ағылшын тілібританиÑл" + - "Ñ‹Ò› ағылшын тіліамерикандық ағылшын тілілатын американдық иÑпан тіліибер" + - "иÑлық иÑпан тілімекÑикалық иÑпан тіліканадалық француз тілішвейцариÑлық" + - " француз тіліфламанд тілібразилиÑлық португал тіліеуропалық португал тіл" + - "імолдован тіліжеңілдетілген қытай тілідәÑтүрлі қытай тілі" - -// Size: 1234 bytes, 605 elements -var kkLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0013, 0x0013, 0x0025, 0x002d, 0x0037, 0x0037, - 0x0048, 0x005b, 0x005b, 0x005b, 0x0078, 0x008f, 0x00a6, 0x00bb, - 0x00bb, 0x00c9, 0x00de, 0x00f1, 0x0106, 0x011b, 0x0129, 0x0129, - 0x0129, 0x0142, 0x0142, 0x0151, 0x0151, 0x0151, 0x015d, 0x0163, - 0x0176, 0x0176, 0x0185, 0x018b, 0x019c, 0x01b3, 0x01c5, 0x01d8, - 0x01eb, 0x01f3, 0x0206, 0x0206, 0x020c, 0x0216, 0x0220, 0x0237, - 0x024a, 0x025f, 0x025f, 0x0267, 0x0275, 0x0287, 0x028f, 0x0299, - 0x02a3, 0x02ad, 0x02ad, 0x02b9, 0x02c5, 0x02d1, 0x02e4, 0x02e4, - // Entry 40 - 7F - 0x02e4, 0x02fb, 0x02fb, 0x0303, 0x031b, 0x031b, 0x031b, 0x0327, - 0x033e, 0x0350, 0x0363, 0x0369, 0x037e, 0x037e, 0x038a, 0x038a, - 0x039d, 0x03b1, 0x03bb, 0x03c9, 0x03dc, 0x03dc, 0x03f1, 0x0402, - 0x0402, 0x040e, 0x0423, 0x042d, 0x0441, 0x044b, 0x044b, 0x0459, - 0x046a, 0x047d, 0x0494, 0x04a7, 0x04b7, 0x04b7, 0x04c1, 0x04d8, - 0x04ea, 0x04ff, 0x050d, 0x0517, 0x0523, 0x052f, 0x052f, 0x054e, - 0x0558, 0x0558, 0x0573, 0x0598, 0x05bb, 0x05bb, 0x05bb, 0x05bb, - 0x05bb, 0x05bb, 0x05c5, 0x05cd, 0x05cd, 0x05db, 0x05db, 0x05ee, - // Entry 80 - BF - 0x05f8, 0x0611, 0x061b, 0x0627, 0x0631, 0x063b, 0x064c, 0x0662, - 0x0672, 0x0672, 0x067e, 0x0699, 0x06a3, 0x06af, 0x06bb, 0x06c7, - 0x06c7, 0x06cf, 0x06db, 0x06e5, 0x06f6, 0x06f6, 0x06f6, 0x0700, - 0x0708, 0x0716, 0x0720, 0x072c, 0x073f, 0x0745, 0x0755, 0x0765, - 0x0765, 0x0771, 0x077b, 0x077b, 0x078e, 0x078e, 0x07a1, 0x07b6, - 0x07be, 0x07c8, 0x07c8, 0x07d6, 0x07d6, 0x07d6, 0x07e0, 0x07ea, - 0x07ea, 0x07f6, 0x07f6, 0x0809, 0x0811, 0x0811, 0x0811, 0x0811, - 0x0811, 0x0811, 0x0811, 0x081b, 0x081b, 0x081b, 0x081b, 0x081b, - // Entry C0 - FF - 0x081b, 0x081b, 0x081b, 0x081b, 0x081b, 0x0827, 0x0827, 0x0827, - 0x0827, 0x0827, 0x0827, 0x0827, 0x082d, 0x082d, 0x082d, 0x082d, - 0x082d, 0x082d, 0x082d, 0x082d, 0x082d, 0x082d, 0x082d, 0x082d, - 0x082d, 0x082d, 0x0837, 0x0837, 0x083f, 0x083f, 0x083f, 0x083f, - 0x083f, 0x083f, 0x083f, 0x083f, 0x083f, 0x083f, 0x083f, 0x083f, - 0x083f, 0x0850, 0x0850, 0x0850, 0x0850, 0x0850, 0x0850, 0x0850, - 0x0850, 0x0850, 0x0850, 0x0850, 0x0850, 0x0858, 0x0858, 0x0858, - 0x0858, 0x0858, 0x0858, 0x0858, 0x0858, 0x086d, 0x086d, 0x0882, - // Entry 100 - 13F - 0x0882, 0x0882, 0x0882, 0x0882, 0x0882, 0x0882, 0x088c, 0x088c, - 0x088c, 0x088c, 0x088c, 0x0896, 0x0896, 0x08ba, 0x08ba, 0x08c4, - 0x08c4, 0x08ce, 0x08ce, 0x08ce, 0x08d6, 0x08d6, 0x08d6, 0x08d6, - 0x08d6, 0x08d6, 0x08d6, 0x08d6, 0x08d6, 0x08d6, 0x08d6, 0x08e6, - 0x08e6, 0x08e6, 0x08e6, 0x08e6, 0x08e6, 0x08e6, 0x08e6, 0x08e6, - 0x08e6, 0x08e6, 0x08f2, 0x08f2, 0x08f2, 0x08f2, 0x08f2, 0x08f2, - 0x08f2, 0x08f2, 0x08f2, 0x08f2, 0x08f2, 0x08f2, 0x08f2, 0x08f2, - 0x08f2, 0x08f2, 0x091e, 0x091e, 0x091e, 0x0928, 0x0928, 0x0928, - // Entry 140 - 17F - 0x0928, 0x0932, 0x0932, 0x0932, 0x0932, 0x0932, 0x094d, 0x094d, - 0x094d, 0x094d, 0x094d, 0x094d, 0x094d, 0x094d, 0x094d, 0x094d, - 0x0959, 0x0965, 0x0965, 0x0965, 0x0965, 0x0965, 0x096f, 0x096f, - 0x096f, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0987, 0x099f, - 0x099f, 0x099f, 0x099f, 0x099f, 0x099f, 0x09b2, 0x09b2, 0x09b2, - 0x09b2, 0x09c2, 0x09c2, 0x09de, 0x09ec, 0x09ec, 0x09ec, 0x09ec, - 0x09ec, 0x09ec, 0x09ec, 0x09ec, 0x09fa, 0x0a04, 0x0a04, 0x0a04, - 0x0a04, 0x0a04, 0x0a17, 0x0a17, 0x0a17, 0x0a17, 0x0a17, 0x0a17, - // Entry 180 - 1BF - 0x0a17, 0x0a23, 0x0a23, 0x0a23, 0x0a23, 0x0a23, 0x0a23, 0x0a23, - 0x0a23, 0x0a29, 0x0a29, 0x0a33, 0x0a33, 0x0a33, 0x0a33, 0x0a33, - 0x0a33, 0x0a33, 0x0a33, 0x0a33, 0x0a3d, 0x0a3d, 0x0a3d, 0x0a3d, - 0x0a3d, 0x0a45, 0x0a55, 0x0a55, 0x0a6c, 0x0a74, 0x0a74, 0x0a74, - 0x0a74, 0x0a74, 0x0a80, 0x0a80, 0x0a80, 0x0a8e, 0x0a8e, 0x0a8e, - 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, 0x0a8e, - 0x0a96, 0x0a96, 0x0a96, 0x0a96, 0x0a96, 0x0a96, 0x0aa2, 0x0aa2, - 0x0aa2, 0x0aa2, 0x0aa2, 0x0aa8, 0x0aa8, 0x0ab0, 0x0ab0, 0x0ab0, - // Entry 1C0 - 1FF - 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, - 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, - 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac0, 0x0ac8, 0x0ac8, 0x0ac8, - 0x0ac8, 0x0ac8, 0x0ac8, 0x0ac8, 0x0ad2, 0x0ad2, 0x0ad2, 0x0ad2, - 0x0ad2, 0x0ad2, 0x0ad8, 0x0ad8, 0x0ad8, 0x0ad8, 0x0ae6, 0x0ae6, - 0x0ae6, 0x0ae6, 0x0ae6, 0x0af0, 0x0af0, 0x0af0, 0x0af0, 0x0af0, - 0x0af8, 0x0af8, 0x0af8, 0x0b15, 0x0b15, 0x0b15, 0x0b25, 0x0b25, - 0x0b25, 0x0b25, 0x0b25, 0x0b25, 0x0b40, 0x0b51, 0x0b64, 0x0b77, - // Entry 200 - 23F - 0x0b77, 0x0b77, 0x0b77, 0x0b77, 0x0b77, 0x0b77, 0x0b77, 0x0b77, - 0x0b77, 0x0b77, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, - 0x0ba1, 0x0ba1, 0x0ba1, 0x0ba1, 0x0ba1, 0x0ba1, 0x0ba1, 0x0ba1, - 0x0ba1, 0x0ba1, 0x0ba1, 0x0ba1, 0x0ba1, 0x0ba1, 0x0ba1, 0x0ba1, - 0x0ba1, 0x0ba1, 0x0ba1, 0x0ba1, 0x0baf, 0x0baf, 0x0be6, 0x0be6, - 0x0be6, 0x0be6, 0x0bfd, 0x0c03, 0x0c03, 0x0c03, 0x0c03, 0x0c03, - 0x0c03, 0x0c03, 0x0c0f, 0x0c0f, 0x0c0f, 0x0c0f, 0x0c0f, 0x0c0f, - 0x0c0f, 0x0c0f, 0x0c0f, 0x0c17, 0x0c17, 0x0c17, 0x0c17, 0x0c17, - // Entry 240 - 27F - 0x0c17, 0x0c17, 0x0c17, 0x0c17, 0x0c17, 0x0c17, 0x0c53, 0x0c53, - 0x0c75, 0x0c75, 0x0caa, 0x0cd2, 0x0d15, 0x0d45, 0x0d6f, 0x0d9d, - 0x0dcb, 0x0e00, 0x0e26, 0x0e4e, 0x0e78, 0x0ea8, 0x0ebf, 0x0eef, - 0x0f1b, 0x0f34, 0x0f34, 0x0f62, 0x0f86, -} - -// Size: 4548 bytes -var kmLangStr string = "" + - "ភាសាអាហ្វារអាប់ážáž¶áž áŸŠáŸ’សានភាសាអាវែស្ážáž„់អាហ្វ្រីកាអានAkanអាមហារីចភាសាអារ៉ាហ្" + - "គោនអារ៉ាប់អាសាមីសភាសាអីម៉ារ៉ាអាហ៊្សែរបែហ្សង់បែស្កឺបáŸáž¡áž¶ážšáž»ážŸáŸ’សប៊ុលហ្ការីប" + - "ាម្បារាបង់ក្លាដែសទីបáŸáž”្រីស្ážáž»áž“បូស្នីកាážáž¶áž¡áž¶áž“CorsicanឆáŸáž€ážœáŸáž›ážŠáž¶ážŽážºáž˜áŸ‰áž¶áž€áž¢áž¶áž›áŸ’áž›" + - "ឺម៉ង់ភាសាប៊ូážáž¶áž“Eweក្រិចអង់គ្លáŸážŸáž¢áŸážŸáŸ’áž–áŸážšáŸ‰áž¶áž“់ážáž¼áž¢áŸážŸáŸ’ប៉ាញអáŸážŸáŸ’ážáž¼áž“ីបាស្កáŸáž—ឺសៀ" + - "នហ្វាំងឡង់ហ៊្វីជីហ្វារូសបារាំងហ្វ្រីស៊ានážáž¶áž„លិចអៀរឡង់ភាសាហ្កែលិគ (gd)ហ្" + - "គាលីស្យានហ្គូរ៉ានីហ្កុយ៉ារាទីManxហូសាអ៊ីស្រាអែលហិណ្ឌូក្រូអាážáž áŸƒáž‘ីហុងគ្រ" + - "ីអារមáŸáž“ីឥណ្ឌូណáŸážŸáŸŠáž¸áž¢áŸŠáž¸áž€áž”áž¼Sichuan Yiអ៊ីស្លង់អ៊ីážáž¶áž›áž¸Inuktitutជប៉ុនជ្វាហ្ស" + - "ក\u200bហ្ស៊ីKikuyuកាហ្សាក់ស្ážáž„់់KalaallisutážáŸ’មែរកន្នដកូរ៉áŸáž€áž¶ážŸáŸ’មៀរឃឺដCo" + - "rnishគៀរហ្គីស្ážáž„់ឡាážáŸ†áž¶áž„លុចហ្សំបួរGandaលីនកាឡាឡាវលីទុយអានីLuba-Katangaឡាáž" + - "វីយ៉ាម៉ាឡាហ្គាស៊ីម៉ោរីម៉ាសáŸážŠáž¼áž“ីមលយាលáŸáž˜áž˜áŸ‰áž»áž„ហ្គោលីមរាធិម៉ាឡáŸážŸáŸŠáž¸áž˜áŸ‰áž¶áž›áŸ‹ážáž¶áž—áž¼" + - "មាNorth Ndebeleáž“áŸáž”៉ាល់ហុល្លង់នáŸážšážœáŸ‚ស នីនូសនáŸážšážœáŸ‚ស បុកម៉ាល់Oromoអូរីយ៉ាបឹ" + - "នជាពិប៉ូឡូញបាស្ážáž¼áž–áŸážšáž‘ុយហ្កាល់កáŸáž‘ជួអារ៉ូម៉ង់រូន្ឌីរូម៉ានីរុស្ស៊ីKinyarw" + - "andaសំស្ក្រឹáž\u200b\u200bស៊ីន្ážáž¸Sami ភាគ\u200bážáž¶áž„\u200bជើងSangoស្រីលង្កា" + - "ស្លូវ៉ាគីស្លូវ៉ានីភាសាសាមូអាShonaសូម៉ាលីអាល់បានីសើបស៊ូដង់ស៊ុយអែដស្វាហ៊" + - "ីលីážáž¶áž˜áž¸áž›ážáŸáž›áž»áž‚áž»ážáž¶ážŠáž áŸ’សីគីស្ážáž„់ážáŸƒáž‘ីរិនយាទួគមáŸáž“ីស្ážáž„់ážáž»áž„ហ្គោទួរគីážáž¶ážáž¶ážšáž¢áŸŠáž»áž™" + - "ហ្គឺរអ៊ុយក្រែនអ៊ូរឌូអ៊ូហ្សបáŸáž‚ីស្ážáž„់វៀážážŽáž¶áž˜ážœáž¼áž¡áž»áž áŸ’វឃសាភាសាយីឌីហ្សយរូបាភាស" + - "ាចួងចិនសូលូAghemMapucheAsuBembaBenaBodoChigaឆáŸážšáž¼áž‚ីសុរ៉ានីTaitaZarmaLow" + - "er SorbianDualaJola-FonyiEmbuហ្វីលីពីនGagauzអាល្លឺម៉ង ស្វីសGusiiហាវៃUppe" + - "r SorbianNgombaMachameKabyleKambaMakondeKabuverdianuKoyra ChiiniKalenjin" + - "Komi-PermyakKonkaniShambalaBafiaLangiLakotaLuoLuyiaMasaiMeruMorisyenMakh" + - "uwa-MeettoMetaMohawkMundangNamaKwasioN’KoNuerNyankoleKʼicheʼRomboRwaSamb" + - "uruSanguSenaKoyraboro SenniTachelhitSami ភាគ\u200bážáž¶áž„\u200bážáŸ’បូងLule Sam" + - "iInari SamiSkolt SamiCongo SwahiliTesoTasawaqAtlas Tamazight កណ្ដាលមិន" + - "\u200bស្គាល់\u200bភាសាVaiVunjoSogaម៉ារ៉ុកគ្មាន\u200bទិន្ននáŸáž™\u200bភាសាអា" + - "រ៉ាប់\u200bស្ážáž„់ដារ\u200bទំនើបអាល្លឺម៉ង់ អូទ្រីសអាល្លឺម៉ង់ ស្វីសអង់គ្ល" + - "áŸážŸ អូស្ážáŸ’រាលីអង់គ្លáŸážŸ កាណាដាអង់គ្លáŸážŸ ចក្រភព\u200bអង់គ្លáŸážŸáž¢áž„់គ្លáŸážŸ អាមáŸ" + - "រិកអáŸážŸáŸ’ប៉ាញ អាមáŸážšáž¸áž€áž¡áž¶ážáž¶áŸ†áž„អáŸážŸáŸ’ប៉ាញ អឺរ៉ុបផ្លាមីសពáŸážšáž‘ុយហ្គាល់ ប្រáŸážŸáŸŠáž¸áž›áž–áŸ" + - "រទុយហ្គាល់ អឺរ៉ុបភាសាម៉ុលដាវីចិន\u200bអក្សរ\u200bកាážáŸ‹áž…áž·áž“\u200bអក្សរ" + - "\u200báž–áŸáž‰" - -// Size: 1234 bytes, 605 elements -var kmLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0021, 0x0045, 0x006c, 0x0093, 0x0097, 0x00af, 0x00d9, - 0x00ee, 0x0103, 0x0103, 0x0127, 0x0154, 0x0166, 0x0181, 0x019f, - 0x019f, 0x01b7, 0x01d5, 0x01e1, 0x01fc, 0x020e, 0x0223, 0x0223, - 0x0223, 0x022b, 0x022b, 0x0234, 0x0234, 0x0234, 0x023d, 0x0255, - 0x0273, 0x0273, 0x0291, 0x0294, 0x02a3, 0x02bb, 0x02e2, 0x02fa, - 0x0312, 0x0324, 0x0333, 0x0333, 0x034e, 0x0363, 0x0378, 0x038a, - 0x03ba, 0x03cc, 0x03f2, 0x0413, 0x042e, 0x044f, 0x0453, 0x045f, - 0x047d, 0x048f, 0x048f, 0x04a4, 0x04b0, 0x04c5, 0x04da, 0x04da, - // Entry 40 - 7F - 0x04da, 0x04f8, 0x04f8, 0x050a, 0x0514, 0x0514, 0x0514, 0x052c, - 0x0541, 0x054a, 0x0559, 0x0565, 0x0583, 0x0583, 0x0589, 0x0589, - 0x05b3, 0x05be, 0x05cd, 0x05dc, 0x05eb, 0x05eb, 0x0600, 0x0609, - 0x0609, 0x0610, 0x0634, 0x0646, 0x0664, 0x0669, 0x0669, 0x067e, - 0x0687, 0x06a2, 0x06ae, 0x06c6, 0x06ea, 0x06ea, 0x06f9, 0x0714, - 0x0729, 0x0747, 0x0756, 0x076e, 0x0783, 0x078f, 0x078f, 0x079c, - 0x07b1, 0x07b1, 0x07c6, 0x07e8, 0x0813, 0x0813, 0x0813, 0x0813, - 0x0813, 0x0813, 0x0818, 0x082d, 0x082d, 0x0842, 0x0842, 0x0854, - // Entry 80 - BF - 0x0866, 0x088a, 0x089f, 0x08b4, 0x08c6, 0x08db, 0x08f0, 0x08fb, - 0x0916, 0x0916, 0x0931, 0x0957, 0x095c, 0x0977, 0x0992, 0x09ad, - 0x09cb, 0x09d0, 0x09e5, 0x09fd, 0x0a06, 0x0a06, 0x0a06, 0x0a18, - 0x0a2d, 0x0a48, 0x0a57, 0x0a69, 0x0a93, 0x0a99, 0x0aae, 0x0ad2, - 0x0ad2, 0x0ae7, 0x0af6, 0x0af6, 0x0b05, 0x0b05, 0x0b20, 0x0b3b, - 0x0b4d, 0x0b7a, 0x0b7a, 0x0b8c, 0x0b8c, 0x0b8c, 0x0ba1, 0x0baa, - 0x0bcb, 0x0bda, 0x0bef, 0x0bf8, 0x0c04, 0x0c04, 0x0c04, 0x0c04, - 0x0c04, 0x0c04, 0x0c04, 0x0c09, 0x0c09, 0x0c09, 0x0c09, 0x0c09, - // Entry C0 - FF - 0x0c09, 0x0c09, 0x0c09, 0x0c09, 0x0c09, 0x0c10, 0x0c10, 0x0c10, - 0x0c10, 0x0c10, 0x0c10, 0x0c10, 0x0c13, 0x0c13, 0x0c13, 0x0c13, - 0x0c13, 0x0c13, 0x0c13, 0x0c13, 0x0c13, 0x0c13, 0x0c13, 0x0c13, - 0x0c13, 0x0c13, 0x0c18, 0x0c18, 0x0c1c, 0x0c1c, 0x0c1c, 0x0c1c, - 0x0c1c, 0x0c1c, 0x0c1c, 0x0c1c, 0x0c1c, 0x0c1c, 0x0c1c, 0x0c1c, - 0x0c1c, 0x0c20, 0x0c20, 0x0c20, 0x0c20, 0x0c20, 0x0c20, 0x0c20, - 0x0c20, 0x0c20, 0x0c20, 0x0c20, 0x0c20, 0x0c25, 0x0c25, 0x0c25, - 0x0c25, 0x0c25, 0x0c25, 0x0c25, 0x0c25, 0x0c37, 0x0c37, 0x0c4c, - // Entry 100 - 13F - 0x0c4c, 0x0c4c, 0x0c4c, 0x0c4c, 0x0c4c, 0x0c4c, 0x0c51, 0x0c51, - 0x0c51, 0x0c51, 0x0c51, 0x0c56, 0x0c56, 0x0c63, 0x0c63, 0x0c68, - 0x0c68, 0x0c72, 0x0c72, 0x0c72, 0x0c76, 0x0c76, 0x0c76, 0x0c76, - 0x0c76, 0x0c76, 0x0c76, 0x0c76, 0x0c76, 0x0c76, 0x0c76, 0x0c91, - 0x0c91, 0x0c91, 0x0c91, 0x0c91, 0x0c91, 0x0c91, 0x0c91, 0x0c91, - 0x0c91, 0x0c91, 0x0c97, 0x0c97, 0x0c97, 0x0c97, 0x0c97, 0x0c97, - 0x0c97, 0x0c97, 0x0c97, 0x0c97, 0x0c97, 0x0c97, 0x0c97, 0x0c97, - 0x0c97, 0x0c97, 0x0cc2, 0x0cc2, 0x0cc2, 0x0cc7, 0x0cc7, 0x0cc7, - // Entry 140 - 17F - 0x0cc7, 0x0cd3, 0x0cd3, 0x0cd3, 0x0cd3, 0x0cd3, 0x0ce0, 0x0ce0, - 0x0ce0, 0x0ce0, 0x0ce0, 0x0ce0, 0x0ce0, 0x0ce0, 0x0ce0, 0x0ce0, - 0x0ce6, 0x0ced, 0x0ced, 0x0ced, 0x0ced, 0x0ced, 0x0cf3, 0x0cf3, - 0x0cf3, 0x0cf8, 0x0cf8, 0x0cf8, 0x0cf8, 0x0cf8, 0x0cff, 0x0d0b, - 0x0d0b, 0x0d0b, 0x0d0b, 0x0d0b, 0x0d0b, 0x0d17, 0x0d17, 0x0d17, - 0x0d17, 0x0d1f, 0x0d1f, 0x0d2b, 0x0d32, 0x0d32, 0x0d32, 0x0d32, - 0x0d32, 0x0d32, 0x0d32, 0x0d32, 0x0d3a, 0x0d3f, 0x0d3f, 0x0d3f, - 0x0d3f, 0x0d3f, 0x0d44, 0x0d44, 0x0d44, 0x0d44, 0x0d44, 0x0d44, - // Entry 180 - 1BF - 0x0d44, 0x0d4a, 0x0d4a, 0x0d4a, 0x0d4a, 0x0d4a, 0x0d4a, 0x0d4a, - 0x0d4a, 0x0d4d, 0x0d4d, 0x0d52, 0x0d52, 0x0d52, 0x0d52, 0x0d52, - 0x0d52, 0x0d52, 0x0d52, 0x0d52, 0x0d57, 0x0d57, 0x0d57, 0x0d57, - 0x0d57, 0x0d5b, 0x0d63, 0x0d63, 0x0d71, 0x0d75, 0x0d75, 0x0d75, - 0x0d75, 0x0d75, 0x0d7b, 0x0d7b, 0x0d7b, 0x0d82, 0x0d82, 0x0d82, - 0x0d82, 0x0d82, 0x0d82, 0x0d82, 0x0d82, 0x0d82, 0x0d82, 0x0d82, - 0x0d86, 0x0d86, 0x0d86, 0x0d86, 0x0d86, 0x0d86, 0x0d8c, 0x0d8c, - 0x0d8c, 0x0d8c, 0x0d8c, 0x0d92, 0x0d92, 0x0d96, 0x0d96, 0x0d96, - // Entry 1C0 - 1FF - 0x0d9e, 0x0d9e, 0x0d9e, 0x0d9e, 0x0d9e, 0x0d9e, 0x0d9e, 0x0d9e, - 0x0d9e, 0x0d9e, 0x0d9e, 0x0d9e, 0x0d9e, 0x0d9e, 0x0d9e, 0x0d9e, - 0x0d9e, 0x0d9e, 0x0d9e, 0x0d9e, 0x0d9e, 0x0da7, 0x0da7, 0x0da7, - 0x0da7, 0x0da7, 0x0da7, 0x0da7, 0x0dac, 0x0dac, 0x0dac, 0x0dac, - 0x0dac, 0x0dac, 0x0daf, 0x0daf, 0x0daf, 0x0daf, 0x0db6, 0x0db6, - 0x0db6, 0x0db6, 0x0db6, 0x0dbb, 0x0dbb, 0x0dbb, 0x0dbb, 0x0dbb, - 0x0dbf, 0x0dbf, 0x0dbf, 0x0dce, 0x0dce, 0x0dce, 0x0dd7, 0x0dd7, - 0x0dd7, 0x0dd7, 0x0dd7, 0x0dd7, 0x0e03, 0x0e0c, 0x0e16, 0x0e20, - // Entry 200 - 23F - 0x0e20, 0x0e20, 0x0e20, 0x0e20, 0x0e20, 0x0e20, 0x0e20, 0x0e20, - 0x0e20, 0x0e20, 0x0e2d, 0x0e2d, 0x0e2d, 0x0e2d, 0x0e2d, 0x0e2d, - 0x0e31, 0x0e31, 0x0e31, 0x0e31, 0x0e31, 0x0e31, 0x0e31, 0x0e31, - 0x0e31, 0x0e31, 0x0e31, 0x0e31, 0x0e31, 0x0e31, 0x0e31, 0x0e31, - 0x0e31, 0x0e31, 0x0e31, 0x0e31, 0x0e38, 0x0e38, 0x0e5a, 0x0e5a, - 0x0e5a, 0x0e5a, 0x0e87, 0x0e8a, 0x0e8a, 0x0e8a, 0x0e8a, 0x0e8a, - 0x0e8a, 0x0e8a, 0x0e8f, 0x0e8f, 0x0e8f, 0x0e8f, 0x0e8f, 0x0e8f, - 0x0e8f, 0x0e8f, 0x0e8f, 0x0e93, 0x0e93, 0x0e93, 0x0e93, 0x0e93, - // Entry 240 - 27F - 0x0e93, 0x0e93, 0x0e93, 0x0e93, 0x0e93, 0x0e93, 0x0ea8, 0x0ea8, - 0x0ee1, 0x0ee1, 0x0f23, 0x0f57, 0x0f85, 0x0fbc, 0x0fe7, 0x102d, - 0x105b, 0x109b, 0x10c6, 0x10c6, 0x10c6, 0x10c6, 0x10db, 0x1118, - 0x114f, 0x1173, 0x1173, 0x119d, 0x11c4, -} - -// Size: 11546 bytes -var knLangStr string = "" + - "ಅಫಾರà³à²…ಬà³à²–ಾಜಿಯನà³à²…ವೆಸà³à²Ÿà²¨à³à²†à²«à³à²°à²¿à²•à²¾à²¨à³à²¸à³à²…ಕಾನà³à²…ಂಹರಿಕà³à²…ರಗೊನೀಸà³à²…ರೇಬಿಕà³à²…ಸà³à²¸à²¾à²®à³€à²¸à³à²…ವ" + - "ರಿಕà³à²…ಯà³à²®à²¾à²°à²¾à²…ಜೆರà³à²¬à³ˆà²œà²¾à²¨à²¿à²¬à²¶à³à²•à²¿à²°à³à²¬à³†à²²à²°à³‚ಸಿಯನà³à²¬à²²à³à²—ೇರಿಯನà³à²¬à²¿à²¸à³à²²à²¾à²®à²¾à²¬à²‚ಬಾರಾಬೆಂಗಾಲಿ" + - "ಟಿಬೇಟಿಯನà³à²¬à³à²°à³†à²Ÿà²¨à³à²¬à³‹à²¸à³à²¨à²¿à²¯à²¨à³à²•à³†à²Ÿà²²à²¾à²¨à³à²šà³†à²šà²¨à³à²•à²®à³Šà²°à³Šà²•à³‹à²°à³à²¸à²¿à²•à²¨à³à²•à³à²°à³€à²œà³†à²•à³à²šà²°à³à²šà³ ಸà³à²²à²¾à²µ" + - "ಿಕà³à²šà³à²µà²¾à²¶à³à²µà³†à²²à³à²¶à³à²¡à³à²¯à²¾à²¨à²¿à²¶à³à²œà²°à³à²®à²¨à³à²¦à²¿à²µà³†à²¹à²¿à²œà³‹à²‚ಗà³\u200cಖಾಈವà³à²—à³à²°à³€à²•à³à²‡à²‚ಗà³à²²à³€à²·à³à²Žà²¸à³à²ªà³†" + - "ರಾಂಟೊಸà³à²ªà³à²¯à²¾à²¨à²¿à²·à³à²Žà²¸à³à²Ÿà³Šà²¨à²¿à²¯à²¨à³à²¬à²¾à²¸à³à²•à³à²ªà²°à³à²¶à²¿à²¯à²¨à³à²«à³à²²à²¾à²¹à³à²«à²¿à²¨à³à²¨à²¿à²¶à³à²«à²¿à²œà²¿à²¯à²¨à³à²«à²°à³‹à²¸à²¿à²«à³à²°à³†à²‚" + - "ಚà³à²ªà²¶à³à²šà²¿à²® ಫà³à²°à²¿à²¸à²¿à²¯à²¨à³à²à²°à²¿à²·à³à²¸à³à²•à²¾à²Ÿà²¿à²¶à³ ಗà³à²¯à²¾à²²à²¿à²•à³à²—à³à²¯à²¾à²²à²¿à²¶à²¿à²¯à²¨à³à²—ೌರಾನಿಗà³à²œà²°à²¾à²¤à²¿à²®à³à²¯à²¾à²‚ಕ" + - "à³à²¸à³à²¹à³Œà²¸à²¾à²¹à³€à²¬à³à²°à³à²¯à³‚ಹಿಂದಿಹಿರಿ ಮೊಟà³à²•à³à²°à³Šà²¯à³‡à²¶à²¿à²¯à²¨à³à²¹à³ˆà²¤à²¿à²¯à²¨à³à²¹à²‚ಗೇರಿಯನà³à²…ರà³à²®à³‡à²¨à²¿à²¯à²¨à³à²¹à³†à²°à³†" + - "ರೊಇಂಟರà³\u200cಲಿಂಗà³à²µà²¾à²‡à²‚ಡೋನೇಶಿಯನà³à²‡à²‚ಟರà³à²²à²¿à²‚ಗà³à²‡à²—à³à²¬à³Šà²¸à²¿à²šà³à²…ನೠಯಿಇನà³à²ªà²¿à²¯à²¾à²•à³à²‡à²¡à³Šà²à²¸" + - "à³à²²à²¾à²‚ಡಿಕà³à²‡à²Ÿà²¾à²²à²¿à²¯à²¨à³à²‡à²¨à³à²•à³à²Ÿà²¿à²Ÿà³à²Ÿà³à²œà²¾à²ªà²¨à³€à²¸à³à²œà²¾à²µà²¾à²¨à³€à²¸à³à²œà²¾à²°à³à²œà²¿à²¯à²¨à³à²•à³Šà²‚ಗೊಕಿಕà³à²¯à³à²•à³à²µà²¾à²¨à³" + - "\u200cಯಾಮಾಕà²à²•à³à²•à²²à²¾à²²à³à²²à²¿à²¸à³à²Ÿà³à²–ಮೇರà³à²•à²¨à³à²¨à²¡à²•à³Šà²°à²¿à²¯à²¨à³à²•à²¨à³à²°à²¿à²•à²¾à²¶à³à²®à³€à²°à²¿à²•à³à²°à³à²¦à²¿à²·à³à²•à³‹à²®à²¿à²•à³‹à²°à³à²¨" + - "ಿಷà³à²•à²¿à²°à³à²—ಿಜà³à²²à³à²¯à²¾à²Ÿà²¿à²¨à³à²²à²•à³à²¸à²‚ಬರà³à²—à³à²—ಾಂಡಾಲಿಂಬರà³à²—ಿಶà³à²²à²¿à²‚ಗಾಲಲಾವೋಲಿಥà³à²µà³‡à²¨à²¿à²¯à²¨à³à²²à³‚ಬಾ-" + - "ಕಟಾಂಗಾಲಟà³à²µà²¿à²¯à²¨à³à²®à²²à²—ಾಸಿಮಾರà³à²¶à²²à³à²²à³€à²¸à³à²®à²¾à²µà³‹à²°à²¿à²®à³†à²¸à²¿à²¡à³‹à²¨à²¿à²¯à²¨à³à²®à²²à²¯à²¾à²³à²‚ಮಂಗೋಲಿಯನà³à²®à²°à²¾à² à²¿à²®à²²" + - "ಯà³à²®à²¾à²²à³à²Ÿà³€à²¸à³à²¬à²°à³à²®à³€à²¸à³à²¨à³Œà²°à³à²‰à²¤à³à²¤à²° ದೆಬೆಲೆನೇಪಾಳಿಡೋಂಗಾಡಚà³à²¨à²¾à²°à³à²µà³†à²œà²¿à²¯à²¨à³ ನೈನೊಸà³à²•à³à²¨à²¾à²°" + - "à³à²µà³†à²œà²¿à²¯à²¨à³ ಬೊಕà³à²®à²²à³à²¦à²•à³à²·à²¿à²£ ದೆಬೆಲೆನವಾಜೊನà³à²¯à²¾à²‚ಜಾಒಸಿಟನà³à²’ಜಿಬà³à²µà²¾à²“ರೊಮೋಒರಿಯಾಒಸà³à²¸à³†à²Ÿ" + - "ಿಕà³à²ªà²‚ಜಾಬಿಪಾಲಿಪೋಲಿಶà³à²ªà²¾à²·à³à²Ÿà³‹à²ªà³‹à²°à³à²šà³à²—ೀಸà³à²•à³à²µà³†à²šà³à²µà²¾à²°à³Šà²®à²¾à²¨à³à²·à³à²°à³à²‚ಡಿರೊಮೇನಿಯನà³à²°à²·à³à²¯à²¨" + - "à³à²•à³€à²¨à³à²¯à²¾à²°à³à²µà²¾à²‚ಡಾಸಂಸà³à²•à³ƒà²¤à²¸à²°à³à²¡à³€à²¨à²¿à²¯à²¨à³à²¸à²¿à²‚ಧಿಉತà³à²¤à²° ಸಾಮಿಸಾಂಗೋಸಿಂಹಳಸà³à²²à³‹à²µà²¾à²•à³à²¸à³à²²à³‹à²µà³‡" + - "ನಿಯನà³à²¸à²®à³‹à²µà²¨à³à²¶à³‹à²¨à²¾à²¸à³Šà²®à²¾à²²à²¿à²…ಲà³à²¬à³‡à²¨à²¿à²¯à²¨à³à²¸à²°à³à²¬à²¿à²¯à²¨à³à²¸à³à²µà²¾à²¤à²¿à²¦à²•à³à²·à²¿à²£ ಸೋಥೋಸà³à²‚ಡಾನೀಸà³à²¸à³à²µà³€à²¡" + - "ಿಷà³à²¸à³à²µà²¹à²¿à²²à²¿à²¤à²®à²¿à²³à³à²¤à³†à²²à³à²—à³à²¤à²¾à²œà²¿à²•à³à²¥à²¾à²¯à³à²Ÿà²¿à²—à³à²°à²¿à²¨à³à²¯à²¾à²Ÿà²°à³à²•à³\u200cಮೆನà³à²¸à³à²µà²¾à²¨à²¾à²Ÿà³‹à²‚ಗನà³à²Ÿà²°" + - "à³à²•à²¿à²¶à³à²¸à³‹à²‚ಗಾಟಾಟರà³à²¤à²¹à²¿à²¤à²¿à²¯à²¨à³à²‰à²¯à²¿à²˜à²°à³à²‰à²•à³à²°à³ˆà²¨à²¿à²¯à²¨à³à²‰à²°à³à²¦à³à²‰à²œà³à²¬à³‡à²•à³à²µà³†à²‚ಡಾವಿಯೇಟà³à²¨à²¾à²®à³€à²¸à³à²µà³‹" + - "ಲಾಪà³à²•à³à²µà²¾à²²à³‚ನà³à²µà³‹à²²à³‹à²«à³à²•à³à²¸à³‹à²¸à²¯à²¡à³à²¡à²¿à²¶à³à²¯à³Šà²°à³à²¬à²¾à²à³‚ವಾಂಗà³à²šà³ˆà²¨à³€à²¸à³à²œà³à²²à³à²…ಛಿನೀಸà³à²…ಕೋಲಿಅಡಂಗà³" + - "\u200cಮೆಅಡೈಘೆಆಫà³à²°à²¿à²¹à²¿à²²à²¿à²…ಘೆಮà³à²à²¨à³à²…ಕà³à²•à²¾à²¡à²¿à²¯à²¨à³à²…ಲೆಯà³à²Ÿà³à²¦à²•à³à²·à²¿à²£ ಅಲà³à²Ÿà²¾à²¯à³à²ªà³à²°à²¾à²šà³€à²¨ ಇಂಗ" + - "à³à²²à³€à²·à³à²†à²‚ಗಿಕಾಅರಾಮಿಕà³à²®à²ªà³à²šà³†à²…ರಪಾಹೋಅರಾವಾಕà³à²…ಸà³à²†à²¸à³à²Ÿà³à²°à²¿à²¯à²¨à³à²…ವಧಿಬಲೂಚಿಬಲಿನೀಸà³à²¬à²¸à²¾à²¬à³‡" + - "ಜಾಬೆಂಬಾಬೆನಭೋಜಪà³à²°à²¿à²¬à²¿à²•à³Šà²²à³à²¬à²¿à²¨à²¿à²¸à²¿à²•à³à²¸à²¿à²•à²¾à²¬à³à²°à²¾à²œà³à²¬à³‹à²¡à³Šà²¬à³à²°à²¿à²¯à²Ÿà³à²¬à³à²—ಿನೀಸà³à²¬à³à²²à²¿à²¨à³à²•à³à²¯à²¾" + - "ಡà³à²¡à³‹à²•à²¾à²°à²¿à²¬à³à²…ಟà³à²¸à²®à³à²¸à³†à²¬à³à²†à²¨à³‹à²šà²¿à²—ಾಚಿಬà³à²šà²¾à²šà²—ಟಾಯà³à²šà³‚ಕಿಸೆಮಾರಿಚಿನೂಕೠಜಾರà³à²—ೋನà³à²šà³‹à²•à³à²Ÿà²¾" + - "ವà³à²šà²¿à²ªà³†à²µà³à²¯à²¾à²¨à³à²šà³†à²°à³‹à²•à³€à²šà³€à²¯à³†à²¨à³à²¨à³‡à²¸à³Šà²°à²¾à²¨à²¿ ಕà³à²°à³à²¦à²¿à²·à³à²•à³Šà²ªà³à²Ÿà²¿à²•à³à²•à³à²°à²¿à²®à³€à²¯à²¨à³ ಟರà³à²•à²¿à²·à³à²•à²¶à³à²¬" + - "ಿಯನà³à²¡à²•à³‹à²Ÿà²¦à²°à³à²—à³à²µà²¾à²Ÿà³ˆà²Ÿà²¡à³†à²²à²¾à²µà³‡à²°à³à²¸à³à²²à³‡à²µà³à²¡à³‹à²—à³à²°à²¿à²¬à³à²¡à²¿à²‚ಕಾಜರà³à²®à²¾à²¡à³‹à²—à³à²°à²¿à²²à³‹à²µà²°à³ ಸೋರà³à²¬à²¿à²¯à²¨" + - "à³à²¡à³à²µà²¾à²²à²¾à²®à²§à³à²¯ ಡಚà³à²œà³Šà²²-ಫೊನà³à²¯à²¿à²¡à³à²¯à³‚ಲಾಎಂಬà³à²Žà²«à²¿à²•à³à²ªà³à²°à²¾à²šà³€à²¨ ಈಜಿಪà³à²Ÿà²¿à²¯à²¨à³à²Žà²•à²¾à²œà³à²•à³à²Žà²²à²¾à²®à³ˆ" + - "ಟà³à²®à²§à³à²¯ ಇಂಗà³à²²à³€à²·à³à²‡à²µà²¾à²‚ಡೋಫೆಂಗà³à²«à²¿à²²à²¿à²ªà²¿à²¨à³Šà²«à³‹à²¨à³à²®à²§à³à²¯ ಫà³à²°à³†à²‚ಚà³à²ªà³à²°à²¾à²šà³€à²¨ ಫà³à²°à³†à²‚ಚà³à²‰à²¤à³à²¤à²°" + - " ಫà³à²°à²¿à²¸à²¿à²¯à²¨à³à²ªà³‚ರà³à²µ ಫà³à²°à²¿à²¸à²¿à²¯à²¨à³à²«à³à²°à²¿à²¯à³à²²à²¿à²¯à²¨à³à²—ಗಗೌಜà³à²—ಾಯೋಗà³à²¬à²¾à²¯à²¾à²—à³€à²à³à²—ಿಲà³à²¬à²°à³à²Ÿà³€à²¸à³à²®à²§à³à²¯ " + - "ಹೈ ಜರà³à²®à²¨à³à²ªà³à²°à²¾à²šà³€à²¨ ಹೈ ಜರà³à²®à²¨à³à²—ೊಂಡಿಗೊರೊಂಟಾಲೋಗೋಥಿಕà³à²—à³à²°à³‡à²¬à³‹à²ªà³à²°à²¾à²šà³€à²¨ ಗà³à²°à³€à²•à³à²¸à³à²µà²¿" + - "ಸೠಜರà³à²®à²¨à³à²—à³à²¸à²¿à²—à³à²µà²¿à²šà³\u200cಇನà³à²¹à³ˆà²¡à²¾à²¹à²µà²¾à²¯à²¿à²¯à²¨à³à²¹à²¿à²²à²¿à²—ೇನನà³à²¹à²¿à²Ÿà³à²Ÿà²¿à²Ÿà³†à²®à³‹à²‚ಗà³à²…ಪà³à²ªà²°à³ ಸ" + - "ರà³à²¬à²¿à²¯à²¨à³à²¹à³‚ಪಾಇಬಾನà³à²‡à²²à³à²²à²¿à²•à³‹à²‡à²‚ಗà³à²·à³à²²à³Šà²œà³à²¬à²¾à²¨à³à²¨à³Šà²‚ಬಾಮà³à²¯à²•à²®à³†à²œà³‚ಡಿಯೋ-ಪರà³à²¶à²¿à²¯à²¨à³à²œà³‚ಡಿಯೋ-" + - "ಅರೇಬಿಕà³à²•à²¾à²°à²¾-ಕಲà³à²ªà²¾à²•à³à²•à²¬à³ˆà²²à³à²•à²šà²¿à²¨à³à²œà³à²œà³à²•à²‚ಬಾಕಾವಿಕಬರà³à²¡à²¿à²¯à²¨à³à²Ÿà³à²¯à²¾à²ªà³à²®à³à²¯à²¾à²•à³Šà²‚ಡà³à²•à²¬à³à²µà³†" + - "ರà³à²¡à²¿à²¯à²¨à³à²•à³‹à²°à³‹à²–ಾಸಿಖೋಟಾನೀಸà³à²•à³Šà²¯à³à²° ಚೀನಿಕಲೆಂಜಿನà³à²•à²¿à²‚ಬà³à²‚ಡà³à²•à³Šà²®à²¿-ಪರà³à²®à³à²¯à²•à³à²•à³Šà²‚ಕಣಿಕೊ" + - "ಸರಿಯನà³à²•à²ªà³†à²²à³à²²à³†à²•à²°à²šà²¯à³-ಬಲà³à²•à²¾à²°à³à²•à²°à³‡à²²à²¿à²¯à²¨à³à²•à³à²°à³à²–à³à²¶à²‚ಬಲಬಫಿಯಕà³à²®à³ˆà²•à³à²•à³à²Ÿà³‡à²¨à²¾à²¯à³à²•à²¾à²¡à²¿à²¨à³‹à²²à²¾" + - "ಂಗಿಲಹಂಡಾಲಂಬಾಲೆಜà³à²˜à²¿à²¯à²¨à³à²²à²•à³Šà²Ÿà²®à³Šà²‚ಗೋಲೋà²à²¿à²²à³à²¬-ಲà³à²²à²¾à²²à³‚ಯಿಸೆನೋಲà³à²‚ಡಾಲà³à²µà³‹à²²à³à²¶à²¾à²¯à³à²²à³à²¯à²¿à²¯" + - "ಮದà³à²°à³€à²¸à³à²®à²—ಾಹಿಮೈಥಿಲಿಮಕಾಸರà³à²®à²‚ಡಿಂಗೊಮಸಾಯà³à²®à³‹à²•à³à²·à²®à²‚ದಾರà³à²®à³†à²‚ಡೆಮೆರà³à²®à³Šà²°à²¿à²¸à²¨à³à²®à²§à³à²¯ à²à²°" + - "ಿಷà³à²®à³à²¯à²–à³à²µà²¾- ಮೀಟà³à²Ÿà³Šà²®à³†à²Ÿà²¾à²®à²¿à²•à³\u200cಮà³à²¯à²¾à²•à³à²®à²¿à²¨à²‚ಗà³\u200cಕಬಾವà³à²®à²‚ಚà³à²®à²£à²¿à²ªà³à²°à²¿à²®à³Šà²¹à²¾" + - "ವà³à²•à³à²®à³Šà²¸à³à²¸à²¿à²®à³à²‚ಡಂಗà³à²¬à²¹à³à²¸à²‚ಖà³à²¯à³†à²¯ ಭಾಷೆಗಳà³à²•à³à²°à³€à²•à³à²•à²¿à²°à²¾à²‚ಡೀಸà³à²®à²¾à²°à³à²µà²¾à²¡à²¿à²Žà²°à³\u200cà²à³à²¯" + - "ಾನಿಯಾಪೊಲಿಟನà³à²¨à²®à²²à³‹ ಜರà³à²®à²¨à³à²¨à³‡à²µà²¾à²°à³€à²¨à²¿à²¯à²¾à²¸à³à²¨à²¿à²¯à³à²µà²¨à³à²–à³à²µà²¾à²¸à²¿à²¯à³Šà²¨à³Šà²—ಾಯà³à²ªà³à²°à²¾à²šà³€à²¨ ನೋರà³à²¸à³" + - "ಎನà³\u200cಕೋಉತà³à²¤à²° ಸೋಥೋನೂಯರà³à²¶à²¾à²¸à³à²¤à³à²°à³€à²¯ ನೇವಾರಿನà³à²¯à²¾à²®à³\u200cವೆಂಜಿನà³à²¯à²¾à²¨à³" + - "\u200cಕೋಲೆನà³à²¯à³‹à²°à³‹à²œà³€à²®à²¾à²“ಸಾಜà³à²’ಟà³à²Ÿà³‹à²®à²¨à³ ತà³à²°à³à²•à²¿à²·à³à²ªà²‚ಗಾಸಿನನà³à²ªà²¹à³à²²à²µà²¿à²ªà²‚ಪಾಂಗಾಪಾಪಿಯಮೆಂ" + - "ಟೋಪಲà³à²†à²¨à³à²ªà³à²°à²¾à²šà³€à²¨ ಪರà³à²¶à²¿à²¯à²¨à³à²«à³€à²¨à²¿à²·à²¿à²¯à²¨à³à²ªà³‹à²¨à³\u200c\u200cಪಿಯನà³à²ªà³à²°à²¾à²šà³€à²¨ ಪà³à²°à³Šà²µà³†à²¨à³" + - "ಶಿಯಲà³à²•à²¿à²·à³†à²°à²¾à²œà²¾à²¸à³à²¥à²¾à²¨à²¿à²°à²¾à²ªà²¾à²¨à³à²¯à²¿à²°à²¾à²°à³‹à²Ÿà³Šà²‚ಗನà³à²°à³Šà²‚ಬೊರೋಮಾನಿಅರೋಮಾನಿಯನà³à²°à³à²µà²¸à²‚ಡಾವೇಯಾಕ" + - "à³à²Ÿà³à²¸à²®à²°à²¿à²Ÿà²¨à³ ಅರಾಮಿಕà³à²¸à²‚ಬà³à²°à³à²¸à²¸à²¾à²•à³à²¸à²‚ತಾಲಿಸಂಗà³à²¸à²¿à²¸à²¿à²²à²¿à²¯à²¨à³à²¸à³à²•à³‹à²Ÿà³à²¸à³à²¸à³†à²¨à²¸à³†à²²à³à²•à²ªà³à²•à³Šà²¯à³" + - "ರಬೊರೊ ಸೆನà³à²¨à²¿à²ªà³à²°à²¾à²šà³€à²¨ à²à²°à²¿à²·à³à²Ÿà²·à³†à²²à³\u200dಹಿಟà³à²¶à²¾à²¨à³à²¸à²¿à²¡à²¾à²®à³‹à²¦à²•à³à²·à²¿à²£ ಸಾಮಿಲೂಲೠಸಾಮಿ" + - "ಇನರಿ ಸಾಮಿಸà³à²•à³‹à²Ÿà³ ಸಾಮಿಸೋನಿಂಕೆಸೋಗà³à²¡à²¿à²à²¨à³à²¸à³à²°à²¾à²¨à²¨à³ ಟೋಂಗೋಸೇರೇರà³à²¸à³à²•à³à²®à²¾à²¸à³à²¸à³à²¸à³à²®à³‡à²°" + - "ಿಯನà³à²•à²¾à²‚ಗೊ ಸà³à²µà²¹à²¿à²²à²¿à²¶à²¾à²¸à³à²¤à³à²°à³€à²¯ ಸಿರಿಯಕà³à²¸à²¿à²°à²¿à²¯à²•à³à²Ÿà²¿à²®à³à²¨à³†à²Ÿà³†à²¸à³Šà²Ÿà³†à²°à³†à²¨à³‹à²Ÿà³‡à²Ÿà²®à³à²Ÿà³ˆà²—à³à²°à³†à²Ÿà²¿" + - "ವà³à²Ÿà³Šà²•à³†à²²à²¾à²µà³à²•à³à²²à²¿à²‚ಗನà³à²Ÿà³à²²à²¿à²‚ಗಿಟà³à²Ÿà²®à²¾à²·à³†à²•à³à²¨à³à²¯à²¾à²¸à²¾ ಟೋಂಗಾಟೋಕೠಪಿಸಿನà³à²¸à²¿à²‚ಶಿಯನà³à²¤à³à²‚ಬà³" + - "ಕಾಟà³à²µà²¾à²²à³à²Ÿà²¸à²µà²•à³à²Ÿà³à²µà²¿à²¨à²¿à²¯à²¨à³à²®à²§à³à²¯ ಅಟà³à²²à²¾à²¸à³ ಟಮಜೈಟà³à²‰à²¡à³\u200cಮà³à²°à³à²Ÿà³à²‰à²—ಾರಿಟಿಕà³à²‰à²‚ಬà³à²‚" + - "ಡà³à²°à³‚ಟà³à²µà²¾à²¯à²¿à²µà³‹à²Ÿà²¿à²•à³à²µà³à²‚ಜೊವಲಾಮೋವರಾಯà³à²µà²¾à²·à³‹à²•à²²à³\u200cಮೈಕà³à²¸à³Šà²—ಯಾಓಯಪೀಸೆà²à³‹à²ªà³Šà²Ÿà³†à²•à³à²¬à³à²²" + - "ಿಸà³\u200cಸಿಂಬಲà³à²¸à³à²à³†à²¨à²¾à²—ಾಸà³à²Ÿà³à²¯à²¾à²‚ಡರà³à²¡à³ ಮೊರೊಕà³à²•à²¨à³ ಟಮಜೈಟà³à²à³‚ನಿಯಾವà³à²¦à³‡ ಭಾಷಾಸಂಬ" + - "ಂಧಿ ವಿಷಯವಿಲà³à²²à²œà²¾à²à²¾à²†à²§à³à²¨à²¿à²• ಪà³à²°à²®à²¾à²£à²¿à²¤ ಅರೇಬಿಕà³à²†à²¸à³à²Ÿà³à²°à²¿à²¯à²¨à³ ಜರà³à²®à²¨à³à²¸à³à²µà²¿à²¸à³ ಹೈ ಜರà³" + - "ಮನà³à²†à²¸à³à²Ÿà³à²°à³‡à²²à²¿à²¯à²¨à³ ಇಂಗà³à²²à³€à²·à³à²•à³†à²¨à³†à²¡à²¿à²¯à²¨à³ ಇಂಗà³à²²à³€à²·à³à²¬à³à²°à²¿à²Ÿà²¿à²·à³ ಇಂಗà³à²²à³€à²·à³à²…ಮೆರಿಕನೠಇಂ" + - "ಗà³à²²à³€à²·à³à²²à³à²¯à²¾à²Ÿà²¿à²¨à³ ಅಮೇರಿಕನೠಸà³à²ªà³à²¯à²¾à²¨à²¿à²¶à³à²¯à³à²°à³‹à²ªà²¿à²¯à²¨à³ ಸà³à²ªà³à²¯à²¾à²¨à²¿à²·à³à²®à³†à²•à³à²¸à²¿à²•à²¨à³ ಸà³à²ªà³à²¯à²¾" + - "ನಿಷà³à²•à³†à²¨à³†à²¡à²¿à²¯à²¨à³ ಫà³à²°à³†à²‚ಚà³à²¸à³à²µà²¿à²¸à³ ಫà³à²°à³†à²‚ಚà³à²«à³à²²à³†à²®à²¿à²·à³à²¬à³à²°à³†à²œà²¿à²²à²¿à²¯à²¨à³ ಪೋರà³à²šà³à²—ೀಸà³à²¯à³‚ರೋಪ" + - "ಿಯನೠಪೋರà³à²šà³à²—ೀಸà³à²®à³Šà²²à³à²¡à³†à²µà²¿à²¯à²¨à³à²¸à²°à³à²¬à³‹-ಕà³à²°à³Šà²¯à³‡à²¶à²¿à²¯à²¨à³à²¸à²°à²³à³€à²•à³ƒà²¤ ಚೈನೀಸà³à²¸à²¾à²‚ಪà³à²°à²¦à²¾à²¯à²¿à²• ಚ" + - "ೈನೀಸà³" - -// Size: 1234 bytes, 605 elements -var knLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000f, 0x002d, 0x0045, 0x0066, 0x0075, 0x008a, 0x00a2, - 0x00b7, 0x00d2, 0x00e4, 0x00f9, 0x011a, 0x012f, 0x014d, 0x016b, - 0x0183, 0x0195, 0x01aa, 0x01c5, 0x01da, 0x01f5, 0x020a, 0x0219, - 0x0228, 0x0243, 0x024f, 0x025b, 0x0283, 0x0295, 0x02a7, 0x02bf, - 0x02d1, 0x02e3, 0x02fb, 0x0304, 0x0316, 0x032e, 0x034c, 0x036a, - 0x0388, 0x039a, 0x03b2, 0x03c4, 0x03dc, 0x03f1, 0x0400, 0x0415, - 0x0443, 0x0452, 0x0483, 0x04a4, 0x04b6, 0x04cb, 0x04e6, 0x04f2, - 0x050a, 0x0519, 0x0532, 0x0553, 0x0568, 0x0583, 0x05a1, 0x05b3, - // Entry 40 - 7F - 0x05da, 0x05fb, 0x0619, 0x0628, 0x0644, 0x065f, 0x0668, 0x0686, - 0x069e, 0x06bf, 0x06d4, 0x06ec, 0x0707, 0x0716, 0x0728, 0x0749, - 0x0755, 0x0776, 0x0785, 0x0794, 0x07a9, 0x07b8, 0x07d0, 0x07e8, - 0x07f4, 0x080c, 0x0824, 0x083c, 0x085a, 0x0869, 0x0887, 0x0899, - 0x08a5, 0x08c6, 0x08e5, 0x08fd, 0x090f, 0x0930, 0x0942, 0x0963, - 0x0975, 0x0990, 0x099f, 0x09ab, 0x09c3, 0x09d8, 0x09e4, 0x0a06, - 0x0a18, 0x0a27, 0x0a30, 0x0a6a, 0x0aa1, 0x0ac6, 0x0ad5, 0x0aea, - 0x0afc, 0x0b11, 0x0b20, 0x0b2f, 0x0b4a, 0x0b5c, 0x0b68, 0x0b7a, - // Entry 80 - BF - 0x0b8c, 0x0baa, 0x0bc2, 0x0bda, 0x0be9, 0x0c04, 0x0c16, 0x0c3d, - 0x0c52, 0x0c70, 0x0c7f, 0x0c9b, 0x0caa, 0x0cb9, 0x0cd1, 0x0cf2, - 0x0d04, 0x0d10, 0x0d22, 0x0d40, 0x0d58, 0x0d6a, 0x0d89, 0x0da4, - 0x0dbc, 0x0dd1, 0x0de0, 0x0df2, 0x0e04, 0x0e10, 0x0e2e, 0x0e4c, - 0x0e5e, 0x0e70, 0x0e85, 0x0e94, 0x0ea3, 0x0ebb, 0x0ecd, 0x0eeb, - 0x0efa, 0x0f0f, 0x0f1e, 0x0f42, 0x0f5a, 0x0f6c, 0x0f7e, 0x0f8d, - 0x0fa2, 0x0fb4, 0x0fc9, 0x0fdb, 0x0fe7, 0x0ffc, 0x100b, 0x1023, - 0x1032, 0x1032, 0x104d, 0x105c, 0x1065, 0x1083, 0x1083, 0x1098, - // Entry C0 - FF - 0x1098, 0x10c0, 0x10ee, 0x1100, 0x1115, 0x1124, 0x1124, 0x1136, - 0x1136, 0x114b, 0x114b, 0x114b, 0x1154, 0x1154, 0x1172, 0x1172, - 0x117e, 0x117e, 0x118d, 0x11a2, 0x11a2, 0x11ab, 0x11ab, 0x11ab, - 0x11ab, 0x11b7, 0x11c6, 0x11c6, 0x11cf, 0x11cf, 0x11cf, 0x11e4, - 0x11f6, 0x1202, 0x1202, 0x1202, 0x121a, 0x121a, 0x121a, 0x122c, - 0x122c, 0x1238, 0x1238, 0x124d, 0x1265, 0x1265, 0x1277, 0x1277, - 0x128f, 0x12a1, 0x12a1, 0x12b3, 0x12c8, 0x12d4, 0x12e6, 0x12f8, - 0x130a, 0x1316, 0x1341, 0x1359, 0x1377, 0x1389, 0x13a1, 0x13cc, - // Entry 100 - 13F - 0x13e4, 0x13e4, 0x1415, 0x142d, 0x1439, 0x144e, 0x1457, 0x146f, - 0x1481, 0x1499, 0x14a8, 0x14b7, 0x14c9, 0x14f4, 0x14f4, 0x1506, - 0x151c, 0x1538, 0x154a, 0x154a, 0x1556, 0x1565, 0x1565, 0x1599, - 0x15ae, 0x15c3, 0x15e8, 0x15e8, 0x15fa, 0x15fa, 0x1609, 0x1621, - 0x1621, 0x162d, 0x162d, 0x164f, 0x167a, 0x167a, 0x16a5, 0x16d0, - 0x16f1, 0x16f4, 0x1703, 0x1703, 0x170f, 0x1721, 0x1721, 0x172d, - 0x174e, 0x174e, 0x1774, 0x17a3, 0x17a3, 0x17b2, 0x17cd, 0x17df, - 0x17f1, 0x1819, 0x183e, 0x183e, 0x183e, 0x184a, 0x1868, 0x1874, - // Entry 140 - 17F - 0x1874, 0x188c, 0x188c, 0x18a7, 0x18bf, 0x18ce, 0x18f9, 0x18f9, - 0x1905, 0x1914, 0x1914, 0x1929, 0x193b, 0x193b, 0x193b, 0x1953, - 0x1962, 0x1974, 0x199f, 0x19c7, 0x19c7, 0x19e9, 0x19f8, 0x1a07, - 0x1a13, 0x1a1f, 0x1a2b, 0x1a46, 0x1a46, 0x1a58, 0x1a73, 0x1a97, - 0x1a97, 0x1aa3, 0x1aa3, 0x1aaf, 0x1ac7, 0x1ae3, 0x1ae3, 0x1ae3, - 0x1ae3, 0x1afb, 0x1b13, 0x1b38, 0x1b4a, 0x1b62, 0x1b77, 0x1b9c, - 0x1b9c, 0x1b9c, 0x1bb4, 0x1bc6, 0x1bd2, 0x1bde, 0x1bde, 0x1bf0, - 0x1c08, 0x1c1a, 0x1c29, 0x1c38, 0x1c44, 0x1c5f, 0x1c5f, 0x1c5f, - // Entry 180 - 1BF - 0x1c5f, 0x1c6b, 0x1c6b, 0x1c7a, 0x1c86, 0x1c86, 0x1c9c, 0x1cb4, - 0x1cc3, 0x1ccf, 0x1ce1, 0x1cf0, 0x1cf0, 0x1cf0, 0x1d05, 0x1d05, - 0x1d14, 0x1d26, 0x1d38, 0x1d4d, 0x1d5c, 0x1d5c, 0x1d6b, 0x1d7d, - 0x1d8c, 0x1d98, 0x1dad, 0x1dc9, 0x1df2, 0x1dfe, 0x1e1f, 0x1e43, - 0x1e4f, 0x1e64, 0x1e7c, 0x1e8e, 0x1e8e, 0x1ea3, 0x1ed7, 0x1ee9, - 0x1f04, 0x1f1c, 0x1f1c, 0x1f1c, 0x1f34, 0x1f34, 0x1f34, 0x1f55, - 0x1f5b, 0x1f74, 0x1f86, 0x1f98, 0x1fad, 0x1fad, 0x1fc5, 0x1fc5, - 0x1fd7, 0x1fff, 0x1fff, 0x2011, 0x202d, 0x203c, 0x206a, 0x208e, - // Entry 1C0 - 1FF - 0x20af, 0x20c1, 0x20cd, 0x20dc, 0x210d, 0x2128, 0x213a, 0x214f, - 0x216d, 0x217f, 0x217f, 0x217f, 0x217f, 0x21ad, 0x21ad, 0x21c8, - 0x21c8, 0x21c8, 0x21e9, 0x21e9, 0x2226, 0x2232, 0x2232, 0x2250, - 0x2268, 0x2286, 0x2286, 0x2286, 0x2295, 0x22a7, 0x22a7, 0x22a7, - 0x22a7, 0x22c5, 0x22ce, 0x22e0, 0x22f2, 0x231d, 0x232f, 0x233e, - 0x2350, 0x2350, 0x2350, 0x235c, 0x2377, 0x238f, 0x238f, 0x238f, - 0x2398, 0x2398, 0x23ad, 0x23db, 0x2400, 0x2400, 0x241e, 0x242a, - 0x242a, 0x243c, 0x243c, 0x243c, 0x245b, 0x2474, 0x248d, 0x24ac, - // Entry 200 - 23F - 0x24c1, 0x24dc, 0x2501, 0x2513, 0x2513, 0x2513, 0x2525, 0x2531, - 0x254c, 0x254c, 0x2571, 0x25a2, 0x25b7, 0x25b7, 0x25b7, 0x25c9, - 0x25d5, 0x25e7, 0x25f6, 0x2608, 0x2614, 0x262c, 0x262c, 0x2644, - 0x265f, 0x265f, 0x2674, 0x2696, 0x26b5, 0x26b5, 0x26b5, 0x26b5, - 0x26cd, 0x26cd, 0x26e2, 0x26f4, 0x2703, 0x271e, 0x2753, 0x2771, - 0x278c, 0x27a1, 0x27ad, 0x27b9, 0x27b9, 0x27b9, 0x27b9, 0x27b9, - 0x27cb, 0x27cb, 0x27da, 0x27da, 0x27e9, 0x27f8, 0x2804, 0x2804, - 0x2804, 0x281c, 0x281c, 0x2825, 0x282e, 0x283d, 0x283d, 0x283d, - // Entry 240 - 27F - 0x283d, 0x283d, 0x2855, 0x2882, 0x2882, 0x2894, 0x28e7, 0x28f3, - 0x2940, 0x294c, 0x298d, 0x29be, 0x29ea, 0x2a27, 0x2a5b, 0x2a8c, - 0x2abd, 0x2b0d, 0x2b47, 0x2b81, 0x2bb2, 0x2bda, 0x2bf2, 0x2c32, - 0x2c6c, 0x2c8d, 0x2cbe, 0x2ce6, 0x2d1a, -} - -// Size: 7179 bytes -var koLangStr string = "" + - "아파르어압카즈어아베스타어아프리칸스어아칸어암하ë¼ì–´ì•„ë¼ê³¤ì–´ì•„ëžì–´ì•„샘어아바릭어아ì´ë§ˆë¼ì–´ì•„제르바ì´ìž”어바슈키르어벨ë¼ë£¨ìŠ¤ì–´ë¶ˆê°€ë¦¬ì•„어비슬ë¼ë§ˆì–´" + - "밤바ë¼ì–´ë²µê³¨ì–´í‹°ë² íŠ¸ì–´ë¸Œë¥´íƒ€ë‰´ì–´ë³´ìŠ¤ë‹ˆì•„어카탈로니아어체첸어차모로어코르시카어í¬ë¦¬ì–´ì²´ì½”ì–´êµíšŒ 슬ë¼ë¸Œì–´ì¶”바시어웨ì¼ìŠ¤ì–´ë´ë§ˆí¬ì–´ë…ì¼ì–´ë””베히" + - "어종카어ì—웨어그리스어ì˜ì–´ì—스페란토어스페ì¸ì–´ì—스토니아어바스í¬ì–´íŽ˜ë¥´ì‹œì•„ì–´í’€ë¼ì–´í•€ëž€ë“œì–´í”¼ì§€ì–´íŽ˜ë¡œì–´í”„랑스어프리지아어아ì¼ëžœë“œì–´ìŠ¤ì½”틀랜드" + - " 게ì¼ì–´ê°ˆë¦¬ì‹œì•„ì–´ê³¼ë¼ë‹ˆì–´êµ¬ìžë¼íŠ¸ì–´ë§¹í¬ìŠ¤ì–´í•˜ìš°ì‚¬ì–´ížˆë¸Œë¦¬ì–´ížŒë””어히리 모투어í¬ë¡œì•„í‹°ì•„ì–´ì•„ì´í‹°ì–´í—가리어아르메니아어헤레로어ì¸í…Œë¥´ë§êµ¬ì•„ (êµ­" + - "제보조어협회)ì¸ë„네시아어ì¸í…Œë¥´ë§êµ¬ì—ì´ê·¸ë³´ì–´ì“°ì´¨ ì´ì–´ì´ëˆ„피아í¬ì–´ì´ë„ì–´ì•„ì´ìŠ¬ëž€ë“œì–´ì´íƒˆë¦¬ì•„ì–´ì´ëˆ…티투트어ì¼ë³¸ì–´ìžë°”어조지아어콩고어키쿠유" + - "어쿠안야마어카ìží어그린란드어캄보디아어칸나다어한국어칸누리어카슈미르어쿠르드어코미어콘월어키르기스어ë¼í‹´ì–´ë£©ì…ˆë¶€ë¥´í¬ì–´ê°„다어림버거어ë§ê°ˆë¼" + - "ì–´ë¼ì˜¤ì–´ë¦¬íˆ¬ì•„니아어루바-카탄가어ë¼íŠ¸ë¹„ì•„ì–´ë§ë¼ê°€ì‹œì–´ë§ˆì…œì œë„어마오리어마케ë„니아어ë§ë¼ì–„람어몽고어마ë¼í‹°ì–´ë§ë ˆì´ì–´ëª°íƒ€ì–´ë²„마어나우루어ë¶ë¶€" + - " ì€ë°ë²¨ë ˆì–´ë„¤íŒ”ì–´ëŠë™ê°€ì–´ë„¤ëœëž€ë“œì–´ë…¸ë¥´ì›¨ì´ì–´(니노르스í¬)노르웨ì´ì–´(ë³´í¬ë§)남부 ì€ë°ë²¨ë ˆì–´ë‚˜ë°”호어니안ìžì–´; 치츄어; 츄어오í¬ì–´ì˜¤ì§€ë¸Œì›¨" + - "ì´ì–´ì˜¤ë¡œëª¨ì–´ì˜¤ë¦¬ì•¼ì–´ì˜¤ì„¸íŠ¸ì–´íŽ€ìž¡ì–´íŒ”리어í´ëž€ë“œì–´íŒŒìŠˆí† ì–´í¬ë¥´íˆ¬ê°ˆì–´ì¼€ì¶”아어레토로만어룬디어루마니아어러시아어르완다어산스í¬ë¦¬íŠ¸ì–´ì‚¬ë¥´ë””니아어" + - "신디어ë¶ë¶€ 사미어산고어스리랑카어슬로바키아어슬로베니아어사모아어쇼나어소ë§ë¦¬ì•„어알바니아어세르비아어시스와티어소토어 (남부)순다어스웨ë´" + - "어스와ížë¦¬ì–´íƒ€ë°€ì–´í…”루구어타지í¬ì–´íƒœêµ­ì–´í‹°ê·¸ë¦¬ëƒì–´íˆ¬ë¥´í¬ë©˜ì–´ì„¸ì¸ ì™€ë‚˜ì–´í†µê°€ì–´í„°í‚¤ì–´ì´ê°€ì–´íƒ€íƒ€ë¥´ì–´íƒ€ížˆí‹°ì–´ìœ„구르어우í¬ë¼ì´ë‚˜ì–´ìš°ë¥´ë‘어우즈베í¬" + - "어벤다어베트남어볼ë¼í“Œí¬ì–´ì™ˆë¡ ì–´ì˜¬ë¡œí”„어코사어ì´ë””시어요루바어주앙어중국어줄루어아체어아콜리어아당메어아닥헤어튀니지 ì•„ëžì–´ì•„프리히리어아그" + - "í–„ì–´ì•„ì´ëˆ„어아카드어알류트어남부 알타ì´ì–´ê³ ëŒ€ ì˜ì–´ì•™ê°€ì–´ì•„람어아ë¼ìš°ì¹¸ì–´ì•„ë¼íŒŒí˜¸ì–´ì•Œì œë¦¬ ì•„ëžì–´ì•„ë¼ì™€í¬ì–´ëª¨ë¡œì½” ì•„ëžì–´ì´ì§‘트 ì•„ëžì–´ì•„수" + - "어아스투리아어아와히어남아제르바ì´ìž”어발루치어발리어바사어바문어고ë§ë¼ì–´ë² ìžì–´ë²°ë°”어베나어바푸트어호즈푸리어비콜어비니어콤어ì‹ì‹œì¹´ì–´ë¸Œë¼ì§€ì–´" + - "브ë¼í›„ì´ì–´ë³´ë„어아쿠즈어부리아타부기어불루어브린어메둠바어카ë„어카리브어카유가어아삼어세부아노어치가어치브차어차가타ì´ì–´ì¶”í¬ì–´ë§ˆë¦¬ì–´ì¹˜ëˆ„í¬ì–´" + - "와 ì˜ì–´ í”„ëž‘ìŠ¤ì–´ì˜ í˜¼ì„±ì–´ì´‰í† ì–´ì¹˜íŽ˜ìš°ì–€ì²´ë¡œí‚¤ì–´ìƒ¤ì´ì—”어소ë¼ë‹ˆ 쿠르드어콥트어í¬ë¦¬ë¯¼ 터키어; í¬ë¦¬ë¯¼ 타타르어카슈비아어다코타어다르그와" + - "어타ì´íƒ€ì–´ë¸ë¼ì›¨ì–´ì–´ìŠ¬ë¼ë¸Œì–´ë„그리브어딩카어ìžë¥´ë§ˆì–´ë„그리어저지 소르비아어드와ë¼ì–´ì¤‘세 네ëœëž€ë“œì–´ì¡¸ë¼ í¬ë‹ˆì–´ë“œìœ¨ë¼ì–´ë‹¤ìž¥ê°€ì–´ì— ë¶€ì–´ì´í”½ì–´" + - "ì´ì§‘트어 (고대)ì´ì¹´ì£½ì–´ì—˜ëžŒì–´ì˜ì–´, 중세ì´ì›ë„어팡그어필리핀어í°ì–´ì¤‘세 프랑스어고대 프랑스어ë¶ë¶€ 프리슬란드어ë™ë¶€ 프리슬란드어프리우" + - "리안어가어가가우스어가요어그바야어조로아스터 다리어게ì´ì¦ˆì–´í‚¤ë¦¬ë°”시어길ë¼í‚¤ì–´ì¤‘세 고지 ë…ì¼ì–´ê³ ëŒ€ 고지 ë…ì¼ì–´ê³ ì•„ 콘칸어곤디어고론탈로" + - "어고트어게르보어그리스어, 고대ë…ì¼ì–´(스위스)구시어그위친어하ì´ë‹¤ì–´í•˜ì™€ì´ì–´í”¼ì§€ 힌디어헤리가뇬어하타ì´íŠ¸ì–´ížˆëª¸ì–´ê³ ì§€ 소르비아어후파어ì´" + - "반어ì´ë¹„비오어ì´ë¡œì½”ì–´ì¸ê·€ì‹œì–´ë¡œë°˜ì–´ì‘곰바어마차메어유대-페르시아어유대-ì•„ë¼ë¹„ì•„ì–´ì¹´ë¼ì¹¼íŒŒí¬ì–´ì»¤ë°”ì¼ì–´ì¹´ì¹œì–´ê¹Œê¼¬í† ë„어캄바어카위어카바르디" + - "어카넴부어티ì–어마콘ë°ì–´í¬ë¦¬ì˜¬ì–´ì½”로어카시어호탄어코ì´ë¼ 친니어코와르어카코어칼렌진어킴분ë‘어코미페르먀í¬ì–´ì½”카니어코스ë¼ì´ì—”ì–´í¬íŽ ë ˆì–´ì¹´ë¼" + - "ì± ì´-발카르어카ë ë¦¬ì•¼ì–´ì¿ ë¥´í¬ì–´ìƒ´ë°œë¼ì–´ë°”피아어콜로그니안어쿠믹어쿠테네어ë¼ë””노어랑기어ë¼í•œë‹¤ì–´ëžŒë°”어레즈기안어ë§êµ¬ì•„ 프랑카 노바ë¼ì½”타어" + - "몽구어로지어루바-룰루아어루ì´ì„¸ë…¸ì–´ë£¬ë‹¤ì–´ë£¨ì˜¤ì–´ë£¨ìƒ¤ì´ì–´ë£¨ì•¼ì–´ë§ˆë‘ë¼ì–´ë§ˆíŒŒì–´ë§ˆê°€ížˆë§ˆì´í‹¸ë¦¬ë§ˆì¹´ì‚¬ì–´ë§Œë”©ê³ ì–´ë§ˆì‚¬ì´ì–´ë§ˆë°”어모í¬ìƒ¤ì–´ë§Œë‹¤ë¥´ì–´ë©˜ë°" + - "어메루어모리스얀어아ì¼ëžœë“œì–´, 중세마í¬í›„와-메토어메타어미í¬ë§¥ì–´ë¯¸ë‚­ì¹´ë°”우만주어마니푸리어모호í¬ì–´ëª¨ì‹œì–´ì„œë¶€ 마리어문당어다중 언어í¬ë¦¬í¬" + - "어미란ë°ì–´ë§ˆë¥´ì™€ë¦¬ì–´ë¯¸ì˜ˆë„¤ì–´ì—˜ì¦ˆì•¼ì–´ë§ˆìž”ë°ë¼ë‹ˆì–´ë‚˜í´ë¦¬ì–´ë‚˜ë§ˆì–´ì €ì§€ ë…ì¼ì–´ë„¤ì™€ë¥´ì–´ë‹ˆì•„스어니웨언어í¬ì™€ì‹œì˜¤ì–´ëŠê¸°ì— ë³¸ì–´ë…¸ê°€ì´ì–´ë…¸ë¥´ì›¨ì´, ê³ " + - "대ì‘코어소토어 (ë¶ë¶€)누ì—르어네와르어 (ê³ ì „)니암웨지어니안콜어뉴로어ëŠì§€ë§ˆì–´ì˜¤ì„¸ì´ì§€ì–´í„°í‚¤ì–´, 오스만íŒê°€ì‹œë‚œì–´íŒ”레비어팜팡가어파피아" + - "먼토어파ë¼ìš°ì•ˆì–´ê³ ëŒ€ 페르시아어페니키아어í°í‹±ì–´í¼íŽ˜ì´ì–´ê³ ëŒ€ 프로방스어키체어ë¼ìžìŠ¤íƒ„ì–´ë¼íŒŒë‰´ì´ë¼ë¡œí†µê°€ì–´ë¡¬ë³´ì–´ì§‘시어루신어아로마니아어르와" + - "어산다웨어야í트어사마리아 ì•„ëžì–´ì‚¼ë¶€ë£¨ì–´ì‚¬ì‚¬í¬ì–´ì‚°íƒˆë¦¬ì–´ëŠê°ë°”ì´ì–´ìƒêµ¬ì–´ì‹œì¹ ë¦¬ì•„어스코틀랜드어세네카어세나어셀쿠프어코ì´ì•¼ë³´ë¡œ 세니어아ì¼" + - "랜드, 고대타셸히트어샨어차디언 ì•„ë¼ë¹„아어시다모어남부 사미어룰레 사미어ì´ë‚˜ë¦¬ 사미어스콜트 사미어소닌케어소그디엔어스ë¼ë‚œ 통가어세레" + - "르어사호어수쿠마족어수수어수메르어코모로어콩고 스와ížë¦¬ì–´ì‹œë¦¬ì•„ì–´ (ê³ ì „)시리아어팀니어테조어테레노어테툼어티그레어티비어토켈ë¼ìš°ì œë„ì–´ì°¨" + - "후르어í´ë§ì˜¨ì–´í‹€ë§ê¹ƒì¡±ì–´íƒˆë¦¬ì‰¬ì–´íƒ€ë§ˆì„¹ì–´í†µê°€ì–´ (니아살랜드)í† í¬ í”¼ì‹ ì–´íƒ€ë¡œì½”ì–´íŠ¸ì‹¬ì‹œì•ˆì–´íˆ¼ë¶€ì¹´ì–´íˆ¬ë°œë£¨ì–´íƒ€ì‚¬ì™€í¬ì–´íˆ¬ë¹„니안어중앙모로코 " + - "타마지트어우드ë§íŠ¸ì–´ìœ ê°€ë¦¬í‹±ì–´ìœ¤ë²ˆë‘어어근바ì´ì–´ë³´í‹±ì–´ë¶„조어월저어와ë¼ëª¨ì–´ì™€ë¼ì´ì–´ì™€ì‡¼ì–´ì¹¼ë¯¸í¬ì–´ì†Œê°€ì–´ì•¼ì˜¤ì¡±ì–´ì–페세어양본어옘바어사í¬í…Œí¬ì–´" + - "블리스 심볼제나가어표준 모로코 타마제í¬ì–´ì£¼ë‹ˆì–´ì–¸ì–´ 관련 ë‚´ìš© ì—†ìŒìžìžì–´í˜„대 표준 ì•„ëžì–´ê³ ì§€ ë…ì¼ì–´ (스위스)ì˜ì–´(호주)ì˜ì–´ (" + - "ìºë‚˜ë‹¤)ì˜ì–´ (ì˜êµ­ì‹)중남미 스페ì¸ì–´ìœ ëŸ½ì‹ 스페ì¸ì–´í”„랑스어 (ìºë‚˜ë‹¤)프랑스어 (스위스)플ë¼ë§ì–´í¬ë¥´íˆ¬ê°ˆì–´ (브ë¼ì§ˆ)ìœ ëŸ½ì‹ í¬ë¥´íˆ¬" + - "갈어몰ë„바어세르비아-í¬ë¡œì•„티아어중국어(ê°„ì²´)중국어(번체)" - -// Size: 1234 bytes, 605 elements -var koLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000c, 0x0018, 0x0027, 0x0039, 0x0042, 0x004e, 0x005a, - 0x0063, 0x006c, 0x0078, 0x0087, 0x009c, 0x00ab, 0x00ba, 0x00c9, - 0x00d8, 0x00e4, 0x00ed, 0x00f9, 0x0108, 0x0117, 0x0129, 0x0132, - 0x013e, 0x014d, 0x0156, 0x015f, 0x0172, 0x017e, 0x018a, 0x0196, - 0x019f, 0x01ab, 0x01b4, 0x01bd, 0x01c9, 0x01cf, 0x01e1, 0x01ed, - 0x01ff, 0x020b, 0x021a, 0x0223, 0x022f, 0x0238, 0x0241, 0x024d, - 0x025c, 0x026b, 0x0284, 0x0293, 0x029f, 0x02ae, 0x02ba, 0x02c6, - 0x02d2, 0x02db, 0x02eb, 0x02fd, 0x0309, 0x0315, 0x0327, 0x0333, - // Entry 40 - 7F - 0x035d, 0x036f, 0x0381, 0x038d, 0x039a, 0x03ac, 0x03b5, 0x03c7, - 0x03d6, 0x03e8, 0x03f1, 0x03fa, 0x0406, 0x040f, 0x041b, 0x042a, - 0x0436, 0x0445, 0x0454, 0x0460, 0x0469, 0x0475, 0x0484, 0x0490, - 0x0499, 0x04a2, 0x04b1, 0x04ba, 0x04cc, 0x04d5, 0x04e1, 0x04ed, - 0x04f6, 0x0508, 0x051b, 0x052a, 0x0539, 0x0548, 0x0554, 0x0566, - 0x0575, 0x057e, 0x058a, 0x0596, 0x059f, 0x05a8, 0x05b4, 0x05ca, - 0x05d3, 0x05df, 0x05ee, 0x060e, 0x0628, 0x063e, 0x064a, 0x0669, - 0x0672, 0x0684, 0x0690, 0x069c, 0x06a8, 0x06b1, 0x06ba, 0x06c6, - // Entry 80 - BF - 0x06d2, 0x06e1, 0x06ed, 0x06fc, 0x0705, 0x0714, 0x0720, 0x072c, - 0x073e, 0x0750, 0x0759, 0x0769, 0x0772, 0x0781, 0x0793, 0x07a5, - 0x07b1, 0x07ba, 0x07c9, 0x07d8, 0x07e7, 0x07f6, 0x0808, 0x0811, - 0x081d, 0x082c, 0x0835, 0x0841, 0x084d, 0x0856, 0x0865, 0x0874, - 0x0883, 0x088c, 0x0895, 0x089e, 0x08aa, 0x08b6, 0x08c2, 0x08d4, - 0x08e0, 0x08ef, 0x08f8, 0x0904, 0x0913, 0x091c, 0x0928, 0x0931, - 0x093d, 0x0949, 0x0952, 0x095b, 0x0964, 0x096d, 0x0979, 0x0985, - 0x0991, 0x09a4, 0x09b6, 0x09c2, 0x09ce, 0x09da, 0x09da, 0x09e6, - // Entry C0 - FF - 0x09e6, 0x09f9, 0x0a06, 0x0a0f, 0x0a18, 0x0a27, 0x0a27, 0x0a36, - 0x0a49, 0x0a58, 0x0a6b, 0x0a7e, 0x0a87, 0x0a87, 0x0a99, 0x0a99, - 0x0aa5, 0x0abd, 0x0ac9, 0x0ad2, 0x0ad2, 0x0adb, 0x0ae4, 0x0ae4, - 0x0af0, 0x0af9, 0x0b02, 0x0b02, 0x0b0b, 0x0b17, 0x0b17, 0x0b26, - 0x0b2f, 0x0b38, 0x0b38, 0x0b3e, 0x0b4a, 0x0b4a, 0x0b4a, 0x0b56, - 0x0b65, 0x0b6e, 0x0b7a, 0x0b86, 0x0b8f, 0x0b98, 0x0ba1, 0x0bad, - 0x0bb6, 0x0bc2, 0x0bce, 0x0bd7, 0x0be6, 0x0bef, 0x0bfb, 0x0c0a, - 0x0c13, 0x0c1c, 0x0c4c, 0x0c55, 0x0c61, 0x0c6d, 0x0c79, 0x0c8f, - // Entry 100 - 13F - 0x0c98, 0x0c98, 0x0cc3, 0x0cd2, 0x0cde, 0x0ced, 0x0cf9, 0x0d08, - 0x0d14, 0x0d23, 0x0d2c, 0x0d38, 0x0d44, 0x0d5a, 0x0d5a, 0x0d66, - 0x0d7c, 0x0d8c, 0x0d98, 0x0da4, 0x0dad, 0x0db6, 0x0db6, 0x0dcb, - 0x0dd7, 0x0de0, 0x0dee, 0x0dee, 0x0dfa, 0x0dfa, 0x0e03, 0x0e0f, - 0x0e0f, 0x0e15, 0x0e15, 0x0e28, 0x0e3b, 0x0e3b, 0x0e54, 0x0e6d, - 0x0e7f, 0x0e85, 0x0e94, 0x0e94, 0x0e9d, 0x0ea9, 0x0ec2, 0x0ece, - 0x0edd, 0x0ee9, 0x0f00, 0x0f17, 0x0f27, 0x0f30, 0x0f3f, 0x0f48, - 0x0f54, 0x0f68, 0x0f7c, 0x0f7c, 0x0f7c, 0x0f85, 0x0f91, 0x0f9d, - // Entry 140 - 17F - 0x0f9d, 0x0fa9, 0x0fb9, 0x0fc8, 0x0fd7, 0x0fe0, 0x0ff6, 0x0ff6, - 0x0fff, 0x1008, 0x1017, 0x1023, 0x102f, 0x102f, 0x102f, 0x1038, - 0x1044, 0x1050, 0x1066, 0x107c, 0x107c, 0x108e, 0x109a, 0x10a3, - 0x10b2, 0x10bb, 0x10c4, 0x10d3, 0x10df, 0x10e8, 0x10f4, 0x1100, - 0x1100, 0x1109, 0x1109, 0x1112, 0x111b, 0x112e, 0x113a, 0x113a, - 0x1143, 0x114f, 0x115b, 0x1170, 0x117c, 0x118e, 0x119a, 0x11b3, - 0x11b3, 0x11b3, 0x11c2, 0x11ce, 0x11da, 0x11e6, 0x11f8, 0x1201, - 0x120d, 0x1219, 0x1222, 0x122e, 0x1237, 0x1246, 0x1260, 0x1260, - // Entry 180 - 1BF - 0x1260, 0x126c, 0x126c, 0x1275, 0x127e, 0x127e, 0x1291, 0x12a0, - 0x12a9, 0x12b2, 0x12be, 0x12c7, 0x12c7, 0x12c7, 0x12d3, 0x12dc, - 0x12e5, 0x12f1, 0x12fd, 0x1309, 0x1315, 0x131e, 0x132a, 0x1336, - 0x133f, 0x1348, 0x1357, 0x136e, 0x1384, 0x138d, 0x1399, 0x13a8, - 0x13b1, 0x13c0, 0x13cc, 0x13d5, 0x13e5, 0x13ee, 0x13fb, 0x1407, - 0x1413, 0x1422, 0x1422, 0x142e, 0x143a, 0x144c, 0x144c, 0x1458, - 0x1461, 0x1471, 0x147d, 0x1489, 0x1495, 0x1495, 0x14a4, 0x14b3, - 0x14bf, 0x14d3, 0x14d3, 0x14dc, 0x14ee, 0x14fa, 0x150f, 0x151e, - // Entry 1C0 - 1FF - 0x152a, 0x1533, 0x153f, 0x154e, 0x1562, 0x1571, 0x157d, 0x1589, - 0x159b, 0x15aa, 0x15aa, 0x15aa, 0x15aa, 0x15c0, 0x15c0, 0x15cf, - 0x15cf, 0x15d8, 0x15e4, 0x15e4, 0x15fa, 0x1603, 0x1603, 0x1612, - 0x161e, 0x162d, 0x162d, 0x162d, 0x1636, 0x163f, 0x163f, 0x1648, - 0x1648, 0x165a, 0x1663, 0x166f, 0x167b, 0x1691, 0x169d, 0x16a9, - 0x16b5, 0x16b5, 0x16c4, 0x16cd, 0x16dc, 0x16ee, 0x16ee, 0x16fa, - 0x1703, 0x1703, 0x170f, 0x1728, 0x173c, 0x173c, 0x174b, 0x1751, - 0x176a, 0x1776, 0x1776, 0x1776, 0x1786, 0x1796, 0x17a9, 0x17bc, - // Entry 200 - 23F - 0x17c8, 0x17d7, 0x17ea, 0x17f6, 0x17ff, 0x17ff, 0x180e, 0x1817, - 0x1823, 0x182f, 0x1845, 0x185a, 0x1866, 0x1866, 0x1866, 0x186f, - 0x1878, 0x1884, 0x188d, 0x1899, 0x18a2, 0x18b7, 0x18c3, 0x18cf, - 0x18de, 0x18ea, 0x18f6, 0x1911, 0x1921, 0x1921, 0x192d, 0x192d, - 0x193c, 0x193c, 0x1948, 0x1954, 0x1963, 0x1972, 0x1991, 0x19a0, - 0x19af, 0x19bb, 0x19c1, 0x19ca, 0x19ca, 0x19ca, 0x19ca, 0x19ca, - 0x19d3, 0x19d3, 0x19dc, 0x19e5, 0x19f1, 0x19fd, 0x1a06, 0x1a06, - 0x1a06, 0x1a12, 0x1a12, 0x1a1b, 0x1a27, 0x1a33, 0x1a3c, 0x1a45, - // Entry 240 - 27F - 0x1a45, 0x1a45, 0x1a54, 0x1a64, 0x1a64, 0x1a70, 0x1a90, 0x1a99, - 0x1ab4, 0x1abd, 0x1ad4, 0x1ad4, 0x1af0, 0x1afe, 0x1b10, 0x1b22, - 0x1b22, 0x1b38, 0x1b4e, 0x1b4e, 0x1b66, 0x1b7e, 0x1b8a, 0x1ba5, - 0x1bbe, 0x1bca, 0x1be9, 0x1bfa, 0x1c0b, -} - -// Size: 3747 bytes -var kyLangStr string = "" + - "абхазчаафрикаанчааканчаамхарчаарабчааÑÑамчаазербайжанчабашкырчабеларуÑча" + - "болгарчабамбарадабангладешчетибетчебретончобоÑнийчекаталанчакорÑиканчач" + - "ехчеуелшчедатчанемиÑчежонгучаÑбечегрекчеанглиÑчеÑÑперантоиÑпанчаÑÑтончо" + - "баÑкчафарÑычафинчефижичефароÑчефранцузчабатыш фризчеирландчагалиÑиÑчагу" + - "арашгужаратчаманкÑычахауÑачаивриттехиндичехорватчагаитичемажарчаармÑнча" + - "индонезчеигбочоноÑучаиÑландчаиталиÑнчаинуктитуттаÑпончожаванизчегрузинч" + - "екикуйичеказакчакалаалиÑутчакмерчеканнадачакорейчекашмирчекурдчакорнишч" + - "екыргызчалатынчалюкÑембургчагандачалингалачалаочолитовчолуба-катангачал" + - "атышчамалагаÑчамаоричемакедончомалайаламчамоңголчомаратичемалайчамалтиз" + - "чебурмачатүндүк ндыбелченепалчаголландчанорвежче (ÐинорÑк)норвежче (Бук" + - "мал)оромочоориÑчапунжабичеполÑкчапашточопортугалчакечуачароманшчарундич" + - "ерумынчаоруÑчаруандачаÑанÑкритчеÑиндхичетүндүк ÑамичеÑангочоÑингалачаÑл" + - "овакчаÑловенчешоначаÑомаличеалбанчаÑербчеÑеÑотоÑунданчашведчеÑуахиличет" + - "амилчетелугучатажикчетайчатигриниачатүркмөнчөтонгачатүркчөтатарчауйгурч" + - "аукраинчеурдучаөзбекчевьетнамчауолофчокоÑачаидишчейорубачакытайчазулуча" + - "агемчемапучедеаÑучабембачабеначабододочигачачерокичеÑорани курдтаитачаз" + - "амрачатөмөнкү Ñорбианчадуалачажола-фоничеÑмбучафилипиногагаузчанемиÑче " + - "(ШвейцариÑ)гуÑичегавайчажогорку Ñорбианчангомбачамачамечекабылчакамбачам" + - "акондечекабувердичекойра чиничекаленжичекоми-пермÑкчаконканичешамабалач" + - "абафиÑчалангичелакотачалуочолухиÑчамаÑайчамеручамориÑианчамакуачаметөчө" + - "мохаукчамундангчанамачакваÑиочонкочонуерченыйанколчокичечеромбочоруачаÑ" + - "амбуручаÑангучаÑеначакойраборо Ñенничеташелитчетүштүк Ñаамичелөлө Ñаами" + - "чеинари ÑаамичеÑколт Ñаамичеконго ÑуахаличетеÑочоклингончотаÑабакчаборб" + - "ордук ÐÑ‚Ð»Ð°Ñ Ñ‚Ð°Ð¼Ð°Ð·Ð¸Ñ‚Ñ‡ÐµÐ±ÐµÐ»Ð³Ð¸Ñиз тилдевайичевунжочоÑогачамарокко тамазигт " + - "адабий тилиндетилдик мазмун жоказыркы адабий араб тилиндежогорку немиÑч" + - "е (ШвейцариÑ)иÑпанча (Европа)фламандчапортугалча (Европа)молдованчаÑерб" + - "-хорваткытайча (жөнөкөйлөштүрүлгөн)кытайча (Ñалттуу)" - -// Size: 1234 bytes, 605 elements -var kyLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x000e, 0x000e, 0x0022, 0x002e, 0x003c, 0x003c, - 0x0048, 0x0056, 0x0056, 0x0056, 0x006e, 0x007e, 0x0090, 0x00a0, - 0x00a0, 0x00b2, 0x00c8, 0x00d6, 0x00e6, 0x00f6, 0x0108, 0x0108, - 0x0108, 0x011c, 0x011c, 0x0126, 0x0126, 0x0126, 0x0132, 0x013c, - 0x014a, 0x014a, 0x0158, 0x0162, 0x016e, 0x017e, 0x0190, 0x019e, - 0x01ac, 0x01b8, 0x01c6, 0x01c6, 0x01d0, 0x01dc, 0x01ea, 0x01fc, - 0x0213, 0x0223, 0x0223, 0x0235, 0x0241, 0x0253, 0x0263, 0x0271, - 0x027f, 0x028d, 0x028d, 0x029d, 0x02ab, 0x02b9, 0x02c7, 0x02c7, - // Entry 40 - 7F - 0x02c7, 0x02d9, 0x02d9, 0x02e5, 0x02f1, 0x02f1, 0x02f1, 0x0301, - 0x0313, 0x0329, 0x0335, 0x0347, 0x0357, 0x0357, 0x0367, 0x0367, - 0x0375, 0x038d, 0x0399, 0x03ab, 0x03b9, 0x03b9, 0x03c9, 0x03d5, - 0x03d5, 0x03e5, 0x03f5, 0x0403, 0x041b, 0x0429, 0x0429, 0x043b, - 0x0445, 0x0453, 0x046e, 0x047c, 0x048e, 0x048e, 0x049c, 0x04ae, - 0x04c4, 0x04d4, 0x04e4, 0x04f2, 0x0502, 0x0510, 0x0510, 0x052d, - 0x053b, 0x053b, 0x054d, 0x056e, 0x058d, 0x058d, 0x058d, 0x058d, - 0x058d, 0x058d, 0x059b, 0x05a7, 0x05a7, 0x05b9, 0x05b9, 0x05c7, - // Entry 80 - BF - 0x05d5, 0x05e9, 0x05f7, 0x0607, 0x0615, 0x0623, 0x062f, 0x063f, - 0x0653, 0x0653, 0x0663, 0x067c, 0x068a, 0x069c, 0x06ac, 0x06bc, - 0x06bc, 0x06c8, 0x06d8, 0x06e6, 0x06f2, 0x06f2, 0x06fe, 0x070e, - 0x071a, 0x072c, 0x073a, 0x074a, 0x0758, 0x0762, 0x0776, 0x0788, - 0x0788, 0x0796, 0x07a2, 0x07a2, 0x07b0, 0x07b0, 0x07be, 0x07ce, - 0x07da, 0x07e8, 0x07e8, 0x07fa, 0x07fa, 0x07fa, 0x0808, 0x0814, - 0x0820, 0x0830, 0x0830, 0x083e, 0x084a, 0x084a, 0x084a, 0x084a, - 0x084a, 0x084a, 0x084a, 0x0856, 0x0856, 0x0856, 0x0856, 0x0856, - // Entry C0 - FF - 0x0856, 0x0856, 0x0856, 0x0856, 0x0856, 0x0866, 0x0866, 0x0866, - 0x0866, 0x0866, 0x0866, 0x0866, 0x0870, 0x0870, 0x0870, 0x0870, - 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, - 0x0870, 0x0870, 0x087e, 0x087e, 0x088a, 0x088a, 0x088a, 0x088a, - 0x088a, 0x088a, 0x088a, 0x088a, 0x088a, 0x088a, 0x088a, 0x088a, - 0x088a, 0x0896, 0x0896, 0x0896, 0x0896, 0x0896, 0x0896, 0x0896, - 0x0896, 0x0896, 0x0896, 0x0896, 0x0896, 0x08a2, 0x08a2, 0x08a2, - 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08b2, 0x08b2, 0x08c7, - // Entry 100 - 13F - 0x08c7, 0x08c7, 0x08c7, 0x08c7, 0x08c7, 0x08c7, 0x08d5, 0x08d5, - 0x08d5, 0x08d5, 0x08d5, 0x08e3, 0x08e3, 0x0904, 0x0904, 0x0912, - 0x0912, 0x0927, 0x0927, 0x0927, 0x0933, 0x0933, 0x0933, 0x0933, - 0x0933, 0x0933, 0x0933, 0x0933, 0x0933, 0x0933, 0x0933, 0x0943, - 0x0943, 0x0943, 0x0943, 0x0943, 0x0943, 0x0943, 0x0943, 0x0943, - 0x0943, 0x0943, 0x0953, 0x0953, 0x0953, 0x0953, 0x0953, 0x0953, - 0x0953, 0x0953, 0x0953, 0x0953, 0x0953, 0x0953, 0x0953, 0x0953, - 0x0953, 0x0953, 0x0976, 0x0976, 0x0976, 0x0982, 0x0982, 0x0982, - // Entry 140 - 17F - 0x0982, 0x0990, 0x0990, 0x0990, 0x0990, 0x0990, 0x09b1, 0x09b1, - 0x09b1, 0x09b1, 0x09b1, 0x09b1, 0x09b1, 0x09b1, 0x09b1, 0x09b1, - 0x09c1, 0x09d1, 0x09d1, 0x09d1, 0x09d1, 0x09d1, 0x09df, 0x09df, - 0x09df, 0x09ed, 0x09ed, 0x09ed, 0x09ed, 0x09ed, 0x09ff, 0x0a15, - 0x0a15, 0x0a15, 0x0a15, 0x0a15, 0x0a15, 0x0a2c, 0x0a2c, 0x0a2c, - 0x0a2c, 0x0a3e, 0x0a3e, 0x0a57, 0x0a69, 0x0a69, 0x0a69, 0x0a69, - 0x0a69, 0x0a69, 0x0a69, 0x0a69, 0x0a7d, 0x0a8b, 0x0a8b, 0x0a8b, - 0x0a8b, 0x0a8b, 0x0a99, 0x0a99, 0x0a99, 0x0a99, 0x0a99, 0x0a99, - // Entry 180 - 1BF - 0x0a99, 0x0aa9, 0x0aa9, 0x0aa9, 0x0aa9, 0x0aa9, 0x0aa9, 0x0aa9, - 0x0aa9, 0x0ab3, 0x0ab3, 0x0ac1, 0x0ac1, 0x0ac1, 0x0ac1, 0x0ac1, - 0x0ac1, 0x0ac1, 0x0ac1, 0x0ac1, 0x0acf, 0x0acf, 0x0acf, 0x0acf, - 0x0acf, 0x0adb, 0x0aef, 0x0aef, 0x0afd, 0x0b09, 0x0b09, 0x0b09, - 0x0b09, 0x0b09, 0x0b19, 0x0b19, 0x0b19, 0x0b2b, 0x0b2b, 0x0b2b, - 0x0b2b, 0x0b2b, 0x0b2b, 0x0b2b, 0x0b2b, 0x0b2b, 0x0b2b, 0x0b2b, - 0x0b37, 0x0b37, 0x0b37, 0x0b37, 0x0b37, 0x0b37, 0x0b47, 0x0b47, - 0x0b47, 0x0b47, 0x0b47, 0x0b51, 0x0b51, 0x0b5d, 0x0b5d, 0x0b5d, - // Entry 1C0 - 1FF - 0x0b71, 0x0b71, 0x0b71, 0x0b71, 0x0b71, 0x0b71, 0x0b71, 0x0b71, - 0x0b71, 0x0b71, 0x0b71, 0x0b71, 0x0b71, 0x0b71, 0x0b71, 0x0b71, - 0x0b71, 0x0b71, 0x0b71, 0x0b71, 0x0b71, 0x0b7d, 0x0b7d, 0x0b7d, - 0x0b7d, 0x0b7d, 0x0b7d, 0x0b7d, 0x0b8b, 0x0b8b, 0x0b8b, 0x0b8b, - 0x0b8b, 0x0b8b, 0x0b95, 0x0b95, 0x0b95, 0x0b95, 0x0ba7, 0x0ba7, - 0x0ba7, 0x0ba7, 0x0ba7, 0x0bb5, 0x0bb5, 0x0bb5, 0x0bb5, 0x0bb5, - 0x0bc1, 0x0bc1, 0x0bc1, 0x0be2, 0x0be2, 0x0be2, 0x0bf4, 0x0bf4, - 0x0bf4, 0x0bf4, 0x0bf4, 0x0bf4, 0x0c0f, 0x0c26, 0x0c3f, 0x0c58, - // Entry 200 - 23F - 0x0c58, 0x0c58, 0x0c58, 0x0c58, 0x0c58, 0x0c58, 0x0c58, 0x0c58, - 0x0c58, 0x0c58, 0x0c75, 0x0c75, 0x0c75, 0x0c75, 0x0c75, 0x0c75, - 0x0c81, 0x0c81, 0x0c81, 0x0c81, 0x0c81, 0x0c81, 0x0c81, 0x0c93, - 0x0c93, 0x0c93, 0x0c93, 0x0c93, 0x0c93, 0x0c93, 0x0c93, 0x0c93, - 0x0c93, 0x0c93, 0x0c93, 0x0c93, 0x0ca5, 0x0ca5, 0x0cd5, 0x0cd5, - 0x0cd5, 0x0cd5, 0x0cf0, 0x0cfc, 0x0cfc, 0x0cfc, 0x0cfc, 0x0cfc, - 0x0cfc, 0x0cfc, 0x0d0a, 0x0d0a, 0x0d0a, 0x0d0a, 0x0d0a, 0x0d0a, - 0x0d0a, 0x0d0a, 0x0d0a, 0x0d16, 0x0d16, 0x0d16, 0x0d16, 0x0d16, - // Entry 240 - 27F - 0x0d16, 0x0d16, 0x0d16, 0x0d16, 0x0d16, 0x0d16, 0x0d51, 0x0d51, - 0x0d71, 0x0d71, 0x0da2, 0x0da2, 0x0dd4, 0x0dd4, 0x0dd4, 0x0dd4, - 0x0dd4, 0x0dd4, 0x0df1, 0x0df1, 0x0df1, 0x0df1, 0x0e03, 0x0e03, - 0x0e26, 0x0e3a, 0x0e4f, 0x0e84, 0x0ea3, -} - -// Size: 10635 bytes -var loLangStr string = "" + - "ອະຟາà»àº­àºšàº„າຊຽນອາເວັສà»àº•àº™àº­àº²àºŸàº£àº´àºàº²àº™àº­àº²àºàº²àº™àº­àº³àº®àº²àº£àº´àºàº­àº²àº£àº²à»‚àºà»€àº™àº±àº”ອາຣັບອັສຊາມີສອາວາຣິàºàº­" + - "າàºàº¡àº²àº¥àº²àº­àº²à»€àºŠàºµà»„ບຈານິບາຣàºàºµà»€àºšàº¥àº²àº£àº±àºªàºŠàº½àº™àºšàº±àº‡àºàº²àº£àº½àº™àºšàº´àºªàº¥àº°àº¡àº²àºšàº²àº¡àºšàº²àº£àº²à»€àºšàº±àº‡àºàº²àº¥àºµàº—ິເບທັນເ" + - "ບຣຕັນບອສນຽນຄາຕາລານຊີເຄນຊາມà»à»‚ຣຄà»àºŠàº´àºàº²àº„ີເຊàºà»‚ບດສລາວິàºàºŠàº¹àº§àº²àºŠà»€àº§àº§à»àº”ນິຊເຢàºàº¥àº°àº¡àº±àº™" + - "ດີວີຮີດີຊອງຄາອິວາàºàº£àºµàºàº­àº±àº‡àºàº´àº”ເອສເປີຣັນໂຕສະà»àº›àº™àº™àº´àºŠà»€àº­àºªà»‚ຕນຽນບັສàºàºµà»€àº›àºµàºŠàº½àº™àºŸàº¹àº¥àº²àºŸ" + - "ິນນິຊຟິຈຽນຟາໂຣສàºàº£àº±à»ˆàº‡à»€àº§àºªà»€àº—ີນ ຟຣິຊຽນໄອຣິສສະàºàº±àº­àº”ເàºàº¥àº´àºàºàº²àº¥àº´àºŠàº½àº™àºàº»àº§àº£àº²àº™àºµàºàº¹àºˆàº²àº£àº²" + - "ຕິà»àº¡àº‡àºŠà»Œà»€àº®àº»àº²àºŠàº²àº®àºµàºšàº£àº´àº§àº®àº´àº™àº”ິຮິຣິໂມຕູໂຄຣເອທຽນໄຮຕຽນຮັງàºàº²àº£àº½àº™àº­àº²à»€àº¡àº™àº½àº™à»€àº®àº´àº®àº´à»‚ຣອິນ" + - "ເຕີລິງລົວອິນໂດເນຊຽນອິນເຕີລິງàºàº£àºµàº­àº´àºà»‚ບເຊສວàºàº¢àºµàº­àº´àº™àº™àº¹àº›àº½àºàº­àºµà»‚ດໄອສà»àº¥àº™àº”ິàºàº­àº´àº•àº²àº¥àº½" + - "ນອິນນຸàºàº•àº´àº•àº±àº”àºàºµà»ˆàº›àº¸à»ˆàº™àºˆàº²à»àº§àº™àºµàºªàºˆà»àºˆàº½àº™àº„ອງໂàºàº„ິຄູຢຸàºàº§àº™àºàº²àº¡àº²àº„າຊັàºàºàº£àºµàº™à»àº¥àº™àº¥àº´àº”ຂະເà»àº™àº„" + - "ັນນາດາເàºàº»àº²àº«àº¥àºµàº„ານຸລິຄັດຊະມີຣີເຄີດິສໂຄມິຄà»àº™àº´àºŠà»€àºàºàºàºµàºªàº¥àº²àº•àº´àº™àº¥àº±àºà»€àºŠàº¡àºšàº§àºàºàº´àºŠà»àºàº™àº”" + - "າລິມເບີàºàºµàºŠàº¥àº´àº‡àºàº²àº¥àº²àº¥àº²àº§àº¥àº´àº—ົວນຽນລູບາ-ຄາຕັງàºàº²àº¥àº±àº”ວຽນມາລາàºàº²àºªàºŠàºµàº¡àº²àºŠàº²àº™à»€àº¥àº±àº”ມາວຣິà»" + - "ມັàºà»€àºŠà»‚ດນຽນມາເລອາລຳມອງໂàºà»€àº¥àºàº¡àº²àº£àº²àº—ີມາເລມອລທີສມຽນມານາຢູລູເອັນເດເບເລເໜືອເນປ" + - "າລີເອັນດອງàºàº²àº”ັຊນà»à»€àº§àºˆàº½àº™ ນີນອàºàº™à»à»€àº§àºˆàº½àº™ ບັອàºàº¡àº­àº¥àº™àºµàºšàºµàº¥àºµà»ƒàº•à»‰àº™àº²àº§àº²à»‚ຈນານຈາອັອàºàºŠàºµàº•" + - "ານໂອຈິບວາໂອໂຣໂມໂອຣິຢາອອດເຊຕິàºàº›àº±àº™àºˆàº²àºšàºµàº›àº²àº¥àºµà»‚ປລິຊປາສໂຕປà»àº•àº¹àºàºµàºªàº„ີຊົວໂຣà»àº¡àº™àº£àº¸àº™" + - "ດິໂຣà»àº¡àº™àº½àº™àº£àº±àº”ຊຽນຄິນຢາວານດາສັນສະàºàº£àº´àº”ສາດີນຽນສິນທິຊາມິເໜືອà»àºŠàº‡à»‚àºàºªàº´àº™àº«àº²àº¥àº²àºªàº°à»‚ລ" + - "à»àº§àº±àºàºªàº°à»‚ລເວນຽນຊາມົວໂຊນາໂຊມາລີອານບານຽນເຊີບຽນຊຣາຕິໂຊໂທໃຕ້ຊຸນà»àº”ນນີສສະວີດິຊ" + - "ຊວາຮີລິທາມິລເຕລູàºàº¹àº—າຈິàºà»„ທຕິàºàº£àº´àº™àº¢àº²à»€àº—ີàºà»€àº¡àº±àº™à»€àº•àºªàº°àº§àº²àº™àº²àº—ອງàºàº²àº™à»€àº—ີຄິຊເຕຊອງàºàº²àº—າ" + - "ທາຕາຮີຕຽນອຸàºà»€àº„ີຢູເຄຣນຽນອູຣະດູອຸສເບàºà»€àº§àº™àº”າຫວຽດນາມໂວລາພັàºàº§à»àº¥àº¹àº¡àº§à»àº¥àº­àºšà»‚ຮຊາຢິ" + - "ວໂຢຣູບາຊວາງຈີນຊູລູà»àº­àº±àºàºŠàºµà»€àº™àº±àºªàº­àº²à»‚ຄລີອາà»àº”ງມີເອດີຮິà»àº­àºŸàºµàº®àºµàº¥àºµàº­àº²à»€àº®àº±àº¡à»„ອນູອັàºàºàº²" + - "ດຽມອາເລີດອານໄຕໃຕ້ອັງàºàº´àº”ໂບຮານà»àº­àº™àºˆàºµàºàº²àº­àº²àº¥àº²àº¡àº´àºàº­àº²àº£àº»àº§àº„ານຽນອາຣາປາໂຮອາຣາà»àº§àºàº­àº²àºŠ" + - "ູອັສຕູຮຽນອາວາຮິບາລູຊີບາລີເນັດບາຊາບາມຸນໂຄມາລາບີເຈເບັມບາບີນາບາຟັດໂບພູຣິບ" + - "ີຄອນບີນີàºàº»àº¡àºŠàº´àºàºŠàº´àºàº²àºšàº£àº²à»‚ບດູອາຄຸດບູຣຽດບູຈີເນັດບູລູບລິນເມດູມບາà»àº„ດໂດຄາຣິບຄາ" + - "ຢູàºàº²àº­àº²àº”à»àºŠàº¡àºŠàºµàºšàº¹à»‚ນຊີàºàº²àºŠàº´àºšàºŠàº²àºŠàº²àºàº²à»„ຕຊູເàºàº”ມາຣິຊີນຸàºàºˆàº²àºàº­àº™àºŠàº­àºàº•àº´àº§àºŠàºµàºžàº´àº§àº¢àº²àº™àºŠàºµà»‚ຣàºàºµ" + - "ຊີເຢນນີໂຊຣານິ ເຄີດິຊຄອບຕິàºàº„ຣີເມນເຕີຄິຊàºàº²àºŠàº¹àºšàº½àº™àº”າໂàºàº•àº²àº”າàºàº§àº²à»„ຕຕາເດລາວາຊີເລ" + - "ັບໂດàºàº£àº´àºšàº”ິນàºàº²àºŠàº²àº¡àº²àº”ອàºàº£àºµàºŠà»àºšàº½àº™àº•à»à»ˆàºàº§à»ˆàº²àº”ົວລາດັàºàºàº²àº‡à»‚ຈລາ-ຟອນຢີດູລາດາຊາàºàº²à»€àº­àº±àº¡àºš" + - "ູອີຟິàºàº­àºµàº¢àº´àºšàºšàº¹àº®àº²àº™àº­àºµàºàº²àºˆàº±àºàº­àºµàº¥àº²à»„ມອັງàºàº´àº”àºàº²àº‡àº­àºµàº§àº­àº™àº”ູà»àºŸàº‡àºŸàºµàº¥àº´àº›àºµà»‚ນຟອນຟຮັ່ງເສດàºàº²àº‡" + - "ຟຮັ່ງເສດໂບຮານຟຣີຊຽນເໜືອຟຣີຊຽນຕາເວັນອອàºàºŸàº£àºµàº¥àº½àº™àºàº²àºàº²àºàº²àº­àº¸àºŠàºàº²à»‚ຢບາàºàº²àºàºµàºàº´àº™à»€àºšàºµà»€" + - "ທັດເຢàºàº¥àº°àº¡àº±àº™àºªàº¹àº‡àºàº²àº‡à»€àº¢àºàº¥àº°àº¡àº±àº™àºªàº¹àº‡à»‚ບຮານàºàº­àº™àº”ີໂàºàº£àº­àº™àº•àº²à»‚ຣàºàº­àº”ຮິàºàºàº£àºµà»‚ບà»àº­àº™àºŠàº½àº™àºàº£àºµàºàºªàº°" + - "ວິສ ເຈີà»àº¡àº™àºàº¹àºŠàº´àº§àº´àº”ອິນໄຮດາຮາໄວອຽນຮິຣິໄàºàº™àº­àº™àº®àº´àº”ໄຕມອງຊຸບເປີຊà»àºšàº½àº™àº®àº¹àº›àº²à»„ອບານໄອ" + - "ໄບໄບໂອໄອໂລໂàºàº­àº´àº™àºàº±àºŠà»‚ລບບັນງອມບາມາà»àºŠàº¡àºˆàº¹à»àº”ວ-ເພີຊຽນຈູà»àº”ວ-ອາລາບິàºàºàº²àº£àº²-àºàº²àº™àº›àº²àº" + - "àºàº²à»„ບລ໌àºàº²àºŠàº´àº™àºˆàº£àº¹àºàº²àº¡àºšàº²àºàº°àº§àºµàºàº²àºšàº²àº”ຽນຄາà»àº™àº¡àºšàº¹àº•àºµàºšàº¡àº²àº„ອນເດຄາເວີເດàºàº™àº¹à»‚ຄໂລຄາສິໂຄຕັນ" + - "ຄອàºàº£àº² ຊິນີຄາໂàºàº„າເລັນຈິນຄິມບັນດູໂຄມີ-ເພີມຢັàºàºàº­àº™àºàº²àº™àºµàº„ູສໄລàºàº²à»àº›àº£àºàº²àº£àº²à»„ຊ-ບານ" + - "àºàº²àºàº²à»€àº£àº¥àº½àº™àºàº¹àº£àº¹àºàºŠàº³àºšàº²àº¥à»‰àº²àºšàº²à»€àºŸàºà»‚ຄລອàºàº™àº½àº™àº„ູມີàºàº„ູເທໄນລາດີໂນà»àº¥àº™àºàº´àº¥àº²àº™àº”າà»àº¥àº¡àºšàº²àº¥àºµàºŠàº½" + - "ນລາໂàºàº•àº²à»àº¡àº±àº‡à»‚àºà»‰à»‚ລຊິລູບາ-ລູລົວລູເຊໂນລຸນດາລົວລູໄຊລູໄàºàº¡àº²àº”ູລາມາຟາມາàºàº²àº®àº´à»„ມທີ" + - "ລິມາàºàº²àºŠàº²àº£àº¡àº±àº™àº”ິງàºàº²àº¡àº²à»„ຊມາບາມອàºàºŠàº²àº¡àº²àº™àº”າຣເມນເດເມຣູມà»àº£àº´àºªà»€àº¢àº™à»„ອລິດàºàº²àº‡àº¡àº²àº„ູວາ-ມີ" + - "ດໂຕເມທາມິàºà»àº¡àºàº—ີà»àº™àº‡àºàº²àºšàº¹à»àº¡àº™àºˆàº¹àº¡àº²àº™àºµàºžàº¹àº£àº´à»‚ມຫາມອສຊີມັນດັງຫລາàºàºžàº²àºªàº²àº„ຣິàºàº¡àºµàº¥àº±àº™àº”າມ" + - "າວາຣິມà»àº¢àº´àº™à»€àº­àºµàºàº²àº™àº²à»‚ປລີນາມາເຢàºàº¥àº°àº¡àº±àº™àº•à»ˆàº³ à»àºŠàºàºŠàº­àº™àº•à»à»ˆàº³àº™àºµàº§àº²àº£àº´àº™àºµà»ˆàº­àº±àº”ນີ່ອູàºàº§àº²àºŠàºµà»‚" + - "ອຈີ່ມບູນນà»à»„àºàº™à»à»‚ບຮານເອັນໂàºà»‚ຊໂທເໜືອເນີເນວາດັ້ງເດີມນາມວີຊິນານຄອນໂນໂຣນິມາໂ" + - "ອà»àºŠàºàº•àº¹àºàºµàº­àº­àº”ໂຕມັນປານàºàº²àºŠàºµàº¡àº²àº™àºžàº²àº¥àº²àº§àºµàº›àº²àº¡àº›àº²àº™àºàº²àº›àº²àº¡à»€àº›àºà»€àº¡àº±àº™à»‚ທປາລົວອານເປີເຊàºà»‚ບຮາ" + - "ນຟີນີເຊàºàºžàº­àº™à»€àºžà»‚ປວອງຊານໂບຮານKʼicheʼຣາຈັສທານິຣາປານຸàºàº£àº²à»‚ຣທອນàºàº²àº™àº£àº»àº¡à»‚ບໂຣເມນີ" + - "ອາໂຣມານຽນອາຣວາຊັນດາວຊາàºàº²àºªàº²àº¡àº²àº£àº´à»àº•àº™-ຊຳບູຣູຊາຊັàºàºŠàº²àº™àº—າລິàºàº³à»€àºšàºŠàº²àº™àºàº¹àºŠàºµàºŠàº´àº¥àºµàº™àºªàº" + - "ອດຊີນາເຊນຄັບໂຄàºàº£àº²à»‚ບໂຣ ເຊນນິອີຣິຊເàºàº»à»ˆàº²àº—າເຊວຫິດໄທໃຫ່àºàº­àº²àº¥àº±àºš-ຊາດຊິດາໂມຊາມິ" + - "ໃຕ້ລຸນຊາມິອີນາຣິຊາມິສàºàº­àº”ຊາມິໂຊນິນàºàºµàºŠàº­àºàº”ິນສຣານນານຕອນໂàºà»€àºŠà»€àº¥àºµàºŠàº²à»‚ຮຊູຄູມ້າຊ" + - "ູຊູຊູເມີເລàºà»‚ຄໂນຣຽນຄອງໂຠຊວາຮີລິຊີເລàºà»àºšàºšàº”ັ້ງເດີມຊີເລàºàº—ີມເນເຕໂຊເຕເລໂນເຕຕ" + - "ູມໄທàºàº£àºµàº•àºµàº§à»‚ຕເàºà»€àº¥àº»àº²àº„ຣິງàºàº­àº™àº—ລີງàºàº´àº”ທາມາàºà»€àºŠàºàº™àº²àºàº­àº²àºŠàº²àº•àº­àº‡àºàº²àº—ອàºàºžàºµàºŠàº´àº™àº•àº²à»‚ລໂàºàºŠàºµàº¡àºŠ" + - "ີà»àº­àº™àº•àº³àºšàº¹àºàº²àº•àº¹àº§àº²àº¥àº¹àº•àº²àºŠàº²àº§àº±àºàº•àº¹àº§àºµàº™àº½àº™àº­àº±àº”ລາສ ທາມາຊີຠàºàº²àº‡àº­àº¸àº”ມັດຢູàºàº²àº¥àº´àºàº­àº³àºšàº±àº™àº”ູລູ" + - "ດໄວໂວຕິàºàº§àº±àº™à»‚ຈວາເຊີວາລາໂມວາເລວາໂຊàºàº²àº™àº¡àº´àºà»‚ຊàºàº²à»€àº¢àº»à»‰àº²àº¢àº±àºšà»àºàº‡à»€àºšàº™à»àº¢àº¡àºšàº²àºàº§àº²àº‡àº•àº¸à»‰àº‡àºŠ" + - "າໂປà»àº•àºšàºªàº±àº™àºàº²àº¥àº±àºàºšàº¥àºµàºŠàº´àº¡à»€àºŠàº™àº²àºàº²à»‚ມຣັອàºà»àº„ນ ທາມາຊີຠມາດຕະຖານຊູນີບà»à»ˆàº¡àºµà»€àº™àº·à»‰àº­àº«àº²àºžàº²" + - "ສາຊາຊາອາຣາບິàºàº¡àº²àº”ຕະຖານສະໄà»à»ƒà»à»ˆàº­àº­àºªàº•àº£àº½àº™ ເຈີà»àº¡àº™àºªàº°àº§àº´àºª ໄຮ ເຈີà»àº¡àº™àº­àº±àº‡àºàº´àº” (ອອສເຕ" + - "ຣລຽນ)ອັງàºàº´àº” (ເຄເນດຽນ)ອັງàºàº´àº” (ບຣິດທິຊ)ອັງàºàº´àº” (ອາເມລິàºàº±àº™)ລາຕິນ ອາເມຣິàºàº±àº™" + - " ສະà»àº›àº™àº™àº´àºŠàº¢àº¹à»‚ຣປຽນ ສະà»àº›àº™àº™àº´àºŠà»€àº¡àº±àºàºŠàº´àºàº±àº™ ສະà»àº›àº™àº™àº´àºŠà»€àº„ເນດຽນ àºàº£àº±à»ˆàº‡àºªàº°àº§àº´àºª àºàº£àº±à»ˆàº‡àºŸàº¥àºµàº¡àº´" + - "ຊບຣາຊິລຽນ ປà»àº•àº¹àºàºµàºªàº¢àº¹à»‚ຣປຽນ ປà»àº•àº¹àºàºµàºªà»‚ມດາວຽນເຊີໂບ-ໂàºà»€àºŠàºàºˆàºµàº™à»àºšàºšàº®àº½àºšàº‡à»ˆàº²àºàºˆàºµàº™à»àºšàºšàº”" + - "ັ້ງເດີມ" - -// Size: 1234 bytes, 605 elements -var loLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000c, 0x0024, 0x003f, 0x0057, 0x0066, 0x007b, 0x0099, - 0x00a8, 0x00c0, 0x00d5, 0x00ea, 0x010b, 0x011a, 0x0138, 0x0150, - 0x0165, 0x017a, 0x0192, 0x01a7, 0x01b9, 0x01cb, 0x01e0, 0x01ef, - 0x0201, 0x0213, 0x0219, 0x0222, 0x023d, 0x024c, 0x0255, 0x0264, - 0x027c, 0x028e, 0x02a3, 0x02af, 0x02bb, 0x02cd, 0x02ee, 0x0306, - 0x031e, 0x032d, 0x033f, 0x034b, 0x035d, 0x036c, 0x037b, 0x038a, - 0x03b2, 0x03c1, 0x03e2, 0x03f7, 0x040c, 0x0424, 0x0433, 0x0445, - 0x0457, 0x0466, 0x047e, 0x0496, 0x04a5, 0x04bd, 0x04d2, 0x04e7, - // Entry 40 - 7F - 0x050b, 0x0529, 0x054d, 0x055c, 0x0571, 0x0589, 0x0595, 0x05b0, - 0x05c5, 0x05e6, 0x05fb, 0x0610, 0x061f, 0x062e, 0x0640, 0x0655, - 0x0664, 0x0682, 0x0691, 0x06a6, 0x06bb, 0x06cd, 0x06e8, 0x06fa, - 0x0706, 0x0715, 0x0727, 0x0736, 0x075a, 0x0769, 0x0784, 0x0799, - 0x07a2, 0x07ba, 0x07dc, 0x07ee, 0x0809, 0x0824, 0x0833, 0x0854, - 0x086c, 0x0884, 0x0896, 0x08a2, 0x08b4, 0x08c3, 0x08d5, 0x08ff, - 0x0911, 0x092c, 0x0935, 0x095a, 0x0985, 0x09a0, 0x09b2, 0x09c1, - 0x09dc, 0x09f1, 0x0a03, 0x0a15, 0x0a2d, 0x0a42, 0x0a4e, 0x0a5d, - // Entry 80 - BF - 0x0a6c, 0x0a81, 0x0a90, 0x0a9f, 0x0aae, 0x0ac3, 0x0ad5, 0x0af3, - 0x0b0e, 0x0b23, 0x0b32, 0x0b4a, 0x0b59, 0x0b6e, 0x0b86, 0x0ba1, - 0x0bb0, 0x0bbc, 0x0bce, 0x0be6, 0x0bf8, 0x0c07, 0x0c1c, 0x0c37, - 0x0c4c, 0x0c61, 0x0c70, 0x0c82, 0x0c91, 0x0c97, 0x0caf, 0x0cc7, - 0x0cdf, 0x0cf1, 0x0d03, 0x0d18, 0x0d24, 0x0d39, 0x0d4b, 0x0d63, - 0x0d75, 0x0d87, 0x0d96, 0x0dab, 0x0dc0, 0x0dcf, 0x0dde, 0x0dea, - 0x0df3, 0x0e05, 0x0e11, 0x0e1a, 0x0e26, 0x0e44, 0x0e56, 0x0e6b, - 0x0e7d, 0x0e7d, 0x0e95, 0x0ea7, 0x0eb3, 0x0ecb, 0x0ecb, 0x0edd, - // Entry C0 - FF - 0x0edd, 0x0ef5, 0x0f16, 0x0f2b, 0x0f40, 0x0f5e, 0x0f5e, 0x0f76, - 0x0f76, 0x0f8b, 0x0f8b, 0x0f8b, 0x0f97, 0x0f97, 0x0faf, 0x0faf, - 0x0fc1, 0x0fc1, 0x0fd3, 0x0feb, 0x0feb, 0x0ff7, 0x1006, 0x1006, - 0x1018, 0x1024, 0x1036, 0x1036, 0x1042, 0x1051, 0x1051, 0x1063, - 0x1072, 0x107e, 0x107e, 0x1087, 0x109c, 0x109c, 0x109c, 0x10a5, - 0x10a5, 0x10b1, 0x10c0, 0x10cf, 0x10e7, 0x10f3, 0x10ff, 0x1114, - 0x1123, 0x1132, 0x1144, 0x1156, 0x1168, 0x1174, 0x1183, 0x1195, - 0x11a4, 0x11b0, 0x11ce, 0x11e0, 0x11f8, 0x120a, 0x121f, 0x1244, - // Entry 100 - 13F - 0x1256, 0x1256, 0x127a, 0x128f, 0x12a1, 0x12b0, 0x12bc, 0x12ce, - 0x12e0, 0x12f2, 0x1301, 0x130d, 0x131c, 0x1340, 0x1340, 0x134f, - 0x1361, 0x137d, 0x1389, 0x139b, 0x13ad, 0x13bc, 0x13bc, 0x13da, - 0x13ef, 0x1401, 0x141c, 0x141c, 0x1431, 0x1431, 0x143a, 0x1452, - 0x1452, 0x145b, 0x145b, 0x147c, 0x14a3, 0x14a3, 0x14c1, 0x14ee, - 0x1500, 0x1506, 0x151b, 0x151b, 0x1527, 0x1533, 0x1533, 0x1539, - 0x1557, 0x1557, 0x1581, 0x15b1, 0x15b1, 0x15c0, 0x15db, 0x15ed, - 0x15fc, 0x161a, 0x163c, 0x163c, 0x163c, 0x1648, 0x165a, 0x1666, - // Entry 140 - 17F - 0x1666, 0x167b, 0x167b, 0x1696, 0x16a5, 0x16ae, 0x16cf, 0x16cf, - 0x16db, 0x16ea, 0x1702, 0x1714, 0x1726, 0x1726, 0x1726, 0x1738, - 0x1747, 0x1756, 0x1778, 0x179d, 0x179d, 0x17bc, 0x17ce, 0x17dd, - 0x17e6, 0x17f5, 0x1801, 0x1816, 0x182b, 0x1834, 0x1849, 0x1867, - 0x1867, 0x1873, 0x1873, 0x187f, 0x188e, 0x18aa, 0x18aa, 0x18aa, - 0x18b6, 0x18d1, 0x18e9, 0x190b, 0x1920, 0x192f, 0x193e, 0x1960, - 0x1960, 0x1960, 0x1975, 0x1984, 0x1999, 0x19a8, 0x19c0, 0x19cf, - 0x19e1, 0x19f3, 0x1a02, 0x1a11, 0x1a20, 0x1a2f, 0x1a2f, 0x1a2f, - // Entry 180 - 1BF - 0x1a2f, 0x1a41, 0x1a41, 0x1a56, 0x1a62, 0x1a62, 0x1a7e, 0x1a90, - 0x1a9f, 0x1aa8, 0x1ab4, 0x1ac0, 0x1ac0, 0x1ac0, 0x1ad2, 0x1ade, - 0x1af0, 0x1b02, 0x1b17, 0x1b2f, 0x1b3b, 0x1b47, 0x1b56, 0x1b68, - 0x1b77, 0x1b83, 0x1b9b, 0x1bb3, 0x1bd5, 0x1be1, 0x1bf3, 0x1c0e, - 0x1c1d, 0x1c35, 0x1c41, 0x1c50, 0x1c50, 0x1c62, 0x1c7a, 0x1c86, - 0x1c9b, 0x1cad, 0x1cad, 0x1cbc, 0x1ccb, 0x1ccb, 0x1ccb, 0x1cdd, - 0x1ce9, 0x1d29, 0x1d3b, 0x1d4d, 0x1d5c, 0x1d5c, 0x1d71, 0x1d86, - 0x1d92, 0x1da7, 0x1da7, 0x1db9, 0x1dd1, 0x1dda, 0x1dfe, 0x1e13, - // Entry 1C0 - 1FF - 0x1e25, 0x1e31, 0x1e3d, 0x1e4c, 0x1e70, 0x1e8e, 0x1ea0, 0x1eb8, - 0x1edc, 0x1ef4, 0x1ef4, 0x1ef4, 0x1ef4, 0x1f15, 0x1f15, 0x1f2a, - 0x1f2a, 0x1f2a, 0x1f39, 0x1f39, 0x1f60, 0x1f69, 0x1f69, 0x1f84, - 0x1f99, 0x1fb7, 0x1fb7, 0x1fb7, 0x1fc6, 0x1fd8, 0x1fd8, 0x1fd8, - 0x1fd8, 0x1ff3, 0x2002, 0x2014, 0x2020, 0x203c, 0x204e, 0x205d, - 0x2072, 0x2072, 0x207e, 0x208d, 0x20a2, 0x20ae, 0x20ae, 0x20ae, - 0x20ba, 0x20ba, 0x20cc, 0x20f7, 0x2115, 0x2115, 0x212d, 0x213f, - 0x2158, 0x216a, 0x216a, 0x216a, 0x217f, 0x2194, 0x21b2, 0x21ca, - // Entry 200 - 23F - 0x21df, 0x21f1, 0x2215, 0x2224, 0x2230, 0x2230, 0x2245, 0x2251, - 0x2269, 0x227e, 0x22a3, 0x22d3, 0x22e2, 0x22e2, 0x22e2, 0x22f1, - 0x22fd, 0x230f, 0x231e, 0x232d, 0x2336, 0x234e, 0x234e, 0x2363, - 0x2378, 0x2378, 0x2390, 0x23b4, 0x23cc, 0x23cc, 0x23de, 0x23de, - 0x23f6, 0x23f6, 0x2408, 0x241a, 0x242f, 0x2444, 0x2476, 0x2488, - 0x249d, 0x24b2, 0x24bb, 0x24c1, 0x24c1, 0x24c1, 0x24c1, 0x24c1, - 0x24d0, 0x24d0, 0x24df, 0x24ee, 0x2500, 0x250c, 0x2518, 0x2518, - 0x2518, 0x252a, 0x252a, 0x2536, 0x2545, 0x254e, 0x2560, 0x256f, - // Entry 240 - 27F - 0x256f, 0x2587, 0x259c, 0x25c6, 0x25c6, 0x25d8, 0x2622, 0x262e, - 0x265e, 0x266a, 0x26ac, 0x26d4, 0x26fd, 0x272d, 0x2757, 0x2781, - 0x27b1, 0x27f5, 0x2823, 0x2857, 0x287c, 0x289b, 0x28ad, 0x28db, - 0x2906, 0x291b, 0x293a, 0x2961, 0x298b, -} - -// Size: 5762 bytes -var ltLangStr string = "" + - "afarųabchazųavestųafrikanųakanųamharųaragonesųarabųasamųavarikųaimarųaze" + - "rbaidžanieÄiųbaÅ¡kirųbaltarusiųbulgarųbislamabambarųbengalųtibetieÄiųbret" + - "onųbosniųkatalonųÄeÄÄ—nųÄamorųkorsikieÄiųkryÄekųbažnytinÄ— slavųÄiuvašųval" + - "ųdanųvokieÄiųdivehibotijųeviųgraikųanglųesperantoispanųestųbaskųpersųfu" + - "lahųsuomiųfidžiųfarerųprancÅ«zųvakarų fryzųairiųškotų (gÄ—lų)galisųgvarani" + - "ųgudžaratųmenieÄiųhausųhebrajųhindihiri motukroatųHaiÄiovengrųarmÄ—nųher" + - "erointerlingvaindonezieÄiųinterkalbaigbųsiÄuan jiinupiakidoislandųitalųi" + - "nukitutjaponųjavieÄiųgruzinųKongokikujųkuaniamakazachųkalalisutkhmerųkan" + - "adųkorÄ—jieÄiųkanurikaÅ¡myrųkurdųkomikornųkirgizųlotynųliuksemburgieÄiųgan" + - "dalimburgiÅ¡ngalųlaosieÄiųlietuviųluba katangalatviųmalagasųMarÅ¡alo Salųm" + - "aoriųmakedonųmalajaliųmongolųmaratųmalajieÄiųmaltieÄiųbirmieÄiųnaurųšiau" + - "rÄ—s ndebelųnepalieÄiųndongųolandųnaujoji norvegųNorvegijos raÅ¡ytinÄ— – bÅ«" + - "kmolųpietų ndebelenavajųnianjaoÄitarųojibvaoromųorijųosetinųpendžabųpali" + - "lenkųpuÅ¡tÅ«nųportugalųkeÄujųretoromanųrundirumunųrusųkinjaruandųsanskrita" + - "ssardinieÄiųsindųšiaurÄ—s samiųsangosinhalųslovakųslovÄ—nųsamoaÅ¡onųsomalie" + - "Äiųalbanųserbųsvatipietų sesutosundųšvedųsuahiliųtamilųtelugųtadžikųtaj" + - "ųtigrajųturkmÄ—nųtsvanatonganųturkųtsongatotoriųtaitieÄiųuigÅ«rųukrainieÄ" + - "iųurdųuzbekųvendavietnamieÄiųvolapiukvalonųvolofųkosųjidiÅ¡jorubųchuangki" + - "nųzulųaÄinezųakoliųadangmųadygÄ—jųTuniso arabųafrihiliaghemųainųakadianųa" + - "labamieÄiųaleutųalbanų kalbos gegų tarmÄ—pietų Altajaussenoji anglųangikų" + - "aramaikųmapudungunųaraonųarapahųAlžyro arabųaravakųMaroko arabųEgipto ar" + - "abųasuAmerikos ženklų kalbaasturianųkotavaavadhipietų AzerbaidžanobaluÄi" + - "balinezųbavarųbasųbamunųbatak tobaghomalųbÄ—jųbembųbetavibenųbafutųbadaga" + - "bauÄpuribikolųbinibandžarųkomųsiksikaBiÅ¡nuprijosbakhtiaribrajųbrahujųbod" + - "oakÅ«sųburiatųbuginezųbulublinmedumbųkadokaribųkaijÅ«gųatsamųcebuanųÄigųÄi" + - "bÄaÄagatųÄukesųmariÄinuk žargonasÄoktauÄipvÄ—jųÄerokiųÄajenųsoranių kurdų" + - "koptųcapiznonKrymo turkųkaÅ¡ubųdakotųdargvataitųdelaveroslavedogribųdinkų" + - "zarmųdogrižemutinių sorbųcentrinio DusunodualųVidurio Vokietijosdžiola-f" + - "onidyulųdazagųembuefikitalų kalbos Emilijos tarmÄ—senovÄ—s egiptieÄiųekaju" + - "kelamitųVidurio AnglijoscentrinÄ—s Aliaskos jupikųevondoispanų kalbos Eks" + - "tremadÅ«ros tarmÄ—fangfilipinieÄiųsuomių kalbos Tornedalio tarmÄ—fonkadžunų" + - " prancÅ«zųVidurio PrancÅ«zijossenoji prancÅ«zųArpitanoÅ¡iaurinių fryzųrytų f" + - "ryzųfrulangagagaÅ«zųkinų kalbos dziangsi tarmÄ—gajogbajazoroastrų darigyzk" + - "iribatigilakiVidurio AukÅ¡tosios VokietijosSenoji AukÅ¡tosios VokietijosGo" + - "a konkaniųgondigorontalogotųgrebosenovÄ—s graikųŠveicarijos vokieÄiųvajųf" + - "rafragusigviÄinohaidokinų kalbos hakų tarmÄ—havajieÄiųFidžio hindihiligai" + - "nonhititųhmongaukÅ¡tutinių sorbųkinų kalbos hunano tarmÄ—hupaibanibibioilo" + - "koingušųingrųJamaikos kreolų anglųloibanngombųmaÄamųjudÄ—jų persųjudÄ—jų a" + - "rabųdanų kalbos jutų tarmÄ—karakalpakųkebailųkaÄinjukembųkavikabardinųkan" + - "embųtyapmakondųŽaliojo KyÅ¡ulio kreolųkenyangkorokaingangkasikotanezųkojr" + - "a Äinikhovarųkirmanjkikakokalenjinųkimbundukomių-permiųkonkaniųkosreanųk" + - "pelekaraÄiajų balkarijoskriokinaray-akarelųkurukÅ¡ambalųbafųkolognųkumikų" + - "kutenailadinolangilandalambalezginųnaujoji frankų kalbaligÅ«rųlyviųlakotų" + - "lombardųmongolozilatgaliųluba lulualuisenolundaluomizolujaklasikinÄ— kinų" + - "lazmadurezųmafųmagahimaithilimakasaromandingomasajųmabųmokÅ¡amandarmendem" + - "erųmorisijųVidurio Airijosmakua-maetometamikmakminankabumanÄumanipurimoh" + - "okmosivakarų marimundangųkelios kalboskrykųmirandezųmarvarimentavaimjenų" + - "erzyjųmazenderaniųkinų kalbos pietų minų tarmÄ—neapolieÄiųnamaŽemutinÄ—s V" + - "okietijosnevariniasniuenųao nagakvasiųngiembÅ«nųnogųnorsunovialenkoÅ¡iaurÄ—" + - "s sothųnuerųklasikinÄ— nevariniamveziniankolųnioronzimaosageosmanų turkųp" + - "angasinanpahlavipampangapapiementopalaupikardųPensilvanijos vokieÄiųvoki" + - "eÄių kalbos žemaiÄių tarmÄ—senoji persųvokieÄių kalbos Pfalco tarmÄ—finiki" + - "eÄiųitalų kalbos Pjemonto tarmÄ—PontoPonapÄ—sprÅ«sųsenovÄ—s provansalųkiÄiųČ" + - "imboraso aukÅ¡tumų keÄujųradžastanorapanuirarotonganitalų kalbos Romanijo" + - "s tarmÄ—rifųromboromųrotumanųrusinųRovianosaromaniųruasandavijakutųsamarÄ—" + - "jų aramiųsambÅ«rųsasaksantalisauraÅ¡trųngambajųsangųsicilieÄiųškotųsasares" + - "ų sardinųsenecųsenųseriselkupkojraboro senisenoji airiųžemaiÄiųtachelhi" + - "tųšanchadian arabųsidamosilezieÄių žemaiÄiųselajarųpietų samiųLulÄ—jo sam" + - "iųInario samiųSkolto samiųsoninkesogdiensranan tongosererųsahoSaterlendo" + - " fryzųsukumasusuÅ¡umerųKomorųKongo suahiliųklasikinÄ— sirieÄiųsirųsilezieÄ" + - "iųtulųtimnetesoterenotetumtigretivtokelautsakurųklingonųtlingittalyšųtam" + - "aÅ¡ekniasa tongostok pisinturoyotarokotsakonųtsimÅ¡ianmusulmonų tatųtumbuk" + - "ųtuvalutasavakųtuviųCentrinio Maroko tamazitųudmurtųugariticumbundurÅ«tv" + - "aivenetųvepsųvakarų flamandųpagrindinÄ— frankonųvotikvõrovunjovalserųvala" + - "movaraivaÅ¡okinų kalbos vu tarmÄ—kalmukųmegrelųsogųjaojapezųjangbenųjembųn" + - "jengatukinų kalbos Kantono tarmÄ—zapotekų„Bliss“ simboliųzelandųzenagasta" + - "ndartinÄ— Maroko tamazigtųzuninÄ—ra kalbinio turiniozazaÅ¡iuolaikinÄ— standa" + - "rtinÄ— arabųAustrijos vokieÄiųŠveicarijos aukÅ¡tutinÄ— vokieÄiųAustralijos " + - "anglųKanados anglųDidžiosios Britanijos anglųJungtinių Valstijų anglųLot" + - "ynų Amerikos ispanųEuropos ispanųMeksikos ispanųKanados prancÅ«zųŠveicari" + - "jos prancÅ«zųflamandųBrazilijos portugalųEuropos portugalųmoldavųserbų-kr" + - "oatųsupaprastintoji kinųtradicinÄ— kinų" - -// Size: 1234 bytes, 605 elements -var ltLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0006, 0x000e, 0x0015, 0x001e, 0x0024, 0x002b, 0x0035, - 0x003b, 0x0041, 0x0049, 0x0050, 0x0063, 0x006c, 0x0077, 0x007f, - 0x0086, 0x008e, 0x0096, 0x00a2, 0x00aa, 0x00b1, 0x00ba, 0x00c4, - 0x00cc, 0x00d9, 0x00dc, 0x00e2, 0x00f4, 0x00fe, 0x0103, 0x0108, - 0x0112, 0x0118, 0x011f, 0x0124, 0x012b, 0x0131, 0x013a, 0x0141, - 0x0146, 0x014c, 0x0152, 0x0159, 0x0160, 0x0168, 0x016f, 0x0179, - 0x0187, 0x018d, 0x019d, 0x01a4, 0x01ad, 0x01b8, 0x01c2, 0x01c8, - 0x01d0, 0x01d5, 0x01de, 0x01e5, 0x01ec, 0x01f3, 0x01fb, 0x0201, - // Entry 40 - 7F - 0x020c, 0x021a, 0x0224, 0x0229, 0x0233, 0x023a, 0x023d, 0x0245, - 0x024b, 0x0253, 0x025a, 0x0264, 0x026c, 0x0271, 0x0278, 0x0280, - 0x0288, 0x0291, 0x0298, 0x029f, 0x02ac, 0x02b2, 0x02bb, 0x02c1, - 0x02c5, 0x02cb, 0x02d3, 0x02da, 0x02ec, 0x02f1, 0x02fb, 0x0301, - 0x030c, 0x0315, 0x0321, 0x0328, 0x0331, 0x033f, 0x0346, 0x034f, - 0x0359, 0x0361, 0x0368, 0x0374, 0x037f, 0x038a, 0x0390, 0x03a2, - 0x03ae, 0x03b5, 0x03bc, 0x03cc, 0x03ef, 0x03fd, 0x0404, 0x040a, - 0x0413, 0x0419, 0x041f, 0x0425, 0x042d, 0x0437, 0x043b, 0x0441, - // Entry 80 - BF - 0x044b, 0x0455, 0x045d, 0x0468, 0x046d, 0x0474, 0x0479, 0x0485, - 0x048f, 0x049c, 0x04a2, 0x04b2, 0x04b7, 0x04bf, 0x04c7, 0x04d0, - 0x04d5, 0x04db, 0x04e7, 0x04ee, 0x04f4, 0x04f9, 0x0506, 0x050c, - 0x0513, 0x051c, 0x0523, 0x052a, 0x0533, 0x0538, 0x0540, 0x054a, - 0x0550, 0x0558, 0x055e, 0x0564, 0x056c, 0x0577, 0x057f, 0x058c, - 0x0591, 0x0598, 0x059d, 0x05ab, 0x05b3, 0x05ba, 0x05c1, 0x05c6, - 0x05cc, 0x05d3, 0x05d9, 0x05de, 0x05e3, 0x05ec, 0x05f3, 0x05fb, - 0x0604, 0x0611, 0x0619, 0x0620, 0x0625, 0x062e, 0x063b, 0x0642, - // Entry C0 - FF - 0x065d, 0x066c, 0x0679, 0x0680, 0x0689, 0x0695, 0x069c, 0x06a4, - 0x06b2, 0x06ba, 0x06c7, 0x06d4, 0x06d7, 0x06ee, 0x06f8, 0x06fe, - 0x0704, 0x0718, 0x071f, 0x0728, 0x072f, 0x0734, 0x073b, 0x0745, - 0x074d, 0x0753, 0x0759, 0x075f, 0x0764, 0x076b, 0x0771, 0x077a, - 0x0781, 0x0785, 0x078f, 0x0794, 0x079b, 0x07a7, 0x07b0, 0x07b6, - 0x07be, 0x07c2, 0x07c9, 0x07d1, 0x07da, 0x07de, 0x07e2, 0x07ea, - 0x07ee, 0x07f5, 0x07fe, 0x0805, 0x080d, 0x0813, 0x081a, 0x0822, - 0x082a, 0x082e, 0x083e, 0x0845, 0x084f, 0x0858, 0x0860, 0x086f, - // Entry 100 - 13F - 0x0875, 0x087d, 0x0889, 0x0891, 0x0898, 0x089e, 0x08a4, 0x08ac, - 0x08b1, 0x08b9, 0x08bf, 0x08c5, 0x08ca, 0x08dc, 0x08ec, 0x08f2, - 0x0904, 0x0910, 0x0916, 0x091d, 0x0921, 0x0925, 0x0942, 0x0957, - 0x095d, 0x0965, 0x0975, 0x0990, 0x0996, 0x09ba, 0x09be, 0x09cc, - 0x09ec, 0x09ef, 0x0a03, 0x0a17, 0x0a28, 0x0a30, 0x0a42, 0x0a4e, - 0x0a54, 0x0a56, 0x0a5f, 0x0a7b, 0x0a7f, 0x0a84, 0x0a93, 0x0a96, - 0x0a9e, 0x0aa4, 0x0ac2, 0x0adf, 0x0aec, 0x0af1, 0x0afa, 0x0aff, - 0x0b04, 0x0b14, 0x0b2b, 0x0b30, 0x0b36, 0x0b3a, 0x0b42, 0x0b47, - // Entry 140 - 17F - 0x0b60, 0x0b6c, 0x0b79, 0x0b83, 0x0b8a, 0x0b8f, 0x0ba3, 0x0bbd, - 0x0bc1, 0x0bc5, 0x0bcb, 0x0bd0, 0x0bd8, 0x0bde, 0x0bf5, 0x0bfb, - 0x0c02, 0x0c0a, 0x0c19, 0x0c28, 0x0c41, 0x0c4d, 0x0c55, 0x0c5b, - 0x0c5d, 0x0c63, 0x0c67, 0x0c71, 0x0c79, 0x0c7d, 0x0c85, 0x0c9e, - 0x0ca5, 0x0ca9, 0x0cb1, 0x0cb5, 0x0cbe, 0x0cc9, 0x0cd1, 0x0cda, - 0x0cde, 0x0ce8, 0x0cf0, 0x0cfe, 0x0d07, 0x0d10, 0x0d15, 0x0d2b, - 0x0d2f, 0x0d38, 0x0d3f, 0x0d44, 0x0d4d, 0x0d52, 0x0d5a, 0x0d61, - 0x0d68, 0x0d6e, 0x0d73, 0x0d78, 0x0d7d, 0x0d85, 0x0d9a, 0x0da2, - // Entry 180 - 1BF - 0x0da8, 0x0daf, 0x0db8, 0x0dbd, 0x0dc1, 0x0dca, 0x0dd4, 0x0ddb, - 0x0de0, 0x0de3, 0x0de7, 0x0deb, 0x0dfb, 0x0dfe, 0x0e07, 0x0e0c, - 0x0e12, 0x0e1a, 0x0e22, 0x0e2a, 0x0e31, 0x0e36, 0x0e3c, 0x0e42, - 0x0e47, 0x0e4c, 0x0e55, 0x0e64, 0x0e6f, 0x0e73, 0x0e79, 0x0e82, - 0x0e88, 0x0e90, 0x0e95, 0x0e99, 0x0ea5, 0x0eae, 0x0ebb, 0x0ec1, - 0x0ecb, 0x0ed2, 0x0eda, 0x0ee0, 0x0ee7, 0x0ef4, 0x0f14, 0x0f21, - 0x0f25, 0x0f3b, 0x0f41, 0x0f45, 0x0f4c, 0x0f53, 0x0f5a, 0x0f65, - 0x0f6a, 0x0f6f, 0x0f75, 0x0f79, 0x0f89, 0x0f8f, 0x0fa0, 0x0fa8, - // Entry 1C0 - 1FF - 0x0fb1, 0x0fb6, 0x0fbb, 0x0fc0, 0x0fce, 0x0fd8, 0x0fdf, 0x0fe7, - 0x0ff1, 0x0ff6, 0x0ffe, 0x1016, 0x103a, 0x1047, 0x1066, 0x1072, - 0x108f, 0x1094, 0x109c, 0x10a3, 0x10b7, 0x10be, 0x10dc, 0x10e7, - 0x10ee, 0x10f8, 0x1116, 0x111b, 0x1120, 0x1125, 0x112e, 0x1135, - 0x113d, 0x1146, 0x1149, 0x1150, 0x1157, 0x1169, 0x1172, 0x1177, - 0x117e, 0x1189, 0x1192, 0x1198, 0x11a4, 0x11ab, 0x11bd, 0x11c4, - 0x11c9, 0x11cd, 0x11d3, 0x11e1, 0x11ee, 0x11f9, 0x1204, 0x1208, - 0x1216, 0x121c, 0x1234, 0x123d, 0x124a, 0x1258, 0x1265, 0x1272, - // Entry 200 - 23F - 0x1279, 0x1280, 0x128c, 0x1293, 0x1297, 0x12a8, 0x12ae, 0x12b2, - 0x12ba, 0x12c1, 0x12d0, 0x12e5, 0x12ea, 0x12f6, 0x12fb, 0x1300, - 0x1304, 0x130a, 0x130f, 0x1314, 0x1317, 0x131e, 0x1326, 0x132f, - 0x1336, 0x133e, 0x1346, 0x1352, 0x135b, 0x1361, 0x1367, 0x136f, - 0x1378, 0x1388, 0x1390, 0x1396, 0x139f, 0x13a5, 0x13bf, 0x13c7, - 0x13cf, 0x13d6, 0x13da, 0x13dd, 0x13e4, 0x13ea, 0x13fb, 0x1410, - 0x1415, 0x141a, 0x141f, 0x1427, 0x142d, 0x1432, 0x1437, 0x1437, - 0x144d, 0x1455, 0x145d, 0x1462, 0x1465, 0x146c, 0x1475, 0x147b, - // Entry 240 - 27F - 0x1483, 0x149e, 0x14a7, 0x14bc, 0x14c4, 0x14ca, 0x14e8, 0x14ec, - 0x1502, 0x1506, 0x1527, 0x153b, 0x155f, 0x1571, 0x157f, 0x159c, - 0x15b7, 0x15cf, 0x15de, 0x15ee, 0x1600, 0x1617, 0x1620, 0x1635, - 0x1647, 0x164f, 0x165d, 0x1672, 0x1682, -} - -// Size: 4240 bytes -var lvLangStr string = "" + - "afÄruabhÄzuavestaafrikanduakanuamharuaragonieÅ¡uarÄbuasamieÅ¡uavÄruaimarua" + - "zerbaidžÄņubaÅ¡kÄ«rubaltkrievubulgÄrubiÅ¡lamÄbambarubengÄļutibetieÅ¡ubretoņu" + - "bosnieÅ¡ukatalÄņuÄeÄenuÄamorrukorsikÄņukrÄ«ÄehubaznÄ«cslÄvuÄuvaÅ¡uvelsieÅ¡udÄ" + - "ņuvÄcumaldÄ«vieÅ¡udzongkeevugrieÄ·uangļuesperantospÄņuigauņubaskupersieÅ¡uf" + - "ulusomufidžieÅ¡ufÄ“rufranÄurietumfrÄ«zuÄ«rugÄ“lugalisieÅ¡ugvaranugudžaratumeni" + - "eÅ¡uhausuivritshindihirimotuhorvÄtuhaitieÅ¡uungÄruarmēņuhereruinterlingvai" + - "ndonÄ“zieÅ¡uinterlingveigboSiÄuaņas jiinupiakuidoÄ«slandieÅ¡uitÄļuinuÄ«tujapÄ" + - "ņujavieÅ¡ugruzÄ«nukongukikujukvaņamukazahugrenlandieÅ¡ukhmerukannadukoreji" + - "eÅ¡ukanurukaÅ¡mirieÅ¡ukurdukomieÅ¡ukornieÅ¡ukirgÄ«zulatīņuluksemburgieÅ¡ugandul" + - "imburgieÅ¡ulingalalaosieÅ¡ulietuvieÅ¡ulubakatangalatvieÅ¡umalagasumÄrÅ¡alieÅ¡u" + - "maorumaÄ·edonieÅ¡umalajalumongoļumaratumalajieÅ¡umaltieÅ¡ubirmieÅ¡unauruieÅ¡uz" + - "iemeļndebelunepÄlieÅ¡undonguholandieÅ¡ujaunnorvÄ“Ä£unorvÄ“Ä£u bukmolsdienvidnd" + - "ebelunavahuÄiÄevaoksitÄņuodžibvuoromuorijuosetÄ«nupandžabupÄlipoļupuÅ¡tupo" + - "rtugÄļukeÄvuretoromÄņurundurumÄņukrievukiņaruandasanskritssardÄ«nieÅ¡usind" + - "huziemeļsÄmusangosingÄļuslovÄkuslovēņusamoÄņuÅ¡onusomÄļualbÄņuserbusvatud" + - "ienvidsotusundanieÅ¡uzviedrusvahilitamilutelugutadžikutajutigrinjaturkmēņ" + - "ucvanutongieÅ¡uturkucongutatÄrutaitieÅ¡uuiguruukraiņuurduuzbekuvenduvjetna" + - "mieÅ¡uvolapiksvaloņuvolofukhosujidiÅ¡sjorubudžuanuÄ·Ä«nieÅ¡uzuluaÄinuaÄoluada" + - "ngmuadiguafrihiliaghemuainuakadieÅ¡ualeutudienvidaltajieÅ¡usenangļuangikaa" + - "ramieÅ¡uaraukÄņuarapahuaravakuasuastÅ«rieÅ¡uavadhubeludžubalieÅ¡ubasubamumug" + - "omalubedžubembubenabafutubhodžpÅ«rubikolubinukomusiksikubradžieÅ¡ubodonkos" + - "iburjatubugubulubilinumedumbukadukarÄ«bukajugaatsamusebuÄņukigaÄibÄudžaga" + - "tajsÄÅ«kumarieÅ¡uÄinuku žargonsÄoktavuÄipevaianuÄirokuÅ¡ejenukurdu (Sorani)" + - "koptuKrimas tatÄrukaÅ¡ubudakotudargutaitudelavÄ“rusleivudogribudinkuzarmud" + - "ogrulejassorbudualuvidusholandieÅ¡udiola-fonjÄ«diÅ«ludazukjembuefikuÄ“Ä£iptie" + - "Å¡uekadžukuelamieÅ¡uvidusangļuevondufangufilipÄ«nieÅ¡ufonuvidusfranÄusenfra" + - "nÄuziemeļfrÄ«zuaustrumfrÄ«zufriÅ«lugagagauzugajogbajugÄ“zukiribatieÅ¡uvidusau" + - "gÅ¡vÄcusenaugÅ¡vÄcugondu valodasgorontalugotugrebosengrieÄ·uÅ veices vÄcugus" + - "iikuÄinuhaiduhavajieÅ¡uhiligainonuhetuhmonguaugÅ¡sorbuhupuibanuibibioiloku" + - "inguÅ¡uložbansjgomaÄamujÅ«dpersieÅ¡ujÅ«darÄbukarakalpakukabilukaÄinukadžikam" + - "bukÄvikabardieÅ¡ukaņembukatabumakondekaboverdieÅ¡ukorukhasuhotanieÅ¡ukoiraÄ" + - "iinÄ«kakokalendžīnukimbundukomieÅ¡u-permieÅ¡ukonkanukosrÄjieÅ¡ukpellukaraÄaj" + - "u un balkÄrukarēļukuruhuÅ¡ambalubafijuĶelnes vÄcukumikukutenajuladinolang" + - "ilandulambulezgÄ«nulakotumongulozulubalulvaluisenulunduluoluÅ¡ejuluhjumadu" + - "rieÅ¡umafumagahieÅ¡umaithilimakasarumandingumasajumabumokÅ¡umandarumendumer" + - "uMaurÄ«cijas kreoluvidusÄ«rumakua-meettomgomikmakuminangkabavumandžūrumani" + - "pÅ«rumohaukumosumundanguvairÄkas valodaskrÄ«kumirandieÅ¡umarvarumjenuerzjun" + - "eapolieÅ¡unamalejasvÄcunevarunjasuniuÄņukvasiongjembÅ«nunogajusennorvÄ“Ä£unk" + - "oziemeļsotunueruklasiskÄ nevaruņamvezuņankoluņorunzemuvažÄžuturku osmaņu" + - "pangasinanupehlevipampanganupapjamentopalavieÅ¡usenpersufeniÄ·ieÅ¡uponapieÅ¡" + - "usenprovansieÅ¡ukiÄeradžastÄņurapanujurarotongieÅ¡uromboÄigÄnuaromÅ«nuruand" + - "asandavujakutusamÄrijas aramieÅ¡usamburusasakusantalungambejusangusicÄ«lie" + - "Å¡uskotusenekusenuselkupukoiraboro sennisenÄ«ruÅ¡ilhuÅ¡anuÄŒadas arÄbusidamu" + - "dienvidsÄmuLuleo sÄmuInari sÄmuskoltsÄmusoninkusogdieÅ¡usranantogoserÄ“rus" + - "ahosukumususuÅ¡umerukomoruKongo svahiliklasiskÄ sÄ«rieÅ¡usÄ«rieÅ¡utemnutesote" + - "renotetumutigrutivutokelavieÅ¡uklingoņutlinkitutuaregunjasas tongutokpisi" + - "nstarokocimÅ¡iÄņutumbukutuvalieÅ¡utasavakutuvieÅ¡uCentrÄlmarokas tamazÄ«tsud" + - "murtuugaritieÅ¡uumbundusaknevajuvotuvundžoVallisas vÄcuvalamuvarajuvaÅ¡oka" + - "lmikusogujaojapieÅ¡ujanbaņujembukantonieÅ¡usapotekublissimbolikazenagustan" + - "darta marokÄņu berberuzunjubez lingvistiska saturazazakimÅ«sdienu standar" + - "ta arÄbuAustrijas vÄcuÅ veices augÅ¡vÄcuAustrÄlijas angļuKanÄdas angļuLiel" + - "britÄnijas angļuASV angļuLatīņamerikas spÄņuEiropas spÄņuMeksikas spÄņuK" + - "anÄdas franÄuÅ veices franÄuflÄmuBrazÄ«lijas portugÄļuEiropas portugÄļumol" + - "dÄvuserbu-horvÄtuÄ·Ä«nieÅ¡u vienkÄrÅ¡otÄÄ·Ä«nieÅ¡u tradicionÄlÄ" - -// Size: 1234 bytes, 605 elements -var lvLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0006, 0x000d, 0x0013, 0x001c, 0x0021, 0x0027, 0x0032, - 0x0038, 0x0041, 0x0047, 0x004d, 0x005c, 0x0065, 0x006f, 0x0077, - 0x0080, 0x0087, 0x0090, 0x009a, 0x00a2, 0x00ab, 0x00b5, 0x00bd, - 0x00c5, 0x00d0, 0x00d4, 0x00d9, 0x00e6, 0x00ee, 0x00f7, 0x00fd, - 0x0102, 0x010e, 0x0115, 0x0118, 0x011f, 0x0125, 0x012e, 0x0135, - 0x013c, 0x0141, 0x014a, 0x014e, 0x0152, 0x015c, 0x0161, 0x0168, - 0x0174, 0x0178, 0x017d, 0x0187, 0x018e, 0x0198, 0x01a0, 0x01a5, - 0x01ab, 0x01b0, 0x01b8, 0x01c0, 0x01c9, 0x01d0, 0x01d8, 0x01de, - // Entry 40 - 7F - 0x01e9, 0x01f6, 0x0201, 0x0205, 0x0212, 0x021a, 0x021d, 0x0229, - 0x0230, 0x0237, 0x023f, 0x0247, 0x024f, 0x0254, 0x025a, 0x0262, - 0x0268, 0x0275, 0x027b, 0x0282, 0x028c, 0x0292, 0x029e, 0x02a3, - 0x02ab, 0x02b4, 0x02bc, 0x02c4, 0x02d3, 0x02d8, 0x02e4, 0x02eb, - 0x02f4, 0x02ff, 0x030a, 0x0313, 0x031b, 0x0328, 0x032d, 0x033a, - 0x0342, 0x034a, 0x0350, 0x035a, 0x0363, 0x036c, 0x0376, 0x0384, - 0x038f, 0x0395, 0x03a0, 0x03ad, 0x03be, 0x03cc, 0x03d2, 0x03da, - 0x03e4, 0x03ec, 0x03f1, 0x03f6, 0x03fe, 0x0407, 0x040c, 0x0411, - // Entry 80 - BF - 0x0417, 0x0422, 0x0428, 0x0434, 0x0439, 0x0441, 0x0447, 0x0452, - 0x045b, 0x0467, 0x046d, 0x0479, 0x047e, 0x0487, 0x048f, 0x0498, - 0x04a1, 0x04a6, 0x04ae, 0x04b6, 0x04bb, 0x04c0, 0x04cb, 0x04d6, - 0x04dd, 0x04e4, 0x04ea, 0x04f0, 0x04f8, 0x04fc, 0x0504, 0x050e, - 0x0513, 0x051c, 0x0521, 0x0526, 0x052d, 0x0536, 0x053c, 0x0544, - 0x0548, 0x054e, 0x0553, 0x055f, 0x0567, 0x056e, 0x0574, 0x0579, - 0x0580, 0x0586, 0x058d, 0x0597, 0x059b, 0x05a1, 0x05a7, 0x05ae, - 0x05b3, 0x05b3, 0x05bb, 0x05c1, 0x05c5, 0x05ce, 0x05ce, 0x05d4, - // Entry C0 - FF - 0x05d4, 0x05e5, 0x05ee, 0x05f4, 0x05fd, 0x0607, 0x0607, 0x060e, - 0x060e, 0x0615, 0x0615, 0x0615, 0x0618, 0x0618, 0x0623, 0x0623, - 0x0629, 0x0629, 0x0631, 0x0639, 0x0639, 0x063d, 0x0643, 0x0643, - 0x0649, 0x064f, 0x0654, 0x0654, 0x0658, 0x065e, 0x065e, 0x0669, - 0x066f, 0x0673, 0x0673, 0x0677, 0x067e, 0x067e, 0x067e, 0x0689, - 0x0689, 0x068d, 0x0692, 0x0699, 0x069d, 0x06a1, 0x06a7, 0x06ae, - 0x06b2, 0x06b9, 0x06bf, 0x06c5, 0x06ce, 0x06d2, 0x06d9, 0x06e3, - 0x06e9, 0x06f1, 0x0701, 0x0709, 0x0714, 0x071b, 0x0722, 0x0730, - // Entry 100 - 13F - 0x0735, 0x0735, 0x0743, 0x074a, 0x0750, 0x0755, 0x075a, 0x0763, - 0x0769, 0x0770, 0x0775, 0x077a, 0x077f, 0x0789, 0x0789, 0x078e, - 0x079e, 0x07aa, 0x07b0, 0x07b4, 0x07ba, 0x07bf, 0x07bf, 0x07cb, - 0x07d4, 0x07dd, 0x07e8, 0x07e8, 0x07ee, 0x07ee, 0x07f3, 0x0800, - 0x0800, 0x0804, 0x0804, 0x0810, 0x081a, 0x081a, 0x0827, 0x0834, - 0x083b, 0x083d, 0x0844, 0x0844, 0x0848, 0x084d, 0x084d, 0x0852, - 0x085e, 0x085e, 0x086d, 0x087a, 0x087a, 0x0887, 0x0890, 0x0894, - 0x0899, 0x08a3, 0x08b1, 0x08b1, 0x08b1, 0x08b6, 0x08bd, 0x08c2, - // Entry 140 - 17F - 0x08c2, 0x08cc, 0x08cc, 0x08d7, 0x08db, 0x08e1, 0x08eb, 0x08eb, - 0x08ef, 0x08f4, 0x08fa, 0x08ff, 0x0906, 0x0906, 0x0906, 0x090e, - 0x0911, 0x0918, 0x0925, 0x092f, 0x092f, 0x093a, 0x0940, 0x0947, - 0x094d, 0x0952, 0x0957, 0x0962, 0x096a, 0x0970, 0x0977, 0x0984, - 0x0984, 0x0988, 0x0988, 0x098d, 0x0997, 0x09a3, 0x09a3, 0x09a3, - 0x09a7, 0x09b3, 0x09bb, 0x09cd, 0x09d4, 0x09e0, 0x09e6, 0x09fb, - 0x09fb, 0x09fb, 0x0a03, 0x0a09, 0x0a11, 0x0a17, 0x0a24, 0x0a2a, - 0x0a32, 0x0a38, 0x0a3d, 0x0a42, 0x0a47, 0x0a4f, 0x0a4f, 0x0a4f, - // Entry 180 - 1BF - 0x0a4f, 0x0a55, 0x0a55, 0x0a5a, 0x0a5e, 0x0a5e, 0x0a67, 0x0a6e, - 0x0a73, 0x0a76, 0x0a7d, 0x0a82, 0x0a82, 0x0a82, 0x0a8c, 0x0a90, - 0x0a9a, 0x0aa2, 0x0aaa, 0x0ab2, 0x0ab8, 0x0abc, 0x0ac2, 0x0ac9, - 0x0ace, 0x0ad2, 0x0ae4, 0x0aed, 0x0af9, 0x0afc, 0x0b03, 0x0b0f, - 0x0b19, 0x0b22, 0x0b29, 0x0b2d, 0x0b2d, 0x0b35, 0x0b46, 0x0b4c, - 0x0b57, 0x0b5e, 0x0b5e, 0x0b63, 0x0b68, 0x0b68, 0x0b68, 0x0b73, - 0x0b77, 0x0b81, 0x0b87, 0x0b8c, 0x0b94, 0x0b94, 0x0b9a, 0x0ba4, - 0x0baa, 0x0bb6, 0x0bb6, 0x0bb9, 0x0bc4, 0x0bc9, 0x0bd9, 0x0be1, - // Entry 1C0 - 1FF - 0x0be9, 0x0bee, 0x0bf3, 0x0bfc, 0x0c09, 0x0c14, 0x0c1b, 0x0c25, - 0x0c2f, 0x0c39, 0x0c39, 0x0c39, 0x0c39, 0x0c41, 0x0c41, 0x0c4c, - 0x0c4c, 0x0c4c, 0x0c56, 0x0c56, 0x0c65, 0x0c6a, 0x0c6a, 0x0c77, - 0x0c7f, 0x0c8c, 0x0c8c, 0x0c8c, 0x0c91, 0x0c99, 0x0c99, 0x0c99, - 0x0c99, 0x0ca1, 0x0ca7, 0x0cae, 0x0cb4, 0x0cc8, 0x0ccf, 0x0cd5, - 0x0cdc, 0x0cdc, 0x0ce4, 0x0ce9, 0x0cf4, 0x0cf9, 0x0cf9, 0x0cff, - 0x0d03, 0x0d03, 0x0d0a, 0x0d19, 0x0d20, 0x0d20, 0x0d26, 0x0d2b, - 0x0d38, 0x0d3e, 0x0d3e, 0x0d3e, 0x0d4a, 0x0d55, 0x0d60, 0x0d6a, - // Entry 200 - 23F - 0x0d71, 0x0d7a, 0x0d84, 0x0d8b, 0x0d8f, 0x0d8f, 0x0d95, 0x0d99, - 0x0da0, 0x0da6, 0x0db3, 0x0dc6, 0x0dcf, 0x0dcf, 0x0dcf, 0x0dd4, - 0x0dd8, 0x0dde, 0x0de4, 0x0de9, 0x0ded, 0x0df9, 0x0df9, 0x0e02, - 0x0e0a, 0x0e0a, 0x0e11, 0x0e1d, 0x0e26, 0x0e26, 0x0e2c, 0x0e2c, - 0x0e37, 0x0e37, 0x0e3e, 0x0e48, 0x0e50, 0x0e58, 0x0e71, 0x0e78, - 0x0e83, 0x0e8a, 0x0e8f, 0x0e93, 0x0e93, 0x0e93, 0x0e93, 0x0e93, - 0x0e97, 0x0e97, 0x0e9e, 0x0eac, 0x0eb2, 0x0eb8, 0x0ebd, 0x0ebd, - 0x0ebd, 0x0ec4, 0x0ec4, 0x0ec8, 0x0ecb, 0x0ed3, 0x0edb, 0x0ee0, - // Entry 240 - 27F - 0x0ee0, 0x0eeb, 0x0ef3, 0x0f00, 0x0f00, 0x0f06, 0x0f22, 0x0f27, - 0x0f3e, 0x0f44, 0x0f5e, 0x0f6d, 0x0f80, 0x0f93, 0x0fa2, 0x0fb8, - 0x0fc2, 0x0fd9, 0x0fe8, 0x0ff8, 0x1008, 0x1018, 0x101e, 0x1035, - 0x1048, 0x1050, 0x105e, 0x1077, 0x1090, -} - -// Size: 10065 bytes -var mkLangStr string = "" + - "афарÑкиапхаÑкиавеÑтанÑкиафриканÑаканÑкиамхарÑкиарагонÑкиарапÑкиаÑамÑкиав" + - "арÑкиајмарÑкиазербејџанÑкибашкирÑкибелоруÑкибугарÑкибиÑламабамбарабенга" + - "лÑкитибетÑкибретонÑкибоÑанÑкикаталонÑкичеченÑкичаморÑкикорзиканÑкикриче" + - "шкицрковноÑловенÑкичувашкивелшкиданÑкигерманÑкидивехиѕонгкаевегрчкиангл" + - "иÑкиеÑперантошпанÑкиеÑтонÑкибаÑкиÑкиперÑиÑкифулафинÑкифиџиÑкифарÑкифран" + - "цуÑкизападнофризиÑкиирÑкишкотÑки гелÑкигалициÑкигваранÑкигуџаратиманкÑÑ…" + - "ауÑахебрејÑкихиндихири мотухрватÑкихаитÑкиунгарÑкиерменÑкихерероинтерли" + - "нгваиндонезиÑкиокциденталигбоноÑуинупијачкиидоиÑландÑкииталијанÑкиинукт" + - "итутјапонÑкијаванÑкигрузиÑкиконгокикујуквањамаказакÑтанÑкикалалиÑуткмер" + - "ÑкиканнадакорејÑкиканурикашмирÑкикурдÑкикомикорнÑкикиргиÑкилатинÑкилукÑ" + - "ембуршкигандалимбуршкилингалалаошкилитванÑкилуба-катангалатвиÑкималгашк" + - "имаршалÑкимаорÑкимакедонÑкималајаламмонголÑкимаратималајÑкималтешкибурм" + - "анÑкинауруанÑкиÑеверен ндебеленепалÑкиндонгахоландÑкинорвешки нинорÑкно" + - "рвешки букмолјужен ндебеленавахоњанџаокÑитанÑкиоџибваоромооријаоÑетÑкип" + - "енџапÑкипалиполÑкипаштунÑкипортугалÑкикечуанÑкиретороманÑкирундироманÑк" + - "ируÑкируандаÑанÑкритÑардинÑкиÑиндиÑевернолапонÑкиÑангоÑинхалÑкиÑловачки" + - "ÑловенечкиÑамоанÑкишонаÑомалиÑкиалбанÑкиÑрпÑкиÑватиÑеÑотоÑундÑкишведÑки" + - "ÑвахилитамилÑкителугутаџикиÑтанÑкитајландÑкитигрињатуркменÑкицванатонга" + - "нÑкитурÑкицонгататарÑкитахитÑкиујгурÑкиукраинÑкиурдуузбекиÑтанÑкивендав" + - "иетнамÑкиволапиквалонÑкиволофÑкикоÑајидишјорупÑкиџуаншкикинеÑкизулуачеш" + - "киаколиадангмеадигејÑкитуниÑки арапÑкиафрихилиагемÑкиајнуакадÑкиалабамÑ" + - "киалеутÑкигешки албанÑкијужноалтајÑкиÑтароанглиÑкиангикаарамејÑкимапучк" + - "иараонаарапахоалжирÑки арапÑкиаравачкимароканÑки арапÑкиегипетÑки арапÑ" + - "киаÑуамериканÑки знаковен јазикаÑтурÑкикотаваавадијужноазербејџанÑкибел" + - "уџиÑкибалиÑкибаварÑкибаÑабамунÑкитобагомалабеџабембабетавÑкибенабафутба" + - "дагабоџпурибиколÑкибинибанџарÑкикомÑикÑикабишнупријабахтијарÑкибрајбрах" + - "ујÑкибодоакоÑебурјатÑкибугиÑкибулубиленÑкимедумбакадокарипÑкикајугаацам" + - "ÑебуанÑкичигачибчачагатајÑкичучкимариÑкичинучки жаргончоктавÑкичипевјан" + - "ÑкичерокиÑкичејенÑкиÑоранÑки курдÑкикоптÑкикапизнонкримÑкотурÑкикашупÑк" + - "идакотадаргватаитаделаверÑлејвидогрипÑкидинказармадогридолнолужичкидуÑу" + - "нÑкидуалаÑреднохоландÑкијола-фоњиџуладазагаембуефикемилијанÑкиÑтароегип" + - "етÑкиекаџукеламÑкиÑредноанглиÑкицентралнојупичкиевондоекÑтремадурÑкифан" + - "гфилипинÑкитурнедаленÑки финÑкифонкаџунÑки француÑкиÑреднофранцуÑкиÑтар" + - "офранцуÑкифранкопрованÑалÑкиÑевернофризиÑкииÑточнофризиÑкифурланÑкигага" + - "гауÑкигангајогбајазороаÑтриÑки даригизгилбертанÑкигиланÑкиÑредногорноге" + - "рманÑкиÑтарогорногерманÑкигоанÑки конканигондигоронталоготÑкигребоÑтаро" + - "грчкишвајцарÑки германÑкигвахирофарефарегуÑигвичинÑкихајдахакахавајÑкиф" + - "иџиÑки хиндихилигајнонÑкихетитÑкихмонггорнолужичкиÑјангхупаибанибибиоил" + - "оканÑкиингушкиижорÑкијамајÑки креолÑкиложбаннгомбамачамееврејÑкоперÑиÑк" + - "иеврејÑкоарапÑкијитÑкикаракалпачкикабилÑкикачинÑкикаџекамбакавикабардин" + - "ÑкиканембутјапмакондекабувердианукењангкорокаинганшкикаÑихотанÑкикојра " + - "чииниковарÑкизазакикакокаленџинкимбундукоми-пермјачкиконканикозрејÑкикп" + - "елекарачаевÑко-балкарÑкикриокинарајÑкикарелÑкикурухшамбалабафијаколоњÑк" + - "икумичкикутенајÑкиладинолангиландаламбалезгинÑкилингва франка новалигур" + - "ÑкиливонÑкилакотÑкиломбардÑкимонголозилатгалÑкилуба-лулуалујÑењÑкилунда" + - "луомизолујакнижевен кинеÑкилаÑкимадурÑкимафамагахимаитилимакаÑарÑкиманд" + - "ингомаÑајÑкимабамокшанÑкимандарÑкимендемерумориÑјенÑредноирÑкимакува-ми" + - "тометамикмакминангкабауманџурÑкиманипуримохавÑкимоÑизападномариÑкимунда" + - "нгповеќе јазицикрикмирандÑкимарваримјенеерзјанÑкимазендеранÑкијужноминÑ" + - "кинеаполÑкинамадолногерманÑкиневарÑкинијаÑниуејÑкиаоквазионгиембунногај" + - "ÑкиÑтаронордиÑкиновијалнкоÑеверен ÑотонуерклаÑичен неварÑкињамвезињанко" + - "лењоронзимаоÑашкиотоманÑки турÑкипангаÑинанÑкиÑредноперÑиÑкипампангапап" + - "ијаментопалауанÑкипикардÑкипенÑилваниÑки германÑкименонитÑки долногерма" + - "нÑкиÑтароперÑиÑкифалечкогерманÑкифеникиÑкипиемонтÑкипонтÑкипонпејÑкипру" + - "ÑкиÑтаропрованÑалÑкикичекичванÑкираџаÑтанÑкирапанујÑкираротонганÑкирома" + - "њолÑкирифÑкиромборомÑкиротуманÑкируÑинÑкировијанÑкивлашкируаÑандавејаку" + - "Ñ‚ÑкиÑамарјанÑки арамејÑкиÑамбуруÑаÑачкиÑанталиÑаураштрангембејÑангуÑици" + - "лијанÑкишкотÑки германÑкиÑаÑарÑки ÑардинÑкиÑенекаÑенаÑериÑелкупÑкикојра" + - "боро ÑениÑтароирÑкиÑамогитÑкитачелхитшанчадÑки арапÑкиÑидамодолношлезиÑ" + - "киÑелајарÑкијужнолапонÑкилулÑки лапонÑкиинарÑки лапонÑкиÑколтÑки лапонÑ" + - "киÑонинкезогдијанÑкиÑранÑки тонгоÑерерÑахозатерландÑки фризиÑкиÑукумаÑу" + - "ÑуÑумерÑкикоморијанÑкиконгоанÑки ÑвахиликлаÑичен ÑириÑкиÑириÑкишлезиÑки" + - "тулутимнетеÑотеренотетумтигретивтокелауанÑкицахурÑкиклингонÑкитлингитта" + - "лишкитамашекњаÑа тонгаток пиÑинтуројотарокоцаконÑкицимшијанÑкитатÑкитум" + - "букатувалуанÑкитазавактуванÑкицентрално мароканÑки тамазитÑкиудмуртÑкиу" + - "гаритÑкиумбундукоренвајвенетÑкивепшкизападнофламанÑкимајнÑкофранконÑкив" + - "отÑкивирувунџовалÑерволамоварајÑкивашовукалмичкимегрелÑкиÑогајаојапÑкиј" + - "енгбенјембањенгатукантонÑкизапотечкиблиÑÑимболизеландÑкизенагаÑтандарде" + - "н мароканÑки тамазигтÑкизунибез лингвиÑтичка Ñодржиназазалитературен ар" + - "апÑкибританÑки англиÑкиамериканÑки англиÑкишпанÑки (во Европа)француÑки" + - " (во Канада)португалÑки (во Европа)молдавÑкиÑрпÑкохрватÑкипоедноÑтавен к" + - "инеÑкитрадиционален кинеÑки" - -// Size: 1234 bytes, 605 elements -var mkLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000e, 0x001c, 0x0030, 0x0040, 0x004e, 0x005e, 0x0070, - 0x007e, 0x008c, 0x009a, 0x00aa, 0x00c4, 0x00d6, 0x00e8, 0x00f8, - 0x0106, 0x0114, 0x0126, 0x0136, 0x0148, 0x0158, 0x016c, 0x017c, - 0x018c, 0x01a2, 0x01a8, 0x01b2, 0x01d2, 0x01e0, 0x01ec, 0x01f8, - 0x020a, 0x0216, 0x0222, 0x0228, 0x0232, 0x0242, 0x0254, 0x0262, - 0x0272, 0x0282, 0x0292, 0x029a, 0x02a6, 0x02b4, 0x02c0, 0x02d2, - 0x02f0, 0x02fa, 0x0315, 0x0327, 0x0339, 0x0349, 0x0353, 0x035d, - 0x036f, 0x0379, 0x038a, 0x039a, 0x03a8, 0x03b8, 0x03c8, 0x03d4, - // Entry 40 - 7F - 0x03ea, 0x0400, 0x0414, 0x041c, 0x0424, 0x0438, 0x043e, 0x0450, - 0x0466, 0x0478, 0x0488, 0x0498, 0x04a8, 0x04b2, 0x04be, 0x04cc, - 0x04e4, 0x04f6, 0x0504, 0x0512, 0x0522, 0x052e, 0x0540, 0x054e, - 0x0556, 0x0564, 0x0574, 0x0584, 0x059c, 0x05a6, 0x05b8, 0x05c6, - 0x05d2, 0x05e4, 0x05fb, 0x060b, 0x061b, 0x062d, 0x063b, 0x064f, - 0x0661, 0x0673, 0x067f, 0x068f, 0x069f, 0x06b1, 0x06c5, 0x06e2, - 0x06f2, 0x06fe, 0x0710, 0x072f, 0x074c, 0x0765, 0x0771, 0x077b, - 0x078f, 0x079b, 0x07a5, 0x07af, 0x07bd, 0x07cf, 0x07d7, 0x07e3, - // Entry 80 - BF - 0x07f5, 0x080b, 0x081d, 0x0835, 0x083f, 0x084f, 0x0859, 0x0865, - 0x0875, 0x0887, 0x0891, 0x08af, 0x08b9, 0x08cb, 0x08db, 0x08ef, - 0x0901, 0x0909, 0x091b, 0x092b, 0x0937, 0x0941, 0x094d, 0x095b, - 0x0969, 0x0977, 0x0987, 0x0993, 0x09ad, 0x09c1, 0x09cf, 0x09e3, - 0x09ed, 0x09ff, 0x0a0b, 0x0a15, 0x0a25, 0x0a35, 0x0a45, 0x0a57, - 0x0a5f, 0x0a79, 0x0a83, 0x0a97, 0x0aa5, 0x0ab5, 0x0ac5, 0x0acd, - 0x0ad7, 0x0ae7, 0x0af5, 0x0b03, 0x0b0b, 0x0b17, 0x0b21, 0x0b2f, - 0x0b41, 0x0b5e, 0x0b6e, 0x0b7c, 0x0b84, 0x0b92, 0x0ba4, 0x0bb4, - // Entry C0 - FF - 0x0bcf, 0x0be9, 0x0c03, 0x0c0f, 0x0c21, 0x0c2f, 0x0c3b, 0x0c49, - 0x0c68, 0x0c78, 0x0c9b, 0x0cbc, 0x0cc2, 0x0cf4, 0x0d04, 0x0d10, - 0x0d1a, 0x0d3e, 0x0d50, 0x0d5e, 0x0d6e, 0x0d76, 0x0d86, 0x0d8e, - 0x0d9a, 0x0da2, 0x0dac, 0x0dbc, 0x0dc4, 0x0dce, 0x0dda, 0x0de8, - 0x0df8, 0x0e00, 0x0e12, 0x0e18, 0x0e26, 0x0e3a, 0x0e50, 0x0e58, - 0x0e6a, 0x0e72, 0x0e7c, 0x0e8e, 0x0e9c, 0x0ea4, 0x0eb4, 0x0ec2, - 0x0eca, 0x0eda, 0x0ee6, 0x0eee, 0x0f00, 0x0f08, 0x0f12, 0x0f26, - 0x0f30, 0x0f3e, 0x0f59, 0x0f6b, 0x0f81, 0x0f93, 0x0fa3, 0x0fc2, - // Entry 100 - 13F - 0x0fd0, 0x0fe0, 0x0ffa, 0x100a, 0x1016, 0x1022, 0x102c, 0x103a, - 0x1046, 0x1058, 0x1062, 0x106c, 0x1076, 0x108e, 0x109e, 0x10a8, - 0x10c6, 0x10d7, 0x10df, 0x10eb, 0x10f3, 0x10fb, 0x1111, 0x112d, - 0x1139, 0x1147, 0x1163, 0x1183, 0x118f, 0x11ab, 0x11b3, 0x11c7, - 0x11ee, 0x11f4, 0x1217, 0x1235, 0x1251, 0x1275, 0x1293, 0x12b1, - 0x12c3, 0x12c7, 0x12d7, 0x12dd, 0x12e5, 0x12ef, 0x1310, 0x1316, - 0x132e, 0x133e, 0x1366, 0x138c, 0x13a9, 0x13b3, 0x13c5, 0x13d1, - 0x13db, 0x13ef, 0x1416, 0x1424, 0x1434, 0x143c, 0x144e, 0x1458, - // Entry 140 - 17F - 0x1460, 0x1470, 0x1489, 0x14a3, 0x14b3, 0x14bd, 0x14d5, 0x14df, - 0x14e7, 0x14ef, 0x14fb, 0x150d, 0x151b, 0x1529, 0x154a, 0x1556, - 0x1562, 0x156e, 0x158e, 0x15ac, 0x15b8, 0x15d0, 0x15e0, 0x15f0, - 0x15f8, 0x1602, 0x160a, 0x1620, 0x162e, 0x1636, 0x1644, 0x165c, - 0x1668, 0x1670, 0x1684, 0x168c, 0x169c, 0x16b1, 0x16c1, 0x16cd, - 0x16d5, 0x16e5, 0x16f5, 0x1710, 0x171e, 0x1730, 0x173a, 0x1763, - 0x176b, 0x177f, 0x178f, 0x1799, 0x17a7, 0x17b3, 0x17c3, 0x17d1, - 0x17e5, 0x17f1, 0x17fb, 0x1805, 0x180f, 0x1821, 0x1843, 0x1853, - // Entry 180 - 1BF - 0x1863, 0x1873, 0x1887, 0x1891, 0x1899, 0x18ab, 0x18be, 0x18d0, - 0x18da, 0x18e0, 0x18e8, 0x18f0, 0x190f, 0x1919, 0x1929, 0x1931, - 0x193d, 0x194b, 0x195f, 0x196f, 0x197f, 0x1987, 0x1999, 0x19ab, - 0x19b5, 0x19bd, 0x19cd, 0x19e3, 0x19f8, 0x1a00, 0x1a0c, 0x1a22, - 0x1a34, 0x1a44, 0x1a54, 0x1a5c, 0x1a78, 0x1a86, 0x1a9f, 0x1aa7, - 0x1ab9, 0x1ac7, 0x1ac7, 0x1ad1, 0x1ae3, 0x1afd, 0x1b13, 0x1b25, - 0x1b2d, 0x1b49, 0x1b59, 0x1b63, 0x1b73, 0x1b77, 0x1b83, 0x1b93, - 0x1ba3, 0x1bbd, 0x1bcb, 0x1bd1, 0x1be8, 0x1bf0, 0x1c11, 0x1c1f, - // Entry 1C0 - 1FF - 0x1c2d, 0x1c35, 0x1c3f, 0x1c4b, 0x1c6a, 0x1c84, 0x1ca0, 0x1cb0, - 0x1cc6, 0x1cda, 0x1cec, 0x1d19, 0x1d4a, 0x1d64, 0x1d84, 0x1d96, - 0x1daa, 0x1db8, 0x1dca, 0x1dd6, 0x1df8, 0x1e00, 0x1e12, 0x1e28, - 0x1e3c, 0x1e56, 0x1e6a, 0x1e76, 0x1e80, 0x1e8c, 0x1ea0, 0x1eb0, - 0x1ec4, 0x1ed0, 0x1ed6, 0x1ee4, 0x1ef4, 0x1f1d, 0x1f2b, 0x1f39, - 0x1f47, 0x1f59, 0x1f67, 0x1f71, 0x1f89, 0x1faa, 0x1fcd, 0x1fd9, - 0x1fe1, 0x1fe9, 0x1ffb, 0x2016, 0x202a, 0x203e, 0x204e, 0x2054, - 0x206f, 0x207b, 0x2095, 0x20a9, 0x20c3, 0x20e0, 0x20ff, 0x2120, - // Entry 200 - 23F - 0x212e, 0x2144, 0x215d, 0x2167, 0x216f, 0x2198, 0x21a4, 0x21ac, - 0x21bc, 0x21d4, 0x21f7, 0x2216, 0x2224, 0x2234, 0x223c, 0x2246, - 0x224e, 0x225a, 0x2264, 0x226e, 0x2274, 0x228c, 0x229c, 0x22b0, - 0x22be, 0x22cc, 0x22da, 0x22ed, 0x22fe, 0x230a, 0x2316, 0x2326, - 0x233c, 0x2348, 0x2356, 0x236c, 0x237a, 0x238a, 0x23c6, 0x23d8, - 0x23ea, 0x23f8, 0x2402, 0x2408, 0x2418, 0x2424, 0x2444, 0x2466, - 0x2472, 0x247a, 0x2484, 0x2490, 0x249c, 0x24ac, 0x24b4, 0x24b4, - 0x24b8, 0x24c8, 0x24da, 0x24e2, 0x24e8, 0x24f4, 0x2502, 0x250c, - // Entry 240 - 27F - 0x251a, 0x252c, 0x253e, 0x2554, 0x2566, 0x2572, 0x25b2, 0x25ba, - 0x25ea, 0x25f2, 0x2617, 0x2617, 0x2617, 0x2617, 0x2617, 0x263a, - 0x2661, 0x2661, 0x2683, 0x2683, 0x26a9, 0x26a9, 0x26a9, 0x26a9, - 0x26d3, 0x26e5, 0x2701, 0x2728, 0x2751, -} - -// Size: 11808 bytes -var mlLangStr string = "" + - "അഫാർഅബàµ\u200cഖാസിയൻഅവസàµà´±àµà´±à´¾àµ»à´†à´«àµà´°à´¿à´•àµà´•à´¾àµ»à´¸àµà´…കാൻ\u200cഅംഹാരികàµà´…രഗോണീസàµà´…റബികàµ" + - "ആസàµà´¸à´¾à´®àµ€à´¸àµà´…വാരികàµà´…à´¯àµà´®à´¾à´±à´…സർബൈജാനിബഷàµà´–ിർബെലാറàµà´·àµà´¯àµ»à´¬àµ¾à´—േറിയൻബിസàµ\u200cലാമബം" + - "ബാറബംഗാളിടിബറàµà´±àµ»à´¬àµà´°àµ†à´Ÿàµà´Ÿàµºà´¬àµ‹à´¸àµà´¨à´¿à´¯àµ»à´•à´±àµà´±à´¾à´²à´¾àµ»à´šàµ†à´šàµ»à´•à´®àµ‹à´±àµ‹à´•àµ‹àµ¼à´¸à´¿à´•àµà´•àµ»à´•àµà´°àµ€à´šàµ†à´•àµà´•àµà´šàµ¼" + - "à´šàµà´šàµ à´¸àµà´²à´¾à´µà´¿à´•àµà´šàµà´µà´¾à´·àµà´µàµ†àµ½à´·àµà´¡à´¾à´¨à´¿à´·àµà´œàµ¼à´®àµà´®àµ»à´¦à´¿à´µàµ†à´¹à´¿à´¸àµ‹à´™àµà´•à´‡à´µàµà´—àµà´°àµ€à´•àµà´•àµà´‡à´‚à´—àµà´²àµ€à´·àµà´Žà´¸àµ" + - "\u200cപരാനàµà´±àµ‹à´¸àµ\u200cപാനിഷàµà´Žà´¸àµà´±àµà´±àµ‹à´£à´¿à´¯àµ»à´¬à´¾à´¸àµ\u200cà´•àµà´ªàµ‡àµ¼à´·àµà´¯àµ»à´«àµà´²à´«à´¿à´¨àµà´¨à´¿à´·àµà´«à´¿à´œà´¿" + - "യൻഫാറോസàµà´«àµà´°à´žàµà´šàµà´ªà´¶àµà´šà´¿à´® à´«àµà´°à´¿à´·à´¿à´¯àµ»à´à´±à´¿à´·àµà´¸àµà´•àµ‹à´Ÿàµà´Ÿà´¿à´·àµ ഗൈലികàµà´—ലീഷàµà´¯àµ»à´—àµà´µà´°à´¨àµ€à´—àµà´œà´±à´¾" + - "à´¤àµà´¤à´¿à´®à´¾àµ»à´¸àµà´¹àµ—സഹീബàµà´°àµà´¹à´¿à´¨àµà´¦à´¿à´¹à´¿à´°à´¿ മോതàµà´•àµà´°àµŠà´¯àµ‡à´·àµà´¯àµ»à´¹àµ†à´¯àµ\u200cതിയൻഹംഗേറിയൻഅർമേന" + - "ിയൻഹെരേരൊഇനàµà´±àµ¼à´²à´¿àµ»\u200cà´—àµà´µà´¾à´‡àµ»à´¡àµ‹à´¨àµ‡à´·àµà´¯àµ»à´‡à´¨àµà´±àµ¼à´²à´¿à´‚à´—àµà´µà´‡à´—àµà´¬àµ‹à´·àµà´µà´¾àµ»à´¯à´¿à´‡à´¨àµà´ªà´¿à´¯à´¾à´•àµà´‡" + - "ഡോà´à´¸àµ\u200cലാൻഡികàµà´‡à´±àµà´±à´¾à´²à´¿à´¯àµ»à´‡à´¨àµà´•àµà´±àµà´±à´¿à´±àµà´±à´Ÿàµà´Ÿàµà´œà´ªàµà´ªà´¾à´¨àµ€à´¸àµà´œà´¾à´µà´¾à´¨àµ€à´¸àµà´œàµ‹àµ¼à´œà´¿à´¯àµ»à´•àµ‹à´‚" + - "ഗോകികൂയàµà´•àµà´µà´¾à´¨àµà´¯à´®à´•à´¸à´¾à´–àµà´•à´²à´¾à´²àµà´²à´¿à´¸à´Ÿàµà´Ÿàµà´–മെർകനàµà´¨à´¡à´•àµŠà´±à´¿à´¯àµ»à´•à´¨àµ‚റികാശàµ\u200cമീരികàµàµ¼" + - "à´¦àµà´¦à´¿à´·àµà´•àµ‹à´®à´¿à´•àµ‹àµ¼à´£à´¿à´·àµà´•à´¿àµ¼à´—à´¿à´¸àµà´²à´¾à´±àµà´±à´¿àµ»à´²à´•àµ\u200cസംബർഗിഷàµà´—ാണàµà´Ÿà´²à´¿à´‚ബർഗിഷàµà´²à´¿à´‚ഗാലലാ" + - "വോലിതàµà´µà´¾à´¨à´¿à´¯àµ»à´²àµà´¬-à´•à´±àµà´±à´‚ഗലാറàµà´±àµà´µà´¿à´¯àµ»à´®à´²à´—ാസിമാർഷലàµà´²àµ€à´¸àµà´®à´µàµ‹à´±à´¿à´®à´¾à´¸à´¿à´¡àµ‹à´£à´¿à´¯àµ»à´®à´²à´¯à´¾à´³à´‚à´®" + - "ംഗോളിയൻമറാതàµà´¤à´¿à´®à´²àµ†à´¯àµà´®à´¾àµ¾à´Ÿàµà´Ÿàµ€à´¸àµà´¬àµ¼à´®àµ€à´¸àµà´¨àµ—à´±àµà´¨àµ‹àµ¼à´¤àµà´¤àµ ഡെബിൾനേപàµà´ªà´¾à´³à´¿à´¡àµ‹à´™àµà´•à´¡à´šàµà´šàµà´¨" + - "ോർവീജിയൻ നൈനോർകàµ\u200cà´¸àµà´¨àµ‹àµ¼à´µàµ€à´œà´¿à´¯àµ» à´¬àµà´•àµ\u200cമൽദകàµà´·à´¿à´£ നെഡിബിൾനവാഹൊനàµà´¯àµ»à´œ" + - "à´“à´•àµ\u200cസിറàµà´±àµ»à´“ജിബàµà´µà´¾à´’റോമോഒഡിയഒസàµà´¸àµ†à´±àµà´±à´¿à´•àµà´ªà´žàµà´šà´¾à´¬à´¿à´ªà´¾à´²à´¿à´ªàµ‹à´³à´¿à´·àµà´ªà´·àµà´¤àµà´ªàµ‹àµ¼à´šàµà´š" + - "àµà´—ീസàµà´•àµà´µàµ†à´šàµà´šàµà´µà´±àµŠà´®à´¾à´žàµà´šàµà´±àµà´£àµà´Ÿà´¿à´±àµŠà´®à´¾à´¨à´¿à´¯àµ»à´±à´·àµà´¯àµ»à´•à´¿à´¨àµà´¯à´¾àµ¼à´µà´¾à´£àµà´Ÿà´¸à´‚à´¸àµ\u200cകൃതംസർഡ" + - "ിനിയാൻസിനàµà´§à´¿à´µà´Ÿà´•àµà´•àµ» സമിസാംഗോസിംഹളസàµà´²àµ‹à´µà´¾à´•àµà´¸àµà´²àµ‹à´µàµ‡à´¨à´¿à´¯àµ»à´¸à´®àµ‹à´µàµ»à´·àµ‹à´£à´¸àµ‹à´®à´¾à´²à´¿à´…ൽബേനി" + - "യൻസെർബിയൻസàµà´µà´¾à´±àµà´±à´¿à´¤àµ†à´•àµà´•àµ» സോതോസàµà´¡à´¾à´¨àµ€à´¸àµà´¸àµà´µàµ€à´¡à´¿à´·àµà´¸àµà´µà´¾à´¹à´¿à´²à´¿à´¤à´®à´¿à´´àµà´¤àµ†à´²àµà´™àµà´•àµà´¤à´¾à´œà´¿à´•" + - "àµà´¤à´¾à´¯àµà´Ÿàµˆà´—àµà´°à´¿à´¨àµà´¯à´¤àµàµ¼à´•àµ\u200cമെൻതàµà´¸àµà´µà´¾à´¨à´Ÿàµ‹à´‚ഗൻടർകàµà´•à´¿à´·àµà´¤àµà´¸àµ‹à´‚ഗടാടàµà´Ÿàµ¼à´¤à´¾à´¹à´¿à´¤à´¿à´¯àµ»à´‰à´¯" + - "àµà´˜àµàµ¼à´‰à´•àµà´°àµ‡à´¨à´¿à´¯àµ»à´‰à´±àµà´¦àµà´‰à´¸àµ\u200cബെകàµà´•àµà´µàµ†à´¨àµà´¦à´µà´¿à´¯à´±àµà´±àµà´¨à´¾à´®àµ€à´¸àµà´µàµ‹à´³à´¾à´ªàµà´•àµà´µà´²àµà´²àµ‚ൺവൊളോഫ" + - "àµà´–ോസയിദàµà´¦à´¿à´·àµà´¯àµŠà´±àµ‚ബാസàµà´µà´¾à´‚à´—àµà´šàµˆà´¨àµ€à´¸àµà´¸àµà´²àµà´…ചിനീസàµà´…കോലിഅഡാങàµà´—മിഅഡൈഗേആഫàµà´°à´¿à´¹à´¿à´²à´¿à´†" + - "ഘേംഅയിനàµà´…à´•àµà´•à´¾à´¡à´¿à´¯àµ»à´…ലൈടàµà´Ÿàµà´¤àµ†à´•àµà´•àµ» അൾതàµà´¤à´¾à´¯à´¿à´ªà´´à´¯ ഇംഗàµà´²àµ€à´·àµà´†àµ»à´—ികഅരമായഭാഷമാപàµà´šà´¿" + - "അരപാഹോഅറാവകàµà´†à´¸àµà´“à´¸àµ\u200cà´Ÿàµà´°à´¿à´¯àµ»à´…വധിബലൂചിബാലിനീസàµà´¬à´¸à´¬à´¾à´®àµàµ»à´˜àµ‹à´®à´¾à´²à´¬àµ‡à´œà´¬àµ‡à´‚ബബെനാ" + - "ബാഫടàµà´Ÿàµà´­àµ‹à´œàµ\u200cപൂരിബികോൽബിനികോംസികàµà´¸à´¿à´•à´¬àµà´°à´œàµà´¬àµ‹à´¡àµ‹à´…à´•àµà´•àµ‚à´¸àµà´¬àµà´±à´¿à´¯à´¤àµà´¤àµà´¬àµà´—à´¿à´¨" + - "ീസàµà´¬àµà´³àµà´¬àµà´²à´¿àµ»à´®àµ†à´¡àµà´‚ബകാഡോകാരിബàµà´•à´¯àµ‚à´—à´…à´±àµà´±àµà´¸à´¾à´‚സെബàµà´µà´¾à´¨àµ‹à´šà´¿à´—à´šà´¿à´¬àµà´šà´šà´—തൈചൂകീസàµà´®à´¾à´°à´¿" + - "ചിനൂഗàµ-ജാർഗൺചോകàµà´±àµà´±à´¾à´µàµà´šà´¿à´ªàµ‡à´µàµà´¯àµ»à´·àµ†à´°àµ‹à´•àµà´•à´¿à´šà´¿à´¯àµ‡à´¨àµà´¨àµ‡à´¸àµŠà´±à´¾à´¨à´¿ à´•àµàµ¼à´¦à´¿à´·àµà´•àµ‹à´ªàµà´±àµà´±à´¿à´•àµ" + - "à´•àµà´°à´¿à´®à´¿à´¯àµ» ടർകàµà´•à´¿à´·àµà´•à´¾à´·àµà´¬à´¿à´¯à´¾àµ»à´¡à´•àµ‹à´Ÿàµà´Ÿà´¡àµ¼à´—àµà´µà´¾à´¤àµˆà´¤à´¦à´²à´µà´¾à´°àµ†à´¸àµà´²àµ‡à´µàµà´¡àµ‹à´—àµà´°à´¿à´¬àµà´¦à´¿àµ»à´•à´¸à´¾àµ¼à´®àµ" + - "മഡോഗàµà´°à´¿à´²àµ‹à´µàµ¼ സോർബിയൻദàµà´µà´¾à´²à´®à´¦àµà´§àµà´¯ à´¡à´šàµà´šàµà´¯àµ‹à´²-ഫോനàµà´¯à´¿à´¦àµà´µàµˆà´²à´¡à´¾à´¸à´¾à´—à´Žà´‚à´¬àµà´Žà´«à´¿à´•àµà´ªàµà´°à´¾à´š" + - "ീന ഈജിപàµà´·àµà´¯àµ»à´Žà´•à´¾à´œàµà´•àµà´Žà´²à´¾à´®àµˆà´±àµà´±àµà´®à´¦àµà´§àµà´¯ ഇംഗàµà´²àµ€à´·àµà´Žà´µàµ‹àµ»à´¡àµ‹à´«à´™àµà´«à´¿à´²à´¿à´ªàµà´ªà´¿à´¨àµ‹à´«àµ‹àµ»à´®à´¦àµà´§àµ" + - "à´¯ à´«àµà´°à´žàµà´šàµà´ªà´´à´¯ à´«àµà´°à´žàµà´šàµà´¨àµ‹àµ¼à´¤àµà´¤àµ‡àµ» à´«àµà´°à´¿à´·àµà´¯àµ»à´ˆà´¸àµà´±àµà´±àµ‡àµº à´«àµà´°à´¿à´·àµà´¯àµ»à´«àµà´°à´¿à´¯àµà´²à´¿à´¯à´¾àµ»à´—ാഗാഗ" + - "ൂസàµà´—യൊഗബàµà´¯à´—ീസàµà´—ിൽബർസേമദàµà´§àµà´¯ ഉചàµà´š ജർമൻപàµà´°à´¾à´šàµ€à´¨ ഉചàµà´š ജർമൻഗോണàµà´¡à´¿à´—ൊറോൻറാലോഗ" + - "ോഥികàµà´•àµà´—àµà´°à´¬àµŠà´ªàµà´°à´¾à´¤à´¨ യവന ഭാഷസàµà´µà´¿à´¸àµ ജർമàµà´®àµ»à´—àµà´¸àµ€à´—àµà´µà´¿à´šàµà´šàµ ഇൻഹൈഡഹവായിയൻഹിലിഗയ" + - "àµà´¨àµ‹àµºà´¹à´¿à´±àµà´±àµˆà´±àµà´±àµ‡à´®àµ‹à´™àµà´…à´ªàµà´ªàµ¼ സോർബിയൻഹൂപഇബാൻഇബീബിയോഇലോകോഇംഗàµà´µà´¿à´·àµà´²àµ‹à´œàµà´¬à´¾àµ»à´—ോമàµà´ª" + - "മചേംജൂഡിയോ-പേർഷàµà´¯àµ»à´œàµ‚ഡിയോ-അറബികàµà´•à´°-കാൽപàµà´ªà´•àµà´•à´¬àµˆàµ½à´•à´¾à´šà´¿àµ»à´œàµà´œàµà´•à´‚ബകാവികബർഡിയാൻ" + - "കനെംബàµà´Ÿàµà´¯à´¾à´ªàµà´®à´•àµà´•àµ‹à´£àµà´Ÿàµ†à´•à´¬àµà´µàµ†àµ¼à´¦à´¿à´¯à´¾à´¨àµà´•àµ‹à´±àµ‹à´˜à´¾à´¸à´¿à´˜àµ‹à´±àµà´±à´¾à´¨àµ‡à´¸àµ‡à´•àµŠà´¯àµà´± ചീനികകàµà´•àµ‹à´•à´²àµ†à´ž" + - "àµà´žà´¿àµ»à´•àµà´²à´¿à´‚ഗൻകോമി-പെർമàµà´¯à´¾à´•àµà´•àµà´•àµŠà´™àµà´•à´£à´¿à´•àµŠà´¸à´±àµ‡à´¯àµ»à´•à´ªàµ†à´²àµà´²àµ‡à´•à´°à´šàµˆ-ബാൽകർകരീലിയൻകàµà´°àµà´–" + - "àµà´·à´‚ഭാളഭാഫിയകൊളോഞàµà´žà´¿à´¯àµ»à´•àµà´®àµˆà´•àµà´•àµà´¤àµ‡à´¨àµˆà´²à´¾à´¡à´¿à´¨àµ‹à´²à´¾à´‚ഗിലഹàµ\u200cൻഡലംബലഹàµà´—ിയാൻലഗോത" + - "àµà´¤à´®àµ‹à´™àµà´•àµ‹à´²àµŠà´¸à´¿à´²àµ‚à´¬-à´²àµà´²àµà´µà´²àµ‚യിസെനോലàµàµ»à´¡à´²àµà´µàµ‹à´®à´¿à´¸àµ‹à´²àµà´¯à´¿à´¯à´®à´¦àµà´°àµ‡à´¸àµ‡à´®à´¾à´«à´®à´—ാഹിമൈഥിലിമകാ" + - "സർമണàµà´¡à´¿àµ»à´—ോമസായàµà´®à´¾à´¬à´®àµ‹à´•àµà´·à´®à´£àµà´¡à´¾àµ¼à´®àµ†àµ»à´¡àµ†à´®àµ‡à´°àµà´®àµŠà´±à´¿à´¸à´¿àµ»à´®à´¦àµà´§àµà´¯ à´à´±à´¿à´·àµà´®à´¾à´–àµà´µà´¾-മീതàµà´¤àµ‹" + - "മേതàµà´¤à´¾à´®à´¿à´•àµà´®à´¾à´•àµà´®à´¿à´¨à´¾à´™àµà´•à´¬àµ—മൻചàµà´®à´£à´¿à´ªàµà´ªàµ‚രിമോഹാകàµà´®àµŠà´¸àµà´¸à´¿à´®àµà´¨àµà´¦à´¾à´‚à´—àµà´ªà´²à´­à´¾à´·à´•àµ¾à´•àµà´°àµ€à´•àµ" + - "à´•àµà´®à´¿à´°à´¾àµ»à´±à´¸àµ‡à´®àµ¼à´µà´¾à´°à´¿à´®à´¯àµ€àµ»à´à´´àµà´¸àµà´¯à´¨àµ†à´ªàµà´ªàµ‹à´³à´¿à´±àµà´±à´¾àµ»à´¨à´¾à´®à´²àµ‹ ജർമൻനേവാരിനിയാസàµà´¨àµà´¯àµà´µà´¾àµ»à´•àµ" + - "വാസിയോഗീംബൂൺനോഗൈപഴയ പേർഷàµà´¯àµ»à´‡àµ»à´•àµ‹à´¨àµ‹àµ¼à´¤àµà´¤àµ‡àµ» സോതോനàµà´µàµ‡àµ¼à´•àµà´²à´¾à´¸à´¿à´•àµà´•àµ½ നേവാരിനàµà´¯à´¾" + - "ംവേസിനàµà´¯à´¾àµ»à´•àµ‹àµ¾à´¨àµà´¯àµ‹à´±àµ‹à´¸à´¿à´®à´’സേജàµà´“à´Ÿàµà´Ÿàµ‹à´®àµ» à´¤àµàµ¼à´•àµà´•à´¿à´·àµà´ªà´™àµà´•à´¾à´¸à´¿à´¨àµ»à´ªà´¾à´¹àµà´²à´µà´¿à´ªà´¾à´‚പൻഗപാപി" + - "യാമെൻറൊപലാവàµàµ»à´ªàµà´°à´¾à´šàµ€à´¨ പേർഷàµà´¯àµ»à´«àµ€à´¨à´¿à´·àµà´¯àµ»à´ªàµŠàµ»à´ªà´¿à´¯àµ»à´ªàµà´°àµŠà´µàµ»à´·àµàµ½à´•àµà´µà´¿à´šàµà´šàµ†à´°à´¾à´œà´¸àµà´¥à´¾à´¨à´¿à´°" + - "ാപനൂയിരാരോടോങàµà´•àµ»à´±àµ‹à´‚ബോറോമനിആരോമാനിയൻറàµà´µà´¾à´¸à´¾àµ»à´¡à´µàµ‡à´¸à´¾à´–സമരിയാകàµà´•à´¾à´°àµà´Ÿàµ† അരമായസം" + - "à´¬àµà´°àµà´¸à´¸à´¾à´•àµà´¸à´¨àµà´¤à´¾à´²à´¿à´—ംബായàµà´¸à´‚à´—àµà´¸à´¿à´¸à´¿à´²à´¿à´¯àµ»à´¸àµà´•àµ‹à´Ÿàµà´¸àµà´¸àµ†à´¨àµ‡à´•à´¸àµ‡à´¨à´¸àµ†àµ½à´•à´ªàµà´•àµŠà´¯àµà´±à´¾à´¬àµŠà´±àµ‹ സെന" + - "àµà´¨à´¿à´ªàµà´°à´¾à´šàµ€à´¨ à´à´±à´¿à´·àµà´¤à´¾à´šàµà´šà´²à´¿à´±àµà´±àµà´·à´¾àµ»à´šà´¾à´¡àµ അറബിസിഡാമോതെകàµà´•àµ» സാമിലൂലീ സമിഇനാരി " + - "സാമിസàµà´•àµ‹àµ¾à´Ÿàµà´Ÿàµ സമിസോണിൻകെസോജിഡിയൻശàµà´°à´¾à´¨àµ» ഡോങàµà´•àµ‹à´¸àµ†à´±àµ¼à´¸à´¾à´¹àµ‹à´¸àµà´•àµà´®à´¸àµà´¸àµà´¸àµà´®àµ‡à´°à´¿à´¯àµ»" + - "കൊമോറിയൻകോംഗോ à´¸àµà´µà´¾à´¹à´¿à´²à´¿à´ªàµà´°à´¾à´¤à´¨ à´¸àµà´±à´¿à´¯à´¾à´¨à´¿à´­à´¾à´·à´¸àµà´±à´¿à´¯à´¾à´¨à´¿à´Ÿà´¿à´‚നേടെസോടെറേനോടെറàµà´±àµà´‚" + - "ടൈഗàµà´°à´¿à´Ÿà´¿à´µàµà´ŸàµŠà´•àµà´•àµ‡à´²àµ—à´•àµà´²à´¿à´‚ഗോൺലിംഗàµà´µà´¿à´±àµà´±àµà´Ÿà´®à´·àµ‡à´•àµà´¨àµà´¯à´¾à´¸à´¾ ഡോങàµà´•à´Ÿàµ‹à´•àµ പിസിൻതരോകàµ" + - "കോസിംഷàµà´¯àµ»à´Ÿàµà´‚à´¬àµà´•à´¤àµà´µà´¾à´²àµà´Ÿà´¸à´µà´¾à´•àµà´•àµà´¤àµà´µà´¿à´¨à´¿à´¯àµ»à´®à´§àµà´¯ à´…à´±àµà´±àµ\u200cലസൠടമാസൈറàµà´±àµà´‰à´¡àµà´®" + - "àµàµ¼à´Ÿàµà´Ÿàµà´‰à´—റിടàµà´Ÿà´¿à´•àµà´‰à´‚à´¬àµà´¨àµà´¦àµà´®àµ‚ലഭാഷവൈവോടàµà´Ÿà´¿à´•àµà´µàµà´žàµà´œàµ‹à´µà´¾àµ¾à´¸àµ¼à´µà´²à´®àµŠà´µà´¾à´°àµ‡à´¯àµà´µà´¾à´·àµŠà´•àµ½à´®àµˆà´•" + - "àµà´¸àµ‹à´—ോയാവോയെപàµà´ªàµ€à´¸àµà´¯à´¾à´‚à´—àµà´¬àµ†àµ»à´¯à´‚ബകാനàµà´±à´£àµ€à´¸àµà´¸à´¾à´ªàµà´ªàµ‹à´Ÿàµ†à´•àµà´¬àµà´²à´¿à´¸àµà´¸à´¿à´‚ബൽസàµà´¸àµ†à´¨à´—മൊറോകàµ" + - "കൻ സാധാരണ താമസൈറàµà´±àµà´¸àµà´¨à´¿à´­à´¾à´·à´¾à´ªà´°à´®à´¾à´¯ ഉളàµà´³à´Ÿà´•àµà´•à´®àµŠà´¨àµà´¨àµà´®à´¿à´²àµà´²à´¸à´¾à´¸à´¾à´†à´§àµà´¨à´¿à´• à´¸àµà´±àµà´±à´¾àµ»" + - "ഡേർഡൠഅറബികàµà´“à´¸àµ\u200cà´Ÿàµà´°à´¿à´¯àµ» ജർമൻസàµà´µà´¿à´¸àµ ഹൈ ജർമൻഓസàµ\u200cà´Ÿàµà´°àµ‡à´²à´¿à´¯àµ» ഇംഗàµà´²àµ€" + - "à´·àµà´•à´¨àµ‡à´¡à´¿à´¯àµ» ഇംഗàµà´²àµ€à´·àµà´¬àµà´°à´¿à´Ÿàµà´Ÿàµ€à´·àµ ഇംഗàµà´²àµ€à´·àµà´…മേരികàµà´•àµ» ഇംഗàµà´²àµ€à´·àµà´²à´¾à´±àµà´±à´¿àµ» അമേരികàµ" + - "കൻ à´¸àµ\u200cപാനിഷàµà´¯àµ‚റോപàµà´¯àµ» à´¸àµ\u200cപാനിഷàµà´®àµ†à´•àµà´¸à´¿à´•àµà´•àµ» à´¸àµà´ªà´¾à´¨à´¿à´·àµà´•à´¨àµ‡à´¡à´¿à´¯àµ» à´«àµà´°" + - "à´žàµà´šàµà´¸àµà´µà´¿à´¸àµ à´«àµà´°à´žàµà´šàµà´«àµà´²à´®à´¿à´·àµà´¬àµà´°à´¸àµ€à´²à´¿à´¯àµ» പോർചàµà´šàµà´—ീസàµà´¯àµ‚റോപàµà´¯àµ» പോർചàµà´šàµà´—ീസàµà´®àµ‹àµ¾à´¡" + - "ാവിയൻസെർബോ-à´•àµà´°àµŠà´¯àµ‡à´·àµà´¯àµ»à´šàµ€à´¨à´­à´¾à´·-ലളിതലിപിചീനഭാഷ-പരമàµà´ªà´°à´¾à´—തലിപി" - -// Size: 1234 bytes, 605 elements -var mlLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000c, 0x002a, 0x0045, 0x0069, 0x0078, 0x0090, 0x00a8, - 0x00ba, 0x00d5, 0x00ea, 0x00fc, 0x0117, 0x0129, 0x0147, 0x015f, - 0x0177, 0x0186, 0x0198, 0x01ad, 0x01c5, 0x01dd, 0x01f5, 0x0201, - 0x0210, 0x022b, 0x0237, 0x0249, 0x0274, 0x0286, 0x0295, 0x02a7, - 0x02b9, 0x02cb, 0x02da, 0x02e3, 0x02fb, 0x0313, 0x0334, 0x034f, - 0x0370, 0x0385, 0x039a, 0x03a3, 0x03bb, 0x03cd, 0x03df, 0x03f4, - 0x041f, 0x042e, 0x045f, 0x0474, 0x0486, 0x04a1, 0x04b0, 0x04b9, - 0x04cb, 0x04dd, 0x04f6, 0x0514, 0x052f, 0x0547, 0x055f, 0x0571, - // Entry 40 - 7F - 0x0598, 0x05b6, 0x05d7, 0x05e6, 0x05fb, 0x0616, 0x061f, 0x0640, - 0x065b, 0x068b, 0x06a6, 0x06be, 0x06d3, 0x06e2, 0x06f4, 0x070c, - 0x071b, 0x073f, 0x074b, 0x075a, 0x076c, 0x077b, 0x0796, 0x07b1, - 0x07bd, 0x07d2, 0x07e7, 0x07fc, 0x0820, 0x082f, 0x084a, 0x085c, - 0x0868, 0x0886, 0x08a2, 0x08c0, 0x08d2, 0x08f0, 0x08ff, 0x091d, - 0x092f, 0x0947, 0x095c, 0x096b, 0x0986, 0x0998, 0x09a4, 0x09c9, - 0x09e1, 0x09f0, 0x09ff, 0x0a39, 0x0a6a, 0x0a92, 0x0aa1, 0x0ab0, - 0x0ace, 0x0ae3, 0x0af2, 0x0afe, 0x0b1f, 0x0b34, 0x0b40, 0x0b52, - // Entry 80 - BF - 0x0b61, 0x0b82, 0x0b9d, 0x0bb5, 0x0bc7, 0x0bdf, 0x0bee, 0x0c12, - 0x0c2d, 0x0c48, 0x0c5a, 0x0c76, 0x0c85, 0x0c94, 0x0cac, 0x0cca, - 0x0cd9, 0x0ce2, 0x0cf4, 0x0d0c, 0x0d21, 0x0d39, 0x0d58, 0x0d70, - 0x0d88, 0x0da0, 0x0daf, 0x0dc7, 0x0dd9, 0x0de5, 0x0e00, 0x0e1b, - 0x0e30, 0x0e3f, 0x0e57, 0x0e69, 0x0e7b, 0x0e93, 0x0ea5, 0x0ec0, - 0x0ecf, 0x0eed, 0x0efc, 0x0f23, 0x0f3b, 0x0f4d, 0x0f5f, 0x0f68, - 0x0f80, 0x0f92, 0x0fa7, 0x0fb9, 0x0fc5, 0x0fda, 0x0fe9, 0x1001, - 0x1010, 0x1010, 0x102b, 0x1037, 0x1046, 0x1061, 0x1061, 0x1076, - // Entry C0 - FF - 0x1076, 0x10a1, 0x10c3, 0x10d2, 0x10ea, 0x10fc, 0x10fc, 0x110e, - 0x110e, 0x1120, 0x1120, 0x1120, 0x1129, 0x1129, 0x1147, 0x1147, - 0x1153, 0x1153, 0x1162, 0x117a, 0x117a, 0x1180, 0x118f, 0x118f, - 0x119e, 0x11a7, 0x11b3, 0x11b3, 0x11bf, 0x11d4, 0x11d4, 0x11ef, - 0x11fe, 0x120a, 0x120a, 0x1213, 0x1228, 0x1228, 0x1228, 0x1237, - 0x1237, 0x1243, 0x1258, 0x1273, 0x128b, 0x1297, 0x12a6, 0x12b8, - 0x12c4, 0x12d6, 0x12e2, 0x12fa, 0x1312, 0x131b, 0x132a, 0x1336, - 0x1348, 0x1354, 0x1376, 0x1394, 0x13ac, 0x13c4, 0x13dc, 0x1404, - // Entry 100 - 13F - 0x1422, 0x1422, 0x1453, 0x146e, 0x1480, 0x1492, 0x149b, 0x14ad, - 0x14bf, 0x14d7, 0x14e3, 0x14f5, 0x1507, 0x1529, 0x1529, 0x1538, - 0x155a, 0x1576, 0x1585, 0x1594, 0x15a0, 0x15af, 0x15af, 0x15e0, - 0x15f5, 0x1610, 0x163b, 0x163b, 0x164d, 0x164d, 0x1656, 0x1674, - 0x1674, 0x167d, 0x167d, 0x16a5, 0x16c4, 0x16c4, 0x16f5, 0x1726, - 0x1747, 0x174d, 0x175f, 0x175f, 0x1768, 0x1774, 0x1774, 0x1780, - 0x1795, 0x1795, 0x17c1, 0x17f0, 0x17f0, 0x1802, 0x181d, 0x1835, - 0x1844, 0x186a, 0x188f, 0x188f, 0x188f, 0x189b, 0x18ba, 0x18c3, - // Entry 140 - 17F - 0x18c3, 0x18d8, 0x18d8, 0x18f6, 0x1914, 0x1920, 0x1945, 0x1945, - 0x194e, 0x195a, 0x196f, 0x197e, 0x1996, 0x1996, 0x1996, 0x19ab, - 0x19ba, 0x19c6, 0x19ee, 0x1a13, 0x1a13, 0x1a32, 0x1a3e, 0x1a4d, - 0x1a59, 0x1a62, 0x1a6e, 0x1a86, 0x1a98, 0x1aaa, 0x1ac5, 0x1ae9, - 0x1ae9, 0x1af5, 0x1af5, 0x1b01, 0x1b1f, 0x1b3b, 0x1b3b, 0x1b3b, - 0x1b4a, 0x1b62, 0x1b77, 0x1ba5, 0x1bba, 0x1bcf, 0x1be4, 0x1c00, - 0x1c00, 0x1c00, 0x1c15, 0x1c27, 0x1c36, 0x1c45, 0x1c63, 0x1c75, - 0x1c87, 0x1c99, 0x1ca8, 0x1cba, 0x1cc3, 0x1cdb, 0x1cdb, 0x1cdb, - // Entry 180 - 1BF - 0x1cdb, 0x1ced, 0x1ced, 0x1cff, 0x1d0b, 0x1d0b, 0x1d24, 0x1d3c, - 0x1d48, 0x1d54, 0x1d60, 0x1d6f, 0x1d6f, 0x1d6f, 0x1d84, 0x1d8d, - 0x1d9c, 0x1dae, 0x1dbd, 0x1dd5, 0x1de4, 0x1ded, 0x1dfc, 0x1e0e, - 0x1e1d, 0x1e29, 0x1e3e, 0x1e60, 0x1e85, 0x1e97, 0x1eaf, 0x1eca, - 0x1ed6, 0x1ef1, 0x1f03, 0x1f15, 0x1f15, 0x1f30, 0x1f45, 0x1f5d, - 0x1f75, 0x1f87, 0x1f87, 0x1f93, 0x1fa5, 0x1fa5, 0x1fa5, 0x1fcc, - 0x1fd5, 0x1fe8, 0x1ffa, 0x200c, 0x2021, 0x2021, 0x2039, 0x204b, - 0x2057, 0x2076, 0x2076, 0x2082, 0x20a7, 0x20b6, 0x20e7, 0x2102, - // Entry 1C0 - 1FF - 0x211a, 0x212c, 0x2135, 0x2144, 0x2175, 0x2190, 0x21a5, 0x21b7, - 0x21d8, 0x21ea, 0x21ea, 0x21ea, 0x21ea, 0x2215, 0x2215, 0x222d, - 0x222d, 0x222d, 0x2242, 0x2242, 0x225d, 0x2275, 0x2275, 0x2290, - 0x22a5, 0x22c3, 0x22c3, 0x22c3, 0x22d2, 0x22e1, 0x22e1, 0x22e1, - 0x22e1, 0x22fc, 0x2308, 0x231a, 0x2323, 0x235d, 0x236f, 0x237e, - 0x2393, 0x2393, 0x23a5, 0x23b1, 0x23c9, 0x23e1, 0x23e1, 0x23f0, - 0x23f9, 0x23f9, 0x240b, 0x243c, 0x2461, 0x2461, 0x2482, 0x248b, - 0x24a4, 0x24b6, 0x24b6, 0x24b6, 0x24d5, 0x24eb, 0x2507, 0x252c, - // Entry 200 - 23F - 0x2541, 0x2559, 0x257e, 0x258a, 0x2596, 0x2596, 0x25a5, 0x25b1, - 0x25c9, 0x25e1, 0x2609, 0x263d, 0x2655, 0x2655, 0x2655, 0x2664, - 0x2670, 0x2682, 0x2697, 0x26a9, 0x26b5, 0x26cd, 0x26cd, 0x26e5, - 0x2706, 0x2706, 0x2718, 0x273a, 0x2756, 0x2756, 0x276b, 0x276b, - 0x2780, 0x2780, 0x2792, 0x27a4, 0x27bc, 0x27d4, 0x2818, 0x2836, - 0x2854, 0x286c, 0x287e, 0x2884, 0x2884, 0x2884, 0x2884, 0x2884, - 0x289c, 0x289c, 0x28ae, 0x28bd, 0x28c9, 0x28db, 0x28e7, 0x28e7, - 0x28e7, 0x28f9, 0x28f9, 0x2905, 0x2911, 0x2929, 0x2941, 0x294a, - // Entry 240 - 27F - 0x294a, 0x2965, 0x2983, 0x29aa, 0x29aa, 0x29b6, 0x29fd, 0x2a09, - 0x2a5e, 0x2a6a, 0x2ab4, 0x2adf, 0x2b05, 0x2b42, 0x2b70, 0x2ba7, - 0x2bdb, 0x2c28, 0x2c5c, 0x2c93, 0x2cbe, 0x2ce6, 0x2cfb, 0x2d38, - 0x2d72, 0x2d8d, 0x2dbb, 0x2de6, 0x2e20, -} - -// Size: 3152 bytes -var mnLangStr string = "" + - "абхазафрикаканамхарарабаÑÑамазербайжанбашкирбеларуÑьболгарбамбарабенгалт" + - "өвдбретонбоÑникаталанкорÑикчехуÑлÑданигерманжонхаÑвÑгреканглиÑÑперантои" + - "ÑпаниÑÑтонибаÑкперÑфинлÑндфижифарерфранцбаруун фризынирландшотланд келт" + - "галикгуаранигужаратиманкÑхауÑаеврейхиндихорватгаитиунгарарменинтерлингв" + - "оиндонезинÑгдмÑл Ñ…Ñлигбошичуан еииÑландиталиинуктитутÑпонÑвагүржкикуюүх" + - "аÑагкалалиÑуткамбожканнадаÑолонгоÑкашмиркүрдкорныкиргизлатинлюкÑембургг" + - "андалингалалаоÑлитвалуба-катангалатвималагаÑимаоримакедонмалайламмонгол" + - "маратималаймалтибирмхойд ндебелебалбаголланднорвегийн нинорÑкнорвегийн " + - "букмолфранцын окÑитаноромоориÑпанжабпольшпаштопортугалкечуароманшрундир" + - "умынороÑкинÑрвандаÑанÑкритÑиндхихойд ÑамиÑангоÑинхалаÑловакÑловеншонаÑо" + - "малиалбаниÑербÑунданшведÑвахилитамилтÑлүгүтажиктайтигринатуркментонгату" + - "рктатаруйгарукрайнурдуузбеквьетнамволофхоÑаиддишёрубахÑтадзулуагеммапүч" + - "иаÑубембабенабодочигачирокиÑорани күрдтайтазармаловер-Ñорбидуалажола-фо" + - "ниÑмбуфилиппингагузшвейцари германгузыхавайдÑÑд ÑорбингомбамачамÑкабиле" + - "камбамакондекабүвердианукойра чиникаленжинкоми-пермÑкконканишамбалабафи" + - "алангилакоталуолуÑамаÑаймерумориÑенмакува-митометамохаукмундангнамакваз" + - "ионконуернÑнколекичеромборваÑамбүрүÑангүÑенакёраборо Ñенитачелхитөмнөд " + - "Ñамилюле Ñамиинари ÑамиÑколт Ñамиконго ÑвахилитÑÑотаÑавактөв атлаÑын та" + - "мазайттодорхойгүй Ñ…ÑлвайвунжоÑогатамазитхÑл зүйн агуулга байхгүйÑтандар" + - "Ñ‚ арабавÑтри германшвейцари дÑÑÑ€ германавÑтрали англиканад англибритани" + - "йн англиамерикийн англилатин америкийн иÑпаниевропын иÑпанимекÑикийн иÑ" + - "паниканад францшвейцари францфламандпортугал (бразил)европын португалмо" + - "лдавхÑлбаршуулÑан Ñ…Ñтадуламжлалт Ñ…Ñтад" - -// Size: 1234 bytes, 605 elements -var mnLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x000a, 0x000a, 0x0014, 0x001c, 0x0026, 0x0026, - 0x002e, 0x0038, 0x0038, 0x0038, 0x004c, 0x0058, 0x0068, 0x0074, - 0x0074, 0x0082, 0x008e, 0x0096, 0x00a2, 0x00ac, 0x00ba, 0x00ba, - 0x00ba, 0x00c6, 0x00c6, 0x00cc, 0x00cc, 0x00cc, 0x00d4, 0x00dc, - 0x00e8, 0x00e8, 0x00f2, 0x00f8, 0x0100, 0x010a, 0x011c, 0x0128, - 0x0134, 0x013c, 0x0144, 0x0144, 0x0152, 0x015a, 0x0164, 0x016e, - 0x0187, 0x0193, 0x01aa, 0x01b4, 0x01c2, 0x01d2, 0x01dc, 0x01e6, - 0x01f0, 0x01fa, 0x01fa, 0x0206, 0x0210, 0x021a, 0x0224, 0x0224, - // Entry 40 - 7F - 0x023a, 0x024a, 0x025f, 0x0267, 0x0278, 0x0278, 0x0278, 0x0284, - 0x028e, 0x02a0, 0x02a8, 0x02ae, 0x02b6, 0x02b6, 0x02c2, 0x02c2, - 0x02cc, 0x02de, 0x02ea, 0x02f8, 0x0308, 0x0308, 0x0314, 0x031c, - 0x031c, 0x0326, 0x0332, 0x033c, 0x0350, 0x035a, 0x035a, 0x0368, - 0x0370, 0x037a, 0x0391, 0x039b, 0x03ab, 0x03ab, 0x03b5, 0x03c3, - 0x03d3, 0x03df, 0x03eb, 0x03f5, 0x03ff, 0x0407, 0x0407, 0x041e, - 0x0428, 0x0428, 0x0436, 0x0457, 0x0476, 0x0476, 0x0476, 0x0476, - 0x0493, 0x0493, 0x049d, 0x04a5, 0x04a5, 0x04b1, 0x04b1, 0x04bb, - // Entry 80 - BF - 0x04c5, 0x04d5, 0x04df, 0x04eb, 0x04f5, 0x04ff, 0x0507, 0x051b, - 0x052b, 0x052b, 0x0537, 0x0548, 0x0552, 0x0560, 0x056c, 0x0578, - 0x0578, 0x0580, 0x058c, 0x0598, 0x05a0, 0x05a0, 0x05a0, 0x05ac, - 0x05b4, 0x05c2, 0x05cc, 0x05d8, 0x05e2, 0x05e8, 0x05f6, 0x0604, - 0x0604, 0x060e, 0x0616, 0x0616, 0x0620, 0x0620, 0x062a, 0x0636, - 0x063e, 0x0648, 0x0648, 0x0656, 0x0656, 0x0656, 0x0660, 0x0668, - 0x0672, 0x067c, 0x067c, 0x0686, 0x068e, 0x068e, 0x068e, 0x068e, - 0x068e, 0x068e, 0x068e, 0x0696, 0x0696, 0x0696, 0x0696, 0x0696, - // Entry C0 - FF - 0x0696, 0x0696, 0x0696, 0x0696, 0x0696, 0x06a2, 0x06a2, 0x06a2, - 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a8, 0x06a8, 0x06a8, 0x06a8, - 0x06a8, 0x06a8, 0x06a8, 0x06a8, 0x06a8, 0x06a8, 0x06a8, 0x06a8, - 0x06a8, 0x06a8, 0x06b2, 0x06b2, 0x06ba, 0x06ba, 0x06ba, 0x06ba, - 0x06ba, 0x06ba, 0x06ba, 0x06ba, 0x06ba, 0x06ba, 0x06ba, 0x06ba, - 0x06ba, 0x06c2, 0x06c2, 0x06c2, 0x06c2, 0x06c2, 0x06c2, 0x06c2, - 0x06c2, 0x06c2, 0x06c2, 0x06c2, 0x06c2, 0x06ca, 0x06ca, 0x06ca, - 0x06ca, 0x06ca, 0x06ca, 0x06ca, 0x06ca, 0x06d6, 0x06d6, 0x06eb, - // Entry 100 - 13F - 0x06eb, 0x06eb, 0x06eb, 0x06eb, 0x06eb, 0x06eb, 0x06f5, 0x06f5, - 0x06f5, 0x06f5, 0x06f5, 0x06ff, 0x06ff, 0x0714, 0x0714, 0x071e, - 0x071e, 0x072f, 0x072f, 0x072f, 0x0737, 0x0737, 0x0737, 0x0737, - 0x0737, 0x0737, 0x0737, 0x0737, 0x0737, 0x0737, 0x0737, 0x0747, - 0x0747, 0x0747, 0x0747, 0x0747, 0x0747, 0x0747, 0x0747, 0x0747, - 0x0747, 0x0747, 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, - 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, - 0x0751, 0x0751, 0x076e, 0x076e, 0x076e, 0x0776, 0x0776, 0x0776, - // Entry 140 - 17F - 0x0776, 0x0780, 0x0780, 0x0780, 0x0780, 0x0780, 0x0793, 0x0793, - 0x0793, 0x0793, 0x0793, 0x0793, 0x0793, 0x0793, 0x0793, 0x0793, - 0x079f, 0x07ab, 0x07ab, 0x07ab, 0x07ab, 0x07ab, 0x07b7, 0x07b7, - 0x07b7, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07cf, 0x07e7, - 0x07e7, 0x07e7, 0x07e7, 0x07e7, 0x07e7, 0x07fa, 0x07fa, 0x07fa, - 0x07fa, 0x080a, 0x080a, 0x081f, 0x082d, 0x082d, 0x082d, 0x082d, - 0x082d, 0x082d, 0x082d, 0x082d, 0x083b, 0x0845, 0x0845, 0x0845, - 0x0845, 0x0845, 0x084f, 0x084f, 0x084f, 0x084f, 0x084f, 0x084f, - // Entry 180 - 1BF - 0x084f, 0x085b, 0x085b, 0x085b, 0x085b, 0x085b, 0x085b, 0x085b, - 0x085b, 0x0861, 0x0861, 0x0869, 0x0869, 0x0869, 0x0869, 0x0869, - 0x0869, 0x0869, 0x0869, 0x0869, 0x0873, 0x0873, 0x0873, 0x0873, - 0x0873, 0x087b, 0x0889, 0x0889, 0x089e, 0x08a6, 0x08a6, 0x08a6, - 0x08a6, 0x08a6, 0x08b2, 0x08b2, 0x08b2, 0x08c0, 0x08c0, 0x08c0, - 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, - 0x08c8, 0x08c8, 0x08c8, 0x08c8, 0x08c8, 0x08c8, 0x08d4, 0x08d4, - 0x08d4, 0x08d4, 0x08d4, 0x08da, 0x08da, 0x08e2, 0x08e2, 0x08e2, - // Entry 1C0 - 1FF - 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, - 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, - 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f8, 0x08f8, 0x08f8, - 0x08f8, 0x08f8, 0x08f8, 0x08f8, 0x0902, 0x0902, 0x0902, 0x0902, - 0x0902, 0x0902, 0x0908, 0x0908, 0x0908, 0x0908, 0x0916, 0x0916, - 0x0916, 0x0916, 0x0916, 0x0920, 0x0920, 0x0920, 0x0920, 0x0920, - 0x0928, 0x0928, 0x0928, 0x0941, 0x0941, 0x0941, 0x0951, 0x0951, - 0x0951, 0x0951, 0x0951, 0x0951, 0x0964, 0x0975, 0x0988, 0x099b, - // Entry 200 - 23F - 0x099b, 0x099b, 0x099b, 0x099b, 0x099b, 0x099b, 0x099b, 0x099b, - 0x099b, 0x099b, 0x09b4, 0x09b4, 0x09b4, 0x09b4, 0x09b4, 0x09b4, - 0x09bc, 0x09bc, 0x09bc, 0x09bc, 0x09bc, 0x09bc, 0x09bc, 0x09bc, - 0x09bc, 0x09bc, 0x09bc, 0x09bc, 0x09bc, 0x09bc, 0x09bc, 0x09bc, - 0x09bc, 0x09bc, 0x09bc, 0x09bc, 0x09ca, 0x09ca, 0x09f0, 0x09f0, - 0x09f0, 0x09f0, 0x0a0d, 0x0a13, 0x0a13, 0x0a13, 0x0a13, 0x0a13, - 0x0a13, 0x0a13, 0x0a1d, 0x0a1d, 0x0a1d, 0x0a1d, 0x0a1d, 0x0a1d, - 0x0a1d, 0x0a1d, 0x0a1d, 0x0a25, 0x0a25, 0x0a25, 0x0a25, 0x0a25, - // Entry 240 - 27F - 0x0a25, 0x0a25, 0x0a25, 0x0a25, 0x0a25, 0x0a25, 0x0a33, 0x0a33, - 0x0a60, 0x0a60, 0x0a79, 0x0a92, 0x0ab8, 0x0ad3, 0x0ae8, 0x0b05, - 0x0b22, 0x0b4c, 0x0b67, 0x0b86, 0x0b9b, 0x0bb6, 0x0bc4, 0x0be3, - 0x0c02, 0x0c0e, 0x0c0e, 0x0c33, 0x0c50, -} - -// Size: 10811 bytes -var mrLangStr string = "" + - "अफारअबखेजियनअवेसà¥à¤¤à¤¨à¤…फà¥à¤°à¤¿à¤•à¤¾à¤¨à¥à¤¸à¤…कानअमà¥à¤¹à¤¾à¤°à¤¿à¤•à¤…रà¥à¤—ोनीजअरबीआसामीअ\u200dॅवà¥à¤¹à¥‡à¤°à¤¿" + - "कà¤à¤®à¤°à¤¾à¤…à¤à¤°à¤¬à¥ˆà¤œà¤¾à¤¨à¥€à¤¬à¤·à¥à¤•à¤¿à¤°à¤¬à¥‡à¤²à¤¾à¤°à¥à¤¶à¤¿à¤¯à¤¨à¤¬à¤²à¥à¤—ेरियनबिसà¥à¤²à¤¾à¤®à¤¾à¤¬à¤¾à¤®à¥à¤¬à¤¾à¤°à¤¾à¤¬à¤‚गालीतिबेटीबà¥à¤°" + - "ेतॉनबोसà¥à¤¨à¤¿à¤¯à¤¨à¤•à¤¾à¤¤à¤¾à¤²à¤¾à¤¨à¤šà¥‡à¤šà¤¨à¤•à¥…मोरोकॉरà¥à¤¸à¤¿à¤•à¤¨à¤•à¥à¤°à¥€à¤à¥‡à¤•à¤šà¤°à¥à¤š सà¥à¤²à¤¾à¤µà¥à¤¹à¤¿à¤•à¤šà¥‚वाशवेलà¥à¤¶à¤¡à¥…" + - "निशजरà¥à¤®à¤¨à¤¦à¤¿à¤µà¥‡à¤¹à¥€à¤à¥‹à¤‚गखाà¤à¤µà¥‡à¤—à¥à¤°à¥€à¤•à¤‡à¤‚गà¥à¤°à¤œà¥€à¤à¤¸à¥à¤ªà¤°à¤¾à¤¨à¥à¤Ÿà¥‹à¤¸à¥à¤ªà¥…निशइसà¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¨à¤¬à¤¾à¤¸à¥à¤•à¤«à¤¾à¤°à¤¸" + - "ीफà¥à¤²à¤¾à¤¹à¤«à¤¿à¤¨à¥à¤¨à¤¿à¤¶à¤«à¤¿à¤œà¤¿à¤¯à¤¨à¤«à¤°à¥‹à¤‡à¤œà¤«à¥à¤°à¥‡à¤‚चपशà¥à¤šà¤¿à¤®à¥€ फà¥à¤°à¤¿à¤¶à¤¿à¤¯à¤¨à¤†à¤¯à¤°à¤¿à¤¶à¤¸à¥à¤•à¥‰à¤Ÿà¥à¤¸ गेलिकगॅलिशि" + - "यनगà¥à¤†à¤°à¤¨à¥€à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤®à¤¾à¤‚कà¥à¤¸à¤¹à¥Œà¤¸à¤¾à¤¹à¤¿à¤¬à¥à¤°à¥‚हिंदीहिरी मॉटूकà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¨à¤¹à¥ˆà¤¤à¥€à¤¯à¤¨à¤¹à¤‚गेरियनआर" + - "à¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¨à¤¹à¤°à¥‡à¤°à¥‹à¤‡à¤‚टरलिंगà¥à¤µà¤¾à¤‡à¤‚डोनेशियनइनà¥à¤Ÿà¤°à¤²à¤¿à¤‚गईगà¥à¤¬à¥‹à¤¸à¤¿à¤šà¥à¤†à¤¨ यीइनूपियाकइडौआईस" + - "लà¤à¤¡à¤¿à¤•à¤‡à¤Ÿà¤¾à¤²à¤¿à¤¯à¤¨à¤‡à¤¨à¥à¤•à¤¿à¤Ÿà¥à¤Ÿà¥à¤œà¤ªà¤¾à¤¨à¥€à¤œà¤¾à¤µà¤¾à¤¨à¥€à¤œà¤œà¥‰à¤°à¥à¤œà¤¿à¤¯à¤¨à¤•à¤¾à¤à¤—ोकिकà¥à¤¯à¥‚कà¥à¤µà¤¾à¤¨à¥à¤¯à¤¾à¤®à¤¾à¤•à¤à¤¾à¤•à¤•à¤²à¤¾à¤²" + - "à¥à¤²à¤¿à¤¸à¤¤à¤–à¥à¤®à¥‡à¤°à¤•à¤¨à¥à¤¨à¤¡à¤•à¥‹à¤°à¤¿à¤¯à¤¨à¤•à¤¨à¥à¤°à¥€à¤•à¤¾à¤¶à¥à¤®à¥€à¤°à¥€à¤•à¥à¤°à¥à¤¦à¤¿à¤¶à¤•à¥‹à¤®à¥€à¤•à¥‹à¤°à¥à¤¨à¤¿à¤¶à¤•à¤¿à¤°à¤—ीà¤à¤²à¥…टिनलकà¥à¤à¥‡à¤‚ब" + - "रà¥à¤—िशगांडालिंबूरà¥à¤—िशलिंगालालाओलिथà¥à¤†à¤¨à¤¿à¤¯à¤¨à¤²à¥à¤¯à¥‚बा-कटांगालातà¥à¤µà¥à¤¹à¤¿à¤¯à¤¨à¤®à¤²à¤¾à¤—सीमा" + - "रà¥à¤¶à¤²à¥€à¤œà¤®à¤¾à¤“रीमॅसेडोनियनमलà¥à¤¯à¤¾à¤³à¤®à¤®à¤‚गोलियनमराठीमलयमालà¥à¤Ÿà¤¿à¤œà¥à¤¬à¤°à¥à¤®à¥€à¤¨à¤‰à¤°à¥‚उतà¥à¤¤à¤° देब" + - "ेलीनेपाळीडोंगाडचनॉरà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨ नà¥à¤¯à¥‹à¤°à¥à¤¸à¥à¤•à¤¨à¥‰à¤°à¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨ बोकमालदकà¥à¤·à¤¿à¤£à¤¾à¤¤à¥à¤¯ देबेली" + - "नावाजोनà¥à¤¯à¤¾à¤¨à¥à¤œà¤¾à¤‘कà¥à¤¸à¤¿à¤¤à¤¾à¤¨à¤“जिबà¥à¤µà¤¾à¤“रोमोउडियाओसà¥à¤¸à¥‡à¤Ÿà¤¿à¤•à¤ªà¤‚जाबीपालीपोलिशपशà¥à¤¤à¥‹à¤ªà¥‹à¤°" + - "à¥à¤¤à¥à¤—ीजकà¥à¤µà¥‡à¤šà¥à¤†à¤°à¥‹à¤®à¤¾à¤¨à¥à¤¶à¤°à¥à¤¨à¥à¤¦à¥€à¤°à¥‹à¤®à¤¾à¤¨à¤¿à¤¯à¤¨à¤°à¤¶à¤¿à¤¯à¤¨à¤•à¤¿à¤¨à¥à¤¯à¤¾à¤°à¥à¤µà¤¾à¤¨à¥à¤¡à¤¾à¤¸à¤‚सà¥à¤•à¥ƒà¤¤à¤¸à¤°à¥à¤¦à¤¿à¤¨à¤¿à¤¯à¤¨à¤¸" + - "िंधीउतà¥à¤¤à¤°à¥€ सामीसांगोसिंहलासà¥à¤²à¥‹à¤µà¥à¤¹à¤¾à¤•à¤¸à¥à¤²à¥‹à¤µà¥à¤¹à¥‡à¤¨à¤¿à¤¯à¤¨à¤¸à¤¾à¤®à¥‹à¤…नशोनासोमालीअलà¥à¤¬à¤¾à¤¨à¤¿" + - "यनसरà¥à¤¬à¤¿à¤¯à¤¨à¤¸à¥à¤µà¤¾à¤¤à¥€à¤¸à¥‡à¤¸à¥‹à¤¥à¥‹à¤¸à¥à¤‚दानीजसà¥à¤µà¥€à¤¡à¤¿à¤¶à¤¸à¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤¤à¤¾à¤®à¤¿à¤³à¤¤à¥‡à¤²à¤—ूताजिकथाईतिगà¥à¤°à¤¿à¤¨à¥" + - "यातà¥à¤°à¥à¤•à¤®à¥‡à¤¨à¤¤à¥à¤¸à¥à¤µà¤¾à¤¨à¤¾à¤Ÿà¥‹à¤‚गनतà¥à¤°à¥à¤•à¥€à¤¸à¥‹à¤‚गातातरताहितीयनउइगà¥à¤°à¤¯à¥à¤•à¥à¤°à¥‡à¤¨à¤¿à¤¯à¤¨à¤‰à¤°à¥à¤¦à¥‚उà¤à¥à¤¬" + - "ेकवà¥à¤¹à¥‡à¤‚दावà¥à¤¹à¤¿à¤à¤¤à¤¨à¤¾à¤®à¥€à¤“लापà¥à¤•à¤µà¤¾à¤²à¥‚नवोलोफखोसायिदà¥à¤¦à¤¿à¤¶à¤¯à¥‹à¤°à¥à¤¬à¤¾à¤à¥à¤†à¤‚गचीनीà¤à¥à¤²à¥‚अचीनी" + - "अकोलीअडांगà¥à¤®à¥‡à¤…डिघेअफà¥à¤°à¤¿à¤¹à¤¿à¤²à¥€à¤…घेमà¤à¤¨à¥‚अकà¥à¤•à¤¾à¤¦à¤¿à¤†à¤¨à¤…लेउतदकà¥à¤·à¤¿à¤£à¤¾à¤¤à¥à¤¯ अलà¥à¤¤à¤¾à¤ˆà¤ªà¥à¤°à¤¾à¤¤" + - "न इंगà¥à¤°à¤œà¥€à¤…ंगिकाअ\u200dॅरेमाइकमापà¥à¤šà¥€à¤…राफाओअरावकअसà¥à¤…सà¥à¤¤à¥à¤°à¤¿à¤¯à¤¨à¤…वधीबलà¥à¤šà¥€à¤¬à¤¾à¤²" + - "िनीसबसाबेजाबेमà¥à¤¬à¤¾à¤¬à¥‡à¤¨à¤¾à¤­à¥‹à¤œà¤ªà¥à¤°à¥€à¤¬à¤¿à¤•à¥‹à¤²à¤¬à¤¿à¤¨à¥€à¤¸à¤¿à¤•à¥à¤¸à¤¿à¤•à¤¾à¤¬à¥à¤°à¤œà¤¬à¥‹à¤¡à¥‹à¤¬à¥à¤°à¤¿à¤¯à¤¾à¤¤à¤¬à¤—िनीसबà¥à¤²à¤¿" + - "नकॅडà¥à¤¡à¥‹à¤•à¥…रिबअतà¥à¤¸à¤®à¤¸à¤¿à¤¬à¥à¤†à¤¨à¥‹à¤•à¤¿à¤—ाचिबà¥à¤šà¤¾à¤›à¤—ाताईचूकीसेमारीचिनूक जारगॉनचोकà¥à¤¤à¥Œà¤¶à¤¿" + - "पेवà¥à¤¯à¤¾à¤¨à¤šà¥‡à¤°à¥‹à¤•à¥€à¤¶à¥‡à¤¯à¥‡à¤¨à¥à¤¨à¤¸à¥‹à¤°à¤¾à¤¨à¥€ कà¥à¤°à¥à¤¦à¤¿à¤¶à¤•à¥‰à¤ªà¥à¤Ÿà¤¿à¤•à¤•à¥à¤°à¤¾à¤‡à¤®à¥€à¤¨ तà¥à¤°à¥à¤•à¥€à¤•à¤¾à¤¶à¥à¤¬à¤¿à¤¯à¤¨à¤¦à¤¾à¤•à¥‹à¤¤à¤¾" + - "दारà¥à¤—वातायताडेलॅवेयरसà¥à¤²à¤¾à¤µà¥à¤¹à¤¡à¥‹à¤—à¥à¤°à¤¿à¤¬à¤¦à¤¿à¤¨à¥à¤•à¤¾à¤à¤¾à¤°à¥à¤®à¤¾à¤¡à¥‹à¤—रीलोअर सोरà¥à¤¬à¤¿à¤¯à¤¨à¤¦à¥à¤†à¤²à¤¾à¤®" + - "िडल डचजोला-फोंयीडà¥à¤¯à¥à¤²à¤¾à¤à¤®à¥à¤¬à¥‚à¤à¤«à¤¿à¤•à¤ªà¥à¤°à¤¾à¤šà¥€à¤¨ इजिपà¥à¤¶à¤¿à¤¯à¤¨à¤à¤•à¤¾à¤œà¥à¤•à¤à¤²à¤¾à¤®à¤¾à¤‡à¤Ÿà¤®à¤¿à¤¡à¤² इंगà¥" + - "रजीइवोनà¥à¤¡à¥‹à¤«à¤à¤—फिलिपिनोफॉनमिडल फà¥à¤°à¥‡à¤‚चपà¥à¤°à¤¾à¤¤à¤¨ फà¥à¤°à¥‡à¤‚चउतà¥à¤¤à¤°à¥€ फà¥à¤°à¤¿à¤¶à¤¿à¤¯à¤¨à¤ªà¥Œà¤°à¥à¤µà¤¾à¤¤" + - "à¥à¤¯ फà¥à¤°à¤¿à¤¶à¤¿à¤¯à¤¨à¤«à¥à¤°à¤¿à¤¯à¥à¤²à¤¿à¤¯à¤¾à¤¨Gaगागाउà¤à¤—ायोबायागीà¤à¤œà¤¿à¤²à¥à¤¬à¤°à¤Ÿà¥€à¤œà¤®à¤¿à¤¡à¤² हाय जरà¥à¤®à¤¨à¤ªà¥à¤°à¤¾à¤¤à¤¨" + - " हाइ जरà¥à¤®à¤¨à¤—ाà¤à¤¡à¥€à¤—ोरोनà¥à¤¤à¤¾à¤²à¥‹à¤—ॉथिकगà¥à¤°à¥‡à¤¬à¥‹à¤ªà¥à¤°à¤¾à¤šà¥€à¤¨ गà¥à¤°à¥€à¤•à¤¸à¥à¤µà¤¿à¤¸ जरà¥à¤®à¤¨à¤—सीगà¥à¤µà¤¿à¤šâ€™à¤‡à¤¨à¤¹" + - "ैडाहवाईयनहिलीगेनॉनहिटà¥à¤Ÿà¤¿à¤¤à¥‡à¤®à¤¾à¤à¤—अपà¥à¤ªà¤° सॉरà¥à¤¬à¤¿à¤¯à¤¨à¤¹à¥‚पाइबानइलोकोइंगà¥à¤¶à¤²à¥‹à¤œà¥à¤¬à¤¾à¤¨à¤—" + - "ोमà¥à¤¬à¤¾à¤®à¤¶à¤¾à¤®à¥‡à¤œà¥à¤¦à¥‡à¤“-फारसीजà¥à¤¦à¥‡à¤“-अरबीकारा-कलà¥à¤ªà¤•à¤•à¤¬à¤¾à¤‡à¤²à¤•à¤¾à¤šà¤¿à¤¨à¤œà¥à¤œà¥à¤•à¤¾à¤®à¥à¤¬à¤¾à¤•à¤¾à¤µà¥€à¤•à¤¬à¤¾à¤°à¥" + - "डियनतà¥à¤¯à¤¾à¤ªà¤®à¤¾à¤•à¥‹à¤¨à¥à¤¦à¥‡à¤•à¤¾à¤¬à¤µà¤°à¥à¤¦à¤¿à¤¯à¤¾à¤¨à¥à¤•à¥‹à¤°à¥‹à¤–ासीखोतानीसकोयरा चीनीकालेंजीनकिमà¥à¤¬à¤¨à¥à¤¦" + - "à¥à¤•à¥‹à¤®à¥€-परमà¥à¤¯à¤¾à¤•à¤•à¥‹à¤‚कणीकोसरियनकà¥à¤ªà¥‡à¤²à¥à¤²à¥‡à¤•à¤°à¤¾à¤šà¤¯-बालà¥à¤•à¤°à¤•à¤°à¥‡à¤²à¤¿à¤¯à¤¨à¤•à¥à¤°à¥‚खशांबालाबाफिय" + - "ाकà¥à¤®à¥€à¤•à¤•à¥à¤¤à¥‡à¤¨à¤¾à¤ˆà¤²à¤¾à¤¦à¥€à¤¨à¥‹à¤²à¤¾à¤‚गीलाहà¥à¤¨à¥à¤¡à¤¾à¤²à¤¾à¤®à¥à¤¬à¤¾à¤²à¥‡à¤à¥à¤˜à¥€à¤¯à¤¨à¤²à¤¾à¤•à¥‹à¤Ÿà¤¾à¤®à¥‹à¤‚गोलोà¤à¤¿à¤²à¥à¤¬à¤¾-लà¥à¤²à¥" + - "आलà¥à¤‡à¤¸à¥‡à¤¨à¥‹à¤²à¥à¤¨à¥à¤¡à¤¾à¤²à¥à¤¯à¥à¤“लà¥à¤¶à¤¾à¤ˆà¤²à¥à¤¯à¥à¤‡à¤¯à¤¾à¤®à¤¾à¤¦à¥à¤°à¥€à¤¸à¤®à¤—हीमैथिलीमकसà¥à¤¸à¤°à¤®à¤¨à¥à¤¡à¤¿à¤¨à¥à¤—ोमसाईमोक" + - "à¥à¤·à¤®à¤‚डारमेनà¥à¤¡à¥‡à¤®à¥‡à¤°à¥‚मोरिसà¥à¤¯à¥‡à¤¨à¤®à¤¿à¤¡à¤² आयरिशमाखà¥à¤µà¥à¤¹à¤¾-मीटà¥à¤Ÿà¥‹à¤®à¥€à¤Ÿà¤¾à¤®à¤¿à¤•à¤®à¥…कमिनांगà¥à¤•à¤¾" + - "बाउमानà¥à¤šà¥à¤®à¤£à¤¿à¤ªà¥à¤°à¥€à¤®à¥‹à¤¹à¥‰à¤•à¤®à¥‹à¤¸à¥à¤¸à¥€à¤®à¥à¤‚डांगà¤à¤•à¤µà¤¿à¤§ भाषाकà¥à¤°à¥€à¤•à¤®à¤¿à¤°à¤¾à¤‚डिजà¥à¤®à¤¾à¤°à¤µà¤¾à¤¡à¥€à¤à¤°à¥à¤à¥" + - "यानेपोलिटाननामालो जरà¥à¤®à¤¨à¤¨à¥‡à¤µà¤¾à¤°à¥€à¤¨à¤¿à¤¯à¤¾à¤¸à¤¨à¤¿à¤¯à¥à¤†à¤¨à¤•à¥à¤µà¤¾à¤¸à¤¿à¤“नोगाईपà¥à¤°à¤¾à¤¤à¤¨ नॉरà¥à¤¸à¤à¤¨à¥à¤•à¥‹à¤‰" + - "तà¥à¤¤à¤°à¥€ सोथोनà¥à¤à¤°à¤…भिजात नेवारीनà¥à¤¯à¤¾à¤®à¤µà¥‡à¤à¥€à¤¨à¥à¤¯à¤¾à¤¨à¤•à¥‹à¤²à¤¨à¥à¤¯à¥‹à¤°à¥‹à¤¨à¥à¤à¤¿à¤®à¤¾à¤“सेजओटोमान तà¥à¤°" + - "à¥à¤•à¤¿à¤¶à¤ªà¤‚गासीनानपहलवीपामà¥à¤ªà¤¾à¤¨à¥à¤—ापापियामेनà¥à¤Ÿà¥‹à¤ªà¤¾à¤²à¤¾à¤‰à¤†à¤¨à¤ªà¥à¤°à¤¾à¤¤à¤¨ फारसीफोनिशियनपोह" + - "à¥à¤¨à¤ªà¤¿à¤¯à¤¨à¤ªà¥à¤°à¤¾à¤¤à¤¨ पà¥à¤°à¥‹à¤µà¥à¤¹à¥‡à¤¨à¥à¤¸à¤²à¤•à¥€à¤¶à¥‡à¤‡à¤°à¤¾à¤œà¤¸à¥à¤¥à¤¾à¤¨à¥€à¤°à¤¾à¤ªà¤¾à¤¨à¥à¤ˆà¤°à¤¾à¤°à¥‹à¤Ÿà¥‹à¤‚गनरोमà¥à¤¬à¥‹à¤°à¥‹à¤®à¤¾à¤¨à¥€à¤…रो" + - "मानियनरवà¥à¤¹à¤¾à¤¸à¤à¤¡à¤µà¥‡à¤¯à¤¾à¤•à¥‚तसामरिटान अरॅमिकसांबà¥à¤°à¥‚सासाकसंतालीसांगà¥à¤¸à¤¿à¤¸à¤¿à¤²à¤¿à¤¯à¤¨à¤¸à¥à¤•" + - "ॉटà¥à¤¸à¤¸à¥‡à¤¨à¤¾à¤¸à¥‡à¤²à¥à¤•à¤ªà¤•à¥‹à¤¯à¤°à¤¾à¤¬à¥‹à¤°à¥‹ सेनà¥à¤¨à¥€à¤ªà¥à¤°à¤¾à¤¤à¤¨ आयरिशताशेलà¥à¤¹à¤¿à¤Ÿà¤¶à¥…नसिदामोदकà¥à¤·à¤¿à¤£à¤¾à¤¤à¥à¤¯" + - " सामीलà¥à¤¯à¥à¤² सामीइनारी सामीसà¥à¤•à¥‹à¤²à¥à¤Ÿ सामीसोनिनà¥à¤•à¥‡à¤¸à¥‹à¤—à¥à¤¡à¤¿à¤à¤¨à¤¸à¥à¤°à¤¾à¤¨à¤¾à¤¨ टॉनà¥à¤—ोसेरेर" + - "सà¥à¤•à¥à¤®à¤¾à¤¸à¥à¤¸à¥à¤¸à¥à¤®à¥‡à¤°à¤¿à¤¯à¤¨à¤•à¥‹à¤®à¥‹à¤°à¤¿à¤¯à¤¨à¤•à¤¾à¤à¤—ो सà¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤…भिजात सिरियाकसिरियाकटिमà¥à¤¨à¥‡à¤¤à¥‡à¤¸" + - "ोतेरेनोतेतà¥à¤®à¤Ÿà¤¾à¤‡à¤—à¥à¤°à¥‡à¤¤à¤¿à¤µà¤Ÿà¥‹à¤•à¥‡à¤²à¤¾à¤Šà¤•à¥à¤²à¤¿à¤‚गोनलिंगिततामाशेकनà¥à¤¯à¤¾à¤¸à¤¾ टोनà¥à¤—ाटोक पिस" + - "िनसिमà¥à¤¶à¤¿à¤¯à¤¨à¤¤à¥à¤®à¥à¤¬à¥à¤•à¤¾à¤Ÿà¥à¤µà¤¾à¤²à¥à¤¤à¤¾à¤¸à¤¾à¤µà¥à¤¹à¤¾à¤•à¤Ÿà¥à¤µà¥€à¤¨à¤¿à¤¯à¤¨à¤®à¤§à¥à¤¯ à¤à¤Ÿà¤²à¤¾à¤¸ तॅमॅà¤à¤¾à¤¯à¤Ÿà¤‰à¤¦à¤®à¥à¤°à¥à¤¤à¤¯à¥à¤—" + - "ॅरिटिकउमà¥à¤¬à¥à¤¨à¥à¤¡à¥à¤°à¥‚टवाईवॉटिकवà¥à¤‚जोवलामोवारेवाशोकालà¥à¤®à¤¿à¤•à¤¸à¥‹à¤—ायाओयापीसकà¤à¤Ÿà¥‹à¤¨à¥€à¤œ" + - "à¤à¥‡à¤ªà¥‹à¤Ÿà¥‡à¤•à¤¬à¥à¤²à¤¿à¤¸à¤¿à¤®à¥à¤¬à¥‰à¤²à¥à¤¸à¤à¥‡à¤¨à¤¾à¤¨à¥à¤—ापà¥à¤°à¤®à¤¾à¤£ मोरोकà¥à¤•à¤¨ तॅमॅà¤à¤¾à¤¯à¤Ÿà¤à¥à¤¨à¥€à¤­à¤¾à¤·à¤¾à¤µà¥ˆà¤œà¥à¤žà¤¾à¤¨à¤¿à¤• " + - "सामगà¥à¤°à¥€ नाहीà¤à¤¾à¤à¤¾à¤†à¤§à¥à¤¨à¤¿à¤• पà¥à¤°à¤®à¤¾à¤£à¤¿à¤¤ अरबीऑसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¨ जरà¥à¤®à¤¨à¤¸à¥à¤µà¤¿à¤¸ हाय जरà¥à¤®à¤¨à¤‘सà¥à¤Ÿ" + - "à¥à¤°à¥‡à¤²à¤¿à¤¯à¤¨ इंगà¥à¤°à¤œà¥€à¤•à¥…नडियन इंगà¥à¤°à¤œà¥€à¤¬à¥à¤°à¤¿à¤Ÿà¤¿à¤¶ इंगà¥à¤°à¤œà¥€à¤…मेरिकन इंगà¥à¤°à¤œà¥€à¤²à¥…टिन अमेर" + - "िकन सà¥à¤ªà¥…निशयà¥à¤°à¥‹à¤ªà¤¿à¤¯à¤¨ सà¥à¤ªà¥…निशमेकà¥à¤¸à¤¿à¤•à¤¨ सà¥à¤ªà¥…निशकॅनडियन फà¥à¤°à¥‡à¤‚चसà¥à¤µà¤¿à¤¸ फà¥à¤°à¥‡à¤‚चफ" + - "à¥à¤²à¥‡à¤®à¤¿à¤¶à¤¬à¥à¤°à¤¾à¤à¤¿à¤²à¤¿à¤¯à¤¨ पोरà¥à¤¤à¥à¤—ीजयà¥à¤°à¥‹à¤ªà¤¿à¤¯à¤¨ पोरà¥à¤¤à¥à¤—ीजमोलà¥à¤¡à¤¾à¤µà¥à¤¹à¤¿à¤¯à¤¨à¤¸à¤°à¥à¤¬à¥‹-कà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯" + - "नसरलीकृत चीनीपारंपारिक चीनी" - -// Size: 1234 bytes, 605 elements -var mrLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000c, 0x0024, 0x0039, 0x0057, 0x0063, 0x007b, 0x0093, - 0x009f, 0x00ae, 0x00cc, 0x00d8, 0x00f3, 0x0105, 0x0123, 0x013e, - 0x0156, 0x016e, 0x0180, 0x0192, 0x01a7, 0x01bf, 0x01d4, 0x01e0, - 0x01f2, 0x020a, 0x0216, 0x021f, 0x0247, 0x0256, 0x0265, 0x0274, - 0x0283, 0x0295, 0x02a7, 0x02b0, 0x02bf, 0x02d4, 0x02f2, 0x0307, - 0x0322, 0x0331, 0x0340, 0x034f, 0x0364, 0x0376, 0x0385, 0x0397, - 0x03c5, 0x03d4, 0x03f9, 0x0411, 0x0423, 0x0438, 0x044a, 0x0456, - 0x0468, 0x0477, 0x0490, 0x04ab, 0x04bd, 0x04d5, 0x04f0, 0x04ff, - // Entry 40 - 7F - 0x0520, 0x053e, 0x0559, 0x0568, 0x0581, 0x0599, 0x05a2, 0x05ba, - 0x05cf, 0x05ea, 0x05f9, 0x060e, 0x0626, 0x0635, 0x0647, 0x0665, - 0x0671, 0x068c, 0x069b, 0x06aa, 0x06bc, 0x06cb, 0x06e3, 0x06f8, - 0x0704, 0x0719, 0x072b, 0x073a, 0x075e, 0x076d, 0x078b, 0x07a0, - 0x07a9, 0x07c4, 0x07e9, 0x0807, 0x0819, 0x0831, 0x0840, 0x085e, - 0x0873, 0x088b, 0x089a, 0x08a3, 0x08bb, 0x08ca, 0x08d6, 0x08f8, - 0x090a, 0x0919, 0x091f, 0x0959, 0x098a, 0x09bb, 0x09cd, 0x09e5, - 0x09fd, 0x0a12, 0x0a21, 0x0a30, 0x0a48, 0x0a5a, 0x0a66, 0x0a75, - // Entry 80 - BF - 0x0a84, 0x0a9f, 0x0ab4, 0x0ac9, 0x0adb, 0x0af3, 0x0b02, 0x0b2c, - 0x0b41, 0x0b5c, 0x0b6b, 0x0b8a, 0x0b99, 0x0bab, 0x0bc6, 0x0bea, - 0x0bfc, 0x0c08, 0x0c1a, 0x0c35, 0x0c4a, 0x0c5c, 0x0c6e, 0x0c86, - 0x0c9b, 0x0cb3, 0x0cc2, 0x0cd1, 0x0ce0, 0x0ce9, 0x0d07, 0x0d1f, - 0x0d37, 0x0d46, 0x0d58, 0x0d67, 0x0d73, 0x0d8b, 0x0d9a, 0x0db8, - 0x0dc7, 0x0dd9, 0x0dee, 0x0e0c, 0x0e1e, 0x0e2d, 0x0e3c, 0x0e48, - 0x0e5d, 0x0e6f, 0x0e7e, 0x0e8a, 0x0e96, 0x0ea5, 0x0eb4, 0x0ecc, - 0x0edb, 0x0edb, 0x0ef6, 0x0f02, 0x0f0b, 0x0f26, 0x0f26, 0x0f35, - // Entry C0 - FF - 0x0f35, 0x0f66, 0x0f8e, 0x0fa0, 0x0fbb, 0x0fcd, 0x0fcd, 0x0fdf, - 0x0fdf, 0x0fee, 0x0fee, 0x0fee, 0x0ff7, 0x0ff7, 0x1012, 0x1012, - 0x101e, 0x101e, 0x102d, 0x1042, 0x1042, 0x104b, 0x104b, 0x104b, - 0x104b, 0x1057, 0x1069, 0x1069, 0x1075, 0x1075, 0x1075, 0x108a, - 0x1099, 0x10a5, 0x10a5, 0x10a5, 0x10bd, 0x10bd, 0x10bd, 0x10c9, - 0x10c9, 0x10d5, 0x10d5, 0x10ea, 0x10fc, 0x10fc, 0x110b, 0x110b, - 0x111d, 0x112c, 0x112c, 0x113b, 0x1150, 0x115c, 0x116e, 0x1180, - 0x1192, 0x119e, 0x11c0, 0x11d2, 0x11ed, 0x11ff, 0x1214, 0x123c, - // Entry 100 - 13F - 0x1251, 0x1251, 0x127c, 0x1294, 0x12a6, 0x12bb, 0x12ca, 0x12e2, - 0x12f7, 0x130c, 0x131e, 0x1330, 0x133f, 0x1364, 0x1364, 0x1373, - 0x1386, 0x13a2, 0x13b4, 0x13b4, 0x13c3, 0x13cf, 0x13cf, 0x1400, - 0x1412, 0x1427, 0x1449, 0x1449, 0x145e, 0x145e, 0x1467, 0x147f, - 0x147f, 0x1488, 0x1488, 0x14a7, 0x14cc, 0x14cc, 0x14f7, 0x152b, - 0x154c, 0x154e, 0x1560, 0x1560, 0x156c, 0x1578, 0x1578, 0x1581, - 0x159c, 0x159c, 0x15c2, 0x15ee, 0x15ee, 0x15fd, 0x161b, 0x162a, - 0x163c, 0x1661, 0x1680, 0x1680, 0x1680, 0x1689, 0x16a1, 0x16ad, - // Entry 140 - 17F - 0x16ad, 0x16bf, 0x16bf, 0x16da, 0x16f2, 0x16fe, 0x1726, 0x1726, - 0x1732, 0x173e, 0x173e, 0x174d, 0x175c, 0x175c, 0x175c, 0x1771, - 0x1783, 0x1792, 0x17b1, 0x17cd, 0x17cd, 0x17e9, 0x17f8, 0x1807, - 0x1813, 0x1825, 0x1831, 0x184c, 0x184c, 0x185b, 0x1873, 0x1897, - 0x1897, 0x18a3, 0x18a3, 0x18af, 0x18c4, 0x18e0, 0x18e0, 0x18e0, - 0x18e0, 0x18f8, 0x1913, 0x1935, 0x1947, 0x195c, 0x1974, 0x1996, - 0x1996, 0x1996, 0x19ab, 0x19ba, 0x19cf, 0x19e1, 0x19e1, 0x19f0, - 0x1a05, 0x1a17, 0x1a26, 0x1a3e, 0x1a50, 0x1a68, 0x1a68, 0x1a68, - // Entry 180 - 1BF - 0x1a68, 0x1a7a, 0x1a7a, 0x1a89, 0x1a95, 0x1a95, 0x1ab1, 0x1ac6, - 0x1ad8, 0x1ae7, 0x1af6, 0x1b0b, 0x1b0b, 0x1b0b, 0x1b20, 0x1b20, - 0x1b2c, 0x1b3e, 0x1b50, 0x1b6b, 0x1b77, 0x1b77, 0x1b86, 0x1b95, - 0x1ba7, 0x1bb3, 0x1bce, 0x1bea, 0x1c15, 0x1c21, 0x1c33, 0x1c57, - 0x1c69, 0x1c7e, 0x1c8d, 0x1c9f, 0x1c9f, 0x1cb4, 0x1cd0, 0x1cdf, - 0x1cfa, 0x1d0f, 0x1d0f, 0x1d0f, 0x1d24, 0x1d24, 0x1d24, 0x1d3f, - 0x1d4b, 0x1d61, 0x1d73, 0x1d82, 0x1d94, 0x1d94, 0x1da9, 0x1da9, - 0x1db8, 0x1dda, 0x1dda, 0x1de9, 0x1e08, 0x1e14, 0x1e39, 0x1e54, - // Entry 1C0 - 1FF - 0x1e6c, 0x1e7e, 0x1e90, 0x1e9c, 0x1ec4, 0x1edf, 0x1eee, 0x1f0c, - 0x1f30, 0x1f45, 0x1f45, 0x1f45, 0x1f45, 0x1f67, 0x1f67, 0x1f7f, - 0x1f7f, 0x1f7f, 0x1f9a, 0x1f9a, 0x1fd1, 0x1fe0, 0x1fe0, 0x1ffb, - 0x2010, 0x202b, 0x202b, 0x202b, 0x203d, 0x204f, 0x204f, 0x204f, - 0x204f, 0x206a, 0x2079, 0x2088, 0x2097, 0x20c2, 0x20d7, 0x20e6, - 0x20f8, 0x20f8, 0x20f8, 0x2107, 0x211f, 0x2134, 0x2134, 0x2134, - 0x2140, 0x2140, 0x2152, 0x2180, 0x21a2, 0x21a2, 0x21bd, 0x21c6, - 0x21c6, 0x21d8, 0x21d8, 0x21d8, 0x2203, 0x221f, 0x223b, 0x225d, - // Entry 200 - 23F - 0x2275, 0x228d, 0x22b5, 0x22c4, 0x22c4, 0x22c4, 0x22d6, 0x22e2, - 0x22fa, 0x2312, 0x233a, 0x2362, 0x2377, 0x2377, 0x2377, 0x2389, - 0x2395, 0x23a7, 0x23b6, 0x23cb, 0x23d4, 0x23e9, 0x23e9, 0x2401, - 0x2413, 0x2413, 0x2428, 0x244d, 0x2466, 0x2466, 0x2466, 0x2466, - 0x247e, 0x247e, 0x2496, 0x24a8, 0x24c3, 0x24db, 0x2510, 0x2525, - 0x2540, 0x255b, 0x2564, 0x256d, 0x256d, 0x256d, 0x256d, 0x256d, - 0x257c, 0x257c, 0x258b, 0x258b, 0x259a, 0x25a6, 0x25b2, 0x25b2, - 0x25b2, 0x25c7, 0x25c7, 0x25d3, 0x25dc, 0x25eb, 0x25eb, 0x25eb, - // Entry 240 - 27F - 0x25eb, 0x2600, 0x2615, 0x263c, 0x263c, 0x2654, 0x2698, 0x26a4, - 0x26ee, 0x26fa, 0x2732, 0x275d, 0x2786, 0x27bd, 0x27e8, 0x2813, - 0x283e, 0x2879, 0x28a7, 0x28d5, 0x28fd, 0x291f, 0x2934, 0x296e, - 0x29a2, 0x29c6, 0x29f1, 0x2a13, 0x2a3b, -} - -// Size: 2362 bytes -var msLangStr string = "" + - "AbkhaziaAvestanAfrikaansAkanAmharicArabAssamAvaricAymaraAzerbaijanBashki" + - "rBelarusBulgariaBambaraBenggalaTibetBretonBosniaCataloniaChechenCorsicaC" + - "zechSlavik GerejaChuvashWalesDenmarkJermanDivehiDzongkhaEweGreekInggeris" + - "EsperantoSepanyolEstoniaBasqueParsiFinlandFijiFaroePerancisFrisianIrelan" + - "dScots GaelicGaliciaGuaraniGujeratManxHausaIbraniHindiCroatHaitiHungaryA" + - "rmeniaInterlinguaIndonesiaInterlingueIgboSichuan YiIcelandItaliInuktitut" + - "JepunJawaGeorgiaKongoKikuyaKazakhstanKalaallisutKhmerKannadaKoreaKashmir" + - "KurdishCornishKirghizLatinLuxembourgGandaLingalaLaosLithuaniaLuba-Katang" + - "aLatviaMalagasyMaoriMacedoniaMalayalamMongoliaMarathiBahasa MelayuMaltaB" + - "urmaNdebele UtaraNepalBelandaNynorsk NorwayBokmÃ¥l NorwayNyanjaOccitaniaO" + - "romoOriyaOssetePunjabiPolandPashtoPortugisQuechuaRomanshRundiRomaniaRusi" + - "aKinyarwandaSanskritSindhiSami UtaraSangoSinhalaSlovakSloveniaSamoaShona" + - "SomaliAlbaniaSerbiaSwatiSotho SelatanSundaSwedenSwahiliTamilTeluguTajikT" + - "haiTigrinyaTurkmenTswanaTongaTurkiTsongaTatarTahitiUyghurUkraineUrduUzbe" + - "kistanVendaVietnamWolofXhosaYiddishYorubaCinaZuluAkoliAdygheArab Tunisia" + - "AghemAltai SelatanMapucheArab AlgeriaArab MaghribiArab MesirAsuAzerbaija" + - "n SelatanBaluchiBamunGhomalaBejaBembaBenaBafutKomBishnupriyaBrahuiBodoAk" + - "ooseBuriatBuluMedumbaCayugaChigaMariCherokeeKurdi SoraniCopticTurki Krim" + - "eaTaitaZarmaDogriLower SorbianDualaJola-FonyiDazagaEmbuEfikFilipinaGaGag" + - "auzGbayaZoroastrian DariGilakiGreek PurbaJerman SwitzerlandGusiiHawaiiUp" + - "per SorbianIbibioNgombaMachameKabyleKambaKanembuMakondeKabuverdianuKoyra" + - " ChiiniKhowarKakoKalenjinKomi-PermyakKonkaniShambalaBafiaColognianLangiL" + - "ahndaLakotaLoziLuba-LuluaLuoMizoLuyiaMafaMasaiMabaMeruMorisyenMakhuwa-Me" + - "ettoMeta’ManipuriMohawkMundangMyeneMazanderaniNamaKwasioN’koSotho UtaraN" + - "uerNyankoleKʼicheʼRomboRwaSamburuNgambaySanguSenecaSenaKoyraboro SenniTa" + - "chelhitChadian ArabSami SelatanLule SamiInari SamiSkolt SamiSahoComoriaC" + - "ongo SwahiliTesoTetumKlingonTalyshTok PisinTarokoTumbukaTasawaqTamazight" + - " Atlas TengahBahasa Tidak DiketahuiVaiVunjoWalserSogaYangbenYembaTamazig" + - "ht Maghribi StandardTiada kandungan linguistikZazaArab Standard ModenJer" + - "man AustriaJerman Halus SwitzerlandInggeris AustraliaInggeris KanadaIngg" + - "eris BritishInggeris ASSepanyol Amerika LatinSepanyol EropahSepanyol Mex" + - "icoPerancis KanadaPerancis SwitzerlandFlemishPortugis BrazilPortugis Ero" + - "pahMoldaviaSerboCroatiaCina RingkasCina Tradisional" - -// Size: 1234 bytes, 605 elements -var msLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0008, 0x000f, 0x0018, 0x001c, 0x0023, 0x0023, - 0x0027, 0x002c, 0x0032, 0x0038, 0x0042, 0x0049, 0x0050, 0x0058, - 0x0058, 0x005f, 0x0067, 0x006c, 0x0072, 0x0078, 0x0081, 0x0088, - 0x0088, 0x008f, 0x008f, 0x0094, 0x00a1, 0x00a8, 0x00ad, 0x00b4, - 0x00ba, 0x00c0, 0x00c8, 0x00cb, 0x00d0, 0x00d8, 0x00e1, 0x00e9, - 0x00f0, 0x00f6, 0x00fb, 0x00fb, 0x0102, 0x0106, 0x010b, 0x0113, - 0x011a, 0x0121, 0x012d, 0x0134, 0x013b, 0x0142, 0x0146, 0x014b, - 0x0151, 0x0156, 0x0156, 0x015b, 0x0160, 0x0167, 0x016e, 0x016e, - // Entry 40 - 7F - 0x0179, 0x0182, 0x018d, 0x0191, 0x019b, 0x019b, 0x019b, 0x01a2, - 0x01a7, 0x01b0, 0x01b5, 0x01b9, 0x01c0, 0x01c5, 0x01cb, 0x01cb, - 0x01d5, 0x01e0, 0x01e5, 0x01ec, 0x01f1, 0x01f1, 0x01f8, 0x01ff, - 0x01ff, 0x0206, 0x020d, 0x0212, 0x021c, 0x0221, 0x0221, 0x0228, - 0x022c, 0x0235, 0x0241, 0x0247, 0x024f, 0x024f, 0x0254, 0x025d, - 0x0266, 0x026e, 0x0275, 0x0282, 0x0287, 0x028c, 0x028c, 0x0299, - 0x029e, 0x029e, 0x02a5, 0x02b3, 0x02c1, 0x02c1, 0x02c1, 0x02c7, - 0x02d0, 0x02d0, 0x02d5, 0x02da, 0x02e0, 0x02e7, 0x02e7, 0x02ed, - // Entry 80 - BF - 0x02f3, 0x02fb, 0x0302, 0x0309, 0x030e, 0x0315, 0x031a, 0x0325, - 0x032d, 0x032d, 0x0333, 0x033d, 0x0342, 0x0349, 0x034f, 0x0357, - 0x035c, 0x0361, 0x0367, 0x036e, 0x0374, 0x0379, 0x0386, 0x038b, - 0x0391, 0x0398, 0x039d, 0x03a3, 0x03a8, 0x03ac, 0x03b4, 0x03bb, - 0x03c1, 0x03c6, 0x03cb, 0x03d1, 0x03d6, 0x03dc, 0x03e2, 0x03e9, - 0x03ed, 0x03f7, 0x03fc, 0x0403, 0x0403, 0x0403, 0x0408, 0x040d, - 0x0414, 0x041a, 0x041a, 0x041e, 0x0422, 0x0422, 0x0427, 0x0427, - 0x042d, 0x0439, 0x0439, 0x043e, 0x043e, 0x043e, 0x043e, 0x043e, - // Entry C0 - FF - 0x043e, 0x044b, 0x044b, 0x044b, 0x044b, 0x0452, 0x0452, 0x0452, - 0x045e, 0x045e, 0x046b, 0x0475, 0x0478, 0x0478, 0x0478, 0x0478, - 0x0478, 0x048a, 0x0491, 0x0491, 0x0491, 0x0491, 0x0496, 0x0496, - 0x049d, 0x04a1, 0x04a6, 0x04a6, 0x04aa, 0x04af, 0x04af, 0x04af, - 0x04af, 0x04af, 0x04af, 0x04b2, 0x04b2, 0x04bd, 0x04bd, 0x04bd, - 0x04c3, 0x04c7, 0x04cd, 0x04d3, 0x04d3, 0x04d7, 0x04d7, 0x04de, - 0x04de, 0x04de, 0x04e4, 0x04e4, 0x04e4, 0x04e9, 0x04e9, 0x04e9, - 0x04e9, 0x04ed, 0x04ed, 0x04ed, 0x04ed, 0x04f5, 0x04f5, 0x0501, - // Entry 100 - 13F - 0x0507, 0x0507, 0x0513, 0x0513, 0x0513, 0x0513, 0x0518, 0x0518, - 0x0518, 0x0518, 0x0518, 0x051d, 0x0522, 0x052f, 0x052f, 0x0534, - 0x0534, 0x053e, 0x053e, 0x0544, 0x0548, 0x054c, 0x054c, 0x054c, - 0x054c, 0x054c, 0x054c, 0x054c, 0x054c, 0x054c, 0x054c, 0x0554, - 0x0554, 0x0554, 0x0554, 0x0554, 0x0554, 0x0554, 0x0554, 0x0554, - 0x0554, 0x0556, 0x055c, 0x055c, 0x055c, 0x0561, 0x0571, 0x0571, - 0x0571, 0x0577, 0x0577, 0x0577, 0x0577, 0x0577, 0x0577, 0x0577, - 0x0577, 0x0582, 0x0594, 0x0594, 0x0594, 0x0599, 0x0599, 0x0599, - // Entry 140 - 17F - 0x0599, 0x059f, 0x059f, 0x059f, 0x059f, 0x059f, 0x05ac, 0x05ac, - 0x05ac, 0x05ac, 0x05b2, 0x05b2, 0x05b2, 0x05b2, 0x05b2, 0x05b2, - 0x05b8, 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05c5, 0x05c5, - 0x05c5, 0x05ca, 0x05ca, 0x05ca, 0x05d1, 0x05d1, 0x05d8, 0x05e4, - 0x05e4, 0x05e4, 0x05e4, 0x05e4, 0x05e4, 0x05f0, 0x05f6, 0x05f6, - 0x05fa, 0x0602, 0x0602, 0x060e, 0x0615, 0x0615, 0x0615, 0x0615, - 0x0615, 0x0615, 0x0615, 0x0615, 0x061d, 0x0622, 0x062b, 0x062b, - 0x062b, 0x062b, 0x0630, 0x0636, 0x0636, 0x0636, 0x0636, 0x0636, - // Entry 180 - 1BF - 0x0636, 0x063c, 0x063c, 0x063c, 0x0640, 0x0640, 0x064a, 0x064a, - 0x064a, 0x064d, 0x0651, 0x0656, 0x0656, 0x0656, 0x0656, 0x065a, - 0x065a, 0x065a, 0x065a, 0x065a, 0x065f, 0x0663, 0x0663, 0x0663, - 0x0663, 0x0667, 0x066f, 0x066f, 0x067d, 0x0684, 0x0684, 0x0684, - 0x0684, 0x068c, 0x0692, 0x0692, 0x0692, 0x0699, 0x0699, 0x0699, - 0x0699, 0x0699, 0x0699, 0x069e, 0x069e, 0x06a9, 0x06a9, 0x06a9, - 0x06ad, 0x06ad, 0x06ad, 0x06ad, 0x06ad, 0x06ad, 0x06b3, 0x06b3, - 0x06b3, 0x06b3, 0x06b3, 0x06b9, 0x06c4, 0x06c8, 0x06c8, 0x06c8, - // Entry 1C0 - 1FF - 0x06d0, 0x06d0, 0x06d0, 0x06d0, 0x06d0, 0x06d0, 0x06d0, 0x06d0, - 0x06d0, 0x06d0, 0x06d0, 0x06d0, 0x06d0, 0x06d0, 0x06d0, 0x06d0, - 0x06d0, 0x06d0, 0x06d0, 0x06d0, 0x06d0, 0x06d9, 0x06d9, 0x06d9, - 0x06d9, 0x06d9, 0x06d9, 0x06d9, 0x06de, 0x06de, 0x06de, 0x06de, - 0x06de, 0x06de, 0x06e1, 0x06e1, 0x06e1, 0x06e1, 0x06e8, 0x06e8, - 0x06e8, 0x06e8, 0x06ef, 0x06f4, 0x06f4, 0x06f4, 0x06f4, 0x06fa, - 0x06fe, 0x06fe, 0x06fe, 0x070d, 0x070d, 0x070d, 0x0716, 0x0716, - 0x0722, 0x0722, 0x0722, 0x0722, 0x072e, 0x0737, 0x0741, 0x074b, - // Entry 200 - 23F - 0x074b, 0x074b, 0x074b, 0x074b, 0x074f, 0x074f, 0x074f, 0x074f, - 0x074f, 0x0756, 0x0763, 0x0763, 0x0763, 0x0763, 0x0763, 0x0763, - 0x0767, 0x0767, 0x076c, 0x076c, 0x076c, 0x076c, 0x076c, 0x0773, - 0x0773, 0x0779, 0x0779, 0x0779, 0x0782, 0x0782, 0x0788, 0x0788, - 0x0788, 0x0788, 0x078f, 0x078f, 0x0796, 0x0796, 0x07ac, 0x07ac, - 0x07ac, 0x07ac, 0x07c2, 0x07c5, 0x07c5, 0x07c5, 0x07c5, 0x07c5, - 0x07c5, 0x07c5, 0x07ca, 0x07d0, 0x07d0, 0x07d0, 0x07d0, 0x07d0, - 0x07d0, 0x07d0, 0x07d0, 0x07d4, 0x07d4, 0x07d4, 0x07db, 0x07e0, - // Entry 240 - 27F - 0x07e0, 0x07e0, 0x07e0, 0x07e0, 0x07e0, 0x07e0, 0x07fb, 0x07fb, - 0x0815, 0x0819, 0x082c, 0x083a, 0x0852, 0x0864, 0x0873, 0x0883, - 0x088e, 0x08a4, 0x08b3, 0x08c2, 0x08d1, 0x08e5, 0x08ec, 0x08fb, - 0x090a, 0x0912, 0x091e, 0x092a, 0x093a, -} - -// Size: 6813 bytes -var myLangStr string = "" + - "အက်á€á€«á€‡á€°á€¡á€”ျအာဖရိကန်းစ်အာကိန်အန်ဟာရစျá€á€»á€¡á€¬á€›á€±á€—ီအက္စမီစ်အော်ဇောဘိုင်ဂျောနီဘက်" + - "ရှ်ကီအာဘီလာရုဘူဂေးရီးယားဘန်ဘာရာဘင်္ဂါလီá€á€­á€˜á€€á€ºá€˜á€›á€®á€á€½á€”်ဘော့စ်နီးယားကာá€á€¬á€œá€”်" + - "á€á€»á€±á€á€»á€„်းá€á€­á€¯á€…ီကန်á€á€›á€®á€¸á€á€»á€€á€ºá€á€±á€œá€’ိန်းမá€á€ºá€‚ျာမန်ဒွန်ကာá€á€®á€‚ရိအင်္ဂလိပ်အက္စပရန္á€" + - "ိုစပိန်အက်စ်á€á€­á€¯á€¸á€”ီးရန်းဘစ်က္ကီပါရှန်ဖင်နစ်ရှ်ဖီဂျီဖာရိုအိစ်ပြင်သစ်အနော" + - "က်ပိုင်း ဖရီစီရန်အိုင်းရစ်ဂါလာစီယံဂူအာရာနီဂူဂျာရသီမန်းဇ်ဟာဥစာဟီးဘရူးဟိ" + - "န္ဒီá€á€›á€­á€¯á€¡á€±á€›á€¾á€”်ဟာအီá€á€®á€¡á€”်ဟန်ဂေရီအာမေနီအန်အင်ဒိုနီးရှားအစ္ဂဘိုစီá€á€»á€½á€™á€º ရီအ" + - "ိုင်စ်လန္ဒီအီá€á€œá€®á€¡á€®á€”ုá€á€ºá€á€®á€á€¯á€‚ျပန်ဂျာဗားနီးစ်ဂျော်ဂျီယန်ကွန်ဂိုá€á€®á€á€°á€šá€°á€á€«á€‡á€«" + - "á€á€ºá€á€œá€¬á€¡á€ºá€œá€®á€†á€•á€ºá€á€™á€¬á€€á€”္နာဒါကိုးရီးယားကက်ရှ်မီရီကဒ်á€á€­á€¯á€”ီရှ်á€á€›á€°á€‚စ်လက်á€á€„်လူဇင်" + - "ဘá€á€ºá€€á€ºá€‚န်ဒီလင်ဂါလာလာအိုလစ္သူအာနီယံလူဘာ-á€á€«á€á€”်ဂါလက္ဘီအံအာလာဂါစီမောင်းရီ (" + - "နယူးဇီလန်ကျွန်းရှိ ပင်ရင်းá€á€­á€¯á€„်းရင်းသားလူမျိုး)မာစီဒိုနီယံမလေးရာလမ်မွန" + - "်ဂိုလီးယန်းမာရသီမလေးမောလ္á€á€®á€…်ဗမာá€á€±á€¬á€„်ဒီဘီလီနီပါလီဒá€á€ºá€á€»á€ºá€”ော်á€á€±á€¸ နီးနော်" + - "စ်á€á€ºá€˜á€½á€á€ºá€™á€±á€¬á€ºá€œá€ºá€¡á€­á€¯á€›á€­á€¯á€™á€­á€¯á€¡á€­á€¯á€›á€®á€›á€¬á€•á€”်á€á€»á€¬á€•á€®á€•á€«á€ á€­á€•á€­á€¯á€œá€”်ပါရှ်á€á€­á€¯á€•á€±á€«á€ºá€á€°á€‚ီá€á€€á€ºá€á€»á€º" + - "á€á€«á€›á€±á€¬á€™á€›á€½á€”်ဒီရိုမေနီယားရုရှကင်ရာá€á€”်ဒါသင်္သကရိုက်စင်ဒီá€á€±á€¬á€„်ဆာမိဆမ်ဂိုဆင်" + - "ဟာလစလိုဗက်စလိုဗေးနီးယမ်းရှိနာဆိုမာလီအယ်လ်ဘေးနီးယန်းဆားဗီးယန်းဆူဒန်ဆွီဒ" + - "င်ဆြာဟီလီá€á€™á€®á€¸á€œá€ºá€á€®á€œá€®á€‚ုá€á€¬á€‚ွီá€á€ºá€‘ိုင်းá€á€®á€‚်ရင်ရာá€á€á€¹á€™á€„်á€á€½á€”်ဂါá€á€¬á€€á€…်á€á€á€¬á€á€®á€‚ါယူက" + - "ရိန်းအော်ဒူဦးဇ်ဘက်ဗီယက်နမ်á€á€°á€œá€­á€¯á€–်ဇိုစာရိုရုဘာá€á€›á€¯á€á€ºá€‡á€°á€œá€°á€¡á€¬á€‚်ဟိန်းအင်္ဂလိ" + - "ပ်စာဟောင်းမာပုá€á€»á€®á€¡á€¬á€…ုဘာလီဘာဆာဘိန်ဘာဘီနာဗိုဒိုá€á€»á€®á€‚ါá€á€»á€¬á€›á€­á€¯á€€á€®á€†á€­á€¯á€›á€¬á€”ီ ကူဒစ" + - "်ရှ်ဒါကိုá€á€¬á€á€­á€¯á€„်á€á€¬á€’ီလာá€á€²á€‡á€¬á€™á€¬á€¡á€±á€¬á€€á€ºá€†á€­á€¯á€˜á€®á€¡á€™á€ºá€’ူအလာအလယ်ပိုင်း ဒá€á€ºá€á€»á€ºá€‚ျိုလာ-" + - "ဖွန်ရီအမ်ဘူရှေးဟောင်း အီဂျစ်အလယ်ပိုင်း အင်္ဂလိပ်ဖိလစ်ပီနိုအလယ်ပိုင်းပြ" + - "င်သစ်ပြင်သစ်ဟောင်းမြောက်ပိုင်း ဖရီစီရန်အရှေ့ပိုင်း ဖရီစီရန်ဂါဂါဇ်အလယ်ပ" + - "ိုင်းအမြင့်ဂျာမန်ရှေးဟောင်း ဂရိဆွစ် ဂျာမန်ဂူစီးဟာá€á€±á€šá€¶á€¡á€•á€±á€«á€ºá€†á€­á€¯á€˜á€®á€¡á€™á€ºá€‚ွမ်" + - "ဘာမá€á€»á€¬á€™á€®á€‚ျူဒီယို-ပါရှန်ဂျူဒီယို-အာရေဗျá€á€˜á€­á€¯á€„်လ်ကá€á€»á€„်á€á€™á€ºá€˜á€¬á€™á€¬á€á€½á€”်ဒီá€á€˜á€°á€—ာဒ" + - "ီအာနူá€á€«á€…ီá€á€­á€¯á€›á€¬ á€á€»á€®á€¡á€®á€”ီá€á€«á€œá€­á€™á€ºá€‚ျင်ကိုမီ-ပါမြက်ကွန်ကနီရှန်ဘာလာဘာဖီအာလန်ဂီ" + - "လာကိုá€á€¬á€œá€°á€¡á€­á€¯á€œá€°á€›á€®á€¡á€¬á€™á€¬á€†á€­á€¯á€„်မီရုမိုရှီစ်ယန်းအလယ်ပိုင်း အိုင်းရစ်မာá€á€°á€á€«-မီ" + - "အီá€á€­á€¯á€™á€®á€á€¬á€™á€”်á€á€»á€°á€¸á€™á€­á€¯á€Ÿá€±á€¬á€·á€á€ºá€™á€”်ဒန်းအကြိမ်များစွာ ဘာသာစကားများနာမာအနိမ့် ဂ" + - "ျာမန်á€á€«á€†á€®á€¡á€­á€¯á€”ကိုနူအာယန်ကိုလီပါရှန် အဟောင်းá€á€®á€á€ºá€¡á€®á€á€»á€®á€›á€½á€™á€ºá€˜á€­á€¯á€á€«á€†á€”်ဘူရုဆန်" + - "ဂုစကော့စီနာá€á€­á€¯á€›á€¬á€˜á€­á€¯á€›á€­á€¯ ဆမ်နီအိုင်းရစ် ဟောင်းá€á€¬á€á€»á€šá€ºá€œá€ºá€Ÿá€…်ရှမ်းá€á€±á€¬á€„်ပိုင်" + - "း ဆာမိလူလီ ဆာမိအီနာရီ ဆာမိá€á€­á€¯á€œá€º ဆာမိá€á€½á€”်ဂို စွာဟီလီá€á€®á€†á€­á€¯á€á€¬á€†á€¬á€á€«á€á€ºá€¡á€œá€šá€ºá€¡á€€" + - "်á€á€ºá€œá€€á€ºá€…် á€á€¬á€™á€¬á€‡á€­á€¯á€€á€ºá€™á€°á€œá€›á€„်းမြစ်ဗိုင်ဗန်ဂျိုဆိုဂါမိုရိုကန် á€á€½á€™á€ºá€™á€‡á€­á€¯á€á€º စံဘ" + - "ာသာစကား နှင့် ပá€á€ºá€žá€€á€º သောအရာမရှိအရေဗီ(ပုံမှန်)ဩစá€á€¼á€®á€¸á€š ဂျာမန်ဆွစ် အမြင့်" + - " ဂျာမန်ဩစá€á€¼á€±á€¸á€œá€»á€¾ အင်္ဂလိပ်ကနေဒါ အင်္ဂလိပ်ဗြိá€á€­á€žá€»á€¾ အင်္ဂလိပ်အမေရိကန် အင်္" + - "ဂလိပ်လက်á€á€„်အမေရိက စပိန်စပိန်(ဥရောပ)ကနေဒါ ပြင်သစ်ဆွစ် ပြင်သစ်ဖလီမစ်ရှ်ဘ" + - "ရာဇီး ပေါ်á€á€°á€‚ီဥရောပ ပေါ်á€á€°á€‚ီရိုးရှင်းသော á€á€›á€¯á€á€ºá€›á€¾á€±á€¸á€›á€­á€¯á€¸á€…ဉ်လာ á€á€›á€¯á€á€º" - -// Size: 1234 bytes, 605 elements -var myLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x001e, 0x001e, 0x003f, 0x0051, 0x006f, 0x006f, - 0x0081, 0x0099, 0x0099, 0x0099, 0x00cf, 0x00ed, 0x00ff, 0x0120, - 0x0120, 0x0135, 0x014d, 0x015c, 0x0171, 0x0195, 0x01aa, 0x01c2, - 0x01c2, 0x01da, 0x01e6, 0x01f2, 0x01f2, 0x01f2, 0x01fb, 0x0213, - 0x0225, 0x0225, 0x0237, 0x023d, 0x0246, 0x0261, 0x0282, 0x0291, - 0x02c1, 0x02d6, 0x02e8, 0x02e8, 0x0303, 0x0312, 0x032d, 0x0342, - 0x037f, 0x039a, 0x039a, 0x03b2, 0x03ca, 0x03e2, 0x03f4, 0x0403, - 0x0418, 0x042a, 0x042a, 0x0448, 0x0463, 0x0478, 0x0493, 0x0493, - // Entry 40 - 7F - 0x0493, 0x04ba, 0x04ba, 0x04cf, 0x04eb, 0x04eb, 0x04eb, 0x050f, - 0x051e, 0x053c, 0x054b, 0x056c, 0x058d, 0x05a2, 0x05b4, 0x05b4, - 0x05c6, 0x05e4, 0x05ed, 0x0602, 0x0620, 0x0620, 0x063e, 0x0647, - 0x0647, 0x065f, 0x0671, 0x0683, 0x06a1, 0x06b0, 0x06b0, 0x06c5, - 0x06d4, 0x06f5, 0x0717, 0x072c, 0x0744, 0x0744, 0x07e7, 0x0808, - 0x0823, 0x084d, 0x085c, 0x0868, 0x0883, 0x088c, 0x088c, 0x08ad, - 0x08bf, 0x08bf, 0x08d1, 0x0908, 0x0926, 0x0926, 0x0926, 0x0926, - 0x0926, 0x0926, 0x0941, 0x0956, 0x0956, 0x096e, 0x097a, 0x098c, - // Entry 80 - BF - 0x09a4, 0x09bc, 0x09d4, 0x09e0, 0x09f2, 0x0a10, 0x0a1c, 0x0a3a, - 0x0a5b, 0x0a5b, 0x0a6a, 0x0a85, 0x0a97, 0x0aa9, 0x0abe, 0x0ae8, - 0x0ae8, 0x0af7, 0x0b0c, 0x0b39, 0x0b57, 0x0b57, 0x0b57, 0x0b66, - 0x0b78, 0x0b8d, 0x0b9f, 0x0bb1, 0x0bc6, 0x0bd8, 0x0bf3, 0x0c05, - 0x0c05, 0x0c17, 0x0c26, 0x0c26, 0x0c2f, 0x0c2f, 0x0c3b, 0x0c53, - 0x0c65, 0x0c7a, 0x0c7a, 0x0c92, 0x0c92, 0x0c92, 0x0ca7, 0x0cb6, - 0x0cb6, 0x0ccb, 0x0ccb, 0x0cda, 0x0ce6, 0x0ce6, 0x0ce6, 0x0ce6, - 0x0ce6, 0x0ce6, 0x0ce6, 0x0d01, 0x0d01, 0x0d01, 0x0d01, 0x0d01, - // Entry C0 - FF - 0x0d01, 0x0d01, 0x0d34, 0x0d34, 0x0d34, 0x0d49, 0x0d49, 0x0d49, - 0x0d49, 0x0d49, 0x0d49, 0x0d49, 0x0d55, 0x0d55, 0x0d55, 0x0d55, - 0x0d55, 0x0d55, 0x0d55, 0x0d61, 0x0d61, 0x0d6d, 0x0d6d, 0x0d6d, - 0x0d6d, 0x0d6d, 0x0d7f, 0x0d7f, 0x0d8b, 0x0d8b, 0x0d8b, 0x0d8b, - 0x0d8b, 0x0d8b, 0x0d8b, 0x0d8b, 0x0d8b, 0x0d8b, 0x0d8b, 0x0d8b, - 0x0d8b, 0x0d9d, 0x0d9d, 0x0d9d, 0x0d9d, 0x0d9d, 0x0d9d, 0x0d9d, - 0x0d9d, 0x0d9d, 0x0d9d, 0x0d9d, 0x0d9d, 0x0dac, 0x0dac, 0x0dac, - 0x0dac, 0x0dac, 0x0dac, 0x0dac, 0x0dac, 0x0dc4, 0x0dc4, 0x0df2, - // Entry 100 - 13F - 0x0df2, 0x0df2, 0x0df2, 0x0df2, 0x0e07, 0x0e07, 0x0e1c, 0x0e2e, - 0x0e2e, 0x0e2e, 0x0e2e, 0x0e3a, 0x0e3a, 0x0e61, 0x0e61, 0x0e70, - 0x0ea1, 0x0ec6, 0x0ec6, 0x0ec6, 0x0ed5, 0x0ed5, 0x0ed5, 0x0f06, - 0x0f06, 0x0f06, 0x0f40, 0x0f40, 0x0f40, 0x0f40, 0x0f40, 0x0f5e, - 0x0f5e, 0x0f5e, 0x0f5e, 0x0f91, 0x0fb8, 0x0fb8, 0x0ff5, 0x102f, - 0x102f, 0x102f, 0x1041, 0x1041, 0x1041, 0x1041, 0x1041, 0x1041, - 0x1041, 0x1041, 0x1083, 0x1083, 0x1083, 0x1083, 0x1083, 0x1083, - 0x1083, 0x10ab, 0x10ca, 0x10ca, 0x10ca, 0x10d9, 0x10d9, 0x10d9, - // Entry 140 - 17F - 0x10d9, 0x10eb, 0x10eb, 0x10eb, 0x10eb, 0x10eb, 0x1112, 0x1112, - 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, - 0x1124, 0x1136, 0x1161, 0x118c, 0x118c, 0x118c, 0x11a4, 0x11b3, - 0x11b3, 0x11c2, 0x11c2, 0x11c2, 0x11c2, 0x11c2, 0x11da, 0x11fb, - 0x11fb, 0x11fb, 0x11fb, 0x1207, 0x1207, 0x122c, 0x122c, 0x122c, - 0x122c, 0x124a, 0x124a, 0x126c, 0x1281, 0x1281, 0x1281, 0x1281, - 0x1281, 0x1281, 0x1281, 0x1281, 0x1299, 0x12ab, 0x12ab, 0x12ab, - 0x12ab, 0x12ab, 0x12ba, 0x12ba, 0x12ba, 0x12ba, 0x12ba, 0x12ba, - // Entry 180 - 1BF - 0x12ba, 0x12cf, 0x12cf, 0x12cf, 0x12cf, 0x12cf, 0x12cf, 0x12cf, - 0x12cf, 0x12de, 0x12de, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, - 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x1305, 0x1305, 0x1305, 0x1305, - 0x1305, 0x1311, 0x1335, 0x136f, 0x1397, 0x13a3, 0x13a3, 0x13a3, - 0x13b8, 0x13b8, 0x13d3, 0x13d3, 0x13d3, 0x13e8, 0x1434, 0x1434, - 0x1434, 0x1434, 0x1434, 0x1434, 0x1434, 0x1434, 0x1434, 0x1434, - 0x1440, 0x1465, 0x1465, 0x1465, 0x1465, 0x1465, 0x147a, 0x147a, - 0x147a, 0x147a, 0x147a, 0x1486, 0x1486, 0x1492, 0x1492, 0x1492, - // Entry 1C0 - 1FF - 0x14aa, 0x14aa, 0x14aa, 0x14aa, 0x14aa, 0x14aa, 0x14aa, 0x14aa, - 0x14aa, 0x14aa, 0x14aa, 0x14aa, 0x14aa, 0x14d2, 0x14d2, 0x14d2, - 0x14d2, 0x14d2, 0x14d2, 0x14d2, 0x14d2, 0x14ed, 0x14ed, 0x14ed, - 0x14ed, 0x14ed, 0x14ed, 0x14ed, 0x1502, 0x1502, 0x1502, 0x1502, - 0x1502, 0x1502, 0x1508, 0x1508, 0x1508, 0x1508, 0x151d, 0x151d, - 0x151d, 0x151d, 0x151d, 0x152c, 0x152c, 0x153b, 0x153b, 0x153b, - 0x1547, 0x1547, 0x1547, 0x1578, 0x15a6, 0x15a6, 0x15c7, 0x15d6, - 0x15d6, 0x15d6, 0x15d6, 0x15d6, 0x1604, 0x161d, 0x163c, 0x1658, - // Entry 200 - 23F - 0x1658, 0x1658, 0x1658, 0x1658, 0x1658, 0x1658, 0x1658, 0x1658, - 0x1658, 0x1658, 0x1683, 0x1683, 0x1683, 0x1683, 0x1683, 0x1683, - 0x1692, 0x1692, 0x1692, 0x1692, 0x1692, 0x1692, 0x1692, 0x1692, - 0x1692, 0x1692, 0x1692, 0x1692, 0x1692, 0x1692, 0x1692, 0x1692, - 0x1692, 0x1692, 0x1692, 0x1692, 0x16aa, 0x16aa, 0x16f0, 0x16f0, - 0x16f0, 0x16f0, 0x1711, 0x1720, 0x1720, 0x1720, 0x1720, 0x1720, - 0x1720, 0x1720, 0x1735, 0x1735, 0x1735, 0x1735, 0x1735, 0x1735, - 0x1735, 0x1735, 0x1735, 0x1744, 0x1744, 0x1744, 0x1744, 0x1744, - // Entry 240 - 27F - 0x1744, 0x1744, 0x1744, 0x1744, 0x1744, 0x1744, 0x1785, 0x1785, - 0x17df, 0x17df, 0x1805, 0x182d, 0x185f, 0x1896, 0x18c1, 0x18f5, - 0x1929, 0x195d, 0x197d, 0x197d, 0x19a2, 0x19c4, 0x19df, 0x1a0a, - 0x1a32, 0x1a32, 0x1a32, 0x1a66, 0x1a9d, -} - -// Size: 4883 bytes -var neLangStr string = "" + - "अबà¥à¤–ाजियालीअफà¥à¤°à¤¿à¤•à¤¾à¤¨à¥à¤¸à¤†à¤•à¤¾à¤¨à¤…मà¥à¤¹à¤¾à¤°à¤¿à¤•à¤…रबीआसामीअजरबैजानीबाशà¥à¤•à¤¿à¤°à¤µà¥‡à¤²à¤¾à¤°à¥‚सीबà¥à¤²à¥à¤—े" + - "रियालीबामà¥à¤¬à¤¾à¤°à¤¾à¤¬à¤‚गालीतिबà¥à¤¬à¤¤à¥€à¤¬à¥à¤°à¥‡à¤Ÿà¤¨à¤¬à¥‹à¤¸à¥à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤•à¥à¤¯à¤¾à¤Ÿà¤¾à¤²à¤¨à¤•à¥‹à¤°à¥à¤¸à¤¿à¤•à¤¨à¤šà¥‡à¤•à¤µà¥‡à¤²à¥à¤¶à¤¡à¥‡à¤¨" + - "िशजरà¥à¤®à¤¨à¤œà¥‹à¤™à¥à¤–ाइविगà¥à¤°à¥€à¤•à¤…ंगà¥à¤°à¥‡à¤œà¥€à¤à¤¸à¥à¤ªà¥‡à¤°à¤¾à¤¨à¥à¤¤à¥‹à¤¸à¥à¤ªà¥‡à¤¨à¤¿à¤¸à¤‡à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤¬à¤¾à¤¸à¥à¤•à¤«à¤¾à¤°à¤¸à¥€à¤«à¤¿" + - "निशफिजियालीफारोजफà¥à¤°à¤¾à¤¨à¥à¤¸à¥‡à¤²à¥€à¤«à¥à¤°à¤¿à¤œà¥€à¤¯à¤¨à¤†à¤‡à¤°à¤¿à¤¶à¤—लिसियालीगà¥à¤œà¤°à¤¾à¤¨à¥€à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤®à¤¾à¤¨à¥à¤•à¥à¤¸à¤¹" + - "ाउसाहिबà¥à¤°à¥à¤¹à¤¿à¤¨à¥à¤¦à¥€à¤•à¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾à¤²à¥€à¤¹à¥ˆà¤Ÿà¤¿à¤¯à¤¾à¤²à¥€à¤¹à¤‚गà¥à¤°à¥€à¤¯à¤¾à¤²à¥€à¤†à¤°à¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤‡à¤¨à¥à¤¡à¥‹à¤¨à¥‡à¤¸à¤¿à¤¯à¤¾à¤²à¥€à¤‡" + - "गà¥à¤¬à¥‹à¤¸à¤¿à¤šà¥à¤†à¤¨ यिआइसलà¥à¤¯à¤¾à¤¨à¥à¤¡à¤¿à¤•à¤‡à¤Ÿà¤¾à¤²à¤¿à¤¯à¤¨à¤²à¤¨à¥à¤•à¥à¤Ÿà¤¿à¤Ÿà¥à¤Ÿà¤œà¤¾à¤ªà¤¾à¤¨à¥€à¤œà¤¾à¤­à¤¾à¤¨à¤¿à¤œà¤œà¤°à¥à¤œà¤¿à¤¯à¤¾à¤²à¥€à¤•à¤¿à¤•à¥à¤¯à¥" + - "काजाखकालालिसà¥à¤Ÿà¤–मेरकनà¥à¤¨à¤¾à¤¡à¤¾à¤•à¥‹à¤°à¤¿à¤¯à¤¾à¤²à¥€à¤•à¤¾à¤¶à¥à¤®à¥€à¤°à¥€à¤•à¥à¤°à¥à¤¦à¤¿à¤¶à¤•à¥‹à¤°à¥à¤¨à¤¿à¤¶à¤•à¤¿à¤°à¥à¤—िजलà¥à¤¯à¤¾à¤Ÿà¤¿à¤¨à¤²" + - "कà¥à¤œà¥‡à¤®à¥à¤¬à¤°à¥à¤—िसगानà¥à¤¡à¤¾à¤²à¤¿à¤‚गालालाओलिथà¥à¤†à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤²à¥à¤¬à¤¾-काताङà¥à¤—ालातà¥à¤­à¤¿à¤¯à¤¾à¤²à¥€à¤®à¤²à¤¾à¤—ासीम" + - "ाओरीमà¥à¤¯à¤¾à¤•à¥‡à¤¡à¥‹à¤¨à¤¿à¤¯à¤¨à¤®à¤²à¤¯à¤¾à¤²à¤®à¤®à¤‚गोलमराठीमलायामालà¥à¤Ÿà¤¿à¤œà¤µà¤°à¥à¤®à¥‡à¤²à¥€à¤‰à¤¤à¥à¤¤à¤° नेडेबेलेनेपाल" + - "ीडचनरà¥à¤µà¥‡à¤²à¥€ नाइनोरà¥à¤¸à¥à¤•à¤¨à¤°à¥à¤µà¥‡à¤²à¥€ बोकमालओरोमोओरियापंजाबीपोलिशपाशà¥à¤¤à¥‹à¤ªà¥‹à¤°à¥à¤¤à¥à¤—ी" + - "कà¥à¤µà¥‡à¤šà¥à¤µà¤¾à¤°à¥‹à¤®à¤¾à¤¨à¤¿à¤¶à¤°à¥‚णà¥à¤¡à¥€à¤°à¥‹à¤®à¤¾à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤°à¥‚सीकिनà¥à¤¯à¤¾à¤°à¤µà¤¾à¤¨à¥à¤¡à¤¾à¤¸à¤‚सà¥à¤•à¥ƒà¤¤à¤¸à¤¿à¤¨à¥à¤§à¥€à¤‰à¤¤à¥à¤¤à¤°à¥€ सा" + - "मीसाङà¥à¤—ोसिनà¥à¤¹à¤¾à¤²à¤¾à¤¸à¥à¤²à¥‹à¤­à¤¾à¤•à¤¿à¤¯à¤¾à¤²à¥€à¤¸à¥à¤²à¥‹à¤­à¥‡à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤¶à¥‹à¤¨à¤¾à¤¸à¥‹à¤®à¤¾à¤²à¥€à¤…लà¥à¤¬à¥‡à¤¨à¤¿à¤¯à¤¨à¤¸à¤°à¥à¤¬à¤¿à¤¯à¤¾à¤²à¥€à¤¸à¥" + - "डानीसà¥à¤µà¤¿à¤¡à¤¿à¤¶à¤¸à¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤¤à¤¾à¤®à¤¿à¤²à¤¤à¥‡à¤²à¥à¤—à¥à¤¤à¤¾à¤œà¤¿à¤•à¤¥à¤¾à¤ˆà¤¤à¤¿à¤—à¥à¤°à¥€à¤¨à¥à¤¯à¤¾à¤Ÿà¤°à¥à¤•à¤®à¥‡à¤¨à¤Ÿà¥‹à¤™à¥à¤—नटरà¥à¤•à¤¿à¤¶à¤¤à¤¾à¤¤" + - "ारउइघà¥à¤°à¤¯à¥à¤•à¥à¤°à¥‡à¤¨à¥€à¤‰à¤°à¥à¤¦à¥à¤‰à¤œà¥à¤¬à¥‡à¤•à¥€à¤­à¤¿à¤¯à¤¤à¤¨à¤¾à¤®à¥€à¤µà¥à¤²à¥à¤«à¤–ोसायोरूवाचिनियाà¤à¤œà¥à¤²à¥à¤†à¤˜à¥‡à¤®à¤®à¤¾à¤ªà¥à¤š" + - "ेआसà¥à¤¬à¥‡à¤®à¥à¤¬à¤¾à¤¬à¥‡à¤¨à¤¾à¤¬à¥‹à¤¡à¥‹à¤šà¤¿à¤—ाचेरोकीसोरानी कà¥à¤°à¥à¤¦à¤¿à¤¶à¤¤à¤¾à¤‡à¤¤à¤¾à¤œà¤°à¥à¤®à¤¾à¤¤à¤²à¥à¤²à¥‹ सोरà¥à¤¬à¤¿à¤¯à¤¨à¤¦à¥à¤µà¤¾" + - "लाजोला-फोनिलà¤à¤®à¥à¤¬à¥à¤«à¤¿à¤²à¤¿à¤ªà¤¿à¤¨à¥€à¤—गाउजसà¥à¤µà¥€à¤¸ जरà¥à¤®à¤¨à¤—à¥à¤¸à¥€à¤¹à¤µà¤¾à¤‡à¤¯à¤¨à¤®à¤¾à¤¥à¤¿à¤²à¥à¤²à¥‹ सोरà¥à¤¬à¤¿à¤¯à¤¨à¤—ो" + - "मà¥à¤¬à¤¾à¤®à¤¾à¤šà¤¾à¤®à¥‡à¤•à¤¾à¤¬à¤¿à¤²à¤•à¤¾à¤®à¥à¤¬à¤¾à¤®à¤¾à¤•à¥‹à¤¨à¥à¤¡à¥‡à¤•à¤¾à¤¬à¥à¤­à¥‡à¤°à¥à¤¡à¤¿à¤¯à¤¾à¤¨à¥à¤•à¥‹à¤¯à¤°à¤¾ चिनीकालेनà¥à¤œà¤¿à¤¨à¤•à¥‹à¤®à¥€-परà¥" + - "मà¥à¤¯à¤¾à¤•à¤•à¥‹à¤¨à¥à¤•à¤¾à¤¨à¥€à¤¶à¤¾à¤®à¥à¤¬à¤¾à¤²à¤¾à¤¬à¤¾à¤«à¤¿à¤¯à¤¾à¤²à¤¾à¤™à¥à¤—ीलोकोतालà¥à¤“लà¥à¤‡à¤¯à¤¾à¤®à¤¾à¤¸à¤¾à¤²à¤®à¥‡à¤°à¥‚मोरिसेनमाखà¥à¤µà¤¾-" + - "मिटà¥à¤Ÿà¥‹à¤®à¥‡à¤Ÿà¤¾à¤®à¥‹à¤¹à¤•à¤®à¥à¤¨à¥à¤¡à¤¾à¤™à¤¨à¤¾à¤®à¤¾à¤•à¥à¤µà¤¾à¤¸à¤¿à¤¯à¥‹à¤¨à¤•à¥‹à¤¨à¥à¤à¤°à¤¨à¥à¤¯à¤¾à¤¨à¥à¤•à¥‹à¤²à¤•à¤¿à¤šà¥‡à¤°à¥‹à¤®à¥à¤¬à¥‹à¤°à¥\u200cवास" + - "ामà¥à¤¬à¥à¤°à¥‚साङà¥à¤—à¥à¤¸à¥‡à¤¨à¤¾à¤•à¥‹à¤¯à¤°à¤¾à¤¬à¥‹à¤°à¥‹ सेनà¥à¤¨à¥€à¤Ÿà¤¾à¤šà¥‡à¤²à¥à¤¹à¤¿à¤Ÿà¤¦à¤•à¥à¤·à¤¿à¤£à¥€ सामीलà¥à¤²à¥‡ सामीइनारी स" + - "ामीसà¥à¤•à¥‹à¤‡à¤Ÿ सामीकोङà¥à¤—ो सà¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤Ÿà¥‡à¤¸à¥‹à¤¤à¤¾à¤¸à¤¾à¤µà¤¾à¤•à¤•à¥‡à¤¨à¥à¤¦à¥à¤°à¥€à¤¯ à¤à¤Ÿà¥à¤²à¤¾à¤¸ टामाजिघटअजà¥à¤žà¤¾" + - "त भाषाभाइभà¥à¤¨à¥à¤œà¥‹à¤¸à¥‹à¤—ामानक मोरोकà¥à¤•à¥‹à¤¨ तामाजिघटभाषिक सामगà¥à¤°à¥€ छैनआधà¥à¤¨à¤¿à¤• मानक" + - " अरबीअषà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¨ जरà¥à¤®à¤¨à¤¸à¥à¤µà¥€à¤¸ हाई जरà¥à¤®à¤¨à¤¯à¥à¤°à¥‹à¤ªà¥‡à¤²à¥€ सà¥à¤ªà¥‡à¤¨à¤¿à¤¸à¤«à¥à¤²à¥‡à¤®à¤¿à¤¶à¤ªà¥‹à¤°à¥à¤¤à¥à¤—ी (यà¥à¤°à¥‹" + - "प)मालà¥à¤¡à¤¾à¤­à¤¿à¤¯à¤¨à¤¸à¤°à¤²à¤¿à¤•à¥ƒà¤¤ चिनियाà¤à¤ªà¤°à¤®à¥à¤ªà¤°à¤¾à¤—त चिनियाà¤" - -// Size: 1234 bytes, 605 elements -var neLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0021, 0x0021, 0x003f, 0x004b, 0x0063, 0x0063, - 0x006f, 0x007e, 0x007e, 0x007e, 0x0099, 0x00ae, 0x00c6, 0x00ea, - 0x00ea, 0x0102, 0x0114, 0x0129, 0x013b, 0x0159, 0x0171, 0x0171, - 0x0171, 0x0189, 0x0189, 0x0192, 0x0192, 0x0192, 0x01a1, 0x01b0, - 0x01bf, 0x01bf, 0x01d1, 0x01da, 0x01e9, 0x0201, 0x0222, 0x0237, - 0x0258, 0x0267, 0x0276, 0x0276, 0x0285, 0x029d, 0x02ac, 0x02ca, - 0x02e2, 0x02f1, 0x02f1, 0x030c, 0x0321, 0x0336, 0x034b, 0x035a, - 0x036c, 0x037e, 0x037e, 0x039f, 0x03b7, 0x03d5, 0x03f6, 0x03f6, - // Entry 40 - 7F - 0x03f6, 0x041d, 0x041d, 0x042c, 0x0445, 0x0445, 0x0445, 0x0469, - 0x047e, 0x049c, 0x04ae, 0x04c3, 0x04de, 0x04de, 0x04f0, 0x04f0, - 0x04ff, 0x051a, 0x0526, 0x053b, 0x0553, 0x0553, 0x056b, 0x0580, - 0x0580, 0x0595, 0x05aa, 0x05bf, 0x05e6, 0x05f8, 0x05f8, 0x060d, - 0x0616, 0x0637, 0x065c, 0x067a, 0x068f, 0x068f, 0x069e, 0x06c2, - 0x06d4, 0x06e3, 0x06f2, 0x0701, 0x0716, 0x072b, 0x072b, 0x0753, - 0x0765, 0x0765, 0x076b, 0x079f, 0x07c7, 0x07c7, 0x07c7, 0x07c7, - 0x07c7, 0x07c7, 0x07d6, 0x07e5, 0x07e5, 0x07f7, 0x07f7, 0x0806, - // Entry 80 - BF - 0x0818, 0x0830, 0x0848, 0x085d, 0x086f, 0x088d, 0x0899, 0x08c0, - 0x08d5, 0x08d5, 0x08e7, 0x0906, 0x0918, 0x0930, 0x0954, 0x0978, - 0x0978, 0x0984, 0x0996, 0x09b1, 0x09cc, 0x09cc, 0x09cc, 0x09de, - 0x09f3, 0x0a0b, 0x0a1a, 0x0a2c, 0x0a3b, 0x0a44, 0x0a62, 0x0a77, - 0x0a77, 0x0a89, 0x0a9b, 0x0a9b, 0x0aaa, 0x0aaa, 0x0ab9, 0x0ad1, - 0x0ae0, 0x0af5, 0x0af5, 0x0b0d, 0x0b0d, 0x0b0d, 0x0b1c, 0x0b28, - 0x0b28, 0x0b3a, 0x0b3a, 0x0b4f, 0x0b5b, 0x0b5b, 0x0b5b, 0x0b5b, - 0x0b5b, 0x0b5b, 0x0b5b, 0x0b67, 0x0b67, 0x0b67, 0x0b67, 0x0b67, - // Entry C0 - FF - 0x0b67, 0x0b67, 0x0b67, 0x0b67, 0x0b67, 0x0b79, 0x0b79, 0x0b79, - 0x0b79, 0x0b79, 0x0b79, 0x0b79, 0x0b82, 0x0b82, 0x0b82, 0x0b82, - 0x0b82, 0x0b82, 0x0b82, 0x0b82, 0x0b82, 0x0b82, 0x0b82, 0x0b82, - 0x0b82, 0x0b82, 0x0b94, 0x0b94, 0x0ba0, 0x0ba0, 0x0ba0, 0x0ba0, - 0x0ba0, 0x0ba0, 0x0ba0, 0x0ba0, 0x0ba0, 0x0ba0, 0x0ba0, 0x0ba0, - 0x0ba0, 0x0bac, 0x0bac, 0x0bac, 0x0bac, 0x0bac, 0x0bac, 0x0bac, - 0x0bac, 0x0bac, 0x0bac, 0x0bac, 0x0bac, 0x0bb8, 0x0bb8, 0x0bb8, - 0x0bb8, 0x0bb8, 0x0bb8, 0x0bb8, 0x0bb8, 0x0bca, 0x0bca, 0x0bf2, - // Entry 100 - 13F - 0x0bf2, 0x0bf2, 0x0bf2, 0x0bf2, 0x0bf2, 0x0bf2, 0x0c01, 0x0c01, - 0x0c01, 0x0c01, 0x0c01, 0x0c10, 0x0c10, 0x0c38, 0x0c38, 0x0c4a, - 0x0c4a, 0x0c66, 0x0c66, 0x0c66, 0x0c75, 0x0c75, 0x0c75, 0x0c75, - 0x0c75, 0x0c75, 0x0c75, 0x0c75, 0x0c75, 0x0c75, 0x0c75, 0x0c8d, - 0x0c8d, 0x0c8d, 0x0c8d, 0x0c8d, 0x0c8d, 0x0c8d, 0x0c8d, 0x0c8d, - 0x0c8d, 0x0c8d, 0x0c9c, 0x0c9c, 0x0c9c, 0x0c9c, 0x0c9c, 0x0c9c, - 0x0c9c, 0x0c9c, 0x0c9c, 0x0c9c, 0x0c9c, 0x0c9c, 0x0c9c, 0x0c9c, - 0x0c9c, 0x0c9c, 0x0cbb, 0x0cbb, 0x0cbb, 0x0cc7, 0x0cc7, 0x0cc7, - // Entry 140 - 17F - 0x0cc7, 0x0cd9, 0x0cd9, 0x0cd9, 0x0cd9, 0x0cd9, 0x0d0a, 0x0d0a, - 0x0d0a, 0x0d0a, 0x0d0a, 0x0d0a, 0x0d0a, 0x0d0a, 0x0d0a, 0x0d0a, - 0x0d1c, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d3d, 0x0d3d, - 0x0d3d, 0x0d4f, 0x0d4f, 0x0d4f, 0x0d4f, 0x0d4f, 0x0d67, 0x0d91, - 0x0d91, 0x0d91, 0x0d91, 0x0d91, 0x0d91, 0x0dad, 0x0dad, 0x0dad, - 0x0dad, 0x0dc8, 0x0dc8, 0x0ded, 0x0e05, 0x0e05, 0x0e05, 0x0e05, - 0x0e05, 0x0e05, 0x0e05, 0x0e05, 0x0e1d, 0x0e2f, 0x0e2f, 0x0e2f, - 0x0e2f, 0x0e2f, 0x0e41, 0x0e41, 0x0e41, 0x0e41, 0x0e41, 0x0e41, - // Entry 180 - 1BF - 0x0e41, 0x0e53, 0x0e53, 0x0e53, 0x0e53, 0x0e53, 0x0e53, 0x0e53, - 0x0e53, 0x0e5c, 0x0e5c, 0x0e6b, 0x0e6b, 0x0e6b, 0x0e6b, 0x0e6b, - 0x0e6b, 0x0e6b, 0x0e6b, 0x0e6b, 0x0e7a, 0x0e7a, 0x0e7a, 0x0e7a, - 0x0e7a, 0x0e86, 0x0e9b, 0x0e9b, 0x0ec0, 0x0ecc, 0x0ecc, 0x0ecc, - 0x0ecc, 0x0ecc, 0x0ed8, 0x0ed8, 0x0ed8, 0x0eed, 0x0eed, 0x0eed, - 0x0eed, 0x0eed, 0x0eed, 0x0eed, 0x0eed, 0x0eed, 0x0eed, 0x0eed, - 0x0ef9, 0x0ef9, 0x0ef9, 0x0ef9, 0x0ef9, 0x0ef9, 0x0f11, 0x0f11, - 0x0f11, 0x0f11, 0x0f11, 0x0f1a, 0x0f1a, 0x0f26, 0x0f26, 0x0f26, - // Entry 1C0 - 1FF - 0x0f41, 0x0f41, 0x0f41, 0x0f41, 0x0f41, 0x0f41, 0x0f41, 0x0f41, - 0x0f41, 0x0f41, 0x0f41, 0x0f41, 0x0f41, 0x0f41, 0x0f41, 0x0f41, - 0x0f41, 0x0f41, 0x0f41, 0x0f41, 0x0f41, 0x0f4d, 0x0f4d, 0x0f4d, - 0x0f4d, 0x0f4d, 0x0f4d, 0x0f4d, 0x0f5f, 0x0f5f, 0x0f5f, 0x0f5f, - 0x0f5f, 0x0f5f, 0x0f6e, 0x0f6e, 0x0f6e, 0x0f6e, 0x0f86, 0x0f86, - 0x0f86, 0x0f86, 0x0f86, 0x0f98, 0x0f98, 0x0f98, 0x0f98, 0x0f98, - 0x0fa4, 0x0fa4, 0x0fa4, 0x0fd2, 0x0fd2, 0x0fd2, 0x0fed, 0x0fed, - 0x0fed, 0x0fed, 0x0fed, 0x0fed, 0x100f, 0x1028, 0x1044, 0x1063, - // Entry 200 - 23F - 0x1063, 0x1063, 0x1063, 0x1063, 0x1063, 0x1063, 0x1063, 0x1063, - 0x1063, 0x1063, 0x108e, 0x108e, 0x108e, 0x108e, 0x108e, 0x108e, - 0x109a, 0x109a, 0x109a, 0x109a, 0x109a, 0x109a, 0x109a, 0x109a, - 0x109a, 0x109a, 0x109a, 0x109a, 0x109a, 0x109a, 0x109a, 0x109a, - 0x109a, 0x109a, 0x109a, 0x109a, 0x10af, 0x10af, 0x10f6, 0x10f6, - 0x10f6, 0x10f6, 0x1115, 0x111e, 0x111e, 0x111e, 0x111e, 0x111e, - 0x111e, 0x111e, 0x1130, 0x1130, 0x1130, 0x1130, 0x1130, 0x1130, - 0x1130, 0x1130, 0x1130, 0x113c, 0x113c, 0x113c, 0x113c, 0x113c, - // Entry 240 - 27F - 0x113c, 0x113c, 0x113c, 0x113c, 0x113c, 0x113c, 0x117d, 0x117d, - 0x11ac, 0x11ac, 0x11d8, 0x1203, 0x122c, 0x122c, 0x122c, 0x122c, - 0x122c, 0x122c, 0x125a, 0x125a, 0x125a, 0x125a, 0x126f, 0x126f, - 0x1299, 0x12b7, 0x12b7, 0x12e2, 0x1313, -} - -// Size: 4954 bytes -var nlLangStr string = "" + - "AfarAbchazischAvestischAfrikaansAkanAmhaarsAragoneesArabischAssameesAvar" + - "ischAymaraAzerbeidzjaansBasjkiersWit-RussischBulgaarsBislamaBambaraBenga" + - "alsTibetaansBretonsBosnischCatalaansTsjetsjeensChamorroCorsicaansCreeTsj" + - "echischKerkslavischTsjoevasjischWelshDeensDuitsDivehiDzongkhaEweGrieksEn" + - "gelsEsperantoSpaansEstischBaskischPerzischFulahFinsFijischFaeröersFransF" + - "riesIersSchots-GaelischGalicischGuaraníGujaratiManxHausaHebreeuwsHindiHi" + - "ri MotuKroatischHaïtiaans CreoolsHongaarsArmeensHereroInterlinguaIndones" + - "ischInterlingueIgboYiInupiaqIdoIJslandsItaliaansInuktitutJapansJavaansGe" + - "orgischKongoGikuyuKuanyamaKazachsGroenlandsKhmerKannadaKoreaansKanuriKas" + - "jmiriKoerdischKomiCornishKirgizischLatijnLuxemburgsLugandaLimburgsLingal" + - "aLaotiaansLitouwsLuba-KatangaLetsMalagassischMarshalleesMaoriMacedonisch" + - "MalayalamMongoolsMarathiMaleisMalteesBirmaansNauruaansNoord-NdebeleNepal" + - "eesNdongaNederlandsNoors - NynorskNoors - BokmÃ¥lZuid-NdbeleNavajoNyanjaO" + - "ccitaansOjibwaAfaan OromoOdiaOssetischPunjabiPaliPoolsPasjtoePortugeesQu" + - "echuaReto-RomaansKirundiRoemeensRussischKinyarwandaSanskrietSardijnsSind" + - "hiNoord-SamischSangoSingaleesSlowaaksSloveensSamoaansShonaSomalischAlban" + - "eesServischSwaziZuid-SothoSoendaneesZweedsSwahiliTamilTeluguTadzjieksTha" + - "isTigrinyaTurkmeensTswanaTongaansTurksTsongaTataarsTahitiaansOeigoersOek" + - "raïensUrduOezbeeksVendaVietnameesVolapükWaalsWolofXhosaJiddischYorubaZhu" + - "angChineesZoeloeAtjehsAkoliAdangmeAdygeesTunesisch ArabischAfrihiliAghem" + - "AinuAkkadischAlabamaAleoetischGegischZuid-AltaïschOudengelsAngikaAramees" + - "MapudungunAraonaArapahoAlgerijns ArabischArawakMarokkaans ArabischEgypti" + - "sch ArabischAsuAmerikaanse GebarentaalAsturischKotavaAwadhiZuid-Azerbeid" + - "zjaans ArabischBeloetsjiBalineesBeiersBasaBamounBatak TobaGhomala’BejaBe" + - "mbaBetawiBenaBafutBadagaBhojpuriBikolBiniBanjarKomSiksikaBishnupriyaBakh" + - "tiariBrajBrahuiBodoAkooseBoerjatischBugineesBuluBlinMedumbaCaddoCaribisc" + - "hCayugaAtsamCebuanoChigaChibchaChagataiChuukeesMariChinook JargonChoctaw" + - "ChipewyanCherokeeCheyenneSoranîKoptischCapiznonKrim-TataarsKasjoebischDa" + - "kotaDargwaTaitaDelawareSlaveyDogribDinkaZarmaDogriNedersorbischDusunDual" + - "aMiddelnederlandsJola-FonyiDyulaDazagaEmbuEfikEmilianoOudegyptischEkajuk" + - "ElamitischMiddelengelsYupikEwondoExtremeensFangFilipijnsTornedal-FinsFon" + - "Cajun-FransMiddelfransOudfransArpitaansNoord-FriesOost-FriesFriulischGaG" + - "agaoezischGayoGbayaZoroastrisch DariGe’ezGilberteesGilakiMiddelhoogduits" + - "OudhoogduitsGoa KonkaniGondiGorontaloGothischGreboOudgrieksZwitserduitsW" + - "ayuuGuruneGusiiGwichʼinHaidaHakkaHawaïaansFijisch HindiHiligaynonHettiti" + - "schHmongOppersorbischXiangyuHupaIbanIbibioIlokoIngoesjetischIngrischJama" + - "icaans CreoolsLojbanNgombaMachameJudeo-PerzischJudeo-ArabischJutlandsKar" + - "akalpaksKabylischKachinJjuKambaKawiKabardischKanembuTyapMakondeKaapverdi" + - "sch CreoolsKenyangKoroKaingangKhasiKhotaneesKoyra ChiiniKhowarKirmanckîK" + - "akoKalenjinKimbunduKomi-PermjaaksKonkaniKosraeaansKpelleKaratsjaj-Balkar" + - "ischKrioKinaray-aKarelischKurukhShambalaBafiaKölschKoemuksKutenaiLadinoL" + - "angiLahndaLambaLezgischLingua Franca NovaLigurischLijfsLakotaLombardisch" + - "MongoLoziLetgaalsLuba-LuluaLuisenoLundaLuoMizoLuyiaKlassiek ChineesLazis" + - "chMadoereesMafaMagahiMaithiliMakassaarsMandingoMaaMabaMoksjaMandarMendeM" + - "eruMorisyenMiddeliersMakhuwa-MeettoMeta’Mi’kmaqMinangkabauMantsjoeMeitei" + - "MohawkMossiWest-MariMundangMeerdere talenCreekMirandeesMarwariMentawaiMy" + - "eneErzjaMazanderaniMinnanyuNapolitaansNamaNedersaksischNewariNiasNiueaan" + - "sAo NagaNgumbaNgiemboonNogaiOudnoorsNovialN’KoNoord-SothoNuerKlassiek Ne" + - "palbhasaNyamweziNyankoleNyoroNzimaOsageOttomaans-TurksPangasinanPahlaviP" + - "ampangaPapiamentsPalausPicardischPennsylvania-DuitsPlautdietschOudperzis" + - "chPaltsischFoenicischPiëmonteesPontischPohnpeiaansOudpruisischOudprovenç" + - "aalsK’iche’KichwaRajasthaniRapanuiRarotonganRomagnolRiffijnsRomboRomaniR" + - "otumaansRoetheensRovianaAroemeensRwaSandaweJakoetsSamaritaans-ArameesSam" + - "buruSasakSantaliSaurashtraNgambaySanguSiciliaansSchotsSassareesSenecaSen" + - "aSeriSelkoepsKoyraboro SenniOudiersSamogitischTashelhiytShanTsjadisch Ar" + - "abischSidamoSilezisch DuitsSelayarZuid-SamischLule-SamischInari-SamischS" + - "kolt-SamischSoninkeSogdischSranantongoSererSahoSaterfriesSukumaSoesoeSoe" + - "merischShimaoreCongo SwahiliKlassiek SyrischSyrischSilezischTuluTimneTes" + - "oTerenoTetunTigreTivTokelausTsakhurKlingonTlingitTamashekNyasa TongaTok " + - "PisinTuroyoTarokoTsakonischTsimshianMoslim TatToemboekaTuvaluaansTasawaq" + - "ToevaansTamazight (Centraal-Marokko)OedmoertsOegaritischUmbunduRootVaiVe" + - "netiaansWepsischWest-VlaamsVotischVõroVunjoWalserWolayttaWarayWashoWuyuK" + - "almuksMingreelsSogaYaoYapeesYangbenYembaNheengatuKantoneesZapotecBlissym" + - "bolenZeeuwsZenagaStandaard Marokkaanse TamazightZunigeen linguïstische i" + - "nhoudZazamodern standaard ArabischOostenrijks DuitsZwitsers HoogduitsAus" + - "tralisch EngelsCanadees EngelsBrits EngelsAmerikaans EngelsLatijns-Ameri" + - "kaans SpaansEuropees SpaansMexicaans SpaansCanadees FransZwitsers FransV" + - "laamsBraziliaans PortugeesEuropees PortugeesServo-Kroatischvereenvoudigd" + - " Chineestraditioneel Chinees" - -// Size: 1234 bytes, 605 elements -var nlLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000e, 0x0017, 0x0020, 0x0024, 0x002b, 0x0034, - 0x003c, 0x0044, 0x004c, 0x0052, 0x0060, 0x0069, 0x0075, 0x007d, - 0x0084, 0x008b, 0x0093, 0x009c, 0x00a3, 0x00ab, 0x00b4, 0x00bf, - 0x00c7, 0x00d1, 0x00d5, 0x00df, 0x00eb, 0x00f8, 0x00fd, 0x0102, - 0x0107, 0x010d, 0x0115, 0x0118, 0x011e, 0x0124, 0x012d, 0x0133, - 0x013a, 0x0142, 0x014a, 0x014f, 0x0153, 0x015a, 0x0163, 0x0168, - 0x016d, 0x0171, 0x0180, 0x0189, 0x0191, 0x0199, 0x019d, 0x01a2, - 0x01ab, 0x01b0, 0x01b9, 0x01c2, 0x01d4, 0x01dc, 0x01e3, 0x01e9, - // Entry 40 - 7F - 0x01f4, 0x01ff, 0x020a, 0x020e, 0x0210, 0x0217, 0x021a, 0x0222, - 0x022b, 0x0234, 0x023a, 0x0241, 0x024a, 0x024f, 0x0255, 0x025d, - 0x0264, 0x026e, 0x0273, 0x027a, 0x0282, 0x0288, 0x0290, 0x0299, - 0x029d, 0x02a4, 0x02ae, 0x02b4, 0x02be, 0x02c5, 0x02cd, 0x02d4, - 0x02dd, 0x02e4, 0x02f0, 0x02f4, 0x0300, 0x030b, 0x0310, 0x031b, - 0x0324, 0x032c, 0x0333, 0x0339, 0x0340, 0x0348, 0x0351, 0x035e, - 0x0366, 0x036c, 0x0376, 0x0385, 0x0394, 0x039f, 0x03a5, 0x03ab, - 0x03b4, 0x03ba, 0x03c5, 0x03c9, 0x03d2, 0x03d9, 0x03dd, 0x03e2, - // Entry 80 - BF - 0x03e9, 0x03f2, 0x03f9, 0x0405, 0x040c, 0x0414, 0x041c, 0x0427, - 0x0430, 0x0438, 0x043e, 0x044b, 0x0450, 0x0459, 0x0461, 0x0469, - 0x0471, 0x0476, 0x047f, 0x0487, 0x048f, 0x0494, 0x049e, 0x04a8, - 0x04ae, 0x04b5, 0x04ba, 0x04c0, 0x04c9, 0x04ce, 0x04d6, 0x04df, - 0x04e5, 0x04ed, 0x04f2, 0x04f8, 0x04ff, 0x0509, 0x0511, 0x051b, - 0x051f, 0x0527, 0x052c, 0x0536, 0x053e, 0x0543, 0x0548, 0x054d, - 0x0555, 0x055b, 0x0561, 0x0568, 0x056e, 0x0574, 0x0579, 0x0580, - 0x0587, 0x0599, 0x05a1, 0x05a6, 0x05aa, 0x05b3, 0x05ba, 0x05c4, - // Entry C0 - FF - 0x05cb, 0x05d9, 0x05e2, 0x05e8, 0x05ef, 0x05f9, 0x05ff, 0x0606, - 0x0618, 0x061e, 0x0631, 0x0643, 0x0646, 0x065d, 0x0666, 0x066c, - 0x0672, 0x068e, 0x0697, 0x069f, 0x06a5, 0x06a9, 0x06af, 0x06b9, - 0x06c3, 0x06c7, 0x06cc, 0x06d2, 0x06d6, 0x06db, 0x06e1, 0x06e9, - 0x06ee, 0x06f2, 0x06f8, 0x06fb, 0x0702, 0x070d, 0x0716, 0x071a, - 0x0720, 0x0724, 0x072a, 0x0735, 0x073d, 0x0741, 0x0745, 0x074c, - 0x0751, 0x075a, 0x0760, 0x0765, 0x076c, 0x0771, 0x0778, 0x0780, - 0x0788, 0x078c, 0x079a, 0x07a1, 0x07aa, 0x07b2, 0x07ba, 0x07c1, - // Entry 100 - 13F - 0x07c9, 0x07d1, 0x07dd, 0x07e8, 0x07ee, 0x07f4, 0x07f9, 0x0801, - 0x0807, 0x080d, 0x0812, 0x0817, 0x081c, 0x0829, 0x082e, 0x0833, - 0x0843, 0x084d, 0x0852, 0x0858, 0x085c, 0x0860, 0x0868, 0x0874, - 0x087a, 0x0884, 0x0890, 0x0895, 0x089b, 0x08a5, 0x08a9, 0x08b2, - 0x08bf, 0x08c2, 0x08cd, 0x08d8, 0x08e0, 0x08e9, 0x08f4, 0x08fe, - 0x0907, 0x0909, 0x0914, 0x0914, 0x0918, 0x091d, 0x092e, 0x0935, - 0x093f, 0x0945, 0x0954, 0x0960, 0x096b, 0x0970, 0x0979, 0x0981, - 0x0986, 0x098f, 0x099b, 0x09a0, 0x09a6, 0x09ab, 0x09b4, 0x09b9, - // Entry 140 - 17F - 0x09be, 0x09c8, 0x09d5, 0x09df, 0x09e9, 0x09ee, 0x09fb, 0x0a02, - 0x0a06, 0x0a0a, 0x0a10, 0x0a15, 0x0a22, 0x0a2a, 0x0a3c, 0x0a42, - 0x0a48, 0x0a4f, 0x0a5d, 0x0a6b, 0x0a73, 0x0a7e, 0x0a87, 0x0a8d, - 0x0a90, 0x0a95, 0x0a99, 0x0aa3, 0x0aaa, 0x0aae, 0x0ab5, 0x0ac9, - 0x0ad0, 0x0ad4, 0x0adc, 0x0ae1, 0x0aea, 0x0af6, 0x0afc, 0x0b06, - 0x0b0a, 0x0b12, 0x0b1a, 0x0b28, 0x0b2f, 0x0b39, 0x0b3f, 0x0b53, - 0x0b57, 0x0b60, 0x0b69, 0x0b6f, 0x0b77, 0x0b7c, 0x0b83, 0x0b8a, - 0x0b91, 0x0b97, 0x0b9c, 0x0ba2, 0x0ba7, 0x0baf, 0x0bc1, 0x0bca, - // Entry 180 - 1BF - 0x0bcf, 0x0bd5, 0x0be0, 0x0be5, 0x0be9, 0x0bf1, 0x0bfb, 0x0c02, - 0x0c07, 0x0c0a, 0x0c0e, 0x0c13, 0x0c23, 0x0c2a, 0x0c33, 0x0c37, - 0x0c3d, 0x0c45, 0x0c4f, 0x0c57, 0x0c5a, 0x0c5e, 0x0c64, 0x0c6a, - 0x0c6f, 0x0c73, 0x0c7b, 0x0c85, 0x0c93, 0x0c9a, 0x0ca3, 0x0cae, - 0x0cb6, 0x0cbc, 0x0cc2, 0x0cc7, 0x0cd0, 0x0cd7, 0x0ce5, 0x0cea, - 0x0cf3, 0x0cfa, 0x0d02, 0x0d07, 0x0d0c, 0x0d17, 0x0d1f, 0x0d2a, - 0x0d2e, 0x0d3b, 0x0d41, 0x0d45, 0x0d4d, 0x0d54, 0x0d5a, 0x0d63, - 0x0d68, 0x0d70, 0x0d76, 0x0d7c, 0x0d87, 0x0d8b, 0x0d9e, 0x0da6, - // Entry 1C0 - 1FF - 0x0dae, 0x0db3, 0x0db8, 0x0dbd, 0x0dcc, 0x0dd6, 0x0ddd, 0x0de5, - 0x0def, 0x0df5, 0x0dff, 0x0e11, 0x0e1d, 0x0e28, 0x0e31, 0x0e3b, - 0x0e46, 0x0e4e, 0x0e59, 0x0e65, 0x0e74, 0x0e7f, 0x0e85, 0x0e8f, - 0x0e96, 0x0ea0, 0x0ea8, 0x0eb0, 0x0eb5, 0x0ebb, 0x0ec4, 0x0ecd, - 0x0ed4, 0x0edd, 0x0ee0, 0x0ee7, 0x0eee, 0x0f01, 0x0f08, 0x0f0d, - 0x0f14, 0x0f1e, 0x0f25, 0x0f2a, 0x0f34, 0x0f3a, 0x0f43, 0x0f49, - 0x0f4d, 0x0f51, 0x0f59, 0x0f68, 0x0f6f, 0x0f7a, 0x0f84, 0x0f88, - 0x0f9a, 0x0fa0, 0x0faf, 0x0fb6, 0x0fc2, 0x0fce, 0x0fdb, 0x0fe8, - // Entry 200 - 23F - 0x0fef, 0x0ff7, 0x1002, 0x1007, 0x100b, 0x1015, 0x101b, 0x1021, - 0x102b, 0x1033, 0x1040, 0x1050, 0x1057, 0x1060, 0x1064, 0x1069, - 0x106d, 0x1073, 0x1078, 0x107d, 0x1080, 0x1088, 0x108f, 0x1096, - 0x109d, 0x109d, 0x10a5, 0x10b0, 0x10b9, 0x10bf, 0x10c5, 0x10cf, - 0x10d8, 0x10e2, 0x10eb, 0x10f5, 0x10fc, 0x1104, 0x1120, 0x1129, - 0x1134, 0x113b, 0x113f, 0x1142, 0x114c, 0x1154, 0x115f, 0x115f, - 0x1166, 0x116b, 0x1170, 0x1176, 0x117e, 0x1183, 0x1188, 0x1188, - 0x118c, 0x1193, 0x119c, 0x11a0, 0x11a3, 0x11a9, 0x11b0, 0x11b5, - // Entry 240 - 27F - 0x11be, 0x11c7, 0x11ce, 0x11da, 0x11e0, 0x11e6, 0x1205, 0x1209, - 0x1223, 0x1227, 0x1240, 0x1251, 0x1263, 0x1275, 0x1284, 0x1290, - 0x12a1, 0x12ba, 0x12c9, 0x12d9, 0x12e7, 0x12f5, 0x12fb, 0x1310, - 0x1322, 0x1322, 0x1331, 0x1346, 0x135a, -} - -// Size: 4048 bytes -var noLangStr string = "" + - "afarabkhasiskavestiskafrikaansakanamhariskaragonskarabiskassamiskavarisk" + - "aymaraaserbajdsjanskbasjkirskhviterussiskbulgarskbislamabambarabengaliti" + - "betanskbretonskbosniskkatalansktsjetsjenskchamorrokorsikanskcreetsjekkis" + - "kkirkeslavisktsjuvanskwalisiskdansktyskdivehidzongkhaewegreskengelskespe" + - "rantospanskestiskbaskiskpersiskfulanifinskfijianskfærøyskfranskvestfrisi" + - "skirskskotsk gæliskgalisiskguaranigujaratimanskhausahebraiskhindihiri mo" + - "tukroatiskhaitiskungarskarmenskhererointerlinguaindonesiskinterlingueibo" + - "sichuan-yiinupiakidoislandskitalienskinuktitutjapanskjavanesiskgeorgiskk" + - "ikongokikuyukuanyamakasakhiskgrønlandskkhmerkannadakoreanskkanurikasjmir" + - "ikurdiskkomikorniskkirgisisklatinluxemburgskgandalimburgisklingalalaotis" + - "klitauiskluba-katangalatviskmadagassiskmarshallesiskmaorimakedonskmalaya" + - "lammongolskmarathimalayiskmaltesiskburmesisknaurunord-ndebelenepalindong" + - "anederlandsknorsk nynorsknorsk bokmÃ¥lsør-ndebelenavajonyanjaoksitanskoji" + - "bwaoromooriyaossetiskpunjabipalipolskpashtoportugisiskquechuaretoromansk" + - "rundirumenskrussiskkinyarwandasanskritsardinsksindhinordsamisksangosinga" + - "lesiskslovakiskslovensksamoanskshonasomalialbanskserbiskswatisør-sothosu" + - "ndanesisksvenskswahilitamilsktelugutadsjikiskthaitigrinjaturkmensksetswa" + - "natongansktyrkisktsongatatarisktahitiskuiguriskukrainskurduusbekiskvenda" + - "vietnamesiskvolapykvallonskwolofxhosajiddiskjorubazhuangkinesiskzuluachi" + - "nesiskacoliadangmeadygheafrihiliaghemainuakkadiskaleutisksøraltaiskgamme" + - "lengelskangikaarameiskaraukanskarapahoarawakasuasturiskawadhibaluchibali" + - "nesiskbasabamunghomalabejabembabenabafutbhojpuribikolbinikomsiksikabrajb" + - "odoakoseburiatbuginesiskbulublinmedumbacaddokaribiskcayugaatsamcebuanskk" + - "igachibchachagataichuukesiskmarichinookchoctawchipewianskcherokesiskchey" + - "ennekurdisk (sorani)koptiskkrimtatariskkasjubiskdakotadargwataitadelawar" + - "eslaviskdogribdinkazarmadogrilavsorbiskdualamellomnederlandskjola-fonyid" + - "yuladazagakiembuefikgammelegyptiskekajukelamittiskmellomengelskewondofan" + - "gfilippinskfonmellomfranskgammelfransknordfrisiskøstfrisiskfriulianskgag" + - "agausiskgayogbayageskiribatiskmellomhøytyskgammelhøytyskgondigorontalogo" + - "tiskgrebogammelgresksveitsertyskgusiigwichinhaidahawaiiskhiligaynonhetti" + - "ttiskhmonghøysorbiskhupaibanibibioilokoingusjisklojbanngombamachamejødep" + - "ersiskjødearabiskkarakalpakiskkabylskkachinjjukambakawikabardiskkanembut" + - "yapmakondekappverdiskkorokhasikhotanesiskkoyra chiinikakokalenjinkimbund" + - "ukomipermjakiskkonkanikosraeanskkpellekarachay-balkarkarelskkurukhshamba" + - "labafiakølnskkumykkutenailadinsklangilahndalambalezghianlakotamongolozil" + - "uba-lulualuisenolundaluolushailuhyamaduresiskmafamagahimaithilimakasarma" + - "ndingomasaimabamokshamandarmendemerumauritisk-kreolskmellomirskmakhuwa-m" + - "eettometa’micmacminangkabaumandsjumanipurimohawkmossimundangflere sprÃ¥kc" + - "reekmirandesiskmarwarimyeneerzyanapolitansknamalavtysknewariniasniueansk" + - "kwasiongiemboonnogaigammelnorsknkÃ¥nord-sothonuerklassisk newarinyamwezin" + - "yankolenyoronzimaosageottomansk tyrkiskpangasinanpahlavipampangapapiamen" + - "topalauiskgammelpersiskfønikiskponapiskgammelprovençalskquichérajasthani" + - "rapanuirarotonganskromboromaniaromanskrwasandawejakutsksamaritansk arame" + - "isksamburusasaksantalingambaysangusicilianskskotsksenecasenaselkupiskkoy" + - "raboro sennigammelirsktachelhitshanTsjad-arabisksidamosørsamisklulesamis" + - "kenaresamiskskoltesamisksoninkesogdisksranan tongoserersahosukumasususum" + - "eriskkomoriskkongolesisk swahiliklassisk syrisksyrisktemnetesoterenotetu" + - "mtigrétivtokelauklingontlingittamasjeknyasa-tongansktok pisintarokotsims" + - "hiantumbukatuvalutasawaqtuvinisksentralmarokkansk tamazightudmurtugariti" + - "skumbundurotvaivotiskvunjowalserwalamowaraywashokalmyksogayaoyapesiskyan" + - "gbenyembakantonesiskzapotecblissymbolerzenagastandard marrokansk tamazig" + - "htzuniuten sprÃ¥klig innholdzazamoderne standard arabiskøsterriksk tysksv" + - "eitsisk høytyskaustralsk engelskcanadisk engelskbritisk engelskamerikans" + - "k engelsklatinamerikansk spanskeuropeisk spanskmeksikansk spanskcanadisk" + - " fransksveitsisk franskflamskbrasiliansk portugisiskeuropeisk portugisis" + - "kmoldovskserbokroatiskforenklet kinesisktradisjonell kinesisk" - -// Size: 1234 bytes, 605 elements -var noLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000d, 0x0015, 0x001e, 0x0022, 0x002a, 0x0032, - 0x0039, 0x0041, 0x0048, 0x004e, 0x005c, 0x0065, 0x0071, 0x0079, - 0x0080, 0x0087, 0x008e, 0x0097, 0x009f, 0x00a6, 0x00af, 0x00ba, - 0x00c2, 0x00cc, 0x00d0, 0x00d9, 0x00e5, 0x00ee, 0x00f6, 0x00fb, - 0x00ff, 0x0105, 0x010d, 0x0110, 0x0115, 0x011c, 0x0125, 0x012b, - 0x0131, 0x0138, 0x013f, 0x0145, 0x014a, 0x0152, 0x015b, 0x0161, - 0x016c, 0x0170, 0x017e, 0x0186, 0x018d, 0x0195, 0x019a, 0x019f, - 0x01a7, 0x01ac, 0x01b5, 0x01bd, 0x01c4, 0x01cb, 0x01d2, 0x01d8, - // Entry 40 - 7F - 0x01e3, 0x01ed, 0x01f8, 0x01fb, 0x0205, 0x020c, 0x020f, 0x0217, - 0x0220, 0x0229, 0x0230, 0x023a, 0x0242, 0x0249, 0x024f, 0x0257, - 0x0260, 0x026b, 0x0270, 0x0277, 0x027f, 0x0285, 0x028d, 0x0294, - 0x0298, 0x029f, 0x02a8, 0x02ad, 0x02b8, 0x02bd, 0x02c7, 0x02ce, - 0x02d5, 0x02dd, 0x02e9, 0x02f0, 0x02fb, 0x0308, 0x030d, 0x0316, - 0x031f, 0x0327, 0x032e, 0x0336, 0x033f, 0x0348, 0x034d, 0x0359, - 0x035f, 0x0365, 0x0370, 0x037d, 0x038a, 0x0396, 0x039c, 0x03a2, - 0x03ab, 0x03b1, 0x03b6, 0x03bb, 0x03c3, 0x03ca, 0x03ce, 0x03d3, - // Entry 80 - BF - 0x03d9, 0x03e4, 0x03eb, 0x03f6, 0x03fb, 0x0402, 0x0409, 0x0414, - 0x041c, 0x0424, 0x042a, 0x0434, 0x0439, 0x0444, 0x044d, 0x0455, - 0x045d, 0x0462, 0x0468, 0x046f, 0x0476, 0x047b, 0x0485, 0x0490, - 0x0496, 0x049d, 0x04a4, 0x04aa, 0x04b4, 0x04b8, 0x04c0, 0x04c9, - 0x04d1, 0x04d9, 0x04e0, 0x04e6, 0x04ee, 0x04f6, 0x04fe, 0x0506, - 0x050a, 0x0512, 0x0517, 0x0523, 0x052a, 0x0532, 0x0537, 0x053c, - 0x0543, 0x0549, 0x054f, 0x0557, 0x055b, 0x0565, 0x056a, 0x0571, - 0x0577, 0x0577, 0x057f, 0x0584, 0x0588, 0x0590, 0x0590, 0x0598, - // Entry C0 - FF - 0x0598, 0x05a3, 0x05b0, 0x05b6, 0x05be, 0x05c7, 0x05c7, 0x05ce, - 0x05ce, 0x05d4, 0x05d4, 0x05d4, 0x05d7, 0x05d7, 0x05df, 0x05df, - 0x05e5, 0x05e5, 0x05ec, 0x05f6, 0x05f6, 0x05fa, 0x05ff, 0x05ff, - 0x0606, 0x060a, 0x060f, 0x060f, 0x0613, 0x0618, 0x0618, 0x0620, - 0x0625, 0x0629, 0x0629, 0x062c, 0x0633, 0x0633, 0x0633, 0x0637, - 0x0637, 0x063b, 0x0640, 0x0646, 0x0650, 0x0654, 0x0658, 0x065f, - 0x0664, 0x066c, 0x0672, 0x0677, 0x067f, 0x0683, 0x068a, 0x0692, - 0x069c, 0x06a0, 0x06a7, 0x06ae, 0x06b9, 0x06c4, 0x06cc, 0x06dc, - // Entry 100 - 13F - 0x06e3, 0x06e3, 0x06ef, 0x06f8, 0x06fe, 0x0704, 0x0709, 0x0711, - 0x0718, 0x071e, 0x0723, 0x0728, 0x072d, 0x0737, 0x0737, 0x073c, - 0x074d, 0x0757, 0x075c, 0x0762, 0x0768, 0x076c, 0x076c, 0x077a, - 0x0780, 0x078a, 0x0797, 0x0797, 0x079d, 0x079d, 0x07a1, 0x07ab, - 0x07ab, 0x07ae, 0x07ae, 0x07ba, 0x07c6, 0x07c6, 0x07d1, 0x07dc, - 0x07e6, 0x07e8, 0x07f1, 0x07f1, 0x07f5, 0x07fa, 0x07fa, 0x07fd, - 0x0807, 0x0807, 0x0815, 0x0823, 0x0823, 0x0828, 0x0831, 0x0837, - 0x083c, 0x0847, 0x0853, 0x0853, 0x0853, 0x0858, 0x085f, 0x0864, - // Entry 140 - 17F - 0x0864, 0x086c, 0x086c, 0x0876, 0x0880, 0x0885, 0x0890, 0x0890, - 0x0894, 0x0898, 0x089e, 0x08a3, 0x08ac, 0x08ac, 0x08ac, 0x08b2, - 0x08b8, 0x08bf, 0x08cb, 0x08d7, 0x08d7, 0x08e4, 0x08eb, 0x08f1, - 0x08f4, 0x08f9, 0x08fd, 0x0906, 0x090d, 0x0911, 0x0918, 0x0923, - 0x0923, 0x0927, 0x0927, 0x092c, 0x0937, 0x0943, 0x0943, 0x0943, - 0x0947, 0x094f, 0x0957, 0x0965, 0x096c, 0x0976, 0x097c, 0x098b, - 0x098b, 0x098b, 0x0992, 0x0998, 0x09a0, 0x09a5, 0x09ac, 0x09b1, - 0x09b8, 0x09bf, 0x09c4, 0x09ca, 0x09cf, 0x09d7, 0x09d7, 0x09d7, - // Entry 180 - 1BF - 0x09d7, 0x09dd, 0x09dd, 0x09e2, 0x09e6, 0x09e6, 0x09f0, 0x09f7, - 0x09fc, 0x09ff, 0x0a05, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a14, 0x0a18, - 0x0a1e, 0x0a26, 0x0a2d, 0x0a35, 0x0a3a, 0x0a3e, 0x0a44, 0x0a4a, - 0x0a4f, 0x0a53, 0x0a64, 0x0a6e, 0x0a7c, 0x0a83, 0x0a89, 0x0a94, - 0x0a9b, 0x0aa3, 0x0aa9, 0x0aae, 0x0aae, 0x0ab5, 0x0ac1, 0x0ac6, - 0x0ad1, 0x0ad8, 0x0ad8, 0x0add, 0x0ae2, 0x0ae2, 0x0ae2, 0x0aed, - 0x0af1, 0x0af8, 0x0afe, 0x0b02, 0x0b0a, 0x0b0a, 0x0b10, 0x0b19, - 0x0b1e, 0x0b29, 0x0b29, 0x0b2d, 0x0b37, 0x0b3b, 0x0b4a, 0x0b52, - // Entry 1C0 - 1FF - 0x0b5a, 0x0b5f, 0x0b64, 0x0b69, 0x0b7a, 0x0b84, 0x0b8b, 0x0b93, - 0x0b9d, 0x0ba5, 0x0ba5, 0x0ba5, 0x0ba5, 0x0bb2, 0x0bb2, 0x0bbb, - 0x0bbb, 0x0bbb, 0x0bc3, 0x0bc3, 0x0bd5, 0x0bdc, 0x0bdc, 0x0be6, - 0x0bed, 0x0bf9, 0x0bf9, 0x0bf9, 0x0bfe, 0x0c04, 0x0c04, 0x0c04, - 0x0c04, 0x0c0c, 0x0c0f, 0x0c16, 0x0c1d, 0x0c31, 0x0c38, 0x0c3d, - 0x0c44, 0x0c44, 0x0c4b, 0x0c50, 0x0c5a, 0x0c60, 0x0c60, 0x0c66, - 0x0c6a, 0x0c6a, 0x0c73, 0x0c82, 0x0c8c, 0x0c8c, 0x0c95, 0x0c99, - 0x0ca6, 0x0cac, 0x0cac, 0x0cac, 0x0cb6, 0x0cc0, 0x0ccb, 0x0cd7, - // Entry 200 - 23F - 0x0cde, 0x0ce5, 0x0cf1, 0x0cf6, 0x0cfa, 0x0cfa, 0x0d00, 0x0d04, - 0x0d0c, 0x0d14, 0x0d27, 0x0d36, 0x0d3c, 0x0d3c, 0x0d3c, 0x0d41, - 0x0d45, 0x0d4b, 0x0d50, 0x0d56, 0x0d59, 0x0d60, 0x0d60, 0x0d67, - 0x0d6e, 0x0d6e, 0x0d76, 0x0d84, 0x0d8d, 0x0d8d, 0x0d93, 0x0d93, - 0x0d9c, 0x0d9c, 0x0da3, 0x0da9, 0x0db0, 0x0db8, 0x0dd3, 0x0dd9, - 0x0de2, 0x0de9, 0x0dec, 0x0def, 0x0def, 0x0def, 0x0def, 0x0def, - 0x0df5, 0x0df5, 0x0dfa, 0x0e00, 0x0e06, 0x0e0b, 0x0e10, 0x0e10, - 0x0e10, 0x0e16, 0x0e16, 0x0e1a, 0x0e1d, 0x0e25, 0x0e2c, 0x0e31, - // Entry 240 - 27F - 0x0e31, 0x0e3c, 0x0e43, 0x0e4f, 0x0e4f, 0x0e55, 0x0e72, 0x0e76, - 0x0e8c, 0x0e90, 0x0ea8, 0x0eb8, 0x0eca, 0x0edb, 0x0eeb, 0x0efa, - 0x0f0c, 0x0f22, 0x0f32, 0x0f43, 0x0f52, 0x0f62, 0x0f68, 0x0f7f, - 0x0f94, 0x0f9c, 0x0fa9, 0x0fbb, 0x0fd0, -} - -// Size: 5147 bytes -var paLangStr string = "" + - "ਅਬਖਾਜ਼ੀਅਨਅਫ਼ਰੀਕੀਅਕਾਨਅਮਹਾਰਿਕਅਰਬੀਅਸਾਮੀਅਜ਼ਰਬਾਈਜਾਨੀਬਸ਼ਕੀਰਬੇਲਾਰੂਸੀਬà©à¨²à¨—ਾਰੀਆਈਬੰ" + - "ਬਾਰਾਬੰਗਾਲੀਤਿੱਬਤੀਬਰੇਟਨਬੋਸਨੀਆਈਕੈਟਾਲਾਨਚੇਚਨਕੋਰਸੀਕਨਚੈਕਵੈਲਜ਼ਡੈਨਿਸ਼ਜਰਮਨਜ਼ੋਂਗਖ" + - "ਾਈਵਈਯੂਨਾਨੀਅੰਗਰੇਜ਼ੀਇਸਪੇਰਾਂਟੋਸਪੇਨੀਇਸਟੋਨੀਆਈਬਾਸਕਫ਼ਾਰਸੀਫਿਨਿਸ਼ਫ਼ਿਜ਼ੀਫ਼ੇਰੋਸੇਫ" + - "ਰਾਂਸੀਸੀਪੱਛਮੀ ਫà©à¨°à¨¿à¨¸à©€à¨…ਨਆਇਰੀਗੈਲਿਸ਼ਿਅਨਗà©à¨†à¨°à¨¾à¨¨à©€à¨—à©à¨œà¨°à¨¾à¨¤à©€à¨®à©ˆà¨‚ਕਸਹੌਸਾਹਿਬਰੂਹਿੰਦੀਕà©à¨°" + - "à©‹à¨à¨¸à¨¼à¨¿à¨†à¨ˆà¨¹à©ˆà¨¤à©€à¨†à¨ˆà¨¹à©°à¨—ਰੀਆਈਅਰਮੀਨੀਆਈਇੰਡੋਨੇਸ਼ੀਆਈਇਗਬੋਸਿਚà©à¨†à¨¨ ਯੀਆਈਸਲੈਂਡਿਕਇਤਾਲਵੀਇੰਕ" + - "ਟੀਟੂਤਜਪਾਨੀਜਾਵਾਨੀਜ਼ਜਾਰਜੀਆਈਕਿਕੂਯੂਕਜ਼ਾਖ਼ਕਲਾਅੱਲੀਸà©à¨Ÿà¨–ਮੇਰਕੰਨੜਕੋਰੀਆਈਕਸ਼ਮੀਰੀਕà©" + - "ਰਦਕੋਰਨਿਸ਼ਕਿਰਗੀਜ਼ਲਾਤੀਨੀਲਕਜ਼ਮਬਰਗਿਸ਼ਗਾਂਡਾਲਿੰਗਾਲਾਲਾਓਲਿਥà©à¨†à¨¨à©€à¨…ਨਲੂਬਾ-ਕਾਟਾਂਗਾਲ" + - "ਾਟਵਿਅਨਮੇਲੇਗਸੀਮਾਉਰੀਮੈਕਡੋਨੀਆਈਮਲਿਆਲਮਮੰਗੋਲੀਅਨਮਰਾਠੀਮਲਯਮਾਲਟੀਜ਼ਬਰਮੀਉੱਤਰੀ ਨਡੇਬ" + - "ੇਲੇਨੇਪਾਲੀਡੱਚਨਾਰਵੇਜਿਆਈ ਨਿਓਨੌਰਸਕਨਾਰਵੇਜਿਆਈ ਬੋਕਮਲਓਰੋਮੋਉੜੀਆਪੰਜਾਬੀਪਲੀਪੋਲੈਂਡੀ" + - "ਪਸ਼ਤੋਪà©à¨°à¨¤à¨—ਾਲੀਕਕੇਸ਼à©à¨†à¨°à©‹à¨®à¨¾à¨‚ਸ਼ਰà©à©°à¨¡à©€à¨°à©‹à¨®à¨¾à¨¨à©€à¨†à¨ˆà¨°à©‚ਸੀਕਿਨਿਆਰਵਾਂਡਾਸੰਸਕà©à¨°à¨¿à¨¤à¨¸à¨¿à©°à¨§à©€à¨‰à©±" + - "ਤਰੀ ਸਾਮੀਸਾਂਗੋਸਿੰਹਾਲਾਸਲੋਵਾਕਸਲੋਵੇਨੀਆਈਸ਼ੋਨਾਸੋਮਾਲੀਅਲਬਾਨੀਆਈਸਰਬੀਆਈਸੂਡਾਨੀਸਵੀਡ" + - "ਿਸ਼ਸਵਾਹਿਲੀਤਮਿਲਤੇਲਗੂਤਾਜਿਕਥਾਈਤਿਗà©à¨°à©€à¨¨à¨¿à¨†à¨¤à©à¨°à¨•à¨®à©‡à¨¨à¨Ÿà©Œà¨‚ਗਨਤà©à¨°à¨•à©€à¨¤à¨¤à¨¾à¨°à¨‰à¨‡à¨—à©à¨°à¨¯à©‚ਕਰੇਨੀਆ" + - "ਈਉਰਦੂਉਜ਼ਬੇਕਵੀਅਤਨਾਮੀਵੋਲੋਫਖੋਸਾਯੋਰੂਬਾਚੀਨੀਜ਼à©à¨²à©‚ਅਚੀਨੀਅਕੋਲੀਅਗੇਮਪà©à¨°à¨¾à¨£à©€ ਅੰਗਰੇਜ" + - "਼ੀਮਾਪà©à¨šà©‡à¨…ਸੂਬੇਮਬਾਬੇਨਾਭੋਜਪà©à¨°à©€à¨¬à©‹à¨¡à©‹à¨šà©€à¨—ਾਮਾਰੀਚੇਰੋਕੀਸੋਰਾਨੀ ਕà©à¨°à¨¦à¨¿à¨¸à¨¼à¨Ÿà©‡à¨Ÿà¨¾à¨œà¨¼à¨¾à¨°à¨®à¨¾à¨²" + - "ੋਅਰ ਸੋਰਬੀਅਨਡੂਆਲਾਜੋਲਾ-ਫੋਇਨੀਇੰਬੂਪà©à¨°à¨¾à¨¤à¨¨ ਮਿਸਰੀਫਿਲੀਪਿਨੋਗਾਗੌਜ਼ਪà©à¨°à¨¾à¨¤à¨¨ ਯੂਨਾਨੀਸ" + - "ਵਿਸ ਜਰਮਨਗà©à¨¸à©€à¨¹à¨µà¨¾à¨ˆà¨«à¨¿à¨œà©€ ਹਿੰਦੀਅੱਪਰ ਸੋਰਬੀਅਨਨਗੋਂਬਾਮਚਾਮੇਕਬਾਇਲਕੰਬਾਮਕੋਂਡਕਾਬà©à¨µà©‡à¨°" + - "ਦਿਆਨੂਕੋਯਰਾ ਚੀਨੀਕਲੇਜਿਨਕੋਮੀ-ਪੇਰਮਿਆਕਕੋਂਕਣੀਸ਼ੰਬਾਲਾਬਫ਼ੀਆਲੰਗਾਈਲਕੋਟਾਲੂਓਲੂਈਆਮੈ" + - "ਥਲੀਮਸਾਈਮੇਰੂਮੋਰੀਸਿਅਨਮਖੋਵਾ-ਮਿੱਟੋਮੇਟਾਮਨੀਪà©à¨°à©€à¨®à©‹à¨¹à¨¾à¨µà¨•à¨®à©à©°à¨¡à©‡à¨‚ਗਕਈ ਭਾਸ਼ਾਵਾਂਨਾਮਾਕ" + - "ਵਾਸਿਓà¨à¨‚ਕੋਨà©à¨à¨°à¨¨à¨¿à¨†à¨‚ਕੋਲੇਕੇਸ਼ਰਾਜਸਥਾਨੀਰੋਮਬੋਰਵਾਸਮਬà©à¨°à©‚ਸੰਥਾਲੀਸੇਂਗੋਸੇਨਾਕੋਇਰਾਬੋਰ" + - "à©‹ ਸੇਂਨੀਟਚੇਲਹਿਟਸ਼ਾਨਦੱਖਣੀ ਸਾਮੀਲਿਊਲ ਸਾਮੀਇਨਾਰੀ ਸਾਮੀਸਕੌਲਟ ਸਾਮੀਕਾਂਗੋ ਸਵਾਹਿਲੀ" + - "ਟੇਸੋਤਾਸਾਵਿਕਮੱਧ à¨à¨Ÿà¨²à¨¸ ਤਮਾਜ਼ਿਤਅਣਪਛਾਤੀ ਭਾਸ਼ਾਵਾਈਵੂੰਜੋਸੋਗਾਮਿਆਰੀ ਮੋਰੋਕੇਨ ਟਾਮਾ" + - "ਜ਼ਿਕਕੋਈ ਭਾਸ਼ਾਈ ਸਮੱਗਰੀ ਨਹੀਂਆਧà©à¨¨à¨¿à¨• ਮਿਆਰੀ ਅਰਬੀਆਸਟਰੀਆਈ ਜਰਮਨਸਵਿਸ ਹਾਈ ਜਰਮਨਆਸ" + - "ਟà©à¨°à©‡à¨²à©€à¨†à¨ˆ ਅੰਗਰੇਜ਼ੀਕੈਨੇਡੀਅਨ ਅੰਗਰੇਜ਼ੀਬਰਤਾਨਵੀ ਅੰਗਰੇਜ਼ੀਅਮਰੀਕੀ ਅੰਗਰੇਜ਼ੀਲਾਤੀਨ" + - "à©€ ਅਮਰੀਕੀ ਸਪੇਨੀਯੂਰਪੀ ਸਪੇਨੀਮੈਕਸੀਕਨ ਸਪੈਨਿਸ਼ਕੈਨੇਡੀਅਨ ਫਰਾਂਸੀਸੀਸਵਿਸ ਫਰਾਂਸੀਸੀ" + - "ਫਲੈਮਿਸ਼ਬà©à¨°à¨¾à¨œà¨¼à©€à¨²à©€à¨†à¨ˆ ਪà©à¨°à¨¤à¨—ਾਲੀਯੂਰਪੀ ਪà©à¨°à¨¤à¨—ਾਲੀਮੋਲਡਾਵੀਆਈਸਰਲ ਚੀਨੀਰਵਾਇਤੀ ਚੀਨੀ" - -// Size: 1234 bytes, 605 elements -var paLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x001b, 0x001b, 0x0030, 0x003c, 0x0051, 0x0051, - 0x005d, 0x006c, 0x006c, 0x006c, 0x008d, 0x009f, 0x00b7, 0x00d2, - 0x00d2, 0x00e4, 0x00f6, 0x0108, 0x0117, 0x012c, 0x0141, 0x014d, - 0x014d, 0x0162, 0x0162, 0x016b, 0x016b, 0x016b, 0x017a, 0x018c, - 0x0198, 0x0198, 0x01ad, 0x01b6, 0x01c8, 0x01e0, 0x01fb, 0x020a, - 0x0222, 0x022e, 0x0240, 0x0240, 0x0252, 0x0264, 0x0279, 0x0291, - 0x02b9, 0x02c5, 0x02c5, 0x02e0, 0x02f5, 0x030a, 0x0319, 0x0325, - 0x0334, 0x0343, 0x0343, 0x0361, 0x0373, 0x0388, 0x03a0, 0x03a0, - // Entry 40 - 7F - 0x03a0, 0x03c1, 0x03c1, 0x03cd, 0x03e6, 0x03e6, 0x03e6, 0x0401, - 0x0413, 0x042b, 0x043a, 0x0452, 0x0467, 0x0467, 0x0479, 0x0479, - 0x048b, 0x04a9, 0x04b5, 0x04c1, 0x04d3, 0x04d3, 0x04e8, 0x04f4, - 0x04f4, 0x0509, 0x051e, 0x0530, 0x0551, 0x0560, 0x0560, 0x0575, - 0x057e, 0x0599, 0x05bb, 0x05d0, 0x05e5, 0x05e5, 0x05f4, 0x060f, - 0x0621, 0x0639, 0x0648, 0x0651, 0x0666, 0x0672, 0x0672, 0x0697, - 0x06a9, 0x06a9, 0x06b2, 0x06e6, 0x0711, 0x0711, 0x0711, 0x0711, - 0x0711, 0x0711, 0x0720, 0x072c, 0x072c, 0x073e, 0x0747, 0x075c, - // Entry 80 - BF - 0x076b, 0x0783, 0x0798, 0x07ad, 0x07bc, 0x07d4, 0x07e0, 0x0801, - 0x0819, 0x0819, 0x0828, 0x0844, 0x0853, 0x0868, 0x087a, 0x0895, - 0x0895, 0x08a4, 0x08b6, 0x08ce, 0x08e0, 0x08e0, 0x08e0, 0x08f2, - 0x0907, 0x091c, 0x0928, 0x0937, 0x0946, 0x094f, 0x096a, 0x097f, - 0x097f, 0x098e, 0x099d, 0x099d, 0x09a9, 0x09a9, 0x09b8, 0x09d3, - 0x09df, 0x09f1, 0x09f1, 0x0a09, 0x0a09, 0x0a09, 0x0a18, 0x0a24, - 0x0a24, 0x0a36, 0x0a36, 0x0a42, 0x0a51, 0x0a60, 0x0a6f, 0x0a6f, - 0x0a6f, 0x0a6f, 0x0a6f, 0x0a7b, 0x0a7b, 0x0a7b, 0x0a7b, 0x0a7b, - // Entry C0 - FF - 0x0a7b, 0x0a7b, 0x0aa6, 0x0aa6, 0x0aa6, 0x0ab8, 0x0ab8, 0x0ab8, - 0x0ab8, 0x0ab8, 0x0ab8, 0x0ab8, 0x0ac1, 0x0ac1, 0x0ac1, 0x0ac1, - 0x0ac1, 0x0ac1, 0x0ac1, 0x0ac1, 0x0ac1, 0x0ac1, 0x0ac1, 0x0ac1, - 0x0ac1, 0x0ac1, 0x0ad0, 0x0ad0, 0x0adc, 0x0adc, 0x0adc, 0x0af1, - 0x0af1, 0x0af1, 0x0af1, 0x0af1, 0x0af1, 0x0af1, 0x0af1, 0x0af1, - 0x0af1, 0x0afd, 0x0afd, 0x0afd, 0x0afd, 0x0afd, 0x0afd, 0x0afd, - 0x0afd, 0x0afd, 0x0afd, 0x0afd, 0x0afd, 0x0b09, 0x0b09, 0x0b09, - 0x0b09, 0x0b15, 0x0b15, 0x0b15, 0x0b15, 0x0b27, 0x0b27, 0x0b4f, - // Entry 100 - 13F - 0x0b4f, 0x0b4f, 0x0b4f, 0x0b4f, 0x0b4f, 0x0b4f, 0x0b5b, 0x0b5b, - 0x0b5b, 0x0b5b, 0x0b5b, 0x0b6d, 0x0b6d, 0x0b8f, 0x0b8f, 0x0b9e, - 0x0b9e, 0x0bba, 0x0bba, 0x0bba, 0x0bc6, 0x0bc6, 0x0bc6, 0x0be8, - 0x0be8, 0x0be8, 0x0be8, 0x0be8, 0x0be8, 0x0be8, 0x0be8, 0x0c00, - 0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x0c00, - 0x0c00, 0x0c00, 0x0c12, 0x0c12, 0x0c12, 0x0c12, 0x0c12, 0x0c12, - 0x0c12, 0x0c12, 0x0c12, 0x0c12, 0x0c12, 0x0c12, 0x0c12, 0x0c12, - 0x0c12, 0x0c37, 0x0c50, 0x0c50, 0x0c50, 0x0c5c, 0x0c5c, 0x0c5c, - // Entry 140 - 17F - 0x0c5c, 0x0c68, 0x0c84, 0x0c84, 0x0c84, 0x0c84, 0x0ca6, 0x0ca6, - 0x0ca6, 0x0ca6, 0x0ca6, 0x0ca6, 0x0ca6, 0x0ca6, 0x0ca6, 0x0ca6, - 0x0cb8, 0x0cc7, 0x0cc7, 0x0cc7, 0x0cc7, 0x0cc7, 0x0cd6, 0x0cd6, - 0x0cd6, 0x0ce2, 0x0ce2, 0x0ce2, 0x0ce2, 0x0ce2, 0x0cf1, 0x0d15, - 0x0d15, 0x0d15, 0x0d15, 0x0d15, 0x0d15, 0x0d31, 0x0d31, 0x0d31, - 0x0d31, 0x0d43, 0x0d43, 0x0d65, 0x0d77, 0x0d77, 0x0d77, 0x0d77, - 0x0d77, 0x0d77, 0x0d77, 0x0d77, 0x0d8c, 0x0d9b, 0x0d9b, 0x0d9b, - 0x0d9b, 0x0d9b, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, - // Entry 180 - 1BF - 0x0daa, 0x0db9, 0x0db9, 0x0db9, 0x0db9, 0x0db9, 0x0db9, 0x0db9, - 0x0db9, 0x0dc2, 0x0dc2, 0x0dce, 0x0dce, 0x0dce, 0x0dce, 0x0dce, - 0x0dce, 0x0ddd, 0x0ddd, 0x0ddd, 0x0de9, 0x0de9, 0x0de9, 0x0de9, - 0x0de9, 0x0df5, 0x0e0d, 0x0e0d, 0x0e2c, 0x0e38, 0x0e38, 0x0e38, - 0x0e38, 0x0e4d, 0x0e5f, 0x0e5f, 0x0e5f, 0x0e74, 0x0e93, 0x0e93, - 0x0e93, 0x0e93, 0x0e93, 0x0e93, 0x0e93, 0x0e93, 0x0e93, 0x0e93, - 0x0e9f, 0x0e9f, 0x0e9f, 0x0e9f, 0x0e9f, 0x0e9f, 0x0eb1, 0x0eb1, - 0x0eb1, 0x0eb1, 0x0eb1, 0x0ebd, 0x0ebd, 0x0ec9, 0x0ec9, 0x0ec9, - // Entry 1C0 - 1FF - 0x0ee1, 0x0ee1, 0x0ee1, 0x0ee1, 0x0ee1, 0x0ee1, 0x0ee1, 0x0ee1, - 0x0ee1, 0x0ee1, 0x0ee1, 0x0ee1, 0x0ee1, 0x0ee1, 0x0ee1, 0x0ee1, - 0x0ee1, 0x0ee1, 0x0ee1, 0x0ee1, 0x0ee1, 0x0eed, 0x0eed, 0x0f05, - 0x0f05, 0x0f05, 0x0f05, 0x0f05, 0x0f14, 0x0f14, 0x0f14, 0x0f14, - 0x0f14, 0x0f14, 0x0f1d, 0x0f1d, 0x0f1d, 0x0f1d, 0x0f2f, 0x0f2f, - 0x0f41, 0x0f41, 0x0f41, 0x0f50, 0x0f50, 0x0f50, 0x0f50, 0x0f50, - 0x0f5c, 0x0f5c, 0x0f5c, 0x0f87, 0x0f87, 0x0f87, 0x0f9c, 0x0fa8, - 0x0fa8, 0x0fa8, 0x0fa8, 0x0fa8, 0x0fc4, 0x0fdd, 0x0ff9, 0x1015, - // Entry 200 - 23F - 0x1015, 0x1015, 0x1015, 0x1015, 0x1015, 0x1015, 0x1015, 0x1015, - 0x1015, 0x1015, 0x103a, 0x103a, 0x103a, 0x103a, 0x103a, 0x103a, - 0x1046, 0x1046, 0x1046, 0x1046, 0x1046, 0x1046, 0x1046, 0x1046, - 0x1046, 0x1046, 0x1046, 0x1046, 0x1046, 0x1046, 0x1046, 0x1046, - 0x1046, 0x1046, 0x1046, 0x1046, 0x105b, 0x105b, 0x1087, 0x1087, - 0x1087, 0x1087, 0x10ac, 0x10b5, 0x10b5, 0x10b5, 0x10b5, 0x10b5, - 0x10b5, 0x10b5, 0x10c4, 0x10c4, 0x10c4, 0x10c4, 0x10c4, 0x10c4, - 0x10c4, 0x10c4, 0x10c4, 0x10d0, 0x10d0, 0x10d0, 0x10d0, 0x10d0, - // Entry 240 - 27F - 0x10d0, 0x10d0, 0x10d0, 0x10d0, 0x10d0, 0x10d0, 0x110e, 0x110e, - 0x114a, 0x114a, 0x1179, 0x119b, 0x11be, 0x11f5, 0x1226, 0x1254, - 0x127f, 0x12b4, 0x12d3, 0x12fe, 0x132f, 0x1354, 0x1369, 0x13a3, - 0x13cb, 0x13e6, 0x13e6, 0x13fc, 0x141b, -} - -// Size: 5490 bytes -var plLangStr string = "" + - "afarabchaskiawestyjskiafrikaansakanamharskiaragoÅ„skiarabskiasamskiawarsk" + - "iajmaraazerskibaszkirskibiaÅ‚oruskibuÅ‚garskibislamabambarabengalskitybeta" + - "Å„skibretoÅ„skiboÅ›niackikataloÅ„skiczeczeÅ„skichamorrokorsykaÅ„skikriczeskis" + - "taro-cerkiewno-sÅ‚owiaÅ„skiczuwaskiwalijskiduÅ„skiniemieckimalediwskidzongk" + - "haewegreckiangielskiesperantohiszpaÅ„skiestoÅ„skibaskijskiperskifulanifiÅ„s" + - "kifidżijskifarerskifrancuskizachodniofryzyjskiirlandzkiszkocki gaelickig" + - "alicyjskiguaranigudźarackimanxhausahebrajskihindihiri motuchorwackihaita" + - "Å„skiwÄ™gierskiormiaÅ„skihererointerlinguaindonezyjskiinterlingueigbosyczu" + - "aÅ„skiinupiakidoislandzkiwÅ‚oskiinuktitutjapoÅ„skijawajskigruziÅ„skikongokik" + - "ujukwanyamakazachskigrenlandzkikhmerskikannadakoreaÅ„skikanurikaszmirskik" + - "urdyjskikomikornijskikirgiskiÅ‚aciÅ„skiluksemburskigandalimburgijskilingal" + - "alaotaÅ„skilitewskiluba-katangaÅ‚otewskimalgaskimarshallmaoryjskimacedoÅ„sk" + - "imalajalammongolskimarathimalajskimaltaÅ„skibirmaÅ„skinaurundebele północn" + - "ynepalskindonganiderlandzkinorweski (nynorsk)norweski (bokmÃ¥l)ndebele po" + - "Å‚udniowynawahonjandżaprowansalskiodżibwaoromskiorijaosetyjskipendżabski" + - "palijskipolskipasztoportugalskikeczuaretoromaÅ„skirundirumuÅ„skirosyjskiki" + - "nya-ruandasanskrytsardyÅ„skisindhilapoÅ„ski północnysangosyngaleskisÅ‚owack" + - "isÅ‚oweÅ„skisamoaÅ„skiszonasomalijskialbaÅ„skiserbskisiswatisotho poÅ‚udniowy" + - "sundajskiszwedzkisuahilitamilskitelugutadżyckitajskitigriniaturkmeÅ„skise" + - "tswanatongatureckitsongatatarskitahitaÅ„skiujgurskiukraiÅ„skiurduuzbeckive" + - "ndawietnamskivolapukwaloÅ„skiwolofkhosajidyszjorubaczuangchiÅ„skizuluaceha" + - "czoliadangmeadygejskitunezyjski arabskiafrihiliaghemajnuakadyjskialabama" + - "aleuckialbaÅ„ski gegijskipoÅ‚udniowoaÅ‚tajskistaroangielskiangikaaramejskia" + - "raukaÅ„skiaraonaarapahoalgierski arabskiarawakmarokaÅ„ski arabskiegipski a" + - "rabskiasuamerykaÅ„ski jÄ™zyk migowyasturyjskikotavaawadhipoÅ‚udniowoazerski" + - "beludżibalijskibawarskibasabamumbatak tobaghomalabedżabembabetawibenabaf" + - "utbadagabhodźpuribikolbinibanjarkomsiksikabisznuprija-manipuribachtiarsk" + - "ibradźbrahuibodoakoseburiackibugiÅ„skibulublinmedumbakaddokaribikajugaats" + - "amcebuanochigaczibczaczagatajskitrukmaryjskiżargon Chinookchoctawchipewy" + - "anczirokeskijÄ™zyk Czejenówsoranikoptyjskicapiznonkrymski tureckikaszubsk" + - "idakotadargwijskitaitadelawareslavedogribdinkadżermadogridolnoÅ‚użyckidus" + - "un centralnydualaÅ›redniowieczny niderlandzkidioladyuladazagaembuefikemil" + - "ijskistarożytny egipskiekajukelamickiÅ›rednioangielskiyupik Å›rodkowosyber" + - "yjskiewondoestremadurskifangfilipinomeänkielifoncajunÅ›redniofrancuskista" + - "rofrancuskifranko-prowansalskipółnocnofryzyjskifryzyjski wschodnifriulij" + - "skigagagauskigangayogbayazaratusztriaÅ„ski darigyyzgilbertaÅ„skigiliaÅ„skiÅ›" + - "rednio-wysoko-niemieckistaro-wysoko-niemieckikonkani (Goa)gondigorontalo" + - "gockigrebostarogreckiszwajcarski niemieckiwayúufrafragusiigwichʼinhaidah" + - "akkahawajskihindi fidżyjskiehiligajnonhetyckihmongijskigórnoÅ‚użyckixiang" + - "hupaibanagibibioilokanoinguskiingryjskijamajskilojbanngombemachamejudeop" + - "erskijudeoarabskijutlandzkikarakaÅ‚packikabylskikaczinjjukambakawikabardy" + - "jskikanembutyapmakondekreolski Wysp Zielonego PrzylÄ…dkakenyangkorokainga" + - "ngkhasichotaÅ„skikoyra chinikhowarkirmandżkikakokalenjinkimbundukomi-perm" + - "iackikonkanikosraekpellekaraczajsko-baÅ‚karskikriokinarayakarelskikurukhs" + - "ambalabafiagwara koloÅ„skakumyckikutenailadyÅ„skilangilahndalambalezgijski" + - "Lingua Franca NovaliguryjskiliwskilakotalombardzkimongoloziÅ‚atgalskiluba" + - "-lulualuisenolundaluolushailuhyachiÅ„ski klasycznylazyjskimadurajskimafam" + - "agahimaithilimakasarmandingomasajskimabamokshamandarmendemerukreolski Ma" + - "uritiusaÅ›rednioirlandzkimakuametamicmacminangkabumanchumanipuryjskimohaw" + - "kmossizachodniomaryjskimundangwiele jÄ™zykówcreekmirandesemarwarimentawai" + - "myeneerzyamazanderaÅ„skiminnaÅ„skineapolitaÅ„skinamadolnosaksoÅ„skinewarskin" + - "iasniueaongumbangiemboonnogajskistaronordyjskinovialn’kosotho północnynu" + - "ernewarski klasycznyniamwezinyankolenyoronzemaosageosmaÅ„sko-tureckipanga" + - "sinopahlavipampangopapiamentopalaupikardyjskipensylwaÅ„skiplautdietschsta" + - "roperskipalatynackifenickipiemonckipontyjskiponpejskipruskistaroprowansa" + - "lskikiczechimborazo górski keczuaradźasthanirapanuirarotongaromagnoltari" + - "fitrombocygaÅ„skirotumaÅ„skirusiÅ„skirovianaarumuÅ„skirwasandawejakuckisamar" + - "ytaÅ„ski aramejskisamburusasaksantalisaurasztryjskingambaysangusycylijski" + - "szkockisassarskisenekasenaseriselkupskikoyraboro sennistaroirlandzkiżmud" + - "zkitashelhiytshanarabski (Czad)sidamodolnoÅ›lÄ…skiselayarlapoÅ„ski poÅ‚udnio" + - "wylapoÅ„ski LulelapoÅ„ski InarilapoÅ„ski Skoltsoninkesogdyjskisranan tongos" + - "erersahofryzyjski saterlandzkisukumasususumeryjskikomoryjskikongijski su" + - "ahilisyriackisyryjskiÅ›lÄ…skitulutemneatesoterenotetumtigretiwtokelaucachu" + - "rskiklingoÅ„skitlingittaÅ‚yskitamaszektonga (Niasa)tok pisinturoyotarokoca" + - "koÅ„skitsimshiantackitumbukatuvalutasawaqtuwiÅ„skicentralnomarokaÅ„ski tama" + - "zightudmurckiugaryckiumbundujÄ™zyk rdzennywaiweneckiwepskizachodnioflaman" + - "dzkimeÅ„ski frankoÅ„skiwotiackivõrovunjowalserwalamowarajwashowukaÅ‚muckime" + - "grelskisogayaojapskiyangbenyembanhengatukantoÅ„skizapoteckiblisszelandzki" + - "zenagazghzunibrak treÅ›ci o charakterze jÄ™zykowymzazakiwspółczesny arabsk" + - "iaustriacki niemieckiwysokoniemiecki (Szwajcaria)australijski angielskik" + - "anadyjski angielskibrytyjski angielskiamerykaÅ„ski angielskiamerykaÅ„ski h" + - "iszpaÅ„skieuropejski hiszpaÅ„skimeksykaÅ„ski hiszpaÅ„skikanadyjski francuski" + - "szwajcarski francuskiflamandzki (Belgia)brazylijski portugalskieuropejsk" + - "i portugalskimoÅ‚dawskiserbsko-chorwackichiÅ„ski (uproszczony)chiÅ„ski (tra" + - "dycyjny)" - -// Size: 1234 bytes, 605 elements -var plLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000c, 0x0016, 0x001f, 0x0023, 0x002b, 0x0035, - 0x003c, 0x0043, 0x004a, 0x0050, 0x0057, 0x0061, 0x006c, 0x0076, - 0x007d, 0x0084, 0x008d, 0x0098, 0x00a2, 0x00ac, 0x00b7, 0x00c2, - 0x00ca, 0x00d6, 0x00d9, 0x00df, 0x00fb, 0x0103, 0x010b, 0x0112, - 0x011b, 0x0125, 0x012d, 0x0130, 0x0136, 0x013f, 0x0148, 0x0153, - 0x015c, 0x0165, 0x016b, 0x0171, 0x0178, 0x0182, 0x018a, 0x0193, - 0x01a5, 0x01ae, 0x01be, 0x01c8, 0x01cf, 0x01da, 0x01de, 0x01e3, - 0x01ec, 0x01f1, 0x01fa, 0x0203, 0x020d, 0x0217, 0x0221, 0x0227, - // Entry 40 - 7F - 0x0232, 0x023e, 0x0249, 0x024d, 0x0258, 0x025f, 0x0262, 0x026b, - 0x0272, 0x027b, 0x0284, 0x028c, 0x0296, 0x029b, 0x02a1, 0x02a9, - 0x02b2, 0x02bd, 0x02c5, 0x02cc, 0x02d6, 0x02dc, 0x02e6, 0x02ef, - 0x02f3, 0x02fc, 0x0304, 0x030e, 0x031a, 0x031f, 0x032b, 0x0332, - 0x033c, 0x0344, 0x0350, 0x0359, 0x0361, 0x0369, 0x0372, 0x037d, - 0x0386, 0x038f, 0x0396, 0x039e, 0x03a8, 0x03b2, 0x03b7, 0x03c9, - 0x03d1, 0x03d7, 0x03e3, 0x03f5, 0x0407, 0x041a, 0x0420, 0x0428, - 0x0434, 0x043c, 0x0443, 0x0448, 0x0451, 0x045c, 0x0464, 0x046a, - // Entry 80 - BF - 0x0470, 0x047b, 0x0481, 0x048e, 0x0493, 0x049c, 0x04a4, 0x04b0, - 0x04b8, 0x04c2, 0x04c8, 0x04dc, 0x04e1, 0x04eb, 0x04f4, 0x04ff, - 0x0509, 0x050e, 0x0518, 0x0521, 0x0528, 0x052f, 0x0540, 0x0549, - 0x0551, 0x0558, 0x0560, 0x0566, 0x056f, 0x0575, 0x057d, 0x0588, - 0x0590, 0x0595, 0x059c, 0x05a2, 0x05aa, 0x05b5, 0x05bd, 0x05c7, - 0x05cb, 0x05d2, 0x05d7, 0x05e1, 0x05e8, 0x05f1, 0x05f6, 0x05fb, - 0x0601, 0x0607, 0x060d, 0x0615, 0x0619, 0x061d, 0x0623, 0x062a, - 0x0633, 0x0645, 0x064d, 0x0652, 0x0656, 0x065f, 0x0666, 0x066d, - // Entry C0 - FF - 0x067f, 0x0693, 0x06a1, 0x06a7, 0x06b0, 0x06bb, 0x06c1, 0x06c8, - 0x06d9, 0x06df, 0x06f2, 0x0701, 0x0704, 0x071e, 0x0728, 0x072e, - 0x0734, 0x0746, 0x074e, 0x0756, 0x075e, 0x0762, 0x0767, 0x0771, - 0x0778, 0x077e, 0x0783, 0x0789, 0x078d, 0x0792, 0x0798, 0x07a2, - 0x07a7, 0x07ab, 0x07b1, 0x07b4, 0x07bb, 0x07cf, 0x07da, 0x07e0, - 0x07e6, 0x07ea, 0x07ef, 0x07f7, 0x0800, 0x0804, 0x0808, 0x080f, - 0x0814, 0x081a, 0x0820, 0x0825, 0x082c, 0x0831, 0x0838, 0x0843, - 0x0847, 0x084f, 0x085e, 0x0865, 0x086e, 0x0878, 0x0888, 0x088e, - // Entry 100 - 13F - 0x0897, 0x089f, 0x08ae, 0x08b7, 0x08bd, 0x08c7, 0x08cc, 0x08d4, - 0x08d9, 0x08df, 0x08e4, 0x08eb, 0x08f0, 0x08fe, 0x090d, 0x0912, - 0x092e, 0x0933, 0x0938, 0x093e, 0x0942, 0x0946, 0x094f, 0x0962, - 0x0968, 0x0970, 0x0981, 0x099a, 0x09a0, 0x09ad, 0x09b1, 0x09b9, - 0x09c3, 0x09c6, 0x09cb, 0x09dc, 0x09ea, 0x09fd, 0x0a10, 0x0a22, - 0x0a2c, 0x0a2e, 0x0a36, 0x0a39, 0x0a3d, 0x0a42, 0x0a58, 0x0a5c, - 0x0a69, 0x0a73, 0x0a8c, 0x0aa2, 0x0aaf, 0x0ab4, 0x0abd, 0x0ac2, - 0x0ac7, 0x0ad2, 0x0ae7, 0x0aed, 0x0af3, 0x0af8, 0x0b01, 0x0b06, - // Entry 140 - 17F - 0x0b0b, 0x0b13, 0x0b24, 0x0b2e, 0x0b35, 0x0b3f, 0x0b4e, 0x0b53, - 0x0b57, 0x0b5d, 0x0b63, 0x0b6a, 0x0b71, 0x0b7a, 0x0b82, 0x0b88, - 0x0b8e, 0x0b95, 0x0ba0, 0x0bac, 0x0bb6, 0x0bc3, 0x0bcb, 0x0bd1, - 0x0bd4, 0x0bd9, 0x0bdd, 0x0be8, 0x0bef, 0x0bf3, 0x0bfa, 0x0c1c, - 0x0c23, 0x0c27, 0x0c2f, 0x0c34, 0x0c3e, 0x0c49, 0x0c4f, 0x0c5a, - 0x0c5e, 0x0c66, 0x0c6e, 0x0c7c, 0x0c83, 0x0c89, 0x0c8f, 0x0ca5, - 0x0ca9, 0x0cb1, 0x0cb9, 0x0cbf, 0x0cc6, 0x0ccb, 0x0cda, 0x0ce1, - 0x0ce8, 0x0cf1, 0x0cf6, 0x0cfc, 0x0d01, 0x0d0a, 0x0d1c, 0x0d26, - // Entry 180 - 1BF - 0x0d2c, 0x0d32, 0x0d3c, 0x0d41, 0x0d45, 0x0d4f, 0x0d59, 0x0d60, - 0x0d65, 0x0d68, 0x0d6e, 0x0d73, 0x0d85, 0x0d8d, 0x0d97, 0x0d9b, - 0x0da1, 0x0da9, 0x0db0, 0x0db8, 0x0dc0, 0x0dc4, 0x0dca, 0x0dd0, - 0x0dd5, 0x0dd9, 0x0dec, 0x0dfd, 0x0e02, 0x0e06, 0x0e0c, 0x0e16, - 0x0e1c, 0x0e28, 0x0e2e, 0x0e33, 0x0e44, 0x0e4b, 0x0e5a, 0x0e5f, - 0x0e68, 0x0e6f, 0x0e77, 0x0e7c, 0x0e81, 0x0e8f, 0x0e99, 0x0ea7, - 0x0eab, 0x0eba, 0x0ec2, 0x0ec6, 0x0eca, 0x0ecc, 0x0ed2, 0x0edb, - 0x0ee3, 0x0ef1, 0x0ef7, 0x0efd, 0x0f0d, 0x0f11, 0x0f23, 0x0f2b, - // Entry 1C0 - 1FF - 0x0f33, 0x0f38, 0x0f3d, 0x0f42, 0x0f53, 0x0f5c, 0x0f63, 0x0f6b, - 0x0f75, 0x0f7a, 0x0f85, 0x0f92, 0x0f9e, 0x0fa9, 0x0fb4, 0x0fbb, - 0x0fc4, 0x0fcd, 0x0fd6, 0x0fdc, 0x0fed, 0x0ff2, 0x100b, 0x1017, - 0x101e, 0x1027, 0x102f, 0x1036, 0x103b, 0x1044, 0x104f, 0x1058, - 0x105f, 0x1069, 0x106c, 0x1073, 0x107a, 0x1091, 0x1098, 0x109d, - 0x10a4, 0x10b2, 0x10b9, 0x10be, 0x10c8, 0x10cf, 0x10d8, 0x10de, - 0x10e2, 0x10e6, 0x10ef, 0x10fe, 0x110c, 0x1114, 0x111e, 0x1122, - 0x1130, 0x1136, 0x1143, 0x114a, 0x115f, 0x116d, 0x117c, 0x118b, - // Entry 200 - 23F - 0x1192, 0x119b, 0x11a7, 0x11ac, 0x11b0, 0x11c6, 0x11cc, 0x11d0, - 0x11da, 0x11e4, 0x11f5, 0x11fd, 0x1205, 0x120d, 0x1211, 0x1216, - 0x121b, 0x1221, 0x1226, 0x122b, 0x122e, 0x1235, 0x123e, 0x1249, - 0x1250, 0x1258, 0x1260, 0x126d, 0x1276, 0x127c, 0x1282, 0x128b, - 0x1294, 0x1299, 0x12a0, 0x12a6, 0x12ad, 0x12b6, 0x12d4, 0x12dc, - 0x12e4, 0x12eb, 0x12f9, 0x12fc, 0x1303, 0x1309, 0x131c, 0x132f, - 0x1337, 0x133c, 0x1341, 0x1347, 0x134d, 0x1352, 0x1357, 0x1357, - 0x1359, 0x1362, 0x136b, 0x136f, 0x1372, 0x1378, 0x137f, 0x1384, - // Entry 240 - 27F - 0x138c, 0x1396, 0x139f, 0x13a4, 0x13ad, 0x13b3, 0x13b6, 0x13ba, - 0x13df, 0x13e5, 0x13fa, 0x140e, 0x142a, 0x1440, 0x1454, 0x1467, - 0x147d, 0x1495, 0x14ab, 0x14c3, 0x14d7, 0x14ec, 0x14ff, 0x1516, - 0x152c, 0x1536, 0x1547, 0x155d, 0x1572, -} - -// Size: 4158 bytes -var ptLangStr string = "" + - "afarabcázioavésticoafricânerakanamáricoaragonêsárabeassamêsavaricaimaraa" + - "zerbaijanobashkirbielorrussobúlgarobislamábambarabengalitibetanobretãobó" + - "sniocatalãochechenochamorrocórsicocreetchecoeslavo eclesiásticochuvashga" + - "lêsdinamarquêsalemãodivehidzongaevegregoinglêsesperantoespanholestoniano" + - "bascopersafulafinlandêsfijianoferoêsfrancêsfrísio ocidentalirlandêsgaéli" + - "co escocêsgalegoguaraniguzeratemanxhauçáhebraicohíndihiri motucroatahait" + - "ianohúngaroarmêniohererointerlínguaindonésiointerlingueibosichuan yiinup" + - "iaqueidoislandêsitalianoinuktitutjaponêsjavanêsgeorgianocongolêsquicuiok" + - "uanyamacazaquegroenlandêskhmercanarêscoreanocanúricaxemiracurdokomicórni" + - "coquirguizlatimluxemburguêslugandalimburguêslingalalaosianolituanoluba-c" + - "atangaletãomalgaxemarshalêsmaorimacedôniomalaialamongolmaratamalaiomaltê" + - "sbirmanêsnauruanondebele do nortenepalidongoholandêsnynorsk norueguêsbok" + - "mÃ¥l norueguêsndebele do sulnavajonianjaoccitânicoojibwaoromooriyaossetic" + - "panjabipálipolonêspashtoportuguêsquíchuaromancherundiromenorussokinyarwa" + - "ndasânscritosardosindisami do nortesangocingalêseslovacoeslovenosamoanos" + - "honasomalialbanêssérvioswatisoto do sulsundanêssuecosuaílitâmiltelugutaj" + - "iquetailandêstigríniaturcomenotswanatonganêsturcotsongatatartaitianouigu" + - "rucranianourduusbequevendavietnamitavolapuquevalãouólofexosaiídicheiorub" + - "azhuangchinêszuluachémacoliadangmeadigueafrihiliaghemainuacadianoaleútea" + - "ltai do sulinglês arcaicoangikaaramaicoaraucanoarapahoarauaquiasuasturia" + - "noawadhibalúchibalinêsbasabamumghomala’bejabembabenabafutbhojpuribikolbi" + - "nikomsiksikabrajbodoakooseburiatbuginêsbulublinmedumbacaddocaribecayugaa" + - "tsamcebuanochigachibchachagataichuukesemarichinook jargonchoctawchipewya" + - "ncherokeecheienesorâni curdocoptaturco da Crimeiakashubiandacotadargwata" + - "itadelawareslavedogribdinkazarmadogrisorábio baixodualaholandês médiojol" + - "a-fonyidiúladazagaembuefiqueegípcio arcaicoekajukelamiteinglês médioewon" + - "dofanguefilipinofomfrancês médiofrancês arcaicofrísio setentrionalfrisão" + - " orientalfriulanogagagauzgayogbaiageezgilbertêsalemão médio-altoalemão a" + - "rcaico altogondigorontalogóticogrebogrego arcaicoalemão suíçogusiigwichʼ" + - "inhaidahavaianohiligaynonhititahmongsorábio altohupaibanibibioilocanoing" + - "uchelojbannguembamachamejudaico-persajudaico-arábicokara-kalpakkabylekac" + - "hinjjukambakawikabardianokanembutyapmacondekabuverdianukorokhasikhotanês" + - "koyra chiinikakokalenjinquimbundokomi-permyakconcanikosraeankpellekarach" + - "ay-balkaridioma caréliokurukhshambalabafiakölschkumykkutenailadinolangil" + - "ahndalambalezghianlacotamongoloziluba-lulualuisenolundaluolushailuyiamad" + - "urêsmafamagahimaithilimakasarmandingamassaimabamocsamandarmendemerumoris" + - "yenirlandês médiomacuameta’miquemaqueminangkabaumanchumanipurimoicanomos" + - "simundangidiomas múltiploscreekmirandêsmarwarimyeneerzyanapolitanonamaba" + - "ixo alemãonewariniasniueanokwasiongiemboonnogainórdico arcaicon’kosoto s" + - "etentrionalnuernewari clássiconyamwezinyankolenyoronzimaosageturco otoma" + - "nopangasinãpálavipampangapapiamentopalauanopersa arcaicofeníciopohnpeian" + - "provençal arcaicoquichérajastanirapanuirarotonganoromboromaniaromenorwas" + - "andaweiacutoaramaico samaritanosamburusasaksantalingambaysangusicilianoe" + - "scocêssenecasenaselkupkoyraboro senniirlandês arcaicotachelhitshanárabe " + - "chadianosidamosami do sullule samiinari samiskolt samisoninquêsogdianoid" + - "ioma surinamêssereresahosukumasossosumériocomorianosuaíli do Congosiríac" + - "o clássicosiríacotimnetesoterenotétumtigrétivtoquelauanoklingontlinguite" + - "tamaxequetonganês de Nyasatok pisintarokotsimshiantumbukatuvaluanotasawa" + - "qtuvinianotamazight do Atlas Centraludmurtugaríticoumbunduidioma desconh" + - "ecidovaivoticvunjowalserwalamowaraywashokalmyklusogayaoyapeseyangbenyemb" + - "acantonêszapotecasímbolos bliszenagatamazight marroquino padrãozunhisem " + - "conteúdo linguísticozazaárabe modernoalemão austríacoalto alemão suíçoin" + - "glês australianoinglês canadenseinglês britânicoinglês americanoespanhol" + - " latino-americanoespanhol europeuespanhol mexicanofrancês canadensefranc" + - "ês suíçoflamengoportuguês do Brasilportuguês europeumoldávioservo-croat" + - "achinês simplificadochinês tradicional" - -// Size: 1234 bytes, 605 elements -var ptLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000c, 0x0015, 0x001f, 0x0023, 0x002b, 0x0034, - 0x003a, 0x0042, 0x0048, 0x004e, 0x0059, 0x0060, 0x006b, 0x0073, - 0x007b, 0x0082, 0x0089, 0x0091, 0x0098, 0x009f, 0x00a7, 0x00af, - 0x00b7, 0x00bf, 0x00c3, 0x00c9, 0x00dd, 0x00e4, 0x00ea, 0x00f6, - 0x00fd, 0x0103, 0x0109, 0x010c, 0x0111, 0x0118, 0x0121, 0x0129, - 0x0132, 0x0137, 0x013c, 0x0140, 0x014a, 0x0151, 0x0158, 0x0160, - 0x0171, 0x017a, 0x018b, 0x0191, 0x0198, 0x01a0, 0x01a4, 0x01ab, - 0x01b3, 0x01b9, 0x01c2, 0x01c8, 0x01d0, 0x01d8, 0x01e0, 0x01e6, - // Entry 40 - 7F - 0x01f2, 0x01fc, 0x0207, 0x020a, 0x0214, 0x021d, 0x0220, 0x0229, - 0x0231, 0x023a, 0x0242, 0x024a, 0x0253, 0x025c, 0x0263, 0x026b, - 0x0272, 0x027e, 0x0283, 0x028b, 0x0292, 0x0299, 0x02a1, 0x02a6, - 0x02aa, 0x02b2, 0x02ba, 0x02bf, 0x02cc, 0x02d3, 0x02de, 0x02e5, - 0x02ed, 0x02f4, 0x0300, 0x0306, 0x030d, 0x0317, 0x031c, 0x0326, - 0x032e, 0x0334, 0x033a, 0x0340, 0x0347, 0x0350, 0x0358, 0x0368, - 0x036e, 0x0373, 0x037c, 0x038e, 0x03a0, 0x03ae, 0x03b4, 0x03ba, - 0x03c5, 0x03cb, 0x03d0, 0x03d5, 0x03dc, 0x03e3, 0x03e8, 0x03f0, - // Entry 80 - BF - 0x03f6, 0x0400, 0x0408, 0x0410, 0x0415, 0x041b, 0x0420, 0x042b, - 0x0435, 0x043a, 0x043f, 0x044c, 0x0451, 0x045a, 0x0462, 0x046a, - 0x0471, 0x0476, 0x047c, 0x0484, 0x048b, 0x0490, 0x049b, 0x04a4, - 0x04a9, 0x04b0, 0x04b6, 0x04bc, 0x04c3, 0x04cd, 0x04d6, 0x04df, - 0x04e5, 0x04ee, 0x04f3, 0x04f9, 0x04fe, 0x0506, 0x050b, 0x0514, - 0x0518, 0x051f, 0x0524, 0x052e, 0x0537, 0x053d, 0x0544, 0x0548, - 0x0550, 0x0556, 0x055c, 0x0563, 0x0567, 0x056d, 0x0572, 0x0579, - 0x057f, 0x057f, 0x0587, 0x058c, 0x0590, 0x0598, 0x0598, 0x059f, - // Entry C0 - FF - 0x059f, 0x05ab, 0x05ba, 0x05c0, 0x05c8, 0x05d0, 0x05d0, 0x05d7, - 0x05d7, 0x05df, 0x05df, 0x05df, 0x05e2, 0x05e2, 0x05eb, 0x05eb, - 0x05f1, 0x05f1, 0x05f9, 0x0601, 0x0601, 0x0605, 0x060a, 0x060a, - 0x0614, 0x0618, 0x061d, 0x061d, 0x0621, 0x0626, 0x0626, 0x062e, - 0x0633, 0x0637, 0x0637, 0x063a, 0x0641, 0x0641, 0x0641, 0x0645, - 0x0645, 0x0649, 0x064f, 0x0655, 0x065d, 0x0661, 0x0665, 0x066c, - 0x0671, 0x0677, 0x067d, 0x0682, 0x0689, 0x068e, 0x0695, 0x069d, - 0x06a5, 0x06a9, 0x06b7, 0x06be, 0x06c7, 0x06cf, 0x06d6, 0x06e3, - // Entry 100 - 13F - 0x06e8, 0x06e8, 0x06f8, 0x0701, 0x0707, 0x070d, 0x0712, 0x071a, - 0x071f, 0x0725, 0x072a, 0x072f, 0x0734, 0x0742, 0x0742, 0x0747, - 0x0757, 0x0761, 0x0767, 0x076d, 0x0771, 0x0777, 0x0777, 0x0787, - 0x078d, 0x0794, 0x07a2, 0x07a2, 0x07a8, 0x07a8, 0x07ae, 0x07b6, - 0x07b6, 0x07b9, 0x07b9, 0x07c8, 0x07d8, 0x07d8, 0x07ec, 0x07fc, - 0x0804, 0x0806, 0x080c, 0x080c, 0x0810, 0x0815, 0x0815, 0x0819, - 0x0823, 0x0823, 0x0836, 0x084a, 0x084a, 0x084f, 0x0858, 0x085f, - 0x0864, 0x0871, 0x0880, 0x0880, 0x0880, 0x0885, 0x088e, 0x0893, - // Entry 140 - 17F - 0x0893, 0x089b, 0x089b, 0x08a5, 0x08ab, 0x08b0, 0x08bd, 0x08bd, - 0x08c1, 0x08c5, 0x08cb, 0x08d2, 0x08d9, 0x08d9, 0x08d9, 0x08df, - 0x08e6, 0x08ed, 0x08fa, 0x090a, 0x090a, 0x0915, 0x091b, 0x0921, - 0x0924, 0x0929, 0x092d, 0x0937, 0x093e, 0x0942, 0x0949, 0x0955, - 0x0955, 0x0959, 0x0959, 0x095e, 0x0967, 0x0973, 0x0973, 0x0973, - 0x0977, 0x097f, 0x0988, 0x0994, 0x099b, 0x09a3, 0x09a9, 0x09b8, - 0x09b8, 0x09b8, 0x09c7, 0x09cd, 0x09d5, 0x09da, 0x09e1, 0x09e6, - 0x09ed, 0x09f3, 0x09f8, 0x09fe, 0x0a03, 0x0a0b, 0x0a0b, 0x0a0b, - // Entry 180 - 1BF - 0x0a0b, 0x0a11, 0x0a11, 0x0a16, 0x0a1a, 0x0a1a, 0x0a24, 0x0a2b, - 0x0a30, 0x0a33, 0x0a39, 0x0a3e, 0x0a3e, 0x0a3e, 0x0a46, 0x0a4a, - 0x0a50, 0x0a58, 0x0a5f, 0x0a67, 0x0a6d, 0x0a71, 0x0a76, 0x0a7c, - 0x0a81, 0x0a85, 0x0a8d, 0x0a9d, 0x0aa2, 0x0aa9, 0x0ab3, 0x0abe, - 0x0ac4, 0x0acc, 0x0ad3, 0x0ad8, 0x0ad8, 0x0adf, 0x0af1, 0x0af6, - 0x0aff, 0x0b06, 0x0b06, 0x0b0b, 0x0b10, 0x0b10, 0x0b10, 0x0b1a, - 0x0b1e, 0x0b2b, 0x0b31, 0x0b35, 0x0b3c, 0x0b3c, 0x0b42, 0x0b4b, - 0x0b50, 0x0b60, 0x0b60, 0x0b66, 0x0b77, 0x0b7b, 0x0b8b, 0x0b93, - // Entry 1C0 - 1FF - 0x0b9b, 0x0ba0, 0x0ba5, 0x0baa, 0x0bb7, 0x0bc1, 0x0bc8, 0x0bd0, - 0x0bda, 0x0be2, 0x0be2, 0x0be2, 0x0be2, 0x0bef, 0x0bef, 0x0bf7, - 0x0bf7, 0x0bf7, 0x0c00, 0x0c00, 0x0c12, 0x0c19, 0x0c19, 0x0c22, - 0x0c29, 0x0c34, 0x0c34, 0x0c34, 0x0c39, 0x0c3f, 0x0c3f, 0x0c3f, - 0x0c3f, 0x0c46, 0x0c49, 0x0c50, 0x0c56, 0x0c69, 0x0c70, 0x0c75, - 0x0c7c, 0x0c7c, 0x0c83, 0x0c88, 0x0c91, 0x0c99, 0x0c99, 0x0c9f, - 0x0ca3, 0x0ca3, 0x0ca9, 0x0cb8, 0x0cc9, 0x0cc9, 0x0cd2, 0x0cd6, - 0x0ce5, 0x0ceb, 0x0ceb, 0x0ceb, 0x0cf6, 0x0cff, 0x0d09, 0x0d13, - // Entry 200 - 23F - 0x0d1c, 0x0d24, 0x0d35, 0x0d3b, 0x0d3f, 0x0d3f, 0x0d45, 0x0d4a, - 0x0d52, 0x0d5b, 0x0d6b, 0x0d7d, 0x0d85, 0x0d85, 0x0d85, 0x0d8a, - 0x0d8e, 0x0d94, 0x0d9a, 0x0da0, 0x0da3, 0x0dae, 0x0dae, 0x0db5, - 0x0dbe, 0x0dbe, 0x0dc7, 0x0dd9, 0x0de2, 0x0de2, 0x0de8, 0x0de8, - 0x0df1, 0x0df1, 0x0df8, 0x0e01, 0x0e08, 0x0e11, 0x0e2b, 0x0e31, - 0x0e3b, 0x0e42, 0x0e55, 0x0e58, 0x0e58, 0x0e58, 0x0e58, 0x0e58, - 0x0e5d, 0x0e5d, 0x0e62, 0x0e68, 0x0e6e, 0x0e73, 0x0e78, 0x0e78, - 0x0e78, 0x0e7e, 0x0e7e, 0x0e84, 0x0e87, 0x0e8d, 0x0e94, 0x0e99, - // Entry 240 - 27F - 0x0e99, 0x0ea2, 0x0eaa, 0x0eb8, 0x0eb8, 0x0ebe, 0x0eda, 0x0edf, - 0x0ef9, 0x0efd, 0x0f0b, 0x0f1d, 0x0f31, 0x0f44, 0x0f55, 0x0f67, - 0x0f78, 0x0f91, 0x0fa1, 0x0fb2, 0x0fc4, 0x0fd4, 0x0fdc, 0x0ff0, - 0x1002, 0x100b, 0x1017, 0x102b, 0x103e, -} - -// Size: 470 bytes -var ptPTLangStr string = "" + - "africânderchecoeweestóniofrísico ocidentalhaúçahindiarménioigboconguêsca" + - "narimgandamacedónionorueguês nynorsknorueguês bokmÃ¥lprovençalosséticopol" + - "acopastóturcomanotongamapuchebamunghomalajargão chinooksorani curdobaixo" + - " sórabioegípcio clássicoinglês medievalfrancês medievalfrísio orientalal" + - "emão medieval altogrego clássicoalto sórabiocabo-verdianolezghianoluoirl" + - "andês, medievalromanêssakhaárabe do Chadevaisogainglês canadianofrancês " + - "canadiano" - -// Size: 1218 bytes, 597 elements -var ptPTLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x000b, 0x000b, 0x000b, 0x000b, - 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, - 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, - 0x000b, 0x000b, 0x000b, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, - 0x001b, 0x001b, 0x001b, 0x001b, 0x001b, 0x001b, 0x001b, 0x001b, - 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x0034, - 0x0034, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0041, 0x0041, - // Entry 40 - 7F - 0x0041, 0x0041, 0x0041, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x004d, 0x004d, 0x004d, - 0x004d, 0x004d, 0x004d, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0059, 0x0059, 0x0059, - 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0075, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0091, 0x0091, 0x0091, 0x0091, 0x009a, 0x009a, 0x009a, 0x00a0, - // Entry 80 - BF - 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, - 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, - 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, - 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00af, - 0x00af, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, - 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, - 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, - 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, - // Entry C0 - FF - 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00bb, 0x00bb, 0x00bb, - 0x00bb, 0x00bb, 0x00bb, 0x00bb, 0x00bb, 0x00bb, 0x00bb, 0x00bb, - 0x00bb, 0x00bb, 0x00bb, 0x00bb, 0x00bb, 0x00bb, 0x00c0, 0x00c0, - 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, - 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, - 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, - 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, - 0x00c7, 0x00c7, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00e2, - // Entry 100 - 13F - 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, - 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00f0, 0x00f0, 0x00f0, - 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x0102, - 0x0102, 0x0102, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, - 0x0112, 0x0112, 0x0112, 0x0123, 0x0123, 0x0123, 0x0123, 0x0133, - 0x0133, 0x0133, 0x0133, 0x0133, 0x0133, 0x0133, 0x0133, 0x0133, - 0x0133, 0x0133, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, - 0x0148, 0x0157, 0x0157, 0x0157, 0x0157, 0x0157, 0x0157, 0x0157, - // Entry 140 - 17F - 0x0157, 0x0157, 0x0157, 0x0157, 0x0157, 0x0157, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0171, - 0x0171, 0x0171, 0x0171, 0x0171, 0x0171, 0x0171, 0x0171, 0x0171, - 0x0171, 0x0171, 0x0171, 0x0171, 0x0171, 0x0171, 0x0171, 0x0171, - 0x0171, 0x0171, 0x0171, 0x0171, 0x0171, 0x0171, 0x0171, 0x0171, - 0x0171, 0x0171, 0x0171, 0x0171, 0x0171, 0x017a, 0x017a, 0x017a, - // Entry 180 - 1BF - 0x017a, 0x017a, 0x017a, 0x017a, 0x017a, 0x017a, 0x017a, 0x017a, - 0x017a, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, - 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, - 0x017d, 0x017d, 0x017d, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, - 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, - 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, - 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, - 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, - // Entry 1C0 - 1FF - 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, - 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, - 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, - 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0198, 0x0198, 0x0198, - 0x0198, 0x0198, 0x0198, 0x0198, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, - 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, - // Entry 200 - 23F - 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, - 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, - 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, - 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, - 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, - 0x01ac, 0x01ac, 0x01ac, 0x01af, 0x01af, 0x01af, 0x01af, 0x01af, - 0x01af, 0x01af, 0x01af, 0x01af, 0x01af, 0x01af, 0x01af, 0x01af, - 0x01af, 0x01af, 0x01af, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, - // Entry 240 - 27F - 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, - 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01c4, 0x01c4, - 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01d6, -} - -// Size: 4315 bytes -var roLangStr string = "" + - "afarabhazăavestanăafrikaansakanamharicăaragonezăarabăasamezăavarăaymaraa" + - "zerăbaÈ™kirăbielorusăbulgarăbislamabambarabengalezătibetanăbretonăbosniac" + - "ăcatalanăcecenăchamorrocorsicanăcreecehăslavonăciuvașăgalezădanezăgerma" + - "nădivehidzongkhaewegreacăenglezăesperantospaniolăestonianăbascăpersanăfu" + - "lahfinlandezăfijianăfaroezăfrancezăfrizonă occidentalăirlandezăgaelică s" + - "coÈ›ianăgalicianăguaranigujaratimanxhausaebraicăhindihiri motucroatăhaiti" + - "anămaghiarăarmeanăhererointerlinguaindonezianăinterlingueigbosichuan yii" + - "nupiakidoislandezăitalianăinuktitutjaponezăjavanezăgeorgianăcongolezăkik" + - "uyukuanyamakazahăkalaallisutkhmerăkannadacoreeanăkanuricaÈ™mirăkurdăkomic" + - "ornicăkârgâzălatinăluxemburghezăgandalimburghezălingalalaoÈ›ianălituanian" + - "ăluba-katangaletonămalgașămarshallezămaorimacedoneanămalayalammongolăma" + - "rathimalaezămaltezăbirmanezănaurundebele de nordnepalezăndongaolandezăno" + - "rvegiană nynorsknorvegiană bokmÃ¥lndebele de sudnavajonyanjaoccitanăojibw" + - "aoromooriyaosetăpunjabipalipolonezăpaÈ™tunăportughezăquechuaromanșăkirund" + - "iromânărusăkinyarwandasanscrităsardinianăsindhisami de nordsangosinghale" + - "zăslovacăslovenăsamoanăshonasomalezăalbanezăsârbăswatisesothosundanezăsu" + - "edezăswahilitamilătelugutadjicăthailandezătigrinăturkmenăsetswanatongatu" + - "rcătsongatătarătahitianăuigurăucraineanăurduuzbecăvendavietnamezăvolapuk" + - "valonăwolofxhosaidiÈ™yorubazhuangchinezăzuluacehacoliadangmeadygheafrihil" + - "iaghemainuakkadianăaleutăaltaică meridionalăengleză vecheangikaaramaicăa" + - "raucanianăarapahoarawakasuasturianăawadhibaluchibalinezăbasaabamunghomal" + - "abejabembabenabafutbhojpuribikolbinikomsiksikabrajbodoakooseburiatbugine" + - "zăbulublinmedumbacaddocaribcayugaatsamcebuanochigachibchachagataichuukes" + - "emarijargon chinookchoctawchipewyancherokeecheyennekurdă soranicoptăturc" + - "ă crimeeanăcaÈ™ubianădakotadargwataitadelawareslavedogribdinkazarmadogri" + - "sorabă de josdualaolandeză mijlociejola-fonyidyuladazagaembuefikegiptean" + - "ă vecheekajukelamităengleză mijlocieewondofangfilipinezăfonfranceză mij" + - "lociefranceză vechefrizonă nordicăfrizonă orientalăfriulanăgagăgăuzăgayo" + - "gbayageezgilbertinăgermană mijlocie înaltăgermană veche înaltăgondigoron" + - "talogoticăgrebogreacă vechegermană elveÈ›ianăgusiigwichʼinhaidahawaiianăh" + - "iligaynonhitităhmongsorabă de sushupaibanibibioilokoingușălojbanngombama" + - "chameiudeo-persanăiudeo-arabăkarakalpakkabylekachinjjukambakawikabardian" + - "kanembutyapmakondekabuverdianukorokhasilimbp khotanezăkoyra chiinikakoka" + - "lenjinkimbundukomi-permiakkonkanikosraekpellekaraceai-balkarkarelianăkur" + - "ukhshambalabafiakölschkumykkutenailadinolangilahndalambalezghianlakotamo" + - "ngoloziluba-lulualuisenolundaluolusahiluyiamadurezămafamagahimaithilimak" + - "asarmandingomasaimabamokshamandarmendemerumorisyenirlandeză mijlociemakh" + - "uwa-meettometa’micmacminangkabaumanciurianămanipurmohawkmossimundanglimb" + - "i multiplecreekmirandezămarwarimyeneerzyanapolitanănamagermana de josnew" + - "ariniasniueanăkwasiongiemboonnogainordică vechen’kosotho de nordnuernewa" + - "ri clasicănyamwezinyankolenyoronzimaosageturcă otomanăpangasinanpahlavip" + - "ampangapapiamentopalauanăpersană vechefenicianăpohnpeianăprovensală vech" + - "ekʼicheʼrajasthanirapanuirarotonganromboromaniaromânărwasandawesakhaaram" + - "aică samariteanăsamburusasaksantalingambaysangusicilianăscotssenecasenas" + - "elkupkoyraboro Senniirlandeză vechetachelhitshanarabă ciadianăsidamosami" + - " de sudlule samiinari samiskolt samisoninkesogdiensranan tongoserersahos" + - "ukumasususumerianăcomorezăswahili Congosiriacă clasicăsiriacătimnetesote" + - "renotetumtigretivtokelauklingonianătlingittamasheknyasa tongatok pisinta" + - "rokotsimshiantumbukatuvalutasawaqtuvanătamazight central marocanăudmurtu" + - "gariticăumbundurootvaivoticvunjowalserwalamowaraywashocalmucăsogayaoyape" + - "zăyangbenyembacantonezăzapotecăsimboluri Bilsszenagatamazight standard m" + - "arocanăzunifară conÈ›inut lingvisticzazaarabă standard modernăgermană aus" + - "triacăgermană standard elveÈ›ianăengleză australianăengleză canadianăengl" + - "eză britanicăengleză americanăspaniolă latino-americanăspaniolă european" + - "ăspaniolă mexicanăfranceză canadianăfranceză elveÈ›ianăflamandăportughez" + - "ă brazilianăportugheză europeanămoldoveneascăsârbo-croatăchineză simpli" + - "ficatăchineză tradiÈ›ională" - -// Size: 1234 bytes, 605 elements -var roLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000b, 0x0014, 0x001d, 0x0021, 0x002a, 0x0034, - 0x003a, 0x0042, 0x0048, 0x004e, 0x0054, 0x005d, 0x0067, 0x006f, - 0x0076, 0x007d, 0x0087, 0x0090, 0x0098, 0x00a1, 0x00aa, 0x00b1, - 0x00b9, 0x00c3, 0x00c7, 0x00cc, 0x00d4, 0x00dd, 0x00e4, 0x00eb, - 0x00f3, 0x00f9, 0x0101, 0x0104, 0x010b, 0x0113, 0x011c, 0x0125, - 0x012f, 0x0135, 0x013d, 0x0142, 0x014d, 0x0155, 0x015d, 0x0166, - 0x017b, 0x0185, 0x0198, 0x01a2, 0x01a9, 0x01b1, 0x01b5, 0x01ba, - 0x01c2, 0x01c7, 0x01d0, 0x01d7, 0x01e0, 0x01e9, 0x01f1, 0x01f7, - // Entry 40 - 7F - 0x0202, 0x020e, 0x0219, 0x021d, 0x0227, 0x022e, 0x0231, 0x023b, - 0x0244, 0x024d, 0x0256, 0x025f, 0x0269, 0x0273, 0x0279, 0x0281, - 0x0288, 0x0293, 0x029a, 0x02a1, 0x02aa, 0x02b0, 0x02b9, 0x02bf, - 0x02c3, 0x02cb, 0x02d5, 0x02dc, 0x02ea, 0x02ef, 0x02fb, 0x0302, - 0x030c, 0x0317, 0x0323, 0x032a, 0x0333, 0x033f, 0x0344, 0x0350, - 0x0359, 0x0361, 0x0368, 0x0370, 0x0378, 0x0382, 0x0387, 0x0396, - 0x039f, 0x03a5, 0x03ae, 0x03c1, 0x03d4, 0x03e2, 0x03e8, 0x03ee, - 0x03f7, 0x03fd, 0x0402, 0x0407, 0x040d, 0x0414, 0x0418, 0x0421, - // Entry 80 - BF - 0x042a, 0x0435, 0x043c, 0x0445, 0x044c, 0x0454, 0x0459, 0x0464, - 0x046e, 0x0479, 0x047f, 0x048b, 0x0490, 0x049b, 0x04a3, 0x04ab, - 0x04b3, 0x04b8, 0x04c1, 0x04ca, 0x04d1, 0x04d6, 0x04dd, 0x04e7, - 0x04ef, 0x04f6, 0x04fd, 0x0503, 0x050b, 0x0517, 0x051f, 0x0528, - 0x0530, 0x0535, 0x053b, 0x0541, 0x0549, 0x0553, 0x055a, 0x0565, - 0x0569, 0x0570, 0x0575, 0x0580, 0x0587, 0x058e, 0x0593, 0x0598, - 0x059d, 0x05a3, 0x05a9, 0x05b1, 0x05b5, 0x05b9, 0x05be, 0x05c5, - 0x05cb, 0x05cb, 0x05d3, 0x05d8, 0x05dc, 0x05e6, 0x05e6, 0x05ed, - // Entry C0 - FF - 0x05ed, 0x0602, 0x0610, 0x0616, 0x061f, 0x062b, 0x062b, 0x0632, - 0x0632, 0x0638, 0x0638, 0x0638, 0x063b, 0x063b, 0x0645, 0x0645, - 0x064b, 0x064b, 0x0652, 0x065b, 0x065b, 0x0660, 0x0665, 0x0665, - 0x066c, 0x0670, 0x0675, 0x0675, 0x0679, 0x067e, 0x067e, 0x0686, - 0x068b, 0x068f, 0x068f, 0x0692, 0x0699, 0x0699, 0x0699, 0x069d, - 0x069d, 0x06a1, 0x06a7, 0x06ad, 0x06b6, 0x06ba, 0x06be, 0x06c5, - 0x06ca, 0x06cf, 0x06d5, 0x06da, 0x06e1, 0x06e6, 0x06ed, 0x06f5, - 0x06fd, 0x0701, 0x070f, 0x0716, 0x071f, 0x0727, 0x072f, 0x073c, - // Entry 100 - 13F - 0x0742, 0x0742, 0x0753, 0x075e, 0x0764, 0x076a, 0x076f, 0x0777, - 0x077c, 0x0782, 0x0787, 0x078c, 0x0791, 0x079f, 0x079f, 0x07a4, - 0x07b6, 0x07c0, 0x07c5, 0x07cb, 0x07cf, 0x07d3, 0x07d3, 0x07e3, - 0x07e9, 0x07f1, 0x0802, 0x0802, 0x0808, 0x0808, 0x080c, 0x0817, - 0x0817, 0x081a, 0x081a, 0x082c, 0x083b, 0x083b, 0x084c, 0x085f, - 0x0868, 0x086a, 0x0874, 0x0874, 0x0878, 0x087d, 0x087d, 0x0881, - 0x088c, 0x088c, 0x08a6, 0x08bd, 0x08bd, 0x08c2, 0x08cb, 0x08d2, - 0x08d7, 0x08e4, 0x08f8, 0x08f8, 0x08f8, 0x08fd, 0x0906, 0x090b, - // Entry 140 - 17F - 0x090b, 0x0915, 0x0915, 0x091f, 0x0926, 0x092b, 0x0939, 0x0939, - 0x093d, 0x0941, 0x0947, 0x094c, 0x0954, 0x0954, 0x0954, 0x095a, - 0x0960, 0x0967, 0x0975, 0x0981, 0x0981, 0x098b, 0x0991, 0x0997, - 0x099a, 0x099f, 0x09a3, 0x09ac, 0x09b3, 0x09b7, 0x09be, 0x09ca, - 0x09ca, 0x09ce, 0x09ce, 0x09d3, 0x09e3, 0x09ef, 0x09ef, 0x09ef, - 0x09f3, 0x09fb, 0x0a03, 0x0a0f, 0x0a16, 0x0a1c, 0x0a22, 0x0a31, - 0x0a31, 0x0a31, 0x0a3b, 0x0a41, 0x0a49, 0x0a4e, 0x0a55, 0x0a5a, - 0x0a61, 0x0a67, 0x0a6c, 0x0a72, 0x0a77, 0x0a7f, 0x0a7f, 0x0a7f, - // Entry 180 - 1BF - 0x0a7f, 0x0a85, 0x0a85, 0x0a8a, 0x0a8e, 0x0a8e, 0x0a98, 0x0a9f, - 0x0aa4, 0x0aa7, 0x0aad, 0x0ab2, 0x0ab2, 0x0ab2, 0x0abb, 0x0abf, - 0x0ac5, 0x0acd, 0x0ad4, 0x0adc, 0x0ae1, 0x0ae5, 0x0aeb, 0x0af1, - 0x0af6, 0x0afa, 0x0b02, 0x0b15, 0x0b23, 0x0b2a, 0x0b30, 0x0b3b, - 0x0b47, 0x0b4e, 0x0b54, 0x0b59, 0x0b59, 0x0b60, 0x0b6e, 0x0b73, - 0x0b7d, 0x0b84, 0x0b84, 0x0b89, 0x0b8e, 0x0b8e, 0x0b8e, 0x0b99, - 0x0b9d, 0x0bab, 0x0bb1, 0x0bb5, 0x0bbd, 0x0bbd, 0x0bc3, 0x0bcc, - 0x0bd1, 0x0bdf, 0x0bdf, 0x0be5, 0x0bf2, 0x0bf6, 0x0c05, 0x0c0d, - // Entry 1C0 - 1FF - 0x0c15, 0x0c1a, 0x0c1f, 0x0c24, 0x0c33, 0x0c3d, 0x0c44, 0x0c4c, - 0x0c56, 0x0c5f, 0x0c5f, 0x0c5f, 0x0c5f, 0x0c6d, 0x0c6d, 0x0c77, - 0x0c77, 0x0c77, 0x0c82, 0x0c82, 0x0c93, 0x0c9c, 0x0c9c, 0x0ca6, - 0x0cad, 0x0cb7, 0x0cb7, 0x0cb7, 0x0cbc, 0x0cc2, 0x0cc2, 0x0cc2, - 0x0cc2, 0x0ccb, 0x0cce, 0x0cd5, 0x0cda, 0x0cf0, 0x0cf7, 0x0cfc, - 0x0d03, 0x0d03, 0x0d0a, 0x0d0f, 0x0d19, 0x0d1e, 0x0d1e, 0x0d24, - 0x0d28, 0x0d28, 0x0d2e, 0x0d3d, 0x0d4d, 0x0d4d, 0x0d56, 0x0d5a, - 0x0d6a, 0x0d70, 0x0d70, 0x0d70, 0x0d7b, 0x0d84, 0x0d8e, 0x0d98, - // Entry 200 - 23F - 0x0d9f, 0x0da6, 0x0db2, 0x0db7, 0x0dbb, 0x0dbb, 0x0dc1, 0x0dc5, - 0x0dcf, 0x0dd8, 0x0de5, 0x0df6, 0x0dfe, 0x0dfe, 0x0dfe, 0x0e03, - 0x0e07, 0x0e0d, 0x0e12, 0x0e17, 0x0e1a, 0x0e21, 0x0e21, 0x0e2d, - 0x0e34, 0x0e34, 0x0e3c, 0x0e47, 0x0e50, 0x0e50, 0x0e56, 0x0e56, - 0x0e5f, 0x0e5f, 0x0e66, 0x0e6c, 0x0e73, 0x0e7a, 0x0e95, 0x0e9b, - 0x0ea5, 0x0eac, 0x0eb0, 0x0eb3, 0x0eb3, 0x0eb3, 0x0eb3, 0x0eb3, - 0x0eb8, 0x0eb8, 0x0ebd, 0x0ec3, 0x0ec9, 0x0ece, 0x0ed3, 0x0ed3, - 0x0ed3, 0x0edb, 0x0edb, 0x0edf, 0x0ee2, 0x0ee9, 0x0ef0, 0x0ef5, - // Entry 240 - 27F - 0x0ef5, 0x0eff, 0x0f08, 0x0f17, 0x0f17, 0x0f1d, 0x0f39, 0x0f3d, - 0x0f57, 0x0f5b, 0x0f73, 0x0f86, 0x0fa3, 0x0fb8, 0x0fcb, 0x0fde, - 0x0ff1, 0x100c, 0x1020, 0x1033, 0x1047, 0x105c, 0x1065, 0x107c, - 0x1092, 0x10a0, 0x10ae, 0x10c4, 0x10db, -} - -// Size: 9159 bytes -var ruLangStr string = "" + - "афарабхазÑкийавеÑтийÑкийафрикаанÑаканамхарÑкийарагонÑкийарабÑкийаÑÑамÑки" + - "йаварÑкийаймараазербайджанÑкийбашкирÑкийбелоруÑÑкийболгарÑкийбиÑламабам" + - "барийÑкийбенгальÑкийтибетÑкийбретонÑкийбоÑнийÑкийкаталанÑкийчеченÑкийча" + - "моррокорÑиканÑкийкриийÑкийчешÑкийцерковноÑлавÑнÑкийчувашÑкийваллийÑкийд" + - "атÑкийнемецкиймальдивÑкийдзонг-кÑÑвегречеÑкийанглийÑкийÑÑперантоиÑпанÑк" + - "ийÑÑтонÑкийбаÑкÑкийперÑидÑкийфулахфинÑкийфиджифарерÑкийфранцузÑкийзапад" + - "но-фризÑкийирландÑкийгÑльÑкийгалиÑийÑкийгуаранигуджаратимÑнÑкийхауÑаивр" + - "итхиндихиримотухорватÑкийгаитÑнÑкийвенгерÑкийармÑнÑкийгерероинтерлингва" + - "индонезийÑкийинтерлингвеигбоÑычуаньинупиакидоиÑландÑкийитальÑнÑкийинукт" + - "итутÑпонÑкийÑванÑкийгрузинÑкийконгокикуйюкунамаказахÑкийгренландÑкийкхм" + - "ерÑкийканнадакорейÑкийканурикашмирикурдÑкийкомикорнийÑкийкиргизÑкийлати" + - "нÑкийлюкÑембургÑкийгандалимбургÑкийлингалалаоÑÑкийлитовÑкийлуба-катанга" + - "латышÑкиймалагаÑийÑкиймаршалльÑкиймаоримакедонÑкиймалаÑламмонгольÑкийма" + - "ратхималайÑкиймальтийÑкийбирманÑкийнауруÑеверный ндебелинепальÑкийндонг" + - "аголландÑкийнорвежÑкий нюнорÑкнорвежÑкий букмолндебели южныйнавахоньÑнд" + - "жаокÑитанÑкийоджибваоромоориÑоÑетинÑкийпанджабипалипольÑкийпуштупортуга" + - "льÑкийкечуароманшÑкийрундирумынÑкийруÑÑкийкиньÑруандаÑанÑкритÑардинÑкий" + - "ÑиндхиÑеверноÑаамÑкийÑангоÑингальÑкийÑловацкийÑловенÑкийÑамоанÑкийшонаÑ" + - "омалиалбанÑкийÑербÑкийÑвазиÑото южныйÑунданÑкийшведÑкийÑуахилитамильÑки" + - "йтелугутаджикÑкийтайÑкийтигриньÑтуркменÑкийтÑванатонганÑкийтурецкийтÑон" + - "гататарÑкийтаитÑнÑкийуйгурÑкийукраинÑкийурдуузбекÑкийвендавьетнамÑкийво" + - "лапюкваллонÑкийволофкоÑаидишйорубачжуанькитайÑкийзулуачехÑкийачолиаданг" + - "меадыгейÑкийафрихилиагхемайнуаккадÑкийалеутÑкийюжноалтайÑкийÑтароанглий" + - "ÑкийангикаарамейÑкийарауканÑкийарапахоаравакÑкийаÑааÑтурийÑкийавадхибел" + - "уджÑкийбалийÑкийбаÑабамумгхомалабеджабембабенабафутбходжпурибикольÑкийб" + - "иникомÑикÑикабрауибодоакооÑебурÑÑ‚ÑкийбугийÑкийбулубилин (блин)медумбака" + - "ддокарибкайюгаатÑамкебуаночигачибчачагатайÑкийчукотÑкиймарийÑкий (черем" + - "иÑÑкий)чинук жаргончоктавчипевайÑнчерокичейеннÑорани курдÑкийкоптÑкийкр" + - "ымÑко-татарÑкийкашубианÑкийдакотадаргватаитаделаварÑкийÑлейвидогрибдинк" + - "азармадогринижнелужицкийдуалаÑредненидерландÑкийдьола-фоньидиула (дьюла" + - ")дазагÑкийÑмбуÑфикдревнеегипетÑкийÑкаджукÑламÑкийÑреднеанглийÑкийÑвондоф" + - "ангфилиппинÑкийфонÑреднефранцузÑкийÑтарофранцузÑкийфризÑкий ÑеверныйвоÑ" + - "точный фризÑкийфриульÑкийгагагаузÑкийгайогбаÑгеÑзгильбертÑкийÑредневерх" + - "ненемецкийдревневерхненемецкийгондигоронталоготÑкийгребодревнегречеÑкий" + - "швейцарÑкий немецкийгуÑиигвичинхайдагавайÑкийхилигайнонхеттÑкийхмонгвер" + - "хнелужицкийхупаибанÑкийибибиоилокоингушÑкийложбаннгомбамачамееврейÑко-п" + - "ерÑидÑкийеврейÑко-арабÑкийкаракалпакÑкийкабильÑкийкачинÑкийкаджикамбака" + - "викабардинÑкийканембутьÑпмакондекабувердьÑнукорокхаÑихотанÑкийкойра чии" + - "никакокаленджинкимбундийÑкийкоми-пермÑцкийконканикоÑраенÑкийкпеллекарач" + - "аево-балкарÑкийкарельÑкийкурухшамбалабафиÑкёльшкумыкÑкийкутенаиладинола" + - "нгилахндаламбалезгинÑкийлакотамонголозилуба-лулуалуиÑеньолундалуо (Кени" + - "Ñ Ð¸ ТанзаниÑ)лушайлухьÑмадурÑкиймафамагахимайтхилимакаÑÑарÑкиймандингом" + - "аÑаимабанÑкиймокшанÑкиймандарÑкиймендемерумаврикийÑкий креольÑкийÑредне" + - "ирландÑкиймакуа-мееттометамикмакминангкабауманьчжурÑкийманипурÑкиймохау" + - "кмоÑимундангнеÑколько ÑзыковкрикмирандийÑкиймарваримиенеÑрзÑнеаполитанÑ" + - "кийнаманижнегерманÑкийневарÑкийниаÑниуÑкваÑионгиембундногайÑкийÑтаронор" + - "вежÑкийнкоÑото ÑеверныйнуÑрневари (клаÑÑичеÑкий)ньÑмвезиньÑнколеньоронз" + - "имаоÑеджиÑтаротурецкийпангаÑинанпехлевийÑкийпампангапапьÑментопалауÑтар" + - "оперÑидÑкийфиникийÑкийпонапеÑтаропрованÑальÑкийкичераджаÑтханирапануира" + - "ротонганÑкийромбоцыганÑкийарумынÑкийруандаÑандавеÑкутÑкийÑамаритÑнÑкий " + - "арамейÑкийÑамбуруÑаÑакиÑанталингамбайÑкийÑангуÑицилийÑкийшотландÑкийÑен" + - "екаÑенаÑелькупÑкийкойраборо ÑенниÑтароирландÑкийтахелхитшанÑкийчадÑкий " + - "арабÑÑидамаÑаамÑкий (южный)луле-ÑаамÑкийинари-ÑаамÑкийÑкольт-ÑаамÑкийÑо" + - "нинкеÑогдийÑкийÑранан тонгоÑерерÑахоÑукумаÑуÑушумерÑкийкоморÑкийконголе" + - "зÑкий ÑуахиликлаÑÑичеÑкий ÑирийÑкийÑирийÑкийтемнетеÑотеренотетумтигрети" + - "витокелайÑкийклингонÑкийтлингиттамашекньÑÑа (тонга)ток-пиÑинтуройотарок" + - "оцимшиантумбукатувалутаÑавактувинÑкийÑреднеатлаÑÑкий тамазигхтÑкийудмур" + - "Ñ‚ÑкийугаритÑкийумбундукорневой ÑзыкваиводÑкийвунджовалиÑÑкийволамоварай" + - "вашокалмыцкийÑогаÑоÑпÑнбанйембакантонÑкийÑапотекÑкийблиÑÑимволиказенагÑ" + - "кийтамазигхтÑкийзуньибез Ñзыкового ÑодержаниÑзазаарабÑкий литературныйа" + - "вÑтрийÑкий немецкийшвейцарÑкий верхненемецкийавÑтралийÑкий английÑкийка" + - "надÑкий английÑкийбританÑкий английÑкийамериканÑкий английÑкийлатиноаме" + - "риканÑкий иÑпанÑкийевропейÑкий иÑпанÑкийканадÑкий французÑкийшвейцарÑки" + - "й французÑкийфламандÑкийбразильÑкий португальÑкийевропейÑкий португальÑ" + - "киймолдавÑкийÑербÑкохорватÑкийупрощенный китайÑкийтрадиционный китайÑки" + - "й" - -// Size: 1234 bytes, 605 elements -var ruLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0008, 0x001a, 0x0030, 0x0042, 0x004a, 0x005c, 0x0070, - 0x0080, 0x0092, 0x00a2, 0x00ae, 0x00cc, 0x00e0, 0x00f6, 0x010a, - 0x0118, 0x0130, 0x0146, 0x0158, 0x016c, 0x0180, 0x0196, 0x01a8, - 0x01b6, 0x01ce, 0x01e0, 0x01ee, 0x0212, 0x0224, 0x0238, 0x0246, - 0x0256, 0x026c, 0x027b, 0x0281, 0x0293, 0x02a7, 0x02b9, 0x02cb, - 0x02dd, 0x02ed, 0x0301, 0x030b, 0x0319, 0x0323, 0x0335, 0x034b, - 0x036a, 0x037e, 0x038e, 0x03a4, 0x03b2, 0x03c4, 0x03d2, 0x03dc, - 0x03e6, 0x03f0, 0x0400, 0x0414, 0x0428, 0x043c, 0x044e, 0x045a, - // Entry 40 - 7F - 0x0470, 0x048a, 0x04a0, 0x04a8, 0x04b6, 0x04c4, 0x04ca, 0x04de, - 0x04f4, 0x0506, 0x0516, 0x0526, 0x053a, 0x0544, 0x0550, 0x055c, - 0x056e, 0x0586, 0x0598, 0x05a6, 0x05b8, 0x05c4, 0x05d2, 0x05e2, - 0x05ea, 0x05fe, 0x0612, 0x0624, 0x0640, 0x064a, 0x0660, 0x066e, - 0x067e, 0x0690, 0x06a7, 0x06b9, 0x06d3, 0x06eb, 0x06f5, 0x070b, - 0x071b, 0x0731, 0x073f, 0x0751, 0x0767, 0x077b, 0x0785, 0x07a4, - 0x07b8, 0x07c4, 0x07da, 0x07fd, 0x081e, 0x0837, 0x0843, 0x0851, - 0x0867, 0x0875, 0x087f, 0x0887, 0x089b, 0x08ab, 0x08b3, 0x08c3, - // Entry 80 - BF - 0x08cd, 0x08e7, 0x08f1, 0x0905, 0x090f, 0x0921, 0x092f, 0x0945, - 0x0955, 0x0969, 0x0975, 0x0993, 0x099d, 0x09b3, 0x09c5, 0x09d9, - 0x09ed, 0x09f5, 0x0a01, 0x0a13, 0x0a23, 0x0a2d, 0x0a40, 0x0a54, - 0x0a64, 0x0a72, 0x0a86, 0x0a92, 0x0aa6, 0x0ab4, 0x0ac4, 0x0ada, - 0x0ae6, 0x0afa, 0x0b0a, 0x0b16, 0x0b28, 0x0b3c, 0x0b4e, 0x0b62, - 0x0b6a, 0x0b7c, 0x0b86, 0x0b9c, 0x0baa, 0x0bbe, 0x0bc8, 0x0bd0, - 0x0bd8, 0x0be4, 0x0bf0, 0x0c02, 0x0c0a, 0x0c1a, 0x0c24, 0x0c32, - 0x0c46, 0x0c46, 0x0c56, 0x0c60, 0x0c68, 0x0c7a, 0x0c7a, 0x0c8c, - // Entry C0 - FF - 0x0c8c, 0x0ca6, 0x0cc4, 0x0cd0, 0x0ce4, 0x0cfa, 0x0cfa, 0x0d08, - 0x0d08, 0x0d1c, 0x0d1c, 0x0d1c, 0x0d22, 0x0d22, 0x0d38, 0x0d38, - 0x0d44, 0x0d44, 0x0d58, 0x0d6a, 0x0d6a, 0x0d72, 0x0d7c, 0x0d7c, - 0x0d8a, 0x0d94, 0x0d9e, 0x0d9e, 0x0da6, 0x0db0, 0x0db0, 0x0dc2, - 0x0dd6, 0x0dde, 0x0dde, 0x0de4, 0x0df2, 0x0df2, 0x0df2, 0x0dfc, - 0x0dfc, 0x0e04, 0x0e10, 0x0e22, 0x0e34, 0x0e3c, 0x0e51, 0x0e5f, - 0x0e69, 0x0e73, 0x0e7f, 0x0e89, 0x0e97, 0x0e9f, 0x0ea9, 0x0ebf, - 0x0ed1, 0x0efc, 0x0f13, 0x0f1f, 0x0f31, 0x0f3d, 0x0f49, 0x0f66, - // Entry 100 - 13F - 0x0f76, 0x0f76, 0x0f97, 0x0faf, 0x0fbb, 0x0fc7, 0x0fd1, 0x0fe7, - 0x0ff3, 0x0fff, 0x1009, 0x1013, 0x101d, 0x1037, 0x1037, 0x1041, - 0x1067, 0x107c, 0x1093, 0x10a5, 0x10ad, 0x10b5, 0x10b5, 0x10d5, - 0x10e3, 0x10f3, 0x1113, 0x1113, 0x111f, 0x111f, 0x1127, 0x113f, - 0x113f, 0x1145, 0x1145, 0x1167, 0x1187, 0x1187, 0x11a8, 0x11cb, - 0x11df, 0x11e3, 0x11f7, 0x11f7, 0x11ff, 0x1207, 0x1207, 0x120f, - 0x1227, 0x1227, 0x124f, 0x1277, 0x1277, 0x1281, 0x1293, 0x12a1, - 0x12ab, 0x12c9, 0x12f0, 0x12f0, 0x12f0, 0x12fa, 0x1306, 0x1310, - // Entry 140 - 17F - 0x1310, 0x1322, 0x1322, 0x1336, 0x1346, 0x1350, 0x136c, 0x136c, - 0x1374, 0x1384, 0x1390, 0x139a, 0x13ac, 0x13ac, 0x13ac, 0x13b8, - 0x13c4, 0x13d0, 0x13f5, 0x1416, 0x1416, 0x1432, 0x1446, 0x1458, - 0x1462, 0x146c, 0x1474, 0x148c, 0x149a, 0x14a2, 0x14b0, 0x14c8, - 0x14c8, 0x14d0, 0x14d0, 0x14da, 0x14ec, 0x1501, 0x1501, 0x1501, - 0x1509, 0x151b, 0x1535, 0x1550, 0x155e, 0x1574, 0x1580, 0x15a7, - 0x15a7, 0x15a7, 0x15bb, 0x15c5, 0x15d3, 0x15dd, 0x15e7, 0x15f9, - 0x1607, 0x1613, 0x161d, 0x1629, 0x1633, 0x1647, 0x1647, 0x1647, - // Entry 180 - 1BF - 0x1647, 0x1653, 0x1653, 0x165d, 0x1665, 0x1665, 0x1678, 0x1688, - 0x1692, 0x16b9, 0x16c3, 0x16cd, 0x16cd, 0x16cd, 0x16df, 0x16e7, - 0x16f3, 0x1703, 0x171b, 0x172b, 0x1735, 0x1747, 0x175b, 0x176f, - 0x1779, 0x1781, 0x17ae, 0x17ce, 0x17e5, 0x17ed, 0x17f9, 0x180f, - 0x1827, 0x183d, 0x1849, 0x1851, 0x1851, 0x185f, 0x187e, 0x1886, - 0x189e, 0x18ac, 0x18ac, 0x18b6, 0x18be, 0x18be, 0x18be, 0x18da, - 0x18e2, 0x1900, 0x1912, 0x191a, 0x1922, 0x1922, 0x192e, 0x1940, - 0x1952, 0x1970, 0x1970, 0x1976, 0x198f, 0x1997, 0x19be, 0x19ce, - // Entry 1C0 - 1FF - 0x19de, 0x19e8, 0x19f2, 0x19fe, 0x1a18, 0x1a2c, 0x1a44, 0x1a54, - 0x1a68, 0x1a72, 0x1a72, 0x1a72, 0x1a72, 0x1a90, 0x1a90, 0x1aa6, - 0x1aa6, 0x1aa6, 0x1ab2, 0x1ab2, 0x1ad8, 0x1ae0, 0x1ae0, 0x1af6, - 0x1b04, 0x1b20, 0x1b20, 0x1b20, 0x1b2a, 0x1b3c, 0x1b3c, 0x1b3c, - 0x1b3c, 0x1b50, 0x1b5c, 0x1b6a, 0x1b7a, 0x1ba9, 0x1bb7, 0x1bc3, - 0x1bd1, 0x1bd1, 0x1be7, 0x1bf1, 0x1c07, 0x1c1d, 0x1c1d, 0x1c29, - 0x1c31, 0x1c31, 0x1c47, 0x1c64, 0x1c82, 0x1c82, 0x1c92, 0x1ca0, - 0x1cb9, 0x1cc5, 0x1cc5, 0x1cc5, 0x1ce2, 0x1cfb, 0x1d16, 0x1d33, - // Entry 200 - 23F - 0x1d41, 0x1d55, 0x1d6c, 0x1d76, 0x1d7e, 0x1d7e, 0x1d8a, 0x1d92, - 0x1da4, 0x1db6, 0x1ddd, 0x1e08, 0x1e1a, 0x1e1a, 0x1e1a, 0x1e24, - 0x1e2c, 0x1e38, 0x1e42, 0x1e4c, 0x1e54, 0x1e6a, 0x1e6a, 0x1e80, - 0x1e8e, 0x1e8e, 0x1e9c, 0x1eb3, 0x1ec4, 0x1ed0, 0x1edc, 0x1edc, - 0x1eea, 0x1eea, 0x1ef8, 0x1f04, 0x1f12, 0x1f24, 0x1f5d, 0x1f71, - 0x1f85, 0x1f93, 0x1fac, 0x1fb2, 0x1fb2, 0x1fb2, 0x1fb2, 0x1fb2, - 0x1fc0, 0x1fc0, 0x1fcc, 0x1fde, 0x1fea, 0x1ff4, 0x1ffc, 0x1ffc, - 0x1ffc, 0x200e, 0x200e, 0x2016, 0x201a, 0x201e, 0x2028, 0x2032, - // Entry 240 - 27F - 0x2032, 0x2046, 0x205c, 0x2076, 0x2076, 0x2088, 0x20a2, 0x20ac, - 0x20da, 0x20e2, 0x210b, 0x2132, 0x2165, 0x2194, 0x21bb, 0x21e4, - 0x2211, 0x2248, 0x2271, 0x2271, 0x229a, 0x22c7, 0x22dd, 0x230e, - 0x233f, 0x2353, 0x2375, 0x239c, 0x23c7, -} - -// Size: 5550 bytes -var siLangStr string = "" + - "ඇබ්කà·à·ƒà·’යà·à¶±à·”අප්\u200dරිකà·à¶±à·”අකà·à¶±à·Šà¶‡à¶¸à·Šà·„à·à¶»à·’ක්අරà·à¶¶à·’ඇසමියà·à¶±à·”අසර්බයිජà·à¶±à·Šà¶¶à·à·‚්කිර්" + - "බෙලරුසියà·à¶±à·”බල්ගේරියà·à¶±à·”බම්බරà·à¶¶à·™à¶‚ගà·à¶½à·’ටිබෙට්බ්\u200dරේටොන්බොස්නියà·à¶±à·”කà·à¶§à¶½à¶±" + - "්ක්\u200dරොඑà·à·’යà·à¶±à·”චෙත්වේල්ස්ඩà·à¶±à·’à·à·Šà¶¢à¶»à·Šà¶¸à¶±à·Šà¶¯à·’වෙහිඩිසොන්කà·à¶‰à·€à·Šà¶œà·Š\u200dරීකඉං" + - "ග්\u200dරීසිඑස්පà·à¶»à¶±à·Šà¶§à·à·ƒà·Šà¶´à·à¶¤à·Šà¶¤à¶‘ස්තà·à¶±à·’යà·à¶±à·”බොස්කà·à¶´à¶»à·Šà·ƒà·’යà·à¶±à·”ෆින්ලන්තෆීජිෆà·à¶»" + - "à·à·ƒà·Šà¶´à·Š\u200dරංà·à¶¶à¶§à·„ිර ෆ්\u200dරිසියà·à¶±à·”අයර්ලන්තගà·à¶½à·“සියà·à¶±à·”ගුවà·à¶»à¶±à·’ගුජරà·à¶§à·’මà·" + - "න්ක්ස්හà·à·ƒà·à·„ීබෲහින්දික්\u200dරà·à¶ºà·šà·à·’යà·à¶±à·”හයිටිහන්ගේරියà·à¶±à·”ආර්මේනියà·à¶±à·”ඉන්දු" + - "නීසියà·à¶±à·”ඉග්බà·à·ƒà·’චුආන් යීඅයිස්ලන්තඉතà·à¶½à·’ඉනුක්ටිටුට්ජපන්ජà·à·€à·à¶¢à·à¶»à·Šà¶¢à·’යà·à¶±à·”කිකු" + - "යුකසà·à¶›à·Šà¶šà¶½à·à¶½à·’සට්කමර්කණ්ණඩකොරියà·à¶±à·”කà·à·‚්මීර්කුර්දිකà·à¶±à·“සියà·à¶±à·”කිර්ගිස්ලතින්ල" + - "ක්සà·à¶¸à·Šà¶¶à¶»à·Šà¶œà·Šà¶œà¶±à·Šà¶©à·à¶½à·’න්ගලà·à¶½à·à¶•à¶½à·’තුවේනියà·à¶±à·”ලුලà·à¶§à·Šà·€à·’යà·à¶±à·”මලගà·à·ƒà·’මà·à·€à·œà¶»à·’මà·à·ƒà·’ඩà·à¶±à·’" + - "යà·à¶±à·”මලයà·à¶½à¶¸à·Šà¶¸à·œà¶‚ගà·à¶½à·’යà·à¶±à·”මරà·à¶­à·’මà·à¶½à·šà¶¸à·œà¶½à·Šà¶§à·’ස්බුරුමඋතුරු එන්ඩිබෙලෙනේපà·à¶½à¶½à¶±à·Šà¶¯à·šà·ƒ" + - "ිනොවේර්ජියà·à¶±à·” නයිනà·à¶»à·Šà·ƒà·Šà¶šà·Šà¶±à·à·€à·šà¶¢à·’යà·à¶±à·” බොක්මà·à¶½à·Šà¶”රොමà·à¶”රියà·à¶¢à¶±à·Šà¶¢à·à¶¶à·’පà·à¶½à¶±à·Šà¶­à¶´à·‚à·Š" + - "ටොපෘතුගීසික්වීචුවà·à¶»à·œà¶¸à·‘න්à·à·Šà¶»à·”න්ඩිරොමේනියà·à¶±à·”රුසියà·à¶±à·”කින්යර්වන්ඩà·à·ƒà¶‚ස්කෘතස" + - "ින්ධිඋතුරු à·ƒà·à¶¸à·’සන්ග්\u200dරà·à·ƒà·’ංහලස්ලà·à·€à·à¶šà·Šà·ƒà·Šà¶½à·à·€à·šà¶±à·’යà·à¶±à·”à·à·à¶±à·à·ƒà·à¶¸à·à¶½à·’ඇල්බේනි" + - "යà·à¶±à·”සර්බියà·à¶±à·”සන්ඩනීසියà·à¶±à·”ස්වීඩන්ස්වà·à·„ිලිදෙමළතෙළිඟුටජික්තà·à¶ºà·’ටිග්\u200dර" + - "ින්යà·à¶§à¶»à·Šà¶šà·Šà¶¸à·™à¶±à·Šà¶§à·œà¶‚ගà·à¶­à·”ර්කිටà·à¶§à¶»à·Šà¶‹à¶ºà·’ගර්යුක්රේනියà·à¶±à·”උර්දුඋස්බෙක්වියට්නà·à¶¸à·Šà·€" + - "ොලොෆ්à·à·à·ƒà·à¶ºà·œà¶»à·–බà·à¶ à·“නසුලුටියුනිසියනු අරà·à¶¶à·’ඇගම්මපුචෙඅසුබෙම්බà·à¶¶à·™à¶±à·à¶¶à·œà¶©à·œà¶ à·’ගà·à¶ " + - "ෙරොකීසොරà·à¶±à·’ කුර්දිෂ්ටයිටà·à·†à¶»à·Šà¶¸à·à¶´à·„à·… à·ƒà·à¶¶à·’යà·à¶±à·”ඩුආලà·à¶¢à·œà¶½-à·†à·à¶±à·’යිඑම්බුපිලිපීනග" + - "ගà·à·ƒà·Šà·ƒà·Šà·€à·’ස් ජර්මනිගුසීහවà·à¶ºà·’ඉහළ à·ƒà·à¶¶à·’යà·à¶±à·”නොම්බà·à¶¸à·à¶šà·à¶¸à·“කà·à¶¶à¶½à·à¶šà·à¶¸à·Šà¶¶à·à¶¸à·à¶šà·œà¶±à·Šà¶©à·Šà¶š" + - "බුවෙර්ඩියà·à¶±à·à¶šà·œà¶ºà·’ර෠චිනිකලෙන්ජන්කොමි-පර්මියà·à¶šà·Šà¶šà·œà¶±à·Šà¶šà¶±à·’à·à·à¶¸à·Šà¶¶à¶½à·à¶¶à·à·†à·’යà·à¶½à¶‚ගිල" + - "කොටලුඔලුයියà·à¶¸à·ƒà·à¶ºà·’මෙරුමොරිස්යෙම්මඛුවà·-මීටà·à¶¸à·™à¶§à·à¶¸à·œà·„ොව්ක්මුන්ඩන්නà·à¶¸à·à¶šà·”à·€à·à·ƒà·’" + - "ඔඑන්‘කà·à¶±à·œà¶ºà¶»à·Šà¶±à¶ºà¶±à·Šà¶šà·œà·…ේකියිචේරà·à¶¸à·Šà¶¶à·à¶»à·Šà·€à·à·ƒà¶¸à·Šà¶¶à·”රුසංගුසෙනà·à¶šà·à¶ºà·’රà·à¶¶à·œà¶»à·œ සෙන්නිටච" + - "ේල්හිට්දකුණු à·ƒà·à¶¸à·’ලුලේ à·ƒà·à¶¸à·’ඉනà·à¶»à·’ à·ƒà·à¶¸à·’ස්කොල්ට් à·ƒà·à¶¸à·’කොන්ග෠ස්වà·à·„ිලිටෙසà·à¶§à·ƒ" + - "à·€à·à¶šà·Šà¶¸à¶°à·Š\u200dයම ඇට්ලස් ටමසිට්නොදන්න෠භà·à·‚à·à·€à·€à¶ºà·’වුන්ජà·à·ƒà·œà¶œà·à·ƒà¶¸à·Šà¶¸à¶­ මොරොක්ක෠" + - "ටමසිග්ත්වà·à¶œà·Š විද්\u200dය෠අන්තර්ගතයක් නà·à¶­à¶±à·€à·“න සම්මත අරà·à¶¶à·’ඔස්ට්\u200dරි" + - "යà·à¶±à·” ජර්මන්ස්විස් උසස් ජර්මන්ඕස්ට්\u200dරේලියà·à¶±à·” ඉංග්\u200dරීසිකà·à¶±à·šà¶©à·’ය" + - "à·à¶±à·” ඉංග්\u200dරීසිබ්\u200dරිතà·à¶±à·Š\u200dය ඉංග්\u200dරීසිඇමෙරිකà·à¶±à·” ඉංග්" + - "\u200dරීසිලතින් ඇමරිකà·à¶±à·” ස්පà·à¶¤à·Šà¶¤à¶ºà·”රà·à¶´à·“ය ස්පà·à¶¤à·Šà¶¤à¶¸à·™à¶šà·Šà·ƒà·’කà·à¶±à·” ස්පà·à¶¤à·Šà¶¤à¶šà·à¶±à·šà¶©à·’ය" + - "à·à¶±à·” ප්\u200dරංà·à·ƒà·Šà·€à·’ස් ප්\u200dරංà·à·†à·Šà¶½à·™à¶¸à·’à·à·Šà¶¶à·Š\u200dරසීල පෘතුගීසියුරà·à¶´à·“ය " + - "පෘතුගීසිසුළුකළ චීනසà·à¶¸à·Šà¶´à·Š\u200dරදà·à¶ºà·’ක චීන" - -// Size: 1234 bytes, 605 elements -var siLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0021, 0x0021, 0x003f, 0x004e, 0x0069, 0x0069, - 0x0078, 0x0090, 0x0090, 0x0090, 0x00b1, 0x00c9, 0x00ea, 0x010b, - 0x010b, 0x011d, 0x0132, 0x0144, 0x015f, 0x017d, 0x018f, 0x018f, - 0x018f, 0x01b3, 0x01b3, 0x01bf, 0x01bf, 0x01bf, 0x01d1, 0x01e3, - 0x01f5, 0x0207, 0x021f, 0x0228, 0x023a, 0x0255, 0x0273, 0x0288, - 0x02a9, 0x02bb, 0x02d6, 0x02d6, 0x02ee, 0x02fa, 0x030c, 0x031e, - 0x034f, 0x0367, 0x0367, 0x0385, 0x039a, 0x03af, 0x03c7, 0x03d3, - 0x03df, 0x03f1, 0x03f1, 0x0418, 0x0427, 0x0448, 0x0469, 0x0469, - // Entry 40 - 7F - 0x0469, 0x0490, 0x0490, 0x049f, 0x04bb, 0x04bb, 0x04bb, 0x04d6, - 0x04e5, 0x0506, 0x0512, 0x051e, 0x053c, 0x053c, 0x054e, 0x054e, - 0x055d, 0x0575, 0x0581, 0x0590, 0x05a8, 0x05a8, 0x05c0, 0x05d2, - 0x05d2, 0x05f0, 0x0608, 0x0617, 0x063b, 0x064a, 0x064a, 0x065f, - 0x0668, 0x068c, 0x0692, 0x06b0, 0x06c2, 0x06c2, 0x06d4, 0x06f8, - 0x070d, 0x072e, 0x073d, 0x0749, 0x0761, 0x0770, 0x0770, 0x079b, - 0x07aa, 0x07aa, 0x07bf, 0x0805, 0x083c, 0x083c, 0x083c, 0x083c, - 0x083c, 0x083c, 0x084b, 0x085a, 0x085a, 0x086f, 0x086f, 0x0881, - // Entry 80 - BF - 0x0890, 0x08a8, 0x08c0, 0x08d8, 0x08ea, 0x0908, 0x0920, 0x0944, - 0x0959, 0x0959, 0x096b, 0x0987, 0x099f, 0x09ae, 0x09c6, 0x09ea, - 0x09ea, 0x09f6, 0x0a08, 0x0a29, 0x0a44, 0x0a44, 0x0a44, 0x0a68, - 0x0a7d, 0x0a95, 0x0aa1, 0x0ab3, 0x0ac2, 0x0ace, 0x0aef, 0x0b0a, - 0x0b0a, 0x0b19, 0x0b2b, 0x0b2b, 0x0b3a, 0x0b3a, 0x0b4c, 0x0b70, - 0x0b7f, 0x0b94, 0x0b94, 0x0baf, 0x0baf, 0x0baf, 0x0bc1, 0x0bcd, - 0x0bcd, 0x0bdf, 0x0bdf, 0x0be8, 0x0bf4, 0x0bf4, 0x0bf4, 0x0bf4, - 0x0bf4, 0x0c25, 0x0c25, 0x0c31, 0x0c31, 0x0c31, 0x0c31, 0x0c31, - // Entry C0 - FF - 0x0c31, 0x0c31, 0x0c31, 0x0c31, 0x0c31, 0x0c40, 0x0c40, 0x0c40, - 0x0c40, 0x0c40, 0x0c40, 0x0c40, 0x0c49, 0x0c49, 0x0c49, 0x0c49, - 0x0c49, 0x0c49, 0x0c49, 0x0c49, 0x0c49, 0x0c49, 0x0c49, 0x0c49, - 0x0c49, 0x0c49, 0x0c5b, 0x0c5b, 0x0c67, 0x0c67, 0x0c67, 0x0c67, - 0x0c67, 0x0c67, 0x0c67, 0x0c67, 0x0c67, 0x0c67, 0x0c67, 0x0c67, - 0x0c67, 0x0c73, 0x0c73, 0x0c73, 0x0c73, 0x0c73, 0x0c73, 0x0c73, - 0x0c73, 0x0c73, 0x0c73, 0x0c73, 0x0c73, 0x0c7f, 0x0c7f, 0x0c7f, - 0x0c7f, 0x0c7f, 0x0c7f, 0x0c7f, 0x0c7f, 0x0c91, 0x0c91, 0x0cbc, - // Entry 100 - 13F - 0x0cbc, 0x0cbc, 0x0cbc, 0x0cbc, 0x0cbc, 0x0cbc, 0x0ccb, 0x0ccb, - 0x0ccb, 0x0ccb, 0x0ccb, 0x0cda, 0x0cda, 0x0cfc, 0x0cfc, 0x0d0b, - 0x0d0b, 0x0d27, 0x0d27, 0x0d27, 0x0d36, 0x0d36, 0x0d36, 0x0d36, - 0x0d36, 0x0d36, 0x0d36, 0x0d36, 0x0d36, 0x0d36, 0x0d36, 0x0d4b, - 0x0d4b, 0x0d4b, 0x0d4b, 0x0d4b, 0x0d4b, 0x0d4b, 0x0d4b, 0x0d4b, - 0x0d4b, 0x0d4b, 0x0d5a, 0x0d5a, 0x0d5a, 0x0d5a, 0x0d5a, 0x0d5a, - 0x0d5a, 0x0d5a, 0x0d5a, 0x0d5a, 0x0d5a, 0x0d5a, 0x0d5a, 0x0d5a, - 0x0d5a, 0x0d5a, 0x0d7f, 0x0d7f, 0x0d7f, 0x0d8b, 0x0d8b, 0x0d8b, - // Entry 140 - 17F - 0x0d8b, 0x0d9a, 0x0d9a, 0x0d9a, 0x0d9a, 0x0d9a, 0x0dbc, 0x0dbc, - 0x0dbc, 0x0dbc, 0x0dbc, 0x0dbc, 0x0dbc, 0x0dbc, 0x0dbc, 0x0dbc, - 0x0dce, 0x0de0, 0x0de0, 0x0de0, 0x0de0, 0x0de0, 0x0def, 0x0def, - 0x0def, 0x0e01, 0x0e01, 0x0e01, 0x0e01, 0x0e01, 0x0e19, 0x0e40, - 0x0e40, 0x0e40, 0x0e40, 0x0e40, 0x0e40, 0x0e5f, 0x0e5f, 0x0e5f, - 0x0e5f, 0x0e77, 0x0e77, 0x0e9f, 0x0eb4, 0x0eb4, 0x0eb4, 0x0eb4, - 0x0eb4, 0x0eb4, 0x0eb4, 0x0eb4, 0x0ec9, 0x0edb, 0x0edb, 0x0edb, - 0x0edb, 0x0edb, 0x0ee7, 0x0ee7, 0x0ee7, 0x0ee7, 0x0ee7, 0x0ee7, - // Entry 180 - 1BF - 0x0ee7, 0x0ef3, 0x0ef3, 0x0ef3, 0x0ef3, 0x0ef3, 0x0ef3, 0x0ef3, - 0x0ef3, 0x0efc, 0x0efc, 0x0f0e, 0x0f0e, 0x0f0e, 0x0f0e, 0x0f0e, - 0x0f0e, 0x0f0e, 0x0f0e, 0x0f0e, 0x0f1d, 0x0f1d, 0x0f1d, 0x0f1d, - 0x0f1d, 0x0f29, 0x0f47, 0x0f47, 0x0f63, 0x0f6f, 0x0f6f, 0x0f6f, - 0x0f6f, 0x0f6f, 0x0f87, 0x0f87, 0x0f87, 0x0f9c, 0x0f9c, 0x0f9c, - 0x0f9c, 0x0f9c, 0x0f9c, 0x0f9c, 0x0f9c, 0x0f9c, 0x0f9c, 0x0f9c, - 0x0fa8, 0x0fa8, 0x0fa8, 0x0fa8, 0x0fa8, 0x0fa8, 0x0fbd, 0x0fbd, - 0x0fbd, 0x0fbd, 0x0fbd, 0x0fcf, 0x0fcf, 0x0fde, 0x0fde, 0x0fde, - // Entry 1C0 - 1FF - 0x0ff6, 0x0ff6, 0x0ff6, 0x0ff6, 0x0ff6, 0x0ff6, 0x0ff6, 0x0ff6, - 0x0ff6, 0x0ff6, 0x0ff6, 0x0ff6, 0x0ff6, 0x0ff6, 0x0ff6, 0x0ff6, - 0x0ff6, 0x0ff6, 0x0ff6, 0x0ff6, 0x0ff6, 0x1008, 0x1008, 0x1008, - 0x1008, 0x1008, 0x1008, 0x1008, 0x101a, 0x101a, 0x101a, 0x101a, - 0x101a, 0x101a, 0x1026, 0x1026, 0x1026, 0x1026, 0x103b, 0x103b, - 0x103b, 0x103b, 0x103b, 0x1047, 0x1047, 0x1047, 0x1047, 0x1047, - 0x1053, 0x1053, 0x1053, 0x1084, 0x1084, 0x1084, 0x109f, 0x109f, - 0x109f, 0x109f, 0x109f, 0x109f, 0x10bb, 0x10d4, 0x10f0, 0x1115, - // Entry 200 - 23F - 0x1115, 0x1115, 0x1115, 0x1115, 0x1115, 0x1115, 0x1115, 0x1115, - 0x1115, 0x1115, 0x1140, 0x1140, 0x1140, 0x1140, 0x1140, 0x1140, - 0x114c, 0x114c, 0x114c, 0x114c, 0x114c, 0x114c, 0x114c, 0x114c, - 0x114c, 0x114c, 0x114c, 0x114c, 0x114c, 0x114c, 0x114c, 0x114c, - 0x114c, 0x114c, 0x114c, 0x114c, 0x115e, 0x115e, 0x1196, 0x1196, - 0x1196, 0x1196, 0x11bb, 0x11c4, 0x11c4, 0x11c4, 0x11c4, 0x11c4, - 0x11c4, 0x11c4, 0x11d6, 0x11d6, 0x11d6, 0x11d6, 0x11d6, 0x11d6, - 0x11d6, 0x11d6, 0x11d6, 0x11e2, 0x11e2, 0x11e2, 0x11e2, 0x11e2, - // Entry 240 - 27F - 0x11e2, 0x11e2, 0x11e2, 0x11e2, 0x11e2, 0x11e2, 0x1223, 0x1223, - 0x1271, 0x1271, 0x129d, 0x12d4, 0x1306, 0x134c, 0x1386, 0x13c3, - 0x13fa, 0x1438, 0x1463, 0x1497, 0x14c8, 0x14ed, 0x1505, 0x1533, - 0x1561, 0x1561, 0x1561, 0x157d, 0x15ae, -} - -// Size: 5451 bytes -var skLangStr string = "" + - "afarÄinaabcházÄinaavestÄinaafrikánÄinaakanÄinaamharÄinaaragónÄinaarabÄin" + - "aásamÄinaavarÄinaaymarÄinaazerbajdžanÄinabaÅ¡kirÄinabieloruÅ¡tinabulharÄin" + - "abislamabambarÄinabengálÄinatibetÄinabretónÄinabosniaÄtinakatalánÄinaÄeÄ" + - "enÄinaÄamorÄinakorziÄtinakríÄeÅ¡tinacirkevná slovanÄinaÄuvaÅ¡tinawaleÅ¡tina" + - "dánÄinanemÄinadivehidzongkäewegréÄtinaangliÄtinaesperantoÅ¡panielÄinaestó" + - "nÄinabaskiÄtinaperzÅ¡tinafulbÄinafínÄinafidžijÄinafaerÄinafrancúzÅ¡tinazáp" + - "adná frízÅ¡tinaírÄinaÅ¡kótska gaelÄinagalícijÄinaguaranígudžarátÄinamanÄin" + - "ahauÅ¡tinahebrejÄinahindÄinahiri motuchorvátÄinahaitÄinamaÄarÄinaarménÄin" + - "ahererointerlinguaindonézÅ¡tinainterlingueigboÅ¡tinas’Ächuanská ioÅ¡tinainu" + - "piaqidoislandÄinatalianÄinainuktitutjaponÄinajávÄinagruzínÄinakongÄinaki" + - "kujÄinakuaňamakazaÅ¡tinagrónÄinakhmérÄinakannadÄinakórejÄinakanurijÄinaka" + - "Å¡mírÄinakurdÄinakomijÄinakornÄinakirgizÅ¡tinalatinÄinaluxemburÄinagandÄi" + - "nalimburÄinalingalÄinalaoÅ¡tinalitovÄinaluba-katangalotyÅ¡tinamalgaÅ¡tinaka" + - "jin-majolmaorijÄinamacedónÄinamalajálamÄinamongolÄinamaráthÄinamalajÄina" + - "maltÄinabarmÄinanauruseverné ndebelenepálÄinandongaholandÄinanórsky nyno" + - "rsknórsky bokmÃ¥ljužná ndebelÄinanavajoÄewaokcitánÄinaodžibvaoromÄinauríj" + - "ÄinaosetÄinapandžábÄinapálípoľštinapaÅ¡tÄinaportugalÄinakeÄuánÄinarétoro" + - "mánÄinakirundÄinarumunÄinaruÅ¡tinakiňarwandasanskritsardínÄinasindhÄinase" + - "verné samisangosinhalÄinaslovenÄinaslovinÄinasamojÄinaÅ¡onÄinasomálÄinaal" + - "bánÄinasrbÄinasvazijÄinajužná sothÄinasundÄinaÅ¡védÄinasvahilÄinatamilÄin" + - "atelugÄinatadžiÄtinathajÄinatigriňaturkménÄinatswanÄinatongÄinatureÄtina" + - "tsongatatárÄinatahitÄinaujgurÄinaukrajinÄinaurdÄinauzbeÄtinavendÄinaviet" + - "namÄinavolapükvalónÄinawolofxhosajidiÅ¡jorubÄinaÄuangÄinaÄínÅ¡tinazuluÅ¡tin" + - "aacehÄinaaÄoliadangmeadygÄinaafrihiliaghemainÄinaakkadÄinaaleutÄinajužná" + - " altajÄinastará angliÄtinaangikaaramejÄinaaraukánÄinaarapahoarawaÄtinaas" + - "uastúrÄinaavadhÄinabalúÄtinabalijÄinabasabamunghomalabedžabembabenabafut" + - "bhódžpurÄinabikolbinikomsiksikabradžÄinabodoakooseburiatÄinabugiÅ¡tinabul" + - "ublinmedumbakaddokaribskýcayugaatsamcebuánÄinakigaÄibÄaÄagatajÄinatrukma" + - "rijÄinaÄinucký žargónÄoktavÄinaÄipevajÄinaÄerokíÄejenÄinakurdÄina (során" + - "í)koptÄinakrymská tureÄtinakaÅ¡ubÄinadakotÄinadarginÄinataitadelawarÄina" + - "slovanÄinadogribÄinadinkazarmadógrídolnolužická srbÄinadualastredná hola" + - "ndÄinajola-fonyiÄuladazagaembuefikstaroegyptskýekadžukelamÄinastredná an" + - "gliÄtinaewondofangÄinafilipínÄinafonÄinastredná francúzÅ¡tinastará francú" + - "zÅ¡tinaseverná frízÅ¡tinavýchodná frízÅ¡tinafriulÄinagagagauzÅ¡tinagayogbaja" + - "etiópÄinakiribatÄinastredná horná nemÄinastará horná nemÄinagóndÄinagoro" + - "ntalogótÄinagrebostarogréÄtinanemÄina (Å¡vajÄiarska)gusiigwichʼinhaidahav" + - "ajÄinahiligajnonÄinachetitÄinahmonghornolužická srbÄinahupÄinaibanÄinaib" + - "ibioilokánÄinainguÅ¡tinalojbanngombamaÅ¡amežidovská perzÅ¡tinažidovská arab" + - "ÄinakarakalpaÄtinakabylÄinakaÄjinÄinajjukambakawikabardÄinakanembutyapm" + - "akondekapverdÄinakorokhasijÄinachotanÄinazápadná songhajÄinakakokalendži" + - "nkimbundukomi-permiaÄtinakonkánÄinakusaiekpellekaraÄajevsko-balkarský ja" + - "zykkarelÄinakurukhÄinaÅ¡ambalabafiakolínÄinakumyÄtinakutenajÄinažidovská " + - "Å¡panielÄinalangilahandÄinalambalezginÄinalakotÄinamongoloziluba-luluánÄ" + - "inaluiseňolundaluomizorámÄinaluhjamadurÄinamafamagadhÄinamaithilÄinamaka" + - "sarÄinamandingomasajÄinamabamokÅ¡ianÄinamandarÄinamendimerumaurícijská kr" + - "eolÄinastredná írÄinamakua-meettometa’mikmakÄinaminangkabauÄinamandžuÅ¡ti" + - "namanípurÄinamohawkÄinamossimundangviaceré jazykykríkÄinamirandÄinamaraw" + - "arimyeneerzjanÄinaneapolÄinanamadolná nemÄinanevárÄinaniasánÄinaniueÅ¡tin" + - "akwasiongiemboonnogajÄinastará nórÄinan’koseverná sothÄinanuerklasická n" + - "evárÄinaňamweziňankoleňoronzimaosagÄinaosmanská tureÄtinapangasinanÄinap" + - "ahlavípampangapapiamentopalauÄinastará perzÅ¡tinafeniÄtinapohnpeiÄinastar" + - "á okcitánÄinakʼicheʼradžastanÄinarapanujÄinararotonganromborómÄinaarumu" + - "nÄinarwasandawejakutÄinasamaritánska aramejÄinasamburusasaÄtinasantalÄin" + - "angambaysangusicílÄinaÅ¡kótÄinasenecasenaselkupÄinakoyraboro sennistará í" + - "rÄinatachelhitÅ¡anÄinaÄadská arabÄinasidamojužné samisami (lule)sami (ina" + - "ri)sami (skolt)soninkesogdijÄinasrananserersahosukumasususumerÄinakomorÄ" + - "inasvahilÄina (konžská)klasická sýrÄinasýrÄinatemnetesoterenotetumtigrej" + - "ÄinativtokelauÄinaklingónÄinatlingitÄinatamaÅ¡ekňasa tongatok pisintarok" + - "otsimshijské jazykytumbukatuvalÄinatasawaqtuvianÄinatamaÅ¡ek (stredomaroc" + - "ký)udmurtÄinaugaritÄinaumbundukoreňvaivodÄinavunjowalserÄinawalamowarayw" + - "ashokalmyÄtinasogajaojapÄinajangbenyembakantonÄinazapotéÄtinasystém Blis" + - "szenagatamaÅ¡ek (Å¡tandardný marocký)zuniÅ¡tinabez jazykového obsahuzázáara" + - "bÄina (moderná Å¡tandardná)nemÄina (rakúska)nemÄina (Å¡vajÄiarska spisovná" + - ")angliÄtina (austrálska)angliÄtina (kanadská)angliÄtina (britská)angliÄt" + - "ina (americká)Å¡panielÄina (latinskoamerická)Å¡panielÄina (európska)Å¡panie" + - "lÄina (mexická)francúzÅ¡tina (kanadská)francúzÅ¡tina (Å¡vajÄiarska)flámÄina" + - "portugalÄina (brazílska)portugalÄina (európska)moldavÄinasrbochorvátÄina" + - "ÄínÅ¡tina (zjednoduÅ¡ená)ÄínÅ¡tina (tradiÄná)" - -// Size: 1234 bytes, 605 elements -var skLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0009, 0x0015, 0x001f, 0x002c, 0x0035, 0x003f, 0x004b, - 0x0054, 0x005e, 0x0067, 0x0071, 0x0082, 0x008e, 0x009b, 0x00a6, - 0x00ad, 0x00b8, 0x00c4, 0x00ce, 0x00da, 0x00e6, 0x00f3, 0x00ff, - 0x010a, 0x0115, 0x0119, 0x0122, 0x0137, 0x0142, 0x014c, 0x0155, - 0x015d, 0x0163, 0x016b, 0x016e, 0x0178, 0x0183, 0x018c, 0x0199, - 0x01a4, 0x01af, 0x01b9, 0x01c2, 0x01cb, 0x01d7, 0x01e0, 0x01ee, - 0x0203, 0x020b, 0x021e, 0x022b, 0x0233, 0x0242, 0x024a, 0x0253, - 0x025e, 0x0267, 0x0270, 0x027d, 0x0286, 0x0291, 0x029c, 0x02a2, - // Entry 40 - 7F - 0x02ad, 0x02bb, 0x02c6, 0x02d0, 0x02e8, 0x02ef, 0x02f2, 0x02fd, - 0x0308, 0x0311, 0x031b, 0x0324, 0x0330, 0x0339, 0x0343, 0x034b, - 0x0355, 0x035f, 0x036a, 0x0375, 0x0380, 0x038c, 0x0399, 0x03a2, - 0x03ac, 0x03b5, 0x03c1, 0x03cb, 0x03d8, 0x03e1, 0x03ec, 0x03f7, - 0x0400, 0x040a, 0x0416, 0x0420, 0x042b, 0x0436, 0x0441, 0x044e, - 0x045d, 0x0468, 0x0474, 0x047e, 0x0487, 0x0490, 0x0495, 0x04a5, - 0x04b0, 0x04b6, 0x04c1, 0x04d0, 0x04df, 0x04f2, 0x04f8, 0x04fd, - 0x050a, 0x0512, 0x051b, 0x0525, 0x052e, 0x053c, 0x0542, 0x054c, - // Entry 80 - BF - 0x0556, 0x0563, 0x0570, 0x0580, 0x058b, 0x0595, 0x059d, 0x05a8, - 0x05b0, 0x05bc, 0x05c6, 0x05d3, 0x05d8, 0x05e3, 0x05ee, 0x05f9, - 0x0603, 0x060c, 0x0617, 0x0622, 0x062a, 0x0635, 0x0646, 0x064f, - 0x065a, 0x0665, 0x066f, 0x0679, 0x0685, 0x068e, 0x0696, 0x06a3, - 0x06ad, 0x06b6, 0x06c0, 0x06c6, 0x06d1, 0x06db, 0x06e5, 0x06f1, - 0x06f9, 0x0703, 0x070c, 0x0718, 0x0720, 0x072b, 0x0730, 0x0735, - 0x073b, 0x0745, 0x0750, 0x075b, 0x0765, 0x076e, 0x0774, 0x077b, - 0x0784, 0x0784, 0x078c, 0x0791, 0x0799, 0x07a3, 0x07a3, 0x07ad, - // Entry C0 - FF - 0x07ad, 0x07bf, 0x07d1, 0x07d7, 0x07e2, 0x07ef, 0x07ef, 0x07f6, - 0x07f6, 0x0801, 0x0801, 0x0801, 0x0804, 0x0804, 0x080f, 0x080f, - 0x0819, 0x0819, 0x0824, 0x082e, 0x082e, 0x0832, 0x0837, 0x0837, - 0x083e, 0x0844, 0x0849, 0x0849, 0x084d, 0x0852, 0x0852, 0x0861, - 0x0866, 0x086a, 0x086a, 0x086d, 0x0874, 0x0874, 0x0874, 0x087f, - 0x087f, 0x0883, 0x0889, 0x0894, 0x089e, 0x08a2, 0x08a6, 0x08ad, - 0x08b2, 0x08bb, 0x08c1, 0x08c6, 0x08d2, 0x08d6, 0x08dd, 0x08ea, - 0x08ee, 0x08f8, 0x090a, 0x0916, 0x0923, 0x092b, 0x0936, 0x094a, - // Entry 100 - 13F - 0x0953, 0x0953, 0x0966, 0x0971, 0x097b, 0x0986, 0x098b, 0x0997, - 0x09a2, 0x09ad, 0x09b2, 0x09b7, 0x09be, 0x09d5, 0x09d5, 0x09da, - 0x09ee, 0x09f8, 0x09fd, 0x0a03, 0x0a07, 0x0a0b, 0x0a0b, 0x0a19, - 0x0a21, 0x0a2a, 0x0a3e, 0x0a3e, 0x0a44, 0x0a44, 0x0a4d, 0x0a5a, - 0x0a5a, 0x0a62, 0x0a62, 0x0a79, 0x0a8e, 0x0a8e, 0x0aa2, 0x0ab8, - 0x0ac2, 0x0ac4, 0x0ad0, 0x0ad0, 0x0ad4, 0x0ad9, 0x0ad9, 0x0ae4, - 0x0af0, 0x0af0, 0x0b08, 0x0b1e, 0x0b1e, 0x0b28, 0x0b31, 0x0b3a, - 0x0b3f, 0x0b4e, 0x0b66, 0x0b66, 0x0b66, 0x0b6b, 0x0b74, 0x0b79, - // Entry 140 - 17F - 0x0b79, 0x0b83, 0x0b83, 0x0b92, 0x0b9d, 0x0ba2, 0x0bb9, 0x0bb9, - 0x0bc1, 0x0bca, 0x0bd0, 0x0bdc, 0x0be6, 0x0be6, 0x0be6, 0x0bec, - 0x0bf2, 0x0bf9, 0x0c0e, 0x0c22, 0x0c22, 0x0c31, 0x0c3b, 0x0c47, - 0x0c4a, 0x0c4f, 0x0c53, 0x0c5e, 0x0c65, 0x0c69, 0x0c70, 0x0c7c, - 0x0c7c, 0x0c80, 0x0c80, 0x0c8b, 0x0c96, 0x0cac, 0x0cac, 0x0cac, - 0x0cb0, 0x0cba, 0x0cc2, 0x0cd3, 0x0cdf, 0x0ce5, 0x0ceb, 0x0d09, - 0x0d09, 0x0d09, 0x0d13, 0x0d1e, 0x0d26, 0x0d2b, 0x0d36, 0x0d40, - 0x0d4c, 0x0d64, 0x0d69, 0x0d74, 0x0d79, 0x0d84, 0x0d84, 0x0d84, - // Entry 180 - 1BF - 0x0d84, 0x0d8e, 0x0d8e, 0x0d93, 0x0d97, 0x0d97, 0x0da8, 0x0db0, - 0x0db5, 0x0db8, 0x0dc5, 0x0dca, 0x0dca, 0x0dca, 0x0dd4, 0x0dd8, - 0x0de3, 0x0def, 0x0dfb, 0x0e03, 0x0e0d, 0x0e11, 0x0e1e, 0x0e29, - 0x0e2e, 0x0e32, 0x0e4a, 0x0e5b, 0x0e67, 0x0e6e, 0x0e79, 0x0e89, - 0x0e96, 0x0ea3, 0x0eae, 0x0eb3, 0x0eb3, 0x0eba, 0x0ec9, 0x0ed3, - 0x0ede, 0x0ee6, 0x0ee6, 0x0eeb, 0x0ef6, 0x0ef6, 0x0ef6, 0x0f01, - 0x0f05, 0x0f14, 0x0f1f, 0x0f2b, 0x0f35, 0x0f35, 0x0f3b, 0x0f44, - 0x0f4e, 0x0f5e, 0x0f5e, 0x0f64, 0x0f76, 0x0f7a, 0x0f8f, 0x0f97, - // Entry 1C0 - 1FF - 0x0f9f, 0x0fa4, 0x0fa9, 0x0fb2, 0x0fc6, 0x0fd5, 0x0fdd, 0x0fe5, - 0x0fef, 0x0ff9, 0x0ff9, 0x0ff9, 0x0ff9, 0x100a, 0x100a, 0x1014, - 0x1014, 0x1014, 0x1020, 0x1020, 0x1034, 0x103d, 0x103d, 0x104c, - 0x1058, 0x1062, 0x1062, 0x1062, 0x1067, 0x1070, 0x1070, 0x1070, - 0x1070, 0x107b, 0x107e, 0x1085, 0x108f, 0x10a8, 0x10af, 0x10b9, - 0x10c4, 0x10c4, 0x10cb, 0x10d0, 0x10db, 0x10e6, 0x10e6, 0x10ec, - 0x10f0, 0x10f0, 0x10fb, 0x110a, 0x1119, 0x1119, 0x1122, 0x112b, - 0x113d, 0x1143, 0x1143, 0x1143, 0x114f, 0x115a, 0x1166, 0x1172, - // Entry 200 - 23F - 0x1179, 0x1184, 0x118a, 0x118f, 0x1193, 0x1193, 0x1199, 0x119d, - 0x11a7, 0x11b1, 0x11c8, 0x11db, 0x11e4, 0x11e4, 0x11e4, 0x11e9, - 0x11ed, 0x11f3, 0x11f8, 0x1203, 0x1206, 0x1212, 0x1212, 0x121f, - 0x122b, 0x122b, 0x1233, 0x123e, 0x1247, 0x1247, 0x124d, 0x124d, - 0x1260, 0x1260, 0x1267, 0x1271, 0x1278, 0x1283, 0x129c, 0x12a7, - 0x12b2, 0x12b9, 0x12bf, 0x12c2, 0x12c2, 0x12c2, 0x12c2, 0x12c2, - 0x12ca, 0x12ca, 0x12cf, 0x12da, 0x12e0, 0x12e5, 0x12ea, 0x12ea, - 0x12ea, 0x12f5, 0x12f5, 0x12f9, 0x12fc, 0x1304, 0x130b, 0x1310, - // Entry 240 - 27F - 0x1310, 0x131b, 0x1328, 0x1335, 0x1335, 0x133b, 0x135b, 0x1365, - 0x137b, 0x1381, 0x13a2, 0x13b5, 0x13d7, 0x13f0, 0x1407, 0x141d, - 0x1434, 0x1455, 0x146e, 0x1486, 0x14a0, 0x14be, 0x14c8, 0x14e2, - 0x14fb, 0x1506, 0x1517, 0x1533, 0x154b, -} - -// Size: 6084 bytes -var slLangStr string = "" + - "afarÅ¡ÄinaabhaÅ¡ÄinaavestijÅ¡ÄinaafrikanÅ¡ÄinaakanÅ¡ÄinaamharÅ¡ÄinaaragonÅ¡Äina" + - "arabÅ¡ÄinaasamÅ¡ÄinaavarÅ¡ÄinaajmarÅ¡ÄinaazerbajdžanÅ¡ÄinabaÅ¡kirÅ¡ÄinabeloruÅ¡Ä" + - "inabolgarÅ¡ÄinabislamÅ¡ÄinabambarÅ¡ÄinabengalÅ¡ÄinatibetanÅ¡ÄinabretonÅ¡Äinabo" + - "sanÅ¡ÄinakatalonÅ¡ÄinaÄeÄenÅ¡ÄinaÄamorÅ¡ÄinakorziÅ¡ÄinakrijÅ¡ÄinaÄeÅ¡Äinastara " + - "cerkvena slovanÅ¡ÄinaÄuvaÅ¡ÄinavaližanÅ¡ÄinadanÅ¡ÄinanemÅ¡ÄinadiveÅ¡Äinadzonka" + - "evenÅ¡ÄinagrÅ¡ÄinaangleÅ¡ÄinaesperantoÅ¡panÅ¡ÄinaestonÅ¡ÄinabaskovÅ¡ÄinaperzijÅ¡" + - "ÄinafulÅ¡ÄinafinÅ¡ÄinafidžijÅ¡ÄinaferÅ¡ÄinafrancoÅ¡ÄinafrizijÅ¡ÄinairÅ¡ÄinaÅ¡ko" + - "tska gelÅ¡ÄinagalicijÅ¡ÄinagvaranijÅ¡ÄinagudžaratÅ¡ÄinamanÅ¡ÄinahavÅ¡Äinahebre" + - "jÅ¡ÄinahindujÅ¡Äinahiri motuhrvaÅ¡Äinahaitijska kreolÅ¡ÄinamadžarÅ¡ÄinaarmenÅ¡" + - "ÄinahererointerlingvaindonezijÅ¡ÄinainterlingveigboÅ¡ÄinaseÄuanska jiÅ¡Äin" + - "ainupiaÅ¡ÄinaidoislandÅ¡ÄinaitalijanÅ¡ÄinainuktitutÅ¡ÄinajaponÅ¡ÄinajavanÅ¡Äin" + - "agruzinÅ¡ÄinakongovÅ¡ÄinakikujÅ¡ÄinakvanjamakazaÅ¡ÄinagrenlandÅ¡ÄinakmerÅ¡Äina" + - "kanadakorejÅ¡ÄinakanurÅ¡ÄinakaÅ¡mirÅ¡ÄinakurdÅ¡ÄinakomijÅ¡ÄinakornijÅ¡Äinakirgi" + - "Å¡ÄinalatinÅ¡ÄinaluksemburÅ¡ÄinagandalimburÅ¡ÄinalingalalaoÅ¡ÄinalitovÅ¡Äinal" + - "uba-katangalatvijÅ¡ÄinamalagaÅ¡ÄinamarshallovÅ¡ÄinamaorÅ¡ÄinamakedonÅ¡Äinamal" + - "ajalamÅ¡ÄinamongolÅ¡ÄinamaratÅ¡ÄinamalajÅ¡ÄinamalteÅ¡ÄinaburmanÅ¡ÄinanaurujÅ¡Äi" + - "naseverna ndebelÅ¡ÄinanepalÅ¡ÄinanizozemÅ¡ÄinanovonorveÅ¡Äinaknjižna norveÅ¡Ä" + - "inajužna ndebelÅ¡ÄinanavajÅ¡ÄinanjanÅ¡ÄinaokcitanÅ¡ÄinaanaÅ¡inabÅ¡Äinaoromoori" + - "jÅ¡ÄinaosetinÅ¡ÄinapandžabÅ¡ÄinapalijÅ¡ÄinapoljÅ¡ÄinapaÅ¡tunÅ¡ÄinaportugalÅ¡Äina" + - "keÄuanÅ¡ÄinaretoromanÅ¡ÄinarundÅ¡ÄinaromunÅ¡ÄinaruÅ¡ÄinaruandÅ¡Äinasanskrtsard" + - "inÅ¡ÄinasindÅ¡Äinaseverna samijÅ¡ÄinasangosingalÅ¡ÄinaslovaÅ¡ÄinaslovenÅ¡Äinas" + - "amoanÅ¡ÄinaÅ¡onÅ¡ÄinasomalÅ¡ÄinaalbanÅ¡ÄinasrbÅ¡ÄinasvazijÅ¡ÄinasesotosundanÅ¡Äi" + - "naÅ¡vedÅ¡ÄinasvahilitamilÅ¡ÄinatelugijÅ¡ÄinatadžiÅ¡ÄinatajÅ¡ÄinatigrajÅ¡Äinatur" + - "kmenÅ¡ÄinacvanÅ¡ÄinatongÅ¡ÄinaturÅ¡ÄinatsongatatarÅ¡ÄinatahitÅ¡ÄinaujgurÅ¡Äinau" + - "krajinÅ¡ÄinaurdujÅ¡ÄinauzbeÅ¡ÄinavendavietnamÅ¡ÄinavolapukvalonÅ¡ÄinavolofÅ¡Äi" + - "naxhosajidiÅ¡jorubÅ¡ÄinakitajÅ¡ÄinazulujÅ¡ÄinaaÄejÅ¡ÄinaaÄolijÅ¡ÄinaadangmejÅ¡Ä" + - "inaadigejÅ¡ÄinaafrihiliaghemÅ¡ÄinaainujÅ¡ÄinaakadÅ¡ÄinaaleutÅ¡Äinajužna altaj" + - "Å¡Äinastara angleÅ¡ÄinaangikaÅ¡ÄinaaramejÅ¡ÄinaaravkanÅ¡ÄinaarapaÅ¡ÄinaaravaÅ¡" + - "ÄinaasujÅ¡ÄinaasturijÅ¡ÄinaavadÅ¡ÄinabeludžijÅ¡ÄinabalijÅ¡Äinabasabedžabemba" + - "benajÅ¡Äinabodžpuribikolski jezikedosiksikabradžbakanÅ¡ÄinabodojÅ¡Äinaburja" + - "tÅ¡ÄinabuginÅ¡ÄinablinÅ¡ÄinakadoÅ¡Äinakaribski jeziksebuanÅ¡ÄinaÄigajÅ¡ÄinaÄib" + - "ÄevÅ¡ÄinaÄagatajÅ¡ÄinatrukeÅ¡ÄinamarijÅ¡ÄinaÄinuÅ¡ki žargonÄoktavÅ¡ÄinaÄipevÅ¡" + - "ÄinaÄerokeÅ¡ÄinaÄejenÅ¡Äinasoranska kurdÅ¡ÄinakoptÅ¡Äinakrimska tatarÅ¡Äinak" + - "aÅ¡ubÅ¡ÄinadakotÅ¡ÄinadarginÅ¡ÄinataitajÅ¡ÄinadelavarÅ¡ÄinaslavejÅ¡Äinadogribdi" + - "nkazarmajÅ¡Äinadogridolnja lužiÅ¡ka srbÅ¡Äinadualasrednja nizozemÅ¡Äinajola-" + - "fonjiÅ¡ÄinadiulaembujÅ¡ÄinaefiÅ¡Äinastara egipÄanÅ¡ÄinaekajukelamÅ¡Äinasrednj" + - "a angleÅ¡ÄinaevondovÅ¡ÄinafangijÅ¡ÄinafilipinÅ¡ÄinafonÅ¡Äinasrednja francoÅ¡Äi" + - "nastara francoÅ¡Äinaseverna frizijÅ¡Äinavzhodna frizijÅ¡ÄinafurlanÅ¡Äinagaga" + - "gavÅ¡ÄinagajÅ¡ÄinagbajÅ¡ÄinaetiopÅ¡ÄinakiribatÅ¡Äinasrednja visoka nemÅ¡Äinast" + - "ara visoka nemÅ¡ÄinagondigorontalÅ¡ÄinagotÅ¡ÄinagrebÅ¡Äinastara grÅ¡ÄinanemÅ¡Ä" + - "ina (Å vica)gusijÅ¡ÄinahaidÅ¡ÄinahavajÅ¡ÄinahiligajnonÅ¡ÄinahetitÅ¡ÄinahmonÅ¡Äi" + - "nagornja lužiÅ¡ka srbÅ¡ÄinahupaibanÅ¡ÄinailokanÅ¡ÄinainguÅ¡Äinalojbanngombama" + - "ÄamejÅ¡Äinajudovska perzijÅ¡Äinajudovska arabÅ¡ÄinakarakalpaÅ¡ÄinakabilÅ¡Äin" + - "akaÄinÅ¡ÄinakambaÅ¡ÄinakavikabardinÅ¡Äinatjapska nigerijÅ¡ÄinamakondÅ¡Äinazel" + - "enortskootoÅ¡ka kreolÅ¡ÄinakasikotanÅ¡Äinakoyra chiinikalenjinÅ¡Äinakimbundu" + - "komi-permjaÅ¡ÄinakonkanÅ¡ÄinakosrajÅ¡ÄinakpelejÅ¡ÄinakaraÄaj-balkarÅ¡Äinakare" + - "lÅ¡ÄinakurukshambalabafiakumiÅ¡ÄinakutenajÅ¡ÄinaladinÅ¡ÄinalangijÅ¡Äinalandal" + - "ambalezginÅ¡ÄinalakotÅ¡Äinamongoloziluba-lulualuisenÅ¡Äinalundaluolushailuh" + - "ijÅ¡ÄinamadurÅ¡ÄinamagadÅ¡ÄinamaitilimakasarÅ¡ÄinamandingomasajÅ¡ÄinamokÅ¡avÅ¡Ä" + - "inamandarÅ¡ÄinamendemerumorisjenÅ¡Äinasrednja irÅ¡Äinamakuva-metometamikmaÅ¡" + - "ÄinaminangkabaumandžurÅ¡ÄinamanipurÅ¡ÄinamohoÅ¡ÄinamosijÅ¡ÄinamundangveÄ je" + - "zikovmirandeÅ¡ÄinamarvarÅ¡ÄinaerzjanÅ¡ÄinanapolitanÅ¡Äinakhoekhoenizka nemÅ¡Ä" + - "inanevarÅ¡ÄinaniaÅ¡ÄinaniuejÅ¡ÄinakwasionogajÅ¡Äinastara nordijÅ¡Äinan’koseve" + - "rna sotÅ¡ÄinanuerÅ¡ÄinaklasiÄna nevarÅ¡ÄinanjamveÅ¡Äinanjankolenjoronzimaosa" + - "geotomanska turÅ¡ÄinapangasinanÅ¡ÄinapampanÅ¡ÄinapapiamentupalavanÅ¡Äinastar" + - "a perzijÅ¡ÄinafeniÄanÅ¡ÄinaponpejÅ¡Äinastara provansalÅ¡ÄinaquicheradžastanÅ¡" + - "ÄinarapanujÅ¡ÄinararotongÅ¡ÄinaromboromÅ¡ÄinaaromunÅ¡ÄinarwajakutÅ¡Äinasamar" + - "itanska aramejÅ¡ÄinasamburÅ¡ÄinasasaÅ¡ÄinasantalÅ¡ÄinasangujÅ¡ÄinasicilijanÅ¡Ä" + - "inaÅ¡kotÅ¡ÄinasenaselkupÅ¡Äinakoyraboro sennistara irÅ¡Äinatahelitska berber" + - "Å¡ÄinaÅ¡anÅ¡ÄinasidamÅ¡Äinajužna samijÅ¡ÄinaluleÅ¡ka samijÅ¡Äinainarska samijÅ¡" + - "ÄinasamijÅ¡Äina Skoltsurinamska kreolÅ¡ÄinasererÅ¡ÄinasukumasusujÅ¡Äinasume" + - "rÅ¡ÄinaÅ¡ikomorsvahili (Kongo)klasiÄna sirÅ¡ÄinasirÅ¡ÄinatemnejÅ¡Äinatesotetu" + - "mÅ¡ÄinatigrejÅ¡ÄinativÅ¡ÄinatokelavÅ¡ÄinaklingonÅ¡ÄinatlingitÅ¡ÄinatamajaÅ¡Äina" + - "malavijska tongÅ¡Äinatok pisintsimÅ¡ÄinatumbukÅ¡ÄinatuvalujÅ¡Äinatasawaqtuvi" + - "nÅ¡ÄinatamaÅ¡ek (srednji atlas)udmurtÅ¡Äinaugaritski jezikumbundÅ¡Äinaneznan" + - " ali neveljaven jezikvajÅ¡ÄinavotjaÅ¡ÄinavunjovalamÅ¡ÄinavarajÅ¡ÄinavaÅ¡ajÅ¡Äi" + - "nakalmiÅ¡ÄinasogÅ¡ÄinajaojÅ¡ÄinajapÅ¡ÄinakantonÅ¡ÄinazapoteÅ¡Äinaznakovni jezi" + - "k BlisszenaÅ¡Äinastandardni maroÅ¡ki tamazigzunijÅ¡Äinabrez jezikoslovne vs" + - "ebinezazajÅ¡Äinasodobna standardna arabÅ¡Äinaavstrijska nemÅ¡Äinavisoka nem" + - "Å¡Äina (Å vica)avstralska angleÅ¡Äinakanadska angleÅ¡ÄinaangleÅ¡Äina (VB)ang" + - "leÅ¡Äina (ZDA)latinskoameriÅ¡ka Å¡panÅ¡Äinaiberska Å¡panÅ¡Äinakanadska francoÅ¡" + - "ÄinaÅ¡vicarska francoÅ¡ÄinaflamÅ¡Äinabrazilska portugalÅ¡Äinaiberska portug" + - "alÅ¡ÄinamoldavÅ¡ÄinasrbohrvaÅ¡Äinapoenostavljena kitajÅ¡Äinatradicionalna ki" + - "tajÅ¡Äina" - -// Size: 1234 bytes, 605 elements -var slLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000b, 0x0016, 0x0024, 0x0032, 0x003d, 0x0049, 0x0056, - 0x0061, 0x006c, 0x0077, 0x0083, 0x0096, 0x00a4, 0x00b1, 0x00be, - 0x00cb, 0x00d8, 0x00e5, 0x00f3, 0x0100, 0x010c, 0x011a, 0x0128, - 0x0135, 0x0141, 0x014c, 0x0156, 0x0172, 0x017e, 0x018d, 0x0197, - 0x01a1, 0x01ac, 0x01b2, 0x01bd, 0x01c6, 0x01d2, 0x01db, 0x01e7, - 0x01f3, 0x0200, 0x020d, 0x0217, 0x0221, 0x022f, 0x0239, 0x0246, - 0x0253, 0x025c, 0x026f, 0x027d, 0x028c, 0x029c, 0x02a6, 0x02b0, - 0x02bd, 0x02ca, 0x02d3, 0x02de, 0x02f4, 0x0302, 0x030e, 0x0314, - // Entry 40 - 7F - 0x031f, 0x032f, 0x033a, 0x0345, 0x0359, 0x0366, 0x0369, 0x0376, - 0x0385, 0x0395, 0x03a1, 0x03ad, 0x03ba, 0x03c7, 0x03d3, 0x03db, - 0x03e6, 0x03f5, 0x0400, 0x0406, 0x0412, 0x041e, 0x042c, 0x0437, - 0x0443, 0x0450, 0x045c, 0x0468, 0x0478, 0x047d, 0x048a, 0x0491, - 0x049b, 0x04a7, 0x04b3, 0x04c0, 0x04cd, 0x04de, 0x04e9, 0x04f7, - 0x0507, 0x0514, 0x0520, 0x052c, 0x0538, 0x0545, 0x0552, 0x0567, - 0x0573, 0x0573, 0x0581, 0x0591, 0x05a6, 0x05ba, 0x05c6, 0x05d1, - 0x05df, 0x05ef, 0x05f4, 0x05ff, 0x060c, 0x061b, 0x0627, 0x0632, - // Entry 80 - BF - 0x0640, 0x064f, 0x065d, 0x066d, 0x0678, 0x0684, 0x068d, 0x0699, - 0x06a0, 0x06ad, 0x06b8, 0x06cc, 0x06d1, 0x06de, 0x06ea, 0x06f7, - 0x0704, 0x070f, 0x071b, 0x0727, 0x0731, 0x073e, 0x0744, 0x0751, - 0x075d, 0x0764, 0x0770, 0x077e, 0x078b, 0x0795, 0x07a2, 0x07b0, - 0x07bb, 0x07c6, 0x07d0, 0x07d6, 0x07e2, 0x07ee, 0x07fa, 0x0808, - 0x0814, 0x081f, 0x0824, 0x0832, 0x0839, 0x0845, 0x0851, 0x0856, - 0x085c, 0x0868, 0x0868, 0x0874, 0x0880, 0x088c, 0x089a, 0x08a9, - 0x08b6, 0x08b6, 0x08be, 0x08ca, 0x08d6, 0x08e1, 0x08e1, 0x08ed, - // Entry C0 - FF - 0x08ed, 0x0900, 0x0912, 0x091f, 0x092c, 0x093a, 0x093a, 0x0946, - 0x0946, 0x0952, 0x0952, 0x0952, 0x095d, 0x095d, 0x096b, 0x096b, - 0x0976, 0x0976, 0x0986, 0x0992, 0x0992, 0x0996, 0x0996, 0x0996, - 0x0996, 0x099c, 0x09a1, 0x09a1, 0x09ad, 0x09ad, 0x09ad, 0x09b6, - 0x09c4, 0x09c7, 0x09c7, 0x09c7, 0x09ce, 0x09ce, 0x09ce, 0x09e0, - 0x09e0, 0x09ec, 0x09ec, 0x09f9, 0x0a05, 0x0a05, 0x0a10, 0x0a10, - 0x0a1b, 0x0a29, 0x0a29, 0x0a29, 0x0a36, 0x0a43, 0x0a52, 0x0a61, - 0x0a6d, 0x0a79, 0x0a8a, 0x0a98, 0x0aa5, 0x0ab3, 0x0ac0, 0x0ad4, - // Entry 100 - 13F - 0x0adf, 0x0adf, 0x0af3, 0x0b00, 0x0b0c, 0x0b19, 0x0b26, 0x0b34, - 0x0b41, 0x0b47, 0x0b4c, 0x0b59, 0x0b5e, 0x0b79, 0x0b79, 0x0b7e, - 0x0b94, 0x0ba5, 0x0baa, 0x0baa, 0x0bb6, 0x0bc0, 0x0bc0, 0x0bd5, - 0x0bdb, 0x0be6, 0x0bfa, 0x0bfa, 0x0c08, 0x0c08, 0x0c15, 0x0c23, - 0x0c23, 0x0c2d, 0x0c2d, 0x0c42, 0x0c55, 0x0c55, 0x0c6a, 0x0c7f, - 0x0c8c, 0x0c8e, 0x0c9a, 0x0c9a, 0x0ca4, 0x0caf, 0x0caf, 0x0cbb, - 0x0cc9, 0x0cc9, 0x0ce2, 0x0cf9, 0x0cf9, 0x0cfe, 0x0d0d, 0x0d17, - 0x0d22, 0x0d31, 0x0d44, 0x0d44, 0x0d44, 0x0d50, 0x0d50, 0x0d5b, - // Entry 140 - 17F - 0x0d5b, 0x0d67, 0x0d67, 0x0d78, 0x0d84, 0x0d8f, 0x0daa, 0x0daa, - 0x0dae, 0x0db9, 0x0db9, 0x0dc6, 0x0dd1, 0x0dd1, 0x0dd1, 0x0dd7, - 0x0ddd, 0x0dec, 0x0e02, 0x0e16, 0x0e16, 0x0e26, 0x0e32, 0x0e3f, - 0x0e3f, 0x0e4b, 0x0e4f, 0x0e5e, 0x0e5e, 0x0e74, 0x0e81, 0x0ea0, - 0x0ea0, 0x0ea0, 0x0ea0, 0x0ea4, 0x0eb0, 0x0ebc, 0x0ebc, 0x0ebc, - 0x0ebc, 0x0ecb, 0x0ed3, 0x0ee5, 0x0ef2, 0x0eff, 0x0f0c, 0x0f22, - 0x0f22, 0x0f22, 0x0f2e, 0x0f33, 0x0f3b, 0x0f40, 0x0f40, 0x0f4b, - 0x0f59, 0x0f65, 0x0f72, 0x0f77, 0x0f7c, 0x0f89, 0x0f89, 0x0f89, - // Entry 180 - 1BF - 0x0f89, 0x0f95, 0x0f95, 0x0f9a, 0x0f9e, 0x0f9e, 0x0fa8, 0x0fb5, - 0x0fba, 0x0fbd, 0x0fc3, 0x0fcf, 0x0fcf, 0x0fcf, 0x0fdb, 0x0fdb, - 0x0fe7, 0x0fee, 0x0ffc, 0x1004, 0x1010, 0x1010, 0x101e, 0x102b, - 0x1030, 0x1034, 0x1043, 0x1054, 0x105f, 0x1063, 0x106f, 0x107a, - 0x1089, 0x1097, 0x10a2, 0x10ae, 0x10ae, 0x10b5, 0x10c1, 0x10c1, - 0x10cf, 0x10dc, 0x10dc, 0x10dc, 0x10e9, 0x10e9, 0x10e9, 0x10f9, - 0x1101, 0x1111, 0x111d, 0x1127, 0x1133, 0x1133, 0x1139, 0x1139, - 0x1145, 0x1158, 0x1158, 0x115e, 0x1170, 0x117b, 0x1191, 0x119e, - // Entry 1C0 - 1FF - 0x11a6, 0x11ab, 0x11b0, 0x11b5, 0x11c9, 0x11da, 0x11da, 0x11e7, - 0x11f1, 0x11ff, 0x11ff, 0x11ff, 0x11ff, 0x1212, 0x1212, 0x1221, - 0x1221, 0x1221, 0x122e, 0x122e, 0x1244, 0x124a, 0x124a, 0x125b, - 0x1269, 0x1278, 0x1278, 0x1278, 0x127d, 0x1287, 0x1287, 0x1287, - 0x1287, 0x1294, 0x1297, 0x1297, 0x12a3, 0x12bd, 0x12ca, 0x12d5, - 0x12e2, 0x12e2, 0x12e2, 0x12ef, 0x12ff, 0x130b, 0x130b, 0x130b, - 0x130f, 0x130f, 0x131c, 0x132b, 0x133a, 0x133a, 0x1352, 0x135d, - 0x135d, 0x1369, 0x1369, 0x1369, 0x137c, 0x1391, 0x13a5, 0x13b7, - // Entry 200 - 23F - 0x13b7, 0x13b7, 0x13ce, 0x13da, 0x13da, 0x13da, 0x13e0, 0x13ec, - 0x13f8, 0x1400, 0x140f, 0x1423, 0x142d, 0x142d, 0x142d, 0x143a, - 0x143e, 0x143e, 0x144a, 0x1457, 0x1461, 0x146f, 0x146f, 0x147d, - 0x148b, 0x148b, 0x1498, 0x14ae, 0x14b7, 0x14b7, 0x14b7, 0x14b7, - 0x14c2, 0x14c2, 0x14cf, 0x14dd, 0x14e4, 0x14f0, 0x1508, 0x1515, - 0x1524, 0x1531, 0x154c, 0x1556, 0x1556, 0x1556, 0x1556, 0x1556, - 0x1562, 0x1562, 0x1567, 0x1567, 0x1573, 0x157f, 0x158c, 0x158c, - 0x158c, 0x1598, 0x1598, 0x15a2, 0x15ad, 0x15b7, 0x15b7, 0x15b7, - // Entry 240 - 27F - 0x15b7, 0x15c4, 0x15d1, 0x15e5, 0x15e5, 0x15f0, 0x160b, 0x1617, - 0x1630, 0x163c, 0x165a, 0x166f, 0x1689, 0x16a0, 0x16b5, 0x16c6, - 0x16d8, 0x16f6, 0x170a, 0x170a, 0x1720, 0x1738, 0x1743, 0x175c, - 0x1773, 0x1780, 0x178f, 0x17aa, 0x17c4, -} - -// Size: 2384 bytes -var sqLangStr string = "" + - "abkazishtafrikanishtakanishtamarikearabishtasamezishtazerebashkirishtbje" + - "llorusishtbullgarishtbambarabengalishttibetishtbretoneboshnjakishtkatalo" + - "nishtkorsikanishtçekishtuellsishtdanishtgjermanishtxongkajuishtgreqishta" + - "nglishtesperantospanjishtestonishtbaskishtpersishtfinlandishtfixhianefar" + - "oishtfrëngjishtfrizianishtirlandezçegalikeguaranishtguxharatishtmankseha" + - "usishthebraishtindishtekroatishthaitiançehungarishtarmenishtindonezishti" + - "gbesishuanishtislandishtitalishtinuktitutjaponishtjavanishtgjeorgjishtki" + - "kujuishtkazakishtkalalisutekmerekanadekoreanishtkashmirekurdekornishtkir" + - "gizishtlatinishtluksemburgasegandishtlingalishtlaosishtlituanishtLubakat" + - "angeletonishtmalagezemaorishtmaqedonishtmalajalamemongolishtmaratishtmal" + - "ajishtmaltishtbirmanishtndebelishte veriorenepalishtholandishtninorske n" + - "orvegjezebokmalishte norvegjezeoromoishtorijepanxhabepolonishtpashtoport" + - "ugalishtkeçuaromerundishtrumanishtrusishtkiniaruandishtsanskritishtsindi" + - "samishte verioresangoishtsinhalesllovakishtsllovenishtshonishtsomalishts" + - "hqipserbishtsundanishtsuedishtsuahilishttamiletelugetaxhikishttajlandish" + - "ttigrinjeturkmenishttonganishtturqishttatarishtujgureukrainishturduuzbek" + - "evietnamishtulufishtxhosejorubishtkinezishtzuluagemishtmapuçishtasuishtb" + - "embabenabodoçigishtçerokikurdishte soranitaitishtzarmishtsorbishte e pos" + - "htmedualishtxhula-fonjiembuishtfilipinasegagauzishtgjermanishte zviceran" + - "egusishthauajanesorbiane e sipërmengombishtmaçamishtkabilishtkambishtema" + - "kondishtkabuverdianishtkojraçinishtkalenjinishtkomishte permiakekonkanis" + - "htshambalishtbafianishtlangishtlakotishtluoishtlujaishtmasaishtmeruishtn" + - "orisjenemakuamitometaishtmohaukishtmundagishtenamaishtekuasishtnkoishtnu" + - "erishtniankolishtkiçeishtromboishteruaishtsamburishtsanguishtsenaishtese" + - "nishte kojraboretaçelitsamishte jugoresamishte lulejesamishte inariesami" + - "shte skoltesuahilishte kongojetezoishttasaukishttamaziatishte atlase qen" + - "droree panjohurvaishtvunjishtsogishttamazishte standarde marokenenuk ka " + - "përmbajtje gjuhësorearabishte standarde modernegjermanishte austriakegje" + - "rmanishte zvicerane (dialekti i Alpeve)anglishte australianeanglishte ka" + - "nadezeanglishte britanikeanglishte amerikanespanjishte amerikano-latines" + - "panjishte evropianespanjishte meksikanefrëngjishte kanadezefrëngjishte z" + - "viceraneflamandeportugalishte brazilianeportugalishte evropianemoldavish" + - "teSerbo-Kroatishtkinezishte e thjeshtuarkinezishte tradicionale" - -// Size: 1234 bytes, 605 elements -var sqLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0009, 0x0009, 0x0014, 0x001c, 0x0023, 0x0023, - 0x002b, 0x0035, 0x0035, 0x0035, 0x003a, 0x0045, 0x0052, 0x005d, - 0x005d, 0x0064, 0x006e, 0x0077, 0x007e, 0x008a, 0x0095, 0x0095, - 0x0095, 0x00a1, 0x00a1, 0x00a9, 0x00a9, 0x00a9, 0x00b2, 0x00b9, - 0x00c4, 0x00c4, 0x00ca, 0x00d0, 0x00d8, 0x00e0, 0x00e9, 0x00f2, - 0x00fb, 0x0103, 0x010b, 0x010b, 0x0116, 0x011e, 0x0126, 0x0131, - 0x013c, 0x0147, 0x0147, 0x014d, 0x0157, 0x0163, 0x0169, 0x0171, - 0x017a, 0x0182, 0x0182, 0x018b, 0x0195, 0x019f, 0x01a8, 0x01a8, - // Entry 40 - 7F - 0x01a8, 0x01b3, 0x01b3, 0x01b7, 0x01c2, 0x01c2, 0x01c2, 0x01cc, - 0x01d4, 0x01dd, 0x01e6, 0x01ef, 0x01fa, 0x01fa, 0x0204, 0x0204, - 0x020d, 0x0217, 0x021c, 0x0222, 0x022c, 0x022c, 0x0234, 0x0239, - 0x0239, 0x0241, 0x024b, 0x0254, 0x0261, 0x0269, 0x0269, 0x0273, - 0x027b, 0x0285, 0x0290, 0x0299, 0x02a1, 0x02a1, 0x02a9, 0x02b4, - 0x02be, 0x02c8, 0x02d1, 0x02da, 0x02e2, 0x02ec, 0x02ec, 0x02ff, - 0x0308, 0x0308, 0x0312, 0x0325, 0x033b, 0x033b, 0x033b, 0x033b, - 0x033b, 0x033b, 0x0344, 0x0349, 0x0349, 0x0351, 0x0351, 0x035a, - // Entry 80 - BF - 0x0360, 0x036c, 0x0372, 0x0376, 0x037e, 0x0387, 0x038e, 0x039c, - 0x03a8, 0x03a8, 0x03ad, 0x03bd, 0x03c6, 0x03cd, 0x03d8, 0x03e3, - 0x03e3, 0x03eb, 0x03f4, 0x03f9, 0x0401, 0x0401, 0x0401, 0x040b, - 0x0413, 0x041d, 0x0423, 0x0429, 0x0433, 0x043e, 0x0446, 0x0451, - 0x0451, 0x045b, 0x0463, 0x0463, 0x046c, 0x046c, 0x0472, 0x047c, - 0x0480, 0x0486, 0x0486, 0x0491, 0x0491, 0x0491, 0x0499, 0x049e, - 0x049e, 0x04a7, 0x04a7, 0x04b0, 0x04b4, 0x04b4, 0x04b4, 0x04b4, - 0x04b4, 0x04b4, 0x04b4, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, - // Entry C0 - FF - 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04c6, 0x04c6, 0x04c6, - 0x04c6, 0x04c6, 0x04c6, 0x04c6, 0x04cd, 0x04cd, 0x04cd, 0x04cd, - 0x04cd, 0x04cd, 0x04cd, 0x04cd, 0x04cd, 0x04cd, 0x04cd, 0x04cd, - 0x04cd, 0x04cd, 0x04d2, 0x04d2, 0x04d6, 0x04d6, 0x04d6, 0x04d6, - 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04d6, - 0x04d6, 0x04da, 0x04da, 0x04da, 0x04da, 0x04da, 0x04da, 0x04da, - 0x04da, 0x04da, 0x04da, 0x04da, 0x04da, 0x04e2, 0x04e2, 0x04e2, - 0x04e2, 0x04e2, 0x04e2, 0x04e2, 0x04e2, 0x04e9, 0x04e9, 0x04f9, - // Entry 100 - 13F - 0x04f9, 0x04f9, 0x04f9, 0x04f9, 0x04f9, 0x04f9, 0x0501, 0x0501, - 0x0501, 0x0501, 0x0501, 0x0509, 0x0509, 0x051c, 0x051c, 0x0524, - 0x0524, 0x052f, 0x052f, 0x052f, 0x0537, 0x0537, 0x0537, 0x0537, - 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0541, - 0x0541, 0x0541, 0x0541, 0x0541, 0x0541, 0x0541, 0x0541, 0x0541, - 0x0541, 0x0541, 0x054b, 0x054b, 0x054b, 0x054b, 0x054b, 0x054b, - 0x054b, 0x054b, 0x054b, 0x054b, 0x054b, 0x054b, 0x054b, 0x054b, - 0x054b, 0x054b, 0x0561, 0x0561, 0x0561, 0x0568, 0x0568, 0x0568, - // Entry 140 - 17F - 0x0568, 0x0570, 0x0570, 0x0570, 0x0570, 0x0570, 0x0583, 0x0583, - 0x0583, 0x0583, 0x0583, 0x0583, 0x0583, 0x0583, 0x0583, 0x0583, - 0x058c, 0x0596, 0x0596, 0x0596, 0x0596, 0x0596, 0x059f, 0x059f, - 0x059f, 0x05a8, 0x05a8, 0x05a8, 0x05a8, 0x05a8, 0x05b2, 0x05c1, - 0x05c1, 0x05c1, 0x05c1, 0x05c1, 0x05c1, 0x05ce, 0x05ce, 0x05ce, - 0x05ce, 0x05da, 0x05da, 0x05eb, 0x05f5, 0x05f5, 0x05f5, 0x05f5, - 0x05f5, 0x05f5, 0x05f5, 0x05f5, 0x0600, 0x060a, 0x060a, 0x060a, - 0x060a, 0x060a, 0x0612, 0x0612, 0x0612, 0x0612, 0x0612, 0x0612, - // Entry 180 - 1BF - 0x0612, 0x061b, 0x061b, 0x061b, 0x061b, 0x061b, 0x061b, 0x061b, - 0x061b, 0x0622, 0x0622, 0x062a, 0x062a, 0x062a, 0x062a, 0x062a, - 0x062a, 0x062a, 0x062a, 0x062a, 0x0632, 0x0632, 0x0632, 0x0632, - 0x0632, 0x063a, 0x0643, 0x0643, 0x064c, 0x0654, 0x0654, 0x0654, - 0x0654, 0x0654, 0x065e, 0x065e, 0x065e, 0x0669, 0x0669, 0x0669, - 0x0669, 0x0669, 0x0669, 0x0669, 0x0669, 0x0669, 0x0669, 0x0669, - 0x0672, 0x0672, 0x0672, 0x0672, 0x0672, 0x0672, 0x067a, 0x067a, - 0x067a, 0x067a, 0x067a, 0x0681, 0x0681, 0x0689, 0x0689, 0x0689, - // Entry 1C0 - 1FF - 0x0694, 0x0694, 0x0694, 0x0694, 0x0694, 0x0694, 0x0694, 0x0694, - 0x0694, 0x0694, 0x0694, 0x0694, 0x0694, 0x0694, 0x0694, 0x0694, - 0x0694, 0x0694, 0x0694, 0x0694, 0x0694, 0x069d, 0x069d, 0x069d, - 0x069d, 0x069d, 0x069d, 0x069d, 0x06a7, 0x06a7, 0x06a7, 0x06a7, - 0x06a7, 0x06a7, 0x06ae, 0x06ae, 0x06ae, 0x06ae, 0x06b8, 0x06b8, - 0x06b8, 0x06b8, 0x06b8, 0x06c1, 0x06c1, 0x06c1, 0x06c1, 0x06c1, - 0x06ca, 0x06ca, 0x06ca, 0x06dc, 0x06dc, 0x06dc, 0x06e4, 0x06e4, - 0x06e4, 0x06e4, 0x06e4, 0x06e4, 0x06f3, 0x0702, 0x0711, 0x0720, - // Entry 200 - 23F - 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, 0x0720, - 0x0720, 0x0720, 0x0733, 0x0733, 0x0733, 0x0733, 0x0733, 0x0733, - 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, - 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, - 0x073b, 0x073b, 0x073b, 0x073b, 0x0745, 0x0745, 0x0762, 0x0762, - 0x0762, 0x0762, 0x076c, 0x0772, 0x0772, 0x0772, 0x0772, 0x0772, - 0x0772, 0x0772, 0x077a, 0x077a, 0x077a, 0x077a, 0x077a, 0x077a, - 0x077a, 0x077a, 0x077a, 0x0781, 0x0781, 0x0781, 0x0781, 0x0781, - // Entry 240 - 27F - 0x0781, 0x0781, 0x0781, 0x0781, 0x0781, 0x0781, 0x079e, 0x079e, - 0x07bb, 0x07bb, 0x07d6, 0x07ec, 0x0816, 0x082b, 0x083d, 0x0850, - 0x0863, 0x087e, 0x0892, 0x08a6, 0x08bb, 0x08d1, 0x08d9, 0x08f1, - 0x0908, 0x0913, 0x0922, 0x0939, 0x0950, -} - -// Size: 7436 bytes -var srLangStr string = "" + - "ÐфарÑкиабхаÑкиÐвеÑтанÑкиафриканÑаканамхарÑкиÐрагонежанÑкиарапÑкиаÑамÑкиÐ" + - "варÑкиÐјмараазербејџанÑкибашкирÑкибелоруÑкибугарÑкиБиÑламабамбарабенгал" + - "ÑкитибетанÑкибретонÑкибоÑанÑкикаталонÑкиЧеченÑкиЧаморокорзиканÑкиКричеш" + - "киСтароÑловенÑкиЧувашкивелшкиданÑкинемачкиДивехијÑкиџонгаевегрчкиенглеÑ" + - "киеÑперантошпанÑкиеÑтонÑкибаÑкијÑкиперÑијÑкиФулахфинÑкифиџијÑкифарÑкифр" + - "анцуÑкизападни фризијÑкиирÑкиШкотÑки ГалÑкигалицијÑкигваранигуџаратиМан" + - "кÑхауÑахебрејÑкихиндиХири МотухрватÑкиХаитÑкимађарÑкијерменÑкиХерероИнт" + - "ерлингваиндонежанÑкиМеђујезичкиигбоÑечуан јиУнупиакИдоиÑландÑкииталијан" + - "ÑкиинуктитутјапанÑкијаванÑкигрузијÑкиКонгокикујуКуањамаказашкикалалиÑут" + - "кмерÑкиканадакорејÑкиКанурикашмирÑкикурдÑкиКомикорнволÑкикиргиÑкилатинÑ" + - "килукÑембуршкигандаЛимбургишлингалалаошкилитванÑкилуба-катангалетонÑким" + - "алгашкиМаршалÑкимаорÑкимакедонÑкималајаламмонголÑкимаратималајÑкималтеш" + - "кибурманÑкиÐауруÑеверни ндебеленепалÑкиÐдонгахоландÑкинорвешки нинорÑкн" + - "орвешки бокмалЈужни ндебелеÐавахоЊањаПрованÑалÑкиОјибваоромооријаОÑетÑк" + - "ипанџабиПалипољÑкипаштунÑкипортугалÑкикечуарето-романÑкирундирумунÑкиру" + - "ÑкикинјаруандаÑанÑкритСардињаÑкиÑиндиÑеверни ÑамиÑангоÑинхалÑкиÑловачки" + - "ÑловеначкиСамоанÑкишонаÑомалÑкиалбанÑкиÑрпÑкиСватиСеÑотоÑуданÑкишведÑки" + - "ÑвахилитамилÑкителугуТађиктајландÑкитигрињатуркменÑкиТÑванатонгатурÑкиТ" + - "ÑонгататарÑкиТахићанÑкиујгурÑкиукрајинÑкиурдуузбечкиВендавијетнамÑкиВол" + - "апукВалунволофкоÑаЈидишјорубаЖуангкинеÑкизулуÐчинеÑкиÐколиÐдангмејÑкиÐд" + - "игејÑкиÐфрихилиагемÐинуÐкадијÑкиÐљутЈужни алтаиСтароенглеÑкиÐнгикаÐрмај" + - "ÑкимапучеÐрапахоÐравакаÑуÐÑтуријÑкиÐвадхиБалучиБалинезијÑкиБаÑаБејабемб" + - "абенаБојпуриБиколБиниСиÑикаБрајбодоБуриатБугинежанÑкиБлинКадоКарипÑкиÐÑ‚" + - "ÑамÑкиЦебуаночигаЧибчаЧагатаиЧукеÑкиМариЧинукÑкиЧоктавÑкиЧипвијанÑкичер" + - "окиЧејенÑкиÑорани курдÑкиКоптÑкиКримеанÑки турÑкиКашубијанÑкиДакотаДарг" + - "ватаитаДелаверСлавÑкиДогрибДинказармаДогридоњи лужичкоÑрпÑкидуалаСредњи" + - " холандÑкиџола фоњиЂулаембуЕфикÑкиСтароегипатÑкиЕкајукЕламитÑкиСредњи ен" + - "глеÑкиЕвондоФангфилипинÑкиФонСредњи француÑкиСтарофранцуÑкиСеверно-фриз" + - "ијÑкиИÑточни фризијÑкиФриулијÑкиГагагаузГајоГбајаÐизГилбертшкиСредњи ви" + - "Ñоки немачкиСтаронемачкиГондиГоронталоГотÑкиГребоСтарогрчкиШвајцарÑки н" + - "емачкигуÑиГвич’инХаидахавајÑкиХилигајнонХититеХмонггорњи лужичкоÑрпÑкиХ" + - "упаИбанИлокоИнгвишкиЛојбаннгомбамачамеЈудео-перÑијÑкиЈудео-арапÑкиКара-" + - "калпашкикабилеКачинЂукамбаКавиКабардијÑкиТјапмакондезеленортÑки креолÑк" + - "иКороКаÑиКотанешкикојра чииникаленџинКимбундукоми-пермÑкиконканиКоÑреан" + - "ÑкиКпелеКарачај-балкарКарелијÑкиКурукхшамбалабафијаКумикКутенаиЛадинола" + - "нгиЛандаЛамбаЛезгианлакотаМонгоЛозиЛуба-лулуаЛуиÑеноЛундалуоЛушаилујиаМ" + - "адурешкиМагахиМаитилиМакаÑарМандингомаÑаиМокшаМандарМендемерумориÑјенСр" + - "едњи ирÑкимакува-меетометаМикмакМинангкабауМанчуМанипуримохокМоÑимундан" + - "гВише језикаКришкиМирандешкиМарвариЕрзијаÐеаполитанÑкинамаÐиÑки немачки" + - "ÐевариÐиаÑÐиуеанкваÑиоÐогаиСтари норÑкиÐ’коСеверни ÑотонуерКлаÑични нев" + - "ариЊамвезинјанколеЊороÐзимаОÑагеОтоманÑки турÑкиПангаÑинÑкиПахлавиПампа" + - "нгаПапиаментоПалауанÑкиСтароперÑијÑкиФеничанÑкиПонпејÑкиСтаропрованÑалÑ" + - "кик’ичеРађаÑтаниРапануиРаротонганромбоРоманиÐроманијÑкируаСандавеЈакутС" + - "амаританÑки арамејÑкиÑамбуруСаÑакСанталиÑангуСицилијанÑкиШкотÑкиÑенаСел" + - "капкојраборо ÑениСтароирÑкиташелхитШанСидамојужни Ñамилуле Ñамиинари Ñа" + - "миÑколт ÑамиСонинкеСоџијенÑкиСрананÑки тонгоСерерСукумаСуÑуСумерÑкиКомо" + - "Ñ€Ñкиконго ÑвахилиКлаÑични ÑиријÑкиСиријÑкиТимнетеÑоТереноТетумТигреТивТ" + - "окелауКлингонÑкиТлингитТамашекЊаÑа тонгаТок ПиÑинТÑимшианТумбукаТувалут" + - "аÑавакТувинијÑкицентралноатлаÑки тамазигтУдмуртУгаритÑкиУмбундуРутваиВо" + - "Ñ‚ÑкивунџоВаламоВарајВашоКалмикÑогаЈаоЈапешкиКантонÑкиЗапотечкиБлиÑимбол" + - "иЗенагаÑтандардни мароканÑки тамазигтЗунибез лингвиÑтичког ÑадржајаЗаза" + - "модеран Ñтандардни арапÑкишвајцарÑки виÑоки немачкифламанÑкиБразилÑки п" + - "ортугалÑкиИберијÑки португалÑкимолдавÑкиСрпÑкохрватÑки" - -// Size: 1230 bytes, 603 elements -var srLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000e, 0x001c, 0x0030, 0x0040, 0x0048, 0x0058, 0x0072, - 0x0080, 0x008e, 0x009c, 0x00a8, 0x00c2, 0x00d4, 0x00e6, 0x00f6, - 0x0104, 0x0112, 0x0124, 0x0138, 0x014a, 0x015a, 0x016e, 0x017e, - 0x018a, 0x01a0, 0x01a6, 0x01b0, 0x01cc, 0x01da, 0x01e6, 0x01f2, - 0x0200, 0x0214, 0x021e, 0x0224, 0x022e, 0x023e, 0x0250, 0x025e, - 0x026e, 0x0280, 0x0292, 0x029c, 0x02a8, 0x02b8, 0x02c4, 0x02d6, - 0x02f7, 0x0301, 0x031c, 0x0330, 0x033e, 0x034e, 0x0358, 0x0362, - 0x0374, 0x037e, 0x038f, 0x039f, 0x03ad, 0x03bd, 0x03cf, 0x03db, - // Entry 40 - 7F - 0x03f1, 0x0409, 0x041f, 0x0427, 0x0438, 0x0446, 0x044c, 0x045e, - 0x0474, 0x0486, 0x0496, 0x04a6, 0x04b8, 0x04c2, 0x04ce, 0x04dc, - 0x04ea, 0x04fc, 0x050a, 0x0516, 0x0526, 0x0532, 0x0544, 0x0552, - 0x055a, 0x056e, 0x057e, 0x058e, 0x05a6, 0x05b0, 0x05c2, 0x05d0, - 0x05dc, 0x05ee, 0x0605, 0x0615, 0x0625, 0x0637, 0x0645, 0x0659, - 0x066b, 0x067d, 0x0689, 0x0699, 0x06a9, 0x06bb, 0x06c5, 0x06e2, - 0x06f2, 0x06fe, 0x0710, 0x072f, 0x074c, 0x0765, 0x0771, 0x0779, - 0x0791, 0x079d, 0x07a7, 0x07b1, 0x07bf, 0x07cd, 0x07d5, 0x07e1, - // Entry 80 - BF - 0x07f3, 0x0809, 0x0813, 0x082c, 0x0836, 0x0846, 0x0850, 0x0866, - 0x0876, 0x088a, 0x0894, 0x08ab, 0x08b5, 0x08c7, 0x08d7, 0x08eb, - 0x08fd, 0x0905, 0x0915, 0x0925, 0x0931, 0x093b, 0x0947, 0x0957, - 0x0965, 0x0973, 0x0983, 0x098f, 0x0999, 0x09ad, 0x09bb, 0x09cf, - 0x09db, 0x09e5, 0x09f1, 0x09fd, 0x0a0d, 0x0a21, 0x0a31, 0x0a45, - 0x0a4d, 0x0a5b, 0x0a65, 0x0a7b, 0x0a89, 0x0a93, 0x0a9d, 0x0aa5, - 0x0aaf, 0x0abb, 0x0ac5, 0x0ad3, 0x0adb, 0x0aeb, 0x0af5, 0x0b0b, - 0x0b1d, 0x0b1d, 0x0b2d, 0x0b35, 0x0b3d, 0x0b4f, 0x0b4f, 0x0b57, - // Entry C0 - FF - 0x0b57, 0x0b6c, 0x0b86, 0x0b92, 0x0ba2, 0x0bae, 0x0bae, 0x0bbc, - 0x0bbc, 0x0bc8, 0x0bc8, 0x0bc8, 0x0bce, 0x0bce, 0x0be2, 0x0be2, - 0x0bee, 0x0bee, 0x0bfa, 0x0c12, 0x0c12, 0x0c1a, 0x0c1a, 0x0c1a, - 0x0c1a, 0x0c22, 0x0c2c, 0x0c2c, 0x0c34, 0x0c34, 0x0c34, 0x0c42, - 0x0c4c, 0x0c54, 0x0c54, 0x0c54, 0x0c60, 0x0c60, 0x0c60, 0x0c68, - 0x0c68, 0x0c70, 0x0c70, 0x0c7c, 0x0c94, 0x0c94, 0x0c9c, 0x0c9c, - 0x0ca4, 0x0cb4, 0x0cb4, 0x0cc4, 0x0cd2, 0x0cda, 0x0ce4, 0x0cf2, - 0x0d00, 0x0d08, 0x0d18, 0x0d2a, 0x0d40, 0x0d4c, 0x0d5c, 0x0d77, - // Entry 100 - 13F - 0x0d85, 0x0d85, 0x0da6, 0x0dbe, 0x0dca, 0x0dd6, 0x0de0, 0x0dee, - 0x0dfc, 0x0e08, 0x0e12, 0x0e1c, 0x0e26, 0x0e49, 0x0e49, 0x0e53, - 0x0e72, 0x0e83, 0x0e8b, 0x0e8b, 0x0e93, 0x0ea1, 0x0ea1, 0x0ebd, - 0x0ec9, 0x0edb, 0x0ef8, 0x0ef8, 0x0f04, 0x0f04, 0x0f0c, 0x0f20, - 0x0f20, 0x0f26, 0x0f26, 0x0f45, 0x0f61, 0x0f61, 0x0f82, 0x0fa3, - 0x0fb7, 0x0fbb, 0x0fc7, 0x0fc7, 0x0fcf, 0x0fd9, 0x0fd9, 0x0fdf, - 0x0ff3, 0x0ff3, 0x101b, 0x1033, 0x1033, 0x103d, 0x104f, 0x105b, - 0x1065, 0x1079, 0x109c, 0x109c, 0x109c, 0x10a4, 0x10b3, 0x10bd, - // Entry 140 - 17F - 0x10bd, 0x10cd, 0x10cd, 0x10e1, 0x10ed, 0x10f7, 0x111c, 0x111c, - 0x1124, 0x112c, 0x112c, 0x1136, 0x1146, 0x1146, 0x1146, 0x1152, - 0x115e, 0x116a, 0x1187, 0x11a0, 0x11a0, 0x11b9, 0x11c5, 0x11cf, - 0x11d3, 0x11dd, 0x11e5, 0x11fb, 0x11fb, 0x1203, 0x1211, 0x1238, - 0x1238, 0x1240, 0x1240, 0x1248, 0x125a, 0x126f, 0x126f, 0x126f, - 0x126f, 0x127f, 0x128f, 0x12a6, 0x12b4, 0x12c8, 0x12d2, 0x12ed, - 0x12ed, 0x12ed, 0x1301, 0x130d, 0x131b, 0x1327, 0x1327, 0x1331, - 0x133f, 0x134b, 0x1355, 0x135f, 0x1369, 0x1377, 0x1377, 0x1377, - // Entry 180 - 1BF - 0x1377, 0x1383, 0x1383, 0x138d, 0x1395, 0x1395, 0x13a8, 0x13b6, - 0x13c0, 0x13c6, 0x13d0, 0x13da, 0x13da, 0x13da, 0x13ec, 0x13ec, - 0x13f8, 0x1406, 0x1414, 0x1424, 0x142e, 0x142e, 0x1438, 0x1444, - 0x144e, 0x1456, 0x1466, 0x147d, 0x1494, 0x149c, 0x14a8, 0x14be, - 0x14c8, 0x14d8, 0x14e2, 0x14ea, 0x14ea, 0x14f8, 0x150d, 0x1519, - 0x152d, 0x153b, 0x153b, 0x153b, 0x1547, 0x1547, 0x1547, 0x1561, - 0x1569, 0x1582, 0x158e, 0x1596, 0x15a2, 0x15a2, 0x15ae, 0x15ae, - 0x15b8, 0x15cf, 0x15cf, 0x15d8, 0x15ef, 0x15f7, 0x1614, 0x1622, - // Entry 1C0 - 1FF - 0x1632, 0x163a, 0x1644, 0x164e, 0x166d, 0x1683, 0x1691, 0x16a1, - 0x16b5, 0x16c9, 0x16c9, 0x16c9, 0x16c9, 0x16e5, 0x16e5, 0x16f9, - 0x16f9, 0x16f9, 0x170b, 0x170b, 0x172d, 0x1738, 0x1738, 0x174a, - 0x1758, 0x176c, 0x176c, 0x176c, 0x1776, 0x1782, 0x1782, 0x1782, - 0x1782, 0x1798, 0x179e, 0x17ac, 0x17b6, 0x17e1, 0x17ef, 0x17f9, - 0x1807, 0x1807, 0x1807, 0x1811, 0x1829, 0x1837, 0x1837, 0x1837, - 0x183f, 0x183f, 0x184b, 0x1866, 0x187a, 0x187a, 0x188a, 0x1890, - 0x1890, 0x189c, 0x189c, 0x189c, 0x18af, 0x18c0, 0x18d3, 0x18e6, - // Entry 200 - 23F - 0x18f4, 0x1908, 0x1925, 0x192f, 0x192f, 0x192f, 0x193b, 0x1943, - 0x1953, 0x1963, 0x197c, 0x199d, 0x19ad, 0x19ad, 0x19ad, 0x19b7, - 0x19bf, 0x19cb, 0x19d5, 0x19df, 0x19e5, 0x19f3, 0x19f3, 0x1a07, - 0x1a15, 0x1a15, 0x1a23, 0x1a36, 0x1a47, 0x1a47, 0x1a47, 0x1a47, - 0x1a57, 0x1a57, 0x1a65, 0x1a71, 0x1a7f, 0x1a93, 0x1ac4, 0x1ad0, - 0x1ae2, 0x1af0, 0x1af6, 0x1afc, 0x1afc, 0x1afc, 0x1afc, 0x1afc, - 0x1b08, 0x1b08, 0x1b12, 0x1b12, 0x1b1e, 0x1b28, 0x1b30, 0x1b30, - 0x1b30, 0x1b3c, 0x1b3c, 0x1b44, 0x1b4a, 0x1b58, 0x1b58, 0x1b58, - // Entry 240 - 27F - 0x1b58, 0x1b6a, 0x1b7c, 0x1b90, 0x1b90, 0x1b9c, 0x1bd6, 0x1bde, - 0x1c10, 0x1c18, 0x1c4a, 0x1c4a, 0x1c7a, 0x1c7a, 0x1c7a, 0x1c7a, - 0x1c7a, 0x1c7a, 0x1c7a, 0x1c7a, 0x1c7a, 0x1c7a, 0x1c8c, 0x1cb5, - 0x1cde, 0x1cf0, 0x1d0c, -} - -// Size: 3897 bytes -var srLatnLangStr string = "" + - "AfarskiabhaskiAvestanskiafrikansakanamharskiAragonežanskiarapskiasamskiA" + - "varskiAjmaraazerbejdžanskibaÅ¡kirskibeloruskibugarskiBislamabambarabengal" + - "skitibetanskibretonskibosanskikatalonskiÄŒeÄenskiÄŒamorokorzikanskiKriÄeÅ¡k" + - "iStaroslovenskiÄŒuvaÅ¡kivelÅ¡kidanskinemaÄkiDivehijskidžongaevegrÄkienglesk" + - "iesperantoÅ¡panskiestonskibaskijskipersijskiFulahfinskifidžijskifarskifra" + - "ncuskizapadni frizijskiirskiÅ kotski GalskigalicijskigvaranigudžaratiMank" + - "shausahebrejskihindiHiri MotuhrvatskiHaitskimaÄ‘arskijermenskiHereroInter" + - "lingvaindonežanskiMeÄ‘ujeziÄkiigboseÄuan jiUnupiakIdoislandskiitalijanski" + - "inuktitutjapanskijavanskigruzijskiKongokikujuKuanjamakazaÅ¡kikalalisutkme" + - "rskikanadakorejskiKanurikaÅ¡mirskikurdskiKomikornvolskikirgiskilatinskilu" + - "ksemburÅ¡kigandaLimburgiÅ¡lingalalaoÅ¡kilitvanskiluba-katangaletonskimalgaÅ¡" + - "kiMarÅ¡alskimaorskimakedonskimalajalammongolskimaratimalajskimalteÅ¡kiburm" + - "anskiNauruseverni ndebelenepalskiNdongaholandskinorveÅ¡ki ninorsknorveÅ¡ki" + - " bokmalJužni ndebeleNavahoNjanjaProvansalskiOjibvaoromoorijaOsetskipandž" + - "abiPalipoljskipaÅ¡tunskiportugalskikeÄuareto-romanskirundirumunskiruskiki" + - "njaruandasanskritSardinjaskisindiseverni samisangosinhalskislovaÄkislove" + - "naÄkiSamoanskiÅ¡onasomalskialbanskisrpskiSvatiSesotosudanskiÅ¡vedskisvahil" + - "itamilskiteluguTaÄ‘iktajlandskitigrinjaturkmenskiTsvanatongaturskiTsongat" + - "atarskiTahićanskiujgurskiukrajinskiurduuzbeÄkiVendavijetnamskiVolapukVal" + - "unvolofkosaJidiÅ¡jorubaŽuangkineskizuluAÄineskiAkoliAdangmejskiAdigejskiA" + - "frihiliagemAinuAkadijskiAljutJužni altaiStaroengleskiAngikaArmajskimapuÄ" + - "eArapahoAravakasuAsturijskiAvadhiBaluÄiBalinezijskiBasaBejabembabenaBojp" + - "uriBikolBiniSisikaBrajbodoBuriatBuginežanskiBlinKadoKaripskiAtsamskiCebu" + - "anoÄigaÄŒibÄaÄŒagataiÄŒukeskiMariÄŒinukskiÄŒoktavskiÄŒipvijanskiÄerokiÄŒejenski" + - "sorani kurdskiKoptskiKrimeanski turskiKaÅ¡ubijanskiDakotaDargvataitaDelav" + - "erSlavskiDogribDinkazarmaDogridonji lužiÄkosrpskidualaSrednji holandskid" + - "žola fonjiÄulaembuEfikskiStaroegipatskiEkajukElamitskiSrednji engleskiE" + - "vondoFangfilipinskiFonSrednji francuskiStarofrancuskiSeverno-frizijskiIs" + - "toÄni frizijskiFriulijskiGagagauzGajoGbajaDžizGilbertÅ¡kiSrednji visoki n" + - "emaÄkiStaronemaÄkiGondiGorontaloGotskiGreboStarogrÄkiÅ vajcarski nemaÄkig" + - "usiGviÄ’inHaidahavajskiHiligajnonHititeHmonggornji lužiÄkosrpskiHupaIban" + - "IlokoIngviÅ¡kiLojbanngombamaÄameJudeo-persijskiJudeo-arapskiKara-kalpaÅ¡ki" + - "kabileKaÄinÄukambaKaviKabardijskiTjapmakondezelenortski kreolskiKoroKasi" + - "KotaneÅ¡kikojra ÄiinikalendžinKimbundukomi-permskikonkaniKosreanskiKpeleK" + - "araÄaj-balkarKarelijskiKurukhÅ¡ambalabafijaKumikKutenaiLadinolangiLandaLa" + - "mbaLezgianlakotaMongoLoziLuba-luluaLuisenoLundaluoLuÅ¡ailujiaMadureÅ¡kiMag" + - "ahiMaitiliMakasarMandingomasaiMokÅ¡aMandarMendemerumorisjenSrednji irskim" + - "akuva-meetometaMikmakMinangkabauManÄuManipurimohokMosimundangViÅ¡e jezika" + - "KriÅ¡kiMirandeÅ¡kiMarvariErzijaNeapolitanskinamaNiski nemaÄkiNevariNiasNiu" + - "eankvasioNogaiStari norskiN’koSeverni sotonuerKlasiÄni nevariNjamvezinja" + - "nkoleNjoroNzimaOsageOtomanski turskiPangasinskiPahlaviPampangaPapiamento" + - "PalauanskiStaropersijskiFeniÄanskiPonpejskiStaroprovansalskik’iÄeRaÄ‘asta" + - "niRapanuiRarotonganromboRomaniAromanijskiruaSandaveJakutSamaritanski ara" + - "mejskisamburuSasakSantalisanguSicilijanskiÅ kotskisenaSelkapkojraboro sen" + - "iStaroirskitaÅ¡elhitÅ anSidamojužni samilule samiinari samiskolt samiSonin" + - "keSodžijenskiSrananski tongoSererSukumaSusuSumerskiKomorskikongo svahili" + - "KlasiÄni sirijskiSirijskiTimnetesoTerenoTetumTigreTivTokelauKlingonskiTl" + - "ingitTamaÅ¡ekNjasa tongaTok PisinTsimÅ¡ianTumbukaTuvalutasavakTuvinijskice" + - "ntralnoatlaski tamazigtUdmurtUgaritskiUmbunduRutvaiVotskivundžoValamoVar" + - "ajVaÅ¡oKalmiksogaJaoJapeÅ¡kiKantonskiZapoteÄkiBlisimboliZenagastandardni m" + - "arokanski tamazigtZunibez lingvistiÄkog sadržajaZazamoderan standardni a" + - "rapskiÅ¡vajcarski visoki nemaÄkiflamanskiBrazilski portugalskiIberijski p" + - "ortugalskimoldavskiSrpskohrvatski" - -// Size: 1230 bytes, 603 elements -var srLatnLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0007, 0x000e, 0x0018, 0x0020, 0x0024, 0x002c, 0x003a, - 0x0041, 0x0048, 0x004f, 0x0055, 0x0064, 0x006e, 0x0077, 0x007f, - 0x0086, 0x008d, 0x0096, 0x00a0, 0x00a9, 0x00b1, 0x00bb, 0x00c5, - 0x00cc, 0x00d7, 0x00da, 0x00e1, 0x00ef, 0x00f8, 0x00ff, 0x0105, - 0x010d, 0x0117, 0x011e, 0x0121, 0x0127, 0x012f, 0x0138, 0x0140, - 0x0148, 0x0151, 0x015a, 0x015f, 0x0165, 0x016f, 0x0175, 0x017e, - 0x018f, 0x0194, 0x01a3, 0x01ad, 0x01b4, 0x01be, 0x01c3, 0x01c8, - 0x01d1, 0x01d6, 0x01df, 0x01e7, 0x01ee, 0x01f7, 0x0200, 0x0206, - // Entry 40 - 7F - 0x0211, 0x021e, 0x022b, 0x022f, 0x0239, 0x0240, 0x0243, 0x024c, - 0x0257, 0x0260, 0x0268, 0x0270, 0x0279, 0x027e, 0x0284, 0x028c, - 0x0294, 0x029d, 0x02a4, 0x02aa, 0x02b2, 0x02b8, 0x02c2, 0x02c9, - 0x02cd, 0x02d7, 0x02df, 0x02e7, 0x02f4, 0x02f9, 0x0303, 0x030a, - 0x0311, 0x031a, 0x0326, 0x032e, 0x0337, 0x0341, 0x0348, 0x0352, - 0x035b, 0x0364, 0x036a, 0x0372, 0x037b, 0x0384, 0x0389, 0x0398, - 0x03a0, 0x03a6, 0x03af, 0x03c0, 0x03d0, 0x03de, 0x03e4, 0x03ea, - 0x03f6, 0x03fc, 0x0401, 0x0406, 0x040d, 0x0416, 0x041a, 0x0421, - // Entry 80 - BF - 0x042b, 0x0436, 0x043c, 0x0449, 0x044e, 0x0456, 0x045b, 0x0466, - 0x046e, 0x0479, 0x047e, 0x048a, 0x048f, 0x0498, 0x04a1, 0x04ac, - 0x04b5, 0x04ba, 0x04c2, 0x04ca, 0x04d0, 0x04d5, 0x04db, 0x04e3, - 0x04eb, 0x04f2, 0x04fa, 0x0500, 0x0506, 0x0510, 0x0518, 0x0522, - 0x0528, 0x052d, 0x0533, 0x0539, 0x0541, 0x054c, 0x0554, 0x055e, - 0x0562, 0x056a, 0x056f, 0x057a, 0x0581, 0x0586, 0x058b, 0x058f, - 0x0595, 0x059b, 0x05a1, 0x05a8, 0x05ac, 0x05b5, 0x05ba, 0x05c5, - 0x05ce, 0x05ce, 0x05d6, 0x05da, 0x05de, 0x05e7, 0x05e7, 0x05ec, - // Entry C0 - FF - 0x05ec, 0x05f8, 0x0605, 0x060b, 0x0613, 0x061a, 0x061a, 0x0621, - 0x0621, 0x0627, 0x0627, 0x0627, 0x062a, 0x062a, 0x0634, 0x0634, - 0x063a, 0x063a, 0x0641, 0x064d, 0x064d, 0x0651, 0x0651, 0x0651, - 0x0651, 0x0655, 0x065a, 0x065a, 0x065e, 0x065e, 0x065e, 0x0665, - 0x066a, 0x066e, 0x066e, 0x066e, 0x0674, 0x0674, 0x0674, 0x0678, - 0x0678, 0x067c, 0x067c, 0x0682, 0x068f, 0x068f, 0x0693, 0x0693, - 0x0697, 0x069f, 0x069f, 0x06a7, 0x06ae, 0x06b3, 0x06ba, 0x06c2, - 0x06ca, 0x06ce, 0x06d7, 0x06e1, 0x06ed, 0x06f4, 0x06fd, 0x070b, - // Entry 100 - 13F - 0x0712, 0x0712, 0x0723, 0x0730, 0x0736, 0x073c, 0x0741, 0x0748, - 0x074f, 0x0755, 0x075a, 0x075f, 0x0764, 0x0779, 0x0779, 0x077e, - 0x078f, 0x079b, 0x07a0, 0x07a0, 0x07a4, 0x07ab, 0x07ab, 0x07b9, - 0x07bf, 0x07c8, 0x07d8, 0x07d8, 0x07de, 0x07de, 0x07e2, 0x07ec, - 0x07ec, 0x07ef, 0x07ef, 0x0800, 0x080e, 0x080e, 0x081f, 0x0831, - 0x083b, 0x083d, 0x0843, 0x0843, 0x0847, 0x084c, 0x084c, 0x0851, - 0x085c, 0x085c, 0x0873, 0x0880, 0x0880, 0x0885, 0x088e, 0x0894, - 0x0899, 0x08a4, 0x08b8, 0x08b8, 0x08b8, 0x08bc, 0x08c6, 0x08cb, - // Entry 140 - 17F - 0x08cb, 0x08d3, 0x08d3, 0x08dd, 0x08e3, 0x08e8, 0x08fe, 0x08fe, - 0x0902, 0x0906, 0x0906, 0x090b, 0x0914, 0x0914, 0x0914, 0x091a, - 0x0920, 0x0927, 0x0936, 0x0943, 0x0943, 0x0951, 0x0957, 0x095d, - 0x0960, 0x0965, 0x0969, 0x0974, 0x0974, 0x0978, 0x097f, 0x0993, - 0x0993, 0x0997, 0x0997, 0x099b, 0x09a5, 0x09b1, 0x09b1, 0x09b1, - 0x09b1, 0x09bb, 0x09c3, 0x09cf, 0x09d6, 0x09e0, 0x09e5, 0x09f4, - 0x09f4, 0x09f4, 0x09fe, 0x0a04, 0x0a0c, 0x0a12, 0x0a12, 0x0a17, - 0x0a1e, 0x0a24, 0x0a29, 0x0a2e, 0x0a33, 0x0a3a, 0x0a3a, 0x0a3a, - // Entry 180 - 1BF - 0x0a3a, 0x0a40, 0x0a40, 0x0a45, 0x0a49, 0x0a49, 0x0a53, 0x0a5a, - 0x0a5f, 0x0a62, 0x0a68, 0x0a6d, 0x0a6d, 0x0a6d, 0x0a77, 0x0a77, - 0x0a7d, 0x0a84, 0x0a8b, 0x0a93, 0x0a98, 0x0a98, 0x0a9e, 0x0aa4, - 0x0aa9, 0x0aad, 0x0ab5, 0x0ac2, 0x0ace, 0x0ad2, 0x0ad8, 0x0ae3, - 0x0ae9, 0x0af1, 0x0af6, 0x0afa, 0x0afa, 0x0b01, 0x0b0d, 0x0b14, - 0x0b1f, 0x0b26, 0x0b26, 0x0b26, 0x0b2c, 0x0b2c, 0x0b2c, 0x0b39, - 0x0b3d, 0x0b4b, 0x0b51, 0x0b55, 0x0b5b, 0x0b5b, 0x0b61, 0x0b61, - 0x0b66, 0x0b72, 0x0b72, 0x0b78, 0x0b84, 0x0b88, 0x0b98, 0x0ba0, - // Entry 1C0 - 1FF - 0x0ba8, 0x0bad, 0x0bb2, 0x0bb7, 0x0bc7, 0x0bd2, 0x0bd9, 0x0be1, - 0x0beb, 0x0bf5, 0x0bf5, 0x0bf5, 0x0bf5, 0x0c03, 0x0c03, 0x0c0e, - 0x0c0e, 0x0c0e, 0x0c17, 0x0c17, 0x0c28, 0x0c30, 0x0c30, 0x0c3a, - 0x0c41, 0x0c4b, 0x0c4b, 0x0c4b, 0x0c50, 0x0c56, 0x0c56, 0x0c56, - 0x0c56, 0x0c61, 0x0c64, 0x0c6b, 0x0c70, 0x0c86, 0x0c8d, 0x0c92, - 0x0c99, 0x0c99, 0x0c99, 0x0c9e, 0x0caa, 0x0cb2, 0x0cb2, 0x0cb2, - 0x0cb6, 0x0cb6, 0x0cbc, 0x0cca, 0x0cd4, 0x0cd4, 0x0cdd, 0x0ce1, - 0x0ce1, 0x0ce7, 0x0ce7, 0x0ce7, 0x0cf2, 0x0cfb, 0x0d05, 0x0d0f, - // Entry 200 - 23F - 0x0d16, 0x0d22, 0x0d31, 0x0d36, 0x0d36, 0x0d36, 0x0d3c, 0x0d40, - 0x0d48, 0x0d50, 0x0d5d, 0x0d6f, 0x0d77, 0x0d77, 0x0d77, 0x0d7c, - 0x0d80, 0x0d86, 0x0d8b, 0x0d90, 0x0d93, 0x0d9a, 0x0d9a, 0x0da4, - 0x0dab, 0x0dab, 0x0db3, 0x0dbe, 0x0dc7, 0x0dc7, 0x0dc7, 0x0dc7, - 0x0dd0, 0x0dd0, 0x0dd7, 0x0ddd, 0x0de4, 0x0dee, 0x0e07, 0x0e0d, - 0x0e16, 0x0e1d, 0x0e20, 0x0e23, 0x0e23, 0x0e23, 0x0e23, 0x0e23, - 0x0e29, 0x0e29, 0x0e30, 0x0e30, 0x0e36, 0x0e3b, 0x0e40, 0x0e40, - 0x0e40, 0x0e46, 0x0e46, 0x0e4a, 0x0e4d, 0x0e55, 0x0e55, 0x0e55, - // Entry 240 - 27F - 0x0e55, 0x0e5e, 0x0e68, 0x0e72, 0x0e72, 0x0e78, 0x0e96, 0x0e9a, - 0x0eb6, 0x0eba, 0x0ed4, 0x0ed4, 0x0eef, 0x0eef, 0x0eef, 0x0eef, - 0x0eef, 0x0eef, 0x0eef, 0x0eef, 0x0eef, 0x0eef, 0x0ef8, 0x0f0d, - 0x0f22, 0x0f2b, 0x0f39, -} - -// Size: 5136 bytes -var svLangStr string = "" + - "afarabchaziskaavestiskaafrikaansakanamhariskaaragonesiskaarabiskaassames" + - "iskaavariskaaymaraazerbajdzjanskabasjkiriskavitryskabulgariskabislamabam" + - "barabengalitibetanskabretonskabosniskakatalanskatjetjenskachamorrokorsik" + - "anskacreetjeckiskakyrkslaviskatjuvasjiskawalesiskadanskatyskadivehibhuta" + - "nesiskaewegrekiskaengelskaesperantospanskaestniskabaskiskapersiskafulani" + - "finskafijianskafäröiskafranskavästfrisiskairiskaskotsk gäliskagaliciskag" + - "uaranígujaratimanxhausahebreiskahindihirimotukroatiskahaitiskaungerskaar" + - "meniskahererointerlinguaindonesiskainterlingueigboszezuan iinupiakidoisl" + - "ändskaitalienskainuktitutjapanskajavanesiskageorgiskakikongokikuyukuany" + - "amakazakiskagrönländskakambodjanskakannadakoreanskakanurikashmiriskakurd" + - "iskakomekorniskakirgisiskalatinluxemburgiskalugandalimburgiskalingalalao" + - "tiskalitauiskaluba-katangalettiskamalagassiskamarshalliskamaorimakedonsk" + - "amalayalammongoliskamarathimalajiskamaltesiskaburmesiskanaurunordndebele" + - "nepalesiskandonganederländskanynorskanorskt bokmÃ¥lsydndebelenavahonyanja" + - "occitanskaodjibwaoromooriyaossetiskapunjabipalipolskaafghanskaportugisis" + - "kaquechuarätoromanskarundirumänskaryskakinjarwandasanskritsardiskasindhi" + - "nordsamiskasangosingalesiskaslovakiskaslovenskasamoanskashonasomaliskaal" + - "banskaserbiskaswatisydsothosundanesiskasvenskaswahilitamiltelugiskatadzj" + - "ikiskathailändskatigrinjaturkmeniskatswanatonganskaturkiskatsongatataris" + - "katahitiskauiguriskaukrainskaurduuzbekiskavendavietnamesiskavolapükvallo" + - "nskawolofxhosajiddischyorubazhuangkinesiskazuluacehnesiskaacholiadangmea" + - "dygeiskatunisisk arabiskaafrihiliaghemainuakkadiskaaleutiskagegiskasydal" + - "taiskafornengelskaangikaarameiskaaraukanskaaraoniskaarapahoalgerisk arab" + - "iskaarawakiskamarockansk arabiskaegyptisk arabiskaasuamerikanskt teckens" + - "prÃ¥kasturiskakotavaawadhisydazerbadjanskabaluchiskabalinesiskabayerskaba" + - "sabamunskaghomalabejabembabetawiskabenabafutbagadabhojpuribikolbinibanja" + - "riskabamekonsiksikabishnupriyabakhtiaribrajbrahuiskabodobakossiburjätisk" + - "abuginesiskabouloublinbagangtecaddokaribiskacayugaatsamcebuanochigachibc" + - "hachagataichuukesiskamariskachinookchoctawchipewyancherokesiskacheyennes" + - "oranisk kurdiskakoptiskakrimtatariskakasjubiskadakotadarginskataitadelaw" + - "areslavejdogribdinkazarmadogrilÃ¥gsorbiskadualamedelnederländskajola-fony" + - "idyuladazagaembuefikemiliskafornegyptiskaekajukelamitiskamedelengelskaew" + - "ondofangfilippinskameänkielifonsprÃ¥ketcajun-franskamedelfranskafornfrans" + - "kafrankoprovensalskanordfrisiskaöstfrisiskafriulianskagãgagauziskagangay" + - "ogbayazoroastrisk darietiopiskagilbertiskagilakimedelhögtyskafornhögtysk" + - "aGoa-konkanigondigorontalogotiskagreboforngrekiskaschweizertyskagusiigwi" + - "chinhaidahakkahawaiiskaFiji-hindihiligaynonhettitiskahmongsprÃ¥khögsorbis" + - "kaxianghupaibanskaibibioilokoingusjiskaingriskajamaikansk engelsk kreoll" + - "ojbanngombakimashamijudisk persiskajudisk arabiskajylländskakarakalpakis" + - "kakabyliskakachinjjukambakawikabardinskakanembutyapmakondekapverdiskakor" + - "okhasikhotanesiskaTimbuktu-songhoykhowarmkakokalenjinkimbundukomi-permja" + - "kiskakonkanikosreanskakpellekarachay-balkarkarelskakurukhkisambaabafiakö" + - "lniskakumykiskakutenajladinolangilahndalambalezghienliguriskalivoniskala" + - "kotalombardiskamongolozilettgalliskaluba-lulualuiseñolundaluolushailuhya" + - "maduresiskamafamagahimaithilimakasarmandemassajiskamabamoksjamandarmende" + - "merumauritansk kreolmedeliriskamakhuwa-meettometa’mi’kmaqminangkabaumanc" + - "huriskamanipurimohawkmossivästmariskamundangflera sprÃ¥kmuskogeemirandesi" + - "skamarwarimyeneerjyamazanderanimin nannapolitanskanamalÃ¥gtyskanewariskan" + - "iasniueanskakwasiobamileké-ngiemboonnogaifornnordiskan-kÃ¥nordsothonuerkl" + - "assisk newariskanyamwezinyankolenyoronzimaosageottomanskapangasinanmedel" + - "persiskapampangapapiamentopalaupikardiskaPennsylvaniatyskamennonitisk lÃ¥" + - "gtyskafornpersiskaPfalz-tyskafeniciskapiemontesiskapontiskaponapefornpre" + - "ussiskafornprovensalskakʼicheʼChimborazo-höglandskichwarajasthanirapanui" + - "rarotonganskaromagnolriffianskaromboromanirotumänskarusynrovianskaarumän" + - "skarwasandawejakutiskasamaritanskasamburusasaksantalisaurashtrangambaysa" + - "ngusicilianskaskotskasassaresisk sardiskasenecasenaselkupGao-songhayforn" + - "iriskasamogitiskatachelhitshanChad-arabiskasidamolÃ¥gsilesiskasydsamiskal" + - "ulesamiskaenaresamiskaskoltsamiskasoninkesogdiskasranan tongoserersahosa" + - "terfrisiskasukumasususumeriskashimaoréKongo-swahiliklassisk syriskasyris" + - "kasilesiskatulutemnetesoterenotetumtigrétivitokelauiskaklingonskatlingit" + - "talyshtamasheknyasatonganskatok pisintarokotsakodiskatsimshiantumbukatuv" + - "aluanskatasawaqtuviniskacentralmarockansk tamazightudmurtiskaugaritiskau" + - "mbundurotvajvenetianskavepsvästflamländskaMain-frankiskavotiskavõruvunjo" + - "walsertyskawalamowaraywashowukalmuckiskalusogakiyaojapetiskayangbenbamil" + - "eké-jembakantonesiskazapotekblissymbolerzeeländskazenagamarockansk stand" + - "ard-tamazightzuniinget sprÃ¥kligt innehÃ¥llzazaiskamodern standardarabiska" + - "österrikisk tyskaschweizisk högtyskaaustralisk engelskakanadensisk enge" + - "lskabrittisk engelskaamerikansk engelskalatinamerikansk spanskaeuropeisk" + - " spanskamexikansk spanskakanadensisk franskaschweizisk franskaflamländsk" + - "abrasiliansk portugisiskaeuropeisk portugisiskamoldaviskaserbokroatiskaf" + - "örenklad kinesiskatraditionell kinesiska" - -// Size: 1234 bytes, 605 elements -var svLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000e, 0x0017, 0x0020, 0x0024, 0x002d, 0x0039, - 0x0041, 0x004c, 0x0054, 0x005a, 0x0069, 0x0074, 0x007c, 0x0086, - 0x008d, 0x0094, 0x009b, 0x00a5, 0x00ae, 0x00b6, 0x00c0, 0x00ca, - 0x00d2, 0x00dd, 0x00e1, 0x00ea, 0x00f6, 0x0101, 0x010a, 0x0110, - 0x0115, 0x011b, 0x0127, 0x012a, 0x0132, 0x013a, 0x0143, 0x014a, - 0x0152, 0x015a, 0x0162, 0x0168, 0x016e, 0x0177, 0x0181, 0x0188, - 0x0195, 0x019b, 0x01aa, 0x01b3, 0x01bb, 0x01c3, 0x01c7, 0x01cc, - 0x01d5, 0x01da, 0x01e2, 0x01eb, 0x01f3, 0x01fb, 0x0204, 0x020a, - // Entry 40 - 7F - 0x0215, 0x0220, 0x022b, 0x022f, 0x0238, 0x023f, 0x0242, 0x024c, - 0x0256, 0x025f, 0x0267, 0x0272, 0x027b, 0x0282, 0x0288, 0x0290, - 0x0299, 0x02a6, 0x02b2, 0x02b9, 0x02c2, 0x02c8, 0x02d3, 0x02db, - 0x02df, 0x02e7, 0x02f1, 0x02f6, 0x0303, 0x030a, 0x0315, 0x031c, - 0x0324, 0x032d, 0x0339, 0x0341, 0x034d, 0x0359, 0x035e, 0x0368, - 0x0371, 0x037b, 0x0382, 0x038b, 0x0395, 0x039f, 0x03a4, 0x03af, - 0x03ba, 0x03c0, 0x03cd, 0x03d5, 0x03e3, 0x03ed, 0x03f3, 0x03f9, - 0x0403, 0x040a, 0x040f, 0x0414, 0x041d, 0x0424, 0x0428, 0x042e, - // Entry 80 - BF - 0x0437, 0x0443, 0x044a, 0x0457, 0x045c, 0x0465, 0x046a, 0x0475, - 0x047d, 0x0485, 0x048b, 0x0496, 0x049b, 0x04a7, 0x04b1, 0x04ba, - 0x04c3, 0x04c8, 0x04d1, 0x04d9, 0x04e1, 0x04e6, 0x04ee, 0x04fa, - 0x0501, 0x0508, 0x050d, 0x0516, 0x0521, 0x052d, 0x0535, 0x0540, - 0x0546, 0x054f, 0x0557, 0x055d, 0x0566, 0x056f, 0x0578, 0x0581, - 0x0585, 0x058e, 0x0593, 0x05a0, 0x05a8, 0x05b1, 0x05b6, 0x05bb, - 0x05c3, 0x05c9, 0x05cf, 0x05d8, 0x05dc, 0x05e7, 0x05ed, 0x05f4, - 0x05fd, 0x060e, 0x0616, 0x061b, 0x061f, 0x0628, 0x0628, 0x0631, - // Entry C0 - FF - 0x0638, 0x0643, 0x064f, 0x0655, 0x065e, 0x0668, 0x0671, 0x0678, - 0x0689, 0x0693, 0x06a6, 0x06b7, 0x06ba, 0x06d2, 0x06db, 0x06e1, - 0x06e7, 0x06f7, 0x0701, 0x070c, 0x0714, 0x0718, 0x0720, 0x0720, - 0x0727, 0x072b, 0x0730, 0x0739, 0x073d, 0x0742, 0x0748, 0x0750, - 0x0755, 0x0759, 0x0763, 0x076a, 0x0771, 0x077c, 0x0785, 0x0789, - 0x0792, 0x0796, 0x079d, 0x07a8, 0x07b3, 0x07b9, 0x07bd, 0x07c5, - 0x07ca, 0x07d3, 0x07d9, 0x07de, 0x07e5, 0x07ea, 0x07f1, 0x07f9, - 0x0804, 0x080b, 0x0812, 0x0819, 0x0822, 0x082e, 0x0836, 0x0847, - // Entry 100 - 13F - 0x084f, 0x084f, 0x085c, 0x0866, 0x086c, 0x0875, 0x087a, 0x0882, - 0x0888, 0x088e, 0x0893, 0x0898, 0x089d, 0x08a9, 0x08a9, 0x08ae, - 0x08c0, 0x08ca, 0x08cf, 0x08d5, 0x08d9, 0x08dd, 0x08e5, 0x08f2, - 0x08f8, 0x0902, 0x090f, 0x090f, 0x0915, 0x0915, 0x0919, 0x0924, - 0x092e, 0x0939, 0x0946, 0x0952, 0x095d, 0x096f, 0x097b, 0x0987, - 0x0992, 0x0995, 0x099f, 0x09a2, 0x09a6, 0x09ab, 0x09bb, 0x09c4, - 0x09cf, 0x09d5, 0x09e3, 0x09f0, 0x09fb, 0x0a00, 0x0a09, 0x0a10, - 0x0a15, 0x0a21, 0x0a2f, 0x0a2f, 0x0a2f, 0x0a34, 0x0a3b, 0x0a40, - // Entry 140 - 17F - 0x0a45, 0x0a4e, 0x0a58, 0x0a62, 0x0a6c, 0x0a77, 0x0a83, 0x0a88, - 0x0a8c, 0x0a93, 0x0a99, 0x0a9e, 0x0aa8, 0x0ab0, 0x0ac8, 0x0ace, - 0x0ad4, 0x0add, 0x0aec, 0x0afb, 0x0b06, 0x0b14, 0x0b1d, 0x0b23, - 0x0b26, 0x0b2b, 0x0b2f, 0x0b3a, 0x0b41, 0x0b45, 0x0b4c, 0x0b57, - 0x0b57, 0x0b5b, 0x0b5b, 0x0b60, 0x0b6c, 0x0b7c, 0x0b82, 0x0b82, - 0x0b87, 0x0b8f, 0x0b97, 0x0ba7, 0x0bae, 0x0bb8, 0x0bbe, 0x0bcd, - 0x0bcd, 0x0bcd, 0x0bd5, 0x0bdb, 0x0be3, 0x0be8, 0x0bf1, 0x0bfa, - 0x0c01, 0x0c07, 0x0c0c, 0x0c12, 0x0c17, 0x0c1f, 0x0c1f, 0x0c28, - // Entry 180 - 1BF - 0x0c31, 0x0c37, 0x0c42, 0x0c47, 0x0c4b, 0x0c57, 0x0c61, 0x0c69, - 0x0c6e, 0x0c71, 0x0c77, 0x0c7c, 0x0c7c, 0x0c7c, 0x0c87, 0x0c8b, - 0x0c91, 0x0c99, 0x0ca0, 0x0ca5, 0x0caf, 0x0cb3, 0x0cb9, 0x0cbf, - 0x0cc4, 0x0cc8, 0x0cd8, 0x0ce3, 0x0cf1, 0x0cf8, 0x0d01, 0x0d0c, - 0x0d17, 0x0d1f, 0x0d25, 0x0d2a, 0x0d36, 0x0d3d, 0x0d49, 0x0d51, - 0x0d5d, 0x0d64, 0x0d64, 0x0d69, 0x0d6e, 0x0d79, 0x0d80, 0x0d8c, - 0x0d90, 0x0d99, 0x0da2, 0x0da6, 0x0daf, 0x0daf, 0x0db5, 0x0dc8, - 0x0dcd, 0x0dd9, 0x0dd9, 0x0dde, 0x0de7, 0x0deb, 0x0dfd, 0x0e05, - // Entry 1C0 - 1FF - 0x0e0d, 0x0e12, 0x0e17, 0x0e1c, 0x0e26, 0x0e30, 0x0e3d, 0x0e45, - 0x0e4f, 0x0e54, 0x0e5e, 0x0e6f, 0x0e84, 0x0e90, 0x0e9b, 0x0ea4, - 0x0eb1, 0x0eb9, 0x0ebf, 0x0ecd, 0x0edd, 0x0ee6, 0x0f00, 0x0f0a, - 0x0f11, 0x0f1e, 0x0f26, 0x0f30, 0x0f35, 0x0f3b, 0x0f46, 0x0f4b, - 0x0f54, 0x0f5e, 0x0f61, 0x0f68, 0x0f71, 0x0f7d, 0x0f84, 0x0f89, - 0x0f90, 0x0f9a, 0x0fa1, 0x0fa6, 0x0fb1, 0x0fb8, 0x0fcc, 0x0fd2, - 0x0fd6, 0x0fd6, 0x0fdc, 0x0fe7, 0x0ff1, 0x0ffc, 0x1005, 0x1009, - 0x1016, 0x101c, 0x1029, 0x1029, 0x1033, 0x103e, 0x104a, 0x1056, - // Entry 200 - 23F - 0x105d, 0x1065, 0x1071, 0x1076, 0x107a, 0x1087, 0x108d, 0x1091, - 0x109a, 0x10a3, 0x10b0, 0x10c0, 0x10c7, 0x10d0, 0x10d4, 0x10d9, - 0x10dd, 0x10e3, 0x10e8, 0x10ee, 0x10f2, 0x10fd, 0x10fd, 0x1107, - 0x110e, 0x1114, 0x111c, 0x112a, 0x1133, 0x1133, 0x1139, 0x1143, - 0x114c, 0x114c, 0x1153, 0x115e, 0x1165, 0x116e, 0x1189, 0x1193, - 0x119d, 0x11a4, 0x11a7, 0x11aa, 0x11b5, 0x11b9, 0x11ca, 0x11d8, - 0x11df, 0x11e4, 0x11e9, 0x11f4, 0x11fa, 0x11ff, 0x1204, 0x1204, - 0x1206, 0x1211, 0x1211, 0x1217, 0x121c, 0x1225, 0x122c, 0x123b, - // Entry 240 - 27F - 0x123b, 0x1247, 0x124e, 0x125a, 0x1265, 0x126b, 0x1288, 0x128c, - 0x12a6, 0x12ae, 0x12c5, 0x12d7, 0x12eb, 0x12fe, 0x1312, 0x1323, - 0x1336, 0x134d, 0x135e, 0x136f, 0x1382, 0x1394, 0x13a0, 0x13b8, - 0x13ce, 0x13d8, 0x13e6, 0x13fa, 0x1410, -} - -// Size: 2288 bytes -var swLangStr string = "" + - "KiabkhaziKiafrikanaKiakaniKiamhariKiarabuKiassamKiaimaraKiazabajaniKibas" + - "hkirKibelarusiKibulgariaKibambaraKibengaliKitibetiKibretoniKibosniaKikat" + - "alaniKikosikaniKichekiKiwelisiKidenmakiKijerumaniKidivehiKizongkhaKieweK" + - "igirikiKiingerezaKiesperantoKihispaniaKiestoniaKibasqueKiajemiKifinlandi" + - "KifijiKifaroeKifaransaKifrisia cha MagharibiKiayalandiKigaeli cha Uskoti" + - "KigalisiKiguaraniKigujaratiKimanxKihausaKiebraniaKihindiKroeshiaKihaitiK" + - "ihungariKiarmeniaKiintalinguaKiindonesiaKiigboSichuan YiKiaisilandiKiita" + - "lianoiuKijapaniKijavaKijojiaKikongoKikikuyuKikazakiKikalaallisutKikambod" + - "iaKikannadaKikoreaKikashmiriKikurdiKikomiKikorniKikirigiziKilatiniKilase" + - "mbagiKigandaKilingalaKilaosiKilithuaniaKiluba-KatangaKilatviaMalagasiKim" + - "aoriKimasedoniaKimalayalamKimongoliaKimarathiKimalesiaKimaltaKiburmaKind" + - "ebele cha KaskaziniKinepaliKiholanziKinorwe KipyaKibokmal cha NorweKinya" + - "njaKiokitaniKioromoKioriyaKiosetiaKipunjabiKipolandiKipashtoKirenoKiquec" + - "huaKiromanshiKirundiKiromaniaKirusiKinyarwandaKisanskritiKisindhiKisami " + - "cha KaskaziniKisangoKisinhalaKislovakiaKisloveniaKisamoaKishonaKisomaliK" + - "ialbaniaKiserbiaKiswatiKisotho cha KusiniKisundaKiswidiKiswahiliKitamilK" + - "iteluguKitajikiKitailandiKitigrinyaKiturukimeniKitswanaKitongaKiturukiKi" + - "tsongaKitatariKitahitiKiuiguriKiukraniaKiurduKiuzbekiKivendaKivietinamuK" + - "iwolofuKixhosaKiyidiKiyorubaKichinaKizuluKiakoliKiaghemKimapucheKiarabu " + - "cha KialjeriaKiarabu cha MisriKiasuKibembaKibenabrxKichigaKicherokeeKiku" + - "rdi cha SoraniKitaitaKizarmaKidolnoserbskiKidualaKijola-FonyiKiembuKiefi" + - "kiKifilipinoKigaKigagauziKiyunaniKijerumani cha UswisiKikisiiKihawaiKihi" + - "tihsbKingombaKimachameKikabyliaKikambaKimakondeKikabuverdianuKikoroKikoy" + - "ra ChiiniKikalenjinKikomipermyakkokKisambaaKibafiaKirangiChilambaKilakot" + - "aKiloziKiluba-LuluaKijaluoKiluhyaKimagahiKimaasaiKimeruKimoriseniKimakhu" + - "wa-MeettoKimetaKimohokiKimundangKinamaKinewariKikwasioN’KoKisotho cha Ka" + - "skaziniKinuerKinewari cha kaleKinyankoleKʼicheʼKiromboKirwoKisamburuKisa" + - "nguKisenaKoyraboro SenniTachelhitKisami cha KusiniKisami cha LuleKisami " + - "cha InariKisami cha SkoltKisukumaKingwanaKitesoKitetumKiklingoniKitokpis" + - "inKitumbukaKitasawaqCentral Atlas TamazightLugha IsiyojulikanaKivaiKivun" + - "joKisogaKiyaoTamaziti Msingi ya KimorokoHakuna maudhui ya lughaKiarabu S" + - "anifu cha KisasaKihispania cha UlayaKichina cha Jadi" - -// Size: 1234 bytes, 605 elements -var swLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0009, 0x0009, 0x0013, 0x001a, 0x0022, 0x0022, - 0x0029, 0x0030, 0x0030, 0x0038, 0x0043, 0x004c, 0x0056, 0x0060, - 0x0060, 0x0069, 0x0072, 0x007a, 0x0083, 0x008b, 0x0095, 0x0095, - 0x0095, 0x009f, 0x009f, 0x00a6, 0x00a6, 0x00a6, 0x00ae, 0x00b7, - 0x00c1, 0x00c9, 0x00d2, 0x00d7, 0x00df, 0x00e9, 0x00f4, 0x00fe, - 0x0107, 0x010f, 0x0116, 0x0116, 0x0120, 0x0126, 0x012d, 0x0136, - 0x014c, 0x0156, 0x0168, 0x0170, 0x0179, 0x0183, 0x0189, 0x0190, - 0x0199, 0x01a0, 0x01a0, 0x01a8, 0x01af, 0x01b8, 0x01c1, 0x01c1, - // Entry 40 - 7F - 0x01cd, 0x01d8, 0x01d8, 0x01de, 0x01e8, 0x01e8, 0x01e8, 0x01f3, - 0x01fd, 0x01ff, 0x0207, 0x020d, 0x0214, 0x021b, 0x0223, 0x0223, - 0x022b, 0x0238, 0x0242, 0x024b, 0x0252, 0x0252, 0x025c, 0x0263, - 0x0269, 0x0270, 0x027a, 0x0282, 0x028d, 0x0294, 0x0294, 0x029d, - 0x02a4, 0x02af, 0x02bd, 0x02c5, 0x02cd, 0x02cd, 0x02d4, 0x02df, - 0x02ea, 0x02f4, 0x02fd, 0x0306, 0x030d, 0x0314, 0x0314, 0x032b, - 0x0333, 0x0333, 0x033c, 0x0349, 0x035b, 0x035b, 0x035b, 0x0363, - 0x036c, 0x036c, 0x0373, 0x037a, 0x0382, 0x038b, 0x038b, 0x0394, - // Entry 80 - BF - 0x039c, 0x03a2, 0x03ab, 0x03b5, 0x03bc, 0x03c5, 0x03cb, 0x03d6, - 0x03e1, 0x03e1, 0x03e9, 0x03fd, 0x0404, 0x040d, 0x0417, 0x0421, - 0x0428, 0x042f, 0x0437, 0x0440, 0x0448, 0x044f, 0x0461, 0x0468, - 0x046f, 0x0478, 0x047f, 0x0487, 0x048f, 0x0499, 0x04a3, 0x04af, - 0x04b7, 0x04be, 0x04c6, 0x04ce, 0x04d6, 0x04de, 0x04e6, 0x04ef, - 0x04f5, 0x04fd, 0x0504, 0x050f, 0x050f, 0x050f, 0x0517, 0x051e, - 0x0524, 0x052c, 0x052c, 0x0533, 0x0539, 0x0539, 0x0540, 0x0540, - 0x0540, 0x0540, 0x0540, 0x0547, 0x0547, 0x0547, 0x0547, 0x0547, - // Entry C0 - FF - 0x0547, 0x0547, 0x0547, 0x0547, 0x0547, 0x0550, 0x0550, 0x0550, - 0x0565, 0x0565, 0x0565, 0x0576, 0x057b, 0x057b, 0x057b, 0x057b, - 0x057b, 0x057b, 0x057b, 0x057b, 0x057b, 0x057b, 0x057b, 0x057b, - 0x057b, 0x057b, 0x0582, 0x0582, 0x0588, 0x0588, 0x0588, 0x0588, - 0x0588, 0x0588, 0x0588, 0x0588, 0x0588, 0x0588, 0x0588, 0x0588, - 0x0588, 0x058b, 0x058b, 0x058b, 0x058b, 0x058b, 0x058b, 0x058b, - 0x058b, 0x058b, 0x058b, 0x058b, 0x058b, 0x0592, 0x0592, 0x0592, - 0x0592, 0x0592, 0x0592, 0x0592, 0x0592, 0x059c, 0x059c, 0x05ae, - // Entry 100 - 13F - 0x05ae, 0x05ae, 0x05ae, 0x05ae, 0x05ae, 0x05ae, 0x05b5, 0x05b5, - 0x05b5, 0x05b5, 0x05b5, 0x05bc, 0x05bc, 0x05ca, 0x05ca, 0x05d1, - 0x05d1, 0x05dd, 0x05dd, 0x05dd, 0x05e3, 0x05ea, 0x05ea, 0x05ea, - 0x05ea, 0x05ea, 0x05ea, 0x05ea, 0x05ea, 0x05ea, 0x05ea, 0x05f4, - 0x05f4, 0x05f4, 0x05f4, 0x05f4, 0x05f4, 0x05f4, 0x05f4, 0x05f4, - 0x05f4, 0x05f8, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, - 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, - 0x0601, 0x0609, 0x061e, 0x061e, 0x061e, 0x0625, 0x0625, 0x0625, - // Entry 140 - 17F - 0x0625, 0x062c, 0x062c, 0x062c, 0x0632, 0x0632, 0x0635, 0x0635, - 0x0635, 0x0635, 0x0635, 0x0635, 0x0635, 0x0635, 0x0635, 0x0635, - 0x063d, 0x0646, 0x0646, 0x0646, 0x0646, 0x0646, 0x064f, 0x064f, - 0x064f, 0x0656, 0x0656, 0x0656, 0x0656, 0x0656, 0x065f, 0x066d, - 0x066d, 0x0673, 0x0673, 0x0673, 0x0673, 0x0681, 0x0681, 0x0681, - 0x0681, 0x068b, 0x068b, 0x0698, 0x069b, 0x069b, 0x069b, 0x069b, - 0x069b, 0x069b, 0x069b, 0x069b, 0x06a3, 0x06aa, 0x06aa, 0x06aa, - 0x06aa, 0x06aa, 0x06b1, 0x06b1, 0x06b9, 0x06b9, 0x06b9, 0x06b9, - // Entry 180 - 1BF - 0x06b9, 0x06c1, 0x06c1, 0x06c1, 0x06c7, 0x06c7, 0x06d3, 0x06d3, - 0x06d3, 0x06da, 0x06da, 0x06e1, 0x06e1, 0x06e1, 0x06e1, 0x06e1, - 0x06e9, 0x06e9, 0x06e9, 0x06e9, 0x06f1, 0x06f1, 0x06f1, 0x06f1, - 0x06f1, 0x06f7, 0x0701, 0x0701, 0x0711, 0x0717, 0x0717, 0x0717, - 0x0717, 0x0717, 0x071f, 0x071f, 0x071f, 0x0728, 0x0728, 0x0728, - 0x0728, 0x0728, 0x0728, 0x0728, 0x0728, 0x0728, 0x0728, 0x0728, - 0x072e, 0x072e, 0x0736, 0x0736, 0x0736, 0x0736, 0x073e, 0x073e, - 0x073e, 0x073e, 0x073e, 0x0744, 0x0759, 0x075f, 0x0770, 0x0770, - // Entry 1C0 - 1FF - 0x077a, 0x077a, 0x077a, 0x077a, 0x077a, 0x077a, 0x077a, 0x077a, - 0x077a, 0x077a, 0x077a, 0x077a, 0x077a, 0x077a, 0x077a, 0x077a, - 0x077a, 0x077a, 0x077a, 0x077a, 0x077a, 0x0783, 0x0783, 0x0783, - 0x0783, 0x0783, 0x0783, 0x0783, 0x078a, 0x078a, 0x078a, 0x078a, - 0x078a, 0x078a, 0x078f, 0x078f, 0x078f, 0x078f, 0x0798, 0x0798, - 0x0798, 0x0798, 0x0798, 0x079f, 0x079f, 0x079f, 0x079f, 0x079f, - 0x07a5, 0x07a5, 0x07a5, 0x07b4, 0x07b4, 0x07b4, 0x07bd, 0x07bd, - 0x07bd, 0x07bd, 0x07bd, 0x07bd, 0x07ce, 0x07dd, 0x07ed, 0x07fd, - // Entry 200 - 23F - 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x0805, 0x0805, - 0x0805, 0x0805, 0x080d, 0x080d, 0x080d, 0x080d, 0x080d, 0x080d, - 0x0813, 0x0813, 0x081a, 0x081a, 0x081a, 0x081a, 0x081a, 0x0824, - 0x0824, 0x0824, 0x0824, 0x0824, 0x082e, 0x082e, 0x082e, 0x082e, - 0x082e, 0x082e, 0x0837, 0x0837, 0x0840, 0x0840, 0x0857, 0x0857, - 0x0857, 0x0857, 0x086a, 0x086f, 0x086f, 0x086f, 0x086f, 0x086f, - 0x086f, 0x086f, 0x0876, 0x0876, 0x0876, 0x0876, 0x0876, 0x0876, - 0x0876, 0x0876, 0x0876, 0x087c, 0x0881, 0x0881, 0x0881, 0x0881, - // Entry 240 - 27F - 0x0881, 0x0881, 0x0881, 0x0881, 0x0881, 0x0881, 0x089c, 0x089c, - 0x08b3, 0x08b3, 0x08cc, 0x08cc, 0x08cc, 0x08cc, 0x08cc, 0x08cc, - 0x08cc, 0x08cc, 0x08e0, 0x08e0, 0x08e0, 0x08e0, 0x08e0, 0x08e0, - 0x08e0, 0x08e0, 0x08e0, 0x08e0, 0x08f0, -} - -// Size: 12231 bytes -var taLangStr string = "" + - "அஃபாரà¯à®…பà¯à®•à®¾à®œà®¿à®¯à®¾à®©à¯à®…வெஸà¯à®¤à®¾à®©à¯à®†à®ƒà®ªà¯à®°à®¿à®•à®¾à®©à¯à®¸à¯à®…கானà¯à®…à®®à¯à®¹à®¾à®°à®¿à®•à¯à®†à®°à¯à®•à¯‹à®©à¯€à®¸à¯à®…ரபிகà¯à®…ஸà¯à®¸à®¾" + - "மிஅவேரிகà¯à®…யà¯à®®à®°à®¾à®…ஸரà¯à®ªà¯ˆà®œà®¾à®©à®¿à®ªà®¾à®·à¯à®•à®¿à®°à¯à®ªà¯†à®²à®¾à®°à¯à®·à®¿à®¯à®©à¯à®ªà®²à¯à®•à¯‡à®°à®¿à®¯à®©à¯à®ªà®¿à®¸à¯à®²à®¾à®®à®¾à®ªà®®à¯à®ªà®¾à®°à®¾à®µ" + - "à®™à¯à®•à®¾à®³à®®à¯à®¤à®¿à®ªà¯†à®¤à¯à®¤à®¿à®¯à®©à¯à®ªà®¿à®°à¯†à®Ÿà¯à®Ÿà®©à¯à®ªà¯‹à®¸à¯à®©à®¿à®¯à®©à¯à®•à¯‡à®Ÿà¯à®Ÿà®²à®¾à®©à¯à®šà¯†à®šà¯†à®©à¯à®šà®¾à®®à¯‹à®°à¯‹à®•à¯‹à®°à¯à®šà®¿à®•à®©à¯à®•à¯à®°à¯€" + - "செகà¯à®šà®°à¯à®šà¯ ஸà¯à®²à®¾à®µà®¿à®•à¯à®šà¯à®µà®¾à®·à¯à®µà¯†à®²à¯à®·à¯à®Ÿà¯‡à®©à®¿à®·à¯à®œà¯†à®°à¯à®®à®©à¯à®¤à®¿à®µà¯‡à®¹à®¿à®ªà¯‚டானிஈவà¯à®•à®¿à®°à¯‡à®•à¯à®•à®®à¯à®†à®™à¯" + - "கிலமà¯à®Žà®¸à¯à®ªà®°à¯‡à®©à¯à®Ÿà¯‹à®¸à¯à®ªà®¾à®©à®¿à®·à¯à®Žà®¸à¯à®Ÿà¯‹à®©à®¿à®¯à®©à¯à®ªà®¸à¯à®•à¯à®ªà¯†à®°à¯à®·à®¿à®¯à®©à¯à®ƒà®ªà¯à®²à®¾à®ƒà®ªà®¿à®©à¯à®©à®¿à®·à¯à®ƒà®ªà®¿à®œà®¿à®¯à®©à¯à®ƒ" + - "பரோயிஸà¯à®ªà®¿à®°à¯†à®žà¯à®šà¯à®®à¯‡à®±à¯à®•à®¤à¯à®¤à®¿à®¯ ஃபà¯à®°à®¿à®·à®¿à®¯à®©à¯à®à®°à®¿à®·à¯à®¸à¯à®•à®¾à®Ÿà¯à®¸à¯ கேலிகà¯à®•à®¾à®²à®¿à®¸à®¿à®¯à®©à¯à®•à¯à®°à®¾à®©" + - "ிகà¯à®œà®°à®¾à®¤à¯à®¤à®¿à®®à¯‡à®™à¯à®•à¯à®¸à¯à®¹à¯Œà®¸à®¾à®¹à¯€à®ªà¯à®°à¯‚இநà¯à®¤à®¿à®¹à®¿à®°à®¿ மோடà¯à®Ÿà¯à®•à¯à®°à¯‹à®·à®¿à®¯à®©à¯à®¹à¯ˆà®¤à¯à®¤à®¿à®¯à®©à¯à®¹à®™à¯à®•à¯‡à®°à®¿à®¯" + - "னà¯à®†à®°à¯à®®à¯‡à®©à®¿à®¯à®©à¯à®¹à¯†à®°à¯‡à®°à¯‹à®‡à®£à¯à®Ÿà®°à¯à®²à®¿à®™à¯à®µà®¾à®‡à®¨à¯à®¤à¯‹à®©à¯‡à®·à®¿à®¯à®©à¯à®‡à®©à¯à®Ÿà®°à¯à®²à®¿à®™à¯à®‡à®•à¯à®ªà¯‹à®šà®¿à®šà¯à®µà®¾à®©à¯ ஈஇனà¯" + - "பியாகà¯à®‡à®Ÿà¯‹à®à®¸à¯à®²à¯†à®©à¯à®Ÿà®¿à®•à¯à®‡à®¤à¯à®¤à®¾à®²à®¿à®¯à®©à¯à®‡à®©à¯à®•à®¿à®Ÿà¯‚டà¯à®œà®ªà¯à®ªà®¾à®©à®¿à®¯à®®à¯à®œà®¾à®µà®¾à®©à¯€à®¸à¯à®œà®¾à®°à¯à®œà®¿à®¯à®©à¯à®•à®¾à®™à¯" + - "கோகிகà¯à®¯à¯‚கà¯à®µà®¾à®©à¯à®¯à®¾à®®à®¾à®•à®šà®¾à®•à¯à®•à®²à®¾à®²à®¿à®šà¯‚டà¯à®•à¯†à®®à¯†à®°à¯à®•à®©à¯à®©à®Ÿà®®à¯à®•à¯Šà®°à®¿à®¯à®©à¯à®•à®©à¯à®°à®¿à®•à®¾à®·à¯à®®à®¿à®°à®¿à®•à¯à®°à¯à®¤" + - "ிஷà¯à®•à¯‹à®®à®¿à®•à®¾à®°à¯à®©à®¿à®·à¯à®•à®¿à®°à¯à®•à®¿à®¸à¯à®²à®¤à¯à®¤à®¿à®©à¯à®²à®•à¯à®¸à®®à¯à®ªà¯‹à®°à¯à®•à®¿à®·à¯à®•à®¾à®©à¯à®Ÿà®¾à®²à®¿à®®à¯à®ªà®°à¯à®•à®¿à®·à¯à®²à®¿à®™à¯à®•à®¾à®²à®¾à®²" + - "ாவோலிதà¯à®µà¯‡à®©à®¿à®¯à®©à¯à®²à¯à®ªà®¾-கடாஙà¯à®•à®¾à®²à®¾à®Ÿà¯à®µà®¿à®¯à®©à¯à®®à®²à®•à®¾à®¸à®¿à®®à®¾à®°à¯à®·à¯†à®²à®¿à®·à¯à®®à¯Œà®°à®¿à®®à®¾à®¸à®¿à®Ÿà¯‹à®©à®¿à®¯à®©à¯à®®à®²à¯ˆà®¯" + - "ாளமà¯à®®à®™à¯à®•à¯‹à®²à®¿à®¯à®©à¯à®®à®°à®¾à®¤à¯à®¤à®¿à®®à®²à®¾à®¯à¯à®®à®¾à®²à¯à®Ÿà®¿à®¸à¯à®ªà®°à¯à®®à®¿à®¸à¯à®¨à®µà¯à®°à¯‚வடகà¯à®•à¯ தெபெலேநேபாளிதோஙà¯à®•" + - "ாடசà¯à®šà¯à®¨à®¾à®°à¯à®µà¯‡à®œà®¿à®¯à®©à¯ நியூநாரà¯à®¸à¯à®•à¯à®¨à®¾à®°à¯à®µà¯‡à®œà®¿à®¯à®©à¯ பொகà¯à®®à®¾à®²à¯à®¤à¯†à®±à¯à®•à¯ தெபெலேநவாஜோநய" + - "னà¯à®œà®¾à®’கà¯à®•à®¿à®Ÿà®©à¯à®“ஜிபவாஒரோமோஒரியாஒசெடà¯à®Ÿà®¿à®•à¯à®ªà®žà¯à®šà®¾à®ªà®¿à®ªà®¾à®²à®¿à®ªà¯‹à®²à®¿à®·à¯à®ªà®·à¯à®¤à¯‹à®ªà¯‹à®°à¯à®šà¯à®šà¯à®•à¯à®•" + - "ீஸà¯à®•à®¿à®µà¯‡à®šà¯à®µà®¾à®°à¯‹à®®à®¾à®©à¯à®·à¯à®°à¯à®£à¯à®Ÿà®¿à®°à¯‹à®®à¯‡à®©à®¿à®¯à®©à¯à®°à®·à®¿à®¯à®©à¯à®•à®¿à®©à¯à®¯à®¾à®°à¯à®µà®¾à®©à¯à®Ÿà®¾à®šà®®à®¸à¯à®•à®¿à®°à¯à®¤à®®à¯à®šà®¾à®Ÿà®¿à®©" + - "ியனà¯à®šà®¿à®¨à¯à®¤à®¿à®µà®Ÿà®•à¯à®•à¯ சமிசாஙà¯à®•à¯‹à®šà®¿à®™à¯à®•à®³à®®à¯à®¸à¯à®²à¯‹à®µà®¾à®•à¯à®¸à¯à®²à¯‹à®µà¯‡à®©à®¿à®¯à®©à¯à®¸à®¾à®®à¯‹à®µà®¾à®©à¯à®·à¯‹à®©à®¾à®šà¯‹à®®à®¾à®²" + - "ிஅலà¯à®ªà¯‡à®©à®¿à®¯à®©à¯à®šà¯†à®°à¯à®ªà®¿à®¯à®©à¯à®¸à¯à®µà®¾à®Ÿà¯€à®¤à¯†à®±à¯à®•à¯ ஸோதோசà¯à®£à¯à®Ÿà®¾à®©à¯€à®¸à¯à®¸à¯à®µà¯€à®Ÿà®¿à®·à¯à®šà¯à®µà®¾à®¹à®¿à®²à®¿à®¤à®®à®¿à®´à¯à®¤à¯†" + - "லà¯à®™à¯à®•à¯à®¤à®¾à®œà®¿à®•à¯à®¤à®¾à®¯à¯à®Ÿà®¿à®•à¯à®°à®¿à®©à¯à®¯à®¾à®Ÿà®°à¯à®•à¯à®®à¯†à®©à¯à®¸à¯à®µà®¾à®©à®¾à®Ÿà¯‹à®™à¯à®•à®¾à®©à¯à®Ÿà®°à¯à®•à®¿à®·à¯à®¸à¯‹à®™à¯à®•à®¾à®Ÿà®¾à®Ÿà®°à¯à®Ÿà®¹à®¿" + - "தியானà¯à®‰à®¯à¯à®•à¯à®°à¯à®‰à®•à¯à®°à¯ˆà®©à®¿à®¯à®©à¯à®‰à®°à¯à®¤à¯à®‰à®¸à¯à®ªà¯†à®•à¯à®µà¯†à®©à¯à®Ÿà®¾à®µà®¿à®¯à®Ÿà¯à®¨à®¾à®®à®¿à®¸à¯à®’லாபூகà¯à®’வாலூனà¯à®’லூஃ" + - "பà¯à®¹à¯‹à®šà®¾à®‡à®¤à¯à®¤à®¿à®·à¯à®¯à¯‹à®°à¯à®ªà®¾à®œà¯à®µà®¾à®™à¯à®šà¯€à®©à®®à¯à®œà¯à®²à¯à®†à®šà¯à®šà®¿à®©à¯€à®¸à¯à®…கோலிஅதாஙà¯à®®à¯‡à®…தகேதà¯à®©à®¿à®šà®¿à®¯ அரப" + - "à¯à®…ஃபà¯à®°à®¿à®¹à®¿à®²à®¿à®…கெமà¯à®à®©à¯à®…கà¯à®•à¯‡à®¤à®¿à®¯à®©à¯à®…லூடà¯à®¤à¯†à®±à¯à®•à¯ அலà¯à®¤à¯ˆà®ªà®´à¯ˆà®¯ ஆஙà¯à®•à®¿à®²à®®à¯à®…à®™à¯à®•à®¿à®•à®¾à®…ராம" + - "ைகà¯à®®à®ªà¯à®šà¯‡à®…ரபஹோஅராவாகà¯à®…சà¯à®…ஸà¯à®¤à¯à®°à®¿à®¯à®©à¯à®…வதிபெலà¯à®šà®¿à®ªà®²à®¿à®©à¯€à®¸à¯à®ªà®¾à®¸à®¾à®ªà¯‡à®œà®¾à®ªà¯†à®®à¯à®ªà®¾à®ªà¯†à®©à®¾à®ªà®Ÿ" + - "காபோஜà¯à®ªà¯‚ரிபிகோலà¯à®ªà®¿à®©à®¿à®šà®¿à®•à¯à®šà®¿à®•à®¾à®ªà®¿à®·à¯à®£à¯à®ªà¯à®ªà®¿à®°à®¿à®¯à®¾à®ªà¯à®°à®¾à®œà¯à®ªà¯‹à®Ÿà¯‹à®ªà¯à®°à®¿à®¯à®¾à®¤à¯à®ªà¯à®•à®¿à®©à¯€à®¸à¯à®ªà¯" + - "லினà¯à®•à¯‡à®Ÿà¯‹à®•à®°à¯€à®ªà¯à®†à®Ÿà¯à®šà®®à¯à®šà¯†à®ªà¯à®µà®¾à®©à¯‹à®šà®¿à®•à®¾à®šà®¿à®ªà¯à®šà®¾à®·à®•à®¤à¯ˆà®šà¯‚கிசேமாரிசினூக௠ஜாரà¯à®•à®¾à®©à¯à®šà¯‹à®•à¯" + - "தௌசிபெவà¯à®¯à®¾à®©à¯à®šà¯†à®°à¯Šà®•à®¿à®šà¯†à®¯à¯‡à®©à®¿à®šà¯Šà®°à®¾à®©à®¿ கà¯à®°à¯à®¤à®¿à®·à¯à®•à®¾à®ªà¯à®Ÿà®¿à®•à¯à®•à®¿à®°à®¿à®®à®¿à®¯à®©à¯ தà¯à®°à¯à®•à¯à®•à®¿à®•à®·à¯à®ªà®¿" + - "யனà¯à®¤à®•à¯‹à®Ÿà®¾à®¤à®¾à®°à¯à®•à¯à®µà®¾à®Ÿà¯ˆà®Ÿà®¾à®¤à¯†à®²à®¾à®µà¯‡à®°à¯à®¸à¯à®²à®¾à®µà¯à®Ÿà¯‹à®•à¯à®°à®¿à®ªà¯à®Ÿà®¿à®©à¯à®•à®¾à®šà®¾à®°à¯à®®à®¾à®Ÿà¯‹à®•à¯à®°à®¿à®²à¯‹à®¯à®°à¯ சோரà¯" + - "பியனà¯à®Ÿà¯à®µà®¾à®²à®¾à®®à®¤à¯à®¤à®¿à®¯ டசà¯à®šà¯à®œà¯‹à®²à®¾-ஃபோனà¯à®¯à®¿à®Ÿà¯à®¯à¯‚லாஎமà¯à®ªà¯à®Žà®ƒà®ªà®¿à®•à¯à®ªà®£à¯à®Ÿà¯ˆà®¯ எகிபà¯à®¤à®¿à®¯à®©à¯à®ˆ" + - "காஜà¯à®•à¯à®Žà®²à®®à¯ˆà®Ÿà¯à®®à®¤à¯à®¤à®¿à®¯ ஆஙà¯à®•à®¿à®²à®®à¯à®Žà®µà¯‹à®©à¯à®Ÿà¯‹à®ƒà®ªà®™à¯à®•à¯à®ƒà®ªà®¿à®²à®¿à®ªà®¿à®©à¯‹à®ƒà®ªà®¾à®©à¯à®®à®¤à¯à®¤à®¿à®¯ ஃபà¯à®°à¯†à®©à¯à®šà¯" + - "பழைய ஃபà¯à®°à¯†à®©à¯à®šà¯à®µà®Ÿà®•à¯à®•à¯ ஃபà¯à®°à®¿à®¸à®¿à®¯à®¾à®©à¯à®•à®¿à®´à®•à¯à®•à¯ ஃபà¯à®°à®¿à®¸à®¿à®¯à®¾à®©à¯à®ƒà®ªà¯à®°à®¿à®¯à¯‚லியனà¯à®•à®¾à®•à®¾à®•à¯Œà®¸" + - "à¯à®•à®¯à¯‹à®ªà®¯à®¾à®•à¯€à®œà¯à®•à®¿à®²à¯à®ªà¯†à®°à¯à®Ÿà¯€à®¸à¯à®®à®¤à¯à®¤à®¿à®¯ ஹை ஜெரà¯à®®à®©à¯à®ªà®´à¯ˆà®¯ ஹை ஜெரà¯à®®à®©à¯à®•à¯‹à®©à¯à®Ÿà®¿à®•à¯‹à®°à¯‹à®©à¯à®Ÿà®²à¯‹" + - "கோதிகà¯à®•à¯à®°à¯‡à®ªà¯‹à®ªà®£à¯à®Ÿà¯ˆà®¯ கிரேகà¯à®•à®®à¯à®¸à¯à®µà®¿à®¸à¯ ஜெரà¯à®®à®©à¯à®•à¯à®¸à®¿à®•à¯à®µà®¿à®šà®¿à®©à¯à®¹à¯ˆà®Ÿà®¾à®¹à®µà®¾à®¯à®¿à®¯à®©à¯à®ªà®¿à®œà®¿" + - " இநà¯à®¤à®¿à®¹à®¿à®²à®¿à®•à®¾à®¯à¯à®©à®¾à®©à¯à®¹à®¿à®Ÿà¯à®Ÿà¯ˆà®Ÿà¯à®®à®¾à®™à¯à®•à¯à®…பà¯à®ªà®°à¯ சோரà¯à®ªà®¿à®¯à®¾à®©à¯à®¹à¯à®ªà®¾à®‡à®ªà®¾à®©à¯à®‡à®²à¯‹à®•à¯‹à®‡à®™à¯à®•à¯à®·à¯à®²à¯‹" + - "ஜà¯à®ªà®©à¯à®¨à®•à¯Šà®®à¯à®ªà®¾à®®à®¾à®šà¯†à®®à¯à®œà¯‚தேயோ-பெரà¯à®·à®¿à®¯à®©à¯à®œà¯‚தேயோ-அராபிகà¯à®•à®¾à®°à®¾-கலà¯à®ªà®¾à®•à¯à®•à®ªà®¾à®¯à¯à®²à¯à®•à®¾à®š" + - "ினà¯à®œà¯à®œà¯‚கமà¯à®ªà®¾à®•à®¾à®µà®¿à®•à®ªà®¾à®°à¯à®Ÿà®¿à®¯à®©à¯à®¤à¯ˆà®¯à®¾à®ªà¯à®®à®•à¯Šà®£à¯à®Ÿà¯‡à®•à®ªà¯à®µà¯†à®°à¯à®¤à®¿à®¯à®¾à®©à¯à®•à¯‹à®°à¯‹à®•à®¾à®¸à®¿à®•à¯‹à®¤à®¾à®©à¯€à®¸à¯à®•à¯Š" + - "யà¯à®°à®¾ சீனீகலினà¯à®œà®¿à®©à¯à®•à®¿à®®à¯à®ªà¯à®©à¯à®¤à¯à®•à¯Šà®®à®¿-பெரà¯à®®à¯à®¯à®¾à®•à¯à®•à¯Šà®™à¯à®•à®£à®¿à®•à¯‹à®¸à¯à®°à¯ˆà®©à¯à®•à¯à®ªà¯†à®²à¯à®²à¯‡à®•à®°à®¾à®š" + - "ே-பலà¯à®•à®¾à®°à¯à®•à®°à¯‡à®²à®¿à®¯à®©à¯à®•à¯à®°à¯à®•à¯à®·à®®à¯à®ªà®¾à®²à®¾à®ªà®¾à®ƒà®ªà®¿à®¯à®¾à®•à¯à®®à¯à®‡à®•à¯à®•à¯à®Ÿà¯‡à®©à¯ˆà®²à®Ÿà®¿à®©à¯‹à®²à®™à¯à®•à®¿à®²à®¹à®©à¯à®Ÿà®¾à®²à®®à¯à®ª" + - "ாலெஜà¯à®œà®¿à®¯à®©à¯à®²à®•à¯‹à®Ÿà®¾à®®à¯‹à®™à¯à®•à¯‹à®²à¯‹à®šà®¿à®²à¯à®ªà®¾-லà¯à®²à¯à®²à®¾à®²à¯à®¯à¯à®šà¯‡à®©à¯‹à®²à¯‚னà¯à®Ÿà®¾à®²à¯à®¯à¯‹à®²à¯à®·à®¯à¯à®²à¯à®¯à®¿à®¯à®¾à®®à®¤à¯à®°à¯€" + - "ஸà¯à®®à®•à®¾à®¹à®¿à®®à¯ˆà®¤à®¿à®²à®¿à®®à®•à®¾à®šà®¾à®°à¯à®®à®¾à®©à¯à®Ÿà®¿à®™à¯à®•à¯‹à®®à®¾à®šà®¾à®¯à¯à®®à¯‹à®•à¯à®•à¯à®·à®¾à®®à®¾à®©à¯à®Ÿà®¾à®°à¯à®®à¯†à®©à¯à®Ÿà¯€à®®à¯†à®°à¯à®®à¯Šà®°à®¿à®šà®¿à®¯à®©" + - "à¯à®®à®¤à¯à®¤à®¿à®¯ à®à®°à®¿à®·à¯à®®à®•à¯à®µà®¾-மீடà¯à®Ÿà¯‹à®®à¯‡à®Ÿà®¾à®®à®¿à®•à¯à®®à®¾à®•à¯à®®à®¿à®©à¯à®©à®¾à®™à¯à®•à®ªà¯Œà®®à®©à¯à®šà¯à®®à®©à®¿à®ªà¯‚ரிமோஹாவà¯à®•à¯à®®à¯‹" + - "ஸà¯à®¸à®¿à®®à¯à®©à¯à®Ÿà®¾à®™à¯à®ªà®² மொழிகளà¯à®•à¯à®°à¯€à®•à¯à®®à®¿à®°à®¾à®©à¯à®Ÿà¯€à®¸à¯à®®à®¾à®°à¯à®µà®¾à®°à®¿à®à®°à¯à®œà®¿à®¯à®¾à®¨à®¿à®¯à¯‹à®ªà¯‹à®²à®¿à®Ÿà®©à¯à®¨à®¾à®®à®¾à®²à¯‹" + - " ஜெரà¯à®®à®©à¯à®¨à¯†à®µà®¾à®°à®¿à®¨à®¿à®¯à®¾à®¸à¯à®¨à®¿à®¯à¯‚வானà¯à®•à¯à®µà®¾à®šà®¿à®¯à¯‹à®¨à¯‹à®•à¯ˆà®ªà®´à¯ˆà®¯ நோரà¯à®¸à¯à®Žà®©à¯â€˜à®•à¯‹à®µà®Ÿà®•à¯à®•à¯ சோதோநியூ" + - "à®°à¯à®ªà®¾à®°à®®à¯à®ªà®°à®¿à®¯ நேவாரிநியாமà¯à®µà¯‡à®œà®¿à®¨à®¿à®¯à®¾à®©à¯à®•à¯‹à®²à¯‡à®¨à®¿à®¯à¯‹à®°à¯‹à®¨à®¿à®œà¯à®®à®¾à®“சேஜà¯à®’டà¯à®Ÿà¯‹à®®à®©à¯ தà¯à®°à¯à®•à¯" + - "கிபனà¯à®•à®¾à®šà®¿à®©à®©à¯à®ªà®¾à®¹à¯à®²à®µà®¿à®ªà®®à¯à®ªà®¾à®™à¯à®•à®¾à®ªà®ªà®¿à®¯à¯‡à®®à¯†à®©à¯à®Ÿà¯‹à®ªà®²à¯Œà®µà¯à®©à¯à®ªà¯†à®©à¯à®šà®¿à®²à¯à®µà¯‡à®©à®¿à®¯ ஜெரà¯à®®à®©à¯à®ªà®´à¯ˆ" + - "ய பெரà¯à®·à®¿à®¯à®©à¯à®ƒà®ªà¯Šà®©à®¿à®·à®¿à®¯à®©à¯à®ƒà®ªà¯‹à®©à¯à®ªà¯†à®¯à¯†à®©à¯à®ªà®´à¯ˆà®¯ பà¯à®°à¯‹à®µà¯†à®©à¯à®šà®¾à®²à¯à®•à¯€à®šà¯€à®°à®¾à®œà®¸à¯à®¤à®¾à®©à®¿à®°à®ªà®©à¯à®¯à¯à®°à®°" + - "ோடோஙà¯à®•à®©à¯à®°à¯‹à®®à¯à®ªà¯‹à®°à¯‹à®®à®¾à®©à®¿à®…ரோமானியனà¯à®°à¯à®µà®¾à®šà®¾à®©à¯à®Ÿà®¾à®µà¯‡à®¯à®¾à®•à¯à®Ÿà¯à®šà®®à®¾à®°à®¿à®Ÿà®©à¯ அராமைகà¯à®šà®®à¯à®ªà¯à®°" + - "à¯à®šà®¾à®šà®¾à®•à¯à®šà®¾à®©à¯à®Ÿà®¾à®²à®¿à®šà¯Œà®°à®¾à®·à¯à®Ÿà®¿à®°à®®à¯à®šà®™à¯à®•à¯à®šà®¿à®šà®¿à®²à®¿à®¯à®©à¯à®¸à¯à®•à®¾à®Ÿà¯à®¸à¯à®šà¯†à®©à®¾à®šà¯†à®²à¯à®•à¯à®ªà¯à®•à¯Šà®¯à¯à®°à®¾à®ªà¯‹à®°à¯‹" + - " செனà¯à®©à®¿à®ªà®´à¯ˆà®¯ à®à®°à®¿à®·à¯à®¤à®šà¯‡à®¹à®¿à®¤à¯à®·à®¾à®©à¯à®šà®¿à®Ÿà®¾à®®à¯‹à®¤à¯†à®±à¯à®•à¯ சமிலà¯à®²à¯‡ சமிஇனாரி சமிஸà¯à®•à¯‹à®²à¯à®Ÿà¯ சம" + - "ிசோனினà¯à®•à¯‡à®šà¯‹à®•à¯à®¤à®¿à®¯à®©à¯à®¸à¯à®°à®¾à®©à®©à¯ டோஙà¯à®•à¯‹à®šà¯†à®°à¯†à®°à¯à®šà¯à®•à¯à®®à®¾à®šà¯à®šà¯à®šà¯à®®à¯‡à®°à®¿à®¯à®©à¯à®•à¯Šà®®à¯‹à®°à®¿à®¯à®©à¯à®•à®¾à®™à¯" + - "கோ சà¯à®µà®¾à®¹à®¿à®²à®¿à®ªà®¾à®°à®®à¯à®ªà®°à®¿à®¯ சிரியாகà¯à®šà®¿à®°à®¿à®¯à®¾à®•à¯à®Ÿà®¿à®®à¯à®©à¯‡à®Ÿà¯†à®šà¯‹à®Ÿà¯†à®°à¯†à®©à¯‹à®Ÿà¯†à®Ÿà¯à®®à¯à®Ÿà¯ˆà®•à¯à®°à¯‡à®Ÿà®¿à®µà¯à®Ÿ" + - "ோகேலௌகà¯à®³à®¿à®™à¯à®•à¯‹à®©à¯à®Ÿà®¿à®²à®¿à®™à¯à®•à®¿à®Ÿà¯à®Ÿà®¾à®®à®¾à®·à¯‡à®•à¯à®¨à®¯à®¾à®šà®¾ டோஙà¯à®•à®¾à®Ÿà¯‹à®•à¯ பிஸினà¯à®Ÿà¯à®¸à®¿à®®à¯à®·à®¿à®¯à®©à¯à®¤à¯à®®" + - "à¯à®ªà¯à®•à®¾à®Ÿà¯à®µà®¾à®²à¯à®Ÿà®šà®µà®¾à®•à¯à®Ÿà¯à®µà®¿à®©à®¿à®¯à®©à¯à®®à®¤à¯à®¤à®¿à®¯ அடà¯à®²à®¸à¯ தமசைடà¯à®‰à®Ÿà¯à®®à¯à®°à¯à®Ÿà¯à®‰à®•à®¾à®°à®¿à®Ÿà¯à®•à¯à®…à®®à¯à®ªà¯Šà®£" + - "à¯à®Ÿà¯à®°à¯‚டà¯à®µà¯ˆà®µà¯‹à®Ÿà¯à®•à¯à®µà¯à®©à¯à®œà¯‹à®µà®¾à®²à®¾à®®à¯‹à®µà®¾à®°à¯‡à®µà®¾à®·à¯‹à®•à®²à¯à®®à®¿à®•à¯à®šà¯‹à®•à®¾à®¯à®¾à®µà¯à®¯à®¾à®ªà¯‡à®šà®¿à®•à®¾à®£à¯à®Ÿà¯‹à®©à¯€à®¸à¯à®œà®¾à®ªà¯‹" + - "டெகà¯à®ªà¯à®²à®¿à®¸à¯à®¸à®¿à®®à¯à®ªà®¾à®²à¯à®¸à¯à®œà¯†à®©à®•à®¾à®¸à¯à®Ÿà®¾à®£à¯à®Ÿà®°à¯à®Ÿà¯ மொராகà¯à®•à®©à¯ தமாசைடà¯à®œà¯‚னிமொழி உளà¯à®³à®Ÿà®•à¯" + - "கம௠à®à®¤à¯à®®à®¿à®²à¯à®²à¯ˆà®œà®¾à®œà®¾à®®à®¾à®Ÿà®°à¯à®©à¯ ஸà¯à®Ÿà®¾à®£à¯à®Ÿà®°à¯à®Ÿà¯ அரபிகà¯à®†à®¸à¯à®¤à®¿à®°à®¿à®¯ ஜெரà¯à®®à®©à¯à®¸à¯à®µà®¿à®¸à¯ ஹை ஜ" + - "ெரà¯à®®à®©à¯à®†à®¸à¯à®¤à®¿à®°à¯‡à®²à®¿à®¯à®©à¯ ஆஙà¯à®•à®¿à®²à®®à¯à®•à®©à®Ÿà®¿à®¯à®©à¯ ஆஙà¯à®•à®¿à®²à®®à¯à®ªà®¿à®°à®¿à®Ÿà¯à®Ÿà®¿à®·à¯ ஆஙà¯à®•à®¿à®²à®®à¯à®…மெரிகà¯à®•" + - " ஆஙà¯à®•à®¿à®²à®®à¯à®²à®¤à¯à®¤à®¿à®©à¯ அமெரிகà¯à®• ஸà¯à®ªà®¾à®©à®¿à®·à¯à®à®°à¯‹à®ªà¯à®ªà®¿à®¯ ஸà¯à®ªà®¾à®©à®¿à®·à¯à®®à¯†à®•à¯à®šà®¿à®•à®©à¯ ஸà¯à®ªà®¾à®©à®¿à®·à¯à®•à®©à®Ÿ" + - "ிய பிரெஞà¯à®šà¯à®¸à¯à®µà®¿à®¸à¯ பிரஞà¯à®šà¯à®ªà®¿à®²à¯†à®®à®¿à®·à¯à®ªà¯‹à®°à¯à®šà¯à®šà¯à®•à¯€à®¸à¯ (பிரேசிலà¯)à®à®°à¯‹à®ªà¯à®ªà®¿à®¯ போரà¯à®š" + - "à¯à®šà¯à®•à¯€à®¸à¯à®®à¯‹à®²à¯à®Ÿà®¾à®µà®¿à®¯à®©à¯à®šà¯†à®°à¯à®ªà¯‹-கà¯à®°à¯‹à®·à®¿à®¯à®©à¯à®Žà®³à®¿à®¤à®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ சீனமà¯à®ªà®¾à®°à®®à¯à®ªà®°à®¿à®¯ சீனமà¯" - -// Size: 1234 bytes, 605 elements -var taLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0012, 0x0033, 0x004e, 0x0072, 0x0081, 0x009c, 0x00b7, - 0x00c9, 0x00de, 0x00f3, 0x0105, 0x0123, 0x013b, 0x015c, 0x017a, - 0x0192, 0x01a7, 0x01bf, 0x01e0, 0x01fb, 0x0216, 0x0231, 0x0243, - 0x0255, 0x0270, 0x027c, 0x0288, 0x02b0, 0x02c2, 0x02d4, 0x02e6, - 0x02fb, 0x030d, 0x031f, 0x0328, 0x0343, 0x035b, 0x0379, 0x0391, - 0x03af, 0x03be, 0x03d9, 0x03e8, 0x0403, 0x041b, 0x0433, 0x044b, - 0x0488, 0x0497, 0x04c2, 0x04dd, 0x04ef, 0x050a, 0x0522, 0x052e, - 0x0540, 0x054f, 0x056e, 0x0589, 0x05a4, 0x05c2, 0x05e0, 0x05f2, - // Entry 40 - 7F - 0x0616, 0x063a, 0x0658, 0x0667, 0x0683, 0x069e, 0x06a7, 0x06c8, - 0x06e6, 0x0701, 0x071f, 0x0737, 0x0752, 0x0764, 0x0776, 0x0794, - 0x07a3, 0x07be, 0x07d0, 0x07e5, 0x07fa, 0x0809, 0x0821, 0x0839, - 0x0845, 0x085d, 0x0875, 0x088a, 0x08b4, 0x08c6, 0x08e7, 0x08ff, - 0x090b, 0x092c, 0x094e, 0x0969, 0x097b, 0x0999, 0x09a5, 0x09c6, - 0x09de, 0x09fc, 0x0a11, 0x0a20, 0x0a38, 0x0a4d, 0x0a5c, 0x0a81, - 0x0a93, 0x0aa5, 0x0ab4, 0x0afa, 0x0b34, 0x0b59, 0x0b68, 0x0b7a, - 0x0b92, 0x0ba4, 0x0bb3, 0x0bc2, 0x0bdd, 0x0bf2, 0x0bfe, 0x0c10, - // Entry 80 - BF - 0x0c1f, 0x0c49, 0x0c61, 0x0c79, 0x0c8b, 0x0ca6, 0x0cb8, 0x0ce2, - 0x0d03, 0x0d1e, 0x0d30, 0x0d4c, 0x0d5e, 0x0d76, 0x0d8e, 0x0daf, - 0x0dc7, 0x0dd3, 0x0de5, 0x0e03, 0x0e1e, 0x0e30, 0x0e4f, 0x0e6d, - 0x0e85, 0x0e9d, 0x0eac, 0x0ec4, 0x0ed6, 0x0ee2, 0x0f00, 0x0f1b, - 0x0f2d, 0x0f45, 0x0f5a, 0x0f6c, 0x0f7b, 0x0f96, 0x0fab, 0x0fc9, - 0x0fd8, 0x0fed, 0x0fff, 0x1020, 0x1035, 0x104a, 0x105c, 0x1068, - 0x107d, 0x108f, 0x10a1, 0x10b0, 0x10bc, 0x10d7, 0x10e6, 0x10fb, - 0x1107, 0x1129, 0x1147, 0x1156, 0x115f, 0x117d, 0x117d, 0x118c, - // Entry C0 - FF - 0x118c, 0x11ae, 0x11d3, 0x11e8, 0x11fd, 0x120c, 0x120c, 0x121b, - 0x121b, 0x1230, 0x1230, 0x1230, 0x1239, 0x1239, 0x1257, 0x1257, - 0x1263, 0x1263, 0x1275, 0x128a, 0x128a, 0x1296, 0x1296, 0x1296, - 0x1296, 0x12a2, 0x12b4, 0x12b4, 0x12c0, 0x12c0, 0x12cc, 0x12e4, - 0x12f6, 0x1302, 0x1302, 0x1302, 0x131a, 0x1344, 0x1344, 0x1356, - 0x1356, 0x1362, 0x1362, 0x137a, 0x1392, 0x1392, 0x13a4, 0x13a4, - 0x13b0, 0x13bf, 0x13bf, 0x13d1, 0x13e9, 0x13f5, 0x1407, 0x1413, - 0x1425, 0x1431, 0x145c, 0x146e, 0x148c, 0x149e, 0x14b0, 0x14db, - // Entry 100 - 13F - 0x14f3, 0x14f3, 0x1527, 0x153f, 0x154e, 0x1566, 0x1572, 0x158a, - 0x159c, 0x15b4, 0x15c6, 0x15d8, 0x15ea, 0x1615, 0x1615, 0x1627, - 0x1649, 0x166b, 0x167d, 0x167d, 0x168c, 0x169e, 0x169e, 0x16cf, - 0x16e4, 0x16f6, 0x1721, 0x1721, 0x1736, 0x1736, 0x1748, 0x1763, - 0x1763, 0x1772, 0x1772, 0x17a0, 0x17c8, 0x17c8, 0x17fc, 0x1833, - 0x1857, 0x185d, 0x186f, 0x186f, 0x1878, 0x1881, 0x1881, 0x188d, - 0x18b1, 0x18b1, 0x18e0, 0x1909, 0x1909, 0x191b, 0x1936, 0x1948, - 0x195a, 0x1988, 0x19b0, 0x19b0, 0x19b0, 0x19bc, 0x19d4, 0x19e0, - // Entry 140 - 17F - 0x19e0, 0x19f8, 0x1a14, 0x1a38, 0x1a50, 0x1a62, 0x1a93, 0x1a93, - 0x1a9f, 0x1aae, 0x1aae, 0x1abd, 0x1ad2, 0x1ad2, 0x1ad2, 0x1ae7, - 0x1afc, 0x1b0e, 0x1b3c, 0x1b64, 0x1b64, 0x1b86, 0x1b9b, 0x1bad, - 0x1bb9, 0x1bc8, 0x1bd4, 0x1bf2, 0x1bf2, 0x1c04, 0x1c19, 0x1c40, - 0x1c40, 0x1c4c, 0x1c4c, 0x1c58, 0x1c70, 0x1c8f, 0x1c8f, 0x1c8f, - 0x1c8f, 0x1caa, 0x1cc8, 0x1cf3, 0x1d08, 0x1d20, 0x1d38, 0x1d5d, - 0x1d5d, 0x1d5d, 0x1d75, 0x1d87, 0x1d9c, 0x1db1, 0x1db1, 0x1dc6, - 0x1dd8, 0x1de7, 0x1df6, 0x1e08, 0x1e17, 0x1e32, 0x1e32, 0x1e32, - // Entry 180 - 1BF - 0x1e32, 0x1e41, 0x1e41, 0x1e53, 0x1e5f, 0x1e5f, 0x1e7e, 0x1e96, - 0x1ea8, 0x1eb4, 0x1ec3, 0x1ed5, 0x1ed5, 0x1ed5, 0x1eea, 0x1eea, - 0x1ef9, 0x1f0b, 0x1f20, 0x1f3e, 0x1f50, 0x1f50, 0x1f68, 0x1f80, - 0x1f92, 0x1f9e, 0x1fb9, 0x1fdb, 0x1ffd, 0x2009, 0x2021, 0x2042, - 0x2051, 0x2066, 0x207e, 0x2090, 0x2090, 0x20a8, 0x20c4, 0x20d6, - 0x20f4, 0x210c, 0x210c, 0x210c, 0x2121, 0x2121, 0x2121, 0x2142, - 0x214e, 0x216a, 0x217c, 0x218e, 0x21a6, 0x21a6, 0x21be, 0x21be, - 0x21ca, 0x21e9, 0x21e9, 0x21fb, 0x221a, 0x222c, 0x225a, 0x2278, - // Entry 1C0 - 1FF - 0x2296, 0x22a8, 0x22ba, 0x22c9, 0x22fa, 0x2318, 0x232d, 0x2348, - 0x2369, 0x237e, 0x237e, 0x23bb, 0x23bb, 0x23e3, 0x23e3, 0x2401, - 0x2401, 0x2401, 0x2422, 0x2422, 0x2453, 0x245f, 0x245f, 0x247a, - 0x248c, 0x24aa, 0x24aa, 0x24aa, 0x24bc, 0x24ce, 0x24ce, 0x24ce, - 0x24ce, 0x24ec, 0x24f8, 0x2510, 0x2522, 0x2550, 0x2565, 0x2577, - 0x258f, 0x25b0, 0x25b0, 0x25bf, 0x25da, 0x25f2, 0x25f2, 0x25f2, - 0x25fe, 0x25fe, 0x2616, 0x2647, 0x2663, 0x2663, 0x2678, 0x2684, - 0x2684, 0x2696, 0x2696, 0x2696, 0x26b2, 0x26c8, 0x26e1, 0x2703, - // Entry 200 - 23F - 0x271b, 0x2736, 0x275e, 0x2770, 0x2770, 0x2770, 0x2782, 0x278e, - 0x27a9, 0x27c4, 0x27ef, 0x2823, 0x283b, 0x283b, 0x283b, 0x284d, - 0x2859, 0x286b, 0x287d, 0x288f, 0x289b, 0x28ad, 0x28ad, 0x28cb, - 0x28e9, 0x28e9, 0x2901, 0x2923, 0x2942, 0x2942, 0x2942, 0x2942, - 0x2963, 0x2963, 0x297b, 0x298d, 0x299f, 0x29ba, 0x29f2, 0x2a0d, - 0x2a28, 0x2a43, 0x2a4f, 0x2a55, 0x2a55, 0x2a55, 0x2a55, 0x2a55, - 0x2a67, 0x2a67, 0x2a79, 0x2a79, 0x2a8b, 0x2a97, 0x2aa3, 0x2aa3, - 0x2aa3, 0x2ab8, 0x2ab8, 0x2ac4, 0x2ad0, 0x2ae2, 0x2ae2, 0x2ae2, - // Entry 240 - 27F - 0x2ae2, 0x2b00, 0x2b18, 0x2b48, 0x2b48, 0x2b57, 0x2baa, 0x2bb6, - 0x2bfd, 0x2c09, 0x2c53, 0x2c81, 0x2cb0, 0x2ced, 0x2d1b, 0x2d52, - 0x2d83, 0x2dca, 0x2dfb, 0x2e2f, 0x2e57, 0x2e7f, 0x2e97, 0x2ed6, - 0x2f13, 0x2f34, 0x2f62, 0x2f9c, 0x2fc7, -} - -// Size: 11507 bytes -var teLangStr string = "" + - "అఫారà±à°…à°¬à±à°–ాజియనà±à°…వేసà±à°Ÿà°¾à°¨à±à°†à°«à±à°°à°¿à°•à°¾à°¨à±à°¸à±à°…కానà±à°…à°®à±à°¹à°¾à°°à°¿à°•à±à°…రగోనిసà±à°…రబికà±à°…à°¸à±à°¸à°¾à°®à±€à°…à°µ" + - "ారికà±à°à°®à°¾à°°à°¾à°…జరà±à°¬à±ˆà°œà°¾à°¨à°¿à°¬à°·à±à°•à°¿à°°à±à°¬à±†à°²à°°à±à°¶à°¿à°¯à°¨à±à°¬à°²à±à°—ేరియనà±à°¬à°¿à°¸à±à°²à°¾à°®à°¾à°¬à°‚బారాబెంగాలీటి" + - "బెటనà±à°¬à±à°°à±†à°Ÿà°¨à±à°¬à±‹à°¸à±à°¨à°¿à°¯à°¨à±à°•à±†à°Ÿà°²à°¾à°¨à±à°šà±†à°šà±†à°¨à±à°šà°®à°°à±à°°à±‹à°•à±‹à°°à±à°¸à°¿à°•à°¨à±à°•à±à°°à°¿à°šà±†à°•à±à°šà°°à±à°š à°¸à±à°²à°¾à°µà°¿à°•à±" + - "à°šà±à°µà°¾à°·à±à°µà±†à°²à±à°·à±à°¡à±‡à°¨à°¿à°·à±à°œà°°à±à°®à°¨à±à°¦à°¿à°µà±‡à°¹à°¿à°œà±Šà°¨à±à°–ాఈవీగà±à°°à±€à°•à±à°†à°‚à°—à±à°²à°‚à°Žà°¸à±à°ªà°°à±†à°¨à±à°Ÿà±Šà°¸à±à°ªà°¾à°¨à°¿à°·à±à°ˆ" + - "à°¸à±à°Ÿà±Šà°¨à°¿à°¯à°¨à±à°¬à°¾à°¸à±à°•à±à°ªà°°à±à°·à°¿à°¯à°¨à±à°«à±à°¯à±à°²à°«à°¿à°¨à±à°¨à°¿à°·à±à°«à°¿à°œà°¿à°¯à°¨à±à°«à°¾à°°à±‹à°¯à±€à°œà±à°«à±à°°à±†à°‚à°šà±à°ªà°¶à±à°šà°¿à°® à°«à±à°°à°¿à°¸" + - "ియనà±à°à°°à°¿à°·à±à°¸à±à°•à°¾à°Ÿà°¿à°·à± గేలికà±à°—ెలిషియనà±à°—à±à°°à°¾à°¨à°¿à°—à±à°œà°°à°¾à°¤à°¿à°®à°‚à°•à°¸à±à°¹à±Œà°¸à°¾à°¹à±€à°¬à±à°°à±à°¹à°¿à°‚దీహిరి" + - " మోటà±à°•à±à°°à±Šà°¯à±†à°·à°¿à°¯à°¨à±à°¹à±ˆà°¤à°¿à°¯à°¨à±à°¹à°¨à±à°—ేరియనà±à°†à°°à±à°®à±‡à°¨à°¿à°¯à°¨à±à°¹à°¿à°°à±‡à°°à±‹à°‡à°‚à°Ÿà°°à±à°²à°¿à°‚à°—à±à°µà°¾à°‡à°‚డోనేషియనà±" + - "ఇంటరౠలింగà±à°‡à°—à±à°¬à±‹à°¶à°¿à°·à±à°µà°¨à± ఈఇనూపైà°à°•à±à°ˆà°¡à±Œà°à°¸à±à°²à°¾à°‚à°¡à°¿à°•à±à°‡à°Ÿà°¾à°²à°¿à°¯à°¨à±à°‡à°¨à±à°•à±à°Ÿà°¿à°Ÿà±à°Ÿà±à°œà°¾à°ªà°¨à±€" + - "à°¸à±à°œà°¾à°µà°¨à±€à°¸à±à°œà°¾à°°à±à°œà°¿à°¯à°¨à±à°•à±‹à°‚గోకికà±à°¯à±à°•à±à°µà°¾à°¨à±à°¯à°¾à°®à°•à°œà°–à±à°•à°²à°¾à°²à±à°²à°¿à°¸à±‚à°Ÿà±à°–à±à°®à±‡à°°à±à°•à°¨à±à°¨à°¡à°•à±Šà°°à°¿à°¯à°¨" + - "à±à°•à°¾à°¨à±à°°à°¿à°•à°¾à°¶à±à°®à±€à°°à°¿à°•à°°à±à°¡à°¿à°·à±à°•à±‹à°®à°¿à°•à±‹à°°à±à°¨à°¿à°·à±à°•à°¿à°°à±à°—à°¿à°œà±à°²à°¾à°Ÿà°¿à°¨à±à°²à±à°•à±à°¸à°‚బరà±à°—à°¿à°·à±à°—ాండాలిమà±" + - "బరà±à°—à°¿à°·à±à°²à°¿à°‚గాలలావోలిథà±à°¯à±‡à°¨à°¿à°¯à°¨à±à°²à±‚à°¬-కటాంగలాటà±à°µà°¿à°¯à°¨à±à°®à°¾à°²à°¾à°—సిమారà±à°·à°²à±€à°¸à±à°®à°¯à±‹à°°à°¿à°®à°¸à°¡" + - "ోనియనà±à°®à°²à°¯à°¾à°³à°‚మంగోలియనà±à°®à°°à°¾à° à±€à°®à°²à±‡à°¯à±à°®à°¾à°²à±à°Ÿà±€à°¸à±à°¬à°°à±à°®à±€à°¸à±à°¨à±Œà°°à±à°‰à°¤à±à°¤à°° దెబెలెనేపాలిదో" + - "ంగాడచà±à°¨à°¾à°°à±à°µà°¿à°œà°¿à°¯à°¾à°¨à± à°¨à±à°¯à±‹à°°à±à°¸à±à°•à±à°¨à°¾à°°à±à°µà±€à°œà°¿à°¯à°¨à± బొకà±à°®à°¾à°²à±à°¦à°•à±à°·à°¿à°£ దెబెలెనవాహోనà±à°¯" + - "ానà±à°œà°¾à°†à°•à±à°¸à°¿à°Ÿà°¨à±à°šà±‡à°µà°¾à°’రోమోఒరియాఒసేటికà±à°ªà°‚జాబీపాలీపోలిషà±à°ªà°¾à°·à±à°Ÿà±‹à°ªà±‹à°°à±à°šà±à°—ీసà±à°•à±†à°·à±" + - "యారోమనà±à°·à±à°°à°‚డిరోమానియనà±à°°à°·à±à°¯à°¨à±à°•à°¿à°¨à±à°¯à°°à±à°µà°¾à°‚డాసంసà±à°•à±ƒà°¤à°‚సారà±à°¡à±€à°¨à°¿à°¯à°¨à±à°¸à°¿à°‚ధీఉతà±à°¤à°° " + - "సామిసాంగోసింహళంసà±à°²à±‹à°µà°¾à°•à±à°¸à±à°²à±‹à°µà±‡à°¨à°¿à°¯à°¾à°¨à±à°¸à°®à±‹à°µà°¨à±à°·à±‹à°¨à°¸à±‹à°®à°¾à°²à°¿à°…à°²à±à°¬à±‡à°¨à°¿à°¯à°¨à±à°¸à±†à°°à±à°¬à°¿à°¯à°¨à±à°¸" + - "à±à°µà°¾à°¤à°¿à°¦à°•à±à°·à°¿à°£ సోతోసà±à°¡à°¾à°¨à±€à°¸à±à°¸à±à°µà±€à°¡à°¿à°·à±à°¸à±à°µà°¾à°¹à°¿à°²à°¿à°¤à°®à°¿à°³à°®à±à°¤à±†à°²à±à°—à±à°¤à°œà°¿à°•à±à°¥à°¾à°¯à±à°¤à°¿à°—à±à°°à°¿à°¨à±à°¯" + - "ాతà±à°°à±à°•à°®à±†à°¨à±à°¸à±†à°Ÿà°¸à±à°µà°¾à°¨à°¾à°Ÿà°¾à°‚గానà±à°Ÿà°°à±à°•à°¿à°·à±à°¸à±‹à°‚గాటాటరà±à°¤à°¹à°¿à°¤à°¿à°¯à°¨à±à°‰à°¯à±\u200cఘరà±à°‰à°•à±à°°à±‡à°¨à°¿" + - "యనà±à°‰à°°à±à°¦à±‚ఉజà±à°¬à±†à°•à±à°µà±†à°‚డావియతà±à°¨à°¾à°®à±€à°¸à±à°µà±‹à°²à°¾à°ªà±à°•à±à°µà°¾à°²à±‚à°¨à±à°µà±Šà°²à°¾à°«à±à°·à±‹à°¸à°¾à°‡à°¡à±à°¡à°¿à°·à±à°¯à±‹à°°à±à°¬à°¾à°œà±" + - "వానà±à°šà±ˆà°¨à±€à°¸à±à°œà±‚లూఆఖినీసà±à°…కోలిఅడాంగà±à°®à±‡à°…డిగాబà±à°œà±‡à°…à°«à±à°°à°¿à°¹à°¿à°²à°¿à°…గేమà±à°à°¨à±à°…à°•à±à°•à°¾à°¡à°¿à°¯à°¾à°¨" + - "à±à°…లియà±à°Ÿà±à°¦à°•à±à°·à°¿à°£ ఆలà±à°Ÿà±ˆà°ªà±à°°à°¾à°šà±€à°¨ ఆగà±à°²à°‚ఆంగికఅరామేకà±à°…రౌకేనియనà±à°…రాపాహోఅరావాకà±à°…" + - "à°¸à±à°…à°¸à±à°Ÿà±à°°à°¿à°¯à°¾à°¨à±à°…వధిబాలà±à°šà°¿à°¬à°¾à°²à°¿à°¨à±€à°¸à±à°¬à°¸à°¾à°¬à±‡à°œà°¾à°¬à±†à°‚బాబీనాభోజౠపూరిబికోలà±à°¬à°¿à°¨à°¿à°¸à°¿à°•à±" + - " సికాబà±à°°à°¾à°œà±à°¬à±‹à°¡à±‹à°¬à±à°°à°¿à°¯à°Ÿà±à°¬à±à°¯à±à°—ినిసà±à°¬à±à°²à°¿à°¨à±à°•à±‡à°¡à±à°¡à±‹à°•à±‡à°°à°¿à°¬à±à°…à°Ÿà±à°¸à°¾à°®à±à°¸à±‡à°¬à±à°†à°¨à±‹à°›à°¿à°—ాచిబà±" + - "చాచాగటైచూకిసà±à°®à°¾à°°à°¿à°šà°¿à°¨à±‚కౠజారà±à°—à°¨à±à°šà±Šà°šà±à°•à°¤à°¾à°µà±à°šà°¿à°ªà±†à°µà±à°¯à°¾à°¨à±à°šà±†à°°à±‹à°•à±€à°šà±‡à°¯à±‡à°¨à±à°¸à±Šà°°à°¾à°¨à°¿ à°•" + - "à±à°°à±à°¦à°¿à°·à±à°•à±‹à°ªà±à°Ÿà°¿à°•à±à°•à±à°°à°¿à°®à°¿à°¯à°¨à± à°Ÿà°°à±à°•à°¿à°·à±à°•à°·à±à°¬à°¿à°¯à°¨à±à°¡à°•à±‹à°Ÿà°¾à°¡à°¾à°°à±à°—à±à°µà°¾à°Ÿà±ˆà°Ÿà°¾à°¡à±†à°²à°¾à°µà±‡à°°à±à°¸à±à°²à±‡à°µ" + - "à±à°¡à±‹à°—à±à°°à°¿à°¬à±à°¡à°¿à°‚కాజారà±à°®à°¾à°¡à±‹à°—à±à°°à°¿à°²à±‹à°µà°°à± సోరà±à°¬à°¿à°¯à°¨à±à°¦à±à°†à°²à°¾à°®à°§à±à°¯à°® à°¡à°šà±à°œà±‹à°²à°¾-ఫోనయిడà±à°¯à±à°²" + - "ాఇంబà±à°Žà°«à°¿à°•à±à°ªà±à°°à°¾à°šà±€à°¨ ఇజిపà±à°·à°¿à°¯à°¨à±à°à°•à°¾à°œà°•à±à°Žà°²à°¾à°®à±ˆà°Ÿà±à°®à°§à±à°¯à°® ఆంగà±à°²à°‚ఎవోండొఫాంగà±à°«à°¿à°²à°¿à°ªà°¿" + - "నోఫానà±à°®à°§à±à°¯à°® à°ªà±à°°à±†à°‚à°šà±à°ªà±à°°à°¾à°šà±€à°¨ à°ªà±à°°à±†à°‚à°šà±à°‰à°¤à±à°¤à°° à°«à±à°°à°¿à°¸à°¿à°¯à°¨à±à°¤à±‚à°°à±à°ªà± à°«à±à°°à°¿à°¸à°¿à°¯à°¨à±à°«à±à°°à°¿à°¯" + - "à±à°²à°¿à°¯à°¨à±à°—ాగాగౌజà±à°—ాయోగà±à°¬à°¾à°¯à°¾à°œà±€à°œà±à°—à°¿à°²à±à°¬à°°à±à°Ÿà±€à°¸à±à°®à°§à±à°¯à°® హై జరà±à°®à°¨à±à°ªà±à°°à°¾à°šà±€à°¨ హై జరà±à°®à°¨" + - "à±à°—ోండిగోరోంటలాగోథికà±à°—à±à°°à±‡à°¬à±‹à°ªà±à°°à°¾à°šà±€à°¨ à°—à±à°°à±€à°•à±à°¸à±à°µà°¿à°¸à± జరà±à°®à°¨à±à°—à±à°¸à±à°¸à±€à°—à±à°µà°¿à°šà°¿à°¨à±à°¹à±ˆà°¡" + - "ాహవాయియనà±à°¹à°¿à°²à°¿ గేయినోనà±à°¹à°¿à°Ÿà±à°Ÿà°¿à°Ÿà±‡à°®à±‹à°‚à°—à±à°…à°ªà±à°ªà°°à± సోరà±à°¬à°¿à°¯à°¨à±à°¹à±à°ªà°¾à°à°¬à°¾à°¨à±à°à°¯à±‹à°•à±‹à°‡à°‚à°—à±à°·" + - "à±à°²à±‹à°œà±à°¬à°¾à°¨à±à°—ోంబామకొమà±à°œà±à°¯à±à°¡à°¿à°¯à±‹-పరà±à°·à°¿à°¯à°¨à±à°œà±à°¯à±à°¡à°¿à°¯à±‹-అరబికà±à°•à°¾à°°à°¾-à°•à°²à±à°ªà°¾à°•à±à°•à°¾à°¬à°¿à°²à±à°•" + - "ాచినà±à°œà±à°¯à±‚కంబాకావికబారà±à°¡à°¿à°¯à°¨à±à°Ÿà±à°¯à°¾à°ªà±à°®à°•à±Šà°‚డేకాబà±à°µà±‡à°°à±à°¦à°¿à°¯à°¨à±à°•à±‹à°°à±‹à°–ాసిఖటోనీసà±à°•à±Šà°¯" + - "à°°à°¾ చీనà±à°¨à±€à°•à°²à±†à°‚జినà±à°•à°¿à°®à±à°¬à±à°‚à°¡à±à°•à±‹à°®à°¿-పరà±à°®à°¾à°•à±à°•à±Šà°‚కణికోసà±à°°à±‡à°¯à°¨à±à°ªà±†à°²à±à°²à±‡à°•à°°à°šà±‡-బలà±à°•à°¾à°°" + - "à±à°•à°°à±‡à°²à°¿à°¯à°¨à±à°•à±‚à°°à±à°–à±à°¶à°‚బాలాబాఫియకà±à°®à±à°¯à°¿à°•à±à°•à±à°Ÿà±‡à°¨à±ˆà°²à°¾à°¡à°¿à°¨à±‹à°²à°¾à°‚గీలాహండాలాంబాలేజà±à°˜à°¿à°¯à°¨" + - "à±à°²à°•à±Šà°Ÿà°¾à°®à±Šà°‚గోలోజిలà±à°¬à°¾-à°²à±à°²à±à°µà°²à±à°‡à°¸à±‡à°¨à±‹à°²à±à°‚డాలà±à°µà±‹à°²à±à°·à±ˆà°²à±à°¯à°¿à°¯à°®à°¾à°¦à±à°°à±€à°¸à±à°®à°—ాహిమైథిలిమ" + - "కాసారà±à°®à°‚డింగోమాసాయిమొకà±à°·à°¾à°®à°‚డారà±à°®à±†à°‚డేమెరà±à°®à±Šà°°à°¿à°¸à±à°¯à±‡à°¨à±à°®à°§à±à°¯à°® à°à°°à°¿à°·à±à°®à°•à±à°µà°¾-మిట" + - "à±à°Ÿà±‹à°®à±†à°Ÿà°¾à°®à°¿à°•à°®à°¾à°•à±à°®à°¿à°¨à°¾à°‚à°—à±à°•à°¾à°¬à±‹à°®à°‚à°šà±à°®à°£à°¿à°ªà±‚రిమోహà±à°•à±à°®à±‹à°¸à±à°¸à°¿à°®à±à°¦à°¾à°‚à°—à±à°¬à°¹à±à°³ భాషలà±à°•à±à°°à±€à°•" + - "à±à°®à°¿à°°à°¾à°‚à°¡à°¿à°¸à±à°®à°¾à°°à±à°µà°¾à°¡à°¿à°Žà°°à±à°œà°¿à°¯à°¾à°¨à°¿à°¯à°¾à°ªà±‹à°²à°¿à°Ÿà°¨à±à°¨à°®à°²à±‹ జరà±à°®à°¨à±à°¨à±†à°µà°¾à°°à°¿à°¨à°¿à°¯à°¾à°¸à±à°¨à°¿à°¯à±‚ఇయానà±à°•à±" + - "వాసియెనోగైపà±à°°à°¾à°šà°¿à°¨ నోరà±à°¸à±à°¨à±à°•à±‹à°‰à°¤à±à°¤à°° సోతోనà±à°¯à±à°°à±à°¸à°¾à°‚à°ªà±à°°à°¦à°¾à°¯ à°¨à±à°¯à±à°†à°°à°¿à°¨à±à°¯à°‚వేజిన" + - "à±à°¯à°¾à°¨à±à°•à±‹à°²à±†à°¨à°¿à°“రోజీమాఒసాజà±à°’à°Ÿà±à°Ÿà±‹à°®à°¨à± à°Ÿà°°à±à°•à°¿à°·à±à°ªà°‚à°—à°¾ సినానà±à°ªà°¹à±à°²à°¾à°µà°¿à°ªà°‚పగà±à°¨à°ªà°ªà°¿à°¯à°®à±‡à°‚" + - "టోపాలà±à°†à°¨à±à°ªà±à°°à°¾à°šà±€à°¨ పరà±à°·à°¿à°¯à°¨à±à°«à±‹à°¨à°¿à°•à°¨à±à°ªà±‹à°¹à±à°¨à±à°ªà±†à°¯à°¨à±à°ªà±à°°à°¾à°šà±€à°¨ à°ªà±à°°à±‹à°µà±†à°‚సాలà±à°•à°¿à°šà±‡à°°à°¾à°œà°¸" + - "à±à°¤à°¾à°¨à°¿à°°à°¾à°ªà°¨à±à°¯à±à°¯à°¿à°°à°¾à°°à±‹à°Ÿà±Šà°‚గానà±à°°à±‹à°‚బోరోమానీఆరోమేనియనà±à°°à±à°µà°¾à°¸à°‚డావియాకà±à°Ÿà±à°¸à°®à°¾à°°à°¿à°Ÿà°¨à±" + - " అరమేకà±à°¸à°‚à°¬à±à°°à±à°¸à°¸à°•à±à°¸à°‚టాలిసాంగà±à°¸à°¿à°¸à°¿à°²à°¿à°¯à°¨à±à°¸à±à°•à°¾à°Ÿà±à°¸à±à°¸à±†à°¨à°¾à°¸à±‡à°²à±à°•à°ªà±à°•à±‹à°¯à±‹à°°à°¾à°¬à±‹à°°à±‹ సెనà±à°¨" + - "ీపà±à°°à°¾à°šà±€à°¨ à°à°°à°¿à°·à±à°Ÿà°¾à°šà±†à°²à±\u200cహిటà±à°·à°¾à°¨à±à°¸à°¿à°¡à°¾à°®à±‹à°¦à°•à±à°·à°¿à°£ సామిలà±à°²à±‡ సామిఇనారి సామి" + - "à°¸à±à°•à±‹à°²à±à°Ÿà± సామిసోనింకిసోగà±à°¡à°¿à°¯à°¨à±à°¸à±à°°à°¾à°¨à°¨à± టోనగోసెరేరà±à°¸à±à°•à±à°®à°¾à°¸à±à°¸à±à°¸à±à°®à±‡à°°à°¿à°¯à°¾à°¨à±à°•à±Š" + - "మొరియనà±à°•à°¾à°‚గో à°¸à±à°µà°¾à°¹à°¿à°²à°¿à°¸à°¾à°‚à°ªà±à°°à°¦à°¾à°¯ సిరియాకà±à°¸à°¿à°°à°¿à°¯à°¾à°•à±à°Ÿà°¿à°‚నేటెసోటెరెనోటేటంటీగà±" + - "రెటివà±à°Ÿà±‹à°•à±†à°²à°¾à°µà±à°•à±à°²à°¿à°‚గానà±à°²à°¿à°‚à°—à°¿à°Ÿà±à°Ÿà°¾à°®à°·à±‡à°•à±à°¨à±à°¯à°¾à°¸à°¾ టోనà±à°—ాటోకౠపిసినà±à°¶à°¿à°‚షీయనà±à°Ÿ" + - "à±à°‚à°¬à±à°•à°¾à°Ÿà±à°µà°¾à°²à±à°Ÿà°¸à°¾à°µà°¾à°–à±à°Ÿà±à°µà°¿à°¨à°¿à°¯à°¨à±à°¸à±†à°‚à°Ÿà±à°°à°²à± à°…à°Ÿà±à°²à°¾à°¸à± టామాజైటà±à°‰à°¡à±à°®à±à°°à±à°Ÿà±à°‰à°—ారిటిక" + - "à±à°‰à°®à±à°¬à±à°‚à°¡à±à°°à±‚à°Ÿà±à°µà°¾à°¯à°¿à°µà±‹à°Ÿà°¿à°•à±à°µà±à°‚జొవాలామోవారేవాషోకలà±à°®à°¿à°•à±à°¸à±Šà°—ాయాఒయాపిసà±à°•à°¾à°‚టనీసà±" + - "జపోటెకà±à°¬à±à°²à°¿à°¸à°¿à°‚బలà±à°¸à±à°œà±†à°¨à°¾à°—ాపà±à°°à°¾à°®à°¾à°£à°¿à°• మొరొకనౠతమజియటà±à°œà±à°¨à°¿à°²à°¿à°ªà°¿ లేదà±à°œà°¾à°œà°¾à°†à°§à±" + - "నిక à°ªà±à°°à°¾à°®à°¾à°£à°¿à°• అరబికà±à°†à°¸à±à°Ÿà±à°°à±‡à°²à°¿à°¯à°¨à± జరà±à°®à°¨à±à°¸à±à°µà°¿à°¸à± హై జరà±à°®à°¨à±à°†à°¸à±à°Ÿà±à°°à±‡à°²à°¿à°¯à°¨à± ఇం" + - "à°—à±à°²à±€à°·à±à°•à±†à°¨à°¡à°¿à°¯à°¨à± ఇంగà±à°²à±€à°·à±à°¬à±à°°à°¿à°Ÿà°¿à°·à± ఇంగà±à°²à±€à°·à±à°…మెరికనౠఇంగà±à°²à±€à°·à±à°²à°¾à°Ÿà°¿à°¨à± అమెరిక" + - "ెనౠసà±à°ªà°¾à°¨à°¿à°·à±à°¯à±‚రోపియనౠసà±à°ªà°¾à°¨à°¿à°·à±à°®à±†à°•à±à°¸à°¿à°•à°¨à± à°¸à±à°ªà°¾à°¨à°¿à°·à±à°•à±†à°¨à°¡à°¿à°¯à±†à°¨à± à°«à±à°°à±†à°‚à°šà±à°¸à±à°µà°¿à°¸" + - "à± à°«à±à°°à±†à°‚à°šà±à°«à±à°²à±†à°®à°¿à°·à±à°¬à±à°°à±†à°œà±€à°²à°¿à°¯à°¨à± పోరà±à°šà±à°—ీసà±à°¯à±‚రోపియనౠపోరà±à°šà±à°—ీసà±à°®à±Šà°²à±à°¡à°¾à°µà°¿à°¯à°¨à±" + - "సేరà±à°¬à±‹-à°•à±à°°à±Šà°¯à±‡à°·à°¿à°¯à°¨à±à°¸à°°à°³à±€à°•à±ƒà°¤ చైనీసà±à°¸à°¾à°‚à°ªà±à°°à°¦à°¾à°¯à°• చైనీసà±" - -// Size: 1234 bytes, 605 elements -var teLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000f, 0x002d, 0x0048, 0x0069, 0x0078, 0x0093, 0x00ab, - 0x00bd, 0x00d2, 0x00e7, 0x00f6, 0x0114, 0x0129, 0x0147, 0x0165, - 0x017d, 0x018f, 0x01a4, 0x01b9, 0x01ce, 0x01e9, 0x01fe, 0x0210, - 0x0222, 0x023d, 0x0249, 0x0255, 0x027a, 0x028c, 0x029e, 0x02b0, - 0x02c2, 0x02d4, 0x02e6, 0x02ef, 0x0301, 0x0313, 0x0331, 0x0349, - 0x0367, 0x0379, 0x0391, 0x03a0, 0x03b8, 0x03cd, 0x03e5, 0x03fa, - 0x0428, 0x0437, 0x0462, 0x047d, 0x048f, 0x04a4, 0x04b3, 0x04bf, - 0x04d1, 0x04e0, 0x04f9, 0x051a, 0x052f, 0x054d, 0x056b, 0x057d, - // Entry 40 - 7F - 0x05a1, 0x05c2, 0x05e1, 0x05f0, 0x0609, 0x0621, 0x062a, 0x0648, - 0x0660, 0x0681, 0x0696, 0x06ab, 0x06c6, 0x06d5, 0x06e7, 0x0702, - 0x070e, 0x072f, 0x0741, 0x0750, 0x0765, 0x0777, 0x078f, 0x07a4, - 0x07b0, 0x07c8, 0x07e0, 0x07f2, 0x0819, 0x0828, 0x0849, 0x085b, - 0x0867, 0x0888, 0x08a1, 0x08bc, 0x08d1, 0x08ec, 0x08fb, 0x0916, - 0x0928, 0x0943, 0x0952, 0x0961, 0x0979, 0x098e, 0x099a, 0x09bc, - 0x09ce, 0x09dd, 0x09e6, 0x0a29, 0x0a63, 0x0a88, 0x0a97, 0x0aaf, - 0x0ac7, 0x0ad3, 0x0ae2, 0x0af1, 0x0b06, 0x0b18, 0x0b24, 0x0b36, - // Entry 80 - BF - 0x0b48, 0x0b66, 0x0b78, 0x0b8d, 0x0b99, 0x0bb4, 0x0bc6, 0x0bea, - 0x0c02, 0x0c23, 0x0c32, 0x0c4e, 0x0c5d, 0x0c6f, 0x0c87, 0x0cab, - 0x0cbd, 0x0cc6, 0x0cd8, 0x0cf6, 0x0d11, 0x0d23, 0x0d42, 0x0d5a, - 0x0d72, 0x0d8a, 0x0d9c, 0x0dae, 0x0dbd, 0x0dc9, 0x0de7, 0x0e02, - 0x0e1d, 0x0e32, 0x0e47, 0x0e56, 0x0e65, 0x0e7d, 0x0e92, 0x0eb0, - 0x0ebf, 0x0ed4, 0x0ee3, 0x0f04, 0x0f1c, 0x0f2e, 0x0f40, 0x0f4c, - 0x0f61, 0x0f73, 0x0f85, 0x0f97, 0x0fa3, 0x0fb8, 0x0fc7, 0x0fdf, - 0x0ffa, 0x0ffa, 0x1015, 0x1024, 0x102d, 0x104e, 0x104e, 0x1063, - // Entry C0 - FF - 0x1063, 0x1085, 0x10aa, 0x10b9, 0x10ce, 0x10ec, 0x10ec, 0x1101, - 0x1101, 0x1116, 0x1116, 0x1116, 0x111f, 0x111f, 0x1140, 0x1140, - 0x114c, 0x114c, 0x115e, 0x1176, 0x1176, 0x117f, 0x117f, 0x117f, - 0x117f, 0x118b, 0x119a, 0x119a, 0x11a6, 0x11a6, 0x11a6, 0x11bf, - 0x11d1, 0x11dd, 0x11dd, 0x11dd, 0x11f6, 0x11f6, 0x11f6, 0x1208, - 0x1208, 0x1214, 0x1214, 0x1229, 0x1247, 0x1247, 0x1259, 0x1259, - 0x126b, 0x127d, 0x127d, 0x1292, 0x12a7, 0x12b3, 0x12c5, 0x12d4, - 0x12e6, 0x12f2, 0x131a, 0x1335, 0x1353, 0x1365, 0x1377, 0x13a2, - // Entry 100 - 13F - 0x13ba, 0x13ba, 0x13eb, 0x1403, 0x1412, 0x142a, 0x1436, 0x144e, - 0x1460, 0x1478, 0x1487, 0x1499, 0x14ab, 0x14d6, 0x14d6, 0x14e5, - 0x14fe, 0x151a, 0x152c, 0x152c, 0x1538, 0x1547, 0x1547, 0x157b, - 0x158d, 0x15a2, 0x15c4, 0x15c4, 0x15d6, 0x15d6, 0x15e5, 0x15fd, - 0x15fd, 0x1609, 0x1609, 0x162e, 0x1659, 0x1659, 0x1684, 0x16b2, - 0x16d3, 0x16d9, 0x16eb, 0x16eb, 0x16f7, 0x1709, 0x1709, 0x1715, - 0x1736, 0x1736, 0x175f, 0x178e, 0x178e, 0x179d, 0x17b5, 0x17c7, - 0x17d9, 0x1801, 0x1826, 0x1826, 0x1826, 0x1838, 0x1850, 0x185c, - // Entry 140 - 17F - 0x185c, 0x1874, 0x1874, 0x1899, 0x18b1, 0x18c0, 0x18ee, 0x18ee, - 0x18fa, 0x1909, 0x1909, 0x1918, 0x192a, 0x192a, 0x192a, 0x1942, - 0x1951, 0x1960, 0x1991, 0x19bc, 0x19bc, 0x19de, 0x19f0, 0x1a02, - 0x1a0e, 0x1a1a, 0x1a26, 0x1a44, 0x1a44, 0x1a56, 0x1a68, 0x1a8f, - 0x1a8f, 0x1a9b, 0x1a9b, 0x1aa7, 0x1abc, 0x1ade, 0x1ade, 0x1ade, - 0x1ade, 0x1af6, 0x1b11, 0x1b33, 0x1b45, 0x1b60, 0x1b72, 0x1b94, - 0x1b94, 0x1b94, 0x1bac, 0x1bbe, 0x1bd0, 0x1bdf, 0x1bdf, 0x1bf7, - 0x1c09, 0x1c1b, 0x1c2a, 0x1c3c, 0x1c4b, 0x1c66, 0x1c66, 0x1c66, - // Entry 180 - 1BF - 0x1c66, 0x1c75, 0x1c75, 0x1c84, 0x1c90, 0x1c90, 0x1cac, 0x1cc1, - 0x1cd0, 0x1cdc, 0x1ce8, 0x1cf7, 0x1cf7, 0x1cf7, 0x1d0f, 0x1d0f, - 0x1d1e, 0x1d30, 0x1d45, 0x1d5a, 0x1d6c, 0x1d6c, 0x1d7e, 0x1d90, - 0x1d9f, 0x1dab, 0x1dc9, 0x1de8, 0x1e0a, 0x1e16, 0x1e2b, 0x1e4c, - 0x1e58, 0x1e6d, 0x1e7f, 0x1e91, 0x1e91, 0x1ea6, 0x1ec2, 0x1ed4, - 0x1eef, 0x1f07, 0x1f07, 0x1f07, 0x1f1c, 0x1f1c, 0x1f1c, 0x1f3d, - 0x1f43, 0x1f5c, 0x1f6e, 0x1f80, 0x1f9b, 0x1f9b, 0x1fb3, 0x1fb3, - 0x1fbf, 0x1fe7, 0x1fe7, 0x1ff3, 0x200f, 0x2021, 0x2052, 0x206a, - // Entry 1C0 - 1FF - 0x2088, 0x2097, 0x20a3, 0x20b2, 0x20e0, 0x20ff, 0x2114, 0x2126, - 0x2141, 0x2156, 0x2156, 0x2156, 0x2156, 0x2184, 0x2184, 0x2199, - 0x2199, 0x2199, 0x21ba, 0x21ba, 0x21f1, 0x21fd, 0x21fd, 0x2218, - 0x2233, 0x2254, 0x2254, 0x2254, 0x2263, 0x2275, 0x2275, 0x2275, - 0x2275, 0x2293, 0x229f, 0x22b1, 0x22c3, 0x22ee, 0x2300, 0x230c, - 0x231e, 0x231e, 0x231e, 0x232d, 0x2348, 0x2360, 0x2360, 0x2360, - 0x236c, 0x236c, 0x2381, 0x23b2, 0x23d7, 0x23d7, 0x23f8, 0x2404, - 0x2404, 0x2416, 0x2416, 0x2416, 0x2435, 0x244e, 0x246a, 0x248f, - // Entry 200 - 23F - 0x24a4, 0x24bf, 0x24e4, 0x24f6, 0x24f6, 0x24f6, 0x2508, 0x2514, - 0x2532, 0x254d, 0x2575, 0x25a9, 0x25c1, 0x25c1, 0x25c1, 0x25d0, - 0x25dc, 0x25ee, 0x25fa, 0x260c, 0x2618, 0x2630, 0x2630, 0x264b, - 0x2660, 0x2660, 0x2675, 0x269a, 0x26b9, 0x26b9, 0x26b9, 0x26b9, - 0x26d1, 0x26d1, 0x26e6, 0x26f8, 0x270d, 0x2728, 0x276f, 0x278a, - 0x27a5, 0x27bd, 0x27c9, 0x27d5, 0x27d5, 0x27d5, 0x27d5, 0x27d5, - 0x27e7, 0x27e7, 0x27f6, 0x27f6, 0x2808, 0x2814, 0x2820, 0x2820, - 0x2820, 0x2835, 0x2835, 0x2841, 0x284a, 0x285c, 0x285c, 0x285c, - // Entry 240 - 27F - 0x285c, 0x2874, 0x2889, 0x28ad, 0x28ad, 0x28bf, 0x2906, 0x2912, - 0x292b, 0x2937, 0x2978, 0x29af, 0x29db, 0x2a18, 0x2a49, 0x2a7a, - 0x2aab, 0x2af2, 0x2b26, 0x2b5a, 0x2b8b, 0x2bb3, 0x2bcb, 0x2c0b, - 0x2c45, 0x2c66, 0x2c9a, 0x2cc2, 0x2cf3, -} - -// Size: 13483 bytes -var thLangStr string = "" + - "อะฟาร์อับคาซอเวสตะà¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸™à¸ªà¹Œà¸­à¸²à¸„ันอัมฮาราอาราà¸à¸­à¸™à¸­à¸²à¸«à¸£à¸±à¸šà¸­à¸±à¸ªà¸ªà¸±à¸¡à¸­à¸²à¸§à¸²à¸£à¹Œà¹„อย์มาร" + - "าอาเซอร์ไบจานบัชคีร์เบลารุสบัลà¹à¸à¹€à¸£à¸µà¸¢à¸šà¸´à¸ªà¸¥à¸²à¸¡à¸²à¸šà¸±à¸¡à¸šà¸²à¸£à¸²à¹€à¸šà¸‡à¸à¸²à¸¥à¸µà¸—ิเบตเบรตันบอ" + - "สเนียà¸à¸²à¸•à¸²à¸¥à¸±à¸‡à¹€à¸Šà¹€à¸Šà¸™à¸Šà¸²à¸¡à¸­à¸£à¹Œà¹‚รคอร์ซิà¸à¸²à¸„รีเช็à¸à¹€à¸Šà¸­à¸£à¹Œà¸Šà¸ªà¸¥à¸²à¸§à¸´à¸à¸Šà¸¹à¸§à¸±à¸Šà¹€à¸§à¸¥à¸ªà¹Œà¹€à¸”นมาร์à¸" + - "เยอรมันธิเวหิซองคาเอเวà¸à¸£à¸µà¸à¸­à¸±à¸‡à¸à¸¤à¸©à¹€à¸­à¸ªà¹€à¸›à¸­à¸£à¸±à¸™à¹‚ตสเปนเอสโตเนียบัสเà¸à¹€à¸›à¸­à¸£à¹Œà¹€à¸‹à¸µà¸¢" + - "ฟูลาฮ์ฟินà¹à¸¥à¸™à¸”์ฟิจิà¹à¸Ÿà¹‚รà¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ªà¸Ÿà¸£à¸´à¹€à¸‹à¸µà¸¢à¸™à¸•à¸°à¸§à¸±à¸™à¸•à¸à¹„อริชสà¸à¸­à¸•à¸ªà¹Œà¸à¸²à¸¥à¸´à¸à¸à¸²à¸¥à¸´à¹€à¸‹à¸µà¸¢à¸" + - "วารานีคุชราตมานซ์เฮาชาฮิบรูฮินดีฮีรีโมตูโครเอเชียเฮติฮังà¸à¸²à¸£à¸µà¸­à¸²à¸£à¹Œà¹€à¸¡à¹€à¸™à¸µà¸¢" + - "เฮเรโรอินเตอร์ลิงà¸à¸±à¸§à¸­à¸´à¸™à¹‚ดนีเชียอินเตอร์ลิงà¸à¸´à¸§à¸­à¸´à¸à¹‚บเสฉวนยิอีนูเปียà¸à¸­à¸µà¹‚ด" + - "ไอซ์à¹à¸¥à¸™à¸”์อิตาลีอินุà¸à¸•à¸´à¸•à¸¸à¸•à¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™à¸Šà¸§à¸²à¸ˆà¸­à¸£à¹Œà¹€à¸ˆà¸µà¸¢à¸„องโà¸à¸à¸µà¸à¸¹à¸¢à¸¹à¸à¸§à¸™à¸¢à¸²à¸¡à¸²à¸„าซัคà¸à¸£à¸µà¸™" + - "à¹à¸¥à¸™à¸”์เขมรà¸à¸±à¸™à¸™à¸²à¸”าเà¸à¸²à¸«à¸¥à¸µà¸„านูรีà¸à¸±à¸¨à¸¡à¸µà¸£à¹Œà¹€à¸„ิร์ดโà¸à¸¡à¸´à¸„อร์นิชคีร์à¸à¸µà¸‹à¸¥à¸°à¸•à¸´à¸™à¸¥à¸±à¸à¹€à¸‹à¸¡" + - "เบิร์à¸à¸¢à¸¹à¸à¸±à¸™à¸”าลิมเบิร์à¸à¸¥à¸´à¸‡à¸à¸²à¸¥à¸²à¸¥à¸²à¸§à¸¥à¸´à¸—ัวเนียลูบา-à¸à¸²à¸•à¸­à¸‡à¸à¸²à¸¥à¸±à¸•à¹€à¸§à¸µà¸¢à¸¡à¸²à¸¥à¸²à¸à¸²à¸‹à¸µà¸¡à¸²" + - "ร์à¹à¸Šà¸¥à¸¥à¸´à¸ªà¹€à¸¡à¸²à¸£à¸µà¸¡à¸²à¸‹à¸´à¹‚ดเนียมาลายาลัมมองโà¸à¹€à¸¥à¸µà¸¢à¸¡à¸£à¸²à¸à¸µà¸¡à¸²à¹€à¸¥à¸¢à¹Œà¸¡à¸­à¸¥à¸•à¸²à¸žà¸¡à¹ˆà¸²à¸™à¸²à¸­à¸¹à¸£à¸¹à¹€à¸­à¹‡" + - "นเดเบเลเหนือเนปาลดองà¸à¸²à¸”ัตช์นอร์เวย์นีนอสà¸à¹Œà¸™à¸­à¸£à¹Œà¹€à¸§à¸¢à¹Œà¸šà¸¸à¸„มอลเอ็นเดเบเลใต้น" + - "าวาโฮเนียนจาอ็อà¸à¸‹à¸´à¸•à¸±à¸™à¹‚อจิบวาโอโรโมโอริยาออสเซเตียปัà¸à¸ˆà¸²à¸šà¸šà¸²à¸¥à¸µà¹‚ปà¹à¸¥à¸™à¸”์พาชต" + - "ูโปรตุเà¸à¸ªà¸„วิชัวโรà¹à¸¡à¸™à¸‹à¹Œà¸šà¸¸à¸£à¸¸à¸™à¸”ีโรมาเนียรัสเซียรวันดาสันสà¸à¸¤à¸•à¸‹à¸²à¸£à¹Œà¹€à¸”à¸à¸²à¸ªà¸´à¸™à¸˜à¸¸" + - "ซามิเหนือà¹à¸‹à¸‡à¹‚à¸à¸ªà¸´à¸‡à¸«à¸¥à¸ªà¹‚ลวัà¸à¸ªà¹‚ลวีเนียซามัวโชนาโซมาลีà¹à¸­à¸¥à¹€à¸šà¹€à¸™à¸µà¸¢à¹€à¸‹à¸­à¸£à¹Œà¹€à¸šà¸µà¸¢à¸ªà¸§à¸²" + - "ติโซโทใต้ซุนดาสวีเดนสวาฮีลีทมิฬเตลูà¸à¸¹à¸—าจิà¸à¹„ทยติà¸à¸£à¸´à¸à¸à¸²à¹€à¸•à¸´à¸£à¹Œà¸à¹€à¸¡à¸™à¸´à¸ªà¸–านบอต" + - "สวานาตองà¸à¸²à¸•à¸¸à¸£à¸à¸µà¸‹à¸´à¸´à¸•à¸‹à¸­à¸‡à¸à¸²à¸•à¸²à¸•à¸²à¸£à¹Œà¸•à¸²à¸®à¸´à¸•à¸µà¸­à¸¸à¸¢à¸à¸±à¸§à¸¢à¸¹à¹€à¸„รนอูรดูอุซเบà¸à¹€à¸§à¸™à¸”าเวียดน" + - "ามโวลาพึควาโลนีโวลอฟคะห์โอซายิวโยรูบาจ้วงจีนซูลูอาเจะห์อาโคลิอาà¹à¸”งมีอะ" + - "ดืยเà¸à¸­à¸²à¸«à¸£à¸±à¸šà¸•à¸¹à¸™à¸´à¹€à¸‹à¸µà¸¢à¹à¸­à¸Ÿà¸£à¸´à¸®à¸µà¸¥à¸µà¸­à¸±à¸à¹€à¸®à¸¡à¹„อนุอัà¸à¸à¸²à¸”à¹à¸­à¸¥à¸°à¹à¸šà¸¡à¸²à¸­à¸²à¸¥à¸´à¸§à¸•à¹Œà¹€à¸à¸à¹à¸­à¸¥à¹€à¸šà¹€à¸™à¸µ" + - "ยอัลไตใต้อังà¸à¸¤à¸©à¹‚บราณอังคิà¸à¸²à¸­à¸£à¸²à¹€à¸¡à¸­à¸´à¸à¸­à¸²à¹€à¸£à¸²à¸„าเนียนอาเรานาอาราปาโฮอาหรับà¹à¸­" + - "ลจีเรียอาราวัà¸à¸­à¸²à¸«à¸£à¸±à¸šà¹‚มร็อà¸à¹‚à¸à¸­à¸²à¸«à¸£à¸±à¸šà¸žà¸·à¹‰à¸™à¹€à¸¡à¸·à¸­à¸‡à¸­à¸µà¸¢à¸´à¸›à¸•à¹Œà¸­à¸²à¸‹à¸¹à¸ à¸²à¸©à¸²à¸¡à¸·à¸­à¸­à¹€à¸¡à¸£à¸´à¸à¸±à¸™à¸­" + - "ัสตูเรียสโคตาวาอวธีอาเซอร์ไบจานใต้บาลูชิบาหลีบาวาเรียบาสาบามันบาตัà¸à¹‚ทบ" + - "าโคมาลาเบจาเบมบาเบตาวีเบนาบาฟัตพทคะโภชปุรีบิà¸à¸­à¸¥à¸šà¸´à¸™à¸µà¸šà¸±à¸™à¸ˆà¸²à¸£à¹Œà¸à¸¡à¸ªà¸´à¸à¸ªà¸´à¸à¸²à¸žà¸´à¸¨" + - "นุปริยะบัà¸à¸•à¸´à¸¢à¸²à¸£à¸µà¸žà¸±à¸£à¸Šà¸šà¸£à¸²à¸®à¸¸à¸¢à¹‚พโฑอาโคซีบูเรียตบูà¸à¸´à¸ªà¸šà¸¹à¸¥à¸¹à¸šà¸¥à¸´à¸™à¹€à¸¡à¸”ุมบาคัดโดคา" + - "ริบคายูà¸à¸²à¹à¸­à¸•à¹à¸‹à¸¡à¹€à¸‹à¸šà¸¹à¸„ีà¸à¸²à¸Šà¸´à¸šà¸Šà¸²à¸Šà¸°à¸à¸°à¹„ตชูà¸à¸¡à¸²à¸£à¸µà¸Šà¸´à¸™à¸¸à¸à¸ˆà¸²à¸£à¹Œà¸à¸­à¸™à¸Šà¹‡à¸­à¸à¸—อว์ชิพิวยันเ" + - "ชอโรà¸à¸µà¹€à¸Šà¹€à¸¢à¸™à¹€à¸™à¹€à¸„ิร์ดโซรานีคอปติà¸à¸à¸²à¸›à¸´à¸‹à¸™à¸­à¸™à¸•à¸¸à¸£à¸à¸µà¹„ครเมียคาซูเบียนดาโà¸à¸—าดาร์" + - "à¸à¸´à¸™à¹„ททาเดลาà¹à¸§à¸£à¹Œà¸ªà¹€à¸¥à¸§à¸µà¹‚ดà¸à¸£à¸´à¸šà¸”ิงà¸à¸²à¸‹à¸²à¸£à¹Œà¸¡à¸²à¹‚ฑครีซอร์บส์ตอนล่างดูซุนà¸à¸¥à¸²à¸‡à¸”ัวลา" + - "ดัตช์à¸à¸¥à¸²à¸‡à¹‚จลา-ฟอนยีดิวลาดาซาà¸à¸²à¹€à¸­à¹‡à¸¡à¸šà¸¹à¸­à¸µà¸Ÿà¸´à¸à¹€à¸­à¸¡à¸µà¹€à¸¥à¸µà¸¢à¸­à¸µà¸¢à¸´à¸›à¸•à¹Œà¹‚บราณอีà¸à¸²à¸ˆà¸¸à¸à¸­à¸µ" + - "ลาไมต์อังà¸à¸¤à¸©à¸à¸¥à¸²à¸‡à¸¢à¸¹à¸žà¸´à¸à¸à¸¥à¸²à¸‡à¸­à¸µà¸§à¸±à¸™à¹‚ดเอà¸à¸‹à¹Œà¹€à¸•à¸£à¸¡à¸²à¸”ูราฟองฟิลิปปินส์ฟินà¹à¸¥à¸™à¸”์ทอร" + - "์เนดาเล็นฟอนà¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ªà¸à¸²à¸Œà¹‡à¸­à¸‡à¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ªà¸à¸¥à¸²à¸‡à¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ªà¹‚บราณอาร์พิตาฟริเซียนเหน" + - "ือฟริเซียนตะวันออà¸à¸Ÿà¸£à¸¹à¸¥à¸µà¸à¸²à¸à¸²à¸à¸²à¸­à¸¸à¸‹à¸ˆà¸µà¸™à¸à¸²à¸™à¸à¸²à¹‚ยà¸à¸šà¸²à¸¢à¸²à¸”ารีโซโรอัสเตอร์à¸à¸µà¸‹à¸à¸´à¸¥à¹€" + - "บอร์ตà¸à¸´à¸¥à¸²à¸à¸µà¹€à¸¢à¸­à¸£à¸¡à¸±à¸™à¸ªà¸¹à¸‡à¸à¸¥à¸²à¸‡à¹€à¸¢à¸­à¸£à¸¡à¸±à¸™à¸ªà¸¹à¸‡à¹‚บราณà¸à¸­à¸™à¸à¸²à¸™à¸µà¸‚องà¸à¸±à¸§à¸à¸­à¸™à¸”ิà¸à¸­à¸£à¸­à¸™à¸—าโลโà¸à¸˜" + - "ิà¸à¹€à¸à¸£à¹‚บà¸à¸£à¸µà¸à¹‚บราณเยอรมันสวิสวายูฟราฟราà¸à¸¸à¸‹à¸‹à¸µà¸à¸§à¸´à¸Šà¸­à¸´à¸™à¹„ฮดาจีนà¹à¸„ะฮาวายฮินดีฟ" + - "ิจิฮีลีà¸à¸±à¸¢à¸™à¸™à¸®à¸´à¸•à¹„ตต์ม้งซอร์บส์ตอนบนจีนเซียงฮูปาอิบานอิบิบิโออีโลโà¸à¸­à¸´à¸™à¸à¸¸" + - "ชอินเà¸à¸£à¸µà¸¢à¸™à¸­à¸±à¸‡à¸à¸¤à¸©à¸„ลีโอลจาเมà¸à¸²à¹‚ลชบันอึนà¸à¸­à¸¡à¸šà¸²à¸¡à¸²à¸Šà¸²à¹€à¸¡à¸¢à¸´à¸§-เปอร์เซียยิว-อาหรั" + - "บจัทà¸à¸²à¸£à¸²-à¸à¸²à¸¥à¸žà¸²à¸à¸à¸²à¹„บลà¸à¸°à¸‰à¸´à¹ˆà¸™à¸„จูคัมบาà¸à¸§à¸µà¸„าร์บาเดียคาเนมบูทีà¹à¸¢à¸›à¸¡à¸²à¸„อนเดคาบู" + - "เวอร์เดียนูเà¸à¸´à¸™à¸¢à¸²à¸‡à¹‚คโรเคนà¸à¹ˆà¸²à¸‡à¸à¸²à¸ªà¸µà¹‚คตันโคย์ราชีนีโควาร์เคอร์มานิà¸à¸´à¸„าโà¸à¸„" + - "าเลนจินคิมบุนดูโคมิ-เปียร์เมียคà¸à¸­à¸™à¸à¸²à¸™à¸µà¸„ูสไรà¸à¸²à¹à¸›à¸¥à¸„าราไช-บัลคาร์คริโอà¸à¸´à¸™" + - "ารายอาà¹à¸à¸£à¹€à¸¥à¸µà¸¢à¸™à¸à¸¸à¸£à¸¸à¸‚ชัมบาลาบาเฟียโคโลà¸à¸„ูมืยค์คูเทไนลาดิโนà¹à¸¥à¸™à¸ˆà¸µà¸¥à¸²à¸®à¹Œà¸™à¸”าà¹à¸¥" + - "มบาเลซเà¸à¸µà¸¢à¸™à¸¥à¸´à¸‡à¸à¸±à¸§à¸Ÿà¸£à¸±à¸‡à¸à¸²à¹‚นวาลิà¸à¸¹à¹€à¸£à¸µà¸¢à¸¥à¸´à¹‚วเนียลาโà¸à¸•à¸²à¸¥à¸­à¸¡à¸šà¸²à¸£à¹Œà¸”มองโà¸à¹‚ลซิลัตเ" + - "à¸à¸¥à¸¥à¸¹à¸šà¸²-ลูลัวลุยเซโนลันดาลัวลูไชลูเยียจีนคลาสสิà¸à¹à¸¥à¸‹à¸¡à¸²à¸”ูรามาฟามคหีไมถิลี" + - "มาà¸à¸²à¸‹à¸²à¸£à¹Œà¸¡à¸±à¸™à¸”ิงà¸à¸²à¸¡à¸²à¹„ซมาบามอคชามานดาร์เมนเดเมรูมอริสเยนไอริชà¸à¸¥à¸²à¸‡à¸¡à¸²à¸à¸±à¸§à¸§à¸²-" + - "มีทโทเมตามิà¸à¹à¸¡à¸à¸¡à¸µà¸™à¸±à¸‡à¸à¸²à¹€à¸šà¸²à¹à¸¡à¸™à¸ˆà¸¹à¸¡à¸“ีปุระโมฮอว์à¸à¹‚มซีมารีตะวันตà¸à¸¡à¸±à¸™à¸”ังหลายภ" + - "าษาครีà¸à¸¡à¸µà¸£à¸±à¸™à¸”ามารวาฑีเม็นตาไวมยีนเอียร์ซยามาซันดารานีจีนมินหนานนาโปลีน" + - "ามาเยอรมันต่ำ - à¹à¸‹à¸à¸‹à¸­à¸™à¸•à¹ˆà¸³à¹€à¸™à¸§à¸²à¸£à¹Œà¸™à¸µà¸­à¸±à¸ªà¸™à¸µà¸­à¸¹à¸­à¹‹à¸²à¸§à¸™à¸²à¸à¸²à¸à¸§à¸²à¸‹à¸´à¹‚อจีมบูนโนไà¸à¸™à¸­à¸£à¹Œà¸ª" + - "โบราณโนเวียลเอ็นโà¸à¹‚ซโทเหนือเนือร์เนวาร์ดั้งเดิมเนียมเวซีเนียนโà¸à¹€à¸¥à¸™à¸´à¹‚อโ" + - "รนซิมาโอซาà¸à¸µà¸•à¸¸à¸£à¸à¸µà¸­à¸­à¸•à¹‚ตมันปางาซีนันปะห์ลาวีปัมปางาปาเปียเมนโตปาเลาปิà¸à¸²à¸£" + - "์เยอรมันเพนซิลเวเนียเพลาท์ดิชเปอร์เซียโบราณเยอรมันพาลาทิเนตฟินิเชียพีด" + - "มอนต์พอนติà¸à¸žà¸­à¸«à¹Œà¸™à¹€à¸žà¸›à¸£à¸±à¸ªà¹€à¸‹à¸µà¸¢à¹‚ปรวองซาลโบราณà¸à¸µà¹€à¸Šà¸„วิชัวไฮà¹à¸¥à¸™à¸”์ชิมโบราโซราชส" + - "ถานราปานูราโรทองà¸à¸²à¹‚รมัณโà¸à¸£à¸´à¸Ÿà¸Ÿà¸´à¸­à¸±à¸™à¸£à¸­à¸¡à¹‚บโรมานีโรทูมันรูซินโรเวียนาอาโรมา" + - "เนียนรวาซันดาเวซาฮาอราเมอิà¸à¸‹à¸²à¸¡à¸²à¹€à¸£à¸µà¸¢à¹à¸‹à¸¡à¸šà¸¹à¸£à¸¹à¸‹à¸²à¸‹à¸±à¸à¸ªà¸±à¸™à¸•à¸²à¸¥à¸µà¹€à¸ªà¸²à¸£à¸²à¸©à¸à¸£à¹Œà¸à¸±à¸¡à¹€à¸šà¹à¸‹" + - "งà¸à¸¹à¸‹à¸´à¸‹à¸´à¸¥à¸µà¸ªà¸à¸­à¸•à¸ªà¹Œà¸‹à¸²à¸£à¹Œà¸”ิเนียซาสซารีเซนิà¸à¸²à¹€à¸‹à¸™à¸²à¹€à¸‹à¸£à¸µà¹€à¸‹à¸¥à¸„ุปโคย์ราโบโรเซนนีไอร" + - "ิชโบราณซาโมจิเตียนทาเชลีห์ทไทใหà¸à¹ˆà¸­à¸²à¸«à¸£à¸±à¸š-ชาดซิดาโมไซลีเซียตอนล่างเซลายา" + - "ร์ซามิใต้ซามิลูเลซามิอีนารีซามิสคอลต์โซนีนเà¸à¸‹à¸­à¸à¸”ีนซูรินาเมเซà¹à¸£à¸£à¹Œà¸‹à¸²à¹‚ฮฟร" + - "ีเซียนซัทเธอร์à¹à¸¥à¸™à¸”์ซูคูมาซูซูซูเมอโคเมอเรียนสวาฮีลี-คองโà¸à¸‹à¸µà¹€à¸£à¸µà¸¢à¹à¸šà¸šà¸”ั้ง" + - "เดิมซีเรียไซลีเซียตูลูทิมเนเตโซเทเรโนเตตุมตีเà¸à¸£à¸—ิฟโตเà¸à¹€à¸¥à¸²à¹à¸‹à¸„เซอร์คลิงà¸" + - "อนทลิงà¸à¸´à¸•à¸—าลิชทามาเชà¸à¹„นอะซาตองà¸à¸²à¸—็อà¸à¸žà¸´à¸‹à¸´à¸™à¸•à¸¹à¹‚รโยทาโรโà¸à¸‹à¸²à¹‚คเนียซิมชีà¹à¸­à¸™à¸•" + - "ัตมุสลิมทุมบูà¸à¸²à¸•à¸¹à¸§à¸²à¸¥à¸¹à¸•à¸±à¸ªà¸‹à¸²à¸§à¸±à¸„ตูวาทามาไซต์à¹à¸­à¸•à¸¥à¸²à¸ªà¸à¸¥à¸²à¸‡à¸­à¸¸à¸”มูร์ตยูà¸à¸²à¸£à¸´à¸•à¸­à¸¸à¸¡à¸š" + - "ุนดูรูทไวเวเนโต้เวปส์เฟลมิชตะวันตà¸à¹€à¸¡à¸™-ฟรานโà¸à¹€à¸™à¸µà¸¢à¹‚วทิà¸à¹‚วโรวุนจูวัลเซอร์" + - "วาลาโมวาเรย์วาโชจีนอู๋คัลมืยค์เมเà¸à¸£à¹€à¸¥à¸µà¸¢à¹‚ซà¸à¸²à¹€à¸¢à¹‰à¸²à¸¢à¸±à¸›à¹à¸¢à¸‡à¹€à¸šà¸™à¹€à¸¢à¸¡à¸šà¸²à¹€à¸«à¸‡à¸‡à¸à¸²à¸•à¸¸à¸" + - "วางตุ้งซาโปเตà¸à¸šà¸¥à¸´à¸ªà¸‹à¸´à¸¡à¹‚บลส์เซà¹à¸¥à¸™à¸”์เซนาà¸à¸²à¸—ามาไซต์โมร็อà¸à¹‚à¸à¸¡à¸²à¸•à¸£à¸à¸²à¸™à¸‹à¸¹à¸™à¸´à¹„ม่ม" + - "ีข้อมูลภาษาซาซาอาหรับมาตรà¸à¸²à¸™à¸ªà¸¡à¸±à¸¢à¹ƒà¸«à¸¡à¹ˆà¹€à¸¢à¸­à¸£à¸¡à¸±à¸™ - ออสเตรียเยอรมันสูง (สวิส" + - ")อังà¸à¸¤à¸© - ออสเตรเลียอังà¸à¸¤à¸© - à¹à¸„นาดาอังà¸à¸¤à¸© - สหราชอาณาจัà¸à¸£à¸­à¸±à¸‡à¸à¸¤à¸© - อเมริà¸" + - "ันสเปน (ยุโรป)à¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ª (สวิส)เฟลมิชโปรตุเà¸à¸ª - บราซิลโปรตุเà¸à¸ª - ยุโรปมอ" + - "ลโดวาเซอร์โบ-โครเอเชียจีนตัวย่อจีนตัวเต็ม" - -// Size: 1234 bytes, 605 elements -var thLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0012, 0x0024, 0x0036, 0x0054, 0x0063, 0x0078, 0x008d, - 0x009f, 0x00b1, 0x00c3, 0x00db, 0x00ff, 0x0114, 0x0129, 0x0144, - 0x0159, 0x016e, 0x0183, 0x0192, 0x01a4, 0x01b9, 0x01ce, 0x01dd, - 0x01f5, 0x020d, 0x0216, 0x0222, 0x0246, 0x0255, 0x0264, 0x027c, - 0x0291, 0x02a3, 0x02b2, 0x02be, 0x02ca, 0x02dc, 0x02fd, 0x0309, - 0x0324, 0x0333, 0x034e, 0x0360, 0x0378, 0x0384, 0x0390, 0x03a8, - 0x03d5, 0x03e4, 0x0405, 0x041d, 0x0432, 0x0444, 0x0453, 0x0462, - 0x0471, 0x0480, 0x0498, 0x04b3, 0x04bf, 0x04d4, 0x04f2, 0x0504, - // Entry 40 - 7F - 0x052e, 0x054f, 0x0579, 0x0588, 0x059d, 0x05b8, 0x05c4, 0x05df, - 0x05f1, 0x060f, 0x0624, 0x062d, 0x0645, 0x0654, 0x0666, 0x067b, - 0x068a, 0x06a5, 0x06b1, 0x06c6, 0x06d8, 0x06ea, 0x06ff, 0x0711, - 0x071d, 0x0732, 0x0747, 0x0756, 0x077a, 0x078f, 0x07aa, 0x07bf, - 0x07c8, 0x07e3, 0x0805, 0x081a, 0x0832, 0x0850, 0x085f, 0x087d, - 0x0898, 0x08b3, 0x08c2, 0x08d4, 0x08e3, 0x08ef, 0x0901, 0x092e, - 0x093d, 0x094c, 0x095b, 0x0988, 0x09b2, 0x09d9, 0x09eb, 0x0a00, - 0x0a1b, 0x0a30, 0x0a42, 0x0a54, 0x0a6f, 0x0a81, 0x0a8d, 0x0aa2, - // Entry 80 - BF - 0x0ab1, 0x0ac9, 0x0adb, 0x0af0, 0x0b05, 0x0b1d, 0x0b32, 0x0b44, - 0x0b59, 0x0b71, 0x0b80, 0x0b9b, 0x0baa, 0x0bb9, 0x0bcb, 0x0be6, - 0x0bf5, 0x0c01, 0x0c13, 0x0c2e, 0x0c49, 0x0c58, 0x0c6d, 0x0c7c, - 0x0c8e, 0x0ca3, 0x0caf, 0x0cc1, 0x0cd0, 0x0cd9, 0x0cf1, 0x0d1b, - 0x0d33, 0x0d42, 0x0d51, 0x0d6c, 0x0d7e, 0x0d90, 0x0da2, 0x0db4, - 0x0dc3, 0x0dd5, 0x0de4, 0x0dfc, 0x0e11, 0x0e23, 0x0e32, 0x0e4a, - 0x0e53, 0x0e65, 0x0e71, 0x0e7a, 0x0e86, 0x0e9b, 0x0ead, 0x0ec2, - 0x0ed7, 0x0f01, 0x0f1c, 0x0f2e, 0x0f3a, 0x0f4c, 0x0f64, 0x0f79, - // Entry C0 - FF - 0x0f9d, 0x0fb5, 0x0fd6, 0x0feb, 0x1003, 0x1027, 0x103c, 0x1054, - 0x1081, 0x1096, 0x10c0, 0x1102, 0x110e, 0x113b, 0x1159, 0x116b, - 0x1177, 0x11a4, 0x11b6, 0x11c5, 0x11dd, 0x11e9, 0x11f8, 0x1213, - 0x1225, 0x1231, 0x1240, 0x1252, 0x125e, 0x126d, 0x1279, 0x128e, - 0x129d, 0x12a9, 0x12be, 0x12c4, 0x12d9, 0x12f7, 0x1312, 0x131e, - 0x1330, 0x133c, 0x134e, 0x1363, 0x1372, 0x137e, 0x138a, 0x139f, - 0x13ae, 0x13bd, 0x13cf, 0x13e1, 0x13ed, 0x13f9, 0x1408, 0x141a, - 0x1423, 0x142f, 0x1453, 0x146b, 0x1483, 0x1498, 0x14ad, 0x14d1, - // Entry 100 - 13F - 0x14e3, 0x14fb, 0x151f, 0x153a, 0x154c, 0x1561, 0x156d, 0x1585, - 0x1594, 0x15a6, 0x15b5, 0x15c7, 0x15d6, 0x1600, 0x161b, 0x162a, - 0x1645, 0x1661, 0x1670, 0x1682, 0x1694, 0x16a3, 0x16bb, 0x16df, - 0x16f4, 0x170c, 0x172a, 0x1745, 0x175a, 0x1784, 0x178d, 0x17ab, - 0x17e7, 0x17f0, 0x181a, 0x183e, 0x1865, 0x187d, 0x18a4, 0x18d4, - 0x18e3, 0x18e9, 0x18fe, 0x1910, 0x191c, 0x192b, 0x195b, 0x1964, - 0x197f, 0x1991, 0x19bb, 0x19e8, 0x1a0f, 0x1a1e, 0x1a39, 0x1a48, - 0x1a57, 0x1a72, 0x1a93, 0x1a9f, 0x1ab1, 0x1ac0, 0x1ad5, 0x1ae1, - // Entry 140 - 17F - 0x1af3, 0x1b02, 0x1b1d, 0x1b38, 0x1b4d, 0x1b56, 0x1b7a, 0x1b92, - 0x1b9e, 0x1bad, 0x1bc5, 0x1bd7, 0x1be9, 0x1c04, 0x1c3a, 0x1c4c, - 0x1c64, 0x1c76, 0x1c9b, 0x1cb7, 0x1cc0, 0x1cdf, 0x1cee, 0x1d00, - 0x1d09, 0x1d18, 0x1d21, 0x1d3f, 0x1d54, 0x1d63, 0x1d78, 0x1da5, - 0x1dba, 0x1dc6, 0x1ddb, 0x1de7, 0x1df6, 0x1e14, 0x1e26, 0x1e47, - 0x1e53, 0x1e6b, 0x1e83, 0x1eb1, 0x1ec6, 0x1ed5, 0x1ee4, 0x1f0c, - 0x1f1b, 0x1f36, 0x1f4e, 0x1f5d, 0x1f72, 0x1f84, 0x1f93, 0x1fa8, - 0x1fba, 0x1fcc, 0x1fdb, 0x1ff0, 0x1fff, 0x2017, 0x2047, 0x205f, - // Entry 180 - 1BF - 0x2077, 0x2089, 0x20a1, 0x20b0, 0x20bc, 0x20ce, 0x20ea, 0x20ff, - 0x210e, 0x2117, 0x2123, 0x2135, 0x2153, 0x215c, 0x216e, 0x217a, - 0x2186, 0x2198, 0x21b0, 0x21c8, 0x21d4, 0x21e0, 0x21ef, 0x2204, - 0x2213, 0x221f, 0x2237, 0x2252, 0x2277, 0x2283, 0x2295, 0x22b3, - 0x22c2, 0x22d7, 0x22ec, 0x22f8, 0x2319, 0x232b, 0x2343, 0x234f, - 0x2364, 0x2379, 0x2391, 0x239d, 0x23b8, 0x23d9, 0x23f7, 0x2409, - 0x2415, 0x2451, 0x2463, 0x2472, 0x247e, 0x2496, 0x24ab, 0x24bd, - 0x24c9, 0x24e7, 0x24fc, 0x250e, 0x2529, 0x253b, 0x2565, 0x2580, - // Entry 1C0 - 1FF - 0x259b, 0x25ad, 0x25bc, 0x25ce, 0x25f5, 0x2610, 0x2628, 0x263d, - 0x265e, 0x266d, 0x267f, 0x26b8, 0x26d3, 0x26fd, 0x272d, 0x2745, - 0x275d, 0x276f, 0x2784, 0x279c, 0x27c6, 0x27d2, 0x2814, 0x2829, - 0x283b, 0x2856, 0x286b, 0x2883, 0x2892, 0x28a4, 0x28b9, 0x28c8, - 0x28e0, 0x2901, 0x290a, 0x291f, 0x292b, 0x295b, 0x2970, 0x297f, - 0x2994, 0x29af, 0x29be, 0x29cd, 0x29df, 0x29f1, 0x2a24, 0x2a36, - 0x2a42, 0x2a4e, 0x2a60, 0x2a8d, 0x2aab, 0x2acc, 0x2ae7, 0x2af9, - 0x2b15, 0x2b27, 0x2b54, 0x2b6c, 0x2b81, 0x2b99, 0x2bb7, 0x2bd5, - // Entry 200 - 23F - 0x2bea, 0x2bfc, 0x2c14, 0x2c26, 0x2c32, 0x2c71, 0x2c83, 0x2c8f, - 0x2c9e, 0x2cbc, 0x2ce1, 0x2d14, 0x2d26, 0x2d3e, 0x2d4a, 0x2d59, - 0x2d65, 0x2d77, 0x2d86, 0x2d95, 0x2d9e, 0x2db3, 0x2dcb, 0x2de0, - 0x2df5, 0x2e04, 0x2e19, 0x2e3a, 0x2e55, 0x2e67, 0x2e79, 0x2e91, - 0x2ea9, 0x2ec4, 0x2ed9, 0x2eeb, 0x2f03, 0x2f0f, 0x2f45, 0x2f5d, - 0x2f72, 0x2f8a, 0x2f93, 0x2f99, 0x2fae, 0x2fbd, 0x2fe4, 0x300c, - 0x301b, 0x3027, 0x3036, 0x304e, 0x3060, 0x3072, 0x307e, 0x307e, - 0x3090, 0x30a8, 0x30c3, 0x30cf, 0x30db, 0x30e4, 0x30f6, 0x3105, - // Entry 240 - 27F - 0x311d, 0x3135, 0x314a, 0x316e, 0x3183, 0x3195, 0x31da, 0x31e6, - 0x3213, 0x321f, 0x325e, 0x328e, 0x32bb, 0x32ee, 0x3315, 0x3351, - 0x337e, 0x337e, 0x339c, 0x339c, 0x339c, 0x33c3, 0x33d5, 0x3402, - 0x342c, 0x3441, 0x3472, 0x348d, 0x34ab, -} - -// Size: 5494 bytes -var trLangStr string = "" + - "AfarAbhazcaAvestçeAfrikaancaAkanAmharcaAragoncaArapçaAssamcaAvar DiliAym" + - "araAzericeBaÅŸkırtçaBeyaz RusçaBulgarcaBislamaBambaraBengalceTibetçeBreto" + - "ncaBoÅŸnakçaKatalancaÇeçenceChamorroKorsikacaCreeÇekçeKilise SlavcasıÇuva" + - "şçaGalceDancaAlmancaDivehiButan DiliEweYunancaÄ°ngilizceEsperantoÄ°spanyo" + - "lcaEstoncaBaskçaFarsçaFulahFinceFiji DiliFaroe DiliFransızcaBatı Frizces" + - "iÄ°rlandacaÄ°skoç Gal DiliGaliçyacaGuarani DiliGüceratçaManksHausaÄ°branice" + - "HintçeHiri MotuHırvatçaHaiti DiliMacarcaErmeniceHereroInterlinguaEndonez" + - "ceInterlingueÄ°bo DiliSichuan YiInupiakIdoÄ°zlandacaÄ°talyancaInuktitutJapo" + - "ncaCava DiliGürcüceKongoKikuyuKuanyamaKazakçaGrönland DiliKmerceKannadaK" + - "oreceKanuriKeÅŸmirceKürtçeKomiKernevekçeKırgızcaLatinceLüksemburgcaGandaL" + - "imburgcaLingalaLaocaLitvanyacaLuba-KatangaLetoncaMalgaşçaMarshall Adalar" + - "ı DiliMaori DiliMakedoncaMalayalamMoÄŸolcaMarathiMalaycaMaltacaBurmacaNa" + - "uru DiliKuzey NdebeleNepalceNdongaHollandacaNorveççe NynorskNorveççe Bok" + - "mÃ¥lGüney NdebeleNavaho DiliNyanjaOccitanOjibva DiliOromoOriya DiliOsetçe" + - "PencapçaPaliLehçePeÅŸtucaPortekizceKeçuvacaRomanşçaKirundiRomenceRusçaKin" + - "yarwandaSanskritçeSardunya DiliSindhiKuzey SamiSangoSeylancaSlovakçaSlov" + - "enceSamoa DiliShonaSomaliceArnavutçaSırpçaSisvatiGüney SothoSunda DiliÄ°s" + - "veççeSvahiliTamilceTelugu DiliTacikçeTaycaTigrinyaTürkmenceSetsvanaTonga" + - "caTürkçeTsongaTatarcaTahiti DiliUygurcaUkraynacaUrducaÖzbekçeVendaVietna" + - "mcaVolapükValoncaVolofçaZosaYidiÅŸYorubacaZhuangÇinceZulucaAchineseAcoliA" + - "dangmeAdigeceTunus ArapçasıAfrihiliAghemAyni DiliAkad DiliAlabamacaAleut" + - "Gheg ArnavutçasıGüney AltaycaEski Ä°ngilizceAngikaAramiceAraukanya DiliAr" + - "aonaArapaho DiliCezayir ArapçasıArawak DiliFas ArapçasıMısır ArapçasıAsu" + - "Amerikan Ä°ÅŸaret DiliAsturyascaKotavaAwadhiGüney AzericeBaluchiBali DiliB" + - "avyera DiliBasa DiliBamunBatak TobaGhomalaBeja DiliBembaBetawiBenaBafutB" + - "adagaArayaniceBikolBiniBanjar DiliKomSiksikaBishnupriyaBahtiyariBrajBroh" + - "iceBodoAkooseBuryatBugisBuluBlinMedumbaCaddoCaribCayugaAtsamCebuanoKigac" + - "aChibchaÇaÄŸatay DiliChuukeseMariChinook JargonChoctawChipewyanÇerokiceÅža" + - "yen DiliOrta KürtçeKıpticeCapiznonKırım TürkçesiKashubianDakotaDarginceT" + - "aitaDelawareSlaveyDogribDinkaZarmaDogriAÅŸağı SorbçaOrta KadazanDualaOrta" + - "çaÄŸ FelemenkçesiJola-FonyiDyulaDazagaEmbuEfikEmilia DiliEski Mısır Dili" + - "EkajukElamOrtaçaÄŸ Ä°ngilizcesiMerkezi YupikçeEwondoEkstremadura DiliFangF" + - "ilipinceTornedalin FincesiFonCajun FransızcasıOrtaçaÄŸ FransızcasıEski Fr" + - "ansızcaArpitancaKuzey FrizceDoÄŸu FrizcesiFriulianGaGagavuzcaGan ÇincesiG" + - "ayoGbayaZerdüşt DaricesiGeezKiribati DiliGilaniceOrtaçaÄŸ Yüksek Almancas" + - "ıEski Yüksek AlmancaGoa KonkanicesiGondiGorontaloGotçaGreboAntik Yunanc" + - "aÄ°sviçre AlmancasıWayuuFrafraGusiiGwichʼinHaidaHakka ÇincesiHawaii DiliF" + - "iji HintçesiHiligaynonHititçeHmongYukarı SorbçaXiang ÇincesiHupaIbanIbib" + - "ioIlokoÄ°nguşçaÄ°ngriya DiliJamaika Patois DiliLojbanNgombaMachameYahudi F" + - "arsçasıYahudi ArapçasıYutland DiliKarakalpakçaKabiliyeceKaçinJjuKambaKaw" + - "iKabardeyceKanembuTyapMakondeKabuverdianuKenyangKoroKaingangKhasiHotanca" + - "Koyra ChiiniÇitral DiliKırmanççaKakoKalenjinKimbunduKomi-PermyakKonkaniK" + - "osraeanKpelleKaraçay-BalkarcaKrioKinaray-aKarelyacaKurukhShambalaBafiaKö" + - "ln DiyalektiKumukçaKutenaiLadinoLangiLahndaLambaLezgiceLingua Franca Nov" + - "aLigurcaLivoncaLakotacaLombardçaMongoLoziLatgalianLuba-LuluaLuisenoLunda" + - "LuoLushaiLuyiaEdebi ÇinceLazcaMadura DiliMafaMagahiMaithiliMakasarMandin" + - "goMasaiMabaMokÅŸa DiliMandarMendeMeruMorisyenOrtaçaÄŸ Ä°rlandacasıMakhuwa-M" + - "eettoMeta’MicmacMinangkabauMançurya DiliManipuriMohavk DiliMossiOva Çirm" + - "işçesiMundangBirden Fazla DilCreekMiranda DiliMarvariMentawaiMyeneErzyaM" + - "azenderancaMin Nan ÇincesiNapoliceNamaAÅŸağı AlmancaNevariNiasNiueanAo Na" + - "gaKwasioNgiemboonNogaycaEski NorseNovialN’KoKuzey SothoNuerKlasik Nevari" + - "NyamveziNyankoleNyoroNzimaOsageOsmanlı TürkçesiPangasinanPehlevi DiliPam" + - "pangaPapiamentoPalau DiliPicard DiliPensilvanya AlmancasıPlautdietschEsk" + - "i FarsçaPalatin AlmancasıFenike DiliPiyemonteceKuzeybatı KafkasyaPohnpei" + - "anPrusyacaEski ProvensalKiçeceChimborazo Highland QuichuaRajasthaniRapan" + - "uiRarotonganRomanyolcaRif BerbericesiRomboRomancaRotumanRusinceRovianaUl" + - "ahçaRwaSandaveYakutçaSamarit AramcasıSamburuSasakSantaliSaurashtraNgamba" + - "ySanguSicilyacaScotsSassari SarducaSenecaSenaSeriSelkupKoyraboro SenniEs" + - "ki Ä°rlandacaSamogitçeTaÅŸelhitShan DiliÇad ArapçasıSidamoAÅŸağı SilezyacaS" + - "elayarGüney SamiLule SamiInari SamiSkolt SamiSoninkeSogdiana DiliSranan " + - "TongoSererSahoSaterland FrizcesiSukumaSusuSümerceKomorcaKongo SvahiliKla" + - "sik SüryaniceSüryaniceSilezyacaTulucaTimneTesoTerenoTetumTigreTivTokelau" + - "SahurcaKlingoncaTlingitTalışçaTamaÅŸekNyasa TongaTok PisinTuroyoTarokoTsa" + - "koncaTsimshianTatçaTumbukaTuvaluTasawaqTuvacaOrta Fas TamazigtiUdmurtçaU" + - "garit DiliUmbunduKökenVaiVenedikçeVepsBatı FlamancaMain Frankonya DiliVo" + - "ticVõroVunjoWalserValamoVarayVaÅŸoWu ÇincesiKalmıkçaMegrelceSogaYaoYapçaY" + - "angbenYembaNheengatuKantoncaZapotek DiliBlis SembolleriZelandacaZenagaSt" + - "andart Berberi Dili TamazightZuniDilbilim içeriÄŸi yokZazacaModern Standa" + - "rt ArapçaAvusturya Almancasıİsviçre Yüksek AlmancasıAvustralya Ä°ngilizce" + - "siKanada Ä°ngilizcesiÄ°ngiliz Ä°ngilizcesiAmerikan Ä°ngilizcesiLatin Amerika" + - " Ä°spanyolcasıAvrupa Ä°spanyolcasıMeksika Ä°spanyolcasıKanada Fransızcasıİs" + - "viçre FransızcasıFlamancaBrezilya PortekizcesiAvrupa PortekizcesiMoldova" + - "caSırp-Hırvat DiliBasitleÅŸtirilmiÅŸ ÇinceGeleneksel Çince" - -// Size: 1234 bytes, 605 elements -var trLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0004, 0x000b, 0x0013, 0x001d, 0x0021, 0x0028, 0x0030, - 0x0037, 0x003e, 0x0047, 0x004d, 0x0054, 0x0060, 0x006c, 0x0074, - 0x007b, 0x0082, 0x008a, 0x0092, 0x009a, 0x00a4, 0x00ad, 0x00b6, - 0x00be, 0x00c7, 0x00cb, 0x00d2, 0x00e2, 0x00ec, 0x00f1, 0x00f6, - 0x00fd, 0x0103, 0x010d, 0x0110, 0x0117, 0x0121, 0x012a, 0x0135, - 0x013c, 0x0143, 0x014a, 0x014f, 0x0154, 0x015d, 0x0167, 0x0171, - 0x017f, 0x0189, 0x0199, 0x01a3, 0x01af, 0x01ba, 0x01bf, 0x01c4, - 0x01cd, 0x01d4, 0x01dd, 0x01e7, 0x01f1, 0x01f8, 0x0200, 0x0206, - // Entry 40 - 7F - 0x0211, 0x021a, 0x0225, 0x022e, 0x0238, 0x023f, 0x0242, 0x024c, - 0x0256, 0x025f, 0x0266, 0x026f, 0x0278, 0x027d, 0x0283, 0x028b, - 0x0293, 0x02a1, 0x02a7, 0x02ae, 0x02b4, 0x02ba, 0x02c3, 0x02cb, - 0x02cf, 0x02da, 0x02e4, 0x02eb, 0x02f8, 0x02fd, 0x0306, 0x030d, - 0x0312, 0x031c, 0x0328, 0x032f, 0x0339, 0x034f, 0x0359, 0x0362, - 0x036b, 0x0373, 0x037a, 0x0381, 0x0388, 0x038f, 0x0399, 0x03a6, - 0x03ad, 0x03b3, 0x03bd, 0x03cf, 0x03e1, 0x03ef, 0x03fa, 0x0400, - 0x0407, 0x0412, 0x0417, 0x0421, 0x0428, 0x0431, 0x0435, 0x043b, - // Entry 80 - BF - 0x0443, 0x044d, 0x0456, 0x0460, 0x0467, 0x046e, 0x0474, 0x047f, - 0x048a, 0x0497, 0x049d, 0x04a7, 0x04ac, 0x04b4, 0x04bd, 0x04c5, - 0x04cf, 0x04d4, 0x04dc, 0x04e6, 0x04ee, 0x04f5, 0x0501, 0x050b, - 0x0515, 0x051c, 0x0523, 0x052e, 0x0536, 0x053b, 0x0543, 0x054d, - 0x0555, 0x055c, 0x0564, 0x056a, 0x0571, 0x057c, 0x0583, 0x058c, - 0x0592, 0x059b, 0x05a0, 0x05a9, 0x05b1, 0x05b8, 0x05c0, 0x05c4, - 0x05ca, 0x05d2, 0x05d8, 0x05de, 0x05e4, 0x05ec, 0x05f1, 0x05f8, - 0x05ff, 0x060f, 0x0617, 0x061c, 0x0625, 0x062e, 0x0637, 0x063c, - // Entry C0 - FF - 0x064e, 0x065c, 0x066b, 0x0671, 0x0678, 0x0686, 0x068c, 0x0698, - 0x06aa, 0x06b5, 0x06c3, 0x06d5, 0x06d8, 0x06ee, 0x06f8, 0x06fe, - 0x0704, 0x0712, 0x0719, 0x0722, 0x072e, 0x0737, 0x073c, 0x0746, - 0x074d, 0x0756, 0x075b, 0x0761, 0x0765, 0x076a, 0x0770, 0x0779, - 0x077e, 0x0782, 0x078d, 0x0790, 0x0797, 0x07a2, 0x07ab, 0x07af, - 0x07b6, 0x07ba, 0x07c0, 0x07c6, 0x07cb, 0x07cf, 0x07d3, 0x07da, - 0x07df, 0x07e4, 0x07ea, 0x07ef, 0x07f6, 0x07fc, 0x0803, 0x0811, - 0x0819, 0x081d, 0x082b, 0x0832, 0x083b, 0x0844, 0x084f, 0x085c, - // Entry 100 - 13F - 0x0864, 0x086c, 0x087e, 0x0887, 0x088d, 0x0895, 0x089a, 0x08a2, - 0x08a8, 0x08ae, 0x08b3, 0x08b8, 0x08bd, 0x08cd, 0x08d9, 0x08de, - 0x08f5, 0x08ff, 0x0904, 0x090a, 0x090e, 0x0912, 0x091d, 0x092e, - 0x0934, 0x0938, 0x094e, 0x095e, 0x0964, 0x0975, 0x0979, 0x0982, - 0x0994, 0x0997, 0x09aa, 0x09c1, 0x09d0, 0x09d9, 0x09e5, 0x09f3, - 0x09fb, 0x09fd, 0x0a06, 0x0a12, 0x0a16, 0x0a1b, 0x0a2d, 0x0a31, - 0x0a3e, 0x0a46, 0x0a62, 0x0a76, 0x0a85, 0x0a8a, 0x0a93, 0x0a99, - 0x0a9e, 0x0aab, 0x0abf, 0x0ac4, 0x0aca, 0x0acf, 0x0ad8, 0x0add, - // Entry 140 - 17F - 0x0aeb, 0x0af6, 0x0b04, 0x0b0e, 0x0b16, 0x0b1b, 0x0b2a, 0x0b38, - 0x0b3c, 0x0b40, 0x0b46, 0x0b4b, 0x0b55, 0x0b62, 0x0b75, 0x0b7b, - 0x0b81, 0x0b88, 0x0b99, 0x0baa, 0x0bb6, 0x0bc3, 0x0bcd, 0x0bd3, - 0x0bd6, 0x0bdb, 0x0bdf, 0x0be9, 0x0bf0, 0x0bf4, 0x0bfb, 0x0c07, - 0x0c0e, 0x0c12, 0x0c1a, 0x0c1f, 0x0c26, 0x0c32, 0x0c3e, 0x0c4a, - 0x0c4e, 0x0c56, 0x0c5e, 0x0c6a, 0x0c71, 0x0c79, 0x0c7f, 0x0c90, - 0x0c94, 0x0c9d, 0x0ca6, 0x0cac, 0x0cb4, 0x0cb9, 0x0cc8, 0x0cd0, - 0x0cd7, 0x0cdd, 0x0ce2, 0x0ce8, 0x0ced, 0x0cf4, 0x0d06, 0x0d0d, - // Entry 180 - 1BF - 0x0d14, 0x0d1c, 0x0d26, 0x0d2b, 0x0d2f, 0x0d38, 0x0d42, 0x0d49, - 0x0d4e, 0x0d51, 0x0d57, 0x0d5c, 0x0d68, 0x0d6d, 0x0d78, 0x0d7c, - 0x0d82, 0x0d8a, 0x0d91, 0x0d99, 0x0d9e, 0x0da2, 0x0dad, 0x0db3, - 0x0db8, 0x0dbc, 0x0dc4, 0x0ddb, 0x0de9, 0x0df0, 0x0df6, 0x0e01, - 0x0e0f, 0x0e17, 0x0e22, 0x0e27, 0x0e38, 0x0e3f, 0x0e4f, 0x0e54, - 0x0e60, 0x0e67, 0x0e6f, 0x0e74, 0x0e79, 0x0e85, 0x0e95, 0x0e9d, - 0x0ea1, 0x0eb1, 0x0eb7, 0x0ebb, 0x0ec1, 0x0ec8, 0x0ece, 0x0ed7, - 0x0ede, 0x0ee8, 0x0eee, 0x0ef4, 0x0eff, 0x0f03, 0x0f10, 0x0f18, - // Entry 1C0 - 1FF - 0x0f20, 0x0f25, 0x0f2a, 0x0f2f, 0x0f42, 0x0f4c, 0x0f58, 0x0f60, - 0x0f6a, 0x0f74, 0x0f7f, 0x0f95, 0x0fa1, 0x0fad, 0x0fbf, 0x0fca, - 0x0fd5, 0x0fe8, 0x0ff1, 0x0ff9, 0x1007, 0x100e, 0x1029, 0x1033, - 0x103a, 0x1044, 0x104e, 0x105d, 0x1062, 0x1069, 0x1070, 0x1077, - 0x107e, 0x1085, 0x1088, 0x108f, 0x1097, 0x10a8, 0x10af, 0x10b4, - 0x10bb, 0x10c5, 0x10cc, 0x10d1, 0x10da, 0x10df, 0x10ee, 0x10f4, - 0x10f8, 0x10fc, 0x1102, 0x1111, 0x1120, 0x112a, 0x1133, 0x113c, - 0x114b, 0x1151, 0x1163, 0x116a, 0x1175, 0x117e, 0x1188, 0x1192, - // Entry 200 - 23F - 0x1199, 0x11a6, 0x11b2, 0x11b7, 0x11bb, 0x11cd, 0x11d3, 0x11d7, - 0x11df, 0x11e6, 0x11f3, 0x1204, 0x120e, 0x1217, 0x121d, 0x1222, - 0x1226, 0x122c, 0x1231, 0x1236, 0x1239, 0x1240, 0x1247, 0x1250, - 0x1257, 0x1261, 0x1269, 0x1274, 0x127d, 0x1283, 0x1289, 0x1291, - 0x129a, 0x12a0, 0x12a7, 0x12ad, 0x12b4, 0x12ba, 0x12cc, 0x12d5, - 0x12e0, 0x12e7, 0x12ed, 0x12f0, 0x12fa, 0x12fe, 0x130c, 0x131f, - 0x1324, 0x1329, 0x132e, 0x1334, 0x133a, 0x133f, 0x1344, 0x1344, - 0x134f, 0x1359, 0x1361, 0x1365, 0x1368, 0x136e, 0x1375, 0x137a, - // Entry 240 - 27F - 0x1383, 0x138b, 0x1397, 0x13a6, 0x13af, 0x13b5, 0x13d4, 0x13d8, - 0x13ee, 0x13f4, 0x140b, 0x141f, 0x143b, 0x1452, 0x1465, 0x147a, - 0x148f, 0x14ab, 0x14c0, 0x14d6, 0x14ea, 0x1501, 0x1509, 0x151e, - 0x1531, 0x153a, 0x154c, 0x1565, 0x1576, -} - -// Size: 8536 bytes -var ukLangStr string = "" + - "афарÑькаабхазькаавеÑтійÑькаафрикаанÑаканамхарÑькаарагонÑькаарабÑькааÑÑам" + - "ÑькааварÑькааймараазербайджанÑькабашкирÑькабілоруÑькаболгарÑькабіÑламаб" + - "амбарабенгальÑькатибетÑькабретонÑькабоÑнійÑькакаталонÑькачеченÑькачамор" + - "рокорÑиканÑькакрічеÑькацерковноÑлов’ÑнÑькачуваÑькаваллійÑькаданÑьканіме" + - "цькадівехідзонг-кеевегрецькаанглійÑькаеÑперантоіÑпанÑькаеÑтонÑькабаÑкÑÑŒ" + - "каперÑькафулафінÑькафіджіфарерÑькафранцузьказахідно-фризькаірландÑькага" + - "ельÑькагаліÑійÑькагуаранігуджаратіменкÑькахауÑаівритгіндіхірі-мотухорва" + - "Ñ‚ÑькагаїтÑнÑькаугорÑькавірменÑькагерероінтерлінгваіндонезійÑькаінтерлін" + - "гвеігбоÑичуаньінупіакідоіÑландÑькаіталійÑькаінуктітутÑпонÑькаÑванÑькагр" + - "узинÑькаконґолезькакікуйюкунамаказахÑькакалаалліÑуткхмерÑькаканнадакоре" + - "йÑькаканурікашмірÑькакурдÑькакомікорнійÑькакиргизькалатинÑькалюкÑембурз" + - "ькагандалімбургійÑькалінгалалаоÑькалитовÑькалуба-катангалатвійÑькамалаг" + - "аÑійÑькамаршалльÑькамаорімакедонÑькамалаÑламмонгольÑькамаратхімалайÑька" + - "мальтійÑькабірманÑьканаурундебелє північнанепальÑькандонгаголландÑьканю" + - "ношк (ÐорвегіÑ)букмол (ÐорвегіÑ)ндебелє південнанавахоньÑнджаокитаноджі" + - "бваоромооріÑоÑетинÑькапанджабіпаліпольÑькапуштупортугальÑькакечуареторо" + - "манÑькарундірумунÑькароÑійÑькакіньÑруандаÑанÑкритÑардинÑькаÑіндхіÑаамÑÑŒ" + - "ка північнаÑангоÑингальÑькаÑловацькаÑловенÑькаÑамоанÑькашонаÑомаліалбан" + - "ÑькаÑербÑькаÑÑ–ÑватіÑото південнаÑунданÑькашведÑькаÑуахілітамільÑькателу" + - "гутаджицькатайÑькатигриньÑтуркменÑькатÑванатонганÑькатурецькатÑонгатата" + - "Ñ€ÑькатаїтÑнÑькауйгурÑькаукраїнÑькаурдуузбецькавендавʼєтнамÑькаволап’юкв" + - "аллонÑькаволофкхоÑаідишйорубачжуанкитайÑьказулуÑькаачехÑькаачоліадангме" + - "адигейÑькаафрихіліагемайнÑькааккадÑькаалеутÑькапівденноалтайÑькадавньоа" + - "нглійÑькаангікаарамейÑькаарауканÑькаарапахоаравакÑькааÑуаÑтурÑькаавадхі" + - "балучібалійÑькабаÑабамумгомалабеджабембабенабафутбходжпурібікольÑькабін" + - "ікомÑікÑікабраджбодоакуÑбурÑÑ‚ÑькабугійÑькабулублінмедумбакаддокарібÑька" + - "кайюгаатÑамÑебуанÑькакігачібчачагатайÑькачуукÑькамарійÑькачинук жаргонч" + - "окточіпев’ÑнчерокічейєннкурдÑька (Ñорані)коптÑькакримÑькотатарÑькакашуб" + - "ÑькадакотадаргінÑькатаітаделаварÑькаÑлейвдогрибÑькадінкаджермадогрінижн" + - "ьолужицькадуалаÑередньонідерландÑькадьола-фонідіуладазагаембуефікдавньо" + - "єгипетÑькаекаджукеламÑькаÑередньоанглійÑькаевондофангфіліппінÑькафонÑер" + - "едньофранцузькадавньофранцузькафризька північнафризька ÑхіднафріульÑька" + - "гагагаузькагайогбайÑгєезгільбертÑькаÑередньоверхньонімецькадавньоверхнь" + - "онімецькагондігоронталоготÑькагребодавньогрецьканімецька швейцарÑькагуÑ" + - "іїкучінхайдагавайÑькахілігайнонхітітіхмонгверхньолужицькахупаібанÑькаіб" + - "ібіоілоканÑькаінгуÑькаложбаннгомбамачамеіудео-перÑькаіудео-арабÑькакара" + - "калпацькакабільÑькакачінйюкамбакавікабардинÑькаканембутіапмакондекабуве" + - "рдіанукорокхаÑіхотаноÑакÑькакойра чіїнікакокаленджинкімбундукомі-перм’Ñ" + - "цькаконканікоÑраекпеллєкарачаєво-балкарÑькакарельÑькакурукхшамбалабафіа" + - "колоніанкумицькакутенаїладінолангіландаламбалезгінÑькалакотамонголозілу" + - "ба-лулуалуїÑеньолундалуолушейлуйÑмадурÑькамафамагадхімайтхілімакаÑарÑьк" + - "амандінгомаÑаїмабамокшамандарÑькамендемерумаврикійÑька креольÑькаÑередн" + - "ьоірландÑькамакува-меетометамікмакмінангкабауманчжурÑькаманіпурімагавкм" + - "оÑÑімундангдекілька мовкрікмірандÑькамарварімиінерзÑнеаполітанÑьканаман" + - "ижньонімецьканеварініаÑьканіуеквазіонгємбунногайÑькадавньонорвезьканкоÑ" + - "ото північнануерневарі клаÑичнаньÑмвезіньÑнколеньоронзімаоÑейджоÑманÑьк" + - "апангаÑінанÑькапехлевіпампангапап’ÑментопалауанÑькадавньоперÑькафінікій" + - "Ñько-пунічнапонапедавньопрованÑальÑькакічераджаÑтханірапануїраротонгаро" + - "мбоциганÑькаарумунÑькаРваÑандавеÑкутÑькаÑамаритÑнÑька арамейÑькаÑамбуру" + - "ÑаÑакÑькаÑантальÑькангамбайÑангуÑицилійÑькашотландÑькаÑенекаÑенаÑелькуп" + - "Ñькакойраборо ÑенідавньоірландÑькатачелітшанÑькачадійÑька арабÑькаÑідам" + - "оÑаамÑька південнаÑаамÑька лулеÑаамÑька інаріÑаамÑька ÑкольтÑонінкеÑогд" + - "ійÑькаÑранан тонгоÑерерÑахоÑукумаÑуÑушумерÑькакоморÑькаконгійÑьке Ñуахі" + - "ліÑирійÑька клаÑичнаÑирійÑькатемнетеÑотеренотетумтигретівтокелауклінгон" + - "тлінгіттамашекньÑÑа тонгаток-піÑінтарокоцимшиантумбукатувалутаÑавактуви" + - "нÑькацентральномароканÑька тамазітудмуртÑькаугаритÑькаумбундукоріньваїв" + - "одÑькавуньоВалзерÑькаваламоварайвашокалмицькаÑогаÑоÑпÑнгбенємбакантонÑÑŒ" + - "каÑапотекÑькабліÑÑа мовазенагаÑтандартна марокканÑька берберÑьказуньїне" + - "має мовного вміÑтузазакіÑучаÑна Ñтандартна арабÑькаверхньонімецька (Шве" + - "йцаріÑ)англійÑька британÑькаіÑпанÑька (Європа)фламандÑькапортугальÑька " + - "(Європа)молдавÑькаÑербÑько-хорватÑька" - -// Size: 1230 bytes, 603 elements -var ukLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0010, 0x0020, 0x0036, 0x0048, 0x0050, 0x0062, 0x0076, - 0x0086, 0x0098, 0x00a8, 0x00b4, 0x00d2, 0x00e6, 0x00fa, 0x010e, - 0x011c, 0x012a, 0x0140, 0x0152, 0x0166, 0x017a, 0x0190, 0x01a2, - 0x01b0, 0x01c8, 0x01ce, 0x01da, 0x0201, 0x0211, 0x0225, 0x0233, - 0x0243, 0x024f, 0x025e, 0x0264, 0x0272, 0x0286, 0x0298, 0x02aa, - 0x02bc, 0x02cc, 0x02da, 0x02e2, 0x02f0, 0x02fa, 0x030c, 0x0320, - 0x033d, 0x0351, 0x0363, 0x0379, 0x0387, 0x0399, 0x03a9, 0x03b3, - 0x03bd, 0x03c7, 0x03d8, 0x03ec, 0x0400, 0x0410, 0x0424, 0x0430, - // Entry 40 - 7F - 0x0446, 0x0460, 0x0476, 0x047e, 0x048c, 0x049a, 0x04a0, 0x04b4, - 0x04c8, 0x04da, 0x04ea, 0x04fa, 0x050e, 0x0524, 0x0530, 0x053c, - 0x054e, 0x0564, 0x0576, 0x0584, 0x0596, 0x05a2, 0x05b6, 0x05c6, - 0x05ce, 0x05e2, 0x05f4, 0x0606, 0x0620, 0x062a, 0x0644, 0x0652, - 0x0660, 0x0672, 0x0689, 0x069d, 0x06b7, 0x06cf, 0x06d9, 0x06ef, - 0x06ff, 0x0715, 0x0723, 0x0735, 0x074b, 0x075f, 0x0769, 0x0788, - 0x079c, 0x07a8, 0x07be, 0x07dd, 0x07fc, 0x081b, 0x0827, 0x0835, - 0x0841, 0x084f, 0x0859, 0x0861, 0x0875, 0x0885, 0x088d, 0x089d, - // Entry 80 - BF - 0x08a7, 0x08c1, 0x08cb, 0x08e5, 0x08ef, 0x0901, 0x0913, 0x0929, - 0x0939, 0x094d, 0x0959, 0x097a, 0x0984, 0x099a, 0x09ac, 0x09c0, - 0x09d4, 0x09dc, 0x09e8, 0x09fa, 0x0a0a, 0x0a18, 0x0a31, 0x0a45, - 0x0a55, 0x0a63, 0x0a77, 0x0a83, 0x0a95, 0x0aa3, 0x0ab3, 0x0ac9, - 0x0ad5, 0x0ae9, 0x0af9, 0x0b05, 0x0b17, 0x0b2b, 0x0b3d, 0x0b51, - 0x0b59, 0x0b69, 0x0b73, 0x0b89, 0x0b9a, 0x0bae, 0x0bb8, 0x0bc2, - 0x0bca, 0x0bd6, 0x0be0, 0x0bf2, 0x0c02, 0x0c12, 0x0c1c, 0x0c2a, - 0x0c3e, 0x0c3e, 0x0c4e, 0x0c56, 0x0c64, 0x0c76, 0x0c76, 0x0c88, - // Entry C0 - FF - 0x0c88, 0x0caa, 0x0cca, 0x0cd6, 0x0cea, 0x0d00, 0x0d00, 0x0d0e, - 0x0d0e, 0x0d22, 0x0d22, 0x0d22, 0x0d28, 0x0d28, 0x0d3a, 0x0d3a, - 0x0d46, 0x0d46, 0x0d52, 0x0d64, 0x0d64, 0x0d6c, 0x0d76, 0x0d76, - 0x0d82, 0x0d8c, 0x0d96, 0x0d96, 0x0d9e, 0x0da8, 0x0da8, 0x0dba, - 0x0dce, 0x0dd6, 0x0dd6, 0x0ddc, 0x0dea, 0x0dea, 0x0dea, 0x0df4, - 0x0df4, 0x0dfc, 0x0e04, 0x0e16, 0x0e28, 0x0e30, 0x0e38, 0x0e46, - 0x0e50, 0x0e62, 0x0e6e, 0x0e78, 0x0e8c, 0x0e94, 0x0e9e, 0x0eb4, - 0x0ec4, 0x0ed6, 0x0eed, 0x0ef7, 0x0f08, 0x0f14, 0x0f20, 0x0f3f, - // Entry 100 - 13F - 0x0f4f, 0x0f4f, 0x0f71, 0x0f83, 0x0f8f, 0x0fa3, 0x0fad, 0x0fc3, - 0x0fcd, 0x0fe1, 0x0feb, 0x0ff7, 0x1001, 0x101d, 0x101d, 0x1027, - 0x1051, 0x1064, 0x106e, 0x107a, 0x1082, 0x108a, 0x108a, 0x10aa, - 0x10b8, 0x10c8, 0x10ec, 0x10ec, 0x10f8, 0x10f8, 0x1100, 0x1118, - 0x1118, 0x111e, 0x111e, 0x1142, 0x1162, 0x1162, 0x1181, 0x119c, - 0x11b0, 0x11b4, 0x11c6, 0x11c6, 0x11ce, 0x11d8, 0x11d8, 0x11e0, - 0x11f8, 0x11f8, 0x1226, 0x1250, 0x1250, 0x125a, 0x126c, 0x127a, - 0x1284, 0x129e, 0x12c5, 0x12c5, 0x12c5, 0x12cf, 0x12d9, 0x12e3, - // Entry 140 - 17F - 0x12e3, 0x12f5, 0x12f5, 0x1309, 0x1315, 0x131f, 0x133d, 0x133d, - 0x1345, 0x1355, 0x1361, 0x1375, 0x1385, 0x1385, 0x1385, 0x1391, - 0x139d, 0x13a9, 0x13c2, 0x13dd, 0x13dd, 0x13f7, 0x140b, 0x1415, - 0x1419, 0x1423, 0x142b, 0x1443, 0x1451, 0x1459, 0x1467, 0x147f, - 0x147f, 0x1487, 0x1487, 0x1491, 0x14ab, 0x14c0, 0x14c0, 0x14c0, - 0x14c8, 0x14da, 0x14ea, 0x1508, 0x1516, 0x1522, 0x152e, 0x1555, - 0x1555, 0x1555, 0x1569, 0x1575, 0x1583, 0x158d, 0x159d, 0x15ad, - 0x15bb, 0x15c7, 0x15d1, 0x15db, 0x15e5, 0x15f9, 0x15f9, 0x15f9, - // Entry 180 - 1BF - 0x15f9, 0x1605, 0x1605, 0x160f, 0x1617, 0x1617, 0x162a, 0x163a, - 0x1644, 0x164a, 0x1654, 0x165c, 0x165c, 0x165c, 0x166e, 0x1676, - 0x1684, 0x1694, 0x16aa, 0x16ba, 0x16c4, 0x16cc, 0x16d6, 0x16ea, - 0x16f4, 0x16fc, 0x1729, 0x174d, 0x1764, 0x176c, 0x1778, 0x178e, - 0x17a4, 0x17b4, 0x17c0, 0x17ca, 0x17ca, 0x17d8, 0x17ef, 0x17f7, - 0x180b, 0x1819, 0x1819, 0x1821, 0x1829, 0x1829, 0x1829, 0x1845, - 0x184d, 0x1869, 0x1875, 0x1883, 0x188b, 0x188b, 0x1897, 0x18a5, - 0x18b7, 0x18d5, 0x18d5, 0x18db, 0x18f4, 0x18fc, 0x1919, 0x1929, - // Entry 1C0 - 1FF - 0x1939, 0x1943, 0x194d, 0x1959, 0x196b, 0x1987, 0x1995, 0x19a5, - 0x19ba, 0x19d0, 0x19d0, 0x19d0, 0x19d0, 0x19ea, 0x19ea, 0x1a0f, - 0x1a0f, 0x1a0f, 0x1a1b, 0x1a1b, 0x1a43, 0x1a4b, 0x1a4b, 0x1a61, - 0x1a6f, 0x1a81, 0x1a81, 0x1a81, 0x1a8b, 0x1a9d, 0x1a9d, 0x1a9d, - 0x1a9d, 0x1ab1, 0x1ab7, 0x1ac5, 0x1ad5, 0x1b04, 0x1b12, 0x1b24, - 0x1b3a, 0x1b3a, 0x1b48, 0x1b52, 0x1b68, 0x1b7e, 0x1b7e, 0x1b8a, - 0x1b92, 0x1b92, 0x1ba8, 0x1bc3, 0x1be3, 0x1be3, 0x1bf1, 0x1bff, - 0x1c22, 0x1c2e, 0x1c2e, 0x1c2e, 0x1c4f, 0x1c68, 0x1c83, 0x1ca0, - // Entry 200 - 23F - 0x1cae, 0x1cc2, 0x1cd9, 0x1ce3, 0x1ceb, 0x1ceb, 0x1cf7, 0x1cff, - 0x1d11, 0x1d23, 0x1d46, 0x1d69, 0x1d7b, 0x1d7b, 0x1d7b, 0x1d85, - 0x1d8d, 0x1d99, 0x1da3, 0x1dad, 0x1db3, 0x1dc1, 0x1dc1, 0x1dcf, - 0x1ddd, 0x1ddd, 0x1deb, 0x1e00, 0x1e11, 0x1e11, 0x1e1d, 0x1e1d, - 0x1e2b, 0x1e2b, 0x1e39, 0x1e45, 0x1e53, 0x1e65, 0x1e9e, 0x1eb2, - 0x1ec6, 0x1ed4, 0x1ee0, 0x1ee6, 0x1ee6, 0x1ee6, 0x1ee6, 0x1ee6, - 0x1ef4, 0x1ef4, 0x1efe, 0x1f12, 0x1f1e, 0x1f28, 0x1f30, 0x1f30, - 0x1f30, 0x1f42, 0x1f42, 0x1f4a, 0x1f4e, 0x1f52, 0x1f5e, 0x1f66, - // Entry 240 - 27F - 0x1f66, 0x1f7a, 0x1f90, 0x1fa5, 0x1fa5, 0x1fb1, 0x1ff3, 0x1ffd, - 0x2023, 0x202f, 0x2063, 0x2063, 0x2096, 0x2096, 0x2096, 0x20bf, - 0x20bf, 0x20bf, 0x20e0, 0x20e0, 0x20e0, 0x20e0, 0x20f6, 0x20f6, - 0x211f, 0x2133, 0x2158, -} - -// Size: 3431 bytes -var urLangStr string = "" + - "ابقازیانایÙریکانزاکانامÛاریعربیآسامیایماراآزربائیجانیباشکیربیلاروسیبلغار" + - "یبمبارابنگالیتبتیبریٹنبوسنیکیٹالانکوراسیکنچیکویلشڈینشجرمنڈیویÛیژونگکھاا" + - "یویونانیانگریزیایسپرانٹوÛسپانویاسٹونینباسکیÙارسیÙینیشÙجیÙیروئیزÙرانسیسی" + - "مغربی ÙریسیئنآئیرÙشسکاٹ گیلÙکگالیشیائیگÙارانیگجراتیمینکسÛؤساعبرانیÛندیک" + - "راتیÛیتیÛنگیرینارمینیبین لسانیاتانڈونیثیائیاÙگبوسچوان ایآئس لینڈکاطالوی" + - "اینÙکٹیٹٹجاپانیجاویجارجیکانگوکیکویوقزاخكالاليستخمیرکنّاڈاکوریائیکشمیریک" + - "ردشکورنشکرغیزیلاطینیلگژمبرگشگینڈالÙنگَلالاؤلتھÙواینینلبا-كاتانجالیٹوینم" + - "لاگاسیماؤریمقدونیائیمالایالممنگؤلیمراٹهیمالائیمالٹیبرمیشمالی دبیلنیپالی" + - "ڈچنورویجینی نینورسکنارویجین بوکملنیانجاآكسیٹاناورومواورÙیااوسیٹکپنجابیپ" + - "ولستانیپشتوپÙرتگالیکویچوآرومانشرونڈیرومینینروسیکینیاروانڈاسَنسکرÙتسندھی" + - "شمالی سامیسانجوسنÛالاسلوواکسلووینیائیساموآنشوناصومالیالبانیصربیسواتیجنو" + - "بی سوتھوسنڈانیزسویڈشسواحلیتملتیلگوتاجکتھائیٹگرینیاترکمانسواناٹونگنترکیز" + - "ونگاتاتارتاÛیتییوئگÛریوکرینیائیاردوازبیکوینڈاویتنامیوولوÙژوسایدشیوروباچ" + - "ینیزولواکولیاغمماپوچےآسوبیمبابینابوڈوچیگاچیروکیسورانی کردشتائتازرماذیلی" + - " سربیائیدوالاجولا ÙونياامبوایÙÙÚ©Ùلیپینوگاغاغاوزسوئس جرمنگسیÛوائیاپر سربی" + - "ائینگومباماشیمقبائلیکامباماكوندهكابويرديانوكويرا شينيكالينجينکومی پرمیا" + - "ککونکنیشامبالاباÙيالانگیلاکوٹالوزیلیوبا لولوآلولویاماسایمیروموریسیینماخ" + - "اوا-ميتومیٹاموÛاکمنڈانگناماكوايسواینکوشمالی سوتھونویرنینکولكيشیرومبوروا" + - "سامبوروسانگوسیناكويرابورو سينیتشلحيتجنوبی سامیلول سامیاناری سامیسکولٹ س" + - "امیکانگو سواحلیتیسوٹیٹمکلنگنٹوک Ù¾ÙسÙنٹمبوکاتاساواقسینٹرل ایٹلس ٹمازائٹن" + - "امعلوم زبانوائیونجوسوگااسٹینڈرڈ مراقشی تمازیقیکوئی لسانی مواد Ù†Ûیںماڈرن" + - " اسٹینڈرڈ عربیآسٹریائی جرمنسوئس Ûائی جرمنآسٹریلیائی انگریزیکینیڈین انگری" + - "زیبرطانوی انگریزیامریکی انگریزیلاطینی امریکی Ûسپانوییورپی Ûسپانویمیکسیک" + - "Ù† Ûسپانویکینیڈین Ùرانسیسیسوئس ÙرینچÙلیمÙشبرازیلی پرتگالییورپی پرتگالیسر" + - "بو-کروئیشینچینی (آسان کردÛ)روایتی چینی" - -// Size: 1234 bytes, 605 elements -var urLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0010, 0x0010, 0x0022, 0x002a, 0x0036, 0x0036, - 0x003e, 0x0048, 0x0048, 0x0054, 0x006a, 0x0076, 0x0086, 0x0092, - 0x0092, 0x009e, 0x00aa, 0x00b2, 0x00bc, 0x00c6, 0x00d4, 0x00d4, - 0x00d4, 0x00e4, 0x00e4, 0x00ea, 0x00ea, 0x00ea, 0x00f2, 0x00fa, - 0x0102, 0x010e, 0x011c, 0x0122, 0x012e, 0x013c, 0x014e, 0x015c, - 0x016a, 0x0174, 0x017e, 0x017e, 0x0188, 0x018e, 0x019c, 0x01ac, - 0x01c5, 0x01d1, 0x01e4, 0x01f6, 0x0204, 0x0210, 0x021a, 0x0222, - 0x022e, 0x0236, 0x0236, 0x0240, 0x0248, 0x0256, 0x0262, 0x0262, - // Entry 40 - 7F - 0x0277, 0x028d, 0x028d, 0x0297, 0x02a6, 0x02a6, 0x02a6, 0x02b7, - 0x02c3, 0x02d5, 0x02e1, 0x02e9, 0x02f3, 0x02fd, 0x0309, 0x0309, - 0x0311, 0x0321, 0x0329, 0x0335, 0x0343, 0x0343, 0x034f, 0x0357, - 0x0357, 0x0361, 0x036d, 0x0379, 0x0389, 0x0393, 0x0393, 0x03a1, - 0x03a7, 0x03bb, 0x03d0, 0x03dc, 0x03ea, 0x03ea, 0x03f4, 0x0406, - 0x0416, 0x0422, 0x042e, 0x043a, 0x0444, 0x044c, 0x044c, 0x045f, - 0x046b, 0x046b, 0x046f, 0x0490, 0x04ab, 0x04ab, 0x04ab, 0x04b7, - 0x04c5, 0x04c5, 0x04d1, 0x04dd, 0x04e9, 0x04f5, 0x04f5, 0x0505, - // Entry 80 - BF - 0x050d, 0x051d, 0x0529, 0x0535, 0x053f, 0x054d, 0x0555, 0x056b, - 0x057b, 0x057b, 0x0585, 0x0598, 0x05a2, 0x05ae, 0x05ba, 0x05ce, - 0x05da, 0x05e2, 0x05ee, 0x05fa, 0x0602, 0x060c, 0x0621, 0x062f, - 0x0639, 0x0645, 0x064b, 0x0655, 0x065d, 0x0667, 0x0675, 0x0681, - 0x068b, 0x0695, 0x069d, 0x06a7, 0x06b1, 0x06bd, 0x06c9, 0x06dd, - 0x06e5, 0x06ef, 0x06f9, 0x0707, 0x0707, 0x0707, 0x0711, 0x0719, - 0x071f, 0x072b, 0x072b, 0x0733, 0x073b, 0x073b, 0x0745, 0x0745, - 0x0745, 0x0745, 0x0745, 0x074b, 0x074b, 0x074b, 0x074b, 0x074b, - // Entry C0 - FF - 0x074b, 0x074b, 0x074b, 0x074b, 0x074b, 0x0757, 0x0757, 0x0757, - 0x0757, 0x0757, 0x0757, 0x0757, 0x075d, 0x075d, 0x075d, 0x075d, - 0x075d, 0x075d, 0x075d, 0x075d, 0x075d, 0x075d, 0x075d, 0x075d, - 0x075d, 0x075d, 0x0767, 0x0767, 0x076f, 0x076f, 0x076f, 0x076f, - 0x076f, 0x076f, 0x076f, 0x076f, 0x076f, 0x076f, 0x076f, 0x076f, - 0x076f, 0x0777, 0x0777, 0x0777, 0x0777, 0x0777, 0x0777, 0x0777, - 0x0777, 0x0777, 0x0777, 0x0777, 0x0777, 0x077f, 0x077f, 0x077f, - 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x078b, 0x078b, 0x07a0, - // Entry 100 - 13F - 0x07a0, 0x07a0, 0x07a0, 0x07a0, 0x07a0, 0x07a0, 0x07aa, 0x07aa, - 0x07aa, 0x07aa, 0x07aa, 0x07b2, 0x07b2, 0x07c9, 0x07c9, 0x07d3, - 0x07d3, 0x07e6, 0x07e6, 0x07e6, 0x07ee, 0x07f8, 0x07f8, 0x07f8, - 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x0806, - 0x0806, 0x0806, 0x0806, 0x0806, 0x0806, 0x0806, 0x0806, 0x0806, - 0x0806, 0x080a, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, - 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, 0x0816, - 0x0816, 0x0816, 0x0827, 0x0827, 0x0827, 0x082d, 0x082d, 0x082d, - // Entry 140 - 17F - 0x082d, 0x0837, 0x0837, 0x0837, 0x0837, 0x0837, 0x084c, 0x084c, - 0x084c, 0x084c, 0x084c, 0x084c, 0x084c, 0x084c, 0x084c, 0x084c, - 0x0858, 0x0862, 0x0862, 0x0862, 0x0862, 0x0862, 0x086e, 0x086e, - 0x086e, 0x0878, 0x0878, 0x0878, 0x0878, 0x0878, 0x0886, 0x089c, - 0x089c, 0x089c, 0x089c, 0x089c, 0x089c, 0x08af, 0x08af, 0x08af, - 0x08af, 0x08bf, 0x08bf, 0x08d4, 0x08e0, 0x08e0, 0x08e0, 0x08e0, - 0x08e0, 0x08e0, 0x08e0, 0x08e0, 0x08ee, 0x08f8, 0x08f8, 0x08f8, - 0x08f8, 0x08f8, 0x0902, 0x0902, 0x0902, 0x0902, 0x0902, 0x0902, - // Entry 180 - 1BF - 0x0902, 0x090e, 0x090e, 0x090e, 0x0916, 0x0916, 0x092b, 0x092b, - 0x092b, 0x092f, 0x092f, 0x0937, 0x0937, 0x0937, 0x0937, 0x0937, - 0x0937, 0x0937, 0x0937, 0x0937, 0x0941, 0x0941, 0x0941, 0x0941, - 0x0941, 0x0949, 0x0959, 0x0959, 0x096e, 0x0976, 0x0976, 0x0976, - 0x0976, 0x0976, 0x0980, 0x0980, 0x0980, 0x098c, 0x098c, 0x098c, - 0x098c, 0x098c, 0x098c, 0x098c, 0x098c, 0x098c, 0x098c, 0x098c, - 0x0994, 0x0994, 0x0994, 0x0994, 0x0994, 0x0994, 0x09a0, 0x09a0, - 0x09a0, 0x09a0, 0x09a0, 0x09aa, 0x09bf, 0x09c7, 0x09c7, 0x09c7, - // Entry 1C0 - 1FF - 0x09d3, 0x09d3, 0x09d3, 0x09d3, 0x09d3, 0x09d3, 0x09d3, 0x09d3, - 0x09d3, 0x09d3, 0x09d3, 0x09d3, 0x09d3, 0x09d3, 0x09d3, 0x09d3, - 0x09d3, 0x09d3, 0x09d3, 0x09d3, 0x09d3, 0x09db, 0x09db, 0x09db, - 0x09db, 0x09db, 0x09db, 0x09db, 0x09e5, 0x09e5, 0x09e5, 0x09e5, - 0x09e5, 0x09e5, 0x09eb, 0x09eb, 0x09eb, 0x09eb, 0x09f9, 0x09f9, - 0x09f9, 0x09f9, 0x09f9, 0x0a03, 0x0a03, 0x0a03, 0x0a03, 0x0a03, - 0x0a0b, 0x0a0b, 0x0a0b, 0x0a26, 0x0a26, 0x0a26, 0x0a32, 0x0a32, - 0x0a32, 0x0a32, 0x0a32, 0x0a32, 0x0a45, 0x0a54, 0x0a67, 0x0a7a, - // Entry 200 - 23F - 0x0a7a, 0x0a7a, 0x0a7a, 0x0a7a, 0x0a7a, 0x0a7a, 0x0a7a, 0x0a7a, - 0x0a7a, 0x0a7a, 0x0a91, 0x0a91, 0x0a91, 0x0a91, 0x0a91, 0x0a91, - 0x0a99, 0x0a99, 0x0aa1, 0x0aa1, 0x0aa1, 0x0aa1, 0x0aa1, 0x0aab, - 0x0aab, 0x0aab, 0x0aab, 0x0aab, 0x0abc, 0x0abc, 0x0abc, 0x0abc, - 0x0abc, 0x0abc, 0x0ac8, 0x0ac8, 0x0ad6, 0x0ad6, 0x0afc, 0x0afc, - 0x0afc, 0x0afc, 0x0b13, 0x0b1b, 0x0b1b, 0x0b1b, 0x0b1b, 0x0b1b, - 0x0b1b, 0x0b1b, 0x0b23, 0x0b23, 0x0b23, 0x0b23, 0x0b23, 0x0b23, - 0x0b23, 0x0b23, 0x0b23, 0x0b2b, 0x0b2b, 0x0b2b, 0x0b2b, 0x0b2b, - // Entry 240 - 27F - 0x0b2b, 0x0b2b, 0x0b2b, 0x0b2b, 0x0b2b, 0x0b2b, 0x0b57, 0x0b57, - 0x0b7c, 0x0b7c, 0x0ba0, 0x0bb9, 0x0bd3, 0x0bf6, 0x0c13, 0x0c30, - 0x0c4b, 0x0c73, 0x0c8c, 0x0ca9, 0x0cc8, 0x0cdb, 0x0ce7, 0x0d04, - 0x0d1d, 0x0d1d, 0x0d36, 0x0d52, 0x0d67, -} - -// Size: 2306 bytes -var uzLangStr string = "" + - "abxazchaafrikanchaakanchaamxarchaarabchaassamchaozarbayjonchaboshqirchab" + - "elaruschabolgarchabambarchabengalchatibetchabretonchabosniychakatalancha" + - "korsianchachexchauelschadatchanemischayovonchaivichayunonchainglizchaesp" + - "erantochaispanchaestonchabaskchaforschafinchafijchafarerchafransuzchagÊ»a" + - "rbiy frizianchairlandchagalitsiychagoranchagujoratchamenchaxauschaibroni" + - "yhindchaxorvatchagaitchavengrchaarmanchaindoneyzchaigbochazichuan yichai" + - "slandchaitalyanchainuktitutchayaponchayavanchagruzinchakikuychaqozoqchak" + - "alallisutchaxmerchakannadchakoreyschakashmirchakurdchakornishchaqirgÊ»izc" + - "halotinchalyuksemburgchagandchalingalchalaoschalitovchaluba-katangchalat" + - "ishchamalagasiychamaoriychamakedonchamalayamchamo‘g‘ulchamaratchamalaych" + - "amaltachabirmanchashimoliy ndebelchanepalchagollandchanorvegcha ninorskn" + - "orvegcha bokmaloromochaoriychapanjobchapolyakchapushtu tiliportugalchaqv" + - "echuancharomancharundcharumincharuschakinyarvandchasanskritchasindxiycha" + - "shimoliy semiychasangoanchasinholchaslovakchaslovenchashoniychasomalicha" + - "albanchaserbchasundanchashvedchasvahilchatamilchatelugvanchatojikchatayc" + - "hatigrinchaturkmanchatongochaturkchatatarchauygÊ»urchaukrainchaurduchaoÊ»z" + - "bekchavyetnamchavolofchaxosanchayorubchaxitoychazuluanchaag‘emchamapuchi" + - "ychaasuchabembachabenachabodochachigchacherokchasorani kurd tilitaitchaz" + - "armachaquyi sorbchadualchayola-fonyichaembuchafilipinchagagozchashveysar" + - "iya nemischasiguzchagavaychayuqori sorbchangombchamachamchaqobilchakambc" + - "hamaqondiykabuverdianchaqoyra-chinchakalenjinchakomi-permyakchakonkancha" + - "shambalachabafiychalangchalakotchaluochaluychamasaychameruchamorisyencha" + - "makuva-mittochametachamohaukchamundangchanamachakvaziychanqoanchanoyrcha" + - "nyankolchaqichiancharombacharuandchasamburchasanguanchaseniychakoryaboro" + - " senniychatachilgitchajanubiy semiychaluli semiychainari semiychashkolt " + - "semiychakongo svahiliychatesoanchatosovoqchamarkaziy atlas vaqt zonasino" + - "maʼlum tilvayanchavunjoanchasoganchastandart marokash tamazittil tarkibi" + - " yoÊ»qzamonavij standart arabchaAvstriya olmonchasiShvesariya olmonchasiA" + - "vstraliya inglizchasiKanada inglizchasiBritaniya inglizchasiLotin Amerik" + - "a ispanchasiYevropa ispanchasiMeksika ispanchasiKanada fransuzchasiShves" + - "ariya fransuzchasiflamandchaBraziliya portugalchasiYevropa portugalchasi" + - "moldovan ruminchasoddalashtirilgan xitoychaanʼanaviy xitoycha" - -// Size: 1234 bytes, 605 elements -var uzLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0008, 0x0008, 0x0012, 0x0019, 0x0021, 0x0021, - 0x0028, 0x0030, 0x0030, 0x0030, 0x003d, 0x0047, 0x0051, 0x005a, - 0x005a, 0x0063, 0x006c, 0x0074, 0x007d, 0x0086, 0x0090, 0x0090, - 0x0090, 0x009a, 0x009a, 0x00a1, 0x00a1, 0x00a1, 0x00a8, 0x00ae, - 0x00b6, 0x00b6, 0x00be, 0x00c4, 0x00cc, 0x00d5, 0x00e1, 0x00e9, - 0x00f1, 0x00f8, 0x00ff, 0x00ff, 0x0105, 0x010b, 0x0113, 0x011d, - 0x0130, 0x0139, 0x0139, 0x0144, 0x014c, 0x0156, 0x015c, 0x0163, - 0x016a, 0x0171, 0x0171, 0x017a, 0x0181, 0x0189, 0x0191, 0x0191, - // Entry 40 - 7F - 0x0191, 0x019c, 0x019c, 0x01a3, 0x01b0, 0x01b0, 0x01b0, 0x01b9, - 0x01c3, 0x01cf, 0x01d7, 0x01df, 0x01e8, 0x01e8, 0x01f0, 0x01f0, - 0x01f8, 0x0205, 0x020c, 0x0215, 0x021e, 0x021e, 0x0228, 0x022f, - 0x022f, 0x0239, 0x0244, 0x024c, 0x025a, 0x0261, 0x0261, 0x026a, - 0x0271, 0x0279, 0x0287, 0x0290, 0x029c, 0x029c, 0x02a5, 0x02af, - 0x02b9, 0x02c7, 0x02cf, 0x02d7, 0x02df, 0x02e8, 0x02e8, 0x02fa, - 0x0302, 0x0302, 0x030c, 0x031d, 0x032d, 0x032d, 0x032d, 0x032d, - 0x032d, 0x032d, 0x0335, 0x033c, 0x033c, 0x0345, 0x0345, 0x034e, - // Entry 80 - BF - 0x0359, 0x0364, 0x036f, 0x0377, 0x037e, 0x0386, 0x038c, 0x0399, - 0x03a4, 0x03a4, 0x03ae, 0x03bf, 0x03c9, 0x03d2, 0x03db, 0x03e4, - 0x03e4, 0x03ed, 0x03f6, 0x03fe, 0x0405, 0x0405, 0x0405, 0x040e, - 0x0416, 0x041f, 0x0427, 0x0432, 0x043a, 0x0440, 0x0449, 0x0453, - 0x0453, 0x045b, 0x0462, 0x0462, 0x046a, 0x046a, 0x0474, 0x047d, - 0x0484, 0x048e, 0x048e, 0x0498, 0x0498, 0x0498, 0x04a0, 0x04a8, - 0x04a8, 0x04b0, 0x04b0, 0x04b8, 0x04c1, 0x04c1, 0x04c1, 0x04c1, - 0x04c1, 0x04c1, 0x04c1, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, - // Entry C0 - FF - 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04d6, 0x04d6, 0x04d6, - 0x04d6, 0x04d6, 0x04d6, 0x04d6, 0x04dc, 0x04dc, 0x04dc, 0x04dc, - 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, - 0x04dc, 0x04dc, 0x04e4, 0x04e4, 0x04eb, 0x04eb, 0x04eb, 0x04eb, - 0x04eb, 0x04eb, 0x04eb, 0x04eb, 0x04eb, 0x04eb, 0x04eb, 0x04eb, - 0x04eb, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, - 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f9, 0x04f9, 0x04f9, - 0x04f9, 0x04f9, 0x04f9, 0x04f9, 0x04f9, 0x0502, 0x0502, 0x0512, - // Entry 100 - 13F - 0x0512, 0x0512, 0x0512, 0x0512, 0x0512, 0x0512, 0x0519, 0x0519, - 0x0519, 0x0519, 0x0519, 0x0521, 0x0521, 0x052d, 0x052d, 0x0534, - 0x0534, 0x0541, 0x0541, 0x0541, 0x0548, 0x0548, 0x0548, 0x0548, - 0x0548, 0x0548, 0x0548, 0x0548, 0x0548, 0x0548, 0x0548, 0x0552, - 0x0552, 0x0552, 0x0552, 0x0552, 0x0552, 0x0552, 0x0552, 0x0552, - 0x0552, 0x0552, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, - 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, - 0x055a, 0x055a, 0x0570, 0x0570, 0x0570, 0x0576, 0x0576, 0x0576, - // Entry 140 - 17F - 0x0576, 0x057e, 0x057e, 0x057e, 0x057e, 0x057e, 0x058c, 0x058c, - 0x058c, 0x058c, 0x058c, 0x058c, 0x058c, 0x058c, 0x058c, 0x058c, - 0x0594, 0x059d, 0x059d, 0x059d, 0x059d, 0x059d, 0x05a5, 0x05a5, - 0x05a5, 0x05ac, 0x05ac, 0x05ac, 0x05ac, 0x05ac, 0x05b4, 0x05c2, - 0x05c2, 0x05c2, 0x05c2, 0x05c2, 0x05c2, 0x05cf, 0x05cf, 0x05cf, - 0x05cf, 0x05da, 0x05da, 0x05e9, 0x05f2, 0x05f2, 0x05f2, 0x05f2, - 0x05f2, 0x05f2, 0x05f2, 0x05f2, 0x05fd, 0x0605, 0x0605, 0x0605, - 0x0605, 0x0605, 0x060c, 0x060c, 0x060c, 0x060c, 0x060c, 0x060c, - // Entry 180 - 1BF - 0x060c, 0x0614, 0x0614, 0x0614, 0x0614, 0x0614, 0x0614, 0x0614, - 0x0614, 0x061a, 0x061a, 0x0620, 0x0620, 0x0620, 0x0620, 0x0620, - 0x0620, 0x0620, 0x0620, 0x0620, 0x0628, 0x0628, 0x0628, 0x0628, - 0x0628, 0x062f, 0x063a, 0x063a, 0x0649, 0x0650, 0x0650, 0x0650, - 0x0650, 0x0650, 0x0659, 0x0659, 0x0659, 0x0663, 0x0663, 0x0663, - 0x0663, 0x0663, 0x0663, 0x0663, 0x0663, 0x0663, 0x0663, 0x0663, - 0x066a, 0x066a, 0x066a, 0x066a, 0x066a, 0x066a, 0x0673, 0x0673, - 0x0673, 0x0673, 0x0673, 0x067b, 0x067b, 0x0682, 0x0682, 0x0682, - // Entry 1C0 - 1FF - 0x068c, 0x068c, 0x068c, 0x068c, 0x068c, 0x068c, 0x068c, 0x068c, - 0x068c, 0x068c, 0x068c, 0x068c, 0x068c, 0x068c, 0x068c, 0x068c, - 0x068c, 0x068c, 0x068c, 0x068c, 0x068c, 0x0696, 0x0696, 0x0696, - 0x0696, 0x0696, 0x0696, 0x0696, 0x069e, 0x069e, 0x069e, 0x069e, - 0x069e, 0x069e, 0x06a6, 0x06a6, 0x06a6, 0x06a6, 0x06af, 0x06af, - 0x06af, 0x06af, 0x06af, 0x06b9, 0x06b9, 0x06b9, 0x06b9, 0x06b9, - 0x06c1, 0x06c1, 0x06c1, 0x06d4, 0x06d4, 0x06d4, 0x06e0, 0x06e0, - 0x06e0, 0x06e0, 0x06e0, 0x06e0, 0x06f0, 0x06fd, 0x070b, 0x071a, - // Entry 200 - 23F - 0x071a, 0x071a, 0x071a, 0x071a, 0x071a, 0x071a, 0x071a, 0x071a, - 0x071a, 0x071a, 0x072b, 0x072b, 0x072b, 0x072b, 0x072b, 0x072b, - 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, - 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, - 0x0734, 0x0734, 0x0734, 0x0734, 0x073e, 0x073e, 0x0758, 0x0758, - 0x0758, 0x0758, 0x0765, 0x076d, 0x076d, 0x076d, 0x076d, 0x076d, - 0x076d, 0x076d, 0x0777, 0x0777, 0x0777, 0x0777, 0x0777, 0x0777, - 0x0777, 0x0777, 0x0777, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, - // Entry 240 - 27F - 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x0798, 0x0798, - 0x07a9, 0x07a9, 0x07c3, 0x07d6, 0x07eb, 0x0801, 0x0813, 0x0828, - 0x0828, 0x0840, 0x0852, 0x0864, 0x0877, 0x088e, 0x0898, 0x08af, - 0x08c4, 0x08d5, 0x08d5, 0x08ef, 0x0902, -} - -// Size: 7788 bytes -var viLangStr string = "" + - "Tiếng AfarTiếng AbkhaziaTiếng AvestanTiếng Nam PhiTiếng AkanTiếng Amhari" + - "cTiếng AragonTiếng Ả RậpTiếng AssamTiếng AvaricTiếng AymaraTiếng Azerbai" + - "janTiếng BashkirTiếng BelarusTiếng BulgariaTiếng BislamaTiếng BambaraTiế" + - "ng BengaliTiếng Tây TạngTiếng BretonTiếng Nam TÆ°Tiếng CatalanTiếng Chech" + - "enTiếng ChamorroTiếng CorsicaTiếng CreeTiếng SécTiếng SlavÆ¡ Nhà thá»Tiếng" + - " ChuvashTiếng WalesTiếng Äan MạchTiếng ÄứcTiếng DivehiTiếng DzongkhaTiến" + - "g EweTiếng Hy LạpTiếng AnhTiếng Quốc Tế NgữTiếng Tây Ban NhaTiếng Estoni" + - "aTiếng BasqueTiếng Ba TÆ°Tiếng FulahTiếng Phần LanTiếng FijiTiếng FaoreTi" + - "ếng PhápTiếng FrisiaTiếng Ai-lenTiếng XentÆ¡ (Xcốt len)Tiếng GalicianTi" + - "ếng GuaraniTiếng GujaratiTiếng ManxTiếng HausaTiếng Do TháiTiếng Hindi" + - "Tiếng Hiri MotuTiếng CroatiaTiếng HaitiTiếng HungaryTiếng ArmeniaTiếng H" + - "ereroTiếng Khoa Há»c Quốc TếTiếng IndonesiaTiếng InterlingueTiếng IgboTiế" + - "ng Di Tứ XuyênTiếng InupiaqTiếng IdoTiếng IcelandTiếng ÃTiếng InuktitutT" + - "iếng NhậtTiếng JavaTiếng GruziaTiếng KongoTiếng KikuyuTiếng KuanyamaTiến" + - "g KazakhTiếng KalaallisutTiếng KhÆ¡-meTiếng KannadaTiếng HànTiếng KanuriT" + - "iếng KashmiriTiếng KurdTiếng KomiTiếng CornwallTiếng KyrgyzTiếng La-tinh" + - "Tiếng LuxembourgTiếng GandaTiếng LimburgTiếng LingalaTiếng LàoTiếng Lít-" + - "vaTiếng Luba-KatangaTiếng LatviaTiếng MalagasyTiếng MarshallTiếng MaoriT" + - "iếng MacedoniaTiếng MalayalamTiếng Mông CổTiếng MarathiTiếng MalaysiaTiế" + - "ng MaltTiếng Miến ÄiệnTiếng NauruTiếng Ndebele Miá»n BắcTiếng NepalTiếng " + - "NdongaTiếng Hà LanTiếng Na Uy (Nynorsk)Tiếng Na Uy (BokmÃ¥l)Tiếng Ndebele" + - " Miá»n NamTiếng NavajoTiếng NyanjaTiếng OccitanTiếng OjibwaTiếng OromoTiế" + - "ng OriyaTiếng OsseticTiếng PunjabTiếng PaliTiếng Ba LanTiếng PashtoTiếng" + - " Bồ Äào NhaTiếng QuechuaTiếng RomanshTiếng RundiTiếng RumaniTiếng NgaTiế" + - "ng KinyarwandaTiếng PhạnTiếng SardiniaTiếng SindhiTiếng Sami Miá»n BắcTiế" + - "ng SangoTiếng SinhalaTiếng SlovakTiếng SloveniaTiếng SamoaTiếng ShonaTiế" + - "ng SomaliTiếng An-ba-niTiếng SerbiaTiếng SwatiTiếng SesothoTiếng SudanTi" + - "ếng Thụy ÄiểnTiếng SwahiliTiếng TamilTiếng TeluguTiếng TajikTiếng Thái" + - "Tiếng TigrigyaTiếng TurkTiếng TswanaTiếng TongaTiếng Thổ NhÄ© KỳTiếng Tso" + - "ngaTiếng TatarTiếng TahitiTiếng UyghurTiếng UcrainaTiếng UÄ‘uTiếng UzbekT" + - "iếng VendaTiếng ViệtTiếng VolapükTiếng WalloonTiếng WolofTiếng XhosaTiến" + - "g Y-Ä‘itTiếng YorubaTiếng ZhuangTiếng TrungTiếng ZuluTiếng AchineseTiếng " + - "AcoliTiếng AdangmeTiếng AdygheTiếng AfrihiliTiếng AghemTiếng AinuTiếng A" + - "kkadiaTiếng AleutTiếng Altai Miá»n NamTiếng Anh cổTiếng AngikaTiếng Arama" + - "icTiếng AraucanianTiếng ArapahoTiếng ArawakTiếng AsuTiếng AsturiasTiếng " + - "AwadhiTiếng BaluchiTiếng BaliTiếng BasaaTiếng BamunTiếng GhomalaTiếng Be" + - "jaTiếng BembaTiếng BenaTiếng BafutTiếng BhojpuriTiếng BikolTiếng BiniTiế" + - "ng KomTiếng SiksikaTiếng BrajTiếng BodoTiếng AkooseTiếng BuriatTiếng Bug" + - "inTiếng BuluTiếng BlinTiếng MedumbaTiếng CaddoTiếng CaribTiếng CayugaTiế" + - "ng AtsamTiếng CebuanoTiếng ChigaTiếng ChibchaTiếng ChagataiTiếng ChuukTi" + - "ếng MariBiệt ngữ ChinookTiếng ChoctawTiếng ChipewyanTiếng CherokeeTiến" + - "g CheyenneTiếng Kurd SoraniTiếng CopticTiếng Thổ NhÄ© Kỳ CrimeanTiếng Kas" + - "hubiaTiếng DakotaTiếng DargwaTiếng TaitaTiếng DelawareTiếng SlaveTiếng D" + - "ogribTiếng DinkaTiếng ZarmaTiếng DogriTiếng Hạ SorbiaTiếng DualaTiếng Hà" + - " Lan Trung cổTiếng Jola-FonyiTiếng DyulaTiếng DazagaTiếng EmbuTiếng Efik" + - "Tiếng Ai Cập cổTiếng EkajukTiếng ElamiteTiếng Anh Trung cổTiếng EwondoTi" + - "ếng FangTiếng PhilipinTiếng FonTiếng Pháp Trung cổTiếng Pháp cổTiếng F" + - "risian Miá»n BắcTiếng Frisian Miá»n ÄôngTiếng FriulianTiếng GaTiếng Gagauz" + - "Tiếng GayoTiếng GbayaTiếng GeezTiếng GilbertTiếng Thượng Giéc-man Trung " + - "cổTiếng Thượng Giéc-man cổTiếng GondiTiếng GorontaloTiếng Gô-tíchTiếng G" + - "reboTiếng Hy Lạp cổTiếng Äức (Thụy SÄ©)Tiếng GusiiTiếng GwichʼinTiếng Hai" + - "daTiếng HawaiiTiếng HiligaynonTiếng HittiteTiếng HmôngTiếng Thượng Sorbi" + - "aTiếng HupaTiếng IbanTiếng IbibioTiếng IlokoTiếng IngushTiếng LojbanTiến" + - "g NgombaTiếng MachameTiếng Judeo-Ba TÆ°Tiếng Judeo-Ả RậpTiếng Kara-Kalpak" + - "Tiếng KabyleTiếng KachinTiếng JjuTiếng KambaTiếng KawiTiếng KabardianTiế" + - "ng KanembuTiếng TyapTiếng MakondeTiếng KabuverdianuTiếng KoroTiếng Khasi" + - "Tiếng KhotanTiếng Koyra ChiiniTiếng KakoTiếng KalenjinTiếng KimbunduTiến" + - "g Komi-PermyakTiếng KonkaniTiếng KosraeTiếng KpelleTiếng Karachay-Balkar" + - "Tiếng KarelianTiếng KurukhTiếng ShambalaTiếng BafiaTiếng CologneTiếng Ku" + - "mykTiếng KutenaiTiếng LadinoTiếng LangiTiếng LahndaTiếng LambaTiếng Lezg" + - "hianTiếng LakotaTiếng MongoTiếng LoziTiếng Luba-LuluaTiếng LuisenoTiếng " + - "LundaTiếng LuoTiếng LushaiTiếng LuyiaTiếng MaduraTiếng MafaTiếng MagahiT" + - "iếng MaithiliTiếng MakasarTiếng MandingoTiếng MasaiTiếng MabaTiếng Moksh" + - "aTiếng MandarTiếng MendeTiếng MeruTiếng MorisyenTiếng Ai-len Trung cổTiế" + - "ng Makhuwa-MeettoTiếng Meta’Tiếng MicmacTiếng MinangkabauTiếng ManchuTiế" + - "ng ManipuriTiếng MohawkTiếng MossiTiếng MundangNhiá»u Ngôn ngữTiếng Creek" + - "Tiếng MirandaTiếng MarwariTiếng MyeneTiếng ErzyaTiếng NapoliTiếng NamaTi" + - "ếng Hạ Giéc-manTiếng NewariTiếng NiasTiếng NiueanTiếng KwasioTiếng Ngi" + - "emboonTiếng NogaiTiếng Na Uy cổTiếng N’KoBắc SothoTiếng NuerTiếng Newari" + - " Cổ Ä‘iểnTiếng NyamweziTiếng NyankoleTiếng NyoroTiếng NzimaTiếng OsageTiế" + - "ng Thổ NhÄ© Kỳ OttomanTiếng PangasinanTiếng PahlaviTiếng PampangaTiếng Pa" + - "piamentoTiếng PalauanTiếng Ba TÆ° cổTiếng PhoeniciaTiếng PohnpeianTiếng P" + - "rovençal cổTiếng KʼicheʼTiếng RajasthaniTiếng RapanuiTiếng RarotonganTiế" + - "ng RomboTiếng RomanyTiếng AromaniaTiếng RwaTiếng SandaweTiếng SakhaTiếng" + - " Samaritan AramaicTiếng SamburuTiếng SasakTiếng SantaliTiếng NgambayTiến" + - "g SanguTiếng SiciliaTiếng ScotsTiếng SenecaTiếng SenaTiếng SelkupTiếng K" + - "oyraboro SenniTiếng Ai-len cổTiếng TachelhitTiếng ShanTiếng Ả-Rập ChadTi" + - "ếng SidamoTIếng Sami Miá»n NamTiếng Lule SamiTiếng Inari SamiTiếng Skol" + - "t SamiTiếng SoninkeTiếng SogdienTiếng Sranan TongoTiếng SererTiếng SahoT" + - "iếng SukumaTiếng SusuTiếng SumeriaTiếng CômoTiếng Swahili CongoTiếng Syr" + - "ia Cổ Ä‘iểnTiếng SyriacTiếng TimneTiếng TesoTiếng TerenoTetumTiếng TigreT" + - "iếng TivTiếng TokelauTiếng KlingonTiếng TlingitTiếng TamashekTiếng Nyasa" + - " TongaTiếng Tok PisinTiếng TarokoTiếng TsimshianTiếng TumbukaTiếng Tuval" + - "uTiếng TasawaqTiếng TuvinianTiếng Tamazight Miá»n Trung Ma-rốcTiếng Udmur" + - "tTiếng UgariticTiếng UmbunduTiếng RootTiếng VaiTiếng VoticTiếng VunjoTiế" + - "ng WalserTiếng WalamoTiếng WarayTiếng WashoTiếng KalmykTiếng SogaTiếng Y" + - "aoTiếng YapTiếng YangbenTiếng YembaTiếng Quảng ÄôngTiếng ZapotecKý hiệu " + - "BlissymbolsTiếng ZenagaTiếng Tamazight Chuẩn của Ma-rốcTiếng ZuniKhông c" + - "ó ná»™i dung ngôn ngữTiếng ZazaTiếng Ả Rập Hiện đạiTiếng Thượng Giéc-man " + - "(Thụy SÄ©)Tiếng Anh (Anh)Tiếng Anh (Mỹ)Tiếng Tây Ban Nha (Mỹ La tinh)Tiến" + - "g FlemishTiếng Bồ Äào Nha (Braxin)Tiếng MoldovaTiếng Xéc bi - Croatia" - -// Size: 1230 bytes, 603 elements -var viLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000c, 0x001c, 0x002b, 0x003a, 0x0046, 0x0055, 0x0063, - 0x0074, 0x0081, 0x008f, 0x009d, 0x00af, 0x00be, 0x00cd, 0x00dd, - 0x00ec, 0x00fb, 0x010a, 0x011d, 0x012b, 0x013a, 0x0149, 0x0158, - 0x0168, 0x0177, 0x0183, 0x018f, 0x01a8, 0x01b7, 0x01c4, 0x01d7, - 0x01e5, 0x01f3, 0x0203, 0x020e, 0x021e, 0x0229, 0x0242, 0x0256, - 0x0265, 0x0273, 0x0281, 0x028e, 0x02a0, 0x02ac, 0x02b9, 0x02c6, - 0x02d4, 0x02e2, 0x02fd, 0x030d, 0x031c, 0x032c, 0x0338, 0x0345, - 0x0355, 0x0362, 0x0373, 0x0382, 0x038f, 0x039e, 0x03ad, 0x03bb, - // Entry 40 - 7F - 0x03d9, 0x03ea, 0x03fd, 0x0409, 0x041f, 0x042e, 0x0439, 0x0448, - 0x0452, 0x0463, 0x0471, 0x047d, 0x048b, 0x0498, 0x04a6, 0x04b6, - 0x04c4, 0x04d7, 0x04e6, 0x04f5, 0x0501, 0x050f, 0x051f, 0x052b, - 0x0537, 0x0547, 0x0555, 0x0564, 0x0576, 0x0583, 0x0592, 0x05a1, - 0x05ad, 0x05bc, 0x05d0, 0x05de, 0x05ee, 0x05fe, 0x060b, 0x061c, - 0x062d, 0x063f, 0x064e, 0x065e, 0x066a, 0x0680, 0x068d, 0x06a9, - 0x06b6, 0x06c4, 0x06d3, 0x06ea, 0x0701, 0x071b, 0x0729, 0x0737, - 0x0746, 0x0754, 0x0761, 0x076e, 0x077d, 0x078b, 0x0797, 0x07a5, - // Entry 80 - BF - 0x07b3, 0x07c9, 0x07d8, 0x07e7, 0x07f4, 0x0802, 0x080d, 0x0820, - 0x082e, 0x083e, 0x084c, 0x0865, 0x0872, 0x0881, 0x088f, 0x089f, - 0x08ac, 0x08b9, 0x08c7, 0x08d7, 0x08e5, 0x08f2, 0x0901, 0x090e, - 0x0924, 0x0933, 0x0940, 0x094e, 0x095b, 0x0968, 0x0978, 0x0984, - 0x0992, 0x099f, 0x09b6, 0x09c4, 0x09d1, 0x09df, 0x09ed, 0x09fc, - 0x0a08, 0x0a15, 0x0a22, 0x0a30, 0x0a40, 0x0a4f, 0x0a5c, 0x0a69, - 0x0a77, 0x0a85, 0x0a93, 0x0aa0, 0x0aac, 0x0abc, 0x0ac9, 0x0ad8, - 0x0ae6, 0x0ae6, 0x0af6, 0x0b03, 0x0b0f, 0x0b1e, 0x0b1e, 0x0b2b, - // Entry C0 - FF - 0x0b2b, 0x0b43, 0x0b53, 0x0b61, 0x0b70, 0x0b82, 0x0b82, 0x0b91, - 0x0b91, 0x0b9f, 0x0b9f, 0x0b9f, 0x0baa, 0x0baa, 0x0bba, 0x0bba, - 0x0bc8, 0x0bc8, 0x0bd7, 0x0be3, 0x0be3, 0x0bf0, 0x0bfd, 0x0bfd, - 0x0c0c, 0x0c18, 0x0c25, 0x0c25, 0x0c31, 0x0c3e, 0x0c3e, 0x0c4e, - 0x0c5b, 0x0c67, 0x0c67, 0x0c72, 0x0c81, 0x0c81, 0x0c81, 0x0c8d, - 0x0c8d, 0x0c99, 0x0ca7, 0x0cb5, 0x0cc2, 0x0cce, 0x0cda, 0x0ce9, - 0x0cf6, 0x0d03, 0x0d11, 0x0d1e, 0x0d2d, 0x0d3a, 0x0d49, 0x0d59, - 0x0d66, 0x0d72, 0x0d86, 0x0d95, 0x0da6, 0x0db6, 0x0dc6, 0x0dd9, - // Entry 100 - 13F - 0x0de7, 0x0de7, 0x0e06, 0x0e16, 0x0e24, 0x0e32, 0x0e3f, 0x0e4f, - 0x0e5c, 0x0e6a, 0x0e77, 0x0e84, 0x0e91, 0x0ea4, 0x0ea4, 0x0eb1, - 0x0ecb, 0x0edd, 0x0eea, 0x0ef8, 0x0f04, 0x0f10, 0x0f10, 0x0f25, - 0x0f33, 0x0f42, 0x0f58, 0x0f58, 0x0f66, 0x0f66, 0x0f72, 0x0f82, - 0x0f82, 0x0f8d, 0x0f8d, 0x0fa5, 0x0fb7, 0x0fb7, 0x0fd3, 0x0ff0, - 0x1000, 0x100a, 0x1018, 0x1018, 0x1024, 0x1031, 0x1031, 0x103d, - 0x104c, 0x104c, 0x1072, 0x1092, 0x1092, 0x109f, 0x10b0, 0x10c1, - 0x10ce, 0x10e3, 0x10fe, 0x10fe, 0x10fe, 0x110b, 0x111c, 0x1129, - // Entry 140 - 17F - 0x1129, 0x1137, 0x1137, 0x1149, 0x1158, 0x1166, 0x117e, 0x117e, - 0x118a, 0x1196, 0x11a4, 0x11b1, 0x11bf, 0x11bf, 0x11bf, 0x11cd, - 0x11db, 0x11ea, 0x11fe, 0x1215, 0x1215, 0x1228, 0x1236, 0x1244, - 0x124f, 0x125c, 0x1268, 0x1279, 0x1288, 0x1294, 0x12a3, 0x12b7, - 0x12b7, 0x12c3, 0x12c3, 0x12d0, 0x12de, 0x12f2, 0x12f2, 0x12f2, - 0x12fe, 0x130e, 0x131e, 0x1332, 0x1341, 0x134f, 0x135d, 0x1374, - 0x1374, 0x1374, 0x1384, 0x1392, 0x13a2, 0x13af, 0x13be, 0x13cb, - 0x13da, 0x13e8, 0x13f5, 0x1403, 0x1410, 0x1420, 0x1420, 0x1420, - // Entry 180 - 1BF - 0x1420, 0x142e, 0x142e, 0x143b, 0x1447, 0x1447, 0x1459, 0x1468, - 0x1475, 0x1480, 0x148e, 0x149b, 0x149b, 0x149b, 0x14a9, 0x14b5, - 0x14c3, 0x14d3, 0x14e2, 0x14f2, 0x14ff, 0x150b, 0x1519, 0x1527, - 0x1534, 0x1540, 0x1550, 0x1569, 0x157f, 0x158e, 0x159c, 0x15af, - 0x15bd, 0x15cd, 0x15db, 0x15e8, 0x15e8, 0x15f7, 0x160a, 0x1617, - 0x1626, 0x1635, 0x1635, 0x1642, 0x164f, 0x164f, 0x164f, 0x165d, - 0x1669, 0x167f, 0x168d, 0x1699, 0x16a7, 0x16a7, 0x16b5, 0x16c6, - 0x16d3, 0x16e5, 0x16e5, 0x16f3, 0x16fe, 0x170a, 0x1725, 0x1735, - // Entry 1C0 - 1FF - 0x1745, 0x1752, 0x175f, 0x176c, 0x178b, 0x179d, 0x17ac, 0x17bc, - 0x17ce, 0x17dd, 0x17dd, 0x17dd, 0x17dd, 0x17f0, 0x17f0, 0x1801, - 0x1801, 0x1801, 0x1812, 0x1812, 0x1829, 0x183a, 0x183a, 0x184c, - 0x185b, 0x186d, 0x186d, 0x186d, 0x187a, 0x1888, 0x1888, 0x1888, - 0x1888, 0x1898, 0x18a3, 0x18b2, 0x18bf, 0x18d8, 0x18e7, 0x18f4, - 0x1903, 0x1903, 0x1912, 0x191f, 0x192e, 0x193b, 0x193b, 0x1949, - 0x1955, 0x1955, 0x1963, 0x197a, 0x198d, 0x198d, 0x199e, 0x19aa, - 0x19c0, 0x19ce, 0x19ce, 0x19ce, 0x19e5, 0x19f6, 0x1a08, 0x1a1a, - // Entry 200 - 23F - 0x1a29, 0x1a38, 0x1a4c, 0x1a59, 0x1a65, 0x1a65, 0x1a73, 0x1a7f, - 0x1a8e, 0x1a9b, 0x1ab0, 0x1aca, 0x1ad8, 0x1ad8, 0x1ad8, 0x1ae5, - 0x1af1, 0x1aff, 0x1b04, 0x1b11, 0x1b1c, 0x1b2b, 0x1b2b, 0x1b3a, - 0x1b49, 0x1b49, 0x1b59, 0x1b6c, 0x1b7d, 0x1b7d, 0x1b8b, 0x1b8b, - 0x1b9c, 0x1b9c, 0x1bab, 0x1bb9, 0x1bc8, 0x1bd8, 0x1bff, 0x1c0d, - 0x1c1d, 0x1c2c, 0x1c38, 0x1c43, 0x1c43, 0x1c43, 0x1c43, 0x1c43, - 0x1c50, 0x1c50, 0x1c5d, 0x1c6b, 0x1c79, 0x1c86, 0x1c93, 0x1c93, - 0x1c93, 0x1ca1, 0x1ca1, 0x1cad, 0x1cb8, 0x1cc3, 0x1cd2, 0x1cdf, - // Entry 240 - 27F - 0x1cdf, 0x1cf5, 0x1d04, 0x1d1a, 0x1d1a, 0x1d28, 0x1d50, 0x1d5c, - 0x1d7d, 0x1d89, 0x1da8, 0x1da8, 0x1dd0, 0x1dd0, 0x1dd0, 0x1de1, - 0x1df3, 0x1e16, 0x1e16, 0x1e16, 0x1e16, 0x1e16, 0x1e25, 0x1e44, - 0x1e44, 0x1e53, 0x1e6c, -} - -// Size: 6303 bytes -var zhLangStr string = "" + - "阿法文阿布哈西亚文阿维斯塔文å—éžè·å…°æ–‡é˜¿è‚¯æ–‡é˜¿å§†å“ˆæ‹‰æ–‡é˜¿æ‹‰è´¡æ–‡é˜¿æ‹‰ä¼¯æ–‡é˜¿è¨å§†æ–‡é˜¿ç“¦å°”文艾马拉文阿塞拜疆文巴什客尔文白俄罗斯文ä¿åŠ åˆ©äºšæ–‡æ¯”斯拉马文" + - "ç­å·´æ‹‰æ–‡å­ŸåŠ æ‹‰æ–‡è—文布里多尼文波斯尼亚文加泰罗尼亚文车臣文查莫罗文科西嘉文克里æ—æ–‡æ·å…‹æ–‡å®—教斯拉夫文楚瓦什文å¨å°”士文丹麦文德文迪维希文ä¸ä¸¹æ–‡" + - "埃维文希腊文英文世界文西ç­ç‰™æ–‡çˆ±æ²™å°¼äºšæ–‡å·´æ–¯å…‹æ–‡æ³¢æ–¯æ–‡å¤«æ‹‰æ–‡èŠ¬å…°æ–‡æ–济文法罗文法文西弗里西亚文爱尔兰文è‹æ ¼å…°ç›–尔文加利西亚文瓜拉尼文å¤å‰æ‹‰ç‰¹" + - "文马æ©å²›æ–‡è±ªè¨æ–‡å¸Œä¼¯æ¥æ–‡å°åœ°æ–‡å¸Œé‡ŒèŽ«å›¾æ–‡å…‹ç½—地亚文海地文匈牙利文亚美尼亚文赫雷罗文国际文字å°åº¦å°¼è¥¿äºšæ–‡å›½é™…文字(E)伊布文四å·å½æ–‡ä¾å¥´çš®ç»´å…‹" + - "文伊多文冰岛文æ„大利文因纽特文日文爪哇文格é²å‰äºšæ–‡åˆšæžœæ–‡å‰åº“尤文宽亚玛文哈è¨å…‹æ–‡æ ¼é™µå…°æ–‡é«˜æ£‰æ–‡å¡çº³è¾¾æ–‡éŸ©æ–‡å¡åŠªé‡Œæ–‡å…‹ä»€ç±³å°”文库尔德文科米文凯" + - "尔特文å‰å°”å‰æ–¯æ–‡æ‹‰ä¸æ–‡å¢æ£®å ¡æ–‡å¢å¹²è¾¾æ–‡æ·‹å¸ƒå°”å‰æ–‡æž—加拉文è€æŒæ–‡ç«‹é™¶å®›æ–‡é²å·´åŠ ä¸¹åŠ æ–‡æ‹‰è„±ç»´äºšæ–‡é©¬å°”加什文马ç»å°”文毛利文马其顿文马拉雅拉姆文蒙å¤" + - "文马拉地文马æ¥æ–‡é©¬è€³ä»–文缅甸文瑙é²æ–‡åŒ—æ©å¾·è´å‹’文尼泊尔文æ©ä¸œåŠ æ–‡è·å…°æ–‡æŒªå¨å°¼è¯ºæ–¯å…‹æ–‡æŒªå¨åšå…‹é©¬å°”æ–‡å—æ©å¾·è´å‹’文纳瓦éœæ–‡å°¼æ‰¬æ‰Žæ–‡å¥¥å…‹è¥¿å”文奥å‰" + - "布瓦文奥洛莫文奥里亚文奥塞梯文æ—é®æ™®æ–‡å·´åˆ©æ–‡æ³¢å…°æ–‡æ™®ä»€å›¾æ–‡è‘¡è„牙文盖丘亚文罗曼什文基隆迪文罗马尼亚文俄文å¢æ—ºè¾¾æ–‡æ¢µæ–‡è¨ä¸æ–‡ä¿¡å¾·æ–‡åŒ—è¨ç±³æ–‡æ¡‘戈" + - "文僧伽罗文斯洛ä¼å…‹æ–‡æ–¯æ´›æ–‡å°¼äºšæ–‡è¨æ‘©äºšæ–‡ç»çº³æ–‡ç´¢é©¬é‡Œæ–‡é˜¿å°”巴尼亚文塞尔维亚文斯瓦特文å—索托文巽他文瑞典文斯瓦希里文泰米尔文泰å¢å›ºæ–‡å¡”å‰å…‹æ–‡æ³°" + - "æ–‡æ格里尼亚文土库曼文塞茨瓦纳文汤加文土耳其文宗加文塔塔尔文塔西æ文维å¾å°”文乌克兰文乌尔都文乌兹别克文文达文越å—文沃拉普克文瓦隆文沃洛夫文科" + - "è¨æ–‡ä¾åœ°æ–‡çº¦é²å·´æ–‡å£®æ–‡ä¸­æ–‡ç¥–é²æ–‡äºšé½æ–‡é˜¿ä¹”利文阿当梅文阿迪何文阿弗里希利文亚罕文阿伊努文阿å¡å¾·æ–‡é˜¿ç•™ç”³æ–‡å—阿尔泰文å¤è‹±æ–‡æ˜‚加文阿拉米文马普切" + - "文阿拉帕éœæ–‡é˜¿æ‹‰ç“¦å…‹æ–‡é˜¿è‹æ–‡é˜¿æ–¯å›¾é‡Œäºšæ€ç‰¹æ–‡é˜¿ç“¦ä¹”文俾路支文巴里文巴è¨æ–‡å·´å§†ç©†æ–‡æˆˆé©¬æ‹‰æ–‡åˆ«æœ­æ–‡åˆ«å§†å·´æ–‡è´çº³æ–‡å·´éžç‰¹æ–‡åšæ°æ™®å°”文毕库尔文比尼文" + - "科姆文å¸å…‹å¸å¡æ–‡å¸ƒæ‹‰æ°æ–‡åšå¤šæ–‡é˜¿åº“色文布里亚特文布å‰æ–‡å¸ƒé²æ–‡å¸ƒæž—文梅敦巴文å¡å¤šæ–‡å·´å‹’比文å¡å°¤åŠ æ–‡é˜¿ç¿æ–‡å®¿åŠ¡æ–‡å¥‡åŠ æ–‡å¥‘布å¡æ–‡æŸ¥åŠ æ–‡æ¥šå¾å…‹æ–‡é©¬é‡Œ" + - "文契努克文乔克托文佩瓦扬文彻罗基文å¤å»¶æ–‡ç´¢æ‹‰å°¼åº“尔德文科普特文克里米亚土耳其文å¡èˆ’文达科他文达尔格瓦文å°å¡”文特拉åŽæ–‡å¸é›·å¤«æ–‡å¤šæ ¼é‡Œå¸ƒæ–‡ä¸å¡æ–‡" + - "哲尔马文多格拉文下索布文都阿拉文中å¤è·å…°æ–‡æœ±æ‹‰æ–‡è¿ªå°¤æ‹‰æ–‡è¾¾æ‰Žè‘›æ–‡æ©å¸ƒæ–‡åŸƒè²å…‹æ–‡å¤åŸƒåŠæ–‡åŸƒå…‹ä¸˜å…‹æ–‡è‰¾æ‹‰ç±³ç‰¹æ–‡ä¸­å¤è‹±æ–‡æ—ºæœæ–‡èŠ³æ ¼æ–‡è²å¾‹å®¾æ–‡ä¸°æ–‡ä¸­" + - "å¤æ³•æ–‡å¤æ³•æ–‡åŒ—弗里西亚文东弗里西亚文弗留利文加文加告兹文迦约文葛巴亚文å‰å…¹æ–‡å‰å°”伯特斯文中å¤é«˜åœ°å¾·æ–‡å¤é«˜åœ°å¾·æ–‡å²—德文科洛涅达罗文哥特文格列åš" + - "æ–‡å¤å¸Œè…Šæ–‡ç‘žå£«å¾·æ–‡å¤è¥¿æ–‡å‰ç»´å…‹ç´æ–‡æµ·è¾¾æ–‡å¤å¨å¤·æ–‡å¸Œåˆ©ç›–农文赫梯文赫蒙文上索布文胡帕文伊ç­æ–‡ä¼Šæ¯”比奥文伊洛干诺文å°å¤ä»€æ–‡é€»è¾‘æ–‡æ©è‰®å·´é©¬åˆ‡å§†æ–‡çŠ¹" + - "太波斯文犹太阿拉伯文å¡æ‹‰å¡å°”帕克文å¡æ¯”尔文å¡ç´æ–‡å¡æ·æ–‡å¡å§†å·´æ–‡å¡å¨æ–‡å¡å·´å°”达文加涅姆布文å¡å¡”布文马孔德文å¡å¸ƒä½›å¾—é²æ–‡ç§‘ç½—æ–‡å¡è¥¿æ–‡å’Œç”°æ–‡è¥¿æ¡‘æµ·" + - "æ–‡å¡åº“æ–‡å¡ä¼¦é‡‘文金邦æœæ–‡ç§‘ç±³-彼尔米亚克文刚å¡å°¼æ–‡ç§‘斯拉伊文克佩列文å¡æ‹‰æ°ä¼Šå·´å°”å¡å°”æ–‡å¡ç´¯åˆ©é˜¿æ–‡åº“é²å…‹æ–‡é¦™å·´æ‹‰æ–‡å·´è²äºšæ–‡ç§‘隆文库梅克文库特内" + - "文拉迪诺文朗å‰æ–‡æ‹‰äº¨è¾¾æ–‡å…°å·´æ–‡èŽ±å…¹ä¾æ˜‚文拉科塔文芒戈文洛兹文é²å·´é²ç“¦æ–‡è·¯æ˜“塞诺文隆达文å¢å¥¥æ–‡å¢æ™’æ–‡å¢é›…文马都拉文马法文马加伊文迈蒂利文望加锡" + - "文曼ä¸å“¥æ–‡è¨ä¼Šæ–‡é©¬å文莫克沙文曼达尔文门迪文梅é²æ–‡æ¯›é‡Œæ±‚斯克里奥尔文中å¤çˆ±å°”兰文马夸文梅塔米克马克文米å—å¡ä¿æ–‡æ»¡æ–‡æ›¼å°¼æ™®é‡Œæ–‡æ‘©éœå…‹æ–‡èŽ«è¥¿æ–‡è’™" + - "当文多ç§è¯­ç³»å…‹é‡Œå…‹æ–‡ç±³å…°å¾·æ–¯æ–‡é©¬å°”瓦利文姆耶内文俄日亚文拿波里文纳马文低地德文尼瓦尔文尼亚斯文纽埃文夸西奥文æ©ç”˜æ¾Žæ–‡è¯ºç›–æ–‡å¤è¯ºå°”斯文西éžä¹¦é¢" + - "文字北索托文努埃尔文ç»å…¸å°¼ç“¦å°”文尼亚姆韦é½æ–‡å°¼æ˜‚科勒文尼约罗文æ©æµŽé©¬æ–‡å¥¥è¨æ ¼æ–‡å¥¥æ‰˜æ›¼åœŸè€³å…¶æ–‡é‚¦é˜¿è¥¿æ¥ æ–‡å¸•æ‹‰ç»´æ–‡é‚¦æ¿ç‰™æ–‡å¸•çš®äºšé—¨æ‰˜æ–‡å¸•åŠ³æ–‡å¤è€" + - "波斯文腓尼基文波纳佩文普罗文斯文基切文拉贾斯å¦æ–‡æ‹‰å¸•åŠªä¼Šæ–‡æ‹‰ç½—汤加文兰åšæ–‡å‰æ™®èµ›æ–‡é˜¿ç½—马尼亚文罗瓦文散达维文雅库特文è¨çŽ›åˆ©äºšæ–‡æ¡‘布é²æ–‡è¨è¨å…‹" + - "文桑塔利文甘拜文桑å¤æ–‡è¥¿è¥¿é‡Œæ–‡è‹æ ¼å…°æ–‡å¡žå†…å¡æ–‡å¡žçº³æ–‡å¡žå°”库普文东桑海文å¤çˆ±å°”兰文希尔哈文掸文ä¹å¾—阿拉伯文悉达摩文å—è¨ç±³æ–‡å¾‹å‹’欧è¨ç±³æ–‡ä¼Šçº³é‡Œè¨" + - "米文斯科特è¨ç±³æ–‡ç´¢å°¼åŸºæ–‡å¤ç²Ÿç‰¹æ–‡è‹é‡Œå—汤加文谢列尔文è¨éœæ–‡è‹åº“马文è‹è‹æ–‡è‹é©¬æ–‡ç§‘摩罗文刚果斯瓦希里文ç»å…¸å™åˆ©äºšæ–‡å™åˆ©äºšæ–‡æ»•å†…文特索文特列纳文" + - "特塔姆文æ格雷文蒂夫文托克劳文克林贡文特林å‰ç‰¹æ–‡å¡”马奇克文汤加文(尼亚è¨åœ°åŒºï¼‰æ‰˜å…‹çš®è¾›æ–‡å¤ªé²é˜æ–‡è’‚姆西亚文通布å¡æ–‡å›¾ç“¦å¢æ–‡åŒ—桑海文图瓦文塔马" + - "é½æ ¼ç‰¹æ–‡ä¹Œå¾·ç©†å°”特文乌加里特文ç¿æœ¬æœæ–‡æ ¹è¯­è¨€ç“¦ä¼Šæ–‡æ²ƒæ克文温旧文瓦尔瑟文瓦拉莫文瓦赖文瓦ç»æ–‡å¡å°”梅克文索加文瑶æ—文雅浦文洋åžæ–‡è€¶å§†å·´æ–‡ç²¤è¯­è¨" + - "波蒂克文布利斯符å·æ³½çº³åŠ æ–‡æ ‡å‡†æ‘©æ´›å“¥å¡”马塞特文祖尼文无语言内容扎扎文现代标准阿拉伯文奥地利德文瑞士高地德文澳大利亚英文加拿大英文英å¼è‹±æ–‡ç¾Žå¼" + - "英文拉ä¸ç¾Žæ´²è¥¿ç­ç‰™æ–‡æ¬§æ´²è¥¿ç­ç‰™æ–‡å¢¨è¥¿å“¥è¥¿ç­ç‰™æ–‡åŠ æ‹¿å¤§æ³•æ–‡ç‘žå£«æ³•æ–‡ä½›å…°èŠ’文巴西葡è„牙文欧洲葡è„牙文摩尔多瓦文塞尔维亚-克罗地亚文简体中文ç¹ä½“中" + - "æ–‡" - -// Size: 1234 bytes, 605 elements -var zhLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0009, 0x001b, 0x002a, 0x0039, 0x0042, 0x0051, 0x005d, - 0x0069, 0x0075, 0x0081, 0x008d, 0x009c, 0x00ab, 0x00ba, 0x00c9, - 0x00d8, 0x00e4, 0x00f0, 0x00f6, 0x0105, 0x0114, 0x0126, 0x012f, - 0x013b, 0x0147, 0x0153, 0x015c, 0x016e, 0x017a, 0x0186, 0x018f, - 0x0195, 0x01a1, 0x01aa, 0x01b3, 0x01bc, 0x01c2, 0x01cb, 0x01d7, - 0x01e6, 0x01f2, 0x01fb, 0x0204, 0x020d, 0x0216, 0x021f, 0x0225, - 0x0237, 0x0243, 0x0255, 0x0264, 0x0270, 0x027f, 0x028b, 0x0294, - 0x02a0, 0x02a9, 0x02b8, 0x02c7, 0x02d0, 0x02dc, 0x02eb, 0x02f7, - // Entry 40 - 7F - 0x0303, 0x0315, 0x0328, 0x0331, 0x033d, 0x034f, 0x0358, 0x0361, - 0x036d, 0x0379, 0x037f, 0x0388, 0x0397, 0x03a0, 0x03ac, 0x03b8, - 0x03c4, 0x03d0, 0x03d9, 0x03e5, 0x03eb, 0x03f7, 0x0406, 0x0412, - 0x041b, 0x0427, 0x0436, 0x043f, 0x044b, 0x0457, 0x0466, 0x0472, - 0x047b, 0x0487, 0x0499, 0x04a8, 0x04b7, 0x04c3, 0x04cc, 0x04d8, - 0x04ea, 0x04f3, 0x04ff, 0x0508, 0x0514, 0x051d, 0x0526, 0x0538, - 0x0544, 0x0550, 0x0559, 0x056e, 0x0583, 0x0595, 0x05a1, 0x05ad, - 0x05bc, 0x05cb, 0x05d7, 0x05e3, 0x05ef, 0x05fb, 0x0604, 0x060d, - // Entry 80 - BF - 0x0619, 0x0625, 0x0631, 0x063d, 0x0649, 0x0658, 0x065e, 0x066a, - 0x0670, 0x0679, 0x0682, 0x068e, 0x0697, 0x06a3, 0x06b2, 0x06c4, - 0x06d0, 0x06d9, 0x06e5, 0x06f7, 0x0706, 0x0712, 0x071e, 0x0727, - 0x0730, 0x073f, 0x074b, 0x0757, 0x0763, 0x0769, 0x077b, 0x0787, - 0x0796, 0x079f, 0x07ab, 0x07b4, 0x07c0, 0x07cc, 0x07d8, 0x07e4, - 0x07f0, 0x07ff, 0x0808, 0x0811, 0x0820, 0x0829, 0x0835, 0x083e, - 0x0847, 0x0853, 0x0859, 0x085f, 0x0868, 0x0871, 0x087d, 0x0889, - 0x0895, 0x0895, 0x08a7, 0x08b0, 0x08bc, 0x08c8, 0x08c8, 0x08d4, - // Entry C0 - FF - 0x08d4, 0x08e3, 0x08ec, 0x08f5, 0x0901, 0x090d, 0x090d, 0x091c, - 0x091c, 0x092b, 0x092b, 0x092b, 0x0934, 0x0934, 0x094c, 0x094c, - 0x0958, 0x0958, 0x0964, 0x096d, 0x096d, 0x0976, 0x0982, 0x0982, - 0x098e, 0x0997, 0x09a3, 0x09a3, 0x09ac, 0x09b8, 0x09b8, 0x09c7, - 0x09d3, 0x09dc, 0x09dc, 0x09e5, 0x09f4, 0x09f4, 0x09f4, 0x0a00, - 0x0a00, 0x0a09, 0x0a15, 0x0a24, 0x0a2d, 0x0a36, 0x0a3f, 0x0a4b, - 0x0a54, 0x0a60, 0x0a6c, 0x0a75, 0x0a7e, 0x0a87, 0x0a93, 0x0a9c, - 0x0aa8, 0x0ab1, 0x0abd, 0x0ac9, 0x0ad5, 0x0ae1, 0x0aea, 0x0aff, - // Entry 100 - 13F - 0x0b0b, 0x0b0b, 0x0b23, 0x0b2c, 0x0b38, 0x0b47, 0x0b50, 0x0b5c, - 0x0b68, 0x0b77, 0x0b80, 0x0b8c, 0x0b98, 0x0ba4, 0x0ba4, 0x0bb0, - 0x0bbf, 0x0bc8, 0x0bd4, 0x0be0, 0x0be9, 0x0bf5, 0x0bf5, 0x0c01, - 0x0c10, 0x0c1f, 0x0c2b, 0x0c2b, 0x0c34, 0x0c34, 0x0c3d, 0x0c49, - 0x0c49, 0x0c4f, 0x0c4f, 0x0c5b, 0x0c64, 0x0c64, 0x0c76, 0x0c88, - 0x0c94, 0x0c9a, 0x0ca6, 0x0ca6, 0x0caf, 0x0cbb, 0x0cbb, 0x0cc4, - 0x0cd6, 0x0cd6, 0x0ce8, 0x0cf7, 0x0cf7, 0x0d00, 0x0d12, 0x0d1b, - 0x0d27, 0x0d33, 0x0d3f, 0x0d3f, 0x0d3f, 0x0d48, 0x0d57, 0x0d60, - // Entry 140 - 17F - 0x0d60, 0x0d6c, 0x0d6c, 0x0d7b, 0x0d84, 0x0d8d, 0x0d99, 0x0d99, - 0x0da2, 0x0dab, 0x0dba, 0x0dc9, 0x0dd5, 0x0dd5, 0x0dd5, 0x0dde, - 0x0de7, 0x0df3, 0x0e02, 0x0e14, 0x0e14, 0x0e29, 0x0e35, 0x0e3e, - 0x0e47, 0x0e53, 0x0e5c, 0x0e6b, 0x0e7a, 0x0e86, 0x0e92, 0x0ea4, - 0x0ea4, 0x0ead, 0x0ead, 0x0eb6, 0x0ebf, 0x0ecb, 0x0ecb, 0x0ecb, - 0x0ed4, 0x0ee0, 0x0eec, 0x0f05, 0x0f11, 0x0f20, 0x0f2c, 0x0f47, - 0x0f47, 0x0f47, 0x0f56, 0x0f62, 0x0f6e, 0x0f7a, 0x0f83, 0x0f8f, - 0x0f9b, 0x0fa7, 0x0fb0, 0x0fbc, 0x0fc5, 0x0fd4, 0x0fd4, 0x0fd4, - // Entry 180 - 1BF - 0x0fd4, 0x0fe0, 0x0fe0, 0x0fe9, 0x0ff2, 0x0ff2, 0x1001, 0x1010, - 0x1019, 0x1022, 0x102b, 0x1034, 0x1034, 0x1034, 0x1040, 0x1049, - 0x1055, 0x1061, 0x106d, 0x1079, 0x1082, 0x108b, 0x1097, 0x10a3, - 0x10ac, 0x10b5, 0x10d0, 0x10e2, 0x10eb, 0x10f1, 0x1100, 0x110f, - 0x1115, 0x1124, 0x1130, 0x1139, 0x1139, 0x1142, 0x114e, 0x115a, - 0x1169, 0x1178, 0x1178, 0x1184, 0x1190, 0x1190, 0x1190, 0x119c, - 0x11a5, 0x11b1, 0x11bd, 0x11c9, 0x11d2, 0x11d2, 0x11de, 0x11ea, - 0x11f3, 0x1202, 0x1202, 0x1214, 0x1220, 0x122c, 0x123e, 0x1250, - // Entry 1C0 - 1FF - 0x125f, 0x126b, 0x1277, 0x1283, 0x1298, 0x12a7, 0x12b3, 0x12bf, - 0x12d1, 0x12da, 0x12da, 0x12da, 0x12da, 0x12e9, 0x12e9, 0x12f5, - 0x12f5, 0x12f5, 0x1301, 0x1301, 0x1310, 0x1319, 0x1319, 0x1328, - 0x1337, 0x1346, 0x1346, 0x1346, 0x134f, 0x135b, 0x135b, 0x135b, - 0x135b, 0x136d, 0x1376, 0x1382, 0x138e, 0x139d, 0x13a9, 0x13b5, - 0x13c1, 0x13c1, 0x13ca, 0x13d3, 0x13df, 0x13eb, 0x13eb, 0x13f7, - 0x1400, 0x1400, 0x140f, 0x141b, 0x142a, 0x142a, 0x1436, 0x143c, - 0x144e, 0x145a, 0x145a, 0x145a, 0x1466, 0x1478, 0x148a, 0x149c, - // Entry 200 - 23F - 0x14a8, 0x14b4, 0x14c6, 0x14d2, 0x14db, 0x14db, 0x14e7, 0x14f0, - 0x14f9, 0x1505, 0x151a, 0x152c, 0x1538, 0x1538, 0x1538, 0x1541, - 0x154a, 0x1556, 0x1562, 0x156e, 0x1577, 0x1583, 0x1583, 0x158f, - 0x159e, 0x159e, 0x15ad, 0x15cb, 0x15da, 0x15da, 0x15e6, 0x15e6, - 0x15f5, 0x15f5, 0x1601, 0x160d, 0x1619, 0x1622, 0x1634, 0x1646, - 0x1655, 0x1661, 0x166a, 0x1673, 0x1673, 0x1673, 0x1673, 0x1673, - 0x167f, 0x167f, 0x1688, 0x1694, 0x16a0, 0x16a9, 0x16b2, 0x16b2, - 0x16b2, 0x16c1, 0x16c1, 0x16ca, 0x16d3, 0x16dc, 0x16e5, 0x16f1, - // Entry 240 - 27F - 0x16f1, 0x16f7, 0x1706, 0x1715, 0x1715, 0x1721, 0x173f, 0x1748, - 0x1757, 0x1760, 0x1778, 0x1787, 0x1799, 0x17ab, 0x17ba, 0x17c6, - 0x17d2, 0x17ea, 0x17fc, 0x1811, 0x1820, 0x182c, 0x1838, 0x184a, - 0x185c, 0x186b, 0x1887, 0x1893, 0x189f, -} - -// Size: 7531 bytes -var zhHantLangStr string = "" + - "阿法文阿布哈茲文阿緯斯陀文å—éžè·è˜­æ–‡é˜¿åŽæ–‡é˜¿å§†å“ˆæ‹‰æ–‡é˜¿æ‹‰è²¢æ–‡é˜¿æ‹‰ä¼¯æ–‡é˜¿è–©å§†æ–‡é˜¿ç“¦çˆ¾æ–‡è‰¾é¦¬æ‹‰æ–‡äºžå¡žæ‹œç„¶æ–‡å·´ä»€å®¢çˆ¾æ–‡ç™½ä¿„羅斯文ä¿åŠ åˆ©äºžæ–‡æ¯”斯拉馬文ç­" + - "巴拉文孟加拉文è—文布列塔尼文波士尼亞文加泰羅尼亞文車臣文查莫洛文科西嘉文克裡文æ·å…‹æ–‡å®—教斯拉夫文楚瓦什文å¨çˆ¾æ–¯æ–‡ä¸¹éº¥æ–‡å¾·æ–‡è¿ªç¶­è¥¿æ–‡å®—å¡æ–‡åŸƒç¶­" + - "文希臘文英文世界文西ç­ç‰™æ–‡æ„›æ²™å°¼äºžæ–‡å·´æ–¯å…‹æ–‡æ³¢æ–¯æ–‡å¯Œæ‹‰æ–‡èŠ¬è˜­æ–‡æ–濟文法羅文法文西弗里西亞文愛爾蘭文蘇格蘭蓋爾文加利西亞文瓜拉尼文å¤å‰æ‹‰ç‰¹æ–‡æ›¼" + - "島文豪撒文希伯來文北å°åº¦æ–‡è¥¿é‡ŒèŽ«åœ–土文克羅埃西亞文海地文匈牙利文亞美尼亞文赫雷羅文國際文å°å°¼æ–‡åœ‹éš›æ–‡ï¼ˆE)伊布文四å·å½æ–‡ä¾å¥´çš®ç¶­å…‹æ–‡ä¼Šå¤šæ–‡å†°" + - "島文義大利文因ç´ç‰¹æ–‡æ—¥æ–‡çˆªå“‡æ–‡å–¬æ²»äºžæ–‡å‰›æžœæ–‡å‰åº«å°¤æ–‡å»£äºžé¦¬æ–‡å“ˆè–©å…‹æ–‡æ ¼é™µè˜­æ–‡é«˜æ£‰æ–‡åŽé‚£é”文韓文å¡åŠªè£¡æ–‡å–€ä»€ç±³çˆ¾æ–‡åº«çˆ¾å¾·æ–‡ç§‘米文康瓦耳文å‰çˆ¾å‰" + - "斯文拉ä¸æ–‡ç›§æ£®å ¡æ–‡å¹²é”文林堡文林加拉文寮文立陶宛文魯巴加丹加文拉脫維亞文馬拉加什文馬紹爾文毛利文馬其頓文馬來亞拉姆文蒙å¤æ–‡é¦¬æ‹‰åœ°æ–‡é¦¬ä¾†æ–‡é¦¬çˆ¾" + - "他文緬甸文諾魯文北地畢列文尼泊爾文æ©æ±åŠ æ–‡è·è˜­æ–‡è€è«¾æ–¯å…‹æŒªå¨æ–‡å·´å…‹æ‘©æŒªå¨æ–‡å—地畢列文ç´ç“¦éœæ–‡å°¼æšè³ˆæ–‡å¥§å…‹è¥¿å¦æ–‡å¥§æ°å¸ƒç“¦æ–‡å¥§ç¾…莫文æ­åˆ©äºžæ–‡å¥§å¡ž" + - "ææ–‡æ—é®æ™®æ–‡å·´åˆ©æ–‡æ³¢è˜­æ–‡æ™®ä»€åœ–文葡è„牙文蓋楚瓦文羅曼斯文隆迪文羅馬尼亞文俄文盧安é”文梵文撒ä¸æ–‡ä¿¡å¾·æ–‡åŒ—方薩米文桑戈文僧伽羅文斯洛ä¼å…‹æ–‡æ–¯æ´›ç¶­" + - "尼亞文薩摩亞文塞內加爾文索馬利文阿爾巴尼亞文塞爾維亞文斯瓦特文塞索托文巽他文瑞典文å²ç“¦å¸Œé‡Œæ–‡å¦ç±³çˆ¾æ–‡æ³°ç›§å›ºæ–‡å¡”å‰å…‹æ–‡æ³°æ–‡æ格利尼亞文土庫曼文" + - "çªå°¼è¥¿äºžæ–‡æ±åŠ æ–‡åœŸè€³å…¶æ–‡ç‰¹æ¾åŠ æ–‡éŸƒé¼æ–‡å¤§æºªåœ°æ–‡ç¶­å¾çˆ¾æ–‡çƒå…‹è˜­æ–‡çƒéƒ½æ–‡çƒèŒ²åˆ¥å…‹æ–‡æº«é”文越å—文沃拉普克文瓦隆文沃洛夫文科薩文æ„第緒文約魯巴文壯文" + - "中文祖魯文亞齊文阿僑利文阿當莫文阿迪å„æ–‡çªå°¼æ–¯é˜¿æ‹‰ä¼¯æ–‡é˜¿å¼—里希利文亞罕文阿伊努文阿å¡å¾·æ–‡é˜¿æ‹‰å·´é¦¬æ–‡é˜¿ç•™ç”³æ–‡è“‹æ ¼é˜¿çˆ¾å·´å°¼äºžæ–‡å—阿爾泰文å¤è‹±æ–‡æ˜‚" + - "加文阿拉米文馬普切文阿拉奧ç´æ–‡é˜¿æ‹‰å¸•éœæ–‡é˜¿çˆ¾åŠåˆ©äºžé˜¿æ‹‰ä¼¯æ–‡é˜¿æ‹‰ç“¦å…‹æ–‡æ‘©æ´›å“¥é˜¿æ‹‰ä¼¯æ–‡åŸƒåŠé˜¿æ‹‰ä¼¯æ–‡é˜¿è˜‡æ–‡ç¾Žåœ‹æ‰‹èªžé˜¿æ–¯åœ–里亞文科塔瓦文阿瓦文å—亞塞" + - "拜然文俾路支文峇里文巴ä¼åˆ©äºžæ–‡å·´è–©æ–‡å·´å§†ç©†æ–‡å·´å¡”克托巴文戈馬拉文è²æ‰Žæ–‡åˆ¥å§†å·´æ–‡è²å¡”維文è²ç´æ–‡å¯Œç‰¹æ–‡å·´é”加文åšå‚‘普爾文比科爾文比尼文ç­äºžçˆ¾æ–‡åº·" + - "姆文錫克錫å¡æ–‡æ¯”什奴普èŠåˆ©äºžæ–‡å·´èµ«è’‚亞里文布拉æ°æ–‡å¸ƒæ‹‰ç¶­æ–‡åšå¤šæ–‡é˜¿åº«è‰²æ–‡å¸ƒé‡Œé˜¿ç‰¹æ–‡å¸ƒå‰æ–¯æ–‡å¸ƒé­¯æ–‡æ¯”林文梅敦巴文å¡å¤šæ–‡åŠ å‹’比文å¡å°¤åŠ æ–‡é˜¿ç‡¦æ–‡å®¿" + - "霧文奇加文奇布查文查加文處奇斯文馬里文契奴克文喬克托文奇佩瓦æšæ–‡æŸ´ç¾…基文沙伊安文索拉尼庫爾德文科普特文å¡çš®èŒ²æ–‡å…‹é‡Œç±³äºžåŠå³¶çš„土耳其文;克里米" + - "亞åŠå³¶çš„塔塔爾文å¡èˆ’布文é”科他文é”爾格瓦文å°å¡”文德拉瓦文斯拉夫多格里布文ä¸å¡æ–‡æ‰Žçˆ¾é¦¬æ–‡å¤šæ ¼ä¾†æ–‡ä¸‹ç´¢å¸ƒæ–‡ä¸­éƒ¨æœé †æ–‡æœäºžæ‹‰æ–‡ä¸­å¤è·è˜­æ–‡æœ±æ‹‰æ–‡è¿ªå°¤" + - "拉文é”è–©æ–‡æ©å¸ƒæ–‡åŸƒè²å…‹æ–‡åŸƒç±³åˆ©å®‰æ–‡å¤åŸƒåŠæ–‡è‰¾å¡æœ±å…‹æ–‡åŸƒè˜­æ–‡ä¸­å¤è‹±æ–‡ä¸­å°¤çš®å…‹æ–‡ä¾æ±ªéƒ½æ–‡åŸƒæ–¯ç‰¹é›·é¦¬æœæ‹‰æ–‡èŠ³æ—æ–‡è²å¾‹è³“文托爾訥芬蘭文è±æ–‡å¡çœŸæ³•æ–‡ä¸­" + - "å¤æ³•æ–‡å¤æ³•æ–‡æ³•è˜­å…‹-普羅旺斯文北弗里西亞文æ±å¼—里西亞文弗留利文加æ—文加告茲文贛語加約文葛巴亞文索羅亞斯德教é”里文å‰èŒ²æ–‡å‰çˆ¾ä¼¯ç‰¹ç¾¤å³¶æ–‡å‰æ‹‰åŸºæ–‡" + - "中å¤é«˜åœ°å¾·æ–‡å¤é«˜åœ°æ—¥è€³æ›¼æ–‡å­”å¡å°¼æ–‡å²¡å¾·æ–‡ç§‘隆é”羅文哥德文格列åšæ–‡å¤å¸Œè‡˜æ–‡å¾·æ–‡ï¼ˆç‘žå£«ï¼‰ç“¦å°¤æ–‡å¼—拉弗拉文å¤è¥¿æ–‡åœ­å¥‘文海é”文客家話å¤å¨å¤·æ–‡æ–æ¿Ÿå°åœ°" + - "文希利蓋農文赫梯文孟文上索布文湘語胡帕文伊ç­æ–‡ä¼Šæ¯”比奧文伊洛闊文å°å¤ä»€æ–‡è‹±æ ¼è£äºžæ–‡ç‰™è²·åŠ å…‹è£å¥§çˆ¾è‹±æ–‡é‚輯文æ©æ ¼å§†å·´æ–‡é¦¬æ°ç¾Žæ–‡çŒ¶å¤ªæ•™-波斯文猶" + - "太阿拉伯文日德蘭文å¡æ‹‰å¡çˆ¾å¸•å…‹æ–‡å¡æ¯”爾文å¡ç´æ–‡å¡æ·æ–‡å¡å§†å·´æ–‡å¡å¨æ–‡å¡å·´çˆ¾é”æ–‡å¡å¿µå¸ƒæ–‡å¡å¡”布文馬孔德文å¡å¸ƒå¨çˆ¾ç¬¬æ–‡è‚¯æšæ–‡ç§‘ç¾…æ–‡åŽå‰›æ–‡å¡è¥¿æ–‡å’Œé—" + - "文西桑海文科瓦文北紮紮其文å¡åº«æ–‡å¡å€«é‡‘文金邦æœæ–‡ç§‘ç±³-彼爾米亞克文貢根文科斯雷æ©æ–‡å…‹ä½©åˆ—æ–‡å¡æ‹‰æŸ´-包爾å¡çˆ¾æ–‡å¡žæ‹‰åˆ©æ˜‚å…‹è£å¥§çˆ¾æ–‡åŸºé‚£ä¾†é˜¿æ–‡å¡ç´¯" + - "利阿文庫魯科文尚巴拉文巴è²äºžæ–‡ç§‘隆文庫密克文庫特奈文拉迪諾文朗å‰æ–‡æ‹‰äº¨é”文蘭巴文列茲干文新共åŒèªžè¨€åˆ©å¤é‡Œäºžæ–‡åˆ©ä¼å°¼äºžæ–‡æ‹‰ç§‘塔文倫巴底文芒戈文" + - "洛齊文拉特加èŠæ–‡é­¯å·´é­¯é­¯äºžæ–‡è·¯æ˜“塞諾文盧æ©é”文盧奧文盧晒文盧雅文文言文拉茲文馬都拉文馬法文馬加伊文é‚蒂利文望加錫文曼ä¸å“¥æ–‡é¦¬è³½æ–‡é¦¬å·´æ–‡èŽ«å…‹æ²™" + - "文曼é”文門德文梅魯文克里奧文(模里西斯)中å¤æ„›çˆ¾è˜­æ–‡é¦¬å¤¸æ–‡ç¾Žå¡”文米克馬克文米å—å¡å ¡æ–‡æ»¿æ—文曼尼普裡文莫éœå…‹æ–‡èŽ«è¥¿æ–‡è¥¿é¦¬è£æ–‡è’™ç•¶æ–‡å¤šç¨®èªžè¨€å…‹é‡Œ" + - "克文米蘭德斯文馬爾尼裡文明打å¨æ–‡å§†è€¶å…§æ–‡åŽ„爾茲亞文瑪詹德拉尼文閩å—語拿波里文ç´é¦¬æ–‡ä½Žåœ°å¾·æ–‡å°¼ç“¦çˆ¾æ–‡å°¼äºžæ–¯æ–‡ç´åŸƒæ–‡é˜¿æ²ƒé‚£åŠ æ–‡å¤¸è¥¿å¥§æ–‡æ©ç”˜æ¾Žæ–‡è«¾" + - "è“‹æ–‡å¤è«¾çˆ¾æ–¯æ–‡è«¾ç¶­äºžæ–‡æ›¼å¾·æ–‡å­— (N’Ko)北索托文努埃爾文å¤å°¼ç“¦çˆ¾æ–‡å°¼æšéŸ‹é½Šæ–‡å°¼æšç§‘èŠæ–‡å°¼å¥§å›‰æ–‡å°¼èŒ²é¦¬æ–‡æ­å¡žå¥‡æ–‡é„‚圖曼土耳其文潘加辛文巴列" + - "維文潘帕嘉文帕皮阿門托文帛ç‰æ–‡åº‡å¡åº•æ–‡è³“夕法尼亞德文門諾低地德文å¤æ³¢æ–¯æ–‡æ™®æ³•çˆ¾èŒ¨å¾·æ–‡è…“尼基文皮埃蒙特文æ—狄希臘文波那è²æ–‡æ™®é­¯å£«æ–‡å¤æ™®ç¾…旺斯文" + - "基切文欽åšæ‹‰ç´¢æµ·è˜­è“‹ä¸˜äºžæ–‡æ‹‰è³ˆæ–¯å¦è«¸æ–‡å¾©æ´»å³¶æ–‡æ‹‰ç¾…通加文羅馬格諾里文里è²äºžè«¾æ–‡è˜­åšæ–‡å‰æ™®è³½æ–‡ç¾…圖馬島文盧森尼亞文羅維阿ç´æ–‡ç¾…馬尼亞語系羅瓦文" + - "æ¡‘é”韋文雅庫特文薩瑪利亞阿拉姆文薩布魯文撒撒克文散塔利文索拉什特拉文甘拜文桑å¤æ–‡è¥¿è¥¿é‡Œæ–‡è˜‡æ ¼è˜­æ–‡è–©ä¸å°¼äºž-薩薩里文塞訥å¡æ–‡è³½ç´æ–‡ç‘Ÿé‡Œæ–‡ç‘Ÿçˆ¾å¡" + - "普文æ±æ¡‘æµ·æ–‡å¤æ„›çˆ¾è˜­æ–‡è–©èŽ«å‰å¸Œäºžæ–‡å¸Œçˆ¾å“ˆæ–‡æ’£æ–‡é˜¿æ‹‰ä¼¯æ–‡ï¼ˆæŸ¥å¾·ï¼‰å¸Œé”摩文下西利西亞文塞拉亞文å—薩米文魯勒薩米文伊ç´è£¡è–©ç±³æ–‡æ–¯ç§‘特薩米文索尼基文" + - "索格底亞ç´æ–‡è˜‡æ‹‰å—æ±å¢Žæ–‡å¡žé›·çˆ¾æ–‡è–©éœæ–‡æ²™ç‰¹è²å£«è˜­æ–‡è˜‡åº«é¦¬æ–‡è˜‡è˜‡æ–‡è˜‡ç¾Žæ–‡è‘›æ‘©æ–‡å²ç“¦å¸Œé‡Œæ–‡ï¼ˆå‰›æžœï¼‰å¤æ•˜åˆ©äºžæ–‡æ•˜åˆ©äºžæ–‡è¥¿åˆ©è¥¿äºžæ–‡åœ–盧文æ姆文特索文" + - "泰雷諾文泰頓文蒂格雷文æ夫文托克勞文查庫爾文克林貢文特林基特文塔里什文塔馬奇克文æ±åŠ æ–‡ï¼ˆå°¼äºžè–©ï¼‰æ‰˜æ¯”辛文圖羅尤文太魯閣文特薩克尼æ©æ–‡æ¬½è¥¿å®‰æ–‡" + - "穆斯林塔特文圖姆布å¡æ–‡å瓦魯文北桑海文土凡文塔馬齊格特文沃蒂艾克文çƒåŠ åˆ—文姆本æœæ–‡æ ¹èªžè¨€ç“¦ä¼Šæ–‡å¨å°¼æ–¯æ–‡ç¶­æ™®æ£®æ–‡è¥¿ä½›è˜­å¾·æ–‡ç¾ŽèŒµ-法蘭克尼亞文沃" + - "æ克文佛羅文溫舊文瓦瑟文瓦拉莫文瓦瑞文瓦紹文å³èªžå¡çˆ¾æ¢…克文明格列爾文索加文瑤文雅浦文洋åžæ–‡è€¶å§†å·´æ–‡å¥ˆæ©åŠ åœ–文粵語薩波特克文布列斯符號西蘭文澤" + - "ç´åŠ æ–‡æ¨™æº–摩洛哥塔馬塞特文祖尼文無語言內容扎扎文ç¾ä»£æ¨™æº–阿拉伯文高地德文(瑞士)佛蘭芒文摩爾多瓦文塞爾維亞克羅埃西亞文簡體中文ç¹é«”中文" - -// Size: 1234 bytes, 605 elements -var zhHantLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0009, 0x0018, 0x0027, 0x0036, 0x003f, 0x004e, 0x005a, - 0x0066, 0x0072, 0x007e, 0x008a, 0x0099, 0x00a8, 0x00b7, 0x00c6, - 0x00d5, 0x00e1, 0x00ed, 0x00f3, 0x0102, 0x0111, 0x0123, 0x012c, - 0x0138, 0x0144, 0x014d, 0x0156, 0x0168, 0x0174, 0x0180, 0x0189, - 0x018f, 0x019b, 0x01a4, 0x01ad, 0x01b6, 0x01bc, 0x01c5, 0x01d1, - 0x01e0, 0x01ec, 0x01f5, 0x01fe, 0x0207, 0x0210, 0x0219, 0x021f, - 0x0231, 0x023d, 0x024f, 0x025e, 0x026a, 0x0279, 0x0282, 0x028b, - 0x0297, 0x02a3, 0x02b5, 0x02c7, 0x02d0, 0x02dc, 0x02eb, 0x02f7, - // Entry 40 - 7F - 0x0300, 0x0309, 0x0319, 0x0322, 0x032e, 0x0340, 0x0349, 0x0352, - 0x035e, 0x036a, 0x0370, 0x0379, 0x0385, 0x038e, 0x039a, 0x03a6, - 0x03b2, 0x03be, 0x03c7, 0x03d3, 0x03d9, 0x03e5, 0x03f4, 0x0400, - 0x0409, 0x0415, 0x0424, 0x042d, 0x0439, 0x0442, 0x044b, 0x0457, - 0x045d, 0x0469, 0x047b, 0x048a, 0x0499, 0x04a5, 0x04ae, 0x04ba, - 0x04cc, 0x04d5, 0x04e1, 0x04ea, 0x04f6, 0x04ff, 0x0508, 0x0517, - 0x0523, 0x052f, 0x0538, 0x054d, 0x055f, 0x056e, 0x057a, 0x0586, - 0x0595, 0x05a4, 0x05b0, 0x05bc, 0x05c8, 0x05d4, 0x05dd, 0x05e6, - // Entry 80 - BF - 0x05f2, 0x05fe, 0x060a, 0x0616, 0x061f, 0x062e, 0x0634, 0x0640, - 0x0646, 0x064f, 0x0658, 0x0667, 0x0670, 0x067c, 0x068b, 0x069d, - 0x06a9, 0x06b8, 0x06c4, 0x06d6, 0x06e5, 0x06f1, 0x06fd, 0x0706, - 0x070f, 0x071e, 0x072a, 0x0736, 0x0742, 0x0748, 0x075a, 0x0766, - 0x0775, 0x077e, 0x078a, 0x0796, 0x079f, 0x07ab, 0x07b7, 0x07c3, - 0x07cc, 0x07db, 0x07e4, 0x07ed, 0x07fc, 0x0805, 0x0811, 0x081a, - 0x0826, 0x0832, 0x0838, 0x083e, 0x0847, 0x0850, 0x085c, 0x0868, - 0x0874, 0x0889, 0x089b, 0x08a4, 0x08b0, 0x08bc, 0x08cb, 0x08d7, - // Entry C0 - FF - 0x08ef, 0x08fe, 0x0907, 0x0910, 0x091c, 0x0928, 0x0937, 0x0946, - 0x0961, 0x0970, 0x0985, 0x0997, 0x09a0, 0x09ac, 0x09be, 0x09ca, - 0x09d3, 0x09e5, 0x09f1, 0x09fa, 0x0a09, 0x0a12, 0x0a1e, 0x0a30, - 0x0a3c, 0x0a45, 0x0a51, 0x0a5d, 0x0a66, 0x0a6f, 0x0a7b, 0x0a8a, - 0x0a96, 0x0a9f, 0x0aab, 0x0ab4, 0x0ac3, 0x0adb, 0x0aed, 0x0af9, - 0x0b05, 0x0b0e, 0x0b1a, 0x0b29, 0x0b35, 0x0b3e, 0x0b47, 0x0b53, - 0x0b5c, 0x0b68, 0x0b74, 0x0b7d, 0x0b86, 0x0b8f, 0x0b9b, 0x0ba4, - 0x0bb0, 0x0bb9, 0x0bc5, 0x0bd1, 0x0be0, 0x0bec, 0x0bf8, 0x0c0d, - // Entry 100 - 13F - 0x0c19, 0x0c25, 0x0c6a, 0x0c76, 0x0c82, 0x0c91, 0x0c9a, 0x0ca6, - 0x0caf, 0x0cbe, 0x0cc7, 0x0cd3, 0x0cdf, 0x0ceb, 0x0cfa, 0x0d06, - 0x0d15, 0x0d1e, 0x0d2a, 0x0d33, 0x0d3c, 0x0d48, 0x0d57, 0x0d63, - 0x0d72, 0x0d7b, 0x0d87, 0x0d96, 0x0da2, 0x0dba, 0x0dc3, 0x0dcf, - 0x0de1, 0x0de7, 0x0df3, 0x0dff, 0x0e08, 0x0e21, 0x0e33, 0x0e45, - 0x0e51, 0x0e5a, 0x0e66, 0x0e6c, 0x0e75, 0x0e81, 0x0e9c, 0x0ea5, - 0x0eba, 0x0ec6, 0x0ed8, 0x0eed, 0x0ef9, 0x0f02, 0x0f11, 0x0f1a, - 0x0f26, 0x0f32, 0x0f44, 0x0f4d, 0x0f5c, 0x0f65, 0x0f6e, 0x0f77, - // Entry 140 - 17F - 0x0f80, 0x0f8c, 0x0f9b, 0x0faa, 0x0fb3, 0x0fb9, 0x0fc5, 0x0fcb, - 0x0fd4, 0x0fdd, 0x0fec, 0x0ff8, 0x1004, 0x1013, 0x102e, 0x1037, - 0x1046, 0x1052, 0x1065, 0x1077, 0x1083, 0x1098, 0x10a4, 0x10ad, - 0x10b6, 0x10c2, 0x10cb, 0x10da, 0x10e6, 0x10f2, 0x10fe, 0x1110, - 0x1119, 0x1122, 0x112b, 0x1134, 0x113d, 0x1149, 0x1152, 0x1161, - 0x116a, 0x1176, 0x1182, 0x119b, 0x11a4, 0x11b3, 0x11bf, 0x11d8, - 0x11f3, 0x1202, 0x1211, 0x121d, 0x1229, 0x1235, 0x123e, 0x124a, - 0x1256, 0x1262, 0x126b, 0x1277, 0x1280, 0x128c, 0x129b, 0x12aa, - // Entry 180 - 1BF - 0x12b9, 0x12c5, 0x12d1, 0x12da, 0x12e3, 0x12f2, 0x1304, 0x1313, - 0x131f, 0x1328, 0x1331, 0x133a, 0x1343, 0x134c, 0x1358, 0x1361, - 0x136d, 0x1379, 0x1385, 0x1391, 0x139a, 0x13a3, 0x13af, 0x13b8, - 0x13c1, 0x13ca, 0x13e8, 0x13fa, 0x1403, 0x140c, 0x141b, 0x142a, - 0x1433, 0x1442, 0x144e, 0x1457, 0x1463, 0x146c, 0x1478, 0x1484, - 0x1493, 0x14a2, 0x14ae, 0x14ba, 0x14c9, 0x14db, 0x14e4, 0x14f0, - 0x14f9, 0x1505, 0x1511, 0x151d, 0x1526, 0x1535, 0x1541, 0x154d, - 0x1556, 0x1565, 0x1571, 0x1586, 0x1592, 0x159e, 0x15ad, 0x15bc, - // Entry 1C0 - 1FF - 0x15cb, 0x15d7, 0x15e3, 0x15ef, 0x1604, 0x1610, 0x161c, 0x1628, - 0x163a, 0x1643, 0x164f, 0x1664, 0x1676, 0x1682, 0x1694, 0x16a0, - 0x16af, 0x16be, 0x16ca, 0x16d6, 0x16e8, 0x16f1, 0x170f, 0x1721, - 0x172d, 0x173c, 0x174e, 0x175d, 0x1766, 0x1772, 0x1781, 0x1790, - 0x179f, 0x17b1, 0x17ba, 0x17c6, 0x17d2, 0x17ea, 0x17f6, 0x1802, - 0x180e, 0x1820, 0x1829, 0x1832, 0x183e, 0x184a, 0x1863, 0x186f, - 0x1878, 0x1881, 0x1890, 0x189c, 0x18ab, 0x18bd, 0x18c9, 0x18cf, - 0x18e7, 0x18f3, 0x1905, 0x1911, 0x191d, 0x192c, 0x193e, 0x1950, - // Entry 200 - 23F - 0x195c, 0x196e, 0x1980, 0x198c, 0x1995, 0x19a7, 0x19b3, 0x19bc, - 0x19c5, 0x19ce, 0x19e9, 0x19f8, 0x1a04, 0x1a13, 0x1a1c, 0x1a25, - 0x1a2e, 0x1a3a, 0x1a43, 0x1a4f, 0x1a58, 0x1a64, 0x1a70, 0x1a7c, - 0x1a8b, 0x1a97, 0x1aa6, 0x1abe, 0x1aca, 0x1ad6, 0x1ae2, 0x1af4, - 0x1b00, 0x1b12, 0x1b21, 0x1b2d, 0x1b39, 0x1b42, 0x1b54, 0x1b63, - 0x1b6f, 0x1b7b, 0x1b84, 0x1b8d, 0x1b99, 0x1ba5, 0x1bb4, 0x1bcd, - 0x1bd9, 0x1be2, 0x1beb, 0x1bf4, 0x1c00, 0x1c09, 0x1c12, 0x1c12, - 0x1c18, 0x1c27, 0x1c36, 0x1c3f, 0x1c45, 0x1c4e, 0x1c57, 0x1c63, - // Entry 240 - 27F - 0x1c72, 0x1c78, 0x1c87, 0x1c96, 0x1c9f, 0x1cab, 0x1cc9, 0x1cd2, - 0x1ce1, 0x1cea, 0x1d02, 0x1d02, 0x1d1a, 0x1d1a, 0x1d1a, 0x1d1a, - 0x1d1a, 0x1d1a, 0x1d1a, 0x1d1a, 0x1d1a, 0x1d1a, 0x1d26, 0x1d26, - 0x1d26, 0x1d35, 0x1d53, 0x1d5f, 0x1d6b, -} - -// Size: 2946 bytes -var zuLangStr string = "" + - "isi-Abkhazianisi-Afrikaansisi-Akanisi-Amharicisi-Arabicisi-Assameseisi-A" + - "ymaraisi-Azerbaijaniisi-Bashkirisi-Belarusianisi-Bulgariisi-Bambaraisi-B" + - "engaliisi-TibetanIsi-Bretonisi-Bosnianisi-Catalanisi-Corsicanisi-Czechis" + - "i-Welshisi-Danishisi-Germanisi-Divehiisi-DzongkhaIsi-Eweisi-Greeki-Engli" + - "shisi-Esperantoisi-Spanishisi-Estoniaisi-Basqueisi-Persianisi-Finnishisi" + - "-Fijianisi-Faroeseisi-Frenchisi-Western Frisianisi-Irishi-Scottish Gaeli" + - "cisi-Galiciaisi-Guaraniisi-Gujaratiisi-Manxisi-Hausaisi-Hebrewisi-Hindii" + - "si-Croatianisi-Haitianisi-Hungarianisi-ArmeniaIzilimi ezihlangeneisi-Ind" + - "onesianisi-Igboisi-Sichuan Yiisi-Icelandicisi-Italianisi-Inuktitutisi-Ja" + - "paneseisi-Javaneseisi-GeorgianIsi-Kongoisi-Kikuyuisi-Kazakhisi-Kalaallis" + - "utisi-Khmerisi-Kannadaisi-Koreanisi-Kashmiriisi-Kurdishisi-Cornishisi-Ky" + - "rgyzisi-Latinisi-LuxembourgishIsi-Gandaisi-Lingalai-Laoisi-Lithuanianisi" + - "-Luba-Katangaisi-Latvianisi-Malagasyisi-Maoriisi-Macedonianisi-Malayalam" + - "isi-Mongolianisi-Marathiisi-Malayisi-Malteseisi-Burmeseisi-North Ndebele" + - "isi-Nepaliisi-Dutchi-Norwegian Nynorskisi-Norwegian BokmÃ¥lisi-NyanjaIsi-" + - "OsithaniIsi-Oromoisi-Oriyaisi-Osseticisi-Punjabiisi-Polishisi-Pashtoisi-" + - "Portugueseisi-Quechuaisi-Romanshisi-Rundiisi-Romanianisi-Russianisi-Kiny" + - "arwandaisi-Sanskritisi-Sindhiisi-Northern Samiisi-Sangoi-Sinhalaisi-Slov" + - "akisi-Slovenianisi-Samoanisi-Shonaisi-Somaliisi-Albaniaisi-SerbianisiSwa" + - "tiisiSuthuisi-Sundaneseisi-Swedishisi-Swahiliisi-Tamilisi-Teluguisi-Taji" + - "kisi-Thaiisi-Tigrinyaisi-Turkmenisi-TswanaIsi-Tonganisi-Turkishisi-Tsong" + - "aisi-Tatarisi-Tahitianisi-Uighurisi-Ukrainianisi-Urduisi-Uzbekisi-Vendai" + - "si-Vietnameseisi-WolofisiXhosaIsi-Yidishisi-Yorubaisi-ChineseisiZuluIsi-" + - "Acoliisi-Aghemisi-MapucheasaIsi-Bembaisi-Benaisi-Bodoisi-ChigaIsi-Cherok" + - "eeIsi-Sorani Kurdishisi-Taitaisi-Zarmaisi-Lower Sorbianisi-Dualaisi-Jola" + - "-Fonylisi-Embuisi-Efikisi-FilipinoIsi-Gaisi-Gagauzisi-Swiss Germanisi-Gu" + - "sliisi-Hawaiianisi-Upper Sorbianisi-Ngombaisi-Machameisi-Kabyleisi-Kamba" + - "isi-Makondeisi-Kabuverdianuisi-Koyra Chiiniisi-Kalenjinisi-Komi-Permyaki" + - "si-Konkaniisi-Shambalaisi-Bafiaisi-Langiisi-LakotaIsi-LoziIsi-Luba-Lulua" + - "isi-Luoisi-Luyiaisi-Masaiisi-MeruIsi-Morisyenisi-Makhuwa-Meettoisi-Meta’" + - "isi-Mohawkisi-Mundangisi-Namaisi-Kwasioisi-N’Koisi-Northern Sothoisi-Nue" + - "rIsi-Nyankoleisi-Kʼicheʼisi-Romboisi-Rwaisi-Samburuisi-Sanguisi-Senaisi-" + - "Koyraboro Senniisi-Tachelhitisi-Southern Samiisi-Lule Samiisi-Inari Sami" + - "isi-Skolt Samiisi-Congo Swahiliisi-Tesoisi-TetumIsi-Klingonisi-Tok Pisin" + - "Isi-Tumbukaisi-Tasawaqisi-Central Atlas TamazightUlimi olungaziwaisi-Vai" + - "isi-Vunjoisi-Sogaisi-Standard Moroccan TamazightAkukho okuqukethwe kolim" + - "iIsi-Arabic Esijwayelekile Samanjeisi-Austrian Germanisi-Swiss High Germ" + - "anisi-Austrillian Englishi-Canadian Englishi-British Englishi-American E" + - "nglishisi-Latin American Spanishisi-Mexican Spanishisi-Canadian Frenchis" + - "i-Swiss Frenchisi-Flemishisi-Brazillian Portugueseisi-European Portugues" + - "eisi-Moldavianisi-Sipmlified Chineseisi-Traditional Chinese" - -// Size: 1234 bytes, 605 elements -var zuLangIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x000d, 0x000d, 0x001a, 0x0022, 0x002d, 0x002d, - 0x0037, 0x0043, 0x0043, 0x004d, 0x005c, 0x0067, 0x0075, 0x0080, - 0x0080, 0x008b, 0x0096, 0x00a1, 0x00ab, 0x00b6, 0x00c1, 0x00c1, - 0x00c1, 0x00cd, 0x00cd, 0x00d6, 0x00d6, 0x00d6, 0x00df, 0x00e9, - 0x00f3, 0x00fd, 0x0109, 0x0110, 0x0119, 0x0122, 0x012f, 0x013a, - 0x0145, 0x014f, 0x015a, 0x015a, 0x0165, 0x016f, 0x017a, 0x0184, - 0x0197, 0x01a0, 0x01b1, 0x01bc, 0x01c7, 0x01d3, 0x01db, 0x01e4, - 0x01ee, 0x01f7, 0x01f7, 0x0203, 0x020e, 0x021b, 0x0226, 0x0226, - // Entry 40 - 7F - 0x0239, 0x0247, 0x0247, 0x024f, 0x025d, 0x025d, 0x025d, 0x026a, - 0x0275, 0x0282, 0x028e, 0x029a, 0x02a6, 0x02af, 0x02b9, 0x02b9, - 0x02c3, 0x02d2, 0x02db, 0x02e6, 0x02f0, 0x02f0, 0x02fc, 0x0307, - 0x0307, 0x0312, 0x031c, 0x0325, 0x0336, 0x033f, 0x033f, 0x034a, - 0x034f, 0x035d, 0x036d, 0x0378, 0x0384, 0x0384, 0x038d, 0x039b, - 0x03a8, 0x03b5, 0x03c0, 0x03c9, 0x03d4, 0x03df, 0x03df, 0x03f0, - 0x03fa, 0x03fa, 0x0403, 0x0416, 0x042b, 0x042b, 0x042b, 0x0435, - 0x0441, 0x0441, 0x044a, 0x0453, 0x045e, 0x0469, 0x0469, 0x0473, - // Entry 80 - BF - 0x047d, 0x048b, 0x0496, 0x04a1, 0x04aa, 0x04b6, 0x04c1, 0x04d0, - 0x04dc, 0x04dc, 0x04e6, 0x04f7, 0x0500, 0x0509, 0x0513, 0x0520, - 0x052a, 0x0533, 0x053d, 0x0548, 0x0553, 0x055b, 0x0563, 0x0570, - 0x057b, 0x0586, 0x058f, 0x0599, 0x05a2, 0x05aa, 0x05b6, 0x05c1, - 0x05cb, 0x05d5, 0x05e0, 0x05ea, 0x05f3, 0x05ff, 0x0609, 0x0616, - 0x061e, 0x0627, 0x0630, 0x063e, 0x063e, 0x063e, 0x0647, 0x064f, - 0x0659, 0x0663, 0x0663, 0x066e, 0x0675, 0x0675, 0x067e, 0x067e, - 0x067e, 0x067e, 0x067e, 0x0687, 0x0687, 0x0687, 0x0687, 0x0687, - // Entry C0 - FF - 0x0687, 0x0687, 0x0687, 0x0687, 0x0687, 0x0692, 0x0692, 0x0692, - 0x0692, 0x0692, 0x0692, 0x0692, 0x0695, 0x0695, 0x0695, 0x0695, - 0x0695, 0x0695, 0x0695, 0x0695, 0x0695, 0x0695, 0x0695, 0x0695, - 0x0695, 0x0695, 0x069e, 0x069e, 0x06a6, 0x06a6, 0x06a6, 0x06a6, - 0x06a6, 0x06a6, 0x06a6, 0x06a6, 0x06a6, 0x06a6, 0x06a6, 0x06a6, - 0x06a6, 0x06ae, 0x06ae, 0x06ae, 0x06ae, 0x06ae, 0x06ae, 0x06ae, - 0x06ae, 0x06ae, 0x06ae, 0x06ae, 0x06ae, 0x06b7, 0x06b7, 0x06b7, - 0x06b7, 0x06b7, 0x06b7, 0x06b7, 0x06b7, 0x06c3, 0x06c3, 0x06d5, - // Entry 100 - 13F - 0x06d5, 0x06d5, 0x06d5, 0x06d5, 0x06d5, 0x06d5, 0x06de, 0x06de, - 0x06de, 0x06de, 0x06de, 0x06e7, 0x06e7, 0x06f8, 0x06f8, 0x0701, - 0x0701, 0x070f, 0x070f, 0x070f, 0x0717, 0x071f, 0x071f, 0x071f, - 0x071f, 0x071f, 0x071f, 0x071f, 0x071f, 0x071f, 0x071f, 0x072b, - 0x072b, 0x072b, 0x072b, 0x072b, 0x072b, 0x072b, 0x072b, 0x072b, - 0x072b, 0x0731, 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, - 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, 0x073b, - 0x073b, 0x073b, 0x074b, 0x074b, 0x074b, 0x0754, 0x0754, 0x0754, - // Entry 140 - 17F - 0x0754, 0x0760, 0x0760, 0x0760, 0x0760, 0x0760, 0x0771, 0x0771, - 0x0771, 0x0771, 0x0771, 0x0771, 0x0771, 0x0771, 0x0771, 0x0771, - 0x077b, 0x0786, 0x0786, 0x0786, 0x0786, 0x0786, 0x0790, 0x0790, - 0x0790, 0x0799, 0x0799, 0x0799, 0x0799, 0x0799, 0x07a4, 0x07b4, - 0x07b4, 0x07b4, 0x07b4, 0x07b4, 0x07b4, 0x07c4, 0x07c4, 0x07c4, - 0x07c4, 0x07d0, 0x07d0, 0x07e0, 0x07eb, 0x07eb, 0x07eb, 0x07eb, - 0x07eb, 0x07eb, 0x07eb, 0x07eb, 0x07f7, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0809, 0x0809, 0x0809, 0x0809, 0x0809, 0x0809, - // Entry 180 - 1BF - 0x0809, 0x0813, 0x0813, 0x0813, 0x081b, 0x081b, 0x0829, 0x0829, - 0x0829, 0x0830, 0x0830, 0x0839, 0x0839, 0x0839, 0x0839, 0x0839, - 0x0839, 0x0839, 0x0839, 0x0839, 0x0842, 0x0842, 0x0842, 0x0842, - 0x0842, 0x084a, 0x0856, 0x0856, 0x0868, 0x0873, 0x0873, 0x0873, - 0x0873, 0x0873, 0x087d, 0x087d, 0x087d, 0x0888, 0x0888, 0x0888, - 0x0888, 0x0888, 0x0888, 0x0888, 0x0888, 0x0888, 0x0888, 0x0888, - 0x0890, 0x0890, 0x0890, 0x0890, 0x0890, 0x0890, 0x089a, 0x089a, - 0x089a, 0x089a, 0x089a, 0x08a4, 0x08b6, 0x08be, 0x08be, 0x08be, - // Entry 1C0 - 1FF - 0x08ca, 0x08ca, 0x08ca, 0x08ca, 0x08ca, 0x08ca, 0x08ca, 0x08ca, - 0x08ca, 0x08ca, 0x08ca, 0x08ca, 0x08ca, 0x08ca, 0x08ca, 0x08ca, - 0x08ca, 0x08ca, 0x08ca, 0x08ca, 0x08ca, 0x08d7, 0x08d7, 0x08d7, - 0x08d7, 0x08d7, 0x08d7, 0x08d7, 0x08e0, 0x08e0, 0x08e0, 0x08e0, - 0x08e0, 0x08e0, 0x08e7, 0x08e7, 0x08e7, 0x08e7, 0x08f2, 0x08f2, - 0x08f2, 0x08f2, 0x08f2, 0x08fb, 0x08fb, 0x08fb, 0x08fb, 0x08fb, - 0x0903, 0x0903, 0x0903, 0x0916, 0x0916, 0x0916, 0x0923, 0x0923, - 0x0923, 0x0923, 0x0923, 0x0923, 0x0934, 0x0941, 0x094f, 0x095d, - // Entry 200 - 23F - 0x095d, 0x095d, 0x095d, 0x095d, 0x095d, 0x095d, 0x095d, 0x095d, - 0x095d, 0x095d, 0x096e, 0x096e, 0x096e, 0x096e, 0x096e, 0x096e, - 0x0976, 0x0976, 0x097f, 0x097f, 0x097f, 0x097f, 0x097f, 0x098a, - 0x098a, 0x098a, 0x098a, 0x098a, 0x0997, 0x0997, 0x0997, 0x0997, - 0x0997, 0x0997, 0x09a2, 0x09a2, 0x09ad, 0x09ad, 0x09c8, 0x09c8, - 0x09c8, 0x09c8, 0x09d8, 0x09df, 0x09df, 0x09df, 0x09df, 0x09df, - 0x09df, 0x09df, 0x09e8, 0x09e8, 0x09e8, 0x09e8, 0x09e8, 0x09e8, - 0x09e8, 0x09e8, 0x09e8, 0x09f0, 0x09f0, 0x09f0, 0x09f0, 0x09f0, - // Entry 240 - 27F - 0x09f0, 0x09f0, 0x09f0, 0x09f0, 0x09f0, 0x09f0, 0x0a0f, 0x0a0f, - 0x0a28, 0x0a28, 0x0a49, 0x0a5c, 0x0a71, 0x0a88, 0x0a9a, 0x0aab, - 0x0abd, 0x0ad7, 0x0ad7, 0x0aea, 0x0afd, 0x0b0d, 0x0b18, 0x0b31, - 0x0b48, 0x0b55, 0x0b55, 0x0b6b, 0x0b82, -} - -// Total size for lang: 840730 bytes (840 KB) - -// Number of keys: 164 -var ( - scriptIndex = tagIndex{ - "", - "", - "AfakAghbArabArmiArmnAvstBaliBamuBassBatkBengBlisBopoBrahBraiBugiBuhdCakm" + - "CansCariChamCherCirtCoptCprtCyrlCyrsDevaDsrtDuplEgydEgyhEgypElbaEthi" + - "GeokGeorGlagGothGranGrekGujrGuruHangHaniHanoHansHantHebrHiraHluwHmng" + - "HrktHungIndsItalJavaJpanJurcKaliKanaKharKhmrKhojKndaKoreKpelKthiLana" + - "LaooLatfLatgLatnLepcLimbLinaLinbLisuLomaLyciLydiMahjMandManiMayaMend" + - "MercMeroMlymModiMongMoonMrooMteiMymrNarbNbatNkgbNkooNshuOgamOlckOrkh" + - "OryaOsmaPalmPaucPermPhagPhliPhlpPhlvPhnxPlrdPrtiRjngRoroRunrSamrSara" + - "SarbSaurSgnwShawShrdSiddSindSinhSoraSundSyloSyrcSyreSyrjSyrnTagbTakr" + - "TaleTaluTamlTangTavtTeluTengTfngTglgThaaThaiTibtTirhUgarVaiiVispWara" + - "WoleXpeoXsuxYiiiZinhZmthZsymZxxxZyyyZzzz", - } -) - -var scriptHeaders = [210]header{ - { // af - afScriptStr, - afScriptIdx, - }, - {}, // agq - {}, // ak - { // am - amScriptStr, - amScriptIdx, - }, - { // ar - arScriptStr, - arScriptIdx, - }, - {}, // ar-EG - { // as - "বঙালী", - []uint16{ // 12 elements - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x000f, - }, - }, - {}, // asa - { // ast - "árabearmeniubengalínBopobraillecirílicudevanagariEgydetíopexeorxanugrieg" + - "uguyaratigurmukhihangulescritura chinaHansHanthebréuḥiraganaxaponésk" + - "atakanaKhmrcanaréscoreanulaosianullatínmalayalammongolbirmanuoriyaci" + - "ngaléstamilteluguthaanatailandéstibetanusímbolosnon escritucomúnescr" + - "itura desconocida", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x0016, 0x0016, 0x001a, 0x001a, 0x0021, - 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, - 0x0021, 0x0021, 0x002a, 0x002a, 0x0034, 0x0034, 0x0034, 0x0038, - 0x0038, 0x0038, 0x0038, 0x003f, 0x003f, 0x0047, 0x0047, 0x0047, - 0x0047, 0x004d, 0x0055, 0x005d, 0x0063, 0x0072, 0x0072, 0x0076, - 0x007a, 0x0081, 0x008b, 0x008b, 0x008b, 0x008b, 0x008b, 0x008b, - 0x008b, 0x008b, 0x0093, 0x0093, 0x0093, 0x009b, 0x009b, 0x009f, - // Entry 40 - 7F - 0x009f, 0x00a7, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00b6, 0x00b6, - 0x00b6, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, - 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, - 0x00bd, 0x00c6, 0x00c6, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00d3, - 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - // Entry 80 - BF - 0x00e1, 0x00e1, 0x00e1, 0x00e1, 0x00e1, 0x00e1, 0x00e1, 0x00e1, - 0x00e1, 0x00e1, 0x00e1, 0x00e1, 0x00e6, 0x00e6, 0x00e6, 0x00ec, - 0x00ec, 0x00ec, 0x00ec, 0x00f2, 0x00fc, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x010d, 0x0118, 0x011e, 0x0133, - }, - }, - { // az - azScriptStr, - azScriptIdx, - }, - { // az-Cyrl - "Кирил", - []uint16{ // 27 elements - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x000a, - }, - }, - {}, // bas - { // be - "арабÑкаеармÑнÑкаекірылічныгрузінÑкаеÑпрошчанае кітайÑкаетрадыцыйнае кіта" + - "йÑкаегабрÑйÑкаеÑпонÑкаелацінÑкічыÑтыневÑдомы або недапушчальны пера" + - "клад", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0022, 0x0022, 0x0022, - 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, - 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, - 0x0022, 0x0022, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0048, 0x0048, 0x0048, - 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x006f, - 0x0098, 0x00ac, 0x00ac, 0x00ac, 0x00ac, 0x00ac, 0x00ac, 0x00ac, - 0x00ac, 0x00ac, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, - // Entry 40 - 7F - 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, - 0x00bc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - // Entry 80 - BF - 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00d6, 0x00d6, 0x0119, - }, - }, - {}, // bem - {}, // bez - { // bg - bgScriptStr, - bgScriptIdx, - }, - {}, // bm - { // bn - bnScriptStr, - bnScriptIdx, - }, - { // bo - "བོད་ཡིག་", - []uint16{ // 150 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 80 - BF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0018, - }, - }, - {}, // bo-IN - { // br - "arabekarameek impalaerelarmenianekavestekbalinekbengalibopomofoBraillebo" + - "ugiekkoptekkirillekkirillek henslavonekdevanagarihieroglifoù egiptek" + - "etiopekjorjianekglagolitekgotekgresianekgujaratigurmukhihangeulhanha" + - "n eeunaethan hengounelhebraekhiraganahieroglifoù Anatoliahenitalekja" + - "vanekjapanekkatakanakhmerkannadakoreaneklaoseklatin gouezeleklatinhi" + - "eroglifoù mayaekmalayalammongolekmyanmarogamoriyaruneksinghaleksunda" + - "neksirieksiriek EstrangelÄsiriek ar C’hornôgsiriek ar Retertamilekte" + - "lougoutagalogthaanathaitibetanekougaritekvaipersek kozhnotadur jedon" + - "ielarouezioùanskrivetboutinskritur dianav", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0006, 0x0018, 0x0022, 0x0029, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0037, 0x0037, 0x003f, 0x003f, 0x0046, - 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, - 0x0053, 0x0053, 0x005b, 0x006f, 0x0079, 0x0079, 0x0079, 0x0079, - 0x0079, 0x008d, 0x008d, 0x0094, 0x0094, 0x009d, 0x00a7, 0x00ac, - 0x00ac, 0x00b5, 0x00bd, 0x00c5, 0x00cc, 0x00cf, 0x00cf, 0x00da, - 0x00e7, 0x00ee, 0x00f6, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x0114, 0x011b, 0x0122, 0x0122, 0x0122, 0x012a, 0x012a, 0x012f, - // Entry 40 - 7F - 0x012f, 0x0136, 0x013e, 0x013e, 0x013e, 0x013e, 0x0144, 0x0144, - 0x0153, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, - 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x016b, 0x016b, 0x016b, - 0x016b, 0x0174, 0x0174, 0x017c, 0x017c, 0x017c, 0x017c, 0x0183, - 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, 0x0187, 0x0187, 0x0187, - 0x018c, 0x018c, 0x018c, 0x018c, 0x018c, 0x018c, 0x018c, 0x018c, - 0x018c, 0x018c, 0x018c, 0x018c, 0x018c, 0x018c, 0x0191, 0x0191, - 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, - // Entry 80 - BF - 0x019a, 0x019a, 0x01a2, 0x01a2, 0x01a8, 0x01ba, 0x01cf, 0x01de, - 0x01de, 0x01de, 0x01de, 0x01de, 0x01e5, 0x01e5, 0x01e5, 0x01ed, - 0x01ed, 0x01ed, 0x01f4, 0x01fa, 0x01fe, 0x0207, 0x0207, 0x0210, - 0x0213, 0x0213, 0x0213, 0x0213, 0x021e, 0x021e, 0x021e, 0x021e, - 0x022e, 0x0238, 0x0241, 0x0247, 0x0255, - }, - }, - { // brx - "अरबीशहनशाही आरामाईकअरà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆà¤…वसà¥à¤¤à¤¨à¥à¤¬à¤¾à¤²à¥€à¤¬à¤Ÿà¤•à¥€à¤¬à¤‚गालीबà¥à¤²à¥€à¤¸ चीनà¥à¤¹à¤¬à¥‹à¤ªà¥‹à¤®à¥‹à¤«à¥‹à¤¬à¥à¤°" + - "हà¥à¤®à¥€à¤¬à¥à¤°à¥‡à¤²à¤¬à¥à¤—ीनीबà¥à¤¹à¥€à¤¦à¤¯à¥à¤¨à¥€à¤«à¤¾à¤ˆà¤¡ कैनेडियन अबॉरीजीनल सीलैबीकà¥à¤¸à¤•à¤¾à¤°à¤¿à¤¯à¤¨à¤•à¥…म" + - "चिरूकीसिरà¥à¤¥à¤•à¥‰à¤ªà¥à¤Ÿà¤¸à¥€à¤ªà¥à¤°à¥€à¤“टà¥à¤¸à¤¿à¤°à¤¿à¤²à¤¿à¤•à¥à¤ªà¥à¤°à¤¾à¤¨à¥€ चरà¥à¤š सिरिलिकà¥à¤¦à¥‡à¤µà¤¨à¤¾à¤—रीदेसेर" + - "टà¥à¤®à¥€à¤¸à¥à¤°à¥€ डैमोटीकà¥à¤®à¥€à¤¸à¥à¤°à¥€ हैरैटीकà¥à¤®à¥€à¤¸à¥à¤°à¥€ हैरोगà¥à¤²à¥€à¤«à¤¼à¥à¤ˆà¤¥à¥‹à¤ªà¤¿à¤¯à¤¾à¤ˆà¤œà¥‹à¤°à¥à¤œà¥€à¤¯à¤¨" + - " खà¥à¤¤à¤¸à¥à¤°à¥€à¤œà¥‹à¤°à¥à¤œà¥€à¤¯à¤¨à¤—à¥à¤²à¥ˆà¤—ोलिटीकगौथीकगà¥à¤°à¥€à¤•à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤—à¥à¤°à¤®à¥à¤–ीहंगà¥à¤²à¤¹à¤¾à¤¨à¤¹à¤¾à¤¨à¥à¤¨à¥à¤¸à¤°à¤²" + - "ीकृत हानपारमà¥à¤ªà¤°à¤¿à¤• हानहिबà¥à¤°à¥‚हीरागानापाहवाह हà¥à¤®à¥Œà¤‚गकाताकाना या हीरागा" + - "नापà¥à¤°à¤¾à¤¨à¥€ हंगैरीयनसिनà¥à¤§à¥à¤ªà¥à¤°à¤¾à¤¨à¥€ इटैलियनजावानीसजापानीकायाह लीकाताकाना" + - "खरोषà¥à¤Ÿà¥€à¤–à¥à¤®à¥‡à¤°à¤•à¤¨à¥à¤¨à¤¡à¤¼à¤•à¥‹à¤°à¤¿à¤¯à¤¾à¤ˆà¤²à¤¾à¤¨à¤¾à¤²à¤¾à¤“फà¥à¤°à¥ˆà¤•à¥à¤¤à¥à¤° लैटिनगैलीक लैटिनलैटिनलेप" + - "चालिमà¥à¤¬à¥à¤²à¥€à¤¨à¥€à¤¯à¤° à¤à¤²à¥€à¤¨à¥€à¤¯à¤° बीलीसीयनलीडीयनमांडेमानीकीमाया हीरोगà¥à¤²à¥€à¤«à¥à¤®à¥‡à¤°" + - "ोईटीकà¥à¤®à¤²à¤¯à¤¾à¤²à¤®à¥à¤®à¤‚गोलियाईमà¥à¤¨à¥à¤®à¥‡à¤¤à¥‡à¤ˆ मयेकमà¥à¤¯à¤¾à¤¨à¤®à¤¾à¤°à¥à¤¨à¥à¤—कोओगहैमओल चीकीओरखो" + - "नउड़ियाओसà¥à¤®à¤¾à¤¨à¤¿à¤¯à¤¾à¤ªà¥à¤°à¤¾à¤¨à¥€ परà¥à¤®à¥€à¤•à¥à¤«à¤¾à¤—à¥à¤¸ पाबà¥à¤• (सालटर) पहलवीफोनीशीयनपौल" + - "ारà¥à¤¡à¤¼ फोनेटीकरेजेंगरोंगोरोंगोरूनिकसमारतीसरातीसौराषà¥à¤Ÿà¥à¤°à¤¸à¤¾à¤‚केतिक लेख" + - "शेवियनसिंहालीसूडानीसीलà¥à¤¹à¥‹à¤Ÿà¥€ नागरीसीरीआकà¤à¤¸à¥à¤Ÿà¥à¤°à¤¾à¤‚गलो सीरीआकपशà¥à¤šà¥€à¤®à¥€ स" + - "ीरीआकपूरà¥à¤µà¥€ सीरीआकतागबानवाताई लेनया ताई लà¥à¤à¤¤à¤®à¥€à¤³à¤¤à¥‡à¤²à¥à¤—à¥à¤¤à¥‡à¤‚गवारतीफीना" + - "ग़टागालॉगथानाथाईतिबà¥à¤¬à¤¤à¥€à¤Šà¤—ारीटीकवाईवीज़ीबल बोलीपà¥à¤°à¤¾à¤¨à¥€ फारसीसà¥à¤®à¥‡à¤°à¥‹ अ" + - "कà¥à¤•à¤¾à¤¡à¤¼à¥€ कà¥à¤¨à¥‡à¤ˆà¤«à¥‰à¤°à¥à¤®à¤¯à¥€à¤µà¤¿à¤°à¤¾à¤¸à¤¤à¤…लिखितआमअजà¥à¤žà¤¾à¤¤ या अवैध लिपि", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000c, 0x0037, 0x0055, 0x006a, 0x0076, - 0x0076, 0x0076, 0x0082, 0x0094, 0x00b3, 0x00cb, 0x00e0, 0x00ef, - 0x0101, 0x0110, 0x0110, 0x0179, 0x018b, 0x0194, 0x01a6, 0x01b5, - 0x01c4, 0x01df, 0x01f7, 0x022f, 0x0247, 0x025c, 0x025c, 0x0287, - 0x02b2, 0x02e6, 0x02e6, 0x02fe, 0x032c, 0x0344, 0x0365, 0x0374, - 0x0374, 0x0383, 0x0398, 0x03ad, 0x03bc, 0x03c5, 0x03d7, 0x03f6, - 0x041b, 0x042d, 0x0445, 0x0445, 0x046a, 0x04a2, 0x04cd, 0x04df, - 0x0507, 0x051c, 0x052e, 0x052e, 0x0544, 0x055c, 0x0571, 0x0580, - // Entry 40 - 7F - 0x0580, 0x0592, 0x05a7, 0x05a7, 0x05a7, 0x05b3, 0x05bc, 0x05e7, - 0x0606, 0x0615, 0x0624, 0x0636, 0x064c, 0x0665, 0x0665, 0x0665, - 0x0677, 0x0689, 0x0689, 0x0698, 0x06aa, 0x06d5, 0x06d5, 0x06d5, - 0x06f0, 0x0705, 0x0705, 0x0720, 0x072c, 0x072c, 0x0748, 0x0763, - 0x0763, 0x0763, 0x0763, 0x0772, 0x0772, 0x0781, 0x0794, 0x07a3, - 0x07b5, 0x07d0, 0x07d0, 0x07d0, 0x07f8, 0x080e, 0x080e, 0x080e, - 0x0839, 0x0851, 0x087f, 0x087f, 0x0891, 0x08af, 0x08be, 0x08d0, - 0x08df, 0x08df, 0x08fa, 0x091c, 0x092e, 0x092e, 0x092e, 0x092e, - // Entry 80 - BF - 0x0943, 0x0943, 0x0955, 0x097d, 0x098f, 0x09c3, 0x09eb, 0x0a10, - 0x0a28, 0x0a28, 0x0a38, 0x0a55, 0x0a61, 0x0a61, 0x0a61, 0x0a73, - 0x0a88, 0x0aa0, 0x0ab5, 0x0ac1, 0x0aca, 0x0adf, 0x0adf, 0x0af7, - 0x0b00, 0x0b22, 0x0b22, 0x0b22, 0x0b44, 0x0b8e, 0x0b94, 0x0ba6, - 0x0ba6, 0x0ba6, 0x0bb8, 0x0bbe, 0x0bf1, - }, - }, - { // bs - "arapsko pismoimperijsko aramejsko pismojermensko pismoavestansko pismoba" + - "lijsko pismobatak pismobengalsko pismoblisimboliÄno pismobopomofo pi" + - "smobramansko pismobrajevo pismobuginsko pismobuhidsko pismoÄakmansko" + - " pismoUjedinjeni kanadski aboridžinski silabicikarijsko pismoÄamsko " + - "pismoÄerokicirt pismokoptiÄko pismokiparsko pismoćirilicaStarosloven" + - "ska crkvena ćirilicadevanagaridezeretegipatsko narodno pismoegipatsk" + - "o hijeratsko pismoegipatski hijeroglifietiopsko pismogruzijsko khuts" + - "uri pismogruzijsko pismoglagoljicagotikagrÄko pismogudžarati pismogu" + - "rmuki pismohangul pismohan pismohanuno pismopojednostavljeno hansko " + - "pismotradicionalno hansko pismohebrejsko pismohiraganapahawh hmong p" + - "ismoKatakana ili HiraganaStaromaÄ‘arsko pismoinduÅ¡ko ismostaro italsk" + - "o pismojavansko pismojapansko pismokajah li pismokatakanakaroÅ¡ti pis" + - "mokmersko pismokanada pismokorejsko pismokaićansko pismolanna pismol" + - "aosko pismolatinica (fraktur varijanta)galska latinicalatinicalepÄa " + - "pismolimbu pismolinearno A pismolinearno B pismolisijsko pismolidijs" + - "ko pismomandeansko pismomanihejsko pismomajanski hijeroglifimeroitik" + - " pismomalajalam pismomongolsko pismomeseÄevo pismomeitei majek pismo" + - "mijanmarsko pismon’ko pismoogham pismool Äiki pismoorkhon pismoorija" + - " pismoosmanja pismostaro permiksko pismophags-pa pismopisani pahlavi" + - "psalter pahlavipahlavi pismofeniÄansko pismopolard fonetsko pismopis" + - "ani partianrejang pismorongorongo pismorunsko pismosamaritansko pism" + - "osarati pismosauraÅ¡tra pismoznakovno pismoÅ¡avian pismosinhala pismos" + - "udansko pismosiloti nagri pismosirijsko pismosirijsko estrangelo pis" + - "mozapadnosirijsko pismopismo istoÄne Sirijetagbanva pismotai le pism" + - "onovo tai lue pismotamilsko pismotai viet pismotelugu pismotengvar p" + - "ismotifinag pismotagalogtana pismotajlandsko pismotibetansko pismoug" + - "aritsko pismovai pismovidljivi govorstaropersijsko pismosumersko-aka" + - "dsko kuneiform pismoji pismonasledno pismomatematiÄka notacijasimbol" + - "inepisani jezikzajedniÄko pismonepoznato ili nevažeće pismo", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000d, 0x0027, 0x0036, 0x0046, 0x0054, - 0x0054, 0x0054, 0x005f, 0x006e, 0x0082, 0x0090, 0x009f, 0x00ac, - 0x00ba, 0x00c8, 0x00d8, 0x0102, 0x0110, 0x011d, 0x0124, 0x012e, - 0x013d, 0x014b, 0x0154, 0x0174, 0x017e, 0x0185, 0x0185, 0x019c, - 0x01b6, 0x01cb, 0x01cb, 0x01d9, 0x01f1, 0x0200, 0x020a, 0x0210, - 0x0210, 0x021c, 0x022c, 0x0239, 0x0245, 0x024e, 0x025a, 0x0277, - 0x0291, 0x02a0, 0x02a8, 0x02a8, 0x02ba, 0x02cf, 0x02e3, 0x02f0, - 0x0303, 0x0311, 0x031f, 0x031f, 0x032d, 0x0335, 0x0343, 0x0350, - // Entry 40 - 7F - 0x0350, 0x035c, 0x036a, 0x036a, 0x037a, 0x0385, 0x0391, 0x03ad, - 0x03bc, 0x03c4, 0x03d0, 0x03db, 0x03eb, 0x03fb, 0x03fb, 0x03fb, - 0x0409, 0x0417, 0x0417, 0x0427, 0x0437, 0x044b, 0x044b, 0x044b, - 0x0459, 0x0468, 0x0468, 0x0477, 0x0486, 0x0486, 0x0498, 0x04a9, - 0x04a9, 0x04a9, 0x04a9, 0x04b5, 0x04b5, 0x04c0, 0x04ce, 0x04da, - 0x04e5, 0x04f2, 0x04f2, 0x04f2, 0x0507, 0x0515, 0x0523, 0x0532, - 0x053f, 0x0550, 0x0565, 0x0573, 0x057f, 0x058f, 0x059b, 0x05ad, - 0x05b9, 0x05b9, 0x05c9, 0x05d7, 0x05e4, 0x05e4, 0x05e4, 0x05e4, - // Entry 80 - BF - 0x05f1, 0x05f1, 0x05ff, 0x0611, 0x061f, 0x0638, 0x064d, 0x0662, - 0x0670, 0x0670, 0x067c, 0x068e, 0x069c, 0x069c, 0x06aa, 0x06b6, - 0x06c3, 0x06d0, 0x06d7, 0x06e1, 0x06f1, 0x0701, 0x0701, 0x0710, - 0x0719, 0x0727, 0x0727, 0x0727, 0x073b, 0x075b, 0x0763, 0x0771, - 0x0786, 0x078d, 0x079b, 0x07ac, 0x07ca, - }, - }, - { // bs-Cyrl - "арапÑко пиÑмоимперијÑко арамејÑко пиÑмојерменÑко пиÑмоавеÑтанÑко пиÑмоба" + - "лијÑко пиÑмобатак пиÑмобенгалÑко пиÑмоблиÑимболично пиÑмобопомофо п" + - "иÑмобраманÑко пиÑмоБрајево пиÑмобугинÑко пиÑмобухидÑко пиÑмочакманÑ" + - "ко пиÑмоуједињени канадÑки абориџинÑки ÑилабицикаријÑко пиÑмочамÑко" + - " пиÑмоЧерокицирт пиÑмокоптичко пиÑмокипарÑко пиÑмоЋирилицаСтароÑлове" + - "нÑка црквена ћирилицаДеванагариДезеретегипатÑко народно пиÑмоегипат" + - "Ñко хијератÑко пиÑмоегипатÑки хијероглифиетиопÑко пиÑмогрузијÑко кх" + - "утÑури пиÑмогрузијÑко пиÑмоглагољицаГотикагрчко пиÑмогујарати пиÑмо" + - "гурмуки пиÑмохангулханханунопоједноÑтављени хантрадиционални ханхеб" + - "рејÑко пиÑмоХираганапахав хмонг пиÑмоКатакана или ХираганаÑтаромађа" + - "Ñ€Ñко пиÑмоиндушко пиÑмоÑтари италикјаванÑко пиÑмојапанÑко пиÑмокаја" + - "Ñ…-ли пиÑмоКатаканакарошти пиÑмокмерÑко пиÑмоканнада пиÑмокорејÑко п" + - "иÑмокаитиланна пиÑмолаошко пиÑмолатиница (фрактур варијанта)галÑка " + - "латиницаЛатиницалепча пиÑмолимбу пиÑмолинеарно РпиÑмолинеарно Б пи" + - "ÑмолиÑијÑко пиÑмолидијÑко пиÑмомандеанÑко пиÑмоманихејÑко пиÑмомаја" + - "нÑки хијероглифимероитик пиÑмомалајалам пиÑмомонголÑко пиÑмомеÑечев" + - "о пиÑмомеитеи мајек пиÑмомијанмарÑко пиÑмон’ко пиÑмоогамÑко пиÑмоол" + - " чики пиÑмоорконÑко пиÑмооријанÑко пиÑмооÑмањанÑко пиÑмоÑтаро пермик" + - "Ñко пиÑмопагÑ-па пиÑмопиÑани пахлавипÑалтер пахлавипахлави пиÑмоФен" + - "ичанÑко пиÑмопоралд фонетÑко пиÑмопиÑани партианрејанг пиÑморонгоро" + - "нго пиÑморунÑко пиÑмоÑамаританÑко пиÑмоÑарати пиÑмоÑаураштра пиÑмоз" + - "наковно пиÑмошавијанÑко пиÑмоÑинхала пиÑмоÑуданÑко пиÑмоÑилоти нагр" + - "и пиÑмоÑиријÑко пиÑмоÑиријÑко еÑтрангело пиÑмозападноÑиријÑко пиÑмо" + - "пиÑмо иÑточне Сиријетагбанва пиÑмотаи ле пиÑмонови таи луетамилÑко " + - "пиÑмотаи виет пиÑмотелугу пиÑмотенгвар пиÑмотифинаг пиÑмоТагалогтха" + - "на пиÑмотајландÑко пиÑмотибетанÑко пиÑмоугаритÑко пиÑмоваи пиÑмовид" + - "љиви говорÑтароперÑијÑко пиÑмоÑумерÑко-акадÑко кунеиформ пиÑмоји пи" + - "ÑмонаÑледно пиÑмоматематичка нотацијаÑимболиÐепиÑани језикзаједничк" + - "о пиÑмоÐепознато или неважеће пиÑмо", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0019, 0x004b, 0x0068, 0x0087, 0x00a2, - 0x00a2, 0x00a2, 0x00b7, 0x00d4, 0x00f9, 0x0114, 0x0131, 0x014a, - 0x0165, 0x0180, 0x019d, 0x01e8, 0x0203, 0x021a, 0x0226, 0x0239, - 0x0254, 0x026f, 0x027f, 0x02bb, 0x02cf, 0x02dd, 0x02dd, 0x0309, - 0x033b, 0x0364, 0x0364, 0x037f, 0x03ad, 0x03ca, 0x03dc, 0x03e8, - 0x03e8, 0x03fd, 0x0418, 0x0431, 0x043d, 0x0443, 0x044f, 0x0474, - 0x0495, 0x04b2, 0x04c2, 0x04c2, 0x04e2, 0x050a, 0x052f, 0x0548, - 0x055f, 0x057a, 0x0595, 0x0595, 0x05af, 0x05bf, 0x05d8, 0x05f1, - // Entry 40 - 7F - 0x05f1, 0x060a, 0x0625, 0x0625, 0x062f, 0x0644, 0x065b, 0x068f, - 0x06ac, 0x06bc, 0x06d1, 0x06e6, 0x0704, 0x0722, 0x0722, 0x0722, - 0x073d, 0x0758, 0x0758, 0x0777, 0x0796, 0x07bd, 0x07bd, 0x07bd, - 0x07d8, 0x07f5, 0x07f5, 0x0812, 0x082d, 0x082d, 0x084f, 0x0870, - 0x0870, 0x0870, 0x0870, 0x0884, 0x0884, 0x089d, 0x08b5, 0x08d0, - 0x08ed, 0x090c, 0x090c, 0x090c, 0x0934, 0x094c, 0x0967, 0x0984, - 0x099d, 0x09bc, 0x09e4, 0x09ff, 0x0a16, 0x0a35, 0x0a4c, 0x0a6f, - 0x0a86, 0x0a86, 0x0aa3, 0x0abe, 0x0add, 0x0add, 0x0add, 0x0add, - // Entry 80 - BF - 0x0af6, 0x0af6, 0x0b11, 0x0b33, 0x0b4e, 0x0b7e, 0x0ba7, 0x0bcd, - 0x0be8, 0x0be8, 0x0bfe, 0x0c14, 0x0c2f, 0x0c2f, 0x0c49, 0x0c60, - 0x0c79, 0x0c92, 0x0ca0, 0x0cb5, 0x0cd4, 0x0cf3, 0x0cf3, 0x0d10, - 0x0d21, 0x0d3a, 0x0d3a, 0x0d3a, 0x0d61, 0x0d9e, 0x0dad, 0x0dc8, - 0x0def, 0x0dfd, 0x0e18, 0x0e37, 0x0e6c, - }, - }, - { // ca - caScriptStr, - caScriptIdx, - }, - {}, // cgg - { // chr - "ᎡᎳáˆáŽ©á£áŽ³áŽ©á²á‚Ꭲ á—ᎪáªáŽµáŽ áŽ¯á—Ꭸ á“Ꮆá‚ᎨᎤá¦áá— á“Ꮆá‚ᎨᎳá—Ꮎá„á¬áŽµáá›áŽ¾ Ꭰáá“á©á›áá™á—", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x0015, 0x0015, - 0x0015, 0x0015, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, - 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, - 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x0044, - 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, - 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, - // Entry 40 - 7F - 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, - 0x005d, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - // Entry 80 - BF - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0091, - }, - }, - { // cs - csScriptStr, - csScriptIdx, - }, - { // cy - "ArabaiddArmenaiddBengalaiddBopomofoBrailleCyriligDevanÄgarÄ«EthiopigGeorg" + - "aiddGroegaiddGujarataiddGwrmwciHangulHanHan symledigHan traddodiadol" + - "HebreigHiraganaJapaneaiddCatacanaChmeraiddCanaraiddCoreaiddLaoaiddLl" + - "adinMalayalamaiddMongolaiddMyanmaraiddOgamOrïaiddSinhanaiddTamilaidd" + - "TeluguThaaThaiTibetaiddSymbolauAnysgrifenedigCyffredinSgript anhysby" + - "s", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x001b, 0x001b, 0x0023, 0x0023, 0x002a, - 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, - 0x002a, 0x002a, 0x0031, 0x0031, 0x003d, 0x003d, 0x003d, 0x003d, - 0x003d, 0x003d, 0x003d, 0x0045, 0x0045, 0x004e, 0x004e, 0x004e, - 0x004e, 0x0057, 0x0062, 0x0069, 0x006f, 0x0072, 0x0072, 0x007e, - 0x008e, 0x0095, 0x009d, 0x009d, 0x009d, 0x009d, 0x009d, 0x009d, - 0x009d, 0x009d, 0x00a7, 0x00a7, 0x00a7, 0x00af, 0x00af, 0x00b8, - // Entry 40 - 7F - 0x00b8, 0x00c1, 0x00c9, 0x00c9, 0x00c9, 0x00c9, 0x00d0, 0x00d0, - 0x00d0, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, - 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, - 0x00d6, 0x00e3, 0x00e3, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00f8, - 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00fc, 0x00fc, 0x00fc, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, - // Entry 80 - BF - 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, - 0x010e, 0x010e, 0x010e, 0x010e, 0x0117, 0x0117, 0x0117, 0x011d, - 0x011d, 0x011d, 0x011d, 0x0121, 0x0125, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x0136, 0x0144, 0x014d, 0x015c, - }, - }, - { // da - daScriptStr, - daScriptIdx, - }, - {}, // dav - { // de - deScriptStr, - deScriptIdx, - }, - {}, // de-CH - {}, // dje - { // dsb - "arabskiarmeÅ„skibengalskibopomofobraillowe pismokyriliskidevanagarietiopi" + - "skigeorgiskigrichiskigujaratigurmukhihangulhanzjadnorjone hantradici" + - "onalne hanhebrejskihiraganajapaÅ„skikatakanakhmerkannadakorejskilaosk" + - "iÅ‚atyÅ„skimalayalamskimongolskiburmaskioriyasinghaleskitamilskitelugu" + - "thaanathaiskitibetskisymbolebźez pismapowÅ¡yknenjeznate pismo", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0019, 0x0019, 0x0021, 0x0021, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0039, 0x0039, 0x0043, 0x0043, 0x0043, 0x0043, - 0x0043, 0x0043, 0x0043, 0x004c, 0x004c, 0x0055, 0x0055, 0x0055, - 0x0055, 0x005e, 0x0066, 0x006e, 0x0074, 0x0077, 0x0077, 0x0086, - 0x0097, 0x00a0, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00a8, - 0x00a8, 0x00a8, 0x00b1, 0x00b1, 0x00b1, 0x00b9, 0x00b9, 0x00be, - // Entry 40 - 7F - 0x00be, 0x00c5, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00d3, 0x00d3, - 0x00d3, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, - 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, - 0x00dd, 0x00e9, 0x00e9, 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00fa, - 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, - 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, - 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, - 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, - // Entry 80 - BF - 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, - 0x010a, 0x010a, 0x010a, 0x010a, 0x0112, 0x0112, 0x0112, 0x0118, - 0x0118, 0x0118, 0x0118, 0x011e, 0x0125, 0x012d, 0x012d, 0x012d, - 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, - 0x012d, 0x0134, 0x013f, 0x0148, 0x0156, - }, - }, - {}, // dua - {}, // dyo - { // dz - "ཨེ་ར་བིཀ་ཡིག་གུཨར་མི་ནི་ཡཱན་ཡིག་གུབངྒ་ལ་ཡིག་གུབོ་པོ་མོ་ཕཱོ་ཡིག་གུའབུར་ཡི" + - "གསིརིལ་ལིཀ་ཡིག་གུདེ་à½à¼‹à½“་ག་རི་ཡིག་གུཨི་à½à½²à¼‹à½¡à½¼à¼‹à½”ིཀ྄་ཡིག་གུཇཽ་ཇི་ཡཱན་ཡ" + - "ིག་གུགྲིཀ་ཡིག་གུགུ་ཇ་ར་à½à½²à¼‹à½¡à½²à½‚་གུགུ་རུ་མུ་à½à¼‹à½¡à½²à½‚་གུཧཱན་གུལ་ཡིག་གུརྒྱ" + - "་ནག་ཡིག་གུརྒྱ་ཡིག་ ལུགས་གསར་ལུགས་རྙིང་ རྒྱ་ཡིགཧེ་བྲུ་ཡིག་གུཇ་པཱན་ག" + - "ྱི་ཧི་ར་ག་ན་ཡིག་གུཇ་པཱན་ཡིག་གུཇ་པཱན་གྱི་ཀ་à½à¼‹à½€à¼‹à½“་ཡིག་གུà½à½ºà¼‹à½˜à½ºà½¢à¼‹à½¡à½²à½‚་ག" + - "ུཀ་ན་ཌ་ཡིག་གུཀོ་རི་ཡཱན་ཡིག་གུལའོ་ཡིག་གུལེ་ཊིན་ཡིག་གུམ་ལ་ཡ་ལམ་ཡིག་ག" + - "ུསོག་པོའི་ཡིག་གུབར་མིས་ཡིག་གུཨོ་རི་ཡ་ཡིག་གུསིན་ཧ་ལ་རིག་གུà½à¼‹à½˜à½²à½£à¼‹à½¡à½²à½‚" + - "་གུà½à½ºà¼‹à½£à½´à¼‹à½‚ུ་ཡིག་གུà½à½±à¼‹à½“་ཡིག་གུà½à½±à½ à½²à¼‹à½¡à½²à½‚་གུང་བཅས་ཀྱི་ཡིག་གུམཚན་རྟགསཡི" + - "ག་à½à½¼à½‚་མ་བཀོདཔསྤྱིཡིགངོ་མ་ཤེས་པའི་ཡི་གུ", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x002d, 0x002d, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x008a, 0x008a, 0x00c3, 0x00c3, 0x00db, - 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, - 0x00db, 0x00db, 0x010b, 0x010b, 0x0141, 0x0141, 0x0141, 0x0141, - 0x0141, 0x0141, 0x0141, 0x017d, 0x017d, 0x01ad, 0x01ad, 0x01ad, - 0x01ad, 0x01ce, 0x01fe, 0x0231, 0x025b, 0x0282, 0x0282, 0x02b6, - 0x02ea, 0x0311, 0x035c, 0x035c, 0x035c, 0x035c, 0x035c, 0x035c, - 0x035c, 0x035c, 0x0380, 0x0380, 0x0380, 0x03c8, 0x03c8, 0x03ef, - // Entry 40 - 7F - 0x03ef, 0x0413, 0x0443, 0x0443, 0x0443, 0x0443, 0x0461, 0x0461, - 0x0461, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, - 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, - 0x0488, 0x04b5, 0x04b5, 0x04e2, 0x04e2, 0x04e2, 0x04e2, 0x0509, - 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, - 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, - 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, - 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, - // Entry 80 - BF - 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, - 0x055d, 0x055d, 0x055d, 0x055d, 0x0581, 0x0581, 0x0581, 0x05ae, - 0x05ae, 0x05ae, 0x05ae, 0x05cf, 0x05f0, 0x0620, 0x0620, 0x0620, - 0x0620, 0x0620, 0x0620, 0x0620, 0x0620, 0x0620, 0x0620, 0x0620, - 0x0620, 0x0638, 0x0665, 0x067a, 0x06b0, - }, - }, - {}, // ebu - { // ee - "arabiagbeŋɔŋlÉ”armeniagbeŋɔŋlÉ”bengaligbeŋɔŋlÉ”bopomfogbeŋɔŋlÉ”braillegbeŋɔŋ" + - "lÉ”syrilliagbeŋɔŋlÉ”devanagarigbeŋɔŋlÉ”ethiopiagbeŋɔŋlÉ”gÉ”giagbeŋɔŋlÉ”gri" + - "sigbeŋɔŋlÉ”gudzaratigbeŋɔŋlÉ”gurmukhigbeŋɔŋlÉ”hangulgbeŋɔŋlÉ”hangbeŋɔŋlÉ”" + - "tsainagbeŋɔŋlÉ”blema tsainagbeŋɔŋlÉ”hebrigbeŋɔŋlÉ”hiraganagbeŋɔŋlÉ”dzapa" + - "ngbeŋɔŋlÉ”katakanagbeŋɔŋlÉ”khmergbeŋɔŋlÉ”kannadagbeŋɔŋlÉ”koreagbeŋɔŋlÉ”la" + - "ogbeŋɔŋlÉ”latingbeŋɔŋlÉ”malayagbeŋɔŋlÉ”mongoliagbeŋɔŋlÉ”myanmargbeŋɔŋlÉ”o" + - "riyagbeŋɔŋlÉ”sinhalagbeŋɔŋlÉ”tamilgbeŋɔŋlÉ”telegugbeŋɔŋlÉ”thaanagbeŋɔŋlÉ”" + - "taigbeŋɔŋlÉ”tibetgbeŋɔŋlɔŋɔŋlÉ”dzesiwogbemaÅ‹lÉ”gbeŋɔŋlÉ” bÉ”bÉ”gbeŋɔŋlÉ” ma" + - "nya", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0012, 0x0012, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0038, 0x0038, 0x004b, 0x004b, 0x005e, - 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, - 0x005e, 0x005e, 0x0072, 0x0072, 0x0088, 0x0088, 0x0088, 0x0088, - 0x0088, 0x0088, 0x0088, 0x009c, 0x009c, 0x00ae, 0x00ae, 0x00ae, - 0x00ae, 0x00bf, 0x00d4, 0x00e8, 0x00fa, 0x0109, 0x0109, 0x011b, - 0x0133, 0x0144, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, - 0x0158, 0x0158, 0x016a, 0x016a, 0x016a, 0x017e, 0x017e, 0x018f, - // Entry 40 - 7F - 0x018f, 0x01a2, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01c2, 0x01c2, - 0x01c2, 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, - 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, - 0x01d3, 0x01e5, 0x01e5, 0x01f9, 0x01f9, 0x01f9, 0x01f9, 0x020c, - 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, - 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, - 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, - 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, - // Entry 80 - BF - 0x0230, 0x0230, 0x0230, 0x0230, 0x0230, 0x0230, 0x0230, 0x0230, - 0x0230, 0x0230, 0x0230, 0x0230, 0x0241, 0x0241, 0x0241, 0x0253, - 0x0253, 0x0253, 0x0253, 0x0265, 0x0274, 0x0285, 0x0285, 0x0285, - 0x0285, 0x0285, 0x0285, 0x0285, 0x0285, 0x0285, 0x0285, 0x0285, - 0x0285, 0x0295, 0x029f, 0x02b2, 0x02c4, - }, - }, - { // el - elScriptStr, - elScriptIdx, - }, - { // en - enScriptStr, - enScriptIdx, - }, - {}, // en-AU - {}, // eo - { // es - esScriptStr, - esScriptIdx, - }, - {}, // es-CL - { // es-MX - "telugú", - []uint16{ // 144 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 80 - BF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, - }, - }, - { // et - etScriptStr, - etScriptIdx, - }, - { // eu - "arabiarraarmeniarrabengaliarrabopomofoabrailleazirilikoadevanagariaetiop" + - "iarrageorgiarragreziarragujarateragurmukhiahangulaidazkera txinatarr" + - "aidazkera txinatar sinplifikatuaidazkera txinatar tradizionalahebree" + - "rahiraganajaponiarrakatakanakhemerarrakanadarrakorearralaosarralatin" + - "amalayalameramongoliarrabirmaniarraoriyarrasinhalatamilarrateluguarr" + - "athaanathailandiarratibetarraikurrakidatzi gabeaohikoaidazkera ezeza" + - "guna", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0009, 0x0009, 0x0013, 0x0013, 0x0013, - 0x0013, 0x0013, 0x0013, 0x001e, 0x001e, 0x0027, 0x0027, 0x002f, - 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, - 0x002f, 0x002f, 0x0038, 0x0038, 0x0043, 0x0043, 0x0043, 0x0043, - 0x0043, 0x0043, 0x0043, 0x004d, 0x004d, 0x0057, 0x0057, 0x0057, - 0x0057, 0x0060, 0x006a, 0x0073, 0x007a, 0x008d, 0x008d, 0x00ac, - 0x00ca, 0x00d2, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, - 0x00da, 0x00da, 0x00e4, 0x00e4, 0x00e4, 0x00ec, 0x00ec, 0x00f6, - // Entry 40 - 7F - 0x00f6, 0x00ff, 0x0107, 0x0107, 0x0107, 0x0107, 0x010f, 0x010f, - 0x010f, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, - 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, - 0x0115, 0x0121, 0x0121, 0x012c, 0x012c, 0x012c, 0x012c, 0x0137, - 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, - 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, - 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, - 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, - // Entry 80 - BF - 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, - 0x0146, 0x0146, 0x0146, 0x0146, 0x014f, 0x014f, 0x014f, 0x0159, - 0x0159, 0x0159, 0x0159, 0x015f, 0x016c, 0x0175, 0x0175, 0x0175, - 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, - 0x0175, 0x017c, 0x0188, 0x018e, 0x01a0, - }, - }, - {}, // ewo - { // fa - faScriptStr, - faScriptIdx, - }, - { // fa-AF - "مغلی", - []uint16{ // 92 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0008, - }, - }, - {}, // ff - { // fi - fiScriptStr, - fiScriptIdx, - }, - { // fil - filScriptStr, - filScriptIdx, - }, - { // fo - "latinske", - []uint16{ // 74 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0008, - }, - }, - { // fr - frScriptStr, - frScriptIdx, - }, - { // fr-CA - frCAScriptStr, - frCAScriptIdx, - }, - { // fur - "araparmenbalinêsbengalêsBraillebuginêsSilabari unificât aborigjens canad" + - "êscoptcipriotciriliccirilic dal vieri slavonic de glesiedevanagarid" + - "emotic egjizianjeratic egjizianjeroglifics egjiziansetiopicgeorgjian" + - "glagoliticgoticgrêcgujaratihanHan semplificâtHan tradizionâlebreukat" + - "akana o hiraganavieri ongjarêsvieri italicgjavanêsgjaponêskhmerkanna" + - "dacoreanlaolatin Frakturlatin gaeliclatinlineâr Alineâr Bjeroglifics" + - " Mayamalayalammongulmyanmaroriyarunicsinhalasiriacsiriac Estrangelos" + - "iriac ocidentâlsiriac orientâltamiltelegutagalogthaanathaitibetanuga" + - "riticvieri persiancuneiform sumeric-acadiccodiç pes lenghis no scrit" + - "iscomuncodiç par scrituris no codificadis", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0004, 0x0004, 0x0009, 0x0009, 0x0011, - 0x0011, 0x0011, 0x0011, 0x001a, 0x001a, 0x001a, 0x001a, 0x0021, - 0x0029, 0x0029, 0x0029, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, - 0x0053, 0x005a, 0x0061, 0x0085, 0x008f, 0x008f, 0x008f, 0x009f, - 0x00af, 0x00c4, 0x00c4, 0x00cb, 0x00cb, 0x00d4, 0x00de, 0x00e3, - 0x00e3, 0x00e8, 0x00f0, 0x00f0, 0x00f0, 0x00f3, 0x00f3, 0x0103, - 0x0113, 0x0118, 0x0118, 0x0118, 0x0118, 0x012b, 0x013a, 0x013a, - 0x0146, 0x014f, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x015d, - // Entry 40 - 7F - 0x015d, 0x0164, 0x016a, 0x016a, 0x016a, 0x016a, 0x016d, 0x017a, - 0x0186, 0x018b, 0x018b, 0x018b, 0x0194, 0x019d, 0x019d, 0x019d, - 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x01ad, 0x01ad, 0x01ad, - 0x01ad, 0x01b6, 0x01b6, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01c3, - 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, - 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01c8, - 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01cd, 0x01cd, - 0x01cd, 0x01cd, 0x01cd, 0x01cd, 0x01cd, 0x01cd, 0x01cd, 0x01cd, - // Entry 80 - BF - 0x01d4, 0x01d4, 0x01d4, 0x01d4, 0x01da, 0x01eb, 0x01fc, 0x020c, - 0x020c, 0x020c, 0x020c, 0x020c, 0x0211, 0x0211, 0x0211, 0x0217, - 0x0217, 0x0217, 0x021e, 0x0224, 0x0228, 0x022f, 0x022f, 0x0237, - 0x0237, 0x0237, 0x0237, 0x0237, 0x0244, 0x025c, 0x025c, 0x025c, - 0x025c, 0x025c, 0x0279, 0x027e, 0x02a1, - }, - }, - { // fy - "DefakaArabyskKeizerlijk ArameesArmeensAvestaanskBalineeskBamounBassa Vah" + - "BatakBengaleesBlissymbolenBopomofoBrahmiBrailleBugineeskBuhidChakmaV" + - "erenigde Canadese Aboriginal-symbolenKaryskChamCherokeeCirthKoptyskS" + - "ypryskSyrillyskAldkerkslavysk SyrillyskDevanagariDeseretDuployan sne" + - "lschriftEgyptysk demotyskEgyptysk hiëratyskEgyptyske hiërogliefenEth" + - "iopyskGeorgysk KhutsuriGeorgyskGlagolityskGothyskGranthaGrieksGujara" + - "tiGurmukhiHangulHanHanunooFerienfâldigd SineeskTraditjoneel SineeskH" + - "ebreeuwskHiraganaAnatolyske hiërogliefenPahawh HmongKatakana of Hira" + - "ganaAldhongaarsIndusAld-italyskJavaanskJapansJurchenKayah LiKatakana" + - "KharoshthiKhmerKhojkiKannadaKoreaanskKpelleKaithiLannaLaoGotysk Laty" + - "nGaelysk LatynLatynLepchaLimbuLineair ALineair BFraserLomaLycyskLydy" + - "skMandaeansManicheaanskMayahiërogliefenMendeMeroitysk cursiefMeroïty" + - "skMalayalamMongoolsMoonMroMeiteiMyanmarAld Noard-ArabyskNabateaanskN" + - "axi GebaN’KoNüshuOghamOl ChikiOrkhonOdiaOsmanyaPalmyreensAldpermyskP" + - "hags-paInscriptioneel PahlaviPsalmen PahlaviBoek PahlaviFoenicyskPol" + - "lard-fonetyskInscriptioneel ParthyskRejangRongorongoRunicSamaritaans" + - "kSaratiAld Sûd-ArabyskSaurashtraSignWritingShavianSharadaSindhiSinha" + - "laSora SompengSoendaneeskSyloti NagriSyriacEstrangelo ArameeskWest-A" + - "rameeskEast-ArameeskTagbanwaTakriTai LeNij Tai LueTamilTangutTai Vie" + - "tTeluguTengwarTifinaghTagalogThaanaThaisTibetaanskTirhutaUgarityskVa" + - "iSichtbere spraakVarang KshitiWoleaiAldperzyskSumero-Akkadian Cuneif" + - "ormYiOergeërfdWiskundige notatieSymbolenOngeschrevenAlgemeenOnbekend" + - " schriftsysteem", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0006, 0x0006, 0x000d, 0x001f, 0x0026, 0x0030, 0x0039, - 0x003f, 0x0048, 0x004d, 0x0056, 0x0062, 0x006a, 0x0070, 0x0077, - 0x0080, 0x0085, 0x008b, 0x00b1, 0x00b7, 0x00bb, 0x00c3, 0x00c8, - 0x00cf, 0x00d6, 0x00df, 0x00f7, 0x0101, 0x0108, 0x011c, 0x012d, - 0x0140, 0x0157, 0x0157, 0x0160, 0x0171, 0x0179, 0x0184, 0x018b, - 0x0192, 0x0198, 0x01a0, 0x01a8, 0x01ae, 0x01b1, 0x01b8, 0x01ce, - 0x01e2, 0x01ec, 0x01f4, 0x020c, 0x0218, 0x022c, 0x0237, 0x023c, - 0x0247, 0x024f, 0x0255, 0x025c, 0x0264, 0x026c, 0x0276, 0x027b, - // Entry 40 - 7F - 0x0281, 0x0288, 0x0291, 0x0297, 0x029d, 0x02a2, 0x02a5, 0x02b1, - 0x02be, 0x02c3, 0x02c9, 0x02ce, 0x02d7, 0x02e0, 0x02e6, 0x02ea, - 0x02f0, 0x02f6, 0x02f6, 0x02ff, 0x030b, 0x031c, 0x0321, 0x0332, - 0x033c, 0x0345, 0x0345, 0x034d, 0x0351, 0x0354, 0x035a, 0x0361, - 0x0372, 0x037d, 0x0386, 0x038c, 0x0392, 0x0397, 0x039f, 0x03a5, - 0x03a9, 0x03b0, 0x03ba, 0x03ba, 0x03c4, 0x03cc, 0x03e2, 0x03f1, - 0x03fd, 0x0406, 0x0416, 0x042d, 0x0433, 0x043d, 0x0442, 0x044e, - 0x0454, 0x0464, 0x046e, 0x0479, 0x0480, 0x0487, 0x0487, 0x048d, - // Entry 80 - BF - 0x0494, 0x04a0, 0x04ab, 0x04b7, 0x04bd, 0x04d0, 0x04dd, 0x04ea, - 0x04f2, 0x04f7, 0x04fd, 0x0508, 0x050d, 0x0513, 0x051b, 0x0521, - 0x0528, 0x0530, 0x0537, 0x053d, 0x0542, 0x054c, 0x0553, 0x055c, - 0x055f, 0x056f, 0x057c, 0x0582, 0x058c, 0x05a5, 0x05a7, 0x05b1, - 0x05c3, 0x05cb, 0x05d7, 0x05df, 0x05f6, - }, - }, - { // ga - "ArabachAirméanachAivéisteachBailíochBatacachBeangálachBopomofoBrailleBui" + - "gineachButhaideachSeiricíochCoptachCipireachCoireallachDéiveanágrach" + - "Éigipteach coiteannÉigipteach cliarúilIairiglifí ÉigipteachaAetópac" + - "hSeoirseachGlagalachGotachGréagachGúisearátachGurmúcachHangalachHanH" + - "an SimplitheHan TraidisiúntaEabhrachHireagánachIairiglifí Anatólacha" + - "Siollabraí SeapánachaSean-UngárachSean-IodáilicIávachSeapánachCatacá" + - "nachCiméarachCannadachCóiréachLaosachCló GaelachLaidineachLiombúchLí" + - "neach ALíneach BFraserLiciachLidiachMahasánachMainicéasachIairiglifí" + - " MáigheachaMeindeachMailéalamachMongólachMaenmarachOghamOiríseachSea" + - "n-PheirmeachFéiníceachRúnachSamárachShawachSiolónachSiriceachTamalac" + - "hTeileagúchTifinaghTagálagachTánachTéalannachTibéadachSean-Pheirseac" + - "hDingchruthach Suiméar-AcádachNodaireacht MhatamaiticiúilSiombailíGa" + - "n ScríobhCoitiantaScript Anaithnid", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x0012, 0x001e, 0x0027, - 0x0027, 0x0027, 0x002f, 0x003a, 0x003a, 0x0042, 0x0042, 0x0049, - 0x0053, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x0069, 0x0069, - 0x0070, 0x0079, 0x0084, 0x0084, 0x0093, 0x0093, 0x0093, 0x00a7, - 0x00bc, 0x00d4, 0x00d4, 0x00dd, 0x00dd, 0x00e7, 0x00f0, 0x00f6, - 0x00f6, 0x00ff, 0x010d, 0x0117, 0x0120, 0x0123, 0x0123, 0x0130, - 0x0141, 0x0149, 0x0155, 0x016c, 0x016c, 0x0183, 0x0191, 0x0191, - 0x019f, 0x01a6, 0x01b0, 0x01b0, 0x01b0, 0x01bb, 0x01bb, 0x01c5, - // Entry 40 - 7F - 0x01c5, 0x01ce, 0x01d8, 0x01d8, 0x01d8, 0x01d8, 0x01df, 0x01df, - 0x01eb, 0x01f5, 0x01f5, 0x01fe, 0x0208, 0x0212, 0x0218, 0x0218, - 0x021f, 0x0226, 0x0231, 0x0231, 0x023e, 0x0255, 0x025e, 0x025e, - 0x025e, 0x026b, 0x026b, 0x0275, 0x0275, 0x0275, 0x0275, 0x027f, - 0x027f, 0x027f, 0x027f, 0x027f, 0x027f, 0x0284, 0x0284, 0x0284, - 0x028e, 0x028e, 0x028e, 0x028e, 0x029d, 0x029d, 0x029d, 0x029d, - 0x029d, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02b0, 0x02b9, - 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02c0, 0x02c0, 0x02c0, 0x02c0, - // Entry 80 - BF - 0x02ca, 0x02ca, 0x02ca, 0x02ca, 0x02d3, 0x02d3, 0x02d3, 0x02d3, - 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02db, 0x02db, 0x02db, 0x02e6, - 0x02e6, 0x02ee, 0x02f9, 0x0300, 0x030b, 0x0315, 0x0315, 0x0315, - 0x0315, 0x0315, 0x0315, 0x0315, 0x0324, 0x0343, 0x0343, 0x0343, - 0x035f, 0x0369, 0x0375, 0x037e, 0x038e, - }, - }, - { // gd - "Albàinis ChabhcasachArabaisAramais impireilAirmeinisAvestanaisBaliBeanga" + - "ilisBopomofoBrailleSgrìobhadh Lideach Aonaichte nan Tùsanach Canadac" + - "hCoptaisCìoprasaisCirilisCirilis Seann-Slàbhais na h-EaglaiseDevanag" + - "ariSealbh-sgrìobhadh ÈipheiteachGe’ezCairtbheilisGotaisGreugaisGujar" + - "atiGurmukhiHangulHanHan simplichteHan tradaiseantaEabhraHiraganaDeal" + - "bh-sgrìobhadh AnatolachKatakana no HiraganaSeann-UngaraisSeann-Eadai" + - "ltisDeàbhanaisSeapanaisKatakanaCmèarKannadaCoirèanaisLàthoLaideann f" + - "rakturLaideann GhàidhealachLaideannDealbh-sgrìobhadh MayachMalayalam" + - "MongolaisMiànmarSeann-Arabach ThuathachOgham-chraobhOriyaPartais sna" + - "idh-sgrìobhteRùn-sgrìobhadhSeann-Arabais DheasachSinealaisSuraidheac" + - "Suraidheac SiarachSuraidheac EarachTaimilTeluguTifinaghTagalogThaana" + - "TàidhTibeitisSeann-PheirsisGnìomhairean matamataigSamhlaidheanGun sg" + - "rìobhadhCoitcheannLitreadh neo-aithnichte", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0015, 0x001c, 0x002c, 0x0035, 0x003f, 0x0043, - 0x0043, 0x0043, 0x0043, 0x004d, 0x004d, 0x0055, 0x0055, 0x005c, - 0x005c, 0x005c, 0x005c, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, - 0x0097, 0x00a2, 0x00a9, 0x00ce, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00f7, 0x00f7, 0x00fe, 0x00fe, 0x010a, 0x010a, 0x0110, - 0x0110, 0x0118, 0x0120, 0x0128, 0x012e, 0x0131, 0x0131, 0x013f, - 0x014f, 0x0155, 0x015d, 0x0179, 0x0179, 0x018d, 0x019b, 0x019b, - 0x01aa, 0x01b5, 0x01be, 0x01be, 0x01be, 0x01c6, 0x01c6, 0x01cc, - // Entry 40 - 7F - 0x01cc, 0x01d3, 0x01de, 0x01de, 0x01de, 0x01de, 0x01e4, 0x01f4, - 0x020a, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, - 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x022b, 0x022b, 0x022b, - 0x022b, 0x0234, 0x0234, 0x023d, 0x023d, 0x023d, 0x023d, 0x0245, - 0x025c, 0x025c, 0x025c, 0x025c, 0x025c, 0x0269, 0x0269, 0x0269, - 0x026e, 0x026e, 0x026e, 0x026e, 0x026e, 0x026e, 0x026e, 0x026e, - 0x026e, 0x026e, 0x026e, 0x0287, 0x0287, 0x0287, 0x0297, 0x0297, - 0x0297, 0x02ad, 0x02ad, 0x02ad, 0x02ad, 0x02ad, 0x02ad, 0x02ad, - // Entry 80 - BF - 0x02b6, 0x02b6, 0x02b6, 0x02b6, 0x02c0, 0x02c0, 0x02d2, 0x02e3, - 0x02e3, 0x02e3, 0x02e3, 0x02e3, 0x02e9, 0x02e9, 0x02e9, 0x02ef, - 0x02ef, 0x02f7, 0x02fe, 0x0304, 0x030a, 0x0312, 0x0312, 0x0312, - 0x0312, 0x0312, 0x0312, 0x0312, 0x0320, 0x0320, 0x0320, 0x0320, - 0x0338, 0x0344, 0x0353, 0x035d, 0x0374, - }, - }, - { // gl - "ÃrabeArmenioBengalíBopomofoBrailleSilabario aborixe canadiano unificadoC" + - "irílicoDevanagariEtíopeXeorxianoGregoguxaratíGurmukhiHangulHanHan si" + - "mplificadoHan tradicionalHebreoHiraganaXaponésKatakanaCamboxanocanar" + - "ésCoreanoLaosianoLatinoMalabarMongolBirmaniaOriyaCingalésTámilTelug" + - "úThaanaTailandésTibetanoSímbolosNon escritaComúnEscritura descoñeci" + - "da", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x0015, 0x0015, 0x001d, 0x001d, 0x0024, - 0x0024, 0x0024, 0x0024, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, - 0x0049, 0x0049, 0x0052, 0x0052, 0x005c, 0x005c, 0x005c, 0x005c, - 0x005c, 0x005c, 0x005c, 0x0063, 0x0063, 0x006c, 0x006c, 0x006c, - 0x006c, 0x0071, 0x007a, 0x0082, 0x0088, 0x008b, 0x008b, 0x009b, - 0x00aa, 0x00b0, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, - 0x00b8, 0x00b8, 0x00c0, 0x00c0, 0x00c0, 0x00c8, 0x00c8, 0x00d1, - // Entry 40 - 7F - 0x00d1, 0x00d9, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e8, 0x00e8, - 0x00e8, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, - 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, - 0x00ee, 0x00f5, 0x00f5, 0x00fb, 0x00fb, 0x00fb, 0x00fb, 0x0103, - 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, - 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, - 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, - 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, - // Entry 80 - BF - 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, - 0x0111, 0x0111, 0x0111, 0x0111, 0x0117, 0x0117, 0x0117, 0x011e, - 0x011e, 0x011e, 0x011e, 0x0124, 0x012e, 0x0136, 0x0136, 0x0136, - 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, - 0x0136, 0x013f, 0x014a, 0x0150, 0x0166, - }, - }, - { // gsw - "ArabischArmiArmenischAveschtischBalinesischBattakischBengalischBliss-Sym" + - "boolBopomofoBrahmiBlindäschriftBuginesischBuhidUCASKarischChamCherok" + - "eeCirthKoptischZypriotischKyrillischAltchileslawischTövanagaariTeser" + - "etTemozisch-ÄgüptischHiraazisch-ÄgüptischÄgüptischi HiroglüüfeÄzioop" + - "ischGhutsuriGeorgischGlagolitischGotischGriechischGuscharatiGurmukhi" + - "HangulChineesischHanunooVeräifachti Chineesischi SchriftTradizionell" + - "i Chineesischi SchriftHebräischHiraganaPahawh HmongKatakana oder Hir" + - "aganaAltungarischIndus-SchriftAltitalischJavanesischJapanischKayah L" + - "iKatakanaKharoshthiKhmerKannadaKoreanischLannaLaotischLatiinisch - F" + - "raktur-VarianteLatiinisch - Gäälischi VarianteLatiinischLepchaLimbuL" + - "inear ALinear BLykischLydischMandäischManichäischMaya-HieroglyphäMer" + - "oitischMalaysischMongolischMoonMeitei MayekBurmesischN’KoOghamOl Chi" + - "kiOrchon-RunäOriyaOsmanischAltpermischPhags-paPahlaviPhönizischPolla" + - "rd PhonetischRejangRongorongoRunäschriftSamaritanischSaratiSaurashtr" + - "aGebäärdeschpraachShaw-AlphabetSinghalesischSundanesischSyloti Nagri" + - "SyrischSyrisch - Eschtrangelo-VarianteWeschtsyrischOschtsyrischTagba" + - "nwaTai LeTai LueTamilischTeluguTengwarTifinaghTagalogThaanaThaiTibee" + - "tischUgaritischVaiSichtbari SchpraachAltpersischSumerisch-akkadischi" + - " KeilschriftYiG’eerbtä SchriftwärtSchriftlosi SchpraachUnbeschtimmtU" + - "ncodiirti Schrift", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0008, 0x000c, 0x0015, 0x0020, 0x002b, - 0x002b, 0x002b, 0x0035, 0x003f, 0x004c, 0x0054, 0x005a, 0x0068, - 0x0073, 0x0078, 0x0078, 0x007c, 0x0083, 0x0087, 0x008f, 0x0094, - 0x009c, 0x00a7, 0x00b1, 0x00c1, 0x00cd, 0x00d4, 0x00d4, 0x00e9, - 0x00ff, 0x0118, 0x0118, 0x0123, 0x012b, 0x0134, 0x0140, 0x0147, - 0x0147, 0x0151, 0x015b, 0x0163, 0x0169, 0x0174, 0x017b, 0x019c, - 0x01be, 0x01c8, 0x01d0, 0x01d0, 0x01dc, 0x01f2, 0x01fe, 0x020b, - 0x0216, 0x0221, 0x022a, 0x022a, 0x0232, 0x023a, 0x0244, 0x0249, - // Entry 40 - 7F - 0x0249, 0x0250, 0x025a, 0x025a, 0x025a, 0x025f, 0x0267, 0x0284, - 0x02a5, 0x02af, 0x02b5, 0x02ba, 0x02c2, 0x02ca, 0x02ca, 0x02ca, - 0x02d1, 0x02d8, 0x02d8, 0x02e2, 0x02ee, 0x02ff, 0x02ff, 0x02ff, - 0x0309, 0x0313, 0x0313, 0x031d, 0x0321, 0x0321, 0x032d, 0x0337, - 0x0337, 0x0337, 0x0337, 0x033d, 0x033d, 0x0342, 0x034a, 0x0356, - 0x035b, 0x0364, 0x0364, 0x0364, 0x036f, 0x0377, 0x0377, 0x0377, - 0x037e, 0x0389, 0x039b, 0x039b, 0x03a1, 0x03ab, 0x03b7, 0x03c4, - 0x03ca, 0x03ca, 0x03d4, 0x03e7, 0x03f4, 0x03f4, 0x03f4, 0x03f4, - // Entry 80 - BF - 0x0401, 0x0401, 0x040d, 0x0419, 0x0420, 0x043f, 0x044c, 0x0458, - 0x0460, 0x0460, 0x0466, 0x046d, 0x0476, 0x0476, 0x0476, 0x047c, - 0x0483, 0x048b, 0x0492, 0x0498, 0x049c, 0x04a6, 0x04a6, 0x04b0, - 0x04b3, 0x04c6, 0x04c6, 0x04c6, 0x04d1, 0x04f1, 0x04f3, 0x050b, - 0x050b, 0x050b, 0x0520, 0x052c, 0x053e, - }, - }, - { // gu - guScriptStr, - guScriptIdx, - }, - {}, // guz - {}, // gv - {}, // ha - {}, // haw - { // he - heScriptStr, - heScriptIdx, - }, - { // hi - hiScriptStr, - hiScriptIdx, - }, - { // hr - hrScriptStr, - hrScriptIdx, - }, - { // hsb - "arabscearmenscebengalscebopomofoBraillowe pismokyriliscedevanagarietiopi" + - "scegeorgiscegrjekscegujaratigurmukhihangulchinscezjednorjene chinske" + - " pismotradicionalne chinske pismohebrejscehiraganajapanscekatakanakh" + - "merscekannadscekorejscelaosceÅ‚aćonscemalayalamscemongolsceburmasceor" + - "iyasinghalscetamilsceteluguthaanathailandscetibetscesymbolebjez pism" + - "apowÅ¡itkownenjeznate pismo", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x000f, 0x000f, 0x000f, - 0x000f, 0x000f, 0x000f, 0x0018, 0x0018, 0x0020, 0x0020, 0x002f, - 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, - 0x002f, 0x002f, 0x0038, 0x0038, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x004b, 0x004b, 0x0054, 0x0054, 0x0054, - 0x0054, 0x005c, 0x0064, 0x006c, 0x0072, 0x0079, 0x0079, 0x0092, - 0x00ad, 0x00b6, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, - 0x00be, 0x00be, 0x00c6, 0x00c6, 0x00c6, 0x00ce, 0x00ce, 0x00d6, - // Entry 40 - 7F - 0x00d6, 0x00df, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00ed, 0x00ed, - 0x00ed, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, - 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, - 0x00f7, 0x0103, 0x0103, 0x010c, 0x010c, 0x010c, 0x010c, 0x0114, - 0x0114, 0x0114, 0x0114, 0x0114, 0x0114, 0x0114, 0x0114, 0x0114, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, - // Entry 80 - BF - 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, - 0x0123, 0x0123, 0x0123, 0x0123, 0x012b, 0x012b, 0x012b, 0x0131, - 0x0131, 0x0131, 0x0131, 0x0137, 0x0142, 0x014a, 0x014a, 0x014a, - 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, - 0x014a, 0x0151, 0x015b, 0x0167, 0x0175, - }, - }, - { // hu - huScriptStr, - huScriptIdx, - }, - { // hy - hyScriptStr, - hyScriptIdx, - }, - { // id - idScriptStr, - idScriptIdx, - }, - {}, // ig - { // ii - "ꀊê‡ê€¨ê±ê‚·ê€Šê†¨êŒ¦ê‡êƒšê±ê‚·êˆê¯ê‰Œêˆ²ê±ê‚·ê€Žê‹ê‰Œêˆ²ê±ê‚·ê‡ê„€ê±ê‚·ê†ˆêŒ ê±ê‚·ê±ê€‹ê‰†êŒ ê…‰ê€‹êšêŒ ê±ê‚·", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, - 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, - 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, - 0x000f, 0x000f, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, - 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, - 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0036, - 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, - 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, - // Entry 40 - 7F - 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, - 0x0048, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - // Entry 80 - BF - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, - 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0060, 0x0060, - 0x0060, 0x0060, 0x006c, 0x006c, 0x007e, - }, - }, - { // is - isScriptStr, - isScriptIdx, - }, - { // it - itScriptStr, - itScriptIdx, - }, - { // ja - jaScriptStr, - jaScriptIdx, - }, - { // jgo - "mík -Å‹waꞌnÉ› yi É›Ì líŋɛÌnÉ› Latɛ̂ŋntúu yi pÉ›Ì ká Å‹waꞌnεntÉ›-Å‹waꞌnÉ› yí pÉ›Ì k" + - "á kÉ›Ì jí", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, - 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, - 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, - 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, - 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, - 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, - 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, - // Entry 80 - BF - 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, - 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, - 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, - 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, - 0x002f, 0x002f, 0x004c, 0x004c, 0x0073, - }, - }, - {}, // jmc - { // ka - kaScriptStr, - kaScriptIdx, - }, - {}, // kab - {}, // kam - {}, // kde - { // kea - "arabikuarmeniubengalibopomofobraillesirilikudevanagarietiopikujorjianugr" + - "egugujaratigurmukiangulhanhan simplifikaduhan tradisionalebraikuirag" + - "anajaponeskatakanakmerkanareskoreanulausianulatinumalaialammongolbir" + - "manesoriyasingalestamiltelugutaanatailandestibetanusimbulusnãu skrit" + - "ukomunskrita diskonxedu", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x0015, 0x0015, 0x001d, 0x001d, 0x0024, - 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, - 0x0024, 0x0024, 0x002c, 0x002c, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x003e, 0x003e, 0x0046, 0x0046, 0x0046, - 0x0046, 0x004b, 0x0053, 0x005a, 0x005f, 0x0062, 0x0062, 0x0072, - 0x0081, 0x0088, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x0096, 0x0096, 0x0096, 0x009e, 0x009e, 0x00a2, - // Entry 40 - 7F - 0x00a2, 0x00a9, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b8, 0x00b8, - 0x00b8, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, - 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, - 0x00be, 0x00c7, 0x00c7, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00d5, - 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, - 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, - 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, - 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, - // Entry 80 - BF - 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, - 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e7, 0x00e7, 0x00e7, 0x00ed, - 0x00ed, 0x00ed, 0x00ed, 0x00f2, 0x00fb, 0x0103, 0x0103, 0x0103, - 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, - 0x0103, 0x010b, 0x0116, 0x011b, 0x012c, - }, - }, - {}, // khq - {}, // ki - { // kk - kkScriptStr, - kkScriptIdx, - }, - {}, // kkj - {}, // kl - {}, // kln - { // km - kmScriptStr, - kmScriptIdx, - }, - { // kn - knScriptStr, - knScriptIdx, - }, - { // ko - koScriptStr, - koScriptIdx, - }, - {}, // kok - { // ks - "اَربیاَرمانیَناَویستَنبالَنیٖزباتَکبیٚنگٲلÛبÙÙ„Ùس سÙمبلزبوپوموÙوبرٛاÛمیبر" + - "یلبÙÚ¯ÙنیٖزبÙÛÙدیÙÙ†ÙÙایÙÚ‘ کنیڑÙیَن ایٚب آرجÙÙ†ÙŽÙ„ سÙلیبÙککاریَنچَمچیٚر" + - "وکیکÙرتھکاپٹÙÚ©Ú©ÙپرایÙٹسَیرÙÙ„Ùکپرون چٔرچسلیوونÙÚ© سَیرÙÙ„Ùکدیوناگریڈیٚ" + - "سٔریٚٹاÙجپشÙیَن ÚˆÙماٹÙکاÙجÙپشَن ÛَیریٹÙکاÙجÙپشَن ÛَیروگلÙپھساÙتھیوپ" + - "ÙکجارجÙیَن کھتسوریجارجÙیَنگلیگولÙÙ¹ÙکگوتھÙکگرَنتھاگریٖکگÙجرٲتÛÛانٛگÙ" + - "Ù„ÛانÛانÙنوٗسÙمپلÙÙایÙÚ‘ ÛانٹریڑÙØ´ÙŽÙ†ÙŽÙ„ÛÙبرÙÙˆÛیٖراگاناپَÛاو مانٛگکَٹاک" + - "انا یا ÛÙراگاناپرون ÛَنگیریَناÙنڈَساولڈ اÙٹیلÙکجاوَنیٖزجیٚپَنیٖزکای" + - "ا لیکَتاکاناخَروشتھیکھٕمیرکَنَڑاکوریَنلانالاوÙرٛکتÙر لیٹÙنگیلÙÚ© لیٹ" + - "َنلیٹÙنلیٚپکالÙمبوٗلیٖنیَر اےلیٖنیَر بیلیسÙیَنلیدÙیَنمَندییَنمانیشی" + - "یَنمایَن ÛیٖروگلÙÙ¾Ú¾Ù…ÙرایٹÙکمَلیالَممَنٛگولیَنموٗنمیتی مایَکمَیَنمار" + - "ایٚن کواوگÛاماول Ú†ÙکیاورکھوناورÙیااوسمانیااولڈ پٔرمÙکپھاگس پابوٗک Ù¾" + - "ÙŽÛَلویپھونÙØ´Ùیَنپولاڑ پھونÙÙ¹Ùکریجَنٛگرونٛگو رونٛگورَنÙکسَمارÙٹَنسَر" + - "اتیسوراشٹرااÙشارٲتی Ù„ÙکھٲےشاویَنسÙÙ†Ûالاسَنڈَنیٖزسیلوتی ناگریسیٖرÙیَ" + - "کایٚسٹرینجÙلو سیٖرÙیَکمغرÙبی سیٖریَکمشرَقی سیٖریَکتَگبَنواتَیلیےنوٚ" + - "Ùˆ تیلوتَمÙلتیلگوٗتیٚنگوارتÙÙÙناگتَگَلوگتھاناتھاےتÙبتیاÙگارÙÙ¹ÙکواےوÙ" + - "زÙبٕل سپیٖچپرون ÙارسیسÙمیرو اکادیَن کوٗنÙÙامیٖیلیٚکھنَےعاماَن Ø²Ù²Ù†Û " + - "یا نا Ù„ÙŽÚ¯ÛÙ• Ûار رَسمÙÙ„ خظ", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x001c, 0x002c, 0x003c, - 0x003c, 0x003c, 0x0046, 0x0056, 0x006d, 0x007d, 0x008b, 0x0093, - 0x00a3, 0x00ad, 0x00ad, 0x00f7, 0x0103, 0x0109, 0x0117, 0x0121, - 0x012d, 0x013d, 0x014d, 0x017f, 0x018f, 0x01a1, 0x01a1, 0x01c2, - 0x01e3, 0x020a, 0x020a, 0x021c, 0x023b, 0x024b, 0x025f, 0x026b, - 0x026b, 0x0279, 0x0283, 0x0291, 0x029f, 0x02a5, 0x02b3, 0x02d0, - 0x02e4, 0x02f0, 0x0302, 0x0302, 0x0317, 0x033d, 0x0358, 0x0364, - 0x037b, 0x038b, 0x039d, 0x039d, 0x03aa, 0x03ba, 0x03ca, 0x03d6, - // Entry 40 - 7F - 0x03d6, 0x03e2, 0x03ee, 0x03ee, 0x03ee, 0x03f6, 0x03fc, 0x0415, - 0x042a, 0x0434, 0x0440, 0x044c, 0x045f, 0x0472, 0x0472, 0x0472, - 0x0480, 0x048e, 0x048e, 0x049e, 0x04b0, 0x04cf, 0x04cf, 0x04cf, - 0x04df, 0x04ef, 0x04ef, 0x0503, 0x050b, 0x050b, 0x051e, 0x052e, - 0x052e, 0x052e, 0x052e, 0x053b, 0x053b, 0x0547, 0x0556, 0x0564, - 0x0570, 0x0580, 0x0580, 0x0580, 0x0595, 0x05a4, 0x05a4, 0x05a4, - 0x05bb, 0x05cf, 0x05ea, 0x05ea, 0x05f8, 0x0611, 0x061b, 0x062d, - 0x0639, 0x0639, 0x0649, 0x0666, 0x0672, 0x0672, 0x0672, 0x0672, - // Entry 80 - BF - 0x0680, 0x0680, 0x0692, 0x06a9, 0x06b9, 0x06e2, 0x06fd, 0x0718, - 0x0728, 0x0728, 0x0734, 0x0745, 0x074f, 0x074f, 0x074f, 0x075b, - 0x076b, 0x0779, 0x0787, 0x0791, 0x0799, 0x07a3, 0x07a3, 0x07b5, - 0x07bb, 0x07d4, 0x07d4, 0x07d4, 0x07e7, 0x0813, 0x0819, 0x0819, - 0x0819, 0x0819, 0x0829, 0x082f, 0x086c, - }, - }, - {}, // ksb - {}, // ksf - { // ksh - "arraabesche Schreffarmeenesche Schreffbängjaalesche Schreffschineeseche " + - "Ömschreff BopomofoBlindeschreffkürrellesche Schreffindesche Devanaj" + - "ari-Schreffätejoopesche Schreffje’orrjesche Schreffjriischesche Schr" + - "effjujaraatesche Schreffindesche Gurmukhi-Schreffkorrejaanesche Schr" + - "effen schineesesche Schreffeijfacher schineesesche Schrefftradizjonä" + - "ll schineesesche Schreffhebrääjesche Schreffjapaanesche Hiddajaana-S" + - "chreffen japaanesche Schreffjapaanesche Kattakaana-SchreffKhmer-Schr" + - "effindesche Kannada-Schreffkorrejaanesche Schreff udder en schineese" + - "sche Schrefflahootesche Schrefflateinesche Schreffindesche Malajalam" + - "-Schreffmongjoolesche Schreffbirmaanesche Schreffindesche Orija-Schr" + - "effsingjaleesesche Schrefftamiilesche Schreffindesche Telugu-Schreff" + - "malledivesche Taana-Schrefftailändesche Schrefftibeetesche Schreff-Z" + - "eiche ävver kein Schreff--jaa keij Schreff--öhnß en Schreff--onbikan" + - "nte Schreff-", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0013, 0x0013, 0x0026, 0x0026, 0x0026, - 0x0026, 0x0026, 0x0026, 0x003c, 0x003c, 0x005c, 0x005c, 0x0069, - 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, - 0x0069, 0x0069, 0x007e, 0x007e, 0x0099, 0x0099, 0x0099, 0x0099, - 0x0099, 0x0099, 0x0099, 0x00ae, 0x00ae, 0x00c4, 0x00c4, 0x00c4, - 0x00c4, 0x00d8, 0x00ed, 0x0106, 0x011c, 0x0134, 0x0134, 0x0153, - 0x0176, 0x018c, 0x01aa, 0x01aa, 0x01aa, 0x01aa, 0x01aa, 0x01aa, - 0x01aa, 0x01aa, 0x01c0, 0x01c0, 0x01c0, 0x01de, 0x01de, 0x01eb, - // Entry 40 - 7F - 0x01eb, 0x0203, 0x0238, 0x0238, 0x0238, 0x0238, 0x024b, 0x024b, - 0x024b, 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, - 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, - 0x025e, 0x0278, 0x0278, 0x028d, 0x028d, 0x028d, 0x028d, 0x02a1, - 0x02a1, 0x02a1, 0x02a1, 0x02a1, 0x02a1, 0x02a1, 0x02a1, 0x02a1, - 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, - 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, - 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, - // Entry 80 - BF - 0x02ce, 0x02ce, 0x02ce, 0x02ce, 0x02ce, 0x02ce, 0x02ce, 0x02ce, - 0x02ce, 0x02ce, 0x02ce, 0x02ce, 0x02e1, 0x02e1, 0x02e1, 0x02f8, - 0x02f8, 0x02f8, 0x02f8, 0x0313, 0x0328, 0x033b, 0x033b, 0x033b, - 0x033b, 0x033b, 0x033b, 0x033b, 0x033b, 0x033b, 0x033b, 0x033b, - 0x033b, 0x0357, 0x0369, 0x037c, 0x0390, - }, - }, - {}, // kw - { // ky - kyScriptStr, - kyScriptIdx, - }, - {}, // lag - { // lb - "ArabeschArmiArmeneschAvesteschBalineseschBattakeschBengaleschBliss-Symbo" + - "lerBopomofoBrahmiBlanneschrëftBugineseschBuhidUCASKareschChamCheroke" + - "eCirthKopteschZyprioteschKyrilleschAlkiercheslaweschDevanagariDesere" + - "tEgyptesch-DemoteschEgyptesch-HierateschEgyptesch HieroglyphenEthiop" + - "eschKhutsuriGeorgeschGlagoliteschGoteschGriicheschGujaratiGurmukhiHa" + - "ngulChineseschHanunooVereinfacht ChineseschTraditionellt ChineseschH" + - "ebräeschHiraganaPahawh HmongKatakana oder HiraganaAlungareschIndus-S" + - "chrëftAlitaleschJavaneseschJapaneschKayah LiKatakanaKharoshthiKhmerK" + - "annadaKoreaneschLannaLaoteschLaténgesch-Fraktur-VariantLaténgesch-Gä" + - "llesch VariantLaténgeschLepchaLimbuLinear ALinear BLykeschLydeschMan" + - "däeschManichäeschMaya-HieroglyphenMeroiteschMalayseschMongoleschMoon" + - "Meitei MayekBirmaneschN’KoOghamOl ChikiOrchon-RunenOriyaOsmaneschAlp" + - "ermeschPhags-paPahlaviPhönizeschPollard PhoneteschRejangRongorongoRu" + - "neschrëftSamaritaneschSaratiSaurashtraZeechesproochShaw-AlphabetSing" + - "haleseschSundaneseschSyloti NagriSyreschSyresch-Estrangelo-VariantWe" + - "stsyreschOstsyreschTai LeTai LueTamileschTeluguTengwarTifinaghDagalo" + - "gThaanaThaiTibeteschUgariteschVaiSiichtbar SproochAlperseschSumeresc" + - "h-akkadesch KeilschrëftYiGeierfte SchrëftwäertSymbolerOuni SchrëftOn" + - "bestëmmtOncodéiert Schrëft", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0008, 0x000c, 0x0015, 0x001e, 0x0029, - 0x0029, 0x0029, 0x0033, 0x003d, 0x004b, 0x0053, 0x0059, 0x0067, - 0x0072, 0x0077, 0x0077, 0x007b, 0x0082, 0x0086, 0x008e, 0x0093, - 0x009b, 0x00a6, 0x00b0, 0x00c1, 0x00cb, 0x00d2, 0x00d2, 0x00e5, - 0x00f9, 0x010f, 0x010f, 0x0119, 0x0121, 0x012a, 0x0136, 0x013d, - 0x013d, 0x0147, 0x014f, 0x0157, 0x015d, 0x0167, 0x016e, 0x0184, - 0x019c, 0x01a6, 0x01ae, 0x01ae, 0x01ba, 0x01d0, 0x01db, 0x01e9, - 0x01f3, 0x01fe, 0x0207, 0x0207, 0x020f, 0x0217, 0x0221, 0x0226, - // Entry 40 - 7F - 0x0226, 0x022d, 0x0237, 0x0237, 0x0237, 0x023c, 0x0244, 0x025f, - 0x027c, 0x0287, 0x028d, 0x0292, 0x029a, 0x02a2, 0x02a2, 0x02a2, - 0x02a9, 0x02b0, 0x02b0, 0x02ba, 0x02c6, 0x02d7, 0x02d7, 0x02d7, - 0x02e1, 0x02eb, 0x02eb, 0x02f5, 0x02f9, 0x02f9, 0x0305, 0x030f, - 0x030f, 0x030f, 0x030f, 0x0315, 0x0315, 0x031a, 0x0322, 0x032e, - 0x0333, 0x033c, 0x033c, 0x033c, 0x0346, 0x034e, 0x034e, 0x034e, - 0x0355, 0x0360, 0x0372, 0x0372, 0x0378, 0x0382, 0x038e, 0x039b, - 0x03a1, 0x03a1, 0x03ab, 0x03b8, 0x03c5, 0x03c5, 0x03c5, 0x03c5, - // Entry 80 - BF - 0x03d2, 0x03d2, 0x03de, 0x03ea, 0x03f1, 0x040b, 0x0416, 0x0420, - 0x0420, 0x0420, 0x0426, 0x042d, 0x0436, 0x0436, 0x0436, 0x043c, - 0x0443, 0x044b, 0x0452, 0x0458, 0x045c, 0x0465, 0x0465, 0x046f, - 0x0472, 0x0483, 0x0483, 0x0483, 0x048d, 0x04ad, 0x04af, 0x04c6, - 0x04c6, 0x04ce, 0x04db, 0x04e6, 0x04fa, - }, - }, - {}, // lg - {}, // lkt - {}, // ln - { // lo - loScriptStr, - loScriptIdx, - }, - { // lt - ltScriptStr, - ltScriptIdx, - }, - {}, // lu - {}, // luo - {}, // luy - { // lv - lvScriptStr, - lvScriptIdx, - }, - {}, // mas - {}, // mer - {}, // mfe - {}, // mg - {}, // mgh - { // mgo - "ngam Å‹waʼringam choʼabo Å‹waʼri tisɔʼ", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - // Entry 80 - BF - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, - 0x000d, 0x000d, 0x0017, 0x0017, 0x002b, - }, - }, - { // mk - mkScriptStr, - mkScriptIdx, - }, - { // ml - mlScriptStr, - mlScriptIdx, - }, - { // mn - mnScriptStr, - mnScriptIdx, - }, - { // mr - mrScriptStr, - mrScriptIdx, - }, - { // ms - msScriptStr, - msScriptIdx, - }, - { // mt - "GħarbiÄŠirillikuGriegHan SimplifikatHan TradizzjonaliLatinPersjan AntikMh" + - "ux MiktubKomuniKitba Mhux Magħrufa", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0025, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - // Entry 40 - 7F - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, - 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, - 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, - 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, - 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, - 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, - 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, - // Entry 80 - BF - 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, - 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, - 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, - 0x003b, 0x003b, 0x003b, 0x003b, 0x0048, 0x0048, 0x0048, 0x0048, - 0x0048, 0x0048, 0x0053, 0x0059, 0x006d, - }, - }, - {}, // mua - { // my - myScriptStr, - myScriptIdx, - }, - {}, // naq - {}, // nd - { // ne - neScriptStr, - neScriptIdx, - }, - { // nl - nlScriptStr, - nlScriptIdx, - }, - {}, // nmg - { // nn - "arabiskarmiskarmenskavestiskbalinesiskbatakbengaliblissymbolbopomofobrah" + - "mibraillebuginesiskbuhidchakmafelles kanadiske ursprÃ¥ksstavingarkari" + - "skchamcherokeecirthkoptiskkypriotiskkyrilliskkyrillisk (kyrkjeslavis" + - "k variant)devanagarideseretegyptisk demotiskegyptisk hieratiskegypti" + - "ske hieroglyfaretiopiskkhutsuri (asomtavruli og nuskhuri)georgiskgla" + - "golittiskgotiskgreskgujaratigurmukhihangulhanhanunooforenkla kinesis" + - "ktradisjonell kinesiskhebraiskhiraganapahawk hmongkatakana eller hir" + - "aganagammalungarskindusgammalitaliskjavanesiskjapanskkayah likatakan" + - "akharoshthikhmerkannadakoreanskkaithisklannalaotisklatinsk (frakturv" + - "ariant)latinsk (gælisk variant)latinsklepchalumbulineær Alineær Blyk" + - "isklydiskmandaiskmanikeiskmaya-hieroglyfarmeroitiskmalayalammongolsk" + - "moonmeitei-mayekmyanmarn’kooghamol-chikiorkhonoriyaosmanyagammalperm" + - "iskphags-painskripsjonspahlavisalmepahlavipahlavifønikiskpollard-fon" + - "etiskinskripsjonsparthiskrejangrongorongorunersamaritansksaratisaura" + - "shtrateiknskriftshavisksinhalasundanesisksyloti nagrisyriakisksyriak" + - "isk (estrangelo-variant)syriakisk (vestleg variant)syriakisk (austle" + - "g variant)tagbanwatai leny tai luetamilsktai viettelugutengwartifina" + - "ghtagalogthaanathaitibetanskugaritiskvaisynleg talegammalpersisksume" + - "ro-akkadisk kileskriftyinedarvamatematisk notasjonsymbolkode for spr" + - "Ã¥k utan skriftfellesukjend skrift", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0007, 0x000d, 0x0014, 0x001c, 0x0026, - 0x0026, 0x0026, 0x002b, 0x0032, 0x003c, 0x0044, 0x004a, 0x0051, - 0x005b, 0x0060, 0x0066, 0x0089, 0x008f, 0x0093, 0x009b, 0x00a0, - 0x00a7, 0x00b1, 0x00ba, 0x00db, 0x00e5, 0x00ec, 0x00ec, 0x00fd, - 0x010f, 0x0124, 0x0124, 0x012c, 0x014e, 0x0156, 0x0162, 0x0168, - 0x0168, 0x016d, 0x0175, 0x017d, 0x0183, 0x0186, 0x018d, 0x019e, - 0x01b3, 0x01bb, 0x01c3, 0x01c3, 0x01cf, 0x01e6, 0x01f3, 0x01f8, - 0x0205, 0x020f, 0x0216, 0x0216, 0x021e, 0x0226, 0x0230, 0x0235, - // Entry 40 - 7F - 0x0235, 0x023c, 0x0244, 0x0244, 0x024c, 0x0251, 0x0258, 0x0270, - 0x0289, 0x0290, 0x0296, 0x029b, 0x02a4, 0x02ad, 0x02ad, 0x02ad, - 0x02b3, 0x02b9, 0x02b9, 0x02c1, 0x02ca, 0x02da, 0x02da, 0x02da, - 0x02e3, 0x02ec, 0x02ec, 0x02f4, 0x02f8, 0x02f8, 0x0304, 0x030b, - 0x030b, 0x030b, 0x030b, 0x0311, 0x0311, 0x0316, 0x031e, 0x0324, - 0x0329, 0x0330, 0x0330, 0x0330, 0x033d, 0x0345, 0x0358, 0x0364, - 0x036b, 0x0374, 0x0384, 0x0398, 0x039e, 0x03a8, 0x03ad, 0x03b8, - 0x03be, 0x03be, 0x03c8, 0x03d3, 0x03da, 0x03da, 0x03da, 0x03da, - // Entry 80 - BF - 0x03e1, 0x03e1, 0x03ec, 0x03f8, 0x0401, 0x041f, 0x043a, 0x0455, - 0x045d, 0x045d, 0x0463, 0x046d, 0x0474, 0x0474, 0x047c, 0x0482, - 0x0489, 0x0491, 0x0498, 0x049e, 0x04a2, 0x04ab, 0x04ab, 0x04b4, - 0x04b7, 0x04c2, 0x04c2, 0x04c2, 0x04cf, 0x04e9, 0x04eb, 0x04f2, - 0x0505, 0x050b, 0x0526, 0x052c, 0x0539, - }, - }, - {}, // nnh - { // no - noScriptStr, - noScriptIdx, - }, - {}, // nus - {}, // nyn - { // om - "Latin", - []uint16{ // 74 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0005, - }, - }, - { // or - "ଆରବିକà­à¬‡à¬®à­à¬ªà­‡à¬°à¬¿à¬†à¬²à­ ଆରମିକà­à¬†à¬°à­à¬®à­‡à¬¨à¬¿à¬†à¬¨à­à¬†à¬¬à­‡à¬¸à­à¬¥à¬¾à¬¨à­à¬¬à¬¾à¬²à¬¿à¬¨à­€à¬œà­à¬¬à¬¾à¬Ÿà¬¾à¬•à­à¬¬à¬™à­à¬—ାଳୀବà­à¬²à¬¿à¬¸à¬¿à¬®à­à¬¬" + - "ଲସà­à¬¬à­‹à¬ªà­‹à¬®à­‹à¬«à­‹à¬¬à­à¬°à¬¾à¬¹à­à¬®à­€à¬¬à­à¬°à¬¿à¬²à­à¬¬à­à¬—ାନୀଜà­à¬¬à­à¬¹à¬¿à¬¦à­à¬šà¬•à¬®à¬¾à­Ÿà­à¬¨à¬¿à¬«à¬¾à¬à¬¡à­ କାନାଡିଆନୠଆବà­" + - "ରୋଜିନାଲୠସିଲାବିକସà­à¬•à­ˆà¬°à¬¨à­à¬›à¬®à­à¬šà¬¿à¬°à­à¬•à­€à¬¸à¬¿à¬°à­à¬¥à¬•à¬ªà¬Ÿà¬¿à¬•à­à¬¸à¬¿à¬ªà­à¬°à¬…ଟà­à¬¸à¬¿à¬°à¬¿à¬²à¬¿à¬•à­à¬“ଲà­à¬¡ ଚର" + - "à­à¬šà­à¬š ସାଲଭୋନିକୠସିରିଲିକà­à¬¦à­‡à¬¬à¬¾à¬¨à¬—ିରିଡେସରà­à¬Ÿà¬‡à¬œà¬¿à¬ªà­à¬Ÿà¬¿à¬†à¬¨à­ ଡେମୋଟିକà­à¬‡à¬œà¬¿à¬ªà­à¬Ÿà¬¿à¬†à¬¨" + - "ୠହାଇଅରଟିକà­à¬‡à¬œà¬¿à¬ªà­à¬Ÿà¬¿à¬†à¬¨à­ ହାଅରଗà­à¬²à¬¿à¬ªà¬¸à­à¬‡à¬¥à­‹à¬ªà¬¿à¬•à­à¬œà¬°à­à¬œà¬¿à¬†à¬¨à­ ଖà­à¬Ÿà¬¸à­à¬°à­€à¬œà¬°à­à¬œà¬¿à¬†à¬¨à­à¬—à­" + - "ଲାଗà­à¬²à­‹à¬Ÿà¬¿à¬•à­à¬—ୋଥିକà­à¬—à­à¬°à­€à¬•à­à¬—à­à¬œà­à¬°à¬¾à¬Ÿà­€à¬—à­à¬°à­à¬®à­à¬–ୀହାଙà­à¬—à­à¬²à­à¬¹à¬¾à¬¨à­à¬¹à¬¾à¬¨à­à¬¨à­à¬¸à¬°à¬³à­€à¬•à­ƒà¬¤ ହା" + - "ନà­à¬ªà¬¾à¬°à¬®à­à¬ªà¬°à¬¿à¬•à­ ହାନà­à¬¹à­‡à¬¬à­à¬°à­à­Ÿà­à¬¹à¬¿à¬°à¬¾à¬—ାନାପାହୋ ହୋଙà­à¬—କାଟାକାନୠକିମà­à¬¬à¬¾ ହିରାଗାନ" + - "à­à¬ªà­à¬°à­à¬£à¬¾ ହଙà­à¬—େରିଆନà­à¬¸à¬¿à¬¨à­à¬§à­à¬ªà­à¬°à­à¬£à¬¾ ଇଟାଲୀଜାଭାନୀଜà­à¬œà¬¾à¬ªà¬¾à¬¨à­€à¬œà­à¬•à¬¾à­Ÿà¬¾à¬¹à¬¾ ଲୀକାଟକା" + - "ନà­à¬–ାରୋସà­à¬¥à¬¿à¬–à­à¬®à­‡à¬°à­à¬•à¬¨à­à¬¨à¬¡à¬•à­‹à¬°à¬¿à¬†à¬¨à­à¬•à­ˆà¬¥à¬¿à¬²à¬¾à¬¨à¬¾à¬²à¬¾à¬“ଫà­à¬°à¬¾à¬•à¬¥à­à¬°à­ ଲାଟିନà­à¬—ାà¬à¬²à¬¿à¬•à­ ଲାଟ" + - "ିନà­à¬²à¬¾à¬Ÿà¬¿à¬¨à­à¬²à­‡à¬ªà¬šà¬¾à¬²à¬¿à¬®à­à¬¬à­à¬²à¬¿à¬¨à¬¿à­Ÿà¬°à­à¬²à¬¿à¬¨à¬¿à­Ÿà¬°à­ ବିଲିଶିୟନà­à¬²à¬¿à¬¡à¬¿à­Ÿà¬¨à­à¬®à¬¾à¬¨à¬¡à­‡à¬¨à­à¬®à¬¨à¬¶à­€à¬¨à­à¬®à­Ÿ" + - "ାନୠହାୟରଲଜିକସà­à¬®à­‡à¬°à­‹à¬‡à¬Ÿà¬¿à¬•à­à¬®à¬¾à¬²à­Ÿà¬²à¬®à­à¬®à¬™à­à¬—ୋଲିଆନà­à¬šà¬¨à­à¬¦à­à¬°à¬®à¬¾à¬à¬¤à¬¿ ମାୟେକà­à¬®à¬¿à¬†à¬®à¬¾à¬°à­à¬" + - "ନୠକୋଓଘାମାଓଲୠଚିକିଓରୋଖନà­à¬“ଡିଆଓସୋମାନିୟାଓଲà­à¬¡ ପରମିକà­à¬«à¬¾à¬—ସà­-ପାଇନସà­à¬•à­à¬°à­€à¬ªà¬¸" + - "ାନଲୠପାହାଲାୱୀସà­à¬²à¬¾à¬Ÿà¬°à­ ପାହାଲାୱୀବà­à¬•à­ ପାହାଲାୱୀଫେନୋସିଆନà­à¬ªà­‹à¬²à¬¾à¬°à­à¬¡ ଫୋନେଟିକ" + - "à­à¬‡à¬¨à¬¸à­à¬•à­à¬°à­€à¬ªà¬¸à¬¾à¬¨à¬²à­ ପାରà­à¬¥à¬¿à¬†à¬¨à­à¬°à­‡à¬œà¬¾à¬™à­à¬—ରୋଙà­à¬—ୋରୋଙà­à¬—ୋରନିକà­à¬¸à¬®à­Œà¬°à¬¿à¬Ÿà¬¨à­à¬¸à¬¾à¬°à¬¾à¬¤à¬¿à¬¸à­Œà¬°" + - "ାଷà­à¬Ÿà­à¬°à¬¸à¬¾à¬™à­à¬•à­‡à¬¤à¬¿à¬• ଲିଖସାବିୟାନà­à¬¸à¬¿à¬‚ହଳସà­à¬¦à¬¾à¬¨à­€à¬œà­à¬¸à­€à¬²à¬¿à¬¤à­‹ ନଗରୀସିରିୟାକà­à¬à¬·à­à¬Ÿà­à¬°à¬¾" + - "ଙà­à¬—େଲୋ ସିରିକà­à­±à­‡à¬·à­à¬Ÿà¬°à­à¬¨ ସିରିକà­à¬‡à¬·à­à¬Ÿà¬°à­à¬¨ ସିରିକà­à¬¤à¬—ବାନà­à­±à¬¾à¬¤à¬¾à¬‡ ଲେନୂତନ ତାଇ ଲ" + - "à­à¬à¬¤à¬¾à¬®à¬¿à¬²à­à¬¤à¬¾à¬‡ ଭିà¬à¬¤à­à¬¤à­‡à¬²à­à¬—à­à¬¤à­‡à¬™à­à¬—ୱାରà­à¬¤à¬¿à¬«à¬¿à¬™à­à¬˜à¬¾à¬Ÿà¬¾à¬—ାଲୋଗà­à¬¥à¬¾à¬¨à¬¾à¬¥à¬¾à¬‡à¬¤à¬¿à¬¬à­‡à¬¤à¬¾à¬¨à­à­Ÿà­à¬—" + - "ାରିଟିକà­à­±à¬¾à¬‡à¬­à¬¿à¬œà¬¿à¬¬à¬²à­ ସà­à¬ªà¬¿à¬šà­à¬ªà­à¬°à­à¬£à¬¾ ଫରାସୀସà­à¬®à­‡à¬°à­‹-ଆକà­à¬•à¬¾à¬¡à¬¿à¬†à¬¨à­ ସà­à¬¨à¬¿à¬«à¬°à­à¬®à­Ÿà­€à¬¬à¬‚" + - "ଶଗତଗାଣିତିକ ନୋଟେସନà­à¬¸à¬¿à¬®à­à¬¬à¬²à­à¬…ଲିଖିତସାଧାରଣଅଞà­à¬œà¬¾à¬¤ କିମà­à¬¬à¬¾ ଅବୈଧ ସà­à¬•à­à¬°à­€à¬ªà­à¬Ÿ", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0012, 0x0043, 0x0061, 0x007c, 0x0094, - 0x0094, 0x0094, 0x00a6, 0x00bb, 0x00df, 0x00f7, 0x010f, 0x0121, - 0x0139, 0x014b, 0x0157, 0x01cc, 0x01db, 0x01e4, 0x01f6, 0x0205, - 0x0217, 0x022f, 0x0247, 0x029b, 0x02b6, 0x02c8, 0x02c8, 0x02ff, - 0x0339, 0x0379, 0x0379, 0x038e, 0x03bc, 0x03d4, 0x03f8, 0x040a, - 0x040a, 0x041c, 0x0434, 0x044c, 0x0464, 0x0470, 0x0482, 0x04a4, - 0x04cf, 0x04e7, 0x04ff, 0x04ff, 0x051b, 0x055f, 0x0590, 0x05a2, - 0x05c4, 0x05dc, 0x05f4, 0x05f4, 0x060d, 0x0622, 0x063a, 0x064c, - // Entry 40 - 7F - 0x064c, 0x065b, 0x0670, 0x0670, 0x067c, 0x0688, 0x0691, 0x06bf, - 0x06e7, 0x06f9, 0x0708, 0x071a, 0x072f, 0x074b, 0x074b, 0x074b, - 0x0760, 0x0775, 0x0775, 0x078a, 0x079c, 0x07ca, 0x07ca, 0x07ca, - 0x07e5, 0x07fa, 0x07fa, 0x0818, 0x082a, 0x082a, 0x084c, 0x0861, - 0x0861, 0x0861, 0x0861, 0x0871, 0x0871, 0x0880, 0x0896, 0x08a8, - 0x08b4, 0x08cf, 0x08cf, 0x08cf, 0x08ee, 0x0904, 0x0947, 0x0975, - 0x099a, 0x09b5, 0x09e3, 0x0a29, 0x0a3e, 0x0a62, 0x0a71, 0x0a89, - 0x0a9b, 0x0a9b, 0x0ab6, 0x0adb, 0x0af3, 0x0af3, 0x0af3, 0x0af3, - // Entry 80 - BF - 0x0b02, 0x0b02, 0x0b1a, 0x0b39, 0x0b51, 0x0b8b, 0x0bb6, 0x0bde, - 0x0bf6, 0x0bf6, 0x0c06, 0x0c26, 0x0c38, 0x0c38, 0x0c51, 0x0c63, - 0x0c7e, 0x0c96, 0x0cae, 0x0cba, 0x0cc3, 0x0cdb, 0x0cdb, 0x0cf9, - 0x0d02, 0x0d2a, 0x0d2a, 0x0d2a, 0x0d4c, 0x0d96, 0x0d9c, 0x0dab, - 0x0dd6, 0x0deb, 0x0dfd, 0x0e0f, 0x0e5d, - }, - }, - { // os - "ÐраббагКиррилицӕӔнцонгонд китайагТрадицион китайагЛатинагÐÓ•Ñ„Ñ‹ÑгӕÐӕзонгӕ " + - "Ñкрипт", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0041, - 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, - 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, - // Entry 40 - 7F - 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, - 0x0062, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, - 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, - 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, - 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, - 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, - 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, - 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, - // Entry 80 - BF - 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, - 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, - 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, - 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, - 0x0070, 0x0070, 0x007e, 0x007e, 0x0099, - }, - }, - { // pa - paScriptStr, - paScriptIdx, - }, - { // pa-Arab - "عربیگÙرمÙÚ©Ú¾ÛŒ", - []uint16{ // 44 elements - 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0018, - }, - }, - { // pl - plScriptStr, - plScriptIdx, - }, - { // ps - "عربي", - []uint16{ // 4 elements - 0x0000, 0x0000, 0x0000, 0x0008, - }, - }, - { // pt - ptScriptStr, - ptScriptIdx, - }, - { // pt-PT - ptPTScriptStr, - ptPTScriptIdx, - }, - {}, // qu - { // rm - "arabarameic imperialarmenavesticbalinaisbatakbengalsimbols da Blissbopom" + - "ofobrahmiscrittira da Braillebuginaisbuhidchakmasimbols autoctons ca" + - "nadais unifitgadscarianchamcherokeecirthcopticcipriotcirillicslav da" + - " baselgia vegldevanagarideseretegipzian demoticegipzian ieraticierog" + - "lifas egipzianasetiopickutsurigeorgianglagoliticgoticgrecgujaratigur" + - "mukhihangulhanhanunooscrittira chinaisa simplifitgadascrittira china" + - "isa tradiziunalaebraichiraganapahawn hmongkatanaka u hiraganaungarai" + - "s veglindusitalic vegljavanaisgiapunaiskayah likatakanakharoshthikhm" + - "er/cambodschankannadacoreankaithilannalaotlatin (scrittira gotica)la" + - "tin (scrittira gaelica)latinlepchalimbulinear Alinear Blichiclidicma" + - "ndaicmanicheicieroglifas mayameroiticmalaisianmongolicmoonmeetei may" + - "ekburmaisn’kooghamol chikiorkhonoriyaosmanpermic veglphags-papahlavi" + - " dad inscripziunspahlavi da psalmspahlavi da cudeschsfenizianfonetic" + - "a da Pollardpartic dad inscripziunsrejangrongorongorunicsamaritansar" + - "atisaurashtralingua da segnsshaviansingalaissundanaissyloti nagrisir" + - "icsiric estrangelosiric dal vestsiric da l’osttagbanwatai letai luet" + - "amiltai viettelugutengwartifinaghtagalogthaanatailandaistibetanugari" + - "ticvaiialfabet visibelpersian veglscrittira a cugn sumeric-accadicay" + - "iertànotaziun matematicasimbolslinguas na scrittasbetg determinàscri" + - "ttira nunenconuschenta u nunvalaivla", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0004, 0x0014, 0x0019, 0x0020, 0x0028, - 0x0028, 0x0028, 0x002d, 0x0033, 0x0043, 0x004b, 0x0051, 0x0065, - 0x006d, 0x0072, 0x0078, 0x009d, 0x00a3, 0x00a7, 0x00af, 0x00b4, - 0x00ba, 0x00c1, 0x00c9, 0x00de, 0x00e8, 0x00ef, 0x00ef, 0x00ff, - 0x010f, 0x0124, 0x0124, 0x012b, 0x0132, 0x013a, 0x0144, 0x0149, - 0x0149, 0x014d, 0x0155, 0x015d, 0x0163, 0x0166, 0x016d, 0x018d, - 0x01ac, 0x01b2, 0x01ba, 0x01ba, 0x01c6, 0x01d9, 0x01e6, 0x01eb, - 0x01f6, 0x01fe, 0x0207, 0x0207, 0x020f, 0x0217, 0x0221, 0x0232, - // Entry 40 - 7F - 0x0232, 0x0239, 0x023f, 0x023f, 0x0245, 0x024a, 0x024e, 0x0266, - 0x027f, 0x0284, 0x028a, 0x028f, 0x0297, 0x029f, 0x029f, 0x029f, - 0x02a5, 0x02aa, 0x02aa, 0x02b1, 0x02ba, 0x02c9, 0x02c9, 0x02c9, - 0x02d1, 0x02da, 0x02da, 0x02e2, 0x02e6, 0x02e6, 0x02f2, 0x02f9, - 0x02f9, 0x02f9, 0x02f9, 0x02ff, 0x02ff, 0x0304, 0x030c, 0x0312, - 0x0317, 0x031c, 0x031c, 0x031c, 0x0327, 0x032f, 0x0347, 0x0358, - 0x036b, 0x0373, 0x0386, 0x039d, 0x03a3, 0x03ad, 0x03b2, 0x03bb, - 0x03c1, 0x03c1, 0x03cb, 0x03da, 0x03e1, 0x03e1, 0x03e1, 0x03e1, - // Entry 80 - BF - 0x03ea, 0x03ea, 0x03f3, 0x03ff, 0x0404, 0x0414, 0x0422, 0x0432, - 0x043a, 0x043a, 0x0440, 0x0447, 0x044c, 0x044c, 0x0454, 0x045a, - 0x0461, 0x0469, 0x0470, 0x0476, 0x0480, 0x0487, 0x0487, 0x048f, - 0x0493, 0x04a2, 0x04a2, 0x04a2, 0x04ae, 0x04cf, 0x04d1, 0x04d6, - 0x04e9, 0x04f0, 0x0503, 0x0512, 0x053a, - }, - }, - {}, // rn - { // ro - roScriptStr, - roScriptIdx, - }, - {}, // rof - { // ru - ruScriptStr, - ruScriptIdx, - }, - {}, // rw - {}, // rwk - { // sah - "ÐрааптыыЭрмÑÑннииÐууччалыыКириÑктииДьоппуоннууКÑриÑйдииЛатыынныыТаайдыыС" + - "урулла иликБиллибÑÑ‚ Ñурук", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0022, 0x0022, 0x0022, - 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, - 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, - 0x0022, 0x0022, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, - 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, - 0x0046, 0x0046, 0x005c, 0x005c, 0x005c, 0x005c, 0x005c, 0x005c, - // Entry 40 - 7F - 0x005c, 0x005c, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, - 0x006e, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, - 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, - 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, - 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, - 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, - 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, - 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, - // Entry 80 - BF - 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, - 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, - 0x0080, 0x0080, 0x0080, 0x0080, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, - 0x008e, 0x008e, 0x00a5, 0x00a5, 0x00c0, - }, - }, - {}, // saq - {}, // sbp - { // se - "arábakyrillalaÅ¡greikkalaÅ¡hangulkiinnašálkiárbevirolaÅ¡hiraganakatakanaláh" + - "tenaÅ¡orrut chállojuvvotdovdameahttun chállin", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x001c, 0x001c, 0x001c, 0x0022, 0x002a, 0x002a, 0x002f, - 0x003c, 0x003c, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, - 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x004c, 0x004c, 0x004c, - // Entry 40 - 7F - 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, - 0x004c, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, - 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, - 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, - 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, - 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, - 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, - 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, - // Entry 80 - BF - 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, - 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, - 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, - 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, - 0x0056, 0x0056, 0x0069, 0x0069, 0x007f, - }, - }, - { // se-FI - "arábalaÅ¡kiinnálašálkes kiinnálašárbevirolaÅ¡ kiinnálaÅ¡orrut Äállojuvvotdo" + - "vdameahttun Äállin", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0015, 0x0015, 0x0027, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - // Entry 40 - 7F - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - // Entry 80 - BF - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0053, 0x0053, 0x0069, - }, - }, - {}, // seh - {}, // ses - {}, // sg - {}, // shi - {}, // shi-Latn - { // si - siScriptStr, - siScriptIdx, - }, - { // sk - skScriptStr, - skScriptIdx, - }, - { // sl - slScriptStr, - slScriptIdx, - }, - {}, // smn - {}, // sn - { // so - "Aan la qorinFar aan la aqoon amase aan saxnayn", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 80 - BF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x000c, 0x000c, 0x002e, - }, - }, - { // sq - sqScriptStr, - sqScriptIdx, - }, - { // sr - srScriptStr, - srScriptIdx, - }, - { // sr-Latn - srLatnScriptStr, - srLatnScriptIdx, - }, - { // sv - svScriptStr, - svScriptIdx, - }, - {}, // sv-FI - { // sw - swScriptStr, - swScriptIdx, - }, - {}, // sw-CD - { // ta - taScriptStr, - taScriptIdx, - }, - { // te - teScriptStr, - teScriptIdx, - }, - {}, // teo - { // th - thScriptStr, - thScriptIdx, - }, - { // ti - "áŠá‹°áˆáˆ‹á‰²áŠ•", - []uint16{ // 74 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, - 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, - 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, - 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, - // Entry 40 - 7F - 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, - 0x0009, 0x0012, - }, - }, - { // to - "tohinima fakaÊ»afakatohinima fakaÊ»alapÄ“nia-kaukasiatohinima fakaÊ»alepeato" + - "hinima fakaÊ»alÄmiti-Ê»emipaeatohinima fakaÊ»Ämeniatohinima fakaÊ»avesit" + - "anitohinima fakapalitohinima fakapamumitohinima fakapasa-vÄtohinima " + - "fakapÄtakitohinima fakapengikalitohinima fakaÊ»ilonga-pilisitohinima " + - "fakapopomofotohinima fakapalÄmÄ«tohinima laukonga ki he kuitohinima f" + - "akapukisitohinima fakapuhititohinima fakasakimÄtohinima fakatupuÊ»i-k" + - "Änata-fakatahatahatohinima fakakalitohinima fakasamitohinima fakase" + - "lokÄ«tohinima fakakÄ«lititohinima fakakopitikatohinima fakasaipalesito" + - "hinima fakalÅ«siatohinima fakalÅ«sia-lotu-motuÊ»atohinima fakaÊ»initia-t" + - "evanÄkalÄ«tohinima fakateseletitohinimanounou fakatupoloiÄ“tohinima te" + - "motika-fakaÊ»isipitetohinima hielatika-fakaÊ»isipitetohinima tongitapu" + - "-fakaÊ»isipitetohinima fakaÊ»elepasanitohinima fakaʻītiÅpiatohinima fa" + - "kakutusuli-seÅsiatohinima fakaseÅsiatohinima fakakalakolititohinima " + - "fakakotikatohinima fakasilanitÄtohinima fakakalisitohinima fakaÊ»init" + - "ia-kutalatitohinima fakakÅ«mukitohinima fakakÅlea-hÄngÅ«lutohinima fak" + - "asiainatohinima fakahanunÅÊ»otohinima fakasiaina-fakafaingofuatohinim" + - "a fakasiaina-tukufakaholotohinima fakahepelÅ«tohinima fakasiapani-hil" + - "akanatohinima tongitapu-fakaÊ»anatoliatohinima fakapahaumongitohinima" + - " fakasilapa-siapanitohinima fakahungakalia-motuÊ»atohinima fakaÊ»initu" + - "sitohinima fakaʻītali-motuÊ»atohinima fakasavatohinima fakasiapanitoh" + - "inima fakaiÅ«kenitohinima fakakaialÄ«tohinima fakasiapani-katakanatohi" + - "nima fakakalositÄ«tohinima fakakamipÅtiatohinima fakakosikÄ«tohinima f" + - "akaÊ»initia-kanatatohinima fakakÅleatohinima fakakepeletohinima fakak" + - "aiatÄ«tohinima fakalanatohinima fakalautohinima fakalatina-falakituli" + - "tohinima fakalatina-kaelikitohinima fakalatinatohinima fakalepasÄtoh" + - "inima fakalimipÅ«tohinima fakalinea-Atohinima fakalinea-Ptohinima fak" + - "afalÄsetohinima fakalomatohinima fakalÄ«siatohinima fakalÄ«tiatohinima" + - " fakamahasanitohinima fakamanitaeatohinima fakamanikaeatohinima tong" + - "itapu fakamaiatohinima fakamÄ“nititohinima fakameloue-heiheitohinima " + - "fakamelouetohinima fakaÊ»initia-malÄialamitohinima fakamotÄ«tohinima f" + - "akamongokÅliatohinima laukonga ki he kui-mÄhinatohinima fakamolÅtohi" + - "nima fakametei-maiekitohinima fakapematohinima fakaÊ»alepea-tokelau-m" + - "otuÊ»atohinima fakanapateatohinima fakanati-sepatohinima fakanikÅtohi" + - "nima fakanasiÅ«tohinima fakaÊ»okamitohinima fakaÊ»olisikitohinima fakaÊ»" + - "olikonitohinima fakaÊ»initia-Ê»olÄeatohinima fakaÊ»osimÄniatohinima fak" + - "apalamilenetohinima fakapausinihautohinima fakapÄ“mi-motuÊ»atohinima f" + - "akapÄkisipÄtohinima fakapÄlavi-tongitohinima fakapÄlavi-saametohinim" + - "a fakapÄlavi-tohitohinima fakafoinikiatohinima fakafonÄ“tiki-polÄtito" + - "hinima fakapÄtia-tongitohinima fakalesiangitohinima fakalongolongoto" + - "hinima fakalunikitohinima fakasamalitanetohinima fakasalatitohinima " + - "fakaÊ»alepea-tonga-motuÊ»atohinima fakasaulasitÄtohinima fakaÊ»ilonga-t" + - "ohitohinima fakasiavitohinima fakasiÄlatÄtohinima fakasititamitohini" + - "ma fakakutauÄtitohinima fakasingihalatohinima fakasolasomipengitohin" + - "ima fakasunitÄtohinima fakasailoti-nakilitohinima fakasuliÄiÄtohinim" + - "a fakasuliÄiÄ-Ê»esitelangelotohinima fakasuliÄiÄ-hihifotohinima fakas" + - "uliÄiÄ-hahaketohinima fakatakipaneuÄtohinima fakatakilitohinima faka" + - "tai-luetohinima fakatai-lue-foÊ»outohinima fakatamilitohinima fakatan" + - "gutitohinima fakatai-vietitohinima fakaÊ»initia-telukutohinima fakate" + - "ngiualitohinima fakatifinÄkitohinima fakatakalokatohinima fakatÄnato" + - "hinima fakatailanitohinima fakataipetitohinima fakatÄ«hutalea fakaʻūk" + - "alititohinima fakavaitohinima fakafonÄ“tiki-hÄmaitohinima fakavalangi" + - "-kisitÄ«tohinima fakauoleaitohinima fakapÄ“siamuÊ»atohinima fakamataÊ»in" + - "gahau-sumelo-akatiatohinima fakaÄ«Ä«tohinima hokositohinima fakamatema" + - "tikatohinima fakaÊ»ilongatohinima taÊ»etohitohiÊ»itohinima fakatatautoh" + - "inima taÊ»eÊ»iloa", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0014, 0x0035, 0x004a, 0x006b, 0x0081, 0x0099, 0x00aa, - 0x00bd, 0x00d2, 0x00e6, 0x00fc, 0x0118, 0x012d, 0x0142, 0x015d, - 0x0170, 0x0183, 0x0197, 0x01c0, 0x01d1, 0x01e2, 0x01f6, 0x020a, - 0x021f, 0x0235, 0x0248, 0x0268, 0x028a, 0x029f, 0x02bb, 0x02da, - 0x02fa, 0x031a, 0x0332, 0x034a, 0x0367, 0x037b, 0x0392, 0x03a5, - 0x03bb, 0x03ce, 0x03ec, 0x0400, 0x041d, 0x0430, 0x0447, 0x0468, - 0x0488, 0x049c, 0x04b9, 0x04da, 0x04f1, 0x050c, 0x052b, 0x0541, - 0x055e, 0x056f, 0x0583, 0x0597, 0x05ab, 0x05c8, 0x05de, 0x05f5, - // Entry 40 - 7F - 0x0609, 0x0625, 0x0638, 0x064b, 0x065f, 0x0670, 0x0680, 0x069e, - 0x06b9, 0x06cc, 0x06e0, 0x06f4, 0x0708, 0x071c, 0x0730, 0x0741, - 0x0754, 0x0767, 0x077c, 0x0791, 0x07a6, 0x07c1, 0x07d5, 0x07ef, - 0x0802, 0x0823, 0x0835, 0x084d, 0x0870, 0x0882, 0x089b, 0x08ac, - 0x08d1, 0x08e5, 0x08fb, 0x090d, 0x0920, 0x0934, 0x094a, 0x0960, - 0x097e, 0x0996, 0x09ad, 0x09c4, 0x09de, 0x09f5, 0x0a0f, 0x0a29, - 0x0a42, 0x0a57, 0x0a75, 0x0a8e, 0x0aa3, 0x0aba, 0x0acd, 0x0ae4, - 0x0af7, 0x0b1a, 0x0b31, 0x0b4b, 0x0b5d, 0x0b73, 0x0b88, 0x0b9e, - // Entry 80 - BF - 0x0bb4, 0x0bce, 0x0be2, 0x0bfd, 0x0c13, 0x0c38, 0x0c55, 0x0c72, - 0x0c8a, 0x0c9d, 0x0cb1, 0x0ccc, 0x0cdf, 0x0cf3, 0x0d09, 0x0d25, - 0x0d3b, 0x0d51, 0x0d66, 0x0d78, 0x0d8c, 0x0da0, 0x0db4, 0x0dc6, - 0x0dd6, 0x0df3, 0x0e0f, 0x0e22, 0x0e3a, 0x0e62, 0x0e73, 0x0e82, - 0x0e99, 0x0eae, 0x0ec7, 0x0ed9, 0x0eed, - }, - }, - { // tr - trScriptStr, - trScriptIdx, - }, - {}, // twq - {}, // tzm - { // ug - "ئاÙاكائەرەبخان جەمەتى ئارامۇئەرمەنئاۋÛستابالىبامۇمباسساباتاكبÛنگالبىلىس " + - "بەلگىلىرىخەنچە پىنيىنبراخمىبرائىل ئەمالار ÙŠÛزىقىبۇگىبۇخىتچاكمابىرلى" + - "ككە ÙƒÛ•Ù„Ú¯Û•Ù† كانادا يەرلىك بوغۇم جەدۋىلىكارىياچامچÛروكىكىرسچەكوپتىكسى" + - "پرۇسكىرىلقەدىمكى چىركاۋ سىلاۋيانچە كىرىلدÛۋاناگارىدÛزÛرÛتدۇپلويان ت" + - "Ûز خاتىرىلەشدÛموتىكچە مىسىرخىيەراتىكچە مىسىرتەسۋىرىي ÙŠÛزىق مىسىرئÛÙ" + - "ىيوپىيەچەخۇتسۇرى گىرۇزىنچەگىرۇزىنچەگىلاگوتچەگوتچەگىرانتاچەگىرÛÙƒÚ†Û•Ú¯Û‡" + - "جاراتچەگۇرمۇكىچەخەنچەخانۇنۇچەئاددىي خەنچەمۇرەككەپ خەنچەئىبرانىچەخىر" + - "اگانائاناتولىيە تەسۋىرىي ÙŠÛزىقمۆڭچەياپونچە خىراگانا ياكى كاتاكاناقە" + - "دىمكى ماجارچەئىندۇسچەقەدىمكى ئىتاليانچەياۋاچەياپونچەجۇرچÛنچەكاياھچە" + - "كاتاكاناكاروشتىچەكÛخمÛرچەخوجكىچەكانناداچەكورÛيەچەكپÛللÛچەكاياتىچەلا" + - "نناچەلائوسچەÙىراكتۇر لاتىنچەسىكوت لاتىنچەلاتىنچەلەپچاچەلىمبۇچەسىزىق" + - "لىق Aسىزىقلىق BÙراسÛرچەلوماچەلىسىيانچەلىدىيەچەماندائىكچەمانەكÛزەمچە" + - "ماياچە تەسۋىرىي ÙŠÛزىقمÛندÛÚ†Û•Ù…Ûتروئىت يازمىچەمÛتروئىتمالايامچەموڭغۇل" + - "چەكورىيەمروچەمانىپۇرىچەبىرماچەقەدىمكى شىمالىي ئەرەبچەئانباتچەناشىچە" + - "نىكوچەنۈشۇچەئوگەمچەئول-چىكىچەئورخۇنچەئورىياچەئوسمانيەپالمىراچەقەدىم" + - "كى Ù¾Ûرمىكچەپاسپاچەپەھلىۋىچە ئويما خەتپەھلىۋىچە Ø´Ûئىرىي تىلپەھلىۋىچە" + - " كىتابى تىلÙىنىكچەپوللارد تاۋۇشلىرىپارتىئانچە ئويما خەترÛجاڭچەروڭگور" + - "وڭگورۇنىكچەسامارىچەساراتىچەقەدىمكى جەنۇبى ئەرەبچەسائۇراشتىراچەئىشار" + - "ەت تىلىشاۋىيانچەشاراداچەكۇداۋادچەسىنخالاچەسورا سامپىڭسۇنداچەسىيولوت" + - "Ù‰-ناگرىچەسۈرىيەچەسۈرىيەچە ئەبجەتغەربىي سۈرىيەچەشەرقىي سۈرىيەچەتاگبا" + - "نۋاچەتاكرىچەتاي-Ù„Û•Ú†Û•ÙŠÛÚ­Ù‰ تاي-لەچەتامىلچەتاڭغۇتچەتايلاندچە-ۋىيÛتنامچ" + - "ەتÛلۇگۇچەتÛڭۋارچەتىÙىناغچەتاگالوگچەتاناچەتايلاندچەتىبەتچەتىرخۇتاچەئ" + - "ۇگارىتىكچەۋايچەكۆرۈنۈشچان تاۋۇشۋاراڭ كىشىتىۋولىئايقەدىمكى پارىسچەسۇ" + - "Ù…Ûر-ئاككادىيان مىخ خەتيىچەئىرسىيەت ئاتالغۇماتÛماتىكىلىق بەلگەبەلگەي" + - "Ûزىلمىغانئورتاقيوچۇن ÙŠÛزىق", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x000c, 0x000c, 0x0016, 0x0036, 0x0042, 0x0050, 0x0058, - 0x0062, 0x006c, 0x0076, 0x0082, 0x009f, 0x00b6, 0x00c2, 0x00ea, - 0x00f2, 0x00fc, 0x0106, 0x0157, 0x0163, 0x0169, 0x0175, 0x0181, - 0x018d, 0x0199, 0x01a3, 0x01de, 0x01f2, 0x0200, 0x022a, 0x0247, - 0x0268, 0x028e, 0x028e, 0x02a6, 0x02c7, 0x02d9, 0x02eb, 0x02f5, - 0x0307, 0x0315, 0x0327, 0x0339, 0x0339, 0x0343, 0x0353, 0x036a, - 0x0385, 0x0397, 0x03a7, 0x03d7, 0x03e1, 0x041a, 0x0437, 0x0447, - 0x046a, 0x0476, 0x0484, 0x0494, 0x04a2, 0x04b2, 0x04c4, 0x04d4, - // Entry 40 - 7F - 0x04e2, 0x04f4, 0x0504, 0x0514, 0x0524, 0x0532, 0x0540, 0x055f, - 0x0578, 0x0586, 0x0594, 0x05a2, 0x05b4, 0x05c6, 0x05d6, 0x05e2, - 0x05f4, 0x0604, 0x0604, 0x0618, 0x062e, 0x0656, 0x0664, 0x0683, - 0x0693, 0x06a5, 0x06a5, 0x06b5, 0x06c1, 0x06cb, 0x06df, 0x06ed, - 0x0719, 0x0729, 0x0735, 0x0741, 0x074d, 0x075b, 0x076e, 0x077e, - 0x078e, 0x079e, 0x07b0, 0x07b0, 0x07cf, 0x07dd, 0x0801, 0x0829, - 0x084f, 0x085d, 0x087e, 0x08a4, 0x08b2, 0x08c6, 0x08d4, 0x08e4, - 0x08f4, 0x091e, 0x0938, 0x094f, 0x0961, 0x0971, 0x0971, 0x0983, - // Entry 80 - BF - 0x0995, 0x09aa, 0x09b8, 0x09d7, 0x09e7, 0x0a04, 0x0a21, 0x0a3e, - 0x0a52, 0x0a60, 0x0a6f, 0x0a87, 0x0a95, 0x0aa5, 0x0acc, 0x0adc, - 0x0aec, 0x0afe, 0x0b10, 0x0b1c, 0x0b2e, 0x0b3c, 0x0b4e, 0x0b64, - 0x0b6e, 0x0b8d, 0x0ba4, 0x0bb2, 0x0bcf, 0x0bfc, 0x0c04, 0x0c23, - 0x0c48, 0x0c52, 0x0c66, 0x0c72, 0x0c87, - }, - }, - { // uk - ukScriptStr, - ukScriptIdx, - }, - { // ur - urScriptStr, - urScriptIdx, - }, - {}, // ur-IN - { // uz - uzScriptStr, - uzScriptIdx, - }, - { // uz-Arab - "عربی", - []uint16{ // 4 elements - 0x0000, 0x0000, 0x0000, 0x0008, - }, - }, - { // uz-Cyrl - "ÐрабÐрманБенгалиБопомофоБраиллеКирилДевангариҲабашГрузинЮнонГужаратиГурм" + - "ухиХангулХанСоддалаштирилганÐнъанавийИбронийХираганаЯпонКатаканаХме" + - "рКаннадаКорейÑЛаоЛотинМалайаламМўғулчаМьÑнмаОриÑСинхалаТамилТелугуТ" + - "аанаТайТибетРамзларÐзилмаганУмумийÐомаълум шрифт", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0012, 0x0012, 0x0012, - 0x0012, 0x0012, 0x0012, 0x0020, 0x0020, 0x0030, 0x0030, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x0048, 0x0048, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x0064, 0x0064, 0x0070, 0x0070, 0x0070, - 0x0070, 0x0078, 0x0088, 0x0096, 0x00a2, 0x00a8, 0x00a8, 0x00c8, - 0x00da, 0x00e8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, - 0x00f8, 0x00f8, 0x0100, 0x0100, 0x0100, 0x0110, 0x0110, 0x0118, - // Entry 40 - 7F - 0x0118, 0x0126, 0x0132, 0x0132, 0x0132, 0x0132, 0x0138, 0x0138, - 0x0138, 0x0142, 0x0142, 0x0142, 0x0142, 0x0142, 0x0142, 0x0142, - 0x0142, 0x0142, 0x0142, 0x0142, 0x0142, 0x0142, 0x0142, 0x0142, - 0x0142, 0x0154, 0x0154, 0x0162, 0x0162, 0x0162, 0x0162, 0x016e, - 0x016e, 0x016e, 0x016e, 0x016e, 0x016e, 0x016e, 0x016e, 0x016e, - 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, - 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, - 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, - // Entry 80 - BF - 0x0184, 0x0184, 0x0184, 0x0184, 0x0184, 0x0184, 0x0184, 0x0184, - 0x0184, 0x0184, 0x0184, 0x0184, 0x018e, 0x018e, 0x018e, 0x019a, - 0x019a, 0x019a, 0x019a, 0x01a4, 0x01aa, 0x01b4, 0x01b4, 0x01b4, - 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, - 0x01b4, 0x01c2, 0x01d4, 0x01e0, 0x01fb, - }, - }, - {}, // vai - {}, // vai-Latn - { // vi - viScriptStr, - viScriptIdx, - }, - {}, // vun - { // wae - "ArabiÅ¡ArmeniÅ¡BengaliÅ¡KirilliÅ¡DevanagariEthiopiÅ¡GeorgiÅ¡GriÄiÅ¡GujaratiVere" + - "ifaÄtTraditionellHebräiÅ¡JapaniÅ¡KhmerKannadaKorianiÅ¡LaotiÅ¡LatiniÅ¡Mala" + - "isiÅ¡BurmesiÅ¡OriyaSingalesiÅ¡TamiliÅ¡TeluguThánaThaiSchriftlosUnkodiert" + - "i Schrift", - []uint16{ // 165 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x000f, 0x000f, 0x000f, - 0x000f, 0x000f, 0x000f, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, - 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, - 0x0018, 0x0018, 0x0021, 0x0021, 0x002b, 0x002b, 0x002b, 0x002b, - 0x002b, 0x002b, 0x002b, 0x0034, 0x0034, 0x003c, 0x003c, 0x003c, - 0x003c, 0x0044, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x0056, - 0x0062, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, - 0x006b, 0x006b, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0078, - // Entry 40 - 7F - 0x0078, 0x007f, 0x0088, 0x0088, 0x0088, 0x0088, 0x008f, 0x008f, - 0x008f, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, - 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, - 0x0097, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, - // Entry 80 - BF - 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, - 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00c1, 0x00c1, 0x00c1, 0x00c7, - 0x00c7, 0x00c7, 0x00c7, 0x00cd, 0x00d1, 0x00d1, 0x00d1, 0x00d1, - 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, - 0x00d1, 0x00d1, 0x00db, 0x00db, 0x00ed, - }, - }, - {}, // xog - {}, // yav - { // yi - "×ַר×ַבישצירילישדעוו×Ö·× ×Ö·×’×ַריגריכישגַלחיש", - []uint16{ // 74 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x001e, 0x001e, 0x003a, 0x003a, 0x003a, 0x003a, - 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, - 0x003a, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, - 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, - 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, - // Entry 40 - 7F - 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, - 0x0046, 0x0052, - }, - }, - {}, // yo - {}, // yo-BJ - {}, // zgh - { // zh - zhScriptStr, - zhScriptIdx, - }, - { // zh-Hant - zhHantScriptStr, - zhHantScriptIdx, - }, - { // zh-Hant-HK - "西里爾文梵文", - []uint16{ // 29 elements - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x000c, 0x000c, 0x0012, - }, - }, - { // zu - zuScriptStr, - zuScriptIdx, - }, -} - -// Size: 313 bytes -var afScriptStr string = "" + - "ArabiesArmeensBengaalsBopomofoBrailleSirilliesDevanagariEtiopiesGeorgies" + - "GrieksGudjaratiGurmukhiHangulHanVereenvoudigde HanTradisionele HanHebree" + - "usHiraganaJapanneesKatakanaKhmerKannadaKoreaansLaoLatynMalabaarsMongools" + - "MianmarOriyaSinhalaTamilTeluguThaanaThaiTibettaansSimboleOngeskreweAlgem" + - "eenOnbekende skryfstelsel" - -// Size: 354 bytes, 165 elements -var afScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x0016, 0x0016, 0x001e, 0x001e, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x002e, 0x002e, 0x0038, 0x0038, 0x0038, 0x0038, - 0x0038, 0x0038, 0x0038, 0x0040, 0x0040, 0x0048, 0x0048, 0x0048, - 0x0048, 0x004e, 0x0057, 0x005f, 0x0065, 0x0068, 0x0068, 0x007a, - 0x008a, 0x0092, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, - 0x009a, 0x009a, 0x00a3, 0x00a3, 0x00a3, 0x00ab, 0x00ab, 0x00b0, - // Entry 40 - 7F - 0x00b0, 0x00b7, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00c2, 0x00c2, - 0x00c2, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, - 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, - 0x00c7, 0x00d0, 0x00d0, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00df, - 0x00df, 0x00df, 0x00df, 0x00df, 0x00df, 0x00df, 0x00df, 0x00df, - 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, - 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, - 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, - // Entry 80 - BF - 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, - 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00f0, 0x00f0, 0x00f0, 0x00f6, - 0x00f6, 0x00f6, 0x00f6, 0x00fc, 0x0100, 0x010a, 0x010a, 0x010a, - 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, - 0x010a, 0x0111, 0x011b, 0x0123, 0x0139, -} - -// Size: 505 bytes -var amScriptStr string = "" + - "ዓረብኛአርሜንያዊቤንጋሊቦá–ሞáŽá‰¥áˆ¬á‹­áˆáˆ²á‹­áˆªáˆáŠ­á‹°á‰«áŠ•áŒ‹áˆªáŠ¢á‰µá‹®á’ክጆርጂያዊáŒáˆªáŠ­áŒ‰áŒƒáˆ«á‰²áŒ‰áˆ­áˆ™áŠªáˆáŠ•áŒ‰áˆáˆƒáŠ•á‰€áˆˆáˆ ያለ ሃንባህላዊ" + - " ሃንእብራይስጥሂራጋናጃá“ንኛካታካናክህመርካንአዳኮሪያኛላኦላቲንማላያáˆáˆáˆžáŠ•áŒŽáˆŠá‹«áŠ›áˆá‹«áŠ•áˆ›áˆ­áŠ¦áˆªá‹«áˆ²áŠ•áˆƒáˆ‹á‰³áˆšáˆá‰°áˆ‰áŒ‰á‰³áŠ“ታይቲ" + - "ቤታንáˆáˆáŠ­á‰¶á‰½á‹«áˆá‰°áŒ»áˆá‹¨áŒ‹áˆ«á‹«áˆá‰³á‹ˆá‰€ ስክሪá•á‰µ" - -// Size: 354 bytes, 165 elements -var amScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x001e, 0x001e, 0x001e, - 0x001e, 0x001e, 0x001e, 0x002a, 0x002a, 0x0036, 0x0036, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0051, 0x0051, 0x0060, 0x0060, 0x0060, 0x0060, - 0x0060, 0x0060, 0x0060, 0x006f, 0x006f, 0x007e, 0x007e, 0x007e, - 0x007e, 0x0087, 0x0093, 0x009f, 0x00ab, 0x00b1, 0x00b1, 0x00c8, - 0x00db, 0x00ed, 0x00f9, 0x00f9, 0x00f9, 0x00f9, 0x00f9, 0x00f9, - 0x00f9, 0x00f9, 0x0105, 0x0105, 0x0105, 0x0111, 0x0111, 0x011d, - // Entry 40 - 7F - 0x011d, 0x0129, 0x0135, 0x0135, 0x0135, 0x0135, 0x013b, 0x013b, - 0x013b, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, - 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, - 0x0144, 0x0153, 0x0153, 0x0165, 0x0165, 0x0165, 0x0165, 0x0174, - 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, - 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, - 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, - 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, - // Entry 80 - BF - 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, - 0x0189, 0x0189, 0x0189, 0x0189, 0x0192, 0x0192, 0x0192, 0x019b, - 0x019b, 0x019b, 0x019b, 0x01a1, 0x01a7, 0x01b3, 0x01b3, 0x01b3, - 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, - 0x01b3, 0x01c2, 0x01d1, 0x01da, 0x01f9, -} - -// Size: 2430 bytes -var arScriptStr string = "" + - "العربيةالأرمينيةالباليةالباتاكالبنغاليةرموز بليسالبوبوموÙوالهندوسيةالبرا" + - "يلالبجينيزالبهيديةمقاطع كندية أصلية موحدةالكاريةالتشاميةالشيروكيالسيرثا" + - "لقبطيةالقبرصيةالسيريليةالسيريلية السلاÙية الكنسية القديمةالديÙاناجاريال" + - "ديسيريتالديموطيقيةالهيراطيقيةالهيروغليÙيةالأثيوبيةالأبجدية الجورجية - Ø£" + - "سومتاÙرلي Ùˆ نسخريالجورجيةالجلاجوليتيكالقوطيةاليونانيةالتاغجراتيةالجرمخي" + - "الهانغولالهانالهانونوالهان المبسطةالهان التقليديةالعبريةالهيراجاناالباه" + - "وه همونجالكتكانا أو الهيراجاناالمجرية القديمةاندس - هارابانالإيطالية ال" + - "قديمةالجاويةاليابانيةالكياه لىالكتكاناالخاروشتىالخميريةالكاناداالكوريةا" + - "لانااللاواللاتينية - متغير Ùراكتراللاتينية - متغير غيلىاللاتينيةالليبتش" + - "ا - رونجالليمبوالخطية أالخطية بالليسيةالليديةالمانداينيةالمايا الهيروغل" + - "ÙŠÙيةالميرويتيكالماليالامالمغوليةمونالميانمارالعربية الشمالية القديمةأنك" + - "والأوجهامالأورخونالأورياالأوسمانياالبيرميكية القديمةالÙاجسباالÙينيقيةال" + - "صوتيات الجماءرنجورنجوالرونيالساراتيالعربية الجنوبية القديمةالشوانيالسين" + - "هالاالسوندانيةالسيلوتي ناغريالسريانيةالسريانية الأسترنجيليةالسريانية ال" + - "غربيةالسريانية الشرقيةالتاجبانواالتاي ليالتاى لى الجديدالتاميليةالتيلجو" + - "التينجوارالتيÙيناغالتغالوغيةالثعنةالتايلانديةالتبتيةالأجاريتيكيةالÙايال" + - "كلام المرئيالÙارسية القديمةالكتابة المسمارية الأكدية السومريةالييالمورو" + - "ثرموزغير مكتوبعامنظام كتابة غير معروÙ" - -// Size: 354 bytes, 165 elements -var arScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000e, 0x000e, 0x0020, 0x0020, 0x002e, - 0x002e, 0x002e, 0x003c, 0x004e, 0x005f, 0x0073, 0x0085, 0x0093, - 0x00a3, 0x00b3, 0x00b3, 0x00de, 0x00ec, 0x00fc, 0x010c, 0x0118, - 0x0126, 0x0136, 0x0148, 0x0189, 0x01a1, 0x01b3, 0x01b3, 0x01c9, - 0x01df, 0x01f7, 0x01f7, 0x0209, 0x024f, 0x025f, 0x0277, 0x0285, - 0x0285, 0x0297, 0x02ad, 0x02bb, 0x02cb, 0x02d5, 0x02e5, 0x02fe, - 0x031b, 0x0329, 0x033d, 0x033d, 0x0356, 0x0380, 0x039d, 0x03b6, - 0x03d7, 0x03e5, 0x03f7, 0x03f7, 0x0408, 0x0418, 0x042a, 0x043a, - // Entry 40 - 7F - 0x043a, 0x044a, 0x0458, 0x0458, 0x0458, 0x0462, 0x046c, 0x0498, - 0x04c0, 0x04d2, 0x04ed, 0x04fb, 0x050a, 0x0519, 0x0519, 0x0519, - 0x0527, 0x0535, 0x0535, 0x054b, 0x054b, 0x0570, 0x0570, 0x0570, - 0x0584, 0x0598, 0x0598, 0x05a8, 0x05ae, 0x05ae, 0x05ae, 0x05c0, - 0x05ee, 0x05ee, 0x05ee, 0x05f6, 0x05f6, 0x0606, 0x0606, 0x0616, - 0x0624, 0x0638, 0x0638, 0x0638, 0x065b, 0x066b, 0x066b, 0x066b, - 0x066b, 0x067d, 0x069a, 0x069a, 0x069a, 0x06aa, 0x06b6, 0x06b6, - 0x06c6, 0x06f4, 0x06f4, 0x06f4, 0x0702, 0x0702, 0x0702, 0x0702, - // Entry 80 - BF - 0x0714, 0x0714, 0x0728, 0x0743, 0x0755, 0x0780, 0x07a1, 0x07c2, - 0x07d6, 0x07d6, 0x07e5, 0x0801, 0x0813, 0x0813, 0x0813, 0x0821, - 0x0833, 0x0845, 0x0859, 0x0865, 0x087b, 0x0889, 0x0889, 0x08a1, - 0x08ab, 0x08c4, 0x08c4, 0x08c4, 0x08e3, 0x0924, 0x092c, 0x093a, - 0x093a, 0x0942, 0x0953, 0x0959, 0x097e, -} - -// Size: 1044 bytes -var azScriptStr string = "" + - "É™rÉ™barmiermÉ™niavestanbalibatakbenqalblissymbolsbopomofobrahmibraylbuqinb" + - "uhidkakmbirləşmiÅŸ kanada yerli yazısıkariyançamçirokisirtkoptikkiprkiril" + - "qÉ™dimi kilsa kirilidevanaqarideseretmisir demotikmisir hiyeratikmisir hi" + - "yeroqlifefiopgürcü xutsurigürcüqlaqolitikqotikyunanqucaratqurmuxihanqılh" + - "anhanunuSadÉ™ləşdirilmiÅŸ HanÆnÉ™nÉ™vi HanyÉ™hudiiraqanapahav monqkatakana vÉ™" + - "ya hiraqanaqÉ™dimi macarhindistanqÉ™dimi italyalıcavayaponkayax likatakana" + - "xaroÅŸtikxmerkannadakoreyaktilannalaofraktur latınıgael latınılatınlepçəl" + - "imbulusianludianmandayenmaniçayenmaya hiyeroqlifimeroytikmalayalammonqol" + - "munmeytey mayekmyanmarnkooÄŸamol çikiorxonoriyaosmanyaqÉ™dimi permikfaqs-p" + - "afliflpkitab paxlavifoenikpolard fonetikprtirecÉ™ngronqoronqoruniksamarit" + - "ansaratisaurastraiÅŸarÉ™t yazısışavyansinhalsundansiloti nÉ™qrisiryakestran" + - "gela süryanicetaqbanvatay letÉ™zÉ™ tay lutamiltavtteluqutengvartifinaqtaqa" + - "loqthanataytibetuqaritvaydanışma sÉ™slÉ™riqÉ™dimi farssumer-akadyan kuneyfo" + - "rmyizmthsimvollaryazısızümumi yazınamÉ™lum skript" - -// Size: 354 bytes, 165 elements -var azScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0006, 0x000a, 0x0011, 0x0018, 0x001c, - 0x001c, 0x001c, 0x0021, 0x0027, 0x0032, 0x003a, 0x0040, 0x0045, - 0x004a, 0x004f, 0x0053, 0x0075, 0x007c, 0x0080, 0x0087, 0x008b, - 0x0091, 0x0095, 0x009a, 0x00ae, 0x00b8, 0x00bf, 0x00bf, 0x00cc, - 0x00db, 0x00eb, 0x00eb, 0x00f0, 0x00ff, 0x0106, 0x0110, 0x0115, - 0x0115, 0x011a, 0x0121, 0x0128, 0x012f, 0x0132, 0x0138, 0x014f, - 0x015d, 0x0164, 0x016b, 0x016b, 0x0175, 0x018c, 0x0199, 0x01a2, - 0x01b3, 0x01b7, 0x01bc, 0x01bc, 0x01c4, 0x01cc, 0x01d4, 0x01d9, - // Entry 40 - 7F - 0x01d9, 0x01e0, 0x01e6, 0x01e6, 0x01e9, 0x01ee, 0x01f1, 0x0201, - 0x020e, 0x0214, 0x021b, 0x0220, 0x0220, 0x0220, 0x0220, 0x0220, - 0x0226, 0x022c, 0x022c, 0x0234, 0x023e, 0x024e, 0x024e, 0x024e, - 0x0256, 0x025f, 0x025f, 0x0265, 0x0268, 0x0268, 0x0274, 0x027b, - 0x027b, 0x027b, 0x027b, 0x027e, 0x027e, 0x0283, 0x028b, 0x0290, - 0x0295, 0x029c, 0x029c, 0x029c, 0x02aa, 0x02b1, 0x02b4, 0x02b7, - 0x02c4, 0x02ca, 0x02d8, 0x02dc, 0x02e3, 0x02ed, 0x02f2, 0x02fb, - 0x0301, 0x0301, 0x030a, 0x031b, 0x0322, 0x0322, 0x0322, 0x0322, - // Entry 80 - BF - 0x0328, 0x0328, 0x032e, 0x033b, 0x0341, 0x0356, 0x0356, 0x0356, - 0x035e, 0x035e, 0x0364, 0x0371, 0x0376, 0x0376, 0x037a, 0x0380, - 0x0387, 0x038e, 0x0395, 0x039a, 0x039d, 0x03a2, 0x03a2, 0x03a8, - 0x03ab, 0x03be, 0x03be, 0x03be, 0x03ca, 0x03e1, 0x03e3, 0x03e3, - 0x03e7, 0x03f0, 0x03f9, 0x0405, 0x0414, -} - -// Size: 2324 bytes -var bgScriptStr string = "" + - "арабÑкаÐрамейÑкаарменÑкаÐвеÑтанÑкаБалийÑкиБатакÑкабенгалÑÐºÐ°Ð‘Ð»Ð¸Ñ Ñимволиб" + - "опомофоБрахмиБрайловаБугинÑкаБухидЧакмаУнифицирани Ñимволи на канадÑки " + - "аборигениКарийÑкаХамитÑкаЧерокиКиртКоптÑкаКипърÑкакирилицадеванагариДез" + - "еретЕгипетÑко демотично пиÑмоЕгипетÑко йератично пиÑмоЕгипетÑки йерогли" + - "фиетиопÑкаГрузинÑка хуцуригрузинÑкаГлаголичеÑкаГотичеÑкагръцкагуджарати" + - "гурмукхихангълкитайÑкаХанунуопроÑтен китайÑкитрадиционен китайÑкиивритх" + - "ираганаПахау хмонгКатакана или ХираганаСтароунгарÑкаХарапÑкаДревно итал" + - "ийÑкаЯванÑкаÑпонÑÐºÐ°ÐšÐ°Ñ Ð›Ð¸ÐºÐ°Ñ‚Ð°ÐºÐ°Ð½Ð°ÐšÑ…Ð°Ñ€Ð¾ÑˆÑ‚Ñ…Ð¸ÐºÑ…Ð¼ÐµÑ€ÑкаканнадакорейÑкаКайтхи" + - "ЛанналаоÑкаЛатинÑка фрактураГалÑка латинÑкалатиницаЛепчаЛимбуЛинейна ÐЛ" + - "инейна БЛицийÑкаЛидийÑкаМандаринÑкаМанихейÑкаЙероглифи на МаитеМероитÑк" + - "амалаÑламмонголÑкаМунМанипурибирманÑкаÐ’КоОгамичеÑкаОл ЧикиОрхоно-ениÑе" + - "йÑкаориÑОÑманÑкаДревно пермÑкаФагÑ-паПахлавÑкаФиникийÑкаПиÑменоÑÑ‚ Полар" + - "дРонго-ронгоРуничеÑкаСамаританÑкаСаратиСаураштраÑинхалÑкаСунданÑкаСилот" + - "и ÐагриСирийÑкаСирийÑка еÑтрангелоЗападна ÑирийÑкаИзточна ÑирийÑкаТагба" + - "нваТай ЛеÐова Тай ЛетамилÑкателугуТагалогтаанатайÑкатибетÑкаУгаритÑкаВа" + - "йÑкаВидима речСтароперÑийÑкаШумеро-акадÑки клинопиÑЙиМатематичеÑки Ñимв" + - "олиÑимволибез пиÑменоÑтобщанепозната пиÑменоÑÑ‚" - -// Size: 354 bytes, 165 elements -var bgScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000e, 0x0020, 0x0030, 0x0044, 0x0054, - 0x0054, 0x0054, 0x0064, 0x0076, 0x008d, 0x009d, 0x00a9, 0x00b9, - 0x00c9, 0x00d3, 0x00dd, 0x012b, 0x013b, 0x014b, 0x0157, 0x015f, - 0x016d, 0x017d, 0x018d, 0x018d, 0x01a1, 0x01af, 0x01af, 0x01df, - 0x020f, 0x0234, 0x0234, 0x0244, 0x0263, 0x0275, 0x028d, 0x029f, - 0x029f, 0x02ab, 0x02bd, 0x02cd, 0x02d9, 0x02e9, 0x02f5, 0x0316, - 0x033d, 0x0347, 0x0357, 0x0357, 0x036c, 0x0394, 0x03ae, 0x03be, - 0x03dd, 0x03eb, 0x03f9, 0x03f9, 0x0404, 0x0414, 0x0426, 0x0436, - // Entry 40 - 7F - 0x0436, 0x0444, 0x0454, 0x0454, 0x0460, 0x046a, 0x0476, 0x0497, - 0x04b4, 0x04c4, 0x04ce, 0x04d8, 0x04e9, 0x04fa, 0x04fa, 0x04fa, - 0x050a, 0x051a, 0x051a, 0x0530, 0x0544, 0x0566, 0x0566, 0x0566, - 0x0578, 0x0588, 0x0588, 0x059a, 0x05a0, 0x05a0, 0x05b0, 0x05c2, - 0x05c2, 0x05c2, 0x05c2, 0x05cb, 0x05cb, 0x05df, 0x05ec, 0x060b, - 0x0613, 0x0623, 0x0623, 0x0623, 0x063e, 0x064b, 0x064b, 0x064b, - 0x065d, 0x0671, 0x0690, 0x0690, 0x0690, 0x06a5, 0x06b7, 0x06cf, - 0x06db, 0x06db, 0x06ed, 0x06ed, 0x06ed, 0x06ed, 0x06ed, 0x06ed, - // Entry 80 - BF - 0x06ff, 0x06ff, 0x0711, 0x0728, 0x0738, 0x075d, 0x077c, 0x079b, - 0x07ab, 0x07ab, 0x07b6, 0x07ca, 0x07da, 0x07da, 0x07da, 0x07e6, - 0x07e6, 0x07e6, 0x07f4, 0x07fe, 0x080a, 0x081a, 0x081a, 0x082c, - 0x0838, 0x084b, 0x084b, 0x084b, 0x0867, 0x0893, 0x0897, 0x0897, - 0x08c0, 0x08ce, 0x08e7, 0x08ef, 0x0914, -} - -// Size: 3576 bytes -var bnScriptStr string = "" + - "আরবিআরমিআরà§à¦®à§‡à¦¨à§€à¦¯à¦¼à¦†à¦­à§‡à¦¸à¦¤à¦¾à¦¨à¦¬à¦¾à¦²à§€à¦¯à¦¼à¦¬à¦¾à¦Ÿà¦¾à¦•à¦¬à¦¾à¦‚লাবà§à¦²à¦¿à¦¸à¦ªà§à¦°à¦¤à§€à¦•à¦¬à§‹à¦ªà§‹à¦®à§‹à¦«à§‹à¦¬à§à¦°à¦¾à¦¹à§à¦®à§€à¦¬à§à¦°à§‡à¦‡" + - "লবà§à¦—িবà§à¦¹à¦¿à¦¡à¦šà¦¾à¦•à¦®à¦¾à¦¸à¦‚যà§à¦•à§à¦¤ কানাডিয়ান অà§à¦¯à¦¾à¦¬à§à¦°à§‹à¦œà¦¿à¦¨à¦¿à¦¯à¦¼à¦¾à¦¨ সিলেবিকà§à¦¸à¦•à§à¦¯à¦¾à¦°à¦¿à¦¯à¦¼à¦¾à¦¨" + - "চà§à¦¯à¦¾à¦®à¦šà§‡à¦°à§‹à¦•à¦¿à¦•à¦¿à¦°à§à¦Ÿà¦•à§‹à¦ªà§à¦Ÿà¦¿à¦•à¦¸à¦¾à¦‡à¦ªà§à¦°à§‹à¦¯à¦¼à§‡à¦Ÿà¦¸à¦¿à¦°à¦¿à¦²à¦¿à¦•à¦ªà§à¦°à¦¾à¦šà§€à¦¨ চারà§à¦š সà§à¦²à¦¾à¦­à§‹à¦¨à¦¿à¦• সিরিল" + - "িকদেবনাগরিদেসেরাতমিশরীয় ডেমোটিকমিশরীয় হায়রেটিকমিশরীয় হায়ারোগà§à¦²à¦¿à¦ªà¦‡" + - "থিওপিয়জরà§à¦œà¦¿à¦¯à¦¼ খà§à§Žà¦¸à§à¦°à¦¿à¦œà¦°à§à¦œà¦¿à¦¯à¦¼à¦¾à¦¨à¦—à§à¦²à¦¾à¦—োলিটিকগোথিকগà§à¦°à¦¿à¦•à¦—à§à¦œà¦°à¦¾à¦Ÿà¦¿à¦—à§à¦°à§à¦®à§à¦–িহাঙ" + - "à§à¦—à§à¦²à¦¹à§à¦¯à¦¾à¦¨à¦¹à§à¦¯à¦¾à¦¨à§à¦¨à§à¦¸à¦°à¦²à¦¿à¦•à§ƒà¦¤ হà§à¦¯à¦¾à¦¨à¦à¦¤à¦¿à¦¹à§à¦¯à¦¬à¦¾à¦¹à§€ হà§à¦¯à¦¾à¦¨à¦¹à¦¿à¦¬à§à¦°à§à¦¹à¦¿à¦°à¦¾à¦—ানাফাহাও মঙকা" + - "টাকানা অথবা হিরাগানাপà§à¦°à§‹à¦¨à§‹ হাঙà§à¦—েরীয়সিনà§à¦§à§à¦ªà§à¦°à¦¾à¦šà§€à¦¨ ইতালিজাভানিজজাপানীক" + - "ায়াহ লিকাটাকানাখরোষà§à¦ à§€à¦–মেরকানাড়াকোরিয়ানকাইথিলানà§à¦¨à¦¾à¦²à¦¾à¦“ফà§à¦°à¦¾à¦•à§à¦Ÿà§à¦° লà§à¦¯à¦¾" + - "টিনগà§à¦¯à¦¾à¦²à¦¿à¦• লà§à¦¯à¦¾à¦Ÿà¦¿à¦¨à¦²à§à¦¯à¦¾à¦Ÿà¦¿à¦¨à¦²à§‡à¦ªà§à¦šà¦¾à¦²à¦¿à¦®à§à¦¬à§à¦²à¦¿à¦¨à¦¿à¦¯à¦¼à¦¾à¦° à¦à¦²à¦¿à¦¨à¦¿à¦¯à¦¼à¦¾à¦° বিলাইসিয়ানলাই" + - "ডিয়ানমà§à¦¯à¦¾à¦¨à§à¦¡à¦¾à¦¯à¦¼à§€à¦¨à¦®à§à¦¯à¦¾à¦¨à¦¿à¦šà¦¾à¦‡à¦¨à¦®à¦¾à¦¯à¦¼à¦¾à¦¨ হায়ারোগà§à¦²à¦¿à¦ªà¦®à§‡à¦°à§‹à¦‡à¦Ÿà¦¿à¦•à¦®à¦¾à¦²à¦¾à¦¯à¦¼à¦¾à¦²à¦¾à¦®à¦®à§‹à¦™à§à¦—" + - "োলীয়মà§à¦¨à¦®à§‡à¦‡à¦Ÿà§‡à¦‡ মায়েকমায়ানমারà¦à¦¨à¦•à§‹à¦“ঘামওল চিকিঅরà§à¦–োনওড়িয়াওসমানিয়পà§à¦°à¦¾" + - "চীন পারà§à¦®à¦¿à¦•à¦«à¦¾à¦—à§à¦¸-পাখদিত পাহলভিসলà§à¦Ÿà¦¾à¦° পাহলভিপà§à¦¸à§à¦¤à¦• পাহলভিফিনিশিয়পোলারà§" + - "ড ধà§à¦¬à¦¨à¦¿à¦•à¦ªà¦¾à¦°à§à¦¥à¦¿à¦¯à¦¼à¦¨à¦°à§‡à¦œà§à¦¯à¦¾à¦™à§à¦—রোঙà§à¦—োরোঙà§à¦—োরà§à¦¨à¦¿à¦•à¦¸à¦®à§‡à¦°à¦¿à¦Ÿà¦¨à¦¸à¦¾à¦°à¦¾à¦¤à¦¿à¦¸à§Œà¦°à¦¾à¦·à§à¦Ÿà§à¦°à¦šà¦¿à¦¹à§à¦¨" + - " লিখনসাভিয়ানসিংহলিসানà§à¦¦à¦¾à¦¨à¦¿à¦œà¦¸à¦¿à¦²à§‡à¦Ÿà¦¿ নাগরিসিরিয়াকà¦à¦¸à§à¦Ÿà§à¦°à§‡à¦™à§à¦—েলো সিরিয়াকপশ" + - "à§à¦šà¦¿à¦®à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ সিরিয়াকপূরà§à¦¬à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ সিরিয়াকটাগোওয়ানাতাইলেনতà§à¦¨ তাই লà§à¦¤" + - "ামিলতাই ভিয়েৎতেলেগà§à¦¤à§‡à¦™à§à¦—োয়ারতিফিনাগটাগালগথানাথাইতিবà§à¦¬à¦¤à¦¿à¦‰à¦—ারিটিকভাইদৃ" + - "শà§à¦¯à¦®à¦¾à¦¨ ভাষাপà§à¦°à¦¾à¦šà§€à¦¨ ফারà§à¦¸à¦¿à¦¸à§à¦®à§‡à¦°-আকà§à¦•à¦¾à¦¦à§€à¦¯à¦¼ কীলকরূপউইকাইগানিতিক চিহà§à¦¨à¦ªà§à¦°à¦¤" + - "ীকসমà§à¦¹à¦…লিখিতসাধারনঅজানা লিপি" - -// Size: 354 bytes, 165 elements -var bnScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000c, 0x0018, 0x0033, 0x0048, 0x005a, - 0x005a, 0x005a, 0x0069, 0x0078, 0x0099, 0x00b1, 0x00c9, 0x00db, - 0x00e7, 0x00f6, 0x0105, 0x0186, 0x01a4, 0x01b3, 0x01c5, 0x01d4, - 0x01e9, 0x020a, 0x021f, 0x0276, 0x028e, 0x02a3, 0x02a3, 0x02ce, - 0x02ff, 0x0339, 0x0339, 0x0351, 0x037c, 0x0397, 0x03b8, 0x03c7, - 0x03c7, 0x03d6, 0x03eb, 0x0403, 0x0418, 0x0427, 0x043f, 0x0464, - 0x0492, 0x04a4, 0x04bc, 0x04bc, 0x04d2, 0x0510, 0x0541, 0x0553, - 0x0578, 0x058d, 0x059f, 0x059f, 0x05b8, 0x05d0, 0x05e5, 0x05f1, - // Entry 40 - 7F - 0x05f1, 0x0606, 0x061e, 0x061e, 0x062d, 0x063f, 0x0648, 0x0679, - 0x06a4, 0x06b9, 0x06cb, 0x06dd, 0x06f9, 0x0718, 0x0718, 0x0718, - 0x0733, 0x074e, 0x074e, 0x0772, 0x0790, 0x07c7, 0x07c7, 0x07c7, - 0x07df, 0x07fd, 0x07fd, 0x081b, 0x0824, 0x0824, 0x0849, 0x0864, - 0x0864, 0x0864, 0x0864, 0x0870, 0x0870, 0x087c, 0x088f, 0x08a1, - 0x08b6, 0x08ce, 0x08ce, 0x08ce, 0x08f9, 0x090f, 0x092e, 0x0953, - 0x0978, 0x0990, 0x09b8, 0x09d3, 0x09ee, 0x0a12, 0x0a21, 0x0a36, - 0x0a48, 0x0a48, 0x0a63, 0x0a7f, 0x0a97, 0x0a97, 0x0a97, 0x0a97, - // Entry 80 - BF - 0x0aa9, 0x0aa9, 0x0ac4, 0x0ae6, 0x0afe, 0x0b3e, 0x0b81, 0x0bc1, - 0x0bdf, 0x0bdf, 0x0bee, 0x0c0b, 0x0c1a, 0x0c1a, 0x0c36, 0x0c48, - 0x0c66, 0x0c7b, 0x0c8d, 0x0c99, 0x0ca2, 0x0cb7, 0x0cb7, 0x0ccf, - 0x0cd8, 0x0cfd, 0x0cfd, 0x0cfd, 0x0d25, 0x0d66, 0x0d6c, 0x0d75, - 0x0d9a, 0x0db8, 0x0dca, 0x0ddc, 0x0df8, -} - -// Size: 1535 bytes -var caScriptStr string = "" + - "afakaàrabarameu imperialarmeniavèsticbalinèsbamumbassa vahbatakbengalísí" + - "mbols Blissbopomofobrahmibraillebuginèsbuhidchakmasíl·labes dels aboríge" + - "ns canadencs unificatscariàchamcherokeecirthcoptexipriotaciríl·licciríl·" + - "lic de l’antic eslau eclesiàsticdevanagarideserettaquigrafia Duployédemò" + - "tic egipcihieràtic egipcijeroglífic egipcietiòpicgeorgià hucurigeorgiàgl" + - "agolíticgòticgranthagrecgujaratigurmukhihangulhanhanunoohan simplificath" + - "an tradicionalhebreuhiraganajeroglífic anatolipahawh hmongkatakana o hir" + - "aganahongarès anticescriptura de la vall de l’Induscursiva antigajavanès" + - "japonèsjürchenkayah likatakanakharosthikhmerkhojakannadacoreàkpellekaith" + - "ilannalaollatí frakturllatí gaèlicllatílepchalimbulineal Alineal Blisulo" + - "malicilidimandaicmaniqueujeroglífics maiesmendecursiva meroíticameroític" + - "malaiàlammongolmoonmromanipuríbirmàantic nord-aràbicnabateugeban’Konü sh" + - "uoghamsantaliorkhonoriyaosmanyapalmirèantic pèrmicphagspapahlavi inscrip" + - "cionalpsalter pahlavipahlavifenicipollard miaoparthià inscripcionalrejan" + - "grongo-rongorúnicsamaritàsaratisud-aràbic anticsaurashtraescriptura de s" + - "ignesshaviàshradadevangarisingalèssora sompengsundanèssyloti nagrisiríac" + - "siríac estrangelosiríac occidentalsiríac orientaltagbanwatakritai lenou " + - "tai luetàmiltanguttai viettelugutengwartifinaghtagàlogthaanatailandèstib" + - "etàtirhutugaríticvaillenguatge visiblevarang kshitiwoleaipersa anticcune" + - "ïforme sumeri-accadiyiheretatnotació matemàticasímbolssense escripturac" + - "omúescriptura desconeguda" - -// Size: 354 bytes, 165 elements -var caScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0005, 0x0005, 0x000a, 0x0019, 0x001f, 0x0027, 0x002f, - 0x0034, 0x003d, 0x0042, 0x004a, 0x0058, 0x0060, 0x0066, 0x006d, - 0x0075, 0x007a, 0x0080, 0x00af, 0x00b5, 0x00b9, 0x00c1, 0x00c6, - 0x00cb, 0x00d3, 0x00de, 0x0109, 0x0113, 0x011a, 0x012e, 0x013d, - 0x014d, 0x015f, 0x015f, 0x0167, 0x0176, 0x017e, 0x0189, 0x018f, - 0x0196, 0x019a, 0x01a2, 0x01aa, 0x01b0, 0x01b3, 0x01ba, 0x01c9, - 0x01d8, 0x01de, 0x01e6, 0x01f9, 0x0205, 0x0218, 0x0227, 0x0249, - 0x0257, 0x025f, 0x0267, 0x026f, 0x0277, 0x027f, 0x0288, 0x028d, - // Entry 40 - 7F - 0x0292, 0x0299, 0x029f, 0x02a5, 0x02ab, 0x02b0, 0x02b3, 0x02c1, - 0x02cf, 0x02d5, 0x02db, 0x02e0, 0x02e8, 0x02f0, 0x02f4, 0x02f8, - 0x02fc, 0x0300, 0x0300, 0x0307, 0x030f, 0x0321, 0x0326, 0x0338, - 0x0341, 0x034b, 0x034b, 0x0351, 0x0355, 0x0358, 0x0361, 0x0367, - 0x0379, 0x0380, 0x0384, 0x038a, 0x0391, 0x0396, 0x039d, 0x03a3, - 0x03a8, 0x03af, 0x03b7, 0x03b7, 0x03c4, 0x03cb, 0x03e0, 0x03ef, - 0x03f6, 0x03fc, 0x0408, 0x041e, 0x0424, 0x042f, 0x0435, 0x043e, - 0x0444, 0x0455, 0x045f, 0x0473, 0x047a, 0x0480, 0x0480, 0x0489, - // Entry 80 - BF - 0x0492, 0x049e, 0x04a7, 0x04b3, 0x04ba, 0x04cc, 0x04de, 0x04ee, - 0x04f6, 0x04fb, 0x0501, 0x050c, 0x0512, 0x0518, 0x0520, 0x0526, - 0x052d, 0x0535, 0x053d, 0x0543, 0x054d, 0x0554, 0x055a, 0x0563, - 0x0566, 0x0578, 0x0585, 0x058b, 0x0596, 0x05af, 0x05b1, 0x05b8, - 0x05cc, 0x05d4, 0x05e4, 0x05e9, 0x05ff, -} - -// Size: 1891 bytes -var csScriptStr string = "" + - "afakakavkazskoalbánskéarabskéaramejské (imperiální)arménskéavestánskébal" + - "ijskébamumskébassa vahbatackébengálskéBlissovo písmobopomofobráhmíBraill" + - "ovo písmobuginskébuhidskéÄakmaslabiÄné písmo kanadských domorodcůkarijsk" + - "éÄamÄerokíkirtkoptskékyperskécyrilicecyrilce - staroslovÄ›nskádévanágárí" + - "deseretDuployého tÄ›snopisegyptské démotickéegyptské hieratickéegyptské h" + - "ieroglyfyelbasanskéetiopskégruzínské chutsurigruzínskéhlaholicegotickégr" + - "anthaÅ™eckégudžarátígurmukhihangulhanhanunóohan (zjednoduÅ¡ené)han (tradiÄ" + - "ní)hebrejskéhiraganaanatolské hieroglyfyhmongskéjaponské slabiÄnéstaroma" + - "ÄarskéharappskéetruskéjavánskéjaponskédžürÄenskékayah likatakanakháróšt" + - "híkhmerskéchodžikikannadskékorejskékpellekaithilannalaoskélatinka - lome" + - "nálatinka - galskálatinkalepÄskélimbulineární Alineární BFraserovolomalý" + - "kijskélýdskémahádžanímandejskémanichejskémayské hieroglyfymendskémeroiti" + - "cké psacímeroitickémalajlámskémodímongolskéMoonovomromejtej majek (manip" + - "urské)myanmarskéstaroseveroarabskénabatejskénaxi geban’konü-Å¡uogamskésan" + - "tálské (ol chiki)orchonskéurijskéosmansképalmýrsképau cin haustaropermsk" + - "éphags-papahlavské klínovépahlavské žalmovépahlavské knižnífénickéPolla" + - "rdova fonetická abecedaparthské klínovéredžanskérongorongorunovésamaÅ™ské" + - "saratistarojihoarabskésaurášterskéSignWritingShawova abecedašáradásiddha" + - "mchudábádísinhálskésora sompengsundskésylhetskésyrskésyrské - estrangelo" + - "syrské - západnísyrské - východnítagbanwatakrítai letai lü novétamilskét" + - "anguttai viettelugskétengwarberberskétagalskéthaanathajskétibetskétirhut" + - "augaritské klínovévaividitelná Å™eÄvarang kÅ¡itikarolínské (woleai)starope" + - "rské klínové písmosumero-akkadské klínové písmoyimatematický zápissymbol" + - "ybez zápisuobecnéneznámé písmo" - -// Size: 354 bytes, 165 elements -var csScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0005, 0x0018, 0x0020, 0x0039, 0x0043, 0x004f, 0x0058, - 0x0061, 0x006a, 0x0072, 0x007d, 0x008c, 0x0094, 0x009c, 0x00ac, - 0x00b5, 0x00be, 0x00c4, 0x00ec, 0x00f5, 0x00f9, 0x0101, 0x0105, - 0x010d, 0x0116, 0x011e, 0x0138, 0x0146, 0x014d, 0x0161, 0x0176, - 0x018b, 0x019f, 0x01aa, 0x01b3, 0x01c7, 0x01d2, 0x01db, 0x01e3, - 0x01ea, 0x01f1, 0x01fd, 0x0205, 0x020b, 0x020e, 0x0216, 0x022a, - 0x023a, 0x0244, 0x024c, 0x0261, 0x026a, 0x027e, 0x028d, 0x0297, - 0x029f, 0x02a9, 0x02b2, 0x02c0, 0x02c8, 0x02d0, 0x02dd, 0x02e6, - // Entry 40 - 7F - 0x02ef, 0x02f9, 0x0302, 0x0308, 0x030e, 0x0313, 0x031a, 0x032b, - 0x033c, 0x0343, 0x034c, 0x0351, 0x035d, 0x0369, 0x0372, 0x0376, - 0x0380, 0x0388, 0x0394, 0x039e, 0x03aa, 0x03bc, 0x03c4, 0x03d6, - 0x03e1, 0x03ee, 0x03f3, 0x03fd, 0x0404, 0x0407, 0x0421, 0x042c, - 0x043f, 0x044a, 0x0453, 0x0459, 0x0460, 0x0468, 0x047e, 0x0488, - 0x0490, 0x0499, 0x04a4, 0x04af, 0x04bc, 0x04c4, 0x04d8, 0x04ec, - 0x04ff, 0x0508, 0x0525, 0x0538, 0x0543, 0x054d, 0x0554, 0x055e, - 0x0564, 0x0575, 0x0584, 0x058f, 0x059e, 0x05a7, 0x05ae, 0x05ba, - // Entry 80 - BF - 0x05c5, 0x05d1, 0x05d9, 0x05e3, 0x05ea, 0x05fe, 0x0611, 0x0625, - 0x062d, 0x0633, 0x0639, 0x0646, 0x064f, 0x0655, 0x065d, 0x0666, - 0x066d, 0x0677, 0x0680, 0x0686, 0x068e, 0x0697, 0x069e, 0x06b2, - 0x06b5, 0x06c5, 0x06d2, 0x06e7, 0x0704, 0x0725, 0x0727, 0x0727, - 0x073a, 0x0741, 0x074c, 0x0753, 0x0763, -} - -// Size: 1443 bytes -var daScriptStr string = "" + - "afakaarabiskarmiarmenskavestanskbalinesiskbamumbassabatakbengaliblissymb" + - "olerbopomofobramiskbrailleskriftbuginesiskbuhidcakmoprindelige canadiske" + - " symbolerkarianskchamcherokeecirtkoptiskcypriotiskkyrilliskkyrillisk - o" + - "ldkirkeslavisk variantdevanagarideseretDuploya-stenografiegyptisk demoti" + - "skegyptisk hieratiskegyptiske hieroglyfferetiopiskgeorgisk kutsurigeorgi" + - "skglagolitiskgotiskgranthagræskgujaratigurmukhihangulhanhanunooforenklet" + - " hantraditionelt hanhebraiskhiraganaanatolske hieroglyfferpahawh hmongka" + - "takana eller hiraganaoldungarskindusOlditaliskjavanesiskjapanskjurchenka" + - "ya likatakanakharoshtikhmerkhojkikannadakoreanskkpellekthilannalaolatins" + - "k - frakturvariantlatinsk - gælisk variantlatinsklepchalimbulineær Aline" + - "ær Blisulomalykisklydiskmandaiskmanikæiskmayahieroglyffermendemetroitis" + - "k sammenhængendemeroitiskmalayalammongolskmoonmroomeitei-mayekburmesiskg" + - "ammelt nordarabisknabateisknakhi geban’konüshuoghamol-chikiorkhonoriyaos" + - "manniskpalmyrenskoldpermiskphags-paphliphlppahlavifønikiskpollardtegnprt" + - "irejangrongo-rongorunersamaritansksaratioldsørarabisksaurashtrategnskrif" + - "tshavisksharadakhudawadisingalesisksorasundanesisksyloti nagrisyrisksyri" + - "sk - estrangelovariantvestsyriskøstsyriakisktagbanwatakritai letai lueta" + - "milsktanguttavttelugutengwartifinaghtagalogthaanathailandsktibetansktirh" + - "utaugaritiskvaisynlig talevarang kshitiwoleaioldpersisksumero-akkadisk c" + - "uneiformyiarvetzmthzsymuden skriftsprogfællesukendt skriftsprog" - -// Size: 354 bytes, 165 elements -var daScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0005, 0x0005, 0x000c, 0x0010, 0x0017, 0x0020, 0x002a, - 0x002f, 0x0034, 0x0039, 0x0040, 0x004c, 0x0054, 0x005b, 0x0068, - 0x0072, 0x0077, 0x007b, 0x0099, 0x00a1, 0x00a5, 0x00ad, 0x00b1, - 0x00b8, 0x00c2, 0x00cb, 0x00ee, 0x00f8, 0x00ff, 0x0111, 0x0122, - 0x0134, 0x014a, 0x014a, 0x0152, 0x0162, 0x016a, 0x0175, 0x017b, - 0x0182, 0x0188, 0x0190, 0x0198, 0x019e, 0x01a1, 0x01a8, 0x01b5, - 0x01c5, 0x01cd, 0x01d5, 0x01eb, 0x01f7, 0x020e, 0x0218, 0x021d, - 0x0227, 0x0231, 0x0238, 0x023f, 0x0246, 0x024e, 0x0257, 0x025c, - // Entry 40 - 7F - 0x0262, 0x0269, 0x0271, 0x0277, 0x027b, 0x0280, 0x0283, 0x029b, - 0x02b4, 0x02bb, 0x02c1, 0x02c6, 0x02cf, 0x02d8, 0x02dc, 0x02e0, - 0x02e6, 0x02ec, 0x02ec, 0x02f4, 0x02fe, 0x030e, 0x0313, 0x032d, - 0x0336, 0x033f, 0x033f, 0x0347, 0x034b, 0x034f, 0x035b, 0x0364, - 0x0377, 0x0380, 0x038a, 0x0390, 0x0396, 0x039b, 0x03a3, 0x03a9, - 0x03ae, 0x03b7, 0x03c1, 0x03c1, 0x03cb, 0x03d3, 0x03d7, 0x03db, - 0x03e2, 0x03eb, 0x03f6, 0x03fa, 0x0400, 0x040b, 0x0410, 0x041b, - 0x0421, 0x042f, 0x0439, 0x0443, 0x044a, 0x0451, 0x0451, 0x045a, - // Entry 80 - BF - 0x0465, 0x0469, 0x0474, 0x0480, 0x0486, 0x04a0, 0x04aa, 0x04b7, - 0x04bf, 0x04c4, 0x04ca, 0x04d1, 0x04d8, 0x04de, 0x04e2, 0x04e8, - 0x04ef, 0x04f7, 0x04fe, 0x0504, 0x050e, 0x0517, 0x051e, 0x0527, - 0x052a, 0x0535, 0x0542, 0x0548, 0x0552, 0x056b, 0x056d, 0x0572, - 0x0576, 0x057a, 0x058a, 0x0591, 0x05a3, -} - -// Size: 1682 bytes -var deScriptStr string = "" + - "AfakaKaukasisch-AlbanischArabischArmiArmenischAvestischBalinesischBamunB" + - "assaBattakischBengalischBliss-SymboleBopomofoBrahmiBlindenschriftBugines" + - "ischBuhidChakmaUCASKarischChamCherokeeCirthKoptischZypriotischKyrillisch" + - "AltkirchenslawischDevanagariDeseretDuployanischÄgyptisch - DemotischÄgyp" + - "tisch - HieratischÄgyptische HieroglyphenElbasanischÄthiopischKhutsuriGe" + - "orgischGlagolitischGotischGranthaGriechischGujaratiGurmukhiHangulChinesi" + - "schHanunooVereinfachtes ChinesischTraditionelles ChinesischHebräischHira" + - "ganaHieroglyphen-LuwischPahawh HmongKatakana oder HiraganaAltungarischIn" + - "dus-SchriftAltitalischJavanesischJapanischJurchenKayah LiKatakanaKharosh" + - "thiKhmerKhojkiKannadaKoreanischKpelleKaithiLannaLaotischLateinisch - Fra" + - "ktur-VarianteLateinisch - Gälische VarianteLateinischLepchaLimbuLinear A" + - "Linear BFraserLomaLykischLydischMahajaniMandäischManichäischMaya-Hierogl" + - "yphenMendeMeroitisch kursivMeroitischMalayalamModiMongolischMoonMroMeite" + - "i MayekBirmanischAltnordarabischNabatäischGebaN’KoFrauenschriftOghamOl C" + - "hikiOrchon-RunenOriyaOsmanischPalmyrenischPau Cin HauAltpermischPhags-pa" + - "Buch-PahlaviPsalter-PahlaviPahlaviPhönizischPollard PhonetischParthischR" + - "ejangRongorongoRunenschriftSamaritanischSaratiAltsüdarabischSaurashtraGe" + - "bärdenspracheShaw-AlphabetSharadaSiddhamKhudawadiSinghalesischSora Sompe" + - "ngSundanesischSyloti NagriSyrischSyrisch - Estrangelo-VarianteWestsyrisc" + - "hOstsyrischTagbanwaTakriTai LeTai LueTamilischXixiaTai-VietTeluguTengwar" + - "TifinaghTagalogThaanaThaiTibetischTirhutaUgaritischVaiSichtbare SpracheV" + - "arang KshitiWoleaianischAltpersischSumerisch-akkadische KeilschriftYiGee" + - "rbter SchriftwertMathematische NotationSymboleSchriftlosUnbestimmtUnbeka" + - "nnte Schrift" - -// Size: 354 bytes, 165 elements -var deScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0005, 0x0019, 0x0021, 0x0025, 0x002e, 0x0037, 0x0042, - 0x0047, 0x004c, 0x0056, 0x0060, 0x006d, 0x0075, 0x007b, 0x0089, - 0x0094, 0x0099, 0x009f, 0x00a3, 0x00aa, 0x00ae, 0x00b6, 0x00bb, - 0x00c3, 0x00ce, 0x00d8, 0x00ea, 0x00f4, 0x00fb, 0x0107, 0x011d, - 0x0134, 0x014c, 0x0157, 0x0162, 0x016a, 0x0173, 0x017f, 0x0186, - 0x018d, 0x0197, 0x019f, 0x01a7, 0x01ad, 0x01b7, 0x01be, 0x01d6, - 0x01ef, 0x01f9, 0x0201, 0x0215, 0x0221, 0x0237, 0x0243, 0x0250, - 0x025b, 0x0266, 0x026f, 0x0276, 0x027e, 0x0286, 0x0290, 0x0295, - // Entry 40 - 7F - 0x029b, 0x02a2, 0x02ac, 0x02b2, 0x02b8, 0x02bd, 0x02c5, 0x02e2, - 0x0301, 0x030b, 0x0311, 0x0316, 0x031e, 0x0326, 0x032c, 0x0330, - 0x0337, 0x033e, 0x0346, 0x0350, 0x035c, 0x036d, 0x0372, 0x0383, - 0x038d, 0x0396, 0x039a, 0x03a4, 0x03a8, 0x03ab, 0x03b7, 0x03c1, - 0x03d0, 0x03db, 0x03df, 0x03e5, 0x03f2, 0x03f7, 0x03ff, 0x040b, - 0x0410, 0x0419, 0x0425, 0x0430, 0x043b, 0x0443, 0x044f, 0x045e, - 0x0465, 0x0470, 0x0482, 0x048b, 0x0491, 0x049b, 0x04a7, 0x04b4, - 0x04ba, 0x04c9, 0x04d3, 0x04e3, 0x04f0, 0x04f7, 0x04fe, 0x0507, - // Entry 80 - BF - 0x0514, 0x0520, 0x052c, 0x0538, 0x053f, 0x055c, 0x0567, 0x0571, - 0x0579, 0x057e, 0x0584, 0x058b, 0x0594, 0x0599, 0x05a1, 0x05a7, - 0x05ae, 0x05b6, 0x05bd, 0x05c3, 0x05c7, 0x05d0, 0x05d7, 0x05e1, - 0x05e4, 0x05f5, 0x0602, 0x060e, 0x0619, 0x0639, 0x063b, 0x064f, - 0x0665, 0x066c, 0x0676, 0x0680, 0x0692, -} - -// Size: 2637 bytes -var elScriptStr string = "" + - "ΑÏαβικόΑυτοκÏατοÏικό ΑÏαμαϊκόΑÏμενικόΑβεστάνΜπαλινίζΜπατάκΜπενγκάλιΣÏμβο" + - "λα BlissΜποπομόφοΜπÏαχμίΜπÏάιγΜποÏγκιςΜπουχίντΤσάκμαΕνοποιημένοι Καναδε" + - "ζικοί Συλλαβισμοί ΙθαγενώνΚαÏιάνΤσαμΤσεÏόκιΣεÏθΚοπτικόΚυπÏιακόΚυÏιλλικό" + - "Παλαιό Εκκλησιαστικό Σλαβικό ΚυÏιλλικόÎτεβαναγκάÏιÎτεσεÏέΛαϊκό Αιγυπτια" + - "κόΙεÏατικό ΑιγυπτιακόΑιγυπτιακά ΙεÏογλυφικάΑιθιοπικόΓεωÏγιανό ΚχουτσοÏÏ" + - "ιΓεωÏγιανόΓκλαγκολιτικόΓοτθικόΕλληνικόΓκουγιαÏάτιΓκουÏμουκχίΧανγκοÏλΧαν" + - "ΧανοÏνουΑπλοποιημένο ΧανΠαÏαδοσιακό ΧανΕβÏαϊκόΧιÏαγκάναΠαχάχ ΧμονγκΚατα" + - "κάνα ή ΧιÏαγκάναΠαλαιό ΟυγγÏικόΊνδουςΠαλαιό ΙταλικόΙαβανεζικόΙαπωνικόΚα" + - "γιάχ ΛιΚατακάναΚαÏόσθιΧμεÏΚανάνταΚοÏεατικόΚαϊθίΛάνναΛάοςΦÏÎ¬ÎºÏ„Î¿Ï…Ï Î›Î±Ï„Î¹Î½Î¹" + - "κόΓαελικό ΛατινικόΛατινικόΛέπτσαΛιμποÏΓÏαμμικό ΑΓÏαμμικό ΒΛυκιανικόΛυδι" + - "ανικόΜανδαϊκόΜανιχαϊκόΙεÏογλυφικά ΜάγιαΜεÏοϊτικόΜαλαγιάλαμΜογγολικόΜουν" + - "Μεϊτέι ΜάγεκΜιανμάÏÎ’ΚοΌγκχαμΟλ ΤσίκιΌÏκχονΟÏίγιαΟσμάνγιαΠαλαιό ΠεÏμικό" + - "Παγκς-παΕπιγÏαφικό Î Î±Ï‡Î»Î¬Î²Î¹Î¨Î¬Î»Ï„ÎµÏ Î Î±Ï‡Î»Î¬Î²Î¹ÎœÏ€Î¿Ï…Îº ΠαχλαβίΦοινικικόΦωνητικό " + - "ΠόλαÏντΕπιγÏαφικό ΠαÏθιάνΡετζάνγκΡονγκοÏόνγκοΡουνίκΣαμαÏιτικόΣαÏάθιΣαου" + - "ÏάστÏαÎοηματική γÏαφήΣαβιανόΣινχάλαΣουδανεζικόΣυλότι ÎάγκÏιΣυÏιακόΕστÏα" + - "ντζέλο ΣυÏιακόΔυτικό ΣυÏιακόΑνατολικό ΣυÏιακόΤαγκμάνγουαΤάι ΛεÎέο Τάι Λ" + - "οÏεΤαμίλΤάι ΒιέτΤελοÏγκουΤεγνγουάÏΤιφινάγκΤαγκαλόγκΘαανάΤαϊλανδικόΘιβετ" + - "ιανόΟυγκαÏιτικόΒάιΟÏατή ομιλίαΠαλαιό ΠεÏσικόΣοÏμεÏο-Ακάντιαν ΚουνεϊφόÏμ" + - "ΓιΚληÏονομημένοΜαθηματική παÏάστασηΣÏμβολαΆγÏαφοΚοινόΆγνωστη γÏαφή" - -// Size: 354 bytes, 165 elements -var elScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000e, 0x0039, 0x0049, 0x0057, 0x0067, - 0x0067, 0x0067, 0x0073, 0x0085, 0x0099, 0x00ab, 0x00b9, 0x00c5, - 0x00d5, 0x00e5, 0x00f1, 0x0148, 0x0154, 0x015c, 0x016a, 0x0172, - 0x0180, 0x0190, 0x01a2, 0x01eb, 0x0203, 0x0211, 0x0211, 0x0230, - 0x0255, 0x0280, 0x0280, 0x0292, 0x02b9, 0x02cb, 0x02e5, 0x02f3, - 0x02f3, 0x0303, 0x0319, 0x032f, 0x033f, 0x0345, 0x0355, 0x0374, - 0x0391, 0x039f, 0x03b1, 0x03b1, 0x03c8, 0x03ee, 0x040b, 0x0417, - 0x0432, 0x0446, 0x0456, 0x0456, 0x0467, 0x0477, 0x0485, 0x048d, - // Entry 40 - 7F - 0x048d, 0x049b, 0x04ad, 0x04ad, 0x04b7, 0x04c1, 0x04c9, 0x04ea, - 0x0509, 0x0519, 0x0525, 0x0531, 0x0544, 0x0557, 0x0557, 0x0557, - 0x0569, 0x057b, 0x057b, 0x058b, 0x059d, 0x05be, 0x05be, 0x05be, - 0x05d0, 0x05e4, 0x05e4, 0x05f6, 0x05fe, 0x05fe, 0x0615, 0x0623, - 0x0623, 0x0623, 0x0623, 0x062c, 0x062c, 0x0638, 0x0647, 0x0653, - 0x065f, 0x066f, 0x066f, 0x066f, 0x068a, 0x0699, 0x06bc, 0x06d7, - 0x06f0, 0x0702, 0x0721, 0x0744, 0x0754, 0x076c, 0x0778, 0x078c, - 0x0798, 0x0798, 0x07ac, 0x07c9, 0x07d7, 0x07d7, 0x07d7, 0x07d7, - // Entry 80 - BF - 0x07e5, 0x07e5, 0x07fb, 0x0814, 0x0822, 0x0847, 0x0862, 0x0883, - 0x0899, 0x0899, 0x08a4, 0x08ba, 0x08c4, 0x08c4, 0x08d3, 0x08e5, - 0x08f7, 0x0907, 0x0919, 0x0923, 0x0937, 0x0949, 0x0949, 0x095f, - 0x0965, 0x097c, 0x097c, 0x097c, 0x0997, 0x09cb, 0x09cf, 0x09e9, - 0x0a10, 0x0a1e, 0x0a2a, 0x0a34, 0x0a4d, -} - -// Size: 1514 bytes -var enScriptStr string = "" + - "AfakaCaucasian AlbanianArabicImperial AramaicArmenianAvestanBalineseBamu" + - "mBassa VahBatakBengaliBlissymbolsBopomofoBrahmiBrailleBugineseBuhidChakm" + - "aUnified Canadian Aboriginal SyllabicsCarianChamCherokeeCirthCopticCypri" + - "otCyrillicOld Church Slavonic CyrillicDevanagariDeseretDuployan shorthan" + - "dEgyptian demoticEgyptian hieraticEgyptian hieroglyphsElbasanEthiopicGeo" + - "rgian KhutsuriGeorgianGlagoliticGothicGranthaGreekGujaratiGurmukhiHangul" + - "HanHanunooSimplified HanTraditional HanHebrewHiraganaAnatolian Hieroglyp" + - "hsPahawh HmongJapanese syllabariesOld HungarianIndusOld ItalicJavaneseJa" + - "paneseJurchenKayah LiKatakanaKharoshthiKhmerKhojkiKannadaKoreanKpelleKai" + - "thiLannaLaoFraktur LatinGaelic LatinLatinLepchaLimbuLinear ALinear BFras" + - "erLomaLycianLydianMahajaniMandaeanManichaeanMayan hieroglyphsMendeMeroit" + - "ic CursiveMeroiticMalayalamModiMongolianMoonMroMeitei MayekMyanmarOld No" + - "rth ArabianNabataeanNaxi GebaN’KoNüshuOghamOl ChikiOrkhonOriyaOsmanyaPal" + - "myrenePau Cin HauOld PermicPhags-paInscriptional PahlaviPsalter PahlaviB" + - "ook PahlaviPhoenicianPollard PhoneticInscriptional ParthianRejangRongoro" + - "ngoRunicSamaritanSaratiOld South ArabianSaurashtraSignWritingShavianShar" + - "adaSiddhamKhudawadiSinhalaSora SompengSundaneseSyloti NagriSyriacEstrang" + - "elo SyriacWestern SyriacEastern SyriacTagbanwaTakriTai LeNew Tai LueTami" + - "lTangutTai VietTeluguTengwarTifinaghTagalogThaanaThaiTibetanTirhutaUgari" + - "ticVaiVisible SpeechVarang KshitiWoleaiOld PersianSumero-Akkadian Cuneif" + - "ormYiInheritedMathematical NotationSymbolsUnwrittenCommonUnknown Script" - -// Size: 354 bytes, 165 elements -var enScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0005, 0x0017, 0x001d, 0x002d, 0x0035, 0x003c, 0x0044, - 0x0049, 0x0052, 0x0057, 0x005e, 0x0069, 0x0071, 0x0077, 0x007e, - 0x0086, 0x008b, 0x0091, 0x00b6, 0x00bc, 0x00c0, 0x00c8, 0x00cd, - 0x00d3, 0x00da, 0x00e2, 0x00fe, 0x0108, 0x010f, 0x0121, 0x0131, - 0x0142, 0x0156, 0x015d, 0x0165, 0x0176, 0x017e, 0x0188, 0x018e, - 0x0195, 0x019a, 0x01a2, 0x01aa, 0x01b0, 0x01b3, 0x01ba, 0x01c8, - 0x01d7, 0x01dd, 0x01e5, 0x01fa, 0x0206, 0x021a, 0x0227, 0x022c, - 0x0236, 0x023e, 0x0246, 0x024d, 0x0255, 0x025d, 0x0267, 0x026c, - // Entry 40 - 7F - 0x0272, 0x0279, 0x027f, 0x0285, 0x028b, 0x0290, 0x0293, 0x02a0, - 0x02ac, 0x02b1, 0x02b7, 0x02bc, 0x02c4, 0x02cc, 0x02d2, 0x02d6, - 0x02dc, 0x02e2, 0x02ea, 0x02f2, 0x02fc, 0x030d, 0x0312, 0x0322, - 0x032a, 0x0333, 0x0337, 0x0340, 0x0344, 0x0347, 0x0353, 0x035a, - 0x036b, 0x0374, 0x037d, 0x0383, 0x0389, 0x038e, 0x0396, 0x039c, - 0x03a1, 0x03a8, 0x03b1, 0x03bc, 0x03c6, 0x03ce, 0x03e3, 0x03f2, - 0x03fe, 0x0408, 0x0418, 0x042e, 0x0434, 0x043e, 0x0443, 0x044c, - 0x0452, 0x0463, 0x046d, 0x0478, 0x047f, 0x0486, 0x048d, 0x0496, - // Entry 80 - BF - 0x049d, 0x04a9, 0x04b2, 0x04be, 0x04c4, 0x04d5, 0x04e3, 0x04f1, - 0x04f9, 0x04fe, 0x0504, 0x050f, 0x0514, 0x051a, 0x0522, 0x0528, - 0x052f, 0x0537, 0x053e, 0x0544, 0x0548, 0x054f, 0x0556, 0x055e, - 0x0561, 0x056f, 0x057c, 0x0582, 0x058d, 0x05a6, 0x05a8, 0x05b1, - 0x05c6, 0x05cd, 0x05d6, 0x05dc, 0x05ea, -} - -// Size: 1165 bytes -var esScriptStr string = "" + - "árabearmenioavésticobalinésbatakbengalísímbolos blisbopomofobrahmibraill" + - "ebuginésbuhidsímbolos aborígenes canadienses unificadoscariochamcherokee" + - "cirthcoptochipriotacirílicocirílico del antiguo eslavo eclesiásticodevan" + - "agarideseretegipcio demóticoegipcio hieráticojeroglíficos egipciosetiópi" + - "cogeorgiano eclesiásticogeorgianoglagolíticogóticogriegogujaratigurmujih" + - "angulhanhanunoohan simplificadohan tradicionalhebreohiraganapahawh hmong" + - "katakana o hiraganahúngaro antiguoIndio (harappan)antigua bastardillajav" + - "anésjaponéskayah likatakanakharosthijemercanaréscoreanolannalaolatino fr" + - "akturlatino gaélicolatínlepchalimbulineal Alineal Bliciolidiomandeojerog" + - "líficos mayasmeroíticomalayálammongolmoonmanipuribirmanon’kooghamol ciki" + - "orkhonoriyaosmaniyapermiano antiguophags-pafenicioPollard Miaorejangrong" + - "o-rongorúnicosaratisaurashtraSignWritingshavianocingaléssundanéssyloti n" + - "agrisiriacosiriaco estrangelosiriaco occidentalsiriaco orientaltagbanúat" + - "ai lenuevo tai luetamiltelugutengwartifinaghtagalothaanatailandéstibetan" + - "ougaríticovailenguaje visiblepersa antiguocuneiforme sumerio-acadioyiher" + - "edadosímbolosno escritocomúnalfabeto desconocido" - -// Size: 354 bytes, 165 elements -var esScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x000d, 0x0016, 0x001e, - 0x001e, 0x001e, 0x0023, 0x002b, 0x0039, 0x0041, 0x0047, 0x004e, - 0x0056, 0x005b, 0x005b, 0x0087, 0x008c, 0x0090, 0x0098, 0x009d, - 0x00a2, 0x00ab, 0x00b4, 0x00de, 0x00e8, 0x00ef, 0x00ef, 0x0100, - 0x0112, 0x0128, 0x0128, 0x0131, 0x0148, 0x0151, 0x015d, 0x0164, - 0x0164, 0x016a, 0x0172, 0x0179, 0x017f, 0x0182, 0x0189, 0x0199, - 0x01a8, 0x01ae, 0x01b6, 0x01b6, 0x01c2, 0x01d5, 0x01e5, 0x01f5, - 0x0208, 0x0210, 0x0218, 0x0218, 0x0220, 0x0228, 0x0231, 0x0236, - // Entry 40 - 7F - 0x0236, 0x023e, 0x0245, 0x0245, 0x0245, 0x024a, 0x024d, 0x025b, - 0x026a, 0x0270, 0x0276, 0x027b, 0x0283, 0x028b, 0x028b, 0x028b, - 0x0290, 0x0295, 0x0295, 0x029b, 0x029b, 0x02ae, 0x02ae, 0x02ae, - 0x02b8, 0x02c2, 0x02c2, 0x02c8, 0x02cc, 0x02cc, 0x02d4, 0x02db, - 0x02db, 0x02db, 0x02db, 0x02e1, 0x02e1, 0x02e6, 0x02ed, 0x02f3, - 0x02f8, 0x0300, 0x0300, 0x0300, 0x0310, 0x0318, 0x0318, 0x0318, - 0x0318, 0x031f, 0x032b, 0x032b, 0x0331, 0x033c, 0x0343, 0x0343, - 0x0349, 0x0349, 0x0353, 0x035e, 0x0366, 0x0366, 0x0366, 0x0366, - // Entry 80 - BF - 0x036f, 0x036f, 0x0378, 0x0384, 0x038b, 0x039d, 0x03af, 0x03bf, - 0x03c8, 0x03c8, 0x03ce, 0x03db, 0x03e0, 0x03e0, 0x03e0, 0x03e6, - 0x03ed, 0x03f5, 0x03fb, 0x0401, 0x040b, 0x0413, 0x0413, 0x041d, - 0x0420, 0x0430, 0x0430, 0x0430, 0x043d, 0x0456, 0x0458, 0x0460, - 0x0460, 0x0469, 0x0473, 0x0479, 0x048d, -} - -// Size: 1025 bytes -var etScriptStr string = "" + - "araabiaarmeeniabalibatakibengaliBlissi sümbolidbopomofobrahmipunktkiribu" + - "gibuhidiKanada põlisrahvaste ühtlustatud silpkiritÅ¡amitÅ¡erokiicirthkopti" + - "muinasküprosekirillitsakirikuslaavi kirillitsadevanaagarideseretegiptuse" + - " demootilineegiptuse hieraatilineegiptuse hieroglüüfkirietioopiagruusia " + - "hutsurigruusiaglagoolitsagootikreekagudžaratigurmukhihangulihiina hanhan" + - "unoolihtsustatud hantraditsiooniline hanheebreahiraganakatakana või hira" + - "ganavanaungariindusevanaitalijaavajaapanikaja likatakanakharoshthikhmeer" + - "ikannadakoreanilaoladina fraktuurkiriladina keldi kiriladinaleptÅ¡alimbul" + - "ineaar-Alineaar-Bmandeamaaja hieroglüüfkirimeroemalajalamimongolibirmank" + - "ooogamorhonioriaosmanjavanapermiphags-pafoiniikiaPollardi miaorongorongo" + - "ruunikirisaratiShaw tähestiksingalisilotinagriassüüriaassüüria estrangel" + - "olääneassüüriaidaassüüriatagbanwatai lelihtsustatud tai luetamilitelugut" + - "engwartifinagitagalogithaanataitiibetiugaritivaihäälduskirivanapärsiasum" + - "eri kiilkirijiipäritudsümbolidkirjakeeletaüldinemääramata" - -// Size: 354 bytes, 165 elements -var etScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x000f, 0x000f, 0x0013, - 0x0013, 0x0013, 0x0019, 0x0020, 0x0030, 0x0038, 0x003e, 0x0047, - 0x004b, 0x0051, 0x0051, 0x007c, 0x007c, 0x0082, 0x008b, 0x0090, - 0x0095, 0x00a3, 0x00ad, 0x00c4, 0x00cf, 0x00d6, 0x00d6, 0x00ea, - 0x00ff, 0x0118, 0x0118, 0x0120, 0x012f, 0x0136, 0x0141, 0x0146, - 0x0146, 0x014c, 0x0156, 0x015e, 0x0165, 0x016e, 0x0175, 0x0185, - 0x0199, 0x01a0, 0x01a8, 0x01a8, 0x01a8, 0x01be, 0x01c8, 0x01ce, - 0x01d7, 0x01dc, 0x01e3, 0x01e3, 0x01ea, 0x01f2, 0x01fc, 0x0203, - // Entry 40 - 7F - 0x0203, 0x020a, 0x0211, 0x0211, 0x0211, 0x0211, 0x0214, 0x0227, - 0x0238, 0x023e, 0x0245, 0x024a, 0x0253, 0x025c, 0x025c, 0x025c, - 0x025c, 0x025c, 0x025c, 0x0262, 0x0262, 0x0278, 0x0278, 0x0278, - 0x027d, 0x0287, 0x0287, 0x028e, 0x028e, 0x028e, 0x028e, 0x0293, - 0x0293, 0x0293, 0x0293, 0x0297, 0x0297, 0x029b, 0x029b, 0x02a1, - 0x02a5, 0x02ac, 0x02ac, 0x02ac, 0x02b5, 0x02bd, 0x02bd, 0x02bd, - 0x02bd, 0x02c6, 0x02d3, 0x02d3, 0x02d3, 0x02dd, 0x02e6, 0x02e6, - 0x02ec, 0x02ec, 0x02ec, 0x02ec, 0x02fa, 0x02fa, 0x02fa, 0x02fa, - // Entry 80 - BF - 0x0301, 0x0301, 0x0301, 0x030c, 0x0316, 0x032b, 0x033c, 0x0349, - 0x0351, 0x0351, 0x0357, 0x036b, 0x0371, 0x0371, 0x0371, 0x0377, - 0x037e, 0x0386, 0x038e, 0x0394, 0x0397, 0x039e, 0x039e, 0x03a5, - 0x03a8, 0x03b5, 0x03b5, 0x03b5, 0x03c0, 0x03cf, 0x03d2, 0x03da, - 0x03da, 0x03e3, 0x03ef, 0x03f6, 0x0401, -} - -// Size: 1856 bytes -var faScriptStr string = "" + - "آلبانیایی Ù‚Ùقازیعربیآرامی هخامنشیارمنیاوستاییبالیاییباتاکیبنگالینمادهای " + - "بلیسبوپوموÙوبراهمیبریلبوگیاییبوهیدچاکماییکاریچمیچروکیاییکرتقبطیقبرسیسیر" + - "یلیدوناگریدیسرتیکاهنی مصریهیروگلی٠مصریاتیوپیاییگرجی خوتسوریگرجیگلاگولی" + - "تیگوتییونانیگجراتیگورومخیهانگولهانهانونوییهان ساده\u200cشدههان سنتیعبری" + - "هیراگاناهیروگلی٠آناتولیسیلابی\u200cهای ژاپنیمجاری باستانایندوسایتالی ب" + - "استانجاوه\u200cایژاپنیکایالیکاتاکاناخمریخواجکیکاناده\u200cایکره\u200cای" + - "کثیلاناییلائوسیلاتینی Ùراکتورلاتینی گیلیلاتینیلیمباییخطی الÙخطی بلسیایی" + - "لدیاییمنده\u200cایمانویهیروگلی٠مایاییمروییتیمالایالامیمغولیمونیمایک Ù…ÛŒ" + - "تیمیانمارعربی شمالی باستاننبطیاوگامیاورخونیاوریه\u200cایپالمیراییپرمی ب" + - "استانپهلوی کتیبه\u200cایپهلوی زبوریپهلوی کتابیÙنیقیپارتی کتیبه\u200cایر" + - "جنگیرونیسامریساراتیعربی جنوبی باستانسوراشتراییشاویسینهالیسیلوتی نگاریسر" + - "یانیسریانی سطرنجیلیسریانی غربیسریانی شرقیتگبنواییتامیلیتلوگوییتنگوارتیÙ" + - "یناغیتاگالوگیتانه\u200cایتایلندیتبتیاوگاریتیویاییگÙتار قابل مشاهدهÙارسی" + - " باستانمیخی سومریâ€Ø§Ú©Ø¯ÛŒÛŒÛŒÙ…وروثیعلائم ریاضیعلائمنانوشتهمشترکخط نامشخص" - -// Size: 354 bytes, 165 elements -var faScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x001f, 0x0027, 0x0040, 0x004a, 0x0058, 0x0066, - 0x0066, 0x0066, 0x0072, 0x007e, 0x0095, 0x00a5, 0x00b1, 0x00b9, - 0x00c7, 0x00d1, 0x00df, 0x00df, 0x00e7, 0x00ed, 0x00fd, 0x0103, - 0x010b, 0x0115, 0x0121, 0x0121, 0x012f, 0x013b, 0x013b, 0x013b, - 0x014e, 0x0167, 0x0167, 0x0179, 0x0190, 0x0198, 0x01aa, 0x01b2, - 0x01b2, 0x01be, 0x01ca, 0x01d8, 0x01e4, 0x01ea, 0x01fa, 0x0212, - 0x0221, 0x0229, 0x0239, 0x0258, 0x0258, 0x0278, 0x028f, 0x029b, - 0x02b4, 0x02c3, 0x02cd, 0x02cd, 0x02d9, 0x02e9, 0x02e9, 0x02f1, - // Entry 40 - 7F - 0x02fd, 0x0310, 0x031d, 0x031d, 0x0323, 0x032f, 0x033b, 0x0356, - 0x036b, 0x0377, 0x0377, 0x0385, 0x0392, 0x039b, 0x039b, 0x039b, - 0x03a7, 0x03b3, 0x03b3, 0x03c2, 0x03cc, 0x03e9, 0x03e9, 0x03e9, - 0x03f7, 0x040b, 0x040b, 0x0415, 0x041d, 0x041d, 0x042e, 0x043c, - 0x045c, 0x0464, 0x0464, 0x0464, 0x0464, 0x0470, 0x0470, 0x047e, - 0x048f, 0x048f, 0x04a1, 0x04a1, 0x04b6, 0x04b6, 0x04d2, 0x04e7, - 0x04fc, 0x0506, 0x0506, 0x0522, 0x052c, 0x052c, 0x0534, 0x053e, - 0x054a, 0x056a, 0x057e, 0x057e, 0x0586, 0x0586, 0x0586, 0x0586, - // Entry 80 - BF - 0x0594, 0x0594, 0x0594, 0x05ab, 0x05b7, 0x05d4, 0x05e9, 0x05fe, - 0x060e, 0x060e, 0x060e, 0x060e, 0x061a, 0x061a, 0x061a, 0x0628, - 0x0634, 0x0644, 0x0654, 0x0663, 0x0671, 0x0679, 0x0679, 0x0689, - 0x0693, 0x06b3, 0x06b3, 0x06b3, 0x06ca, 0x06e8, 0x06ec, 0x06f8, - 0x070d, 0x0717, 0x0725, 0x072f, 0x0740, -} - -// Size: 2297 bytes -var fiScriptStr string = "" + - "afakakaukasianalbanialainenarabialainenvaltakunnanaramealainenarmenialai" + - "nenavestalainenbalilainenbamumbassabatakilainenbengalilainenbliss-symbol" + - "itbopomofobrahmibraille-pistekirjoitusbugilainenbuhidilainenchakmalainen" + - "kanadalaisten alkuperäiskansojen yhtenäistetty tavukirjoituskaarialainen" + - "tÅ¡amilainencherokeelainencirthkoptilainenmuinaiskyproslainenkyrillinenky" + - "rillinen muinaiskirkkoslaavimuunnelmadevanagarideseretDuployén pikakirjo" + - "itusegyptiläinen demoottinenegyptiläinen hieraattinenegyptiläiset hierog" + - "lyfitelbasanilainenetiopialainenmuinaisgeorgialainengeorgialainenglagoli" + - "ittinengoottilainengranthakreikkalainengudžaratilainengurmukhihangulkiin" + - "alainen hanhanunoolainenkiinalainen yksinkertaistettu hankiinalainen per" + - "inteinen hanheprealainenhiraganaanatolialaiset hieroglyfitpahawh hmonghi" + - "ragana tai katakanamuinaisunkarilaineninduslainenmuinaisitalialainenjaav" + - "alainenjapanilainendžurtÅ¡enkayah likatakanakharosthikhmeriläinenkhojkika" + - "nnadalainenkorealainenkpellekaithilannalaolainenlatinalainen fraktuuramu" + - "unnelmalatinalainen gaelimuunnelmalatinalainenlepchalainenlimbulainenlin" + - "eaari-Alineaari-BFraserin aakkosetlomalyykialainenlyydialainenmahajanila" + - "inenmandealainenmanikealainenmaya-hieroglyfitmendemeroiittinen kursiivik" + - "irjoitusmeroiittinenmalajalamilainenmodi-aakkosetmongolilainenmoon-kohok" + - "irjoitusmromeiteiburmalainenmuinaispohjoisarabialainennabatealainennaxi " + - "geban’konüshuogamol chikiorkhonorijalainenosmanjalainenpalmyralainenzotu" + - "allaimuinaispermiläinenphags-papiirtokirjoituspahlavilainenpsalttaripahl" + - "avilainenkirjapahlavilainenfoinikialainenPollardin foneettinenpiirtokirj" + - "oitusparthialainenrejangrongorongoriimukirjoitussamarianaramealainensara" + - "timuinaiseteläarabialainensaurashtraSignWritingshaw’lainenÅ¡aradasiddham-" + - "tavukirjoituskhudabadisinhalilainensorang sompengsundalainensyloti nagri" + - "syyrialainensyyrialainen estrangelo-muunnelmasyyrialainen läntinen muunn" + - "elmasyyrialainen itäinen muunnelmatagbanwalainentakritailelainenuusi tai" + - "luelainentamililainentanguttai viettelugulainentengwartifinaghtagalogila" + - "inenthaanathailainentiibetiläinentirhutaugaritilainenvailainennäkyvä puh" + - "evarang kshitiwoleaimuinaispersialainensumerilais-akkadilainen nuolenpää" + - "kirjoitusyiläinenperittymatemaattinensymbolitkirjoittamatonmäärittämätön" + - "tuntematon kirjoitusjärjestelmä" - -// Size: 354 bytes, 165 elements -var fiScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0005, 0x001b, 0x0027, 0x003e, 0x004b, 0x0057, 0x0061, - 0x0066, 0x006b, 0x0077, 0x0084, 0x0092, 0x009a, 0x00a0, 0x00b6, - 0x00c0, 0x00cc, 0x00d8, 0x0116, 0x0122, 0x012e, 0x013c, 0x0141, - 0x014c, 0x015f, 0x0169, 0x0190, 0x019a, 0x01a1, 0x01b8, 0x01d1, - 0x01eb, 0x0204, 0x0212, 0x021f, 0x0233, 0x0240, 0x024e, 0x025a, - 0x0261, 0x026e, 0x027e, 0x0286, 0x028c, 0x029b, 0x02a8, 0x02c9, - 0x02e4, 0x02f0, 0x02f8, 0x0312, 0x031e, 0x0333, 0x0346, 0x0351, - 0x0364, 0x036f, 0x037b, 0x0385, 0x038d, 0x0395, 0x039e, 0x03ab, - // Entry 40 - 7F - 0x03b1, 0x03be, 0x03c9, 0x03cf, 0x03d5, 0x03da, 0x03e3, 0x0402, - 0x041d, 0x0429, 0x0435, 0x0440, 0x044a, 0x0454, 0x0465, 0x0469, - 0x0475, 0x0481, 0x048f, 0x049b, 0x04a8, 0x04b8, 0x04bd, 0x04db, - 0x04e7, 0x04f7, 0x0504, 0x0511, 0x0523, 0x0526, 0x052c, 0x0537, - 0x0551, 0x055e, 0x0567, 0x056d, 0x0573, 0x0577, 0x057f, 0x0585, - 0x0590, 0x059d, 0x05aa, 0x05b3, 0x05c6, 0x05ce, 0x05ea, 0x0600, - 0x0612, 0x0620, 0x0635, 0x0651, 0x0657, 0x0661, 0x066f, 0x0683, - 0x0689, 0x06a2, 0x06ac, 0x06b7, 0x06c4, 0x06cb, 0x06e0, 0x06e9, - // Entry 80 - BF - 0x06f6, 0x0704, 0x070f, 0x071b, 0x0727, 0x0748, 0x0768, 0x0787, - 0x0795, 0x079a, 0x07a5, 0x07b6, 0x07c2, 0x07c8, 0x07d0, 0x07dc, - 0x07e3, 0x07eb, 0x07f9, 0x07ff, 0x0809, 0x0817, 0x081e, 0x082b, - 0x0834, 0x0841, 0x084e, 0x0854, 0x0867, 0x0893, 0x089c, 0x08a3, - 0x08b0, 0x08b8, 0x08c6, 0x08d8, 0x08f9, -} - -// Size: 306 bytes -var filScriptStr string = "" + - "ArabicArmenianBengaliBopomofoBrailleCyrillicDevanagariEthiopicGeorgianGr" + - "eekGujaratiGurmukhiHangulHanSimplified HanTraditional HanHebrewHiraganaJ" + - "apaneseKatakanaKhmerKannadaKoreanLaoLatinMalayalamMongolianMyanmarOriyaS" + - "inhalaTamilTeluguThaanaThaiTibetanMga SimboloHindi NakasulatKaraniwanHin" + - "di Kilalang Script" - -// Size: 354 bytes, 165 elements -var filScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x0015, 0x0015, 0x001d, 0x001d, 0x0024, - 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, - 0x0024, 0x0024, 0x002c, 0x002c, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x003e, 0x003e, 0x0046, 0x0046, 0x0046, - 0x0046, 0x004b, 0x0053, 0x005b, 0x0061, 0x0064, 0x0064, 0x0072, - 0x0081, 0x0087, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x0097, 0x0097, 0x0097, 0x009f, 0x009f, 0x00a4, - // Entry 40 - 7F - 0x00a4, 0x00ab, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b4, 0x00b4, - 0x00b4, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, - 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, - 0x00b9, 0x00c2, 0x00c2, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00d2, - 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, - 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, - 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, - 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, - // Entry 80 - BF - 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, - 0x00de, 0x00de, 0x00de, 0x00de, 0x00e3, 0x00e3, 0x00e3, 0x00e9, - 0x00e9, 0x00e9, 0x00e9, 0x00ef, 0x00f3, 0x00fa, 0x00fa, 0x00fa, - 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, - 0x00fa, 0x0105, 0x0114, 0x011d, 0x0132, -} - -// Size: 1445 bytes -var frScriptStr string = "" + - "arabearaméen impérialarménienavestiquebalinaisbatakbengalisymboles Bliss" + - "bopomofobrâhmîbraillebouguisbouhidechakmasyllabaire autochtone canadien " + - "unifiécarienchamcherokeecirthcoptesyllabaire chypriotecyrilliquecyrilliq" + - "ue (variante slavonne)dévanâgarîdéséretdémotique égyptienhiératique égyp" + - "tienhiéroglyphes égyptienséthiopiquegéorgien khoutsourigéorgienglagoliti" + - "quegotiquegrecgoudjarâtîgourmoukhîhangûlsinogrammeshanounóosinogrammes s" + - "implifiéssinogrammes traditionnelshébreuhiraganapahawh hmongkatakana ou " + - "hiraganaancien hongroisindusancien italiquejavanaisjaponaiskayah likatak" + - "anakharochthîkhmerkannaracoréenkaithîlannalaolatin (variante brisée)lati" + - "n (variante gaélique)latinlepchalimboulinéaire Alinéaire Blycienlydienma" + - "ndéenmanichéenhiéroglyphes mayasméroïtiquemalayalammongolmoonmeitei maye" + - "kbirmann’koogamol tchikiorkhonoriyaosmanaisancien permienphags papehlevi" + - " des inscriptionspehlevi des psautierspehlevi des livresphénicienphonéti" + - "que de Pollardparthe des inscriptionsrejangrongorongoruniquesamaritainsa" + - "ratisaurashtraécriture des signesshaviencinghalaissundanaissylotî nâgrîs" + - "yriaquesyriaque estranghélosyriaque occidentalsyriaque orientaltagbanoua" + - "taï-lenouveau taï-luetamoultaï viêttélougoutengwartifinaghtagalthânathaï" + - "tibétainougaritiquevaïparole visiblecunéiforme persépolitaincunéiforme s" + - "uméro-akkadienyihériténotation mathématiquesymbolesnon écritcommunécritu" + - "re inconnue" - -// Size: 354 bytes, 165 elements -var frScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0005, 0x0017, 0x0020, 0x0029, 0x0031, - 0x0031, 0x0031, 0x0036, 0x003d, 0x004b, 0x0053, 0x005b, 0x0062, - 0x0069, 0x0070, 0x0076, 0x009c, 0x00a2, 0x00a6, 0x00ae, 0x00b3, - 0x00b8, 0x00cc, 0x00d6, 0x00f4, 0x0101, 0x010a, 0x010a, 0x011e, - 0x0133, 0x014b, 0x014b, 0x0156, 0x016a, 0x0173, 0x017f, 0x0186, - 0x0186, 0x018a, 0x0196, 0x01a1, 0x01a8, 0x01b3, 0x01bc, 0x01d3, - 0x01ec, 0x01f3, 0x01fb, 0x01fb, 0x0207, 0x021b, 0x022a, 0x022f, - 0x023e, 0x0246, 0x024e, 0x024e, 0x0256, 0x025e, 0x0269, 0x026e, - // Entry 40 - 7F - 0x026e, 0x0275, 0x027c, 0x027c, 0x0283, 0x0288, 0x028b, 0x02a3, - 0x02bd, 0x02c2, 0x02c8, 0x02ce, 0x02d9, 0x02e4, 0x02e4, 0x02e4, - 0x02ea, 0x02f0, 0x02f0, 0x02f8, 0x0302, 0x0315, 0x0315, 0x0315, - 0x0321, 0x032a, 0x032a, 0x0330, 0x0334, 0x0334, 0x0340, 0x0346, - 0x0346, 0x0346, 0x0346, 0x034c, 0x034c, 0x0350, 0x0359, 0x035f, - 0x0364, 0x036c, 0x036c, 0x036c, 0x037a, 0x0382, 0x039a, 0x03af, - 0x03c1, 0x03cb, 0x03e1, 0x03f8, 0x03fe, 0x0408, 0x040f, 0x0419, - 0x041f, 0x041f, 0x0429, 0x043d, 0x0444, 0x0444, 0x0444, 0x0444, - // Entry 80 - BF - 0x044e, 0x044e, 0x0457, 0x0466, 0x046e, 0x0483, 0x0496, 0x04a7, - 0x04b0, 0x04b0, 0x04b7, 0x04c7, 0x04cd, 0x04cd, 0x04d7, 0x04e0, - 0x04e7, 0x04ef, 0x04f4, 0x04fa, 0x04ff, 0x0508, 0x0508, 0x0513, - 0x0517, 0x0525, 0x0525, 0x0525, 0x053f, 0x055b, 0x055d, 0x0565, - 0x057b, 0x0583, 0x058d, 0x0593, 0x05a5, -} - -// Size: 18 bytes -var frCAScriptStr string = "devanagarigujarati" - -// Size: 110 bytes, 43 elements -var frCAScriptIdx = []uint16{ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x0012, -} - -// Size: 3329 bytes -var guScriptStr string = "" + - "અરબીઇમà«àªªàª¿àª°àª¿àª¯àª² આરà«àª®àª¨àª¿àª•àª…રà«àª®à«‡àª¨àª¿àª¯àª¨àª…વેસà«àª¤àª¨àª¬àª¾àª²à«€àª¨à«€àªàª¬àªŸàª¾àª•àª¬àª‚ગાળીબà«àª²àª¿àª¸àª¿àª®à«àª¬à«‹àª²à«àª¸àª¬à«‹àªªà«‹àª®" + - "ોફોબà«àª°àª¹à«àª®à«€àª¬à«àª°à«‡àª²àª¬àª—િનીસબà«àª¹àª¿àª¦àªšàª•àª®àª¾àª¯à«àª¨àª¾àª‡àªŸà«‡àª¡ કેનેડિયન àªàª¬à«‹àª°àª¿àªœàª¨àª² સિલેબિકà«àª¸àª•àª°à«ˆàª¨" + - "ચેરોકીસિરà«àª¥àª•à«‹àªªà«àªŸàª¿àª•àª¸àª¿àªªà«àª°àª¾àª¯àªŸàª¸àª¿àª°àª¿àª²àª¿àª•àª“લà«àª¡ ચરà«àªš સà«àª²àª¾àªµà«‹àª¨àª¿àª• સિરિલિકદેવનાગરીડે" + - "સરેટઇજિપà«àª¶àª¿àª¯àª¨ ડેમોટિકઇજિપà«àª¶àª¿àª¯àª¨ હાઇરેટિકઇજિપà«àª¶àª¿àª¯àª¨ હાઇરોગà«àª²àª¿àª«à«àª¸àª‡àª¥àª¿àª¯à«‹àªªàª¿àª•àªœ" + - "à«àª¯à«‹àª°à«àªœàª¿àª…ન ખà«àª¤àª¸à«àª°à«€àªœà«àª¯à«‹àª°à«àªœàª¿àª…નગà«àª²à«‡àª—ોલિટિકગોથિકગà«àª°à«€àª•àª—à«àªœàª°àª¾àª¤à«€àª—à«àª°à«‚મà«àª–ીહંગà«àª²àª¹àª¾" + - "નહનà«àª¨à«‚સરળીકૃત હાનપરંપરાગત હાનહીબà«àª°à«àª¹àª¿àª°àª¾àª—ાનાપહાઉ મોનà«àª—કતાકના અને હિરાગન" + - "ાઓલà«àª¡ હંગેરિયનસિનà«àª§à«àªœà«‚નૠઇટાલિકજાવાનીસજાપાનીકાયાહ લીકટાકાનાખારોશà«àª¥à«€àª–à«àª®" + - "ેરકનà«àª¨àª¡àª¾àª•à«‹àª°àª¿àª¯àª¨àª•à«ˆàª¥à«€àª²àª¾àª¨àª¾àª²àª¾àª“ફà«àª°à«‡àª•àª¤à«àª° લેટિનગૈલિક લેટિનલેટિનલેપચાલિમà«àª¬à«‚લીનિ" + - "યર અલીનિયર બીલિશિયનલિડિયનમાનà«àª¡àª¾àª¯à«€àª¨àª®àª¾àª¨à«€àªšàª¾àª¯à«€àª¨àª®àª¯àª¾àª¨ હાઇરોગà«àª²àª¿àª«à«àª¸àª®à«‡àª°à«‹àª‡àªŸàª¿àª•àª®àª²" + - "યાલમમોંગોલિયનમૂનમેઇતેઇ માયેકમà«àª¯àª¾àª‚મારàªàª¨â€™ કોઓઘામઓલ ચિકીઓરખોનઉડિયાઓસà«àª®àª¾àª¨à«" + - "યાઓલà«àª¡ પરમિકફાગà«àª¸-પાઇનà«àª¸à«àª•à«àª°àª¿àªªà«àª¶àª¨àª² પહલવીસાલટર પહલવીબà«àª• પહલવીફોનિશિયનપો" + - "લારà«àª¡ ફોનેટિકઇનà«àª¸à«àª•à«àª°àª¿àªªà«àª¶àª¨àª² પારà«àª¥àª¿àª¯àª¨àª°à«€àªœàª¾àª‚ગરોંગોરોંગોરૂનિકસમરિટાનસરાતીસ" + - "ૌરાષà«àªŸà«àª°àª¸àª‚કેત લિપીશાવિયાનસિંહલીસà«àª¦àª¾àª¨à«€àªàª¸àª¿àª²à«‹àª¤à«€ નાગરીસિરિયેકàªàª¸à«àª¤à«àª°à«‡àª¨à«àªœà«‡àª²à«‹" + - " સિરિયાકપશà«àªšàª¿àª® સિરિયાકપૂરà«àªµ સિરિયાકતગબનà«àªµàª¾àª¤àª¾àª‡ લીનવીન તાઇ લૂતમિલતાઇ વેઇતત" + - "ેલà«àª—à«àª¤à«‡àª¨à«àª—વારતિફિનાઘટેગાલોગથાનાથાઇટિબેટીયà«àª—ાતિટિકવાઇવિસિબલ સà«àªªà«€àªšàªœà«àª¨à«€ ફ" + - "ારસીસà«àª®à«‡àª°à«‹ અકà«àª•àª¾àª¦àª¿àª¯àª¨ સà«àª¨àª¿àª«à«‹àª°à«àª®àª¯à«€àªµàª‚શાગતગણિતીય સંકેતલિપિપà«àª°àª¤à«€àª• લિપીઅલિખિ" + - "તસામાનà«àª¯àª…જà«àªžàª¾àª¤ લિપિ" - -// Size: 354 bytes, 165 elements -var guScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000c, 0x003d, 0x0058, 0x006d, 0x0082, - 0x0082, 0x0082, 0x008e, 0x00a0, 0x00c7, 0x00df, 0x00f4, 0x0103, - 0x0115, 0x0124, 0x0130, 0x0196, 0x01a2, 0x01a2, 0x01b4, 0x01c3, - 0x01d8, 0x01f0, 0x0205, 0x0250, 0x0268, 0x027a, 0x027a, 0x02ab, - 0x02df, 0x031f, 0x031f, 0x0337, 0x036b, 0x0389, 0x03aa, 0x03b9, - 0x03b9, 0x03c8, 0x03dd, 0x03f5, 0x0404, 0x040d, 0x041c, 0x043b, - 0x045d, 0x046f, 0x0487, 0x0487, 0x04a3, 0x04d5, 0x04fa, 0x050c, - 0x052b, 0x0540, 0x0552, 0x0552, 0x0568, 0x057d, 0x0595, 0x05a4, - // Entry 40 - 7F - 0x05a4, 0x05b6, 0x05c8, 0x05c8, 0x05d4, 0x05e0, 0x05e9, 0x0611, - 0x0630, 0x063f, 0x064e, 0x0660, 0x0676, 0x068f, 0x068f, 0x068f, - 0x06a1, 0x06b3, 0x06b3, 0x06ce, 0x06e9, 0x071a, 0x071a, 0x071a, - 0x0732, 0x0744, 0x0744, 0x075f, 0x0768, 0x0768, 0x078a, 0x07a2, - 0x07a2, 0x07a2, 0x07a2, 0x07b2, 0x07b2, 0x07be, 0x07d1, 0x07e0, - 0x07ef, 0x080a, 0x080a, 0x080a, 0x0826, 0x083c, 0x0876, 0x0895, - 0x08ae, 0x08c6, 0x08f1, 0x0934, 0x0946, 0x0964, 0x0973, 0x0988, - 0x0997, 0x0997, 0x09b2, 0x09ce, 0x09e3, 0x09e3, 0x09e3, 0x09e3, - // Entry 80 - BF - 0x09f5, 0x09f5, 0x0a0a, 0x0a2c, 0x0a41, 0x0a7e, 0x0aa6, 0x0acb, - 0x0ae0, 0x0ae0, 0x0af0, 0x0b0d, 0x0b19, 0x0b19, 0x0b2f, 0x0b41, - 0x0b59, 0x0b6e, 0x0b83, 0x0b8f, 0x0b98, 0x0baa, 0x0baa, 0x0bc5, - 0x0bce, 0x0bf0, 0x0bf0, 0x0bf0, 0x0c0c, 0x0c56, 0x0c5c, 0x0c6e, - 0x0c9c, 0x0cbb, 0x0ccd, 0x0ce2, 0x0d01, -} - -// Size: 849 bytes -var heScriptStr string = "" + - "ערבי×רמניב×לינזיבנגליבופומופובריילצ׳××צ׳ירוקיקופטיקפריס×יקיריליקירילי סל" + - "×בוני כנסייתי עתיקדוו×נגריכתב חרטומי××תיופיג×ורגיגותייווניגוג׳רטיגורמוק" + - "×™×”×נגולה×ןכתב ×”×ן פשוטכתב ×”×ן מסורתיעבריהירג×נההונגרי עתיק×ינדוס×יטלקי " + - "עתיקג׳×וונזייפניקטק×נהקמריתק×נדהקורי×ניל×יתלטיני ×’×לילטינימ×יהמלי×ל××מו" + - "נגולימי×נמר×ורייהפיניקירוניסינהלהסוריסורי מערביסורי מזרחיטמילטלוגוטגלוג" + - "כתב ט×נהת×יטיבטי×וגריתיפרסי עתיקמורשסימון מתמטיסימני××œ× ×›×ª×•×‘×¨×’×™×œ×›×ª×‘ ש××™" + - "נו ידוע" - -// Size: 354 bytes, 165 elements -var heScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0012, 0x0012, 0x0020, - 0x0020, 0x0020, 0x0020, 0x002a, 0x002a, 0x003a, 0x003a, 0x0044, - 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x004c, 0x005a, 0x005a, - 0x0064, 0x0072, 0x007e, 0x00b1, 0x00c1, 0x00c1, 0x00c1, 0x00c1, - 0x00c1, 0x00d6, 0x00d6, 0x00e2, 0x00e2, 0x00ee, 0x00ee, 0x00f6, - 0x00f6, 0x0100, 0x010e, 0x011c, 0x0128, 0x012e, 0x012e, 0x0144, - 0x015e, 0x0166, 0x0174, 0x0174, 0x0174, 0x0174, 0x0189, 0x0195, - 0x01aa, 0x01ba, 0x01c2, 0x01c2, 0x01c2, 0x01ce, 0x01ce, 0x01d8, - // Entry 40 - 7F - 0x01d8, 0x01e2, 0x01f0, 0x01f0, 0x01f0, 0x01f0, 0x01f8, 0x01f8, - 0x020b, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, - 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x021d, 0x021d, 0x021d, - 0x021d, 0x022b, 0x022b, 0x0239, 0x0239, 0x0239, 0x0239, 0x0245, - 0x0245, 0x0245, 0x0245, 0x0245, 0x0245, 0x0245, 0x0245, 0x0245, - 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, - 0x0251, 0x025d, 0x025d, 0x025d, 0x025d, 0x025d, 0x0265, 0x0265, - 0x0265, 0x0265, 0x0265, 0x0265, 0x0265, 0x0265, 0x0265, 0x0265, - // Entry 80 - BF - 0x0271, 0x0271, 0x0271, 0x0271, 0x0279, 0x0279, 0x028c, 0x029f, - 0x029f, 0x029f, 0x029f, 0x029f, 0x02a7, 0x02a7, 0x02a7, 0x02b1, - 0x02b1, 0x02b1, 0x02bb, 0x02ca, 0x02d0, 0x02da, 0x02da, 0x02e8, - 0x02e8, 0x02e8, 0x02e8, 0x02e8, 0x02f9, 0x02f9, 0x02f9, 0x0301, - 0x0316, 0x0322, 0x032f, 0x0337, 0x0351, -} - -// Size: 3328 bytes -var hiScriptStr string = "" + - "अरबीइमà¥à¤ªà¤¿à¤°à¤¿à¤¯à¤² आरà¥à¤®à¥‡à¤¨à¤¿à¤•à¤†à¤°à¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆà¤…वेसà¥à¤¤à¤¨à¤¬à¤¾à¤²à¥€à¤¬à¤Ÿà¤•à¥€à¤¬à¤‚गालीबà¥à¤²à¤¿à¤¸à¤¿à¤®à¥à¤¬à¥‰à¤²à¥à¤¸à¤¬à¥‹à¤ªà¥‹à¤®à¥‹" + - "फ़ोबà¥à¤°à¤¹à¥à¤®à¥€à¤¬à¥à¤°à¥‡à¤²à¤¬à¤—िनीसबà¥à¤¹à¤¿à¤¦à¤šà¤•à¤®à¤¾à¤¯à¥à¤¨à¤¿à¤«à¤¾à¤‡à¤¡ कैनेडियन à¤à¤¬à¥‹à¤°à¤¿à¤œà¤¨à¤² सिलेबिकà¥à¤¸à¤•à¤°à¥ˆà¤¨" + - "चामचेरोकीकिरà¥à¤¥à¤•à¥‰à¤ªà¥à¤Ÿà¤¿à¤•à¤•à¤¾à¤‡à¤ªà¥à¤°à¤¾à¤¯à¤Ÿà¤¸à¤¿à¤°à¤¿à¤²à¤¿à¤•à¤“लà¥à¤¡ चरà¥à¤š सà¥à¤²à¤¾à¤µà¥‹à¤¨à¤¿à¤• सिरिलिकदेवनाग" + - "रीडेसरेटइजिपà¥à¤¶à¤¿à¤¯à¤¨ डेमोटिकइजिपà¥à¤¶à¤¿à¤¯à¤¨ हाइरेटिकइजिपà¥à¤¶à¤¿à¤¯à¤¨ हाइरोगà¥à¤²à¤¿à¤«à¥à¤¸à¤‡à¤¥à¤¿à¤¯à¥‹" + - "पियाईजॉरà¥à¤œà¤¿à¤¯à¤¨ खà¥à¤¤à¤¸à¥à¤°à¥€à¤œà¥‰à¤°à¥à¤œà¤¿à¤¯à¤¨à¤—à¥à¤²à¥‡à¤—ोलिटिकगोथिकगà¥à¤°à¤¨à¥à¤¥à¤¯à¥‚नानीगà¥à¤œà¤°à¤¾à¤¤à¥€à¤—à¥à¤°à¤®à¥à¤–" + - "ीहंगà¥à¤²à¤¹à¤¾à¤¨à¤¹à¤¨à¥à¤¨à¥‚सरलीकृत हानपारंपरिक हानहिबà¥à¤°à¥‚हिरागानापाहो हà¥à¤®à¥‹à¤¨à¥à¤—कचाकना " + - "और हिरागनाऑलà¥à¤¡ हंगेरियनसिनà¥à¤§à¥à¤ªà¥à¤°à¤¾à¤¨à¥€ इटलीजावानीसजापानीकायाह लीकाताकानाख" + - "ारोशथीखमेरकनà¥à¤¨à¤¡à¤¼à¤•à¥‹à¤°à¤¿à¤¯à¤¾à¤ˆà¤•à¥ˆà¤¥à¥€à¤²à¤¾à¤¨à¤¾à¤²à¤¾à¤“फ़à¥à¤°à¥ˆà¤•à¥à¤Ÿà¥à¤° लातिनीगेली लातिनीलैटिनलेप" + - "चालिमà¥à¤¬à¥‚लीनियर Aलीनियर बीलिशियनलिडियनमनडेनमनीशीनमयान हाइरोगà¥à¤²à¤¿à¤«à¥à¤¸à¤®à¥‡à¤°à¥‹à¤‡" + - "टिकमलयालममंगोलियाईमूनमेइतेइ मायेकमà¥à¤¯à¤¾à¤‚मारà¤à¤¨à¥â€˜à¤•à¥‹à¤“गमऑल चिकीओरखोनउड़ियाओस" + - "à¥à¤®à¤¾à¤¨à¥à¤¯à¤¾à¤“लà¥à¤¡ परमिकफागà¥à¤¸-पाइंसà¥à¤•à¥à¤°à¤¿à¤ªà¤¶à¥à¤¨à¤² पाहलवीसॉलà¥à¤Ÿà¤° पाहलवीबà¥à¤• पाहलवीफो" + - "निशियनपॉलारà¥à¤¡ फोनेटिकइंसà¥à¤•à¥à¤°à¤¿à¤ªà¤¶à¥à¤¨à¤² पारà¥à¤¥à¤¿à¤¯à¤¨à¤°à¥€à¤œà¤¾à¤‚गरोनà¥à¤—ोरोनà¥à¤—ोरूनिकसमरि" + - "टनसरातीसौराषà¥à¤Ÿà¥à¤°à¤¸à¤¾à¤‚केतिक लेखशावियानसिंहलीसूडानीसिलोती नागरीसिरियेकà¤à¤¸à¥à¤¤" + - "à¥à¤°à¥‡à¤¨à¥à¤œà¥‡à¤²à¥‹ सिरिà¤à¤•à¤ªà¤¶à¥à¤šà¤¿à¤® सिरिà¤à¤•à¤ªà¥‚रà¥à¤µ सिरिà¤à¤•à¤¤à¤—बनà¥à¤µà¤¾à¤¤à¤¾à¤ˆ लीनया ताई लà¥à¤¤à¤®à¤¿à¤²à¤¤à¤¾" + - "ई विà¤à¤¤à¤¤à¥‡à¤²à¥à¤—ूतेनà¥à¤—वारतिफिनाघटैगालोगथानाथाईतिबà¥à¤¬à¤¤à¥€à¤¯à¥à¤—ारिटिकवाईविसिबल सà¥à¤ª" + - "ीचपà¥à¤°à¤¾à¤¨à¥€ फारसीसà¥à¤®à¥‡à¤°à¥‹ अकà¥à¤•à¤¾à¤¦à¤¿à¤¯à¤¨ सà¥à¤¨à¤¿à¤«à¥‰à¤°à¥à¤®à¤¯à¥€à¤µà¤¿à¤°à¤¾à¤¸à¤¤à¤—णितीय संकेतनचिहà¥à¤¨à¤…लिख" + - "ितसामानà¥à¤¯à¤…जà¥à¤žà¤¾à¤¤ लिपि" - -// Size: 354 bytes, 165 elements -var hiScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000c, 0x0040, 0x005e, 0x0073, 0x007f, - 0x007f, 0x007f, 0x008b, 0x009d, 0x00c4, 0x00df, 0x00f4, 0x0103, - 0x0115, 0x0124, 0x0130, 0x0196, 0x01a2, 0x01ab, 0x01bd, 0x01cc, - 0x01e1, 0x01fc, 0x0211, 0x025c, 0x0274, 0x0286, 0x0286, 0x02b7, - 0x02eb, 0x032b, 0x032b, 0x0349, 0x0377, 0x038f, 0x03b0, 0x03bf, - 0x03d1, 0x03e3, 0x03f8, 0x040d, 0x041c, 0x0425, 0x0434, 0x0453, - 0x0475, 0x0487, 0x049f, 0x049f, 0x04c1, 0x04f0, 0x0515, 0x0527, - 0x0546, 0x055b, 0x056d, 0x056d, 0x0583, 0x059b, 0x05b0, 0x05bc, - // Entry 40 - 7F - 0x05bc, 0x05ce, 0x05e3, 0x05e3, 0x05ef, 0x05fb, 0x0604, 0x0635, - 0x0654, 0x0663, 0x0672, 0x0684, 0x0698, 0x06b1, 0x06b1, 0x06b1, - 0x06c3, 0x06d5, 0x06d5, 0x06e4, 0x06f6, 0x0727, 0x0727, 0x0727, - 0x073f, 0x0751, 0x0751, 0x076c, 0x0775, 0x0775, 0x0797, 0x07af, - 0x07af, 0x07af, 0x07af, 0x07c1, 0x07c1, 0x07ca, 0x07dd, 0x07ec, - 0x07fe, 0x0819, 0x0819, 0x0819, 0x0835, 0x084b, 0x0885, 0x08aa, - 0x08c6, 0x08de, 0x0909, 0x0949, 0x095b, 0x097f, 0x098e, 0x09a0, - 0x09af, 0x09af, 0x09ca, 0x09ec, 0x0a01, 0x0a01, 0x0a01, 0x0a01, - // Entry 80 - BF - 0x0a13, 0x0a13, 0x0a25, 0x0a47, 0x0a5c, 0x0a96, 0x0abb, 0x0add, - 0x0af2, 0x0af2, 0x0b02, 0x0b1c, 0x0b28, 0x0b28, 0x0b3e, 0x0b50, - 0x0b68, 0x0b7d, 0x0b92, 0x0b9e, 0x0ba7, 0x0bbc, 0x0bbc, 0x0bd7, - 0x0be0, 0x0c02, 0x0c02, 0x0c02, 0x0c24, 0x0c6e, 0x0c74, 0x0c86, - 0x0cab, 0x0cba, 0x0ccc, 0x0ce1, 0x0d00, -} - -// Size: 2370 bytes -var hrScriptStr string = "" + - "afaka pismoarapsko pismoaramejsko pismoarmensko pismoavestansko pismobal" + - "ijsko pismobamum pismobassa vah pismobatak pismobengalsko pismoblissymbo" + - "lsbopomofo pismobrahmi pismobrajicabuginsko pismobuhid pismochakma pismo" + - "unificirani kanadski aboriÄ‘inski slogovikarijsko pismoÄamsko pismoÄeroki" + - " pismocirth pismokoptsko pismocypriot pismoćirilicastaroslavenska crkven" + - "a Äirilicadevangari pismodeseret pismoegipatsko narodno pismoegipatsko h" + - "ijeratsko pismoegipatski hijeroglifietiopsko pismogruzijsko khutsuri pis" + - "mogruzijsko pismoglagoljicagotiÄko pismograntha pismogrÄko pismogudžarat" + - "sko pismogurmukhi pismohangul pismohan pismohanunoo pismopojednostavljen" + - "o hansko pismotradicionalno hansko pismohebrejsko pismohiragana pismoana" + - "tolijski hijeroglifipahawh hmong pismokatakana ili hiragana pismostaro m" + - "aÄ‘arsko pismoindijsko pismostaro talijansko pismojavansko pismojapansko " + - "pismojurchen pismokayah li pismokatakana pismokharoshthi pismokmersko pi" + - "smokhojki pismokannada pismokorejsko pismokpelle pismokaithi pismolanna " + - "pismolaosko pismofraktur latinicakeltska latinicalatinicalepcha pismolim" + - "bu pismolinear A pismolinear B pismofraser pismoloma pismolikijsko pismo" + - "lidijsko pismomandai pismomanihejsko pismomajanski hijeroglifimende pism" + - "omeroitski kurzivmeroitic pismomalajalamsko pismomongolsko pismomoon pis" + - "momro pismomeitei mayek pismomjanmarsko pismostaro sjevernoarapsko pismo" + - "nabatejsko pismonaxi geba pismon’ko pismonushu pismoogham pismool chiki " + - "pismoorkhon pismoorijsko pismoosmanya pismopalmyrene pismostaro permic p" + - "ismophags-pa pismopisani pahlavipsalter pahlavipahlavi pismofeniÄko pism" + - "opollard fonetsko pismopisani parthianrejang pismorongorongo pismorunsko" + - " pismosamaritansko pismosarati pismostaro južnoarapsko pismosaurashtra p" + - "ismoznakovno pismoshavian pismosharada pismokhudawadi pismosinhaleÅ¡ko pi" + - "smosora sompeng pismosudansko pismosyloti nagri pismosirijsko pismosirij" + - "sko estrangelo pismopismo zapadne Sirijepismo istoÄne Sirijetagbanwa pis" + - "motakri pismotai le pismonovo tai lue pismotamilsko pismotangut pismotai" + - " viet pismotelugu pismotengwar pismotifinartagalog pismothaana pismotajl" + - "andsko pismotibetansko pismotirhuta pismougaritsko pismovai pismoVisible" + - " Speechvarang kshiti pismowoleai pismostaro perzijsko pismosumersko-akad" + - "sko cuneiform pismoYi pismonasljedno pismomatematiÄko znakovljesimbolije" + - "zik bez pismenostizajedniÄko pismonepoznato pismo" - -// Size: 354 bytes, 165 elements -var hrScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000b, 0x000b, 0x0018, 0x0027, 0x0035, 0x0045, 0x0053, - 0x005e, 0x006d, 0x0078, 0x0087, 0x0092, 0x00a0, 0x00ac, 0x00b3, - 0x00c1, 0x00cc, 0x00d8, 0x0101, 0x010f, 0x011c, 0x0129, 0x0134, - 0x0141, 0x014e, 0x0157, 0x0177, 0x0186, 0x0193, 0x0193, 0x01aa, - 0x01c4, 0x01d9, 0x01d9, 0x01e7, 0x01ff, 0x020e, 0x0218, 0x0226, - 0x0233, 0x023f, 0x0251, 0x025f, 0x026b, 0x0274, 0x0281, 0x029e, - 0x02b8, 0x02c7, 0x02d5, 0x02ec, 0x02fe, 0x0319, 0x032e, 0x033c, - 0x0352, 0x0360, 0x036e, 0x037b, 0x0389, 0x0397, 0x03a7, 0x03b4, - // Entry 40 - 7F - 0x03c0, 0x03cd, 0x03db, 0x03e7, 0x03f3, 0x03fe, 0x040a, 0x041a, - 0x042a, 0x0432, 0x043e, 0x0449, 0x0457, 0x0465, 0x0471, 0x047b, - 0x0489, 0x0497, 0x0497, 0x04a3, 0x04b3, 0x04c7, 0x04d2, 0x04e2, - 0x04f0, 0x0502, 0x0502, 0x0511, 0x051b, 0x0524, 0x0536, 0x0546, - 0x0561, 0x0571, 0x0580, 0x058c, 0x0597, 0x05a2, 0x05b0, 0x05bc, - 0x05c9, 0x05d6, 0x05e5, 0x05e5, 0x05f7, 0x0605, 0x0613, 0x0622, - 0x062f, 0x063d, 0x0653, 0x0662, 0x066e, 0x067e, 0x068a, 0x069c, - 0x06a8, 0x06c1, 0x06d1, 0x06df, 0x06ec, 0x06f9, 0x06f9, 0x0708, - // Entry 80 - BF - 0x0719, 0x072b, 0x0739, 0x074b, 0x0759, 0x0772, 0x0786, 0x079b, - 0x07a9, 0x07b4, 0x07c0, 0x07d2, 0x07e0, 0x07ec, 0x07fa, 0x0806, - 0x0813, 0x081a, 0x0827, 0x0833, 0x0843, 0x0853, 0x0860, 0x086f, - 0x0878, 0x0886, 0x0899, 0x08a5, 0x08ba, 0x08da, 0x08e2, 0x08f1, - 0x0907, 0x090e, 0x0922, 0x0933, 0x0942, -} - -// Size: 1270 bytes -var huScriptStr string = "" + - "ArabBirodalmi arámiÖrményAvesztánBalinézBatakBengáliBliss jelképrendszer" + - "BopomofoBrámiVakírásBuginézBuhidCsakmaEgyesített kanadai Å‘slakos jelekKa" + - "riCsámCserokiKoptCiprusiCirillÓegyházi szláv cirillDevanagáriDeseretEgyi" + - "ptomi demotikusEgyiptomi hieratikusEgyiptomi hieroglifákEtiópGrúz kucsur" + - "iGrúzGlagolitikusGótGörögGudzsarátiGurmukiHangulHanHanunooEgyszerűsített" + - " HanHagyományos kínaiHéberHiraganaPahawh hmongKatakana vagy hiraganaÓmag" + - "yarIndusRégi olaszJávaiJapánKajah liKatakanaKharoshthiKhmerKannadaKoreai" + - "KaithiLannaLaoFraktur latinGael latinLatinLepchaLimbuLineáris ALineáris " + - "BLíciaiLídiaiMandaiManicheusMaja hieroglifákMeroitikusMalajálamMongolMoo" + - "nMeitei mayekBurmaiN’koOghamOl chikiOrhonOriyaOszmánÓpermikusPhags-paFel" + - "riatos pahlaviPsalter pahlaviKönyv pahlaviFÅ‘niciaiPollard fonetikusFelir" + - "atos parthianRedzsangRongorongoRunikusSzamaritánSzaratiSzaurastraJelírás" + - "Shaw ábécéSzingalézSzundanézSylheti nagáriSzíriaiEstrangelo szíriaiNyuga" + - "t-szíriaiKelet-szíriaiTagbanwaTai LeÚj tai lueTamilTai vietTeluguTengwar" + - "BerberTagalogThaanaThaiTibetiUgariVaiLátható beszédÓperzsaÉkírásos sumér" + - "o-akkádJiSzármaztatottMatematikai jelrendszerSzimbólumÃratlan nyelvek kó" + - "djaMeghatározatlanIsmeretlen írásrendszer" - -// Size: 354 bytes, 165 elements -var huScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0004, 0x0014, 0x001c, 0x0025, 0x002d, - 0x002d, 0x002d, 0x0032, 0x003a, 0x004f, 0x0057, 0x005d, 0x0066, - 0x006e, 0x0073, 0x0079, 0x009b, 0x009f, 0x00a4, 0x00ab, 0x00ab, - 0x00af, 0x00b6, 0x00bc, 0x00d4, 0x00df, 0x00e6, 0x00e6, 0x00f9, - 0x010d, 0x0123, 0x0123, 0x0129, 0x0136, 0x013b, 0x0147, 0x014b, - 0x014b, 0x0152, 0x015d, 0x0164, 0x016a, 0x016d, 0x0174, 0x0188, - 0x019b, 0x01a1, 0x01a9, 0x01a9, 0x01b5, 0x01cb, 0x01d3, 0x01d8, - 0x01e3, 0x01e9, 0x01ef, 0x01ef, 0x01f7, 0x01ff, 0x0209, 0x020e, - // Entry 40 - 7F - 0x020e, 0x0215, 0x021b, 0x021b, 0x0221, 0x0226, 0x0229, 0x0236, - 0x0240, 0x0245, 0x024b, 0x0250, 0x025b, 0x0266, 0x0266, 0x0266, - 0x026d, 0x0274, 0x0274, 0x027a, 0x0283, 0x0294, 0x0294, 0x0294, - 0x029e, 0x02a8, 0x02a8, 0x02ae, 0x02b2, 0x02b2, 0x02be, 0x02c4, - 0x02c4, 0x02c4, 0x02c4, 0x02ca, 0x02ca, 0x02cf, 0x02d7, 0x02dc, - 0x02e1, 0x02e8, 0x02e8, 0x02e8, 0x02f2, 0x02fa, 0x030b, 0x031a, - 0x0328, 0x0331, 0x0342, 0x0354, 0x035c, 0x0366, 0x036d, 0x0378, - 0x037f, 0x037f, 0x0389, 0x0392, 0x039f, 0x039f, 0x039f, 0x039f, - // Entry 80 - BF - 0x03a9, 0x03a9, 0x03b3, 0x03c2, 0x03ca, 0x03dd, 0x03ec, 0x03fa, - 0x0402, 0x0402, 0x0408, 0x0413, 0x0418, 0x0418, 0x0420, 0x0426, - 0x042d, 0x0433, 0x043a, 0x0440, 0x0444, 0x044a, 0x044a, 0x044f, - 0x0452, 0x0463, 0x0463, 0x0463, 0x046b, 0x0485, 0x0487, 0x0495, - 0x04ac, 0x04b6, 0x04cd, 0x04dd, 0x04f6, -} - -// Size: 679 bytes -var hyScriptStr string = "" + - "Õ¡Ö€Õ¡Õ¢Õ¡Õ¯Õ¡Õ¶Õ°Õ¡ÕµÕ¯Õ¡Õ¯Õ¡Õ¶Õ¢Õ¥Õ¶Õ£Õ¡Õ¬Õ¡Õ¯Õ¡Õ¶Õ¢Õ¸ÕºÕ¸Õ´Õ¸Ö†Õ¸Õ¢Ö€Õ¡ÕµÕ¬Õ«Õ¯ÕµÕ¸Ö‚Ö€Õ¥Õ²Õ¡Õ£Õ«Ö€Õ¤Õ¥Õ¾Õ¡Õ¶Õ¡Õ£Õ¡Ö€Õ«Õ¥Õ©Õ¸Õ¾ÕºÕ¡Õ¯Õ¡Õ¶Õ¾Ö€" + - "Õ¡ÖÕ¡Õ¯Õ¡Õ¶Õ°Õ¸Ö‚Õ¶Õ¡Õ¯Õ¡Õ¶Õ£Õ¸Ö‚Õ»Õ¡Ö€Õ¡Õ©Õ«Õ£Õ¸Ö‚Ö€Õ´Õ¸Ö‚Õ­Õ«Õ°Õ¡Õ¶Õ£Õ¸Ö‚Õ¬Õ¹Õ«Õ¶Õ¡Õ¯Õ¡Õ¶ÕºÕ¡Ö€Õ¦Õ¥ÖÕ¾Õ¡Õ® Õ¹Õ«Õ¶Õ¡Õ¯Õ¡Õ¶Õ¡Õ¾Õ¡Õ¶Õ¤Õ¡Õ¯Õ¡" + - "Õ¶ Õ¹Õ«Õ¶Õ¡Õ¯Õ¡Õ¶Õ¥Õ¢Ö€Õ¡ÕµÕ¡Õ¯Õ¡Õ¶Õ°Õ«Ö€Õ¡Õ£Õ¡Õ¶Õ¡Õ³Õ¡ÕºÕ¸Õ¶Õ¡Õ¯Õ¡Õ¶Õ¯Õ¡Õ¿Õ¡Õ¯Õ¡Õ¶Õ¡Ö„Õ´Õ¥Ö€Õ¡Õ¯Õ¡Õ¶Õ¯Õ¡Õ¶Õ¶Õ¡Õ¤Õ¡Õ¯Õ¸Ö€Õ¥Õ¡Õ¯Õ¡Õ¶Õ¬Õ¡Õ¸Õ½Õ¡" + - "Õ¯Õ¡Õ¶Õ¬Õ¡Õ¿Õ«Õ¶Õ¡Õ¯Õ¡Õ¶Õ´Õ¡Õ¬Õ¡ÕµÕ¡Õ¬Õ¡Õ´Õ´Õ¸Õ¶Õ²Õ¸Õ¬Õ¡Õ¯Õ¡Õ¶Õ´ÕµÕ¡Õ¶Õ´Õ¡Ö€Õ¡Õ¯Õ¡Õ¶Ö…Ö€Õ«ÕµÕ¡Õ½Õ«Õ¶Õ°Õ¡Õ¬Õ¡Õ¯Õ¡Õ¶Õ©Õ¡Õ´Õ«Õ¬Õ¡Õ¯Õ¡Õ¶Õ©Õ¥Õ¬Õ¸Ö‚" + - "Õ£Õ¸Ö‚Õ©Õ¡Õ¡Õ¶Õ¡Õ©Õ¡ÕµÕ¡Õ¯Õ¡Õ¶Õ¿Õ«Õ¢Õ¥Õ©Õ¡Õ¯Õ¡Õ¶Õ¶Õ·Õ¡Õ¶Õ¶Õ¥Ö€Õ¹Õ£Ö€Õ¾Õ¡Õ®Õ¨Õ¶Õ¤Õ°Õ¡Õ¶Õ¸Ö‚Ö€Õ¡Õ¶Õ°Õ¡ÕµÕ¿ Õ£Õ«Ö€" - -// Size: 354 bytes, 165 elements -var hyScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0034, 0x0034, 0x0044, 0x0044, 0x0050, - 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, - 0x0050, 0x0050, 0x0066, 0x0066, 0x007a, 0x007a, 0x007a, 0x007a, - 0x007a, 0x007a, 0x007a, 0x008c, 0x008c, 0x009c, 0x009c, 0x009c, - 0x009c, 0x00ac, 0x00be, 0x00d0, 0x00de, 0x00ec, 0x00ec, 0x010d, - 0x012e, 0x0140, 0x0150, 0x0150, 0x0150, 0x0150, 0x0150, 0x0150, - 0x0150, 0x0150, 0x0162, 0x0162, 0x0162, 0x0172, 0x0172, 0x0182, - // Entry 40 - 7F - 0x0182, 0x0190, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01b0, 0x01b0, - 0x01b0, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, - 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, - 0x01c2, 0x01d4, 0x01d4, 0x01e8, 0x01e8, 0x01e8, 0x01e8, 0x01fe, - 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x01fe, - 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, - 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, - 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, - // Entry 80 - BF - 0x021c, 0x021c, 0x021c, 0x021c, 0x021c, 0x021c, 0x021c, 0x021c, - 0x021c, 0x021c, 0x021c, 0x021c, 0x022e, 0x022e, 0x022e, 0x023e, - 0x023e, 0x023e, 0x023e, 0x0248, 0x0256, 0x0268, 0x0268, 0x0268, - 0x0268, 0x0268, 0x0268, 0x0268, 0x0268, 0x0268, 0x0268, 0x0268, - 0x0268, 0x0276, 0x0282, 0x0294, 0x02a7, -} - -// Size: 1396 bytes -var idScriptStr string = "" + - "AfakaAlbania KaukasiaArabAram ImperialArmeniaAvestaBaliBamumBassa VahBat" + - "akBengaliBlissymbolBopomofoBrahmiBrailleBugisBuhidChakmaSimbol Aborigin " + - "Kanada KesatuanKariaChamCherokeeCirthKoptikSiprusSirilikGereja Slavonia " + - "Sirilik LamaDevanagariDeseretStenografi DuployanDemotik MesirHieratik Me" + - "sirHieroglip MesirEtiopiaGeorgian KhutsuriGeorgiaGlagoliticGothicGrantha" + - "YunaniGujaratiGurmukhiHangulHanHanunooHan SederhanaHan TradisionalIbrani" + - "HiraganaHieroglif AnatoliaPahawh HmongKatakana atau HiraganaHungaria Kun" + - "oIndusItalia LamaJawaJepangJurchenKayah LiKatakanaKharoshthiKhmerKhojkiK" + - "annadaKoreaKpelleKaithiLannaLaosLatin FrakturLatin GaelikLatinLepchaLimb" + - "uLinear ALinear BLisuLomaLyciaLydiaMandaeManikheiHieroglip MayaMendeKurs" + - "if MeroitikMeroitikMalayalamModiMongoliaMoonMroMeitei MayekMyanmarArab U" + - "tara KunoNabataeaNaxi GebaN’KoNushuOghamChiki LamaOrkhonOriyaOsmanyaPalm" + - "iraPermik KunoPhags-paPahleviMazmur PahleviKitab PahleviPhoenixFonetik P" + - "ollardPrasasti ParthiaRejangRongorongoRunikSamariaSaratiArab Selatan Kun" + - "oSaurashtraTulisan IsyaratShaviaSharadaSiddhamKhudawadiSinhalaSora Sompe" + - "ngSundaSyloti NagriSuriahSuriah EstrangeloSuriah BaratSuriah TimurTagban" + - "waTakriTai LeTai Lue BaruTamilTangutTai VietTeluguTenghwarTifinaghTagalo" + - "gThaanaThaiTibetTirhutaUgaritikVaiUcapan TerlihatVarang KshitiWoleaiPers" + - "ia KunoCuneiform Sumero-AkkadiaYiWarisanNotasi MatematikaSimbolTidak Ter" + - "tulisUmumSkrip Tak Dikenal" - -// Size: 354 bytes, 165 elements -var idScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0005, 0x0015, 0x0019, 0x0026, 0x002d, 0x0033, 0x0037, - 0x003c, 0x0045, 0x004a, 0x0051, 0x005b, 0x0063, 0x0069, 0x0070, - 0x0075, 0x007a, 0x0080, 0x009f, 0x00a4, 0x00a8, 0x00b0, 0x00b5, - 0x00bb, 0x00c1, 0x00c8, 0x00e4, 0x00ee, 0x00f5, 0x0108, 0x0115, - 0x0123, 0x0132, 0x0132, 0x0139, 0x014a, 0x0151, 0x015b, 0x0161, - 0x0168, 0x016e, 0x0176, 0x017e, 0x0184, 0x0187, 0x018e, 0x019b, - 0x01aa, 0x01b0, 0x01b8, 0x01ca, 0x01d6, 0x01ec, 0x01f9, 0x01fe, - 0x0209, 0x020d, 0x0213, 0x021a, 0x0222, 0x022a, 0x0234, 0x0239, - // Entry 40 - 7F - 0x023f, 0x0246, 0x024b, 0x0251, 0x0257, 0x025c, 0x0260, 0x026d, - 0x0279, 0x027e, 0x0284, 0x0289, 0x0291, 0x0299, 0x029d, 0x02a1, - 0x02a6, 0x02ab, 0x02ab, 0x02b1, 0x02b9, 0x02c7, 0x02cc, 0x02db, - 0x02e3, 0x02ec, 0x02f0, 0x02f8, 0x02fc, 0x02ff, 0x030b, 0x0312, - 0x0321, 0x0329, 0x0332, 0x0338, 0x033d, 0x0342, 0x034c, 0x0352, - 0x0357, 0x035e, 0x0365, 0x0365, 0x0370, 0x0378, 0x037f, 0x038d, - 0x039a, 0x03a1, 0x03b0, 0x03c0, 0x03c6, 0x03d0, 0x03d5, 0x03dc, - 0x03e2, 0x03f3, 0x03fd, 0x040c, 0x0412, 0x0419, 0x0420, 0x0429, - // Entry 80 - BF - 0x0430, 0x043c, 0x0441, 0x044d, 0x0453, 0x0464, 0x0470, 0x047c, - 0x0484, 0x0489, 0x048f, 0x049b, 0x04a0, 0x04a6, 0x04ae, 0x04b4, - 0x04bc, 0x04c4, 0x04cb, 0x04d1, 0x04d5, 0x04da, 0x04e1, 0x04e9, - 0x04ec, 0x04fb, 0x0508, 0x050e, 0x0519, 0x0531, 0x0533, 0x053a, - 0x054b, 0x0551, 0x055f, 0x0563, 0x0574, -} - -// Size: 363 bytes -var isScriptStr string = "" + - "arabísktarmensktbengalsktbopomofoblindraleturkyrillísktdevanagarieþíópís" + - "ktgeorgísktgrísktgújaratígurmukhihangulkínverskteinfaldað hanhefðbundið " + - "hanhebreskthiraganakatakana eða hiraganajapansktkatakanakmerkannadakóres" + - "ktlaolatnesktmalalajammongólsktmjanmarsktoriyasinhalatamílskttelúgúthaan" + - "ataílenskttíbeskttáknóskrifaðalmenntóþekkt letur" - -// Size: 354 bytes, 165 elements -var isScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0009, 0x0009, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x001a, 0x001a, 0x0022, 0x0022, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x0039, 0x0039, 0x0043, 0x0043, 0x0043, 0x0043, - 0x0043, 0x0043, 0x0043, 0x0050, 0x0050, 0x005a, 0x005a, 0x005a, - 0x005a, 0x0061, 0x006b, 0x0073, 0x0079, 0x0083, 0x0083, 0x0091, - 0x00a1, 0x00a9, 0x00b1, 0x00b1, 0x00b1, 0x00c7, 0x00c7, 0x00c7, - 0x00c7, 0x00c7, 0x00cf, 0x00cf, 0x00cf, 0x00d7, 0x00d7, 0x00db, - // Entry 40 - 7F - 0x00db, 0x00e2, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ed, 0x00ed, - 0x00ed, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, - 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, - 0x00f5, 0x00fe, 0x00fe, 0x0108, 0x0108, 0x0108, 0x0108, 0x0112, - 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, - 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, - 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, - 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, - // Entry 80 - BF - 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, - 0x011e, 0x011e, 0x011e, 0x011e, 0x0127, 0x0127, 0x0127, 0x012f, - 0x012f, 0x012f, 0x012f, 0x0135, 0x013f, 0x0147, 0x0147, 0x0147, - 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, - 0x0147, 0x014c, 0x0156, 0x015d, 0x016b, -} - -// Size: 1560 bytes -var itScriptStr string = "" + - "afakaaraboaramaico imperialearmenoavesticobalinesebamumBassa Vahbatakben" + - "galesesimboli blissbopomofobrahmibraillebuginesebuhidchakmasimboli abori" + - "geni canadesi unificaticarianchamcherokeecirthcoptocipriotacirillicociri" + - "llico antica chiesa slavonicadevanagarideseretstenografia duployanegizia" + - "no demoticoieratico egizianogeroglifici egizianietiopekutsurigeorgianogl" + - "agoliticogoticogranthagrecogujaratigurmukhihangulhanhanunooHan semplific" + - "atoHan tradizionaleebraicohiraganageroglifici anatolicipahawn hmongkatan" + - "aka o hiraganaantico unghereseinduitalico anticojavanesegiapponesejurche" + - "nkayah likatakanakharoshthikhmerkhojkikannadacoreanoKpellekaithilannalao" + - "variante fraktur del latinovariante gaelica del latinolatinolepchalimbul" + - "ineare Alineare Blisulomalycilydimandaicomanicheogeroglifici mayamendeco" + - "rsivo meroiticomeroiticomalayalammongolomoonmromeetei mayekbirmanoarabo " + - "settentrionale anticonabateogeba naxin’konushuoghamol chikiorkhonoriyaos" + - "manyapalmirenopermico anticophags-papahlavi delle iscrizionipahlavi psal" + - "terpahlavi bookfeniciofonetica di pollardpartico delle iscrizionirejangr" + - "ongorongorunicosamaritanosaratiarabo meridionale anticosaurashtralinguag" + - "gio dei segnishavianosharadakhudawadisingalesesora sompengsundanesesylot" + - "i nagrisirianosiriaco estrangelosiriaco occidentalesiriaco orientaletagb" + - "anwatakritai letai luetamiltanguttai viettelugutengwartifinaghtagalogtha" + - "anathailandesetibetanotirhutaugaritavaiialfabeto visivovarang kshitiwole" + - "aipersiano anticosumero-accadiano cuneiformeyiereditatonotazione matemat" + - "icasimbolinon scrittocomuneignoto o non valido" - -// Size: 354 bytes, 165 elements -var itScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0005, 0x0005, 0x000a, 0x001c, 0x0022, 0x002a, 0x0032, - 0x0037, 0x0040, 0x0045, 0x004e, 0x005b, 0x0063, 0x0069, 0x0070, - 0x0078, 0x007d, 0x0083, 0x00a7, 0x00ad, 0x00b1, 0x00b9, 0x00be, - 0x00c3, 0x00cb, 0x00d4, 0x00f5, 0x00ff, 0x0106, 0x011a, 0x012b, - 0x013c, 0x0150, 0x0150, 0x0156, 0x015d, 0x0166, 0x0171, 0x0177, - 0x017e, 0x0183, 0x018b, 0x0193, 0x0199, 0x019c, 0x01a3, 0x01b3, - 0x01c3, 0x01ca, 0x01d2, 0x01e7, 0x01f3, 0x0206, 0x0216, 0x021a, - 0x0228, 0x0230, 0x023a, 0x0241, 0x0249, 0x0251, 0x025b, 0x0260, - // Entry 40 - 7F - 0x0266, 0x026d, 0x0274, 0x027a, 0x0280, 0x0285, 0x0288, 0x02a3, - 0x02be, 0x02c4, 0x02ca, 0x02cf, 0x02d8, 0x02e1, 0x02e5, 0x02e9, - 0x02ed, 0x02f1, 0x02f1, 0x02f9, 0x0301, 0x0311, 0x0316, 0x0327, - 0x0330, 0x0339, 0x0339, 0x0340, 0x0344, 0x0347, 0x0353, 0x035a, - 0x0375, 0x037c, 0x0385, 0x038b, 0x0390, 0x0395, 0x039d, 0x03a3, - 0x03a8, 0x03af, 0x03b8, 0x03b8, 0x03c6, 0x03ce, 0x03e6, 0x03f5, - 0x0401, 0x0408, 0x041b, 0x0433, 0x0439, 0x0443, 0x0449, 0x0453, - 0x0459, 0x0471, 0x047b, 0x048f, 0x0497, 0x049e, 0x049e, 0x04a7, - // Entry 80 - BF - 0x04b0, 0x04bc, 0x04c5, 0x04d1, 0x04d8, 0x04ea, 0x04fd, 0x050e, - 0x0516, 0x051b, 0x0521, 0x0528, 0x052d, 0x0533, 0x053b, 0x0541, - 0x0548, 0x0550, 0x0557, 0x055d, 0x0568, 0x0570, 0x0577, 0x057e, - 0x0582, 0x0591, 0x059e, 0x05a4, 0x05b3, 0x05ce, 0x05d0, 0x05d9, - 0x05ed, 0x05f4, 0x05ff, 0x0605, 0x0618, -} - -// Size: 3247 bytes -var jaScriptStr string = "" + - "アファカ文字カフカス・アルãƒãƒ‹ã‚¢æ–‡å­—アラビア文字å¸å›½ã‚¢ãƒ©ãƒ æ–‡å­—アルメニア文字アヴェスター文字ãƒãƒªæ–‡å­—ãƒãƒ ãƒ³æ–‡å­—ãƒã‚µæ–‡å­—ãƒã‚¿ã‚¯æ–‡å­—ベンガル文字ブリ" + - "スシンボル注音字æ¯ãƒ–ラーフミー文字ブライユ点字ブギス文字ブヒッド文字ãƒãƒ£ã‚¯ãƒžæ–‡å­—çµ±åˆã‚«ãƒŠãƒ€å…ˆä½æ°‘音節文字カリア文字ãƒãƒ£ãƒ æ–‡å­—ãƒã‚§ãƒ­ã‚­ãƒ¼æ–‡å­—ã‚­" + - "アス文字コプト文字キプロス文字キリル文字å¤ä»£æ•™ä¼šã‚¹ãƒ©ãƒ–語キリル文字デーãƒãƒŠãƒ¼ã‚¬ãƒªãƒ¼æ–‡å­—デセレット文字デュプロワエå¼é€Ÿè¨˜ã‚¨ã‚¸ãƒ—ト民衆文字エジプ" + - "ト神官文字エジプトè–刻文字エルãƒã‚µãƒ³æ–‡å­—エãƒã‚ªãƒ”ア文字グルジア文字(フツリ)グルジア文字グラゴル文字ゴート文字グランタ文字ギリシャ文字グジャ" + - "ラート文字グルムキー文字ãƒãƒ³ã‚°ãƒ«æ¼¢å­—ãƒãƒŒãƒŽã‚ªæ–‡å­—漢字(簡体字)漢字(ç¹ä½“å­—)ヘブライ文字ã²ã‚‰ãŒãªã‚¢ãƒŠãƒˆãƒªã‚¢è±¡å½¢æ–‡å­—パãƒã‚¦ãƒ»ãƒ•ãƒ¢ãƒ³æ–‡å­—ä»®åå¤ä»£" + - "ãƒãƒ³ã‚¬ãƒªãƒ¼æ–‡å­—インダス文字å¤ã‚¤ã‚¿ãƒªã‚¢æ–‡å­—ジャワ文字日本語ã®æ–‡å­—女真文字カヤー文字カタカナカローシュティー文字クメール文字ホジャ文字カンナダ文" + - "字韓国語ã®æ–‡å­—クペレ文字カイティ文字ラーンナー文字ラオ文字ラテン文字(ドイツ文字)ラテン文字 (ゲール文字)ラテン文字レプãƒãƒ£æ–‡å­—リンブ文字" + - "線文字A線文字Bフレイザー文字ロマ文字リキア文字リディア文字マãƒãƒ¼ã‚¸ãƒ£ãƒ‹ãƒ¼æ–‡å­—マンダ文字マニ文字マヤ象形文字メンデ文字メロエ文字è‰æ›¸ä½“メロエ" + - "文字マラヤーラム文字モーディー文字モンゴル文字ムーン文字ムロ文字メイテイ文字ミャンマー文字å¤ä»£åŒ—アラビア文字ナãƒãƒ†ã‚¢æ–‡å­—ナシæ—ゲãƒæ–‡å­—ンコ文" + - "字女書オガム文字オルãƒã‚­æ–‡å­—オルホン文字オリヤー文字オスマニア文字パルミラ文字パウ・ãƒãƒ³ãƒ»ãƒã‚¦æ–‡å­—å¤ãºãƒ«ãƒ æ–‡å­—パスパ文字碑文パフラヴィー文字" + - "詩編用パフラヴィー文字書物用パフラヴィー文字フェニキア文字ãƒãƒ©ãƒ¼ãƒ‰éŸ³å£°è¨˜å·ç¢‘文パルティア文字ルジャン文字ロンゴロンゴ文字ルーン文字サマリア文" + - "字サラティ文字å¤ä»£å—アラビア文字サウラーシュトラ文字手話文字ショー文字シャーラダー文字梵字クダワディ文字シンãƒãƒ©æ–‡å­—ソラング・ソンペング文字" + - "スンダ文字シロティ・ナグリ文字シリア文字シリア文字(エストランゲロ文字)シリア文字(西方シリア文字)シリア文字(æ±æ–¹ã‚·ãƒªã‚¢æ–‡å­—)ã‚¿ã‚°ãƒãƒ³ãƒ¯æ–‡" + - "字タークリー文字タイ・レ文字新タイ・ルー文字タミール文字西å¤æ–‡å­—タイ・ヴェト文字テルグ文字テングワール文字ティフナグ文字タガログ文字ターナ文" + - "字タイ文字ãƒãƒ™ãƒƒãƒˆæ–‡å­—ティルフータ文字ウガリット文字ヴァイ文字視話法ãƒãƒ©ãƒ³ãƒ»ã‚¯ã‚·ãƒ†ã‚£æ–‡å­—ウォレアイ文字å¤ä»£ãƒšãƒ«ã‚·ã‚¢æ–‡å­—シュメールï¼ã‚¢ãƒƒã‚«ãƒ‰èªž" + - "楔形文字イ文字基底文字ã®ç¨®åˆ¥ã‚’継承ã™ã‚‹çµåˆæ–‡å­—数学記å·è¨˜å·æ–‡å­—éžè¡¨è¨˜å…±é€šæ–‡å­—未定義文字" - -// Size: 354 bytes, 165 elements -var jaScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0012, 0x0036, 0x0048, 0x005d, 0x0072, 0x008a, 0x0096, - 0x00a5, 0x00b1, 0x00c0, 0x00d2, 0x00e7, 0x00f3, 0x010b, 0x011d, - 0x012c, 0x013e, 0x0150, 0x0174, 0x0183, 0x0192, 0x01a7, 0x01b6, - 0x01c5, 0x01d7, 0x01e6, 0x020d, 0x022b, 0x0240, 0x025b, 0x0273, - 0x028b, 0x02a3, 0x02b8, 0x02cd, 0x02ea, 0x02fc, 0x030e, 0x031d, - 0x032f, 0x0341, 0x0359, 0x036e, 0x037a, 0x0380, 0x0392, 0x03a3, - 0x03b4, 0x03c6, 0x03d2, 0x03ed, 0x0408, 0x040e, 0x0429, 0x043b, - 0x0450, 0x045f, 0x0471, 0x047d, 0x048c, 0x0498, 0x04b6, 0x04c8, - // Entry 40 - 7F - 0x04d7, 0x04e9, 0x04fb, 0x050a, 0x051c, 0x0531, 0x053d, 0x055d, - 0x057e, 0x058d, 0x059f, 0x05ae, 0x05b8, 0x05c2, 0x05d7, 0x05e3, - 0x05f2, 0x0604, 0x061f, 0x062e, 0x063a, 0x064c, 0x065b, 0x0673, - 0x0682, 0x069a, 0x06af, 0x06c1, 0x06d0, 0x06dc, 0x06ee, 0x0703, - 0x071e, 0x0730, 0x0745, 0x0751, 0x0757, 0x0766, 0x0778, 0x078a, - 0x079c, 0x07b1, 0x07c3, 0x07e1, 0x07f3, 0x0802, 0x0820, 0x0841, - 0x0862, 0x0877, 0x088f, 0x08aa, 0x08bc, 0x08d4, 0x08e3, 0x08f5, - 0x0907, 0x0922, 0x0940, 0x094c, 0x095b, 0x0973, 0x0979, 0x098e, - // Entry 80 - BF - 0x09a0, 0x09c4, 0x09d3, 0x09f1, 0x0a00, 0x0a2c, 0x0a52, 0x0a78, - 0x0a8d, 0x0aa2, 0x0ab4, 0x0acc, 0x0ade, 0x0aea, 0x0b02, 0x0b11, - 0x0b29, 0x0b3e, 0x0b50, 0x0b5f, 0x0b6b, 0x0b7d, 0x0b95, 0x0baa, - 0x0bb9, 0x0bc2, 0x0be0, 0x0bf5, 0x0c0d, 0x0c3a, 0x0c43, 0x0c73, - 0x0c7f, 0x0c8b, 0x0c94, 0x0ca0, 0x0caf, -} - -// Size: 4008 bytes -var kaScriptStr string = "" + - "áƒáƒ¤áƒáƒ™áƒáƒáƒ áƒáƒ‘ულიიმპერიული áƒáƒ áƒáƒ›áƒ”ულისáƒáƒ›áƒ®áƒ£áƒ áƒ˜áƒáƒ•áƒ”სტურიბáƒáƒšáƒ˜áƒ£áƒ áƒ˜áƒ‘áƒáƒ›áƒ£áƒ›áƒ˜áƒ‘áƒáƒ¡áƒ ვáƒáƒ°áƒ˜áƒ‘áƒáƒ¢áƒáƒ™" + - "იბენგáƒáƒšáƒ£áƒ áƒ˜áƒ‘ლისსიმბáƒáƒšáƒáƒ”ბიბáƒáƒžáƒáƒ›áƒáƒ¤áƒáƒ‘რáƒáƒ°áƒ›áƒ˜áƒ‘რáƒáƒ˜áƒšáƒ˜áƒ‘უჰიდიჩáƒáƒ™áƒ›áƒáƒ™áƒáƒ áƒ˜áƒ£áƒšáƒ˜áƒ©áƒáƒ›áƒ˜áƒ©áƒ”რáƒ" + - "კიკირთიკáƒáƒžáƒ¢áƒ£áƒ áƒ˜áƒ™áƒ•áƒ˜áƒžáƒ áƒáƒ¡áƒ£áƒšáƒ˜áƒ™áƒ˜áƒ áƒ˜áƒšáƒ˜áƒªáƒáƒ«áƒ•áƒ”ლი სლáƒáƒ•áƒ£áƒ áƒ˜ კირილიცáƒáƒ“ევáƒáƒœáƒáƒ’áƒáƒ áƒ˜áƒ“ეზერე" + - "ტისდუპლáƒáƒ˜áƒ¡ სტენáƒáƒ’რáƒáƒ¤áƒ˜áƒáƒ”გვიპტური დემáƒáƒ¢áƒ˜áƒ™áƒ£áƒ áƒ˜áƒ”გვიპტური იერáƒáƒ¢áƒ˜áƒ™áƒ£áƒšáƒ˜áƒ”გვიპტურ" + - "ი იერáƒáƒ’ლიფურიეთიáƒáƒžáƒ˜áƒ£áƒ áƒ˜áƒ®áƒ£áƒªáƒ£áƒ áƒ˜áƒ¥áƒáƒ áƒ—ულიგლáƒáƒ’áƒáƒšáƒ˜áƒªáƒáƒ’áƒáƒ—ურიგრáƒáƒœáƒ—áƒáƒ‘ერძნულიგუჯáƒáƒ áƒ" + - "თულიგურმუხიჰáƒáƒœáƒ’ულიჰáƒáƒœáƒ˜áƒ°áƒáƒœáƒ£áƒœáƒáƒáƒ’áƒáƒ›áƒáƒ áƒ¢áƒ˜áƒ•áƒ”ბული ჰáƒáƒœáƒ˜áƒ¢áƒ áƒáƒ“იციული ჰáƒáƒœáƒ˜áƒ”ბრáƒáƒ£áƒšáƒ˜áƒ°" + - "ირáƒáƒ’áƒáƒœáƒáƒáƒœáƒáƒ¢áƒáƒšáƒ˜áƒ£áƒ áƒ˜ იერáƒáƒ’ლიფურიფáƒáƒ°áƒáƒ£-მáƒáƒœáƒ˜áƒ˜áƒáƒžáƒáƒœáƒ£áƒ áƒ˜ კáƒáƒœáƒáƒ«áƒ•áƒ”ლი უნგრულიიáƒáƒ•áƒ£áƒ " + - "იიáƒáƒžáƒáƒœáƒ£áƒ áƒ˜áƒ¯áƒ£áƒ áƒ¯áƒ”ნულიკáƒáƒ˜áƒáƒ°-ლიკáƒáƒ¢áƒáƒ™áƒáƒœáƒáƒ¥áƒáƒ áƒáƒ¨áƒ—იქმერულიქáƒáƒ¯áƒ™áƒ˜áƒ™áƒáƒœáƒáƒ“áƒáƒ™áƒáƒ áƒ”ულიკპელ" + - "ეკáƒáƒ˜áƒ—ილáƒáƒáƒ¡áƒ£áƒ áƒ˜áƒ’ელური ლáƒáƒ—ინურილáƒáƒ—ინურილიმბუA-ხáƒáƒ–áƒáƒ•áƒáƒœáƒ˜B-ხáƒáƒ–áƒáƒ•áƒáƒœáƒ˜áƒšáƒáƒ›áƒáƒšáƒ˜áƒ™áƒ˜áƒ£" + - "რილიდიურიმáƒáƒœáƒ“ეურიმáƒáƒœáƒ˜áƒ¥áƒ”ურიმáƒáƒ˜áƒáƒ¡ იერáƒáƒ’ლიფებიმენდემერáƒáƒ˜áƒ¢áƒ£áƒšáƒ˜ კურსივიმერáƒáƒ˜" + - "ტულიმáƒáƒšáƒáƒ˜áƒáƒšáƒáƒ›áƒ£áƒ áƒ˜áƒ›áƒáƒœáƒ¦áƒáƒšáƒ£áƒ áƒ˜áƒ›áƒ áƒáƒ›áƒ˜áƒáƒœáƒ›áƒ£áƒ áƒ˜áƒ«áƒ•áƒ”ლი ჩრდილáƒáƒ”თ-áƒáƒ áƒáƒ‘ულინáƒáƒ‘áƒáƒ¢áƒ”ურინკáƒ" + - "ნუშუáƒáƒ¦áƒáƒ›áƒ˜áƒáƒš-ჩიკიáƒáƒ áƒ®áƒáƒœáƒ£áƒšáƒ˜áƒáƒ áƒ˜áƒáƒáƒ¡áƒ›áƒáƒœáƒ˜áƒáƒžáƒáƒšáƒ›áƒ˜áƒ áƒ£áƒšáƒ˜áƒ«áƒ•áƒ”ლი პერმულიფáƒáƒ’სპáƒáƒ›áƒáƒœáƒ£áƒ›áƒ”ნ" + - "ტური ფáƒáƒšáƒáƒ£áƒ áƒ˜áƒ¤áƒ¡áƒáƒšáƒ›áƒ£áƒœáƒ£áƒ áƒ˜ ფáƒáƒšáƒáƒ£áƒ áƒ˜áƒ¬áƒ˜áƒ’ნური ფáƒáƒšáƒáƒ£áƒ áƒ˜áƒ¤áƒ˜áƒœáƒ˜áƒ™áƒ˜áƒ£áƒ áƒ˜áƒ›áƒáƒœáƒ£áƒ›áƒ”ნტური პáƒáƒ áƒ—" + - "ულირეჯáƒáƒœáƒ’ირáƒáƒœáƒ’áƒáƒ áƒáƒœáƒ’áƒáƒ áƒ£áƒœáƒ£áƒšáƒ˜áƒ¡áƒáƒ›áƒáƒ áƒ˜áƒ£áƒšáƒ˜áƒ¡áƒáƒ áƒáƒ¢áƒ˜áƒ«áƒ•áƒ”ლი სáƒáƒ›áƒ®áƒ áƒ”თ-áƒáƒ áƒáƒ‘ულისáƒáƒ£áƒ áƒáƒ¨áƒ¢áƒ " + - "áƒáƒŸáƒ”სტთáƒáƒ¨áƒáƒ áƒáƒ“áƒáƒ¥áƒ£áƒ“áƒáƒ•áƒáƒ“ისინჰáƒáƒšáƒ£áƒ áƒ˜áƒ¡áƒáƒ áƒáƒœ-სáƒáƒ›áƒžáƒ”ნისუნდáƒáƒœáƒ£áƒ áƒ˜áƒ¡áƒ˜áƒšáƒáƒ¢áƒ˜ ნáƒáƒ’რისირიულ" + - "ისირიული ესტრáƒáƒœáƒ’ელáƒáƒ“áƒáƒ¡áƒáƒ•áƒšáƒ”თი სირიულიáƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თი სირიულიტáƒáƒ’ბáƒáƒœáƒ•áƒáƒ¢áƒáƒ™áƒ áƒ˜áƒ¢áƒ" + - "ი ლეáƒáƒ®áƒáƒšáƒ˜ ტáƒáƒ˜ ლიუტáƒáƒ›áƒ˜áƒšáƒ£áƒ áƒ˜áƒ¢áƒáƒœáƒ¦áƒ£áƒ¢áƒ£áƒ áƒ˜áƒ¢áƒáƒ˜-ვიეტიტელუგუტენგვáƒáƒ áƒ˜áƒ¢áƒ˜áƒ¤áƒ˜áƒœáƒáƒ¦áƒ˜áƒ—áƒáƒáƒœáƒ" + - "ტáƒáƒ˜áƒ¢áƒ˜áƒ‘ეტურიტირჰუტáƒáƒ£áƒ’áƒáƒ áƒ˜áƒ—ულივáƒáƒ˜áƒ®áƒ˜áƒšáƒ£áƒšáƒ˜ მეტყველებáƒáƒ•áƒáƒ áƒáƒœáƒ’-კშიტივáƒáƒšáƒ”áƒáƒ˜áƒ«áƒ•áƒ”ლი" + - " სპáƒáƒ áƒ¡áƒ£áƒšáƒ˜áƒ¨áƒ£áƒ›áƒ”რულ-áƒáƒ¥áƒáƒ“ური ლურსმნულიგáƒáƒ“áƒáƒ¦áƒ”ბულიმáƒáƒ—ემáƒáƒ¢áƒ˜áƒ™áƒ£áƒ áƒ˜ ნáƒáƒ¢áƒáƒªáƒ˜áƒáƒ¡áƒ˜áƒ›áƒ‘áƒáƒšáƒáƒ”" + - "ბიუმწერლáƒáƒ‘áƒáƒ–áƒáƒ’áƒáƒ“იუცნáƒáƒ‘ი დáƒáƒ›áƒ¬áƒ”რლáƒáƒ‘áƒ" - -// Size: 354 bytes, 165 elements -var kaScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000f, 0x000f, 0x0024, 0x0058, 0x006d, 0x0085, 0x009a, - 0x00ac, 0x00c5, 0x00d7, 0x00f2, 0x011c, 0x0134, 0x0146, 0x0158, - 0x0158, 0x016a, 0x0179, 0x0179, 0x018e, 0x019a, 0x01ac, 0x01bb, - 0x01d0, 0x01ee, 0x0206, 0x0244, 0x0262, 0x027d, 0x02b4, 0x02ee, - 0x0328, 0x0365, 0x0365, 0x0380, 0x0392, 0x03a7, 0x03c2, 0x03d4, - 0x03e6, 0x03fe, 0x041c, 0x0431, 0x0446, 0x0452, 0x0467, 0x049b, - 0x04c6, 0x04db, 0x04f3, 0x0533, 0x054f, 0x0574, 0x0599, 0x0599, - 0x0599, 0x05ab, 0x05c3, 0x05de, 0x05f4, 0x060c, 0x0621, 0x0636, - // Entry 40 - 7F - 0x0645, 0x0657, 0x066c, 0x067b, 0x068a, 0x068a, 0x069f, 0x069f, - 0x06ca, 0x06e2, 0x06e2, 0x06f1, 0x070b, 0x0725, 0x0725, 0x0731, - 0x0746, 0x075b, 0x075b, 0x0773, 0x078e, 0x07bf, 0x07ce, 0x07ff, - 0x081a, 0x083e, 0x083e, 0x0859, 0x0859, 0x0862, 0x0862, 0x087a, - 0x08b8, 0x08d3, 0x08d3, 0x08dc, 0x08e8, 0x08f7, 0x090a, 0x0922, - 0x092e, 0x0943, 0x095e, 0x095e, 0x0983, 0x0995, 0x09cc, 0x0a00, - 0x0a2b, 0x0a46, 0x0a46, 0x0a7d, 0x0a92, 0x0ab0, 0x0ac2, 0x0add, - 0x0aef, 0x0b2a, 0x0b45, 0x0b57, 0x0b57, 0x0b69, 0x0b69, 0x0b81, - // Entry 80 - BF - 0x0b9c, 0x0bc1, 0x0bdc, 0x0bfe, 0x0c13, 0x0c47, 0x0c78, 0x0caf, - 0x0cc7, 0x0cd6, 0x0ce6, 0x0d09, 0x0d21, 0x0d3c, 0x0d55, 0x0d67, - 0x0d7f, 0x0d97, 0x0d97, 0x0da6, 0x0daf, 0x0dc7, 0x0ddc, 0x0df7, - 0x0e00, 0x0e31, 0x0e53, 0x0e65, 0x0e8d, 0x0ed4, 0x0ed4, 0x0ef2, - 0x0f2c, 0x0f4a, 0x0f65, 0x0f77, 0x0fa8, -} - -// Size: 922 bytes -var kkScriptStr string = "" + - "араб жазуыармÑн жазуыбенгал жазуыбопомофо жазуБрайль жазуыкирилл жазуыде" + - "ванагари жазуыÑфиоп жазугрузин жазуыгрек жазуыгуджарати жазуыгурмукхи ж" + - "азуыхангул жазуықытай жазуыжеңілдетілген қытай иероглифыдәÑтүрлі қытай " + - "иероглифыиврит жазуыхирагана жазуыжапон жазуыкатакана жазуыкхмер жазуык" + - "аннада жазуыкорей Ð¶Ð°Ð·ÑƒÑ‹Ð»Ð°Ð¾Ñ Ð¶Ð°Ð·ÑƒÑ‹Ð»Ð°Ñ‚Ñ‹Ð½ жазуымалаÑлам жазуымонғол жазуым" + - "аÑнмар Ð¶Ð°Ð·ÑƒÑ‹Ð¾Ñ€Ð¸Ñ Ð¶Ð°Ð·ÑƒÑ‹Ñингаль жазуытамиль жазуытелугу жазуытаана жазуыт" + - "ай жазуытибет жазуытаңбаларжазуÑызжалпыбелгіÑіз жазба" - -// Size: 354 bytes, 165 elements -var kkScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0013, 0x0013, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x003f, 0x003f, 0x0058, 0x0058, 0x006f, - 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, - 0x006f, 0x006f, 0x0086, 0x0086, 0x00a5, 0x00a5, 0x00a5, 0x00a5, - 0x00a5, 0x00a5, 0x00a5, 0x00b8, 0x00b8, 0x00cf, 0x00cf, 0x00cf, - 0x00cf, 0x00e2, 0x00ff, 0x011a, 0x0131, 0x0146, 0x0146, 0x017e, - 0x01ac, 0x01c1, 0x01dc, 0x01dc, 0x01dc, 0x01dc, 0x01dc, 0x01dc, - 0x01dc, 0x01dc, 0x01f1, 0x01f1, 0x01f1, 0x020c, 0x020c, 0x0221, - // Entry 40 - 7F - 0x0221, 0x023a, 0x024f, 0x024f, 0x024f, 0x024f, 0x0262, 0x0262, - 0x0262, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, - 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, - 0x0277, 0x0292, 0x0292, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02c2, - 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, - 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, - 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, - 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, - // Entry 80 - BF - 0x02ee, 0x02ee, 0x02ee, 0x02ee, 0x02ee, 0x02ee, 0x02ee, 0x02ee, - 0x02ee, 0x02ee, 0x02ee, 0x02ee, 0x0305, 0x0305, 0x0305, 0x031c, - 0x031c, 0x031c, 0x031c, 0x0331, 0x0342, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, - 0x0357, 0x0367, 0x0375, 0x037f, 0x039a, -} - -// Size: 966 bytes -var kmScriptStr string = "" + - "អារ៉ាប់អារមáŸáž“ីបង់ក្លាដែសបូផូម៉ូហ្វូអក្សរ\u200bសម្រាប់មនុស្ស\u200bពិការ" + - "\u200bភ្នែកស៊ីរីដាវ៉ាន់ណាការិអáŸážáŸ’យូពីហ្សកហ្ស៊ីក្រិចកុដ្យារ៉ាទីកុមុយឃីហាំ" + - "ងកុលហានអក្សរ\u200bហាន\u200bកាážáŸ‹áž¢áž€áŸ’សរ\u200bហាន\u200báž–áŸáž‰áž¢áŸŠáž¸ážŸáŸ’រាអែលហ៊ីរ៉ា" + - "កាណាជប៉ុនកážáž¶áž€áž¶ážŽáž¶ážáŸ’មែរកណាដាកូរ៉áŸáž¡áž¶ážœáž¡áž¶ážáž¶áŸ†áž„មលយាលáŸáž˜áž˜áŸ‰áž»áž„ហ្គោលីភូមាអូរីយ៉ាស្" + - "រីលង្ការážáž¶áž˜áž¸áž›ážáŸáž›áž»áž‚áž»ážáž¶ážŽáž¶ážáŸƒážáŸƒáž”៉ិនិមិážáŸ’ážážŸáž‰áŸ’ញាគ្មាន\u200bសរសáŸážšáž’ម្មážáž¶áž˜áž·áž“" + - "\u200bស្គាល់\u200bអក្សរ" - -// Size: 354 bytes, 165 elements -var kmScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0015, 0x0015, 0x002a, 0x002a, 0x002a, - 0x002a, 0x002a, 0x002a, 0x0048, 0x0048, 0x0069, 0x0069, 0x00c6, - 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, - 0x00c6, 0x00c6, 0x00d5, 0x00d5, 0x00fc, 0x00fc, 0x00fc, 0x00fc, - 0x00fc, 0x00fc, 0x00fc, 0x0114, 0x0114, 0x012f, 0x012f, 0x012f, - 0x012f, 0x013e, 0x015f, 0x0174, 0x0189, 0x0192, 0x0192, 0x01bc, - 0x01e3, 0x0201, 0x021f, 0x021f, 0x021f, 0x021f, 0x021f, 0x021f, - 0x021f, 0x021f, 0x022e, 0x022e, 0x022e, 0x0243, 0x0243, 0x0252, - // Entry 40 - 7F - 0x0252, 0x0261, 0x0270, 0x0270, 0x0270, 0x0270, 0x0279, 0x0279, - 0x0279, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, - 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, - 0x028b, 0x02a0, 0x02a0, 0x02be, 0x02be, 0x02be, 0x02be, 0x02ca, - 0x02ca, 0x02ca, 0x02ca, 0x02ca, 0x02ca, 0x02ca, 0x02ca, 0x02ca, - 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, - 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, - 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, - // Entry 80 - BF - 0x02fd, 0x02fd, 0x02fd, 0x02fd, 0x02fd, 0x02fd, 0x02fd, 0x02fd, - 0x02fd, 0x02fd, 0x02fd, 0x02fd, 0x030c, 0x030c, 0x030c, 0x031e, - 0x031e, 0x031e, 0x031e, 0x032a, 0x0330, 0x033f, 0x033f, 0x033f, - 0x033f, 0x033f, 0x033f, 0x033f, 0x033f, 0x033f, 0x033f, 0x033f, - 0x033f, 0x0363, 0x0384, 0x0396, 0x03c6, -} - -// Size: 3788 bytes -var knScriptStr string = "" + - "ಅರೇಬಿಕà³à²‡à²‚ಪೀರಿಯಲೠಅರೆಮಾಯಿಕà³à²…ರà³à²®à³‡à²¨à²¿à²¯à²¨à³à²…ವೆಸà³à²¤à²¾à²¨à³à²¬à²¾à²²à²¿à²¨à³€à²¸à³à²¬à²¾à²Ÿà²•à³à²¬à³†à²‚ಗಾಲಿಬà³à²²à²¿à²¸à³" + - "\u200cಸಿಂಬಲà³à²¸à³à²¬à³‹à²ªà³Šà²®à³‹à²«à³‹à²¬à³à²°à²¾à²¹à³à²®à²¿à²¬à³à²°à³ˆà²²à³à²¬à²—ಿನೀಸà³à²¬à³à²¹à²¿à²¦à³à²•à²¾à²•à²‚ಯà³à²¨à²¿à²Ÿà³†à²¡à³ ಕೆನೆಡಿಯನೠ" + - "ಅಬೊರಿಜಿನಲೠಸಿಲà³à²¯à²¾à²¬à²¿à²•à³à²¸à³à²•à²°à³‡à²¨à³à²šà²¾à²®à³à²šà³†à²°à³‹à²•à³€à²¸à²¿à²°à³à²¥à³à²•à²¾à²ªà³à²Ÿà²¿à²•à³à²¸à²¿à²ªà³à²°à²¿à²¯à²¾à²Ÿà³à²¸à²¿à²°à²¿à²²à²¿à²•à³" + - "ಪà³à²°à²¾à²šà³€à²¨ ಚರà³à²šà³ ಸà³à²²à³‹à²µà²¾à²¨à²¿à²•à³ ಸಿರಿಲಿಕà³à²¦à³‡à²µà²¨à²¾à²—ರಿಡಸರà³à²Ÿà³à²ˆà²œà²¿à²ªà³à²Ÿà²¿à²¯à²¨à³ ಡೆಮೋಟಿಕà³à²ˆà²œà²¿à²ª" + - "à³à²Ÿà²¿à²¯à²¨à³ ಹಯಾರಿಟಿಕà³à²ˆà²œà²¿à²ªà³à²Ÿà²¿à²¯à²¨à³ ಹೀರೋಗà³à²²à²¿à²«à³à²¸à³à²‡à²¥à²¿à²¯à³‹à²ªà²¿à²•à³à²œà²¾à²°à³à²œà²¿à²¯à²¨à³ ಖà³à²¸à³à²¤à³à²°à²¿à²œà²¾à²°à³" + - "ಜಿಯನà³à²—à³à²²à²¾à²—ೋಲಿಟಿಕà³à²—ೋತಿಕà³à²—à³à²°à³€à²•à³à²—à³à²œà²°à²¾à²¤à²¿à²—à³à²°à³à²®à³à²–ಿಹà³à²¯à²¾à²‚ಗà³à²²à³à²¹à²¾à²¨à³à²¹à²¨à³‚ನೂಸರಳೀಕೃತ " + - "ಹಾನà³à²¸à²¾à²‚ಪà³à²°à²¦à²¾à²¯à²¿à²• ಹಾನà³à²¹à³€à²¬à³à²°à³‚ಹಿರಗಾನಾಪಹವೠಹà³à²®à³‹à²‚ಗà³à²•à²Ÿà²•à²¾à²¨à²¾ ಅಥವಾ ಹಿರಗಾನಾಪà³à²°à²¾à²šà³€" + - "ನ ಹಂಗೇರಿಯನà³à²¸à²¿à²‚ಧೂಪà³à²°à²¾à²šà³€à²¨à³ ಇಟಾಲಿಕà³à²œà²¾à²µà²¨à³€à²¸à³à²œà²¾à²ªà²¨à³€à²¸à³à²•à³†à²¯à²¾ ಲಿಕಟಕಾನಾಖರೋಶà³à²¤à²¿à²–ಮೇಕ" + - "ನà³à²¨à²¡à²•à³Šà²°à²¿à²¯à²¨à³à²•à³ˆà²¥à²¿à²²à²¾à²¨à²¾à²²à²¾à²µà³‹à²«à³à²°à²¾à²•à³à²¤à²°à³ ಲà³à²¯à²¾à²Ÿà²¿à²¨à³à²—ೇಲಿಕೠಲà³à²¯à²¾à²Ÿà²¿à²¨à³à²²à³à²¯à²¾à²Ÿà²¿à²¨à³à²²à³†à²ªà³à²šà²¾" + - "ಲಿಂಬà³à²²à³€à²¨à²¯à²°à³ ಎಲೀನಯರೠಬಿಲೈಸಿಯನà³à²²à²¿à²¡à²¿à²¯à²¨à³à²®à²‚ಡೇಯನà³à²®à²¨à²¿à²šà³ˆà²¯à²¨à³à²®à²¯à²¾à²¨à³ ಹೀರೋಗà³à²²à²¿à²«à³à²¸à³à²®" + - "ೆರೊಯಿಟಿಕà³à²®à²²à²¯à²¾à²³à²‚ಮಂಗೋಲಿಯನà³à²®à³‚ನà³à²®à³ˆà²¤à²¿ ಮಯೆಕà³à²®à³à²¯à²¾à²¨à³à²®à²¾à²°à³à²Žà²¨à³\u200dಕೋಓಘಮà³à²“ಲೠಚಿಕ" + - "ಿಓರà³à²–ೋನà³à²’ರಿಯಾಓಸà³à²®à²¾à²¨à³à²¯à²¾à²ªà³à²°à²¾à²šà³€à²¨ ಪೆರà³à²®à²¿à²•à³à²«à²¾à²—à³à²¸à³-ಪಾಇನà³à²¸à³\u200cಕà³à²°à²¿à²ªà³à²¶à²¨à²²à³ ಪ" + - "ಾಹà³à²²à²µà²¿à²¸à²¾à²²à³à²Ÿà²°à³ ಪಾಹà³à²²à²µà²¿à²¬à³à²•à³ ಪಾಹà³à²²à²µà²¿à²«à³€à²¨à²¿à²¶à²¿à²¯à²¨à³à²ªà³Šà²²à³à²²à²¾à²°à³à²¡à³ ಫೊನೆಟಿಕà³à²‡à²¨à³à²¸à³" + - "\u200cಕà³à²°à²¿à²ªà³à²¶à²¨à²²à³ ಪಾರà³à²¥à²¿à²¯à²¨à³à²°à³†à²œà²¾à²‚ಗà³à²°à³‹à²‚ಗೋರೋಂಗೋರೂನಿಕà³à²¸à²®à²¾à²°à²¿à²Ÿà²¨à³à²¸à²°à²¾à²Ÿà²¿à²¸à³Œà²°à²¾à²·à³à²Ÿà³à²°à²¸" + - "ೈನà³\u200cರೈಟಿಂಗà³à²¶à²¾à²µà²¿à²¯à²¾à²¨à³à²¸à²¿à²‚ಹಳಸà³à²‚ಡಾನೀಸà³à²¸à³ˆà²²à³‹à²Ÿà²¿ ನಗà³à²°à²¿à²¸à²¿à²°à²¿à²¯à²¾à²•à³à²Žà²¸à³à²Ÿà³à²°à²¾à²‚ಜಿಲೋ" + - " ಸಿರಿಯಾಕà³à²ªà²¶à³à²šà²¿à²® ಸಿರಿಯಾಕà³à²ªà³‚ರà³à²µ ಸಿರಿಯಾಕà³à²Ÿà²¾à²—à³à²¬à²¾à²¨à²µà²¾à²¥à²¾à²¯à³ ಲಿನà³à²¯à³‚ ಥಾಯೠಲà³à²‡à²¤à²®à²¿à²³à³" + - "ಥಾಯೠವಿಯೆಟà³à²¤à³†à²²à³à²—à³à²¤à³†à²‚ಗà³\u200cವಾರà³à²Ÿà²¿à²«à²¿à²¨à²¾à²˜à³à²Ÿà³à²¯à²¾à²—ಲೋಗà³à²¥à²¾à²¨à²¾à²¥à²¾à²¯à³à²Ÿà²¿à²¬à³‡à²Ÿà²¨à³à²‰à²—ಾರಿಟ" + - "ಿಕà³à²µà²¾à²¯à³à²µà²¿à²¸à²¿à²¬à²²à³ ಸà³à²ªà³€à²šà³à²ªà³à²°à²¾à²šà³€à²¨ ಪರà³à²¶à²¿à²¯à²¨à³à²¸à³à²®à³‡à²°à³‹-ಅಕà³à²•à²¾à²¡à²¿à²¯à²¨à³ ಕà³à²¯à³‚ನಿಫಾರà³à²®à³à²¯à²¿à²‡" + - "ನà³\u200dಹೆರಿಟೆಡà³à²—ಣೀತ ಸಂಕೇತಲಿಪಿಸಂಕೇತಗಳà³à²…ಲಿಖಿತಸಾಮಾನà³à²¯à²—ೊತà³à²¤à²¿à²²à³à²²à²¦ ಲಿಪಿ" - -// Size: 354 bytes, 165 elements -var knScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0015, 0x004c, 0x006a, 0x0085, 0x009d, - 0x009d, 0x009d, 0x00ac, 0x00c1, 0x00ee, 0x0106, 0x011e, 0x0130, - 0x0145, 0x0157, 0x0163, 0x01db, 0x01ea, 0x01f6, 0x0208, 0x021a, - 0x0232, 0x0250, 0x0268, 0x02c5, 0x02dd, 0x02ef, 0x02ef, 0x0326, - 0x0360, 0x03a3, 0x03a3, 0x03be, 0x03f2, 0x040d, 0x0431, 0x0443, - 0x0443, 0x0455, 0x046a, 0x0482, 0x049d, 0x04a9, 0x04b8, 0x04da, - 0x0508, 0x051a, 0x052f, 0x052f, 0x0551, 0x0586, 0x05b7, 0x05c6, - 0x05f4, 0x0609, 0x061e, 0x061e, 0x0631, 0x0643, 0x0658, 0x0661, - // Entry 40 - 7F - 0x0661, 0x0670, 0x0685, 0x0685, 0x0691, 0x069d, 0x06a9, 0x06dd, - 0x0708, 0x0720, 0x0732, 0x0741, 0x0757, 0x0770, 0x0770, 0x0770, - 0x0785, 0x079a, 0x079a, 0x07af, 0x07c7, 0x07fb, 0x07fb, 0x07fb, - 0x0819, 0x082b, 0x082b, 0x0846, 0x0852, 0x0852, 0x086e, 0x088c, - 0x088c, 0x088c, 0x088c, 0x089e, 0x089e, 0x08aa, 0x08c0, 0x08d5, - 0x08e4, 0x08ff, 0x08ff, 0x08ff, 0x092d, 0x0946, 0x098c, 0x09b7, - 0x09d9, 0x09f4, 0x0a2b, 0x0a77, 0x0a8c, 0x0aaa, 0x0abc, 0x0ad4, - 0x0ae3, 0x0ae3, 0x0afe, 0x0b22, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, - // Entry 80 - BF - 0x0b49, 0x0b49, 0x0b64, 0x0b86, 0x0b9e, 0x0bdb, 0x0c06, 0x0c2e, - 0x0c49, 0x0c49, 0x0c5c, 0x0c7f, 0x0c8e, 0x0c8e, 0x0cad, 0x0cbf, - 0x0cdd, 0x0cf5, 0x0d10, 0x0d1c, 0x0d28, 0x0d3d, 0x0d3d, 0x0d58, - 0x0d64, 0x0d8c, 0x0d8c, 0x0d8c, 0x0dba, 0x0e10, 0x0e16, 0x0e3a, - 0x0e62, 0x0e7a, 0x0e8c, 0x0ea1, 0x0ecc, -} - -// Size: 2788 bytes -var koScriptStr string = "" + - "아파카 문ìžì½”카시안 알바니아 문ìžì•„ëž ë¬¸ìžì•„ëžì œêµ­ 문ìžì•„르메니아 문ìžì•„베스타 문ìžë°œë¦¬ 문ìžë°”ë­„ 문ìžë°”사바í 문ìžë°”íƒ€í¬ ë¬¸ìžë²µê³¨ 문" + - "ìžë¸”리스기호 문ìžì£¼ìŒë¶€í˜¸ë¸Œë¼ë¯¸ë¸Œë¼ìœ  ì ìžë¶€ê¸° 문ìžë¶€ížˆë“œ 문ìžì°¨í¬ë§ˆ 문ìží†µí•© ìºë‚˜ë‹¤ 토착어카리 문ìžì¹¸ 고어체로키 문ìží‚¤ë¥´ì“°ì½¥íŠ¸ " + - "문ìží‚¤í”„로스 문ìží‚¤ë¦´ 문ìžê³ ëŒ€êµíšŒìŠ¬ë¼ë¸Œì–´ 키릴문ìžë°ë°”나가리 문ìžë””저렛 문ìžë“€í”Œë¡œì´ì•ˆ 문ìžê³ ëŒ€ ì´ì§‘트 민중문ìžê³ ëŒ€ ì´ì§‘트 신관문" + - "ìžê³ ëŒ€ ì´ì§‘트 신성문ìžì—˜ë°”ì‚° 문ìžì—티오피아 문ìžê·¸ë£¨ì§€ì•¼ 쿠츠리 문ìžê·¸ë£¨ì§€ì•¼ 문ìžê¸€ë¼ê³¨ 문ìžê³ íŠ¸ 문ìžê·¸ëž€íƒ€ 문ìžê·¸ë¦¬ìŠ¤ 문ìžêµ¬ìŸˆë¼" + - "í‹° 문ìžêµ¬ë¥´ë¬´í‚¤ 문ìží•œê¸€í•œìží•˜ëˆ„누 문ìží•œìž ê°„ì²´í•œìž ë²ˆì²´ížˆë¸Œë¦¬ 문ìžížˆë¼ê°€ë‚˜ì•„나톨리아 ìƒí˜•ë¬¸ìžíŒŒí•˜ìš° 몽 문ìžê°€ë‚˜ê³ ëŒ€ í—가리 문ìž" + - "ì¸ë”스 문ìžê³ ëŒ€ ì´íƒˆë¦¬ì•„ 문ìžìžë°” 문ìžì¼ë³¸ 문ìžì¤„첸 문ìžì¹´ì•¼ 리 문ìžê°€íƒ€ì¹´ë‚˜ì¹´ë¡œìŠˆí‹° 문ìží¬ë©”르 문ìžì½”즈키 문ìžì¹¸ë‚˜ë‹¤ 문ìží•œêµ­ì–´" + - "í¬íŽ ë ˆ 문ìžì¹´ì´ì‹œ 문ìžëž€ë‚˜ 문ìžë¼ì˜¤ 문ìžë…ì¼ì‹ 로마ìžì•„ì¼ëžœë“œì‹ 로마ìžë¡œë§ˆìžë ™ì°¨ 문ìžë¦¼ë¶€ 문ìžì„ í˜• 문ìž(A)선형 문ìž(B)프레ì´" + - "ì € 문ìžë¡œë§ˆ 문ìžë¦¬í‚¤ì•„ 문ìžë¦¬ë””ì•„ 문ìžë§ˆí•˜ìžë‹ˆ 문ìžë§Œë‹¤ì´ì•„ 문ìžë§ˆë‹ˆêµ 문ìžë§ˆì•¼ ìƒí˜• 문ìžë©˜ë° 문ìžë©”ë¡œì— í•„ê¸°ì²´ë©”ë¡œì— ë¬¸ìžë§ë¼ì–„" + - "람 문ìžëª½ê³¨ 문ìžë¬¸ 문ìžë¯€ë¡œ 문ìžë©”ì´í…Œì´ 마옉 문ìžë¯¸ì–€ë§ˆ 문ìžì˜› ë¶ë¶€ ì•„ë¼ë¹„ì•„ 문ìžë‚˜ë°”테아 문ìžë‚˜ì‹œ 게바 문ìžì‘ì½” 문ìžëˆ„슈 문" + - "ìžì˜¤ê²€ 문ìžì˜¬ 치키 문ìžì˜¤ë¥´í˜¼ì–´ì˜¤ë¦¬ì•¼ 문ìžì˜¤ìŠ¤ë§ˆë‹ˆì•„ 문ìžíŒ”ë¯¸ë¼ ë¬¸ìžê³ ëŒ€ 페름 문ìžíŒŒìŠ¤íŒŒ 문ìžëª…문 팔ë¼ë¹„ 문ìžì†”í„° 팔ë¼ë¹„ 문ìžë¶" + - " 팔ë¼ë¹„ 문ìžíŽ˜ë‹ˆí‚¤ì•„ 문ìží´ë¼ë“œ í‘œìŒ ë¬¸ìžëª…문 파ë¼í‹°ì•„ 문ìžë ˆìž¥ 문ìžë¡±ê³ ë¡±ê³ ë£¬ 문ìžì‚¬ë§ˆë¦¬ì•„ 문ìžì‚¬ë¼í‹°ì˜› 남부 ì•„ë¼ë¹„ì•„ 문ìžì‚¬ìš°ë¼ìŠˆ" + - "íŠ¸ë¼ ë¬¸ìžìˆ˜í™” 문ìžìƒ¤ë¹„안 문ìžì‚¬ë¼ë‹¤ 문ìžì‹¤ë‹´ìžì¿ ë‹¤ì™€ë”” 문ìžì‹ í• ë¼ 문ìžì†Œë¼ 솜펭 문ìžìˆœë‹¤ 문ìžì‹¤í—¤í‹° 나가리시리아 문ìžì—스트랑겔로" + - "ì‹ ì‹œë¦¬ì•„ 문ìžì„œë¶€ 시리아 문ìžë™ë¶€ 시리아 문ìžíƒ€ê·¸ë°˜ì™€ 문ìžíƒ€í¬ë¦¬ 문ìžíƒ€ì´ ë ˆ 문ìžì‹  íƒ€ì´ ë£¨ì—타밀 문ìžíƒ•êµ¬íŠ¸ 문ìžíƒœêµ­ 베트남" + - " 문ìží…”루구 문ìží…¡ê³¼ë¥´ 문ìží‹°í”¼ë‚˜ê·¸ 문ìžíƒ€ê°ˆë¡œê·¸ 문ìžíƒ€ë‚˜ 문ìžíƒ€ì´ 문ìží‹°ë² íŠ¸ 문ìží‹°ë¥´í›„타 문ìžìš°ê°€ë¦¬íŠ¸ 문ìžë°”ì´ ë¬¸ìžì‹œí™”법바랑 í¬ì‹œ" + - "í‹° 문ìžìš¸ë ˆì•„ì´ê³ ëŒ€ 페르시아 문ìžìˆ˜ë©”르-아카드어 설형문ìžì´ 문ìžêµ¬ì „ 문ìžìˆ˜í•™ 기호기호구전ì¼ë°˜ 문ìžê¸°ë¡ë˜ì§€ ì•Šì€ ë¬¸ìž(구전)" - -// Size: 354 bytes, 165 elements -var koScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0010, 0x0030, 0x003d, 0x0050, 0x0066, 0x0079, 0x0086, - 0x0093, 0x00a6, 0x00b6, 0x00c3, 0x00d9, 0x00e5, 0x00ee, 0x00fe, - 0x010b, 0x011b, 0x012b, 0x0145, 0x0152, 0x015c, 0x016c, 0x0175, - 0x0182, 0x0195, 0x01a2, 0x01c7, 0x01dd, 0x01ed, 0x0203, 0x0220, - 0x023d, 0x025a, 0x026a, 0x0280, 0x029d, 0x02b0, 0x02c0, 0x02cd, - 0x02dd, 0x02ed, 0x0300, 0x0313, 0x0319, 0x031f, 0x032f, 0x033c, - 0x0349, 0x0359, 0x0365, 0x0381, 0x0395, 0x039b, 0x03b2, 0x03c2, - 0x03dc, 0x03e9, 0x03f6, 0x0403, 0x0414, 0x0420, 0x0433, 0x0443, - // Entry 40 - 7F - 0x0453, 0x0463, 0x046c, 0x047c, 0x048c, 0x0499, 0x04a6, 0x04b9, - 0x04d2, 0x04db, 0x04e8, 0x04f5, 0x0505, 0x0515, 0x0528, 0x0535, - 0x0545, 0x0555, 0x0568, 0x057b, 0x058b, 0x059f, 0x05ac, 0x05bf, - 0x05cf, 0x05e2, 0x05e2, 0x05ef, 0x05f9, 0x0606, 0x0620, 0x0630, - 0x064e, 0x0661, 0x0675, 0x0682, 0x068f, 0x069c, 0x06ad, 0x06b9, - 0x06c9, 0x06df, 0x06ef, 0x06ef, 0x0703, 0x0713, 0x072a, 0x0741, - 0x0755, 0x0768, 0x077f, 0x0799, 0x07a6, 0x07b2, 0x07bc, 0x07cf, - 0x07d8, 0x07f6, 0x080f, 0x081c, 0x082c, 0x083c, 0x0845, 0x0858, - // Entry 80 - BF - 0x0868, 0x087c, 0x0889, 0x089c, 0x08ac, 0x08d2, 0x08e9, 0x0900, - 0x0913, 0x0923, 0x0934, 0x0945, 0x0952, 0x0962, 0x0979, 0x0989, - 0x0999, 0x09ac, 0x09bf, 0x09cc, 0x09d9, 0x09e9, 0x09fc, 0x0a0f, - 0x0a1c, 0x0a25, 0x0a3c, 0x0a48, 0x0a62, 0x0a85, 0x0a8f, 0x0a9c, - 0x0aa9, 0x0aaf, 0x0ab5, 0x0ac2, 0x0ae4, -} - -// Size: 493 bytes -var kyScriptStr string = "" + - "ÐрабÐрмÑнБенгалБопомофоБрейлКириликДеванагариЭфиопГрузинГрекГужаратиГурм" + - "ухиХангулХаниЖөн. КытайСалт. КытайИвритХираганаЖапанКатаканаКмерКаннада" + - "КорейЛаоЛатынМалайаламМоңголМйанмарОрийаСингалаТамилТелуТаанаТайТибетБе" + - "лгилерЖазылбаганЖалпыБелгиÑиз жазуу" - -// Size: 354 bytes, 165 elements -var kyScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0012, 0x0012, 0x0012, - 0x0012, 0x0012, 0x0012, 0x001e, 0x001e, 0x002e, 0x002e, 0x0038, - 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, - 0x0038, 0x0038, 0x0046, 0x0046, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x0064, 0x0064, 0x0070, 0x0070, 0x0070, - 0x0070, 0x0078, 0x0088, 0x0096, 0x00a2, 0x00aa, 0x00aa, 0x00bc, - 0x00d0, 0x00da, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, - 0x00ea, 0x00ea, 0x00f4, 0x00f4, 0x00f4, 0x0104, 0x0104, 0x010c, - // Entry 40 - 7F - 0x010c, 0x011a, 0x0124, 0x0124, 0x0124, 0x0124, 0x012a, 0x012a, - 0x012a, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, - 0x0134, 0x0146, 0x0146, 0x0152, 0x0152, 0x0152, 0x0152, 0x0160, - 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, - 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, - 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, - 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, - // Entry 80 - BF - 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, - 0x0178, 0x0178, 0x0178, 0x0178, 0x0182, 0x0182, 0x0182, 0x018a, - 0x018a, 0x018a, 0x018a, 0x0194, 0x019a, 0x01a4, 0x01a4, 0x01a4, - 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, - 0x01a4, 0x01b4, 0x01c8, 0x01d2, 0x01ed, -} - -// Size: 3901 bytes -var loScriptStr string = "" + - "ອັບຟາàºàº²àº­àº²àº£àº²àºšàº´àºàº­àº´àº¡àºžàºµàº®àº½àº™ ອາເມອິàºàº­àº²à»€àº¡àº™àº½àº™àº­àº°à»€àº§àºªàº•àº°àºšàº²àº¥àºµàºšàº²àº¡àº¹àº¡àºšàº±àº”ຊາບາຕັàºà»€àºšàº±àº‡àºàº²àº¥àº´àºš" + - "ລິàºàºŠàº´àº¡à»‚ບລສຈູ້ອິນພຮາຫມີເບຣວບູàºàº´àºªàºšàº¹àº®àº´àº”ຊາàºàº¡àº²àºªàº±àº™àºàº²àº¥àº±àºàºŠàº»àº™à»€àºœàº»à»ˆàº²àºžàº·à»‰àº™à»€àº¡àº·àº­àº‡à»àº„ນນ" + - "າດາຄາເຮàºàºˆàº²àº¡à»€àºŠà»‚ຮàºàºµà»€àºŠàºµàº®àº„ອບຕິàºà»„ຊເປàºàºŠàºµàº£àº´àº§àº¥àº´àºà»€àºŠàº®àº±àº”ສລາ ໂວນິàºàºŠàºµàº®àº´àºàº¥àº´àºà»‚ບຮານດີວ" + - "ານາàºàº²àº£àºµà»€àº”ເຊເຮຊົວເລດັບໂລàºàº±àº™àº”ີໂມຕິàºàº­àºµàºàº´àºšà»€àº®àºàº®àº²àº•àº´àºàº­àºµàºàº´àºšà»€àº®àºà»‚ຮàºàº¥àº´àºŸàº­àºµàºàº´àºšàº­àºµàº—ິໂ" + - "ອປິàºàº„ອດຊູຮີຈà»à»€àºˆàºàºˆà»àºˆàº½àº™àºàº¥àº²à»‚àºàº¥àº´àº•àº´àºà»‚àºàº®àº´àºà»€àº„ນທາàºàº£àºµàºàºˆàº¹àºˆàº²àº£àº²àº—ີàºàº»àº§àº¡àº¹àº„ີຮັນàºàº¹àº™àº®àº²àº™àº®" + - "ານູໂນໂອຈີນ (à»àºšàºšàº‡à»ˆàº²àº)ຈີນ (ດັ້ງເດີມ)ຮີບຣິວຣິຣະງະນະອັàºàº¥àº®àº°àº­àº²àº™àº²à»‚ຕເລàºàº›àº²à»€àº®àº²à»€àº¡" + - "ັງຄະຕະàºàº°àº™àº°àº«àº®àº·àº®àºµàº®àº°àº‡àº°àº™àº°àº®àº±àº‡àºàº²àº®àºµà»‚ບຮານອິນດັດອີຕາລີໂບຮານຈາວາàºàºµà»ˆàº›àº¸à»ˆàº™àºˆàº¹àº®à»€àºŠàº±àº™àº„àº" + - "າຄະຕະàºàº°àº™àº°àº‚à»à»‚ຮàºàºªàºµàº‚ະà»àº½àº™àº„à»àºˆàº„ີຄັນນາດາເàºàº»àº²àº«àº¼àºµà»€àº›àº¥à»€àº¥àºàº²àºàº•àº´àº¥à»‰àº²àº™àº™àº²àº¥àº²àº§àº¥àº²àº•àº´àº™-ຟຮັ່ງ" + - "ເຕຣລາຕິນ-à»àºàº¥àº´àºàº¥àº²àº•àº´àº™à»€àº¥àºŠàº²àº¥àº´àº¡àºšàº¹àº¥àºµà»€àº™àºàº¥àºµà»€àº™àºàº£à»€àºŸàº£à»€àºŠàº®à»‚ລມາໄລເຊàºàº¥àºµà»€àº”àºà»àº¡àº™àº”ຽນມານິà»" + - "ຊນມາàºàº²à»„ຮໂຮàºàº¥àº´àºšà»€àº¡àº™à»€àº”ເຄເລີຊີເມໂຮອິຕິàºà»€àº¡à»‚ຮຕິàºàº¡àº²à»€àº¥àº­àº²àº¥àº³àº¡àº»àº‡à»‚àºàº¥àº½àº™àº¡àº¹àº™à»€àº¡à»‚ຮເມເທມ" + - "າເàºàºàº¡àº½àº™àº¡àº²àº­àº²àº®àº°à»€àºšàºà»€à»œàº·àº­à»‚ບຮານນາບາທາທຽນàºàºµàºšàº²-ນາຊີເອັນໂàºàº™àº¸àºŠàº¸àº­àº­àºàº„ອນໂອຊິàºàº´àº­àº­àºàºªàº¡" + - "ັນàºàº²à»‚ອຣິຢາພາລໄມຮິນເພີມີໂບຮານຟາàºàºª-ປາປະຫລາວີອິນສຄິບຊັນà»àº™àº¥àº›àº°àº«àº¥àº²àº§àºµàºŠàº­àº”ເຕຮ໌ປ" + - "ະຫລາວີບຸàºàºŸàºµàº™àº´à»€àºŠàºàºªàº±àº”ຕະສາດພà»àº®àº¥àº²àºžàº²àº®à»Œà»€àº—àºàº­àº´àº™àºªàº„ຮິປຊັນà»àº™àº¥à»€àº®àºˆàº±àº‡àº®àº­àº‡à»‚àºàº®àº­àº‡à»‚àºàº®àº¹àº™àº´àº" + - "ຊາມາເລàºàºŠàº²àº®àº²àº•àº´àº­àº²àº¥àº°à»€àºšàºà»ƒàº•à»‰à»‚ບຮານໂສຮັດຕຣະໄຊນ໌ໄຮຕີ້ງຊອວຽນຊາຮາດາດຸດາວາດີສິນຫາ" + - "ລາໂສຮາສົມເປັງຊຸນດາຊີໂລຕິນາàºàº£àºµàºŠàºµà»€àº®àºàºŠàºµà»€àº®àºà»€àº­àºªàº—ຮານຈີໂລຊີເຮàºàº•àº²à»€àº§àº±àº™àº•àº»àºàºŠàºµà»€àº®àºàº•" + - "າເວັນອອàºàº•àº±àºàºšàº±àº™àº§àº²àº—າຄຮີໄທເລໄທລື້ໃà»à»ˆàº—າມິລຕັນàºàº±àº™à»„ທຫວຽດເຕລູàºàº¹à»€àº—ງàºàº§àº²àº®àº—ີຟີນາàº" + - "ຕາàºàº²àº¥àº­àºàº—ານາໄທທິເບທັນເທຮຸທາàºàº¹àºàº²àº®àº´àº”ໄວຄຳເວົ້າທີ່ເບີ່ງເຫັນໄດ້ວາຮັງàºàºªàº´àº•àº´à»‚ອລ" + - "ີເອເປຮເຊàºà»‚ບຮານອັàºàºªàº­àº™àº®àº¹àºšàº›àº¥àºµà»ˆàº¡àºªàº¸à»€àº¡à»€àº®àº-ອັດຄາເດàºàºàºµàº­àº´àº™à»€àº®àº®àº´àº”ເຄື່ອງà»àº²àºàº—າງຄະນິ" + - "ດສາດສັນàºàº²àº¥àº±àºàºšà»à»ˆàº¡àºµàºžàº²àºªàº²àº‚ຽນສາມັນàºàº²àº™àº‚ຽນທີ່ບà»à»ˆàº®àº¹à»‰àºˆàº±àº" - -// Size: 354 bytes, 165 elements -var loScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0015, 0x0015, 0x002a, 0x0058, 0x006d, 0x0082, 0x008e, - 0x009d, 0x00ac, 0x00bb, 0x00d3, 0x00f4, 0x0106, 0x0118, 0x0124, - 0x0133, 0x0142, 0x0151, 0x01b1, 0x01c0, 0x01c9, 0x01db, 0x01e7, - 0x01f9, 0x0208, 0x0220, 0x026f, 0x028d, 0x029f, 0x02c6, 0x02ea, - 0x0311, 0x033b, 0x033b, 0x0356, 0x037a, 0x0389, 0x03a7, 0x03b6, - 0x03c5, 0x03d1, 0x03e9, 0x03fe, 0x0410, 0x0419, 0x0431, 0x0452, - 0x0476, 0x0488, 0x04a0, 0x04cd, 0x04e8, 0x0521, 0x0545, 0x0557, - 0x0578, 0x0584, 0x0599, 0x05ae, 0x05b7, 0x05cf, 0x05e4, 0x05f3, - // Entry 40 - 7F - 0x0602, 0x0617, 0x062c, 0x063b, 0x064a, 0x065c, 0x0665, 0x068d, - 0x06ac, 0x06bb, 0x06c7, 0x06d6, 0x06e5, 0x06f7, 0x0709, 0x0715, - 0x0724, 0x0733, 0x0733, 0x0745, 0x075a, 0x077e, 0x078d, 0x07bd, - 0x07d2, 0x07ea, 0x07ea, 0x0802, 0x080b, 0x0817, 0x0832, 0x0841, - 0x0871, 0x088c, 0x08a5, 0x08b7, 0x08c3, 0x08d5, 0x08e7, 0x0902, - 0x0914, 0x0914, 0x092c, 0x092c, 0x094a, 0x095d, 0x0999, 0x09c3, - 0x09e1, 0x09f6, 0x0a1d, 0x0a5c, 0x0a6b, 0x0a89, 0x0a98, 0x0aad, - 0x0abf, 0x0aec, 0x0b04, 0x0b22, 0x0b31, 0x0b43, 0x0b43, 0x0b5b, - // Entry 80 - BF - 0x0b70, 0x0b91, 0x0ba0, 0x0bc1, 0x0bd0, 0x0c00, 0x0c2a, 0x0c54, - 0x0c6c, 0x0c7b, 0x0c87, 0x0c9f, 0x0cae, 0x0cc0, 0x0cd2, 0x0ce4, - 0x0cf9, 0x0d0e, 0x0d23, 0x0d2f, 0x0d35, 0x0d4a, 0x0d5c, 0x0d71, - 0x0d77, 0x0db9, 0x0dd7, 0x0de9, 0x0e0a, 0x0e62, 0x0e68, 0x0e80, - 0x0ebc, 0x0ed4, 0x0ef8, 0x0f07, 0x0f3d, -} - -// Size: 1634 bytes -var ltScriptStr string = "" + - "AfakaKaukazo AlbanijosarabųimperinÄ— aramaikųarmÄ—nųavestanoBalieÄiųBamumB" + - "assa Vahbatakbengalų„Bliss“ simboliaibopomofobrahmibrailiobuginezųbuhidÄ" + - "akmasuvienodinti Kanados aborigenų silabiniaikariųÄamÄerokiųkirtkoptųkip" + - "rokirilicasenoji bažnytinÄ— slavų kirilicadevanagarideseretasDuplojÄ— sten" + - "ografijaEgipto liaudiesEgipto žyniųegipto hieroglifaiElbasanoetiopųgruzi" + - "nų kutsurigruzinųglagolitikgotųGrantagraikųgudžaratųgurmukihangulhanhanu" + - "nosupaprastinti hantradiciniai hanhebrajųhiraganaAnatolijaus hieroglifai" + - "pahav hmongkatakana / hiraganasenasis vengrųindussenasis italųjavieÄiųja" + - "ponųJurchenkajah likatakanakaroÅ¡tikhmerųKhojkikanadųkorÄ—jieÄiųKpelųkaith" + - "ilanalaosieÄiųfraktur lotynųgÄ—lų lotynųlotynųlepÄalimbulinijiniai Alinij" + - "iniai BFraserLomalicianlidianMahadžanimandÄ—jųmaniÄųmalų hieroglifaiMende" + - "Merojitų rankraÅ¡tinismeroitikmalajaliųModimongolųmÅ«nMromeitei majekbirmi" + - "eÄiųSenasis Å¡iaurÄ—s arabųNabatÄ—jųNaxi GebaenkoNüshuoghamol Äikiorkonorij" + - "ųosmanųPalmirosPau Cin Hausenieji permÄ—spagsa paraÅ¡ytiniai pahlavipselt" + - "er pahlavibuk pahvalifoenikųpolard fonetinÄ—raÅ¡ytiniai partųrejangrongoro" + - "ngorunųsamarieÄiųsaratisenoji pietų ArabijossauraÅ¡traženklų raÅ¡tasÅ¡aviųŠ" + - "aradosSiddhamKhudawadisinhalųSora Sompengsundųsyloti nagrisirųestrangelo" + - " sirieÄiųvakarų sirųrytų sirųtagbanvaTakritai lenaujasis Tailando luetam" + - "ilųTanguttai vettelugųtengvartifinagtagalogųhanatajųtibetieÄiųTirhutauga" + - "ritikvaimatoma kalbaVarang KshitiWoleaisenieji persųŠumero Akado dantira" + - "Å¡tisjipaveldÄ—tasmatematiniai simboliaisimboliųneparaÅ¡ytabendrinežinomi " + - "raÅ¡menys" - -// Size: 354 bytes, 165 elements -var ltScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0005, 0x0016, 0x001c, 0x002f, 0x0037, 0x003f, 0x0049, - 0x004e, 0x0057, 0x005c, 0x0064, 0x0079, 0x0081, 0x0087, 0x008e, - 0x0097, 0x009c, 0x00a2, 0x00cc, 0x00d2, 0x00d6, 0x00df, 0x00e3, - 0x00e9, 0x00ee, 0x00f6, 0x0118, 0x0122, 0x012b, 0x0140, 0x014f, - 0x015d, 0x016f, 0x0177, 0x017e, 0x018e, 0x0196, 0x01a0, 0x01a5, - 0x01ab, 0x01b2, 0x01bd, 0x01c4, 0x01ca, 0x01cd, 0x01d3, 0x01e4, - 0x01f3, 0x01fb, 0x0203, 0x021a, 0x0225, 0x0238, 0x0247, 0x024c, - 0x025a, 0x0264, 0x026b, 0x0272, 0x027a, 0x0282, 0x028a, 0x0291, - // Entry 40 - 7F - 0x0297, 0x029e, 0x02ab, 0x02b1, 0x02b7, 0x02bb, 0x02c6, 0x02d5, - 0x02e3, 0x02ea, 0x02f0, 0x02f5, 0x0301, 0x030d, 0x0313, 0x0317, - 0x031d, 0x0323, 0x032d, 0x0336, 0x033e, 0x034f, 0x0354, 0x036b, - 0x0373, 0x037d, 0x0381, 0x0389, 0x038d, 0x0390, 0x039c, 0x03a7, - 0x03bf, 0x03c9, 0x03d2, 0x03d6, 0x03dc, 0x03e1, 0x03e9, 0x03ee, - 0x03f4, 0x03fb, 0x0403, 0x040e, 0x041d, 0x0425, 0x0438, 0x0447, - 0x0452, 0x045a, 0x046a, 0x047c, 0x0482, 0x048c, 0x0491, 0x049d, - 0x04a3, 0x04b9, 0x04c3, 0x04d3, 0x04da, 0x04e2, 0x04e9, 0x04f2, - // Entry 80 - BF - 0x04fa, 0x0506, 0x050c, 0x0518, 0x051d, 0x0532, 0x053f, 0x054a, - 0x0552, 0x0557, 0x055d, 0x0572, 0x0579, 0x057f, 0x0586, 0x058d, - 0x0594, 0x059b, 0x05a4, 0x05a8, 0x05ad, 0x05b9, 0x05c0, 0x05c8, - 0x05cb, 0x05d7, 0x05e4, 0x05ea, 0x05f8, 0x0612, 0x0614, 0x061f, - 0x0635, 0x063e, 0x0649, 0x064f, 0x0662, -} - -// Size: 761 bytes -var lvScriptStr string = "" + - "arÄbuaramieÅ¡uarmēņubalieÅ¡ubengÄļubopomofobrahmiBraila rakstsirokÄ“zukoptu" + - "kirilicasenslÄvudevÄnagÄridemotiskais rakstshierÄtiskais rakstsÄ“Ä£iptieÅ¡u" + - " hieroglifietiopieÅ¡ugruzÄ«nugotugrieÄ·ugudžaratupandžabuhangilaÄ·Ä«nieÅ¡uhanu" + - " vienkÄrÅ¡otÄhanu tradicionÄlÄivritshiraganakatakana vai hiraganasenungÄr" + - "uvecitÄļujavieÅ¡ujapÄņukatakanakhmerukannarukorejieÅ¡ulaosieÅ¡ulatīņulineÄr" + - "Ä AlineÄrÄ BlÄ«dieÅ¡umaijumalajalumongoļuMÅ«na rakstsbirmieÅ¡uogamiskais ra" + - "kstsorijuosmaņu turkufeniÄ·ieÅ¡urongorongorÅ«nu rakstssamarieÅ¡usingÄļuzundu" + - "sÄ«rieÅ¡urietumsÄ«rieÅ¡uaustrumsÄ«rieÅ¡utamilutelugutagalutaanatajutibetieÅ¡use" + - "nperieÅ¡uÅ¡umeru-akadieÅ¡u ķīļrakstsjimantotÄmatemÄtiskais pierakstssimboli" + - "bez rakstÄ«basvispÄrÄ“jÄnezinÄma rakstÄ«ba" - -// Size: 354 bytes, 165 elements -var lvScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0006, 0x000f, 0x0017, 0x0017, 0x001f, - 0x001f, 0x001f, 0x001f, 0x0028, 0x0028, 0x0030, 0x0036, 0x0043, - 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x004b, - 0x0050, 0x0050, 0x0058, 0x0061, 0x006d, 0x006d, 0x006d, 0x007f, - 0x0093, 0x00aa, 0x00aa, 0x00b4, 0x00b4, 0x00bc, 0x00bc, 0x00c0, - 0x00c0, 0x00c7, 0x00d1, 0x00da, 0x00e1, 0x00eb, 0x00eb, 0x00fe, - 0x0111, 0x0117, 0x011f, 0x011f, 0x011f, 0x0134, 0x013e, 0x013e, - 0x0148, 0x0150, 0x0158, 0x0158, 0x0158, 0x0160, 0x0160, 0x0166, - // Entry 40 - 7F - 0x0166, 0x016d, 0x0177, 0x0177, 0x0177, 0x0177, 0x0180, 0x0180, - 0x0180, 0x0188, 0x0188, 0x0188, 0x0193, 0x019e, 0x019e, 0x019e, - 0x019e, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01ac, 0x01ac, 0x01ac, - 0x01ac, 0x01b4, 0x01b4, 0x01bc, 0x01c8, 0x01c8, 0x01c8, 0x01d1, - 0x01d1, 0x01d1, 0x01d1, 0x01d1, 0x01d1, 0x01e2, 0x01e2, 0x01e2, - 0x01e7, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, - 0x01f4, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x0209, 0x0215, 0x021f, - 0x021f, 0x021f, 0x021f, 0x021f, 0x021f, 0x021f, 0x021f, 0x021f, - // Entry 80 - BF - 0x0228, 0x0228, 0x022d, 0x022d, 0x0236, 0x0236, 0x0245, 0x0255, - 0x0255, 0x0255, 0x0255, 0x0255, 0x025b, 0x025b, 0x025b, 0x0261, - 0x0261, 0x0261, 0x0267, 0x026c, 0x0270, 0x027a, 0x027a, 0x027a, - 0x027a, 0x027a, 0x027a, 0x027a, 0x0285, 0x02a3, 0x02a5, 0x02ad, - 0x02c5, 0x02cc, 0x02da, 0x02e6, 0x02f9, -} - -// Size: 3505 bytes -var mkScriptStr string = "" + - "афакакавкаÑкоалбанÑкиарапÑко пиÑмоцарÑкоарамејÑкиерменÑко пиÑмоавеÑтанÑк" + - "обалиÑкобамумÑкобаÑабатачкобенгалÑко пиÑмоблиÑÑимболибопомофобрамибрајо" + - "во пиÑмобугиÑкобухидÑкочакманÑкоканадÑко ÑлоговнокариÑкочамÑкочерокиÑко" + - "кирткоптÑкокипарÑкокирилÑко пиÑмоÑтароÑловенÑка кирилицадеванагаридезер" + - "етÑкоДиплојеево ÑтенографÑкоегипетÑко демотÑкоегипетÑко хиератÑкоегипет" + - "Ñки хиероглифиелбаÑанÑкоетиопÑко пиÑмогрузиÑки хуцуригрузиÑко пиÑмоглаг" + - "олицаготÑкогрантагрчко пиÑмогуџаратигурмукихангулханÑко пиÑмохануноовÑк" + - "опоедноÑтавено ханÑко пиÑмотрадиционално ханÑкохебрејÑко пиÑмохираганаа" + - "надолÑки хиероглифипахауанÑко хмоншкојапонÑко ÑлоговноÑтароунгарÑкохара" + - "пÑкоÑтароиталÑкојаванÑкојапонÑко пиÑмоџурченÑкокаја ликатаканакароштикм" + - "ерÑко пиÑмохоџкиканнадакорејÑко пиÑмокпелÑкокајтиланÑколаошко пиÑмофрак" + - "турна латиницагелÑка латиницалатинично пиÑмолепчанÑколимбулинеарно Ðлин" + - "еарно БФрејзероволомÑколикиÑколидиÑкомахаџанимандејÑкоманихејÑкомајанÑк" + - "и хиероглифимендÑкомероитÑко ракопиÑномероитÑкомалајаламÑко пиÑмомодимо" + - "нголÑко пиÑмоМуновомромејтејÑкомјанмарÑко пиÑмоÑтароÑеверноарапÑконабат" + - "ејÑконаÑиÑка гебанконишуогамол чикиÑтаротурÑкооријанÑко пиÑмоÑомалиÑкоп" + - "алмирÑкоПаучинхауовоÑтаропермÑкопагÑпанатпиÑно ÑредноперÑиÑкопÑалтирÑко" + - " ÑредноперÑиÑкокнижевно ÑтароперÑиÑкофеникиÑкоПолардовонатпиÑно партиÑко" + - "реџаншкоронгоронгорунÑкоÑамарјанÑкоÑаратиÑтаројужноарапÑкоÑаураштранÑко" + - "знаковно пишувањеШоовошарадаÑидамкудабадиÑинхалÑко пиÑмоÑоранг ÑомпенгÑ" + - "унданÑкоÑилхетÑко нагариÑириÑкоеÑтрангелÑко ÑириÑкозападноÑириÑкоиÑточн" + - "оÑириÑкотагбанванÑкотакритај леново тај луетамилÑко пиÑмотангутÑкотај в" + - "јеттелугутенгвартифинагтагалошкотанатајландÑко пиÑмотибетÑко пиÑмотирху" + - "таугаритÑковајвидлив говорваранг кшитиволеајÑкоÑтароперÑиÑкоÑумероакадÑ" + - "ко клинеÑтојинаÑледеноматематичка нотацијаÑимболибез пиÑмоопштонепознат" + - "о пиÑмо" - -// Size: 354 bytes, 165 elements -var mkScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000a, 0x002a, 0x0043, 0x0061, 0x007c, 0x0090, 0x009e, - 0x00ae, 0x00b6, 0x00c4, 0x00e1, 0x00f7, 0x0107, 0x0111, 0x012a, - 0x0138, 0x0148, 0x015a, 0x017b, 0x0189, 0x0195, 0x01a7, 0x01af, - 0x01bd, 0x01cd, 0x01e8, 0x0215, 0x0229, 0x023d, 0x026a, 0x028d, - 0x02b2, 0x02d9, 0x02ed, 0x0308, 0x0325, 0x0340, 0x0352, 0x035e, - 0x036a, 0x037f, 0x038f, 0x039d, 0x03a9, 0x03c0, 0x03d6, 0x0408, - 0x042f, 0x044c, 0x045c, 0x0483, 0x04a6, 0x04c7, 0x04e1, 0x04f1, - 0x0509, 0x0519, 0x0534, 0x0546, 0x0553, 0x0563, 0x0571, 0x058a, - // Entry 40 - 7F - 0x0594, 0x05a2, 0x05bd, 0x05cb, 0x05d5, 0x05e1, 0x05f8, 0x061b, - 0x0638, 0x0655, 0x0667, 0x0671, 0x0684, 0x0697, 0x06ab, 0x06b7, - 0x06c5, 0x06d3, 0x06e3, 0x06f5, 0x0709, 0x072e, 0x073c, 0x0761, - 0x0773, 0x0796, 0x079e, 0x07bb, 0x07c7, 0x07cd, 0x07df, 0x07fe, - 0x0824, 0x0838, 0x084f, 0x0855, 0x085d, 0x0865, 0x0872, 0x0888, - 0x08a5, 0x08b7, 0x08c9, 0x08e1, 0x08f9, 0x0905, 0x0932, 0x0963, - 0x098e, 0x09a0, 0x09b2, 0x09d3, 0x09e3, 0x09f7, 0x0a03, 0x0a19, - 0x0a25, 0x0a47, 0x0a61, 0x0a82, 0x0a8c, 0x0a98, 0x0aa2, 0x0ab2, - // Entry 80 - BF - 0x0acf, 0x0aea, 0x0afc, 0x0b1b, 0x0b29, 0x0b50, 0x0b6c, 0x0b88, - 0x0ba0, 0x0baa, 0x0bb5, 0x0bcb, 0x0be6, 0x0bf8, 0x0c07, 0x0c13, - 0x0c21, 0x0c2f, 0x0c41, 0x0c49, 0x0c68, 0x0c83, 0x0c91, 0x0ca3, - 0x0ca9, 0x0cc0, 0x0cd7, 0x0ce9, 0x0d03, 0x0d2e, 0x0d32, 0x0d44, - 0x0d6b, 0x0d79, 0x0d8a, 0x0d94, 0x0db1, -} - -// Size: 3465 bytes -var mlScriptStr string = "" + - "അറബികàµà´…ർമിഅർമേനിയൻഅവെസàµà´¥àµ»à´¬à´¾à´²à´¿à´¨àµ€à´¸àµà´¬à´Ÿàµà´Ÿà´•àµà´¬à´‚ഗാളിബàµà´²à´¿à´¸àµ à´šà´¿à´¤àµà´° ലിപിബോപàµà´ªàµ‹à´®àµ‹à´«àµ‹" + - "à´¬àµà´°à´¾à´¹àµà´®à´¿à´¬àµà´°àµ†à´¯àµ\u200cലിബàµà´—ിനീസàµà´¬àµà´¹à´¿à´¡àµà´šà´•à´‚à´à´•àµ€à´•àµƒà´¤ കനേഡിയൻ ഗോതàµà´°à´²à´¿à´ªà´¿à´šà´°à´¿à´¯àµ»à´›à´‚" + - "ചെറോകàµà´•à´¿à´šà´¿àµ¼à´¤àµà´¤àµà´•àµ‹à´ªàµà´±àµà´±à´¿à´•àµà´¸àµˆà´ªàµà´°à´¿à´¯àµ‹à´Ÿàµà´Ÿàµà´¸à´¿à´±à´¿à´²à´¿à´•àµà´ªàµà´°à´¾à´¤à´¨ ചർചàµà´šàµ à´¸àµà´²à´µàµ‹à´£à´¿à´•àµ à´¸" + - "ിറിലികàµà´¦àµ‡à´µà´¨à´¾à´—രിഡെസെർടàµà´Ÿàµà´ˆà´œà´¿à´ªàµà´·àµà´¯àµ» ഡിമോടàµà´Ÿà´¿à´•àµà´ˆà´œà´¿à´ªàµà´·àµà´¯àµ» ഹിരാറàµà´±à´¿à´•àµà´ˆà´œà´¿à´ªàµà´·" + - "àµà´¯àµ» à´šà´¿à´¤àµà´°à´²à´¿à´ªà´¿à´Žà´¤àµà´¯àµ‹à´ªà´¿à´•àµà´œàµ‹àµ¼à´œàµà´œà´¿à´¯àµ» à´–àµà´Ÿàµà´¸àµà´°à´¿à´œàµ‹àµ¼à´œàµà´œà´¿à´¯àµ»à´—àµà´²à´—ോലിറàµà´±à´¿à´•àµà´—ോഥികàµà´—àµ" + - "രീകàµà´•àµà´—àµà´œà´±à´¾à´¤àµà´¤à´¿à´—àµà´°àµà´®àµà´–ിഹാംഗàµàµ½à´¹à´¾àµ»à´¹à´¨àµà´¨àµ‚ലളിതവൽകàµà´•à´°à´¿à´šàµà´š ഹാൻപരമàµà´ªà´°à´¾à´—à´¤ ഹാൻഹീ" + - "à´¬àµà´°àµà´¹à´¿à´°à´—ാനപഹàµà´µà´¾ ഹമോംഗàµà´•à´Ÿà´•à´¾à´¨à´¯àµ‹ ഹിരാഗാനയോപàµà´°à´¾à´¤à´¨ ഹംഗേറിയൻസിനàµà´§àµà´ªà´´à´¯ ഇറàµà´±à´¾à´²" + - "ിയൻജാവനീസàµà´œà´¾à´ªàµà´ªà´¨àµ€à´¸àµà´•à´¯à´¾ ലികറàµà´±à´•àµà´•à´¾à´¨à´–രോഷàµà´Ÿà´¿à´–മെർകനàµà´¨à´¡à´•àµŠà´±à´¿à´¯àµ»à´•àµà´¤à´¿à´²à´¨àµà´¨à´²à´¾à´µàµ‹à´«àµ" + - "രാകàµà´Ÿàµàµ¼ ലാറàµà´±à´¿àµ»à´—െയàµ\u200cലികൠലാറàµà´±à´¿àµ»à´²à´¾à´±àµà´±à´¿àµ»à´²àµ†à´ªàµà´šà´²à´¿à´‚à´¬àµà´¸à´®à´°àµ‡à´–യിലàµà´³àµà´³ എലീ" + - "നിയർ ബിലൈസിൻലൈഡിയൻമൻഡേയൻമണിചേയൻമായൻ à´šà´¿à´¤àµà´°à´²à´¿à´ªà´¿à´®àµ†à´±àµ‹à´¯à´¿à´±àµà´±à´¿à´•àµà´®à´²à´¯à´¾à´³à´‚മംഗോളിയ" + - "ൻമൂൺമേറàµà´±à´¿ മായകàµà´®àµà´¯à´¾àµ»à´®à´¾àµ¼à´Žàµ»à´•àµ‹à´’ഖാംഒൽ à´šà´¿à´•àµà´•à´¿à´’ർഖോൺഒഡിയഒസàµ\u200cമാനിയപàµà´°à´¾à´¤à´¨" + - " പെർമികàµà´«à´—സൠപഎഴàµà´¤àµà´¤àµ പഹൽവിസാൾടàµà´Ÿàµ¼ പഹൽവിപഹൽവി ലിപിഫിനീഷàµà´¯àµ»à´ªàµŠà´³àµà´³à´¾àµ¼à´¡àµ ശബàµà´¦" + - "ലിപിപൃതിറെജാംഗàµà´±àµŠà´‚ഗോറൊംഗോറàµà´£à´¿à´•àµà´¸à´®à´°à´¿à´¯à´¸à´°à´¤à´¿à´¸àµ—രാഷàµà´Ÿàµà´°à´šà´¿à´¹àµà´¨à´²à´¿à´ªà´¿à´·à´¾à´µà´¿à´¯àµ»à´¸à´¿à´‚ഹളസ" + - "à´¨àµà´¤à´¾à´¨àµ€à´¸àµà´¸àµˆà´²àµ‹à´¤à´¿ നാഗരിസിറിയകàµà´•àµà´Žà´¸àµà´±àµà´±àµà´°à´¾à´‚à´—àµà´²àµ‹ സിറിയകàµà´ªà´¶àµà´šà´¿à´®à´¸àµà´±à´¿à´¯à´¾à´¨à´¿à´•à´¿à´´à´•àµ" + - "കൻ സിറിയകàµà´¤à´—àµà´¬àµ»à´µà´¾à´¤à´¾à´¯àµ ലേപàµà´¤à´¿à´¯ തായൠലàµà´¯àµ‚തമിഴàµà´¤àµà´µà´Ÿàµà´¤àµ†à´²àµà´™àµà´•àµà´¤àµ†à´‚à´—àµà´µàµ¼à´¤à´¿à´«à´¿à´¨à´¾" + - "à´—àµà´¤à´—ലോഗàµà´¥à´¾à´¨à´¤à´¾à´¯àµà´Ÿà´¿à´¬à´±àµà´±àµ»à´‰à´—àµà´°àµˆà´±àµà´±à´¿à´•àµà´µàµˆà´¦àµƒà´¶àµà´¯à´­à´¾à´·à´ªà´´à´¯ പേർഷàµà´¯àµ»à´¸àµà´®àµ‡à´±àµ‹ à´…à´•àµà´•à´¾à´¡à´¿à´¯àµ»" + - " à´•àµà´¯àµà´£à´¿à´«àµ‹à´‚യിപാരമàµà´ªà´°àµà´¯à´®à´¾à´¯à´—ണിത രൂപംചിഹàµà´¨à´™àµà´™àµ¾à´Žà´´àµà´¤à´ªàµà´ªàµ†à´Ÿà´¾à´¤àµà´¤à´¤àµà´¸à´¾à´§à´¾à´°à´£à´…à´œàµà´žà´¾à´¤ ലി" + - "പി" - -// Size: 354 bytes, 165 elements -var mlScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0012, 0x001e, 0x0036, 0x004b, 0x0063, - 0x0063, 0x0063, 0x0075, 0x0087, 0x00b6, 0x00d4, 0x00ec, 0x0107, - 0x011f, 0x0131, 0x013a, 0x017e, 0x018d, 0x0193, 0x01ab, 0x01c0, - 0x01de, 0x0202, 0x021a, 0x0274, 0x028c, 0x02a7, 0x02a7, 0x02e1, - 0x031b, 0x0352, 0x0352, 0x036d, 0x03a1, 0x03bc, 0x03e3, 0x03f5, - 0x03f5, 0x040d, 0x0428, 0x0440, 0x0452, 0x045b, 0x046a, 0x049e, - 0x04c3, 0x04d5, 0x04e7, 0x04e7, 0x0509, 0x053a, 0x0565, 0x0577, - 0x059c, 0x05b1, 0x05cc, 0x05cc, 0x05dc, 0x05f7, 0x060c, 0x0618, - // Entry 40 - 7F - 0x0618, 0x0627, 0x0639, 0x0639, 0x0645, 0x0651, 0x065d, 0x068e, - 0x06bf, 0x06d4, 0x06e3, 0x06f2, 0x071a, 0x0733, 0x0733, 0x0733, - 0x0742, 0x0754, 0x0754, 0x0766, 0x077b, 0x07a3, 0x07a3, 0x07a3, - 0x07c7, 0x07d9, 0x07d9, 0x07f1, 0x07fa, 0x07fa, 0x081c, 0x0834, - 0x0834, 0x0834, 0x0834, 0x0840, 0x0840, 0x084c, 0x0865, 0x0874, - 0x0880, 0x089b, 0x089b, 0x089b, 0x08c3, 0x08d3, 0x08f8, 0x091d, - 0x0939, 0x0951, 0x0985, 0x0991, 0x09a6, 0x09c4, 0x09d6, 0x09e5, - 0x09f1, 0x09f1, 0x0a0c, 0x0a27, 0x0a39, 0x0a39, 0x0a39, 0x0a39, - // Entry 80 - BF - 0x0a48, 0x0a48, 0x0a63, 0x0a85, 0x0aa0, 0x0ae0, 0x0b0a, 0x0b35, - 0x0b4a, 0x0b4a, 0x0b5d, 0x0b86, 0x0b95, 0x0b95, 0x0ba4, 0x0bbc, - 0x0bd1, 0x0be9, 0x0bfb, 0x0c04, 0x0c10, 0x0c25, 0x0c25, 0x0c46, - 0x0c4c, 0x0c64, 0x0c64, 0x0c64, 0x0c83, 0x0ccd, 0x0cd3, 0x0cf7, - 0x0d10, 0x0d2b, 0x0d58, 0x0d6a, 0x0d89, -} - -// Size: 532 bytes -var mnScriptStr string = "" + - "арабарменбенгалвопомофобрайлкирилдеванагариÑтиопгүржгрекгүжаратигурмукхи" + - "хангулханхÑлбаршуулÑан ханзуламжлалт ханзеврейхираганаÑпонкатаканакхмер" + - "каннадаÑолонгоÑлаоÑлатинмалаÑламмонгол бичигмьÑнмарориÑÑинхалатамилтÑлү" + - "гүтанатайтөвдтÑмдÑгбичигдÑÑгүйнийтлÑгтодорхойгүй бичиг" - -// Size: 354 bytes, 165 elements -var mnScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0012, 0x0012, 0x0012, - 0x0012, 0x0012, 0x0012, 0x001e, 0x001e, 0x002e, 0x002e, 0x0038, - 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, - 0x0038, 0x0038, 0x0042, 0x0042, 0x0056, 0x0056, 0x0056, 0x0056, - 0x0056, 0x0056, 0x0056, 0x0060, 0x0060, 0x0068, 0x0068, 0x0068, - 0x0068, 0x0070, 0x0080, 0x0090, 0x009c, 0x00a2, 0x00a2, 0x00c5, - 0x00e0, 0x00ea, 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, - 0x00fa, 0x00fa, 0x0102, 0x0102, 0x0102, 0x0112, 0x0112, 0x011c, - // Entry 40 - 7F - 0x011c, 0x012a, 0x013a, 0x013a, 0x013a, 0x013a, 0x0142, 0x0142, - 0x0142, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, - 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, - 0x014c, 0x015c, 0x015c, 0x0173, 0x0173, 0x0173, 0x0173, 0x0181, - 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, - 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, - 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, - 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, - // Entry 80 - BF - 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, - 0x0197, 0x0197, 0x0197, 0x0197, 0x01a1, 0x01a1, 0x01a1, 0x01ad, - 0x01ad, 0x01ad, 0x01ad, 0x01b5, 0x01bb, 0x01c3, 0x01c3, 0x01c3, - 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, - 0x01c3, 0x01cf, 0x01e5, 0x01f3, 0x0214, -} - -// Size: 3386 bytes -var mrScriptStr string = "" + - "अरबीइमà¥à¤ªà¤¿à¤°à¤¿à¤¯à¤² आरà¥à¤®à¥‡à¤¨à¤¿à¤•à¤…रà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¨à¤…वेसà¥à¤¤à¤¾à¤¨à¤¬à¤¾à¤²à¥€à¤¬à¤Ÿà¤¾à¤•à¤¬à¤‚गालीबà¥à¤²à¤¿à¤¸à¤¿à¤®à¥à¤¬à¥‰à¤²à¥à¤¸à¤¬à¥‹à¤ªà¥‹à¤®à¥‹" + - "फोबà¥à¤°à¤¹à¥à¤®à¥€à¤¬à¥à¤°à¥‡à¤²à¤¬à¥‚गीबà¥à¤¹à¤¿à¤¦à¤šà¤•à¤®à¤¾à¤¯à¥‚निफाइड कॅनेडियन अ\u200dॅबोरिदनल सिलॅबिकà¥à¤¸" + - "कॅरियनचामचेरोकीकिरà¥à¤¥à¤•à¥‰à¤ªà¥à¤Ÿà¤¿à¤•à¤¸à¤¾à¤¯à¤ªà¥à¤°à¤¿à¤‘टसीरिलिकपà¥à¤°à¤¾à¤¤à¤¨ चरà¥à¤š सà¥à¤²à¤¾à¤µà¥à¤¹à¥‹à¤¨à¤¿à¤• सिर" + - "िलिकदेवनागरीडेसरà¥à¤Ÿà¤‡à¤œà¤¿à¤ªà¥à¤¶à¤¿à¤¯à¤¨ डेमोटिकइजिपà¥à¤¶à¤¿à¤¯à¤¨ हायरेटिकइजिपà¥à¤¶à¤¿à¤¯à¤¨ हायरोगà¥" + - "लिफà¥à¤¸à¤ˆà¤¥à¤¿à¤“पिकजॉरà¥à¤œà¤¿à¤¯à¤¨ खà¥à¤¤à¥à¤¸à¥à¤°à¥€à¤œà¥‰à¤°à¥à¤œà¤¿à¤¯à¤¨à¤—à¥à¤²à¥…गोलिटिकगोथिकगà¥à¤°à¥€à¤•à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤—à¥à¤°à¥à¤®" + - "à¥à¤–ीहंगà¥à¤²à¤¹à¤¾à¤¨à¤¹à¤¨à¥à¤¨à¥‚सरलीकृत हानपारंपारिक हानहिबà¥à¤°à¥‚हिरागानापहाउ मंगकॅटाकना " + - "आणि हिरागानापà¥à¤°à¤¾à¤¤à¤¨ हंगेरियनसिनà¥à¤§à¥à¤œà¥à¤¨à¥€ इटालिकजावानीसजपानीकायाह लीकॅटाका" + - "नाखारोशà¥à¤¥à¥€à¤–à¥à¤®à¥‡à¤°à¤•à¤¨à¥à¤¨à¤¡à¤•à¥‹à¤°à¤¿à¤¯à¤¨à¤•à¤¾à¤‡à¤¥à¥€à¤²à¤¾à¤¨à¤¾à¤²à¤¾à¤“फà¥à¤°à¥…कà¥à¤¤à¥à¤° लॅटिनगाà¤à¤²à¤¿à¤• लेटिनलॅटिन" + - "लेपचालिमà¥à¤¬à¥‚लीनियार अलीनियर बीलायशियानलायडियानमानà¥à¤¡à¤¾à¤¯à¥€à¤¨à¤®à¤¾à¤¨à¥€à¤šà¤¾à¤¯à¥€à¤¨à¤®à¤¾à¤¯à¤¾à¤¨ ह" + - "ाइरोगà¥à¤²à¤¿à¤«à¥à¤¸à¤®à¥‡à¤°à¥‹à¤‡à¤Ÿà¤¿à¤•à¤®à¤²à¥à¤¯à¤¾à¤³à¤®à¤®à¤‚गोलियनमूनमेइतेइ मायेकमà¥à¤¯à¤¾à¤¨à¤®à¤¾à¤°à¤à¤¨à¥â€˜à¤•à¥‹à¤“घामओल " + - "चिकिओरà¥à¤–ोनउडियाउसà¥à¤®à¤¾à¤¨à¤¿à¤¯à¤¾à¤ªà¥à¤°à¤¾à¤¤à¤¨ परà¥à¤®à¤¿à¤•à¤«à¤¾à¤—à¥à¤¸-पाइनà¥à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤¶à¤¨à¤² पाहलवीसॉलà¥" + - "टर पाहलवीबà¥à¤• पाहलवीफोनिशियनपोलारà¥à¤¡ फोनेटिकइनà¥à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤¶à¤¨à¤² परà¥à¤¥à¤¿à¤¯à¤¨à¤°à¥€à¤œà¤¾à¤‚ग" + - "रोनà¥à¤—ोरोनà¥à¤—ोरूनिकसमरिटानसरातीसौराषà¥à¤Ÿà¥à¤°à¤¸à¤‚केत लिपीशॅवà¥à¤¹à¤¿à¤¯à¤¨à¤¸à¤¿à¤‚हलासूदानीसि" + - "लोती नागरीसिरीयाकà¤à¤¸à¥à¤¤à¥à¤Ÿà¥à¤°à¥‡à¤¨à¥à¤œà¥‡à¤²à¥‹ सिरियाकपशà¥à¤šà¤¿à¤®à¥€ सिरियाकपूरà¥à¤µà¥€ सिरियाकत" + - "गोआनà¥à¤µà¤¾à¤¤à¤¾à¤ˆ लीनवीन ताई लूतामिळताई विà¤à¤¤à¤¤à¥‡à¤²à¤—à¥à¤¤à¥‡à¤¨à¥à¤—वारतिफिनाघटागालोगथानाथा" + - "ईतिबेटीयà¥à¤—ारिटिकवाईदृशà¥à¤¯ संवादपà¥à¤°à¤¾à¤¤à¤¨ फारसीदृशà¥à¤¯à¤®à¤¾à¤¨ भाषायीवंशपरंपरागतगण" + - "िती संकेतलिपीपà¥à¤°à¤¤à¥€à¤•à¤…लिखितसामानà¥à¤¯à¤…जà¥à¤žà¤¾à¤¤ लिपी" - -// Size: 354 bytes, 165 elements -var mrScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000c, 0x0040, 0x005b, 0x0073, 0x007f, - 0x007f, 0x007f, 0x008b, 0x009d, 0x00c4, 0x00dc, 0x00f1, 0x0100, - 0x010c, 0x011b, 0x0127, 0x0193, 0x01a5, 0x01ae, 0x01c0, 0x01cf, - 0x01e4, 0x01ff, 0x0214, 0x026b, 0x0283, 0x0295, 0x0295, 0x02c6, - 0x02fa, 0x033a, 0x033a, 0x034f, 0x0380, 0x0398, 0x03b9, 0x03c8, - 0x03c8, 0x03d7, 0x03ec, 0x0404, 0x0413, 0x041c, 0x042b, 0x044a, - 0x046f, 0x0481, 0x0499, 0x0499, 0x04af, 0x04e7, 0x0512, 0x0524, - 0x0543, 0x0558, 0x0567, 0x0567, 0x057d, 0x0595, 0x05ad, 0x05bc, - // Entry 40 - 7F - 0x05bc, 0x05cb, 0x05dd, 0x05dd, 0x05ec, 0x05f8, 0x0601, 0x062c, - 0x064e, 0x065d, 0x066c, 0x067e, 0x0697, 0x06b0, 0x06b0, 0x06b0, - 0x06c8, 0x06e0, 0x06e0, 0x06fb, 0x0716, 0x074a, 0x074a, 0x074a, - 0x0762, 0x0777, 0x0777, 0x078f, 0x0798, 0x0798, 0x07ba, 0x07d2, - 0x07d2, 0x07d2, 0x07d2, 0x07e4, 0x07e4, 0x07f0, 0x0803, 0x0815, - 0x0824, 0x083f, 0x083f, 0x083f, 0x0864, 0x087a, 0x08b7, 0x08dc, - 0x08f8, 0x0910, 0x093b, 0x097b, 0x098d, 0x09b1, 0x09c0, 0x09d5, - 0x09e4, 0x09e4, 0x09ff, 0x0a1b, 0x0a33, 0x0a33, 0x0a33, 0x0a33, - // Entry 80 - BF - 0x0a45, 0x0a45, 0x0a57, 0x0a79, 0x0a8e, 0x0ad1, 0x0afc, 0x0b24, - 0x0b3c, 0x0b3c, 0x0b4c, 0x0b69, 0x0b78, 0x0b78, 0x0b8e, 0x0b9d, - 0x0bb5, 0x0bca, 0x0bdf, 0x0beb, 0x0bf4, 0x0c06, 0x0c06, 0x0c21, - 0x0c2a, 0x0c49, 0x0c49, 0x0c49, 0x0c6b, 0x0c90, 0x0c96, 0x0cb7, - 0x0ce2, 0x0cf4, 0x0d06, 0x0d1b, 0x0d3a, -} - -// Size: 289 bytes -var msScriptStr string = "" + - "ArabArmeniaBaliBamuBengaliBopomofoBrailleCansCyrilDevanagariEthiopiaGeor" + - "giaGreekGujaratGurmukhiHangulHanHan RingkasHan TradisionalIbraniHiragana" + - "JepunKatakanaKhmerKannadaKoreaLaoLatinMalayalamMongoliaMyammarOriyaSinha" + - "laTamilTeluguThaanaThaiTibetSimbolTidak ditulisBiasaSkrip Tidak Diketahu" + - "i" - -// Size: 354 bytes, 165 elements -var msScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0004, 0x0004, 0x000b, 0x000b, 0x000f, - 0x0013, 0x0013, 0x0013, 0x001a, 0x001a, 0x0022, 0x0022, 0x0029, - 0x0029, 0x0029, 0x0029, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, - 0x002d, 0x002d, 0x0032, 0x0032, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x0044, 0x0044, 0x004b, 0x004b, 0x004b, - 0x004b, 0x0050, 0x0057, 0x005f, 0x0065, 0x0068, 0x0068, 0x0073, - 0x0082, 0x0088, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, - 0x0090, 0x0090, 0x0095, 0x0095, 0x0095, 0x009d, 0x009d, 0x00a2, - // Entry 40 - 7F - 0x00a2, 0x00a9, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00b1, 0x00b1, - 0x00b1, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, - 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, - 0x00b6, 0x00bf, 0x00bf, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00ce, - 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, - 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, - 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, - 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, - // Entry 80 - BF - 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, - 0x00da, 0x00da, 0x00da, 0x00da, 0x00df, 0x00df, 0x00df, 0x00e5, - 0x00e5, 0x00e5, 0x00e5, 0x00eb, 0x00ef, 0x00f4, 0x00f4, 0x00f4, - 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, - 0x00f4, 0x00fa, 0x0107, 0x010c, 0x0121, -} - -// Size: 1223 bytes -var myScriptStr string = "" + - "အာရေဗျအာမေးနီးယားဘင်္ဂါလီဘိုပိုဗြဟ္မမီဘရေစစ်ရိလစ်ဒီဗနာဂရီအီသီယိုးပီးယားဂ" + - "ျော်ဂျီယန်ဂရိဂုဂျာရသီဂူရူဟန်ဂူးလ်ဟန်ရိုးရှင်းသော ဟန်ရှေးရိုးစဉ်လာဟန်ဟီ" + - "ဗရူးဟိရဂá€á€á€á€á€ သို့မဟုá€á€º ဟိရဂá€á€‚ျာဗားနီးစ်ဂျပန်ကယားလီá€á€á€á€á€á€™á€¬á€á€”္နာဒါကိုးရ" + - "ီးယားလာအိုလက်á€á€„်မာလာရာလန်မွန်ဂိုလီးယားမြန်မာအိုရာဆင်ဟာလဆူဒန်á€á€­á€¯á€„်လီá€á€™á€®" + - "းလ်á€á€®á€œá€¯á€á€‚လော့ဂ်သာအ်ထိုင်းá€á€­á€˜á€€á€ºá€™á€¼á€„်နိုင်သော စကားပါရှန် အဟောင်းရီသင်္ကေá€" + - "မရေးထားသောအများနှင့်သက်ဆိုင်သောမသိ သို့မဟုá€á€º မရှိသော စကားလုံး" - -// Size: 354 bytes, 165 elements -var myScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0012, 0x0012, 0x0033, 0x0033, 0x0033, - 0x0033, 0x0033, 0x0033, 0x004b, 0x004b, 0x005d, 0x0072, 0x007b, - 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, - 0x007b, 0x007b, 0x0093, 0x0093, 0x00ab, 0x00ab, 0x00ab, 0x00ab, - 0x00ab, 0x00ab, 0x00ab, 0x00d5, 0x00d5, 0x00f6, 0x00f6, 0x00f6, - 0x00f6, 0x00ff, 0x0117, 0x0123, 0x013b, 0x0144, 0x0144, 0x0172, - 0x01a2, 0x01b4, 0x01c3, 0x01c3, 0x01c3, 0x01fb, 0x01fb, 0x01fb, - 0x01fb, 0x021c, 0x022b, 0x022b, 0x023d, 0x0249, 0x0249, 0x0252, - // Entry 40 - 7F - 0x0252, 0x0267, 0x0285, 0x0285, 0x0285, 0x0285, 0x0294, 0x0294, - 0x0294, 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02a6, - 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02a6, - 0x02a6, 0x02c1, 0x02c1, 0x02e8, 0x02e8, 0x02e8, 0x02e8, 0x02fa, - 0x02fa, 0x02fa, 0x02fa, 0x02fa, 0x02fa, 0x02fa, 0x02fa, 0x02fa, - 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, - 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, - 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, - // Entry 80 - BF - 0x031b, 0x031b, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, - 0x032a, 0x032a, 0x033f, 0x033f, 0x0351, 0x0351, 0x0351, 0x035d, - 0x035d, 0x035d, 0x0375, 0x0381, 0x0393, 0x03a2, 0x03a2, 0x03a2, - 0x03a2, 0x03d3, 0x03d3, 0x03d3, 0x03fb, 0x03fb, 0x0401, 0x0401, - 0x0401, 0x0416, 0x0434, 0x0473, 0x04c7, -} - -// Size: 3028 bytes -var neScriptStr string = "" + - "अरबीआरà¥à¤®à¥€à¤†à¤°à¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤†à¤­à¥‡à¤¸à¥à¤Ÿà¤¾à¤¨à¤¬à¤¾à¤²à¥€à¤¬à¤¾à¤Ÿà¤•à¤¬à¤™à¥à¤—ालीबà¥à¤²à¤¿à¤œà¤¸à¤¿à¤®à¥à¤¬à¥‹à¤²à¥à¤¸à¤¬à¥‹à¤ªà¥‹à¤®à¥‹à¤«à¥‹à¤¬à¥à¤°à¤¾à¤¹à¥à¤®" + - "ीबà¥à¤°à¥‡à¤²à¤¬à¥à¤—िनिजबà¥à¤¹à¤¿à¤¦à¤•à¤¾à¤•à¥à¤®à¥à¤•à¤¾à¤°à¤¿à¤¯à¤¨à¤šà¤¾à¤®à¤šà¥‡à¤°à¥‹à¤•à¥€à¤•à¤¿à¤°à¥à¤¥à¤•à¤ªà¥à¤Ÿà¤¿à¤•à¤•à¤ªà¥à¤°à¤¿à¤¯à¤Ÿà¤¸à¤¿à¤°à¤¿à¤²à¤¿à¤•à¤¦à¥‡à¤µà¤¾à¤¨à¤¾" + - "गरीडेसेरेटइजिपà¥à¤Ÿà¤¿à¤¯à¤¨ डेमोटिकइजिपà¥à¤Ÿà¤¿à¤¯à¤¨ हाइरटिकइजिपà¥à¤Ÿà¤¿à¤¯à¤¨ हाइरोगà¥à¤²à¤¿à¤«à¥à¤¸à¤‡à¤¥à¤¿à¤¯" + - "ोपिकगà¥à¤°à¥à¤œà¤¿à¤¯à¤¾à¤²à¥€ खà¥à¤Ÿà¥à¤¸à¥à¤°à¥€à¤œà¥‹à¤°à¥à¤œà¤¿à¤¯à¤¨à¤—à¥à¤²à¤¾à¤—ोलिटिकगोथिकगà¥à¤°à¥€à¤•à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤—à¥à¤°à¥‚मà¥à¤–ीहान" + - "à¥à¤—à¥à¤²à¤¹à¤¾à¤¨à¤¹à¤¾à¤¨à¥à¤¨à¥à¤¸à¤°à¤²à¤¿à¤•à¥ƒà¤¤ चिनीपरमà¥à¤ªà¤°à¤¾à¤—त चिनीहिबà¥à¤°à¥à¤¹à¤¿à¤°à¤¾à¤—नापहावह हमोङà¥à¤—काताका" + - "ना वा हिरागानापà¥à¤°à¤¾à¤¨à¥‹ हङà¥à¤—ेरियालीइनà¥à¤¦à¥à¤¸à¤ªà¥à¤°à¤¾à¤¨à¥‹ इटालिकजाभानीजापानीकायाहली" + - "काताकानाखारोसà¥à¤¥à¤¿à¤¤à¤¿à¤–मेरकानà¥à¤¨à¤¾à¤¡à¤¾à¤•à¥‹à¤°à¤¿à¤¯à¤¨à¤•à¥à¤¥à¥€à¤²à¤¾à¤¨à¥à¤¨à¤¾à¤²à¤¾à¤“फà¥à¤°à¤¾à¤•à¥à¤Ÿà¥à¤° लà¥à¤¯à¤¾à¤Ÿà¤¿à¤¨à¤—à¥à¤¯à¤¾" + - "लिक लà¥à¤¯à¤¾à¤Ÿà¤¿à¤¨à¤²à¥à¤¯à¤¾à¤Ÿà¤¿à¤¨à¤²à¥‡à¤ªà¥à¤šà¤¾à¤²à¤¿à¤®à¥à¤¬à¥à¤²à¤¾à¤‡à¤¸à¤¿à¤¯à¤¨à¤²à¤¾à¤‡à¤¡à¤¿à¤¯à¤¨à¤®à¤¾à¤¨à¥à¤¡à¤¾à¤à¤¨à¤®à¤¾à¤¨à¤¿à¤•à¤¾à¤à¤¨à¤®à¤¾à¤¯à¤¾ हाइरो" + - "गà¥à¤²à¤¿à¤«à¥à¤¸à¤®à¥‡à¤°à¤¿à¤¯à¥‹à¤Ÿà¤¿à¤•à¤®à¤²à¤¾à¤¯à¤¾à¤²à¤®à¤®à¤™à¥à¤—ोलजूनमाइटेइ मायेकमà¥à¤¯à¤¾à¤¨à¥à¤®à¤¾à¤°à¤à¤¨à¥à¤•à¥‹à¤“घामओलचिकीओर" + - "à¥à¤–ोनओडियाओसà¥à¤®à¤¾à¤¨à¥à¤¯à¤¾à¤ªà¥à¤°à¤¾à¤¨à¥‹ परà¥à¤®à¤¿à¤•à¤«à¤¾à¤—à¥à¤¸-पाफà¥à¤²à¤¿à¤«à¥à¤²à¥à¤ªà¤¬à¥à¤• पहलà¥à¤­à¥€à¤«à¥‹à¤¨à¤¿à¤¸à¤¿à¤¯à¤¨à¤ªà¥‹à¤²à¥" + - "लारà¥à¤¡ फोनेटिकपिआरटीरेजाङरोङà¥à¤—ोरोङà¥à¤—ोरूनिकसमारिटनसारतीसौराषà¥à¤Ÿà¥à¤°à¤¸à¤¾à¤‡à¤¨à¤°à¤¾à¤‡à¤Ÿ" + - "िङशाभियनसिनà¥à¤¹à¤¾à¤²à¤¾à¤¸à¥à¤¡à¤¾à¤¨à¥€à¤¸à¥à¤²à¥à¤¯à¥‹à¤Ÿà¥€ नागà¥à¤°à¥€à¤¸à¤¿à¤°à¤¿à¤¯à¤¾à¤•à¤‡à¤¸à¥à¤Ÿà¥à¤°à¥‡à¤¨à¤œà¥‡à¤²à¥‹ सिरियाकपशà¥à¤šà¤¿à¤®" + - "ी सिरियाकपूरà¥à¤µà¥€ सिरियाकटागà¥à¤µà¤¾à¤¨à¥à¤µà¤¾à¤Ÿà¤¾à¤‡à¤²à¥‡à¤¨à¥à¤¯à¥‚ टाइ लà¥à¤‡à¤¤à¤¾à¤®à¤¿à¤²à¤Ÿà¤¾à¤­à¥à¤Ÿà¤¤à¥‡à¤²à¥‡à¤—à¥à¤Ÿà¥‡à¤™à¥" + - "वारटिफिनाघटागालोगथानाथाईतिबà¥à¤¬à¤¤à¥€à¤¯à¥à¤—ारिटिकभाइदृशà¥à¤¯à¤®à¤¯ वाणीपà¥à¤°à¤¾à¤¨à¥‹ परà¥à¤¸à¤¿à¤¯à¤¨à¤¯" + - "ीइनà¥à¤¹à¥‡à¤°à¤¿à¤Ÿà¥‡à¤¡à¤œà¤®à¤¥à¤ªà¥à¤°à¤¤à¥€à¤•à¤¹à¤°à¥‚नलेखिà¤à¤•à¥‹à¤¸à¤¾à¤à¤¾à¤…जà¥à¤žà¤¾à¤¤ लिपि" - -// Size: 354 bytes, 165 elements -var neScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000c, 0x001b, 0x003c, 0x0054, 0x0060, - 0x0060, 0x0060, 0x006c, 0x0081, 0x00ab, 0x00c3, 0x00db, 0x00ea, - 0x00ff, 0x010e, 0x0120, 0x0120, 0x0132, 0x013b, 0x014d, 0x015c, - 0x016e, 0x0183, 0x0198, 0x0198, 0x01b3, 0x01c8, 0x01c8, 0x01f9, - 0x022a, 0x026a, 0x026a, 0x0282, 0x02b9, 0x02d1, 0x02f2, 0x0301, - 0x0301, 0x0310, 0x0325, 0x033d, 0x0352, 0x035b, 0x036d, 0x038f, - 0x03b7, 0x03c9, 0x03de, 0x03de, 0x0400, 0x0438, 0x046c, 0x047e, - 0x04a3, 0x04b5, 0x04c7, 0x04c7, 0x04dc, 0x04f4, 0x0512, 0x051e, - // Entry 40 - 7F - 0x051e, 0x0536, 0x0548, 0x0548, 0x0554, 0x0566, 0x056f, 0x05a0, - 0x05cb, 0x05e0, 0x05f2, 0x0604, 0x0604, 0x0604, 0x0604, 0x0604, - 0x0619, 0x062e, 0x062e, 0x0646, 0x065e, 0x068f, 0x068f, 0x068f, - 0x06aa, 0x06bf, 0x06bf, 0x06d1, 0x06da, 0x06da, 0x06fc, 0x0717, - 0x0717, 0x0717, 0x0717, 0x0726, 0x0726, 0x0732, 0x0744, 0x0756, - 0x0765, 0x0780, 0x0780, 0x0780, 0x07a5, 0x07bb, 0x07c7, 0x07d6, - 0x07f2, 0x080a, 0x083b, 0x084d, 0x085c, 0x0880, 0x088f, 0x08a4, - 0x08b3, 0x08b3, 0x08ce, 0x08ec, 0x08fe, 0x08fe, 0x08fe, 0x08fe, - // Entry 80 - BF - 0x0916, 0x0916, 0x0928, 0x0953, 0x0968, 0x09a2, 0x09cd, 0x09f5, - 0x0a13, 0x0a13, 0x0a22, 0x0a42, 0x0a51, 0x0a51, 0x0a60, 0x0a72, - 0x0a87, 0x0a9c, 0x0ab1, 0x0abd, 0x0ac6, 0x0adb, 0x0adb, 0x0af6, - 0x0aff, 0x0b21, 0x0b21, 0x0b21, 0x0b49, 0x0b49, 0x0b4f, 0x0b6d, - 0x0b76, 0x0b91, 0x0ba9, 0x0bb5, 0x0bd4, -} - -// Size: 1616 bytes -var nlScriptStr string = "" + - "DefakaKaukasisch AlbaneesArabischKeizerlijk ArameesArmeensAvestaansBalin" + - "eesBamounBassa VahBatakBengaalsBlissymbolenBopomofoBrahmiBrailleBuginees" + - "BuhidChakmaVerenigde Canadese Aboriginal-symbolenCarischChamCherokeeCirt" + - "hKoptischCyprischCyrillischOudkerkslavisch CyrillischDevanagariDeseretDu" + - "ployan snelschriftEgyptisch demotischEgyptisch hiëratischEgyptische hiër" + - "ogliefenElbasanEthiopischGeorgisch KhutsuriGeorgischGlagolitischGothisch" + - "GranthaGrieksGujaratiGurmukhiHangulHanHanunoovereenvoudigd Chineestradit" + - "ioneel ChineesHebreeuwsHiraganaAnatolische hiërogliefenPahawh HmongKatak" + - "ana of HiraganaOudhongaarsIndusOud-italischJavaansJapansJurchenKayah LiK" + - "atakanaKharoshthiKhmerKhojkiKannadaKoreaansKpelleKaithiLannaLaotiaansGot" + - "isch LatijnsGaelisch LatijnsLatijnsLepchaLimbuLineair ALineair BFraserLo" + - "maLycischLydischMahajaniMandaeansManicheaansMayahiërogliefenMendeMeroiti" + - "sch cursiefMeroïtischMalayalamModiMongoolsMoonMroMeiteiBirmaansOud Noord" + - "-ArabischNabateaansNaxi GebaN’KoNüshuOghamOl ChikiOrkhonOdiaOsmanyaPalmy" + - "reensPau Cin HauOudpermischPhags-paInscriptioneel PahlaviPsalmen Pahlavi" + - "Boek PahlaviFoenicischPollard-fonetischInscriptioneel ParthischRejangRon" + - "gorongoRunicSamaritaansSaratiOud Zuid-ArabischSaurashtraSignWritingShavi" + - "anSharadaSiddhamSindhiSingaleesSora SompengSoendaneesSyloti NagriSyriacE" + - "strangelo ArameesWest-ArameesOost-ArameesTagbanwaTakriTai LeNieuw Tai Lu" + - "eTamilTangutTai VietTeluguTengwarTifinaghTagalogThaanaThaiTibetaansTirhu" + - "taUgaritischVaiZichtbare spraakVarang KshitiWoleaiOudperzischSumero-Akka" + - "dian CuneiformYiOvergeërfdWiskundige notatieSymbolenongeschrevenalgemeen" + - "onbekend schriftsysteem" - -// Size: 354 bytes, 165 elements -var nlScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0006, 0x0019, 0x0021, 0x0033, 0x003a, 0x0043, 0x004b, - 0x0051, 0x005a, 0x005f, 0x0067, 0x0073, 0x007b, 0x0081, 0x0088, - 0x0090, 0x0095, 0x009b, 0x00c1, 0x00c8, 0x00cc, 0x00d4, 0x00d9, - 0x00e1, 0x00e9, 0x00f3, 0x010d, 0x0117, 0x011e, 0x0132, 0x0145, - 0x015a, 0x0172, 0x0179, 0x0183, 0x0195, 0x019e, 0x01aa, 0x01b2, - 0x01b9, 0x01bf, 0x01c7, 0x01cf, 0x01d5, 0x01d8, 0x01df, 0x01f4, - 0x0208, 0x0211, 0x0219, 0x0232, 0x023e, 0x0252, 0x025d, 0x0262, - 0x026e, 0x0275, 0x027b, 0x0282, 0x028a, 0x0292, 0x029c, 0x02a1, - // Entry 40 - 7F - 0x02a7, 0x02ae, 0x02b6, 0x02bc, 0x02c2, 0x02c7, 0x02d0, 0x02df, - 0x02ef, 0x02f6, 0x02fc, 0x0301, 0x030a, 0x0313, 0x0319, 0x031d, - 0x0324, 0x032b, 0x0333, 0x033c, 0x0347, 0x0358, 0x035d, 0x036f, - 0x037a, 0x0383, 0x0387, 0x038f, 0x0393, 0x0396, 0x039c, 0x03a4, - 0x03b6, 0x03c0, 0x03c9, 0x03cf, 0x03d5, 0x03da, 0x03e2, 0x03e8, - 0x03ec, 0x03f3, 0x03fd, 0x0408, 0x0413, 0x041b, 0x0431, 0x0440, - 0x044c, 0x0456, 0x0467, 0x047f, 0x0485, 0x048f, 0x0494, 0x049f, - 0x04a5, 0x04b6, 0x04c0, 0x04cb, 0x04d2, 0x04d9, 0x04e0, 0x04e6, - // Entry 80 - BF - 0x04ef, 0x04fb, 0x0505, 0x0511, 0x0517, 0x0529, 0x0535, 0x0541, - 0x0549, 0x054e, 0x0554, 0x0561, 0x0566, 0x056c, 0x0574, 0x057a, - 0x0581, 0x0589, 0x0590, 0x0596, 0x059a, 0x05a3, 0x05aa, 0x05b4, - 0x05b7, 0x05c7, 0x05d4, 0x05da, 0x05e5, 0x05fe, 0x0600, 0x060b, - 0x061d, 0x0625, 0x0631, 0x0639, 0x0650, -} - -// Size: 1507 bytes -var noScriptStr string = "" + - "afakaarabiskarameiskarmenskavestiskbalinesiskbamumbassa vahbatakbengalsk" + - "blissymbolbopomofobrahmibraillebuginesiskbuhidchakmafelles kanadiske urs" + - "prÃ¥ksstavelserkariskchamcherokeecirthkoptiskkypriotiskkyrilliskkirkeslav" + - "isk kyrilliskdevanagarideseretduployan stenografiegyptisk demotiskegypti" + - "sk hieratiskegyptiske hieroglyferetiopiskgeorgisk khutsurigeorgiskglagol" + - "ittiskgotiskgammeltamilskgreskgujaratigurmukhihangulhanhanunooforenklet " + - "hantradisjonell hanhebraiskhiraganaanatoliske hieroglyferpahawh hmongkat" + - "akana eller hiraganagammelungarskindusgammelitaliskjavanesiskjapanskjurc" + - "henkayah likatakanakharoshthikhmerkhojkikannadakoreanskkpellekaithisklan" + - "nalaotiskfrakturlatinskgælisk latinsklatinsklepchalimbulineær Alineær Bf" + - "raserlomalykisklydiskmandaiskmanikeiskmaya-hieroglyfermendemeroitisk kur" + - "sivmeroitiskmalayalammongolskmoonmromeitei-mayekmyanmargammelnordarabisk" + - "nabataeansknaxi geban’konüshuoghamol-chikiorkhonoriyaosmanyapalmyrenskga" + - "mmelpermiskphags-painskripsjonspahlavipsalter pahlavipahlavifønikiskpoll" + - "ard-fonetiskinskripsjonsparthiskrejangrongorongorunersamaritansksaratiga" + - "mmelsørarabisksaurashtrategnskriftshavisksharadakhudawadisinhalasora som" + - "pengsundanesisksyloti nagrisyriskestrangelosyriakiskvestlig syriakiskøst" + - "lig syriakisktagbanwatakritai leny tai luetamilsktanguttai vietteluguten" + - "gwartifinaghtagalogthaanathaitibetansktirhutaugaritiskvaisynlig talevara" + - "ng kshitiwoleaigammelpersisksumersk-akkadisk kileskriftyinedarvetmatemat" + - "isk notasjonsymbolersprÃ¥k uten skriftfellesukjent skrift" - -// Size: 354 bytes, 165 elements -var noScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0005, 0x0005, 0x000c, 0x0014, 0x001b, 0x0023, 0x002d, - 0x0032, 0x003b, 0x0040, 0x0048, 0x0052, 0x005a, 0x0060, 0x0067, - 0x0071, 0x0076, 0x007c, 0x009f, 0x00a5, 0x00a9, 0x00b1, 0x00b6, - 0x00bd, 0x00c7, 0x00d0, 0x00e6, 0x00f0, 0x00f7, 0x010a, 0x011b, - 0x012d, 0x0142, 0x0142, 0x014a, 0x015b, 0x0163, 0x016f, 0x0175, - 0x0182, 0x0187, 0x018f, 0x0197, 0x019d, 0x01a0, 0x01a7, 0x01b4, - 0x01c4, 0x01cc, 0x01d4, 0x01ea, 0x01f6, 0x020d, 0x021a, 0x021f, - 0x022c, 0x0236, 0x023d, 0x0244, 0x024c, 0x0254, 0x025e, 0x0263, - // Entry 40 - 7F - 0x0269, 0x0270, 0x0278, 0x027e, 0x0286, 0x028b, 0x0292, 0x02a0, - 0x02af, 0x02b6, 0x02bc, 0x02c1, 0x02ca, 0x02d3, 0x02d9, 0x02dd, - 0x02e3, 0x02e9, 0x02e9, 0x02f1, 0x02fa, 0x030a, 0x030f, 0x031f, - 0x0328, 0x0331, 0x0331, 0x0339, 0x033d, 0x0340, 0x034c, 0x0353, - 0x0364, 0x036f, 0x0378, 0x037e, 0x0384, 0x0389, 0x0391, 0x0397, - 0x039c, 0x03a3, 0x03ad, 0x03ad, 0x03ba, 0x03c2, 0x03d5, 0x03e4, - 0x03eb, 0x03f4, 0x0404, 0x0418, 0x041e, 0x0428, 0x042d, 0x0438, - 0x043e, 0x044f, 0x0459, 0x0463, 0x046a, 0x0471, 0x0471, 0x047a, - // Entry 80 - BF - 0x0481, 0x048d, 0x0498, 0x04a4, 0x04aa, 0x04bd, 0x04ce, 0x04df, - 0x04e7, 0x04ec, 0x04f2, 0x04fc, 0x0503, 0x0509, 0x0511, 0x0517, - 0x051e, 0x0526, 0x052d, 0x0533, 0x0537, 0x0540, 0x0547, 0x0550, - 0x0553, 0x055e, 0x056b, 0x0571, 0x057e, 0x0599, 0x059b, 0x05a3, - 0x05b6, 0x05be, 0x05d0, 0x05d6, 0x05e3, -} - -// Size: 740 bytes -var paScriptStr string = "" + - "ਅਰਬੀਅਰਮੀਨੀਆਈਬੰਗਾਲੀਬੋਪੋਮੋਫੋਬਰੇਲਸਿਰੀਲਿਕਦੇਵਨਾਗਰੀਇਥੀਓਪਿਕਜਾਰਜੀਆਈਗà©à¨°à©€à¨•à¨—à©à¨œà¨°à¨¾à¨¤à©€à¨—" + - "à©à¨°à¨®à©à¨–ੀਹੰਗà©à¨²à¨¹à¨¾à¨¨à¨¸à¨°à¨² ਹਾਨਰਵਾਇਤੀ ਹਾਨਹਿਬਰੂਹਿਰਾਗਾਨਾਜਪਾਨੀਕਾਟਾਕਾਨਾਖਮੇਰਕੰਨੜਕੋਰੀਆ" + - "ਈਲਾਓਲਾਤੀਨੀਮਲਿਆਲਮਮੰਗੋਲੀਅਨਮਿਆਂਮਾਰਉੜੀਆਸਿੰਹਾਲਾਤਮਿਲਤੇਲਗੂਥਾਨਾਥਾਈਤਿੱਬਤੀਗਣਿਤ ਚ" + - "ਿੰਨà©à¨¹-ਲਿਪੀਚਿੰਨà©à¨¹à¨…ਲਿਖਤਸਧਾਰਨਅਣਪਛਾਤੀ ਲਿਪੀ" - -// Size: 354 bytes, 165 elements -var paScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x0024, 0x0024, 0x0024, - 0x0024, 0x0024, 0x0024, 0x0036, 0x0036, 0x004e, 0x004e, 0x005a, - 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x006f, 0x006f, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0087, 0x0087, 0x0087, 0x009c, 0x009c, 0x00b1, 0x00b1, 0x00b1, - 0x00b1, 0x00c0, 0x00d5, 0x00ea, 0x00f9, 0x0102, 0x0102, 0x0115, - 0x0131, 0x0140, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, - 0x0158, 0x0158, 0x0167, 0x0167, 0x0167, 0x017f, 0x017f, 0x018b, - // Entry 40 - 7F - 0x018b, 0x0197, 0x01a9, 0x01a9, 0x01a9, 0x01a9, 0x01b2, 0x01b2, - 0x01b2, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, - 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, - 0x01c4, 0x01d6, 0x01d6, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x0203, - 0x0203, 0x0203, 0x0203, 0x0203, 0x0203, 0x0203, 0x0203, 0x0203, - 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, - 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, - 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, - // Entry 80 - BF - 0x0224, 0x0224, 0x0224, 0x0224, 0x0224, 0x0224, 0x0224, 0x0224, - 0x0224, 0x0224, 0x0224, 0x0224, 0x0230, 0x0230, 0x0230, 0x023f, - 0x023f, 0x023f, 0x023f, 0x024b, 0x0254, 0x0266, 0x0266, 0x0266, - 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, - 0x0292, 0x02a4, 0x02b3, 0x02c2, 0x02e4, -} - -// Size: 1483 bytes -var plScriptStr string = "" + - "arabskiearmiormiaÅ„skieawestyjskiebalijskiebamunbatakbengalskiesymbole Bl" + - "issabopomofobrahmiBraille’abugiÅ„skiebuhidchakmazunifikowane symbole kana" + - "dyjskich autochtonówkaryjskieczamskieczirokeskicirthkoptyjskiecypryjskie" + - "cyrylicacyrylica staro-cerkiewno-sÅ‚owiaÅ„skadevanagarideseretegipskie dem" + - "otyczneegipskie hieratycznehieroglify egipskieetiopskiegruziÅ„skie chucur" + - "igruziÅ„skiegÅ‚agolicagotyckiegreckiegudźarackiegurmukhihangylhanhanunooup" + - "roszczone hantradycyjne hanhebrajskiehiraganapahawh hmongkatakana lub hi" + - "raganastarowÄ™gierskieindusstarowÅ‚oskiejawajskiejapoÅ„skiekayah likatakana" + - "charostikhmerskiekannadakoreaÅ„skiekaithilannalaotaÅ„skieÅ‚aciÅ„ski - fraktu" + - "raÅ‚aciÅ„ski - odmiana gaelickaÅ‚aciÅ„skielepchalimbulinearne Alinearne Blik" + - "ijskielidyjskiemandejskiemanichejskiehieroglify Majówmeroickiemalajalamm" + - "ongolskieMoon’ameitei mayekbirmaÅ„skien’kooghamol chikiorchoÅ„skieorijaosm" + - "anyastaropermskiephags-painskrypcyjne pahlawipahlawi psaÅ‚terzowypahlawi " + - "książkowyfenickifonetyczny Pollard’apartyjski inskrypcyjnyrejangrongoron" + - "gorunicznesamarytaÅ„skisaratisaurashtrapismo znakoweshawasyngaleskiesunda" + - "jskiesyloti nagrisyryjskisyriacki estrangelosyryjski (odmiana zachodnia)" + - "syryjski (odmiana wschodnia)tagbanwatai lenowy tai luetamilskietai viett" + - "elugutengwartifinagh (berberski)tagalogthaanatajskietybetaÅ„skieugaryckie" + - "vaiVisible Speechstaroperskieklinowe sumero-akadyjskieyidziedziczonenota" + - "cja matematycznasymbolejÄ™zyk bez systemu pismawspólnenieznane lub niepop" + - "rawne" - -// Size: 354 bytes, 165 elements -var plScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0008, 0x000c, 0x0017, 0x0022, 0x002b, - 0x0030, 0x0030, 0x0035, 0x003f, 0x004d, 0x0055, 0x005b, 0x0066, - 0x0070, 0x0075, 0x007b, 0x00a9, 0x00b2, 0x00ba, 0x00c4, 0x00c9, - 0x00d3, 0x00dd, 0x00e5, 0x010a, 0x0114, 0x011b, 0x011b, 0x012e, - 0x0142, 0x0155, 0x0155, 0x015e, 0x0171, 0x017c, 0x0186, 0x018e, - 0x018e, 0x0195, 0x01a1, 0x01a9, 0x01af, 0x01b2, 0x01b9, 0x01c8, - 0x01d6, 0x01e0, 0x01e8, 0x01e8, 0x01f4, 0x0209, 0x0219, 0x021e, - 0x022b, 0x0234, 0x023e, 0x023e, 0x0246, 0x024e, 0x0256, 0x025f, - // Entry 40 - 7F - 0x025f, 0x0266, 0x0271, 0x0271, 0x0277, 0x027c, 0x0287, 0x029c, - 0x02b9, 0x02c4, 0x02ca, 0x02cf, 0x02d9, 0x02e3, 0x02e3, 0x02e3, - 0x02ec, 0x02f5, 0x02f5, 0x02ff, 0x030b, 0x031c, 0x031c, 0x031c, - 0x0325, 0x032e, 0x032e, 0x0338, 0x0340, 0x0340, 0x034c, 0x0357, - 0x0357, 0x0357, 0x0357, 0x035d, 0x035d, 0x0362, 0x036a, 0x0375, - 0x037a, 0x0381, 0x0381, 0x0381, 0x038e, 0x0396, 0x03aa, 0x03be, - 0x03d1, 0x03d8, 0x03ee, 0x0404, 0x040a, 0x0414, 0x041c, 0x0429, - 0x042f, 0x042f, 0x0439, 0x0446, 0x044b, 0x044b, 0x044b, 0x044b, - // Entry 80 - BF - 0x0456, 0x0456, 0x0460, 0x046c, 0x0474, 0x0487, 0x04a3, 0x04bf, - 0x04c7, 0x04c7, 0x04cd, 0x04d9, 0x04e2, 0x04e2, 0x04ea, 0x04f0, - 0x04f7, 0x050b, 0x0512, 0x0518, 0x051f, 0x052b, 0x052b, 0x0534, - 0x0537, 0x0545, 0x0545, 0x0545, 0x0551, 0x056a, 0x056c, 0x0578, - 0x058c, 0x0593, 0x05ab, 0x05b3, 0x05cb, -} - -// Size: 1251 bytes -var ptScriptStr string = "" + - "árabearmiarmênioavésticobalinêsbamumbataquebengalisímbolos blissbopomofo" + - "brahmibraillebuginêsbuhidcakmescrita silábica unificada dos aborígenes c" + - "anadensescarianochamcherokeecirthcópticocipriotacirílicocirílico eslavo " + - "eclesiásticodevanágarideseretdemótico egípciohierático egípciohieróglifo" + - "s egípciosetiópicokhutsuri georgianogeorgianoglagolíticogóticogregogujer" + - "atigurmuquihangulhanhanunoohan simplificadohan tradicionalhebraicohiraga" + - "napahawh hmongkatakana ou hiraganahúngaro antigoindoitálico antigojavanê" + - "sjaponêskayah likatakanakharoshthikhmerkannadacoreanokthilannalaolatim f" + - "rakturlatim gaélicolatimlepchalimbulinear Alinear Blisulíciolídiomandaic" + - "omaniqueanohieróglifos maiasmeroítico cursivomeroíticomalaialamongolmoon" + - "meitei mayekbirmanêsn’koogâmicool chikiorkhonoriyaosmaniapérmico antigop" + - "hags-paphliphlppahlavi antigofeníciofonético pollardprtirejangrongorongo" + - "rúnicosamaritanosaratisaurashtrasignwritingshavianocingalêssundanêssylot" + - "i nagrisiríacosiríaco estrangelosiríaco ocidentalsiríaco orientaltagbanw" + - "atai Lenovo tai luetâmiltavttélugotengwartifinaghtagalothaanatailandêsti" + - "betanougaríticovaivisible speechpersa antigosumério-acadiano cuneiformey" + - "iherdadozmthzsymágrafocomumescrita desconhecida" - -// Size: 354 bytes, 165 elements -var ptScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0006, 0x000a, 0x0012, 0x001b, 0x0023, - 0x0028, 0x0028, 0x002f, 0x0036, 0x0045, 0x004d, 0x0053, 0x005a, - 0x0062, 0x0067, 0x006b, 0x00a1, 0x00a8, 0x00ac, 0x00b4, 0x00b9, - 0x00c1, 0x00c9, 0x00d2, 0x00f0, 0x00fb, 0x0102, 0x0102, 0x0114, - 0x0127, 0x013d, 0x013d, 0x0146, 0x0158, 0x0161, 0x016d, 0x0174, - 0x0174, 0x0179, 0x0181, 0x0189, 0x018f, 0x0192, 0x0199, 0x01a9, - 0x01b8, 0x01c0, 0x01c8, 0x01c8, 0x01d4, 0x01e8, 0x01f7, 0x01fb, - 0x020a, 0x0212, 0x021a, 0x021a, 0x0222, 0x022a, 0x0234, 0x0239, - // Entry 40 - 7F - 0x0239, 0x0240, 0x0247, 0x0247, 0x024b, 0x0250, 0x0253, 0x0260, - 0x026e, 0x0273, 0x0279, 0x027e, 0x0286, 0x028e, 0x0292, 0x0292, - 0x0298, 0x029e, 0x029e, 0x02a6, 0x02b0, 0x02c2, 0x02c2, 0x02d4, - 0x02de, 0x02e6, 0x02e6, 0x02ec, 0x02f0, 0x02f0, 0x02fc, 0x0305, - 0x0305, 0x0305, 0x0305, 0x030b, 0x030b, 0x0313, 0x031b, 0x0321, - 0x0326, 0x032d, 0x032d, 0x032d, 0x033c, 0x0344, 0x0348, 0x034c, - 0x035a, 0x0362, 0x0373, 0x0377, 0x037d, 0x0387, 0x038e, 0x0398, - 0x039e, 0x039e, 0x03a8, 0x03b3, 0x03bb, 0x03bb, 0x03bb, 0x03bb, - // Entry 80 - BF - 0x03c4, 0x03c4, 0x03cd, 0x03d9, 0x03e1, 0x03f4, 0x0406, 0x0417, - 0x041f, 0x041f, 0x0425, 0x0431, 0x0437, 0x0437, 0x043b, 0x0442, - 0x0449, 0x0451, 0x0457, 0x045d, 0x0467, 0x046f, 0x046f, 0x0479, - 0x047c, 0x048a, 0x048a, 0x048a, 0x0496, 0x04b2, 0x04b4, 0x04bb, - 0x04bf, 0x04c3, 0x04ca, 0x04cf, 0x04e3, -} - -// Size: 103 bytes -var ptPTScriptStr string = "" + - "arménioegípcio demóticoegípcio hieráticoguzerateindussiloti nagritai let" + - "elugusímbolosnão escrito" - -// Size: 350 bytes, 163 elements -var ptPTScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x001a, - 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, - 0x002d, 0x002d, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x003a, - 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, - // Entry 40 - 7F - 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, - 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, - 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, - 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, - 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, - 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, - 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, - 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, - // Entry 80 - BF - 0x003a, 0x003a, 0x003a, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, - 0x0046, 0x0046, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x0052, - 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, - 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, - 0x0052, 0x005b, 0x0067, -} - -// Size: 825 bytes -var roScriptStr string = "" + - "arabăarmeanăbalinezăbengalezăbopomofobraillesilabică aborigenă canadiană" + - " unificatăcoptăcipriotăchirilicăchirilică slavonă bisericească vechedeva" + - "nagarimormonădemotică egipteanăhieratică egipteanăhieroglife egipteneeti" + - "opianăgeorgiană bisericeascăgeorgianăglagoliticăgoticăgreacăgujaratigurm" + - "ukhihangulhanhan simplificatăhan tradiÈ›ionalăebraicăhiraganakatakana sau" + - " hiraganamaghiară vecheindusitalică vechejavanezăjaponezăkatakanakhmerăk" + - "annadacoreeanălaoÈ›ianălatină Frakturlatină gaelicălatinălineară Alineară" + - " Blidianăhieroglife mayamalayalammongolăbirmanăoriyafenicianărunicăsinga" + - "lezăsiriacăsiriacă occidentalăsiriacă orientalătamilăteluguberberăthaana" + - "thailandezătibetanăpersană vechecuneiformă sumero-akkadianămoÈ™tenităsimb" + - "olurinescrisăcomunăscriere necunoscută" - -// Size: 354 bytes, 165 elements -var roScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x000e, 0x000e, 0x0017, - 0x0017, 0x0017, 0x0017, 0x0021, 0x0021, 0x0029, 0x0029, 0x0030, - 0x0030, 0x0030, 0x0030, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x0060, 0x0069, 0x0073, 0x009a, 0x00a4, 0x00ac, 0x00ac, 0x00c0, - 0x00d5, 0x00e8, 0x00e8, 0x00f2, 0x010a, 0x0114, 0x0120, 0x0127, - 0x0127, 0x012e, 0x0136, 0x013e, 0x0144, 0x0147, 0x0147, 0x0158, - 0x016a, 0x0172, 0x017a, 0x017a, 0x017a, 0x018f, 0x019e, 0x01a3, - 0x01b1, 0x01ba, 0x01c3, 0x01c3, 0x01c3, 0x01cb, 0x01cb, 0x01d2, - // Entry 40 - 7F - 0x01d2, 0x01d9, 0x01e2, 0x01e2, 0x01e2, 0x01e2, 0x01ec, 0x01fb, - 0x020b, 0x0212, 0x0212, 0x0212, 0x021c, 0x0226, 0x0226, 0x0226, - 0x0226, 0x022e, 0x022e, 0x022e, 0x022e, 0x023d, 0x023d, 0x023d, - 0x023d, 0x0246, 0x0246, 0x024e, 0x024e, 0x024e, 0x024e, 0x0256, - 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, - 0x025b, 0x025b, 0x025b, 0x025b, 0x025b, 0x025b, 0x025b, 0x025b, - 0x025b, 0x0265, 0x0265, 0x0265, 0x0265, 0x0265, 0x026c, 0x026c, - 0x026c, 0x026c, 0x026c, 0x026c, 0x026c, 0x026c, 0x026c, 0x026c, - // Entry 80 - BF - 0x0276, 0x0276, 0x0276, 0x0276, 0x027e, 0x027e, 0x0293, 0x02a6, - 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02ad, 0x02ad, 0x02ad, 0x02b3, - 0x02b3, 0x02bb, 0x02bb, 0x02c1, 0x02cd, 0x02d6, 0x02d6, 0x02d6, - 0x02d6, 0x02d6, 0x02d6, 0x02d6, 0x02e4, 0x0301, 0x0301, 0x030c, - 0x030c, 0x0315, 0x031e, 0x0325, 0x0339, -} - -// Size: 3384 bytes -var ruScriptStr string = "" + - "афакаарабицаарамейÑкаÑармÑнÑкаÑавеÑтийÑкаÑбалийÑкаÑбамумбаÑÑа (вах)батак" + - "ÑкаÑбенгальÑкаÑблиÑÑимволикабопомофобрахмибрайлÑбугинизийÑкаÑбухидчакми" + - "йÑкаÑканадÑкое Ñлоговое пиÑьмокарийÑкаÑчамÑкаÑчерокикирткоптÑкаÑкипрÑка" + - "ÑкириллицаÑтароÑлавÑнÑкаÑдеванагаридезеретдуплоÑнÑÐºÐ°Ñ ÑкоропиÑьегипетÑк" + - "Ð°Ñ Ð´ÐµÐ¼Ð¾Ñ‚Ð¸Ñ‡ÐµÑкаÑегипетÑÐºÐ°Ñ Ð¸ÐµÑ€Ð°Ñ‚Ð¸Ñ‡ÐµÑкаÑегипетÑÐºÐ°Ñ Ð¸ÐµÑ€Ð¾Ð³Ð»Ð¸Ñ„Ð¸Ñ‡ÐµÑкаÑÑфиопÑк" + - "аÑгрузинÑÐºÐ°Ñ Ñ…ÑƒÑ†ÑƒÑ€Ð¸Ð³Ñ€ÑƒÐ·Ð¸Ð½ÑкаÑглаголицаготÑкаÑгрантхагречеÑкаÑгуджаратиг" + - "урмукхихангылькитайÑкаÑÑ…Ð°Ð½ÑƒÐ½ÑƒÑƒÐ¿Ñ€Ð¾Ñ‰ÐµÐ½Ð½Ð°Ñ ÐºÐ¸Ñ‚Ð°Ð¹ÑкаÑÑ‚Ñ€Ð°Ð´Ð¸Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÐºÐ¸Ñ‚Ð°Ð¹ÑкаÑ" + - "ивритхираганалувийÑкие иероглифыпахау хмонгкатакана или хираганаÑтарове" + - "нгерÑкаÑхараппÑÐºÐ°Ñ (пиÑьменноÑÑ‚ÑŒ долины Инда)ÑтароитальÑнÑкаÑÑванÑкаÑÑп" + - "онÑкаÑчжурчжÑньÑкаÑкайакатаканакхароштхикхмерÑкаÑходжикиканнадакорейÑка" + - "ÑкпеллекайтхиланналаоÑÑкаÑлатинÑÐºÐ°Ñ Ñ„Ñ€Ð°ÐºÑ‚ÑƒÑ€Ð°Ð³ÑльÑÐºÐ°Ñ Ð»Ð°Ñ‚Ð¸Ð½ÑкаÑлатиницал" + - "епхалимбулинейное пиÑьмо Ðлинейное пиÑьмо БлиÑуломалицианлидийÑкаÑманде" + - "йÑкаÑманихейÑкаÑмайÑмендемероитÑÐºÐ°Ñ ÐºÑƒÑ€ÑивнаÑмероитÑкаÑмалаÑльÑкаÑмонго" + - "льÑкаÑазбука мунамроманипуримьÑнманÑкаÑÑеверноаравийÑкоенабатейÑкаÑнаÑи" + - " гебанконюй-шуогамичеÑкаÑол чикиорхоно-ениÑейÑкаÑориÑоÑманÑкаÑпальмирыдр" + - "евнепермÑкаÑпагÑпапехлевийÑкаÑпахлави пÑалтирнаÑпахлави книжнаÑфиникийÑ" + - "каÑполлардовÑÐºÐ°Ñ Ñ„Ð¾Ð½ÐµÑ‚Ð¸ÐºÐ°Ð¿Ð°Ñ€Ñ„ÑнÑкаÑреджангÑкаÑронго-ронгоруничеÑкаÑÑама" + - "ритÑнÑкаÑÑаратиÑтароюжноарабÑкаÑÑаураштраÑзык знаковалфавит Шоушарадакх" + - "удавадиÑингальÑкаÑÑора-ÑонпенгÑунданÑкаÑÑилоти нагриÑирийÑкаÑÑирийÑÐºÐ°Ñ " + - "ÑÑтрангелозападноÑирийÑкаÑвоÑточно-ÑирийÑкаÑтагбанватакритайÑкий леновы" + - "й тайÑкий летамильÑкаÑтангутÑкое менÑтай-вьеттелугутенгварÑкаÑдревнелив" + - "ийÑкаÑтагалогтаанатайÑкаÑтибетÑкаÑтирхутаугаритÑкаÑвайÑкаÑÐ²Ð¸Ð´Ð¸Ð¼Ð°Ñ Ñ€ÐµÑ‡ÑŒÐ²" + - "аранг-кшитиволеаиÑтароперÑидÑкаÑшумеро-аккадÑÐºÐ°Ñ ÐºÐ»Ð¸Ð½Ð¾Ð¿Ð¸ÑьиунаÑледованн" + - "аÑматематичеÑкие обозначениÑÑимволыбеÑпиÑьменныйобщепринÑтаÑнеизвеÑтнаÑ" + - " пиÑьменноÑÑ‚ÑŒ" - -// Size: 354 bytes, 165 elements -var ruScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000a, 0x000a, 0x0018, 0x002c, 0x003e, 0x0054, 0x0066, - 0x0070, 0x0083, 0x0095, 0x00ab, 0x00c5, 0x00d5, 0x00e1, 0x00ed, - 0x0107, 0x0111, 0x0125, 0x0155, 0x0167, 0x0175, 0x0181, 0x0189, - 0x0199, 0x01a9, 0x01bb, 0x01d9, 0x01ed, 0x01fb, 0x0224, 0x0251, - 0x027e, 0x02b1, 0x02b1, 0x02c3, 0x02e4, 0x02f8, 0x030a, 0x0318, - 0x0326, 0x0338, 0x034a, 0x035a, 0x0368, 0x037a, 0x0386, 0x03ad, - 0x03d8, 0x03e2, 0x03f2, 0x0417, 0x042c, 0x0454, 0x0472, 0x04b7, - 0x04d7, 0x04e7, 0x04f7, 0x0511, 0x0519, 0x0529, 0x053b, 0x054d, - // Entry 40 - 7F - 0x055b, 0x0569, 0x057b, 0x0587, 0x0593, 0x059d, 0x05ad, 0x05d0, - 0x05f3, 0x0603, 0x060d, 0x0617, 0x0637, 0x0657, 0x065f, 0x0667, - 0x0673, 0x0685, 0x0685, 0x0699, 0x06af, 0x06b7, 0x06c1, 0x06e8, - 0x06fc, 0x0712, 0x0712, 0x0728, 0x073d, 0x0743, 0x0753, 0x0769, - 0x078b, 0x07a1, 0x07b2, 0x07b8, 0x07c3, 0x07d9, 0x07e6, 0x0807, - 0x080f, 0x0821, 0x0831, 0x0831, 0x084d, 0x0859, 0x0871, 0x0894, - 0x08b1, 0x08c7, 0x08f2, 0x0906, 0x091c, 0x0931, 0x0945, 0x095f, - 0x096b, 0x098d, 0x099f, 0x09b4, 0x09c9, 0x09d5, 0x09d5, 0x09e7, - // Entry 80 - BF - 0x09fd, 0x0a14, 0x0a28, 0x0a3f, 0x0a51, 0x0a78, 0x0a98, 0x0abb, - 0x0acb, 0x0ad5, 0x0ae8, 0x0b06, 0x0b1a, 0x0b37, 0x0b46, 0x0b52, - 0x0b68, 0x0b86, 0x0b94, 0x0b9e, 0x0bac, 0x0bbe, 0x0bcc, 0x0be0, - 0x0bee, 0x0c05, 0x0c1c, 0x0c28, 0x0c46, 0x0c78, 0x0c7a, 0x0c96, - 0x0cc9, 0x0cd7, 0x0cf1, 0x0d09, 0x0d38, -} - -// Size: 809 bytes -var siScriptStr string = "" + - "අරà·à¶¶à·’ආර්මේනියà·à¶±à·”බෙංගà·à¶½à·’බොපොමොෆà·à¶¶à·Š\u200dරේල්සිරිලික්දේවනà·à¶œà¶»à·“ඉතියà·à¶´à·’යà·à¶±à·”ජà·" + - "ර්ජියà·à¶±à·”ග්\u200dරීකගුජරà·à¶§à·’ගුර්මුඛිහà·à¶±à·Šà¶œà·”ල්හන්සුළුකළ හෑන්සම්ප්\u200dරදà·" + - "යික හෑන්හීබෲහිරඟනà·à¶¢à¶´à¶±à·Šà¶šà¶­à¶šà¶±à·à¶šà¶¸à¶»à·Šà¶šà¶«à·Šà¶«à¶©à¶šà·œà¶»à·’යà·à¶±à·”ලà·à¶•à¶½à¶­à·’න්මලයà·à¶½à¶¸à·Šà¶¸à·œà¶±à·Šà¶œà·à¶½à·’යà·à¶±" + - "ුමියන්මà·à¶»à¶”රියà·à·ƒà·’ංහලදෙමළතෙළිඟුතà·à¶±à¶­à·à¶ºà·’ටි\u200dබෙට්සංකේතඅලිඛිතපොදු.නොදත් " + - "අක්ෂර මà·à¶½à·à·€" - -// Size: 354 bytes, 165 elements -var siScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000f, 0x000f, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0045, 0x0045, 0x005d, 0x005d, 0x0072, - 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, - 0x0072, 0x0072, 0x008a, 0x008a, 0x00a2, 0x00a2, 0x00a2, 0x00a2, - 0x00a2, 0x00a2, 0x00a2, 0x00c3, 0x00c3, 0x00e1, 0x00e1, 0x00e1, - 0x00e1, 0x00f3, 0x0108, 0x0120, 0x0138, 0x0141, 0x0141, 0x0160, - 0x0191, 0x019d, 0x01af, 0x01af, 0x01af, 0x01af, 0x01af, 0x01af, - 0x01af, 0x01af, 0x01bb, 0x01bb, 0x01bb, 0x01ca, 0x01ca, 0x01d6, - // Entry 40 - 7F - 0x01d6, 0x01e5, 0x01fd, 0x01fd, 0x01fd, 0x01fd, 0x0206, 0x0206, - 0x0206, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, - 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, - 0x0215, 0x022a, 0x022a, 0x024e, 0x024e, 0x024e, 0x024e, 0x0266, - 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, - 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, - 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, - 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, - // Entry 80 - BF - 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, - 0x0284, 0x0284, 0x0284, 0x0284, 0x0290, 0x0290, 0x0290, 0x02a2, - 0x02a2, 0x02a2, 0x02a2, 0x02ab, 0x02b7, 0x02cc, 0x02cc, 0x02cc, - 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, - 0x02cc, 0x02db, 0x02ed, 0x02fa, 0x0329, -} - -// Size: 487 bytes -var skScriptStr string = "" + - "arabskéarménskebalijskýbengálskebopomofobraillovo písmocyrilikadévanágar" + - "íegyptské hieroglyfyetiópskegruzínskehlaholikagotickýgréckegudžarátígur" + - "mukhihangulhanhan – zjednoduÅ¡enéhan – tradiÄnéhebrejskéhiraganajaponskék" + - "atakanakhmérskekannadskékórejskélaoskélatinkalineárna Alineárna Bmayské " + - "hieroglyfymalajálamskemongolskébarmskéuríjskeosmanskýRunové písmosinháls" + - "ketamilskételugskétánathajskétibetskésymbolybez zápisuvÅ¡eobecnéneznáme p" + - "ísmo" - -// Size: 354 bytes, 165 elements -var skScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0011, 0x0011, 0x001a, - 0x001a, 0x001a, 0x001a, 0x0024, 0x0024, 0x002c, 0x002c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x0044, 0x0044, 0x0051, 0x0051, 0x0051, 0x0051, - 0x0051, 0x0065, 0x0065, 0x006e, 0x006e, 0x0078, 0x0081, 0x0089, - 0x0089, 0x0090, 0x009c, 0x00a4, 0x00aa, 0x00ad, 0x00ad, 0x00c3, - 0x00d5, 0x00df, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, - 0x00e7, 0x00e7, 0x00f0, 0x00f0, 0x00f0, 0x00f8, 0x00f8, 0x0101, - // Entry 40 - 7F - 0x0101, 0x010b, 0x0115, 0x0115, 0x0115, 0x0115, 0x011c, 0x011c, - 0x011c, 0x0123, 0x0123, 0x0123, 0x012e, 0x0139, 0x0139, 0x0139, - 0x0139, 0x0139, 0x0139, 0x0139, 0x0139, 0x014b, 0x014b, 0x014b, - 0x014b, 0x0158, 0x0158, 0x0162, 0x0162, 0x0162, 0x0162, 0x016a, - 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, - 0x0172, 0x017b, 0x017b, 0x017b, 0x017b, 0x017b, 0x017b, 0x017b, - 0x017b, 0x017b, 0x017b, 0x017b, 0x017b, 0x017b, 0x0189, 0x0189, - 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, - // Entry 80 - BF - 0x0193, 0x0193, 0x0193, 0x0193, 0x0193, 0x0193, 0x0193, 0x0193, - 0x0193, 0x0193, 0x0193, 0x0193, 0x019c, 0x019c, 0x019c, 0x01a5, - 0x01a5, 0x01a5, 0x01a5, 0x01aa, 0x01b2, 0x01bb, 0x01bb, 0x01bb, - 0x01bb, 0x01bb, 0x01bb, 0x01bb, 0x01bb, 0x01bb, 0x01bb, 0x01bb, - 0x01bb, 0x01c2, 0x01cd, 0x01d8, 0x01e7, -} - -// Size: 1487 bytes -var slScriptStr string = "" + - "arabskiimperialno-aramejskiarmenskiavestanskibalijskibataÅ¡kibengalskizna" + - "kovna pisava Blissbopomofobramanskibraillova pisavabuginskibuhidskipoeno" + - "tena zlogovna pisava kanadskih staroselcevChamÄerokeÅ¡kikirtkoptskiciprsk" + - "icirilicastarocerkvenoslovanska cirilicadevanagarÅ¡Äicafonetska pisava de" + - "seretdemotska egipÄanska pisavahieratska egipÄanska pisavaegipÄanska sli" + - "kovna pisavaetiopskicerkvenogruzijskigruzijskiglagoliÅ¡kigotskigrÅ¡kigudža" + - "ratskigurmukihangulkanjihanunskipoenostavljena pisava hantradicionalna p" + - "isava hanhebrejskihiraganapahavhmonska zlogovna pisavakatakana ali hirag" + - "anastaroogrskiinduÅ¡kistaroitalskijavanskijaponskikarenskikatakanagandars" + - "kikmerskikanadskikorejskikajatskilaoÅ¡kifrakturagelski latiniÄnilatinical" + - "epÅ¡kilimbuÅ¡kilinearna pisava Alinearna pisava Blicijskilidijskimandanski" + - "manihejskimajevska slikovna pisavameroitskimalajalamskimongolskiMoonova " + - "pisava za slepemanipurskimjanmarskiogamskisantalskiorkonskiorijskiosmans" + - "kistaropermijskipagpajskivrezani napisi pahlavipsalmski pahlaviknjižno p" + - "alavanskifeniÄanskiPollardova fonetska pisavarongorongorunskisamaritansk" + - "isaratskiznakovna pisavaÅ¡ojevskisinhalskisundanskisiletsko-nagarijskisir" + - "ijskisirska abeceda estrangelozahodnosirijskivzhodnosirijskitagbanskitam" + - "ilskitajsko-vietnamskiteluÅ¡kitengvarskitifinajskitagaloÅ¡kitanajskitajski" + - "tibetanskiugaritskizlogovna pisava vaividni govorstaroperzijskisumersko-" + - "akadski klinopispodedovanmatematiÄna znamenjasimbolinenapisanosploÅ¡nonez" + - "nan ali neveljaven zapis" - -// Size: 354 bytes, 165 elements -var slScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0007, 0x001b, 0x0023, 0x002d, 0x0035, - 0x0035, 0x0035, 0x003d, 0x0046, 0x005b, 0x0063, 0x006c, 0x007c, - 0x0084, 0x008c, 0x008c, 0x00bb, 0x00bb, 0x00bf, 0x00ca, 0x00ce, - 0x00d5, 0x00dc, 0x00e4, 0x0103, 0x0113, 0x012a, 0x012a, 0x0145, - 0x0161, 0x017c, 0x017c, 0x0184, 0x0195, 0x019e, 0x01a9, 0x01af, - 0x01af, 0x01b5, 0x01c1, 0x01c8, 0x01ce, 0x01d3, 0x01db, 0x01f4, - 0x020c, 0x0215, 0x021d, 0x021d, 0x0239, 0x024e, 0x0259, 0x0261, - 0x026d, 0x0275, 0x027d, 0x027d, 0x0285, 0x028d, 0x0296, 0x029d, - // Entry 40 - 7F - 0x029d, 0x02a5, 0x02ad, 0x02ad, 0x02b5, 0x02b5, 0x02bc, 0x02c4, - 0x02d5, 0x02dd, 0x02e4, 0x02ed, 0x02fe, 0x030f, 0x030f, 0x030f, - 0x0317, 0x031f, 0x031f, 0x0328, 0x0332, 0x034a, 0x034a, 0x034a, - 0x0353, 0x035f, 0x035f, 0x0368, 0x037f, 0x037f, 0x0389, 0x0393, - 0x0393, 0x0393, 0x0393, 0x0393, 0x0393, 0x039a, 0x03a3, 0x03ab, - 0x03b2, 0x03ba, 0x03ba, 0x03ba, 0x03c8, 0x03d1, 0x03e7, 0x03f7, - 0x040a, 0x0415, 0x042f, 0x042f, 0x042f, 0x0439, 0x043f, 0x044b, - 0x0453, 0x0453, 0x0453, 0x0462, 0x046b, 0x046b, 0x046b, 0x046b, - // Entry 80 - BF - 0x0474, 0x0474, 0x047d, 0x0490, 0x0498, 0x04b1, 0x04c0, 0x04cf, - 0x04d8, 0x04d8, 0x04d8, 0x04d8, 0x04e0, 0x04e0, 0x04f1, 0x04f9, - 0x0503, 0x050d, 0x0517, 0x051f, 0x0525, 0x052f, 0x052f, 0x0538, - 0x054b, 0x0556, 0x0556, 0x0556, 0x0564, 0x057d, 0x057d, 0x0586, - 0x059b, 0x05a2, 0x05ac, 0x05b4, 0x05cf, -} - -// Size: 290 bytes -var sqScriptStr string = "" + - "arabikarmenbengalbopomofbrailishtcirilikdevanagaretiopikgjeorgjiangrekgu" + - "xharatgurmukhangulhanhan i thjeshtuarhan tradicionalhebraikhiraganjapone" + - "zkatakankmerkanadkoreanlaosishtlatinmalajalammongolbirmanorijasinhaltami" + - "ltelugtanishttajlandeztibetishtme simbolei pashkruari zakonshëmi panjohu" + - "r" - -// Size: 354 bytes, 165 elements -var sqScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x000b, 0x000b, 0x000b, - 0x000b, 0x000b, 0x000b, 0x0011, 0x0011, 0x0018, 0x0018, 0x0021, - 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, - 0x0021, 0x0021, 0x0028, 0x0028, 0x0031, 0x0031, 0x0031, 0x0031, - 0x0031, 0x0031, 0x0031, 0x0038, 0x0038, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0046, 0x004e, 0x0054, 0x005a, 0x005d, 0x005d, 0x006d, - 0x007c, 0x0083, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, - 0x008a, 0x008a, 0x0091, 0x0091, 0x0091, 0x0098, 0x0098, 0x009c, - // Entry 40 - 7F - 0x009c, 0x00a1, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00af, 0x00af, - 0x00af, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, - 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, - 0x00b4, 0x00bd, 0x00bd, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c9, - 0x00c9, 0x00c9, 0x00c9, 0x00c9, 0x00c9, 0x00c9, 0x00c9, 0x00c9, - 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, - 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, - 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, - // Entry 80 - BF - 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, - 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d9, 0x00d9, 0x00d9, 0x00de, - 0x00de, 0x00de, 0x00de, 0x00e5, 0x00ee, 0x00f7, 0x00f7, 0x00f7, - 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, - 0x00f7, 0x0101, 0x010c, 0x0118, 0x0122, -} - -// Size: 3696 bytes -var srScriptStr string = "" + - "арапÑко пиÑмоимперијÑко арамејÑко пиÑмојерменÑко пиÑмоавеÑтанÑко пиÑмоба" + - "лијÑко пиÑмобатак пиÑмобенгалÑко пиÑмоблиÑимболично пиÑмобопомофо пиÑмо" + - "браманÑко пиÑмоБрајево пиÑмобугинÑко пиÑмобухидÑко пиÑмочакманÑко пиÑмо" + - "уједињени канадÑки абориџинÑки ÑилабицикаријÑко пиÑмочамÑко пиÑмоЧероки" + - "цирт пиÑмокоптичко пиÑмокипарÑко пиÑмоћирилицаСтароÑловенÑка црквена ћи" + - "рилицадеванагариДезеретегипатÑко народно пиÑмоегипатÑко хијератÑко пиÑм" + - "оегипатÑки хијероглифиетиопÑко пиÑмогрузијÑко кхутÑури пиÑмогрузијÑко п" + - "иÑмоглагољицаГотикагрчко пиÑмогуџаратÑко пиÑмогурмуки пиÑмохангулханхан" + - "унопоједноÑтављено хан пиÑмотрадиционално хан пиÑмохебрејÑко пиÑмохираг" + - "анапахав хмонг пиÑмоКатакана или ХираганаÑтаромађарÑко пиÑмоиндушко пиÑ" + - "моÑтари италикјаванÑко пиÑмојапанÑко пиÑмокајах-ли пиÑмокатаканакарошти" + - " пиÑмокмерÑко пиÑмоканада пиÑмокорејÑко пиÑмокаитиланна пиÑмолаошко пиÑм" + - "олатиница (фрактур варијанта)галÑка латиницалатиницалепча пиÑмолимбу пи" + - "Ñмолинеарно РпиÑмолинеарно Б пиÑмолиÑијÑко пиÑмолидијÑко пиÑмомандеанÑ" + - "ко пиÑмоманихејÑко пиÑмомајанÑки хијероглифимероитик пиÑмомалајалам пиÑ" + - "момонголÑко пиÑмомеÑечево пиÑмомеитеи мајек пиÑмомијанмарÑко пиÑмон’ко " + - "пиÑмоогамÑко пиÑмоол чики пиÑмоорконÑко пиÑмооријанÑко пиÑмооÑмањанÑко " + - "пиÑмоÑтаро пермикÑко пиÑмопагÑ-па пиÑмопиÑани пахлавипÑалтер пахлавипах" + - "лави пиÑмоФеничанÑко пиÑмопоралд фонетÑко пиÑмопиÑани партианрејанг пиÑ" + - "моронгоронго пиÑморунÑко пиÑмоÑамаританÑко пиÑмоÑарати пиÑмоÑаураштра п" + - "иÑмознаковно пиÑмошавијанÑко пиÑмоÑинхалÑко пиÑмоÑуданÑко пиÑмоÑилоти н" + - "агри пиÑмоÑиријÑко пиÑмоÑиријÑко еÑтрангело пиÑмозападноÑиријÑко пиÑмоп" + - "иÑмо иÑточне Сиријетагбанва пиÑмотаи ле пиÑмонови таи луетамилÑко пиÑмо" + - "таи виет пиÑмотелугу пиÑмотенгвар пиÑмотифинаг пиÑмоТагалогтхана пиÑмот" + - "ајландÑко пиÑмотибетанÑко пиÑмоугаритÑко пиÑмоваи пиÑмовидљиви говорÑта" + - "роперÑијÑко пиÑмоÑумерÑко-акадÑко кунеиформ пиÑмоји пиÑмонаÑледно пиÑмо" + - "математичка нотацијаÑимболинепиÑани језикзаједничко пиÑмонепознато пиÑм" + - "о" - -// Size: 354 bytes, 165 elements -var srScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0019, 0x004b, 0x0068, 0x0087, 0x00a2, - 0x00a2, 0x00a2, 0x00b7, 0x00d4, 0x00f9, 0x0114, 0x0131, 0x014a, - 0x0165, 0x0180, 0x019d, 0x01e8, 0x0203, 0x021a, 0x0226, 0x0239, - 0x0254, 0x026f, 0x027f, 0x02bb, 0x02cf, 0x02dd, 0x02dd, 0x0309, - 0x033b, 0x0364, 0x0364, 0x037f, 0x03ad, 0x03ca, 0x03dc, 0x03e8, - 0x03e8, 0x03fd, 0x041c, 0x0435, 0x0441, 0x0447, 0x0453, 0x0483, - 0x04af, 0x04cc, 0x04dc, 0x04dc, 0x04fc, 0x0524, 0x0549, 0x0562, - 0x0579, 0x0594, 0x05af, 0x05af, 0x05c9, 0x05d9, 0x05f2, 0x060b, - // Entry 40 - 7F - 0x060b, 0x0622, 0x063d, 0x063d, 0x0647, 0x065c, 0x0673, 0x06a7, - 0x06c4, 0x06d4, 0x06e9, 0x06fe, 0x071c, 0x073a, 0x073a, 0x073a, - 0x0755, 0x0770, 0x0770, 0x078f, 0x07ae, 0x07d5, 0x07d5, 0x07d5, - 0x07f0, 0x080d, 0x080d, 0x082a, 0x0845, 0x0845, 0x0867, 0x0888, - 0x0888, 0x0888, 0x0888, 0x089c, 0x089c, 0x08b5, 0x08cd, 0x08e8, - 0x0905, 0x0924, 0x0924, 0x0924, 0x094c, 0x0964, 0x097f, 0x099c, - 0x09b5, 0x09d4, 0x09fc, 0x0a17, 0x0a2e, 0x0a4d, 0x0a64, 0x0a87, - 0x0a9e, 0x0a9e, 0x0abb, 0x0ad6, 0x0af5, 0x0af5, 0x0af5, 0x0af5, - // Entry 80 - BF - 0x0b12, 0x0b12, 0x0b2d, 0x0b4f, 0x0b6a, 0x0b9a, 0x0bc3, 0x0be9, - 0x0c04, 0x0c04, 0x0c1a, 0x0c30, 0x0c4b, 0x0c4b, 0x0c65, 0x0c7c, - 0x0c95, 0x0cae, 0x0cbc, 0x0cd1, 0x0cf0, 0x0d0f, 0x0d0f, 0x0d2c, - 0x0d3d, 0x0d56, 0x0d56, 0x0d56, 0x0d7d, 0x0dba, 0x0dc9, 0x0de4, - 0x0e0b, 0x0e19, 0x0e34, 0x0e53, 0x0e70, -} - -// Size: 1952 bytes -var srLatnScriptStr string = "" + - "arapsko pismoimperijsko aramejsko pismojermensko pismoavestansko pismoba" + - "lijsko pismobatak pismobengalsko pismoblisimboliÄno pismobopomofo pismob" + - "ramansko pismoBrajevo pismobuginsko pismobuhidsko pismoÄakmansko pismouj" + - "edinjeni kanadski aboridžinski silabicikarijsko pismoÄamsko pismoÄŒerokic" + - "irt pismokoptiÄko pismokiparsko pismoćirilicaStaroslovenska crkvena ćiri" + - "licadevanagariDezeretegipatsko narodno pismoegipatsko hijeratsko pismoeg" + - "ipatski hijeroglifietiopsko pismogruzijsko khutsuri pismogruzijsko pismo" + - "glagoljicaGotikagrÄko pismogudžaratsko pismogurmuki pismohangulhanhanuno" + - "pojednostavljeno han pismotradicionalno han pismohebrejsko pismohiragana" + - "pahav hmong pismoKatakana ili HiraganastaromaÄ‘arsko pismoinduÅ¡ko pismost" + - "ari italikjavansko pismojapansko pismokajah-li pismokatakanakaroÅ¡ti pism" + - "okmersko pismokanada pismokorejsko pismokaitilanna pismolaoÅ¡ko pismolati" + - "nica (fraktur varijanta)galska latinicalatinicalepÄa pismolimbu pismolin" + - "earno A pismolinearno B pismolisijsko pismolidijsko pismomandeansko pism" + - "omanihejsko pismomajanski hijeroglifimeroitik pismomalajalam pismomongol" + - "sko pismomeseÄevo pismomeitei majek pismomijanmarsko pismon’ko pismoogam" + - "sko pismool Äiki pismoorkonsko pismoorijansko pismoosmanjansko pismostar" + - "o permiksko pismopags-pa pismopisani pahlavipsalter pahlavipahlavi pismo" + - "FeniÄansko pismoporald fonetsko pismopisani partianrejang pismorongorong" + - "o pismorunsko pismosamaritansko pismosarati pismosauraÅ¡tra pismoznakovno" + - " pismoÅ¡avijansko pismosinhalsko pismosudansko pismosiloti nagri pismosir" + - "ijsko pismosirijsko estrangelo pismozapadnosirijsko pismopismo istoÄne S" + - "irijetagbanva pismotai le pismonovi tai luetamilsko pismotai viet pismot" + - "elugu pismotengvar pismotifinag pismoTagalogthana pismotajlandsko pismot" + - "ibetansko pismougaritsko pismovai pismovidljivi govorstaropersijsko pism" + - "osumersko-akadsko kuneiform pismoji pismonasledno pismomatematiÄka notac" + - "ijasimbolinepisani jezikzajedniÄko pismonepoznato pismo" - -// Size: 354 bytes, 165 elements -var srLatnScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x000d, 0x0027, 0x0036, 0x0046, 0x0054, - 0x0054, 0x0054, 0x005f, 0x006e, 0x0082, 0x0090, 0x009f, 0x00ac, - 0x00ba, 0x00c8, 0x00d8, 0x0102, 0x0110, 0x011d, 0x0124, 0x012e, - 0x013d, 0x014b, 0x0154, 0x0174, 0x017e, 0x0185, 0x0185, 0x019c, - 0x01b6, 0x01cb, 0x01cb, 0x01d9, 0x01f1, 0x0200, 0x020a, 0x0210, - 0x0210, 0x021c, 0x022e, 0x023b, 0x0241, 0x0244, 0x024a, 0x0264, - 0x027b, 0x028a, 0x0292, 0x0292, 0x02a3, 0x02b8, 0x02cc, 0x02da, - 0x02e6, 0x02f4, 0x0302, 0x0302, 0x0310, 0x0318, 0x0326, 0x0333, - // Entry 40 - 7F - 0x0333, 0x033f, 0x034d, 0x034d, 0x0352, 0x035d, 0x036a, 0x0386, - 0x0395, 0x039d, 0x03a9, 0x03b4, 0x03c4, 0x03d4, 0x03d4, 0x03d4, - 0x03e2, 0x03f0, 0x03f0, 0x0400, 0x0410, 0x0424, 0x0424, 0x0424, - 0x0432, 0x0441, 0x0441, 0x0450, 0x045f, 0x045f, 0x0471, 0x0482, - 0x0482, 0x0482, 0x0482, 0x048e, 0x048e, 0x049b, 0x04a9, 0x04b7, - 0x04c6, 0x04d7, 0x04d7, 0x04d7, 0x04ec, 0x04f9, 0x0507, 0x0516, - 0x0523, 0x0534, 0x0549, 0x0557, 0x0563, 0x0573, 0x057f, 0x0591, - 0x059d, 0x059d, 0x05ad, 0x05bb, 0x05cc, 0x05cc, 0x05cc, 0x05cc, - // Entry 80 - BF - 0x05db, 0x05db, 0x05e9, 0x05fb, 0x0609, 0x0622, 0x0637, 0x064c, - 0x065a, 0x065a, 0x0666, 0x0672, 0x0680, 0x0680, 0x068e, 0x069a, - 0x06a7, 0x06b4, 0x06bb, 0x06c6, 0x06d6, 0x06e6, 0x06e6, 0x06f5, - 0x06fe, 0x070c, 0x070c, 0x070c, 0x0720, 0x0740, 0x0748, 0x0756, - 0x076b, 0x0772, 0x0780, 0x0791, 0x07a0, -} - -// Size: 1641 bytes -var svScriptStr string = "" + - "afakiskakaukasiska albanskaarabiskaimperisk arameiskaarmeniskaavestiskab" + - "alinesiskabamunskabassaiska vahbatakbengaliskablissymbolerbopomofobramip" + - "unktskriftbuginesiskabuhidchakmakanadensiska stavelseteckenkariskachamch" + - "erokeecirtkoptiskacypriotiskakyrilliskafornkyrkoslavisk kyrilliskadevana" + - "garideseretDuployéstenografiskademotiskahieratiskaegyptiska hieroglyfere" + - "lbasiskaetiopiskakutsurigeorgiskaglagolitiskagotiskagammaltamilskagrekis" + - "kagujaratigurmukhihangulhanhanunÃ¥förenklade han-teckentraditionella han-" + - "teckenhebreiskahiraganahittitiska hieroglyferpahaw mongkatakana/hiragana" + - "fornungerskaindusfornitaliskajavanskajapanskajurchenskakaya likatakanakh" + - "aroshtikhmeriskakhojkiskakanaresiskakoreanskakpellékaithiskalannalaotisk" + - "afrakturlatingaeliskt latinlatinskaronglimbulinjär Alinjär BFraserlomaly" + - "kiskalydiskamahajaniskamandaéiskamanikeanskamayahieroglyfermendekursiv-m" + - "eroitiskameroitiskamalayalammodiskamongoliskamoonmrumeitei-mayekburmesis" + - "kafornnordarabiskanabatateiskanaxi geban-kÃ¥nüshuoghamol-chikiorkonoriyao" + - "smanjapalmyreniskaPau Cin Hau-skriftfornpermiskaphags-patidig pahlavipsa" + - "ltaren-pahlavibokpahlavifenikiskapollardteckentidig parthianskarejangron" + - "go-rongorunorsamaritiskasaratifornsydarabiskasaurashtrateckningsskriftsh" + - "awiskasharadasiddhamskasindhiskasingalesiskasora sompengsundanesiskasylo" + - "ti nagrisyriskaestrangelosyriskavästsyriskaöstsyriskatagbanwatakritiskat" + - "ai letai luetamilskatangutiskatai viettelugutengwartifinaghiskatagalogta" + - "anathailändskatibetanskatirhutaugaritiskavajsynligt talvarang kshitiwole" + - "aifornpersiskasumeo-akkadisk kilskriftyiärvdamatematisk notationsymboler" + - "oskrivet sprÃ¥kgemensammaokänt skriftsystem" - -// Size: 354 bytes, 165 elements -var svScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0008, 0x001b, 0x0023, 0x0035, 0x003e, 0x0047, 0x0052, - 0x005a, 0x0067, 0x006c, 0x0076, 0x0082, 0x008a, 0x008f, 0x009a, - 0x00a5, 0x00aa, 0x00b0, 0x00cb, 0x00d2, 0x00d6, 0x00de, 0x00e2, - 0x00ea, 0x00f5, 0x00ff, 0x011a, 0x0124, 0x012b, 0x0140, 0x0149, - 0x0153, 0x0168, 0x0171, 0x017a, 0x0181, 0x018a, 0x0196, 0x019d, - 0x01ab, 0x01b3, 0x01bb, 0x01c3, 0x01c9, 0x01cc, 0x01d3, 0x01e9, - 0x0201, 0x020a, 0x0212, 0x0228, 0x0232, 0x0243, 0x024f, 0x0254, - 0x0260, 0x0268, 0x0270, 0x027a, 0x0281, 0x0289, 0x0292, 0x029b, - // Entry 40 - 7F - 0x02a4, 0x02af, 0x02b8, 0x02bf, 0x02c8, 0x02cd, 0x02d5, 0x02e1, - 0x02ef, 0x02f7, 0x02fb, 0x0300, 0x0309, 0x0312, 0x0318, 0x031c, - 0x0323, 0x032a, 0x0335, 0x0340, 0x034b, 0x035a, 0x035f, 0x0370, - 0x037a, 0x0383, 0x038a, 0x0394, 0x0398, 0x039b, 0x03a7, 0x03b1, - 0x03c1, 0x03cd, 0x03d6, 0x03db, 0x03e1, 0x03e6, 0x03ee, 0x03f3, - 0x03f8, 0x03ff, 0x040b, 0x041d, 0x0429, 0x0431, 0x043e, 0x044f, - 0x0459, 0x0462, 0x046f, 0x0480, 0x0486, 0x0491, 0x0496, 0x04a1, - 0x04a7, 0x04b6, 0x04c0, 0x04cf, 0x04d7, 0x04de, 0x04e8, 0x04f1, - // Entry 80 - BF - 0x04fd, 0x0509, 0x0515, 0x0521, 0x0528, 0x0539, 0x0545, 0x0550, - 0x0558, 0x0562, 0x0568, 0x056f, 0x0577, 0x0581, 0x0589, 0x058f, - 0x0596, 0x05a2, 0x05a9, 0x05ae, 0x05ba, 0x05c4, 0x05cb, 0x05d5, - 0x05d8, 0x05e3, 0x05f0, 0x05f6, 0x0602, 0x061a, 0x061c, 0x0622, - 0x0635, 0x063d, 0x064c, 0x0656, 0x0669, -} - -// Size: 344 bytes -var swScriptStr string = "" + - "KiarabuKiarmeniaKibengaliKibopomofoBrailleKisirilikiKidevanagariKiethiop" + - "iaKijojiaKigirikiKigujaratiKigurmukhiKihangulKihanKihan RahisiKihan cha " + - "JadiKiebraniaKihiraganaKijapaniKikatakanaKikambodiaKikannadaKikoreaKilao" + - "siKilatiniKimalayalamMongoliaMyamaKioriyaKisinhalaKitamilKiteluguKithaan" + - "aKitaiKitibetiAlamaHaijaandikwaKawaidaHati isiyojulikana" - -// Size: 354 bytes, 165 elements -var swScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0019, 0x0019, 0x0023, 0x0023, 0x002a, - 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, - 0x002a, 0x002a, 0x0034, 0x0034, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x004a, 0x004a, 0x0051, 0x0051, 0x0051, - 0x0051, 0x0059, 0x0063, 0x006d, 0x0075, 0x007a, 0x007a, 0x0086, - 0x0094, 0x009d, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, - 0x00a7, 0x00a7, 0x00af, 0x00af, 0x00af, 0x00b9, 0x00b9, 0x00c3, - // Entry 40 - 7F - 0x00c3, 0x00cc, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00da, 0x00da, - 0x00da, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, - 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, - 0x00e2, 0x00ed, 0x00ed, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00fa, - 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, - 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, - 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, - 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, - // Entry 80 - BF - 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, - 0x010a, 0x010a, 0x010a, 0x010a, 0x0111, 0x0111, 0x0111, 0x0119, - 0x0119, 0x0119, 0x0119, 0x0121, 0x0126, 0x012e, 0x012e, 0x012e, - 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, - 0x012e, 0x0133, 0x013f, 0x0146, 0x0158, -} - -// Size: 3913 bytes -var taScriptStr string = "" + - "அரபிகà¯à®‡à®®à¯à®ªà¯‡à®°à®¿à®¯à®²à¯ அரமெயà¯à®•à¯à®…à®°à¯à®®à¯‡à®©à®¿à®¯à®©à¯à®…வெஸà¯à®¤à®¾à®©à¯à®ªà®¾à®²à®¿à®©à¯€à®¸à¯à®ªà®¾à®Ÿà®¾à®•à¯à®µà®™à¯à®•à®¾à®³à®®à¯à®ªà¯à®²à®¿à®¸à¯" + - "ஸிமிபாலà¯à®¸à¯à®ªà¯‹à®ªà¯‹à®®à¯‹à®ƒà®ªà¯‹à®ªà®¿à®°à®®à¯à®®à®¿à®ªà®¿à®°à¯ˆà®²à¯à®ªà¯à®•à®¿à®©à¯€à®¸à¯à®ªà¯à®•à®¿à®¤à¯à®šà®•à¯à®®à®¾à®¯à¯à®©à®¿à®ƒà®ªà¯ˆà®Ÿà¯ கனடியன௠அ" + - "பொரிஜினல௠சிலபிகà¯à®¸à¯à®•à®°à®¿à®¯à®©à¯à®šà®¾à®®à¯à®šà¯†à®°à¯‹à®•à¯à®•à®¿à®•à®¿à®°à¯à®¤à¯à®•à®¾à®ªà¯à®Ÿà®¿à®•à¯à®šà¯ˆà®ªà¯à®°à®¿à®¯à®¾à®Ÿà¯à®šà®¿à®°à®¿à®²à®¿à®•à¯à®ª" + - "ழைய சரà¯à®šà¯ ஸà¯à®²à®µà¯‹à®©à®¿à®•à¯ சிரிலிகà¯à®¤à¯‡à®µà®¨à®¾à®•à®°à®¿à®Ÿà¯†à®šà®°à®¾à®Ÿà¯à®Žà®•à®¿à®ªà¯à®¤à®¿à®¯à®©à¯ டெமோடà¯à®Ÿà®¿à®•à¯à®Žà®•à®¿à®ªà¯à®¤" + - "ியன௠ஹைரேடà¯à®Ÿà®¿à®•à¯à®Žà®•à®¿à®ªà¯à®¤à®¿à®¯à®©à¯ ஹைரோகிளிபà¯à®¸à¯à®Žà®¤à¯à®¤à®¿à®¯à¯‹à®ªà®¿à®•à¯à®œà®¿à®¯à®¾à®°à¯à®œà®¿à®¯à®©à¯ கà¯à®Ÿà¯à®šà¯à®°à®¿à®œ" + - "ாரà¯à®œà®¿à®¯à®©à¯à®•à¯à®²à®¾à®•à¯‹à®²à®¿à®Ÿà®¿à®•à¯à®•à¯‹à®¤à®¿à®•à¯à®•à®¿à®°à¯‡à®•à¯à®•à®®à¯à®•à¯à®œà®°à®¾à®¤à¯à®¤à®¿à®•à¯à®°à¯à®®à¯à®•à®¿à®¹à®™à¯à®•à¯à®²à¯à®¹à®¾à®©à¯à®¹à®©à¯à®©à¯‚எள" + - "ிதாகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ ஹானà¯à®ªà®¾à®°à®®à¯à®ªà®°à®¿à®¯ ஹானà¯à®¹à®¿à®ªà¯à®°à¯‚ஹிராகானாபஹாவ௠மாஙà¯à®•à¯à®•à®Ÿà®¾à®•à®¾à®©à®¾ அலà¯à®²à®¤" + - "௠ஹிராகானாபழைய ஹஙà¯à®•à¯‡à®°à®¿à®¯à®©à¯à®šà®¿à®¨à¯à®¤à¯à®ªà®´à¯ˆà®¯ இதà¯à®¤à®¾à®²à®¿à®œà®¾à®µà®©à¯€à®¸à¯à®œà®ªà¯à®ªà®¾à®©à®¿à®¯à®®à¯à®•à®¯à®¾à®¹à¯ லீகட" + - "கனாகரோஷà¯à®Ÿà®¿à®•à®®à¯†à®°à¯à®•à®©à¯à®©à®Ÿà®®à¯à®•à¯Šà®°à®¿à®¯à®©à¯à®•à®¾à®¯à¯à®¤à®¿à®²à®©à¯à®©à®¾à®²à®¾à®µà¯‹à®ƒà®ªà¯à®°à®•à¯à®Ÿà¯‚ர௠லெதà¯à®¤à®¿à®©à¯à®•à¯‡à®²à®¿à®•à¯ " + - "லெதà¯à®¤à®¿à®©à¯à®²à®¤à¯à®¤à®¿à®©à¯à®²à¯†à®ªà¯à®šà®¾à®²à®¿à®®à¯à®ªà¯à®²à®¿à®©à®¿à®¯à®°à¯ à®à®²à®¿à®©à®¿à®¯à®°à¯ பிலிசியனà¯à®²à®¿à®Ÿà®¿à®¯à®©à¯à®®à¯‡à®©à¯à®Ÿà®¿à®¯à®©à¯à®®" + - "னிசெயà¯à®©à¯à®®à®¯à®¾à®©à¯ ஹைரோகிளிபà¯à®®à¯†à®°à®¾à®¯à¯à®Ÿà®¿à®•à¯à®®à®²à¯ˆà®¯à®¾à®³à®®à¯à®®à®™à¯à®•à¯‹à®²à®¿à®¯à®©à¯à®®à¯‚னà¯à®®à¯†à®¯à¯à®¤à¯†à®¯à¯ மயகà¯à®®" + - "ியானà¯à®®à®°à¯à®Žà®©à¯â€˜à®•à¯‹à®’காமà¯à®’ல௠சிகà¯à®•à®¿à®†à®°à¯à®•à®¾à®©à¯à®’ரியாஒஸà¯à®®à®¾à®©à¯à®¯à®¾à®ªà®´à¯ˆà®¯ பெரà¯à®®à®¿à®•à¯à®ªà®•à¯à®¸à¯-ப" + - "ாஇனà¯à®¸à¯à®•à®¿à®°à®¿à®ªà¯à®·à®©à®²à¯ பஹலவிசாலà¯à®Ÿà®°à¯ பஹலவிபà¯à®•à¯ பஹலவிஃபோனேஷியனà¯à®ªà¯‹à®²à®¾à®°à¯à®Ÿà¯ ஃபொனெட" + - "à¯à®Ÿà®¿à®•à¯à®‡à®©à¯à®¸à¯à®•à®¿à®°à®¿à®ªà¯à®·à®©à®²à¯ பாரà¯à®¤à¯à®¤à®¿à®¯à®©à¯à®°à¯†à®œà¯†à®¯à¯à®©à¯à®°à¯Šà®™à¯à®•à¯‹à®°à¯Šà®™à¯à®•à¯‹à®°à¯à®©à®¿à®•à¯à®šà®®à®¾à®°à®¿à®Ÿà®©à¯à®šà®¾à®°à®¾" + - "திசௌராஷà¯à®Ÿà¯à®°à®¾à®¸à¯ˆà®©à¯à®Žà®´à¯à®¤à¯à®¤à¯à®·à®µà®¿à®¯à®¾à®©à¯à®šà®¿à®™à¯à®•à®³à®®à¯à®šà¯à®¨à¯à®¤à®¾à®©à¯€à®¸à¯à®šà®¿à®²à¯‹à®Ÿà®¿ நகà¯à®°à®¿à®šà®¿à®°à®¿à®¯à®¾à®•à¯à®Žà®¸" + - "à¯à®Ÿà¯à®°à¯†à®™à¯à®•à¯†à®²à¯‹ சிரியாகà¯à®®à¯‡à®±à¯à®•à¯ சிரியாகà¯à®•à®¿à®´à®•à¯à®•à¯ சிரியாகà¯à®¤à®•à¯‹à®µà®¾à®©à®¾à®¤à®¾à®¯à¯ லேபà¯à®¤à®¿à®¯" + - " தை லூதமிழà¯à®¤à¯ˆ வியதà¯à®¤à¯†à®²à¯à®™à¯à®•à¯à®¤à¯†à®™à¯à®µà®¾à®°à¯à®Ÿà®¿à®ƒà®ªà®¿à®©à®¾à®•à¯à®¤à®•à®²à®¾à®•à¯à®¤à®¾à®©à®¾à®¤à®¾à®¯à¯à®¤à®¿à®ªà¯†à®¤à¯à®¤à®¿à®¯à®©à¯à®‰à®•à®¾" + - "ரதிகà¯à®µà¯ˆà®µà®¿à®šà®¿à®ªà®¿à®³à¯ ஸà¯à®ªà¯€à®šà¯à®ªà®´à¯ˆà®¯ பெரà¯à®·à®¿à®¯à®©à¯à®šà¯à®®à¯†à®°à¯‹-அகà¯à®•à®Ÿà®¿à®¯à®©à¯ கà¯à®¯à¯‚னிஃபாரà¯à®®à¯à®¯à¯€à®ªà®¾" + - "à®°à®®à¯à®ªà®°à®¿à®¯à®®à®¾à®©à®•à®£à®¿à®¤à®•à¯à®•à¯à®±à®¿à®¯à¯€à®Ÿà¯à®šà®¿à®©à¯à®©à®™à¯à®•à®³à¯à®Žà®´à¯à®¤à®ªà¯à®ªà®Ÿà®¾à®¤à®¤à¯à®ªà¯Šà®¤à¯à®µà®¾à®©à®…றியபà¯à®ªà®Ÿà®¾à®¤ எழà¯à®¤à¯à®¤" + - "à¯" - -// Size: 354 bytes, 165 elements -var taScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0012, 0x0049, 0x0067, 0x0082, 0x009a, - 0x009a, 0x009a, 0x00ac, 0x00c4, 0x00f4, 0x010f, 0x0124, 0x0136, - 0x014e, 0x0160, 0x016f, 0x01db, 0x01ed, 0x01f9, 0x0211, 0x0223, - 0x023b, 0x0259, 0x0271, 0x02c2, 0x02da, 0x02ef, 0x02ef, 0x032c, - 0x0369, 0x03ac, 0x03ac, 0x03cd, 0x0407, 0x0422, 0x0446, 0x0458, - 0x0458, 0x0473, 0x048e, 0x04a6, 0x04bb, 0x04c7, 0x04d6, 0x050d, - 0x0535, 0x0547, 0x055f, 0x055f, 0x0581, 0x05c2, 0x05ed, 0x05ff, - 0x0621, 0x0636, 0x0654, 0x0654, 0x066a, 0x0679, 0x068e, 0x069d, - // Entry 40 - 7F - 0x069d, 0x06b2, 0x06c7, 0x06c7, 0x06d9, 0x06e8, 0x06f4, 0x072b, - 0x0756, 0x076b, 0x077d, 0x078f, 0x07a8, 0x07c4, 0x07c4, 0x07c4, - 0x07d9, 0x07ee, 0x07ee, 0x0809, 0x0824, 0x0852, 0x0852, 0x0852, - 0x0870, 0x0888, 0x0888, 0x08a6, 0x08b2, 0x08b2, 0x08d7, 0x08f2, - 0x08f2, 0x08f2, 0x08f2, 0x0904, 0x0904, 0x0913, 0x092f, 0x0944, - 0x0953, 0x096e, 0x096e, 0x096e, 0x0993, 0x09a9, 0x09e6, 0x0a0b, - 0x0a27, 0x0a45, 0x0a7f, 0x0ace, 0x0ae6, 0x0b0a, 0x0b1c, 0x0b34, - 0x0b46, 0x0b46, 0x0b64, 0x0b85, 0x0b9a, 0x0b9a, 0x0b9a, 0x0b9a, - // Entry 80 - BF - 0x0bb2, 0x0bb2, 0x0bd0, 0x0bf2, 0x0c0a, 0x0c4a, 0x0c75, 0x0ca3, - 0x0cb8, 0x0cb8, 0x0ccb, 0x0ce8, 0x0cf7, 0x0cf7, 0x0d0d, 0x0d25, - 0x0d3d, 0x0d58, 0x0d6a, 0x0d76, 0x0d82, 0x0da3, 0x0da3, 0x0dbb, - 0x0dc1, 0x0dec, 0x0dec, 0x0dec, 0x0e14, 0x0e6a, 0x0e70, 0x0e94, - 0x0ebe, 0x0edc, 0x0f00, 0x0f15, 0x0f49, -} - -// Size: 3721 bytes -var teScriptStr string = "" + - "అరబికà±à°‡à°‚పీరియలౠఅరామాకà±à°…à°°à±à°®à±‡à°¨à°¿à°¯à°¨à±à°…వేసà±à°Ÿà°¾à°¨à±à°¬à°¾à°²à°¿à°¨à±€à°¸à±à°¬à°¾à°Ÿà°•à±à°¬à±†à°‚గాలిబà±à°²à°¿à°¸à±à°¸à°¿à°‚à°¬" + - "à°²à±à°¸à±à°¬à±‹à°ªà±‹à°®à±‹à°«à±‹à°¬à±à°°à°¾à°¹à±à°®à°¿à°¬à±à°°à±†à°¯à°¿à°²à±à°¬à±à°¯à±à°—ినీసà±à°¬à±à°¹à°¿à°¡à±à°šà°•à±à°®à°¾à°¯à±à°¨à°¿à°«à±ˆà°¡à± కెనెడియనౠఅబ" + - "ొరిజినలౠసిలబికà±à°¸à±à°•à°¾à°°à°¿à°¯à°¨à±à°šà°¾à°®à±à°šà°¿à°°à±‹à°•à°¿à°¸à°¿à°°à±à°¥à±à°•à±‹à°ªà±à°Ÿà°¿à°•à±à°¸à±ˆà°ªà±à°°à±‹à°Ÿà±à°¸à°¿à°°à°¿à°²à°¿à°•à±à°ªà±à°°à°¾à°š" + - "ీన à°šà°°à±à°š à°¸à±à°²à°¾à°µà±‹à°¨à°¿à°•à± సిరిలికà±à°¦à±‡à°µà°¨à°¾à°—రిడేసెరెటà±à°‡à°œà°¿à°ªà±à°·à°¿à°¯à°¨à± డెమోటికà±à°‡à°œà°¿à°ªà±à°·à°¿à°¯" + - "నౠహైరాటికà±à°‡à°œà°¿à°ªà±à°·à°¿à°¯à°¨à± హైరోగà±à°²à±ˆà°«à±à°¸à±à°‡à°¥à°¿à°¯à±‹à°ªà°¿à°•à±à°œà°¾à°°à±à°œà°¿à°¯à°¨à± à°–à°Ÿà±à°¸à±‚రిజారà±à°œà°¿à°¯à°¨à±à°—" + - "à±à°²à°¾à°—ో లిటికà±à°—ోతికà±à°—à±à°°à±€à°•à±à°—à±à°œà°°à°¾à°¤à±€à°—à±à°°à±à°®à±à°–ిహంగà±à°²à±à°¹à°¾à°¨à±à°¹à°¨à±à°¨à±‚సరళీకృత హానà±à°¸à°¾à°‚à°ª" + - "à±à°°à°¦à°¾à°¯à°• హానà±à°¹à±€à°¬à±à°°à±à°¹à°¿à°°à°¾à°—ానపాహవా à°¹à±à°®à±‹à°‚à°—à±à°•à°¾à°Ÿà°¾à°•à°¾à°¨ లేదా హిరాగనపà±à°°à°¾à°šà±€à°¨ హంగేరి" + - "యనà±à°¸à°¿à°‚à°§à±à°ªà±à°°à°¾à°šà°¿à°¨ à°à°Ÿà°¾à°²à°¿à°•à±à°œà°¾à°µà°¨à±€à°¸à±à°œà°¾à°ªà°¨à±€à°¸à±à°•à°¾à°¯à°¾à°¹à± లికాటాకానఖరోషథిఖà±à°®à±‡à°°à±à°•à°¨à±à°¨à°¡" + - "కొరియనà±à°•à±ˆà°¥à°¿à°²à°¨à±à°¨à°¾à°²à°¾à°µà±‹à°«à±à°°à°¾à°•à±à°Ÿà±‚రౠలాటినà±à°—ేలికౠలాటినà±à°²à°¾à°Ÿà°¿à°¨à±à°²à±‡à°ªà±à°šà°¾à°²à°¿à°‚à°¬à±à°²à°¿à°¨" + - "ియరౠఎలినియరౠబిలిసియనà±à°²à°¿à°¡à°¿à°¯à°¨à±à°®à°¾à°¨à±à°¡à°¿à°¯à°¨à±à°®à°¾à°¨à°¿à°šà±‡à°¨à±à°®à°¾à°¯à°¨à± హైరోగà±à°²à±ˆà°«à±à°¸à±à°®à±†à°°à±‹à°‡" + - "à°Ÿà°¿à°•à±à°®à°²à°¯à°¾à°³à°‚మంగోలియనà±à°®à±‚à°¨à±à°®à±€à°Ÿà°¿ మయెకà±à°®à°¯à°¾à°¨à±à°®à°¾à°°à±à°¨à±à°•à±‹à°’ఘమà±à°“లౠచికిఓరà±à°–ోనà±à°’రియా" + - "ఓసమానà±à°¯à°ªà±à°°à°¾à°šà±€à°¨ పెరà±à°®à°¿à°•à±à°«à°¾à°—à±à°¸à±-పాఇంసà±à°•à±à°°à°¿à°ªà±à°·à°¨à°¾à°²à± పహà±à°²à°¾à°µà°¿à°¸à°²à±à°Ÿà°¾à°°à± పహà±à°²à°¾à°µà°¿" + - "à°ªà±à°¸à±à°¤à°• పహà±à°²à°¾à°µà°¿à°«à±‹à°¨à°¿à°¶à°¿à°¯à°¨à±à°ªà±‹à°²à±à°²à°°à±à°¡à± ఫోనెటికà±à°‡à°‚à°¸à±à°•à±à°°à°¿à°ªà±à°·à°¨à°¾à°²à± పారà±à°¥à°¿à°¯à°¨à±à°°à±‡à°œà°¾" + - "à°‚à°—à±à°°à±‹à°‚గో రోంగోరూనికà±à°¸à°®à°¾à°°à°¿à°Ÿà°¨à±à°¸à°°à°¾à°Ÿà°¿à°¸à±Œà°°à°¾à°·à±à°Ÿà±à°°à°¸à°‚à°œà±à°ž లిపిషవియానà±à°¸à°¿à°‚హళంసà±à°¡à°¾à°¨" + - "ీసà±à°¸à±à°²à±‹à°Ÿà°¿ నాగà±à°°à°¿à°¸à°¿à°°à°¿à°¯à°¾à°•à±à°Žà°¸à±à°Ÿà±à°°à°¾à°¨à°œà±€à°²à±‹ సిరియాకà±à°ªà°¶à±à°šà°¿à°® సిరియాకà±à°¤à±‚à°°à±à°ªà± సిర" + - "ియాకà±à°Ÿà°¾à°—à±à°¬à°¾à°¨à°µà°¾à°¤à±ˆ లీకà±à°°à±Šà°¤à±à°¤ టై à°²à±à°‡à°¤à°®à°¿à°³à°®à±à°Ÿà±ˆ వియటà±à°¤à±†à°²à±à°—à±à°Ÿà±‡à°‚à°—à±à°µà°¾à°°à±à°Ÿà°¿à°«à±€à°¨à°¾à°˜à±" + - "టగలాగà±à°¥à°¾à°¨à°¾à°¥à°¾à°¯à±à°Ÿà°¿à°¬à±†à°Ÿà°¨à±à°¯à±à°—ారిటికà±à°µà°¾à°¯à°¿à°•à°¨à°¿à°ªà°¿à°‚చే భాషపà±à°°à°¾à°šà±€à°¨ పరà±à°·à°¿à°¯à°¨à±à°¸à±à°®à±‡à°°à±‹-" + - " à°…à°•à±à°•à°¡à°¿à°¯à°¨à± à°•à±à°¯à±à°¨à°¿à°«à°¾à°°à±à°®à±à°¯à°¿à°µà°¾à°°à°¸à°¤à±à°µà°‚గణిత సంకేతలిపిచిహà±à°¨à°¾à°²à±à°²à°¿à°ªà°¿ లేనిసామానà±à°¯à°¤" + - "ెలియని లిపి" - -// Size: 354 bytes, 165 elements -var teScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0012, 0x0043, 0x0061, 0x007c, 0x0094, - 0x0094, 0x0094, 0x00a3, 0x00b8, 0x00e2, 0x00fa, 0x0112, 0x012a, - 0x0148, 0x015a, 0x0169, 0x01d8, 0x01ed, 0x01f9, 0x020b, 0x021d, - 0x0235, 0x024d, 0x0265, 0x02bf, 0x02d7, 0x02ef, 0x02ef, 0x0326, - 0x035d, 0x03a0, 0x03a0, 0x03bb, 0x03ec, 0x0407, 0x042c, 0x043e, - 0x043e, 0x0450, 0x0465, 0x047d, 0x048f, 0x049b, 0x04aa, 0x04cc, - 0x04f7, 0x0509, 0x051e, 0x051e, 0x0543, 0x0578, 0x05a9, 0x05b8, - 0x05e3, 0x05f8, 0x060d, 0x060d, 0x0626, 0x063b, 0x064d, 0x065f, - // Entry 40 - 7F - 0x065f, 0x066e, 0x0683, 0x0683, 0x068f, 0x069e, 0x06aa, 0x06db, - 0x0700, 0x0712, 0x0724, 0x0733, 0x074c, 0x0768, 0x0768, 0x0768, - 0x077d, 0x0792, 0x0792, 0x07ad, 0x07c5, 0x07f9, 0x07f9, 0x07f9, - 0x0814, 0x0826, 0x0826, 0x0841, 0x084d, 0x084d, 0x0869, 0x0884, - 0x0884, 0x0884, 0x0884, 0x0890, 0x0890, 0x089c, 0x08b2, 0x08c7, - 0x08d6, 0x08eb, 0x08eb, 0x08eb, 0x0919, 0x0932, 0x0975, 0x09a0, - 0x09c8, 0x09e3, 0x0a17, 0x0a60, 0x0a75, 0x0a94, 0x0aa6, 0x0abe, - 0x0acd, 0x0acd, 0x0ae8, 0x0b04, 0x0b19, 0x0b19, 0x0b19, 0x0b19, - // Entry 80 - BF - 0x0b2b, 0x0b2b, 0x0b43, 0x0b68, 0x0b80, 0x0bbd, 0x0be8, 0x0c13, - 0x0c2e, 0x0c2e, 0x0c3b, 0x0c61, 0x0c73, 0x0c73, 0x0c89, 0x0c9b, - 0x0cb6, 0x0cce, 0x0ce0, 0x0cec, 0x0cf8, 0x0d0d, 0x0d0d, 0x0d2b, - 0x0d37, 0x0d59, 0x0d59, 0x0d59, 0x0d87, 0x0ddb, 0x0de1, 0x0df9, - 0x0e21, 0x0e39, 0x0e52, 0x0e67, 0x0e89, -} - -// Size: 4317 bytes -var thScriptStr string = "" + - "อะฟาคาà¹à¸­à¸¥à¹€à¸šà¹€à¸™à¸µà¸¢ คอเคเซียอาหรับอิมพีเรียล อราเมอิà¸à¸­à¸²à¸£à¹Œà¹€à¸¡à¹€à¸™à¸µà¸¢à¸­à¹€à¸§à¸ªà¸•à¸°à¸šà¸²à¸«à¸¥à¸µà¸šà¸²" + - "มุมบัสซาบาตัà¸à¹€à¸šà¸‡à¸à¸²à¸¥à¸µà¸šà¸¥à¸´à¸ªà¸‹à¸´à¸¡à¹‚บลส์ปอพอมอฟอพราหมีเบรลล์บูà¸à¸´à¸ªà¸šà¸¹à¸®à¸´à¸”ชาà¸à¸¡à¸²à¸ªà¸±à¸" + - "ลัà¸à¸©à¸“์ชนเผ่าพื้นเมืองà¹à¸„นาดาคาเรียจามเชอโรà¸à¸µà¹€à¸‹à¸´à¸£à¹Œà¸—คอปติà¸à¹„ซเปรียทซีริลลิ" + - "à¸à¹€à¸Šà¸­à¸£à¹Œà¸Šà¸ªà¸¥à¸²à¹‚วนิà¸à¸‹à¸µà¸£à¸´à¸¥à¸¥à¸´à¸à¹‚บราณเทวนาครีเดเซเรทชวเลขดัปโลยันดีโมติà¸à¸­à¸µà¸¢à¸´à¸›à¸•à¹Œ" + - "เฮียราติà¸à¸­à¸µà¸¢à¸´à¸›à¸•à¹Œà¹€à¸®à¸µà¸¢à¹‚รà¸à¸¥à¸´à¸Ÿà¸ªà¹Œà¸­à¸µà¸¢à¸´à¸›à¸•à¹Œà¹€à¸­à¸¥à¸šà¹Œà¸‹à¸²à¸™à¹€à¸­à¸—ิโอปิà¸à¸„ัตซูรีจอร์เจียจอร" + - "์เจียà¸à¸¥à¸²à¹‚à¸à¸¥à¸´à¸•à¸´à¸à¹‚à¸à¸˜à¸´à¸à¸„ฤณห์à¸à¸£à¸µà¸à¸„ุชราตà¸à¸¹à¸£à¹Œà¸¡à¸¹à¸„ีฮันà¸à¸¹à¸¥à¸®à¸±à¹ˆà¸™à¸®à¸²à¸™à¸¹à¹‚นโอฮั่นตัวย่" + - "อฮั่นตัวเต็มฮีบรูฮิระงะนะอัà¸à¸‚ระอานาโตเลียปาเฮาห์ม้งคะตะà¸à¸°à¸™à¸°à¸«à¸£à¸·à¸­à¸®à¸´à¸£à¸°à¸‡à¸°à¸™" + - "ะฮังà¸à¸²à¸£à¸µà¹‚บราณอินดัสอิตาลีโบราณชวาà¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™à¸ˆà¸¹à¸£à¹Œà¹€à¸Šà¸™à¸„ยาห์คะตะà¸à¸°à¸™à¸°à¸‚โรษà¸à¸µà¹€à¸‚มร" + - "คอจคีà¸à¸±à¸™à¸™à¸²à¸”าเà¸à¸²à¸«à¸¥à¸µà¹€à¸›à¸¥à¹€à¸¥à¸à¸²à¸¢à¸•à¸´à¸¥à¹‰à¸²à¸™à¸™à¸²à¸¥à¸²à¸§à¸¥à¸²à¸•à¸´à¸™ - ฟรังเตอร์ลาติน - à¹à¸à¸¥à¸´à¸à¸¥à¸°à¸•" + - "ินเลปชาลิมบูลีเนียร์เอลีเนียร์บีเฟรเซอร์โลมาไลเซียลีเดียมหาชนีà¹à¸¡à¸™à¹€à¸”ียน" + - "มานิà¹à¸Šà¸™à¸¡à¸²à¸¢à¸²à¹„ฮโรà¸à¸¥à¸´à¸Ÿà¸ªà¹Œà¹€à¸¡à¸™à¹€à¸”เคอร์ซีฟ-เมโรอิติà¸à¹€à¸¡à¹‚รติà¸à¸¡à¸²à¸¥à¸²à¸¢à¸²à¸¥à¸±à¸¡à¹‚มฑีมองโà¸à¹€" + - "ลียมูนมโรเมเทมาเยà¸à¸žà¸¡à¹ˆà¸²à¸­à¸²à¸£à¸°à¹€à¸šà¸µà¸¢à¹€à¸«à¸™à¸·à¸­à¹‚บราณนาบาทาเอียนà¸à¸µà¸šà¸²-นาซีเอ็นโà¸à¸™à¸¸à¸‹à¸¸" + - "โอคัมโอลชิà¸à¸´à¸­à¸­à¸£à¹Œà¸„อนโอริยาออสมันยาพาลไมรีนป่อจิ้งฮอเปอร์มิà¸à¹‚บราณฟาà¸à¸ªà¹Œ-ป" + - "าปะห์ลาวีอินสคริปชันà¹à¸™à¸¥à¸›à¸°à¸«à¹Œà¸¥à¸²à¸§à¸µà¸‹à¸­à¸¥à¹€à¸•à¸­à¸£à¹Œà¸›à¸°à¸«à¹Œà¸¥à¸²à¸§à¸µà¸šà¸¸à¹Šà¸à¸Ÿà¸´à¸™à¸´à¹€à¸Šà¸µà¸¢à¸ªà¸±à¸—ศาสตร์พอ" + - "ลลาร์ดพาร์เทียอินสคริปชันà¹à¸™à¸¥à¹€à¸£à¸ˆà¸±à¸‡à¸£à¸­à¸‡à¹‚à¸à¸£à¸­à¸‡à¹‚à¸à¸£à¸¹à¸™à¸´à¸à¸‹à¸²à¸¡à¸²à¹€à¸£à¸µà¸¢à¸‹à¸²à¸£à¸²à¸•à¸´à¸­à¸²à¸£à¸°à¹€à¸šà¸µà¸¢" + - "ใต้โบราณโสวรัสตระไซน์ไรติ้งซอเวียนชาราดาสิทธัมคุดาวาดีสิงหลโสราสมเป็งซ" + - "ุนดาซิโลตินาà¸à¸£à¸µà¸‹à¸µà¹€à¸£à¸µà¸¢à¸‹à¸µà¹€à¸£à¸µà¸¢à¹€à¸­à¸ªà¸—รานจีโลซีเรียตะวันตà¸à¸‹à¸µà¹€à¸£à¸µà¸¢à¸•à¸°à¸§à¸±à¸™à¸­à¸­à¸à¸•à¸±à¸à¸šà¸±" + - "นวาทาครีไทเลไทลื้อใหม่ทมิฬตันà¸à¸±à¸—ไทเวียตเทลูà¸à¸¹à¹€à¸—งà¸à¸§à¸²à¸£à¹Œà¸—ิฟินาà¸à¸•à¸²à¸à¸²à¸¥à¹‡à¸­à¸à¸—า" + - "นาไทยทิเบตเทอฮุทายูà¸à¸²à¸£à¸´à¸•à¹„วคำพูดที่มองเห็นได้วารังà¸à¸ªà¸´à¸•à¸´à¹‚อลีเอเปอร์เซียโ" + - "บราณอัà¸à¸©à¸£à¸£à¸¹à¸›à¸¥à¸´à¹ˆà¸¡à¸ªà¸¸à¹€à¸¡à¹€à¸£à¸µà¸¢-อัคคาเดียยิอินเฮอริตเครื่องหมายทางคณิตศาสตร์ซ" + - "ิมโบลส์ไม่มีภาษาเขียนสามัà¸à¸ªà¸„ริปต์ที่ไม่รู้จัà¸" - -// Size: 354 bytes, 165 elements -var thScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0012, 0x0046, 0x0058, 0x008f, 0x00ad, 0x00bf, 0x00ce, - 0x00dd, 0x00ec, 0x00fb, 0x0110, 0x0134, 0x014c, 0x015e, 0x0170, - 0x017f, 0x018e, 0x019d, 0x01f7, 0x0209, 0x0212, 0x0227, 0x0239, - 0x024b, 0x0263, 0x027b, 0x02cc, 0x02e4, 0x02f9, 0x0320, 0x034a, - 0x037a, 0x03b3, 0x03cb, 0x03e6, 0x0413, 0x042b, 0x0449, 0x0458, - 0x0467, 0x0473, 0x0485, 0x049d, 0x04af, 0x04bb, 0x04d3, 0x04f1, - 0x0512, 0x0521, 0x0539, 0x0569, 0x0587, 0x05c3, 0x05e7, 0x05f9, - 0x061a, 0x0623, 0x0638, 0x064d, 0x065c, 0x0674, 0x0686, 0x0692, - // Entry 40 - 7F - 0x06a1, 0x06b6, 0x06c8, 0x06d7, 0x06e6, 0x06f8, 0x0701, 0x072e, - 0x074f, 0x075e, 0x076d, 0x077c, 0x079a, 0x07b8, 0x07d0, 0x07dc, - 0x07ee, 0x0800, 0x0812, 0x082a, 0x083f, 0x0869, 0x0878, 0x08ac, - 0x08c1, 0x08dc, 0x08e8, 0x0903, 0x090c, 0x0915, 0x0930, 0x093c, - 0x0972, 0x0993, 0x09ac, 0x09be, 0x09ca, 0x09d9, 0x09ee, 0x0a03, - 0x0a15, 0x0a2d, 0x0a45, 0x0a60, 0x0a87, 0x0a9d, 0x0adf, 0x0b0f, - 0x0b33, 0x0b4b, 0x0b7e, 0x0bc0, 0x0bcf, 0x0bed, 0x0bfc, 0x0c14, - 0x0c26, 0x0c56, 0x0c71, 0x0c8f, 0x0ca4, 0x0cb6, 0x0cc8, 0x0ce0, - // Entry 80 - BF - 0x0cef, 0x0d0d, 0x0d1c, 0x0d3d, 0x0d4f, 0x0d82, 0x0da9, 0x0dd3, - 0x0deb, 0x0dfa, 0x0e06, 0x0e24, 0x0e30, 0x0e42, 0x0e57, 0x0e69, - 0x0e81, 0x0e96, 0x0eae, 0x0eba, 0x0ec3, 0x0ed2, 0x0ee7, 0x0efc, - 0x0f02, 0x0f38, 0x0f56, 0x0f68, 0x0f92, 0x0fea, 0x0ff0, 0x100b, - 0x1053, 0x106b, 0x1095, 0x10a4, 0x10dd, -} - -// Size: 1491 bytes -var trScriptStr string = "" + - "AfakaKafkas AlbanyasıArapÄ°mparatorluk AramicesiErmeniAvestaBali DiliBamu" + - "mBassa VahBatakBengalBlis SembolleriBopomofoBrahmiBrailleBugisBuhidChakm" + - "aUCASKaryaChamÇerokiCirthKıptiKıbrısKirilEski Kilise Slavcası KirilDevan" + - "agariDeseretDuployé StenografiDemotik MısırHiyeratik MısırMısır Hiyerogl" + - "ifleriElbasanEtiyopyaHutsuri GürcüGürcüGlagolitGotikGranthaYunanGüceratG" + - "urmukhiHangılHanHanunooBasitleÅŸtirilmiÅŸ HanGeleneksel HanÄ°braniHiraganaA" + - "nadolu HiyeroglifleriPahavh HmongKatakana veya HiraganaEski MacarIndusEs" + - "ki Ä°talyanCava DiliJaponJurchenKayah LiKatakanaKharoshthiKmerKhojkiKanna" + - "daKoreKpelleKaithiLannaLaoFraktur LatinGael LatinLatinLepchaLimbuLineer " + - "ALineer BFraserLomaLikyaLidyaMahajaniMandenManiMaya HiyeroglifleriMendeM" + - "eroitik El YazısıMeroitikMalayalamModiMoÄŸolMoonMroMeitei MayekBurmaEski " + - "Kuzey ArapNebatiNaksi GebaN’KoNüshuOghamOl ChikiOrhunOriyaOsmanyaPalmira" + - "Pau Cin HauEski PermikPhags-paPehlevi Kitabe DiliPsalter PehleviKitap Pe" + - "hlevi DiliFenikePollard FonetikPartça Kitabe DiliRejangRongorongoRunikSa" + - "maritSaratiEski Güney ArapSaurashtraÄ°ÅŸaret DiliShavianSharadaSiddhamKhud" + - "abadiSeylanSora SompengSundaSyloti NagriSüryaniEstrangela SüryaniBatı Sü" + - "ryaniDoÄŸu SüryaniTagbanvaTakriTai LeNew Tai LueTamilTangutTai VietTelugu" + - "TengvarTifinaghTakalotThaanaTayTibetTirhutaUgarit Çivi YazısıVaiKonuÅŸma " + - "Sesleri ÇizimlemesiVarang KshitiWoleaiEski FarsSümer-Akad Çivi YazısıYiK" + - "alıtsalMatematiksel GösterimSembolYazılı OlmayanOrtakBilinmeyen Alfabe" - -// Size: 354 bytes, 165 elements -var trScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0005, 0x0016, 0x001a, 0x0031, 0x0037, 0x003d, 0x0046, - 0x004b, 0x0054, 0x0059, 0x005f, 0x006e, 0x0076, 0x007c, 0x0083, - 0x0088, 0x008d, 0x0093, 0x0097, 0x009c, 0x00a0, 0x00a7, 0x00ac, - 0x00b2, 0x00ba, 0x00bf, 0x00da, 0x00e4, 0x00eb, 0x00fe, 0x010d, - 0x011e, 0x0134, 0x013b, 0x0143, 0x0152, 0x0159, 0x0161, 0x0166, - 0x016d, 0x0172, 0x017a, 0x0182, 0x0189, 0x018c, 0x0193, 0x01a9, - 0x01b7, 0x01be, 0x01c6, 0x01dc, 0x01e8, 0x01fe, 0x0208, 0x020d, - 0x021a, 0x0223, 0x0228, 0x022f, 0x0237, 0x023f, 0x0249, 0x024d, - // Entry 40 - 7F - 0x0253, 0x025a, 0x025e, 0x0264, 0x026a, 0x026f, 0x0272, 0x027f, - 0x0289, 0x028e, 0x0294, 0x0299, 0x02a1, 0x02a9, 0x02af, 0x02b3, - 0x02b8, 0x02bd, 0x02c5, 0x02cb, 0x02cf, 0x02e2, 0x02e7, 0x02fb, - 0x0303, 0x030c, 0x0310, 0x0316, 0x031a, 0x031d, 0x0329, 0x032e, - 0x033d, 0x0343, 0x034d, 0x0353, 0x0359, 0x035e, 0x0366, 0x036b, - 0x0370, 0x0377, 0x037e, 0x0389, 0x0394, 0x039c, 0x03af, 0x03be, - 0x03d0, 0x03d6, 0x03e5, 0x03f8, 0x03fe, 0x0408, 0x040d, 0x0414, - 0x041a, 0x042a, 0x0434, 0x0441, 0x0448, 0x044f, 0x0456, 0x045f, - // Entry 80 - BF - 0x0465, 0x0471, 0x0476, 0x0482, 0x048a, 0x049d, 0x04ab, 0x04b9, - 0x04c1, 0x04c6, 0x04cc, 0x04d7, 0x04dc, 0x04e2, 0x04ea, 0x04f0, - 0x04f7, 0x04ff, 0x0506, 0x050c, 0x050f, 0x0514, 0x051b, 0x0530, - 0x0533, 0x0550, 0x055d, 0x0563, 0x056c, 0x0586, 0x0588, 0x0591, - 0x05a7, 0x05ad, 0x05bd, 0x05c2, 0x05d3, -} - -// Size: 2918 bytes -var ukScriptStr string = "" + - "кавказька албанÑькаарабÑькаÐрмівірменÑькаÐвеÑтійÑькийБалійÑькийБамумбаÑÑ" + - "аБатакбенгальÑькаСимволи БліÑÑабопомофоБрахмішрифт БрайлÑБугійÑькийБухі" + - "дЧакмаУніфіковані Ñимволи канадÑьких тубільцівКаріанÑькийХамітÑькийЧеро" + - "кіКиртКоптÑькийКіпрÑькийкирилицÑДавньоцерковноÑловʼÑнÑькийдеванагаріДез" + - "еретЄгипетÑький демотичнийЄгипетÑький ієратичнийЄгипетÑький ієрогліфічн" + - "ийефіопÑькаКхутÑурігрузинÑькаГлаголичнийГотичнийгрецькагуджаратігурмухі" + - "хангулкитайÑькаХанунукитайÑька ÑпрощенакитайÑька традиційнаівритхіраган" + - "аПахау хмонгКатакана чи хіраганаДавньоугорÑькийХарапÑькийДавньоіталійÑÑŒ" + - "кийЯванÑькийÑпонÑÑŒÐºÐ°ÐšÐ°Ñ Ð›Ñ–ÐºÐ°Ñ‚Ð°ÐºÐ°Ð½Ð°ÐšÑ…Ð°Ñ€Ð¾ÑˆÑ‚Ñ…Ñ–ÐºÑ…Ð¼ÐµÑ€ÑькаканнадакорейÑькаКаї" + - "тіЛанналаоÑькаЛатинÑький фрактурнийЛатинÑький гельÑькийлатинÑькаЛепчаЛі" + - "мбуЛінійний ÐЛінійний Вабетка ФрейзераЛікійÑькийЛідійÑькийМандейÑькийМа" + - "ніхейÑÑŒÐºÐ¸Ð¹ÐœÐ°Ð¹Ñ Ñ–Ñ”Ñ€Ð¾Ð³Ð»Ñ–Ñ„Ñ–Ñ‡Ð½Ð¸Ð¹ÐœÐµÑ€Ð¾Ñ—Ñ‚ÑькиймалаÑламÑькамонгольÑькаМунМейтей" + - " майєкмʼÑнмÑькаÐкоОгамічнийСантальÑькийОрхонÑькийоріÑОÑманÑькийДавньопер" + - "мÑькийПхагÑ-паПехлеві напиÑівПехлеві релігійнийПехлеві літературнийФіні" + - "кійÑькийПиÑемніÑÑ‚ÑŒ ПоллардаПарфÑнÑькийРеджангРонго-ронгоРунічнийСамарит" + - "ÑнÑькийСаратіСаураштраЗнаковийШоуÑингальÑькаСунданÑькийСілоті нагріСирі" + - "йÑькийДавньоÑирійÑький еÑтрангелоДавньоÑирійÑький західнийДавньоÑирійÑÑŒ" + - "кий ÑхіднийТагбанваТай-ліÐовий тайÑький луетамільÑькаТай-вʼєттелугуТенг" + - "варТифінагТагальÑькийтаанатайÑькатибетÑькаУгаритÑькийВаїФонетична транÑ" + - "ÐºÑ€Ð¸Ð¿Ñ†Ñ–Ñ Ð‘ÐµÐ»Ð»Ð°Ð”Ð°Ð²Ð½ÑŒÐ¾Ð¿ÐµÑ€ÑькийШумеро-аккадÑький клінопиÑЙїУÑпадкованийМате" + - "матичнийÑимвольнабезпиÑемназвичайнаневідома ÑиÑтема пиÑьма" - -// Size: 354 bytes, 165 elements -var ukScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0025, 0x0035, 0x003d, 0x0051, 0x0069, 0x007d, - 0x0087, 0x0091, 0x009b, 0x00b1, 0x00cc, 0x00dc, 0x00e8, 0x00ff, - 0x0113, 0x011d, 0x0127, 0x0174, 0x018a, 0x019e, 0x01aa, 0x01b2, - 0x01c4, 0x01d6, 0x01e6, 0x021a, 0x022e, 0x023c, 0x023c, 0x0267, - 0x0292, 0x02c3, 0x02c3, 0x02d5, 0x02e5, 0x02f9, 0x030f, 0x031f, - 0x031f, 0x032d, 0x033f, 0x034d, 0x0359, 0x036b, 0x0377, 0x039a, - 0x03c1, 0x03cb, 0x03db, 0x03db, 0x03f0, 0x0416, 0x0434, 0x0448, - 0x046a, 0x047c, 0x048c, 0x048c, 0x0497, 0x04a7, 0x04b9, 0x04cb, - // Entry 40 - 7F - 0x04cb, 0x04d9, 0x04eb, 0x04eb, 0x04f5, 0x04ff, 0x050d, 0x0536, - 0x055d, 0x056f, 0x0579, 0x0583, 0x0596, 0x05a9, 0x05c6, 0x05c6, - 0x05da, 0x05ee, 0x05ee, 0x0604, 0x061c, 0x063f, 0x063f, 0x063f, - 0x0655, 0x066d, 0x066d, 0x0683, 0x0689, 0x0689, 0x06a0, 0x06b2, - 0x06b2, 0x06b2, 0x06b2, 0x06b8, 0x06b8, 0x06ca, 0x06e2, 0x06f6, - 0x06fe, 0x0712, 0x0712, 0x0712, 0x0730, 0x073f, 0x075c, 0x077f, - 0x07a6, 0x07be, 0x07e3, 0x07f9, 0x0807, 0x081c, 0x082c, 0x0848, - 0x0854, 0x0854, 0x0866, 0x0876, 0x087c, 0x087c, 0x087c, 0x087c, - // Entry 80 - BF - 0x0892, 0x0892, 0x08a8, 0x08bf, 0x08d3, 0x0908, 0x0939, 0x0968, - 0x0978, 0x0978, 0x0983, 0x09a5, 0x09b9, 0x09b9, 0x09c8, 0x09d4, - 0x09e2, 0x09f0, 0x0a06, 0x0a10, 0x0a1e, 0x0a30, 0x0a30, 0x0a46, - 0x0a4c, 0x0a82, 0x0a82, 0x0a82, 0x0a9e, 0x0ad0, 0x0ad4, 0x0aec, - 0x0b04, 0x0b16, 0x0b2a, 0x0b3a, 0x0b66, -} - -// Size: 492 bytes -var urScriptStr string = "" + - "عربیآرمینیائیبنگالیبوپوموÙوبریلسیریلکدیوناگریایتھوپیائیجارجیائییونانیگجر" + - "اتیگرمکھیÛنگولÛانآسان Ûانروایتی ÛانعبرانیÛیراگیناجاپانیکٹاکاناخمیرکنڑکو" + - "ریائیلاؤلاطینیملیالممنگولیائیمیانماراڑیÛسنÛالاتملتیلگوتھاناتھائیتبتیعلا" + - "ماتغیر تحریر شدÛعامنامعلوم رسم الخط" - -// Size: 354 bytes, 165 elements -var urScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x001a, 0x001a, 0x001a, - 0x001a, 0x001a, 0x001a, 0x0026, 0x0026, 0x0036, 0x0036, 0x003e, - 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, - 0x003e, 0x003e, 0x004a, 0x004a, 0x005a, 0x005a, 0x005a, 0x005a, - 0x005a, 0x005a, 0x005a, 0x006e, 0x006e, 0x007e, 0x007e, 0x007e, - 0x007e, 0x008a, 0x0096, 0x00a2, 0x00ac, 0x00b2, 0x00b2, 0x00c1, - 0x00d4, 0x00e0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, - 0x00f0, 0x00f0, 0x00fc, 0x00fc, 0x00fc, 0x010a, 0x010a, 0x0112, - // Entry 40 - 7F - 0x0112, 0x0118, 0x0126, 0x0126, 0x0126, 0x0126, 0x012c, 0x012c, - 0x012c, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, - 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, - 0x0138, 0x0144, 0x0144, 0x0156, 0x0156, 0x0156, 0x0156, 0x0164, - 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, - // Entry 80 - BF - 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, - 0x0178, 0x0178, 0x0178, 0x0178, 0x017e, 0x017e, 0x017e, 0x0188, - 0x0188, 0x0188, 0x0188, 0x0192, 0x019c, 0x01a4, 0x01a4, 0x01a4, - 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, - 0x01a4, 0x01b0, 0x01c8, 0x01ce, 0x01ec, -} - -// Size: 268 bytes -var uzScriptStr string = "" + - "ArabArmanBengaliBopomofoBrailleKirilDevangariHabashGruzinYunonGujaratiGu" + - "rmuxiXangulXanSoddalashtirilganAnʼanaviyIbroniyXiraganaYaponKatakanaXmer" + - "KannadaKoreyaLaoLotinMalayalamMoÊ»gÊ»ulchaMyanmaOriyaSinxalaTamilTeluguTaa" + - "naTayTibetRamzlarYozilmaganUmumiyNomaʼlum shrift" - -// Size: 354 bytes, 165 elements -var uzScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0004, 0x0004, 0x0009, 0x0009, 0x0009, - 0x0009, 0x0009, 0x0009, 0x0010, 0x0010, 0x0018, 0x0018, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x0024, 0x0024, 0x002d, 0x002d, 0x002d, 0x002d, - 0x002d, 0x002d, 0x002d, 0x0033, 0x0033, 0x0039, 0x0039, 0x0039, - 0x0039, 0x003e, 0x0046, 0x004d, 0x0053, 0x0056, 0x0056, 0x0067, - 0x0071, 0x0078, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, - 0x0080, 0x0080, 0x0085, 0x0085, 0x0085, 0x008d, 0x008d, 0x0091, - // Entry 40 - 7F - 0x0091, 0x0098, 0x009e, 0x009e, 0x009e, 0x009e, 0x00a1, 0x00a1, - 0x00a1, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, - 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, - 0x00a6, 0x00af, 0x00af, 0x00bb, 0x00bb, 0x00bb, 0x00bb, 0x00c1, - 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c1, - 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, - 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, - 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, - // Entry 80 - BF - 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, - 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00d2, 0x00d2, 0x00d2, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00dd, 0x00e0, 0x00e5, 0x00e5, 0x00e5, - 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00e5, - 0x00e5, 0x00ec, 0x00f6, 0x00fc, 0x010c, -} - -// Size: 2484 bytes -var viScriptStr string = "" + - "Chữ AfakaChữ Ả RậpChữ Imperial AramaicChữ ArmeniaChữ AvestanChữ BaliChữ " + - "BamumChữ Bassa VahChữ BatakChữ BengaliChữ BlissymbolsChữ BopomofoChữ Bra" + - "hmiChữ nổi BrailleChữ BuginChữ BuhidChữ ChakmaÂm tiết Thổ dân Canada Hợp" + - " nhấtChữ CariaChữ ChămChữ CherokeeChữ CirthChữ CopticChứ SípChữ KirinChữ" + - " Kirin SlavÆ¡ Nhà thá» cổChữ DevanagariChữ DeseretChữ tốc ký DuployanChữ A" + - "i Cập bình dânChữ Ai Cập thày tuChữ tượng hình Ai CậpChữ EthiopiaChữ Khu" + - "tsuri GeorgiaChữ GruziaChữ GlagoliticChữ Gô-tíchChữ GranthaChữ Hy LạpChữ" + - " GujaratiChữ GurmukhiChữ HangulChữ HánChữ HanunooChữ Hán giản thểChữ Hán" + - " phồn thểChữ Do TháiChữ HiraganaChữ tượng hình AnatoliaChữ Pahawh HmongB" + - "ảng ký hiệu âm tiết Tiếng NhậtChữ Hungary cổChữ IndusChữ Italic cổChữ " + - "JavaChữ Nhật BảnChữ JurchenChữ Kayah LiChữ KatakanaChữ KharoshthiChữ KhÆ¡" + - "-meChữ KhojkiChữ KannadaChữ Hàn QuốcChữ KpelleChữ KaithiChữ LannaChữ Lào" + - "Chữ La-tinh FrakturChữ La-tinh Xcốt-lenChữ La tinhChữ LepchaChữ LimbuChữ" + - " Linear AChữ Linear BChữ FraserChữ LomaChữ LyciaChữ LydiaChữ MandaeanChữ" + - " ManichaeanChữ tượng hình MayaChữ MendeChữ Meroitic Nét thảoChữ Meroitic" + - "Chữ MalayalamChữ Mông CổChữ nổi MoonChữ MroChữ Meitei MayekMyanmaChữ Bắc" + - " Ả Rập cổChữ NabataeanChữ Naxi GebaChữ N’KoChữ NüshuChữ OghamChữ Ol Chik" + - "iChữ OrkhonChữ OriyaChữ OsmanyaChữ PalmyreneChữ Permic cổChữ Phags-paChữ" + - " Pahlavi Văn biaChữ Pahlavi Thánh caChữ Pahlavi SáchChữ PhoeniciaNgữ âm " + - "PollardChữ Parthia Văn biaChữ RejangChữ RongorongoChữ RunicChữ Samaritan" + - "Chữ SaratiChữ Nam Ả Rập cổChữ SaurashtraChữ viết Ký hiệuChữ ShavianChữ S" + - "haradaChữ KhudawadiChữ SinhalaChữ Sora SompengChữ Xu-đăngChữ Syloti Nagr" + - "iChữ SyriaChữ Estrangelo SyriacChữ Tây SyriaChữ Äông SyriaChữ TagbanwaCh" + - "ữ TakriChữ Thái NaChữ Thái Lặc má»›iChữ TamilChữ TangutChữ Thái ViệtChữ " + - "TeluguChữ TengwarChữ TifinaghChữ TagalogChữ ThaanaChữ TháiChữ Tây TạngCh" + - "ữ TirhutaChữ UgaritChữ VaiTiếng nói Nhìn thấy đượcChữ Varang KshitiChữ" + - " WoleaiChữ Ba TÆ° cổChữ hình nêm Sumero-AkkadianChữ DiChữ Kế thừaKý hiệu " + - "Toán há»cKý hiệuChÆ°a có chữ viếtChungChữ viết không xác định" - -// Size: 354 bytes, 165 elements -var viScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000b, 0x000b, 0x001a, 0x0030, 0x003d, 0x004a, 0x0054, - 0x005f, 0x006e, 0x0079, 0x0086, 0x0097, 0x00a5, 0x00b1, 0x00c4, - 0x00cf, 0x00da, 0x00e6, 0x010f, 0x011a, 0x0125, 0x0133, 0x013e, - 0x014a, 0x0154, 0x015f, 0x0181, 0x0191, 0x019e, 0x01b6, 0x01cf, - 0x01e6, 0x0203, 0x0203, 0x0211, 0x0227, 0x0233, 0x0243, 0x0252, - 0x025f, 0x026d, 0x027b, 0x0289, 0x0295, 0x029f, 0x02ac, 0x02c3, - 0x02da, 0x02e8, 0x02f6, 0x0313, 0x0325, 0x0350, 0x0362, 0x036d, - 0x037e, 0x0388, 0x039a, 0x03a7, 0x03b5, 0x03c3, 0x03d3, 0x03e0, - // Entry 40 - 7F - 0x03ec, 0x03f9, 0x040a, 0x0416, 0x0422, 0x042d, 0x0437, 0x044c, - 0x0464, 0x0471, 0x047d, 0x0488, 0x0496, 0x04a4, 0x04b0, 0x04ba, - 0x04c5, 0x04d0, 0x04d0, 0x04de, 0x04ee, 0x0507, 0x0512, 0x052c, - 0x053a, 0x0549, 0x0549, 0x0559, 0x0569, 0x0572, 0x0584, 0x058a, - 0x05a4, 0x05b3, 0x05c2, 0x05ce, 0x05da, 0x05e5, 0x05f3, 0x05ff, - 0x060a, 0x0617, 0x0626, 0x0626, 0x0637, 0x0645, 0x065b, 0x0672, - 0x0685, 0x0694, 0x06a5, 0x06bb, 0x06c7, 0x06d7, 0x06e2, 0x06f1, - 0x06fd, 0x0715, 0x0725, 0x073c, 0x0749, 0x0756, 0x0756, 0x0765, - // Entry 80 - BF - 0x0772, 0x0784, 0x0793, 0x07a5, 0x07b0, 0x07c7, 0x07d7, 0x07e9, - 0x07f7, 0x0802, 0x0810, 0x0827, 0x0832, 0x083e, 0x0850, 0x085c, - 0x0869, 0x0877, 0x0884, 0x0890, 0x089b, 0x08ac, 0x08b9, 0x08c5, - 0x08ce, 0x08f0, 0x0903, 0x090f, 0x0920, 0x0940, 0x0948, 0x0959, - 0x096f, 0x0979, 0x098f, 0x0994, 0x09b4, -} - -// Size: 2184 bytes -var zhScriptStr string = "" + - "阿法å¡æ–‡é˜¿æ‹‰ä¼¯æ–‡çš‡å®¤äºšæ‹‰å§†æ–‡äºšç¾Žå°¼äºšæ–‡é˜¿ç»´æ–¯é™€æ–‡å·´åŽ˜æ–‡å·´å§†ç©†æ–‡å·´è¨æ–‡å·´å¡”克文孟加拉文布列斯符å·æ±‰è¯­æ‹¼éŸ³å©†ç½—米文字布莱å¶ç›²æ–‡å¸ƒå‰æ–‡å¸ƒå¸Œå¾·æ–‡æŸ¥å…‹é©¬æ–‡" + - "加拿大土著统一音节å¡é‡Œäºšæ–‡å æ–‡åˆ‡ç½—基文色斯文克普特文塞浦路斯文西里尔文西里尔文字(å¤æ•™ä¼šæ–¯æ‹‰å¤«æ–‡çš„å˜ä½“)天城文德塞莱特文æœæ™®æ´›ä¼Šé€Ÿè®°åŽæœŸåŸƒåŠ" + - "æ–‡å¤åŸƒåŠåƒ§ä¾£ä¹¦å†™ä½“å¤åŸƒåŠè±¡å½¢æ–‡åŸƒå¡žä¿„比亚文格é²å‰äºšæ–‡ï¼ˆæ•™å ‚体)格é²å‰äºšæ–‡æ ¼æ‹‰å“¥é‡Œæ–‡å“¥ç‰¹æ–‡æ ¼å…°å¡”文希腊文å¤å‰æ‹‰ç‰¹æ–‡æžœé²ç©†å¥‡æ–‡éŸ©æ–‡å­—汉字汉奴罗文" + - "简体中文ç¹ä½“中文希伯æ¥æ–‡å¹³å‡å安那托利亚象形文字æ¨æ¾å½•è‹—文片å‡å或平å‡åå¤åŒˆç‰™åˆ©æ–‡å¤å¸Œè…Šå“ˆæ‹‰æ½˜å¤æ„大利文爪哇文日文女真文克耶æŽæ–‡å­—片å‡åå¡ç½—" + - "é¡»æ文高棉文克å‰å¥‡æ–‡å­—å¡çº³è¾¾æ–‡éŸ©æ–‡å…‹ä½©åˆ—文凯æ文兰拿文è€æŒæ–‡æ‹‰ä¸æ–‡ï¼ˆå“¥ç‰¹å¼å­—体å˜ä½“)拉ä¸æ–‡ï¼ˆç›–尔文å˜ä½“)拉ä¸æ–‡é›·å¸ƒæŸ¥æ–‡æž—布文线形文字(A)线" + - "形文字(B)傈僳文洛马文利西亚文å•åº•äºšæ–‡é˜¿æ‹‰ç±³æ–‡æ‘©å°¼æ•™æ–‡çŽ›é›…圣符文门迪文麦罗埃è‰ä¹¦éº¦è‹¥æ克文马拉雅拉姆文蒙å¤æ–‡éŸ©æ–‡è¯­ç³»è°¬æ–‡æ›¼å°¼æ™®å°”文缅甸文å¤" + - "北方阿拉伯文纳巴泰文纳西格巴文西éžä¹¦é¢æ–‡å­—(N’Ko)女书欧甘文桑塔利文鄂尔浑文奥里亚文奥斯曼亚文帕尔迈拉文å¤å½¼å°”姆文八æ€å·´æ–‡å·´åˆ—维文碑铭体" + - "巴列维文(圣诗体)巴列维文(书体)腓尼基文波拉德音标文字帕æ亚文碑铭体拉让文朗格朗格文å¤ä»£åŒ—欧文撒马利亚文沙拉堤文å¤å—阿拉伯文索拉什特拉文书" + - "写符å·è§ä¼¯çº³å¼æ–‡å¤æ‹‰è¾¾æ–‡ä¿¡å¾·æ–‡åƒ§ä¼½ç½—文索朗桑朋文巽他文锡尔赫特文å™åˆ©äºšæ–‡ç¦éŸ³ä½“å™åˆ©äºšæ–‡è¥¿å™åˆ©äºšæ–‡ä¸œå™åˆ©äºšæ–‡å¡”æ ¼ç­ç“¦æ–‡æ³°å…‹é‡Œæ–‡æ³°ä¹æ–‡æ–°å‚£æ–‡æ³°ç±³" + - "尔文å”å¤ç‰¹æ–‡è¶Šå—傣文泰å¢å›ºæ–‡è…¾æ ¼ç“¦æ–‡å­—æéžçº³æ–‡å¡”加路文塔安那文泰文è—文迈蒂利文乌加里特文瓦ä¾æ–‡å¯è§è¯­è¨€ç“¦éƒŽå¥‡è’‚文字沃莱艾文å¤æ³¢æ–¯æ–‡è‹ç¾Žå°”-阿" + - "å¡å¾·æ¥”形文字å½æ–‡é—传学术语数学符å·ç¬¦å·éžä¹¦é¢æ–‡å­—通用未知文字" - -// Size: 354 bytes, 165 elements -var zhScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000c, 0x000c, 0x0018, 0x002a, 0x0039, 0x0048, 0x0051, - 0x005d, 0x0066, 0x0072, 0x007e, 0x008d, 0x0099, 0x00a8, 0x00b7, - 0x00c0, 0x00cc, 0x00d8, 0x00f3, 0x00ff, 0x0105, 0x0111, 0x011a, - 0x0126, 0x0135, 0x0141, 0x0174, 0x017d, 0x018c, 0x019e, 0x01ad, - 0x01c5, 0x01d7, 0x01d7, 0x01e9, 0x0207, 0x0216, 0x0225, 0x022e, - 0x023a, 0x0243, 0x0252, 0x0261, 0x026a, 0x0270, 0x027c, 0x0288, - 0x0294, 0x02a0, 0x02a9, 0x02c4, 0x02d3, 0x02e8, 0x02f7, 0x0309, - 0x0318, 0x0321, 0x0327, 0x0330, 0x033f, 0x0348, 0x0357, 0x0360, - // Entry 40 - 7F - 0x036f, 0x037b, 0x0381, 0x038d, 0x0396, 0x039f, 0x03a8, 0x03cc, - 0x03ea, 0x03f3, 0x03ff, 0x0408, 0x041b, 0x042e, 0x0437, 0x0440, - 0x044c, 0x0458, 0x0458, 0x0464, 0x0470, 0x047f, 0x0488, 0x0497, - 0x04a6, 0x04b8, 0x04b8, 0x04c1, 0x04cd, 0x04d3, 0x04e2, 0x04eb, - 0x0500, 0x050c, 0x051b, 0x0539, 0x053f, 0x0548, 0x0554, 0x0560, - 0x056c, 0x057b, 0x058a, 0x058a, 0x0599, 0x05a5, 0x05ba, 0x05d5, - 0x05ed, 0x05f9, 0x060e, 0x0623, 0x062c, 0x063b, 0x064a, 0x0659, - 0x0665, 0x0677, 0x0689, 0x0695, 0x06a4, 0x06b0, 0x06b0, 0x06b9, - // Entry 80 - BF - 0x06c5, 0x06d4, 0x06dd, 0x06ec, 0x06f8, 0x070d, 0x071c, 0x072b, - 0x073a, 0x0746, 0x074f, 0x0758, 0x0764, 0x0770, 0x077c, 0x0788, - 0x0797, 0x07a3, 0x07af, 0x07bb, 0x07c1, 0x07c7, 0x07d3, 0x07e2, - 0x07eb, 0x07f7, 0x0809, 0x0815, 0x0821, 0x0840, 0x0846, 0x0855, - 0x0861, 0x0867, 0x0876, 0x087c, 0x0888, -} - -// Size: 2409 bytes -var zhHantScriptStr string = "" + - "阿法å¡æ–‡å­—高加索阿爾巴尼亞文阿拉伯文皇室亞美尼亞文亞美尼亞文阿維斯陀文峇里文巴姆穆文巴薩文巴塔克文孟加拉文布列斯文注音符號婆羅米文盲人用點字布å‰" + - "斯文布希德文查克馬文加拿大原ä½æ°‘通用字符å¡é‡Œäºžæ–‡å æ–‡æŸ´ç¾…基文色斯文科普特文塞浦路斯文斯拉夫文西里爾文(å¤æ•™æœƒæ–¯æ‹‰å¤«æ–‡è®Šé«”)天城文德瑟雷特文æœ" + - "普洛伊速記å¤åŸƒåŠä¸–ä¿—é«”å¤åŸƒåŠåƒ§ä¾¶é«”å¤åŸƒåŠè±¡å½¢æ–‡å­—愛爾巴桑文衣索比亞文喬治亞語系(阿索他路里和努斯克胡里文)喬治亞文格拉哥里文歌德文格蘭他文字" + - "希臘文å¤å‰æ‹‰ç‰¹æ–‡å¤é­¯ç©†å¥‡æ–‡éŸ“文字漢語哈努諾文簡體中文ç¹é«”中文希伯來文平å‡å安那托利亞象形文字楊æ¾éŒ„苗文片å‡å或平å‡åå¤åŒˆç‰™åˆ©æ–‡å°åº¦æ²³æµåŸŸï¼ˆå“ˆ" + - "拉帕文)å¤æ„大利文爪哇文日文女真文字克耶æŽæ–‡ç‰‡å‡åå¡ç¾…é ˆæ文高棉文克å‰å¥‡æ–‡å­—åŽé‚£é”文韓文克培列文凱ææ–‡è—拿文寮國文拉ä¸æ–‡ï¼ˆå°–角體活字變體)拉" + - "ä¸æ–‡ï¼ˆè“‹çˆ¾èªžè®Šé«”)拉ä¸æ–‡é›·å¸ƒæŸ¥æ–‡æž—佈文線性文字(A)線性文字(B)栗僳文洛馬文呂西亞語里底亞語曼底安文摩尼教文瑪雅象形文字門德文麥羅埃文(曲" + - "線字體)麥羅埃文馬來亞拉姆文蒙å¤æ–‡è’™æ°é»žå­—謬文曼尼普爾文緬甸文å¤åŒ—阿拉伯文ç´å·´æ³°æ–‡å­—ç´è¥¿æ ¼å·´æ–‡è¥¿éžæ›¸é¢èªžè¨€ (N’Ko)女書文字æ­ç”˜æ–‡æ¡‘塔利" + - "文鄂爾渾文æ­åˆ©äºžæ–‡æ­æ–¯æ›¼äºžæ–‡å¸•ç±³ç‘žæ‹‰æ–‡å­—å¤å½¼çˆ¾å§†è«¸æ–‡å…«æ€å·´æ–‡å·´åˆ—維文(碑銘體)巴列維文(è–詩體)巴列維文(書體)腓尼基文æŸæ ¼ç†æ‹¼éŸ³ç¬¦å¸•æ亞文" + - "(碑銘體)拉讓文朗格朗格象形文å¤åŒ—æ­æ–‡å­—撒馬利亞文沙拉堤文å¤å—阿拉伯文索拉什特拉文手語書寫符號簫æŸç´å­—符å¤æ‹‰é”文悉曇文字信德文錫蘭文索朗桑朋" + - "文字巽他文希洛弟ç´æ ¼é‡Œæ–‡æ•åˆ©äºžæ–‡æ•˜åˆ©äºžæ–‡ï¼ˆç¦éŸ³é«”文字變體)敘利亞文(西方文字變體)敘利亞文(æ±æ–¹æ–‡å­—變體)å—島文塔å¡é‡Œæ–‡å­—傣哪文西雙版ç´æ–°å‚£" + - "æ–‡å¦ç±³çˆ¾æ–‡è¥¿å¤æ–‡å‚£æ“”文泰盧固文談格瓦文æéžç´æ–‡å¡”加拉文塔安那文泰文西è—æ–‡é‚蒂利文çƒåŠ åˆ—文瓦ä¾æ–‡è¦–覺語音文字瓦郎奇蒂文字沃雷艾文å¤æ³¢æ–¯æ–‡è˜‡ç±³é­¯" + - "亞甲文楔形文字彞文繼承文字(Unicode)數學符號符號éžæ›¸å¯«èªžè¨€ä¸€èˆ¬æ–‡å­—未知文字" - -// Size: 354 bytes, 165 elements -var zhHantScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000f, 0x002a, 0x0036, 0x004b, 0x005a, 0x0069, 0x0072, - 0x007e, 0x0087, 0x0093, 0x009f, 0x00ab, 0x00b7, 0x00c3, 0x00d2, - 0x00de, 0x00ea, 0x00f6, 0x0114, 0x0120, 0x0126, 0x0132, 0x013b, - 0x0147, 0x0156, 0x0162, 0x018f, 0x0198, 0x01a7, 0x01b9, 0x01cb, - 0x01dd, 0x01f2, 0x0201, 0x0210, 0x0249, 0x0255, 0x0264, 0x026d, - 0x027c, 0x0285, 0x0294, 0x02a3, 0x02ac, 0x02b2, 0x02be, 0x02ca, - 0x02d6, 0x02e2, 0x02eb, 0x0306, 0x0315, 0x032a, 0x0339, 0x035a, - 0x0369, 0x0372, 0x0378, 0x0384, 0x0390, 0x0399, 0x03a8, 0x03b1, - // Entry 40 - 7F - 0x03c0, 0x03cc, 0x03d2, 0x03de, 0x03e7, 0x03f0, 0x03f9, 0x041d, - 0x043b, 0x0444, 0x0450, 0x0459, 0x046c, 0x047f, 0x0488, 0x0491, - 0x049d, 0x04a9, 0x04a9, 0x04b5, 0x04c1, 0x04d3, 0x04dc, 0x04fa, - 0x0506, 0x0518, 0x0518, 0x0521, 0x052d, 0x0533, 0x0542, 0x054b, - 0x055d, 0x056c, 0x057b, 0x0596, 0x05a2, 0x05ab, 0x05b7, 0x05c3, - 0x05cf, 0x05de, 0x05f0, 0x05f0, 0x0602, 0x060e, 0x0629, 0x0644, - 0x065c, 0x0668, 0x067a, 0x0695, 0x069e, 0x06b3, 0x06c2, 0x06d1, - 0x06dd, 0x06ef, 0x0701, 0x0713, 0x0722, 0x072e, 0x073a, 0x0743, - // Entry 80 - BF - 0x074c, 0x075e, 0x0767, 0x077c, 0x0788, 0x07af, 0x07d3, 0x07f7, - 0x0800, 0x080f, 0x0818, 0x082d, 0x0839, 0x0842, 0x084b, 0x0857, - 0x0863, 0x086f, 0x087b, 0x0887, 0x088d, 0x0896, 0x08a2, 0x08ae, - 0x08b7, 0x08c9, 0x08db, 0x08e7, 0x08f3, 0x0911, 0x0917, 0x0930, - 0x093c, 0x0942, 0x0951, 0x095d, 0x0969, -} - -// Size: 371 bytes -var zuScriptStr string = "" + - "i-Arabi-Armeniani-Bengalii-Bopomofoi-Braillei-Cyrillici-Devanagarii-Ethi" + - "opici-Georgiani-Greeki-Gujaratii-Gurmukhii-Hanguli-Hani-Simplified Hani-" + - "Traditional Hani-Hebrewi-Hiraganai-Japanesei-Katakanai-Khmeri-Kannadai-K" + - "oreani-Laoi-Latini-Malayami-Mongoliani-Myanmari-Oriyai-Sinhalai-Tamili-T" + - "elegui-Thaanai-Thaii-TibetanAmasimbuliOkungabhaliweEjwayelekileIskripthi" + - " esingaziwa" - -// Size: 354 bytes, 165 elements -var zuScriptIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0019, 0x0019, 0x0023, 0x0023, 0x002c, - 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, - 0x002c, 0x002c, 0x0036, 0x0036, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x004c, 0x004c, 0x0056, 0x0056, 0x0056, - 0x0056, 0x005d, 0x0067, 0x0071, 0x0079, 0x007e, 0x007e, 0x008e, - 0x009f, 0x00a7, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, - 0x00b1, 0x00b1, 0x00bb, 0x00bb, 0x00bb, 0x00c5, 0x00c5, 0x00cc, - // Entry 40 - 7F - 0x00cc, 0x00d5, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00e2, 0x00e2, - 0x00e2, 0x00e9, 0x00e9, 0x00e9, 0x00e9, 0x00e9, 0x00e9, 0x00e9, - 0x00e9, 0x00e9, 0x00e9, 0x00e9, 0x00e9, 0x00e9, 0x00e9, 0x00e9, - 0x00e9, 0x00f2, 0x00f2, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x0106, - 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, - 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, - 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, - 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, - // Entry 80 - BF - 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, - 0x0116, 0x0116, 0x0116, 0x0116, 0x011d, 0x011d, 0x011d, 0x0125, - 0x0125, 0x0125, 0x0125, 0x012d, 0x0133, 0x013c, 0x013c, 0x013c, - 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, - 0x013c, 0x0146, 0x0153, 0x015f, 0x0173, -} - -// Total size for script: 221809 bytes (221 KB) - -// Number of keys: 290 -var ( - regionIndex = tagIndex{ - "ACADAEAFAGAIALAMANAOAQARASATAUAWAXAZBABBBDBEBFBGBHBIBJBLBMBNBOBQBRBSBTBV" + - "BWBYBZCACCCDCFCGCHCICKCLCMCNCOCPCRCUCVCWCXCYCZDEDGDJDKDMDODZEAECEEEG" + - "EHERESETEUFIFJFKFMFOFRGAGBGDGEGFGGGHGIGLGMGNGPGQGRGSGTGUGWGYHKHMHNHR" + - "HTHUICIDIEILIMINIOIQIRISITJEJMJOJPKEKGKHKIKMKNKPKRKWKYKZLALBLCLILKLR" + - "LSLTLULVLYMAMCMDMEMFMGMHMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZNANCNENFNGNI" + - "NLNONPNRNUNZOMPAPEPFPGPHPKPLPMPNPRPSPTPWPYQAQORERORSRURWSASBSCSDSESG" + - "SHSISJSKSLSMSNSOSRSSSTSVSXSYSZTATCTDTFTGTHTJTKTLTMTNTOTRTTTVTWTZUAUG" + - "UMUSUYUZVAVCVEVGVIVNVUWFWSXKYEYTZAZMZWZZ", - "001002003005009011013014015017018019021029030034035039053054057061142143" + - "145150151154155419", - "", - } -) - -var regionHeaders = [210]header{ - { // af - afRegionStr, - afRegionIdx, - }, - { // agq - "ÀndolàYùnaetÉ› Alab É›melɛ̀Àfɨ̀ganìsɨ̀tânÀntigwà à BàbudàÀŋgwilàÀabÉ›nìaÀmÉ›" + - "nyìaNedàlân AntàeÀŋgolàÀdzɛ̀ntinàÀmÉ›lekan SamwàUsɨtɨ̀làÙsɨ̀tɛ̀lÉ›lìaÀ" + - "lubàÀzɨbɛ̀dzânBosɨnyìa à Hɛ̀zɛ̀gòvinàBàbadòsBaÅ‹gɨ̀làdɛ̂BɛɛdzwùmBùkin" + - "à FasòBùugÉ›lìaBàlaenBùlundìBɛ̀nɨ̂ŋBɛ̀mudàBɨ̀lunèBòlevàBɨ̀làzîiBàham" + - "àsMbutànBòtɨ̀swÇŽnàBÉ›làlûsBɛ̀lezɨ̀KanadàDɛ̀mùkàlatì Lèkpubèlè è KuÅ‹g" + - "ùSÉ›nta Afɨlekan LèkpobèlèKuÅ‹gùSuezàlânKu Dɨ̀vûaChwɨla Å‹Ì€ KûʔChilèKà" + - "màlûŋChaenàKòlombìaKòsɨ̀tà LekàKuuwbàChwɨla Å‹Ì€ Kɛ̀b Vɛ̂ɛSaekpùlùChɛ̂" + - " LèkpubèlèDzamanèDzìbuwtìDÉ›nɨmàDòmenekàDòmenekà LèkpubèlèÀadzÉ›lìaEkw" + - "adòÈsɨ̀tonyìaEdzìÈletɨ̀làSɨ̀kpɛ̂nÈtyÇ’pìaFɨnlànFidziChwɨlà fɨ Fakɨlàn" + - "MaekòlòneshìaFàlâŋnsìGàbûnYùnaetÉ› KiÅ‹dɔ̀mGɨ̀lÉ›nadàDzɔɔdzìaGàyanà è F" + - "àlâŋnsìGaanàDzibɨ̀latàGɨ̀lenlânGambìaGinèGwadalukpɛ̀Èkwɛ̀tolia Ginè" + - "Gɨ̀lêsGwàtɨ̀malàGwamGinè BìsawùGùyanàHÉ”ndulàsKòwÉ›shìaHÇŽetìHɔŋgàlèÈnd" + - "òneshìaAelɨ̀lânEzɨ̀lɛ̂EndìaDɨŋò kɨ dzughùnstòʔ kɨ Endìa kɨ Bɨ̀letì " + - "kòÈlâkɨ̀ÈlânAesɨ̀lânEtalèDzàmÉ›kàDzodànDzàkpânKɨnyàKìdzisɨ̀tânKàmbodì" + - "aKèlèbatiKomolòsSɛ̀n Kî à NevìKùulîa, EkùwKùulîa, EmàmKùwɛ̂Chwɨlà Å‹Ì€" + - " KaemànKàzasɨ̀tânLàwosLÉ›banèSɛ̀n LushìaLetɨnshɨ̀nSɨ̀le LaÅ‹kàLàebÉ›lìa" + - "Lɛ̀sotùLètwÇŽnyìaLuzɨmbùʔLàtɨvaLebìaMòlokòMùnakuMòodovàMàdàgasɨkàChwɨ" + - "là fɨ MashàMɨ̀sɨ̀donyìaMalèMÇanmàMùŋgolìaChwɨlà mÌ€ MàlÇanà mɨ̀ Ekùw " + - "mòMàtìnekìMùlètanyìaMùŋtselàMaatàMùleshwɨ̀sMàdivèMàlawìMÉ›kɨzikùMàlÉ›s" + - "hìaMùzàmbîNàmibìaKàlèdonyìa È fÅ«ghÅ«NaedzàChwɨlà fɨ NufòʔGɨ̀anyɨNikàl" + - "agwàNedàlânNoowɛ̂ɛNÉ›kpâaNàwulùNiyuZìlân È fÅ«ghÅ«UmànKpanàmaKpÉ›lûKpole" + - "neshìa è FàlâŋnsìKpakpua Ginè È fÅ«ghÅ«FelèkpîKpakìsɨ̀tânKpulànSɛ̀n Kp" + - "iyɛ̀ à MikelɔŋKpitɨ̀kalèKpÇ’to LekoAdzɨmÄ kɨ Å‹gùŋ kɨ PalÉ›sɨtɨnyia à k" + - "ɨ Gazà kòKputuwgàKpàlawùKpalàgwɛ̂KatàLèyunyɔ̀ŋLùmanyìaLoshìaLùwandà" + - "Sawudi AlabiChwɨlà fɨ Solomwɨ̀nSÉ›chɛ̀lɛ̀sSùdânSuedɨ̀nSiÅ‹gàkpôoSɛ̀n È" + - "lenàSɨ̀lòvɨnyìaSɨ̀lòvɨkɨ̀aSilìa lûŋSàn MàlenùSɛ̀nɛ̀gâaSòmalìaSulènam" + - "èSawo Tɔ̀me à Kpèlènsikpɛ̀EsàvadòSilîaShÇ”azìlânChwɨla n Tɨtê à Kaek" + - "ùsChâTugùTaelànTàdzikìsɨ̀tânTuwkelawùÊs TaemòTekɨmènèsɨ̀tânTùneshìa" + - "TuÅ‹gàTeekìTèlenedà à TòbagùTuwvalùwTaewànTàanzanyìaYùkɛ̀lɛ̂YùgandàUS" + - "AYulùgwɛ̂Yùzɨ̀bÉ›kìsɨ̀tânVatikàn Sɨ̀tɛ̂Sɛ̀n Vinsɨ̀n à Gɨlenadi Ù tÄ“VÉ›" + - "Ì€nɛ̀zǔɛɛlàChwɨlà mÌ€ Vidzinyìa mÌ€ Bɨ̀letì mòU. S. Chwɨlà fɨ MbuÊ”mbuV" + - "ìyÉ›nàmVànÇ”atùwWales à FùwtuwnàSàmowàYÉ›mɛ̀nMàyotìAfɨlekà ghɨ Emàm gh" + - "òZambìaZìmbagbɛ̀", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0008, 0x0020, 0x0035, 0x004a, 0x0054, 0x005e, - 0x0068, 0x0078, 0x0081, 0x0081, 0x008f, 0x00a0, 0x00ac, 0x00bf, - 0x00c6, 0x00c6, 0x00d5, 0x00f5, 0x00fe, 0x010f, 0x011a, 0x0128, - 0x0133, 0x013a, 0x0143, 0x014f, 0x014f, 0x0159, 0x0163, 0x016b, - 0x016b, 0x0177, 0x0180, 0x0187, 0x0187, 0x0196, 0x01a0, 0x01ac, - 0x01b3, 0x01b3, 0x01db, 0x01f8, 0x01ff, 0x0209, 0x0215, 0x0227, - 0x022d, 0x0238, 0x023f, 0x0249, 0x0249, 0x025a, 0x0261, 0x027c, - 0x027c, 0x027c, 0x0286, 0x0299, 0x02a1, 0x02a1, 0x02ab, 0x02b4, - // Entry 40 - 7F - 0x02be, 0x02d5, 0x02e0, 0x02e0, 0x02e7, 0x02f5, 0x02fa, 0x02fa, - 0x0306, 0x0312, 0x031c, 0x031c, 0x0324, 0x0329, 0x033f, 0x034f, - 0x034f, 0x035b, 0x0362, 0x0376, 0x0383, 0x038e, 0x03a6, 0x03a6, - 0x03ac, 0x03b9, 0x03c5, 0x03cc, 0x03d1, 0x03de, 0x03f1, 0x03fa, - 0x03fa, 0x0408, 0x040c, 0x041a, 0x0422, 0x0422, 0x0422, 0x042c, - 0x0437, 0x043e, 0x0449, 0x0449, 0x0456, 0x0461, 0x046c, 0x046c, - 0x0472, 0x04aa, 0x04b4, 0x04ba, 0x04c5, 0x04cb, 0x04cb, 0x04d5, - 0x04dc, 0x04e5, 0x04ec, 0x04fb, 0x0505, 0x050f, 0x0517, 0x052a, - // Entry 80 - BF - 0x0539, 0x0548, 0x0550, 0x0565, 0x0573, 0x0579, 0x0581, 0x058f, - 0x059c, 0x05ab, 0x05b6, 0x05c0, 0x05cc, 0x05d7, 0x05df, 0x05e5, - 0x05ed, 0x05f4, 0x05fd, 0x05fd, 0x05fd, 0x060b, 0x061e, 0x062f, - 0x0634, 0x063c, 0x0647, 0x0647, 0x066e, 0x0679, 0x0686, 0x0691, - 0x0697, 0x06a4, 0x06ac, 0x06b4, 0x06bf, 0x06ca, 0x06d4, 0x06dd, - 0x06f5, 0x06fc, 0x0710, 0x071a, 0x0725, 0x072e, 0x0738, 0x0740, - 0x0748, 0x074c, 0x075e, 0x0763, 0x076b, 0x0772, 0x078e, 0x07a6, - 0x07af, 0x07be, 0x07c5, 0x07e1, 0x07ee, 0x07f9, 0x0832, 0x083b, - // Entry C0 - FF - 0x0844, 0x0850, 0x0855, 0x0855, 0x0862, 0x086c, 0x086c, 0x0873, - 0x087c, 0x0888, 0x08a0, 0x08af, 0x08b6, 0x08bf, 0x08cb, 0x08d9, - 0x08e9, 0x08e9, 0x08fa, 0x0906, 0x0913, 0x0921, 0x092a, 0x0934, - 0x0934, 0x0954, 0x095d, 0x095d, 0x0963, 0x096f, 0x096f, 0x098a, - 0x098e, 0x098e, 0x0993, 0x099a, 0x09ac, 0x09b6, 0x09c0, 0x09d4, - 0x09de, 0x09e5, 0x09eb, 0x0a01, 0x0a0a, 0x0a11, 0x0a1d, 0x0a2a, - 0x0a33, 0x0a33, 0x0a36, 0x0a41, 0x0a58, 0x0a6b, 0x0a8f, 0x0aa3, - 0x0acd, 0x0ae8, 0x0af2, 0x0afd, 0x0b10, 0x0b18, 0x0b18, 0x0b21, - // Entry 100 - 13F - 0x0b29, 0x0b42, 0x0b49, 0x0b55, - }, - }, - { // ak - "AndoraUnited Arab EmiratesAfganistanAntigua ne BaabudaAnguilaAlbeniaAame" + - "niaNÉ›dÉ›land AntelezAngolaAgyÉ›ntinaAmÉ›rika SamoaƆstriaƆstreliaArubaAz" + - "ebaegyanBosnia ne HÉ›zegovinaBaabadosBangladÉ›hyeBÉ›lgyiumBÉ”kina FasoBÉ”" + - "lgeriaBarenBurundiBÉ›ninBÉ›mudaBrunaeBoliviaBrazilBahamaButanBÉ”tswanaB" + - "É›larusBelizKanadaKongo (Zair)Afrika Finimfin ManKongoSwetzalandLa C" + - "ôte d’IvoireKook NsupÉ”wKyiliKamÉ›runKyaenaKolombiaKÉ”sta RikaKubaKepv" + - "É›dfo IslandsSaeprÉ”sKyÉ›k KurokÉ›seGyaamanGyibutiDÉ›nmakDÉ”menekaDÉ”menek" + - "a KurokÉ›seƆlgyeriaIkuwadÉ”ÆstoniaNisrimÆritreaSpainIthiopiaFinlandFig" + - "yiFÉ”lkman AelandMaekronehyiaFrÉ›nkyemanGabÉ”nAhendiman NkabomGrenadaGy" + - "É”gyeaFrÉ›nkye GayanaGaanaGyebraltaGreenmanGambiaGiniGuwadelupGini Ik" + - "uwetaGreekmanGuwatemalaGuamGini BisawGayanaHÉ”ndurasKrowehyiaHeitiHan" + - "gariIndÉ”nehyiaAerelandIsraelIndiaBritenfo HÉ”n Man WÉ” India Po No MuI" + - "rakIranAeslandItaliGyamekaGyÉ”danGyapanKÉ›nyaKɛɛgestanKambodiaKiribati" + - "KÉ”mÉ”rÉ”sSaint Kitts ne NÉ›vesEtifi KoriaAnaafo KoriaKuweteKemanfo Isla" + - "ndsKazakstanLaosLÉ›banÉ”nSaint LuciaLektenstaenSri LankaLaeberiaLÉ›sutu" + - "LituweniaLaksembÉ›gLatviaLibyaMorokoMÉ”nakoMÉ”ldovaMadagaskaMarshall Is" + - "landsMasedoniaMaliMiyanmaMÉ”ngoliaNorthern Mariana IslandsMatinikMÉ”re" + - "teniaMantseratMÉ”ltaMÉ”rehyeÉ”sMaldivesMalawiMÉ›ksikoMalehyiaMozambikNam" + - "ibiaKaledonia FoforoNigyÉ›NÉ”folk AelandNaegyeriaNekaraguwaNÉ›dÉ›landNɔɔ" + - "weNÉ›pÉ”lNaworuNiyuZiland FoforoOmanPanamaPeruFrÉ›nkye PÉ”lenehyiaPapua " + - "Guinea FoforoPhilippinesPakistanPolandSaint Pierre ne MiquelonPitcai" + - "rnPuÉ›to RikoPalestaen West Bank ne GazaPÉ”tugalPalauParaguayKataReyun" + - "iÉ”nRomeniaRÉ”hyeaRwandaSaudi ArabiaSolomon IslandsSeyhyÉ›lSudanSwedenS" + - "ingapÉ”Saint HelenaSloviniaSlovakiaSierra LeoneSan MarinoSenegalSomal" + - "iaSurinameSão Tomé and PríncipeÆl SalvadÉ”SiriaSwazilandTurks ne Caic" + - "os IslandsKyadTogoTaelandTajikistanTokelauTimÉ” BokaTÉ›kmÉ›nistanTunihy" + - "iaTongaTɛɛkiTrinidad ne TobagoTuvaluTaiwanTanzaniaUkrenUgandaAmÉ›rika" + - "YurugwaeUzbÉ›kistanVatican ManSaint Vincent ne GrenadinesVenezuelaBri" + - "tainfo Virgin IslandsAmÉ›rika Virgin IslandsViÉ›tnamVanuatuWallis ne F" + - "utunaSamoaYÉ›menMayÉ”teAfrika AnaafoZambiaZembabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x001a, 0x0024, 0x0036, 0x003d, 0x0044, - 0x004b, 0x005d, 0x0063, 0x0063, 0x006d, 0x007b, 0x0082, 0x008b, - 0x0090, 0x0090, 0x009a, 0x00af, 0x00b7, 0x00c3, 0x00cc, 0x00d8, - 0x00e1, 0x00e6, 0x00ed, 0x00f3, 0x00f3, 0x00fa, 0x0100, 0x0107, - 0x0107, 0x010d, 0x0113, 0x0118, 0x0118, 0x0121, 0x0129, 0x012e, - 0x0134, 0x0134, 0x0140, 0x0153, 0x0158, 0x0162, 0x0175, 0x0181, - 0x0186, 0x018e, 0x0194, 0x019c, 0x019c, 0x01a7, 0x01ab, 0x01bc, - 0x01bc, 0x01bc, 0x01c4, 0x01d3, 0x01da, 0x01da, 0x01e1, 0x01e8, - // Entry 40 - 7F - 0x01f1, 0x0204, 0x020d, 0x020d, 0x0215, 0x021d, 0x0223, 0x0223, - 0x022b, 0x0230, 0x0238, 0x0238, 0x023f, 0x0244, 0x0253, 0x025f, - 0x025f, 0x026a, 0x0270, 0x0280, 0x0287, 0x028f, 0x029e, 0x029e, - 0x02a3, 0x02ac, 0x02b4, 0x02ba, 0x02be, 0x02c7, 0x02d3, 0x02db, - 0x02db, 0x02e5, 0x02e9, 0x02f3, 0x02f9, 0x02f9, 0x02f9, 0x0302, - 0x030b, 0x0310, 0x0317, 0x0317, 0x0322, 0x032a, 0x0330, 0x0330, - 0x0335, 0x0359, 0x035d, 0x0361, 0x0368, 0x036d, 0x036d, 0x0374, - 0x037b, 0x0381, 0x0387, 0x0392, 0x039a, 0x03a2, 0x03ac, 0x03c1, - // Entry 80 - BF - 0x03cc, 0x03d8, 0x03de, 0x03ed, 0x03f6, 0x03fa, 0x0403, 0x040e, - 0x0419, 0x0422, 0x042a, 0x0431, 0x043a, 0x0444, 0x044a, 0x044f, - 0x0455, 0x045c, 0x0464, 0x0464, 0x0464, 0x046d, 0x047d, 0x0486, - 0x048a, 0x0491, 0x049a, 0x049a, 0x04b2, 0x04b9, 0x04c3, 0x04cc, - 0x04d2, 0x04dd, 0x04e5, 0x04eb, 0x04f3, 0x04fb, 0x0503, 0x050a, - 0x051a, 0x0520, 0x052e, 0x0537, 0x0541, 0x054b, 0x0552, 0x0559, - 0x055f, 0x0563, 0x0570, 0x0574, 0x057a, 0x057e, 0x0592, 0x05a5, - 0x05b0, 0x05b8, 0x05be, 0x05d6, 0x05de, 0x05e9, 0x0604, 0x060c, - // Entry C0 - FF - 0x0611, 0x0619, 0x061d, 0x061d, 0x0626, 0x062d, 0x062d, 0x0634, - 0x063a, 0x0646, 0x0655, 0x065d, 0x0662, 0x0668, 0x0670, 0x067c, - 0x0684, 0x0684, 0x068c, 0x0698, 0x06a2, 0x06a9, 0x06b0, 0x06b8, - 0x06b8, 0x06d0, 0x06dc, 0x06dc, 0x06e1, 0x06ea, 0x06ea, 0x0701, - 0x0705, 0x0705, 0x0709, 0x0710, 0x071a, 0x0721, 0x072b, 0x0738, - 0x0740, 0x0745, 0x074c, 0x075e, 0x0764, 0x076a, 0x0772, 0x0777, - 0x077d, 0x077d, 0x0785, 0x078d, 0x0798, 0x07a3, 0x07be, 0x07c7, - 0x07df, 0x07f6, 0x07fe, 0x0805, 0x0815, 0x081a, 0x081a, 0x0820, - // Entry 100 - 13F - 0x0827, 0x0834, 0x083a, 0x0842, - }, - }, - { // am - amRegionStr, - amRegionIdx, - }, - { // ar - arRegionStr, - arRegionIdx, - }, - {}, // ar-EG - { // as - "à¦à¦¨à§à¦Ÿà¦¾à§°à§à¦Ÿà¦¿à¦•à¦¾à¦¬à§à§°à¦¾à¦œà¦¿à¦²à¦¬à¦­à§‡à¦Ÿ দà§à¦¬à§€à¦ªà¦šà§€à¦¨à¦œà¦¾à§°à§à¦®à¦¾à¦¨à¦¿à¦«à§à§°à¦¾à¦¨à§à¦¸à¦¸à¦‚যà§à¦•à§à¦¤ ৰাজà§à¦¯à¦¦à¦•à§à¦·à¦¿à¦£ জৰà§à¦œà¦¿à¦¯" + - "়া আৰৠদকà§à¦·à¦¿à¦£ চেণà§à¦¡à§±à¦¿à¦šà§\u200c দà§à¦¬à§€à¦ªà¦¹à¦¾à§°à§à¦¡ দà§à¦¬à§€à¦ª আৰৠমেকà§\u200cডোনাল" + - "à§à¦¡ দà§à¦¬à§€à¦ªà¦­à¦¾à§°à¦¤à¦¬à§à§°à¦¿à¦Ÿà¦¿à¦¶à§à¦¬ ইণà§à¦¡à¦¿à¦¯à¦¼à¦¾à¦¨ মহাসাগৰৰ অঞà§à¦šà¦²à¦‡à¦Ÿà¦¾à¦²à¦¿à¦œà¦¾à¦ªà¦¾à¦¨à§°à§à¦šà¦¦à¦•à§à¦·à¦¿à¦£ " + - "ফà§à§°à¦¾à¦¨à§à¦¸à§° অঞà§à¦šà¦²à¦¯à§à¦•à§à¦¤à§°à¦¾à¦·à§à¦Ÿà§à§°à¦…জà§à¦žà¦¾à¦¤ বা অবৈধ অঞà§à¦šà¦²", - []uint16{ // 261 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, - 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, - 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, - 0x0021, 0x0036, 0x0036, 0x0036, 0x0052, 0x0052, 0x0052, 0x0052, - 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, - 0x0052, 0x0052, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, - 0x005b, 0x005b, 0x005b, 0x005b, 0x0073, 0x0073, 0x0073, 0x0073, - // Entry 40 - 7F - 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, - 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, - 0x0073, 0x0088, 0x0088, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0182, 0x0182, - 0x0182, 0x0182, 0x0182, 0x0182, 0x0182, 0x0182, 0x0182, 0x0182, - 0x018e, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01fd, 0x01fd, 0x01fd, - 0x01fd, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, - // Entry 80 - BF - 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, - 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, - 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, - 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, - 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, - 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, - 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, - 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, - // Entry C0 - FF - 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x0215, - 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, - 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, - 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, - 0x0215, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, - 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, - 0x0250, 0x0250, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, - 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, - // Entry 100 - 13F - 0x0274, 0x0274, 0x0274, 0x0274, 0x02aa, - }, - }, - { // asa - "AndoraFalme dha KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArme" + - "niaAntili za UholandhiAngolaAjentinaThamoa ya MarekaniAuthtriaAuthtr" + - "aliaArubaAdhabajaniBothnia na HedhegovinaBabadothiBangladeshiUbelgij" + - "iBukinafathoBulgariaBahareniBurundiBeniniBermudaBruneiBraziliBahamaB" + - "utaniBotthwanaBelaruthiBelidheKanadaJamhuri ya Kidemokrathia ya Kong" + - "oJamhuri ya Afrika ya KatiKongoUthwithiKodivaaVithiwa vya CookChileK" + - "ameruniChinaKolombiaKothtarikaKubaKepuvedeKuprothiJamhuri ya ChekiUj" + - "erumaniJibutiDenmakiDominikaJamhuri ya DominikaAljeriaEkwadoEthtonia" + - "MithriEritreaHithpaniaUhabeshiUfiniFijiVithiwa vya FalklandMikroneth" + - "iaUfaranthaGaboniUingeredhaGrenadaJojiaGwiyana ya UfaranthaGhanaJibr" + - "altaGrinlandiGambiaGineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebis" + - "auGuyanaHondurathiKorathiaHaitiHungariaIndonethiaAyalandiIthraeliInd" + - "iaIeneo la Uingeredha katika Bahari HindiIrakiUajemiAithlandiItaliaJ" + - "amaikaYordaniJapaniKenyaKirigizithtaniKambodiaKiribatiKomoroThantaki" + - "tdhi na NevithKorea KathkaziniKorea KuthiniKuwaitiVithiwa vya Kayman" + - "KazakithtaniLaothiLebanoniThantaluthiaLishenteniThirilankaLiberiaLet" + - "hotoLitwaniaLathembagiLativiaLibyaMorokoMonakoMoldovaBukiniVithiwa v" + - "ya MarshalMathedoniaMaliMyamaMongoliaVithiwa vya Mariana vya Kathkaz" + - "iniMartinikiMoritaniaMonttherratiMaltaMorithiModivuMalawiMekthikoMal" + - "ethiaMthumbijiNamibiaNyukaledoniaNijeriKithiwa cha NorfokNijeriaNika" + - "ragwaUholandhiNorweNepaliNauruNiueNyudhilandiOmaniPanamaPeruPolinesi" + - "a ya UfaranthaPapuaFilipinoPakithtaniPolandiThantapieri na MikeloniP" + - "itkairniPwetorikoPalestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUr" + - "uthiRwandaThaudiVithiwa vya TholomonShelisheliThudaniUthwidiThingapo" + - "oThantahelenaThloveniaTholvakiaThiera LeoniThamarinoThenegaliThomali" + - "aThurinamuThao Tome na PrincipeElsavadoThiriaUthwadhiVithiwa vya Tur" + - "ki na KaikoChadiTogoTailandiTajikithtaniTokelauTimori ya MasharikiTu" + - "rukimenithtaniTunithiaTongaUturukiTrinidad na TobagoTuvaluTaiwaniTad" + - "haniaUgandaMarekaniUrugwaiUdhibekithtaniVatikaniThantavithenti na Gr" + - "enadiniVenezuelaVithiwa vya Virgin vya UingeredhaVithiwa vya Virgin " + - "vya MarekaniVietinamuVanuatuWalith na FutunaThamoaYemeniMayotteAfrik" + - "a KuthiniDhambiaDhimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0017, 0x0023, 0x0035, 0x003d, 0x0044, - 0x004b, 0x005e, 0x0064, 0x0064, 0x006c, 0x007e, 0x0086, 0x0090, - 0x0095, 0x0095, 0x009f, 0x00b5, 0x00be, 0x00c9, 0x00d1, 0x00dc, - 0x00e4, 0x00ec, 0x00f3, 0x00f9, 0x00f9, 0x0100, 0x0106, 0x0106, - 0x0106, 0x010d, 0x0113, 0x0119, 0x0119, 0x0122, 0x012b, 0x0132, - 0x0138, 0x0138, 0x0159, 0x0172, 0x0177, 0x017f, 0x0186, 0x0196, - 0x019b, 0x01a3, 0x01a8, 0x01b0, 0x01b0, 0x01ba, 0x01be, 0x01c6, - 0x01c6, 0x01c6, 0x01ce, 0x01de, 0x01e7, 0x01e7, 0x01ed, 0x01f4, - // Entry 40 - 7F - 0x01fc, 0x020f, 0x0216, 0x0216, 0x021c, 0x0224, 0x022a, 0x022a, - 0x0231, 0x023a, 0x0242, 0x0242, 0x0247, 0x024b, 0x025f, 0x026a, - 0x026a, 0x0273, 0x0279, 0x0283, 0x028a, 0x028f, 0x02a3, 0x02a3, - 0x02a8, 0x02b0, 0x02b9, 0x02bf, 0x02c3, 0x02cc, 0x02d5, 0x02dc, - 0x02dc, 0x02e5, 0x02e9, 0x02f2, 0x02f8, 0x02f8, 0x02f8, 0x0302, - 0x030a, 0x030f, 0x0317, 0x0317, 0x0321, 0x0329, 0x0331, 0x0331, - 0x0336, 0x035d, 0x0362, 0x0368, 0x0371, 0x0377, 0x0377, 0x037e, - 0x0385, 0x038b, 0x0390, 0x039e, 0x03a6, 0x03ae, 0x03b4, 0x03ca, - // Entry 80 - BF - 0x03da, 0x03e7, 0x03ee, 0x0400, 0x040c, 0x0412, 0x041a, 0x0426, - 0x0430, 0x043a, 0x0441, 0x0448, 0x0450, 0x045a, 0x0461, 0x0466, - 0x046c, 0x0472, 0x0479, 0x0479, 0x0479, 0x047f, 0x0492, 0x049c, - 0x04a0, 0x04a5, 0x04ad, 0x04ad, 0x04cf, 0x04d8, 0x04e1, 0x04ed, - 0x04f2, 0x04f9, 0x04ff, 0x0505, 0x050d, 0x0515, 0x051e, 0x0525, - 0x0531, 0x0537, 0x0549, 0x0550, 0x0559, 0x0562, 0x0567, 0x056d, - 0x0572, 0x0576, 0x0581, 0x0586, 0x058c, 0x0590, 0x05a6, 0x05ab, - 0x05b3, 0x05bd, 0x05c4, 0x05db, 0x05e4, 0x05ed, 0x05f6, 0x05fb, - // Entry C0 - FF - 0x0600, 0x0608, 0x060e, 0x060e, 0x0617, 0x061e, 0x061e, 0x0624, - 0x062a, 0x0630, 0x0644, 0x064e, 0x0655, 0x065c, 0x0665, 0x0671, - 0x067a, 0x067a, 0x0683, 0x068f, 0x0698, 0x06a1, 0x06a9, 0x06b2, - 0x06b2, 0x06c7, 0x06cf, 0x06cf, 0x06d5, 0x06dd, 0x06dd, 0x06f7, - 0x06fc, 0x06fc, 0x0700, 0x0708, 0x0714, 0x071b, 0x072e, 0x073e, - 0x0746, 0x074b, 0x0752, 0x0764, 0x076a, 0x0771, 0x0779, 0x0779, - 0x077f, 0x077f, 0x0787, 0x078e, 0x079c, 0x07a4, 0x07bf, 0x07c8, - 0x07e9, 0x0808, 0x0811, 0x0818, 0x0828, 0x082e, 0x082e, 0x0834, - // Entry 100 - 13F - 0x083b, 0x0849, 0x0850, 0x0859, - }, - }, - { // ast - "Islla AscensiónAndorraEmiratos Ãrabes XuníosAfganistánAntigua y BarbudaA" + - "nguilaAlbaniaArmeniaAngolaArxentinaSamoa AmericanaAustriaAustraliaAr" + - "ubaIslles AlandAzerbaixánBosnia y HerzegovinaBarbadosBangladexBélxic" + - "aBFBulgariaBaḥréinBurundiBenínSan BartoloméLes BermudesBrunéiBolivia" + - "Caribe neerlandésBrasilLes BahamesButánIslla BouvetBotsuanaBielorrus" + - "iaBelizeCanadáIslles Cocos (Keeling)CDRepública CentroafricanaCGSuiz" + - "aCosta de MarfilIslles CookChileCamerúnChinaColombiaIslla Clipperton" + - "Costa RicaCubaCabu VerdeCuraçaoIslla ChristmasXipreChequiaAlemaniaDi" + - "ego GarciaDJDinamarcaDominicaRepública DominicanaArxeliaCeuta y Meli" + - "llaEcuadorEstoniaExiptuSáḥara OccidentalEritreaEspañaEtiopíaXunión E" + - "uropéaFinlandiaIslles FixiFalkland IslandsMicronesiaIslles FeroeFran" + - "ciaGabónReinu XuníuGranadaXeorxaGuyana FrancesaGuernseyGhanaXibralta" + - "rGroenlandiaGambiaGuineaGuadalupeGuinea EcuatorialGreciaIslles Xeorx" + - "a del Sur y Sandwich del SurGuatemalaGuamGuinea-BisáuGuyanaARE China" + - " de Ḥong KongIslles Heard y McDonaldHonduresCroaciaHaitíHungríaIslle" + - "s CanariesIndonesiaIrlandaIsraelIslla de ManIndiaTerritoriu Británic" + - "u del Océanu ÃndicuIraqIránIslandiaItaliaJerseyXamaicaXordaniaXapónK" + - "eniaKirguistánCamboyaKiribatiLes ComoresSaint Kitts y NevisCorea del" + - " NorteCorea del SurKuwaitIslles CaimánKazakstánLaosLíbanuSanta Llucí" + - "aLiechtensteinSri LankaLiberiaLSLituaniaLuxemburguLetoniaLibiaMarrue" + - "cosMónacuMoldaviaMontenegruSaint MartinMadagascarIslles MarshallMace" + - "doniaMalíMyanmar (Birmania)MongoliaARE China de MacáuIslles Marianes" + - " del NorteLa MartinicaMauritaniaMontserratMaltaMauriciuLes MaldivesM" + - "alauiMXMalasiaMozambiqueNamibiaNueva CaledoniaEl NíxerIslla NorfolkN" + - "ixeriaNicaraguaPaíses BaxosNoruegaNepalNauruNiueNueva ZelandaOmánPan" + - "amáPerúPolinesia FrancesaPapúa Nueva GuineaFilipinesPakistanPoloniaS" + - "aint Pierre y MiquelonIslles PitcairnPuertu RicuPSPortugalPaláuParag" + - "uayQatarOceanía esteriorReuniónRumaníaSerbiaRusiaRuandaArabia Saudit" + - "aIslles SalomónSCSudánSueciaSingapurSHEsloveniaSvalbard ya Islla Jan" + - " MayenEslovaquiaSLSan MarínSenegalSomaliaSurinamSudán del SurSantu T" + - "omé y PríncipeEl SalvadorSint MaartenSiriaSuazilandiaTristán da Cunh" + - "aIslles Turques y CaicosChadTierres Australes FrancesesTGTailandiaTa" + - "xiquistánTokeláuTimor OrientalTurkmenistánTuniciaTongaTurquíaTrinidá" + - " y TobaguTuvaluTaiwánTanzaniaUcraínaUgandaIslles Perifériques Menore" + - "s de los EE.XX.Estaos XuníosUruguayUzbequistánCiudá del VaticanuSan " + - "Vicente y GranadinesVenezuelaIslles Vírxenes BritániquesIslles Vírxe" + - "nes AmericanesVietnamVanuatuWallis y FutunaSamoaXKYemenMayotteSudáfr" + - "icaZambiaZimbabueRexón desconocidaMunduÃfricaNorteaméricaAmérica del" + - " SurOceaníaÃfrica OccidentalAmérica CentralÃfrica OrientalÃfrica del" + - " NorteÃfrica CentralÃfrica del SurAméricaAmérica del NorteCaribeAsia" + - " OrientalAsia del SurSureste AsiáticuEuropa del SurAustralasiaMelane" + - "siaRexón de MicronesiaPolinesiaAsiaAsia CentralAsia OccidentalEuropa" + - "Europa OrientalEuropa del NorteEuropa OccidentalAmérica Llatina", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0010, 0x0017, 0x002f, 0x003a, 0x004b, 0x0052, 0x0059, - 0x0060, 0x0060, 0x0066, 0x0066, 0x006f, 0x007e, 0x0085, 0x008e, - 0x0093, 0x009f, 0x00aa, 0x00be, 0x00c6, 0x00cf, 0x00d7, 0x00d9, - 0x00e1, 0x00eb, 0x00f2, 0x00f8, 0x0106, 0x0112, 0x0119, 0x0120, - 0x0132, 0x0138, 0x0143, 0x0149, 0x0155, 0x015d, 0x0168, 0x016e, - 0x0175, 0x018b, 0x018d, 0x01a6, 0x01a8, 0x01ad, 0x01bc, 0x01c7, - 0x01cc, 0x01d4, 0x01d9, 0x01e1, 0x01f1, 0x01fb, 0x01ff, 0x0209, - 0x0211, 0x0220, 0x0225, 0x022c, 0x0234, 0x0240, 0x0242, 0x024b, - // Entry 40 - 7F - 0x0253, 0x0268, 0x026f, 0x027e, 0x0285, 0x028c, 0x0292, 0x02a6, - 0x02ad, 0x02b4, 0x02bc, 0x02cc, 0x02d5, 0x02e0, 0x02f0, 0x02fa, - 0x0306, 0x030d, 0x0313, 0x031f, 0x0326, 0x032c, 0x033b, 0x0343, - 0x0348, 0x0351, 0x035c, 0x0362, 0x0368, 0x0371, 0x0382, 0x0388, - 0x03b0, 0x03b9, 0x03bd, 0x03ca, 0x03d0, 0x03e8, 0x03ff, 0x0407, - 0x040e, 0x0414, 0x041c, 0x042b, 0x0434, 0x043b, 0x0441, 0x044d, - 0x0452, 0x047b, 0x047f, 0x0484, 0x048c, 0x0492, 0x0498, 0x049f, - 0x04a7, 0x04ad, 0x04b2, 0x04bd, 0x04c4, 0x04cc, 0x04d7, 0x04ea, - // Entry 80 - BF - 0x04f9, 0x0506, 0x050c, 0x051a, 0x0524, 0x0528, 0x052f, 0x053c, - 0x0549, 0x0552, 0x0559, 0x055b, 0x0563, 0x056d, 0x0574, 0x0579, - 0x0582, 0x0589, 0x0591, 0x059b, 0x05a7, 0x05b1, 0x05c0, 0x05c9, - 0x05ce, 0x05e0, 0x05e8, 0x05fb, 0x0614, 0x0620, 0x062a, 0x0634, - 0x0639, 0x0641, 0x064d, 0x0653, 0x0655, 0x065c, 0x0666, 0x066d, - 0x067c, 0x0685, 0x0692, 0x0699, 0x06a2, 0x06af, 0x06b6, 0x06bb, - 0x06c0, 0x06c4, 0x06d1, 0x06d6, 0x06dd, 0x06e2, 0x06f4, 0x0707, - 0x0710, 0x0718, 0x071f, 0x0736, 0x0745, 0x0750, 0x0752, 0x075a, - // Entry C0 - FF - 0x0760, 0x0768, 0x076d, 0x077e, 0x0786, 0x078e, 0x0794, 0x0799, - 0x079f, 0x07ad, 0x07bc, 0x07be, 0x07c4, 0x07ca, 0x07d2, 0x07d4, - 0x07dd, 0x07f8, 0x0802, 0x0804, 0x080e, 0x0815, 0x081c, 0x0823, - 0x0831, 0x0848, 0x0853, 0x085f, 0x0864, 0x086f, 0x0880, 0x0897, - 0x089b, 0x08b6, 0x08b8, 0x08c1, 0x08cd, 0x08d5, 0x08e3, 0x08f0, - 0x08f7, 0x08fc, 0x0904, 0x0915, 0x091b, 0x0922, 0x092a, 0x0932, - 0x0938, 0x0962, 0x0970, 0x0977, 0x0983, 0x0996, 0x09ae, 0x09b7, - 0x09d4, 0x09ef, 0x09f6, 0x09fd, 0x0a0c, 0x0a11, 0x0a13, 0x0a18, - // Entry 100 - 13F - 0x0a1f, 0x0a29, 0x0a2f, 0x0a37, 0x0a49, 0x0a4e, 0x0a55, 0x0a62, - 0x0a72, 0x0a7a, 0x0a8c, 0x0a9c, 0x0aac, 0x0abd, 0x0acc, 0x0adb, - 0x0ae3, 0x0af5, 0x0afb, 0x0b08, 0x0b14, 0x0b25, 0x0b33, 0x0b3e, - 0x0b47, 0x0b5b, 0x0b64, 0x0b68, 0x0b74, 0x0b83, 0x0b89, 0x0b98, - 0x0ba8, 0x0bb9, 0x0bc9, - }, - }, - { // az - azRegionStr, - azRegionIdx, - }, - { // az-Cyrl - "ÐзәрбајҹанБразилијаЧинÐлманијаФранÑаҺиндиÑтанИталијаЈапонијаРуÑијаÐмерик" + - "а Бирләшмиш Штатлары", - []uint16{ // 243 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, - 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, - 0x0014, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, - 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, - 0x0026, 0x0026, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, - 0x002c, 0x002c, 0x002c, 0x002c, 0x003c, 0x003c, 0x003c, 0x003c, - // Entry 40 - 7F - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, - 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, - 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, - 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, - 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x0068, 0x0068, 0x0068, - 0x0068, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, - // Entry 80 - BF - 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, - 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, - 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, - 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, - 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, - 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, - 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, - 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, - // Entry C0 - FF - 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0084, - 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, - 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, - 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, - 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, - 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, - 0x0084, 0x0084, 0x00b6, - }, - }, - { // bas - "Àŋdɔ̂rÀdnà i Bilɔ̀ŋ bi ArÄbìàÀfgànìstâŋÀŋtigà É“É” BàrbudàÀŋgiyàÀlbanìàÀrm" + - "enìàÀŋtîy ǹlɛ̀ndiÀŋgolàÀrgàŋtinàÒstrÇkÃ’stralìàÀrubàÀzɛ̀rbajàŋBòhnià " + - "ÆrzègòvinàBàrbadòBàŋglàdɛ̂sBÉ›lgyùmBùrkìnà FasòBùlgarìàBàraìnBùrundì" + - "Bènɛ̂ŋBɛ̀rmudàBruneiBòlivìàBràsîlBàhamàsBùtânBòdsùanàBèlarùsBèlîsKàn" + - "adàKòŋgo ìkɛŋiŊ̀ɛm AfrÄ«kàKòŋgoSùwîsMàŋ mi Njɔ̂kBìòn bi KookKìlîKàmɛ̀" + - "rûnKinàKɔ̀lÉ”mbìàKòstà RikàKubàKabwɛ᷆rKipròJamânJìbutìDànmârkDòmnîkDò" + - "mnikàÀlgerìàÈkwàtorìàÈstonìàÈgîptòÈrìtrěàPànyaÈtìopìàFìnlândFijiBìòn" + - " bi FalklandMìkrònesìàPùlàsi / Fɛ̀lɛ̀nsi /Gàbɔ̂ŋÀdnà i Lɔ̂ŋGrènadàGè" + - "É”rgìàGùyanà PùlàsiGanàGìlbràtârGrÇnlàndGàmbiàGìnêGwàdèlûpGìne Èkwàt" + - "orìàGrÇkyàGwàtèmalàGùâmGìne BìsàôGùyanàƆ̀ŋduràsKròasìàÀitìƆ̀ŋgriìInd" + - "ònèsiàÌrlândIsràɛ̂lIndìàBìtèk bi ÅŠgisì i TÅ«yÉ› ĪndìàÌrâkÃŒrâŋÌslandìà" + - "ÃŒtalìàJàmàikàYɔ̀rdaniàKenìàKìrgìzìstàŋKàmbodìàKìrìbatìKɔ̀mɔ̂rNûmpub" + - "i Kîts nì NevìsKɔ̀re ì Ŋ̀ɔmbÉ”kKɔ̀re ì ÅŠÌ€wɛ̀lmbÉ”kKòwêtBìòn bi KaymànK" + - "àzàkstâŋLàôsLèbanònNûmpubi LusìLigstÉ›ntànSrìlaÅ‹kàLìberìàLesòtòLìtùa" + - "nìàLùgsàmbûrLàdviàLibìàMàrokòMònakòMoldavìàMàdàgàskârBìòn bi MarcàlM" + - "àsèdonìàMàliMyànmârMòŋgolìàBìòn bi Marìanà ŋ̀ɔmbÉ”kMàrtìnîkMòrìtanìà" + - "Mɔ̀ŋseràtMaltàMòrîsMàldîfMàlàwiMɛ̀gsîkMàlɛ̀sìàMòsàmbîkNàmibìàKàlèdon" + - "ìà Yɔ̀ndÉ”Nìjɛ̂rÃ’n i NÉ”rfɔ̂kNìgerìàNìkàragwàǸlÉ›ndiNɔ̀rvegìàNèpâlNerù" + - "Nìuɛ̀Sìlând Yɔ̀ndɔÒmânPànàmaPèrûPòlìnesìà PùlàsiGìne ì PàpuFìlìpînPà" + - "kìstânPòlàndNûmpubi Petrò nì MikèlônPìdkaìrnPɔ̀rtò RikòPàlɛ̀htinà Hy" + - "ɔ̀ŋg nì GazàPɔ̀tÉ”kìPàlaùPàràgwêKàtârRèunyɔ̂ŋRùmanìàRuslàndRùandàSàu" + - "di ÀrabìàBìòn bi SalÅmòSèsɛ̂lSùdâŋSwedɛ̀nSìŋgàpûrNûmpubi ÆlÄ“nàSlòvan" + - "ìàSlòvakìàSièra Lèɔ̂nNûmpubi MÄatìnSènègâlSòmalìàSùrinâmSào Tòme É“É”" + - " Prɛ̀ŋcipèSàlvàdɔ̂rSirìàSwàzìlândBìòn bi Tûrks nì KalkòsCâdTògoTaylà" + - "ndTàjìkìstaÅ‹TòkèlaòTìmɔ̂r lìkòlTùrgmènìstânTùnisìàTɔŋgàTùrkâyTrìnidà" + - "d É“É” TòbagòTùvàlùTàywânTànzàniàÙkrɛ̌nÙgandàÀdnà i Bilɔ̀ŋ bi AmerkàÙr" + - "ùgwêyÙzbèkìstânVàtìkâŋNûmpubi Vɛ̂ŋsâŋ nì grènàdînVènèzùelàBìòn bi k" + - "É”nji bi ÅŠgisìBìòn bi kÉ”nji bi U.S.Vìɛ̀dnâmVànùatùWàlîs nì FùtunàSàm" + - "oàYèmɛ̂nMàyɔ̂tÀfrÇkà Sɔ̀ZàmbiàZìmbàbwê", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x000a, 0x0029, 0x0038, 0x0050, 0x0059, 0x0063, - 0x006d, 0x0080, 0x0089, 0x0089, 0x0096, 0x0096, 0x009e, 0x00a9, - 0x00b0, 0x00b0, 0x00bf, 0x00d6, 0x00df, 0x00ee, 0x00f7, 0x0107, - 0x0112, 0x011a, 0x0123, 0x012d, 0x012d, 0x0138, 0x013e, 0x0148, - 0x0148, 0x0150, 0x0159, 0x0160, 0x0160, 0x016b, 0x0174, 0x017b, - 0x0183, 0x0183, 0x0193, 0x01a3, 0x01aa, 0x01b1, 0x01c1, 0x01cf, - 0x01d5, 0x01e1, 0x01e6, 0x01f4, 0x01f4, 0x0201, 0x0206, 0x0210, - 0x0210, 0x0210, 0x0216, 0x0216, 0x021c, 0x021c, 0x0224, 0x022d, - // Entry 40 - 7F - 0x0235, 0x023e, 0x0248, 0x0248, 0x0255, 0x025f, 0x0268, 0x0268, - 0x0273, 0x0279, 0x0284, 0x0284, 0x028d, 0x0291, 0x02a3, 0x02b1, - 0x02b1, 0x02cb, 0x02d5, 0x02e5, 0x02ee, 0x02f9, 0x030a, 0x030a, - 0x030f, 0x031b, 0x0325, 0x032d, 0x0333, 0x033e, 0x0351, 0x0359, - 0x0359, 0x0365, 0x036b, 0x0379, 0x0381, 0x0381, 0x0381, 0x038d, - 0x0397, 0x039d, 0x03a8, 0x03a8, 0x03b4, 0x03bc, 0x03c6, 0x03c6, - 0x03cd, 0x03f1, 0x03f7, 0x03fe, 0x0409, 0x0412, 0x0412, 0x041c, - 0x0428, 0x0428, 0x042f, 0x043f, 0x044a, 0x0455, 0x0460, 0x0479, - // Entry 80 - BF - 0x048f, 0x04a9, 0x04b0, 0x04c1, 0x04ce, 0x04d4, 0x04dd, 0x04eb, - 0x04f7, 0x0502, 0x050c, 0x0514, 0x0520, 0x052c, 0x0534, 0x053b, - 0x0543, 0x054b, 0x0555, 0x0555, 0x0555, 0x0563, 0x0574, 0x0581, - 0x0586, 0x058f, 0x059b, 0x059b, 0x05ba, 0x05c5, 0x05d2, 0x05df, - 0x05e5, 0x05ec, 0x05f4, 0x05fc, 0x0606, 0x0613, 0x061e, 0x0628, - 0x063f, 0x0648, 0x0658, 0x0662, 0x066e, 0x0676, 0x0683, 0x068a, - 0x068f, 0x0697, 0x06a9, 0x06af, 0x06b7, 0x06bd, 0x06d3, 0x06e1, - 0x06eb, 0x06f6, 0x06fe, 0x071b, 0x0725, 0x0734, 0x0756, 0x0761, - // Entry C0 - FF - 0x0768, 0x0772, 0x0779, 0x0779, 0x0785, 0x078f, 0x078f, 0x0797, - 0x079f, 0x07af, 0x07c1, 0x07ca, 0x07d2, 0x07db, 0x07e7, 0x07f8, - 0x0803, 0x0803, 0x080e, 0x081d, 0x082e, 0x0838, 0x0842, 0x084b, - 0x084b, 0x0868, 0x0875, 0x0875, 0x087c, 0x0888, 0x0888, 0x08a4, - 0x08a8, 0x08a8, 0x08ad, 0x08b5, 0x08c3, 0x08cd, 0x08de, 0x08ee, - 0x08f8, 0x0900, 0x0908, 0x0920, 0x0929, 0x0931, 0x093c, 0x0945, - 0x094d, 0x094d, 0x096a, 0x0974, 0x0982, 0x098d, 0x09b2, 0x09bf, - 0x09da, 0x09f2, 0x09fe, 0x0a08, 0x0a1c, 0x0a23, 0x0a23, 0x0a2c, - // Entry 100 - 13F - 0x0a35, 0x0a44, 0x0a4c, 0x0a57, - }, - }, - { // be - "ÐндораÐб’ÑÐ´Ð½Ð°Ð½Ñ‹Ñ ÐрабÑÐºÑ–Ñ Ð­Ð¼Ñ–Ñ€Ð°Ñ‚Ñ‹ÐфганіÑтанÐнтыгуа Ñ– БарбудаÐнгільÑÐлбан" + - "Ñ–ÑÐрменіÑÐідÑрландÑÐºÑ–Ñ ÐнтылыÐнголаÐнтарктыкаÐргенцінаÐмерыканÑкае " + - "СамоаÐÑžÑтрыÑÐÑžÑтраліÑÐрубаÐландÑÐºÑ–Ñ Ð°ÑтравыÐзербайджанБоÑÐ½Ñ–Ñ Ñ– Герц" + - "агавінаБарбадаÑБангладÑшБельгіÑБуркіна-ФаÑоБалгарыÑБахрÑйнБурундзіБ" + - "енінСен-БартÑльміБермудÑÐºÑ–Ñ Ð°ÑтравыБрунейБалівіÑБразіліÑБагамыБутан" + - "Ð‘ÑƒÐ²Ñ Ð²Ð¾ÑтраўБатÑванаБеларуÑьБелізКанадаКакоÑÐ°Ð²Ñ‹Ñ Ð°ÑтравыКонга, ДÑма" + - "ÐºÑ€Ð°Ñ‚Ñ‹Ñ‡Ð½Ð°Ñ Ð ÑÑпублікаЦÑнтральна-ÐфрыканÑÐºÐ°Ñ Ð ÑÑпублікаКонгаШвейцарыÑ" + - "Кот-д’ІвуарÐÑтравы КукаЧыліКамерунКітайКалумбіÑКоÑта-РыкаКубаКаба-Ð’" + - "ердÑВоÑтраў КюраÑааВоÑтраў РажÑтваКіпрЧÑÑ…Ñ–ÑГерманіÑДжыбуціДаніÑДамі" + - "нікаДамініканÑÐºÐ°Ñ Ð ÑÑпублікаÐлжырЭквадорЭÑтоніÑЕгіпетЗаходнÑÑ Ð¡Ð°Ñ…Ð°Ñ€" + - "аЭрытрÑÑІÑпаніÑЭфіопіÑЕўрапейÑкі ЗвÑзФінлÑндыÑФіджыФолклÑндÑÐºÑ–Ñ Ð°ÑÑ‚" + - "равыМікранезіÑФарÑÑ€ÑÐºÑ–Ñ Ð°ÑтравыФранцыÑГабонВÑлікабрытаніÑГрÑнадаГру" + - "зіÑФранцузÑÐºÐ°Ñ Ð“Ð²Ñ–ÑнаВоÑтраў ГернÑіГанаГібралтарГрÑнландыÑГамбіÑГві" + - "неÑГвадÑлупаЭкватарыÑÐ»ÑŒÐ½Ð°Ñ Ð“Ð²Ñ–Ð½ÐµÑГрÑцыÑÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ Ð”Ð¶Ð¾Ñ€Ð´Ð¶Ñ‹Ñ Ñ– Паўднёв" + - "Ñ‹Ñ Ð¡Ð°Ð½Ð´Ð²Ñ–Ñ‡Ð°Ð²Ñ‹ аÑтравыГватÑмалаГуамГвінеÑ-БіÑауГаÑнаГон-Конг, Кітай " + - "(СÐР)ВоÑтраў Херд Ñ– ÐÑтравы МакдоналдГандураÑХарватыÑГаіціВенгрыÑІнд" + - "анезіÑІрландыÑІзраільВоÑтраў ÐœÑнІндыÑБрытанÑÐºÐ°Ñ Ñ‚ÑÑ€Ñ‹Ñ‚Ð¾Ñ€Ñ‹Ñ Ñž ІндыйÑк" + - "ім акіÑнеІракІранІÑландыÑІталіÑВоÑтраў ДжÑÑ€ÑіЯмайкаІарданіÑЯпоніÑКе" + - "ніÑКыргызÑтанКамбоджаКірыбаціКаморÑÐºÑ–Ñ ÐÑтравыСент-ÐšÑ–Ñ‚Ñ Ñ– ÐевіÑПаўн" + - "Ð¾Ñ‡Ð½Ð°Ñ ÐšÐ°Ñ€ÑÑÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ ÐšÐ°Ñ€ÑÑКувейтКайманавы аÑтравыКазахÑтанЛаоÑЛіван" + - "Сент-ЛюÑÑ–ÑЛіхтÑнштÑйнШры-ЛанкаЛіберыÑЛеÑотаЛітваЛюкÑембургЛатвіÑЛів" + - "Ñ–ÑМарокаМанакаМалдоваЧарнагорыÑМадагаÑкарМаршалавы ÐÑтравыМакедоніÑ" + - ", БЮРМаліМ’ÑнмаМанголіÑМакао, Кітай (СÐР)ÐŸÐ°ÑžÐ½Ð¾Ñ‡Ð½Ñ‹Ñ ÐœÐ°Ñ€Ñ‹ÑнÑÐºÑ–Ñ Ð°Ñтрав" + - "ыМарцінікаМаўрытаніÑМантÑератМальтаМаўрыкійМальдывыМалавіМекÑікаМал" + - "айзіÑМазамбікÐамібіÑÐÐ¾Ð²Ð°Ñ ÐšÐ°Ð»ÐµÐ´Ð¾Ð½Ñ–ÑÐігерВоÑтраў ÐорфалкÐігерыÑÐікар" + - "агуаÐідÑрландыÐарвегіÑÐепалÐауруÐіуÑÐÐ¾Ð²Ð°Ñ Ð—ÐµÐ»Ð°Ð½Ð´Ñ‹ÑÐманПанамаПеруФра" + - "нцузÑÐºÐ°Ñ ÐŸÐ°Ð»Ñ–Ð½ÐµÐ·Ñ–ÑПапуа — ÐÐ¾Ð²Ð°Ñ Ð“Ð²Ñ–Ð½ÐµÑФіліпіныПакіÑтанПольшчаСен-П’" + - "ер Ñ– МікелонÐÑтравы ПіткÑрнПуÑрта-РыкаПалеÑтынÑÐºÑ–Ñ Ñ‚ÑрыторыіПартуга" + - "ліÑÐŸÐ°Ð»Ð°ÑƒÐŸÐ°Ñ€Ð°Ð³Ð²Ð°Ð¹ÐšÐ°Ñ‚Ð°Ñ€Ð’Ð¾Ð½ÐºÐ°Ð²Ð°Ñ ÐкіÑніÑРÑюньёнРумыніÑСербіÑРаÑÑ–ÑРуанд" + - "аСаудаўÑÐºÐ°Ñ ÐравіÑСаламонавы ÐÑтравыСейшÑльÑÐºÑ–Ñ ÐÑтравыСуданШвецыÑС" + - "інгапурСвÑтой Ðлены, ВоÑтраўСлавеніÑСвальбард (Паўночна-УÑходнÑÑ Ð—Ñ" + - "млÑ) Ñ– Ян-МаенСлавакіÑСьера-ЛеонÑСан-МарынаСенегалСамаліСурынамСан-" + - "Ð¢Ð°Ð¼Ñ Ñ– ПрынÑіпіСальвадорСірыÑÐ¡Ð²Ð°Ð·Ñ–Ð»ÐµÐ½Ð´Ð¦Ñ‘Ñ€ÐºÑ Ñ– КайкаÑЧадФранцузÑÐºÑ–Ñ " + - "ÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ñ‹Ñ Ñ‚ÑрыторыіТогаТайландТаджыкіÑтанТакелауУÑходні ТыморТуркме" + - "ніÑтанТуніÑТонгаТурцыÑТрынідад Ñ– ТабагаТувалуТайваньТанзаніÑУкраіна" + - "Ð£Ð³Ð°Ð½Ð´Ð°Ð—Ð»ÑƒÑ‡Ð°Ð½Ñ‹Ñ Ð¨Ñ‚Ð°Ñ‚Ñ‹ ÐмерыкіУругвайУзбекіÑтанВатыканСент-ВінÑент Ñ– " + - "ГрÑнадзіныВенеÑуÑлаБрытанÑÐºÑ–Ñ Ð’Ñ–Ñ€Ð³Ñ–Ð½ÑÐºÑ–Ñ Ð°ÑтравыÐмерыканÑÐºÑ–Ñ Ð’Ñ–Ñ€Ð³Ñ–Ð½" + - "ÑÐºÑ–Ñ Ð°ÑÑ‚Ñ€Ð°Ð²Ñ‹Ð’â€™ÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ£Ð¾Ð»Ñ–Ñ Ñ– ФутунаСамоаЕменВоÑтраў МаётаПаўдн" + - "ёва-ÐфрыканÑÐºÐ°Ñ Ð ÑÑпублікаЗамбіÑЗімбабвÑÐевÑдомы Ñ€ÑгіёнСветÐфрыкаПа" + - "ÑžÐ½Ð¾Ñ‡Ð½Ð°Ñ ÐмÑÑ€Ñ‹ÐºÐ°ÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ ÐмÑрыкаÐкіÑніÑЗаходнÑÑ ÐфрыкаЦÑÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ Ð" + - "мÑрыкаУÑходнÑÑ ÐÑ„Ñ€Ñ‹ÐºÐ°ÐŸÐ°ÑžÐ½Ð¾Ñ‡Ð½Ð°Ñ ÐфрыкаЦÑÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ ÐÑ„Ñ€Ñ‹ÐºÐ°ÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ ÐÑ„" + - "Ñ€Ñ‹ÐºÐ°ÐŸÐ°ÑžÐ½Ð¾Ñ‡Ð½Ð°Ñ Ñ– ÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ ÐмерыкіЗШРі КанадаКарыбÑÐºÑ–Ñ Ð°ÑтравыУÑход" + - "нÑÑ ÐзіÑÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ ÐзіÑПаўднёва-УÑходнÑÑ ÐзіÑÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ Ð•ÑžÑ€Ð¾Ð¿Ð°ÐÑžÑтрал" + - "Ñ–Ñ Ñ– ÐÐ¾Ð²Ð°Ñ Ð—ÑландыÑПалінезіÑÐзіÑЦÑÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ ÐзіÑЗаходнÑÑ ÐзіÑЕўропа" + - "УÑходнÑÑ Ð•ÑžÑ€Ð¾Ð¿Ð°ÐŸÐ°ÑžÐ½Ð¾Ñ‡Ð½Ð°Ñ Ð•ÑžÑ€Ð¾Ð¿Ð°Ð—Ð°Ñ…Ð¾Ð´Ð½ÑÑ Ð•ÑžÑ€Ð¾Ð¿Ð°", - []uint16{ // 290 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x000c, 0x0041, 0x0055, 0x0075, 0x0083, 0x0091, - 0x009f, 0x00c6, 0x00d2, 0x00e6, 0x00f8, 0x011b, 0x0129, 0x013b, - 0x0145, 0x0166, 0x017c, 0x01a2, 0x01b2, 0x01c4, 0x01d2, 0x01e9, - 0x01f9, 0x0207, 0x0217, 0x0221, 0x023a, 0x025d, 0x0269, 0x0277, - 0x0277, 0x0287, 0x0293, 0x029d, 0x02b4, 0x02c4, 0x02d4, 0x02de, - 0x02ea, 0x030b, 0x0346, 0x0386, 0x0390, 0x03a2, 0x03b8, 0x03cf, - 0x03d7, 0x03e5, 0x03ef, 0x03ff, 0x03ff, 0x0412, 0x041a, 0x042d, - 0x044a, 0x0467, 0x046f, 0x0479, 0x0489, 0x0489, 0x0497, 0x04a1, - // Entry 40 - 7F - 0x04b1, 0x04e0, 0x04ea, 0x04ea, 0x04f8, 0x0506, 0x0512, 0x052f, - 0x053d, 0x054b, 0x0559, 0x0576, 0x0588, 0x0592, 0x05b9, 0x05cd, - 0x05ee, 0x05fc, 0x0606, 0x0622, 0x0630, 0x063c, 0x065f, 0x067a, - 0x0682, 0x0694, 0x06a8, 0x06b4, 0x06c0, 0x06d2, 0x06fb, 0x0707, - 0x0764, 0x0776, 0x077e, 0x0795, 0x079f, 0x07c3, 0x07ff, 0x080f, - 0x081f, 0x0829, 0x0837, 0x0837, 0x0849, 0x0859, 0x0867, 0x087c, - 0x0886, 0x08d0, 0x08d8, 0x08e0, 0x08f0, 0x08fc, 0x0917, 0x0923, - 0x0933, 0x093f, 0x0949, 0x095d, 0x096d, 0x097d, 0x099e, 0x09bd, - // Entry 80 - BF - 0x09da, 0x09f7, 0x0a03, 0x0a24, 0x0a36, 0x0a3e, 0x0a48, 0x0a5b, - 0x0a71, 0x0a82, 0x0a90, 0x0a9c, 0x0aa6, 0x0aba, 0x0ac6, 0x0ad0, - 0x0adc, 0x0ae8, 0x0af6, 0x0b0a, 0x0b0a, 0x0b1e, 0x0b3f, 0x0b59, - 0x0b61, 0x0b6e, 0x0b7e, 0x0b9d, 0x0bd3, 0x0be5, 0x0bf9, 0x0c0b, - 0x0c17, 0x0c27, 0x0c37, 0x0c43, 0x0c51, 0x0c61, 0x0c71, 0x0c7f, - 0x0c9c, 0x0ca6, 0x0cc3, 0x0cd1, 0x0ce3, 0x0cf7, 0x0d07, 0x0d11, - 0x0d1b, 0x0d23, 0x0d3e, 0x0d46, 0x0d52, 0x0d5a, 0x0d83, 0x0da9, - 0x0db9, 0x0dc9, 0x0dd7, 0x0df9, 0x0e16, 0x0e2b, 0x0e56, 0x0e6a, - // Entry C0 - FF - 0x0e74, 0x0e84, 0x0e8e, 0x0ead, 0x0ebb, 0x0ec9, 0x0ed5, 0x0edf, - 0x0eeb, 0x0f0c, 0x0f2f, 0x0f54, 0x0f5e, 0x0f6a, 0x0f7a, 0x0fa1, - 0x0fb1, 0x1003, 0x1013, 0x1028, 0x103b, 0x1049, 0x1055, 0x1063, - 0x1063, 0x1086, 0x1098, 0x1098, 0x10a2, 0x10b4, 0x10b4, 0x10ce, - 0x10d4, 0x1110, 0x1118, 0x1126, 0x113c, 0x114a, 0x1163, 0x117b, - 0x1185, 0x118f, 0x119b, 0x11bb, 0x11c7, 0x11d5, 0x11e5, 0x11f3, - 0x11ff, 0x11ff, 0x1229, 0x1237, 0x124b, 0x1259, 0x1288, 0x129a, - 0x12d2, 0x130e, 0x131d, 0x132b, 0x1345, 0x134f, 0x134f, 0x1357, - // Entry 100 - 13F - 0x1370, 0x13ac, 0x13b8, 0x13c8, 0x13e5, 0x13ed, 0x13f9, 0x141a, - 0x143b, 0x1449, 0x1466, 0x148b, 0x14a8, 0x14c7, 0x14ea, 0x1509, - 0x1540, 0x1556, 0x1577, 0x1590, 0x15ab, 0x15d5, 0x15f4, 0x1625, - 0x1625, 0x1625, 0x1637, 0x163f, 0x165e, 0x1677, 0x1683, 0x16a0, - 0x16bf, 0x16dc, - }, - }, - { // bem - "Zambia", - []uint16{ // 259 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 80 - BF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry C0 - FF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 100 - 13F - 0x0000, 0x0000, 0x0006, - }, - }, - { // bez - "HuandolaHufalme dza HihalabuHuafuganistaniHuantigua na HubarubudaHuangui" + - "laHualbaniaHuameniaHuantili dza HuuholanziHuangolaHuajendinaHusamoa " + - "ya HumalekaniHuastliaHuaustlaliaHualubaHuazabajaniHubosinia na Huhez" + - "egovinaHubabadosiHubangaladeshiHuubelgijiHubukinafasoHubulgariaHubah" + - "aleniHuburundiHubeniniHubelmudaHubruneiHuboliviaHublaziliHubahamaHub" + - "utaniHubotiswanaHubelalusiHubelizeHukanadaIjamhuri ya Hidemokrasi ya" + - " HukongoIjamhuri ya Afrika ya PagatiHukongoHuuswisiHukodivaaIfisima " + - "fya KookHuchileHukameruniHuchinaHukolombiaHukostarikaHukubaHukepuved" + - "eHukuprosiIjamhuri ya ChekiHuujerumaniHujibutiHudenmakiHudominikaIja" + - "mhuri ya HudominikaHualjeliaHuekwadoHuestoniaHumisriHueritreaHuhispa" + - "niaHuuhabeshiHuufiniHufijiIfisima fya FalklandHumikronesiaHuufaransa" + - "HugaboniHuuingerezaHugrenadaHujojiaHugwiyana ya HuufaransaHughanaHuj" + - "iblaltaHujinlandiHugambiaHujineHugwadelupeHuginekwetaHuugilikiHugwat" + - "emalaHugwamHuginebisauHuguyanaHuhondulasiHukorasiaHuhaitiHuhungaliaH" + - "uindonesiaHuayalandiHuislaheliHuindiaUlubali lwa Hubahari ya Hindi l" + - "wa HuingerezaHuilakiHuuajemiHuaislandiHuitaliaHujamaikaHuyolodaniHuj" + - "apaniHukenyaHukiligizistaniHukambodiaHukilibatiHukomoroHusantakitzi " + - "na HunevisHukolea KaskaziniHukolea KusiniHukuwaitiIfisima fya Kayman" + - "HukazakistaniHulaosiHulebanoniHusantalusiaHulishenteniHusirilankaHul" + - "ibeliaHulesotoHulitwaniaHulasembagiHulativiaHulibiyaHumolokoHumonako" + - "HumoldovaHubukiniIfisima fya MarshalHumasedoniaHumaliHumyamaHumongol" + - "iaIfisima fya Mariana fya HukaskaziniHumartinikiHumolitaniaHumontser" + - "ratiHumaltaHumolisiHumodivuHumalawiHumeksikoHumalesiaHumusumbijiHuna" + - "mibiaHunyukaledoniaHunijeliIhisima sha NorfokHunijeliaHunikaragwaHuu" + - "holanziHunolweHunepaliHunauruHuniueHunyuzilandiHuomaniHupanamaHupelu" + - "Hupolinesia ya HuufaransaHupapuaHufilipinoHupakistaniHupolandiHusant" + - "apieri na HumikeloniHupitkainiHupwetorikoUlubali lwa Magharibi nu Ga" + - "za wa HupalestinaHuulenoHupalauHupalagwaiHukataliHuliyunioniHulomani" + - "aHuulusiHulwandaHusaudiIfisima fya SolomonHushelisheliHusudaniHuuswi" + - "diHusingapooHusantahelenaHusloveniaHuslovakiaHusiela LioniHusamalino" + - "HusenegaliHusomaliaHusurinamuHusaotome na HuprinsipeHuelsavadoHusili" + - "aHuuswaziIfisima fya Turki na KaikoHuchadiHutogoHutailandiHutajikist" + - "aniHutokelauHutimori ya MasharikiHuuturukimenistaniHutunisiaHutongaH" + - "uuturukiHutrinad na HutobagoHutuvaluHutaiwaniHutanzaniaHuukrainiHuug" + - "andaHumalekaniHuulugwaiHuuzibekistaniHuvatikaniHusantavisenti na Hug" + - "renadiniHuvenezuelaIfisima fya Virgin fya HuingerezaIfisima fya Virg" + - "in fya HumelekaniHuvietinamuHuvanuatuHuwalis na HufutunaHusamoaHuyem" + - "eniHumayotteHuafrika iya HukusiniHuzambiaHuzimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0008, 0x001c, 0x002a, 0x0041, 0x004a, 0x0053, - 0x005b, 0x0072, 0x007a, 0x007a, 0x0084, 0x0099, 0x00a1, 0x00ac, - 0x00b3, 0x00b3, 0x00be, 0x00d7, 0x00e1, 0x00ef, 0x00f9, 0x0105, - 0x010f, 0x0119, 0x0122, 0x012a, 0x012a, 0x0133, 0x013b, 0x0144, - 0x0144, 0x014d, 0x0155, 0x015d, 0x015d, 0x0168, 0x0172, 0x017a, - 0x0182, 0x0182, 0x01a4, 0x01c0, 0x01c7, 0x01cf, 0x01d8, 0x01e8, - 0x01ef, 0x01f9, 0x0200, 0x020a, 0x020a, 0x0215, 0x021b, 0x0225, - 0x0225, 0x0225, 0x022e, 0x023f, 0x024a, 0x024a, 0x0252, 0x025b, - // Entry 40 - 7F - 0x0265, 0x027b, 0x0284, 0x0284, 0x028c, 0x0295, 0x029c, 0x029c, - 0x02a5, 0x02af, 0x02b9, 0x02b9, 0x02c0, 0x02c6, 0x02da, 0x02e6, - 0x02e6, 0x02f0, 0x02f8, 0x0303, 0x030c, 0x0313, 0x032a, 0x032a, - 0x0331, 0x033b, 0x0345, 0x034d, 0x0353, 0x035e, 0x0369, 0x0372, - 0x0372, 0x037d, 0x0383, 0x038e, 0x0396, 0x0396, 0x0396, 0x03a1, - 0x03aa, 0x03b1, 0x03bb, 0x03bb, 0x03c6, 0x03d0, 0x03da, 0x03da, - 0x03e1, 0x040d, 0x0414, 0x041c, 0x0426, 0x042e, 0x042e, 0x0437, - 0x0441, 0x0449, 0x0450, 0x045f, 0x0469, 0x0473, 0x047b, 0x0492, - // Entry 80 - BF - 0x04a3, 0x04b1, 0x04ba, 0x04cc, 0x04d9, 0x04e0, 0x04ea, 0x04f6, - 0x0502, 0x050d, 0x0516, 0x051e, 0x0528, 0x0533, 0x053c, 0x0544, - 0x054c, 0x0554, 0x055d, 0x055d, 0x055d, 0x0565, 0x0578, 0x0583, - 0x0589, 0x0590, 0x059a, 0x059a, 0x05bd, 0x05c8, 0x05d3, 0x05e0, - 0x05e7, 0x05ef, 0x05f7, 0x05ff, 0x0608, 0x0611, 0x061c, 0x0625, - 0x0633, 0x063b, 0x064d, 0x0656, 0x0661, 0x066b, 0x0672, 0x067a, - 0x0681, 0x0687, 0x0693, 0x069a, 0x06a2, 0x06a8, 0x06c1, 0x06c8, - 0x06d2, 0x06dd, 0x06e6, 0x0700, 0x070a, 0x0715, 0x0741, 0x0748, - // Entry C0 - FF - 0x074f, 0x0759, 0x0761, 0x0761, 0x076c, 0x0775, 0x0775, 0x077c, - 0x0784, 0x078b, 0x079e, 0x07aa, 0x07b2, 0x07ba, 0x07c4, 0x07d1, - 0x07db, 0x07db, 0x07e5, 0x07f2, 0x07fc, 0x0806, 0x080f, 0x0819, - 0x0819, 0x0830, 0x083a, 0x083a, 0x0841, 0x0849, 0x0849, 0x0863, - 0x086a, 0x086a, 0x0870, 0x087a, 0x0887, 0x0890, 0x08a5, 0x08b7, - 0x08c0, 0x08c7, 0x08d0, 0x08e4, 0x08ec, 0x08f5, 0x08ff, 0x0908, - 0x0910, 0x0910, 0x091a, 0x0923, 0x0931, 0x093b, 0x0958, 0x0963, - 0x0984, 0x09a5, 0x09b0, 0x09b9, 0x09cc, 0x09d3, 0x09d3, 0x09db, - // Entry 100 - 13F - 0x09e4, 0x09f9, 0x0a01, 0x0a0b, - }, - }, - { // bg - bgRegionStr, - bgRegionIdx, - }, - { // bm - "AndÉ”rArabu mara kafoliAfiganistaÅ‹Antiga-ni-BarbudaAngiyaAlibaniArimeniPe" + - "yiba ka AntiyiAngolaArizantinSamowa amerikaniOtirisiOsitiraliArubaAz" + - "É›rbayjaÅ‹Bozni-ÆrizigoviniBarbadiBÉ›ngiladÉ›siBÉ›lizikiBurukina FasoBul" + - "igariBareyiniBurundiBenÉ›nBermudiBurinÉ›yiBoliviBereziliBahamasiButaÅ‹B" + - "É”tisiwanaBelarusiBeliziKanadaKongo ka republiki demÉ”kratikiSantaraf" + - "irikiKongoSuwisiKodiwariKuki GunSiliKameruniSiniwajamanaKolombiKÉ”sit" + - "arikaKubaCapivÉ›rdiCipriCeki republikiAlimaɲiJibutiDanemarkiDÉ”minikiD" + - "É”mimiki republikiAlizeriEkwatÉ”rEsetoniEziputiEritereEsipaɲiEtiopiFi" + - "nilandiFijiMaluwini GunMikironesiFaransiGabɔŋAngilÉ›tÉ›riGranadiZeyÉ”rz" + - "iFaransi ka gwiyaniGanaZibralitariGÉ”rÉ”henelandiGanbiGineGwadelupGine" + - " ekwatÉ”riGÉ›rÉ›siGwatemalaGwamGine BisawoGwiyanaHÉ”ndirasiKroasiAyitiHÉ”" + - "ngriÆndoneziIrilandiIsirayeliÆndujamanaAngilÉ› ka É›ndu dugukoloIrakiI" + - "raÅ‹IsilandiItaliZamayikiZÉ”rdaniZapÉ”nKeniyaKirigizisitaÅ‹KambojiKiriba" + - "tiKomÉ”riKristÉ”fo-Senu-ni-ÆevÉ›sKɛɲɛka KoreWorodugu KoreKowÉ›tiBama Gun" + - "KazakistaÅ‹LayosiLibaÅ‹Lusi-SenuLisÉ›nsitayiniSirilankaLiberiyaLesotoLi" + - "tuyaniLikisanburuLetoniLibiMarÉ”kuMonakoMolidaviMadagasikariMarisali " + - "GunMacedÉ”niMaliMyanimariMoÅ‹oliKɛɲɛka Mariyani GunMaritinikiMÉ”ritaniM" + - "oÅ‹seraMaltiMorisiMaldiviMalawiMeksikiMalÉ›ziMozanbikiNamibiKaledoni K" + - "ouraNizÉ›riNÉ”rofoliki GunNizeriyaNikaragwaPeyibaNÉ”riwÉ›ziNepaliNawuruN" + - "yuweZelandi KouraOmaÅ‹PanamaPeruFaransi ka polineziPapuwasi-Gine-Kour" + - "aFilipiniPakisitaÅ‹PoloɲiPiyÉ›ri-Senu-ni-MikelɔŋPitikariniPÉ”rotorikoPa" + - "lesitiniPÉ”ritigaliPalawuParaguwayiKatariReyuɲɔŋRumaniIrisiRuwandaAra" + - "biya SawudiyaSalomo GunSesÉ›liSudaÅ‹SuwÉ›diSÉ›ngapuriÆlÉ›ni SenuSloveniSl" + - "owakiSiyera LewÉ”niMarini-SenuSenegaliSomaliSurinamiSawo Tome-ni-Prin" + - "icipeSalivadÉ”rSiriSwazilandiTuriki Gun ni KayikiCadiTogoTayilandiTaj" + - "ikisitaniTokeloKÉ”rÉ”n TimÉ”rTurikimenisitaniTuniziTongaTurikiTrinite-n" + - "i-TobagoTuvaluTayiwaniTanzaniUkÉ›rÉ›niUgandaAmerikiUrugwayiUzebekisita" + - "niVatikaÅ‹VinisÉ›n-Senu-ni-GrenadiniVenezuwelaAngilÉ› ka Sungurunnin Gu" + - "nAmeriki ka Sungurunnin GunWiyÉ›tinamuVanuwatuWalisi-ni-FutunaSamowaY" + - "emÉ›niMayotiWorodugu AfrikiZanbiZimbabuwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0017, 0x0023, 0x0034, 0x003a, 0x0041, - 0x0048, 0x0058, 0x005e, 0x005e, 0x0067, 0x0077, 0x007e, 0x0087, - 0x008c, 0x008c, 0x0098, 0x00aa, 0x00b1, 0x00be, 0x00c7, 0x00d4, - 0x00dc, 0x00e4, 0x00eb, 0x00f1, 0x00f1, 0x00f8, 0x0101, 0x0107, - 0x0107, 0x010f, 0x0117, 0x011d, 0x011d, 0x0128, 0x0130, 0x0136, - 0x013c, 0x013c, 0x015b, 0x0168, 0x016d, 0x0173, 0x017b, 0x0183, - 0x0187, 0x018f, 0x019b, 0x01a2, 0x01a2, 0x01ad, 0x01b1, 0x01bb, - 0x01bb, 0x01bb, 0x01c0, 0x01ce, 0x01d6, 0x01d6, 0x01dc, 0x01e5, - // Entry 40 - 7F - 0x01ee, 0x0201, 0x0208, 0x0208, 0x0210, 0x0217, 0x021e, 0x021e, - 0x0225, 0x022d, 0x0233, 0x0233, 0x023c, 0x0240, 0x024c, 0x0256, - 0x0256, 0x025d, 0x0264, 0x0270, 0x0277, 0x027f, 0x0291, 0x0291, - 0x0295, 0x02a0, 0x02af, 0x02b4, 0x02b8, 0x02c0, 0x02ce, 0x02d6, - 0x02d6, 0x02df, 0x02e3, 0x02ee, 0x02f5, 0x02f5, 0x02f5, 0x02ff, - 0x0305, 0x030a, 0x0311, 0x0311, 0x031a, 0x0322, 0x032b, 0x032b, - 0x0336, 0x034f, 0x0354, 0x0359, 0x0361, 0x0366, 0x0366, 0x036e, - 0x0376, 0x037c, 0x0382, 0x0390, 0x0397, 0x039f, 0x03a6, 0x03bf, - // Entry 80 - BF - 0x03cd, 0x03da, 0x03e1, 0x03e9, 0x03f4, 0x03fa, 0x0400, 0x0409, - 0x0417, 0x0420, 0x0428, 0x042e, 0x0436, 0x0441, 0x0447, 0x044b, - 0x0452, 0x0458, 0x0460, 0x0460, 0x0460, 0x046c, 0x0478, 0x0481, - 0x0485, 0x048e, 0x0495, 0x0495, 0x04ab, 0x04b5, 0x04be, 0x04c6, - 0x04cb, 0x04d1, 0x04d8, 0x04de, 0x04e5, 0x04ec, 0x04f5, 0x04fb, - 0x0509, 0x0510, 0x051f, 0x0527, 0x0530, 0x0536, 0x0540, 0x0546, - 0x054c, 0x0551, 0x055e, 0x0563, 0x0569, 0x056d, 0x0580, 0x0593, - 0x059b, 0x05a5, 0x05ac, 0x05c5, 0x05cf, 0x05da, 0x05e4, 0x05ef, - // Entry C0 - FF - 0x05f5, 0x05ff, 0x0605, 0x0605, 0x060f, 0x0615, 0x0615, 0x061a, - 0x0621, 0x0631, 0x063b, 0x0642, 0x0648, 0x064f, 0x0659, 0x0665, - 0x066c, 0x066c, 0x0673, 0x0681, 0x068c, 0x0694, 0x069a, 0x06a2, - 0x06a2, 0x06b8, 0x06c2, 0x06c2, 0x06c6, 0x06d0, 0x06d0, 0x06e4, - 0x06e8, 0x06e8, 0x06ec, 0x06f5, 0x0701, 0x0707, 0x0715, 0x0725, - 0x072b, 0x0730, 0x0736, 0x0747, 0x074d, 0x0755, 0x075c, 0x0765, - 0x076b, 0x076b, 0x0772, 0x077a, 0x0787, 0x078f, 0x07a9, 0x07b3, - 0x07cd, 0x07e7, 0x07f2, 0x07fa, 0x080a, 0x0810, 0x0810, 0x0817, - // Entry 100 - 13F - 0x081d, 0x082c, 0x0831, 0x083a, - }, - }, - { // bn - bnRegionStr, - bnRegionIdx, - }, - { // bo - "རྒྱ་ནགའཇར་མན་དབྱིན་ཇི་རྒྱ་གར་ཨི་ཀྲར་ལི་རི་པིན་བར་ཡུལ་ཨུ་རུ་སུ་ཨ་མེ་རི་ཀà¼" + - "མིའི་ཤེས་རྟོགས་མ་བྱུང་བའི་à½à½¼à½¢à¼‹à½¡à½´à½‚འཛམ་གླིང་à¼", - []uint16{ // 262 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, - 0x0012, 0x0012, 0x0012, 0x0012, 0x0027, 0x0027, 0x0027, 0x0027, - // Entry 40 - 7F - 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, - 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, - 0x0027, 0x0027, 0x0027, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0075, 0x0075, 0x0075, - 0x0075, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, - // Entry 80 - BF - 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, - 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, - 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, - 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, - 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, - 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x009f, - 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, - 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, - // Entry C0 - FF - 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x00ba, - 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, - 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, - 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, - 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, - 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00ba, - 0x00ba, 0x00ba, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - // Entry 100 - 13F - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x013b, 0x0159, - }, - }, - { // bo-IN - "ཨོཤི་ཡཱན་ནà¼", - []uint16{ // 266 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 80 - BF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry C0 - FF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 100 - 13F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0021, - }, - }, - { // br - "Enez AscensionAndorraEmirelezhioù Arab UnanetAfghanistanAntigua ha Barbu" + - "daAnguillaAlbaniaArmeniaAntilhez NederlandatAngolaAntarktikaArcʼhant" + - "inaSamoa AmerikanAostriaAostraliaArubaInizi Ã…landAzerbaidjanBosnia h" + - "a HerzegovinaBarbadosBangladeshBelgiaBurkina FasoBulgariaBahreinBuru" + - "ndiBeninSaint BarthélemyBermudaBruneiBoliviaNederlandat KaribBrazilB" + - "ahamasBhoutanEnez BouvetBotswanaBelarusBelizeKanadaInizi KokozKongo " + - "- KinshasaRepublik KreizafrikanKongo - BrazzavilleSuisAod an Olifant" + - "Inizi CookChileKamerounSinaKolombiaEnez ClippertonCosta RicaKubaKab " + - "GlasCuraçaoEnez ChristmasKiprenezRepublik TchekAlamagnDiego GarciaDj" + - "iboutiDanmarkDominicaRepublik DominikanAljeriaCeuta ha MelillaEcuado" + - "rEstoniaEgiptSahara ar CʼhornôgEritreaSpagnEtiopiaUnaniezh EuropaFin" + - "landFidjiInizi FalklandMikroneziaInizi FaeroFrañsGabonRouantelezh-Un" + - "anetGrenadaJorjiaGwiana cʼhallGwernenezGhanaJibraltarGreunlandGambia" + - "GineaGwadeloupGinea ar CʼhehederGresInizi Georgia ar Su hag Inizi Sa" + - "ndwich ar SuGuatemalaGuamGinea-BissauGuyanaHong Kong RMD SinaInizi H" + - "eard ha McDonaldHondurasKroatiaHaitiHungariaInizi KanariezIndoneziaI" + - "werzhonIsraelEnez VanavIndiaTiriad breizhveurat Meurvor IndezIraqIra" + - "nIslandItaliaJerzenezJamaikaJordaniaJapanKenyaKyrgyzstanKambodjaKiri" + - "batiKomorezSaint Kitts ha NevisKorea an NorzhKorea ar SuKoweitInizi " + - "CaymanKazakstanLaosLibanSaint LuciaLiechtensteinSri LankaLiberiaLeso" + - "thoLituaniaLuksembourgLatviaLibiaMarokoMonacoMoldovaMontenegroSaint " + - "MartinMadagaskarInizi MarshallMakedoniaMaliMyanmar (Birmania)Mongoli" + - "aMacau RMD SinaInizi Mariana an NorzhMartinikMaouritaniaMontserratMa" + - "ltaMorisMaldivezMalawiMecʼhikoMalaysiaMozambikNamibiaKaledonia Nevez" + - "NigerEnez NorfolkNigeriaNicaraguaIzelvroioùNorvegiaNepalNauruNiueZel" + - "and-NevezOmanPanamáPerouPolinezia CʼhallPapoua Ginea-NevezFilipinezP" + - "akistanPoloniaSant-Pêr-ha-MikelonEnez PitcairnPuerto RicoTiriadoù Pa" + - "lestinaPortugalPalauParaguayQatarOseania diabellReünionRoumaniaSerbi" + - "aRusiaRwandaArabia SaoudatSalomonSechelezSoudanSvedenSingapourSaint-" + - "HelenaSloveniaSvalbardSlovakiaSierra LeoneSan MarinoSenegalSomaliaSu" + - "rinamSusoudanSão Tomé ha PríncipeSalvadorSint MaartenSiriaSwazilandT" + - "ristan da CunhaInizi Turks ha CaicosTchadDouaroù aostral FrañsTogoTh" + - "ailandTadjikistanTokelauTimor-LesteTurkmenistanTuniziaTongaTurkiaTri" + - "nidad ha TobagoTuvaluTaiwanTanzaniaUkrainaOugandaInizi diabell ar St" + - "adoù-UnanetStadoù-UnanetUruguayOuzbekistanVatikanSant Visant hag ar " + - "GrenadinezVenezuelaInizi Gwercʼh Breizh-VeurInizi Gwercʼh ar Stadoù-" + - "UnanetViêt NamVanuatuWallis ha FutunaSamoaKosovoYemenMayotteSuafrika" + - "ZambiaZimbabweRannved dianavBedAfrikaNorzhamerikaSuamerikaOseaniaAfr" + - "ika ar CʼhornôgKreizamerikaAfrika ar ReterAfrika an NorzhAfrika ar C" + - "ʼhreizAfrika ar SuAmerikaoùAmerika an NorzhKaribAzia ar ReterAzia a" + - "r SuAzia ar GevredEuropa ar SuAostralaziaMelaneziaRannved Mikronezia" + - "PolineziaAziaAzia ar CʼhreizAzia ar CʼhornôgEuropaEuropa ar ReterEur" + - "opa an NorzhEuropa ar CʼhornôgAmerika Latin", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x000e, 0x0015, 0x002e, 0x0039, 0x004b, 0x0053, 0x005a, - 0x0061, 0x0075, 0x007b, 0x0085, 0x0091, 0x009f, 0x00a6, 0x00af, - 0x00b4, 0x00c0, 0x00cb, 0x00e0, 0x00e8, 0x00f2, 0x00f8, 0x0104, - 0x010c, 0x0113, 0x011a, 0x011f, 0x0130, 0x0137, 0x013d, 0x0144, - 0x0155, 0x015b, 0x0162, 0x0169, 0x0174, 0x017c, 0x0183, 0x0189, - 0x018f, 0x019a, 0x01aa, 0x01bf, 0x01d2, 0x01d6, 0x01e4, 0x01ee, - 0x01f3, 0x01fb, 0x01ff, 0x0207, 0x0216, 0x0220, 0x0224, 0x022c, - 0x0234, 0x0242, 0x024a, 0x0258, 0x025f, 0x026b, 0x0273, 0x027a, - // Entry 40 - 7F - 0x0282, 0x0294, 0x029b, 0x02ab, 0x02b2, 0x02b9, 0x02be, 0x02d2, - 0x02d9, 0x02de, 0x02e5, 0x02f4, 0x02fb, 0x0300, 0x030e, 0x0318, - 0x0323, 0x0329, 0x032e, 0x0340, 0x0347, 0x034d, 0x035b, 0x0364, - 0x0369, 0x0372, 0x037b, 0x0381, 0x0386, 0x038f, 0x03a2, 0x03a6, - 0x03d2, 0x03db, 0x03df, 0x03eb, 0x03f1, 0x0403, 0x041a, 0x0422, - 0x0429, 0x042e, 0x0436, 0x0444, 0x044d, 0x0455, 0x045b, 0x0465, - 0x046a, 0x048b, 0x048f, 0x0493, 0x0499, 0x049f, 0x04a7, 0x04ae, - 0x04b6, 0x04bb, 0x04c0, 0x04ca, 0x04d2, 0x04da, 0x04e1, 0x04f5, - // Entry 80 - BF - 0x0503, 0x050e, 0x0514, 0x0520, 0x0529, 0x052d, 0x0532, 0x053d, - 0x054a, 0x0553, 0x055a, 0x0561, 0x0569, 0x0574, 0x057a, 0x057f, - 0x0585, 0x058b, 0x0592, 0x059c, 0x05a8, 0x05b2, 0x05c0, 0x05c9, - 0x05cd, 0x05df, 0x05e7, 0x05f5, 0x060b, 0x0613, 0x061e, 0x0628, - 0x062d, 0x0632, 0x063a, 0x0640, 0x0649, 0x0651, 0x0659, 0x0660, - 0x066f, 0x0674, 0x0680, 0x0687, 0x0690, 0x069b, 0x06a3, 0x06a8, - 0x06ad, 0x06b1, 0x06bd, 0x06c1, 0x06c8, 0x06cd, 0x06de, 0x06f0, - 0x06f9, 0x0701, 0x0708, 0x071c, 0x0729, 0x0734, 0x0747, 0x074f, - // Entry C0 - FF - 0x0754, 0x075c, 0x0761, 0x0770, 0x0778, 0x0780, 0x0786, 0x078b, - 0x0791, 0x079f, 0x07a6, 0x07ae, 0x07b4, 0x07ba, 0x07c3, 0x07cf, - 0x07d7, 0x07df, 0x07e7, 0x07f3, 0x07fd, 0x0804, 0x080b, 0x0812, - 0x081a, 0x0831, 0x0839, 0x0845, 0x084a, 0x0853, 0x0863, 0x0878, - 0x087d, 0x0894, 0x0898, 0x08a0, 0x08ab, 0x08b2, 0x08bd, 0x08c9, - 0x08d0, 0x08d5, 0x08db, 0x08ed, 0x08f3, 0x08f9, 0x0901, 0x0908, - 0x090f, 0x092e, 0x093c, 0x0943, 0x094e, 0x0955, 0x0972, 0x097b, - 0x0995, 0x09b5, 0x09be, 0x09c5, 0x09d5, 0x09da, 0x09e0, 0x09e5, - // Entry 100 - 13F - 0x09ec, 0x09f4, 0x09fa, 0x0a02, 0x0a10, 0x0a13, 0x0a19, 0x0a25, - 0x0a2e, 0x0a35, 0x0a49, 0x0a55, 0x0a64, 0x0a73, 0x0a85, 0x0a91, - 0x0a9b, 0x0aab, 0x0ab0, 0x0abd, 0x0ac7, 0x0ad5, 0x0ae1, 0x0aec, - 0x0af5, 0x0b07, 0x0b10, 0x0b14, 0x0b24, 0x0b36, 0x0b3c, 0x0b4b, - 0x0b5a, 0x0b6e, 0x0b7b, - }, - }, - { // brx - "à¤à¤¨à¥à¤¡à¥‹à¤°à¤¾à¤¸à¤‚यà¥à¤•à¥à¤¤ अरब अमीरातअफ़ग़ानिसà¥à¤¤à¤¾à¤¨à¤à¤¨à¥à¤Ÿà¤¿à¤—à¥à¤† à¤à¤µà¤‚ बारबूडाà¤à¤‚गीलाअलà¥à¤¬à¤¾à¤¨à¤¿à¤¯" + - "ाआरà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤¨à¥€à¤¦à¤°à¤²à¥ˆà¤‚डà¥à¤¸ à¤à¤‚टिलीज़अंगोलाअंटारà¥à¤•à¤Ÿà¤¿à¤•à¤¾à¤…रà¥à¤œà¥‡à¤£à¥à¤Ÿà¤¿à¤¨à¤¾à¤…मरिकी सम" + - "ोआऑसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤‘सà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾à¤…रूबाआलाà¤à¤¡ दà¥à¤µà¥€à¤ªà¤…ज़रबैजानबोसनिया हरà¥à¤œà¤¼à¥‡à¤—ोविन" + - "ाबारबाडोसबंगलादेशबेलà¥à¤œà¤¿à¤¯à¤®à¤¬à¥à¤°à¥à¤•à¤¿à¤¨à¤¾ फासोबलà¥à¤—ैरियाबहरैनबà¥à¤°à¥à¤‚डीबेनेà¤à¤¸à¥‡" + - "ठबारà¥à¤¥à¥‡à¤²à¥‡à¤®à¥€à¤¬à¤°à¤®à¥‚डाबà¥à¤°à¥‚नइबोलीवियाबà¥à¤°à¤¾à¤œà¤¼à¥€à¤²à¤¬à¤¹à¤¾à¤®à¤¾à¤­à¥‚टानबà¥à¤µà¥‡ दà¥à¤µà¥€à¤ªà¤¬à¥‹à¤¤à¥à¤¸à¥" + - "वानाबेलारूसबेलिज़कैनाडाकोकोस दà¥à¤µà¥€à¤ªà¤•à¥‰à¤‚गो किनशासासेंटà¥à¤°à¤² अफà¥à¤°à¥€à¤•à¤¨ रिप" + - "बà¥à¤²à¤¿à¤•à¤•à¥‰à¤‚गो बà¥à¤°à¤¾à¤œà¤¼à¥à¤œà¤¼à¤¾à¤µà¥€à¤²à¤¸à¥à¤µà¤¿à¤¤à¥à¤œà¤¼à¤°à¤²à¥ˆà¤‚डआईवरी कोसà¥à¤Ÿà¤•à¥à¤• दà¥à¤µà¥€à¤ªà¤šà¤¿à¤²à¥€à¤•à¥‹à¤®à¥‡à¤°" + - "ानचीनकोलमà¥à¤¬à¤¿à¤¯à¤¾à¤•à¥‹à¤¸à¥à¤Ÿà¤¾à¤°à¥€à¤•à¤¾à¤•à¥à¤¯à¥‚बाकैप वेरà¥à¤¦à¥‡à¤•à¥à¤°à¤¿à¤¸à¥à¤®à¤¸ दà¥à¤µà¥€à¤ªà¤¸à¤¾à¤‡à¤ªà¥à¤°à¤¸à¤šà¥‡à¤• ग" + - "णराजà¥à¤¯à¤œà¤°à¥à¤®à¤¨à¥€à¤¦à¥à¤œà¤¿à¤¬à¥‚तीडेनमारà¥à¤•à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¾à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¨ गणराजà¥à¤¯à¤…लà¥à¤œà¥€à¤°à¤¿à¤¯à¤¾à¤à¤•à¥à¤µà¤¾" + - "डोरà¤à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤®à¤¿à¤¸à¥à¤°à¤ªà¤¶à¥à¤šà¤¿à¤®à¥€ सहाराà¤à¤°à¤¿à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤ªà¥‡à¤¨à¤‡à¤¥à¤¿à¤“पियायूरोपीय संघफिन" + - "लैंडफिजीफ़ॉलà¥à¤•à¤²à¥ˆà¤‚ड दà¥à¤µà¥€à¤ªà¤®à¤¾à¤‡à¤•à¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤«à¤°à¥‹ दà¥à¤µà¥€à¤ªà¤«à¥à¤°à¤¾à¤à¤¸à¤—ैबॉनबà¥à¤°à¤¿à¤¤à¤¨à¤—à¥à¤°" + - "ेनडाजॉरà¥à¤œà¤¿à¤¯à¤¾à¤«à¥à¤°à¤¾à¤à¤¸à¥€à¤¸à¥€ गिआनागेरà¥à¤¨à¤¸à¥‡à¤˜à¤¾à¤¨à¤¾à¤œà¤¿à¤¬à¥à¤°à¤¾à¤²à¥à¤Ÿà¤°à¤—à¥à¤°à¥€à¤¨à¤²à¥ˆà¤£à¥à¤¡à¤—ामà¥à¤¬à¤¿à¤¯à¤¾" + - "गिनीगà¥à¤µà¤¾à¤¦à¤²à¥à¤ªà¤‡à¤•à¥à¤µà¥‡à¤Ÿà¥‹à¤°à¤¿à¤¯à¤² गिनीगà¥à¤°à¥€à¤¸à¤¦à¤•à¥à¤·à¤¿à¤£ जोरà¥à¤œà¤¿à¤¯à¤¾ à¤à¤µà¤‚ दकà¥à¤·à¤¿à¤£ सैंडवी" + - "च दà¥à¤µà¥€à¤ªà¤—ोतेदालागà¥à¤†à¤®à¤—ीनी-बिसाउगà¥à¤¯à¤¾à¤¨à¤¾à¤¹à¤¾à¤à¤—काà¤à¤— विशेष पà¥à¤°à¤¶à¤¾à¤¸à¤¨à¤¿à¤• कà¥à¤·à¥‡à¤¤à¥" + - "र चीनहरà¥à¤¡ दà¥à¤µà¥€à¤ª à¤à¤µà¤‚ मैकडोनॉलà¥à¤¡ दà¥à¤µà¥€à¤ªà¤¹à¥Œà¤£à¥à¤¡à¥‚रासकà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾à¤¹à¤¾à¤‡à¤¤à¥€à¤¹à¤‚गरीइं" + - "डोनेशियाआयरलैंडइसà¥à¤°à¤¾à¤‡à¤²à¤†à¤ˆà¤² ऑफ़ मैनभारतबà¥à¤°à¤¿à¤Ÿà¤¿à¤¶ हिंद महासागरिय कà¥à¤·à¥‡à¤¤à¥" + - "रईराक़ईरानआइसलैंडइटलीजरà¥à¤¸à¥€à¤œà¤®à¤¾à¤‡à¤•à¤¾à¤œà¥‰à¤°à¥à¤¡à¤¨à¤œà¤¾à¤ªà¤¾à¤¨à¤•à¥‡à¤¨à¥à¤¯à¤¾à¤•à¤¿à¤°à¥à¤—िज़कमà¥à¤¬à¥‹à¤¡à¤¿à¤¯à¤¾" + - "किरिबातीकोमोरोज़सेंट किटà¥à¤¸ à¤à¤µà¤‚ नेविसउतà¥à¤¤à¤° कोरियादकà¥à¤·à¤¿à¤£ कोरियाकà¥à¤µà¥ˆà¤¤" + - "केमैन दà¥à¤µà¥€à¤ªà¤•à¤œà¤¼à¤¾à¤–सà¥à¤¤à¤¾à¤¨à¤²à¤¾à¤“सलेबनोनसेंट लूसियालिकà¥à¤Ÿà¥ˆà¤¨à¤¸à¥à¤Ÿà¤¾à¤ˆà¤¨à¤¶à¥à¤°à¥€ लà¤à¤•à¤¾à¤²à¤¾" + - "इबेरियालसोथोलिथà¥à¤†à¤¨à¤¿à¤¯à¤¾à¤²à¤•à¥à¤¸à¤®à¤¬à¤°à¥à¤—लाटà¥à¤µà¥€à¤¯à¤¾à¤²à¥€à¤¬à¤¿à¤¯à¤¾à¤®à¥‹à¤°à¥‹à¤•à¥à¤•à¥‹à¤®à¥‹à¤¨à¤¾à¤•à¥‹à¤®à¥‹à¤²à¥à¤¡à¥‡à¤µà¤¿" + - "यामोंटेनेगà¥à¤°à¥‹à¤¸à¥‡à¤ मारà¥à¤Ÿà¥‡à¤à¤®à¤¦à¤¾à¤—ासà¥à¤•à¤°à¤®à¤¾à¤°à¥à¤¶à¤² दà¥à¤µà¥€à¤ªà¤®à¥ˆà¤¸à¥‡à¤¡à¥‹à¤¨à¤¿à¤¯à¤¾à¤®à¤¾à¤²à¥€à¤®à¥à¤¯à¤¾à¤¨à¤®à¤¾" + - "रमंगोलियामकाओ विशेष पà¥à¤°à¤¶à¤¾à¤¸à¤¨à¤¿à¤• कà¥à¤·à¥‡à¤¤à¥à¤° (चीन)उतà¥à¤¤à¤°à¥€ मारियाना दà¥à¤µà¥€à¤ªà¤®à¤¾" + - "रà¥à¤Ÿà¥€à¤¨à¤¿à¤•à¤®à¥‰à¤°à¤¿à¤Ÿà¥‡à¤¨à¤¿à¤¯à¤¾à¤®à¥‰à¤‚सेरामालà¥à¤Ÿà¤¾à¤®à¥‰à¤°à¤¿à¤¸à¤®à¤¾à¤²à¤¦à¥€à¤µà¤®à¤²à¤¾à¤µà¥€à¤®à¥ˆà¤•à¥à¤¸à¤¿à¤•à¥‹à¤®à¤²à¥‡à¤¶à¤¿à¤¯à¤¾à¤®à¥‹à¤œà¤¼à¤¾" + - "मà¥à¤¬à¤¿à¤•à¤¨à¤¾à¤®à¥€à¤¬à¤¿à¤¯à¤¾à¤¨à¥à¤¯à¥‚ कैलेडोनियानाइजेरनॉरफ़ॉक दà¥à¤µà¥€à¤ªà¤¨à¤¾à¤‡à¤œà¥€à¤°à¤¿à¤¯à¤¾à¤¨à¤¿à¤•à¤¾à¤°à¤¾à¤—à¥à¤†à¤¨" + - "ेदरलैणà¥à¤¡à¤¨à¥‰à¤°à¥à¤µà¥‡à¤¨à¥‡à¤ªà¤¾à¤²à¤¨à¤¾à¤‰à¤°à¥‚नीयूà¤à¤¨à¥à¤¯à¥‚ज़ीलैंडओमानपनामापेरूफà¥à¤°à¤¾à¤à¤¸à¥€à¤¸à¥€ पॉल" + - "िनीशियापापà¥à¤† नà¥à¤¯à¥‚ गिनीफिलीपिनà¥à¤¸à¤ªà¤¾à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤ªà¥‹à¤²à¥ˆà¤£à¥à¤¡à¤¸à¥‡à¤ पीà¤à¤° à¤à¤µà¤‚ मि" + - "\u200dकेलॉंपिटकेरà¥à¤¨à¤ªà¥à¤à¤°à¥à¤Ÿà¥‹ रीकोफ़िलिसà¥à¤¤à¥€à¤¨à¤ªà¥à¤°à¥à¤¤à¤—ालपलाऊपारागà¥à¤à¤•à¤¼à¤¤à¤¾à¤°à¤¬à¤¾à¤¹" + - "रिय ओशेआनियारेयूनियॉंरोमानियासरà¥à¤¬à¤¿à¤¯à¤¾à¤°à¥‚सरूआणà¥à¤¡à¤¾à¤¸à¤Šà¤¦à¥€ अरबसॉलोमन दà¥à¤µà¥€à¤ª" + - "सेशेलà¥à¤¸à¤¸à¥‚दानसà¥à¤µà¥€à¤¡à¤¨à¤¸à¤¿à¤‚गापà¥à¤°à¤¸à¥‡à¤£à¥\u200dट हेलेनासà¥à¤²à¥‹à¤µà¥‡à¤¨à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤²à¥à¤¬à¤¾à¤°à¥à¤¡ " + - "à¤à¤µà¤‚ यान मायेनसà¥à¤²à¥‹à¤µà¤¾à¤•à¤¿à¤¯à¤¾à¤¸à¤¿à¤¯à¥‡à¤°à¤¾ लेओनसैन मरीनोसेनेगालसोमालियासà¥à¤°à¤¿à¤¨à¤¾à¤®à¤¸" + - "ाउà¤-तोमे à¤à¤µà¤‚ पà¥à¤°à¤¿à¤‚सिपà¤à¤² सालà¥à¤µà¤¾à¤¡à¥‹à¤°à¤¸à¥€à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤œà¤¼à¥€à¤²à¥ˆà¤‚डतà¥à¤°à¥à¤•à¥€ à¤à¤µà¤‚ कैकोज" + - "़ दà¥à¤µà¥€à¤ªà¤šà¤¾à¤¡à¤«à¥à¤°à¤¾à¤à¤¸à¥€à¤¸à¥€ उतà¥à¤¤à¤°à¥€ कà¥à¤·à¥‡à¤¤à¥à¤°à¥‹à¤‚टोगोथाइलैणà¥à¤¡à¤¤à¤¾à¤œà¤¿à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤Ÿà¥‹à¤•à¥‡à¤²à¥Œà¤ª" + - "ूरà¥à¤µà¥€ तिमोरतà¥à¤°à¥à¤•à¤®à¥‡à¤¨à¥€à¤¸à¥à¤¤à¤¾à¤¨à¤¤à¥à¤¯à¥à¤¨à¤¿à¤¶à¤¿à¤¯à¤¾à¤Ÿà¥‰à¤‚गातà¥à¤°à¥à¤•à¥€à¤Ÿà¥à¤°à¤¿à¤¨à¤¿à¤¡à¤¾à¤¡ à¤à¤µà¤‚ टोबैगो" + - "तà¥à¤µà¤¾à¤²à¥à¤¤à¤¾à¤‡à¤µà¤¾à¤¨à¤¤à¤‚ज़ानियायूकà¥à¤°à¥‡à¤¨à¤¯à¥à¤—ाà¤à¤¡à¤¾à¤¯à¥à¤¨à¤¾à¤‡à¤Ÿà¥‡à¤¡ सà¥à¤Ÿà¥‡à¤Ÿà¥à¤¸ के छोटे बाहरिय" + - " दà¥à¤µà¥€à¤ªà¤¸à¤‚यà¥à¤•à¥à¤¤ राजà¥à¤¯ अमरिकायà¥à¤°à¥‚गà¥à¤à¤‰à¤œà¤¼à¤¬à¥‡à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤µà¥ˆà¤Ÿà¤¿à¤•à¤¨à¤¸à¥‡à¤‚ट विंसंट à¤à¤µà¤‚ द" + - "ी गà¥à¤°à¤¨à¤¾à¤¡à¥€à¤¨à¥à¤¸à¥à¤µà¥‡à¤¨à¥‡à¤œà¤¼à¥à¤à¤²à¤¾à¤¬à¥à¤°à¤¿à¤Ÿà¤¿à¤¶ वरà¥à¤œà¥€à¤¨ आईलंडà¥à¤¸à¤¯à¥.à¤à¤¸. वरà¥à¤œà¥€à¤¨ आईलंडà¥à¤¸" + - "वियतनामवानाऊटà¥à¤µà¥‰à¤²à¥‡à¤¸ à¤à¤µà¤‚ फ़à¥à¤¯à¥‚चूनासमोआयमनमैयौटदकà¥à¤·à¤¿à¤£ अफà¥à¤°à¥€à¤•à¤¾à¤œà¤¼à¤¾à¤®à¥à¤¬à¤¿" + - "याज़ीमà¥à¤¬à¤¾à¤¬à¥à¤µà¥‡à¤…जà¥à¤žà¤¾à¤¤ या अवैध पà¥à¤°à¤¦à¥‡à¤¶à¤¦à¥à¤¨à¤¿à¤¯à¤¾à¤…फà¥à¤°à¥€à¤•à¤¾à¤‰à¤¤à¥à¤¤à¤° अमरिकादकà¥à¤·à¤¿à¤£ " + - "अमरिकाओशेआनियापशà¥à¤šà¤¿à¤®à¥€ अफà¥à¤°à¥€à¤•à¤¾à¤®à¤§à¥à¤¯ अमरिकापूरà¥à¤µà¥€ अफà¥à¤°à¥€à¤•à¤¾à¤‰à¤¤à¥à¤¤à¤°à¥€ अफà¥à¤°à¥€" + - "कामधà¥à¤¯ अफà¥à¤°à¥€à¤•à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ अफà¥à¤°à¥€à¤•à¤¾à¤…मरिकाज़à¥à¤‰à¤¤à¥à¤¤à¤°à¥€ अमरिकाकैरिबियनपूरà¥à¤µà¥€ " + - "à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£-पूरà¥à¤µà¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ यूरोपऑसà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾ à¤à¤µà¤‚ " + - "नà¥à¤¯à¥‚जीलैंडमेलीनेशियामाईकà¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤ªà¥‹à¤²à¥€à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤à¤¶à¤¿à¤¯à¤¾à¤®à¤§à¥à¤¯ à¤à¤¶à¤¿à¤¯à¤¾à¤ªà¤¶à¥à¤šà¤¿à¤®à¥€ " + - "à¤à¤¶à¤¿à¤¯à¤¾à¤¯à¥‚रोपपूरà¥à¤µà¥€ यूरोपउतà¥à¤¤à¤°à¥€ यूरोपपशà¥à¤šà¤¿à¤®à¥€ यूरोपà¥à¤²à¥ˆà¤Ÿà¤¿à¤¨ अमरिका à¤à¤µà¤‚ क" + - "रीबी", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0015, 0x0047, 0x006e, 0x00a6, 0x00b8, 0x00d3, - 0x00ee, 0x0125, 0x0137, 0x0158, 0x0179, 0x0198, 0x01b3, 0x01d4, - 0x01e3, 0x0202, 0x021d, 0x0257, 0x026f, 0x0287, 0x029f, 0x02c4, - 0x02df, 0x02ee, 0x0303, 0x0312, 0x033a, 0x034c, 0x035e, 0x0376, - 0x0376, 0x038e, 0x039d, 0x03ac, 0x03c8, 0x03e6, 0x03fb, 0x040d, - 0x041f, 0x043e, 0x0463, 0x04a7, 0x04de, 0x0505, 0x0524, 0x053d, - 0x0549, 0x055e, 0x0567, 0x0582, 0x0582, 0x05a0, 0x05b2, 0x05ce, - 0x05ce, 0x05f6, 0x060b, 0x062a, 0x063c, 0x063c, 0x0654, 0x066c, - // Entry 40 - 7F - 0x0684, 0x06b2, 0x06cd, 0x06cd, 0x06e5, 0x0700, 0x070f, 0x0734, - 0x074f, 0x075e, 0x0776, 0x0795, 0x07aa, 0x07b6, 0x07e4, 0x080b, - 0x0824, 0x0836, 0x0845, 0x0857, 0x086c, 0x0884, 0x08af, 0x08c4, - 0x08d0, 0x08ee, 0x090c, 0x0924, 0x0930, 0x0948, 0x0976, 0x0985, - 0x09f3, 0x0a0b, 0x0a17, 0x0a33, 0x0a45, 0x0aa9, 0x0afe, 0x0b19, - 0x0b34, 0x0b43, 0x0b52, 0x0b52, 0x0b70, 0x0b85, 0x0b9a, 0x0bb7, - 0x0bc3, 0x0c17, 0x0c26, 0x0c32, 0x0c47, 0x0c53, 0x0c62, 0x0c74, - 0x0c86, 0x0c95, 0x0ca7, 0x0cbf, 0x0cda, 0x0cf2, 0x0d0a, 0x0d40, - // Entry 80 - BF - 0x0d62, 0x0d87, 0x0d96, 0x0db5, 0x0dd3, 0x0ddf, 0x0df1, 0x0e10, - 0x0e37, 0x0e50, 0x0e6b, 0x0e7a, 0x0e95, 0x0eb0, 0x0ec8, 0x0eda, - 0x0ef2, 0x0f04, 0x0f22, 0x0f43, 0x0f62, 0x0f7d, 0x0f9f, 0x0fbd, - 0x0fc9, 0x0fe1, 0x0ff9, 0x1053, 0x108e, 0x10a9, 0x10c7, 0x10dc, - 0x10ee, 0x10fd, 0x110f, 0x111e, 0x1136, 0x114b, 0x1169, 0x1181, - 0x11ac, 0x11be, 0x11e3, 0x11fe, 0x1219, 0x1234, 0x1246, 0x1255, - 0x1264, 0x1273, 0x1294, 0x12a0, 0x12af, 0x12bb, 0x12f5, 0x131e, - 0x1339, 0x1354, 0x1369, 0x13a2, 0x13ba, 0x13dc, 0x13fa, 0x1412, - // Entry C0 - FF - 0x141e, 0x1433, 0x1442, 0x146d, 0x1488, 0x14a0, 0x14b5, 0x14be, - 0x14d3, 0x14e9, 0x150b, 0x1520, 0x152f, 0x1541, 0x1559, 0x157e, - 0x159c, 0x15e1, 0x15ff, 0x161e, 0x1637, 0x164c, 0x1664, 0x1679, - 0x1679, 0x16b5, 0x16d7, 0x16d7, 0x16e9, 0x170a, 0x170a, 0x1749, - 0x1752, 0x179c, 0x17a8, 0x17c0, 0x17e1, 0x17f3, 0x1815, 0x183f, - 0x185d, 0x186c, 0x187e, 0x18b6, 0x18c8, 0x18da, 0x18f5, 0x190a, - 0x191f, 0x1984, 0x19bc, 0x19d1, 0x19f5, 0x1a07, 0x1a59, 0x1a77, - 0x1ab5, 0x1aec, 0x1b01, 0x1b16, 0x1b4b, 0x1b57, 0x1b57, 0x1b60, - // Entry 100 - 13F - 0x1b6f, 0x1b97, 0x1bb2, 0x1bd3, 0x1c0c, 0x1c1e, 0x1c33, 0x1c55, - 0x1c7a, 0x1c92, 0x1cbd, 0x1cdc, 0x1d04, 0x1d2c, 0x1d4e, 0x1d79, - 0x1d94, 0x1db9, 0x1dd1, 0x1df3, 0x1e18, 0x1e4d, 0x1e72, 0x1ebc, - 0x1eda, 0x1f01, 0x1f1f, 0x1f2e, 0x1f4a, 0x1f6f, 0x1f7e, 0x1fa0, - 0x1fc2, 0x1fea, 0x2026, - }, - }, - { // bs - "Ostrvo AsensionAndoraUjedinjeni Arapski EmiratiAfganistanAntigva i Barbu" + - "daAngvilaAlbanijaJermenijaHolandski AntiliAngolaAntarktikaArgentinaA" + - "meriÄka SamoaAustrijaAustralijaArubaAlandska OstrvaAzerbejdžanBosna " + - "i HercegovinaBarbadosBangladeÅ¡BelgijaBurkina FasoBugarskaBahreinBuru" + - "ndiBeninSv. BartolomejBermudaBrunejBolivijaKaripska HolandijaBrazilB" + - "ahamiButanBuve OstrvaBocvanaBjelorusijaBelizeKanadaKokos (Keling) Os" + - "trvaDemokratska Republika KongoCentralnoafriÄka RepublikaKongoÅ vicar" + - "skaObala SlonovaÄeKukova OstrvaÄŒileKamerunKinaKolumbijaOstrvo Kliper" + - "tonKostarikaKubaKape VerdeKurasaoBožićna OstrvaKiparÄŒeÅ¡kaNjemaÄkaDij" + - "ego GarsijaDžibutiDanskaDominikaDominikanska RepublikaAlžirSeuta i M" + - "eliljaEkvadorEstonijaEgipatZapadna SaharaEritrejaÅ panijaEtiopijaEvro" + - "pska UnijaFinskaFidžiFolklandska OstrvaMikronezijaFarska OstrvaFranc" + - "uskaGabonVelika BritanijaGrenadaGruzijaFrancuska GvajanaGernziGanaGi" + - "braltarGrenlandGambijaGvinejaGvadelupeEkvatorijalna GvinejaGrÄkaJužn" + - "a Džordžija i Južna SendviÄ OstrvaGvatemalaGuamGvineja-BisaoGvajanaH" + - "ong Kong (S. A. R. Kina)Herd i Mekdonald OstrvaHondurasHrvatskaHaiti" + - "MaÄ‘arskaKanarska ostrvaIndonezijaIrskaIzraelOstrvo ManIndijaBritansk" + - "a Territorija u Indijskom OkeanuIrakIranIslandItalijaDžersiJamajkaJo" + - "rdanJapanKenijaKirgizstanKambodžaKiribatiKomorska OstrvaSent Kits i " + - "NevisSjeverna KorejaJužna KorejaKuvajtKajmanska OstrvaKazahstanLaosL" + - "ibanSent LucijaLihtenÅ¡tajnÅ ri LankaLiberijaLesotoLitvanijaLuksemburg" + - "LetonijaLibijaMarokoMonakoMoldavijaCrna GoraSv. MartinMadagaskarMarÅ¡" + - "alska OstrvaMakedonijaMaliMijanmarMongolijaMakao (S. A. R. Kina)Sjev" + - "erna Marijanska OstrvaMartinikMauritanijaMonseratMaltaMauriciusMaldi" + - "viMalaviMeksikoMalezijaMozambikNamibijaNova KaledonijaNigerNorfolk O" + - "strvoNigerijaNikaragvaHolandijaNorveÅ¡kaNepalNauruNiueNovi ZelandOman" + - "PanamaPeruFrancuska PolinezijaPapua Nova GvinejaFilipiniPakistanPolj" + - "skaSen Pjer i MikelonPitkernPorto RikoPalestinska TeritorijaPortugal" + - "PalauParagvajKatarOstala OkeanijaRejunionRumunijaSrbijaRusijaRuandaS" + - "audijska ArabijaSolomonska OstrvaSejÅ¡eliSudanÅ vedskaSingapurSveta He" + - "lenaSlovenijaSvalbard i Janmajen OstrvaSlovaÄkaSijera LeoneSan Marin" + - "oSenegalSomalijaSurinamJužni SudanSao Tome i PrincipeSalvadorSint Ma" + - "rtenSirijaSvazilendTristan da KunjaTurks i Kajkos OstrvaÄŒadFrancuske" + - " Južne TeritorijeTogoTajlandTadžikistanTokelauTimor LesteTurkmenista" + - "nTunisTongaTurskaTrinidad i TobagoTuvaluTajvanTanzanijaUkrajinaUgand" + - "aManja Udaljena Ostrva SADSjedinjene AmeriÄke DržaveUrugvajUzbekista" + - "nVatikanSent Vinsent i GrenadiniVenecuelaBritanska DjeviÄanska Ostrv" + - "aDjeviÄanska Ostrva SADVijetnamVanuatuValis i Futuna OstrvaSamoaKoso" + - "voJemenMajoteJužnoafriÄka RepublikaZambijaZimbabveNepoznata ili neva" + - "žeća oblastSvijetAfrikaSjevernoameriÄki kontinentJužna AmerikaOkean" + - "ijaZapadna AfrikaCentralna AmerikaIstoÄna AfrikaSjeverna AfrikaCentr" + - "alna AfrikaJužna AfrikaAmerikaSjeverna AmerikaKaribiIstoÄna AzijaJuž" + - "na AzijaJugoistoÄna AzijaJužna EvropaAustralija i Novi ZelandMelanez" + - "ijaMikronezijski RegionPolinezijaAzijaCentralna AzijaZapadna AzijaEv" + - "ropaIstoÄna EvropaSjeverna EvropaZapadna EvropaLatinska Amerika", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x000f, 0x0015, 0x002f, 0x0039, 0x004a, 0x0051, 0x0059, - 0x0062, 0x0072, 0x0078, 0x0082, 0x008b, 0x009a, 0x00a2, 0x00ac, - 0x00b1, 0x00c0, 0x00cc, 0x00df, 0x00e7, 0x00f1, 0x00f8, 0x0104, - 0x010c, 0x0113, 0x011a, 0x011f, 0x012d, 0x0134, 0x013a, 0x0142, - 0x0154, 0x015a, 0x0160, 0x0165, 0x0170, 0x0177, 0x0182, 0x0188, - 0x018e, 0x01a3, 0x01be, 0x01d9, 0x01de, 0x01e8, 0x01f8, 0x0205, - 0x020a, 0x0211, 0x0215, 0x021e, 0x022e, 0x0237, 0x023b, 0x0245, - 0x024c, 0x025c, 0x0261, 0x0268, 0x0271, 0x027f, 0x0287, 0x028d, - // Entry 40 - 7F - 0x0295, 0x02ab, 0x02b1, 0x02c0, 0x02c7, 0x02cf, 0x02d5, 0x02e3, - 0x02eb, 0x02f3, 0x02fb, 0x0309, 0x030f, 0x0315, 0x0327, 0x0332, - 0x033f, 0x0348, 0x034d, 0x035d, 0x0364, 0x036b, 0x037c, 0x0382, - 0x0386, 0x038f, 0x0397, 0x039e, 0x03a5, 0x03ae, 0x03c3, 0x03c9, - 0x03f4, 0x03fd, 0x0401, 0x040e, 0x0415, 0x042e, 0x0445, 0x044d, - 0x0455, 0x045a, 0x0463, 0x0472, 0x047c, 0x0481, 0x0487, 0x0491, - 0x0497, 0x04bf, 0x04c3, 0x04c7, 0x04cd, 0x04d4, 0x04db, 0x04e2, - 0x04e8, 0x04ed, 0x04f3, 0x04fd, 0x0506, 0x050e, 0x051d, 0x052e, - // Entry 80 - BF - 0x053d, 0x054a, 0x0550, 0x0560, 0x0569, 0x056d, 0x0572, 0x057d, - 0x0589, 0x0593, 0x059b, 0x05a1, 0x05aa, 0x05b4, 0x05bc, 0x05c2, - 0x05c8, 0x05ce, 0x05d7, 0x05e0, 0x05ea, 0x05f4, 0x0605, 0x060f, - 0x0613, 0x061b, 0x0624, 0x0639, 0x0653, 0x065b, 0x0666, 0x066e, - 0x0673, 0x067c, 0x0683, 0x0689, 0x0690, 0x0698, 0x06a0, 0x06a8, - 0x06b7, 0x06bc, 0x06ca, 0x06d2, 0x06db, 0x06e4, 0x06ed, 0x06f2, - 0x06f7, 0x06fb, 0x0706, 0x070a, 0x0710, 0x0714, 0x0728, 0x073a, - 0x0742, 0x074a, 0x0751, 0x0763, 0x076a, 0x0774, 0x078a, 0x0792, - // Entry C0 - FF - 0x0797, 0x079f, 0x07a4, 0x07b3, 0x07bb, 0x07c3, 0x07c9, 0x07cf, - 0x07d5, 0x07e6, 0x07f7, 0x07ff, 0x0804, 0x080c, 0x0814, 0x0820, - 0x0829, 0x0843, 0x084c, 0x0858, 0x0862, 0x0869, 0x0871, 0x0878, - 0x0884, 0x0897, 0x089f, 0x08aa, 0x08b0, 0x08b9, 0x08c9, 0x08de, - 0x08e2, 0x08fd, 0x0901, 0x0908, 0x0914, 0x091b, 0x0926, 0x0932, - 0x0937, 0x093c, 0x0942, 0x0953, 0x0959, 0x095f, 0x0968, 0x0970, - 0x0976, 0x098f, 0x09ab, 0x09b2, 0x09bc, 0x09c3, 0x09db, 0x09e4, - 0x0a01, 0x0a18, 0x0a20, 0x0a27, 0x0a3c, 0x0a41, 0x0a47, 0x0a4c, - // Entry 100 - 13F - 0x0a52, 0x0a6a, 0x0a71, 0x0a79, 0x0a98, 0x0a9e, 0x0aa4, 0x0abf, - 0x0acd, 0x0ad5, 0x0ae3, 0x0af4, 0x0b03, 0x0b12, 0x0b22, 0x0b2f, - 0x0b36, 0x0b46, 0x0b4c, 0x0b5a, 0x0b66, 0x0b78, 0x0b85, 0x0b9d, - 0x0ba7, 0x0bbb, 0x0bc5, 0x0bca, 0x0bd9, 0x0be6, 0x0bec, 0x0bfb, - 0x0c0a, 0x0c18, 0x0c28, - }, - }, - { // bs-Cyrl - "ОÑтрво ÐÑенÑионÐндораУједињени ÐрапÑки ЕмиратиÐвганиÑтанÐнтигве и Барбуд" + - "аÐнгвилаÐлбанијаÐрменијаХоландÑки ÐнтилиÐнголаÐнтарктикÐргентинаÐме" + - "ричка СамоаÐуÑтријаÐуÑтралијаÐрубаÐландÑка оÑтрваÐзербејџанБоÑна и " + - "ХерцеговинаБарбадоÑБангладешБелгијаБуркина ФаÑоБугарÑкаБахреинБурун" + - "диБенинСвети БартоломејБермудаБрунејБоливијаБразилБахамиБутанБуве О" + - "ÑтрваБоцванаБелоруÑÐ¸Ñ˜Ð°Ð‘ÐµÐ»Ð¸Ð·ÐµÐšÐ°Ð½Ð°Ð´Ð°ÐšÐ¾ÐºÐ¾Ñ (Келинг) ОÑтрваКонго - Кинш" + - "аÑаЦентрално Ðфричка РепубликаКонго - БразавилШвајцарÑкаОбала Слоно" + - "вачеКукова ОÑтрваЧилеКамерунКинаКолумбијаОÑтрво КлипертонКоÑтарикаК" + - "убаКапе ВердеБожићна оÑтрваКипарЧешкаÐемачкаДијего ГарÑијаÐибутиДан" + - "ÑкаДоминикаДоминиканÑка РепубликаÐлжирСеута и МелиљаЕквадорЕÑтонија" + - "ЕгипатЗападна СахараЕритрејаШпанијаЕтиопијаЕвропÑка УнијаФинÑкаФиџи" + - "ФокландÑка оÑтрваМикронезијаФарÑка ОÑтрваФранцуÑкаГабонВелика Брита" + - "нијаГренадаГрузијаФранцуÑка ГвајанаГурнÑиГанаГибралтарГренландГамби" + - "јаГвинејаГваделупеЕкваторијална ГвинејаГрчкаЈужна Ðорџија и Јужна С" + - "ендвич ОÑтрваГватемалаГуамГвинеја-БиÑаоГвајанаХонг Конг С. Ð. Р. Ки" + - "наХерд и Мекдоналд ОÑтрваХондураÑХрватÑкаХаитиМађарÑкаКанарÑка оÑÑ‚Ñ€" + - "ваИндонезијаИрÑкаИзраелОÑтрво МанИндијаБританÑка територија у Индиј" + - "Ñком океануИракИранИÑландИталијаÐерÑиЈамајкаЈорданЈапанКенијаКиргиз" + - "ÑтанКамбоџаКирибатиКоморÑка ОÑтрваСент ÐšÐ¸Ñ‚Ñ Ð¸ ÐевиÑСеверна КорејаЈу" + - "жна КорејаКувајтКајманÑка ОÑтрваКазахÑтанЛаоÑЛибанСент ЛуцијаЛихтен" + - "штајнШри ЛанкаЛиберијаЛеÑотоЛитванијаЛукÑембургЛетонијаЛибијаМароко" + - "МонакоМолдавијаЦрна ГораСент МартинМадагаÑкарМаршалÑка ОÑтрваМакедо" + - "нијаМалиМијанмар (Бурма)МонголијаМакао С. Ð. Р. КинаСеверна Маријан" + - "Ñка ОÑтрваМартиникМауританијаМонÑератМалтаМаурицијуÑМалдивиМалавиМе" + - "кÑикоМалезијаМозамбикÐамибијаÐова КаледонијаÐигерÐорфолк ОÑтрвоÐиге" + - "ријаÐикарагваХоландијаÐорвешкаÐепалÐауруÐиуеÐови ЗеландОманПанамаПе" + - "руФранцуÑка ПолинезијаПапуа Ðова ГвинејаФилипиниПакиÑтанПољÑкаСен П" + - "јер и МикелонПиткернПорто РикоПалеÑтинÑке територијеПортугалијаПала" + - "уПарагвајКатарОÑтала океанијаРеинионРумунијаСрбијаРуÑијаРуандаСауди" + - "јÑка ÐрабијаСоломонÑка ОÑтрваСејшелиСуданШведÑкаСингапурСвета Јелен" + - "аСловенијаСвалбард и Јанмајен ОÑтрваСловачкаСијера ЛеонеСан МариноС" + - "енегалСомалијаСуринамСао Томе и ПринципеСалвадорСиријаСвазилендТриÑ" + - "тан да ÐšÑƒÑšÐ°Ð¢ÑƒÑ€ÐºÑ Ð¸ ÐšÐ°Ñ˜ÐºÐ¾Ñ ÐžÑтрваЧадФранцуÑке Јужне ТериторијеТогоТа" + - "јландТаџикиÑтанТокелауИÑточни ТиморТуркмениÑтанТуниÑТонгаТурÑкаТрин" + - "идад и ТобагоТувалуТајванТанзанијаУкрајинаУгандаМања удаљена оÑтрва" + - " СÐДСједињене Ðмеричке ДржавеУругвајУзбекиÑтанВатиканСент ВинÑент и " + - "ГренадиниВенецуелаБританÑка ДевичанÑка ОÑтрваС.Ð.Д. ДевичанÑка ОÑÑ‚Ñ€" + - "Ð²Ð°Ð’Ð¸Ñ˜ÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ’Ð°Ð»Ð¸Ñ Ð¸ Футуна ОÑтрваСамоаЈеменМајотеЈужноафричка " + - "РепубликаЗамбијаЗимбабвеÐепозната или неважећа облаÑтСветÐфрикаСеве" + - "рноамерички континентЈужна ÐмерикаОкеанијаЗападна ÐфрикаЦентрална Ð" + - "мерикаИÑточна ÐфрикаСеверна ÐфрикаЦентрална ÐфрикаЈужна ÐфрикаÐмери" + - "кеСеверна ÐмерикаКарибиИÑточна ÐзијаЈужна ÐзијаЈугоиÑточна ÐзијаЈуж" + - "на ЕвропаÐуÑтралија и Ðови ЗеландМеланезијаМикронезијÑки регионПоли" + - "незијаÐзијаЦентрална ÐзијаЗападна ÐзијаЕвропаИÑточна ЕвропаСеверна " + - "ЕвропаЗападна ЕвропаЛатинÑка Ðмерика", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x001d, 0x0029, 0x0059, 0x006d, 0x008d, 0x009b, 0x00ab, - 0x00bb, 0x00da, 0x00e6, 0x00f8, 0x010a, 0x0125, 0x0135, 0x0149, - 0x0153, 0x0170, 0x0184, 0x01a8, 0x01b8, 0x01ca, 0x01d8, 0x01ef, - 0x01ff, 0x020d, 0x021b, 0x0225, 0x0244, 0x0252, 0x025e, 0x026e, - 0x026e, 0x027a, 0x0286, 0x0290, 0x02a5, 0x02b3, 0x02c7, 0x02d3, - 0x02df, 0x0305, 0x0320, 0x0354, 0x0371, 0x0385, 0x03a2, 0x03bb, - 0x03c3, 0x03d1, 0x03d9, 0x03eb, 0x040a, 0x041c, 0x0424, 0x0437, - 0x0437, 0x0452, 0x045c, 0x0466, 0x0474, 0x048f, 0x049b, 0x04a7, - // Entry 40 - 7F - 0x04b7, 0x04e2, 0x04ec, 0x0506, 0x0514, 0x0524, 0x0530, 0x054b, - 0x055b, 0x0569, 0x0579, 0x0594, 0x05a0, 0x05a8, 0x05c9, 0x05df, - 0x05f8, 0x060a, 0x0614, 0x0633, 0x0641, 0x064f, 0x0670, 0x067c, - 0x0684, 0x0696, 0x06a6, 0x06b4, 0x06c2, 0x06d4, 0x06fd, 0x0707, - 0x074a, 0x075c, 0x0764, 0x077d, 0x078b, 0x07b1, 0x07dc, 0x07ec, - 0x07fc, 0x0806, 0x0816, 0x0833, 0x0847, 0x0851, 0x085d, 0x0870, - 0x087c, 0x08c6, 0x08ce, 0x08d6, 0x08e2, 0x08f0, 0x08fa, 0x0908, - 0x0914, 0x091e, 0x092a, 0x093e, 0x094c, 0x095c, 0x0979, 0x0998, - // Entry 80 - BF - 0x09b3, 0x09ca, 0x09d6, 0x09f5, 0x0a07, 0x0a0f, 0x0a19, 0x0a2e, - 0x0a44, 0x0a55, 0x0a65, 0x0a71, 0x0a83, 0x0a97, 0x0aa7, 0x0ab3, - 0x0abf, 0x0acb, 0x0add, 0x0aee, 0x0b03, 0x0b17, 0x0b36, 0x0b4a, - 0x0b52, 0x0b6f, 0x0b81, 0x0ba0, 0x0bd0, 0x0be0, 0x0bf6, 0x0c06, - 0x0c10, 0x0c24, 0x0c32, 0x0c3e, 0x0c4c, 0x0c5c, 0x0c6c, 0x0c7c, - 0x0c99, 0x0ca3, 0x0cbe, 0x0cce, 0x0ce0, 0x0cf2, 0x0d02, 0x0d0c, - 0x0d16, 0x0d1e, 0x0d33, 0x0d3b, 0x0d47, 0x0d4f, 0x0d76, 0x0d98, - 0x0da8, 0x0db8, 0x0dc4, 0x0de5, 0x0df3, 0x0e06, 0x0e31, 0x0e47, - // Entry C0 - FF - 0x0e51, 0x0e61, 0x0e6b, 0x0e88, 0x0e96, 0x0ea6, 0x0eb2, 0x0ebe, - 0x0eca, 0x0eeb, 0x0f0c, 0x0f1a, 0x0f24, 0x0f32, 0x0f42, 0x0f59, - 0x0f6b, 0x0f9c, 0x0fac, 0x0fc3, 0x0fd6, 0x0fe4, 0x0ff4, 0x1002, - 0x1002, 0x1025, 0x1035, 0x1035, 0x1041, 0x1053, 0x106f, 0x1096, - 0x109c, 0x10ce, 0x10d6, 0x10e4, 0x10f8, 0x1106, 0x111f, 0x1137, - 0x1141, 0x114b, 0x1157, 0x1177, 0x1183, 0x118f, 0x11a1, 0x11b1, - 0x11bd, 0x11e8, 0x1218, 0x1226, 0x123a, 0x1248, 0x1275, 0x1287, - 0x12bb, 0x12e6, 0x12f6, 0x1304, 0x132b, 0x1335, 0x1335, 0x133f, - // Entry 100 - 13F - 0x134b, 0x1376, 0x1384, 0x1394, 0x13cb, 0x13d3, 0x13df, 0x1410, - 0x1429, 0x1439, 0x1454, 0x1475, 0x1490, 0x14ab, 0x14ca, 0x14e1, - 0x14ef, 0x150c, 0x1518, 0x1531, 0x1546, 0x1567, 0x157e, 0x15ab, - 0x15bf, 0x15e6, 0x15fa, 0x1604, 0x1621, 0x163a, 0x1646, 0x1661, - 0x167c, 0x1697, 0x16b6, - }, - }, - { // ca - caRegionStr, - caRegionIdx, - }, - { // cgg - "AndoraAmahanga ga Buharabu ageeteereineAfuganistaniAngiguwa na BabudaAng" + - "wiraArubaniaArimeniyaAntiri za HoorandiAngoraArigentinaSamowa ya Ame" + - "erikaOsituriaOsitureeriyaArubaAzabagyaniBoziniya na HezegovinaBabado" + - "siBangaradeshiBubirigiBokina FasoBurugariyaBahareniBurundiBeniniBeri" + - "mudaBuruneiBoriiviyaBuraziiriBahamaButaniBotswanaBararusiBerizeKanad" + - "aDemokoratika Ripaaburika ya KongoEihanga rya Rwagati ya AfirikaKong" + - "oSwisiAivore KositiEbizinga bya KuukuChileKameruuniChinaKorombiyaKos" + - "itarikaCubaEbizinga bya KepuvadeSaipurasiRipaaburika ya ZeekiBugirim" + - "aaniGyibutiDeenimaakaDominikaRipaaburika ya DominicaArigyeriyaIkweda" + - "EsitoniyaMisiriEriteriyaSipeyiniEthiyopiyaBufiniFigyiEbizinga bya Fa" + - "akilandaMikironesiyaBufaransaGabooniBungyerezaGurenadaGyogiyaGuyana " + - "ya BufaransaGanaGiburaataGuriinirandiGambiyaGineGwaderupeGuniGuriisi" + - "GwatemaraGwamuGinebisauGuyanaHondurasiKorasiyaHaitiHangareIndoneeziy" + - "aIrerandiIsirairiIndiyaIraakaIraaniAisilandiItareGyamaikaYorudaaniGy" + - "apaaniKenyaKirigizistaniKambodiyaKiribatiKoromoSenti Kittis na Nevis" + - "iKoreya AmatembaKoreya AmashuumaKuweitiEbizinga bya KayimaniKazakisi" + - "taniLayosiLebanoniSenti RusiyaLishenteniSirirankaLiberiyaLesothoLith" + - "uaniaLakizembaagaLatviyaLibyaMoroccoMonacoMoridovaMadagasikaEbizinga" + - " bya MarshaaMasedooniaMariMyanamarMongoriaEbizinga by’amatemba ga Ma" + - "rianaMartiniqueMauriteeniyaMontserratiMaritaMaurishiasiMaridivesMara" + - "wiMexicomarayiziaMozambiqueNamibiyaNiukaredoniaNaigyaEkizinga Norifo" + - "koNaigyeriyaNikaragwaHoorandiNoorweNepoNauruNiueNiuzirandiOmaaniPana" + - "maPeruPolinesia ya BufaransaPapuaFiripinoPakisitaaniPoorandiSenti Pi" + - "yerre na MikweronPitkainiPwetorikoPocugoPalaawuParagwaiKataRiyuniyon" + - "iRomaniyaRrashaRwandaSaudi AreebiyaEbizinga bya SurimaaniShesheresiS" + - "udaniSwideniSingapoSenti HerenaSirovaaniyaSirovaakiyaSirra RiyooniSa" + - "marinoSenegoSomaariyaSurinaamuSawo Tome na PurinsipoEri SalivadoSiri" + - "yaSwazirandiEbizinga bya Buturuki na KaikoChadiTogoTairandiTajikisit" + - "aniTokerawuBurugweizooba bwa TimoriTurukimenisitaniTuniziaTongaButur" + - "uki /TakeTurinidad na TobagoTuvaruTayiwaaniTanzaniaUkureiniUgandaAme" + - "rikaUrugwaiUzibekisitaniVatikaniSenti Vinsent na GurenadiniVenezuwer" + - "aEbizinga bya Virigini ebya BungyerezaEbizinga bya Virigini ebya Ame" + - "rikaViyetinaamuVanuatuWarris na FutunaSamowaYemeniMayoteSausi Afirik" + - "aZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0027, 0x0033, 0x0045, 0x004c, 0x0054, - 0x005d, 0x006f, 0x0075, 0x0075, 0x007f, 0x0091, 0x0099, 0x00a5, - 0x00aa, 0x00aa, 0x00b4, 0x00ca, 0x00d2, 0x00de, 0x00e6, 0x00f1, - 0x00fb, 0x0103, 0x010a, 0x0110, 0x0110, 0x0118, 0x011f, 0x0128, - 0x0128, 0x0131, 0x0137, 0x013d, 0x013d, 0x0145, 0x014d, 0x0153, - 0x0159, 0x0159, 0x017a, 0x0198, 0x019d, 0x01a2, 0x01af, 0x01c1, - 0x01c6, 0x01cf, 0x01d4, 0x01dd, 0x01dd, 0x01e7, 0x01eb, 0x0200, - 0x0200, 0x0200, 0x0209, 0x021d, 0x0228, 0x0228, 0x022f, 0x0239, - // Entry 40 - 7F - 0x0241, 0x0258, 0x0262, 0x0262, 0x0268, 0x0271, 0x0277, 0x0277, - 0x0280, 0x0288, 0x0292, 0x0292, 0x0298, 0x029d, 0x02b4, 0x02c0, - 0x02c0, 0x02c9, 0x02d0, 0x02da, 0x02e2, 0x02e9, 0x02fc, 0x02fc, - 0x0300, 0x0309, 0x0315, 0x031c, 0x0320, 0x0329, 0x032d, 0x0334, - 0x0334, 0x033d, 0x0342, 0x034b, 0x0351, 0x0351, 0x0351, 0x035a, - 0x0362, 0x0367, 0x036e, 0x036e, 0x0379, 0x0381, 0x0389, 0x0389, - 0x038f, 0x038f, 0x0395, 0x039b, 0x03a4, 0x03a9, 0x03a9, 0x03b1, - 0x03ba, 0x03c2, 0x03c7, 0x03d4, 0x03dd, 0x03e5, 0x03eb, 0x0401, - // Entry 80 - BF - 0x0410, 0x0420, 0x0427, 0x043c, 0x0448, 0x044e, 0x0456, 0x0462, - 0x046c, 0x0475, 0x047d, 0x0484, 0x048d, 0x0499, 0x04a0, 0x04a5, - 0x04ac, 0x04b2, 0x04ba, 0x04ba, 0x04ba, 0x04c4, 0x04d8, 0x04e2, - 0x04e6, 0x04ee, 0x04f6, 0x04f6, 0x0517, 0x0521, 0x052d, 0x0538, - 0x053e, 0x0549, 0x0552, 0x0558, 0x055e, 0x0567, 0x0571, 0x0579, - 0x0585, 0x058b, 0x059c, 0x05a6, 0x05af, 0x05b7, 0x05bd, 0x05c1, - 0x05c6, 0x05ca, 0x05d4, 0x05da, 0x05e0, 0x05e4, 0x05fa, 0x05ff, - 0x0607, 0x0612, 0x061a, 0x0633, 0x063b, 0x0644, 0x0644, 0x064a, - // Entry C0 - FF - 0x0651, 0x0659, 0x065d, 0x065d, 0x0667, 0x066f, 0x066f, 0x0675, - 0x067b, 0x0689, 0x069f, 0x06a9, 0x06af, 0x06b6, 0x06bd, 0x06c9, - 0x06d4, 0x06d4, 0x06df, 0x06ec, 0x06f4, 0x06fa, 0x0703, 0x070c, - 0x070c, 0x0722, 0x072e, 0x072e, 0x0734, 0x073e, 0x073e, 0x075c, - 0x0761, 0x0761, 0x0765, 0x076d, 0x0779, 0x0781, 0x0799, 0x07a9, - 0x07b0, 0x07b5, 0x07c3, 0x07d6, 0x07dc, 0x07e5, 0x07ed, 0x07f5, - 0x07fb, 0x07fb, 0x0802, 0x0809, 0x0816, 0x081e, 0x0839, 0x0843, - 0x0868, 0x088a, 0x0895, 0x089c, 0x08ac, 0x08b2, 0x08b2, 0x08b8, - // Entry 100 - 13F - 0x08be, 0x08cb, 0x08d1, 0x08d9, - }, - }, - { // chr - "Ꭰá‚á™áŽ³áŒáŠ Ꭲá³áŽ¾áŽµáá”á… áŽ¡áŽ³áˆ áŽ¢áŽ¹áŽµá˜áᎠá«áŽ¨á‚áá–á‚Ꭴáªá˜ ᎠᎴ á†áŠá“Ꭰá‚ᎩᎳᎠᎵá‡á‚á¯áŽ áŽµáŽ»á‚ᎠᎠá‚ᎪᎳá§ááá“ᎸᎠá¥á‚á˜á‚ᎠᎠᎺ" + - "ᎵᎧ áŒáŽ¼áŽ áŽ ááŸá¯áŽ¡áŽ³á—áœáŽ áŽ·á†áŽ£áŽ´á…á“ ášáŽ¦ášá›áŽ áᎵá†áŒá‚á‰áá‚Ꭰ ᎠᎴ Ꮂá¤áŽªá«á†á‡á™áá†á‚ᎦᎵá•áá‡áŽµá¥áŽ¥áŽ»á‹áŽ©áŽ¾ á©ááŠ" + - "ᎵᎨᎵᎠá†áŽ­áŽ´áŽ¢á‚á‹áŽ·á‚á—á†á‚Ꭲá‚Ꭰá¥áŽ¸á‰á— á†á•áŽ³áŽ»á†áŠá“áŠáŽ¾áŽ¢á‰áŽµá«áŽ á†áᎵᎢᎾáᎩ á†áŽ­áŽ¹ááŠá”á‚áŠáª ᎤᎦášá›á†á£á©áŽ¾á‡áŽ³áŽ·" + - "áá‡áŽµáᎨᎾá“ᎪᎪá (ᎩᎵá‚) ášáŽ¦ášá›áŽ§á‚ᎪᎬᎿᎨáᛠᎠá°áŸ áᎦášáŽ©áŽ§á‚Ꭺ (áᎦášáŽ©)áá«áᎢá¬áŽµ ᎾᎿ ᎠᎹá³áŽ¶á—Ꭰá“á" + - "á“á´áŽ²áᎩ ᎤᎦášá›á¥áŽµáŽ§áŽ¹áŽ·á‚á“Ꮆá‚Ꭸáá›áŽªáŽ¸áŽ»áˆáŽ¢áŽ áŽªáᓠᎵᎧᎫá†áŽ¢áŽ¬áŽ¾á•áŽ¾ Ꭲá¤á³áá—á‚ᎦᓠᎤá‚Ꮂ ᎾᎿ ᎫᎳᎨᎣá“á‚áá“" + - "á²áŽ¯áŽ² ᎤᎦášá›áŒáŽ¢á†áá¤áŽ© áᎦášáŽ©áŽ á‚á›á¥á¥áŠá—á—á‚ᎹᎦá™áŽ»á‚Ꭷá™áŽ»á‚ᎧႠáᎦášáŽ©áŽ áŽµá¥áŽµá¯áŽ¡á†á™áŽµáŽ¡áá™á‚á¯áŽ¢á¥áˆáŽ¢áŽ¡áŽµáŸá¯" + - "Ꭰá‚áá†á‚á±á«á‚Ꭶá™áŽ¯á«á¥á©áŽ© ᎤᎦášá›áŽ á°áŸ á§áŽ¾áŽµáŽªáŽ¯ ᎾᎿ ᎹᎢá‰á‚áá¯áªáŽ¶ ášáŽ¦ášá›áŽ¦áŽ¸á¥á±áŽ¦á‰á‚ᎩᎵáá²á‹áŽ¾á“á£áŽ á¥áŽ¢áŽ á‚" + - "ᎦᎸᥠᎩᎠᎬá‚áᎦᎠᎾá¥á†áŽµá“Ꭲá¤áá›á±áŽ¦áŽ¹áˆáŽ¢áŽ áŽ«á‡á©á“Ꮇá‡áŽ¡á†á™áŽµáŽ áŽµ ᎩᎢá‚ᎪᎢᎯá§áŽ¦áƒá® á£á¥á± ᎠᎴ ᎾáᎩ á§áŽ¦áƒá® " + - "Ꭰáá›áŽ­áŸ ášáŽ¦ášá›á©á”ᎹᎳá†áŽ»áŽ«á‡-áˆáŒáŽ¤á«áŽ¦á¯áŽ¾áŽ°á‚Ꭹ Ꭺá‚ᎩᎲᗠᎤᎦášá› ᎠᎴ ᎺᎩá“ᎾᎵᗠášáŽ¦ášá›áŽ§áŽ¶áŽ¡áᎠᎮᎢá˜áŽ²á‚Ꭶ" + - "ᎵᎢá‚á™á‚áá¯áŽ áŽ¢áŽ´á‚á—ᎢáᎵá±áŽ¤áᗠᎤᎦášá› ᎾᎿ ᎠáᎦá¯áŽ¢á…á—Ꮎáˆá—á á´á«á¯ ᎠᎺበᎢᎬᎾá•á…ᎢᎳᎩᎢᎴá‚á§ááá“ᎸᎯá²" + - "Ꮆá¨áŽµáá£áŽºáŽ¢áŽ§á¦á“á‚á£á©á‚áᎨá‚á¯áŽ©áŽµá£áŽ¢áᎧᎹá‰á—Ꭰá‚ᎧᎵá†á˜áŽªáŽ¼áŽ³áᎠá°áŸ ᎾᎿ Ꭸá¥áŽ¸á‰á— Ꭰá‚áªáŒ ᎠᎴ Ꭰá‚áá«áá§á´á¢" + - " ᎪᎵᎠá§áŽ¦áƒá® ᎪᎵᎠᎫáªáŽ¢á˜áŽ¨áŽ¢áŽ¹á‚ ášáŽ¦ášá›áŽ¢áŽ§áŽáŽ§áá•á‚ᎴᎣáᎴá†áŽ¾á‚ᎵᎦá—á‚áá“á‚áᎵ Ꮃá‚ᎧᎳáˆáŽµá¯áŽ´áá™áŽµá—áªá‚ᎠᎸᎧáŽá‹" + - "ᎩᎳá˜á«áŽ áŽµáˆá¯áŽ¼áŽ¶áŽªáŽ¹áŽ¾áŽªáŽ¹áŽµá™á«áŽ áŽ¼á‚á”áᎦᎶᎠá¥áŽ¸á‰á— á¡á¡áŽ¹á“ᎦáᎧᎵᎹáŒáŽµ ášáŽªášá›áŽ¹áá™á‚ᎢᎠᎹᎵᎹá¯áŽ¹áŽµáŽ¹á‚ᎪᎵᎠᎹᎧ" + - "Ꭳ (Ꭴá“á¤áŽµá“ á§á‚Ꮈá«áá“áᗠᎢᎬᎾá•áŽ¾) á£áŽ¢áŽ¾áᎩ Ꭴá´á¢ á—ᜠᎹᎵᎠᎾ ášáŽ¦ášá›áŽ¹á˜á‚ᎨᎹá˜áŽ¢á¯áŽ¹á‚á˜áŒáŽ³á—ᎹᎵá”ᎼᎵ" + - "áᎥáᎹᎵá—á«áᎹᎳá«áá†á‚á±áŽ¹áŽ´áᎢᎠᎼáŽáŽ»á‡áŽ©áŽ¾áŽ»áˆáŽ¢á¯áŽ¢á¤ ᎧᎵá™á‚Ꭰá‚áƒáŽµá¬áŽµáŽ© ᎤᎦášá›á‚á¥áŽµá¯á‚ᎧᎳá†áá›áŽ³á‚áƒáªáá†áŽµ" + - "áƒáŽ¤áŽ·á‚á³áŽ¢á¤ áᎢᎴá‚á—ᎣᎺá‚á†áŽ¾áŽ¹á‡áŽ·áŽ á‚ᎦᎸᣠá†áŽµá‚áᎠá†á‡ ᎢᤠᎩá‚Ꭰá‚áˆáŽµáŽ©áƒá†áŽ©áá–á‚á‰áŽ³á‚áŽá‚ᘠáˆá“ ᎠᎴ Ꮋá‡" + - "Ꮆá‚áˆáŽ§áŽµá‚ ᎤᎦášá›áŽ¢á‡áŽ¡á™ ᎵᎢᎪá†áŽ´áá—á‚ᎠႠá„Ꭼá«á³áŒá•áŽ©á‰á¥áŽ¦áŽ³á†áŽ´áŽ á«á†áŽ³á‡áŽ¢á¯áŽ§á”ᎵᎶᎹá‚á¯á’áˆá¯á²á‚ᎢᎶá©á‚á“áŒáŽ¤" + - "ᗠᎡᎴáˆáŽ áᎶᎹႠášáŽ¦ášá›áᎡá¥áŽµáá‘á•á‚áá«á•á‚áá‚Ꭶá‰áŽµáŽ á¥áŽ¸á‰á— ᎮᎵᎾáᎶá«á‚ᎠáᎶá©áŽ©áŽ áᎡᎳ ᎴᎣá‚ᎠᎹá°áŸá„á¬áŽµá" + - "á›áŽ¾ Ꭴá”á‚á—Ꭶá™áŽ¯áŽ¡áŽ¶áŽ¯á§á´á¢ ᎠᎺᎵᎦá§áŽ¦áƒá® ᎠᎺᎵᎦᎠᎺᎵᎦᎢ", - []uint16{ // 273 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x000c, 0x0042, 0x0057, 0x0071, 0x007d, 0x008c, - 0x009b, 0x009b, 0x00a7, 0x00b6, 0x00c8, 0x00de, 0x00ea, 0x00f6, - 0x00ff, 0x0118, 0x012a, 0x014a, 0x0156, 0x0168, 0x0177, 0x0187, - 0x0196, 0x01a5, 0x01b1, 0x01bd, 0x01d9, 0x01e2, 0x01eb, 0x01f7, - 0x01f7, 0x0203, 0x0219, 0x0222, 0x0235, 0x0241, 0x024d, 0x0256, - 0x025f, 0x0281, 0x028a, 0x02b0, 0x02c8, 0x02d1, 0x02f1, 0x0316, - 0x031c, 0x0328, 0x033a, 0x034c, 0x034c, 0x035c, 0x0362, 0x0381, - 0x03a8, 0x03ca, 0x03d6, 0x03e9, 0x03f5, 0x03f5, 0x03fe, 0x040a, - // Entry 40 - 7F - 0x0416, 0x0432, 0x0441, 0x0441, 0x044d, 0x045c, 0x0468, 0x0468, - 0x0474, 0x0486, 0x0486, 0x0486, 0x0495, 0x049b, 0x04ae, 0x04e1, - 0x04f4, 0x0500, 0x0509, 0x0515, 0x051e, 0x052a, 0x0540, 0x0549, - 0x0552, 0x055e, 0x056d, 0x057c, 0x0582, 0x058e, 0x05aa, 0x05b3, - 0x0604, 0x0610, 0x0616, 0x0629, 0x0632, 0x0645, 0x067f, 0x067f, - 0x068e, 0x0697, 0x06a3, 0x06a3, 0x06b5, 0x06c4, 0x06d0, 0x06fa, - 0x0706, 0x0733, 0x073c, 0x0745, 0x0757, 0x075d, 0x0766, 0x0772, - 0x077b, 0x0787, 0x0790, 0x079f, 0x07b1, 0x07bd, 0x07c9, 0x080d, - // Entry 80 - BF - 0x0820, 0x0836, 0x0842, 0x085e, 0x0870, 0x0879, 0x0885, 0x0885, - 0x089a, 0x08aa, 0x08b6, 0x08bf, 0x08ce, 0x08dd, 0x08e9, 0x08f2, - 0x08fb, 0x0904, 0x0913, 0x0925, 0x093b, 0x094d, 0x0963, 0x0975, - 0x097b, 0x0987, 0x0996, 0x09e1, 0x0a15, 0x0a21, 0x0a2d, 0x0a3f, - 0x0a48, 0x0a57, 0x0a66, 0x0a6f, 0x0a7b, 0x0a8a, 0x0a99, 0x0aa8, - 0x0ac1, 0x0ac1, 0x0add, 0x0ae9, 0x0af5, 0x0b01, 0x0b07, 0x0b10, - 0x0b19, 0x0b1f, 0x0b35, 0x0b3e, 0x0b47, 0x0b4d, 0x0b6c, 0x0b80, - 0x0b92, 0x0ba1, 0x0baa, 0x0bce, 0x0bea, 0x0bfd, 0x0c28, 0x0c34, - // Entry C0 - FF - 0x0c40, 0x0c4f, 0x0c58, 0x0c58, 0x0c58, 0x0c64, 0x0c6d, 0x0c76, - 0x0c82, 0x0c98, 0x0cb1, 0x0cc0, 0x0cc9, 0x0cd5, 0x0ce4, 0x0cfd, - 0x0d0c, 0x0d0c, 0x0d1b, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, - 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, - 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, - 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d2e, - 0x0d2e, 0x0d2e, 0x0d3a, 0x0d3a, 0x0d3a, 0x0d3a, 0x0d3a, 0x0d3a, - 0x0d3a, 0x0d3a, 0x0d3a, 0x0d3a, 0x0d3a, 0x0d3a, 0x0d3a, 0x0d3a, - // Entry 100 - 13F - 0x0d3a, 0x0d3a, 0x0d3a, 0x0d3a, 0x0d62, 0x0d6b, 0x0d6b, 0x0d81, - 0x0d9a, 0x0d9a, 0x0d9a, 0x0d9a, 0x0d9a, 0x0d9a, 0x0d9a, 0x0d9a, - 0x0da9, - }, - }, - { // cs - csRegionStr, - csRegionIdx, - }, - { // cy - "Ynys AscensionAndorraEmiradau Arabaidd UnedigAfghanistanAntigua a Barbud" + - "aAnguillaAlbaniaArmeniaYnysoedd Caribî yr IseldiroeddAngolaAntarctic" + - "aYr ArianninSamoa AmericaAwstriaAwstraliaArubaYnysoedd Ã…landAzerbaij" + - "anBosnia a HercegovinaBarbadosBangladeshGwlad BelgBurkina FasoBwlgar" + - "iaBahrainBurundiBeninSaint BarthélemyBermudaBruneiBolifiaAntilles yr" + - " IseldiroeddBrasilY BahamasBhutanYnys BouvetBotswanaBelarwsBelizeCan" + - "adaYnysoedd Cocos (Keeling)Y Congo - KinshasaGweriniaeth Canolbarth " + - "AffricaY Congo - BrazzavilleY SwistirCôte d’IvoireYnysoedd CookChile" + - "CamerŵnTsieinaColombiaYnys ClippertonCosta RicaCiwbaCabo VerdeCuraça" + - "oYnys y NadoligCyprusGweriniaeth TsiecYr AlmaenDiego GarciaDjiboutiD" + - "enmarcDominicaGweriniaeth DominicaAlgeriaCeuta a MelillaEcuadorEston" + - "iaYr AifftGorllewin SaharaEritreaSbaenEthiopiaYr Undeb EwropeaiddY F" + - "findirFijiYnysoedd y Falkland/MalvinasMicronesiaFøroyarFfraincGabonY" + - " Deyrnas UnedigGrenadaGeorgiaGuyane FfrengigYnys y GarnGhanaGibralta" + - "rYr Ynys LasGambiaGuinéeGuadeloupeGuinea GyhydeddolGwlad GroegDe Geo" + - "rgia ac Ynysoedd Sandwich y DeGuatemalaGuamGuiné-BissauGuyanaHong Ko" + - "ng RhGA TsieinaYnys Heard ac Ynysoedd McDonaldHondurasCroatiaHaitiHw" + - "ngariYr Ynysoedd DedwyddIndonesiaIwerddonIsraelYnys ManawIndiaTiriog" + - "aeth Brydeinig Cefnfor IndiaIracIranGwlad yr IâYr EidalJerseyJamaica" + - "Gwlad IorddonenJapanKenyaKyrgyzstanCambodiaKiribatiComorosSaint Kitt" + - "s a NevisGogledd KoreaDe KoreaKuwaitYnysoedd CaymanKazakstanLaosLiba" + - "nusSaint LuciaLiechtensteinSri LankaLiberiaLesothoLithuaniaLwcsembwr" + - "gLatfiaLibyaMorocoMonacoMoldofaMontenegroSaint MartinMadagascarYnyso" + - "edd MarshallMacedoniaMaliMyanmar (Burma)MongoliaMacau RhGA TsieinaYn" + - "ysoedd Gogledd MarianaMartiniqueMauritaniaMontserratMaltaMauritiusY " + - "MaldivesMalawiMecsicoMalaysiaMozambiqueNamibiaCaledonia NewyddNigerY" + - "nys NorfolkNigeriaNicaraguaYr IseldiroeddNorwyNepalNauruNiueSeland N" + - "ewyddOmanPanamaPeriwPolynesia FfrengigPapua Guinea NewyddPilipinasPa" + - "kistanGwlad PwylSaint-Pierre-et-MiquelonYnysoedd PitcairnPuerto Rico" + - "Tiriogaethau PalesteinaiddPortiwgalPalauParaguayQatarOceania Bellenn" + - "igRéunionRwmaniaSerbiaRwsiaRwandaSaudi ArabiaYnysoedd SolomonSeychel" + - "lesSwdanSwedenSingaporeSaint HelenaSlofeniaSvalbard a Jan MayenSlofa" + - "ciaSierra LeoneSan MarinoSénégalSomaliaSurinameDe SwdanSão Tomé a Pr" + - "íncipeEl SalvadorSint MaartenSyriaGwlad SwaziTristan da CunhaYnysoe" + - "dd Turks a CaicosTchadTiroedd Deheuol ac Antarctig FfraincTogoGwlad " + - "ThaiTajikistanTokelauTimor-LesteTurkmenistanTunisiaTongaTwrciTrinida" + - "d a TobagoTuvaluTaiwanTanzaniaWcráinUgandaYnysoedd Pellennig UDAYr U" + - "nol DaleithiauUruguayUzbekistanY FaticanSaint Vincent a’r Grenadines" + - "VenezuelaYnysoedd Gwyryf PrydainYnysoedd Gwyryf yr Unol DaleithiauFi" + - "etnamVanuatuWallis a FutunaSamoaKosovoYemenMayotteDe AffricaZambiaZi" + - "mbabweRhanbarth AnhysbysY BydAffricaGogledd AmericaDe AmericaOceania" + - "Gorllewin AffricaCanolbarth AmericaDwyrain AffricaGogledd AffricaCan" + - "ol AffricaDeheudir AffricaYr AmerigAmerica i’r Gogledd o MecsicoY Ca" + - "ribîDwyrain AsiaDe AsiaDe-Ddwyrain AsiaDe EwropAwstralasiaMelanesiaR" + - "hanbarth MicronesiaPolynesiaAsiaCanol AsiaGorllewin AsiaEwropDwyrain" + - " EwropGogledd EwropGorllewin EwropAmerica Ladin", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x000e, 0x0015, 0x002d, 0x0038, 0x0049, 0x0051, 0x0058, - 0x005f, 0x007e, 0x0084, 0x008e, 0x0099, 0x00a6, 0x00ad, 0x00b6, - 0x00bb, 0x00ca, 0x00d4, 0x00e8, 0x00f0, 0x00fa, 0x0104, 0x0110, - 0x0118, 0x011f, 0x0126, 0x012b, 0x013c, 0x0143, 0x0149, 0x0150, - 0x0167, 0x016d, 0x0176, 0x017c, 0x0187, 0x018f, 0x0196, 0x019c, - 0x01a2, 0x01ba, 0x01cc, 0x01ea, 0x01ff, 0x0208, 0x0218, 0x0225, - 0x022a, 0x0232, 0x0239, 0x0241, 0x0250, 0x025a, 0x025f, 0x0269, - 0x0271, 0x027f, 0x0285, 0x0296, 0x029f, 0x02ab, 0x02b3, 0x02ba, - // Entry 40 - 7F - 0x02c2, 0x02d6, 0x02dd, 0x02ec, 0x02f3, 0x02fa, 0x0302, 0x0312, - 0x0319, 0x031e, 0x0326, 0x0339, 0x0342, 0x0346, 0x0362, 0x036c, - 0x0374, 0x037b, 0x0380, 0x0390, 0x0397, 0x039e, 0x03ad, 0x03b8, - 0x03bd, 0x03c6, 0x03d1, 0x03d7, 0x03de, 0x03e8, 0x03f9, 0x0404, - 0x0428, 0x0431, 0x0435, 0x0442, 0x0448, 0x045e, 0x047d, 0x0485, - 0x048c, 0x0491, 0x0498, 0x04ab, 0x04b4, 0x04bc, 0x04c2, 0x04cc, - 0x04d1, 0x04f3, 0x04f7, 0x04fb, 0x0507, 0x050f, 0x0515, 0x051c, - 0x052b, 0x0530, 0x0535, 0x053f, 0x0547, 0x054f, 0x0556, 0x0569, - // Entry 80 - BF - 0x0576, 0x057e, 0x0584, 0x0593, 0x059c, 0x05a0, 0x05a7, 0x05b2, - 0x05bf, 0x05c8, 0x05cf, 0x05d6, 0x05df, 0x05e9, 0x05ef, 0x05f4, - 0x05fa, 0x0600, 0x0607, 0x0611, 0x061d, 0x0627, 0x0638, 0x0641, - 0x0645, 0x0654, 0x065c, 0x066e, 0x0686, 0x0690, 0x069a, 0x06a4, - 0x06a9, 0x06b2, 0x06bc, 0x06c2, 0x06c9, 0x06d1, 0x06db, 0x06e2, - 0x06f2, 0x06f7, 0x0703, 0x070a, 0x0713, 0x0721, 0x0726, 0x072b, - 0x0730, 0x0734, 0x0741, 0x0745, 0x074b, 0x0750, 0x0762, 0x0775, - 0x077e, 0x0786, 0x0790, 0x07a8, 0x07b9, 0x07c4, 0x07de, 0x07e7, - // Entry C0 - FF - 0x07ec, 0x07f4, 0x07f9, 0x080a, 0x0812, 0x0819, 0x081f, 0x0824, - 0x082a, 0x0836, 0x0846, 0x0850, 0x0855, 0x085b, 0x0864, 0x0870, - 0x0878, 0x088c, 0x0894, 0x08a0, 0x08aa, 0x08b3, 0x08ba, 0x08c2, - 0x08ca, 0x08e0, 0x08eb, 0x08f7, 0x08fc, 0x0907, 0x0917, 0x092e, - 0x0933, 0x0957, 0x095b, 0x0965, 0x096f, 0x0976, 0x0981, 0x098d, - 0x0994, 0x0999, 0x099e, 0x09af, 0x09b5, 0x09bb, 0x09c3, 0x09ca, - 0x09d0, 0x09e6, 0x09f8, 0x09ff, 0x0a09, 0x0a12, 0x0a30, 0x0a39, - 0x0a50, 0x0a72, 0x0a79, 0x0a80, 0x0a8f, 0x0a94, 0x0a9a, 0x0a9f, - // Entry 100 - 13F - 0x0aa6, 0x0ab0, 0x0ab6, 0x0abe, 0x0ad0, 0x0ad5, 0x0adc, 0x0aeb, - 0x0af5, 0x0afc, 0x0b0d, 0x0b1f, 0x0b2e, 0x0b3d, 0x0b4a, 0x0b5a, - 0x0b63, 0x0b82, 0x0b8b, 0x0b97, 0x0b9e, 0x0bae, 0x0bb6, 0x0bc1, - 0x0bca, 0x0bde, 0x0be7, 0x0beb, 0x0bf5, 0x0c03, 0x0c08, 0x0c15, - 0x0c22, 0x0c31, 0x0c3e, - }, - }, - { // da - daRegionStr, - daRegionIdx, - }, - { // dav - "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + - "iaAntili za UholanziAngolaAjentinaSamoa ya MarekaniAustriaAustraliaA" + - "rubaAzabajaniBosnia na HezegovinaBabadosiBangladeshiUbelgijiBukinafa" + - "soBulgariaBahareniBurundiBeniniBermudaBruneiBoliviaBraziliBahamaButa" + - "niBotswanaBelarusiBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhur" + - "i ya Afrika ya KatiKongoUswisiKodivaaVisiwa vya CookChileKameruniChi" + - "naKolombiaKostarikaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibut" + - "iDenmakiDominikaJamhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaH" + - "ispaniaUhabeshiUfiniFijiVisiwa vya FalklandMikronesiaUfaransaGaboniU" + - "ingerezaGrenadaJojiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaG" + - "ineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKor" + - "asiaHaitiHungariaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza kati" + - "ka Bahari HindiIrakiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKir" + - "igizistaniKambodiaKiribatiKomoroSantakitzi na NevisKorea KaskaziniKo" + - "rea KusiniKuwaitiVisiwa vya KaymanKazakistaniLaosiLebanoniSantalusia" + - "LishenteniSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoM" + - "onakoMoldovaBukiniVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa" + - " vya Mariana vya KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiMo" + - "divuMalawiMeksikoMalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha " + - "NorfokNijeriaNikaragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPan" + - "amaPeruPolinesia ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri " + - "na MikeloniPitkairniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza w" + - "a PalestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiV" + - "isiwa vya SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaSl" + - "ovakiaSiera LeoniSamarinoSenegaliSomaliaSurinamuSao Tome na Principe" + - "ElsavadoSiriaUswaziVisiwa vya Turki na KaikoChadiTogoTailandiTajikis" + - "taniTokelauTimori ya MasharikiTurukimenistaniTunisiaTongaUturukiTrin" + - "idad na TobagoTuvaluTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibe" + - "kistaniVatikaniSantavisenti na GrenadiniVenezuelaVisiwa vya Virgin v" + - "ya UingerezaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWalis na F" + - "utunaSamoaYemeniMayotteAfrika KusiniZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, - 0x004a, 0x005c, 0x0062, 0x0062, 0x006a, 0x007b, 0x0082, 0x008b, - 0x0090, 0x0090, 0x0099, 0x00ad, 0x00b5, 0x00c0, 0x00c8, 0x00d2, - 0x00da, 0x00e2, 0x00e9, 0x00ef, 0x00ef, 0x00f6, 0x00fc, 0x0103, - 0x0103, 0x010a, 0x0110, 0x0116, 0x0116, 0x011e, 0x0126, 0x012c, - 0x0132, 0x0132, 0x0152, 0x016b, 0x0170, 0x0176, 0x017d, 0x018c, - 0x0191, 0x0199, 0x019e, 0x01a6, 0x01a6, 0x01af, 0x01b3, 0x01bb, - 0x01bb, 0x01bb, 0x01c2, 0x01d2, 0x01db, 0x01db, 0x01e1, 0x01e8, - // Entry 40 - 7F - 0x01f0, 0x0203, 0x020a, 0x020a, 0x0210, 0x0217, 0x021c, 0x021c, - 0x0223, 0x022b, 0x0233, 0x0233, 0x0238, 0x023c, 0x024f, 0x0259, - 0x0259, 0x0261, 0x0267, 0x0270, 0x0277, 0x027c, 0x028f, 0x028f, - 0x0294, 0x029c, 0x02a5, 0x02ab, 0x02af, 0x02b8, 0x02c1, 0x02c8, - 0x02c8, 0x02d1, 0x02d5, 0x02de, 0x02e4, 0x02e4, 0x02e4, 0x02ed, - 0x02f4, 0x02f9, 0x0301, 0x0301, 0x030a, 0x0312, 0x0319, 0x0319, - 0x031e, 0x0343, 0x0348, 0x034e, 0x0356, 0x035c, 0x035c, 0x0363, - 0x036a, 0x0370, 0x0375, 0x0382, 0x038a, 0x0392, 0x0398, 0x03ab, - // Entry 80 - BF - 0x03ba, 0x03c6, 0x03cd, 0x03de, 0x03e9, 0x03ee, 0x03f6, 0x0400, - 0x040a, 0x0413, 0x041a, 0x0420, 0x0428, 0x0431, 0x0438, 0x043d, - 0x0443, 0x0449, 0x0450, 0x0450, 0x0450, 0x0456, 0x0468, 0x0471, - 0x0475, 0x047a, 0x0482, 0x0482, 0x04a2, 0x04ab, 0x04b4, 0x04bf, - 0x04c4, 0x04ca, 0x04d0, 0x04d6, 0x04dd, 0x04e4, 0x04ec, 0x04f3, - 0x04ff, 0x0505, 0x0516, 0x051d, 0x0526, 0x052e, 0x0533, 0x0539, - 0x053e, 0x0542, 0x054c, 0x0551, 0x0557, 0x055b, 0x0570, 0x0575, - 0x057d, 0x0586, 0x058d, 0x05a3, 0x05ac, 0x05b5, 0x05e7, 0x05ec, - // Entry C0 - FF - 0x05f1, 0x05f9, 0x05ff, 0x05ff, 0x0608, 0x060f, 0x060f, 0x0614, - 0x061a, 0x061f, 0x0631, 0x063b, 0x0641, 0x0647, 0x064f, 0x065a, - 0x0662, 0x0662, 0x066a, 0x0675, 0x067d, 0x0685, 0x068c, 0x0694, - 0x0694, 0x06a8, 0x06b0, 0x06b0, 0x06b5, 0x06bb, 0x06bb, 0x06d4, - 0x06d9, 0x06d9, 0x06dd, 0x06e5, 0x06f0, 0x06f7, 0x070a, 0x0719, - 0x0720, 0x0725, 0x072c, 0x073e, 0x0744, 0x074b, 0x0753, 0x075a, - 0x0760, 0x0760, 0x0768, 0x076f, 0x077b, 0x0783, 0x079c, 0x07a5, - 0x07c4, 0x07e2, 0x07eb, 0x07f2, 0x0801, 0x0806, 0x0806, 0x080c, - // Entry 100 - 13F - 0x0813, 0x0820, 0x0826, 0x082e, - }, - }, - { // de - deRegionStr, - deRegionIdx, - }, - { // de-CH - "BangladeshBruneiBotswanaWeissrusslandGrossbritannienMarshall-InselnÄusse" + - "res OzeanienSalomon-InselnZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0018, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - // Entry 40 - 7F - 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - // Entry 80 - BF - 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0043, 0x0043, - 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, - 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, - 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, - 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, - 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, - // Entry C0 - FF - 0x0043, 0x0043, 0x0043, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, - 0x0055, 0x0055, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, - // Entry 100 - 13F - 0x0063, 0x0063, 0x0063, 0x006b, - }, - }, - { // dje - "AndooraLaaraw Imaarawey MarganteyAfgaanistanAntigua nda BarbuudaAngiiyaA" + - "lbaaniArmeeniHollandu Antiiyey LabooAngoolaArgentineAmeriki SamoaOtr" + - "iÅ¡iOstraaliAruubaAzerbaayijaÅ‹Bosni nda HerzegovineBarbaadosBangladeÅ¡" + - "iBelgiikiBurkina fasoBulgaariBahareenBurundiBeniÅ‹BermudaBruuneeBooli" + - "viBreezilBahamasBuutaÅ‹BotswaanaBiloriÅ¡iBeliiziKanaadaKongoo demookar" + - "atiki labooCentraafriki koyraKongooSwisuKudwarKuuk gungeyÅ iiliKameru" + - "unÅ iinKolombiKosta rikaKuubaKapuver gungeyÅ iipurCek laboAlmaaɲeJibuu" + - "tiDanemarkDoominiki labooAlžeeriEkwateerEstooniMisraEritreeEspaaɲeEc" + - "ioopiFinlanduFijiKalkan gungeyMikroneziFaransiGaabonAlbaasalaama Mar" + - "gantaGrenaadaGorgiFaransi GuyaanGaanaGibraltarGrinlandGambiGineGwade" + - "luupGinee EkwatorialGreeceGwatemaalaGuamGine-BissoGuyaaneHondurasKrw" + - "aasiHaitiHungaariIndoneeziIrlanduIsrayelIndu labooBritiÅ¡i Indu teeko" + - "o laamaIraakIraanAyselandItaaliJamaayikUrdunJaapoÅ‹KeeniyaKyrgyzstank" + - "amboogiKiribaatiKomoorSeÅ‹ Kitts nda NevisGurma KooreeHawsa KooreeKuw" + - "eetKayman gungeyKaazakstanLaawosLubnaanSeÅ‹ LussiaLiechtensteinSrilan" + - "kaLiberiaLeesotoLituaaniLuxembourgLetooniLiibiMaarokMonakoMoldoviMad" + - "agascarMarÅ¡al gungeyMaacedooniMaaliMaynamarMongooliMariana Gurma Gun" + - "geyMartiniikiMooritaaniMontserratMaltaMooris gungeyMaldiivuMalaawiMe" + - "xikiMaleeziMozambikNaamibiKaaledooni TaagaaNižerNorfolk GungooNaajir" + - "iiaNikaragwaHollanduNorveejNeepalNauruNiueZeelandu TaagaOmaanPanamaP" + - "eeruFaransi PolineeziPapua Ginee TaagaFilipinePaakistanPoloɲeSeÅ‹ Piy" + - "er nda MikelonPitikarinPorto RikoPalestine Dangay nda GaazaPortugaal" + - "PaluParaguweyKataarReenioÅ‹RumaaniIriÅ¡i labooRwandaSaudiyaSolomon Gun" + - "geySeeÅ¡elSuudaÅ‹SweedeSingapurSeÅ‹ HelenaSloveeniSlovaakiSeera LeonSan" + - " MarinoSenegalSomaaliSurinaamSao Tome nda PrinsipeSalvador labooSuur" + - "iaSwazilandTurk nda Kayikos GungeyCaaduTogoTaayilandTaažikistanTokel" + - "auTimoor hawsaTurkmenistaÅ‹TuniziTongaTurkiTrinidad nda TobaagoTuvalu" + - "TaayiwanTanzaaniUkreenUgandaAmeriki Laabu MarganteyUruguweyUzbeekist" + - "anVaatikan LaamaSeÅ‹vinsaÅ‹ nda GrenadineVeneezuyeelaBritiÅ¡i Virgin gu" + - "ngeyAmeerik Virgin GungeyVietnaamVanautuWallis nda FutunaSamoaYamanM" + - "ayootiHawsa Afriki LabooZambiZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x0021, 0x002c, 0x0040, 0x0047, 0x004e, - 0x0055, 0x006c, 0x0073, 0x0073, 0x007c, 0x0089, 0x0090, 0x0098, - 0x009e, 0x009e, 0x00ab, 0x00c0, 0x00c9, 0x00d4, 0x00dc, 0x00e8, - 0x00f0, 0x00f8, 0x00ff, 0x0105, 0x0105, 0x010c, 0x0113, 0x011a, - 0x011a, 0x0121, 0x0128, 0x012f, 0x012f, 0x0138, 0x0141, 0x0148, - 0x014f, 0x014f, 0x0169, 0x017b, 0x0181, 0x0186, 0x018c, 0x0197, - 0x019d, 0x01a5, 0x01aa, 0x01b1, 0x01b1, 0x01bb, 0x01c0, 0x01ce, - 0x01ce, 0x01ce, 0x01d5, 0x01dd, 0x01e5, 0x01e5, 0x01ec, 0x01f4, - // Entry 40 - 7F - 0x01f4, 0x0203, 0x020b, 0x020b, 0x0213, 0x021a, 0x021f, 0x021f, - 0x0226, 0x022e, 0x0235, 0x0235, 0x023d, 0x0241, 0x024e, 0x0257, - 0x0257, 0x025e, 0x0264, 0x0279, 0x0281, 0x0286, 0x0294, 0x0294, - 0x0299, 0x02a2, 0x02aa, 0x02af, 0x02b3, 0x02bc, 0x02cc, 0x02d2, - 0x02d2, 0x02dc, 0x02e0, 0x02ea, 0x02f1, 0x02f1, 0x02f1, 0x02f9, - 0x0300, 0x0305, 0x030d, 0x030d, 0x0316, 0x031d, 0x0324, 0x0324, - 0x032e, 0x0348, 0x034d, 0x0352, 0x035a, 0x0360, 0x0360, 0x0368, - 0x036d, 0x0374, 0x037b, 0x0385, 0x038d, 0x0396, 0x039c, 0x03b0, - // Entry 80 - BF - 0x03bc, 0x03c8, 0x03ce, 0x03db, 0x03e5, 0x03eb, 0x03f2, 0x03fd, - 0x040a, 0x0412, 0x0419, 0x0420, 0x0428, 0x0432, 0x0439, 0x043e, - 0x0444, 0x044a, 0x0451, 0x0451, 0x0451, 0x045b, 0x0469, 0x0473, - 0x0478, 0x0480, 0x0488, 0x0488, 0x049c, 0x04a6, 0x04b0, 0x04ba, - 0x04bf, 0x04cc, 0x04d4, 0x04db, 0x04e1, 0x04e8, 0x04f0, 0x04f7, - 0x0508, 0x050e, 0x051c, 0x0525, 0x052e, 0x0536, 0x053d, 0x0543, - 0x0548, 0x054c, 0x055a, 0x055f, 0x0565, 0x056a, 0x057b, 0x058c, - 0x0594, 0x059d, 0x05a4, 0x05ba, 0x05c3, 0x05cd, 0x05e7, 0x05f0, - // Entry C0 - FF - 0x05f4, 0x05fd, 0x0603, 0x0603, 0x060b, 0x0612, 0x0612, 0x061e, - 0x0624, 0x062b, 0x0639, 0x0640, 0x0647, 0x064d, 0x0655, 0x0660, - 0x0668, 0x0668, 0x0670, 0x067a, 0x0684, 0x068b, 0x0692, 0x069a, - 0x069a, 0x06af, 0x06bd, 0x06bd, 0x06c3, 0x06cc, 0x06cc, 0x06e3, - 0x06e8, 0x06e8, 0x06ec, 0x06f5, 0x0701, 0x0708, 0x0714, 0x0721, - 0x0727, 0x072c, 0x0731, 0x0745, 0x074b, 0x0753, 0x075b, 0x0761, - 0x0767, 0x0767, 0x077e, 0x0786, 0x0791, 0x079f, 0x07b8, 0x07c4, - 0x07da, 0x07ef, 0x07f7, 0x07fe, 0x080f, 0x0814, 0x0814, 0x0819, - // Entry 100 - 13F - 0x0820, 0x0832, 0x0837, 0x083f, - }, - }, - { // dsb - "AscensionAndorraZjadnoÅ›one arabiske emiratyAfghanistanAntigua a BarbudaA" + - "nguillaAlbaÅ„skaArmeÅ„skaAngolaAntarktisArgentinskaAmeriska SamoaAwstr" + - "iskaAwstralskaArubaÃ…landAzerbajdžanBosniska a HercegowinaBarbadosBan" + - "gladeÅ¡BelgiskaBurkina FasoBulgarskaBahrainBurundiBeninSt. Barthélemy" + - "BermudyBruneiBoliwiskaKaribiska NižozemskaBrazilskaBahamyBhutanBouve" + - "towa kupaBotswanaBěłoruskaBelizeKanadaKokosowe kupyKongo-KinshasaCen" + - "tralnoafriska republikaKongo-BrazzavilleÅ wicarskaCôte d’IvoireCookow" + - "e kupyChilskaKamerunChinaKolumbiskaClippertonowa kupaKosta RikaKubaK" + - "ap VerdeCuraçaoGódowne kupyCypriskaÄŒeska republikaNimskaDiego Garcia" + - "DžibutiDaÅ„skaDominikaDominikaÅ„ska republikaAlgeriskaCeuta a MelillaE" + - "kwadorEstniskaEgyptojskaPódwjacorna SaharaEritrejaÅ paÅ„skaEtiopiskaEu" + - "ropska unijaFinskaFidžiFalklandske kupyMikroneziskaFäröjeFrancojskaG" + - "abunZjadnoÅ›one kralejstwoGrenadaGeorgiskaFrancojska GuyanaGuernseyGh" + - "anaGibraltarGrönlandskaGambijaGinejaGuadeloupeEkwatorialna GinejaGri" + - "chiskaPódpoÅ‚dnjowa Georgiska a PódpoÅ‚dnjowe Sandwichowe kupyGuatemal" + - "aGuamGineja-BissauGuyanaWósebna zastojnstwowa cona HongkongHeardowa " + - "kupa a McDonaldowe kupyHondurasChorwatskaHaitiHungorskaKanariske kup" + - "yIndoneziskaIrskaIsraelManIndiskaBritiski indiskooceaniski teritoriu" + - "mIrakIranIslandskaItalskaJerseyJamaikaJordaniskaJapaÅ„skaKeniaKirgizi" + - "stanKambodžaKiribatiKomorySt. Kitts a NevisPódpoÅ‚nocna KorejaPódpoÅ‚d" + - "njowa KorejaKuwaitKajmaniske kupyKazachstanLaosLibanonSt. LuciaLiech" + - "tensteinSri LankaLiberijaLesothoLitawskaLuxemburgskaLetiskaLibyskaMa" + - "rokkoMonacoMoldawskaCarna GóraSt. MartinMadagaskarMarshallowe kupyMa" + - "kedoÅ„skaMaliMyanmarMongolskaWósebna zastojnstwowa cona MacaoPódpoÅ‚no" + - "cne MarianyMartiniqueMawretaÅ„skaMontserratMaltaMauritiusMalediwyMala" + - "wiMexikoMalajzijaMosambikNamibijaNowa KaledoniskaNigerNorfolkowa kup" + - "aNigerijaNikaraguaNižozemskaNorwegskaNepalNauruNiueNowoseelandskaOma" + - "nPanamaPeruFrancojska PolyneziskaPapua-NeuguineaFilipinyPakistanPóls" + - "kaSt. Pierre a MiquelonPitcairnowe kupyPuerto RicoPalestinski awtono" + - "mny teritoriumPortugalskaPalauParaguayKatarwenkowna OceaniskaRéunion" + - "RumuÅ„skaSerbiskaRuskaRuandaSaudi-ArabiskaSalomonySeychelleSudanÅ weds" + - "kaSingapurSt. HelenaSÅ‚owjeÅ„skaSvalbard a Jan MayenSÅ‚owakskaSierra Le" + - "oneSan MarinoSenegalSomalijaSurinamskaPódpoÅ‚dnjowy SudanSão Tomé a P" + - "ríncipeEl SalvadorSint MaartenSyriskaSwasiskaTristan da CunhaTurks a" + - " Caicos kupyÄŒadFrancojski pódpoÅ‚dnjowy a antarktiski teritoriumTogoT" + - "hailandskaTadźikistanTokelauTimor-LesteTurkmeniskaTuneziskaTongaTurk" + - "ojskaTrinidad a TobagoTuvaluTaiwanTansanijaUkrainaUgandaAmeriska Oce" + - "aniskaZjadnoÅ›one staty AmerikiUruguayUzbekistanVatikaÅ„ske mÄ›stoSt. V" + - "incent a GrenadinyVenezuelaBritiske kněžniske kupyAmeriske kněžniske" + - " kupyVietnamVanuatuWallis a FutunaSamoaKosowoJemenMayottePódpoÅ‚dnjow" + - "a Afrika (Republika)SambijaSimbabwenjeznaty regionswÄ›tAfrikaPódpoÅ‚no" + - "cna AmerikaPódpoÅ‚dnjowa AmerikaOceaniskaPódwjacorna AfrikaSrjejźna A" + - "merikapódzajtÅ¡na AfrikapódpoÅ‚nocna Afrikasrjejźna AfrikapódpoÅ‚dnjowa" + - " AfrikaAmerikapódpoÅ‚nocny ameriski kontinentKaribiskapódzajtÅ¡na Azij" + - "apódpoÅ‚dnjowa AzijakrotkozajtÅ¡na AzijapódpoÅ‚dnjowa EuropaAwstralazij" + - "aMelaneziskaMikroneziska (kupowy region)PolyneziskaAzijacentralna Az" + - "ijapódwjacorna AzijaEuropapódzajtÅ¡na EuropapódpoÅ‚nocna Europapódwjac" + - "orna EuropaÅatyÅ„ska Amerika", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0009, 0x0010, 0x002c, 0x0037, 0x0048, 0x0050, 0x0059, - 0x0062, 0x0062, 0x0068, 0x0071, 0x007c, 0x008a, 0x0093, 0x009d, - 0x00a2, 0x00a8, 0x00b4, 0x00ca, 0x00d2, 0x00dc, 0x00e4, 0x00f0, - 0x00f9, 0x0100, 0x0107, 0x010c, 0x011b, 0x0122, 0x0128, 0x0131, - 0x0146, 0x014f, 0x0155, 0x015b, 0x0169, 0x0171, 0x017c, 0x0182, - 0x0188, 0x0195, 0x01a3, 0x01bd, 0x01ce, 0x01d8, 0x01e8, 0x01f4, - 0x01fb, 0x0202, 0x0207, 0x0211, 0x0223, 0x022d, 0x0231, 0x023a, - 0x0242, 0x024f, 0x0257, 0x0267, 0x026d, 0x0279, 0x0281, 0x0288, - // Entry 40 - 7F - 0x0290, 0x02a7, 0x02b0, 0x02bf, 0x02c6, 0x02ce, 0x02d8, 0x02eb, - 0x02f3, 0x02fc, 0x0305, 0x0313, 0x0319, 0x031f, 0x032f, 0x033b, - 0x0343, 0x034d, 0x0352, 0x0368, 0x036f, 0x0378, 0x0389, 0x0391, - 0x0396, 0x039f, 0x03ab, 0x03b2, 0x03b8, 0x03c2, 0x03d5, 0x03de, - 0x0418, 0x0421, 0x0425, 0x0432, 0x0438, 0x045c, 0x047c, 0x0484, - 0x048e, 0x0493, 0x049c, 0x04aa, 0x04b5, 0x04ba, 0x04c0, 0x04c3, - 0x04ca, 0x04ee, 0x04f2, 0x04f6, 0x04ff, 0x0506, 0x050c, 0x0513, - 0x051d, 0x0526, 0x052b, 0x0536, 0x053f, 0x0547, 0x054d, 0x055e, - // Entry 80 - BF - 0x0572, 0x0587, 0x058d, 0x059c, 0x05a6, 0x05aa, 0x05b1, 0x05ba, - 0x05c7, 0x05d0, 0x05d8, 0x05df, 0x05e7, 0x05f3, 0x05fa, 0x0601, - 0x0608, 0x060e, 0x0617, 0x0622, 0x062c, 0x0636, 0x0646, 0x0651, - 0x0655, 0x065c, 0x0665, 0x0686, 0x069b, 0x06a5, 0x06b1, 0x06bb, - 0x06c0, 0x06c9, 0x06d1, 0x06d7, 0x06dd, 0x06e6, 0x06ee, 0x06f6, - 0x0706, 0x070b, 0x071a, 0x0722, 0x072b, 0x0736, 0x073f, 0x0744, - 0x0749, 0x074d, 0x075b, 0x075f, 0x0765, 0x0769, 0x077f, 0x078e, - 0x0796, 0x079e, 0x07a5, 0x07ba, 0x07ca, 0x07d5, 0x07f5, 0x0800, - // Entry C0 - FF - 0x0805, 0x080d, 0x0812, 0x0824, 0x082c, 0x0835, 0x083d, 0x0842, - 0x0848, 0x0856, 0x085e, 0x0867, 0x086c, 0x0874, 0x087c, 0x0886, - 0x0892, 0x08a6, 0x08b0, 0x08bc, 0x08c6, 0x08cd, 0x08d5, 0x08df, - 0x08f3, 0x0909, 0x0914, 0x0920, 0x0927, 0x092f, 0x093f, 0x0952, - 0x0956, 0x0988, 0x098c, 0x0997, 0x09a3, 0x09aa, 0x09b5, 0x09c0, - 0x09c9, 0x09ce, 0x09d7, 0x09e8, 0x09ee, 0x09f4, 0x09fd, 0x0a04, - 0x0a0a, 0x0a1c, 0x0a35, 0x0a3c, 0x0a46, 0x0a58, 0x0a6f, 0x0a78, - 0x0a91, 0x0aaa, 0x0ab1, 0x0ab8, 0x0ac7, 0x0acc, 0x0ad2, 0x0ad7, - // Entry 100 - 13F - 0x0ade, 0x0aff, 0x0b06, 0x0b0e, 0x0b1d, 0x0b22, 0x0b28, 0x0b3d, - 0x0b53, 0x0b5c, 0x0b6f, 0x0b80, 0x0b93, 0x0ba7, 0x0bb7, 0x0bcc, - 0x0bd3, 0x0bf3, 0x0bfc, 0x0c0e, 0x0c22, 0x0c36, 0x0c4b, 0x0c57, - 0x0c62, 0x0c7e, 0x0c89, 0x0c8e, 0x0c9d, 0x0caf, 0x0cb5, 0x0cc8, - 0x0cdc, 0x0cef, 0x0d01, - }, - }, - { // dua - "Cameroun", - []uint16{ // 50 elements - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0008, - }, - }, - { // dyo - "AndorraAfganistanAntigua di BarbudaAngiiyaAlbaniArmeniAngolaArsantinSamo" + - "a yati AmerikOtrisOstraaliaArubaAserbaysanBosni di HersegovinBarbadB" + - "angladesBelsikBurukiina FasoBulgariBahraynBurundiBeneBermudBuruneyBo" + - "liiviBresilBahamaButanBoswanaBelarusBeliisKanadaMofam demokratik mat" + - "i KongoKongoKoddiwarCiliKamerunSiinKolombiKosta RikaKubaKap VerSiipr" + - "Mofam mati CekAlmaañJibutiDanmarkDominikaMofam mati DominikAlseriEku" + - "adorEstoniEsíptEritreeEspaañEcoopiFinlandFijiFransGabonGrenadaSeorsi" + - "GaanaSipraltaarGreenlandGambiGinéGuwadalupGresGuatemalaGuamGiné Bisa" + - "auGiyanOndurasKroasiAytiOÅ‹riEndonesiIrlandIsraelEndIrakIranIislandIt" + - "aliSamaikSapoÅ‹KeniyaKambojKomorSaÅ‹ LusiaSiri LankaLiberiaMadagaskaar" + - "MaliEcinkey yati NoorfokAbari SaudiSudanSingapurSloveniSlovakiSerra " + - "LeonSenegalSomaliSalvadoorCadTogoTailand", - []uint16{ // 228 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x0007, 0x0011, 0x0023, 0x002a, 0x0030, - 0x0036, 0x0036, 0x003c, 0x003c, 0x0044, 0x0055, 0x005a, 0x0063, - 0x0068, 0x0068, 0x0072, 0x0085, 0x008b, 0x0094, 0x009a, 0x00a8, - 0x00af, 0x00b6, 0x00bd, 0x00c1, 0x00c1, 0x00c7, 0x00ce, 0x00d5, - 0x00d5, 0x00db, 0x00e1, 0x00e6, 0x00e6, 0x00ed, 0x00f4, 0x00fa, - 0x0100, 0x0100, 0x011b, 0x011b, 0x0120, 0x0120, 0x0128, 0x0128, - 0x012c, 0x0133, 0x0137, 0x013e, 0x013e, 0x0148, 0x014c, 0x0153, - 0x0153, 0x0153, 0x0158, 0x0166, 0x016d, 0x016d, 0x0173, 0x017a, - // Entry 40 - 7F - 0x0182, 0x0194, 0x019a, 0x019a, 0x01a1, 0x01a7, 0x01ad, 0x01ad, - 0x01b4, 0x01bb, 0x01c1, 0x01c1, 0x01c8, 0x01cc, 0x01cc, 0x01cc, - 0x01cc, 0x01d1, 0x01d6, 0x01d6, 0x01dd, 0x01e3, 0x01e3, 0x01e3, - 0x01e8, 0x01f2, 0x01fb, 0x0200, 0x0205, 0x020e, 0x020e, 0x0212, - 0x0212, 0x021b, 0x021f, 0x022b, 0x0230, 0x0230, 0x0230, 0x0237, - 0x023d, 0x0241, 0x0246, 0x0246, 0x024e, 0x0254, 0x025a, 0x025a, - 0x025d, 0x025d, 0x0261, 0x0265, 0x026c, 0x0271, 0x0271, 0x0277, - 0x0277, 0x027d, 0x0283, 0x0283, 0x0289, 0x0289, 0x028e, 0x028e, - // Entry 80 - BF - 0x028e, 0x028e, 0x028e, 0x028e, 0x028e, 0x028e, 0x028e, 0x0298, - 0x0298, 0x02a2, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, - 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02b4, 0x02b4, 0x02b4, - 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, - 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, - 0x02b8, 0x02b8, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, - 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, - 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, - // Entry C0 - FF - 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, - 0x02cc, 0x02d7, 0x02d7, 0x02d7, 0x02dc, 0x02dc, 0x02e4, 0x02e4, - 0x02eb, 0x02eb, 0x02f2, 0x02fc, 0x02fc, 0x0303, 0x0309, 0x0309, - 0x0309, 0x0309, 0x0312, 0x0312, 0x0312, 0x0312, 0x0312, 0x0312, - 0x0315, 0x0315, 0x0319, 0x0320, - }, - }, - { // dz - "ཨེ་སེན་ཤུན་ཚོ་གླིང༌ཨཱན་དོ་རཡུ་ནཱའི་ཊེཌ་ ཨ་རབ་ ཨེ་མེ་རེཊསཨཕ་གྷ་ནི་སà½à½±à½“ཨན་" + - "ཊི་གུ་à½à¼‹ ཨེནཌ་ བྷར་བྷུ་ཌཨང་གི་ལཨཱལ་བེ་ནི་ཡཨར་མི་ནི་ཡཨང་གྷོ་ལའཛམ་གླ" + - "ིང་ལྷོ་མà½à½ à½²à¼‹à½à¾±à½‚ས་གླིངཨར་ཇེན་ཊི་ནས་མོ་ཨ་ཡུ་ཨེས་ཨེ་མངའ་à½à½¼à½„སཨཱོས་ཊྲི་" + - "ཡཨཱོས་ཊྲེལ་ལི་ཡཨ་རུ་བཱཨ་ལནཌ་གླིང་ཚོམཨ་ཛར་བྷའི་ཇཱནབྷོས་ནི་ཡ་ ཨེནཌ་ " + - "ཧར་ཛི་གྷོ་བི་ནབྷར་བེ་ཌོསབངྒ་ལ་དེཤབྷེལ་ཇམབྷར་ཀི་ན་ ཕེ་སོབུལ་ག་རི་ཡབ" + - "ྷ་རེནབྷུ་རུན་ཌིབྷེ་ནིནསེནཊ་ བར་à½à½¼à¼‹à½£à½¼à½˜à¼‹à½˜à½²à½ à½´à½–ར་མུ་ཌབྷྲུ་ནའིབྷེ་ལི་བི" + - "་ཡཀེ་རི་བི་ཡེན་ནེ་དར་ལནཌས྄བྲ་ཛིལབྷ་ཧ་མས྄འབྲུགབོའུ་à½à½ºà½Šà¼‹à½˜à½šà½¼à¼‹à½‚ླིངབྷོཙ" + - "་à½à¼‹à½“བེལ་ཨ་རུ་སུབྷེ་ལིཛཀེ་ན་ཌཀོ་ཀོས་གླིང་ཚོམཀོང་གྷོ ཀིན་ཤ་སསེན་ཊལ་ " + - "ཨཕ་རི་ཀཱན་ རི་པབ་ལིཀཀོང་གྷོ བྷྲ་ཛ་བིལསུ་à½à½²à½Šà¼‹à½›à½¢à¼‹à½£à½ºà½“ཌཀོ་ཊེ་ ཌི་ཨི་à½à½¼" + - "་རེཀུག་གླིང་ཚོམཅི་ལིཀེ་མ་རུནརྒྱ་ནགཀོ་ལོམ་བྷི་ཡཀི་ལི་པེར་ཊོན་མཚོ་གླ" + - "ིང་ཀོས་ཊ་རི་ཀཀིའུ་བྷཀེཔ་བཱཌཀྱཱུར་ར་ཀོà½à½²à¼‹à½¢à½²à½¦à¾Ÿà¼‹à½˜à½ºà½¦à¼‹à½˜à½šà½¼à¼‹à½‚ླིངསཱའི་པྲསཅ" + - "ེཀ་ རི་པབ་ལིཀཇཱར་མ་ནིཌི་ཡེ་གོ་གར་སིའོཇི་བྷུ་ཊིཌེན་མཱཀཌོ་མི་ནི་ཀཌོ་" + - "མི་ནི་ཀཱན་ རི་པབ་ལིཀཨཱལ་ཇི་རི་ཡསེ་ཨུ་à½à¼‹ ཨེནཌ་ མེལ་ལི་ལཨེ་à½à¾­à¼‹à½Œà½¼à½¢à½¨à½ºà½¦" + - "་ཊོ་ནི་ཡཨི་ཇིབཊནུབ་ཕྱོགས་ ས་ཧཱ་རཨེ་རི་ཊྲེ་ཡཨིས་པེནཨི་à½à½²à¼‹à½¡à½¼à¼‹à½”ི་ཡཡུ་" + - "རོབ་གཅིག་བསྡོམས་ཚོགས་པཕིན་ལེནཌཕི་ཇིཕལà¾à¼‹à½£à½“ྜ་གླིང་ཚོམམའི་ཀྲོ་ནི་ཤི་ཡ" + - "ཕཱའེ་རོ་གླིང་ཚོམཕྲཱནསགྷ་བྷོནཡུ་ནཱའི་ཊེཌ་ ཀིང་ཌམགྲྀ་ན་ཌཇཽར་ཇཱགུའི་ཡ" + - "་ན་ ཕྲནས྄་མངའ་à½à½¼à½„སགུ་ཨེརྣ་སིགྷ་ནཇིབ་རཱལ་ཊརགིརཱིན་ལནཌ྄གྷེམ་བི་ཡགྷི་" + - "ནིགོ་ཌེ་ལུ་པེཨེ་ཀུ་ཊོ་རེལ་ གི་ནིགིརིས྄སཱའུà½à¼‹à½‡à½½à½¢à¼‹à½‡à½±à¼‹ དང་ སཱའུà½à¼‹à½¦à½ºà½“ཌ" + - "྄་à½à½²à½…་གླིང་ཚོམགྷོ་ཊ་མ་ལགུ་འམ་ མཚོ་གླིངགྷི་ནི་ བྷི་སཱའུགྷ་ཡ་ནཧོང་ཀོ" + - "ང་ཅཱའི་ནཧཱརཌ་མཚོ་གླིང་ དང་ མེཀ་ཌོ་ནལཌ྄་གླིང་ཚོམཧཱན་ཌུ་རཱས྄ཀྲོ་ཨེ་ཤ" + - "ཧེ་ཊིཧཱང་གྷ་རིཀ་ནེ་རི་གླིང་ཚོམཨིན་ཌོ་ནེ་ཤི་ཡཨཱ་ཡ་ལེནཌཨིས་ར་ཡེལཨ་ཡུ" + - "ལ་ ཨོཕ་ མཱནརྒྱ་གརབྲི་ཊིཤ་རྒྱ་གར་གྱི་རྒྱ་མཚོ་ས་à½à½¼à½„སཨི་རཱཀཨི་རཱནཨཱའི" + - "ས་ལེནཌཨི་ཊ་ལིཇེར་སིཇཱ་མཻ་ཀཇོར་ཌནཇ་པཱནཀེན་ཡཀིར་གིས་སà½à½±à½“ཀམ་བྷོ་ཌི་ཡཀ" + - "ི་རི་བ་à½à½²à¼‹à½˜à½šà½¼à¼‹à½‚ླིངཀོ་མོ་རོསསེནཊ་ ཀིཊས་ དང་ ནེ་བིསབྱང་ ཀོ་རི་ཡལྷོ་ " + - "ཀོ་རི་ཡཀུ་à½à½ºà½Šà½à½ºà¼‹à½˜à½ºà½“་གླིང་ཚོམཀ་ཛགས་སà½à½±à½“ལཱ་à½à½¼à½¦à½£à½ºà¼‹à½–་ནོནསེནཊ་ ལུ་སི་ཡལ" + - "ིཀ་à½à½“ས་à½à¼‹à½¡à½²à½“ཤྲཱི་ལང་ཀལཱའི་བེ་རི་ཡལཻ་སོ་à½à½¼à½£à½²à¼‹à½à½´à¼‹à½à½ºà¼‹à½“ི་ཡལག་ཛམ་བོརྒལཊ" + - "་བི་ཡལི་བི་ཡམོ་རོ་ཀོམོ་ན་ཀོམོལ་དོ་བཱམོན་ཊི་ནེག་རོསེནཊ་ མཱར་ཊིནམ་དཱ" + - "་གེས་ཀརམར་ཤེལ་གླིང་ཚོམམ་སེ་ཌོ་ནི་ཡམཱ་ལིམི་ཡཱན་མར་ (བྷར་མ)སོག་པོ་ཡུ" + - "ལམཀ་ཨའུ་ཅཱའི་ནབྱང་ཕྱོགས་ཀྱི་མ་ར་ཡ་ན་གླིང་ཚོམམཱར་ཊི་ནིཀམོ་རི་ཊེ་ནི་" + - "ཡམོན་ས་རཊམཱལ་ཊམོ་རི་ཤཱསམཱལ་དིབསམ་ལ་à½à½²à½˜à½ºà½€à¼‹à½¦à½²à¼‹à½€à½¼à½˜à¼‹à½£à½ºà¼‹à½¤à½²à¼‹à½¡à½˜à½¼à¼‹à½›à½˜à¼‹à½–ྷིཀན" + - "་མི་བི་ཡནིའུ་ཀ་ལི་དོ་ནི་ཡནཱའི་ཇཱནོར་ཕོལཀ་མཚོ་གླིང༌ནཱའི་ཇི་རི་ཡནི་ཀ" + - "ྲ་à½à¼‹à½‚ནེ་དར་ལནཌས྄ནོར་à½à½ºà½–ལ་ཡུལནའུ་རུ་ནི་ཨུ་ཨཻནིའུ་ཛི་ལེནཌཨོ་མཱནཔ་ན་མ" + - "པེ་རུཕྲཱནས྄་ཀྱི་པོ་ལི་ནི་ཤི་ཡཔ་པུ་ ནིའུ་གི་ནིཕི་ལི་པིནསཔ་ཀི་སà½à½±à½“པོ" + - "་ལེནཌསིནཊ་པི་ཡེར་ ཨེནཌ་ མིཀོ་ལེནཔིཊ་ཀེ་ཡེརན་གླིང་ཚོམཔུ་འེར་ཊོ་རི་à½" + - "ོཔེ་ལིསི་ཊི་ནི་ཡན་ཊེ་རི་à½à½¼à¼‹à½¢à½²à½”ོར་ཅུ་གཱལཔ་ལའུཔ་ར་གུ་à½à½ à½²à½€à¼‹à½Šà½¢à½¨à½¼à½¤à½²à¼‹à½¡à½±à½“" + - "་ན་གྱི་མà½à½ à¼‹à½˜à½šà½˜à½¦à½¢à½ºà¼‹à½¡à½´à¼‹à½“ི་ཡོནརོ་མེ་ནི་ཡསཱར་བྷི་ཡཨུ་རུ་སུརུ་à½à½“་ཌསཱà½à¼‹à½‘" + - "ི་ ཨ་རེ་བྷི་ཡསོ་ལོ་མོན་ གླིང་ཚོམསེ་ཤཱལསསུ་ཌཱནསུའི་ཌེནསིང་ག་པོརསེནཊ" + - "་ ཧེ་ལི་ནསུ་ལོ་བི་ནི་ཡསྭཱལ་བྷརྡ་ ཨེནཌ་ ཇཱན་མ་ཡེནསུ་ལོ་བཱ་ཀི་ཡསི་ར་" + - " ལི་འོནསཱན་མ་རི་ནོསེ་ནི་གྷལསོ་མ་ལི་ཡསུ་རི་ནཱམསཱའུà½à¼‹ སུ་ཌཱནསà½à¼‹ ཊོ་མེ་" + - " ཨེནཌ་ པྲྀན་སི་པེཨེལ་སལ་བ་ཌོརསིནཊ་ མཱར་ཊེནསི་རི་ཡསུ་à½à¼‹à½›à½²à¼‹à½£à½ºà½“ཌà½à¾²à½²à½¦à¼‹à½à½“" + - "་ད་ཀུན་ཧà½à½´à½¢à¾à½¦à¾„་ ཨེནཌ་ ཀ་ཀོས་གླིང་ཚོམཅཱཌཕྲནཅ་གི་ལྷོ་ཕྱོགས་མངའ་à½à½¼à½„སཊ" + - "ོ་གྷོà½à½±à½ à½²à¼‹à½£à½ºà½“ཌà½à¼‹à½‡à½²à½‚་གི་སà½à½±à½“à½à½¼à¼‹à½€à½ºà¼‹à½£à½ à½´à¼‹ མཚོ་གླིངà½à½²à¼‹à¼‹à½˜à½¼à½¢à¼‹à½£à½ºà¼‹à½¨à½ºà½¦à½Šà½Šà½±à½¢à½€à¼‹" + - "མེནའི་སà½à½±à½“ཊུ་ནི་ཤི་ཡཊོང་གྷཊཱར་ཀིཊི་ནི་ཌཱཌ་ ཨེནཌ་ ཊོ་བྷེ་གྷོà½à½´à¼‹à½à¼‹à½£à½´" + - "ཊཱའི་à½à½±à½“ཊཱན་ཛཱ་ནི་ཡཡུ་ཀརེནཡུ་གྷན་ཌཡུ་ཨེས་གྱི་མà½à½ à¼‹à½˜à½šà½˜à½¦à¼‹à½˜à½šà½¼à¼‹à½‚ླིང་ཡུ་" + - "ཨེས་ཨེཡུ་རུ་གུ་à½à½ à½²à½¨à½´à½¦à¼‹à½–ེག་གི་སà½à½±à½“བ་ཊི་ཀཱན་ སི་ཊིསེནཊ་à½à½²à½“་སེནཌ྄ ཨེན" + - "ཌ་ གི་རེ་ན་དིནས྄བེ་ནི་ཛུ་à½à½ºà¼‹à½£à½à½¢à½‡à½²à½“་གླིང་ཚོམ་ བྲཱི་ཊིཤ་མངའ་à½à½¼à½„སà½à½¢à½‡à½²" + - "ན་གླིང་ཚོམ་ ཡུ་ཨེས་ཨེ་མངའ་à½à½¼à½„སབེཊ་ནཱམà½à¼‹à½“ུ་ཨ་à½à½´à½à½£à¼‹à½£à½²à½¦à¾„་ ཨེནཌ་ ཕུ་à½à½´" + - "་ན་ས་མོ་ཨཡེ་མེནམེ་ཡོཊསཱའུà½à¼‹ ཨཕ་རི་ཀཛམ་བྷི་ཡཛིམ་བྷབ་à½à½ºà½„ོ་མ་ཤེས་པའི་" + - "ལུང་ཕྱོགསའཛམ་གླིང༌ཨཕ་རི་ཀབྱང་ཨ་མི་རི་ཀལྷོ་ཨ་མི་རི་ཀཨོཤི་ཡཱན་ནནུབ་ཕ" + - "ྱོགས་ཀྱི་ཨཕ་རི་ཀབར་ཕྱོགས་ཨ་མི་རི་ཀཤར་ཕྱོགས་ཀྱི་ཨཕ་རི་ཀབྱང་ཕྱོགས་ཀྱ" + - "ི་ཨཕ་རི་ཀསྦུག་ཕྱོགས་ཀྱི་ཨཕ་རི་ཀལྷོའི་ཨཕ་རི་ཀཨ་མི་རི་ཀ་ཚུབྱང་ཕྱོགས་" + - "ཀྱི་ཨ་མི་རི་ཀཀེ་རི་བི་ཡེནཤར་ཕྱོགས་ཀྱི་ཨེ་ཤི་ཡལྷོའི་ཨེ་ཤི་ཡལྷོ་ཤར་ཕ" + - "ྱོགས་ཀྱི་ཨེ་ཤི་ཡལྷོའི་ཡུ་རོབཨཱོས་ཊྲེལ་ཨེ་ཤི་ཡམེ་ལ་ནི་ཤི་ཡལུང་ཕྱོགས" + - "་མའི་ཀྲོ་ནི་ཤི་ཡཔོ་ལི་ནི་ཤི་ཡཨེ་ཤི་ཡསྦུག་ཕྱོགས་ཀྱི་ཨེ་ཤི་ཡནུབ་ཕྱོག" + - "ས་ཀྱི་ཨེ་ཤི་ཡཡུ་རོབཤར་ཕྱོགས་ཀྱི་ཡུ་རོབབྱང་ཕྱོགས་ཀྱི་ཡུ་རོབནུབ་ཕྱོག" + - "ས་ཀྱི་ཡུ་རོབལེ་ཊིནཨ་མི་རི་ཀ", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0039, 0x0051, 0x00a4, 0x00cb, 0x0118, 0x012d, 0x014e, - 0x016c, 0x016c, 0x0184, 0x01d5, 0x01f6, 0x0241, 0x025f, 0x0289, - 0x029e, 0x02c8, 0x02ef, 0x0348, 0x0366, 0x0381, 0x0396, 0x03c1, - 0x03df, 0x03f1, 0x040f, 0x0424, 0x045e, 0x0473, 0x048b, 0x04ac, - 0x04f4, 0x0506, 0x051e, 0x052d, 0x0560, 0x0578, 0x0599, 0x05ae, - 0x05c0, 0x05ed, 0x0618, 0x0668, 0x0699, 0x06c3, 0x06f7, 0x071b, - 0x072a, 0x0742, 0x0754, 0x0778, 0x07bd, 0x07db, 0x07f0, 0x0805, - 0x0823, 0x085f, 0x0877, 0x089f, 0x08b7, 0x08e7, 0x0902, 0x0917, - // Entry 40 - 7F - 0x0935, 0x0978, 0x0999, 0x09da, 0x09f5, 0x0a16, 0x0a2b, 0x0a5c, - 0x0a7d, 0x0a92, 0x0ab9, 0x0b04, 0x0b1c, 0x0b2b, 0x0b5b, 0x0b88, - 0x0bb8, 0x0bc7, 0x0bdc, 0x0c13, 0x0c28, 0x0c3a, 0x0c80, 0x0c9e, - 0x0caa, 0x0cc8, 0x0ce9, 0x0d04, 0x0d16, 0x0d37, 0x0d6e, 0x0d80, - 0x0dfa, 0x0e15, 0x0e40, 0x0e6e, 0x0e80, 0x0eaa, 0x0f1b, 0x0f3c, - 0x0f54, 0x0f63, 0x0f7e, 0x0fae, 0x0fd8, 0x0ff3, 0x100e, 0x1037, - 0x1049, 0x10ac, 0x10be, 0x10d0, 0x10ee, 0x1103, 0x1115, 0x112a, - 0x113c, 0x114b, 0x115a, 0x117e, 0x119f, 0x11d8, 0x11f3, 0x122f, - // Entry 80 - BF - 0x1251, 0x1273, 0x1285, 0x12b2, 0x12d0, 0x12e2, 0x12fa, 0x131f, - 0x1346, 0x1361, 0x1385, 0x139d, 0x13c4, 0x13e2, 0x13f7, 0x140c, - 0x1424, 0x1439, 0x1454, 0x147b, 0x14a0, 0x14c1, 0x14ee, 0x1512, - 0x1521, 0x1551, 0x156f, 0x1596, 0x15f0, 0x160e, 0x1635, 0x164d, - 0x165c, 0x1677, 0x168f, 0x16a1, 0x16bc, 0x16d7, 0x16f5, 0x1710, - 0x1743, 0x1758, 0x178e, 0x17b2, 0x17cd, 0x17ee, 0x1800, 0x1812, - 0x1827, 0x183f, 0x1863, 0x1875, 0x1884, 0x1893, 0x18db, 0x1909, - 0x1927, 0x1942, 0x1957, 0x19a4, 0x19e0, 0x1a0d, 0x1a61, 0x1a7f, - // Entry C0 - FF - 0x1a8e, 0x1aac, 0x1ab8, 0x1afd, 0x1b21, 0x1b3f, 0x1b5a, 0x1b72, - 0x1b87, 0x1bbb, 0x1bf2, 0x1c07, 0x1c19, 0x1c31, 0x1c4c, 0x1c71, - 0x1c98, 0x1ce2, 0x1d09, 0x1d2b, 0x1d4c, 0x1d67, 0x1d82, 0x1d9d, - 0x1dc2, 0x1e0d, 0x1e31, 0x1e56, 0x1e6b, 0x1e8f, 0x1ebc, 0x1f0c, - 0x1f15, 0x1f63, 0x1f75, 0x1f90, 0x1fb7, 0x1fee, 0x201b, 0x2048, - 0x2066, 0x2078, 0x208a, 0x20d7, 0x20ec, 0x2104, 0x2125, 0x213a, - 0x2152, 0x21a9, 0x21c4, 0x21e8, 0x2215, 0x2240, 0x22a2, 0x22c9, - 0x232a, 0x238e, 0x23a3, 0x23be, 0x23ff, 0x2411, 0x2411, 0x2423, - // Entry 100 - 13F - 0x2435, 0x245d, 0x2475, 0x2493, 0x24d5, 0x24f0, 0x2505, 0x252c, - 0x2553, 0x2571, 0x25b0, 0x25e6, 0x2622, 0x2661, 0x26a3, 0x26ca, - 0x26ee, 0x2733, 0x2757, 0x2793, 0x27ba, 0x2802, 0x2826, 0x2859, - 0x287d, 0x28c8, 0x28ef, 0x2904, 0x2946, 0x2985, 0x2997, 0x29d0, - 0x2a0c, 0x2a48, 0x2a75, - }, - }, - { // ebu - "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + - "iaAntili za UholanziAngolaAjentinaSamoa ya MarekaniAustriaAustraliaA" + - "rubaAzabajaniBosnia na HezegovinaBabadosiBangladeshiUbelgijiBukinafa" + - "soBulgariaBahareniBurundiBeniniBermudaBruneiBoliviaBraziliBahamaButa" + - "niBotswanaBelarusiBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhur" + - "i ya Afrika ya KatiKongoUswisiKodivaaVisiwa vya CookChileKameruniChi" + - "naKolombiaKostarikaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibut" + - "iDenmakiDominikaJamhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaH" + - "ispaniaUhabeshiUfiniFijiVisiwa vya FalklandMikronesiaUfaransaGaboniU" + - "ingerezaGrenadaJojiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaG" + - "ineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKor" + - "asiaHaitiHungariaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza kati" + - "ka Bahari HindiIrakiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKir" + - "igizistaniKambodiaKiribatiKomoroSantakitzi na NevisKorea KaskaziniKo" + - "rea KusiniKuwaitiVisiwa vya KaymanKazakistaniLaosiLebanoniSantalusia" + - "LishenteniSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoM" + - "onakoMoldovaBukiniVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa" + - " vya Mariana vya KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiMo" + - "divuMalawiMeksikoMalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha " + - "NorfokNijeriaNikaragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPan" + - "amaPeruPolinesia ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri " + - "na MikeloniPitkairniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza w" + - "a PalestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiV" + - "isiwa vya SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaSl" + - "ovakiaSiera LeoniSamarinoSenegaliSomaliaSurinamuSao Tome na Principe" + - "ElsavadoSiriaUswaziVisiwa vya Turki na KaikoChadiTogoTailandiTajikis" + - "taniTokelauTimori ya MasharikiTurukimenistaniTunisiaTongaUturukiTrin" + - "idad na TobagoTuvaluTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibe" + - "kistaniVatikaniSantavisenti na GrenadiniVenezuelaVisiwa vya Virgin v" + - "ya UingerezaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWalis na F" + - "utunaSamoaYemeniMayotteAfrika KusiniZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, - 0x004a, 0x005c, 0x0062, 0x0062, 0x006a, 0x007b, 0x0082, 0x008b, - 0x0090, 0x0090, 0x0099, 0x00ad, 0x00b5, 0x00c0, 0x00c8, 0x00d2, - 0x00da, 0x00e2, 0x00e9, 0x00ef, 0x00ef, 0x00f6, 0x00fc, 0x0103, - 0x0103, 0x010a, 0x0110, 0x0116, 0x0116, 0x011e, 0x0126, 0x012c, - 0x0132, 0x0132, 0x0152, 0x016b, 0x0170, 0x0176, 0x017d, 0x018c, - 0x0191, 0x0199, 0x019e, 0x01a6, 0x01a6, 0x01af, 0x01b3, 0x01bb, - 0x01bb, 0x01bb, 0x01c2, 0x01d2, 0x01db, 0x01db, 0x01e1, 0x01e8, - // Entry 40 - 7F - 0x01f0, 0x0203, 0x020a, 0x020a, 0x0210, 0x0217, 0x021c, 0x021c, - 0x0223, 0x022b, 0x0233, 0x0233, 0x0238, 0x023c, 0x024f, 0x0259, - 0x0259, 0x0261, 0x0267, 0x0270, 0x0277, 0x027c, 0x028f, 0x028f, - 0x0294, 0x029c, 0x02a5, 0x02ab, 0x02af, 0x02b8, 0x02c1, 0x02c8, - 0x02c8, 0x02d1, 0x02d5, 0x02de, 0x02e4, 0x02e4, 0x02e4, 0x02ed, - 0x02f4, 0x02f9, 0x0301, 0x0301, 0x030a, 0x0312, 0x0319, 0x0319, - 0x031e, 0x0343, 0x0348, 0x034e, 0x0356, 0x035c, 0x035c, 0x0363, - 0x036a, 0x0370, 0x0375, 0x0382, 0x038a, 0x0392, 0x0398, 0x03ab, - // Entry 80 - BF - 0x03ba, 0x03c6, 0x03cd, 0x03de, 0x03e9, 0x03ee, 0x03f6, 0x0400, - 0x040a, 0x0413, 0x041a, 0x0420, 0x0428, 0x0431, 0x0438, 0x043d, - 0x0443, 0x0449, 0x0450, 0x0450, 0x0450, 0x0456, 0x0468, 0x0471, - 0x0475, 0x047a, 0x0482, 0x0482, 0x04a2, 0x04ab, 0x04b4, 0x04bf, - 0x04c4, 0x04ca, 0x04d0, 0x04d6, 0x04dd, 0x04e4, 0x04ec, 0x04f3, - 0x04ff, 0x0505, 0x0516, 0x051d, 0x0526, 0x052e, 0x0533, 0x0539, - 0x053e, 0x0542, 0x054c, 0x0551, 0x0557, 0x055b, 0x0570, 0x0575, - 0x057d, 0x0586, 0x058d, 0x05a3, 0x05ac, 0x05b5, 0x05e7, 0x05ec, - // Entry C0 - FF - 0x05f1, 0x05f9, 0x05ff, 0x05ff, 0x0608, 0x060f, 0x060f, 0x0614, - 0x061a, 0x061f, 0x0631, 0x063b, 0x0641, 0x0647, 0x064f, 0x065a, - 0x0662, 0x0662, 0x066a, 0x0675, 0x067d, 0x0685, 0x068c, 0x0694, - 0x0694, 0x06a8, 0x06b0, 0x06b0, 0x06b5, 0x06bb, 0x06bb, 0x06d4, - 0x06d9, 0x06d9, 0x06dd, 0x06e5, 0x06f0, 0x06f7, 0x070a, 0x0719, - 0x0720, 0x0725, 0x072c, 0x073e, 0x0744, 0x074b, 0x0753, 0x075a, - 0x0760, 0x0760, 0x0768, 0x076f, 0x077b, 0x0783, 0x079c, 0x07a5, - 0x07c4, 0x07e2, 0x07eb, 0x07f2, 0x0801, 0x0806, 0x0806, 0x080c, - // Entry 100 - 13F - 0x0813, 0x0820, 0x0826, 0x082e, - }, - }, - { // ee - "Ascension Æ’udomekpo nutomeAndorra nutomeUnited Arab Emirates nutomeAfgha" + - "nistan nutomeÌAntigua kple Barbuda nutomeAnguilla nutomeAlbania nuto" + - "meArmenia nutomeNedalands Antilis nutomeAngola nutomeAntartica nutom" + - "eArgentina nutomeAmerika Samoa nutomeAustria nutomeAustralia nutomeA" + - "ruba nutomeÃ…land Æ’udomekpo nutomeAzerbaijan nutomeBosnia kple Herzer" + - "govina nutomeBarbados nutomeBangladesh nutomeBelgium nutomeBurkina F" + - "aso nutomeBulgaria nutomeBahrain nutomeBurundi nutomeBenin nutomeSai" + - "nt Barthélemy nutomeBermuda nutomeBrunei nutomeBolivia nutomeBrazil " + - "nutomeBahamas nutomeBhutan nutomeBouvet Æ’udomekpo nutomeBotswana nut" + - "omeBelarus nutomeBelize nutomeKanada nutomeKokos (Kiling) fudomekpo " + - "nutomeKongo Kinshasa nutomeTitina Afrika repÉ”blik nutomeKongo Brazza" + - "ville nutomeSwitzerland nutomeKote d’Ivoire nutomeKook Æ’udomekpo nut" + - "omeTsile nutomeKamerun nutomeTsaina nutomeKolombia nutomeKlipaton Æ’u" + - "domekpo nutomeKosta Rika nutomeKuba nutomeKape Verde nutomeKristmas " + - "Æ’udomekpo nutomeSaiprus nutomeTsÉ›k repÉ”blik nutomeGermania nutomeDi" + - "ego Garsia nutomeDzibuti nutomeDenmark nutomeDominika nutomeDominika" + - " repÉ”blik nutomeAlgeria nutomeKeuta and Melilla nutomeEkuadÉ” nutomeE" + - "stonia nutomeEgypte nutomeÆ”etoÉ–oÆ’e Sahara nutomeEritrea nutomeSpania" + - " nutomeEtiopia nutomeEuropa Wɔɖeka nutomeFinland nutomeFidzi nutomeF" + - "alkland Æ’udomekpowo nutomeMikronesia nutomeFaroe Æ’udomekpowo nutomeF" + - "rans nutomeGabÉ”n nutomeUnited Kingdom nutomeGrenada nutomeGeorgia nu" + - "tomeFrentsi Gayana nutomeGuernse nutomeGhana nutomeGibraltar nutomeG" + - "rinland nutomeGambia nutomeGuini nutomeGuadelupe nutomeEkuatorial Gu" + - "ini nutomeGrisi nutomeAnyiehe Georgia kple Anyiehe Sandwich Æ’udomekp" + - "owo nutomeGuatemala nutomeGuam nutomeGini-Bisao nutomeGuyanaduHÉ”ng K" + - "É”ng SAR Tsaina nutomeHeard kple Mcdonald Æ’udomekpowo nutomeHonduras" + - "duKroatsia nutomeHaiti nutomeHungari nutomeKanari Æ’udomekpowo nutome" + - "Indonesia nutomeIreland nutomeIsrael nutomeAisle of Man nutomeIndia " + - "nutomeBritaintÉ”wo Æ’e india Æ’udome nutomeiraqdukÉ”Iran nutomeAiseland " + - "nutomeItalia nutomeDzÉ›se nutomeDzamaika nutomeYordan nutomeDzapan nu" + - "tomeKenya nutomeKirgizstan nutomeKambodia nutomeKiribati nutomeKomor" + - "os nutomeSaint Kitis kple Nevis nutomeDziehe Korea nutomeAnyiehe Kor" + - "ea nutomeKuwait nutomeKayman Æ’udomekpowo nutomeKazakstan nutomeLaos " + - "nutomeLebanÉ”n nutomeSaint Lusia nutomeLitsenstein nutomeSri Lanka nu" + - "tomeLiberia nutomeLÉ›soto nutomeLituania nutomeLazembÉ”g nutomeLatvia " + - "nutomeLibya nutomeMoroko nutomeMonako nutomeMoldova nutomeMontenegro" + - " nutomeSaint Martin nutomeMadagaska nutomeMarshal Æ’udomekpowo nutome" + - "Makedonia nutomeMali nutomeMyanmar (Burma) nutomeMongolia nutomeMaca" + - "u SAR Tsaina nutomeDziehe Marina Æ’udomekpowo nutomeMartiniki nutomeM" + - "auritania nutomeMontserrat nutomeMalta nutomemauritiusdukÉ”maldivesdu" + - "kÉ”Malawi nutomeMeksico nutomeMalaysia nutomeMozambiki nutomeNamibia " + - "nutomeNew Kaledonia nutomeNiger nutomeNorfolk Æ’udomekpo nutomeNigeri" + - "a nutomeNicaraguadukÉ”Nedalands nutomeNorway nutomeNepal nutomeNauru " + - "nutomeNiue nutomeNew Zealand nutomeOman nutomePanama nutomePeru nuto" + - "meFrentsi PÉ”linesia nutomePapua New Gini nutomeFilipini nutomePakist" + - "an nutomePoland nutomeSaint Pierre kple MikelÉ”n nutomePitkairn Æ’udom" + - "ekpo nutomePuerto Riko nutomePalestinia nutomePortugal nutomePalau n" + - "utomeParagua nutomeKatar nutomeOutlaying Oceania nutomeRéunion nutom" + - "eRomania nutomeRussia nutomeRwanda nutomeSaudi Arabia nutomeSolomon " + - "Æ’udomekpowo nutomeSeshÉ›ls nutomeSudan nutomeSweden nutomeSingapÉ”r n" + - "utomeSaint Helena nutomeSlovenia nutomeSvalbard kple Yan Mayen nutom" + - "eSlovakia nutomeSierra Leone nutomeSan Marino nutomeSenegal nutomeSo" + - "malia nutomeSuriname nutomeSão Tomé kple Príncipe nutomeEl SalvadÉ” n" + - "utomeSiria nutomeSwaziland nutomeTristan da Kunha nutomeTÉ›ks kple Ka" + - "ikos Æ’udomekpowo nutomeTsad nutomeAnyiehe Franseme nutomeTogo nutome" + - "Tailand nutomeTajikistan nutomeTokelau nutomeTimor-Leste nutomeTÉ›kme" + - "nistan nutomeTunisia nutomeTonga nutomeTÉ›ki nutomeTrinidad kple Toba" + - "go nutomeTuvalu nutomeTaiwan nutomeTanzania nutomeUkraine nutomeUgan" + - "da nutomeU.S. Minor Outlaying Æ’udomekpowo nutomeUSA nutomeuruguayduk" + - "É”Uzbekistan nutomeVatikandu nutomeSaint Vincent kple Grenadine nuto" + - "meVenezuela nutomeBritaintÉ”wo Æ’e Virgin Æ’udomekpowo nutomeU.S. VÉ›rgi" + - "n Æ’udomekpowo nutomeVietnam nutomeVanuatu nutomeWallis kple Futuna n" + - "utomeSamoa nutomeYemen nutomeMayotte nutomeAnyiehe Afrika nutomeZamb" + - "ia nutomeZimbabwe nutomenutome manyaxexemeAfrika nutomeDziehe Amerik" + - "a nutomeAnyiehe Amerika nutomeOceania nutomeÆ”etoÉ–oÆ’elɔƒo Afrika nuto" + - "meTitina Amerika nutomeÆ”edzeÆ’e Afrika nutomeDziehe Afrika nutomeTiti" + - "na Afrika nutomeAnyiehelɔƒo Afrika nutomeAmerika nutomeDziehelɔƒo Am" + - "erika nutomeKaribbea nutomeÆ”edzeÆ’e Asia nutomeAnyiehelɔƒo Asia nutom" + - "eAnyiehe Æ”edzeÆ’e Afrika nutomeAnyiehelɔƒo Europa nutomeAustralia kpl" + - "e New Zealand nutomeMelanesia nutomeMikronesiaPÉ”linesia nutomeAsia n" + - "utomeTitina Asia nutomeÆ”etoÉ–oÆ’elɔƒo Asia nutomeEuropa nutomeÆ”edzeÆ’e " + - "Europa nutomeDziehelɔƒo Europa nutomeÆ”etoÉ–oÆ’elɔƒo Europa nutomeLatin" + - " Amerika nutome", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x001b, 0x0029, 0x0044, 0x0056, 0x0073, 0x0082, 0x0090, - 0x009e, 0x00b6, 0x00c3, 0x00d3, 0x00e3, 0x00f7, 0x0105, 0x0115, - 0x0121, 0x0139, 0x014a, 0x0169, 0x0178, 0x0189, 0x0197, 0x01aa, - 0x01b9, 0x01c7, 0x01d5, 0x01e1, 0x01f9, 0x0207, 0x0214, 0x0222, - 0x0222, 0x022f, 0x023d, 0x024a, 0x0262, 0x0271, 0x027f, 0x028c, - 0x0299, 0x02b8, 0x02cd, 0x02eb, 0x0303, 0x0315, 0x032b, 0x0341, - 0x034d, 0x035b, 0x0368, 0x0377, 0x0391, 0x03a2, 0x03ad, 0x03be, - 0x03be, 0x03d8, 0x03e6, 0x03fc, 0x040b, 0x041e, 0x042c, 0x043a, - // Entry 40 - 7F - 0x0449, 0x0462, 0x0470, 0x0488, 0x0496, 0x04a4, 0x04b1, 0x04ca, - 0x04d8, 0x04e5, 0x04f3, 0x0509, 0x0517, 0x0523, 0x053f, 0x0550, - 0x0569, 0x0575, 0x0582, 0x0597, 0x05a5, 0x05b3, 0x05c8, 0x05d6, - 0x05e2, 0x05f2, 0x0601, 0x060e, 0x061a, 0x062a, 0x0641, 0x064d, - 0x0686, 0x0696, 0x06a1, 0x06b2, 0x06ba, 0x06d7, 0x06fe, 0x0708, - 0x0717, 0x0723, 0x0731, 0x074b, 0x075b, 0x0769, 0x0776, 0x0789, - 0x0795, 0x07ba, 0x07c3, 0x07ce, 0x07dd, 0x07ea, 0x07f7, 0x0806, - 0x0813, 0x0820, 0x082c, 0x083d, 0x084c, 0x085b, 0x0869, 0x0886, - // Entry 80 - BF - 0x0899, 0x08ad, 0x08ba, 0x08d4, 0x08e4, 0x08ef, 0x08fe, 0x0910, - 0x0922, 0x0932, 0x0940, 0x094e, 0x095d, 0x096d, 0x097a, 0x0986, - 0x0993, 0x09a0, 0x09ae, 0x09bf, 0x09d2, 0x09e2, 0x09fd, 0x0a0d, - 0x0a18, 0x0a2e, 0x0a3d, 0x0a54, 0x0a75, 0x0a85, 0x0a96, 0x0aa7, - 0x0ab3, 0x0ac1, 0x0ace, 0x0adb, 0x0ae9, 0x0af8, 0x0b08, 0x0b16, - 0x0b2a, 0x0b36, 0x0b4f, 0x0b5d, 0x0b6b, 0x0b7b, 0x0b88, 0x0b94, - 0x0ba0, 0x0bab, 0x0bbd, 0x0bc8, 0x0bd5, 0x0be0, 0x0bf9, 0x0c0e, - 0x0c1d, 0x0c2c, 0x0c39, 0x0c5a, 0x0c74, 0x0c86, 0x0c97, 0x0ca6, - // Entry C0 - FF - 0x0cb2, 0x0cc0, 0x0ccc, 0x0ce4, 0x0cf3, 0x0d01, 0x0d01, 0x0d0e, - 0x0d1b, 0x0d2e, 0x0d49, 0x0d58, 0x0d64, 0x0d71, 0x0d81, 0x0d94, - 0x0da3, 0x0dc1, 0x0dd0, 0x0de3, 0x0df4, 0x0e02, 0x0e10, 0x0e1f, - 0x0e1f, 0x0e3f, 0x0e51, 0x0e51, 0x0e5d, 0x0e6d, 0x0e84, 0x0ea9, - 0x0eb4, 0x0ecb, 0x0ed6, 0x0ee4, 0x0ef5, 0x0f03, 0x0f15, 0x0f28, - 0x0f36, 0x0f42, 0x0f4e, 0x0f69, 0x0f76, 0x0f83, 0x0f92, 0x0fa0, - 0x0fad, 0x0fd5, 0x0fdf, 0x0feb, 0x0ffc, 0x100c, 0x102f, 0x103f, - 0x106a, 0x108a, 0x1098, 0x10a6, 0x10bf, 0x10cb, 0x10cb, 0x10d7, - // Entry 100 - 13F - 0x10e5, 0x10fa, 0x1107, 0x1116, 0x1122, 0x1128, 0x1135, 0x114a, - 0x1160, 0x116e, 0x118d, 0x11a2, 0x11b9, 0x11cd, 0x11e1, 0x11fc, - 0x120a, 0x1225, 0x1234, 0x1249, 0x1262, 0x1281, 0x129c, 0x12bd, - 0x12cd, 0x12d7, 0x12e8, 0x12f3, 0x1305, 0x1322, 0x132f, 0x1346, - 0x1360, 0x137f, 0x1393, - }, - }, - { // el - elRegionStr, - elRegionIdx, - }, - { // en - enRegionStr, - enRegionIdx, - }, - {}, // en-AU - { // eo - "AndoroUnuiÄintaj Arabaj EmirlandosAfganujoAntigvo-BarbudoAngviloAlbanujo" + - "ArmenujoNederlandaj AntilojAngoloAntarktoArgentinoAÅ­strujoAÅ­stralioA" + - "ruboAzerbajÄanoBosnio-HercegovinoBarbadoBangladeÅoBelgujoBurkinoBulg" + - "arujoBarejnoBurundoBeninoBermudojBrunejoBolivioBraziloBahamojButanoB" + - "ocvanoBelorusujoBelizoKanadoCentr-Afrika RespublikoKongoloSvisujoEbu" + - "r-BordoKukinsulojĈilioKamerunoĈinujoKolombioKostarikoKuboKabo-VerdoK" + - "iproĈeÄ¥ujoGermanujoÄœibutioDanujoDominikoDomingoAlÄerioEkvadoroEstonu" + - "joEgiptoOkcidenta SaharoEritreoHispanujoEtiopujoFinnlandoFiÄojMikron" + - "ezioFeroojFrancujoGabonoUnuiÄinta ReÄlandoGrenadoKartvelujoFranca Gv" + - "ianoGanaoÄœibraltaroGronlandoGambioGvineoGvadelupoEkvatora GvineoGrek" + - "ujoSud-Georgio kaj Sud-SandviĉinsulojGvatemaloGvamoGvineo-BisaÅ­oGuja" + - "noHerda kaj Makdonaldaj InsulojHonduroKroatujoHaitioHungarujoIndonez" + - "ioIrlandoIsraeloHindujoBrita Hindoceana TeritorioIrakoIranoIslandoIt" + - "alujoJamajkoJordanioJapanujoKenjoKirgizistanoKamboÄoKiribatoKomorojS" + - "ent-Kristofo kaj NevisoNord-KoreoSud-KoreoKuvajtoKejmanojKazaÄ¥stanoL" + - "aosoLibanoSent-LucioLiÄ¥tenÅtejnoSri-LankoLiberioLesotoLitovujoLuksem" + - "burgoLatvujoLibioMarokoMonakoMoldavujoMadagaskaroMarÅalojMakedonujoM" + - "alioMjanmaoMongolujoNord-MarianojMartinikoMaÅ­ritanujoMaltoMaÅ­ricioMa" + - "ldivojMalavioMeksikoMalajzioMozambikoNamibioNov-KaledonioNiÄeroNorfo" + - "lkinsuloNiÄerioNikaragvoNederlandoNorvegujoNepaloNauroNiuoNov-Zeland" + - "oOmanoPanamoPeruoFranca PolinezioPapuo-Nov-GvineoFilipinojPakistanoP" + - "ollandoSent-Piero kaj MikelonoPitkarna InsuloPuerto-RikoPortugalujoB" + - "elaÅ­oParagvajoKataroReunioRumanujoRusujoRuandoSaÅ­da ArabujoSalomonoj" + - "SejÅelojSudanoSvedujoSingapuroSent-HelenoSlovenujoSvalbardo kaj Jan-" + - "Majen-insuloSlovakujoSiera-LeonoSan-MarinoSenegaloSomalujoSurinamoSa" + - "o-Tomeo kaj PrincipeoSalvadoroSirioSvazilandoĈadoTogoloTajlandoTaÄik" + - "ujoTurkmenujoTunizioTongoTurkujoTrinidado kaj TobagoTuvaloTajvanoTan" + - "zanioUkrajnoUgandoUsonaj malgrandaj insulojUsonoUrugvajoUzbekujoVati" + - "kanoSent-Vincento kaj la GrenadinojVenezueloBritaj VirgulininsulojUs" + - "onaj VirgulininsulojVjetnamoVanuatuoValiso kaj FutunoSamooJemenoMajo" + - "toSud-AfrikoZambioZimbabvo", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0023, 0x002b, 0x003a, 0x0041, 0x0049, - 0x0051, 0x0064, 0x006a, 0x0072, 0x007b, 0x007b, 0x0084, 0x008e, - 0x0093, 0x0093, 0x009f, 0x00b1, 0x00b8, 0x00c3, 0x00ca, 0x00d1, - 0x00da, 0x00e1, 0x00e8, 0x00ee, 0x00ee, 0x00f6, 0x00fd, 0x0104, - 0x0104, 0x010b, 0x0112, 0x0118, 0x0118, 0x011f, 0x0129, 0x012f, - 0x0135, 0x0135, 0x0135, 0x014c, 0x0153, 0x015a, 0x0164, 0x016e, - 0x0174, 0x017c, 0x0183, 0x018b, 0x018b, 0x0194, 0x0198, 0x01a2, - 0x01a2, 0x01a2, 0x01a7, 0x01af, 0x01b8, 0x01b8, 0x01c0, 0x01c6, - // Entry 40 - 7F - 0x01ce, 0x01d5, 0x01dd, 0x01dd, 0x01e5, 0x01ed, 0x01f3, 0x0203, - 0x020a, 0x0213, 0x021b, 0x021b, 0x0224, 0x022a, 0x022a, 0x0234, - 0x023a, 0x0242, 0x0248, 0x025c, 0x0263, 0x026d, 0x027a, 0x027a, - 0x027f, 0x028a, 0x0293, 0x0299, 0x029f, 0x02a8, 0x02b7, 0x02be, - 0x02e1, 0x02ea, 0x02ef, 0x02fd, 0x0303, 0x0303, 0x0320, 0x0327, - 0x032f, 0x0335, 0x033e, 0x033e, 0x0347, 0x034e, 0x0355, 0x0355, - 0x035c, 0x0376, 0x037b, 0x0380, 0x0387, 0x038e, 0x038e, 0x0395, - 0x039d, 0x03a5, 0x03aa, 0x03b6, 0x03be, 0x03c6, 0x03cd, 0x03e5, - // Entry 80 - BF - 0x03ef, 0x03f8, 0x03ff, 0x0407, 0x0412, 0x0417, 0x041d, 0x0427, - 0x0435, 0x043e, 0x0445, 0x044b, 0x0453, 0x045e, 0x0465, 0x046a, - 0x0470, 0x0476, 0x047f, 0x047f, 0x047f, 0x048a, 0x0493, 0x049d, - 0x04a2, 0x04a9, 0x04b2, 0x04b2, 0x04bf, 0x04c8, 0x04d4, 0x04d4, - 0x04d9, 0x04e2, 0x04ea, 0x04f1, 0x04f8, 0x0500, 0x0509, 0x0510, - 0x051d, 0x0524, 0x0531, 0x0539, 0x0542, 0x054c, 0x0555, 0x055b, - 0x0560, 0x0564, 0x056f, 0x0574, 0x057a, 0x057f, 0x058f, 0x059f, - 0x05a8, 0x05b1, 0x05b9, 0x05d0, 0x05df, 0x05ea, 0x05ea, 0x05f5, - // Entry C0 - FF - 0x05fc, 0x0605, 0x060b, 0x060b, 0x0611, 0x0619, 0x0619, 0x061f, - 0x0625, 0x0633, 0x063c, 0x0645, 0x064b, 0x0652, 0x065b, 0x0666, - 0x066f, 0x068d, 0x0696, 0x06a1, 0x06ab, 0x06b3, 0x06bb, 0x06c3, - 0x06c3, 0x06da, 0x06e3, 0x06e3, 0x06e8, 0x06f2, 0x06f2, 0x06f2, - 0x06f7, 0x06f7, 0x06fd, 0x0705, 0x070e, 0x070e, 0x070e, 0x0718, - 0x071f, 0x0724, 0x072b, 0x073f, 0x0745, 0x074c, 0x0754, 0x075b, - 0x0761, 0x077a, 0x077f, 0x0787, 0x078f, 0x0797, 0x07b6, 0x07bf, - 0x07d5, 0x07eb, 0x07f3, 0x07fb, 0x080c, 0x0811, 0x0811, 0x0817, - // Entry 100 - 13F - 0x081d, 0x0827, 0x082d, 0x0835, - }, - }, - { // es - esRegionStr, - esRegionIdx, - }, - { // es-CL - "Sahara OccidentalSudamérica", - []uint16{ // 265 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - // Entry 80 - BF - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - // Entry C0 - FF - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - // Entry 100 - 13F - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x001c, - }, - }, - { // es-MX - "BangladeshIslas Cocos (Keeling)Isla de NavidadGuernseyRegión Administrat" + - "iva Especial de Hong Kong de la República Popular ChinaIslas Canaria" + - "sRegión Administrativa Especial de Macao de la República Popular Chi" + - "naPalaosIslas UltramarinasTristán de AcuñaIslas Ultramarinas Menores" + - " de Estados UnidosIslas Vírgenes de los Estados UnidosSudaméricaÃfri" + - "ca OccidentalÃfrica OrientalÃfrica del NorteÃfrica CentralÃfrica del" + - " SurAméricasAsia OrientalAsia del SurSudeste AsiáticoEuropa del SurA" + - "sia CentralAsia OccidentalEuropa OrientalEuropa del NorteEuropa Occi" + - "dental", - []uint16{ // 290 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, - 0x001f, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - // Entry 40 - 7F - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - // Entry 80 - BF - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x008f, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, - 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, - 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, - 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, - 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, - // Entry C0 - FF - 0x00dc, 0x00dc, 0x00dc, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, - 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, - 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, - 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x012c, 0x012c, 0x012c, 0x012c, 0x012c, 0x012c, 0x012c, - 0x012c, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, - // Entry 100 - 13F - 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, - 0x015c, 0x015c, 0x016e, 0x016e, 0x017e, 0x018f, 0x019e, 0x01ad, - 0x01b6, 0x01b6, 0x01b6, 0x01c3, 0x01cf, 0x01e0, 0x01ee, 0x01ee, - 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01fa, 0x0209, 0x0209, 0x0218, - 0x0228, 0x0239, - }, - }, - { // et - etRegionStr, - etRegionIdx, - }, - { // eu - "Ascension uharteaAndorraArabiar Emirerri BatuakAfganistanAntigua eta Bar" + - "budaAngilaAlbaniaArmeniaHolandarren AntillakAngolaAntartikaArgentina" + - "Amerikar SamoaAustriaAustraliaArubaAland uharteakAzerbaijanBosnia-He" + - "rzegovinaBarbadosBangladeshBelgikaBurkina FasoBulgariaBahrainBurundi" + - "BeninSaint BarthélemyBermudaBruneiBoliviaKaribeko HerbehereakBrasilB" + - "ahamakBhutanBouvet uharteaBotswanaBielorrusiaBelizeKanadaCocos uhart" + - "eakKongoko Errepublika DemokratikoaAfrika Erdiko ErrepublikaKongo (B" + - "razzaville)SuitzaBoli KostaCook uharteakTxileKamerunTxinaKolonbiaCli" + - "pperton uharteaCosta RicaKubaCabo VerdeCuraçaoChristmas uharteaZipre" + - "Txekiar ErrepublikaAlemaniaDiego GarciaDjibutiDanimarkaDominikaDomin" + - "ikar ErrepublikaAljeriaCeuta eta MelillaEkuadorEstoniaEgiptoMendebal" + - "deko SaharaEritreaEspainiaEtiopiaEuropar BatasunaFinlandiaFijiMalvin" + - "akMikronesiaFaroe uharteakFrantziaGabonErresuma BatuaGrenadaGeorgiaG" + - "uyana FrantsesaGuerneseyGhanaGibraltarGroenlandiaGambiaGineaGuadalup" + - "eEkuatore GineaGreziaHegoaldeko Georgia eta Hegoaldeko Sandwich uhar" + - "teakGuatemalaGuamGinea-BissauGuyanaHong Kong AEB TxinaHeard eta McDo" + - "nald uharteakHondurasKroaziaHaitiHungariaKanariakIndonesiaIrlandaIsr" + - "aelMan uharteaIndiaIndiako Ozeanoko lurralde britainiarraIrakIranIsl" + - "andiaItaliaJerseyJamaikaJordaniaJaponiaKenyaKirgizistanKanbodiaKirib" + - "atiKomoreakSaint Kitts eta NevisIpar KoreaHego KoreaKuwaitKaiman uha" + - "rteakKazakhstanLaosLibanoSanta LuziaLiechtensteinSri LankaLiberiaLes" + - "othoLituaniaLuxenburgoLetoniaLibiaMarokoMonakoMoldaviaMontenegroSain" + - "t MartinMadagaskarMarshall uharteakMazedoniaMaliMyanmarMongoliaMacau" + - " AEB TxinaIparraldeko Mariana uharteakMartinikaMauritaniaMontserratM" + - "altaMaurizioMaldivakMalawiMexikoMalaysiaMozambikeNamibiaKaledonia Be" + - "rriaNigerNorfolk uharteaNigeriaNikaraguaHerbehereakNorvegiaNepalNaur" + - "uNiueZeelanda BerriaOmanPanamaPeruPolinesia FrantsesaPapua Ginea Ber" + - "riaFilipinakPakistanPoloniaSaint-Pierre eta MikelunePitcairn uhartea" + - "kPuerto RicoPalestinako LurraldeakPortugalPalauParaguaiQatarMugaz ka" + - "npoko OzeaniaReunionErrumaniaSerbiaErrusiaRuandaSaudi ArabiaSalomon " + - "uharteakSeychelleakSudanSuediaSingapurSaint HelenaEsloveniaSvalbard " + - "eta Jan Mayen uharteakEslovakiaSierra LeonaSan MarinoSenegalSomaliaS" + - "urinamHego SudanSao Tome eta PrincipeEl SalvadorSint MaartenSiriaSwa" + - "zilandiaTristan da CunhaTurk eta Caicos uharteakTxadHegoaldeko lurra" + - "lde frantsesakTogoThailandiaTajikistanTokelauEkialdeko TimorTurkmeni" + - "stanTunisiaTongaTurkiaTrinidad eta TobagoTuvaluTaiwanTanzaniaUkraina" + - "UgandaAmeriketako Estatu Batuetako Kanpoaldeko Uharte TxikiakAmerike" + - "tako Estatu BatuakUruguaiUzbekistanVatikano HiriaSaint Vincent eta G" + - "renadinakVenezuelaBirjina uharte britainiarrakBirjina uharte amerika" + - "rrakVietnamVanuatuWallis eta FutunaSamoaKosovoYemenMayotteHegoafrika" + - "ZambiaZimbabweEskualde ezezagunaMunduaAfrikaIpar AmerikaHego Amerika" + - "OzeaniaAfrika mendebaldeaErdialdeko AmerikaAfrika ekialdeaAfrika ipa" + - "rraldeaErdialdeko AfrikaAfrika hegoaldeaAmerikaAmerika iparraldeaKar" + - "ibeaAsia ekialdeaAsia hegoaldeaAsia hego-ekialdeaEuropa hegoaldeaAus" + - "tralasiaMelanesiaMikronesia eskualdeaPolinesiaAsiaAsia erdialdeaAsia" + - " mendebaldeaEuropaEuropa ekialdeaEuropa iparraldeaEuropa mendebaldea" + - "Latinoamerika", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0011, 0x0018, 0x002f, 0x0039, 0x004c, 0x0052, 0x0059, - 0x0060, 0x0074, 0x007a, 0x0083, 0x008c, 0x009a, 0x00a1, 0x00aa, - 0x00af, 0x00bd, 0x00c7, 0x00d9, 0x00e1, 0x00eb, 0x00f2, 0x00fe, - 0x0106, 0x010d, 0x0114, 0x0119, 0x012a, 0x0131, 0x0137, 0x013e, - 0x0152, 0x0158, 0x015f, 0x0165, 0x0173, 0x017b, 0x0186, 0x018c, - 0x0192, 0x01a0, 0x01c0, 0x01d9, 0x01ec, 0x01f2, 0x01fc, 0x0209, - 0x020e, 0x0215, 0x021a, 0x0222, 0x0234, 0x023e, 0x0242, 0x024c, - 0x0254, 0x0265, 0x026a, 0x027d, 0x0285, 0x0291, 0x0298, 0x02a1, - // Entry 40 - 7F - 0x02a9, 0x02be, 0x02c5, 0x02d6, 0x02dd, 0x02e4, 0x02ea, 0x02fd, - 0x0304, 0x030c, 0x0313, 0x0323, 0x032c, 0x0330, 0x0338, 0x0342, - 0x0350, 0x0358, 0x035d, 0x036b, 0x0372, 0x0379, 0x0389, 0x0392, - 0x0397, 0x03a0, 0x03ab, 0x03b1, 0x03b6, 0x03bf, 0x03cd, 0x03d3, - 0x0406, 0x040f, 0x0413, 0x041f, 0x0425, 0x0438, 0x0453, 0x045b, - 0x0462, 0x0467, 0x046f, 0x0477, 0x0480, 0x0487, 0x048d, 0x0498, - 0x049d, 0x04c3, 0x04c7, 0x04cb, 0x04d3, 0x04d9, 0x04df, 0x04e6, - 0x04ee, 0x04f5, 0x04fa, 0x0505, 0x050d, 0x0515, 0x051d, 0x0532, - // Entry 80 - BF - 0x053c, 0x0546, 0x054c, 0x055b, 0x0565, 0x0569, 0x056f, 0x057a, - 0x0587, 0x0590, 0x0597, 0x059e, 0x05a6, 0x05b0, 0x05b7, 0x05bc, - 0x05c2, 0x05c8, 0x05d0, 0x05da, 0x05e6, 0x05f0, 0x0601, 0x060a, - 0x060e, 0x0615, 0x061d, 0x062c, 0x0648, 0x0651, 0x065b, 0x0665, - 0x066a, 0x0672, 0x067a, 0x0680, 0x0686, 0x068e, 0x0697, 0x069e, - 0x06ae, 0x06b3, 0x06c2, 0x06c9, 0x06d2, 0x06dd, 0x06e5, 0x06ea, - 0x06ef, 0x06f3, 0x0702, 0x0706, 0x070c, 0x0710, 0x0723, 0x0735, - 0x073e, 0x0746, 0x074d, 0x0766, 0x0777, 0x0782, 0x0798, 0x07a0, - // Entry C0 - FF - 0x07a5, 0x07ad, 0x07b2, 0x07c7, 0x07ce, 0x07d7, 0x07dd, 0x07e4, - 0x07ea, 0x07f6, 0x0806, 0x0811, 0x0816, 0x081c, 0x0824, 0x0830, - 0x0839, 0x0858, 0x0861, 0x086d, 0x0877, 0x087e, 0x0885, 0x088c, - 0x0896, 0x08ab, 0x08b6, 0x08c2, 0x08c7, 0x08d2, 0x08e2, 0x08fa, - 0x08fe, 0x091c, 0x0920, 0x092a, 0x0934, 0x093b, 0x094a, 0x0956, - 0x095d, 0x0962, 0x0968, 0x097b, 0x0981, 0x0987, 0x098f, 0x0996, - 0x099c, 0x09d3, 0x09ec, 0x09f3, 0x09fd, 0x0a0b, 0x0a27, 0x0a30, - 0x0a4c, 0x0a66, 0x0a6d, 0x0a74, 0x0a85, 0x0a8a, 0x0a90, 0x0a95, - // Entry 100 - 13F - 0x0a9c, 0x0aa6, 0x0aac, 0x0ab4, 0x0ac6, 0x0acc, 0x0ad2, 0x0ade, - 0x0aea, 0x0af1, 0x0b03, 0x0b15, 0x0b24, 0x0b35, 0x0b46, 0x0b56, - 0x0b5d, 0x0b6f, 0x0b76, 0x0b83, 0x0b91, 0x0ba3, 0x0bb3, 0x0bbe, - 0x0bc7, 0x0bdb, 0x0be4, 0x0be8, 0x0bf6, 0x0c06, 0x0c0c, 0x0c1b, - 0x0c2c, 0x0c3e, 0x0c4b, - }, - }, - { // ewo - "AndórBemirá yá ArábÉ™ uníAfÉ™ganisÉ™tánAntígwa ai BarÉ™búdaAngíyÉ™AlÉ™bániaArÉ™" + - "méniaAnÉ™tíyÉ™ NÉ›dÉ™lániaAngoláArÉ™henÉ™tínaBÉ™samóa yá AmÉ™ÌrÉ™kaOsÉ™tÉ™líaOs" + - "É™tÉ™lalíArúbaAzÉ›rÉ™baidzáŋBosÉ™ní ai É›rÉ™zegovínBarÉ™bádBangaladÉ›ÌsBÉ›lÉ™h" + - "ígBulÉ™kiná FasóBulÉ™garíBahÉ™rÉ›ÌnBurundíBÉ™níŋBÉ›rÉ™múdBulunéBolíviaBÉ™la" + - "zílBahámasButáŋBotswanáBÉ™larúsBÉ™lískanadáǹnam Kongó DemokÉ™latígǹnam " + - "ZÇŽÅ‹ AfirikáKongóSuísKód DivÉ”ÌrMinlán Mí kúgTsilíKamÉ™rúnTsáinaKolÉ”mbí" + - "Kosta RíkaKubáMinlán Mí Káb VÉ›rSipÉ™lúsǸnam TsÉ›ÌgNdzámanDzibutíDanÉ™má" + - "rÉ™gDómÉ™nikaRépublique dominicaineAlÉ™yériaEkwatórEsetoníEhíbÉ™tÉ›nElitÉ™" + - "léKpÉ™nyáEtiopíFinÉ™lánFidzíMinlán Mi FólÉ™kÉ™lanMikoronésiaFulÉ›nsíGabóŋ" + - "Ǹnam EngÉ™lisGÉ™lÉ™nádÉ™HorÉ™ÌyiaGuyán yá FulÉ›nsíGanáYilÉ™balatárGoelánGa" + - "mbíGinéGuadÉ™lúbGiné EkwatóGÉ™lÉ›ÌsGuatemaláGuámGiné BisaóGuyánOndurásK" + - "É™lowásiaAitíOngiríɛndonésiaIrÉ™lándÉ™IsÉ™raÉ›ÌlÉ›Ìndəǹnam É›ngÉ™lís yá Máŋ" + - " mÉ™Ì É›ÌndÉ™IrágIránIsÉ™lándÉ™ItáliÉ›nHamaíkaHorÉ™daníHapÉ”ÌnKeniáKirigisÉ™t" + - "ánkambodíaKiribatíKomÉ”ÌrǸfúfúb-KilisÉ™tóv-ai-NevisKoré yá NórKoré yá" + - " SúdKowÉ›ÌdMinlán Mí KalimáŋKazakÉ™táŋLaósLibáŋǸfúfúb-LúsiaLísÉ™ÌsÉ™Ìtái" + - "nSÉ™ri LaÅ‹káLibériaLÉ™sotóLituaníLukÉ™zambúdLÉ™toníLibíMarÉ”ÌgMÉ”nakóMolÉ™d" + - "avíMadagasÉ™kárÉ™Minlán Mí MaresálMasedóniaMalíMianÉ™márMÉ”ngÉ”ÌliaMinlán" + - " Mi Marián yá NórMarÉ™tinígMoritaníMÉ”ÌntserádMálÉ™tÉ™MorísMalÉ™dívÉ™Malaw" + - "íMÉ›kÉ™sígMalÉ›ÌziaMozambígNamibíǸkpámÉ›n KaledóniaNihÉ›ÌrMinlán NÉ”rÉ™fÉ”Ì" + - "lÉ™kÉ™NihériaNikaráguaPɛíbáNÉ”rÉ™vÉ›ÌsNepálNaurúNiuéǸkpámÉ›n ZeláŋOmánPana" + - "máPerúPolinesí yá FulÉ›nsíPapwazi yá ǸkpámÉ›Ìn GinéFilipínPakisÉ™tánfól" + - "isǸfúfúb-Píɛr-ai-MikÉ™lÉ”ÌÅ‹PítÉ™ÌkÉ›ÌrÉ›nÉ™PwÉ›rÉ™to RíkoǸnam PalÉ›sÉ™tínfÉ”rÉ™t" + - "ugÉ›ÌsPalauParaguéKatárReuniÉ”ÌÅ‹RumaníRúsianRuwandáArabí SaudíMinlán M" + - "í SolomÉ”ÌnSÉ›sÉ›ÌlSudáŋSuwÉ›ÌdSingapúrǸfúfúb-ÆlÉ›ÌnaSÉ™lovéniaSÉ™lovakíSi" + - "erá-leónəǸfúfúb MarínoSenegálSomáliaSurinámSaó Tomé ai PÉ™linÉ™sípeSal" + - "É™vadórSiríSwazilándÉ™Minlán Mí túrÉ™Ìg-ai-KaígTsádTogóTailánTadzikisÉ™" + - "táŋTokelóTimôrTurÉ™kÉ™mÉ™nisÉ™táŋTunisíTÉ”ngáTurÉ™kíTÉ™linité-ai-TobágoTuva" + - "lúTaiwánTaÅ‹É™zaníUkÉ™rÉ›ÌnUgandáǸnam AmÉ›rÉ™kÉ™UruguéUzubekisÉ™tánǸnam Vati" + - "kánǸfúfúb-VÉ›ngÉ™sáŋ-ai-BÉ™ GÉ™lÉ™nadínVenezuélaÅ„nam Minlán É›ÌngÉ™lísMinlá" + - "n Mi AmÉ›rÉ™kÉ™ViÉ›dÉ™námVanuátuWalís-ai-FutúnaSamoáYemÉ›ÌnMayÉ”ÌdAfiríka y" + - "á SúdZambíZimbabwé", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x001e, 0x002d, 0x0043, 0x004b, 0x0055, - 0x005f, 0x0076, 0x007d, 0x007d, 0x008b, 0x00a4, 0x00af, 0x00bb, - 0x00c1, 0x00c1, 0x00d1, 0x00ea, 0x00f3, 0x0100, 0x010a, 0x011a, - 0x0124, 0x012f, 0x0137, 0x013f, 0x013f, 0x0149, 0x0150, 0x0158, - 0x0158, 0x0161, 0x0169, 0x0170, 0x0170, 0x0179, 0x0182, 0x0189, - 0x0190, 0x0190, 0x01aa, 0x01be, 0x01c4, 0x01c9, 0x01d6, 0x01e6, - 0x01ec, 0x01f5, 0x01fc, 0x0205, 0x0205, 0x0210, 0x0215, 0x022a, - 0x022a, 0x022a, 0x0233, 0x0240, 0x0248, 0x0248, 0x0250, 0x025c, - // Entry 40 - 7F - 0x0266, 0x027d, 0x0287, 0x0287, 0x028f, 0x0297, 0x02a2, 0x02a2, - 0x02ab, 0x02b3, 0x02ba, 0x02ba, 0x02c3, 0x02c9, 0x02e0, 0x02ec, - 0x02ec, 0x02f5, 0x02fc, 0x030a, 0x0316, 0x0320, 0x0334, 0x0334, - 0x0339, 0x0346, 0x034d, 0x0353, 0x0358, 0x0362, 0x036f, 0x0378, - 0x0378, 0x0382, 0x0387, 0x0393, 0x0399, 0x0399, 0x0399, 0x03a1, - 0x03ac, 0x03b1, 0x03b8, 0x03b8, 0x03c3, 0x03ce, 0x03d9, 0x03d9, - 0x03e1, 0x040a, 0x040f, 0x0414, 0x041f, 0x0428, 0x0428, 0x0430, - 0x043a, 0x0442, 0x0448, 0x0455, 0x045e, 0x0467, 0x046f, 0x048d, - // Entry 80 - BF - 0x049b, 0x04a9, 0x04b1, 0x04c6, 0x04d2, 0x04d7, 0x04de, 0x04ee, - 0x0500, 0x050d, 0x0515, 0x051d, 0x0525, 0x0531, 0x0539, 0x053e, - 0x0546, 0x054e, 0x0558, 0x0558, 0x0558, 0x0567, 0x057b, 0x0585, - 0x058a, 0x0594, 0x05a0, 0x05a0, 0x05bb, 0x05c6, 0x05cf, 0x05dc, - 0x05e5, 0x05eb, 0x05f6, 0x05fd, 0x0607, 0x0611, 0x061a, 0x0621, - 0x0636, 0x063e, 0x0657, 0x065f, 0x0669, 0x0671, 0x067d, 0x0683, - 0x0689, 0x068e, 0x06a0, 0x06a5, 0x06ac, 0x06b1, 0x06c8, 0x06e6, - 0x06ee, 0x06f9, 0x06ff, 0x071f, 0x0732, 0x0741, 0x0753, 0x0761, - // Entry C0 - FF - 0x0766, 0x076e, 0x0774, 0x0774, 0x077f, 0x0786, 0x0786, 0x078d, - 0x0795, 0x07a2, 0x07b8, 0x07c1, 0x07c8, 0x07d0, 0x07d9, 0x07ec, - 0x07f7, 0x07f7, 0x0801, 0x080f, 0x0820, 0x0828, 0x0830, 0x0838, - 0x0838, 0x0853, 0x085e, 0x085e, 0x0863, 0x086f, 0x086f, 0x088d, - 0x0892, 0x0892, 0x0897, 0x089e, 0x08ad, 0x08b4, 0x08ba, 0x08cf, - 0x08d6, 0x08dd, 0x08e5, 0x08fa, 0x0901, 0x0908, 0x0913, 0x091d, - 0x0924, 0x0924, 0x0934, 0x093b, 0x0949, 0x0957, 0x0981, 0x098b, - 0x09a5, 0x09ba, 0x09c5, 0x09cd, 0x09de, 0x09e4, 0x09e4, 0x09ec, - // Entry 100 - 13F - 0x09f4, 0x0a05, 0x0a0b, 0x0a14, - }, - }, - { // fa - faRegionStr, - faRegionIdx, - }, - { // fa-AF - "اندوراانتیگوا Ùˆ باربوداالبانیاانگولاارجنتاینآسترالیابوسنیا Ùˆ هرزه\u200cÚ¯" + - "وینابنگله\u200cدیشبلجیمبلغاریابرونیبولیویابرازیلبهاماسروسیهٔ سÙیدکا" + - "Ù†Ú¯Ùˆ - کینشاساکانگو - برازویلسویسچلیکولمبیاکاستریکاکیوبادنمارکاستونی" + - "ااریتریاهسپانیهایتوپیاÙنلندمیکرونزیاگریناداگینیاگینیا استواییگواتیم" + - "الاگینیا بیسائوگیاناهاندوراسکروشیاهایتیاندونیزیاآیرلندآیسلندجاپانکی" + - "نیاقرغزستانکمپوچیاکوریای شمالیکوریای جنوبیسریلانکالیسوتولتوانیالاتو" + - "یالیبیامادغاسکرمنگولیاموریتانیامالتامکسیکومالیزیاموزمبیقنیجریانیکار" + - "اگواهالندناروینیپالزیلاند جدیدپانامهپیروپاپوا نیو گینیاپولندپرتگالپ" + - "اراگوایرومانیاروآنداسویدنسینگاپورسلونیاسلواکیاسیرالیونسینیگالسومالی" + - "هالسلوادورتاجکستاناکراینیوروگوایونزویلازیمبابوی", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x000c, 0x000c, 0x000c, 0x002c, 0x002c, 0x003a, - 0x003a, 0x003a, 0x0046, 0x0046, 0x0056, 0x0056, 0x0056, 0x0066, - 0x0066, 0x0066, 0x0066, 0x008b, 0x008b, 0x009e, 0x00a8, 0x00a8, - 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00c0, 0x00ce, - 0x00ce, 0x00da, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00fb, 0x00fb, - 0x00fb, 0x00fb, 0x0116, 0x0116, 0x0131, 0x0139, 0x0139, 0x0139, - 0x013f, 0x013f, 0x013f, 0x014d, 0x014d, 0x015d, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0173, - // Entry 40 - 7F - 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0181, 0x0181, 0x0181, - 0x018f, 0x019d, 0x01ab, 0x01ab, 0x01b5, 0x01b5, 0x01b5, 0x01c7, - 0x01c7, 0x01c7, 0x01c7, 0x01c7, 0x01d5, 0x01d5, 0x01d5, 0x01d5, - 0x01d5, 0x01d5, 0x01d5, 0x01d5, 0x01df, 0x01df, 0x01f8, 0x01f8, - 0x01f8, 0x020a, 0x020a, 0x0221, 0x022b, 0x022b, 0x022b, 0x023b, - 0x0247, 0x0251, 0x0251, 0x0251, 0x0263, 0x026f, 0x026f, 0x026f, - 0x026f, 0x026f, 0x026f, 0x026f, 0x027b, 0x027b, 0x027b, 0x027b, - 0x027b, 0x0285, 0x028f, 0x029f, 0x02ad, 0x02ad, 0x02ad, 0x02ad, - // Entry 80 - BF - 0x02c4, 0x02db, 0x02db, 0x02db, 0x02db, 0x02db, 0x02db, 0x02db, - 0x02db, 0x02eb, 0x02eb, 0x02f7, 0x0305, 0x0305, 0x0311, 0x031b, - 0x031b, 0x031b, 0x031b, 0x031b, 0x031b, 0x032b, 0x032b, 0x032b, - 0x032b, 0x032b, 0x0339, 0x0339, 0x0339, 0x0339, 0x034b, 0x034b, - 0x0355, 0x0355, 0x0355, 0x0355, 0x0361, 0x036f, 0x037d, 0x037d, - 0x037d, 0x037d, 0x037d, 0x0389, 0x039b, 0x03a5, 0x03af, 0x03b9, - 0x03b9, 0x03b9, 0x03ce, 0x03ce, 0x03da, 0x03e2, 0x03e2, 0x03fe, - 0x03fe, 0x03fe, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0414, - // Entry C0 - FF - 0x0414, 0x0424, 0x0424, 0x0424, 0x0424, 0x0432, 0x0432, 0x0432, - 0x043e, 0x043e, 0x043e, 0x043e, 0x043e, 0x0448, 0x0458, 0x0458, - 0x0464, 0x0464, 0x0472, 0x0482, 0x0482, 0x0490, 0x049e, 0x049e, - 0x049e, 0x049e, 0x04b0, 0x04b0, 0x04b0, 0x04b0, 0x04b0, 0x04b0, - 0x04b0, 0x04b0, 0x04b0, 0x04b0, 0x04c0, 0x04c0, 0x04c0, 0x04c0, - 0x04c0, 0x04c0, 0x04c0, 0x04c0, 0x04c0, 0x04c0, 0x04c0, 0x04cc, - 0x04cc, 0x04cc, 0x04cc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04ea, - 0x04ea, 0x04ea, 0x04ea, 0x04ea, 0x04ea, 0x04ea, 0x04ea, 0x04ea, - // Entry 100 - 13F - 0x04ea, 0x04ea, 0x04ea, 0x04fa, - }, - }, - { // ff - "AnndooraEmiraat Araab DenntuÉ—eAfganistaanAntiguwaa e BarbudaaAnngiyaaAlb" + - "aniiArmeniiAntiiye NederlanndeejeAnngolaaArjantiinSamowa AmerikOtiri" + - "isOstaraaliiAruubaAjerbayjaanBosnii HersegowiinBarbadoosBanglaadeesB" + - "eljikBurkibaa FaasoBulgariiBahreynBurunndiBeneeBermudaaBurnaayBoliwi" + - "iBeresiilBahamaasButaanBotswaanaBelaruusBeliiseKanadaaNdenndaandi De" + - "mokaraasiire KonngoNdenndaandi SantarafrikKonngoSuwiisKodduwaarDuuÉ—e" + - " KuukCiliiKameruunSiinKolombiyaKosta RikaaKubaaDuuÉ—e Kap WeerSiiparN" + - "denndaandi CekAlmaañJibutiiDanmarkDominikaNdenndanndi DominikaAlaser" + - "iEkuwatoorEstoniEjiptEritereeEspaañEcoppiFenlandFijjiDuuÉ—e FalklandM" + - "ikoronesiiFarayseGabooLaamateeri RentundiGarnaadJeorgiiGiyaan Farays" + - "eGanaaJibraltaarGorwendlandGammbiGineGwaadalupGinee EkuwaatoriyaalGe" + - "reesGwaatemalaaGuwamGine-BisaawoGiyaanOnnduraasKorwasiiHaytiiOnngiri" + - "EnndonesiiIrlanndaIsraa’iilaEnndoKeeriindi britaani to maayo enndoIr" + - "aakIraanIslanndaItaliJamaykaJordaniSapooKeñaaKirgistaanKambodsoKirib" + - "ariKomoorSent Kits e NewisKoree RewoKoree WorgoKuweytiDuuÉ—e KaymaaKa" + - "sakstaanLawoosLibaaSent LusiyaaLincenstaynSiri LankaLiberiyaaLesotoL" + - "ituaaniiLiksembuurLetoniiLibiMarukMonaakooMoldawiiMadagaskaarDuuÉ—e M" + - "arsaalMeceduwaanMaaliMiyamaarMonngoliiDuuÉ—e Mariyaana RewoMartinikMu" + - "ritaniMonseraatMalteMoriisMaldiiweMalaawiMeksikMalesiiMosammbikNamib" + - "iiNuwel KaledoniiNijeerDuuÉ—e NorfolkNijeriyaaNikaraguwaaNederlanndaN" + - "orweesNepaalNawuruNiuweNuwel SelanndaOmaanPanamaaPeruPolinesii Faray" + - "sePapuwaa Nuwel GineFilipiinPakistaanPoloñSee Piyeer e MikelooPitker" + - "nPorto RikooPalestiin Sisjordani e GaasaaPurtugaalPalawuParaguwaayKa" + - "taarRewiñooRumaniiRiisiiRuwanndaaArabii SawditDuuÉ—e SolomonSeyselSud" + - "aanSuweedSinngapuurSent HelenSloweniiSlowakiiSeraa liyonSee MareeSen" + - "egaalSomaliiSurinaamSawo Tome e PerensipeEl SalwadorSiriiSwaasilannd" + - "aDuuÉ—e Turke e KeikoosCaadTogooTaylanndaTajikistaanTokelaawTimoor Fu" + - "É—naangeTurkmenistaanTunisiiTonngaaTurkiiTirnidaad e TobaagoTuwaluuT" + - "aywaanTansaniiUkereenUnganndaaDowlaaji DentuÉ—i AmerikUruguwaayUsbeki" + - "staanDowla WaticaanSee Weesaa e GarnadiinWenesuwelaaduuÉ—e kecce brit" + - "aniiDuuÉ—e Kecce AmerikWiyetnaamWanuwaatuuWalis e FutunaSamowaaYemenM" + - "ayootAfrik bÅ‹ WorgoSammbiSimbaabuwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0008, 0x001f, 0x002a, 0x003e, 0x0046, 0x004d, - 0x0054, 0x006a, 0x0072, 0x0072, 0x007b, 0x0088, 0x008f, 0x0099, - 0x009f, 0x009f, 0x00aa, 0x00bc, 0x00c5, 0x00d0, 0x00d6, 0x00e4, - 0x00ec, 0x00f3, 0x00fb, 0x0100, 0x0100, 0x0108, 0x010f, 0x0116, - 0x0116, 0x011e, 0x0126, 0x012c, 0x012c, 0x0135, 0x013d, 0x0144, - 0x014b, 0x014b, 0x016c, 0x0183, 0x0189, 0x018f, 0x0198, 0x01a3, - 0x01a8, 0x01b0, 0x01b4, 0x01bd, 0x01bd, 0x01c8, 0x01cd, 0x01dc, - 0x01dc, 0x01dc, 0x01e2, 0x01f1, 0x01f8, 0x01f8, 0x01ff, 0x0206, - // Entry 40 - 7F - 0x020e, 0x0222, 0x0229, 0x0229, 0x0232, 0x0238, 0x023d, 0x023d, - 0x0245, 0x024c, 0x0252, 0x0252, 0x0259, 0x025e, 0x026d, 0x0278, - 0x0278, 0x027f, 0x0284, 0x0297, 0x029e, 0x02a5, 0x02b3, 0x02b3, - 0x02b8, 0x02c2, 0x02cd, 0x02d3, 0x02d7, 0x02e0, 0x02f4, 0x02fa, - 0x02fa, 0x0305, 0x030a, 0x0316, 0x031c, 0x031c, 0x031c, 0x0325, - 0x032d, 0x0333, 0x033a, 0x033a, 0x0344, 0x034c, 0x0358, 0x0358, - 0x035d, 0x037e, 0x0383, 0x0388, 0x0390, 0x0395, 0x0395, 0x039c, - 0x03a3, 0x03a8, 0x03ae, 0x03b8, 0x03c0, 0x03c8, 0x03ce, 0x03df, - // Entry 80 - BF - 0x03e9, 0x03f4, 0x03fb, 0x0408, 0x0412, 0x0418, 0x041d, 0x0429, - 0x0434, 0x043e, 0x0447, 0x044d, 0x0456, 0x0460, 0x0467, 0x046b, - 0x0470, 0x0478, 0x0480, 0x0480, 0x0480, 0x048b, 0x0499, 0x04a3, - 0x04a8, 0x04b0, 0x04b9, 0x04b9, 0x04ce, 0x04d6, 0x04de, 0x04e7, - 0x04ec, 0x04f2, 0x04fa, 0x0501, 0x0507, 0x050e, 0x0517, 0x051e, - 0x052d, 0x0533, 0x0541, 0x054a, 0x0555, 0x0560, 0x0567, 0x056d, - 0x0573, 0x0578, 0x0586, 0x058b, 0x0592, 0x0596, 0x05a7, 0x05b9, - 0x05c1, 0x05ca, 0x05d0, 0x05e4, 0x05eb, 0x05f6, 0x0613, 0x061c, - // Entry C0 - FF - 0x0622, 0x062c, 0x0632, 0x0632, 0x063a, 0x0641, 0x0641, 0x0647, - 0x0650, 0x065d, 0x066b, 0x0671, 0x0677, 0x067d, 0x0687, 0x0691, - 0x0699, 0x0699, 0x06a1, 0x06ac, 0x06b5, 0x06bd, 0x06c4, 0x06cc, - 0x06cc, 0x06e1, 0x06ec, 0x06ec, 0x06f1, 0x06fd, 0x06fd, 0x0713, - 0x0717, 0x0717, 0x071c, 0x0725, 0x0730, 0x0738, 0x0749, 0x0756, - 0x075d, 0x0764, 0x076a, 0x077d, 0x0784, 0x078b, 0x0793, 0x079a, - 0x07a3, 0x07a3, 0x07bb, 0x07c4, 0x07cf, 0x07dd, 0x07f3, 0x07fe, - 0x0813, 0x0826, 0x082f, 0x0839, 0x0847, 0x084e, 0x084e, 0x0853, - // Entry 100 - 13F - 0x0859, 0x0868, 0x086e, 0x0878, - }, - }, - { // fi - fiRegionStr, - fiRegionIdx, - }, - { // fil - filRegionStr, - filRegionIdx, - }, - { // fo - "AscensionoyggjinAndorraSameindu EmirríkiniAfganistanAntigua og BarbudaAn" + - "guillaAlbaniaArmeniaNiðurlendsku AntilloyggjarnarAngolaAntarktisArge" + - "ntinaAmerikanska SámoaEysturríkiAvstraliaArubaÃlandAserbajdsjanBosni" + - "a-HersegovinaBarbadosBangladesjBelgiaBurkina FasoBulgariaBahrainBuru" + - "ndiBeninSaint BarthélemyBermudaBruneiBoliviaNiðurlonds KaribiaBrasil" + - "iaBahamasButanBouvetoyggjinBotsvanaHvítarusslandBelisKanadaKokosoygg" + - "jarnarKongo-KinshasaMiðafrikalýðveldiðKongoSveisFílabeinsstrondinCoo" + - "ksoyggjarnarKiliKamerunKinaKolombiaClippertonoyggjinKosta RikaKubaGr" + - "ønhøvdaoyggjarnarCuraçaoJólaoyggjinKýprosKekkiaTýsklandDiego Garcia" + - "DjiboutiDanmørkDominikaDomingo lýðveldiðAlgeriaCeuta og MelillaEkvad" + - "orEstlandEgyptalandVestursaharaEritreaSpaniaEtiopiaEvropasamveldiðFi" + - "nnlandFijiFalklandsoyggjarnarMikronesiaFøroyarFraklandGabonStóra Bre" + - "tlandGrenadaGeorgiaFransk GujanaGuernseyGhanaGibraltarGrønlandGambia" + - "GuineaGuadeloupeEkvator GuineaGrikkalandSuðurgeorgiaGuatemalaGuamGui" + - "nea BissauGujanaHongkongHeard- og McDonald-oyggjarnarHondurasKroatia" + - "HaitiUngarnKanaríoyggjarnarIndonesiaÃrlandÃsraelMannIndiaBretsku Ind" + - "iahavsoyggjarnarIrakIranÃslandItaliaJerseyJameikaJordaniaJapanKenjaK" + - "irgisiaKambodjaKiribatiKomorooyggjarnarSaint Kitts og NevisNorður-Ko" + - "reaSuður-KoreaKuvaitCaymanoyggjarnarKasakstanLaosLibanonSaint LusiaL" + - "iktensteinSri LankaLiberiaLesotoLitavaLuksemborgLettlandLibyaMarokko" + - "MonakoMoldovaMontenegroFransk Saint MartinMadagaskarMarshalloyggjarn" + - "arMakedóniaMaliBurmaMongoliaMakaoNorðurmarianoyggjarnarMartiniqueMór" + - "itaniaMontserratMaltaMóritiusMaldivuoyggjarnarMalaviMeksikoMaleisiaM" + - "osambikNamibiaNý-KaledoniaNigerNorfolkoyggjinNigeriaNikaraguaNiðurlo" + - "ndNoregNepalNauruNiueNý SælandOmanPanamaPerúFranska PolynesiaPapua N" + - "ýguineaFilipsoyggjarPakistanPóllandSaint Pierre og MiquelonPitcairn" + - "Puerto RicoPalestinskt territoriumPortugalPalauParagueiKatarRéunionR" + - "umeniaSerbiaRusslandRuandaSaudi-ArábiaSálomonoyggjarnarSeyskelloyggj" + - "arnarNorðursudanSvøríkiSingaporSaint HelenaSloveniaSvalbard og Jan M" + - "ayenSlovakiaSierra LeoneSan MarinoSenegalSomaliaSurinamSuðursudanSao" + - " Tome og PrinsipiEl SalvadorNiðurlonds Saint MartinSyriaSvasilandTri" + - "stan da CunhaTurks- og CaicosoyggjarnarKjadTogoTeilandTadsjikistanTo" + - "kelauEystur-TimorTurkmenistanTunesiaTongaTurkalandTrinidad og Tobago" + - "TuvaluTeivanTansaniaUkreinaUgandaSambandsríki AmerikaUrugueiUsbekist" + - "anVatikanSaint Vinsent og GrenadinoyggjarVenesuelaStóra Bretlands Jó" + - "mfrúoyggjarnarSambandsríki Amerikas JómfrúoyggjarnarVietnamVanuatuWa" + - "llis og FutunaSámoaKosovoJemenMayotteSuðurafrikalýðveldiðSambiaSimba" + - "bvi(ukendt omrÃ¥de)heimurAfricaNorðuramerikaSuðuramerikaKyrrahavsoygg" + - "jarnarVesturafrikaSentralamerikaEysturafrikaNorðurafrikaMiðafrikaSuð" + - "ur AfrikaAmerikaAmerika norður MeksikoKaribiaEysturasiaSuðurasiaSuðu" + - "reysturasiaSuðurevropaAvstralia og NýsælandMelanesiaMikronesiske reg" + - "ionenPolynesiaAsiaSentralasiaVesturasiaEvropaEysturevropaNorðurevrop" + - "aVesturevropaLatínamerika", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0010, 0x0017, 0x002b, 0x0035, 0x0047, 0x004f, 0x0056, - 0x005d, 0x007b, 0x0081, 0x008a, 0x0093, 0x00a5, 0x00b0, 0x00b9, - 0x00be, 0x00c4, 0x00d0, 0x00e2, 0x00ea, 0x00f4, 0x00fa, 0x0106, - 0x010e, 0x0115, 0x011c, 0x0121, 0x0132, 0x0139, 0x013f, 0x0146, - 0x0159, 0x0161, 0x0168, 0x016d, 0x017a, 0x0182, 0x0190, 0x0195, - 0x019b, 0x01aa, 0x01b8, 0x01ce, 0x01d3, 0x01d8, 0x01ea, 0x01f9, - 0x01fd, 0x0204, 0x0208, 0x0210, 0x0221, 0x022b, 0x022f, 0x0244, - 0x024c, 0x0258, 0x025f, 0x0265, 0x026e, 0x027a, 0x0282, 0x028a, - // Entry 40 - 7F - 0x0292, 0x02a6, 0x02ad, 0x02bd, 0x02c4, 0x02cb, 0x02d5, 0x02e1, - 0x02e8, 0x02ee, 0x02f5, 0x0305, 0x030d, 0x0311, 0x0324, 0x032e, - 0x0336, 0x033e, 0x0343, 0x0352, 0x0359, 0x0360, 0x036d, 0x0375, - 0x037a, 0x0383, 0x038c, 0x0392, 0x0398, 0x03a2, 0x03b0, 0x03ba, - 0x03c7, 0x03d0, 0x03d4, 0x03e1, 0x03e7, 0x03ef, 0x040c, 0x0414, - 0x041b, 0x0420, 0x0426, 0x0437, 0x0440, 0x0447, 0x044e, 0x0452, - 0x0457, 0x0472, 0x0476, 0x047a, 0x0481, 0x0487, 0x048d, 0x0494, - 0x049c, 0x04a1, 0x04a6, 0x04ae, 0x04b6, 0x04be, 0x04ce, 0x04e2, - // Entry 80 - BF - 0x04ef, 0x04fb, 0x0501, 0x0511, 0x051a, 0x051e, 0x0525, 0x0530, - 0x053b, 0x0544, 0x054b, 0x0551, 0x0557, 0x0561, 0x0569, 0x056e, - 0x0575, 0x057b, 0x0582, 0x058c, 0x059f, 0x05a9, 0x05bb, 0x05c5, - 0x05c9, 0x05ce, 0x05d6, 0x05db, 0x05f2, 0x05fc, 0x0606, 0x0610, - 0x0615, 0x061e, 0x062f, 0x0635, 0x063c, 0x0644, 0x064c, 0x0653, - 0x0660, 0x0665, 0x0673, 0x067a, 0x0683, 0x068d, 0x0692, 0x0697, - 0x069c, 0x06a0, 0x06ab, 0x06af, 0x06b5, 0x06ba, 0x06cb, 0x06da, - 0x06e7, 0x06ef, 0x06f7, 0x070f, 0x0717, 0x0722, 0x0739, 0x0741, - // Entry C0 - FF - 0x0746, 0x074e, 0x0753, 0x0753, 0x075b, 0x0762, 0x0768, 0x0770, - 0x0776, 0x0783, 0x0795, 0x07a7, 0x07b3, 0x07bc, 0x07c4, 0x07d0, - 0x07d8, 0x07ed, 0x07f5, 0x0801, 0x080b, 0x0812, 0x0819, 0x0820, - 0x082b, 0x083f, 0x084a, 0x0862, 0x0867, 0x0870, 0x0880, 0x089a, - 0x089e, 0x089e, 0x08a2, 0x08a9, 0x08b5, 0x08bc, 0x08c8, 0x08d4, - 0x08db, 0x08e0, 0x08e9, 0x08fb, 0x0901, 0x0907, 0x090f, 0x0916, - 0x091c, 0x091c, 0x0931, 0x0938, 0x0942, 0x0949, 0x0969, 0x0972, - 0x0995, 0x09be, 0x09c5, 0x09cc, 0x09dc, 0x09e2, 0x09e8, 0x09ed, - // Entry 100 - 13F - 0x09f4, 0x0a0c, 0x0a12, 0x0a1a, 0x0a2a, 0x0a30, 0x0a36, 0x0a44, - 0x0a51, 0x0a64, 0x0a70, 0x0a7e, 0x0a8a, 0x0a97, 0x0aa1, 0x0aae, - 0x0ab5, 0x0acc, 0x0ad3, 0x0add, 0x0ae7, 0x0af7, 0x0b03, 0x0b1a, - 0x0b23, 0x0b38, 0x0b41, 0x0b45, 0x0b50, 0x0b5a, 0x0b60, 0x0b6c, - 0x0b79, 0x0b85, 0x0b92, - }, - }, - { // fr - frRegionStr, - frRegionIdx, - }, - { // fr-CA - frCARegionStr, - frCARegionIdx, - }, - { // fur - "AndorraEmirâts araps unîtsAfghanistanAntigua e BarbudaAnguillaAlbanieArm" + - "enieAntilis olandesisAngolaAntarticArgjentineSamoa merecanisAustrieA" + - "ustralieArubaIsulis AlandAzerbaigianBosnie e ErcegovineBarbadosBangl" + - "adeshBelgjicheBurkina FasoBulgarieBahrainBurundiBeninSant Barthélemy" + - "BermudaBruneiBolivieBrasîlBahamasBhutanIsule BouvetBotswanaBieloruss" + - "ieBelizeCanadeIsulis CocosRepubliche Democratiche dal CongoRepublich" + - "e centri africaneCongo - BrazzavilleSvuizareCueste di AvoliIsulis Co" + - "okCileCamerunCineColombieIsule ClippertonCosta RicaCubaCjâf vertIsul" + - "e ChristmasCipriRepubliche cecheGjermanieDiego GarciaGibutiDanimarcj" + - "eDominicheRepubliche dominicaneAlzerieCeuta e MelillaEcuadorEstonieE" + - "gjitSahara ocidentâlEritreeSpagneEtiopieUnion europeaneFinlandieFizi" + - "Isulis FalklandMicronesieIsulis FaroeFranceGabonReam unîtGrenadaGjeo" + - "rgjieGuiana francêsGuernseyGhanaGjibraltarGroenlandeGambiaGuineeGuad" + - "alupeGuinee ecuatoriâlGrecieGeorgia dal Sud e Isulis Sandwich dal Su" + - "dGuatemalaGuamGuinea-BissauGuyanaRegjon aministrative speciâl de Cin" + - "e di Hong KongIsule Heard e Isulis McDonaldHondurasCravuazieHaitiOng" + - "jarieIsulis CanariisIndonesieIrlandeIsraêlIsule di ManIndiaTeritori " + - "britanic dal Ocean IndianIraqIranIslandeItalieJerseyGjamaicheJordani" + - "eGjaponKenyaKirghizstanCambozeKiribatiComorisSan Kitts e NevisCoree " + - "dal nordCoree dal sudKuwaitIsulis CaymanKazachistanLaosLibanSante Lu" + - "sieLiechtensteinSri LankaLiberieLesothoLituanieLussemburcLetonieLibi" + - "eMarocMonacoMoldavieMontenegroSant MartinMadagascarIsulis MarshallMa" + - "cedonieMaliBirmanieMongolieRegjon aministrative speciâl de Cine di M" + - "acaoIsulis Mariana dal NordMartinicheMauritanieMontserratMaltaMauriz" + - "iMaldivisMalawiMessicMalaysiaMozambicNamibieGnove CaledonieNigerIsol" + - "e NorfolkNigerieNicaraguaPaîs basNorvegjeNepalNauruNiueGnove Zelande" + - "OmanPanamàPerùPolinesie francêsPapue Gnove GuineeFilipinisPakistanPo" + - "lonieSan Pierre e MiquelonPitcairnPorto RicoTeritoris palestinêsPort" + - "ugalPalauParaguayQatarOceanie perifericheReunionRomanieSerbieRussieR" + - "uandeArabie SaudideIsulis SalomonSeychellesSudanSvezieSingaporeSante" + - " ElineSlovenieSvalbard e Jan MayenSlovachieSierra LeoneSan MarinSene" + - "galSomalieSurinameSao Tomè e PrincipeEl SalvadorSirieSwazilandTrista" + - "n da CunhaIsulis Turks e CaicosÇadTeritoris meridionâi francêsTogoTa" + - "ilandieTazikistanTokelauTimor orientâlTurkmenistanTunisieTongaTurchi" + - "eTrinidad e TobagoTuvaluTaiwanTanzanieUcraineUgandaIsulis periferich" + - "is minôrs dai Stâts UnîtsStâts UnîtsUruguayUzbechistanVaticanSan Vin" + - "cent e lis GrenadinisVenezuelaIsulis vergjinis britanichisIsulis ver" + - "gjinis americanisVietnamVanuatuWallis e FutunaSamoaYemenMayotteSud A" + - "fricheZambiaZimbabweRegjon no cognossude o no valideMontAfricheAmeri" + - "che dal NordAmeriche meridionâlOceanieAfriche ocidentâlAmeriche cent" + - "râlAfriche orientâlAfriche setentrionâlAfriche di mieçAfriche meridi" + - "onâlAmerichisAmeriche setentrionâlcaraibicAsie orientâlAsie meridion" + - "âlAsie sud orientâlEurope meridionâlAustralie e Gnove ZelandeMelane" + - "sieRegjon de MicronesiePolinesieAsieAsie centrâlAsie ocidentâlEurope" + - "Europe orientâlEurope setentrionâlEurope ocidentâlAmeriche latine", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x001c, 0x0027, 0x0038, 0x0040, 0x0047, - 0x004e, 0x005f, 0x0065, 0x006d, 0x0077, 0x0086, 0x008d, 0x0096, - 0x009b, 0x00a7, 0x00b2, 0x00c5, 0x00cd, 0x00d7, 0x00e0, 0x00ec, - 0x00f4, 0x00fb, 0x0102, 0x0107, 0x0117, 0x011e, 0x0124, 0x012b, - 0x012b, 0x0132, 0x0139, 0x013f, 0x014b, 0x0153, 0x015e, 0x0164, - 0x016a, 0x0176, 0x0197, 0x01b1, 0x01c4, 0x01cc, 0x01db, 0x01e6, - 0x01ea, 0x01f1, 0x01f5, 0x01fd, 0x020d, 0x0217, 0x021b, 0x0225, - 0x0225, 0x0234, 0x0239, 0x0249, 0x0252, 0x025e, 0x0264, 0x026e, - // Entry 40 - 7F - 0x0277, 0x028c, 0x0293, 0x02a2, 0x02a9, 0x02b0, 0x02b5, 0x02c6, - 0x02cd, 0x02d3, 0x02da, 0x02e9, 0x02f2, 0x02f6, 0x0305, 0x030f, - 0x031b, 0x0321, 0x0326, 0x0330, 0x0337, 0x0340, 0x034f, 0x0357, - 0x035c, 0x0366, 0x0370, 0x0376, 0x037c, 0x0385, 0x0397, 0x039d, - 0x03c6, 0x03cf, 0x03d3, 0x03e0, 0x03e6, 0x0418, 0x0435, 0x043d, - 0x0446, 0x044b, 0x0453, 0x0462, 0x046b, 0x0472, 0x0479, 0x0485, - 0x048a, 0x04ac, 0x04b0, 0x04b4, 0x04bb, 0x04c1, 0x04c7, 0x04d0, - 0x04d8, 0x04de, 0x04e3, 0x04ee, 0x04f5, 0x04fd, 0x0504, 0x0515, - // Entry 80 - BF - 0x0523, 0x0530, 0x0536, 0x0543, 0x054e, 0x0552, 0x0557, 0x0562, - 0x056f, 0x0578, 0x057f, 0x0586, 0x058e, 0x0598, 0x059f, 0x05a4, - 0x05a9, 0x05af, 0x05b7, 0x05c1, 0x05cc, 0x05d6, 0x05e5, 0x05ee, - 0x05f2, 0x05fa, 0x0602, 0x0630, 0x0647, 0x0651, 0x065b, 0x0665, - 0x066a, 0x0671, 0x0679, 0x067f, 0x0685, 0x068d, 0x0695, 0x069c, - 0x06ab, 0x06b0, 0x06bd, 0x06c4, 0x06cd, 0x06d6, 0x06de, 0x06e3, - 0x06e8, 0x06ec, 0x06f9, 0x06fd, 0x0704, 0x0709, 0x071b, 0x072d, - 0x0736, 0x073e, 0x0745, 0x075a, 0x0762, 0x076c, 0x0781, 0x0789, - // Entry C0 - FF - 0x078e, 0x0796, 0x079b, 0x07ae, 0x07b5, 0x07bc, 0x07c2, 0x07c8, - 0x07ce, 0x07dc, 0x07ea, 0x07f4, 0x07f9, 0x07ff, 0x0808, 0x0813, - 0x081b, 0x082f, 0x0838, 0x0844, 0x084d, 0x0854, 0x085b, 0x0863, - 0x0863, 0x0877, 0x0882, 0x0882, 0x0887, 0x0890, 0x08a0, 0x08b5, - 0x08b9, 0x08d7, 0x08db, 0x08e4, 0x08ee, 0x08f5, 0x0904, 0x0910, - 0x0917, 0x091c, 0x0923, 0x0934, 0x093a, 0x0940, 0x0948, 0x094f, - 0x0955, 0x0982, 0x098f, 0x0996, 0x09a1, 0x09a8, 0x09c4, 0x09cd, - 0x09e9, 0x0a04, 0x0a0b, 0x0a12, 0x0a21, 0x0a26, 0x0a26, 0x0a2b, - // Entry 100 - 13F - 0x0a32, 0x0a3d, 0x0a43, 0x0a4b, 0x0a6b, 0x0a6f, 0x0a76, 0x0a87, - 0x0a9b, 0x0aa2, 0x0ab4, 0x0ac5, 0x0ad6, 0x0aeb, 0x0afb, 0x0b0e, - 0x0b17, 0x0b2d, 0x0b35, 0x0b43, 0x0b53, 0x0b65, 0x0b77, 0x0b90, - 0x0b99, 0x0bad, 0x0bb6, 0x0bba, 0x0bc7, 0x0bd6, 0x0bdc, 0x0bec, - 0x0c00, 0x0c11, 0x0c20, - }, - }, - { // fy - "AscensionAndorraVerenigde Arabyske EmiratenAfghanistanAntigua en Barbuda" + - "AnguillaAlbaniëArmeniëNederlânske AntillenAngolaAntarcticaArgentinië" + - "Amerikaansk SamoaEastenrykAustraliëArubaÃ…lânAzerbeidzjanBosnië en He" + - "rzegovinaBarbadosBangladeshBelgiëBurkina FasoBulgarijeBahreinBurundi" + - "BeninSaint BarthélemyBermudaBruneiBoliviaKaribysk NederlânBraziliëBa" + - "hama’sBhutanBouveteilânBotswanaWit-RuslânBelizeCanadaKokosilanenCong" + - "o-KinshasaSintraal-Afrikaanske RepublykCongo-BrazzavilleSwitserlânIv" + - "oorkustCookeilannenChiliKameroenSinaKolombiaClippertonCosta RicaKuba" + - "KaapverdiëCuraçaoKrysteilanSyprusTsjechjeDútslânDiego GarciaDjibouti" + - "DenemarkenDominikaDominikaanske RepublykAlgerijeCeuta en MelillaEcua" + - "dorEstlânEgypteWestelijke SaharaEritreaSpanjeEthiopiëEuropeeske Unie" + - "FinlânFijiFalklâneilannenMicronesiëFaeröerFrankrijkGabonVerenigd Kon" + - "inkrijkGrenadaGeorgiëFrans-GuyanaGuernseyGhanaGibraltarGrienlânGambi" + - "aGuineeGuadeloupeEquatoriaal-GuineaGrikelânSûd-Georgia en Sûdlike Sa" + - "ndwicheilannenGuatemalaGuamGuinee-BissauGuyanaHongkong SAR van SinaH" + - "eard- en McDonaldeilannenHondurasKroatiëHaïtiHongarijeKanaryske Eilâ" + - "nnenYndonesiëIerlânIsraëlIsle of ManIndiaBritse Gebieden yn de Indys" + - "ke OseaanIrakIranYslânItaliëJerseyJamaicaJordaniëJapanKeniaKirgiziëC" + - "ambodjaKiribatiComorenSaint Kitts en NevisNoard-KoreaSûd-KoreaKoewei" + - "tCaymaneilannenKazachstanLaosLibanonSaint LuciaLiechtensteinSri Lank" + - "aLiberiaLesothoLitouwenLuxemburgLetlânLibiëMarokkoMonacoMoldaviëMont" + - "enegroSaint-MartinMadeiaskarMarshalleilannenMacedoniëMaliMyanmar (Bi" + - "rma)MongoliëMacao SAR van SinaNoardlike MarianeneilannenMartiniqueMa" + - "uritaniëMontserratMaltaMauritiusMaldivenMalawiMexicoMaleisiëMozambiq" + - "ueNamibiëNij-CaledoniëNigerNorfolkeilânNigeriaNicaraguaNederlânNoarw" + - "egenNepalNauruNiueNij-SeelânOmanPanamaPeruFrans-PolynesiëPapoea-Nij-" + - "GuineaFilipijnenPakistanPolenSaint-Pierre en MiquelonPitcairneilanne" + - "nPuerto RicoPalestynske gebietenPortugalPalauParaguayQatarOerig Ocea" + - "niëRéunionRoemeniëServiëRuslânRwandaSaoedi-ArabiëSalomonseilannenSey" + - "chellenSoedanZwedenSingaporeSint-HelenaSloveniëSpitsbergen en Jan Ma" + - "yenSlowakijeSierra LeoneSan MarinoSenegalSomaliëSurinameSûd-SoedanSa" + - "o Tomé en PrincipeEl SalvadorSint-MaartenSyriëSwazilânTristan da Cun" + - "haTurks- en CaicoseilannenTsjaadFranse Gebieden in de zuidelijke Ind" + - "yske OseaanTogoThailânTadzjikistanTokelauEast-TimorTurkmenistanTunes" + - "iëTongaTurkijeTrinidad en TobagoTuvaluTaiwanTanzaniaOekraïneOegandaL" + - "yts ôflizzen eilannen fan de Ferienigde StatenFerienigde StatenUrugu" + - "ayOezbekistanVaticaanstêdSaint Vincent en de GrenadinesVenezuelaBrit" + - "se MaagdeneilannenAmerikaanske MaagdeneilannenVietnamVanuatuWallis e" + - "n FutunaSamoaKosovoJemenMayotteSûd-AfrikaZambiaZimbabweUnbekend gebi" + - "etWrâldAfrikaNoard-AmerikaSûd-AmerikaOceaniëWest-AfrikaMidden-Amerik" + - "aEast-AfrikaNoard-AfrikaSintraal-AfrikaSûdelijk AfrikaAmerikaNoardli" + - "k AmerikaKaribysk gebietEast-AziëSûd-AziëSûdoost-AziëSûd-EuropaAustr" + - "alaziëMelanesiëMicronesyske regioPolynesiëAziëSintraal-AziëWest-Azië" + - "EuropaEast-EuropaNoard-EuropaWest-EuropaLatynsk-Amearika", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0009, 0x0010, 0x002b, 0x0036, 0x0048, 0x0050, 0x0058, - 0x0060, 0x0075, 0x007b, 0x0085, 0x0090, 0x00a1, 0x00aa, 0x00b4, - 0x00b9, 0x00bf, 0x00cb, 0x00e1, 0x00e9, 0x00f3, 0x00fa, 0x0106, - 0x010f, 0x0116, 0x011d, 0x0122, 0x0133, 0x013a, 0x0140, 0x0147, - 0x0159, 0x0162, 0x016c, 0x0172, 0x017e, 0x0186, 0x0191, 0x0197, - 0x019d, 0x01a8, 0x01b6, 0x01d3, 0x01e4, 0x01ef, 0x01f8, 0x0204, - 0x0209, 0x0211, 0x0215, 0x021d, 0x0227, 0x0231, 0x0235, 0x0240, - 0x0248, 0x0252, 0x0258, 0x0260, 0x0269, 0x0275, 0x027d, 0x0287, - // Entry 40 - 7F - 0x028f, 0x02a5, 0x02ad, 0x02bd, 0x02c4, 0x02cb, 0x02d1, 0x02e2, - 0x02e9, 0x02ef, 0x02f8, 0x0307, 0x030e, 0x0312, 0x0322, 0x032d, - 0x0335, 0x033e, 0x0343, 0x0356, 0x035d, 0x0365, 0x0371, 0x0379, - 0x037e, 0x0387, 0x0390, 0x0396, 0x039c, 0x03a6, 0x03b8, 0x03c1, - 0x03ea, 0x03f3, 0x03f7, 0x0404, 0x040a, 0x041f, 0x0439, 0x0441, - 0x0449, 0x044f, 0x0458, 0x046b, 0x0475, 0x047c, 0x0483, 0x048e, - 0x0493, 0x04b7, 0x04bb, 0x04bf, 0x04c5, 0x04cc, 0x04d2, 0x04d9, - 0x04e2, 0x04e7, 0x04ec, 0x04f5, 0x04fd, 0x0505, 0x050c, 0x0520, - // Entry 80 - BF - 0x052b, 0x0535, 0x053c, 0x054a, 0x0554, 0x0558, 0x055f, 0x056a, - 0x0577, 0x0580, 0x0587, 0x058e, 0x0596, 0x059f, 0x05a6, 0x05ac, - 0x05b3, 0x05b9, 0x05c2, 0x05cc, 0x05d8, 0x05e2, 0x05f2, 0x05fc, - 0x0600, 0x060f, 0x0618, 0x062a, 0x0644, 0x064e, 0x0659, 0x0663, - 0x0668, 0x0671, 0x0679, 0x067f, 0x0685, 0x068e, 0x0698, 0x06a0, - 0x06ae, 0x06b3, 0x06c0, 0x06c7, 0x06d0, 0x06d9, 0x06e2, 0x06e7, - 0x06ec, 0x06f0, 0x06fb, 0x06ff, 0x0705, 0x0709, 0x0719, 0x072a, - 0x0734, 0x073c, 0x0741, 0x0759, 0x0769, 0x0774, 0x0788, 0x0790, - // Entry C0 - FF - 0x0795, 0x079d, 0x07a2, 0x07b0, 0x07b8, 0x07c1, 0x07c8, 0x07cf, - 0x07d5, 0x07e3, 0x07f3, 0x07fd, 0x0803, 0x0809, 0x0812, 0x081d, - 0x0826, 0x083e, 0x0847, 0x0853, 0x085d, 0x0864, 0x086c, 0x0874, - 0x087f, 0x0894, 0x089f, 0x08ab, 0x08b1, 0x08ba, 0x08ca, 0x08e2, - 0x08e8, 0x0917, 0x091b, 0x0923, 0x092f, 0x0936, 0x0940, 0x094c, - 0x0954, 0x0959, 0x0960, 0x0972, 0x0978, 0x097e, 0x0986, 0x098f, - 0x0996, 0x09c6, 0x09d7, 0x09de, 0x09e9, 0x09f6, 0x0a14, 0x0a1d, - 0x0a33, 0x0a4f, 0x0a56, 0x0a5d, 0x0a6d, 0x0a72, 0x0a78, 0x0a7d, - // Entry 100 - 13F - 0x0a84, 0x0a8f, 0x0a95, 0x0a9d, 0x0aac, 0x0ab2, 0x0ab8, 0x0ac5, - 0x0ad1, 0x0ad9, 0x0ae4, 0x0af2, 0x0afd, 0x0b09, 0x0b18, 0x0b28, - 0x0b2f, 0x0b3f, 0x0b4e, 0x0b58, 0x0b62, 0x0b70, 0x0b7b, 0x0b87, - 0x0b91, 0x0ba3, 0x0bad, 0x0bb2, 0x0bc0, 0x0bca, 0x0bd0, 0x0bdb, - 0x0be7, 0x0bf2, 0x0c02, - }, - }, - { // ga - "Oileán na DeascabhálaAndóraAontas na nÉimíríochtaí ArabachaAn Afganastái" + - "nAntigua agus BarbúdaAngaíleAn AlbáinAn AirméinAintillí na hÃsiltíre" + - "AngólaAn AntartaiceAn AirgintínSamó MeiriceánachAn OstairAn AstráilA" + - "rúbaOileáin Ã…landAn AsarbaiseáinAn Bhoisnia agus An HeirseagaivéinBa" + - "rbadósAn BhanglaidéisAn BheilgBuircíne FasóAn BhulgáirBairéinAn Bhur" + - "úinBeininSaint BarthélemyBeirmiúdaBrúinéAn BholaivAn Ãsiltír Chairi" + - "beachAn BhrasaílNa BahámaíAn BhútáinOileán BouvetAn BhotsuáinAn Bhea" + - "larúisAn BheilísCeanadaOileáin Cocos (Keeling)Poblacht Dhaonlathach " + - "an ChongóPoblacht na hAfraice LáirAn CongóAn EilvéisAn Cósta Eabhair" + - "Oileáin CookAn tSileCamarúnAn tSínAn CholóimOileán ClippertonCósta R" + - "íceCúbaRinn VerdeCuraçaoOileán na NollagAn ChipirPoblacht na SeiceA" + - "n GhearmáinDiego GarciaDjiboutiAn DanmhairgDoiminiceAn Phoblacht Dho" + - "iminiceachAn AilgéirCeuta agus MelillaEacuadórAn EastóinAn ÉigiptAn " + - "Sahára ThiarAn EiritréAn SpáinnAn AetóipAn tAontas EorpachAn Fhionla" + - "innFidsíOileáin FháclainneAn MhicrinéisOileáin FharóAn FhraincAn Gha" + - "búinAn Ríocht AontaitheGreanádaAn tSeoirsiaGuáin na FrainceGeansaíGá" + - "naGiobráltarAn GhraonlainnAn GhaimbiaAn GhuineGuadalúipAn Ghuine Mhe" + - "ánchriosachAn GhréigAn tSeoirsia Theas agus Oileáin Sandwich TheasG" + - "uatamalaGuamGuine BissauAn GhuáinS.R.R. na Síne Hong CongOileán Hear" + - "d agus Oileáin McDonaldHondúrasAn ChróitHáítíAn UngáirNa hOileáin Ch" + - "anárachaAn IndinéisÉireIosraelOileán MhanannAn IndiaCríoch Aigéan In" + - "diach na BreataineAn IaráicAn IaráinAn ÃoslainnAn IodáilGeirsíIamáic" + - "eAn IordáinAn tSeapáinAn ChéiniaAn ChirgeastáinAn ChambóidCireabaití" + - "Oileáin ChomóraSan Críostóir-NimheasAn Chóiré ThuaidhAn Chóiré Theas" + - "CuáitOileáin CaymanAn ChasacstáinLaosAn LiobáinSaint LuciaLichtinsté" + - "inSrí LancaAn LibéirLeosótaAn LiotuáinLucsamburgAn LaitviaAn LibiaMa" + - "racóMonacóAn MholdóivMontainéagróSaint-MartinMadagascarOileáin Marsh" + - "allAn MhacadóinMailíMaenmar (Burma)An MhongóilS.R.R. na Síne MacaoNa" + - " hOileáin Mháirianacha ThuaidhMartiniqueAn MháratáinMontsaratMáltaOi" + - "leán MhuirísOileáin MhaildíveAn MhaláivMeicsiceoAn MhalaeisiaMósaimb" + - "ícAn NamaibAn Nua-ChaladóinAn NígirOileán NorfolkAn NigéirNicearagu" + - "aAn ÃsiltírAn IoruaNeipealNárúNiueAn Nua-ShéalainnÓmanPanamaPeiriúPo" + - "lainéis na FrainceNua-Ghuine PhapuaNa hOileáin FhilipíneachaAn Phaca" + - "stáinAn PholainnSaint-Pierre-et-MiquelonOileáin PitcairnPortó RíceNa" + - " Críocha PalaistíneachaAn PhortaingéilPalauParaguaCatarAn Aigéine Im" + - "eallachRéunionAn RómáinAn tSeirbiaAn RúisRuandaAn Araib ShádachOileá" + - "in SholomónNa SéiséilAn tSúdáinAn tSualainnSingeapórSan HéilinAn tSl" + - "óivéinSvalbard agus Jan MayenAn tSlóvaicSiarra LeonSan MairíneAn tS" + - "eineagáilAn tSomáilSuranamAn tSúdáin TheasSão Tomé agus PríncipeAn t" + - "SalvadóirSint MaartenAn tSiriaAn tSuasalainnTristan da CunhaOileáin " + - "na dTurcach agus CaicosSeadCríocha Francacha Dheisceart an DomhainTó" + - "gaAn TéalainnAn TáidsíceastáinTócaláTíomór ThoirAn TuircméanastáinAn" + - " TúinéisTongaAn TuircOileán na Tríonóide agus TobágaTuvaluAn Téaváin" + - "An TansáinAn ÚcráinUgandaOileáin Imeallacha S.A.M.Stáit Aontaithe Mh" + - "eiriceáUruguaAn ÚisbéiceastáinAn VatacáinSan Uinseann agus na Greaná" + - "idíníVeiniséalaOileáin Bhriotanacha na MaighdeanOileáin Mheiriceánac" + - "ha na MaighdeanVítneamVanuatúVailís agus FutúnaSamóAn ChosaivÉiminMa" + - "yotteAn Afraic TheasAn tSaimbiaAn tSiombáibRéigiún AnaithnidAn Domha" + - "nAn AfraicMeiriceá ThuaidhMeiriceá TheasAn AigéineIarthar na hAfraic" + - "eMeiriceá LáirOirthear na hAfraiceTuaisceart na hAfraiceAn Afraic Lá" + - "irDeisceart na hAfraiceCríocha MheiriceáTuaisceart MheiriceáAn Mhuir" + - " ChairibOirthear na hÃiseDeisceart na hÃiseOirdheisceart na hÃiseDei" + - "sceart na hEorpaAn AstraláiseAn MheilinéisAn Réigiún MicrinéiseachAn" + - " PholainéisAn ÃiseAn Ãise LáirIarthar na hÃiseAn EoraipOirthear na h" + - "EorpaTuaisceart na hEorpaIarthar na hEorpaMeiriceá Laidineach", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0017, 0x001e, 0x0042, 0x0051, 0x0066, 0x006e, 0x0078, - 0x0083, 0x009b, 0x00a2, 0x00af, 0x00bc, 0x00cf, 0x00d8, 0x00e3, - 0x00e9, 0x00f8, 0x0108, 0x012b, 0x0134, 0x0144, 0x014d, 0x015c, - 0x0168, 0x0170, 0x017b, 0x0181, 0x0192, 0x019c, 0x01a4, 0x01ae, - 0x01c6, 0x01d2, 0x01de, 0x01ea, 0x01f8, 0x0205, 0x0213, 0x021e, - 0x0225, 0x023d, 0x025d, 0x0277, 0x0280, 0x028b, 0x029c, 0x02a9, - 0x02b1, 0x02b9, 0x02c1, 0x02cc, 0x02de, 0x02ea, 0x02ef, 0x02f9, - 0x0301, 0x0312, 0x031b, 0x032c, 0x0339, 0x0345, 0x034d, 0x0359, - // Entry 40 - 7F - 0x0362, 0x037c, 0x0387, 0x0399, 0x03a2, 0x03ad, 0x03b7, 0x03c7, - 0x03d2, 0x03dc, 0x03e6, 0x03f8, 0x0405, 0x040b, 0x041f, 0x042d, - 0x043c, 0x0446, 0x0451, 0x0465, 0x046e, 0x047a, 0x048b, 0x0493, - 0x0498, 0x04a3, 0x04b1, 0x04bc, 0x04c5, 0x04cf, 0x04e8, 0x04f2, - 0x0521, 0x052a, 0x052e, 0x053a, 0x0544, 0x055d, 0x0581, 0x058a, - 0x0594, 0x059c, 0x05a6, 0x05be, 0x05ca, 0x05cf, 0x05d6, 0x05e5, - 0x05ed, 0x0611, 0x061b, 0x0625, 0x0631, 0x063b, 0x0642, 0x064a, - 0x0655, 0x0661, 0x066c, 0x067c, 0x0688, 0x0693, 0x06a4, 0x06bb, - // Entry 80 - BF - 0x06ce, 0x06df, 0x06e5, 0x06f4, 0x0703, 0x0707, 0x0712, 0x071d, - 0x072a, 0x0734, 0x073e, 0x0746, 0x0752, 0x075c, 0x0766, 0x076e, - 0x0775, 0x077c, 0x0788, 0x0796, 0x07a2, 0x07ac, 0x07bd, 0x07ca, - 0x07d0, 0x07df, 0x07eb, 0x0800, 0x0822, 0x082c, 0x083a, 0x0843, - 0x0849, 0x0859, 0x086c, 0x0877, 0x0880, 0x088d, 0x0898, 0x08a1, - 0x08b2, 0x08bb, 0x08ca, 0x08d4, 0x08de, 0x08ea, 0x08f2, 0x08f9, - 0x08ff, 0x0903, 0x0914, 0x0919, 0x091f, 0x0926, 0x093b, 0x094c, - 0x0967, 0x0975, 0x0980, 0x0998, 0x09a9, 0x09b5, 0x09d0, 0x09e0, - // Entry C0 - FF - 0x09e5, 0x09ec, 0x09f1, 0x0a06, 0x0a0e, 0x0a19, 0x0a24, 0x0a2c, - 0x0a32, 0x0a43, 0x0a55, 0x0a61, 0x0a6d, 0x0a79, 0x0a83, 0x0a8e, - 0x0a9c, 0x0ab3, 0x0abf, 0x0aca, 0x0ad6, 0x0ae5, 0x0af0, 0x0af7, - 0x0b09, 0x0b22, 0x0b30, 0x0b3c, 0x0b45, 0x0b53, 0x0b63, 0x0b83, - 0x0b87, 0x0baf, 0x0bb4, 0x0bc0, 0x0bd4, 0x0bdc, 0x0bea, 0x0bfe, - 0x0c0a, 0x0c0f, 0x0c17, 0x0c3a, 0x0c40, 0x0c4c, 0x0c57, 0x0c62, - 0x0c68, 0x0c82, 0x0c9d, 0x0ca3, 0x0cb7, 0x0cc3, 0x0ce6, 0x0cf1, - 0x0d13, 0x0d38, 0x0d40, 0x0d48, 0x0d5c, 0x0d61, 0x0d6b, 0x0d71, - // Entry 100 - 13F - 0x0d78, 0x0d87, 0x0d92, 0x0d9f, 0x0db2, 0x0dbb, 0x0dc4, 0x0dd5, - 0x0de4, 0x0def, 0x0e02, 0x0e11, 0x0e25, 0x0e3b, 0x0e4a, 0x0e5f, - 0x0e72, 0x0e87, 0x0e97, 0x0ea9, 0x0ebc, 0x0ed3, 0x0ee6, 0x0ef4, - 0x0f02, 0x0f1d, 0x0f2b, 0x0f33, 0x0f41, 0x0f52, 0x0f5b, 0x0f6d, - 0x0f81, 0x0f92, 0x0fa6, - }, - }, - { // gd - "Eilean na DeasgabhalachAndorraNa h-Iomaratan Arabach AonaichteAfghanastà" + - "nAintìoga is BarbudaAnguillaAlbàiniaAirmeiniaEileanan Aintilia nan T" + - "ìrean ÃŒsleAngòlaAn AntartaigAn ArgantainSamotha na h-AimeireagaAn O" + - "stairAstràiliaArùbaNa h-Eileanan Ã…landAsarbaideànBosna agus Hearsago" + - "bhanaBarbadosBangladaisA’ BheilgBuirciona FasoA’ BhulgairBachrainBur" + - "undaidhBeininSaint BarthélemyBearmùdaBrùnaighBoilibhiaNa Tìrean ÃŒsle" + - " CaraibeachBraisilNa h-Eileanan BhathamaButànEilean BouvetBotsuanaA’" + - " BhealaruisA’ BheilìsCanadaNa h-Eileanan Cocos (Keeling)Congo - Kins" + - "hasaPoblachd Meadhan AfragaA’ Chongo - BrazzavilleAn EilbheisCôte d’" + - "IvoireEileanan CookAn t-SileCamarunAn t-SìnColoimbiaEilean Clipperto" + - "nCosta RìceaCùbaAn Ceap UaineCuraçaoEilean na NollaigCìoprasPoblachd" + - " na SeiceA’ GhearmailtDiego GarciaDiobùtaidhAn DanmhairgDoiminiceaA’" + - " Phoblachd DhoiminiceachAildiriaCeuta agus MelillaEacuadorAn Eastoin" + - "An ÈiphitSathara an IarEartraAn SpàinnAn ItiopAn t-Aonadh EòrpachAn " + - "FhionnlannFìdiNa h-Eileanan FàclannachNa Meanbh-EileananNa h-Eileana" + - "n FàroAn FhraingGabonAn Rìoghachd AonaichteGreanàdaA’ ChairtbheilGui" + - "dheàna na FraingeGeàrnsaidhGànaDiobraltarA’ GhraonlannA’ GhaimbiaGin" + - "iGuadalupGini Mheadhan-ChriosachA’ GhreugSeòrsea a Deas is na h-Eile" + - "anan Sandwich a DeasGuatamalaGuamGini-BiosoGuidheànaHong Kong SAR na" + - " SìneEilean Heard is MhicDhòmhnaillHondùrasA’ ChròthaisHaidhtiAn Ung" + - "airNa h-Eileanan CanàrachNa h-Innd InnseÈirinnIosraelEilean Mhanainn" + - "Na h-InnseachanRanntair Breatannach Cuan nan InnseachanIoràcIorànInn" + - "is TìleAn EadailtDeàrsaidhDiameugaIòrdanAn t-SeapanCeiniaCìorgastanC" + - "ambuideaCiribeasComorosNaomh Crìstean is NibheisCoirèa a TuathCoirèa" + - " a DeasCuibhèitNa h-Eileanan CaimeanCasachstànLàthosLeabanonNaomh Lù" + - "iseaLichtensteinSri LancaLibèirLeasotoAn LiotuainLugsamburgAn Laitbh" + - "eLibiaMorocoMonacoA’ MholdobhaAm Monadh NeagrachNaomh MàrtainnMadaga" + - "sgarEileanan MharshallA’ MhasadonMàiliMiànmar (Burma)Dùthaich nam Mo" + - "ngolMacàthu SAR na SìneNa h-Eileanan Mairianach a TuathMairtinicMora" + - "tàineaMontsaratMaltaNa h-Eileanan MhoiriseasNa h-Eileanan Mhaladaibh" + - "MalabhaidhMeagsagoMalaidhseaMòsaimbicAn NamaibCailleann NuadhNìgeirE" + - "ilean NorfolkNigèiriaNiocaraguaNa Tìrean ÃŒsleAn NirribhidhNeapàlNabh" + - "ruNiueSealainn NuadhOmànPanamaPearùPoilinèis na FraingeGini Nuadh Ph" + - "aputhachNa h-Eileanan FilipineachPagastànA’ PhòlainnSaint Pierre agu" + - "s MiquelonEilean Peit a’ ChàirnPorto RìceoNa Ranntairean Palastainea" + - "chA’ PhortagailPalabhParaguaidhCatarRoinn Iomallach a’ Chuain SèimhR" + - "éunionRomàiniaAn t-SèirbAn RuisRubhandaAràibia nan SabhdEileanan Sh" + - "olaimhNa h-Eileanan SheiseallSudànAn t-SuainSingeapòrEilean Naomh Ei" + - "lidhAn t-SlòbhainSvalbard agus Jan MayenAn t-SlòbhacSiarra LeòmhannS" + - "an MarinoSeanagalSomàiliaSuranamSudàn a DeasSão Tomé agus PríncipeAn" + - " SalbhadorSint MaartenSiridheaDùthaich nan SuasaidhTristan da CunhaN" + - "a h-Eileanan Turcach is CaiceoAn t-SeàdRanntairean a Deas na Frainge" + - "TogoDùthaich nan TàidhTaidigeastànTokelauTimor-LesteTurcmanastànTuin" + - "iseaTongaAn TuircTrianaid agus TobagoTubhaluTaidh-BhànAn TansanAn Uc" + - "ràinUgandaMeanbh-Eileanan Iomallach nan Stàitean AonaichteNa Stàitea" + - "n AonaichteUruguaidhUsbagastànCathair na BhatacainNaomh Bhionsant ag" + - "us Eileanan GreanadachA’ BheinisealaEileanan Breatannach na Maighdin" + - "nEileanan Aimeireagach na MaighdinnBhiet-NamVanuatuUallas agus Futun" + - "aSamothaA’ ChosobhoAn EamanMayotteAfraga a DeasSàimbiaAn t-SìombabRo" + - "inn-dùthcha neo-aithnichteAn SaoghalAfragaAimeireaga a TuathAimeirea" + - "ga a DeasRoinn a’ Chuain SèimhAfraga an IarMeadhan AimeireagaAfraga " + - "an EarAfraga a TuathMeadhan AfragaCeann a Deas AfragaAn Dà Aimeireag" + - "aCeann a Tuath AimeireagaAm Muir CaraibeachÀisia an EarÀisia a DeasÀ" + - "isia an Ear-dheasAn Roinn-Eòrpa a DeasAstràilia is Sealainn NuadhNa " + - "h-Eileanan DubhaRoinn nam Meanbh-EileananPoilinèisÀisiaMeadhan Àisia" + - "Àisia an IarAn Roinn-EòrpaAn Roinn-Eòrpa an EarAn Roinn-Eòrpa a Tua" + - "thAn Roinn-Eòrpa an IarAimeireaga Laidinneach", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0017, 0x001e, 0x003e, 0x004a, 0x005e, 0x0066, 0x006f, - 0x0078, 0x009b, 0x00a2, 0x00ae, 0x00ba, 0x00d1, 0x00da, 0x00e4, - 0x00ea, 0x00fe, 0x010a, 0x0122, 0x012a, 0x0134, 0x013f, 0x014d, - 0x015a, 0x0162, 0x016c, 0x0172, 0x0183, 0x018c, 0x0195, 0x019e, - 0x01b9, 0x01c0, 0x01d6, 0x01dc, 0x01e9, 0x01f1, 0x0200, 0x020d, - 0x0213, 0x0230, 0x0240, 0x0257, 0x0270, 0x027b, 0x028b, 0x0298, - 0x02a1, 0x02a8, 0x02b1, 0x02ba, 0x02cb, 0x02d7, 0x02dc, 0x02e9, - 0x02f1, 0x0302, 0x030a, 0x031b, 0x032a, 0x0336, 0x0341, 0x034d, - // Entry 40 - 7F - 0x0357, 0x0373, 0x037b, 0x038d, 0x0395, 0x039f, 0x03a9, 0x03b7, - 0x03bd, 0x03c7, 0x03cf, 0x03e3, 0x03f0, 0x03f5, 0x040e, 0x0420, - 0x0433, 0x043d, 0x0442, 0x0459, 0x0462, 0x0472, 0x0487, 0x0492, - 0x0497, 0x04a1, 0x04b0, 0x04bd, 0x04c1, 0x04c9, 0x04e0, 0x04eb, - 0x051b, 0x0524, 0x0528, 0x0532, 0x053c, 0x0552, 0x0571, 0x057a, - 0x0589, 0x0590, 0x0599, 0x05b0, 0x05bf, 0x05c6, 0x05cd, 0x05dc, - 0x05eb, 0x0613, 0x0619, 0x061f, 0x062a, 0x0634, 0x063e, 0x0646, - 0x064d, 0x0658, 0x065e, 0x0669, 0x0672, 0x067a, 0x0681, 0x069b, - // Entry 80 - BF - 0x06aa, 0x06b8, 0x06c1, 0x06d6, 0x06e1, 0x06e8, 0x06f0, 0x06fd, - 0x0709, 0x0712, 0x0719, 0x0720, 0x072b, 0x0735, 0x073f, 0x0744, - 0x074a, 0x0750, 0x075e, 0x0770, 0x077f, 0x0789, 0x079b, 0x07a8, - 0x07ae, 0x07be, 0x07d2, 0x07e7, 0x0807, 0x0810, 0x081b, 0x0824, - 0x0829, 0x0841, 0x0859, 0x0863, 0x086b, 0x0875, 0x087f, 0x0888, - 0x0897, 0x089e, 0x08ac, 0x08b5, 0x08bf, 0x08cf, 0x08dc, 0x08e3, - 0x08e9, 0x08ed, 0x08fb, 0x0900, 0x0906, 0x090c, 0x0921, 0x0936, - 0x094f, 0x0958, 0x0966, 0x0980, 0x0998, 0x09a4, 0x09c0, 0x09cf, - // Entry C0 - FF - 0x09d5, 0x09df, 0x09e4, 0x0a06, 0x0a0e, 0x0a17, 0x0a22, 0x0a29, - 0x0a31, 0x0a43, 0x0a54, 0x0a6b, 0x0a71, 0x0a7b, 0x0a85, 0x0a98, - 0x0aa6, 0x0abd, 0x0aca, 0x0ada, 0x0ae4, 0x0aec, 0x0af5, 0x0afc, - 0x0b09, 0x0b22, 0x0b2e, 0x0b3a, 0x0b42, 0x0b58, 0x0b68, 0x0b87, - 0x0b91, 0x0bae, 0x0bb2, 0x0bc6, 0x0bd3, 0x0bda, 0x0be5, 0x0bf2, - 0x0bfa, 0x0bff, 0x0c07, 0x0c1b, 0x0c22, 0x0c2d, 0x0c36, 0x0c40, - 0x0c46, 0x0c77, 0x0c8d, 0x0c96, 0x0ca1, 0x0cb5, 0x0cdd, 0x0ced, - 0x0d0e, 0x0d30, 0x0d39, 0x0d40, 0x0d52, 0x0d59, 0x0d66, 0x0d6e, - // Entry 100 - 13F - 0x0d75, 0x0d82, 0x0d8a, 0x0d97, 0x0db4, 0x0dbe, 0x0dc4, 0x0dd6, - 0x0de7, 0x0dff, 0x0e0c, 0x0e1e, 0x0e2b, 0x0e39, 0x0e47, 0x0e5a, - 0x0e6b, 0x0e83, 0x0e95, 0x0ea2, 0x0eaf, 0x0ec2, 0x0ed8, 0x0ef4, - 0x0f07, 0x0f20, 0x0f2a, 0x0f30, 0x0f3e, 0x0f4b, 0x0f5a, 0x0f70, - 0x0f87, 0x0f9d, 0x0fb3, - }, - }, - { // gl - "Illa de AscensiónAndorraEmiratos Ãrabes UnidosAfganistánAntiga e Barbuda" + - "AnguilaAlbaniaArmeniaAntillas HolandesasAngolaAntártidaArxentinaSamo" + - "a AmericanaAustriaAustraliaArubaÃ…landAcerbaixánBosnia e HercegovinaB" + - "arbadosBangladeshBélxicaBurkina FasoBulgariaBahreinBurundiBeninSan B" + - "artoloméBermudasBruneiBoliviaCaribe neerlandésBrasilBahamasButánIlla" + - " BouvetBotsuanaBielorrusiaBeliceCanadáIllas CocosRepública Democráti" + - "ca do CongoRepública CentroafricanaCongoSuízaCosta de MarfilIllas Co" + - "okChileCamerúnChinaColombiaIlla ClippertonCosta RicaCubaCabo VerdeCu" + - "raçaoIlla ChristmasChipreRepública ChecaAlemañaDiego GarcíaDjibutiDi" + - "namarcaDominicaRepública DominicanaArxeliaCeuta e MelillaEcuadorEsto" + - "niaExiptoSáhara OccidentalEritreaEspañaEtiopíaUnión EuropeaFinlandia" + - "FidxiIllas MalvinasMicronesiaIllas FeroeFranciaGabónReino UnidoGrana" + - "daXeorxiaGüiana FrancesaGuernseyGanaXibraltarGrenlandiaGambiaGuineaG" + - "uadalupeGuinea EcuatorialGreciaXeorxia do Sur e Illas SandwichGuatem" + - "alaGuamGuinea-BisauGüianaHong Kong RAE de ChinaIlla Heard e Illas Mc" + - "DonaldHondurasCroaciaHaitíHungríaIllas CanariasIndonesiaIrlandaIsrae" + - "lIlla de ManIndiaTerritorio Británico do Océano ÃndicoIraqIránIsland" + - "iaItaliaIlla de JerseyXamaicaXordaniaXapónKenyaQuirguicistánCambodia" + - "KiribatiComoresSaint Kitts e NevisCorea do NorteCorea do SurKuwaitIl" + - "las CaimánCasaquistánLaosLíbanoSanta LucíaLiechtensteinSri LankaLibe" + - "riaLesotoLituaniaLuxemburgoLetoniaLibiaMarrocosMónacoMoldaviaMontene" + - "groSan MartiñoMadagascarIllas MarshallRepública de MacedoniaMalíMyan" + - "mar (Birmania)MongoliaMacau RAE de ChinaIllas Marianas do norteMarti" + - "nicaMauritaniaIlla MontserratMaltaMauricioMaldivasMalauiMéxicoMalais" + - "iaMozambiqueNamibiaNova CaledoniaNíxerIlla NorfolkNixeriaNicaraguaPa" + - "íses BaixosNoruegaNepalNauruNiueNova ZelandiaOmánPanamáPerúPolinesi" + - "a FrancesaPapúa Nova GuineaFilipinasPaquistánPoloniaSan Pedro e Migu" + - "elónIllas PitcairnPorto RicoTerritorios palestinosPortugalRep. das P" + - "alausParaguaiQatarOceanía DistanteReuniónRomaníaSerbiaRusiaRuandaAra" + - "bia SauditaIllas SalomónSeixelesSudánSueciaSingapurSanta HelenaEslov" + - "eniaSvalbard e Jan MayenEslovaquiaSerra LeoaSan MarinoSenegalSomalia" + - "SurinamSudán do surSan Tomé e PríncipeO SalvadorSint MaartenSiriaSua" + - "cilandiaTristán da CunhaIllas Turks e CaicosChadTerritorios Francese" + - "s do SulTogoTailandiaTaxiquistánToquelauTimor LesteTurcomenistánTuni" + - "siaTongaTurquíaTrindade e TobagoTuvaluTaiwánTanzaniaUcraínaUgandaIll" + - "as Menores Distantes dos EUA.Estados Unidos de AméricaUruguaiUzbekis" + - "tánCidade do VaticanoSan Vicente e GranadinasVenezuelaIllas Virxes B" + - "ritánicasIllas Virxes EstadounidensesVietnamVanuatuWallis e FutunaSa" + - "moaKosovoIemenMayotteSudáfricaZambiaCimbabueRexión descoñecidaMundoÃ" + - "fricaNorteaméricaSudaméricaOceaníaÃfrica OccidentalAmérica CentralÃf" + - "rica OrientalÃfrica SeptentrionalÃfrica CentralÃfrica MeridionalAmér" + - "icaAmérica do NorteCaribeAsia OrientalSul de AsiaSureste AsiáticoEur" + - "opa MeridionalAustralasiaMelanesiaRexión da MicronesiaPolinesiaAsiaA" + - "sia CentralAsia OccidentalEuropaEuropa do LesteEuropa SeptentrionalE" + - "uropa OccidentalAmérica Latina", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0012, 0x0019, 0x0030, 0x003b, 0x004b, 0x0052, 0x0059, - 0x0060, 0x0073, 0x0079, 0x0083, 0x008c, 0x009b, 0x00a2, 0x00ab, - 0x00b0, 0x00b6, 0x00c1, 0x00d5, 0x00dd, 0x00e7, 0x00ef, 0x00fb, - 0x0103, 0x010a, 0x0111, 0x0116, 0x0124, 0x012c, 0x0132, 0x0139, - 0x014b, 0x0151, 0x0158, 0x015e, 0x0169, 0x0171, 0x017c, 0x0182, - 0x0189, 0x0194, 0x01b4, 0x01cd, 0x01d2, 0x01d8, 0x01e7, 0x01f1, - 0x01f6, 0x01fe, 0x0203, 0x020b, 0x021a, 0x0224, 0x0228, 0x0232, - 0x023a, 0x0248, 0x024e, 0x025e, 0x0266, 0x0273, 0x027a, 0x0283, - // Entry 40 - 7F - 0x028b, 0x02a0, 0x02a7, 0x02b6, 0x02bd, 0x02c4, 0x02ca, 0x02dc, - 0x02e3, 0x02ea, 0x02f2, 0x0300, 0x0309, 0x030e, 0x031c, 0x0326, - 0x0331, 0x0338, 0x033e, 0x0349, 0x0350, 0x0357, 0x0367, 0x036f, - 0x0373, 0x037c, 0x0386, 0x038c, 0x0392, 0x039b, 0x03ac, 0x03b2, - 0x03d1, 0x03da, 0x03de, 0x03ea, 0x03f1, 0x0407, 0x0422, 0x042a, - 0x0431, 0x0437, 0x043f, 0x044d, 0x0456, 0x045d, 0x0463, 0x046e, - 0x0473, 0x049b, 0x049f, 0x04a4, 0x04ac, 0x04b2, 0x04c0, 0x04c7, - 0x04cf, 0x04d5, 0x04da, 0x04e8, 0x04f0, 0x04f8, 0x04ff, 0x0512, - // Entry 80 - BF - 0x0520, 0x052c, 0x0532, 0x053f, 0x054b, 0x054f, 0x0556, 0x0562, - 0x056f, 0x0578, 0x057f, 0x0585, 0x058d, 0x0597, 0x059e, 0x05a3, - 0x05ab, 0x05b2, 0x05ba, 0x05c4, 0x05d0, 0x05da, 0x05e8, 0x05ff, - 0x0604, 0x0616, 0x061e, 0x0630, 0x0647, 0x0650, 0x065a, 0x0669, - 0x066e, 0x0676, 0x067e, 0x0684, 0x068b, 0x0693, 0x069d, 0x06a4, - 0x06b2, 0x06b8, 0x06c4, 0x06cb, 0x06d4, 0x06e2, 0x06e9, 0x06ee, - 0x06f3, 0x06f7, 0x0704, 0x0709, 0x0710, 0x0715, 0x0727, 0x0739, - 0x0742, 0x074c, 0x0753, 0x0768, 0x0776, 0x0780, 0x0796, 0x079e, - // Entry C0 - FF - 0x07ad, 0x07b5, 0x07ba, 0x07cb, 0x07d3, 0x07db, 0x07e1, 0x07e6, - 0x07ec, 0x07fa, 0x0808, 0x0810, 0x0816, 0x081c, 0x0824, 0x0830, - 0x0839, 0x084d, 0x0857, 0x0861, 0x086b, 0x0872, 0x0879, 0x0880, - 0x088d, 0x08a2, 0x08ac, 0x08b8, 0x08bd, 0x08c8, 0x08d9, 0x08ed, - 0x08f1, 0x090d, 0x0911, 0x091a, 0x0926, 0x092e, 0x0939, 0x0947, - 0x094e, 0x0953, 0x095b, 0x096c, 0x0972, 0x0979, 0x0981, 0x0989, - 0x098f, 0x09af, 0x09c9, 0x09d0, 0x09db, 0x09ed, 0x0a05, 0x0a0e, - 0x0a26, 0x0a42, 0x0a49, 0x0a50, 0x0a5f, 0x0a64, 0x0a6a, 0x0a6f, - // Entry 100 - 13F - 0x0a76, 0x0a80, 0x0a86, 0x0a8e, 0x0aa2, 0x0aa7, 0x0aae, 0x0abb, - 0x0ac6, 0x0ace, 0x0ae0, 0x0af0, 0x0b00, 0x0b15, 0x0b24, 0x0b36, - 0x0b3e, 0x0b4f, 0x0b55, 0x0b62, 0x0b6d, 0x0b7e, 0x0b8f, 0x0b9a, - 0x0ba3, 0x0bb8, 0x0bc1, 0x0bc5, 0x0bd1, 0x0be0, 0x0be6, 0x0bf5, - 0x0c09, 0x0c1a, 0x0c29, - }, - }, - { // gsw - "AndorraVeräinigti Arabischi EmirateAfganischtanAntigua und BarbudaAnguil" + - "laAlbaanieArmeenieNiderländischi AntilleAngoolaAntarktisArgentiinieA" + - "merikaanisch-SamoaÖöschtriichAuschtraalieArubaAaland-InsleAserbäidsc" + - "hanBosnie und HerzegowinaBarbadosBangladeschBelgieBurkina FaasoBulga" + - "arieBachräinBurundiBeninSt. BarthelemiBermuudaBrunäi TarussalamBolii" + - "vieBrasilieBahaamasBhutanBouvet-InsleBotswanaWiissrusslandBelizeKana" + - "daKokos-InsleTemokraatischi Republik KongoZentraalafrikaanischi Repu" + - "blikKongoSchwiizElfebäiküschteCook-InsleTschileKamerunChiinaKolumbie" + - "Coschta RicaKubaKap VerdeWienachts-InsleZypereTschechischi RepublikT" + - "üütschlandTschibuutiTänemarkTominicaTominikaanischi RepublikAlgeeri" + - "eEcuadorEestlandÄgüpteWeschtsaharaÄritreeaSchpanieÄthiopieEuropääisc" + - "hi UnioonFinnlandFitschiFalkland-InsleMikroneesieFäröerFrankriichGab" + - "unVeräinigts ChönigriichGrenadaGeoorgieFranzösisch-GuäjaanaGäärnsiGa" + - "anaGibraltarGröönlandGambiaGineeaGuadälupÄquatoriaalgineeaGriechelan" + - "dSüüdgeorgie und d’süüdlichi Sändwitsch-InsleGuatemaalaGuamGineea-Bi" + - "ssauGuäjaanaSonderverwaltigszone HongkongHöörd- und MäcDonald-InsleH" + - "ondurasKroaazieHaitiUngarnIndoneesieIrlandIsraelInsle vo MänIndieBri" + - "tischs Territoorium im Indische OozeanIraakIraanIislandItaalieDschör" + - "siDschamäikaJordaanieJapanKeeniaKirgiisischtanKambodschaKiribaatiKom" + - "ooreSt. Kitts und NiuwisDemokraatischi Volksrepublik KoreeaRepublik " + - "KoreeaKuwäitKäimän-InsleKasachschtanLaaosLibanonSt. LutschiiaLiächte" + - "schtäiSchri LankaLibeeriaLesootoLittaueLuxemburgLettlandLüübieMarokk" + - "oMonacoRepublik MoldauMonteneegroSt. MartinMadagaschkarMarshallinsle" + - "MazedoonieMaaliMyanmar (Burma)MongoleiSonderverwaltigszone MacaoNörd" + - "lichi MariaaneMartiniggMauretaanieMoosörratMaltaMauriiziusMalediiweM" + - "alaawiMexikoMaläisiaMosambikNamiibiaNöikaledoonieNigerNorfolk-InsleN" + - "igeeriaNicaraaguaHollandNorweegeNeepalNauruNiueNöiseelandOmaanPanama" + - "PeruFranzösisch-PolineesiePapua-NeuguineaPhilippiinePakischtanPooleS" + - "t. Pierr und MiggeloPitggäärnPuerto RiggoPaläschtinänsischi GebietPo" + - "rtugalPalauParaguaiGgatarÃœssers OzeaanieReünioonRumäänieSärbieRussla" + - "ndRuandaSaudi-AraabieSalomooneSeischälleSudanSchweedeSingapuurSt. He" + - "lenaSloweenieSvalbard und Jaan MääieSlowakäiSierra LeooneSan Mariino" + - "SenegalSomaalieSurinamSao Tome und PrinssipeEl SalvadorSüürieSwasila" + - "ndTörks- und Gaiggos-InsleTschadFranzösischi Süüd- und Antarktisgebi" + - "etToogoThailandTadschikischtanTokelauOschttimorTurkmeenischtanTunees" + - "ieTongaTürggeiTrinidad und TobaagoTuvaluTaiwanTansaniiaUkraiineUgand" + - "aAmerikanisch-OzeaanieVeräinigti SchtaateUruguayUschbeekischtanVatik" + - "anstadtSt. Vincent und d’GrönadiineVenezueelaBritischi Jungfere-Insl" + - "eAmerikaanischi Jungfere-InsleWietnamWanuatuWallis und FutuunaSamooa" + - "JeemeMajottSüüdafrikaSambiaSimbabweUnbekannti oder ungültigi Regioon" + - "WältAfrikaNordameerikaSüüdameerikaOzeaanieWeschtafrikaMittelameerika" + - "OschtafrikaNordafrikaZentraalafrikaSüüdlichs AfrikaNord-, Mittel- un" + - "d SüüdameerikaNördlichs AmeerikaKaribikOschtaasieSüüdaasieSüüdoschta" + - "asieSüüdeuropaAuschtraalie und NöiseelandMelaneesieMikroneesischs In" + - "selgebietPolineesieAasieZentraalaasieWeschtaasieEuroopaOschteuroopaN" + - "ordeuroopaWeschteuroopaLatiinameerika", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x0024, 0x0030, 0x0043, 0x004b, 0x0053, - 0x005b, 0x0072, 0x0079, 0x0082, 0x008d, 0x00a0, 0x00ad, 0x00b9, - 0x00be, 0x00ca, 0x00d8, 0x00ee, 0x00f6, 0x0101, 0x0107, 0x0114, - 0x011d, 0x0126, 0x012d, 0x0132, 0x0140, 0x0148, 0x015a, 0x0162, - 0x0162, 0x016a, 0x0172, 0x0178, 0x0184, 0x018c, 0x0199, 0x019f, - 0x01a5, 0x01b0, 0x01cd, 0x01eb, 0x01f0, 0x01f7, 0x0207, 0x0211, - 0x0218, 0x021f, 0x0225, 0x022d, 0x022d, 0x0239, 0x023d, 0x0246, - 0x0246, 0x0255, 0x025b, 0x0270, 0x027d, 0x027d, 0x0287, 0x0290, - // Entry 40 - 7F - 0x0298, 0x02b0, 0x02b8, 0x02b8, 0x02bf, 0x02c7, 0x02cf, 0x02db, - 0x02e4, 0x02ec, 0x02f5, 0x030a, 0x0312, 0x0319, 0x0327, 0x0332, - 0x033a, 0x0344, 0x0349, 0x0361, 0x0368, 0x0370, 0x0386, 0x038f, - 0x0394, 0x039d, 0x03a8, 0x03ae, 0x03b4, 0x03bd, 0x03cf, 0x03da, - 0x040d, 0x0417, 0x041b, 0x0428, 0x0431, 0x044e, 0x046b, 0x0473, - 0x047b, 0x0480, 0x0486, 0x0486, 0x0490, 0x0496, 0x049c, 0x04a9, - 0x04ae, 0x04d7, 0x04dc, 0x04e1, 0x04e8, 0x04ef, 0x04f8, 0x0503, - 0x050c, 0x0511, 0x0517, 0x0525, 0x052f, 0x0538, 0x053f, 0x0553, - // Entry 80 - BF - 0x0576, 0x0585, 0x058c, 0x059a, 0x05a6, 0x05ab, 0x05b2, 0x05bf, - 0x05ce, 0x05d9, 0x05e1, 0x05e8, 0x05ef, 0x05f8, 0x0600, 0x0608, - 0x060f, 0x0615, 0x0624, 0x062f, 0x0639, 0x0645, 0x0652, 0x065c, - 0x0661, 0x0670, 0x0678, 0x0692, 0x06a5, 0x06ae, 0x06b9, 0x06c3, - 0x06c8, 0x06d2, 0x06db, 0x06e2, 0x06e8, 0x06f1, 0x06f9, 0x0701, - 0x070f, 0x0714, 0x0721, 0x0729, 0x0733, 0x073a, 0x0742, 0x0748, - 0x074d, 0x0751, 0x075c, 0x0761, 0x0767, 0x076b, 0x0782, 0x0791, - 0x079c, 0x07a6, 0x07ab, 0x07c0, 0x07cb, 0x07d7, 0x07f2, 0x07fa, - // Entry C0 - FF - 0x07ff, 0x0807, 0x080d, 0x081d, 0x0826, 0x0830, 0x0837, 0x083f, - 0x0845, 0x0852, 0x085b, 0x0866, 0x086b, 0x0873, 0x087c, 0x0886, - 0x088f, 0x08a8, 0x08b1, 0x08be, 0x08c9, 0x08d0, 0x08d8, 0x08df, - 0x08df, 0x08f5, 0x0900, 0x0900, 0x0908, 0x0911, 0x0911, 0x092a, - 0x0930, 0x0959, 0x095e, 0x0966, 0x0975, 0x097c, 0x0986, 0x0995, - 0x099d, 0x09a2, 0x09aa, 0x09be, 0x09c4, 0x09ca, 0x09d3, 0x09db, - 0x09e1, 0x09f6, 0x0a0a, 0x0a11, 0x0a20, 0x0a2c, 0x0a4b, 0x0a55, - 0x0a6d, 0x0a8a, 0x0a91, 0x0a98, 0x0aaa, 0x0ab0, 0x0ab0, 0x0ab5, - // Entry 100 - 13F - 0x0abb, 0x0ac7, 0x0acd, 0x0ad5, 0x0af7, 0x0afc, 0x0b02, 0x0b0e, - 0x0b1c, 0x0b24, 0x0b30, 0x0b3e, 0x0b49, 0x0b53, 0x0b61, 0x0b73, - 0x0b94, 0x0ba7, 0x0bae, 0x0bb8, 0x0bc3, 0x0bd3, 0x0bdf, 0x0bfb, - 0x0c05, 0x0c1f, 0x0c29, 0x0c2e, 0x0c3b, 0x0c46, 0x0c4d, 0x0c59, - 0x0c64, 0x0c71, 0x0c7f, - }, - }, - { // gu - guRegionStr, - guRegionIdx, - }, - { // guz - "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + - "iaAntili za UholanziAngolaAjentinaSamoa ya MarekaniAustriaAustraliaA" + - "rubaAzabajaniBosnia na HezegovinaBabadosiBangladeshiUbelgijiBukinafa" + - "soBulgariaBahareniBurundiBeniniBermudaBruneiBoliviaBraziliBahamaButa" + - "niBotswanaBelarusiBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhur" + - "i ya Afrika ya KatiKongoUswisiKodivaaVisiwa vya CookChileKameruniChi" + - "naKolombiaKostarikaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibut" + - "iDenmakiDominikaJamhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaH" + - "ispaniaUhabeshiUfiniFijiVisiwa vya FalklandMikronesiaUfaransaGaboniU" + - "ingerezaGrenadaJojiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaG" + - "ineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKor" + - "asiaHaitiHungariaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza kati" + - "ka Bahari HindiIrakiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKir" + - "igizistaniKambodiaKiribatiKomoroSantakitzi na NevisKorea KaskaziniKo" + - "rea KusiniKuwaitiVisiwa vya KaymanKazakistaniLaosiLebanoniSantalusia" + - "LishenteniSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoM" + - "onakoMoldovaBukiniVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa" + - " vya Mariana vya KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiMo" + - "divuMalawiMeksikoMalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha " + - "NorfokNijeriaNikaragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPan" + - "amaPeruPolinesia ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri " + - "na MikeloniPitkairniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza w" + - "a PalestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiV" + - "isiwa vya SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaSl" + - "ovakiaSiera LeoniSamarinoSenegaliSomaliaSurinamuSao Tome na Principe" + - "ElsavadoSiriaUswaziVisiwa vya Turki na KaikoChadiTogoTailandiTajikis" + - "taniTokelauTimori ya MasharikiTurukimenistaniTunisiaTongaUturukiTrin" + - "idad na TobagoTuvaluTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibe" + - "kistaniVatikaniSantavisenti na GrenadiniVenezuelaVisiwa vya Virgin v" + - "ya UingerezaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWalis na F" + - "utunaSamoaYemeniMayotteAfrika KusiniZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, - 0x004a, 0x005c, 0x0062, 0x0062, 0x006a, 0x007b, 0x0082, 0x008b, - 0x0090, 0x0090, 0x0099, 0x00ad, 0x00b5, 0x00c0, 0x00c8, 0x00d2, - 0x00da, 0x00e2, 0x00e9, 0x00ef, 0x00ef, 0x00f6, 0x00fc, 0x0103, - 0x0103, 0x010a, 0x0110, 0x0116, 0x0116, 0x011e, 0x0126, 0x012c, - 0x0132, 0x0132, 0x0152, 0x016b, 0x0170, 0x0176, 0x017d, 0x018c, - 0x0191, 0x0199, 0x019e, 0x01a6, 0x01a6, 0x01af, 0x01b3, 0x01bb, - 0x01bb, 0x01bb, 0x01c2, 0x01d2, 0x01db, 0x01db, 0x01e1, 0x01e8, - // Entry 40 - 7F - 0x01f0, 0x0203, 0x020a, 0x020a, 0x0210, 0x0217, 0x021c, 0x021c, - 0x0223, 0x022b, 0x0233, 0x0233, 0x0238, 0x023c, 0x024f, 0x0259, - 0x0259, 0x0261, 0x0267, 0x0270, 0x0277, 0x027c, 0x028f, 0x028f, - 0x0294, 0x029c, 0x02a5, 0x02ab, 0x02af, 0x02b8, 0x02c1, 0x02c8, - 0x02c8, 0x02d1, 0x02d5, 0x02de, 0x02e4, 0x02e4, 0x02e4, 0x02ed, - 0x02f4, 0x02f9, 0x0301, 0x0301, 0x030a, 0x0312, 0x0319, 0x0319, - 0x031e, 0x0343, 0x0348, 0x034e, 0x0356, 0x035c, 0x035c, 0x0363, - 0x036a, 0x0370, 0x0375, 0x0382, 0x038a, 0x0392, 0x0398, 0x03ab, - // Entry 80 - BF - 0x03ba, 0x03c6, 0x03cd, 0x03de, 0x03e9, 0x03ee, 0x03f6, 0x0400, - 0x040a, 0x0413, 0x041a, 0x0420, 0x0428, 0x0431, 0x0438, 0x043d, - 0x0443, 0x0449, 0x0450, 0x0450, 0x0450, 0x0456, 0x0468, 0x0471, - 0x0475, 0x047a, 0x0482, 0x0482, 0x04a2, 0x04ab, 0x04b4, 0x04bf, - 0x04c4, 0x04ca, 0x04d0, 0x04d6, 0x04dd, 0x04e4, 0x04ec, 0x04f3, - 0x04ff, 0x0505, 0x0516, 0x051d, 0x0526, 0x052e, 0x0533, 0x0539, - 0x053e, 0x0542, 0x054c, 0x0551, 0x0557, 0x055b, 0x0570, 0x0575, - 0x057d, 0x0586, 0x058d, 0x05a3, 0x05ac, 0x05b5, 0x05e7, 0x05ec, - // Entry C0 - FF - 0x05f1, 0x05f9, 0x05ff, 0x05ff, 0x0608, 0x060f, 0x060f, 0x0614, - 0x061a, 0x061f, 0x0631, 0x063b, 0x0641, 0x0647, 0x064f, 0x065a, - 0x0662, 0x0662, 0x066a, 0x0675, 0x067d, 0x0685, 0x068c, 0x0694, - 0x0694, 0x06a8, 0x06b0, 0x06b0, 0x06b5, 0x06bb, 0x06bb, 0x06d4, - 0x06d9, 0x06d9, 0x06dd, 0x06e5, 0x06f0, 0x06f7, 0x070a, 0x0719, - 0x0720, 0x0725, 0x072c, 0x073e, 0x0744, 0x074b, 0x0753, 0x075a, - 0x0760, 0x0760, 0x0768, 0x076f, 0x077b, 0x0783, 0x079c, 0x07a5, - 0x07c4, 0x07e2, 0x07eb, 0x07f2, 0x0801, 0x0806, 0x0806, 0x080c, - // Entry 100 - 13F - 0x0813, 0x0820, 0x0826, 0x082e, - }, - }, - { // gv - "Rywvaneth UnysEllan Vannin", - []uint16{ // 112 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x001a, - }, - }, - { // ha - "AndoraHaÉ—aÉ—É—iyar Daular LarabawaAfaganistanAntigwa da BarbubaAngilaAlban" + - "iyaArmeniyaAntiya Na HolanAngolaArjantiniyaSamowa Ta AmurkaOstiriyaO" + - "stareliyaArubaAzarbaijanBosniya HarzagobinaBarbadasBangiladasBelgiyo" + - "mBurkina FasoBulgariyaBaharanBurundiBininBarmudaBuruneBolibiyaBirazi" + - "lBahamasButanBaswanaBelarusBelizKanadaJamhuriyar DimokuraÉ—iyyar Kong" + - "oJamhuriyar Afirka Ta TsakiyaKongoSuwizalanAibari KwasTsibiran KukuC" + - "ayileKamaruCaina, SinKolambiyaKwasta RikaKyubaTsibiran Kap BardeSifu" + - "rusJamhuriyar CakJamusJibutiDanmarkDominikaJamhuriyar DominikaAljeri" + - "yaEkwadorEstoniyaMasar, MisiraEritireyaSipenHabashaFinlanFijiTsibira" + - "n FalkilanMikuronesiyaFaransaGabonBirtaniyaGirnadaJiwarjiyaGini Ta F" + - "aransaGanaJibaraltarGrinlanGambiyaGiniGwadalufGini Ta IkwaitaGirkaGw" + - "atamalaGwamGini BisauGuyanaHondurasKurowaishiyaHaitiHungariIndunusiy" + - "aAyalanIziraʼilaIndiyaYankin Birtaniya Na Tekun IndiyaIraÆ™iIranAisal" + - "anItaliyaJamaikaJordanJapanKenyaKirgizistanKambodiyaKiribatiKwamoras" + - "San Kiti Da NebisKoreya Ta ArewaKoreya Ta KuduKwiyatTsibiran KaimanK" + - "azakistanLawasLabananSan LusiyaLicansitanSiri LankaLaberiyaLesotoLit" + - "uweniyaLukusamburlatibiyaLibiyaMarokoMonakoMaldobaMadagaskarTsibiran" + - " MarshalMasedoniyaMaliBurma, MiyamarMangoliyaTsibiran Mariyana Na Ar" + - "ewaMartinikMoritaniyaManseratiMaltaMoritusMaldibiMalawiMakasikoMalai" + - "siyaMozambikNamibiyaKaledoniya SabuwaNijarTsibirin NarfalkNajeriyaNi" + - "karaguwaHolanNorweNefalNauruNiyuNuzilanOmanPanamaPeruFolinesiya Ta F" + - "aransaPapuwa NuginiFilipinPakistanPolanSan Piyar Da MikelanPitakarin" + - "Porto RikoPalasÉ—inuPortugalPalauParagaiKwatarRawuniyanRomaniyaRashaR" + - "uwandaƘasar MakkaTsibiran SalamanSaishalSudanSuwedanSingapurSan Hele" + - "naSulobeniyaSulobakiyaSalewoSan MarinoSinigalSomaliyaSurinameSawo To" + - "me Da ParansipEl SalbadorSham, SiriyaSuwazilanTurkis Da Tsibiran Kai" + - "kwasCadiTogoTailanTajikistanTakelauTimor Ta GabasTurkumenistanTunisi" + - "yaTangaTurkiyyaTirinidad Da TobagoTubaluTaiwanTanzaniyaYukaranYugand" + - "aAmurkaYurugaiUzubekistanBatikanSan Binsan Da GirnadinBenezuwelaTsib" + - "irin Birjin Na BirtaniyaTsibiran Birjin Ta AmurkaBiyetinamBanuwatuWa" + - "lis Da FutunaSamowaYamalMayotiAfirka Ta KuduZambiyaZimbabuwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0023, 0x002e, 0x0040, 0x0046, 0x004e, - 0x0056, 0x0065, 0x006b, 0x006b, 0x0076, 0x0086, 0x008e, 0x0098, - 0x009d, 0x009d, 0x00a7, 0x00ba, 0x00c2, 0x00cc, 0x00d4, 0x00e0, - 0x00e9, 0x00f0, 0x00f7, 0x00fc, 0x00fc, 0x0103, 0x0109, 0x0111, - 0x0111, 0x0118, 0x011f, 0x0124, 0x0124, 0x012b, 0x0132, 0x0137, - 0x013d, 0x013d, 0x015d, 0x0179, 0x017e, 0x0187, 0x0192, 0x019f, - 0x01a5, 0x01ab, 0x01b5, 0x01be, 0x01be, 0x01c9, 0x01ce, 0x01e0, - 0x01e0, 0x01e0, 0x01e7, 0x01f5, 0x01fa, 0x01fa, 0x0200, 0x0207, - // Entry 40 - 7F - 0x020f, 0x0222, 0x022a, 0x022a, 0x0231, 0x0239, 0x0246, 0x0246, - 0x024f, 0x0254, 0x025b, 0x025b, 0x0261, 0x0265, 0x0276, 0x0282, - 0x0282, 0x0289, 0x028e, 0x0297, 0x029e, 0x02a7, 0x02b6, 0x02b6, - 0x02ba, 0x02c4, 0x02cb, 0x02d2, 0x02d6, 0x02de, 0x02ed, 0x02f2, - 0x02f2, 0x02fb, 0x02ff, 0x0309, 0x030f, 0x030f, 0x030f, 0x0317, - 0x0323, 0x0328, 0x032f, 0x032f, 0x0339, 0x033f, 0x0349, 0x0349, - 0x034f, 0x036f, 0x0375, 0x0379, 0x0380, 0x0387, 0x0387, 0x038e, - 0x0394, 0x0399, 0x039e, 0x03a9, 0x03b2, 0x03ba, 0x03c2, 0x03d3, - // Entry 80 - BF - 0x03e2, 0x03f0, 0x03f6, 0x0405, 0x040f, 0x0414, 0x041b, 0x0425, - 0x042f, 0x0439, 0x0441, 0x0447, 0x0451, 0x045b, 0x0463, 0x0469, - 0x046f, 0x0475, 0x047c, 0x047c, 0x047c, 0x0486, 0x0496, 0x04a0, - 0x04a4, 0x04b2, 0x04bb, 0x04bb, 0x04d5, 0x04dd, 0x04e7, 0x04f0, - 0x04f5, 0x04fc, 0x0503, 0x0509, 0x0511, 0x051a, 0x0522, 0x052a, - 0x053b, 0x0540, 0x0550, 0x0558, 0x0562, 0x0567, 0x056c, 0x0571, - 0x0576, 0x057a, 0x0581, 0x0585, 0x058b, 0x058f, 0x05a4, 0x05b1, - 0x05b8, 0x05c0, 0x05c5, 0x05d9, 0x05e2, 0x05ec, 0x05f6, 0x05fe, - // Entry C0 - FF - 0x0603, 0x060a, 0x0610, 0x0610, 0x0619, 0x0621, 0x0621, 0x0626, - 0x062d, 0x0639, 0x0649, 0x0650, 0x0655, 0x065c, 0x0664, 0x066e, - 0x0678, 0x0678, 0x0682, 0x0688, 0x0692, 0x0699, 0x06a1, 0x06a9, - 0x06a9, 0x06be, 0x06c9, 0x06c9, 0x06d5, 0x06de, 0x06de, 0x06f8, - 0x06fc, 0x06fc, 0x0700, 0x0706, 0x0710, 0x0717, 0x0725, 0x0732, - 0x073a, 0x073f, 0x0747, 0x075a, 0x0760, 0x0766, 0x076f, 0x0776, - 0x077d, 0x077d, 0x0783, 0x078a, 0x0795, 0x079c, 0x07b2, 0x07bc, - 0x07d8, 0x07f1, 0x07fa, 0x0802, 0x0811, 0x0817, 0x0817, 0x081c, - // Entry 100 - 13F - 0x0822, 0x0830, 0x0837, 0x0840, - }, - }, - { // haw - "NÅ«hÅlaniKanakÄKinaKelemÄniaKenemakaKepaniaPalaniAupuni MÅʻī Hui PÅ« Ê»IaHe" + - "leneÊ»IlelaniÊ»IseraÊ»elaʻĪniaʻĪkÄliaIÄpanaMekikoHÅlaniAotearoaʻĀina Pi" + - "lipinoLÅ«kiaÊ»Amelika Hui PÅ« Ê»Ia", - []uint16{ // 243 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x001f, 0x001f, 0x0027, - // Entry 40 - 7F - 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, - 0x0027, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, - 0x002e, 0x0034, 0x0034, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, - 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x0055, - 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, - 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x005e, 0x006a, 0x006a, - 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x007b, 0x007b, 0x007b, - 0x007b, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, - // Entry 80 - BF - 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, - 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, - 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, - 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, - 0x0082, 0x0082, 0x0082, 0x0082, 0x0088, 0x0088, 0x0088, 0x0088, - 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, - 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, - // Entry C0 - FF - 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, - 0x00ad, 0x00ad, 0x00c3, - }, - }, - { // he - heRegionStr, - heRegionIdx, - }, - { // hi - hiRegionStr, - hiRegionIdx, - }, - { // hr - hrRegionStr, - hrRegionIdx, - }, - { // hsb - "AscensionAndorraZjednoćene arabske emiratyAfghanistanAntigua a BarbudaAn" + - "guillaAlbanskaArmenskaAngolaAntarktikaArgentinskaAmeriska SamoaAwstr" + - "iskaAwstralskaArubaÃ…landAzerbajdźanBosniska a HercegowinaBarbadosBan" + - "gladeÅ¡BelgiskaBurkina FasoBoÅ‚harskaBahrainBurundiBeninSt. Barthélemy" + - "BermudyBruneiBoliwiskaKaribiska NižozemskaBrazilskaBahamyBhutanBouve" + - "towa kupaBotswanaBěłoruskaBelizeKanadaKokosowe kupyKongo-KinshasaCen" + - "tralnoafriska republikaKongo-BrazzavilleÅ wicarskaCôte d’IvoireCookow" + - "e kupyChilskaKamerunChinaKolumbiskaClippertonowa kupaKosta RikaKubaK" + - "ap VerdeCuraçaoHodowna kupaCypernČěska republikaNÄ›mskaDiego GarciaDź" + - "ibutiDanskaDominikaDominikanska republikaAlgeriskaCeuta a MelillaEkw" + - "adorEstiskaEgyptowskaZapadna SaharaEritrejaÅ paniskaEtiopiskaEuropska" + - " unijaFinskaFidźiFalklandske kupyMikroneziskaFäröske kupyFrancoskaGa" + - "bunZjednoćene kralestwoGrenadaGeorgiskaFrancoska GuyanaGuernseyGhana" + - "GibraltarGrönlandskaGambijaGinejaGuadeloupeEkwatorialna GinejaGrjeks" + - "kaJužna Georgiska a Južne Sandwichowe kupyGuatemalaGuamGineja-Bissau" + - "GuyanaWosebita zarjadniska cona HongkongHeardowa kupa a McDonaldowe " + - "kupyHondurasChorwatskaHaitiMadźarskaKanariske kupyIndoneskaIrskaIsra" + - "elManIndiskaBritiski teritorij w Indiskim oceanjeIrakIranIslandskaIt" + - "alskaJerseyJamaikaJordaniskaJapanskaKenijaKirgizistanKambodźaKiribat" + - "iKomorySt. Kitts a NevisSewjerna KorejaJužna KorejaKuwaitKajmanske k" + - "upyKazachstanLaosLibanonSt. LuciaLiechtensteinSri LankaLiberijaLesot" + - "hoLitawskaLuxemburgskaLetiskaLibyskaMarokkoMonacoMoldawskaMontenegro" + - "St. MartinMadagaskarMarshallowe kupyMakedonskaMaliMyanmarMongolskaWo" + - "sebita zarjadniska cona MacaoSewjerne MarianyMartiniqueMawretanskaMo" + - "ntserratMaltaMauritiusMalediwyMalawiMexikoMalajzijaMosambikNamibijaN" + - "owa KaledoniskaNigerNorfolkowa kupaNigerijaNikaraguaNižozemskaNorweg" + - "skaNepalNauruNiueNowoseelandskaOmanPanamaPeruFrancoska PolyneziskaPa" + - "puwa-Nowa GinejaFilipinyPakistanPólskaSt. Pierre a MiquelonPitcairno" + - "we kupyPuerto RicoPalestinski awtonomny teritorijPortugalskaPalauPar" + - "aguayKatarWonkowna OceaniskaRéunionRumunskaSerbiskaRuskaRuandaSawdi-" + - "ArabskaSalomonySeychelleSudanÅ wedskaSingapurSt. HelenaSÅ‚owjenskaSval" + - "bard a Jan MayenSÅ‚owakskaSierra LeoneSan MarinoSenegalSomalijaSurina" + - "mJužny SudanSão Tomé a PríncipeEl SalvadorSint MaartenSyriskaSwazisk" + - "aTristan da Cunhakupy Turks a CaicosÄŒadFrancoski južny a antarktiski" + - " teritorijTogoThailandskaTadźikistanTokelauTimor-LesteTurkmeniskaTun" + - "eziskaTongaTurkowskaTrinidad a TobagoTuvaluTaiwanTansanijaUkrainaUga" + - "ndaAmeriska OceaniskaZjednoćene staty AmerikiUruguayUzbekistanVatika" + - "nske mÄ›stoSt. Vincent a GrenadinyVenezuelaBritiske knježniske kupyAm" + - "eriske knježniske kupyVietnamVanuatuWallis a FutunaSamoaKosowoJemenM" + - "ayotteJužna Afrika (Republika)SambijaSimbabwenjeznaty regionswÄ›tAfri" + - "kaSewjerna AmerikaJužna AmerikaOceaniskazapadna AfrikaSrjedźna Ameri" + - "kawuchodna Afrikasewjerna Afrikasrjedźna Afrikajužna AfrikaAmerikase" + - "wjerny ameriski kontinentKaribikawuchodna Azijajužna Azijajuhowuchod" + - "na Azijajužna EuropaAwstralazijaMelaneziskaMikroneziska (kupowy regi" + - "on)PolyneziskaAzijacentralna Azijazapadna AzijaEuropawuchodna Europa" + - "sewjerna Europazapadna EuropaÅaćonska Amerika", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0009, 0x0010, 0x002b, 0x0036, 0x0047, 0x004f, 0x0057, - 0x005f, 0x005f, 0x0065, 0x006f, 0x007a, 0x0088, 0x0091, 0x009b, - 0x00a0, 0x00a6, 0x00b2, 0x00c8, 0x00d0, 0x00da, 0x00e2, 0x00ee, - 0x00f8, 0x00ff, 0x0106, 0x010b, 0x011a, 0x0121, 0x0127, 0x0130, - 0x0145, 0x014e, 0x0154, 0x015a, 0x0168, 0x0170, 0x017b, 0x0181, - 0x0187, 0x0194, 0x01a2, 0x01bc, 0x01cd, 0x01d7, 0x01e7, 0x01f3, - 0x01fa, 0x0201, 0x0206, 0x0210, 0x0222, 0x022c, 0x0230, 0x0239, - 0x0241, 0x024d, 0x0253, 0x0264, 0x026b, 0x0277, 0x027f, 0x0285, - // Entry 40 - 7F - 0x028d, 0x02a3, 0x02ac, 0x02bb, 0x02c2, 0x02c9, 0x02d3, 0x02e1, - 0x02e9, 0x02f2, 0x02fb, 0x0309, 0x030f, 0x0315, 0x0325, 0x0331, - 0x033f, 0x0348, 0x034d, 0x0362, 0x0369, 0x0372, 0x0382, 0x038a, - 0x038f, 0x0398, 0x03a4, 0x03ab, 0x03b1, 0x03bb, 0x03ce, 0x03d6, - 0x0400, 0x0409, 0x040d, 0x041a, 0x0420, 0x0442, 0x0462, 0x046a, - 0x0474, 0x0479, 0x0483, 0x0491, 0x049a, 0x049f, 0x04a5, 0x04a8, - 0x04af, 0x04d4, 0x04d8, 0x04dc, 0x04e5, 0x04ec, 0x04f2, 0x04f9, - 0x0503, 0x050b, 0x0511, 0x051c, 0x0525, 0x052d, 0x0533, 0x0544, - // Entry 80 - BF - 0x0553, 0x0560, 0x0566, 0x0574, 0x057e, 0x0582, 0x0589, 0x0592, - 0x059f, 0x05a8, 0x05b0, 0x05b7, 0x05bf, 0x05cb, 0x05d2, 0x05d9, - 0x05e0, 0x05e6, 0x05ef, 0x05f9, 0x0603, 0x060d, 0x061d, 0x0627, - 0x062b, 0x0632, 0x063b, 0x065a, 0x066a, 0x0674, 0x067f, 0x0689, - 0x068e, 0x0697, 0x069f, 0x06a5, 0x06ab, 0x06b4, 0x06bc, 0x06c4, - 0x06d4, 0x06d9, 0x06e8, 0x06f0, 0x06f9, 0x0704, 0x070d, 0x0712, - 0x0717, 0x071b, 0x0729, 0x072d, 0x0733, 0x0737, 0x074c, 0x075e, - 0x0766, 0x076e, 0x0775, 0x078a, 0x079a, 0x07a5, 0x07c4, 0x07cf, - // Entry C0 - FF - 0x07d4, 0x07dc, 0x07e1, 0x07f3, 0x07fb, 0x0803, 0x080b, 0x0810, - 0x0816, 0x0823, 0x082b, 0x0834, 0x0839, 0x0841, 0x0849, 0x0853, - 0x085e, 0x0872, 0x087c, 0x0888, 0x0892, 0x0899, 0x08a1, 0x08a8, - 0x08b4, 0x08ca, 0x08d5, 0x08e1, 0x08e8, 0x08f0, 0x0900, 0x0913, - 0x0917, 0x093f, 0x0943, 0x094e, 0x095a, 0x0961, 0x096c, 0x0977, - 0x0980, 0x0985, 0x098e, 0x099f, 0x09a5, 0x09ab, 0x09b4, 0x09bb, - 0x09c1, 0x09d3, 0x09ec, 0x09f3, 0x09fd, 0x0a0e, 0x0a25, 0x0a2e, - 0x0a47, 0x0a60, 0x0a67, 0x0a6e, 0x0a7d, 0x0a82, 0x0a88, 0x0a8d, - // Entry 100 - 13F - 0x0a94, 0x0aad, 0x0ab4, 0x0abc, 0x0acb, 0x0ad0, 0x0ad6, 0x0ae6, - 0x0af4, 0x0afd, 0x0b0b, 0x0b1c, 0x0b2b, 0x0b3a, 0x0b4a, 0x0b57, - 0x0b5e, 0x0b79, 0x0b81, 0x0b8f, 0x0b9b, 0x0bad, 0x0bba, 0x0bc6, - 0x0bd1, 0x0bed, 0x0bf8, 0x0bfd, 0x0c0c, 0x0c19, 0x0c1f, 0x0c2e, - 0x0c3d, 0x0c4b, 0x0c5d, - }, - }, - { // hu - huRegionStr, - huRegionIdx, - }, - { // hy - hyRegionStr, - hyRegionIdx, - }, - { // id - idRegionStr, - idRegionIdx, - }, - { // ig - "BininBemudaChainaHatiComorosuLibyiaMaldivesaNigeria", - []uint16{ // 172 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0005, 0x0005, 0x000b, 0x000b, 0x000b, - 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, - 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, - 0x000b, 0x000b, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - // Entry 40 - 7F - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001d, 0x001d, - // Entry 80 - BF - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0023, - 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, - 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, - 0x0023, 0x0023, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, - 0x002c, 0x002c, 0x002c, 0x0033, - }, - }, - { // ii - "ꀠꑭêꇩꄓꇩꃔꇩꑱꇩꑴꄗꑴꄊꆺêꀪꊉꇆꌦꂰꇩꃅꄷꅉꀋêšêŒ ", - []uint16{ // 261 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x0012, 0x0012, 0x0012, 0x0012, - // Entry 40 - 7F - 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, - 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, - 0x0012, 0x0018, 0x0018, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, - 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, - 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, - 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, - 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x002d, 0x002d, 0x002d, - 0x002d, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, - // Entry 80 - BF - 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, - 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, - 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, - 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, - 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, - 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, - 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, - 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, - // Entry C0 - FF - 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, - 0x003c, 0x003c, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - // Entry 100 - 13F - 0x0042, 0x0042, 0x0042, 0x0042, 0x0054, - }, - }, - { // is - isRegionStr, - isRegionIdx, - }, - { // it - itRegionStr, - itRegionIdx, - }, - { // ja - jaRegionStr, - jaRegionIdx, - }, - { // jgo - "AÅ‹gÉ”ÌlaAjÉ›ntînMbulukína FásÉ”MbulundíMbÉ›nɛ̂ŋMbÉ”livîMbÉ›lazîlMbÉ”tswánaKanad" + - "âKÉ”ÌÅ‹gÉ”-KinshásaKÉ”ÌÅ‹gÉ”-MbÉ›lazavîlSẅísÉ›KÉ”Ìt NdivwâCíllÉ›KamÉ›lûnShînKÉ”" + - "llÉ”mbîKúbaNjámanNjimbútiAljÉ›lîÆkwandɔ̂ÆjíptÉ›ÆlitÉ›lÉ›ÌyaÆspániyaÆtiyÉ”p" + - "îFÉ›lánciÅŠgabɔ̂ŋŊgánaÅŠgambîŊginɛ̂Ŋginɛ̂ ÆkwatÉ”liyâlÅŠgÉ›lɛ̂kÅŠginɛ̂ Mbi" + - "sáwuIslayɛ̂lÃndÉ›IlâkItalîJapɔ̂nKÉ›ÌnyaKÉ”mÉ”ÌlÉ”shiLibÉ›rîLÉ›sÉ”ÌtÉ”LibîMÉ”lÉ”" + - "Ì‚kMándaÅ‹gasÉ›kâMalîMÉ”litanîMaláwiMÉ›ksîkMÉ”zambîkNamimbîNijɛ̂NinjÉ›liyâ" + - "NÉ”lÉ›vÉ›ÌjÉ›PÉ›lûLÉ›Ìuniyɔ̂nSÉ›lÉ›bîLusîLuwándaPÉ›sÉ›ÌshÉ›lSundânSiyÉ›Ìla Lɛɔ̂n" + - "SÉ›nÉ›gâlSÉ”malîSáwɔŋ TÉ”mÉ›Ì nÉ›Ì PÉ›línsipÉ›SwazilânCâtTÉ”ÌÅ‹gÉ”TunizîTanzanî" + - "UÅ‹gándaVÉ›nÉ›zwÉ›ÌlaMayɔ̂tZambîZimbámbwɛŋgɔŋ yi pÉ›Ì ká kÉ›Ì jʉɔMbíAfÉ›lîk" + - "AmÉ›lîkAzîɄlôp", - []uint16{ // 287 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x000a, 0x000a, 0x0013, 0x0013, 0x0013, 0x0013, - 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0024, - 0x0024, 0x0024, 0x002d, 0x0038, 0x0038, 0x0038, 0x0038, 0x0041, - 0x0041, 0x004b, 0x004b, 0x004b, 0x004b, 0x0056, 0x0056, 0x0056, - 0x005d, 0x005d, 0x0071, 0x0071, 0x0088, 0x0091, 0x009f, 0x009f, - 0x00a6, 0x00af, 0x00b4, 0x00bf, 0x00bf, 0x00bf, 0x00c4, 0x00c4, - 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00cb, 0x00cb, 0x00d4, 0x00d4, - // Entry 40 - 7F - 0x00d4, 0x00d4, 0x00dc, 0x00dc, 0x00e7, 0x00e7, 0x00f0, 0x00f0, - 0x00fe, 0x0108, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, - 0x0112, 0x011b, 0x0126, 0x0126, 0x0126, 0x0126, 0x0126, 0x0126, - 0x012d, 0x012d, 0x012d, 0x0135, 0x013e, 0x013e, 0x0156, 0x0161, - 0x0161, 0x0161, 0x0161, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, - 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x017d, 0x017d, - 0x0183, 0x0183, 0x0188, 0x0188, 0x0188, 0x018e, 0x018e, 0x018e, - 0x018e, 0x0196, 0x019e, 0x019e, 0x019e, 0x019e, 0x01ac, 0x01ac, - // Entry 80 - BF - 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, - 0x01ac, 0x01ac, 0x01b4, 0x01bf, 0x01bf, 0x01bf, 0x01bf, 0x01c4, - 0x01cd, 0x01cd, 0x01cd, 0x01cd, 0x01cd, 0x01dd, 0x01dd, 0x01dd, - 0x01e2, 0x01e2, 0x01e2, 0x01e2, 0x01e2, 0x01e2, 0x01ec, 0x01ec, - 0x01ec, 0x01ec, 0x01ec, 0x01f3, 0x01fb, 0x01fb, 0x0205, 0x020d, - 0x020d, 0x0214, 0x0214, 0x021f, 0x021f, 0x021f, 0x022d, 0x022d, - 0x022d, 0x022d, 0x022d, 0x022d, 0x022d, 0x0233, 0x0233, 0x0233, - 0x0233, 0x0233, 0x0233, 0x0233, 0x0233, 0x0233, 0x0233, 0x0233, - // Entry C0 - FF - 0x0233, 0x0233, 0x0233, 0x0233, 0x0241, 0x0241, 0x024a, 0x024f, - 0x0257, 0x0257, 0x0257, 0x0264, 0x026b, 0x026b, 0x026b, 0x026b, - 0x026b, 0x026b, 0x026b, 0x027d, 0x027d, 0x0287, 0x028f, 0x028f, - 0x028f, 0x02b3, 0x02b3, 0x02b3, 0x02b3, 0x02bc, 0x02bc, 0x02bc, - 0x02c0, 0x02c0, 0x02ca, 0x02ca, 0x02ca, 0x02ca, 0x02ca, 0x02ca, - 0x02d1, 0x02d1, 0x02d1, 0x02d1, 0x02d1, 0x02d1, 0x02d9, 0x02d9, - 0x02e2, 0x02e2, 0x02e2, 0x02e2, 0x02e2, 0x02e2, 0x02e2, 0x02f0, - 0x02f0, 0x02f0, 0x02f0, 0x02f0, 0x02f0, 0x02f0, 0x02f0, 0x02f0, - // Entry 100 - 13F - 0x02f8, 0x02f8, 0x02fe, 0x0309, 0x0329, 0x032d, 0x0335, 0x0335, - 0x0335, 0x0335, 0x0335, 0x0335, 0x0335, 0x0335, 0x0335, 0x0335, - 0x033d, 0x033d, 0x033d, 0x033d, 0x033d, 0x033d, 0x033d, 0x033d, - 0x033d, 0x033d, 0x033d, 0x0341, 0x0341, 0x0341, 0x0347, - }, - }, - { // jmc - "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + - "iaAntili za UholanziAngolaAjentinaSamoa ya MarekaniAustriaAustraliaA" + - "rubaAzabajaniBosnia na HezegovinaBabadosiBangladeshiUbelgijiBukinafa" + - "soBulgariaBahareniBurundiBeniniBermudaBruneiBoliviaBraziliBahamaButa" + - "niBotswanaBelarusiBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhur" + - "i ya Afrika ya KatiKongoUswisiKodivaaVisiwa vya CookChileKameruniChi" + - "naKolombiaKostarikaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibut" + - "iDenmakiDominikaJamhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaH" + - "ispaniaUhabeshiUfiniFijiVisiwa vya FalklandMikronesiaUfaransaGaboniU" + - "ingerezaGrenadaJojiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaG" + - "ineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKor" + - "asiaHaitiHungariaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza kati" + - "ka Bahari HindiIrakiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKir" + - "igizistaniKambodiaKiribatiKomoroSantakitzi na NevisKorea KaskaziniKo" + - "rea KusiniKuwaitiVisiwa vya KaymanKazakistaniLaosiLebanoniSantalusia" + - "LishenteniSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoM" + - "onakoMoldovaBukiniVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa" + - " vya Mariana vya KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiMo" + - "divuMalawiMeksikoMalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha " + - "NorfokNijeriaNikaragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPan" + - "amaPeruPolinesia ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri " + - "na MikeloniPitkairniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza w" + - "a PalestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiV" + - "isiwa vya SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaSl" + - "ovakiaSiera LeoniSamarinoSenegaliSomaliaSurinamuSao Tome na Principe" + - "ElsavadoSiriaUswaziVisiwa vya Turki na KaikoChadiTogoTailandiTajikis" + - "taniTokelauTimori ya MasharikiTurukimenistaniTunisiaTongaUturukiTrin" + - "idad na TobagoTuvaluTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibe" + - "kistaniVatikaniSantavisenti na GrenadiniVenezuelaVisiwa vya Virgin v" + - "ya UingerezaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWalis na F" + - "utunaSamoaYemeniMayotteAfrika KusiniZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, - 0x004a, 0x005c, 0x0062, 0x0062, 0x006a, 0x007b, 0x0082, 0x008b, - 0x0090, 0x0090, 0x0099, 0x00ad, 0x00b5, 0x00c0, 0x00c8, 0x00d2, - 0x00da, 0x00e2, 0x00e9, 0x00ef, 0x00ef, 0x00f6, 0x00fc, 0x0103, - 0x0103, 0x010a, 0x0110, 0x0116, 0x0116, 0x011e, 0x0126, 0x012c, - 0x0132, 0x0132, 0x0152, 0x016b, 0x0170, 0x0176, 0x017d, 0x018c, - 0x0191, 0x0199, 0x019e, 0x01a6, 0x01a6, 0x01af, 0x01b3, 0x01bb, - 0x01bb, 0x01bb, 0x01c2, 0x01d2, 0x01db, 0x01db, 0x01e1, 0x01e8, - // Entry 40 - 7F - 0x01f0, 0x0203, 0x020a, 0x020a, 0x0210, 0x0217, 0x021c, 0x021c, - 0x0223, 0x022b, 0x0233, 0x0233, 0x0238, 0x023c, 0x024f, 0x0259, - 0x0259, 0x0261, 0x0267, 0x0270, 0x0277, 0x027c, 0x028f, 0x028f, - 0x0294, 0x029c, 0x02a5, 0x02ab, 0x02af, 0x02b8, 0x02c1, 0x02c8, - 0x02c8, 0x02d1, 0x02d5, 0x02de, 0x02e4, 0x02e4, 0x02e4, 0x02ed, - 0x02f4, 0x02f9, 0x0301, 0x0301, 0x030a, 0x0312, 0x0319, 0x0319, - 0x031e, 0x0343, 0x0348, 0x034e, 0x0356, 0x035c, 0x035c, 0x0363, - 0x036a, 0x0370, 0x0375, 0x0382, 0x038a, 0x0392, 0x0398, 0x03ab, - // Entry 80 - BF - 0x03ba, 0x03c6, 0x03cd, 0x03de, 0x03e9, 0x03ee, 0x03f6, 0x0400, - 0x040a, 0x0413, 0x041a, 0x0420, 0x0428, 0x0431, 0x0438, 0x043d, - 0x0443, 0x0449, 0x0450, 0x0450, 0x0450, 0x0456, 0x0468, 0x0471, - 0x0475, 0x047a, 0x0482, 0x0482, 0x04a2, 0x04ab, 0x04b4, 0x04bf, - 0x04c4, 0x04ca, 0x04d0, 0x04d6, 0x04dd, 0x04e4, 0x04ec, 0x04f3, - 0x04ff, 0x0505, 0x0516, 0x051d, 0x0526, 0x052e, 0x0533, 0x0539, - 0x053e, 0x0542, 0x054c, 0x0551, 0x0557, 0x055b, 0x0570, 0x0575, - 0x057d, 0x0586, 0x058d, 0x05a3, 0x05ac, 0x05b5, 0x05e7, 0x05ec, - // Entry C0 - FF - 0x05f1, 0x05f9, 0x05ff, 0x05ff, 0x0608, 0x060f, 0x060f, 0x0614, - 0x061a, 0x061f, 0x0631, 0x063b, 0x0641, 0x0647, 0x064f, 0x065a, - 0x0662, 0x0662, 0x066a, 0x0675, 0x067d, 0x0685, 0x068c, 0x0694, - 0x0694, 0x06a8, 0x06b0, 0x06b0, 0x06b5, 0x06bb, 0x06bb, 0x06d4, - 0x06d9, 0x06d9, 0x06dd, 0x06e5, 0x06f0, 0x06f7, 0x070a, 0x0719, - 0x0720, 0x0725, 0x072c, 0x073e, 0x0744, 0x074b, 0x0753, 0x075a, - 0x0760, 0x0760, 0x0768, 0x076f, 0x077b, 0x0783, 0x079c, 0x07a5, - 0x07c4, 0x07e2, 0x07eb, 0x07f2, 0x0801, 0x0806, 0x0806, 0x080c, - // Entry 100 - 13F - 0x0813, 0x0820, 0x0826, 0x082e, - }, - }, - { // ka - kaRegionStr, - kaRegionIdx, - }, - { // kab - "UnduraTigeldunin Yedduklen TaÉ›rabinAfÉ£anistanUntiga d BarbudaUngiyaLalba" + - "niArminyaAntilles n Tmura-YessakesrenUngulaArjuntinSamwa Tamarikanit" + - "UstriyaUstraliArubaAzrabijanBusna d HersekBarbadusBangladacBelǧikBur" + - "kina FasuBulgariBaḥrinBurandiBininBermudaBruneyBuliviBrizilBahamasBh" + - "utanBustwanaBilarusBilizKanadaTigduda Tagdudant n KunguTigduda n Tef" + - "riqt TalemmastKunguSwisKuá¹­ DivwarTigzirin n KukCiliKamirunLacinKulum" + - "biKusta RikaKubaTigzirin n yixef azegzawCiprÄŒÄekLalmanǦibutiDenmarkD" + - "uminikTigduda TaduminikitLezzayerIkwaá¹­urIstunyaMaá¹£rIritiriaSpanyaUty" + - "upiFinlundFijiTigzirin n FalklandMikrunizyaFransaGabunTagelda Yedduk" + - "lenGrunadJiyurjiÆ”ana tafransistÆ”anaJibraltarGrunlandGambyaÆ”inyaGwada" + - "lupiÆ”inya TasebgastLagrisGwatimalaGwamÆ”inya-BisawGuwanaHundurasKerwa" + - "syaHaytiHungriInduniziLirlundIzrayilLhendAkal Aglizi deg Ugaraw Ahen" + - "diLÉ›iraqIranIslandṬelyanJamyikaLajurdaniJappuKinyaKirigistanCambudya" + - "KiribatiKumurSan Kits d NivisKurya, UfellaKurya, WaddaKuwaytTigzirin" + - " n KamyanKazaxistanLawsLubnanSan LuÄyaLayctenstanSri LankaLibiryaLiz" + - "uá¹­uLiá¹­wanyaLuksamburgLatviaLibyaLmerrukMunakuMuldabiMadaÉ£ecqerTigzir" + - "in n MarcalMasidwanMaliMyanmarMungulyaTigzirin n Maryan UfellaMartin" + - "ikMuriá¹­anyaMunsiratMalá¹­MurisMaldibMalawiMeksikMalizyaMuzembiqNamibya" + - "Kalidunya TamaynutNijerTigzirin TinawfukinNijiryaNikaragwaTimura-Yes" + - "sakesrenNurvijNipalNuruNiwiZiland TamaynutÆumanPanamPiruPulunizi taf" + - "ransistÆ”inya Tamaynut TapaputFilipinPakistanPulundSan Pyar d MiklunP" + - "itkarinPurtu RikuFalisá¹­in d Æ”ezzaPurtugalPaluParagwayQaá¹­arTimlilitRu" + - "maniRrusRuwandaSuÉ›udiya TaÉ›rabtTigzirin n SulumunSeycelSudanSwidSing" + - "afurSant IlinaSluvinyaSluvakyaSira LyunSan MarinuSinigalá¹¢umalSurinam" + - "Saw Tumi d PransipSalvadurSuryaSwazilundṬurk d Tegzirin n KaykusÄŒadṬ" + - "uguṬaylandTajikistanṬukluTumur AsamarṬurkmanistanTunesṬungaṬurkṬrind" + - "ad d ṬubaguṬuvaluṬaywanṬanzanyaUkranUÉ£andaWDMUrugwayUzbaxistanAwanek" + - " n VatikanSan Vansu d GrunadinVenzwilaTigzirin Tiverjiniyin Tigliziy" + - "inW.D. Tigzirin n VirginyaVyeá¹­namVanwatuWallis d FutunaSamwaLyamenMa" + - "yuá¹­Tafriqt WaddaZambyaZimbabwi", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0024, 0x002f, 0x003f, 0x0045, 0x004c, - 0x0053, 0x006f, 0x0075, 0x0075, 0x007d, 0x008e, 0x0095, 0x009c, - 0x00a1, 0x00a1, 0x00aa, 0x00b8, 0x00c0, 0x00c9, 0x00d0, 0x00dc, - 0x00e3, 0x00eb, 0x00f2, 0x00f7, 0x00f7, 0x00fe, 0x0104, 0x010a, - 0x010a, 0x0110, 0x0117, 0x011d, 0x011d, 0x0125, 0x012c, 0x0131, - 0x0137, 0x0137, 0x0150, 0x016b, 0x0170, 0x0174, 0x0180, 0x018e, - 0x0192, 0x0199, 0x019e, 0x01a5, 0x01a5, 0x01af, 0x01b3, 0x01cb, - 0x01cb, 0x01cb, 0x01cf, 0x01d5, 0x01db, 0x01db, 0x01e2, 0x01e9, - // Entry 40 - 7F - 0x01f0, 0x0203, 0x020b, 0x020b, 0x0214, 0x021b, 0x0221, 0x0221, - 0x0229, 0x022f, 0x0235, 0x0235, 0x023c, 0x0240, 0x0253, 0x025d, - 0x025d, 0x0263, 0x0268, 0x0279, 0x027f, 0x0286, 0x0296, 0x0296, - 0x029b, 0x02a4, 0x02ac, 0x02b2, 0x02b8, 0x02c1, 0x02d1, 0x02d7, - 0x02d7, 0x02e0, 0x02e4, 0x02f0, 0x02f6, 0x02f6, 0x02f6, 0x02fe, - 0x0306, 0x030b, 0x0311, 0x0311, 0x0319, 0x0320, 0x0327, 0x0327, - 0x032c, 0x0349, 0x0350, 0x0354, 0x035a, 0x0362, 0x0362, 0x0369, - 0x0372, 0x0377, 0x037c, 0x0386, 0x038e, 0x0396, 0x039b, 0x03ab, - // Entry 80 - BF - 0x03b8, 0x03c4, 0x03ca, 0x03db, 0x03e5, 0x03e9, 0x03ef, 0x03f9, - 0x0404, 0x040d, 0x0414, 0x041c, 0x0426, 0x0430, 0x0436, 0x043b, - 0x0442, 0x0448, 0x044f, 0x044f, 0x044f, 0x045a, 0x046b, 0x0473, - 0x0477, 0x047e, 0x0486, 0x0486, 0x049e, 0x04a6, 0x04b1, 0x04b9, - 0x04bf, 0x04c4, 0x04ca, 0x04d0, 0x04d6, 0x04dd, 0x04e5, 0x04ec, - 0x04fe, 0x0503, 0x0516, 0x051d, 0x0526, 0x0538, 0x053e, 0x0543, - 0x0547, 0x054b, 0x055a, 0x0560, 0x0565, 0x0569, 0x057c, 0x0593, - 0x059a, 0x05a2, 0x05a8, 0x05b9, 0x05c1, 0x05cb, 0x05de, 0x05e6, - // Entry C0 - FF - 0x05ea, 0x05f2, 0x05f9, 0x05f9, 0x0601, 0x0607, 0x0607, 0x060b, - 0x0612, 0x0624, 0x0636, 0x063c, 0x0641, 0x0645, 0x064d, 0x0657, - 0x065f, 0x065f, 0x0667, 0x0670, 0x067a, 0x0681, 0x0688, 0x068f, - 0x068f, 0x06a1, 0x06a9, 0x06a9, 0x06ae, 0x06b7, 0x06b7, 0x06d1, - 0x06d5, 0x06d5, 0x06db, 0x06e4, 0x06ee, 0x06f5, 0x0701, 0x070f, - 0x0714, 0x071b, 0x0721, 0x0735, 0x073d, 0x0745, 0x074f, 0x0754, - 0x075b, 0x075b, 0x075e, 0x0765, 0x076f, 0x077f, 0x0793, 0x079b, - 0x07bb, 0x07d3, 0x07dc, 0x07e3, 0x07f2, 0x07f7, 0x07f7, 0x07fd, - // Entry 100 - 13F - 0x0804, 0x0811, 0x0817, 0x081f, - }, - }, - { // kam - "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + - "iaAntili za UholanziAngolaAjentinaSamoa ya MarekaniAustriaAustraliaA" + - "rubaAzabajaniBosnia na HezegovinaBabadosiBangladeshiUbelgijiBukinafa" + - "soBulgariaBahareniMbulundiBeniniBermudaBruneiBoliviaBraziliBahamaBut" + - "aniBotswanaBelarusiBelizeKanandaJamhuri ya Kidemokrasia ya KongoJamh" + - "uri ya Afrika ya KatiKongoUswisiKodivaaIsiwa sya CookChileKameluniKy" + - "ainaKolombiaKostarikaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJib" + - "utiDenmakiDominikaJamhuri ya DominikaAljeriaEkwadoEstoniaMisiliEritr" + - "eaHispaniaUhabeshiUfiniFijiVisiwa vya FalklandMikronesiaUvalanzaGabo" + - "niUingerezaGrenadaJojiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGamb" + - "iaGineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasi" + - "KorasiaHaitiHungariaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza k" + - "atika Bahari HindiIrakiUajemiAislandiItaliaJamaikaYordaniJapaniKenya" + - "KirigizistaniKambodiaKiribatiKomoroSantakitzi na NevisKorea Kaskazin" + - "iKorea KusiniKuwaitiIsiwa sya KaymanKazakistaniLaosiLebanoniSantalus" + - "iaLishenteniSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorok" + - "oMonakoMoldovaBukiniVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisi" + - "wa vya Mariana vya KaskaziniMartinikiMoritaniaMontserratiMaltaMorisi" + - "ModivuMalawiMeksikoMalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa ch" + - "a NorfokNijeriaNikaragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniP" + - "anamaPeruPolinesia ya UfaransaPapuaFilipinoPakistaniPolandiSantapier" + - "i na MikeloniPitkairniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza" + - " wa PalestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiLwandaSaud" + - "iIsiwa sya SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaS" + - "lovakiaSiera LeoniSamarinoSenegaliSomaliaSurinamuSao Tome na Princip" + - "eElsavadoSiriaUswaziVisiwa vya Turki na KaikoChadiTogoTailandiTajiki" + - "staniTokelauTimori ya MasharikiTurukimenistaniTunisiaTongaUturukiTri" + - "nidad na TobagoTuvaluTaiwaniTanzaniaUkrainiUkandaMarekaniUrugwaiUzib" + - "ekistaniVatikaniSantavisenti na GrenadiniVenezuelaVisiwa vya Virgin " + - "vya UingerezaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWalis na " + - "FutunaSamoaYemeniMayotteAfrika KusiniNzambiaNzimbambwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, - 0x004a, 0x005c, 0x0062, 0x0062, 0x006a, 0x007b, 0x0082, 0x008b, - 0x0090, 0x0090, 0x0099, 0x00ad, 0x00b5, 0x00c0, 0x00c8, 0x00d2, - 0x00da, 0x00e2, 0x00ea, 0x00f0, 0x00f0, 0x00f7, 0x00fd, 0x0104, - 0x0104, 0x010b, 0x0111, 0x0117, 0x0117, 0x011f, 0x0127, 0x012d, - 0x0134, 0x0134, 0x0154, 0x016d, 0x0172, 0x0178, 0x017f, 0x018d, - 0x0192, 0x019a, 0x01a0, 0x01a8, 0x01a8, 0x01b1, 0x01b5, 0x01bd, - 0x01bd, 0x01bd, 0x01c4, 0x01d4, 0x01dd, 0x01dd, 0x01e3, 0x01ea, - // Entry 40 - 7F - 0x01f2, 0x0205, 0x020c, 0x020c, 0x0212, 0x0219, 0x021f, 0x021f, - 0x0226, 0x022e, 0x0236, 0x0236, 0x023b, 0x023f, 0x0252, 0x025c, - 0x025c, 0x0264, 0x026a, 0x0273, 0x027a, 0x027f, 0x0292, 0x0292, - 0x0297, 0x029f, 0x02a8, 0x02ae, 0x02b2, 0x02bb, 0x02c4, 0x02cb, - 0x02cb, 0x02d4, 0x02d8, 0x02e1, 0x02e7, 0x02e7, 0x02e7, 0x02f0, - 0x02f7, 0x02fc, 0x0304, 0x0304, 0x030d, 0x0315, 0x031c, 0x031c, - 0x0321, 0x0346, 0x034b, 0x0351, 0x0359, 0x035f, 0x035f, 0x0366, - 0x036d, 0x0373, 0x0378, 0x0385, 0x038d, 0x0395, 0x039b, 0x03ae, - // Entry 80 - BF - 0x03bd, 0x03c9, 0x03d0, 0x03e0, 0x03eb, 0x03f0, 0x03f8, 0x0402, - 0x040c, 0x0415, 0x041c, 0x0422, 0x042a, 0x0433, 0x043a, 0x043f, - 0x0445, 0x044b, 0x0452, 0x0452, 0x0452, 0x0458, 0x046a, 0x0473, - 0x0477, 0x047c, 0x0484, 0x0484, 0x04a4, 0x04ad, 0x04b6, 0x04c1, - 0x04c6, 0x04cc, 0x04d2, 0x04d8, 0x04df, 0x04e6, 0x04ee, 0x04f5, - 0x0501, 0x0507, 0x0518, 0x051f, 0x0528, 0x0530, 0x0535, 0x053b, - 0x0540, 0x0544, 0x054e, 0x0553, 0x0559, 0x055d, 0x0572, 0x0577, - 0x057f, 0x0588, 0x058f, 0x05a5, 0x05ae, 0x05b7, 0x05e9, 0x05ee, - // Entry C0 - FF - 0x05f3, 0x05fb, 0x0601, 0x0601, 0x060a, 0x0611, 0x0611, 0x0616, - 0x061c, 0x0621, 0x0632, 0x063c, 0x0642, 0x0648, 0x0650, 0x065b, - 0x0663, 0x0663, 0x066b, 0x0676, 0x067e, 0x0686, 0x068d, 0x0695, - 0x0695, 0x06a9, 0x06b1, 0x06b1, 0x06b6, 0x06bc, 0x06bc, 0x06d5, - 0x06da, 0x06da, 0x06de, 0x06e6, 0x06f1, 0x06f8, 0x070b, 0x071a, - 0x0721, 0x0726, 0x072d, 0x073f, 0x0745, 0x074c, 0x0754, 0x075b, - 0x0761, 0x0761, 0x0769, 0x0770, 0x077c, 0x0784, 0x079d, 0x07a6, - 0x07c5, 0x07e3, 0x07ec, 0x07f3, 0x0802, 0x0807, 0x0807, 0x080d, - // Entry 100 - 13F - 0x0814, 0x0821, 0x0828, 0x0832, - }, - }, - { // kde - "AndolaDimiliki dya Vakulungwa va ChalabuAfuganistaniAntigua na BalbudaAn" + - "gwilaAlbaniaAlmeniaAntili za UholanziAngolaAdyentinaSamoa ya Malekan" + - "iAustliaAustlaliaAlubaAzabadyaniBosnia na HezegovinaBabadosiBanglade" + - "shiUbelgidiBuchinafasoBulgaliaBahaleniBulundiBeniniBelmudaBluneiBoli" + - "viaBlaziliBahamaButaniBotswanaBelalusiBelizeKanadaJamuhuli ya Chidem" + - "oklasia ya kuKongoJamuhuli ya Afilika ya Paching’atiKongoUswisiKodiv" + - "aaChisiwa cha CookChileKameluniChinaKolombiaKostalikaKubaKepuvedeKup" + - "losiJamuhuli ya ChechiUdyerumaniDyibutiDenmakiDominikaJamuhuli ya Do" + - "minikaAljeliaEkwadoEstoniaMisliElitileaHispaniaUhabeshiUfiniFijiChis" + - "iwa cha FalklandMikilonesiaUfalansaGaboniNngalesaGlenadaDyodyaGwiyan" + - "a ya UfalansaGhanaDiblaltaGlinlandiGambiaGineGwadelupeGinekwetaUgili" + - "chiGwatemalaGwamGinebisauGuyanaHondulasiKolasiaHaitiHungaliaIndonesi" + - "aAyalandiIslaeliIndiaLieneo lyaki Nngalesa Nbahali ya HindiIlakiUady" + - "emiAislandiItaliaDyamaikaYordaniDyapaniKenyaKiligizistaniKambodiaKil" + - "ibatiKomoloSantakitzi na NevisKolea KasikaziniKolea KusiniKuwaitiChi" + - "siwa cha KemenKazachistaniLaosiLebanoniSantalusiaLishenteniSililanka" + - "LibeliaLesotoLitwaniaLasembagiLativiaLibyaMolokoMonakoMoldovaBukiniC" + - "hisiwa cha MalushalMasedoniaMaliMyamaMongoliaChisiwa cha Marian cha " + - "KasikaziniMalitinikiMolitaniaMonselatiMaltaMolisiModivuMalawiMeksiko" + - "MalesiaMsumbijiNamibiaNyukaledoniaNidyeliChisiwa cha NolufokNidyelia" + - "NikalagwaUholanziNorweNepaliNauluNiueNyuzilandiOmaniPanamaPeluPoline" + - "sia ya UfalansaPapuaFilipinoPakistaniPolandiSantapieli na MikeloniPi" + - "tikeluniPwetolikoNchingu wa Magalibi wa Mpanda wa kuGaza wa kuPalesU" + - "lenoPalauPalagwaiKataliLiyunioniLomaniaUlusiLwandaSaudiaChisiwa cha " + - "SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiel" + - "a LeoniSamalinoSenegaliSomaliaSulinamuSaotome na PrinsipeElsavadoSil" + - "iaUswaziChisiwa cha Tuluchi na KaikoChadiTogoTailandiTadikistaniToke" + - "lauTimoli ya MashalikiTuluchimenistaniTunisiaTongaUtuluchiTilinidad " + - "na TobagoTuvaluTaiwaniTanzaniaUklainiUgandaMalekaniUlugwaiUzibechist" + - "aniVatikaniSantavisenti na GlenadiniVenezuelaChisiwa Chivihi cha Win" + - "galesaChisiwa Chivihi cha MalekaniVietinamuVanuatuWalis na FutunaSam" + - "oaYemeniMaoleAfilika KusiniZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0028, 0x0034, 0x0046, 0x004d, 0x0054, - 0x005b, 0x006d, 0x0073, 0x0073, 0x007c, 0x008d, 0x0094, 0x009d, - 0x00a2, 0x00a2, 0x00ac, 0x00c0, 0x00c8, 0x00d3, 0x00db, 0x00e6, - 0x00ee, 0x00f6, 0x00fd, 0x0103, 0x0103, 0x010a, 0x0110, 0x0117, - 0x0117, 0x011e, 0x0124, 0x012a, 0x012a, 0x0132, 0x013a, 0x0140, - 0x0146, 0x0146, 0x016a, 0x018e, 0x0193, 0x0199, 0x01a0, 0x01b0, - 0x01b5, 0x01bd, 0x01c2, 0x01ca, 0x01ca, 0x01d3, 0x01d7, 0x01df, - 0x01df, 0x01df, 0x01e6, 0x01f8, 0x0202, 0x0202, 0x0209, 0x0210, - // Entry 40 - 7F - 0x0218, 0x022c, 0x0233, 0x0233, 0x0239, 0x0240, 0x0245, 0x0245, - 0x024d, 0x0255, 0x025d, 0x025d, 0x0262, 0x0266, 0x027a, 0x0285, - 0x0285, 0x028d, 0x0293, 0x029b, 0x02a2, 0x02a8, 0x02bb, 0x02bb, - 0x02c0, 0x02c8, 0x02d1, 0x02d7, 0x02db, 0x02e4, 0x02ed, 0x02f5, - 0x02f5, 0x02fe, 0x0302, 0x030b, 0x0311, 0x0311, 0x0311, 0x031a, - 0x0321, 0x0326, 0x032e, 0x032e, 0x0337, 0x033f, 0x0346, 0x0346, - 0x034b, 0x0371, 0x0376, 0x037d, 0x0385, 0x038b, 0x038b, 0x0393, - 0x039a, 0x03a1, 0x03a6, 0x03b3, 0x03bb, 0x03c3, 0x03c9, 0x03dc, - // Entry 80 - BF - 0x03ec, 0x03f8, 0x03ff, 0x0410, 0x041c, 0x0421, 0x0429, 0x0433, - 0x043d, 0x0446, 0x044d, 0x0453, 0x045b, 0x0464, 0x046b, 0x0470, - 0x0476, 0x047c, 0x0483, 0x0483, 0x0483, 0x0489, 0x049d, 0x04a6, - 0x04aa, 0x04af, 0x04b7, 0x04b7, 0x04d8, 0x04e2, 0x04eb, 0x04f4, - 0x04f9, 0x04ff, 0x0505, 0x050b, 0x0512, 0x0519, 0x0521, 0x0528, - 0x0534, 0x053b, 0x054e, 0x0556, 0x055f, 0x0567, 0x056c, 0x0572, - 0x0577, 0x057b, 0x0585, 0x058a, 0x0590, 0x0594, 0x05a9, 0x05ae, - 0x05b6, 0x05bf, 0x05c6, 0x05dc, 0x05e6, 0x05ef, 0x0621, 0x0626, - // Entry C0 - FF - 0x062b, 0x0633, 0x0639, 0x0639, 0x0642, 0x0649, 0x0649, 0x064e, - 0x0654, 0x065a, 0x066d, 0x0677, 0x067d, 0x0683, 0x068b, 0x0696, - 0x069e, 0x069e, 0x06a6, 0x06b1, 0x06b9, 0x06c1, 0x06c8, 0x06d0, - 0x06d0, 0x06e3, 0x06eb, 0x06eb, 0x06f0, 0x06f6, 0x06f6, 0x0712, - 0x0717, 0x0717, 0x071b, 0x0723, 0x072e, 0x0735, 0x0748, 0x0758, - 0x075f, 0x0764, 0x076c, 0x077f, 0x0785, 0x078c, 0x0794, 0x079b, - 0x07a1, 0x07a1, 0x07a9, 0x07b0, 0x07bd, 0x07c5, 0x07de, 0x07e7, - 0x0804, 0x0820, 0x0829, 0x0830, 0x083f, 0x0844, 0x0844, 0x084a, - // Entry 100 - 13F - 0x084f, 0x085d, 0x0863, 0x086b, - }, - }, - { // kea - "Ilha di AsensãuAndoraEmiradus Arabi UniduAfeganistãuAntigua i BarbudaAng" + - "ilaAlbaniaArmeniaAntilhas OlandezaAngolaAntartikaArjentinaSamoa Merk" + - "anuAustriaAustraliaArubaIlhas Ã…landAzerbaijãuBosnia-ErzegovinaBarbad" + - "usBangladexiBéljikaBurkina FasuBulgariaBarainBurundiBeninSãu Bartolo" + - "meuBermudasBruneiBoliviaKaraibas olandesBrazilBaamasButãuIlha BuveBo" + - "tsuanaBelarusBeliziKanadáIlhas KokusKongu - KinxasaRepublika Sentru-" + - "AfrikanuKongu - BrazaviliSuisaKosta di MarfinIlhas KukXiliKamarõisXi" + - "naKulombiaIlha KlipertonKosta RikaKubaKabu VerdiKurasauIlha di Natal" + - "XipriRepublika TxekaAlimanhaDiegu GarsiaDjibutiDinamarkaDominikaRepú" + - "blika DominikanaArjeliaSeuta i MelilaEkuadorStoniaEjituSara Osidenta" + - "lIritreiaSpanhaItiopiaUniãu EuropeiaFinlandiaFidjiIlhas MalvinasMikr" + - "oneziaIlhas FaroeFransaGabãuReinu UniduGranadaJiorjiaGiana FransezaG" + - "ernziGanaJibraltarGronelandiaGambiaGineGuadalupiGine EkuatorialGresi" + - "aJeórjia di Sul i Ilhas di Sanduixi di SulGuatimalaGuamGine-BisauGia" + - "naRejiãu Administrativu Special di Ong KongIlha Heard i Ilhas McDona" + - "ldOndurasKroasiaAitiUngriaKanáriasIndoneziaIrlandaIsraelIlha di ManI" + - "ndiaIlhas Britanika di IndikuIrakiIronIslandiaItaliaJersiJamaikaJord" + - "aniaJapãuKeniaKirgistonKambodjaKiribatiKamorisSãu Kristovãu i NevisK" + - "oreia di NortiKoreia di SulKueitiIlhas KaimãuKazakistãuLausLibanuSan" + - "ta LúsiaLixenstainSri LankaLiberiaLezotuLituaniaLuxemburguLetoniaLib" + - "iaMarokusMonakuMoldaviaMontenegruSãu Martinhu di FransaMadagaskarIlh" + - "as MarxalMasidoniaMaliMianmarMongoliaRejiãu Administrativu Special d" + - "i MakauIlhas Marianas di NortiMartinikaMauritaniaMonseratMaltaIlhas " + - "MaurisiaMaldivasMalauiMexikuMalaziaMusambikiNamibiaNova KalidoniaNij" + - "erIlhas NorfolkNijeriaNikaraguaOlandaNoruegaNepalNauruNiueNova Zilan" + - "diaOmanPanamaPeruPolinezia FransezaPapua-Nova GineFilipinasPakistãuP" + - "uloniaSan Piere i MikelonPirkairnPortu RikuPalistinaPurtugalPalauPar" + - "aguaiKatarOseania InsularRunionRomeniaServiaRúsiaRuandaArabia Saudit" + - "aIlhas SalumonSeixelisSudãuSuesiaSingapuraSanta IlenaSloveniaSvalbar" + - "d i Jan MaienSlovakiaSera LioaSan MarinuSenegalSumaliaSurinamiSudãu " + - "di SulSãu Tume i PrinsipiEl SalvadorSãu Martinhu di OlandaSiriaSuazi" + - "lándiaTristan da KunhaIlhas Turkas i KaikusTxadiTerras Franses di Su" + - "lToguTailandiaTadjikistãuTokelauTimor LestiTurkumenistãuTuniziaTonga" + - "TurkiaTrinidad i TobaguTuvaluTaiuanTanzaniaUkraniaUgandaIlhas Minori" + - "s Distantis de Stadus UnidusStadus Unidos di MerkaUruguaiUzbekistãuV" + - "atikanuSãu Bisenti i GranadinasVinizuelaIlhas Virjens BritanikasIlha" + - "s Virjens MerkanuVietnamVanuatuUalis i FutunaSamoaKozovuIemenMaioteA" + - "frika di SulZambiaZimbabuiRejiãu DiskonxeduMunduAfrikaMerka di Norti" + - "Merka di SulOseaniaAfrika OsidentalMerka SentralAfrika OrientalNorti" + - " di AfrikaAfrika SentralSul di AfrikaMerkasNorti di MerkaKaraibasAzi" + - "a OrientalSul di AziaSudesti AziatikuEuropa di SulAustralaziaMelanez" + - "iaRejiãu di MikroneziaPolineziaAziaAzia SentralAzia OsidentalEuropaE" + - "uropa OrientalEuropa di NortiEuropa OsidentalMerka Latinu", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0010, 0x0016, 0x002a, 0x0036, 0x0047, 0x004d, 0x0054, - 0x005b, 0x006c, 0x0072, 0x007b, 0x0084, 0x0091, 0x0098, 0x00a1, - 0x00a6, 0x00b2, 0x00bd, 0x00ce, 0x00d6, 0x00e0, 0x00e8, 0x00f4, - 0x00fc, 0x0102, 0x0109, 0x010e, 0x011d, 0x0125, 0x012b, 0x0132, - 0x0142, 0x0148, 0x014e, 0x0154, 0x015d, 0x0165, 0x016c, 0x0172, - 0x0179, 0x0184, 0x0193, 0x01ac, 0x01bd, 0x01c2, 0x01d1, 0x01da, - 0x01de, 0x01e7, 0x01eb, 0x01f3, 0x0201, 0x020b, 0x020f, 0x0219, - 0x0220, 0x022d, 0x0232, 0x0241, 0x0249, 0x0255, 0x025c, 0x0265, - // Entry 40 - 7F - 0x026d, 0x0282, 0x0289, 0x0297, 0x029e, 0x02a4, 0x02a9, 0x02b7, - 0x02bf, 0x02c5, 0x02cc, 0x02db, 0x02e4, 0x02e9, 0x02f7, 0x0301, - 0x030c, 0x0312, 0x0318, 0x0323, 0x032a, 0x0331, 0x033f, 0x0345, - 0x0349, 0x0352, 0x035d, 0x0363, 0x0367, 0x0370, 0x037f, 0x0385, - 0x03af, 0x03b8, 0x03bc, 0x03c6, 0x03cb, 0x03f5, 0x0410, 0x0417, - 0x041e, 0x0422, 0x0428, 0x0431, 0x043a, 0x0441, 0x0447, 0x0452, - 0x0457, 0x0470, 0x0475, 0x0479, 0x0481, 0x0487, 0x048c, 0x0493, - 0x049b, 0x04a1, 0x04a6, 0x04af, 0x04b7, 0x04bf, 0x04c6, 0x04dd, - // Entry 80 - BF - 0x04ec, 0x04f9, 0x04ff, 0x050c, 0x0517, 0x051b, 0x0521, 0x052d, - 0x0537, 0x0540, 0x0547, 0x054d, 0x0555, 0x055f, 0x0566, 0x056b, - 0x0572, 0x0578, 0x0580, 0x058a, 0x05a1, 0x05ab, 0x05b7, 0x05c0, - 0x05c4, 0x05cb, 0x05d3, 0x05fa, 0x0611, 0x061a, 0x0624, 0x062c, - 0x0631, 0x063f, 0x0647, 0x064d, 0x0653, 0x065a, 0x0663, 0x066a, - 0x0678, 0x067d, 0x068a, 0x0691, 0x069a, 0x06a0, 0x06a7, 0x06ac, - 0x06b1, 0x06b5, 0x06c2, 0x06c6, 0x06cc, 0x06d0, 0x06e2, 0x06f1, - 0x06fa, 0x0703, 0x070a, 0x071d, 0x0725, 0x072f, 0x0738, 0x0740, - // Entry C0 - FF - 0x0745, 0x074d, 0x0752, 0x0761, 0x0767, 0x076e, 0x0774, 0x077a, - 0x0780, 0x078e, 0x079b, 0x07a3, 0x07a9, 0x07af, 0x07b8, 0x07c3, - 0x07cb, 0x07df, 0x07e7, 0x07f0, 0x07fa, 0x0801, 0x0808, 0x0810, - 0x081d, 0x0831, 0x083c, 0x0853, 0x0858, 0x0864, 0x0874, 0x0889, - 0x088e, 0x08a3, 0x08a7, 0x08b0, 0x08bc, 0x08c3, 0x08ce, 0x08dc, - 0x08e3, 0x08e8, 0x08ee, 0x08ff, 0x0905, 0x090b, 0x0913, 0x091a, - 0x0920, 0x0948, 0x095e, 0x0965, 0x0970, 0x0978, 0x0991, 0x099a, - 0x09b2, 0x09c7, 0x09ce, 0x09d5, 0x09e3, 0x09e8, 0x09ee, 0x09f3, - // Entry 100 - 13F - 0x09f9, 0x0a06, 0x0a0c, 0x0a14, 0x0a26, 0x0a2b, 0x0a31, 0x0a3f, - 0x0a4b, 0x0a52, 0x0a62, 0x0a6f, 0x0a7e, 0x0a8d, 0x0a9b, 0x0aa8, - 0x0aae, 0x0abc, 0x0ac4, 0x0ad1, 0x0adc, 0x0aec, 0x0af9, 0x0b04, - 0x0b0d, 0x0b22, 0x0b2b, 0x0b2f, 0x0b3b, 0x0b49, 0x0b4f, 0x0b5e, - 0x0b6d, 0x0b7d, 0x0b89, - }, - }, - { // khq - "AndooraLaaraw Imaarawey MarganteyAfgaanistanAntigua nda BarbuudaAngiiyaA" + - "lbaaniArmeeniHollandu Antiiyey LabooAngoolaArgentineAmeriki SamoaOtr" + - "iÅ¡iOstraaliAruubaAzerbaayijaÅ‹Bosni nda HerzegovineBarbaadosBangladeÅ¡" + - "iBelgiikiBurkina fasoBulgaariBahareenBurundiBeniÅ‹BermudaBruuneeBooli" + - "viBreezilBahamasBuutaÅ‹BotswaanaBiloriÅ¡iBeliiziKanaadaKongoo demookar" + - "atiki labooCentraafriki koyraKongooSwisuKudwarKuuk gungeyÅ iiliKameru" + - "unÅ iinKolombiKosta rikaKuubaKapuver gungeyÅ iipurCek laboAlmaaɲeJibuu" + - "tiDanemarkDoominikiDoominiki labooAlžeeriEkwateerEstooniMisraEritree" + - "EspaaɲeEcioopiFinlanduFijiKalkan gungeyMikroneziFaransiGaabonAlbaasa" + - "laama MargantaGrenaadaGorgiFaransi GuyaanGaanaGibraltarGrinlandGambi" + - "GineGwadeluupGinee EkwatorialGreeceGwatemaalaGuamGine-BissoGuyaaneHo" + - "ndurasKrwaasiHaitiHungaariIndoneeziIrlanduIsrayelIndu labooBritiÅ¡i I" + - "ndu teekoo laamaIraakIraanAycelandItaaliJamaayikUrdunJaapoÅ‹KeeniyaKy" + - "rgyzstanKamboogiKiribaatiKomoorSeÅ‹ Kitts nda NevisKooree, GurmaKoore" + - "e, HawsaKuweetKayman gungeyKaazakstanLaawosLubnaanSeÅ‹ LussiaLiechten" + - "steinSrilankaLiberiaLeesotoLituaaniLuxembourgLetooniLiibiMaarokMonak" + - "oMoldoviMadagascarMarÅ¡al gungeyMaacedooniMaaliMaynamarMongooliMarian" + - "a Gurma GungeyMartiniikiMooritaaniMontserratMaltaMooris gungeyMaldii" + - "vuMalaawiMexikiMaleeziMozambikNaamibiKaaledooni TaagaaNižerNorfolk G" + - "ungooNaajiriiaNikaragwaHollanduNorveejNeepalNauruNiueZeelandu TaagaO" + - "maanPanamaPeeruFaransi PolineeziPapua Ginee TaagaFilipinePaakistanPo" + - "loɲeSeÅ‹ Piyer nda MikelonPitikarinPorto RikoPalestine Dangay nda Gaa" + - "zaPortugaalPaluParaguweyKataarReenioÅ‹RumaaniIriÅ¡i labooRwandaSaudiya" + - "Solomon GungeySeeÅ¡elSuudaÅ‹SweedeSingapurSeÅ‹ HelenaSloveeniSlovaakiSe" + - "era LeonSan MarinoSenegalSomaaliSurinaamSao Tome nda PrinsipeSalvado" + - "r labooSuuriaSwazilandTurk nda Kayikos GungeyCaaduTogoTaayilandTaaži" + - "kistanTokelauTimoor hawsaTurkmenistaÅ‹TuniziTongaTurkiTrinidad nda To" + - "baagoTuvaluTaayiwanTanzaaniUkreenUgandaAmeriki Laabu MarganteyUruguw" + - "eyUzbeekistanVaatikan LaamaSeÅ‹vinsaÅ‹ nda GrenadineVeneezuyeelaBritiÅ¡" + - "i Virgin gungeyAmeerik Virgin GungeyVietnaamVanautuWallis nda Futuna" + - "SamoaYamanMayootiHawsa Afriki LabooZambiZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x0021, 0x002c, 0x0040, 0x0047, 0x004e, - 0x0055, 0x006c, 0x0073, 0x0073, 0x007c, 0x0089, 0x0090, 0x0098, - 0x009e, 0x009e, 0x00ab, 0x00c0, 0x00c9, 0x00d4, 0x00dc, 0x00e8, - 0x00f0, 0x00f8, 0x00ff, 0x0105, 0x0105, 0x010c, 0x0113, 0x011a, - 0x011a, 0x0121, 0x0128, 0x012f, 0x012f, 0x0138, 0x0141, 0x0148, - 0x014f, 0x014f, 0x0169, 0x017b, 0x0181, 0x0186, 0x018c, 0x0197, - 0x019d, 0x01a5, 0x01aa, 0x01b1, 0x01b1, 0x01bb, 0x01c0, 0x01ce, - 0x01ce, 0x01ce, 0x01d5, 0x01dd, 0x01e5, 0x01e5, 0x01ec, 0x01f4, - // Entry 40 - 7F - 0x01fd, 0x020c, 0x0214, 0x0214, 0x021c, 0x0223, 0x0228, 0x0228, - 0x022f, 0x0237, 0x023e, 0x023e, 0x0246, 0x024a, 0x0257, 0x0260, - 0x0260, 0x0267, 0x026d, 0x0282, 0x028a, 0x028f, 0x029d, 0x029d, - 0x02a2, 0x02ab, 0x02b3, 0x02b8, 0x02bc, 0x02c5, 0x02d5, 0x02db, - 0x02db, 0x02e5, 0x02e9, 0x02f3, 0x02fa, 0x02fa, 0x02fa, 0x0302, - 0x0309, 0x030e, 0x0316, 0x0316, 0x031f, 0x0326, 0x032d, 0x032d, - 0x0337, 0x0351, 0x0356, 0x035b, 0x0363, 0x0369, 0x0369, 0x0371, - 0x0376, 0x037d, 0x0384, 0x038e, 0x0396, 0x039f, 0x03a5, 0x03b9, - // Entry 80 - BF - 0x03c6, 0x03d3, 0x03d9, 0x03e6, 0x03f0, 0x03f6, 0x03fd, 0x0408, - 0x0415, 0x041d, 0x0424, 0x042b, 0x0433, 0x043d, 0x0444, 0x0449, - 0x044f, 0x0455, 0x045c, 0x045c, 0x045c, 0x0466, 0x0474, 0x047e, - 0x0483, 0x048b, 0x0493, 0x0493, 0x04a7, 0x04b1, 0x04bb, 0x04c5, - 0x04ca, 0x04d7, 0x04df, 0x04e6, 0x04ec, 0x04f3, 0x04fb, 0x0502, - 0x0513, 0x0519, 0x0527, 0x0530, 0x0539, 0x0541, 0x0548, 0x054e, - 0x0553, 0x0557, 0x0565, 0x056a, 0x0570, 0x0575, 0x0586, 0x0597, - 0x059f, 0x05a8, 0x05af, 0x05c5, 0x05ce, 0x05d8, 0x05f2, 0x05fb, - // Entry C0 - FF - 0x05ff, 0x0608, 0x060e, 0x060e, 0x0616, 0x061d, 0x061d, 0x0629, - 0x062f, 0x0636, 0x0644, 0x064b, 0x0652, 0x0658, 0x0660, 0x066b, - 0x0673, 0x0673, 0x067b, 0x0685, 0x068f, 0x0696, 0x069d, 0x06a5, - 0x06a5, 0x06ba, 0x06c8, 0x06c8, 0x06ce, 0x06d7, 0x06d7, 0x06ee, - 0x06f3, 0x06f3, 0x06f7, 0x0700, 0x070c, 0x0713, 0x071f, 0x072c, - 0x0732, 0x0737, 0x073c, 0x0750, 0x0756, 0x075e, 0x0766, 0x076c, - 0x0772, 0x0772, 0x0789, 0x0791, 0x079c, 0x07aa, 0x07c3, 0x07cf, - 0x07e5, 0x07fa, 0x0802, 0x0809, 0x081a, 0x081f, 0x081f, 0x0824, - // Entry 100 - 13F - 0x082b, 0x083d, 0x0842, 0x084a, - }, - }, - { // ki - "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + - "iaAntili za UholanziAngolaAjentinaSamoa ya MarekaniAustriaAustraliaA" + - "rubaAzabajaniBosnia na HezegovinaBabadosiBangladeshiUbelgijiBukinafa" + - "soBulgariaBahareniMburundiBeniniBermudaBruneiBoliviaBraziliBahamaBut" + - "aniBotswanaBelarusiBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhu" + - "ri ya Afrika ya KatiKongoUswisiKodivaaVisiwa vya CookChileKameruniCa" + - "inaKolombiaKostarikaKiumbaKepuvedeKuprosiJamhuri ya ChekiNjeremaniJi" + - "butiDenmakiDominikaJamhuri ya DominikaAljeriaEkwadoEstoniaMisriEritr" + - "eaHispaniaUhabeshiUfiniFijiVisiwa vya FalklandMikronesiaUbaranjaGabo" + - "niNgerethaGrenadaJojiaGwiyana ya UfaransaNganaJibraltaGrinlandiGambi" + - "aGineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiK" + - "orasiaHaitiHungariaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza ka" + - "tika Bahari HindiIrakiUajemiAislandiItaliaJamaikaNjorondaniNjabaniKe" + - "nyaKirigizistaniKambodiaKiribatiKomoroSantakitzi na NevisKorea Kaska" + - "ziniKorea KusiniKuwaitiVisiwa vya KaymanKazakistaniLaosiLebanoniSant" + - "alusiaLishenteniSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaM" + - "orokoMonakoMoldovaBukiniVisiwa vya MarshalMasedoniaMaliMyamaMongolia" + - "Visiwa vya Mariana vya KaskaziniMartinikiMoritaniaMontserratiMaltaMo" + - "risiModivuMalawiMeksikoMalesiaMsumbijiNamimbiaNyukaledoniaNijeriKisi" + - "wa cha NorfokNainjeriaNikaragwaUholanziNorweNepaliNauruNiueNyuziland" + - "iOmaniPanamaPeruPolinesia ya UfaransaPapuaFilipinoPakistaniPolandiSa" + - "ntapieri na MikeloniPitkairniPwetorikoUkingo wa Magharibi na Ukanda " + - "wa Gaza wa PalestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiRwa" + - "ndaSaudiVisiwa vya SolomonShelisheliSudaniUswidiSingapooSantahelenaS" + - "loveniaSlovakiaSiera LeoniSamarinoSenegaliSomariaSurinamuSao Tome na" + - " PrincipeElsavadoSiriaUswaziVisiwa vya Turki na KaikoChadiTogoTailan" + - "diTajikistaniTokelauTimori ya MasharikiTurukimenistaniTunisiaTongaUt" + - "urukiTrinidad na TobagoTuvaluTaiwaniTanzaniaUkrainiUgandaAmerikaUrug" + - "waiUzibekistaniVatikaniSantavisenti na GrenadiniVenezuelaVisiwa vya " + - "Virgin vya UingerezaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWa" + - "lis na FutunaSamoaYemeniMayotteAfrika KusiniZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, - 0x004a, 0x005c, 0x0062, 0x0062, 0x006a, 0x007b, 0x0082, 0x008b, - 0x0090, 0x0090, 0x0099, 0x00ad, 0x00b5, 0x00c0, 0x00c8, 0x00d2, - 0x00da, 0x00e2, 0x00ea, 0x00f0, 0x00f0, 0x00f7, 0x00fd, 0x0104, - 0x0104, 0x010b, 0x0111, 0x0117, 0x0117, 0x011f, 0x0127, 0x012d, - 0x0133, 0x0133, 0x0153, 0x016c, 0x0171, 0x0177, 0x017e, 0x018d, - 0x0192, 0x019a, 0x019f, 0x01a7, 0x01a7, 0x01b0, 0x01b6, 0x01be, - 0x01be, 0x01be, 0x01c5, 0x01d5, 0x01de, 0x01de, 0x01e4, 0x01eb, - // Entry 40 - 7F - 0x01f3, 0x0206, 0x020d, 0x020d, 0x0213, 0x021a, 0x021f, 0x021f, - 0x0226, 0x022e, 0x0236, 0x0236, 0x023b, 0x023f, 0x0252, 0x025c, - 0x025c, 0x0264, 0x026a, 0x0272, 0x0279, 0x027e, 0x0291, 0x0291, - 0x0296, 0x029e, 0x02a7, 0x02ad, 0x02b1, 0x02ba, 0x02c3, 0x02ca, - 0x02ca, 0x02d3, 0x02d7, 0x02e0, 0x02e6, 0x02e6, 0x02e6, 0x02ef, - 0x02f6, 0x02fb, 0x0303, 0x0303, 0x030c, 0x0314, 0x031b, 0x031b, - 0x0320, 0x0345, 0x034a, 0x0350, 0x0358, 0x035e, 0x035e, 0x0365, - 0x036f, 0x0376, 0x037b, 0x0388, 0x0390, 0x0398, 0x039e, 0x03b1, - // Entry 80 - BF - 0x03c0, 0x03cc, 0x03d3, 0x03e4, 0x03ef, 0x03f4, 0x03fc, 0x0406, - 0x0410, 0x0419, 0x0420, 0x0426, 0x042e, 0x0437, 0x043e, 0x0443, - 0x0449, 0x044f, 0x0456, 0x0456, 0x0456, 0x045c, 0x046e, 0x0477, - 0x047b, 0x0480, 0x0488, 0x0488, 0x04a8, 0x04b1, 0x04ba, 0x04c5, - 0x04ca, 0x04d0, 0x04d6, 0x04dc, 0x04e3, 0x04ea, 0x04f2, 0x04fa, - 0x0506, 0x050c, 0x051d, 0x0526, 0x052f, 0x0537, 0x053c, 0x0542, - 0x0547, 0x054b, 0x0555, 0x055a, 0x0560, 0x0564, 0x0579, 0x057e, - 0x0586, 0x058f, 0x0596, 0x05ac, 0x05b5, 0x05be, 0x05f0, 0x05f5, - // Entry C0 - FF - 0x05fa, 0x0602, 0x0608, 0x0608, 0x0611, 0x0618, 0x0618, 0x061d, - 0x0623, 0x0628, 0x063a, 0x0644, 0x064a, 0x0650, 0x0658, 0x0663, - 0x066b, 0x066b, 0x0673, 0x067e, 0x0686, 0x068e, 0x0695, 0x069d, - 0x069d, 0x06b1, 0x06b9, 0x06b9, 0x06be, 0x06c4, 0x06c4, 0x06dd, - 0x06e2, 0x06e2, 0x06e6, 0x06ee, 0x06f9, 0x0700, 0x0713, 0x0722, - 0x0729, 0x072e, 0x0735, 0x0747, 0x074d, 0x0754, 0x075c, 0x0763, - 0x0769, 0x0769, 0x0770, 0x0777, 0x0783, 0x078b, 0x07a4, 0x07ad, - 0x07cc, 0x07ea, 0x07f3, 0x07fa, 0x0809, 0x080e, 0x080e, 0x0814, - // Entry 100 - 13F - 0x081b, 0x0828, 0x082e, 0x0836, - }, - }, - { // kk - kkRegionStr, - kkRegionIdx, - }, - { // kkj - "KamÉ›run", - []uint16{ // 50 elements - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0008, - }, - }, - { // kl - "Kalaallit Nunaat", - []uint16{ // 91 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0010, - }, - }, - { // kln - "Emetab AndorraEmetab kibagenge nebo arabukEmetab AfghanistanEmetab Antig" + - "ua ak BarbudaEmetab AnguillaEmetab AlbaniaEmetab ArmeniaEmetab Antil" + - "e nebo HolandEmetab AngolaEmetab ArgentinaEmetab American SamoaEmeta" + - "b AustriaEmetab AustraliaEmetab ArubaEmetab AzerbaijanEmetab Bosnia " + - "ak HerzegovinaEmetab BarbadosEmetab BangladeshEmetab BelgiumEmetab B" + - "urkina FasoEmetab BulgariaEmetab BahrainEmetab BurundiEmetab BeninEm" + - "etab BermudaEmetab BruneiEmetab BoliviaEmetab BrazilEmetab BahamasEm" + - "etab BhutanEmetab BotswanaEmetab BelarusEmetab BelizeEmetab CanadaEm" + - "etab Congo - KinshasaEmetab Afrika nebo KwenEmetab Congo - Brazzavil" + - "leEmetab SwitzerlandEmetab Côte d’IvoireIkwembeyotab CookEmetab Chil" + - "eEmetab CameroonEmetab ChinaEmetab ColombiaEmetab Costa RicaEmetab C" + - "ubaIkwembeyotab Cape VerdeEmetab CyprusEmetab Czech RepublicEmetab G" + - "erumanEmetab DjiboutiEmetab DenmarkEmetab DominicaEmetab Dominican R" + - "epublicEmetab AlgeriaEmetab EcuadorEmetab EstoniaEmetab MisiriEmetab" + - " EritreaEmetab SpainEmetab EthiopiaEmetab FinlandEmetab FijiIkwembey" + - "otab FalklandEmetab MicronesiaEmetab FranceEmetab GabonEmetab Kibage" + - "nge nebo UingerezaEmetab GrenadaEmetab GeorgiaEmetab Guiana nebo Ufa" + - "ransaEmetab GhanaEmetab GibraltarEmetab GreenlandEmetab GambiaEmetab" + - " GuineaEmetab GuadeloupeEmetab Equatorial GuineaEmetab GreeceEmetab " + - "GuatemalaEmetab GuamEmetab Guinea-BissauEmetab GuyanaEmetab Honduras" + - "Emetab CroatiaEmetab HaitiEmetab HungaryEmetab IndonesiaEmetab Irela" + - "ndEmetab IsraelEmetab IndiaKebebertab araraitab indian Ocean nebo Ui" + - "ngeresaEmetab IraqEmetab IranEmetab IcelandEmetab ItalyEmetab Jamaic" + - "aEmetab JordanEmetab JapanEmetab KenyaEmetab KyrgyzstanEmetab Cambod" + - "iaEmetab KiribatiEmetab ComorosEmetab Saint Kitts ak NevisEmetab Kor" + - "ea nebo murot katamEmetab korea nebo murot taiEmetab KuwaitIkwembeyo" + - "tab CaymanEmetab KazakhstanEmetab LaosEmetab LebanonEmetab Lucia NeE" + - "metab LiechtensteinEmetab Sri LankaEmetab LiberiaEmetab LesothoEmeta" + - "b LithuaniaEmetab LuxembourgEmetab LatviaEmetab LibyaEmetab MoroccoE" + - "metab MonacoEmetab MoldovaEmetab MadagascarIkwembeiyotab MarshallEme" + - "tab MacedoniaEmetab MaliEmetab MyanmarEmetab MongoliaIkwembeiyotab M" + - "ariana nebo murot katamEmetab MartiniqueEmetab MauritaniaEmetab Mont" + - "serratEmetab MaltaEmetab MauritiusEmetab MaldivesEmetab MalawiEmetab" + - " MexicoEmetab MalaysiaEmetab MozambiqueEmetab NamibiaEmetab New Cale" + - "doniaEmetab nigerIkwembeiyotab NorforkEmetab NigeriaEmetab Nicaragua" + - "Emetab HolandEmetab NorwayEmetab NepalEmetab NauruEmetab NiueEmetab " + - "New ZealandEmetab OmanEmetab PanamaEmetab PeruEmetab Polynesia nebo " + - "ufaransaEmetab Papua New GuineaEmetab PhilippinesEmetab PakistanEmet" + - "ab PolandEmetab Peter Ne titil ak MiquelonEmetab PitcairnEmetab Puer" + - "to RicoEmetab PalestineEmetab PortugalEmetab PalauEmetab ParaguayEme" + - "tab QatarEmetab RéunionEmetab RomaniaEmetab RussiaEmetab RwandaEmeta" + - "b Saudi ArabiaIkwembeiyotab SolomonEmetab SeychellesEmetab SudanEmet" + - "ab SwedenEmetab SingaporeEmetab Helena Ne tililEmetab SloveniaEmetab" + - " SlovakiaEmetab Sierra LeoneEmetab San MarinoEmetab SenegalEmetab So" + - "maliaEmetab SurinameEmetab São Tomé and PríncipeEmetab El SalvadorEm" + - "etab SyriaEmetab SwazilandIkwembeiyotab Turks ak CaicosEmetab ChadEm" + - "etab TogoEmetab ThailandEmetab TajikistanEmetab TokelauEmetab Timor " + - "nebo Murot taiEmetab TurkmenistanEmetab TunisiaEmetab TongaEmetab Tu" + - "rkeyEmetab Trinidad ak TobagoEmetab TuvaluEmetab TaiwanEmetab Tanzan" + - "iaEmetab UkrainieEmetab UgandaEmetab amerikaEmetab UruguayEmetab Uzi" + - "bekistaniEmetab VaticanEmetab Vincent netilil ak GrenadinesEmetab Ve" + - "nezuelaIkwembeyotab British VirginIkwemweiyotab AmerikaEmetab Vietna" + - "mEmetab VanuatuEmetab Walis ak FutunaEmetab SamoaEmetab YemenEmetab " + - "MayotteEmetab Afrika nebo Murot taiEmetab ZambiaEmetab Zimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x000e, 0x002a, 0x003c, 0x0055, 0x0064, 0x0072, - 0x0080, 0x0099, 0x00a6, 0x00a6, 0x00b6, 0x00cb, 0x00d9, 0x00e9, - 0x00f5, 0x00f5, 0x0106, 0x0122, 0x0131, 0x0142, 0x0150, 0x0163, - 0x0172, 0x0180, 0x018e, 0x019a, 0x019a, 0x01a8, 0x01b5, 0x01c3, - 0x01c3, 0x01d0, 0x01de, 0x01eb, 0x01eb, 0x01fa, 0x0208, 0x0215, - 0x0222, 0x0222, 0x0239, 0x0250, 0x026a, 0x027c, 0x0293, 0x02a4, - 0x02b0, 0x02bf, 0x02cb, 0x02da, 0x02da, 0x02eb, 0x02f6, 0x030d, - 0x030d, 0x030d, 0x031a, 0x032f, 0x033d, 0x033d, 0x034c, 0x035a, - // Entry 40 - 7F - 0x0369, 0x0382, 0x0390, 0x0390, 0x039e, 0x03ac, 0x03b9, 0x03b9, - 0x03c7, 0x03d3, 0x03e2, 0x03e2, 0x03f0, 0x03fb, 0x0410, 0x0421, - 0x0421, 0x042e, 0x043a, 0x0459, 0x0467, 0x0475, 0x0490, 0x0490, - 0x049c, 0x04ac, 0x04bc, 0x04c9, 0x04d6, 0x04e7, 0x04ff, 0x050c, - 0x050c, 0x051c, 0x0527, 0x053b, 0x0548, 0x0548, 0x0548, 0x0557, - 0x0565, 0x0571, 0x057f, 0x057f, 0x058f, 0x059d, 0x05aa, 0x05aa, - 0x05b6, 0x05e6, 0x05f1, 0x05fc, 0x060a, 0x0616, 0x0616, 0x0624, - 0x0631, 0x063d, 0x0649, 0x065a, 0x0669, 0x0678, 0x0686, 0x06a1, - // Entry 80 - BF - 0x06be, 0x06d9, 0x06e6, 0x06f9, 0x070a, 0x0715, 0x0723, 0x0732, - 0x0746, 0x0756, 0x0764, 0x0772, 0x0782, 0x0793, 0x07a0, 0x07ac, - 0x07ba, 0x07c7, 0x07d5, 0x07d5, 0x07d5, 0x07e6, 0x07fc, 0x080c, - 0x0817, 0x0825, 0x0834, 0x0834, 0x085a, 0x086b, 0x087c, 0x088d, - 0x0899, 0x08a9, 0x08b8, 0x08c5, 0x08d2, 0x08e1, 0x08f2, 0x0900, - 0x0914, 0x0920, 0x0935, 0x0943, 0x0953, 0x0960, 0x096d, 0x0979, - 0x0985, 0x0990, 0x09a2, 0x09ad, 0x09ba, 0x09c5, 0x09e3, 0x09fa, - 0x0a0c, 0x0a1b, 0x0a28, 0x0a49, 0x0a58, 0x0a6a, 0x0a7a, 0x0a89, - // Entry C0 - FF - 0x0a95, 0x0aa4, 0x0ab0, 0x0ab0, 0x0abf, 0x0acd, 0x0acd, 0x0ada, - 0x0ae7, 0x0afa, 0x0b0f, 0x0b20, 0x0b2c, 0x0b39, 0x0b49, 0x0b5f, - 0x0b6e, 0x0b6e, 0x0b7d, 0x0b90, 0x0ba1, 0x0baf, 0x0bbd, 0x0bcc, - 0x0bcc, 0x0beb, 0x0bfd, 0x0bfd, 0x0c09, 0x0c19, 0x0c19, 0x0c36, - 0x0c41, 0x0c41, 0x0c4c, 0x0c5b, 0x0c6c, 0x0c7a, 0x0c95, 0x0ca8, - 0x0cb6, 0x0cc2, 0x0ccf, 0x0ce8, 0x0cf5, 0x0d02, 0x0d11, 0x0d20, - 0x0d2d, 0x0d2d, 0x0d3b, 0x0d49, 0x0d5c, 0x0d6a, 0x0d8e, 0x0d9e, - 0x0db9, 0x0dce, 0x0ddc, 0x0dea, 0x0e00, 0x0e0c, 0x0e0c, 0x0e18, - // Entry 100 - 13F - 0x0e26, 0x0e42, 0x0e4f, 0x0e5e, - }, - }, - { // km - kmRegionStr, - kmRegionIdx, - }, - { // kn - knRegionStr, - knRegionIdx, - }, - { // ko - koRegionStr, - koRegionIdx, - }, - { // kok - "भारत", - []uint16{ // 113 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x000c, - }, - }, - { // ks - "اٮ۪نڑورامÙØªØ­Ø¯Û Ø¹Ø±ÙŽØ¨ اماراتاَÙغانَستاناٮ۪نٹÙÚ¯Ùوا تÛÙ• باربوڑاانگوئیلااٮ۪لب" + - "انÙیااَرمانÙیانَیدَرلینٛڑٕس اٮ۪نٹَیلٕسانگولااینٹارٹÙکاأرجَنٹینااَمر" + - "یٖکَن سَمواآسٹÙیاآسٹریلÙیااَروٗباایلینٛڑ جٔزیٖرٕآزَرباجانبوسنÙیا تÛ" + - "Ù• ÛَرزÙگووÙناباربیڈاسبَنٛگلادیشبیٛلجÙیَمبÙرکÙنا ÙیسوبَلجیرÙیابحریٖن" + - "بورَنڈÙبÙÙ†Ùنسینٛٹ بارتَھیلمیبٔرمیوڈابÙرنٔےبولÙÙˆÙیابرطانوی Ù‚ÙطبÛ٠جَ" + - "نوٗبی علاقÛٕبرٛازÙلبَÛامَسبوٗٹانبووَٹ جٔزیٖرٕبوتَسوانابیلاروٗسبیلÙج" + - "کینَڑاکوکَس کیٖلÙÙ†Ù›Ú¯ جٔزیٖرٕکونٛگو Ú©Ùنشاسامرکٔزی اَÙریٖکی جموٗریَتک" + - "ونٛگو بٔرٛزاوÙلیسÙÙˆÙزَرلینٛڑاَیوٕری کوسٹکÙÚ© جٔزیٖرٕچÙلیکیٚمÙروٗنچیٖ" + - "نکولَمبÙیاکوسٹا رÙکاکیوٗباکیپ ؤرڑیکرÙسمَس جٔزیٖرٕسایÙرٛسچیک جَموٗرÙ" + - "یَتجرمٔنیجÙبوٗتیڈینٛمارٕکڈومÙÙ†ÙکاڈومÙÙ†ÙÚ©ÙŽÙ† جموٗرÙیَتاٮ۪لجیرÙیااÙکوا" + - "ڑورایسٹونÙیامÙسٔرمشرÙÙ‚ÛŒ سَÛارااÙرٕٹÙیاسٕپیناÙتھوپÙیاÙÙنلینٛڑÙÙجیÙٕل" + - "اکلینٛڑ جٔزیٖرٕÙرٛانسگیبانیÙنایٹÙÚ‘ Ú©ÙنٛگڈَمگرٛنیڑاجارجÙیاÙرٛانسÙسی " + - "Ú¯ÙاناگیوَنَرسےگاناجÙبرالٹَرگریٖنلینٛڑگَمبÙیاگÙنیگَواڑیلوپاÙÚ©ÙˆÙٹورÙÛŒ" + - "ÙŽÙ„ Ú¯Ùنیگریٖسجنوٗبی جارجÙیا تÛÙ• جنوٗبی سینٛڑوٕچ جٔزیٖرٕگوتیدالاگÙوام" + - "گیٖنی بÙساوگÙیاناÛانٛگ کانٛگ ایس اے آر چیٖنÛَرٕڑ جٔزیٖرٕ تÛÙ• مٮ۪کڈو" + - "نالڑٕ جٔزیٖرٕÛانٛڈوٗرÙسکرٛوشÙیاÛایتیÛَنٛگریاÙنڑونیشÙیااَیَرلینٛڑاÙس" + - "رایٖلآیÙÙ„ آ٠میٛنÛÙنٛدوستانبرطانوی بحر٠ÛÙÙ†Ù›Ø¯Û Ø¹Ù„Ø§Ù‚Ûٕایٖراقایٖراناَ" + - "ÛŒÙسلینٛڑاÙٹلیجٔرسیجَمایکاجاپانکÙنٛیاکÙرگÙستانکَمبوڑÙیاکÙرٕباتیکَمور" + - "َسسینٛٹ Ú©Ùٹَس تÛÙ• نیوÙسشÙمٲلی کورÙیاجنوٗبی کورÙیاکÙویتکیمَن جٔزیٖرٕ" + - "کَزاکÙستانلاسلٮ۪بنانسینٛٹ لوٗسÙیالÙکٹیٛسٹیٖنسÙریٖلَنٛکالایبیرÙیالیس" + - "وتھولÙتھÙوانÙیالَکسَمبٔرٕگلیٛٹوÙیالÙبیاموروکومونیٚکومولڑاوÙیاموٹونی" + - "Ù›Ú¯Ùریوسینٛٹ مارٹÙنمیڑاگاسکارمارشَل جٔزیٖرٕمٮ۪سوڑونÙیامالیمَیَنما بٔ" + - "رمامَنٛگولÙیامَکاوو ایس اے آر چیٖنشÙمٲلی مارÙیانا جٔزیٖرٕمارٹÙÙ†Ùکما" + - "رٕٹانÙیامانٛٹسیراٹمالٹامورÙشَسمالدیٖوملاویمٮ۪کسÙکومَلیشÙیاموزَمبÙÚ©Ù†" + - "امÙبÙیانÙÙˆ کیلÙڑونÙیانایجَرنارÙاک جٔزیٖرٕنایجیرÙیاناکاراگÙوانیٖدَرل" + - "ینٛڑناروےنیپالنارووٗنیوٗنیوٗزÙلینٛڑاومانپَناماپیٖروٗÙرٛانسی پولÙنیش" + - "ÙیاپاپÙوا نیوٗ گیٖنیÙÙÙ„ÙÙ¾ÙینسپاکÙستانپولینٛڑسینٛٹ پیٖری تÛÙ• موکیلÙÛŒ" + - "َنپÙÙ¹Ú©ÛŒØ±Ù•Ù†Û Ø¬Ù”Ø²ÛŒÙ–Ø±Ù•Ù¾Ù”Ø±Ù¹Ùˆ رÙÚ©ÙˆÙَلَستیٖنپÙرتÙگالپَلاوپَراگÙÛ’Ù‚ÙŽØ·ÙرآوÙÙ¹" + - "لاینÙÚ¯ اوشینÙیارÙیوٗنÙیَنرومانÙیاسَربÙیاروٗسروٗوانٛڈاسوٗدی عربÙÛŒÛسو" + - "لامان جٔزیٖرٕسیشَلÙسسوٗڈانسÙÙˆÙڈَنٛسÙنٛگاپوٗرسینٛٹ ÛÙ®ÛªÙ„ÙناسَلووینÙیا" + - "سَوالبریڑ تÛÙ• جان ماییڑسَلوواکÙیاسیٖرالیوونسین میرÙنوسینیگَلسومالÙÛŒ" + - "اسÙرÙنامساو توم تÛÙ• پرٛنسÙپیاٮ۪ل سَلواڑورشامسÙوزÙلینٛڑتÙرÙÚ© تÛÙ• کیک" + - "وس جٔزیٖرٕچاڑÙرٛانسÙسی جَنوٗبی عَلاقÛٕٹوگوتھایلینٛڑتاجکÙستانتوکیلاو" + - "مَشرÙÙ‚ÛŒ تایمورتÙرمÙÙ†ÙستانٹونیشÙیاٹونٛگاتÙرکیٹرٛنÙنداد تÛÙ• ٹوبیگوتوٗ" + - "والوٗتایوانتَنجانÙیایوٗرÙکینیوٗگانٛڑایوٗنایٹÙÚ‘ سÙٹیٹÙس ماینَر آوÙٹل" + - "ییÙÙ†Ù›Ú¯ جٔزیٖرٕیوٗنایٹÙÚ‘ سÙٹیٹÙسیوٗروگےاÙزبÙÚ©ÙستانویٹÙÚ©ÙŽÙ† سÙٹیسینٛٹ " + - "وینسٮ۪ٹ تÛÙ• گرٛیناڑاینٕزوینازوٗلابَرطانوی ؤرجÙÙ† جٔزیٖرٕیوٗ ایس ؤرجÙ" + - "Ù† جٔزیٖرٕویٹÙناموانوٗتوٗوالÙس تÛÙ• Ùیوٗچوٗناسیمووایَمَنمَییٹجَنوٗبی " + - "اَÙریٖکاجامبÙیازÙمبابےنامعلوٗم تÛÙ• نالَگÛار عَلاقÛٕدÙنیااَÙریٖکاشÙÙ…" + - "ٲلی اَمریٖکاجَنوٗنی اَمرٖیٖکااوشَنیامَغریٖبی اَÙریٖکامرکٔزی اَمریٖک" + - "امَشرÙÙ‚ÛŒ اَÙریٖکاشÙمٲلی اَÙریٖکاوسطی اَÙریٖکاجنوٗبی اَÙریٖکااَمریٖک" + - "َسشÙمٲلی اَمریٖکا خٕطÛٕکَرÙببیٖنمَشرÙÙ‚ÛŒ ایشیاجنوٗبی ایشیاجنوٗبÛÙ Ù…ÙŽ" + - "شرÙÙ‚ÛŒ ایشیاجنوٗبی یوٗرَپآسٹریلیا تÛÙ• Ù†ÙوزÙلینٛڑمٮ۪لَنیٖشÙیامَیکرونَ" + - "یشÙیَن خٕطÛٕپالنیشÙیاایشیامرکٔزی ایشیامَغرÙبی ایشیایوٗرَپمشرÙÙ‚ÛŒ یوٗ" + - "رَپشÙمٲلی یوٗرَپمغرÙبی یوٗرَپلاطیٖنی اَمریٖکا تÛÙ• کیرَبیٖن", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0010, 0x0032, 0x0048, 0x0072, 0x0082, 0x0096, - 0x00a8, 0x00d7, 0x00e3, 0x00f7, 0x0109, 0x0126, 0x0132, 0x0144, - 0x0152, 0x016f, 0x0181, 0x01ad, 0x01bd, 0x01d1, 0x01e3, 0x01fa, - 0x020c, 0x0218, 0x0226, 0x0230, 0x024f, 0x025f, 0x026b, 0x027b, - 0x02b2, 0x02c0, 0x02ce, 0x02da, 0x02f3, 0x0305, 0x0315, 0x031f, - 0x032b, 0x0355, 0x0370, 0x039e, 0x03bf, 0x03d7, 0x03ee, 0x0403, - 0x040b, 0x041d, 0x0425, 0x0437, 0x0437, 0x044a, 0x0456, 0x0465, - 0x0465, 0x0482, 0x0490, 0x04ab, 0x04b7, 0x04b7, 0x04c5, 0x04d7, - // Entry 40 - 7F - 0x04e7, 0x050c, 0x0520, 0x0520, 0x0530, 0x0542, 0x054c, 0x0565, - 0x0575, 0x057f, 0x0591, 0x0591, 0x05a1, 0x05a9, 0x05cc, 0x05cc, - 0x05cc, 0x05d8, 0x05e2, 0x0603, 0x0611, 0x061f, 0x063c, 0x064e, - 0x0656, 0x0668, 0x067c, 0x068a, 0x0692, 0x06a4, 0x06c5, 0x06cf, - 0x071e, 0x072e, 0x0738, 0x074d, 0x0759, 0x0788, 0x07ce, 0x07e2, - 0x07f2, 0x07fc, 0x080a, 0x080a, 0x0820, 0x0834, 0x0844, 0x085a, - 0x086e, 0x089f, 0x08ab, 0x08b7, 0x08cb, 0x08d5, 0x08df, 0x08ed, - 0x08ed, 0x08f7, 0x0903, 0x0915, 0x0927, 0x0937, 0x0945, 0x096c, - // Entry 80 - BF - 0x0985, 0x099e, 0x09a8, 0x09c1, 0x09d5, 0x09db, 0x09e9, 0x0a02, - 0x0a18, 0x0a2e, 0x0a40, 0x0a4e, 0x0a64, 0x0a7a, 0x0a8a, 0x0a94, - 0x0aa0, 0x0aae, 0x0ac0, 0x0ad8, 0x0aef, 0x0b03, 0x0b1e, 0x0b34, - 0x0b3c, 0x0b55, 0x0b69, 0x0b8f, 0x0bbb, 0x0bcb, 0x0bdf, 0x0bf3, - 0x0bfd, 0x0c0b, 0x0c19, 0x0c23, 0x0c33, 0x0c43, 0x0c53, 0x0c63, - 0x0c7e, 0x0c8a, 0x0ca5, 0x0cb7, 0x0ccb, 0x0ce1, 0x0ceb, 0x0cf5, - 0x0d01, 0x0d09, 0x0d1f, 0x0d29, 0x0d35, 0x0d41, 0x0d64, 0x0d84, - 0x0d96, 0x0da6, 0x0db4, 0x0de3, 0x0e04, 0x0e17, 0x0e29, 0x0e39, - // Entry C0 - FF - 0x0e43, 0x0e51, 0x0e5b, 0x0e80, 0x0e94, 0x0ea4, 0x0eb2, 0x0eba, - 0x0ecc, 0x0ee3, 0x0f00, 0x0f0e, 0x0f1a, 0x0f28, 0x0f3e, 0x0f57, - 0x0f6b, 0x0f96, 0x0faa, 0x0fbe, 0x0fd1, 0x0fdf, 0x0fef, 0x0ffd, - 0x0ffd, 0x1022, 0x103b, 0x103b, 0x1041, 0x1055, 0x1055, 0x1080, - 0x1086, 0x10b6, 0x10be, 0x10d0, 0x10e2, 0x10f0, 0x110b, 0x1121, - 0x1131, 0x113d, 0x1147, 0x116d, 0x117d, 0x1189, 0x119b, 0x11ab, - 0x11bd, 0x1211, 0x1232, 0x1240, 0x1256, 0x126d, 0x12a6, 0x12b8, - 0x12e2, 0x1309, 0x1317, 0x1327, 0x134b, 0x1357, 0x1357, 0x1361, - // Entry 100 - 13F - 0x136b, 0x138a, 0x1398, 0x13a6, 0x13dd, 0x13e7, 0x13f7, 0x1414, - 0x1435, 0x1443, 0x1464, 0x1481, 0x14a0, 0x14bd, 0x14d6, 0x14f3, - 0x1505, 0x152d, 0x153f, 0x1558, 0x156f, 0x1597, 0x15b0, 0x15dc, - 0x15f4, 0x161b, 0x162d, 0x1637, 0x164e, 0x1667, 0x1673, 0x168c, - 0x16a5, 0x16be, 0x16f5, - }, - }, - { // ksb - "AndolaFalme za KialabuAfuganistaniAntigua na BalbudaAnguillaAlbaniaAlmen" + - "iaAntili za UholanziAngolaAjentinaSamoa ya MalekaniAustliaAustlaliaA" + - "lubaAzabajaniBosnia na HezegovinaBabadosiBangladeshiBukinafasoBulgal" + - "iaBahaleniBulundiBeniniBelmudaBluneiBoliviaBlaziliBahamaButaniBotswa" + - "naBelalusiBelizeKanadaJamhuli ya Kidemoklasia ya KongoJamhuli ya Afr" + - "ika ya GatiKongoUswisiKodivaaVisiwa vya CookChileKameluniChinaKolomb" + - "iaKostalikaKubaKepuvedeKuplosiJamhuli ya ChekiUjeumaniJibutiDenmakiD" + - "ominikaJamhuli ya DominikaAljeliaEkwadoEstoniaMisliElitleaHispaniaUh" + - "abeshiUfiniFijiVisiwa vya FalklandMiklonesiaUfalansaGaboniUingeezaGl" + - "enadaJojiaGwiyana ya UfalansaGhanaJiblaltaGlinlandiGambiaGineGwadelu" + - "peGinekwetaUgiikiGwatemalaGwamGinebisauGuyanaHonduasiKolasiaHaitiHun" + - "galiaIndonesiaAyalandiIslaeliIndiaEneo ja Uingeeza mwe Bahali HindiI" + - "lakiUajemiAislandiItaliaJamaikaYoldaniJapaniKenyaKiigizistaniKambodi" + - "aKiibatiKomoloSantakitzi na NevisKolea KaskaziniKolea KusiniKuwaitiV" + - "isiwa vya KaymanKazakistaniLaosiLebanoniSantalusiaLishenteniSililank" + - "aLibeliaLesotoLitwaniaLasembagiLativiaLibyaMolokoMonakoMoldovaBukini" + - "Visiwa vya MashalMasedoniaMaliMyamaMongoliaVisiwa vya Maliana vya Ka" + - "skaziniMaltinikiMaulitaniaMontselatiMaltaMolisiModivuMalawiMeksikoMa" + - "lesiaMsumbijiNamibiaNyukaledoniaNaijaKisiwa cha NolfokNaijeliaNikala" + - "gwaUholanziNolweiNepaliNauluNiueNyuzilandiOmaniPanamaPeluPolinesia y" + - "a UfalansaPapuaFilipinoPakistaniPolandiSantapieli na MikeloniPitkail" + - "niPwetolikoUkingo wa Maghalibi na Ukanda wa Gaza wa PalestinaUlenoPa" + - "lauPalagwaiKataliLiyunioniLomaniaUlusiLwandaSaudiVisiwa vya SolomonS" + - "helisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiela LeoniS" + - "amalinoSenegaliSomaliaSulinamuSao Tome na PlincipeElsavadoSiliaUswaz" + - "iVisiwa vya Tulki na KaikoChadiTogoTailandiTajikistaniTokelauTimoli " + - "ya MashalikiTulukimenistaniTunisiaTongaUtulukiTlinidad na TobagoTuva" + - "luTaiwaniTanzaniaUklainiUgandaMalekaniUlugwaiUzibekistaniVatikaniSan" + - "tavisenti na GlenadiniVenezuelaVisiwa vya Vilgin vya UingeezaVisiwa " + - "vya Vilgin vya MalekaniVietinamuVanuatuWalis na FutunaSamoaYemeniMay" + - "otteAflika KusiniZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, - 0x004a, 0x005c, 0x0062, 0x0062, 0x006a, 0x007b, 0x0082, 0x008b, - 0x0090, 0x0090, 0x0099, 0x00ad, 0x00b5, 0x00c0, 0x00c0, 0x00ca, - 0x00d2, 0x00da, 0x00e1, 0x00e7, 0x00e7, 0x00ee, 0x00f4, 0x00fb, - 0x00fb, 0x0102, 0x0108, 0x010e, 0x010e, 0x0116, 0x011e, 0x0124, - 0x012a, 0x012a, 0x014a, 0x0163, 0x0168, 0x016e, 0x0175, 0x0184, - 0x0189, 0x0191, 0x0196, 0x019e, 0x019e, 0x01a7, 0x01ab, 0x01b3, - 0x01b3, 0x01b3, 0x01ba, 0x01ca, 0x01d2, 0x01d2, 0x01d8, 0x01df, - // Entry 40 - 7F - 0x01e7, 0x01fa, 0x0201, 0x0201, 0x0207, 0x020e, 0x0213, 0x0213, - 0x021a, 0x0222, 0x022a, 0x022a, 0x022f, 0x0233, 0x0246, 0x0250, - 0x0250, 0x0258, 0x025e, 0x0266, 0x026d, 0x0272, 0x0285, 0x0285, - 0x028a, 0x0292, 0x029b, 0x02a1, 0x02a5, 0x02ae, 0x02b7, 0x02bd, - 0x02bd, 0x02c6, 0x02ca, 0x02d3, 0x02d9, 0x02d9, 0x02d9, 0x02e1, - 0x02e8, 0x02ed, 0x02f5, 0x02f5, 0x02fe, 0x0306, 0x030d, 0x030d, - 0x0312, 0x0333, 0x0338, 0x033e, 0x0346, 0x034c, 0x034c, 0x0353, - 0x035a, 0x0360, 0x0365, 0x0371, 0x0379, 0x0380, 0x0386, 0x0399, - // Entry 80 - BF - 0x03a8, 0x03b4, 0x03bb, 0x03cc, 0x03d7, 0x03dc, 0x03e4, 0x03ee, - 0x03f8, 0x0401, 0x0408, 0x040e, 0x0416, 0x041f, 0x0426, 0x042b, - 0x0431, 0x0437, 0x043e, 0x043e, 0x043e, 0x0444, 0x0455, 0x045e, - 0x0462, 0x0467, 0x046f, 0x046f, 0x048f, 0x0498, 0x04a2, 0x04ac, - 0x04b1, 0x04b7, 0x04bd, 0x04c3, 0x04ca, 0x04d1, 0x04d9, 0x04e0, - 0x04ec, 0x04f1, 0x0502, 0x050a, 0x0513, 0x051b, 0x0521, 0x0527, - 0x052c, 0x0530, 0x053a, 0x053f, 0x0545, 0x0549, 0x055e, 0x0563, - 0x056b, 0x0574, 0x057b, 0x0591, 0x059a, 0x05a3, 0x05d5, 0x05da, - // Entry C0 - FF - 0x05df, 0x05e7, 0x05ed, 0x05ed, 0x05f6, 0x05fd, 0x05fd, 0x0602, - 0x0608, 0x060d, 0x061f, 0x0629, 0x062f, 0x0635, 0x063d, 0x0648, - 0x0650, 0x0650, 0x0658, 0x0663, 0x066b, 0x0673, 0x067a, 0x0682, - 0x0682, 0x0696, 0x069e, 0x069e, 0x06a3, 0x06a9, 0x06a9, 0x06c2, - 0x06c7, 0x06c7, 0x06cb, 0x06d3, 0x06de, 0x06e5, 0x06f8, 0x0707, - 0x070e, 0x0713, 0x071a, 0x072c, 0x0732, 0x0739, 0x0741, 0x0748, - 0x074e, 0x074e, 0x0756, 0x075d, 0x0769, 0x0771, 0x078a, 0x0793, - 0x07b1, 0x07cf, 0x07d8, 0x07df, 0x07ee, 0x07f3, 0x07f3, 0x07f9, - // Entry 100 - 13F - 0x0800, 0x080d, 0x0813, 0x081b, - }, - }, - { // ksf - "andÉ”rÇbÇlɔŋ bÇ kaksa bÉ› táatáaÅ‹zÇnafganistáŋantiga ri barbúdaangiyaalban" + - "íarmÉ›níantíyÇ nÉ›landéangólaarjÇntínsamÉ”a a amÉ›rikaotricÉ”stralíaruba" + - "azabecánbÉ”snyÉ› ri hÉ›rsÇgÉ”vínbaabaadÇbaÅ‹ladÉ›ÌcbÉ›ljíkbukína fÇÌ asÉ”bul" + - "garíbarÇÌnburundíbÉ›nÇÌnbɛɛmúdÇbrunÇÌbɔɔlívíbrÉ›sílbaamásbutánbotswana" + - "bÉ›larisbÉ›lizkanadakÉ”ngó anyÉ”ÌnsantrafríkkÉ”ngóswískÉ”tiwuárzÉ› i kúkcíl" + - "ikamÉ›rúncínkolÉ”mbíkÉ”staríkakubakapvÉ›rcíprÉ›cÉ›ÌkdjÉ›rmandyibutídanmakdÉ”" + - "minikdÉ”minik rÉ›publíkaljÉ›ríɛkwatÉ›ÇÌÉ›stoníɛjíptÉ›ritrÉ›ÌkpanyáɛtyÉ”pífín" + - "lanfíjizÇ maalwínmikronÉ›ÌsipÉ›rÉ›sÇÌgabɔŋkÇlɔŋ kÇ kÇtáatáaÅ‹zÇngrÉ›nadÇj" + - "É”rjíguyán i pÉ›rÉ›sÇÌgánajibraltágrínlangambíginÉ›ÌgwadÉ›lúpginÉ›Ì É›kwat" + - "É”rialgrÉ›ÌkgwátÇmalagwámginÉ›Ì bisÉ”ÌguyánÉ”nduraskrwasíayitiÉ”ngríindon" + - "É›síilánisraÉ›ÌlindízÇ ingÉ›rís ncÉ”Ìm wa indiirákiráŋzÇ i glásitalíjam" + - "aíkjÉ”rdánjapÉ”ÌÅ‹kÉ›nyakigistáŋkambodjkiribátikomÉ”rsÉ›nkrÇstÉ”Ìf ri nyÉ›Ìv" + - "ÇkorÉ›anÉ”ÌrkorÉ›asudkuwÉ›itzÇ i gankazakstáŋlaÉ”slibáŋsÉ›ntlísílictÉ›nstÉ›" + - "ÌnsrílaÅ‹kalibÉ›ryalÇsótolitwaníluksÉ›mbúrlÉ›tonílibímarÉ”kmonakomÉ”ldaví" + - "madagaskazÇ i marcálmásÇdwánmalimyanmármɔŋolízÇ maryánnÉ”Ìrmatiníkmwa" + - "ritanímÉ”nsÉ›ratmaltÇmwarísmaldivÇmalawimÉ›ksíkmalÉ›símosambíknamibíkalÉ›" + - "doní anyÉ”ÌnnijÉ›ÌrzÉ› nÉ”ÌfÉ”lknijÉ›ÌryaníkarágwakÇlɔŋ kÇ Ã¡zÇnÉ”rvÉ›jÇnÉ›pal" + - "nwarúniwÉ›ÌzÉ›lan anyÉ”ÌnomanpanamapÉ›rúpÉ”linÉ›sí a pÉ›rÉ›sÇÌpapwazí ginÉ›Ì " + - "anyÉ”ÌnfilipÇÌnpakistáŋpolÉ”ÌnsÉ›npyÉ›r ri mikÉ›lɔŋpitkÉ›ÌnpÉ”toríkozÇ palÉ›" + - "stínÇportugálpalwaparagwÉ›ÌkatárÉ›unyɔŋrÉ”manírisírwandaarabí saodízÇ s" + - "alomÉ”ÌnsÉ›cÉ›lsudanswÉ›dÇsiÅ‹apósÉ›ntÉ›ÌlenslovÉ›níslovakísyÉ›raleonsÉ›nmarÇn" + - "sÉ›nÉ›galsomalísurinamsaotomÉ›Ì ri priÅ‹sibsalvadÉ”rsiríswazilanzÇ tirk r" + - "i kakÉ”scaádtogotÉ›lantadjikistaÅ‹tokÇlaotimor anÇ Ã¡ É›sttirkmÉ›nistaÅ‹tun" + - "É›sítɔŋatirkítÉ›rinitÉ› ri tobagotuwalutÉ›wántanzaníukrainugandaamÉ›rika" + - "urugwÉ›ÌusbÉ›kistaÅ‹watikáŋsÉ›nvÇnsÇÅ‹ ri grÉ›nadínwÉ›nÇzwÉ›lazÇ bÉ› gÉ”n inÉ› " + - "a ingÉ›ríszÇ bÉ› gÉ”n inÉ› á amÉ›rikawyÉ›tnámwanwatuwalis ri futunasamÉ”ayÉ›" + - "mÉ›nmayÉ”Ìtafrik anÇ a sudzambízimbabwÉ›Ì", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0008, 0x002d, 0x0039, 0x004b, 0x0051, 0x0058, - 0x0060, 0x0072, 0x0079, 0x0079, 0x0083, 0x0094, 0x0099, 0x00a2, - 0x00a7, 0x00a7, 0x00b0, 0x00ca, 0x00d3, 0x00df, 0x00e7, 0x00f9, - 0x0101, 0x0109, 0x0111, 0x011a, 0x011a, 0x0125, 0x012d, 0x0138, - 0x0138, 0x0140, 0x0147, 0x014d, 0x014d, 0x0155, 0x015d, 0x0163, - 0x0169, 0x0169, 0x0179, 0x0184, 0x018b, 0x0190, 0x019a, 0x01a4, - 0x01a9, 0x01b2, 0x01b6, 0x01bf, 0x01bf, 0x01ca, 0x01ce, 0x01d5, - 0x01d5, 0x01d5, 0x01dc, 0x01e2, 0x01ea, 0x01ea, 0x01f2, 0x01f8, - // Entry 40 - 7F - 0x0200, 0x0213, 0x021b, 0x021b, 0x0227, 0x022f, 0x0236, 0x0236, - 0x0240, 0x0247, 0x0250, 0x0250, 0x0257, 0x025c, 0x0268, 0x0274, - 0x0274, 0x027f, 0x0286, 0x02a4, 0x02ad, 0x02b4, 0x02c8, 0x02c8, - 0x02cd, 0x02d6, 0x02de, 0x02e4, 0x02eb, 0x02f5, 0x0309, 0x0310, - 0x0310, 0x031b, 0x0320, 0x032f, 0x0335, 0x0335, 0x0335, 0x033d, - 0x0344, 0x0349, 0x0350, 0x0350, 0x035a, 0x035f, 0x0368, 0x0368, - 0x036d, 0x038a, 0x038f, 0x0395, 0x03a0, 0x03a6, 0x03a6, 0x03ad, - 0x03b5, 0x03be, 0x03c4, 0x03ce, 0x03d5, 0x03de, 0x03e4, 0x0400, - // Entry 80 - BF - 0x040c, 0x0415, 0x041c, 0x0425, 0x0430, 0x0435, 0x043c, 0x0447, - 0x0455, 0x045f, 0x0467, 0x046f, 0x0477, 0x0482, 0x048a, 0x048f, - 0x0495, 0x049b, 0x04a4, 0x04a4, 0x04a4, 0x04ad, 0x04ba, 0x04c5, - 0x04c9, 0x04d1, 0x04da, 0x04da, 0x04eb, 0x04f3, 0x04fd, 0x0507, - 0x050d, 0x0514, 0x051c, 0x0522, 0x052a, 0x0532, 0x053b, 0x0542, - 0x0555, 0x055d, 0x056b, 0x0575, 0x0580, 0x0592, 0x059c, 0x05a2, - 0x05a8, 0x05af, 0x05be, 0x05c2, 0x05c8, 0x05ce, 0x05e7, 0x0600, - 0x060a, 0x0614, 0x061c, 0x0633, 0x063c, 0x0646, 0x0656, 0x065f, - // Entry C0 - FF - 0x0664, 0x066e, 0x0673, 0x0673, 0x067d, 0x0685, 0x0685, 0x068a, - 0x0690, 0x069d, 0x06ab, 0x06b2, 0x06b7, 0x06be, 0x06c6, 0x06d2, - 0x06db, 0x06db, 0x06e3, 0x06ed, 0x06f7, 0x0700, 0x0707, 0x070e, - 0x070e, 0x0724, 0x072d, 0x072d, 0x0732, 0x073a, 0x073a, 0x074c, - 0x0751, 0x0751, 0x0755, 0x075b, 0x0767, 0x076f, 0x0781, 0x078f, - 0x0797, 0x079d, 0x07a3, 0x07b7, 0x07bd, 0x07c4, 0x07cc, 0x07d2, - 0x07d8, 0x07d8, 0x07e0, 0x07e9, 0x07f5, 0x07fe, 0x0819, 0x0825, - 0x0842, 0x085f, 0x0868, 0x086f, 0x087e, 0x0884, 0x0884, 0x088b, - // Entry 100 - 13F - 0x0893, 0x08a3, 0x08a9, 0x08b4, - }, - }, - { // ksh - "AßensionAndorraVereinschte Arrabesche EmmirateAfjaanistahnAntigwa un Bar" + - "budaAnggwillaAlbaanijeArrmeenijede Nederlängsche AntilleAngjoolader " + - "SödpolAjjentiinijeAmmerikaanesch SammohaÖösterischAustraalijeArubade" + - " Ohland-EnselleAsserbaidschahnBoßnije un Herzegovinade Ensel Barbado" + - "sBangladeschBelljeBukkinna-FaaseBulljaarijeBachrainBurundidä Beninde" + - " Zint Battälmi-Ensellede BermudasBruneiBolliivijede karribbesche Ned" + - "erlängBrasilijede BahamasButtaande Buvee-EnselBozwaanaWießrußlandBel" + - "izeKanadade Kokkos-Enselledä Konggo (Kinschasa)de Zäntraalaffrikaane" + - "sche Republikdä Konggo (Brassavill)de SchweizÄlfebeijn-Kößde Kuuk-En" + - "selleSchiileKammeruhnSchiinaKolumbijede Klipperton-EnselKostarikaKub" + - "ade kapvärdesche EnselleCuraçaode Weihnaachs-EnselZüpperede Tschäsch" + - "eiDoütschlandde Diego-Garcia-EnselDschibuttiDänemarkDominnikade Domm" + - "enekaanesche ReppublikAlljeerijeZe’uta un MeliijaÄkwadorÄßlandÄjüpte" + - "Wäß-SaharaÄritrejaSchpaanijeÄttijoopijede Europäjesche UnijonFinnlan" + - "dde Fidschi-Endellede Falkland-EnselleMikroneesijede Färrör-EnselleF" + - "rankrischJabuhnJruußbrettannijeJrenaadaJeorrjijeFranzüüsesch Jujaana" + - "JöönseiJaanaJibralltaaJröhnlandJambijaJinnehaJuadeluppÄquatorial Jin" + - "eejaJrieschelandSöd-Jeorjie un de södlijje Botteramms-EnselleJuwatem" + - "aalaJuhamJinneha_BißauJujaanaHongkongde Heart Ensel un de McDonald-E" + - "nselleHondurasKrowazijeHa’ittiUnjannde Kannaresche EnselleIndoneesij" + - "eIrrlandIßraälde Ensel MänIndijeBrettesche Besezunge em indesche Ooz" + - "ejahnIrakPersijeIßlandItaalijeJöösehJammaikaJordaanijeJapanKeenijaKi" + - "rrjiisijeKambodschaKiribatide KommooreZint Kitts un NevisNood-Koreja" + - "Söd-KorejaKuweitde Kaiman-EnselleKassakstahnLa’osLebbannonde Ensel Z" + - "int-LutschaLischteschteinSri LankaLibeerijaLesootoLittaueLuxembursch" + - "LätlandLibbijeMarokkoMonakkoMoldaavijeet Monteneejrode Zint-Määtes-E" + - "nselMaddajaskade Machschall-EnselleMazedoonijeMaaliBirmaMongjoleiMak" + - "aude nöödlijje Marijanne-EnselleMachtinikMautitaanijeMongßerratMalta" + - "MaurizijusMallediiveMalawiMäxikoMalaisijeMosambikNamiibijeNeuschottl" + - "andNijerde Noofok-EnselNikaraaguaNikaraaguwade NederlängNorrweejeNep" + - "allNauruNiueNeuseelandOmanPannamaPerruhFranzüüsesch PollineesijePapu" + - "wa NeujineejaFillipiinePakistahnPoleZint Pjäär un Mikelongde Pitkärn" + - "-EnselPochtorikoPalästinaPochtojallPallauParraguwaiKataaOzejaanije u" + - "ßerhallefRehunjohnRomäänijeSärbijeRußlandRuandaSaudi Arraabijede So" + - "lomone-Ensellede SeischälleNoodsudahnSchweedeSingjapuurde Ensel Zint" + - " Hellenaẞloveenijede Enselle Svalbard un Jan MayenẞlovakeiSjärra Lej" + - "oneSan-Marinoder SennejallSomaalijeSürinammSödsudahnZint Tommeh un P" + - "rintschipeÄl SlavadoorZint MaartenSürijeẞwaasilandTristan da Cunjade" + - " Enselle Turks un Kaikosder TschaddFranzüüsesche Södsee-EnselleToojo" + - "TailandTadschikistahnTokelauOß-TimorTurkmenistahnTuneesijeTonggade T" + - "örkeiTrinidad un TobääjoTuvaluTaiwanTansanijade Ukra’iineUjandade V" + - "ereineschte Schtaate vun Amärrika ier ußerhallef jelääje Enselschede" + - " vereineschte Schtaate vun AmmärrikaUrrujwaiUßbeekistahnder Vattikah" + - "nZint Vinzänz un de Jrenadines-EnselleVenezuelade brettesche Juffer-" + - "Ensellede ammärrikahnesche Juffer-EnselleVijätnammVanuatuWallis un F" + - "utunaSammohaKosovoJämmeMajottde Republik SödaffrikaSambijaSimbabwe- " + - "Jääjend onbikannt -de ÄädAffrikaNood-AmärrikaSöd-AmärrikaOzejaanijeW" + - "äß-AffrikaMeddelammärrikaOß-AffrikaNood-AffrikaMeddel-AffrikaSöd-Af" + - "frikaAmmärrikader Norde vun Amärrikade KarribikOß-AasijeSöd-AasijeSö" + - "d-Oß-AasijeSöd-Europpade Rejjohn öm AustraalijeMellaneesijede Rejohn" + - " vun MikroneesejePolineesijeAasijeMeddelaasijeWäß-AasijeEuroppaOß-Eu" + - "roppaNood-EuroppaWäß-EuroppaLateinamärrika", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0009, 0x0010, 0x002f, 0x003b, 0x004d, 0x0056, 0x005f, - 0x0069, 0x0082, 0x008a, 0x0095, 0x00a1, 0x00b7, 0x00c3, 0x00ce, - 0x00d3, 0x00e4, 0x00f3, 0x010a, 0x011b, 0x0126, 0x012c, 0x013a, - 0x0145, 0x014d, 0x0154, 0x015d, 0x0176, 0x0181, 0x0187, 0x0191, - 0x01ab, 0x01b4, 0x01be, 0x01c5, 0x01d3, 0x01db, 0x01e8, 0x01ee, - 0x01f4, 0x0205, 0x021b, 0x023e, 0x0255, 0x025f, 0x026f, 0x027e, - 0x0285, 0x028e, 0x0295, 0x029e, 0x02b1, 0x02ba, 0x02be, 0x02d6, - 0x02de, 0x02f1, 0x02f9, 0x0307, 0x0313, 0x0328, 0x0332, 0x033b, - // Entry 40 - 7F - 0x0344, 0x0361, 0x036b, 0x037e, 0x0386, 0x038e, 0x0396, 0x03a2, - 0x03ab, 0x03b5, 0x03c1, 0x03d8, 0x03e0, 0x03f2, 0x0405, 0x0411, - 0x0424, 0x042e, 0x0434, 0x0445, 0x044d, 0x0456, 0x046c, 0x0475, - 0x047a, 0x0484, 0x048e, 0x0495, 0x049c, 0x04a5, 0x04b8, 0x04c4, - 0x04f3, 0x04fe, 0x0503, 0x0511, 0x0518, 0x0520, 0x0545, 0x054d, - 0x0556, 0x055f, 0x0565, 0x057b, 0x0586, 0x058d, 0x0595, 0x05a2, - 0x05a8, 0x05d1, 0x05d5, 0x05dc, 0x05e3, 0x05eb, 0x05f3, 0x05fb, - 0x0605, 0x060a, 0x0611, 0x061c, 0x0626, 0x062e, 0x0639, 0x064c, - // Entry 80 - BF - 0x0657, 0x0662, 0x0668, 0x0679, 0x0684, 0x068b, 0x0694, 0x06a9, - 0x06b7, 0x06c0, 0x06c9, 0x06d0, 0x06d7, 0x06e2, 0x06ea, 0x06f1, - 0x06f8, 0x06ff, 0x0709, 0x0717, 0x072d, 0x0737, 0x074c, 0x0757, - 0x075c, 0x0761, 0x076a, 0x076f, 0x078f, 0x0798, 0x07a4, 0x07af, - 0x07b4, 0x07be, 0x07c8, 0x07ce, 0x07d5, 0x07de, 0x07e6, 0x07ef, - 0x07fc, 0x0801, 0x0810, 0x081a, 0x0825, 0x0832, 0x083b, 0x0841, - 0x0846, 0x084a, 0x0854, 0x0858, 0x085f, 0x0865, 0x0880, 0x0891, - 0x089b, 0x08a4, 0x08a8, 0x08c0, 0x08d1, 0x08db, 0x08e5, 0x08ef, - // Entry C0 - FF - 0x08f5, 0x08ff, 0x0904, 0x091a, 0x0923, 0x092e, 0x0936, 0x093e, - 0x0944, 0x0953, 0x0966, 0x0974, 0x097e, 0x0986, 0x0990, 0x09a5, - 0x09b1, 0x09d1, 0x09db, 0x09e9, 0x09f3, 0x0a00, 0x0a09, 0x0a12, - 0x0a1c, 0x0a36, 0x0a43, 0x0a4f, 0x0a56, 0x0a62, 0x0a72, 0x0a8c, - 0x0a97, 0x0ab6, 0x0abb, 0x0ac2, 0x0ad0, 0x0ad7, 0x0ae0, 0x0aed, - 0x0af6, 0x0afc, 0x0b06, 0x0b1b, 0x0b21, 0x0b27, 0x0b30, 0x0b3e, - 0x0b44, 0x0b8e, 0x0bb5, 0x0bbd, 0x0bca, 0x0bd7, 0x0bfd, 0x0c06, - 0x0c22, 0x0c45, 0x0c4f, 0x0c56, 0x0c66, 0x0c6d, 0x0c73, 0x0c79, - // Entry 100 - 13F - 0x0c7f, 0x0c96, 0x0c9d, 0x0ca5, 0x0cbc, 0x0cc4, 0x0ccb, 0x0cd9, - 0x0ce7, 0x0cf1, 0x0cfe, 0x0d0e, 0x0d19, 0x0d25, 0x0d33, 0x0d3f, - 0x0d49, 0x0d60, 0x0d6b, 0x0d75, 0x0d80, 0x0d8f, 0x0d9b, 0x0db5, - 0x0dc1, 0x0ddb, 0x0de6, 0x0dec, 0x0df8, 0x0e04, 0x0e0b, 0x0e16, - 0x0e22, 0x0e2f, 0x0e3e, - }, - }, - { // kw - "Rywvaneth Unys", - []uint16{ // 84 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x000e, - }, - }, - { // ky - kyRegionStr, - kyRegionIdx, - }, - { // lag - "AndóraÉ„temi wa KɨaráabuAfuganisitáaniAntigúua na BaribúudaAnguíilaAlubán" + - "iaAriméniaAntili ya É„holáanziAngóolaAjentíinaSamóoa ya AmerɨÌkaÃusit" + - "iriaAusiteréeliaArúubaAzabajáaniBósiniaBabadóosiBangaladéeshiÉ„beligí" + - "ijiBukinafáasoBuligaríaBaharéeniBurúundiBeníiniBerimúudaBurunéeiBolí" + - "viaBrasíiliBaháamaButáaniBotiswáanaBelarúusiBelíiseKánadaJamuhúuri y" + - "a Kɨdemokurasía ya KóongoJuhúuri ya Afɨrɨka ya katɨ katɨKóongoUswíis" + - "iIvori KositiVisíiwa vya KúukuChíileKamerúuniChíinaKolómbiaKósita Rɨ" + - "ÌɨkaKyúubaKepuvéedeKupuróosiJamuhúuri ya ChéekiÉ„jerumáaniJibúutiDen" + - "imakiDomínɨkaJamuhúuri ya DominɨkaAlijériaÃkwadoEstoníaMísiriEritere" + - "aHisipániaÉ„habéeshiUfíiniFíijiVisíiwa vya FakulandiMikironésiaÉ„faráa" + - "nsaGabóoniɄɨngeréesaGirenáadaJójiaGwiyáana yʉ É„faráansaGáanaJiburáli" + - "taGiriniláandiGámbiaGíineGwadelúupeGíine IkwéetaUgiríkiGwatemáalaGwa" + - "niGíine BisáauGuyáanaHonduráasiKoréshiaHaíitiHungáriaIndonésiaAyaláa" + - "ndiIsiraéeliÃndiaÆ—sɨ yʉ Ʉɨngeréesa irivii ra HíindiIráakiÉ„ajéemiAisi" + - "láandiItáliaJamáikaJódaniJapáaniKéenyaKirigisitáaniKambódiaKiribáati" + - "KomóoroMʉtakatíifu kitisi na NevíisiKoréa yʉ ʉtʉrʉkoKoréa ya SaameKʉ" + - "wáitiVisíiwa vya KayimaniKazakasitáaniLaóosiLebanóoniMʉtakatíifu Lus" + - "íiaLishentéeniSiriláankaLiibériaLesóotoLisuániaLasembáagiLativiaLíb" + - "iaMoróokoMonáakoMolidóovaBukíiniVisíiwa vya MarisháaliMasedóniaMáali" + - "MiáamaMongóliaVisiwa vya Mariana vya KaskaziniMaritiníikiMoritániaMo" + - "nteráatiMálitaMoríisiModíivuMaláawiMekisikoMaleísiaMusumbíijiNamíbia" + - "Kaledónia IfyaNíijaKisíiwa cha NofifóokiNiijériaNikarágʉaÉ„holáanziNo" + - "rweNepáaliNaúuruNiúueNyuzílandiÓmaniPanáamaPéeruPolinésia yʉ É„faráan" + - "saPapúuaUfilipíinoPakisitáaniPólandiMʉtakatíifu Peéteri na MɨkaéeliP" + - "atikaíriniPwetorɨÌɨkoMweemberera wa kʉmweeri wa GáazaÉ„réenoPaláauPar" + - "aguáaiKatáariReyunióoniRomaníiaUrúusiRwáandaSaudíia ArabíiaVisíiwa v" + - "ya SolomóoniShelishéeliSudáaniUswíidiSingapooMʉtakatíifu HeléenaSulo" + - "véniaSulováakiaSeraleóoniSamaríinoSenegáaliSomáliaSurináamuSao Tóome" + - " na PirinsipeElisalivadoSíriaÉ„swáaziVisíiwa vya Turíiki na KaíikoChá" + - "adiTóogoTáilandiTajikisitáaniTokeláauTimóori yi ItʉʉmbaUturukimenisi" + - "táaniTunísiaTóongaUturúukiTiriníida ya TobáagoTuváaluTaiwáaniTaansan" + - "íaÉ„kɨréeniÉ„gáandaAmerɨkaUruguáaiUsibekisitáaniVatikáaniMʉtakatíifu " + - "Viséenti na GernadíiniVenezuéelaVisíiwa vya Vigíini vya ɄɨngeréesaVi" + - "síiwa vya Vigíini vya AmerɨÌkaVietináamuVanuáatuWalíisi na FutúunaSa" + - "móoaYémeniMayóoteAfɨrɨka ya SaameSámbiaSimbáabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x001b, 0x002a, 0x0041, 0x004a, 0x0053, - 0x005c, 0x0071, 0x0079, 0x0079, 0x0083, 0x0098, 0x00a2, 0x00af, - 0x00b6, 0x00b6, 0x00c1, 0x00c9, 0x00d3, 0x00e1, 0x00ed, 0x00f9, - 0x0103, 0x010d, 0x0116, 0x011e, 0x011e, 0x0128, 0x0131, 0x0139, - 0x0139, 0x0142, 0x014a, 0x0152, 0x0152, 0x015d, 0x0167, 0x016f, - 0x0176, 0x0176, 0x019e, 0x01c2, 0x01c9, 0x01d1, 0x01dd, 0x01f0, - 0x01f7, 0x0201, 0x0208, 0x0211, 0x0211, 0x0222, 0x0229, 0x0233, - 0x0233, 0x0233, 0x023d, 0x0252, 0x025e, 0x025e, 0x0266, 0x026e, - // Entry 40 - 7F - 0x0278, 0x028f, 0x0298, 0x0298, 0x029f, 0x02a7, 0x02ae, 0x02ae, - 0x02b6, 0x02c0, 0x02cb, 0x02cb, 0x02d2, 0x02d8, 0x02ee, 0x02fa, - 0x02fa, 0x0305, 0x030d, 0x031a, 0x0324, 0x032a, 0x0343, 0x0343, - 0x0349, 0x0354, 0x0361, 0x0368, 0x036e, 0x0379, 0x0388, 0x0390, - 0x0390, 0x039b, 0x03a0, 0x03ae, 0x03b6, 0x03b6, 0x03b6, 0x03c1, - 0x03ca, 0x03d1, 0x03da, 0x03da, 0x03e4, 0x03ee, 0x03f8, 0x03f8, - 0x03fe, 0x0427, 0x042e, 0x0437, 0x0442, 0x0449, 0x0449, 0x0451, - 0x0458, 0x0460, 0x0467, 0x0475, 0x047e, 0x0488, 0x0490, 0x04b0, - // Entry 80 - BF - 0x04c5, 0x04d4, 0x04dd, 0x04f2, 0x0500, 0x0507, 0x0511, 0x0526, - 0x0532, 0x053d, 0x0546, 0x054e, 0x0557, 0x0562, 0x0569, 0x056f, - 0x0577, 0x057f, 0x0589, 0x0589, 0x0589, 0x0591, 0x05a9, 0x05b3, - 0x05b9, 0x05c0, 0x05c9, 0x05c9, 0x05e9, 0x05f5, 0x05ff, 0x060a, - 0x0611, 0x0619, 0x0621, 0x0629, 0x0631, 0x063a, 0x0645, 0x064d, - 0x065c, 0x0662, 0x0679, 0x0682, 0x068d, 0x0698, 0x069d, 0x06a5, - 0x06ac, 0x06b2, 0x06bd, 0x06c3, 0x06cb, 0x06d1, 0x06eb, 0x06f2, - 0x06fd, 0x0709, 0x0711, 0x0735, 0x0741, 0x074f, 0x0771, 0x0779, - // Entry C0 - FF - 0x0780, 0x078a, 0x0792, 0x0792, 0x079d, 0x07a6, 0x07a6, 0x07ad, - 0x07b5, 0x07c6, 0x07dd, 0x07e9, 0x07f1, 0x07f9, 0x0801, 0x0817, - 0x0821, 0x0821, 0x082c, 0x0837, 0x0841, 0x084b, 0x0853, 0x085d, - 0x085d, 0x0874, 0x087f, 0x087f, 0x0885, 0x088e, 0x088e, 0x08ae, - 0x08b5, 0x08b5, 0x08bb, 0x08c4, 0x08d2, 0x08db, 0x08f0, 0x0903, - 0x090b, 0x0912, 0x091b, 0x0931, 0x0939, 0x0942, 0x094c, 0x0957, - 0x0960, 0x0960, 0x0968, 0x0971, 0x0980, 0x098a, 0x09b0, 0x09bb, - 0x09e2, 0x0a06, 0x0a11, 0x0a1a, 0x0a2e, 0x0a35, 0x0a35, 0x0a3c, - // Entry 100 - 13F - 0x0a44, 0x0a56, 0x0a5d, 0x0a67, - }, - }, - { // lb - "AscensionAndorraVereenegt Arabesch EmiraterAfghanistanAntigua a BarbudaA" + - "nguillaAlbanienArmenienAngolaAntarktisArgentinienAmerikanesch-SamoaÉ" + - "isträichAustralienArubaÃ…landinselenAserbaidschanBosnien an Herzegowi" + - "naBarbadosBangladeschBelschBurkina FasoBulgarienBahrainBurundiBeninS" + - "aint-BarthélemyBermudaBruneiBolivienKaribescht HollandBrasilienBaham" + - "asBhutanBouvetinselBotsuanaWäissrusslandBelizeKanadaKokosinselenKong" + - "o-KinshasaZentralafrikanesch RepublikKongo-BrazzavilleSchwäizElfebee" + - "küstCookinselenChileKamerunChinaKolumbienClipperton-InselCosta RicaK" + - "ubaKap VerdeCuraçaoChrëschtdagsinselZypernTschechienDäitschlandDiego" + - " GarciaDschibutiDänemarkDominicaDominikanesch RepublikAlgerienCeuta " + - "a MelillaEcuadorEstlandEgyptenWestsaharaEritreaSpanienEthiopienEurop" + - "äesch UniounFinnlandFidschiFalklandinselenMikronesienFäröerFrankräi" + - "chGabunGroussbritannienGrenadaGeorgienGuayaneGuernseyGhanaGibraltarG" + - "rönlandGambiaGuineaGuadeloupeEquatorialguineaGriichelandSüdgeorgien " + - "an déi Südlech SandwichinselenGuatemalaGuamGuinea-BissauGuyanaSpezia" + - "lverwaltungszon Hong KongHeard- a McDonald-InselenHondurasKroatienHa" + - "itiUngarnKanaresch InselenIndonesienIrlandIsraelIsle of ManIndienBri" + - "tescht Territorium am Indeschen OzeanIrakIranIslandItalienJerseyJama" + - "ikaJordanienJapanKeniaKirgisistanKambodschaKiribatiKomorenSt. Kitts " + - "an NevisNordkoreaSüdkoreaKuwaitKaimaninselenKasachstanLaosLibanonSt." + - " LuciaLiechtensteinSri LankaLiberiaLesothoLitauenLëtzebuergLettlandL" + - "ibyenMarokkoMonacoMoldawienMontenegroSt. MartinMadagaskarMarshallins" + - "elenMazedonienMaliMyanmarMongoleiSpezialverwaltungszon MacauNërdlech" + - " MarianenMartiniqueMauretanienMontserratMaltaMauritiusMaldivenMalawi" + - "MexikoMalaysiaMosambikNamibiaNeikaledonienNigerNorfolkinselNigeriaNi" + - "caraguaHollandNorwegenNepalNauruNiueNeiséilandOmanPanamaPeruFranséis" + - "ch-PolynesienPapua-NeiguineaPhilippinnenPakistanPolenSt. Pierre a Mi" + - "quelonPitcairninselenPuerto RicoPalestinensesch AutonomiegebidderPor" + - "tugalPalauParaguayKatarBaussecht OzeanienRéunionRumänienSerbienRussl" + - "andRuandaSaudi-ArabienSalomonenSeychellenSudanSchwedenSingapurSt. He" + - "lenaSlowenienSvalbard a Jan MayenSlowakeiSierra LeoneSan MarinoSeneg" + - "alSomaliaSurinameSüdsudanSão Tomé a PríncipeEl SalvadorSint MaartenS" + - "yrienSwasilandTristan da CunhaTurks- a CaicosinselenTschadFranséisch" + - " Süd- an AntarktisgebidderTogoThailandTadschikistanTokelauOsttimorTu" + - "rkmenistanTunesienTongaTierkeiTrinidad an TobagoTuvaluTaiwanTansania" + - "UkrainUgandaAmerikanesch-OzeanienVereenegt Staate vun AmerikaUruguay" + - "UsbekistanVatikanstadSt. Vincent an d’GrenadinnenVenezuelaBritesch J" + - "offereninselenAmerikanesch JoffereninselenVietnamVanuatuWallis a Fut" + - "unaSamoaKosovoJemenMayotteSüdafrikaSambiaSimbabweOnbekannt RegiounWe" + - "ltAfrikaNordamerikaSüdamerikaOzeanienWestafrikaMëttelamerikaOstafrik" + - "aNordafrikaZentralafrikaSüdlecht AfrikaAmerikaNërdlecht AmerikaKarib" + - "ikOstasienSüdasienSüdostasienSüdeuropaAustralien an NeiséilandMelane" + - "sienMikronesescht InselgebittPolynesienAsienZentralasienWestasienEur" + - "opaOsteuropaNordeuropaWesteuropaLatäinamerika", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0009, 0x0010, 0x002b, 0x0036, 0x0047, 0x004f, 0x0057, - 0x005f, 0x005f, 0x0065, 0x006e, 0x0079, 0x008b, 0x0096, 0x00a0, - 0x00a5, 0x00b2, 0x00bf, 0x00d5, 0x00dd, 0x00e8, 0x00ee, 0x00fa, - 0x0103, 0x010a, 0x0111, 0x0116, 0x0127, 0x012e, 0x0134, 0x013c, - 0x014e, 0x0157, 0x015e, 0x0164, 0x016f, 0x0177, 0x0185, 0x018b, - 0x0191, 0x019d, 0x01ab, 0x01c6, 0x01d7, 0x01df, 0x01eb, 0x01f6, - 0x01fb, 0x0202, 0x0207, 0x0210, 0x0220, 0x022a, 0x022e, 0x0237, - 0x023f, 0x0251, 0x0257, 0x0261, 0x026d, 0x0279, 0x0282, 0x028b, - // Entry 40 - 7F - 0x0293, 0x02a9, 0x02b1, 0x02c0, 0x02c7, 0x02ce, 0x02d5, 0x02df, - 0x02e6, 0x02ed, 0x02f6, 0x0308, 0x0310, 0x0317, 0x0326, 0x0331, - 0x0339, 0x0344, 0x0349, 0x0359, 0x0360, 0x0368, 0x036f, 0x0377, - 0x037c, 0x0385, 0x038e, 0x0394, 0x039a, 0x03a4, 0x03b4, 0x03bf, - 0x03ec, 0x03f5, 0x03f9, 0x0406, 0x040c, 0x042b, 0x0444, 0x044c, - 0x0454, 0x0459, 0x045f, 0x0470, 0x047a, 0x0480, 0x0486, 0x0491, - 0x0497, 0x04bf, 0x04c3, 0x04c7, 0x04cd, 0x04d4, 0x04da, 0x04e1, - 0x04ea, 0x04ef, 0x04f4, 0x04ff, 0x0509, 0x0511, 0x0518, 0x052a, - // Entry 80 - BF - 0x0533, 0x053c, 0x0542, 0x054f, 0x0559, 0x055d, 0x0564, 0x056d, - 0x057a, 0x0583, 0x058a, 0x0591, 0x0598, 0x05a3, 0x05ab, 0x05b1, - 0x05b8, 0x05be, 0x05c7, 0x05d1, 0x05db, 0x05e5, 0x05f4, 0x05fe, - 0x0602, 0x0609, 0x0611, 0x062c, 0x063e, 0x0648, 0x0653, 0x065d, - 0x0662, 0x066b, 0x0673, 0x0679, 0x067f, 0x0687, 0x068f, 0x0696, - 0x06a3, 0x06a8, 0x06b4, 0x06bb, 0x06c4, 0x06cb, 0x06d3, 0x06d8, - 0x06dd, 0x06e1, 0x06ec, 0x06f0, 0x06f6, 0x06fa, 0x0710, 0x071f, - 0x072b, 0x0733, 0x0738, 0x074d, 0x075c, 0x0767, 0x0788, 0x0790, - // Entry C0 - FF - 0x0795, 0x079d, 0x07a2, 0x07b4, 0x07bc, 0x07c5, 0x07cc, 0x07d4, - 0x07da, 0x07e7, 0x07f0, 0x07fa, 0x07ff, 0x0807, 0x080f, 0x0819, - 0x0822, 0x0836, 0x083e, 0x084a, 0x0854, 0x085b, 0x0862, 0x086a, - 0x0873, 0x0889, 0x0894, 0x08a0, 0x08a6, 0x08af, 0x08bf, 0x08d5, - 0x08db, 0x0901, 0x0905, 0x090d, 0x091a, 0x0921, 0x0929, 0x0935, - 0x093d, 0x0942, 0x0949, 0x095b, 0x0961, 0x0967, 0x096f, 0x0975, - 0x097b, 0x0990, 0x09ac, 0x09b3, 0x09bd, 0x09c8, 0x09e6, 0x09ef, - 0x0a07, 0x0a23, 0x0a2a, 0x0a31, 0x0a40, 0x0a45, 0x0a4b, 0x0a50, - // Entry 100 - 13F - 0x0a57, 0x0a61, 0x0a67, 0x0a6f, 0x0a80, 0x0a84, 0x0a8a, 0x0a95, - 0x0aa0, 0x0aa8, 0x0ab2, 0x0ac0, 0x0ac9, 0x0ad3, 0x0ae0, 0x0af0, - 0x0af7, 0x0b09, 0x0b10, 0x0b18, 0x0b21, 0x0b2d, 0x0b37, 0x0b50, - 0x0b5a, 0x0b73, 0x0b7d, 0x0b82, 0x0b8e, 0x0b97, 0x0b9d, 0x0ba6, - 0x0bb0, 0x0bba, 0x0bc8, - }, - }, - { // lg - "AndoraEmireetiAfaganisitaniAntigwa ne BarabudaAngwilaAlibaniyaArameniyaB" + - "izinga bya Antile eby’abaHolandiAngolaArigentinaSamowa omumerikaAwus" + - "ituriyaAwusitureliyaArubaAzerebayijaaniBoziniya HezegovinaBarabadosi" + - "BangaladesiBubirigiBurukina FasoBulugariyaBaareeniBurundiBeniniBerem" + - "udaBurunayiBoliviyaBuraziiriBahamasiButaaniBotiswanaBelarusiBelizeKa" + - "nadaKongo - ZayireLipubulika eya SenturafirikiKongoSwitizirandiKote " + - "DivwaBizinga bya KkukiCileKameruuniCayinaKolombyaKosita RikaCubaBizi" + - "nga by’e Kepu VerediSipuriyaLipubulika ya CeekaBudaakiJjibutiDenimaa" + - "kaDominikaLipubulika ya DominikaAligeryaEkwadoEsitoniyaMisiriEriture" + - "yaSipeyiniEsyopyaFinilandiFijiBizinga by’eFalikalandiMikuronezyaBufa" + - "lansaGaboniBungerezaGurenadaGyogyaGuyana enfalansaGanaGiburalitaGure" + - "nelandiGambyaGiniGwadalupeGayana ey’oku ekwetaBugereeki/BuyonaaniGwa" + - "temalaGwamuGini-BisawuGayanaHundurasiKurowesyaHayitiHangareYindonezy" + - "aAyalandiYisirayeriBuyindiBizinga by’eCagoYiraakaYiraaniAyisirandiYi" + - "taleJamayikaYorodaniJapaniKenyaKirigizisitaaniKambodyaKiribatiBizing" + - "a by’eKomoroSenti Kitisi ne NevisiKoreya ey’omumambukaKoreya ey’omum" + - "aserengetaKuwetiBizinga ebya KayimaaniKazakisitaaniLawosiLebanoniSen" + - "ti LuciyaLicitensitayiniSirilankaLiberyaLesosoLisuwenyaLukisembaagaL" + - "ativyaLibyaMorokoMonakoMolodovaMadagasikaBizinga bya MarisoMasedoniy" + - "aMaliMyanimaMongoliyaBizinga bya Mariyana eby’omumambukaMaritiniikiM" + - "awulitenyaMonteseraatiMalitaMawulisyasiBizinga by’eMalidiveMalawiMek" + - "isikoMalezyaMozambiikiNamibiyaKaledonya mupyaNijeKizinga ky’eNorofok" + - "oNayijeryaNikaraguwaHolandiNoweNepaloNawuruNiyuweNiyuziirandiOmaaniP" + - "anamaPeruPolinesiya enfalansaPapwa NyuginiBizinga bya FiripinoPakisi" + - "taaniPolandiSenti Piyere ne MikeloniPitikeeniPotorikoPalesitayiniPot" + - "ugaaliPalawuParagwayiKataaLeyunyoniLomaniyaLasaRwandaSawudarebya - B" + - "uwarabuBizanga by’eSolomooniSesereSudaaniSwideniSingapowaSenti Heren" + - "aSirovenyaSirovakyaSiyeralewoneSanimarinoSenegaaloSomaliyaSurinaamuS" + - "anitome ne PurincipeEl salivadoSiriyaSwazirandiBizinga by’eTaaka ne " + - "KayikosiCaadiTogoTayirandiTajikisitaaniTokelawuTimowaTakimenesitaani" + - "TunisyaTongaTtakeTurindaadi ne TobagoTuvaluTayiwaniTanzaniyaYukurayi" + - "neYugandaAmerikaWurugwayiWuzibekisitaaniVatikaaniSenti Vinsenti ne G" + - "urendadiiniVenzweraBizinga ebya Virigini ebitwalibwa BungerezaBizing" + - "a bya Virigini eby’AmerikaVyetinaamuVanawuwatuWalisi ne FutunaSamowa" + - "YemeniMayotteSawusafirikaZambyaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x000e, 0x001b, 0x002e, 0x0035, 0x003e, - 0x0047, 0x006a, 0x0070, 0x0070, 0x007a, 0x008a, 0x0095, 0x00a2, - 0x00a7, 0x00a7, 0x00b5, 0x00c8, 0x00d2, 0x00dd, 0x00e5, 0x00f2, - 0x00fc, 0x0104, 0x010b, 0x0111, 0x0111, 0x0119, 0x0121, 0x0129, - 0x0129, 0x0132, 0x013a, 0x0141, 0x0141, 0x014a, 0x0152, 0x0158, - 0x015e, 0x015e, 0x016c, 0x0188, 0x018d, 0x0199, 0x01a3, 0x01b4, - 0x01b8, 0x01c1, 0x01c7, 0x01cf, 0x01cf, 0x01da, 0x01de, 0x01f8, - 0x01f8, 0x01f8, 0x0200, 0x0213, 0x021a, 0x021a, 0x0221, 0x022a, - // Entry 40 - 7F - 0x0232, 0x0248, 0x0250, 0x0250, 0x0256, 0x025f, 0x0265, 0x0265, - 0x026e, 0x0276, 0x027d, 0x027d, 0x0286, 0x028a, 0x02a3, 0x02ae, - 0x02ae, 0x02b7, 0x02bd, 0x02c6, 0x02ce, 0x02d4, 0x02e4, 0x02e4, - 0x02e8, 0x02f2, 0x02fd, 0x0303, 0x0307, 0x0310, 0x0326, 0x0339, - 0x0339, 0x0342, 0x0347, 0x0352, 0x0358, 0x0358, 0x0358, 0x0361, - 0x036a, 0x0370, 0x0377, 0x0377, 0x0381, 0x0389, 0x0393, 0x0393, - 0x039a, 0x03ac, 0x03b3, 0x03ba, 0x03c4, 0x03ca, 0x03ca, 0x03d2, - 0x03da, 0x03e0, 0x03e5, 0x03f4, 0x03fc, 0x0404, 0x0418, 0x042e, - // Entry 80 - BF - 0x0444, 0x045e, 0x0464, 0x047a, 0x0487, 0x048d, 0x0495, 0x04a1, - 0x04b0, 0x04b9, 0x04c0, 0x04c6, 0x04cf, 0x04db, 0x04e2, 0x04e7, - 0x04ed, 0x04f3, 0x04fb, 0x04fb, 0x04fb, 0x0505, 0x0517, 0x0521, - 0x0525, 0x052c, 0x0535, 0x0535, 0x055a, 0x0565, 0x0570, 0x057c, - 0x0582, 0x058d, 0x05a3, 0x05a9, 0x05b1, 0x05b8, 0x05c2, 0x05ca, - 0x05d9, 0x05dd, 0x05f3, 0x05fc, 0x0606, 0x060d, 0x0611, 0x0617, - 0x061d, 0x0623, 0x062f, 0x0635, 0x063b, 0x063f, 0x0653, 0x0660, - 0x0674, 0x067f, 0x0686, 0x069e, 0x06a7, 0x06af, 0x06bb, 0x06c4, - // Entry C0 - FF - 0x06ca, 0x06d3, 0x06d8, 0x06d8, 0x06e1, 0x06e9, 0x06e9, 0x06ed, - 0x06f3, 0x0709, 0x0720, 0x0726, 0x072d, 0x0734, 0x073d, 0x0749, - 0x0752, 0x0752, 0x075b, 0x0767, 0x0771, 0x077a, 0x0782, 0x078b, - 0x078b, 0x07a0, 0x07ab, 0x07ab, 0x07b1, 0x07bb, 0x07bb, 0x07da, - 0x07df, 0x07df, 0x07e3, 0x07ec, 0x07f9, 0x0801, 0x0807, 0x0816, - 0x081d, 0x0822, 0x0827, 0x083b, 0x0841, 0x0849, 0x0852, 0x085c, - 0x0863, 0x0863, 0x086a, 0x0873, 0x0882, 0x088b, 0x08a9, 0x08b1, - 0x08dc, 0x08fe, 0x0908, 0x0912, 0x0922, 0x0928, 0x0928, 0x092e, - // Entry 100 - 13F - 0x0935, 0x0941, 0x0947, 0x094f, - }, - }, - { // lkt - "UÅ‹Äíyapi MakȟóÄhePÈŸeÄhókaÅ‹haÅ‹ska MakȟóÄheIyášiÄa MakȟóÄheSpayólaÈŸÄe MakÈŸ" + - "óÄheKisúŋla MakȟóÄheSpayóla MakȟóÄheMílahaÅ‹ska TÈŸamákÈŸoÄheMakȟásito" + - "mniHásapa MakȟáwitaKhéya WítaHazíla MakȟáwitaWašíÄu Makȟáwita", - []uint16{ // 287 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, - 0x0017, 0x0017, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, - 0x0037, 0x0037, 0x0037, 0x0037, 0x004d, 0x004d, 0x004d, 0x004d, - // Entry 40 - 7F - 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, - 0x004d, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, - 0x0066, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, - // Entry 80 - BF - 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, - 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, - 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, - 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, - 0x007b, 0x007b, 0x007b, 0x007b, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - // Entry C0 - FF - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, - 0x008f, 0x008f, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, - 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, - // Entry 100 - 13F - 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00b9, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00eb, 0x00eb, 0x00eb, 0x0100, - }, - }, - { // ln - "AndorÉ›LÉ›mila alaboAfiganisitáAntiga mpé BarbudaAngiyÉ›AlibaniAmÉ›niAntiyÉ› " + - "ya OlandÉ›AngólaAntarctiqueArizantinÉ›Samoa ya AmerikiOtilisiOsitáliAr" + - "ubaAzÉ›lÉ›baizáBosini mpé HezegovineBarÉ›badÉ›BengalidÉ›siBelezikiBukina " + - "FasoBiligariBahrÉ›nÉ›BurundiBenÉ›BermudaBrineyiBoliviBrezílÉ›BahamasÉ›But" + - "ániBotswanaByelorisiBelizÉ›KanadaRepibiki demokratiki ya KongóRepibi" + - "ki ya Afríka ya KátiKongoSwisÉ›KotídivualÉ›Bisanga bya KookÉ›SíliKamÉ›ru" + - "neSinÉ›KolombiKositarikaKibaBisanga bya KapevÉ›rÉ›SípÉ›lÉ›Repibiki TsekÉ›A" + - "lemaniDzibutiDanÉ›marikeDomínikeRepibiki ya DomínikÉ›AlizÉ›riEkwatÉ›ÌlÉ›E" + - "sitoniEzípiteElitelÉ›EsipanyeEtsíopiFilandÉ›FidziBisanga bya MaluniMik" + - "roneziFalánsÉ›GabÉ”AngÉ›lÉ›tÉ›ÌlÉ›GelenadÉ›ZorziGiyanÉ› ya FalánsÉ›GuerneseyG" + - "anaZibatalÉ›GowelandeGambiGinÉ›GwadÉ›lupÉ›GinÉ›ÌkwatÉ›ÌlÉ›GelekiÃŽles de Géo" + - "rgie du Sud et Sandwich du SudGwatémalaGwamÉ›GinÉ›bisauGiyaneIle Heard" + - " et Iles McDonaldOndurasÉ›KrowasiAyitiOngiliIndoneziIrelandÉ›IsirayelÉ›" + - "ÃndÉ›Mabelé ya AngÉ›lÉ›tÉ›ÌlÉ› na mbú ya IndiyaIrakiIrâIsilandÉ›ItaliZama" + - "ikiZÉ”daniZapÉ”KenyaKigizisitáKambodzaKiribatiKomorÉ›Sántu krístofe mpé" + - " Nevɛ̀sKorÉ› ya nÉ”ÌrdiKorÉ› ya súdiKowetiBisanga bya KayímaKazakisitáL" + - "awosiLibáSántu lisiLishÉ›teniSirilankaLibériyaLesotoLitwaniLikisambul" + - "uLetoniLibíMarokÉ›MonakoMolidaviMonténégroMadagasikariBisanga bya Mar" + - "ishalÉ›MasedwanÉ›MalíBirmanieMongolíBisanga bya MarianÉ› ya nÉ”ÌrdiMarti" + - "nikiMoritaniMÉ”seraMalitÉ›MorisÉ›MadívÉ›MalawiMeksikeMaleziMozambíkiNami" + - "biKaledoni ya sikaNizÉ›rÉ›Esanga NorfokÉ›NizeryaNikaragwaOlandÉ›NorivezÉ›" + - "NepálÉ›NauruNyuéZelandÉ› ya sikaOmánÉ›PanamaPéruPolinezi ya FalánsÉ›Papw" + - "azi GinÉ› ya sikaFilipinÉ›PakisitáPoloniSántu pététo mpé MikelÉ”Pikairn" + - "iPÉ”torikoPalÉ›sinePutúlugÉ›siPalauPalagweiKatariLenyoRomaniSerbieRisíR" + - "wandaAlabi SawuditÉ›Bisanga SolomÉ”SÉ›shÉ›lÉ›SudáSwédÉ›SingapurÉ›Sántu elen" + - "iSiloveniSilovakiSiera LeonÉ›Sántu MarinÉ›SenegalÉ›SomaliSurinamÉ›Sao To" + - "mé mpé PresipÉ›SavadÉ”rÉ›SiríSwazilandiBisanga bya Turki mpé KaikoTsádi" + - "Terres australes et antarctiques françaisesTogoTailandÉ›TazikisitáTok" + - "elauTimorÉ› ya MoniÉ›lÉ›TikÉ›ménisitáTiniziTongaTilikiTinidadÉ› mpé Tobag" + - "oTuvaluTaiwaninTanzaniIkrÉ›niUgandaAmerikiIrigweiUzibÉ›kisitáVatikáSán" + - "tu vesá mpé GelenadinÉ›VenézuelaBisanga bya Vierzi ya AngÉ›lÉ›tÉ›ÌlÉ›Bisa" + - "nga bya Vierzi ya AmerikiViyetinamÉ›VanuatuWalisÉ› mpé FutunaSamoaYemÉ›" + - "nÉ›MayotÉ›Afríka ya SúdiZambiZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x0014, 0x0020, 0x0033, 0x003a, 0x0041, - 0x0047, 0x0059, 0x0060, 0x006b, 0x0076, 0x0086, 0x008d, 0x0095, - 0x009a, 0x009a, 0x00a7, 0x00bd, 0x00c7, 0x00d3, 0x00db, 0x00e6, - 0x00ee, 0x00f7, 0x00fe, 0x0103, 0x0103, 0x010a, 0x0111, 0x0117, - 0x0117, 0x0120, 0x0129, 0x0130, 0x0130, 0x0138, 0x0141, 0x0148, - 0x014e, 0x014e, 0x016c, 0x0188, 0x018d, 0x0193, 0x01a0, 0x01b2, - 0x01b7, 0x01c0, 0x01c5, 0x01cc, 0x01cc, 0x01d6, 0x01da, 0x01f0, - 0x01f0, 0x01f0, 0x01f9, 0x0208, 0x020f, 0x020f, 0x0216, 0x0221, - // Entry 40 - 7F - 0x022a, 0x0240, 0x0248, 0x0248, 0x0254, 0x025b, 0x0263, 0x0263, - 0x026b, 0x0273, 0x027b, 0x027b, 0x0283, 0x0288, 0x029a, 0x02a3, - 0x02a3, 0x02ac, 0x02b1, 0x02c1, 0x02ca, 0x02cf, 0x02e3, 0x02ec, - 0x02f0, 0x02f9, 0x0302, 0x0307, 0x030c, 0x0317, 0x0329, 0x032f, - 0x035a, 0x0364, 0x036a, 0x0374, 0x037a, 0x037a, 0x0394, 0x039d, - 0x03a4, 0x03a9, 0x03af, 0x03af, 0x03b7, 0x03c0, 0x03ca, 0x03ca, - 0x03d0, 0x03fd, 0x0402, 0x0406, 0x040f, 0x0414, 0x0414, 0x041b, - 0x0422, 0x0427, 0x042c, 0x0437, 0x043f, 0x0447, 0x044e, 0x046c, - // Entry 80 - BF - 0x047d, 0x048b, 0x0491, 0x04a4, 0x04af, 0x04b5, 0x04ba, 0x04c5, - 0x04cf, 0x04d8, 0x04e1, 0x04e7, 0x04ee, 0x04f9, 0x04ff, 0x0504, - 0x050b, 0x0511, 0x0519, 0x0525, 0x0525, 0x0531, 0x0547, 0x0551, - 0x0556, 0x055e, 0x0566, 0x0566, 0x0586, 0x058f, 0x0597, 0x059e, - 0x05a5, 0x05ac, 0x05b4, 0x05ba, 0x05c1, 0x05c7, 0x05d1, 0x05d7, - 0x05e7, 0x05ef, 0x05fe, 0x0605, 0x060e, 0x0615, 0x061e, 0x0626, - 0x062b, 0x0630, 0x0640, 0x0647, 0x064d, 0x0652, 0x0667, 0x067c, - 0x0685, 0x068e, 0x0694, 0x06b0, 0x06b8, 0x06c1, 0x06ca, 0x06d6, - // Entry C0 - FF - 0x06db, 0x06e3, 0x06e9, 0x06e9, 0x06ee, 0x06f4, 0x06fa, 0x06ff, - 0x0705, 0x0714, 0x0723, 0x072d, 0x0732, 0x0739, 0x0743, 0x074f, - 0x0757, 0x0757, 0x075f, 0x076b, 0x0779, 0x0782, 0x0788, 0x0791, - 0x0791, 0x07a8, 0x07b2, 0x07b2, 0x07b7, 0x07c1, 0x07c1, 0x07dd, - 0x07e3, 0x080f, 0x0813, 0x081c, 0x0827, 0x082e, 0x0842, 0x0851, - 0x0857, 0x085c, 0x0862, 0x0877, 0x087d, 0x0885, 0x088c, 0x0893, - 0x0899, 0x0899, 0x08a0, 0x08a7, 0x08b4, 0x08bb, 0x08d8, 0x08e2, - 0x0908, 0x0925, 0x0930, 0x0937, 0x094a, 0x094f, 0x094f, 0x0957, - // Entry 100 - 13F - 0x095e, 0x096e, 0x0973, 0x097b, - }, - }, - { // lo - loRegionStr, - loRegionIdx, - }, - { // lt - ltRegionStr, - ltRegionIdx, - }, - { // lu - "AndoreLemila alabuAfuganisitaAntiga ne BarbudaAngiyeAlubaniAmeniAntiye w" + - "a OlandeAngolaAlijantineSamoa wa AmerikiOtilisiOsitaliArubaAjelbayid" + - "jaMbosini ne HezegovineBarebadeBenguladeshiBelejikiBukinafasoBiligar" + - "iBahreneBurundiBeneBermudaBrineyiMboliviMnulezileBahamaseButaniMbots" + - "wanaByelorisiBelizeKanadaDitunga wa KonguDitunga dya Afrika wa munka" + - "tshiKonguSwiseKotedivualeLutanda lua KookÉ›ShiliKameruneShineKolombiK" + - "ositarikaKubaLutanda lua KapeveleShipeleDitunga dya TshekaAlemanuDji" + - "butiDanemalakuDuminikuDitunga wa DuminikuAlijeriEkwateleEsitoniMushi" + - "diEliteleNsipaniEtshiopiFilandeFujiLutanda lua MaluniMikroneziNfalan" + - "seNgabuAngeleteleNgelenadeJorijiGiyane wa NfalanseNganaJibeletaleNgo" + - "welandeGambiNgineNgwadelupeGine EkwateleNgelekaNgwatemalaNgwameNgine" + - "bisauNgiyaneOnduraseKrowasiAyitiOngiliIndoneziIrelandeIsirayeleIndeL" + - "utanda lwa Angeletele ku mbu wa IndiyaIrakiIraIsilandeItaliJamaikiJo" + - "daniJapuKenyaKigizisitaKambodzaKiribatiKomoruSantu krístofe ne Neves" + - "Kore wa muuluKore wa mwinshiKowetiLutanda lua KayimaKazakusitaLawosi" + - "LibaSantu lisiLishuteniSirilankaLiberiyaLesotoLitwaniLikisambuluLeto" + - "niLibiMarokeMonakuMolidaviMadagasikariLutanda lua MarishaleMasedwane" + - "MaliMyamareMongoliLutanda lua Mariane wa muuluMartinikiMoritaniMuser" + - "aMaliteMoriseMadiveMalawiMeksikeMaleziMozambikiNamibiKaledoni wa mum" + - "uNijereLutanda lua NorfokNijeryaNikaragwaOlandÉ›NorivejeNepálÉ›NauruNy" + - "ueZelanda wa mumuOmanePanamaPeruPolinezi wa NfalansePapwazi wa NginÉ›" + - " wa mumuNfilipiPakisitaMpoloniSantu pététo ne MikeluPikairniMpotorik" + - "uPalesineMputulugeshiPalauPalagweiKatariLenyoRomaniRisiRwandaAlabu N" + - "sawudiLutanda lua SolomuSesheleSudaSuwediSingapureSantu eleniSiloven" + - "iSilovakiSiera LeoneSantu MarineSenegaleSomaliSurinameSao Tome ne Pr" + - "esipÉ›SavadoreSiriSwazilandiLutanda lua Tuluki ne KaikoTshadiToguTayi" + - "landaTazikisitaTokelauTimoru wa dibokuTukemenisitaTiniziTongaTulukiT" + - "inidade ne TobagoTuvaluTaiwaniTanzaniUkreniUgandaAmerikiIrigweiUzibe" + - "kisitaNvatikaSantu vesa ne NgelenadineVenezuelaLutanda lua Vierzi wa" + - " AngeleteleLutanda lua Vierzi wa AmerikiViyetinameVanuatuWalise ne F" + - "utunaSamoaYemenuMayoteAfrika ya SúdiZambiZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0012, 0x001d, 0x002e, 0x0034, 0x003b, - 0x0040, 0x0050, 0x0056, 0x0056, 0x0060, 0x0070, 0x0077, 0x007e, - 0x0083, 0x0083, 0x008e, 0x00a3, 0x00ab, 0x00b7, 0x00bf, 0x00c9, - 0x00d1, 0x00d8, 0x00df, 0x00e3, 0x00e3, 0x00ea, 0x00f1, 0x00f8, - 0x00f8, 0x0101, 0x0109, 0x010f, 0x010f, 0x0118, 0x0121, 0x0127, - 0x012d, 0x012d, 0x013d, 0x015c, 0x0161, 0x0166, 0x0171, 0x0183, - 0x0188, 0x0190, 0x0195, 0x019c, 0x019c, 0x01a6, 0x01aa, 0x01be, - 0x01be, 0x01be, 0x01c5, 0x01d7, 0x01de, 0x01de, 0x01e5, 0x01ef, - // Entry 40 - 7F - 0x01f7, 0x020a, 0x0211, 0x0211, 0x0219, 0x0220, 0x0227, 0x0227, - 0x022e, 0x0235, 0x023d, 0x023d, 0x0244, 0x0248, 0x025a, 0x0263, - 0x0263, 0x026b, 0x0270, 0x027a, 0x0283, 0x0289, 0x029b, 0x029b, - 0x02a0, 0x02aa, 0x02b4, 0x02b9, 0x02be, 0x02c8, 0x02d5, 0x02dc, - 0x02dc, 0x02e6, 0x02ec, 0x02f6, 0x02fd, 0x02fd, 0x02fd, 0x0305, - 0x030c, 0x0311, 0x0317, 0x0317, 0x031f, 0x0327, 0x0330, 0x0330, - 0x0334, 0x035b, 0x0360, 0x0363, 0x036b, 0x0370, 0x0370, 0x0377, - 0x037d, 0x0381, 0x0386, 0x0390, 0x0398, 0x03a0, 0x03a6, 0x03be, - // Entry 80 - BF - 0x03cb, 0x03da, 0x03e0, 0x03f2, 0x03fc, 0x0402, 0x0406, 0x0410, - 0x0419, 0x0422, 0x042a, 0x0430, 0x0437, 0x0442, 0x0448, 0x044c, - 0x0452, 0x0458, 0x0460, 0x0460, 0x0460, 0x046c, 0x0481, 0x048a, - 0x048e, 0x0495, 0x049c, 0x049c, 0x04b8, 0x04c1, 0x04c9, 0x04cf, - 0x04d5, 0x04db, 0x04e1, 0x04e7, 0x04ee, 0x04f4, 0x04fd, 0x0503, - 0x0513, 0x0519, 0x052b, 0x0532, 0x053b, 0x0542, 0x054a, 0x0552, - 0x0557, 0x055b, 0x056a, 0x056f, 0x0575, 0x0579, 0x058d, 0x05a6, - 0x05ad, 0x05b5, 0x05bc, 0x05d4, 0x05dc, 0x05e5, 0x05ed, 0x05f9, - // Entry C0 - FF - 0x05fe, 0x0606, 0x060c, 0x060c, 0x0611, 0x0617, 0x0617, 0x061b, - 0x0621, 0x062e, 0x0640, 0x0647, 0x064b, 0x0651, 0x065a, 0x0665, - 0x066d, 0x066d, 0x0675, 0x0680, 0x068c, 0x0694, 0x069a, 0x06a2, - 0x06a2, 0x06b6, 0x06be, 0x06be, 0x06c2, 0x06cc, 0x06cc, 0x06e7, - 0x06ed, 0x06ed, 0x06f1, 0x06fa, 0x0704, 0x070b, 0x071b, 0x0727, - 0x072d, 0x0732, 0x0738, 0x074a, 0x0750, 0x0757, 0x075e, 0x0764, - 0x076a, 0x076a, 0x0771, 0x0778, 0x0783, 0x078a, 0x07a3, 0x07ac, - 0x07cc, 0x07e9, 0x07f3, 0x07fa, 0x080a, 0x080f, 0x080f, 0x0815, - // Entry 100 - 13F - 0x081b, 0x082a, 0x082f, 0x0837, - }, - }, - { // luo - "AndorraUnited Arab EmiratesAfghanistanAntigua gi BarbudaAnguillaAlbaniaA" + - "rmeniaNetherlands AntillesAngolaArgentinaAmerican SamoaAustriaAustra" + - "liaArubaAzerbaijanBosnia gi HerzegovinaBarbadosBangladeshBelgiumBurk" + - "ina FasoBulgariaBahrainBurundiBeninBermudaBruneiBoliviaBrazilBahamas" + - "BhutanBotswanaBelarusBelizeCanadaDemocratic Republic of the CongoCen" + - "tral African RepublicCongoSwitzerlandCôte dCook IslandsChileCameroon" + - "ChinaColombiaCosta RicaCubaCape Verde IslandsCyprusCzech RepublicGer" + - "manyDjiboutiDenmarkDominicaDominican RepublicAlgeriaEcuadorEstoniaEg" + - "yptEritreaSpainEthiopiaFinlandFijiChuia mar FalklandMicronesiaFrance" + - "GabonUnited KingdomGrenadaGeorgiaFrench GuianaGhanaGibraltarGreenlan" + - "dGambiaGuineaGuadeloupeEquatorial GuineaGreeceGuatemalaGuamGuinea-Bi" + - "ssauGuyanaHondurasCroatiaHaitiHungaryIndonesiaIrelandIsraelIndiaBrit" + - "ish Indian Ocean TerritoryIraqIranIcelandItalyJamaicaJordanJapanKeny" + - "aKyrgyzstanCambodiaKiribatiComorosSaint Kitts gi NevisKorea MasawaKo" + - "rea MilamboKuwaitCayman IslandsKazakhstanLaosLebanonSaint LuciaLiech" + - "tensteinSri LankaLiberiaLesothoLithuaniaLuxembourgLatviaLibyaMorocco" + - "MonacoMoldovaMadagascarChuia mar MarshallMacedoniaMaliMyanmarMongoli" + - "aNorthern Mariana IslandsMartiniqueMauritaniaMontserratMaltaMauritiu" + - "sMaldivesMalawiMexicoMalaysiaMozambiqueNamibiaNew CaledoniaNigerChui" + - "a mar NorfolkNigeriaNicaraguaNetherlandsNorwayNepalNauruNiueNew Zeal" + - "andOmanPanamaPeruFrench PolynesiaPapua New GuineaPhilippinesPakistan" + - "PolandSaint Pierre gi MiquelonPitcairnPuerto RicoPalestinian West Ba" + - "nk gi GazaPortugalPalauParaguayQatarRéunionRomaniaRussiaRwandaSaudi " + - "ArabiaSolomon IslandsSeychellesSudanSwedenSingaporeSaint HelenaSlove" + - "niaSlovakiaSierra LeoneSan MarinoSenegalSomaliaSurinameSão Tomé gi P" + - "ríncipeEl SalvadorSyriaSwazilandTurks gi Caicos IslandsChadTogoThail" + - "andTajikistanTokelauEast TimorTurkmenistanTunisiaTongaTurkeyTrinidad" + - " gi TobagoTuvaluTaiwanTanzaniaUkraineUgandaUSAUruguayUzbekistanVatic" + - "an StateSaint Vincent gi GrenadinesVenezuelaBritish Virgin IslandsU." + - "S. Virgin IslandsVietnamVanuatuWallis gi FutunaSamoaYemenMayotteSout" + - "h AfricaZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x001b, 0x0026, 0x0038, 0x0040, 0x0047, - 0x004e, 0x0062, 0x0068, 0x0068, 0x0071, 0x007f, 0x0086, 0x008f, - 0x0094, 0x0094, 0x009e, 0x00b3, 0x00bb, 0x00c5, 0x00cc, 0x00d8, - 0x00e0, 0x00e7, 0x00ee, 0x00f3, 0x00f3, 0x00fa, 0x0100, 0x0107, - 0x0107, 0x010d, 0x0114, 0x011a, 0x011a, 0x0122, 0x0129, 0x012f, - 0x0135, 0x0135, 0x0155, 0x016d, 0x0172, 0x017d, 0x0184, 0x0190, - 0x0195, 0x019d, 0x01a2, 0x01aa, 0x01aa, 0x01b4, 0x01b8, 0x01ca, - 0x01ca, 0x01ca, 0x01d0, 0x01de, 0x01e5, 0x01e5, 0x01ed, 0x01f4, - // Entry 40 - 7F - 0x01fc, 0x020e, 0x0215, 0x0215, 0x021c, 0x0223, 0x0228, 0x0228, - 0x022f, 0x0234, 0x023c, 0x023c, 0x0243, 0x0247, 0x0259, 0x0263, - 0x0263, 0x0269, 0x026e, 0x027c, 0x0283, 0x028a, 0x0297, 0x0297, - 0x029c, 0x02a5, 0x02ae, 0x02b4, 0x02ba, 0x02c4, 0x02d5, 0x02db, - 0x02db, 0x02e4, 0x02e8, 0x02f5, 0x02fb, 0x02fb, 0x02fb, 0x0303, - 0x030a, 0x030f, 0x0316, 0x0316, 0x031f, 0x0326, 0x032c, 0x032c, - 0x0331, 0x034f, 0x0353, 0x0357, 0x035e, 0x0363, 0x0363, 0x036a, - 0x0370, 0x0375, 0x037a, 0x0384, 0x038c, 0x0394, 0x039b, 0x03af, - // Entry 80 - BF - 0x03bb, 0x03c8, 0x03ce, 0x03dc, 0x03e6, 0x03ea, 0x03f1, 0x03fc, - 0x0409, 0x0412, 0x0419, 0x0420, 0x0429, 0x0433, 0x0439, 0x043e, - 0x0445, 0x044b, 0x0452, 0x0452, 0x0452, 0x045c, 0x046e, 0x0477, - 0x047b, 0x0482, 0x048a, 0x048a, 0x04a2, 0x04ac, 0x04b6, 0x04c0, - 0x04c5, 0x04ce, 0x04d6, 0x04dc, 0x04e2, 0x04ea, 0x04f4, 0x04fb, - 0x0508, 0x050d, 0x051e, 0x0525, 0x052e, 0x0539, 0x053f, 0x0544, - 0x0549, 0x054d, 0x0558, 0x055c, 0x0562, 0x0566, 0x0576, 0x0586, - 0x0591, 0x0599, 0x059f, 0x05b7, 0x05bf, 0x05ca, 0x05e7, 0x05ef, - // Entry C0 - FF - 0x05f4, 0x05fc, 0x0601, 0x0601, 0x0609, 0x0610, 0x0610, 0x0616, - 0x061c, 0x0628, 0x0637, 0x0641, 0x0646, 0x064c, 0x0655, 0x0661, - 0x0669, 0x0669, 0x0671, 0x067d, 0x0687, 0x068e, 0x0695, 0x069d, - 0x069d, 0x06b4, 0x06bf, 0x06bf, 0x06c4, 0x06cd, 0x06cd, 0x06e4, - 0x06e8, 0x06e8, 0x06ec, 0x06f4, 0x06fe, 0x0705, 0x070f, 0x071b, - 0x0722, 0x0727, 0x072d, 0x073f, 0x0745, 0x074b, 0x0753, 0x075a, - 0x0760, 0x0760, 0x0763, 0x076a, 0x0774, 0x0781, 0x079c, 0x07a5, - 0x07bb, 0x07ce, 0x07d5, 0x07dc, 0x07ec, 0x07f1, 0x07f1, 0x07f6, - // Entry 100 - 13F - 0x07fd, 0x0809, 0x080f, 0x0817, - }, - }, - { // luy - "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + - "iaAntili za UholanziAngolaAjentinaSamoa lya MarekaniAustriaAustralia" + - "ArubaAzabajaniBosnia na HezegovinaBabadosiBangladeshiUbelgijiBukinaf" + - "asoBulgariaBahareniBurundiBeniniBermudaBruneiBoliviaBraziliBahamaBut" + - "aniBotswanaBelarusiBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhu" + - "ri ya Afrika ya KatiKongoUswisiKodivaaVisiwa vya CookChileKameruniCh" + - "inaKolombiaKostarikaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibu" + - "tiDenmakiDominikaJamhuri ya DominikaAljeriaEkwadoEstoniaMisriEritrea" + - "HispaniaUhabeshiUfiniFijiVisiwa vya FalklandMikronesiaUfaransaGaboni" + - "UingerezaGrenadaJojiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambia" + - "GineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKo" + - "rasiaHaitiHungariaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza kat" + - "ika Bahari HindiIrakiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKi" + - "rigizistaniKambodiaKiribatiKomoroSantakitzi na NevisKorea KaskaziniK" + - "orea KusiniKuwaitiVisiwa vya KaymanKazakistaniLaosiLebanoniSantalusi" + - "aLishenteniSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMoroko" + - "MonakoMoldovaBukiniVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiw" + - "a vya Mariana vya KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiM" + - "odivuMalawiMeksikoMalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha" + - " NorfokNijeriaNikaragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPa" + - "namaPeruPolinesia ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri" + - " na MikeloniPitkairniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza " + - "wa PalestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudi" + - "Visiwa vya SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaS" + - "lovakiaSiera LeoniSamarinoSenegaliSomaliaSurinamuSao Tome na Princip" + - "eElsavadoSiriaUswaziVisiwa vya Turki na KaikoChadiTogoTailandiTajiki" + - "staniTokelauTimori ya MasharikiTurukimenistaniTunisiaTongaUturukiTri" + - "nidad na TobagoTuvaluTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzib" + - "ekistaniVatikaniSantavisenti na GrenadiniVenezuelaVisiwa vya Virgin " + - "vya UingerezaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWalis na " + - "FutunaSamoaYemeniMayotteAfrika KusiniZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, - 0x004a, 0x005c, 0x0062, 0x0062, 0x006a, 0x007c, 0x0083, 0x008c, - 0x0091, 0x0091, 0x009a, 0x00ae, 0x00b6, 0x00c1, 0x00c9, 0x00d3, - 0x00db, 0x00e3, 0x00ea, 0x00f0, 0x00f0, 0x00f7, 0x00fd, 0x0104, - 0x0104, 0x010b, 0x0111, 0x0117, 0x0117, 0x011f, 0x0127, 0x012d, - 0x0133, 0x0133, 0x0153, 0x016c, 0x0171, 0x0177, 0x017e, 0x018d, - 0x0192, 0x019a, 0x019f, 0x01a7, 0x01a7, 0x01b0, 0x01b4, 0x01bc, - 0x01bc, 0x01bc, 0x01c3, 0x01d3, 0x01dc, 0x01dc, 0x01e2, 0x01e9, - // Entry 40 - 7F - 0x01f1, 0x0204, 0x020b, 0x020b, 0x0211, 0x0218, 0x021d, 0x021d, - 0x0224, 0x022c, 0x0234, 0x0234, 0x0239, 0x023d, 0x0250, 0x025a, - 0x025a, 0x0262, 0x0268, 0x0271, 0x0278, 0x027d, 0x0290, 0x0290, - 0x0295, 0x029d, 0x02a6, 0x02ac, 0x02b0, 0x02b9, 0x02c2, 0x02c9, - 0x02c9, 0x02d2, 0x02d6, 0x02df, 0x02e5, 0x02e5, 0x02e5, 0x02ee, - 0x02f5, 0x02fa, 0x0302, 0x0302, 0x030b, 0x0313, 0x031a, 0x031a, - 0x031f, 0x0344, 0x0349, 0x034f, 0x0357, 0x035d, 0x035d, 0x0364, - 0x036b, 0x0371, 0x0376, 0x0383, 0x038b, 0x0393, 0x0399, 0x03ac, - // Entry 80 - BF - 0x03bb, 0x03c7, 0x03ce, 0x03df, 0x03ea, 0x03ef, 0x03f7, 0x0401, - 0x040b, 0x0414, 0x041b, 0x0421, 0x0429, 0x0432, 0x0439, 0x043e, - 0x0444, 0x044a, 0x0451, 0x0451, 0x0451, 0x0457, 0x0469, 0x0472, - 0x0476, 0x047b, 0x0483, 0x0483, 0x04a3, 0x04ac, 0x04b5, 0x04c0, - 0x04c5, 0x04cb, 0x04d1, 0x04d7, 0x04de, 0x04e5, 0x04ed, 0x04f4, - 0x0500, 0x0506, 0x0517, 0x051e, 0x0527, 0x052f, 0x0534, 0x053a, - 0x053f, 0x0543, 0x054d, 0x0552, 0x0558, 0x055c, 0x0571, 0x0576, - 0x057e, 0x0587, 0x058e, 0x05a4, 0x05ad, 0x05b6, 0x05e8, 0x05ed, - // Entry C0 - FF - 0x05f2, 0x05fa, 0x0600, 0x0600, 0x0609, 0x0610, 0x0610, 0x0615, - 0x061b, 0x0620, 0x0632, 0x063c, 0x0642, 0x0648, 0x0650, 0x065b, - 0x0663, 0x0663, 0x066b, 0x0676, 0x067e, 0x0686, 0x068d, 0x0695, - 0x0695, 0x06a9, 0x06b1, 0x06b1, 0x06b6, 0x06bc, 0x06bc, 0x06d5, - 0x06da, 0x06da, 0x06de, 0x06e6, 0x06f1, 0x06f8, 0x070b, 0x071a, - 0x0721, 0x0726, 0x072d, 0x073f, 0x0745, 0x074c, 0x0754, 0x075b, - 0x0761, 0x0761, 0x0769, 0x0770, 0x077c, 0x0784, 0x079d, 0x07a6, - 0x07c5, 0x07e3, 0x07ec, 0x07f3, 0x0802, 0x0807, 0x0807, 0x080d, - // Entry 100 - 13F - 0x0814, 0x0821, 0x0827, 0x082f, - }, - }, - { // lv - lvRegionStr, - lvRegionIdx, - }, - { // mas - "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + - "iaAntili za UholanziAngolaAjentinaSamoa ya MarekaniAustriaAustraliaA" + - "rubaAzabajaniBosnia na HezegovinaBabadosiBangladeshiUbelgijiBukinafa" + - "soBulgariaBahareniBurundiBeniniBermudaBruneiBoliviaBraziliBahamaButa" + - "niBotswanaBelarusiBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhur" + - "i ya Afrika ya KatiKongoUswisiKodivaaVisiwa vya CookChileKameruniChi" + - "naKolombiaKostarikaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibut" + - "iDenmakiDominikaJamhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaH" + - "ispaniaUhabeshiUfiniFijiVisiwa vya FalklandMikronesiaUfaransaGaboniU" + - "ingerezaGrenadaJojiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaG" + - "ineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKor" + - "asiaHaitiHungariaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza kati" + - "ka Bahari HindiIrakiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKir" + - "igizistaniKambodiaKiribatiKomoroSantakitzi na NevisKorea KaskaziniKo" + - "rea KusiniKuwaitiVisiwa vya KaymanKazakistaniLaosiLebanoniSantalusia" + - "LishenteniSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoM" + - "onakoMoldovaBukiniVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa" + - " vya Mariana vya KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiMo" + - "divuMalawiMeksikoMalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha " + - "NorfokNijeriaNikaragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPan" + - "amaPeruPolinesia ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri " + - "na MikeloniPitkairniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza w" + - "a PalestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiV" + - "isiwa vya SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaSl" + - "ovakiaSiera LeoniSamarinoSenegaliSomaliaSurinamuSao Tome na Principe" + - "ElsavadoSiriaUswaziVisiwa vya Turki na KaikoChadiTogoTailandiTajikis" + - "taniTokelauTimori ya MasharikiTurukimenistaniTunisiaTongaUturukiTrin" + - "idad na TobagoTuvaluTaiwaniTansaniaUkrainiUgandaMarekaniUrugwaiUzibe" + - "kistaniVatikaniSantavisenti na GrenadiniVenezuelaVisiwa vya Virgin v" + - "ya UingerezaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWalis na F" + - "utunaSamoaYemeniMayotteAfrika KusiniSambiaSimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, - 0x004a, 0x005c, 0x0062, 0x0062, 0x006a, 0x007b, 0x0082, 0x008b, - 0x0090, 0x0090, 0x0099, 0x00ad, 0x00b5, 0x00c0, 0x00c8, 0x00d2, - 0x00da, 0x00e2, 0x00e9, 0x00ef, 0x00ef, 0x00f6, 0x00fc, 0x0103, - 0x0103, 0x010a, 0x0110, 0x0116, 0x0116, 0x011e, 0x0126, 0x012c, - 0x0132, 0x0132, 0x0152, 0x016b, 0x0170, 0x0176, 0x017d, 0x018c, - 0x0191, 0x0199, 0x019e, 0x01a6, 0x01a6, 0x01af, 0x01b3, 0x01bb, - 0x01bb, 0x01bb, 0x01c2, 0x01d2, 0x01db, 0x01db, 0x01e1, 0x01e8, - // Entry 40 - 7F - 0x01f0, 0x0203, 0x020a, 0x020a, 0x0210, 0x0217, 0x021c, 0x021c, - 0x0223, 0x022b, 0x0233, 0x0233, 0x0238, 0x023c, 0x024f, 0x0259, - 0x0259, 0x0261, 0x0267, 0x0270, 0x0277, 0x027c, 0x028f, 0x028f, - 0x0294, 0x029c, 0x02a5, 0x02ab, 0x02af, 0x02b8, 0x02c1, 0x02c8, - 0x02c8, 0x02d1, 0x02d5, 0x02de, 0x02e4, 0x02e4, 0x02e4, 0x02ed, - 0x02f4, 0x02f9, 0x0301, 0x0301, 0x030a, 0x0312, 0x0319, 0x0319, - 0x031e, 0x0343, 0x0348, 0x034e, 0x0356, 0x035c, 0x035c, 0x0363, - 0x036a, 0x0370, 0x0375, 0x0382, 0x038a, 0x0392, 0x0398, 0x03ab, - // Entry 80 - BF - 0x03ba, 0x03c6, 0x03cd, 0x03de, 0x03e9, 0x03ee, 0x03f6, 0x0400, - 0x040a, 0x0413, 0x041a, 0x0420, 0x0428, 0x0431, 0x0438, 0x043d, - 0x0443, 0x0449, 0x0450, 0x0450, 0x0450, 0x0456, 0x0468, 0x0471, - 0x0475, 0x047a, 0x0482, 0x0482, 0x04a2, 0x04ab, 0x04b4, 0x04bf, - 0x04c4, 0x04ca, 0x04d0, 0x04d6, 0x04dd, 0x04e4, 0x04ec, 0x04f3, - 0x04ff, 0x0505, 0x0516, 0x051d, 0x0526, 0x052e, 0x0533, 0x0539, - 0x053e, 0x0542, 0x054c, 0x0551, 0x0557, 0x055b, 0x0570, 0x0575, - 0x057d, 0x0586, 0x058d, 0x05a3, 0x05ac, 0x05b5, 0x05e7, 0x05ec, - // Entry C0 - FF - 0x05f1, 0x05f9, 0x05ff, 0x05ff, 0x0608, 0x060f, 0x060f, 0x0614, - 0x061a, 0x061f, 0x0631, 0x063b, 0x0641, 0x0647, 0x064f, 0x065a, - 0x0662, 0x0662, 0x066a, 0x0675, 0x067d, 0x0685, 0x068c, 0x0694, - 0x0694, 0x06a8, 0x06b0, 0x06b0, 0x06b5, 0x06bb, 0x06bb, 0x06d4, - 0x06d9, 0x06d9, 0x06dd, 0x06e5, 0x06f0, 0x06f7, 0x070a, 0x0719, - 0x0720, 0x0725, 0x072c, 0x073e, 0x0744, 0x074b, 0x0753, 0x075a, - 0x0760, 0x0760, 0x0768, 0x076f, 0x077b, 0x0783, 0x079c, 0x07a5, - 0x07c4, 0x07e2, 0x07eb, 0x07f2, 0x0801, 0x0806, 0x0806, 0x080c, - // Entry 100 - 13F - 0x0813, 0x0820, 0x0826, 0x082e, - }, - }, - { // mer - "AndoraFalme cia KiarabuAfuganistaniAntigua na BarbudaAnguillaAlubaniaArm" + - "eniaAntili cia HolandiAngolaAjentinaSamoa ya AmerikaAustiriaAustrÄ©li" + - "aArubaAzebaijaniBosnia na HezegovinaBabadosiBangiradeshiBeronjiamuBu" + - "kinafasoBulgariaBahariniBurundiBeniniBamudaBruneiBoliviaBraziluBaham" + - "asiButaniBotswanaBelarusiBelizeKanadaNthÄ© ya KidemokrasÄ© ya KongoNth" + - "Ä© ya Afrika gatÄ©gatÄ©KongoSwizilandiKodivaaAÄ©randi cia CookChileKame" + - "runiChinaKolombiaKostarikaKiubaKepuvedeCaipurasiNthÄ© ya ChekiNjamanÄ©" + - "JibutiDenimakiDominikaNthÄ© ya DominikaAngiriaEkwadoEstoniaMisiriErit" + - "reaSpÄ©niIthiopiaFinilandiFijiAÄ©randi cia FalklandiMikronesiaFransiGa" + - "boniNgerethaGrenadaJojiaGwiyana ya FransiGhanaNgÄ©brataNgirinilandiGa" + - "mbiaGineGwadelupeGine ya IquitaNgirikiGwatemalaGwamGinebisauGuyanaHo" + - "ndurasiKoroashiaHaitiHangarÄ©IndonesiaAelandiIsiraeliIndiaNthÄ© cia Ng" + - "eretha gatagatÄ© ka Ä©ria ria HindiIrakiIraniAisilandiItalÄ©JamaikaJoro" + - "ndaniJapaniKenyaKirigizistaniKambodiaKiribatiKomoroSantakitzi na Nev" + - "isKorea NothiKorea SaÅ©thiKuwÄ© tiAÄ©randi cia KaymanKazakistaniLaosiLe" + - "banoniSantalusiaLishenteniSirilankaLiberiaLesothoLithuaniaLuxemboguL" + - "ativiaLÄ©biaMorokoMonakoMoldovaMadagasikaAÄ©randi cia MarshalMacedonia" + - "MaliMyanimaMongoliaAÄ©randi cia Mariana ya nothiMartinikiMauritaniaMo" + - "ntserratiMaltaMaurÄ©tiasiModivuMalawiMexikoMalÄ©siaMozambikiNamibiaKal" + - "endoia ĨnjeruNijaAÄ©randi cia NorfokNijeriaNikaragwaHolandiNorwiNepal" + - "iNauruNiueNiuzilandiOmaniPanamaPeruPolinesia ya FransiPapuaFilipinoP" + - "akistaniPolandiSantapieri na MikeloniPitkairniPwetorikoRÅ©tere rwa We" + - "sti banki na Gaza cia PalestinaPotogoPalauParagwaiKataRiyunioniRoman" + - "iaRashiaRwandaSaudiAirandi Cia SolomonShelisheliSudaniSwideniSingapo" + - "oSantahelenaSloveniaSlovakiaSiera LeoniSamarinoSenegoSomaliaSurinamu" + - "Sao Tome na PrincipeElsavadoSiriaSwazilandiAÄ©randi cia TakÄ© na Kaiko" + - "ChadiTogoThaÄ©landiTajikistaniTokelauTimori ya IstiTukumenistaniTunis" + - "iaTongaTakÄ©Trinidad na TobagoTuvaluTaiwaniTanzaniaUkirÄ©niUgandaAmeri" + - "kaUrugwÄ©UzibekistaniVatikaniSantavisenti na GrenadiniVenezuelaAÄ©rand" + - "i cia Virgin cia NgerethaAÄ©randi cia Virgin cia AmerikaVietinamuVanu" + - "atuWalis na FutunaSamoaYemeniMayotteAfrika ya SouthiZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0017, 0x0023, 0x0035, 0x003d, 0x0045, - 0x004c, 0x005e, 0x0064, 0x0064, 0x006c, 0x007c, 0x0084, 0x008e, - 0x0093, 0x0093, 0x009d, 0x00b1, 0x00b9, 0x00c5, 0x00cf, 0x00d9, - 0x00e1, 0x00e9, 0x00f0, 0x00f6, 0x00f6, 0x00fc, 0x0102, 0x0109, - 0x0109, 0x0110, 0x0118, 0x011e, 0x011e, 0x0126, 0x012e, 0x0134, - 0x013a, 0x013a, 0x0158, 0x0172, 0x0177, 0x0181, 0x0188, 0x0199, - 0x019e, 0x01a6, 0x01ab, 0x01b3, 0x01b3, 0x01bc, 0x01c1, 0x01c9, - 0x01c9, 0x01c9, 0x01d2, 0x01e0, 0x01e8, 0x01e8, 0x01ee, 0x01f6, - // Entry 40 - 7F - 0x01fe, 0x020f, 0x0216, 0x0216, 0x021c, 0x0223, 0x0229, 0x0229, - 0x0230, 0x0236, 0x023e, 0x023e, 0x0247, 0x024b, 0x0261, 0x026b, - 0x026b, 0x0271, 0x0277, 0x027f, 0x0286, 0x028b, 0x029c, 0x029c, - 0x02a1, 0x02aa, 0x02b6, 0x02bc, 0x02c0, 0x02c9, 0x02d7, 0x02de, - 0x02de, 0x02e7, 0x02eb, 0x02f4, 0x02fa, 0x02fa, 0x02fa, 0x0303, - 0x030c, 0x0311, 0x0319, 0x0319, 0x0322, 0x0329, 0x0331, 0x0331, - 0x0336, 0x0365, 0x036a, 0x036f, 0x0378, 0x037e, 0x037e, 0x0385, - 0x038e, 0x0394, 0x0399, 0x03a6, 0x03ae, 0x03b6, 0x03bc, 0x03cf, - // Entry 80 - BF - 0x03da, 0x03e7, 0x03ef, 0x0402, 0x040d, 0x0412, 0x041a, 0x0424, - 0x042e, 0x0437, 0x043e, 0x0445, 0x044e, 0x0457, 0x045e, 0x0464, - 0x046a, 0x0470, 0x0477, 0x0477, 0x0477, 0x0481, 0x0495, 0x049e, - 0x04a2, 0x04a9, 0x04b1, 0x04b1, 0x04ce, 0x04d7, 0x04e1, 0x04ec, - 0x04f1, 0x04fc, 0x0502, 0x0508, 0x050e, 0x0516, 0x051f, 0x0526, - 0x0537, 0x053b, 0x054e, 0x0555, 0x055e, 0x0565, 0x056a, 0x0570, - 0x0575, 0x0579, 0x0583, 0x0588, 0x058e, 0x0592, 0x05a5, 0x05aa, - 0x05b2, 0x05bb, 0x05c2, 0x05d8, 0x05e1, 0x05ea, 0x0617, 0x061d, - // Entry C0 - FF - 0x0622, 0x062a, 0x062e, 0x062e, 0x0637, 0x063e, 0x063e, 0x0644, - 0x064a, 0x064f, 0x0662, 0x066c, 0x0672, 0x0679, 0x0681, 0x068c, - 0x0694, 0x0694, 0x069c, 0x06a7, 0x06af, 0x06b5, 0x06bc, 0x06c4, - 0x06c4, 0x06d8, 0x06e0, 0x06e0, 0x06e5, 0x06ef, 0x06ef, 0x070a, - 0x070f, 0x070f, 0x0713, 0x071d, 0x0728, 0x072f, 0x073d, 0x074a, - 0x0751, 0x0756, 0x075b, 0x076d, 0x0773, 0x077a, 0x0782, 0x078a, - 0x0790, 0x0790, 0x0797, 0x079e, 0x07aa, 0x07b2, 0x07cb, 0x07d4, - 0x07f4, 0x0813, 0x081c, 0x0823, 0x0832, 0x0837, 0x0837, 0x083d, - // Entry 100 - 13F - 0x0844, 0x0854, 0x085a, 0x0862, - }, - }, - { // mfe - "AndorEmira arab iniAfganistanAntigua-ek-BarbudaAnguillaAlbaniArmeniAntiy" + - " neerlandeAngolaLarzantinnSamoa amerikinLostrisLostraliArubaAzerbaïd" + - "janBosni-HerzegovinnBarbadBangladesBelzikBurkina FasoBilgariBahreïnB" + - "urundiBeninBermidBruneiBoliviBrezilBahamasBoutanBotswanaBelarisBeliz" + - "KanadaRepiblik demokratik KongoRepiblik Lafrik SantralKongoLaswisCôt" + - "e d’IvoireZil CookShiliKamerounnLasinnKolonbiCosta RicaCubaKap-VerCy" + - "prusRepiblik ChekAlmagnDjiboutiDannmarkDominikRepiblik dominikinAlze" + - "riEkwaterEstoniLeziptErythreLespagnLetiopiFinlandFidjiZil malwinnMik" + - "roneziLafransGabonUnited KingdomGrenadZeorziGwiyann franseGhanaZibra" + - "ltarGreenlandGambiGineGuadloupGine ekwatoryalGresGuatemalaGuamGine-B" + - "isauGuyanaHondurasKroasiAytiOngriIndoneziIrlandIzraelLennTeritwar Br" + - "itanik Losean IndienIrakIranIslandItaliZamaikZordaniZaponKenyaKirghi" + - "zistanKambodjKiribatiKomorSaint-Christophe-ek-NiévèsLakore-dinorLako" + - "re-disidKoweitZil KaymanKazakstanLaosLibanSainte-LucieLiechtensteinS" + - "ri LankaLiberiaLezotoLituaniLuxembourgLetoniLibiMarokMonakoMoldaviMa" + - "dagaskarZil MarshallMasedwannMaliMyanmarMongoliZil Maryann dinorMart" + - "inikMoritaniMontseraMaltMorisMaldivMalawiMexikMaleziMozambikNamibiNo" + - "uvel-KaledoniNizerLil NorfolkNizeriaNicaraguaOlandNorvezNepalNauruNi" + - "oweNouvel ZelandOmanPanamaPerouPolinezi fransePapouazi-Nouvel-GineFi" + - "lipinnPakistanPolognSaint-Pierre-ek-MiquelonPitcairnPorto RicoTeritw" + - "ar PalestinnPortigalPalauParaguayKatarLarenionRoumaniLarisiRwandaLar" + - "abi SaouditZil SalomonSeselSoudanLaswedSingapourSainte-HélèneSloveni" + - "SlovakiSierra LeoneSaint-MarinSenegalSomaliSurinamSão Tome-ek-Prínsi" + - "pSalvadorLasiriSwazilandZil Tirk ek CaïcosTchadTogoThaylandTadjikist" + - "anTokelauTimor oriantalTurkmenistanTiniziTongaTirkiTrinite-ek-Tobago" + - "TuvaluTaiwanTanzaniIkrennOugandaLamerikUruguayOuzbekistanLata Vatika" + - "nSaint-Vincent-ek-GrenadinesVenezuelaZil vierz britanikZil Vierz Lam" + - "erikVietnamVanuatuWallis-ek-FutunaSamoaYemennMayotSid-AfrikZambiZimb" + - "abwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0005, 0x0013, 0x001d, 0x002f, 0x0037, 0x003d, - 0x0043, 0x0052, 0x0058, 0x0058, 0x0062, 0x0070, 0x0077, 0x007f, - 0x0084, 0x0084, 0x0090, 0x00a1, 0x00a7, 0x00b0, 0x00b6, 0x00c2, - 0x00c9, 0x00d1, 0x00d8, 0x00dd, 0x00dd, 0x00e3, 0x00e9, 0x00ef, - 0x00ef, 0x00f5, 0x00fc, 0x0102, 0x0102, 0x010a, 0x0111, 0x0116, - 0x011c, 0x011c, 0x0135, 0x014c, 0x0151, 0x0157, 0x0167, 0x016f, - 0x0174, 0x017d, 0x0183, 0x018a, 0x018a, 0x0194, 0x0198, 0x019f, - 0x019f, 0x019f, 0x01a5, 0x01b2, 0x01b8, 0x01b8, 0x01c0, 0x01c8, - // Entry 40 - 7F - 0x01cf, 0x01e1, 0x01e7, 0x01e7, 0x01ee, 0x01f4, 0x01fa, 0x01fa, - 0x0201, 0x0208, 0x020f, 0x020f, 0x0216, 0x021b, 0x0226, 0x022f, - 0x022f, 0x0236, 0x023b, 0x0249, 0x024f, 0x0255, 0x0263, 0x0263, - 0x0268, 0x0271, 0x027a, 0x027f, 0x0283, 0x028b, 0x029a, 0x029e, - 0x029e, 0x02a7, 0x02ab, 0x02b5, 0x02bb, 0x02bb, 0x02bb, 0x02c3, - 0x02c9, 0x02cd, 0x02d2, 0x02d2, 0x02da, 0x02e0, 0x02e6, 0x02e6, - 0x02ea, 0x0309, 0x030d, 0x0311, 0x0317, 0x031c, 0x031c, 0x0322, - 0x0329, 0x032e, 0x0333, 0x033f, 0x0346, 0x034e, 0x0353, 0x036f, - // Entry 80 - BF - 0x037b, 0x0387, 0x038d, 0x0397, 0x03a0, 0x03a4, 0x03a9, 0x03b5, - 0x03c2, 0x03cb, 0x03d2, 0x03d8, 0x03df, 0x03e9, 0x03ef, 0x03f3, - 0x03f8, 0x03fe, 0x0405, 0x0405, 0x0405, 0x040f, 0x041b, 0x0424, - 0x0428, 0x042f, 0x0436, 0x0436, 0x0447, 0x044f, 0x0457, 0x045f, - 0x0463, 0x0468, 0x046e, 0x0474, 0x0479, 0x047f, 0x0487, 0x048d, - 0x049c, 0x04a1, 0x04ac, 0x04b3, 0x04bc, 0x04c1, 0x04c7, 0x04cc, - 0x04d1, 0x04d6, 0x04e3, 0x04e7, 0x04ed, 0x04f2, 0x0501, 0x0515, - 0x051d, 0x0525, 0x052b, 0x0543, 0x054b, 0x0555, 0x0567, 0x056f, - // Entry C0 - FF - 0x0574, 0x057c, 0x0581, 0x0581, 0x0589, 0x0590, 0x0590, 0x0596, - 0x059c, 0x05aa, 0x05b5, 0x05ba, 0x05c0, 0x05c6, 0x05cf, 0x05de, - 0x05e5, 0x05e5, 0x05ec, 0x05f8, 0x0603, 0x060a, 0x0610, 0x0617, - 0x0617, 0x062c, 0x0634, 0x0634, 0x063a, 0x0643, 0x0643, 0x0656, - 0x065b, 0x065b, 0x065f, 0x0667, 0x0672, 0x0679, 0x0687, 0x0693, - 0x0699, 0x069e, 0x06a3, 0x06b4, 0x06ba, 0x06c0, 0x06c7, 0x06cd, - 0x06d4, 0x06d4, 0x06db, 0x06e2, 0x06ed, 0x06f9, 0x0714, 0x071d, - 0x072f, 0x0740, 0x0747, 0x074e, 0x075e, 0x0763, 0x0763, 0x0769, - // Entry 100 - 13F - 0x076e, 0x0777, 0x077c, 0x0784, - }, - }, - { // mg - "AndorraEmirà Arabo mitambatraAfghanistanAntiga sy BarbodaAnguillaAlbania" + - "ArmeniaVondronosy karaiba holandeyAngolaArzantinaSamoa amerikaninaAo" + - "trisyAostraliaArobàAzerbaidjanBosnia sy HerzegovinaBarbadyBangladesy" + - "BelzikaBorkina FasoBiolgariaBahrainBorondiBeninBermiodaBruneiBolivia" + - "BrezilaBahamasBhotanaBotsoanaBelarosyBelizeKanadaRepoblikan’i KongoR" + - "epoblika Ivon’AfrikaKôngôSoisaCôte d’IvoireNosy KookShiliKameronaSin" + - "aKôlômbiaKosta RikàKiobàNosy Cap-VertSypraRepoblikan’i TsekyAlemaina" + - "DjibotiDanmarkaDominikaRepoblika DominikaninaAlzeriaEkoateraEstoniaE" + - "jyptaEritreaEspainaEthiopiaFinlandyFidjiNosy FalkandMikrôneziaFrants" + - "aGabonAngleteraGrenadyZeorziaGuyana frantsayGhanaZibraltaraGroenland" + - "GambiaGineaGoadelopyGuinea EkoateraGresyGoatemalàGuamGiné-BisaoGuyan" + - "aHondiorasyKroasiaHaitiHongriaIndoneziaIrlandyIsraelyIndyFaridranoma" + - "sina indiana britanikaIrakIranIslandyItaliaJamaïkaJordaniaJapanaKeny" + - "aKiordistanKambôdjaKiribatiKômaoroSaint-Christophe-et-NiévèsKorea Av" + - "aratraKorea AtsimoKôeityNosy KaymanKazakhstanLaôsLibanaSainte-LucieL" + - "istensteinSri LankaLiberiaLesothoLitoaniaLioksamboroLetoniaLibyaMarô" + - "kaMônakôMôldaviaMadagasikaraNosy MarshallMakedoniaMaliMyanmarMôngôli" + - "aNosy Mariana AtsinananaMartinikaMaoritaniaMontserratMaltaMaorisyMal" + - "divaMalaoìMeksikaMalaiziaMozambikaNamibiaNouvelle-CalédonieNigerNosy" + - " NorfolkNizeriaNikaragoàHolandaNôrvezyNepalaNaoròNioéNouvelle-Zéland" + - "eOmanPanamaPeroaPolynezia frantsayPapouasie-Nouvelle-GuinéeFilipinaP" + - "akistanPôlônaSaint-Pierre-et-MiquelonPitkairnPôrtô RikôPalestinaPôrt" + - "iogalaPalaoParagoayKatarLarenionRomaniaRosiaRoandaArabia saoditaNosy" + - " SalomonaSeyshelaSodanSoedySingaporoSainte-HélèneSloveniaSlovakiaSie" + - "rra LeoneSaint-MarinSenegalSomaliaSorinamSão Tomé-et-PríncipeEl Salv" + - "adorSyriaSoazilandyNosy Turks sy CaïquesTsadyTogoThailandyTajikistan" + - "TokelaoTimor AtsinananaTorkmenistanToniziaTongàTorkiaTrinidad sy Tob" + - "agôTovalòTaioanaTanzaniaOkrainaOgandaEtazoniaOrogoayOzbekistanFirene" + - "n’i VatikanaSaint-Vincent-et-les GrenadinesVenezoelàNosy britanika v" + - "irijinyNosy Virijiny EtazoniaVietnamVanoatòWallis sy FutunaSamoaYeme" + - "nMayôtyAfrika AtsimoZambiaZimbaboe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x001e, 0x0029, 0x003a, 0x0042, 0x0049, - 0x0050, 0x006b, 0x0071, 0x0071, 0x007a, 0x008b, 0x0092, 0x009b, - 0x00a1, 0x00a1, 0x00ac, 0x00c1, 0x00c8, 0x00d2, 0x00d9, 0x00e5, - 0x00ee, 0x00f5, 0x00fc, 0x0101, 0x0101, 0x0109, 0x010f, 0x0116, - 0x0116, 0x011d, 0x0124, 0x012b, 0x012b, 0x0133, 0x013b, 0x0141, - 0x0147, 0x0147, 0x015b, 0x0172, 0x0179, 0x017e, 0x018e, 0x0197, - 0x019c, 0x01a4, 0x01a8, 0x01b2, 0x01b2, 0x01bd, 0x01c3, 0x01d0, - 0x01d0, 0x01d0, 0x01d5, 0x01e9, 0x01f1, 0x01f1, 0x01f8, 0x0200, - // Entry 40 - 7F - 0x0208, 0x021e, 0x0225, 0x0225, 0x022d, 0x0234, 0x023a, 0x023a, - 0x0241, 0x0248, 0x0250, 0x0250, 0x0258, 0x025d, 0x0269, 0x0274, - 0x0274, 0x027b, 0x0280, 0x0289, 0x0290, 0x0297, 0x02a6, 0x02a6, - 0x02ab, 0x02b5, 0x02be, 0x02c4, 0x02c9, 0x02d2, 0x02e1, 0x02e6, - 0x02e6, 0x02f0, 0x02f4, 0x02ff, 0x0305, 0x0305, 0x0305, 0x030f, - 0x0316, 0x031b, 0x0322, 0x0322, 0x032b, 0x0332, 0x0339, 0x0339, - 0x033d, 0x035e, 0x0362, 0x0366, 0x036d, 0x0373, 0x0373, 0x037b, - 0x0383, 0x0389, 0x038e, 0x0398, 0x03a1, 0x03a9, 0x03b1, 0x03cd, - // Entry 80 - BF - 0x03db, 0x03e7, 0x03ee, 0x03f9, 0x0403, 0x0408, 0x040e, 0x041a, - 0x0425, 0x042e, 0x0435, 0x043c, 0x0444, 0x044f, 0x0456, 0x045b, - 0x0462, 0x046a, 0x0473, 0x0473, 0x0473, 0x047f, 0x048c, 0x0495, - 0x0499, 0x04a0, 0x04aa, 0x04aa, 0x04c1, 0x04ca, 0x04d4, 0x04de, - 0x04e3, 0x04ea, 0x04f1, 0x04f8, 0x04ff, 0x0507, 0x0510, 0x0517, - 0x052a, 0x052f, 0x053b, 0x0542, 0x054c, 0x0553, 0x055b, 0x0561, - 0x0567, 0x056c, 0x057d, 0x0581, 0x0587, 0x058c, 0x059e, 0x05b8, - 0x05c0, 0x05c8, 0x05d0, 0x05e8, 0x05f0, 0x05fd, 0x0606, 0x0611, - // Entry C0 - FF - 0x0616, 0x061e, 0x0623, 0x0623, 0x062b, 0x0632, 0x0632, 0x0637, - 0x063d, 0x064b, 0x0658, 0x0660, 0x0665, 0x066a, 0x0673, 0x0682, - 0x068a, 0x068a, 0x0692, 0x069e, 0x06a9, 0x06b0, 0x06b7, 0x06be, - 0x06be, 0x06d5, 0x06e0, 0x06e0, 0x06e5, 0x06ef, 0x06ef, 0x0705, - 0x070a, 0x070a, 0x070e, 0x0717, 0x0721, 0x0728, 0x0738, 0x0744, - 0x074b, 0x0751, 0x0757, 0x076a, 0x0771, 0x0778, 0x0780, 0x0787, - 0x078d, 0x078d, 0x0795, 0x079c, 0x07a6, 0x07ba, 0x07d9, 0x07e3, - 0x07fa, 0x0810, 0x0817, 0x081f, 0x082f, 0x0834, 0x0834, 0x0839, - // Entry 100 - 13F - 0x0840, 0x084d, 0x0853, 0x085b, - }, - }, - { // mgh - "UandoraUfugustaniUalbaniaUsamoa ya MarekaniUazabajaniUrundiUbelinUkanada" + - "UkongoUswisiUkodivaUchileUchinaUkolombiaUkubaUkuprosiUchekiUjibutiUd" + - "enimakaUdominikaAlujeriaUmisiriUritereaUhispaniaUhabeshiUfiniUfijiUf" + - "aransaUgaboniUgrenadaUjojiaUfaransa yo GwayaUganaUjibraltaUgrinlandi" + - "UgambiaUgineUgwadelupeUgwatemalaUgwamUginebisauUguyanaUhondurasiUkor" + - "asiaUhaitiUhungariaUndonesiaUayalandiUisraeliUhindiniWirakiItaliaUja" + - "maikaUyordaniUjapaniUkenyaUkambodiaUkomoroUsantakitzi na NevisUkorea" + - " KaskaziniUkorea KusiniUkazakistaniUlebanoniUsantalusiaUshenteniUsir" + - "ilankaUliberiaUlesotoUtwaniaUsembajiUlativiaUlibyaUmantegroUbukiniUm" + - "asedoniaUmalawiUmozambikiUnijeriUnijeriaUnorweUomaniUpanamaUperuuUfa" + - "ransa yo PotinaUpapuaUfilipinoUpakistaniUpolandiUsantapieri na Mikel" + - "oniUpitkairniUpwetorikoParagwaiUkatariUriyunioniUromaniaUrwandaUsaud" + - "iUshelisheliUsudaniUswidiUsingapooUsantahelenaUsloveniaUslovakiaUsam" + - "arinoUsenegaliUsomaliaUsurinamuUsao Tome na PrincipeUsalavadoUsiriaU" + - "swaziUchadiUtogoUtailandiUjikistaniUtokelauUtimo MasharikiUturukimen" + - "istaniUtunisiaUtongaUtukiUtrinidad na TobagoUtuvaluUtanzaniaUmarekan" + - "iUvatikaniUsantavisenti na GrenadiniUvenezuelaUvietinamuUvanuatuUwal" + - "is na FutunaUsamoaUyemeniAfrika du SuluUzambiaUzimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x0007, 0x0011, 0x0011, 0x0011, 0x0019, - 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x002b, 0x002b, 0x002b, - 0x002b, 0x002b, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x003b, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, - 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, - 0x0048, 0x0048, 0x0048, 0x0048, 0x004e, 0x0054, 0x005b, 0x005b, - 0x0061, 0x0061, 0x0067, 0x0070, 0x0070, 0x0070, 0x0075, 0x0075, - 0x0075, 0x0075, 0x007d, 0x0083, 0x0083, 0x0083, 0x008a, 0x0093, - // Entry 40 - 7F - 0x009c, 0x009c, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00ab, 0x00ab, - 0x00b3, 0x00bc, 0x00c4, 0x00c4, 0x00c9, 0x00ce, 0x00ce, 0x00ce, - 0x00ce, 0x00d6, 0x00dd, 0x00dd, 0x00e5, 0x00eb, 0x00fc, 0x00fc, - 0x0101, 0x010a, 0x0114, 0x011b, 0x0120, 0x012a, 0x012a, 0x012a, - 0x012a, 0x0134, 0x0139, 0x0143, 0x014a, 0x014a, 0x014a, 0x0154, - 0x015c, 0x0162, 0x016b, 0x016b, 0x0174, 0x017d, 0x0185, 0x0185, - 0x018d, 0x018d, 0x0193, 0x0193, 0x0193, 0x0199, 0x0199, 0x01a1, - 0x01a9, 0x01b0, 0x01b6, 0x01b6, 0x01bf, 0x01bf, 0x01c6, 0x01da, - // Entry 80 - BF - 0x01ea, 0x01f7, 0x01f7, 0x01f7, 0x0203, 0x0203, 0x020c, 0x0217, - 0x0220, 0x022a, 0x0232, 0x0239, 0x0240, 0x0248, 0x0250, 0x0256, - 0x0256, 0x0256, 0x0256, 0x025f, 0x025f, 0x0266, 0x0266, 0x0270, - 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, - 0x0270, 0x0270, 0x0270, 0x0277, 0x0277, 0x0277, 0x0281, 0x0281, - 0x0281, 0x0288, 0x0288, 0x0290, 0x0290, 0x0290, 0x0296, 0x0296, - 0x0296, 0x0296, 0x0296, 0x029c, 0x02a3, 0x02a9, 0x02bb, 0x02c1, - 0x02ca, 0x02d4, 0x02dc, 0x02f3, 0x02fd, 0x0307, 0x0307, 0x0307, - // Entry C0 - FF - 0x0307, 0x030f, 0x0316, 0x0316, 0x0320, 0x0328, 0x0328, 0x0328, - 0x032f, 0x0335, 0x0335, 0x0340, 0x0347, 0x034d, 0x0356, 0x0362, - 0x036b, 0x036b, 0x0374, 0x0374, 0x037d, 0x0386, 0x038e, 0x0397, - 0x0397, 0x03ac, 0x03b5, 0x03b5, 0x03bb, 0x03c1, 0x03c1, 0x03c1, - 0x03c7, 0x03c7, 0x03cc, 0x03d5, 0x03df, 0x03e7, 0x03f6, 0x0406, - 0x040e, 0x0414, 0x0419, 0x042c, 0x0433, 0x0433, 0x043c, 0x043c, - 0x043c, 0x043c, 0x0445, 0x0445, 0x0445, 0x044e, 0x0468, 0x0472, - 0x0472, 0x0472, 0x047c, 0x0484, 0x0494, 0x049a, 0x049a, 0x04a1, - // Entry 100 - 13F - 0x04a1, 0x04af, 0x04b6, 0x04bf, - }, - }, - { // mgo - "Kamalunaba aben tisɔ̀", - []uint16{ // 261 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - // Entry 40 - 7F - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - // Entry 80 - BF - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - // Entry C0 - FF - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, - // Entry 100 - 13F - 0x0007, 0x0007, 0x0007, 0x0007, 0x0017, - }, - }, - { // mk - mkRegionStr, - mkRegionIdx, - }, - { // ml - mlRegionStr, - mlRegionIdx, - }, - { // mn - mnRegionStr, - mnRegionIdx, - }, - { // mr - mrRegionStr, - mrRegionIdx, - }, - { // ms - msRegionStr, - msRegionIdx, - }, - { // mt - "AndorraEmirati Għarab MaqgħudaAfganistanAntigua and BarbudaAngwillaAlban" + - "ijaArmenjaAntilles OlandiżiAngolaAntartikaArÄ¡entinaSamoa AmerikanaAw" + - "strijaAwstraljaArubaGżejjer AlandAżerbajÄ¡anBożnija ĦerżegovinaBarbad" + - "osBangladexxBelÄ¡juBurkina FasoBulgarijaBaħrajnBurundiBeninBermudaBru" + - "nejBolivjaIl-BrażilBaħamasButanBouvet IslandBotswanaBjelorussjaBeliż" + - "eKanadaCocos (Keeling) IslandsDemocratic Republic of the CongoRepubb" + - "lika Afrikana ÄŠentraliKongoSvizzeraKosta ta’ l-AvorjuCook IslandsÄŠil" + - "iKamerunIÄ‹-ÄŠinaKolumbjaKosta RikaKubaKape VerdeChristmas IslandÄŠipru" + - "Repubblika ÄŠekaIl-Ä ermanjaÄ ibutiDanimarkaDominikaRepublikka Domenika" + - "naAlÄ¡erijaEkwadorEstonjaEÄ¡ittuSahara tal-PunentEritrejaSpanjaEtijopj" + - "aUnjoni EwropeaFinlandjaFiÄ¡iFalkland IslandsMikronesjaGżejjer FaroeF" + - "ranzaGabonL-IngilterraGrenadaÄ orÄ¡jaGujana FranÄ‹iżaGanaGibraltarGrinl" + - "andjaGambjaGinejaGwadelupeGinea EkwatorjaliGreÄ‹jaSouth Georgia and t" + - "he South Sandwich IslandsGwatemalaGwamGinea-BissawGujanaĦong Kong S." + - "A.R. ÄŠinaHeard Island and McDonald IslandsĦondurasKroazjaĦaitiUngeri" + - "jaIndoneżjaIrlandaIżraelIsle of ManL-IndjaBritish Indian Ocean Terri" + - "toryIraqIranIslandaL-ItaljaÄ amajkaÄ ordanIl-Ä appunKenjaKirgistanKambo" + - "djaKiribatiKomorosSaint Kitts and NevisKoreja ta’ FuqKoreja t’IsfelK" + - "uwajtGżejjer KajmaniKażakstanLaosLibanuSanta LuÄ‹ijaLiechtensteinSri " + - "LankaLiberjaLesotoLitwanjaLussemburguLatvjaLibjaMarokkMonakoMaldovaM" + - "adagaskarGżejjer ta’ MarshallMaÄ‹edonjaMaliMjanmarMongoljaMacao S.A.R" + - "., ChinaGżejjer Marjana ta’ FuqMartinikMawritanjaMontserratMaltaMawr" + - "izjuMaldivesMalawiMessikuMalasjaMożambikNamibjaNew CaledoniaNiÄ¡erNor" + - "folk IslandNiÄ¡erjaNikaragwaOlandaNorveÄ¡jaNepalNauruNiueNew ZealandOm" + - "anPanamaPeruPolinesja FranÄ‹iżaPapwa-Ginea Ä didaFilippiniPakistanPolo" + - "njaSaint Pierre and MiquelonPitcairnPuerto RicoTerritorju Palestinja" + - "nPortugallPalauParagwajQatarRéunionRumanijaIr-RussjaRwandaGħarabja S" + - "awditaSolomon IslandsSeychellesSudanÅ»vezjaSingaporSaint HelenaSloven" + - "jaSvalbard and Jan MayenSlovakkjaSierra LeoneSan MarinoSenegalSomalj" + - "aSurinamSao Tome and PrincipeEl SalvadorSirjaSważilandTurks and Caic" + - "os IslandsÄŠadTerritorji FranÄ‹iżi ta’ NofsinharTogoTajlandjaTaÄ¡ikista" + - "nTokelawTimor tal-LvantTurkmenistanTuneżTongaTurkijaTrinidad u Tobag" + - "oTuvaluTajwanTanżanijaUkrainaUgandaUnited States Minor Outlying Isla" + - "ndsL-Istati UnitiUrugwajUżbekistanVatikanSaint Vincent and the Grena" + - "dinesVenezwelaBritish Virgin IslandsU.S. Virgin IslandsVjetnamVanwat" + - "uWallis and FutunaSamoaJemenMajotteAfrika t’IsfelÅ»ambjaÅ»imbabweReÄ¡ju" + - "n Mhux MagħrufDinjaAffrikaAmerika t’IsfelOÄ‹ejanjaAffrika tal-PunentA" + - "merika ÄŠentraliAffrika tal-LvantAffrika ta’ FuqAffrika NofsaniAffrik" + - "a t’IsfelAmerikaKaribewAsja tal-LvantAsja t’Isfel ÄŠentraliAsja tax-X" + - "lokkEwropa t’IsfelAwstralja u New ZealandMelanesjaReÄ¡jun ta’ Mikrone" + - "żjaPolinesjaAsjaAsja ÄŠentraliAsja tal-PunentEwropaEwropa tal-LvantE" + - "wropa ta’ FuqEwropa tal-PunentAmerika Latina", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x0020, 0x002a, 0x003d, 0x0045, 0x004d, - 0x0054, 0x0066, 0x006c, 0x0075, 0x007f, 0x008e, 0x0096, 0x009f, - 0x00a4, 0x00b2, 0x00be, 0x00d4, 0x00dc, 0x00e6, 0x00ed, 0x00f9, - 0x0102, 0x010a, 0x0111, 0x0116, 0x0116, 0x011d, 0x0123, 0x012a, - 0x012a, 0x0134, 0x013c, 0x0141, 0x014e, 0x0156, 0x0161, 0x0168, - 0x016e, 0x0185, 0x01a5, 0x01c2, 0x01c7, 0x01cf, 0x01e3, 0x01ef, - 0x01f4, 0x01fb, 0x0204, 0x020c, 0x020c, 0x0216, 0x021a, 0x0224, - 0x0224, 0x0234, 0x023a, 0x024a, 0x0256, 0x0256, 0x025d, 0x0266, - // Entry 40 - 7F - 0x026e, 0x0283, 0x028c, 0x028c, 0x0293, 0x029a, 0x02a1, 0x02b2, - 0x02ba, 0x02c0, 0x02c8, 0x02d6, 0x02df, 0x02e4, 0x02f4, 0x02fe, - 0x030c, 0x0312, 0x0317, 0x0323, 0x032a, 0x0332, 0x0343, 0x0343, - 0x0347, 0x0350, 0x035a, 0x0360, 0x0366, 0x036f, 0x0380, 0x0387, - 0x03b3, 0x03bc, 0x03c0, 0x03cc, 0x03d2, 0x03e9, 0x040a, 0x0413, - 0x041a, 0x0420, 0x0428, 0x0428, 0x0432, 0x0439, 0x0440, 0x044b, - 0x0452, 0x0470, 0x0474, 0x0478, 0x047f, 0x0487, 0x0487, 0x048f, - 0x0496, 0x04a0, 0x04a5, 0x04ae, 0x04b6, 0x04be, 0x04c5, 0x04da, - // Entry 80 - BF - 0x04ea, 0x04fa, 0x0500, 0x0510, 0x051a, 0x051e, 0x0524, 0x0531, - 0x053e, 0x0547, 0x054e, 0x0554, 0x055c, 0x0567, 0x056d, 0x0572, - 0x0578, 0x057e, 0x0585, 0x0585, 0x0585, 0x058f, 0x05a6, 0x05b0, - 0x05b4, 0x05bb, 0x05c3, 0x05d6, 0x05f0, 0x05f8, 0x0602, 0x060c, - 0x0611, 0x0619, 0x0621, 0x0627, 0x062e, 0x0635, 0x063e, 0x0645, - 0x0652, 0x0658, 0x0666, 0x066e, 0x0677, 0x067d, 0x0686, 0x068b, - 0x0690, 0x0694, 0x069f, 0x06a3, 0x06a9, 0x06ad, 0x06c1, 0x06d3, - 0x06dc, 0x06e4, 0x06eb, 0x0704, 0x070c, 0x0717, 0x072d, 0x0736, - // Entry C0 - FF - 0x073b, 0x0743, 0x0748, 0x0748, 0x0750, 0x0758, 0x0758, 0x0761, - 0x0767, 0x0778, 0x0787, 0x0791, 0x0796, 0x079d, 0x07a5, 0x07b1, - 0x07b9, 0x07cf, 0x07d8, 0x07e4, 0x07ee, 0x07f5, 0x07fc, 0x0803, - 0x0803, 0x0818, 0x0823, 0x0823, 0x0828, 0x0832, 0x0832, 0x084a, - 0x084e, 0x0873, 0x0877, 0x0880, 0x088b, 0x0892, 0x08a1, 0x08ad, - 0x08b3, 0x08b8, 0x08bf, 0x08d0, 0x08d6, 0x08dc, 0x08e6, 0x08ed, - 0x08f3, 0x0917, 0x0925, 0x092c, 0x0937, 0x093e, 0x095e, 0x0967, - 0x097d, 0x0990, 0x0997, 0x099e, 0x09af, 0x09b4, 0x09b4, 0x09b9, - // Entry 100 - 13F - 0x09c0, 0x09d0, 0x09d7, 0x09e0, 0x09f5, 0x09fa, 0x0a01, 0x0a01, - 0x0a12, 0x0a1b, 0x0a2d, 0x0a3e, 0x0a4f, 0x0a60, 0x0a6f, 0x0a80, - 0x0a87, 0x0a87, 0x0a8e, 0x0a9c, 0x0ab4, 0x0ac2, 0x0ad2, 0x0ae9, - 0x0af2, 0x0b0b, 0x0b14, 0x0b18, 0x0b26, 0x0b35, 0x0b3b, 0x0b4b, - 0x0b5b, 0x0b6c, 0x0b7a, - }, - }, - { // mua - "andorraSÇr Arabiya ma tainiafghanistaÅ‹antiguan ne Barbudaanguiyaalbaniya" + - "armeniyaSÇr ma kasÇÅ‹ ma laÅ‹neangolaargentiniyasamoa Amerikaaustriyaa" + - "ustraliyaarubaazerbaijaÅ‹bosniya ne Herzegovinabarbadiyabangladeshiya" + - "belgikaburkina FasobulgariyabahraiÅ‹burundibeniÅ‹bermudiyabruniyaboliv" + - "iyabrazilyabahamasbutaÅ‹botswanabelarussiyabeliziyakanadaSÇr Kongo ma" + - " dii ne zaircentrafrikakongoSÇr Swissser Ivoiriyakook ma laÅ‹nesyilik" + - "ameruÅ‹syiÅ‹kolombiyakosta RikaKubakap ma laÅ‹neSyipriyaSÇr SyekGermani" + - "yaDjiboutiDaÅ‹markDominikSÇr Dominik ma liialgeriyaEkwatÇrEstoniyaSÇr" + - " EgyptSÇr EritreEspaÅ‹iyaEtiopiaSÇr FinlandSÇr FijiSÇr malouniya ma l" + - "aÅ‹neMicronesiyaFranssÇGaboÅ‹SÇr AnglofoÅ‹GrenadÇGeorgiyaSÇr Guyana ma " + - "FranssÇGanaSÇr GibraltarSÇr GroenlandGambiyaGuineSÇr GwadeloupÇSÇr G" + - "uineSÇr GrekGwatemalaGwamGuine ma BissaoGuyanaSÇr HonduraskroatiyaSÇ" + - "r HaitiHungriyaIndonesiyaSÇr IrelandSÇr IsraelSÇr IndÇanglofoÅ‹ ma In" + - "diyaIrakIraÅ‹SÇr IslandItaliyaJamaikaJordaniyaJapaÅ‹SÇr KenyaKirgizsta" + - "Å‹kambodiyaSÇr KiribatikomoraSÇr Kristof ne NievÇSÇr Kore fah sÇÅ‹SÇr" + - " Kore nekÇsÇÅ‹SÇr Kowaitkayman ma laÅ‹neKazakstaÅ‹SÇr LaosLibaÅ‹SÇr Luci" + - "aLichtÇnsteiÅ‹SÇr LankaLiberiyaSÇr LesothoLituaniyaSÇr LuxemburgLeton" + - "iyaLibiyaMarokMonakoMoldoviyaMadagaskarSÇr Marshall ma laÅ‹neMacedoni" + - "yaSÇr MaliSÇr MyanmarMongoliyaSÇr Maria ma laÅ‹neMartinikaMauritaniya" + - "SÇr MontserratSÇr MaltaSÇr MauricÇMaldivÇSÇr MalawiMexikoMalaysiyaMo" + - "zambikaNamibiyaKaledoniya mafuuSÇr NigerNorfolk ma laÅ‹neNigeriyaNika" + - "ragwaSÇr ma kasÇÅ‹NorvegÇSÇr NepalSÇr NauruNiweZeland mafuuOmaÅ‹SÇr Pa" + - "namaPeruSÇr Polynesiya ma FranssÇPapuasiya Guine mafuuFilipiÅ‹Pakista" + - "Å‹PologÅ‹SÇr PÇtar ne MikÇlonPitkairnPorto RikoSÇr PalestiniyaSÇr Por" + - "tugalSÇr PalauParagwaiKatarSÇr ReunionRomaniyaRussiyaRwandaSÇr Arabi" + - "yaSÇr Salomon ma laÅ‹neSaichelSudaÅ‹SÇr SuedSingapurSÇr HelenaSloveniy" + - "aSlovakiyaSierra LeonÇSÇr MarinoSenegalSomaliyaSÇr SurinamSao Tome n" + - "e PrincipeSÇr SalvadorSyriaSÇr SwazilandTurkiya ne kaicos ma laÅ‹nesy" + - "adSÇr TogoTailandTajikistaÅ‹SÇr TokelauTimoriyaTurkmenistaÅ‹TunisiyaSÇ" + - "r TongaTurkiyaTrinite ne TobagoSÇr TuvaluTaiwaÅ‹TanzaniyaUkraiÅ‹Uganda" + - "AmerikaUrugwaiUzbekistaÅ‹VaticaÅ‹SÇr VinceÅ‹ ne GrenadiÅ‹SÇr Venezuelase" + - "r Anglofon ma laÅ‹neSÇr amerika ma laÅ‹neSÇr VietnamSÇr VanuatuWallis " + - "ne FutunaSÇr SamoaYemeÅ‹MayotAfrika nekÇsÇÅ‹ZambiyaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x001c, 0x0028, 0x003b, 0x0042, 0x004a, - 0x0052, 0x006b, 0x0071, 0x0071, 0x007c, 0x0089, 0x0091, 0x009b, - 0x00a0, 0x00a0, 0x00ab, 0x00c1, 0x00ca, 0x00d7, 0x00de, 0x00ea, - 0x00f3, 0x00fb, 0x0102, 0x0108, 0x0108, 0x0111, 0x0118, 0x0120, - 0x0120, 0x0128, 0x012f, 0x0135, 0x0135, 0x013d, 0x0148, 0x0150, - 0x0156, 0x0156, 0x016f, 0x017a, 0x017f, 0x0189, 0x0195, 0x01a3, - 0x01a8, 0x01b0, 0x01b5, 0x01be, 0x01be, 0x01c8, 0x01cc, 0x01d9, - 0x01d9, 0x01d9, 0x01e1, 0x01ea, 0x01f3, 0x01f3, 0x01fb, 0x0203, - // Entry 40 - 7F - 0x020a, 0x021d, 0x0225, 0x0225, 0x022d, 0x0235, 0x023f, 0x023f, - 0x024a, 0x0253, 0x025a, 0x025a, 0x0266, 0x026f, 0x0287, 0x0292, - 0x0292, 0x029a, 0x02a0, 0x02ae, 0x02b6, 0x02be, 0x02d5, 0x02d5, - 0x02d9, 0x02e7, 0x02f5, 0x02fc, 0x0301, 0x0311, 0x031b, 0x0324, - 0x0324, 0x032d, 0x0331, 0x0340, 0x0346, 0x0346, 0x0346, 0x0353, - 0x035b, 0x0365, 0x036d, 0x036d, 0x0377, 0x0383, 0x038e, 0x038e, - 0x0398, 0x03ab, 0x03af, 0x03b4, 0x03bf, 0x03c6, 0x03c6, 0x03cd, - 0x03d6, 0x03dc, 0x03e6, 0x03f1, 0x03fa, 0x0407, 0x040d, 0x0423, - // Entry 80 - BF - 0x0436, 0x044a, 0x0455, 0x0465, 0x046f, 0x0478, 0x047e, 0x0488, - 0x0496, 0x04a0, 0x04a8, 0x04b4, 0x04bd, 0x04cb, 0x04d3, 0x04d9, - 0x04de, 0x04e4, 0x04ed, 0x04ed, 0x04ed, 0x04f7, 0x050e, 0x0518, - 0x0521, 0x052d, 0x0536, 0x0536, 0x054a, 0x0553, 0x055e, 0x056d, - 0x0577, 0x0584, 0x058c, 0x0597, 0x059d, 0x05a6, 0x05af, 0x05b7, - 0x05c7, 0x05d1, 0x05e2, 0x05ea, 0x05f3, 0x0602, 0x060a, 0x0614, - 0x061e, 0x0622, 0x062e, 0x0633, 0x063e, 0x0642, 0x065d, 0x0672, - 0x067a, 0x0683, 0x068a, 0x06a1, 0x06a9, 0x06b3, 0x06c3, 0x06d0, - // Entry C0 - FF - 0x06da, 0x06e2, 0x06e7, 0x06e7, 0x06f3, 0x06fb, 0x06fb, 0x0702, - 0x0708, 0x0714, 0x072a, 0x0731, 0x0737, 0x0740, 0x0748, 0x0753, - 0x075c, 0x075c, 0x0765, 0x0772, 0x077d, 0x0784, 0x078c, 0x0798, - 0x0798, 0x07ac, 0x07b9, 0x07b9, 0x07be, 0x07cc, 0x07cc, 0x07e7, - 0x07eb, 0x07eb, 0x07f4, 0x07fb, 0x0806, 0x0812, 0x081a, 0x0827, - 0x082f, 0x0839, 0x0840, 0x0851, 0x085c, 0x0863, 0x086c, 0x0873, - 0x0879, 0x0879, 0x0880, 0x0887, 0x0892, 0x089a, 0x08b3, 0x08c1, - 0x08d7, 0x08ed, 0x08f9, 0x0905, 0x0915, 0x091f, 0x091f, 0x0925, - // Entry 100 - 13F - 0x092a, 0x093b, 0x0942, 0x094a, - }, - }, - { // my - myRegionStr, - myRegionIdx, - }, - { // naq - "AndorrabUnited Arab EmiratesAfghanistanniAntiguab tsî BarbudabAnguillabA" + - "lbaniabArmeniabNetherlands AntillesAngolabArgentinabAmericab SamoabA" + - "ustriabAustraliebArubabAzerbaijanniBosniab tsî HerzegovinabBarbadosB" + - "angladesBelgiummiBurkina FasobBulgariabBahrainBurundibBeninsBermudas" + - "BruneiBoliviabBraziliabBahamasBhutansBotswanabBelarusBelizeKanadabDe" + - "mocratic Republic of the CongoCentral African RepublikiCongobSwitzer" + - "landiIvoorkusiCook IslandsChilibCameroonniChinabColombiabCosta RicaC" + - "ubabCape Verde IslandsCyprusCzech RepublikiDuitslandiDjiboutiDenmark" + - "iDominicabDominican RepublicAlgeriabEcuadoriEstoniabEgiptebEritreabS" + - "paniebEthiopiabFinlandiFijibFalkland IslandsMicronesiaFrankreikiGabo" + - "niUnited KingdomGrenadaGeorgiabFrench GuianaGhanabGibraltarGreenland" + - "GambiabGuineabGuadeloupeEquatorial GuineabXrikelandiGuatemalaGuamGui" + - "nea-BissauGuyanaHondurasCroatiabHaitiHongareiebIndonesiabIrlandiIsra" + - "eliIndiabBritish Indian Ocean TerritoryIraqiIranniIcelandItaliabJama" + - "icabJordanniJapanniKenyabKyrgyzstanniCambodiabKiribatiComorosSaint K" + - "itts and NevisKoreab, NoordKoreab, SuidKuwaitiCayman IslandsKazakhst" + - "anniLaosLebanonniSaint LuciaLiechtensteinniSri LankabLiberiabLesotho" + - "bLithuaniabLuxembourgiLatviaLibyabMoroccoMonacoMoldovaMadagascariMar" + - "shall IslandsMacedoniabMalibMyanmarMongoliaNorthern Mariana IslandsM" + - "artiniqueMauritaniaMontserratMaltaMauritiusMaldivesMalawibMexicobMal" + - "aysiabMozambikiNamibiabNew CaledoniaNigeriNorfolk IslandNigeriebNica" + - "raguabNetherlandsNoorweebNepaliNauruNiueNew ZealandiOmanPanamaPerubF" + - "rench PolynesiaPapua New GuineabPhilippinniPakistanniPolandiSaint Pi" + - "erre and MiquelonPitcairnPuerto RicoPalestinian West Bank and GazaPo" + - "rtugaliPalauParaguaibQatarRéunionRomaniaRasiabRwandabSaudi ArabiabSo" + - "lomon IslandsSeychellesSudanniSwedebSingaporeSaint HelenaSloveniaSlo" + - "vakiaSierra LeoneSan MarinoSenegaliSomaliabSurinameSão Tomé and Prín" + - "cipeEl SalvadoriSyriabSwazilandiTurks and Caicos IslandsChadiTogobTh" + - "ailandiTajikistanTokelauEast TimorTurkmenistanTunisiabTongaTurkeiebT" + - "rinidad and TobagoTuvaluTaiwanTanzaniabUkraineUgandabAmerikabUruguai" + - "bUzbekistanVatican StateSaint Vincent and the GrenadinesVenezuelabBr" + - "itish Virgin IslandsU.S. Virgin IslandsVietnammiVanuatuWallis and Fu" + - "tunaSamoaYemenMayotteSuid AfrikabZambiabZimbabweb", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0008, 0x001c, 0x0029, 0x003f, 0x0048, 0x0050, - 0x0058, 0x006c, 0x0073, 0x0073, 0x007d, 0x008c, 0x0094, 0x009e, - 0x00a4, 0x00a4, 0x00b0, 0x00c9, 0x00d1, 0x00da, 0x00e3, 0x00f0, - 0x00f9, 0x0100, 0x0108, 0x010e, 0x010e, 0x0116, 0x011c, 0x0124, - 0x0124, 0x012d, 0x0134, 0x013b, 0x013b, 0x0144, 0x014b, 0x0151, - 0x0158, 0x0158, 0x0178, 0x0191, 0x0197, 0x01a3, 0x01ac, 0x01b8, - 0x01be, 0x01c8, 0x01ce, 0x01d7, 0x01d7, 0x01e1, 0x01e6, 0x01f8, - 0x01f8, 0x01f8, 0x01fe, 0x020d, 0x0217, 0x0217, 0x021f, 0x0227, - // Entry 40 - 7F - 0x0230, 0x0242, 0x024a, 0x024a, 0x0252, 0x025a, 0x0261, 0x0261, - 0x0269, 0x0270, 0x0279, 0x0279, 0x0281, 0x0286, 0x0296, 0x02a0, - 0x02a0, 0x02aa, 0x02b0, 0x02be, 0x02c5, 0x02cd, 0x02da, 0x02da, - 0x02e0, 0x02e9, 0x02f2, 0x02f9, 0x0300, 0x030a, 0x031c, 0x0326, - 0x0326, 0x032f, 0x0333, 0x0340, 0x0346, 0x0346, 0x0346, 0x034e, - 0x0356, 0x035b, 0x0365, 0x0365, 0x036f, 0x0376, 0x037d, 0x037d, - 0x0383, 0x03a1, 0x03a6, 0x03ac, 0x03b3, 0x03ba, 0x03ba, 0x03c2, - 0x03ca, 0x03d1, 0x03d7, 0x03e3, 0x03ec, 0x03f4, 0x03fb, 0x0410, - // Entry 80 - BF - 0x041d, 0x0429, 0x0430, 0x043e, 0x044a, 0x044e, 0x0457, 0x0462, - 0x0471, 0x047b, 0x0483, 0x048b, 0x0495, 0x04a0, 0x04a6, 0x04ac, - 0x04b3, 0x04b9, 0x04c0, 0x04c0, 0x04c0, 0x04cb, 0x04db, 0x04e5, - 0x04ea, 0x04f1, 0x04f9, 0x04f9, 0x0511, 0x051b, 0x0525, 0x052f, - 0x0534, 0x053d, 0x0545, 0x054c, 0x0553, 0x055c, 0x0565, 0x056d, - 0x057a, 0x0580, 0x058e, 0x0596, 0x05a0, 0x05ab, 0x05b3, 0x05b9, - 0x05be, 0x05c2, 0x05ce, 0x05d2, 0x05d8, 0x05dd, 0x05ed, 0x05fe, - 0x0609, 0x0613, 0x061a, 0x0633, 0x063b, 0x0646, 0x0664, 0x066d, - // Entry C0 - FF - 0x0672, 0x067b, 0x0680, 0x0680, 0x0688, 0x068f, 0x068f, 0x0695, - 0x069c, 0x06a9, 0x06b8, 0x06c2, 0x06c9, 0x06cf, 0x06d8, 0x06e4, - 0x06ec, 0x06ec, 0x06f4, 0x0700, 0x070a, 0x0712, 0x071a, 0x0722, - 0x0722, 0x073a, 0x0746, 0x0746, 0x074c, 0x0756, 0x0756, 0x076e, - 0x0773, 0x0773, 0x0778, 0x0781, 0x078b, 0x0792, 0x079c, 0x07a8, - 0x07b0, 0x07b5, 0x07bd, 0x07d0, 0x07d6, 0x07dc, 0x07e5, 0x07ec, - 0x07f3, 0x07f3, 0x07fb, 0x0803, 0x080d, 0x081a, 0x083a, 0x0844, - 0x085a, 0x086d, 0x0876, 0x087d, 0x088e, 0x0893, 0x0893, 0x0898, - // Entry 100 - 13F - 0x089f, 0x08ab, 0x08b2, 0x08bb, - }, - }, - { // nd - "AndoraUnited Arab EmiratesAfghanistanAntigua le BarbudaAnguillaAlbaniaAr" + - "meniaNetherlands AntillesAngolaAjentinaSamoa ye AmelikaAustriaAustra" + - "liaArubhaAzerbaijanBhosnia le HerzegovinaBhabhadosiBhangiladeshiBhel" + - "giumBhukina FasoBhulgariyaBhahareniBhurundiBheniniBhemudaBruneiBholi" + - "viyaBraziliBhahamasBhutaniBotswanaBhelarusiBhelizeKhanadaDemocratic " + - "Republic of the CongoCentral African RepublicKhongoSwitzerlandIvory " + - "CoastCook IslandsChileKhameruniChinaKholombiyaKhosta RikhaCubaCape V" + - "erde IslandsCyprusCzech RepublicGermanyDjiboutiDenmakhiDominikhaDomi" + - "nican RepublicAljeriyaEcuadorEstoniaEgyptEritreaSpainEthiopiaFinland" + - "FijiFalkland IslandsMicronesiaFuransiGabhoniUnited KingdomGrenadaGeo" + - "rgiaGwiyana ye FuransiGhanaGibraltarGreenlandGambiyaGuineaGuadeloupe" + - "Equatorial GuineaGreeceGuatemalaGuamGuinea-BissauGuyanaHondurasCroat" + - "iaHayitiHungaryIndonesiyaIrelandIsuraeliIndiyaBritish Indian Ocean T" + - "erritoryIrakiIranIcelandItaliJamaicaJodaniJapanKhenyaKyrgyzstanCambo" + - "diaKhiribatiKhomoroSaint Kitts and NevisNorth KoreaSouth KoreaKhuwei" + - "tiCayman IslandsKazakhstanLaosLebhanoniSaint LuciaLiechtensteinSri L" + - "ankaLibheriyaLesothoLithuaniaLuxembourgLatviaLibhiyaMorokhoMonakhoMo" + - "ldovaMadagaskaMarshall IslandsMacedoniaMaliMyanmarMongoliaNorthern M" + - "ariana IslandsMartiniqueMauritaniaMontserratMaltaMauritiusMaldivesMa" + - "lawiMeksikhoMalezhiyaMozambiqueNamibhiyaNew CaledoniaNigerNorfolk Is" + - "landNigeriyaNicaraguaNetherlandsNoweyiNephaliNauruNiueNew ZealandOma" + - "niPanamaPheruPholinesiya ye FulansiPapua New GuineaPhilippinesPhakis" + - "taniPholandiSaint Pierre and MiquelonPitcairnPuerto RicoPalestinian " + - "West Bank and GazaPortugalPalauParaguayKathariRéunionRomaniaRashiyaR" + - "uwandaSaudi ArabiaSolomon IslandsSeychellesSudaniSwedenSingaporeSain" + - "t HelenaSloveniaSlovakiaSierra LeoneSan MarinoSenegaliSomaliyaSurina" + - "meSão Tomé and PríncipeEl SalvadorSyriaSwazilandTurks and Caicos Isl" + - "andsChadiThogoThayilandiTajikistanThokelawuEast TimorTurkmenistanTun" + - "isiyaThongaThekhiTrinidad le TobagoThuvaluThayiwaniTanzaniyaYukreini" + - "UgandaAmelikaYurugwaiUzbekistanVatican StateSaint Vincent and the Gr" + - "enadinesVenezuelaBritish Virgin IslandsU.S. Virgin IslandsVietnamVha" + - "nuatuWallis and FutunaSamowaYemeniMayotteMzansi ye AfrikaZambiyaZimb" + - "abwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x001a, 0x0025, 0x0037, 0x003f, 0x0046, - 0x004d, 0x0061, 0x0067, 0x0067, 0x006f, 0x007f, 0x0086, 0x008f, - 0x0095, 0x0095, 0x009f, 0x00b5, 0x00bf, 0x00cc, 0x00d4, 0x00e0, - 0x00ea, 0x00f3, 0x00fb, 0x0102, 0x0102, 0x0109, 0x010f, 0x0118, - 0x0118, 0x011f, 0x0127, 0x012e, 0x012e, 0x0136, 0x013f, 0x0146, - 0x014d, 0x014d, 0x016d, 0x0185, 0x018b, 0x0196, 0x01a1, 0x01ad, - 0x01b2, 0x01bb, 0x01c0, 0x01ca, 0x01ca, 0x01d6, 0x01da, 0x01ec, - 0x01ec, 0x01ec, 0x01f2, 0x0200, 0x0207, 0x0207, 0x020f, 0x0217, - // Entry 40 - 7F - 0x0220, 0x0232, 0x023a, 0x023a, 0x0241, 0x0248, 0x024d, 0x024d, - 0x0254, 0x0259, 0x0261, 0x0261, 0x0268, 0x026c, 0x027c, 0x0286, - 0x0286, 0x028d, 0x0294, 0x02a2, 0x02a9, 0x02b0, 0x02c2, 0x02c2, - 0x02c7, 0x02d0, 0x02d9, 0x02e0, 0x02e6, 0x02f0, 0x0301, 0x0307, - 0x0307, 0x0310, 0x0314, 0x0321, 0x0327, 0x0327, 0x0327, 0x032f, - 0x0336, 0x033c, 0x0343, 0x0343, 0x034d, 0x0354, 0x035c, 0x035c, - 0x0362, 0x0380, 0x0385, 0x0389, 0x0390, 0x0395, 0x0395, 0x039c, - 0x03a2, 0x03a7, 0x03ad, 0x03b7, 0x03bf, 0x03c8, 0x03cf, 0x03e4, - // Entry 80 - BF - 0x03ef, 0x03fa, 0x0402, 0x0410, 0x041a, 0x041e, 0x0427, 0x0432, - 0x043f, 0x0448, 0x0451, 0x0458, 0x0461, 0x046b, 0x0471, 0x0478, - 0x047f, 0x0486, 0x048d, 0x048d, 0x048d, 0x0496, 0x04a6, 0x04af, - 0x04b3, 0x04ba, 0x04c2, 0x04c2, 0x04da, 0x04e4, 0x04ee, 0x04f8, - 0x04fd, 0x0506, 0x050e, 0x0514, 0x051c, 0x0525, 0x052f, 0x0538, - 0x0545, 0x054a, 0x0558, 0x0560, 0x0569, 0x0574, 0x057a, 0x0581, - 0x0586, 0x058a, 0x0595, 0x059a, 0x05a0, 0x05a5, 0x05bb, 0x05cb, - 0x05d6, 0x05e0, 0x05e8, 0x0601, 0x0609, 0x0614, 0x0632, 0x063a, - // Entry C0 - FF - 0x063f, 0x0647, 0x064e, 0x064e, 0x0656, 0x065d, 0x065d, 0x0664, - 0x066b, 0x0677, 0x0686, 0x0690, 0x0696, 0x069c, 0x06a5, 0x06b1, - 0x06b9, 0x06b9, 0x06c1, 0x06cd, 0x06d7, 0x06df, 0x06e7, 0x06ef, - 0x06ef, 0x0707, 0x0712, 0x0712, 0x0717, 0x0720, 0x0720, 0x0738, - 0x073d, 0x073d, 0x0742, 0x074c, 0x0756, 0x075f, 0x0769, 0x0775, - 0x077d, 0x0783, 0x0789, 0x079b, 0x07a2, 0x07ab, 0x07b4, 0x07bc, - 0x07c2, 0x07c2, 0x07c9, 0x07d1, 0x07db, 0x07e8, 0x0808, 0x0811, - 0x0827, 0x083a, 0x0841, 0x0849, 0x085a, 0x0860, 0x0860, 0x0866, - // Entry 100 - 13F - 0x086d, 0x087d, 0x0884, 0x088c, - }, - }, - { // ne - neRegionStr, - neRegionIdx, - }, - { // nl - nlRegionStr, - nlRegionIdx, - }, - { // nmg - "AndÉ”ÌraMinlambÉ”Ì NsaÅ‹Ìnsa mí ArabiaAfganistaÅ‹Antíga bá BarbúdaAnguíllaAl" + - "baniaArméniaB’Antilles bó NedÉ›rlandAngolaArgentínaSamoa m ÌAmÉ›ÌrkaÖt" + - "rishÖstraliáÃrúbaAzerbaïjaÅ‹Bosnia na ÆrzegovinaBarbadoBɛŋgladÉ›shBÉ›lg" + - "ikBurkina FasoBulgariaBahrainBurundiBeninBÉ›rmudaBrunÉ›iBoliviaBrésilB" + - "ahamasButaÅ‹BotswanaBelarusBÉ›lizKanadaKongó ZaïreSentrafríkaKongoSwit" + - "zÉ›rlandKote d´IvoireMaÅ‹Ì má KookTshiliKamerunShineKÉ”lÉ”ÌmbiaKosta Rík" + - "aKubaMaÅ‹Ì má KapvÉ›rSipriaNlambÉ”Ì bó tschÉ›kJamanJibútiDanemarkDominík" + - "aNlambÉ”Ì DominíkaAlgeriaEkuateurÆstoniaÄgyptÉ›nErytreaPaŋáEthiopiáFin" + - "landeFijiáMaÅ‹ má FalklandMikronesiaFalaGabɔŋNlambÉ”Ì NgÉ›lÉ›nGrenadaJÉ”r" + - "giaGuyane FalaGánaGilbratarGreenlandGambiaGuineGuadeloupGuine Ekuato" + - "rialGrÉ›ceGuatemalaGuamGuine BissoGuyanaƆndúrasKroasiaHaïtiƆngríaIndo" + - "nesiaIrlandÄsrÉ›lIndiaNlambÉ”Ì ngÉ›lÉ›n ma yí maÅ‹ ntsiÉ›hIrakIranIslandIt" + - "aliaJamaikaJÉ”rdaniaJapÉ”nKÉ›nyaKyrgystaÅ‹KambodiaKiribatiKÉ”mÉ”rSaint Kit" + - "ts na NevisKoré yí bvuÉ”Koré yí síKowÉ›itMaÅ‹Ì má kumbiKazakstaÅ‹LaosLib" + - "aÅ‹Saint LuciaLishensteinSri LankaLiberiaLesotoLituaniáLuxembourgLatv" + - "iaLibyaMarÉ”kMonakoMÉ”ldaviaMadagaskarMaÅ‹Ì má MarshallMacedoniaMaliMya" + - "nmarMÉ”ngoliaMaÅ‹Ì MariáMartinikaMoritaniaMÉ”nserratMaltaMorisseMaldivi" + - "aMalawiMÉ›xikMalaysiaMozambikNamibiaKaledoni nwanahNigerMaÅ‹Ì má NÉ”rfÉ”" + - "rkNigeriaNikaraguaNedÉ›rlandNÉ”rvÉ›gNepalNoruNiuÉ›Zeland nwanahOmanPanam" + - "aPeruPolynesia FalaGuine PapuasiFilipinPakistanPÉ”lɔŋSaint Peter ba M" + - "ikelÉ”nPitkairnPuÉ›rto RikoPalÉ›stinPÉ”rtugalPaloParaguayKatarRéuniÉ”nRou" + - "maniaRussiRwandaSaudi ArabiaMaÅ‹Ì má SalomÉ”nSeychÉ›lleSudaÅ‹SuÉ›dSingapu" + - "rSaint LinaSloveniaSlovakiaSierra LeÉ”nSan MarinoSenegalSomáliaSurina" + - "mSao Tomé ba PrinshipSalvadÉ”rSyriaSwazilandMaÅ‹Ì má Turk na KaikoTsha" + - "dTogoTaïlandTajikistaÅ‹TokeloTimÉ”r tsindikÄ“hTurkmÉ›nistaÅ‹TunisiáTÉ”ngaT" + - "urkiTrinidad ba TobágóTuvalúTaïwanTanzáníaUkrÉ›nUgandaAmɛŕkaUruguayUs" + - "bÇkistaÅ‹VatikaÅ‹Saint Vincent ba GrenadinesVÇnÇzuelaMinsilÉ›Ì mímaÅ‹ mí" + - " ngɛ̄lɛ̄nMinsilÉ› mí maÅ‹Ì m´AmÉ›rkaViÉ›tnamVanuatuWallis ba FutunaSamoa" + - "YÇmÉ›nMayÉ”tAfríka yí síZambiaZimbabwÇ", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0009, 0x002a, 0x0035, 0x0049, 0x0052, 0x0059, - 0x0061, 0x007c, 0x0082, 0x0082, 0x008c, 0x009f, 0x00a6, 0x00b0, - 0x00b7, 0x00b7, 0x00c3, 0x00d8, 0x00df, 0x00ec, 0x00f3, 0x00ff, - 0x0107, 0x010e, 0x0115, 0x011a, 0x011a, 0x0122, 0x0129, 0x0130, - 0x0130, 0x0137, 0x013e, 0x0144, 0x0144, 0x014c, 0x0153, 0x0159, - 0x015f, 0x015f, 0x016c, 0x0178, 0x017d, 0x0189, 0x0197, 0x01a6, - 0x01ac, 0x01b3, 0x01b8, 0x01c4, 0x01c4, 0x01cf, 0x01d3, 0x01e5, - 0x01e5, 0x01e5, 0x01eb, 0x0200, 0x0205, 0x0205, 0x020c, 0x0214, - // Entry 40 - 7F - 0x021d, 0x0230, 0x0237, 0x0237, 0x023f, 0x0247, 0x0250, 0x0250, - 0x0257, 0x025d, 0x0266, 0x0266, 0x026e, 0x0274, 0x0285, 0x028f, - 0x028f, 0x0293, 0x029a, 0x02ac, 0x02b3, 0x02ba, 0x02c5, 0x02c5, - 0x02ca, 0x02d3, 0x02dc, 0x02e2, 0x02e7, 0x02f0, 0x0300, 0x0306, - 0x0306, 0x030f, 0x0313, 0x031e, 0x0324, 0x0324, 0x0324, 0x032d, - 0x0334, 0x033a, 0x0342, 0x0342, 0x034b, 0x0351, 0x0358, 0x0358, - 0x035d, 0x0383, 0x0387, 0x038b, 0x0391, 0x0397, 0x0397, 0x039e, - 0x03a7, 0x03ad, 0x03b3, 0x03bd, 0x03c5, 0x03cd, 0x03d4, 0x03e8, - // Entry 80 - BF - 0x03f7, 0x0404, 0x040b, 0x041b, 0x0425, 0x0429, 0x042f, 0x043a, - 0x0445, 0x044e, 0x0455, 0x045b, 0x0464, 0x046e, 0x0474, 0x0479, - 0x047f, 0x0485, 0x048e, 0x048e, 0x048e, 0x0498, 0x04ab, 0x04b4, - 0x04b8, 0x04bf, 0x04c8, 0x04c8, 0x04d5, 0x04de, 0x04e7, 0x04f1, - 0x04f6, 0x04fd, 0x0505, 0x050b, 0x0511, 0x0519, 0x0521, 0x0528, - 0x0537, 0x053c, 0x0550, 0x0557, 0x0560, 0x056a, 0x0572, 0x0577, - 0x057b, 0x0580, 0x058d, 0x0591, 0x0597, 0x059b, 0x05a9, 0x05b6, - 0x05bd, 0x05c5, 0x05cd, 0x05e4, 0x05ec, 0x05f8, 0x0601, 0x060a, - // Entry C0 - FF - 0x060e, 0x0616, 0x061b, 0x061b, 0x0624, 0x062c, 0x062c, 0x0631, - 0x0637, 0x0643, 0x0656, 0x0660, 0x0666, 0x066b, 0x0673, 0x067d, - 0x0685, 0x0685, 0x068d, 0x0699, 0x06a3, 0x06aa, 0x06b2, 0x06b9, - 0x06b9, 0x06ce, 0x06d7, 0x06d7, 0x06dc, 0x06e5, 0x06e5, 0x06fd, - 0x0702, 0x0702, 0x0706, 0x070e, 0x0719, 0x071f, 0x0730, 0x073e, - 0x0746, 0x074c, 0x0751, 0x0765, 0x076c, 0x0773, 0x077d, 0x0783, - 0x0789, 0x0789, 0x0791, 0x0798, 0x07a4, 0x07ac, 0x07c7, 0x07d2, - 0x07f5, 0x0813, 0x081b, 0x0822, 0x0832, 0x0837, 0x0837, 0x083e, - // Entry 100 - 13F - 0x0844, 0x0853, 0x0859, 0x0862, - }, - }, - { // nn - "AscensionAndorraDei sameinte arabiske emirataAfghanistanAntigua og Barbu" + - "daAnguillaAlbaniaArmeniaDei nederlandske AntillaneAngolaAntarktisArg" + - "entinaAmerikansk SamoaAusterrikeAustraliaArubaÃ…landAserbajdsjanBosni" + - "a og HercegovinaBarbadosBangladeshBelgiaBurkina FasoBulgariaBahrainB" + - "urundiBeninSaint BarthélemyBermudaBrunei DarussalamBoliviaBrasilBaha" + - "masBhutanBouvetøyaBotswanaKviterusslandBelizeCanadaKokosøyaneKongo-K" + - "inshasaDen sentralafrikanske republikkenKongo-BrazzavilleSveitsElfen" + - "beinskystenCookøyaneChileKamerunKinaColombiaClippertonøyaCosta RicaC" + - "ubaKapp VerdeChristmasøyaKyprosTsjekkiaTysklandDiego GarciaDjiboutiD" + - "anmarkDominicaDen dominikanske republikkenAlgerieCeuta og MelillaEcu" + - "adorEstlandEgyptVest-SaharaEritreaSpaniaEtiopiaDen europeiske unione" + - "nFinlandFijiFalklandsøyaneMikronesiaføderasjonenFærøyaneFrankrikeGab" + - "onStorbritanniaGrenadaGeorgiaFransk GuyanaGuernseyGhanaGibraltarGrøn" + - "landGambiaGuineaGuadeloupeEkvatorial-GuineaHellasSør-Georgia og Sør-" + - "Sandwich-øyaneGuatemalaGuamGuinea-BissauGuyanaHongkong S.A.R. KinaHe" + - "ard- og McDonaldsøyaneHondurasKroatiaHaitiUngarnKanariøyaneIndonesia" + - "IrlandIsraelManIndiaBritiske omrÃ¥de i Det indiske havIrakIranIslandI" + - "taliaJerseyJamaicaJordanJapanKenyaKirgisistanKambodsjaKiribatiKomore" + - "neSt. Christopher og NevisNord-KoreaSør-KoreaKuwaitCaymanøyaneKasakh" + - "stanLaosLibanonSt. LuciaLiechtensteinSri LankaLiberiaLesothoLitauenL" + - "uxembourgLatviaLibyaMarokkoMonacoMoldovaMontenegroSaint MartinMadaga" + - "skarMarshalløyaneMakedoniaMaliMyanmarMongoliaMacao S.A.R. KinaNord-M" + - "ariananeMartiniqueMauritaniaMontserratMaltaMauritiusMaldivaneMalawiM" + - "exicoMalaysiaMosambikNamibiaNy-CaledoniaNigerNorfolkøyaneNigeriaNica" + - "raguaNederlandNoregNepalNauruNiueNew ZealandOmanPanamaPeruFransk Pol" + - "ynesiaPapua Ny-GuineaFilippinanePakistanPolenSt. Pierre og MiquelonP" + - "itcairnPuerto RicoPalestinsk territoriumPortugalPalauParaguayQatarYt" + - "re OseaniaRéunionRomaniaSerbiaRusslandRwandaSaudi ArabiaSalomonøyane" + - "SeychellaneSudanSverigeSingaporeSaint HelenaSloveniaSvalbard og Jan " + - "MayenSlovakiaSierra LeoneSan MarinoSenegalSomaliaSurinamSão Tomé og " + - "PríncipeEl SalvadorSyriaSwazilandTristan da CunhaTurks- og Caicosøya" + - "neTchadFranske søromrÃ¥deTogoThailandTadsjikistanTokelauAust-TimorTur" + - "kmenistanTunisiaTongaTyrkiaTrinidad og TobagoTuvaluTaiwanTanzaniaUkr" + - "ainaUgandaUSAs ytre småøyarUSAUruguayUsbekistanVatikanstatenSt. Vinc" + - "ent og GrenadinaneVenezuelaDei britiske jomfruøyaneDei amerikanske j" + - "omfruøyaneVietnamVanuatuWallis og FutunaSamoaYemenMayotteSør-AfrikaZ" + - "ambiaZimbabweukjent omrÃ¥deverdaAfrikaNord-AmerikaSør-AmerikaOseaniaV" + - "est-AfrikaSentral-AmerikaAust-AfrikaNord-AfrikaSentral-AfrikaSørlege" + - " AfrikaAmerikanordlege AmerikaKaribiaAust-AsiaSør-AsiaSøraust-AsiaSø" + - "r-EuropaAustralia og New ZealandMelanesiaMikronesiaPolynesiaAsiaSent" + - "ral-AsiaVest-AsiaEuropaAust-EuropaNord-EuropaVest-EuropaLatin-Amerik" + - "a", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0009, 0x0010, 0x002d, 0x0038, 0x004a, 0x0052, 0x0059, - 0x0060, 0x007a, 0x0080, 0x0089, 0x0092, 0x00a2, 0x00ac, 0x00b5, - 0x00ba, 0x00c0, 0x00cc, 0x00e1, 0x00e9, 0x00f3, 0x00f9, 0x0105, - 0x010d, 0x0114, 0x011b, 0x0120, 0x0131, 0x0138, 0x0149, 0x0150, - 0x0150, 0x0156, 0x015d, 0x0163, 0x016d, 0x0175, 0x0182, 0x0188, - 0x018e, 0x0199, 0x01a7, 0x01c8, 0x01d9, 0x01df, 0x01ef, 0x01f9, - 0x01fe, 0x0205, 0x0209, 0x0211, 0x021f, 0x0229, 0x022d, 0x0237, - 0x0237, 0x0244, 0x024a, 0x0252, 0x025a, 0x0266, 0x026e, 0x0275, - // Entry 40 - 7F - 0x027d, 0x0299, 0x02a0, 0x02b0, 0x02b7, 0x02be, 0x02c3, 0x02ce, - 0x02d5, 0x02db, 0x02e2, 0x02f8, 0x02ff, 0x0303, 0x0312, 0x0329, - 0x0333, 0x033c, 0x0341, 0x034e, 0x0355, 0x035c, 0x0369, 0x0371, - 0x0376, 0x037f, 0x0388, 0x038e, 0x0394, 0x039e, 0x03af, 0x03b5, - 0x03d9, 0x03e2, 0x03e6, 0x03f3, 0x03f9, 0x040d, 0x0426, 0x042e, - 0x0435, 0x043a, 0x0440, 0x044c, 0x0455, 0x045b, 0x0461, 0x0464, - 0x0469, 0x048b, 0x048f, 0x0493, 0x0499, 0x049f, 0x04a5, 0x04ac, - 0x04b2, 0x04b7, 0x04bc, 0x04c7, 0x04d0, 0x04d8, 0x04e0, 0x04f8, - // Entry 80 - BF - 0x0502, 0x050c, 0x0512, 0x051e, 0x0528, 0x052c, 0x0533, 0x053c, - 0x0549, 0x0552, 0x0559, 0x0560, 0x0567, 0x0571, 0x0577, 0x057c, - 0x0583, 0x0589, 0x0590, 0x059a, 0x05a6, 0x05b0, 0x05be, 0x05c7, - 0x05cb, 0x05d2, 0x05da, 0x05eb, 0x05f9, 0x0603, 0x060d, 0x0617, - 0x061c, 0x0625, 0x062e, 0x0634, 0x063a, 0x0642, 0x064a, 0x0651, - 0x065d, 0x0662, 0x066f, 0x0676, 0x067f, 0x0688, 0x068d, 0x0692, - 0x0697, 0x069b, 0x06a6, 0x06aa, 0x06b0, 0x06b4, 0x06c4, 0x06d3, - 0x06de, 0x06e6, 0x06eb, 0x0701, 0x0709, 0x0714, 0x072a, 0x0732, - // Entry C0 - FF - 0x0737, 0x073f, 0x0744, 0x0750, 0x0758, 0x075f, 0x0765, 0x076d, - 0x0773, 0x077f, 0x078c, 0x0797, 0x079c, 0x07a3, 0x07ac, 0x07b8, - 0x07c0, 0x07d5, 0x07dd, 0x07e9, 0x07f3, 0x07fa, 0x0801, 0x0808, - 0x0808, 0x081f, 0x082a, 0x082a, 0x082f, 0x0838, 0x0848, 0x085e, - 0x0863, 0x0876, 0x087a, 0x0882, 0x088e, 0x0895, 0x089f, 0x08ab, - 0x08b2, 0x08b7, 0x08bd, 0x08cf, 0x08d5, 0x08db, 0x08e3, 0x08ea, - 0x08f0, 0x0903, 0x0906, 0x090d, 0x0917, 0x0924, 0x093e, 0x0947, - 0x0960, 0x097c, 0x0983, 0x098a, 0x099a, 0x099f, 0x099f, 0x09a4, - // Entry 100 - 13F - 0x09ab, 0x09b6, 0x09bc, 0x09c4, 0x09d2, 0x09d7, 0x09dd, 0x09e9, - 0x09f5, 0x09fc, 0x0a07, 0x0a16, 0x0a21, 0x0a2c, 0x0a3a, 0x0a49, - 0x0a50, 0x0a60, 0x0a67, 0x0a70, 0x0a79, 0x0a86, 0x0a91, 0x0aa9, - 0x0ab2, 0x0abc, 0x0ac5, 0x0ac9, 0x0ad5, 0x0ade, 0x0ae4, 0x0aef, - 0x0afa, 0x0b05, 0x0b12, - }, - }, - { // nnh - "Kàmalûm", - []uint16{ // 50 elements - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0009, - }, - }, - { // no - noRegionStr, - noRegionIdx, - }, - { // nus - "AndoraAbganithtanAntiguaa kÉ›nÉ› BarbudaAÅ‹guÉ›laAlbäniaAÉ›rmäniaAÅ‹golaAÉ›rgen" + - "tinAmerika thamowAthtÉ›riaAthÉ”ra̱liaArubaAdhe̱rbe̱ja̱nBothnia kÉ›nÉ› ɣä" + - "rgobiniaBärbadothBengeladiecBe̱lgimBurkinÉ› pa̱thuBulga̱a̱riaBa̱reenB" + - "urundiBe̱ni̱nBe̱rmudaaBurunÉ›yBulibiaBäraadhiilBämuÉ”thButa̱nBothiwaan" + - "aBe̱lÉ›ruthBilidhaKänÉ›daCÉ›ntrÉ”l aprika repuÉ”blicKɔŋgÉ”Kodibo̱o̱Kuk É£a̱" + - "ylÉ›nCili̱KÉ›mÉ›runCaynaKolombiaKothtirikaKÉ›p bedi É£a̱ylÉ›nAlgeriaKorwaa" + - "tiaBurutic É£e̱ndian oce̱nKombodiaKomruthKaymÉ›n É£a̱ylÉ›nSudanCa̱dBurut" + - "ic dhuɔ̱ɔ̱l be̱rgin", - []uint16{ // 249 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0006, 0x0011, 0x0028, 0x0031, 0x0039, - 0x0043, 0x0043, 0x004a, 0x004a, 0x0054, 0x0062, 0x006b, 0x0077, - 0x007c, 0x007c, 0x008c, 0x00a7, 0x00b1, 0x00bc, 0x00c4, 0x00d4, - 0x00e1, 0x00e9, 0x00f0, 0x00f9, 0x00f9, 0x0103, 0x010b, 0x0112, - 0x0112, 0x011d, 0x0126, 0x012d, 0x012d, 0x0137, 0x0142, 0x0149, - 0x0151, 0x0151, 0x0151, 0x016c, 0x0174, 0x0174, 0x017f, 0x018d, - 0x0193, 0x019c, 0x01a1, 0x01a9, 0x01a9, 0x01b3, 0x01b3, 0x01c7, - 0x01c7, 0x01c7, 0x01c7, 0x01c7, 0x01c7, 0x01c7, 0x01c7, 0x01c7, - // Entry 40 - 7F - 0x01c7, 0x01c7, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, - 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, - 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, - 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, - 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, - 0x01d7, 0x01d7, 0x01d7, 0x01d7, 0x01d7, 0x01d7, 0x01d7, 0x01d7, - 0x01d7, 0x01f0, 0x01f0, 0x01f0, 0x01f0, 0x01f0, 0x01f0, 0x01f0, - 0x01f0, 0x01f0, 0x01f0, 0x01f0, 0x01f8, 0x01f8, 0x01ff, 0x01ff, - // Entry 80 - BF - 0x01ff, 0x01ff, 0x01ff, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, - 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, - 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, - 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, - 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, - 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, - 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, - 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, - // Entry C0 - FF - 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, - 0x0211, 0x0211, 0x0211, 0x0211, 0x0216, 0x0216, 0x0216, 0x0216, - 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, - 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, - 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, - 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, - 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, - 0x0238, - }, - }, - { // nyn - "AndoraAmahanga ga Buharabu ageeteereineAfuganistaniAngiguwa na BabudaAng" + - "wiraArubaniaArimeniyaAntiri za HoorandiAngoraArigentinaSamowa ya Ame" + - "erikaOsituriaOsitureeriyaArubaAzabagyaniBoziniya na HezegovinaBabado" + - "siBangaradeshiBubirigiBokina FasoBurugariyaBahareniBurundiBeniniBeri" + - "mudaBuruneiBoriiviyaBuraziiriBahamaButaniBotswanaBararusiBerizeKanad" + - "aDemokoratika Ripaaburika ya KongoEihanga rya Rwagati ya AfirikaKong" + - "oSwisiAivore KositiEbizinga bya KuukuChileKameruuniChinaKorombiyaKos" + - "itarikaCubaEbizinga bya KepuvadeSaipurasiRipaaburika ya ZeekiBugirim" + - "aaniGyibutiDeenimaakaDominikaRipaaburika ya DominicaArigyeriyaIkweda" + - "EsitoniyaMisiriEriteriyaSipeyiniEthiyopiyaBufiniFigyiEbizinga bya Fa" + - "akilandaMikironesiyaBufaransaGabooniBungyerezaGurenadaGyogiyaGuyana " + - "ya BufaransaGanaGiburaataGuriinirandiGambiyaGineGwaderupeGuniGuriisi" + - "GwatemaraGwamuGinebisauGuyanaHondurasiKorasiyaHaitiHangareIndoneeziy" + - "aIrerandiIsirairiIndiyaEbizinga bya Indian ebya BungyerezaIraakaIraa" + - "niAisilandiItareGyamaikaYorudaaniGyapaaniKenyaKirigizistaniKambodiya" + - "KiribatiKoromoSenti Kittis na NevisiKoreya AmatembaKoreya AmashuumaK" + - "uweitiEbizinga bya KayimaniKazakisitaniLayosiLebanoniSenti RusiyaLis" + - "henteniSirirankaLiberiyaLesothoLithuaniaLakizembaagaLatviyaLibyaMoro" + - "ccoMonacoMoridovaMadagasikaEbizinga bya MarshaaMasedooniaMariMyanama" + - "rMongoriaEbizinga by’amatemba ga MarianaMartiniqueMauriteeniyaMontse" + - "rratiMaritaMaurishiasiMaridivesMarawiMexicomarayiziaMozambiqueNamibi" + - "yaNiukaredoniaNaigyaEkizinga NorifokoNaigyeriyaNikaragwaHoorandiNoor" + - "weNepoNauruNiueNiuzirandiOmaaniPanamaPeruPolinesia ya BufaransaPapua" + - "FiripinoPakisitaaniPoorandiSenti Piyerre na MikweronPitkainiPwetorik" + - "oParestiina na GazaPocugoPalaawuParagwaiKataRiyuniyoniRomaniyaRrasha" + - "RwandaSaudi AreebiyaEbizinga bya SurimaaniShesheresiSudaniSwideniSin" + - "gapoSenti HerenaSirovaaniyaSirovaakiyaSirra RiyooniSamarinoSenegoSom" + - "aariyaSurinaamuSawo Tome na PurinsipoEri SalivadoSiriyaSwazirandiEbi" + - "zinga bya Buturuki na KaikoChadiTogoTairandiTajikisitaniTokerawuBuru" + - "gweizooba bwa TimoriTurukimenisitaniTuniziaTongaButuruki /TakeTurini" + - "dad na TobagoTuvaruTayiwaaniTanzaniaUkureiniUgandaAmerikaUrugwaiUzib" + - "ekisitaniVatikaniSenti Vinsent na GurenadiniVenezuweraEbizinga bya V" + - "irigini ebya BungyerezaEbizinga bya Virigini ebya AmerikaViyetinaamu" + - "VanuatuWarris na FutunaSamowaYemeniMayoteSausi AfirikaZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0027, 0x0033, 0x0045, 0x004c, 0x0054, - 0x005d, 0x006f, 0x0075, 0x0075, 0x007f, 0x0091, 0x0099, 0x00a5, - 0x00aa, 0x00aa, 0x00b4, 0x00ca, 0x00d2, 0x00de, 0x00e6, 0x00f1, - 0x00fb, 0x0103, 0x010a, 0x0110, 0x0110, 0x0118, 0x011f, 0x0128, - 0x0128, 0x0131, 0x0137, 0x013d, 0x013d, 0x0145, 0x014d, 0x0153, - 0x0159, 0x0159, 0x017a, 0x0198, 0x019d, 0x01a2, 0x01af, 0x01c1, - 0x01c6, 0x01cf, 0x01d4, 0x01dd, 0x01dd, 0x01e7, 0x01eb, 0x0200, - 0x0200, 0x0200, 0x0209, 0x021d, 0x0228, 0x0228, 0x022f, 0x0239, - // Entry 40 - 7F - 0x0241, 0x0258, 0x0262, 0x0262, 0x0268, 0x0271, 0x0277, 0x0277, - 0x0280, 0x0288, 0x0292, 0x0292, 0x0298, 0x029d, 0x02b4, 0x02c0, - 0x02c0, 0x02c9, 0x02d0, 0x02da, 0x02e2, 0x02e9, 0x02fc, 0x02fc, - 0x0300, 0x0309, 0x0315, 0x031c, 0x0320, 0x0329, 0x032d, 0x0334, - 0x0334, 0x033d, 0x0342, 0x034b, 0x0351, 0x0351, 0x0351, 0x035a, - 0x0362, 0x0367, 0x036e, 0x036e, 0x0379, 0x0381, 0x0389, 0x0389, - 0x038f, 0x03b2, 0x03b8, 0x03be, 0x03c7, 0x03cc, 0x03cc, 0x03d4, - 0x03dd, 0x03e5, 0x03ea, 0x03f7, 0x0400, 0x0408, 0x040e, 0x0424, - // Entry 80 - BF - 0x0433, 0x0443, 0x044a, 0x045f, 0x046b, 0x0471, 0x0479, 0x0485, - 0x048f, 0x0498, 0x04a0, 0x04a7, 0x04b0, 0x04bc, 0x04c3, 0x04c8, - 0x04cf, 0x04d5, 0x04dd, 0x04dd, 0x04dd, 0x04e7, 0x04fb, 0x0505, - 0x0509, 0x0511, 0x0519, 0x0519, 0x053a, 0x0544, 0x0550, 0x055b, - 0x0561, 0x056c, 0x0575, 0x057b, 0x0581, 0x058a, 0x0594, 0x059c, - 0x05a8, 0x05ae, 0x05bf, 0x05c9, 0x05d2, 0x05da, 0x05e0, 0x05e4, - 0x05e9, 0x05ed, 0x05f7, 0x05fd, 0x0603, 0x0607, 0x061d, 0x0622, - 0x062a, 0x0635, 0x063d, 0x0656, 0x065e, 0x0667, 0x0679, 0x067f, - // Entry C0 - FF - 0x0686, 0x068e, 0x0692, 0x0692, 0x069c, 0x06a4, 0x06a4, 0x06aa, - 0x06b0, 0x06be, 0x06d4, 0x06de, 0x06e4, 0x06eb, 0x06f2, 0x06fe, - 0x0709, 0x0709, 0x0714, 0x0721, 0x0729, 0x072f, 0x0738, 0x0741, - 0x0741, 0x0757, 0x0763, 0x0763, 0x0769, 0x0773, 0x0773, 0x0791, - 0x0796, 0x0796, 0x079a, 0x07a2, 0x07ae, 0x07b6, 0x07ce, 0x07de, - 0x07e5, 0x07ea, 0x07f8, 0x080b, 0x0811, 0x081a, 0x0822, 0x082a, - 0x0830, 0x0830, 0x0837, 0x083e, 0x084b, 0x0853, 0x086e, 0x0878, - 0x089d, 0x08bf, 0x08ca, 0x08d1, 0x08e1, 0x08e7, 0x08e7, 0x08ed, - // Entry 100 - 13F - 0x08f3, 0x0900, 0x0906, 0x090e, - }, - }, - { // om - "BrazilChinaGermanyItoophiyaaFranceUnited KingdomIndiaItalyJapanKeeniyaaR" + - "ussiaUnited States", - []uint16{ // 243 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, - 0x000b, 0x000b, 0x000b, 0x000b, 0x0012, 0x0012, 0x0012, 0x0012, - // Entry 40 - 7F - 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, - 0x0012, 0x0012, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, - 0x001c, 0x0022, 0x0022, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x003a, 0x003a, 0x003a, - 0x003a, 0x003f, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, - // Entry 80 - BF - 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, - 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, - 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, - 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, - 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, - 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, - 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, - 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, - // Entry C0 - FF - 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x004d, - 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, - 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, - 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, - 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, - 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, - 0x004d, 0x004d, 0x005a, - }, - }, - { // or - "ଆଣà­à¬¡à­‹à¬°à¬¾à¬¸à¬‚ଯà­à¬•à­à¬¤ ଆରବ à¬à¬®à¬¿à¬°à­‡à¬Ÿà¬¸à­à¬†à¬«à¬¾à¬—ାନିସà­à¬¤à¬¾à¬¨à­à¬†à¬£à­à¬Ÿà¬¿à¬—à­à¬† à¬à¬¬à¬‚ ବାରବà­à¬¦à¬¾à¬†à¬™à­à¬—à­à¬‡à¬²à­à¬²à¬¾à¬†à¬²" + - "ବାନିଆଆରà­à¬®à­‡à¬¨à¬¿à¬†à¬¨à­‡à¬¦à¬°à¬²à­à­Ÿà¬¾à¬£à­à¬¡à¬¸à­ ଆଣà­à¬Ÿà¬¿à¬²à¬¿à¬œà­à¬†à¬™à­à¬—ୋଲାଆରà­à¬£à­à¬Ÿà¬•à¬Ÿà¬¿à¬•à¬¾à¬†à¬°à­à¬œà­‡à¬£à­à¬Ÿà¬¿à¬¨à¬¾à¬†" + - "ମେରିକାନୠସାମୋଆଅଷà­à¬Ÿà­à¬°à¬¿à¬†à¬…ଷà­à¬Ÿà­à¬°à­‡à¬²à¬¿à¬†à¬†à¬°à­à¬¬à¬¾à¬†à¬²à¬¾à¬£à­à¬¡ ଆଇସଲà­à­Ÿà¬¾à¬£à­à¬¡à¬†à¬œà­‡à¬°à¬¬à¬¾à¬‡à¬œà¬¾à¬¨à­à¬¬" + - "ୋସନିଆ à¬à¬¬à¬‚ ହରà­à¬œà¬—ୋଭିନାବାରବାଡୋସà­à¬¬à¬¾à¬™à­à¬—ଲାଦେଶà­à¬¬à­‡à¬²à¬œà¬¿à­Ÿà¬®à­à¬¬à­à¬°à­à¬•à¬¿à¬¨à­‹ ଫାସୋବà­à¬²à¬—à­‡" + - "ରିଆବାହାରିନà­à¬¬à­à¬°à­à¬¨à­à¬¦à¬¿à¬¬à­‡à¬¨à¬¿à¬¨à­à¬¸à­‡à¬£à­à¬Ÿ ବାରà­à¬¥à­‡à¬²à­‡à¬®à¬¿à¬¬à¬°à¬®à­à¬¡à¬¾à¬¬à­à¬°à­à¬¨à­‡à¬‡à¬¬à­‹à¬²à¬­à¬¿à¬†à¬¬à­à¬°à¬¾à¬œà¬¿" + - "ଲà­à¬¬à¬¾à¬¹à¬¾à¬®à¬¾à¬¸à­à¬­à­à¬Ÿà¬¾à¬¨à­à¬¬à­Œà¬­à­‡à¬Ÿà­ ଆଇସଲà­à­Ÿà¬¾à¬£à­à¬¡à¬¬à­‹à¬Ÿà¬¸à­à¬¬à¬¾à¬¨à­à¬¬à­‡à¬²à¬¾à¬°à­à¬·à­à¬¬à­‡à¬²à¬¿à¬œà­à¬•à¬¾à¬¨à¬¾à¬¡à¬¾à¬•à­‹à¬•à­‹" + - "ସୠଆଇସଲà­à­Ÿà¬¾à¬£à­à¬¡à¬•à¬™à­à¬—à­‹-କିନସାସାମଧà­à­Ÿ ଆଫà­à¬°à¬¿à¬•à­€à­Ÿ ଗଣତନà­à¬¤à­à¬°à¬•à¬™à­à¬—à­‹-ବà­à¬°à¬¾à¬œà¬¿à¬­à¬¿à¬²à­à¬²à­‡" + - "ସà­à¬¬à¬¿à¬œà¬°à¬²à­à­Ÿà¬¾à¬£à­à¬¡à¬†à¬‡à¬¬à¬°à­€ କୋଷà­à¬Ÿà¬•à­à¬•à­ ଆଇସଲà­à­Ÿà¬¾à¬£à­à¬¡à¬šà¬¿à¬²à­à¬²à­€à¬•à¬¾à¬®à­‡à¬°à­à¬¨à­à¬šà¬¿à¬¨à­à¬•à­‹à¬²à¬®à­à¬¬à¬¿à¬†à¬•" + - "ୋଷà­à¬Ÿà¬¾ ରିକାକà­à­±à¬¿à¬¬à¬¾à¬•à­‡à¬ªà­ ଭରà­à¬¦à­‡à¬–à­à¬°à­€à¬·à­à¬Ÿà¬®à¬¾à¬¸ ଆଇଲà­à­Ÿà¬¾à¬£à­à¬¡à¬¸à¬¾à¬‡à¬ªà­à¬°à¬¸à­à¬šà­‡à¬•à­ ସାଧାରଣତ" + - "ନà­à¬¤à­à¬°à¬œà¬°à­à¬®à¬¾à¬¨à­€à¬¡à¬¿à¬¬à­Œà¬Ÿà¬¿à¬¡à­‡à¬¨à¬®à¬¾à¬°à­à¬•à¬¡à­‹à¬®à¬¿à¬¨à¬¾à¬•à¬¾à¬¡à­‹à¬®à¬¿à¬¨à¬•à¬¾à¬¨à­ ପà­à¬°à¬œà¬¾à¬¤à¬¨à­à¬¤à­à¬°à¬†à¬²à¬œà­‡à¬°à¬¿à¬†à¬‡à¬•à­à­±" + - "ାଡୋରà­à¬à¬¸à­à¬¤à­‹à¬¨à¬¿à¬†à¬‡à¬œà¬¿à¬ªà­à¬Ÿà¬ªà¬¶à­à¬šà¬¿à¬® ସାହାରାଇରିଟà­à¬°à¬¿à­Ÿà¬¾à¬¸à­à¬ªà­‡à¬¨à­à¬‡à¬¥à¬¿à¬“ପିଆୟà­à¬°à­‹à¬ªà¬¿à¬†à¬¨à­ à­Ÿà­" + - "ନିଅନà­à¬«à¬¿à¬¨à¬²à­à­Ÿà¬¾à¬£à­à¬¡à¬«à¬¿à¬œà¬¿à¬«à¬²à­à¬•à¬²à­à­Ÿà¬¾à¬£à­à¬¡ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬®à¬¾à¬‡à¬•à­à¬°à­‹à¬¨à­‡à¬¸à¬¿à¬†à¬«à¬¾à¬°à­‹à¬‡ ଦà­à¬¬à­€à¬ªà¬ªà­" + - "ଞà­à¬œà¬«à­à¬°à¬¾à¬¨à­à¬¸à¬—ାବୋନà­à¬¬à­à¬°à¬¿à¬Ÿà­‡à¬¨à­à¬—à­à¬°à­‡à¬¨à¬¾à¬¡à¬¾à¬œà¬°à­à¬œà¬¿à¬†à¬«à­à¬°à­‡à¬žà­à¬š ଗà­à¬‡à¬¨à¬¾à¬—à­à¬à¬°à¬¨à­‡à¬¸à¬¿à¬˜à¬¾à¬¨à¬¾à¬œà¬¿à¬¬" + - "à­à¬°à¬¾à¬²à­à¬Ÿà¬°à­à¬—à­à¬°à­€à¬¨à¬²à­à­Ÿà¬¾à¬£à­à¬¡à¬—ାମà­à¬¬à¬¿à¬†à¬—à­à¬à¬¨à­‡à¬†à¬—ୌଡେଲୌପେଇକà­à¬¬à¬¾à¬Ÿà­‡à¬°à¬¿à¬†à¬²à­ ଗà­à¬‡à¬¨à¬¿à¬†à¬—à­à¬°à­€à¬¸à­" + - "ଦକà­à¬·à¬¿à¬£ ଜରà­à¬œà¬¿à¬† à¬à¬¬à¬‚ ଦକà­à¬·à¬¿à¬£ ସାଣà­à¬¡à­±à¬¿à¬šà­ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬—à­à¬à¬¤à¬®à¬¾à¬²à¬¾à¬—à­à¬†à¬®à­à¬—à­à¬‡à¬¨à¬¿à¬†-ବ" + - "ିସାଉଗà­à¬‡à¬¨à¬¾à¬¹à¬‚କଂ ବିଶେଷ ପà­à¬°à¬¶à¬¾à¬¸à¬¨à¬¿à¬• କà­à¬·à­‡à¬¤à­à¬° ଚୀନà­à¬¹à¬¾à¬°à­à¬¡ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œ à¬à¬¬à¬‚ ମà­à­Ÿ" + - "ାକଡୋନାଲୠଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬¹à­‹à¬£à­à¬¡à¬¾à¬°à­à¬¸à­à¬•à­à¬°à­‹à¬†à¬Ÿà¬¿à¬†à¬¹à¬¾à¬‡à¬¤à¬¿à¬¹à¬™à­à¬—େରୀଇଣà­à¬¡à­‹à¬¨à­‡à¬¸à¬¿à¬†à¬†à­Ÿà¬°à¬²à­à­Ÿà¬¾" + - "ଣà­à¬¡à¬‡à¬¸à­à¬°à¬¾à¬à¬²à­à¬†à¬‡à¬²à­ ଅଫୠମୈନà­à¬­à¬¾à¬°à¬¤à¬¬à­à¬°à¬¿à¬Ÿà¬¿à¬¶à­ ଭାରତୀୟ ସାମà­à¬¦à­à¬°à¬¿à¬• କà­à¬·à­‡à¬¤à­à¬°à¬‡à¬°à¬¾à¬•à­" + - "ଇରାନà­à¬†à¬‡à¬¸à¬²à­à­Ÿà¬¾à¬£à­à¬¡à¬‡à¬Ÿà¬¾à¬²à­€à¬œà¬°à­à¬¸à¬¿à¬œà¬¾à¬®à¬¾à¬‡à¬•à¬¾à¬œà­‹à¬°à­à¬¡à¬¾à¬¨à­à¬œà¬¾à¬ªà¬¾à¬¨à­à¬•à­‡à¬¨à¬¿à­Ÿà¬¾à¬•à¬¿à¬°à­à¬—ିଜିସà­à¬¥à¬¾à¬¨à¬•" + - "ାମà­à¬¬à­‹à¬¡à¬¿à¬†à¬•à¬¿à¬°à¬¿à¬¬à¬¾à¬Ÿà­€à¬•à¬¾à¬®à­‹à¬°à¬¸à­à¬¸à­‡à¬£à­à¬Ÿ କିଟସୠà¬à¬£à­à¬¡ ନେଭିସà­à¬‰à¬¤à­à¬¤à¬° କୋରିଆଦକà­à¬·à¬¿à¬£ କୋ" + - "ରିଆକà­à¬à¬¤à­à¬•à­‡à¬®à­à­Ÿà¬¾à¬¨à­ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬•à¬¾à¬œà¬¾à¬•à¬¾à¬¸à­à¬¥à¬¾à¬¨à­à¬²à¬¾à¬“ସà­à¬²à­‡à¬¬à¬¾à¬¨à¬¨à­à¬¸à­‡à¬£à­à¬Ÿ ଲà­à¬¸à¬¿à¬†à¬²à¬¿à¬šà­‡" + - "ସà­à¬¤à¬¿à¬†à¬¨à¬¾à¬¨à­à¬¶à­à¬°à­€à¬²à¬™à­à¬•à¬¾à¬²à¬¿à¬¬à­‡à¬°à¬¿à¬†à¬²à­‡à¬¸à­‹à¬¥à­‹à¬²à¬¿à¬¥à¬¾à¬†à¬¨à¬¿à¬†à¬²à¬•à­à¬¸à­‡à¬®à¬¬à¬°à­à¬—ଲାଟଭିଆଲିବିଆମୋରୋକà­" + - "କୋମୋନାକୋମାଲଡୋଭାମଣà­à¬Ÿà­‡à¬—à­à¬°à­‹à¬¸à­‡à¬£à­à¬Ÿ ମାରà­à¬Ÿà¬¿à¬¨à­à¬®à¬¾à¬¡à¬¾à¬—ାସà­à¬•à¬°à­à¬®à¬¾à¬°à­à¬¶à¬²à­ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­" + - "ଜମାସେଡୋନିଆମାଳୀମିୟାମାରà­à¬®à¬™à­à¬—ୋଲିଆମାକାଉ SAR ଚିନà­à¬‰à¬¤à­à¬¤à¬° ମାରିଆନା ଦà­à¬¬à­€à¬ªà¬ªà­à¬ž" + - "à­à¬œà¬®à¬¾à¬°à­à¬Ÿà¬¿à¬¨à¬¿à¬•à­à­Ÿà­à¬®à¬¾à¬‰à¬°à¬¿à¬Ÿà¬¾à¬¨à¬¿à¬†à¬®à¬£à­à¬Ÿà­‡à¬¸à­‡à¬°à¬¾à¬Ÿà­à¬®à¬¾à¬²à­à¬Ÿà¬¾à¬®à­Œà¬°à¬¿à¬¸à¬¸à­à¬®à¬¾à¬³à¬¦à­à¬¬à­€à¬ªà¬®à¬¾à¬²à­±à¬¿à¬®à­‡à¬•à­à¬¸" + - "ିକୋମାଲେସିଆମୋଜାମà­à¬¬à¬¿à¬•à­à­Ÿà­à¬¨à¬¾à¬®à­à¬¬à¬¿à¬†à¬¨à­‚ତନ କାଲେଡୋନିଆନାଇଜରà­à¬¨à¬°à¬«à­à¬²à¬•à­ ଦà­à¬¬à­€à¬ªà¬¨à¬¾à¬‡à¬œ" + - "େରିଆନିକାରାଗà­à¬†à¬¨à­‡à¬¦à¬°à¬²à­à­Ÿà¬¾à¬£à­à¬¡à¬¨à¬°à­±à­‡à¬¨à­‡à¬ªà¬¾à¬³à¬¨à¬¾à¬‰à¬°à­à¬¨à¬¿à¬‰à¬¨à­à­Ÿà­à¬œà¬¿à¬²à¬¾à¬£à­à¬¡à¬“ମାନà­à¬ªà¬¾à¬¨à¬¾à¬®à¬¾à¬ªà­‡à¬°" + - "à­à¬«à­à¬°à­‡à¬žà­à¬š ପଲିନେସିଆପପà­à¬† ନà­à­Ÿà­ ଗà­à¬à¬¨à¬¿à¬†à¬«à¬¿à¬²à¬¿à¬ªà¬¾à¬‡à¬¨à¬¸à­à¬ªà¬¾à¬•à¬¿à¬¸à­à¬¤à¬¾à¬¨à¬ªà­‹à¬²à¬¾à¬£à­à¬¡à¬¸à­‡à¬£à­à¬Ÿ ପ" + - "ିà¬à¬°à­‡ à¬à¬¬à¬‚ ମିକà­à¬¬à¬¾à¬²à­‹à¬¨à­à¬ªà¬¿à¬Ÿà¬•à¬¾à¬‡à¬°à¬¿à¬¨à­à¬ªà­à¬à¬°à­à¬¤à­à¬¤à­‹ ରିକୋପାଲେସà­à¬¤à­‡à¬¨à¬¿à¬†à¬ªà¬°à­à¬¤à­à¬¤à­à¬—ାଲà­à¬ª" + - "ାଲାଉପାରାଗà­à¬à¬•à¬¤à¬¾à¬°à­à¬†à¬‰à¬Ÿà¬²à­‡à¬‡à¬‚ ଓସେନିଆରିୟà­à¬¨à¬¿à¬…ନà­à¬°à­‹à¬®à¬¾à¬¨à¬¿à¬†à¬¸à¬°à­à¬¬à¬¿à¬†à¬°à­à¬·à¬¿à¬†à¬°à¬¾à­±à¬¾à¬£à­à¬¡à¬¾à¬¸" + - "ାଉଦି ଆରବିଆସୋଲୋମନୠଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬¸à­‡à¬šà­‡à¬²à¬¸à­à¬¸à­à¬¦à¬¾à¬¨à­à¬¸à­à­±à­‡à¬¡à­‡à¬¨à­à¬¸à¬¿à¬™à­à¬—ାପà­à¬°à­à¬¸à­‡à¬£à­à¬Ÿ ହ" + - "େଲେନାସà­à¬²à­‹à¬­à­‡à¬¨à¬¿à¬†à¬¸à¬¾à¬²à­à¬­à¬¾à¬°à­à¬¡ à¬à¬¬à¬‚ ଜାନୠମାୟୋନà­à¬¸à­à¬²à­‹à¬­à¬¾à¬•à¬¿à¬†à¬¸à¬¿à¬“ରା ଲିଓନà­à¬¸à¬¾à¬¨à­ ମା" + - "ରିନୋସେନେଗାଲà­à¬¸à­‹à¬®à¬¾à¬²à¬¿à¬†à¬¸à­à¬°à¬¿à¬¨à¬¾à¬®à¬¸à¬¾à¬“ ଟୋମେ à¬à¬¬à¬‚ ପà­à¬°à¬¿à¬¨à¬¸à¬¿à¬ªà¬¿à¬à¬²à­ ସାଲଭାଡୋରà­à¬¸à¬¿à¬°à¬¿à¬†" + - "ସà­à¬¬à¬¾à¬œà¬¿à¬²à¬¾à¬£à­à¬¡à¬¤à­à¬°à­à¬•à¬¸à­ à¬à¬¬à¬‚ ସାଇକସୠଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬šà¬¾à¬¦à­à¬«à¬°à¬¾à¬¸à­€ ଦକà­à¬·à¬¿à¬£ କà­à¬·à­‡à¬¤à­à¬°à¬Ÿà­‹" + - "ଗୋଥାଇଲାଣà­à¬¡à¬¤à¬¾à¬œà¬¿à¬•à¬¿à¬¸à­à¬¥à¬¾à¬¨à­à¬Ÿà­‹à¬•à­‡à¬²à¬¾à¬‰à¬ªà­à¬°à­à¬¬ ତିମୋରà­à¬¤à­à¬°à­à¬•à¬®à­‡à¬¨à¬¿à¬¸à­à¬¤à¬¾à¬¨à­à¬¤à­à¬¨à¬¿à¬¸à¬¿à¬†à¬Ÿà­‹à¬™" + - "à­à¬—ାତà­à¬°à­à¬•à­€à¬¤à­à¬°à¬¿à¬¨à¬¿à¬¦à¬¾à¬¦à­ à¬à¬¬à¬‚ ଟୋବାଗୋଟà­à¬­à¬¾à¬²à­à¬¤à¬¾à¬‡à­±à¬¾à¬¨à­à¬¤à¬¾à¬žà­à¬œà¬¾à¬¨à¬¿à¬†à­Ÿà­à¬•à­à¬°à¬¾à¬‡à¬¨à­à¬‰à¬—ାଣà­" + - "ଡାୟà­à¬¨à¬¾à¬‡à¬Ÿà­‡à¬¡à­ ଷà­à¬Ÿà­‡à¬Ÿà¬¸à­ ମାଇନରୠଆଉଟଲେଇଂ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬¯à­à¬•à­à¬¤ ରାଷà­à¬Ÿà­à¬° ଆମେରିକା" + - "ଉରà­à¬—à­à¬à¬‰à¬œà¬¬à­‡à¬•à¬¿à¬¸à­à¬¥à¬¾à¬¨à­à¬­à¬¾à¬Ÿà¬¿à¬•à¬¾à¬¨à­à¬¸à­‡à¬£à­à¬Ÿ ଭିନସେଣà­à¬Ÿ à¬à¬¬à¬‚ ଦି ଗà­à¬°à­‡à¬¨à¬¾à¬¡à¬¿à¬¸à­à¬­à­‡à¬¨à¬œà­à¬à¬²à¬¾" + - "ବà­à¬°à¬¿à¬Ÿà¬¿à¬¶à­ ଭରà­à¬œà¬¿à¬¨à­ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà­Ÿà­à¬à¬¸à­ ଭରà­à¬œà¬¿à¬¨à­ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬­à¬¿à¬à¬¤à¬¨à¬¾à¬®à­à¬­à¬¾à¬¨à­à¬†à¬¤à­" + - "ୱାଲିସୠà¬à¬¬à¬‚ ଫà­à¬¤à­à¬¨à¬¾à¬¸à¬¾à¬®à­‹à¬†à­Ÿà­‡à¬®à­‡à¬¨à­à¬®à¬¾à­Ÿà­‹à¬Ÿà­‡à¬¦à¬•à­à¬·à¬¿à¬£ ଆଫà­à¬°à¬¿à¬•à¬¾à¬œà¬¾à¬®à­à¬¬à¬¿à¬†à¬œà¬¿à¬®à­à¬¬à¬¾à­±à­‡à¬…ଜଣ" + - "ା କିମà­à¬¬à¬¾ ଅବୈଧ ପà­à¬°à¬¦à­‡à¬¶à¬¬à¬¿à¬¶à­à¬¬à¬†à¬«à­à¬°à¬¿à¬•à¬¾à¬‰à¬¤à­à¬¤à¬° ଆମେରିକାଦକà­à¬·à¬¿à¬£ ଆମେରିକାଓସୋନିଆନ" + - "à­à¬ªà¬¶à­à¬šà¬¿à¬® ଆଫà­à¬°à¬¿à¬•à¬¾à¬®à¬§à­à­Ÿ ଆମେରିକାପୂରà­à¬¬ ଆଫà­à¬°à¬¿à¬•à¬¾à¬‰à¬¤à­à¬¤à¬° ଆଫà­à¬°à¬¿à¬•à¬¾à¬®à¬§à­à­Ÿ ଆଫà­à¬°à¬¿à¬•à¬¾à¬¦" + - "କà­à¬·à¬¿à¬£à¬¸à­à¬¥ ଆଫà­à¬°à¬¿à¬•à¬¾à¬†à¬®à­‡à¬°à¬¿à¬•à¬¾à¬¸à­à¬‰à¬¤à­à¬¤à¬°à¬¸à­à¬¥ ଆମେରିକାକାରିବିଆନà­à¬ªà­‚ରà­à¬¬ à¬à¬¸à¬¿à¬†à¬¦à¬•à­à¬·à¬¿à¬£" + - " à¬à¬¸à¬¿à¬†à¬¦à¬•à­à¬·à¬¿à¬£-ପୂରà­à¬¬ à¬à¬¸à¬¿à¬†à¬¦à¬•à­à¬·à¬¿à¬£ à­Ÿà­à¬°à­‹à¬ªà­à¬…ଷà­à¬Ÿà­à¬°à­‡à¬²à¬¿à¬† à¬à¬¬à¬‚ ନà­à­Ÿà­à¬œà¬¿à¬²à­à­Ÿà¬¾à¬£à­à¬¡à¬®à­‡à¬²à¬¾à¬¨" + - "େସିଆମାଇକà­à¬°à­‹à¬¨à­‡à¬¸à¬¿à¬†à¬¨à­ ଅଞà­à¬šà¬³à¬ªà¬²à¬¿à¬¨à­‡à¬¸à¬¿à¬†à¬à¬¸à¬¿à¬†à¬®à¬§à­à­Ÿ à¬à¬¸à¬¿à¬†à¬ªà¬¶à­à¬šà¬¿à¬® à¬à¬¸à¬¿à¬†à­Ÿà­à¬°à­‹à¬ªà­à¬ªà­‚ରà­" + - "ବ à­Ÿà­à¬°à­‹à¬ªà­à¬‰à¬¤à­à¬¤à¬° à­Ÿà­à¬°à­‹à¬ªà­à¬ªà¬¶à­à¬šà¬¿à¬® à­Ÿà­à¬°à­‹à¬ªà­à¬²à¬¾à¬Ÿà¬¿à¬¨à­ ଆମେରିକା à¬à¬¬à¬‚ କାରିବିଆନà­", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0015, 0x004d, 0x0074, 0x00ac, 0x00ca, 0x00df, - 0x00f7, 0x013a, 0x014f, 0x0170, 0x0191, 0x01bc, 0x01d4, 0x01f2, - 0x0201, 0x0232, 0x0253, 0x028e, 0x02a9, 0x02ca, 0x02e2, 0x0307, - 0x031f, 0x0337, 0x034f, 0x0361, 0x038f, 0x03a1, 0x03b6, 0x03c8, - 0x03c8, 0x03e0, 0x03f8, 0x040a, 0x043b, 0x0456, 0x046e, 0x0480, - 0x0492, 0x04c3, 0x04e8, 0x0526, 0x055a, 0x0581, 0x05a0, 0x05cb, - 0x05dd, 0x05f5, 0x0601, 0x0619, 0x0619, 0x0638, 0x064a, 0x0666, - 0x0666, 0x06a0, 0x06b8, 0x06e9, 0x06fe, 0x06fe, 0x0710, 0x0728, - // Entry 40 - 7F - 0x0740, 0x077d, 0x0792, 0x0792, 0x07ad, 0x07c5, 0x07d7, 0x07fc, - 0x0817, 0x0829, 0x083e, 0x086f, 0x088d, 0x0899, 0x08d9, 0x08fd, - 0x092b, 0x0940, 0x0952, 0x096a, 0x0982, 0x0994, 0x09b9, 0x09d1, - 0x09dd, 0x09fe, 0x0a22, 0x0a37, 0x0a49, 0x0a61, 0x0a98, 0x0aaa, - 0x0b27, 0x0b3f, 0x0b4e, 0x0b70, 0x0b7f, 0x0bda, 0x0c53, 0x0c71, - 0x0c89, 0x0c98, 0x0cad, 0x0cad, 0x0ccb, 0x0ce9, 0x0d01, 0x0d24, - 0x0d30, 0x0d8d, 0x0d9c, 0x0dab, 0x0dc9, 0x0dd8, 0x0de7, 0x0dfc, - 0x0e14, 0x0e26, 0x0e38, 0x0e5f, 0x0e7a, 0x0e92, 0x0ea7, 0x0ee6, - // Entry 80 - BF - 0x0f05, 0x0f27, 0x0f36, 0x0f6d, 0x0f91, 0x0fa0, 0x0fb5, 0x0fd4, - 0x0ffb, 0x1016, 0x102b, 0x103d, 0x1055, 0x1073, 0x1085, 0x1094, - 0x10ac, 0x10be, 0x10d3, 0x10ee, 0x1116, 0x1137, 0x116b, 0x1186, - 0x1192, 0x11aa, 0x11c2, 0x11e2, 0x1226, 0x124a, 0x1268, 0x1289, - 0x129b, 0x12b0, 0x12c8, 0x12d7, 0x12ef, 0x1304, 0x1328, 0x133d, - 0x1365, 0x1377, 0x139c, 0x13b4, 0x13cf, 0x13f0, 0x13fc, 0x140b, - 0x141a, 0x1423, 0x1444, 0x1453, 0x1465, 0x1471, 0x149f, 0x14cb, - 0x14e9, 0x1504, 0x1519, 0x1561, 0x157f, 0x15a7, 0x15c8, 0x15e9, - // Entry C0 - FF - 0x15f8, 0x160d, 0x161c, 0x1644, 0x165f, 0x1674, 0x1686, 0x1695, - 0x16ad, 0x16cc, 0x1700, 0x1715, 0x1727, 0x173f, 0x175d, 0x177f, - 0x179a, 0x17df, 0x17fa, 0x1819, 0x1838, 0x1850, 0x1865, 0x187a, - 0x187a, 0x18b6, 0x18db, 0x18db, 0x18ea, 0x190b, 0x190b, 0x195c, - 0x1968, 0x19a0, 0x19ac, 0x19c4, 0x19e8, 0x19fd, 0x1a1f, 0x1a4c, - 0x1a61, 0x1a73, 0x1a85, 0x1ac0, 0x1ad2, 0x1ae7, 0x1b02, 0x1b1d, - 0x1b32, 0x1bab, 0x1be6, 0x1bf8, 0x1c1c, 0x1c34, 0x1c8c, 0x1ca4, - 0x1cf1, 0x1d35, 0x1d4d, 0x1d62, 0x1d91, 0x1da0, 0x1da0, 0x1db2, - // Entry 100 - 13F - 0x1dc4, 0x1dec, 0x1e01, 0x1e19, 0x1e58, 0x1e67, 0x1e7c, 0x1ea1, - 0x1ec9, 0x1ee1, 0x1f09, 0x1f2b, 0x1f50, 0x1f75, 0x1f97, 0x1fc8, - 0x1fe3, 0x2011, 0x202c, 0x2048, 0x2067, 0x2096, 0x20bb, 0x210b, - 0x2126, 0x2160, 0x2178, 0x2184, 0x219d, 0x21bc, 0x21ce, 0x21f0, - 0x2212, 0x2237, 0x2285, - }, - }, - { // os - "БразилиКитайГерманФранцСтыр БританиГуырдзыÑтонИндиИталиЯпонУӕрӕÑеÐИШÐӕзо" + - "нгӕ бӕÑтӕДунеÐфрикӕОкеаниÐмерикӕÐзиЕвропӕ", - []uint16{ // 287 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, - 0x000e, 0x000e, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, - 0x0018, 0x0018, 0x0018, 0x0018, 0x0024, 0x0024, 0x0024, 0x0024, - // Entry 40 - 7F - 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, - 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, - 0x0024, 0x002e, 0x002e, 0x0045, 0x0045, 0x005b, 0x005b, 0x005b, - 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, - 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, - 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x006d, 0x006d, 0x006d, - 0x006d, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, - // Entry 80 - BF - 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, - 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, - 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, - 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, - 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, - 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, - 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, - 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, - // Entry C0 - FF - 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, - 0x0081, 0x0081, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, - // Entry 100 - 13F - 0x0087, 0x0087, 0x0087, 0x0087, 0x00a0, 0x00a8, 0x00b4, 0x00b4, - 0x00b4, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c0, - 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, - 0x00ce, 0x00ce, 0x00ce, 0x00d4, 0x00d4, 0x00d4, 0x00e0, - }, - }, - { // pa - paRegionStr, - paRegionIdx, - }, - { // pa-Arab - "پکستان", - []uint16{ // 186 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 80 - BF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x000c, - }, - }, - { // pl - plRegionStr, - plRegionIdx, - }, - { // ps - "اÙغانستانالبانیهانګولاانتارکتیکااتریشبنګله\u200cدیشبلغاریهکاناډاسویسچینک" + - "ولمبیاکیوباالمانډنمارکالجزایرمصرهسپانیهحبشهÙنلینډÙرانسهبرتانیهګاناګ" + - "یانایونانګواتیمالاهانډوراسمجارستاناندونیزیاهندعراقآیسلینډایټالیهجمی" + - "کاجاپانکمبودیاکویټلاوسلبنانلایبریالیبیامراکشمغولستانمالیزیانایجیریا" + - "نکاراګواهالÛنډناروÛنیپالنیوزیلنډپاکستانپولنډÙلسطینپورتګالروسیهروندا" + - "سعودی عربستانسویډنسالوÛډورسوریهتاجکستانتنزانیایوروګواییمن", - []uint16{ // 256 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x0012, 0x0012, 0x0020, - 0x0020, 0x0020, 0x002c, 0x0040, 0x0040, 0x0040, 0x004a, 0x004a, - 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, 0x005d, 0x005d, 0x005d, - 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, - 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, - 0x0077, 0x0077, 0x0077, 0x0077, 0x0077, 0x007f, 0x007f, 0x007f, - 0x007f, 0x007f, 0x0085, 0x0093, 0x0093, 0x0093, 0x009d, 0x009d, - 0x009d, 0x009d, 0x009d, 0x009d, 0x00a7, 0x00a7, 0x00a7, 0x00b3, - // Entry 40 - 7F - 0x00b3, 0x00b3, 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c7, 0x00c7, - 0x00c7, 0x00d5, 0x00dd, 0x00dd, 0x00e9, 0x00e9, 0x00e9, 0x00e9, - 0x00e9, 0x00f5, 0x00f5, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, - 0x010b, 0x010b, 0x010b, 0x010b, 0x0115, 0x0115, 0x0115, 0x011f, - 0x011f, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0141, - 0x0141, 0x0141, 0x0151, 0x0151, 0x0163, 0x0163, 0x0163, 0x0163, - 0x0169, 0x0169, 0x0171, 0x0171, 0x017f, 0x018d, 0x018d, 0x0197, - 0x0197, 0x01a1, 0x01a1, 0x01a1, 0x01af, 0x01af, 0x01af, 0x01af, - // Entry 80 - BF - 0x01af, 0x01af, 0x01b7, 0x01b7, 0x01b7, 0x01bf, 0x01c9, 0x01c9, - 0x01c9, 0x01c9, 0x01d7, 0x01d7, 0x01d7, 0x01d7, 0x01d7, 0x01e1, - 0x01eb, 0x01eb, 0x01eb, 0x01eb, 0x01eb, 0x01eb, 0x01eb, 0x01eb, - 0x01eb, 0x01eb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, - 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x0209, 0x0209, 0x0209, - 0x0209, 0x0209, 0x0209, 0x0219, 0x0229, 0x0235, 0x023f, 0x0249, - 0x0249, 0x0249, 0x0259, 0x0259, 0x0259, 0x0259, 0x0259, 0x0259, - 0x0259, 0x0267, 0x0271, 0x0271, 0x0271, 0x0271, 0x027d, 0x028b, - // Entry C0 - FF - 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x0295, - 0x029f, 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02c2, 0x02c2, 0x02c2, - 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, - 0x02c2, 0x02c2, 0x02d2, 0x02d2, 0x02dc, 0x02dc, 0x02dc, 0x02dc, - 0x02dc, 0x02dc, 0x02dc, 0x02dc, 0x02ec, 0x02ec, 0x02ec, 0x02ec, - 0x02ec, 0x02ec, 0x02ec, 0x02ec, 0x02ec, 0x02ec, 0x02fa, 0x02fa, - 0x02fa, 0x02fa, 0x02fa, 0x030a, 0x030a, 0x030a, 0x030a, 0x030a, - 0x030a, 0x030a, 0x030a, 0x030a, 0x030a, 0x030a, 0x030a, 0x0310, - }, - }, - { // pt - ptRegionStr, - ptRegionIdx, - }, - { // pt-PT - ptPTRegionStr, - ptPTRegionIdx, - }, - { // qu - "AndorraAfganistánAlbaniaArmeniaAngolaArgentinaSamoa AmericanaAustriaAust" + - "raliaAzerbaiyánBangladeshBélgicaBulgariaBahréinBurundiBenínBrunéiBol" + - "iviaBonaireBrasilBahamasButánBotsuanaBelarúsIslas CocosCongo (RDC)Co" + - "ngoSuizaCôte dʼIvoireChileCamerúnChinaColombiaCosta RicaCubaCurazaoI" + - "sla ChristmasChipreAlemaniaYibutiDinamarcaDominicaArgeliaEcuadorEsto" + - "niaEgiptoEritreaEspañaEtiopíaFinlandiaFiyiMicronesiaFranciaGabónRein" + - "o UnidoGuernseyGhanaGambiaGuineaGuinea EcuatorialGreciaGuatemalaGuam" + - "Guinea-BissauGuyanaHong Kong (RAE)Islas Heard y McDonaldHondurasCroa" + - "ciaHaitíIndonesiaIsraelIndiaIraqIránIslandiaItaliaJerseyJordaniaKeni" + - "aKirguistánCamboyaKiribatiComorasSan Cristóbal y NievesCorea del Nor" + - "teCorea del SurKuwaitKazajistanLaosLíbanoLiechtensteinSri LankaLiber" + - "iaLesotoLituaniaLuxemburgoLetoniaMarruecosMónacoMoldovaSan MartínMad" + - "agascarIslas MarshallERY MacedoniaMalíMyanmarMacao RAEIslas Marianas" + - " del NorteMauritaniaMaltaMauricioMaldivasMalawiMéxicoMozambiqueNamib" + - "iaNueva CaledoniaNígerIsla NorfolkNigeriaNicaraguaPaíses BajosNorueg" + - "aNepalNauruOmánPanamáPerúPolinesia FrancesaPapúa Nueva GuineaFilipin" + - "asPakistánPoloniaSan Pedro y MiquelónIslas PitcairnPuerto RicoPalest" + - "ina KamachikuqPortugalPalaosParaguayQatarSerbiaRusiaRuandaArabia Sau" + - "díSeychellesSudánSueciaSingapurEsloveniaEslovaquiaSierra LeonaSan Ma" + - "rinoSenegalSomaliaSurinamSudán del SurSanto Tomé y PríncipeEl Salvad" + - "orSint MaartenSiriaSuazilandiaChadTierras Australes y Antárticas Fra" + - "ncesasTogoTailandiaTayikistánTimor-LesteTúnezTongaTurquíaTrinidad y " + - "TobagoTanzaniaUgandaIslas menores alejadas de los EE.UU.Estados Unid" + - "osUruguayUzbekistánSanta Sede (Ciudad del Vaticano)VenezuelaEE.UU. I" + - "slas VírgenesVietnamVanuatuWallis, FutunaSamoaYemenSudáfricaZambiaZi" + - "mbabue", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x0007, 0x0012, 0x0012, 0x0012, 0x0019, - 0x0020, 0x0020, 0x0026, 0x0026, 0x002f, 0x003e, 0x0045, 0x004e, - 0x004e, 0x004e, 0x0059, 0x0059, 0x0059, 0x0063, 0x006b, 0x006b, - 0x0073, 0x007b, 0x0082, 0x0088, 0x0088, 0x0088, 0x008f, 0x0096, - 0x009d, 0x00a3, 0x00aa, 0x00b0, 0x00b0, 0x00b8, 0x00c0, 0x00c0, - 0x00c0, 0x00cb, 0x00d6, 0x00d6, 0x00db, 0x00e0, 0x00ef, 0x00ef, - 0x00f4, 0x00fc, 0x0101, 0x0109, 0x0109, 0x0113, 0x0117, 0x0117, - 0x011e, 0x012c, 0x0132, 0x0132, 0x013a, 0x013a, 0x0140, 0x0149, - // Entry 40 - 7F - 0x0151, 0x0151, 0x0158, 0x0158, 0x015f, 0x0166, 0x016c, 0x016c, - 0x0173, 0x017a, 0x0182, 0x0182, 0x018b, 0x018f, 0x018f, 0x0199, - 0x0199, 0x01a0, 0x01a6, 0x01b1, 0x01b1, 0x01b1, 0x01b1, 0x01b9, - 0x01be, 0x01be, 0x01be, 0x01c4, 0x01ca, 0x01ca, 0x01db, 0x01e1, - 0x01e1, 0x01ea, 0x01ee, 0x01fb, 0x0201, 0x0210, 0x0226, 0x022e, - 0x0235, 0x023b, 0x023b, 0x023b, 0x0244, 0x0244, 0x024a, 0x024a, - 0x024f, 0x024f, 0x0253, 0x0258, 0x0260, 0x0266, 0x026c, 0x026c, - 0x0274, 0x0274, 0x0279, 0x0284, 0x028b, 0x0293, 0x029a, 0x02b1, - // Entry 80 - BF - 0x02c0, 0x02cd, 0x02d3, 0x02d3, 0x02dd, 0x02e1, 0x02e8, 0x02e8, - 0x02f5, 0x02fe, 0x0305, 0x030b, 0x0313, 0x031d, 0x0324, 0x0324, - 0x032d, 0x0334, 0x033b, 0x033b, 0x0346, 0x0350, 0x035e, 0x036b, - 0x0370, 0x0377, 0x0377, 0x0380, 0x0398, 0x0398, 0x03a2, 0x03a2, - 0x03a7, 0x03af, 0x03b7, 0x03bd, 0x03c4, 0x03c4, 0x03ce, 0x03d5, - 0x03e4, 0x03ea, 0x03f6, 0x03fd, 0x0406, 0x0413, 0x041a, 0x041f, - 0x0424, 0x0424, 0x0424, 0x0429, 0x0430, 0x0435, 0x0447, 0x045a, - 0x0463, 0x046c, 0x0473, 0x0488, 0x0496, 0x04a1, 0x04b5, 0x04bd, - // Entry C0 - FF - 0x04c3, 0x04cb, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d6, 0x04db, - 0x04e1, 0x04ee, 0x04ee, 0x04f8, 0x04fe, 0x0504, 0x050c, 0x050c, - 0x0515, 0x0515, 0x051f, 0x052b, 0x0535, 0x053c, 0x0543, 0x054a, - 0x0558, 0x056f, 0x057a, 0x0586, 0x058b, 0x0596, 0x0596, 0x0596, - 0x059a, 0x05c3, 0x05c7, 0x05d0, 0x05db, 0x05db, 0x05e6, 0x05e6, - 0x05ec, 0x05f1, 0x05f9, 0x060a, 0x060a, 0x060a, 0x0612, 0x0612, - 0x0618, 0x063c, 0x064a, 0x0651, 0x065c, 0x067c, 0x067c, 0x0685, - 0x0685, 0x069b, 0x06a2, 0x06a9, 0x06b7, 0x06bc, 0x06bc, 0x06c1, - // Entry 100 - 13F - 0x06c1, 0x06cb, 0x06d1, 0x06d9, - }, - }, - { // rm - "AndorraEmirats Arabs UnidsAfghanistanAntigua e BarbudaAnguillaAlbaniaArm" + - "eniaAntillas OllandaisasAngolaAntarcticaArgentiniaSamoa AmericanaAus" + - "triaAustraliaArubaInslas AlandAserbaidschanBosnia ed ErzegovinaBarba" + - "dosBangladeschBelgiaBurkina FasoBulgariaBahrainBurundiBeninSon Barth" + - "élemyBermudasBruneiBoliviaBrasilaBahamasBhutanInsla BouvetBotswanaB" + - "ielorussiaBelizeCanadaInslas CocosRepublica Democratica dal CongoRep" + - "ublica CentralafricanaCongoSvizraCosta d’IvurInslas CookChileCamerun" + - "ChinaColumbiaCosta RicaCubaCap VerdInsla da ChristmasCipraRepublica " + - "TschecaGermaniaDschibutiDanemarcDominicaRepublica DominicanaAlgeriaE" + - "cuadorEstoniaEgiptaSahara OccidentalaEritreaSpagnaEtiopiaUniun europ" + - "eicaFinlandaFidschiInslas dal FalklandMicronesiaInslas FeroeFrantsch" + - "aGabunReginavel UnìGrenadaGeorgiaGuyana FranzosaGuernseyGhanaGibralt" + - "arGrönlandaGambiaGuineaGuadeloupeGuinea EquatorialaGreziaGeorgia dal" + - " Sid e las Inslas Sandwich dal SidGuatemalaGuamGuinea-BissauGuyanaRe" + - "giun d’administraziun speziala da Hongkong, ChinaInslas da Heard e d" + - "a McDonladHondurasCroaziaHaitiUngariaIndonesiaIrlandaIsraelInsla da " + - "ManIndiaTerritori Britannic en l’Ocean IndicIracIranIslandaItaliaJer" + - "seyGiamaicaJordaniaGiapunKeniaKirghisistanCambodschaKiribatiComorasS" + - "aint Kitts e NevisCorea dal NordCorea dal SidKuwaitInslas CaymanKasa" + - "chstanLaosLibanonSaint LuciaLiechtensteinSri LankaLiberiaLesothoLitu" + - "aniaLuxemburgLettoniaLibiaMarocMonacoMoldaviaMontenegroSaint MartinM" + - "adagascarInslas da MarshallMacedoniaMaliMyanmarMongoliaRegiun d’admi" + - "nistraziun speziala Macao, ChinaInslas Mariannas dal NordMartiniqueM" + - "auretaniaMontserratMaltaMauritiusMaldivasMalawiMexicoMalaisiaMosambi" + - "cNamibiaNova CaledoniaNigerInsla NorfolkNigeriaNicaraguaPajais BassN" + - "orvegiaNepalNauruNiueNova ZelandaOmanPanamaPeruPolinesia FranzosaPap" + - "ua Nova GuineaFilippinasPakistanPolognaSaint Pierre e MiquelonPitcai" + - "rnPuerto RicoTerritori PalestinaisPortugalPalauParaguaiKatarOceania " + - "PerifericaRéunionRumeniaSerbiaRussiaRuandaArabia SauditaSalomonasSey" + - "chellasSudanSveziaSingapurSontg’ElenaSloveniaSvalbard e Jan MayenSlo" + - "vachiaSierra LeoneSan MarinoSenegalSomaliaSurinamSão Tomé e Principe" + - "El SalvadorSiriaSwazilandInslas Turks e CaicosTschadTerritoris Franz" + - "os MeridiunalsTogoTailandaTadschikistanTokelauTimor da l’OstTurkmeni" + - "stanTunesiaTongaTirchiaTrinidad e TobagoTuvaluTaiwanTansaniaUcrainaU" + - "gandaInslas pitschnas perifericas dals Stadis Unids da l’AmericaStad" + - "is Unids da l’AmericaUruguayUsbekistanCitad dal VaticanSaint Vincent" + - " e las GrenadinasVenezuelaInslas Verginas BritannicasInslas Verginas" + - " AmericanasVietnamVanuatuWallis e FutunaSamoaJemenMayotteAfrica dal " + - "SidSambiaSimbabweRegiun betg encouschenta u nunvalaivlamundAfricaAme" + - "rica dal NordAmerica dal SidOceaniaAfrica dal VestAmerica CentralaAf" + - "rica da l’OstAfrica dal NordAfrica CentralaAfrica MeridiunalaAmerica" + - " dal Nord, America Centrala ed America dal SidCaribicaAsia da l’OstA" + - "sia dal SidAsia dal SidostEuropa dal SidAustralia e Nova ZelandaMela" + - "nesiaRegiun MicronesicaPolinesiaAsiaAsia CentralaAsia dal VestEuropa" + - "Europa OrientalaEuropa dal NordEuropa dal VestAmerica Latina", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x001a, 0x0025, 0x0036, 0x003e, 0x0045, - 0x004c, 0x0060, 0x0066, 0x0070, 0x007a, 0x0089, 0x0090, 0x0099, - 0x009e, 0x00aa, 0x00b7, 0x00cb, 0x00d3, 0x00de, 0x00e4, 0x00f0, - 0x00f8, 0x00ff, 0x0106, 0x010b, 0x011a, 0x0122, 0x0128, 0x012f, - 0x012f, 0x0136, 0x013d, 0x0143, 0x014f, 0x0157, 0x0162, 0x0168, - 0x016e, 0x017a, 0x0199, 0x01b2, 0x01b7, 0x01bd, 0x01cb, 0x01d6, - 0x01db, 0x01e2, 0x01e7, 0x01ef, 0x01ef, 0x01f9, 0x01fd, 0x0205, - 0x0205, 0x0217, 0x021c, 0x022d, 0x0235, 0x0235, 0x023e, 0x0246, - // Entry 40 - 7F - 0x024e, 0x0262, 0x0269, 0x0269, 0x0270, 0x0277, 0x027d, 0x028f, - 0x0296, 0x029c, 0x02a3, 0x02b2, 0x02ba, 0x02c1, 0x02d4, 0x02de, - 0x02ea, 0x02f3, 0x02f8, 0x0306, 0x030d, 0x0314, 0x0323, 0x032b, - 0x0330, 0x0339, 0x0343, 0x0349, 0x034f, 0x0359, 0x036b, 0x0371, - 0x039e, 0x03a7, 0x03ab, 0x03b8, 0x03be, 0x03f3, 0x0410, 0x0418, - 0x041f, 0x0424, 0x042b, 0x042b, 0x0434, 0x043b, 0x0441, 0x044d, - 0x0452, 0x0478, 0x047c, 0x0480, 0x0487, 0x048d, 0x0493, 0x049b, - 0x04a3, 0x04a9, 0x04ae, 0x04ba, 0x04c4, 0x04cc, 0x04d3, 0x04e6, - // Entry 80 - BF - 0x04f4, 0x0501, 0x0507, 0x0514, 0x051e, 0x0522, 0x0529, 0x0534, - 0x0541, 0x054a, 0x0551, 0x0558, 0x0560, 0x0569, 0x0571, 0x0576, - 0x057b, 0x0581, 0x0589, 0x0593, 0x059f, 0x05a9, 0x05bb, 0x05c4, - 0x05c8, 0x05cf, 0x05d7, 0x0606, 0x061f, 0x0629, 0x0633, 0x063d, - 0x0642, 0x064b, 0x0653, 0x0659, 0x065f, 0x0667, 0x066f, 0x0676, - 0x0684, 0x0689, 0x0696, 0x069d, 0x06a6, 0x06b1, 0x06b9, 0x06be, - 0x06c3, 0x06c7, 0x06d3, 0x06d7, 0x06dd, 0x06e1, 0x06f3, 0x0704, - 0x070e, 0x0716, 0x071d, 0x0734, 0x073c, 0x0747, 0x075c, 0x0764, - // Entry C0 - FF - 0x0769, 0x0771, 0x0776, 0x0788, 0x0790, 0x0797, 0x079d, 0x07a3, - 0x07a9, 0x07b7, 0x07c0, 0x07ca, 0x07cf, 0x07d5, 0x07dd, 0x07ea, - 0x07f2, 0x0806, 0x080f, 0x081b, 0x0825, 0x082c, 0x0833, 0x083a, - 0x083a, 0x084f, 0x085a, 0x085a, 0x085f, 0x0868, 0x0868, 0x087d, - 0x0883, 0x08a1, 0x08a5, 0x08ad, 0x08ba, 0x08c1, 0x08d1, 0x08dd, - 0x08e4, 0x08e9, 0x08f0, 0x0901, 0x0907, 0x090d, 0x0915, 0x091c, - 0x0922, 0x095f, 0x097a, 0x0981, 0x098b, 0x099c, 0x09ba, 0x09c3, - 0x09de, 0x09f8, 0x09ff, 0x0a06, 0x0a15, 0x0a1a, 0x0a1a, 0x0a1f, - // Entry 100 - 13F - 0x0a26, 0x0a34, 0x0a3a, 0x0a42, 0x0a68, 0x0a6c, 0x0a72, 0x0a82, - 0x0a91, 0x0a98, 0x0aa7, 0x0ab7, 0x0ac8, 0x0ad7, 0x0ae6, 0x0af8, - 0x0b2d, 0x0b2d, 0x0b35, 0x0b44, 0x0b50, 0x0b5f, 0x0b6d, 0x0b85, - 0x0b8e, 0x0ba0, 0x0ba9, 0x0bad, 0x0bba, 0x0bc7, 0x0bcd, 0x0bdd, - 0x0bec, 0x0bfb, 0x0c09, - }, - }, - { // rn - "AndoraLeta Zunze Ubumwe z’AbarabuAfuganisitaniAntigwa na BaribudaAngwila" + - "AlubaniyaArumeniyaAntiye y’AbaholandiAngolaArijantineSamowa nyamerik" + - "aOtirisheOsitaraliyaArubaAzerubayijaniBosiniya na HerigozevineBaruba" + - "dosiBangaladeshiUbubiligiBurukina FasoBuligariyaBahareyiniUburundiBe" + - "neBerimudaBuruneyiBoliviyaBureziliBahamasiButaniBotswanaBelausiBeliz" + - "eKanadaRepubulika Iharanira Demokarasi ya KongoRepubulika ya Santara" + - "furikaKongoUbusuwisiKotedivuwareIzinga rya KukuShiliKameruniUbushinw" + - "aKolombiyaKositarikaKibaIbirwa bya KapuveriIzinga rya ShipureRepubul" + - "ika ya CekeUbudageJibutiDanimarikiDominikaRepubulika ya DominikaAlij" + - "eriyaEkwateriEsitoniyaMisiriElitereyaHisipaniyaEtiyopiyaFinilandiFij" + - "iIzinga rya FilikilandiMikoroniziyaUbufaransaGaboUbwongerezaGerenada" + - "JeworujiyaGwayana y’AbafaransaGanaJuburalitariGurunilandiGambiyaGune" + - "yaGwadelupeGineya EkwatoriyaliUbugerekiGwatemalaGwamuGineya BisawuGu" + - "yaneHondurasiKorowasiyaHayitiHungariyaIndoneziyaIrilandiIsiraheliUbu" + - "hindiIntara y’Ubwongereza yo mu birwa by’AbahindiIrakiIraniAyisiland" + - "iUbutaliyaniJamayikaYorudaniyaUbuyapaniKenyaKirigisitaniKambojeKirib" + - "atiIzinga rya KomoreSekitsi na NevisiKoreya y’amajaruguruKoreya y’am" + - "ajepfoKowetiIbirwa bya KeyimaniKazakisitaniLayosiLibaniSelusiyaLishy" + - "itenshitayiniSirilankaLiberiyaLesotoLituwaniyaLukusamburuLativaLibiy" + - "aMarokeMonakoMoludaviMadagasikariIzinga rya MarishariMasedoniyaMaliB" + - "irimaniyaMongoliyaAmazinga ya Mariyana ryo mu majaruguruMaritinikiMo" + - "ritaniyaMonteseratiMalitaIzinga rya MoriseMoludaveMalawiMigizikeMale" + - "ziyaMozambikiNamibiyaNiyukaledoniyaNijeriizinga rya NorufolukeNijeri" + - "yaNikaragwaUbuholandiNoruvejiNepaliNawuruNiyuweNuvelizelandiOmaniPan" + - "amaPeruPolineziya y’AbafaransaPapuwa NiyugineyaAmazinga ya FilipineP" + - "akisitaniPolonyeSempiyeri na MikeloniPitikeyiriniPuwetorikoPalesitin" + - "a Wesitibanka na GazaPorutugaliPalawuParagweKatariAmazinga ya Reyini" + - "yoRumaniyaUburusiyau RwandaArabiya SawuditeAmazinga ya SalumoniAmazi" + - "nga ya SeyisheliSudaniSuwediSingapuruSeheleneSiloveniyaSilovakiyaSiy" + - "eralewoneSanimarinoSenegaliSomaliyaSurinameSawotome na PerensipeEli " + - "SaluvatoriSiriyaSuwazilandiAmazinga ya Turkisi na CayikosiCadiTogoTa" + - "yilandiTajikisitaniTokelawuTimoru y’iburasirazubaTurukumenisitaniTun" + - "iziyaTongaTurukiyaTirinidadi na TobagoTuvaluTayiwaniTanzaniyaIkerene" + - "UbugandeLeta Zunze Ubumwe za AmerikaIrigweUzubekisitaniUmurwa wa Vat" + - "ikaniSevensa na GerenadineVenezuwelaIbirwa by’isugi by’AbongerezaAma" + - "zinga y’Isugi y’AbanyamerikaViyetinamuVanuwatuWalisi na FutunaSamowa" + - "YemeniMayoteAfurika y’EpfoZambiyaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0023, 0x0030, 0x0043, 0x004a, 0x0053, - 0x005c, 0x0071, 0x0077, 0x0077, 0x0081, 0x0091, 0x0099, 0x00a4, - 0x00a9, 0x00a9, 0x00b6, 0x00ce, 0x00d8, 0x00e4, 0x00ed, 0x00fa, - 0x0104, 0x010e, 0x0116, 0x011a, 0x011a, 0x0122, 0x012a, 0x0132, - 0x0132, 0x013a, 0x0142, 0x0148, 0x0148, 0x0150, 0x0157, 0x015d, - 0x0163, 0x0163, 0x018b, 0x01a6, 0x01ab, 0x01b4, 0x01c0, 0x01cf, - 0x01d4, 0x01dc, 0x01e5, 0x01ee, 0x01ee, 0x01f8, 0x01fc, 0x020f, - 0x020f, 0x020f, 0x0221, 0x0233, 0x023a, 0x023a, 0x0240, 0x024a, - // Entry 40 - 7F - 0x0252, 0x0268, 0x0271, 0x0271, 0x0279, 0x0282, 0x0288, 0x0288, - 0x0291, 0x029b, 0x02a4, 0x02a4, 0x02ad, 0x02b1, 0x02c7, 0x02d3, - 0x02d3, 0x02dd, 0x02e1, 0x02ec, 0x02f4, 0x02fe, 0x0314, 0x0314, - 0x0318, 0x0324, 0x032f, 0x0336, 0x033c, 0x0345, 0x0358, 0x0361, - 0x0361, 0x036a, 0x036f, 0x037c, 0x0382, 0x0382, 0x0382, 0x038b, - 0x0395, 0x039b, 0x03a4, 0x03a4, 0x03ae, 0x03b6, 0x03bf, 0x03bf, - 0x03c7, 0x03f7, 0x03fc, 0x0401, 0x040b, 0x0416, 0x0416, 0x041e, - 0x0428, 0x0431, 0x0436, 0x0442, 0x0449, 0x0451, 0x0462, 0x0473, - // Entry 80 - BF - 0x0489, 0x049c, 0x04a2, 0x04b5, 0x04c1, 0x04c7, 0x04cd, 0x04d5, - 0x04e7, 0x04f0, 0x04f8, 0x04fe, 0x0508, 0x0513, 0x0519, 0x051f, - 0x0525, 0x052b, 0x0533, 0x0533, 0x0533, 0x053f, 0x0553, 0x055d, - 0x0561, 0x056b, 0x0574, 0x0574, 0x059a, 0x05a4, 0x05ae, 0x05b9, - 0x05bf, 0x05d0, 0x05d8, 0x05de, 0x05e6, 0x05ee, 0x05f7, 0x05ff, - 0x060d, 0x0613, 0x0628, 0x0630, 0x0639, 0x0643, 0x064b, 0x0651, - 0x0657, 0x065d, 0x066a, 0x066f, 0x0675, 0x0679, 0x0692, 0x06a3, - 0x06b7, 0x06c1, 0x06c8, 0x06dd, 0x06e9, 0x06f3, 0x0711, 0x071b, - // Entry C0 - FF - 0x0721, 0x0728, 0x072e, 0x072e, 0x0742, 0x074a, 0x074a, 0x0753, - 0x075b, 0x076b, 0x077f, 0x0794, 0x079a, 0x07a0, 0x07a9, 0x07b1, - 0x07bb, 0x07bb, 0x07c5, 0x07d1, 0x07db, 0x07e3, 0x07eb, 0x07f3, - 0x07f3, 0x0808, 0x0816, 0x0816, 0x081c, 0x0827, 0x0827, 0x0846, - 0x084a, 0x084a, 0x084e, 0x0857, 0x0863, 0x086b, 0x0883, 0x0893, - 0x089b, 0x08a0, 0x08a8, 0x08bc, 0x08c2, 0x08ca, 0x08d3, 0x08da, - 0x08e2, 0x08e2, 0x08fe, 0x0904, 0x0911, 0x0923, 0x0938, 0x0942, - 0x0963, 0x0986, 0x0990, 0x0998, 0x09a8, 0x09ae, 0x09ae, 0x09b4, - // Entry 100 - 13F - 0x09ba, 0x09ca, 0x09d1, 0x09d9, - }, - }, - { // ro - roRegionStr, - roRegionIdx, - }, - { // rof - "AndoroFalme za KiarabuAfuganistaniAntigua na BabudaAnguilaAlbaniaAmeniaA" + - "ntili za UholanziAngoloAjentinaSamoa ya MarekaniOstriaAustraliaAruba" + - "AzabajaniBosnia na HezegovinaBabadoBangladeshiUbelgijiBukinafasoBulg" + - "ariaBahareniBurundiBeniniBermudaBruneiBoliviaBraziliBahamasiButaniBo" + - "tswanaBelarusiBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhuri ya" + - " Afrika ya KatiKongoUswisiKodivaaVisiwa vya CookChileKameruniChinaKo" + - "lombiaKostarikaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibutiDen" + - "makiDominikaJamhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaHispa" + - "niaUhabeshiUfiniFijiVisiwa vya FalklandMikronesiaUfaransaGaboniUinge" + - "rezaGrenadaJojiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaGineG" + - "wadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKorasia" + - "HaitiHungariaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza katika B" + - "ahari HindiIrakiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKirigiz" + - "istaniKambodiaKiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea " + - "KusiniKuwaitiVisiwa vya KaimaiKazakistaniLaosiLebanoniSantalusiaLish" + - "enteniSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonak" + - "oMoldovaBukiniVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya" + - " Mariana vya KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiModivu" + - "MalawiMeksikoMalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha Norf" + - "okNijeriaNikaragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaP" + - "eruPolinesia ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri na M" + - "ikeloniPitkairniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza wa Pa" + - "lestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiVisiw" + - "a vya SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaSlovak" + - "iaSiera LeoniSamarinoSenegaliSomaliaSurinamuSao Tome na PrincipeElsa" + - "vadoSiriaUswaziVisiwa vya Turki na KaikoChadiTogoTailandiTajikistani" + - "TokelauTimori ya MasharikiTurukimenistaniTunisiaTongaUturukiTrinidad" + - " na TobagoTuvaluTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibekist" + - "aniVatikaniSantavisenti na GrenadiniVenezuelaVisiwa vya Virgin vya U" + - "ingerezaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWalis na Futun" + - "aSamoaYemeniMayotteAfrika KusiniZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0033, 0x003a, 0x0041, - 0x0047, 0x0059, 0x005f, 0x005f, 0x0067, 0x0078, 0x007e, 0x0087, - 0x008c, 0x008c, 0x0095, 0x00a9, 0x00af, 0x00ba, 0x00c2, 0x00cc, - 0x00d4, 0x00dc, 0x00e3, 0x00e9, 0x00e9, 0x00f0, 0x00f6, 0x00fd, - 0x00fd, 0x0104, 0x010c, 0x0112, 0x0112, 0x011a, 0x0122, 0x0128, - 0x012e, 0x012e, 0x014e, 0x0167, 0x016c, 0x0172, 0x0179, 0x0188, - 0x018d, 0x0195, 0x019a, 0x01a2, 0x01a2, 0x01ab, 0x01af, 0x01b7, - 0x01b7, 0x01b7, 0x01be, 0x01ce, 0x01d7, 0x01d7, 0x01dd, 0x01e4, - // Entry 40 - 7F - 0x01ec, 0x01ff, 0x0206, 0x0206, 0x020c, 0x0213, 0x0218, 0x0218, - 0x021f, 0x0227, 0x022f, 0x022f, 0x0234, 0x0238, 0x024b, 0x0255, - 0x0255, 0x025d, 0x0263, 0x026c, 0x0273, 0x0278, 0x028b, 0x028b, - 0x0290, 0x0298, 0x02a1, 0x02a7, 0x02ab, 0x02b4, 0x02bd, 0x02c4, - 0x02c4, 0x02cd, 0x02d1, 0x02da, 0x02e0, 0x02e0, 0x02e0, 0x02e9, - 0x02f0, 0x02f5, 0x02fd, 0x02fd, 0x0306, 0x030e, 0x0315, 0x0315, - 0x031a, 0x033f, 0x0344, 0x034a, 0x0352, 0x0358, 0x0358, 0x035f, - 0x0366, 0x036c, 0x0371, 0x037e, 0x0386, 0x038e, 0x0394, 0x03a7, - // Entry 80 - BF - 0x03b6, 0x03c2, 0x03c9, 0x03da, 0x03e5, 0x03ea, 0x03f2, 0x03fc, - 0x0406, 0x040f, 0x0416, 0x041c, 0x0424, 0x042d, 0x0434, 0x0439, - 0x043f, 0x0445, 0x044c, 0x044c, 0x044c, 0x0452, 0x0464, 0x046d, - 0x0471, 0x0476, 0x047e, 0x047e, 0x049e, 0x04a7, 0x04b0, 0x04bb, - 0x04c0, 0x04c6, 0x04cc, 0x04d2, 0x04d9, 0x04e0, 0x04e8, 0x04ef, - 0x04fb, 0x0501, 0x0512, 0x0519, 0x0522, 0x052a, 0x052f, 0x0535, - 0x053a, 0x053e, 0x0548, 0x054d, 0x0553, 0x0557, 0x056c, 0x0571, - 0x0579, 0x0582, 0x0589, 0x059f, 0x05a8, 0x05b1, 0x05e3, 0x05e8, - // Entry C0 - FF - 0x05ed, 0x05f5, 0x05fb, 0x05fb, 0x0604, 0x060b, 0x060b, 0x0610, - 0x0616, 0x061b, 0x062d, 0x0637, 0x063d, 0x0643, 0x064b, 0x0656, - 0x065e, 0x065e, 0x0666, 0x0671, 0x0679, 0x0681, 0x0688, 0x0690, - 0x0690, 0x06a4, 0x06ac, 0x06ac, 0x06b1, 0x06b7, 0x06b7, 0x06d0, - 0x06d5, 0x06d5, 0x06d9, 0x06e1, 0x06ec, 0x06f3, 0x0706, 0x0715, - 0x071c, 0x0721, 0x0728, 0x073a, 0x0740, 0x0747, 0x074f, 0x0756, - 0x075c, 0x075c, 0x0764, 0x076b, 0x0777, 0x077f, 0x0798, 0x07a1, - 0x07c0, 0x07de, 0x07e7, 0x07ee, 0x07fd, 0x0802, 0x0802, 0x0808, - // Entry 100 - 13F - 0x080f, 0x081c, 0x0822, 0x082a, - }, - }, - { // ru - ruRegionStr, - ruRegionIdx, - }, - { // rw - "RwandaIgitonga", - []uint16{ // 234 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 80 - BF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry C0 - FF - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0006, 0x000e, - }, - }, - { // rwk - "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + - "iaAntili za UholanziAngolaAjentinaSamoa ya MarekaniAustriaAustraliaA" + - "rubaAzabajaniBosnia na HezegovinaBabadosiBangladeshiUbelgijiBukinafa" + - "soBulgariaBahareniBurundiBeniniBermudaBruneiBoliviaBraziliBahamaButa" + - "niBotswanaBelarusiBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhur" + - "i ya Afrika ya KatiKongoUswisiKodivaaVisiwa vya CookChileKameruniChi" + - "naKolombiaKostarikaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibut" + - "iDenmakiDominikaJamhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaH" + - "ispaniaUhabeshiUfiniFijiVisiwa vya FalklandMikronesiaUfaransaGaboniU" + - "ingerezaGrenadaJojiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaG" + - "ineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKor" + - "asiaHaitiHungariaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza kati" + - "ka Bahari HindiIrakiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKir" + - "igizistaniKambodiaKiribatiKomoroSantakitzi na NevisKorea KaskaziniKo" + - "rea KusiniKuwaitiVisiwa vya KaymanKazakistaniLaosiLebanoniSantalusia" + - "LishenteniSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoM" + - "onakoMoldovaBukiniVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa" + - " vya Mariana vya KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiMo" + - "divuMalawiMeksikoMalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha " + - "NorfokNijeriaNikaragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPan" + - "amaPeruPolinesia ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri " + - "na MikeloniPitkairniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza w" + - "a PalestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiV" + - "isiwa vya SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaSl" + - "ovakiaSiera LeoniSamarinoSenegaliSomaliaSurinamuSao Tome na Principe" + - "ElsavadoSiriaUswaziVisiwa vya Turki na KaikoChadiTogoTailandiTajikis" + - "taniTokelauTimori ya MasharikiTurukimenistaniTunisiaTongaUturukiTrin" + - "idad na TobagoTuvaluTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibe" + - "kistaniVatikaniSantavisenti na GrenadiniVenezuelaVisiwa vya Virgin v" + - "ya UingerezaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWalis na F" + - "utunaSamoaYemeniMayotteAfrika KusiniZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, - 0x004a, 0x005c, 0x0062, 0x0062, 0x006a, 0x007b, 0x0082, 0x008b, - 0x0090, 0x0090, 0x0099, 0x00ad, 0x00b5, 0x00c0, 0x00c8, 0x00d2, - 0x00da, 0x00e2, 0x00e9, 0x00ef, 0x00ef, 0x00f6, 0x00fc, 0x0103, - 0x0103, 0x010a, 0x0110, 0x0116, 0x0116, 0x011e, 0x0126, 0x012c, - 0x0132, 0x0132, 0x0152, 0x016b, 0x0170, 0x0176, 0x017d, 0x018c, - 0x0191, 0x0199, 0x019e, 0x01a6, 0x01a6, 0x01af, 0x01b3, 0x01bb, - 0x01bb, 0x01bb, 0x01c2, 0x01d2, 0x01db, 0x01db, 0x01e1, 0x01e8, - // Entry 40 - 7F - 0x01f0, 0x0203, 0x020a, 0x020a, 0x0210, 0x0217, 0x021c, 0x021c, - 0x0223, 0x022b, 0x0233, 0x0233, 0x0238, 0x023c, 0x024f, 0x0259, - 0x0259, 0x0261, 0x0267, 0x0270, 0x0277, 0x027c, 0x028f, 0x028f, - 0x0294, 0x029c, 0x02a5, 0x02ab, 0x02af, 0x02b8, 0x02c1, 0x02c8, - 0x02c8, 0x02d1, 0x02d5, 0x02de, 0x02e4, 0x02e4, 0x02e4, 0x02ed, - 0x02f4, 0x02f9, 0x0301, 0x0301, 0x030a, 0x0312, 0x0319, 0x0319, - 0x031e, 0x0343, 0x0348, 0x034e, 0x0356, 0x035c, 0x035c, 0x0363, - 0x036a, 0x0370, 0x0375, 0x0382, 0x038a, 0x0392, 0x0398, 0x03ab, - // Entry 80 - BF - 0x03ba, 0x03c6, 0x03cd, 0x03de, 0x03e9, 0x03ee, 0x03f6, 0x0400, - 0x040a, 0x0413, 0x041a, 0x0420, 0x0428, 0x0431, 0x0438, 0x043d, - 0x0443, 0x0449, 0x0450, 0x0450, 0x0450, 0x0456, 0x0468, 0x0471, - 0x0475, 0x047a, 0x0482, 0x0482, 0x04a2, 0x04ab, 0x04b4, 0x04bf, - 0x04c4, 0x04ca, 0x04d0, 0x04d6, 0x04dd, 0x04e4, 0x04ec, 0x04f3, - 0x04ff, 0x0505, 0x0516, 0x051d, 0x0526, 0x052e, 0x0533, 0x0539, - 0x053e, 0x0542, 0x054c, 0x0551, 0x0557, 0x055b, 0x0570, 0x0575, - 0x057d, 0x0586, 0x058d, 0x05a3, 0x05ac, 0x05b5, 0x05e7, 0x05ec, - // Entry C0 - FF - 0x05f1, 0x05f9, 0x05ff, 0x05ff, 0x0608, 0x060f, 0x060f, 0x0614, - 0x061a, 0x061f, 0x0631, 0x063b, 0x0641, 0x0647, 0x064f, 0x065a, - 0x0662, 0x0662, 0x066a, 0x0675, 0x067d, 0x0685, 0x068c, 0x0694, - 0x0694, 0x06a8, 0x06b0, 0x06b0, 0x06b5, 0x06bb, 0x06bb, 0x06d4, - 0x06d9, 0x06d9, 0x06dd, 0x06e5, 0x06f0, 0x06f7, 0x070a, 0x0719, - 0x0720, 0x0725, 0x072c, 0x073e, 0x0744, 0x074b, 0x0753, 0x075a, - 0x0760, 0x0760, 0x0768, 0x076f, 0x077b, 0x0783, 0x079c, 0x07a5, - 0x07c4, 0x07e2, 0x07eb, 0x07f2, 0x0801, 0x0806, 0x0806, 0x080c, - // Entry 100 - 13F - 0x0813, 0x0820, 0x0826, 0x082e, - }, - }, - { // sah - "КытайÐан дойдуÐапырыкаХотугу ЭмиÑрикÑСоҕуруу ЭмиÑрикÑ", - []uint16{ // 265 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - // Entry 40 - 7F - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - // Entry 80 - BF - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - // Entry C0 - FF - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - // Entry 100 - 13F - 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x001b, 0x002b, 0x0048, - 0x0067, - }, - }, - { // saq - "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + - "iaAntili za UholanziAngolaAjentinaSamoa ya MarekaniAustriaAustraliaA" + - "rubaAzabajaniBosnia na HezegovinaBabadosiBangladeshiUbelgijiBukinafa" + - "soBulgariaBahareniBurundiBeniniBermudaBruneiBoliviaBraziliBahamaButa" + - "niBotswanaBelarusiBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhur" + - "i ya Afrika ya KatiKongoUswisiKodivaaVisiwa vya CookChileKameruniChi" + - "naKolombiaKostarikaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibut" + - "iDenmakiDominikaJamhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaH" + - "ispaniaUhabeshiUfiniFijiVisiwa vya FalklandMikronesiaUfaransaGaboniU" + - "ingerezaGrenadaJojiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaG" + - "ineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKor" + - "asiaHaitiHungariaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza kati" + - "ka Bahari HindiIrakiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKir" + - "igizistaniKambodiaKiribatiKomoroSantakitzi na NevisKorea KaskaziniKo" + - "rea KusiniKuwaitiVisiwa vya KaymanKazakistaniLaosiLebanoniSantalusia" + - "LishenteniSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoM" + - "onakoMoldovaBukiniVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa" + - " vya Mariana vya KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiMo" + - "divuMalawiMeksikoMalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha " + - "NorfokNijeriaNikaragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPan" + - "amaPeruPolinesia ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri " + - "na MikeloniPitkairniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza w" + - "a PalestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiV" + - "isiwa vya SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaSl" + - "ovakiaSiera LeoniSamarinoSenegaliSomaliaSurinamuSao Tome na Principe" + - "ElsavadoSiriaUswaziVisiwa vya Turki na KaikoChadiTogoTailandiTajikis" + - "taniTokelauTimori ya MasharikiTurukimenistaniTunisiaTongaUturukiTrin" + - "idad na TobagoTuvaluTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibe" + - "kistaniVatikaniSantavisenti na GrenadiniVenezuelaVisiwa vya Virgin v" + - "ya UingerezaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWalis na F" + - "utunaSamoaYemeniMayotteAfrika KusiniZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, - 0x004a, 0x005c, 0x0062, 0x0062, 0x006a, 0x007b, 0x0082, 0x008b, - 0x0090, 0x0090, 0x0099, 0x00ad, 0x00b5, 0x00c0, 0x00c8, 0x00d2, - 0x00da, 0x00e2, 0x00e9, 0x00ef, 0x00ef, 0x00f6, 0x00fc, 0x0103, - 0x0103, 0x010a, 0x0110, 0x0116, 0x0116, 0x011e, 0x0126, 0x012c, - 0x0132, 0x0132, 0x0152, 0x016b, 0x0170, 0x0176, 0x017d, 0x018c, - 0x0191, 0x0199, 0x019e, 0x01a6, 0x01a6, 0x01af, 0x01b3, 0x01bb, - 0x01bb, 0x01bb, 0x01c2, 0x01d2, 0x01db, 0x01db, 0x01e1, 0x01e8, - // Entry 40 - 7F - 0x01f0, 0x0203, 0x020a, 0x020a, 0x0210, 0x0217, 0x021c, 0x021c, - 0x0223, 0x022b, 0x0233, 0x0233, 0x0238, 0x023c, 0x024f, 0x0259, - 0x0259, 0x0261, 0x0267, 0x0270, 0x0277, 0x027c, 0x028f, 0x028f, - 0x0294, 0x029c, 0x02a5, 0x02ab, 0x02af, 0x02b8, 0x02c1, 0x02c8, - 0x02c8, 0x02d1, 0x02d5, 0x02de, 0x02e4, 0x02e4, 0x02e4, 0x02ed, - 0x02f4, 0x02f9, 0x0301, 0x0301, 0x030a, 0x0312, 0x0319, 0x0319, - 0x031e, 0x0343, 0x0348, 0x034e, 0x0356, 0x035c, 0x035c, 0x0363, - 0x036a, 0x0370, 0x0375, 0x0382, 0x038a, 0x0392, 0x0398, 0x03ab, - // Entry 80 - BF - 0x03ba, 0x03c6, 0x03cd, 0x03de, 0x03e9, 0x03ee, 0x03f6, 0x0400, - 0x040a, 0x0413, 0x041a, 0x0420, 0x0428, 0x0431, 0x0438, 0x043d, - 0x0443, 0x0449, 0x0450, 0x0450, 0x0450, 0x0456, 0x0468, 0x0471, - 0x0475, 0x047a, 0x0482, 0x0482, 0x04a2, 0x04ab, 0x04b4, 0x04bf, - 0x04c4, 0x04ca, 0x04d0, 0x04d6, 0x04dd, 0x04e4, 0x04ec, 0x04f3, - 0x04ff, 0x0505, 0x0516, 0x051d, 0x0526, 0x052e, 0x0533, 0x0539, - 0x053e, 0x0542, 0x054c, 0x0551, 0x0557, 0x055b, 0x0570, 0x0575, - 0x057d, 0x0586, 0x058d, 0x05a3, 0x05ac, 0x05b5, 0x05e7, 0x05ec, - // Entry C0 - FF - 0x05f1, 0x05f9, 0x05ff, 0x05ff, 0x0608, 0x060f, 0x060f, 0x0614, - 0x061a, 0x061f, 0x0631, 0x063b, 0x0641, 0x0647, 0x064f, 0x065a, - 0x0662, 0x0662, 0x066a, 0x0675, 0x067d, 0x0685, 0x068c, 0x0694, - 0x0694, 0x06a8, 0x06b0, 0x06b0, 0x06b5, 0x06bb, 0x06bb, 0x06d4, - 0x06d9, 0x06d9, 0x06dd, 0x06e5, 0x06f0, 0x06f7, 0x070a, 0x0719, - 0x0720, 0x0725, 0x072c, 0x073e, 0x0744, 0x074b, 0x0753, 0x075a, - 0x0760, 0x0760, 0x0768, 0x076f, 0x077b, 0x0783, 0x079c, 0x07a5, - 0x07c4, 0x07e2, 0x07eb, 0x07f2, 0x0801, 0x0806, 0x0806, 0x080c, - // Entry 100 - 13F - 0x0813, 0x0820, 0x0826, 0x082e, - }, - }, - { // sbp - "AndolaWutwa wa shiyalabuAfuganisitaniAnitiguya ni BalubudaAnguillaAluban" + - "iyaAlimeniyaAnitili sa UholansiAngolaAjentinaSamoya ya MalekaniAwusi" + - "tiliyaAwusitilaliyaAlubaAsabajaniBosiniya ni HesegovinaBabadosiBangi" + - "ladeshiUbeligijiBukinafasoBuligaliyaBahaleniBulundiBeniniBelimudaBul" + - "uneyiBoliviyaBulasiliBahamaButaniBotiswanaBelalusiBeliseKanadaJamuhu" + - "li ya Kidemokilasiya ya KongoJamuhuli ya Afilika ya PakhatiKongoUswi" + - "siKodivayaFigunguli fya KookiShileKameruniShinaKolombiyaKositalikaKu" + - "baKepuvedeKupilosiJamuhuli ya ShekiWujelumaniJibutiDenimakiDominikaJ" + - "amuhuli ya DominikaAlijeliyaEkwadoEsitoniyaMisiliElitileyaHisipaniya" + - "UhabeshiWufiniFijiFigunguli fya FokolendiMikilonesiyaWufalansaGaboni" + - "UwingelesaGilenadaJojiyaGwiyana ya WufalansaKhanaJibulalitaGilinilan" + - "diGambiyaGineGwadelupeGinekwetaWugilikiGwatemalaGwamuGinebisawuGuyan" + - "aHondulasiKolasiyaHayitiHungaliyaIndonesiyaAyalandiIsilaeliIndiyaUlu" + - "vala lwa Uwingelesa ku Bahali ya HindiIlakiUwajemiAyisilendiItaliyaJ" + - "amaikaYolodaniJapaniKenyaKiligisisitaniKambodiyaKilibatiKomoloSantak" + - "itisi ni NevisiKoleya ya luvala lwa KunyamandeKoleya ya KusiniKuwait" + - "iFigunguli ifya KayimayiKasakisitaniLayosiLebanoniSantalusiyaLisheni" + - "teniSililankaLibeliyaLesotoLitwaniyaLasembagiLativiyaLibiyaMolokoMon" + - "akoMolidovaBukiniFigunguli ifya MalishaliMasedoniyaMaliMuyamaMongoli" + - "yaFigunguli fya Maliyana ifya luvala lwa KunyamandeMalitinikiMolitan" + - "iyaMonitiselatiMalitaMolisiModivuMalawiMekisikoMalesiyaMusumbijiNami" + - "biyaNyukaledoniyaNijeliShigunguli sha NolifokiNijeliyaNikalagwaWuhol" + - "ansiNolweNepaliNawuluNiwueNyusilendiOmaniPanamaPeluPolinesiya ya Wuf" + - "alansaPapuwaFilipinoPakisitaniPolandiSantapieli ni MikeloniPitikaili" + - "niPwetolikoMunjema gwa Kusikha nu Luvala lwa Gasa lwa PalesitWulenoP" + - "alawuPalagwayiKataliLiyunioniLomaniyaWulusiLwandaSawudiFigunguli fya" + - " SolomoniShelisheliSudaniUswidiSingapooSantahelenaSiloveniyaSilovaki" + - "yaSiela LiyoniSamalinoSenegaliSomaliyaSulinamuSayo Tome ni Pilinikip" + - "eElisavadoSiliyaUswasiFigunguli fya Tuliki ni KaikoShadiTogoTailandi" + - "TajikisitaniTokelawuTimoli ya kunenaTulukimenisitaniTunisiyaTongaUtu" + - "lukiTilinidadi ni TobagoTuvaluTaiwaniTansaniyaYukileiniUgandaMalekan" + - "iUlugwayiUsibekisitaniVatikaniSantavisenti na GilenadiniVenesuelaFig" + - "unguli ifya Viliginiya ifya UwingelesaFigunguli fya Viliginiya ifya " + - "MalekaniVietinamuVanuatuWalisi ni FutunaSamoyaYemeniMayoteAfilika Ku" + - "siniSambiyaSimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0018, 0x0025, 0x003a, 0x0042, 0x004b, - 0x0054, 0x0067, 0x006d, 0x006d, 0x0075, 0x0087, 0x0092, 0x009f, - 0x00a4, 0x00a4, 0x00ad, 0x00c3, 0x00cb, 0x00d7, 0x00e0, 0x00ea, - 0x00f4, 0x00fc, 0x0103, 0x0109, 0x0109, 0x0111, 0x0119, 0x0121, - 0x0121, 0x0129, 0x012f, 0x0135, 0x0135, 0x013e, 0x0146, 0x014c, - 0x0152, 0x0152, 0x0175, 0x0193, 0x0198, 0x019e, 0x01a6, 0x01b9, - 0x01be, 0x01c6, 0x01cb, 0x01d4, 0x01d4, 0x01de, 0x01e2, 0x01ea, - 0x01ea, 0x01ea, 0x01f2, 0x0203, 0x020d, 0x020d, 0x0213, 0x021b, - // Entry 40 - 7F - 0x0223, 0x0237, 0x0240, 0x0240, 0x0246, 0x024f, 0x0255, 0x0255, - 0x025e, 0x0268, 0x0270, 0x0270, 0x0276, 0x027a, 0x0291, 0x029d, - 0x029d, 0x02a6, 0x02ac, 0x02b6, 0x02be, 0x02c4, 0x02d8, 0x02d8, - 0x02dd, 0x02e7, 0x02f2, 0x02f9, 0x02fd, 0x0306, 0x030f, 0x0317, - 0x0317, 0x0320, 0x0325, 0x032f, 0x0335, 0x0335, 0x0335, 0x033e, - 0x0346, 0x034c, 0x0355, 0x0355, 0x035f, 0x0367, 0x036f, 0x036f, - 0x0375, 0x039e, 0x03a3, 0x03aa, 0x03b4, 0x03bb, 0x03bb, 0x03c2, - 0x03ca, 0x03d0, 0x03d5, 0x03e3, 0x03ec, 0x03f4, 0x03fa, 0x040f, - // Entry 80 - BF - 0x042e, 0x043e, 0x0445, 0x045c, 0x0468, 0x046e, 0x0476, 0x0481, - 0x048c, 0x0495, 0x049d, 0x04a3, 0x04ac, 0x04b5, 0x04bd, 0x04c3, - 0x04c9, 0x04cf, 0x04d7, 0x04d7, 0x04d7, 0x04dd, 0x04f5, 0x04ff, - 0x0503, 0x0509, 0x0512, 0x0512, 0x0543, 0x054d, 0x0557, 0x0563, - 0x0569, 0x056f, 0x0575, 0x057b, 0x0583, 0x058b, 0x0594, 0x059c, - 0x05a9, 0x05af, 0x05c6, 0x05ce, 0x05d7, 0x05e0, 0x05e5, 0x05eb, - 0x05f1, 0x05f6, 0x0600, 0x0605, 0x060b, 0x060f, 0x0626, 0x062c, - 0x0634, 0x063e, 0x0645, 0x065b, 0x0666, 0x066f, 0x06a1, 0x06a7, - // Entry C0 - FF - 0x06ad, 0x06b6, 0x06bc, 0x06bc, 0x06c5, 0x06cd, 0x06cd, 0x06d3, - 0x06d9, 0x06df, 0x06f5, 0x06ff, 0x0705, 0x070b, 0x0713, 0x071e, - 0x0728, 0x0728, 0x0732, 0x073e, 0x0746, 0x074e, 0x0756, 0x075e, - 0x075e, 0x0775, 0x077e, 0x077e, 0x0784, 0x078a, 0x078a, 0x07a7, - 0x07ac, 0x07ac, 0x07b0, 0x07b8, 0x07c4, 0x07cc, 0x07dc, 0x07ec, - 0x07f4, 0x07f9, 0x0800, 0x0814, 0x081a, 0x0821, 0x082a, 0x0833, - 0x0839, 0x0839, 0x0841, 0x0849, 0x0856, 0x085e, 0x0878, 0x0881, - 0x08aa, 0x08d0, 0x08d9, 0x08e0, 0x08f0, 0x08f6, 0x08f6, 0x08fc, - // Entry 100 - 13F - 0x0902, 0x0910, 0x0917, 0x091f, - }, - }, - { // se - "AscensionAndorraOvttastuvvan ArábaemiráhtatAfghanistanAntigua ja Barbuda" + - "AnguillaAlbániaArmeniaAngolaAntárktisArgentinaAmerihká SamoaNuortari" + - "ikaAustráliaArubaÃ…lándaAserbaižanBosnia-HercegovinaBarbadosBanglades" + - "hBelgiaBurkina FasoBulgáriaBahrainBurundiBeninSaint BarthélemyBermud" + - "aBruneiBoliviaBrasilBahamasBhutanBouvet-sullotBotswanaVilges-RuoÅ¡Å¡aB" + - "elizeKanádaCocos-sullotKongo-KinshasaGaska-Afrihká dásseváldiKongo-B" + - "razzavilleÅ veicaElfenbenaridduCook-sullotÄŒiileKamerunKiinnáKolombiaC" + - "lipperton-sullotCosta RicaKubaKap VerdeCuraçaoJuovllat-sullotKyprosÄŒ" + - "eahkkaDuiskaDiego GarciaDjiboutiDánmárkuDominicaDominikána dásseváld" + - "iAlgeriaCeuta ja MelillaEcuadorEstlándaEgyptaOarje-SaháraEritreaSpán" + - "iaEtiopiaEurohpa UniovdnaSuopmaFijisullotFalklandsullotMikronesiaFea" + - "rsullotFrankriikaGabonStuorra-BritánniaGrenadaGeorgiaFrankriikka Gua" + - "yanaGuernseyGhanaGibraltarKalaallit NunaatGámbiaGuineaGuadeloupeEkva" + - "toriála GuineaGreikaLulli Georgia ja Lulli Sandwich-sullotGuatemalaG" + - "uamGuinea-BissauGuyanaHongkongHeard- ja McDonald-sullotHondurasKroát" + - "iaHaitiUngárKanáriasullotIndonesiaIrlándaIsraelMann-sullotIndiaIrakI" + - "ranIslándaItáliaJerseyJamaicaJordániaJapánaKeniaKirgisistanKambodžaK" + - "iribatiKomorosSaint Kitts ja NevisDavvi-KoreaMátta-KoreaKuwaitCayman" + - "-sullotKasakstanLaosLibanonSaint LuciaLiechtensteinSri LankaLiberiaL" + - "esothoLietuvaLuxembourgLátviaLibyaMarokkoMonacoMoldáviaMontenegroFra" + - "nkriikka Saint MartinMadagaskarMarshallsullotMakedoniaMaliBurmaMongo" + - "liaMakáoDavvi-MariánatMartiniqueMauretániaMontserratMáltaMauritiusMa" + - "lediivvatMalawiMeksikoMalesiaMosambikNamibiaOÄ‘Ä‘a-KaledoniaNigerNorfo" + - "lksullotNigeriaNicaraguaVuolleeatnamatNorgaNepalNauruNiueOÄ‘Ä‘a-Selánd" + - "aOmanPanamaPeruFrankriikka PolynesiaPapua-OÄ‘Ä‘a-GuineaFilippiinnatPak" + - "istanPolenSaint Pierre ja MiquelonPitcairnPuerto RicoPalestinaPortug" + - "álaPalauParaguayQatarRéunionRomániaSerbiaRuoÅ¡Å¡aRwandaSaudi-ArábiaSa" + - "lomon-sullotSeychellsullotDavvisudanRuoŧŧaSingaporeSaint HelenaSlove" + - "niaSvalbárda ja Jan MayenSlovákiaSierra LeoneSan MarinoSenegalSomáli" + - "aSurinamMáttasudanSão Tomé ja PríncipeEl SalvadorVuolleeatnamat Sain" + - "t MartinSyriaSvazieanaTristan da CunhaTurks ja Caicos-sullotTÄadTogo" + - "ThaieanaTažikistanTokelauNuorta-TimorTurkmenistanTunisiaTongaDurkaTr" + - "inidad ja TobagoTuvaluTaiwanTanzániaUkrainaUgandaAmerihká ovttastuvv" + - "an stáhtatUruguayUsbekistanVatikánaSaint Vincent ja GrenadineVenezue" + - "laBrittania Virgin-sullotAOS Virgin-sullotVietnamVanuatuWallis ja Fu" + - "tunaSamoaKosovoJemenMayotteMátta-AfrihkáZambiaZimbabwedovdameahttun " + - "guovlumáilbmiAfrihkkádávvi-Amerihkká ja gaska-Amerihkkámátta-Amerihk" + - "káOseaniaoarji-Afrihkkágaska-Amerihkkánuorta-Afrihkkádavvi-Afrihkkág" + - "aska-Afrihkkámátta-AfrihkkáAmerihkkádávvi-AmerihkkáKaribianuorta-Ãsi" + - "amátta-Ãsiamátta-nuorta-Ãsiamátta-EurohpáAustrália ja OÄ‘Ä‘a-SelándaMe" + - "lanesiaMikronesia guovllusPolynesiaÃsiagaska-Ãsiaoarji-ÃsiaEurohpánu" + - "orta-Eurohpádavvi-Eurohpáoarji-Eurohpálulli-Amerihkká", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0009, 0x0010, 0x002d, 0x0038, 0x004a, 0x0052, 0x005a, - 0x0061, 0x0061, 0x0067, 0x0071, 0x007a, 0x0089, 0x0094, 0x009e, - 0x00a3, 0x00ab, 0x00b6, 0x00c8, 0x00d0, 0x00da, 0x00e0, 0x00ec, - 0x00f5, 0x00fc, 0x0103, 0x0108, 0x0119, 0x0120, 0x0126, 0x012d, - 0x012d, 0x0133, 0x013a, 0x0140, 0x014d, 0x0155, 0x0164, 0x016a, - 0x0171, 0x017d, 0x018b, 0x01a6, 0x01b7, 0x01be, 0x01cc, 0x01d7, - 0x01dd, 0x01e4, 0x01eb, 0x01f3, 0x0204, 0x020e, 0x0212, 0x021b, - 0x0223, 0x0232, 0x0238, 0x0240, 0x0246, 0x0252, 0x025a, 0x0264, - // Entry 40 - 7F - 0x026c, 0x0284, 0x028b, 0x029b, 0x02a2, 0x02ab, 0x02b1, 0x02be, - 0x02c5, 0x02cc, 0x02d3, 0x02e3, 0x02e9, 0x02f3, 0x0301, 0x030b, - 0x0315, 0x031f, 0x0324, 0x0336, 0x033d, 0x0344, 0x0357, 0x035f, - 0x0364, 0x036d, 0x037d, 0x0384, 0x038a, 0x0394, 0x03a7, 0x03ad, - 0x03d3, 0x03dc, 0x03e0, 0x03ed, 0x03f3, 0x03fb, 0x0414, 0x041c, - 0x0424, 0x0429, 0x042f, 0x043d, 0x0446, 0x044e, 0x0454, 0x045f, - 0x0464, 0x0464, 0x0468, 0x046c, 0x0474, 0x047b, 0x0481, 0x0488, - 0x0491, 0x0498, 0x049d, 0x04a8, 0x04b1, 0x04b9, 0x04c0, 0x04d4, - // Entry 80 - BF - 0x04df, 0x04eb, 0x04f1, 0x04fe, 0x0507, 0x050b, 0x0512, 0x051d, - 0x052a, 0x0533, 0x053a, 0x0541, 0x0548, 0x0552, 0x0559, 0x055e, - 0x0565, 0x056b, 0x0574, 0x057e, 0x0596, 0x05a0, 0x05ae, 0x05b7, - 0x05bb, 0x05c0, 0x05c8, 0x05ce, 0x05dd, 0x05e7, 0x05f2, 0x05fc, - 0x0602, 0x060b, 0x0616, 0x061c, 0x0623, 0x062a, 0x0632, 0x0639, - 0x0649, 0x064e, 0x065b, 0x0662, 0x066b, 0x0679, 0x067e, 0x0683, - 0x0688, 0x068c, 0x069b, 0x069f, 0x06a5, 0x06a9, 0x06be, 0x06d1, - 0x06dd, 0x06e5, 0x06ea, 0x0702, 0x070a, 0x0715, 0x071e, 0x0728, - // Entry C0 - FF - 0x072d, 0x0735, 0x073a, 0x073a, 0x0742, 0x074a, 0x0750, 0x0758, - 0x075e, 0x076b, 0x0779, 0x0787, 0x0791, 0x0799, 0x07a2, 0x07ae, - 0x07b6, 0x07cd, 0x07d6, 0x07e2, 0x07ec, 0x07f3, 0x07fb, 0x0802, - 0x080d, 0x0824, 0x082f, 0x084a, 0x084f, 0x0858, 0x0868, 0x087e, - 0x0883, 0x0883, 0x0887, 0x088f, 0x089a, 0x08a1, 0x08ad, 0x08b9, - 0x08c0, 0x08c5, 0x08ca, 0x08dc, 0x08e2, 0x08e8, 0x08f1, 0x08f8, - 0x08fe, 0x08fe, 0x091d, 0x0924, 0x092e, 0x0937, 0x0951, 0x095a, - 0x0971, 0x0982, 0x0989, 0x0990, 0x09a0, 0x09a5, 0x09ab, 0x09b0, - // Entry 100 - 13F - 0x09b7, 0x09c6, 0x09cc, 0x09d4, 0x09e8, 0x09f0, 0x09f9, 0x0a1e, - 0x0a2f, 0x0a36, 0x0a45, 0x0a55, 0x0a65, 0x0a74, 0x0a83, 0x0a93, - 0x0a9d, 0x0aae, 0x0ab5, 0x0ac1, 0x0acd, 0x0ae0, 0x0aef, 0x0b0c, - 0x0b15, 0x0b28, 0x0b31, 0x0b36, 0x0b41, 0x0b4c, 0x0b54, 0x0b63, - 0x0b71, 0x0b7f, 0x0b8f, - }, - }, - { // se-FI - "Bosnia ja HercegovinaKambožaSudanChadDavvi-Amerihkká ja Gaska-AmerihkkáL" + - "ulli-AmerihkkáGaska-AmerihkkáDavvi-AmerihkkáLatiinnalaÅ¡-Amerihkká", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - // Entry 40 - 7F - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, - 0x0015, 0x0015, 0x0015, 0x0015, 0x001d, 0x001d, 0x001d, 0x001d, - // Entry 80 - BF - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - // Entry C0 - FF - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x0022, 0x0022, 0x0022, 0x0022, - 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, - 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, - 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, - 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, - 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, - 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, - // Entry 100 - 13F - 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x004a, - 0x005a, 0x005a, 0x005a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, - 0x006a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, - 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, - 0x007a, 0x007a, 0x0091, - }, - }, - { // seh - "AndorraEmirados Ãrabes UnidosAfeganistãoAntígua e BarbudaAnguillaAlbânia" + - "ArmêniaAntilhas HolandesasAngolaArgentinaSamoa AmericanaÃustriaAustr" + - "áliaArubaAzerbaijãoBósnia-HerzegovinaBarbadosBangladeshBélgicaBurqu" + - "ina FasoBulgáriaBahrainBurundiBeninBermudasBruneiBolíviaBrasilBahama" + - "sButãoBotsuanaBelarusBelizeCanadáCongo-KinshasaRepública Centro-Afri" + - "canaCongoSuíçaCosta do MarfimIlhas CookChileRepública dos CamarõesCh" + - "inaColômbiaCosta RicaCubaCabo VerdeChipreRepública TchecaAlemanhaDji" + - "butiDinamarcaDominicaRepública DominicanaArgéliaEquadorEstôniaEgitoE" + - "ritréiaEspanhaEtiópiaFinlândiaFijiIlhas MalvinasMicronésiaFrançaGabã" + - "oReino UnidoGranadaGeórgiaGuiana FrancesaGanaGibraltarGroênlandiaGâm" + - "biaGuinéGuadalupeGuiné EquatorialGréciaGuatemalaGuamGuiné BissauGuia" + - "naHondurasCroáciaHaitiHungriaIndonésiaIrlandaIsraelÃndiaTerritório B" + - "ritânico do Oceano ÃndicoIraqueIrãIslândiaItáliaJamaicaJordâniaJapão" + - "QuêniaQuirguistãoCambojaQuiribatiComoresSão Cristovão e NevisCoréia " + - "do NorteCoréia do SulKuwaitIlhas CaimanCasaquistãoLaosLíbanoSanta Lú" + - "ciaLiechtensteinSri LankaLibériaLesotoLituâniaLuxemburgoLetôniaLíbia" + - "MarrocosMônacoMoldáviaMadagascarIlhas MarshallMacedôniaMaliMianmarMo" + - "ngóliaIlhas Marianas do NorteMartinicaMauritâniaMontserratMaltaMaurí" + - "cioMaldivasMalawiMéxicoMalásiaMoçambiqueNamíbiaNova CaledôniaNígerIl" + - "has NorfolkNigériaNicaráguaHolandaNoruegaNepalNauruNiueNova Zelândia" + - "OmãPanamáPeruPolinésia FrancesaPapua-Nova GuinéFilipinasPaquistãoPol" + - "ôniaSaint Pierre e MiquelonPitcairnPorto RicoTerritório da Palestin" + - "aPortugalPalauParaguaiCatarReuniãoRomêniaRússiaRuandaArábia SauditaI" + - "lhas SalomãoSeychellesSudãoSuéciaCingapuraSanta HelenaEslovêniaEslov" + - "áquiaSerra LeoaSan MarinoSenegalSomáliaSurinameSão Tomé e PríncipeE" + - "l SalvadorSíriaSuazilândiaIlhas Turks e CaicosChadeTogoTailândiaTadj" + - "iquistãoTokelauTimor LesteTurcomenistãoTunísiaTongaTurquiaTrinidad e" + - " TobagoTuvaluTaiwanUcrâniaUgandaEstados UnidosUruguaiUzbequistãoVati" + - "canoSão Vicente e GranadinasVenezuelaIlhas Virgens BritânicasIlhas V" + - "irgens dos EUAVietnãVanuatuWallis e FutunaSamoaIêmenMayotteÃfrica do" + - " SulZâmbiaZimbábue", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x001e, 0x002a, 0x003c, 0x0044, 0x004c, - 0x0054, 0x0067, 0x006d, 0x006d, 0x0076, 0x0085, 0x008d, 0x0097, - 0x009c, 0x009c, 0x00a7, 0x00ba, 0x00c2, 0x00cc, 0x00d4, 0x00e1, - 0x00ea, 0x00f1, 0x00f8, 0x00fd, 0x00fd, 0x0105, 0x010b, 0x0113, - 0x0113, 0x0119, 0x0120, 0x0126, 0x0126, 0x012e, 0x0135, 0x013b, - 0x0142, 0x0142, 0x0150, 0x016a, 0x016f, 0x0176, 0x0185, 0x018f, - 0x0194, 0x01ac, 0x01b1, 0x01ba, 0x01ba, 0x01c4, 0x01c8, 0x01d2, - 0x01d2, 0x01d2, 0x01d8, 0x01e9, 0x01f1, 0x01f1, 0x01f8, 0x0201, - // Entry 40 - 7F - 0x0209, 0x021e, 0x0226, 0x0226, 0x022d, 0x0235, 0x023a, 0x023a, - 0x0243, 0x024a, 0x0252, 0x0252, 0x025c, 0x0260, 0x026e, 0x0279, - 0x0279, 0x0280, 0x0286, 0x0291, 0x0298, 0x02a0, 0x02af, 0x02af, - 0x02b3, 0x02bc, 0x02c8, 0x02cf, 0x02d5, 0x02de, 0x02ef, 0x02f6, - 0x02f6, 0x02ff, 0x0303, 0x0310, 0x0316, 0x0316, 0x0316, 0x031e, - 0x0326, 0x032b, 0x0332, 0x0332, 0x033c, 0x0343, 0x0349, 0x0349, - 0x034f, 0x0377, 0x037d, 0x0381, 0x038a, 0x0391, 0x0391, 0x0398, - 0x03a1, 0x03a7, 0x03ae, 0x03ba, 0x03c1, 0x03ca, 0x03d1, 0x03e8, - // Entry 80 - BF - 0x03f8, 0x0406, 0x040c, 0x0418, 0x0424, 0x0428, 0x042f, 0x043b, - 0x0448, 0x0451, 0x0459, 0x045f, 0x0468, 0x0472, 0x047a, 0x0480, - 0x0488, 0x048f, 0x0498, 0x0498, 0x0498, 0x04a2, 0x04b0, 0x04ba, - 0x04be, 0x04c5, 0x04ce, 0x04ce, 0x04e5, 0x04ee, 0x04f9, 0x0503, - 0x0508, 0x0511, 0x0519, 0x051f, 0x0526, 0x052e, 0x0539, 0x0541, - 0x0550, 0x0556, 0x0563, 0x056b, 0x0575, 0x057c, 0x0583, 0x0588, - 0x058d, 0x0591, 0x059f, 0x05a3, 0x05aa, 0x05ae, 0x05c1, 0x05d2, - 0x05db, 0x05e5, 0x05ed, 0x0604, 0x060c, 0x0616, 0x062e, 0x0636, - // Entry C0 - FF - 0x063b, 0x0643, 0x0648, 0x0648, 0x0650, 0x0658, 0x0658, 0x065f, - 0x0665, 0x0674, 0x0682, 0x068c, 0x0692, 0x0699, 0x06a2, 0x06ae, - 0x06b8, 0x06b8, 0x06c3, 0x06cd, 0x06d7, 0x06de, 0x06e6, 0x06ee, - 0x06ee, 0x0704, 0x070f, 0x070f, 0x0715, 0x0721, 0x0721, 0x0735, - 0x073a, 0x073a, 0x073e, 0x0748, 0x0755, 0x075c, 0x0767, 0x0775, - 0x077d, 0x0782, 0x0789, 0x079a, 0x07a0, 0x07a6, 0x07a6, 0x07ae, - 0x07b4, 0x07b4, 0x07c2, 0x07c9, 0x07d5, 0x07dd, 0x07f6, 0x07ff, - 0x0818, 0x082d, 0x0834, 0x083b, 0x084a, 0x084f, 0x084f, 0x0855, - // Entry 100 - 13F - 0x085c, 0x086a, 0x0871, 0x087a, - }, - }, - { // ses - "AndooraLaaraw Imaarawey MarganteyAfgaanistanAntigua nda BarbuudaAngiiyaA" + - "lbaaniArmeeniHollandu Antiiyey LabooAngoolaArgentineAmeriki SamoaOtr" + - "iÅ¡iOstraaliAruubaAzerbaayijaÅ‹Bosni nda HerzegovineBarbaadosBangladeÅ¡" + - "iBelgiikiBurkina fasoBulgaariBahareenBurundiBeniÅ‹BermudaBruuneeBooli" + - "viBreezilBahamasBuutaÅ‹BotswaanaBiloriÅ¡iBeliiziKanaadaKongoo demookar" + - "atiki labooCentraafriki koyraKongooSwisuKudwarKuuk gungeyÅ iiliKameru" + - "unÅ iinKolombiKosta rikaKuubaKapuver gungeyÅ iipurCek laboAlmaaɲeJibuu" + - "tiDanemarkDoominikiDoominiki labooAlžeeriEkwateerEstooniMisraEritree" + - "EspaaɲeEcioopiFinlanduFijiKalkan gungeyMikroneziFaransiGaabonAlbaasa" + - "laama MargantaGrenaadaGorgiFaransi GuyaanGaanaGibraltarGrinlandGambi" + - "GineGwadeluupGinee EkwatorialGreeceGwatemaalaGuamGine-BissoGuyaaneHo" + - "ndurasKrwaasiHaitiHungaariIndoneeziIrlanduIsrayelIndu labooBritiÅ¡i I" + - "ndu teekoo laamaIraakIraanAycelandItaaliJamaayikUrdunJaapoÅ‹KeeniyaKy" + - "rgyzstanKamboogiKiribaatiKomoorSeÅ‹ Kitts nda NevisKooree, GurmaKoore" + - "e, HawsaKuweetKayman gungeyKaazakstanLaawosLubnaanSeÅ‹ LussiaLiechten" + - "steinSrilankaLiberiaLeesotoLituaaniLuxembourgLetooniLiibiMaarokMonak" + - "oMoldoviMadagascarMarÅ¡al gungeyMaacedooniMaaliMaynamarMongooliMarian" + - "a Gurma GungeyMartiniikiMooritaaniMontserratMaltaMooris gungeyMaldii" + - "vuMalaawiMexikiMaleeziMozambikNaamibiKaaledooni TaagaaNižerNorfolk G" + - "ungooNaajiriiaNikaragwaHollanduNorveejNeepalNauruNiueZeelandu TaagaO" + - "maanPanamaPeeruFaransi PolineeziPapua Ginee TaagaFilipinePaakistanPo" + - "loɲeSeÅ‹ Piyer nda MikelonPitikarinPorto RikoPalestine Dangay nda Gaa" + - "zaPortugaalPaluParaguweyKataarReenioÅ‹RumaaniIriÅ¡i labooRwandaSaudiya" + - "Solomon GungeySeeÅ¡elSuudaÅ‹SweedeSingapurSeÅ‹ HelenaSloveeniSlovaakiSe" + - "era LeonSan MarinoSenegalSomaaliSurinaamSao Tome nda PrinsipeSalvado" + - "r labooSuuriaSwazilandTurk nda Kayikos GungeyCaaduTogoTaayilandTaaži" + - "kistanTokelauTimoor hawsaTurkmenistaÅ‹TuniziTongaTurkiTrinidad nda To" + - "baagoTuvaluTaayiwanTanzaaniUkreenUgandaAmeriki Laabu MarganteyUruguw" + - "eyUzbeekistanVaatikan LaamaSeÅ‹vinsaÅ‹ nda GrenadineVeneezuyeelaBritiÅ¡" + - "i Virgin gungeyAmeerik Virgin GungeyVietnaamVanautuWallis nda Futuna" + - "SamoaYamanMayootiHawsa Afriki LabooZambiZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x0021, 0x002c, 0x0040, 0x0047, 0x004e, - 0x0055, 0x006c, 0x0073, 0x0073, 0x007c, 0x0089, 0x0090, 0x0098, - 0x009e, 0x009e, 0x00ab, 0x00c0, 0x00c9, 0x00d4, 0x00dc, 0x00e8, - 0x00f0, 0x00f8, 0x00ff, 0x0105, 0x0105, 0x010c, 0x0113, 0x011a, - 0x011a, 0x0121, 0x0128, 0x012f, 0x012f, 0x0138, 0x0141, 0x0148, - 0x014f, 0x014f, 0x0169, 0x017b, 0x0181, 0x0186, 0x018c, 0x0197, - 0x019d, 0x01a5, 0x01aa, 0x01b1, 0x01b1, 0x01bb, 0x01c0, 0x01ce, - 0x01ce, 0x01ce, 0x01d5, 0x01dd, 0x01e5, 0x01e5, 0x01ec, 0x01f4, - // Entry 40 - 7F - 0x01fd, 0x020c, 0x0214, 0x0214, 0x021c, 0x0223, 0x0228, 0x0228, - 0x022f, 0x0237, 0x023e, 0x023e, 0x0246, 0x024a, 0x0257, 0x0260, - 0x0260, 0x0267, 0x026d, 0x0282, 0x028a, 0x028f, 0x029d, 0x029d, - 0x02a2, 0x02ab, 0x02b3, 0x02b8, 0x02bc, 0x02c5, 0x02d5, 0x02db, - 0x02db, 0x02e5, 0x02e9, 0x02f3, 0x02fa, 0x02fa, 0x02fa, 0x0302, - 0x0309, 0x030e, 0x0316, 0x0316, 0x031f, 0x0326, 0x032d, 0x032d, - 0x0337, 0x0351, 0x0356, 0x035b, 0x0363, 0x0369, 0x0369, 0x0371, - 0x0376, 0x037d, 0x0384, 0x038e, 0x0396, 0x039f, 0x03a5, 0x03b9, - // Entry 80 - BF - 0x03c6, 0x03d3, 0x03d9, 0x03e6, 0x03f0, 0x03f6, 0x03fd, 0x0408, - 0x0415, 0x041d, 0x0424, 0x042b, 0x0433, 0x043d, 0x0444, 0x0449, - 0x044f, 0x0455, 0x045c, 0x045c, 0x045c, 0x0466, 0x0474, 0x047e, - 0x0483, 0x048b, 0x0493, 0x0493, 0x04a7, 0x04b1, 0x04bb, 0x04c5, - 0x04ca, 0x04d7, 0x04df, 0x04e6, 0x04ec, 0x04f3, 0x04fb, 0x0502, - 0x0513, 0x0519, 0x0527, 0x0530, 0x0539, 0x0541, 0x0548, 0x054e, - 0x0553, 0x0557, 0x0565, 0x056a, 0x0570, 0x0575, 0x0586, 0x0597, - 0x059f, 0x05a8, 0x05af, 0x05c5, 0x05ce, 0x05d8, 0x05f2, 0x05fb, - // Entry C0 - FF - 0x05ff, 0x0608, 0x060e, 0x060e, 0x0616, 0x061d, 0x061d, 0x0629, - 0x062f, 0x0636, 0x0644, 0x064b, 0x0652, 0x0658, 0x0660, 0x066b, - 0x0673, 0x0673, 0x067b, 0x0685, 0x068f, 0x0696, 0x069d, 0x06a5, - 0x06a5, 0x06ba, 0x06c8, 0x06c8, 0x06ce, 0x06d7, 0x06d7, 0x06ee, - 0x06f3, 0x06f3, 0x06f7, 0x0700, 0x070c, 0x0713, 0x071f, 0x072c, - 0x0732, 0x0737, 0x073c, 0x0750, 0x0756, 0x075e, 0x0766, 0x076c, - 0x0772, 0x0772, 0x0789, 0x0791, 0x079c, 0x07aa, 0x07c3, 0x07cf, - 0x07e5, 0x07fa, 0x0802, 0x0809, 0x081a, 0x081f, 0x081f, 0x0824, - // Entry 100 - 13F - 0x082b, 0x083d, 0x0842, 0x084a, - }, - }, - { // sg - "AndôroArâbo Emirâti ÔkoFaganïta, AfganïstäanAntîgua na BarbûdaAngûîlaAlb" + - "anïiArmenïiAntîyi tî HolândeAngoläaArzantînaSamöa tî AmerîkaOtrîsiOs" + - "tralïi, SotralïiArûbaZerebaidyäan, Azerbaidyäan,Bosnïi na Herzegovîn" + - "niBarabâdaBengladêshiBêleze, BelezîkiBurkina FasoBulugarïiBahrâinaBu" + - "rundïiBenëenBeremûdaBrunêiBolivïiBrezîliBahâmasaButäanBotswanaBelarü" + - "siBelîziKanadäaKödörösêse tî Ngunuhalëzo tî kongöKödörösêse tî Bêafr" + - "îkaKongöSûîsiKôdivüäraâzûâ KûkuShilïiKamerûneShînaKolombïiKôsta Rîk" + - "aKubäaAzûâ tî Kâpo-VêreSîpriKödörösêse tî TyêkiZâmaniDibutùiiDanemêr" + - "keDömïnîkaKödörösêse tî DominîkaAlzerïiEkuatëreEstonïiKâmitâEritrëeE" + - "spânyeEtiopïiFëlândeFidyïiÂzûâ tî MälüîniMikronezïiFarânziGaböonKödö" + - "rögbïä--ÔkoGrenâdaZorzïiGüyâni tî farânziGanäaZibraltära, Zibaratära" + - "GorolândeGambïiGinëeGuadelûpuGinëe tî EkuatëreGerêsiGuatêmäläGuâmGni" + - "nëe-BisauGayânaHonduräsiKroasïiHaitïiHongirùiiÊnndonezïiIrlândeIsraë" + - "liÊnndeSêse tî Anglëe na Ngûyämä tî ÊnndeIrâkiIräanIslândeItalùiiZam" + - "aîkaZordanïiZapöonKenyäaKirigizitùaanKämbôziKiribatiKömôroSên-Krïstô" + - "fo-na-NevîsiKorëe tî BangaKorëe tî MbongoKöwêtiÂzûâ Ngundë, KaimäniK" + - "azakisitäanLùaôsiLibùaanSênt-LisïiLiechtenstein,Sirî-LankaLiberïaLes" + - "ôthoLituanïiLugzambûruLetonùiiLibïiMarôkoMonaköoMoldavùiiMadagaskär" + - "aÂzûâ MärshâlMaseduäniMalïiMyämâraMongolïiÂzûâ Märïâni tî BangaMärtï" + - "nîkiMoritanïiMonserâteMâltaMörîsiMaldîvaMalawïiMekisîkiMalezïiMözämb" + - "îkaNamibùiiFinî KaledonïiNizëreZûâ NôrfôlkoNizerïaNikaraguaHoländeN" + - "örvêziNëpâliNauruNiueFinî ZelândeOmâniPanamaPerüuPolinezïi tî farân" + - "ziPapû Finî Ginëe, PapuazïiFilipîniPakistäanPölôniSên-Pyêre na Mikel" + - "öonPitikêrniPorto RîkoSêse tî PalestîniPörtugäle, Ködörö PûraPalauP" + - "araguëeKatäraReinïonRumanïiRusïiRuandäaSaûdi ArabïiZûâ SalomöonSëysh" + - "êleSudäanSuêdeSïngäpûruSênt-HelênaSolovenïiSolovakïiSierä-LeôneSên-" + - "MarëenSenegäleSomalïiSurinämSâô Tömê na PrinsîpeSalvadöroSirïiSwäzïl" + - "ândeÂzûâ Turku na KaîkiTyâdeTogöTailândeTaazikiistäanTokelauTimôro " + - "tî TöTurkumenistäanTunizïiTongaTurukïiTrinitùee na TobagöTüvalüTâiwâ" + - "niTanzanïiUkrêniUgandäaÂLeaa-Ôko tî AmerikaUruguëeUzbekistäanLetëe t" + - "î VatikäanSên-Vensäan na âGrenadîniVenezueläaÂzôâ Viîrîggo tî Anglë" + - "eÂzûâ Virîgo tî AmerîkaVietnämVanuatüWalîsi na FutunaSamoäaYëmêniMäy" + - "ôteMbongo-AfrîkaZambïiZimbäbwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x001b, 0x0033, 0x0047, 0x0050, 0x0058, - 0x0060, 0x0074, 0x007c, 0x007c, 0x0086, 0x0099, 0x00a0, 0x00b4, - 0x00ba, 0x00ba, 0x00d7, 0x00ef, 0x00f8, 0x0104, 0x0116, 0x0122, - 0x012c, 0x0135, 0x013e, 0x0145, 0x0145, 0x014e, 0x0155, 0x015d, - 0x015d, 0x0165, 0x016e, 0x0175, 0x0175, 0x017d, 0x0186, 0x018d, - 0x0195, 0x0195, 0x01bf, 0x01dc, 0x01e2, 0x01e9, 0x01f5, 0x0202, - 0x0209, 0x0212, 0x0218, 0x0221, 0x0221, 0x022d, 0x0233, 0x0249, - 0x0249, 0x0249, 0x024f, 0x0268, 0x026f, 0x026f, 0x0278, 0x0282, - // Entry 40 - 7F - 0x028d, 0x02a9, 0x02b1, 0x02b1, 0x02ba, 0x02c2, 0x02ca, 0x02ca, - 0x02d2, 0x02da, 0x02e2, 0x02e2, 0x02eb, 0x02f2, 0x0308, 0x0313, - 0x0313, 0x031b, 0x0322, 0x0337, 0x033f, 0x0346, 0x035b, 0x035b, - 0x0361, 0x0379, 0x0383, 0x038a, 0x0390, 0x039a, 0x03ae, 0x03b5, - 0x03b5, 0x03c1, 0x03c6, 0x03d3, 0x03da, 0x03da, 0x03da, 0x03e4, - 0x03ec, 0x03f3, 0x03fd, 0x03fd, 0x0409, 0x0411, 0x0419, 0x0419, - 0x041f, 0x0449, 0x044f, 0x0455, 0x045d, 0x0465, 0x0465, 0x046d, - 0x0476, 0x047d, 0x0484, 0x0492, 0x049b, 0x04a3, 0x04ab, 0x04c5, - // Entry 80 - BF - 0x04d5, 0x04e6, 0x04ee, 0x0507, 0x0514, 0x051c, 0x0524, 0x0530, - 0x053e, 0x0549, 0x0551, 0x0559, 0x0562, 0x056d, 0x0576, 0x057c, - 0x0583, 0x058b, 0x0595, 0x0595, 0x0595, 0x05a1, 0x05b2, 0x05bc, - 0x05c2, 0x05cb, 0x05d4, 0x05d4, 0x05f0, 0x05fc, 0x0606, 0x0610, - 0x0616, 0x061e, 0x0626, 0x062e, 0x0637, 0x063f, 0x064b, 0x0654, - 0x0664, 0x066b, 0x067b, 0x0683, 0x068c, 0x0694, 0x069d, 0x06a5, - 0x06aa, 0x06ae, 0x06bc, 0x06c2, 0x06c8, 0x06ce, 0x06e5, 0x0702, - 0x070b, 0x0715, 0x071d, 0x0735, 0x073f, 0x074a, 0x075e, 0x077a, - // Entry C0 - FF - 0x077f, 0x0788, 0x078f, 0x078f, 0x0797, 0x079f, 0x079f, 0x07a5, - 0x07ad, 0x07bb, 0x07ca, 0x07d4, 0x07db, 0x07e1, 0x07ed, 0x07fa, - 0x0804, 0x0804, 0x080e, 0x081b, 0x0827, 0x0830, 0x0838, 0x0840, - 0x0840, 0x0859, 0x0863, 0x0863, 0x0869, 0x0876, 0x0876, 0x088d, - 0x0893, 0x0893, 0x0898, 0x08a1, 0x08af, 0x08b6, 0x08c5, 0x08d4, - 0x08dc, 0x08e1, 0x08e9, 0x08fe, 0x0906, 0x090f, 0x0918, 0x091f, - 0x0927, 0x0927, 0x093e, 0x0946, 0x0952, 0x0966, 0x0983, 0x098e, - 0x09ac, 0x09c8, 0x09d0, 0x09d8, 0x09e9, 0x09f0, 0x09f0, 0x09f8, - // Entry 100 - 13F - 0x0a00, 0x0a0e, 0x0a15, 0x0a1e, - }, - }, - { // shi - "â´°âµâ´·âµ“ⵔⴰâµâµ‰âµŽâ´°âµ”ⴰⵜⴰⴼⵖⴰâµâµ‰âµ™âµœâ´°âµâ´°âµâµœâµ‰â´³â´° â´· ⴱⵔⴱⵓⴷⴰⴰâµâ´³âµ‰âµâ´°â´°âµâ´±â´°âµâµ¢â´°â´°âµ”ⵎⵉâµâµ¢â´°â´°âµâµœâµ‰âµ¢ ⵠⵀⵓâµâ´°âµâ´·" + - "â´°â´°âµâ´³âµ“âµâ´°â´°âµ”ⵊⴰâµâµœâµ‰âµâµ™â´°âµŽâµ¡â´° ⵜⴰⵎⵉⵔⵉⴽⴰâµâµ‰âµœâµâµâµŽâµ™â´°âµ“ⵙⵜⵔⴰâµâµ¢â´°â´°âµ”ⵓⴱⴰⴰⴷⵔⴰⴱⵉⵊⴰâµâ´±âµ“âµ™âµâ´° â´·" + - " ⵀⵉⵔⵙⵉⴽⴱⴰⵔⴱⴰⴷⴱⴰâµâ´³âµâ´°â´·âµ‰âµ›â´±âµâµŠâµ‰â´½â´°â´±âµ“ⵔⴽⵉâµâ´° ⴼⴰⵙⵓⴱâµâµ–ⴰⵔⵢⴰⴱⵃⵔⴰⵢâµâ´±âµ“ⵔⵓâµâ´·âµ‰â´±âµ‰âµâµ‰âµâ´±âµ”ⵎ" + - "ⵓⴷⴰⴱⵔⵓâµâµ‰â´±âµ“âµâµ‰â´¼âµ¢â´°â´±âµ”ⴰⵣⵉâµâ´±â´°âµ€â´°âµŽâ´°âµ™â´±âµ€âµ“ⵜⴰâµâ´±âµ“ⵜⵙⵡⴰâµâ´°â´±âµ‰âµâ´°âµ”ⵓⵙⵢⴰⴱⵉâµâµ‰âµ£â´½â´°âµâ´°â´·â´°âµœâ´°â´³â´·" + - "ⵓⴷⴰâµâµœ ⵜⴰⴷⵉⵎⵓⵇⵔⴰⵜⵉⵜ ⵠⴽⵓâµâ´³âµ“ⵜⴰⴳⴷⵓⴷⴰâµâµœ ⵜⴰâµâ´°âµŽâµŽâ´°âµ™âµœ ⵠⵉⴼⵔⵉⵇⵢⴰⴽⵓâµâ´³âµ“ⵙⵡⵉⵙⵔⴰ" + - "ⴽⵓⵜ ⴷⵉⴼⵡⴰⵔⵜⵉⴳⵣⵉⵔⵉⵠⵠⴽⵓⴽⵛⵛⵉâµâµ‰â´½â´°âµŽâµ‰âµ”ⵓâµâµ›âµ›âµ‰âµâµ¡â´°â´½âµ“âµâµ“ⵎⴱⵢⴰⴽⵓⵙⵜⴰ ⵔⵉⴽⴰⴽⵓⴱⴰⵜⵉ" + - "ⴳⵣⵉⵔⵉⵠⵠⴽⴰⴱⴱⵉⵔⴷⵉⵇⵓⴱⵔⵓⵙⵜⴰⴳⴷⵓⴷⴰâµâµœ ⵜⴰⵜⵛⵉⴽⵉⵜⴰâµâµŽâ´°âµâµ¢â´°â´·âµŠâµ‰â´±âµ“ⵜⵉⴷⴰâµâµŽâ´°âµ”ⴽⴷⵓⵎⵉ" + - "âµâµ‰â´½âµœâ´°â´³â´·âµ“â´·â´°âµâµœ ⵜⴰⴷⵓⵎⵉâµâµ‰â´½âµœâ´·âµ£â´°âµ¢âµ”ⵉⴽⵡⴰⴷⵓⵔⵉⵙⵜⵓâµâµ¢â´°âµŽâµ‰âµšâµ•âµ‰âµ”ⵉⵜⵉⵔⵢⴰⵙⴱⴰâµâµ¢â´°âµ‰âµœâµ¢âµ“ⴱⵢ" + - "ⴰⴼⵉâµâµâ´°âµâ´·â´°â´¼âµ‰â´·âµŠâµ‰âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵠⵎⴰâµâ´°âµ¡âµ‰âµŽâµ‰â´½âµ”ⵓâµâµ‰âµ£âµ¢â´°â´¼âµ”â´°âµâµ™â´°â´³â´°â´±âµ“âµâµœâ´°â´³âµâ´·âµ‰âµœ ⵉⵎⵓâµâµâµ–" + - "âµ”âµâ´°âµŸâ´°âµŠâµ“ⵔⵊⵢⴰⴳⵡⵉⵢⴰⵠⵜⴰⴼⵔⴰâµâµ™âµ‰âµ™âµœâµ–â´°âµâ´°â´°â´·âµ”â´°âµ” ⵠⵟⴰⵕⵉⵇⴳⵔⵉâµâ´°âµâ´·â´³â´°âµŽâ´±âµ¢â´°âµ–ⵉâµâµ¢â´°â´³âµ¡â´°" + - "â´·â´°âµâµ“ⴱⵖⵉâµâµ¢â´° ⵠⵉⴽⵡⴰⴷⵓⵔâµâµ¢âµ“âµâ´°âµâ´³âµ¡â´°âµœâµ‰âµŽâ´°âµâ´°â´³âµ¡â´°âµŽâµ–ⵉâµâµ¢â´° ⴱⵉⵙⴰⵡⴳⵡⵉⵢⴰâµâ´°âµ€âµ“âµâ´·âµ“ⵔⴰⵙⴽ" + - "ⵔⵡⴰⵜⵢⴰⵀⴰⵢⵜⵉⵀâµâµ–ⴰⵔⵢⴰⴰâµâ´·âµ“âµâµ‰âµ™âµ¢â´°âµ‰âµ”âµâ´°âµâ´·â´°âµ‰âµ™âµ”ⴰⵢⵉâµâµâµ€âµ‰âµâ´·âµœâ´°âµŽâµâ´°â´¹âµœ ⵜⴰâµâ´³âµâµ‰âµ£âµ‰âµœ âµ " + - "ⵓⴳⴰⵔⵓ ⴰⵀⵉâµâ´·âµ‰âµâµ„ⵉⵔⴰⵇⵉⵔⴰâµâµ‰âµ™âµâ´°âµâ´·âµ‰âµŸâ´°âµâµ¢â´°âµŠâ´°âµŽâ´°âµ¢â´½â´°âµâµ“ⵔⴷⵓâµâµâµ¢â´°â´±â´°âµâ´½âµ‰âµâµ¢â´°â´½âµ‰âµ”ⵖⵉⵣⵉⵙ" + - "ⵜⴰâµâ´½â´°âµŽâ´±âµ“ⴷⵢⴰⴽⵉⵔⵉⴱⴰⵜⵉⵇⵓⵎⵓⵔⵙⴰâµâ´½âµ”ⵉⵙ â´· âµâµ‰â´¼âµ‰âµ™â´½âµ“ⵔⵢⴰ ⵠⵉⵥⵥâµâµŽâ´¹â´½âµ“ⵔⵢⴰ ⵠⵉⴼⴼⵓⵙ" + - "âµâ´½âµ¡âµ‰âµœâµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵠⴽⴰⵢⵎⴰâµâ´½â´°âµ£â´°âµ…ⵙⵜⴰâµâµâ´°âµ¡âµ™âµâµ“â´±âµâ´°âµâµ™â´°âµâµœâµâµ“ⵙⵉâµâµ‰â´½âµ‰âµâµ›âµœâ´°âµ¢âµâµ™âµ”ⵉâµâ´°âµâ´½" + - "â´°âµâµ‰â´±âµ‰âµ”ⵢⴰâµâµ‰âµšâµ“ⵟⵓâµâµ‰âµœâµ¡â´°âµâµ¢â´°âµâµ“ⴽⵙⴰâµâ´±âµ“ⵔⴳâµâ´°âµœâ´¼âµ¢â´°âµâµ‰â´±âµ¢â´°âµâµŽâµ–ⵔⵉⴱⵎⵓâµâ´°â´½âµ“ⵎⵓâµâ´·âµ“ⴼⵢⴰⵎⴰⴷ" + - "ⴰⵖⴰⵛⵇⴰⵔⵜⵉⴳⵣⵉⵔⵉⵠⵠⵎⴰⵔⵛⴰâµâµŽâ´°âµ™âµ‰â´·âµ“âµâµ¢â´°âµŽâ´°âµâµ‰âµŽâµ¢â´°âµâµŽâ´°âµ”ⵎâµâµ–ⵓâµâµ¢â´°âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵠⵎⴰⵔⵢ" + - "ⴰⵠⵠⵉⵥⵥâµâµŽâ´¹âµŽâ´°âµ”ⵜⵉâµâµ‰â´½âµŽâµ“ⵕⵉⵟⴰâµâµ¢â´°âµŽâµ“âµâµ™âµ‰âµ”ⴰⵜⵎⴰâµâµŸâ´°âµŽâµ“ⵔⵉⵙⵎⴰâµâ´·âµ‰â´¼âµŽâ´°âµâ´°âµ¡âµ‰âµŽâµ‰â´½âµ™âµ‰â´½âµŽâ´°" + - "âµâµ‰âµ£âµ¢â´°âµŽâµ“âµ£âµâ´±âµ‰âµ‡âµâ´°âµŽâµ‰â´±âµ¢â´°â´½â´°âµâµ‰â´·âµ“âµâµ¢â´° ⵜⴰⵎⴰⵢâµâµ“ⵜâµâµâµ‰âµŠâµ‰âµ”ⵜⵉⴳⵣⵉⵔⵉⵠⵠâµâµ“ⵔⴼⵓâµâ´½âµâµ‰âµŠâµ‰âµ”" + - "ⵢⴰâµâµ‰â´½â´°âµ”ⴰⴳⵡⴰⵀⵓâµâ´°âµâ´·â´°âµâµâµ”ⵡⵉⵊâµâµ‰â´±â´°âµâµâ´°âµ¡âµ”ⵓâµâµ‰âµ¡âµ‰âµâµ¢âµ“ⵣⵉâµâ´°âµâ´·â´°âµ„ⵓⵎⴰâµâ´±â´°âµâ´°âµŽâ´°â´±âµ‰âµ”ⵓⴱⵓâµ" + - "ⵉâµâµ‰âµ£âµ¢â´° ⵜⴰⴼⵔⴰâµâµ™âµ‰âµ™âµœâ´±â´°â´±âµ¡â´° ⵖⵉâµâµ¢â´° ⵜⴰⵎⴰⵢâµâµ“ⵜⴼⵉâµâµ‰â´±â´±âµ‰âµâ´±â´°â´½âµ‰âµ™âµœâ´°âµâ´±âµ“âµâµ“âµâµ¢â´°âµ™â´°âµâ´±âµ¢âµ‰" + - "âµ” â´· ⵎⵉⴽâµâµ“âµâ´±âµ‰âµœâ´½â´°âµ¢âµ”âµâ´±âµ“ⵔⵜⵓ ⵔⵉⴽⵓⴰⴳⵎⵎⴰⴹ ⵠⵜⴰⴳⵓⵜ â´· ⵖⵣⵣⴰⴱⵕⵟⵇⵉⵣⴱⴰâµâ´°âµ¡â´±â´°âµ”ⴰⴳⵡ" + - "ⴰⵢⵇⴰⵜⴰⵔⵔⵉⵢⵓâµâµ¢âµ“âµâµ”ⵓⵎⴰâµâµ¢â´°âµ”ⵓⵙⵢⴰⵔⵡⴰâµâ´·â´°âµ™âµ™â´°âµ„ⵓⴷⵉⵢⴰⵜⵉⴳⵣⵉⵔⵉⵠⵠⵙⴰâµâµ“ⵎⴰâµâµ™âµ™âµ‰âµ›âµ‰âµ" + - "ⵙⵙⵓⴷⴰâµâµ™âµ™âµ¡âµ‰â´·âµ™âµâµ–ⴰⴼⵓⵔⴰⵙⴰâµâµœâµ‰âµâµ‰âµâµ™âµâµ“ⴼⵉâµâµ¢â´°âµ™âµâµ“ⴼⴰⴽⵢⴰⵙⵙⵉⵔⴰâµâµ¢âµ“âµâµ™â´°âµâµŽâ´°âµ”ⵉâµâµ“ⵙⵙⵉâµâµ‰" + - "ⴳⴰâµâµšâµšâµ“ⵎⴰâµâµ™âµ“ⵔⵉâµâ´°âµŽâµ™â´°âµ¡âµŸâµ“ⵎⵉ â´· ⴱⵔⴰâµâµ™âµ‰â´±âµ™â´°âµâ´¼â´°â´·âµ“ⵔⵙⵓⵔⵢⴰⵙⵡⴰⵣⵉâµâ´°âµâ´·â´°âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠâµ" + - " ⵜⵓⵔⴽⵢⴰ â´· ⴽⴰⵢⴽⵜⵛⴰⴷⵟⵓⴳⵓⵟⴰⵢâµâ´°âµâ´·âµœâ´°â´·âµŠâ´°â´½âµ‰âµ™âµœâ´°âµâµŸâµ“â´½âµâ´°âµ¡âµœâµ‰âµŽâµ“âµ” âµ âµâµ‡â´±âµâµœâµœâµ“ⵔⴽⵎⴰâµâµ™âµœ" + - "â´°âµâµœâµ“âµâµ™âµŸâµ“âµâ´³â´°âµœâµ“ⵔⴽⵢⴰⵜⵔⵉâµâµ‰â´·â´°â´· â´· ⵟⵓⴱⴰⴳⵓⵜⵓⴼⴰâµâµ“ⵟⴰⵢⵡⴰâµâµŸâ´°âµâµ¥â´°âµâµ¢â´°âµ“ⴽⵔⴰâµâµ¢â´°âµ“âµ–â´°âµâ´·" + - "ⴰⵉⵡⵓâµâ´°â´½ ⵎⵓâµâµâµ‰âµ ⵠⵎⵉⵔⵉⴽⴰâµâµ“ⵔⵓⴳⵡⴰⵢⵓⵣⴱⴰⴽⵉⵙⵜⴰâµâ´°âµ¡â´°âµâ´½ ⵠⴼⴰⵜⵉⴽⴰâµâµ™â´°âµâ´¼â´°âµâµ™â´°âµ " + - "â´· ⴳⵔⵉâµâ´°â´·âµ‰âµâ´¼âµ‰âµâµ£âµ¡âµ‰âµâ´°âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵜⵉⵎⴳⴰⴷ âµ âµâµâ´³âµâµ‰âµ£âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵜⵉⵎⴳⴰⴷ ⵠⵉⵡⵓâµâ´°â´½" + - " ⵎⵓâµâµâµ‰âµâ´¼âµ‰âµœâµâ´°âµŽâ´¼â´°âµâµ¡â´°âµŸâµ“ⵡⴰâµâµ‰âµ™ â´· ⴼⵓⵜⵓâµâ´°âµ™â´°âµŽâµ¡â´°âµ¢â´°âµŽâ´°âµâµŽâ´°âµ¢âµ“ⵟⴰⴼⵔⵉⵇⵢⴰ ⵠⵉⴼⴼⵓⵙⵣⴰⵎⴱ" + - "ⵢⴰⵣⵉⵎⴱⴰⴱⵡⵉ", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0012, 0x0027, 0x0045, 0x006e, 0x0080, 0x0095, - 0x00aa, 0x00d3, 0x00e5, 0x00e5, 0x00fd, 0x012e, 0x013d, 0x0155, - 0x0164, 0x0164, 0x017f, 0x01a5, 0x01b7, 0x01d2, 0x01e4, 0x0206, - 0x021b, 0x022d, 0x0242, 0x0251, 0x0251, 0x0263, 0x0272, 0x0287, - 0x0287, 0x0299, 0x02ae, 0x02c0, 0x02c0, 0x02d8, 0x02f3, 0x0302, - 0x0314, 0x0314, 0x0368, 0x03b9, 0x03c8, 0x03da, 0x03f6, 0x041c, - 0x042b, 0x0440, 0x0452, 0x046a, 0x046a, 0x0486, 0x0492, 0x04c7, - 0x04c7, 0x04c7, 0x04d9, 0x050d, 0x0522, 0x0522, 0x0537, 0x054c, - // Entry 40 - 7F - 0x0561, 0x059b, 0x05aa, 0x05aa, 0x05bf, 0x05d4, 0x05e0, 0x05e0, - 0x05f8, 0x060a, 0x061f, 0x061f, 0x0637, 0x0646, 0x0675, 0x0693, - 0x0693, 0x06a5, 0x06b4, 0x06d9, 0x06eb, 0x06fd, 0x072e, 0x072e, - 0x073a, 0x075d, 0x0772, 0x0784, 0x0793, 0x07ab, 0x07d4, 0x07e6, - 0x07e6, 0x0801, 0x080d, 0x082c, 0x0841, 0x0841, 0x0841, 0x0859, - 0x086e, 0x087d, 0x0892, 0x0892, 0x08ad, 0x08c2, 0x08d7, 0x08d7, - 0x08e6, 0x093e, 0x0950, 0x095c, 0x096e, 0x0980, 0x0980, 0x0995, - 0x09a7, 0x09b9, 0x09c8, 0x09e9, 0x0a01, 0x0a19, 0x0a28, 0x0a51, - // Entry 80 - BF - 0x0a77, 0x0a9a, 0x0aa9, 0x0ad8, 0x0af3, 0x0aff, 0x0b11, 0x0b29, - 0x0b47, 0x0b5f, 0x0b74, 0x0b86, 0x0b9e, 0x0bbc, 0x0bce, 0x0bdd, - 0x0bef, 0x0c01, 0x0c19, 0x0c19, 0x0c19, 0x0c37, 0x0c66, 0x0c81, - 0x0c8d, 0x0ca2, 0x0cb7, 0x0cb7, 0x0cfd, 0x0d15, 0x0d30, 0x0d48, - 0x0d57, 0x0d66, 0x0d78, 0x0d8a, 0x0d9c, 0x0db1, 0x0dc6, 0x0ddb, - 0x0e0f, 0x0e21, 0x0e53, 0x0e68, 0x0e83, 0x0e98, 0x0eaa, 0x0eb9, - 0x0ec8, 0x0ed4, 0x0ef2, 0x0f01, 0x0f13, 0x0f1f, 0x0f59, 0x0f91, - 0x0fa9, 0x0fc1, 0x0fd6, 0x1002, 0x101a, 0x1036, 0x106d, 0x107f, - // Entry C0 - FF - 0x108e, 0x10a6, 0x10b5, 0x10b5, 0x10cd, 0x10e2, 0x10e2, 0x10f1, - 0x1103, 0x111e, 0x1150, 0x1162, 0x1174, 0x1183, 0x119b, 0x11b3, - 0x11cb, 0x11cb, 0x11e3, 0x11fe, 0x1219, 0x1231, 0x1243, 0x1258, - 0x1258, 0x1287, 0x129f, 0x129f, 0x12ae, 0x12cc, 0x12cc, 0x130c, - 0x1318, 0x1318, 0x1324, 0x1339, 0x135a, 0x136c, 0x138f, 0x13b0, - 0x13bc, 0x13cb, 0x13dd, 0x140c, 0x141e, 0x1430, 0x1448, 0x145d, - 0x146f, 0x146f, 0x14ae, 0x14c3, 0x14e1, 0x150a, 0x1542, 0x155a, - 0x159c, 0x15f1, 0x1603, 0x1618, 0x163e, 0x164d, 0x164d, 0x165c, - // Entry 100 - 13F - 0x166b, 0x1694, 0x16a6, 0x16be, - }, - }, - { // shi-Latn - "anduralimaratafÉ£anistanantiga d brbudaangilaalbanyaarminyaantiy n huland" + - "aangulaarjantinsamwa tamirikanitnnmsaustralyaarubaadrabijanbusna d h" + - "irsikbarbadbangladicbljikaburkina fasublÉ£arabḥraynburundibininbrmuda" + - "brunibulibyabrazilbahamasbhutanbutswanabilarusyabilizkanadatagdudant" + - " tadimukratit n Kongotagdudant tanammast n ifriqyakunguswisrakut dif" + - "wartigzirin n kukccilikamirunccinwaculumbyakusta rikakubatigzirin n " + - "kabbirdiqubrustagdudant tatcikitalmanyadjibutidanmarkduminiktagdudan" + - "t taduminiktdzayrikwaduristunyamiṣṛiritiryasbanyaityubyafillandafidj" + - "itigzirin n malawimikrunizyafransagabuntagldit imunnÉ£rnaá¹­ajurjyagwiy" + - "an tafransistÉ£anaadrar n á¹­aá¹›iqgrilandgambyaÉ£inyagwadalubÉ£inya n ikwa" + - "durlyunangwatimalagwamÉ£inya bisawgwiyanahunduraskrwatyahaytihnÉ£aryaa" + - "ndunisyairlandaisrayillhindtamnaá¸t tanglizit n ugaru ahindilÉ›iraqira" + - "nislandiá¹­alyajamaykalurdunlyabankinyakirÉ£izistankambudyakiribaticumu" + - "rsankris d nifiskurya n iẓẓlmá¸kurya n iffuslkwittigzirin n kaymankaz" + - "axstanlawslubnansantlusilikinctaynsrilankalibiryaliá¹£uá¹­ulitwanyaluksa" + - "nburglatfyalibyalmÉ£ribmunakumuldufyamadaÉ£acqartigzirin n marcalmasid" + - "unyamalimyanmarmnÉ£ulyatigzirin n maryan n iẓẓlmá¸martinikmuá¹›iá¹­anyamun" + - "siratmalá¹­amurismaldifmalawimiksikmalizyamuznbiqnamibyakalidunya tama" + - "ynutnnijirtigzirin n nurfulknijiryanikaragwahulandannrwijnibalnawrun" + - "iwinyuzilandaÉ›umanbanamabirubulinizya tafransistbabwa É£inya tamaynut" + - "filibbinbakistanbulunyasanbyir d miklunbitkayrnburtu rikuagmmaḠn ta" + - "gut d É£zzabṛṭqizbalawbaragwayqatarriyunyunrumanyarusyarwandassaÉ›udiy" + - "atigzirin n salumanssicilssudansswidsnÉ£afurasantilinslufinyaslufakya" + - "ssiralyunsanmarinussinigalṣṣumalsurinamsawá¹­umi d bransibsalfadursury" + - "aswazilandatigzirin n turkya d kayktcadá¹­uguá¹­aylandtadjakistaná¹­uklawt" + - "imur n lqbltturkmanstantunsá¹­ungaturkyatrinidad d á¹­ubagutufaluá¹­aywaná¹­" + - "anẓanyaukranyauÉ£andaiwunak munnin n mirikanurugwayuzbakistanawank n " + - "fatikansanfansan d grinadinfinzwilatigzirin timgad n nngliztigzirin " + - "timgad n iwunak munninfitnamfanwaá¹­uwalis d futunasamwayamanmayuá¹­afri" + - "qya n iffuszambyazimbabwi", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x000d, 0x0018, 0x0027, 0x002d, 0x0034, - 0x003b, 0x004a, 0x0050, 0x0050, 0x0058, 0x0069, 0x006e, 0x0076, - 0x007b, 0x007b, 0x0084, 0x0092, 0x0098, 0x00a1, 0x00a7, 0x00b3, - 0x00ba, 0x00c2, 0x00c9, 0x00ce, 0x00ce, 0x00d4, 0x00d9, 0x00e0, - 0x00e0, 0x00e6, 0x00ed, 0x00f3, 0x00f3, 0x00fb, 0x0104, 0x0109, - 0x010f, 0x010f, 0x012d, 0x014a, 0x014f, 0x0155, 0x015f, 0x016d, - 0x0172, 0x0179, 0x017f, 0x0187, 0x0187, 0x0191, 0x0195, 0x01a8, - 0x01a8, 0x01a8, 0x01ae, 0x01c0, 0x01c7, 0x01c7, 0x01ce, 0x01d5, - // Entry 40 - 7F - 0x01dc, 0x01f0, 0x01f5, 0x01f5, 0x01fc, 0x0203, 0x020b, 0x020b, - 0x0213, 0x0219, 0x0220, 0x0220, 0x0228, 0x022d, 0x023e, 0x0248, - 0x0248, 0x024e, 0x0253, 0x0260, 0x0269, 0x026f, 0x0280, 0x0280, - 0x0285, 0x0296, 0x029d, 0x02a3, 0x02a9, 0x02b1, 0x02c1, 0x02c7, - 0x02c7, 0x02d0, 0x02d4, 0x02e0, 0x02e7, 0x02e7, 0x02e7, 0x02ef, - 0x02f6, 0x02fb, 0x0303, 0x0303, 0x030c, 0x0313, 0x031a, 0x031a, - 0x031f, 0x0341, 0x0348, 0x034c, 0x0352, 0x035a, 0x035a, 0x0361, - 0x0367, 0x036d, 0x0372, 0x037e, 0x0386, 0x038e, 0x0393, 0x03a2, - // Entry 80 - BF - 0x03b6, 0x03c3, 0x03c8, 0x03d9, 0x03e2, 0x03e6, 0x03ec, 0x03f4, - 0x03fe, 0x0406, 0x040d, 0x0417, 0x041f, 0x0429, 0x042f, 0x0434, - 0x043b, 0x0441, 0x0449, 0x0449, 0x0449, 0x0454, 0x0465, 0x046e, - 0x0472, 0x0479, 0x0481, 0x0481, 0x04a1, 0x04a9, 0x04b6, 0x04be, - 0x04c5, 0x04ca, 0x04d0, 0x04d6, 0x04dc, 0x04e3, 0x04ea, 0x04f1, - 0x0503, 0x0509, 0x051b, 0x0522, 0x052b, 0x0532, 0x0538, 0x053d, - 0x0542, 0x0546, 0x0550, 0x0556, 0x055c, 0x0560, 0x0574, 0x0589, - 0x0591, 0x0599, 0x05a0, 0x05b0, 0x05b8, 0x05c2, 0x05da, 0x05e4, - // Entry C0 - FF - 0x05e9, 0x05f1, 0x05f6, 0x05f6, 0x05fe, 0x0605, 0x0605, 0x060a, - 0x0610, 0x061a, 0x062c, 0x0632, 0x0638, 0x063d, 0x0646, 0x064e, - 0x0656, 0x0656, 0x065e, 0x0667, 0x0670, 0x0678, 0x0682, 0x0689, - 0x0689, 0x069c, 0x06a4, 0x06a4, 0x06a9, 0x06b3, 0x06b3, 0x06cb, - 0x06cf, 0x06cf, 0x06d5, 0x06de, 0x06e9, 0x06f1, 0x06fe, 0x0709, - 0x070d, 0x0714, 0x071a, 0x072d, 0x0733, 0x073b, 0x0747, 0x074e, - 0x0755, 0x0755, 0x076c, 0x0773, 0x077d, 0x078c, 0x07a0, 0x07a8, - 0x07c0, 0x07df, 0x07e5, 0x07ee, 0x07fc, 0x0801, 0x0801, 0x0806, - // Entry 100 - 13F - 0x080d, 0x081c, 0x0822, 0x082a, - }, - }, - { // si - siRegionStr, - siRegionIdx, - }, - { // sk - skRegionStr, - skRegionIdx, - }, - { // sl - slRegionStr, - slRegionIdx, - }, - {}, // smn - { // sn - "AndoraUnited Arab EmiratesAfuganistaniAntigua ne BarbudaAnguilaAlbaniaAr" + - "meniaNetherlands AntillesAngolaAjentinaSamoa ye AmerikaAustriaAustra" + - "liaArubhaAzabajaniBoznia ne HerzegovinaBarbadosBangladeshiBeljiumBuk" + - "inafasoBulgariaBahareniBurundiBeniniBermudaBuruneiBoliviaBrazilBaham" + - "aBhutaniBotswanaBelarusiBelizeKanadaDemocratic Republic of the Congo" + - "Central African RepublicKongoSwitzerlandIvory CoastZvitsuwa zveCookC" + - "hileKameruniChinaKolombiaKostarikaCubaZvitsuwa zveCape VerdeCyprusCz" + - "ech RepublicGermanyDjiboutiDenmarkDominicaDominican RepublicAljeriaE" + - "cuadorEstoniaEgyptEritreaSpainEtiopiaFinlandFijiZvitsuwa zveFalkland" + - "sMicronesiaFranceGabonUnited KingdomGrenadaGeorgiaFrench GuianaGhana" + - "GibraltarGreenlandGambiaGuineaGuadeloupeEquatorial GuineaGreeceGuate" + - "malaGuamGuinea-BissauGuyanaHondurasKorasiaHaitiHungaryIndonesiaIrela" + - "ndIzuraeriIndiaBritish Indian Ocean TerritoryIraqIranIcelandItalyJam" + - "aicaJordanJapanKenyaKyrgyzstanKambodiaKiribatiKomoroSaint Kitts and " + - "NevisKorea, NorthKorea, SouthKuwaitZvitsuwa zveCaymanKazakhstanLaosL" + - "ebanonSaint LuciaLiechtensteinSri LankaLiberiaLesothoLithuaniaLuxemb" + - "ourgLatviaLibyaMoroccoMonacoMoldovaMadagascarZvitsuwa zveMarshallMac" + - "edoniaMaliMyanmarMongoliaZvitsuwa zvekumaodzanyemba eMarianaMartiniq" + - "ueMauritaniaMontserratMaltaMauritiusMaldivesMalawiMexicoMalaysiaMoza" + - "mbiqueNamibiaNew CaledoniaNigerChitsuwa cheNorfolkNigeriaNicaraguaNe" + - "therlandsNorwayNepalNauruNiueNew ZealandOmanPanamaPeruFrench Polynes" + - "iaPapua New GuineaPhilippinesPakistanPolandSaint Pierre and Miquelon" + - "PitcairnPuerto RicoPortugalPalauParaguayQatarRéunionRomaniaRussiaRwa" + - "ndaSaudi ArabiaZvitsuwa zvaSolomonSeychellesSudanSwedenSingaporeSain" + - "t HelenaSloveniaSlovakiaSierra LeoneSan MarinoSenegalSomaliaSuriname" + - "São Tomé and PríncipeEl SalvadorSyriaSwazilandZvitsuwa zveTurk neCai" + - "coChadiTogoThailandTajikistanTokelauEast TimorTurkmenistanTunisiaTon" + - "gaTurkeyTrinidad and TobagoTuvaluTaiwanTanzaniaUkraineUgandaAmerikaU" + - "ruguayUzbekistanVatican StateSaint Vincent and the GrenadinesVenezue" + - "laZvitsuwa zveHingirandiZvitsuwa zveAmerikaVietnamVanuatuWallis and " + - "FutunaSamoaYemenMayotteSouth AfricaZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x001a, 0x0026, 0x0038, 0x003f, 0x0046, - 0x004d, 0x0061, 0x0067, 0x0067, 0x006f, 0x007f, 0x0086, 0x008f, - 0x0095, 0x0095, 0x009e, 0x00b3, 0x00bb, 0x00c6, 0x00cd, 0x00d7, - 0x00df, 0x00e7, 0x00ee, 0x00f4, 0x00f4, 0x00fb, 0x0102, 0x0109, - 0x0109, 0x010f, 0x0115, 0x011c, 0x011c, 0x0124, 0x012c, 0x0132, - 0x0138, 0x0138, 0x0158, 0x0170, 0x0175, 0x0180, 0x018b, 0x019b, - 0x01a0, 0x01a8, 0x01ad, 0x01b5, 0x01b5, 0x01be, 0x01c2, 0x01d8, - 0x01d8, 0x01d8, 0x01de, 0x01ec, 0x01f3, 0x01f3, 0x01fb, 0x0202, - // Entry 40 - 7F - 0x020a, 0x021c, 0x0223, 0x0223, 0x022a, 0x0231, 0x0236, 0x0236, - 0x023d, 0x0242, 0x0249, 0x0249, 0x0250, 0x0254, 0x0269, 0x0273, - 0x0273, 0x0279, 0x027e, 0x028c, 0x0293, 0x029a, 0x02a7, 0x02a7, - 0x02ac, 0x02b5, 0x02be, 0x02c4, 0x02ca, 0x02d4, 0x02e5, 0x02eb, - 0x02eb, 0x02f4, 0x02f8, 0x0305, 0x030b, 0x030b, 0x030b, 0x0313, - 0x031a, 0x031f, 0x0326, 0x0326, 0x032f, 0x0336, 0x033e, 0x033e, - 0x0343, 0x0361, 0x0365, 0x0369, 0x0370, 0x0375, 0x0375, 0x037c, - 0x0382, 0x0387, 0x038c, 0x0396, 0x039e, 0x03a6, 0x03ac, 0x03c1, - // Entry 80 - BF - 0x03cd, 0x03d9, 0x03df, 0x03f1, 0x03fb, 0x03ff, 0x0406, 0x0411, - 0x041e, 0x0427, 0x042e, 0x0435, 0x043e, 0x0448, 0x044e, 0x0453, - 0x045a, 0x0460, 0x0467, 0x0467, 0x0467, 0x0471, 0x0485, 0x048e, - 0x0492, 0x0499, 0x04a1, 0x04a1, 0x04c4, 0x04ce, 0x04d8, 0x04e2, - 0x04e7, 0x04f0, 0x04f8, 0x04fe, 0x0504, 0x050c, 0x0516, 0x051d, - 0x052a, 0x052f, 0x0542, 0x0549, 0x0552, 0x055d, 0x0563, 0x0568, - 0x056d, 0x0571, 0x057c, 0x0580, 0x0586, 0x058a, 0x059a, 0x05aa, - 0x05b5, 0x05bd, 0x05c3, 0x05dc, 0x05e4, 0x05ef, 0x05ef, 0x05f7, - // Entry C0 - FF - 0x05fc, 0x0604, 0x0609, 0x0609, 0x0611, 0x0618, 0x0618, 0x061e, - 0x0624, 0x0630, 0x0643, 0x064d, 0x0652, 0x0658, 0x0661, 0x066d, - 0x0675, 0x0675, 0x067d, 0x0689, 0x0693, 0x069a, 0x06a1, 0x06a9, - 0x06a9, 0x06c1, 0x06cc, 0x06cc, 0x06d1, 0x06da, 0x06da, 0x06f2, - 0x06f7, 0x06f7, 0x06fb, 0x0703, 0x070d, 0x0714, 0x071e, 0x072a, - 0x0731, 0x0736, 0x073c, 0x074f, 0x0755, 0x075b, 0x0763, 0x076a, - 0x0770, 0x0770, 0x0777, 0x077e, 0x0788, 0x0795, 0x07b5, 0x07be, - 0x07d4, 0x07e7, 0x07ee, 0x07f5, 0x0806, 0x080b, 0x080b, 0x0810, - // Entry 100 - 13F - 0x0817, 0x0823, 0x0829, 0x0831, - }, - }, - { // so - "AndoraImaaraadka Carabta ee MidoobayAfgaanistaanAntigua iyo BarbudaAngui" + - "llaAlbaaniyaArmeeniyaNetherlands AntillesAngoolaArjantiinSamowa Amee" + - "rikaAwsteriyaAwstaraaliyaArubaAzerbajaanBosniya HersigoviinaBaarbado" + - "osBangaaladheeshBiljamBurkiina FaasoBulgaariyaBaxreynBurundiBiniinBe" + - "rmuudaBuruneeyaBoliifiyaBraasiilBahaamasBhutanBotuswaanaBelarusBeliz" + - "eKanadaJamhuuriyadda Dimuquraadiga KongoJamhuuriyadda Afrikada Dhexe" + - "KongoSwiiserlaandIvory coastJaziiradda CookJiliKaameruunShiinahaKolo" + - "mbiyaKosta RiikaKuubaCape Verde IslandsQubrusJamhuuriyadda JekJarmal" + - "JabuutiDenmarkDomeenikaJamhuuriyadda DomeenikaAljeeriyaIkuwadoorEsto" + - "oniyaMasarEretereeyaIsbeynItoobiyaFinlandFijiJaziiradaha FooklaanMic" + - "ronesiaFaransiisGaaboonUnited KingdomGiriinaadaJoorjiyaFrench Guiana" + - "GaanaGibraltarGreenlandGambiyaGiniGuadeloupeEquatorial GuineaGiriigG" + - "uwaatamaalaGuamGini-BisaawGuyanaHondurasKorweeshiyaHaytiHangeriIndon" + - "eesiyaAyrlaandIsraaʼiilHindiyaBritish Indian Ocean TerritoryCiraaqIi" + - "raanIislaandTalyaaniJameykaUrdunJabaanKiiniyaKirgistaanKamboodiyaKir" + - "ibatiKomoorosSaint Kitts and NevisKuuriyada WaqooyiKuuriyada Koonfur" + - "eedKuwaytCayman IslandsKasaakhistaanLaosLubnaanSaint LuciaLiechtenst" + - "einSirilaankaLaybeeriyaLosootoLituweeniyaLuksemboorgLatfiyaLiibiyaMa" + - "rookoMoonakoMoldofaMadagaskarMarshall IslandsMakadooniyaMaaliMyanmar" + - "MongooliyaNorthern Mariana IslandsMartiniqueMuritaaniyaMontserratMaa" + - "ldaMurishiyoosMaaldiqeenMalaawiMeksikoMalaysiaMusambiigNamiibiyaNew " + - "CaledoniaNayjerNorfolk IslandNayjeeriyaNikaraaguwaNetherlandsNoorwee" + - "yNebaalNauruNiueNeyuusilaandCumaanPanamaPeruFrench PolynesiaPapua Ne" + - "w GuineaFilibiinBakistaanBoolandSaint Pierre and MiquelonPitcairnPue" + - "rto RicoFalastiin Daanka galbeed iyo QasaBortuqaalPalauParaguayQadar" + - "RéunionRumaaniyaRuushRuwandaSacuudi CarabiyaSolomon IslandsSishelisS" + - "uudaanIswidhanSingaboorSaint HelenaSloveniaSlovakiaSiraaliyoonSan Ma" + - "rinoSinigaalSoomaaliyaSurinameSão Tomé and PríncipeEl SalvadorSuuriy" + - "aIswaasilaandTurks and Caicos IslandsJaadToogoTaylaandTajikistanToke" + - "lauTimorka bariTurkmenistanTuniisiyaTongaTurkiTrinidad and TobagoTuv" + - "aluTaywaanTansaaniyaUkraynUgaandaMaraykankaUruguwaayUusbakistaanFaat" + - "ikaanSaint Vincent and the GrenadinesFenisuweelaBritish Virgin Islan" + - "dsU.S. Virgin IslandsFiyetnaamVanuatuWallis and FutunaSamoaYamanMayo" + - "tteKoonfur AfrikaSaambiyaSimbaabweFar aan la aqoon amase aan saxnayn", - []uint16{ // 261 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0024, 0x0030, 0x0043, 0x004b, 0x0054, - 0x005d, 0x0071, 0x0078, 0x0078, 0x0081, 0x0090, 0x0099, 0x00a5, - 0x00aa, 0x00aa, 0x00b4, 0x00c8, 0x00d2, 0x00e0, 0x00e6, 0x00f4, - 0x00fe, 0x0105, 0x010c, 0x0112, 0x0112, 0x011a, 0x0123, 0x012c, - 0x012c, 0x0134, 0x013c, 0x0142, 0x0142, 0x014c, 0x0153, 0x0159, - 0x015f, 0x015f, 0x0180, 0x019c, 0x01a1, 0x01ad, 0x01b8, 0x01c7, - 0x01cb, 0x01d4, 0x01dc, 0x01e5, 0x01e5, 0x01f0, 0x01f5, 0x0207, - 0x0207, 0x0207, 0x020d, 0x021e, 0x0224, 0x0224, 0x022b, 0x0232, - // Entry 40 - 7F - 0x023b, 0x0252, 0x025b, 0x025b, 0x0264, 0x026d, 0x0272, 0x0272, - 0x027c, 0x0282, 0x028a, 0x028a, 0x0291, 0x0295, 0x02a9, 0x02b3, - 0x02b3, 0x02bc, 0x02c3, 0x02d1, 0x02db, 0x02e3, 0x02f0, 0x02f0, - 0x02f5, 0x02fe, 0x0307, 0x030e, 0x0312, 0x031c, 0x032d, 0x0333, - 0x0333, 0x033f, 0x0343, 0x034e, 0x0354, 0x0354, 0x0354, 0x035c, - 0x0367, 0x036c, 0x0373, 0x0373, 0x037e, 0x0386, 0x0390, 0x0390, - 0x0397, 0x03b5, 0x03bb, 0x03c1, 0x03c9, 0x03d1, 0x03d1, 0x03d8, - 0x03dd, 0x03e3, 0x03ea, 0x03f4, 0x03fe, 0x0406, 0x040e, 0x0423, - // Entry 80 - BF - 0x0434, 0x0448, 0x044e, 0x045c, 0x0469, 0x046d, 0x0474, 0x047f, - 0x048c, 0x0496, 0x04a0, 0x04a7, 0x04b2, 0x04bd, 0x04c4, 0x04cb, - 0x04d2, 0x04d9, 0x04e0, 0x04e0, 0x04e0, 0x04ea, 0x04fa, 0x0505, - 0x050a, 0x0511, 0x051b, 0x051b, 0x0533, 0x053d, 0x0548, 0x0552, - 0x0558, 0x0563, 0x056d, 0x0574, 0x057b, 0x0583, 0x058c, 0x0595, - 0x05a2, 0x05a8, 0x05b6, 0x05c0, 0x05cb, 0x05d6, 0x05de, 0x05e4, - 0x05e9, 0x05ed, 0x05f9, 0x05ff, 0x0605, 0x0609, 0x0619, 0x0629, - 0x0631, 0x063a, 0x0641, 0x065a, 0x0662, 0x066d, 0x068e, 0x0697, - // Entry C0 - FF - 0x069c, 0x06a4, 0x06a9, 0x06a9, 0x06b1, 0x06ba, 0x06ba, 0x06bf, - 0x06c6, 0x06d6, 0x06e5, 0x06ed, 0x06f4, 0x06fc, 0x0705, 0x0711, - 0x0719, 0x0719, 0x0721, 0x072c, 0x0736, 0x073e, 0x0748, 0x0750, - 0x0750, 0x0768, 0x0773, 0x0773, 0x077a, 0x0786, 0x0786, 0x079e, - 0x07a2, 0x07a2, 0x07a7, 0x07af, 0x07b9, 0x07c0, 0x07cc, 0x07d8, - 0x07e1, 0x07e6, 0x07eb, 0x07fe, 0x0804, 0x080b, 0x0815, 0x081b, - 0x0822, 0x0822, 0x082c, 0x0835, 0x0841, 0x084a, 0x086a, 0x0875, - 0x088b, 0x089e, 0x08a7, 0x08ae, 0x08bf, 0x08c4, 0x08c4, 0x08c9, - // Entry 100 - 13F - 0x08d0, 0x08de, 0x08e6, 0x08ef, 0x0911, - }, - }, - { // sq - sqRegionStr, - sqRegionIdx, - }, - { // sr - srRegionStr, - srRegionIdx, - }, - { // sr-Latn - srLatnRegionStr, - srLatnRegionIdx, - }, - { // sv - svRegionStr, - svRegionIdx, - }, - {}, // sv-FI - { // sw - swRegionStr, - swRegionIdx, - }, - { // sw-CD - "AfuganistaniBeniniKongoKodivaaKuprosiUajemiLishenteniBukiniMyamaKisiwa c" + - "ha NorfokNijeriaTimori ya Mashariki", - []uint16{ // 231 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, - 0x000c, 0x000c, 0x000c, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, - 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, - 0x0012, 0x0012, 0x0012, 0x0012, 0x0017, 0x0017, 0x001e, 0x001e, - 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, - 0x001e, 0x001e, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - // Entry 40 - 7F - 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, - 0x0025, 0x0025, 0x0025, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, - 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, - // Entry 80 - BF - 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, - 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x003b, 0x003b, 0x003b, - 0x003b, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0051, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, - 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, - 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, - // Entry C0 - FF - 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, - 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, - 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, - 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, - 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x006b, - }, - }, - { // ta - taRegionStr, - taRegionIdx, - }, - { // te - teRegionStr, - teRegionIdx, - }, - { // teo - "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + - "iaAntili za UholanziAngolaAjentinaSamoa ya MarekaniAustriaAustraliaA" + - "rubaAzabajaniBosnia na HezegovinaBabadosiBangladeshiUbelgijiBukinafa" + - "soBulgariaBahareniBurundiBeniniBermudaBruneiBoliviaBraziliBahamaButa" + - "niBotswanaBelarusiBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhur" + - "i ya Afrika ya KatiKongoUswisiKodivaaVisiwa vya CookChileKameruniChi" + - "naKolombiaKostarikaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibut" + - "iDenmakiDominikaJamhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaH" + - "ispaniaUhabeshiUfiniFijiVisiwa vya FalklandMikronesiaUfaransaGaboniU" + - "ingerezaGrenadaJojiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaG" + - "ineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKor" + - "asiaHaitiHungariaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza kati" + - "ka Bahari HindiIrakiUajemiAislandiItaliaJamaikaYordaniJapaniKeniaKir" + - "igizistaniKambodiaKiribatiKomoroSantakitzi na NevisKorea KaskaziniKo" + - "rea KusiniKuwaitiVisiwa vya KaymanKazakistaniLaosiLebanoniSantalusia" + - "LishenteniSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoM" + - "onakoMoldovaBukiniVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa" + - " vya Mariana vya KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiMo" + - "divuMalawiMeksikoMalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha " + - "NorfokNijeriaNikaragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPan" + - "amaPeruPolinesia ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri " + - "na MikeloniPitkairniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza w" + - "a PalestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiV" + - "isiwa vya SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaSl" + - "ovakiaSiera LeoniSamarinoSenegaliSomaliaSurinamuSao Tome na Principe" + - "ElsavadoSiriaUswaziVisiwa vya Turki na KaikoChadiTogoTailandiTajikis" + - "taniTokelauTimori ya MasharikiTurukimenistaniTunisiaTongaUturukiTrin" + - "idad na TobagoTuvaluTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibe" + - "kistaniVatikaniSantavisenti na GrenadiniVenezuelaVisiwa vya Virgin v" + - "ya UingerezaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWalis na F" + - "utunaSamoaYemeniMayotteAfrika KusiniZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, - 0x004a, 0x005c, 0x0062, 0x0062, 0x006a, 0x007b, 0x0082, 0x008b, - 0x0090, 0x0090, 0x0099, 0x00ad, 0x00b5, 0x00c0, 0x00c8, 0x00d2, - 0x00da, 0x00e2, 0x00e9, 0x00ef, 0x00ef, 0x00f6, 0x00fc, 0x0103, - 0x0103, 0x010a, 0x0110, 0x0116, 0x0116, 0x011e, 0x0126, 0x012c, - 0x0132, 0x0132, 0x0152, 0x016b, 0x0170, 0x0176, 0x017d, 0x018c, - 0x0191, 0x0199, 0x019e, 0x01a6, 0x01a6, 0x01af, 0x01b3, 0x01bb, - 0x01bb, 0x01bb, 0x01c2, 0x01d2, 0x01db, 0x01db, 0x01e1, 0x01e8, - // Entry 40 - 7F - 0x01f0, 0x0203, 0x020a, 0x020a, 0x0210, 0x0217, 0x021c, 0x021c, - 0x0223, 0x022b, 0x0233, 0x0233, 0x0238, 0x023c, 0x024f, 0x0259, - 0x0259, 0x0261, 0x0267, 0x0270, 0x0277, 0x027c, 0x028f, 0x028f, - 0x0294, 0x029c, 0x02a5, 0x02ab, 0x02af, 0x02b8, 0x02c1, 0x02c8, - 0x02c8, 0x02d1, 0x02d5, 0x02de, 0x02e4, 0x02e4, 0x02e4, 0x02ed, - 0x02f4, 0x02f9, 0x0301, 0x0301, 0x030a, 0x0312, 0x0319, 0x0319, - 0x031e, 0x0343, 0x0348, 0x034e, 0x0356, 0x035c, 0x035c, 0x0363, - 0x036a, 0x0370, 0x0375, 0x0382, 0x038a, 0x0392, 0x0398, 0x03ab, - // Entry 80 - BF - 0x03ba, 0x03c6, 0x03cd, 0x03de, 0x03e9, 0x03ee, 0x03f6, 0x0400, - 0x040a, 0x0413, 0x041a, 0x0420, 0x0428, 0x0431, 0x0438, 0x043d, - 0x0443, 0x0449, 0x0450, 0x0450, 0x0450, 0x0456, 0x0468, 0x0471, - 0x0475, 0x047a, 0x0482, 0x0482, 0x04a2, 0x04ab, 0x04b4, 0x04bf, - 0x04c4, 0x04ca, 0x04d0, 0x04d6, 0x04dd, 0x04e4, 0x04ec, 0x04f3, - 0x04ff, 0x0505, 0x0516, 0x051d, 0x0526, 0x052e, 0x0533, 0x0539, - 0x053e, 0x0542, 0x054c, 0x0551, 0x0557, 0x055b, 0x0570, 0x0575, - 0x057d, 0x0586, 0x058d, 0x05a3, 0x05ac, 0x05b5, 0x05e7, 0x05ec, - // Entry C0 - FF - 0x05f1, 0x05f9, 0x05ff, 0x05ff, 0x0608, 0x060f, 0x060f, 0x0614, - 0x061a, 0x061f, 0x0631, 0x063b, 0x0641, 0x0647, 0x064f, 0x065a, - 0x0662, 0x0662, 0x066a, 0x0675, 0x067d, 0x0685, 0x068c, 0x0694, - 0x0694, 0x06a8, 0x06b0, 0x06b0, 0x06b5, 0x06bb, 0x06bb, 0x06d4, - 0x06d9, 0x06d9, 0x06dd, 0x06e5, 0x06f0, 0x06f7, 0x070a, 0x0719, - 0x0720, 0x0725, 0x072c, 0x073e, 0x0744, 0x074b, 0x0753, 0x075a, - 0x0760, 0x0760, 0x0768, 0x076f, 0x077b, 0x0783, 0x079c, 0x07a5, - 0x07c4, 0x07e2, 0x07eb, 0x07f2, 0x0801, 0x0806, 0x0806, 0x080c, - // Entry 100 - 13F - 0x0813, 0x0820, 0x0826, 0x082e, - }, - }, - { // th - thRegionStr, - thRegionIdx, - }, - {}, // ti - { // to - "Motu Ê»AsenisiniÊ»AnitolaÊ»Alepea FakatahatahaÊ»AfikÄnisitaniAnitikua mo Pal" + - "aputaAnikuilaÊ»AlipaniaʻĀmeniaAnitila fakahÅlaniÊ»AngikolaÊ»AnitÄtikaÊ»A" + - "senitinaHaÊ»amoa Ê»AmelikaÊ»AosituliaÊ»AositelÄ“liaÊ»AlupaÊ»Otumotu Ê»AlaniÊ»" + - "AsapaisaniPosinia mo HesikÅvinaPÄpeitosiPengilÄtesiPelesiumePekano F" + - "asoPulukaliaPaleiniPulunitiPeniniSÄ PatÄ“lemiPÄ“mutaPuluneiPolÄ«viaKali" + - "piane fakahÅlaniPalÄsiliPahamaPÅ«taniMotu PuvetiPotisiuanaPelalusiPel" + - "iseKÄnataÊ»Otumotu KokoKongo - KinisasaLipapilika Ê»Afilika LotolotoKo" + - "ngo - PalasavilaSuisilaniMatafonua Ê»AivolÄ«Ê»Otumotu KukiSiliKameluniS" + - "iainaKolomipiaMotu KilipatoniKosita LikaKiupaMuiÊ»i VÄ“teKulasaoMotu K" + - "ilisimasiSaipalesiLipapilika SekiSiamaneTieko KÄsiaSiputiTenimaÊ»akeT" + - "ominikaLipapilika TominikaÊ»AisiliaSiuta mo MelilaÊ»EkuetoaÊ»EsitÅniaÊ»I" + - "sipiteSahala fakahihifoÊ»ElituliaSipeiniʻĪtiÅpiaÊ»Iulope fakatahatahaF" + - "inilaniFisiÊ»Otumotu FokulaniMikolonÄ«siaÊ»Otumotu FaloeFalanisÄ“KaponiP" + - "ilitÄniaKelenatÄSeÅsiaKuiana fakafalanisÄ“KuenisÄ«KanaSipalÄlitÄKulini" + - "laniKamipiaKiniKuatalupeÊ»Ekueta KiniKalisiÊ»Otumotu SeÅsia-tonga mo S" + - "aniuisi-tongaKuatamalaKuamuKini-PisauKuianaHongi Kongi SAR SiainaÊ»Ot" + - "umotu Heati mo MakitonaliHonitulasiKuloisiaHaitiHungakaliaÊ»Otumotu K" + - "aneliÊ»InitonÄ“siaÊ»AealaniÊ»IsileliMotu ManiÊ»InitiaPotu fonua moana Ê»In" + - "itia fakapilitÄniaÊ»IlaakiÊ»IlaaniÊ»AisilaniʻĪtaliSelusÄ«SamaikaSoataneS" + - "iapaniKeniÄKÄ«kisitaniKamipÅtiaKilipasiKomolosiSÄ Kitisi mo NevisiKÅl" + - "ea tokelauKÅlea tongaKueitiÊ»Otumotu KeimeniKasakitaniLauLepanoniSÄ L" + - "Å«siaLikitenisiteiniSÄ«langikÄLaipeliaLesotoLituaniaLakisimipekiLativ" + - "iaLÄ«piaMolokoMonakoMolotovaMonitenikaloSÄ MÄtini (fakafalanisÄ“)Matak" + - "asikaÊ»Otumotu MÄsoloMasetÅniaMÄliPemaMongokÅliaMakau SAR SiainaÊ»Otum" + - "otu Maliana tokelauMÄtenikiMauliteniaMoÊ»ungaselatiMalitaMaulitiusiMa" + - "lativisiMalauiMekisikouMalÄ“siaMosÄ“mipikiNamipiaNiu KaletÅniaNisiaMot" + - "u NÅfolikiNaisiliaNikalakuaHÅlaniNoauÄ“NepaliNauluNiuÄ“NuÊ»usilaÊ»OmaniP" + - "anamÄPelÅ«Polinisia fakafalanisÄ“PapuaniukiniFilipainiPÄkisitaniPolani" + - "SÄ Piea mo MikeloniÊ»Otumotu PitikeniPueto LikoPotu PalesitainePotuka" + - "liPalauPalakuaiKatÄÊ»OsÄ“nia mamaÊ»oLÄ“unioniLomÄ“niaSÄ“piaLÅ«siaLuanitÄSau" + - "te Ê»AlepeaÊ»Otumotu SolomoneÊ»Otumotu SeiseliSÅ«teniSuÄ“teniSingapoaSÄ H" + - "elenaSilÅveniaSivolopÄti mo Sani MaieniSilÅvakiaSiela LeoneSÄ Malino" + - "SenekaloSÅmaliaSulinameSÅ«tani fakatongaSao TomÄ“ mo PilinisipeÊ»Ele Sa" + - "lavatoaSÄ MÄtini (fakahÅlani)SÄ«liaSuasilaniTulisiteni ta KunuhaÊ»Otum" + - "otu Tuki mo KaikosiSÄtiPotu fonua tonga fakafalanisÄ“TokoTailaniTasik" + - "itaniTokelauTimoa HahakeTÅ«kimenisitaniTunÄ«siaTongaToakeTilinitati mo" + - " TopakoTÅ«valuTaiuaniTenisÄniaʻŪkalaÊ»ineÊ»IukanitÄÊ»Otumotu siÊ»i Ê»o Ê»Am" + - "elikaPuleÊ»anga fakatahataha Ê»AmelikaÊ»UlukuaiÊ»UsipekitaniKolo Vatikan" + - "iSÄ Viniseni mo KulenatiniVenesuelaÊ»Otumotu Vilikini fakapilitÄniaÊ»O" + - "tumotu Vilikini fakaÊ»amelikaVietinamiVanuatuÊ»Uvea mo FutunaHaÊ»amoaKÅ" + - "sovoIemeniMaioteÊ»Afilika tongaSemipiaSimipapueiPotu fonua taÊ»eÊ»iloa " + - "pe halaMÄmaniÊ»AfilikaÊ»Amelika tokelauÊ»Amelika tongaÊ»OsÄ“niaÊ»Afilika f" + - "akahihifoÊ»Amelika lotolotoÊ»Afilika fakahahakeÊ»Afilika fakatokelauÊ»Af" + - "ilika lotolotoÊ»Afilika fakatongaOngo Ê»AmelikaÊ»Amelika fakatokelauKal" + - "ipianeʻĒsia fakahahakeʻĒsia fakatongaʻĒsia fakatongahahakeÊ»Iulope fa" + - "katongaÊ»AositelÄ“lÄ“siaMelanÄ«siaPotu fonua MikolonÄ«siaPolinÄ«siaʻĒsiaʻĒ" + - "sia lotolotoʻĒsia fakahihifoÊ»IulopeÊ»Iulope fakahahakeÊ»Iulope fakatok" + - "elauÊ»Iulope fakahihifoÊ»Amelika fakalatina", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0010, 0x0019, 0x002e, 0x003e, 0x0052, 0x005a, 0x0064, - 0x006d, 0x0080, 0x008a, 0x0096, 0x00a1, 0x00b3, 0x00be, 0x00cc, - 0x00d3, 0x00e4, 0x00f0, 0x0106, 0x0110, 0x011c, 0x0125, 0x0130, - 0x0139, 0x0140, 0x0148, 0x014e, 0x015b, 0x0162, 0x0169, 0x0171, - 0x0186, 0x018f, 0x0195, 0x019c, 0x01a7, 0x01b1, 0x01b9, 0x01bf, - 0x01c6, 0x01d4, 0x01e4, 0x0201, 0x0213, 0x021c, 0x022f, 0x023d, - 0x0241, 0x0249, 0x024f, 0x0258, 0x0267, 0x0272, 0x0277, 0x0283, - 0x028a, 0x0299, 0x02a2, 0x02b1, 0x02b8, 0x02c4, 0x02ca, 0x02d5, - // Entry 40 - 7F - 0x02dd, 0x02f0, 0x02f9, 0x0308, 0x0311, 0x031c, 0x0325, 0x0336, - 0x0340, 0x0347, 0x0352, 0x0367, 0x036f, 0x0373, 0x0385, 0x0391, - 0x03a0, 0x03a9, 0x03af, 0x03b9, 0x03c2, 0x03c9, 0x03dd, 0x03e5, - 0x03e9, 0x03f5, 0x03ff, 0x0406, 0x040a, 0x0413, 0x0420, 0x0426, - 0x044f, 0x0458, 0x045d, 0x0467, 0x046d, 0x0483, 0x04a0, 0x04aa, - 0x04b2, 0x04b7, 0x04c1, 0x04d1, 0x04de, 0x04e7, 0x04f0, 0x04f9, - 0x0501, 0x0529, 0x0531, 0x0539, 0x0543, 0x054b, 0x0552, 0x0559, - 0x0560, 0x0567, 0x056d, 0x0578, 0x0582, 0x058a, 0x0592, 0x05a6, - // Entry 80 - BF - 0x05b4, 0x05c0, 0x05c6, 0x05d7, 0x05e1, 0x05e4, 0x05ec, 0x05f6, - 0x0605, 0x0610, 0x0618, 0x061e, 0x0626, 0x0632, 0x0639, 0x063f, - 0x0645, 0x064b, 0x0653, 0x065f, 0x067a, 0x0684, 0x0695, 0x069f, - 0x06a4, 0x06a8, 0x06b3, 0x06c3, 0x06dc, 0x06e5, 0x06ef, 0x06fd, - 0x0703, 0x070d, 0x0717, 0x071d, 0x0726, 0x072e, 0x0739, 0x0740, - 0x074e, 0x0753, 0x0761, 0x0769, 0x0772, 0x0779, 0x077f, 0x0785, - 0x078a, 0x078f, 0x0798, 0x079f, 0x07a6, 0x07ab, 0x07c2, 0x07ce, - 0x07d7, 0x07e2, 0x07e8, 0x07fc, 0x080e, 0x0818, 0x0828, 0x0830, - // Entry C0 - FF - 0x0835, 0x083d, 0x0842, 0x0853, 0x085c, 0x0864, 0x086a, 0x0870, - 0x0878, 0x0886, 0x0898, 0x08a9, 0x08b0, 0x08b8, 0x08c0, 0x08ca, - 0x08d4, 0x08ee, 0x08f8, 0x0903, 0x090d, 0x0915, 0x091d, 0x0925, - 0x0936, 0x094d, 0x095c, 0x0975, 0x097b, 0x0984, 0x0998, 0x09b1, - 0x09b6, 0x09d4, 0x09d8, 0x09df, 0x09e9, 0x09f0, 0x09fc, 0x0a0b, - 0x0a13, 0x0a18, 0x0a1d, 0x0a31, 0x0a38, 0x0a3f, 0x0a49, 0x0a56, - 0x0a61, 0x0a7e, 0x0a9f, 0x0aa8, 0x0ab5, 0x0ac2, 0x0adc, 0x0ae5, - 0x0b06, 0x0b26, 0x0b2f, 0x0b36, 0x0b46, 0x0b4e, 0x0b55, 0x0b5b, - // Entry 100 - 13F - 0x0b61, 0x0b70, 0x0b77, 0x0b81, 0x0b9f, 0x0ba6, 0x0baf, 0x0bc0, - 0x0bcf, 0x0bd8, 0x0bec, 0x0bfe, 0x0c12, 0x0c27, 0x0c39, 0x0c4c, - 0x0c5a, 0x0c6f, 0x0c78, 0x0c8a, 0x0c9b, 0x0cb2, 0x0cc4, 0x0cd5, - 0x0cdf, 0x0cf6, 0x0d00, 0x0d07, 0x0d17, 0x0d29, 0x0d31, 0x0d44, - 0x0d58, 0x0d6b, 0x0d7f, - }, - }, - { // tr - trRegionStr, - trRegionIdx, - }, - { // twq - "AndooraLaaraw Imaarawey MarganteyAfgaanistanAntigua nda BarbuudaAngiiyaA" + - "lbaaniArmeeniHollandu Antiiyey LabooAngoolaArgentineAmeriki SamoaOtr" + - "iÅ¡iOstraaliAruubaAzerbaayijaÅ‹Bosni nda HerzegovineBarbaadosBangladeÅ¡" + - "iBelgiikiBurkina fasoBulgaariBahareenBurundiBeniÅ‹BermudaBruuneeBooli" + - "viBreezilBahamasBuutaÅ‹BotswaanaBiloriÅ¡iBeliiziKanaadaKongoo demookar" + - "atiki labooCentraafriki koyraKongooSwisuKudwarKuuk gungeyÅ iiliKameru" + - "unÅ iinKolombiKosta rikaKuubaKapuver gungeyÅ iipurCek laboAlmaaɲeJibuu" + - "tiDanemarkDoominikiDoominiki labooAlžeeriEkwateerEstooniMisraEritree" + - "EspaaɲeEcioopiFinlanduFijiKalkan gungeyMikroneziFaransiGaabonAlbaasa" + - "laama MargantaGrenaadaGorgiFaransi GuyaanGaanaGibraltarGrinlandGambi" + - "GineGwadeluupGinee EkwatorialGreeceGwatemaalaGuamGine-BissoGuyaaneHo" + - "ndurasKrwaasiHaitiHungaariIndoneeziIrlanduIsrayelIndu labooBritiÅ¡i I" + - "ndu teekoo laamaIraakIraanAyselandItaaliJamaayikUrdunJaapoÅ‹KeeniyaKy" + - "rgyzstankamboogiKiribaatiKomoorSeÅ‹ Kitts nda NevisKooree, GurmaKoore" + - "e, HawsaKuweetKayman gungeyKaazakstanLaawosLubnaanSeÅ‹ LussiaLiechten" + - "steinSrilankaLiberiaLeesotoLituaaniLuxembourgLetooniLiibiMaarokMonak" + - "oMoldoviMadagascarMarÅ¡al gungeyMaacedooniMaaliMaynamarMongooliMarian" + - "a Gurma GungeyMartiniikiMooritaaniMontserratMaltaMooris gungeyMaldii" + - "vuMalaawiMexikiMaleeziMozambikNaamibiKaaledooni TaagaaNižerNorfolk G" + - "ungooNaajiriiaNikaragwaHollanduNorveejNeepalNauruNiueZeelandu TaagaO" + - "maanPanamaPeeruFaransi PolineeziPapua Ginee TaagaFilipinePaakistanPo" + - "loɲeSeÅ‹ Piyer nda MikelonPitikarinPorto RikoPalestine Dangay nda Gaa" + - "zaPortugaalPaluParaguweyKataarReenioÅ‹RumaaniIriÅ¡i labooRwandaSaudiya" + - "Solomon GungeySeeÅ¡elSuudaÅ‹SweedeSingapurSeÅ‹ HelenaSloveeniSlovaakiSe" + - "era LeonSan MarinoSenegalSomaaliSurinaamSao Tome nda PrinsipeSalvado" + - "r labooSuuriaSwazilandTurk nda Kayikos GungeyCaaduTogoTaayilandTaaži" + - "kistanTokelauTimoor hawsaTurkmenistaÅ‹TuniziTongaTurkiTrinidad nda To" + - "baagoTuvaluTaayiwanTanzaaniUkreenUgandaAmeriki Laabu MarganteyUruguw" + - "eyUzbeekistanVaatikan LaamaSeÅ‹vinsaÅ‹ nda GrenadineVeneezuyeelaBritiÅ¡" + - "i Virgin gungeyAmeerik Virgin GungeyVietnaamVanautuWallis nda Futuna" + - "SamoaYamanMayootiHawsa Afriki LabooZambiZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0007, 0x0021, 0x002c, 0x0040, 0x0047, 0x004e, - 0x0055, 0x006c, 0x0073, 0x0073, 0x007c, 0x0089, 0x0090, 0x0098, - 0x009e, 0x009e, 0x00ab, 0x00c0, 0x00c9, 0x00d4, 0x00dc, 0x00e8, - 0x00f0, 0x00f8, 0x00ff, 0x0105, 0x0105, 0x010c, 0x0113, 0x011a, - 0x011a, 0x0121, 0x0128, 0x012f, 0x012f, 0x0138, 0x0141, 0x0148, - 0x014f, 0x014f, 0x0169, 0x017b, 0x0181, 0x0186, 0x018c, 0x0197, - 0x019d, 0x01a5, 0x01aa, 0x01b1, 0x01b1, 0x01bb, 0x01c0, 0x01ce, - 0x01ce, 0x01ce, 0x01d5, 0x01dd, 0x01e5, 0x01e5, 0x01ec, 0x01f4, - // Entry 40 - 7F - 0x01fd, 0x020c, 0x0214, 0x0214, 0x021c, 0x0223, 0x0228, 0x0228, - 0x022f, 0x0237, 0x023e, 0x023e, 0x0246, 0x024a, 0x0257, 0x0260, - 0x0260, 0x0267, 0x026d, 0x0282, 0x028a, 0x028f, 0x029d, 0x029d, - 0x02a2, 0x02ab, 0x02b3, 0x02b8, 0x02bc, 0x02c5, 0x02d5, 0x02db, - 0x02db, 0x02e5, 0x02e9, 0x02f3, 0x02fa, 0x02fa, 0x02fa, 0x0302, - 0x0309, 0x030e, 0x0316, 0x0316, 0x031f, 0x0326, 0x032d, 0x032d, - 0x0337, 0x0351, 0x0356, 0x035b, 0x0363, 0x0369, 0x0369, 0x0371, - 0x0376, 0x037d, 0x0384, 0x038e, 0x0396, 0x039f, 0x03a5, 0x03b9, - // Entry 80 - BF - 0x03c6, 0x03d3, 0x03d9, 0x03e6, 0x03f0, 0x03f6, 0x03fd, 0x0408, - 0x0415, 0x041d, 0x0424, 0x042b, 0x0433, 0x043d, 0x0444, 0x0449, - 0x044f, 0x0455, 0x045c, 0x045c, 0x045c, 0x0466, 0x0474, 0x047e, - 0x0483, 0x048b, 0x0493, 0x0493, 0x04a7, 0x04b1, 0x04bb, 0x04c5, - 0x04ca, 0x04d7, 0x04df, 0x04e6, 0x04ec, 0x04f3, 0x04fb, 0x0502, - 0x0513, 0x0519, 0x0527, 0x0530, 0x0539, 0x0541, 0x0548, 0x054e, - 0x0553, 0x0557, 0x0565, 0x056a, 0x0570, 0x0575, 0x0586, 0x0597, - 0x059f, 0x05a8, 0x05af, 0x05c5, 0x05ce, 0x05d8, 0x05f2, 0x05fb, - // Entry C0 - FF - 0x05ff, 0x0608, 0x060e, 0x060e, 0x0616, 0x061d, 0x061d, 0x0629, - 0x062f, 0x0636, 0x0644, 0x064b, 0x0652, 0x0658, 0x0660, 0x066b, - 0x0673, 0x0673, 0x067b, 0x0685, 0x068f, 0x0696, 0x069d, 0x06a5, - 0x06a5, 0x06ba, 0x06c8, 0x06c8, 0x06ce, 0x06d7, 0x06d7, 0x06ee, - 0x06f3, 0x06f3, 0x06f7, 0x0700, 0x070c, 0x0713, 0x071f, 0x072c, - 0x0732, 0x0737, 0x073c, 0x0750, 0x0756, 0x075e, 0x0766, 0x076c, - 0x0772, 0x0772, 0x0789, 0x0791, 0x079c, 0x07aa, 0x07c3, 0x07cf, - 0x07e5, 0x07fa, 0x0802, 0x0809, 0x081a, 0x081f, 0x081f, 0x0824, - // Entry 100 - 13F - 0x082b, 0x083d, 0x0842, 0x084a, - }, - }, - { // tzm - "Aná¸urraImarat Tiεrabin TidduklinAfÉ£anistanAntigwa d BarbudaAngwillaAlban" + - "yaArminyaAntil Tihulaná¸iyyinAngulaArjuntinSamwa ImirikaniyyinUstriyy" + - "aUsá¹­ralyaArubaAzerbiǧanBusna-d-HirsikBarbadusBangladicBeljikaBurkina" + - " FasuBelÉ£aryaBaḥraynBurundiBininBirmudaBrunayBulivyaBá¹›azilBahamasBuá¹­" + - "anButswanaBilarusyaBilizKanadaTagduda Tadimuqraá¹­it n KunguTagduda n " + - "Afrika WammasKunguSwisraTaÉ£azut n UszerTigzirin n KukCciliKamerunṢṣi" + - "nKulumbyaKusá¹­a RikakubaTigzirin n IÉ£f UzegzawQubrusTagduda n ÄŒikAlma" + - "nyaǦibutiDanmarkḌuminikaTagduda n ḌuminikanDzayerIkwaá¸urIsá¹­unyaMiá¹£rI" + - "ritryaSbanyaItyupyaFinlaná¸aFijiTigzirin n FalklandMikrunizyaFá¹›ansaGa" + - "bunTagelda TaddukeltGrinadaJyurjyaGuyana TafransistÆ”anaJibralá¹­arGrin" + - "laná¸aGambyaÆ”inyaGwadalupÆ”inya Tikwaá¹­ur itYunanGwatimalaGwamÆ”inya-Bis" + - "sawGuyanaHindurasKrwatyaHaytiHenÉ£aryaIndunizyaIrlaná¸aIsraeilHindAmur" + - " n Agaraw Uhindi Ubá¹›iá¹­aniÆiraqIranIslaná¸aIá¹­alyaJamaykaUrá¸unJjappunKi" + - "nyaKirÉ£istanKambudjKiribatiQumurSantekits d NivisKurya TugafatKurya " + - "TunẓultKuwwaytTigzirin n KaymanKazaxistanLawsLubnanSantelusyaLictenc" + - "á¹­aynSrilankaLibiryaLisuá¹­uLitwanyaLiksumburgLiá¹­á¹­unyaLibyaMeṛṛukMuna" + - "kuMulá¸avyaMadaÉ£acqarTigzirin n MarcalMaqdunyaMaliMyanmarManÉ£ulyaTigz" + - "irin n Maryana TugafatMartinikMuritanyaMuntsirraMalá¹­aMurisMaldivMala" + - "wiMiksikMalizyaMuzambiqNamibyakalidunya TamaynutNnijerTigzirt Nurful" + - "kNijiriaNikaragwaHulaná¸aNnurwijNippalNawruNiwiZilaná¸a TamaynutÆumman" + - "PanamaPiruPulinizya TafransistPapwa Æ”inya TamaynutFilippinPakistanPu" + - "lunyaSantepyir d MikelunPitkirnPurturikuAgemmaḠUgut d Æ”azza Ifilisá¹­" + - "iniyenPurtuÉ£alPaluParagwayQaá¹­arRiyyunyunṚumanyaRusyaRuwwaná¸aSsaεudiy" + - "ya TaεrabtTigzirin n SalumunSsicilSsudanSsewwidSanÉ£afuraSantehilinSl" + - "uvinyaSluvakyaSiralyunSanmarinuSsiniÉ£alṢṣumalSurinamSawá¹­umi d Prinsi" + - "pSalvaá¸urSuryaSwazilaná¸aTigzirin Turkiyyin d TikaykusinTcadṬṭuguṬayl" + - "aná¸aṬaǧikistanTukluTimur Tagmuá¹­TurkmanistanTunesṬungaTurkyaTrinidad " + - "d ṬubaguṬuvaluṬaywanṬanzanyaUkranyaUÉ£andaIwunak Idduklen n AmirikaUr" + - "ugwayUzbakistanAwank iÉ£rem n VatikanSantevinsent d GrinadinVinzwilla" + - "Tigzirin (Virgin) Tibá¹›iá¹­aniyinTigzirin n Virjin n Iwunak YedduklenVi" + - "á¹­namVanwatuWalis d FutunaSamwaYamanMayuá¹­Tafrikt TunẓulZambyaZimbab" + - "wi", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0009, 0x0023, 0x002e, 0x003f, 0x0047, 0x004e, - 0x0055, 0x006a, 0x0070, 0x0070, 0x0078, 0x008b, 0x0093, 0x009d, - 0x00a2, 0x00a2, 0x00ac, 0x00ba, 0x00c2, 0x00cb, 0x00d2, 0x00de, - 0x00e7, 0x00f0, 0x00f7, 0x00fc, 0x00fc, 0x0103, 0x0109, 0x0110, - 0x0110, 0x0118, 0x011f, 0x0126, 0x0126, 0x012e, 0x0137, 0x013c, - 0x0142, 0x0142, 0x0160, 0x0177, 0x017c, 0x0182, 0x0192, 0x01a0, - 0x01a5, 0x01ac, 0x01b4, 0x01bc, 0x01bc, 0x01c8, 0x01cc, 0x01e3, - 0x01e3, 0x01e3, 0x01e9, 0x01f7, 0x01fe, 0x01fe, 0x0205, 0x020c, - // Entry 40 - 7F - 0x0216, 0x022b, 0x0231, 0x0231, 0x023a, 0x0243, 0x0249, 0x0249, - 0x0250, 0x0256, 0x025d, 0x025d, 0x0267, 0x026b, 0x027e, 0x0288, - 0x0288, 0x0290, 0x0295, 0x02a6, 0x02ad, 0x02b4, 0x02c5, 0x02c5, - 0x02ca, 0x02d5, 0x02e0, 0x02e6, 0x02ec, 0x02f4, 0x0308, 0x030d, - 0x030d, 0x0316, 0x031a, 0x0327, 0x032d, 0x032d, 0x032d, 0x0335, - 0x033c, 0x0341, 0x034a, 0x034a, 0x0353, 0x035c, 0x0363, 0x0363, - 0x0367, 0x0388, 0x038e, 0x0392, 0x039b, 0x03a3, 0x03a3, 0x03aa, - 0x03b1, 0x03b8, 0x03bd, 0x03c7, 0x03ce, 0x03d6, 0x03db, 0x03ec, - // Entry 80 - BF - 0x03f9, 0x0408, 0x040f, 0x0420, 0x042a, 0x042e, 0x0434, 0x043e, - 0x044b, 0x0453, 0x045a, 0x0462, 0x046a, 0x0474, 0x0480, 0x0485, - 0x048f, 0x0495, 0x049f, 0x049f, 0x049f, 0x04aa, 0x04bb, 0x04c3, - 0x04c7, 0x04ce, 0x04d7, 0x04d7, 0x04f1, 0x04f9, 0x0502, 0x050b, - 0x0512, 0x0517, 0x051d, 0x0523, 0x0529, 0x0530, 0x0538, 0x053f, - 0x0551, 0x0557, 0x0566, 0x056d, 0x0576, 0x057f, 0x0586, 0x058c, - 0x0591, 0x0595, 0x05a7, 0x05ae, 0x05b4, 0x05b8, 0x05cc, 0x05e1, - 0x05e9, 0x05f1, 0x05f8, 0x060b, 0x0612, 0x061b, 0x0642, 0x064b, - // Entry C0 - FF - 0x064f, 0x0657, 0x065e, 0x065e, 0x0667, 0x0670, 0x0670, 0x0675, - 0x067f, 0x0693, 0x06a5, 0x06ab, 0x06b1, 0x06b8, 0x06c2, 0x06cc, - 0x06d4, 0x06d4, 0x06dc, 0x06e4, 0x06ed, 0x06f6, 0x0700, 0x0707, - 0x0707, 0x071a, 0x0724, 0x0724, 0x0729, 0x0735, 0x0735, 0x0754, - 0x0758, 0x0758, 0x0761, 0x076d, 0x077a, 0x077f, 0x078d, 0x0799, - 0x079e, 0x07a5, 0x07ab, 0x07be, 0x07c6, 0x07ce, 0x07d8, 0x07df, - 0x07e6, 0x07e6, 0x07ff, 0x0806, 0x0810, 0x0826, 0x083d, 0x0846, - 0x0868, 0x088c, 0x0894, 0x089b, 0x08a9, 0x08ae, 0x08ae, 0x08b3, - // Entry 100 - 13F - 0x08ba, 0x08ca, 0x08d0, 0x08d8, - }, - }, - { // ug - "ئاسسÛنسىيون ئارىلىئاندوررائەرەب بىرلەشمە خەلىپىلىكىئاÙغانىستانئانتىگۋا Û‹" + - "Û• باربۇدائانگۋىللائالبانىيەئەرمÛنىيەئانگولائانتاركتىكائارگÛنتىنائام" + - "Ûرىكا تەۋەلىكىدىكى ساموئائاۋسترىيەئاۋسترالىيەئارۇبائالاند ئاراللىرى" + - "ئەزەربەيجانبوسنىيە-Ú¯ÛرتسÛگوۋىناباربادوسباڭلادىشبÛلگىيەبۇركىنا-Ùاسوب" + - "ۇلغارىيەبەھرەينبۇرۇندىبÛنىنساينىت-بارتھÛلەمي ئاراللىرىبÛرمۇدابىرۇنÛ" + - "يبولىۋىيەكارىب دÛڭىزى گوللاندىيەبىرازىلىيەباھامابۇتانبۇۋÛت ئاراللىر" + - "ىبوتسۋانابÛلارۇسىيەبÛلىزكاناداكەئەلىڭ كوكۇس ئاراللىرىكونگو - كىنشاس" + - "ائوتتۇرا ئاÙرىقا جۇمھۇرىيىتىكونگو - Ø¨Ù‰Ø±Ø§Ø²Ø²Ø§Û‹Ù‰Ù„Ø´Ù‰Û‹Ù‰ØªØ³Ø§Ø±Ù‰ÙŠÛ•ÙƒÙˆØªÛ Ø¯Û Ø¦Ù‰" + - "ۋوئىركۇك ئاراللىرىچىلىكامÛرونجۇڭگوكولومبىيەكىلىپپÛرتون ئاراللىرىكوس" + - "تارىكاكۇبايÛشىل تۇمشۇقكۇراسوروژدÛستۋو ئارىلىسىپرۇسچÛØ® جۇمھۇرىيىتىگÛ" + - "رمانىيەدÛÚ¯Ùˆ-گارشىياجىبۇتىدانىيەدومىنىكادومىنىكا جۇمھۇرىيىتىئالجىرىي" + - "ەسÛيتا Û‹Û• Ù…ÛلىلائÛكۋادورئÛستونىيەمىسىرغەربىي ساخارائÛرىترÛيەئىسپانى" + - "يەئÛÙىيوپىيەياۋروپا ئىتتىپاقىÙىنلاندىيەÙىجىÙالكلاند ئاراللىرىمىكرون" + - "ÛزىيەÙائÛرو ئاراللىرىÙىرانسىيەگابونئەنگلىيە پادىشاھلىقىگىرÛناداگىرو" + - "زىيەÙىرانسىيەگە قاراشلىق گىۋىياناگÛرىنسىگاناجەبىلتارىقگىرÛنلاندگامب" + - "ىيەگىۋىنÛيەگىۋادÛلۇپئÛكۋاتور گىۋىنÛيەسىگىرÛتسىيەجەنۇبىي جورجىيە Û‹Û• " + - "جەنۇبىي ساندىۋىچ ئاراللىرىگىۋاتÛمالاگۇئامگىۋىنÛÙŠÛ•-بىسسائۇگىۋىياناشي" + - "اڭگاڭ ئالاھىدە مەمۇرىي رايونى (جۇڭگو)Ø®Ûرد Û‹Û• ماك-دونالد ئارىلىھوندۇ" + - "راسكىرودىيەھايتىۋÛنگىرىيەكانارى ئاراللىرىھىندونÛزىيەئىرÛلاندىيەئىسر" + - "ائىلىيەمÛÙ† ئارىلىھىندىستانئەنگلىيەنىڭ ھىندى ئوكياندىكى تەۋەلىكىئىرا" + - "قئىرانئىسلاندىيەئىتالىيەجÛرسÛييامايكائىيوردانىيەياپونىيەكÛنىيەقىرغى" + - "زىستانكامبودژاكىرىباتىكوموروساينىت-كىرىستوÙÛر Û‹Û• Ù†Ûۋىسشىمالىي كورىي" + - "ەجەنۇبىي كورىيەكۇۋەيتكايمان ئاراللىرىقازاقىستانلائوسلىۋانساينىت-لۇس" + - "ىيەلىچتÛنشتÛين بەگلىكىسىرىلانكالىبÛرىيەلÛسوتولىتۋانىيەلىيۇكسÛمبۇرگل" + - "اتۋىيەلىۋىيەماراكەشموناكومولدوۋامونتÛÙ†Ûگروساينىت-مارتÛنماداغاسقارما" + - "رشال ئاراللىرىماكÛدونىيەمالىبىرماموڭغۇلىيەئاۋمÛÙ† ئالاھىدە مەمۇرىي ر" + - "ايونى (جۇڭگو)شىمالىي مارىيانا ئاراللىرىمارتىنىكاماۋرىتانىيەمونتسÛرر" + - "اتمالتاماۋرىتىئۇسمالدىۋÛمالاۋىمÛكسىكامالايشىياموزامبىكنامىبىيەيÛÚ­Ù‰ " + - "كالÛدونىيەنÛگىرنورÙولك ئارىلىنىگÛرىيەنىكاراگۇئاگوللاندىيەنورۋÛگىيەن" + - "ÛپالناۋرۇنىيۇئÛÙŠÛÚ­Ù‰ زÛلاندىيەئومانپاناماپÛرۇÙىرانسىيەگە قاراشلىق پو" + - "لىنÛزىيەپاپۇئا ÙŠÛÚ­Ù‰ گىۋىنÛيەسىÙىلىپپىنپاكىستانپولشاساينىت-پىئÛر Û‹Û• " + - "مىكÛلون ئاراللىرىپىتكاير ئاراللىرىپۇئÛرتو-رىكوپەلەستىن زÛمىنىپورتۇگ" + - "الىيەپالاۋپاراگۋايقاتارئوكيانىيە ئەتراپىدىكى ئاراللاررÛئونىيونرۇمىن" + - "ىيەسÛربىيەرۇسىيەرىۋانداسەئۇدى ئەرەبىستانسولومون ئاراللىرىسÛيشÛلسۇدا" + - "نشىۋÛتسىيەسىنگاپورساينىت Ú¾ÛÙ„ÛناسىلوۋÛنىيەسىۋالبارد Û‹Û• يان-مايÛÙ† ئار" + - "ىلىسىلوۋاكىيەسÛررالÛئونسان-مارىنوسÛÙ†Ûگالسومالىسۇرىنامجەنۇبىي سۇدانس" + - "ان ØªÙˆÙ…Û Û‹Û• پرىنسىپÛئەل سالۋادورسىنت مارتÛنسۈرىيەسىۋÛزىلاندترىستان د" + - "اكۇنھاتۇركس Û‹Û• كايكوس ئاراللىرىچادÙىرانسىيەگە قاراشلىق جەنۇبتىكى زÛ" + - "مىنلىرىتوگوتايلاندتاجىكىستانتوكÛلاۋشەرقىي تىمورتۈركمەنىستانتۇنىستون" + - "گاتۈركىيەتىرىنىداد Û‹Û• توباگوتۇۋالۇتەيۋەنتانزانىيەئۇكرائىنائۇگاندائا" + - "Ù…Ûرىكا تەۋەلىكىدىكى سىرتقى كىچىك ئاراللارئامÛرىكا قوشما شتاتلىرىئۇر" + - "ۇگۋايئۆزبÛكىستانۋاتىكان شەھىرىساينىت-ۋىنسÛنت Û‹Û• گىرÛنادىنÛسۋÛÙ†ÛزۇئÛ" + - "لائەنگلىيەگە قاراشلىق ۋىرجىن ئارىلىئامÛرىكا تەۋەلىكىدىكى ۋىرجىن تاق" + - "ىم ئاراللىرىۋىيÛتنامۋانۇئاتۇۋالىس Û‹Û• ÙۇتۇناساموئاكوسوۋويەمەنمايوتتÛ" + - "جەنۇبىي ئاÙرىقازامبىيەزىمبابۋÛيوچۇن جايدۇنيائاÙرىقاشىمالىي ئامÛرىكا" + - "جەنۇبىي ئامÛرىكائوكيانىيەغەربىي ئاÙرىقائوتتۇرا ئامÛرىكاشەرقىي ئاÙرى" + - "قاشىمالىي ئاÙرىقائوتتۇرا ئاÙرىقاجەنۇبىي ئاÙرىقا رايونىئامÛرىكاشىمال" + - "ىي ئامÛرىكا رايونىكارىب دÛڭىزىشەرقىي ئاسىياجەنۇبىي ئاسىياشەرقىي جەن" + - "ۇبىي ئاسىياجەنۇبىي ياۋروپائاۋسترالئاسىيامÛلانÛسىيەمىكرونÛزىيە رايون" + - "ىپولىنىزىيەئاسىيائوتتۇرا ئاسىياغەربىي ئاسىياياۋروپاشەرقىي ياۋروپاشى" + - "مالىي ياۋروپاغەربىي ياۋروپالاتىن ئامÛرىكا", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0023, 0x0033, 0x0063, 0x0079, 0x009d, 0x00af, 0x00c1, - 0x00d3, 0x00d3, 0x00e1, 0x00f7, 0x010b, 0x0141, 0x0153, 0x0169, - 0x0175, 0x0194, 0x01aa, 0x01d1, 0x01e1, 0x01f1, 0x01ff, 0x0216, - 0x0228, 0x0236, 0x0244, 0x024e, 0x0282, 0x0290, 0x029e, 0x02ae, - 0x02da, 0x02ee, 0x02fa, 0x0304, 0x0321, 0x0331, 0x0345, 0x034f, - 0x035b, 0x0387, 0x03a2, 0x03d6, 0x03f7, 0x040d, 0x0429, 0x0442, - 0x044a, 0x0458, 0x0462, 0x0474, 0x049d, 0x04af, 0x04b7, 0x04ce, - 0x04da, 0x04f9, 0x0505, 0x0522, 0x0534, 0x054b, 0x0557, 0x0563, - // Entry 40 - 7F - 0x0573, 0x059a, 0x05ac, 0x05c8, 0x05d8, 0x05ea, 0x05f4, 0x060d, - 0x061f, 0x0631, 0x0645, 0x0666, 0x067a, 0x0682, 0x06a5, 0x06bb, - 0x06da, 0x06ec, 0x06f6, 0x071d, 0x072d, 0x073d, 0x0775, 0x0783, - 0x078b, 0x079f, 0x07b1, 0x07bf, 0x07cf, 0x07e1, 0x0806, 0x0818, - 0x086d, 0x0881, 0x088b, 0x08aa, 0x08ba, 0x0902, 0x0930, 0x0940, - 0x0950, 0x095a, 0x096c, 0x098b, 0x09a1, 0x09b7, 0x09cd, 0x09e0, - 0x09f2, 0x0a39, 0x0a43, 0x0a4d, 0x0a61, 0x0a71, 0x0a7d, 0x0a8b, - 0x0aa1, 0x0ab1, 0x0abd, 0x0ad3, 0x0ae3, 0x0af3, 0x0aff, 0x0b30, - // Entry 80 - BF - 0x0b4b, 0x0b66, 0x0b72, 0x0b91, 0x0ba5, 0x0baf, 0x0bb9, 0x0bd2, - 0x0bf7, 0x0c09, 0x0c19, 0x0c25, 0x0c37, 0x0c4f, 0x0c5d, 0x0c69, - 0x0c77, 0x0c83, 0x0c91, 0x0ca5, 0x0cbe, 0x0cd2, 0x0cf1, 0x0d05, - 0x0d0d, 0x0d17, 0x0d29, 0x0d6f, 0x0da1, 0x0db3, 0x0dc9, 0x0ddd, - 0x0de7, 0x0dfb, 0x0e09, 0x0e15, 0x0e23, 0x0e35, 0x0e45, 0x0e55, - 0x0e72, 0x0e7c, 0x0e97, 0x0ea7, 0x0ebb, 0x0ecf, 0x0ee1, 0x0eeb, - 0x0ef5, 0x0f01, 0x0f1c, 0x0f26, 0x0f32, 0x0f3a, 0x0f76, 0x0fa0, - 0x0fb0, 0x0fc0, 0x0fca, 0x1008, 0x1029, 0x1040, 0x105d, 0x1073, - // Entry C0 - FF - 0x107d, 0x108d, 0x1097, 0x10d1, 0x10e3, 0x10f3, 0x1101, 0x110d, - 0x111b, 0x113c, 0x115d, 0x1169, 0x1173, 0x1185, 0x1195, 0x11ae, - 0x11c2, 0x11f8, 0x120c, 0x1220, 0x1233, 0x1241, 0x124d, 0x125b, - 0x1274, 0x1299, 0x12b0, 0x12c5, 0x12d1, 0x12e5, 0x1302, 0x1331, - 0x1337, 0x1384, 0x138c, 0x139a, 0x13ae, 0x13bc, 0x13d3, 0x13eb, - 0x13f5, 0x13ff, 0x140d, 0x1431, 0x143d, 0x1449, 0x145b, 0x146d, - 0x147b, 0x14cd, 0x14f9, 0x1509, 0x151f, 0x153a, 0x1571, 0x1585, - 0x15c4, 0x1618, 0x1628, 0x1638, 0x1654, 0x1660, 0x166c, 0x1676, - // Entry 100 - 13F - 0x1684, 0x16a1, 0x16af, 0x16bf, 0x16d0, 0x16da, 0x16e8, 0x1707, - 0x1726, 0x1738, 0x1753, 0x1772, 0x178d, 0x17aa, 0x17c7, 0x17f1, - 0x1801, 0x182d, 0x1844, 0x185d, 0x1878, 0x18a0, 0x18bd, 0x18d9, - 0x18ed, 0x1910, 0x1924, 0x1930, 0x194b, 0x1964, 0x1972, 0x198d, - 0x19aa, 0x19c5, 0x19e0, - }, - }, - { // uk - ukRegionStr, - ukRegionIdx, - }, - { // ur - urRegionStr, - urRegionIdx, - }, - { // ur-IN - "Ø¬Ø²ÛŒØ±Û Ø§Ø³ÛŒÙ†Ø´Ù†Ø¬Ø²Ø§Ø¦Ø± Ø¢Ù„ÛŒÙ†ÚˆØ¬Ø²ÛŒØ±Û Ø¨ÙˆÙˆÛŒØªØ¬Ø²Ø§Ø¦Ø± (کیلنگ) کوکوسکوت داوواغجزائر ککج" + - "Ø²ÛŒØ±Û Ú©Ù„Ù¾Ø±Ù¹Ù†ÚˆÛŒÚ¯Ùˆ گارشیاجزائر Ùاکلینڈجزائر ÙیروÙرانسیسی گیاناجزائر Ûر" + - "Úˆ Ùˆ مکڈونلڈجزائر کناریبرطانوی بحرÛند خطÛجزائر مارشلجزائر شمالی ماری" + - "Ø§Ù†Ø§Ø¬Ø²ÛŒØ±Û Ù†Ø§Ø±Ùوکجزائر پٹکیرنجزائر سلیمانترسٹان دا کونیاجزائر کیکس Ùˆ " + - "ترکیÛامریکی بیرونی جزائربرطانوی جزائر ورجنامریکی جزائر ورجن", - []uint16{ // 250 elements - // Entry 0 - 3F - 0x0000, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, - 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, - 0x0017, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, - 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, - 0x002c, 0x002c, 0x002c, 0x002c, 0x0041, 0x0041, 0x0041, 0x0041, - 0x0041, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0076, 0x0085, - 0x0085, 0x0085, 0x0085, 0x0085, 0x009c, 0x009c, 0x009c, 0x009c, - 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x00b1, 0x00b1, 0x00b1, - // Entry 40 - 7F - 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, - 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00ca, 0x00ca, - 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00f8, 0x00f8, - 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, - 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x011b, 0x011b, - 0x011b, 0x011b, 0x011b, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, - 0x0130, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, - 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, - // Entry 80 - BF - 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, - 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, - 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0167, 0x0167, - 0x0167, 0x0167, 0x0167, 0x0167, 0x018b, 0x018b, 0x018b, 0x018b, - 0x018b, 0x018b, 0x018b, 0x018b, 0x018b, 0x018b, 0x018b, 0x018b, - 0x018b, 0x018b, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, - 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, - 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01b9, 0x01b9, 0x01b9, 0x01b9, - // Entry C0 - FF - 0x01b9, 0x01b9, 0x01b9, 0x01b9, 0x01b9, 0x01b9, 0x01b9, 0x01b9, - 0x01b9, 0x01b9, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, - 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, - 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01ec, 0x020d, - 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, - 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, - 0x020d, 0x0231, 0x0231, 0x0231, 0x0231, 0x0231, 0x0231, 0x0231, - 0x0253, 0x0273, - }, - }, - { // uz - uzRegionStr, - uzRegionIdx, - }, - { // uz-Arab - "اÙغانستان", - []uint16{ // 5 elements - 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, - }, - }, - { // uz-Cyrl - "ВознеÑение оролиÐндорраБирлашган Ðраб ÐмирликлариÐфғониÑтонÐнтигуа ва Ба" + - "рбадоÑÐнгилаÐлбаниÑÐрманиÑтонÐнголаÐнтарктикаÐргентинаÐмерика Самоа" + - "ÑиÐвÑтриÑÐвÑтралиÑÐрубаÐланд ороллариОзарбайжонБоÑÐ½Ð¸Ñ Ð²Ð° Герцеговин" + - "аБарбадоÑБангладешБельгиÑБуркина-ФаÑоБолгариÑБаҳрайнБурундиБенинМуқ" + - "Ð°Ð´Ð´Ð°Ñ Ð’Ð°Ñ€Ñ„Ð°Ð»Ð¾Ð¼ÐµÐ¹Ð‘ÐµÑ€Ð¼ÑƒÐ´Ð°Ð‘Ñ€ÑƒÐ½ÐµÐ¹Ð‘Ð¾Ð»Ð¸Ð²Ð¸ÑКариб ÐидерландиÑÑиБразилиÑБага" + - "ма ороллариБутанБувет оролиБотÑваннаБелоруÑиÑÐ‘ÐµÐ»Ð¸Ð·ÐšÐ°Ð½Ð°Ð´Ð°ÐšÐ¾ÐºÐ¾Ñ (Кили" + - "нг) ороллариКонго-КиншаÑаМарказий Ðфрика РеÑпубликаÑиКонго Браззави" + - "льШвейцариÑКот-д-ИвуарКук ороллариЧилиКамерунХитойКолумбиÑКлипперто" + - "н оролиКоÑта-РикаКубаКабо-ВердеКураÑаоРождеÑтво Ð¾Ñ€Ð¾Ð»Ð¸ÐšÐ¸Ð¿Ñ€Ð§ÐµÑ…Ð¸Ñ Ð ÐµÑп" + - "убликаÑиОлмониÑДиего ГарÑиÑДжибутиДаниÑДоминикаДоминикан РеÑпублика" + - "ÑиЖазоирСейта ва МелиллаЭквадорЭÑтониÑМиÑрҒарбий Саҳрои КабирЭритре" + - "ÑИÑпаниÑЭфиопиÑЕвропа ИттифоқиФинлÑндиÑФижи ороллариФолькленд оролл" + - "ариМикронезиÑФарер ороллариФранциÑГабонБирлашган ҚиролликГренадаГру" + - "зиÑФранцуз ГвианаÑиГернÑиГанаГибралтарГренландиÑГамбиÑГвинеÑГваделу" + - "пеЭкваториал ГвинеÑГрециÑЖанубий Ð”Ð¶Ð¾Ñ€Ð´Ð¶Ð¸Ñ Ð²Ð° Жанубий Сендвич оролла" + - "риГватемалаГуамГвинеÑ-БиÑауГаÑнаГонконг Хитой ММҲГерд ороли ва МакД" + - "оналд ороллариГондураÑХорватиÑГаитиВенгриÑКанар ороллариИндонезиÑИр" + - "ландиÑИÑроилМÑн оролиҲиндиÑÑ‚Ð¾Ð½Ð‘Ñ€Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ò²Ð¸Ð½Ð´ океани ҳудудиИроқЭронИÑ" + - "ландиÑИталиÑДжерÑиЯмайкаИорданиÑЯпониÑКениÑҚирғизиÑтонКамбоджаКириб" + - "атиКомор ороллариСент-ÐšÐ¸Ñ‚Ñ Ð²Ð° ÐевиÑШимолий КореÑЖанубий КореÑКувайт" + - "Кайман ороллариҚозоғиÑтонЛаоÑЛиванСент-ЛюÑиÑЛихтенштейнШри-ЛанкаЛиб" + - "ериÑЛеÑотоЛитваЛюкÑембургЛатвиÑЛивиÑМарокашМонакоМолдоваЧерногориÑС" + - "ент-МартинМадагаÑкарМаршал ороллариМакедониÑМалиМьÑнма (Бирма)Муғул" + - "иÑтонМакао Хитой ММҲШимолий Марианна ороллариМартиникаМавританиÑМон" + - "Ñ‚ÑерратМальтаМаврикийМальдив ороллариМалавиМекÑикаМалайзиÑМозамбикÐ" + - "амибиÑЯнги КаледониÑÐигерÐорфолк ороллариÐигериÑÐикарагуаÐидерланди" + - "ÑÐорвегиÑÐепалÐауруÐиуеЯнги ЗеландиÑУммонПанамаПеруФранцуз Полинези" + - "ÑÑиПапуа Янги ГвинеÑФилиппинПокиÑтонПольшаСент-Пьер ва МикелонПитка" + - "рин ороллариПуÑрто-РикоФалаÑтин ҳудудиПортугалиÑПалауПарагвайҚатарÐ" + - "ндош ОкеаниÑРеюньонРуминиÑСербиÑРоÑÑиÑÐ ÑƒÐ°Ð½Ð´Ð°Ð¡Ð°ÑƒÐ´Ð¸Ñ ÐрабиÑтониСоломо" + - "н ороллариСейшел ороллариСуданШвециÑÐ¡Ð¸Ð½Ð³Ð°Ð¿ÑƒÑ€ÐœÑƒÒ›Ð°Ð´Ð´Ð°Ñ Ð•Ð»ÐµÐ½Ð° ороллари" + - "СловениÑСавльбард ва Жан МаенСловакиÑСьерра-ЛеонеСан-МариноСенегалС" + - "омалиСуринамЖанубий СуданСан-Томе ва ПринÑипиЭль-СальвадорСинт-Маар" + - "тенСуриÑСвазилендТриÑтан де ÐšÑƒÐ½Ð°Ð¢ÑƒÑ€ÐºÑ Ð²Ð° ÐšÐ°Ð¹ÐºÐ¾Ñ Ð¾Ñ€Ð¾Ð»Ð»Ð°Ñ€Ð¸Ð§Ð°Ð´Ð¤Ñ€Ð°Ð½Ñ†Ð¸Ñ " + - "жанубий худудлариТогоТайландТожикиÑтонТокелауШарқий-ТиморТуркманиÑÑ‚" + - "онТуниÑТонгаТуркиÑТринидад ва ТобагоТувалуТайванТанзаниÑУкраинаУган" + - "даÐҚШ ёндош ороллариҚўшма ШтатларУругвайЎзбекиÑтонВатиканСент-ВинÑе" + - "нт ва ГренадинВенеÑуÑÐ»Ð°Ð‘Ñ€Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð’Ð¸Ñ€Ð´Ð¶Ð¸Ð½Ð¸Ñ Ð¾Ñ€Ð¾Ð»Ð»Ð°Ñ€Ð¸ÐҚШ Ð’Ð¸Ñ€Ð´Ð¶Ð¸Ð½Ð¸Ñ Ð¾Ñ€Ð¾" + - "ллариВьетнамВануатуУÑÐ»Ð»Ð¸Ñ Ð²Ð° ФутунаСамоаКоÑовоЯманМайоттаЖанубий ÐÑ„" + - "рикаЗамбиÑЗимбабвеÐомаълум минтақаДунёÐфрикаШимолий ÐмерикаЖанубий " + - "ÐмерикаОкеаниÑҒарбий ÐфрикаМарказий ÐмерикаШарқий ÐфрикаШимолий ÐÑ„Ñ€" + - "икаМарказий ÐфрикаЖануби-ÐфрикаÐмерикаШимоли-ÐмерикаКариб ҳавзаÑиШа" + - "рқий ОÑиёЖанубий ОÑиёЖанубий-Шарқий ОÑиёЖанубий ЕвропаÐвÑтралазиÑМе" + - "ланезиÑÐœÐ¸ÐºÑ€Ð¾Ð½ÐµÐ·Ð¸Ñ Ð¼Ð¸Ð½Ñ‚Ð°Ò›Ð°ÑиПолинезиÑОÑиёМарказий ОÑиёҒарбий ОÑиёЕвр" + - "опаШарқий ЕвропаШимолий ЕвропаҒарбий ЕвропаЛотин ÐмерикаÑи", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x001f, 0x002d, 0x005f, 0x0073, 0x0097, 0x00a3, 0x00b1, - 0x00c5, 0x00c5, 0x00d1, 0x00e5, 0x00f7, 0x0114, 0x0122, 0x0134, - 0x013e, 0x0159, 0x016d, 0x0195, 0x01a5, 0x01b7, 0x01c5, 0x01dc, - 0x01ec, 0x01fa, 0x0208, 0x0212, 0x0237, 0x0245, 0x0251, 0x025f, - 0x0284, 0x0294, 0x02b1, 0x02bb, 0x02d0, 0x02e2, 0x02f4, 0x02fe, - 0x030a, 0x0334, 0x034d, 0x0383, 0x03a2, 0x03b4, 0x03c8, 0x03df, - 0x03e7, 0x03f5, 0x03ff, 0x040f, 0x042e, 0x0441, 0x0449, 0x045c, - 0x046a, 0x0487, 0x048f, 0x04b2, 0x04c0, 0x04d7, 0x04e5, 0x04ef, - // Entry 40 - 7F - 0x04ff, 0x052a, 0x0536, 0x0554, 0x0562, 0x0570, 0x0578, 0x059c, - 0x05aa, 0x05b8, 0x05c6, 0x05e3, 0x05f5, 0x060e, 0x0631, 0x0645, - 0x0660, 0x066e, 0x0678, 0x069b, 0x06a9, 0x06b5, 0x06d4, 0x06e0, - 0x06e8, 0x06fa, 0x070e, 0x071a, 0x0726, 0x0738, 0x0759, 0x0765, - 0x07b8, 0x07ca, 0x07d2, 0x07e9, 0x07f3, 0x0813, 0x084f, 0x085f, - 0x086f, 0x0879, 0x0887, 0x08a2, 0x08b4, 0x08c4, 0x08d0, 0x08e1, - 0x08f3, 0x0926, 0x092e, 0x0936, 0x0946, 0x0952, 0x095e, 0x096a, - 0x097a, 0x0986, 0x0990, 0x09a6, 0x09b6, 0x09c6, 0x09e1, 0x0a02, - // Entry 80 - BF - 0x0a1b, 0x0a34, 0x0a40, 0x0a5d, 0x0a71, 0x0a79, 0x0a83, 0x0a96, - 0x0aac, 0x0abd, 0x0acb, 0x0ad7, 0x0ae1, 0x0af5, 0x0b01, 0x0b0b, - 0x0b19, 0x0b25, 0x0b33, 0x0b47, 0x0b5c, 0x0b70, 0x0b8d, 0x0b9f, - 0x0ba7, 0x0bc0, 0x0bd4, 0x0bf0, 0x0c20, 0x0c32, 0x0c46, 0x0c5a, - 0x0c66, 0x0c76, 0x0c95, 0x0ca1, 0x0caf, 0x0cbf, 0x0ccf, 0x0cdd, - 0x0cf8, 0x0d02, 0x0d21, 0x0d2f, 0x0d41, 0x0d57, 0x0d67, 0x0d71, - 0x0d7b, 0x0d83, 0x0d9c, 0x0da6, 0x0db2, 0x0dba, 0x0ddf, 0x0dff, - 0x0e0f, 0x0e1f, 0x0e2b, 0x0e50, 0x0e71, 0x0e86, 0x0ea3, 0x0eb7, - // Entry C0 - FF - 0x0ec1, 0x0ed1, 0x0edb, 0x0ef4, 0x0f02, 0x0f10, 0x0f1c, 0x0f28, - 0x0f34, 0x0f55, 0x0f74, 0x0f91, 0x0f9b, 0x0fa7, 0x0fb7, 0x0fe3, - 0x0ff3, 0x101a, 0x102a, 0x1041, 0x1054, 0x1062, 0x106e, 0x107c, - 0x1095, 0x10ba, 0x10d3, 0x10ea, 0x10f4, 0x1106, 0x1122, 0x114f, - 0x1155, 0x1185, 0x118d, 0x119b, 0x11af, 0x11bd, 0x11d4, 0x11ec, - 0x11f6, 0x1200, 0x120c, 0x122e, 0x123a, 0x1246, 0x1256, 0x1264, - 0x1270, 0x1292, 0x12ab, 0x12b9, 0x12cd, 0x12db, 0x1308, 0x131a, - 0x134e, 0x1378, 0x1386, 0x1394, 0x13b2, 0x13bc, 0x13c8, 0x13d0, - // Entry 100 - 13F - 0x13de, 0x13f9, 0x1405, 0x1415, 0x1434, 0x143c, 0x1448, 0x1465, - 0x1482, 0x1490, 0x14a9, 0x14c8, 0x14e1, 0x14fc, 0x1519, 0x1532, - 0x1540, 0x155b, 0x1574, 0x1589, 0x15a0, 0x15c4, 0x15df, 0x15f5, - 0x1607, 0x162e, 0x1640, 0x1648, 0x1661, 0x1676, 0x1682, 0x169b, - 0x16b6, 0x16cf, 0x16ec, - }, - }, - { // vai - "ꕉꖆꕟꖳꕯꔤꗳ ꕉꕟꔬ ꗡꕆꔓꔻꕉꔱꕭꔕꔻꕚꘋꕉꘋꔳꖶꕎ ê—ª ꕑꖜꕜꕉꕄꕞꕉꔷꕑꕇꕩꕉꕆꕯꘉꕜ ꖨꕮꕊ ꕉꘋꔳꔷꕉê–ꕞꕉꘀꘋꔳꕯꕶꕱ ꕢꕹꕎꖺꔻ" + - "ꖤꕎꖺꖬꖤꔃꔷꕩꕉꖩꕑꕉꕤꕑꔤꕧꘋꕷꔻꕇꕰ ê—ª ꗥꕤꖑꔲꕯꕑꔆê–ꔻꕑꕅꕞꗵꔼꗩꕀꗚꘋꕷꕃꕯ ꕘꖇꗂꔠꔸꕩꕑꗸꘋꖜꖩꔺꗩꕇꘋꗩꖷꕜꖜꖩ" + - "ꘉꔧꕷꔷꔲꕩꖜꕟꔘꔀꕑꕌꕮꔻꖜꕚꘋꕷꖬꕎꕯꗩꕞꖩꔻꔆꔷꔘꕪꕯꕜê–ê– ê—µê—žê–´ê•Ÿê”Ž ꕸꖃꔀꕉꔱꔸꕪ ê—³ ê—³ ꕸꖃꔀê–ê–ꖬꔃꕤ ꖨꕮꕊê–ꔳ" + - " ꕾꕎê–ꕃ ꔳꘋꗣꔚꔷꕪꔈꖩꘋꕦꔤꕯꗛê—ê”­ê•©ê–ꔻꕚ ꔸꕪꕃꖳꕑꔞꔪ ꗲꔵ ꔳꘋꗣꕢꗡꖛê—ꔻꗿꕃ ꕸꖃꔀꕧꕮꔧꕀꖜꔳꕜꕇꕮꕃê–ꕆꕇꕪê–ꕆꕇ" + - "ꕪꘋ ꕸꕱꔀꕉꔷꔠꔸꕩꗡꖴꔃê—ꗡꔻꕿꕇꕰꕆꔖꕞꔀꔸꔳꕟê•ê˜Šê”§ê”¤ê”³ê–Žê”ªê•©ê”±ê˜‹ ꖨꕮꕊꔱꔤꕀꕘꔷꕃ ꖨꕮ ꔳꘋꗣꕆê–ꕇꔻꕩꖢꕟꘋꔻꕭꕷꘋ" + - "ꖕꕯꔤꗳꖶꕟꕯꕜꗘꖺꕀꕩꗱꘋꔻ ꖶꕎꕯꕭꕌꕯꕀꖜꕟꕚꕧꕓ ê–´ê•Ž ꖨꕮꕊꕭꔭꕩꕅꔤꕇꖶꕎê”ꖨꔅꖦꕰꕊ ê—³ ꕅꔤꕇꗥꗷꘋꖶꕎꔎꕮꕞꖶꕎꕆ" + - "ꕅꔤꕇ ꔫꕢꕴꖶꕩꕯꖽꖫꕟê–ꔓꔻꕩꕌꔤꔳꖽꘋꕭꔓꔤꖆꕇꔻꕩꕉꔓ ꖨꕮꕊꕑꕇꔻꕞꔤꕞꔤꔺꕩꔛꔟꔻ ꔤꔺꕩ ꗛꔤꘂ ꕗꕴꔀ ꕮꔤꕟꕃꔤꕟ" + - "ꘋꕉꔤꔻ ꖨꕮꕊꔤꕚꔷꕧꕮꔧꕪꗘꖺꗵꘋꔛꗨꗢꔞꕰꕃꕅꔻꕚꘋꕪꕹꔵꕩꕃꔸꕑꔳê–ꕹꖄꔻꔻꘋ ꕃꔳꔻ ê—ª ꔕꔲꔻê–ꔸꕩ ꗛꔤ ꕪꘋꗒê–ꔸꕩ" + - " ꗛꔤ ꔒꘋꗣ ê—ꖴꔃꔳꔞꔀꕮꘋ ꔳꘋꗣꕪꕤꔻꕚꘋꕞꕴꔻꔒꕑꗟꘋꔻꘋ ꖨꔻꕩꔷꗿꘋꔻꗳꘋꖬꔸ ꕞꘋꕪꕞꔤꔫꕩꔷꖇꕿꔷꖤꔃꕇꕰê—ꔻꘋꗂꖺꕞ" + - "ꔳꔲꕩꔒꔫꕩꗞꕟê–ꗞꕯê–ê–’ê”·ê–ꕙꕮꕜꕭꔻꕪꕮꕊꕣ ꔳꘋꗣꕮꔖê–ꕇꕰꕮꔷꕆꕩꘋꕮꗞê–ꔷꕩꗛꔤ ꕪꘋꗒ ꕮꔸꕩꕯ ꔳꘋꗣꕮꔳꕇꕃꗞꔓꔎꕇ" + - "ꕰꗞꘋꔖꕟꔳꕮꕊꕚꗞꔓꗔꕮꔷꕜê”ꕮꕞꕌꔨꘈꔻê–ꕮꔒꔻꕩꕹꕤꔭꕃꕯꕆꔫꕩꕪꔷê–ꕇꕰ ꕯꕮꕊꕯꔤꕧꗟꖺꗉ ꔳꘋꗣꕯꔤꕀꔸꕩꕇꕪꕟꖶꕎꘉꕜ" + - " ꖨꕮꕊꗟꖺꔃꕇê•ê”·ê–†ê–©ê–¸ê”ƒê”¤ê”½ê”¤ ꖨꕮ ꕯꕮꕊꕱꕮꘋê•ê•¯ê•®ê—¨ê—¡ê–©ê—±ê˜‹ê”» ꕶꔷꕇꔻꕩê•ê–›ê•Ž ꕅꔤꕇ ꕯꕮꕊꔱꔒꔪꘋê•ê•ƒê”»ê•šê˜‹ê•¶ê—·ê˜‹ê”»ê˜‹ " + - "ꔪꘂ ê—ª ꕆꔞê—ꘋꔪꔳꕪꕆꔪꖳꕿ ꔸê–ê•ê”’ꔻꔳꕯ ꔎꔒ ꕀꔤ ꗛꔤ ê•ž ê—± ê—ª ꕭꕌꕤꕶꕿꕃꔤ ꕸꖃꔀê•ê–ƒê•ê•Ÿê—ꔀꕪꕚꕌꔓꗠꖻꖄꕆꕇ" + - "ê•°ê—ê–ºê”»ê•©ê•Ÿê–™ê•¡ê•žê•Œê– ê•¸ê–ƒê”€ê–¬ê•žê”¤ê•®ê•Šê•¯ ꔳꘋꗣꔖꗼꔷꖬꗵꘋꖬꔨꗵꘋꔻꕬꕶꕱꔻꘋ ꗥꔷꕯꔻꖃê”ꕇꕰꔻꖃꕙꕃꕩꔋꕩ ꕒꕌꖺ ꕸꖃꔀꕮ" + - "ꔸꖆ ꕢꘋꔻꕇꕭꕌꖇꕮꔷꕩꖬꔸꕯꔈꕢꕴ ꕿꔈ ê—ª ꕉ ꕮꔧ ꕗꕴꔀꗡꗷ ê•¢ê”ê—ꖺꔻꕩꘋꖬꕎꔽ ꖨꕮꕊꗋꖺꕃꔻ ê—ª ꕪꔤê–ê”» ꔳꘋꗣꕦ" + - "ꔵꕿꖑꕚꔤ ꖨꕮꕊꕚꕀꕃꔻꕚꘋꕿꔞꖃꔎꔒ ê—ƒ ꔳꗞꖻꗋꖺꕃꕮꕇꔻꕚꘋꖤꕇꔻꕩꗋꕬꗋꖺꕃꖤꔸꔕꕜ ê—ª ꕿꔆꖑꕚꖣꖨꕚꔤꕎꘋꕚꘋꕤꕇꕰꖳ" + - "ꖴꔓꘋꖳꕭꕡꕶꕱꖳꔓê—ꔀꖳꗩꕃꔻꕚꘋꔻꘋ ꔲꘋꔻꘋ ê—ª ꖶꔓꕯꔵꘋ ꖸꕙꔳꕪꘋ ꕸꖃꔀꔛꔟꔻ ê—©ê—¡ ê— ê–·ê–¬ ꔳꘋꗣꕶꕱ ê—©ê—¡ ê— " + - "ê–·ê–¬ ꔳꘋꗣꗲꕇꖮꔃꕞꕙꖸꕎꖤꕎꔷꔻ ê—ª ꖢꖤꕯꕢꕹꖙꕉê”ꘈꘋꕮꗚꔎꕉꔱꔸꕪ ꗛꔤ ꔒꘋꗣ ê— ê•¸ê–ƒê”€ê•¤ê”­ê•©ê”½ê•“ê–œê”ƒ", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0009, 0x002c, 0x0041, 0x005e, 0x0067, 0x0076, - 0x007f, 0x009c, 0x00a5, 0x00a5, 0x00b4, 0x00c4, 0x00d0, 0x00e2, - 0x00eb, 0x00eb, 0x00fd, 0x011d, 0x0129, 0x0138, 0x0144, 0x0154, - 0x0160, 0x0169, 0x0172, 0x017b, 0x017b, 0x0184, 0x0190, 0x019c, - 0x019c, 0x01a8, 0x01b4, 0x01bd, 0x01bd, 0x01c9, 0x01d5, 0x01de, - 0x01e7, 0x01e7, 0x0207, 0x0225, 0x022b, 0x023e, 0x024b, 0x025b, - 0x0261, 0x026d, 0x0276, 0x0282, 0x0282, 0x0292, 0x029b, 0x02b2, - 0x02b2, 0x02b2, 0x02c1, 0x02d1, 0x02da, 0x02da, 0x02e3, 0x02ef, - // Entry 40 - 7F - 0x02fb, 0x0314, 0x0323, 0x0323, 0x032f, 0x033e, 0x0347, 0x0347, - 0x0353, 0x035c, 0x036b, 0x036b, 0x037b, 0x0384, 0x039e, 0x03ad, - 0x03ad, 0x03b9, 0x03c2, 0x03ce, 0x03da, 0x03e6, 0x03f9, 0x03f9, - 0x0402, 0x040e, 0x0425, 0x042e, 0x0437, 0x0446, 0x045d, 0x0466, - 0x0466, 0x0475, 0x047e, 0x0491, 0x049a, 0x049a, 0x049a, 0x04a3, - 0x04af, 0x04b8, 0x04c4, 0x04c4, 0x04d3, 0x04e3, 0x04f5, 0x04f5, - 0x04fe, 0x0529, 0x0532, 0x053b, 0x054e, 0x0557, 0x0557, 0x0563, - 0x056f, 0x0578, 0x057e, 0x058d, 0x0599, 0x05a5, 0x05b1, 0x05cf, - // Entry 80 - BF - 0x05e9, 0x0607, 0x0610, 0x0626, 0x0635, 0x063e, 0x064a, 0x065a, - 0x066c, 0x067c, 0x0688, 0x0691, 0x06a0, 0x06af, 0x06bb, 0x06c4, - 0x06cd, 0x06d6, 0x06e2, 0x06e2, 0x06e2, 0x06f1, 0x0704, 0x0713, - 0x0719, 0x0725, 0x0731, 0x0731, 0x0758, 0x0764, 0x0773, 0x0782, - 0x078b, 0x0794, 0x07a0, 0x07ac, 0x07b5, 0x07c1, 0x07cd, 0x07d9, - 0x07f2, 0x07fb, 0x080e, 0x081d, 0x082c, 0x083c, 0x0845, 0x084e, - 0x0854, 0x085d, 0x0874, 0x087d, 0x0886, 0x088f, 0x08a8, 0x08c5, - 0x08d1, 0x08e0, 0x08e9, 0x0907, 0x0913, 0x0923, 0x095d, 0x0973, - // Entry C0 - FF - 0x0979, 0x0985, 0x098e, 0x098e, 0x0997, 0x09a3, 0x09a3, 0x09af, - 0x09b8, 0x09cb, 0x09e7, 0x09f0, 0x09f9, 0x0a05, 0x0a11, 0x0a21, - 0x0a30, 0x0a30, 0x0a3f, 0x0a59, 0x0a69, 0x0a75, 0x0a81, 0x0a8d, - 0x0a8d, 0x0ab3, 0x0ac6, 0x0ac6, 0x0acf, 0x0ae2, 0x0ae2, 0x0b09, - 0x0b0f, 0x0b0f, 0x0b15, 0x0b25, 0x0b37, 0x0b40, 0x0b54, 0x0b6c, - 0x0b78, 0x0b7e, 0x0b87, 0x0ba1, 0x0baa, 0x0bb6, 0x0bc5, 0x0bd1, - 0x0bda, 0x0bda, 0x0be0, 0x0bec, 0x0bfe, 0x0bfe, 0x0c29, 0x0c3f, - 0x0c64, 0x0c86, 0x0c95, 0x0ca1, 0x0cb8, 0x0cc4, 0x0cc4, 0x0ccd, - // Entry 100 - 13F - 0x0cd6, 0x0d01, 0x0d0a, 0x0d16, - }, - }, - { // vai-Latn - "AÅ‹dóraYunaitÉ› Arabhi ÆmireAfigándesitaÅ‹AÅ‹tígwa ÆahabhudaAÅ‹gílaAbhaniyaAm" + - "éniyaNidÉ”lɛŋ AÅ‹tiliAÅ‹gólaAjɛŋtínaPoo SambowaƆÌsituwaƆsituwéeliyaAru" + - "bhaAzabhaijaÅ‹BhÉ”siniyaBhabhedoBhangiladɛ̀shiBhÉ›giyɔŋBhokina FásoBhÉ”g" + - "eriyaBharɛŋBhurundiBhÉ›niBhÉ›mudaBhurunɛĩBholiviyaBhurazeliBahámasiBhu" + - "taÅ‹BhosuwanaBhÉ›larusiBhelizKánádaAvorekooÃfíríka Lumaã TÉ› BoloeKóngo" + - "Suweza LumaãKódivówaKóki TiÅ‹Å‹É›ChéliKameruÅ‹CháínaKÉ”lÉ”mbiyaKósíta Ríko" + - "KiyubhaKepi VÉ›di TiÅ‹Å‹É›SaÉ›purÉ”ChÉ›ki BoloeJamáĩJibhutiDanimahaDomíiník" + - "aDomíiníka ÆoloeAgiriyaÆÌkúwédÉ”ÆsitóninyaMísélaÆriteraPanyɛĩÃtiyópiy" + - "aFiÅ‹lɛŋFíjiFáháki Luma TiÅ‹Å‹É›MikonisiyaFɛŋsiGabhɔŋYunaitÉ› KíŋdɔŋGurin" + - "édaJɔɔjiyaFɛŋsi GiwanaGanaJibhurataJamba Kuwa LumaãGambiyaGiniGuwad" + - "elupeDúúnyá TÉ› GiiniHÉ›lɛŋGuwatÉ›malaGuwamiGini BhisawoGuyanaHÉ”nduraKo" + - "resiyaHáitiHÉ”ÌngareÃndonisiyaÃre LumaãBhanísiláilaÃndiyaJengéesi Gba" + - "woe Ãndiya KÉ”iyÉ› LÉ”IrakiIraÅ‹Ãisi LumaãÃtaliJamaikaJɔɔdaÅ‹JapaÅ‹KényaKi" + - "gisitaÅ‹KaÅ‹bhodiyaKiribhatiKomorosiSiÅ‹ Kisi É“É›Ì NevisiKoriya KÉ”i KaÅ‹n" + - "dÉ”Koriya KÉ”i LeÅ‹Å‹É› LÉ”KuwetiKeemaÅ‹ TiÅ‹Å‹É›KazasitaÅ‹LawosiLebhanÉ”SiÅ‹ Lus" + - "iyaSuri LaÅ‹kaLaibhiyaLisótoLituweninyaLusimbÉ”LativiyaLebhiyaMÉ”rokoMÉ”" + - "nakoMÉ”lidovaMadagasitaMasha TiÅ‹Å‹É›MasedoninyaMaliMiyamahaMÉ”ngoliyaKÉ”i" + - " KaÅ‹ndÉ” Mariyana TiÅ‹Å‹É›MatinikiMÉ”retaninyaMÉ”seratiMalitaMÉ”reshÉ”Malida" + - "viMalawiMÉ›síkoMalesiyaMozambikiNamibiyaKalidoninya NámaáNaÄ©jaNÉ”fÉ” Ti" + - "Å‹Å‹É›NaÄ©jiriyaNikaraguwaNidÉ”lɛŋNɔɔweNepaNoruNiweZilɛŋ NámaáOmaÅ‹Panama" + - "PÉ›ruFɛŋsi PolinísiyaPapuwa Gini NámaáFélepiÅ‹PakisitaÅ‹PólɛŋSiÅ‹ PiiyÉ› " + - "É“É›Ì MikelɔŋPitikɛŋPiyuto RikoPalesitininya Tele Jii KÉ”iyÉ› lá hÄ© Gaz" + - "aPotokíiPaloParagÉ”eKatahaRenyɔɔ̃RomininyaRÉ”shiyaRawundaLahabuSulaima" + - "ãna TiÅ‹Å‹É›SeshɛɛSudɛŋSuwidɛŋSíingapooSiÅ‹ HÉ›linaSuloveninyaSulovakiya" + - "Gbeya BahawÉ”SaÅ‹ MarindoSinigahaSomaliyaSurinambeSawo Tombe É“É› a Gbaw" + - "oeÆlÉ› SávádÉ”SíyaÅ‹Suwazi LumaãTukisi ɓɛ̀ Kaikóosi TiÅ‹Å‹É›ChádiTogoTai L" + - "umaãTajikisitaÅ‹TokeloTele ÆÉ”Ì Timɔɔ̃TukimÉ›nisitaÅ‹TunisiyaTÉ”ngaTÉ”ÌÉ”Ìk" + - "iTurindeda É“É›Ì TobhegoTuváluTaiwaÅ‹TaÅ‹zaninyaYukuréŋYugandaPooYuwegÉ”w" + - "eYubhÉ›kisitaÅ‹VatikaÅ‹ ÆoloeSiÅ‹ ViÅ‹siVÉ›nÉ›zuwelaJengéesi Bhɛɛ LÉ” Musu T" + - "iÅ‹Å‹É›Poo Bhɛɛ lÉ” Musu TiÅ‹Å‹É›ViyanamiVanuwátuWalísiSamowaYemÉ›niMavoteAf" + - "irika KÉ”i LeÅ‹Å‹É› LÉ”ZambiyaZimbabhuwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0008, 0x001e, 0x002d, 0x0041, 0x0049, 0x0051, - 0x0059, 0x006b, 0x0073, 0x0073, 0x007e, 0x0089, 0x0093, 0x00a1, - 0x00a7, 0x00a7, 0x00b2, 0x00bc, 0x00c4, 0x00d4, 0x00df, 0x00ec, - 0x00f6, 0x00fe, 0x0106, 0x010c, 0x010c, 0x0114, 0x011e, 0x0127, - 0x0127, 0x0130, 0x0139, 0x0140, 0x0140, 0x0149, 0x0153, 0x0159, - 0x0161, 0x0161, 0x0169, 0x0184, 0x018a, 0x0197, 0x01a1, 0x01af, - 0x01b5, 0x01bd, 0x01c5, 0x01d0, 0x01d0, 0x01de, 0x01e5, 0x01f8, - 0x01f8, 0x01f8, 0x0201, 0x020d, 0x0214, 0x0214, 0x021b, 0x0223, - // Entry 40 - 7F - 0x022e, 0x0240, 0x0247, 0x0247, 0x0254, 0x0260, 0x0268, 0x0268, - 0x0270, 0x0278, 0x0283, 0x0283, 0x028c, 0x0291, 0x02a7, 0x02b1, - 0x02b1, 0x02b8, 0x02c0, 0x02d3, 0x02dc, 0x02e5, 0x02f3, 0x02f3, - 0x02f7, 0x0300, 0x0311, 0x0318, 0x031c, 0x0326, 0x0339, 0x0341, - 0x0341, 0x034c, 0x0352, 0x035e, 0x0364, 0x0364, 0x0364, 0x036c, - 0x0374, 0x037a, 0x0384, 0x0384, 0x038f, 0x039a, 0x03a8, 0x03a8, - 0x03af, 0x03d3, 0x03d8, 0x03dd, 0x03e9, 0x03ef, 0x03ef, 0x03f6, - 0x03ff, 0x0405, 0x040b, 0x0415, 0x0420, 0x0429, 0x0431, 0x0448, - // Entry 80 - BF - 0x045c, 0x0474, 0x047a, 0x048a, 0x0494, 0x049a, 0x04a2, 0x04ad, - 0x04ad, 0x04b8, 0x04c0, 0x04c7, 0x04d2, 0x04da, 0x04e2, 0x04e9, - 0x04f0, 0x04f7, 0x0500, 0x0500, 0x0500, 0x050a, 0x0518, 0x0523, - 0x0527, 0x052f, 0x0539, 0x0539, 0x0558, 0x0560, 0x056c, 0x0575, - 0x057b, 0x0584, 0x058c, 0x0592, 0x059a, 0x05a2, 0x05ab, 0x05b3, - 0x05c6, 0x05cc, 0x05db, 0x05e5, 0x05ef, 0x05f9, 0x0600, 0x0604, - 0x0608, 0x060c, 0x061b, 0x0620, 0x0626, 0x062b, 0x063e, 0x0651, - 0x065a, 0x0664, 0x066c, 0x0688, 0x0691, 0x069c, 0x06c7, 0x06cf, - // Entry C0 - FF - 0x06d3, 0x06db, 0x06e1, 0x06e1, 0x06eb, 0x06f4, 0x06f4, 0x06fc, - 0x0703, 0x0709, 0x071d, 0x0725, 0x072c, 0x0735, 0x073f, 0x074b, - 0x0756, 0x0756, 0x0760, 0x076d, 0x0779, 0x0781, 0x0789, 0x0792, - 0x0792, 0x07aa, 0x07b9, 0x07b9, 0x07c0, 0x07cd, 0x07cd, 0x07ed, - 0x07f3, 0x07f3, 0x07f7, 0x0801, 0x080d, 0x0813, 0x0828, 0x0837, - 0x083f, 0x0845, 0x0850, 0x0868, 0x086f, 0x0876, 0x0881, 0x088a, - 0x0891, 0x0891, 0x0894, 0x089d, 0x08ab, 0x08ba, 0x08c5, 0x08d1, - 0x08f3, 0x090f, 0x0917, 0x0920, 0x0927, 0x092d, 0x092d, 0x0934, - // Entry 100 - 13F - 0x093a, 0x0953, 0x095a, 0x0964, - }, - }, - { // vi - viRegionStr, - viRegionIdx, - }, - { // vun - "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + - "iaAntili za UholanziAngolaAjentinaSamoa ya MarekaniAustriaAustraliaA" + - "rubaAzabajaniBosnia na HezegovinaBabadosiBangladeshiUbelgijiBukinafa" + - "soBulgariaBahareniBurundiBeniniBermudaBruneiBoliviaBraziliBahamaButa" + - "niBotswanaBelarusiBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhur" + - "i ya Afrika ya KatiKongoUswisiKodivaaVisiwa vya CookChileKameruniChi" + - "naKolombiaKostarikaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibut" + - "iDenmakiDominikaJamhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaH" + - "ispaniaUhabeshiUfiniFijiVisiwa vya FalklandMikronesiaUfaransaGaboniU" + - "ingerezaGrenadaJojiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaG" + - "ineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKor" + - "asiaHaitiHungariaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza kati" + - "ka Bahari HindiIrakiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKir" + - "igizistaniKambodiaKiribatiKomoroSantakitzi na NevisKorea KaskaziniKo" + - "rea KusiniKuwaitiVisiwa vya KaymanKazakistaniLaosiLebanoniSantalusia" + - "LishenteniSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoM" + - "onakoMoldovaBukiniVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa" + - " vya Mariana vya KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiMo" + - "divuMalawiMeksikoMalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha " + - "NorfokNijeriaNikaragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPan" + - "amaPeruPolinesia ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri " + - "na MikeloniPitkairniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza w" + - "a PalestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiV" + - "isiwa vya SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaSl" + - "ovakiaSiera LeoniSamarinoSenegaliSomaliaSurinamuSao Tome na Principe" + - "ElsavadoSiriaUswaziVisiwa vya Turki na KaikoChadiTogoTailandiTajikis" + - "taniTokelauTimori ya MasharikiTurukimenistaniTunisiaTongaUturukiTrin" + - "idad na TobagoTuvaluTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibe" + - "kistaniVatikaniSantavisenti na GrenadiniVenezuelaVisiwa vya Virgin v" + - "ya UingerezaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWalis na F" + - "utunaSamoaYemeniMayotteAfrika KusiniZambiaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, - 0x004a, 0x005c, 0x0062, 0x0062, 0x006a, 0x007b, 0x0082, 0x008b, - 0x0090, 0x0090, 0x0099, 0x00ad, 0x00b5, 0x00c0, 0x00c8, 0x00d2, - 0x00da, 0x00e2, 0x00e9, 0x00ef, 0x00ef, 0x00f6, 0x00fc, 0x0103, - 0x0103, 0x010a, 0x0110, 0x0116, 0x0116, 0x011e, 0x0126, 0x012c, - 0x0132, 0x0132, 0x0152, 0x016b, 0x0170, 0x0176, 0x017d, 0x018c, - 0x0191, 0x0199, 0x019e, 0x01a6, 0x01a6, 0x01af, 0x01b3, 0x01bb, - 0x01bb, 0x01bb, 0x01c2, 0x01d2, 0x01db, 0x01db, 0x01e1, 0x01e8, - // Entry 40 - 7F - 0x01f0, 0x0203, 0x020a, 0x020a, 0x0210, 0x0217, 0x021c, 0x021c, - 0x0223, 0x022b, 0x0233, 0x0233, 0x0238, 0x023c, 0x024f, 0x0259, - 0x0259, 0x0261, 0x0267, 0x0270, 0x0277, 0x027c, 0x028f, 0x028f, - 0x0294, 0x029c, 0x02a5, 0x02ab, 0x02af, 0x02b8, 0x02c1, 0x02c8, - 0x02c8, 0x02d1, 0x02d5, 0x02de, 0x02e4, 0x02e4, 0x02e4, 0x02ed, - 0x02f4, 0x02f9, 0x0301, 0x0301, 0x030a, 0x0312, 0x0319, 0x0319, - 0x031e, 0x0343, 0x0348, 0x034e, 0x0356, 0x035c, 0x035c, 0x0363, - 0x036a, 0x0370, 0x0375, 0x0382, 0x038a, 0x0392, 0x0398, 0x03ab, - // Entry 80 - BF - 0x03ba, 0x03c6, 0x03cd, 0x03de, 0x03e9, 0x03ee, 0x03f6, 0x0400, - 0x040a, 0x0413, 0x041a, 0x0420, 0x0428, 0x0431, 0x0438, 0x043d, - 0x0443, 0x0449, 0x0450, 0x0450, 0x0450, 0x0456, 0x0468, 0x0471, - 0x0475, 0x047a, 0x0482, 0x0482, 0x04a2, 0x04ab, 0x04b4, 0x04bf, - 0x04c4, 0x04ca, 0x04d0, 0x04d6, 0x04dd, 0x04e4, 0x04ec, 0x04f3, - 0x04ff, 0x0505, 0x0516, 0x051d, 0x0526, 0x052e, 0x0533, 0x0539, - 0x053e, 0x0542, 0x054c, 0x0551, 0x0557, 0x055b, 0x0570, 0x0575, - 0x057d, 0x0586, 0x058d, 0x05a3, 0x05ac, 0x05b5, 0x05e7, 0x05ec, - // Entry C0 - FF - 0x05f1, 0x05f9, 0x05ff, 0x05ff, 0x0608, 0x060f, 0x060f, 0x0614, - 0x061a, 0x061f, 0x0631, 0x063b, 0x0641, 0x0647, 0x064f, 0x065a, - 0x0662, 0x0662, 0x066a, 0x0675, 0x067d, 0x0685, 0x068c, 0x0694, - 0x0694, 0x06a8, 0x06b0, 0x06b0, 0x06b5, 0x06bb, 0x06bb, 0x06d4, - 0x06d9, 0x06d9, 0x06dd, 0x06e5, 0x06f0, 0x06f7, 0x070a, 0x0719, - 0x0720, 0x0725, 0x072c, 0x073e, 0x0744, 0x074b, 0x0753, 0x075a, - 0x0760, 0x0760, 0x0768, 0x076f, 0x077b, 0x0783, 0x079c, 0x07a5, - 0x07c4, 0x07e2, 0x07eb, 0x07f2, 0x0801, 0x0806, 0x0806, 0x080c, - // Entry 100 - 13F - 0x0813, 0x0820, 0x0826, 0x082e, - }, - }, - { // wae - "HimmelfártsinslaAndorraVereinigti ArabiÅ¡e EmiratAfganiÅ¡tanAntigua und Ba" + - "rbudaAnguillaAlbanieArmenieHoländiÅ¡i AntilläAngolaAntarktisArgentini" + - "eAmerikaniÅ¡ SamoaÖštriÄAustralieArubaAlandinsläAserbaidÅ¡anBosnie und" + - " HerzegovinaBarbadosBangladeÅ¡BelgieBurkina FasoBulgarieBaÄrainBurund" + - "iBeninSt. Bartholomäus-InslaBermudaBruneiBoliwieBrasilieBahamasBhuta" + - "nBouvetinslaBotswanaWísrusslandBelizeKanadaKokosinsläKongo-KinshasaZ" + - "entralafrikaniÅ¡i RebublikKongo BrazzavilleSchwizElfebeiküštaCookinsl" + - "äTÅ¡ileKamerunChinaKolumbieClipperton InslaCosta RicaKubaKap VerdeWi" + - "enäÄtsinsläZypreTÅ¡eÄieTitÅ¡landDiego GarciaDÅ¡ibutiDänemarkDoninicaDom" + - "inikaniÅ¡i RebublikAlgerieCeuta und MelillaEcuadorEÅ¡tlandEgypteWeÅ¡tsa" + - "haraEritreaSchpanieEthiopieEuropäiÅ¡i UnioFinnlandFidÅ¡iFalklandinsläM" + - "ikronesieFäröeFrankriÄGabonEnglandGrenadaGeorgieFranzösiÅ¡ GuianaGuer" + - "nseyGanaGibraltarGrönlandGambiaGineaGuadeloupeEquatorialgineaGriÄela" + - "ndSüdgeorgie und d’südliÄe SenwiÄinsläGuatemalaGuamGinea BissauGuyan" + - "aSonderverwaltigszona HongkongHeard- und McDonald-InsläHondurasKroat" + - "ieHaitiUngareKanariÅ¡e InsläIndonesieIrlandIsraelIsle of ManIndieBrit" + - "iÅ¡es Territorium em indiÅ¡e OzeanIrakIranIslandItalieJerseyJamaikaJor" + - "danieJapanKenyaKirgiÅ¡tanKambodÅ¡aKiribatiKomoreSt. Kitts und NevisNor" + - "dkoreaSüdkoreaKuweitKaimaninsläKasaÄstanLaosLibanonSt. LuciaLieÄteÅ¡t" + - "eiSri LankaLiberiaLesothoLitaueLuxeburgLettlandLübieMarokoMonagoMold" + - "auMontenegroSt. MartinMadagaskarMarÅ¡alinsläMazedonieMaliBurmaMongole" + - "iSonderverwaltigszona MakauNördliÄi MarianeMartiniqueMauretanieMonse" + - "rratMaltaMauritiusMalediweMalawiMexikoMalaysiaMosambikNamibiaNiwkale" + - "donieNigerNorfolkinslaNigeriaNicaraguaHolandNorwägeNepalNauruNiueNiw" + - "sélandOmanPanamaPeruFranzösiÅ¡ PolinesiePapua NiwgineaPhilippinePakiÅ¡" + - "tanPoleSt. Pierre und MiquelonPitcairnPuerto RicoPaleÅ¡tinaPortugalPa" + - "lauParaguaiKatarÃœssers OzeanieRéunionRumänieSerbieRusslandRuandaSaud" + - "i ArabieSalomoneSeÄelleSudanSchwedeSingapurSt. HelenaSlowenieSvalbar" + - "d und Jan MayenSlowakeiSierra LeoneSan MarinoSenegalSomaliaSurinameS" + - "ão Tomé and PríncipeEl SalvadorSürieSwasilandTristan da CunhaTurks-" + - " und CaicosinsläTÅ¡adFranzösiÅ¡i Süd- und AntarktisgebietTogoThailandT" + - "adÅ¡ikistanTokelauOÅ¡ttimorTurkmeniÅ¡tanTunesieTongaTürkeiTrinidad und " + - "TobagoTuvaluTaiwanTansaniaUkraineUgandaAmerikaniÅ¡ OzeanieAmerikaUrug" + - "auyUsbekiÅ¡tanVatikanSt. Vincent und d’GrenadineVenezuelaBritiÅ¡i Jung" + - "fröiwinsläAmerikaniÅ¡i JungfröiwinsläVietnamVanuatuWallis und FutunaS" + - "amoaJémeMoyetteSüdafrikaSambiaSimbabweUnbekannti RegioWäldAfrikaNord" + - "amerikaSüdamerikaOzeanieWeÅ¡tafrikaZentralamerikaOÅ¡tafrikaNordafrikaM" + - "ittelafrikaSüdliÄs AfrikaAmerikaniÅ¡ KontinäntNördliÄs AmerikaKaribik" + - "OÅ¡tasieSüdasieSüdoÅ¡tasieSüdeuropaAuÅ¡tralie und NiwsélandMelanesieMik" + - "ronesiÅ¡es InselgebietPolinesieAsieZentralasieWeÅ¡tasieEuropaOÅ¡teuropa" + - "NordeuropaWeÅ¡teuropaLatíamerika", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0011, 0x0018, 0x0032, 0x003d, 0x0050, 0x0058, 0x005f, - 0x0066, 0x007a, 0x0080, 0x0089, 0x0093, 0x00a4, 0x00ad, 0x00b6, - 0x00bb, 0x00c6, 0x00d2, 0x00e8, 0x00f0, 0x00fa, 0x0100, 0x010c, - 0x0114, 0x011c, 0x0123, 0x0128, 0x013f, 0x0146, 0x014c, 0x0153, - 0x0153, 0x015b, 0x0162, 0x0168, 0x0173, 0x017b, 0x0187, 0x018d, - 0x0193, 0x019e, 0x01ac, 0x01c7, 0x01d8, 0x01de, 0x01ec, 0x01f6, - 0x01fc, 0x0203, 0x0208, 0x0210, 0x0220, 0x022a, 0x022e, 0x0237, - 0x0237, 0x0247, 0x024c, 0x0254, 0x025d, 0x0269, 0x0271, 0x027a, - // Entry 40 - 7F - 0x0282, 0x0298, 0x029f, 0x02b0, 0x02b7, 0x02bf, 0x02c5, 0x02d0, - 0x02d7, 0x02df, 0x02e7, 0x02f7, 0x02ff, 0x0305, 0x0313, 0x031d, - 0x0324, 0x032d, 0x0332, 0x0339, 0x0340, 0x0347, 0x0359, 0x0361, - 0x0365, 0x036e, 0x0377, 0x037d, 0x0382, 0x038c, 0x039b, 0x03a5, - 0x03d0, 0x03d9, 0x03dd, 0x03e9, 0x03ef, 0x040c, 0x0426, 0x042e, - 0x0435, 0x043a, 0x0440, 0x0450, 0x0459, 0x045f, 0x0465, 0x0470, - 0x0475, 0x049b, 0x049f, 0x04a3, 0x04a9, 0x04af, 0x04b5, 0x04bc, - 0x04c4, 0x04c9, 0x04ce, 0x04d8, 0x04e1, 0x04e9, 0x04ef, 0x0502, - // Entry 80 - BF - 0x050b, 0x0514, 0x051a, 0x0526, 0x0530, 0x0534, 0x053b, 0x0544, - 0x0550, 0x0559, 0x0560, 0x0567, 0x056d, 0x0575, 0x057d, 0x0583, - 0x0589, 0x058f, 0x0595, 0x059f, 0x05a9, 0x05b3, 0x05c0, 0x05c9, - 0x05cd, 0x05d2, 0x05da, 0x05f4, 0x0606, 0x0610, 0x061a, 0x0623, - 0x0628, 0x0631, 0x0639, 0x063f, 0x0645, 0x064d, 0x0655, 0x065c, - 0x0668, 0x066d, 0x0679, 0x0680, 0x0689, 0x068f, 0x0697, 0x069c, - 0x06a1, 0x06a5, 0x06af, 0x06b3, 0x06b9, 0x06bd, 0x06d2, 0x06e0, - 0x06ea, 0x06f3, 0x06f7, 0x070e, 0x0716, 0x0721, 0x072b, 0x0733, - // Entry C0 - FF - 0x0738, 0x0740, 0x0745, 0x0754, 0x075c, 0x0764, 0x076a, 0x0772, - 0x0778, 0x0784, 0x078c, 0x0794, 0x0799, 0x07a0, 0x07a8, 0x07b2, - 0x07ba, 0x07d0, 0x07d8, 0x07e4, 0x07ee, 0x07f5, 0x07fc, 0x0804, - 0x0804, 0x081c, 0x0827, 0x0827, 0x082d, 0x0836, 0x0846, 0x085d, - 0x0862, 0x0888, 0x088c, 0x0894, 0x08a0, 0x08a7, 0x08b0, 0x08bd, - 0x08c4, 0x08c9, 0x08d0, 0x08e3, 0x08e9, 0x08ef, 0x08f7, 0x08fe, - 0x0904, 0x0917, 0x091e, 0x0925, 0x0930, 0x0937, 0x0954, 0x095d, - 0x0976, 0x0993, 0x099a, 0x09a1, 0x09b2, 0x09b7, 0x09b7, 0x09bc, - // Entry 100 - 13F - 0x09c3, 0x09cd, 0x09d3, 0x09db, 0x09eb, 0x09f0, 0x09f6, 0x0a01, - 0x0a0c, 0x0a13, 0x0a1e, 0x0a2c, 0x0a36, 0x0a40, 0x0a4c, 0x0a5c, - 0x0a72, 0x0a84, 0x0a8b, 0x0a93, 0x0a9b, 0x0aa7, 0x0ab1, 0x0aca, - 0x0ad3, 0x0aec, 0x0af5, 0x0af9, 0x0b04, 0x0b0d, 0x0b13, 0x0b1d, - 0x0b27, 0x0b32, 0x0b3e, - }, - }, - { // xog - "AndoraEmireetiAfaganisitaniAntigwa ni BarabudaAngwilaAlibaniyaArameniyaE" + - "bizinga bya Antile by’abaHolandiAngolaArigentinaSamowa omumerikaAwus" + - "ituriyaAwusitureliyaArubaAzerebayijaaniBoziniya HezegovinaBarabadosi" + - "BangaladesiBubirigiBurukina FasoBulugariyaBaareeniBurundiBeniniBerem" + - "udaBurunayiBoliviyaBuraziiriBahamasiButaaniBotiswanaBelarusiBelizeKa" + - "nadaKongo - ZayireLipabulika ya SenturafirikiKongoSwitizirandiKote D" + - "ivwaEbizinga bya KkukiCileKameruuniCayinaKolombyaKosita RikaCubaEbiz" + - "inga bya Kepu VerediSipuriyaLipabulika ya CeekaBudaakiJjibutiDenimaa" + - "kaDominikaLipabulika ya DominikaAligeryaEkwadoEsitoniyaMisiriEriture" + - "yaSipeyiniEsyopyaFinilandiFijiEbiizinga bya FalikalandiMikuronezyaBu" + - "falansaGaboniBungerezaGurenadaGyogyaGuyana enfalansaGanaGiburalitaGu" + - "renelandiGambyaGiniGwadalupeGayana yaku ekwetaBuyonaaniGwatemalaGwam" + - "uGini-BisawuGayanaHundurasiKurowesyaHayitiHangareYindonezyaAyalandiY" + - "isirayeriBuyindiEbizinga bya CagoYiraakaYiraaniAyisirandiYitaleJamay" + - "ikaYorodaniJapaniKenyaKirigizisitaaniKambodyaKiribatiEbizinga bya Ko" + - "moroSenti Kitisi ne NevisiKoreya eya mumambukaKoreya eya mumaserenge" + - "taKuwetiEbizinga bya KayimaaniKazakisitaaniLawosiLebanoniSenti Luciy" + - "aLicitensitayiniSirilankaLiberyaLesosoLisuwenyaLukisembaagaLativyaLi" + - "byaMorokoMonakoMolodovaMadagasikaBizinga bya MarisoMasedoniyaMaliMya" + - "nimaMongoliyaBizinga bya Mariyana ebyamumambukaMaritiniikiMawuliteny" + - "aMonteseraatiMalitaMawulisyasiEbizinga bya MalidiveMalawiMekisikoMal" + - "ezyaMozambiikiNamibiyaKaledonya mupyaNijeKizinga ky’eNorofokoNayijer" + - "yaNikaraguwaHolandiNoweNepaloNawuruNiyuweNiyuziirandiOmaaniPanamaPer" + - "uPolinesiya enfalansaPapwa NyuginiEbizinga bya FiripinoPakisitaaniPo" + - "landiSenti Piyere ni MikeloniPitikeeniPotorikoPalesitayini ni GazaPo" + - "tugaaliPalawuParagwayiKataaLeyunyoniLomaniyaLasaRwandaSawudarebyaEbi" + - "zanga bya SolomooniSesereSudaaniSwideniSingapowaSenti HerenaSiroveny" + - "aSirovakyaSiyeralewoneSanimarinoSenegaaloSomaliyaSurinaamuSanitome n" + - "i PurincipeEl salivadoSiriyaSwazirandiEbizinga bya Taaka ni Kayikosi" + - "CaadiTogoTayirandiTajikisitaaniTokelawuTimowaTakimenesitaaniTunisyaT" + - "ongaTtakeTurindaadi ni TobagoTuvaluTayiwaniYukurayineYugandaAmerikaW" + - "urugwayiWuzibekisitaaniVatikaaniSenti Vinsenti ni GurendadiiniVenzwe" + - "raEbizinga bya Virigini ebitwalibwa BungerezaEbizinga bya Virigini e" + - "by’AmerikaVyetinaamuVanawuwatuWalisi ni FutunaSamowaYemeniMayotteSaw" + - "usafirikaZambyaZimbabwe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0006, 0x000e, 0x001b, 0x002e, 0x0035, 0x003e, - 0x0047, 0x006a, 0x0070, 0x0070, 0x007a, 0x008a, 0x0095, 0x00a2, - 0x00a7, 0x00a7, 0x00b5, 0x00c8, 0x00d2, 0x00dd, 0x00e5, 0x00f2, - 0x00fc, 0x0104, 0x010b, 0x0111, 0x0111, 0x0119, 0x0121, 0x0129, - 0x0129, 0x0132, 0x013a, 0x0141, 0x0141, 0x014a, 0x0152, 0x0158, - 0x015e, 0x015e, 0x016c, 0x0187, 0x018c, 0x0198, 0x01a2, 0x01b4, - 0x01b8, 0x01c1, 0x01c7, 0x01cf, 0x01cf, 0x01da, 0x01de, 0x01f6, - 0x01f6, 0x01f6, 0x01fe, 0x0211, 0x0218, 0x0218, 0x021f, 0x0228, - // Entry 40 - 7F - 0x0230, 0x0246, 0x024e, 0x024e, 0x0254, 0x025d, 0x0263, 0x0263, - 0x026c, 0x0274, 0x027b, 0x027b, 0x0284, 0x0288, 0x02a1, 0x02ac, - 0x02ac, 0x02b5, 0x02bb, 0x02c4, 0x02cc, 0x02d2, 0x02e2, 0x02e2, - 0x02e6, 0x02f0, 0x02fb, 0x0301, 0x0305, 0x030e, 0x0320, 0x0329, - 0x0329, 0x0332, 0x0337, 0x0342, 0x0348, 0x0348, 0x0348, 0x0351, - 0x035a, 0x0360, 0x0367, 0x0367, 0x0371, 0x0379, 0x0383, 0x0383, - 0x038a, 0x039b, 0x03a2, 0x03a9, 0x03b3, 0x03b9, 0x03b9, 0x03c1, - 0x03c9, 0x03cf, 0x03d4, 0x03e3, 0x03eb, 0x03f3, 0x0406, 0x041c, - // Entry 80 - BF - 0x0430, 0x0448, 0x044e, 0x0464, 0x0471, 0x0477, 0x047f, 0x048b, - 0x049a, 0x04a3, 0x04aa, 0x04b0, 0x04b9, 0x04c5, 0x04cc, 0x04d1, - 0x04d7, 0x04dd, 0x04e5, 0x04e5, 0x04e5, 0x04ef, 0x0501, 0x050b, - 0x050f, 0x0516, 0x051f, 0x051f, 0x0541, 0x054c, 0x0557, 0x0563, - 0x0569, 0x0574, 0x0589, 0x058f, 0x0597, 0x059e, 0x05a8, 0x05b0, - 0x05bf, 0x05c3, 0x05d9, 0x05e2, 0x05ec, 0x05f3, 0x05f7, 0x05fd, - 0x0603, 0x0609, 0x0615, 0x061b, 0x0621, 0x0625, 0x0639, 0x0646, - 0x065b, 0x0666, 0x066d, 0x0685, 0x068e, 0x0696, 0x06aa, 0x06b3, - // Entry C0 - FF - 0x06b9, 0x06c2, 0x06c7, 0x06c7, 0x06d0, 0x06d8, 0x06d8, 0x06dc, - 0x06e2, 0x06ed, 0x0703, 0x0709, 0x0710, 0x0717, 0x0720, 0x072c, - 0x0735, 0x0735, 0x073e, 0x074a, 0x0754, 0x075d, 0x0765, 0x076e, - 0x076e, 0x0783, 0x078e, 0x078e, 0x0794, 0x079e, 0x079e, 0x07bc, - 0x07c1, 0x07c1, 0x07c5, 0x07ce, 0x07db, 0x07e3, 0x07e9, 0x07f8, - 0x07ff, 0x0804, 0x0809, 0x081d, 0x0823, 0x082b, 0x082b, 0x0835, - 0x083c, 0x083c, 0x0843, 0x084c, 0x085b, 0x0864, 0x0882, 0x088a, - 0x08b5, 0x08d8, 0x08e2, 0x08ec, 0x08fc, 0x0902, 0x0902, 0x0908, - // Entry 100 - 13F - 0x090f, 0x091b, 0x0921, 0x0929, - }, - }, - { // yav - "AÅ‹túlaimiláat i paaláapAfkanistáŋAÅ‹tíka na PalpútaAÅ‹kílaAlpaníAlmaníaand" + - "íiy u nitililáandAÅ‹kúlaAlsaÅ‹tínSámua u AmelíkaOtilísOtalalíAlúpaAsÉ›" + - "lpaisáŋPusiní-É›lkofínaPalpatósPaÅ‹kalatÉ›sPÉ›lsíikPulikínafásóPulukalíi" + - "PalɛŋPúlúndíPenɛŋPÉ›lmútaPulunéyPolífiaPilesílPahámasPutaÅ‹PosuánaPela" + - "lúsPelíseKánátakitɔŋ kí kongóSantalafilíikKongósuwíisKótifualÉ›KúukeS" + - "ilíKemelúnSíineKÉ”lÉ”ÌmbíaKóstálíkakúpaKápfÉ›lsíplÉ›kitɔŋ kí cÉ›Ìknsámans" + - "íputítanemálktúmúnékekitɔŋ kí tumunikÉ›ÌÅ‹AlselíekuatÉ›ÌlÉ›stoniisípite" + - "litéepanyáetiopífÉ›nlándfísimaluwínmikolonesífelensíkapÉ”ÌÅ‹ingilíískel" + - "enáatsÉ”lsíikuyáan u felensíkanásílpalatáalkuluÉ›nlándkambíikiinékuate" + - "lúupkinéekuatolialkilÉ›ÌÉ›kkuatemalákuamiÉ›kiinépisaókuyáanÉ”ndúlasKolow" + - "asíiayítiÉ”ngilíɛndonesíililándísilayÉ›ÌlÉ›ÌÉ›ndKɔɔÌm kí ndián yi ngilís" + - "ilákiláŋisláanditalísamayíiksÉ”ltanísapÉ”ÌɔŋkéniakilikisistáŋKámbóseki" + - "lipatíKÉ”mÉ”ÌÉ”lsÉ›ÌÅ‹kilistÉ”Ìf eniÉ›ÌfkÉ”lé u muÉ›nÉ›ÌkÉ”lé wu mbátkowéetKáyí" + - "manÉ›kasaksitáŋlawóslipáŋsÉ›ÌÅ‹tÉ›ÌlusílístÉ›Ìnsitáyinsilíláŋkalipéliales" + - "otólitiyaníliksambúulletonílipíimalóokmonakómoltafímatakaskáalílmala" + - "sáalmasetuánmalímiaÅ‹máalmongolíil maliyanÉ› u muÉ›nÉ›Ìmaltiníikmolitaní" + - "mɔŋsilámálÉ›ÌtmolísmaletíifmalawímÉ›ksíikmalesímosambíknamipínufÉ›Ìl ka" + - "letonínisÉ›ÌÉ›lil nÉ”ÌlfÉ”ÌlÉ”knisélianikalakánitililáandnÉ”lfÉ›ÌÉ›snepáalna" + - "wulúniyuwénufÉ›Ìl seláandomáŋpanamápelúpolinesí u felensípapuasí nufÉ›" + - "Ìl kiinéfilipíinpakistáŋpÉ”lÉ”ÌÉ”nysÉ›ÌÅ‹piÉ›Ìl e mikelÉ”ÌÅ‹pitikÉ›ÌÉ›línÉ›Ìpó" + - "lótolíkokitɔŋ ki palÉ›stíinpÉ”ltukáalpalawúpalakúékatáalelewuniÉ”ÌÅ‹ulum" + - "aníulusíuluándáalapísawutíitil salomÉ”ÌÅ‹sesÉ›ÌÉ›lsutáaÅ‹suÉ›ÌtsingapúulsÉ›" + - "ÌÅ‹tÉ›Ì elÉ›ÌÉ›nÉ›silofenísilofakísieláleyÉ”ÌÉ”nsan malínosenekáalsomalísu" + - "lináamsáwó tomé e pelensípesalfatÉ”ÌÉ”lsuasiláandtúluk na káyiikSáatto" + - "kótayiláandtasikistáaÅ‹tokelótimÉ”ÌÉ”l u nipálÉ›ÌntulukmenisitáaÅ‹tunusít" + - "É”ÌÅ‹katulukíitilinitáat na tupákÉ”tufalútayiwáantaÅ‹saníukilÉ›ÌÉ›nukánda" + - "amálíkaulukuéyusupekistáaÅ‹fatikáaÅ‹sÉ›ÌÅ‹ fɛŋsáŋ elekelenatíinfenesuwel" + - "áFilisíin ungilíspindisúlÉ›Ì pi amálíkafiÉ›tnáamfanuatúwalíis na futú" + - "nasamowáyémÉ›nmayÉ”ÌÉ”tafilí mbátÉ›Ìsaambíisimbapuwé", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0008, 0x001b, 0x0027, 0x003b, 0x0043, 0x004a, - 0x0052, 0x0068, 0x0070, 0x0070, 0x007a, 0x008b, 0x0092, 0x009a, - 0x00a0, 0x00a0, 0x00ad, 0x00bf, 0x00c8, 0x00d4, 0x00dd, 0x00ec, - 0x00f6, 0x00fd, 0x0107, 0x010e, 0x010e, 0x0117, 0x011f, 0x0127, - 0x0127, 0x012f, 0x0137, 0x013d, 0x013d, 0x0145, 0x014d, 0x0154, - 0x015c, 0x015c, 0x016e, 0x017c, 0x0182, 0x0189, 0x0194, 0x019a, - 0x019f, 0x01a7, 0x01ad, 0x01ba, 0x01ba, 0x01c6, 0x01cb, 0x01d3, - 0x01d3, 0x01d3, 0x01da, 0x01ec, 0x01f3, 0x01f3, 0x01fb, 0x0204, - // Entry 40 - 7F - 0x020f, 0x0228, 0x022f, 0x022f, 0x0239, 0x0240, 0x0247, 0x0247, - 0x024e, 0x0254, 0x025b, 0x025b, 0x0264, 0x0269, 0x0271, 0x027c, - 0x027c, 0x0284, 0x028d, 0x0297, 0x02a0, 0x02a8, 0x02ba, 0x02ba, - 0x02bf, 0x02cc, 0x02d8, 0x02df, 0x02e5, 0x02ef, 0x02fe, 0x0308, - 0x0308, 0x0312, 0x0319, 0x0325, 0x032c, 0x032c, 0x032c, 0x0335, - 0x033f, 0x0345, 0x034d, 0x034d, 0x0357, 0x035f, 0x036b, 0x036b, - 0x0373, 0x0391, 0x0396, 0x039c, 0x03a4, 0x03aa, 0x03aa, 0x03b3, - 0x03bc, 0x03c7, 0x03cd, 0x03db, 0x03e4, 0x03ed, 0x03f8, 0x0413, - // Entry 80 - BF - 0x0425, 0x0434, 0x043b, 0x0446, 0x0452, 0x0458, 0x045f, 0x0470, - 0x0482, 0x048e, 0x0496, 0x049d, 0x04a6, 0x04b1, 0x04b8, 0x04be, - 0x04c5, 0x04cc, 0x04d4, 0x04d4, 0x04d4, 0x04e0, 0x04ec, 0x04f5, - 0x04fa, 0x0504, 0x050c, 0x050c, 0x0524, 0x052e, 0x0537, 0x0541, - 0x054a, 0x0550, 0x0559, 0x0560, 0x0569, 0x0570, 0x0579, 0x0580, - 0x0592, 0x059c, 0x05ae, 0x05b6, 0x05bf, 0x05cb, 0x05d7, 0x05de, - 0x05e5, 0x05ec, 0x05fd, 0x0603, 0x060a, 0x060f, 0x0623, 0x063b, - 0x0644, 0x064e, 0x065a, 0x0676, 0x0689, 0x0696, 0x06ac, 0x06b7, - // Entry C0 - FF - 0x06be, 0x06c7, 0x06ce, 0x06ce, 0x06db, 0x06e3, 0x06e3, 0x06e9, - 0x06f2, 0x0701, 0x070f, 0x0719, 0x0721, 0x0728, 0x0732, 0x074a, - 0x0753, 0x0753, 0x075c, 0x076c, 0x0777, 0x0780, 0x0787, 0x0790, - 0x0790, 0x07a9, 0x07b6, 0x07b6, 0x07b6, 0x07c1, 0x07c1, 0x07d2, - 0x07d7, 0x07d7, 0x07dc, 0x07e6, 0x07f3, 0x07fa, 0x0812, 0x0823, - 0x082a, 0x0833, 0x083b, 0x0852, 0x0859, 0x0862, 0x086b, 0x0876, - 0x087d, 0x087d, 0x0886, 0x088e, 0x089c, 0x08a6, 0x08c7, 0x08d2, - 0x08e4, 0x08fe, 0x0908, 0x0910, 0x0922, 0x0929, 0x0929, 0x0930, - // Entry 100 - 13F - 0x093a, 0x094a, 0x0952, 0x095c, - }, - }, - { // yi - "×ַנד×רע×ַפֿגה×ַניסט×ַן×ַנטיגוע ×ון ב×ַרבודע×ַלב×Ö·× ×™×¢×ַרמעניע×Ö·× ×’×לע×ַנט×" + - "ַרקטיקע×ַרגענטינעעסטרייך×ויסטר×ַליע×ַרוב×ַב×סניע הערצעג×ווינעב×ַרב×" + - "ַד×סב×ַנגל×ַדעשבעלגיעבורקינע פֿ×ַס×בולג×ַריעבורונדיבעניןבערמודעברונ" + - "ייב×ליוויעבר×ַזילב×Ö·×”×ַמ×ַסבהוט×ַןב×צוו×ַנעבעל×ַרוסבעליזק×Ö·× ×ַדעק×× " + - "×’×־קינש×ַזעצענטר×ַל־×ַפֿריק×ַנישע רעפּובליקשווייץהעלפֿ×Ö· נדביין ב×ר" + - "טןקוק ×ינזלעןטשילעק×ַמערוןכינעק×ל×מביעק×סט×Ö· ריק×ַקוב×ַק×ַפּווערדיש" + - "×¢ ×ינזלעןקור×ַס×Ö·×טשעכיידייטשל×ַנדדזשיבוטידענמ×ַרקד×מיניקעד×מיניק×Ö·" + - "נישע רעפּובליקעקוו×ַד×רעסטל×ַנדעגיפּטןעריטרעעשפּ×ַניעעטי×פּיע×ייר×פ" + - "ּעישער פֿ×ַרב×ַנדפֿינל×ַנדפֿידזשיפֿ×ַלקל×ַנד ×ינזלעןמיקר×נעזיעפֿ×ַר" + - "× ×ינזלעןפֿר×ַנקרייךג×ַב×ןפֿ×ַר×ייניגטע קעניגרייךגרענ×ַד×ַגרוזיעפֿר" + - "×ַנצויזישע גוי×ַנעגערנזיגה×ַנעגיבר×ַלט×ַרגרינל×ַנדג×ַמביעגינעגוו×ַד" + - "עלופעקוו×ַט×רישע גינעגריכנל×ַנדגוו×ַטעמ×ַלעגוו×Ö·×גינע־ביס×ַוגוי×Ö·× ×¢" + - "×”×נדור×ַסקר××ַטיעה×ַיטי×ונגערןק×Ö·× ×ַרישע ×ינזלען×ינד×× ×¢×–×™×¢×ירל×ַנדי" + - "שר×ל×ינדיע×יר×ַן×יסל×ַנד×יט×ַליעדזשערזידזש×ַמייקעי×ַפּ×ַןקעניעק×ַמב" + - "×דיעקיריב×ַטיק×מ×ר×סקיימ×ַן ×ינזלעןל×Ö·×סלבנוןליכטנשטייןסרי־ל×ַנק×ַל" + - "יבעריעלעס×ט×ליטעלוקסעמבורגלעטל×ַנדליביעמ×ַר×ק×מ×× ×ַק×מ×לד×וועמ×נטענ" + - "עגר×מ×ַד×Ö·×’×ַסק×ַרמ×ַרש×ַל ×ינזלעןמ×ַקעד×ניעמ×ַלימי×ַנמ×ַרמ×× ×’×ליימ" + - "×ַרטיניקמ×ַריט×ַניעמ×נטסער×ַטמ×ַלט×ַמ×ריציוסמ×ַלדיווןמ×ַל×ַווימעקסי" + - "קעמ×ַלייזיעמ××–×ַמביקנ×ַמיביענײַ ק×ַלעד×ניעניזשערנ×רפֿ×לק ×ינזלניגער" + - "יעניק×ַר×ַגועה×ל×ַנדנ×רוועגיענעפּ×ַלניו זיל×ַנדפּ×Ö·× ×ַמ×ַפּערופֿר×Ö·" + - "נצויזישע פּ×לינעזיעפּ×ַפּו×Ö· נײַ גינעפֿיליפּינעןפּ×ַקיסט×ַןפּוילןפּ" + - "יטקערן ×ינזלעןפּ×רט×־ריק×פּ×רטוג×ַלפּ×ַר×ַגווײַק×ַט×ַררע×וני×ןרומענ" + - "יעסערביערוסל×ַנדרוו×ַנדעס×ל×מ×ן ×ינזלעןסיישעלסוד×ַןשוועדןסינג×ַפּור" + - "סט העלענעסל×וועניעסל×וו×ַקייסיערע לע×נעס×ַן מ×ַרינ×סענעג×ַלס×מ×ַליע" + - "סורינ×Ö·×דרו×־סוד×ַןס×Ö·× ×˜×מע ×ון פּרינסיפּעעל ס×ַלוו×ַד×רסיריעסוו×Ö·" + - "זיל×ַנדטש×ַדט××’×טייל×ַנדטורקמעניסט×ַןטוניסיעט×× ×’×ַטערקייטריניד×ַד ×" + - "ון ט×ב×Ö·×’×טו×וו×ַלוט×Ö·× ×–×Ö·× ×™×¢×וקר×Ö·×™× ×¢×וג×ַנדעפֿ×ַר×ייניגטע שט×ַטן×" + - "ורוגווייוו×ַטיק×ַן שט×ָטווענעזועלעוויעטנ×Ö·×וו×ַנו×ַטוס×ַמ××ַק×ס×וו×" + - "תימןמ×Ö·×™×טדרו×Ö¾×ַפֿריקעז×ַמביעזימב×ַבווע×ומב×ַוו×וסטער ר×Ö·×™×ןוועלט×" + - "ַפֿריקעצפון־×ַמעריקעדרו×Ö¾×ַמעריקע×קע×ַניעצענטר×ַל־×ַמעריקע×ַמעריקעצ" + - "פונדיקע ×ַמעריקעק×ַר×Ö·×יבעמזרח ×ַזיעדרו×Ö¾×ַזיעדרו×־מזרח ×ַזיעדרו×Ö¾×" + - "ייר×פּעפּ×לינעזיע×ַזיעצענטר×ַל־×ַזיעמערב־×Ö·×–×™×¢×ייר×פּעמזרח־×ייר×פּע" + - "צפֿון־×ייר×פּעמערב־×ייר×פּעל×ַטיין־×ַמעריקע", - []uint16{ // 291 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x000e, 0x000e, 0x002c, 0x0054, 0x0054, 0x0066, - 0x0076, 0x0076, 0x0084, 0x009c, 0x00b0, 0x00b0, 0x00be, 0x00d4, - 0x00e2, 0x00e2, 0x00e2, 0x0107, 0x011b, 0x0131, 0x013d, 0x0158, - 0x016a, 0x016a, 0x0178, 0x0182, 0x0182, 0x0190, 0x019c, 0x01ac, - 0x01ac, 0x01ba, 0x01ce, 0x01dc, 0x01dc, 0x01ee, 0x01fe, 0x0208, - 0x0218, 0x0218, 0x0234, 0x0273, 0x0273, 0x027f, 0x02a5, 0x02ba, - 0x02c4, 0x02d4, 0x02dc, 0x02ec, 0x02ec, 0x0303, 0x030d, 0x0336, - 0x0348, 0x0348, 0x0348, 0x0354, 0x0368, 0x0368, 0x0378, 0x0388, - // Entry 40 - 7F - 0x0398, 0x03c5, 0x03c5, 0x03c5, 0x03d7, 0x03e7, 0x03f5, 0x03f5, - 0x0403, 0x0413, 0x0423, 0x0450, 0x0462, 0x0470, 0x0495, 0x04a9, - 0x04c4, 0x04da, 0x04e6, 0x0513, 0x0525, 0x0531, 0x055a, 0x0566, - 0x0572, 0x0588, 0x059a, 0x05a8, 0x05b0, 0x05c4, 0x05e5, 0x05f9, - 0x05f9, 0x0611, 0x061d, 0x0633, 0x0641, 0x0641, 0x0641, 0x0653, - 0x0663, 0x066f, 0x067d, 0x06a0, 0x06b4, 0x06c4, 0x06ce, 0x06ce, - 0x06da, 0x06da, 0x06da, 0x06e6, 0x06f6, 0x0706, 0x0714, 0x0728, - 0x0728, 0x0738, 0x0742, 0x0742, 0x0754, 0x0766, 0x0774, 0x0774, - // Entry 80 - BF - 0x0774, 0x0774, 0x0774, 0x0791, 0x0791, 0x079b, 0x07a5, 0x07a5, - 0x07b9, 0x07cf, 0x07dd, 0x07e9, 0x07f1, 0x0805, 0x0815, 0x081f, - 0x082d, 0x083b, 0x084b, 0x085f, 0x085f, 0x087b, 0x089a, 0x08ae, - 0x08b8, 0x08ca, 0x08da, 0x08da, 0x08da, 0x08ec, 0x0902, 0x0916, - 0x0924, 0x0934, 0x0946, 0x0958, 0x0966, 0x0978, 0x098a, 0x099a, - 0x09b5, 0x09c1, 0x09dc, 0x09ea, 0x0a00, 0x0a0e, 0x0a20, 0x0a2e, - 0x0a2e, 0x0a2e, 0x0a43, 0x0a43, 0x0a57, 0x0a61, 0x0a90, 0x0ab2, - 0x0ac8, 0x0ade, 0x0aea, 0x0aea, 0x0b09, 0x0b1f, 0x0b1f, 0x0b33, - // Entry C0 - FF - 0x0b33, 0x0b4b, 0x0b59, 0x0b59, 0x0b69, 0x0b77, 0x0b83, 0x0b93, - 0x0ba3, 0x0ba3, 0x0bc0, 0x0bcc, 0x0bd8, 0x0be4, 0x0bf8, 0x0c09, - 0x0c1b, 0x0c1b, 0x0c2f, 0x0c44, 0x0c5b, 0x0c6b, 0x0c7b, 0x0c8b, - 0x0ca1, 0x0cce, 0x0ce9, 0x0ce9, 0x0cf3, 0x0d0b, 0x0d0b, 0x0d0b, - 0x0d15, 0x0d15, 0x0d1d, 0x0d2d, 0x0d2d, 0x0d2d, 0x0d2d, 0x0d47, - 0x0d55, 0x0d61, 0x0d6d, 0x0d95, 0x0da7, 0x0da7, 0x0dbb, 0x0dcd, - 0x0ddd, 0x0ddd, 0x0e04, 0x0e16, 0x0e16, 0x0e35, 0x0e35, 0x0e49, - 0x0e49, 0x0e49, 0x0e5b, 0x0e6f, 0x0e6f, 0x0e7d, 0x0e8b, 0x0e93, - // Entry 100 - 13F - 0x0e9f, 0x0eb9, 0x0ec7, 0x0edb, 0x0f04, 0x0f0e, 0x0f1e, 0x0f38, - 0x0f52, 0x0f62, 0x0f62, 0x0f84, 0x0f84, 0x0f84, 0x0f84, 0x0f84, - 0x0f94, 0x0fb5, 0x0fc9, 0x0fdc, 0x0ff0, 0x100d, 0x1027, 0x1027, - 0x1027, 0x1027, 0x103b, 0x1045, 0x1061, 0x1075, 0x1085, 0x109f, - 0x10bb, 0x10d5, 0x10f5, - }, - }, - { // yo - "OrílẹÌède ÀàndóràOrílẹÌède Ẹmirate ti Awá»n ArabuOrílẹÌède ÀfùgànístánìOr" + - "ílẹÌède Ààntígúà àti BáríbúdàOrílẹÌède ÀàngúlílàOrílẹÌède Àlùbàníán" + - "ìOrílẹÌède AméníàOrílẹÌède Nedalandi ti AntelisiOrílẹÌède ÀàngólàOr" + - "ílẹÌède AgentínàSámóánì ti OrílẹÌède ÀméríkàOrílẹÌède AsítíríàOrílẹ" + - "Ìède ÃstràlìáOrílẹÌède ÃrúbàOrílẹÌède AsẹÌbájánìOrílẹÌède Bá»Ì€síníà " + - "àti ẸtisẹgófínàOrílẹÌède BábádósìOrílẹÌède BángáládésìOrílẹÌède Bég" + - "íá»ÌmùOrílẹÌède Bùùkíná FasòOrílẹÌède BùùgáríàOrílẹÌède BáránìOrílẹÌ" + - "ède BùùrúndìOrílẹÌède Bẹ̀nẹ̀OrílẹÌède BémúdàOrílẹÌède BúrúnẹÌlìOríl" + - "ẹÌède Bá»Ì€lífíyàOrílẹÌède BàràsílìOrílẹÌède BàhámásìOrílẹÌède Bútán" + - "ìOrílẹÌède Bá»Ì€tìsúwánàOrílẹÌède BélárúsìOrílẹÌède Bèlísẹ̀OrílẹÌède " + - "KánádàOrilẹÌède KóngòOrílẹÌède Àrin gùngun ÃfíríkàOrílẹÌède KóngòOrí" + - "lẹÌède switiá¹£ilandiOrílẹÌède Kóútè foràOrílẹÌède Etíokun KùúkùOrílẹÌ" + - "ède ṣílèOrílẹÌède KamerúúnìOrílẹÌède ṣáínàOrílẹÌède KòlómíbìaOrílẹÌ" + - "ède Kuusita RíkàOrílẹÌède KúbàOrílẹÌède Etíokun Kápé féndèOrílẹÌède" + - " KúrúsìOrílẹÌède ṣẹÌẹÌkìOrílẹÌède GemaniOrílẹÌède Díbá»ÌótìOrílẹÌède " + - "DẹÌmákìOrílẹÌède DòmíníkàOrilẹÌède DòmíníkánìOrílẹÌède ÀlùgèríánìOrí" + - "lẹÌède EkuádòOrílẹÌède EsitoniaOrílẹÌède ÉgípítìOrílẹÌède EritiraOrí" + - "lẹÌède SipaniOrílẹÌède EtopiaOrílẹÌède FilandiOrílẹÌède FijiOrílẹÌèd" + - "e Etikun FakalandiOrílẹÌède MakoronesiaOrílẹÌède FaranseOrílẹÌède Ga" + - "bonOrílẹÌède OmobabirinOrílẹÌède GenadaOrílẹÌède Gá»giaOrílẹÌède Fire" + - "ná¹£i GuanaOrílẹÌède GanaOrílẹÌède GibarataraOrílẹÌède GerelandiOrílẹÌ" + - "ède GambiaOrílẹÌède GeneOrílẹÌède GadelopeOrílẹÌède Ekutoria GiniOr" + - "ílẹÌède GeriisiOrílẹÌède GuatemalaOrílẹÌède GuamuOrílẹÌède Gene-Bus" + - "auOrílẹÌède GuyanaOrílẹÌède HondurasiOrílẹÌède KòróátíàOrílẹÌède Haa" + - "tiOrílẹÌède HungariOrílẹÌède IndonesiaOrílẹÌède AilandiOrílẹÌède Ise" + - "rẹliOrílẹÌède IndiaOrílẹÌède Etíkun Ãndíánì ti ÃŒlú BírítísìOrílẹÌède" + - " IrakiOrílẹÌède IraniOrílẹÌède Aá¹£ilandiOrílẹÌède ItaliyiOrílẹÌède Ja" + - "maikaOrílẹÌède Já»daniOrílẹÌède JapaniOrílẹÌède KenyaOrílẹÌède Kuriá¹£i" + - "sitaniOrílẹÌède KàmùbódíàOrílẹÌède KiribatiOrílẹÌède KòmòrósìOrílẹÌè" + - "de Kiiti ati NeefiOrílẹÌède Guusu Ká»riaOrílẹÌède Ariwa Ká»riaOrílẹÌèd" + - "e KuwetiOrílẹÌède Etíokun KámánìOrílẹÌède Kaá¹£aá¹£ataniOrílẹÌède LaosiO" + - "rílẹÌède LebanoniOrílẹÌède Luá¹£iaOrílẹÌède LẹṣitẹnisiteniOrílẹÌède Si" + - "ri LankaOrílẹÌède LaberiaOrílẹÌède LesotoOrílẹÌède LituaniaOrílẹÌède" + - " LusemogiOrílẹÌède LatifiaOrílẹÌède LibiyaOrílẹÌède MorokoOrílẹÌède " + - "MonakoOrílẹÌède ModofiaOrílẹÌède MadasikaOrílẹÌède Etikun MáṣaliOríl" + - "ẹÌède MasidoniaOrílẹÌède MaliOrílẹÌède ManamariOrílẹÌède MogoliaOr" + - "ílẹÌède Etikun Guusu MarianaOrílẹÌède MatinikuwiOrílẹÌède Maritania" + - "OrílẹÌède MotseratiOrílẹÌède MalataOrílẹÌède MaritiusiOrílẹÌède Mala" + - "difiOrílẹÌède MalawiOrílẹÌède MesikoOrílẹÌède MalasiaOrílẹÌède Moá¹£am" + - "ibikuOrílẹÌède NamibiaOrílẹÌède Kaledonia TitunOrílẹÌède NàìjáOrílẹÌ" + - "ède Etikun Ná»ÌúfókìOrílẹÌède NàìjíríàOrílẹÌède NIkaraguaOrílẹÌède N" + - "edalandiOrílẹÌède Ná»á»wiiOrílẹÌède NepaOrílẹÌède NauruOrílẹÌède NiueO" + - "rílẹÌède á¹£ilandi TitunOrílẹÌède Ọá»maOrílẹÌède PanamaOrílẹÌède PeruOr" + - "ílẹÌède Firená¹£i PolinesiaOrílẹÌède Paapu ti GiiniOrílẹÌède filipini" + - "OrílẹÌède PakisitanOrílẹÌède PolandiOrílẹÌède Pẹẹri ati mikuloniOríl" + - "ẹÌède PikariniOrílẹÌède Pá»to RikoOrílẹÌède Iwá»orun Pakisitian ati " + - "Gaá¹£aOrílẹÌède Pá»tugiOrílẹÌède PaaluOrílẹÌède ParaguyeOrílẹÌède KotaO" + - "rílẹÌède RiuniyanOrílẹÌède RomaniyaOrílẹÌède Rá»á¹£iaOrílẹÌède RuwandaO" + - "rílẹÌède Saudi ArabiaOrílẹÌède Etikun SolomoniOrílẹÌède seṣẹlẹsiOríl" + - "ẹÌède SudaniOrílẹÌède SwidiniOrílẹÌède SingapoOrílẹÌède HẹlenaOríl" + - "ẹÌède SilofaniaOrílẹÌède SilofakiaOrílẹÌède Siria looniOrílẹÌède S" + - "ani MarinoOrílẹÌède SẹnẹgaOrílẹÌède SomaliaOrílẹÌède SurinamiOrílẹÌè" + - "de Sao tomi ati piriiá¹£ipiOrílẹÌède ẸẹsáfádòOrílẹÌède SiriaOrílẹÌède " + - "Saá¹£ilandOrílẹÌède Tá»á»ki ati Etikun Kaká»siOrílẹÌède ṣààdìOrílẹÌède To" + - "goOrílẹÌède TailandiOrílẹÌède TakisitaniOrílẹÌède TokelauOrílẹÌède ÃŒ" + - "làOòrùn Tímá»Ì€OrílẹÌède Tá»á»kimenisitaOrílẹÌède Tuniá¹£iaOrílẹÌède Tonga" + - "OrílẹÌède Tá»á»kiOrílẹÌède Tirinida ati TobagaOrílẹÌède TufaluOrílẹÌèd" + - "e TaiwaniOrílẹÌède Taná¹£aniaOrílẹÌède UkariniOrílẹÌède UgandaOrílẹÌèd" + - "e Orilẹede AmerikaOrílẹÌède NruguayiOrílẹÌède Ná¹£ibẹkisitaniOrílẹÌède" + - " FatikaniOrílẹÌède Fisẹnnti ati GenadinaOrílẹÌède FẹnẹṣuẹlaOrílẹÌède" + - " Etíkun Fágínì ti ìlú BírítísìOrílẹÌède Etikun Fagini ti AmẹrikaOríl" + - "ẹÌède FẹtinamiOrílẹÌède FaniatuOrílẹÌède Wali ati futunaOrílẹÌède " + - "Samá»OrílẹÌède yemeniOrílẹÌède MayoteOrílẹÌède Ariwa AfirikaOrílẹÌède" + - " á¹£amibiaOrílẹÌède á¹£imibabe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x001a, 0x0042, 0x0063, 0x0091, 0x00ae, 0x00cd, - 0x00e5, 0x0109, 0x0123, 0x0123, 0x013c, 0x0165, 0x0180, 0x019b, - 0x01b2, 0x01b2, 0x01d1, 0x0206, 0x0221, 0x0240, 0x025d, 0x027d, - 0x0299, 0x02b1, 0x02cc, 0x02e7, 0x02e7, 0x02ff, 0x031d, 0x033b, - 0x033b, 0x0356, 0x0371, 0x0389, 0x0389, 0x03aa, 0x03c5, 0x03e0, - 0x03f8, 0x03f8, 0x040d, 0x0435, 0x044b, 0x0468, 0x0485, 0x04a5, - 0x04bc, 0x04d7, 0x04f0, 0x050c, 0x050c, 0x0529, 0x053e, 0x0564, - 0x0564, 0x0564, 0x057c, 0x059b, 0x05b0, 0x05b0, 0x05cd, 0x05e8, - // Entry 40 - 7F - 0x0603, 0x0620, 0x063f, 0x063f, 0x0656, 0x066d, 0x0687, 0x0687, - 0x069d, 0x06b2, 0x06c7, 0x06c7, 0x06dd, 0x06f0, 0x070f, 0x0729, - 0x0729, 0x073f, 0x0753, 0x076c, 0x0781, 0x0797, 0x07b5, 0x07b5, - 0x07c8, 0x07e1, 0x07f9, 0x080e, 0x0821, 0x0838, 0x0854, 0x086a, - 0x086a, 0x0882, 0x0896, 0x08af, 0x08c4, 0x08c4, 0x08c4, 0x08dc, - 0x08f8, 0x090c, 0x0922, 0x0922, 0x093a, 0x0950, 0x0968, 0x0968, - 0x097c, 0x09b4, 0x09c8, 0x09dc, 0x09f5, 0x0a0b, 0x0a0b, 0x0a21, - 0x0a38, 0x0a4d, 0x0a61, 0x0a7e, 0x0a9b, 0x0ab2, 0x0acd, 0x0aeb, - // Entry 80 - BF - 0x0b07, 0x0b23, 0x0b38, 0x0b59, 0x0b76, 0x0b8a, 0x0ba1, 0x0bb7, - 0x0bda, 0x0bf3, 0x0c09, 0x0c1e, 0x0c35, 0x0c4c, 0x0c62, 0x0c77, - 0x0c8c, 0x0ca1, 0x0cb7, 0x0cb7, 0x0cb7, 0x0cce, 0x0ced, 0x0d05, - 0x0d18, 0x0d2f, 0x0d45, 0x0d45, 0x0d68, 0x0d81, 0x0d99, 0x0db1, - 0x0dc6, 0x0dde, 0x0df5, 0x0e0a, 0x0e1f, 0x0e35, 0x0e50, 0x0e66, - 0x0e84, 0x0e9b, 0x0ebf, 0x0edb, 0x0ef3, 0x0f0b, 0x0f24, 0x0f37, - 0x0f4b, 0x0f5e, 0x0f7c, 0x0f93, 0x0fa8, 0x0fbb, 0x0fdd, 0x0ffa, - 0x1011, 0x1029, 0x103f, 0x1064, 0x107b, 0x1095, 0x10c3, 0x10da, - // Entry C0 - FF - 0x10ee, 0x1105, 0x1118, 0x1118, 0x112f, 0x1146, 0x1146, 0x115e, - 0x1174, 0x118f, 0x11ad, 0x11ca, 0x11df, 0x11f5, 0x120b, 0x1222, - 0x123a, 0x123a, 0x1252, 0x126c, 0x1286, 0x129f, 0x12b5, 0x12cc, - 0x12cc, 0x12f3, 0x1311, 0x1311, 0x1325, 0x133e, 0x133e, 0x136a, - 0x1383, 0x1383, 0x1396, 0x13ad, 0x13c6, 0x13dc, 0x1401, 0x1421, - 0x1439, 0x144d, 0x1465, 0x1487, 0x149c, 0x14b2, 0x14cb, 0x14e1, - 0x14f6, 0x14f6, 0x1517, 0x152e, 0x154e, 0x1565, 0x158b, 0x15ab, - 0x15e1, 0x160a, 0x1623, 0x1639, 0x1657, 0x166c, 0x166c, 0x1681, - // Entry 100 - 13F - 0x1696, 0x16b2, 0x16ca, 0x16e3, - }, - }, - { // yo-BJ - "OrílÉ›Ìède ÀàndóràOrílÉ›Ìède Æmirate ti AwÉ”n ArabuOrílÉ›Ìède ÀfùgànístánìOr" + - "ílÉ›Ìède Ààntígúà àti BáríbúdàOrílÉ›Ìède ÀàngúlílàOrílÉ›Ìède Àlùbàníán" + - "ìOrílÉ›Ìède AméníàOrílÉ›Ìède Nedalandi ti AntelisiOrílÉ›Ìède ÀàngólàOr" + - "ílÉ›Ìède AgentínàSámóánì ti OrílÉ›Ìède ÀméríkàOrílÉ›Ìède AsítíríàOrílÉ›" + - "Ìède ÃstràlìáOrílÉ›Ìède ÃrúbàOrílÉ›Ìède AsÉ›ÌbájánìOrílÉ›Ìède Bɔ̀síníà " + - "àti ÆtisÉ›gófínàOrílÉ›Ìède BábádósìOrílÉ›Ìède BángáládésìOrílÉ›Ìède Bég" + - "íɔÌmùOrílÉ›Ìède Bùùkíná FasòOrílÉ›Ìède BùùgáríàOrílÉ›Ìède BáránìOrílÉ›Ì" + - "ède BùùrúndìOrílÉ›Ìède Bɛ̀nɛ̀OrílÉ›Ìède BémúdàOrílÉ›Ìède BúrúnÉ›ÌlìOríl" + - "É›Ìède Bɔ̀lífíyàOrílÉ›Ìède BàràsílìOrílÉ›Ìède BàhámásìOrílÉ›Ìède Bútánì" + - "OrílÉ›Ìède Bɔ̀tìsúwánàOrílÉ›Ìède BélárúsìOrílÉ›Ìède Bèlísɛ̀OrílÉ›Ìède Ká" + - "nádàOrilÉ›Ìède KóngòOrílÉ›Ìède Àrin gùngun ÃfíríkàOrílÉ›Ìède KóngòOrílÉ›" + - "Ìède switishilandiOrílÉ›Ìède Kóútè foràOrílÉ›Ìède Etíokun KùúkùOrílÉ›Ì" + - "ède shílèOrílÉ›Ìède KamerúúnìOrílÉ›Ìède sháínàOrílÉ›Ìède KòlómíbìaOríl" + - "É›Ìède Kuusita RíkàOrílÉ›Ìède KúbàOrílÉ›Ìède Etíokun Kápé féndèOrílÉ›Ìè" + - "de KúrúsìOrílÉ›Ìède shÉ›ÌÉ›ÌkìOrílÉ›Ìède GemaniOrílÉ›Ìède DíbÉ”ÌótìOrílÉ›Ìè" + - "de DÉ›ÌmákìOrílÉ›Ìède DòmíníkàOrilÉ›Ìède DòmíníkánìOrílÉ›Ìède Àlùgèríánì" + - "OrílÉ›Ìède EkuádòOrílÉ›Ìède EsitoniaOrílÉ›Ìède ÉgípítìOrílÉ›Ìède Eritira" + - "OrílÉ›Ìède SipaniOrílÉ›Ìède EtopiaOrílÉ›Ìède FilandiOrílÉ›Ìède FijiOrílÉ›" + - "Ìède Etikun FakalandiOrílÉ›Ìède MakoronesiaOrílÉ›Ìède FaranseOrílÉ›Ìèd" + - "e GabonOrílÉ›Ìède OmobabirinOrílÉ›Ìède GenadaOrílÉ›Ìède GÉ”giaOrílÉ›Ìède " + - "Firenshi GuanaOrílÉ›Ìède GanaOrílÉ›Ìède GibarataraOrílÉ›Ìède GerelandiO" + - "rílÉ›Ìède GambiaOrílÉ›Ìède GeneOrílÉ›Ìède GadelopeOrílÉ›Ìède Ekutoria Gi" + - "niOrílÉ›Ìède GeriisiOrílÉ›Ìède GuatemalaOrílÉ›Ìède GuamuOrílÉ›Ìède Gene-" + - "BusauOrílÉ›Ìède GuyanaOrílÉ›Ìède HondurasiOrílÉ›Ìède KòróátíàOrílÉ›Ìède " + - "HaatiOrílÉ›Ìède HungariOrílÉ›Ìède IndonesiaOrílÉ›Ìède AilandiOrílÉ›Ìède " + - "IserÉ›liOrílÉ›Ìède IndiaOrílÉ›Ìède Etíkun Ãndíánì ti ÃŒlú BírítísìOrílÉ›Ì" + - "ède IrakiOrílÉ›Ìède IraniOrílÉ›Ìède AshilandiOrílÉ›Ìède ItaliyiOrílÉ›Ìè" + - "de JamaikaOrílÉ›Ìède JÉ”daniOrílÉ›Ìède JapaniOrílÉ›Ìède KenyaOrílÉ›Ìède K" + - "urishisitaniOrílÉ›Ìède KàmùbódíàOrílÉ›Ìède KiribatiOrílÉ›Ìède KòmòrósìO" + - "rílÉ›Ìède Kiiti ati NeefiOrílÉ›Ìède Guusu KÉ”riaOrílÉ›Ìède Ariwa KÉ”riaOr" + - "ílÉ›Ìède KuwetiOrílÉ›Ìède Etíokun KámánìOrílÉ›Ìède KashashataniOrílÉ›Ìè" + - "de LaosiOrílÉ›Ìède LebanoniOrílÉ›Ìède LushiaOrílÉ›Ìède LÉ›shitÉ›nisiteniO" + - "rílÉ›Ìède Siri LankaOrílÉ›Ìède LaberiaOrílÉ›Ìède LesotoOrílÉ›Ìède Lituan" + - "iaOrílÉ›Ìède LusemogiOrílÉ›Ìède LatifiaOrílÉ›Ìède LibiyaOrílÉ›Ìède Morok" + - "oOrílÉ›Ìède MonakoOrílÉ›Ìède ModofiaOrílÉ›Ìède MadasikaOrílÉ›Ìède Etikun" + - " MáshaliOrílÉ›Ìède MasidoniaOrílÉ›Ìède MaliOrílÉ›Ìède ManamariOrílÉ›Ìède" + - " MogoliaOrílÉ›Ìède Etikun Guusu MarianaOrílÉ›Ìède MatinikuwiOrílÉ›Ìède " + - "MaritaniaOrílÉ›Ìède MotseratiOrílÉ›Ìède MalataOrílÉ›Ìède MaritiusiOrílÉ›" + - "Ìède MaladifiOrílÉ›Ìède MalawiOrílÉ›Ìède MesikoOrílÉ›Ìède MalasiaOrílÉ›" + - "Ìède MoshamibikuOrílÉ›Ìède NamibiaOrílÉ›Ìède Kaledonia TitunOrílÉ›Ìède" + - " NàìjáOrílÉ›Ìède Etikun NÉ”ÌúfókìOrílÉ›Ìède NàìjíríàOrílÉ›Ìède NIkaragua" + - "OrílÉ›Ìède NedalandiOrílÉ›Ìède NɔɔwiiOrílÉ›Ìède NepaOrílÉ›Ìède NauruOríl" + - "É›Ìède NiueOrílÉ›Ìède shilandi TitunOrílÉ›Ìède ƆɔmaOrílÉ›Ìède PanamaOrí" + - "lÉ›Ìède PeruOrílÉ›Ìède Firenshi PolinesiaOrílÉ›Ìède Paapu ti GiiniOrílÉ›" + - "Ìède filipiniOrílÉ›Ìède PakisitanOrílÉ›Ìède PolandiOrílÉ›Ìède Pɛɛri at" + - "i mikuloniOrílÉ›Ìède PikariniOrílÉ›Ìède PÉ”to RikoOrílÉ›Ìède IwÉ”orun Pak" + - "isitian ati GashaOrílÉ›Ìède PÉ”tugiOrílÉ›Ìède PaaluOrílÉ›Ìède ParaguyeOr" + - "ílÉ›Ìède KotaOrílÉ›Ìède RiuniyanOrílÉ›Ìède RomaniyaOrílÉ›Ìède RÉ”shiaOrí" + - "lÉ›Ìède RuwandaOrílÉ›Ìède Saudi ArabiaOrílÉ›Ìède Etikun SolomoniOrílÉ›Ìè" + - "de seshÉ›lÉ›siOrílÉ›Ìède SudaniOrílÉ›Ìède SwidiniOrílÉ›Ìède SingapoOrílÉ›Ì" + - "ède HÉ›lenaOrílÉ›Ìède SilofaniaOrílÉ›Ìède SilofakiaOrílÉ›Ìède Siria loo" + - "niOrílÉ›Ìède Sani MarinoOrílÉ›Ìède SÉ›nÉ›gaOrílÉ›Ìède SomaliaOrílÉ›Ìède Su" + - "rinamiOrílÉ›Ìède Sao tomi ati piriishipiOrílÉ›Ìède ÆÉ›sáfádòOrílÉ›Ìède S" + - "iriaOrílÉ›Ìède SashilandOrílÉ›Ìède Tɔɔki ati Etikun KakÉ”siOrílÉ›Ìède sh" + - "ààdìOrílÉ›Ìède TogoOrílÉ›Ìède TailandiOrílÉ›Ìède TakisitaniOrílÉ›Ìède T" + - "okelauOrílÉ›Ìède ÃŒlàOòrùn Tímɔ̀OrílÉ›Ìède TɔɔkimenisitaOrílÉ›Ìède Tunis" + - "hiaOrílÉ›Ìède TongaOrílÉ›Ìède TɔɔkiOrílÉ›Ìède Tirinida ati TobagaOrílÉ›Ì" + - "ède TufaluOrílÉ›Ìède TaiwaniOrílÉ›Ìède TanshaniaOrílÉ›Ìède UkariniOríl" + - "É›Ìède UgandaOrílÉ›Ìède OrilÉ›ede AmerikaOrílÉ›Ìède NruguayiOrílÉ›Ìède N" + - "shibÉ›kisitaniOrílÉ›Ìède FatikaniOrílÉ›Ìède FisÉ›nnti ati GenadinaOrílÉ›Ì" + - "ède FÉ›nÉ›shuÉ›laOrílÉ›Ìède Etíkun Fágínì ti ìlú BírítísìOrílÉ›Ìède Etik" + - "un Fagini ti AmÉ›rikaOrílÉ›Ìède FÉ›tinamiOrílÉ›Ìède FaniatuOrílÉ›Ìède Wal" + - "i ati futunaOrílÉ›Ìède SamÉ”OrílÉ›Ìède yemeniOrílÉ›Ìède MayoteOrílÉ›Ìède " + - "Ariwa AfirikaOrílÉ›Ìède shamibiaOrílÉ›Ìède shimibabe", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0019, 0x003e, 0x005e, 0x008b, 0x00a7, 0x00c5, - 0x00dc, 0x00ff, 0x0118, 0x0118, 0x0130, 0x0158, 0x0172, 0x018c, - 0x01a2, 0x01a2, 0x01bf, 0x01f0, 0x020a, 0x0228, 0x0243, 0x0262, - 0x027d, 0x0294, 0x02ae, 0x02c6, 0x02c6, 0x02dd, 0x02f9, 0x0315, - 0x0315, 0x032f, 0x0349, 0x0360, 0x0360, 0x037f, 0x0399, 0x03b2, - 0x03c9, 0x03c9, 0x03dd, 0x0404, 0x0419, 0x0434, 0x0450, 0x046f, - 0x0484, 0x049e, 0x04b5, 0x04d0, 0x04d0, 0x04ec, 0x0500, 0x0525, - 0x0525, 0x0525, 0x053c, 0x0557, 0x056b, 0x056b, 0x0586, 0x059f, - // Entry 40 - 7F - 0x05b9, 0x05d5, 0x05f3, 0x05f3, 0x0609, 0x061f, 0x0638, 0x0638, - 0x064d, 0x0661, 0x0675, 0x0675, 0x068a, 0x069c, 0x06ba, 0x06d3, - 0x06d3, 0x06e8, 0x06fb, 0x0713, 0x0727, 0x073b, 0x0757, 0x0757, - 0x0769, 0x0781, 0x0798, 0x07ac, 0x07be, 0x07d4, 0x07ef, 0x0804, - 0x0804, 0x081b, 0x082e, 0x0846, 0x085a, 0x085a, 0x085a, 0x0871, - 0x088c, 0x089f, 0x08b4, 0x08b4, 0x08cb, 0x08e0, 0x08f6, 0x08f6, - 0x0909, 0x0940, 0x0953, 0x0966, 0x097d, 0x0992, 0x0992, 0x09a7, - 0x09bc, 0x09d0, 0x09e3, 0x09fe, 0x0a1a, 0x0a30, 0x0a4a, 0x0a67, - // Entry 80 - BF - 0x0a81, 0x0a9b, 0x0aaf, 0x0acf, 0x0ae9, 0x0afc, 0x0b12, 0x0b26, - 0x0b45, 0x0b5d, 0x0b72, 0x0b86, 0x0b9c, 0x0bb2, 0x0bc7, 0x0bdb, - 0x0bef, 0x0c03, 0x0c18, 0x0c18, 0x0c18, 0x0c2e, 0x0c4b, 0x0c62, - 0x0c74, 0x0c8a, 0x0c9f, 0x0c9f, 0x0cc1, 0x0cd9, 0x0cf0, 0x0d07, - 0x0d1b, 0x0d32, 0x0d48, 0x0d5c, 0x0d70, 0x0d85, 0x0d9e, 0x0db3, - 0x0dd0, 0x0de6, 0x0e08, 0x0e23, 0x0e3a, 0x0e51, 0x0e67, 0x0e79, - 0x0e8c, 0x0e9e, 0x0eba, 0x0ece, 0x0ee2, 0x0ef4, 0x0f14, 0x0f30, - 0x0f46, 0x0f5d, 0x0f72, 0x0f94, 0x0faa, 0x0fc2, 0x0fed, 0x1002, - // Entry C0 - FF - 0x1015, 0x102b, 0x103d, 0x103d, 0x1053, 0x1069, 0x1069, 0x107e, - 0x1093, 0x10ad, 0x10ca, 0x10e3, 0x10f7, 0x110c, 0x1121, 0x1136, - 0x114d, 0x114d, 0x1164, 0x117d, 0x1196, 0x11ac, 0x11c1, 0x11d7, - 0x11d7, 0x11fc, 0x1217, 0x1217, 0x122a, 0x1241, 0x1241, 0x1269, - 0x1280, 0x1280, 0x1292, 0x12a8, 0x12c0, 0x12d5, 0x12f8, 0x1315, - 0x132b, 0x133e, 0x1353, 0x1374, 0x1388, 0x139d, 0x13b4, 0x13c9, - 0x13dd, 0x13dd, 0x13fc, 0x1412, 0x142f, 0x1445, 0x1469, 0x1484, - 0x14b9, 0x14e0, 0x14f7, 0x150c, 0x1529, 0x153c, 0x153c, 0x1550, - // Entry 100 - 13F - 0x1564, 0x157f, 0x1595, 0x15ac, - }, - }, - { // zgh - "â´°âµâ´·âµ“ⵔⴰâµâµ‰âµŽâ´°âµ”ⴰⵜⴰⴼⵖⴰâµâµ‰âµ™âµœâ´°âµâ´°âµâµœâµ‰â´³â´° â´· ⴱⵔⴱⵓⴷⴰⴰâµâ´³âµ‰âµâ´°â´°âµâ´±â´°âµâµ¢â´°â´°âµ”ⵎⵉâµâµ¢â´°â´°âµâ´³âµ“âµâ´°â´°âµ”ⵊⴰâµâµœâµ‰âµ" + - "ⵙⴰⵎⵡⴰ ⵜⴰⵎⵉⵔⵉⴽⴰâµâµ‰âµœâµâµâµŽâµ™â´°âµ“ⵙⵜⵔⴰâµâµ¢â´°â´°âµ”ⵓⴱⴰⴰⴷⵔⴰⴱⵉⵊⴰâµâ´±âµ“âµ™âµâ´° â´· ⵀⵉⵔⵙⵉⴽⴱⴰⵔⴱⴰⴷⴱⴰ" + - "âµâ´³âµâ´°â´·âµ‰âµ›â´±âµâµŠâµ‰â´½â´°â´±âµ“ⵔⴽⵉâµâ´° ⴼⴰⵙⵓⴱâµâµ–ⴰⵔⵢⴰⴱⵃⵔⴰⵢâµâ´±âµ“ⵔⵓâµâ´·âµ‰â´±âµ‰âµâµ‰âµâ´±âµ”ⵎⵓⴷⴰⴱⵔⵓâµâµ‰â´±âµ“âµâµ‰â´±" + - "ⵢⴰⴱⵔⴰⵣⵉâµâ´±â´°âµ€â´°âµŽâ´°âµ™â´±âµ€âµ“ⵜⴰâµâ´±âµ“ⵜⵙⵡⴰâµâ´°â´±âµ‰âµâ´°âµ”ⵓⵙⵢⴰⴱⵉâµâµ‰âµ£â´½â´°âµâ´°â´·â´°âµœâ´°â´³â´·âµ“â´·â´°âµâµœ ⵜⴰⴷⵉⵎⵓⵇ" + - "ⵔⴰⵜⵉⵜ ⵠⴽⵓâµâ´³âµ“ⵜⴰⴳⴷⵓⴷⴰâµâµœ ⵜⴰâµâ´°âµŽâµŽâ´°âµ™âµœ ⵠⵉⴼⵔⵉⵇⵢⴰⴽⵓâµâ´³âµ“ⵙⵡⵉⵙⵔⴰⴽⵓⵜ ⴷⵉⴼⵡⴰⵔⵜⵉⴳ" + - "ⵣⵉⵔⵉⵠⵠⴽⵓⴽⵛⵛⵉâµâµ‰â´½â´°âµŽâµ‰âµ”ⵓâµâµ›âµ›âµ‰âµâµ¡â´°â´½âµ“âµâµ“ⵎⴱⵢⴰⴽⵓⵙⵜⴰ ⵔⵉⴽⴰⴽⵓⴱⴰⵜⵉⴳⵣⵉⵔⵉⵠⵠⴽⴰⴱⴱ" + - "ⵉⵔⴷⵉⵇⵓⴱⵔⵓⵙⵜⴰⴳⴷⵓⴷⴰâµâµœ ⵜⴰⵜⵛⵉⴽⵉⵜⴰâµâµŽâ´°âµâµ¢â´°â´·âµŠâµ‰â´±âµ“ⵜⵉⴷⴰâµâµŽâ´°âµ”ⴽⴷⵓⵎⵉâµâµ‰â´½âµœâ´°â´³â´·âµ“â´·â´°âµâµœ " + - "ⵜⴰⴷⵓⵎⵉâµâµ‰â´½âµœâ´·âµ£â´°âµ¢âµ”ⵉⴽⵡⴰⴷⵓⵔⵉⵙⵜⵓâµâµ¢â´°âµŽâµ‰âµšâµ•âµ‰âµ”ⵉⵜⵉⵔⵢⴰⵙⴱⴰâµâµ¢â´°âµ‰âµœâµ¢âµ“ⴱⵢⴰⴼⵉâµâµâ´°âµâ´·â´°â´¼âµ‰â´·âµŠ" + - "ⵉⵜⵉⴳⵣⵉⵔⵉⵠⵠⵎⴰâµâ´°âµ¡âµ‰âµŽâµ‰â´½âµ”ⵓâµâµ‰âµ£âµ¢â´°â´¼âµ”â´°âµâµ™â´°â´³â´°â´±âµ“âµâµœâ´°â´³âµâ´·âµ‰âµœ ⵉⵎⵓâµâµâµ–âµ”âµâ´°âµŸâ´°âµŠâµ“ⵔⵊⵢⴰⴳⵡ" + - "ⵉⵢⴰⵠⵜⴰⴼⵔⴰâµâµ™âµ‰âµ™âµœâµ–â´°âµâ´°â´°â´·âµ”â´°âµ” ⵠⵟⴰⵕⵉⵇⴳⵔⵉâµâ´°âµâ´·â´³â´°âµŽâ´±âµ¢â´°âµ–ⵉâµâµ¢â´°â´³âµ¡â´°â´·â´°âµâµ“ⴱⵖⵉâµâµ¢â´° âµ " + - "ⵉⴽⵡⴰⴷⵓⵔâµâµ¢âµ“âµâ´°âµâ´³âµ¡â´°âµœâµ‰âµŽâ´°âµâ´°â´³âµ¡â´°âµŽâµ–ⵉâµâµ¢â´° ⴱⵉⵙⴰⵡⴳⵡⵉⵢⴰâµâ´°âµ€âµ“âµâ´·âµ“ⵔⴰⵙⴽⵔⵡⴰⵜⵢⴰⵀⴰⵢⵜⵉⵀâµ" + - "ⵖⴰⵔⵢⴰⴰâµâ´·âµ“âµâµ‰âµ™âµ¢â´°âµ‰âµ”âµâ´°âµâ´·â´°âµ‰âµ™âµ”ⴰⵢⵉâµâµâµ€âµ‰âµâ´·âµœâ´°âµŽâµâ´°â´¹âµœ ⵜⴰâµâ´³âµâµ‰âµ£âµ‰âµœ ⵠⵓⴳⴰⵔⵓ ⴰⵀⵉâµâ´·âµ‰âµ" + - "ⵄⵉⵔⴰⵇⵉⵔⴰâµâµ‰âµ™âµâ´°âµâ´·âµ‰âµŸâ´°âµâµ¢â´°âµŠâ´°âµŽâ´°âµ¢â´½â´°âµâµ“ⵔⴷⵓâµâµâµ¢â´°â´±â´°âµâ´½âµ‰âµâµ¢â´°â´½âµ‰âµ”ⵖⵉⵣⵉⵙⵜⴰâµâ´½â´°âµŽâ´±âµ“ⴷⵢⴰⴽⵉ" + - "ⵔⵉⴱⴰⵜⵉⵇⵓⵎⵓⵔⵙⴰâµâ´½âµ”ⵉⵙ â´· âµâµ‰â´¼âµ‰âµ™â´½âµ“ⵔⵢⴰ ⵠⵉⵥⵥâµâµŽâ´¹â´½âµ“ⵔⵢⴰ ⵠⵉⴼⴼⵓⵙâµâ´½âµ¡âµ‰âµœâµœâµ‰â´³âµ£âµ‰âµ”ⵉâµ" + - " ⵠⴽⴰⵢⵎⴰâµâ´½â´°âµ£â´°âµ…ⵙⵜⴰâµâµâ´°âµ¡âµ™âµâµ“â´±âµâ´°âµâµ™â´°âµâµœâµâµ“ⵙⵉâµâµ‰â´½âµ‰âµâµ›âµœâ´°âµ¢âµâµ™âµ”ⵉâµâ´°âµâ´½â´°âµâµ‰â´±âµ‰âµ”ⵢⴰâµâµ‰âµšâµ“ⵟⵓâµ" + - "ⵉⵜⵡⴰâµâµ¢â´°âµâµ“ⴽⵙⴰâµâ´±âµ“ⵔⴳâµâ´°âµœâ´¼âµ¢â´°âµâµ‰â´±âµ¢â´°âµâµŽâµ–ⵔⵉⴱⵎⵓâµâ´°â´½âµ“ⵎⵓâµâ´·âµ“ⴼⵢⴰⵎⵓâµâµœâµ‰âµâµ‰â´³âµ”ⵓⵎⴰⴷⴰⵖⴰⵛⵇ" + - "ⴰⵔⵜⵉⴳⵣⵉⵔⵉⵠⵠⵎⴰⵔⵛⴰâµâµŽâ´°âµ™âµ‰â´·âµ“âµâµ¢â´°âµŽâ´°âµâµ‰âµŽâµ¢â´°âµâµŽâ´°âµ”ⵎâµâµ–ⵓâµâµ¢â´°âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵠⵎⴰⵔⵢⴰⵠⵠ" + - "ⵉⵥⵥâµâµŽâ´¹âµŽâ´°âµ”ⵜⵉâµâµ‰â´½âµŽâµ“ⵕⵉⵟⴰâµâµ¢â´°âµŽâµ“âµâµ™âµ‰âµ”ⴰⵜⵎⴰâµâµŸâ´°âµŽâµ“ⵔⵉⵙⵎⴰâµâ´·âµ‰â´¼âµŽâ´°âµâ´°âµ¡âµ‰âµŽâµ‰â´½âµ™âµ‰â´½âµŽâ´°âµâµ‰âµ£âµ¢â´°" + - "ⵎⵓⵣâµâ´±âµ‰âµ‡âµâ´°âµŽâµ‰â´±âµ¢â´°â´½â´°âµâµ‰â´·âµ“âµâµ¢â´° ⵜⴰⵎⴰⵢâµâµ“ⵜâµâµâµ‰âµŠâµ‰âµ”ⵜⵉⴳⵣⵉⵔⵉⵠⵠâµâµ“ⵔⴼⵓâµâ´½âµâµ‰âµŠâµ‰âµ”ⵢⴰâµâµ‰â´½" + - "ⴰⵔⴰⴳⵡⴰⵀⵓâµâ´°âµâ´·â´°âµâµâµ”ⵡⵉⵊâµâµ‰â´±â´°âµâµâ´°âµ¡âµ”ⵓâµâµ‰âµ¡âµ‰âµâµ¢âµ“ⵣⵉâµâ´°âµâ´·â´°âµ„ⵓⵎⴰâµâ´±â´°âµâ´°âµŽâ´°â´±âµ‰âµ”ⵓⴱⵓâµâµ‰âµâµ‰âµ£âµ¢" + - "â´° ⵜⴰⴼⵔⴰâµâµ™âµ‰âµ™âµœâ´±â´°â´±âµ¡â´° ⵖⵉâµâµ¢â´° ⵜⴰⵎⴰⵢâµâµ“ⵜⴼⵉâµâµ‰â´±â´±âµ‰âµâ´±â´°â´½âµ‰âµ™âµœâ´°âµâ´±âµ“âµâµ“âµâµ¢â´°âµ™â´°âµâ´±âµ¢âµ‰âµ” â´· ⵎ" + - "ⵉⴽâµâµ“âµâ´±âµ‰âµœâ´½â´°âµ¢âµ”âµâ´±âµ“ⵔⵜⵓ ⵔⵉⴽⵓⴰⴳⵎⵎⴰⴹ ⵠⵜⴰⴳⵓⵜ â´· ⵖⵣⵣⴰⴱⵕⵟⵇⵉⵣⴱⴰâµâ´°âµ¡â´±â´°âµ”ⴰⴳⵡⴰⵢⵇⴰⵜ" + - "ⴰⵔⵔⵉⵢⵓâµâµ¢âµ“âµâµ”ⵓⵎⴰâµâµ¢â´°âµ™âµ‰âµ”ⴱⵢⴰⵔⵓⵙⵢⴰⵔⵡⴰâµâ´·â´°âµ™âµ™â´°âµ„ⵓⴷⵉⵢⴰⵜⵉⴳⵣⵉⵔⵉⵠⵠⵙⴰâµâµ“ⵎⴰâµâµ™âµ™âµ‰âµ›âµ‰" + - "âµâµ™âµ™âµ“â´·â´°âµâµ™âµ™âµ¡âµ‰â´·âµ™âµâµ–ⴰⴼⵓⵔⴰⵙⴰâµâµœâµ‰âµâµ‰âµâµ™âµâµ“ⴼⵉâµâµ¢â´°âµ™âµâµ“ⴼⴰⴽⵢⴰⵙⵙⵉⵔⴰâµâµ¢âµ“âµâµ™â´°âµâµŽâ´°âµ”ⵉâµâµ“ⵙⵙⵉâµ" + - "ⵉⴳⴰâµâµšâµšâµ“ⵎⴰâµâµ™âµ“ⵔⵉâµâ´°âµŽâµ™âµ™âµ“ⴷⴰⵠⵠⵉⴼⴼⵓⵙⵙⴰⵡⵟⵓⵎⵉ â´· ⴱⵔⴰâµâµ™âµ‰â´±âµ™â´°âµâ´¼â´°â´·âµ“ⵔⵙⵓⵔⵢⴰⵙⵡⴰⵣⵉ" + - "âµâ´°âµâ´·â´°âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵠⵜⵓⵔⴽⵢⴰ â´· ⴽⴰⵢⴽⵜⵛⴰⴷⵟⵓⴳⵓⵟⴰⵢâµâ´°âµâ´·âµœâ´°â´·âµŠâ´°â´½âµ‰âµ™âµœâ´°âµâµŸâµ“â´½âµâ´°âµ¡âµœâµ‰âµŽâµ“âµ”" + - " âµ âµâµ‡â´±âµâµœâµœâµ“ⵔⴽⵎⴰâµâµ™âµœâ´°âµâµœâµ“âµâµ™âµŸâµ“âµâ´³â´°âµœâµ“ⵔⴽⵢⴰⵜⵔⵉâµâµ‰â´·â´°â´· â´· ⵟⵓⴱⴰⴳⵓⵜⵓⴼⴰâµâµ“ⵟⴰⵢⵡⴰâµâµŸâ´°âµâµ¥â´°" + - "âµâµ¢â´°âµ“ⴽⵔⴰâµâµ¢â´°âµ“âµ–â´°âµâ´·â´°âµ‰âµ¡âµ“âµâ´°â´½ ⵎⵓâµâµâµ‰âµ ⵠⵎⵉⵔⵉⴽⴰâµâµ“ⵔⵓⴳⵡⴰⵢⵓⵣⴱⴰⴽⵉⵙⵜⴰâµâ´°âµ¡â´°âµâ´½ ⵠⴼⴰ" + - "ⵜⵉⴽⴰâµâµ™â´°âµâ´¼â´°âµâµ™â´°âµ â´· ⴳⵔⵉâµâ´°â´·âµ‰âµâ´¼âµ‰âµâµ£âµ¡âµ‰âµâ´°âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵜⵉⵎⴳⴰⴷ âµ âµâµâ´³âµâµ‰âµ£âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠ" + - "ⵜⵉⵎⴳⴰⴷ ⵠⵉⵡⵓâµâ´°â´½ ⵎⵓâµâµâµ‰âµâ´¼âµ‰âµœâµâ´°âµŽâ´¼â´°âµâµ¡â´°âµŸâµ“ⵡⴰâµâµ‰âµ™ â´· ⴼⵓⵜⵓâµâ´°âµ™â´°âµŽâµ¡â´°âµ¢â´°âµŽâ´°âµâµŽâ´°âµ¢âµ“ⵟⴰⴼ" + - "ⵔⵉⵇⵢⴰ ⵠⵉⴼⴼⵓⵙⵣⴰⵎⴱⵢⴰⵣⵉⵎⴱⴰⴱⵡⵉ", - []uint16{ // 260 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0012, 0x0027, 0x0045, 0x006e, 0x0080, 0x0095, - 0x00aa, 0x00aa, 0x00bc, 0x00bc, 0x00d4, 0x0105, 0x0114, 0x012c, - 0x013b, 0x013b, 0x0156, 0x017c, 0x018e, 0x01a9, 0x01bb, 0x01dd, - 0x01f2, 0x0204, 0x0219, 0x0228, 0x0228, 0x023a, 0x0249, 0x025e, - 0x025e, 0x0270, 0x0285, 0x0297, 0x0297, 0x02af, 0x02ca, 0x02d9, - 0x02eb, 0x02eb, 0x033f, 0x0390, 0x039f, 0x03b1, 0x03cd, 0x03f3, - 0x0402, 0x0417, 0x0429, 0x0441, 0x0441, 0x045d, 0x0469, 0x049e, - 0x049e, 0x049e, 0x04b0, 0x04e4, 0x04f9, 0x04f9, 0x050e, 0x0523, - // Entry 40 - 7F - 0x0538, 0x0572, 0x0581, 0x0581, 0x0596, 0x05ab, 0x05b7, 0x05b7, - 0x05cf, 0x05e1, 0x05f6, 0x05f6, 0x060e, 0x061d, 0x064c, 0x066a, - 0x066a, 0x067c, 0x068b, 0x06b0, 0x06c2, 0x06d4, 0x0705, 0x0705, - 0x0711, 0x0734, 0x0749, 0x075b, 0x076a, 0x0782, 0x07ab, 0x07bd, - 0x07bd, 0x07d8, 0x07e4, 0x0803, 0x0818, 0x0818, 0x0818, 0x0830, - 0x0845, 0x0854, 0x0869, 0x0869, 0x0884, 0x0899, 0x08ae, 0x08ae, - 0x08bd, 0x0915, 0x0927, 0x0933, 0x0945, 0x0957, 0x0957, 0x096c, - 0x097e, 0x0990, 0x099f, 0x09c0, 0x09d8, 0x09f0, 0x09ff, 0x0a28, - // Entry 80 - BF - 0x0a4e, 0x0a71, 0x0a80, 0x0aaf, 0x0aca, 0x0ad6, 0x0ae8, 0x0b00, - 0x0b1e, 0x0b36, 0x0b4b, 0x0b5d, 0x0b75, 0x0b93, 0x0ba5, 0x0bb4, - 0x0bc6, 0x0bd8, 0x0bf0, 0x0c0e, 0x0c0e, 0x0c2c, 0x0c5b, 0x0c76, - 0x0c82, 0x0c97, 0x0cac, 0x0cac, 0x0cf2, 0x0d0a, 0x0d25, 0x0d3d, - 0x0d4c, 0x0d5b, 0x0d6d, 0x0d7f, 0x0d91, 0x0da6, 0x0dbb, 0x0dd0, - 0x0e04, 0x0e16, 0x0e48, 0x0e5d, 0x0e78, 0x0e8d, 0x0e9f, 0x0eae, - 0x0ebd, 0x0ec9, 0x0ee7, 0x0ef6, 0x0f08, 0x0f14, 0x0f4e, 0x0f86, - 0x0f9e, 0x0fb6, 0x0fcb, 0x0ff7, 0x100f, 0x102b, 0x1062, 0x1074, - // Entry C0 - FF - 0x1083, 0x109b, 0x10aa, 0x10aa, 0x10c2, 0x10d7, 0x10e9, 0x10f8, - 0x110a, 0x1125, 0x1157, 0x1169, 0x117b, 0x118a, 0x11a2, 0x11ba, - 0x11d2, 0x11d2, 0x11ea, 0x1205, 0x1220, 0x1238, 0x124a, 0x125f, - 0x1285, 0x12b4, 0x12cc, 0x12cc, 0x12db, 0x12f9, 0x12f9, 0x1339, - 0x1345, 0x1345, 0x1351, 0x1366, 0x1387, 0x1399, 0x13bc, 0x13dd, - 0x13e9, 0x13f8, 0x140a, 0x1439, 0x144b, 0x145d, 0x1475, 0x148a, - 0x149c, 0x149c, 0x14db, 0x14f0, 0x150e, 0x1537, 0x156f, 0x1587, - 0x15c9, 0x161e, 0x1630, 0x1645, 0x166b, 0x167a, 0x167a, 0x1689, - // Entry 100 - 13F - 0x1698, 0x16c1, 0x16d3, 0x16eb, - }, - }, - { // zh - zhRegionStr, - zhRegionIdx, - }, - { // zh-Hant - zhHantRegionStr, - zhHantRegionIdx, - }, - { // zh-Hant-HK - "阿拉伯è¯åˆé…‹é•·åœ‹é˜¿é­¯å·´é˜¿å¡žæ‹œç–†æ³¢æ–¯å°¼äºžå’Œé»‘塞哥維那åšèŒ¨ç“¦ç´å‰›æžœ - 金å¤æ²™å‰›æžœ - 布拉薩哥斯é”黎加塞浦路斯厄立特里亞埃塞俄比亞格林ç´é”格魯å‰äºž" + - "å±åœ°é¦¬æ‹‰æ„大利肯雅科摩羅列支敦士登èŠç´¢æ‰˜é»‘山毛里裘斯馬爾代夫莫桑比克尼日爾尼日利亞巴布亞新幾內亞皮特凱æ©å³¶å¡å¡”爾盧旺é”沙特阿拉伯所羅" + - "門群島塞舌爾斯洛文尼亞斯瓦爾巴特群島åŠæšé¦¬å»¶å³¶å¡žæ‹‰åˆ©æ˜‚æ–¯å¨å£«è˜­ç‰¹å…‹æ–¯å’Œå‡±ç§‘斯群島法屬å—部地å€æ¹¯åŠ åœ–瓦盧å¦æ¡‘尼亞瓦努阿圖贊比亞中美洲", - []uint16{ // 268 elements - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, - 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, - 0x0021, 0x0021, 0x002d, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, - 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, - 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x0057, 0x0057, 0x0057, - 0x0057, 0x0057, 0x0069, 0x0069, 0x007b, 0x007b, 0x007b, 0x007b, - 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x008a, 0x008a, 0x008a, - 0x008a, 0x008a, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, - // Entry 40 - 7F - 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, - 0x00a5, 0x00a5, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, - 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00c0, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, - 0x00cc, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, - 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00e1, 0x00e1, 0x00e1, - 0x00e1, 0x00e1, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00f0, 0x00f0, - // Entry 80 - BF - 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, - 0x00ff, 0x00ff, 0x00ff, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, - 0x0108, 0x0108, 0x0108, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, - 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, - 0x010e, 0x011a, 0x0126, 0x0126, 0x0126, 0x0126, 0x0132, 0x0132, - 0x0132, 0x013b, 0x013b, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, - 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x015c, - 0x015c, 0x015c, 0x015c, 0x015c, 0x016b, 0x016b, 0x016b, 0x016b, - // Entry C0 - FF - 0x016b, 0x016b, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, - 0x017d, 0x018c, 0x019b, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, - 0x01b3, 0x01d7, 0x01d7, 0x01e3, 0x01e3, 0x01e3, 0x01e3, 0x01e3, - 0x01e3, 0x01e3, 0x01e3, 0x01e3, 0x01e3, 0x01ef, 0x01ef, 0x020a, - 0x020a, 0x021c, 0x021c, 0x021c, 0x021c, 0x021c, 0x021c, 0x021c, - 0x021c, 0x0222, 0x0222, 0x0222, 0x022b, 0x022b, 0x0237, 0x0237, - 0x0237, 0x0237, 0x0237, 0x0237, 0x0237, 0x0237, 0x0237, 0x0237, - 0x0237, 0x0237, 0x0237, 0x0243, 0x0243, 0x0243, 0x0243, 0x0243, - // Entry 100 - 13F - 0x0243, 0x0243, 0x024c, 0x024c, 0x024c, 0x024c, 0x024c, 0x024c, - 0x024c, 0x024c, 0x024c, 0x0255, - }, - }, - { // zu - zuRegionStr, - zuRegionIdx, - }, -} - -// Size: 3026 bytes -var afRegionStr string = "" + - "AscensioneilandAndorraVerenigde Arabiese EmirateAfganistanAntigua en Bar" + - "budaAnguillaAlbaniëArmeniëNederlands-AntilleAngolaAntarktikaArgentiniëAm" + - "erikaans-SamoaOostenrykAustraliëArubaÃ…landeilandeAzerbeidjanBosnië en He" + - "rzegowinaBarbadosBangladesjBelgiëBurkina FasoBulgaryeBahreinBurundiBenin" + - "Sint BarthélemyBermudaBroeneiBoliviëKaribiese NederlandBrasiliëBahamasBh" + - "oetanBouvet-eilandBotswanaBelarusBelizeKanadaKokos-eilandeDemokratiese R" + - "epubliek van die KongoSentraal-Afrikaanse RepubliekRepubliek van die Kon" + - "goSwitserlandIvoorkusCookeilandeChiliKameroenSjinaColombiëClippertoneila" + - "ndCosta RicaKubaKaap VerdeCuraçaoKerseilandSiprusTjeggiese RepubliekDuit" + - "slandDiego GarciaDjiboetiDenemarkeDominicaDominikaanse RepubliekAlgeriëC" + - "euta en MelillaEcuadorEstlandEgipteWes-SaharaEritreaSpanjeEthiopiëEurope" + - "se UnieFinlandFidjiFalklandeilandeMikronesiëFaroëreilandeFrankrykGaboenV" + - "erenigde KoninkrykGrenadaGeorgiëFrans-GuyanaGuernseyGhanaGibraltarGroenl" + - "andGambiëGuineeGuadeloupeEkwatoriaal-GuineeGriekelandSuid-Georgië en die" + - " Suidelike SandwicheilandeGuatemalaGuamGuinee-BissauGuyanaHongkong SAS S" + - "jinaHeard- en McDonaldeilandeHondurasKroasiëHaïtiHongaryeKanariese Eilan" + - "deIndonesiëIerlandIsraelEiland ManIndiëBrits-Indiese OseaangebiedIrakIra" + - "nYslandItaliëJerseyJamaikaJordaniëJapanKeniaKirgisiëKambodjaKiribatiComo" + - "reSt. Kitts en NevisNoord-KoreaSuid-KoreaKoeweitKaaimanseilandeKazakstan" + - "LaosLibanonSt. LuciaLiechtensteinSri LankaLiberiëLesothoLitaueLuxemburgL" + - "etlandLibiëMarokkoMonacoMoldowaMontenegroSint MartinMadagaskarMarshallei" + - "landeMacedoniëMaliMianmar (Birma)MongoliëMacau SAS SjinaNoord-Mariane-ei" + - "landeMartiniqueMauritaniëMontserratMaltaMauritiusMalediveMalawiMeksikoMa" + - "leisiëMosambiekNamibiëNieu-KaledoniëNigerNorfolkeilandNigeriëNicaraguaNe" + - "derlandNoorweëNepalNauruNiueNieu-SeelandOmanPanamaPeruFrans-PolinesiëPap" + - "oea-Nieu-GuineeFilippynePakistanPoleSt. Pierre en MiquelonPitcairneiland" + - "ePuerto RicoPalestynse gebiedePortugalPalauParaguayKatarOmliggende Osean" + - "iëRéunionRoemeniëSerwiëRuslandRwandaSaoedi-ArabiëSalomonseilandeSeychell" + - "eSoedanSwedeSingapoerSint HelenaSloweniëSvalbard en Jan MayenSlowakyeSie" + - "rra LeoneSan MarinoSenegalSomaliëSurinameSuid-SoedanSão Tomé en Príncipe" + - "El SalvadorSint MaartenSiriëSwazilandTristan da CunhaTurks- en Caicoseil" + - "andeTsjadFranse Suidelike GebiedeTogoThailandTadjikistanTokelauOos-Timor" + - "TurkmeniëTunisiëTongaTurkyeTrinidad en TobagoTuvaluTaiwanTanzaniëOekraïn" + - "eUgandaVS klein omliggende eilandeVerenigde State van AmerikaUruguayOesb" + - "ekistanVatikaanstadSt. Vincent en die GrenadineVenezuelaBritse Maagde-ei" + - "landeAmerikaanse Maagde-eilandeViëtnamVanuatuWallis en FutunaSamoaKosovo" + - "JemenMayotteSuid-AfrikaZambiëZimbabweOnbekende gebiedWêreldAfrikaNoord-A" + - "merikaSuid-AmerikaOseaniëWes-AfrikaSentraal-AmerikaOos-AfrikaNoord-Afrik" + - "aMidde-AfrikaSuider-AfrikaAmerikasNoordelike AmerikaKaribiesOos-AsiëSuid" + - "-AsiëSuidoos-AsiëSuid-EuropaAustralasiëMelanesiëMikronesiese streekPolin" + - "esiëAsiëSentraal-AsiëWes-AsiëEuropaOos-EuropaNoord-EuropaWes-EuropaLatyn" + - "s-Amerika" - -// Size: 606 bytes, 291 elements -var afRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000f, 0x0016, 0x0030, 0x003a, 0x004c, 0x0054, 0x005c, - 0x0064, 0x0076, 0x007c, 0x0086, 0x0091, 0x00a1, 0x00aa, 0x00b4, - 0x00b9, 0x00c6, 0x00d1, 0x00e7, 0x00ef, 0x00f9, 0x0100, 0x010c, - 0x0114, 0x011b, 0x0122, 0x0127, 0x0137, 0x013e, 0x0145, 0x014d, - 0x0160, 0x0169, 0x0170, 0x0177, 0x0184, 0x018c, 0x0193, 0x0199, - 0x019f, 0x01ac, 0x01d0, 0x01ed, 0x0204, 0x020f, 0x0217, 0x0222, - 0x0227, 0x022f, 0x0234, 0x023d, 0x024d, 0x0257, 0x025b, 0x0265, - 0x026d, 0x0277, 0x027d, 0x0290, 0x0299, 0x02a5, 0x02ad, 0x02b6, - // Entry 40 - 7F - 0x02be, 0x02d4, 0x02dc, 0x02ec, 0x02f3, 0x02fa, 0x0300, 0x030a, - 0x0311, 0x0317, 0x0320, 0x032d, 0x0334, 0x0339, 0x0348, 0x0353, - 0x0361, 0x0369, 0x036f, 0x0382, 0x0389, 0x0391, 0x039d, 0x03a5, - 0x03aa, 0x03b3, 0x03bc, 0x03c3, 0x03c9, 0x03d3, 0x03e5, 0x03ef, - 0x041d, 0x0426, 0x042a, 0x0437, 0x043d, 0x044f, 0x0468, 0x0470, - 0x0478, 0x047e, 0x0486, 0x0497, 0x04a1, 0x04a8, 0x04ae, 0x04b8, - 0x04be, 0x04d8, 0x04dc, 0x04e0, 0x04e6, 0x04ed, 0x04f3, 0x04fa, - 0x0503, 0x0508, 0x050d, 0x0516, 0x051e, 0x0526, 0x052c, 0x053e, - // Entry 80 - BF - 0x0549, 0x0553, 0x055a, 0x0569, 0x0572, 0x0576, 0x057d, 0x0586, - 0x0593, 0x059c, 0x05a4, 0x05ab, 0x05b1, 0x05ba, 0x05c1, 0x05c7, - 0x05ce, 0x05d4, 0x05db, 0x05e5, 0x05f0, 0x05fa, 0x0609, 0x0613, - 0x0617, 0x0626, 0x062f, 0x063e, 0x0653, 0x065d, 0x0668, 0x0672, - 0x0677, 0x0680, 0x0688, 0x068e, 0x0695, 0x069e, 0x06a7, 0x06af, - 0x06be, 0x06c3, 0x06d0, 0x06d8, 0x06e1, 0x06ea, 0x06f2, 0x06f7, - 0x06fc, 0x0700, 0x070c, 0x0710, 0x0716, 0x071a, 0x072a, 0x073c, - 0x0745, 0x074d, 0x0751, 0x0767, 0x0776, 0x0781, 0x0793, 0x079b, - // Entry C0 - FF - 0x07a0, 0x07a8, 0x07ad, 0x07c0, 0x07c8, 0x07d1, 0x07d8, 0x07df, - 0x07e5, 0x07f3, 0x0802, 0x080b, 0x0811, 0x0816, 0x081f, 0x082a, - 0x0833, 0x0848, 0x0850, 0x085c, 0x0866, 0x086d, 0x0875, 0x087d, - 0x0888, 0x089f, 0x08aa, 0x08b6, 0x08bc, 0x08c5, 0x08d5, 0x08ec, - 0x08f1, 0x0909, 0x090d, 0x0915, 0x0920, 0x0927, 0x0930, 0x093a, - 0x0942, 0x0947, 0x094d, 0x095f, 0x0965, 0x096b, 0x0974, 0x097d, - 0x0983, 0x099e, 0x09b9, 0x09c0, 0x09cb, 0x09d7, 0x09f3, 0x09fc, - 0x0a11, 0x0a2b, 0x0a33, 0x0a3a, 0x0a4a, 0x0a4f, 0x0a55, 0x0a5a, - // Entry 100 - 13F - 0x0a61, 0x0a6c, 0x0a73, 0x0a7b, 0x0a8b, 0x0a92, 0x0a98, 0x0aa5, - 0x0ab1, 0x0ab9, 0x0ac3, 0x0ad3, 0x0add, 0x0ae9, 0x0af5, 0x0b02, - 0x0b0a, 0x0b1c, 0x0b24, 0x0b2d, 0x0b37, 0x0b44, 0x0b4f, 0x0b5b, - 0x0b65, 0x0b78, 0x0b82, 0x0b87, 0x0b95, 0x0b9e, 0x0ba4, 0x0bae, - 0x0bba, 0x0bc4, 0x0bd2, -} - -// Size: 5333 bytes -var amRegionStr string = "" + - "አሴንሽን ደሴትአንዶራየተባበሩት አረብ ኤáˆáˆ¬á‰µáˆµáŠ áጋኒስታንአንቲጓ እና ባሩዳአንጉኢላአáˆá‰£áŠ’ያአርሜኒያኔዘርላንድስ አን" + - "ቲáˆáˆµáŠ áŠ•áŒáˆ‹áŠ áŠ•á‰³áˆ­áŠ­á‰²áŠ«áŠ áˆ­áŒ€áŠ•á‰²áŠ“የአሜሪካ ሳሞአኦስትሪያአá‹áˆµá‰µáˆ«áˆá‹«áŠ áˆ©á‰£á‹¨áŠ áˆ‹áŠ•á‹µ ደሴቶችአዘርባጃንቦስኒያ እና ሄር" + - "ዞጎቪኒያባርቤዶስባንáŒáˆ‹á‹²áˆ½á‰¤áˆáŒ„áˆá‰¡áˆ­áŠªáŠ“ á‹áˆ¶á‰¡áˆáŒŒáˆªá‹«á‰£áˆ…ሬንብሩንዲቤኒንቅዱስ በርቴሎሜቤርሙዳብሩኒቦሊቪያየካሪቢያን " + - "ኔዘርላንድስብራዚáˆá‰£áˆƒáˆ›áˆµá‰¡áˆ…ታንቡቬት ደሴትቦትስዋናቤላሩስቤሊዘካናዳኮኮስ(ኬሊንáŒ) ደሴቶችኮንጎ-ኪንሻሳየመካከለኛá‹" + - " አáሪካ ሪáብሊክኮንጎ ብራዛቪáˆáˆµá‹Šá‹˜áˆ­áˆ‹áŠ•á‹µáŠ®á‰µ ዲቯርኩክ ደሴቶችቺሊካሜሩንቻይናኮሎáˆá‰¢á‹«áŠ­áˆŠáርቶን ደሴትኮስታ ሪካኩባ" + - "ኬᕠቬርዴኩራሳዎየገና ደሴትሳይá•áˆ¨áˆµá‰¼áŠ­ ሪá‘ብሊክጀርመንዲዬጎ ጋርሺያጂቡቲዴንማርክዶሚኒካዶሚኒክ ሪá‘ብሊክአáˆáŒ„ሪያሴ" + - "ኡታና ሜሊላኢኳዶርኤስቶኒያáŒá‰¥áŒ½áˆá‹•áˆ«á‰£á‹Š ሳህራኤርትራስá”ንኢትዮጵያየአá‹áˆ®á“ ህብረትáŠáŠ•áˆ‹áŠ•á‹µáŠáŒ‚የáŽáŠ­áˆ‹áŠ•á‹µ ደሴቶችሚክ" + - "ሮኔዢያየá‹áˆ® ደሴቶችáˆáˆ¨áŠ•áˆ³á‹­áŒ‹á‰¦áŠ•áŠ¥áŠ•áŒáˆŠá‹áŒáˆ¬áŠ“ዳጆርጂያየáˆáˆ¨áŠ•áˆ³á‹­ ጉዊአናጉርáŠáˆ²áŒ‹áŠ“ጂብራáˆá‰°áˆ­áŒáˆªáŠ•áˆ‹áŠ•á‹µáŒ‹áˆá‰¢á‹«áŒŠáŠ’ጉዋ" + - "ደሉá•áŠ¢áŠ³á‰¶áˆªá‹«áˆ ጊኒáŒáˆªáŠ­á‹°á‰¡á‰¥ ጆርጂያ እና የደቡብ ሳንድዊች ደሴቶችጉዋቲማላጉዋáˆáŒŠáŠ’ ቢሳኦጉያናሆንጠኮንጠSAR" + - " ቻይናኽርድ ደሴቶችና ማክዶናáˆá‹µ ደሴቶችሆንዱራስክሮኤሽያሀይቲሀንጋሪየካናሪ ደሴቶችኢንዶኔዢያአየርላንድእስራኤáˆáŠ á‹­áˆ " + - "ኦá ማንህንድየብሪታኒያ ህንድ á‹á‰‚ያኖስ áŒá‹›á‰µáŠ¢áˆ«á‰…ኢራንአይስላንድጣሊያንጀርሲጃማይካጆርዳንጃá“ንኬንያኪርጊስታንካáˆá‰¦" + - "ዲያኪሪባቲኮሞሮስቅዱስ ኪትስ እና ኔቪስሰሜን ኮሪያደቡብ ኮሪያክዌትካይማን ደሴቶችካዛኪስታንላኦስሊባኖስሴንት ሉቺያ" + - "ሊችተንስታይንሲሪላንካላይቤሪያሌሶቶሊቱዌኒያሉክሰáˆá‰ áˆ­áŒáˆ‹á‰µá‰ªá‹«áˆŠá‰¢á‹«áˆžáˆ®áŠ®áˆžáŠ“ኮሞáˆá‹¶á‰«áˆžáŠ•á‰°áŠ”áŒáˆ®áˆ´áŠ•á‰µ ማርቲንማዳጋስካር" + - "ማርሻሠአይላንድመቄዶንያማሊማይናማር(በርማ)ሞንጎሊያማካኡ áˆá‹© የአስተዳደር ክáˆáˆ ቻይናየሰሜናዊ ማሪያና ደሴቶችማ" + - "ርቲኒክሞሪቴኒያሞንትሴራትማáˆá‰³áˆžáˆªáˆ¸áˆµáˆ›áˆá‹²á‰­áˆµáˆ›áˆ‹á‹ŠáˆœáŠ­áˆ²áŠ®áˆ›áˆŒá‹¢á‹«áˆžá‹›áˆá‰¢áŠ­áŠ“ሚቢያኒዠካሌዶኒያኒጀርኖርáŽáˆáŠ­ ደሴትናይጄ" + - "ሪያኒካራጓኔዘርላንድኖርዌኔá“áˆáŠ“ኡሩኒኡይኒዠዚላንድኦማንá“ናማá”ሩየáˆáˆ¨áŠ•áˆ³á‹­ á–ሊኔዢያá“á‘á‹‹ ኒዠጊኒáŠáˆŠá’ንስá“ኪስታን" + - "á–ላንድቅዱስ á’ዬር እና ሚኩኤሎንá’ትካኢርን አይስላንድá–ርታ ሪኮየááˆáˆµáŒ¤áˆ áŒá‹›á‰µá–ርቱጋáˆá“ላá‹á“ራጓይኳታርአá‹á‰µáˆ‹á‹­áŠ•" + - "ጠኦሽንያሪዩኒየንሮሜኒያሰርብያራሺያሩዋንዳሳá‹á‹µáŠ áˆ¨á‰¢á‹«áˆ°áˆŽáˆžáŠ• ደሴትሲሼáˆáˆµáˆ±á‹³áŠ•áˆµá‹Šá‹µáŠ•áˆ²áŠ•áŒ‹á–ርሴንት ሄለናስሎቬኒያስ" + - "ቫáˆá‰£áˆ­á‹µ እና ጃን ማየንስሎቫኪያሴራሊዮንሳን ማሪኖሴኔጋáˆáˆ±áˆ›áˆŒáˆ±áˆªáŠ“áˆá‹°á‰¡á‰¥ ሱዳንሳኦ ቶሜ እና á•áˆªáŠ•áˆ²á”ኤሠሳáˆá‰«á‹¶" + - "ርሲንት ማርተንሲሪያሱዋዚላንድትሪስታን ዲ ኩንሃየቱርኮችና የካኢኮስ ደሴቶችቻድየáˆáˆ¨áŠ•áˆ³á‹­ ደቡባዊ áŒá‹›á‰¶á‰½á‰¶áŒá‰³á‹­áˆ‹áŠ•" + - "ድታጃኪስታንቶክላá‹áˆáˆµáˆ«á‰… ሌስትቱርክሜኒስታንቱኒዚያቶንጋቱርክትሪናዳድ እና ቶቤጎቱቫሉታይዋንታንዛኒያዩክሬንዩጋንዳየ" + - "á‹© ኤስ ጠረá ላይ ያሉ ደሴቶችዩናይትድ ስቴትስኡራጓይኡá‹á‰¤áŠªáˆµá‰³áŠ•á‰«á‰²áŠ«áŠ• ከተማቅዱስ ቪንሴንት እና áŒáˆ¬áŠ“ዲንስቬንዙ" + - "ዌላየእንáŒáˆŠá‹ ቨርጂን ደሴቶችየአሜሪካ ቨርጂን ደሴቶችቬትናáˆá‰«áŠ‘አቱዋሊስ እና á‰á‰±áŠ“ ደሴቶችሳሞአኮሶቮየመንሜይኦቴደ" + - "ቡብ አáሪካዛáˆá‰¢á‹«á‹šáˆá‰§á‰¤á‹«áˆá‰³á‹ˆá‰€ ክáˆáˆá‹“ለáˆáŠ áሪካሰሜን አሜሪካደቡብ አሜሪካኦሽኒአáˆáˆµáˆ«á‰ƒá‹Š አáሪካመካከለኛዠአሜ" + - "ሪካáˆá‹•áˆ«á‰£á‹Š አáሪካሰሜናዊ አáሪካመካከለኛዠአáሪካደቡባዊ አáሪካአሜሪካሰሜናዊ አሜሪካካሪቢያንáˆá‹•áˆ«á‰£á‹Š እሲያደቡ" + - "ባዊ እሲያáˆá‹•áˆ«á‰£á‹Š ደቡብ እሲያደቡባዊ አá‹áˆ®á“አá‹áˆµá‰µáˆ«áˆŠá‹«áˆœáˆ‹áŠ”ዥያየማይክሮኔዥያን ክáˆáˆá–ሊኔዥያእሲያመካከለኛዠእሲ" + - "á‹«áˆáˆµáˆ«á‰ƒá‹Š እሲያአá‹áˆ®á“áˆá‹•áˆ«á‰£á‹Š አá‹áˆ®á“ሰሜናዊ አá‹áˆ®á“áˆáˆµáˆ«á‰ƒá‹Š አá‹áˆ®á“ላቲን አሜሪካ" - -// Size: 606 bytes, 291 elements -var amRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0019, 0x0025, 0x0051, 0x0066, 0x0083, 0x0092, 0x00a1, - 0x00b0, 0x00d5, 0x00e1, 0x00f6, 0x0108, 0x0121, 0x0130, 0x0145, - 0x014e, 0x016a, 0x017c, 0x01a5, 0x01b4, 0x01c6, 0x01d2, 0x01e5, - 0x01f4, 0x0200, 0x020c, 0x0215, 0x022e, 0x023a, 0x0243, 0x024f, - 0x0277, 0x0283, 0x028f, 0x029b, 0x02ae, 0x02bd, 0x02c9, 0x02d2, - 0x02db, 0x02ff, 0x0315, 0x0347, 0x0360, 0x0375, 0x0385, 0x0398, - 0x039e, 0x03aa, 0x03b3, 0x03c2, 0x03de, 0x03ee, 0x03f4, 0x0404, - 0x0410, 0x0423, 0x0432, 0x0448, 0x0454, 0x046a, 0x0473, 0x0482, - // Entry 40 - 7F - 0x048e, 0x04aa, 0x04b9, 0x04cf, 0x04db, 0x04ea, 0x04f3, 0x050c, - 0x0518, 0x0521, 0x0530, 0x054c, 0x055b, 0x0561, 0x0580, 0x0592, - 0x05a8, 0x05b7, 0x05c0, 0x05cf, 0x05db, 0x05e7, 0x0606, 0x0612, - 0x0618, 0x062a, 0x063c, 0x0648, 0x064e, 0x065d, 0x0676, 0x067f, - 0x06c6, 0x06d5, 0x06de, 0x06ee, 0x06f7, 0x0718, 0x0751, 0x0760, - 0x076f, 0x0778, 0x0784, 0x079d, 0x07af, 0x07c1, 0x07d0, 0x07e7, - 0x07f0, 0x0826, 0x082f, 0x0838, 0x084a, 0x0856, 0x085f, 0x086b, - 0x0877, 0x0880, 0x0889, 0x089b, 0x08aa, 0x08b6, 0x08c2, 0x08e6, - // Entry 80 - BF - 0x08f9, 0x090c, 0x0915, 0x092e, 0x0940, 0x0949, 0x0955, 0x0968, - 0x0980, 0x098f, 0x099e, 0x09a7, 0x09b6, 0x09cb, 0x09d7, 0x09e0, - 0x09e9, 0x09f2, 0x09fe, 0x0a10, 0x0a26, 0x0a38, 0x0a54, 0x0a63, - 0x0a69, 0x0a83, 0x0a92, 0x0acc, 0x0af5, 0x0b04, 0x0b13, 0x0b25, - 0x0b2e, 0x0b3a, 0x0b49, 0x0b52, 0x0b5e, 0x0b6a, 0x0b79, 0x0b85, - 0x0b9b, 0x0ba4, 0x0bbd, 0x0bcc, 0x0bd8, 0x0bea, 0x0bf3, 0x0bfc, - 0x0c05, 0x0c0e, 0x0c21, 0x0c2a, 0x0c33, 0x0c39, 0x0c5b, 0x0c72, - 0x0c81, 0x0c90, 0x0c9c, 0x0cc6, 0x0ceb, 0x0cfb, 0x0d17, 0x0d26, - // Entry C0 - FF - 0x0d2f, 0x0d3b, 0x0d44, 0x0d66, 0x0d75, 0x0d81, 0x0d8d, 0x0d96, - 0x0da2, 0x0db7, 0x0dcd, 0x0dd9, 0x0de2, 0x0dee, 0x0dfd, 0x0e10, - 0x0e1f, 0x0e49, 0x0e58, 0x0e67, 0x0e77, 0x0e83, 0x0e8c, 0x0e98, - 0x0eab, 0x0ecf, 0x0ee5, 0x0efb, 0x0f04, 0x0f16, 0x0f33, 0x0f62, - 0x0f68, 0x0f94, 0x0f9a, 0x0fa9, 0x0fbb, 0x0fc7, 0x0fdd, 0x0ff5, - 0x1001, 0x100a, 0x1013, 0x1033, 0x103c, 0x1048, 0x1057, 0x1063, - 0x106f, 0x10a1, 0x10bd, 0x10c9, 0x10de, 0x10f4, 0x1127, 0x1136, - 0x1162, 0x118b, 0x1197, 0x11a3, 0x11ca, 0x11d3, 0x11dc, 0x11e5, - // Entry 100 - 13F - 0x11f1, 0x1207, 0x1213, 0x121f, 0x1238, 0x1241, 0x124d, 0x1263, - 0x1279, 0x1285, 0x12a1, 0x12c0, 0x12dc, 0x12f5, 0x1314, 0x132d, - 0x1339, 0x1352, 0x1361, 0x137a, 0x1390, 0x13b3, 0x13cc, 0x13e1, - 0x13f0, 0x1415, 0x1424, 0x142d, 0x1449, 0x1462, 0x146e, 0x148a, - 0x14a3, 0x14bf, 0x14d5, -} - -// Size: 5380 bytes -var arRegionStr string = "" + - "جزيرة أسينشيونأندوراالإمارات العربية المتحدةأÙغانستانأنتيغوا وبربوداأنغو" + - "يلاألبانياأرمينياجزر الأنتيل الهولنديةأنغولاأنتاركتيكاالأرجنتينساموا ال" + - "أمريكيةالنمساأسترالياآروباجزر آلاندأذربيجانالبوسنة والهرسكبربادوسبنجلاد" + - "يشبلجيكابوركينا Ùاسوبلغارياالبحرينبورونديبنينسان بارتليميبرمودابرونايبو" + - "ليÙياهولندا الكاريبيةالبرازيلالباهامابوتانجزيرة بوÙيهبتسواناروسيا البيض" + - "اءبليزكنداجزر كوكوسالكونغو - كينشاساجمهورية Ø£Ùريقيا الوسطىالكونغو - برا" + - "زاÙيلسويسراساحل العاججزر كوكشيليالكاميرونالصينكولومبياجزيرة كليبيرتونكو" + - "ستاريكاكوباالرأس الأخضركوراساوجزيرة الكريسماسقبرصجمهورية التشيكألمانياد" + - "ييغو غارسياجيبوتيالدانمركدومينيكاجمهورية الدومينيكالجزائرسيوتا وميليلاا" + - "لإكوادورأستونيامصرالصحراء الغربيةأريترياإسبانياإثيوبياالاتحاد الأوروبيÙ" + - "نلنداÙيجيجزر Ùوكلاندميكرونيزياجزر ÙاروÙرنساالجابونالمملكة المتحدةغريناد" + - "اجورجياغويانا الÙرنسيةغيرنزيغاناجبل طارقغرينلاندغامبياغينياجوادلوبغينيا" + - " الإستوائيةاليونانجورجيا الجنوبية وجزر ساندويتش الجنوبيةغواتيمالاغوامغين" + - "يا بيساوغياناهونغ كونغ الصينيةجزيرة هيرد وجزر ماكدونالدهندوراسكرواتياها" + - "يتيهنغارياجزر الكناريأندونيسياأيرلنداإسرائيلجزيرة مانالهندالإقليم البري" + - "طاني ÙÙŠ المحيط الهنديالعراقإيرانأيسلنداإيطالياجيرسيجامايكاالأردناليابان" + - "كينياقرغيزستانكمبودياكيريباتيجزر القمرسانت كيتس ونيÙيسكوريا الشماليةكور" + - "يا الجنوبيةالكويتجزر الكايمنكازاخستانلاوسلبنانسانت لوسياليختنشتاينسريلا" + - "نكاليبيرياليسوتوليتوانيالوكسمبورغلاتÙياليبياالمغربموناكومولداÙياالجبل ا" + - "لأسودسانت مارتنمدغشقرجزر المارشالمقدونياماليميانمار -بورمامنغوليامكاو ا" + - "لصينية (منطقة إدارية خاصة)جزر ماريانا الشماليةمارتينيكموريتانيامونتسرات" + - "مالطاموريشيوسجزر المالديÙملاويالمكسيكماليزياموزمبيقناميبياكاليدونيا الج" + - "ديدةالنيجرجزيرة نورÙوكنيجيريانيكاراغواهولنداالنرويجنيبالناورونيوينيوزيل" + - "انداعÙمانبنمابيروبولينيزيا الÙرنسيةبابوا غينيا الجديدةالÙلبينباكستانبول" + - "نداسانت بيير وميكولونجزر بيتكيرنبورتوريكوالأراضي الÙلسطينيةالبرتغالبالا" + - "وباراغوايقطرأوقيانوسيا النائيةروينيونرومانياصربياروسياروانداالمملكة الع" + - "ربية السعوديةجزر سليمانسيشلالسودانالسويدسنغاÙورةسانت هيلناسلوÙينياسÙالب" + - "ارد وجان مايانسلوÙاكياسيراليونسان مارينوالسنغالالصومالسورينامجنوب السود" + - "انساو تومي وبرينسيبيالسلÙادورسينت مارتنسورياسوازيلاندتريستان دي كونهاجز" + - "ر الترك وجايكوستشادالمقاطعات الجنوبية الÙرنسيةتوجوتايلاندطاجكستانتوكيلو" + - "تيمور الشرقيةتركمانستانتونستونغاتركياترينيداد وتوباغوتوÙالوتايوانتانزان" + - "ياأوكرانياأوغنداجزر الولايات المتحدة النائيةالولايات المتحدةأورغوايأوزب" + - "كستانالÙاتيكانسانت Ùنسنت وغرنادينÙنزويلاجزر Ùرجين البريطانيةجزر Ùرجين ا" + - "لأمريكيةÙيتنامÙانواتوجزر والس ÙˆÙوتوناسامواكوسوÙواليمنمايوتجنوب Ø£Ùريقياز" + - "امبيازيمبابويمنطقة غير معروÙةالعالمأÙريقياأمريكا الشماليةأمريكا الجنوبي" + - "ةأوقيانوسياغرب Ø£Ùريقياأمريكا الوسطىشرق Ø£Ùريقياشمال Ø£Ùريقياوسط Ø£ÙريقياأÙ" + - "ريقيا الجنوبيةالأمريكتينشمال أمريكاالكاريبيشرق آسياجنوب آسياجنوب شرق آس" + - "ياجنوب أوروباأسترالاسياميلانيزياالجزر الميكرونيزيةبولينيزياآسياوسط آسيا" + - "غرب آسياأوروباشرق أوروباشمال أوروباغرب أوروباأمريكا اللاتينية" - -// Size: 606 bytes, 291 elements -var arRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x001b, 0x0027, 0x0055, 0x0067, 0x0084, 0x0092, 0x00a0, - 0x00ae, 0x00d6, 0x00e2, 0x00f6, 0x0108, 0x0125, 0x0131, 0x0141, - 0x014b, 0x015c, 0x016c, 0x0189, 0x0197, 0x01a7, 0x01b3, 0x01ca, - 0x01d8, 0x01e6, 0x01f4, 0x01fc, 0x0213, 0x021f, 0x022b, 0x0239, - 0x0258, 0x0268, 0x0278, 0x0282, 0x0297, 0x02a5, 0x02be, 0x02c6, - 0x02ce, 0x02df, 0x02fe, 0x0328, 0x0349, 0x0355, 0x0368, 0x0375, - 0x037d, 0x038f, 0x0399, 0x03a9, 0x03c6, 0x03d8, 0x03e0, 0x03f7, - 0x0405, 0x0422, 0x042a, 0x0445, 0x0453, 0x046a, 0x0476, 0x0486, - // Entry 40 - 7F - 0x0496, 0x04b7, 0x04c5, 0x04de, 0x04f0, 0x04fe, 0x0504, 0x0521, - 0x052f, 0x053d, 0x054b, 0x056a, 0x0576, 0x057e, 0x0593, 0x05a7, - 0x05b6, 0x05c0, 0x05ce, 0x05eb, 0x05f9, 0x0605, 0x0622, 0x062e, - 0x0636, 0x0645, 0x0655, 0x0661, 0x066b, 0x0679, 0x0698, 0x06a6, - 0x06ee, 0x0700, 0x0708, 0x071d, 0x0727, 0x0747, 0x0776, 0x0784, - 0x0792, 0x079c, 0x07aa, 0x07bf, 0x07d1, 0x07df, 0x07ed, 0x07fe, - 0x0808, 0x0848, 0x0854, 0x085e, 0x086c, 0x087a, 0x0884, 0x0892, - 0x089e, 0x08ac, 0x08b6, 0x08c8, 0x08d6, 0x08e6, 0x08f7, 0x0915, - // Entry 80 - BF - 0x0930, 0x094b, 0x0957, 0x096c, 0x097e, 0x0986, 0x0990, 0x09a3, - 0x09b7, 0x09c7, 0x09d5, 0x09e1, 0x09f1, 0x0a03, 0x0a0f, 0x0a19, - 0x0a25, 0x0a31, 0x0a41, 0x0a58, 0x0a6b, 0x0a77, 0x0a8e, 0x0a9c, - 0x0aa4, 0x0abe, 0x0acc, 0x0b06, 0x0b2c, 0x0b3c, 0x0b4e, 0x0b5e, - 0x0b68, 0x0b78, 0x0b8f, 0x0b99, 0x0ba7, 0x0bb5, 0x0bc3, 0x0bd1, - 0x0bf2, 0x0bfe, 0x0c15, 0x0c23, 0x0c35, 0x0c41, 0x0c4f, 0x0c59, - 0x0c63, 0x0c6b, 0x0c7f, 0x0c89, 0x0c91, 0x0c99, 0x0cbc, 0x0ce0, - 0x0cee, 0x0cfc, 0x0d08, 0x0d2a, 0x0d3f, 0x0d51, 0x0d74, 0x0d84, - // Entry C0 - FF - 0x0d8e, 0x0d9e, 0x0da4, 0x0dc7, 0x0dd5, 0x0de3, 0x0ded, 0x0df7, - 0x0e03, 0x0e31, 0x0e44, 0x0e4c, 0x0e5a, 0x0e66, 0x0e76, 0x0e89, - 0x0e99, 0x0ebd, 0x0ecd, 0x0edd, 0x0ef0, 0x0efe, 0x0f0c, 0x0f1a, - 0x0f31, 0x0f53, 0x0f65, 0x0f78, 0x0f82, 0x0f94, 0x0fb2, 0x0fd2, - 0x0fda, 0x100e, 0x1016, 0x1024, 0x1034, 0x1040, 0x1059, 0x106d, - 0x1075, 0x107f, 0x1089, 0x10a8, 0x10b4, 0x10c0, 0x10d0, 0x10e0, - 0x10ec, 0x1121, 0x1140, 0x114e, 0x1160, 0x1172, 0x1196, 0x11a4, - 0x11ca, 0x11ee, 0x11fa, 0x1208, 0x1226, 0x1230, 0x123c, 0x1246, - // Entry 100 - 13F - 0x1250, 0x1267, 0x1273, 0x1283, 0x12a1, 0x12ad, 0x12bb, 0x12d8, - 0x12f5, 0x1309, 0x131e, 0x1337, 0x134c, 0x1363, 0x1378, 0x1397, - 0x13ab, 0x13c0, 0x13d0, 0x13df, 0x13f0, 0x1408, 0x141d, 0x1431, - 0x1443, 0x1466, 0x1478, 0x1480, 0x148f, 0x149e, 0x14aa, 0x14bd, - 0x14d2, 0x14e5, 0x1504, -} - -// Size: 3197 bytes -var azRegionStr string = "" + - "YüksÉ™liÅŸ AdasıAndorraBirləşmiÅŸ ÆrÉ™b ÆmirliklÉ™riÆfqanıstanAntiqua vÉ™ Barb" + - "udaAngilaAlbaniyaErmÉ™nistanHollandiya antilleriAnqolaAntarktikaArgentina" + - "Amerika SamoasıAvstriyaAvstraliyaArubaAland AdalarıAzÉ™rbaycanBosniya vÉ™ " + - "HersoqovinaBarbadosBanqladeÅŸBelçikaBurkina FasoBolqariyaBÉ™hreynBurundiBe" + - "ninSan BartolomeyBermudaBruneyBoliviyaKarib NiderlandıBraziliyaBaham Ada" + - "larıButanBuve AdasıBotsvanaBelarusBelizKanadaKokos AdalarıKonqo - KinÅŸas" + - "aMÉ™rkÉ™zi Afrika RespublikasıKonqo - BrazzavilÄ°sveçrÉ™Fil DiÅŸi SahiliKuk A" + - "dalarıÇiliKamerunÇinKolumbiyaKlipperton AdasıKosta RikaKubaKape VerdeKur" + - "asaoMilad AdasıKiprÇexiyaAlmaniyaDieqo QarsiyaCibutiDanimarkaDominikaDom" + - "inikan RespublikasıÆlcÉ™zairSeuta vÉ™ MelilyaEkvadorEstoniyaMisirQÉ™rbi Sah" + - "araEritreyaÄ°spaniyaEfiopiyaAvropa BirliyiFinlandiyaFiciFolklend AdalarıM" + - "ikroneziyaFarer AdalarıFransaQabonBirləşmiÅŸ KrallıqQrenadaGürcüstanFrans" + - "ız QviyanasıGernseyQanaGibraltarQrenlandiyaQambiyaQvineyaQvadelupaEkvat" + - "orial QvineyaYunanıstanCÉ™nubi Corciya vÉ™ CÉ™nubi Sendviç AdalarıQvatemala" + - "QuamQvineya-BisauQviyanaHonq Konq Xüsusi Ä°nzibati Ærazi ÇinHerd vÉ™ Mak D" + - "onald AdalarıHondurasXorvatiyaHaitiMacarıstanKanar AdalarıİndoneziyaÄ°rla" + - "ndiyaÄ°srailMen AdasıHindistanBritaniya Hind Okeanı ÆrazisiÄ°raqÄ°ranÄ°sland" + - "iyaÄ°taliyaCersiYamaykaÄ°ordaniyaYaponiyaKeniyaQırğızıstanKambocaKiribatiK" + - "omor AdalarıSan Kits vÉ™ NevisÅžimali KoreyaCÉ™nubi KoreyaKüveytKayman Adal" + - "arıQazaxıstanLaosLivanSan LüsiyaLixtenÅŸteynÅžri LankaLiberiyaLesotoLitvaL" + - "üksemburqLatviyaLiviyaMÉ™rakeÅŸMonakoMoldovaMonteneqroSan MartinMadaqaska" + - "rMarÅŸal AdalarıMakedoniyaMaliMyanmaMonqoliyaMakao Xüsusi Ä°nzibati Ærazi " + - "ÇinÅžimali Mariana AdalarıMartinikMavritaniyaMonseratMaltaMavrikiMaldiv " + - "AdalarıMalaviMeksikaMalayziyaMozambikNamibiyaYeni KaledoniyaNigerNorfolk" + - " AdasıNigeriyaNikaraquaNiderlandNorveçNepalNauruNiueYeni ZelandiyaOmanPa" + - "namaPeruFransız PolineziyasıPapua Yeni QvineyaFilippinPakistanPolÅŸaSan P" + - "ier vÉ™ MikelonPitkern AdalarıPuerto RikoFÉ™lÉ™stin ÆrazilÉ™riPortuqalPalauP" + - "araqvayQatarUzaq OkeaniyaReunionRumıniyaSerbiyaRusiyaRuandaSÉ™udiyyÉ™ ÆrÉ™b" + - "istanıSolomon AdalarıSeyÅŸel AdalarıSudanÄ°sveçSinqapurMüqÉ™ddÉ™s YelenaSlov" + - "eniyaSvalbard vÉ™ Yan MayenSlovakiyaSiera LeonSan MarinoSeneqalSomaliSuri" + - "namCÉ™nubi SudanSao Tome vÉ™ PrinsipSalvadorSint MaartenSuriyaSvazilendTri" + - "stan da KunyaTurks vÉ™ Kaikos AdalarıÇadFransa CÉ™nub ÆrazilÉ™riToqoTayland" + - "TacikistanTokelauŞərqi TimorTürkmÉ™nistanTunisTonqaTürkiyaTrinidad vÉ™ Tob" + - "aqoTuvaluTayvanTanzaniyaUkraynaUqandaBirləşmiÅŸ Åžtatlar Uzaq AdalarAmerik" + - "a BirləşmiÅŸ ÅžtatlarıUruqvayÖzbÉ™kistanVatikanSan Vinsent vÉ™ QrenadaVenesu" + - "elaBritaniya Vircin AdalarıABÅž Vircin AdalarıVyetnamVanuatuUolis vÉ™ Futu" + - "naSamoaKosovoYÉ™mÉ™nMayotCÉ™nub AfrikaZambiyaZimbabveNamÉ™lum RegionDünyaAfr" + - "ikaÅžimali AmerikaCÉ™nubi AmerikaOkeaniyaQÉ™rbi AfrikaMÉ™rkÉ™zi AmerikaŞərqi " + - "AfrikaÅžimali AfrikaMÉ™rkÉ™zi AfrikaCÉ™nubi AfrikaAmerikalarÅžimal AmerikasıK" + - "aribŞərqi AsiyaCÉ™nubi AsiyaCÉ™nub-Şərqi AsiyaCÉ™nubi AvropaAvstralaziyaMel" + - "aneziyaMikroneziya RegionuPolineziyaAsiyaMÉ™rkÉ™zi AsiyaQÉ™rbi AsiyaAvropaÅž" + - "É™rqi AvropaÅžimali AvropaQÉ™rbi AvropaLatın Amerikası" - -// Size: 606 bytes, 291 elements -var azRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0012, 0x0019, 0x003a, 0x0046, 0x0059, 0x005f, 0x0067, - 0x0072, 0x0086, 0x008c, 0x0096, 0x009f, 0x00af, 0x00b7, 0x00c1, - 0x00c6, 0x00d4, 0x00df, 0x00f6, 0x00fe, 0x0108, 0x0110, 0x011c, - 0x0125, 0x012d, 0x0134, 0x0139, 0x0147, 0x014e, 0x0154, 0x015c, - 0x016d, 0x0176, 0x0184, 0x0189, 0x0194, 0x019c, 0x01a3, 0x01a8, - 0x01ae, 0x01bc, 0x01cc, 0x01ea, 0x01fb, 0x0205, 0x0215, 0x0221, - 0x0226, 0x022d, 0x0231, 0x023a, 0x024b, 0x0255, 0x0259, 0x0263, - 0x026a, 0x0276, 0x027a, 0x0281, 0x0289, 0x0296, 0x029c, 0x02a5, - // Entry 40 - 7F - 0x02ad, 0x02c4, 0x02ce, 0x02df, 0x02e6, 0x02ee, 0x02f3, 0x0300, - 0x0308, 0x0311, 0x0319, 0x0327, 0x0331, 0x0335, 0x0346, 0x0351, - 0x035f, 0x0365, 0x036a, 0x037f, 0x0386, 0x0391, 0x03a4, 0x03ab, - 0x03af, 0x03b8, 0x03c3, 0x03ca, 0x03d1, 0x03da, 0x03ec, 0x03f7, - 0x0424, 0x042d, 0x0431, 0x043e, 0x0445, 0x046c, 0x0488, 0x0490, - 0x0499, 0x049e, 0x04a9, 0x04b7, 0x04c2, 0x04cc, 0x04d3, 0x04dd, - 0x04e6, 0x0505, 0x050a, 0x050f, 0x0519, 0x0521, 0x0526, 0x052d, - 0x0537, 0x053f, 0x0545, 0x0554, 0x055b, 0x0563, 0x0571, 0x0583, - // Entry 80 - BF - 0x0591, 0x059f, 0x05a6, 0x05b5, 0x05c0, 0x05c4, 0x05c9, 0x05d4, - 0x05e0, 0x05ea, 0x05f2, 0x05f8, 0x05fd, 0x0608, 0x060f, 0x0615, - 0x061e, 0x0624, 0x062b, 0x0635, 0x063f, 0x0649, 0x0659, 0x0663, - 0x0667, 0x066d, 0x0676, 0x0699, 0x06b1, 0x06b9, 0x06c4, 0x06cc, - 0x06d1, 0x06d8, 0x06e7, 0x06ed, 0x06f4, 0x06fd, 0x0705, 0x070d, - 0x071c, 0x0721, 0x072f, 0x0737, 0x0740, 0x0749, 0x0750, 0x0755, - 0x075a, 0x075e, 0x076c, 0x0770, 0x0776, 0x077a, 0x0790, 0x07a2, - 0x07aa, 0x07b2, 0x07b8, 0x07cc, 0x07dc, 0x07e7, 0x07fd, 0x0805, - // Entry C0 - FF - 0x080a, 0x0812, 0x0817, 0x0824, 0x082b, 0x0834, 0x083b, 0x0841, - 0x0847, 0x085f, 0x086f, 0x087f, 0x0884, 0x088b, 0x0893, 0x08a5, - 0x08ae, 0x08c4, 0x08cd, 0x08d7, 0x08e1, 0x08e8, 0x08ee, 0x08f5, - 0x0902, 0x0916, 0x091e, 0x092a, 0x0930, 0x0939, 0x0949, 0x0962, - 0x0966, 0x097f, 0x0983, 0x098a, 0x0994, 0x099b, 0x09a8, 0x09b6, - 0x09bb, 0x09c0, 0x09c8, 0x09db, 0x09e1, 0x09e7, 0x09f0, 0x09f7, - 0x09fd, 0x0a1e, 0x0a3d, 0x0a44, 0x0a50, 0x0a57, 0x0a6e, 0x0a77, - 0x0a90, 0x0aa4, 0x0aab, 0x0ab2, 0x0ac2, 0x0ac7, 0x0acd, 0x0ad4, - // Entry 100 - 13F - 0x0ad9, 0x0ae6, 0x0aed, 0x0af5, 0x0b04, 0x0b0a, 0x0b10, 0x0b1f, - 0x0b2e, 0x0b36, 0x0b43, 0x0b54, 0x0b62, 0x0b70, 0x0b80, 0x0b8e, - 0x0b98, 0x0ba9, 0x0bae, 0x0bbb, 0x0bc8, 0x0bdc, 0x0bea, 0x0bf6, - 0x0c00, 0x0c13, 0x0c1d, 0x0c22, 0x0c31, 0x0c3d, 0x0c43, 0x0c51, - 0x0c5f, 0x0c6c, 0x0c7d, -} - -// Size: 5879 bytes -var bgRegionStr string = "" + - "оÑтров ВъзнеÑениеÐндораОбединени арабÑки емирÑтваÐфганиÑтанÐнтигуа и Бар" + - "будаÐнгуилаÐлбаниÑÐрмениÑХоландÑки ÐнтилиÐнголаÐнтарктикаÐржентинаÐмери" + - "канÑка СамоаÐвÑтриÑÐвÑтралиÑÐрубаОландÑки оÑтровиÐзербайджанБоÑна и Хер" + - "цеговинаБарбадоÑБангладешБелгиÑБуркина ФаÑоБългариÑБахрейнБурундиБенинС" + - "ен БартелемиБермудаБруней ДаруÑаламБоливиÑКарибÑка ÐидерландиÑБразилиÑБ" + - "ахамиБутаноÑтров БувеБотÑванаБеларуÑБелизКанадаКокоÑови оÑтрови (оÑтров" + - "и Кийлинг)Демократична република КонгоЦентралноафриканÑка републикаКонг" + - "оШвейцариÑКот д’ИвоароÑтрови КукЧилиКамерунКитайКолумбиÑоÑтров Клиперто" + - "нКоÑта РикаКубаКабо ВердеКюраÑаооÑтров РождеÑтвоКипърЧехиÑГерманиÑДиего" + - " ГарÑиÑДжибутиДаниÑДоминикаДоминиканÑка републикаÐлжирСеута и МелиÑЕквад" + - "орЕÑтониÑЕгипетЗападна СахараЕритреÑИÑпаниÑЕтиопиÑЕвропейÑки ÑъюзФинлан" + - "диÑФиджиФолклендÑки оÑтровиМикронезиÑФарьорÑки оÑтровиФранциÑГабонВелик" + - "обританиÑГренадаГрузиÑФренÑка ГвианаГърнÑиГанаГибралтарГренландиÑГамбиÑ" + - "ГвинеÑГваделупаЕкваториална ГвинеÑГърциÑЮжна Ð”Ð¶Ð¾Ñ€Ð´Ð¶Ð¸Ñ Ð¸ Южни Сандвичеви" + - " оÑтровиГватемалаГуамГвинеÑ-БиÑауГаÑнаХонконг, СÐР на КитайоÑтров Хърд и" + - " оÑтрови МакдоналдХондураÑХърватиÑХаитиУнгариÑКанарÑки оÑтровиИндонезиÑИ" + - "рландиÑИзраелоÑтров МанИндиÑБританÑка Ñ‚ÐµÑ€Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð² ИндийÑÐºÐ¸Ñ Ð¾ÐºÐµÐ°Ð½Ð˜Ñ€Ð°ÐºÐ˜Ñ€" + - "анИÑландиÑИталиÑДжърÑиЯмайкаЙорданиÑЯпониÑКениÑКиргизÑтанКамбоджаКириба" + - "тиКоморÑки оÑтровиСейнт ÐšÐ¸Ñ‚Ñ Ð¸ ÐевиÑСеверна КореÑЮжна КореÑКувейтКайман" + - "ови оÑтровиКазахÑтанЛаоÑЛиванСейнт ЛуÑиÑЛихтенщайнШри ЛанкаЛибериÑЛеÑот" + - "оЛитваЛюкÑембургЛатвиÑЛибиÑМарокоМонакоМолдоваЧерна гораСен МартенМадаг" + - "аÑкарМаршалови оÑтровиМакедониÑМалиМианмар (Бирма)МонголиÑМакао, СÐР на" + - " КитайСеверни МарианÑки оÑтровиМартиникаМавританиÑМонтÑератМалтаМавриций" + - "МалдивиМалавиМекÑикоМалайзиÑМозамбикÐамибиÑÐова КаледониÑÐигероÑтров Ðо" + - "рфолкÐигериÑÐикарагуаÐидерландиÑÐорвегиÑÐепалÐауруÐиуеÐова ЗеландиÑОман" + - "ПанамаПеруФренÑка ПолинезиÑПапуа Ðова ГвинеÑФилипиниПакиÑтанПолшаСен Пи" + - "ер и МикелонОÑтрови ПиткернПуерто РикоПалеÑтинÑки територииПортугалиÑПа" + - "лауПарагвайКатаротдалечени оÑтрови на ОкеаниÑРеюнионРумъниÑСърбиÑРуÑиÑР" + - "уандаСаудитÑка ÐрабиÑСоломонови оÑтровиСейшелиСуданШвециÑСингапурСвета " + - "ЕленаСловениÑСвалбард и Ян МайенСловакиÑСиера ЛеонеСан МариноСенегалСом" + - "алиÑСуринамЮжен СуданСао Томе и ПринÑипиСалвадорСинт МартенСириÑСвазиле" + - "ндТриÑтан да КунÑоÑтрови Ð¢ÑŠÑ€ÐºÑ Ð¸ КайкоÑЧадФренÑки южни територииТогоТай" + - "ландТаджикиÑтанТокелауИзточен ТиморТуркмениÑтанТуниÑТонгаТурциÑТринидад" + - " и ТобагоТувалуТайванТанзаниÑУкрайнаУгандаОтдалечени оÑтрови на СÐЩСъеди" + - "нени щатиУругвайУзбекиÑтанВатиканСейнт ВинÑънт и ГренадиниВенецуелаБрит" + - "анÑки ВирджинÑки оÑтровиÐмериканÑки ВирджинÑки оÑтровиВиетнамВануатуУол" + - "Ð¸Ñ Ð¸ ФутунаСамоаКоÑовоЙеменМайотЮжна ÐфрикаЗамбиÑЗимбабвенепознат регио" + - "нЗемÑтаÐфрикаСеверноамериканÑки континентЮжна ÐмерикаОкеаниÑЗападна Ðфи" + - "ркаЦентрална ÐмерикаИзточна ÐфрикаСеверна ÐфрикаЦентрална ÐфрикаЮжноафр" + - "иканÑки регионÐмерикаСеверна ÐмерикаКарибÑки регионИзточна ÐзиÑЮжна Ðзи" + - "ÑЮгоизточна ÐзиÑЮжна ЕвропаÐвÑтралазиÑМеланезиÑМикронезийÑки регионПоли" + - "незиÑÐзиÑЦентрална ÐзиÑЗападна ÐзиÑЕвропаИзточна ЕвропаСеверна ЕвропаЗа" + - "падна ЕвропаЛатинÑка Ðмерика" - -// Size: 606 bytes, 291 elements -var bgRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0021, 0x002d, 0x005f, 0x0073, 0x0093, 0x00a1, 0x00af, - 0x00bd, 0x00dc, 0x00e8, 0x00fc, 0x010e, 0x012f, 0x013d, 0x014f, - 0x0159, 0x0178, 0x018e, 0x01b2, 0x01c2, 0x01d4, 0x01e0, 0x01f7, - 0x0207, 0x0215, 0x0223, 0x022d, 0x0246, 0x0254, 0x0273, 0x0281, - 0x02a8, 0x02b8, 0x02c4, 0x02ce, 0x02e3, 0x02f3, 0x0301, 0x030b, - 0x0317, 0x0356, 0x038c, 0x03c5, 0x03cf, 0x03e1, 0x03f7, 0x040c, - 0x0414, 0x0422, 0x042c, 0x043c, 0x045b, 0x046e, 0x0476, 0x0489, - 0x0497, 0x04b6, 0x04c0, 0x04ca, 0x04da, 0x04f1, 0x04ff, 0x0509, - // Entry 40 - 7F - 0x0519, 0x0544, 0x054e, 0x0566, 0x0574, 0x0582, 0x058e, 0x05a9, - 0x05b7, 0x05c5, 0x05d3, 0x05f0, 0x0602, 0x060c, 0x0631, 0x0645, - 0x0666, 0x0674, 0x067e, 0x069a, 0x06a8, 0x06b4, 0x06cf, 0x06db, - 0x06e3, 0x06f5, 0x0709, 0x0715, 0x0721, 0x0733, 0x0758, 0x0764, - 0x07ad, 0x07bf, 0x07c7, 0x07de, 0x07e8, 0x080e, 0x0848, 0x0858, - 0x0868, 0x0872, 0x0880, 0x089f, 0x08b1, 0x08c1, 0x08cd, 0x08e0, - 0x08ea, 0x0930, 0x0938, 0x0940, 0x0950, 0x095c, 0x0968, 0x0974, - 0x0984, 0x0990, 0x099a, 0x09ae, 0x09be, 0x09ce, 0x09ed, 0x0a0e, - // Entry 80 - BF - 0x0a27, 0x0a3a, 0x0a46, 0x0a67, 0x0a79, 0x0a81, 0x0a8b, 0x0aa0, - 0x0ab4, 0x0ac5, 0x0ad3, 0x0adf, 0x0ae9, 0x0afd, 0x0b09, 0x0b13, - 0x0b1f, 0x0b2b, 0x0b39, 0x0b4c, 0x0b5f, 0x0b73, 0x0b94, 0x0ba6, - 0x0bae, 0x0bc9, 0x0bd9, 0x0bfb, 0x0c2b, 0x0c3d, 0x0c51, 0x0c63, - 0x0c6d, 0x0c7d, 0x0c8b, 0x0c97, 0x0ca5, 0x0cb5, 0x0cc5, 0x0cd3, - 0x0cee, 0x0cf8, 0x0d13, 0x0d21, 0x0d33, 0x0d49, 0x0d59, 0x0d63, - 0x0d6d, 0x0d75, 0x0d8e, 0x0d96, 0x0da2, 0x0daa, 0x0dcb, 0x0deb, - 0x0dfb, 0x0e0b, 0x0e15, 0x0e36, 0x0e53, 0x0e68, 0x0e91, 0x0ea5, - // Entry C0 - FF - 0x0eaf, 0x0ebf, 0x0ec9, 0x0f00, 0x0f0e, 0x0f1c, 0x0f28, 0x0f32, - 0x0f3e, 0x0f5d, 0x0f80, 0x0f8e, 0x0f98, 0x0fa4, 0x0fb4, 0x0fc9, - 0x0fd9, 0x0ffc, 0x100c, 0x1021, 0x1034, 0x1042, 0x1050, 0x105e, - 0x1071, 0x1094, 0x10a4, 0x10b9, 0x10c3, 0x10d5, 0x10f1, 0x111a, - 0x1120, 0x114a, 0x1152, 0x1160, 0x1176, 0x1184, 0x119d, 0x11b5, - 0x11bf, 0x11c9, 0x11d5, 0x11f5, 0x1201, 0x120d, 0x121d, 0x122b, - 0x1237, 0x1266, 0x1281, 0x128f, 0x12a3, 0x12b1, 0x12e0, 0x12f2, - 0x1328, 0x1362, 0x1370, 0x137e, 0x1398, 0x13a2, 0x13ae, 0x13b8, - // Entry 100 - 13F - 0x13c2, 0x13d7, 0x13e3, 0x13f3, 0x1410, 0x141c, 0x1428, 0x145f, - 0x1476, 0x1484, 0x149f, 0x14c0, 0x14db, 0x14f6, 0x1515, 0x153e, - 0x154c, 0x1569, 0x1586, 0x159d, 0x15ae, 0x15cb, 0x15e0, 0x15f6, - 0x1608, 0x162f, 0x1641, 0x1649, 0x1664, 0x167b, 0x1687, 0x16a2, - 0x16bd, 0x16d8, 0x16f7, -} - -// Size: 9598 bytes -var bnRegionStr string = "" + - "অà§à¦¯à¦¾à¦¸à¦¸à§‡à¦¨à¦¶à¦¨ আইলà§à¦¯à¦¾à¦¨à§à¦¡à¦à§à¦¯à¦¾à¦¨à§à¦¡à§‹à¦°à¦¾à¦¸à¦‚যà§à¦•à§à¦¤ আরব আমিরাতআফগানিসà§à¦¤à¦¾à¦¨à¦à¦¨à§à¦Ÿà¦¿à¦—à§à¦¯à¦¼à¦¾ ও " + - "বারবà§à¦¡à¦¾à¦à§à¦¯à¦¾à¦™à§à¦—à§à¦‡à¦²à¦¾à¦†à¦²à¦¬à§à¦¯à¦¾à¦¨à¦¿à¦¯à¦¼à¦¾à¦†à¦°à§à¦®à§‡à¦¨à¦¿à¦¯à¦¼à¦¾à¦¨à§‡à¦¦à¦¾à¦°à¦²à§à¦¯à¦¾à¦¨à§à¦¡à¦¸ à¦à§à¦¯à¦¾à¦¨à§à¦Ÿà¦¿à¦²à¦¿à¦¸à¦…à§à¦¯à¦¾à¦™à§" + - "গোলাঅà§à¦¯à¦¾à¦¨à§à¦Ÿà¦¾à¦°à§à¦•à¦Ÿà¦¿à¦•à¦¾à¦†à¦°à§à¦œà§‡à¦¨à§à¦Ÿà¦¿à¦¨à¦¾à¦†à¦®à§‡à¦°à¦¿à¦•à¦¾à¦¨ সামোয়াঅসà§à¦Ÿà§à¦°à¦¿à¦¯à¦¼à¦¾à¦…সà§à¦Ÿà§à¦°à§‡à¦²à¦¿à¦¯à¦¼à¦¾à¦†à¦°" + - "à§à¦¬à¦¾à¦†à¦²à¦¾à¦¨à§à¦¡ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦†à¦œà¦¾à¦°à¦¬à¦¾à¦‡à¦œà¦¾à¦¨à¦¬à¦¸à¦¨à¦¿à¦¯à¦¼à¦¾ ও হারà§à¦œà§‡à¦—োভিনাবারবাদোসবাংলাদেশবে" + - "লজিয়ামবà§à¦°à¦•à¦¿à¦¨à¦¾ ফাসোবà§à¦²à¦—েরিয়াবাহরাইনবà§à¦°à§à¦¨à§à¦¡à¦¿à¦¬à§‡à¦¨à¦¿à¦¨à¦¸à§‡à¦¨à§à¦Ÿ বারথেলিমিবারমà§à¦¡" + - "াবà§à¦°à§à¦¨à§‡à¦‡à¦¬à§‹à¦²à¦¿à¦­à¦¿à¦¯à¦¼à¦¾à¦•à§à¦¯à¦¾à¦°à¦¿à¦¬à¦¿à¦¯à¦¼à¦¾à¦¨ নেদারলà§à¦¯à¦¾à¦¨à§à¦¡à¦¸à¦¬à§à¦°à¦¾à¦œà¦¿à¦²à¦¬à¦¾à¦¹à¦¾à¦®à¦¾ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦­à§à¦Ÿ" + - "ানবোভেট দà§à¦¬à§€à¦ªà¦¬à¦¤à¦¸à§‹à¦¯à¦¼à¦¾à¦¨à¦¾à¦¬à§‡à¦²à§‹à¦°à§à¦¶à¦¿à¦¯à¦¼à¦¾à¦¬à§‡à¦²à¦¿à¦œà¦•à¦¾à¦¨à¦¾à¦¡à¦¾à¦•à§‹à¦•à§‹à¦¸ (কিলিং)দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦•à¦™à§" + - "গো-কিনশাসামধà§à¦¯ আফà§à¦°à¦¿à¦•à¦¾à¦° পà§à¦°à¦œà¦¾à¦¤à¦¨à§à¦¤à§à¦°à¦•à¦™à§à¦—ো - বà§à¦°à¦¾à¦œà¦¾à¦­à¦¿à¦²à¦¸à§à¦‡à¦œà¦¾à¦°à¦²à§à¦¯à¦¾à¦¨à§à¦¡à¦†à¦‡à¦­à¦°à¦¿" + - " কোসà§à¦Ÿà¦•à§à¦• দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦šà¦¿à¦²à¦¿à¦•à§à¦¯à¦¾à¦®à§‡à¦°à§à¦¨à¦šà§€à¦¨à¦•à§‹à¦²à§‹à¦®à§à¦¬à¦¿à¦¯à¦¼à¦¾à¦•à§à¦²à¦¿à¦ªà¦¾à¦°à¦Ÿà¦¨ আইলà§à¦¯à¦¾à¦¨à§à¦¡à¦•à§‹à¦¸à§à¦Ÿà¦¾" + - "রিকাকিউবাকেপভারà§à¦¦à§‡à¦•à¦¿à¦‰à¦°à¦¾à¦¸à¦¾à¦“কà§à¦°à¦¿à¦¸à¦®à¦¾à¦¸ দà§à¦¬à§€à¦ªà¦¸à¦¾à¦‡à¦ªà§à¦°à¦¾à¦¸à¦šà§‡à¦• পà§à¦°à¦œà¦¾à¦¤à¦¨à§à¦¤à§à¦°à¦œà¦¾à¦°à§à¦®à¦¾à¦¨" + - "িদিয়েগো গারà§à¦¸à¦¿à¦¯à¦¼à¦¾à¦œà¦¿à¦¬à§à¦¤à¦¿à¦¡à§‡à¦¨à¦®à¦¾à¦°à§à¦•à¦¡à§‹à¦®à¦¿à¦¨à¦¿à¦•à¦¾à¦¡à§‹à¦®à§‡à¦¨à¦¿à¦•à¦¾à¦¨ পà§à¦°à¦œà¦¾à¦¤à¦¨à§à¦¤à§à¦°à¦†à¦²à¦œà§‡à¦°à¦¿à¦¯à¦¼à¦¾" + - "কà§à¦‰à¦Ÿà¦¾ à¦à¦¬à¦‚ মেলিলাইকà§à¦¯à¦¼à§‡à¦¡à¦°à¦à¦¸à§à¦¤à§‹à¦¨à¦¿à¦¯à¦¼à¦¾à¦®à¦¿à¦¶à¦°à¦ªà¦¶à§à¦šà¦¿à¦® সাহারাইরিতà§à¦°à¦¿à¦¯à¦¼à¦¾à¦¸à§à¦ªà§‡à¦¨à¦‡à¦«à¦¿à¦“" + - "পিয়াইউরোপীয় ইউনিয়নফিনলà§à¦¯à¦¾à¦¨à§à¦¡à¦«à¦¿à¦œà¦¿à¦«à¦•à¦²à§à¦¯à¦¾à¦¨à§à¦¡ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦®à¦¾à¦‡à¦•à§à¦°à§‹à¦¨à§‡à¦¶à¦¿à¦¯à¦¼à¦¾à¦«" + - "à§à¦¯à¦¾à¦°à¦“ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦«à§à¦°à¦¾à¦¨à§à¦¸à¦—à§à¦¯à¦¾à¦¬à¦¨à¦¯à§à¦•à§à¦¤à¦°à¦¾à¦œà§à¦¯à¦—à§à¦°à§‡à¦¨à§‡à¦¡à¦¾à¦œà¦°à§à¦œà¦¿à¦¯à¦¼à¦¾à¦«à¦°à¦¾à¦¸à§€ গায়ানাগà§" + - "রাঞà§à¦œà¦¿à¦˜à¦¾à¦¨à¦¾à¦œà¦¿à¦¬à§à¦°à¦¾à¦²à§à¦Ÿà¦¾à¦°à¦—à§à¦°à§€à¦¨à¦²à§à¦¯à¦¾à¦¨à§à¦¡à¦—ামà§à¦¬à¦¿à¦¯à¦¼à¦¾à¦—িনিগà§à¦¯à¦¼à¦¾à¦¦à§‡à¦²à§Œà¦ªà¦¨à¦¿à¦°à¦•à§à¦·à§€à¦¯à¦¼ গিনি" + - "গà§à¦°à§€à¦¸à¦¦à¦•à§à¦·à¦¿à¦£ জরà§à¦œà¦¿à¦¯à¦¼à¦¾ ও দকà§à¦·à¦¿à¦£ সà§à¦¯à¦¾à¦¨à§à¦¡à¦‰à¦‡à¦š দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦—োয়াতেমালাগà§à¦¯à¦¼à¦¾à¦®à¦—ি" + - "নি-বিসাউগিয়ানাহংকং à¦à¦¸à¦à¦†à¦° চীনাহারà§à¦¡ দà§à¦¬à§€à¦ª à¦à¦¬à¦‚ মà§à¦¯à¦¾à¦•à¦¡à§‹à¦¨à¦¾à¦²à§à¦¡ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦¹" + - "ণà§à¦¡à§à¦°à¦¾à¦¸à¦•à§à¦°à§‹à¦¯à¦¼à§‡à¦¶à¦¿à¦¯à¦¼à¦¾à¦¹à¦¾à¦‡à¦¤à¦¿à¦¹à¦¾à¦™à§à¦—েরিকà§à¦¯à¦¾à¦¨à¦¾à¦°à¦¿ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦‡à¦¨à§à¦¦à§‹à¦¨à§‡à¦¶à¦¿à¦¯à¦¼à¦¾à¦†à¦¯à¦¼à¦¾à¦°à¦²à§" + - "যানà§à¦¡à¦‡à¦¸à§à¦°à¦¾à¦¯à¦¼à§‡à¦²à¦†à¦‡à¦² অফ মà§à¦¯à¦¾à¦¨à¦­à¦¾à¦°à¦¤à¦¬à§à¦°à¦¿à¦Ÿà¦¿à¦¶ ভারত মহাসাগরীয় অঞà§à¦šà¦²à¦‡à¦°à¦¾à¦•à¦‡à¦°à¦¾à¦¨à¦†à¦‡à¦¸" + - "লà§à¦¯à¦¾à¦¨à§à¦¡à¦‡à¦¤à¦¾à¦²à§€à¦œà¦¾à¦°à§à¦¸à¦¿à¦œà¦¾à¦®à¦¾à¦‡à¦•à¦¾à¦œà¦°à§à¦¡à¦¨à¦œà¦¾à¦ªà¦¾à¦¨à¦•à§‡à¦¨à¦¿à¦¯à¦¼à¦¾à¦•à¦¿à¦°à§à¦—িজিয়াকমà§à¦¬à§‹à¦¡à¦¿à¦¯à¦¼à¦¾à¦•à¦¿à¦°à¦¿à¦¬à¦¾à¦¤" + - "িকমোরোসসেনà§à¦Ÿ কিটস ও নেভিসউতà§à¦¤à¦° কোরিয়াদকà§à¦·à¦¿à¦£ কোরিয়াকà§à¦¯à¦¼à§‡à¦¤à¦•à§‡à¦®à§à¦¯à¦¾à¦¨ দà§à¦¬à§€" + - "পপà§à¦žà§à¦œà¦•à¦¾à¦œà¦¾à¦•à¦¸à§à¦¥à¦¾à¦¨à¦²à¦¾à¦“সলেবাননসেনà§à¦Ÿ লà§à¦¸à¦¿à¦¯à¦¼à¦¾à¦²à¦¿à¦šà§‡à¦¨à¦¸à§à¦Ÿà§‡à¦‡à¦¨à¦¶à§à¦°à§€à¦²à¦™à§à¦•à¦¾à¦²à¦¾à¦‡à¦¬à§‡à¦°à¦¿à¦¯à¦¼à¦¾à¦²" + - "েসোথোলিথà§à¦¯à¦¼à¦¾à¦¨à¦¿à¦¯à¦¼à¦¾à¦²à¦¾à¦•à§à¦¸à§‡à¦®à¦¬à¦¾à¦°à§à¦—লাতà§à¦­à¦¿à¦¯à¦¼à¦¾à¦²à¦¿à¦¬à¦¿à¦¯à¦¼à¦¾à¦®à§‹à¦°à¦•à§à¦•à§‹à¦®à§‹à¦¨à¦¾à¦•à§‹à¦®à§‹à¦²à§à¦¦à¦¾à¦­à¦¿à¦¯à¦¼à¦¾à¦®" + - "নà§à¦Ÿà¦¿à¦¨à¦¿à¦—à§à¦°à§‹à¦¸à§‡à¦¨à§à¦Ÿ মারà§à¦Ÿà¦¿à¦¨à¦®à¦¾à¦¦à¦¾à¦—াসà§à¦•à¦¾à¦°à¦®à¦¾à¦°à§à¦¶à¦¾à¦² দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦®à§à¦¯à¦¾à¦¸à¦¾à¦¡à§‹à¦¨à¦¿à¦¯à¦¼à¦¾à¦®à¦¾à¦²à¦¿à¦®" + - "ায়ানমার (বারà§à¦®à¦¾)মঙà§à¦—োলিয়ামà§à¦¯à¦¾à¦•à¦¾à¦“ à¦à¦¸ ঠআর চায়নাউতà§à¦¤à¦°à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ মারিয়া" + - "না দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦®à¦¾à¦°à§à¦Ÿà¦¿à¦¨à¦¿à¦•à¦®à¦°à¦¿à¦¤à¦¾à¦¨à¦¿à¦¯à¦¼à¦¾à¦®à¦¨à§à¦Ÿà¦¸à§‡à¦°à¦¾à¦Ÿà¦®à¦¾à¦²à§à¦Ÿà¦¾à¦®à¦°à¦¿à¦¶à¦¾à¦¸à¦®à¦¾à¦²à¦¦à§à¦¬à§€à¦ªà¦®à¦¾à¦²à¦¾à¦‰à¦‡à¦®à§‡à¦•" + - "à§à¦¸à¦¿à¦•à§‹à¦®à¦¾à¦²à¦¯à¦¼à§‡à¦¶à¦¿à¦¯à¦¼à¦¾à¦®à§‹à¦œà¦¾à¦®à§à¦¬à¦¿à¦•à¦¨à¦¾à¦®à¦¿à¦¬à¦¿à¦¯à¦¼à¦¾à¦¨à¦¿à¦‰ কà§à¦¯à¦¾à¦²à§‡à¦¡à§‹à¦¨à¦¿à¦¯à¦¼à¦¾à¦¨à¦¾à¦‡à¦œà¦¾à¦°à¦¨à¦¿à¦°à¦«à§‹à¦• দà§à¦¬à§€à¦ªà¦¨" + - "াইজেরিয়ানিকারাগà§à¦¯à¦¼à¦¾à¦¨à§‡à¦¦à¦¾à¦°à¦²à§à¦¯à¦¾à¦¨à§à¦¡à¦¸à¦¨à¦°à¦“য়েনেপালনাউরà§à¦¨à¦¿à¦‰à¦¯à¦¼à§‡à¦¨à¦¿à¦‰à¦œà¦¿à¦²à§à¦¯à¦¾à¦¨à§à¦¡à¦“মা" + - "নপানামাপিরà§à¦«à¦°à¦¾à¦¸à§€ পলিনেশিয়াপাপà§à¦¯à¦¼à¦¾ নিউ গিনিফিলিপাইনপাকিসà§à¦¤à¦¾à¦¨à¦ªà§‹à¦²à§à¦¯à¦¾à¦¨à§à¦¡à¦¸" + - "েনà§à¦Ÿ পিয়ের ও মিকà§à¦¯à¦¼à§‡à¦²à¦¨à¦ªà¦¿à¦Ÿà¦•à§‡à¦¯à¦¼à¦¾à¦°à§à¦¨ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦ªà§à¦¯à¦¼à§‡à¦°à§à¦¤à§‹ রিকোফিলিসà§à¦¤à¦¿à¦¨ অ" + - "ঞà§à¦šà¦²à¦¸à¦®à§‚হপরà§à¦¤à§à¦—ালপালাউপà§à¦¯à¦¾à¦°à¦¾à¦—à§à¦¯à¦¼à§‡à¦•à¦¾à¦¤à¦¾à¦°à¦†à¦‰à¦Ÿà¦²à¦¾à¦‡à¦¨à¦¿à¦‚ ওসানিয়ারিইউনিয়নরà§à¦®à¦¾à¦¨à¦¿" + - "য়াসারà§à¦¬à¦¿à¦¯à¦¼à¦¾à¦°à¦¾à¦¶à¦¿à¦¯à¦¼à¦¾à¦°à§à¦¯à¦¼à¦¾à¦¨à§à¦¡à¦¾à¦¸à§Œà¦¦à¦¿ আরবসলোমন দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦¸à¦¿à¦¸à¦¿à¦²à¦¿à¦¸à§à¦¦à¦¾à¦¨à¦¸à§à¦‡à¦¡à§‡à¦¨à¦¸" + - "িঙà§à¦—াপà§à¦°à¦¸à§‡à¦¨à§à¦Ÿ হেলেনাসà§à¦²à§‹à¦­à¦¾à¦¨à¦¿à¦¯à¦¼à¦¾à¦¸à§à¦¬à¦¾à¦²à¦¬à¦¾à¦°à§à¦¡ ও জান মেয়েনশà§à¦²à§‹à¦­à¦¾à¦•à¦¿à¦¯à¦¼à¦¾à¦¸à¦¿à¦¯à¦¼à§‡" + - "রালিওনসান মারিনোসেনেগালসোমালিয়াসà§à¦°à¦¿à¦¨à¦¾à¦®à¦¦à¦•à§à¦·à¦¿à¦¨ সà§à¦¦à¦¾à¦¨à¦¸à¦¾à¦“টোমা ও পà§à¦°à¦¿à¦¨à§à¦¸à¦¿à¦ª" + - "িà¦à¦² সালভেদরসিনà§à¦Ÿ মারà§à¦Ÿà§‡à¦¨à¦¸à¦¿à¦°à¦¿à¦¯à¦¼à¦¾à¦¸à§‹à¦¯à¦¼à¦¾à¦œà¦¿à¦²à§à¦¯à¦¾à¦¨à§à¦¡à¦Ÿà§à¦°à¦¿à¦¸à§à¦Ÿà¦¾à¦¨ ডা কà§à¦¨à¦¹à¦¾à¦¤à§à¦°à§à¦•à¦¸ " + - "ও কাইকোস দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦šà¦¾à¦¦à¦«à¦°à¦¾à¦¸à§€ দকà§à¦·à¦¿à¦£à¦¾à¦žà§à¦šà¦²à¦Ÿà§‹à¦—োথাইলà§à¦¯à¦¾à¦¨à§à¦¡à¦¤à¦¾à¦œà¦¿à¦•à¦¸à§à¦¥à¦¾à¦¨à¦Ÿà§‹à¦•à§‡à¦²à¦¾à¦‰" + - "তিমà§à¦°-লেসà§à¦¤à§‡à¦¤à§à¦°à§à¦•à¦®à§‡à¦¨à¦¿à¦¸à§à¦¤à¦¾à¦¨à¦¤à¦¿à¦‰à¦¨à¦¿à¦¶à¦¿à¦¯à¦¼à¦¾à¦Ÿà§‹à¦™à§à¦—াতà§à¦°à¦¸à§à¦•à¦¤à§à¦°à¦¿à¦¨à¦¿à¦¨à¦¾à¦¦ ও টোবà§à¦¯à¦¾à¦—োটà§" + - "ভালà§à¦¤à¦¾à¦‡à¦“য়ানতাঞà§à¦œà¦¾à¦¨à¦¿à¦¯à¦¼à¦¾à¦‡à¦‰à¦•à§à¦°à§‡à¦‡à¦¨à¦‰à¦—ানà§à¦¡à¦¾à¦¯à§à¦•à§à¦¤à¦°à¦¾à¦·à§à¦Ÿà§à¦°à§‡à¦° পারà§à¦¶à§à¦¬à¦¬à¦°à§à¦¤à§€ দà§à¦¬à§€" + - "পপà§à¦žà§à¦œà¦®à¦¾à¦°à§à¦•à¦¿à¦¨ যà§à¦•à§à¦¤à¦°à¦¾à¦·à§à¦Ÿà§à¦°à¦‰à¦°à§à¦—à§à¦¯à¦¼à§‡à¦‰à¦œà¦¬à§‡à¦•à¦¿à¦¸à§à¦¤à¦¾à¦¨à¦­à§à¦¯à¦¾à¦Ÿà¦¿à¦•à¦¾à¦¨ সিটিসেনà§à¦Ÿ ভিনসে" + - "নà§à¦Ÿ ও দà§à¦¯à¦¾ গà§à¦°à§‡à¦¨à¦¾à¦¡à¦¿à¦¨à¦¸à¦­à§‡à¦¨à§‡à¦œà§à¦¯à¦¼à§‡à¦²à¦¾à¦¬à§à¦°à¦¿à¦Ÿà¦¿à¦¶ ভারà§à¦œà¦¿à¦¨ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦®à¦¾à¦°à§à¦•à¦¿à¦¨ ভারà§" + - "জিন দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦­à¦¿à¦¯à¦¼à§‡à¦¤à¦¨à¦¾à¦®à¦­à¦¾à¦¨à§à¦¯à¦¼à¦¾à¦Ÿà§à¦“য়ালিস ও ফà§à¦Ÿà§à¦¨à¦¾à¦¸à¦¾à¦®à§‹à¦¯à¦¼à¦¾à¦•à¦¸à§‹à¦­à§‹à¦‡à¦¯à¦¼à§‡à¦®à§‡à¦¨à¦®à¦¾à¦¯" + - "়োতà§à¦¤à§‡à¦¦à¦•à§à¦·à¦¿à¦£ আফà§à¦°à¦¿à¦•à¦¾à¦œà¦¾à¦®à§à¦¬à¦¿à¦¯à¦¼à¦¾à¦œà¦¿à¦®à§à¦¬à¦¾à¦¬à§‹à¦¯à¦¼à§‡à¦…জানা সà§à¦¥à¦¾à¦¨à¦ªà§ƒà¦¥à¦¿à¦¬à§€à¦†à¦«à§à¦°à¦¿à¦•à¦¾à¦‰à¦¤à§à¦¤à¦° " + - "আমেরিকাদকà§à¦·à¦¿à¦£ আমেরিকাওশিয়ানিয়াপশà§à¦šà¦¿à¦® আফà§à¦°à¦¿à¦•à¦¾à¦®à¦§à§à¦¯ আমেরিকাপূরà§à¦¬ আফà§à¦°à¦¿à¦•" + - "াউতà§à¦¤à¦° আফà§à¦°à¦¿à¦•à¦¾à¦®à¦§à§à¦¯ আফà§à¦°à¦¿à¦•à¦¾à¦¦à¦•à§à¦·à¦¿à¦£à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ আফà§à¦°à¦¿à¦•à¦¾à¦†à¦®à§‡à¦°à¦¿à¦•à¦¾à¦¸à¦‰à¦¤à§à¦¤à¦°à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ " + - "আমেরিকাকà§à¦¯à¦¾à¦°à¦¾à¦¬à¦¿à¦¯à¦¼à¦¾à¦¨à¦ªà§‚রà§à¦¬ à¦à¦¶à¦¿à¦¯à¦¼à¦¾à¦¦à¦•à§à¦·à¦¿à¦£ à¦à¦¶à¦¿à¦¯à¦¼à¦¾à¦¦à¦•à§à¦·à¦¿à¦£ পূরà§à¦¬ à¦à¦¶à¦¿à¦¯à¦¼à¦¾à¦¦à¦•à§à¦·à¦¿à¦£ " + - "ইউরোপঅসà§à¦Ÿà§à¦°à¦¾à¦²à§‡à¦¶à¦¿à¦¯à¦¼à¦¾à¦®à§à¦¯à¦¾à¦²à§‡à¦¨à§‡à¦¶à¦¿à¦¯à¦¼à¦¾à¦®à§à¦¯à¦¾à¦²à§‡à¦¨à¦¿à¦¶à¦¾ অঞà§à¦šà¦²à¦ªà¦²à¦¿à¦¨à§‡à¦¶à¦¿à¦¯à¦¼à¦¾à¦à¦¶à¦¿à¦¯à¦¼à¦¾à¦®à¦§à§à¦¯ à¦" + - "শিয়াপশà§à¦šà¦¿à¦® à¦à¦¶à¦¿à¦¯à¦¼à¦¾à¦‡à¦‰à¦°à§‹à¦ªà¦ªà§‚রà§à¦¬ ইউরোপউতà§à¦¤à¦° ইউরোপপশà§à¦šà¦¿à¦® ইউরোপলà§à¦¯à¦¾à¦Ÿà¦¿à¦¨ আমেরি" + - "কা" - -// Size: 606 bytes, 291 elements -var bnRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x003a, 0x0058, 0x008a, 0x00ab, 0x00e3, 0x0104, 0x0125, - 0x0143, 0x018c, 0x01aa, 0x01d7, 0x01f8, 0x0226, 0x0244, 0x0268, - 0x0277, 0x02a8, 0x02c6, 0x0304, 0x031c, 0x0334, 0x034f, 0x0371, - 0x038f, 0x03a4, 0x03bc, 0x03cb, 0x03f6, 0x040b, 0x0420, 0x043b, - 0x0487, 0x049c, 0x04cd, 0x04dc, 0x04fb, 0x0516, 0x0537, 0x0546, - 0x0558, 0x0597, 0x05bc, 0x0603, 0x0630, 0x0657, 0x0676, 0x069e, - 0x06aa, 0x06c5, 0x06ce, 0x06ef, 0x0726, 0x0744, 0x0753, 0x076e, - 0x0786, 0x07ae, 0x07c6, 0x07f1, 0x0809, 0x083a, 0x084c, 0x0864, - // Entry 40 - 7F - 0x087c, 0x08b9, 0x08d4, 0x0900, 0x0918, 0x0936, 0x0942, 0x0967, - 0x0985, 0x0994, 0x09af, 0x09dd, 0x09fb, 0x0a07, 0x0a41, 0x0a6b, - 0x0a9c, 0x0ab1, 0x0ac3, 0x0ae1, 0x0af9, 0x0b11, 0x0b36, 0x0b4e, - 0x0b5a, 0x0b7b, 0x0b9f, 0x0bba, 0x0bc6, 0x0be4, 0x0c0c, 0x0c1b, - 0x0c9b, 0x0cbc, 0x0cce, 0x0cea, 0x0cff, 0x0d28, 0x0d95, 0x0dad, - 0x0dd1, 0x0de0, 0x0df8, 0x0e2f, 0x0e53, 0x0e77, 0x0e92, 0x0eb2, - 0x0ebe, 0x0f0f, 0x0f1b, 0x0f27, 0x0f45, 0x0f54, 0x0f66, 0x0f7b, - 0x0f8a, 0x0f99, 0x0fae, 0x0fcf, 0x0fed, 0x1005, 0x1017, 0x1047, - // Entry 80 - BF - 0x106c, 0x1094, 0x10a6, 0x10da, 0x10f8, 0x1104, 0x1116, 0x113b, - 0x115c, 0x1177, 0x1195, 0x11a7, 0x11cb, 0x11ef, 0x120a, 0x121f, - 0x1234, 0x1246, 0x1267, 0x1288, 0x12ad, 0x12ce, 0x1302, 0x1329, - 0x1335, 0x1365, 0x1383, 0x13bd, 0x141f, 0x143a, 0x1458, 0x1473, - 0x1485, 0x1497, 0x14af, 0x14c1, 0x14d9, 0x14fa, 0x1515, 0x1530, - 0x1561, 0x1573, 0x1595, 0x15b3, 0x15d4, 0x15fb, 0x160d, 0x161c, - 0x162b, 0x163d, 0x1661, 0x166d, 0x167f, 0x168b, 0x16b9, 0x16e5, - 0x16fd, 0x1718, 0x1733, 0x1775, 0x17b5, 0x17dd, 0x1814, 0x182c, - // Entry C0 - FF - 0x183b, 0x185c, 0x186b, 0x189f, 0x18ba, 0x18d5, 0x18f0, 0x1905, - 0x1920, 0x1936, 0x1964, 0x1976, 0x1985, 0x1997, 0x19b2, 0x19d4, - 0x19f5, 0x1a34, 0x1a55, 0x1a76, 0x1a92, 0x1aa7, 0x1ac2, 0x1ad7, - 0x1af9, 0x1b31, 0x1b4d, 0x1b72, 0x1b87, 0x1bb1, 0x1be3, 0x1c2b, - 0x1c34, 0x1c65, 0x1c71, 0x1c8f, 0x1cad, 0x1cc2, 0x1ce4, 0x1d0e, - 0x1d2c, 0x1d3e, 0x1d50, 0x1d88, 0x1d9a, 0x1db2, 0x1dd3, 0x1deb, - 0x1e00, 0x1e6e, 0x1ea8, 0x1ec0, 0x1ee1, 0x1f09, 0x1f61, 0x1f82, - 0x1fcc, 0x2016, 0x2031, 0x204c, 0x2078, 0x208d, 0x209c, 0x20b1, - // Entry 100 - 13F - 0x20cc, 0x20f4, 0x210f, 0x2130, 0x214f, 0x2161, 0x2176, 0x219b, - 0x21c3, 0x21e4, 0x220c, 0x222e, 0x2253, 0x2278, 0x229a, 0x22da, - 0x22f2, 0x232f, 0x2353, 0x2375, 0x239a, 0x23cf, 0x23f1, 0x241b, - 0x2442, 0x2470, 0x248e, 0x24a0, 0x24bf, 0x24e4, 0x24f3, 0x2512, - 0x2531, 0x2553, 0x257e, -} - -// Size: 3175 bytes -var caRegionStr string = "" + - "illa de l’AscensióAndorraEmirats Àrabs UnitsAfganistanAntigua i BarbudaA" + - "nguillaAlbàniaArmèniaAntilles NeerlandesesAngolaAntàrtidaArgentinaSamoa " + - "Nord-americanaÀustriaAustràliaArubailles Ã…landAzerbaidjanBòsnia i Herceg" + - "ovinaBarbadosBangla DeshBèlgicaBurkina FasoBulgàriaBahrainBurundiBenínSa" + - "int BarthélemyBermudesBruneiBolíviaCarib NeerlandèsBrasilBahamesBhutanBo" + - "uvetBotswanaBielorússiaBelizeCanadàilles CocosCongo - KinshasaRepública " + - "CentreafricanaCongo - BrazzavilleSuïssaCosta d’Ivoriilles CookXileCameru" + - "nXinaColòmbiailla ClippertonCosta RicaCubaCap VerdCuraçaoilla ChristmasX" + - "ipreRepública TxecaAlemanyaDiego GarciaDjiboutiDinamarcaDominicaRepúblic" + - "a DominicanaAlgèriaCeuta i MelillaEquadorEstòniaEgipteSàhara OccidentalE" + - "ritreaEspanyaEtiòpiaUnió EuropeaFinlàndiaFijiIlles MalvinesMicronèsiaill" + - "es FèroeFrançaGabonRegne UnitGrenadaGeòrgiaGuaiana FrancesaGuernseyGhana" + - "GibraltarGrenlàndiaGàmbiaGuineaGuadeloupeGuinea EquatorialGrèciailles Ge" + - "òrgia del Sud i Sandwich del SudGuatemalaGuamGuinea BissauGuyanaHong Ko" + - "ng (RAE Xina)Illa Heard i Illes McDonaldHonduresCroàciaHaitíHongriailles" + - " CanàriesIndonèsiaIrlandaIsraelilla de ManÃndiaTerritori Britànic de l’O" + - "ceà ÃndicIraqIranIslàndiaItàliaJerseyJamaicaJordàniaJapóKenyaKirguizista" + - "nCambodjaKiribatiComoresSaint Christopher i NevisCorea del NordCorea del" + - " SudKuwaitIlles CaimanKazakhstanLaosLíbanSaint LuciaLiechtensteinSri Lan" + - "kaLibèriaLesothoLituàniaLuxemburgLetòniaLíbiaMarrocMònacoMoldàviaMontene" + - "groSaint MartinMadagascarilles MarshallMacedòniaMaliMyanmar (Birmània)Mo" + - "ngòliaMacau (RAE Xina)illes Mariannes del NordMartinicaMauritàniaMontser" + - "ratMaltaMauriciMaldivesMalawiMèxicMalàisiaMoçambicNamíbiaNova CaledòniaN" + - "ígerNorfolkNigèriaNicaraguaPaïsos BaixosNoruegaNepalNauruNiueNova Zelan" + - "daOmanPanamàPerúPolinèsia FrancesaPapua Nova GuineaFilipinesPakistanPolò" + - "niaSaint-Pierre-et-Miquelonilles PitcairnPuerto RicoPalestinaPortugalPal" + - "auParaguaiQatarTerritoris allunyats d’OceaniaIlla de la ReunióRomaniaSèr" + - "biaRússiaRuandaAràbia Sauditailles SalomóSeychellesSudanSuèciaSingapurSa" + - "int HelenaEslovèniaSvalbard i Jan MayenEslovàquiaSierra LeoneSan MarinoS" + - "enegalSomàliaSurinamSudan del SudSão Tomé i PríncipeEl SalvadorSint Maar" + - "tenSíriaSwazilàndiaTristão da CunhaIlles Turks i CaicosTxadTerritoris Fr" + - "ancesos del SudTogoTailàndiaTadjikistanTokelauTimor OrientalTurkmenistan" + - "TunísiaTongaTurquiaTrinitat i TobagoTuvaluTaiwanTanzàniaUcraïnaUgandaill" + - "es Perifèriques Menors dels EUAEstats UnitsUruguaiUzbekistanCiutat del V" + - "aticàSaint Vincent i les GrenadinesVeneçuelaIlles Verges BritàniquesIlle" + - "s Verges Nord-americanesVietnamVanuatuWallis i FutunaSamoaKosovoIemenMay" + - "otteRepública de Sud-àfricaZàmbiaZimbàbueRegió desconegudaMónÀfricaAmèri" + - "ca del NordAmèrica del SudOceaniaÀfrica occidentalAmèrica CentralÀfrica " + - "orientalÀfrica septentrionalÀfrica centralÀfrica meridionalAmèricaAmèric" + - "a septentrionalCaribÀsia orientalÀsia meridionalÀsia sud-orientalEuropa " + - "meridionalAustralàsiaMelanèsiaRegió de la MicronèsiaPolinèsiaÀsiaÀsia ce" + - "ntralÀsia occidentalEuropaEuropa orientalEuropa septentrionalEuropa occi" + - "dentalAmèrica Llatina" - -// Size: 606 bytes, 291 elements -var caRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0015, 0x001c, 0x0030, 0x003a, 0x004b, 0x0053, 0x005b, - 0x0063, 0x0078, 0x007e, 0x0088, 0x0091, 0x00a5, 0x00ad, 0x00b7, - 0x00bc, 0x00c8, 0x00d3, 0x00e8, 0x00f0, 0x00fb, 0x0103, 0x010f, - 0x0118, 0x011f, 0x0126, 0x012c, 0x013d, 0x0145, 0x014b, 0x0153, - 0x0164, 0x016a, 0x0171, 0x0177, 0x017d, 0x0185, 0x0191, 0x0197, - 0x019e, 0x01a9, 0x01b9, 0x01d2, 0x01e5, 0x01ec, 0x01fb, 0x0205, - 0x0209, 0x0210, 0x0214, 0x021d, 0x022c, 0x0236, 0x023a, 0x0242, - 0x024a, 0x0258, 0x025d, 0x026d, 0x0275, 0x0281, 0x0289, 0x0292, - // Entry 40 - 7F - 0x029a, 0x02af, 0x02b7, 0x02c6, 0x02cd, 0x02d5, 0x02db, 0x02ed, - 0x02f4, 0x02fb, 0x0303, 0x0310, 0x031a, 0x031e, 0x032c, 0x0337, - 0x0343, 0x034a, 0x034f, 0x0359, 0x0360, 0x0368, 0x0378, 0x0380, - 0x0385, 0x038e, 0x0399, 0x03a0, 0x03a6, 0x03b0, 0x03c1, 0x03c8, - 0x03f1, 0x03fa, 0x03fe, 0x040b, 0x0411, 0x0425, 0x0440, 0x0448, - 0x0450, 0x0456, 0x045d, 0x046c, 0x0476, 0x047d, 0x0483, 0x048e, - 0x0494, 0x04bb, 0x04bf, 0x04c3, 0x04cc, 0x04d3, 0x04d9, 0x04e0, - 0x04e9, 0x04ee, 0x04f3, 0x04ff, 0x0507, 0x050f, 0x0516, 0x052f, - // Entry 80 - BF - 0x053d, 0x054a, 0x0550, 0x055c, 0x0566, 0x056a, 0x0570, 0x057b, - 0x0588, 0x0591, 0x0599, 0x05a0, 0x05a9, 0x05b2, 0x05ba, 0x05c0, - 0x05c6, 0x05cd, 0x05d6, 0x05e0, 0x05ec, 0x05f6, 0x0604, 0x060e, - 0x0612, 0x0625, 0x062e, 0x063e, 0x0656, 0x065f, 0x066a, 0x0674, - 0x0679, 0x0680, 0x0688, 0x068e, 0x0694, 0x069d, 0x06a6, 0x06ae, - 0x06bd, 0x06c3, 0x06ca, 0x06d2, 0x06db, 0x06e9, 0x06f0, 0x06f5, - 0x06fa, 0x06fe, 0x070a, 0x070e, 0x0715, 0x071a, 0x072d, 0x073e, - 0x0747, 0x074f, 0x0757, 0x076f, 0x077d, 0x0788, 0x0791, 0x0799, - // Entry C0 - FF - 0x079e, 0x07a6, 0x07ab, 0x07cb, 0x07dd, 0x07e4, 0x07eb, 0x07f2, - 0x07f8, 0x0807, 0x0814, 0x081e, 0x0823, 0x082a, 0x0832, 0x083e, - 0x0848, 0x085c, 0x0867, 0x0873, 0x087d, 0x0884, 0x088c, 0x0893, - 0x08a0, 0x08b6, 0x08c1, 0x08cd, 0x08d3, 0x08df, 0x08f0, 0x0904, - 0x0908, 0x0924, 0x0928, 0x0932, 0x093d, 0x0944, 0x0952, 0x095e, - 0x0966, 0x096b, 0x0972, 0x0983, 0x0989, 0x098f, 0x0998, 0x09a0, - 0x09a6, 0x09c9, 0x09d5, 0x09dc, 0x09e6, 0x09f8, 0x0a16, 0x0a20, - 0x0a39, 0x0a55, 0x0a5c, 0x0a63, 0x0a72, 0x0a77, 0x0a7d, 0x0a82, - // Entry 100 - 13F - 0x0a89, 0x0aa2, 0x0aa9, 0x0ab2, 0x0ac4, 0x0ac8, 0x0acf, 0x0ae0, - 0x0af0, 0x0af7, 0x0b09, 0x0b19, 0x0b29, 0x0b3e, 0x0b4d, 0x0b5f, - 0x0b67, 0x0b7d, 0x0b82, 0x0b90, 0x0ba0, 0x0bb2, 0x0bc3, 0x0bcf, - 0x0bd9, 0x0bf1, 0x0bfb, 0x0c00, 0x0c0d, 0x0c1d, 0x0c23, 0x0c32, - 0x0c46, 0x0c57, 0x0c67, -} - -// Size: 3229 bytes -var csRegionStr string = "" + - "AscensionAndorraSpojené arabské emirátyAfghánistánAntigua a BarbudaAngui" + - "llaAlbánieArménieNizozemské AntilyAngolaAntarktidaArgentinaAmerická Samo" + - "aRakouskoAustrálieArubaÃ…landyÃzerbájdžánBosna a HercegovinaBarbadosBangl" + - "adéšBelgieBurkina FasoBulharskoBahrajnBurundiBeninSvatý BartolomÄ›jBermud" + - "yBrunejBolívieKaribské NizozemskoBrazílieBahamyBhútánBouvetův ostrovBots" + - "wanaBÄ›loruskoBelizeKanadaKokosové ostrovyKongo – KinshasaStÅ™edoafrická r" + - "epublikaKongo – BrazzavilleÅ výcarskoPobÅ™eží slonovinyCookovy ostrovyChil" + - "eKamerunČínaKolumbieClippertonův ostrovKostarikaKubaKapverdyCuraçaoVánoÄ" + - "ní ostrovKyprÄŒeská republikaNÄ›meckoDiego GarcíaDžibutskoDánskoDominikaDo" + - "minikánská republikaAlžírskoCeuta a MelillaEkvádorEstonskoEgyptZápadní S" + - "aharaEritreaÅ panÄ›lskoEtiopieEvropská unieFinskoFidžiFalklandské ostrovyM" + - "ikronésieFaerské ostrovyFrancieGabonVelká BritánieGrenadaGruzieFrancouzs" + - "ká GuyanaGuernseyGhanaGibraltarGrónskoGambieGuineaGuadeloupeRovníková Gu" + - "ineaŘeckoJižní Georgie a Jižní Sandwichovy ostrovyGuatemalaGuamGuinea-Bi" + - "ssauGuyanaHongkong – ZAO ČínyHeardův ostrov a McDonaldovy ostrovyHondura" + - "sChorvatskoHaitiMaÄarskoKanárské ostrovyIndonésieIrskoIzraelOstrov ManIn" + - "dieBritské indickooceánské územíIrákÃránIslandItálieJerseyJamajkaJordáns" + - "koJaponskoKeňaKyrgyzstánKambodžaKiribatiKomorySvatý KryÅ¡tof a NevisSever" + - "ní KoreaJižní KoreaKuvajtKajmanské ostrovyKazachstánLaosLibanonSvatá Luc" + - "ieLichtenÅ¡tejnskoSrí LankaLibérieLesothoLitvaLucemburskoLotyÅ¡skoLibyeMar" + - "okoMonakoMoldavskoÄŒerná HoraSvatý Martin (Francie)MadagaskarMarshallovy " + - "ostrovyMakedonieMaliMyanmar (Barma)MongolskoMacao – ZAO ČínySeverní Mari" + - "anyMartinikMauritánieMontserratMaltaMauriciusMaledivyMalawiMexikoMalajsi" + - "eMosambikNamibieNová KaledonieNigerNorfolkNigérieNikaraguaNizozemskoNors" + - "koNepálNauruNiueNový ZélandOmánPanamaPeruFrancouzská PolynésiePapua-Nová" + - " GuineaFilipínyPákistánPolskoSaint-Pierre a MiquelonPitcairnovy ostrovyP" + - "ortorikoPalestinská územíPortugalskoPalauParaguayKatarVnÄ›jší OceánieRéun" + - "ionRumunskoSrbskoRuskoRwandaSaúdská ArábieÅ alamounovy ostrovySeychelySúd" + - "ánÅ védskoSingapurSvatá HelenaSlovinskoÅ picberky a Jan MayenSlovenskoSie" + - "rra LeoneSan MarinoSenegalSomálskoSurinamJižní SúdánSvatý Tomáš a Princů" + - "v ostrovSalvadorSvatý Martin (Nizozemsko)SýrieSvazijskoTristan da CunhaT" + - "urks a CaicosÄŒadFrancouzská jižní územíTogoThajskoTádžikistánTokelauVých" + - "odní TimorTurkmenistánTuniskoTongaTureckoTrinidad a TobagoTuvaluTchaj-wa" + - "nTanzanieUkrajinaUgandaMenší odlehlé ostrovy USASpojené státyUruguayUzbe" + - "kistánVatikánSvatý Vincenc a GrenadinyVenezuelaBritské Panenské ostrovyA" + - "merické Panenské ostrovyVietnamVanuatuWallis a FutunaSamoaKosovoJemenMay" + - "otteJihoafrická republikaZambieZimbabweNeznámá oblastSvÄ›tAfrikaSeverní A" + - "merikaJižní AmerikaOceánieZápadní AfrikaStÅ™ední AmerikaVýchodní AfrikaSe" + - "verní AfrikaStÅ™ední AfrikaJižní AfrikaAmerikaSeverní Amerika (oblast)Kar" + - "ibikVýchodní AsieJižní AsieJihovýchodní AsieJižní EvropaAustralasieMelan" + - "ésieMikronésie (region)PolynésieAsieStÅ™ední AsieZápadní AsieEvropaVýcho" + - "dní EvropaSeverní EvropaZápadní EvropaLatinská Amerika" - -// Size: 606 bytes, 291 elements -var csRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0009, 0x0010, 0x002a, 0x0037, 0x0048, 0x0050, 0x0058, - 0x0060, 0x0072, 0x0078, 0x0082, 0x008b, 0x009a, 0x00a2, 0x00ac, - 0x00b1, 0x00b8, 0x00c7, 0x00da, 0x00e2, 0x00ed, 0x00f3, 0x00ff, - 0x0108, 0x010f, 0x0116, 0x011b, 0x012d, 0x0134, 0x013a, 0x0142, - 0x0156, 0x015f, 0x0165, 0x016d, 0x017d, 0x0185, 0x018f, 0x0195, - 0x019b, 0x01ac, 0x01be, 0x01d7, 0x01ec, 0x01f7, 0x020b, 0x021a, - 0x021f, 0x0226, 0x022c, 0x0234, 0x0248, 0x0251, 0x0255, 0x025d, - 0x0265, 0x0276, 0x027a, 0x028b, 0x0293, 0x02a0, 0x02aa, 0x02b1, - // Entry 40 - 7F - 0x02b9, 0x02d1, 0x02db, 0x02ea, 0x02f2, 0x02fa, 0x02ff, 0x030f, - 0x0316, 0x0321, 0x0328, 0x0336, 0x033c, 0x0342, 0x0356, 0x0361, - 0x0371, 0x0378, 0x037d, 0x038d, 0x0394, 0x039a, 0x03ad, 0x03b5, - 0x03ba, 0x03c3, 0x03cb, 0x03d1, 0x03d7, 0x03e1, 0x03f3, 0x03f9, - 0x0426, 0x042f, 0x0433, 0x0440, 0x0446, 0x045d, 0x0482, 0x048a, - 0x0494, 0x0499, 0x04a2, 0x04b4, 0x04be, 0x04c3, 0x04c9, 0x04d3, - 0x04d8, 0x04fa, 0x04ff, 0x0505, 0x050b, 0x0512, 0x0518, 0x051f, - 0x0529, 0x0531, 0x0536, 0x0541, 0x054a, 0x0552, 0x0558, 0x056f, - // Entry 80 - BF - 0x057d, 0x058a, 0x0590, 0x05a2, 0x05ad, 0x05b1, 0x05b8, 0x05c4, - 0x05d4, 0x05de, 0x05e6, 0x05ed, 0x05f2, 0x05fd, 0x0606, 0x060b, - 0x0611, 0x0617, 0x0620, 0x062c, 0x0643, 0x064d, 0x0660, 0x0669, - 0x066d, 0x067c, 0x0685, 0x0699, 0x06a9, 0x06b1, 0x06bc, 0x06c6, - 0x06cb, 0x06d4, 0x06dc, 0x06e2, 0x06e8, 0x06f0, 0x06f8, 0x06ff, - 0x070e, 0x0713, 0x071a, 0x0722, 0x072b, 0x0735, 0x073b, 0x0741, - 0x0746, 0x074a, 0x0757, 0x075c, 0x0762, 0x0766, 0x077d, 0x078f, - 0x0798, 0x07a2, 0x07a8, 0x07bf, 0x07d2, 0x07db, 0x07ef, 0x07fa, - // Entry C0 - FF - 0x07ff, 0x0807, 0x080c, 0x081e, 0x0826, 0x082e, 0x0834, 0x0839, - 0x083f, 0x0850, 0x0864, 0x086c, 0x0873, 0x087c, 0x0884, 0x0891, - 0x089a, 0x08b0, 0x08b9, 0x08c5, 0x08cf, 0x08d6, 0x08df, 0x08e6, - 0x08f5, 0x0915, 0x091d, 0x0937, 0x093d, 0x0946, 0x0956, 0x0964, - 0x0968, 0x0984, 0x0988, 0x098f, 0x099d, 0x09a4, 0x09b4, 0x09c1, - 0x09c8, 0x09cd, 0x09d4, 0x09e5, 0x09eb, 0x09f4, 0x09fc, 0x0a04, - 0x0a0a, 0x0a26, 0x0a35, 0x0a3c, 0x0a47, 0x0a4f, 0x0a69, 0x0a72, - 0x0a8c, 0x0aa7, 0x0aae, 0x0ab5, 0x0ac4, 0x0ac9, 0x0acf, 0x0ad4, - // Entry 100 - 13F - 0x0adb, 0x0af1, 0x0af7, 0x0aff, 0x0b0f, 0x0b14, 0x0b1a, 0x0b2a, - 0x0b39, 0x0b41, 0x0b51, 0x0b62, 0x0b73, 0x0b82, 0x0b92, 0x0ba0, - 0x0ba7, 0x0bc0, 0x0bc7, 0x0bd6, 0x0be2, 0x0bf5, 0x0c03, 0x0c0e, - 0x0c18, 0x0c2c, 0x0c36, 0x0c3a, 0x0c48, 0x0c56, 0x0c5c, 0x0c6d, - 0x0c7c, 0x0c8c, 0x0c9d, -} - -// Size: 2938 bytes -var daRegionStr string = "" + - "AscensionøenAndorraForenede Arabiske EmiraterAfghanistanAntigua og Barbu" + - "daAnguillaAlbanienArmenienHollandske AntillerAngolaAntarktisArgentinaAme" + - "rikansk SamoaØstrigAustralienArubaÃ…landAserbajdsjanBosnien-HercegovinaBa" + - "rbadosBangladeshBelgienBurkina FasoBulgarienBahrainBurundiBeninSaint Bar" + - "thélemyBermudaBruneiBoliviaNederlandske antillerBrasilienBahamasBhutanBo" + - "uvetøenBotswanaHvideruslandBelizeCanadaCocosøerneCongo-KinshasaCentralaf" + - "rikanske RepublikCongo-BrazzavilleSchweizElfenbenskystenCookøerneChileCa" + - "merounKinaColombiaClippertonøenCosta RicaCubaKap VerdeCuraçaoJuleøenCype" + - "rnTjekkietTysklandDiego GarciaDjiboutiDanmarkDominicaDen Dominikanske Re" + - "publikAlgerietCeuta og MelillaEcuadorEstlandEgyptenVestsaharaEritreaSpan" + - "ienEtiopienDen Europæiske UnionFinlandFijiFalklandsøerneMikronesiens For" + - "enede StaterFærøerneFrankrigGabonStorbritannienGrenadaGeorgienFransk Guy" + - "anaGuernseyGhanaGibraltarGrønlandGambiaGuineaGuadeloupeÆkvatorialguineaG" + - "rækenlandSouth Georgia og South Sandwich IslandsGuatemalaGuamGuinea-Biss" + - "auGuyanaHongkong SARHeard Island og McDonald IslandsHondurasKroatienHait" + - "iUngarnKanariske øerIndonesienIrlandIsraelIsle of ManIndienDet britiske " + - "territorium i Det Indiske OceanIrakIranIslandItalienJerseyJamaicaJordanJ" + - "apanKenyaKirgisistanCambodjaKiribatiComorerneSaint Kitts og NevisNordkor" + - "eaSydkoreaKuwaitCaymanøerneKasakhstanLaosLibanonSaint LuciaLiechtenstein" + - "Sri LankaLiberiaLesothoLitauenLuxembourgLetlandLibyenMarokkoMonacoMoldov" + - "aMontenegroSaint MartinMadagaskarMarshalløerneMakedonienMaliMyanmar (Bur" + - "ma)MongolietMacao SARNordmarianerneMartiniqueMauretanienMontserratMaltaM" + - "auritiusMaldiverneMalawiMexicoMalaysiaMozambiqueNamibiaNy KaledonienNige" + - "rNorfolk IslandNigeriaNicaraguaHollandNorgeNepalNauruNiueNew ZealandOman" + - "PanamaPeruFransk PolynesienPapua Ny GuineaFilippinernePakistanPolenSaint" + - " Pierre og MiquelonPitcairnPuerto RicoDe palæstinensiske omrÃ¥derPortugal" + - "PalauParaguayQatarYdre OceanienRéunionRumænienSerbienRuslandRwandaSaudi-" + - "ArabienSalomonøerneSeychellerneSudanSverigeSingaporeSt. HelenaSlovenienS" + - "valbard og Jan MayenSlovakietSierra LeoneSan MarinoSenegalSomaliaSurinam" + - "SydsudanSao Tome og PrincipeEl SalvadorSint MaartenSyrienSwazilandTrista" + - "n da CunhaTurks- og CaicosøerneTchadDe franske besiddelser i Det Sydlige" + - " Indiske OceanTogoThailandTadsjikistanTokelauTimor-LesteTurkmenistanTune" + - "sienTongaTyrkietTrinidad og TobagoTuvaluTaiwanTanzaniaUkraineUgandaAmeri" + - "kanske oversøiske øerUSAUruguayUsbekistanVatikanstatenSaint Vincent og G" + - "renadinerneVenezuelaDe Britiske JomfruøerDe Amerikanske JomfruøerVietnam" + - "VanuatuWallis og FutunaSamoaKosovoYemenMayotteSydafrikaZambiaZimbabweUke" + - "ndt omrÃ¥deVerdenAfrikaNordamerikaSydamerikaOceanienVestafrikaMellemameri" + - "kaØstafrikaNordafrikaCentralafrikaDet sydlige AfrikaAmerikaDet nordlige " + - "AmerikaCaribienØstasienSydasienSydøstasienSydeuropaAustralasienMelanesie" + - "nMikronesienPolynesienAsienCentralasienVestasienEuropaØsteuropaNordeurop" + - "aVesteuropaLatinamerika" - -// Size: 606 bytes, 291 elements -var daRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000d, 0x0014, 0x002e, 0x0039, 0x004b, 0x0053, 0x005b, - 0x0063, 0x0076, 0x007c, 0x0085, 0x008e, 0x009e, 0x00a5, 0x00af, - 0x00b4, 0x00ba, 0x00c6, 0x00d9, 0x00e1, 0x00eb, 0x00f2, 0x00fe, - 0x0107, 0x010e, 0x0115, 0x011a, 0x012b, 0x0132, 0x0138, 0x013f, - 0x0154, 0x015d, 0x0164, 0x016a, 0x0174, 0x017c, 0x0188, 0x018e, - 0x0194, 0x019f, 0x01ad, 0x01c7, 0x01d8, 0x01df, 0x01ee, 0x01f8, - 0x01fd, 0x0205, 0x0209, 0x0211, 0x021f, 0x0229, 0x022d, 0x0236, - 0x023e, 0x0246, 0x024c, 0x0254, 0x025c, 0x0268, 0x0270, 0x0277, - // Entry 40 - 7F - 0x027f, 0x0298, 0x02a0, 0x02b0, 0x02b7, 0x02be, 0x02c5, 0x02cf, - 0x02d6, 0x02dd, 0x02e5, 0x02fa, 0x0301, 0x0305, 0x0314, 0x0330, - 0x033a, 0x0342, 0x0347, 0x0355, 0x035c, 0x0364, 0x0371, 0x0379, - 0x037e, 0x0387, 0x0390, 0x0396, 0x039c, 0x03a6, 0x03b7, 0x03c2, - 0x03e9, 0x03f2, 0x03f6, 0x0403, 0x0409, 0x0415, 0x0435, 0x043d, - 0x0445, 0x044a, 0x0450, 0x045e, 0x0468, 0x046e, 0x0474, 0x047f, - 0x0485, 0x04b1, 0x04b5, 0x04b9, 0x04bf, 0x04c6, 0x04cc, 0x04d3, - 0x04d9, 0x04de, 0x04e3, 0x04ee, 0x04f6, 0x04fe, 0x0507, 0x051b, - // Entry 80 - BF - 0x0524, 0x052c, 0x0532, 0x053e, 0x0548, 0x054c, 0x0553, 0x055e, - 0x056b, 0x0574, 0x057b, 0x0582, 0x0589, 0x0593, 0x059a, 0x05a0, - 0x05a7, 0x05ad, 0x05b4, 0x05be, 0x05ca, 0x05d4, 0x05e2, 0x05ec, - 0x05f0, 0x05ff, 0x0608, 0x0611, 0x061f, 0x0629, 0x0634, 0x063e, - 0x0643, 0x064c, 0x0656, 0x065c, 0x0662, 0x066a, 0x0674, 0x067b, - 0x0688, 0x068d, 0x069b, 0x06a2, 0x06ab, 0x06b2, 0x06b7, 0x06bc, - 0x06c1, 0x06c5, 0x06d0, 0x06d4, 0x06da, 0x06de, 0x06ef, 0x06fe, - 0x070a, 0x0712, 0x0717, 0x072f, 0x0737, 0x0742, 0x075e, 0x0766, - // Entry C0 - FF - 0x076b, 0x0773, 0x0778, 0x0785, 0x078d, 0x0796, 0x079d, 0x07a4, - 0x07aa, 0x07b7, 0x07c4, 0x07d0, 0x07d5, 0x07dc, 0x07e5, 0x07ef, - 0x07f8, 0x080d, 0x0816, 0x0822, 0x082c, 0x0833, 0x083a, 0x0841, - 0x0849, 0x085d, 0x0868, 0x0874, 0x087a, 0x0883, 0x0893, 0x08a9, - 0x08ae, 0x08e0, 0x08e4, 0x08ec, 0x08f8, 0x08ff, 0x090a, 0x0916, - 0x091e, 0x0923, 0x092a, 0x093c, 0x0942, 0x0948, 0x0950, 0x0957, - 0x095d, 0x0979, 0x097c, 0x0983, 0x098d, 0x099a, 0x09b7, 0x09c0, - 0x09d6, 0x09ef, 0x09f6, 0x09fd, 0x0a0d, 0x0a12, 0x0a18, 0x0a1d, - // Entry 100 - 13F - 0x0a24, 0x0a2d, 0x0a33, 0x0a3b, 0x0a49, 0x0a4f, 0x0a55, 0x0a60, - 0x0a6a, 0x0a72, 0x0a7c, 0x0a89, 0x0a93, 0x0a9d, 0x0aaa, 0x0abc, - 0x0ac3, 0x0ad7, 0x0adf, 0x0ae8, 0x0af0, 0x0afc, 0x0b05, 0x0b11, - 0x0b1b, 0x0b26, 0x0b30, 0x0b35, 0x0b41, 0x0b4a, 0x0b50, 0x0b5a, - 0x0b64, 0x0b6e, 0x0b7a, -} - -// Size: 3102 bytes -var deRegionStr string = "" + - "AscensionAndorraVereinigte Arabische EmirateAfghanistanAntigua und Barbu" + - "daAnguillaAlbanienArmenienNiederländische AntillenAngolaAntarktisArgenti" + - "nienAmerikanisch-SamoaÖsterreichAustralienArubaÃ…landinselnAserbaidschanB" + - "osnien und HerzegowinaBarbadosBangladeschBelgienBurkina FasoBulgarienBah" + - "rainBurundiBeninSt. BarthélemyBermudaBrunei DarussalamBolivienBonaire, S" + - "int Eustatius und SabaBrasilienBahamasBhutanBouvetinselBotsuanaBelarusBe" + - "lizeKanadaKokosinselnKongo-KinshasaZentralafrikanische RepublikKongo-Bra" + - "zzavilleSchweizCôte d’IvoireCookinselnChileKamerunChinaKolumbienClippert" + - "on-InselCosta RicaKubaKap VerdeCuraçaoWeihnachtsinselZypernTschechische " + - "RepublikDeutschlandDiego GarciaDschibutiDänemarkDominicaDominikanische R" + - "epublikAlgerienCeuta und MelillaEcuadorEstlandÄgyptenWestsaharaEritreaSp" + - "anienÄthiopienEuropäische UnionFinnlandFidschiFalklandinselnMikronesienF" + - "äröerFrankreichGabunVereinigtes KönigreichGrenadaGeorgienFranzösisch-Gu" + - "ayanaGuernseyGhanaGibraltarGrönlandGambiaGuineaGuadeloupeÄquatorialguine" + - "aGriechenlandSüdgeorgien und die Südlichen SandwichinselnGuatemalaGuamGu" + - "inea-BissauGuyanaSonderverwaltungszone HongkongHeard- und McDonald-Insel" + - "nHondurasKroatienHaitiUngarnKanarische InselnIndonesienIrlandIsraelIsle " + - "of ManIndienBritisches Territorium im Indischen OzeanIrakIranIslandItali" + - "enJerseyJamaikaJordanienJapanKeniaKirgisistanKambodschaKiribatiKomorenSt" + - ". Kitts und NevisNordkoreaSüdkoreaKuwaitKaimaninselnKasachstanLaosLibano" + - "nSt. LuciaLiechtensteinSri LankaLiberiaLesothoLitauenLuxemburgLettlandLi" + - "byenMarokkoMonacoRepublik MoldauMontenegroSt. MartinMadagaskarMarshallin" + - "selnMazedonienMaliMyanmarMongoleiSonderverwaltungsregion MacauNördliche " + - "MarianenMartiniqueMauretanienMontserratMaltaMauritiusMaledivenMalawiMexi" + - "koMalaysiaMosambikNamibiaNeukaledonienNigerNorfolkinselNigeriaNicaraguaN" + - "iederlandeNorwegenNepalNauruNiueNeuseelandOmanPanamaPeruFranzösisch-Poly" + - "nesienPapua-NeuguineaPhilippinenPakistanPolenSt. Pierre und MiquelonPitc" + - "airninselnPuerto RicoPalästinensische AutonomiegebietePortugalPalauParag" + - "uayKatarÄußeres OzeanienRéunionRumänienSerbienRusslandRuandaSaudi-Arabie" + - "nSalomonenSeychellenSudanSchwedenSingapurSt. HelenaSlowenienSvalbard und" + - " Jan MayenSlowakeiSierra LeoneSan MarinoSenegalSomaliaSurinameSüdsudanSã" + - "o Tomé und PríncipeEl SalvadorSint MaartenSyrienSwasilandTristan da Cunh" + - "aTurks- und CaicosinselnTschadFranzösische Süd- und AntarktisgebieteTogo" + - "ThailandTadschikistanTokelauTimor-LesteTurkmenistanTunesienTongaTürkeiTr" + - "inidad und TobagoTuvaluTaiwanTansaniaUkraineUgandaAmerikanisch-OzeanienV" + - "ereinigte StaatenUruguayUsbekistanVatikanstadtSt. Vincent und die Grenad" + - "inenVenezuelaBritische JungferninselnAmerikanische JungferninselnVietnam" + - "VanuatuWallis und FutunaSamoaKosovoJemenMayotteSüdafrikaSambiaSimbabweUn" + - "bekannte RegionWeltAfrikaNordamerikaSüdamerikaOzeanienWestafrikaMittelam" + - "erikaOstafrikaNordafrikaZentralafrikaSüdliches AfrikaAmerikaNördliches A" + - "merikaKaribikOstasienSüdasienSüdostasienSüdeuropaAustralasienMelanesienM" + - "ikronesisches InselgebietPolynesienAsienZentralasienWestasienEuropaOsteu" + - "ropaNordeuropaWesteuropaLateinamerika" - -// Size: 606 bytes, 291 elements -var deRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0009, 0x0010, 0x002c, 0x0037, 0x004a, 0x0052, 0x005a, - 0x0062, 0x007b, 0x0081, 0x008a, 0x0095, 0x00a7, 0x00b2, 0x00bc, - 0x00c1, 0x00cd, 0x00da, 0x00f1, 0x00f9, 0x0104, 0x010b, 0x0117, - 0x0120, 0x0127, 0x012e, 0x0133, 0x0142, 0x0149, 0x015a, 0x0162, - 0x0182, 0x018b, 0x0192, 0x0198, 0x01a3, 0x01ab, 0x01b2, 0x01b8, - 0x01be, 0x01c9, 0x01d7, 0x01f3, 0x0204, 0x020b, 0x021b, 0x0225, - 0x022a, 0x0231, 0x0236, 0x023f, 0x024f, 0x0259, 0x025d, 0x0266, - 0x026e, 0x027d, 0x0283, 0x0298, 0x02a3, 0x02af, 0x02b8, 0x02c1, - // Entry 40 - 7F - 0x02c9, 0x02e0, 0x02e8, 0x02f9, 0x0300, 0x0307, 0x030f, 0x0319, - 0x0320, 0x0327, 0x0331, 0x0343, 0x034b, 0x0352, 0x0360, 0x036b, - 0x0373, 0x037d, 0x0382, 0x0399, 0x03a0, 0x03a8, 0x03bc, 0x03c4, - 0x03c9, 0x03d2, 0x03db, 0x03e1, 0x03e7, 0x03f1, 0x0402, 0x040e, - 0x043c, 0x0445, 0x0449, 0x0456, 0x045c, 0x047a, 0x0494, 0x049c, - 0x04a4, 0x04a9, 0x04af, 0x04c0, 0x04ca, 0x04d0, 0x04d6, 0x04e1, - 0x04e7, 0x0510, 0x0514, 0x0518, 0x051e, 0x0525, 0x052b, 0x0532, - 0x053b, 0x0540, 0x0545, 0x0550, 0x055a, 0x0562, 0x0569, 0x057c, - // Entry 80 - BF - 0x0585, 0x058e, 0x0594, 0x05a0, 0x05aa, 0x05ae, 0x05b5, 0x05be, - 0x05cb, 0x05d4, 0x05db, 0x05e2, 0x05e9, 0x05f2, 0x05fa, 0x0600, - 0x0607, 0x060d, 0x061c, 0x0626, 0x0630, 0x063a, 0x0648, 0x0652, - 0x0656, 0x065d, 0x0665, 0x0682, 0x0695, 0x069f, 0x06aa, 0x06b4, - 0x06b9, 0x06c2, 0x06cb, 0x06d1, 0x06d7, 0x06df, 0x06e7, 0x06ee, - 0x06fb, 0x0700, 0x070c, 0x0713, 0x071c, 0x0727, 0x072f, 0x0734, - 0x0739, 0x073d, 0x0747, 0x074b, 0x0751, 0x0755, 0x076c, 0x077b, - 0x0786, 0x078e, 0x0793, 0x07aa, 0x07b8, 0x07c3, 0x07e5, 0x07ed, - // Entry C0 - FF - 0x07f2, 0x07fa, 0x07ff, 0x0811, 0x0819, 0x0822, 0x0829, 0x0831, - 0x0837, 0x0844, 0x084d, 0x0857, 0x085c, 0x0864, 0x086c, 0x0876, - 0x087f, 0x0895, 0x089d, 0x08a9, 0x08b3, 0x08ba, 0x08c1, 0x08c9, - 0x08d2, 0x08ea, 0x08f5, 0x0901, 0x0907, 0x0910, 0x0920, 0x0937, - 0x093d, 0x0965, 0x0969, 0x0971, 0x097e, 0x0985, 0x0990, 0x099c, - 0x09a4, 0x09a9, 0x09b0, 0x09c3, 0x09c9, 0x09cf, 0x09d7, 0x09de, - 0x09e4, 0x09f9, 0x0a0b, 0x0a12, 0x0a1c, 0x0a28, 0x0a46, 0x0a4f, - 0x0a67, 0x0a83, 0x0a8a, 0x0a91, 0x0aa2, 0x0aa7, 0x0aad, 0x0ab2, - // Entry 100 - 13F - 0x0ab9, 0x0ac3, 0x0ac9, 0x0ad1, 0x0ae2, 0x0ae6, 0x0aec, 0x0af7, - 0x0b02, 0x0b0a, 0x0b14, 0x0b21, 0x0b2a, 0x0b34, 0x0b41, 0x0b52, - 0x0b59, 0x0b6c, 0x0b73, 0x0b7b, 0x0b84, 0x0b90, 0x0b9a, 0x0ba6, - 0x0bb0, 0x0bca, 0x0bd4, 0x0bd9, 0x0be5, 0x0bee, 0x0bf4, 0x0bfd, - 0x0c07, 0x0c11, 0x0c1e, -} - -// Size: 6143 bytes -var elRegionStr string = "" + - "Îήσος ΑσενσιόνΑνδόÏαΗνωμένα ΑÏαβικά ΕμιÏάταΑφγανιστάνΑντίγκουα και ΜπαÏμ" + - "ποÏνταΑνγκουίλαΑλβανίαΑÏμενίαΟλλανδικές ΑντίλλεςΑνγκόλαΑνταÏκτικήΑÏγεντ" + - "ινήΑμεÏικανική ΣαμόαΑυστÏίαΑυστÏαλίαΑÏοÏμπαÎήσοι ΌλαντΑζεÏμπαϊτζάνΒοσνί" + - "α - ΕÏζεγοβίνηΜπαÏμπάντοςΜπανγκλαντέςΒέλγιοΜπουÏκίνα ΦάσοΒουλγαÏίαΜπαχÏ" + - "έινΜπουÏοÏντιΜπενίνΆγιος ΒαÏθολομαίοςΒεÏμοÏδεςΜπÏουνέιΒολιβίαΟλλανδία Κ" + - "αÏαϊβικήςΒÏαζιλίαΜπαχάμεςΜπουτάνÎήσος ΜπουβέΜποτσουάναΛευκοÏωσίαΜπελίζΚ" + - "αναδάςÎήσοι Κόκος (Κίλινγκ)Κονγκό - ΚινσάσαΚεντÏοαφÏικανική ΔημοκÏατίαΚ" + - "ονγκό - ΜπÏαζαβίλΕλβετίαΑκτή ΕλεφαντοστοÏÎήσοι ΚουκΧιλήΚαμεÏοÏνΚίναΚολο" + - "μβίαÎήσος ΚλίπεÏτονΚόστα ΡίκαΚοÏβαΠÏάσινο ΑκÏωτήÏιοΚουÏασάοÎήσος των ΧÏ" + - "ιστουγέννωνΚÏÏ€ÏοςΤσεχική ΔημοκÏατίαΓεÏμανίαÎτιέγκο ΓκαÏσίαΤζιμπουτίΔανί" + - "αÎτομίνικαΔομινικανή ΔημοκÏατίαΑλγεÏίαΘεοÏτα και ΜελίλαΕκουαδόÏΕσθονίαΑ" + - "ίγυπτοςΔυτική ΣαχάÏαΕÏυθÏαίαΙσπανίαΑιθιοπίαΕυÏωπαϊκή ΈνωσηΦινλανδίαΦίτζ" + - "ιÎήσοι ΦόκλαντΜικÏονησίαÎήσοι ΦεÏόεςΓαλλίαΓκαμπόνΗνωμένο ΒασίλειοΓÏενάδ" + - "αΓεωÏγίαΓαλλική ΓουιάναΓκέÏνζιΓκάναΓιβÏαλτάÏΓÏοιλανδίαΓκάμπιαΓουινέαΓου" + - "αδελοÏπηΙσημεÏινή ΓουινέαΕλλάδαÎήσοι Îότια ΓεωÏγία και Îότιες Σάντουιτς" + - "ΓουατεμάλαΓκουάμΓουινέα ΜπισάουΓουιάναΧονγκ Κονγκ ΕΔΠ ΚίναςÎήσοι ΧεÏντ " + - "και ΜακντόναλντΟνδοÏÏαΚÏοατίαΑϊτήΟυγγαÏίαΚανάÏιοι ÎήσοιΙνδονησίαΙÏλανδί" + - "αΙσÏαήλÎήσος ΜανΙνδίαΒÏετανικά Εδάφη Î™Î½Î´Î¹ÎºÎ¿Ï Î©ÎºÎµÎ±Î½Î¿ÏΙÏάκΙÏάνΙσλανδίαΙτα" + - "λίαΤζέÏζιΤζαμάικαΙοÏδανίαΙαπωνίαΚένυαΚιÏγιστάνΚαμπότζηΚιÏιμπάτιΚομόÏεςΆ" + - "γιος ΧÏιστόφοÏος και ÎέβιςΒόÏεια ΚοÏέαÎότια ΚοÏέαΚουβέιτÎήσοι ΚάιμανΚαζ" + - "ακστάνΛάοςΛίβανοςΑγία ΛουκίαΛιχτενστάινΣÏι ΛάνκαΛιβεÏίαΛεσότοΛιθουανίαΛ" + - "ουξεμβοÏÏγοΛετονίαΛιβÏηΜαÏόκοΜονακόΜολδαβίαΜαυÏοβοÏνιοΆγιος ΜαÏτίνος (Γ" + - "αλλικό τμήμα)ΜαδαγασκάÏηÎήσοι ΜάÏσαλΠΓΔΜΜάλιΜιανμάÏ/ΒιÏμανίαΜογγολίαΜακ" + - "άο ΕΔΠ ΚίναςÎήσοι Î’ÏŒÏειες ΜαÏιάνεςΜαÏτινίκαΜαυÏιτανίαΜονσεÏάτΜάλταΜαυÏί" + - "κιοςΜαλδίβεςΜαλάουιΜεξικόΜαλαισίαΜοζαμβίκηÎαμίμπιαÎέα ΚαληδονίαÎίγηÏαςÎ" + - "ήσος ÎÏŒÏφολκÎιγηÏίαÎικαÏάγουαΟλλανδίαÎοÏβηγίαÎεπάλÎαουÏοÏÎιοÏεÎέα Ζηλαν" + - "δίαΟμάνΠαναμάςΠεÏοÏΓαλλική ΠολυνησίαΠαποÏα Îέα ΓουινέαΦιλιππίνεςΠακιστά" + - "νΠολωνίαΣεν Î Î¹ÎµÏ ÎºÎ±Î¹ ΜικελόνÎήσοι ΠίτκεÏνΠουέÏτο ΡίκοΠαλαιστινιακά Εδάφ" + - "ηΠοÏτογαλίαΠαλάουΠαÏαγουάηΚατάÏΠεÏιφεÏειακή ΩκεανίαΡεϊνιόνΡουμανίαΣεÏβί" + - "αΡωσίαΡουάνταΣαουδική ΑÏαβίαÎήσοι ΣολομώντοςΣεϋχέλλεςΣουδάνΣουηδίαΣιγκα" + - "ποÏÏηΑγία ΕλένηΣλοβενίαΣβάλμπαÏντ και Γιαν ΜαγιένΣλοβακίαΣιέÏα ΛεόνεΆγι" + - "ος ΜαÏίνοςΣενεγάληΣομαλίαΣουÏινάμÎότιο ΣουδάνΣάο Τομέ και ΠÏίνσιπεΕλ Σα" + - "λβαδόÏΆγιος ΜαÏτίνος (Ολλανδικό τμήμα)ΣυÏίαΣουαζιλάνδηΤÏιστάν ντα ΚοÏνι" + - "αÎήσοι ΤεÏκ και ΚάικοςΤσαντΓαλλικά Îότια ΕδάφηΤόγκοΤαϊλάνδηΤατζικιστάνΤ" + - "οκελάουΤιμόÏ-ΛέστεΤουÏκμενιστάνΤυνησίαΤόνγκαΤουÏκίαΤÏινιντάντ και Τομπά" + - "γκοΤουβαλοÏΤαϊβάνΤανζανίαΟυκÏανίαΟυγκάνταΑπομακÏυσμένες Îησίδες Η.Π.Α.Η" + - "νωμένες ΠολιτείεςΟυÏουγουάηΟυζμπεκιστάνΒατικανόΆγιος Βικέντιος και ΓÏεν" + - "αδίνεςΒενεζουέλαΒÏετανικές ΠαÏθένοι ÎήσοιΑμεÏικανικές ΠαÏθένοι ÎήσοιΒιε" + - "τνάμΒανουάτουΟυάλις και ΦουτοÏναΣαμόαΚόσοβοΥεμένηΜαγιότÎότια ΑφÏικήΖάμπ" + - "ιαΖιμπάμπουεΆγνωστη πεÏιοχήΚόσμοςΑφÏικήΒόÏεια ΑμεÏικήÎότια ΑμεÏικήΩκεαν" + - "ίαΔυτική ΑφÏικήΚεντÏική ΑμεÏικήΑνατολική ΑφÏικήΒόÏεια ΑφÏικήΜέση ΑφÏική" + - "Îότιος ΑφÏικήΑμεÏικήΒόÏειος ΑμεÏικήΚαÏαϊβικήΑνατολική ΑσίαÎότια ΑσίαÎοτ" + - "ιοανατολική ΑσίαÎότια ΕυÏώπηΑυστÏαλασίαΜελανησίαΠεÏιοχή ΜικÏονησίαςΠολυ" + - "νησίαΑσίαΚεντÏική ΑσίαΔυτική ΑσίαΕυÏώπηΑνατολική ΕυÏώπηΒόÏεια ΕυÏώπηΔυτ" + - "ική ΕυÏώπηΛατινική ΑμεÏική" - -// Size: 606 bytes, 291 elements -var elRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x001b, 0x0027, 0x0053, 0x0067, 0x0097, 0x00a9, 0x00b7, - 0x00c5, 0x00ea, 0x00f8, 0x010c, 0x011e, 0x013f, 0x014d, 0x015f, - 0x016d, 0x0182, 0x019a, 0x01bd, 0x01d3, 0x01eb, 0x01f7, 0x0212, - 0x0224, 0x0234, 0x0248, 0x0254, 0x0277, 0x0289, 0x0299, 0x02a7, - 0x02cc, 0x02dc, 0x02ec, 0x02fa, 0x0311, 0x0325, 0x0339, 0x0345, - 0x0353, 0x0379, 0x0396, 0x03cb, 0x03ec, 0x03fa, 0x041b, 0x042e, - 0x0436, 0x0446, 0x044e, 0x045e, 0x047b, 0x048e, 0x0498, 0x04b9, - 0x04c9, 0x04f5, 0x0501, 0x0524, 0x0534, 0x0551, 0x0563, 0x056d, - // Entry 40 - 7F - 0x057f, 0x05a8, 0x05b6, 0x05d6, 0x05e6, 0x05f4, 0x0604, 0x061d, - 0x062d, 0x063b, 0x064b, 0x0668, 0x067a, 0x0684, 0x069d, 0x06b1, - 0x06c8, 0x06d4, 0x06e2, 0x0701, 0x070f, 0x071d, 0x073a, 0x0748, - 0x0752, 0x0764, 0x0778, 0x0786, 0x0794, 0x07aa, 0x07cb, 0x07d7, - 0x0822, 0x0836, 0x0842, 0x085f, 0x086d, 0x0894, 0x08c7, 0x08d5, - 0x08e3, 0x08eb, 0x08fb, 0x0916, 0x0928, 0x0938, 0x0944, 0x0955, - 0x095f, 0x099a, 0x09a2, 0x09aa, 0x09ba, 0x09c6, 0x09d2, 0x09e2, - 0x09f2, 0x0a00, 0x0a0a, 0x0a1c, 0x0a2c, 0x0a3e, 0x0a4c, 0x0a7f, - // Entry 80 - BF - 0x0a96, 0x0aab, 0x0ab9, 0x0ad0, 0x0ae2, 0x0aea, 0x0af8, 0x0b0d, - 0x0b23, 0x0b34, 0x0b42, 0x0b4e, 0x0b60, 0x0b78, 0x0b86, 0x0b90, - 0x0b9c, 0x0ba8, 0x0bb8, 0x0bce, 0x0c05, 0x0c1b, 0x0c32, 0x0c3a, - 0x0c42, 0x0c61, 0x0c71, 0x0c8d, 0x0cb7, 0x0cc9, 0x0cdd, 0x0ced, - 0x0cf7, 0x0d09, 0x0d19, 0x0d27, 0x0d33, 0x0d43, 0x0d55, 0x0d65, - 0x0d7e, 0x0d8c, 0x0da5, 0x0db3, 0x0dc7, 0x0dd7, 0x0de7, 0x0df1, - 0x0dff, 0x0e09, 0x0e20, 0x0e28, 0x0e36, 0x0e40, 0x0e61, 0x0e83, - 0x0e97, 0x0ea7, 0x0eb5, 0x0eda, 0x0ef3, 0x0f0a, 0x0f2f, 0x0f43, - // Entry C0 - FF - 0x0f4f, 0x0f61, 0x0f6b, 0x0f92, 0x0fa0, 0x0fb0, 0x0fbc, 0x0fc6, - 0x0fd4, 0x0ff1, 0x1010, 0x1022, 0x102e, 0x103c, 0x1050, 0x1063, - 0x1073, 0x10a4, 0x10b4, 0x10c9, 0x10e2, 0x10f2, 0x1100, 0x1110, - 0x1127, 0x114e, 0x1163, 0x119e, 0x11a8, 0x11be, 0x11e0, 0x1207, - 0x1211, 0x1235, 0x123f, 0x124f, 0x1265, 0x1275, 0x128a, 0x12a4, - 0x12b2, 0x12be, 0x12cc, 0x12f8, 0x1308, 0x1314, 0x1324, 0x1334, - 0x1344, 0x1379, 0x139c, 0x13b0, 0x13c8, 0x13d8, 0x1411, 0x1425, - 0x1455, 0x1489, 0x1497, 0x14a9, 0x14cd, 0x14d7, 0x14e3, 0x14ef, - // Entry 100 - 13F - 0x14fb, 0x1512, 0x151e, 0x1532, 0x154f, 0x155b, 0x1567, 0x1582, - 0x159b, 0x15a9, 0x15c2, 0x15e1, 0x1600, 0x1619, 0x162e, 0x1647, - 0x1655, 0x1672, 0x1684, 0x169f, 0x16b2, 0x16d7, 0x16ee, 0x1704, - 0x1716, 0x173b, 0x174d, 0x1755, 0x176e, 0x1783, 0x178f, 0x17ae, - 0x17c7, 0x17e0, 0x17ff, -} - -// Size: 2940 bytes -var enRegionStr string = "" + - "Ascension IslandAndorraUnited Arab EmiratesAfghanistanAntigua & BarbudaA" + - "nguillaAlbaniaArmeniaNetherlands AntillesAngolaAntarcticaArgentinaAmeric" + - "an SamoaAustriaAustraliaArubaÃ…land IslandsAzerbaijanBosnia & Herzegovina" + - "BarbadosBangladeshBelgiumBurkina FasoBulgariaBahrainBurundiBeninSt. Bart" + - "hélemyBermudaBruneiBoliviaCaribbean NetherlandsBrazilBahamasBhutanBouvet" + - " IslandBotswanaBelarusBelizeCanadaCocos (Keeling) IslandsCongo - Kinshas" + - "aCentral African RepublicCongo - BrazzavilleSwitzerlandCôte d’IvoireCook" + - " IslandsChileCameroonChinaColombiaClipperton IslandCosta RicaCubaCape Ve" + - "rdeCuraçaoChristmas IslandCyprusCzech RepublicGermanyDiego GarciaDjibout" + - "iDenmarkDominicaDominican RepublicAlgeriaCeuta & MelillaEcuadorEstoniaEg" + - "yptWestern SaharaEritreaSpainEthiopiaEuropean UnionFinlandFijiFalkland I" + - "slandsMicronesiaFaroe IslandsFranceGabonUnited KingdomGrenadaGeorgiaFren" + - "ch GuianaGuernseyGhanaGibraltarGreenlandGambiaGuineaGuadeloupeEquatorial" + - " GuineaGreeceSouth Georgia & South Sandwich IslandsGuatemalaGuamGuinea-B" + - "issauGuyanaHong Kong SAR ChinaHeard & McDonald IslandsHondurasCroatiaHai" + - "tiHungaryCanary IslandsIndonesiaIrelandIsraelIsle of ManIndiaBritish Ind" + - "ian Ocean TerritoryIraqIranIcelandItalyJerseyJamaicaJordanJapanKenyaKyrg" + - "yzstanCambodiaKiribatiComorosSt. Kitts & NevisNorth KoreaSouth KoreaKuwa" + - "itCayman IslandsKazakhstanLaosLebanonSt. LuciaLiechtensteinSri LankaLibe" + - "riaLesothoLithuaniaLuxembourgLatviaLibyaMoroccoMonacoMoldovaMontenegroSt" + - ". MartinMadagascarMarshall IslandsMacedoniaMaliMyanmar (Burma)MongoliaMa" + - "cau SAR ChinaNorthern Mariana IslandsMartiniqueMauritaniaMontserratMalta" + - "MauritiusMaldivesMalawiMexicoMalaysiaMozambiqueNamibiaNew CaledoniaNiger" + - "Norfolk IslandNigeriaNicaraguaNetherlandsNorwayNepalNauruNiueNew Zealand" + - "OmanPanamaPeruFrench PolynesiaPapua New GuineaPhilippinesPakistanPolandS" + - "t. Pierre & MiquelonPitcairn IslandsPuerto RicoPalestinian TerritoriesPo" + - "rtugalPalauParaguayQatarOutlying OceaniaRéunionRomaniaSerbiaRussiaRwanda" + - "Saudi ArabiaSolomon IslandsSeychellesSudanSwedenSingaporeSt. HelenaSlove" + - "niaSvalbard & Jan MayenSlovakiaSierra LeoneSan MarinoSenegalSomaliaSurin" + - "ameSouth SudanSão Tomé & PríncipeEl SalvadorSint MaartenSyriaSwazilandTr" + - "istan da CunhaTurks & Caicos IslandsChadFrench Southern TerritoriesTogoT" + - "hailandTajikistanTokelauTimor-LesteTurkmenistanTunisiaTongaTurkeyTrinida" + - "d & TobagoTuvaluTaiwanTanzaniaUkraineUgandaU.S. Outlying IslandsUnited S" + - "tatesUruguayUzbekistanVatican CitySt. Vincent & GrenadinesVenezuelaBriti" + - "sh Virgin IslandsU.S. Virgin IslandsVietnamVanuatuWallis & FutunaSamoaKo" + - "sovoYemenMayotteSouth AfricaZambiaZimbabweUnknown RegionWorldAfricaNorth" + - " AmericaSouth AmericaOceaniaWestern AfricaCentral AmericaEastern AfricaN" + - "orthern AfricaMiddle AfricaSouthern AfricaAmericasNorthern AmericaCaribb" + - "eanEastern AsiaSouthern AsiaSoutheast AsiaSouthern EuropeAustralasiaMela" + - "nesiaMicronesian RegionPolynesiaAsiaCentral AsiaWestern AsiaEuropeEaster" + - "n EuropeNorthern EuropeWestern EuropeLatin America" - -// Size: 606 bytes, 291 elements -var enRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0010, 0x0017, 0x002b, 0x0036, 0x0047, 0x004f, 0x0056, - 0x005d, 0x0071, 0x0077, 0x0081, 0x008a, 0x0098, 0x009f, 0x00a8, - 0x00ad, 0x00bb, 0x00c5, 0x00d9, 0x00e1, 0x00eb, 0x00f2, 0x00fe, - 0x0106, 0x010d, 0x0114, 0x0119, 0x0128, 0x012f, 0x0135, 0x013c, - 0x0151, 0x0157, 0x015e, 0x0164, 0x0171, 0x0179, 0x0180, 0x0186, - 0x018c, 0x01a3, 0x01b3, 0x01cb, 0x01de, 0x01e9, 0x01f9, 0x0205, - 0x020a, 0x0212, 0x0217, 0x021f, 0x0230, 0x023a, 0x023e, 0x0248, - 0x0250, 0x0260, 0x0266, 0x0274, 0x027b, 0x0287, 0x028f, 0x0296, - // Entry 40 - 7F - 0x029e, 0x02b0, 0x02b7, 0x02c6, 0x02cd, 0x02d4, 0x02d9, 0x02e7, - 0x02ee, 0x02f3, 0x02fb, 0x0309, 0x0310, 0x0314, 0x0324, 0x032e, - 0x033b, 0x0341, 0x0346, 0x0354, 0x035b, 0x0362, 0x036f, 0x0377, - 0x037c, 0x0385, 0x038e, 0x0394, 0x039a, 0x03a4, 0x03b5, 0x03bb, - 0x03e1, 0x03ea, 0x03ee, 0x03fb, 0x0401, 0x0414, 0x042c, 0x0434, - 0x043b, 0x0440, 0x0447, 0x0455, 0x045e, 0x0465, 0x046b, 0x0476, - 0x047b, 0x0499, 0x049d, 0x04a1, 0x04a8, 0x04ad, 0x04b3, 0x04ba, - 0x04c0, 0x04c5, 0x04ca, 0x04d4, 0x04dc, 0x04e4, 0x04eb, 0x04fc, - // Entry 80 - BF - 0x0507, 0x0512, 0x0518, 0x0526, 0x0530, 0x0534, 0x053b, 0x0544, - 0x0551, 0x055a, 0x0561, 0x0568, 0x0571, 0x057b, 0x0581, 0x0586, - 0x058d, 0x0593, 0x059a, 0x05a4, 0x05ae, 0x05b8, 0x05c8, 0x05d1, - 0x05d5, 0x05e4, 0x05ec, 0x05fb, 0x0613, 0x061d, 0x0627, 0x0631, - 0x0636, 0x063f, 0x0647, 0x064d, 0x0653, 0x065b, 0x0665, 0x066c, - 0x0679, 0x067e, 0x068c, 0x0693, 0x069c, 0x06a7, 0x06ad, 0x06b2, - 0x06b7, 0x06bb, 0x06c6, 0x06ca, 0x06d0, 0x06d4, 0x06e4, 0x06f4, - 0x06ff, 0x0707, 0x070d, 0x0722, 0x0732, 0x073d, 0x0754, 0x075c, - // Entry C0 - FF - 0x0761, 0x0769, 0x076e, 0x077e, 0x0786, 0x078d, 0x0793, 0x0799, - 0x079f, 0x07ab, 0x07ba, 0x07c4, 0x07c9, 0x07cf, 0x07d8, 0x07e2, - 0x07ea, 0x07fe, 0x0806, 0x0812, 0x081c, 0x0823, 0x082a, 0x0832, - 0x083d, 0x0853, 0x085e, 0x086a, 0x086f, 0x0878, 0x0888, 0x089e, - 0x08a2, 0x08bd, 0x08c1, 0x08c9, 0x08d3, 0x08da, 0x08e5, 0x08f1, - 0x08f8, 0x08fd, 0x0903, 0x0914, 0x091a, 0x0920, 0x0928, 0x092f, - 0x0935, 0x094a, 0x0957, 0x095e, 0x0968, 0x0974, 0x098c, 0x0995, - 0x09ab, 0x09be, 0x09c5, 0x09cc, 0x09db, 0x09e0, 0x09e6, 0x09eb, - // Entry 100 - 13F - 0x09f2, 0x09fe, 0x0a04, 0x0a0c, 0x0a1a, 0x0a1f, 0x0a25, 0x0a32, - 0x0a3f, 0x0a46, 0x0a54, 0x0a63, 0x0a71, 0x0a80, 0x0a8d, 0x0a9c, - 0x0aa4, 0x0ab4, 0x0abd, 0x0ac9, 0x0ad6, 0x0ae4, 0x0af3, 0x0afe, - 0x0b07, 0x0b19, 0x0b22, 0x0b26, 0x0b32, 0x0b3e, 0x0b44, 0x0b52, - 0x0b61, 0x0b6f, 0x0b7c, -} - -// Size: 3145 bytes -var esRegionStr string = "" + - "Isla de la AscensiónAndorraEmiratos Ãrabes UnidosAfganistánAntigua y Bar" + - "budaAnguilaAlbaniaArmeniaAntillas NeerlandesasAngolaAntártidaArgentinaSa" + - "moa AmericanaAustriaAustraliaArubaIslas Ã…landAzerbaiyánBosnia-Herzegovin" + - "aBarbadosBangladésBélgicaBurkina FasoBulgariaBaréinBurundiBenínSan Barto" + - "loméBermudasBrunéiBoliviaCaribe neerlandésBrasilBahamasButánIsla BouvetB" + - "otsuanaBielorrusiaBeliceCanadáIslas CocosRepública Democrática del Congo" + - "República CentroafricanaRepública del CongoSuizaCosta de MarfilIslas Coo" + - "kChileCamerúnChinaColombiaIsla ClippertonCosta RicaCubaCabo VerdeCurazao" + - "Isla de Navidad (Christmas)ChipreRepública ChecaAlemaniaDiego GarcíaYibu" + - "tiDinamarcaDominicaRepública DominicanaArgeliaCeuta y MelillaEcuadorEsto" + - "niaEgiptoSáhara OccidentalEritreaEspañaEtiopíaUnión EuropeaFinlandiaFiyi" + - "Islas MalvinasMicronesiaIslas FeroeFranciaGabónReino UnidoGranadaGeorgia" + - "Guayana FrancesaGuerneseyGhanaGibraltarGroenlandiaGambiaGuineaGuadalupeG" + - "uinea EcuatorialGreciaIslas Georgia del Sur y Sandwich del SurGuatemalaG" + - "uamGuinea-BisáuGuyanaRAE de Hong Kong (China)Islas Heard y McDonaldHondu" + - "rasCroaciaHaitíHungríaislas CanariasIndonesiaIrlandaIsraelIsla de ManInd" + - "iaTerritorio Británico del Océano ÃndicoIrakIránIslandiaItaliaJerseyJama" + - "icaJordaniaJapónKeniaKirguistánCamboyaKiribatiComorasSan Cristóbal y Nie" + - "vesCorea del NorteCorea del SurKuwaitIslas CaimánKazajistánLaosLíbanoSan" + - "ta LucíaLiechtensteinSri LankaLiberiaLesotoLituaniaLuxemburgoLetoniaLibi" + - "aMarruecosMónacoMoldaviaMontenegroSan MartínMadagascarIslas MarshallMace" + - "doniaMaliMyanmar (Birmania)MongoliaRAE de Macao (China)Islas Marianas de" + - "l NorteMartinicaMauritaniaMontserratMaltaMauricioMaldivasMalauiMéxicoMal" + - "asiaMozambiqueNamibiaNueva CaledoniaNígerIsla NorfolkNigeriaNicaraguaPaí" + - "ses BajosNoruegaNepalNauruNiueNueva ZelandaOmánPanamáPerúPolinesia Franc" + - "esaPapúa Nueva GuineaFilipinasPakistánPoloniaSan Pedro y MiquelónIslas P" + - "itcairnPuerto RicoTerritorios PalestinosPortugalPalauParaguayCatarTerrit" + - "orios alejados de OceaníaReuniónRumaníaSerbiaRusiaRuandaArabia SaudíIsla" + - "s SalomónSeychellesSudánSueciaSingapurSanta ElenaEsloveniaSvalbard y Jan" + - " MayenEslovaquiaSierra LeonaSan MarinoSenegalSomaliaSurinamSudán del Sur" + - "Santo Tomé y PríncipeEl SalvadorSint MaartenSiriaSuazilandiaTristán da C" + - "unhaIslas Turcas y CaicosChadTerritorios Australes FrancesesTogoTailandi" + - "aTayikistánTokelauTimor OrientalTurkmenistánTúnezTongaTurquíaTrinidad y " + - "TobagoTuvaluTaiwánTanzaniaUcraniaUgandaIslas menores alejadas de EE. UU." + - "Estados UnidosUruguayUzbekistánCiudad del VaticanoSan Vicente y las Gran" + - "adinasVenezuelaIslas Vírgenes BritánicasIslas Vírgenes de EE. UU.Vietnam" + - "VanuatuWallis y FutunaSamoaKosovoYemenMayotteSudáfricaZambiaZimbabueRegi" + - "ón desconocidaMundoÃfricaAmérica del NorteSuraméricaOceaníaÃfrica occid" + - "entalCentroaméricaÃfrica orientalÃfrica septentrionalÃfrica centralÃfric" + - "a meridionalAméricaNorteaméricaCaribeAsia orientalAsia meridionalSudeste" + - " asiáticoEuropa meridionalAustralasiaMelanesiaRegión de MicronesiaPoline" + - "siaAsiaAsia centralAsia occidentalEuropaEuropa orientalEuropa septentrio" + - "nalEuropa occidentalLatinoamérica" - -// Size: 606 bytes, 291 elements -var esRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0015, 0x001c, 0x0033, 0x003e, 0x004f, 0x0056, 0x005d, - 0x0064, 0x0079, 0x007f, 0x0089, 0x0092, 0x00a1, 0x00a8, 0x00b1, - 0x00b6, 0x00c2, 0x00cd, 0x00df, 0x00e7, 0x00f1, 0x00f9, 0x0105, - 0x010d, 0x0114, 0x011b, 0x0121, 0x012f, 0x0137, 0x013e, 0x0145, - 0x0157, 0x015d, 0x0164, 0x016a, 0x0175, 0x017d, 0x0188, 0x018e, - 0x0195, 0x01a0, 0x01c1, 0x01da, 0x01ee, 0x01f3, 0x0202, 0x020c, - 0x0211, 0x0219, 0x021e, 0x0226, 0x0235, 0x023f, 0x0243, 0x024d, - 0x0254, 0x026f, 0x0275, 0x0285, 0x028d, 0x029a, 0x02a0, 0x02a9, - // Entry 40 - 7F - 0x02b1, 0x02c6, 0x02cd, 0x02dc, 0x02e3, 0x02ea, 0x02f0, 0x0302, - 0x0309, 0x0310, 0x0318, 0x0326, 0x032f, 0x0333, 0x0341, 0x034b, - 0x0356, 0x035d, 0x0363, 0x036e, 0x0375, 0x037c, 0x038c, 0x0395, - 0x039a, 0x03a3, 0x03ae, 0x03b4, 0x03ba, 0x03c3, 0x03d4, 0x03da, - 0x0402, 0x040b, 0x040f, 0x041c, 0x0422, 0x043a, 0x0450, 0x0458, - 0x045f, 0x0465, 0x046d, 0x047b, 0x0484, 0x048b, 0x0491, 0x049c, - 0x04a1, 0x04ca, 0x04ce, 0x04d3, 0x04db, 0x04e1, 0x04e7, 0x04ee, - 0x04f6, 0x04fc, 0x0501, 0x050c, 0x0513, 0x051b, 0x0522, 0x0539, - // Entry 80 - BF - 0x0548, 0x0555, 0x055b, 0x0568, 0x0573, 0x0577, 0x057e, 0x058a, - 0x0597, 0x05a0, 0x05a7, 0x05ad, 0x05b5, 0x05bf, 0x05c6, 0x05cb, - 0x05d4, 0x05db, 0x05e3, 0x05ed, 0x05f8, 0x0602, 0x0610, 0x0619, - 0x061d, 0x062f, 0x0637, 0x064b, 0x0663, 0x066c, 0x0676, 0x0680, - 0x0685, 0x068d, 0x0695, 0x069b, 0x06a2, 0x06a9, 0x06b3, 0x06ba, - 0x06c9, 0x06cf, 0x06db, 0x06e2, 0x06eb, 0x06f8, 0x06ff, 0x0704, - 0x0709, 0x070d, 0x071a, 0x071f, 0x0726, 0x072b, 0x073d, 0x0750, - 0x0759, 0x0762, 0x0769, 0x077e, 0x078c, 0x0797, 0x07ad, 0x07b5, - // Entry C0 - FF - 0x07ba, 0x07c2, 0x07c7, 0x07e7, 0x07ef, 0x07f7, 0x07fd, 0x0802, - 0x0808, 0x0815, 0x0823, 0x082d, 0x0833, 0x0839, 0x0841, 0x084c, - 0x0855, 0x0869, 0x0873, 0x087f, 0x0889, 0x0890, 0x0897, 0x089e, - 0x08ac, 0x08c3, 0x08ce, 0x08da, 0x08df, 0x08ea, 0x08fb, 0x0910, - 0x0914, 0x0933, 0x0937, 0x0940, 0x094b, 0x0952, 0x0960, 0x096d, - 0x0973, 0x0978, 0x0980, 0x0991, 0x0997, 0x099e, 0x09a6, 0x09ad, - 0x09b3, 0x09d4, 0x09e2, 0x09e9, 0x09f4, 0x0a07, 0x0a23, 0x0a2c, - 0x0a47, 0x0a61, 0x0a68, 0x0a6f, 0x0a7e, 0x0a83, 0x0a89, 0x0a8e, - // Entry 100 - 13F - 0x0a95, 0x0a9f, 0x0aa5, 0x0aad, 0x0ac0, 0x0ac5, 0x0acc, 0x0ade, - 0x0ae9, 0x0af1, 0x0b03, 0x0b11, 0x0b21, 0x0b36, 0x0b45, 0x0b57, - 0x0b5f, 0x0b6c, 0x0b72, 0x0b7f, 0x0b8e, 0x0b9f, 0x0bb0, 0x0bbb, - 0x0bc4, 0x0bd9, 0x0be2, 0x0be6, 0x0bf2, 0x0c01, 0x0c07, 0x0c16, - 0x0c2a, 0x0c3b, 0x0c49, -} - -// Size: 3019 bytes -var etRegionStr string = "" + - "Ascensioni saarAndorraAraabia ÃœhendemiraadidAfganistanAntigua ja Barbuda" + - "AnguillaAlbaaniaArmeeniaHollandi AntillidAngolaAntarktisArgentinaAmeerik" + - "a SamoaAustriaAustraaliaArubaAhvenamaaAserbaidžaanBosnia ja Hertsegoviin" + - "aBarbadosBangladeshBelgiaBurkina FasoBulgaariaBahreinBurundiBeninSaint B" + - "arthélemyBermudaBruneiBoliiviaHollandi Kariibi mere saaredBrasiiliaBaham" + - "aBhutanBouvet’ saarBotswanaValgeveneBelizeKanadaKookossaaredKongo DVKesk" + - "-Aafrika VabariikKongo-BrazzavilleÅ veitsCôte d’IvoireCooki saaredTÅ¡iiliK" + - "amerunHiinaColombiaClippertoni saarCosta RicaKuubaRoheneemesaaredCuraçao" + - "JõulusaarKüprosTÅ¡ehhiSaksamaaDiego GarciaDjiboutiTaaniDominicaDominikaan" + - "i VabariikAlžeeriaCeuta ja MelillaEcuadorEestiEgiptusLääne-SaharaEritrea" + - "HispaaniaEtioopiaEuroopa LiitSoomeFidžiFalklandi saaredMikroneesia Liidu" + - "riigidFääri saaredPrantsusmaaGabonSuurbritanniaGrenadaGruusiaPrantsuse G" + - "uajaanaGuernseyGhanaGibraltarGröönimaaGambiaGuineaGuadeloupeEkvatoriaal-" + - "GuineaKreekaLõuna-Georgia ja Lõuna-Sandwichi saaredGuatemalaGuamGuinea-B" + - "issauGuyanaHongkong - Hiina erihalduspiirkondHeardi ja McDonaldi saaredH" + - "ondurasHorvaatiaHaitiUngariKanaari saaredIndoneesiaIirimaaIisraelMani sa" + - "arIndiaBriti India ookeani alaIraakIraanIslandItaaliaJerseyJamaicaJordaa" + - "niaJaapanKenyaKõrgõzstanKambodžaKiribatiKomooridSaint Kitts ja NevisPõhj" + - "a-KoreaLõuna-KoreaKuveitKaimanisaaredKasahstanLaosLiibanonSaint LuciaLie" + - "chtensteinSri LankaLibeeriaLesothoLeeduLuksemburgLätiLiibüaMarokoMonacoM" + - "oldovaMontenegroSaint MartinMadagaskarMarshalli saaredMakedooniaMaliMyan" + - "mar (Birma)MongooliaMacau - Hiina erihalduspiirkondPõhja-MariaanidMartin" + - "iqueMauritaaniaMontserratMaltaMauritiusMaldiividMalawiMehhikoMalaisiaMos" + - "ambiikNamiibiaUus-KaledooniaNigerNorfolkNigeeriaNicaraguaHollandNorraNep" + - "alNauruNiueUus-MeremaaOmaanPanamaPeruuPrantsuse PolüneesiaPaapua Uus-Gui" + - "neaFilipiinidPakistanPoolaSaint Pierre ja MiquelonPitcairni saaredPuerto" + - " RicoPalestiina aladPortugalBelauParaguayKatarOkeaania hajasaaredRéunion" + - "RumeeniaSerbiaVenemaaRwandaSaudi AraabiaSaalomoni SaaredSeiÅ¡ellidSudaanR" + - "ootsiSingapurSaint HelenaSloveeniaSvalbard ja Jan MayenSlovakkiaSierra L" + - "eoneSan MarinoSenegalSomaaliaSurinameLõuna-SudaanSão Tomé ja PríncipeEl " + - "SalvadorSint MaartenSüüriaSvaasimaaTristan da CunhaTurks ja CaicosTÅ¡aadP" + - "rantsuse LõunaaladTogoTaiTadžikistanTokelauIda-TimorTürkmenistanTuneesia" + - "TongaTürgiTrinidad ja TobagoTuvaluTaiwanTansaaniaUkrainaUgandaÃœhendriiki" + - "de hajasaaredAmeerika ÃœhendriigidUruguayUsbekistanVatikanSaint Vincent j" + - "a GrenadiinidVenezuelaBriti NeitsisaaredUSA NeitsisaaredVietnamVanuatuWa" + - "llis ja FutunaSamoaKosovoJeemenMayotteLõuna-Aafrika VabariikSambiaZimbab" + - "weTundmatu piirkondmaailmAafrikaPõhja-AmeerikaLõuna-AmeerikaOkeaaniaLään" + - "e-AafrikaKesk-AmeerikaIda-AafrikaPõhja-AafrikaKesk-AafrikaLõuna-AafrikaA" + - "meerika maailmajaguAmeerika põhjaosaKariibi meriIda-AasiaLõuna-AasiaKagu" + - "-AasiaLõuna-EuroopaAustralaasiaMelaneesiaMikroneesiaPolüneesiaAasiaKesk-" + - "AasiaLääne-AasiaEuroopaIda-EuroopaPõhja-EuroopaLääne-EuroopaLadina-Ameer" + - "ika" - -// Size: 606 bytes, 291 elements -var etRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000f, 0x0016, 0x002d, 0x0037, 0x0049, 0x0051, 0x0059, - 0x0061, 0x0072, 0x0078, 0x0081, 0x008a, 0x0098, 0x009f, 0x00a9, - 0x00ae, 0x00b7, 0x00c4, 0x00db, 0x00e3, 0x00ed, 0x00f3, 0x00ff, - 0x0108, 0x010f, 0x0116, 0x011b, 0x012c, 0x0133, 0x0139, 0x0141, - 0x015d, 0x0166, 0x016c, 0x0172, 0x0180, 0x0188, 0x0191, 0x0197, - 0x019d, 0x01a9, 0x01b1, 0x01c6, 0x01d7, 0x01de, 0x01ee, 0x01fa, - 0x0201, 0x0208, 0x020d, 0x0215, 0x0225, 0x022f, 0x0234, 0x0243, - 0x024b, 0x0255, 0x025c, 0x0263, 0x026b, 0x0277, 0x027f, 0x0284, - // Entry 40 - 7F - 0x028c, 0x02a0, 0x02a9, 0x02b9, 0x02c0, 0x02c5, 0x02cc, 0x02da, - 0x02e1, 0x02ea, 0x02f2, 0x02fe, 0x0303, 0x0309, 0x0319, 0x0330, - 0x033e, 0x0349, 0x034e, 0x035b, 0x0362, 0x0369, 0x037b, 0x0383, - 0x0388, 0x0391, 0x039c, 0x03a2, 0x03a8, 0x03b2, 0x03c4, 0x03ca, - 0x03f3, 0x03fc, 0x0400, 0x040d, 0x0413, 0x0435, 0x044f, 0x0457, - 0x0460, 0x0465, 0x046b, 0x0479, 0x0483, 0x048a, 0x0491, 0x049a, - 0x049f, 0x04b6, 0x04bb, 0x04c0, 0x04c6, 0x04cd, 0x04d3, 0x04da, - 0x04e3, 0x04e9, 0x04ee, 0x04fa, 0x0503, 0x050b, 0x0513, 0x0527, - // Entry 80 - BF - 0x0533, 0x053f, 0x0545, 0x0552, 0x055b, 0x055f, 0x0567, 0x0572, - 0x057f, 0x0588, 0x0590, 0x0597, 0x059c, 0x05a6, 0x05ab, 0x05b2, - 0x05b8, 0x05be, 0x05c5, 0x05cf, 0x05db, 0x05e5, 0x05f5, 0x05ff, - 0x0603, 0x0612, 0x061b, 0x063a, 0x064a, 0x0654, 0x065f, 0x0669, - 0x066e, 0x0677, 0x0680, 0x0686, 0x068d, 0x0695, 0x069e, 0x06a6, - 0x06b4, 0x06b9, 0x06c0, 0x06c8, 0x06d1, 0x06d8, 0x06dd, 0x06e2, - 0x06e7, 0x06eb, 0x06f6, 0x06fb, 0x0701, 0x0706, 0x071b, 0x072c, - 0x0736, 0x073e, 0x0743, 0x075b, 0x076b, 0x0776, 0x0785, 0x078d, - // Entry C0 - FF - 0x0792, 0x079a, 0x079f, 0x07b2, 0x07ba, 0x07c2, 0x07c8, 0x07cf, - 0x07d5, 0x07e2, 0x07f2, 0x07fc, 0x0802, 0x0808, 0x0810, 0x081c, - 0x0825, 0x083a, 0x0843, 0x084f, 0x0859, 0x0860, 0x0868, 0x0870, - 0x087d, 0x0894, 0x089f, 0x08ab, 0x08b3, 0x08bc, 0x08cc, 0x08db, - 0x08e1, 0x08f5, 0x08f9, 0x08fc, 0x0908, 0x090f, 0x0918, 0x0925, - 0x092d, 0x0932, 0x0938, 0x094a, 0x0950, 0x0956, 0x095f, 0x0966, - 0x096c, 0x0984, 0x0999, 0x09a0, 0x09aa, 0x09b1, 0x09cd, 0x09d6, - 0x09e8, 0x09f8, 0x09ff, 0x0a06, 0x0a16, 0x0a1b, 0x0a21, 0x0a27, - // Entry 100 - 13F - 0x0a2e, 0x0a45, 0x0a4b, 0x0a53, 0x0a64, 0x0a6a, 0x0a71, 0x0a80, - 0x0a8f, 0x0a97, 0x0aa6, 0x0ab3, 0x0abe, 0x0acc, 0x0ad8, 0x0ae6, - 0x0afa, 0x0b0c, 0x0b18, 0x0b21, 0x0b2d, 0x0b37, 0x0b45, 0x0b51, - 0x0b5b, 0x0b66, 0x0b71, 0x0b76, 0x0b80, 0x0b8d, 0x0b94, 0x0b9f, - 0x0bad, 0x0bbc, 0x0bcb, -} - -// Size: 4991 bytes -var faRegionStr string = "" + - "جزایر آسنسیونآندوراامارات متحدهٔ عربیاÙغانستانآنتیگوا Ùˆ باربوداآنگویلاآل" + - "بانیارمنستانآنتیل هلندآنگولاجنوبگانآرژانتینساموآی امریکااتریشاسترالیاآر" + - "وباجزایر آلاندجمهوری آذربایجانبوسنی Ùˆ هرزگوینباربادوسبنگلادشبلژیکبورکین" + - "اÙاسوبلغارستانبحرینبوروندیبنینسن بارتلمیبرمودابرونئیبولیویبونیربرزیلباه" + - "امابوتانجزیره بووهبوتسوانابلاروسبلیزکاناداجزایر کوکوسکنگو - کینشاساجمهو" + - "ری اÙریقای مرکزیکنگو - برازویلسوئیسساحل عاججزایر کوکشیلیکامرونچینکلمبیا" + - "جزایر کلیپرتونکاستاریکاکوباکیپ\u200cوردکوراسائوجزیرهٔ کریسمسقبرسجمهوری " + - "چکآلماندیه\u200cÚ¯Ùˆ گارسیاجیبوتیدانمارکدومینیکاجمهوری دومینیکنالجزایرسبت" + - "Ù‡ Ùˆ ملیلهاکوادوراستونیمصرصحرای غربیاریترهاسپانیااتیوپیاتحادیهٔ اروپاÙنل" + - "اندÙیجیجزایر Ùالکلندمیکرونزیجزایر ÙاروÙرانسهگابنبریتانیاگرناداگرجستانگو" + - "یان Ùرانسهگرنزیغناجبل\u200cالطارقگرینلندگامبیاگینهگوادلوپگینهٔ استواییی" + - "ونانجورجیای جنوبی Ùˆ جزایر ساندویچ جنوبیگواتمالاگوامگینهٔ بیسائوگویانهنگ" + - "\u200cکنگ، ناحیهٔ ویژهٔ حکومتی چینجزیرهٔ هرد Ùˆ جزایر Ù…Ú©\u200cدونالدهندور" + - "اسکرواسیهائیتیمجارستانجزایر قناریاندونزیایرلنداسرائیلجزیرهٔ منهندقلمرو " + - "بریتانیا در اقیانوس هندعراقایرانایسلندایتالیاجرزیجامائیکااردنژاپنکنیاقر" + - "قیزستانکامبوجکیریباتیکوموروسنت کیتس Ùˆ نویسکرهٔ شمالیکرهٔ جنوبیکویتجزایر" + - " Ú©Ùیمنقزاقستانلائوسلبنانسنت لوسیالیختن\u200cاشتاینسری\u200cلانکالیبریالس" + - "وتولیتوانیلوکزامبورگلتونیلیبیمراکشموناکومولداویمونته\u200cنگروسنت مارتی" + - "نماداگاسکارجزایر مارشالمقدونیهمالیمیانمار (برمه)مغولستانماکائو، ناحیهٔ " + - "ویژهٔ حکومتی چینجزایر ماریانای شمالیمارتینیکموریتانیمونت\u200cسراتمالتم" + - "وریسمالدیومالاویمکزیکمالزیموزامبیکنامیبیاکالدونیای جدیدنیجرجزیرهٔ نورÙÙˆ" + - "لکنیجریهنیکاراگوئههلندنروژنپالنائورونیوئهنیوزیلندعمانپاناماپروپلی\u200c" + - "نزی Ùرانسهپاپوا گینهٔ نوÙیلیپینپاکستانلهستانسن پیر Ùˆ میکلنجزایر پیت" + - "\u200cکرنپورتوریکوسرزمین\u200cهای Ùلسطینیپرتغالپالائوپاراگوئهقطربخش" + - "\u200cهای دوراÙتادهٔ اقیانوسیهرئونیونرومانیصربستانروسیهروانداعربستان سعو" + - "دیجزایر سلیمانسیشلسودانسوئدسنگاپورسنت هلناسلوونیاسوالبارد Ùˆ جان\u200cما" + - "یناسلواکیسیرالئونسان\u200cمارینوسنگالسومالیسورینامسودان جنوبیپرینسیپ Ùˆ " + - "سائوتومهالسالوادورسنت مارتنسوریهسوازیلندتریستان دا کوناجزایر تورکس Ùˆ کا" + - "یکوسچادقلمروهای جنوبی Ùرانسهتوگوتایلندتاجیکستانتوکلائوتیمور شرقیترکمنست" + - "انتونستونگاترکیهترینیداد Ùˆ توباگوتووالوتایوانتانزانیااوکرایناوگانداجزای" + - "ر دوراÙتادهٔ ایالات متحدهایالات متحدهٔ امریکااروگوئهازبکستانواتیکانسنت " + - "وینسنت Ùˆ گرنادین\u200cهاونزوئلاجزایر ویرجین بریتانیاجزایر ویرجین ایالات" + - " متحدهویتناموانواتووالیس Ùˆ ÙوتوناساموآکوزوویمنمایوتاÙریقای جنوبیزامبیازی" + - "مبابوهناحیهٔ نامشخصجهاناÙریقاامریکای شمالیامریکای جنوبیاقیانوسیهغرب اÙر" + - "یقاامریکای مرکزیشرق اÙریقاشمال اÙریقامرکز اÙریقاجنوب اÙریقاامریکاشمال ا" + - "مریکاکارائیبشرق آسیاجنوب آسیاجنوب شرق آسیاجنوب اروپااسترالزیملانزیناحیه" + - "Ù” میکرونزیپلی\u200cنزیآسیاآسیای مرکزیغرب آسیااروپاشرق اروپاشمال اروپاغر" + - "ب اروپاامریکای لاتین" - -// Size: 606 bytes, 291 elements -var faRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0019, 0x0025, 0x0047, 0x0059, 0x0079, 0x0087, 0x0093, - 0x00a3, 0x00b6, 0x00c2, 0x00d0, 0x00e0, 0x00f9, 0x0103, 0x0113, - 0x011d, 0x0132, 0x0151, 0x016d, 0x017d, 0x018b, 0x0195, 0x01ab, - 0x01bd, 0x01c7, 0x01d5, 0x01dd, 0x01f0, 0x01fc, 0x0208, 0x0214, - 0x021e, 0x0228, 0x0234, 0x023e, 0x0251, 0x0261, 0x026d, 0x0275, - 0x0281, 0x0296, 0x02af, 0x02d5, 0x02ee, 0x02f8, 0x0307, 0x0318, - 0x0320, 0x032c, 0x0332, 0x033e, 0x0359, 0x036b, 0x0373, 0x0382, - 0x0392, 0x03ab, 0x03b3, 0x03c4, 0x03ce, 0x03e8, 0x03f4, 0x0402, - // Entry 40 - 7F - 0x0412, 0x042f, 0x043d, 0x0453, 0x0461, 0x046d, 0x0473, 0x0486, - 0x0492, 0x04a0, 0x04ac, 0x04c7, 0x04d3, 0x04db, 0x04f4, 0x0504, - 0x0517, 0x0523, 0x052b, 0x053b, 0x0547, 0x0555, 0x056c, 0x0576, - 0x057c, 0x0591, 0x059f, 0x05ab, 0x05b3, 0x05c1, 0x05da, 0x05e4, - 0x0625, 0x0635, 0x063d, 0x0654, 0x065e, 0x069b, 0x06d0, 0x06de, - 0x06ea, 0x06f6, 0x0706, 0x071b, 0x0729, 0x0735, 0x0743, 0x0754, - 0x075a, 0x0790, 0x0798, 0x07a2, 0x07ae, 0x07bc, 0x07c4, 0x07d4, - 0x07dc, 0x07e4, 0x07ec, 0x07fe, 0x080a, 0x081a, 0x0826, 0x0841, - // Entry 80 - BF - 0x0854, 0x0867, 0x086f, 0x0884, 0x0894, 0x089e, 0x08a8, 0x08b9, - 0x08d2, 0x08e5, 0x08f1, 0x08fb, 0x0909, 0x091d, 0x0927, 0x092f, - 0x0939, 0x0945, 0x0953, 0x0968, 0x097b, 0x098f, 0x09a6, 0x09b4, - 0x09bc, 0x09d5, 0x09e5, 0x0a1f, 0x0a45, 0x0a55, 0x0a65, 0x0a78, - 0x0a80, 0x0a8a, 0x0a96, 0x0aa2, 0x0aac, 0x0ab6, 0x0ac6, 0x0ad4, - 0x0aef, 0x0af7, 0x0b12, 0x0b1e, 0x0b32, 0x0b3a, 0x0b42, 0x0b4a, - 0x0b56, 0x0b60, 0x0b70, 0x0b78, 0x0b84, 0x0b8a, 0x0ba6, 0x0bc0, - 0x0bce, 0x0bdc, 0x0be8, 0x0c01, 0x0c1b, 0x0c2d, 0x0c51, 0x0c5d, - // Entry C0 - FF - 0x0c69, 0x0c79, 0x0c7f, 0x0cb6, 0x0cc4, 0x0cd0, 0x0cde, 0x0ce8, - 0x0cf4, 0x0d0d, 0x0d24, 0x0d2c, 0x0d36, 0x0d3e, 0x0d4c, 0x0d59, - 0x0d67, 0x0d8e, 0x0d9c, 0x0dac, 0x0dc1, 0x0dcb, 0x0dd7, 0x0de5, - 0x0dfa, 0x0e1c, 0x0e30, 0x0e41, 0x0e4b, 0x0e5b, 0x0e77, 0x0e9c, - 0x0ea2, 0x0eca, 0x0ed2, 0x0ede, 0x0ef0, 0x0efe, 0x0f11, 0x0f23, - 0x0f2b, 0x0f35, 0x0f3f, 0x0f5f, 0x0f6b, 0x0f77, 0x0f87, 0x0f95, - 0x0fa3, 0x0fda, 0x1000, 0x100e, 0x101e, 0x102c, 0x1058, 0x1066, - 0x108e, 0x10bd, 0x10c9, 0x10d7, 0x10f1, 0x10fb, 0x1105, 0x110b, - // Entry 100 - 13F - 0x1115, 0x112e, 0x113a, 0x114a, 0x1163, 0x116b, 0x1177, 0x1190, - 0x11a9, 0x11bb, 0x11ce, 0x11e7, 0x11fa, 0x120f, 0x1224, 0x1239, - 0x1245, 0x125a, 0x1268, 0x1277, 0x1288, 0x12a0, 0x12b3, 0x12c3, - 0x12cf, 0x12ec, 0x12fb, 0x1303, 0x1318, 0x1327, 0x1331, 0x1342, - 0x1355, 0x1366, 0x137f, -} - -// Size: 3017 bytes -var fiRegionStr string = "" + - "Ascension-saariAndorraArabiemiirikunnatAfganistanAntigua ja BarbudaAngui" + - "llaAlbaniaArmeniaAlankomaiden AntillitAngolaAntarktisArgentiinaAmerikan " + - "SamoaItävaltaAustraliaArubaAhvenanmaaAzerbaidžanBosnia ja HertsegovinaBa" + - "rbadosBangladeshBelgiaBurkina FasoBulgariaBahrainBurundiBeninSaint-Barth" + - "élemyBermudaBruneiBoliviaKaribian AlankomaatBrasiliaBahamaBhutanBouvet’" + - "nsaariBotswanaValko-VenäjäBelizeKanadaKookossaaret (Keelingsaaret)Kongon" + - " demokraattinen tasavaltaKeski-Afrikan tasavaltaKongon tasavaltaSveitsiN" + - "orsunluurannikkoCookinsaaretChileKamerunKiinaKolumbiaClippertoninsaariCo" + - "sta RicaKuubaKap VerdeCuraçaoJoulusaariKyprosTÅ¡ekkiSaksaDiego GarciaDjib" + - "outiTanskaDominicaDominikaaninen tasavaltaAlgeriaCeuta ja MelillaEcuador" + - "ViroEgyptiLänsi-SaharaEritreaEspanjaEtiopiaEuroopan unioniSuomiFidžiFalk" + - "landinsaaretMikronesian liittovaltioFärsaaretRanskaGabonIso-BritanniaGre" + - "nadaGeorgiaRanskan GuayanaGuernseyGhanaGibraltarGrönlantiGambiaGuineaGua" + - "deloupePäiväntasaajan GuineaKreikkaEtelä-Georgia ja Eteläiset Sandwichsa" + - "aretGuatemalaGuamGuinea-BissauGuyanaHongkong – Kiinan e.h.a.Heard ja McD" + - "onaldinsaaretHondurasKroatiaHaitiUnkariKanariansaaretIndonesiaIrlantiIsr" + - "aelMansaariIntiaBrittiläinen Intian valtameren alueIrakIranIslantiItalia" + - "JerseyJamaikaJordaniaJapaniKeniaKirgisiaKambodžaKiribatiKomoritSaint Kit" + - "ts ja NevisPohjois-KoreaEtelä-KoreaKuwaitCaymansaaretKazakstanLaosLibano" + - "nSaint LuciaLiechtensteinSri LankaLiberiaLesothoLiettuaLuxemburgLatviaLi" + - "byaMarokkoMonacoMoldovaMontenegroSaint-MartinMadagaskarMarshallinsaaretM" + - "akedoniaMaliMyanmar (Burma)MongoliaMacao – Kiinan e.h.a.Pohjois-Mariaani" + - "tMartiniqueMauritaniaMontserratMaltaMauritiusMalediivitMalawiMeksikoMale" + - "siaMosambikNamibiaUusi-KaledoniaNigerNorfolkinsaariNigeriaNicaraguaAlank" + - "omaatNorjaNepalNauruNiueUusi-SeelantiOmanPanamaPeruRanskan PolynesiaPapu" + - "a-Uusi-GuineaFilippiinitPakistanPuolaSaint-Pierre ja MiquelonPitcairnPue" + - "rto RicoPalestiinalaisalueetPortugaliPalauParaguayQatarulkomeriRéunionRo" + - "maniaSerbiaVenäjäRuandaSaudi-ArabiaSalomonsaaretSeychellitSudanRuotsiSin" + - "gaporeSaint HelenaSloveniaHuippuvuoret ja Jan MayenSlovakiaSierra LeoneS" + - "an MarinoSenegalSomaliaSurinamEtelä-SudanSão Tomé ja PríncipeEl Salvador" + - "Sint MaartenSyyriaSwazimaaTristan da CunhaTurks- ja CaicossaaretTÅ¡adRans" + - "kan eteläiset alueetTogoThaimaaTadžikistanTokelauItä-TimorTurkmenistanTu" + - "nisiaTongaTurkkiTrinidad ja TobagoTuvaluTaiwanTansaniaUkrainaUgandaYhdys" + - "valtain erillissaaretYhdysvallatUruguayUzbekistanVatikaaniSaint Vincent " + - "ja GrenadiinitVenezuelaBrittiläiset NeitsytsaaretYhdysvaltain Neitsytsaa" + - "retVietnamVanuatuWallis ja FutunaSamoaKosovoJemenMayotteEtelä-AfrikkaSam" + - "biaZimbabwetuntematon aluemaailmaAfrikkaPohjois-AmerikkaEtelä-AmerikkaOs" + - "eaniaLänsi-AfrikkaVäli-AmerikkaItä-AfrikkaPohjois-AfrikkaKeski-Afrikkaet" + - "eläinen AfrikkaAmerikkapohjoinen AmerikkaKaribiaItä-AasiaEtelä-AasiaKaak" + - "kois-AasiaEtelä-EurooppaAustralaasiaMelanesiaMikronesiaPolynesiaAasiaKes" + - "ki-AasiaLänsi-AasiaEurooppaItä-EurooppaPohjois-EurooppaLänsi-EurooppaLat" + - "inalainen Amerikka" - -// Size: 606 bytes, 291 elements -var fiRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000f, 0x0016, 0x0027, 0x0031, 0x0043, 0x004b, 0x0052, - 0x0059, 0x006e, 0x0074, 0x007d, 0x0087, 0x0095, 0x009e, 0x00a7, - 0x00ac, 0x00b6, 0x00c2, 0x00d8, 0x00e0, 0x00ea, 0x00f0, 0x00fc, - 0x0104, 0x010b, 0x0112, 0x0117, 0x0128, 0x012f, 0x0135, 0x013c, - 0x014f, 0x0157, 0x015d, 0x0163, 0x0172, 0x017a, 0x0188, 0x018e, - 0x0194, 0x01b0, 0x01cf, 0x01e6, 0x01f6, 0x01fd, 0x020e, 0x021a, - 0x021f, 0x0226, 0x022b, 0x0233, 0x0244, 0x024e, 0x0253, 0x025c, - 0x0264, 0x026e, 0x0274, 0x027b, 0x0280, 0x028c, 0x0294, 0x029a, - // Entry 40 - 7F - 0x02a2, 0x02ba, 0x02c1, 0x02d1, 0x02d8, 0x02dc, 0x02e2, 0x02ef, - 0x02f6, 0x02fd, 0x0304, 0x0313, 0x0318, 0x031e, 0x032e, 0x0346, - 0x0350, 0x0356, 0x035b, 0x0368, 0x036f, 0x0376, 0x0385, 0x038d, - 0x0392, 0x039b, 0x03a5, 0x03ab, 0x03b1, 0x03bb, 0x03d2, 0x03d9, - 0x0404, 0x040d, 0x0411, 0x041e, 0x0424, 0x043e, 0x0457, 0x045f, - 0x0466, 0x046b, 0x0471, 0x047f, 0x0488, 0x048f, 0x0495, 0x049d, - 0x04a2, 0x04c6, 0x04ca, 0x04ce, 0x04d5, 0x04db, 0x04e1, 0x04e8, - 0x04f0, 0x04f6, 0x04fb, 0x0503, 0x050c, 0x0514, 0x051b, 0x052f, - // Entry 80 - BF - 0x053c, 0x0548, 0x054e, 0x055a, 0x0563, 0x0567, 0x056e, 0x0579, - 0x0586, 0x058f, 0x0596, 0x059d, 0x05a4, 0x05ad, 0x05b3, 0x05b8, - 0x05bf, 0x05c5, 0x05cc, 0x05d6, 0x05e2, 0x05ec, 0x05fc, 0x0605, - 0x0609, 0x0618, 0x0620, 0x0637, 0x0648, 0x0652, 0x065c, 0x0666, - 0x066b, 0x0674, 0x067e, 0x0684, 0x068b, 0x0692, 0x069a, 0x06a1, - 0x06af, 0x06b4, 0x06c2, 0x06c9, 0x06d2, 0x06dc, 0x06e1, 0x06e6, - 0x06eb, 0x06ef, 0x06fc, 0x0700, 0x0706, 0x070a, 0x071b, 0x072c, - 0x0737, 0x073f, 0x0744, 0x075c, 0x0764, 0x076f, 0x0783, 0x078c, - // Entry C0 - FF - 0x0791, 0x0799, 0x079e, 0x07a6, 0x07ae, 0x07b5, 0x07bb, 0x07c3, - 0x07c9, 0x07d5, 0x07e2, 0x07ec, 0x07f1, 0x07f7, 0x0800, 0x080c, - 0x0814, 0x082d, 0x0835, 0x0841, 0x084b, 0x0852, 0x0859, 0x0860, - 0x086c, 0x0883, 0x088e, 0x089a, 0x08a0, 0x08a8, 0x08b8, 0x08ce, - 0x08d3, 0x08ec, 0x08f0, 0x08f7, 0x0903, 0x090a, 0x0914, 0x0920, - 0x0927, 0x092c, 0x0932, 0x0944, 0x094a, 0x0950, 0x0958, 0x095f, - 0x0965, 0x097f, 0x098a, 0x0991, 0x099b, 0x09a4, 0x09c0, 0x09c9, - 0x09e4, 0x09fe, 0x0a05, 0x0a0c, 0x0a1c, 0x0a21, 0x0a27, 0x0a2c, - // Entry 100 - 13F - 0x0a33, 0x0a41, 0x0a47, 0x0a4f, 0x0a5e, 0x0a65, 0x0a6c, 0x0a7c, - 0x0a8b, 0x0a92, 0x0aa0, 0x0aae, 0x0aba, 0x0ac9, 0x0ad6, 0x0ae8, - 0x0af0, 0x0b02, 0x0b09, 0x0b13, 0x0b1f, 0x0b2d, 0x0b3c, 0x0b48, - 0x0b51, 0x0b5b, 0x0b64, 0x0b69, 0x0b74, 0x0b80, 0x0b88, 0x0b95, - 0x0ba5, 0x0bb4, 0x0bc9, -} - -// Size: 3046 bytes -var filRegionStr string = "" + - "Acsencion islandAndorraUnited Arab EmiratesAfghanistanAntigua and Barbud" + - "aAnguillaAlbaniaArmeniaNetherlands AntillesAngolaAntarcticaArgentinaAmer" + - "ican SamoaAustriaAustraliaArubaÃ…land IslandsAzerbaijanBosnia and Herzego" + - "vinaBarbadosBangladeshBelgiumBurkina FasoBulgariaBahrainBurundiBeninSain" + - "t BarthélemyBermudaBruneiBoliviaCaribbean NetherlandsBrazilBahamasBhutan" + - "Bouvet IslandBotswanaBelarusBelizeCanadaCocos (Keeling) IslandsCongo - K" + - "inshasaCentral African RepublicCongo - BrazzavilleSwitzerlandCôte d’Ivoi" + - "reCook IslandsChileCameroonChinaColombiaClipperton IslandCosta RicaCubaC" + - "ape VerdeCuraçaoChristmas IslandCyprusCzech RepublicGermanyDiego GarciaD" + - "jiboutiDenmarkDominicaDominican RepublicAlgeriaCeuta and MelillaEcuadorE" + - "stoniaEgyptKanlurang SaharaEritreaSpainEthiopiaEuropean UnionFinlandFiji" + - "Falkland IslandsMicronesiaFaroe IslandsFranceGabonUnited KingdomGrenadaG" + - "eorgiaFrench GuianaGuernseyGhanaGibraltarGreenlandGambiaGuineaGuadeloupe" + - "Equatorial GuineaGreeceSouth Georgia and the South Sandwich IslandsGuate" + - "malaGuamGuinea-BissauGuyanaHong Kong SAR ChinaHeard Island and McDonald " + - "IslandsHondurasCroatiaHaitiHungaryCanary IslandIndonesiaIrelandIsraelIsl" + - "e of ManIndiaBritish Indian Ocean TerritoryIraqIranIcelandItalyJerseyJam" + - "aicaJordanJapanKenyaKyrgyzstanCambodiaKiribatiComorosSaint Kitts and Nev" + - "isNorth KoreaSouth KoreaKuwaitCayman IslandsKazakhstanLaosLebanonSaint L" + - "uciaLiechtensteinSri LankaLiberiaLesothoLithuaniaLuxembourgLatviaLibyaMo" + - "roccoMonacoMoldovaMontenegroSaint MartinMadagascarMarshall IslandsMacedo" + - "niaMaliMyanmar (Burma)MongoliaMacau SAR ChinaNorthern Mariana IslandsMar" + - "tiniqueMauritaniaMontserratMaltaMauritiusMaldivesMalawiMexicoMalaysiaMoz" + - "ambiqueNamibiaNew CaledoniaNigerNorfolk IslandNigeriaNicaraguaNetherland" + - "sNorwayNepalNauruNiueNew ZealandOmanPanamaPeruFrench PolynesiaPapua New " + - "GuineaPilipinasPakistanPolandSaint Pierre and MiquelonPitcairn IslandsPu" + - "erto RicoPalestinian TerritoriesPortugalPalauParaguayQatarOutlying Ocean" + - "iaRéunionRomaniaSerbiaRussiaRwandaSaudi ArabiaSolomon IslandsSeychellesS" + - "udanSwedenSingaporeSaint HelenaSloveniaSvalbard and Jan MayenSlovakiaSie" + - "rra LeoneSan MarinoSenegalSomaliaSurinameTimog SudanSão Tomé and Príncip" + - "eEl SalvadorSint MaartenSyriaSwazilandTristan de CunhaTurks and Caicos I" + - "slandsChadFrench Southern TerritoriesTogoThailandTajikistanTokelauTimor-" + - "LesteTurkmenistanTunisiaTongaTurkeyTrinidad and TobagoTuvaluTaiwanTanzan" + - "iaUkraineUgandaU.S. Outlying IslandsEstados UnidosUruguayUzbekistanVatic" + - "an CitySaint Vincent and the GrenadinesVenezuelaBritish Virgin IslandsU." + - "S. Virgin IslandsVietnamVanuatuWallis and FutunaSamoaKosovoYemenMayotteS" + - "outh AfricaZambiaZimbabweHindi Kilalang RehiyonMundoAfricaHilagang Ameri" + - "kaSouth AmericaOceaniaKanlurang AfricaGitnang AmerikaSilangang AfricaHil" + - "agang AfricaGitnang AfricaKatimugang AfricaAmericasRehiyon ng Hilagang A" + - "merikaCarribbeanSilangang AsyaKatimugang AsyaTimog-Silangang AsyaKatimug" + - "ang EuropeAustralasiaMelanesiaRehiyon ng MicronesiaPolynesiaAsyaGitnang " + - "AsyaKanlurang AsyaEuropeSilangang EuropeHilagang EuropeKanlurang EuropeL" + - "atin America" - -// Size: 606 bytes, 291 elements -var filRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0010, 0x0017, 0x002b, 0x0036, 0x0049, 0x0051, 0x0058, - 0x005f, 0x0073, 0x0079, 0x0083, 0x008c, 0x009a, 0x00a1, 0x00aa, - 0x00af, 0x00bd, 0x00c7, 0x00dd, 0x00e5, 0x00ef, 0x00f6, 0x0102, - 0x010a, 0x0111, 0x0118, 0x011d, 0x012e, 0x0135, 0x013b, 0x0142, - 0x0157, 0x015d, 0x0164, 0x016a, 0x0177, 0x017f, 0x0186, 0x018c, - 0x0192, 0x01a9, 0x01b9, 0x01d1, 0x01e4, 0x01ef, 0x01ff, 0x020b, - 0x0210, 0x0218, 0x021d, 0x0225, 0x0236, 0x0240, 0x0244, 0x024e, - 0x0256, 0x0266, 0x026c, 0x027a, 0x0281, 0x028d, 0x0295, 0x029c, - // Entry 40 - 7F - 0x02a4, 0x02b6, 0x02bd, 0x02ce, 0x02d5, 0x02dc, 0x02e1, 0x02f1, - 0x02f8, 0x02fd, 0x0305, 0x0313, 0x031a, 0x031e, 0x032e, 0x0338, - 0x0345, 0x034b, 0x0350, 0x035e, 0x0365, 0x036c, 0x0379, 0x0381, - 0x0386, 0x038f, 0x0398, 0x039e, 0x03a4, 0x03ae, 0x03bf, 0x03c5, - 0x03f1, 0x03fa, 0x03fe, 0x040b, 0x0411, 0x0424, 0x0445, 0x044d, - 0x0454, 0x0459, 0x0460, 0x046d, 0x0476, 0x047d, 0x0483, 0x048e, - 0x0493, 0x04b1, 0x04b5, 0x04b9, 0x04c0, 0x04c5, 0x04cb, 0x04d2, - 0x04d8, 0x04dd, 0x04e2, 0x04ec, 0x04f4, 0x04fc, 0x0503, 0x0518, - // Entry 80 - BF - 0x0523, 0x052e, 0x0534, 0x0542, 0x054c, 0x0550, 0x0557, 0x0562, - 0x056f, 0x0578, 0x057f, 0x0586, 0x058f, 0x0599, 0x059f, 0x05a4, - 0x05ab, 0x05b1, 0x05b8, 0x05c2, 0x05ce, 0x05d8, 0x05e8, 0x05f1, - 0x05f5, 0x0604, 0x060c, 0x061b, 0x0633, 0x063d, 0x0647, 0x0651, - 0x0656, 0x065f, 0x0667, 0x066d, 0x0673, 0x067b, 0x0685, 0x068c, - 0x0699, 0x069e, 0x06ac, 0x06b3, 0x06bc, 0x06c7, 0x06cd, 0x06d2, - 0x06d7, 0x06db, 0x06e6, 0x06ea, 0x06f0, 0x06f4, 0x0704, 0x0714, - 0x071d, 0x0725, 0x072b, 0x0744, 0x0754, 0x075f, 0x0776, 0x077e, - // Entry C0 - FF - 0x0783, 0x078b, 0x0790, 0x07a0, 0x07a8, 0x07af, 0x07b5, 0x07bb, - 0x07c1, 0x07cd, 0x07dc, 0x07e6, 0x07eb, 0x07f1, 0x07fa, 0x0806, - 0x080e, 0x0824, 0x082c, 0x0838, 0x0842, 0x0849, 0x0850, 0x0858, - 0x0863, 0x087b, 0x0886, 0x0892, 0x0897, 0x08a0, 0x08b0, 0x08c8, - 0x08cc, 0x08e7, 0x08eb, 0x08f3, 0x08fd, 0x0904, 0x090f, 0x091b, - 0x0922, 0x0927, 0x092d, 0x0940, 0x0946, 0x094c, 0x0954, 0x095b, - 0x0961, 0x0976, 0x0984, 0x098b, 0x0995, 0x09a1, 0x09c1, 0x09ca, - 0x09e0, 0x09f3, 0x09fa, 0x0a01, 0x0a12, 0x0a17, 0x0a1d, 0x0a22, - // Entry 100 - 13F - 0x0a29, 0x0a35, 0x0a3b, 0x0a43, 0x0a59, 0x0a5e, 0x0a64, 0x0a74, - 0x0a81, 0x0a88, 0x0a98, 0x0aa7, 0x0ab7, 0x0ac6, 0x0ad4, 0x0ae5, - 0x0aed, 0x0b08, 0x0b12, 0x0b20, 0x0b2f, 0x0b43, 0x0b54, 0x0b5f, - 0x0b68, 0x0b7d, 0x0b86, 0x0b8a, 0x0b96, 0x0ba4, 0x0baa, 0x0bba, - 0x0bc9, 0x0bd9, 0x0be6, -} - -// Size: 3316 bytes -var frRegionStr string = "" + - "ÃŽle de l’AscensionAndorreÉmirats arabes unisAfghanistanAntigua-et-Barbud" + - "aAnguillaAlbanieArménieAntilles néerlandaisesAngolaAntarctiqueArgentineS" + - "amoa américainesAutricheAustralieArubaÃŽles Ã…landAzerbaïdjanBosnie-Herzég" + - "ovineBarbadeBangladeshBelgiqueBurkina FasoBulgarieBahreïnBurundiBéninSai" + - "nt-BarthélemyBermudesBrunéi DarussalamBoliviePays-Bas caribéensBrésilBah" + - "amasBhoutanÃŽle BouvetBotswanaBiélorussieBelizeCanadaÃŽles CocosCongo-Kins" + - "hasaRépublique centrafricaineCongo-BrazzavilleSuisseCôte d’IvoireÃŽles Co" + - "okChiliCamerounChineColombieÃŽle ClippertonCosta RicaCubaCap-VertCuraçaoÃŽ" + - "le ChristmasChypreRépublique tchèqueAllemagneDiego GarciaDjiboutiDanemar" + - "kDominiqueRépublique dominicaineAlgérieCeuta et MelillaÉquateurEstonieÉg" + - "ypteSahara occidentalÉrythréeEspagneÉthiopieUnion européenneFinlandeFidj" + - "iÃŽles MalouinesÉtats fédérés de MicronésieÃŽles FéroéFranceGabonRoyaume-U" + - "niGrenadeGéorgieGuyane françaiseGuerneseyGhanaGibraltarGroenlandGambieGu" + - "inéeGuadeloupeGuinée équatorialeGrèceGéorgie du Sud et îles Sandwich du " + - "SudGuatemalaGuamGuinée-BissauGuyanaR.A.S. chinoise de Hong KongÃŽles Hear" + - "d et McDonaldHondurasCroatieHaïtiHongrieÃŽles CanariesIndonésieIrlandeIsr" + - "aëlÃŽle de ManIndeTerritoire britannique de l’océan IndienIrakIranIslande" + - "ItalieJerseyJamaïqueJordanieJaponKenyaKirghizistanCambodgeKiribatiComore" + - "sSaint-Christophe-et-NiévèsCorée du NordCorée du SudKoweïtÃŽles CaïmansKa" + - "zakhstanLaosLibanSainte-LucieLiechtensteinSri LankaLibériaLesothoLituani" + - "eLuxembourgLettonieLibyeMarocMonacoMoldavieMonténégroSaint-MartinMadagas" + - "carÃŽles MarshallMacédoineMaliMyanmarMongolieR.A.S. chinoise de MacaoÃŽles" + - " Mariannes du NordMartiniqueMauritanieMontserratMalteMauriceMaldivesMala" + - "wiMexiqueMalaisieMozambiqueNamibieNouvelle-CalédonieNigerÃŽle NorfolkNigé" + - "riaNicaraguaPays-BasNorvègeNépalNauruNiueNouvelle-ZélandeOmanPanamaPérou" + - "Polynésie françaisePapouasie-Nouvelle-GuinéePhilippinesPakistanPologneSa" + - "int-Pierre-et-MiquelonÃŽles PitcairnPorto RicoTerritoires palestiniensPor" + - "tugalPalaosParaguayQatarrégions éloignées de l’OcéanieLa RéunionRoumanie" + - "SerbieRussieRwandaArabie saouditeÃŽles SalomonSeychellesSoudanSuèdeSingap" + - "ourSainte-HélèneSlovénieSvalbard et Jan MayenSlovaquieSierra LeoneSaint-" + - "MarinSénégalSomalieSurinameSoudan du SudSao Tomé-et-PrincipeEl SalvadorS" + - "aint-Martin (partie néerlandaise)SyrieSwazilandTristan da CunhaÃŽles Turq" + - "ues-et-CaïquesTchadTerres australes françaisesTogoThaïlandeTadjikistanTo" + - "kelauTimor orientalTurkménistanTunisieTongaTurquieTrinité-et-TobagoTuval" + - "uTaïwanTanzanieUkraineOugandaÃŽles mineures éloignées des États-UnisÉtats" + - "-UnisUruguayOuzbékistanÉtat de la Cité du VaticanSaint-Vincent-et-les-Gr" + - "enadinesVenezuelaÃŽles Vierges britanniquesÃŽles Vierges des États-UnisVie" + - "tnamVanuatuWallis-et-FutunaSamoaKosovoYémenMayotteAfrique du SudZambieZi" + - "mbabwerégion indéterminéeMondeAfriqueAmérique du NordAmérique du SudOcéa" + - "nieAfrique occidentaleAmérique centraleAfrique orientaleAfrique septentr" + - "ionaleAfrique centraleAfrique australeAmériquesAmérique septentrionaleCa" + - "raïbesAsie orientaleAsie du SudAsie du Sud-EstEurope méridionaleAustrala" + - "sieMélanésierégion micronésiennePolynésieAsieAsie centraleAsie occidenta" + - "leEuropeEurope orientaleEurope septentrionaleEurope occidentaleAmérique " + - "latine" - -// Size: 606 bytes, 291 elements -var frRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0015, 0x001c, 0x0030, 0x003b, 0x004d, 0x0055, 0x005c, - 0x0064, 0x007b, 0x0081, 0x008c, 0x0095, 0x00a7, 0x00af, 0x00b8, - 0x00bd, 0x00c9, 0x00d5, 0x00e8, 0x00ef, 0x00f9, 0x0101, 0x010d, - 0x0115, 0x011d, 0x0124, 0x012a, 0x013b, 0x0143, 0x0155, 0x015c, - 0x016f, 0x0176, 0x017d, 0x0184, 0x018f, 0x0197, 0x01a3, 0x01a9, - 0x01af, 0x01ba, 0x01c8, 0x01e2, 0x01f3, 0x01f9, 0x0209, 0x0213, - 0x0218, 0x0220, 0x0225, 0x022d, 0x023c, 0x0246, 0x024a, 0x0252, - 0x025a, 0x0268, 0x026e, 0x0282, 0x028b, 0x0297, 0x029f, 0x02a7, - // Entry 40 - 7F - 0x02b0, 0x02c7, 0x02cf, 0x02df, 0x02e8, 0x02ef, 0x02f6, 0x0307, - 0x0311, 0x0318, 0x0321, 0x0332, 0x033a, 0x033f, 0x034e, 0x036e, - 0x037b, 0x0381, 0x0386, 0x0391, 0x0398, 0x03a0, 0x03b1, 0x03ba, - 0x03bf, 0x03c8, 0x03d1, 0x03d7, 0x03de, 0x03e8, 0x03fc, 0x0402, - 0x042a, 0x0433, 0x0437, 0x0445, 0x044b, 0x0467, 0x047e, 0x0486, - 0x048d, 0x0493, 0x049a, 0x04a8, 0x04b2, 0x04b9, 0x04c0, 0x04cb, - 0x04cf, 0x04fa, 0x04fe, 0x0502, 0x0509, 0x050f, 0x0515, 0x051e, - 0x0526, 0x052b, 0x0530, 0x053c, 0x0544, 0x054c, 0x0553, 0x056f, - // Entry 80 - BF - 0x057d, 0x058a, 0x0591, 0x059f, 0x05a9, 0x05ad, 0x05b2, 0x05be, - 0x05cb, 0x05d4, 0x05dc, 0x05e3, 0x05eb, 0x05f5, 0x05fd, 0x0602, - 0x0607, 0x060d, 0x0615, 0x0621, 0x062d, 0x0637, 0x0645, 0x064f, - 0x0653, 0x065a, 0x0662, 0x067a, 0x0691, 0x069b, 0x06a5, 0x06af, - 0x06b4, 0x06bb, 0x06c3, 0x06c9, 0x06d0, 0x06d8, 0x06e2, 0x06e9, - 0x06fc, 0x0701, 0x070d, 0x0715, 0x071e, 0x0726, 0x072e, 0x0734, - 0x0739, 0x073d, 0x074e, 0x0752, 0x0758, 0x075e, 0x0773, 0x078d, - 0x0798, 0x07a0, 0x07a7, 0x07bf, 0x07cd, 0x07d7, 0x07ef, 0x07f7, - // Entry C0 - FF - 0x07fd, 0x0805, 0x080a, 0x082e, 0x0839, 0x0841, 0x0847, 0x084d, - 0x0853, 0x0862, 0x086f, 0x0879, 0x087f, 0x0885, 0x088e, 0x089d, - 0x08a6, 0x08bb, 0x08c4, 0x08d0, 0x08db, 0x08e4, 0x08eb, 0x08f3, - 0x0900, 0x0915, 0x0920, 0x0943, 0x0948, 0x0951, 0x0961, 0x097a, - 0x097f, 0x099b, 0x099f, 0x09a9, 0x09b4, 0x09bb, 0x09c9, 0x09d6, - 0x09dd, 0x09e2, 0x09e9, 0x09fb, 0x0a01, 0x0a08, 0x0a10, 0x0a17, - 0x0a1e, 0x0a48, 0x0a53, 0x0a5a, 0x0a66, 0x0a82, 0x0aa1, 0x0aaa, - 0x0ac4, 0x0ae1, 0x0ae8, 0x0aef, 0x0aff, 0x0b04, 0x0b0a, 0x0b10, - // Entry 100 - 13F - 0x0b17, 0x0b25, 0x0b2b, 0x0b33, 0x0b49, 0x0b4e, 0x0b55, 0x0b66, - 0x0b76, 0x0b7e, 0x0b91, 0x0ba3, 0x0bb4, 0x0bca, 0x0bda, 0x0bea, - 0x0bf4, 0x0c0c, 0x0c15, 0x0c23, 0x0c2e, 0x0c3d, 0x0c50, 0x0c5b, - 0x0c66, 0x0c7c, 0x0c86, 0x0c8a, 0x0c97, 0x0ca7, 0x0cad, 0x0cbd, - 0x0cd2, 0x0ce4, 0x0cf4, -} - -// Size: 71 bytes -var frCARegionStr string = "" + - "BélarusÃŽles Cocos (Keeling)MicronésieSaint-Vincent-et-les Grenadines" - -// Size: 518 bytes, 247 elements -var frCARegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, - 0x0008, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - // Entry 40 - 7F - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - // Entry 80 - BF - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - // Entry C0 - FF - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, - 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0047, -} - -// Size: 8813 bytes -var guRegionStr string = "" + - "àªàª¸à«‡àª¨à«àª¶àª¨ આઇલેનà«àª¡àªàª‚ડોરાયà«àª¨àª¾àª‡àªŸà«‡àª¡ આરબ અમીરાતઅફઘાનિસà«àª¤àª¾àª¨àªàª¨à«àªŸà«€àª—à«àª† અને બરબà«àª¡àª¾àªàª‚" + - "ગà«àªµàª¿àª²àª¾àª…લà«àª¬à«‡àª¨àª¿àª¯àª¾àª†àª°à«àª®à«‡àª¨àª¿àª¯àª¾àª¨à«‡àª§àª°àª²à«‡àª‚ડà«àª¸ àªàª‚ટિલેસઅંગોલાàªàª¨à«àªŸàª¾àª°à«àª•àªŸàª¿àª•àª¾àª†àª°à«àªœà«‡àª¨à«àªŸà«€àª¨" + - "ાઅમેરીકન સમોઆઑસà«àªŸà«àª°àª¿àª¯àª¾àª‘સà«àªŸà«àª°à«‡àª²àª¿àª¯àª¾àª…રà«àª¬àª¾àªàª²à«‡àª‚ડ આઇલેનà«àª¡à«àª¸àª…àªàª°àª¬à«ˆàªœàª¾àª¨àª¬à«‹àª¸à«àª¨àª¿àª¯àª¾ " + - "અને હરà«àªà«‡àª—ોવિનાબારà«àª¬àª¾àª¡à«‹àª¸àª¬àª¾àª‚ગà«àª²àª¾àª¦à«‡àª¶àª¬à«‡àª²à«àªœà«€àª¯àª®àª¬à«àª°à«àª•àª¿àª¨àª¾ ફાસોબલà«àª—ેરિયાબેહરીન" + - "બà«àª°à«àª‚ડીબેનિનસેંટ બારà«àª¥àª²à«‡àª®à«€àª¬àª°à«àª®à«àª¡àª¾àª¬à«àª°à«àª¨à«‡àª‡àª¬à«‹àª²àª¿àªµàª¿àª¯àª¾àª•à«‡àª°à«‡àª¬àª¿àª¯àª¨ નેધરલેનà«àª¡à«àªàª¬à«" + - "રાàªàª¿àª²àª¬àª¹àª¾àª®àª¾àª¸àª­à«‚ટાનબૌવેત આઇલેનà«àª¡àª¬à«‹àª¤à«àª¸à«àªµàª¾àª¨àª¾àª¬à«‡àª²àª¾àª°à«àª¸àª¬à«‡àª²à«€àªàª•à«‡àª¨à«‡àª¡àª¾àª•à«‹àª•à«‹àª (કીલીંગ" + - ") આઇલેનà«àª¡à«àª¸àª•à«‹àª‚ગો - કિંશાસાસેંટà«àª°àª² આફà«àª°àª¿àª•àª¨ રીપબà«àª²àª¿àª•àª•à«‹àª‚ગો - બà«àª°àª¾àªàª¾àªµàª¿àª²à«‡àª¸à«àªµàª¿" + - "ટà«àªàª°à«àª²à«…નà«àª¡àª•à«‹àªŸ ડી આઇવરીકà«àª• આઇલેનà«àª¡à«àª¸àªšàª¿àª²à«€àª•à«…મરૂનચીનકોલમà«àª¬àª¿àª¯àª¾àª•à«àª²àª¿àªªàª°àªŸàª¨ આઇલે" + - "નà«àª¡àª•à«‹àª¸à«àªŸàª¾ રિકાકà«àª¯à«àª¬àª¾àª•à«…પ વરà«àª¡à«‡àª•à«àª°àª¾àª•àª¾àª“કà«àª°àª¿àª¸àª®àª¸ આઇલેનà«àª¡àª¸àª¾àª¯àªªà«àª°àª¸àªšà«‡àª• રીપબà«àª²àª¿àª•" + - "જરà«àª®àª¨à«€àª¡àª¿àªàª—à«‹ ગારસિઆજીબૌટીડેનમારà«àª•àª¡à«‹àª®àª¿àª¨àª¿àª•àª¾àª¡à«‹àª®àª¿àª¨àª¿àª•àª¨ રીપબà«àª²àª¿àª•àª…લà«àªœà«€àª°àª¿àª¯àª¾àª¸à«àª¯à«" + - "ટા અને મેલિલાàªàª•à«àªµàª¾àª¡à«‹àª°àªàª¸à«àªŸà«‹àª¨àª¿àª¯àª¾àª‡àªœàª¿àªªà«àª¤àªªàª¶à«àªšàª¿àª®à«€ સહારાàªàª°àª¿àªŸà«àª°àª¿àª¯àª¾àª¸à«àªªà«‡àª¨àª‡àª¥àª¿àª“પિય" + - "ાયà«àª°à«‹àªªàª¿àª¯àª¨ સંઘફિનલેનà«àª¡àª«à«€àªœà«€àª«à«‰àª•àª²à«‡àª¨à«àª¡ આઇલેનà«àª¡à«àª¸àª®àª¾àª‡àª•à«àª°à«‹àª¨à«‡àª¶àª¿àª¯àª¾àª«à«…રો આઇલેનà«àª¡à«àª¸" + - "ફà«àª°àª¾àª‚સગેબનયà«àª¨àª¾àª‡àªŸà«‡àª¡ કિંગડમગà«àª°à«‡àª¨à«‡àª¡àª¾àªœà«àª¯à«‹àª°à«àªœà«€àª¯àª¾àª«à«àª°à«‡àª‚ચ ગયાનાગà«àªµà«‡àª°à«àª¨àª¸à«‡àª˜àª¾àª¨àª¾àªœà«€" + - "બà«àª°àª¾àª²à«àªŸàª°àª—à«àª°à«€àª¨àª²à«‡àª¨à«àª¡àª—ેમà«àª¬àª¿àª¯àª¾àª—િનીગà«àªµàª¾àª¡à«‡àª²à«‹àªªàª‡àª•à«àªµà«‡àªŸà«‹àª°àª¿àª¯àª² ગિનીગà«àª°à«€àª¸àª¦àª•à«àª·àª¿àª£ જà«àª¯" + - "ોરà«àªœà«€àª¯àª¾ અને દકà«àª·àª¿àª£ સેનà«àª¡àªµàª¿àªš આઇલેનà«àª¡à«àª¸àª—à«àªµàª¾àªŸà«‡àª®àª¾àª²àª¾àª—à«àªµàª¾àª®àª—િની-બિસાઉગયાનાહોં" + - "ગકોંગ SAR ચીનહરà«àª¡ અને મેકડોનાલà«àª¡ આઇલેનà«àª¡à«àª¸àª¹à«‹àª¨à«àª¡à«àª°àª¸àª•à«àª°à«‹àªàª¶àª¿àª¯àª¾àª¹à«ˆàª¤àª¿àª¹àª‚ગેરીક" + - "ૅનેરી આઇલેનà«àª¡à«àª¸àª‡àª¨à«àª¡à«‹àª¨à«‡àª¶àª¿àª¯àª¾àª†àª¯àª°à«àª²à«‡àª‚ડઇàªàª°àª¾àª‡àª²àª†àªˆàª² ઓફ મૅનભારતબà«àª°àª¿àªŸàª¿àª¶ ઇનà«àª¡àª¿àª¯àª¨ " + - "ઓશન ટેરિટરીઇરાકઈરાનઆઇસલેનà«àª¡àª‡àªŸàª¾àª²à«€àªœàª°à«àª¸à«€àªœàª®à«ˆàª•àª¾àªœà«‹àª°à«àª¡àª¨àªœàª¾àªªàª¾àª¨àª•à«‡àª¨à«àª¯àª¾àª•àª¿àª°à«àª—િàªà«àª¸à«àª¤" + - "ાનકંબોડિયાકિરિબાટીકોમોરસસેંટ કિટà«àª¸ àªàª‚ડ નેવિસઉતà«àª¤àª° કોરિયાદકà«àª·àª¿àª£ કોરિયાક" + - "à«àªµà«ˆàª¤àª•à«‡àª¯àª®à«‡àª¨ આઇલેનà«àª¡à«àª¸àª•àªàª¾àª•àª¿àª¸à«àª¤àª¾àª¨àª²àª¾àª“સલેબનોનસેંટ લà«àª¸àª¿àª¯àª¾àª²à«ˆàªšàªŸà«‡àª‚સà«àªŸà«‡àª‡àª¨àª¶à«àª°à«€àª²àª‚ક" + - "ાલાઇબેરિયાલેસોથોલિથà«àª†àª¨àª¿àª¯àª¾àª²àª•à«àªàª®àª¬àª°à«àª—લાતà«àªµàª¿àª¯àª¾àª²àª¿àª¬àª¿àª¯àª¾àª®à«‹àª°à«‹àª•à«àª•à«‹àª®à«‹àª¨àª¾àª•à«‹àª®à«‹àª²àª¡à«‹àªµàª¾àª®" + - "ૉનà«àªŸà«‡àª‚નેગà«àª°à«‹àª¸à«‡àª‚ટ મારà«àªŸàª¿àª¨àª®à«‡àª¡àª¾àª—ાસà«àª•àª°àª®àª¾àª°à«àª¶àª² આઇલેનà«àª¡à«àª¸àª®à«‡àª¸à«‡àª¡à«‹àª¨àª¿àª¯àª¾àª®àª¾àª²à«€àª®à«àª¯àª¾àª‚મ" + - "ાર (બરà«àª®àª¾)મંગોલિયામકાઉ SAR ચીનઉતà«àª¤àª°à«€àª¯ મારિયાના આઇલેનà«àª¡à«àª¸àª®àª¾àª°à«àªŸà«€àª¨à«€àª•àª®à«Œàª°àª¿àªŸ" + - "ાનિયામોંટસેરાતમાલà«àªŸàª¾àª®à«‹àª°àª¿àª¶àª¿àª¯àª¸àª®àª¾àª²àª¦àª¿àªµà«àª¸àª®àª¾àª²àª¾àªµà«€àª®à«‡àª•à«àª¸àª¿àª•à«‹àª®àª²à«‡àª¶àª¿àª¯àª¾àª®à«‹àªàª¾àª®à«àª¬àª¿àª•àª¨àª¾àª®àª¿" + - "બિયાનà«àª¯à« સેલેડોનિયાનાઇજરનોરફૉક આઇલેનà«àª¡àª¨àª¾àª‡àªœà«€àª°à«€àª¯àª¾àª¨àª¿àª•àª¾àª°àª¾àª—à«àª†àª¨à«‡àª§àª°àª²à«‡àª¨à«àª¡àª¨à«‰àª°à«àªµ" + - "ેનેપાળનૌરà«àª¨à«€àª¯à«àª¨à«àª¯à«àªà«€àª²à«‡àª¨à«àª¡àª“માનપનામાપેરà«àª«à«àª°à«‡àª‚ચ પોલિનેશિયાપાપà«àª† નà«àª¯à«‚ ગિની" + - "ફિલીપાઇનà«àª¸àªªàª¾àª•àª¿àª¸à«àª¤àª¾àª¨àªªà«‹àª²à«‡àª‚ડસેંટ પીàªàª°à«‡ àªàª¨à«àª¡ મિકીલોનપીટકૈરà«àª¨ આઇલેનà«àª¡à«àª¸àªªà«àª¯à«" + - "અરà«àªŸà«‹ રિકોપેલેસà«àªŸàª¿àª¨àª¿àª¯àª¨ ટેરિટરીપોરà«àªŸà«àª—લપલાઉપેરાગà«àªµà«‡àª•àª¤àª¾àª°àª†àª‰àªŸàª²àª¾àª¯àª¿àª‚ગ ઓશનિયા" + - "રીયà«àª¨àª¿àª¯àª¨àª°à«‹àª®àª¾àª¨àª¿àª¯àª¾àª¸àª°à«àª¬àª¿àª¯àª¾àª°àª¶àª¿àª¯àª¾àª°àªµàª¾àª‚ડાસાઉદી અરેબિયાસોલોમન આઇલેનà«àª¡à«àª¸àª¶à«‡àª¶à«‡àª²à«àª¸" + - "સà«àª¦àª¾àª¨àª¸à«àªµà«€àª¡àª¨àª¸àª¿àª‚ગાપà«àª°àª¸à«‡àª‚ટ હેલેનાસà«àª²à«‹àªµà«‡àª¨àª¿àª¯àª¾àª¸à«àªµàª¾àª²àª¬àª°à«àª¡ àªàª¨à«àª¡ જેન મેયનસà«àª²à«‹àªµà«‡àª•" + - "િયાસીàªàª°àª¾ લેઓનસૅન મેરિનોસેનેગલસોમાલિયાસà«àª°à«€àª¨àª¾àª®àª¦àª•à«àª·àª¿àª£ સà«àª¦àª¾àª¨àª¸àª¾àª“ ટૉમ અને પà«" + - "રિંસિપેàªàª² સેલà«àªµàª¾àª¡à«‹àª°àª¸àª¿àª‚ટ મારà«àªŸà«‡àª¨àª¸à«€àª°àª¿àª¯àª¾àª¸à«àªµàª¾àªàª¿àª²à«‡àª¨à«àª¡àª¤à«àª°àª¿àª¸à«àª¤àª¾àª¨ દા કà«àª¨à«àª¹àª¾àªŸàª°à«" + - "કà«àª¸ àªàª¨à«àª¡ કૈકોસ આઇલેનà«àª¡à«àª¸àªšàª¾àª¡àª«à«àª°à«‡àª‚ચ સદરà«àª¨ ટેરિટરીàªàªŸà«‹àª—ોથાઇલેંડતાજીકિસà«àª¤àª¾àª¨" + - "ટોકેલાઉતિમોર-લેસà«àª¤à«‡àª¤à«àª°à«àª•àª®à«‡àª¨àª¿àª¸à«àª¤àª¾àª¨àªŸà«àª¯à«àª¨àª¿àª¶àª¿àª¯àª¾àªŸà«‹àª‚ગાતà«àª°à«àª•à«€àª¤à«àª°àª¿àª¨àª¿àª¦àª¾àª¦ અને ટો" + - "બેગોતà«àªµàª¾àª²à«àª¤àª¾àª‡àªµàª¾àª¨àª¤àª¾àª‚àªàª¾àª¨àª¿àª¯àª¾àª¯à«àª•à«àª°à«‡àª¨àª¯à«àª—ાંડાસંયà«àª•à«àª¤ રાજà«àª¯ આઉટલાઇંગ આયલેનà«àª¡à«" + - "સસંયà«àª•àª¤ રાજà«àª¯ અમેરિકાઉરà«àª—à«àªµà«‡àª‰àªà«àª¬à«‡àª•àª¿àª¸à«àª¤àª¾àª¨àªµà«‡àªŸàª¿àª•àª¨ સિટીસેનà«àªŸ વિનà«àª¸à«‡àª¨à«àªŸ àªàª¨à«" + - "ડ ગà«àª°à«‡àª¨à«‡àª¡à«€àª¨à«àª¸àªµà«‡àª¨à«‡àªà«àªàª²àª¾àª¬à«àª°àª¿àªŸàª¿àª¶ વરà«àªœàª¿àª¨ આઇલેનà«àª¡à«àª¸àª¯à«.àªàª¸ વરà«àªœàª¿àª¨ આઇલેનà«àª¡à«àª¸àªµàª¿" + - "યેતનામવાનà«àª†àª¤à«àªµà«‰àª²àª¿àª¸ àªàª‚ડ ફà«àª¯à«àªšà«àª¨àª¾àª¸àª®à«‹àª†àª•à«‹àª¸à«‹àªµà«‹àª¯à«‡àª®à«‡àª¨àª®à«‡àª¯à«‹àªŸàª¦àª•à«àª·àª¿àª£ આફà«àª°àª¿àª•àª¾àªàª¾àª®à«àª¬" + - "િયાàªàª¿àª®à«àª¬àª¾àª¬à«àªµà«‡àª…જà«àªžàª¾àª¤ પà«àª°àª¦à«‡àª¶àªµàª¿àª¶à«àªµàª†àª«à«àª°àª¿àª•àª¾àª‰àª¤à«àª¤àª° અમેરિકાદકà«àª·àª¿àª£ અમેરિકાઓશિઆન" + - "િયાપશà«àªšàª¿àª®à«€ આફà«àª°àª¿àª•àª¾àª®àª§à«àª¯ અમેરિકાપૂરà«àªµà«€àª¯ આફà«àª°àª¿àª•àª¾àª‰àª¤à«àª¤àª°à«€àª¯ આફà«àª°àª¿àª•àª¾àª®àª§à«àª¯ આફà«àª°àª¿" + - "કાદકà«àª·àª¿àª£à«€ આફà«àª°àª¿àª•àª¾àª…મેરિકાસઉતà«àª¤àª°à«€àª¯ અમેરિકાકેરિબિયનપૂરà«àªµà«€àª¯ àªàª¶àª¿àª¯àª¾àª¦àª•à«àª·àª¿àª£à«€ àª" + - "શિયાદકà«àª·àª¿àª£àªªà«‚રà«àªµ àªàª¶àª¿àª¯àª¾àª¦àª•à«àª·àª¿àª£à«€ યà«àª°à«‹àªªàª“સà«àªŸà«àª°à«‡àª²à«‡àª¶àª¿àª¯àª¾àª®à«‡àª²àª¾àª¨à«‡àª¶àª¿àª¯àª¾àª®àª¾àª‡àª•à«àª°à«‹àª¨à«‡àª¶àª¿àª¯àª¨" + - " રીજનપોલિનેશિયાàªàª¶àª¿àª¯àª¾àª®àª§à«àª¯ àªàª¶àª¿àª¯àª¾àªªàª¶à«àªšàª¿àª®à«€ àªàª¶àª¿àª¯àª¾àª¯à«àª°à«‹àªªàªªà«‚રà«àªµà«€àª¯ યà«àª°à«‹àªªàª‰àª¤à«àª¤àª°à«€àª¯ યà«àª°" + - "ોપપશà«àªšàª¿àª® યà«àª°à«‹àªªàª²à«‡àªŸàª¿àª¨ અમેરિકા" - -// Size: 606 bytes, 291 elements -var guRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x002b, 0x003d, 0x0072, 0x0093, 0x00c8, 0x00e0, 0x00fb, - 0x0116, 0x014a, 0x015c, 0x0180, 0x01a1, 0x01c3, 0x01de, 0x01ff, - 0x020e, 0x0239, 0x0251, 0x0295, 0x02b0, 0x02ce, 0x02e6, 0x030b, - 0x0326, 0x0338, 0x034d, 0x035c, 0x0384, 0x0399, 0x03ae, 0x03c6, - 0x0400, 0x0415, 0x0427, 0x0436, 0x045b, 0x0479, 0x048e, 0x049d, - 0x04af, 0x04ef, 0x0516, 0x055a, 0x058a, 0x05b4, 0x05d4, 0x05f9, - 0x0605, 0x0617, 0x0620, 0x063b, 0x0669, 0x0688, 0x069a, 0x06b3, - 0x06c8, 0x06f3, 0x0708, 0x072a, 0x073c, 0x075e, 0x0770, 0x0788, - // Entry 40 - 7F - 0x07a0, 0x07d1, 0x07ec, 0x081b, 0x0833, 0x084e, 0x0860, 0x0885, - 0x08a0, 0x08af, 0x08c7, 0x08e9, 0x0901, 0x090d, 0x0941, 0x0968, - 0x0990, 0x09a2, 0x09ae, 0x09d9, 0x09f1, 0x0a0f, 0x0a31, 0x0a4c, - 0x0a58, 0x0a76, 0x0a94, 0x0aac, 0x0ab8, 0x0ad3, 0x0b01, 0x0b10, - 0x0b93, 0x0bb1, 0x0bc0, 0x0bdc, 0x0beb, 0x0c11, 0x0c62, 0x0c7a, - 0x0c95, 0x0ca1, 0x0cb3, 0x0ce1, 0x0d02, 0x0d1a, 0x0d2c, 0x0d46, - 0x0d52, 0x0d9d, 0x0da9, 0x0db5, 0x0dcd, 0x0ddc, 0x0deb, 0x0dfa, - 0x0e0c, 0x0e1b, 0x0e2d, 0x0e54, 0x0e6c, 0x0e84, 0x0e96, 0x0ecc, - // Entry 80 - BF - 0x0eee, 0x0f13, 0x0f22, 0x0f50, 0x0f6e, 0x0f7a, 0x0f8c, 0x0fab, - 0x0fcf, 0x0fe7, 0x1002, 0x1014, 0x102f, 0x104a, 0x1062, 0x1074, - 0x108c, 0x109e, 0x10b3, 0x10da, 0x10fc, 0x111a, 0x1148, 0x1166, - 0x1172, 0x119c, 0x11b4, 0x11ce, 0x1218, 0x1233, 0x1251, 0x126c, - 0x127e, 0x1296, 0x12ae, 0x12c0, 0x12d8, 0x12ed, 0x1308, 0x1320, - 0x134b, 0x135a, 0x1382, 0x139d, 0x13b8, 0x13d3, 0x13e5, 0x13f4, - 0x1400, 0x140c, 0x142d, 0x1439, 0x1448, 0x1454, 0x1485, 0x14ae, - 0x14cc, 0x14e7, 0x14f9, 0x1538, 0x156c, 0x1594, 0x15ce, 0x15e6, - // Entry C0 - FF - 0x15f2, 0x160a, 0x1616, 0x1644, 0x165c, 0x1674, 0x1689, 0x1698, - 0x16aa, 0x16cf, 0x16fd, 0x1712, 0x1721, 0x1733, 0x174b, 0x176a, - 0x1788, 0x17c7, 0x17e5, 0x1801, 0x181d, 0x182f, 0x1847, 0x185c, - 0x187e, 0x18b7, 0x18d9, 0x18fb, 0x190d, 0x192e, 0x1963, 0x19ae, - 0x19b7, 0x19f2, 0x19fe, 0x1a13, 0x1a34, 0x1a49, 0x1a6b, 0x1a95, - 0x1ab3, 0x1ac2, 0x1ad4, 0x1b0c, 0x1b1e, 0x1b30, 0x1b4b, 0x1b60, - 0x1b75, 0x1bcf, 0x1c07, 0x1c1c, 0x1c40, 0x1c5f, 0x1cb9, 0x1cd4, - 0x1d18, 0x1d54, 0x1d6c, 0x1d81, 0x1db3, 0x1dbf, 0x1dd1, 0x1de0, - // Entry 100 - 13F - 0x1def, 0x1e17, 0x1e2f, 0x1e4d, 0x1e72, 0x1e81, 0x1e96, 0x1ebb, - 0x1ee3, 0x1efb, 0x1f26, 0x1f48, 0x1f73, 0x1f9e, 0x1fc0, 0x1feb, - 0x2003, 0x202e, 0x2046, 0x206b, 0x2090, 0x20c1, 0x20e6, 0x210d, - 0x212b, 0x215f, 0x217d, 0x218c, 0x21a8, 0x21cd, 0x21dc, 0x2201, - 0x2226, 0x2248, 0x226d, -} - -// Size: 5025 bytes -var heRegionStr string = "" + - "×”××™ ×סנשן×נדורה×יחוד ×”×מירויות הערביות×פגניסטן×נטיגו××” וברבודה×נגילה×לבנ" + - "×™×”×רמניה×× ×˜×™×œ×™× ×”×•×œ× ×“×™×™××נגולה×נט×רקטיקה×רגנטינהסמו××” ×”×מריקנית×וסטריה×" + - "וסטרליה×רובה××™×™ ×ולנד×זרבייג׳ןבוסניה והרצגובינהברבדוסבנגלדשבלגיהבורקינה" + - " פ×סובולגריהבחרייןבורונדיבניןסנט ברתולומי×וברמודהברונייבוליביהה××™×™× ×”×§×¨×™" + - "×‘×™×™× ×”×”×•×œ× ×“×™×™×ברזיל××™×™ בה×מהבהוטן××™×™ בובהבוטסוו×נהבל×רוסבליזקנדה××™×™ קוק" + - "וס (קילינג)קונגו - קינש×סההרפובליקה של מרכז ×פריקהקונגו - ברז×וילשווייץ" + - "חוף השנהב××™×™ קוקצ׳ילהקמרוןסיןקולומביהה××™ קליפרטוןקוסטה ריקהקובהכף ורדהק" + - "ור×ס×ו××™ ×—×’ המולדקפריסיןצ׳כיהגרמניהדייגו גרסיהג׳יבוטידנמרקדומיניקההרפוב" + - "ליקה הדומיניקנית×לג׳יריהס×וטה ומלייה×קוודור×סטוניהמצרי×סהרה המערבית×רית" + - "רי×הספרד×תיופיהה×יחוד ×”×ירופיפינלנדפיג׳י××™×™ פוקלנדמיקרונזיה××™×™ פ×רוצרפת" + - "×’×בוןהממלכה המ×וחדתגרנדהג×ורגיהגי×× ×” הצרפתיתגרנסיג×נהגיברלטרגרינלנדגמבי" + - "×”×’×™× ×™×הגוו×דלופגיני××” המשווניתיווןג׳ורג׳יה הדרומית ו××™×™ סנדוויץ׳ הדרומי" + - "×™×גו×טמלהגו×××’×™× ×™××”-ביס×וגי×נההונג קונג - מחוז מנהלי מיוחד של סיןה××™ הר" + - "ד ו××™×™ מקדונלדהונדורסקרו×טיהה×יטיהונגריהה××™×™× ×”×§× ×¨×™×™××ינדונזיה×ירלנדישר" + - "×לה××™ מ×ןהודוהטריטוריה הבריטית ב×וקיינוס ההודיעיר×ק×יר×ן×יסלנד×יטליהג׳ר" + - "סיג׳מייקהירדןיפןקניהקירגיזסטןקמבודיהקיריב×טיקומורוסנט קיטס ונוויסקורי××”" + - " הצפוניתקורי××” הדרומיתכווית××™×™ קיימןקזחסטןל×וסלבנוןסנט לוסיהליכטנשטייןסר" + - "×™ לנקהליבריהלסוטוליט×לוקסמבורגלטביהלובמרוקומונקומולדובהמונטנגרוסן מרטןמ" + - "דגסקר××™×™ מרשלמקדוניהמ×לימי×נמ×ר (בורמה)\u200eמונגוליהמק×ו - מחוז מנהלי " + - "מיוחד של סין××™×™ מרי×× ×” הצפוניי×מרטיניקמ×וריטניהמונסר×טמלטהמ×וריציוסה××™×™" + - "× ×”×ž×œ×“×™×‘×™×™×מל×ווימקסיקומלזיהמוזמביקנמיביהקלדוניה החדשהניז׳ר××™×™ נורפוקני" + - "גריהניקרגו×ההולנדנורווגיהנפ×לנ×ורוניווהניו זילנדעומ×ןפנמהפרופולינזיה הצ" + - "רפתיתפפו××” ×’×™× ×™××” החדשהפיליפיני×פקיסטןפוליןסנט פייר ומיקלון××™×™ פיטקרןפו" + - "×רטו ×¨×™×§×•×”×©×˜×—×™× ×”×¤×œ×¡×˜×™× ×™×™×פורטוגלפ×ל×ופרגוו×יקט×ר×וקי×× ×™×” חיצוניתר×וניו" + - "ןרומניהסרביהרוסיהרו×נדהערב הסעודית××™×™ שלמה××™×™ סיישלסודןשוודיהסינגפורסנט" + - " הלנהסלובניהסוולב×רד וי×ן מ×ייןסלובקיהסיירה ל×ונהסן מרינוסנגלסומליהסורינ" + - "××“×¨×•× ×¡×•×“×Ÿ×¡×ו טומה ופרינסיפה×ל סלבדורסינט מ×רטןסוריהסווזילנדטריסטן דה ק" + - "ונה××™×™ טורקס וק×יקוסצ׳×דטריטוריות דרומיות של צרפתטוגות×ילנדטג׳יקיסטןטוק" + - "ל×וטימור לסטהטורקמניסטןתוניסיהטונגהטורקיהטרינידד וטובגוטובלוטייוו×ןטנזנ" + - "×™×”×וקר××™× ×”×וגנדה××™×™× ×œ×—×•×£ ×רצות הברית×רצות הברית×ורוגוו××™×וזבקיסטןהוותי" + - "קןסנט וינסנט והגרנדיני×ונצו×לה××™×™ הבתולה הבריטיי×××™×™ הבתולה של ×רצות הב" + - "ריתוייטנ××ונו×טו××™×™ ווליס ופוטונהסמו×הקוסובותימןמ××™×•×˜×“×¨×•× ×פריקהזמביהזי" + - "מב×בווה×זור ×œ× ×™×“×•×¢×”×¢×•×œ××פריקהצפון ××ž×¨×™×§×”×“×¨×•× ×מריקה×וקי×ניהמערב ×פריקה" + - "מרכז ×מריקהמזרח ×פריקהצפון ×פריקהמרכז ××¤×¨×™×§×”×“×¨×•× ×™×‘×©×ª ×פריקה×מריקה×מריק" + - "×” הצפוניתה××™×™× ×”×§×¨×™×‘×™×™×מזרח ××¡×™×”×“×¨×•× ×סיהדרו×־מזרח ××¡×™×”×“×¨×•× ×ירופה×וסטר" + - "ל×סיהמלנזיה×זור מיקרונזיהפולינזיה×סיהמרכז ×סיהמערב ×סיה×ירופהמזרח ×ירופ" + - "הצפון ×ירופהמערב ×ירופה×מריקה הלטינית" - -// Size: 606 bytes, 291 elements -var heRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0011, 0x001d, 0x0049, 0x0059, 0x0078, 0x0084, 0x0090, - 0x009c, 0x00bb, 0x00c7, 0x00db, 0x00eb, 0x0108, 0x0116, 0x0126, - 0x0130, 0x0141, 0x0153, 0x0174, 0x0180, 0x018c, 0x0196, 0x01ad, - 0x01bb, 0x01c7, 0x01d5, 0x01dd, 0x01f8, 0x0204, 0x0210, 0x021e, - 0x024c, 0x0256, 0x0267, 0x0271, 0x0280, 0x0292, 0x029e, 0x02a6, - 0x02ae, 0x02ce, 0x02e9, 0x0316, 0x0331, 0x033d, 0x034e, 0x035b, - 0x0365, 0x036f, 0x0375, 0x0385, 0x039c, 0x03af, 0x03b7, 0x03c4, - 0x03d2, 0x03e6, 0x03f4, 0x03fe, 0x040a, 0x041f, 0x042d, 0x0437, - // Entry 40 - 7F - 0x0447, 0x0470, 0x0480, 0x0497, 0x04a5, 0x04b3, 0x04bd, 0x04d4, - 0x04e4, 0x04ec, 0x04fa, 0x0515, 0x0521, 0x052b, 0x053e, 0x0550, - 0x055f, 0x0567, 0x0571, 0x058c, 0x0596, 0x05a4, 0x05bd, 0x05c7, - 0x05cf, 0x05dd, 0x05eb, 0x05f5, 0x0601, 0x0611, 0x062e, 0x0636, - 0x0680, 0x068e, 0x0696, 0x06ad, 0x06b7, 0x06f5, 0x071a, 0x0728, - 0x0736, 0x0740, 0x074e, 0x0767, 0x0779, 0x0785, 0x078f, 0x079c, - 0x07a4, 0x07e3, 0x07ed, 0x07f7, 0x0803, 0x080f, 0x0819, 0x0827, - 0x082f, 0x0835, 0x083d, 0x084f, 0x085d, 0x086d, 0x0879, 0x0895, - // Entry 80 - BF - 0x08b0, 0x08cb, 0x08d5, 0x08e6, 0x08f2, 0x08fa, 0x0904, 0x0915, - 0x0929, 0x0938, 0x0944, 0x094e, 0x0956, 0x0968, 0x0972, 0x0978, - 0x0982, 0x098c, 0x099a, 0x09aa, 0x09b7, 0x09c3, 0x09d2, 0x09e0, - 0x09e8, 0x0a06, 0x0a16, 0x0a4b, 0x0a6f, 0x0a7d, 0x0a8f, 0x0a9d, - 0x0aa5, 0x0ab7, 0x0ad4, 0x0ae0, 0x0aec, 0x0af6, 0x0b04, 0x0b10, - 0x0b29, 0x0b33, 0x0b46, 0x0b52, 0x0b62, 0x0b6c, 0x0b7c, 0x0b84, - 0x0b8e, 0x0b98, 0x0ba9, 0x0bb3, 0x0bbb, 0x0bc1, 0x0be0, 0x0c02, - 0x0c14, 0x0c20, 0x0c2a, 0x0c48, 0x0c5b, 0x0c70, 0x0c91, 0x0c9f, - // Entry C0 - FF - 0x0ca9, 0x0cb7, 0x0cbf, 0x0cde, 0x0cec, 0x0cf8, 0x0d02, 0x0d0c, - 0x0d18, 0x0d2d, 0x0d3c, 0x0d4d, 0x0d55, 0x0d61, 0x0d6f, 0x0d7e, - 0x0d8c, 0x0db0, 0x0dbe, 0x0dd3, 0x0de2, 0x0dea, 0x0df6, 0x0e02, - 0x0e13, 0x0e35, 0x0e46, 0x0e59, 0x0e63, 0x0e73, 0x0e8d, 0x0ead, - 0x0eb5, 0x0ee4, 0x0eec, 0x0ef8, 0x0f0a, 0x0f16, 0x0f29, 0x0f3d, - 0x0f4b, 0x0f55, 0x0f61, 0x0f7c, 0x0f86, 0x0f94, 0x0fa0, 0x0fb0, - 0x0fbc, 0x0fe3, 0x0ff8, 0x100a, 0x101c, 0x102a, 0x1052, 0x1060, - 0x1084, 0x10b2, 0x10c0, 0x10cc, 0x10ec, 0x10f6, 0x1102, 0x110a, - // Entry 100 - 13F - 0x1114, 0x1129, 0x1133, 0x1145, 0x115b, 0x1165, 0x1171, 0x1186, - 0x119b, 0x11ab, 0x11c0, 0x11d5, 0x11ea, 0x11ff, 0x1214, 0x1232, - 0x123e, 0x1259, 0x1274, 0x1285, 0x1296, 0x12b1, 0x12c6, 0x12da, - 0x12e6, 0x1301, 0x1311, 0x1319, 0x132a, 0x133b, 0x1347, 0x135c, - 0x1371, 0x1386, 0x13a1, -} - -// Size: 8760 bytes -var hiRegionStr string = "" + - "असेंशन दà¥à¤µà¥€à¤ªà¤à¤‚डोरासंयà¥à¤•à¥à¤¤ अरब अमीरातअफ़गानिसà¥à¤¤à¤¾à¤¨à¤à¤‚टिगà¥à¤† और बरबà¥à¤¡à¤¾à¤à¤‚गà¥à¤µà¤¿à¤²" + - "ाअलà¥à¤¬à¤¾à¤¨à¤¿à¤¯à¤¾à¤†à¤°à¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤¨à¥€à¤¦à¤°à¤²à¥ˆà¤‚डी à¤à¤‚टीलअंगोलाअंटारà¥à¤•à¤Ÿà¤¿à¤•à¤¾à¤…रà¥à¤œà¥‡à¤‚टीनाअमेरिकी स" + - "मोआऑसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤‘सà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾à¤…रूबाà¤à¤²à¥ˆà¤‚ड दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हअज़रबैजानबोसà¥à¤¨à¤¿à¤¯à¤¾ और हरà¥à¤œà¤¼à¥‡" + - "गोविनाबारबाडोसबांगà¥à¤²à¤¾à¤¦à¥‡à¤¶à¤¬à¥‡à¤²à¥à¤œà¤¿à¤¯à¤®à¤¬à¥à¤°à¥à¤•à¤¿à¤¨à¤¾ फ़ासोबà¥à¤²à¥à¤—ारियाबहरीनबà¥à¤°à¥à¤‚डीबे" + - "निनसेंट बारà¥à¤¥à¥‡à¤²à¥‡à¤®à¥€à¤¬à¤°à¤®à¥‚डाबà¥à¤°à¥‚नेईबोलीवियाकैरिबियन नीदरलैंडबà¥à¤°à¤¾à¤œà¤¼à¥€à¤²à¤¬à¤¹à¤¾à¤®à¤¾à¤¸" + - "भूटानबोवेत दà¥à¤µà¥€à¤ªà¤¬à¥‹à¤¤à¥à¤¸à¥à¤µà¤¾à¤¨à¤¾à¤¬à¥‡à¤²à¤¾à¤°à¥‚सबेलीज़कनाडाकोकोस (कीलिंग) दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हका" + - "ंगो - किंशासामधà¥à¤¯ अफ़à¥à¤°à¥€à¤•à¥€ गणराजà¥à¤¯à¤•à¤¾à¤‚गो – बà¥à¤°à¤¾à¤œà¤¼à¤¾à¤µà¤¿à¤²à¤¸à¥à¤µà¤¿à¤Ÿà¥à¤œà¤¼à¤°à¤²à¥ˆà¤‚डकोट ड" + - "ी आइवरकà¥à¤• दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हचिलीकैमरूनचीनकोलंबियाकà¥à¤²à¤¿à¤ªà¤°à¥à¤Ÿà¤¨ दà¥à¤µà¥€à¤ªà¤•à¥‹à¤¸à¥à¤Ÿà¤¾à¤°à¤¿à¤•à¤¾à¤•à¥à¤¯à¥‚ब" + - "ाकेप वरà¥à¤¡à¤•à¥à¤¯à¥‚रासाओकà¥à¤°à¤¿à¤¸à¤®à¤¸ दà¥à¤µà¥€à¤ªà¤¸à¤¾à¤‡à¤ªà¥à¤°à¤¸à¤šà¥‡à¤• गणराजà¥à¤¯à¤œà¤°à¥à¤®à¤¨à¥€à¤¡à¤¿à¤à¤—ो गारà¥à¤¸à¤¿à¤¯à¤¾à¤œ" + - "िबूतीडेनमारà¥à¤•à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¾à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¨ गणराजà¥à¤¯à¤…लà¥à¤œà¥€à¤°à¤¿à¤¯à¤¾à¤¸à¥‡à¤‰à¤Ÿà¤¾ और मेलिलाइकà¥à¤µà¤¾à¤¡à¥‹à¤°à¤" + - "सà¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤®à¤¿à¤¸à¥à¤°à¤ªà¤¶à¥à¤šà¤¿à¤®à¥€ सहाराइरिटà¥à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤ªà¥‡à¤¨à¤‡à¤¥à¤¿à¤¯à¥‹à¤ªà¤¿à¤¯à¤¾à¤¯à¥‚रोपीय संघफ़िनलैंडफ़" + - "िजीफ़ॉकलैंड दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हमाइकà¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤«à¤¼à¥‡à¤°à¥‹ दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हफ़à¥à¤°à¤¾à¤‚सगैबॉनयूनाइटेड " + - "किंगडमगà¥à¤°à¥‡à¤¨à¤¾à¤¡à¤¾à¤œà¥‰à¤°à¥à¤œà¤¿à¤¯à¤¾à¤«à¤¼à¥à¤°à¥‡à¤‚च गयानागरà¥à¤¨à¤¸à¥€à¤˜à¤¾à¤¨à¤¾à¤œà¤¿à¤¬à¥à¤°à¤¾à¤²à¥à¤Ÿà¤°à¤—à¥à¤°à¥€à¤¨à¤²à¥ˆà¤‚डगामà¥à¤¬à¤¿" + - "यागिनीगà¥à¤µà¤¾à¤¡à¥‡à¤²à¥‚पइकà¥à¤µà¥‡à¤Ÿà¥‹à¤°à¤¿à¤¯à¤² गिनीयूनानदकà¥à¤·à¤¿à¤£ जॉरà¥à¤œà¤¿à¤¯à¤¾ और दकà¥à¤·à¤¿à¤£ सैंडविच " + - "दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हगà¥à¤µà¤¾à¤Ÿà¥‡à¤®à¤¾à¤²à¤¾à¤—à¥à¤†à¤®à¤—िनी-बिसाउगयानाहाà¤à¤— काà¤à¤— (चीन विशेष पà¥à¤°à¤¶à¤¾à¤¸à¤¨à¤¿à¤• क" + - "à¥à¤·à¥‡à¤¤à¥à¤°)हरà¥à¤¡ दà¥à¤µà¥€à¤ª और मैकडोनॉलà¥à¤¡ दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हहोंडूरासकà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾à¤¹à¥ˆà¤¤à¥€à¤¹à¤‚गरीकैन" + - "ेरी दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हइंडोनेशियाआयरलैंडइसराइलआइल ऑफ़ मैनभारतबà¥à¤°à¤¿à¤Ÿà¤¿à¤¶ हिंद महासाग" + - "रीय कà¥à¤·à¥‡à¤¤à¥à¤°à¤‡à¤°à¤¾à¤•à¤ˆà¤°à¤¾à¤¨à¤†à¤‡à¤¸à¤²à¥ˆà¤‚डइटलीजरà¥à¤¸à¥€à¤œà¤®à¥ˆà¤•à¤¾à¤œà¥‰à¤°à¥à¤¡à¤¨à¤œà¤¾à¤ªà¤¾à¤¨à¤•à¥‡à¤¨à¥à¤¯à¤¾à¤•à¤¿à¤°à¥à¤—िज़सà¥à¤¤à¤¾à¤¨" + - "कंबोडियाकिरिबातीकोमोरोससेंट किटà¥à¤¸ और नेविसउतà¥à¤¤à¤° कोरियादकà¥à¤·à¤¿à¤£ कोरियाकà¥à¤µ" + - "ैतकेमैन दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हकज़ाखसà¥à¤¤à¤¾à¤¨à¤²à¤¾à¤“सलेबनानसेंट लूसियालिचेंसà¥à¤Ÿà¥€à¤¨à¤¶à¥à¤°à¥€à¤²à¤‚कालाइब" + - "ेरियालेसोथोलिथà¥à¤†à¤¨à¤¿à¤¯à¤¾à¤²à¤—à¥à¤œà¤¼à¤®à¤¬à¤°à¥à¤—लातवियालीबियामोरकà¥à¤•à¥‹à¤®à¥‹à¤¨à¤¾à¤•à¥‹à¤®à¥‰à¤²à¥à¤¡à¥‹à¤µà¤¾à¤®à¥‹à¤‚टेन" + - "ेगà¥à¤°à¥‹à¤¸à¥‡à¤‚ट मारà¥à¤Ÿà¤¿à¤¨à¤®à¥‡à¤¡à¤¾à¤—ासà¥à¤•à¤°à¤®à¤¾à¤°à¥à¤¶à¤² दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हमैसिडोनियामालीमà¥à¤¯à¤¾à¤‚मार (बरà¥" + - "मा)मंगोलियामकाऊ (विशेष पà¥à¤°à¤¶à¤¾à¤¸à¤¨à¤¿à¤• कà¥à¤·à¥‡à¤¤à¥à¤° चीन)उतà¥à¤¤à¤°à¥€ मारियाना दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚ह" + - "मारà¥à¤Ÿà¥€à¤¨à¤¿à¤•à¤®à¥‰à¤°à¤¿à¤Ÿà¤¾à¤¨à¤¿à¤¯à¤¾à¤®à¥‹à¤‚टसेरातमालà¥à¤Ÿà¤¾à¤®à¥‰à¤°à¤¿à¤¶à¤¸à¤®à¤¾à¤²à¤¦à¥€à¤µà¤®à¤²à¤¾à¤µà¥€à¤®à¥ˆà¤•à¥à¤¸à¤¿à¤•à¥‹à¤®à¤²à¥‡à¤¶à¤¿à¤¯à¤¾à¤®à¥‹à¤œà¤¼" + - "ांबिकनामीबियानà¥à¤¯à¥‚ कैलेडोनियानाइजरनॉरफ़ॉक दà¥à¤µà¥€à¤ªà¤¨à¤¾à¤‡à¤œà¥€à¤°à¤¿à¤¯à¤¾à¤¨à¤¿à¤•à¤¾à¤°à¤¾à¤—à¥à¤†à¤¨à¥€à¤¦à¤°à¤²à¥ˆ" + - "ंडनॉरà¥à¤µà¥‡à¤¨à¥‡à¤ªà¤¾à¤²à¤¨à¤¾à¤‰à¤°à¥à¤¨à¥€à¤¯à¥‚नà¥à¤¯à¥‚ज़ीलैंडओमानपनामापेरूफ़à¥à¤°à¥‡à¤‚च पोलिनेशियापापà¥à¤† " + - "नà¥à¤¯à¥‚ गिनीफ़िलिपींसपाकिसà¥à¤¤à¤¾à¤¨à¤ªà¥‹à¤²à¥ˆà¤‚डसेंट पिà¤à¤°à¥‡ और मिकà¥à¤µà¥‡à¤²à¤¾à¤¨à¤ªà¤¿à¤Ÿà¤•à¥ˆà¤°à¥à¤¨ दà¥à¤µà¥€à¤ª" + - "समूहपोरà¥à¤Ÿà¥‹ रिकोफ़िलिसà¥à¤¤à¥€à¤¨à¥€ कà¥à¤·à¥‡à¤¤à¥à¤°à¤ªà¥à¤°à¥à¤¤à¤—ालपलाऊपेरागà¥à¤µà¥‡à¤•à¤¼à¤¤à¤°à¤†à¤‰à¤Ÿà¤²à¤¾à¤‡à¤‚ग ओशि" + - "नियारियूनियनरोमानियासरà¥à¤¬à¤¿à¤¯à¤¾à¤°à¥‚सरवांडासऊदी अरबसोलोमन दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हसेशेलà¥à¤¸à¤¸à¥‚ड" + - "ानसà¥à¤µà¥€à¤¡à¤¨à¤¸à¤¿à¤‚गापà¥à¤°à¤¸à¥‡à¤‚ट हेलेनासà¥à¤²à¥‹à¤µà¥‡à¤¨à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤²à¤¬à¤¾à¤°à¥à¤¡ और जान मायेनसà¥à¤²à¥‹à¤µà¤¾à¤•à¤¿à¤¯à¤¾" + - "सिà¤à¤°à¤¾ लियोनसैन मेरीनोसेनेगलसोमालियासूरीनामदकà¥à¤·à¤¿à¤£ सूडानसाओ टोम और पà¥à¤°à¤¿à¤‚" + - "सिपेअल सलà¥à¤µà¤¾à¤¡à¥‹à¤°à¤¸à¤¿à¤‚ट मारà¥à¤Ÿà¤¿à¤¨à¤¸à¥€à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤œà¤¼à¥€à¤²à¥ˆà¤‚डतà¥à¤°à¤¿à¤¸à¥à¤Ÿà¤¾à¤¨ डा कà¥à¤¨à¤¾à¤¤à¥à¤°à¥à¤• और " + - "कैकोज़ दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हचाडफ़à¥à¤°à¤¾à¤‚सीसी दकà¥à¤·à¤¿à¤£à¥€ कà¥à¤·à¥‡à¤¤à¥à¤°à¤Ÿà¥‹à¤—ोथाईलैंडताजिकिसà¥à¤¤à¤¾à¤¨à¤¤à¥‹à¤•" + - "ेलाउतिमोर-लेसà¥à¤¤à¤¤à¥à¤°à¥à¤•à¤®à¥‡à¤¨à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤Ÿà¥à¤¯à¥‚नीशियाटोंगातà¥à¤°à¥à¤•à¥€à¤¤à¥à¤°à¤¿à¤¨à¤¿à¤¦à¤¾à¤¦ और टोबैगोत" + - "à¥à¤µà¤¾à¤²à¥‚ताइवानतंज़ानियायूकà¥à¤°à¥‡à¤¨à¤¯à¥à¤—ांडायू.à¤à¤¸. आउटलाइंग दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हसंयà¥à¤•à¥à¤¤ राज" + - "à¥à¤¯à¤‰à¤°à¥‚गà¥à¤µà¥‡à¤‰à¤œà¤¼à¥à¤¬à¥‡à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤µà¥‡à¤Ÿà¤¿à¤•à¤¨ सिटीसेंट विंसेंट और गà¥à¤°à¥‡à¤¨à¤¾à¤¡à¤¾à¤‡à¤‚सवेनेज़à¥à¤à¤²à¤¾" + - "बà¥à¤°à¤¿à¤Ÿà¤¿à¤¶ वरà¥à¤œà¤¿à¤¨ दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हयू.à¤à¤¸. वरà¥à¤œà¤¿à¤¨ दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हवियतनामवनà¥à¤†à¤¤à¥‚वालिस और फ" + - "़à¥à¤¯à¥‚चूनासमोआकोसोवोयमनमायोतेदकà¥à¤·à¤¿à¤£ अफ़à¥à¤°à¥€à¤•à¤¾à¤œà¤¼à¤¾à¤®à¥à¤¬à¤¿à¤¯à¤¾à¤œà¤¼à¤¿à¤®à¥à¤¬à¤¾à¤¬à¥à¤µà¥‡à¤…जà¥à¤žà¤¾à¤¤ क" + - "à¥à¤·à¥‡à¤¤à¥à¤°à¤µà¤¿à¤¶à¥à¤µà¤…फ़à¥à¤°à¥€à¤•à¤¾à¤‰à¤¤à¥à¤¤à¤° अमेरिकादकà¥à¤·à¤¿à¤£ अमेरिकाओशिआनियापशà¥à¤šà¤¿à¤®à¥€ अफ़à¥à¤°à¥€à¤•à¤¾" + - "मधà¥à¤¯ अमेरिकापूरà¥à¤µà¥€ अफ़à¥à¤°à¥€à¤•à¤¾à¤‰à¤¤à¥à¤¤à¤°à¥€ अफ़à¥à¤°à¥€à¤•à¤¾à¤®à¤§à¥à¤¯ अफ़à¥à¤°à¥€à¤•à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ अफ़à¥à¤°à¥€à¤•" + - "ाअमेरिकाज़उतà¥à¤¤à¤°à¥€ अमेरिकाकैरिबियनपूरà¥à¤µà¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£-पूरà¥à¤µ " + - "à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ यूरोपऑसà¥à¤Ÿà¥à¤°à¥‡à¤²à¥‡à¤¶à¤¿à¤¯à¤¾à¤®à¥‡à¤²à¤¾à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤®à¤¾à¤‡à¤•à¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤ˆ कà¥à¤·à¥‡à¤¤à¥à¤°à¤ªà¥‹à¤²à¥€à¤¨à¥‡à¤¶" + - "ियाà¤à¤¶à¤¿à¤¯à¤¾à¤®à¤§à¥à¤¯ à¤à¤¶à¤¿à¤¯à¤¾à¤ªà¤¶à¥à¤šà¤¿à¤®à¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¯à¥‚रोपपूरà¥à¤µà¥€ यूरोपउतà¥à¤¤à¤°à¥€ यूरोपपशà¥à¤šà¤¿à¤®à¥€ यू" + - "रोपलैटिन अमेरिका" - -// Size: 606 bytes, 291 elements -var hiRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0022, 0x0034, 0x0066, 0x008a, 0x00b9, 0x00d1, 0x00ec, - 0x0107, 0x0132, 0x0144, 0x0165, 0x0183, 0x01a5, 0x01c0, 0x01e1, - 0x01f0, 0x021b, 0x0236, 0x027a, 0x0292, 0x02b0, 0x02c8, 0x02f0, - 0x030e, 0x031d, 0x0332, 0x0341, 0x036c, 0x037e, 0x0393, 0x03ab, - 0x03dc, 0x03f4, 0x0406, 0x0415, 0x0434, 0x0452, 0x0467, 0x0479, - 0x0488, 0x04c8, 0x04ef, 0x052a, 0x055c, 0x0583, 0x05a0, 0x05c5, - 0x05d1, 0x05e3, 0x05ec, 0x0604, 0x062f, 0x064d, 0x065f, 0x0675, - 0x0690, 0x06b5, 0x06ca, 0x06e9, 0x06fb, 0x0723, 0x0735, 0x074d, - // Entry 40 - 7F - 0x0765, 0x0793, 0x07ae, 0x07d7, 0x07ef, 0x080a, 0x0819, 0x083e, - 0x0859, 0x0868, 0x0883, 0x08a2, 0x08ba, 0x08c9, 0x08fd, 0x0924, - 0x094f, 0x0964, 0x0973, 0x099e, 0x09b6, 0x09ce, 0x09f3, 0x0a05, - 0x0a11, 0x0a2f, 0x0a4a, 0x0a62, 0x0a6e, 0x0a89, 0x0ab7, 0x0ac6, - 0x0b3d, 0x0b5b, 0x0b67, 0x0b83, 0x0b92, 0x0bf9, 0x0c57, 0x0c6f, - 0x0c8a, 0x0c96, 0x0ca5, 0x0cd3, 0x0cf1, 0x0d06, 0x0d18, 0x0d35, - 0x0d41, 0x0d95, 0x0da1, 0x0dad, 0x0dc2, 0x0dce, 0x0ddd, 0x0dec, - 0x0dfe, 0x0e0d, 0x0e1f, 0x0e46, 0x0e5e, 0x0e76, 0x0e8b, 0x0ebe, - // Entry 80 - BF - 0x0ee0, 0x0f05, 0x0f14, 0x0f3f, 0x0f5d, 0x0f69, 0x0f7b, 0x0f9a, - 0x0fb8, 0x0fd0, 0x0feb, 0x0ffd, 0x1018, 0x1036, 0x104b, 0x105d, - 0x1072, 0x1084, 0x109c, 0x10bd, 0x10df, 0x10fd, 0x112b, 0x1149, - 0x1155, 0x117f, 0x1197, 0x11f1, 0x1238, 0x1253, 0x1271, 0x128c, - 0x129e, 0x12b0, 0x12c2, 0x12d1, 0x12e9, 0x12fe, 0x1319, 0x1331, - 0x135c, 0x136b, 0x1390, 0x13ab, 0x13c6, 0x13de, 0x13f0, 0x13ff, - 0x140e, 0x141a, 0x143b, 0x1447, 0x1456, 0x1462, 0x1496, 0x14bf, - 0x14da, 0x14f5, 0x1507, 0x1546, 0x157a, 0x1599, 0x15d0, 0x15e8, - // Entry C0 - FF - 0x15f4, 0x160c, 0x1618, 0x1646, 0x165e, 0x1676, 0x168b, 0x1694, - 0x16a6, 0x16bc, 0x16ea, 0x16ff, 0x170e, 0x1720, 0x1738, 0x1757, - 0x1775, 0x17b4, 0x17d2, 0x17f1, 0x180d, 0x181f, 0x1837, 0x184c, - 0x186e, 0x18a4, 0x18c3, 0x18e5, 0x18f7, 0x1918, 0x1947, 0x198c, - 0x1995, 0x19df, 0x19eb, 0x1a00, 0x1a21, 0x1a36, 0x1a55, 0x1a7f, - 0x1a9d, 0x1aac, 0x1abe, 0x1af3, 0x1b05, 0x1b17, 0x1b32, 0x1b47, - 0x1b5c, 0x1b9f, 0x1bc4, 0x1bd9, 0x1c00, 0x1c1f, 0x1c6a, 0x1c88, - 0x1ccc, 0x1d09, 0x1d1e, 0x1d30, 0x1d62, 0x1d6e, 0x1d80, 0x1d89, - // Entry 100 - 13F - 0x1d9b, 0x1dc6, 0x1de1, 0x1e02, 0x1e2a, 0x1e39, 0x1e51, 0x1e76, - 0x1e9e, 0x1eb6, 0x1ee4, 0x1f06, 0x1f31, 0x1f5c, 0x1f81, 0x1faf, - 0x1fca, 0x1ff2, 0x200a, 0x202c, 0x2051, 0x2083, 0x20a8, 0x20cf, - 0x20ed, 0x212d, 0x214b, 0x215a, 0x2176, 0x219b, 0x21aa, 0x21cc, - 0x21ee, 0x2213, 0x2238, -} - -// Size: 3113 bytes -var hrRegionStr string = "" + - "Otok AscensionAndoraUjedinjeni Arapski EmiratiAfganistanAntigua i Barbud" + - "aAngvilaAlbanijaArmenijaNizozemski AntiliAngolaAntarktikaArgentinaAmeriÄ" + - "ka SamoaAustrijaAustralijaArubaOtoci AlandAzerbajdžanBosna i Hercegovina" + - "BarbadosBangladeÅ¡BelgijaBurkina FasoBugarskaBahreinBurundiBeninSveti Bar" + - "tolomejBermudaBrunejBolivijaKaripski otoci NizozemskeBrazilBahamiButanOt" + - "ok BouvetBocvanaBjelorusijaBelizeKanadaKokosovi (Keeling) OtociKongo - K" + - "inshasaSrednjoafriÄka RepublikaKongo - BrazzavilleÅ vicarskaObala Bjeloko" + - "stiCookovi OtociÄŒileKamerunKinaKolumbijaOtok ClippertonKostarikaKubaZele" + - "nortska RepublikaCuraçaoBožićni OtokCiparÄŒeÅ¡ka RepublikaNjemaÄkaDiego Ga" + - "rciaDžibutiDanskaDominikaDominikanska RepublikaAlžirCeuta i MelillaEkvad" + - "orEstonijaEgipatZapadna SaharaEritrejaÅ panjolskaEtiopijaEuropska unijaFi" + - "nskaFidžiFalklandski OtociMikronezijaFarski OtociFrancuskaGabonVelika Br" + - "itanijaGrenadaGruzijaFrancuska GvajanaGuernseyGanaGibraltarGrenlandGambi" + - "jaGvinejaGuadalupaEkvatorska GvinejaGrÄkaJužna Georgija i Južni SendviÄk" + - "i OtociGvatemalaGuamGvineja BisauGvajanaHong Kong PUP KinaOtoci Heard i " + - "McDonaldHondurasHrvatskaHaitiMaÄ‘arskaKanarski OtociIndonezijaIrskaIzrael" + - "Otok ManIndijaBritanski Indijskooceanski TeritorijIrakIranIslandItalijaJ" + - "erseyJamajkaJordanJapanKenijaKirgistanKambodžaKiribatiKomoriSveti Kristo" + - "for i NevisSjeverna KorejaJužna KorejaKuvajtKajmanski OtociKazahstanLaos" + - "LibanonSveta LucijaLihtenÅ¡tajnÅ ri LankaLiberijaLesotoLitvaLuksemburgLatv" + - "ijaLibijaMarokoMonakoMoldavijaCrna GoraSveti MartinMadagaskarMarÅ¡alovi O" + - "tociMakedonijaMaliMijanmar (Burma)MongolijaMakao PUP KinaSjeverni Marija" + - "nski OtociMartiniqueMauritanijaMontserratMaltaMauricijusMaldiviMalaviMek" + - "sikoMalezijaMozambikNamibijaNova KaledonijaNigerOtok NorfolkNigerijaNika" + - "ragvaNizozemskaNorveÅ¡kaNepalNauruNiueNovi ZelandOmanPanamaPeruFrancuska " + - "PolinezijaPapua Nova GvinejaFilipiniPakistanPoljskaSveti Petar i Mikelon" + - "Otoci PitcairnPortorikoPalestinsko PodruÄjePortugalPalauParagvajKatarOst" + - "ala oceanijaReunionRumunjskaSrbijaRusijaRuandaSaudijska ArabijaSalomonsk" + - "i OtociSejÅ¡eliSudanÅ vedskaSingapurSveta HelenaSlovenijaSvalbard i Jan Ma" + - "yenSlovaÄkaSijera LeoneSan MarinoSenegalSomalijaSurinamJužni SudanSveti " + - "Toma i PrincipSalvadorSint MaartenSirijaSvaziTristan da CunhaOtoci Turks" + - " i CaicosÄŒadFrancuske Južne i AntarktiÄke ZemljeTogoTajlandTadžikistanTo" + - "kelauIstoÄni TimorTurkmenistanTunisTongaTurskaTrinidad i TobagoTuvaluTaj" + - "vanTanzanijaUkrajinaUgandaMali udaljeni otoci SAD-aSjedinjene AmeriÄke D" + - "ržaveUrugvajUzbekistanSveta StolicaSveti Vincent i GrenadiniVenezuelaBri" + - "tanski DjeviÄanski OtociAmeriÄki DjeviÄanski OtociVijetnamVanuatuWallis " + - "i FutunaSamoaKosovoJemenMayotteJužnoafriÄka RepublikaZambijaZimbabvenepo" + - "znato podruÄjeSvijetAfrikaSjevernoameriÄki kontinentJužna AmerikaOceanij" + - "aZapadna AfrikaCentralna AmerikaIstoÄna AfrikaSjeverna AfrikaSrediÅ¡nja A" + - "frikaJužna AfrikaAmerikeSjeverna AmerikaKaribiIstoÄna AzijaJužna AzijaJu" + - "goistoÄna AzijaJužna EuropaAustralazijaMelanezijaMikronezijsko podruÄjeP" + - "olinezijaAzijaSrednja AzijaZapadna AzijaEuropaIstoÄna EuropaSjeverna Eur" + - "opaZapadna EuropaLatinska Amerika" - -// Size: 606 bytes, 291 elements -var hrRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000e, 0x0014, 0x002e, 0x0038, 0x0049, 0x0050, 0x0058, - 0x0060, 0x0071, 0x0077, 0x0081, 0x008a, 0x0099, 0x00a1, 0x00ab, - 0x00b0, 0x00bb, 0x00c7, 0x00da, 0x00e2, 0x00ec, 0x00f3, 0x00ff, - 0x0107, 0x010e, 0x0115, 0x011a, 0x012a, 0x0131, 0x0137, 0x013f, - 0x0158, 0x015e, 0x0164, 0x0169, 0x0174, 0x017b, 0x0186, 0x018c, - 0x0192, 0x01aa, 0x01ba, 0x01d3, 0x01e6, 0x01f0, 0x0200, 0x020d, - 0x0212, 0x0219, 0x021d, 0x0226, 0x0235, 0x023e, 0x0242, 0x0257, - 0x025f, 0x026d, 0x0272, 0x0283, 0x028c, 0x0298, 0x02a0, 0x02a6, - // Entry 40 - 7F - 0x02ae, 0x02c4, 0x02ca, 0x02d9, 0x02e0, 0x02e8, 0x02ee, 0x02fc, - 0x0304, 0x030f, 0x0317, 0x0325, 0x032b, 0x0331, 0x0342, 0x034d, - 0x0359, 0x0362, 0x0367, 0x0377, 0x037e, 0x0385, 0x0396, 0x039e, - 0x03a2, 0x03ab, 0x03b3, 0x03ba, 0x03c1, 0x03ca, 0x03dc, 0x03e2, - 0x040b, 0x0414, 0x0418, 0x0425, 0x042c, 0x043e, 0x0454, 0x045c, - 0x0464, 0x0469, 0x0472, 0x0480, 0x048a, 0x048f, 0x0495, 0x049d, - 0x04a3, 0x04c7, 0x04cb, 0x04cf, 0x04d5, 0x04dc, 0x04e2, 0x04e9, - 0x04ef, 0x04f4, 0x04fa, 0x0503, 0x050c, 0x0514, 0x051a, 0x0531, - // Entry 80 - BF - 0x0540, 0x054d, 0x0553, 0x0562, 0x056b, 0x056f, 0x0576, 0x0582, - 0x058e, 0x0598, 0x05a0, 0x05a6, 0x05ab, 0x05b5, 0x05bc, 0x05c2, - 0x05c8, 0x05ce, 0x05d7, 0x05e0, 0x05ec, 0x05f6, 0x0606, 0x0610, - 0x0614, 0x0624, 0x062d, 0x063b, 0x0654, 0x065e, 0x0669, 0x0673, - 0x0678, 0x0682, 0x0689, 0x068f, 0x0696, 0x069e, 0x06a6, 0x06ae, - 0x06bd, 0x06c2, 0x06ce, 0x06d6, 0x06df, 0x06e9, 0x06f2, 0x06f7, - 0x06fc, 0x0700, 0x070b, 0x070f, 0x0715, 0x0719, 0x072d, 0x073f, - 0x0747, 0x074f, 0x0756, 0x076b, 0x0779, 0x0782, 0x0797, 0x079f, - // Entry C0 - FF - 0x07a4, 0x07ac, 0x07b1, 0x07c0, 0x07c7, 0x07d0, 0x07d6, 0x07dc, - 0x07e2, 0x07f3, 0x0803, 0x080b, 0x0810, 0x0818, 0x0820, 0x082c, - 0x0835, 0x0849, 0x0852, 0x085e, 0x0868, 0x086f, 0x0877, 0x087e, - 0x088a, 0x089e, 0x08a6, 0x08b2, 0x08b8, 0x08bd, 0x08cd, 0x08e1, - 0x08e5, 0x090b, 0x090f, 0x0916, 0x0922, 0x0929, 0x0937, 0x0943, - 0x0948, 0x094d, 0x0953, 0x0964, 0x096a, 0x0970, 0x0979, 0x0981, - 0x0987, 0x09a0, 0x09bc, 0x09c3, 0x09cd, 0x09da, 0x09f3, 0x09fc, - 0x0a18, 0x0a34, 0x0a3c, 0x0a43, 0x0a52, 0x0a57, 0x0a5d, 0x0a62, - // Entry 100 - 13F - 0x0a69, 0x0a81, 0x0a88, 0x0a90, 0x0aa3, 0x0aa9, 0x0aaf, 0x0aca, - 0x0ad8, 0x0ae0, 0x0aee, 0x0aff, 0x0b0e, 0x0b1d, 0x0b2e, 0x0b3b, - 0x0b42, 0x0b52, 0x0b58, 0x0b66, 0x0b72, 0x0b84, 0x0b91, 0x0b9d, - 0x0ba7, 0x0bbe, 0x0bc8, 0x0bcd, 0x0bda, 0x0be7, 0x0bed, 0x0bfc, - 0x0c0b, 0x0c19, 0x0c29, -} - -// Size: 3361 bytes -var huRegionStr string = "" + - "Ascension-szigetAndorraEgyesült Arab EmirátusAfganisztánAntigua és Barbu" + - "daAnguillaAlbániaÖrményországHolland AntillákAngolaAntarktiszArgentínaAm" + - "erikai SzamoaAusztriaAusztráliaArubaÃ…land-szigetekAzerbajdzsánBosznia-He" + - "rcegovinaBarbadosBangladesBelgiumBurkina FasoBulgáriaBahreinBurundiBenin" + - "Saint-BarthélemyBermudaBruneiBolíviaHolland Karib-térségBrazíliaBahama-s" + - "zigetekBhutánBouvet-szigetBotswanaFehéroroszországBelizeKanadaKókusz-szi" + - "getekKongó - KinshasaKözép-afrikai KöztársaságKongó - BrazzavilleSvájcEl" + - "efántcsontpartCook-szigetekChileKamerunKínaKolumbiaClipperton-szigetCost" + - "a RicaKubaZöld-foki KöztársaságCuraçaoKarácsony-szigetCiprusCsehországNé" + - "metországDiego GarciaDzsibutiDániaDominikaDominikai KöztársaságAlgériaCe" + - "uta és MelillaEcuadorÉsztországEgyiptomNyugat-SzaharaEritreaSpanyolorszá" + - "gEtiópiaEurópai UnióFinnországFidzsi-szigetekFalkland-szigetekMikronézia" + - "Feröer-szigetekFranciaországGabonEgyesült KirályságGrenadaGrúziaFrancia " + - "GuyanaGuernseyGhánaGibraltárGrönlandGambiaGuineaGuadeloupeEgyenlítÅ‘i-Gui" + - "neaGörögországDéli-Georgia és Déli-Sandwich-szigetekGuatemalaGuamGuinea-" + - "BissauGuyanaHongkong SAR KínaHeard-sziget és McDonald-szigetekHondurasHo" + - "rvátországHaitiMagyarországKanári-szigetekIndonéziaÃrországIzraelMan-szi" + - "getIndiaBrit Indiai-óceáni TerületIrakIránIzlandOlaszországJerseyJamaica" + - "JordániaJapánKenyaKirgizisztánKambodzsaKiribatiComore-szigetekSaint Kitt" + - "s és NevisÉszak-KoreaDél-KoreaKuvaitKajmán-szigetekKazahsztánLaoszLibano" + - "nSanta LuciaLiechtensteinSrí LankaLibériaLesothoLitvániaLuxemburgLettors" + - "zágLíbiaMarokkóMonacoMoldovaMontenegróSaint MartinMadagaszkárMarshall-sz" + - "igetekMacedóniaMaliMianmar (Burma)MongóliaMakaó SAR KínaÉszaki Mariana-s" + - "zigetekMartiniqueMauritániaMontserratMáltaMauritiusMaldív-szigetekMalawi" + - "MexikóMalajziaMozambikNamíbiaÚj-KaledóniaNigerNorfolk-szigetNigériaNicar" + - "aguaHollandiaNorvégiaNepálNauruNiueÚj-ZélandOmánPanamaPeruFrancia Poliné" + - "ziaPápua Új-GuineaFülöp-szigetekPakisztánLengyelországSaint Pierre és Mi" + - "quelonPitcairn-szigetekPuerto RicoPalesztin TerületPortugáliaPalauParagu" + - "ayKatarKülsÅ‘-ÓceániaReunionRomániaSzerbiaOroszországRuandaSzaúd-ArábiaSa" + - "lamon-szigetekSeychelle-szigetekSzudánSvédországSzingapúrSzent IlonaSzlo" + - "véniaSpitzbergák és Jan Mayen-szigetekSzlovákiaSierra LeoneSan MarinoSze" + - "negálSzomáliaSurinameDél-SzudánSao Tomé és PríncipeSalvadorSint MaartenS" + - "zíriaSzváziföldTristan da CunhaTurks- és Caicos-szigetekCsádFrancia Déli" + - " TerületekTogoThaiföldTádzsikisztánTokelauKelet-TimorTürkmenisztánTunézi" + - "aTongaTörökországTrinidad és TobagoTuvaluTajvanTanzániaUkrajnaUgandaAmer" + - "ikai Csendes-óceáni SzigetekEgyesült ÃllamokUruguayÃœzbegisztánVatikánSai" + - "nt Vincent és a Grenadine-szigetekVenezuelaBrit Virgin-szigetekAmerikai " + - "Virgin-szigetekVietnamVanuatuWallis- és Futuna-szigetekSzamoaKoszovóJeme" + - "nMayotteDél-afrikai KöztársaságZambiaZimbabweIsmeretlen körzetVilágAfrik" + - "aÉszak-AmerikaDél-AmerikaÓceániaNyugat-AfrikaKözép-AmerikaKelet-AfrikaÉs" + - "zak-AfrikaKözép-AfrikaAfrika déli részeAmerikaAmerika északi részeKarib-" + - "térségKelet-ÃzsiaDél-ÃzsiaDélkelet-ÃzsiaDél-EurópaAusztrálázsiaMelanézia" + - "Mikronéziai régióPolinéziaÃzsiaKözép-ÃzsiaNyugat-ÃzsiaEurópaKelet-Európa" + - "Észak-EurópaNyugat-EurópaLatin-Amerika" - -// Size: 606 bytes, 291 elements -var huRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0010, 0x0017, 0x002f, 0x003b, 0x004e, 0x0056, 0x005e, - 0x006d, 0x007e, 0x0084, 0x008e, 0x0098, 0x00a7, 0x00af, 0x00ba, - 0x00bf, 0x00ce, 0x00db, 0x00ee, 0x00f6, 0x00ff, 0x0106, 0x0112, - 0x011b, 0x0122, 0x0129, 0x012e, 0x013f, 0x0146, 0x014c, 0x0154, - 0x016a, 0x0173, 0x0182, 0x0189, 0x0196, 0x019e, 0x01b0, 0x01b6, - 0x01bc, 0x01cc, 0x01dd, 0x01fb, 0x020f, 0x0215, 0x0226, 0x0233, - 0x0238, 0x023f, 0x0244, 0x024c, 0x025d, 0x0267, 0x026b, 0x0284, - 0x028c, 0x029d, 0x02a3, 0x02ae, 0x02bb, 0x02c7, 0x02cf, 0x02d5, - // Entry 40 - 7F - 0x02dd, 0x02f5, 0x02fd, 0x030e, 0x0315, 0x0321, 0x0329, 0x0337, - 0x033e, 0x034c, 0x0354, 0x0362, 0x036d, 0x037c, 0x038d, 0x0398, - 0x03a8, 0x03b6, 0x03bb, 0x03d0, 0x03d7, 0x03de, 0x03ec, 0x03f4, - 0x03fa, 0x0404, 0x040d, 0x0413, 0x0419, 0x0423, 0x0436, 0x0444, - 0x046d, 0x0476, 0x047a, 0x0487, 0x048d, 0x049f, 0x04c1, 0x04c9, - 0x04d7, 0x04dc, 0x04e9, 0x04f9, 0x0503, 0x050d, 0x0513, 0x051d, - 0x0522, 0x053f, 0x0543, 0x0548, 0x054e, 0x055a, 0x0560, 0x0567, - 0x0570, 0x0576, 0x057b, 0x0588, 0x0591, 0x0599, 0x05a8, 0x05bd, - // Entry 80 - BF - 0x05c9, 0x05d3, 0x05d9, 0x05e9, 0x05f4, 0x05f9, 0x0600, 0x060b, - 0x0618, 0x0622, 0x062a, 0x0631, 0x063a, 0x0643, 0x064e, 0x0654, - 0x065c, 0x0662, 0x0669, 0x0674, 0x0680, 0x068c, 0x069d, 0x06a7, - 0x06ab, 0x06ba, 0x06c3, 0x06d3, 0x06eb, 0x06f5, 0x0700, 0x070a, - 0x0710, 0x0719, 0x0729, 0x072f, 0x0736, 0x073e, 0x0746, 0x074e, - 0x075c, 0x0761, 0x076f, 0x0777, 0x0780, 0x0789, 0x0792, 0x0798, - 0x079d, 0x07a1, 0x07ac, 0x07b1, 0x07b7, 0x07bb, 0x07cd, 0x07de, - 0x07ee, 0x07f8, 0x0806, 0x081f, 0x0830, 0x083b, 0x084d, 0x0858, - // Entry C0 - FF - 0x085d, 0x0865, 0x086a, 0x087b, 0x0882, 0x088a, 0x0891, 0x089d, - 0x08a3, 0x08b1, 0x08c1, 0x08d3, 0x08da, 0x08e6, 0x08f0, 0x08fb, - 0x0905, 0x0928, 0x0932, 0x093e, 0x0948, 0x0951, 0x095a, 0x0962, - 0x096e, 0x0985, 0x098d, 0x0999, 0x09a0, 0x09ac, 0x09bc, 0x09d6, - 0x09db, 0x09f3, 0x09f7, 0x0a00, 0x0a0f, 0x0a16, 0x0a21, 0x0a30, - 0x0a38, 0x0a3d, 0x0a4b, 0x0a5e, 0x0a64, 0x0a6a, 0x0a73, 0x0a7a, - 0x0a80, 0x0aa2, 0x0ab4, 0x0abb, 0x0ac8, 0x0ad0, 0x0af6, 0x0aff, - 0x0b13, 0x0b2b, 0x0b32, 0x0b39, 0x0b54, 0x0b5a, 0x0b62, 0x0b67, - // Entry 100 - 13F - 0x0b6e, 0x0b89, 0x0b8f, 0x0b97, 0x0ba9, 0x0baf, 0x0bb5, 0x0bc3, - 0x0bcf, 0x0bd8, 0x0be5, 0x0bf4, 0x0c00, 0x0c0d, 0x0c1b, 0x0c2e, - 0x0c35, 0x0c4b, 0x0c59, 0x0c65, 0x0c70, 0x0c80, 0x0c8c, 0x0c9b, - 0x0ca5, 0x0cb9, 0x0cc3, 0x0cc9, 0x0cd7, 0x0ce4, 0x0ceb, 0x0cf8, - 0x0d06, 0x0d14, 0x0d21, -} - -// Size: 6314 bytes -var hyRegionStr string = "" + - "Õ€Õ¡Õ´Õ¢Õ¡Ö€Õ±Õ´Õ¡Õ¶ Õ¯Õ²Õ¦Õ«Ô±Õ¶Õ¤Õ¸Ö€Õ¡Õ„Õ«Õ¡ÖÕµÕ¡Õ¬ Ô±Ö€Õ¡Õ¢Õ¡Õ¯Õ¡Õ¶ Ô·Õ´Õ«Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€Ô±Ö†Õ²Õ¡Õ¶Õ½Õ¿Õ¡Õ¶Ô±Õ¶Õ¿Õ«Õ£Õ¸Ö‚Õ¡ Ö‡ " + - "Ô²Õ¡Ö€Õ¢Õ¸Ö‚Õ¤Õ¡Ô±Õ¶Õ£Õ«Õ¬Õ«Õ¡Ô±Õ¬Õ¢Õ¡Õ¶Õ«Õ¡Õ€Õ¡ÕµÕ¡Õ½Õ¿Õ¡Õ¶Ô±Õ¶Õ£Õ¸Õ¬Õ¡Ô±Õ¶Õ¿Õ¡Ö€Õ¯Õ¿Õ«Õ¤Õ¡Ô±Ö€Õ£Õ¥Õ¶Õ¿Õ«Õ¶Õ¡Ô±Õ´Õ¥Ö€Õ«Õ¯ÕµÕ¡Õ¶ ÕÕ¡Õ´Õ¸Õ¡Ô±" + - "Õ¾Õ½Õ¿Ö€Õ«Õ¡Ô±Õ¾Õ½Õ¿Ö€Õ¡Õ¬Õ«Õ¡Ô±Ö€Õ¸Ö‚Õ¢Õ¡Ô±Õ¬Õ¡Õ¶Õ¤ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô±Õ¤Ö€Õ¢Õ¥Õ»Õ¡Õ¶Ô²Õ¸Õ½Õ¶Õ«Õ¡ Ö‡ Õ€Õ¥Ö€ÖÕ¥Õ£Õ¸Õ¾Õ«Õ¶Õ¡Ô²Õ¡Ö€Õ¢Õ¡Õ¤" + - "Õ¸Õ½Ô²Õ¡Õ¶Õ£Õ¬Õ¡Õ¤Õ¥Õ·Ô²Õ¥Õ¬Õ£Õ«Õ¡Ô²Õ¸Ö‚Ö€Õ¯Õ«Õ¶Õ¡ Õ–Õ¡Õ½Õ¸Ô²Õ¸Ö‚Õ¬Õ²Õ¡Ö€Õ«Õ¡Ô²Õ¡Õ°Ö€Õ¥ÕµÕ¶Ô²Õ¸Ö‚Ö€Õ¸Ö‚Õ¶Õ¤Õ«Ô²Õ¥Õ¶Õ«Õ¶ÕÕ¸Ö‚Ö€Õ¢ Ô²Õ¡Ö€Õ©Õ¸" + - "Õ²Õ¸Õ´Õ¥Õ¸Õ½Õ« Õ¯Õ²Õ¦Õ«Ô²Õ¥Ö€Õ´Õ¸Ö‚Õ¤ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô²Ö€Õ¸Ö‚Õ¶Õ¥ÕµÔ²Õ¸Õ¬Õ«Õ¾Õ«Õ¡Ô¿Õ¡Ö€Õ«Õ¢ÕµÕ¡Õ¶ Õ†Õ«Õ¤Õ¥Ö€Õ¬Õ¡Õ¶Õ¤Õ¶Õ¥Ö€Ô²Ö€Õ¡Õ¦Õ«Õ¬" + - "Õ«Õ¡Ô²Õ¡Õ°Õ¡Õ´ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô²Õ¸Ö‚Õ©Õ¡Õ¶Ô²Õ¸Ö‚Õ¾Õ¥ Õ¯Õ²Õ¦Õ«Ô²Õ¸Õ¿Õ½Õ¾Õ¡Õ¶Õ¡Ô²Õ¥Õ¬Õ¡Õ¼Õ¸Ö‚Õ½Ô²Õ¥Õ¬Õ«Õ¦Ô¿Õ¡Õ¶Õ¡Õ¤Õ¡Ô¿Õ¸Õ¯Õ¸Õ½ÕµÕ¡Õ¶ (" + - "Õ”Õ«Õ¬Õ«Õ¶Õ£) Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô¿Õ¸Õ¶Õ£Õ¸ - Ô¿Õ«Õ¶Õ·Õ¡Õ½Õ¡Ô¿Õ¥Õ¶Õ¿Ö€Õ¸Õ¶Õ¡Õ¯Õ¡Õ¶ Ô±Ö†Ö€Õ«Õ¯ÕµÕ¡Õ¶ Õ€Õ¡Õ¶Ö€Õ¡ÕºÕ¥Õ¿Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Ô¿Õ¸Õ¶Õ£Õ¸" + - " - Ô²Ö€Õ¡Õ¦Õ¡Õ¾Õ«Õ¬Õ‡Õ¾Õ¥ÕµÖÕ¡Ö€Õ«Õ¡Õ“Õ²Õ¸Õ½Õ¯Ö€Õ« Ô±ÖƒÔ¿Õ¸Ö‚Õ¯Õ« Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ‰Õ«Õ¬Õ«Ô¿Õ¡Õ´Õ¥Ö€Õ¸Ö‚Õ¶Õ‰Õ«Õ¶Õ¡Õ½Õ¿Õ¡Õ¶Ô¿Õ¸Õ¬Õ¸Ö‚Õ´Õ¢Õ«Õ¡" + - "Õ”Õ¬Õ«ÖƒÕ¥Ö€Õ©Õ¸Õ¶ Õ¯Õ²Õ¦Õ«Ô¿Õ¸Õ½Õ¿Õ¡-ՌիկաԿուբաԿաբո ÕŽÕ¥Ö€Õ¤Õ¥Ô¿ÕµÕ¸Ö‚Ö€Õ¡Õ½Õ¡Õ¸Ô¾Õ¶Õ¶Õ¤ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Ô¿Õ«ÕºÖ€Õ¸Õ½Õ‰Õ¥Õ­Õ«Õ¡" + - "Ô³Õ¥Ö€Õ´Õ¡Õ¶Õ«Õ¡Ô´Õ«Õ¥Õ£Õ¸ Ô³Õ¡Ö€Õ½Õ«Õ¡Õ‹Õ«Õ¢Õ¸Ö‚Õ¿Õ«Ô´Õ¡Õ¶Õ«Õ¡Ô´Õ¸Õ´Õ«Õ¶Õ«Õ¯Õ¡Ô´Õ¸Õ´Õ«Õ¶Õ«Õ¯ÕµÕ¡Õ¶ Õ€Õ¡Õ¶Ö€Õ¡ÕºÕ¥Õ¿Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Ô±Õ¬ÕªÕ«Ö€" + - "ÕÕ¥Õ¸Ö‚Õ¿Õ¡ Ö‡ Õ„Õ¥Õ¬Õ«Õ¬ÕµÕ¡Ô·Õ¯Õ¾Õ¡Õ¤Õ¸Ö€Ô·Õ½Õ¿Õ¸Õ¶Õ«Õ¡ÔµÕ£Õ«ÕºÕ¿Õ¸Õ½Ô±Ö€Ö‡Õ´Õ¿ÕµÕ¡Õ¶ ÕÕ¡Õ°Õ¡Ö€Õ¡Ô·Ö€Õ«Õ¿Ö€Õ¥Õ¡Ô»Õ½ÕºÕ¡Õ¶Õ«Õ¡ÔµÕ©Õ¸Õ¾Õº" + - "Õ«Õ¡ÔµÕ¾Ö€Õ¸ÕºÕ¡Õ¯Õ¡Õ¶ Õ„Õ«Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ–Õ«Õ¶Õ¬Õ¡Õ¶Õ¤Õ«Õ¡Õ–Õ«Õ»Õ«Õ–Õ¸Õ¬Õ¯Õ¬Õ¥Õ¶Õ¤ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ„Õ«Õ¯Ö€Õ¸Õ¶Õ¥Õ¦Õ«Õ¡Õ–Õ¡Ö€Õ¥Ö€ÕµÕ¡Õ¶" + - " Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ–Ö€Õ¡Õ¶Õ½Õ«Õ¡Ô³Õ¡Õ¢Õ¸Õ¶Õ„Õ«Õ¡ÖÕµÕ¡Õ¬ Ô¹Õ¡Õ£Õ¡Õ¾Õ¸Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Ô³Ö€Õ¥Õ¶Õ¡Õ¤Õ¡ÕŽÖ€Õ¡Õ½Õ¿Õ¡Õ¶Õ–Ö€Õ¡Õ¶Õ½Õ«Õ¡Õ¯Õ¡Õ¶ Ô³Õ¾Õ«Õ¡Õ¶" + - "Õ¡Ô³Õ¥Ö€Õ¶Õ½Õ«Ô³Õ¡Õ¶Õ¡Õ‹Õ«Õ¢Ö€Õ¡Õ¬Õ©Õ¡Ö€Ô³Ö€Õ¥Õ¶Õ¬Õ¡Õ¶Õ¤Õ«Õ¡Ô³Õ¡Õ´Õ¢Õ«Õ¡Ô³Õ¾Õ«Õ¶Õ¥Õ¡Ô³Õ¾Õ¡Õ¤Õ¥Õ¬Õ¸Ö‚ÕºÕ¡Õ€Õ¡Õ½Õ¡Ö€Õ¡Õ¯Õ¡Õ®Õ¡ÕµÕ«Õ¶ Ô³Õ¾Õ«Õ¶Õ¥" + - "Õ¡Õ€Õ¸Ö‚Õ¶Õ¡Õ½Õ¿Õ¡Õ¶Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ Õ‹Õ¸Ö€Õ»Õ«Õ¡ Ö‡ Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ ÕÕ¥Õ¶Õ¤Õ¾Õ«Õ¹ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô³Õ¾Õ¡Õ¿Õ¥Õ´Õ¡Õ¬Õ¡Ô³Õ¸Ö‚Õ¡Õ´" + - "Ô³Õ¾Õ«Õ¶Õ¥Õ¡-Ô²Õ«Õ½Õ¡Õ¸Ö‚Ô³Õ¡ÕµÕ¡Õ¶Õ¡Õ€Õ¸Õ¶Õ¯Õ¸Õ¶Õ£Õ« Õ€ÕŽÕ‡Õ€Õ¥Ö€Õ¤ Õ¯Õ²Õ¦Õ« Ö‡ Õ„Õ¡Õ¯Ô´Õ¸Õ¶Õ¡Õ¬Õ¤Õ« Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ€Õ¸Õ¶Õ¤Õ¸Ö‚Ö€Õ¡Õ½Ô½" + - "Õ¸Ö€Õ¾Õ¡Õ©Õ«Õ¡Õ€Õ¡Õ«Õ©Õ«Õ€Õ¸Ö‚Õ¶Õ£Õ¡Ö€Õ«Õ¡Ô¿Õ¡Õ¶Õ¡Ö€ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô»Õ¶Õ¤Õ¸Õ¶Õ¥Õ¦Õ«Õ¡Ô»Õ¼Õ¬Õ¡Õ¶Õ¤Õ«Õ¡Ô»Õ½Ö€Õ¡ÕµÕ¥Õ¬Õ„Õ¥Õ¶ Õ¯Õ²Õ¦Õ«Õ€Õ¶" + - "Õ¤Õ¯Õ¡Õ½Õ¿Õ¡Õ¶Õ€Õ¶Õ¤Õ¯Õ¡Õ¯Õ¡Õ¶ Õ•Õ¾Õ¯Õ«Õ¡Õ¶Õ¸Õ½Õ¸Ö‚Õ´ Ô²Ö€Õ«Õ¿Õ¡Õ¶Õ¡Õ¯Õ¡Õ¶ ÕÕ¡Ö€Õ¡Õ®Ö„Ô»Ö€Õ¡Ö„Ô»Ö€Õ¡Õ¶Ô»Õ½Õ¬Õ¡Õ¶Õ¤Õ«Õ¡Ô»Õ¿Õ¡Õ¬Õ«Õ¡Õ‹Õ¥Ö€Õ½" + - "Õ«Õ‹Õ¡Õ´Õ¡ÕµÕ¯Õ¡Õ€Õ¸Ö€Õ¤Õ¡Õ¶Õ¡Õ¶ÕƒÕ¡ÕºÕ¸Õ¶Õ«Õ¡Õ”Õ¥Õ¶Õ«Õ¡Õ‚Ö€Õ²Õ¦Õ½Õ¿Õ¡Õ¶Ô¿Õ¡Õ´Õ¢Õ¸Õ»Õ¡Ô¿Õ«Ö€Õ«Õ¢Õ¡Õ¿Õ«Ô¿Õ¸Õ´Õ¸Ö€ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€ÕÕ¥Õ¶Õ©" + - " Õ”Õ«Õ©Õ½ Ö‡ Õ†Ö‡Õ«Õ½Õ€ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ Ô¿Õ¸Ö€Õ¥Õ¡Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ Ô¿Õ¸Ö€Õ¥Õ¡Õ”Õ¸Ö‚Õ¾Õ¥ÕµÕ©Ô¿Õ¡ÕµÕ´Õ¡Õ¶ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ‚Õ¡Õ¦Õ¡" + - "Õ­Õ½Õ¿Õ¡Õ¶Ô¼Õ¡Õ¸Õ½Ô¼Õ«Õ¢Õ¡Õ¶Õ¡Õ¶ÕÕ¥Õ¶Õ© Ô¼ÕµÕ¸Ö‚Õ½Õ«Õ¡Ô¼Õ«Õ­Õ¿Õ¥Õ¶Õ·Õ¿Õ¥ÕµÕ¶Õ‡Ö€Õ« Ô¼Õ¡Õ¶Õ¯Õ¡Ô¼Õ«Õ¢Õ¥Ö€Õ«Õ¡Ô¼Õ¥Õ½Õ¸Õ¿Õ¸Ô¼Õ«Õ¿Õ¾Õ¡Ô¼ÕµÕ¸Ö‚Ö„" + - "Õ½Õ¥Õ´Õ¢Õ¸Ö‚Ö€Õ£Ô¼Õ¡Õ¿Õ¾Õ«Õ¡Ô¼Õ«Õ¢Õ«Õ¡Õ„Õ¡Ö€Õ¸Õ¯Õ¸Õ„Õ¸Õ¶Õ¡Õ¯Õ¸Õ„Õ¸Õ¬Õ¤Õ¸Õ¾Õ¡Õ‰Õ¥Õ¼Õ¶Õ¸Õ£Õ¸Ö€Õ«Õ¡ÕÕ¥Õ¶ Õ„Õ¡Ö€Õ¿Õ¥Õ¶Õ„Õ¡Õ¤Õ¡Õ£Õ¡Õ½Õ¯Õ¡Ö€Õ„Õ¡Ö€" + - "Õ·Õ¡Õ¬ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ„Õ¡Õ¯Õ¥Õ¤Õ¸Õ¶Õ«Õ¡Õ„Õ¡Õ¬Õ«Õ„ÕµÕ¡Õ¶Õ´Õ¡ (Ô²Õ«Ö€Õ´Õ¡)Õ„Õ¸Õ¶Õ²Õ¸Õ¬Õ«Õ¡Õ‰Õ«Õ¶Õ¡Õ½Õ¿Õ¡Õ¶Õ« Õ„Õ¡Õ¯Õ¡Õ¸ Õ€ÕŽÕ‡Õ€ÕµÕ¸" + - "Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ Õ„Õ¡Ö€Õ«Õ¡Õ¶ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ„Õ¡Ö€Õ¿Õ«Õ¶Õ«Õ¯Õ¡Õ„Õ¡Õ¾Ö€Õ«Õ¿Õ¡Õ¶Õ«Õ¡Õ„Õ¸Õ¶Õ¿Õ½Õ¥Ö€Õ¡Õ¿Õ„Õ¡Õ¬Õ©Õ¡Õ„Õ¡Õ¾Ö€Õ«Õ¯Õ«Õ¸Õ½Õ„Õ¡Õ¬" + - "Õ¤Õ«Õ¾Õ¶Õ¥Ö€Õ„Õ¡Õ¬Õ¡Õ¾Õ«Õ„Õ¥Ö„Õ½Õ«Õ¯Õ¡Õ„Õ¡Õ¬Õ¡ÕµÕ¦Õ«Õ¡Õ„Õ¸Õ¦Õ¡Õ´Õ¢Õ«Õ¯Õ†Õ¡Õ´Õ«Õ¢Õ«Õ¡Õ†Õ¸Ö€ Ô¿Õ¡Õ¬Õ¥Õ¤Õ¸Õ¶Õ«Õ¡Õ†Õ«Õ£Õ¥Ö€Õ†Õ¸Ö€Ö†Õ¸Õ¬Õ¯ Õ¯Õ²Õ¦" + - "Õ«Õ†Õ«Õ£Õ¥Ö€Õ«Õ¡Õ†Õ«Õ¯Õ¡Ö€Õ¡Õ£Õ¸Ö‚Õ¡Õ†Õ«Õ¤Õ¥Ö€Õ¬Õ¡Õ¶Õ¤Õ¥Ö€Õ†Õ¸Ö€Õ¾Õ¥Õ£Õ«Õ¡Õ†Õ¥ÕºÕ¡Õ¬Õ†Õ¡Õ¸Ö‚Ö€Õ¸Ö‚Õ†Õ«Õ¸Ö‚Õ¥Õ†Õ¸Ö€ Ô¶Õ¥Õ¬Õ¡Õ¶Õ¤Õ«Õ¡Õ•Õ´Õ¡Õ¶ÕŠ" + - "Õ¡Õ¶Õ¡Õ´Õ¡ÕŠÕ¥Ö€Õ¸Ö‚Õ–Ö€Õ¡Õ¶Õ½Õ«Õ¡Õ¯Õ¡Õ¶ ÕŠÕ¸Õ¬Õ«Õ¶Õ¥Õ¦Õ«Õ¡ÕŠÕ¡ÕºÕ¸Ö‚Õ¡ Õ†Õ¸Ö€ Ô³Õ¾Õ«Õ¶Õ¥Õ¡Õ–Õ«Õ¬Õ«ÕºÕ«Õ¶Õ¶Õ¥Ö€ÕŠÕ¡Õ¯Õ«Õ½Õ¿Õ¡Õ¶Ô¼Õ¥Õ°Õ¡Õ½Õ¿" + - "Õ¡Õ¶ÕÕ¥Õ¶ ÕŠÕ«Õ¥Ö€ Ö‡ Õ„Õ«Õ¯Õ¥Õ¬Õ¸Õ¶ÕŠÕ«Õ¿Õ¯Õ¥Õ¼Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€ÕŠÕ¸Ö‚Õ¥Ö€Õ¿Õ¸ ՌիկոՊաղեստինյան Õ¿Õ¡Ö€Õ¡Õ®Ö„Õ¶Õ¥Ö€ÕŠÕ¸Ö€" + - "Õ¿Õ¸Ö‚Õ£Õ¡Õ¬Õ«Õ¡ÕŠÕ¡Õ¬Õ¡Õ¸Ö‚ÕŠÕ¡Ö€Õ¡Õ£Õ¾Õ¡ÕµÔ¿Õ¡Õ¿Õ¡Ö€Ô±Ö€Õ¿Õ¡Ö„Õ«Õ¶ ՕվկիանիաՌեյունիոնՌումինիաÕերբիաՌուսա" + - "ստանՌուանդաÕÕ¡Õ¸Ö‚Õ¤ÕµÕ¡Õ¶ Ô±Ö€Õ¡Õ¢Õ«Õ¡ÕÕ¸Õ²Õ¸Õ´Õ¸Õ¶ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€ÕÕ¥ÕµÕ·Õ¥Õ¬ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€ÕÕ¸Ö‚Õ¤Õ¡Õ¶Õ‡Õ¾Õ¥Õ¤" + - "Õ«Õ¡ÕÕ«Õ¶Õ£Õ¡ÕºÕ¸Ö‚Ö€ÕÕ¸Ö‚Ö€Õ¢ Õ€Õ¥Õ²Õ«Õ¶Õ¥Õ« Õ¯Õ²Õ¦Õ«ÕÕ¬Õ¸Õ¾Õ¥Õ¶Õ«Õ¡ÕÕ¾Õ¡Õ¬Õ¢Õ¡Ö€Õ¤ Ö‡ Õ…Õ¡Õ¶-Õ„Õ¡ÕµÕ¥Õ¶ÕÕ¬Õ¸Õ¾Õ¡Õ¯Õ«Õ¡ÕÕµÕ¥Ö€Õ¡-" + - "Ô¼Õ¥Õ¸Õ¶Õ¥ÕÕ¡Õ¶ Õ„Õ¡Ö€Õ«Õ¶Õ¸ÕÕ¥Õ¶Õ¥Õ£Õ¡Õ¬ÕÕ¸Õ´Õ¡Õ¬Õ«ÕÕ¸Ö‚Ö€Õ«Õ¶Õ¡Õ´Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ ÕÕ¸Ö‚Õ¤Õ¡Õ¶ÕÕ¡Õ¶ ÕÕ¸Õ´Õ¥ Ö‡ ÕŠÖ€Õ«Õ¶Õ½Õ«ÕºÕ«" + - "ÕÕ¡Õ¬Õ¾Õ¡Õ¤Õ¸Ö€ÕÕ«Õ¶Õ¿ Õ„Õ¡Ö€Õ¿Õ¥Õ¶ÕÕ«Ö€Õ«Õ¡ÕÕ¾Õ¡Õ¦Õ«Õ¬Õ¥Õ¶Õ¤ÕÖ€Õ«Õ½Õ¿Õ¡Õ¶ Õ¤Õ¡ Ô¿Õ¸Ö‚Õ¶ÕµÕ¡ÕÕ¥Ö€Õ¯Õ½ Ö‡ Ô¿Õ¡ÕµÕ¯Õ¸Õ½ Õ¯Õ²Õ¦Õ«Õ¶Õ¥" + - "Ö€Õ‰Õ¡Õ¤Õ–Ö€Õ¡Õ¶Õ½Õ«Õ¡Õ¯Õ¡Õ¶ Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ ÕÕ¡Ö€Õ¡Õ®Ö„Õ¶Õ¥Ö€ÕÕ¸Õ£Õ¸Ô¹Õ¡Õ«Õ¬Õ¡Õ¶Õ¤ÕÕ¡Õ»Õ«Õ¯Õ½Õ¿Õ¡Õ¶ÕÕ¸Õ¯Õ¥Õ¬Õ¡Õ¸Ö‚Ô¹Õ«Õ´Õ¸Ö€-Ô¼Õ¥Õ½" + - "Õ¿Õ¥Ô¹Õ¸Ö‚Ö€Ö„Õ´Õ¥Õ¶Õ½Õ¿Õ¡Õ¶Ô¹Õ¸Ö‚Õ¶Õ«Õ½ÕÕ¸Õ¶Õ£Õ¡Ô¹Õ¸Ö‚Ö€Ö„Õ«Õ¡ÕÖ€Õ«Õ¶Õ«Õ¤Õ¡Õ¤ Ö‡ ÕÕ¸Õ¢Õ¡Õ£Õ¸ÕÕ¸Ö‚Õ¾Õ¡Õ¬Õ¸Ö‚Ô¹Õ¡ÕµÕ¾Õ¡Õ¶ÕÕ¡Õ¶Õ¦Õ¡Õ¶Õ«Õ¡" + - "ÕˆÖ‚Õ¯Ö€Õ¡Õ«Õ¶Õ¡ÕˆÖ‚Õ£Õ¡Õ¶Õ¤Õ¡Ô±Ö€Õ¿Õ¡Ö„Õ«Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€ (Ô±Õ„Õ†)Ô±Õ´Õ¥Ö€Õ«Õ¯Õ¡ÕµÕ« Õ„Õ«Õ¡ÖÕµÕ¡Õ¬ Õ†Õ¡Õ°Õ¡Õ¶Õ£Õ¶Õ¥Ö€ÕˆÖ‚Ö€Õ¸Ö‚Õ£Õ¾Õ¡" + - "ÕµÕˆÖ‚Õ¦Õ¢Õ¥Õ¯Õ½Õ¿Õ¡Õ¶ÕŽÕ¡Õ¿Õ«Õ¯Õ¡Õ¶ Ö„Õ¡Õ²Õ¡Ö„-ÕºÕ¥Õ¿Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶ÕÕ¥Õ¶Õ© ÕŽÕ«Õ½Õ¥Õ¶Õ¿ Ö‡ Ô³Ö€Õ¥Õ¶Õ¡Õ¤Õ«Õ¶Õ¶Õ¥Ö€ÕŽÕ¥Õ¶Õ¥Õ½Õ¸Ö‚Õ¥Õ¬Õ¡Ô²" + - "Ö€Õ«Õ¿Õ¡Õ¶Õ¡Õ¯Õ¡Õ¶ ÕŽÕ«Ö€Õ»Õ«Õ¶ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô±Õ´Õ¥Ö€Õ«Õ¯ÕµÕ¡Õ¶ ÕŽÕ«Ö€Õ»Õ«Õ¶ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€ÕŽÕ«Õ¥Õ¿Õ¶Õ¡Õ´ÕŽÕ¡Õ¶Õ¸Ö‚Õ¡Õ¿Õ¸Ö‚Õˆ" + - "Ö‚Õ¸Õ¬Õ«Õ½ Ö‡ Õ–Õ¸Ö‚Õ¿Õ¸Ö‚Õ¶Õ¡ÕÕ¡Õ´Õ¸Õ¡Ô¿Õ¸Õ½Õ¸Õ¾Õ¸ÔµÕ´Õ¥Õ¶Õ„Õ¡ÕµÕ¸Õ¿Õ€Õ¡Ö€Õ¡Õ¾Õ¡Ö†Ö€Õ«Õ¯ÕµÕ¡Õ¶ Õ€Õ¡Õ¶Ö€Õ¡ÕºÕ¥Õ¿Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Ô¶Õ¡Õ´Õ¢Õ«Õ¡" + - "Ô¶Õ«Õ´Õ¢Õ¡Õ¢Õ¾Õ¥Ô±Õ¶Õ°Õ¡ÕµÕ¿ Õ¿Õ¡Ö€Õ¡Õ®Õ¡Õ·Ö€Õ»Õ¡Õ¶Ô±Õ·Õ­Õ¡Ö€Õ°Ô±Ö†Ö€Õ«Õ¯Õ¡Õ€ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ Ô±Õ´Õ¥Ö€Õ«Õ¯Õ¡Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ Ô±Õ´Õ¥Ö€" + - "Õ«Õ¯Õ¡Õ•Õ¾Õ¯Õ«Õ¡Õ¶Õ«Õ¡Ô±Ö€Ö‡Õ´Õ¿ÕµÕ¡Õ¶ Ô±Ö†Ö€Õ«Õ¯Õ¡Ô¿Õ¥Õ¶Õ¿Ö€Õ¸Õ¶Õ¡Õ¯Õ¡Õ¶ Ô±Õ´Õ¥Ö€Õ«Õ¯Õ¡Ô±Ö€Ö‡Õ¥Õ¬ÕµÕ¡Õ¶ Ô±Ö†Ö€Õ«Õ¯Õ¡Õ€ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶" + - " Ô±Ö†Ö€Õ«Õ¯Õ¡Ô¿Õ¥Õ¶Õ¿Ö€Õ¸Õ¶Õ¡Õ¯Õ¡Õ¶ Ô±Ö†Ö€Õ«Õ¯Õ¡Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ Ô±Ö†Ö€Õ«Õ¯Õ¡Ô±Õ´Õ¥Ö€Õ«Õ¯Õ¡Õ€ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ Ô±Õ´Õ¥Ö€Õ«Õ¯Õ¡ - Õ„Õ¥" + - "Ö„Õ½Õ«Õ¯Õ¡ÕµÕ«Ö Õ°ÕµÕ¸Ö‚Õ½Õ«Õ½Ô¿Õ¡Ö€Õ«Õ¢ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô±Ö€Ö‡Õ¥Õ¬ÕµÕ¡Õ¶ Ô±Õ½Õ«Õ¡Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ Ô±Õ½Õ«Õ¡Õ€Õ¡Ö€Õ¡Õ¾-Ô±Ö€Ö‡Õ¥Õ¬Õµ" + - "Õ¡Õ¶ Ô±Õ½Õ«Õ¡Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ ÔµÕ¾Ö€Õ¸ÕºÕ¡Ô±Õ¾Õ½Õ¿Ö€Õ¡Õ¬Õ¡Õ½Õ«Õ¡Õ„Õ¡Õ¬Õ¡Õ¶Õ¥Õ¦Õ«Õ¡Õ„Õ«Õ¯Ö€Õ¸Õ¶Õ¥Õ¦Õ«Õ¡ÕµÕ« Õ¿Õ¡Ö€Õ¡Õ®Õ¡Õ·Ö€Õ»Õ¡Õ¶ÕŠÕ¸Õ¬Õ«" + - "Õ¶Õ¥Õ¦Õ«Õ¡Ô±Õ½Õ«Õ¡Ô¿Õ¥Õ¶Õ¿Ö€Õ¸Õ¶Õ¡Õ¯Õ¡Õ¶ Ô±Õ½Õ«Õ¡Ô±Ö€Ö‡Õ´Õ¿ÕµÕ¡Õ¶ Ô±Õ½Õ«Õ¡ÔµÕ¾Ö€Õ¸ÕºÕ¡Ô±Ö€Ö‡Õ¥Õ¬ÕµÕ¡Õ¶ ÔµÕ¾Ö€Õ¸ÕºÕ¡Õ€ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ " + - "ÔµÕ¾Ö€Õ¸ÕºÕ¡Ô±Ö€Ö‡Õ´Õ¿ÕµÕ¡Õ¶ ÔµÕ¾Ö€Õ¸ÕºÕ¡Ô¼Õ¡Õ¿Õ«Õ¶Õ¡Õ¯Õ¡Õ¶ Ô±Õ´Õ¥Ö€Õ«Õ¯Õ¡" - -// Size: 606 bytes, 291 elements -var hyRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x001d, 0x0029, 0x0065, 0x0077, 0x009b, 0x00a9, 0x00b7, - 0x00c7, 0x00c7, 0x00d3, 0x00e7, 0x00f9, 0x0116, 0x0124, 0x0136, - 0x0142, 0x0161, 0x0171, 0x0197, 0x01a7, 0x01b9, 0x01c5, 0x01de, - 0x01f0, 0x01fe, 0x0210, 0x021a, 0x0246, 0x0269, 0x0277, 0x0285, - 0x02ae, 0x02be, 0x02dd, 0x02e9, 0x02fc, 0x030c, 0x031c, 0x0326, - 0x0332, 0x0360, 0x037b, 0x03c1, 0x03de, 0x03f0, 0x0403, 0x041c, - 0x0424, 0x0434, 0x0444, 0x0456, 0x0471, 0x0484, 0x048e, 0x04a1, - 0x04b3, 0x04ca, 0x04d6, 0x04e0, 0x04f0, 0x0507, 0x0515, 0x051f, - // Entry 40 - 7F - 0x052f, 0x0562, 0x056c, 0x058a, 0x0598, 0x05a6, 0x05b4, 0x05d1, - 0x05df, 0x05ed, 0x05fb, 0x0620, 0x0632, 0x063a, 0x065f, 0x0673, - 0x0692, 0x06a0, 0x06aa, 0x06d5, 0x06e3, 0x06f1, 0x0712, 0x071e, - 0x0726, 0x0738, 0x074c, 0x0758, 0x0764, 0x0778, 0x079f, 0x07b1, - 0x080a, 0x081c, 0x0826, 0x083f, 0x084b, 0x0862, 0x089a, 0x08ac, - 0x08bc, 0x08c6, 0x08d8, 0x08f7, 0x0909, 0x0919, 0x0927, 0x0936, - 0x0948, 0x0991, 0x0999, 0x09a1, 0x09b1, 0x09bd, 0x09c7, 0x09d5, - 0x09e5, 0x09f3, 0x09fd, 0x0a0d, 0x0a1b, 0x0a2b, 0x0a4a, 0x0a67, - // Entry 80 - BF - 0x0a88, 0x0aa5, 0x0ab3, 0x0ad4, 0x0ae6, 0x0aee, 0x0afc, 0x0b13, - 0x0b29, 0x0b3a, 0x0b48, 0x0b54, 0x0b5e, 0x0b78, 0x0b84, 0x0b8e, - 0x0b9a, 0x0ba6, 0x0bb4, 0x0bc8, 0x0bdb, 0x0bef, 0x0c10, 0x0c22, - 0x0c2a, 0x0c43, 0x0c53, 0x0c77, 0x0caf, 0x0cc1, 0x0cd5, 0x0ce7, - 0x0cf1, 0x0d03, 0x0d15, 0x0d21, 0x0d2f, 0x0d3f, 0x0d4f, 0x0d5d, - 0x0d76, 0x0d80, 0x0d97, 0x0da5, 0x0db9, 0x0dcf, 0x0ddf, 0x0de9, - 0x0df7, 0x0e01, 0x0e18, 0x0e20, 0x0e2c, 0x0e36, 0x0e5d, 0x0e7d, - 0x0e91, 0x0ea1, 0x0eb1, 0x0ed2, 0x0eef, 0x0f06, 0x0f2f, 0x0f45, - // Entry C0 - FF - 0x0f51, 0x0f61, 0x0f6b, 0x0f8a, 0x0f9c, 0x0fac, 0x0fb8, 0x0fca, - 0x0fd8, 0x0ff5, 0x1018, 0x1039, 0x1045, 0x1051, 0x1063, 0x1085, - 0x1095, 0x10ba, 0x10ca, 0x10df, 0x10f2, 0x1100, 0x110c, 0x111c, - 0x113b, 0x115e, 0x116e, 0x1183, 0x118d, 0x119f, 0x11bf, 0x11e8, - 0x11ee, 0x1228, 0x1230, 0x123e, 0x1250, 0x1260, 0x1275, 0x128d, - 0x1299, 0x12a3, 0x12b1, 0x12d1, 0x12e1, 0x12ed, 0x12fd, 0x130d, - 0x131b, 0x1341, 0x1375, 0x1387, 0x139b, 0x13c9, 0x13f8, 0x140c, - 0x1442, 0x1476, 0x1484, 0x1496, 0x14b6, 0x14c0, 0x14cc, 0x14d4, - // Entry 100 - 13F - 0x14de, 0x1517, 0x1523, 0x1533, 0x1556, 0x1562, 0x156e, 0x1593, - 0x15b4, 0x15c4, 0x15e1, 0x1606, 0x1623, 0x1646, 0x1669, 0x1688, - 0x1696, 0x16e1, 0x1700, 0x1719, 0x1734, 0x1758, 0x1777, 0x178d, - 0x179f, 0x17ce, 0x17e0, 0x17e8, 0x1807, 0x1820, 0x182c, 0x1849, - 0x186c, 0x1889, 0x18aa, -} - -// Size: 2965 bytes -var idRegionStr string = "" + - "Pulau AscensionAndorraUni Emirat ArabAfganistanAntigua dan BarbudaAnguil" + - "laAlbaniaArmeniaAntilla BelandaAngolaAntarktikaArgentinaSamoa AmerikaAus" + - "triaAustraliaArubaKepulauan AlandAzerbaijanBosnia dan HerzegovinaBarbado" + - "sBangladeshBelgiaBurkina FasoBulgariaBahrainBurundiBeninSaint Barthelemy" + - "BermudaBruneiBoliviaKaribia BelandaBrasilBahamaBhutanPulau BouvetBotswan" + - "aBelarusBelizeKanadaKepulauan CocosKongo - KinshasaRepublik Afrika Tenga" + - "hKongo - BrazzavilleSwissCote d’IvoireKepulauan CookCileKamerunChinaKolo" + - "mbiaPulau ClippertonKosta RikaKubaTanjung VerdeCuraçaoPulau ChristmasSip" + - "rusRepublik CheskaJermanDiego GarciaJibutiDenmarkDominikaRepublik Domini" + - "kaAljazairCeuta dan MelillaEkuadorEstoniaMesirSahara BaratEritreaSpanyol" + - "EtiopiaUni EropaFinlandiaFijiKepulauan MalvinasMikronesiaKepulauan Faroe" + - "PrancisGabonInggrisGrenadaGeorgiaGuyana PrancisGuernseyGhanaGibraltarGri" + - "nlandiaGambiaGuineaGuadeloupeGuinea EkuatorialYunaniGeorgia Selatan & Ke" + - "p. Sandwich SelatanGuatemalaGuamGuinea-BissauGuyanaHong Kong SAR ChinaPu" + - "lau Heard dan Kepulauan McDonaldHondurasKroasiaHaitiHungariaKepulauan Ca" + - "naryIndonesiaIrlandiaIsraelPulau ManIndiaWilayah Inggris di Samudra Hind" + - "iaIrakIranIslandiaItaliaJerseyJamaikaYordaniaJepangKenyaKirgistanKamboja" + - "KiribatiKomoroSaint Kitts dan NevisKorea UtaraKorea SelatanKuwaitKepulau" + - "an CaymanKazakstanLaosLebanonSaint LuciaLiechtensteinSri LankaLiberiaLes" + - "othoLituaniaLuksemburgLatviaLibiaMarokoMonakoMoldovaMontenegroSaint Mart" + - "inMadagaskarKepulauan MarshallMakedoniaMaliMyanmar (Burma)MongoliaMakau " + - "SAR ChinaKepulauan Mariana UtaraMartinikMauritaniaMontserratMaltaMauriti" + - "usMaladewaMalawiMeksikoMalaysiaMozambikNamibiaKaledonia BaruNigerKepulau" + - "an NorfolkNigeriaNikaraguaBelandaNorwegiaNepalNauruNiueSelandia BaruOman" + - "PanamaPeruPolinesia PrancisPapua NuginiFilipinaPakistanPolandiaSaint Pie" + - "rre dan MiquelonKepulauan PitcairnPuerto RikoWilayah PalestinaPortugalPa" + - "lauParaguayQatarOseania LuarRéunionRumaniaSerbiaRusiaRwandaArab SaudiKep" + - "ulauan SolomonSeychellesSudanSwediaSingapuraSaint HelenaSloveniaKepulaua" + - "n Svalbard dan Jan MayenSlovakiaSierra LeoneSan MarinoSenegalSomaliaSuri" + - "nameSudan SelatanSao Tome dan PrincipeEl SalvadorSint MaartenSuriahSwazi" + - "landTristan da CunhaKepulauan Turks dan CaicosCadWilayah Kutub Selatan P" + - "rancisTogoThailandTajikistanTokelauTimor LesteTurkimenistanTunisiaTongaT" + - "urkiTrinidad dan TobagoTuvaluTaiwanTanzaniaUkrainaUgandaKepulauan Terlua" + - "r A.S.Amerika SerikatUruguayUzbekistanVatikanSaint Vincent dan Grenadine" + - "sVenezuelaKepulauan Virgin InggrisKepulauan Virgin A.S.VietnamVanuatuKep" + - "ulauan Wallis dan FutunaSamoaKosovoYamanMayotteAfrika SelatanZambiaZimba" + - "bweWilayah Tidak DikenalDuniaAfrikaAmerika UtaraAmerika SelatanOseaniaAf" + - "rika BaratAmerika TengahAfrika TimurAfrika UtaraAfrika TengahAfrika Bagi" + - "an SelatanAmerikaAmerika Bagian UtaraKepulauan KaribiaAsia TimurAsia Sel" + - "atanAsia TenggaraEropa SelatanAustralasiaMelanesiaWilayah MikronesiaPoli" + - "nesiaAsiaAsia TengahAsia BaratEropaEropa TimurEropa UtaraEropa BaratAmer" + - "ika Latin" - -// Size: 606 bytes, 291 elements -var idRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000f, 0x0016, 0x0025, 0x002f, 0x0042, 0x004a, 0x0051, - 0x0058, 0x0067, 0x006d, 0x0077, 0x0080, 0x008d, 0x0094, 0x009d, - 0x00a2, 0x00b1, 0x00bb, 0x00d1, 0x00d9, 0x00e3, 0x00e9, 0x00f5, - 0x00fd, 0x0104, 0x010b, 0x0110, 0x0120, 0x0127, 0x012d, 0x0134, - 0x0143, 0x0149, 0x014f, 0x0155, 0x0161, 0x0169, 0x0170, 0x0176, - 0x017c, 0x018b, 0x019b, 0x01b1, 0x01c4, 0x01c9, 0x01d8, 0x01e6, - 0x01ea, 0x01f1, 0x01f6, 0x01fe, 0x020e, 0x0218, 0x021c, 0x0229, - 0x0231, 0x0240, 0x0246, 0x0255, 0x025b, 0x0267, 0x026d, 0x0274, - // Entry 40 - 7F - 0x027c, 0x028d, 0x0295, 0x02a6, 0x02ad, 0x02b4, 0x02b9, 0x02c5, - 0x02cc, 0x02d3, 0x02da, 0x02e3, 0x02ec, 0x02f0, 0x0302, 0x030c, - 0x031b, 0x0322, 0x0327, 0x032e, 0x0335, 0x033c, 0x034a, 0x0352, - 0x0357, 0x0360, 0x036a, 0x0370, 0x0376, 0x0380, 0x0391, 0x0397, - 0x03be, 0x03c7, 0x03cb, 0x03d8, 0x03de, 0x03f1, 0x0413, 0x041b, - 0x0422, 0x0427, 0x042f, 0x043f, 0x0448, 0x0450, 0x0456, 0x045f, - 0x0464, 0x0485, 0x0489, 0x048d, 0x0495, 0x049b, 0x04a1, 0x04a8, - 0x04b0, 0x04b6, 0x04bb, 0x04c4, 0x04cb, 0x04d3, 0x04d9, 0x04ee, - // Entry 80 - BF - 0x04f9, 0x0506, 0x050c, 0x051c, 0x0525, 0x0529, 0x0530, 0x053b, - 0x0548, 0x0551, 0x0558, 0x055f, 0x0567, 0x0571, 0x0577, 0x057c, - 0x0582, 0x0588, 0x058f, 0x0599, 0x05a5, 0x05af, 0x05c1, 0x05ca, - 0x05ce, 0x05dd, 0x05e5, 0x05f4, 0x060b, 0x0613, 0x061d, 0x0627, - 0x062c, 0x0635, 0x063d, 0x0643, 0x064a, 0x0652, 0x065a, 0x0661, - 0x066f, 0x0674, 0x0685, 0x068c, 0x0695, 0x069c, 0x06a4, 0x06a9, - 0x06ae, 0x06b2, 0x06bf, 0x06c3, 0x06c9, 0x06cd, 0x06de, 0x06ea, - 0x06f2, 0x06fa, 0x0702, 0x071b, 0x072d, 0x0738, 0x0749, 0x0751, - // Entry C0 - FF - 0x0756, 0x075e, 0x0763, 0x076f, 0x0777, 0x077e, 0x0784, 0x0789, - 0x078f, 0x0799, 0x07aa, 0x07b4, 0x07b9, 0x07bf, 0x07c8, 0x07d4, - 0x07dc, 0x07fc, 0x0804, 0x0810, 0x081a, 0x0821, 0x0828, 0x0830, - 0x083d, 0x0852, 0x085d, 0x0869, 0x086f, 0x0878, 0x0888, 0x08a2, - 0x08a5, 0x08c2, 0x08c6, 0x08ce, 0x08d8, 0x08df, 0x08ea, 0x08f7, - 0x08fe, 0x0903, 0x0908, 0x091b, 0x0921, 0x0927, 0x092f, 0x0936, - 0x093c, 0x0952, 0x0961, 0x0968, 0x0972, 0x0979, 0x0995, 0x099e, - 0x09b6, 0x09cb, 0x09d2, 0x09d9, 0x09f4, 0x09f9, 0x09ff, 0x0a04, - // Entry 100 - 13F - 0x0a0b, 0x0a19, 0x0a1f, 0x0a27, 0x0a3c, 0x0a41, 0x0a47, 0x0a54, - 0x0a63, 0x0a6a, 0x0a76, 0x0a84, 0x0a90, 0x0a9c, 0x0aa9, 0x0abe, - 0x0ac5, 0x0ad9, 0x0aea, 0x0af4, 0x0b00, 0x0b0d, 0x0b1a, 0x0b25, - 0x0b2e, 0x0b40, 0x0b49, 0x0b4d, 0x0b58, 0x0b62, 0x0b67, 0x0b72, - 0x0b7d, 0x0b88, 0x0b95, -} - -// Size: 3314 bytes -var isRegionStr string = "" + - "Ascension-eyjaAndorraSameinuðu arabísku furstadæminAfganistanAntígva og " + - "BarbúdaAngvillaAlbaníaArmeníaHollensku AntillurAngólaSuðurskautslandiðAr" + - "gentínaBandaríska SamóaAusturríkiÃstralíaArúbaÃlandseyjarAserbaídsjanBos" + - "nía og HersegóvínaBarbadosBangladessBelgíaBúrkína FasóBúlgaríaBareinBúrú" + - "ndíBenínSaint BarthélemyBermúdaeyjarBrúneiBólivíaKaríbahafshluti Holland" + - "sBrasilíaBahamaeyjarBútanBouveteyjaBotsvanaHvíta-RússlandBelísKanadaKóko" + - "seyjar (Keeling)Kongó-KinshasaMið-AfríkulýðveldiðKongó-BrazzavilleSvissF" + - "ílabeinsströndinCooks-eyjarSíleKamerúnKínaKólumbíaClipperton-eyjaKostar" + - "íkaKúbaGrænhöfðaeyjarCuracaoJólaeyKýpurTékklandÞýskalandDiego GarciaDjí" + - "bútíDanmörkDóminíkaDóminíska lýðveldiðAlsírCeuta og MelillaEkvadorEistla" + - "ndEgyptalandVestur-SaharaErítreaSpánnEþíópíaEvrópusambandiðFinnlandFídji" + - "eyjarFalklandseyjarMíkrónesíaFæreyjarFrakklandGabonBretlandGrenadaGeorgí" + - "aFranska GvæjanaGuernseyGanaGíbraltarGrænlandGambíaGíneaGvadelúpeyjarMið" + - "baugs-GíneaGrikklandSuður-Georgía og Suður-SandvíkureyjarGvatemalaGvamGí" + - "nea-BissáGvæjanaSjálfstjórnarsvæðið Hong KongHeard og McDonaldseyjarHond" + - "úrasKróatíaHaítíUngverjalandKanaríeyjarIndónesíaÃrlandÃsraelMönIndlandB" + - "resku IndlandshafseyjarÃrakÃranÃslandÃtalíaJerseyJamaíkaJórdaníaJapanKen" + - "íaKirgistanKambódíaKíribatíKómoreyjarSankti Kitts og NevisNorður-KóreaS" + - "uður-KóreaKúveitCaymaneyjarKasakstanLaosLíbanonSankti LúsíaLiechtenstein" + - "Srí LankaLíberíaLesótóLitháenLúxemborgLettlandLíbíaMarokkóMónakóMoldóvaS" + - "vartfjallalandSaint MartinMadagaskarMarshalleyjarMakedóníaMalíMjanmar (B" + - "úrma)MongólíaSjálfstjórnarsvæðið MakaóNorður-MaríanaeyjarMartiníkMárita" + - "níaMontserratMaltaMáritíusMaldíveyjarMalavíMexíkóMalasíaMósambíkNamibíaN" + - "ýja-KaledóníaNígerNorfolkeyjaNígeríaNíkaragvaHollandNoregurNepalNárúNiu" + - "eNýja-SjálandÓmanPanamaPerúFranska PólýnesíaPapúa Nýja-GíneaFilippseyjar" + - "PakistanPóllandSankti Pierre og MiquelonPitcairn-eyjarPúertó RíkóHeimast" + - "jórnarsvæði PalestínumannaPortúgalPaláParagvæKatarYtri EyjaálfaRéunionRú" + - "meníaSerbíaRússlandRúandaSádi-ArabíaSalómonseyjarSeychelles-eyjarSúdanSv" + - "íþjóðSingapúrSankti HelenaSlóveníaSvalbarði og Jan MayenSlóvakíaSíerra " + - "LeóneSan MarínóSenegalSómalíaSúrínamSuður-SúdanSaó Tóme og PrinsípeEl Sa" + - "lvadorSint MaartenSýrlandSvasílandTristan da CunhaTurks- og CaicoseyjarT" + - "sjadFrönsku suðlægu landsvæðinTógóTaílandTadsjikistanTókeláTímor-LesteTú" + - "rkmenistanTúnisTongaTyrklandTrínidad og TóbagóTúvalúTaívanTansaníaÚkraín" + - "aÚgandaSmáeyjar BandaríkjannaBandaríkinÚrúgvæÚsbekistanVatíkaniðSankti V" + - "insent og GrenadíneyjarVenesúelaBresku JómfrúaeyjarBandarísku Jómfrúaeyj" + - "arVíetnamVanúatúWallis- og FútúnaeyjarSamóaKósóvóJemenMayotteSuður-Afrík" + - "aSambíaSimbabveÓþekkt svæðiHeimurinnAfríkaNorður-AmeríkaSuður-AmeríkaEyj" + - "aálfaVestur-AfríkaMið-AmeríkaAustur-AfríkaNorður-AfríkaMið-AfríkaSuðurhl" + - "uti AfríkuAmeríkaAmeríka norðan MexikóKaríbahafiðAustur-AsíaSuður-AsíaSu" + - "ðaustur-AsíaSuður-EvrópaÃstralasíaMelanesíaMíkrónesíusvæðiðPólýnesíaAsí" + - "aMið-AsíaVestur-AsíaEvrópaAustur-EvrópaNorður-EvrópaVestur-EvrópaRómansk" + - "a Ameríka" - -// Size: 606 bytes, 291 elements -var isRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000e, 0x0015, 0x0036, 0x0040, 0x0054, 0x005c, 0x0064, - 0x006c, 0x007e, 0x0085, 0x0098, 0x00a2, 0x00b4, 0x00bf, 0x00c9, - 0x00cf, 0x00db, 0x00e8, 0x0100, 0x0108, 0x0112, 0x0119, 0x0128, - 0x0132, 0x0138, 0x0142, 0x0148, 0x0159, 0x0166, 0x016d, 0x0176, - 0x018f, 0x0198, 0x01a3, 0x01a9, 0x01b3, 0x01bb, 0x01cb, 0x01d1, - 0x01d7, 0x01ec, 0x01fb, 0x0213, 0x0225, 0x022a, 0x023d, 0x0248, - 0x024d, 0x0255, 0x025a, 0x0264, 0x0273, 0x027d, 0x0282, 0x0293, - 0x029a, 0x02a1, 0x02a7, 0x02b0, 0x02bb, 0x02c7, 0x02d1, 0x02d9, - // Entry 40 - 7F - 0x02e3, 0x02fb, 0x0301, 0x0311, 0x0318, 0x0320, 0x032a, 0x0337, - 0x033f, 0x0345, 0x0350, 0x0361, 0x0369, 0x0374, 0x0382, 0x038f, - 0x0398, 0x03a1, 0x03a6, 0x03ae, 0x03b5, 0x03bd, 0x03cd, 0x03d5, - 0x03d9, 0x03e3, 0x03ec, 0x03f3, 0x03f9, 0x0407, 0x0417, 0x0420, - 0x0449, 0x0452, 0x0456, 0x0463, 0x046b, 0x048d, 0x04a4, 0x04ad, - 0x04b6, 0x04bd, 0x04c9, 0x04d5, 0x04e0, 0x04e7, 0x04ee, 0x04f2, - 0x04f9, 0x0511, 0x0516, 0x051b, 0x0522, 0x052a, 0x0530, 0x0538, - 0x0542, 0x0547, 0x054d, 0x0556, 0x0560, 0x056a, 0x0575, 0x058a, - // Entry 80 - BF - 0x0598, 0x05a5, 0x05ac, 0x05b7, 0x05c0, 0x05c4, 0x05cc, 0x05da, - 0x05e7, 0x05f1, 0x05fa, 0x0602, 0x060a, 0x0614, 0x061c, 0x0623, - 0x062b, 0x0633, 0x063b, 0x064a, 0x0656, 0x0660, 0x066d, 0x0678, - 0x067d, 0x068d, 0x0697, 0x06b6, 0x06cb, 0x06d4, 0x06df, 0x06e9, - 0x06ee, 0x06f8, 0x0704, 0x070b, 0x0713, 0x071b, 0x0725, 0x072d, - 0x073e, 0x0744, 0x074f, 0x0758, 0x0762, 0x0769, 0x0770, 0x0775, - 0x077b, 0x077f, 0x078d, 0x0792, 0x0798, 0x079d, 0x07b1, 0x07c4, - 0x07d0, 0x07d8, 0x07e0, 0x07f9, 0x0807, 0x0816, 0x083b, 0x0844, - // Entry C0 - FF - 0x0849, 0x0851, 0x0856, 0x0864, 0x086c, 0x0875, 0x087c, 0x0885, - 0x088c, 0x0899, 0x08a7, 0x08b7, 0x08bd, 0x08c8, 0x08d1, 0x08de, - 0x08e8, 0x08ff, 0x0909, 0x0917, 0x0923, 0x092a, 0x0933, 0x093c, - 0x0949, 0x0960, 0x096b, 0x0977, 0x097f, 0x0989, 0x0999, 0x09ae, - 0x09b3, 0x09d2, 0x09d8, 0x09e0, 0x09ec, 0x09f4, 0x0a00, 0x0a0d, - 0x0a13, 0x0a18, 0x0a20, 0x0a35, 0x0a3d, 0x0a44, 0x0a4d, 0x0a56, - 0x0a5d, 0x0a75, 0x0a80, 0x0a89, 0x0a94, 0x0a9f, 0x0abf, 0x0ac9, - 0x0ade, 0x0af8, 0x0b00, 0x0b09, 0x0b21, 0x0b27, 0x0b30, 0x0b35, - // Entry 100 - 13F - 0x0b3c, 0x0b4a, 0x0b51, 0x0b59, 0x0b69, 0x0b72, 0x0b79, 0x0b89, - 0x0b98, 0x0ba1, 0x0baf, 0x0bbc, 0x0bca, 0x0bd9, 0x0be5, 0x0bf8, - 0x0c00, 0x0c18, 0x0c25, 0x0c31, 0x0c3d, 0x0c4d, 0x0c5b, 0x0c67, - 0x0c71, 0x0c87, 0x0c93, 0x0c98, 0x0ca2, 0x0cae, 0x0cb5, 0x0cc3, - 0x0cd2, 0x0ce0, 0x0cf2, -} - -// Size: 3068 bytes -var itRegionStr string = "" + - "Isola di AscensioneAndorraEmirati Arabi UnitiAfghanistanAntigua e Barbud" + - "aAnguillaAlbaniaArmeniaAntille OlandesiAngolaAntartideArgentinaSamoa Ame" + - "ricaneAustriaAustraliaArubaIsole AlandAzerbaigianBosnia-ErzegovinaBarbad" + - "osBangladeshBelgioBurkina FasoBulgariaBahreinBurundiBeninSaint-Barthélem" + - "yBermudaBruneiBoliviaCaraibi OlandesiBrasileBahamasBhutanIsola BouvetBot" + - "swanaBielorussiaBelizeCanadaIsole CocosCongo - KinshasaRepubblica Centra" + - "fricanaCongo-BrazzavilleSvizzeraCosta d’AvorioIsole CookCileCamerunCinaC" + - "olombiaIsola di ClippertonCosta RicaCubaCapo VerdeCuraçaoIsola di Christ" + - "masCiproRepubblica CecaGermaniaDiego GarciaGibutiDanimarcaDominicaRepubb" + - "lica DominicanaAlgeriaCeuta e MelillaEcuadorEstoniaEgittoSahara Occident" + - "aleEritreaSpagnaEtiopiaUnione EuropeaFinlandiaFigiIsole FalklandMicrones" + - "iaIsole FaroeFranciaGabonRegno UnitoGrenadaGeorgiaGuiana FranceseGuernse" + - "yGhanaGibilterraGroenlandiaGambiaGuineaGuadalupaGuinea EquatorialeGrecia" + - "Georgia del Sud e isole Sandwich meridionaliGuatemalaGuamGuinea-BissauGu" + - "yanaRAS di Hong KongIsole Heard e McDonaldHondurasCroaziaHaitiUngheriaIs" + - "ole CanarieIndonesiaIrlandaIsraeleIsola di ManIndiaTerritorio Britannico" + - " dell’Oceano IndianoIraqIranIslandaItaliaJerseyGiamaicaGiordaniaGiappone" + - "KenyaKirghizistanCambogiaKiribatiComoreSaint Kitts e NevisCorea del Nord" + - "Corea del SudKuwaitIsole CaymanKazakistanLaosLibanoSaint LuciaLiechtenst" + - "einSri LankaLiberiaLesothoLituaniaLussemburgoLettoniaLibiaMaroccoMonacoM" + - "oldaviaMontenegroSaint MartinMadagascarIsole MarshallRepubblica di Maced" + - "oniaMaliMyanmar (Birmania)MongoliaRAS di MacaoIsole Marianne Settentrion" + - "aliMartinicaMauritaniaMontserratMaltaMauritiusMaldiveMalawiMessicoMalesi" + - "aMozambicoNamibiaNuova CaledoniaNigerIsola NorfolkNigeriaNicaraguaPaesi " + - "BassiNorvegiaNepalNauruNiueNuova ZelandaOmanPanamáPerùPolinesia Francese" + - "Papua Nuova GuineaFilippinePakistanPoloniaSaint Pierre e MiquelonIsole P" + - "itcairnPortoricoTerritori palestinesiPortogalloPalauParaguayQatarOceania" + - " lontanaRéunionRomaniaSerbiaFederazione RussaRuandaArabia SauditaIsole S" + - "olomonSeychellesSudanSveziaSingaporeSant’ElenaSloveniaSvalbard e Jan May" + - "enSlovacchiaSierra LeoneSan MarinoSenegalSomaliaSurinameSudan del SudSão" + - " Tomé e PríncipeEl SalvadorSint MaartenSiriaSwazilandTristan da CunhaIso" + - "le Turks e CaicosCiadTerritori australi francesiTogoTailandiaTagikistanT" + - "okelauTimor EstTurkmenistanTunisiaTongaTurchiaTrinidad e TobagoTuvaluTai" + - "wanTanzaniaUcrainaUgandaIsole minori lontane dagli USAStati UnitiUruguay" + - "UzbekistanCittà del VaticanoSaint Vincent e GrenadinesVenezuelaIsole Ver" + - "gini BritannicheIsole Vergini AmericaneVietnamVanuatuWallis e FutunaSamo" + - "aKosovoYemenMayotteSudafricaZambiaZimbabweRegione non valida o sconosciu" + - "taMondoAfricaNord AmericaAmerica del SudOceaniaAfrica occidentaleAmerica" + - " CentraleAfrica orientaleAfrica del NordAfrica centraleAfrica del SudAme" + - "richeAmerica del NordCaraibiAsia orientaleAsia del SudSud-est asiaticoEu" + - "ropa meridionaleAustralasiaMelanesiaRegione MicronesianaPolinesiaAsiaAsi" + - "a centraleAsia occidentaleEuropaEuropa orientaleEuropa settentrionaleEur" + - "opa occidentaleAmerica Latina" - -// Size: 606 bytes, 291 elements -var itRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0013, 0x001a, 0x002d, 0x0038, 0x0049, 0x0051, 0x0058, - 0x005f, 0x006f, 0x0075, 0x007e, 0x0087, 0x0096, 0x009d, 0x00a6, - 0x00ab, 0x00b6, 0x00c1, 0x00d2, 0x00da, 0x00e4, 0x00ea, 0x00f6, - 0x00fe, 0x0105, 0x010c, 0x0111, 0x0122, 0x0129, 0x012f, 0x0136, - 0x0146, 0x014d, 0x0154, 0x015a, 0x0166, 0x016e, 0x0179, 0x017f, - 0x0185, 0x0190, 0x01a0, 0x01b8, 0x01c9, 0x01d1, 0x01e1, 0x01eb, - 0x01ef, 0x01f6, 0x01fa, 0x0202, 0x0215, 0x021f, 0x0223, 0x022d, - 0x0235, 0x0247, 0x024c, 0x025b, 0x0263, 0x026f, 0x0275, 0x027e, - // Entry 40 - 7F - 0x0286, 0x029b, 0x02a2, 0x02b1, 0x02b8, 0x02bf, 0x02c5, 0x02d7, - 0x02de, 0x02e4, 0x02eb, 0x02f9, 0x0302, 0x0306, 0x0314, 0x031e, - 0x0329, 0x0330, 0x0335, 0x0340, 0x0347, 0x034e, 0x035d, 0x0365, - 0x036a, 0x0374, 0x037f, 0x0385, 0x038b, 0x0394, 0x03a6, 0x03ac, - 0x03d8, 0x03e1, 0x03e5, 0x03f2, 0x03f8, 0x0408, 0x041e, 0x0426, - 0x042d, 0x0432, 0x043a, 0x0447, 0x0450, 0x0457, 0x045e, 0x046a, - 0x046f, 0x049a, 0x049e, 0x04a2, 0x04a9, 0x04af, 0x04b5, 0x04bd, - 0x04c6, 0x04ce, 0x04d3, 0x04df, 0x04e7, 0x04ef, 0x04f5, 0x0508, - // Entry 80 - BF - 0x0516, 0x0523, 0x0529, 0x0535, 0x053f, 0x0543, 0x0549, 0x0554, - 0x0561, 0x056a, 0x0571, 0x0578, 0x0580, 0x058b, 0x0593, 0x0598, - 0x059f, 0x05a5, 0x05ad, 0x05b7, 0x05c3, 0x05cd, 0x05db, 0x05f2, - 0x05f6, 0x0608, 0x0610, 0x061c, 0x0639, 0x0642, 0x064c, 0x0656, - 0x065b, 0x0664, 0x066b, 0x0671, 0x0678, 0x067f, 0x0688, 0x068f, - 0x069e, 0x06a3, 0x06b0, 0x06b7, 0x06c0, 0x06cb, 0x06d3, 0x06d8, - 0x06dd, 0x06e1, 0x06ee, 0x06f2, 0x06f9, 0x06fe, 0x0710, 0x0722, - 0x072b, 0x0733, 0x073a, 0x0751, 0x075f, 0x0768, 0x077d, 0x0787, - // Entry C0 - FF - 0x078c, 0x0794, 0x0799, 0x07a8, 0x07b0, 0x07b7, 0x07bd, 0x07ce, - 0x07d4, 0x07e2, 0x07ef, 0x07f9, 0x07fe, 0x0804, 0x080d, 0x0819, - 0x0821, 0x0835, 0x083f, 0x084b, 0x0855, 0x085c, 0x0863, 0x086b, - 0x0878, 0x088e, 0x0899, 0x08a5, 0x08aa, 0x08b3, 0x08c3, 0x08d7, - 0x08db, 0x08f6, 0x08fa, 0x0903, 0x090d, 0x0914, 0x091d, 0x0929, - 0x0930, 0x0935, 0x093c, 0x094d, 0x0953, 0x0959, 0x0961, 0x0968, - 0x096e, 0x098c, 0x0997, 0x099e, 0x09a8, 0x09bb, 0x09d5, 0x09de, - 0x09f7, 0x0a0e, 0x0a15, 0x0a1c, 0x0a2b, 0x0a30, 0x0a36, 0x0a3b, - // Entry 100 - 13F - 0x0a42, 0x0a4b, 0x0a51, 0x0a59, 0x0a79, 0x0a7e, 0x0a84, 0x0a90, - 0x0a9f, 0x0aa6, 0x0ab8, 0x0ac8, 0x0ad8, 0x0ae7, 0x0af6, 0x0b04, - 0x0b0c, 0x0b1c, 0x0b23, 0x0b31, 0x0b3d, 0x0b4d, 0x0b5f, 0x0b6a, - 0x0b73, 0x0b87, 0x0b90, 0x0b94, 0x0ba1, 0x0bb1, 0x0bb7, 0x0bc7, - 0x0bdc, 0x0bee, 0x0bfc, -} - -// Size: 4836 bytes -var jaRegionStr string = "" + - "アセンション島アンドラアラブ首長国連邦アフガニスタンアンティグア・ãƒãƒ¼ãƒ–ーダアンギラアルãƒãƒ‹ã‚¢ã‚¢ãƒ«ãƒ¡ãƒ‹ã‚¢ã‚ªãƒ©ãƒ³ãƒ€é ˜ã‚¢ãƒ³ãƒ†ã‚£ãƒ«ã‚¢ãƒ³ã‚´ãƒ©å—極アルゼン" + - "ãƒãƒ³ç±³é ˜ã‚µãƒ¢ã‚¢ã‚ªãƒ¼ã‚¹ãƒˆãƒªã‚¢ã‚ªãƒ¼ã‚¹ãƒˆãƒ©ãƒªã‚¢ã‚¢ãƒ«ãƒã‚ªãƒ¼ãƒ©ãƒ³ãƒ‰è«¸å³¶ã‚¢ã‚¼ãƒ«ãƒã‚¤ã‚¸ãƒ£ãƒ³ãƒœã‚¹ãƒ‹ã‚¢ãƒ»ãƒ˜ãƒ«ãƒ„ェゴビナãƒãƒ«ãƒãƒ‰ã‚¹ãƒãƒ³ã‚°ãƒ©ãƒ‡ã‚·ãƒ¥ãƒ™ãƒ«ã‚®ãƒ¼ãƒ–ルキナ" + - "ファソブルガリアãƒãƒ¼ãƒ¬ãƒ¼ãƒ³ãƒ–ルンジベナンサン・ãƒãƒ«ãƒ†ãƒ«ãƒŸãƒ¼å³¶ãƒãƒŸãƒ¥ãƒ¼ãƒ€ãƒ–ルãƒã‚¤ãƒœãƒªãƒ“アオランダ領カリブブラジルãƒãƒãƒžãƒ–ータンブーベ島ボツワナ" + - "ベラルーシベリーズカナダココス(キーリング)諸島コンゴ民主共和国(キンシャサ)中央アフリカ共和国コンゴ共和国(ブラザビル)スイスコートジボワ" + - "ールクック諸島ãƒãƒªã‚«ãƒ¡ãƒ«ãƒ¼ãƒ³ä¸­å›½ã‚³ãƒ­ãƒ³ãƒ“アクリッパートン島コスタリカキューãƒã‚«ãƒ¼ãƒœãƒ™ãƒ«ãƒ‡ã‚­ãƒ¥ãƒ©ã‚½ãƒ¼ã‚¯ãƒªã‚¹ãƒžã‚¹å³¶ã‚­ãƒ—ロスãƒã‚§ã‚³å…±å’Œå›½ãƒ‰ã‚¤ãƒ„ディ" + - "エゴガルシア島ジブãƒãƒ‡ãƒ³ãƒžãƒ¼ã‚¯ãƒ‰ãƒŸãƒ‹ã‚«å›½ãƒ‰ãƒŸãƒ‹ã‚«å…±å’Œå›½ã‚¢ãƒ«ã‚¸ã‚§ãƒªã‚¢ã‚»ã‚¦ã‚¿ãƒ»ãƒ¡ãƒªãƒªãƒ£ã‚¨ã‚¯ã‚¢ãƒ‰ãƒ«ã‚¨ã‚¹ãƒˆãƒ‹ã‚¢ã‚¨ã‚¸ãƒ—ト西サãƒãƒ©ã‚¨ãƒªãƒˆãƒªã‚¢ã‚¹ãƒšã‚¤ãƒ³ã‚¨ãƒ" + - "オピア欧州連åˆãƒ•ã‚£ãƒ³ãƒ©ãƒ³ãƒ‰ãƒ•ã‚£ã‚¸ãƒ¼ãƒ•ã‚©ãƒ¼ã‚¯ãƒ©ãƒ³ãƒ‰è«¸å³¶ãƒŸã‚¯ãƒ­ãƒã‚·ã‚¢é€£é‚¦ãƒ•ã‚§ãƒ­ãƒ¼è«¸å³¶ãƒ•ãƒ©ãƒ³ã‚¹ã‚¬ãƒœãƒ³ã‚¤ã‚®ãƒªã‚¹ã‚°ãƒ¬ãƒŠãƒ€ã‚°ãƒ«ã‚¸ã‚¢ä»é ˜ã‚®ã‚¢ãƒŠã‚¬ãƒ¼ãƒ³ã‚¸ãƒ¼ã‚¬" + - "ーナジブラルタルグリーンランドガンビアギニアグアドループ赤é“ギニアギリシャå—ジョージア島・å—サンドイッãƒè«¸å³¶ã‚°ã‚¢ãƒ†ãƒžãƒ©ã‚°ã‚¢ãƒ ã‚®ãƒ‹ã‚¢ãƒ“サウガイ" + - "アナ中è¯äººæ°‘共和国香港特別行政区ãƒãƒ¼ãƒ‰å³¶ãƒ»ãƒžã‚¯ãƒ‰ãƒŠãƒ«ãƒ‰è«¸å³¶ãƒ›ãƒ³ã‚¸ãƒ¥ãƒ©ã‚¹ã‚¯ãƒ­ã‚¢ãƒã‚¢ãƒã‚¤ãƒãƒãƒ³ã‚¬ãƒªãƒ¼ã‚«ãƒŠãƒªã‚¢è«¸å³¶ã‚¤ãƒ³ãƒ‰ãƒã‚·ã‚¢ã‚¢ã‚¤ãƒ«ãƒ©ãƒ³ãƒ‰ã‚¤ã‚¹ãƒ©ã‚¨" + - "ルマン島インド英領インド洋地域イラクイランアイスランドイタリアジャージージャマイカヨルダン日本ケニアキルギスカンボジアキリãƒã‚¹ã‚³ãƒ¢ãƒ­ã‚»ãƒ³ãƒˆã‚¯" + - "リストファー・ãƒã‚¤ãƒ“スæœé®®æ°‘主主義人民共和国大韓民国クウェートケイマン諸島カザフスタンラオスレãƒãƒŽãƒ³ã‚»ãƒ³ãƒˆãƒ«ã‚·ã‚¢ãƒªãƒ’テンシュタインスリランカ" + - "リベリアレソトリトアニアルクセンブルグラトビアリビアモロッコモナコモルドãƒãƒ¢ãƒ³ãƒ†ãƒã‚°ãƒ­ã‚µãƒ³ãƒ»ãƒžãƒ«ã‚¿ãƒ³ãƒžãƒ€ã‚¬ã‚¹ã‚«ãƒ«ãƒžãƒ¼ã‚·ãƒ£ãƒ«è«¸å³¶ãƒžã‚±ãƒ‰ãƒ‹ã‚¢ãƒžãƒª" + - "ミャンマーモンゴル中è¯äººæ°‘共和国マカオ特別行政区北マリアナ諸島マルティニークモーリタニアモントセラトマルタモーリシャスモルディブマラウイメキ" + - "シコマレーシアモザンビークナミビアニューカレドニアニジェールノーフォーク島ナイジェリアニカラグアオランダノルウェーãƒãƒ‘ールナウルニウエ島ニュ" + - "ージーランドオマーンパナマペルーä»é ˜ãƒãƒªãƒã‚·ã‚¢ãƒ‘プアニューギニアフィリピンパキスタンãƒãƒ¼ãƒ©ãƒ³ãƒ‰ã‚µãƒ³ãƒ”エール島・ミクロン島ピトケアン諸島プエル" + - "トリコパレスãƒãƒŠãƒãƒ«ãƒˆã‚¬ãƒ«ãƒ‘ラオパラグアイカタールオセアニア周辺地域レユニオン島ルーマニアセルビアロシアルワンダサウジアラビアソロモン諸島セ" + - "ーシェルスーダンスウェーデンシンガãƒãƒ¼ãƒ«ã‚»ãƒ³ãƒˆãƒ˜ãƒ¬ãƒŠã‚¹ãƒ­ãƒ™ãƒ‹ã‚¢ã‚¹ãƒãƒ¼ãƒ«ãƒãƒ«è«¸å³¶ãƒ»ãƒ¤ãƒ³ãƒžã‚¤ã‚¨ãƒ³å³¶ã‚¹ãƒ­ãƒã‚­ã‚¢ã‚·ã‚¨ãƒ©ãƒ¬ã‚ªãƒã‚µãƒ³ãƒžãƒªãƒŽã‚»ãƒã‚¬ãƒ«ã‚½ãƒžãƒª" + - "アスリナムå—スーダンサントメ・プリンシペエルサルãƒãƒ‰ãƒ«ã‚·ãƒ³ãƒˆãƒ»ãƒžãƒ¼ãƒ«ãƒ†ãƒ³ã‚·ãƒªã‚¢ã‚¹ãƒ¯ã‚¸ãƒ©ãƒ³ãƒ‰ãƒˆãƒªã‚¹ã‚¿ãƒ³ãƒ»ãƒ€ãƒ»ã‚¯ãƒ¼ãƒ‹ãƒ£ã‚¿ãƒ¼ã‚¯ã‚¹ãƒ»ã‚«ã‚¤ã‚³ã‚¹è«¸å³¶ãƒãƒ£" + - "ドä»é ˜æ¥µå—諸島トーゴタイタジキスタントケラウæ±ãƒ†ã‚£ãƒ¢ãƒ¼ãƒ«ãƒˆãƒ«ã‚¯ãƒ¡ãƒ‹ã‚¹ã‚¿ãƒ³ãƒãƒ¥ãƒ‹ã‚¸ã‚¢ãƒˆãƒ³ã‚¬ãƒˆãƒ«ã‚³ãƒˆãƒªãƒ‹ãƒ€ãƒ¼ãƒ‰ãƒ»ãƒˆãƒã‚´ãƒ„ãƒãƒ«å°æ¹¾ã‚¿ãƒ³ã‚¶ãƒ‹ã‚¢ã‚¦ã‚¯ãƒ©" + - "イナウガンダ米領太平洋諸島アメリカåˆè¡†å›½ã‚¦ãƒ«ã‚°ã‚¢ã‚¤ã‚¦ã‚ºãƒ™ã‚­ã‚¹ã‚¿ãƒ³ãƒãƒã‚«ãƒ³å¸‚国セントビンセント・グレナディーン諸島ベãƒã‚ºã‚¨ãƒ©è‹±é ˜ãƒ´ã‚¡ãƒ¼ã‚¸ãƒ³è«¸å³¶" + - "米領ヴァージン諸島ベトナムãƒãƒŒã‚¢ãƒ„ウォリス・フツナサモアコソボイエメンマヨット島å—アフリカザンビアジンãƒãƒ–エä¸æ˜Žãªåœ°åŸŸä¸–界アフリカ北アメリカ" + - "大陸å—アメリカオセアニア西アフリカ中央アメリカæ±ã‚¢ãƒ•ãƒªã‚«åŒ—アフリカ中部アフリカå—部アフリカアメリカ大陸北アメリカカリブæ±ã‚¢ã‚¸ã‚¢å—アジアæ±å—ã‚¢" + - "ジアå—ヨーロッパオーストララシアメラãƒã‚·ã‚¢ãƒŸã‚¯ãƒ­ãƒã‚·ã‚¢ãƒãƒªãƒã‚·ã‚¢ã‚¢ã‚¸ã‚¢ä¸­å¤®ã‚¢ã‚¸ã‚¢è¥¿ã‚¢ã‚¸ã‚¢ãƒ¨ãƒ¼ãƒ­ãƒƒãƒ‘æ±ãƒ¨ãƒ¼ãƒ­ãƒƒãƒ‘北ヨーロッパ西ヨーロッパラテン" + - "アメリカ" - -// Size: 606 bytes, 291 elements -var jaRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0015, 0x0021, 0x0039, 0x004e, 0x0072, 0x007e, 0x008d, - 0x009c, 0x00ba, 0x00c6, 0x00cc, 0x00de, 0x00ed, 0x00ff, 0x0114, - 0x011d, 0x0132, 0x014a, 0x016e, 0x017d, 0x0192, 0x019e, 0x01b3, - 0x01c2, 0x01d1, 0x01dd, 0x01e6, 0x0204, 0x0213, 0x021f, 0x022b, - 0x0243, 0x024f, 0x0258, 0x0264, 0x0270, 0x027c, 0x028b, 0x0297, - 0x02a0, 0x02c0, 0x02e9, 0x0304, 0x0327, 0x0330, 0x0348, 0x0357, - 0x035d, 0x036c, 0x0372, 0x0381, 0x0399, 0x03a8, 0x03b4, 0x03c6, - 0x03d5, 0x03e7, 0x03f3, 0x0405, 0x040e, 0x0429, 0x0432, 0x0441, - // Entry 40 - 7F - 0x0450, 0x0465, 0x0477, 0x048f, 0x049e, 0x04ad, 0x04b9, 0x04c5, - 0x04d4, 0x04e0, 0x04ef, 0x04fb, 0x050d, 0x0519, 0x0534, 0x054c, - 0x055e, 0x056a, 0x0573, 0x057f, 0x058b, 0x0597, 0x05a6, 0x05b5, - 0x05be, 0x05d0, 0x05e5, 0x05f1, 0x05fa, 0x060c, 0x061b, 0x0627, - 0x065a, 0x0669, 0x0672, 0x0684, 0x0690, 0x06ba, 0x06e1, 0x06f3, - 0x0702, 0x070b, 0x071a, 0x072c, 0x073e, 0x0750, 0x075f, 0x0768, - 0x0771, 0x0789, 0x0792, 0x079b, 0x07ad, 0x07b9, 0x07c8, 0x07d7, - 0x07e3, 0x07e9, 0x07f2, 0x07fe, 0x080d, 0x0819, 0x0822, 0x084f, - // Entry 80 - BF - 0x0870, 0x087c, 0x088b, 0x089d, 0x08af, 0x08b8, 0x08c4, 0x08d6, - 0x08f1, 0x0900, 0x090c, 0x0915, 0x0924, 0x0939, 0x0945, 0x094e, - 0x095a, 0x0963, 0x096f, 0x0981, 0x0996, 0x09a8, 0x09bd, 0x09cc, - 0x09d2, 0x09e1, 0x09ed, 0x0a1a, 0x0a2f, 0x0a44, 0x0a56, 0x0a68, - 0x0a71, 0x0a83, 0x0a92, 0x0a9e, 0x0aaa, 0x0ab9, 0x0acb, 0x0ad7, - 0x0aef, 0x0afe, 0x0b13, 0x0b25, 0x0b34, 0x0b40, 0x0b4f, 0x0b5b, - 0x0b64, 0x0b70, 0x0b88, 0x0b94, 0x0b9d, 0x0ba6, 0x0bbb, 0x0bd6, - 0x0be5, 0x0bf4, 0x0c03, 0x0c2a, 0x0c3f, 0x0c51, 0x0c60, 0x0c6f, - // Entry C0 - FF - 0x0c78, 0x0c87, 0x0c93, 0x0cae, 0x0cc0, 0x0ccf, 0x0cdb, 0x0ce4, - 0x0cf0, 0x0d05, 0x0d17, 0x0d26, 0x0d32, 0x0d44, 0x0d56, 0x0d68, - 0x0d77, 0x0da7, 0x0db6, 0x0dc8, 0x0dd7, 0x0de3, 0x0def, 0x0dfb, - 0x0e0a, 0x0e28, 0x0e3d, 0x0e58, 0x0e61, 0x0e73, 0x0e97, 0x0eb8, - 0x0ec1, 0x0ed3, 0x0edc, 0x0ee2, 0x0ef4, 0x0f00, 0x0f12, 0x0f2a, - 0x0f39, 0x0f42, 0x0f4b, 0x0f69, 0x0f72, 0x0f78, 0x0f87, 0x0f96, - 0x0fa2, 0x0fb7, 0x0fcc, 0x0fdb, 0x0ff0, 0x1002, 0x1038, 0x1047, - 0x1062, 0x107d, 0x1089, 0x1095, 0x10ad, 0x10b6, 0x10bf, 0x10cb, - // Entry 100 - 13F - 0x10da, 0x10e9, 0x10f5, 0x1104, 0x1113, 0x1119, 0x1125, 0x113a, - 0x1149, 0x1158, 0x1167, 0x1179, 0x1188, 0x1197, 0x11a9, 0x11bb, - 0x11cd, 0x11dc, 0x11e5, 0x11f1, 0x11fd, 0x120c, 0x121e, 0x1236, - 0x1245, 0x1257, 0x1266, 0x126f, 0x127e, 0x128a, 0x1299, 0x12ab, - 0x12bd, 0x12cf, 0x12e4, -} - -// Size: 9560 bytes -var kaRegionStr string = "" + - "áƒáƒ›áƒáƒ¦áƒšáƒ”ბის კუნძულიáƒáƒœáƒ“áƒáƒ áƒáƒáƒ áƒáƒ‘თრგáƒáƒ”რთიáƒáƒœáƒ”ბული სáƒáƒáƒ›áƒ˜áƒ áƒáƒ”ბიáƒáƒ•áƒ¦áƒáƒœáƒ”თიáƒáƒœáƒ¢áƒ˜áƒ’ურდáƒ" + - " ბáƒáƒ áƒ‘უდáƒáƒáƒœáƒ’ილიáƒáƒáƒšáƒ‘áƒáƒœáƒ”თისáƒáƒ›áƒ®áƒ”თინიდერლáƒáƒœáƒ“ების áƒáƒœáƒ¢áƒ˜áƒšáƒ”ბიáƒáƒœáƒ’áƒáƒšáƒáƒáƒœáƒ¢áƒáƒ áƒ¥áƒ¢áƒ˜áƒ™áƒáƒáƒ áƒ’ე" + - "ნტინáƒáƒáƒ›áƒ”რიკის სáƒáƒ›áƒáƒáƒáƒ•áƒ¡áƒ¢áƒ áƒ˜áƒáƒáƒ•áƒ¡áƒ¢áƒ áƒáƒšáƒ˜áƒáƒáƒ áƒ£áƒ‘áƒáƒáƒšáƒáƒœáƒ“ის კუნძულებიáƒáƒ–ერბáƒáƒ˜áƒ¯áƒáƒœáƒ˜áƒ‘áƒ" + - "სნირდრჰერცეგáƒáƒ•áƒ˜áƒœáƒáƒ‘áƒáƒ áƒ‘áƒáƒ“áƒáƒ¡áƒ˜áƒ‘áƒáƒœáƒ’ლáƒáƒ“ეშიბელგიáƒáƒ‘ურკინáƒ-ფáƒáƒ¡áƒáƒ‘ულგáƒáƒ áƒ”თიბáƒáƒ°áƒ áƒ”" + - "ინიბურუნდიბენინისენ-ბáƒáƒ áƒ—ელმიბერმუდიბრუნეიბáƒáƒšáƒ˜áƒ•áƒ˜áƒáƒ™áƒáƒ áƒ˜áƒ‘ის ნიდერლáƒáƒœáƒ“ებიბრ" + - "áƒáƒ–ილიáƒáƒ‘áƒáƒ°áƒáƒ›áƒ˜áƒ¡ კუნძულებიბჰუტáƒáƒœáƒ˜áƒ‘უვებáƒáƒ¢áƒ¡áƒ•áƒáƒœáƒáƒ‘ელáƒáƒ áƒ£áƒ¡áƒ˜áƒ‘ელიზიკáƒáƒœáƒáƒ“áƒáƒ¥áƒáƒ¥áƒáƒ¡áƒ˜áƒ¡ " + - "კუნძულებიკáƒáƒœáƒ’რ- კინშáƒáƒ¡áƒáƒªáƒ”ნტრáƒáƒšáƒ£áƒ áƒ˜ áƒáƒ¤áƒ áƒ˜áƒ™áƒ˜áƒ¡ რესპუბლიკáƒáƒ™áƒáƒœáƒ’რ- ბრáƒáƒ–áƒáƒ•áƒ˜áƒšáƒ˜" + - "შვეიცáƒáƒ áƒ˜áƒáƒ™áƒáƒ¢-დივუáƒáƒ áƒ˜áƒ™áƒ£áƒ™áƒ˜áƒ¡ კუნძულებიჩილეკáƒáƒ›áƒ”რუნიჩინეთიკáƒáƒšáƒ£áƒ›áƒ‘იáƒáƒ™áƒšáƒ˜áƒžáƒ”რტáƒáƒœ" + - "ის კუნძულიკáƒáƒ¡áƒ¢áƒ-რიკáƒáƒ™áƒ£áƒ‘áƒáƒ™áƒáƒ‘áƒ-ვერდეკიურáƒáƒ¡áƒáƒáƒ¨áƒáƒ‘ის კუნძულიკვიპრáƒáƒ¡áƒ˜áƒ©áƒ”ხეთის" + - " რესპუბლიკáƒáƒ’ერმáƒáƒœáƒ˜áƒáƒ“იეგáƒ-გáƒáƒ áƒ¡áƒ˜áƒáƒ¯áƒ˜áƒ‘უტიდáƒáƒœáƒ˜áƒáƒ“áƒáƒ›áƒ˜áƒœáƒ˜áƒ™áƒáƒ“áƒáƒ›áƒ˜áƒœáƒ˜áƒ™áƒ”ლთრრესპუბლიკáƒ" + - "áƒáƒšáƒŸáƒ˜áƒ áƒ˜áƒ¡áƒ”უტრდრმელილáƒáƒ”კვáƒáƒ“áƒáƒ áƒ˜áƒ”სტáƒáƒœáƒ”თიეგვიპტედáƒáƒ¡áƒáƒ•áƒšáƒ”თი სáƒáƒ°áƒáƒ áƒáƒ”რიტრეáƒáƒ”სპ" + - "áƒáƒœáƒ”თიეთიáƒáƒžáƒ˜áƒáƒ”ვრáƒáƒ™áƒáƒ•áƒ¨áƒ˜áƒ áƒ˜áƒ¤áƒ˜áƒœáƒ”თიფიჯიფáƒáƒšáƒ™áƒšáƒ”ნდის კუნძულებიმიკრáƒáƒœáƒ”ზიáƒáƒ¤áƒáƒ áƒ”რის" + - " კუნძულებისáƒáƒ¤áƒ áƒáƒœáƒ’ეთიგáƒáƒ‘áƒáƒœáƒ˜áƒ“იდი ბრიტáƒáƒœáƒ”თიგრენáƒáƒ“áƒáƒ¡áƒáƒ¥áƒáƒ áƒ—ველáƒáƒ¡áƒáƒ¤áƒ áƒáƒœáƒ’ეთის გვი" + - "áƒáƒœáƒáƒ’ერნსიგáƒáƒœáƒáƒ’იბრáƒáƒšáƒ¢áƒáƒ áƒ˜áƒ’რენლáƒáƒœáƒ“იáƒáƒ’áƒáƒ›áƒ‘იáƒáƒ’ვინეáƒáƒ’ვáƒáƒ“ელუპáƒáƒ”კვáƒáƒ¢áƒáƒ áƒ£áƒšáƒ˜ გვინე" + - "áƒáƒ¡áƒáƒ‘ერძნეთისáƒáƒ›áƒ®áƒ áƒ”თი გეáƒáƒ áƒ’ირდრსáƒáƒ›áƒ®áƒ áƒ”თ სენდვიჩის კუნძულებიგვáƒáƒ¢áƒ”მáƒáƒšáƒáƒ’უáƒ" + - "მიგვინეáƒ-ბისáƒáƒ£áƒ’áƒáƒ˜áƒáƒœáƒáƒ°áƒáƒœáƒ™áƒáƒœáƒ’ის სპეციáƒáƒšáƒ£áƒ áƒ˜ áƒáƒ“მინისტრáƒáƒªáƒ˜áƒ£áƒšáƒ˜ რეგიáƒáƒœáƒ˜ ჩინეთ" + - "იჰერდი დრმáƒáƒ™áƒ“áƒáƒœáƒáƒšáƒ“ის კუნძულებიჰáƒáƒœáƒ“ურáƒáƒ¡áƒ˜áƒ®áƒáƒ áƒ•áƒáƒ¢áƒ˜áƒáƒ°áƒáƒ˜áƒ¢áƒ˜áƒ£áƒœáƒ’რეთიკáƒáƒœáƒáƒ áƒ˜áƒ¡ კუ" + - "ნძულებიინდáƒáƒœáƒ”ზიáƒáƒ˜áƒ áƒšáƒáƒœáƒ“იáƒáƒ˜áƒ¡áƒ áƒáƒ”ლიმენის კუნძულიინდáƒáƒ”თიბრიტ. ტერიტ. ინდ. áƒ" + - "კეáƒáƒœáƒ”შიერáƒáƒ§áƒ˜áƒ˜áƒ áƒáƒœáƒ˜áƒ˜áƒ¡áƒšáƒáƒœáƒ“იáƒáƒ˜áƒ¢áƒáƒšáƒ˜áƒáƒ¯áƒ”რსიიáƒáƒ›áƒáƒ˜áƒ™áƒáƒ˜áƒáƒ áƒ“áƒáƒœáƒ˜áƒáƒ˜áƒáƒžáƒáƒœáƒ˜áƒáƒ™áƒ”ნიáƒáƒ§áƒ˜áƒ áƒ’იზე" + - "თიკáƒáƒ›áƒ‘áƒáƒ¯áƒáƒ™áƒ˜áƒ áƒ˜áƒ‘áƒáƒ¢áƒ˜áƒ™áƒáƒ›áƒáƒ áƒ˜áƒ¡ კუნძულებისენტ-კიტსი დრნევისიჩრდილáƒáƒ”თი კáƒáƒ áƒ”áƒáƒ¡" + - "áƒáƒ›áƒ®áƒ áƒ”თი კáƒáƒ áƒ”áƒáƒ¥áƒ£áƒ•áƒ”ითიკáƒáƒ˜áƒ›áƒáƒœáƒ˜áƒ¡ კუნძულებიყáƒáƒ–áƒáƒ®áƒ”თილáƒáƒáƒ¡áƒ˜áƒšáƒ˜áƒ‘áƒáƒœáƒ˜áƒ¡áƒ”ნტ-ლუსიáƒáƒšáƒ˜áƒ®" + - "ტენშტáƒáƒ˜áƒœáƒ˜áƒ¨áƒ áƒ˜-ლáƒáƒœáƒ™áƒáƒšáƒ˜áƒ‘ერიáƒáƒšáƒ”სáƒáƒ—áƒáƒšáƒ˜áƒ¢áƒ•áƒáƒšáƒ£áƒ¥áƒ¡áƒ”მბურგილáƒáƒ¢áƒ•áƒ˜áƒáƒšáƒ˜áƒ‘იáƒáƒ›áƒáƒ áƒáƒ™áƒáƒ›áƒáƒœáƒáƒ™áƒ" + - "მáƒáƒšáƒ“áƒáƒ•áƒáƒ›áƒáƒœáƒ¢áƒ”ნეგრáƒáƒ¡áƒ”ნ-მáƒáƒ áƒ¢áƒ”ნიმáƒáƒ“áƒáƒ’áƒáƒ¡áƒ™áƒáƒ áƒ˜áƒ›áƒáƒ áƒ¨áƒáƒšáƒ˜áƒ¡ კუნძულებიმáƒáƒ™áƒ”დáƒáƒœáƒ˜áƒáƒ›áƒáƒšáƒ˜" + - "მიáƒáƒœáƒ›áƒáƒ áƒ˜ (ბირმáƒ)მáƒáƒœáƒ¦áƒáƒšáƒ”თიმáƒáƒ™áƒáƒáƒ¡ სპეციáƒáƒšáƒ£áƒ áƒ˜ áƒáƒ“მინისტრáƒáƒªáƒ˜áƒ£áƒšáƒ˜ რეგიáƒáƒœáƒ˜ ჩინ" + - "ეთიჩრდილáƒáƒ”თ მáƒáƒ áƒ˜áƒáƒœáƒáƒ¡ კუნძულებიმáƒáƒ áƒ¢áƒ˜áƒœáƒ˜áƒ™áƒáƒ›áƒáƒ•áƒ áƒ˜áƒ¢áƒáƒœáƒ˜áƒáƒ›áƒáƒœáƒ¡áƒ”რáƒáƒ¢áƒ˜áƒ›áƒáƒšáƒ¢áƒáƒ›áƒáƒ•áƒ áƒ˜áƒ™áƒ˜" + - "მáƒáƒšáƒ“ივის რესპუბლიკáƒáƒ›áƒáƒšáƒáƒ•áƒ˜áƒ›áƒ”ქსიკáƒáƒ›áƒáƒšáƒáƒ˜áƒ–იáƒáƒ›áƒáƒ–áƒáƒ›áƒ‘იკინáƒáƒ›áƒ˜áƒ‘იáƒáƒáƒ®áƒáƒšáƒ˜ კáƒáƒšáƒ”დáƒáƒœáƒ˜" + - "áƒáƒœáƒ˜áƒ’ერინáƒáƒ áƒ¤áƒáƒšáƒ™áƒ˜áƒ¡ კუნძულინიგერიáƒáƒœáƒ˜áƒ™áƒáƒ áƒáƒ’უáƒáƒœáƒ˜áƒ“ერლáƒáƒœáƒ“ებინáƒáƒ áƒ•áƒ”გიáƒáƒœáƒ”პáƒáƒšáƒ˜áƒœáƒáƒ£áƒ " + - "უნიუეáƒáƒ®áƒáƒšáƒ˜ ზელáƒáƒœáƒ“იáƒáƒáƒ›áƒáƒœáƒ˜áƒžáƒáƒœáƒáƒ›áƒáƒžáƒ”რუსáƒáƒ¤áƒ áƒáƒœáƒ’ეთის პáƒáƒšáƒ˜áƒœáƒ”ზიáƒáƒžáƒáƒžáƒ£áƒ-áƒáƒ®áƒáƒšáƒ˜ გვი" + - "ნეáƒáƒ¤áƒ˜áƒšáƒ˜áƒžáƒ˜áƒœáƒ”ბიპáƒáƒ™áƒ˜áƒ¡áƒ¢áƒáƒœáƒ˜áƒžáƒáƒšáƒáƒœáƒ”თისენ-პიერი დრმიკელáƒáƒœáƒ˜áƒžáƒ˜áƒ¢áƒ™áƒ”რნის კუნძულები" + - "პუერტáƒ-რიკáƒáƒžáƒáƒšáƒ”სტინის ტერიტáƒáƒ áƒ˜áƒ”ბიპáƒáƒ áƒ¢áƒ£áƒ’áƒáƒšáƒ˜áƒáƒžáƒáƒšáƒáƒ£áƒžáƒáƒ áƒáƒ’ვáƒáƒ˜áƒ™áƒáƒ¢áƒáƒ áƒ˜áƒ¨áƒáƒ áƒ”ული " + - "áƒáƒ™áƒ”áƒáƒœáƒ”თირეუნიáƒáƒœáƒ˜áƒ áƒ£áƒ›áƒ˜áƒœáƒ”თისერბეთირუსეთირუáƒáƒœáƒ“áƒáƒ¡áƒáƒ£áƒ“ის áƒáƒ áƒáƒ‘ეთისáƒáƒšáƒáƒ›áƒáƒœáƒ˜áƒ¡ კუნ" + - "ძულებისეიშელის კუნძულებისუდáƒáƒœáƒ˜áƒ¨áƒ•áƒ”დეთისინგáƒáƒžáƒ£áƒ áƒ˜áƒ¬áƒ›áƒ˜áƒœáƒ“რელენეს კუნძულისლáƒ" + - "ვენიáƒáƒ¨áƒžáƒ˜áƒªáƒ‘ერგენი დრიáƒáƒœ-მáƒáƒ˜áƒ”ნისლáƒáƒ•áƒáƒ™áƒ”თისიერáƒ-ლეáƒáƒœáƒ”სáƒáƒœ-მáƒáƒ áƒ˜áƒœáƒáƒ¡áƒ”ნეგáƒáƒšáƒ˜áƒ¡áƒ" + - "მáƒáƒšáƒ˜áƒ¡áƒ£áƒ áƒ˜áƒœáƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒ®áƒ áƒ”თი სუდáƒáƒœáƒ˜áƒ¡áƒáƒœ-ტáƒáƒ›áƒ” დრპრინსიპისáƒáƒšáƒ•áƒáƒ“áƒáƒ áƒ˜áƒ¡áƒ˜áƒœáƒ¢-მáƒáƒ áƒ¢áƒ”ნისი" + - "რიáƒáƒ¡áƒ•áƒáƒ–ილენდიტრისტáƒáƒœ-დáƒ-კუნიáƒáƒ¢áƒ”რქსისრდრკáƒáƒ˜áƒ™áƒáƒ¡áƒ˜áƒ¡ კუნძულებიჩáƒáƒ“იფრáƒáƒœáƒ’ულ" + - "ი სáƒáƒ›áƒ®áƒ áƒ”თის ტერიტáƒáƒ áƒ˜áƒ”ბიტáƒáƒ’áƒáƒ¢áƒáƒ˜áƒšáƒáƒœáƒ“იტáƒáƒ¯áƒ˜áƒ™áƒ”თიტáƒáƒ™áƒ”ლáƒáƒ£áƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თი ტიმáƒáƒ áƒ˜áƒ—უ" + - "რქმენეთიტუნისიტáƒáƒœáƒ’áƒáƒ—ურქეთიტრინიდáƒáƒ“ი დრტáƒáƒ‘áƒáƒ’áƒáƒ¢áƒ£áƒ•áƒáƒšáƒ£áƒ¢áƒáƒ˜áƒ•áƒáƒœáƒ˜áƒ¢áƒáƒœáƒ–áƒáƒœáƒ˜áƒáƒ£áƒ™áƒ áƒ" + - "ინáƒáƒ£áƒ’áƒáƒœáƒ“áƒáƒáƒ¨áƒ¨-ის შáƒáƒ áƒ”ული კუნძულებიáƒáƒ›áƒ”რიკის შეერთებული შტáƒáƒ¢áƒ”ბიურუგვáƒáƒ˜áƒ£áƒ–ბ" + - "ეკეთიქáƒáƒšáƒáƒ¥áƒ˜ ვáƒáƒ¢áƒ˜áƒ™áƒáƒœáƒ˜áƒ¡áƒ”ნტ-ვინსენტი დრგრენáƒáƒ“ინებივენესუელáƒáƒ‘რიტáƒáƒœáƒ”თის ვი" + - "რჯინის კუნძულებიáƒáƒ¨áƒ¨-ის ვირჯინის კუნძულებივიეტნáƒáƒ›áƒ˜áƒ•áƒáƒœáƒ£áƒáƒ¢áƒ£áƒ£áƒáƒšáƒ˜áƒ¡áƒ˜ დრფუტუ" + - "ნáƒáƒ¡áƒáƒ›áƒáƒáƒ™áƒáƒ¡áƒáƒ•áƒáƒ˜áƒ”მენიმáƒáƒ˜áƒáƒ¢áƒáƒ¡áƒáƒ›áƒ®áƒ áƒ”თ áƒáƒ¤áƒ áƒ˜áƒ™áƒ˜áƒ¡ რესპუბლიკáƒáƒ–áƒáƒ›áƒ‘იáƒáƒ–იმბáƒáƒ‘ვეუცნáƒáƒ‘" + - "ი რეგიáƒáƒœáƒ˜áƒ›áƒ¡áƒáƒ¤áƒšáƒ˜áƒáƒáƒ¤áƒ áƒ˜áƒ™áƒáƒ©áƒ áƒ“ილáƒáƒ”თი áƒáƒ›áƒ”რიკáƒáƒ¡áƒáƒ›áƒ®áƒ áƒ”თი áƒáƒ›áƒ”რიკáƒáƒáƒ™áƒ”áƒáƒœáƒ”თიდáƒáƒ¡áƒáƒ•áƒšáƒ”" + - "თი áƒáƒ¤áƒ áƒ˜áƒ™áƒáƒªáƒ”ნტრáƒáƒšáƒ£áƒ áƒ˜ áƒáƒ›áƒ”რიკáƒáƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თი áƒáƒ¤áƒ áƒ˜áƒ™áƒáƒ©áƒ áƒ“ილáƒáƒ”თი áƒáƒ¤áƒ áƒ˜áƒ™áƒáƒ¨áƒ£áƒ áƒáƒ¤áƒ áƒ˜áƒ™" + - "áƒáƒ¡áƒáƒ›áƒ®áƒ áƒ”თი áƒáƒ¤áƒ áƒ˜áƒ™áƒáƒáƒ›áƒ”რიკებიáƒáƒ›áƒ”რიკის ჩრდილáƒáƒ”თიკáƒáƒ áƒ˜áƒ‘ის ზღვáƒáƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თი áƒáƒ–ი" + - "áƒáƒ¡áƒáƒ›áƒ®áƒ áƒ”თი áƒáƒ–იáƒáƒ¡áƒáƒ›áƒ®áƒ áƒ”თ-áƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თი áƒáƒ–იáƒáƒ¡áƒáƒ›áƒ®áƒ áƒ”თი ევრáƒáƒžáƒáƒáƒ•áƒ¡áƒ¢áƒ áƒáƒšáƒáƒ–იáƒáƒ›áƒ”ლáƒáƒœáƒ”" + - "ზიáƒáƒ›áƒ˜áƒ™áƒ áƒáƒœáƒ”ზიის რეგიáƒáƒœáƒ˜áƒžáƒáƒšáƒ˜áƒœáƒ”ზიáƒáƒáƒ–იáƒáƒªáƒ”ნტრáƒáƒšáƒ£áƒ áƒ˜ áƒáƒ–იáƒáƒ“áƒáƒ¡áƒáƒ•áƒšáƒ”თი áƒáƒ–იáƒáƒ”ვრáƒáƒžáƒ" + - "áƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თი ევრáƒáƒžáƒáƒ©áƒ áƒ“ილáƒáƒ”თი ევრáƒáƒžáƒáƒ“áƒáƒ¡áƒáƒ•áƒšáƒ”თი ევრáƒáƒžáƒáƒšáƒáƒ—ინური áƒáƒ›áƒ”რიკáƒ" - -// Size: 606 bytes, 291 elements -var kaRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0031, 0x0043, 0x009c, 0x00b4, 0x00e6, 0x00fb, 0x0113, - 0x0128, 0x0168, 0x017a, 0x0198, 0x01b3, 0x01db, 0x01f0, 0x020b, - 0x021a, 0x024b, 0x026c, 0x02a7, 0x02c2, 0x02e0, 0x02f2, 0x0314, - 0x032f, 0x0347, 0x035c, 0x036e, 0x0390, 0x03a5, 0x03b7, 0x03cc, - 0x0406, 0x041e, 0x044f, 0x0464, 0x0470, 0x0488, 0x04a0, 0x04b2, - 0x04c4, 0x04f5, 0x051c, 0x056f, 0x059c, 0x05b7, 0x05d6, 0x0601, - 0x060d, 0x0625, 0x0637, 0x064f, 0x0686, 0x06a2, 0x06ae, 0x06ca, - 0x06e2, 0x0707, 0x071f, 0x0753, 0x076b, 0x078d, 0x079f, 0x07ae, - // Entry 40 - 7F - 0x07c6, 0x0806, 0x0818, 0x0841, 0x0859, 0x0871, 0x0886, 0x08b4, - 0x08c9, 0x08e1, 0x08f6, 0x0917, 0x0929, 0x0935, 0x096f, 0x098d, - 0x09be, 0x09dc, 0x09ee, 0x0a16, 0x0a2b, 0x0a49, 0x0a7d, 0x0a8f, - 0x0a9b, 0x0ab9, 0x0ad7, 0x0ae9, 0x0afb, 0x0b16, 0x0b47, 0x0b65, - 0x0be8, 0x0c03, 0x0c12, 0x0c34, 0x0c46, 0x0cd7, 0x0d2b, 0x0d46, - 0x0d5e, 0x0d6d, 0x0d82, 0x0db3, 0x0dce, 0x0de6, 0x0dfb, 0x0e20, - 0x0e35, 0x0e77, 0x0e86, 0x0e95, 0x0ead, 0x0ebf, 0x0ece, 0x0ee3, - 0x0efb, 0x0f10, 0x0f1f, 0x0f3a, 0x0f4f, 0x0f67, 0x0f98, 0x0fce, - // Entry 80 - BF - 0x0ff9, 0x1021, 0x1036, 0x106a, 0x1082, 0x1091, 0x10a3, 0x10bf, - 0x10e3, 0x10fc, 0x1111, 0x1123, 0x1132, 0x1153, 0x1165, 0x1174, - 0x1186, 0x1198, 0x11ad, 0x11cb, 0x11ea, 0x120b, 0x123f, 0x125a, - 0x1266, 0x1290, 0x12ab, 0x1333, 0x1380, 0x139b, 0x13b9, 0x13d4, - 0x13e3, 0x13f8, 0x142f, 0x1441, 0x1456, 0x146e, 0x1489, 0x149e, - 0x14c9, 0x14db, 0x150c, 0x1521, 0x153c, 0x1560, 0x1578, 0x158a, - 0x1599, 0x15a5, 0x15cd, 0x15dc, 0x15ee, 0x15fa, 0x1637, 0x1669, - 0x1687, 0x16a2, 0x16ba, 0x16f3, 0x172a, 0x1749, 0x1789, 0x17a7, - // Entry C0 - FF - 0x17b6, 0x17ce, 0x17e0, 0x180e, 0x1826, 0x183e, 0x1853, 0x1865, - 0x1877, 0x189f, 0x18d6, 0x190a, 0x191c, 0x1931, 0x194c, 0x1987, - 0x199f, 0x19e4, 0x19ff, 0x1a1e, 0x1a3a, 0x1a52, 0x1a64, 0x1a7c, - 0x1aa7, 0x1add, 0x1af8, 0x1b1a, 0x1b29, 0x1b47, 0x1b73, 0x1bc7, - 0x1bd3, 0x1c29, 0x1c35, 0x1c4d, 0x1c65, 0x1c7a, 0x1cae, 0x1ccc, - 0x1cde, 0x1ced, 0x1d02, 0x1d37, 0x1d49, 0x1d5e, 0x1d76, 0x1d8b, - 0x1d9d, 0x1ddf, 0x1e2c, 0x1e41, 0x1e59, 0x1e84, 0x1ed2, 0x1eed, - 0x1f40, 0x1f85, 0x1f9d, 0x1fb2, 0x1fde, 0x1fed, 0x1fff, 0x2011, - // Entry 100 - 13F - 0x2023, 0x206d, 0x207f, 0x2097, 0x20bf, 0x20d4, 0x20e6, 0x2117, - 0x2145, 0x215d, 0x218b, 0x21bf, 0x21f3, 0x2221, 0x223d, 0x2268, - 0x2283, 0x22b7, 0x22d9, 0x2307, 0x232c, 0x2370, 0x239b, 0x23bc, - 0x23d7, 0x240e, 0x2429, 0x2435, 0x2460, 0x2488, 0x249a, 0x24ce, - 0x24fc, 0x252a, 0x2558, -} - -// Size: 5988 bytes -var kkRegionStr string = "" + - "Ғибадат аралыÐндорраБіріккен Ðраб ЭмираттарыÐуғанÑтанÐнтигуа мен Барбуда" + - "ÐнгильÑÐлбаниÑÐрмениÑÐнголаÐнтарктикаÐргентинаÐмерикан СамоаÑÑ‹ÐвÑтриÑÐв" + - "ÑтралиÑÐрубаÐланд аралдарыӘзербайжанБоÑÐ½Ð¸Ñ Ð¶Ó™Ð½Ðµ ГерцеговинаБарбадоÑБанг" + - "ладешБельгиÑБуркина-ФаÑоБолгариÑБахрейнБурундиБенинСен-БартелемиБермуд " + - "аралдарыБрунейБоливиÑКариб ÐидерландыÑыБразилиÑБагам аралдарыБутанБуве " + - "аралыБотÑванаБеларуÑÑŒÐ‘ÐµÐ»Ð¸Ð·ÐšÐ°Ð½Ð°Ð´Ð°ÐšÐ¾ÐºÐ¾Ñ Ð°Ñ€Ð°Ð»Ð´Ð°Ñ€Ñ‹ÐšÐ¾Ð½Ð³Ð¾ÐžÑ€Ñ‚Ð°Ð»Ñ‹Ò› Ðфрика РеÑпу" + - "бликаÑыКонго-Браззавиль РеÑпубликаÑыШвейцариÑКот-д’ИвуарКук аралдарыЧил" + - "иКамерунҚытайКолумбиÑКлиппертон аралыКоÑта-РикаКубаКабо-ВердеКюраÑаоКри" + - "ÑÑ‚Ð¼Ð°Ñ Ð°Ñ€Ð°Ð»Ñ‹ÐšÐ¸Ð¿Ñ€Ð§ÐµÑ… РеÑпубликаÑыГерманиÑДиего-ГарÑиÑДжибутиДаниÑДоминика" + - "Доминикан РеÑпубликаÑÑ‹ÐлжирСеута мен МелильÑЭквадорЭÑтониÑМыÑÑ‹Ñ€Ð‘Ð°Ñ‚Ñ‹Ñ Ð¡Ð°" + - "хараЭритреÑИÑпаниÑЭфиопиÑЕуропалық ОдақФинлÑндиÑФиджиФолкленд аралдарыМ" + - "икронезиÑФарер аралдарыФранциÑГабонБірікккен КорольдікГренадаГрузиÑФран" + - "цуз ГвианаÑыГернÑиГанаГибралтарГренландиÑГамбиÑГвинеÑГваделупаЭкваторлы" + - "Ò› ГвинеÑГрециÑОңтүÑтік Ð“ÐµÐ¾Ñ€Ð³Ð¸Ñ Ð¶Ó™Ð½Ðµ ОңтүÑтік Сандвичев аралыГватемалаГу" + - "амГвинеÑ-БиÑауГайанаҚытай Халық РеÑпубликаÑының Гонг-Конг арнайы әкімші" + - "лік ауданыХерд аралы мен Макдональд аралыГондураÑХорватиÑГаитиВенгриÑКа" + - "нар аралдарыИндонезиÑИрландиÑИзраильМÑн аралыҮндіÑтанҮнді мұхитындағы Б" + - "ритан аймағыИракИранИÑландиÑИталиÑДжерÑиЯмайкаИорданиÑЖапониÑКениÑҚырғы" + - "зÑтанКамбоджаКирибатиКоморСент-ÐšÐ¸Ñ‚Ñ Ð¶Ó™Ð½Ðµ ÐевиÑОңтүÑтік КореÑСолтүÑтік К" + - "ореÑКувейтКайман аралдарыҚазақÑтанЛаоÑЛиванСент-ЛюÑиÑЛихтенштейнШри-Лан" + - "каЛибериÑЛеÑотоЛитваЛюкÑембургЛатвиÑЛибиÑМороккоМонакоМолдоваЧерногориÑ" + - "Сен-МартенМадагаÑкарМаршалл аралдарыМакедониÑМалиМьÑнма (Бирма)МоңғолиÑ" + - "Қытай Халық РеÑпубликаÑының Макао арнайы әкімшілік ауданыСолтүÑтік Мари" + - "ан аралдарыМартиникаМавританиÑМонтÑерратМальтаМаврикийМальдив РеÑпублик" + - "аÑыМалавиМекÑикаМалайзиÑМозамбикÐамибиÑЖаңа КаледониÑÐигерÐорфолк аралы" + - "ÐигериÑÐикарагуаГолландиÑÐорвегиÑÐепалÐауруÐиуÑЖаңа ЗеландиÑОманПанамаП" + - "еруФранцуз ПолинезиÑÑыПапуа — Жаңа ГвинеÑФилиппиндерПәкіÑтанПольшаСен-П" + - "ьер және МикелонПиткÑрн аралдарыПуÑрто-РикоПалеÑтина аймақтарыПортугали" + - "ÑПалауПарагвайКатарÐÐ»Ñ‹Ñ ÐžÐºÐµÐ°Ð½Ð¸ÑРеюньонРумыниÑСербиÑРеÑейРуандаСауд Ðраб" + - "иÑÑыСоломон аралдарыСейшель аралдарыСуданШвециÑСингапурӘулие Елена арал" + - "ыСловениÑШпицберген мен Ян-МайенСловакиÑСьерра-ЛеонеСан-МариноСенегалСо" + - "малиСуринамОңтүÑтік СуданСан-Томе мен ПринÑипиСальвадорСинт-МартенСириÑ" + - "СвазилендТриÑтан-да-КуньÑÐ¢ÑƒÑ€ÐºÑ Ð¿ÐµÐ½ КайкоÑЧадФранциÑның ÑолтүÑтік аймағы" + - "ТогоТайландТәжікÑтанТокелауТимор-ЛеÑтеТүрікменÑтанТуниÑТонгаТүркиÑТрини" + - "дад пен ТобагоТувалуТайваньТанзаниÑУкраинаУгандаÐҚШ-Ñ‚Ñ‹Ò£ ішкі кіші аралд" + - "арыÐҚШУругвайӨзбекÑтанВатиканСент-ВинÑент және ГренадиндерВенеÑуÑлаБрит" + - "андық Виргин аралдарыÐҚШ-Ñ‚Ñ‹Ò£ Виргин Ð°Ñ€Ð°Ð»Ð´Ð°Ñ€Ñ‹Ð’ÑŒÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ£Ð¾Ð»Ð»Ð¸Ñ Ð¿ÐµÐ½ Фу" + - "тунаСамоаКоÑовоЙеменМайоттаОңтүÑтік Ðфрика реÑпубликаÑыЗамбиÑЗимбабвеБе" + - "лгіÑіз аймақӘлемÐфрикаСолтүÑтік ÐмерикаОңтүÑтік ÐмерикаОкеаниÑÐ‘Ð°Ñ‚Ñ‹Ñ ÐÑ„Ñ€" + - "икаОрталық ÐÐ¼ÐµÑ€Ð¸ÐºÐ°Ð¨Ñ‹Ò“Ñ‹Ñ ÐфрикаСолтүÑтік ÐфрикаОрталық ÐфрикаОңтүÑтік ÐÑ„" + - "рикаÐмерикаларÐмериканың ÑолтүÑÑ‚Ñ–Ð³Ñ–ÐšÐ°Ñ€Ð¸Ð±Ð¨Ñ‹Ò“Ñ‹Ñ ÐзиÑОңтүÑтік ÐзиÑОңтүÑтік" + - "-ÑˆÑ‹Ò“Ñ‹Ñ ÐзиÑОңтүÑтік ЕуропаÐвÑтралазиÑМеланезиÑÐœÐ¸ÐºÑ€Ð¾Ð½ÐµÐ·Ð¸Ñ Ñ€ÐµÐ³Ð¸Ð¾Ð½Ñ‹ÐŸÐ¾Ð»Ð¸Ð½ÐµÐ·Ð¸" + - "ÑÐзиÑОрталық ÐзиÑÐ‘Ð°Ñ‚Ñ‹Ñ ÐзиÑÐ•ÑƒÑ€Ð¾Ð¿Ð°Ð¨Ñ‹Ò“Ñ‹Ñ Ð•ÑƒÑ€Ð¾Ð¿Ð°Ð¡Ð¾Ð»Ñ‚Ò¯Ñтік Ð•ÑƒÑ€Ð¾Ð¿Ð°Ð‘Ð°Ñ‚Ñ‹Ñ Ð•ÑƒÑ€Ð¾" + - "паЛатын ÐмерикаÑÑ‹" - -// Size: 606 bytes, 291 elements -var kkRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0019, 0x0027, 0x0055, 0x0067, 0x008b, 0x0099, 0x00a7, - 0x00b5, 0x00b5, 0x00c1, 0x00d5, 0x00e7, 0x0106, 0x0114, 0x0126, - 0x0130, 0x014b, 0x015f, 0x018b, 0x019b, 0x01ad, 0x01bb, 0x01d2, - 0x01e2, 0x01f0, 0x01fe, 0x0208, 0x0221, 0x023e, 0x024a, 0x0258, - 0x027b, 0x028b, 0x02a6, 0x02b0, 0x02c3, 0x02d3, 0x02e3, 0x02ed, - 0x02f9, 0x0314, 0x031e, 0x0352, 0x038a, 0x039c, 0x03b2, 0x03c9, - 0x03d1, 0x03df, 0x03e9, 0x03f9, 0x0418, 0x042b, 0x0433, 0x0446, - 0x0454, 0x046f, 0x0477, 0x0496, 0x04a6, 0x04bd, 0x04cb, 0x04d5, - // Entry 40 - 7F - 0x04e5, 0x0510, 0x051a, 0x053a, 0x0548, 0x0556, 0x0560, 0x0577, - 0x0585, 0x0593, 0x05a1, 0x05bc, 0x05ce, 0x05d8, 0x05f9, 0x060d, - 0x0628, 0x0636, 0x0640, 0x0665, 0x0673, 0x067f, 0x069e, 0x06aa, - 0x06b2, 0x06c4, 0x06d8, 0x06e4, 0x06f0, 0x0702, 0x0723, 0x072f, - 0x0786, 0x0798, 0x07a0, 0x07b7, 0x07c3, 0x0836, 0x0870, 0x0880, - 0x0890, 0x089a, 0x08a8, 0x08c3, 0x08d5, 0x08e5, 0x08f3, 0x0904, - 0x0914, 0x094d, 0x0955, 0x095d, 0x096d, 0x0979, 0x0985, 0x0991, - 0x09a1, 0x09af, 0x09b9, 0x09cd, 0x09dd, 0x09ed, 0x09f7, 0x0a1c, - // Entry 80 - BF - 0x0a37, 0x0a54, 0x0a60, 0x0a7d, 0x0a8f, 0x0a97, 0x0aa1, 0x0ab4, - 0x0aca, 0x0adb, 0x0ae9, 0x0af5, 0x0aff, 0x0b13, 0x0b1f, 0x0b29, - 0x0b37, 0x0b43, 0x0b51, 0x0b65, 0x0b78, 0x0b8c, 0x0bab, 0x0bbd, - 0x0bc5, 0x0bde, 0x0bee, 0x0c5a, 0x0c8a, 0x0c9c, 0x0cb0, 0x0cc4, - 0x0cd0, 0x0ce0, 0x0d07, 0x0d13, 0x0d21, 0x0d31, 0x0d41, 0x0d4f, - 0x0d6a, 0x0d74, 0x0d8d, 0x0d9b, 0x0dad, 0x0dbf, 0x0dcf, 0x0dd9, - 0x0de3, 0x0deb, 0x0e04, 0x0e0c, 0x0e18, 0x0e20, 0x0e45, 0x0e69, - 0x0e7f, 0x0e8f, 0x0e9b, 0x0ec2, 0x0ee1, 0x0ef6, 0x0f1b, 0x0f2f, - // Entry C0 - FF - 0x0f39, 0x0f49, 0x0f53, 0x0f6a, 0x0f78, 0x0f86, 0x0f92, 0x0f9c, - 0x0fa8, 0x0fc1, 0x0fe0, 0x0fff, 0x1009, 0x1015, 0x1025, 0x1045, - 0x1055, 0x1080, 0x1090, 0x10a7, 0x10ba, 0x10c8, 0x10d4, 0x10e2, - 0x10fd, 0x1124, 0x1136, 0x114b, 0x1155, 0x1167, 0x1185, 0x11a3, - 0x11a9, 0x11dd, 0x11e5, 0x11f3, 0x1205, 0x1213, 0x1228, 0x1240, - 0x124a, 0x1254, 0x1260, 0x1284, 0x1290, 0x129e, 0x12ae, 0x12bc, - 0x12c8, 0x12f8, 0x12fe, 0x130c, 0x131e, 0x132c, 0x1363, 0x1375, - 0x13a5, 0x13d0, 0x13de, 0x13ec, 0x140c, 0x1416, 0x1422, 0x142c, - // Entry 100 - 13F - 0x143a, 0x1470, 0x147c, 0x148c, 0x14a7, 0x14af, 0x14bb, 0x14dc, - 0x14fb, 0x1509, 0x1520, 0x153d, 0x1554, 0x1573, 0x158e, 0x15ab, - 0x15bf, 0x15e8, 0x15f2, 0x1605, 0x161e, 0x1642, 0x165f, 0x1675, - 0x1687, 0x16aa, 0x16bc, 0x16c4, 0x16db, 0x16ee, 0x16fa, 0x1711, - 0x1730, 0x1747, 0x1764, -} - -// Size: 9032 bytes -var kmRegionStr string = "" + - "កោះ\u200bអាសáŸáž“សិនអង់ដូរ៉ាអáŸáž˜áž¸ážšáŸ‰áŸ‚ទអារ៉ាប់រួមអាហ្វហ្គានីស្ážáž¶áž“អង់ទីគáŸážš áž“áž·áž„" + - "\u200bបាបុយដាអង់កូឡាអាល់បានីអារមáŸáž“ីអង់ហ្គោឡាអង់ážáž¶áž‘ីកាអាហ្សង់ទីនសៅម៉ៅ អាម" + - "áŸážšáž·áž€áž¢áž¼áž‘្រីសអូស្ážáŸ’រាលីអារូបាកោះ\u200bអាឡាំងអាហ៊្សែរបែហ្សង់បូស្ន៉ីបារបាដ" + - "ូសបង់ក្លាដáŸážŸáŸ’ហបែលហ្ស៉ិកប៊ូរគីណាហ្វាសូប៊ុលហ្គារីបារ៉ែនប៊ូរុនឌីបáŸážŽáž¶áŸ†áž„សង់" + - " បាážáŸáž¡áŸáž˜áŸ‰áž¸áž”៊ឺមុយដាព្រុយណáŸáž”ូលីវីហុល្លង់ ការ៉ាប៊ីនប្រáŸážŸáŸŠáž¸áž›áž”ាហាម៉ាប៊ូážáž¶áž“កោះ" + - "\u200bប៊ូវ៉áŸážáž”áž»ážážŸáŸ’វាណាបáŸáž¡áž¶ážšáž»ážŸáŸ’សបáŸáž›áž¸áž áŸ’សកាណាដាកោះ\u200bកូកូសកុងហ្គោ- គីនស្" + - "ហាសាសាធារណរដ្ឋអាហ្វ្រិកកណ្ដាលកុងហ្គោ - ប្រាហ្សាវីលស្វីសកូដឌីវáŸážšáž€áŸ„ះ" + - "\u200bážáž¼áž€ážŸáŸŠáž¸áž›áž¸áž€áž¶áž˜áŸážšáž¼áž“ចិនកូឡុំប៊ីកោះ\u200bឃ្លីភឺážáž»áž“កូស្ážáž¶ážšáž¸áž€áž¶áž‚ុយបាកាបវែរក" + - "ូរ៉ាកៅកោះ\u200bគ្រីស្មាសស៉ីពរáŸážŸáž¶áž’ារណរដ្ឋឆáŸáž€áž¢áž¶áž›áŸ’លឺម៉ង់ឌៀហ្គោហ្គាស៊ីហ្ស៉" + - "ីបូទីដាណឺម៉ាកដូមីនីកាសាធារណរដ្ឋដូមីនីកែនអាល់ហ្សáŸážšáž¸áž‡ážºážáž¶ áž“áž·áž„\u200bម៉áŸáž›áž¸áž¡" + - "ាអáŸáž€áŸ’វាឌáŸážšáž¢áŸážŸáŸ’ážáž¼áž“ីអáŸáž áŸ’ស៉ីបសាហារ៉ាážáž¶áž„លិចអáŸážšáž¸áž‘្រាអáŸážŸáŸ’ប៉ាញអáŸážáŸ’យូពីសហភាព" + - "\u200bអឺរ៉ុបហ្វាំងឡង់ហ្វីជីកោះ\u200bហ្វក់ឡែនមិក្រូនáŸážŸáŸŠáž¸áž€áŸ„ះ\u200bហ្វារ៉ូប" + - "ារាំងហ្គាបុងចក្រភព\u200bអង់គ្លáŸážŸáž áŸ’គ្រើណាដហ្សកហ្ស៉ីហ្វ្វáŸáž“\u200bហ្គៀណាហ" + - "្គáŸáž“ស៊ីហ្គាណាហ្គីប្រាលážáž¶áž áŸ’គ្រោអង់ឡង់ហ្គាំប៊ីហ្គីណáŸáž áŸ’គោដឺឡុបហ្គីណáŸáž¢áŸáž€áŸ’ážœ" + - "ាទáŸážšáž€áŸ’រិចកោះ\u200bហ្សកហ្ស៊ី\u200bážáž¶áž„\u200bážáŸ’បូង áž“áž·áž„\u200bសាន់វិច\u200b" + - "ážáž¶áž„\u200bážáŸ’បូងហ្គាážáŸáž˜áŸ‰áž¶áž¡áž¶áž áŸ’គាំហ្គីណáŸáž”៊ីសូហ្គីយ៉ាណាហុងកុងកោះ\u200bហឺដ áž“" + - "áž·áž„\u200bម៉ាក់ដូណាល់ហុងឌួរ៉ាស់ក្រូអាážáž áŸƒáž‘ីហុងគ្រីកោះ\u200bកាណារីឥណ្ឌូណáŸážŸ" + - "៊ីអៀរឡង់អ៊ីស្រាអែលអែលអុហ្វមែនឥណ្ឌាដែន\u200bមហា\u200bសមុទ្រ\u200bឥណ្ឌា " + - "ចក្រភព\u200bអង់គ្លáŸážŸáž¢áŸŠáž¸ážšáŸ‰áž¶áž€áŸ‹áž¢áŸŠáž¸ážšáŸ‰áž„់អ៊ីស្លង់អ៊ីážáž¶áž›áž¸áž‡ážºážŸáŸŠáž¸áž áŸ’សាម៉ាអ៉ិគហ៊្ស" + - "កដានីជប៉ុនកáŸáž“យ៉ាគៀរហ្គីស្ážáž„់កម្ពុជាគិរិបាទីកុំម៉ូរ៉ូសសង់ឃីហនិង\u200bណ" + - "áŸážœáž¸ážŸáž€áž¼ážšáŸ‰áŸ\u200bážáž¶áž„\u200bជើងកូរ៉áŸ\u200bážáž¶áž„\u200bážáŸ’បូងគុយវ៉ែážáž€áŸ„ះ\u200bកៃ" + - "ម៉ង់កាហ្សាក់ស្ážáž¶áž„់់ឡាវលីបង់សង់\u200bលូសៀលិចទáŸáž“ស្ážáŸ‚នស្រីលង្កាលីបáŸážšáž¸áž™áŸ‰áž¶áž›" + - "ើសូážáž¼áž›áž¸áž‘ុយអានីលុចហ្សំបួរឡាážážœáž¸áž™áŸ‰áž¶áž›áž¸áž”៊ីម៉ារ៉ុកម៉ូណាកូសាធារណរដ្ឋម៉ុលដាវីម" + - "៉ុងážáŸážŽáŸáž áŸ’គ្រោសង់\u200bម៉ាទីនម៉ាដាហ្កាស្ការកោះ\u200bម៉ាស់សលម៉ាសáŸážŠáž“ម៉ាលី" + - "មីយ៉ាន់ម៉ា (ភូមា)ម៉ុងហ្គោលីម៉ាកាវកោះ\u200bម៉ារីណា\u200bážáž¶áž„\u200bជើងម៉ា" + - "ទីនីកម៉ូរីážáž¶áž“ីម៉ុង\u200bសáŸážšáŸ‰áž„់ម៉ាល់ážáž¶áž˜áŸ‰áž¼ážšáž¸áž‘ុសម៉ាល់ឌីវម៉ាឡាវីម៉ិចសិកម៉ា" + - "áž¡áŸážŸáŸŠáž¸áž˜áŸ‰áž¼áž áŸ’សាំប៊ិកណាមីប៊ីញូកាឡáŸážŠáž¼áž“ៀនីហ្សáŸážšáž€áŸ„ះ\u200bណáŸážšáž áŸ’វក់នីហ្សáŸážšáž¸áž™áŸ‰áž¶áž“" + - "ីការ៉ាហ្គáŸážšáž áž»áž›áŸ’លង់នáŸážšážœáŸ‚សនáŸáž”៉ាល់ណូរូណៀនូវែលហ្សáŸáž¡áž„់អូម៉ង់ប៉ាណាម៉ាប៉áŸážšáž¼áž áŸ’" + - "វ្រáŸáž“\u200bប៉ូលី\u200bណáŸážŸáŸŠáž¸áž”៉ាពូអានូវែលហ្គីណáŸáž áŸ’វីលីពីនប៉ាគីស្ážáž¶áž“ប៉ូលូញ" + - "សង់ព្យែរ áž“áž·áž„\u200bមីគីឡុងកោះ\u200bភីážážáž¶ážšáž·áž“áž–áŸážšážáž¼ážšáž¸áž€áž¼ážŠáŸ‚áž“\u200bប៉ាលáŸážŸáŸ’ទីន" + - "áž–áŸážšáž‘ុយហ្កាល់ផៅឡូប៉ារ៉ាហ្គាយកាážáž¶ážšáž¢áŸ…លីយីង អុកស៊ីនរ៉áŸáž¢áŸŠáž»áž™áŸ‰áž»áž„រូម៉ានីសើបរុស" + - "្ស៊ីរវ៉ាន់ដាអារ៉ាប៊ីសាអ៊ូឌីážáž€áŸ„ះ\u200bស៊ូឡូម៉ុងសីសែលស៊ូដង់ស៊ុយអែដសិង្ហប" + - "ុរីសង់\u200báž áŸáž¡áŸážŽáž¶ážŸáŸ’លូវáŸáž“ីស្វាប៊ឺហនិង\u200bហ្យង់ម៉ាយáŸáž“ស្លូវ៉ាគីសáŸážšáŸ‰áž¶áž¡" + - "áŸáž¢áž¼áž“សាន\u200bម៉ារីណូសáŸáž“áŸáž áŸ’កាល់សូម៉ាលីសូរីណាមស៊ូដង់\u200bážáž¶áž„\u200bážáŸ’បូង" + - "សៅ\u200bážáž»áŸ† áž“áž·áž„\u200bព្រីនស៊ីប៉áŸáž¢áŸ‚លសាល់វ៉ាឌáŸážšážŸáž¸áž„\u200bម៉ាធីនស៊ីរីសូហ្ស" + - "៉ីឡង់ទ្រីស្ážáž„់\u200bដា\u200bចូនហាកោះ\u200bកៃកូស និងទូកឆាដដែន\u200bបារា" + - "ំង\u200bážáž¶áž„\u200bážáŸ’បូងážáž¼áž áŸ’áž‚áž¼ážáŸƒážáž¶ážŠáž áŸ’ស៉ីគីស្ážáž„់ážáž¼ážáŸáž¡áŸ…ទីមáŸážšáž‘ួគមáŸáž“ីស្ážáž„់ទុ" + - "យនáŸážŸáŸŠáž¸ážáž»áž„ហ្គាទួរគីទ្រីនីដាហនិង\u200bážáž¼áž”ាហ្គោទូវ៉ាលូážáŸƒážœáŸ‰áž¶áž“់ážáž„់ហ្សានីអ៊" + - "ុយក្រែនអ៊ូហ្កង់ដាកោះ\u200bអៅឡាយីង\u200bអាមáŸážšáž·áž€ážŸáž ážšážŠáŸ’ឋអាមáŸážšáž·áž€áž¢áŸŠáž»áž™ážšáž»áž™áž áŸ’គា" + - "យអ៊ូហ្សបáŸáž‚ីស្ážáž„់ទីក្រុងវ៉ាទីកង់សាំង\u200bវីនសáŸáž“ áž“áž·áž„\u200bឌឹ\u200bហ្គ្រ" + - "ីណាឌីនីសវáŸáž“áŸáž áŸ’ស៊ុយឡាកោះ\u200bវឺជិន\u200bចក្រភព\u200bអង់គ្លáŸážŸáž€áŸ„ះ\u200bážœ" + - "ឺជីន\u200bអាមáŸážšáž·áž€ážœáŸ€ážážŽáž¶áž˜ážœáŸ‰áž¶áž“់ណៅទូវ៉ាលីស áž“áž·áž„\u200bហ្វូទូណាសាមូអាកូសូវ៉ូយ" + - "áŸáž˜áŸ‚នម៉ាយុážáž¢áž¶áž–្រិក\u200bភាគ\u200bážáž¶áž„\u200bážáŸ’បូងហ្សាំប៊ីហ្ស៊ីមបាបវ៉áŸáž˜áž·áž“" + - "\u200bស្គាល់\u200bážáŸ†áž”ន់ពិភពលោកអាហ្វ្រិកអាមáŸážšáž·áž€\u200bážáž¶áž„\u200bជើងអាមáŸážšáž·áž€" + - "\u200bážáž¶áž„\u200bážáŸ’បូងមហា\u200bសមុទ្រអាព្រិក\u200bážáž¶áž„\u200bលិចអាមáŸážšáž·áž€" + - "\u200bកណ្ដាលអាព្រិក\u200bážáž¶áž„\u200bកើážáž¢áž¶áž–្រិក\u200bážáž¶áž„\u200bជើងអាព្រិក" + - "\u200bកណ្ដាលអាព្រិក\u200bážáž¶áž„\u200bážáŸ’បូងអាមáŸážšáž·áž€áž¢áž¶áž˜áŸážšáž·áž€\u200bភាគ\u200bážáž¶áž„" + - "\u200bជើងការ៉ាប៊ីនអាស៊ី\u200bážáž¶áž„\u200bកើážáž¢áž¶ážŸáŸŠáž¸\u200bážáž¶áž„\u200bážáŸ’បូងអាស៊ី " + - "អាគ្នáŸáž™áŸáž¢ážºážšáŸ‰áž»áž”\u200bážáž¶áž„\u200bážáŸ’បូងអូស្ážáŸ’រាឡាស៊ីមáŸáž¡áŸ‚ណáŸážŸáŸŠáž¸ážáŸ†áž”ន់\u200bមីក" + - "្រូណáŸážŸáŸŠáž¸áž”៉ូលីណáŸážŸáŸŠáž¸áž¢áž¶ážŸáŸŠáž¸áž¢áž¶ážŸáŸŠáž¸\u200bកណ្ដាលអាស៊ី\u200bážáž¶áž„\u200bលិចអឺរ៉ុបអ" + - "ឺរ៉ុប\u200bážáž¶áž„\u200bកើážáž¢ážºážšáŸ‰áž»áž”\u200bážáž¶áž„\u200bជើងអឺរ៉ុប\u200bážáž¶áž„\u200bលិ" + - "ចអាមáŸážšáž·áž€\u200bឡាទីន" - -// Size: 606 bytes, 291 elements -var kmRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0024, 0x003c, 0x0072, 0x00a2, 0x00dc, 0x00f1, 0x0109, - 0x011e, 0x011e, 0x0139, 0x0154, 0x0172, 0x0197, 0x01ac, 0x01ca, - 0x01dc, 0x01fa, 0x0227, 0x023c, 0x0254, 0x0278, 0x0293, 0x02bd, - 0x02db, 0x02ed, 0x0305, 0x0317, 0x033c, 0x0354, 0x0369, 0x037b, - 0x03ac, 0x03c4, 0x03d9, 0x03eb, 0x040c, 0x0427, 0x0442, 0x0457, - 0x0469, 0x0484, 0x04b6, 0x0501, 0x053a, 0x0549, 0x0561, 0x0576, - 0x0585, 0x059a, 0x05a3, 0x05bb, 0x05e2, 0x0600, 0x060f, 0x0621, - 0x0636, 0x065d, 0x066f, 0x0696, 0x06b4, 0x06db, 0x06f6, 0x070e, - // Entry 40 - 7F - 0x0726, 0x075f, 0x077d, 0x07ab, 0x07c6, 0x07de, 0x07f6, 0x081d, - 0x0835, 0x084d, 0x0865, 0x0889, 0x08a4, 0x08b6, 0x08da, 0x08fb, - 0x091c, 0x092e, 0x0943, 0x0970, 0x098b, 0x09a6, 0x09d0, 0x09e8, - 0x09fa, 0x0a1b, 0x0a3f, 0x0a57, 0x0a69, 0x0a84, 0x0ab1, 0x0ac0, - 0x0b45, 0x0b66, 0x0b75, 0x0b96, 0x0bb1, 0x0bc3, 0x0c06, 0x0c24, - 0x0c39, 0x0c45, 0x0c5a, 0x0c78, 0x0c96, 0x0ca8, 0x0cc6, 0x0ce7, - 0x0cf6, 0x0d60, 0x0d78, 0x0d8d, 0x0da5, 0x0dba, 0x0dc9, 0x0dea, - 0x0e05, 0x0e14, 0x0e26, 0x0e4a, 0x0e5f, 0x0e77, 0x0e95, 0x0ec3, - // Entry 80 - BF - 0x0eea, 0x0f17, 0x0f2c, 0x0f4a, 0x0f77, 0x0f80, 0x0f8f, 0x0fa7, - 0x0fc8, 0x0fe3, 0x0ffe, 0x1010, 0x102b, 0x1049, 0x1061, 0x1070, - 0x1085, 0x109a, 0x10d0, 0x10fa, 0x1118, 0x1142, 0x1163, 0x1178, - 0x1187, 0x11b4, 0x11d2, 0x11e4, 0x121d, 0x1235, 0x1250, 0x1271, - 0x1286, 0x129e, 0x12b6, 0x12cb, 0x12e0, 0x12f8, 0x131c, 0x1331, - 0x134f, 0x1364, 0x1388, 0x13a9, 0x13cd, 0x13e2, 0x13f4, 0x1409, - 0x1415, 0x141b, 0x143f, 0x1451, 0x1469, 0x1478, 0x14b1, 0x14e7, - 0x1502, 0x1520, 0x1532, 0x156c, 0x1590, 0x15ab, 0x15d5, 0x15f9, - // Entry C0 - FF - 0x1605, 0x1626, 0x1635, 0x1660, 0x167e, 0x1693, 0x169c, 0x16b1, - 0x16c9, 0x16f9, 0x1720, 0x172f, 0x1741, 0x1756, 0x1771, 0x178f, - 0x17a7, 0x17ed, 0x1808, 0x1826, 0x1847, 0x1865, 0x187a, 0x188f, - 0x18bf, 0x18ff, 0x1926, 0x1944, 0x1953, 0x1971, 0x19a7, 0x19d5, - 0x19de, 0x1a1a, 0x1a2c, 0x1a32, 0x1a5f, 0x1a71, 0x1a80, 0x1aa4, - 0x1abc, 0x1ad1, 0x1ae0, 0x1b20, 0x1b35, 0x1b4a, 0x1b65, 0x1b80, - 0x1b9e, 0x1bd7, 0x1bfe, 0x1c22, 0x1c4f, 0x1c7c, 0x1cda, 0x1cfe, - 0x1d49, 0x1d7c, 0x1d8e, 0x1da9, 0x1de0, 0x1df2, 0x1e07, 0x1e16, - // Entry 100 - 13F - 0x1e28, 0x1e67, 0x1e7f, 0x1ea3, 0x1ed3, 0x1ee8, 0x1f03, 0x1f30, - 0x1f63, 0x1f81, 0x1fae, 0x1fd8, 0x2005, 0x2032, 0x205c, 0x208f, - 0x20a4, 0x20dd, 0x20f8, 0x211f, 0x214c, 0x2174, 0x21a4, 0x21cb, - 0x21e6, 0x2219, 0x2237, 0x2246, 0x226a, 0x2291, 0x22a3, 0x22cd, - 0x22f7, 0x2321, 0x2348, -} - -// Size: 9430 bytes -var knRegionStr string = "" + - "ಅಸೆನà³à²¶à²¨à³ ದà³à²µà³€à²ªà²…ಂಡೋರಾಸಂಯà³à²•à³à²¤ ಅರಬೠಎಮಿರೇಟಸà³à²…ಫಘಾನಿಸà³à²¥à²¾à²¨à³à²†à²‚ಟಿಗà³à²µà²¾ ಮತà³à²¤à³ ಬರà³à²¬" + - "à³à²¡à²¾à²†à²‚ಗà³à²¯à²¿à²²à³à²²à²¾à²…ಲà³à²¬à³‡à²¨à²¿à²¯à²¾à²…ರà³à²®à³‡à²¨à²¿à²¯à²¾à²¨à³†à²¦à²°à³\u200cಲà³à²¯à²¾à²‚ಡà³à²…ಂಗೋಲಾಅಂಟಾರà³à²Ÿà²¿à²•à²¾à²…ರà³à²œà³†" + - "ಂಟಿನಾಅಮೇರಿಕನೠಸಮೋವಾಆಸà³à²Ÿà³à²°à²¿à²¯à²¾à²†à²¸à³à²Ÿà³à²°à³‡à²²à²¿à²¯à²…ರà³à²¬à²¾à²†à²²à³à²¯à²¾à²‚ಡೠದà³à²µà³€à²ªà²—ಳà³à²…ಜರà³à²¬à³ˆà²œà²¾à²¨à³" + - "ಬೋಸà³à²¨à²¿à²¯à²¾ ಮತà³à²¤à³ ಹರà³à²œà³†à²—ೋವಿನಾಬಾರà³à²¬à²¡à³‹à²¸à³à²¬à²¾à²‚ಗà³à²²à²¾à²¦à³‡à²¶à³à²¬à³†à²²à³à²œà²¿à²¯à²®à³à²¬à³à²°à³à²•à²¿à²¨à²¾ ಫಾಸೋಬಲ" + - "à³à²—ೇರಿಯಾಬಹರೈನà³à²¬à³à²°à³à²‚ಡಿಬೆನಿನà³à²¸à³‡à²‚ಟೠಬಾರà³à²¥à³†à²²à³†à²®à²¿à²¬à²°à³à²®à³à²¡à²¾à²¬à³à²°à³‚ನಿಬೊಲಿವಿಯಾಕೆರೀಬಿಯ" + - "ನೠನೆದರà³\u200cಲà³à²¯à²¾à²‚ಡà³à²¸à³à²¬à³à²°à³†à²œà²¿à²²à³à²¬à²¹à²¾à²®à²¾à²¸à³à²­à³‚ತಾನà³à²¬à³‹à²µà³†à²Ÿà³ ದà³à²µà³€à²ªà²¬à³‹à²Ÿà³à²¸à³\u200cವಾ" + - "ನಾಬೆಲಾರಸà³à²¬à³†à²²à²¿à²œà³à²•à³†à²¨à²¡à²¾à²•à³Šà²•à³Šà²¸à³ (ಕೀಲಿಂಗà³) ದà³à²µà³€à²ªà²—ಳà³à²•à²¾à²‚ಗೋ - ಕಿನà³à²¶à²¾à²¸à²¾à²®à²§à³à²¯ ಆಫà³à²°" + - "ಿಕಾ ಗಣರಾಜà³à²¯à²•à²¾à²‚ಗೋ - ಬà³à²°à²¾à²œà²¾à²µà²¿à²²à³à²²à³‡à²¸à³à²µà²¿à²Ÿà³à²œà²°à³à²²à³à²¯à²¾à²‚ಡà³à²•à³‹à²¤à³\u200c ದಿವಾರà³\u200d" + - "ಕà³à²•à³ ದà³à²µà³€à²ªà²—ಳà³à²šà²¿à²²à²¿à²•à³à²¯à²¾à²®à²°à³‹à²¨à³à²šà³€à²¨à²¾à²•à³Šà²²à²‚ಬಿಯಾಕà³à²²à²¿à²ªà³à²ªà²°à³\u200cಟಾನೠದà³à²µà³€à²ªà²—ಳà³à²•à³Šà²¸à³" + - "ಟಾ ರಿಕಾಕà³à²¯à³‚ಬಾಕೇಪೠವರà³à²¡à³†à²•à³à²°à²¾à²•à²¾à²µà³à²•à³à²°à²¿à²¸à³à²®à²¸à³ ದà³à²µà³€à²ªà²¸à³ˆà²ªà³à²°à²¸à³à²šà³†à²•à³ ರಿಪಬà³à²²à²¿à²•à³à²œà²°à³" + - "ಮನಿಡೈಗೋ ಗಾರà³à²¸à²¿à²¯à²œà²¿à²¬à³‹à²Ÿà²¿à²¡à³†à²¨à³à²®à²¾à²°à³à²•à³à²¡à³Šà²®à²¿à²¨à²¿à²•à²¾à²¡à³Šà²®à³†à²¨à²¿à²•à²¨à³ ರಿಪಬà³à²²à²¿à²•à³à²…ಲà³à²—ೇರಿಯಾಸೆಯ" + - "à³à²Ÿà²¾ ಹಾಗೂ ಮೆಲಿಲà³à²²à²¾à²ˆà²•à³à²µà³†à²¡à²¾à²°à³à²Žà²¸à³à²Ÿà³‹à²¨à²¿à²¯à²¾à²ˆà²œà²¿à²ªà³à²Ÿà³à²ªà²¶à³à²šà²¿à²® ಸಹಾರಾà²à²°à²¿à²Ÿà³à²°à²¿à²¯à²¾à²¸à³à²ªà³‡à²¨à³à²‡" + - "ಥಿಯೋಪಿಯಾಯà³à²°à³‹à²ªà²¿à²¯à²¨à³ ಯೂನಿಯನà³à²«à²¿à²¨à³\u200cಲà³à²¯à²¾à²‚ಡà³à²«à²¿à²œà²¿à²«à²¾à²²à³à²•à³\u200cಲà³à²¯à²¾à²‚ಡೠದà³à²µà³€" + - "ಪಗಳà³à²®à³ˆà²•à³à²°à³‹à²¨à³‡à²¶à²¿à²¯à²¾à²«à²°à³‹ ದà³à²µà³€à²ªà²—ಳà³à²«à³à²°à²¾à²¨à³à²¸à³à²—ೆಬೊನà³à²¬à³à²°à²¿à²Ÿà²¨à³/ಇಂಗà³à²²à³†à²‚ಡà³à²—à³à²°à³†à²¨à³†à²¡à²¾à²œà²¾à²°" + - "à³à²œà²¿à²¯à²¾à²«à³à²°à³†à²‚ಚೠಗಯಾನಾಗà³à²°à³à²¨à³\u200cಸೆಘಾನಾಗಿಬà³à²°à²¾à²²à³à²Ÿà²°à³à²—à³à²°à³€à²¨à³\u200cಲà³à²¯à²¾à²‚ಡà³à²—à³à²¯à²¾" + - "ಂಬಿಯಾಗಿನಿಗà³à²¡à³†à²²à³‹à²ªà³à²ˆà²•à³à²µà³†à²Ÿà³‹à²°à²¿à²¯à²²à³ ಗಿನಿಗà³à²°à³€à²¸à³à²¦à²•à³à²·à²¿à²£ ಜಾರà³à²œà²¿à²¯à²¾ ಮತà³à²¤à³ ದಕà³à²·à²¿à²£ ಸ" + - "à³à²¯à²¾à²‚ಡà³\u200dವಿಚೠದà³à²µà³€à²ªà²—ಳà³à²—à³à²µà²¾à²Ÿà³†à²®à²¾à²²à²¾à²—à³à²¯à²¾à²®à³à²—ಿನಿ-ಬಿಸà³à²¸à²¾à²µà³à²—ಯಾನಾಹಾಂಕà³\u200c" + - " ಕಾಂಗೠSAR ಚೈನಾಹರà³à²¡à³ ದà³à²µà³€à²ª ಮತà³à²¤à³ ಮà³à²¯à²¾à²•à³\u200dಡೊನಾಲà³à²¡à³ ದà³à²µà³€à²ªà²—ಳà³à²¹à³Šà²‚ಡà³à²°à²¾à²¸à³à²•" + - "à³à²°à³Šà²¯à³‡à²¶à²¿à²¯à²¾à²¹à³ˆà²Ÿà²¿à²¹à²‚ಗಾರಿಕà³à²¯à²¾à²¨à²°à²¿ ದà³à²µà³€à²ªà²—ಳà³à²‡à²‚ಡೋನೇಶಿಯಾà²à²°à³à²²à³†à²‚ಡà³à²‡à²¸à³à²°à³‡à²²à³à²à²²à³ ಆಫೠಮà³" + - "ಯಾನà³à²­à²¾à²°à²¤à²¬à³à²°à²¿à²Ÿà³€à²¶à³ ಇಂಡಿಯನೠಮಹಾಸಾಗರ ಪà³à²°à²¦à³‡à²¶à²‡à²°à²¾à²•à³à²‡à²°à²¾à²¨à³à²à²¸à³\u200cಲà³à²¯à²¾à²‚ಡà³à²‡à²Ÿà²²à²¿à²œ" + - "ೆರà³à²¸à²¿à²œà²®à³ˆà²•à²¾à²œà³‹à²°à³à²¡à²¾à²¨à³à²œà²ªà²¾à²¨à³à²•à³€à²¨à³à²¯à²¾à²•à²¿à²°à³à²—ಿಸà³à²¥à²¾à²¨à³à²•à²¾à²‚ಬೋಡಿಯಾಕಿರಿಬಾತಿಕೊಮೊರೊಸà³à²¸à³‡à²‚ಟ" + - "ೠಕಿಟà³à²¸à³ ಮತà³à²¤à³ ನೆವಿಸà³à²‰à²¤à³à²¤à²° ಕೋರಿಯಾದಕà³à²·à²¿à²£ ಕೋರಿಯಾಕà³à²µà³ˆà²¤à³à²•à³‡à²®à²¨à³ ದà³à²µà³€à²ªà²—ಳà³à²•à²à²¾à²•" + - "ಿಸà³à²¥à²¾à²¨à³à²²à²¾à²µà³‹à²¸à³à²²à³†à²¬à²¨à²¾à²¨à³à²¸à³‡à²‚ಟೠಲೂಸಿಯಾಲಿಚೆನà³\u200cಸà³à²Ÿà³ˆà²¨à³à²¶à³à²°à³€à²²à²‚ಕಾಲಿಬೇರಿಯಾಲೆಸೊ" + - "ಥೋಲಿಥà³à²µà³‡à²¨à²¿à²¯à²¾à²²à²•à³à²¸à²‚ಬರà³à²—à³à²²à²¾à²Ÿà³à²µà²¿à²¯à²¾à²²à²¿à²¬à²¿à²¯à²¾à²®à³Šà²°à²¾à²•à³à²•à³Šà²®à³Šà²¨à²¾à²•à³Šà²®à³Šà²²à³à²¡à³‹à²µà²¾à²®à³Šà²‚ಟೆನೆಗà³à²°à³‹à²¸" + - "ೇಂಟೠಮಾರà³à²Ÿà²¿à²¨à³à²®à²¡à²—ಾಸà³à²•à²°à³à²®à²¾à²°à³à²·à²²à³ ದà³à²µà³€à²ªà²—ಳà³à²®à³à²¯à²¾à²¸à²¿à²¡à³‹à²¨à²¿à²¯à²¾à²®à²¾à²²à²¿à²®à²¯à²¨à³à²®à²¾à²°à³ (ಬರà³à²®à²¾)" + - "ಮೊಂಗೋಲಿಯಾಮಖಾವೠ(SAR) ಚೈನಾಉತà³à²¤à²° ಮರಿಯಾನಾ ದà³à²µà³€à²ªà²—ಳà³à²®à²¾à²°à³à²Ÿà²¿à²¨à²¿à²•à³à²®à²¾à²°à²¿à²Ÿà³‡à²¨à²¿à²¯à²¾à²®à²¾à²‚" + - "ಟà³\u200cಸೆರೇಟà³à²®à²¾à²²à³à²Ÿà²¾à²®à²¾à²°à²¿à²¶à²¿à²¯à²¸à³à²®à²¾à²²à³à²¡à²¿à²µà³à²¸à³à²®à²²à²¾à²µà²¿à²®à³†à²•à³à²¸à²¿à²•à³Šà²®à²²à³‡à²¶à²¿à²¯à²¾à²®à³Šà²œà²¾à²‚ಬಿಕà³à²¨à²®" + - "ೀಬಿಯಾನà³à²¯à³‚ ಕà³à²¯à²¾à²²à²¿à²¡à³‹à²¨à²¿à²¯à²¾à²¨à³ˆà²œà²°à³à²¨à²¾à²°à³à²«à³‹à²•à³ ದà³à²µà³€à²ªà²¨à³ˆà²œà³€à²°à²¿à²¯à²¾à²¨à²¿à²•à²¾à²°à²¾à²—à³à²µà²¾à²¨à³†à²¦à²°à³\u200c" + - "ಲà³à²¯à²¾à²‚ಡà³à²¸à³à²¨à²¾à²°à³à²µà³‡à²¨à³‡à²ªà²¾à²³à²¨à³Œà²°à³à²¨à²¿à²¯à³à²¨à³à²¯à³‚ಜಿಲೆಂಡà³à²“ಮನà³à²ªà²¨à²¾à²®à²¾à²ªà³†à²°à³à²«à³à²°à³†à²‚ಚೠಪಾಲಿನೇಷà³à²¯à²¾" + - "ಪಪà³à²µà²¾ ನà³à²¯à³‚ಗಿನಿಯಾಫಿಲಿಫೈನà³à²¸à³à²ªà²¾à²•à²¿à²¸à³à²¤à²¾à²¨à²ªà³‹à²²à³à²¯à²¾à²‚ಡà³à²¸à³‡à²‚ಟೠಪಿಯರೆ ಮತà³à²¤à³ ಮಿಕೆಲನà³à²ª" + - "ಿಟà³\u200cಕೈರà³à²¨à³ ದà³à²µà³€à²ªà²—ಳà³à²ªà³à²¯à³‚ರà³à²Ÿà³‹ ರಿಕೊಪà³à²¯à²¾à²²à³‡à²¸à³à²Ÿà³‡à²¨à²¿à²¯à²¨à³ ಪà³à²°à²¦à³‡à²¶à²ªà³‹à²°à³à²šà³à²—ಲà³à²ªà²²" + - "ಾವà³à²ªà²°à²¾à²—à³à²µà³‡à²–ತಾರà³à²”ಟೠಲೈಯಿಂಗೠಓಷಿಯಾನಿಯಾರೀಯೂನಿಯನà³à²°à³Šà²®à³‡à²¨à²¿à²¯à²¾à²¸à³†à²°à³à²¬à²¿à²¯à²¾à²°à²·à³à²¯à²¾à²°à³à²µà²¾" + - "ಂಡಾಸೌದಿ ಅರೇಬಿಯಾಸೊಲೊಮನೠದà³à²µà³€à²ªà²—ಳà³à²¸à³€à²¶à³†à²²à³à²²à³†à²¸à³à²¸à³‚ಡಾನà³à²¸à³à²µà³€à²¡à²¨à³à²¸à²¿à²‚ಗಾಪà³à²°à³à²¸à³‡à²‚ಟೠಹ" + - "ೆಲೆನಾಸà³à²²à³‹à²µà³‡à²¨à²¿à²¯à²¾à²¸à³à²µà²¾à²²à³à²¬à²¾à²°à³à²¡à³ ಮತà³à²¤à³ ಜಾನೠಮೆಯನà³à²¸à³à²²à³‹à²µà³‡à²•à²¿à²¯à²¾à²¸à²¿à²¯à³†à²°à³à²°à²¾ ಲಿಯೋನà³à²¸" + - "à³à²¯à²¾à²¨à³ ಮೆರಿನೋಸೆನೆಗಲà³à²¸à³Šà²®à²¾à²²à²¿à²¯à²¾à²¸à³à²°à²¿à²¨à²¾à²®à²¦à²•à³à²·à²¿à²£ ಸೂಡಾನà³à²¸à²¾à²µà³‹ ಟೋಮೠಮತà³à²¤à³ ಪà³à²°à²¿à²¨à³à²¸" + - "ಿಪಿಎಲೠಸಾಲà³à²µà³‡à²¡à²¾à²°à³à²¸à²¿à²‚ಟೠಮಾರà³à²Ÿà³†à²¨à³à²¸à²¿à²°à²¿à²¯à²¾à²¸à³à²µà²¾à²œà²¿à²²à³à²¯à²¾à²‚ಡà³à²Ÿà³à²°à²¿à²¸à³à²¤à²¨à³ ಡಾ ಕà³à²¨à³à²¹à²¾à²Ÿ" + - "ರà³à²•à³à²¸à³ ಮತà³à²¤à³ ಕೈಕೋಸೠದà³à²µà³€à²ªà²—ಳà³à²šà²¾à²¦à³à²«à³à²°à³†à²‚ಚೠದಕà³à²·à²¿à²£ ಪà³à²°à²¦à³‡à²¶à²—ಳà³à²Ÿà³‹à²—ೋಥೈಲà³à²¯à²¾à²‚ಡà³à²¤" + - "ಜಾಕಿಸà³à²¥à²¾à²¨à³à²Ÿà³Šà²•à³†à²²à²¾à²µà³à²ªà³‚ರà³à²µ ತಿಮೋರà³à²¤à³à²°à³à²•à³à²®à³‡à²¨à²¿à²¸à³à²¥à²¾à²¨à³à²Ÿà³à²¨à²¿à²¶à²¿à²¯à²¾à²Ÿà³Šà²‚ಗಟರà³à²•à²¿à²Ÿà³à²°à²¿à²¨à²¿à²¡" + - "ಾಡೠಮತà³à²¤à³ ಟೊಬಾಗೊಟà³à²µà²¾à²²à³à²¥à³ˆà²µà²¾à²¨à³à²¤à²¾à²‚ಜೇನಿಯಾಉಕà³à²°à³ˆà²¨à³à²‰à²—ಾಂಡಾಯà³à²Žà²¸à³\u200c. ಔಟà³" + - "\u200cಲೇಯಿಂಗೠದà³à²µà³€à²ªà²—ಳà³à²…ಮೇರಿಕಾ ಸಂಯà³à²•à³à²¤ ಸಂಸà³à²¥à²¾à²¨à²‰à²°à³à²—à³à²µà³‡à²‰à²œà³à²¬à³‡à²•à²¿à²¸à³à²¥à²¾à²¨à³à²µà³à²¯à²¾à²Ÿà²¿à²•" + - "ನà³à²¸à³‡à²‚ಟà³. ವಿನà³à²¸à³†à²‚ಟೠಮತà³à²¤à³ ಗà³à²°à³†à²¨à³†à²¡à³ˆà²¨à³à²¸à³à²µà³†à²¨à³†à²œà³à²µà³†à²²à²¾à²¬à³à²°à²¿à²Ÿà²¿à²·à³ ವರà³à²œà²¿à²¨à³ ದà³à²µà³€à²ªà²—" + - "ಳà³à²¯à³.ಎಸà³. ವರà³à²œà²¿à²¨à³ ದà³à²µà³€à²ªà²—ಳà³à²µà²¿à²¯à³‡à²Ÿà³à²¨à²¾à²®à³à²µà²¨à³Œà²Ÿà³à²µà²¾à²²à²¿à²¸à³ ಮತà³à²¤à³ ಫà³à²Ÿà³à²¨à²¾à²¸à²®à³‹à²µà²¾à²•à³Šà²¸à³Šà²µ" + - "ೊಯೆಮನà³à²®à²¯à³Šà²Ÿà³à²Ÿà³†à²¦à²•à³à²·à²¿à²£ ಆಫà³à²°à²¿à²•à²¾à²à²¾à²‚ಬಿಯಾಜಿಂಬಾಬà³à²µà³†à²…ಜà³à²žà²¾à²¤ ಪà³à²°à²¦à³‡à²¶à²ªà³à²°à²ªà²‚ಚಆಫà³à²°à²¿à²•à²¾à²‰" + - "ತà³à²¤à²° ಅಮೇರಿಕಾದಕà³à²·à²¿à²£ ಅಮೇರಿಕಾಓಶಿಯೇನಿಯಾಪಶà³à²šà²¿à²® ಆಫà³à²°à²¿à²•à²¾à²®à²§à³à²¯ ಅಮೇರಿಕಾಪೂರà³à²µ ಆಫà³" + - "ರಿಕಾಉತà³à²¤à²° ಆಫà³à²°à²¿à²•à²¾à²®à²§à³à²¯ ಆಫà³à²°à²¿à²•à²¾à²†à²«à³à²°à²¿à²•à²¾à²¦ ದಕà³à²·à²¿à²£ ಭಾಗಅಮೆರಿಕಾಸà³à²…ಮೇರಿಕಾದ ಉತà³à²¤" + - "ರ ಭಾಗಕೆರೀಬಿಯನà³à²ªà³‚ರà³à²µ à²à²·à³à²¯à²¾à²¦à²•à³à²·à²¿à²£ à²à²·à³à²¯à²¾à²†à²—à³à²¨à³‡à²¯ à²à²·à³à²¯à²¾à²¦à²•à³à²·à²¿à²£ ಯೂರೋಪà³à²†à²¸à³à²Ÿà³à²°à³‡à²²" + - "ೇಷà³à²¯à²¾à²®à³†à²²à²¨à³‡à²·à²¿à²¯à²¾à²®à³ˆà²•à³à²°à³‹à²¨à³‡à²¶à²¿à²¯à²¨à³ ಪà³à²°à²¦à³‡à²¶à²ªà²¾à²²à²¿à²¨à³‡à²·à³à²¯à²¾à²à²·à³à²¯à²¾à²®à²§à³à²¯ à²à²·à³à²¯à²¾à²ªà²¶à³à²šà²¿à²® à²à²·à³à²¯" + - "ಾಯೂರೋಪà³à²ªà³‚ರà³à²µ ಯೂರೋಪà³à²‰à²¤à³à²¤à²° ಯೂರೋಪà³à²ªà²¶à³à²šà²¿à²® ಯೂರೋಪà³à²²à³à²¯à²¾à²Ÿà²¿à²¨à³ ಅಮೇರಿಕಾ" - -// Size: 606 bytes, 291 elements -var knRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0028, 0x003a, 0x0075, 0x0099, 0x00d7, 0x00f5, 0x0110, - 0x012b, 0x0152, 0x0164, 0x0182, 0x01a0, 0x01c8, 0x01e3, 0x0201, - 0x0210, 0x0241, 0x025f, 0x02a9, 0x02c4, 0x02e5, 0x0300, 0x0325, - 0x0340, 0x0352, 0x0367, 0x0379, 0x03a7, 0x03bc, 0x03ce, 0x03e6, - 0x042f, 0x0447, 0x045c, 0x046e, 0x0490, 0x04b1, 0x04c6, 0x04d8, - 0x04e7, 0x052a, 0x0554, 0x058c, 0x05c2, 0x05f2, 0x0617, 0x063c, - 0x0648, 0x0663, 0x066f, 0x0687, 0x06ca, 0x06e9, 0x06fb, 0x0717, - 0x072f, 0x075a, 0x076f, 0x0797, 0x07a9, 0x07cb, 0x07dd, 0x07fb, - // Entry 40 - 7F - 0x0813, 0x084a, 0x0865, 0x089d, 0x08b8, 0x08d3, 0x08e8, 0x090a, - 0x0925, 0x0937, 0x0952, 0x0983, 0x09a7, 0x09b3, 0x09f6, 0x0a1a, - 0x0a3c, 0x0a54, 0x0a66, 0x0a97, 0x0aaf, 0x0ac7, 0x0aec, 0x0b07, - 0x0b13, 0x0b34, 0x0b5e, 0x0b79, 0x0b85, 0x0b9d, 0x0bce, 0x0be0, - 0x0c6c, 0x0c8a, 0x0c9c, 0x0cc1, 0x0cd0, 0x0d03, 0x0d79, 0x0d94, - 0x0db2, 0x0dbe, 0x0dd0, 0x0dfe, 0x0e1c, 0x0e34, 0x0e49, 0x0e6f, - 0x0e7b, 0x0ed2, 0x0ee1, 0x0ef0, 0x0f11, 0x0f1d, 0x0f2f, 0x0f3e, - 0x0f56, 0x0f65, 0x0f77, 0x0f9b, 0x0fb6, 0x0fce, 0x0fe6, 0x102b, - // Entry 80 - BF - 0x104d, 0x1072, 0x1084, 0x10ac, 0x10cd, 0x10df, 0x10f4, 0x1116, - 0x113d, 0x1155, 0x116d, 0x117f, 0x119d, 0x11bb, 0x11d3, 0x11e5, - 0x11fd, 0x120f, 0x1227, 0x1248, 0x1270, 0x128b, 0x12b9, 0x12dd, - 0x12e9, 0x1313, 0x132e, 0x1350, 0x138e, 0x13ac, 0x13ca, 0x13ee, - 0x1400, 0x141b, 0x1439, 0x1448, 0x1460, 0x1475, 0x1490, 0x14a5, - 0x14d6, 0x14e5, 0x150d, 0x1525, 0x1543, 0x1570, 0x1582, 0x1591, - 0x159d, 0x15a9, 0x15ca, 0x15d6, 0x15e5, 0x15f1, 0x1625, 0x1653, - 0x1671, 0x168c, 0x16a7, 0x16ec, 0x1726, 0x174b, 0x178b, 0x17a6, - // Entry C0 - FF - 0x17b5, 0x17ca, 0x17d9, 0x1814, 0x182f, 0x1847, 0x185f, 0x186e, - 0x1883, 0x18a5, 0x18d3, 0x18f1, 0x1903, 0x1918, 0x1933, 0x1955, - 0x1973, 0x19c4, 0x19e2, 0x1a0d, 0x1a32, 0x1a47, 0x1a5f, 0x1a74, - 0x1a99, 0x1ae1, 0x1b09, 0x1b31, 0x1b43, 0x1b6a, 0x1b9f, 0x1bf0, - 0x1bfc, 0x1c40, 0x1c4c, 0x1c67, 0x1c88, 0x1ca0, 0x1cc2, 0x1cf2, - 0x1d0a, 0x1d16, 0x1d25, 0x1d66, 0x1d78, 0x1d8a, 0x1da5, 0x1dba, - 0x1dcc, 0x1e1a, 0x1e5b, 0x1e70, 0x1e97, 0x1eb2, 0x1f13, 0x1f31, - 0x1f78, 0x1fb8, 0x1fd6, 0x1fe5, 0x201a, 0x2029, 0x203b, 0x204a, - // Entry 100 - 13F - 0x205f, 0x2087, 0x209c, 0x20b7, 0x20dc, 0x20ee, 0x2103, 0x2128, - 0x2150, 0x216b, 0x2193, 0x21b5, 0x21da, 0x21ff, 0x2221, 0x2256, - 0x2271, 0x22a3, 0x22be, 0x22dd, 0x22ff, 0x2321, 0x2346, 0x236d, - 0x2388, 0x23c2, 0x23e0, 0x23ef, 0x240b, 0x242d, 0x243f, 0x2461, - 0x2483, 0x24a8, 0x24d6, -} - -// Size: 3916 bytes -var koRegionStr string = "" + - "어센션 섬안ë„ë¼ì•„ëžì—미리트 연합아프가니스탄앤티가 바부다앵귈ë¼ì•Œë°”니아아르메니아네ëœëž€ë“œë ¹ 안틸레스앙골ë¼ë‚¨ê·¹ 대륙아르헨티나아메리칸 사모" + - "아오스트리아오스트레ì¼ë¦¬ì•„아루바올란드 ì œë„아제르바ì´ìž”보스니아 헤르체고비나바베ì´ë„스방글ë¼ë°ì‹œë²¨ê¸°ì—부르키나파소불가리아바레ì¸ë¶€ë£¬ë””베냉" + - "ìƒë°”르텔레미버뮤다브루나ì´ë³¼ë¦¬ë¹„아네ëœëž€ë“œë ¹ 카리브브ë¼ì§ˆë°”하마부탄부베섬보츠와나벨ë¼ë£¨ìŠ¤ë²¨ë¦¬ì¦ˆìºë‚˜ë‹¤ì½”코스제ë„콩고-킨샤사중앙 아프리카 " + - "공화국콩고스위스코트디부아르쿡제ë„칠레카메룬중국콜롬비아í´ë¦½í¼íŠ¼ 섬코스타리카쿠바카보베르ë°í€´ë¼ì†Œí¬ë¦¬ìŠ¤ë§ˆìŠ¤ì„¬í‚¤í”„로스체코ë…ì¼ë””ì—ê³  가르시" + - "아지부티ë´ë§ˆí¬ë„미니카ë„미니카 공화국알제리세우타 ë° ë©œë¦¬ì•¼ì—ì½°ë„르ì—스토니아ì´ì§‘트서사하ë¼ì—리트리아스페ì¸ì´ë””오피아유럽 연합핀란드피지" + - "í¬í´ëžœë“œ ì œë„미í¬ë¡œë„¤ì‹œì•„페로 ì œë„프랑스가봉ì˜êµ­ê·¸ë ˆë‚˜ë‹¤ì¡°ì§€ì•„프랑스령 기아나건지가나지브롤터그린란드ê°ë¹„아기니과들루프ì ë„ 기니그리스사" + - "우스조지아 사우스샌드위치 ì œë„과테ë§ë¼ê´Œê¸°ë‹ˆë¹„사우가ì´ì•„나í™ì½©, 중국 특별행정구허드 맥ë„ë„ë“œ ì œë„온ë‘ë¼ìŠ¤í¬ë¡œì•„í‹°ì•„ì•„ì´í‹°í—가리카나리" + - "ì•„ ì œë„ì¸ë„네시아아ì¼ëžœë“œì´ìŠ¤ë¼ì—˜ë§¨ 섬ì¸ë„ì˜êµ­ë ¹ ì¸ë„ì–‘ ì‹ë¯¼ì§€ì´ë¼í¬ì´ëž€ì•„ì´ìŠ¬ëž€ë“œì´íƒˆë¦¬ì•„저지ìžë©”ì´ì¹´ìš”르단ì¼ë³¸ì¼€ëƒí‚¤ë¥´ê¸°ìŠ¤ìŠ¤íƒ„캄보디아" + - "키리바시코모로세ì¸íŠ¸í‚¤ì¸  네비스조선민주주ì˜ì¸ë¯¼ê³µí™”국대한민국쿠웨ì´íŠ¸ì¼€ì´ë§¨ì œë„ì¹´ìží스탄ë¼ì˜¤ìŠ¤ë ˆë°”논세ì¸íŠ¸ë£¨ì‹œì•„리히í…슈타ì¸ìŠ¤ë¦¬ëž‘ì¹´ë¼ì´ë² " + - "리아레소토리투아니아룩셈부르í¬ë¼íŠ¸ë¹„아리비아모로코모나코몰ë„ë°”ëª¬í…Œë„¤ê·¸ë¡œìƒ ë§ˆë¥´íƒ±ë§ˆë‹¤ê°€ìŠ¤ì¹´ë¥´ë§ˆìƒ¬ êµ°ë„마케ë„니아ë§ë¦¬ë¯¸ì–€ë§ˆëª½ê³¨ë§ˆì¹´ì˜¤, 중" + - "êµ­ 특별행정구ë¶ë§ˆë¦¬ì•„나제ë„마르티니í¬ëª¨ë¦¬íƒ€ë‹ˆëª¬íŠ¸ì„¸ë¼íŠ¸ëª°íƒ€ëª¨ë¦¬ì…”스몰디브ë§ë¼ìœ„멕시코ë§ë ˆì´ì‹œì•„모잠비í¬ë‚˜ë¯¸ë¹„아뉴칼레ë„니아니제르노í½ì„¬ë‚˜ì´" + - "지리아니카ë¼ê³¼ë„¤ëœëž€ë“œë…¸ë¥´ì›¨ì´ë„¤íŒ”나우루니우ì—뉴질랜드오만파나마페루프랑스령 í´ë¦¬ë„¤ì‹œì•„파푸아뉴기니필리핀파키스탄í´ëž€ë“œìƒí”¼ì—르 미í´ë¡±í•ì¼€" + - "ì–¸ 섬푸ì—ë¥´í† ë¦¬ì½”íŒ”ë ˆìŠ¤íƒ€ì¸ ì§€êµ¬í¬ë¥´íˆ¬ê°ˆíŒ”ë¼ìš°íŒŒë¼ê³¼ì´ì¹´íƒ€ë¥´ì˜¤ì„¸ì•„니아 외곽리유니온루마니아세르비아러시아르완다사우디아ë¼ë¹„아솔로몬 ì œë„" + - "세ì´ì…¸ìˆ˜ë‹¨ìŠ¤ì›¨ë´ì‹±ê°€í¬ë¥´ì„¸ì¸íŠ¸í—¬ë ˆë‚˜ìŠ¬ë¡œë² ë‹ˆì•„스발바르제ë„-얀마웬섬슬로바키아시ì—ë¼ë¦¬ì˜¨ì‚°ë§ˆë¦¬ë…¸ì„¸ë„¤ê°ˆì†Œë§ë¦¬ì•„수리남남수단ìƒíˆ¬ë©” 프린시페엘" + - "ì‚´ë°”ë„르신트마르턴시리아스와질란드트리스탄다쿠나터í¬ìŠ¤ ì¼€ì´ì»¤ìŠ¤ ì œë„차드프랑스 남부 지방토고태국타지키스탄토켈ë¼ìš°ë™í‹°ëª¨ë¥´íˆ¬ë¥´í¬ë©”니스탄" + - "튀니지통가터키트리니다드 토바고투발루대만탄ìžë‹ˆì•„ìš°í¬ë¼ì´ë‚˜ìš°ê°„다미국령 해외 ì œë„미국우루과ì´ìš°ì¦ˆë² í‚¤ìŠ¤íƒ„바티칸시국세ì¸íŠ¸ë¹ˆì„¼íŠ¸ê·¸ë ˆë‚˜ë”˜ë² " + - "네수엘ë¼ì˜êµ­ë ¹ 버진아ì¼ëžœë“œë¯¸êµ­ë ¹ 버진아ì¼ëžœë“œë² íŠ¸ë‚¨ë°”누아투왈리스-푸투나 ì œë„사모아코소보예멘마요트남아프리카잠비아ì§ë°”브웨알려지지 ì•Š" + - "ì€ ì§€ì—­ì„¸ê³„ì•„í”„ë¦¬ì¹´ë¶ì•„메리카남아메리카(남미)오세아니아서아프리카중앙 아메리카ë™ë¶€ 아프리카ë¶ë¶€ 아프리카중부 아프리카남부 아프리카아" + - "메리카 대륙ë¶ë¶€ 아메리카카리브 ì œë„ë™ì•„시아남아시아ë™ë‚¨ì•„시아남유럽오스트랄ë¼ì‹œì•„ë©œë¼ë„¤ì‹œì•„미í¬ë¡œë„¤ì‹œì•„ 지역í´ë¦¬ë„¤ì‹œì•„아시아중앙 아시아" + - "서아시아유럽ë™ìœ ëŸ½ë¶ìœ ëŸ½ì„œìœ ëŸ½ë¼í‹´ 아메리카" - -// Size: 606 bytes, 291 elements -var koRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000d, 0x0016, 0x002f, 0x0041, 0x0054, 0x005d, 0x0069, - 0x0078, 0x0094, 0x009d, 0x00aa, 0x00b9, 0x00cf, 0x00de, 0x00f3, - 0x00fc, 0x010c, 0x011e, 0x013d, 0x014c, 0x015b, 0x0164, 0x0176, - 0x0182, 0x018b, 0x0194, 0x019a, 0x01ac, 0x01b5, 0x01c1, 0x01cd, - 0x01e6, 0x01ef, 0x01f8, 0x01fe, 0x0207, 0x0213, 0x021f, 0x0228, - 0x0231, 0x0240, 0x0250, 0x026d, 0x0273, 0x027c, 0x028e, 0x0297, - 0x029d, 0x02a6, 0x02ac, 0x02b8, 0x02c8, 0x02d7, 0x02dd, 0x02ec, - 0x02f5, 0x0307, 0x0313, 0x0319, 0x031f, 0x0335, 0x033e, 0x0347, - // Entry 40 - 7F - 0x0353, 0x0369, 0x0372, 0x0389, 0x0395, 0x03a4, 0x03ad, 0x03b9, - 0x03c8, 0x03d1, 0x03e0, 0x03ed, 0x03f6, 0x03fc, 0x040f, 0x0421, - 0x042e, 0x0437, 0x043d, 0x0443, 0x044f, 0x0458, 0x046e, 0x0474, - 0x047a, 0x0486, 0x0492, 0x049b, 0x04a1, 0x04ad, 0x04ba, 0x04c3, - 0x04f2, 0x04fe, 0x0501, 0x0510, 0x051c, 0x053a, 0x0554, 0x0560, - 0x056f, 0x0578, 0x0581, 0x0594, 0x05a3, 0x05af, 0x05bb, 0x05c2, - 0x05c8, 0x05e5, 0x05ee, 0x05f4, 0x0603, 0x060f, 0x0615, 0x0621, - 0x062a, 0x0630, 0x0636, 0x0648, 0x0654, 0x0660, 0x0669, 0x0682, - // Entry 80 - BF - 0x06a3, 0x06af, 0x06bb, 0x06ca, 0x06d9, 0x06e2, 0x06eb, 0x06fd, - 0x070f, 0x071b, 0x072a, 0x0733, 0x0742, 0x0751, 0x075d, 0x0766, - 0x076f, 0x0778, 0x0781, 0x0790, 0x079d, 0x07af, 0x07bc, 0x07cb, - 0x07d1, 0x07da, 0x07e0, 0x0801, 0x0816, 0x0825, 0x0831, 0x0840, - 0x0846, 0x0852, 0x085b, 0x0864, 0x086d, 0x087c, 0x0888, 0x0894, - 0x08a6, 0x08af, 0x08b8, 0x08c7, 0x08d3, 0x08df, 0x08eb, 0x08f1, - 0x08fa, 0x0903, 0x090f, 0x0915, 0x091e, 0x0924, 0x0940, 0x0952, - 0x095b, 0x0967, 0x0970, 0x0986, 0x0993, 0x09a5, 0x09bb, 0x09c7, - // Entry C0 - FF - 0x09d0, 0x09dc, 0x09e5, 0x09fb, 0x0a07, 0x0a13, 0x0a1f, 0x0a28, - 0x0a31, 0x0a46, 0x0a56, 0x0a5f, 0x0a65, 0x0a6e, 0x0a7a, 0x0a8c, - 0x0a9b, 0x0aba, 0x0ac9, 0x0ad8, 0x0ae4, 0x0aed, 0x0af9, 0x0b02, - 0x0b0b, 0x0b21, 0x0b30, 0x0b3f, 0x0b48, 0x0b57, 0x0b6c, 0x0b89, - 0x0b8f, 0x0ba6, 0x0bac, 0x0bb2, 0x0bc1, 0x0bcd, 0x0bd9, 0x0bee, - 0x0bf7, 0x0bfd, 0x0c03, 0x0c1c, 0x0c25, 0x0c2b, 0x0c37, 0x0c46, - 0x0c4f, 0x0c66, 0x0c6c, 0x0c78, 0x0c8a, 0x0c99, 0x0cb7, 0x0cc6, - 0x0ce2, 0x0cfe, 0x0d07, 0x0d13, 0x0d2d, 0x0d36, 0x0d3f, 0x0d45, - // Entry 100 - 13F - 0x0d4e, 0x0d5d, 0x0d66, 0x0d72, 0x0d8c, 0x0d92, 0x0d9e, 0x0dad, - 0x0dc4, 0x0dd3, 0x0de2, 0x0df5, 0x0e08, 0x0e1b, 0x0e2e, 0x0e41, - 0x0e54, 0x0e67, 0x0e77, 0x0e83, 0x0e8f, 0x0e9e, 0x0ea7, 0x0ebc, - 0x0ecb, 0x0ee4, 0x0ef3, 0x0efc, 0x0f0c, 0x0f18, 0x0f1e, 0x0f27, - 0x0f30, 0x0f39, 0x0f4c, -} - -// Size: 5805 bytes -var kyRegionStr string = "" + - "ÐÑÑеншин аралыÐндорраБириккен Ðраб ЭмираттарыÐфганиÑтанÐнтигуа жана Барб" + - "удаÐнгуилаÐлбаниÑÐрмениÑÐнголаÐнтарктикаÐргентинаÐмерика СамоаÑÑ‹ÐвÑтриÑ" + - "ÐвÑтралиÑÐрубаÐланд аралдарыÐзербайжанБоÑÐ½Ð¸Ñ Ð¶Ð°Ð½Ð° ГерцеговинаБарбадоÑБа" + - "нгладешБельгиÑБуркина-ФаÑоБолгариÑБахрейнБурундиБенинСент БартелемиБерм" + - "уд аралдарыБрунейБоливиÑКариб ÐидерланддарыБразилиÑБагам аралдарыБутанБ" + - "уве аралдарыБотÑванаБеларуÑÑŒÐ‘ÐµÐ»Ð¸Ð·ÐšÐ°Ð½Ð°Ð´Ð°ÐšÐ¾ÐºÐ¾Ñ (Килиӊ) аралдарыКонго-Кинш" + - "аÑаБорбордук Ðфрика РеÑпубликаÑыКонго-БраззавилШвейцариÑКот-д’ИвуарКук " + - "аралдарыЧилиКамерунКытайКолумбиÑКлиппертон аралыКоÑта-РикаКубаКапе Верд" + - "еКюраÑаоКриÑÐ¼Ð°Ñ Ð°Ñ€Ð°Ð»Ñ‹ÐšÐ¸Ð¿Ñ€Ð§ÐµÑ…Ð¸ÑГерманиÑДиего ГарÑиÑДжибутиДаниÑДоминикаД" + - "оминика РеÑпубликаÑÑ‹ÐлжирСеута жана МелиллаЭквадорЭÑтониÑЕгипетБатыш Са" + - "хараЭритреÑИÑпаниÑЭфиопиÑЕвропа БиримдигиФинлÑндиÑФиджиФолклÑнд аралдар" + - "ыМикронезиÑФарер аралдарыФранциÑГабонУлуу БританиÑГренадаГрузиÑГвиана (" + - "ФранциÑ)ГернÑиГанаГибралтарГренландиÑГамбиÑГвинеÑГваделупаЭкваториалдык" + - " ГвинеÑГрециÑТүштүк Ð–Ð¾Ñ€Ð¶Ð¸Ñ Ð¶Ð°Ð½Ð° Түштүк СÑндвич аралдарыГватемалаГуамГвин" + - "еÑ-БиÑауГайанаГонконг Кытай ÐÐÐХерд жана Макдоналд аралдарыГондураÑХорв" + - "атиÑГаитиВенгриÑКанар аралдарыИндонезиÑИрландиÑИзраильМÑн аралыИндиÑБри" + - "таниÑнын Ð˜Ð½Ð´Ð¸Ñ Ð¾ÐºÐµÐ°Ð½Ñ‹Ð½Ð´Ð°Ð³Ñ‹ аймагыИракИранИÑландиÑИталиÑЖерÑиЯмайкаИорда" + - "ниÑЯпониÑКениÑКыргызÑтанКамбоджаКирибатиКомороÑСент-ÐšÐ¸Ñ‚Ñ Ð¶Ð°Ð½Ð° ÐевиÑТүнд" + - "үк КореÑТүштүк КореÑКувейтКайман ÐралдарыКазакÑтанЛаоÑЛиванСент-ЛюÑиÑЛи" + - "хтенштейнШри-ЛанкаЛибериÑЛеÑотоЛитваЛюкÑембургЛатвиÑЛивиÑМароккоМонакоМ" + - "олдоваЧерногориÑСент-МартинМадагаÑкарМаршалл аралдарыМакедониÑМалиМьÑнм" + - "а (Бирма)МонголиÑМакау Кытай ÐÐÐТүндүк Мариана аралдарыМартиникаМаврита" + - "ниÑМонÑерратМальтаМаврикийМалдив аралдарыМалавиМекÑикаМалайзиÑМозамбикÐ" + - "амибиÑЖаӊы КаледониÑÐигерÐорфолк аралыÐигериÑÐикарагуаÐидерланддарÐорве" + - "гиÑÐепалÐауруÐиуÑЖаӊы ЗеландиÑОманПанамаПеруФранцуз ПолинезиÑÑыПапуа Жа" + - "ңы-ГвинеÑФиллипинПакиÑтанПольшаСен-Пьер жана МикелонПиткÑрн аралдарыПуÑ" + - "рто-РикоПалеÑтина аймактарыПортугалиÑПалауПарагвайКатарÐлыÑкы ОкеаниÑРе" + - "юнионРумыниÑСербиÑРоÑÑиÑРуандаСауд ÐрабиÑÑыСоломон аралдарыСейшелдерСуд" + - "анШвециÑСингапурЫйык ЕленаСловениÑСвалбард жана Жан МайенСловакиÑСьерра" + - "-ЛеонеСан МариноСенегалСомалиСуринамеТүштүк СуданСан-Томе жана ПринÑипиЭ" + - "л СалвадорСинт МаартенСириÑСвазилендТриÑтан да КуньÑÐ¢Ò¯Ñ€ÐºÑ Ð¶Ð°Ð½Ð° ÐšÐ°Ð¹ÐºÐ¾Ñ Ð°" + - "ралдарыЧадФранциÑнын Түштүктөгү аймактарыТогоТаиландТажикÑтанТокелауТим" + - "ор-ЛеÑтеТүркмөнÑтанТуниÑТонгаТүркиÑТринидад жана ТобагоТувалуТайваньТан" + - "заниÑУкраинаУгандаÐКШнын Ñырткы аралдарыÐмерика Кошмо ШтаттарыУругвайӨз" + - "бекÑтанВатиканСент-ВинÑент жана ГренадиналарВенеÑуÑлаВиргин аралдары (Б" + - "ританиÑ)Виргин аралдары (ÐКШ)Ð’ÑŒÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ£Ð¾Ð»Ð»Ð¸Ñ Ð¶Ð°Ð½Ð° ФутунаСамоаКоÑов" + - "оЙеменМайоттаТүштүк Ðфрика РеÑпубликаÑыЗамбиÑЗимбабвеБелгиÑиз регионДүй" + - "нөÐфрикаТүндүк ÐмерикаТүштүк ÐмерикаОкеаниÑБатыш ÐфрикаБорбордук Ðмерик" + - "аЧыгыш ÐфрикаТүндүк ÐфрикаБорбордук ÐфрикаТүштүк ÐфрикаÐмерикаТүндүк Ðм" + - "ерика (регион)Кариб аралдарыЧыгыш ÐзиÑТүштүк ÐзиÑТүштүк-Чыгыш ÐзиÑТүштү" + - "к ЕвропаÐвÑтралазиÑМеланезиÑÐœÐ¸ÐºÑ€Ð¾Ð½ÐµÐ·Ð¸Ñ Ð ÐµÐ³Ð¸Ð¾Ð½ÑƒÐŸÐ¾Ð»Ð¸Ð½ÐµÐ·Ð¸ÑÐзиÑБорбор ÐзиÑБ" + - "атыш ÐзиÑЕвропаЧыгыш ЕвропаТүндүк ЕвропаБатыш ЕвропаЛатын ÐмерикаÑÑ‹" - -// Size: 606 bytes, 291 elements -var kyRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x001b, 0x0029, 0x0057, 0x006b, 0x0091, 0x009f, 0x00ad, - 0x00bb, 0x00bb, 0x00c7, 0x00db, 0x00ed, 0x010a, 0x0118, 0x012a, - 0x0134, 0x014f, 0x0163, 0x018f, 0x019f, 0x01b1, 0x01bf, 0x01d6, - 0x01e6, 0x01f4, 0x0202, 0x020c, 0x0227, 0x0244, 0x0250, 0x025e, - 0x0283, 0x0293, 0x02ae, 0x02b8, 0x02d1, 0x02e1, 0x02f1, 0x02fb, - 0x0307, 0x032f, 0x0348, 0x0380, 0x039d, 0x03af, 0x03c5, 0x03dc, - 0x03e4, 0x03f2, 0x03fc, 0x040c, 0x042b, 0x043e, 0x0446, 0x0459, - 0x0467, 0x0480, 0x0488, 0x0492, 0x04a2, 0x04b9, 0x04c7, 0x04d1, - // Entry 40 - 7F - 0x04e1, 0x050a, 0x0514, 0x0536, 0x0544, 0x0552, 0x055e, 0x0575, - 0x0583, 0x0591, 0x059f, 0x05be, 0x05d0, 0x05da, 0x05fb, 0x060f, - 0x062a, 0x0638, 0x0642, 0x065b, 0x0669, 0x0675, 0x0692, 0x069e, - 0x06a6, 0x06b8, 0x06cc, 0x06d8, 0x06e4, 0x06f6, 0x071d, 0x0729, - 0x0778, 0x078a, 0x0792, 0x07a9, 0x07b5, 0x07d5, 0x080a, 0x081a, - 0x082a, 0x0834, 0x0842, 0x085d, 0x086f, 0x087f, 0x088d, 0x089e, - 0x08a8, 0x08ed, 0x08f5, 0x08fd, 0x090d, 0x0919, 0x0923, 0x092f, - 0x093f, 0x094b, 0x0955, 0x0969, 0x0979, 0x0989, 0x0997, 0x09bc, - // Entry 80 - BF - 0x09d3, 0x09ea, 0x09f6, 0x0a13, 0x0a25, 0x0a2d, 0x0a37, 0x0a4a, - 0x0a60, 0x0a71, 0x0a7f, 0x0a8b, 0x0a95, 0x0aa9, 0x0ab5, 0x0abf, - 0x0acd, 0x0ad9, 0x0ae7, 0x0afb, 0x0b10, 0x0b24, 0x0b43, 0x0b55, - 0x0b5d, 0x0b76, 0x0b86, 0x0ba2, 0x0bce, 0x0be0, 0x0bf4, 0x0c06, - 0x0c12, 0x0c22, 0x0c3f, 0x0c4b, 0x0c59, 0x0c69, 0x0c79, 0x0c87, - 0x0ca2, 0x0cac, 0x0cc5, 0x0cd3, 0x0ce5, 0x0cfd, 0x0d0d, 0x0d17, - 0x0d21, 0x0d29, 0x0d42, 0x0d4a, 0x0d56, 0x0d5e, 0x0d83, 0x0da3, - 0x0db3, 0x0dc3, 0x0dcf, 0x0df6, 0x0e15, 0x0e2a, 0x0e4f, 0x0e63, - // Entry C0 - FF - 0x0e6d, 0x0e7d, 0x0e87, 0x0ea2, 0x0eb0, 0x0ebe, 0x0eca, 0x0ed6, - 0x0ee2, 0x0efb, 0x0f1a, 0x0f2c, 0x0f36, 0x0f42, 0x0f52, 0x0f65, - 0x0f75, 0x0fa0, 0x0fb0, 0x0fc7, 0x0fda, 0x0fe8, 0x0ff4, 0x1004, - 0x101b, 0x1044, 0x1059, 0x1070, 0x107a, 0x108c, 0x10aa, 0x10db, - 0x10e1, 0x111d, 0x1125, 0x1133, 0x1145, 0x1153, 0x1168, 0x117e, - 0x1188, 0x1192, 0x119e, 0x11c4, 0x11d0, 0x11de, 0x11ee, 0x11fc, - 0x1208, 0x1232, 0x125c, 0x126a, 0x127c, 0x128a, 0x12c3, 0x12d5, - 0x1305, 0x132b, 0x1339, 0x1347, 0x1369, 0x1373, 0x137f, 0x1389, - // Entry 100 - 13F - 0x1397, 0x13c9, 0x13d5, 0x13e5, 0x1402, 0x140c, 0x1418, 0x1433, - 0x144e, 0x145c, 0x1473, 0x1494, 0x14ab, 0x14c4, 0x14e3, 0x14fc, - 0x150a, 0x1534, 0x154f, 0x1562, 0x1577, 0x1597, 0x15b0, 0x15c6, - 0x15d8, 0x15fb, 0x160d, 0x1615, 0x162a, 0x163d, 0x1649, 0x1660, - 0x1679, 0x1690, 0x16ad, -} - -// Size: 8079 bytes -var loRegionStr string = "" + - "ເàºàº²àº°àº­àº²à»€àºŠàº™àºŠàº±àº™àº­àº±àº™àº”à»àº£àº²àºªàº°àº«àº°àº¥àº±àº”ອາຣັບເອມິເຣດອາຟàºàº²àº™àº´àºªàº–ານອາທິàºàº»àº§ ບາບູດາà»àº­àº™àºàº¸àºàº¥àº²à»" + - "ອວເບເນàºàº­àº²à»€àº¡à»€àº™àºàº­àº±àº™à»‚àºàº¥àº²à»àº­àº™àº•àº²àº”ຕິàºàº²àº­àº²à»€àºˆàº™àº—ິນາອາເມຣິàºàº² ຊາມົວອອສເທຣàºàº­àº­àºªà»€àº•àº£à»€àº¥àº" + - "ອà»àº£àº¹àºšàº²àº«àº¡àº¹à»ˆà»€àºàº²àº°à»‚ອລັນອາເຊີໄບຈານບອດສະເນຠà»àº¥àº° à»àº®àºªà»‚àºàº§àºµàº™àº²àºšàº²àºšàº²à»‚ດສບັງàºàº°àº¥àº²à»€àº—ດເບ" + - "ວຢຽມເບີàºàº´àº™àº² ຟາໂຊບັງàºàº²à»€àº£àºàºšàº²à»€àº£àº™àºšàº¹àº£àº¸àº™àº”ິເບນິນເຊນ ບາເທເລມີເບີມິວດາບຣູໄນໂບລິ" + - "ເວàºàº„າຣິບບຽນ ເນເທີà»àº¥àº™àºšàº£àº²àºŠàº´àº§àºšàº²àº®àº²àº¡àº²àºªàºžàº¹àº–ານເàºàº²àº°àºšàº¹à»€àº§àº”ບອດສະວານາເບວບາຣຸສເບລີຊà»" + - "ຄນາດາຫມູ່ເàºàº²àº°à»‚àºà»‚àºàºªàº„ອງໂຠ- ຄິນຊາຊາສາທາລະນະລັດອາຟຣິàºàº²àºàº²àº‡àº„ອງໂຠ- ບຣາຊາວິວ" + - "ສະວິດເຊີà»àº¥àº™à»‚ຄຕີ ວົວà»àº¹à»ˆà»€àºàº²àº°àº„ຸàºàºŠàº´àº¥àºµàº„າເມຣູນຈີນໂຄລົມເບàºà»€àºàº²àº°àº„ລິບເປີຕັນໂຄສຕາ" + - " ຣິàºàº²àº„ິວບາເຄບ ເວີດຄູຣາຊາວເàºàº²àº°àº„ຣິສມາດໄຊປຣັສສາທາລະນະລັດເຊàºà»€àº¢àºàº¥àº°àº¡àº±àº™àº”ິເອໂຠàº" + - "າເຊàºàºˆàº´àºšàº¹àº•àº´à»€àº”ນມາàºà»‚ດມີນິຄາສາທາລະນະລັດ ໂດມິນິàºàº±àº™àº­àº±àº¥àºˆàº´à»€àº£àºà»€àºŠàº§àº•àº² à»àº¥àº°à»€àº¡àº¥àº´àº™àº¥àº²à»€" + - "ອàºàºàº§àº²àº”à»à»€àº­àºªà»‚ຕເນàºàº­àºµàº¢àº´àºšàºŠàº²àº®àº²àº£àº²àº•àº²à»€àº§àº±àº™àº•àº»àºà»€àº­àº£àº´à»€àº—ຣàºàºªàº°à»€àº›àº™àº­àºµàº—ິໂອເປàºàºªàº°àº«àº°àºžàº²àºšàº¢àº¹à»‚ຣບຟ" + - "ິນà»àº¥àº™àºŸàº´àºˆàº´àº«àº¡àº¹à»ˆà»€àºàº²àº°àºŸàº­àºà»àº¥àº™à»„ມໂຄຣນີເຊàºàº«àº¡àº¹à»ˆà»€àºàº²àº°à»àºŸà»‚ຣàºàº£àº±à»ˆàº‡àºàº²àºšàº­àº™àºªàº°àº«àº°àº¥àº²àº”ຊະອະນາຈັ" + - "àºà»€àºàº£à»€àº™àº”າຈà»à»€àºˆàºà»€àºŸàº£àº™àºŠà»Œ àºàº¸àºàº­àº²àº™àº²à»€àºàºµàº™àºŠàºµàºàº²àº™àº²àºˆàº´àºšàºšàº£àº­àº™àº—າàºàº£àºµàº™à»àº¥àº™àºªàº²àº—າລະນະລັດà»àºàº¡à»€àºšàº" + - "àºàº´àº™àºµàºàº»àº§àº”າລູບອີຄົວໂຕຣຽວ àºàºµàº™àºµàºàº£àºµàºŠà»àº¹à»ˆà»€àºàº²àº°àºˆà»à»€àºˆàº & ເຊົາ à»àºŠàº™àº§àº´àº”àºàº»àº§à»€àº—ມາລາàºàº§àº¡àº" + - "ິນີ-ບິສເຊົາàºàº²àºàº¢àº²àº™àº²àº®àº­àº‡àºàº»àº‡ ເຂດປົàºàº„ອງພິເສດ ຈີນà»àº¹à»ˆà»€àºàº²àº°à»€àº®àºµàº” & à»àº¡àº±àºà»‚ດນອລຮອນດ" + - "ູຣັສໂຄຣເອເທàºà»„ຮຕິຮັງàºàº²àº£àºµà»àº¹à»ˆà»€àºàº²àº°àº„ານາຣີອິນໂດເນເຊàºà»„ອຣ໌à»àº¥àº™àº­àº´àºªàº£àº²à»€àº­àº§à»€àº­àº§ ອອບ à»" + - "ມນອິນເດàºà»€àº‚ດà»àº”ນບຣິທິສອິນດຽນໂອຊຽນອີຣັàºàº­àºµàº£à»ˆàº²àº™à»„ອສà»àº¥àº™àº­àº´àº•àº²àº¥àºµà»€àºˆàºµàºŠàºµàºˆàº²à»„ມຄາຈà»à»àº”ນ" + - "àºàºµà»ˆàº›àº¸à»ˆàº™à»€àº„ນຢາຄີàºàº´àºªàº–ານàºàº³àº›àº¹à»€àºˆàºàº„ິຣິບາທິໂຄໂມໂຣສເຊນ ຄິດ à»àº¥àº° ເນວິສເàºàº»àº²àº«àº¥àºµà»€à»œàº·àº­" + - "ເàºàº»àº²àº«àº¥àºµà»ƒàº•à»‰àº„ູເວດເຄà»àº¡àº™ ໄອà»àº¥àº™àº„າຊັàºàºªàº°àº–ານລາວເລບານອນເຊນ ລູເຊàºàº¥àº´àº”ເທນສະຕາàºàºªàºµàº¥àº±" + - "ງàºàº²àº¥àº´à»€àºšàºµà»€àº£àºà»€àº¥à»‚ຊໂທລິທົວເນàºàº¥àº¸àºà»àºŠàº¡à»€àºšàºµàºàº¥àº±àº”ເວàºàº¥àº´à»€àºšàºà»‚ມຣັອàºà»‚ຄໂມນາໂຄໂມນໂດວາມອນ" + - "ເຕເນໂàºàº£à»€àºŠàº™ ມາທິນມາດາàºàº²àºªàºàº²àº«àº¡àº¹à»ˆà»€àºàº²àº°àº¡àº²à»àºŠàº§à»àº¡àºŠàº´à»‚ດເນàºàº¡àº²àº¥àº´àº¡àº½àº™àº¡àº² (ເບີມາ)ມອງໂàºà»€" + - "ລàºàº¡àº²à»€àºàº»à»‰àº² ເຂດປົàºàº„ອງພິເສດ ຈີນຫມູ່ເàºàº²àº°àº¡àº²à»àºŠàº§àº•àº­àº™à»€àº«àº™àº·àº­àº¡àº²àº•àº´àº™àºµàºàº¡àº»àº§àº£àº´à»€àº—ເນàºàº¡àº­àº™à»€" + - "ຊີຣາດມອນທາມົວຣິຊຽສມັນດິຟມາລາວີເມັàºàºŠàº´à»‚àºàº¡àº²à»€àº¥à»€àºŠàºà»‚ມà»àºŠàº¡àºšàº´àºàº™àº²àº¡àºµà»€àºšàºàº™àº´àº§ ຄາເລໂດ" + - "ເນàºàº™àº´à»€àºˆàºµà»€àºàº²àº°àº™à»à»‚ຟàºà»„ນຈີເຣàºàº™àº´àºàº„າຣາàºàº»àº§à»€àº™à»€àº—ີà»àº¥àº™àº™à»à»€àº§à»€àº™àº›àº²àº™àº™àº²àº­àº¹àº£àº¹àº™àºµàº­àº¹à»€àº­àº™àº´àº§àºŠàºµà»àº¥" + - "ນໂອມານພານາມາເປຣູເຟຣນຊ໌ ໂພລີນີເຊàºàº›àº²àº›àº»àº§àº™àº´àº§àºàºµàº™àºµàºŸàº´àº¥àº´àºšàº›àº´àº™àº›àº²àºàº´àºªàº–ານໂປà»àº¥àº™à»€àºŠàº™ ປ" + - "ີà»àº­ ມິເàºàº§àº¥àº­àº™à»àº¹à»ˆà»€àºàº²àº°àºžàº´àº”à»àº„ນເພືອໂຕ ຣິໂàºàº”ິນà»àº”ນ ປາເລສຕິນຽນພອລທູໂàºàº›àº²à»€àº¥àº»àº²àºžàº²àº£àº²" + - "àºàº§àºàºàº²àº•àº²à»€àº‚ດຫ່າງໄàºà»‚ອຊີເນàºà»€àº£àº­àº¹àº™àº´àºàº»àº‡à»‚ຣà»àº¡à»€àº™àºà»€àºŠàºµà»€àºšàºàº£àº±àº”ເຊàºàº£àº§àº±àº™àº”າຊາອຸດິ ອາຣາເບ" + - "àºàº«àº¡àº¹à»ˆà»€àºàº²àº°à»‚ຊໂລມອນເຊເຊວເລສຊູດານສະວີເດັນສິງàºàº°à»‚ປເຊນ ເຮເລນາສະໂລເວເນàºàºªàº°àº§àº²àºšàº² " + - "à»àº¥àº° à»àº¢àº™ ມາເຢນສະໂລວາເàºàºà»€àºŠàºàº£àº² ລີໂອນà»àºŠàº™ ມາຣິໂນເຊນີໂàºàº¥à»‚ຊມາເລàºàºŠàº¹àº£àº´àº™àº²àº¡àºŠàº¹àº”ານໃ" + - "ຕ້ເຊົາທູເມ à»àº¥àº° ພຣິນຊິບເອວ ຊà»àº§àº²àº”à»àºŠàº´àº™ ມາເທັນຊີເຣàºàºªàº°àº§àº²àºŠàº´à»àº¥àº™àº—ຣິສຕັນ ດາ àºàº±àº™" + - "ຮາà»àº¹à»ˆà»€àºàº²àº° ເທີຠà»àº¥àº° ໄຄໂຄສຊາດເຂດà»àº”ນທາງໃຕ້ຂອàºàº®àº±à»ˆàº‡à»‚ຕໂàºà»„ທທາຈິàºàº´àºªàº–ານໂຕເàºà»€àº¥àº»àº²" + - "ທິມà»-ເລສເຕເທີàºà»€àº¡àº™àº´àºªàº–ານຕູນິເຊàºàº—ອງàºàº²à»€àº—ີຄີທຣິນິà»àº”ດ à»àº¥àº° ໂທà»àºšà»‚àºàº•àº¹àº§àº²àº¥àº¹à»„ຕ້ຫວັ" + - "ນທານຊາເນàºàº¢àº¹à»€àº„ຣນອູàºàº²àº™àº”າà»àº¹à»ˆà»€àºàº²àº°àº®àº­àºšàº™àº­àºàº‚ອງສະຫະລັດຯສະຫະລັດອູຣຸàºàº§àºàº­àº¸àºªà»€àºšàºàº´àºªàº–າ" + - "ນນະຄອນ ວາຕິàºàº±àº™à»€àºŠàº™ ວິນເຊນ & ເàºàº£à»€àº™àº”ິນເວເນຊູເອລາà»àº¹à»ˆà»€àºàº²àº° ບຣິທິຊ ເວີຈິນà»àº¹à»ˆà»€" + - "àºàº²àº° ຢູເອສ ເວີຈິນຫວຽດນາມວານົວຕູວາລິສ à»àº¥àº° ຟຸຕູນາຊາມົວໂຄໂຊໂວເຢເມນມາຢັອດອາ" + - "ຟະລິàºàº²à»ƒàº•à»‰à»àºŠàº¡à»€àºšàºàºŠàº´àº¡àºšàº±àºšà»€àº§àº‚ົງເຂດທີ່ບà»à»ˆàº®àº¹à»‰àºˆàº±àºà»‚ລàºàº­àº²àºŸàº£àº´àºàº²àº­àº²à»€àº¡àº¥àº´àºàº²à»€à»œàº·àº­àº­àº²à»€àº¡àº¥àº´àº" + - "າໃຕ້ໂອຊີເນàºàº­àº²àºŸàº£àº´àºàº²àº•àº²à»€àº§àº±àº™àº•àº»àºàº­àº²à»€àº¡àº¥àº´àºàº²àºàº²àº‡àº­àº²àºŸàº£àº´àºàº²àº•àº²à»€àº§àº±àº™àº­àº­àºàº­àº²àºŸàº£àº´àºàº²à»€à»œàº·àº­àº­àº²àºŸàº£àº´" + - "àºàº²àºàº²àº‡àº­àº²àºŸàº£àº´àºàº²à»ƒàº•à»‰àº­àº²à»€àº¡àº£àº´àºàº²àº­àº²à»€àº¡àº¥àº´àºàº²àºªà»ˆàº§àº™à»€à»œàº·àº­àº„າຣິບບຽນເອເຊàºàº•àº²à»€àº§àº±àº™àº­àº­àºà»€àº­à»€àºŠàºà»ƒàº•à»‰à»€" + - "ອເຊàºàº•àº²à»€àº§àº±àº™àº­àº­àºàºªà»ˆàº½àº‡à»ƒàº•à»‰àº¢àº¹à»‚ຣບໃຕ້ອອສເຕຣເລເຊàºà»€àº¡àº¥àº²àº™àºµà»€àºŠàºà»€àº‚ດໄມໂຄຣເນຊຽນໂພລີນີເຊàº" + - "ເອເຊàºà»€àº­à»€àºŠàºàºàº²àº‡à»€àº­à»€àºŠàºàº•àº²à»€àº§àº±àº™àº•àº»àºàº¢àº¹à»‚ຣບຢູໂຣບຕາເວັນອອàºàº¢àº¹à»‚ຣບເໜືອຢູໂຣບຕາເວັນຕົàºàº¥" + - "າຕິນ ອາເມລິàºàº²" - -// Size: 606 bytes, 291 elements -var loRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0024, 0x0039, 0x0072, 0x0093, 0x00bb, 0x00d3, 0x00eb, - 0x0100, 0x0100, 0x0115, 0x0133, 0x014e, 0x0176, 0x018b, 0x01a6, - 0x01b8, 0x01df, 0x01fd, 0x023b, 0x0250, 0x026e, 0x0280, 0x02a2, - 0x02ba, 0x02c9, 0x02de, 0x02ed, 0x030f, 0x0327, 0x0336, 0x034b, - 0x037c, 0x038e, 0x03a3, 0x03b2, 0x03cd, 0x03e8, 0x0400, 0x040f, - 0x0421, 0x0448, 0x046f, 0x04ae, 0x04d8, 0x04f9, 0x050f, 0x052d, - 0x0539, 0x054e, 0x0557, 0x056f, 0x0599, 0x05b5, 0x05c4, 0x05da, - 0x05ef, 0x0610, 0x0622, 0x064c, 0x0664, 0x0686, 0x0698, 0x06aa, - // Entry 40 - 7F - 0x06c2, 0x06ff, 0x0717, 0x0745, 0x075d, 0x0775, 0x0784, 0x07b1, - 0x07c9, 0x07d8, 0x07f3, 0x0817, 0x0829, 0x0835, 0x085f, 0x087d, - 0x08a1, 0x08b0, 0x08bf, 0x08ef, 0x0904, 0x0913, 0x093b, 0x094d, - 0x0959, 0x0974, 0x0989, 0x09bc, 0x09c8, 0x09e0, 0x0a0b, 0x0a17, - 0x0a5d, 0x0a78, 0x0a81, 0x0aa3, 0x0ab8, 0x0aff, 0x0b3e, 0x0b56, - 0x0b6e, 0x0b7a, 0x0b8f, 0x0bb6, 0x0bd4, 0x0be9, 0x0c01, 0x0c1e, - 0x0c30, 0x0c75, 0x0c84, 0x0c96, 0x0ca8, 0x0cba, 0x0cc9, 0x0cdb, - 0x0cea, 0x0cff, 0x0d0e, 0x0d26, 0x0d3b, 0x0d53, 0x0d68, 0x0d95, - // Entry 80 - BF - 0x0db6, 0x0dd4, 0x0de3, 0x0e02, 0x0e20, 0x0e29, 0x0e3e, 0x0e57, - 0x0e78, 0x0e8d, 0x0ea5, 0x0eb7, 0x0ecf, 0x0eed, 0x0eff, 0x0f0e, - 0x0f26, 0x0f38, 0x0f4d, 0x0f6b, 0x0f84, 0x0f9f, 0x0fc6, 0x0fe1, - 0x0fed, 0x100e, 0x1026, 0x1070, 0x10af, 0x10c4, 0x10e2, 0x10fd, - 0x110c, 0x1124, 0x1136, 0x1148, 0x1160, 0x1175, 0x118d, 0x11a2, - 0x11c7, 0x11d6, 0x11f1, 0x1206, 0x1224, 0x123c, 0x1248, 0x1257, - 0x1269, 0x127b, 0x1293, 0x12a2, 0x12b4, 0x12c0, 0x12ee, 0x1312, - 0x132a, 0x1342, 0x1351, 0x1380, 0x13a7, 0x13c6, 0x13f7, 0x140c, - // Entry C0 - FF - 0x141e, 0x1433, 0x143f, 0x146f, 0x148a, 0x149f, 0x14b1, 0x14c3, - 0x14d5, 0x14fd, 0x152a, 0x1542, 0x1551, 0x1569, 0x157e, 0x159a, - 0x15b5, 0x15eb, 0x1606, 0x1625, 0x1641, 0x1656, 0x166b, 0x1680, - 0x1698, 0x16d0, 0x16ec, 0x1708, 0x1717, 0x1732, 0x175e, 0x179a, - 0x17a3, 0x17dc, 0x17e8, 0x17ee, 0x180c, 0x1824, 0x1840, 0x1864, - 0x1879, 0x1888, 0x1897, 0x18cc, 0x18de, 0x18f3, 0x190b, 0x191d, - 0x1932, 0x197a, 0x198f, 0x19a4, 0x19c5, 0x19ea, 0x1a21, 0x1a3f, - 0x1a7a, 0x1ab2, 0x1ac7, 0x1adc, 0x1b08, 0x1b17, 0x1b29, 0x1b38, - // Entry 100 - 13F - 0x1b4a, 0x1b6b, 0x1b7d, 0x1b95, 0x1bcb, 0x1bd4, 0x1be9, 0x1c0d, - 0x1c2e, 0x1c43, 0x1c73, 0x1c94, 0x1cc4, 0x1ce5, 0x1d03, 0x1d21, - 0x1d39, 0x1d69, 0x1d81, 0x1dab, 0x1dc3, 0x1e02, 0x1e1a, 0x1e3b, - 0x1e56, 0x1e7d, 0x1e98, 0x1ea7, 0x1ebf, 0x1ee9, 0x1ef8, 0x1f22, - 0x1f3d, 0x1f67, 0x1f8f, -} - -// Size: 3396 bytes -var ltRegionStr string = "" + - "Dangun Žengimo salaAndoraJungtiniai Arabų EmyrataiAfganistanasAntigva ir" + - " BarbudaAngilijaAlbanijaArmÄ—nijaOlandijos AntilaiAngolaAntarktidaArgenti" + - "naAmerikos SamoaAustrijaAustralijaArubaAlandų SalosAzerbaidžanasBosnija " + - "ir HercegovinaBarbadosasBangladeÅ¡asBelgijaBurkina FasasBulgarijaBahreina" + - "sBurundisBeninasSen BartelemiBermudaBrunÄ—jusBolivijaKaribų NyderlandaiBr" + - "azilijaBahamosButanasBuvÄ— SalaBotsvanaBaltarusijaBelizasKanadaKokosų (Ki" + - "lingo) SalosKongas-KinÅ¡asaCentrinÄ—s Afrikos RespublikaKongas-BrazavilisÅ " + - "veicarijaDramblio Kaulo KrantasKuko SalosÄŒilÄ—KamerÅ«nasKinijaKolumbijaKli" + - "pertono salaKosta RikaKubaŽaliasis KyÅ¡ulysKiurasaoKalÄ—dų SalaKiprasÄŒekij" + - "aVokietijaDiego GarsijaDžibutisDanijaDominikaDominikos RespublikaAlžyras" + - "Seuta ir MelilaEkvadorasEstijaEgiptasVakarų SacharaEritrÄ—jaIspanijaEtiop" + - "ijaEuropos SÄ…jungaSuomijaFidžisFolklando SalosMikronezijaFarerų SalosPra" + - "ncÅ«zijaGabonasDidžioji BritanijaGrenadaGruzijaPrancÅ«zijos GvianaGernsisG" + - "anaGibraltarasGrenlandijaGambijaGvinÄ—jaGvadelupaPusiaujo GvinÄ—jaGraikija" + - "Pietų Džordžija ir Pietų SandviÄo salosGvatemalaGuamasBisau GvinÄ—jaGajan" + - "aYpatingasis Administracinis Kinijos Regionas HonkongasHerdo ir Makdonal" + - "do SalosHondÅ«rasKroatijaHaitisVengrijaKanarų salosIndonezijaAirijaIzrael" + - "isMeno SalaIndijaIndijos Vandenyno Britų SritisIrakasIranasIslandijaItal" + - "ijaDžersisJamaikaJordanijaJaponijaKenijaKirgizijaKambodžaKiribatisKomora" + - "iSent Kitsas ir NevisÅ iaurÄ—s KorÄ—jaPietų KorÄ—jaKuveitasKaimanų SalosKaza" + - "chstanasLaosasLibanasÅ ventoji LiucijaLichtenÅ¡teinasÅ ri LankaLiberijaLeso" + - "tasLietuvaLiuksemburgasLatvijaLibijaMarokasMonakasMoldovaJuodkalnijaSen " + - "MartenasMadagaskarasMarÅ¡alo SalosMakedonijaMalisMianmaras (Birma)Mongoli" + - "jaYpatingasis Administracinis Kinijos Regionas MakaoMarianos Å iaurinÄ—s S" + - "alosMartinikaMauritanijaMontseratasMaltaMauricijusMaldyvaiMalavisMeksika" + - "MalaizijaMozambikasNamibijaNaujoji KaledonijaNigerisNorfolko salaNigerij" + - "aNikaragvaNyderlandaiNorvegijaNepalasNauruNiujÄ—Naujoji ZelandijaOmanasPa" + - "namaPeruPrancÅ«zų PolinezijaPapua Naujoji GvinÄ—jaFilipinaiPakistanasLenki" + - "jaSen Pjeras ir MikelonasPitkernasPuerto RikasPalestinos teritorijaPortu" + - "galijaPalauParagvajusKatarasNuoÅ¡ali OkeanijaReunjonasRumunijaSerbijaRusi" + - "jaRuandaSaudo ArabijaSaliamono SalosSeiÅ¡eliaiSudanasÅ vedijaSingapÅ«rasÅ v." + - " Elenos SalaSlovÄ—nijaSvalbardas ir Janas MajenasSlovakijaSiera LeonÄ—San " + - "MarinasSenegalasSomalisSurinamasPietų SudanasSan TomÄ— ir PrinsipÄ—Salvado" + - "rasSint MartenasSirijaSvazilandasTristanas da KunjaTerkso ir Kaikoso Sal" + - "osÄŒadasPrancÅ«zijos Pietų sritysTogasTailandasTadžikijaTokelauRytų Timora" + - "sTurkmÄ—nistanasTunisasTongaTurkijaTrinidadas ir TobagasTuvaluTaivanasTan" + - "zanijaUkrainaUgandaJungtinių Valstijų Mažosios Tolimosios SalosJungtinÄ—s" + - " ValstijosUrugvajusUzbekistanasVatikano Miesto ValstybÄ—Å ventasis Vincent" + - "as ir GrenadinaiVenesuelaDidžiosios Britanijos Mergelių SalosJungtinių V" + - "alstijų Mergelių SalosVietnamasVanuatuVolisas ir FutunaSamoaKosovasJemen" + - "asMajotasPietų AfrikaZambijaZimbabvÄ—nežinoma sritispasaulisAfrikaÅ iaurÄ—s" + - " AmerikaPietų AmerikaOkeanijaVakarų AfrikaCentrinÄ— AmerikaRytų AfrikaÅ ia" + - "urÄ—s AfrikaVidurio AfrikaPietinÄ— AfrikaAmerikaÅ iaurinÄ— AmerikaKaribaiRyt" + - "ų AzijaPietų AzijaPietryÄių AzijaPietų EuropaAustralazijaMelanezijaMikr" + - "onezijos regionasPolinezijaAzijaCentrinÄ— AzijaVakarų AzijaEuropaRytų Eur" + - "opaÅ iaurÄ—s EuropaVakarų EuropaLotynų Amerika" - -// Size: 606 bytes, 291 elements -var ltRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0014, 0x001a, 0x0034, 0x0040, 0x0052, 0x005a, 0x0062, - 0x006b, 0x007c, 0x0082, 0x008c, 0x0095, 0x00a3, 0x00ab, 0x00b5, - 0x00ba, 0x00c7, 0x00d5, 0x00eb, 0x00f5, 0x0101, 0x0108, 0x0115, - 0x011e, 0x0127, 0x012f, 0x0136, 0x0143, 0x014a, 0x0153, 0x015b, - 0x016e, 0x0177, 0x017e, 0x0185, 0x018f, 0x0197, 0x01a2, 0x01a9, - 0x01af, 0x01c6, 0x01d5, 0x01f2, 0x0203, 0x020e, 0x0224, 0x022e, - 0x0234, 0x023e, 0x0244, 0x024d, 0x025c, 0x0266, 0x026a, 0x027c, - 0x0284, 0x0291, 0x0297, 0x029e, 0x02a7, 0x02b4, 0x02bd, 0x02c3, - // Entry 40 - 7F - 0x02cb, 0x02df, 0x02e7, 0x02f6, 0x02ff, 0x0305, 0x030c, 0x031b, - 0x0324, 0x032c, 0x0334, 0x0344, 0x034b, 0x0352, 0x0361, 0x036c, - 0x0379, 0x0384, 0x038b, 0x039e, 0x03a5, 0x03ac, 0x03bf, 0x03c6, - 0x03ca, 0x03d5, 0x03e0, 0x03e7, 0x03ef, 0x03f8, 0x0409, 0x0411, - 0x043d, 0x0446, 0x044c, 0x045a, 0x0460, 0x0496, 0x04af, 0x04b8, - 0x04c0, 0x04c6, 0x04ce, 0x04db, 0x04e5, 0x04eb, 0x04f3, 0x04fc, - 0x0502, 0x0521, 0x0527, 0x052d, 0x0536, 0x053d, 0x0545, 0x054c, - 0x0555, 0x055d, 0x0563, 0x056c, 0x0575, 0x057e, 0x0585, 0x0599, - // Entry 80 - BF - 0x05aa, 0x05b8, 0x05c0, 0x05ce, 0x05da, 0x05e0, 0x05e7, 0x05f8, - 0x0607, 0x0611, 0x0619, 0x0620, 0x0627, 0x0634, 0x063b, 0x0641, - 0x0648, 0x064f, 0x0656, 0x0661, 0x066d, 0x0679, 0x0687, 0x0691, - 0x0696, 0x06a7, 0x06b0, 0x06e2, 0x06fc, 0x0705, 0x0710, 0x071b, - 0x0720, 0x072a, 0x0732, 0x0739, 0x0740, 0x0749, 0x0753, 0x075b, - 0x076d, 0x0774, 0x0781, 0x0789, 0x0792, 0x079d, 0x07a6, 0x07ad, - 0x07b2, 0x07b8, 0x07c9, 0x07cf, 0x07d5, 0x07d9, 0x07ee, 0x0804, - 0x080d, 0x0817, 0x081e, 0x0835, 0x083e, 0x084a, 0x085f, 0x086a, - // Entry C0 - FF - 0x086f, 0x0879, 0x0880, 0x0891, 0x089a, 0x08a2, 0x08a9, 0x08af, - 0x08b5, 0x08c2, 0x08d1, 0x08db, 0x08e2, 0x08ea, 0x08f5, 0x0905, - 0x090f, 0x092a, 0x0933, 0x093f, 0x094a, 0x0953, 0x095a, 0x0963, - 0x0971, 0x0987, 0x0991, 0x099e, 0x09a4, 0x09af, 0x09c1, 0x09d8, - 0x09de, 0x09f8, 0x09fd, 0x0a06, 0x0a10, 0x0a17, 0x0a24, 0x0a33, - 0x0a3a, 0x0a3f, 0x0a46, 0x0a5b, 0x0a61, 0x0a69, 0x0a72, 0x0a79, - 0x0a7f, 0x0aae, 0x0ac2, 0x0acb, 0x0ad7, 0x0af0, 0x0b12, 0x0b1b, - 0x0b41, 0x0b65, 0x0b6e, 0x0b75, 0x0b86, 0x0b8b, 0x0b92, 0x0b99, - // Entry 100 - 13F - 0x0ba0, 0x0bad, 0x0bb4, 0x0bbd, 0x0bcd, 0x0bd5, 0x0bdb, 0x0bec, - 0x0bfa, 0x0c02, 0x0c10, 0x0c21, 0x0c2d, 0x0c3d, 0x0c4b, 0x0c5a, - 0x0c61, 0x0c73, 0x0c7a, 0x0c85, 0x0c91, 0x0ca2, 0x0caf, 0x0cbb, - 0x0cc5, 0x0cda, 0x0ce4, 0x0ce9, 0x0cf8, 0x0d05, 0x0d0b, 0x0d17, - 0x0d27, 0x0d35, 0x0d44, -} - -// Size: 3293 bytes -var lvRegionStr string = "" + - "DebesbraukÅ¡anas salaAndoraApvienotie ArÄbu EmirÄtiAfganistÄnaAntigva un " + - "BarbudaAngiljaAlbÄnijaArmÄ“nijaNÄ«derlandes AntiļasAngolaAntarktikaArgentÄ«" + - "naAmerikÄņu SamoaAustrijaAustrÄlijaArubaOlandes salasAzerbaidžÄnaBosnija" + - " un HercegovinaBarbadosaBangladeÅ¡aBeļģijaBurkinafasoBulgÄrijaBahreinaBur" + - "undiBeninaSenbartelmÄ«Bermudu salasBrunejaBolÄ«vijaNÄ«derlandes KarÄ«bu sala" + - "sBrazÄ«lijaBahamu salasButÄnaBuvÄ“ salaBotsvÄnaBaltkrievijaBelizaKanÄdaKok" + - "osu jeb KÄ«linga salasKongo-KinÅ¡asaCentrÄlÄfrikas RepublikaKongo - Brazav" + - "ilaÅ veiceKotdivuÄraKuka salasČīleKamerÅ«naĶīnaKolumbijaKlipertona salaKos" + - "tarikaKubaKaboverdeKirasaoZiemsvÄ“tku salaKipraÄŒehijaVÄcijaDjego Garsijas" + - " atolsDžibutijaDÄnijaDominikaDominikÄnaAlžīrijaSeÅ«ta un MeliljaEkvadoraI" + - "gaunijaÄ’Ä£ipteRietumsahÄraEritrejaSpÄnijaEtiopijaEiropas SavienÄ«baSomijaF" + - "idžiFolklenda salasMikronÄ“zijaFÄ“ru SalasFrancijaGabonaLielbritÄnijaGrenÄ" + - "daGruzijaFranÄu GviÄnaGÄ“rnsijaGanaGibraltÄrsGrenlandeGambijaGvinejaGvade" + - "lupaEkvatoriÄlÄ GvinejaGrieÄ·ijaDienviddžordžija un DienvidsendviÄu salas" + - "GvatemalaGuamaGvineja-BisavaGajÄnaĶīnas Ä«paÅ¡Äs pÄrvaldes apgabals Honkon" + - "gaHÄ“rda un Makdonalda salasHondurasaHorvÄtijaHaitiUngÄrijaKanÄriju salas" + - "IndonÄ“zijaĪrijaIzraÄ“laMenaIndijaIndijas okeÄna Britu teritorijaIrÄkaIrÄn" + - "aĪslandeItÄlijaDžērsijaJamaikaJordÄnijaJapÄnaKenijaKirgizstÄnaKambodžaKi" + - "ribatiKomoru salasSentkitsa un NevisaZiemeļkorejaDienvidkorejaKuveitaKai" + - "manu salasKazahstÄnaLaosaLibÄnaSentlÅ«sijaLihtenÅ¡teinaÅ rilankaLibÄ“rijaLes" + - "otoLietuvaLuksemburgaLatvijaLÄ«bijaMarokaMonakoMoldovaMelnkalneSenmartÄ“na" + - "MadagaskaraMÄrÅ¡ala salasMaÄ·edonijaMaliMjanma (Birma)MongolijaĶīnas Ä«paÅ¡Ä" + - "s pÄrvaldes apgabals MakaoZiemeļu Marianas salasMartinikaMauritÄnijaMont" + - "serrataMaltaMaurÄ«cijaMaldÄ«vijaMalÄvijaMeksikaMalaizijaMozambikaNamÄ«bijaJ" + - "aunkaledonijaNigÄ“raNorfolkas salaNigÄ“rijaNikaragvaNÄ«derlandeNorvÄ“Ä£ijaNep" + - "ÄlaNauruNiueJaunzÄ“landeOmÄnaPanamaPeruFranÄu PolinÄ“zijaPapua-Jaungvinej" + - "aFilipÄ«nasPakistÄnaPolijaSenpjÄ“ra un MikelonaPitkÄ“rnaPuertorikoPalestÄ«na" + - "PortugÄlePalauParagvajaKataraOkeÄnijas attÄlÄs salasReinjonaRumÄnijaSerb" + - "ijaKrievijaRuandaSaÅ«da ArÄbijaZÄlamana salasÅ eiÅ¡elu salasSudÄnaZviedrija" + - "SingapÅ«raSv.HelÄ“nas salaSlovÄ“nijaSvalbÄra un Jana Majena salaSlovÄkijaSj" + - "erraleoneSanmarÄ«noSenegÄlaSomÄlijaSurinamaDienvidsudÄnaSantome un Prinsi" + - "piSalvadoraSintmÄrtenaSÄ«rijaSvazilendaTristana da Kuņas salasTÄ“rksas un " + - "Kaikosas salasÄŒadaFrancijas DienvidjÅ«ru ZemesTogoTaizemeTadžikistÄnaToke" + - "lauAustrumtimoraTurkmenistÄnaTunisijaTongaTurcijaTrinidÄda un TobÄgoTuva" + - "luTaivÄnaTanzÄnijaUkrainaUgandaASV AizjÅ«ras salasAmerikas SavienotÄs Val" + - "stisUrugvajaUzbekistÄnaVatikÄnsSentvinsenta un GrenadÄ«nasVenecuÄ“laBritu " + - "VirdžīnasASV VirdžīnasVjetnamaVanuatuVolisa un FutunaSamoaKosovaJemenaMa" + - "jotaDienvidÄfrikas RepublikaZambijaZimbabvenezinÄms reÄ£ionspasauleÄ€frika" + - "ZiemeļamerikaDienvidamerikaOkeÄnijaRietumÄfrikaCentrÄlamerikaAustrumÄfri" + - "kaZiemeļÄfrikaVidusÄfrikaDienvidÄfrikaAmerikaAmerikas ziemeļu daļaKarÄ«bu" + - " jÅ«ras reÄ£ionsAustrumÄzijaDienvidÄzijaCentrÄlaustrumÄzijaDienvideiropaAu" + - "strÄlÄzijaMelanÄ“zijaMikronÄ“zijas reÄ£ionsPolinÄ“zijaÄ€zijaCentrÄlÄzijaRietu" + - "mÄzijaEiropaAustrumeiropaZiemeļeiropaRietumeiropaLatīņamerika" - -// Size: 606 bytes, 291 elements -var lvRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0015, 0x001b, 0x0035, 0x0041, 0x0053, 0x005a, 0x0063, - 0x006c, 0x0081, 0x0087, 0x0091, 0x009b, 0x00ac, 0x00b4, 0x00bf, - 0x00c4, 0x00d1, 0x00df, 0x00f5, 0x00fe, 0x0109, 0x0112, 0x011d, - 0x0127, 0x012f, 0x0136, 0x013c, 0x0148, 0x0155, 0x015c, 0x0165, - 0x017f, 0x0189, 0x0195, 0x019c, 0x01a6, 0x01af, 0x01bb, 0x01c1, - 0x01c8, 0x01e1, 0x01ef, 0x0209, 0x021a, 0x0221, 0x022c, 0x0236, - 0x023c, 0x0245, 0x024b, 0x0254, 0x0263, 0x026c, 0x0270, 0x0279, - 0x0280, 0x0290, 0x0295, 0x029c, 0x02a3, 0x02b7, 0x02c1, 0x02c8, - // Entry 40 - 7F - 0x02d0, 0x02db, 0x02e5, 0x02f6, 0x02fe, 0x0306, 0x030e, 0x031b, - 0x0323, 0x032b, 0x0333, 0x0345, 0x034b, 0x0351, 0x0360, 0x036c, - 0x0377, 0x037f, 0x0385, 0x0393, 0x039b, 0x03a2, 0x03b1, 0x03ba, - 0x03be, 0x03c9, 0x03d2, 0x03d9, 0x03e0, 0x03e9, 0x03fe, 0x0407, - 0x0433, 0x043c, 0x0441, 0x044f, 0x0456, 0x0484, 0x049e, 0x04a7, - 0x04b1, 0x04b6, 0x04bf, 0x04ce, 0x04d9, 0x04df, 0x04e7, 0x04eb, - 0x04f1, 0x0511, 0x0517, 0x051d, 0x0525, 0x052d, 0x0537, 0x053e, - 0x0548, 0x054f, 0x0555, 0x0561, 0x056a, 0x0572, 0x057e, 0x0591, - // Entry 80 - BF - 0x059e, 0x05ab, 0x05b2, 0x05bf, 0x05ca, 0x05cf, 0x05d6, 0x05e1, - 0x05ee, 0x05f7, 0x0600, 0x0606, 0x060d, 0x0618, 0x061f, 0x0626, - 0x062c, 0x0632, 0x0639, 0x0642, 0x064d, 0x0658, 0x0667, 0x0672, - 0x0676, 0x0684, 0x068d, 0x06b8, 0x06cf, 0x06d8, 0x06e4, 0x06ef, - 0x06f4, 0x06fe, 0x0708, 0x0711, 0x0718, 0x0721, 0x072a, 0x0733, - 0x0741, 0x0748, 0x0756, 0x075f, 0x0768, 0x0773, 0x077e, 0x0785, - 0x078a, 0x078e, 0x079a, 0x07a0, 0x07a6, 0x07aa, 0x07bd, 0x07ce, - 0x07d8, 0x07e2, 0x07e8, 0x07fd, 0x0806, 0x0810, 0x081a, 0x0824, - // Entry C0 - FF - 0x0829, 0x0832, 0x0838, 0x0852, 0x085a, 0x0863, 0x086a, 0x0872, - 0x0878, 0x0887, 0x0896, 0x08a5, 0x08ac, 0x08b5, 0x08bf, 0x08cf, - 0x08d9, 0x08f6, 0x0900, 0x090b, 0x0915, 0x091e, 0x0927, 0x092f, - 0x093d, 0x0950, 0x0959, 0x0965, 0x096c, 0x0976, 0x098e, 0x09a8, - 0x09ad, 0x09c9, 0x09cd, 0x09d4, 0x09e2, 0x09e9, 0x09f6, 0x0a04, - 0x0a0c, 0x0a11, 0x0a18, 0x0a2d, 0x0a33, 0x0a3b, 0x0a45, 0x0a4c, - 0x0a52, 0x0a65, 0x0a81, 0x0a89, 0x0a95, 0x0a9e, 0x0ab9, 0x0ac3, - 0x0ad4, 0x0ae3, 0x0aeb, 0x0af2, 0x0b02, 0x0b07, 0x0b0d, 0x0b13, - // Entry 100 - 13F - 0x0b19, 0x0b32, 0x0b39, 0x0b41, 0x0b53, 0x0b5a, 0x0b61, 0x0b6f, - 0x0b7d, 0x0b86, 0x0b93, 0x0ba2, 0x0bb0, 0x0bbe, 0x0bca, 0x0bd8, - 0x0bdf, 0x0bf6, 0x0c0d, 0x0c1a, 0x0c27, 0x0c3c, 0x0c49, 0x0c57, - 0x0c62, 0x0c78, 0x0c83, 0x0c89, 0x0c97, 0x0ca3, 0x0ca9, 0x0cb6, - 0x0cc3, 0x0ccf, 0x0cdd, -} - -// Size: 6058 bytes -var mkRegionStr string = "" + - "ОÑтров ÐÑенÑионÐндораОбединети ÐрапÑки ЕмиратиÐвганиÑтанÐнтигва и Барбуд" + - "аÐнгвилаÐлбанијаЕрменијаХоландÑки ÐнтилиÐнголаÐнтарктикÐргентинаÐмерика" + - "нÑка СамоаÐвÑтријаÐвÑтралијаÐрубаОландÑки оÑтровиÐзербејџанБоÑна и Херц" + - "еговинаБарбадоÑБангладешБелгијаБуркина ФаÑоБугаријаБахреинБурундиБенинС" + - "вети ВартоломејБермудиБрунејБоливијаКарипÑка ХоландијаБразилБахамиБутан" + - "ОÑтров БувеБоцванаБелоруÑијаБелизеКанадаКокоÑови (Килиншки) ОÑтровиКонг" + - "о - КиншаÑаЦентралноафриканÑка РепубликаКонго - БразавилШвајцаријаБрего" + - "Ñ‚ на Слоновата КоÑкаКукови ОÑтровиЧилеКамерунКинаКолумбијаОÑтров Клипер" + - "тонКоÑтарикаКубаЗелен ’РтКураÑаоБожиќен ОÑтровКипарРепублика ЧешкаГерма" + - "нијаДиего ГарÑијаÐибутиДанÑкаДоминикаДоминиканÑка РепубликаÐлжирСеута и" + - " МелиљаЕквадорЕÑтонијаЕгипетЗападна СахараЕритрејаШпанијаЕтиопијаЕвропÑк" + - "а унијаФинÑкаФиџиФолкландÑки ОÑтровиМикронезијаФарÑки ОÑтровиФранцијаГа" + - "бонОбединето КралÑтвоГренадаГрузијаФранцуÑка ГвајанаГернзиГанаГибралтар" + - "ГренландГамбијаГвинејаГвадалупеЕкваторÑка ГвинејаГрцијаЈужна Ðорџија и " + - "Јужни Сендвички ОÑтровиГватемалаГвамГвинеја-БиÑауГвајанаХонг Конг С.Ð.Р" + - " КинаОÑтров Херд и ОÑтрови МакдоналдХондураÑХрватÑкаХаитиУнгаријаКанарÑк" + - "и ОÑтровиИндонезијаИрÑкаИзраелОÑтров МанИндијаБританÑка ИндоокеанÑка Те" + - "риторијаИракИранИÑландИталијаÐерÑиЈамајкаЈорданЈапонијаКенијаКиргиÑтанК" + - "амбоџаКирибатиКоморÑки ОÑтровиСвети КриÑтофер и ÐевиÑСеверна КорејаЈужн" + - "а КорејаКувајтКајманÑки ОÑтровиКазахÑтанЛаоÑЛибанСвета ЛуцијаЛихтенштај" + - "нШри ЛанкаЛиберијаЛеÑотоЛитванијаЛукÑембургЛатвијаЛибијаМарокоМонакоМол" + - "давијаЦрна ГораСент МартинМадагаÑкарМаршалÑки ОÑтровиМакедонијаМалиМјан" + - "мар (Бурма)МонголијаМакао С.Ð.Р КинаСеверни МаријанÑки ОÑтровиМартиникМ" + - "авританијаМонÑератМалтаМаврициуÑМалдивиМалавиМекÑикоМалезијаМозамбикÐам" + - "ибијаÐова КаледонијаÐигерÐорфолшки ОÑтровÐигеријаÐикарагваХоландијаÐорв" + - "ешкаÐепалÐауруÐиуеÐов ЗеландОманПанамаПеруФранцуÑка ПолинезијаПапуа Ðов" + - "а ГвинејаФилипиниПакиÑтанПолÑкаСент Пјер и МикеланПиткернÑки ОÑтровиПор" + - "торикоПалеÑтинÑки територииПортугалијаПалауПарагвајКатарЗавиÑни земји в" + - "о ОкеанијаРијунионРоманијаСрбијаРуÑијаРуандаСаудиÑка ÐрабијаСоломонÑки " + - "ОÑтровиСејшелиСуданШведÑкаСингапурСвета ЕленаСловенијаСвалбард и Жан Ме" + - "јенСловачкаСиера ЛеонеСан МариноСенегалСомалијаСуринамЈужен СуданСао То" + - "ме и ПринÑипеЕл СалвадорСвети МартинСиријаСвазилендТриÑтан да КуњаОÑтро" + - "ви Ð¢ÑƒÑ€ÐºÑ Ð¸ КајкоÑЧадФранцуÑки Јужни територииТогоТајландТаџикиÑтанТокел" + - "ауИÑточен Тимор (Тимор ЛеÑте)ТуркмениÑтанТуниÑТонгаТурцијаТринидад и То" + - "багоТувалуТајванТанзанијаУкраинаУгандаÐмериканÑки територии во Пацифико" + - "тСоединети ÐмериканÑки ДржавиУругвајУзбекиÑтанВатиканСвети ВинÑент и Гр" + - "енадинитеВенецуелаБританÑки ДевÑтвени ОÑтровиÐмериканÑки ДевÑтвени ОÑÑ‚Ñ€" + - "Ð¾Ð²Ð¸Ð’Ð¸ÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ’Ð¾Ð»Ð¸Ñ Ð¸ ФутунаСамоаКоÑовоЈеменМајотЈужноафриканÑка Реп" + - "убликаЗамбијаЗимбабвеÐепознат регионСветÐфрикаСеверна ÐмерикаЈужна Ðмер" + - "икаОкеанијаЗападна ÐфрикаЦентрална ÐмерикаИÑточна ÐфрикаСеверна ÐфрикаС" + - "редна ÐфрикаЈужна ÐфрикаÐмерикиСеверна континентална ÐмерикаКарибиИÑточ" + - "на ÐзијаЈужна ÐзијаЈугоиÑточна ÐзијаЈужна ЕвропаÐвÑтралазијаМеланезијаМ" + - "икронезиÑки регионПолинезијаÐзијаЦентрална ÐзијаЗападна ÐзијаЕвропаИÑто" + - "чна ЕвропаСеверна ЕвропаЗападна ЕвропаЛатинÑка Ðмерика" - -// Size: 606 bytes, 291 elements -var mkRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x001d, 0x0029, 0x0059, 0x006d, 0x008d, 0x009b, 0x00ab, - 0x00bb, 0x00da, 0x00e6, 0x00f8, 0x010a, 0x012b, 0x013b, 0x014f, - 0x0159, 0x0178, 0x018c, 0x01b0, 0x01c0, 0x01d2, 0x01e0, 0x01f7, - 0x0207, 0x0215, 0x0223, 0x022d, 0x024c, 0x025a, 0x0266, 0x0276, - 0x0299, 0x02a5, 0x02b1, 0x02bb, 0x02d0, 0x02de, 0x02f2, 0x02fe, - 0x030a, 0x033c, 0x0357, 0x0390, 0x03ad, 0x03c1, 0x03f0, 0x040b, - 0x0413, 0x0421, 0x0429, 0x043b, 0x045a, 0x046c, 0x0474, 0x0486, - 0x0494, 0x04af, 0x04b9, 0x04d6, 0x04e8, 0x0501, 0x050d, 0x0519, - // Entry 40 - 7F - 0x0529, 0x0554, 0x055e, 0x0578, 0x0586, 0x0596, 0x05a2, 0x05bd, - 0x05cd, 0x05db, 0x05eb, 0x0606, 0x0612, 0x061a, 0x063f, 0x0655, - 0x0670, 0x0680, 0x068a, 0x06ad, 0x06bb, 0x06c9, 0x06ea, 0x06f6, - 0x06fe, 0x0710, 0x0720, 0x072e, 0x073c, 0x074e, 0x0771, 0x077d, - 0x07c6, 0x07d8, 0x07e0, 0x07f9, 0x0807, 0x082a, 0x0864, 0x0874, - 0x0884, 0x088e, 0x089e, 0x08bd, 0x08d1, 0x08db, 0x08e7, 0x08fa, - 0x0906, 0x0946, 0x094e, 0x0956, 0x0962, 0x0970, 0x097a, 0x0988, - 0x0994, 0x09a4, 0x09b0, 0x09c2, 0x09d0, 0x09e0, 0x09ff, 0x0a2a, - // Entry 80 - BF - 0x0a45, 0x0a5c, 0x0a68, 0x0a89, 0x0a9b, 0x0aa3, 0x0aad, 0x0ac4, - 0x0ada, 0x0aeb, 0x0afb, 0x0b07, 0x0b19, 0x0b2d, 0x0b3b, 0x0b47, - 0x0b53, 0x0b5f, 0x0b71, 0x0b82, 0x0b97, 0x0bab, 0x0bcc, 0x0be0, - 0x0be8, 0x0c03, 0x0c15, 0x0c31, 0x0c63, 0x0c73, 0x0c89, 0x0c99, - 0x0ca3, 0x0cb5, 0x0cc3, 0x0ccf, 0x0cdd, 0x0ced, 0x0cfd, 0x0d0d, - 0x0d2a, 0x0d34, 0x0d53, 0x0d63, 0x0d75, 0x0d87, 0x0d97, 0x0da1, - 0x0dab, 0x0db3, 0x0dc6, 0x0dce, 0x0dda, 0x0de2, 0x0e09, 0x0e2b, - 0x0e3b, 0x0e4b, 0x0e57, 0x0e7a, 0x0e9d, 0x0eaf, 0x0ed8, 0x0eee, - // Entry C0 - FF - 0x0ef8, 0x0f08, 0x0f12, 0x0f41, 0x0f51, 0x0f61, 0x0f6d, 0x0f79, - 0x0f85, 0x0fa4, 0x0fc7, 0x0fd5, 0x0fdf, 0x0fed, 0x0ffd, 0x1012, - 0x1024, 0x1049, 0x1059, 0x106e, 0x1081, 0x108f, 0x109f, 0x10ad, - 0x10c2, 0x10e5, 0x10fa, 0x1111, 0x111d, 0x112f, 0x114b, 0x1174, - 0x117a, 0x11aa, 0x11b2, 0x11c0, 0x11d4, 0x11e2, 0x1213, 0x122b, - 0x1235, 0x123f, 0x124d, 0x126d, 0x1279, 0x1285, 0x1297, 0x12a5, - 0x12b1, 0x12f2, 0x1328, 0x1336, 0x134a, 0x1358, 0x138b, 0x139d, - 0x13d1, 0x1409, 0x1417, 0x1425, 0x143f, 0x1449, 0x1455, 0x145f, - // Entry 100 - 13F - 0x1469, 0x149a, 0x14a8, 0x14b8, 0x14d5, 0x14dd, 0x14e9, 0x1506, - 0x151f, 0x152f, 0x154a, 0x156b, 0x1586, 0x15a1, 0x15ba, 0x15d1, - 0x15df, 0x1617, 0x1623, 0x163c, 0x1651, 0x1672, 0x1689, 0x16a1, - 0x16b5, 0x16da, 0x16ee, 0x16f8, 0x1715, 0x172e, 0x173a, 0x1755, - 0x1770, 0x178b, 0x17aa, -} - -// Size: 9235 bytes -var mlRegionStr string = "" + - "അസൻഷൻ à´¦àµà´µàµ€à´ªàµà´…à´¨àµà´±àµ‹à´±à´¯àµà´£àµˆà´±àµà´±à´¡àµ അറബൠഎമിറൈറàµà´±àµ\u200cà´¸àµà´…à´«àµ\u200cഗാനിസàµà´¥à´¾àµ»à´†àµ»à´±à´¿" + - "à´—àµà´µà´¯àµà´‚ ബർബàµà´¡à´¯àµà´‚ആൻഗàµà´µà´¿à´²àµà´²à´…ൽബേനിയഅർമേനിയനെതർലൻഡàµà´¸àµ ആൻറിലിസàµà´…ംഗോളഅൻറാർടàµà´Ÿ" + - "à´¿à´•àµà´•à´…ർജൻറീനഅമേരികàµà´•àµ» സമോവഓസàµà´Ÿàµà´°à´¿à´¯à´“à´¸àµ\u200cà´Ÿàµà´°àµ‡à´²à´¿à´¯à´…റൂബഅലൻഡൠദàµà´µàµ€à´ªàµà´•àµ¾à´…സർ" + - "ബൈജാൻബോസàµà´¨à´¿à´¯à´¯àµà´‚ ഹെർസഗോവിനയàµà´‚ബാർബഡോസàµà´¬à´‚à´—àµà´²à´¾à´¦àµ‡à´¶àµà´¬àµ†àµ½à´œà´¿à´¯à´‚à´¬àµàµ¼à´•àµà´•à´¿à´¨à´¾ ഫാസോബൾഗ" + - "േറിയബഹàµà´±à´¿àµ»à´¬à´±àµà´£àµà´Ÿà´¿à´¬àµ†à´¨à´¿àµ»à´¸àµ†à´¨àµà´±àµ ബാർതàµà´¤à´²à´®à´¿à´¬àµ¼à´®àµà´¡à´¬àµà´°àµ‚ണൈബൊളീവിയബൊണെയàµàµ¼, സിനàµà´±" + - "ൠയàµà´¸àµà´±àµà´±àµ‡à´·àµà´¯à´¸àµ, സാബ à´Žà´¨àµà´¨à´¿à´µà´¬àµà´°à´¸àµ€àµ½à´¬à´¹à´¾à´®à´¾à´¸àµà´­àµ‚à´Ÿàµà´Ÿà´¾àµ»à´¬àµ—വെടàµà´Ÿàµ à´¦àµà´µàµ€à´ªàµà´¬àµ‹à´Ÿàµà´¸àµà´µà´¾" + - "നബെലറൂസàµà´¬àµ†à´²àµ€à´¸àµà´•à´¾à´¨à´¡à´•àµ‹à´•àµà´•à´¸àµ à´¦àµà´µàµ€à´ªàµà´•àµ¾à´•àµ‹à´‚ഗോ - കിൻഷാസസെൻടàµà´°àµ½ ആഫàµà´°à´¿à´•àµà´•àµ» റിപàµ" + - "പബàµà´²à´¿à´•àµà´•àµ‹à´‚ഗോ - à´¬àµà´°à´¾à´¸à´µà´¿à´²àµà´²à´¿à´¸àµà´µà´¿à´±àµà´±àµà´¸àµ¼à´²à´¾àµ»à´¡àµà´•àµ‹à´Ÿàµà´Ÿàµ à´¡à´¿ വാർകàµà´•àµà´•àµ à´¦àµà´µàµ€à´ªàµà´•àµ¾à´š" + - "ിലികാമറൂൺചൈനകൊളംബിയകàµà´²à´¿à´ªàµà´ªàµ†àµ¼à´Ÿàµà´Ÿàµ» à´¦àµà´µàµ€à´ªàµà´•àµ‹à´¸àµà´±àµà´±à´±à´¿à´•àµà´•à´•àµà´¯àµ‚ബകേപàµà´ªàµ വെർദെകàµ" + - "റാകാവോകàµà´°à´¿à´¸àµà´®à´¸àµ à´¦àµà´µàµ€à´ªàµà´¸àµˆà´ªàµà´°à´¸àµà´šàµ†à´•àµà´•àµ റിപàµà´ªà´¬àµà´²à´¿à´•àµà´œàµ¼à´®à´¨à´¿à´¡àµ€à´—ോ à´—àµà´°à´¾à´·àµà´¯à´¦à´¿à´œà´¿à´¬àµ—" + - "à´Ÿàµà´Ÿà´¿à´¡àµ†àµ»à´®à´¾àµ¼à´•àµà´•àµà´¡àµŠà´®à´¿à´¨à´¿à´•àµà´•à´¡àµŠà´®à´¿à´¨à´¿à´•àµà´•àµ» റിപàµà´ªà´¬àµà´²à´¿à´•àµà´…ൾജീരിയസെയൂതàµà´¤ ആൻഡൠമെലിയ" + - "ഇകàµà´µà´¡àµ‹àµ¼à´Žà´¸àµà´±àµà´±àµ‹à´£à´¿à´¯\u200dഈജിപàµà´¤àµà´ªà´¶àµà´šà´¿à´® സഹാറഎറിതàµà´°à´¿à´¯à´¸àµ\u200cപെയിൻഎതàµà´¯àµ‹à´ªàµà´¯" + - "യൂറോപàµà´¯àµ» യൂണിയൻഫിൻലാൻഡàµà´«à´¿à´œà´¿à´«à´¾à´•àµà´•àµ\u200cലാനàµà´±àµ à´¦àµà´µàµ€à´ªàµà´•àµ¾à´®àµˆà´•àµà´°àµ‹à´¨àµ‡à´·àµà´¯à´«à´±àµ‹ à´¦" + - "àµà´µàµ€à´ªàµà´•àµ¾à´«àµà´°à´¾àµ»à´¸àµà´—ാബൺബàµà´°à´¿à´Ÿàµà´Ÿàµ»à´—àµà´°à´¨àµ‡à´¡à´œàµ‹àµ¼à´œàµà´œà´¿à´¯à´«àµà´°à´žàµà´šàµ ഗയാനഗേൺസിഘാനജിബàµà´°à´¾àµ¾à´Ÿàµà´Ÿ" + - "ർഗàµà´°àµ€àµ»à´²à´¾àµ»à´±àµà´—ാംബിയഗിനിയഗàµà´µà´¾à´¡à´²àµ‚à´ªàµà´ªàµà´‡à´•àµà´µà´±àµà´±àµ‹à´±à´¿à´¯àµ½ ഗിനിയഗàµà´°àµ€à´¸àµà´¦à´•àµà´·à´¿à´£ ജോർജàµà´œ" + - "ിയയàµà´‚ ദകàµà´·à´¿à´£ സാൻഡàµ\u200cവിചàµà´šàµ à´¦àµà´µàµ€à´ªàµà´•à´³àµà´‚à´—àµà´µà´¾à´Ÿàµà´Ÿà´¿à´®à´¾à´²à´—àµà´µà´¾à´‚ഗിനിയ-ബിസൗഗയാ" + - "നഹോങൠകോങൠഎസàµ.à´.ആർ. ചൈനഹിയേർഡàµà´‚ മകàµ\u200cഡൊണാൾഡൠദàµà´µàµ€à´ªàµà´•à´³àµà´‚ഹോണàµà´Ÿàµà´±à´¾à´¸àµ" + - "à´•àµà´°àµŠà´¯àµ‡à´·àµà´¯à´¹àµ†à´¯àµà´¤à´¿à´¹à´‚ഗറികാനറി à´¦àµà´µàµ€à´ªàµà´•àµ¾à´‡à´¨àµà´¤àµ‹à´¨àµ‡à´·àµà´¯à´…യർലാൻഡàµà´‡à´¸àµà´°à´¾à´¯àµ‡àµ½à´àµ½ ഓഫൠമാൻ" + - "ഇനàµà´¤àµà´¯à´¬àµà´°à´¿à´Ÿàµà´Ÿàµ€à´·àµ ഇനàµà´¤àµà´¯àµ» മഹാസമàµà´¦àµà´° à´ªàµà´°à´¦àµ‡à´¶à´‚ഇറാഖàµà´‡à´±à´¾àµ»à´à´¸àµ\u200cലാനàµà´±àµà´‡à´±àµà´±" + - "ലിജേഴàµà´¸à´¿à´œà´®àµˆà´•àµà´•à´œàµ‹àµ¼à´¦àµà´¦à´¾àµ»à´œà´ªàµà´ªà´¾àµ»à´•àµ†à´¨à´¿à´¯à´•à´¿àµ¼à´—à´¿à´¸àµà´¥à´¾àµ»à´•à´‚ബോഡിയകിരിബാടàµà´Ÿà´¿à´•àµ‹à´®àµŠà´±àµ‹à´¸àµà´¸àµ†" + - "à´¨àµà´±àµ à´•à´¿à´±àµà´±àµ\u200cà´¸àµà´‚ നെവിസàµà´‚ഉതàµà´¤à´°à´•àµŠà´±à´¿à´¯à´¦à´•àµà´·à´¿à´£à´•àµŠà´±à´¿à´¯à´•àµà´µàµˆà´±àµà´±àµà´•àµ‡à´®à´¾àµ» à´¦àµà´µàµ€à´ªàµà´•" + - "ൾകസാഖിസàµà´¥à´¾àµ»à´²à´¾à´µàµ‹à´¸àµà´²àµ†à´¬à´¨àµ»à´¸àµ†àµ»à´±àµ ലൂസിയലിചàµà´šàµºà´¸àµà´±àµà´±àµˆàµ»à´¶àµà´°àµ€à´²à´™àµà´•à´²àµˆà´¬àµ€à´°à´¿à´¯à´²àµ†à´¸àµ‹à´¤àµ‹à´²à´¿à´¤" + - "àµà´µà´¾à´¨à´¿à´¯à´²à´•àµà´¸à´‚ബർഗàµà´²à´¾à´±àµà´±àµà´µà´¿à´¯à´²à´¿à´¬à´¿à´¯à´®àµŠà´±àµ‹à´•àµà´•àµŠà´®àµŠà´£à´¾à´•àµà´•àµ‹à´®àµ¾à´¡àµ‹à´µà´®àµ‹à´£àµà´Ÿàµ†à´¨àµ†à´—àµà´°àµ‹à´¸àµ†àµ»à´±àµ മാ" + - "ർടàµà´Ÿà´¿àµ»à´®à´¡à´—ാസàµà´•àµ¼à´®à´¾àµ¼à´·àµ½\u200d\u200d à´¦àµà´µàµ€à´ªàµà´•àµ¾à´®à´¾à´¸à´¿à´¡àµ‹à´£à´¿à´¯à´®à´¾à´²à´¿à´®àµà´¯à´¾àµ»à´®à´¾àµ¼ (ബർമàµà´®)à´®" + - "ംഗോളിയമകàµà´•à´¾à´µàµ‹ SAR ചൈനഉതàµà´¤à´° മറിയാനാ à´¦àµà´µàµ€à´ªàµà´•àµ¾à´®à´¾àµ¼à´Ÿàµà´Ÿà´¿à´¨à´¿à´•àµà´•àµà´®àµ—റിറàµà´±à´¾à´¨à´¿à´¯à´®àµŠà´£" + - "àµà´Ÿàµ†à´¸à´°à´¤àµà´¤àµà´®à´¾àµ¾à´Ÿàµà´Ÿà´®àµ—റീഷàµà´¯à´¸àµà´®à´¾à´²à´¿à´¦àµà´µàµ€à´ªàµà´®à´²à´¾à´µà´¿à´®àµ†à´•àµà´¸à´¿à´•àµà´•àµ‹à´®à´²àµ‡à´·àµà´¯à´®àµŠà´¸à´¾à´‚ബികàµà´•àµà´¨à´®àµ€à´¬" + - "ിയപàµà´¤à´¿à´¯ കാലിഡോണിയനൈജർനോർഫോകൠദàµà´µàµ€à´ªàµà´¨àµˆà´œàµ€à´°à´¿à´¯à´¨à´¿à´•àµà´•à´°à´¾à´—àµà´µà´¨àµ†à´¤àµ¼à´²à´¾àµ»à´¡àµ\u200cà´¸àµà´¨" + - "ോർവെനേപàµà´ªà´¾àµ¾à´¨àµ—à´±àµà´¨àµà´¯àµ‚യിനàµà´¯àµ‚സിലാൻറàµà´’മാൻപനാമപെറàµà´«àµà´°à´žàµà´šàµ പോളിനേഷàµà´¯à´ªà´¾à´ªàµà´ªàµà´µ à´¨" + - "àµà´¯àµ‚ ഗിനിയഫിലിപàµà´ªàµˆàµ»à´¸àµà´ªà´¾à´•àµà´•à´¿à´¸àµà´¥à´¾àµ»à´ªàµ‹à´³à´£àµà´Ÿàµà´¸àµ†à´¨àµà´±àµ പിയറിയàµà´‚ മികàµà´•à´²à´£àµà´‚പിറàµà´±àµ" + - "\u200cകെയàµ\u200cൻ à´¦àµà´µàµ€à´ªàµà´•àµ¾à´ªàµà´¯àµ‚ർടàµà´Ÿàµ‹ റികàµà´•àµ‹à´ªà´¾à´²à´¸àµ\u200cതീൻ à´ªàµà´°à´¦àµ‡à´¶à´™àµà´™àµ¾à´ªàµ‹àµ¼à´šàµ" + - "à´šàµà´—ൽപലാവàµà´ªà´°à´¾à´—àµà´µàµ‡à´–à´¤àµà´¤àµ¼à´¦àµà´µàµ€à´ªà´¸à´®àµ‚ഹംറീയൂണിയൻറൊമാനിയസെർബിയറഷàµà´¯à´±àµà´µà´¾à´£àµà´Ÿà´¸àµ—ദി à´…à´±" + - "േബàµà´¯à´¸àµ‹à´³à´®àµ»\u200d à´¦àµà´µàµ€à´ªàµà´•àµ¾à´¸àµ†à´¯àµ\u200cഷെൽസàµà´¸àµà´¡à´¾àµ»à´¸àµà´µàµ€à´¡àµ»à´¸à´¿à´‚à´—à´ªàµà´ªàµàµ¼à´¸àµ†àµ»à´±àµ ഹെലീന" + - "à´¸àµà´²àµ‹à´µàµ‡à´¨à´¿à´¯à´¸àµà´µà´¾àµ½à´¬à´¾à´¡àµà´‚ ജാൻ മായേനàµà´‚à´¸àµà´²àµ‹à´µà´¾à´•àµà´¯à´¸à´¿à´¯àµ†à´± ലിയോൺസാൻ മറിനോസെനഗൽസോമാല" + - "ിയസàµà´°à´¿à´¨àµ†à´¯à´¿à´‚ദകàµà´·à´¿à´£ à´¸àµà´¡à´¾àµ»à´¸à´¾à´µàµ‹ ടോമàµà´‚ à´ªàµà´°à´¿àµ»à´¸à´¿à´ªàµ†à´¯àµà´‚എൽ സാൽവദോർസിനàµà´±àµ മാർടàµà´Ÿàµ†" + - "ൻസിറിയസàµà´µà´¾à´¸à´¿à´²à´¾àµ»à´±àµà´Ÿàµà´°à´¸àµà´±àµà´±àµ» à´¡ കൂനടർകàµà´•àµ\u200cà´¸àµà´‚ കെയàµ\u200cà´•àµà´•àµ‹ à´¦àµà´µàµ€à´ªàµà´•" + - "à´³àµà´‚ഛാഡàµà´«àµà´°à´žàµà´šàµ ദകàµà´·à´¿à´£ ഭൂപàµà´°à´¦àµ‡à´¶à´‚ടോഗോതായàµ\u200cലാൻഡàµà´¤à´¾à´œà´¿à´•àµà´•à´¿à´¸àµà´¥à´¾àµ»à´Ÿàµ‹à´•àµà´•àµ†à´²" + - "ൂതിമോർ-ലെസàµà´±àµà´±àµ†à´¤àµàµ¼à´•àµà´•àµà´®àµ†à´¨à´¿à´¸àµà´¥à´¾àµ»à´Ÿàµà´£àµ€à´·àµà´¯à´Ÿàµ‹à´‚à´—à´¤àµàµ¼à´•àµà´•à´¿à´Ÿàµà´°à´¿à´¨à´¿à´¡à´¾à´¡àµà´‚ à´Ÿàµà´¬à´¾à´—ോയàµà´‚" + - "à´Ÿàµà´µà´¾à´²àµà´¤à´¾à´¯àµ\u200cവാൻടാൻസാനിയഉകàµà´°àµ†à´¯àµ\u200cൻഉഗാണàµà´Ÿà´¯àµ.à´Žà´¸àµ. à´¦àµà´µàµ€à´ªà´¸à´®àµ‚ഹങàµà´™àµ¾à´…à´®" + - "േരികàµà´•àµ» à´à´•àµà´¯à´¨à´¾à´Ÿàµà´•àµ¾à´‰à´±àµà´—àµà´µàµ‡à´‰à´¸àµ\u200cബെകàµà´•à´¿à´¸àµà´¥à´¾àµ»à´µà´¤àµà´¤à´¿à´•àµà´•à´¾àµ»à´¸àµ†à´¨àµà´±àµ വിൻസെനàµà´±" + - "àµà´‚ à´—àµà´°à´¨àµ†à´¡àµˆàµ»à´¸àµà´‚വെനിസàµà´µàµ‡à´²à´¬àµà´°à´¿à´Ÿàµà´Ÿàµ€à´·àµ വെർജിൻ à´¦àµà´µàµ€à´ªàµà´•àµ¾à´¯àµ.à´Žà´¸àµ. വെർജിൻ à´¦àµà´µàµ€à´ªàµ" + - "കൾവിയറàµà´±àµà´¨à´¾à´‚വനàµà´µà´¾à´¤àµà´µà´¾à´²à´¿à´¸àµ ആനàµà´±àµ à´«àµà´¯àµ‚à´šàµà´¯àµà´¨à´¸à´®àµ‹à´µà´•àµŠà´¸àµ‹à´µàµŠà´¯àµ†à´®àµ»à´®à´¯àµ‹à´Ÿàµà´Ÿà´¿à´¦à´•àµà´·à´¿à´£à´¾à´«" + - "àµà´°à´¿à´•àµà´•à´¸à´¾à´‚ബിയസിംബാബàµ\u200cവേഅജàµà´žà´¾à´¤ à´ªàµà´°à´¦àµ‡à´¶à´‚ലോകംആഫàµà´°à´¿à´•àµà´•à´µà´Ÿà´•àµà´•àµ‡ അമേരികàµà´•à´¤àµ†" + - "à´•àµà´•àµ‡ അമേരികàµà´•à´“à´·àµà´¯à´¾à´¨à´¿à´¯à´ªà´¶àµà´šà´¿à´® ആഫàµà´°à´¿à´•àµà´•à´®à´¦àµà´§àµà´¯à´…മേരികàµà´•à´•à´¿à´´à´•àµà´•àµ» ആഫàµà´°à´¿à´•àµà´•à´‰à´¤àµà´¤" + - "രാഫàµà´°à´¿à´•àµà´•à´®à´¦àµà´§àµà´¯à´†à´«àµà´°à´¿à´•àµà´•à´¤àµ†à´•àµà´•àµ‡ ആഫàµà´°à´¿à´•àµà´•à´…മേരികàµà´•à´•àµ¾à´µà´Ÿà´•àµà´•àµ» അമേരികàµà´•à´•à´°àµ€à´¬à´¿à´¯àµ»" + - "à´•à´¿à´´à´•àµà´•àµ» à´à´·àµà´¯à´¤àµ†à´•àµà´•àµ‡ à´à´·àµà´¯à´¤àµ†à´•àµà´•àµ-à´•à´¿à´´à´•àµà´•àµ» à´à´·àµà´¯à´¤àµ†à´•àµà´•àµ‡ യൂറോപàµà´ªàµà´“à´¸àµ\u200cà´Ÿàµà´°àµ‡" + - "ലിയയàµà´‚ à´¨àµà´¯àµ‚സിലാൻഡàµà´‚മെലനേഷàµà´¯à´®àµˆà´•àµà´°àµ‹à´¨àµ‡à´·àµà´¯àµ» à´ªàµà´°à´¦àµ‡à´¶à´‚പോളിനേഷàµà´¯à´à´·àµà´¯à´®à´¦àµà´§àµà´¯àµ‡à´·àµà´¯" + - "പശàµà´šà´¿à´®àµ‡à´·àµà´¯à´¯àµ‚റോപàµà´ªàµà´•à´¿à´´à´•àµà´•àµ» യൂറോപàµà´ªàµà´µà´Ÿà´•àµà´•àµ‡ യൂറോപàµà´ªàµà´ªà´¶àµà´šà´¿à´® യൂറോപàµà´ªàµà´²à´¾à´±àµà´±à´¿" + - "നമേരികàµà´•" - -// Size: 606 bytes, 291 elements -var mlRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0022, 0x0034, 0x0081, 0x00a8, 0x00df, 0x00fa, 0x010f, - 0x0124, 0x015b, 0x016a, 0x018e, 0x01a3, 0x01cb, 0x01e3, 0x0204, - 0x0210, 0x0238, 0x0250, 0x0293, 0x02ab, 0x02c9, 0x02de, 0x0306, - 0x031b, 0x032d, 0x0342, 0x0351, 0x037f, 0x038e, 0x03a0, 0x03b5, - 0x0424, 0x0436, 0x044b, 0x0460, 0x048b, 0x04a6, 0x04bb, 0x04cd, - 0x04d9, 0x0507, 0x052b, 0x057e, 0x05b1, 0x05de, 0x0601, 0x062c, - 0x0638, 0x064a, 0x0653, 0x0668, 0x06a2, 0x06c6, 0x06d5, 0x06f7, - 0x070f, 0x073d, 0x0752, 0x0786, 0x0795, 0x07b7, 0x07d5, 0x07f3, - // Entry 40 - 7F - 0x080e, 0x084e, 0x0863, 0x0895, 0x08aa, 0x08cb, 0x08e0, 0x08ff, - 0x0917, 0x092f, 0x0947, 0x0972, 0x098a, 0x0996, 0x09d6, 0x09f7, - 0x0a19, 0x0a2e, 0x0a3a, 0x0a52, 0x0a64, 0x0a7c, 0x0a9e, 0x0aad, - 0x0ab6, 0x0ad7, 0x0af5, 0x0b07, 0x0b16, 0x0b37, 0x0b6b, 0x0b7d, - 0x0c08, 0x0c29, 0x0c38, 0x0c54, 0x0c60, 0x0c99, 0x0cf2, 0x0d10, - 0x0d2b, 0x0d3d, 0x0d4c, 0x0d74, 0x0d92, 0x0daa, 0x0dc2, 0x0ddc, - 0x0dee, 0x0e54, 0x0e63, 0x0e6f, 0x0e8d, 0x0e9f, 0x0eb1, 0x0ec3, - 0x0edb, 0x0eed, 0x0efc, 0x0f1a, 0x0f2f, 0x0f4d, 0x0f65, 0x0fac, - // Entry 80 - BF - 0x0fca, 0x0feb, 0x1003, 0x102b, 0x1049, 0x105b, 0x106a, 0x1089, - 0x10b0, 0x10c8, 0x10dd, 0x10ef, 0x110a, 0x1125, 0x1140, 0x114f, - 0x1167, 0x117f, 0x118e, 0x11b2, 0x11da, 0x11f2, 0x1220, 0x123b, - 0x1247, 0x1271, 0x1286, 0x12a9, 0x12e7, 0x130e, 0x132f, 0x1353, - 0x1365, 0x1380, 0x139e, 0x13ad, 0x13cb, 0x13dd, 0x13fe, 0x1410, - 0x143b, 0x1447, 0x146f, 0x1484, 0x14a2, 0x14c6, 0x14d5, 0x14ea, - 0x14f6, 0x1508, 0x1529, 0x1535, 0x1541, 0x154d, 0x157e, 0x15b0, - 0x15d1, 0x15f2, 0x1607, 0x164e, 0x168e, 0x16bc, 0x16f6, 0x1711, - // Entry C0 - FF - 0x1720, 0x1735, 0x1744, 0x1762, 0x177a, 0x178f, 0x17a1, 0x17ad, - 0x17c2, 0x17e1, 0x180c, 0x182a, 0x1839, 0x184b, 0x1866, 0x1885, - 0x18a0, 0x18de, 0x18f9, 0x1918, 0x1931, 0x1940, 0x1955, 0x1970, - 0x1992, 0x19d3, 0x19ef, 0x1a1a, 0x1a29, 0x1a4a, 0x1a73, 0x1acc, - 0x1ad8, 0x1b1c, 0x1b28, 0x1b46, 0x1b6d, 0x1b85, 0x1bad, 0x1bdd, - 0x1bf2, 0x1bfe, 0x1c13, 0x1c50, 0x1c62, 0x1c7a, 0x1c92, 0x1cad, - 0x1cbf, 0x1cf8, 0x1d32, 0x1d47, 0x1d74, 0x1d92, 0x1de5, 0x1e00, - 0x1e4a, 0x1e87, 0x1ea5, 0x1eba, 0x1ef8, 0x1f04, 0x1f16, 0x1f22, - // Entry 100 - 13F - 0x1f37, 0x1f61, 0x1f73, 0x1f91, 0x1fb9, 0x1fc5, 0x1fdd, 0x2008, - 0x2033, 0x204b, 0x2076, 0x20a0, 0x20ce, 0x20f5, 0x211f, 0x214a, - 0x2168, 0x2193, 0x21a8, 0x21ca, 0x21e9, 0x221e, 0x2249, 0x2298, - 0x22b0, 0x22ea, 0x2305, 0x2311, 0x232f, 0x234d, 0x2365, 0x2393, - 0x23be, 0x23e9, 0x2413, -} - -// Size: 5483 bytes -var mnRegionStr string = "" + - "ÐÑкенÑион ÐралÐндорраÐрабын ÐÑгдÑÑн ЭмиратÐфганиÑтанÐнтигуа ба БарбудаÐн" + - "гилаÐлбаниÐрменÐнголÐнтарктикÐргентинÐмерикийн СамоаÐвÑтриÐвÑтралиÐруба" + - "Ðландын ÐрлуудÐзербайжанБоÑни ХерцеговинБарбадоÑБангладешБелгиБуркина Ñ„" + - "аÑоБолгарБахрейнБурундиБенинСент БартельмиБермудБрунейБоливиКарибын Ðид" + - "ерландБразилБагамБутанБуветын ÐрлуудБотÑванаБеларуÑÐ‘ÐµÐ»Ð¸Ð·ÐšÐ°Ð½Ð°Ð´ÐšÐ¾ÐºÐ¾Ñ (Кий" + - "линг) ÐрлуудКонго-КиншаÑаТөв Ðфрикийн Бүгд Ðайрамдах УлÑКонго Браззавил" + - "ьШвейцариКот д’ИвуарКүүкийн ÐрлуудЧилиКамерунХÑтадКолумбКлиппертон Ðрал" + - "КоÑта РикаКубаКапе ВердеКуракаоЗул Сарын ÐралКипрБүгд Ðайрамдах Чех УлÑ" + - "ГерманДиего ГарÑиаДжибутиДаниДоминикБүгд Ðайрамдах ДоминиканÐлжирСеута " + - "ба МелильÑЭквадорЭÑтонЕгипетБаруун СахарЭритриИÑпаниЭтиопЕвропын Холбоо" + - "ФинландФижиФолькландын ÐÑ€Ð»ÑƒÑƒÐ´ÐœÐ¸ÐºÑ€Ð¾Ð½ÐµÐ·Ð¸Ð¤Ð°Ñ€Ð¾Ñ ÐрлуудФранцГабонИх БританиГ" + - "ренадаГүржФранцын ГайанаГернÑиГанаГибралтарГренландГамбиГвинейГваделупЭ" + - "кваторын ГвинейГрекӨмнөд Жоржиа ба Өмнөд СÑндвичийн ÐрлуудГватемалГуамГ" + - "виней-БиÑауГайанаБÐÐ¥ÐУ-ын ТуÑгай захиргааны Ð±Ò¯Ñ Ð¥Ð¾Ð½Ð³ КонгХÑрд болон Мак" + - "доналд ÐрлуудГондураÑХорватГаитиУнгарКанарын арлуудИндонезиИрландИзраил" + - "ьМÑн ÐралЭнÑÑ‚Ñ…ÑгБританийн харьÑа ЭнÑÑ‚Ñ…Ñгийн далай дахь нутаг дÑвÑгÑрүүд" + - "ИракИранИÑландИталиЖерÑиЯмайкЙорданЯпонКениКыргызÑтанКамбожКирибатиКомо" + - "роÑСент-ÐšÐ¸Ñ‚Ñ‚Ñ Ð±Ð° ÐевиÑХойд СолонгоÑӨмнөд СолонгоÑКувейтКайманы ÐрлуудКа" + - "захÑтанЛаоÑЛиванСент ЛюÑиаЛихтенштейнШри ЛанкаЛибериЛеÑотоЛитваЛюкÑембу" + - "ргЛатвиЛивиМароккоМонакоМолдавМонтенегроСент-МартинМадагаÑкарМаршаллын " + - "ÐрлуудМакедонМалиМьÑнмар (Бурма)МонголБÐÐ¥ÐУ-ын ТуÑгай захиргааны Ð±Ò¯Ñ ÐœÐ°" + - "каоХойд Марианы ÐрлуудМартиникМавританиМонтÑерратМальтаМавритуÑМальдивМ" + - "алавиМекÑикМалайзМозамбикÐÐ°Ð¼Ð¸Ð±Ð¸Ð¨Ð¸Ð½Ñ ÐšÐ°Ð»ÐµÐ´Ð¾Ð½Ð¸ÐигерÐорфолк ÐрлуудÐигериÐи" + - "карагуаГолландÐорвегиБалбаÐауруÐиуÑÐ¨Ð¸Ð½Ñ Ð—ÐµÐ»Ð°Ð½Ð´ÐžÐ¼Ð°Ð½ÐŸÐ°Ð½Ð°Ð¼ÐŸÐµÑ€ÑƒÐ¤Ñ€Ð°Ð½Ñ†Ñ‹Ð½ Поли" + - "незПапуа Ð¨Ð¸Ð½Ñ Ð“Ð²Ð¸Ð½ÐµÐ¹Ð¤Ð¸Ð»Ð¸Ð¿Ð¿Ð¸Ð½ÐŸÐ°ÐºÐ¸ÑтанПольшСÑнт Пьер ба МикелонПиткÑрн ÐÑ€" + - "луудПуÑрто РикоПалеÑтины нутаг дÑвÑгÑрүүдПортугалПалауПарагвайКатарÐомх" + - "он далайг тойрÑон ÑƒÐ»Ñ Ð¾Ñ€Ð½ÑƒÑƒÐ´Ð ÐµÑŽÐ½ÑŒÐ¾Ð½Ð ÑƒÐ¼Ñ‹Ð½Ð¡ÐµÑ€Ð±Ð¸ÐžÑ€Ð¾ÑРуандаСаудын ÐрабСолом" + - "оны ÐрлуудСейшелСуданШведСингапурСент ХеленаСловениСвалбард ба Ян Майен" + - "СловакСьерра-ЛеонеСан-МариноСенегалСомалиСуринамӨмнөд СуданСан-Томе ба " + - "ПринÑипиЭль СальвадорСинт МартенСириСвазиландТриÑтан да КуньÑТурк ба Ка" + - "йкоÑын ÐрлуудЧадФранцын өмнөд газар нутагТогоТайландТажикиÑтанТокелауТи" + - "мор-ЛеÑтеТуркмениÑтанТуниÑТонгаТуркТринидад ба ТобагоТувалуТайванТанзан" + - "иУкрайнУгандаÐÐУ-ын тойрÑон арлуудÐмерикийн ÐÑгдÑÑн УлÑУругвайУзбекиÑта" + - "нВатикан хот улÑСÑнт ВинÑÑнт ба ГренадинВенеÑуÑлБританийн Виржиний Ðрлу" + - "удÐÐУ-ын Виржиний ÐÑ€Ð»ÑƒÑƒÐ´Ð’ÑŒÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ£Ð¾Ð»Ð»Ð¸Ñ Ð±Ð° ФутунаСамоаКоÑовоЙеменМ" + - "айоттеӨмнөд Ðфрик тивЗамбиЗимбабвеТодорхойгүйДÑлхийÐфрикХойд ÐмерикӨмнө" + - "д ÐмерикÐомхон далайн орнуудБаруун ÐфрикТөв ÐмерикЗүүн ÐфрикХойд ÐфрикТ" + - "өв ÐфрикӨмнөд ÐфрикÐмерикХойд Ðмерик тивКарибынЗүүн ÐзиӨмнөд ÐзиЗүүн Өм" + - "нөд ÐзиӨмнөд ЕвропÐвÑтралиазиМеланезиМикронезийн бүÑПолинезÐзиТөв ÐзиБа" + - "руун ÐзиЕвропЗүүн ЕвропХойд ЕвропБаруун ЕвропЛатин Ðмерик" - -// Size: 606 bytes, 291 elements -var mnRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x001b, 0x0029, 0x0051, 0x0065, 0x0087, 0x0093, 0x009f, - 0x00a9, 0x00a9, 0x00b3, 0x00c5, 0x00d5, 0x00f2, 0x00fe, 0x010e, - 0x0118, 0x0133, 0x0147, 0x0166, 0x0176, 0x0188, 0x0192, 0x01a9, - 0x01b5, 0x01c3, 0x01d1, 0x01db, 0x01f6, 0x0202, 0x020e, 0x021a, - 0x023b, 0x0247, 0x0251, 0x025b, 0x0276, 0x0286, 0x0294, 0x029e, - 0x02a8, 0x02d0, 0x02e9, 0x0323, 0x0342, 0x0352, 0x0368, 0x0383, - 0x038b, 0x0399, 0x03a3, 0x03af, 0x03cc, 0x03df, 0x03e7, 0x03fa, - 0x0408, 0x0422, 0x042a, 0x0453, 0x045f, 0x0476, 0x0484, 0x048c, - // Entry 40 - 7F - 0x049a, 0x04c8, 0x04d2, 0x04f0, 0x04fe, 0x0508, 0x0514, 0x052b, - 0x0537, 0x0543, 0x054d, 0x0568, 0x0576, 0x057e, 0x05a1, 0x05b3, - 0x05ca, 0x05d4, 0x05de, 0x05f1, 0x05ff, 0x0607, 0x0622, 0x062e, - 0x0636, 0x0648, 0x0658, 0x0662, 0x066e, 0x067e, 0x069d, 0x06a5, - 0x06ee, 0x06fe, 0x0706, 0x071d, 0x0729, 0x0773, 0x07a6, 0x07b6, - 0x07c2, 0x07cc, 0x07d6, 0x07f1, 0x0801, 0x080d, 0x081b, 0x082a, - 0x0838, 0x08a0, 0x08a8, 0x08b0, 0x08bc, 0x08c6, 0x08d0, 0x08da, - 0x08e6, 0x08ee, 0x08f6, 0x090a, 0x0916, 0x0926, 0x0934, 0x0957, - // Entry 80 - BF - 0x0970, 0x098b, 0x0997, 0x09b2, 0x09c4, 0x09cc, 0x09d6, 0x09e9, - 0x09ff, 0x0a10, 0x0a1c, 0x0a28, 0x0a32, 0x0a46, 0x0a50, 0x0a58, - 0x0a66, 0x0a72, 0x0a7e, 0x0a92, 0x0aa7, 0x0abb, 0x0ada, 0x0ae8, - 0x0af0, 0x0b0b, 0x0b17, 0x0b5a, 0x0b7e, 0x0b8e, 0x0ba0, 0x0bb4, - 0x0bc0, 0x0bd0, 0x0bde, 0x0bea, 0x0bf6, 0x0c02, 0x0c12, 0x0c1e, - 0x0c37, 0x0c41, 0x0c5c, 0x0c68, 0x0c7a, 0x0c88, 0x0c96, 0x0ca0, - 0x0caa, 0x0cb2, 0x0cc7, 0x0ccf, 0x0cd9, 0x0ce1, 0x0cfe, 0x0d1e, - 0x0d2e, 0x0d3e, 0x0d48, 0x0d6d, 0x0d88, 0x0d9d, 0x0dcf, 0x0ddf, - // Entry C0 - FF - 0x0de9, 0x0df9, 0x0e03, 0x0e3f, 0x0e4d, 0x0e57, 0x0e61, 0x0e69, - 0x0e75, 0x0e8a, 0x0ea7, 0x0eb3, 0x0ebd, 0x0ec5, 0x0ed5, 0x0eea, - 0x0ef8, 0x0f1d, 0x0f29, 0x0f40, 0x0f53, 0x0f61, 0x0f6d, 0x0f7b, - 0x0f90, 0x0fb5, 0x0fce, 0x0fe3, 0x0feb, 0x0ffd, 0x101b, 0x1046, - 0x104c, 0x107b, 0x1083, 0x1091, 0x10a5, 0x10b3, 0x10c8, 0x10e0, - 0x10ea, 0x10f4, 0x10fc, 0x111e, 0x112a, 0x1136, 0x1144, 0x1150, - 0x115c, 0x1183, 0x11ab, 0x11b9, 0x11cd, 0x11e9, 0x1216, 0x1226, - 0x1256, 0x127f, 0x128d, 0x129b, 0x12b9, 0x12c3, 0x12cf, 0x12d9, - // Entry 100 - 13F - 0x12e7, 0x1303, 0x130d, 0x131d, 0x1333, 0x133f, 0x1349, 0x135e, - 0x1375, 0x139b, 0x13b2, 0x13c5, 0x13d8, 0x13eb, 0x13fc, 0x1411, - 0x141d, 0x1439, 0x1447, 0x1456, 0x1467, 0x1481, 0x1496, 0x14ac, - 0x14bc, 0x14d9, 0x14e7, 0x14ed, 0x14fa, 0x150d, 0x1517, 0x152a, - 0x153d, 0x1554, 0x156b, -} - -// Size: 8475 bytes -var mrRegionStr string = "" + - "अ\u200dॅसेनà¥à¤¶à¤¿à¤¯à¤¨ बेटअà¤à¤¡à¥‹à¤°à¤¾à¤¸à¤‚यà¥à¤•à¥à¤¤ अरब अमीरातअफगाणिसà¥à¤¤à¤¾à¤¨à¤…à¤à¤Ÿà¤¿à¤—à¥à¤µà¤¾ आणि बरà¥à¤¬" + - "à¥à¤¡à¤¾à¤…à¤à¤—à¥à¤µà¤¿à¤²à¤¾à¤…लà¥à¤¬à¤¾à¤¨à¤¿à¤¯à¤¾à¤…रà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤¨à¥‡à¤¦à¤°à¤²à¤à¤¡à¥\u200dस अà¤\u200dटिलà¥à¤¸à¤…ंगोलाअंटारà¥" + - "कà¥à¤Ÿà¤¿à¤•à¤¾à¤…रà¥à¤œà¥‡à¤‚टिनाअमेरिकन सामोआऑसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤‘सà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾à¤…रà¥à¤¬à¤¾à¤…\u200dॅलà¤à¤¡ बेटे" + - "अà¤à¤°à¤¬à¥ˆà¤œà¤¾à¤¨à¤¬à¥‹à¤¸à¥à¤¨à¤¿à¤¯à¤¾ अणि हरà¥à¤œà¥‡à¤—ोविनाबारà¥à¤¬à¤¾à¤¡à¥‹à¤¸à¤¬à¤¾à¤‚गलादेशबेलà¥à¤œà¤¿à¤¯à¤®à¤¬à¥à¤°à¥à¤•à¤¿à¤¨à¤¾ फास" + - "ोबलà¥à¤—ेरियाबहारीनबà¥à¤°à¥à¤‚डीबेनिनसेंट बारà¥à¤¥à¥‡à¤²à¥‡à¤®à¥€à¤¬à¤°à¥à¤®à¥à¤¡à¤¾à¤¬à¥à¤°à¥à¤¨à¥‡à¤ˆà¤¬à¥‹à¤²à¤¿à¤µà¥à¤¹à¤¿à¤¯à¤¾à¤•à¥…र" + - "िबियन नेदरलà¤à¤¡à¥à¤¸à¤¬à¥à¤°à¤¾à¤à¤¿à¤²à¤¬à¤¹à¤¾à¤®à¤¾à¤œà¤­à¥‚तानबोउवेट बेटबोटà¥à¤¸à¤µà¤¾à¤¨à¤¾à¤¬à¥‡à¤²à¤¾à¤°à¥‚सबलिà¤à¤•à¥…नडाको" + - "कोस (कीलिंग) बेटेकाà¤à¤—ो - किंशासाकेंदà¥à¤°à¥€à¤¯ अफà¥à¤°à¤¿à¤•à¥€ पà¥à¤°à¤œà¤¾à¤¸à¤¤à¥à¤¤à¤¾à¤•à¤•à¤¾à¤à¤—ो - बà¥" + - "राà¤à¤¾à¤µà¤¿à¤²à¥‡à¤¸à¥à¤µà¤¿à¤¤à¥à¤à¤°à¥à¤²à¤‚डआयवà¥à¤¹à¤°à¥€ कोसà¥à¤Ÿà¤•à¥à¤• बेटेचिलीकॅमेरूनचीनकोलमà¥à¤¬à¤¿à¤¯à¤¾à¤•à¥à¤²à¤¿à¤ªà¤°" + - "टोन बेटकोसà¥à¤Ÿà¤¾ रिकाकà¥à¤¯à¥‚बाकेप वà¥à¤¹à¤°à¥à¤¡à¥‡à¤•à¥à¤°à¥…कोखà¥à¤°à¤¿à¤¸à¤®à¤¸ बेटसायपà¥à¤°à¤¸à¤à¥‡à¤• पà¥à¤°à¤œà¤¾à¤¸à¤¤" + - "à¥à¤¤à¤¾à¤•à¤œà¤°à¥à¤®à¤¨à¥€à¤¦à¤¿à¤à¤—ो गारà¥à¤¸à¤¿à¤¯à¤¾à¤œà¤¿à¤¬à¥Œà¤Ÿà¥€à¤¡à¥‡à¤¨à¥à¤®à¤¾à¤°à¥à¤•à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¾à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¨ पà¥à¤°à¤œà¤¾à¤¸à¤¤à¥à¤¤à¤¾à¤•à¤…लà¥" + - "जीरियासà¥à¤¯à¥‚टा आणि मेलिलाइकà¥à¤µà¤¾à¤¡à¥‹à¤°à¤à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤‡à¤œà¤¿à¤ªà¥à¤¤à¤ªà¤¶à¥à¤šà¤¿à¤® सहाराà¤à¤°à¤¿à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤ª" + - "ेनइथिओपियायà¥à¤°à¥‹à¤ªà¥€à¤¯ संघफिनलंडफिजीफॉकलंड बेटेमायकà¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤«à¥‡à¤°à¥‹ बेटेफà¥à¤°à¤¾à¤¨à¥" + - "सगॅबॉनयà¥à¤¨à¤¾à¤¯à¤Ÿà¥‡à¤¡ किंगडमगà¥à¤°à¥‡à¤¨à¥‡à¤¡à¤¾à¤œà¥‰à¤°à¥à¤œà¤¿à¤¯à¤¾à¤«à¥à¤°à¥‡à¤‚च गयानागà¥à¤µà¥‡à¤°à¥à¤¨à¤¸à¥‡à¤˜à¤¾à¤¨à¤¾à¤œà¤¿à¤¬à¥à¤°à¤¾à¤²à¥" + - "टरगà¥à¤°à¥€à¤¨à¤²à¤‚डगामà¥à¤¬à¤¿à¤¯à¤¾à¤—िनीगà¥à¤µà¤¾à¤¡à¥‡à¤²à¥‹à¤‰à¤ªà¥‡à¤‡à¤•à¥à¤µà¥‡à¤Ÿà¥‹à¤°à¤¿à¤¯à¤² गिनीगà¥à¤°à¥€à¤¸à¤¦à¤•à¥à¤·à¤¿à¤£ जॉरà¥à¤œà¤¿à¤¯à¤¾ " + - "आणि दकà¥à¤·à¤¿à¤£ सà¤à¤¡à¤µà¤¿à¤š बेटेगà¥à¤µà¤¾à¤Ÿà¥‡à¤®à¤¾à¤²à¤¾à¤—à¥à¤†à¤®à¤—िनी-बिसाउगयानाहाà¤à¤—काà¤à¤— à¤à¤¸à¤à¤†à¤° चीनह" + - "रà¥à¤¡ आणि मॅकà¥à¤¡à¥‹à¤¨à¤¾à¤²à¥à¤¡ बेटेहोंडà¥à¤°à¤¾à¤¸à¤•à¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾à¤¹à¥ˆà¤¤à¥€à¤¹à¤‚गेरीकॅनरी बेटेइंडोनेशिय" + - "ाआयरà¥à¤²à¤‚डइसà¥à¤¤à¥à¤°à¤¾à¤‡à¤²à¤‡à¤¸à¥à¤²à¥‡ ऑफ मॅनभारतबà¥à¤°à¤¿à¤Ÿà¤¿à¤¶ हिंदी महासागर कà¥à¤·à¥‡à¤¤à¥à¤°à¤‡à¤°à¤¾à¤•à¤ˆà¤°à¤¾à¤£" + - "आइसलà¤à¤¡à¤‡à¤Ÿà¤²à¥€à¤œà¤°à¥à¤¸à¥€à¤œà¤®à¥ˆà¤•à¤¾à¤œà¥‰à¤°à¥à¤¡à¤¨à¤œà¤ªà¤¾à¤¨à¤•à¥‡à¤¨à¤¿à¤¯à¤¾à¤•à¤¿à¤°à¤—िà¤à¤¸à¥à¤¤à¤¾à¤¨à¤•à¤‚बोडियाकिरीबाटीकोमोरोज" + - "सेंट किटà¥à¤¸ आणि नेवà¥à¤¹à¤¿à¤¸à¤‰à¤¤à¥à¤¤à¤° कोरियादकà¥à¤·à¤¿à¤£ कोरियाकà¥à¤µà¥‡à¤¤à¤•à¥‡à¤®à¤¨ बेटेकà¤à¤¾à¤•à¤¸à¥à¤¤à¤¾à¤¨" + - "लाओसलेबनॉनसेंट लà¥à¤¯à¥‚सियालिकà¥à¤Ÿà¥‡à¤¨à¤¸à¥à¤Ÿà¤¾à¤‡à¤¨à¤¶à¥à¤°à¥€à¤²à¤‚कालायबेरियालेसोथोलिथà¥à¤†à¤¨à¤¿à¤¯à¤¾à¤²à¤•" + - "à¥à¤à¥‡à¤‚बरà¥à¤—लातà¥à¤µà¤¿à¤¯à¤¾à¤²à¤¿à¤¬à¤¿à¤¯à¤¾à¤®à¥‹à¤°à¥‹à¤•à¥à¤•à¥‹à¤®à¥‹à¤¨à¥…कोमोलà¥à¤¡à¥‹à¤µà¥à¤¹à¤¾à¤®à¥‹à¤‚टेनेगà¥à¤°à¥‹à¤¸à¥‡à¤‚ट मारà¥à¤Ÿà¤¿à¤¨à¤®" + - "ादागासà¥à¤•à¤°à¤®à¤¾à¤°à¥à¤¶à¤² बेटेमॅसेडोनियामालीमà¥à¤¯à¤¾à¤¨à¤®à¤¾à¤° (बरà¥à¤®à¤¾)मंगोलियामकाओ à¤à¤¸à¤à¤†à¤° च" + - "ीनउतà¥à¤¤à¤°à¥€ मारियाना बेटेमारà¥à¤Ÿà¤¿à¤¨à¤¿à¤•à¤®à¥‰à¤°à¤¿à¤Ÿà¤¾à¤¨à¤¿à¤¯à¤¾à¤®à¥‰à¤¨à¥à¤Ÿà¥à¤¸à¥‡à¤°à¤¾à¤Ÿà¤®à¤¾à¤²à¥à¤Ÿà¤¾à¤®à¥‰à¤°à¤¿à¤¶à¤¸à¤®à¤¾à¤²à¤¦à¥€à¤µ" + - "मलावीमेकà¥à¤¸à¤¿à¤•à¥‹à¤®à¤²à¥‡à¤¶à¤¿à¤¯à¤¾à¤®à¥‹à¤à¤¾à¤®à¥à¤¬à¤¿à¤•à¤¨à¤¾à¤®à¤¿à¤¬à¤¿à¤¯à¤¾à¤¨à¥à¤¯à¥‚ कॅलेडोनियानाइजरनॉरफॉक बेटनाय" + - "जेरियानिकारागà¥à¤µà¤¾à¤¨à¥‡à¤¦à¤°à¤²à¤à¤¡à¤¨à¥‰à¤°à¥à¤µà¥‡à¤¨à¥‡à¤ªà¤¾à¤³à¤¨à¤Šà¤°à¥à¤¨à¥€à¤¯à¥‚नà¥à¤¯à¥‚à¤à¥€à¤²à¤‚डओमानपनामापेरूफà¥à¤°à¥‡à¤‚च" + - " पॉलिनेशियापापà¥à¤† नà¥à¤¯à¥‚ गिनीफिलिपिनà¥à¤¸à¤ªà¤¾à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤ªà¥‹à¤²à¤‚डसेंट पियरे आणि मिकà¥à¤µà¥‡à¤²à¥‹" + - "नपिटकैरà¥à¤¨ बेटेपà¥à¤¯à¥à¤à¤°à¥à¤¤à¥‹ रिकोपॅलेसà¥à¤Ÿà¤¿à¤¨à¤¿à¤¯à¤¨ पà¥à¤°à¤¦à¥‡à¤¶à¤ªà¥‹à¤°à¥à¤¤à¥à¤—ालपलाऊपरागà¥à¤µà¥‡à¤•à¤¤à¤¾" + - "रआउटलाईंग ओशनियारियà¥à¤¨à¤¿à¤¯à¤¨à¤°à¥‹à¤®à¤¾à¤¨à¤¿à¤¯à¤¾à¤¸à¤°à¥à¤¬à¤¿à¤¯à¤¾à¤°à¤¶à¤¿à¤¯à¤¾à¤°à¤µà¤¾à¤‚डासौदी अरबसोलोमन बेटेस" + - "ेशेलà¥à¤¸à¤¸à¥à¤¦à¤¾à¤¨à¤¸à¥à¤µà¥€à¤¡à¤¨à¤¸à¤¿à¤‚गापूरसेंट हेलेनासà¥à¤²à¥‹à¤µà¥à¤¹à¥‡à¤¨à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤²à¤¬à¤°à¥à¤¡ आणि जान माये" + - "नसà¥à¤²à¥‹à¤µà¥à¤¹à¤¾à¤•à¤¿à¤¯à¤¾à¤¸à¤¿à¤à¤°à¤¾ लिओनसॅन मरीनोसेनेगलसोमालियासà¥à¤°à¤¿à¤¨à¤¾à¤®à¤¦à¤•à¥à¤·à¤¿à¤£ सà¥à¤¦à¤¾à¤¨à¤¸à¤¾à¤“ ट" + - "ोम आणि पà¥à¤°à¤¿à¤‚सिपेअल सालà¥à¤µà¤¾à¤¡à¥‹à¤°à¤¸à¤¿à¤‚ट मारà¥à¤Ÿà¥‡à¤¨à¤¸à¥€à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤à¤¿à¤²à¤à¤¡à¤Ÿà¥à¤°à¤¿à¤¸à¥à¤Ÿà¤¨ दा कà¥à¤¨" + - "à¥à¤¹à¤¾à¤Ÿà¤°à¥à¤•à¥à¤¸ आणि कैकोस बेटेचाडफà¥à¤°à¥‡à¤‚च दाकà¥à¤·à¤¿à¤£à¤¾à¤¤à¥à¤¯ पà¥à¤°à¤¦à¥‡à¤¶à¤Ÿà¥‹à¤—ोथायलंडताजिकिसà¥" + - "तानतोकेलाउपूरà¥à¤µ तिमोरतà¥à¤°à¥à¤•à¤®à¥‡à¤¨à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤Ÿà¥à¤¯à¥‚निशियाटोंगातà¥à¤°à¥à¤•à¥€à¤¤à¥à¤°à¤¿à¤¨à¤¿à¤¦à¤¾à¤¦ आणि " + - "टोबॅगोटà¥à¤µà¤¾à¤²à¥à¤¤à¥ˆà¤µà¤¾à¤¨à¤Ÿà¤¾à¤‚à¤à¤¾à¤¨à¤¿à¤¯à¤¾à¤¯à¥à¤•à¥à¤°à¥‡à¤¨à¤¯à¥à¤—ांडायू.à¤à¤¸. आउटलाइंग बेटेयà¥à¤¨à¤¾à¤¯à¤Ÿà¥‡à¤¡ स" + - "à¥à¤Ÿà¥‡à¤Ÿà¥à¤¸à¤‰à¤°à¥à¤—à¥à¤µà¥‡à¤‰à¤à¤¬à¥‡à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤µà¥à¤¹à¥…टिकन सिटीसेंट वà¥à¤¹à¤¿à¤¨à¥à¤¸à¥‡à¤‚ट आणि गà¥à¤°à¥‡à¤¨à¤¡à¤¾à¤‡à¤¨à¥à¤¸à¤µà¥" + - "हेनेà¤à¥à¤à¤²à¤¾à¤¬à¥à¤°à¤¿à¤Ÿà¤¿à¤¶ वà¥à¤¹à¤°à¥à¤œà¤¿à¤¨ बेटेयू.à¤à¤¸. वà¥à¤¹à¤°à¥à¤œà¤¿à¤¨ बेटेवà¥à¤¹à¤¿à¤à¤¤à¤¨à¤¾à¤®à¤µà¤¾à¤¨à¥Œà¤Ÿà¥à¤µà¤¾à¤²à¤¿à¤¸" + - " आणि फà¥à¤¯à¥‚चूनासामोआकोसोवà¥à¤¹à¥‹à¤¯à¥‡à¤®à¥‡à¤¨à¤®à¤¾à¤¯à¥‹à¤Ÿà¥à¤Ÿà¥‡à¤¦à¤•à¥à¤·à¤¿à¤£ आफà¥à¤°à¤¿à¤•à¤¾à¤à¤¾à¤®à¥à¤¬à¤¿à¤¯à¤¾à¤à¤¿à¤®à¥à¤¬à¤¾à¤¬à¥à¤µà¥‡à¤…" + - "जà¥à¤žà¤¾à¤¤ पà¥à¤°à¤¦à¥‡à¤¶à¤µà¤¿à¤¶à¥à¤µà¤†à¤«à¥à¤°à¤¿à¤•à¤¾à¤‰à¤¤à¥à¤¤à¤° अमेरिकादकà¥à¤·à¤¿à¤£ अमेरिकाओशनियापशà¥à¤šà¤¿à¤® आफà¥à¤°à¤¿à¤•" + - "ामधà¥à¤¯ अमेरिकापूरà¥à¤µ आफà¥à¤°à¤¿à¤•à¤¾à¤‰à¤¤à¥à¤¤à¤° आफà¥à¤°à¤¿à¤•à¤¾à¤®à¤§à¥à¤¯ आफà¥à¤°à¤¿à¤•à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ आफà¥à¤°à¤¿à¤•à¤¾à¤…मेर" + - "िकाउतà¥à¤¤à¤°à¥€ अमेरिकाकॅरीबियनपूरà¥à¤µ आशियादकà¥à¤·à¤¿à¤£ आशियादकà¥à¤·à¤¿à¤£ पूरà¥à¤µ आशियादकà¥à¤·" + - "िण यà¥à¤°à¥‹à¤ªà¤‘सà¥\u200dटà¥à¤°à¥‡à¤²à¥‡à¤¶à¤¿à¤¯à¤¾à¤®à¥‡à¤²à¤¾à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤®à¤¾à¤¯à¤•à¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¨ पà¥à¤°à¤¦à¥‡à¤¶à¤ªà¥‰à¤²à¤¿à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤…शि" + - "यामधà¥à¤¯ आशियापशà¥à¤šà¤¿à¤® आशियायà¥à¤°à¥‹à¤ªà¤ªà¥‚रà¥à¤µ यà¥à¤°à¥‹à¤ªà¤‰à¤¤à¥à¤¤à¤° यà¥à¤°à¥‹à¤ªà¤ªà¤¶à¥à¤šà¤¿à¤® यà¥à¤°à¥‹à¤ªà¤²à¥…टिन अ" + - "मेरिका" - -// Size: 606 bytes, 291 elements -var mrRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x002b, 0x003d, 0x006f, 0x0090, 0x00c8, 0x00e0, 0x00fb, - 0x0116, 0x014d, 0x015f, 0x0183, 0x01a1, 0x01c6, 0x01e1, 0x0202, - 0x0211, 0x0230, 0x0248, 0x028c, 0x02a7, 0x02c2, 0x02da, 0x02ff, - 0x031a, 0x032c, 0x0341, 0x0350, 0x037b, 0x0390, 0x03a5, 0x03c3, - 0x03f7, 0x040c, 0x041e, 0x042d, 0x0449, 0x0464, 0x0479, 0x0485, - 0x0494, 0x04c5, 0x04ec, 0x053c, 0x056c, 0x0590, 0x05b5, 0x05cb, - 0x05d7, 0x05ec, 0x05f5, 0x0610, 0x0635, 0x0654, 0x0666, 0x0685, - 0x0697, 0x06b6, 0x06cb, 0x06f6, 0x0708, 0x0730, 0x0742, 0x075d, - // Entry 40 - 7F - 0x0775, 0x07af, 0x07ca, 0x07f9, 0x0811, 0x082c, 0x083e, 0x0860, - 0x087b, 0x088a, 0x08a2, 0x08c1, 0x08d3, 0x08df, 0x08fe, 0x0925, - 0x093e, 0x0953, 0x0962, 0x098d, 0x09a5, 0x09bd, 0x09df, 0x09fa, - 0x0a06, 0x0a24, 0x0a3c, 0x0a54, 0x0a60, 0x0a81, 0x0aaf, 0x0abe, - 0x0b26, 0x0b44, 0x0b50, 0x0b6c, 0x0b7b, 0x0bad, 0x0bf2, 0x0c0a, - 0x0c25, 0x0c31, 0x0c43, 0x0c5f, 0x0c7d, 0x0c92, 0x0cad, 0x0ccd, - 0x0cd9, 0x0d2a, 0x0d36, 0x0d42, 0x0d54, 0x0d60, 0x0d6f, 0x0d7e, - 0x0d90, 0x0d9c, 0x0dae, 0x0dcf, 0x0de7, 0x0dff, 0x0e14, 0x0e50, - // Entry 80 - BF - 0x0e72, 0x0e97, 0x0ea6, 0x0ebf, 0x0eda, 0x0ee6, 0x0ef8, 0x0f1d, - 0x0f44, 0x0f5c, 0x0f77, 0x0f89, 0x0fa4, 0x0fc2, 0x0fda, 0x0fec, - 0x1004, 0x1016, 0x1034, 0x1055, 0x1077, 0x1095, 0x10b4, 0x10d2, - 0x10de, 0x1108, 0x1120, 0x1146, 0x117e, 0x1199, 0x11b7, 0x11d8, - 0x11ea, 0x11fc, 0x120e, 0x121d, 0x1235, 0x124a, 0x1265, 0x127d, - 0x12a8, 0x12b7, 0x12d3, 0x12ee, 0x130c, 0x1321, 0x1333, 0x1342, - 0x134e, 0x135a, 0x1375, 0x1381, 0x1390, 0x139c, 0x13cd, 0x13f6, - 0x1411, 0x142c, 0x143b, 0x147d, 0x14a2, 0x14ca, 0x1501, 0x151c, - // Entry C0 - FF - 0x1528, 0x153d, 0x1549, 0x1574, 0x158c, 0x15a4, 0x15b9, 0x15c8, - 0x15da, 0x15f0, 0x160f, 0x1624, 0x1633, 0x1645, 0x165d, 0x167c, - 0x16a0, 0x16df, 0x1703, 0x171f, 0x1738, 0x174a, 0x1762, 0x1777, - 0x1799, 0x17d2, 0x17f4, 0x1816, 0x1828, 0x1843, 0x1875, 0x18ae, - 0x18b7, 0x18fe, 0x190a, 0x191c, 0x193d, 0x1952, 0x1971, 0x199b, - 0x19b9, 0x19c8, 0x19da, 0x1a12, 0x1a24, 0x1a33, 0x1a4e, 0x1a63, - 0x1a78, 0x1aac, 0x1ada, 0x1aef, 0x1b10, 0x1b35, 0x1b8c, 0x1bad, - 0x1be8, 0x1c1c, 0x1c37, 0x1c49, 0x1c7b, 0x1c8a, 0x1ca2, 0x1cb1, - // Entry 100 - 13F - 0x1cc9, 0x1cf1, 0x1d09, 0x1d27, 0x1d4c, 0x1d5b, 0x1d70, 0x1d95, - 0x1dbd, 0x1dcf, 0x1df7, 0x1e19, 0x1e3e, 0x1e63, 0x1e85, 0x1eb0, - 0x1ec5, 0x1eed, 0x1f05, 0x1f24, 0x1f46, 0x1f78, 0x1f9a, 0x1fc4, - 0x1fe2, 0x201c, 0x203a, 0x2049, 0x2065, 0x2087, 0x2096, 0x20b5, - 0x20d4, 0x20f6, 0x211b, -} - -// Size: 2966 bytes -var msRegionStr string = "" + - "Pulau AscensionAndorraEmiriah Arab BersatuAfghanistanAntigua dan Barbuda" + - "AnguillaAlbaniaArmeniaNetherlands AntillesAngolaAntartikaArgentinaSamoa " + - "AmerikaAustriaAustraliaArubaKepulauan AlandAzerbaijanBosnia dan Herzegov" + - "inaBarbadosBangladeshBelgiumBurkina FasoBulgariaBahrainBurundiBeninSaint" + - " BarthélemyBermudaBruneiBoliviaBelanda CaribbeanBrazilBahamasBhutanPulau" + - " BouvetBotswanaBelarusBelizeKanadaKepulauan Cocos (Keeling)Congo - Kinsh" + - "asaRepublik Afrika TengahCongo - BrazzavilleSwitzerlandCote d’IvoireKepu" + - "lauan CookChileCameroonChinaColombiaPulau ClippertonCosta RicaCubaCape V" + - "erdeCuracaoPulau KrismasCyprusRepublik CzechJermanDiego GarciaDjiboutiDe" + - "nmarkDominicaRepublik DominicaAlgeriaCeuta dan MelillaEcuadorEstoniaMesi" + - "rSahara BaratEritreaSepanyolEthiopiaKesatuan EropahFinlandFijiKepulauan " + - "FalklandMicronesiaKepulauan FaroePerancisGabonUnited KingdomGrenadaGeorg" + - "iaGuiana PerancisGuernseyGhanaGibraltarGreenlandGambiaGuineaGuadeloupeGu" + - "inea KhatulistiwaYunaniKepulauan Georgia Selatan & Sandwich SelatanGuate" + - "malaGuamGuinea BissauGuyanaHong Kong SAR ChinaKepulauan Heard & McDonald" + - "HondurasCroatiaHaitiHungaryKepulauan CanaryIndonesiaIrelandIsraelIsle of" + - " ManIndiaWilayah Lautan Hindi BritishIraqIranIcelandItaliJerseyJamaicaJo" + - "rdanJepunKenyaKyrgyzstanKembojaKiribatiComorosSaint Kitts dan NevisKorea" + - " UtaraKorea SelatanKuwaitKepulauan CaymanKazakhstanLaosLubnanSaint Lucia" + - "LiechtensteinSri LankaLiberiaLesothoLithuaniaLuxembourgLatviaLibyaMaghri" + - "biMonacoMoldovaMontenegroSaint MartinMadagaskarKepulauan MarshallMacedon" + - "iaMaliMyanmar (Burma)MongoliaMacau SAR ChinaKepulauan Mariana UtaraMarti" + - "niqueMauritaniaMontserratMaltaMauritiusMaldivesMalawiMexicoMalaysiaMozam" + - "biqueNamibiaNew CaledoniaNigerPulau NorfolkNigeriaNicaraguaBelandaNorway" + - "NepalNauruNiueNew ZealandOmanPanamaPeruPolinesia PerancisPapua New Guine" + - "aFilipinaPakistanPolandSaint Pierre dan MiquelonKepulauan PitcairnPuerto" + - " RicoWilayah PalestinPortugalPalauParaguayQatarOceania TerpencilReunionR" + - "omaniaSerbiaRusiaRwandaArab SaudiKepulauan SolomonSeychellesSudanSwedenS" + - "ingapuraSaint HelenaSloveniaSvalbard dan Jan MayenSlovakiaSierra LeoneSa" + - "n MarinoSenegalSomaliaSurinamSudan SelatanSao Tome dan PrincipeEl Salvad" + - "orSint MaartenSyriaSwazilandTristan da CunhaKepulauan Turks dan CaicosCh" + - "adWilayah Selatan PerancisTogoThailandTajikistanTokelauTimor-LesteTurkme" + - "nistanTunisiaTongaTurkiTrinidad dan TobagoTuvaluTaiwanTanzaniaUkraineUga" + - "ndaKepulauan Terpencil A.S.Amerika SyarikatUruguayUzbekistanKota Vatican" + - "Saint Vincent dan GrenadinesVenezuelaKepulauan Virgin BritishKepulauan V" + - "irgin A.S.VietnamVanuatuWallis dan FutunaSamoaKosovoYamanMayotteAfrika S" + - "elatanZambiaZimbabweWilayah Tidak DiketahuiDuniaAfrikaAmerika UtaraAmeri" + - "ka SelatanOceaniaAfrika BaratAmerika TengahAfrika TimurAfrika UtaraAfrik" + - "a TengahSelatan AfrikaAmerikaUtara AmerikaCaribbeanAsia TimurAsia Selata" + - "nAsia TenggaraEropah SelatanAustralasiaMelanesiaWilayah MikronesiaPoline" + - "siaAsiaAsia TengahAsia BaratEropahEropah TimurEropah UtaraEropah BaratAm" + - "erika Latin" - -// Size: 606 bytes, 291 elements -var msRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000f, 0x0016, 0x002a, 0x0035, 0x0048, 0x0050, 0x0057, - 0x005e, 0x0072, 0x0078, 0x0081, 0x008a, 0x0097, 0x009e, 0x00a7, - 0x00ac, 0x00bb, 0x00c5, 0x00db, 0x00e3, 0x00ed, 0x00f4, 0x0100, - 0x0108, 0x010f, 0x0116, 0x011b, 0x012c, 0x0133, 0x0139, 0x0140, - 0x0151, 0x0157, 0x015e, 0x0164, 0x0170, 0x0178, 0x017f, 0x0185, - 0x018b, 0x01a4, 0x01b4, 0x01ca, 0x01dd, 0x01e8, 0x01f7, 0x0205, - 0x020a, 0x0212, 0x0217, 0x021f, 0x022f, 0x0239, 0x023d, 0x0247, - 0x024e, 0x025b, 0x0261, 0x026f, 0x0275, 0x0281, 0x0289, 0x0290, - // Entry 40 - 7F - 0x0298, 0x02a9, 0x02b0, 0x02c1, 0x02c8, 0x02cf, 0x02d4, 0x02e0, - 0x02e7, 0x02ef, 0x02f7, 0x0306, 0x030d, 0x0311, 0x0323, 0x032d, - 0x033c, 0x0344, 0x0349, 0x0357, 0x035e, 0x0365, 0x0374, 0x037c, - 0x0381, 0x038a, 0x0393, 0x0399, 0x039f, 0x03a9, 0x03bc, 0x03c2, - 0x03ee, 0x03f7, 0x03fb, 0x0408, 0x040e, 0x0421, 0x043b, 0x0443, - 0x044a, 0x044f, 0x0456, 0x0466, 0x046f, 0x0476, 0x047c, 0x0487, - 0x048c, 0x04a8, 0x04ac, 0x04b0, 0x04b7, 0x04bc, 0x04c2, 0x04c9, - 0x04cf, 0x04d4, 0x04d9, 0x04e3, 0x04ea, 0x04f2, 0x04f9, 0x050e, - // Entry 80 - BF - 0x0519, 0x0526, 0x052c, 0x053c, 0x0546, 0x054a, 0x0550, 0x055b, - 0x0568, 0x0571, 0x0578, 0x057f, 0x0588, 0x0592, 0x0598, 0x059d, - 0x05a5, 0x05ab, 0x05b2, 0x05bc, 0x05c8, 0x05d2, 0x05e4, 0x05ed, - 0x05f1, 0x0600, 0x0608, 0x0617, 0x062e, 0x0638, 0x0642, 0x064c, - 0x0651, 0x065a, 0x0662, 0x0668, 0x066e, 0x0676, 0x0680, 0x0687, - 0x0694, 0x0699, 0x06a6, 0x06ad, 0x06b6, 0x06bd, 0x06c3, 0x06c8, - 0x06cd, 0x06d1, 0x06dc, 0x06e0, 0x06e6, 0x06ea, 0x06fc, 0x070c, - 0x0714, 0x071c, 0x0722, 0x073b, 0x074d, 0x0758, 0x0768, 0x0770, - // Entry C0 - FF - 0x0775, 0x077d, 0x0782, 0x0793, 0x079a, 0x07a1, 0x07a7, 0x07ac, - 0x07b2, 0x07bc, 0x07cd, 0x07d7, 0x07dc, 0x07e2, 0x07eb, 0x07f7, - 0x07ff, 0x0815, 0x081d, 0x0829, 0x0833, 0x083a, 0x0841, 0x0848, - 0x0855, 0x086a, 0x0875, 0x0881, 0x0886, 0x088f, 0x089f, 0x08b9, - 0x08bd, 0x08d5, 0x08d9, 0x08e1, 0x08eb, 0x08f2, 0x08fd, 0x0909, - 0x0910, 0x0915, 0x091a, 0x092d, 0x0933, 0x0939, 0x0941, 0x0948, - 0x094e, 0x0966, 0x0976, 0x097d, 0x0987, 0x0993, 0x09af, 0x09b8, - 0x09d0, 0x09e5, 0x09ec, 0x09f3, 0x0a04, 0x0a09, 0x0a0f, 0x0a14, - // Entry 100 - 13F - 0x0a1b, 0x0a29, 0x0a2f, 0x0a37, 0x0a4e, 0x0a53, 0x0a59, 0x0a66, - 0x0a75, 0x0a7c, 0x0a88, 0x0a96, 0x0aa2, 0x0aae, 0x0abb, 0x0ac9, - 0x0ad0, 0x0add, 0x0ae6, 0x0af0, 0x0afc, 0x0b09, 0x0b17, 0x0b22, - 0x0b2b, 0x0b3d, 0x0b46, 0x0b4a, 0x0b55, 0x0b5f, 0x0b65, 0x0b71, - 0x0b7d, 0x0b89, 0x0b96, -} - -// Size: 10052 bytes -var myRegionStr string = "" + - "အက်စ်စင်ရှီအွန်ကျွန်းအန်ဒိုရာယူအေအီးအာဖဂန်နစ္စá€á€”်အန်á€á€®á€‚ုအာနှင့်ဘာဘုဒါအန်" + - "ဂွီလာအဲလ်ဘာနီအာအာမေနီးယားအင်ဂိုလာအန္á€á€¬á€á€­á€€á€¡á€¬á€‚ျင်á€á€®á€¸á€”ားအမေရိကန် စမိုအဩစá€" + - "ြီးယားဩစá€á€¼á€±á€¸á€œá€»á€¡á€¬á€›á€¯á€˜á€¬á€¡á€¬á€œá€”်ကျွန်းအဇာဘိုင်ဂျန်ဘော့စနီးယား နှင့် ဟာဇီဂိုဘီ" + - "းနားဘာဘဒိုးစ်ဘင်္ဂလားဒေ့ရှ်ဘယ်လ်ဂျီယမ်ဘာကီနာ ဖာဆိုဘူဂေးရီးယားဘာရိန်းဘူ" + - "ရွန်ဒီဘီနင်စိန့်ဘာသီလီမိုင်ဘာမူဒါဘရူနိုင်းဘိုလီးဘီးယားကာရီဘီယံနယ်သာလန်" + - "ဘရာဇီးဘဟားမားဘူá€á€”်ဘူဗက်ကျွန်းဘော့စ်á€á€«á€”ာဘီလာရုစ်ဘေလီဇ်ကနေဒါကိုကိုး ကျွန" + - "်းစုကွန်ဂို-ကင်ရှာစအလယ်ပိုင်း အာဖရိက ပြည်ထောင်စုကွန်ဂို-ဘရာဇာဗီလ်ဆွစ်ဇ" + - "လန်အိုင်ဗရီကိုစ့်ကွá€á€º ကျွန်းစုá€á€»á€®á€œá€®á€€á€„်မရွန်းá€á€›á€¯á€á€ºá€€á€­á€¯á€œá€¶á€˜á€®á€šá€¬á€€á€œá€…်ပါá€á€”်ကျွ" + - "န်းကော့စ်á€á€¬á€›á€®á€€á€¬á€€á€»á€°á€¸á€˜á€¬á€¸á€á€±á€·á€•á€ºá€—ာဒူá€á€°á€›á€¬á€€á€¬á€¡á€­á€¯á€á€›á€…်စမá€á€º ကျွန်းဆိုက်ပရက်စ်á€á€»á€€á€º" + - " ပြည်ထောင်စုဂျာမá€á€®á€’ီအေဂိုဂရာစီအာဂျီဘူá€á€®á€’ိန်းမá€á€ºá€’ိုမီနီကာဒိုမီနီကန်အယ်လ်ဂ" + - "ျီးရီးယားဆယ်ဥá€á€¬á€”ှင့်မယ်လီလ်လာအီကွေဒေါအက်စá€á€­á€¯á€¸á€”ီးယားအီဂျစ်အနောက်ပိုင်း " + - "ဆာဟာရအီရီá€á€›á€®á€¡á€¬á€…ပိန်အီသီယိုးပီးယားဥရောပသမဂ္ဂဖင်လန်ဖီဂျီဖောက်ကလန် ကျွန်း" + - "စုမိုင်á€á€›á€­á€¯á€”ီရှားဖာရိုး ကျွန်းစုများပြင်သစ်ဂါဘွန်ယူနိုက်á€á€€á€ºá€€á€„်းဒမ်းဂရီ" + - "နာဒါဂျော်ဂျီယာပြင်သစ် ဂီယာနာဂွန်းဇီဂါနာဂျီဘရော်လ်á€á€¬á€‚ရင်းလန်းဂန်ဘီရာဂီး" + - "နီဂူအာဒီလုပ်အီကွေá€á€¬ ဂီရာနာဂရိá€á€±á€¬á€„် ဂျော်ဂျီယာ နှင့် á€á€±á€¬á€„် ဆင်းဒá€á€…်ဂျ် " + - "ကျွန်းစုများဂွာá€á€®á€™á€¬á€œá€¬á€‚ူအမ်ဂီရာနာ-ဘီစ်စာဥဂူရာနာá€á€›á€¯á€á€ºá အထူးအုပ်á€á€»á€¯á€•á€ºá€á€½á€„့" + - "်ရ ဟောင်ကောင်ဟá€á€ºá€€á€»á€½á€”်းနှင့်မက်ဒေါနယ်ကျွန်းစုဟွန်ဒူးရပ်စ်á€á€›á€­á€¯á€¡á€±á€¸á€›á€¾á€¬á€¸á€Ÿá€±á€" + - "ီဟန်ဂေရီကာနာရီကျွန်းစုအင်ဒိုနီးရှားအိုင်ယာလန်အစ္စရေးမန်ကျွန်းအိန္ဒိယဗြ" + - "ိá€á€­á€žá€»á€¾ အိန္ဒြိယ သမုဒ္ဒရာ ပိုင်နက်အီရá€á€ºá€¡á€®á€›á€”်အိုက်စလန်အီá€á€œá€®á€‚ျာစီဂျမေကာဂျ" + - "ော်ဒန်ဂျပန်ကင်ညာá€á€›á€°á€‚စ်စá€á€”်ကမ္ဘောဒီးယားá€á€®á€›á€®á€˜á€¬á€á€®á€€á€­á€¯á€™á€­á€¯á€›á€­á€¯á€…်စိန့်ကစ်နှင့်" + - "နီဗီစ်မြောက်ကိုရီးယားá€á€±á€¬á€„်ကိုရီးယားကူá€á€­á€á€ºá€€á€±á€™á€”် ကျွန်းစုကာဇက်စá€á€”်လာအိုလ" + - "က်ဘနွန်စိန့်လူစီအာလစ်á€á€ºá€‘င်စá€á€­á€¯á€„်သီရိလင်္ကာလိုင်ဘေးရီးယားလီဆိုသိုလစ်သူယ" + - "ေးနီးယားလူဇင်ဘá€á€ºá€œá€á€ºá€—ီးယားလီဗရာမော်ရိုကိုမိုနာကိုမောလ်ဒိုဗာမွန်á€á€®á€”ိဂရို" + - "းစိန့်မာá€á€„်မာဒါဂá€á€ºá€…ကာမာရှယ် ကျွန်းစုမာစီဒိုးနီးယားမာလီမြန်မာမွန်ဂိုးလီ" + - "းယားá€á€›á€¯á€á€ºá အထူးအုပ်á€á€»á€¯á€•á€ºá€á€½á€„့်ရ မကာအိုá€á€±á€¬á€„်ပိုင်းမာရီအာနာကျွန်းစုမာá€á€®á€”ီ" + - "ကီမောရီá€á€¬á€”ီအာမောင့်စဲရက်မောလ်á€á€¬á€™á€±á€¬á€ºá€›á€±á€›á€¾á€¬á€¸á€…်မော်လ်ဒိုက်မာလာá€á€®á€™á€€á€¹á€€á€†á€®á€€á€­á€¯á€™" + - "လေးရှားမိုဇန်ဘစ်နမ်မီးဘီးယားနယူး ကယ်လီဒိုနီးယားနိုင်ဂျာနောဖော့á€á€ºá€€á€»á€½á€”်း" + - "နိုင်ဂျီးရီးယားနီကာရာဂွာနယ်သာလန်နော်á€á€±á€”ီပေါနာဥူရူနီဥူအေနယူးဇီလန်အိုမန်" + - "ပနားမားပီရူးပြင်သစ် ပေါ်လီနေးရှားပါပူရာနယူးဂီနီဖိလစ်ပိုင်ပါကစ္စá€á€”်ပိုလ" + - "န်စိန့်ပီအဲရီနှင့်မီကွီလွန်ပစ်á€á€ºá€€á€­á€”်းကျွန်းစုပေါ်á€á€°á€›á€®á€€á€­á€¯á€•á€«á€œá€€á€ºá€…á€á€­á€¯á€„်း ပ" + - "ိုင်နက်ပေါ်á€á€°á€‚ီပလောင်ပါရာဂွေးကာá€á€¬á€žá€™á€¯á€’္ဒရာဒေသအပြင်ထွက်နေသောဒေသများရဲအူန" + - "ီရွန်ရိုမေးနီးယားဆားဘီးယားရုရှရá€á€”်ဒါဆော်ဒီအာရေးဗီးယားဆော်လမွန်ကျွန်းစု" + - "ဆေးရှလ်ဆူဒန်ဆွီဒင်စင်္ကာပူစိန့်ဟဲလီနာစလိုဗေးနီးယားစဗိုလ်ဘá€á€ºá€”ှင့်ဂျန်မေ" + - "ရန်စလိုဗေးကီးယားဆီအဲရာ လီအိုနီဆော့န်မာရီနိုဆီနီဂေါဆိုမာလီယာဆူရီနိမ်းမြ" + - "ောက်ဆူဒန်စိန့်á€á€­á€¯á€™á€®á€”ှင့်ပရင်စီပ့်အယ်လ်ဆာဗေးဒိုးဆင့်မာအာá€á€„်ဆီးရီးယားစွာ" + - "ဇီလန်ထရစ်á€á€”်ဒါကွန်ဟာá€á€á€ºá€…်နှင့်ကာအီကိုစ်ကျွန်းစုá€á€»á€’်ပြင်သစ် á€á€±á€¬á€„်ပိုင်း" + - " ပိုင်နက်များá€á€­á€¯á€‚ိုထိုင်းá€á€¬á€‚ျီကစ္စá€á€”်ထိုးá€á€«á€œá€°á€¡á€›á€¾á€±á€·á€á€®á€™á€±á€¬á€á€¬á€á€ºá€™á€®á€”့စ်á€á€”်á€á€°á€”ီ" + - "းရှားá€á€½á€”်ဂါá€á€°á€›á€€á€®á€‘ရိုင်နီဒá€á€ºá€”ှင့်á€á€­á€¯á€˜á€¬á€‚ိုထူးဗလူထိုင်á€á€™á€ºá€á€”်ဇန်းနီးယားယူက" + - "ရိန်းယူဂန္ဓာယူနိုက်á€á€€á€ºá€…á€á€­á€á€º အပြင်ထွက် နေသည့် သေးငယ်သောကျွန်းများယူနိုက" + - "်á€á€€á€ºá€…á€á€­á€á€ºá€¥á€›á€¯á€‚ွေးဥဘက်ကစ္စá€á€”်ဗာá€á€®á€€á€”်စီá€á€®á€¸á€…ိန့်ဗင့်ဆင့်နှင့် သည်ဂရဲနာဒင်း" + - "စ်ဗင်နီဇွဲလားဗြိá€á€­á€žá€»á€¾ ဗာဂျင်း ကျွန်းစုယူအက်စ် ဗာဂျင်း ကျွန်းစုဗီယက်နမ်" + - "ဗာနုအာá€á€°á€á€±á€«á€œá€…်နှင့်ဖူထူးနားဆာမိုအာကိုဆိုဗိုယီမင်မေအိုá€á€®á€á€±á€¬á€„်အာဖရိကဇမ်ဘ" + - "ီယာဇင်ဘာဘွေမသိ သို့မဟုá€á€º မရှိ သော နေရာကမ္ဘာအာဖရိကမြောက် အမေရိကá€á€±á€¬á€„် အမ" + - "ေရိကသမုဒ္ဒရာဒေသအနောက် အာဖရိကအလယ်ပိုင်း အမေရိကအရှေ့ပိုင်း အာဖရိကမြောက်ပ" + - "ိုင်း အာဖရိကအလယ်ပိုင်း အာဖရိကá€á€±á€¬á€„်ပိုင်း အာဖရိကအမေရိကများမြောက်ပိုင်း " + - "အမေရိကကာရီဘီယံအရှေ့ပိုင်း အာရှá€á€±á€¬á€„်ပိုင်း အာရှအရှေ့á€á€±á€¬á€„်ပိုင်းအာရှá€á€±á€¬á€„" + - "်ပိုင်း ဥရောပဩစá€á€¼á€±á€¸á€œá€»á€”ှင့် နယူးဇီလန်မီလာနီးရှားမိုင်á€á€›á€­á€¯á€”ီရှားနယ်ပိုလီ" + - "နီရှားအာရှအလယ် အာရှအနောက် အာရှဥရောပအရှေ့ပိုင်း ဥရောပမြောက်ပိုင်း ဥရောပ" + - "အနောက်ပိုင်း ဥရောပလက်á€á€„်အမေရိက" - -// Size: 606 bytes, 291 elements -var myRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x003f, 0x0057, 0x006c, 0x0093, 0x00cf, 0x00e7, 0x0105, - 0x0123, 0x0123, 0x013b, 0x0153, 0x0177, 0x019f, 0x01ba, 0x01d2, - 0x01e4, 0x0205, 0x0229, 0x0282, 0x029d, 0x02c7, 0x02e8, 0x030a, - 0x032b, 0x0340, 0x0358, 0x0367, 0x0397, 0x03a9, 0x03c4, 0x03e8, - 0x0418, 0x042a, 0x043f, 0x044e, 0x046f, 0x048d, 0x04a5, 0x04b7, - 0x04c6, 0x04f4, 0x051f, 0x0572, 0x05a3, 0x05bb, 0x05e5, 0x060a, - 0x0619, 0x0634, 0x0643, 0x065e, 0x068b, 0x06af, 0x06c4, 0x06df, - 0x06fa, 0x0725, 0x0746, 0x0774, 0x0786, 0x07b0, 0x07c5, 0x07dd, - // Entry 40 - 7F - 0x07f8, 0x0816, 0x0843, 0x087f, 0x0897, 0x08c1, 0x08d3, 0x0907, - 0x0922, 0x0931, 0x095b, 0x0979, 0x098b, 0x099a, 0x09ce, 0x09fb, - 0x0a32, 0x0a47, 0x0a59, 0x0a8f, 0x0aa4, 0x0ac2, 0x0aea, 0x0aff, - 0x0b0b, 0x0b2f, 0x0b4a, 0x0b5f, 0x0b6e, 0x0b8c, 0x0bb4, 0x0bbd, - 0x0c52, 0x0c6d, 0x0c7c, 0x0ca4, 0x0cb6, 0x0d21, 0x0d7e, 0x0da2, - 0x0dc3, 0x0dcf, 0x0de4, 0x0e0e, 0x0e35, 0x0e53, 0x0e68, 0x0e83, - 0x0e98, 0x0efb, 0x0f0a, 0x0f19, 0x0f34, 0x0f43, 0x0f52, 0x0f64, - 0x0f7c, 0x0f8b, 0x0f9a, 0x0fb8, 0x0fdc, 0x0ff4, 0x1015, 0x104e, - // Entry 80 - BF - 0x107b, 0x10a5, 0x10b7, 0x10df, 0x10fa, 0x1109, 0x1121, 0x1142, - 0x116c, 0x118a, 0x11b4, 0x11cc, 0x11f6, 0x120e, 0x1229, 0x1238, - 0x1256, 0x126e, 0x128c, 0x12b3, 0x12d1, 0x12ef, 0x131a, 0x1344, - 0x1350, 0x1362, 0x138c, 0x13eb, 0x143c, 0x1454, 0x1475, 0x1496, - 0x14ab, 0x14cf, 0x14f0, 0x1502, 0x151d, 0x1535, 0x1550, 0x1574, - 0x15ab, 0x15c3, 0x15f0, 0x161d, 0x1638, 0x1650, 0x1662, 0x1671, - 0x1683, 0x1695, 0x16b0, 0x16c2, 0x16d7, 0x16e6, 0x1723, 0x174d, - 0x176b, 0x1786, 0x1798, 0x17e3, 0x1819, 0x183a, 0x1877, 0x188f, - // Entry C0 - FF - 0x18a1, 0x18b9, 0x18c5, 0x1925, 0x1943, 0x1967, 0x1982, 0x198e, - 0x19a0, 0x19d3, 0x1a06, 0x1a1b, 0x1a2a, 0x1a3c, 0x1a54, 0x1a75, - 0x1a9c, 0x1ae1, 0x1b08, 0x1b30, 0x1b57, 0x1b6c, 0x1b87, 0x1ba2, - 0x1bc3, 0x1c0b, 0x1c35, 0x1c56, 0x1c71, 0x1c89, 0x1cb6, 0x1d07, - 0x1d13, 0x1d6f, 0x1d81, 0x1d93, 0x1db7, 0x1dcf, 0x1ded, 0x1e14, - 0x1e2f, 0x1e41, 0x1e50, 0x1e98, 0x1eaa, 0x1ec2, 0x1ee9, 0x1f01, - 0x1f16, 0x1fac, 0x1fd9, 0x1fee, 0x200f, 0x2033, 0x2094, 0x20b5, - 0x20fc, 0x2140, 0x2158, 0x2170, 0x21a9, 0x21be, 0x21d9, 0x21e8, - // Entry 100 - 13F - 0x21fd, 0x221e, 0x2233, 0x224b, 0x2294, 0x22a3, 0x22b5, 0x22da, - 0x22fc, 0x231d, 0x2342, 0x2373, 0x23a7, 0x23de, 0x240f, 0x2443, - 0x2461, 0x2498, 0x24b0, 0x24de, 0x250c, 0x2548, 0x2579, 0x25bc, - 0x25dd, 0x2613, 0x2634, 0x2640, 0x2659, 0x2678, 0x2687, 0x26b8, - 0x26ec, 0x2720, 0x2744, -} - -// Size: 9084 bytes -var neRegionStr string = "" + - "à¤à¤¸à¥à¤•à¥‡à¤¨à¥à¤¸à¤¨ टापà¥à¤…नà¥à¤¡à¥‹à¤°à¥à¤°à¤¾à¤¸à¤‚यà¥à¤•à¥à¤¤ अरब इमिराटà¥à¤¸à¤…फगानिसà¥à¤¤à¤¾à¤¨à¤à¤¨à¥à¤Ÿà¤¿à¤—à¥à¤† र बारबà¥à¤¡à¤¾" + - "आङà¥à¤—à¥à¤‡à¤²à¤¾à¤…लà¥à¤¬à¤¾à¤¨à¤¿à¤¯à¤¾à¤†à¤°à¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤¨à¥‡à¤¦à¤°à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¥à¤¸ à¤à¤£à¥à¤Ÿà¤¿à¤²à¤¿à¤¸à¤…ङà¥à¤—ोलाअनà¥à¤Ÿà¤¾à¤°à¤¤à¤¿à¤•à¤¾à¤…रà¥à¤œà¥‡" + - "नà¥à¤Ÿà¤¿à¤¨à¤¾à¤…मेरिकी समोआअषà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤…षà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾à¤†à¤°à¥‚बाअलानà¥à¤¡ टापà¥à¤¹à¤°à¥à¤…जरबैजानबोसà¥à¤¨" + - "िया à¤à¤£à¥à¤¡ हरà¥à¤œà¤—ोभिनियाबारà¥à¤¬à¤¾à¤¡à¥‹à¤¸à¤¬à¤™à¥à¤—लादेशबेलà¥à¤œà¤¿à¤¯à¤®à¤¬à¤°à¥à¤•à¤¿à¤¨à¤¾ फासोबà¥à¤²à¥à¤—ेरियाब" + - "हराइनबà¥à¤°à¥‚णà¥à¤¡à¥€à¤¬à¥‡à¤¨à¤¿à¤¨à¤¸à¥‡à¤¨à¥à¤Ÿ बारà¥à¤¥à¤¾à¤²à¥‡à¤®à¥€à¤¬à¤°à¥à¤®à¥à¤¡à¤¾à¤¬à¥à¤°à¥à¤¨à¤¾à¤‡à¤¬à¥‹à¤²à¤¿à¤­à¤¿à¤¯à¤¾à¤•à¥à¤¯à¤¾à¤°à¤¿à¤µà¤¿à¤¯à¤¨ नेद" + - "रलà¥à¤¯à¤¾à¤£à¥à¤¡à¥à¤¸à¤¬à¥à¤°à¤¾à¤œà¤¿à¤²à¤¬à¤¹à¤¾à¤®à¤¾à¤¸à¤­à¥à¤Ÿà¤¾à¤¨à¤¬à¥à¤­à¥‡à¤Ÿ टापà¥à¤¬à¥‹à¤Ÿà¥à¤¸à¥à¤µà¤¾à¤¨à¤¾à¤¬à¥‡à¤²à¤¾à¤°à¥‚सबेलिजकà¥à¤¯à¤¾à¤¨à¤¾à¤¡à¤¾à¤•à¥‹" + - "कोस (किलिंग) टापà¥à¤¹à¤°à¥à¤•à¥‹à¤™à¥à¤—ो-किनà¥à¤¶à¤¾à¤¸à¤¾à¤•à¥‡à¤¨à¥à¤¦à¥à¤°à¥€à¤¯ अफà¥à¤°à¤¿à¤•à¥€ गणतनà¥à¤¤à¥à¤°à¤•à¥‹à¤™à¥à¤—ो - " + - "बà¥à¤°à¤¾à¤œà¥à¤œà¤¾à¤­à¤¿à¤²à¥à¤²à¥‡à¤¸à¥à¤µà¤¿à¤œà¤°à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¤†à¤‡à¤­à¤°à¥€ कोसà¥à¤Ÿà¤•à¥à¤• टापà¥à¤¹à¤°à¥à¤šà¤¿à¤²à¥€à¤•à¥à¤¯à¤¾à¤®à¤°à¥‚नचीनकोलोमà¥" + - "बियाकà¥à¤²à¤¿à¤ªà¥à¤ªà¥‡à¤°à¥à¤Ÿà¤¨ टापà¥à¤•à¥‹à¤·à¥à¤Ÿà¤¾à¤°à¤¿à¤•à¤¾à¤•à¥à¤¯à¥à¤¬à¤¾à¤•à¥‡à¤ª भरà¥à¤¡à¥‡à¤•à¥à¤°à¤¾à¤•à¤¾à¤“कà¥à¤°à¤¿à¤·à¥à¤Ÿà¤®à¤¸ टापà¥à¤¸à¤¾à¤‡" + - "पà¥à¤°à¤¸à¤šà¥‡à¤• गणतनà¥à¤¤à¥à¤°à¤œà¤°à¥à¤®à¤¨à¥€à¤¡à¤¿à¤¯à¤—ो गारà¥à¤¸à¤¿à¤¯à¤¾à¤¡à¤¿à¤œà¤¿à¤¬à¥à¤Ÿà¥€à¤¡à¥‡à¤¨à¤®à¤¾à¤°à¥à¤•à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¾à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¨ ग" + - "णतनà¥à¤¤à¥à¤°à¤…लà¥à¤œà¥‡à¤°à¤¿à¤¯à¤¾à¤¸à¤¿à¤‰à¤Ÿà¤¾ र मेलिलाइकà¥à¤µà¤¡à¥‡à¤°à¤‡à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤‡à¤œà¤¿à¤ªà¥à¤Ÿà¤ªà¤¶à¥à¤šà¤¿à¤®à¥€ साहाराà¤à¤°à¤¿à¤¤" + - "à¥à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤ªà¥‡à¤¨à¤‡à¤¥à¤¿à¤¯à¥‹à¤ªà¤¿à¤¯à¤¾à¤¯à¥à¤°à¥‹à¤ªà¤¿à¤¯à¤¨ यà¥à¤¨à¤¿à¤¯à¤¨à¤«à¤¿à¤¨à¥à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¤«à¤¿à¤œà¥€à¤«à¤•à¤²à¥à¤¯à¤¾à¤£à¥à¤¡ टापà¥à¤¹à¤°à¥à¤®à¤¾à¤‡à¤•" + - "à¥à¤°à¥‹à¤¨à¥‡à¤¸à¤¿à¤¯à¤¾à¤«à¤¾à¤°à¥‹à¤° टापà¥à¤¹à¤°à¥à¤«à¥à¤°à¤¾à¤¨à¥à¤¸à¤—ावोनबेलायतगà¥à¤°à¥‡à¤¨à¤¾à¤¡à¤¾à¤œà¤°à¥à¤œà¤¿à¤¯à¤¾à¤«à¥à¤°à¤¾à¤¨à¥à¤¸à¥‡à¤²à¥€ गायन" + - "ागà¥à¤à¤°à¥à¤¨à¤¸à¥‡à¤˜à¤¾à¤¨à¤¾à¤œà¤¿à¤¬à¥à¤°à¤¾à¤²à¥à¤Ÿà¤¾à¤°à¤—à¥à¤°à¤¿à¤¨à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¤—ामà¥à¤µà¤¿à¤¯à¤¾à¤—िनीगà¥à¤µà¤¾à¤¡à¥‡à¤²à¥à¤ªà¤­à¥‚-मधà¥à¤¯à¥€à¤¯ गिन" + - "ीगà¥à¤°à¤¿à¤¸à¤¦à¤•à¥à¤·à¤¿à¤£ जरà¥à¤œà¤¿à¤¯à¤¾ र दकà¥à¤·à¤¿à¤£ सà¥à¤¯à¤¾à¤¨à¥à¤¡à¤µà¥€à¤š टापà¥à¤¹à¤°à¥‚गà¥à¤µà¤¾à¤Ÿà¥‡à¤®à¤¾à¤²à¤¾à¤—à¥à¤µà¤¾à¤®à¤—िनी-बि" + - "साउगà¥à¤¯à¤¾à¤¨à¤¾à¤¹à¤™à¤•à¤™ चिनिया समाजवादी सà¥à¤µà¤¾à¤¯à¤¤à¥à¤¤ कà¥à¤·à¥‡à¤¤à¥à¤°à¤¹à¤°à¥à¤¡ टापॠà¤à¤£à¥à¤¡ मà¥à¤¯à¤¾à¤•à¤¡à¥‹à¤¨à¤¾" + - "लà¥à¤¡ टापà¥à¤¹à¤°à¥à¤¹à¤¨à¥à¤¡à¥à¤°à¤¾à¤¸à¤•à¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾à¤¹à¥ˆà¤Ÿà¥€à¤¹à¤™à¥à¤—ेरीकà¥à¤¯à¤¾à¤¨à¤¾à¤°à¥€ टापà¥à¤¹à¤°à¥‚इनà¥à¤¡à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤†à¤¯à¤°à¤²" + - "à¥à¤¯à¤¾à¤£à¥à¤¡à¤‡à¤œà¤°à¤¾à¤¯à¤²à¤†à¤‡à¤œà¥à¤²à¥‡ अफॠमà¥à¤¯à¤¾à¤¨à¤­à¤¾à¤°à¤¤à¤¬à¥‡à¤²à¤¾à¤¯à¤¤à¥€ हिनà¥à¤¦ महासागर कà¥à¤·à¥‡à¤¤à¥à¤°à¤‡à¤°à¤¾à¤•à¤‡à¤°à¤¾à¤¨à¤†" + - "इसà¥à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¤‡à¤Ÿà¤¾à¤²à¥€à¤œà¤°à¥à¤¸à¥€à¤œà¤®à¤¾à¤‡à¤•à¤¾à¤œà¥‹à¤°à¥à¤¡à¤¨à¤œà¤¾à¤ªà¤¾à¤¨à¤•à¥‡à¤¨à¥à¤¯à¤¾à¤•à¤¿à¤°à¥à¤—िसà¥à¤¥à¤¾à¤¨à¤•à¤®à¥à¤¬à¥‹à¤¡à¤¿à¤¯à¤¾à¤•à¤¿à¤°à¤¿à¤¬à¤¾à¤Ÿ" + - "ीकोमोरोससेनà¥à¤Ÿ किटà¥à¤¸ र नेभिसउतà¥à¤¤à¤° कोरियादकà¥à¤·à¤¿à¤£ कोरियाकà¥à¤µà¥‡à¤¤à¤•à¥‡à¤¯à¤®à¤¾à¤¨ टापà¥à¤•à¤¾" + - "जाकसà¥à¤¤à¤¾à¤¨à¤²à¤¾à¤“सलेबननसेनà¥à¤Ÿ लà¥à¤¸à¤¿à¤¯à¤¾à¤²à¤¿à¤à¤–टेनà¥à¤¸à¥à¤Ÿà¤¾à¤‡à¤¨à¤¶à¥à¤°à¥€à¤²à¤™à¥à¤•à¤¾à¤²à¤¾à¤‡à¤¬à¥‡à¤°à¤¿à¤¯à¤¾à¤²à¥‡à¤¸à¥‹à¤¥à¥‹à¤²à¤¿à¤¥" + - "à¥à¤…नियालकà¥à¤œà¥‡à¤®à¤¬à¤°à¥à¤—लाटà¥à¤­à¤¿à¤¯à¤¾à¤²à¤¿à¤¬à¤¿à¤¯à¤¾à¤®à¥‹à¤°à¥‹à¤•à¥à¤•à¥‹à¤®à¥‹à¤¨à¤¾à¤•à¥‹à¤®à¤¾à¤²à¥à¤¡à¥‹à¤­à¤¾à¤®à¥‹à¤¨à¥à¤Ÿà¥‡à¤¨à¥‡à¤—à¥à¤°à¥‹à¤¸à¥‡à¤¨à¥à¤Ÿ " + - "मारà¥à¤Ÿà¤¿à¤¨à¤®à¤¡à¤¾à¤—ासà¥à¤•à¤°à¤®à¤¾à¤°à¥à¤¶à¤² टापà¥à¤¹à¤°à¥à¤®à¥à¤¯à¤¾à¤•à¥‡à¤¡à¥‹à¤¨à¤¿à¤¯à¤¾à¤®à¤¾à¤²à¥€à¤®à¥à¤¯à¤¾à¤¨à¥à¤®à¤¾à¤° (बरà¥à¤®à¤¾)मङà¥à¤—ोलि" + - "यामकावो चिनिà¤à¤¯à¤¾ सà¥à¤µà¤¶à¤¾à¤¸à¤¿à¤¤ कà¥à¤·à¥‡à¤¤à¥à¤°à¤‰à¤¤à¥à¤¤à¤°à¥€ मारिआना टापà¥à¤®à¤¾à¤°à¥à¤Ÿà¤¿à¤¨à¤¿à¤•à¤®à¤¾à¤‰à¤°à¤¿à¤Ÿà¤¾à¤¨à¤¿à¤¯" + - "ामोनà¥à¤Ÿà¤¸à¥‡à¤°à¥à¤°à¤¾à¤Ÿà¤®à¤¾à¤²à¥à¤Ÿà¤¾à¤®à¤¾à¤‰à¤°à¤¿à¤Ÿà¤¸à¤®à¤¾à¤²à¥à¤¦à¤¿à¤­à¥à¤¸à¤®à¤¾à¤²à¤¾à¤µà¥€à¤®à¥‡à¤•à¥à¤¸à¤¿à¤•à¥‹à¤®à¤²à¥‡à¤¸à¤¿à¤¯à¤¾à¤®à¥‹à¤œà¤¾à¤®à¥à¤¬à¤¿à¤•à¤¨à¤¾à¤®à¤¿à¤¬" + - "ियानयाठकालेडोनियानाइजरनोरफोलà¥à¤• टापà¥à¤¨à¤¾à¤‡à¤œà¥‡à¤°à¤¿à¤¯à¤¾à¤¨à¤¿à¤•à¤¾à¤°à¤¾à¤—à¥à¤µà¤¾à¤¨à¥‡à¤¦à¤°à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¥à¤¸à¤¨à¤°" + - "à¥à¤µà¥‡à¤¨à¥‡à¤ªà¤¾à¤²à¤¨à¤¾à¤‰à¤°à¥‚नियà¥à¤‡à¤¨à¥à¤¯à¥à¤œà¤¿à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¤“मनपनामापेरूफà¥à¤°à¤¾à¤¨à¥à¤¸à¥‡à¤²à¥€ पोलिनेसियापपà¥à¤† न" + - "à¥à¤¯à¥‚ गाइनियाफिलिपिनà¥à¤¸à¤ªà¤¾à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤ªà¥‹à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¤¸à¥‡à¤¨à¥à¤Ÿ पिरà¥à¤°à¥‡ र मिकà¥à¤•à¥‡à¤²à¥‹à¤¨à¤ªà¤¿à¤Ÿà¤•à¤¾à¤‡à¤°à¥" + - "न टापà¥à¤¹à¤°à¥à¤ªà¥à¤à¤°à¥à¤Ÿà¥‹ रिकोपà¥à¤¯à¤¾à¤²à¥‡à¤¸à¥à¤Ÿà¤¨à¥€ भू-भागहरà¥à¤ªà¥‹à¤°à¥à¤šà¥à¤—लपलाउपà¥à¤¯à¤¾à¤°à¤¾à¤—à¥à¤µà¥‡à¤•à¤¤à¤¾à¤°à¤¬à¤¾" + - "हà¥à¤¯ ओसनियारियà¥à¤¨à¤¿à¤¯à¤¨à¤°à¥‹à¤®à¤¾à¤¨à¤¿à¤¯à¤¾à¤¸à¤°à¥à¤¬à¤¿à¤¯à¤¾à¤°à¥‚सरवाणà¥à¤¡à¤¾à¤¸à¤¾à¤‰à¤¦à¥€ अरबसोलोमोन टापà¥à¤¹à¤°à¥à¤¸à¥‡à¤š" + - "ेलेससà¥à¤¡à¤¾à¤¨à¤¸à¥à¤µà¤¿à¤¡à¥‡à¤¨à¤¸à¤¿à¤™à¥à¤—ापà¥à¤°à¤¸à¥‡à¤¨à¥à¤Ÿ हेलेनासà¥à¤²à¥‹à¤­à¥‡à¤¨à¤¿à¤¯à¤¾à¤¸à¤­à¤¾à¤²à¥à¤¬à¤¾à¤°à¥à¤¡ र जान मायेनस" + - "à¥à¤²à¥‹à¤­à¤¾à¤•à¤¿à¤¯à¤¾à¤¸à¤¿à¤à¤°à¥à¤°à¤¾ लिओनसानॠमारिनोसेनेगालसोमालियासà¥à¤°à¤¿à¤¨à¥‡à¤®à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ सà¥à¤¡à¤¾à¤¨à¤¸à¤¾à¤“" + - " टोमे र पà¥à¤°à¤¿à¤¨à¥à¤¸à¤¿à¤ªà¤à¤²à¥ सालà¥à¤­à¤¾à¤¡à¥‹à¤°à¤¸à¤¿à¤¨à¥à¤Ÿ मारà¥à¤Ÿà¥‡à¤¨à¤¸à¤¿à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤œà¤¿à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¤Ÿà¥à¤°à¤¿à¤¸à¥à¤Ÿà¤¾à¤¨ " + - "डा कà¥à¤¨à¥à¤¹à¤¾à¤¤à¥à¤°à¥à¤• र काइकोस टापà¥à¤šà¤¾à¤¡à¤«à¥à¤°à¤¾à¤¨à¥à¤¸à¥‡à¤²à¥€ दकà¥à¤·à¤¿à¤£à¥€ कà¥à¤·à¥‡à¤¤à¥à¤°à¤¹à¤°à¥à¤Ÿà¥‹à¤—ोथाइलà¥à¤¯" + - "ाणà¥à¤¡à¤¤à¤¾à¤œà¤¿à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤¤à¥‹à¤•à¥‡à¤²à¤¾à¤‰à¤Ÿà¤¿à¤®à¥‹à¤°-लेसà¥à¤Ÿà¥‡à¤¤à¥à¤°à¥à¤•à¤®à¥‡à¤¨à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤Ÿà¥à¤¯à¥à¤¨à¤¿à¤¸à¤¿à¤¯à¤¾à¤Ÿà¥‹à¤‚गाटरà¥à¤•à¥€à¤¤à¥" + - "रिनिडाड à¤à¤£à¥à¤¡ टोबागोतà¥à¤­à¤¾à¤²à¥à¤¤à¤¾à¤‡à¤µà¤¾à¤¨à¤¤à¤¾à¤¨à¥à¤œà¤¾à¤¨à¤¿à¤¯à¤¾à¤¯à¥à¤•à¥à¤°à¥‡à¤¨à¤¯à¥à¤—ाणà¥à¤¡à¤¾à¤¸à¤‚यà¥à¤•à¥à¤¤ राजà¥à¤¯ " + - "बाहà¥à¤¯ टापà¥à¤¹à¤°à¥à¤¸à¤‚यà¥à¤•à¥à¤¤ राजà¥à¤¯à¤‰à¤°à¥‚गà¥à¤µà¥‡à¤‰à¤œà¥à¤¬à¥‡à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤­à¥‡à¤Ÿà¤¿à¤•à¤¨ सिटीसेनà¥à¤Ÿ भिनà¥à¤¸à¥‡à¤¨à¥" + - "ट र गà¥à¤°à¥‡à¤¨à¤¾à¤¡à¤¿à¤¨à¥à¤¸à¤­à¥‡à¤¨à¥‡à¤œà¥à¤à¤²à¤¾à¤¬à¥‡à¤²à¤¾à¤¯à¤¤à¥€ भरà¥à¤œà¤¿à¤¨ टापà¥à¤¹à¤°à¥à¤¸à¤‚यà¥à¤•à¥à¤¤ राजà¥à¤¯ भरà¥à¤œà¤¿à¤¨ टाप" + - "à¥à¤¹à¤°à¥à¤­à¤¿à¤à¤¤à¤¨à¤¾à¤®à¤­à¤¾à¤¨à¥à¤†à¤¤à¥à¤µà¤¾à¤²à¤¿à¤¸ र फà¥à¤Ÿà¥à¤¨à¤¾à¤¸à¤¾à¤®à¥‹à¤†à¤•à¥‹à¤¸à¥‹à¤µà¥‹à¤¯à¥‡à¤®à¥‡à¤¨à¤®à¤¾à¤¯à¥‹à¤Ÿà¥à¤Ÿà¤¦à¤•à¥à¤·à¤¿à¤£ अफà¥à¤°à¤¿à¤•à¤¾à¤œ" + - "ामà¥à¤¬à¤¿à¤¯à¤¾à¤œà¤¿à¤®à¥à¤¬à¤¾à¤¬à¥‡à¤…जà¥à¤žà¤¾à¤¤ कà¥à¤·à¥‡à¤¤à¥à¤°à¤µà¤¿à¤¶à¥à¤µà¤…फà¥à¤°à¤¿à¤•à¤¾à¤‰à¤¤à¥à¤¤à¤° अमेरिकादकà¥à¤·à¤¿à¤£ अमेरिकाओस" + - "नियापशà¥à¤šà¤¿à¤®à¥€ अफà¥à¤°à¤¿à¤•à¤¾à¤•à¥‡à¤¨à¥à¤¦à¥à¤°à¥€à¤¯ अमेरिकापूरà¥à¤µà¥€ अफà¥à¤°à¤¿à¤•à¤¾à¤‰à¤¤à¥à¤¤à¤°à¥€ अफà¥à¤°à¤¿à¤•à¤¾à¤®à¤§à¥à¤¯ अ" + - "फà¥à¤°à¤¿à¤•à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ अफà¥à¤°à¤¿à¤•à¤¾à¤…मेरिकासउतà¥à¤¤à¤°à¥€ अमेरिकाकà¥à¤¯à¤¾à¤°à¤¿à¤¬à¤¿à¤¯à¤¨à¤ªà¥‚रà¥à¤µà¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿" + - "णी à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£ पूरà¥à¤µà¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ यà¥à¤°à¥‹à¤ªà¤…षà¥à¤Ÿà¥à¤°à¤¾à¤²à¤¾à¤¸à¤¿à¤¯à¤¾à¤®à¥‡à¤²à¤¾à¤¨à¥‡à¤¸à¤¿à¤¯à¤¾à¤®à¤¾à¤‡à¤•à¥à¤°à¥‹" + - "नेसियाली कà¥à¤·à¥‡à¤¤à¥à¤°à¤ªà¥‹à¤²à¤¿à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤à¤¶à¤¿à¤¯à¤¾à¤•à¥‡à¤¨à¥à¤¦à¥à¤°à¥€à¤¯ à¤à¤¶à¤¿à¤¯à¤¾à¤ªà¤¶à¥à¤šà¤¿à¤®à¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¯à¥à¤°à¥‹à¤ªà¤ªà¥‚रà¥à¤µà¥€" + - " यà¥à¤°à¥‹à¤ªà¤‰à¤¤à¥à¤¤à¤°à¥€ यà¥à¤°à¥‹à¤ªà¤ªà¤¶à¥à¤šà¤¿à¤®à¥€ यà¥à¤°à¥‹à¤ªà¤²à¥à¤¯à¤¾à¤Ÿà¤¿à¤¨ अमेरिका" - -// Size: 606 bytes, 291 elements -var neRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0028, 0x0043, 0x007b, 0x009c, 0x00ce, 0x00e6, 0x0101, - 0x011c, 0x015c, 0x0171, 0x018f, 0x01b0, 0x01d2, 0x01ed, 0x020e, - 0x021d, 0x0245, 0x025d, 0x02a7, 0x02c2, 0x02dd, 0x02f5, 0x0317, - 0x0335, 0x0347, 0x035f, 0x036e, 0x039c, 0x03b1, 0x03c6, 0x03de, - 0x0424, 0x0439, 0x044b, 0x045a, 0x0476, 0x0494, 0x04a9, 0x04b8, - 0x04d0, 0x050a, 0x0535, 0x057f, 0x05be, 0x05e5, 0x0604, 0x0623, - 0x062f, 0x0647, 0x0650, 0x066e, 0x069f, 0x06bd, 0x06cf, 0x06e8, - 0x06fd, 0x0725, 0x073a, 0x075c, 0x076e, 0x0796, 0x07ae, 0x07c6, - // Entry 40 - 7F - 0x07de, 0x080f, 0x082a, 0x0850, 0x0865, 0x0880, 0x0892, 0x08ba, - 0x08d5, 0x08e4, 0x08ff, 0x092a, 0x094b, 0x0957, 0x0988, 0x09af, - 0x09d4, 0x09e9, 0x09f8, 0x0a0a, 0x0a22, 0x0a37, 0x0a65, 0x0a7d, - 0x0a89, 0x0aaa, 0x0ace, 0x0ae6, 0x0af2, 0x0b0d, 0x0b33, 0x0b42, - 0x0bb6, 0x0bd4, 0x0be3, 0x0bff, 0x0c11, 0x0c78, 0x0cd9, 0x0cf1, - 0x0d0c, 0x0d18, 0x0d2d, 0x0d5b, 0x0d7c, 0x0d9a, 0x0dac, 0x0dd8, - 0x0de4, 0x0e35, 0x0e41, 0x0e4d, 0x0e6e, 0x0e7d, 0x0e8c, 0x0e9e, - 0x0eb0, 0x0ebf, 0x0ed1, 0x0ef2, 0x0f0d, 0x0f25, 0x0f3a, 0x0f6d, - // Entry 80 - BF - 0x0f8f, 0x0fb4, 0x0fc3, 0x0fe2, 0x1000, 0x100c, 0x101b, 0x103d, - 0x1067, 0x1082, 0x109d, 0x10af, 0x10ca, 0x10e8, 0x1100, 0x1112, - 0x112a, 0x113c, 0x1154, 0x1178, 0x119d, 0x11b8, 0x11e0, 0x1204, - 0x1210, 0x123d, 0x1258, 0x12ac, 0x12e1, 0x12fc, 0x131d, 0x1341, - 0x1353, 0x1368, 0x1383, 0x1395, 0x13ad, 0x13c2, 0x13dd, 0x13f5, - 0x1420, 0x142f, 0x1454, 0x146f, 0x148d, 0x14b4, 0x14c3, 0x14d2, - 0x14e1, 0x14f0, 0x1517, 0x1520, 0x152f, 0x153b, 0x1578, 0x15a7, - 0x15c2, 0x15dd, 0x15f8, 0x163a, 0x166b, 0x168d, 0x16c8, 0x16e0, - // Entry C0 - FF - 0x16ec, 0x170a, 0x1716, 0x1738, 0x1750, 0x1768, 0x177d, 0x1786, - 0x179b, 0x17b4, 0x17df, 0x17f4, 0x1803, 0x1818, 0x1833, 0x1855, - 0x1873, 0x18af, 0x18cd, 0x18ef, 0x190e, 0x1923, 0x193b, 0x1950, - 0x1975, 0x19ab, 0x19d0, 0x19f5, 0x1a07, 0x1a2e, 0x1a63, 0x1a96, - 0x1a9f, 0x1af2, 0x1afe, 0x1b1c, 0x1b3d, 0x1b52, 0x1b74, 0x1b9e, - 0x1bbc, 0x1bcb, 0x1bda, 0x1c15, 0x1c27, 0x1c39, 0x1c57, 0x1c6c, - 0x1c84, 0x1ccf, 0x1cf4, 0x1d09, 0x1d2d, 0x1d4c, 0x1d9d, 0x1db8, - 0x1df6, 0x1e44, 0x1e59, 0x1e6e, 0x1e94, 0x1ea3, 0x1eb5, 0x1ec4, - // Entry 100 - 13F - 0x1ed9, 0x1f01, 0x1f19, 0x1f31, 0x1f59, 0x1f68, 0x1f7d, 0x1fa2, - 0x1fca, 0x1fdc, 0x2007, 0x2038, 0x2060, 0x2088, 0x20aa, 0x20d5, - 0x20ed, 0x2115, 0x2133, 0x2155, 0x217a, 0x21af, 0x21d4, 0x21fb, - 0x2219, 0x225c, 0x227a, 0x2289, 0x22b4, 0x22d9, 0x22e8, 0x230a, - 0x232c, 0x2351, 0x237c, -} - -// Size: 3063 bytes -var nlRegionStr string = "" + - "AscensionAndorraVerenigde Arabische EmiratenAfghanistanAntigua en Barbud" + - "aAnguillaAlbaniëArmeniëNederlandse AntillenAngolaAntarcticaArgentiniëAme" + - "rikaans-SamoaOostenrijkAustraliëArubaÃ…landAzerbeidzjanBosnië en Herzegov" + - "inaBarbadosBangladeshBelgiëBurkina FasoBulgarijeBahreinBurundiBeninSaint" + - "-BarthélemyBermudaBruneiBoliviaCaribisch NederlandBraziliëBahama’sBhutan" + - "BouveteilandBotswanaWit-RuslandBelizeCanadaCocoseilandenCongo-KinshasaCe" + - "ntraal-Afrikaanse RepubliekCongo-BrazzavilleZwitserlandIvoorkustCookeila" + - "ndenChiliKameroenChinaColombiaClippertonCosta RicaCubaKaapverdiëCuraçaoC" + - "hristmaseilandCyprusTsjechiëDuitslandDiego GarciaDjiboutiDenemarkenDomin" + - "icaDominicaanse RepubliekAlgerijeCeuta en MelillaEcuadorEstlandEgypteWes" + - "telijke SaharaEritreaSpanjeEthiopiëEuropese UnieFinlandFijiFalklandeilan" + - "denMicronesiaFaeröerFrankrijkGabonVerenigd KoninkrijkGrenadaGeorgiëFrans" + - "-GuyanaGuernseyGhanaGibraltarGroenlandGambiaGuineeGuadeloupeEquatoriaal-" + - "GuineaGriekenlandZuid-Georgia en Zuidelijke SandwicheilandenGuatemalaGua" + - "mGuinee-BissauGuyanaHongkong SAR van ChinaHeard en McDonaldeilandenHondu" + - "rasKroatiëHaïtiHongarijeCanarische EilandenIndonesiëIerlandIsraëlIsle of" + - " ManIndiaBritse Gebieden in de Indische OceaanIrakIranIJslandItaliëJerse" + - "yJamaicaJordaniëJapanKeniaKirgiziëCambodjaKiribatiComorenSaint Kitts en " + - "NevisNoord-KoreaZuid-KoreaKoeweitCaymaneilandenKazachstanLaosLibanonSain" + - "t LuciaLiechtensteinSri LankaLiberiaLesothoLitouwenLuxemburgLetlandLibië" + - "MarokkoMonacoMoldaviëMontenegroSaint-MartinMadagaskarMarshalleilandenMac" + - "edoniëMaliMyanmar (Birma)MongoliëMacau SAR van ChinaNoordelijke Marianen" + - "MartiniqueMauritaniëMontserratMaltaMauritiusMaldivenMalawiMexicoMaleisië" + - "MozambiqueNamibiëNieuw-CaledoniëNigerNorfolkNigeriaNicaraguaNederlandNoo" + - "rwegenNepalNauruNiueNieuw-ZeelandOmanPanamaPeruFrans-PolynesiëPapoea-Nie" + - "uw-GuineaFilipijnenPakistanPolenSaint-Pierre en MiquelonPitcairneilanden" + - "Puerto RicoPalestijnse gebiedenPortugalPalauParaguayQataroverig OceaniëR" + - "éunionRoemeniëServiëRuslandRwandaSaoedi-ArabiëSalomonseilandenSeychelle" + - "nSoedanZwedenSingaporeSint-HelenaSloveniëSpitsbergen en Jan MayenSlowaki" + - "jeSierra LeoneSan MarinoSenegalSomaliëSurinameZuid-SoedanSao Tomé en Pri" + - "ncipeEl SalvadorSint-MaartenSyriëSwazilandTristan da CunhaTurks- en Caic" + - "oseilandenTsjaadFranse Zuidelijke GebiedenTogoThailandTadzjikistanTokela" + - "uOost-TimorTurkmenistanTunesiëTongaTurkijeTrinidad en TobagoTuvaluTaiwan" + - "TanzaniaOekraïneOegandaKleine afgelegen eilanden van de Verenigde Staten" + - "Verenigde StatenUruguayOezbekistanVaticaanstadSaint Vincent en de Grenad" + - "inesVenezuelaBritse MaagdeneilandenAmerikaanse MaagdeneilandenVietnamVan" + - "uatuWallis en FutunaSamoaKosovoJemenMayotteZuid-AfrikaZambiaZimbabweonbe" + - "kend gebiedwereldAfrikaNoord-AmerikaZuid-AmerikaOceaniëWest-AfrikaMidden" + - "-AmerikaOost-AfrikaNoord-AfrikaCentraal-AfrikaZuidelijk AfrikaAmerikaNoo" + - "rdelijk AmerikaCaribisch gebiedOost-AziëZuid-AziëZuidoost-AziëZuid-Europ" + - "aAustralaziëMelanesiëMicronesische regioPolynesiëAziëCentraal-AziëWest-A" + - "ziëEuropaOost-EuropaNoord-EuropaWest-EuropaLatijns-Amerika" - -// Size: 606 bytes, 291 elements -var nlRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0009, 0x0010, 0x002c, 0x0037, 0x0049, 0x0051, 0x0059, - 0x0061, 0x0075, 0x007b, 0x0085, 0x0090, 0x00a0, 0x00aa, 0x00b4, - 0x00b9, 0x00bf, 0x00cb, 0x00e1, 0x00e9, 0x00f3, 0x00fa, 0x0106, - 0x010f, 0x0116, 0x011d, 0x0122, 0x0133, 0x013a, 0x0140, 0x0147, - 0x015a, 0x0163, 0x016d, 0x0173, 0x017f, 0x0187, 0x0192, 0x0198, - 0x019e, 0x01ab, 0x01b9, 0x01d6, 0x01e7, 0x01f2, 0x01fb, 0x0207, - 0x020c, 0x0214, 0x0219, 0x0221, 0x022b, 0x0235, 0x0239, 0x0244, - 0x024c, 0x025b, 0x0261, 0x026a, 0x0273, 0x027f, 0x0287, 0x0291, - // Entry 40 - 7F - 0x0299, 0x02af, 0x02b7, 0x02c7, 0x02ce, 0x02d5, 0x02db, 0x02ec, - 0x02f3, 0x02f9, 0x0302, 0x030f, 0x0316, 0x031a, 0x032a, 0x0334, - 0x033c, 0x0345, 0x034a, 0x035d, 0x0364, 0x036c, 0x0378, 0x0380, - 0x0385, 0x038e, 0x0397, 0x039d, 0x03a3, 0x03ad, 0x03bf, 0x03ca, - 0x03f5, 0x03fe, 0x0402, 0x040f, 0x0415, 0x042b, 0x0444, 0x044c, - 0x0454, 0x045a, 0x0463, 0x0476, 0x0480, 0x0487, 0x048e, 0x0499, - 0x049e, 0x04c3, 0x04c7, 0x04cb, 0x04d2, 0x04d9, 0x04df, 0x04e6, - 0x04ef, 0x04f4, 0x04f9, 0x0502, 0x050a, 0x0512, 0x0519, 0x052d, - // Entry 80 - BF - 0x0538, 0x0542, 0x0549, 0x0557, 0x0561, 0x0565, 0x056c, 0x0577, - 0x0584, 0x058d, 0x0594, 0x059b, 0x05a3, 0x05ac, 0x05b3, 0x05b9, - 0x05c0, 0x05c6, 0x05cf, 0x05d9, 0x05e5, 0x05ef, 0x05ff, 0x0609, - 0x060d, 0x061c, 0x0625, 0x0638, 0x064c, 0x0656, 0x0661, 0x066b, - 0x0670, 0x0679, 0x0681, 0x0687, 0x068d, 0x0696, 0x06a0, 0x06a8, - 0x06b8, 0x06bd, 0x06c4, 0x06cb, 0x06d4, 0x06dd, 0x06e6, 0x06eb, - 0x06f0, 0x06f4, 0x0701, 0x0705, 0x070b, 0x070f, 0x071f, 0x0732, - 0x073c, 0x0744, 0x0749, 0x0761, 0x0771, 0x077c, 0x0790, 0x0798, - // Entry C0 - FF - 0x079d, 0x07a5, 0x07aa, 0x07b9, 0x07c1, 0x07ca, 0x07d1, 0x07d8, - 0x07de, 0x07ec, 0x07fc, 0x0806, 0x080c, 0x0812, 0x081b, 0x0826, - 0x082f, 0x0847, 0x0850, 0x085c, 0x0866, 0x086d, 0x0875, 0x087d, - 0x0888, 0x089d, 0x08a8, 0x08b4, 0x08ba, 0x08c3, 0x08d3, 0x08eb, - 0x08f1, 0x090b, 0x090f, 0x0917, 0x0923, 0x092a, 0x0934, 0x0940, - 0x0948, 0x094d, 0x0954, 0x0966, 0x096c, 0x0972, 0x097a, 0x0983, - 0x098a, 0x09bb, 0x09cb, 0x09d2, 0x09dd, 0x09e9, 0x0a07, 0x0a10, - 0x0a26, 0x0a41, 0x0a48, 0x0a4f, 0x0a5f, 0x0a64, 0x0a6a, 0x0a6f, - // Entry 100 - 13F - 0x0a76, 0x0a81, 0x0a87, 0x0a8f, 0x0a9e, 0x0aa4, 0x0aaa, 0x0ab7, - 0x0ac3, 0x0acb, 0x0ad6, 0x0ae4, 0x0aef, 0x0afb, 0x0b0a, 0x0b1a, - 0x0b21, 0x0b33, 0x0b43, 0x0b4d, 0x0b57, 0x0b65, 0x0b70, 0x0b7c, - 0x0b86, 0x0b99, 0x0ba3, 0x0ba8, 0x0bb6, 0x0bc0, 0x0bc6, 0x0bd1, - 0x0bdd, 0x0be8, 0x0bf7, -} - -// Size: 2836 bytes -var noRegionStr string = "" + - "AscensionAndorraDe forente arabiske emiraterAfghanistanAntigua og Barbud" + - "aAnguillaAlbaniaArmeniaDe nederlandske antillerAngolaAntarktisArgentinaA" + - "merikansk SamoaØsterrikeAustraliaArubaÃ…landAserbajdsjanBosnia-Hercegovin" + - "aBarbadosBangladeshBelgiaBurkina FasoBulgariaBahrainBurundiBeninSaint-Ba" + - "rthélemyBermudaBruneiBoliviaKaribisk NederlandBrasilBahamasBhutanBouvetø" + - "yaBotswanaHviterusslandBelizeCanadaKokosøyeneKongo-KinshasaDen sentralaf" + - "rikanske republikkKongo-BrazzavilleSveitsElfenbenskystenCookøyeneChileKa" + - "merunKinaColombiaClippertonøyaCosta RicaCubaKapp VerdeCuraçaoChristmasøy" + - "aKyprosTsjekkiaTysklandDiego GarciaDjiboutiDanmarkDominicaDen dominikans" + - "ke republikkAlgerieCeuta og MelillaEcuadorEstlandEgyptVest-SaharaEritrea" + - "SpaniaEtiopiaEUFinlandFijiFalklandsøyeneMikronesiaføderasjonenFærøyeneFr" + - "ankrikeGabonStorbritanniaGrenadaGeorgiaFransk GuyanaGuernseyGhanaGibralt" + - "arGrønlandGambiaGuineaGuadeloupeEkvatorial-GuineaHellasSør-Georgia og Sø" + - "r-SandwichøyeneGuatemalaGuamGuinea-BissauGuyanaHongkong S.A.R. KinaHeard" + - "- og McDonaldøyeneHondurasKroatiaHaitiUngarnKanariøyeneIndonesiaIrlandIs" + - "raelManIndiaDet britiske territoriet i IndiahavetIrakIranIslandItaliaJer" + - "seyJamaicaJordanJapanKenyaKirgisistanKambodsjaKiribatiKomoreneSaint Kitt" + - "s og NevisNord-KoreaSør-KoreaKuwaitCaymanøyeneKasakhstanLaosLibanonSt. L" + - "uciaLiechtensteinSri LankaLiberiaLesothoLitauenLuxemburgLatviaLibyaMarok" + - "koMonacoMoldovaMontenegroSaint-MartinMadagaskarMarshalløyeneMakedoniaMal" + - "iMyanmar (Burma)MongoliaMacao S.A.R. KinaNord-MarianeneMartiniqueMaurita" + - "niaMontserratMaltaMauritiusMaldiveneMalawiMexicoMalaysiaMosambikNamibiaN" + - "y-CaledoniaNigerNorfolkøyaNigeriaNicaraguaNederlandNorgeNepalNauruNiueNe" + - "w ZealandOmanPanamaPeruFransk PolynesiaPapua Ny-GuineaFilippinenePakista" + - "nPolenSt. Pierre og MiquelonPitcairnPuerto RicoDet palestinske omrÃ¥detPo" + - "rtugalPalauParaguayQatarytre OseaniaRéunionRomaniaSerbiaRusslandRwandaSa" + - "udi-ArabiaSalomonøyeneSeychelleneSudanSverigeSingaporeSt. HelenaSlovenia" + - "Svalbard og Jan MayenSlovakiaSierra LeoneSan MarinoSenegalSomaliaSurinam" + - "Sør-SudanSão Tomé og PríncipeEl SalvadorSint MaartenSyriaSwazilandTrista" + - "n da CunhaTurks- og CaicosøyeneTsjadDe franske sørterritorierTogoThailan" + - "dTadsjikistanTokelauØst-TimorTurkmenistanTunisiaTongaTyrkiaTrinidad og T" + - "obagoTuvaluTaiwanTanzaniaUkrainaUgandaUSAs ytre øyerUSAUruguayUsbekistan" + - "VatikanstatenSt. Vincent og GrenadineneVenezuelaDe britiske jomfruøyeneD" + - "e amerikanske jomfruøyeneVietnamVanuatuWallis og FutunaSamoaKosovoJemenM" + - "ayotteSør-AfrikaZambiaZimbabweukjent omrÃ¥deverdenAfrikaNord-AmerikaSør-A" + - "merikaOseaniaVest-AfrikaMellom-AmerikaØst-AfrikaNord-AfrikaSentral-Afrik" + - "aSørlige AfrikaAmerikaNordlige AmerikaKaribiaØst-AsiaSør-AsiaSørøst-Asia" + - "Sør-EuropaAustralasiaMelanesiaMikronesiaPolynesiaAsiaSentral-AsiaVest-As" + - "iaEuropaØst-EuropaNord-EuropaVest-EuropaLatin-Amerika" - -// Size: 606 bytes, 291 elements -var noRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0009, 0x0010, 0x002c, 0x0037, 0x0049, 0x0051, 0x0058, - 0x005f, 0x0077, 0x007d, 0x0086, 0x008f, 0x009f, 0x00a9, 0x00b2, - 0x00b7, 0x00bd, 0x00c9, 0x00db, 0x00e3, 0x00ed, 0x00f3, 0x00ff, - 0x0107, 0x010e, 0x0115, 0x011a, 0x012b, 0x0132, 0x0138, 0x013f, - 0x0151, 0x0157, 0x015e, 0x0164, 0x016e, 0x0176, 0x0183, 0x0189, - 0x018f, 0x019a, 0x01a8, 0x01c7, 0x01d8, 0x01de, 0x01ed, 0x01f7, - 0x01fc, 0x0203, 0x0207, 0x020f, 0x021d, 0x0227, 0x022b, 0x0235, - 0x023d, 0x024a, 0x0250, 0x0258, 0x0260, 0x026c, 0x0274, 0x027b, - // Entry 40 - 7F - 0x0283, 0x029d, 0x02a4, 0x02b4, 0x02bb, 0x02c2, 0x02c7, 0x02d2, - 0x02d9, 0x02df, 0x02e6, 0x02e8, 0x02ef, 0x02f3, 0x0302, 0x0319, - 0x0323, 0x032c, 0x0331, 0x033e, 0x0345, 0x034c, 0x0359, 0x0361, - 0x0366, 0x036f, 0x0378, 0x037e, 0x0384, 0x038e, 0x039f, 0x03a5, - 0x03c8, 0x03d1, 0x03d5, 0x03e2, 0x03e8, 0x03fc, 0x0414, 0x041c, - 0x0423, 0x0428, 0x042e, 0x043a, 0x0443, 0x0449, 0x044f, 0x0452, - 0x0457, 0x047c, 0x0480, 0x0484, 0x048a, 0x0490, 0x0496, 0x049d, - 0x04a3, 0x04a8, 0x04ad, 0x04b8, 0x04c1, 0x04c9, 0x04d1, 0x04e5, - // Entry 80 - BF - 0x04ef, 0x04f9, 0x04ff, 0x050b, 0x0515, 0x0519, 0x0520, 0x0529, - 0x0536, 0x053f, 0x0546, 0x054d, 0x0554, 0x055d, 0x0563, 0x0568, - 0x056f, 0x0575, 0x057c, 0x0586, 0x0592, 0x059c, 0x05aa, 0x05b3, - 0x05b7, 0x05c6, 0x05ce, 0x05df, 0x05ed, 0x05f7, 0x0601, 0x060b, - 0x0610, 0x0619, 0x0622, 0x0628, 0x062e, 0x0636, 0x063e, 0x0645, - 0x0651, 0x0656, 0x0661, 0x0668, 0x0671, 0x067a, 0x067f, 0x0684, - 0x0689, 0x068d, 0x0698, 0x069c, 0x06a2, 0x06a6, 0x06b6, 0x06c5, - 0x06d0, 0x06d8, 0x06dd, 0x06f3, 0x06fb, 0x0706, 0x071e, 0x0726, - // Entry C0 - FF - 0x072b, 0x0733, 0x0738, 0x0744, 0x074c, 0x0753, 0x0759, 0x0761, - 0x0767, 0x0773, 0x0780, 0x078b, 0x0790, 0x0797, 0x07a0, 0x07aa, - 0x07b2, 0x07c7, 0x07cf, 0x07db, 0x07e5, 0x07ec, 0x07f3, 0x07fa, - 0x0804, 0x081b, 0x0826, 0x0832, 0x0837, 0x0840, 0x0850, 0x0866, - 0x086b, 0x0885, 0x0889, 0x0891, 0x089d, 0x08a4, 0x08ae, 0x08ba, - 0x08c1, 0x08c6, 0x08cc, 0x08de, 0x08e4, 0x08ea, 0x08f2, 0x08f9, - 0x08ff, 0x090e, 0x0911, 0x0918, 0x0922, 0x092f, 0x0949, 0x0952, - 0x096a, 0x0985, 0x098c, 0x0993, 0x09a3, 0x09a8, 0x09ae, 0x09b3, - // Entry 100 - 13F - 0x09ba, 0x09c5, 0x09cb, 0x09d3, 0x09e1, 0x09e7, 0x09ed, 0x09f9, - 0x0a05, 0x0a0c, 0x0a17, 0x0a25, 0x0a30, 0x0a3b, 0x0a49, 0x0a58, - 0x0a5f, 0x0a6f, 0x0a76, 0x0a7f, 0x0a88, 0x0a95, 0x0aa0, 0x0aab, - 0x0ab4, 0x0abe, 0x0ac7, 0x0acb, 0x0ad7, 0x0ae0, 0x0ae6, 0x0af1, - 0x0afc, 0x0b07, 0x0b14, -} - -// Size: 7688 bytes -var paRegionStr string = "" + - "ਅਸੈਂਸ਼ਨ ਟਾਪੂਅੰਡੋਰਾਸੰਯà©à¨•à¨¤ ਅਰਬ ਅਮੀਰਾਤਅਫ਼ਗਾਨਿਸਤਾਨà¨à¨‚ਟੀਗà©à¨† ਅਤੇ ਬਾਰਬà©à¨¡à¨¾à¨…ੰਗà©à¨‡à¨²à¨¾" + - "ਅਲਬਾਨੀਆਅਰਮੀਨੀਆਅੰਗੋਲਾਅੰਟਾਰਕਟਿਕਾਅਰਜਨਟੀਨਾਅਮੈਰੀਕਨ ਸਮੋਆਆਸਟਰੀਆਆਸਟà©à¨°à©‡à¨²à©€à¨†à¨…ਰੂਬਾ" + - "ਅਲੈਂਡ ਟਾਪੂਅਜ਼ਰਬਾਈਜਾਨਬੋਸਨੀਆ ਅਤੇ ਹਰਜ਼ੇਗੋਵੀਨਾਬਾਰਬਾਡੋਸਬੰਗਲਾਦੇਸ਼ਬੈਲਜੀਅਮਬà©à¨°à¨•" + - "ੀਨਾ ਫ਼ਾਸੋਬà©à¨²à¨—ਾਰੀਆਬਹਿਰੀਨਬà©à¨°à©à©°à¨¡à©€à¨¬à©‡à¨¨à¨¿à¨¨à¨¸à©‡à¨‚ਟ ਬਾਰਥੇਲੇਮੀਬਰਮੂਡਾਬਰੂਨੇਈਬੋਲੀਵੀਆਕੈ" + - "ਰੇਬੀਆਈ ਨੀਦਰਲੈਂਡਬà©à¨°à¨¾à¨œà¨¼à©€à¨²à¨¬à¨¹à¨¾à¨®à¨¾à¨¸à¨­à©‚ਟਾਨਬੌਵੇਟ ਟਾਪੂਬੋਟਸਵਾਨਾਬੇਲਾਰੂਸਬੇਲੀਜ਼ਕੈਨੇਡ" + - "ਾਕੋਕੋਸ (ਕੀਲਿੰਗ) ਟਾਪੂਕਾਂਗੋ - ਕਿੰਸ਼ਾਸਾਕੇਂਦਰੀ ਅਫ਼ਰੀਕੀ ਗਣਰਾਜਕਾਂਗੋ - ਬà©à¨°à¨¾à¨œà¨¼" + - "ਾਵਿਲੇਸਵਿਟਜ਼ਰਲੈਂਡਕੋਟ ਡੀਵੋਆਰਕà©à©±à¨• ਟਾਪੂਚਿਲੀਕੈਮਰੂਨਚੀਨਕੋਲੰਬੀਆਕਲਿੱਪਰਟਨ ਟਾਪੂਕੋ" + - "ਸਟਾ ਰੀਕਾਕਿਊਬਾਕੇਪ ਵਰਡੇਕà©à¨°à¨¾à¨•à¨¾à¨“ਕà©à¨°à¨¿à¨¸à¨®à¨¿à¨¸ ਟਾਪੂਸਾਇਪà©à¨°à¨¸à¨šà©ˆà¨• ਗਣਰਾਜਜਰਮਨੀਡੀਇਗੋ ਗਾ" + - "ਰਸੀਆਜ਼ੀਬੂਤੀਡੈਨਮਾਰਕਡੋਮੀਨਿਕਾਡੋਮੀਨਿਕਾਈ ਗਣਰਾਜਅਲਜੀਰੀਆਸਿਓਟਾ ਅਤੇ ਮੇਲਿੱਲਾਇਕਵੇਡ" + - "ੋਰਇਸਟੋਨੀਆਮਿਸਰਪੱਛਮੀ ਸਹਾਰਾਇਰੀਟà©à¨°à¨¿à¨†à¨¸à¨ªà©‡à¨¨à¨‡à¨¥à©‹à¨ªà©€à¨†à¨¯à©‚ਰਪੀ ਯੂਨੀਅਨਫਿਨਲੈਂਡਫ਼ਿਜੀਫ਼ਾਕ" + - "ਲੈਂਡ ਟਾਪੂਮਾਇਕà©à¨°à©‹à¨¨à©‡à¨¸à¨¼à©€à¨†à¨«à©ˆà¨°à©‹ ਟਾਪੂਫ਼ਰਾਂਸਗਬੋਨਯੂਨਾਈਟਡ ਕਿੰਗਡਮਗà©à¨°à©‡à¨¨à¨¾à¨¡à¨¾à¨œà¨¾à¨°à¨œà©€à¨†à¨«" + - "਼ਰੈਂਚ ਗà©à¨†à¨¨à¨¾à¨—ਰਨਜੀਘਾਨਾਜਿਬਰਾਲਟਰਗà©à¨°à©€à¨¨à¨²à©ˆà¨‚ਡਗੈਂਬੀਆਗਿਨੀਗà©à¨†à¨¡à©‡à¨²à©‹à¨ªà¨­à©‚-ਖੰਡੀ ਗਿਨੀਗà©à¨°" + - "ੀਸਦੱਖਣੀ ਜਾਰਜੀਆ ਅਤੇ ਦੱਖਣੀ ਸੈਂਡਵਿਚ ਟਾਪੂਗà©à¨†à¨Ÿà©‡à¨®à¨¾à¨²à¨¾à¨—à©à¨†à¨®à¨—ਿਨੀ-ਬਿਸਾਉਗà©à¨¯à¨¾à¨¨à¨¾à¨¹à¨¾à¨‚ਗ" + - " ਕਾਂਗ à¨à¨¸à¨à¨†à¨° ਚੀਨਹਰਡ ਤੇ ਮੈਕਡੋਨਾਲਡ ਟਾਪੂਹੋਂਡà©à¨°à¨¸à¨•à¨°à©‹à¨à¨¸à¨¼à©€à¨†à¨¹à©ˆà¨¤à©€à¨¹à©°à¨—ਰੀਕੇਨਾਰੀ ਟਾਪੂਇ" + - "ੰਡੋਨੇਸ਼ੀਆਆਇਰਲੈਂਡਇਜ਼ਰਾਈਲਆਇਲ ਆਫ ਮੈਨਭਾਰਤਬਰਤਾਨਵੀ ਹਿੰਦ ਮਹਾਂਸਾਗਰ ਪà©à¨°à¨¦à©‡à¨¸à¨¼à¨‡à¨°à¨¾à¨•" + - "ਈਰਾਨਆਈਸਲੈਂਡਇਟਲੀਜਰਸੀਜਮਾਇਕਾਜਾਰਡਨਜਪਾਨਕੀਨੀਆਕਿਰਗਿਜ਼ਸਤਾਨਕੰਬੋਡੀਆਕਿਰਬਾਤੀਕੋਮੋਰੋ" + - "ਸਸੈਂਟ ਕਿਟਸ à¨à¨‚ਡ ਨੇਵਿਸਉੱਤਰੀ ਕੋਰੀਆਦੱਖਣੀ ਕੋਰੀਆਕà©à¨µà©ˆà¨¤à¨•à©‡à¨®à©ˆà¨¨ ਟਾਪੂਕਜ਼ਾਖਸਤਾਨਲਾਓਸ" + - "ਲੈਬਨਾਨਸੇਂਟ ਲੂਸੀਆਲਿਚੇਂਸਟਾਇਨਸà©à¨°à©€ ਲੰਕਾਲਾਈਬੀਰੀਆਲੇਸੋਥੋਲਿਥà©à¨†à¨¨à©€à¨†à¨²à¨•à¨œà¨¼à¨®à¨¬à¨°à¨—ਲਾਟਵੀ" + - "ਆਲੀਬੀਆਮੋਰੱਕੋਮੋਨਾਕੋਮੋਲਡੋਵਾਮੋਂਟੇਨੇਗਰੋਸੇਂਟ ਮਾਰਟਿਨਮੈਡਾਗਾਸਕਰਮਾਰਸ਼ਲ ਟਾਪੂਮੈਕਡ" + - "ੋਨੀਆਮਾਲੀਮਿਆਂਮਾਰ (ਬਰਮਾ)ਮੰਗੋਲੀਆਮਕਾਉ à¨à¨¸à¨à¨†à¨° ਚੀਨਉੱਤਰੀ ਮਾਰੀਆਨਾ ਟਾਪੂਮਾਰਟੀਨਿਕਮ" + - "ੋਰਿਟਾਨੀਆਮੋਂਟਸੇਰਾਤਮਾਲਟਾਮੌਰਿਸ਼ਸਮਾਲਦੀਵਮਲਾਵੀਮੈਕਸੀਕੋਮਲੇਸ਼ੀਆਮੋਜ਼ਾਮਬੀਕਨਾਮੀਬੀਆ" + - "ਨਿਊ ਕੈਲੇਡੋਨੀਆਨਾਈਜਰਨੋਰਫੌਕ ਟਾਪੂਨਾਈਜੀਰੀਆਨਿਕਾਰਾਗà©à¨†à¨¨à©€à¨¦à¨°à¨²à©ˆà¨‚ਡਨਾਰਵੇਨੇਪਾਲਨਾਉਰੂਨ" + - "ਿਯੂਨਿਊਜ਼ੀਲੈਂਡਓਮਾਨਪਨਾਮਾਪੇਰੂਫਰੈਂਚ ਪੋਲੀਨੇਸ਼ੀਆਪਾਪੂਆ ਨਿਊ ਗਿਨੀਫਿਲੀਪੀਂਸਪਾਕਿਸਤ" + - "ਾਨਪੋਲੈਂਡਸੈਂਟ ਪੀਅਰੇ à¨à¨‚ਡ ਮਿਕੇਲਨਪਿਟਕੇਰਨ ਟਾਪੂਪਿਊਰਟੋ ਰਿਕੋਫਿਲੀਸਤੀਨੀ ਖੇਤਰਪà©à¨°à¨¤" + - "ਗਾਲਪਲਾਉਪੈਰਾਗਵੇਕਤਰਆਊਟਲਾਇੰਗ ਓਸ਼ੀਨੀਆਰਿਯੂਨੀਅਨਰੋਮਾਨੀਆਸਰਬੀਆਰੂਸਰਵਾਂਡਾਸਾਊਦੀ ਅਰ" + - "ਬਸੋਲੋਮਨ ਟਾਪੂਸੇਸ਼ਲਸਸੂਡਾਨਸਵੀਡਨਸਿੰਗਾਪà©à¨°à¨¸à©‡à¨‚ਟ ਹੇਲੇਨਾਸਲੋਵੇਨੀਆਸਵਾਲਬਰਡ ਅਤੇ ਜਾਨ" + - " ਮਾਯੇਨਸਲੋਵਾਕੀਆਸਿà¨à¨°à¨¾ ਲਿਓਨਸੈਨ ਮਰੀਨੋਸੇਨੇਗਲਸੋਮਾਲੀਆਸੂਰੀਨਾਮਦੱਖਣੀ ਸੂਡਾਨਸਾਓ ਟੋਮ " + - "ਅਤੇ ਪà©à¨°à¨¿à©°à¨¸à©€à¨ªà©‡à¨…ਲ ਸਲਵਾਡੋਰਸਿੰਟ ਮਾਰਟੀਨਸੀਰੀਆਸਵਾਜ਼ੀਲੈਂਡਟà©à¨°à¨¿à¨¸à¨Ÿà¨¾à¨¨ ਦਾ ਕà©à©°à¨¹à¨¾à¨Ÿà©à¨°à¨•" + - "ਸ ਅਤੇ ਕੈਕੋਸ ਟਾਪੂਚਾਡਫਰੈਂਚ ਦੱਖਣੀ ਪà©à¨°à¨¦à©‡à¨¸à¨¼à¨Ÿà©‹à¨—ੋਥਾਈਲੈਂਡਤਾਜਿਕਿਸਤਾਨਟੋਕੇਲਾਉਤਿਮੋ" + - "ਰ-ਲੇਸਤੇਤà©à¨°à¨•à¨®à©‡à¨¨à¨¿à¨¸à¨¤à¨¾à¨¨à¨Ÿà¨¿à¨Šà¨¨à©€à¨¸à¨¼à©€à¨†à¨Ÿà©Œà¨‚ਗਾਤà©à¨°à¨•à©€à¨Ÿà©à¨°à¨¿à¨¨à©€à¨¡à¨¾à¨¡ ਅਤੇ ਟੋਬਾਗੋਟà©à¨µà¨¾à¨²à©‚ਤਾਇਵਾਨ" + - "ਤਨਜ਼ਾਨੀਆਯੂਕਰੇਨਯੂਗਾਂਡਾਯੂ.à¨à¨¸. ਦੂਰ-ਦà©à¨°à¨¾à¨¡à©‡ ਟਾਪੂਸੰਯà©à¨•à¨¤ ਰਾਜਉਰੂਗਵੇਉਜ਼ਬੇਕਿਸਤਾਨ" + - "ਵੈਟੀਕਨ ਸਿਟੀਸੇਂਟ ਵਿਨਸੈਂਟ à¨à¨‚ਡ ਗà©à¨°à©‡à¨¨à¨¾à¨¡à©€à¨¨à¨¸à¨µà©‡à¨¨à©‡à¨œà¨¼à©‚à¨à¨²à¨¾à¨¬à©à¨°à¨¿à¨Ÿà¨¿à¨¸à¨¼ ਵਰਜਿਨ ਟਾਪੂਯੂ " + - "à¨à¨¸ ਵਰਜਿਨ ਟਾਪੂਵੀਅਤਨਾਮਵਾਨੂਆਟੂਵਾਲਿਸ ਅਤੇ ਫੂਟੂਨਾਸਾਮੋਆਕੋਸੋਵੋਯਮਨਮਾਯੋਟੀਦੱਖਣੀ ਅ" + - "ਫਰੀਕਾਜ਼ਾਮਬੀਆਜ਼ਿੰਬਾਬਵੇਅਣਪਛਾਤਾ ਖੇਤਰਸੰਸਾਰਅਫ਼ਰੀਕਾਉੱਤਰ ਅਮਰੀਕਾਦੱਖਣੀ ਅਮਰੀਕਾਓਸ" + - "਼ੇਨੀਆਪੱਛਮੀ ਅਫ਼ਰੀਕਾਕੇਂਦਰੀ ਅਮਰੀਕਾਪੂਰਬੀ ਅਫ਼ਰੀਕਾਉੱਤਰੀ ਅਫ਼ਰੀਕਾਮੱਧ ਅਫ਼ਰੀਕਾਦੱ" + - "ਖਣੀ ਅਫ਼ਰੀਕਾਅਮਰੀਕਾਉੱਤਰੀ ਅਮਰੀਕਾਕੈਰੇਬੀਆਈਪੂਰਬੀ à¨à¨¸à¨¼à©€à¨†à¨¦à©±à¨–ਣੀ à¨à¨¸à¨¼à©€à¨†à¨¦à©±à¨–ਣ-ਪੂਰਬੀ " + - "à¨à¨¸à¨¼à©€à¨†à¨¦à©±à¨–ਣੀ ਯੂਰਪਆਸਟਰੇਲੇਸ਼ੀਆਮੇਲਾਨੇਸ਼ੀਆਮਾਇਕà©à¨°à©‹à¨¨à©‡à¨¸à¨¼à©€à¨†à¨ˆ ਖੇਤਰਪੋਲੀਨੇਸ਼ੀਆà¨à¨¸à¨¼à©€à¨†" + - "ਕੇਂਦਰੀ à¨à¨¸à¨¼à©€à¨†à¨ªà©±à¨›à¨®à©€ à¨à¨¸à¨¼à©€à¨†à¨¯à©‚ਰਪਪੂਰਬੀ ਯੂਰਪਉੱਤਰੀ ਯੂਰਪਪੱਛਮੀ ਯੂਰਪਲਾਤੀਨੀ ਅਮਰੀਕਾ" - -// Size: 606 bytes, 291 elements -var paRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0022, 0x0034, 0x0063, 0x0084, 0x00b9, 0x00ce, 0x00e3, - 0x00f8, 0x00f8, 0x010a, 0x0128, 0x0140, 0x0162, 0x0174, 0x018f, - 0x019e, 0x01ba, 0x01d8, 0x0216, 0x022e, 0x0249, 0x025e, 0x0283, - 0x029b, 0x02ad, 0x02c2, 0x02d1, 0x02f9, 0x030b, 0x031d, 0x0332, - 0x0363, 0x037b, 0x038d, 0x039c, 0x03b8, 0x03d0, 0x03e5, 0x03f7, - 0x0409, 0x043a, 0x0464, 0x049c, 0x04cf, 0x04f0, 0x050c, 0x0525, - 0x0531, 0x0543, 0x054c, 0x0561, 0x0586, 0x05a2, 0x05b1, 0x05c7, - 0x05dc, 0x0601, 0x0616, 0x062f, 0x063e, 0x0660, 0x0675, 0x068a, - // Entry 40 - 7F - 0x06a2, 0x06cd, 0x06e2, 0x0711, 0x0726, 0x073b, 0x0747, 0x0766, - 0x077e, 0x078a, 0x079c, 0x07be, 0x07d3, 0x07e2, 0x0807, 0x082e, - 0x0847, 0x0859, 0x0865, 0x088d, 0x08a5, 0x08b7, 0x08d9, 0x08e8, - 0x08f4, 0x090c, 0x0927, 0x0939, 0x0945, 0x095d, 0x097d, 0x098c, - 0x09eb, 0x0a06, 0x0a12, 0x0a2e, 0x0a40, 0x0a73, 0x0aac, 0x0ac1, - 0x0ad9, 0x0ae5, 0x0af4, 0x0b13, 0x0b31, 0x0b46, 0x0b5b, 0x0b75, - 0x0b81, 0x0bd2, 0x0bde, 0x0bea, 0x0bff, 0x0c0b, 0x0c17, 0x0c29, - 0x0c38, 0x0c44, 0x0c53, 0x0c74, 0x0c89, 0x0c9e, 0x0cb3, 0x0ce6, - // Entry 80 - BF - 0x0d05, 0x0d24, 0x0d33, 0x0d4f, 0x0d6a, 0x0d76, 0x0d88, 0x0da4, - 0x0dc2, 0x0ddb, 0x0df3, 0x0e05, 0x0e1d, 0x0e35, 0x0e47, 0x0e56, - 0x0e68, 0x0e7a, 0x0e8f, 0x0ead, 0x0ecc, 0x0ee7, 0x0f06, 0x0f1e, - 0x0f2a, 0x0f4e, 0x0f63, 0x0f89, 0x0fbb, 0x0fd3, 0x0fee, 0x1009, - 0x1018, 0x102d, 0x103f, 0x104e, 0x1063, 0x1078, 0x1093, 0x10a8, - 0x10cd, 0x10dc, 0x10fb, 0x1113, 0x112e, 0x1146, 0x1155, 0x1164, - 0x1173, 0x117f, 0x119d, 0x11a9, 0x11b8, 0x11c4, 0x11f2, 0x1218, - 0x1230, 0x1248, 0x125a, 0x1293, 0x12b5, 0x12d4, 0x12fc, 0x1311, - // Entry C0 - FF - 0x131d, 0x1332, 0x133b, 0x1369, 0x1381, 0x1396, 0x13a5, 0x13ae, - 0x13c0, 0x13d9, 0x13f8, 0x140a, 0x1419, 0x1428, 0x1440, 0x145f, - 0x1477, 0x14b0, 0x14c8, 0x14e4, 0x14fd, 0x150f, 0x1524, 0x1539, - 0x1558, 0x1591, 0x15ad, 0x15cc, 0x15db, 0x15f9, 0x1628, 0x165e, - 0x1667, 0x169c, 0x16a8, 0x16bd, 0x16db, 0x16f0, 0x170f, 0x1733, - 0x174e, 0x175d, 0x176c, 0x17a4, 0x17b6, 0x17c8, 0x17e0, 0x17f2, - 0x1807, 0x183f, 0x185b, 0x186d, 0x188e, 0x18ad, 0x18f8, 0x1916, - 0x194b, 0x1975, 0x198a, 0x199f, 0x19cb, 0x19da, 0x19ec, 0x19f5, - // Entry 100 - 13F - 0x1a07, 0x1a29, 0x1a3e, 0x1a59, 0x1a7b, 0x1a8a, 0x1a9f, 0x1abe, - 0x1ae0, 0x1af5, 0x1b1a, 0x1b3f, 0x1b64, 0x1b89, 0x1ba8, 0x1bcd, - 0x1bdf, 0x1c01, 0x1c19, 0x1c38, 0x1c57, 0x1c83, 0x1c9f, 0x1cc0, - 0x1cde, 0x1d15, 0x1d33, 0x1d42, 0x1d64, 0x1d83, 0x1d8f, 0x1dab, - 0x1dc7, 0x1de3, 0x1e08, -} - -// Size: 3161 bytes -var plRegionStr string = "" + - "Wyspa WniebowstÄ…pieniaAndoraZjednoczone Emiraty ArabskieAfganistanAntigu" + - "a i BarbudaAnguillaAlbaniaArmeniaAntyle HolenderskieAngolaAntarktykaArge" + - "ntynaSamoa AmerykaÅ„skieAustriaAustraliaArubaWyspy AlandzkieAzerbejdżanBo" + - "Å›nia i HercegowinaBarbadosBangladeszBelgiaBurkina FasoBuÅ‚gariaBahrajnBu" + - "rundiBeninSaint-BarthélemyBermudyBrunei DarussalamBoliwiaNiderlandy Kara" + - "ibskieBrazyliaBahamyBhutanWyspa BouvetaBotswanaBiaÅ‚oruÅ›BelizeKanadaWyspy" + - " KokosoweDemokratyczna Republika KongaRepublika ÅšrodkowoafrykaÅ„skaKongoS" + - "zwajcariaCôte d’IvoireWyspy CookaChileKamerunChinyKolumbiaClippertonKost" + - "arykaKubaRepublika Zielonego PrzylÄ…dkaCuraçaoWyspa Bożego NarodzeniaCypr" + - "CzechyNiemcyDiego GarciaDżibutiDaniaDominikaDominikanaAlgieriaCeuta i Me" + - "lillaEkwadorEstoniaEgiptSahara ZachodniaErytreaHiszpaniaEtiopiaUnia Euro" + - "pejskaFinlandiaFidżiFalklandyMikronezjaWyspy OwczeFrancjaGabonWielka Bry" + - "taniaGrenadaGruzjaGujana FrancuskaGuernseyGhanaGibraltarGrenlandiaGambia" + - "GwineaGwadelupaGwinea RównikowaGrecjaGeorgia PoÅ‚udniowa i Sandwich PoÅ‚ud" + - "niowyGwatemalaGuamGwinea BissauGujanaSRA Hongkong (Chiny)Wyspy Heard i M" + - "cDonaldaHondurasChorwacjaHaitiWÄ™gryWyspy KanaryjskieIndonezjaIrlandiaIzr" + - "aelWyspa ManIndieBrytyjskie Terytorium Oceanu IndyjskiegoIrakIranIslandi" + - "aWÅ‚ochyJerseyJamajkaJordaniaJaponiaKeniaKirgistanKambodżaKiribatiKomoryS" + - "aint Kitts i NevisKorea PółnocnaKorea PoÅ‚udniowaKuwejtKajmanyKazachstanL" + - "aosLibanSaint LuciaLiechtensteinSri LankaLiberiaLesothoLitwaLuksemburgÅo" + - "twaLibiaMarokoMonakoMoÅ‚dawiaCzarnogóraSaint-MartinMadagaskarWyspy Marsha" + - "llaMacedoniaMaliMjanma (Birma)MongoliaSRA Makau (Chiny)Mariany PółnocneM" + - "artynikaMauretaniaMontserratMaltaMauritiusMalediwyMalawiMeksykMalezjaMoz" + - "ambikNamibiaNowa KaledoniaNigerNorfolkNigeriaNikaraguaHolandiaNorwegiaNe" + - "palNauruNiueNowa ZelandiaOmanPanamaPeruPolinezja FrancuskaPapua-Nowa Gwi" + - "neaFilipinyPakistanPolskaSaint-Pierre i MiquelonPitcairnPortorykoTerytor" + - "ia PalestyÅ„skiePortugaliaPalauParagwajKatarOceania inneReunionRumuniaSer" + - "biaRosjaRwandaArabia SaudyjskaWyspy SalomonaSeszeleSudanSzwecjaSingapurW" + - "yspa ÅšwiÄ™tej HelenySÅ‚oweniaSvalbard i Jan MayenSÅ‚owacjaSierra LeoneSan M" + - "arinoSenegalSomaliaSurinamSudan PoÅ‚udniowyWyspy ÅšwiÄ™tego Tomasza i Książ" + - "Ä™caSalwadorSint MaartenSyriaSuaziTristan da CunhaTurks i CaicosCzadFran" + - "cuskie Terytoria PoÅ‚udniowe i AntarktyczneTogoTajlandiaTadżykistanTokela" + - "uTimor WschodniTurkmenistanTunezjaTongaTurcjaTrynidad i TobagoTuvaluTajw" + - "anTanzaniaUkrainaUgandaDalekie Wyspy Mniejsze Stanów ZjednoczonychStany " + - "ZjednoczoneUrugwajUzbekistanWatykanSaint Vincent i GrenadynyWenezuelaBry" + - "tyjskie Wyspy DziewiczeWyspy Dziewicze Stanów ZjednoczonychWietnamVanuat" + - "uWallis i FutunaSamoaKosowoJemenMajottaRepublika PoÅ‚udniowej AfrykiZambi" + - "aZimbabweNieznany regionÅ›wiatAfrykaAmeryka PółnocnaAmeryka PoÅ‚udniowaOce" + - "aniaAfryka ZachodniaAmeryka ÅšrodkowaAfryka WschodniaAfryka PółnocnaAfryk" + - "a ÅšrodkowaAfryka PoÅ‚udniowaAmerykaAmeryka Północna (USA, Kanada)KaraibyA" + - "zja WschodniaAzja PoÅ‚udniowaAzja PoÅ‚udniowo-WschodniaEuropa PoÅ‚udniowaAu" + - "stralazjaMelanezjaRegion MikronezjiPolinezjaAzjaAzja ÅšrodkowaAzja Zachod" + - "niaEuropaEuropa WschodniaEuropa PółnocnaEuropa ZachodniaAmeryka ÅaciÅ„ska" - -// Size: 606 bytes, 291 elements -var plRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0017, 0x001d, 0x0039, 0x0043, 0x0054, 0x005c, 0x0063, - 0x006a, 0x007d, 0x0083, 0x008d, 0x0096, 0x00a9, 0x00b0, 0x00b9, - 0x00be, 0x00cd, 0x00d9, 0x00ee, 0x00f6, 0x0100, 0x0106, 0x0112, - 0x011b, 0x0122, 0x0129, 0x012e, 0x013f, 0x0146, 0x0157, 0x015e, - 0x0173, 0x017b, 0x0181, 0x0187, 0x0194, 0x019c, 0x01a6, 0x01ac, - 0x01b2, 0x01c0, 0x01dd, 0x01fb, 0x0200, 0x020a, 0x021a, 0x0225, - 0x022a, 0x0231, 0x0236, 0x023e, 0x0248, 0x0251, 0x0255, 0x0273, - 0x027b, 0x0293, 0x0297, 0x029d, 0x02a3, 0x02af, 0x02b7, 0x02bc, - // Entry 40 - 7F - 0x02c4, 0x02ce, 0x02d6, 0x02e5, 0x02ec, 0x02f3, 0x02f8, 0x0308, - 0x030f, 0x0318, 0x031f, 0x032e, 0x0337, 0x033d, 0x0346, 0x0350, - 0x035b, 0x0362, 0x0367, 0x0376, 0x037d, 0x0383, 0x0393, 0x039b, - 0x03a0, 0x03a9, 0x03b3, 0x03b9, 0x03bf, 0x03c8, 0x03d9, 0x03df, - 0x0409, 0x0412, 0x0416, 0x0423, 0x0429, 0x043d, 0x0454, 0x045c, - 0x0465, 0x046a, 0x0470, 0x0481, 0x048a, 0x0492, 0x0498, 0x04a1, - 0x04a6, 0x04ce, 0x04d2, 0x04d6, 0x04de, 0x04e5, 0x04eb, 0x04f2, - 0x04fa, 0x0501, 0x0506, 0x050f, 0x0518, 0x0520, 0x0526, 0x0539, - // Entry 80 - BF - 0x0549, 0x055a, 0x0560, 0x0567, 0x0571, 0x0575, 0x057a, 0x0585, - 0x0592, 0x059b, 0x05a2, 0x05a9, 0x05ae, 0x05b8, 0x05be, 0x05c3, - 0x05c9, 0x05cf, 0x05d8, 0x05e3, 0x05ef, 0x05f9, 0x0608, 0x0611, - 0x0615, 0x0623, 0x062b, 0x063c, 0x064e, 0x0657, 0x0661, 0x066b, - 0x0670, 0x0679, 0x0681, 0x0687, 0x068d, 0x0694, 0x069c, 0x06a3, - 0x06b1, 0x06b6, 0x06bd, 0x06c4, 0x06cd, 0x06d5, 0x06dd, 0x06e2, - 0x06e7, 0x06eb, 0x06f8, 0x06fc, 0x0702, 0x0706, 0x0719, 0x072a, - 0x0732, 0x073a, 0x0740, 0x0757, 0x075f, 0x0768, 0x077f, 0x0789, - // Entry C0 - FF - 0x078e, 0x0796, 0x079b, 0x07a7, 0x07ae, 0x07b5, 0x07bb, 0x07c0, - 0x07c6, 0x07d6, 0x07e4, 0x07eb, 0x07f0, 0x07f7, 0x07ff, 0x0815, - 0x081e, 0x0832, 0x083b, 0x0847, 0x0851, 0x0858, 0x085f, 0x0866, - 0x0877, 0x089d, 0x08a5, 0x08b1, 0x08b6, 0x08bb, 0x08cb, 0x08d9, - 0x08dd, 0x090c, 0x0910, 0x0919, 0x0925, 0x092c, 0x093a, 0x0946, - 0x094d, 0x0952, 0x0958, 0x0969, 0x096f, 0x0975, 0x097d, 0x0984, - 0x098a, 0x09b6, 0x09c7, 0x09ce, 0x09d8, 0x09df, 0x09f8, 0x0a01, - 0x0a1b, 0x0a40, 0x0a47, 0x0a4e, 0x0a5d, 0x0a62, 0x0a68, 0x0a6d, - // Entry 100 - 13F - 0x0a74, 0x0a91, 0x0a97, 0x0a9f, 0x0aae, 0x0ab4, 0x0aba, 0x0acc, - 0x0adf, 0x0ae6, 0x0af6, 0x0b07, 0x0b17, 0x0b28, 0x0b38, 0x0b4a, - 0x0b51, 0x0b71, 0x0b78, 0x0b86, 0x0b96, 0x0bb0, 0x0bc2, 0x0bcd, - 0x0bd6, 0x0be7, 0x0bf0, 0x0bf4, 0x0c02, 0x0c10, 0x0c16, 0x0c26, - 0x0c37, 0x0c47, 0x0c59, -} - -// Size: 3176 bytes -var ptRegionStr string = "" + - "Ilha de AscensãoAndorraEmirados Ãrabes UnidosAfeganistãoAntígua e Barbud" + - "aAnguillaAlbâniaArmêniaAntilhas HolandesasAngolaAntártidaArgentinaSamoa " + - "AmericanaÃustriaAustráliaArubaIlhas Ã…landAzerbaijãoBósnia e HerzegovinaB" + - "arbadosBangladeshBélgicaBurquina FasoBulgáriaBahreinBurundiBeninSão Bart" + - "olomeuBermudasBruneiBolíviaPaíses Baixos CaribenhosBrasilBahamasButãoIlh" + - "a BouvetBotsuanaBielorrússiaBelizeCanadáIlhas Cocos (Keeling)Congo - Kin" + - "shasaRepública Centro-AfricanaCongo - BrazzavilleSuíçaCosta do MarfimIlh" + - "as CookChileRepública dos CamarõesChinaColômbiaIlha de ClippertonCosta R" + - "icaCubaCabo VerdeCuraçaoIlha ChristmasChipreRepública TchecaAlemanhaDieg" + - "o GarciaDjibutiDinamarcaDominicaRepública DominicanaArgéliaCeuta e Melil" + - "haEquadorEstôniaEgitoSaara OcidentalEritreiaEspanhaEtiópiaUnião Europeia" + - "FinlândiaFijiIlhas MalvinasMicronésiaIlhas FaroeFrançaGabãoReino UnidoGr" + - "anadaGeórgiaGuiana FrancesaGuernseyGanaGibraltarGroenlândiaGâmbiaGuinéGu" + - "adalupeGuiné EquatorialGréciaIlhas Geórgia do Sul e Sandwich do SulGuate" + - "malaGuamGuiné-BissauGuianaHong Kong, RAE da ChinaIlhas Heard e McDonaldH" + - "ondurasCroáciaHaitiHungriaIlhas CanáriasIndonésiaIrlandaIsraelIlha de Ma" + - "nÃndiaTerritório Britânico do Oceano ÃndicoIraqueIrãIslândiaItáliaJersey" + - "JamaicaJordâniaJapãoQuêniaQuirguistãoCambojaQuiribatiComoresSão Cristóvã" + - "o e NevisCoreia do NorteCoreia do SulKuwaitIlhas CaymanCazaquistãoLaosLí" + - "banoSanta LúciaLiechtensteinSri LankaLibériaLesotoLituâniaLuxemburgoLetô" + - "niaLíbiaMarrocosMônacoMoldáviaMontenegroSão MartinhoMadagascarIlhas Mars" + - "hallMacedôniaMaliMianmar (Birmânia)MongóliaMacau, RAE da ChinaIlhas Mari" + - "anas do NorteMartinicaMauritâniaMontserratMaltaMaurícioMaldivasMalawiMéx" + - "icoMalásiaMoçambiqueNamíbiaNova CaledôniaNígerIlha NorfolkNigériaNicarág" + - "uaHolandaNoruegaNepalNauruNiueNova ZelândiaOmãPanamáPeruPolinésia France" + - "saPapua-Nova GuinéFilipinasPaquistãoPolôniaSaint Pierre e MiquelonIlhas " + - "PitcairnPorto RicoTerritórios palestinosPortugalPalauParaguaiCatarOceani" + - "a RemotaReuniãoRomêniaSérviaRússiaRuandaArábia SauditaIlhas SalomãoSeych" + - "ellesSudãoSuéciaCingapuraSanta HelenaEslovêniaSvalbard e Jan MayenEslová" + - "quiaSerra LeoaSan MarinoSenegalSomáliaSurinameSudão do SulSão Tomé e Prí" + - "ncipeEl SalvadorSint MaartenSíriaSuazilândiaTristão da CunhaIlhas Turks " + - "e CaicosChadeTerritórios Franceses do SulTogoTailândiaTajiquistãoTokelau" + - "Timor-LesteTurcomenistãoTunísiaTongaTurquiaTrinidad e TobagoTuvaluTaiwan" + - "TanzâniaUcrâniaUgandaIlhas Menores Distantes dos EUAEstados UnidosUrugua" + - "iUzbequistãoCidade do VaticanoSão Vicente e GranadinasVenezuelaIlhas Vir" + - "gens BritânicasIlhas Virgens dos EUAVietnãVanuatuWallis e FutunaSamoaKos" + - "ovoIêmenMayotteÃfrica do SulZâmbiaZimbábueRegião desconhecidaMundoÃfrica" + - "América do NorteAmérica do SulOceaniaÃfrica OcidentalAmérica CentralÃfri" + - "ca OrientalÃfrica do NorteÃfrica CentralÃfrica AustralAméricasAmérica Se" + - "tentrionalCaribeÃsia OrientalÃsia do SulSudeste AsiáticoEuropa do SulAus" + - "tralásiaMelanésiaRegião da MicronésiaPolinésiaÃsiaÃsia CentralÃsia Ocide" + - "ntalEuropaEuropa OrientalEuropa SetentrionalEuropa OcidentalAmérica Lati" + - "na" - -// Size: 606 bytes, 291 elements -var ptRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0011, 0x0018, 0x002f, 0x003b, 0x004d, 0x0055, 0x005d, - 0x0065, 0x0078, 0x007e, 0x0088, 0x0091, 0x00a0, 0x00a8, 0x00b2, - 0x00b7, 0x00c3, 0x00ce, 0x00e3, 0x00eb, 0x00f5, 0x00fd, 0x010a, - 0x0113, 0x011a, 0x0121, 0x0126, 0x0135, 0x013d, 0x0143, 0x014b, - 0x0164, 0x016a, 0x0171, 0x0177, 0x0182, 0x018a, 0x0197, 0x019d, - 0x01a4, 0x01b9, 0x01c9, 0x01e3, 0x01f6, 0x01fd, 0x020c, 0x0216, - 0x021b, 0x0233, 0x0238, 0x0241, 0x0253, 0x025d, 0x0261, 0x026b, - 0x0273, 0x0281, 0x0287, 0x0298, 0x02a0, 0x02ac, 0x02b3, 0x02bc, - // Entry 40 - 7F - 0x02c4, 0x02d9, 0x02e1, 0x02f0, 0x02f7, 0x02ff, 0x0304, 0x0313, - 0x031b, 0x0322, 0x032a, 0x0339, 0x0343, 0x0347, 0x0355, 0x0360, - 0x036b, 0x0372, 0x0378, 0x0383, 0x038a, 0x0392, 0x03a1, 0x03a9, - 0x03ad, 0x03b6, 0x03c2, 0x03c9, 0x03cf, 0x03d8, 0x03e9, 0x03f0, - 0x0417, 0x0420, 0x0424, 0x0431, 0x0437, 0x044e, 0x0464, 0x046c, - 0x0474, 0x0479, 0x0480, 0x048f, 0x0499, 0x04a0, 0x04a6, 0x04b1, - 0x04b7, 0x04df, 0x04e5, 0x04e9, 0x04f2, 0x04f9, 0x04ff, 0x0506, - 0x050f, 0x0515, 0x051c, 0x0528, 0x052f, 0x0538, 0x053f, 0x0557, - // Entry 80 - BF - 0x0566, 0x0573, 0x0579, 0x0585, 0x0591, 0x0595, 0x059c, 0x05a8, - 0x05b5, 0x05be, 0x05c6, 0x05cc, 0x05d5, 0x05df, 0x05e7, 0x05ed, - 0x05f5, 0x05fc, 0x0605, 0x060f, 0x061c, 0x0626, 0x0634, 0x063e, - 0x0642, 0x0655, 0x065e, 0x0671, 0x0688, 0x0691, 0x069c, 0x06a6, - 0x06ab, 0x06b4, 0x06bc, 0x06c2, 0x06c9, 0x06d1, 0x06dc, 0x06e4, - 0x06f3, 0x06f9, 0x0705, 0x070d, 0x0717, 0x071e, 0x0725, 0x072a, - 0x072f, 0x0733, 0x0741, 0x0745, 0x074c, 0x0750, 0x0763, 0x0774, - 0x077d, 0x0787, 0x078f, 0x07a6, 0x07b4, 0x07be, 0x07d5, 0x07dd, - // Entry C0 - FF - 0x07e2, 0x07ea, 0x07ef, 0x07fd, 0x0805, 0x080d, 0x0814, 0x081b, - 0x0821, 0x0830, 0x083e, 0x0848, 0x084e, 0x0855, 0x085e, 0x086a, - 0x0874, 0x0888, 0x0893, 0x089d, 0x08a7, 0x08ae, 0x08b6, 0x08be, - 0x08cb, 0x08e1, 0x08ec, 0x08f8, 0x08fe, 0x090a, 0x091b, 0x092f, - 0x0934, 0x0951, 0x0955, 0x095f, 0x096b, 0x0972, 0x097d, 0x098b, - 0x0993, 0x0998, 0x099f, 0x09b0, 0x09b6, 0x09bc, 0x09c5, 0x09cd, - 0x09d3, 0x09f2, 0x0a00, 0x0a07, 0x0a13, 0x0a25, 0x0a3e, 0x0a47, - 0x0a60, 0x0a75, 0x0a7c, 0x0a83, 0x0a92, 0x0a97, 0x0a9d, 0x0aa3, - // Entry 100 - 13F - 0x0aaa, 0x0ab8, 0x0abf, 0x0ac8, 0x0adc, 0x0ae1, 0x0ae8, 0x0af9, - 0x0b08, 0x0b0f, 0x0b20, 0x0b30, 0x0b40, 0x0b50, 0x0b5f, 0x0b6e, - 0x0b77, 0x0b8c, 0x0b92, 0x0ba0, 0x0bac, 0x0bbd, 0x0bca, 0x0bd6, - 0x0be0, 0x0bf6, 0x0c00, 0x0c05, 0x0c12, 0x0c21, 0x0c27, 0x0c36, - 0x0c49, 0x0c59, 0x0c68, -} - -// Size: 467 bytes -var ptPTRegionStr string = "" + - "AnguilaArméniaBarémBenimCongo-KinshasaCongo-BrazzavilleCamarõesCuraçauRe" + - "pública ChecaDomínicaEstóniaIlhas FalklandIlhas FaroéGronelândiaGuameIrã" + - "oQuéniaIlhas CaimãoLetóniaMónacoMadagáscarMacedóniaMonserrateMauríciaNov" + - "a CaledóniaPolóniaPitcairnTerritórios palestinianosOceânia InsularRoméni" + - "aSeichelesSingapuraEslovéniaSão MarinoToquelauTurquemenistãoTrindade e T" + - "obagoVietnameIémenMaioteZimbabuéOceâniaNorte de ÃfricaCaraíbasEuropa do " + - "Norte" - -// Size: 602 bytes, 289 elements -var ptPTRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, - 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, - 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, - 0x000f, 0x0015, 0x0015, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, - 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, - 0x001a, 0x001a, 0x0028, 0x0028, 0x0039, 0x0039, 0x0039, 0x0039, - 0x0039, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x004a, 0x004a, 0x004a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, - // Entry 40 - 7F - 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x006b, 0x006b, 0x006b, - 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x0079, 0x0079, - 0x0085, 0x0085, 0x0085, 0x0085, 0x0085, 0x0085, 0x0085, 0x0085, - 0x0085, 0x0085, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, - 0x0091, 0x0091, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, - 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, - 0x0096, 0x0096, 0x0096, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, - 0x009b, 0x009b, 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, - // Entry 80 - BF - 0x00a2, 0x00a2, 0x00a2, 0x00af, 0x00af, 0x00af, 0x00af, 0x00af, - 0x00af, 0x00af, 0x00af, 0x00af, 0x00af, 0x00af, 0x00b7, 0x00b7, - 0x00b7, 0x00be, 0x00be, 0x00be, 0x00be, 0x00c9, 0x00c9, 0x00d3, - 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00dd, - 0x00dd, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00e6, - 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, - 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, - 0x00f5, 0x00f5, 0x00fd, 0x00fd, 0x0105, 0x0105, 0x011f, 0x011f, - // Entry C0 - FF - 0x011f, 0x011f, 0x011f, 0x012f, 0x012f, 0x0137, 0x0137, 0x0137, - 0x0137, 0x0137, 0x0137, 0x0140, 0x0140, 0x0140, 0x0149, 0x0149, - 0x0153, 0x0153, 0x0153, 0x0153, 0x015e, 0x015e, 0x015e, 0x015e, - 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, - 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, 0x0166, 0x0166, 0x0175, - 0x0175, 0x0175, 0x0175, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, - 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, - 0x0186, 0x0186, 0x018e, 0x018e, 0x018e, 0x018e, 0x018e, 0x0194, - // Entry 100 - 13F - 0x019a, 0x019a, 0x019a, 0x01a3, 0x01a3, 0x01a3, 0x01a3, 0x01a3, - 0x01a3, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01bb, 0x01bb, 0x01bb, - 0x01bb, 0x01bb, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, - 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, - 0x01d3, -} - -// Size: 3237 bytes -var roRegionStr string = "" + - "Insula AscensionAndorraEmiratele Arabe UniteAfganistanAntigua È™i Barbuda" + - "AnguillaAlbaniaArmeniaAntilele OlandezeAngolaAntarcticaArgentinaSamoa Am" + - "ericanăAustriaAustraliaArubaInsulele Ã…landAzerbaidjanBosnia È™i HerÈ›egovi" + - "naBarbadosBangladeshBelgiaBurkina FasoBulgariaBahrainBurundiBeninSfântul" + - " BartolomeuBermudaBruneiBoliviaInsulele Caraibe OlandezeBraziliaBahamasB" + - "hutanInsula BouvetBotswanaBelarusBelizeCanadaInsulele Cocos (Keeling)Con" + - "go - KinshasaRepublica CentrafricanăCongo - BrazzavilleElveÈ›iaCôte d’Ivo" + - "ireInsulele CookChileCamerunChinaColumbiaInsula ClippertonCosta RicaCuba" + - "Capul VerdeCuraçaoInsula ChristmasCipruRepublica CehăGermaniaDiego Garci" + - "aDjiboutiDanemarcaDominicaRepublica DominicanăAlgeriaCeuta È™i MelillaEcu" + - "adorEstoniaEgiptSahara OccidentalăEritreeaSpaniaEtiopiaUniunea Europeană" + - "FinlandaFijiInsulele FalklandMicroneziaInsulele FeroeFranÈ›aGabonRegatul " + - "UnitGrenadaGeorgiaGuyana FrancezăGuernseyGhanaGibraltarGroenlandaGambiaG" + - "uineeaGuadelupaGuineea EcuatorialăGreciaGeorgia de Sud È™i Insulele Sandw" + - "ich de SudGuatemalaGuamGuineea-BissauGuyanaR.A.S. Hong Kong a ChineiInsu" + - "la Heard È™i Insulele McDonaldHondurasCroaÈ›iaHaitiUngariaInsulele CanareI" + - "ndoneziaIrlandaIsraelInsula ManIndiaTeritoriul Britanic din Oceanul Indi" + - "anIrakIranIslandaItaliaJerseyJamaicaIordaniaJaponiaKenyaKârgâzstanCambod" + - "giaKiribatiComoreSaint Kitts È™i NevisCoreea de NordCoreea de SudKuweitIn" + - "sulele CaymanKazahstanLaosLibanSfânta LuciaLiechtensteinSri LankaLiberia" + - "LesothoLituaniaLuxemburgLetoniaLibiaMarocMonacoRepublica MoldovaMunteneg" + - "ruSfântul MartinMadagascarInsulele MarshallMacedoniaMaliMyanmar (Birmani" + - "a)MongoliaR.A.S. Macao a ChineiInsulele Mariane de NordMartinicaMauritan" + - "iaMontserratMaltaMauritiusMaldiveMalawiMexicMalaeziaMozambicNamibiaNoua " + - "CaledonieNigerInsulele NorfolkNigeriaNicaraguaȚările de JosNorvegiaNepal" + - "NauruNiueNoua ZeelandăOmanPanamaPeruPolinezia FrancezăPapua-Noua GuineeF" + - "ilipinePakistanPoloniaSaint-Pierre È™i MiquelonInsulele PitcairnPuerto Ri" + - "coTeritoriile PalestinienePortugaliaPalauParaguayQatarOceania Periferică" + - "RéunionRomâniaSerbiaRusiaRwandaArabia SaudităInsulele SolomonSeychellesS" + - "udanSuediaSingaporeSfânta ElenaSloveniaSvalbard È™i Jan MayenSlovaciaSier" + - "ra LeoneSan MarinoSenegalSomaliaSurinamSudanul de SudSao Tome È™i Princip" + - "eEl SalvadorSint-MaartenSiriaSwazilandTristan da CunhaInsulele Turks È™i " + - "CaicosCiadTeritoriile Australe È™i Antarctice FrancezeTogoThailandaTadjik" + - "istanTokelauTimorul de EstTurkmenistanTunisiaTongaTurciaTrinidad È™i Toba" + - "goTuvaluTaiwanTanzaniaUcrainaUgandaInsulele ÃŽndepărtate ale S.U.A.Statel" + - "e Unite ale AmericiiUruguayUzbekistanStatul Cetății VaticanuluiSaint Vin" + - "cent È™i GrenadineVenezuelaInsulele Virgine BritaniceInsulele Virgine S.U" + - ".A.VietnamVanuatuWallis È™i FutunaSamoaKosovoYemenMayotteAfrica de SudZam" + - "biaZimbabweRegiune necunoscutăLumeAfricaAmerica de NordAmerica de SudOce" + - "aniaAfrica OccidentalăAmerica CentralăAfrica OrientalăAfrica Septentrion" + - "alăAfrica CentralăAfrica MeridionalăAmericiAmerica SeptentrionalăCaraibe" + - "Asia OrientalăAsia MeridionalăAsia de Sud-EstEuropa MeridionalăAustralas" + - "iaMelaneziaRegiunea MicroneziaPolineziaAsiaAsia CentralăAsia Occidentală" + - "EuropaEuropa OrientalăEuropa SeptentrionalăEuropa OccidentalăAmerica Lat" + - "ină" - -// Size: 606 bytes, 291 elements -var roRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0010, 0x0017, 0x002c, 0x0036, 0x0049, 0x0051, 0x0058, - 0x005f, 0x0070, 0x0076, 0x0080, 0x0089, 0x0099, 0x00a0, 0x00a9, - 0x00ae, 0x00bd, 0x00c8, 0x00df, 0x00e7, 0x00f1, 0x00f7, 0x0103, - 0x010b, 0x0112, 0x0119, 0x011e, 0x0131, 0x0138, 0x013e, 0x0145, - 0x015e, 0x0166, 0x016d, 0x0173, 0x0180, 0x0188, 0x018f, 0x0195, - 0x019b, 0x01b3, 0x01c3, 0x01db, 0x01ee, 0x01f6, 0x0206, 0x0213, - 0x0218, 0x021f, 0x0224, 0x022c, 0x023d, 0x0247, 0x024b, 0x0256, - 0x025e, 0x026e, 0x0273, 0x0282, 0x028a, 0x0296, 0x029e, 0x02a7, - // Entry 40 - 7F - 0x02af, 0x02c4, 0x02cb, 0x02dc, 0x02e3, 0x02ea, 0x02ef, 0x0302, - 0x030a, 0x0310, 0x0317, 0x0329, 0x0331, 0x0335, 0x0346, 0x0350, - 0x035e, 0x0365, 0x036a, 0x0376, 0x037d, 0x0384, 0x0394, 0x039c, - 0x03a1, 0x03aa, 0x03b4, 0x03ba, 0x03c1, 0x03ca, 0x03de, 0x03e4, - 0x040f, 0x0418, 0x041c, 0x042a, 0x0430, 0x0449, 0x046b, 0x0473, - 0x047b, 0x0480, 0x0487, 0x0496, 0x049f, 0x04a6, 0x04ac, 0x04b6, - 0x04bb, 0x04e1, 0x04e5, 0x04e9, 0x04f0, 0x04f6, 0x04fc, 0x0503, - 0x050b, 0x0512, 0x0517, 0x0523, 0x052c, 0x0534, 0x053a, 0x054f, - // Entry 80 - BF - 0x055d, 0x056a, 0x0570, 0x057f, 0x0588, 0x058c, 0x0591, 0x059e, - 0x05ab, 0x05b4, 0x05bb, 0x05c2, 0x05ca, 0x05d3, 0x05da, 0x05df, - 0x05e4, 0x05ea, 0x05fb, 0x0605, 0x0614, 0x061e, 0x062f, 0x0638, - 0x063c, 0x064e, 0x0656, 0x066b, 0x0683, 0x068c, 0x0696, 0x06a0, - 0x06a5, 0x06ae, 0x06b5, 0x06bb, 0x06c0, 0x06c8, 0x06d0, 0x06d7, - 0x06e5, 0x06ea, 0x06fa, 0x0701, 0x070a, 0x0719, 0x0721, 0x0726, - 0x072b, 0x072f, 0x073d, 0x0741, 0x0747, 0x074b, 0x075e, 0x076f, - 0x0777, 0x077f, 0x0786, 0x079f, 0x07b0, 0x07bb, 0x07d3, 0x07dd, - // Entry C0 - FF - 0x07e2, 0x07ea, 0x07ef, 0x0802, 0x080a, 0x0812, 0x0818, 0x081d, - 0x0823, 0x0832, 0x0842, 0x084c, 0x0851, 0x0857, 0x0860, 0x086d, - 0x0875, 0x088b, 0x0893, 0x089f, 0x08a9, 0x08b0, 0x08b7, 0x08be, - 0x08cc, 0x08e1, 0x08ec, 0x08f8, 0x08fd, 0x0906, 0x0916, 0x092f, - 0x0933, 0x095f, 0x0963, 0x096c, 0x0977, 0x097e, 0x098c, 0x0998, - 0x099f, 0x09a4, 0x09aa, 0x09bd, 0x09c3, 0x09c9, 0x09d1, 0x09d8, - 0x09de, 0x09ff, 0x0a19, 0x0a20, 0x0a2a, 0x0a46, 0x0a61, 0x0a6a, - 0x0a84, 0x0a9b, 0x0aa2, 0x0aa9, 0x0aba, 0x0abf, 0x0ac5, 0x0aca, - // Entry 100 - 13F - 0x0ad1, 0x0ade, 0x0ae4, 0x0aec, 0x0b00, 0x0b04, 0x0b0a, 0x0b19, - 0x0b27, 0x0b2e, 0x0b41, 0x0b52, 0x0b63, 0x0b79, 0x0b89, 0x0b9c, - 0x0ba3, 0x0bba, 0x0bc1, 0x0bd0, 0x0be1, 0x0bf0, 0x0c03, 0x0c0e, - 0x0c17, 0x0c2a, 0x0c33, 0x0c37, 0x0c45, 0x0c56, 0x0c5c, 0x0c6d, - 0x0c83, 0x0c96, 0x0ca5, -} - -// Size: 5771 bytes -var ruRegionStr string = "" + - "о-в ВознеÑениÑÐндорраОÐЭÐфганиÑтанÐнтигуа и БарбудаÐнгильÑÐлбаниÑÐрмениÑ" + - "ÐидерландÑкие ÐнтильÑкие о-ваÐнголаÐнтарктидаÐргентинаÐмериканÑкое Само" + - "аÐвÑтриÑÐвÑтралиÑÐрубаÐландÑкие о-ваÐзербайджанБоÑÐ½Ð¸Ñ Ð¸ ГерцеговинаБарб" + - "адоÑБангладешБельгиÑБуркина-ФаÑоБолгариÑБахрейнБурундиБенинСен-Бартельм" + - "иБермудÑкие о-ваБруней-ДаруÑÑаламБоливиÑБонÑйр, Синт-ЭÑÑ‚Ð°Ñ‚Ð¸ÑƒÑ Ð¸ СабаБра" + - "зилиÑБагамÑкие о-ваБутано-в БувеБотÑванаБеларуÑьБелизКанадаКокоÑовые о-" + - "ваКонго - КиншаÑаЦÐРКонго - БраззавильШвейцариÑКот-д’Ивуаро-ва КукаЧили" + - "КамерунКитайКолумбиÑо-в КлиппертонКоÑта-РикаКубаКабо-ВердеКюраÑаоо-в Ро" + - "ждеÑтваКипрЧехиÑГерманиÑДиего-ГарÑиÑДжибутиДаниÑДоминикаДоминиканÑÐºÐ°Ñ Ð " + - "еÑпубликаÐлжирСеута и МелильÑЭквадорЭÑтониÑÐ•Ð³Ð¸Ð¿ÐµÑ‚Ð—Ð°Ð¿Ð°Ð´Ð½Ð°Ñ Ð¡Ð°Ñ…Ð°Ñ€Ð°Ð­Ñ€Ð¸Ñ‚Ñ€ÐµÑ" + - "ИÑпаниÑЭфиопиÑЕвропейÑкий ÑоюзФинлÑндиÑФиджиФолклендÑкие о-ваФедеративн" + - "ые Штаты МикронезииФарерÑкие о-ваФранциÑГабонВеликобританиÑГренадаГрузи" + - "ÑФранцузÑÐºÐ°Ñ Ð“Ð²Ð¸Ð°Ð½Ð°Ð“ÐµÑ€Ð½ÑиГанаГибралтарГренландиÑГамбиÑГвинеÑГваделупаЭк" + - "Ð²Ð°Ñ‚Ð¾Ñ€Ð¸Ð°Ð»ÑŒÐ½Ð°Ñ Ð“Ð²Ð¸Ð½ÐµÑГрециÑÐ®Ð¶Ð½Ð°Ñ Ð“ÐµÐ¾Ñ€Ð³Ð¸Ñ Ð¸ Южные Сандвичевы о-ваГватемала" + - "ГуамГвинеÑ-БиÑауГайанаГонконг (оÑобый район)о-ва Херд и МакдональдГонду" + - "раÑХорватиÑГаитиВенгриÑКанарÑкие о-ваИндонезиÑИрландиÑИзраильО-в ÐœÑнИнд" + - "иÑБританÑÐºÐ°Ñ Ñ‚ÐµÑ€Ñ€Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð² ИндийÑком океанеИракИранИÑландиÑИталиÑДжерÑиЯ" + - "майкаИорданиÑЯпониÑКениÑКиргизиÑКамбоджаКирибатиКоморÑкие о-ваСент-КитÑ" + - " и ÐевиÑКÐДРРеÑпублика КореÑКувейтКаймановы о-ваКазахÑтанЛаоÑЛиванСент-Л" + - "ÑŽÑиÑЛихтенштейнШри-ЛанкаЛибериÑЛеÑотоЛитваЛюкÑембургЛатвиÑЛивиÑМароккоМ" + - "онакоМолдоваЧерногориÑСен-МартенМадагаÑкарМаршалловы о-ваМакедониÑМалиМ" + - "ÑŒÑнма (Бирма)МонголиÑМакао (оÑобый район)Северные МарианÑкие о-ваМартин" + - "икаМавританиÑМонтÑерратМальтаМаврикийМальдивыМалавиМекÑикаМалайзиÑМозам" + - "бикÐамибиÑÐÐ¾Ð²Ð°Ñ ÐšÐ°Ð»ÐµÐ´Ð¾Ð½Ð¸ÑÐигеро-в ÐорфолкÐигериÑÐикарагуаÐидерландыÐорв" + - "егиÑÐепалÐауруÐиуÑÐÐ¾Ð²Ð°Ñ Ð—ÐµÐ»Ð°Ð½Ð´Ð¸ÑОманПанамаПеруФранцузÑÐºÐ°Ñ ÐŸÐ¾Ð»Ð¸Ð½ÐµÐ·Ð¸ÑПапу" + - "а – ÐÐ¾Ð²Ð°Ñ Ð“Ð²Ð¸Ð½ÐµÑФилиппиныПакиÑтанПольшаСен-Пьер и МикелонПиткернПуÑрто-" + - "РикоПалеÑтинÑкие территорииПортугалиÑПалауПарагвайКатарВнешнÑÑ ÐžÐºÐµÐ°Ð½Ð¸ÑР" + - "еюньонРумыниÑСербиÑРоÑÑиÑРуандаСаудовÑÐºÐ°Ñ ÐравиÑСоломоновы о-ваСейшельÑ" + - "кие о-ваСуданШвециÑСингапурО-в Св. ЕленыСловениÑШпицберген и Ян-МайенСл" + - "овакиÑСьерра-ЛеонеСан-МариноСенегалСомалиСуринамЮжный СуданСан-Томе и П" + - "ринÑипиСальвадорСинт-МартенСириÑСвазилендТриÑтан-да-КуньÑО-ва Ð¢Ñ‘Ñ€ÐºÑ Ð¸ К" + - "айкоÑЧадФранцузÑкие Южные ТерриторииТогоТаиландТаджикиÑтанТокелауВоÑточ" + - "ный ТиморТуркмениÑтанТуниÑТонгаТурциÑТринидад и ТобагоТувалуТайваньТанз" + - "аниÑУкраинаУгандаВнешние малые о-ва (СШÐ)Соединенные ШтатыУругвайУзбеки" + - "ÑтанВатиканСент-ВинÑент и ГренадиныВенеÑуÑлаВиргинÑкие о-ва (БританÑкие" + - ")ВиргинÑкие о-ва (СШÐ)Ð’ÑŒÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ£Ð¾Ð»Ð»Ð¸Ñ Ð¸ ФутунаСамоаКоÑовоЙеменМайот" + - "таЮÐРЗамбиÑЗимбабвеÐеизвеÑтный регионМирÐÑ„Ñ€Ð¸ÐºÐ°Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐÐ¼ÐµÑ€Ð¸ÐºÐ°Ð®Ð¶Ð½Ð°Ñ Ðме" + - "рикаОкеаниÑÐ—Ð°Ð¿Ð°Ð´Ð½Ð°Ñ ÐÑ„Ñ€Ð¸ÐºÐ°Ð¦ÐµÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ ÐмерикаВоÑÑ‚Ð¾Ñ‡Ð½Ð°Ñ ÐÑ„Ñ€Ð¸ÐºÐ°Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð" + - "Ñ„Ñ€Ð¸ÐºÐ°Ð¦ÐµÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ ÐÑ„Ñ€Ð¸ÐºÐ°Ð®Ð¶Ð½Ð°Ñ ÐфрикаÐÐ¼ÐµÑ€Ð¸ÐºÐ°Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ðмерика – СШРи Кана" + - "даКарибыВоÑÑ‚Ð¾Ñ‡Ð½Ð°Ñ ÐзиÑÐ®Ð¶Ð½Ð°Ñ ÐзиÑЮго-ВоÑÑ‚Ð¾Ñ‡Ð½Ð°Ñ ÐзиÑÐ®Ð¶Ð½Ð°Ñ Ð•Ð²Ñ€Ð¾Ð¿Ð°ÐвÑтралаз" + - "иÑМеланезиÑМикронезиÑПолинезиÑÐзиÑСреднÑÑ ÐзиÑБлижний и Средний ВоÑтокЕ" + - "вропаВоÑÑ‚Ð¾Ñ‡Ð½Ð°Ñ Ð•Ð²Ñ€Ð¾Ð¿Ð°Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð•Ð²Ñ€Ð¾Ð¿Ð°Ð—Ð°Ð¿Ð°Ð´Ð½Ð°Ñ Ð•Ð²Ñ€Ð¾Ð¿Ð°Ð›Ð°Ñ‚Ð¸Ð½ÑÐºÐ°Ñ Ðмерика" - -// Size: 606 bytes, 291 elements -var ruRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x001a, 0x0028, 0x002e, 0x0042, 0x0062, 0x0070, 0x007e, - 0x008c, 0x00c3, 0x00cf, 0x00e3, 0x00f5, 0x0118, 0x0126, 0x0138, - 0x0142, 0x015c, 0x0172, 0x0198, 0x01a8, 0x01ba, 0x01c8, 0x01df, - 0x01ef, 0x01fd, 0x020b, 0x0215, 0x022e, 0x024a, 0x026b, 0x0279, - 0x02ac, 0x02bc, 0x02d6, 0x02e0, 0x02ee, 0x02fe, 0x030e, 0x0318, - 0x0324, 0x033e, 0x0359, 0x035f, 0x0380, 0x0392, 0x03a8, 0x03b8, - 0x03c0, 0x03ce, 0x03d8, 0x03e8, 0x0402, 0x0415, 0x041d, 0x0430, - 0x043e, 0x0456, 0x045e, 0x0468, 0x0478, 0x048f, 0x049d, 0x04a7, - // Entry 40 - 7F - 0x04b7, 0x04e6, 0x04f0, 0x050c, 0x051a, 0x0528, 0x0534, 0x0551, - 0x055f, 0x056d, 0x057b, 0x059a, 0x05ac, 0x05b6, 0x05d6, 0x060e, - 0x0628, 0x0636, 0x0640, 0x065c, 0x066a, 0x0676, 0x0699, 0x06a5, - 0x06ad, 0x06bf, 0x06d3, 0x06df, 0x06eb, 0x06fd, 0x0726, 0x0732, - 0x0776, 0x0788, 0x0790, 0x07a7, 0x07b3, 0x07db, 0x0803, 0x0813, - 0x0823, 0x082d, 0x083b, 0x0855, 0x0867, 0x0877, 0x0885, 0x0891, - 0x089b, 0x08e7, 0x08ef, 0x08f7, 0x0907, 0x0913, 0x091f, 0x092b, - 0x093b, 0x0947, 0x0951, 0x0961, 0x0971, 0x0981, 0x099b, 0x09ba, - // Entry 80 - BF - 0x09c2, 0x09e1, 0x09ed, 0x0a07, 0x0a19, 0x0a21, 0x0a2b, 0x0a3e, - 0x0a54, 0x0a65, 0x0a73, 0x0a7f, 0x0a89, 0x0a9d, 0x0aa9, 0x0ab3, - 0x0ac1, 0x0acd, 0x0adb, 0x0aef, 0x0b02, 0x0b16, 0x0b32, 0x0b44, - 0x0b4c, 0x0b65, 0x0b75, 0x0b99, 0x0bc6, 0x0bd8, 0x0bec, 0x0c00, - 0x0c0c, 0x0c1c, 0x0c2c, 0x0c38, 0x0c46, 0x0c56, 0x0c66, 0x0c74, - 0x0c91, 0x0c9b, 0x0caf, 0x0cbd, 0x0ccf, 0x0ce3, 0x0cf3, 0x0cfd, - 0x0d07, 0x0d0f, 0x0d2a, 0x0d32, 0x0d3e, 0x0d46, 0x0d6f, 0x0d95, - 0x0da7, 0x0db7, 0x0dc3, 0x0de4, 0x0df2, 0x0e07, 0x0e34, 0x0e48, - // Entry C0 - FF - 0x0e52, 0x0e62, 0x0e6c, 0x0e89, 0x0e97, 0x0ea5, 0x0eb1, 0x0ebd, - 0x0ec9, 0x0eea, 0x0f06, 0x0f24, 0x0f2e, 0x0f3a, 0x0f4a, 0x0f60, - 0x0f70, 0x0f97, 0x0fa7, 0x0fbe, 0x0fd1, 0x0fdf, 0x0feb, 0x0ff9, - 0x100e, 0x1031, 0x1043, 0x1058, 0x1062, 0x1074, 0x1092, 0x10b4, - 0x10ba, 0x10f0, 0x10f8, 0x1106, 0x111c, 0x112a, 0x1147, 0x115f, - 0x1169, 0x1173, 0x117f, 0x119f, 0x11ab, 0x11b9, 0x11c9, 0x11d7, - 0x11e3, 0x120d, 0x122e, 0x123c, 0x1250, 0x125e, 0x128b, 0x129d, - 0x12d0, 0x12f5, 0x1303, 0x1311, 0x132d, 0x1337, 0x1343, 0x134d, - // Entry 100 - 13F - 0x135b, 0x1361, 0x136d, 0x137d, 0x13a0, 0x13a6, 0x13b2, 0x13d1, - 0x13ea, 0x13f8, 0x1415, 0x143a, 0x1459, 0x1476, 0x1499, 0x14b0, - 0x14be, 0x14f8, 0x1504, 0x151f, 0x1532, 0x1554, 0x156b, 0x1581, - 0x1593, 0x15a7, 0x15b9, 0x15c1, 0x15d8, 0x1605, 0x1611, 0x1630, - 0x164d, 0x166a, 0x168b, -} - -// Size: 9356 bytes -var siRegionStr string = "" + - "ඇසෙන්ෂන් දිවයිනඇන්ඩà·à¶»à·à·€à¶‘ක්සත් අරà·à¶¶à·’ එමිර් රà·à¶¢à·Š\u200dයයඇෆ්ගනිස්ථà·à¶±à¶ºà¶‡à¶±à·Šà¶§à·’ග" + - "ුව෠සහ බà·à¶¶à·’යුඩà·à·€à¶‡à¶±à·Šà¶œà·”යිලà·à·€à¶‡à¶½à·Šà¶¶à·šà¶±à·’යà·à·€à¶†à¶»à·Šà¶¸à·šà¶±à·’යà·à·€à¶±à·™à¶¯à¶»à·Šà¶½à¶±à·Šà¶­ ඇන්ටිලීසියඇන්ග" + - "à·à¶½à·à·€à¶‡à¶±à·Šà¶§à·à¶šà·Šà¶§à·’කà·à·€à¶†à¶»à·Šà¶¢à·™à¶±à·Šà¶§à·’නà·à·€à¶‡à¶¸à¶»à·’කà·à¶±à·” à·ƒà·à¶¸à·à·€à·à·€à¶”ස්ට්\u200dරියà·à·€à¶•à·ƒà·Šà¶§à·Š" + - "\u200dරේලියà·à·€à¶…රුබà·à·€à¶•à¶½à¶±à·Šà¶©à·Š දූපත්අසර්බයිජà·à¶±à¶ºà¶¶à·œà·ƒà·Šà¶±à·’යà·à·€ සහ හර්සගොවීනà·à·€à¶¶à·à¶»à·Šà¶¶à¶©" + - "à·à·ƒà·Šà¶¶à¶‚ග්ලà·à¶¯à·šà·à¶ºà¶¶à·™à¶½à·Šà¶¢à·’යමබර්කින෠ෆà·à·ƒà·à¶¶à¶½à·Šà¶œà·šà¶»à·’යà·à·€à¶¶à·„රේන්බුරුන්දිබෙනින්à·à·à¶±à·Šà¶­ බ" + - "ර්තලෙමිබර්මියුඩà·à¶¶à·²à¶±à·à¶ºà·’බොලීවියà·à·€à¶šà·à¶»à·’බියà·à¶±à·” නෙදර්ලන්තයබ්\u200dරසීලයබහමà·à·ƒ" + - "්භූතà·à¶±à¶ºà¶¶à·”වට් දුපත්බොට්ස්වà·à¶±à·à¶¶à·™à¶½à¶»à·”ස්බෙලීස්කà·à¶±à¶©à·à·€à¶šà·œà¶šà·à·ƒà·Š දූපත්කොංගො - කින" + - "à·Šà·à·à·ƒà·à¶¸à¶°à·Š\u200dයම අප්\u200dරිකà·à¶±à·” ජනරජයකොංගො - බ්\u200dරසà·à·€à·’ල්ස්විස්ටර්" + - "ලන්තයකà·à¶§à·Š දි අයිවරිකුක් දූපත්චිලීකà·à¶¸à¶»à·–න්චීනයකොළොම්බියà·à·€à¶šà·Šà¶½à·“පර්ටන් දූපත" + - "කොස්ටරිකà·à·€à¶šà·’යුබà·à·€à¶šà·šà¶´à·Š වර්ඩ්කුරකà·à·€à·à¶šà·Š\u200dරිස්මස් දූපතසයිප්\u200dරසයචෙ" + - "ක් ජනරජයජර්මනියදියà·à¶œà· ගà·à¶»à·Šà·ƒà·’යà·à¶¢à·’බුටිඩෙන්මà·à¶»à·Šà¶šà¶ºà¶©à·œà¶¸à·’නිකà·à·€à¶©à·œà¶¸à·’නික෠ජනරජයඇ" + - "ල්ජීරියà·à·€à·ƒà·™à¶ºà·”ට෠සහ මෙලිල්ලà·à¶‰à¶šà·Šà·€à¶¯à·à¶»à¶ºà¶‘ස්තà·à¶±à·’යà·à·€à¶Šà¶¢à·’ප්තුවබටහිර සහරà·à·€à¶‘රිත්" + - "\u200dරියà·à·€à·ƒà·Šà¶´à·à¶¤à·Šà¶¤à¶ºà¶‰à¶­à·’යà·à¶´à·’යà·à·€à¶ºà·”රà·à¶´à· සංගමයෆින්ලන්තයෆීජීෆà·à¶šà·Šà¶½à¶±à·Šà¶­ දූපත්මයික" + - "à·Š\u200dරොනීසියà·à·€à·†à·à¶»à· දූපත්ප්\u200dරංà·à¶ºà¶œà·à¶¶à·œà¶±à·Šà¶‘ක්සත් රà·à¶¢à¶°à·à¶±à·’යග්\u200dරà·à¶±" + - "ඩà·à·€à¶¢à·à¶»à·Šà¶¢à·’යà·à·€à¶´à·Š\u200dරං෠ගයනà·à·€à¶œà¶»à·Šà¶±à·Šà·ƒà·’යà¶à·à¶±à·à·€à¶¢à·’බ්\u200dරà·à¶½à·Šà¶§à·à·€à¶œà·Š\u200dරීන" + - "්ලන්තයගà·à¶¸à·Šà¶¶à·’යà·à·€à¶œà·’ණියà·à·€à¶œà·Šà·€à·à¶©à¶½à·à¶´à·Šà·ƒà¶¸à¶š ගිනියà·à·€à¶œà·Š\u200dරීසියදකුණු ජà·à¶»à·Šà¶¢à·’යà·à·€" + - " සහ දකුණු à·ƒà·à¶±à·Šà¶©à·Šà·€à·’ච් දූපත්ගà·à¶­à¶¸à·à¶½à·à·€à¶œà·”à·€à·à¶¸à·Šà¶œà·’නි බිසව්ගයනà·à·€à·„ොංකොං චීන විà·à·šà·‚ " + - "පරිපà·à¶½à¶± කලà·à¶´à¶ºà·„ර්ඩ් දූපත සහ මà·à¶šà·Šà¶©à·œà¶±à¶½à·Šà¶©à·Š දූපත්හොන්ඩුරà·à·ƒà·Šà¶šà·Š\u200dරොඒෂියà·à·€" + - "හයිටිහන්ගේරියà·à·€à¶šà·à¶±à¶»à·’ සූපත්ඉන්දුනීසියà·à·€à¶…යර්ලන්තයඊà·à·Š\u200dරà·à¶ºà¶½à¶ºà¶…යිල් ඔෆ්" + - " මෑන්ඉන්දියà·à·€à¶¶à·Š\u200dරිතà·à¶±à·Š\u200dය ඉන්දීය à·ƒà·à¶œà¶» බල ප්\u200dරදේà·à¶ºà¶‰à¶»à·à¶šà¶ºà¶‰à¶»à·à¶±" + - "යඅයිස්ලන්තයඉතà·à¶½à·’යජර්සිජà·à¶¸à·™à¶ºà·’කà·à·€à¶¢à·à¶»à·Šà¶¯à·à¶±à¶ºà¶¢à¶´à·à¶±à¶ºà¶šà·™à¶±à·Šà¶ºà·à·€à¶šà·’ර්ගිස්තà·à¶±à¶ºà¶šà·à¶¸à·Šà¶¶à·à¶¢" + - "යකිරිබතිකොමොරà·à·ƒà·Šà·à·à¶±à·Šà¶­ කිට්ස් සහ නේවිස්උතුරු කොරියà·à·€à¶¯à¶šà·”ණු කොරියà·à·€à¶šà·”වේටය" + - "කේමන් දූපත්කසකස්තà·à¶±à¶ºà¶½à·à¶•à·ƒà¶ºà¶½à·™à¶¶à¶±à¶±à¶ºà·à·à¶±à·Šà¶­ ලුසියà·à¶½à·’ක්ටන්ස්ටයින්à·à·Š\u200dරී ලං" + - "කà·à·€à¶½à¶ºà·’බීරියà·à·€à¶½à·™à·ƒà¶­à·à¶½à·’තුවේනියà·à·€à¶½à¶šà·Šà·à¶¸à·Šà¶¶à¶»à·Šà¶œà·Šà¶½à·à¶§à·Šà·€à·’යà·à·€à¶½à·’බියà·à·€à¶¸à·œà¶»à·œà¶šà·Šà¶šà·à·€à¶¸à·œà¶±à·à¶š" + - "à·à·€à¶¸à·œà¶½à·Šà¶©à·à·€à·à·€à¶¸à·œà¶±à·Šà¶§à·™à¶±à·“ග්\u200dරà·à·à·à¶±à·Šà¶­ මà·à¶»à·Šà¶§à·’න්මà·à¶©à¶œà·ƒà·Šà¶šà¶»à¶ºà¶¸à·à·‚ල් දූපත්මà·à·ƒà·’ඩà·à¶±" + - "ියà·à·€à¶¸à·à¶½à·’මියන්මà·à¶»à¶º (බුරුමය)මොන්ගà·à¶½à·’යà·à·€à¶¸à¶šà·à·€à·” චීන විà·à·šà·‚ පරිපà·à¶½à¶± කලà·à¶´à¶ºà¶‹à¶­à·”ර" + - "à·” මරියà·à¶±à· දූපත්මර්ටිනික්මොරිටේනියà·à·€à¶¸à·œà¶±à·Šà·ƒà·™à¶»à·à¶§à·Šà¶¸à·à¶½à·Šà¶§à·à·€à¶¸à·”රුසියමà·à¶½ දිවයිනම" + - "ලà·à·€à·’මෙක්සිකà·à·€à¶¸à·à¶½à·šà·ƒà·’යà·à·€à¶¸à·œà·ƒà·à¶¸à·Šà¶¶à·’ක්නà·à¶¸à·“බියà·à·€à¶±à·€ කà·à¶½à·’ඩà·à¶±à·’යà·à·€à¶±à¶ºà·’ජර්නà·à·†à·à¶šà·Š දූ" + - "පතනයිජීරියà·à·€à¶±à·’කරගුවà·à·€à¶±à·™à¶¯à¶»à·Šà¶½à¶±à·Šà¶­à¶ºà¶±à·à¶»à·Šà·€à·šà¶±à·šà¶´à·à¶½à¶ºà¶±à·à·€à·”රුනියූනවසීලන්තයඕමà·à¶±à¶ºà¶´à·à¶±" + - "මà·à·€à¶´à·šà¶»à·”ප්\u200dරං෠පොලිනීසියà·à·€à¶´à·à¶´à·”ව෠නිව් ගිනියà·à·€à¶´à·’ලිපීනයපà·à¶šà·’ස්තà·à¶±à¶ºà¶´à·à¶½" + - "න්තයà·à·à¶±à·Šà¶­ පියරේ සහ මà·à¶šà·à¶½à¶±à·Šà¶´à·’ට්කෙය්න් දූපත්පුවර්ට෠රිකà·à¶´à¶½à·ƒà·Šà¶­à·“න රà·à¶¢à·Š" + - "\u200dයයපෘතුගà·à¶½à¶ºà¶´à¶½à·à·€à·”පà·à¶»à¶œà·”වේකටà·à¶»à·Šà¶ˆà¶­ ඕෂනියà·à·€à¶»à·“යුනියන්රුමේනියà·à·€à·ƒà¶»à·Šà¶¶à·’යà·à·€à¶»à·”à·ƒ" + - "ියà·à·€à¶»à·”වන්ඩà·à·€à·ƒà·žà¶¯à·’ අරà·à¶¶à·’යසොලමන් දූපත්සීà·à·™à¶½à·Šà·ƒà·Šà·ƒà·–ඩà·à¶±à¶ºà·ƒà·Šà·€à·“ඩනයසිංගප්පූරුවà·à·à¶±" + - "්ත හෙලේනà·à·ƒà·Šà¶½à·à·€à·šà¶±à·’යà·à·€à·ƒà·Šà·€à·™à¶½à·Šà¶¶à¶»à·Šà¶©à·Š සහ ජේන් මයේන්ස්ලà·à·€à·à¶šà·’යà·à·€à·ƒà·’යරà·à¶½à·’යà·à¶±à·Šà·ƒà·à¶±" + - "à·Š මà·à¶»à·’නà·à·ƒà·™à¶±à¶œà·à¶½à¶ºà·ƒà·à¶¸à·à¶½à·’යà·à·€à·ƒà·”රිනà·à¶¸à¶ºà¶¯à¶šà·”ණු සුඩà·à¶±à¶ºà·ƒà·à¶• තà·à¶¸à·Š සහ ප්\u200dරින්සි" + - "ප්එල් à·ƒà·à¶½à·Šà·€à¶¯à·à¶»à¶ºà·à·à¶±à·Šà¶­ මà·à¶»à·Šà¶§à·™à¶±à·Šà·ƒà·’රියà·à·€à·ƒà·Šà·€à·à·ƒà·’ලන්තයට්\u200dරිස්ටන් ද කුන්හ" + - "à·à¶§à¶»à·Šà¶šà·Šà·ƒà·Š සහ කයිකොස් දූපත්චà·à¶ à·Šà¶¯à¶šà·”ණු ප්\u200dරං෠දූපත් සමූහයටොගà·à¶­à·à¶ºà·’ලන්ත" + - "යටජිකිස්තà·à¶±à¶ºà¶§à·œà¶šà¶½à·à·€à·”ටිමà·à¶»à·Š - ලෙස්ත්ටර්ක්මෙනිස්ථà·à¶±à¶ºà¶§à·’යුනීසියà·à·€à¶§à·œà¶‚ගà·à¶­à·”ර්ක" + - "ියට්\u200dරිනිඩෑඩ් සහ ටොබà·à¶œà·à¶§à·”à·€à·à¶½à·–තà·à¶ºà·’à·€à·à¶±à¶ºà¶§à·à¶±à·Šà·ƒà·à¶±à·’යà·à·€à¶ºà·”ක්රේනයඋගන්ඩà·à·€à¶‘ක" + - "්සත් ජනපද ඈත දූපත්එක්සත් ජනපදයඋරුගුවේඋස්බෙකිස්ථà·à¶±à¶ºà·€à¶­à·’කà·à¶±à·” නගරයà·à·à¶±à·Šà¶­ වි" + - "න්සන්ට් සහ ග්\u200dරෙනඩින්ස්වෙනිසියුලà·à·€à¶¶à·Š\u200dරිතà·à¶±à·Š\u200dය වර්ජින් ද" + - "ූපත්ඇමරිකà·à¶±à·” වර්ජින් දූපත්වියට්නà·à¶¸à¶ºà·€à¶±à·”à·€à·à¶§à·”à·€à·à¶½à·’ස් සහ ෆුටුනà·à·ƒà·à¶¸à·à·€à·à¶šà·œà·ƒà·à·€à·" + - "යේමනයමයà·à¶§à·Šà¶¯à¶šà·”ණු අප්\u200dරිකà·à·€à·ƒà·à¶¸à·Šà¶¶à·’යà·à·€à·ƒà·’ම්බà·à¶¶à·Šà·€à·šà·„ඳුන෠නොගත් කළà·à¶´à¶ºà¶½à·à¶šà¶º" + - "අප්\u200dරිකà·à·€à¶‹à¶­à·”රු ඇමෙරිකà·à·€à¶¯à¶šà·”ණු ඇමෙරිකà·à·€à¶•à·‚නියà·à·€à¶¶à¶§à·„ිරදිග අප්\u200dරික" + - "à·à·€à¶¸à¶°à·Š\u200dයම ඇමෙරිකà·à·€à¶´à·™à¶»à¶¯à·’ග අප්\u200dරිකà·à·€à¶‹à¶­à·”රුදිග අප්\u200dරිකà·à·€à¶¸à¶°à·Š" + - "\u200dයම අප්\u200dරිකà·à·€à¶¯à¶šà·”ණුදිග අප්\u200dරිකà·à·€à¶‡à¶¸à¶»à·’කà·à·€à¶‹à¶­à·”රුදිග ඇමෙරිකà·à·€à¶šà·" + - "රීබියන්නà·à¶œà·™à¶±à·„ිර ආසියà·à·€à¶¯à¶šà·”ණු ආසියà·à·€à¶…ග්නිදිග ආසියà·à·€à¶¯à¶šà·”ණුදිග යුරà·à¶´à¶ºà¶•à·ƒà·Šà¶§à·Š" + - "\u200dරලේෂියà·à·€à¶¸à·™à¶½à¶±à·“සියà·à·€à¶¸à¶ºà·’ක්\u200dරà·à¶±à·“සියà·à¶±à·” කළà·à¶´à¶ºà¶´à·œà¶½à·’නීසියà·à·€à¶†à·ƒà·’යà·à·€à¶¸à¶°à·Š" + - "\u200dයම ආසියà·à·€à¶¶à¶§à·„ිර ආසියà·à·€à¶ºà·”රà·à¶´à¶ºà¶±à·à¶œà·™à¶±à·„ිර යුරà·à¶´à¶ºà¶‹à¶­à·”රු යුරà·à¶´à¶ºà¶¶à¶§à·„ිර යුරà·à¶´à¶º" + - "ලතින් ඇමෙරිකà·à·€" - -// Size: 606 bytes, 291 elements -var siRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x002b, 0x0043, 0x008b, 0x00af, 0x00ed, 0x010b, 0x0129, - 0x0147, 0x0181, 0x0199, 0x01bd, 0x01e1, 0x020f, 0x0230, 0x0257, - 0x0269, 0x028b, 0x02ac, 0x02f0, 0x030b, 0x0329, 0x0341, 0x0363, - 0x0381, 0x0393, 0x03ab, 0x03bd, 0x03e5, 0x0400, 0x0412, 0x042d, - 0x046a, 0x0482, 0x0494, 0x04a6, 0x04c5, 0x04e3, 0x04f8, 0x050a, - 0x051c, 0x053e, 0x0568, 0x05a9, 0x05d9, 0x0603, 0x0629, 0x0645, - 0x0651, 0x0666, 0x0672, 0x0693, 0x06be, 0x06dc, 0x06f1, 0x070d, - 0x0722, 0x074d, 0x0768, 0x0784, 0x0799, 0x07c4, 0x07d6, 0x07f4, - // Entry 40 - 7F - 0x080f, 0x0837, 0x0855, 0x0887, 0x089f, 0x08bd, 0x08d5, 0x08f4, - 0x0915, 0x092d, 0x094b, 0x096d, 0x0988, 0x0994, 0x09bc, 0x09e9, - 0x0a05, 0x0a1a, 0x0a2c, 0x0a57, 0x0a72, 0x0a8d, 0x0aaf, 0x0ac7, - 0x0ad6, 0x0afa, 0x0b1e, 0x0b39, 0x0b4e, 0x0b69, 0x0b88, 0x0ba0, - 0x0c11, 0x0c29, 0x0c3b, 0x0c57, 0x0c66, 0x0cb8, 0x0d0d, 0x0d2b, - 0x0d4c, 0x0d5b, 0x0d79, 0x0d98, 0x0dbc, 0x0dd7, 0x0df2, 0x0e18, - 0x0e30, 0x0e91, 0x0ea0, 0x0eaf, 0x0ecd, 0x0edf, 0x0eee, 0x0f09, - 0x0f21, 0x0f30, 0x0f45, 0x0f69, 0x0f81, 0x0f96, 0x0fae, 0x0fea, - // Entry 80 - BF - 0x100f, 0x1034, 0x1046, 0x1065, 0x1080, 0x108f, 0x10a1, 0x10c3, - 0x10ed, 0x110c, 0x112a, 0x1139, 0x115a, 0x117b, 0x1196, 0x11ab, - 0x11c6, 0x11db, 0x11f6, 0x121d, 0x1245, 0x1260, 0x127f, 0x12a0, - 0x12ac, 0x12dc, 0x12fd, 0x134c, 0x1381, 0x139c, 0x13bd, 0x13db, - 0x13f0, 0x1405, 0x1421, 0x1430, 0x144b, 0x1466, 0x1484, 0x149f, - 0x14c7, 0x14d9, 0x14f8, 0x1516, 0x1531, 0x154f, 0x1561, 0x1573, - 0x1585, 0x1591, 0x15ac, 0x15bb, 0x15cd, 0x15d9, 0x160d, 0x1642, - 0x165a, 0x1678, 0x168d, 0x16c9, 0x16f7, 0x1719, 0x1744, 0x175c, - // Entry C0 - FF - 0x176b, 0x1780, 0x178f, 0x17ab, 0x17c6, 0x17e1, 0x17f9, 0x180e, - 0x1826, 0x1845, 0x1867, 0x187f, 0x1891, 0x18a6, 0x18c7, 0x18e9, - 0x190a, 0x194f, 0x1970, 0x1991, 0x19b0, 0x19c5, 0x19e0, 0x19f8, - 0x1a1a, 0x1a59, 0x1a7e, 0x1aa6, 0x1abb, 0x1adc, 0x1b11, 0x1b53, - 0x1b5f, 0x1ba1, 0x1bad, 0x1bc8, 0x1be9, 0x1bfe, 0x1c25, 0x1c52, - 0x1c73, 0x1c82, 0x1c97, 0x1cd2, 0x1ce4, 0x1cfc, 0x1d1d, 0x1d35, - 0x1d4a, 0x1d80, 0x1da2, 0x1db7, 0x1dde, 0x1e00, 0x1e57, 0x1e78, - 0x1ebf, 0x1efd, 0x1f18, 0x1f2d, 0x1f59, 0x1f6b, 0x1f7d, 0x1f8c, - // Entry 100 - 13F - 0x1f9b, 0x1fc6, 0x1fe1, 0x1fff, 0x202e, 0x203a, 0x2055, 0x207d, - 0x20a5, 0x20ba, 0x20ee, 0x2119, 0x2147, 0x217b, 0x21a9, 0x21dd, - 0x21f2, 0x2223, 0x223e, 0x2269, 0x228b, 0x22b6, 0x22e1, 0x230b, - 0x2329, 0x2369, 0x238a, 0x239c, 0x23c1, 0x23e3, 0x23f5, 0x2420, - 0x2442, 0x2464, 0x248c, -} - -// Size: 3211 bytes -var skRegionStr string = "" + - "AscensiónAndorraSpojené arabské emirátyAfganistanAntigua a BarbudaAnguil" + - "laAlbánskoArménskoHolandské AntilyAngolaAntarktídaArgentínaAmerická Samo" + - "aRakúskoAustráliaArubaÃ…landyAzerbajdžanBosna a HercegovinaBarbadosBangla" + - "déšBelgickoBurkina FasoBulharskoBahrajnBurundiBeninSvätý BartolomejBermu" + - "dyBrunejBolíviaKaribské HolandskoBrazíliaBahamyBhutánBouvetov ostrovBots" + - "wanaBieloruskoBelizeKanadaKokosové ostrovyKongo - KinshasaStredoafrická " + - "republikaKongo - BrazzavilleÅ vajÄiarskoPobrežie SlonovinyCookove ostrovy" + - "ÄŒileKamerunČínaKolumbiaClippertonKostarikaKubaKapverdyCuraçaoVianoÄný o" + - "strovCyprusÄŒeská republikaNemeckoDiego GarcíaDžibutskoDánskoDominikaDomi" + - "nikánska republikaAlžírskoCeuta a MelillaEkvádorEstónskoEgyptZápadná Sah" + - "araEritreaÅ panielskoEtiópiaEurópska úniaFínskoFidžiFalklandyMikronéziaFa" + - "erské ostrovyFrancúzskoGabonSpojené kráľovstvoGrenadaGruzínskoFrancúzska" + - " GuayanaGuernseyGhanaGibraltárGrónskoGambiaGuineaGuadeloupeRovníková Gui" + - "neaGréckoJužná Georgia a Južné Sandwichove ostrovyGuatemalaGuamGuinea-Bi" + - "ssauGuayanaHongkong – OAO ČínyHeardov ostrov a McDonaldove ostrovyHondur" + - "asChorvátskoHaitiMaÄarskoKanárske ostrovyIndonéziaÃrskoIzraelOstrov ManI" + - "ndiaBritské indickooceánske územieIrakIránIslandTalianskoJerseyJamajkaJo" + - "rdánskoJaponskoKeňaKirgizskoKambodžaKiribatiKomorySvätý KriÅ¡tof a NevisS" + - "everná KóreaJužná KóreaKuvajtKajmanie ostrovyKazachstanLaosLibanonSvätá " + - "LuciaLichtenÅ¡tajnskoSrí LankaLibériaLesothoLitvaLuxemburskoLotyÅ¡skoLíbya" + - "MarokoMonakoMoldavskoÄŒierna HoraSvätý MartinMadagaskarMarshallove ostrov" + - "yMacedónskoMaliMjanmarskoMongolskoMacao – OAO ČínySeverné MariányMartini" + - "kMauritániaMontserratMaltaMauríciusMaldivyMalawiMexikoMalajziaMozambikNa" + - "míbiaNová KaledóniaNigerNorfolkNigériaNikaraguaHolandskoNórskoNepálNauru" + - "NiueNový ZélandOmánPanamaPeruFrancúzska PolynéziaPapua Nová GuineaFilipí" + - "nyPakistanPoľskoSaint Pierre a MiquelonPitcairnove ostrovyPortorikoPales" + - "tínske územiaPortugalskoPalauParaguajKatarostatné TichomorieRéunionRumun" + - "skoSrbskoRuskoRwandaSaudská ArábiaÅ alamúnove ostrovySeychelySudánÅ védsko" + - "SingapurSvätá HelenaSlovinskoSvalbard a Jan MayenSlovenskoSierra LeoneSa" + - "n MarínoSenegalSomálskoSurinamJužný SudánSvätý Tomáš a Princov ostrovSal" + - "vádorSint MaartenSýriaSvazijskoTristan da CunhaTurks a CaicosÄŒadFrancúzs" + - "ke južné a antarktické územiaTogoThajskoTadžikistanTokelauVýchodný Timor" + - "TurkménskoTuniskoTongaTureckoTrinidad a TobagoTuvaluTaiwanTanzániaUkraji" + - "naUgandaMenÅ¡ie odľahlé ostrovy USASpojené Å¡tátyUruguajUzbekistanVatikánS" + - "vätý Vincent a GrenadínyVenezuelaBritské Panenské ostrovyAmerické Panens" + - "ké ostrovyVietnamVanuatuWallis a FutunaSamoaKosovoJemenMayotteJužná Afri" + - "kaZambiaZimbabweneznámy regiónsvetAfrikaSeverná AmerikaJužná AmerikaOceá" + - "niazápadná AfrikaStredná Amerikavýchodná Afrikaseverná Afrikastredná Afr" + - "ikajužné územia AfrikyAmerikaseverné územia AmerikyKaribikvýchodná Ãziaj" + - "užná Ãziajuhovýchodná Ãziajužná EurópaAustraláziaMelanéziaoblasÅ¥ Mikroné" + - "ziePolynéziaÃziastredná Ãziazápadná ÃziaEurópavýchodná Európaseverná Eur" + - "ópazápadná EurópaLatinská Amerika" - -// Size: 606 bytes, 291 elements -var skRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000a, 0x0011, 0x002b, 0x0035, 0x0046, 0x004e, 0x0057, - 0x0060, 0x0071, 0x0077, 0x0082, 0x008c, 0x009b, 0x00a3, 0x00ad, - 0x00b2, 0x00b9, 0x00c5, 0x00d8, 0x00e0, 0x00eb, 0x00f3, 0x00ff, - 0x0108, 0x010f, 0x0116, 0x011b, 0x012d, 0x0134, 0x013a, 0x0142, - 0x0155, 0x015e, 0x0164, 0x016b, 0x017a, 0x0182, 0x018c, 0x0192, - 0x0198, 0x01a9, 0x01b9, 0x01d1, 0x01e4, 0x01f1, 0x0204, 0x0213, - 0x0218, 0x021f, 0x0225, 0x022d, 0x0237, 0x0240, 0x0244, 0x024c, - 0x0254, 0x0265, 0x026b, 0x027c, 0x0283, 0x0290, 0x029a, 0x02a1, - // Entry 40 - 7F - 0x02a9, 0x02c0, 0x02ca, 0x02d9, 0x02e1, 0x02ea, 0x02ef, 0x02ff, - 0x0306, 0x0311, 0x0319, 0x0328, 0x032f, 0x0335, 0x033e, 0x0349, - 0x0359, 0x0364, 0x0369, 0x037e, 0x0385, 0x038f, 0x03a2, 0x03aa, - 0x03af, 0x03b9, 0x03c1, 0x03c7, 0x03cd, 0x03d7, 0x03e9, 0x03f0, - 0x041d, 0x0426, 0x042a, 0x0437, 0x043e, 0x0455, 0x0479, 0x0481, - 0x048c, 0x0491, 0x049a, 0x04ab, 0x04b5, 0x04bb, 0x04c1, 0x04cb, - 0x04d0, 0x04f1, 0x04f5, 0x04fa, 0x0500, 0x0509, 0x050f, 0x0516, - 0x0520, 0x0528, 0x052d, 0x0536, 0x053f, 0x0547, 0x054d, 0x0565, - // Entry 80 - BF - 0x0574, 0x0582, 0x0588, 0x0598, 0x05a2, 0x05a6, 0x05ad, 0x05ba, - 0x05ca, 0x05d4, 0x05dc, 0x05e3, 0x05e8, 0x05f3, 0x05fc, 0x0602, - 0x0608, 0x060e, 0x0617, 0x0623, 0x0631, 0x063b, 0x064e, 0x0659, - 0x065d, 0x0667, 0x0670, 0x0684, 0x0695, 0x069d, 0x06a8, 0x06b2, - 0x06b7, 0x06c1, 0x06c8, 0x06ce, 0x06d4, 0x06dc, 0x06e4, 0x06ec, - 0x06fc, 0x0701, 0x0708, 0x0710, 0x0719, 0x0722, 0x0729, 0x072f, - 0x0734, 0x0738, 0x0745, 0x074a, 0x0750, 0x0754, 0x076a, 0x077c, - 0x0785, 0x078d, 0x0794, 0x07ab, 0x07be, 0x07c7, 0x07db, 0x07e6, - // Entry C0 - FF - 0x07eb, 0x07f3, 0x07f8, 0x080b, 0x0813, 0x081b, 0x0821, 0x0826, - 0x082c, 0x083c, 0x0850, 0x0858, 0x085e, 0x0867, 0x086f, 0x087d, - 0x0886, 0x089a, 0x08a3, 0x08af, 0x08ba, 0x08c1, 0x08ca, 0x08d1, - 0x08df, 0x08ff, 0x0908, 0x0914, 0x091a, 0x0923, 0x0933, 0x0941, - 0x0945, 0x096f, 0x0973, 0x097a, 0x0986, 0x098d, 0x099d, 0x09a8, - 0x09af, 0x09b4, 0x09bb, 0x09cc, 0x09d2, 0x09d8, 0x09e1, 0x09e9, - 0x09ef, 0x0a0c, 0x0a1c, 0x0a23, 0x0a2d, 0x0a35, 0x0a51, 0x0a5a, - 0x0a74, 0x0a8f, 0x0a96, 0x0a9d, 0x0aac, 0x0ab1, 0x0ab7, 0x0abc, - // Entry 100 - 13F - 0x0ac3, 0x0ad1, 0x0ad7, 0x0adf, 0x0aef, 0x0af3, 0x0af9, 0x0b09, - 0x0b18, 0x0b20, 0x0b30, 0x0b40, 0x0b51, 0x0b60, 0x0b6f, 0x0b85, - 0x0b8c, 0x0ba4, 0x0bab, 0x0bbb, 0x0bc8, 0x0bdc, 0x0beb, 0x0bf7, - 0x0c01, 0x0c14, 0x0c1e, 0x0c23, 0x0c31, 0x0c40, 0x0c47, 0x0c59, - 0x0c69, 0x0c7a, 0x0c8b, -} - -// Size: 3205 bytes -var slRegionStr string = "" + - "Otok AscensionAndoraZdruženi arabski emiratiAfganistanAntigva in Barbuda" + - "AngvilaAlbanijaArmenijaNizozemski AntiliAngolaAntarktikaArgentinaAmeriÅ¡k" + - "a SamoaAvstrijaAvstralijaArubaÃ…landski otokiAzerbajdžanBosna in Hercegov" + - "inaBarbadosBangladeÅ¡BelgijaBurkina FasoBolgarijaBahrajnBurundiBeninSaint" + - " BarthélemyBermudiBrunejBolivijaNizozemski KaribiBrazilijaBahamiButanBou" + - "vetov otokBocvanaBelorusijaBelizeKanadaKokosovi otokiDemokratiÄna republ" + - "ika KongoCentralnoafriÅ¡ka republikaKongo - BrazzavilleÅ vicaSlonokoÅ¡Äena " + - "obalaCookovi otokiÄŒileKamerunKitajskaKolumbijaOtok ClippertonKostarikaKu" + - "baZelenortski otokiCuraçaoBožiÄni otokCiperÄŒeÅ¡kaNemÄijaDiego GarciaDžibu" + - "tiDanskaDominikaDominikanska republikaAlžirijaCeuta in MelillaEkvadorEst" + - "onijaEgiptZahodna SaharaEritrejaÅ panijaEtiopijaEvropska unijaFinskaFidži" + - "Falklandski otokiMikronezijaFerski otokiFrancijaGabonZdruženo kraljestvo" + - "GrenadaGruzijaFrancoska GvajanaGuernseyGanaGibraltarGrenlandijaGambijaGv" + - "inejaGvadalupeEkvatorialna GvinejaGrÄijaJužna Georgia in Južni Sandwiche" + - "vi otokiGvatemalaGuamGvineja BissauGvajanaPosebno administrativno obmoÄj" + - "e LR Kitajske Hong KongHeardov otok in McDonaldovi otokiHondurasHrvaÅ¡kaH" + - "aitiMadžarskaKanarski otokiIndonezijaIrskaIzraelOtok ManIndijaBritansko " + - "ozemlje v Indijskem oceanuIrakIranIslandijaItalijaJerseyJamajkaJordanija" + - "JaponskaKenijaKirgizistanKambodžaKiribatiKomoriSaint Kitts in NevisSever" + - "na KorejaJužna KorejaKuvajtKajmanski otokiKazahstanLaosLibanonSaint Luci" + - "aLihtenÅ¡tajnÅ rilankaLiberijaLesotoLitvaLuksemburgLatvijaLibijaMarokoMona" + - "koMoldavijaÄŒrna goraSaint MartinMadagaskarMarshallovi otokiMakedonijaMal" + - "iMjanmar (Burma)MongolijaPosebno administrativno obmoÄje LR Kitajske Mac" + - "aoSeverni Marianski otokiMartinikMavretanijaMontserratMaltaMauritiusMald" + - "iviMalaviMehikaMalezijaMozambikNamibijaNova KaledonijaNigerNorfolÅ¡ki oto" + - "kNigerijaNikaragvaNizozemskaNorveÅ¡kaNepalNauruNiueNova ZelandijaOmanPana" + - "maPeruFrancoska PolinezijaPapua Nova GvinejaFilipiniPakistanPoljskaSaint" + - " Pierre in MiquelonPitcairnPortorikoPalestinsko ozemljePortugalskaPalauP" + - "aragvajKatarOstala oceanijaReunionRomunijaSrbijaRusijaRuandaSaudova Arab" + - "ijaSalomonovi otokiSejÅ¡eliSudanÅ vedskaSingapurSveta HelenaSlovenijaSvalb" + - "ard in Jan MayenSlovaÅ¡kaSierra LeoneSan MarinoSenegalSomalijaSurinamJužn" + - "i SudanSao Tome in PrincipeSalvadorSint MaartenSirijaSvaziTristan da Cun" + - "haOtoÄji Turks in CaicosÄŒadFrancosko južno ozemljeTogoTajskaTadžikistanT" + - "okelauVzhodni TimorTurkmenistanTunizijaTongaTurÄijaTrinidad in TobagoTuv" + - "aluTajvanTanzanijaUkrajinaUgandaDruga ameriÅ¡ka ozemlja v Tihem oceanuZdr" + - "užene države AmerikeUrugvajUzbekistanVatikanSaint Vincent in GrenadineVe" + - "nezuelaBritanski DeviÅ¡ki otokiAmeriÅ¡ki DeviÅ¡ki otokiVietnamVanuatuWallis" + - " in FutunaSamoaKosovoJemenMayotteJužnoafriÅ¡ka republikaZambijaZimbabveNe" + - "znano ali neveljavno obmoÄjeSvetAfrikaSeverna AmerikaJužna AmerikaOceani" + - "jaZahodna AfrikaSrednja AmerikaVzhodna AfrikaSeverna AfrikaSrednja Afrik" + - "aJužna AfrikaAmerikesevernoameriÅ¡ka celinaKaribiVzhodna AzijaJužna Azija" + - "Jugovzhodna AzijaJužna EvropaAvstralija in Nova ZelandijaMelanezijamikro" + - "nezijska regijaPolinezijaAzijaOsrednja AzijaZahodna AzijaEvropaVzhodna E" + - "vropaSeverna EvropaZahodna EvropaLatinska Amerika" - -// Size: 606 bytes, 291 elements -var slRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000e, 0x0014, 0x002d, 0x0037, 0x0049, 0x0050, 0x0058, - 0x0060, 0x0071, 0x0077, 0x0081, 0x008a, 0x0099, 0x00a1, 0x00ab, - 0x00b0, 0x00bf, 0x00cb, 0x00df, 0x00e7, 0x00f1, 0x00f8, 0x0104, - 0x010d, 0x0114, 0x011b, 0x0120, 0x0131, 0x0138, 0x013e, 0x0146, - 0x0157, 0x0160, 0x0166, 0x016b, 0x0178, 0x017f, 0x0189, 0x018f, - 0x0195, 0x01a3, 0x01c0, 0x01db, 0x01ee, 0x01f4, 0x0208, 0x0215, - 0x021a, 0x0221, 0x0229, 0x0232, 0x0241, 0x024a, 0x024e, 0x025f, - 0x0267, 0x0275, 0x027a, 0x0281, 0x0289, 0x0295, 0x029d, 0x02a3, - // Entry 40 - 7F - 0x02ab, 0x02c1, 0x02ca, 0x02da, 0x02e1, 0x02e9, 0x02ee, 0x02fc, - 0x0304, 0x030c, 0x0314, 0x0322, 0x0328, 0x032e, 0x033f, 0x034a, - 0x0356, 0x035e, 0x0363, 0x0377, 0x037e, 0x0385, 0x0396, 0x039e, - 0x03a2, 0x03ab, 0x03b6, 0x03bd, 0x03c4, 0x03cd, 0x03e1, 0x03e8, - 0x0412, 0x041b, 0x041f, 0x042d, 0x0434, 0x046a, 0x048b, 0x0493, - 0x049b, 0x04a0, 0x04aa, 0x04b8, 0x04c2, 0x04c7, 0x04cd, 0x04d5, - 0x04db, 0x04ff, 0x0503, 0x0507, 0x0510, 0x0517, 0x051d, 0x0524, - 0x052d, 0x0535, 0x053b, 0x0546, 0x054f, 0x0557, 0x055d, 0x0571, - // Entry 80 - BF - 0x057f, 0x058c, 0x0592, 0x05a1, 0x05aa, 0x05ae, 0x05b5, 0x05c0, - 0x05cc, 0x05d5, 0x05dd, 0x05e3, 0x05e8, 0x05f2, 0x05f9, 0x05ff, - 0x0605, 0x060b, 0x0614, 0x061e, 0x062a, 0x0634, 0x0645, 0x064f, - 0x0653, 0x0662, 0x066b, 0x069d, 0x06b4, 0x06bc, 0x06c7, 0x06d1, - 0x06d6, 0x06df, 0x06e6, 0x06ec, 0x06f2, 0x06fa, 0x0702, 0x070a, - 0x0719, 0x071e, 0x072d, 0x0735, 0x073e, 0x0748, 0x0751, 0x0756, - 0x075b, 0x075f, 0x076d, 0x0771, 0x0777, 0x077b, 0x078f, 0x07a1, - 0x07a9, 0x07b1, 0x07b8, 0x07d0, 0x07d8, 0x07e1, 0x07f4, 0x07ff, - // Entry C0 - FF - 0x0804, 0x080c, 0x0811, 0x0820, 0x0827, 0x082f, 0x0835, 0x083b, - 0x0841, 0x0850, 0x0860, 0x0868, 0x086d, 0x0875, 0x087d, 0x0889, - 0x0892, 0x08a7, 0x08b0, 0x08bc, 0x08c6, 0x08cd, 0x08d5, 0x08dc, - 0x08e8, 0x08fc, 0x0904, 0x0910, 0x0916, 0x091b, 0x092b, 0x0942, - 0x0946, 0x095e, 0x0962, 0x0968, 0x0974, 0x097b, 0x0988, 0x0994, - 0x099c, 0x09a1, 0x09a9, 0x09bb, 0x09c1, 0x09c7, 0x09d0, 0x09d8, - 0x09de, 0x0a04, 0x0a1d, 0x0a24, 0x0a2e, 0x0a35, 0x0a4f, 0x0a58, - 0x0a70, 0x0a88, 0x0a8f, 0x0a96, 0x0aa6, 0x0aab, 0x0ab1, 0x0ab6, - // Entry 100 - 13F - 0x0abd, 0x0ad5, 0x0adc, 0x0ae4, 0x0b03, 0x0b07, 0x0b0d, 0x0b1c, - 0x0b2a, 0x0b32, 0x0b40, 0x0b4f, 0x0b5d, 0x0b6b, 0x0b79, 0x0b86, - 0x0b8d, 0x0ba4, 0x0baa, 0x0bb7, 0x0bc3, 0x0bd4, 0x0be1, 0x0bfd, - 0x0c07, 0x0c1b, 0x0c25, 0x0c2a, 0x0c38, 0x0c45, 0x0c4b, 0x0c59, - 0x0c67, 0x0c75, 0x0c85, -} - -// Size: 3118 bytes -var sqRegionStr string = "" + - "Ishulli AsenshionAndorrëEmiratet e Bashkuara ArabeAfganistanAntigua e Ba" + - "rbudaAnguilëShqipëriArmeniAngolëAntarktikëArgjentinëSamoa AmerikaneAustr" + - "iAustraliArubëIshujt AlandëAzerbajxhanBosnjë-HercegovinëBarbadosBanglade" + - "shBelgjikëBurkina FasoBullgariBahreinBurundBeninShën BartolemeoBermudëBr" + - "unejBoliviKaraibet holandezeBrazilBahamasButanIshujt BoveBotsvanëBjellor" + - "usiBelizëKanadaIshujt KokosKongo-KinshasaRepublika Afrikano-QendroreKong" + - "o-BrazavilëZvicërBregu i FildishtëIshujt KukëKiliKamerunKinëKolumbiIshul" + - "li KlipërtonKosta RikëKubëKepi i GjelbërKuraçaoIshulli i KrishtlindjesQi" + - "proRepublika ÇekeGjermaniDiego GarsiaXhibutDanimarkëDominikëRepublika Do" + - "minikaneAlgjeriTheuta e MelilaEkuadorEstoniEgjiptSaharaja PerëndimoreEri" + - "treSpanjëEtiopiBashkimi EuropianFinlandëFixhiIshujt FolklandëMikroneziIs" + - "hujt FaroeFrancëGabonMbretëria e BashkuarGrenadëGjeorgjiGuajana Franceze" + - "GuernsejGanëGjibraltarGrenlandëGambiGuineGuadalupeGuineja EkuatorialeGre" + - "qiXhorxha Jugore dhe Ishujt Senduiç të JugutGuatemalëGuamGuine-BisauGuaj" + - "anëRVAK i Hong KongutIshulli Hërd dhe Ishujt MekdonaldHondurasKroaciHait" + - "iHungariIshujt KanarieIndoneziIrlandëIzraelIshulli i ManitIndiTerritori " + - "Britanik i Oqeanit IndianIrakIranIslandëItaliXhersejXhamajkëJordaniJapon" + - "iKeniaKirgistanKamboxhiaQiribatiKomoreShën Kits e NevisKoreja e VeriutKo" + - "reja e JugutKuvajtIshujt KajmanëKazakistanLaosLibanShën LuçiaLihtënshtaj" + - "nSri LankëLiberiLesotoLituaniLuksemburgLetoniLibiMarokMonakoMoldaviMali " + - "i ZiShën MartinMadagaskarIshujt MarshallëMaqedoniMaliMianmar (Burma)Mong" + - "oliRVAK i MakaosIshujt e Marianës VerioreMartinikMauritaniMontseratMaltë" + - "MauritiusMaldiveMalaviMeksikëMalajziMozambikNamibiKaledonia e ReNigerIsh" + - "ujt NorfolkëNigeriNikaraguaHolandëNorvegjiNepalNauruNiueZelanda e ReOman" + - "PanamaPeruPolinezia FrancezePapua Guineja e ReFilipinePakistanPoloniShën" + - " Peir dhe MikuelonIshujt PitkernëPorto RikoTerritoret PalestinezePortuga" + - "liPalauParaguaiKatarOqeania e Largët (Lindja e Largët)ReunionRumaniSerbi" + - "RusiRuandëArabia SauditeIshujt SolomonëSishelSudanSuediSingaporShën Hele" + - "naSlloveniSvalbard e Zhan MajenSllovakiSiera LeoneSan MarinoSenegaliSoma" + - "liSurinamiSudani i JugutSao Tome e PrinsipeEl SalvadorShën Martin (Sint " + - "Maarten-pjesa e Mbretërisë së Holandës)SiriSvazilandëTristan da KunaIshu" + - "jt Turke dhe KaikeÇadTerritoret Australiane FrancezeTogoTajlandëTaxhikis" + - "tanTokelauTimori LindorTurkmenistanTuniziTongaTurqiTrinidad e TobagoTuva" + - "luTajvanTanzaniUkrainëUgandëIshujt periferikë të SHBA-sëShtetet e Bashku" + - "ara të AmerikësUruguaiUzbekistanVatikanShën Vinsent dhe GrenadinetVenezu" + - "elëIshujt e Virgjër BritanikëIshujt e Virgjër AmerikanëVietnamVanuatuUol" + - "lis e FutinaSamoaKosovëJemenMajotëAfrika e JugutZambiZimbabveI panjohurB" + - "otaAfrikëAmerika e VeriutAmerika e JugutOqeaniAfrika PerëndimoreAmerika " + - "QendroreAfrika LindoreAfrika VerioreAfrika e MesmeAfrika JugoreAmerikëAm" + - "erika VerioreKaraibeAzia LindoreAzia JugoreAzia JuglindoreEuropa JugoreA" + - "ustralaziaMelaneziaRajoni MikronezianPolineziaAziAzia QendroreAzia Perën" + - "dimoreEuropëEuropa LindoreEuropa VerioreEuropa PerëndimoreAmerika Latine" - -// Size: 606 bytes, 291 elements -var sqRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0011, 0x0019, 0x0033, 0x003d, 0x004e, 0x0056, 0x005f, - 0x0065, 0x0065, 0x006c, 0x0077, 0x0082, 0x0091, 0x0097, 0x009f, - 0x00a5, 0x00b3, 0x00be, 0x00d2, 0x00da, 0x00e4, 0x00ed, 0x00f9, - 0x0101, 0x0108, 0x010e, 0x0113, 0x0123, 0x012b, 0x0131, 0x0137, - 0x0149, 0x014f, 0x0156, 0x015b, 0x0166, 0x016f, 0x0179, 0x0180, - 0x0186, 0x0192, 0x01a0, 0x01bb, 0x01cb, 0x01d2, 0x01e4, 0x01f0, - 0x01f4, 0x01fb, 0x0200, 0x0207, 0x0219, 0x0224, 0x0229, 0x0238, - 0x0240, 0x0257, 0x025c, 0x026b, 0x0273, 0x027f, 0x0285, 0x028f, - // Entry 40 - 7F - 0x0298, 0x02ac, 0x02b3, 0x02c2, 0x02c9, 0x02cf, 0x02d5, 0x02ea, - 0x02f0, 0x02f7, 0x02fd, 0x030e, 0x0317, 0x031c, 0x032d, 0x0336, - 0x0342, 0x0349, 0x034e, 0x0363, 0x036b, 0x0373, 0x0383, 0x038b, - 0x0390, 0x039a, 0x03a4, 0x03a9, 0x03ae, 0x03b7, 0x03ca, 0x03cf, - 0x03fb, 0x0405, 0x0409, 0x0414, 0x041c, 0x042e, 0x0450, 0x0458, - 0x045e, 0x0463, 0x046a, 0x0478, 0x0480, 0x0488, 0x048e, 0x049d, - 0x04a1, 0x04c4, 0x04c8, 0x04cc, 0x04d4, 0x04d9, 0x04e0, 0x04e9, - 0x04f0, 0x04f6, 0x04fb, 0x0504, 0x050d, 0x0515, 0x051b, 0x052d, - // Entry 80 - BF - 0x053c, 0x054a, 0x0550, 0x055f, 0x0569, 0x056d, 0x0572, 0x057e, - 0x058b, 0x0595, 0x059b, 0x05a1, 0x05a8, 0x05b2, 0x05b8, 0x05bc, - 0x05c1, 0x05c7, 0x05ce, 0x05d7, 0x05e3, 0x05ed, 0x05fe, 0x0606, - 0x060a, 0x0619, 0x0620, 0x062d, 0x0647, 0x064f, 0x0658, 0x0661, - 0x0667, 0x0670, 0x0677, 0x067d, 0x0685, 0x068c, 0x0694, 0x069a, - 0x06a8, 0x06ad, 0x06bd, 0x06c3, 0x06cc, 0x06d4, 0x06dc, 0x06e1, - 0x06e6, 0x06ea, 0x06f6, 0x06fa, 0x0700, 0x0704, 0x0716, 0x0728, - 0x0730, 0x0738, 0x073e, 0x0755, 0x0765, 0x076f, 0x0785, 0x078e, - // Entry C0 - FF - 0x0793, 0x079b, 0x07a0, 0x07c4, 0x07cb, 0x07d1, 0x07d6, 0x07da, - 0x07e1, 0x07ef, 0x07ff, 0x0805, 0x080a, 0x080f, 0x0817, 0x0823, - 0x082b, 0x0840, 0x0848, 0x0853, 0x085d, 0x0865, 0x086b, 0x0873, - 0x0881, 0x0894, 0x089f, 0x08dd, 0x08e1, 0x08ec, 0x08fb, 0x0911, - 0x0915, 0x0934, 0x0938, 0x0941, 0x094c, 0x0953, 0x0960, 0x096c, - 0x0972, 0x0977, 0x097c, 0x098d, 0x0993, 0x0999, 0x09a0, 0x09a8, - 0x09af, 0x09ce, 0x09ef, 0x09f6, 0x0a00, 0x0a07, 0x0a23, 0x0a2d, - 0x0a49, 0x0a65, 0x0a6c, 0x0a73, 0x0a82, 0x0a87, 0x0a8e, 0x0a93, - // Entry 100 - 13F - 0x0a9a, 0x0aa8, 0x0aad, 0x0ab5, 0x0abf, 0x0ac3, 0x0aca, 0x0ada, - 0x0ae9, 0x0aef, 0x0b02, 0x0b12, 0x0b20, 0x0b2e, 0x0b3c, 0x0b49, - 0x0b51, 0x0b60, 0x0b67, 0x0b73, 0x0b7e, 0x0b8d, 0x0b9a, 0x0ba5, - 0x0bae, 0x0bc0, 0x0bc9, 0x0bcc, 0x0bd9, 0x0bea, 0x0bf1, 0x0bff, - 0x0c0d, 0x0c20, 0x0c2e, -} - -// Size: 5917 bytes -var srRegionStr string = "" + - "ОÑтрво ÐÑенÑионÐндораУједињени ÐрапÑки ЕмиратиÐвганиÑтанÐнтигва и Барбуд" + - "аÐнгвилаÐлбанијаЈерменијаХоландÑки ÐнтилиÐнголаÐнтарктикÐргентинаÐмерич" + - "ка СамоаÐуÑтријаÐуÑтралијаÐрубаОландÑка оÑтрваÐзербејџанБоÑна и Херцего" + - "винаБарбадоÑБангладешБелгијаБуркина ФаÑоБугарÑкаБахреинБурундиБенинСвет" + - "и БартоломејБермудаБрунејБоливијаКарипÑка ХоландијаБразилБахамиБутанОÑÑ‚" + - "рво БувеБоцванаБелоруÑÐ¸Ñ˜Ð°Ð‘ÐµÐ»Ð¸Ð·ÐµÐšÐ°Ð½Ð°Ð´Ð°ÐšÐ¾ÐºÐ¾Ñ (Келинг) ОÑтрваКонго - Кинша" + - "ÑаЦентралноафричка РепубликаКонго - БразавилШвајцарÑкаОбала СлоновачеКу" + - "кова ОÑтрваЧилеКамерунКинаКолумбијаОÑтрво КлипертонКоÑтарикаКубаЗеленор" + - "Ñ‚Ñка ОÑтрваКураÑаоБожићно оÑтрвоКипарЧешкаÐемачкаДијего ГарÑијаÐибутиДа" + - "нÑкаДоминикаДоминиканÑка РепубликаÐлжирСеута и МелиљаЕквадорЕÑтонијаЕги" + - "патЗападна СахараЕритрејаШпанијаЕтиопијаЕвропÑка УнијаФинÑкаФиџиФокланд" + - "Ñка оÑтрваМикронезијаФарÑка ОÑтрваФранцуÑкаГабонВелика БританијаГренада" + - "ГрузијаФранцуÑка ГвајанаГурнÑиГанаГибралтарГренландГамбијаГвинејаГвадел" + - "упеЕкваторијална ГвинејаГрчкаЈужна Ðорџија и Јужна Сендвич ОÑтрваГватем" + - "алаГуамГвинеја-БиÑаоГвајанаХонг Конг С. Ð. Р. КинаОÑтрва Херд и Мекдона" + - "лдХондураÑХрватÑкаХаитиМађарÑкаКанарÑка оÑтрваИндонезијаИрÑкаИзраелОÑÑ‚Ñ€" + - "во МанИндијаБританÑка територија у ИндијÑком океануИракИранИÑландИталиј" + - "аÐерÑиЈамајкаЈорданЈапанКенијаКиргиÑтанКамбоџаКирибатиКоморÑка ОÑтрваСе" + - "нт ÐšÐ¸Ñ‚Ñ Ð¸ ÐевиÑСеверна КорејаЈужна КорејаКувајтКајманÑка ОÑтрваКазахÑта" + - "нЛаоÑЛибанСвета ЛуцијаЛихтенштајнШри ЛанкаЛиберијаЛеÑотоЛитванијаЛукÑем" + - "бургЛетонијаЛибијаМарокоМонакоМолдавијаЦрна ГораСент МартинМадагаÑкарМа" + - "ршалÑка ОÑтрваМакедонијаМалиМијанмар (Бурма)МонголијаСÐР Макао (Кина)Се" + - "верна МаријанÑка ОÑтрваМартиникМауританијаМонÑератМалтаМаурицијуÑМалдив" + - "иМалавиМекÑикоМалезијаМозамбикÐамибијаÐова КаледонијаÐигерÐорфолк ОÑтрв" + - "оÐигеријаÐикарагваХоландијаÐорвешкаÐепалÐауруÐиуеÐови ЗеландОманПанамаП" + - "еруФранцуÑка ПолинезијаПапуа Ðова ГвинејаФилипиниПакиÑтанПољÑкаСен Пјер" + - " и МикелонПиткернПорторикоПалеÑтинÑке територијеПортугалПалауПарагвајКат" + - "арОкеанија (удаљена оÑтрва)РеинионРумунијаСрбијаРуÑијаРуандаСаудијÑка Ð" + - "рабијаСоломонÑка ОÑтрваСејшелиСуданШведÑкаСингапурСвета ЈеленаСловенија" + - "Свалбард и Јан МајенСловачкаСијера ЛеонеСан МариноСенегалСомалијаСурина" + - "мЈужни СуданСао Томе и ПринципеСалвадорСвети МартинСиријаСвазилендТриÑÑ‚" + - "ан да КуњаОÑтрва Ð¢ÑƒÑ€ÐºÑ Ð¸ КаикоÑЧадФранцуÑке Јужне ТериторијеТогоТајланд" + - "ТаџикиÑтанТокелауИÑточни ТиморТуркмениÑтанТуниÑТонгаТурÑкаТринидад и То" + - "багоТувалуТајванТанзанијаУкрајинаУгандаУдаљена оÑтрва СÐДСједињене Ðмер" + - "ичке ДржавеУругвајУзбекиÑтанВатиканСент ВинÑент и ГренадиниВенецуелаБри" + - "танÑка ДевичанÑка ОÑтрваÐмеричка ДевичанÑка ОÑÑ‚Ñ€Ð²Ð°Ð’Ð¸Ñ˜ÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ’Ð°Ð»Ð¸Ñ " + - "и ФутунаСамоаКоÑовоЈеменМајотЈужноафричка РепубликаЗамбијаЗимбабвеÐепоз" + - "нат регионÑветÐфрикаСеверноамерички континентЈужна ÐмерикаОкеанијаЗапад" + - "на ÐфрикаЦентрална ÐмерикаИÑточна ÐфрикаСеверна ÐфрикаЦентрална ÐфрикаЈ" + - "ужна ÐфрикаСеверна и Јужна ÐмерикаСеверна ÐмерикаКарибиИÑточна ÐзијаЈуж" + - "на ÐзијаЈугоиÑточна ÐзијаЈужна ЕвропаÐуÑтралија и Ðови ЗеландМеланезија" + - "МикронезијÑки регионПолинезијаÐзијаЦентрална ÐзијаЗападна ÐзијаЕвропаИÑ" + - "точна ЕвропаСеверна ЕвропаЗападна ЕвропаЛатинÑка Ðмерика" - -// Size: 606 bytes, 291 elements -var srRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x001d, 0x0029, 0x0059, 0x006d, 0x008d, 0x009b, 0x00ab, - 0x00bd, 0x00dc, 0x00e8, 0x00fa, 0x010c, 0x0127, 0x0137, 0x014b, - 0x0155, 0x0172, 0x0186, 0x01aa, 0x01ba, 0x01cc, 0x01da, 0x01f1, - 0x0201, 0x020f, 0x021d, 0x0227, 0x0246, 0x0254, 0x0260, 0x0270, - 0x0293, 0x029f, 0x02ab, 0x02b5, 0x02ca, 0x02d8, 0x02ec, 0x02f8, - 0x0304, 0x032a, 0x0345, 0x0378, 0x0395, 0x03a9, 0x03c6, 0x03df, - 0x03e7, 0x03f5, 0x03fd, 0x040f, 0x042e, 0x0440, 0x0448, 0x046b, - 0x0479, 0x0494, 0x049e, 0x04a8, 0x04b6, 0x04d1, 0x04dd, 0x04e9, - // Entry 40 - 7F - 0x04f9, 0x0524, 0x052e, 0x0548, 0x0556, 0x0566, 0x0572, 0x058d, - 0x059d, 0x05ab, 0x05bb, 0x05d6, 0x05e2, 0x05ea, 0x060b, 0x0621, - 0x063a, 0x064c, 0x0656, 0x0675, 0x0683, 0x0691, 0x06b2, 0x06be, - 0x06c6, 0x06d8, 0x06e8, 0x06f6, 0x0704, 0x0716, 0x073f, 0x0749, - 0x078c, 0x079e, 0x07a6, 0x07bf, 0x07cd, 0x07f3, 0x081e, 0x082e, - 0x083e, 0x0848, 0x0858, 0x0875, 0x0889, 0x0893, 0x089f, 0x08b2, - 0x08be, 0x0908, 0x0910, 0x0918, 0x0924, 0x0932, 0x093c, 0x094a, - 0x0956, 0x0960, 0x096c, 0x097e, 0x098c, 0x099c, 0x09b9, 0x09d8, - // Entry 80 - BF - 0x09f3, 0x0a0a, 0x0a16, 0x0a35, 0x0a47, 0x0a4f, 0x0a59, 0x0a70, - 0x0a86, 0x0a97, 0x0aa7, 0x0ab3, 0x0ac5, 0x0ad9, 0x0ae9, 0x0af5, - 0x0b01, 0x0b0d, 0x0b1f, 0x0b30, 0x0b45, 0x0b59, 0x0b78, 0x0b8c, - 0x0b94, 0x0bb1, 0x0bc3, 0x0bdf, 0x0c0f, 0x0c1f, 0x0c35, 0x0c45, - 0x0c4f, 0x0c63, 0x0c71, 0x0c7d, 0x0c8b, 0x0c9b, 0x0cab, 0x0cbb, - 0x0cd8, 0x0ce2, 0x0cfd, 0x0d0d, 0x0d1f, 0x0d31, 0x0d41, 0x0d4b, - 0x0d55, 0x0d5d, 0x0d72, 0x0d7a, 0x0d86, 0x0d8e, 0x0db5, 0x0dd7, - 0x0de7, 0x0df7, 0x0e03, 0x0e24, 0x0e32, 0x0e44, 0x0e6f, 0x0e7f, - // Entry C0 - FF - 0x0e89, 0x0e99, 0x0ea3, 0x0ed1, 0x0edf, 0x0eef, 0x0efb, 0x0f07, - 0x0f13, 0x0f34, 0x0f55, 0x0f63, 0x0f6d, 0x0f7b, 0x0f8b, 0x0fa2, - 0x0fb4, 0x0fd9, 0x0fe9, 0x1000, 0x1013, 0x1021, 0x1031, 0x103f, - 0x1054, 0x1077, 0x1087, 0x109e, 0x10aa, 0x10bc, 0x10d8, 0x10ff, - 0x1105, 0x1137, 0x113f, 0x114d, 0x1161, 0x116f, 0x1188, 0x11a0, - 0x11aa, 0x11b4, 0x11c0, 0x11e0, 0x11ec, 0x11f8, 0x120a, 0x121a, - 0x1226, 0x1248, 0x1278, 0x1286, 0x129a, 0x12a8, 0x12d5, 0x12e7, - 0x131b, 0x134d, 0x135d, 0x136b, 0x1385, 0x138f, 0x139b, 0x13a5, - // Entry 100 - 13F - 0x13af, 0x13da, 0x13e8, 0x13f8, 0x1415, 0x141d, 0x1429, 0x145a, - 0x1473, 0x1483, 0x149e, 0x14bf, 0x14da, 0x14f5, 0x1514, 0x152b, - 0x1556, 0x1573, 0x157f, 0x1598, 0x15ad, 0x15ce, 0x15e5, 0x1612, - 0x1626, 0x164d, 0x1661, 0x166b, 0x1688, 0x16a1, 0x16ad, 0x16c8, - 0x16e3, 0x16fe, 0x171d, -} - -// Size: 3111 bytes -var srLatnRegionStr string = "" + - "Ostrvo AsensionAndoraUjedinjeni Arapski EmiratiAvganistanAntigva i Barbu" + - "daAngvilaAlbanijaJermenijaHolandski AntiliAngolaAntarktikArgentinaAmeriÄ" + - "ka SamoaAustrijaAustralijaArubaOlandska ostrvaAzerbejdžanBosna i Hercego" + - "vinaBarbadosBangladeÅ¡BelgijaBurkina FasoBugarskaBahreinBurundiBeninSveti" + - " BartolomejBermudaBrunejBolivijaKaripska HolandijaBrazilBahamiButanOstrv" + - "o BuveBocvanaBelorusijaBelizeKanadaKokos (Keling) OstrvaKongo - KinÅ¡asaC" + - "entralnoafriÄka RepublikaKongo - BrazavilÅ vajcarskaObala SlonovaÄeKukova" + - " OstrvaÄŒileKamerunKinaKolumbijaOstrvo KlipertonKostarikaKubaZelenortska " + - "OstrvaKurasaoBožićno ostrvoKiparÄŒeÅ¡kaNemaÄkaDijego GarsijaDžibutiDanskaD" + - "ominikaDominikanska RepublikaAlžirSeuta i MeliljaEkvadorEstonijaEgipatZa" + - "padna SaharaEritrejaÅ panijaEtiopijaEvropska UnijaFinskaFidžiFoklandska o" + - "strvaMikronezijaFarska OstrvaFrancuskaGabonVelika BritanijaGrenadaGruzij" + - "aFrancuska GvajanaGurnsiGanaGibraltarGrenlandGambijaGvinejaGvadelupeEkva" + - "torijalna GvinejaGrÄkaJužna Džordžija i Južna SendviÄ OstrvaGvatemalaGua" + - "mGvineja-BisaoGvajanaHong Kong S. A. R. KinaOstrva Herd i MekdonaldHondu" + - "rasHrvatskaHaitiMaÄ‘arskaKanarska ostrvaIndonezijaIrskaIzraelOstrvo ManIn" + - "dijaBritanska teritorija u Indijskom okeanuIrakIranIslandItalijaDžersiJa" + - "majkaJordanJapanKenijaKirgistanKambodžaKiribatiKomorska OstrvaSent Kits " + - "i NevisSeverna KorejaJužna KorejaKuvajtKajmanska OstrvaKazahstanLaosLiba" + - "nSveta LucijaLihtenÅ¡tajnÅ ri LankaLiberijaLesotoLitvanijaLuksemburgLetoni" + - "jaLibijaMarokoMonakoMoldavijaCrna GoraSent MartinMadagaskarMarÅ¡alska Ost" + - "rvaMakedonijaMaliMijanmar (Burma)MongolijaSAR Makao (Kina)Severna Marija" + - "nska OstrvaMartinikMauritanijaMonseratMaltaMauricijusMaldiviMalaviMeksik" + - "oMalezijaMozambikNamibijaNova KaledonijaNigerNorfolk OstrvoNigerijaNikar" + - "agvaHolandijaNorveÅ¡kaNepalNauruNiueNovi ZelandOmanPanamaPeruFrancuska Po" + - "linezijaPapua Nova GvinejaFilipiniPakistanPoljskaSen Pjer i MikelonPitke" + - "rnPortorikoPalestinske teritorijePortugalPalauParagvajKatarOkeanija (uda" + - "ljena ostrva)ReinionRumunijaSrbijaRusijaRuandaSaudijska ArabijaSolomonsk" + - "a OstrvaSejÅ¡eliSudanÅ vedskaSingapurSveta JelenaSlovenijaSvalbard i Jan M" + - "ajenSlovaÄkaSijera LeoneSan MarinoSenegalSomalijaSurinamJužni SudanSao T" + - "ome i PrincipeSalvadorSveti MartinSirijaSvazilendTristan da KunjaOstrva " + - "Turks i KaikosÄŒadFrancuske Južne TeritorijeTogoTajlandTadžikistanTokelau" + - "IstoÄni TimorTurkmenistanTunisTongaTurskaTrinidad i TobagoTuvaluTajvanTa" + - "nzanijaUkrajinaUgandaUdaljena ostrva SADSjedinjene AmeriÄke DržaveUrugva" + - "jUzbekistanVatikanSent Vinsent i GrenadiniVenecuelaBritanska DeviÄanska " + - "OstrvaAmeriÄka DeviÄanska OstrvaVijetnamVanuatuValis i FutunaSamoaKosovo" + - "JemenMajotJužnoafriÄka RepublikaZambijaZimbabveNepoznat regionsvetAfrika" + - "SevernoameriÄki kontinentJužna AmerikaOkeanijaZapadna AfrikaCentralna Am" + - "erikaIstoÄna AfrikaSeverna AfrikaCentralna AfrikaJužna AfrikaSeverna i J" + - "užna AmerikaSeverna AmerikaKaribiIstoÄna AzijaJužna AzijaJugoistoÄna Azi" + - "jaJužna EvropaAustralija i Novi ZelandMelanezijaMikronezijski regionPoli" + - "nezijaAzijaCentralna AzijaZapadna AzijaEvropaIstoÄna EvropaSeverna Evrop" + - "aZapadna EvropaLatinska Amerika" - -// Size: 606 bytes, 291 elements -var srLatnRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000f, 0x0015, 0x002f, 0x0039, 0x004a, 0x0051, 0x0059, - 0x0062, 0x0072, 0x0078, 0x0081, 0x008a, 0x0099, 0x00a1, 0x00ab, - 0x00b0, 0x00bf, 0x00cb, 0x00de, 0x00e6, 0x00f0, 0x00f7, 0x0103, - 0x010b, 0x0112, 0x0119, 0x011e, 0x012e, 0x0135, 0x013b, 0x0143, - 0x0155, 0x015b, 0x0161, 0x0166, 0x0171, 0x0178, 0x0182, 0x0188, - 0x018e, 0x01a3, 0x01b3, 0x01ce, 0x01de, 0x01e9, 0x01f9, 0x0206, - 0x020b, 0x0212, 0x0216, 0x021f, 0x022f, 0x0238, 0x023c, 0x024e, - 0x0255, 0x0265, 0x026a, 0x0271, 0x0279, 0x0287, 0x028f, 0x0295, - // Entry 40 - 7F - 0x029d, 0x02b3, 0x02b9, 0x02c8, 0x02cf, 0x02d7, 0x02dd, 0x02eb, - 0x02f3, 0x02fb, 0x0303, 0x0311, 0x0317, 0x031d, 0x032e, 0x0339, - 0x0346, 0x034f, 0x0354, 0x0364, 0x036b, 0x0372, 0x0383, 0x0389, - 0x038d, 0x0396, 0x039e, 0x03a5, 0x03ac, 0x03b5, 0x03ca, 0x03d0, - 0x03fb, 0x0404, 0x0408, 0x0415, 0x041c, 0x0433, 0x044a, 0x0452, - 0x045a, 0x045f, 0x0468, 0x0477, 0x0481, 0x0486, 0x048c, 0x0496, - 0x049c, 0x04c3, 0x04c7, 0x04cb, 0x04d1, 0x04d8, 0x04df, 0x04e6, - 0x04ec, 0x04f1, 0x04f7, 0x0500, 0x0509, 0x0511, 0x0520, 0x0531, - // Entry 80 - BF - 0x053f, 0x054c, 0x0552, 0x0562, 0x056b, 0x056f, 0x0574, 0x0580, - 0x058c, 0x0596, 0x059e, 0x05a4, 0x05ad, 0x05b7, 0x05bf, 0x05c5, - 0x05cb, 0x05d1, 0x05da, 0x05e3, 0x05ee, 0x05f8, 0x0609, 0x0613, - 0x0617, 0x0627, 0x0630, 0x0640, 0x0659, 0x0661, 0x066c, 0x0674, - 0x0679, 0x0683, 0x068a, 0x0690, 0x0697, 0x069f, 0x06a7, 0x06af, - 0x06be, 0x06c3, 0x06d1, 0x06d9, 0x06e2, 0x06eb, 0x06f4, 0x06f9, - 0x06fe, 0x0702, 0x070d, 0x0711, 0x0717, 0x071b, 0x072f, 0x0741, - 0x0749, 0x0751, 0x0758, 0x076a, 0x0771, 0x077a, 0x0790, 0x0798, - // Entry C0 - FF - 0x079d, 0x07a5, 0x07aa, 0x07c4, 0x07cb, 0x07d3, 0x07d9, 0x07df, - 0x07e5, 0x07f6, 0x0807, 0x080f, 0x0814, 0x081c, 0x0824, 0x0830, - 0x0839, 0x084d, 0x0856, 0x0862, 0x086c, 0x0873, 0x087b, 0x0882, - 0x088e, 0x08a1, 0x08a9, 0x08b5, 0x08bb, 0x08c4, 0x08d4, 0x08e9, - 0x08ed, 0x0908, 0x090c, 0x0913, 0x091f, 0x0926, 0x0934, 0x0940, - 0x0945, 0x094a, 0x0950, 0x0961, 0x0967, 0x096d, 0x0976, 0x097e, - 0x0984, 0x0997, 0x09b3, 0x09ba, 0x09c4, 0x09cb, 0x09e3, 0x09ec, - 0x0a08, 0x0a24, 0x0a2c, 0x0a33, 0x0a41, 0x0a46, 0x0a4c, 0x0a51, - // Entry 100 - 13F - 0x0a56, 0x0a6e, 0x0a75, 0x0a7d, 0x0a8c, 0x0a90, 0x0a96, 0x0ab0, - 0x0abe, 0x0ac6, 0x0ad4, 0x0ae5, 0x0af4, 0x0b02, 0x0b12, 0x0b1f, - 0x0b37, 0x0b46, 0x0b4c, 0x0b5a, 0x0b66, 0x0b78, 0x0b85, 0x0b9d, - 0x0ba7, 0x0bbb, 0x0bc5, 0x0bca, 0x0bd9, 0x0be6, 0x0bec, 0x0bfb, - 0x0c09, 0x0c17, 0x0c27, -} - -// Size: 2926 bytes -var svRegionStr string = "" + - "AscensionAndorraFörenade ArabemiratenAfghanistanAntigua och BarbudaAngui" + - "llaAlbanienArmenienNederländska AntillernaAngolaAntarktisArgentinaAmerik" + - "anska SamoaÖsterrikeAustralienArubaÃ…landAzerbajdzjanBosnien och Hercegov" + - "inaBarbadosBangladeshBelgienBurkina FasoBulgarienBahrainBurundiBeninS:t " + - "BarthélemyBermudaBruneiBoliviaKaribiska NederländernaBrasilienBahamasBhu" + - "tanBouvetönBotswanaVitrysslandBelizeKanadaKokosöarnaKongo-KinshasaCentra" + - "lafrikanska republikenKongo-BrazzavilleSchweizElfenbenskustenCooköarnaCh" + - "ileKamerunKinaColombiaClippertonönCosta RicaKubaKap VerdeCuraçaoJulönCyp" + - "ernTjeckienTysklandDiego GarciaDjiboutiDanmarkDominicaDominikanska repub" + - "likenAlgerietCeuta och MelillaEcuadorEstlandEgyptenVästsaharaEritreaSpan" + - "ienEtiopienEuropeiska unionenFinlandFijiFalklandsöarnaMikronesienFäröarn" + - "aFrankrikeGabonStorbritannienGrenadaGeorgienFranska GuyanaGuernseyGhanaG" + - "ibraltarGrönlandGambiaGuineaGuadeloupeEkvatorialguineaGreklandSydgeorgie" + - "n och SydsandwichöarnaGuatemalaGuamGuinea-BissauGuyanaHongkong (S.A.R. K" + - "ina)Heardön och McDonaldöarnaHondurasKroatienHaitiUngernKanarieöarnaIndo" + - "nesienIrlandIsraelIsle of ManIndienBrittiska territoriet i Indiska ocean" + - "enIrakIranIslandItalienJerseyJamaicaJordanienJapanKenyaKirgizistanKambod" + - "jaKiribatiKomorernaS:t Kitts och NevisNordkoreaSydkoreaKuwaitCaymanöarna" + - "KazakstanLaosLibanonS:t LuciaLiechtensteinSri LankaLiberiaLesothoLitauen" + - "LuxemburgLettlandLibyenMarockoMonacoMoldavienMontenegroS:t MartinMadagas" + - "karMarshallöarnaMakedonienMaliMyanmar (Burma)MongolietMacao (S.A.R. Kina" + - ")NordmarianernaMartiniqueMauretanienMontserratMaltaMauritiusMaldivernaMa" + - "lawiMexikoMalaysiaMoçambiqueNamibiaNya KaledonienNigerNorfolkönNigeriaNi" + - "caraguaNederländernaNorgeNepalNauruNiueNya ZeelandOmanPanamaPeruFranska " + - "PolynesienPapua Nya GuineaFilippinernaPakistanPolenS:t Pierre och Miquel" + - "onPitcairnöarnaPuerto RicoPalestinska territoriernaPortugalPalauParaguay" + - "Qataryttre öar i OceanienRéunionRumänienSerbienRysslandRwandaSaudiarabie" + - "nSalomonöarnaSeychellernaSudanSverigeSingaporeS:t HelenaSlovenienSvalbar" + - "d och Jan MayenSlovakienSierra LeoneSan MarinoSenegalSomaliaSurinamSydsu" + - "danSão Tomé och PríncipeEl SalvadorSint MaartenSyrienSwazilandTristan da" + - " CunhaTurks- och CaicosöarnaTchadFranska sydterritoriernaTogoThailandTad" + - "zjikistanTokelauÖsttimorTurkmenistanTunisienTongaTurkietTrinidad och Tob" + - "agoTuvaluTaiwanTanzaniaUkrainaUgandaUSA:s yttre öarUSAUruguayUzbekistanV" + - "atikanstatenS:t Vincent och GrenadinernaVenezuelaBrittiska JungfruöarnaA" + - "merikanska JungfruöarnaVietnamVanuatuWallis- och FutunaöarnaSamoaKosovoJ" + - "emenMayotteSydafrikaZambiaZimbabweokänd regionvärldenAfrikaNordamerikaSy" + - "damerikaOceanienVästafrikaCentralamerikaÖstafrikaNordafrikaCentralafrika" + - "södra AfrikaNord- och Sydamerikanorra AmerikaKaribienÖstasienSydasienSyd" + - "ostasienSydeuropaAustralasienMelanesienMikronesiska öarnaPolynesienAsien" + - "CentralasienVästasienEuropaÖsteuropaNordeuropaVästeuropaLatinamerika" - -// Size: 606 bytes, 291 elements -var svRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0009, 0x0010, 0x0026, 0x0031, 0x0044, 0x004c, 0x0054, - 0x005c, 0x0074, 0x007a, 0x0083, 0x008c, 0x009d, 0x00a7, 0x00b1, - 0x00b6, 0x00bc, 0x00c8, 0x00df, 0x00e7, 0x00f1, 0x00f8, 0x0104, - 0x010d, 0x0114, 0x011b, 0x0120, 0x012f, 0x0136, 0x013c, 0x0143, - 0x015b, 0x0164, 0x016b, 0x0171, 0x017a, 0x0182, 0x018d, 0x0193, - 0x0199, 0x01a4, 0x01b2, 0x01ce, 0x01df, 0x01e6, 0x01f5, 0x01ff, - 0x0204, 0x020b, 0x020f, 0x0217, 0x0224, 0x022e, 0x0232, 0x023b, - 0x0243, 0x0249, 0x024f, 0x0257, 0x025f, 0x026b, 0x0273, 0x027a, - // Entry 40 - 7F - 0x0282, 0x0299, 0x02a1, 0x02b2, 0x02b9, 0x02c0, 0x02c7, 0x02d2, - 0x02d9, 0x02e0, 0x02e8, 0x02fa, 0x0301, 0x0305, 0x0314, 0x031f, - 0x0329, 0x0332, 0x0337, 0x0345, 0x034c, 0x0354, 0x0362, 0x036a, - 0x036f, 0x0378, 0x0381, 0x0387, 0x038d, 0x0397, 0x03a7, 0x03af, - 0x03d0, 0x03d9, 0x03dd, 0x03ea, 0x03f0, 0x0406, 0x0421, 0x0429, - 0x0431, 0x0436, 0x043c, 0x0449, 0x0453, 0x0459, 0x045f, 0x046a, - 0x0470, 0x0497, 0x049b, 0x049f, 0x04a5, 0x04ac, 0x04b2, 0x04b9, - 0x04c2, 0x04c7, 0x04cc, 0x04d7, 0x04df, 0x04e7, 0x04f0, 0x0503, - // Entry 80 - BF - 0x050c, 0x0514, 0x051a, 0x0526, 0x052f, 0x0533, 0x053a, 0x0543, - 0x0550, 0x0559, 0x0560, 0x0567, 0x056e, 0x0577, 0x057f, 0x0585, - 0x058c, 0x0592, 0x059b, 0x05a5, 0x05af, 0x05b9, 0x05c7, 0x05d1, - 0x05d5, 0x05e4, 0x05ed, 0x0600, 0x060e, 0x0618, 0x0623, 0x062d, - 0x0632, 0x063b, 0x0645, 0x064b, 0x0651, 0x0659, 0x0664, 0x066b, - 0x0679, 0x067e, 0x0688, 0x068f, 0x0698, 0x06a6, 0x06ab, 0x06b0, - 0x06b5, 0x06b9, 0x06c4, 0x06c8, 0x06ce, 0x06d2, 0x06e4, 0x06f4, - 0x0700, 0x0708, 0x070d, 0x0724, 0x0732, 0x073d, 0x0756, 0x075e, - // Entry C0 - FF - 0x0763, 0x076b, 0x0770, 0x0785, 0x078d, 0x0796, 0x079d, 0x07a5, - 0x07ab, 0x07b7, 0x07c4, 0x07d0, 0x07d5, 0x07dc, 0x07e5, 0x07ef, - 0x07f8, 0x080e, 0x0817, 0x0823, 0x082d, 0x0834, 0x083b, 0x0842, - 0x084a, 0x0862, 0x086d, 0x0879, 0x087f, 0x0888, 0x0898, 0x08af, - 0x08b4, 0x08cc, 0x08d0, 0x08d8, 0x08e4, 0x08eb, 0x08f4, 0x0900, - 0x0908, 0x090d, 0x0914, 0x0927, 0x092d, 0x0933, 0x093b, 0x0942, - 0x0948, 0x0958, 0x095b, 0x0962, 0x096c, 0x0979, 0x0995, 0x099e, - 0x09b5, 0x09ce, 0x09d5, 0x09dc, 0x09f4, 0x09f9, 0x09ff, 0x0a04, - // Entry 100 - 13F - 0x0a0b, 0x0a14, 0x0a1a, 0x0a22, 0x0a2f, 0x0a37, 0x0a3d, 0x0a48, - 0x0a52, 0x0a5a, 0x0a65, 0x0a73, 0x0a7d, 0x0a87, 0x0a94, 0x0aa1, - 0x0ab5, 0x0ac2, 0x0aca, 0x0ad3, 0x0adb, 0x0ae6, 0x0aef, 0x0afb, - 0x0b05, 0x0b18, 0x0b22, 0x0b27, 0x0b33, 0x0b3d, 0x0b43, 0x0b4d, - 0x0b57, 0x0b62, 0x0b6e, -} - -// Size: 3103 bytes -var swRegionStr string = "" + - "Kisiwa cha AscensionAndoraFalme za KiarabuAfghanistanAntigua na BarbudaA" + - "nguillaAlbaniaArmeniaAntili za UholanziAngolaAntaktikaAjentinaSamoa ya M" + - "arekaniAustriaAustraliaArubaVisiwa vya AlandiAzabajaniBosnia na Hezegovi" + - "naBabadosiBangladeshiUbelgijiBukinafasoBulgariaBahareniBurundiBeninSanta" + - "bathelemiBermudaBruneiBoliviaUholanzi ya KaribianiBraziliBahamaButaniKis" + - "iwa cha BouvetBotswanaBelarusiBelizeKanadaVisiwa vya Cocos (Keeling)Jamh" + - "uri ya Kidemokrasia ya KongoJamhuri ya Afrika ya KatiKongo - Brazzaville" + - "UswisiCôte d’IvoireVisiwa vya CookChileKameruniChinaKolombiaKisiwa cha C" + - "lippertonKostarikaKubaKepuvedeKurakaoKisiwa cha KrismasiSaiprasiJamhuri " + - "ya ChekiUjerumaniDiego GarciaJibutiDenmakiDominikaJamhuri ya DominikaAlj" + - "eriaCeuta na MelillaEkwadoEstoniaMisriSahara MagharibiEritreaHispaniaUha" + - "beshiUmoja wa UlayaUfiniFijiVisiwa vya FalklandMikronesiaVisiwa vya Faro" + - "eUfaransaGaboniUingerezaGrenadaJojiaGwiyana ya UfaransaGuernseyGhanaJibr" + - "altaGrinlandiGambiaGineGwadelupeGinekwetaUgirikiJojia Kusini na Visiwa v" + - "ya Sandwich KusiniGwatemalaGwamGinebisauGuyanaHong Kong SAR ChinaKisiwa " + - "cha Heard na Visiwa vya McDonaldHondurasiKorasiaHaitiHungariaVisiwa vya " + - "KanariIndonesiaAyalandiIsraeliIsle of ManIndiaEneo la Uingereza katika B" + - "ahari HindiIrakiIranAislandiItaliaJerseyJamaikaYordaniJapaniKenyaKirigiz" + - "istaniKambodiaKiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea Kusi" + - "niKuwaitiVisiwa vya KaymanKazakistaniLaosiLebanoniSantalusiaLiechtenstei" + - "nSirilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldovaM" + - "ontenegroSaint MartinMadagaskaVisiwa vya MarshalMasedoniaMaliMyanmar (Bu" + - "rma)MongoliaMacau SAR ChinaVisiwa vya Mariana vya KaskaziniMartinikiMori" + - "taniaMontserratiMaltaMorisiModivuMalawiMeksikoMalesiaMsumbijiNamibiaNyuk" + - "aledoniaNijeriKisiwa cha NorfolkNigeriaNikaragwaUholanziNorweNepaliNauru" + - "NiueNyuzilandiOmaniPanamaPeruPolinesia ya UfaransaPapuaFilipinoPakistani" + - "PolandiSantapieri na MikeloniPitkairniPwetorikoMaeneo ya PalestinaUrenoP" + - "alauParagwaiKatariOceania ya NjeRiyunioniRomaniaSerbiaUrusiRwandaSaudiVi" + - "siwa vya SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaSvalbar" + - "d na Jan MayenSlovakiaSiera LeoniSamarinoSenegaliSomaliaSurinamuSudani K" + - "usiniSão Tomé na PríncipeElsavadoSantamatiniSiriaUswaziTristan da CunhaV" + - "isiwa vya Turki na KaikoChadiMaeneo ya Kusini ya UfaransaTogoTailandiTaj" + - "ikistaniTokelauTimor ya MasharikiTurukimenistaniTunisiaTongaUturukiTrini" + - "dad na TobagoTuvaluTaiwaniTanzaniaUkrainiUgandaVisiwa Vidogo vya Nje vya" + - " MarekaniMarekaniUrugwaiUzibekistaniVatikaniSantavisenti na GrenadiniVen" + - "ezuelaVisiwa vya Virgin vya UingerezaVisiwa vya Virgin vya MarekaniVieti" + - "namuVanuatuWalis na FutunaSamoaKosovoYemeniMayotteAfrika KusiniZambiaZim" + - "babweEneo lisilojulikanaDuniaAfrikaAmerika KaskaziniAmerika KusiniOceani" + - "aAfrika ya MagharibiAmerika ya KatiAfrika ya MasharikiAfrika ya Kaskazin" + - "iAfrika ya KatiAfrika ya KusiniAmerikaAmerika ya KaskaziniKaribiAsia Mas" + - "harikiAsia ya KusiniAsia ya Kusini MasharikiUlaya ya KusiniAustralasiaMe" + - "lanesiaEneo la MikronesiaPolynesiaAsiaAsia ya KatiAsia ya MagharibiUlaya" + - "Ulaya ya MasharikiUlaya ya KaskaziniUlaya ya MagharibiAmerika ya Kilatin" + - "i" - -// Size: 606 bytes, 291 elements -var swRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0014, 0x001a, 0x002a, 0x0035, 0x0047, 0x004f, 0x0056, - 0x005d, 0x006f, 0x0075, 0x007e, 0x0086, 0x0097, 0x009e, 0x00a7, - 0x00ac, 0x00bd, 0x00c6, 0x00da, 0x00e2, 0x00ed, 0x00f5, 0x00ff, - 0x0107, 0x010f, 0x0116, 0x011b, 0x0129, 0x0130, 0x0136, 0x013d, - 0x0152, 0x0159, 0x015f, 0x0165, 0x0176, 0x017e, 0x0186, 0x018c, - 0x0192, 0x01ac, 0x01cc, 0x01e5, 0x01f8, 0x01fe, 0x020e, 0x021d, - 0x0222, 0x022a, 0x022f, 0x0237, 0x024c, 0x0255, 0x0259, 0x0261, - 0x0268, 0x027b, 0x0283, 0x0293, 0x029c, 0x02a8, 0x02ae, 0x02b5, - // Entry 40 - 7F - 0x02bd, 0x02d0, 0x02d7, 0x02e7, 0x02ed, 0x02f4, 0x02f9, 0x0309, - 0x0310, 0x0318, 0x0320, 0x032e, 0x0333, 0x0337, 0x034a, 0x0354, - 0x0364, 0x036c, 0x0372, 0x037b, 0x0382, 0x0387, 0x039a, 0x03a2, - 0x03a7, 0x03af, 0x03b8, 0x03be, 0x03c2, 0x03cb, 0x03d4, 0x03db, - 0x0405, 0x040e, 0x0412, 0x041b, 0x0421, 0x0434, 0x045b, 0x0464, - 0x046b, 0x0470, 0x0478, 0x0489, 0x0492, 0x049a, 0x04a1, 0x04ac, - 0x04b1, 0x04d6, 0x04db, 0x04df, 0x04e7, 0x04ed, 0x04f3, 0x04fa, - 0x0501, 0x0507, 0x050c, 0x0519, 0x0521, 0x0529, 0x052f, 0x0542, - // Entry 80 - BF - 0x0551, 0x055d, 0x0564, 0x0575, 0x0580, 0x0585, 0x058d, 0x0597, - 0x05a4, 0x05ad, 0x05b4, 0x05ba, 0x05c2, 0x05cb, 0x05d2, 0x05d7, - 0x05dd, 0x05e3, 0x05ea, 0x05f4, 0x0600, 0x0609, 0x061b, 0x0624, - 0x0628, 0x0637, 0x063f, 0x064e, 0x066e, 0x0677, 0x0680, 0x068b, - 0x0690, 0x0696, 0x069c, 0x06a2, 0x06a9, 0x06b0, 0x06b8, 0x06bf, - 0x06cb, 0x06d1, 0x06e3, 0x06ea, 0x06f3, 0x06fb, 0x0700, 0x0706, - 0x070b, 0x070f, 0x0719, 0x071e, 0x0724, 0x0728, 0x073d, 0x0742, - 0x074a, 0x0753, 0x075a, 0x0770, 0x0779, 0x0782, 0x0795, 0x079a, - // Entry C0 - FF - 0x079f, 0x07a7, 0x07ad, 0x07bb, 0x07c4, 0x07cb, 0x07d1, 0x07d6, - 0x07dc, 0x07e1, 0x07f3, 0x07fd, 0x0803, 0x0809, 0x0811, 0x081c, - 0x0824, 0x0839, 0x0841, 0x084c, 0x0854, 0x085c, 0x0863, 0x086b, - 0x0878, 0x088f, 0x0897, 0x08a2, 0x08a7, 0x08ad, 0x08bd, 0x08d6, - 0x08db, 0x08f7, 0x08fb, 0x0903, 0x090e, 0x0915, 0x0927, 0x0936, - 0x093d, 0x0942, 0x0949, 0x095b, 0x0961, 0x0968, 0x0970, 0x0977, - 0x097d, 0x099f, 0x09a7, 0x09ae, 0x09ba, 0x09c2, 0x09db, 0x09e4, - 0x0a03, 0x0a21, 0x0a2a, 0x0a31, 0x0a40, 0x0a45, 0x0a4b, 0x0a51, - // Entry 100 - 13F - 0x0a58, 0x0a65, 0x0a6b, 0x0a73, 0x0a86, 0x0a8b, 0x0a91, 0x0aa2, - 0x0ab0, 0x0ab7, 0x0aca, 0x0ad9, 0x0aec, 0x0aff, 0x0b0d, 0x0b1d, - 0x0b24, 0x0b38, 0x0b3e, 0x0b4c, 0x0b5a, 0x0b72, 0x0b81, 0x0b8c, - 0x0b95, 0x0ba7, 0x0bb0, 0x0bb4, 0x0bc0, 0x0bd1, 0x0bd6, 0x0be8, - 0x0bfa, 0x0c0c, 0x0c1f, -} - -// Size: 9763 bytes -var taRegionStr string = "" + - "அஷனà¯à®·à®¿à®¯à®©à¯ தீவà¯à®…னà¯à®Ÿà¯‹à®°à®¾à®à®•à¯à®•à®¿à®¯ அரப௠எமிரேடà¯à®¸à¯à®†à®ªà¯à®•à®¾à®©à®¿à®¸à¯à®¤à®¾à®©à¯à®†à®£à¯à®Ÿà®¿à®•à¯à®µà®¾ மறà¯à®±à¯à®®à¯" + - " பாரà¯à®ªà¯à®Ÿà®¾à®…à®™à¯à®•à¯à®¯à¯à®²à®¾à®…லà¯à®ªà¯‡à®©à®¿à®¯à®¾à®†à®°à¯à®®à¯‡à®©à®¿à®¯à®¾à®¨à¯†à®¤à®°à¯à®²à®¾à®¨à¯à®¤à¯ ஆணà¯à®Ÿà®¿à®²à¯à®²à¯†à®¸à¯à®…à®™à¯à®•à¯‹à®²à®¾à®…ணà¯à®Ÿà®¾à®°" + - "à¯à®Ÿà®¿à®•à®¾à®…à®°à¯à®œà¯†à®©à¯à®Ÿà®¿à®©à®¾à®…மெரிகà¯à®• சமோவாஆஸà¯à®¤à®¿à®°à®¿à®¯à®¾à®†à®¸à¯à®¤à®¿à®°à¯‡à®²à®¿à®¯à®¾à®…ரூபாஆலநà¯à®¤à¯ தீவà¯à®•à®³à¯à®…" + - "சரà¯à®ªà¯ˆà®œà®¾à®©à¯à®ªà¯‹à®¸à¯à®©à®¿à®¯à®¾ மறà¯à®±à¯à®®à¯ ஹெரà¯à®¸à®¿à®•à¯‹à®µà®¿à®©à®¾à®ªà®¾à®°à¯à®ªà®Ÿà¯‹à®¸à¯à®ªà®™à¯à®•à®³à®¾à®¤à¯‡à®·à¯à®ªà¯†à®²à¯à®œà®¿à®¯à®®à¯à®ªà¯à®°à¯" + - "கினா ஃபாஸோபலà¯à®•à¯‡à®°à®¿à®¯à®¾à®ªà®¹à¯à®°à¯ˆà®©à¯à®ªà¯à®°à¯à®£à¯à®Ÿà®¿à®ªà¯†à®©à®¿à®©à¯à®šà¯†à®¯à®¿à®©à¯à®Ÿà¯ பாரà¯à®¤à¯‡à®²à¯†à®®à®¿à®ªà¯†à®°à¯à®®à¯à®Ÿà®¾à®ªà¯à®°" + - "ூனேயà¯à®ªà¯Šà®²à®¿à®µà®¿à®¯à®¾à®•à®°à¯€à®ªà®¿à®¯à®©à¯ நெதரà¯à®²à®¾à®¨à¯à®¤à¯à®ªà®¿à®°à¯‡à®šà®¿à®²à¯à®ªà®¹à®¾à®®à®¾à®¸à¯à®ªà¯‚டானà¯à®ªà¯Šà®µà¯‡à®Ÿà¯ தீவà¯à®•à®³à¯à®ªà¯‹" + - "டà¯à®¸à¯à®µà®¾à®©à®¾à®ªà¯†à®²à®¾à®°à¯‚ஸà¯à®ªà¯†à®²à®¿à®¸à¯à®•à®©à®Ÿà®¾à®•à¯‹à®•à¯‹à®¸à¯ (கீலிஙà¯) தீவà¯à®•à®³à¯à®•à®¾à®™à¯à®•à¯‹ - கினà¯à®·à®¾à®šà®¾à®®à®¤à¯à®¤" + - "ிய ஆபà¯à®°à®¿à®•à¯à®•à®•à¯ கà¯à®Ÿà®¿à®¯à®°à®šà¯à®•à®¾à®™à¯à®•à¯‹ - பà¯à®°à®¾à®¸à®¾à®µà®¿à®²à¯à®²à¯‡à®¸à¯à®µà®¿à®Ÿà¯à®šà®°à¯à®²à®¾à®¨à¯à®¤à¯à®•à¯‹à®Ÿà¯ தி’வாயர" + - "à¯à®•à¯à®•à¯ தீவà¯à®•à®³à¯à®šà®¿à®²à®¿à®•à¯‡à®®à®°à¯‚னà¯à®šà¯€à®©à®¾à®•à¯Šà®²à®®à¯à®ªà®¿à®¯à®¾à®•à®¿à®²à®¿à®ªà¯à®ªà®°à¯à®Ÿà®©à¯ தீவà¯à®•à¯‹à®¸à¯à®Ÿà®¾à®°à®¿à®•à®¾à®•à®¿à®¯à¯‚பா" + - "கேப௠வெரà¯à®Ÿà¯‡à®•à¯à®°à®¾à®•à®µà¯à®•à®¿à®±à®¿à®¸à¯à®¤à¯à®®à®¸à¯ தீவà¯à®šà¯ˆà®ªà¯à®°à®¸à¯à®šà¯†à®•à¯ கà¯à®Ÿà®¿à®¯à®°à®šà¯à®œà¯†à®°à¯à®®à®©à®¿à®Ÿà®¿à®¯à®•à¯‹ கார" + - "à¯à®·à®¿à®¯à®¾à®œà®¿à®ªà¯Œà®Ÿà¯à®Ÿà®¿à®Ÿà¯†à®©à¯à®®à®¾à®°à¯à®•à¯à®Ÿà¯Šà®®à®¿à®©à®¿à®•à®¾à®Ÿà¯Šà®®à®¿à®©à®¿à®•à®©à¯ கà¯à®Ÿà®¿à®¯à®°à®šà¯à®…லà¯à®œà¯€à®°à®¿à®¯à®¾à®šà®¿à®¯à¯‚டா மறà¯à®±à¯" + - "ம௠மெலிலà¯à®²à®¾à®ˆà®•à¯à®µà®Ÿà®¾à®°à¯à®Žà®¸à¯à®Ÿà¯‹à®©à®¿à®¯à®¾à®Žà®•à®¿à®ªà¯à®¤à¯à®®à¯‡à®±à¯à®•à¯ சஹாராஎரிடà¯à®°à®¿à®¯à®¾à®¸à¯à®ªà¯†à®¯à®¿à®©à¯à®Žà®¤à®¿à®¯à¯‹à®ª" + - "à¯à®ªà®¿à®¯à®¾à®à®°à¯‹à®ªà¯à®ªà®¿à®¯à®©à¯ யூனியனà¯à®ªà®¿à®©à¯à®²à®¾à®¨à¯à®¤à¯à®ƒà®ªà®¿à®œà®¿à®ƒà®ªà®¾à®•à¯à®²à®¾à®¨à¯à®¤à¯ தீவà¯à®•à®³à¯à®®à¯ˆà®•à¯à®°à¯‹à®©à¯‡à®·à®¿à®¯à®¾à®ƒ" + - "பாரோ தீவà¯à®•à®³à¯à®ªà®¿à®°à®¾à®©à¯à®¸à¯à®•à¯‡à®ªà®¾à®©à¯à®à®•à¯à®•à®¿à®¯ பேரரசà¯à®•à®¿à®°à®©à¯†à®Ÿà®¾à®œà®¾à®°à¯à®œà®¿à®¯à®¾à®ªà®¿à®°à¯†à®žà¯à®šà¯ கயானாகெ" + - "à®°à¯à®©à¯à®šà®¿à®•à®¾à®©à®¾à®œà®¿à®ªà¯à®°à®¾à®²à¯à®Ÿà®°à¯à®•à®¿à®°à¯€à®©à¯à®²à®¾à®¨à¯à®¤à¯à®•à®¾à®®à¯à®ªà®¿à®¯à®¾à®•à®¿à®©à®¿à®¯à®¾à®•à¯à®µà®¾à®¤à¯‡à®²à¯‹à®ªà¯à®ˆà®•à¯à®•à¯à®µà®¾à®Ÿà¯‹à®°à®¿à®¯à®²" + - "௠கினியாகிரீஸà¯à®¤à¯†à®©à¯ ஜியாரà¯à®œà®¿à®¯à®¾ மறà¯à®±à¯à®®à¯ தென௠சானà¯à®Ÿà¯à®µà®¿à®šà¯ தீவà¯à®•à®³à¯à®•à®µà¯à®¤à®®à®¾à®²à®¾à®•" + - "à¯à®µà®¾à®®à¯à®•à®¿à®©à®¿-பிஸà¯à®¸à®¾à®µà¯à®•à®¯à®¾à®©à®¾à®¹à®¾à®™à¯à®•à®¾à®™à¯ எஸà¯à®à®†à®°à¯ சீனாஹேரà¯à®Ÿà¯ மறà¯à®±à¯à®®à¯ மெகà¯à®Ÿà¯Šà®©à®¾à®²à¯à®Ÿ" + - "௠தீவà¯à®•à®³à¯à®¹à¯‹à®£à¯à®Ÿà¯‚ராஸà¯à®•à¯à®°à¯‹à®šà®¿à®¯à®¾à®¹à¯†à®¯à¯à®¤à®¿à®¹à®™à¯à®•à¯‡à®°à®¿à®•à¯‡à®©à®°à®¿ தீவà¯à®•à®³à¯à®‡à®¨à¯à®¤à¯‹à®©à¯‡à®·à®¿à®¯à®¾à®…யரà¯à®²à®¾" + - "நà¯à®¤à¯à®‡à®¸à¯à®°à¯‡à®²à¯à®à®²à¯ ஆஃப௠மேனà¯à®‡à®¨à¯à®¤à®¿à®¯à®¾à®ªà®¿à®°à®¿à®Ÿà¯à®Ÿà®¿à®·à¯ இநà¯à®¤à®¿à®¯à®ªà¯ பெரà¯à®™à¯à®•à®Ÿà®²à¯ பிரதேசமà¯" + - "ஈராகà¯à®ˆà®°à®¾à®©à¯à®à®¸à¯à®²à®¾à®¨à¯à®¤à¯à®‡à®¤à¯à®¤à®¾à®²à®¿à®œà¯†à®°à¯à®šà®¿à®œà®®à¯ˆà®•à®¾à®œà¯‹à®°à¯à®Ÿà®¾à®©à¯à®œà®ªà¯à®ªà®¾à®©à¯à®•à¯†à®©à¯à®¯à®¾à®•à®¿à®°à¯à®•à®¿à®¸à¯à®¤à®¾à®©à¯" + - "கமà¯à®ªà¯‹à®Ÿà®¿à®¯à®¾à®•à®¿à®°à®¿à®ªà®Ÿà®¿à®•à¯‹à®®à®°à¯‹à®¸à¯à®šà¯†à®¯à®¿à®©à¯à®Ÿà¯ கிடà¯à®¸à¯ மறà¯à®±à¯à®®à¯ நெவிஸà¯à®µà®Ÿ கொரியாதென௠கொர" + - "ியாகà¯à®µà¯ˆà®¤à¯à®•à¯‡à®®à¯†à®©à¯ தீவà¯à®•à®³à¯à®•à®¸à®•à®¸à¯à®¤à®¾à®©à¯à®²à®¾à®µà¯‹à®¸à¯à®²à¯†à®ªà®©à®¾à®©à¯à®šà¯†à®¯à®¿à®©à¯à®Ÿà¯ லூசியாலிசà¯à®šà¯†à®£à¯à®¸à¯" + - "டெயà¯à®©à¯à®‡à®²à®™à¯à®•à¯ˆà®²à¯ˆà®ªà¯€à®°à®¿à®¯à®¾à®²à¯†à®šà¯‹à®¤à¯‹à®²à®¿à®¤à¯à®µà¯‡à®©à®¿à®¯à®¾à®²à®•à¯à®¸à¯à®šà®®à¯à®ªà®°à¯à®•à¯à®²à®¾à®Ÿà¯à®µà®¿à®¯à®¾à®²à®¿à®ªà®¿à®¯à®¾à®®à¯Šà®°à®¾à®•à¯à®•" + - "ோமொனாகà¯à®•à¯‹à®®à®¾à®²à¯à®Ÿà¯‹à®µà®¾à®®à®¾à®©à¯à®Ÿà¯‡à®©à¯†à®•à¯à®°à¯‹à®šà¯†à®¯à®¿à®©à¯à®Ÿà¯ மாரà¯à®Ÿà¯à®Ÿà¯€à®©à¯à®®à®Ÿà®•à®¾à®¸à¯à®•à®°à¯à®®à®¾à®°à¯à®·à®²à¯ தீவà¯à®•" + - "ளà¯à®®à®¾à®šà®¿à®Ÿà¯‹à®©à®¿à®¯à®¾à®®à®¾à®²à®¿à®®à®¿à®¯à®¾à®©à¯à®®à®¾à®°à¯ (பரà¯à®®à®¾)மஙà¯à®•à¯‹à®²à®¿à®¯à®¾à®®à®•à®¾à®µà¯‹ எஸà¯à®à®†à®°à¯ சீனாவடகà¯à®•à¯ மர" + - "ியானா தீவà¯à®•à®³à¯à®®à®¾à®°à¯à®Ÿà®¿à®©à®¿à®•à¯à®®à¯Œà®°à®¿à®Ÿà®¾à®©à®¿à®¯à®¾à®®à¯Œà®©à¯à®Ÿà¯à®šà¯†à®°à®¾à®Ÿà¯à®®à®¾à®²à¯à®Ÿà®¾à®®à¯Šà®°à®¿à®šà®¿à®¯à®¸à¯à®®à®¾à®²à®¤à¯à®¤à¯€à®µà¯à®®" + - "ாலவிமெகà¯à®šà®¿à®•à¯‹à®®à®²à¯‡à®·à®¿à®¯à®¾à®®à¯Šà®šà®¾à®®à¯à®ªà®¿à®•à¯à®¨à®®à¯€à®ªà®¿à®¯à®¾à®¨à®¿à®¯à¯‚ கேலிடோனியாநைஜரà¯à®¨à®¾à®°à¯à®ƒà®ªà®¾à®•à¯ தீவà¯" + - "களà¯à®¨à¯ˆà®œà¯€à®°à®¿à®¯à®¾à®¨à®¿à®•à®°à®•à¯à®µà®¾à®¨à¯†à®¤à®°à¯à®²à®¾à®¨à¯à®¤à¯à®¨à®¾à®°à¯à®µà¯‡à®¨à¯‡à®ªà®¾à®³à®®à¯à®¨à¯Œà®°à¯à®¨à®¿à®¯à¯‚நியூசிலாநà¯à®¤à¯à®“மனà¯à®ªà®©à®¾" + - "மாபெரà¯à®ªà®¿à®°à¯†à®žà¯à®šà¯ பாலினேஷியாபாபà¯à®ªà¯à®µà®¾ நியூ கினிபிலிபà¯à®ªà¯ˆà®©à¯à®¸à¯à®ªà®¾à®•à®¿à®¸à¯à®¤à®¾à®©à¯à®ªà¯‹à®²à®¨à¯" + - "தà¯à®šà¯†à®¯à®¿à®©à¯à®Ÿà¯ பியர௠மறà¯à®±à¯à®®à¯ மிகà¯à®µà¯‡à®²à®¾à®©à¯à®ªà®¿à®Ÿà¯à®•à¯†à®¯à¯à®°à¯à®©à¯ தீவà¯à®•à®³à¯à®ªà®¿à®¯à¯‚à®°à¯à®Ÿà¯‹ ரிகோபா" + - "லஸà¯à®¤à¯€à®©à®¿à®¯ பிரதேசஙà¯à®•à®³à¯à®ªà¯‹à®°à¯à®šà¯à®šà¯à®•à¯à®•à®²à¯à®ªà®¾à®²à¯‹à®ªà®°à®¾à®•à¯à®µà¯‡à®•à®¤à¯à®¤à®¾à®°à¯à®”டà¯à®²à¯ˆà®¯à®¿à®™à¯ ஓசானியாரீ" + - "யூனியனà¯à®°à¯à®®à¯‡à®©à®¿à®¯à®¾à®šà¯†à®°à¯à®ªà®¿à®¯à®¾à®°à®·à¯à®¯à®¾à®°à¯à®µà®¾à®©à¯à®Ÿà®¾à®šà®µà¯‚தி அரேபியாசாலமன௠தீவà¯à®•à®³à¯à®¸à¯‡à®šà¯‡à®²à¯à®¸" + - "à¯à®šà¯‚டானà¯à®¸à¯à®µà¯€à®Ÿà®©à¯à®šà®¿à®™à¯à®•à®ªà¯à®ªà¯‚à®°à¯à®šà¯†à®¯à®¿à®©à¯à®Ÿà¯ ஹெலெனாஸà¯à®²à¯‹à®µà¯‡à®©à®¿à®¯à®¾à®¸à¯à®µà®²à¯à®ªà®¾à®°à¯à®Ÿà¯ மறà¯à®±à¯à®®à¯ " + - "ஜான௠மேயனà¯à®¸à¯à®²à¯‹à®µà®¾à®•à®¿à®¯à®¾à®šà®¿à®¯à®°à¯à®°à®¾ லியோனà¯à®šà®¾à®©à¯ மெரினோசெனெகலà¯à®šà¯‹à®®à®¾à®²à®¿à®¯à®¾à®šà¯à®°à®¿à®©à®¾à®®à¯à®¤à¯†" + - "à®±à¯à®•à¯ சூடானà¯à®šà®¾à®µà¯ தோம௠மறà¯à®±à¯à®®à¯ பà¯à®°à®¿à®©à¯à®šà®¿à®ªà®¿à®Žà®²à¯ சாலà¯à®µà®Ÿà®¾à®°à¯à®šà®¿à®©à¯à®Ÿà¯ மாரà¯à®Ÿà¯†à®©à¯à®šà®¿à®°" + - "ியாஸà¯à®µà®¾à®¸à®¿à®²à®¾à®¨à¯à®¤à¯à®Ÿà®¿à®°à®¿à®¸à¯à®Ÿà®©à¯ டா கà¯à®©à¯à®¹à®¾à®Ÿà®°à¯à®•à¯à®¸à¯ மறà¯à®±à¯à®®à¯ கைகோஸ௠தீவà¯à®•à®³à¯à®šà®¾à®Ÿà¯à®ªà®¿" + - "ரெஞà¯à®šà¯ தெறà¯à®•à¯ பிரதேசஙà¯à®•à®³à¯à®Ÿà¯‹à®•à¯‹à®¤à®¾à®¯à¯à®²à®¾à®¨à¯à®¤à¯à®¤à®¾à®œà®¿à®•à®¿à®¸à¯à®¤à®¾à®©à¯à®Ÿà¯‹à®•à¯‡à®²à¯‹à®¤à¯ˆà®®à¯‚à®°à¯-லெஸà¯à®¤à¯‡" + - "தà¯à®°à¯à®•à¯à®®à¯†à®©à®¿à®¸à¯à®¤à®¾à®©à¯à®Ÿà¯à®©à®¿à®šà®¿à®¯à®¾à®Ÿà¯‹à®™à¯à®•à®¾à®¤à¯à®°à¯à®•à¯à®•à®¿à®Ÿà¯à®°à®¿à®©à®¿à®Ÿà®¾à®Ÿà¯ மறà¯à®±à¯à®®à¯ டà¯à®ªà®¾à®•à¯‹à®¤à¯à®µà®¾à®²à¯‚த" + - "ைவானà¯à®¤à®¾à®©à¯à®šà®¾à®©à®¿à®¯à®¾à®‰à®•à¯à®°à¯ˆà®©à¯à®‰à®•à®¾à®£à¯à®Ÿà®¾à®¯à¯‚எஸ௠அவà¯à®Ÿà¯à®²à¯‡à®¯à®¿à®™à¯ தீவà¯à®•à®³à¯à®…மெரிகà¯à®•à®¾à®‰à®°à¯à®•à¯à®µà¯‡" + - "உஸà¯à®ªà¯†à®•à®¿à®¸à¯à®¤à®¾à®©à¯à®µà®¾à®Ÿà®¿à®•à®©à¯ நகரமà¯à®šà¯†à®¯à®¿à®©à¯à®Ÿà¯ வினà¯à®šà¯†à®©à¯à®Ÿà¯ மறà¯à®±à¯à®®à¯ கிரெனடைனà¯à®¸à¯à®µà¯†à®©à®¿à®š" + - "à¯à®²à®¾à®ªà®¿à®°à®¿à®Ÿà¯à®Ÿà¯€à®·à¯ கனà¯à®©à®¿à®¤à¯ தீவà¯à®•à®³à¯à®¯à¯‚.எஸà¯. கனà¯à®©à®¿à®¤à¯ தீவà¯à®•à®³à¯à®µà®¿à®¯à®Ÿà¯à®¨à®¾à®®à¯à®µà®©à¯à®µà®¾à®Ÿà¯à®Ÿà¯" + - "வாலிஸ௠மறà¯à®±à¯à®®à¯ ஃபà¯à®Ÿà¯à®©à®¾à®šà®®à¯‹à®µà®¾à®•à¯Šà®šà¯‹à®µà¯‹à®à®®à®©à¯à®®à®¯à¯‹à®¤à¯à®¤à¯†à®©à¯ ஆபà¯à®ªà®¿à®°à®¿à®•à¯à®•à®¾à®œà®¾à®®à¯à®ªà®¿à®¯à®¾à®œà®¿à®®à¯" + - "பாபà¯à®µà¯‡à®…றியபà¯à®ªà®Ÿà®¾à®¤ பிரதேசமà¯à®‰à®²à®•à®®à¯à®†à®ªà¯à®°à®¿à®•à¯à®•à®¾à®µà®Ÿ அமெரிகà¯à®•à®¾à®¤à¯†à®©à¯ அமெரிகà¯à®•à®¾à®“ஷியா" + - "னியாமேறà¯à®•à¯ ஆபà¯à®°à®¿à®•à¯à®•à®¾à®®à®¤à¯à®¤à®¿à®¯ அமெரிகà¯à®•à®¾à®•à®¿à®´à®•à¯à®•à¯ ஆபà¯à®°à®¿à®•à¯à®•à®¾à®µà®Ÿà®•à¯à®•à¯ ஆபà¯à®°à®¿à®•à¯à®•à®¾à®®" + - "தà¯à®¤à®¿à®¯ ஆபà¯à®°à®¿à®•à¯à®•à®¾à®¤à¯†à®©à¯à®©à®¾à®ªà¯à®°à®¿à®•à¯à®•à®¾à®…மெரிகà¯à®•à®¾à®¸à¯à®µà®Ÿà®•à¯à®•à¯ அமெரிகà¯à®•à®¾à®•à®°à¯€à®ªà®¿à®¯à®©à¯à®•à®¿à®´à®•à¯à®•" + - "௠ஆசியாதெறà¯à®•à¯ ஆசியாதெனà¯à®•à®¿à®´à®•à¯à®•à¯ ஆசியாதெறà¯à®•à¯ à®à®°à¯‹à®ªà¯à®ªà®¾à®†à®¸à¯à®¤à®¿à®°à®²à¯‡à®šà®¿à®¯à®¾à®®à¯†à®²à®©à¯‡à®·à®¿à®¯" + - "ாமைகà¯à®°à¯‹ நேஷியா பிரதேசமà¯à®ªà®¾à®²à®¿à®©à¯‡à®·à®¿à®¯à®¾à®†à®šà®¿à®¯à®¾à®®à®¤à¯à®¤à®¿à®¯ ஆசியாமேறà¯à®•à¯ ஆசியாà®à®°à¯‹à®ªà¯à®ªà®¾à®•" + - "ிழகà¯à®•à¯ à®à®°à¯‹à®ªà¯à®ªà®¾à®µà®Ÿà®•à¯à®•à¯ à®à®°à¯‹à®ªà¯à®ªà®¾à®®à¯‡à®±à¯à®•à¯ à®à®°à¯‹à®ªà¯à®ªà®¾à®²à®¤à¯à®¤à¯€à®©à¯ அமெரிகà¯à®•à®¾" - -// Size: 606 bytes, 291 elements -var taRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0028, 0x003d, 0x0078, 0x009f, 0x00e9, 0x0104, 0x011f, - 0x013a, 0x017d, 0x0192, 0x01b3, 0x01d4, 0x01fc, 0x0217, 0x0238, - 0x0247, 0x026f, 0x028d, 0x02e0, 0x02fb, 0x0319, 0x0334, 0x035c, - 0x0377, 0x038c, 0x03a4, 0x03b6, 0x03ed, 0x0405, 0x041d, 0x0435, - 0x046f, 0x0487, 0x049c, 0x04ae, 0x04d6, 0x04f4, 0x050c, 0x051e, - 0x052a, 0x0567, 0x0594, 0x05de, 0x0617, 0x0644, 0x0669, 0x068b, - 0x0697, 0x06ac, 0x06b8, 0x06d3, 0x0704, 0x0722, 0x0734, 0x0753, - 0x0768, 0x0796, 0x07ab, 0x07d0, 0x07e5, 0x080d, 0x0825, 0x0843, - // Entry 40 - 7F - 0x085b, 0x088f, 0x08aa, 0x08eb, 0x0903, 0x091e, 0x0933, 0x0955, - 0x0970, 0x0988, 0x09a9, 0x09dd, 0x09fb, 0x0a0a, 0x0a41, 0x0a65, - 0x0a8a, 0x0aa2, 0x0ab4, 0x0ad9, 0x0aee, 0x0b06, 0x0b2e, 0x0b46, - 0x0b52, 0x0b73, 0x0b97, 0x0baf, 0x0bc1, 0x0bdf, 0x0c1c, 0x0c2e, - 0x0cb1, 0x0cc9, 0x0cdb, 0x0d00, 0x0d0f, 0x0d4a, 0x0dad, 0x0dcb, - 0x0de3, 0x0df5, 0x0e0a, 0x0e2f, 0x0e50, 0x0e6e, 0x0e83, 0x0ea6, - 0x0ebb, 0x0f2a, 0x0f39, 0x0f48, 0x0f63, 0x0f78, 0x0f8a, 0x0f99, - 0x0fb1, 0x0fc6, 0x0fd8, 0x0ffc, 0x1017, 0x102c, 0x1041, 0x1095, - // Entry 80 - BF - 0x10ae, 0x10cd, 0x10df, 0x1107, 0x1122, 0x1134, 0x1149, 0x1174, - 0x11a4, 0x11b6, 0x11ce, 0x11e0, 0x11fe, 0x1225, 0x123d, 0x124f, - 0x1267, 0x127f, 0x1297, 0x12bb, 0x12f2, 0x130d, 0x1338, 0x1356, - 0x1362, 0x1392, 0x13ad, 0x13df, 0x141d, 0x143b, 0x1459, 0x147d, - 0x148f, 0x14aa, 0x14c5, 0x14d4, 0x14ec, 0x1501, 0x151f, 0x1534, - 0x155f, 0x156e, 0x159f, 0x15b7, 0x15cf, 0x15f0, 0x1602, 0x1617, - 0x1623, 0x162f, 0x1653, 0x165f, 0x166e, 0x167a, 0x16b1, 0x16e3, - 0x1707, 0x1725, 0x173a, 0x1797, 0x17d1, 0x17f6, 0x1836, 0x185d, - // Entry C0 - FF - 0x1869, 0x187e, 0x1893, 0x18c4, 0x18df, 0x18f7, 0x190f, 0x191e, - 0x1936, 0x195b, 0x1983, 0x199b, 0x19ad, 0x19c2, 0x19e3, 0x1a0e, - 0x1a2c, 0x1a80, 0x1a9e, 0x1ac6, 0x1ae5, 0x1afa, 0x1b12, 0x1b2a, - 0x1b4f, 0x1b9d, 0x1bc2, 0x1bed, 0x1bff, 0x1c23, 0x1c58, 0x1cac, - 0x1cb8, 0x1d05, 0x1d11, 0x1d2f, 0x1d53, 0x1d65, 0x1d8a, 0x1dba, - 0x1dd2, 0x1de4, 0x1dfc, 0x1e43, 0x1e55, 0x1e67, 0x1e85, 0x1e9a, - 0x1eaf, 0x1ef6, 0x1f11, 0x1f26, 0x1f4d, 0x1f72, 0x1fe1, 0x1ff9, - 0x2043, 0x2080, 0x209b, 0x20b6, 0x20f4, 0x2103, 0x2115, 0x2121, - // Entry 100 - 13F - 0x2130, 0x215e, 0x2176, 0x2194, 0x21cb, 0x21da, 0x21f5, 0x2217, - 0x223f, 0x225a, 0x2288, 0x22b6, 0x22e7, 0x2315, 0x2343, 0x236d, - 0x238e, 0x23bc, 0x23d4, 0x23f9, 0x241b, 0x244c, 0x2474, 0x2498, - 0x24b3, 0x24f1, 0x250f, 0x251e, 0x2540, 0x2562, 0x2577, 0x25a2, - 0x25ca, 0x25f2, 0x2623, -} - -// Size: 9380 bytes -var teRegionStr string = "" + - "ఎసెషనౠదీవిఅండొరà±à°°à°¾à°¯à±à°¨à±ˆà°Ÿà±†à°¡à± అరబౠఎమిరేటà±à°¸à±à°†à°«à±à°˜à°¨à°¿à°¸à±à°¤à°¾à°¨à±à°†à°‚à°Ÿà°¿à°—à±à°µà°¾ మరియౠబార" + - "à±à°¬à±à°¡à°¾à°†à°‚గవిలà±à°²à°¾à°…à°²à±à°¬à±‡à°¨à°¿à°¯à°¾à°†à°°à±à°®à±‡à°¨à°¿à°¯à°¾à°¨à±‡à°¦à±‡à°°à±à°²à±‡à°‚à°¡à±à°¸à± à°…à°‚à°Ÿà°¿à°²à±à°²à°¿à°¸à±à°…ంగోలాఅంటారà±à°•à°Ÿ" + - "ికాఅరà±à°œà±†à°‚టీనాఅమెరికనౠసమోవాఆసà±à°Ÿà±à°°à°¿à°¯à°¾à°†à°¸à±à°Ÿà±à°°à±‡à°²à°¿à°¯à°¾à°…à°°à±à°¬à°¾à°†à°²à±‡à°‚డౠదీవà±à°²à±à°…జరà±à°¬" + - "ైజానà±à°¬à±‹à°¸à±à°¨à°¿à°¯à°¾ మరియౠహెరà±à°œà±†à°—ొవీనాబారà±à°¬à°¡à±‹à°¸à±à°¬à°‚à°—à±à°²à°¾à°¦à±‡à°¶à±à°¬à±†à°²à±à°œà°¿à°¯à°‚à°¬à±à°°à±à°•à°¿à°¨à°¾ à°«à°¾" + - "సోబలà±à°—ేరియాబహà±à°°à±†à°¯à°¿à°¨à±à°¬à±à°°à±à°‚డిబెనినà±à°¸à±†à°‚టౠబరà±à°¤à±‡à°²à±†à°®à±€à°¬à±†à°°à±à°®à±à°¡à°¾à°¬à±à°°à±‚నైబొలీవియా" + - "కరీబియనౠనెదరà±à°²à°¾à°‚à°¡à±à°¸à±à°¬à±à°°à±†à°œà°¿à°²à±à°¬à°¹à°¾à°®à°¾à°¸à±à°­à±‚టానà±à°¬à±Šà°µà±†à°Ÿà± దీవిబోటà±à°¸à±à°µà°¾à°¨à°¾à°¬à±†à°²à°¾à°°à°¸à±" + - "బెలిజà±à°•à±†à°¨à°¡à°¾à°•à±‹à°•à±‹à°¸à± (కీలింగà±) దీవà±à°²à±à°•à°¾à°‚గో- à°•à°¿à°¨à±à°·à°¾à°¸à°¾à°¸à±†à°‚à°Ÿà±à°°à°²à± ఆఫà±à°°à°¿à°•à°¨à± à°°à°¿à°ª" + - "à°¬à±à°²à°¿à°•à±à°•à°¾à°‚గో- à°¬à±à°°à°¾à°œà°¾à°µà°¿à°²à±à°²à°¿à°¸à±à°µà°¿à°Ÿà±à°œà°°à±à°²à°¾à°‚à°¡à±à°à°µà°°à±€ కోసà±à°Ÿà±à°•à±à°•à± దీవà±à°²à±à°šà°¿à°²à±€à°•à°¾à°®à±†à°°" + - "ూనà±à°šà±ˆà°¨à°¾à°•à±Šà°²à°‚బియాకà±à°²à°¿à°ªà±à°ªà°°à±à°Ÿà°¨à± దీవికోసà±à°Ÿà°¾ రికాకà±à°¯à±‚బాకేపౠవెరà±à°¡à±‡à°•à±à°°à°¾à°•à°µà±‹à°•à±à°°" + - "à°¿à°¸à±à°®à°¸à± దీవిసైపà±à°°à°¸à±à°šà±†à°•à± రిపబà±à°²à°¿à°•à±à°œà°°à±à°®à°¨à±€à°¡à°¿à°¯à°¾à°—ో గారà±à°¸à°¿à°¯à°¾à°œà°¿à°¬à±Œà°Ÿà°¿à°¡à±†à°¨à±à°®à°¾à°°à±à°•à±à°¡" + - "ోమెనికడొమెనికనౠరిపబà±à°²à°¿à°•à±à°…à°²à±à°œà±€à°°à°¿à°¯à°¾à°¸à±à°¯à±‚à°Ÿà°¾ మరియౠమెలిలà±à°²à°¾à°ˆà°•à±à°µà°¡à°¾à°°à±à°Žà°¸à±à°Ÿà±‹à°¨à°¿" + - "యాఈజిపà±à°Ÿà±à°ªà°¡à°®à°Ÿà°¿ సహారాఎరిటà±à°°à°¿à°¯à°¾à°¸à±à°ªà±†à°¯à°¿à°¨à±à°‡à°¥à°¿à°¯à±‹à°ªà°¿à°¯à°¾à°¯à±à°°à±‹à°ªà°¿à°¯à°¨à± à°¯à±à°¨à°¿à°¯à°¨à±à°«à°¿à°¨à±à°²à°¾à°‚" + - "à°¡à±à°«à°¿à°œà±€à°«à°¾à°•à±\u200cà°²à±à°¯à°¾à°‚డౠదీవà±à°²à±à°®à±ˆà°•à±à°°à±‹à°¨à±‡à°¶à°¿à°¯à°«à°¾à°°à±‹ దీవà±à°²à±à°«à±à°°à°¾à°¨à±à°¸à±\u200cగాబన" + - "à±à°¯à±à°¨à±ˆà°Ÿà±†à°¡à± à°•à°¿à°‚à°—à±\u200cà°¡à°®à±à°—à±à°°à±†à°¨à±†à°¡à°¾à°œà°¾à°°à±à°œà°¿à°¯à°¾à°«à±à°°à±†à°‚చౠగియానాగà±à°µà±‡à°°à±à°¨à°¸à±‡à°˜à°¨à°¾à°œà°¿à°¬à±" + - "రాలà±à°Ÿà°¾à°°à±à°—à±à°°à±€à°¨à±\u200cలాండà±à°—ాంబియాగినియాగà±à°µà°¾à°¡à±‡à°²à±‹à°ªà±à°ˆà°•à±à°µà°Ÿà±‹à°°à°¿à°¯à°²à± గినియాగà±à°°à±€" + - "à°¸à±à°¦à°•à±à°·à°¿à°£ జారà±à°œà°¿à°¯à°¾ & దకà±à°·à°¿à°£ శాండà±à°µà°¿à°šà± దీవà±à°²à±à°—à±à°µà°¾à°Ÿà°¿à°®à°¾à°²à°—à±à°µà°¾à°®à±à°—ినియా-బిసà±à°¸" + - "ావà±à°—యానాహాంకాంగౠఎసà±à°à°†à°°à± చైనాహెరà±à°¡à± & మెకౠడొనాలà±à°¡à± దీవà±à°²à±à°¹à±‹à°‚à°¡à±à°°à°¾à°¸à±à°•à±à°°" + - "ోయేషియాహైటిహంగేరీకేనరీ దీవà±à°²à±à°‡à°‚డోనేషియాà°à°°à±à°²à°¾à°‚à°¡à±à°‡à°œà±à°°à°¾à°¯à°¿à°²à±à°à°²à± ఆఫౠమానà±à°­à°¾" + - "à°°à°¤ దేశంబà±à°°à°¿à°Ÿà±€à°·à± భారతీయ సమà±à°¦à±à°°à°ªà± à°ªà±à°°à°¾à°‚తంఇరాకà±à°‡à°°à°¾à°¨à±à°à°¸à±à°²à°¾à°‚à°¡à±à°‡à°Ÿà°²à±€à°œà±†à°°à±à°¸à±€à°œà°®à±ˆ" + - "కాజోరà±à°¡à°¾à°¨à±à°œà°ªà°¾à°¨à±à°•à±†à°¨à±à°¯à°¾à°•à°¿à°°à±à°—ిజిసà±à°¤à°¾à°¨à±à°•à°‚బోడియాకిరిబాటికొమొరోసà±à°¸à±†à°‚à°Ÿà± à°•à°¿à°Ÿà±à°Ÿ" + - "à±à°¸à± మరియౠనెవిసà±à°‰à°¤à±à°¤à°° కొరియాదకà±à°·à°¿à°£ కొరియాకà±à°µà±ˆà°Ÿà±à°•à±‡à°®à°¾à°¨à± దీవà±à°²à±à°•à°œà°•à°¸à±à°¤à°¾à°¨à±à°²" + - "ావోసà±à°²à±†à°¬à°¨à°¾à°¨à±à°¸à±†à°‚టౠలూసియాలికà±à°Ÿà±†à°¸à±à°Ÿà±‡à°¨à±à°¶à±à°°à±€à°²à°‚కలైబీరియాలెసోతోలిథà±à°µà±‡à°¨à°¿à°¯à°¾à°²à°•à±" + - "సంబరà±à°—à±à°²à°¾à°¤à±à°µà°¿à°¯à°¾à°²à°¿à°¬à°¿à°¯à°¾à°®à±Šà°°à°¾à°•à±à°•à±‹à°®à±Šà°¨à°¾à°•à±‹à°®à±‹à°²à±à°¡à±‹à°µà°¾à°®à±‹à°‚టేనేగà±à°°à±‹à°¸à±†à°‚టౠమారà±à°Ÿà°¿à°¨à±à°®à°¡" + - "గాసà±à°•à°°à±à°®à°¾à°°à±à°·à°²à± దీవà±à°²à±à°®à±‡à°¸à°¿à°¡à±‹à°¨à°¿à°¯à°¾à°®à°¾à°²à°¿à°®à°¯à°¨à±à°®à°¾à°°à± (బరà±à°®à°¾)మంగోలియామాకావౠఎసà±à°" + - "ఆరౠచైనాఉతà±à°¤à°° మరియానా దీవà±à°²à±à°®à°¾à°°à±à°Ÿà°¿à°¨à°¿à°•à±à°®à±Œà°°à°¿à°Ÿà±‡à°¨à°¿à°¯à°¾à°®à±‹à°‚à°Ÿà±à°¸à±‡à°°à±à°°à°¾à°Ÿà±à°®à°¾à°²à±à°Ÿà°¾à°®à°¾à°°" + - "à°¿à°·à°¸à±à°®à°¾à°²à±à°¦à±€à°µà±à°²à±à°®à°¾à°²à°¾à°µà°¿à°®à±†à°•à±à°¸à°¿à°•à±‹à°®à°²à±‡à°·à°¿à°¯à°¾à°®à±Šà°œà°¾à°‚బికà±à°¨à°®à±€à°¬à°¿à°¯à°¾à°•à±à°°à±Šà°¤à±à°¤ కాలెడోనియాన" + - "ైజరà±à°¨à°¾à°°à±à°«à°¾à°•à± దీవినైజీరియానికరాగà±à°µà°¾à°¨à±†à°¦à°°à±à°²à°¾à°‚à°¡à±à°¸à±à°¨à°¾à°°à±à°µà±‡à°¨à±‡à°ªà°¾à°²à±à°¨à±Œà°°à±à°¨à°¿à°¯à±à°¨à±à°¯à±‚" + - "జిలాండà±à°’మనà±à°ªà°¨à°¾à°®à°¾à°ªà±†à°°à±‚à°«à±à°°à±†à°‚చౠపోలినిషియాపాపà±à°µà°¾ à°¨à±à°¯à± గినియాఫిలిపà±à°ªà±€à°¨à±à°¸à±à°ªà°¾" + - "à°•à°¿à°¸à±à°¤à°¾à°¨à±à°ªà±‹à°²à°¾à°‚à°¡à±à°¸à±†à°‚టౠపియెరౠమరియౠమికెలానà±à°ªà°¿à°Ÿà±\u200cకెయిరà±à°¨à± దీవà±à°²à±à°«à±à°¯" + - "ూరà±à°Ÿà±‹ రికోపాలసà±à°¤à±€à°¨à°¿à°¯à°¨à± à°ªà±à°°à°¾à°‚తాలà±à°ªà±‹à°°à±à°šà±à°—à°²à±à°ªà°²à°¾à°µà±à°ªà°°à°¾à°—à±à°µà±‡à°•à°¤à°°à±à°’షీనియా బయటà±à°¨" + - "à±à°¨à°µà°¿à°°à°¿à°¯à±‚నియనà±à°°à±‹à°®à°¾à°¨à°¿à°¯à°¾à°¸à±†à°°à±à°¬à°¿à°¯à°¾à°°à°·à±à°¯à°¾à°°à±à°µà°¾à°‚డాసౌదీ అరేబియాసోలమనౠదీవà±à°²à±à°¸à±€à°·à±†" + - "à°²à±à°¸à±à°¸à±‚డానà±à°¸à±à°µà±€à°¡à°¨à±à°¸à°¿à°‚గపూరà±à°¸à±†à°‚టౠహెలినాసà±à°²à±‹à°µà±‡à°¨à°¿à°¯à°¾à°¸à±à°µà°¾à°²à±à°¬à°¾à°°à±à°¡à± మరియౠయానà±" + - " మాయేనà±à°¸à±à°²à±‹à°µà±‡à°•à°¿à°¯à°¾à°¸à°¿à°¯à±†à°°à±à°°à°¾ లియానà±à°¸à°¾à°¨à± మారినోసెనెగలà±à°¸à±‹à°®à°¾à°²à°¿à°¯à°¾à°¸à±à°°à°¿à°¨à°¾à°®à±à°¦à°•à±à°·à°¿à°£" + - " సూడానà±à°¸à°¾à°µà±‹à°Ÿà±‹à°®à± మరియౠపà±à°°à°¿à°¨à±à°¸à°¿à°ªà±‡à°Žà°²à± సాలà±à°µà°¡à±‹à°°à±à°¸à°¿à°‚టౠమారà±à°Ÿà±†à°¨à±à°¸à°¿à°°à°¿à°¯à°¾à°¸à±à°µà°¾à°œà°¿à°²" + - "à±à°¯à°¾à°‚à°¡à±à°Ÿà±à°°à°¿à°¸à±à°Ÿà°¨à± à°¡ à°•à°¨à±à°¹à°¾à°¤à±à°°à±à°•à± మరియౠకాలికోసౠదీవà±à°²à±à°šà°¾à°¦à±à°«à±à°°à±†à°‚చౠదకà±à°·à°¿à°£ " + - "à°ªà±à°°à°¾à°‚తాలà±à°Ÿà±‹à°—ోథాయిలాండà±à°¤à°œà°¿à°•à°¿à°¸à±à°¤à°¾à°¨à±à°Ÿà±‹à°•à±‡à°²à°¾à°µà±à°Ÿà°¿à°®à±‹à°°à±-లెసà±à°Ÿà±†à°¤à±à°°à±à°•à°®à±‡à°¨à°¿à°¸à±à°¤à°¾à°¨à±à°Ÿ" + - "à±à°¯à±à°¨à±€à°·à°¿à°¯à°¾à°Ÿà±‹à°‚గాటరà±à°•à±€à°Ÿà±à°°à°¿à°¨à°¿à°¡à°¾à°¡à± మరియౠటొబాగోటà±à°µà°¾à°²à±à°¤à±ˆà°µà°¾à°¨à±à°Ÿà°¾à°‚జానియాఉకà±à°°à±†à°¯à°¿" + - "à°¨à±à°‰à°—ాండాసంయà±à°•à±à°¤ రాజà±à°¯ అమెరికా బయట ఉనà±à°¨ దీవà±à°²à±à°…మెరికా సంయà±à°•à±à°¤ రాషà±à°Ÿà±à°°à°¾à°²" + - "à±à°‰à°°à±à°—à±à°µà±‡à°‰à°œà±à°¬à±†à°•à°¿à°¸à±à°¤à°¾à°¨à±à°µà°¾à°Ÿà°¿à°•à°¨à± నగరంసెంటౠవినà±à°¸à±†à°‚టౠమరియౠగà±à°°à±†à°¨à°¡à±€à°¨à±à°¸à±à°µà±†à°¨à±" + - "à°œà±à°µà±‡à°²à°¾à°¬à±à°°à°¿à°Ÿà°¿à°·à± వరà±à°œà°¿à°¨à± దీవà±à°²à±à°¯à±.à°Žà°¸à±. వరà±à°œà°¿à°¨à± దీవà±à°²à±à°µà°¿à°¯à°¤à±à°¨à°¾à°‚వనాటà±à°µà°¾à°²à°¿à°¸à±" + - " మరియౠఫà±à°¯à±à°¤à±à°¯à±à°¨à°¾à°¸à°®à±‹à°µà°¾à°•à±Šà°¸à±‹à°µà±‹à°¯à±†à°®à±†à°¨à±à°®à°¾à°¯à±Šà°Ÿà±à°Ÿà°¿à°¦à°•à±à°·à°¿à°£ ఆఫà±à°°à°¿à°•à°¾à°œà°¾à°‚బియాజింబాబà±à°µà±‡" + - "తెలియని à°ªà±à°°à°¾à°‚తంపà±à°°à°ªà°‚చంఆఫà±à°°à°¿à°•à°¾à°‰à°¤à±à°¤à°° అమెరికాదకà±à°·à°¿à°£ అమెరికాఒషీనియపశà±à°šà°¿à°® à°†" + - "à°«à±à°°à°¿à°•à°¾ భూభాగంమధà±à°¯à°® అమెరికాతూరà±à°ªà± ఆఫà±à°°à°¿à°•à°¾à°‰à°¤à±à°¤à°° ఆఫà±à°°à°¿à°•à°¾à°®à°§à±à°¯à°® ఆఫà±à°°à°¿à°•à°¾à°¦à°•à±à°·" + - "à°¿à°£ ఆఫà±à°°à°¿à°•à°¾ భూభాగంఅమెరికాలà±à°‰à°¤à±à°¤à°° అమెరికా భూభాగంకరిబà±à°¬à°¿à°¯à°¨à±à°¤à±‚à°°à±à°ªà± ఆసియాదక" + - "à±à°·à°¿à°£ ఆసియానైరà±à°¤à°¿ ఆసియాదకà±à°·à°¿à°£ యూరోపà±à°†à°¸à±à°Ÿà±à°°à±‡à°²à±‡à°¸à°¿à°¯à°¾à°®à±†à°²à°¨à±‡à°¶à°¿à°¯à°®à±ˆà°•à±à°°à±‹à°¨à±‡à°¶à°¿à°¯ à°ªà±" + - "రాంతంపాలినేషియాఆసియామధà±à°¯ ఆసియాపడమటి ఆసియాయూరోపà±à°¤à±‚à°°à±à°ªà± యూరోపà±à°‰à°¤à±à°¤à°° యూరో" + - "à°ªà±à°ªà°¶à±à°šà°¿à°® యూరోపà±à°²à°¾à°Ÿà°¿à°¨à± అమెరికా" - -// Size: 606 bytes, 291 elements -var teRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x001f, 0x0037, 0x0078, 0x009c, 0x00dd, 0x00f8, 0x0113, - 0x012e, 0x0174, 0x0186, 0x01a7, 0x01c5, 0x01ed, 0x0208, 0x0229, - 0x0238, 0x025d, 0x027b, 0x02c8, 0x02e3, 0x0301, 0x0319, 0x033e, - 0x0359, 0x0374, 0x0389, 0x039b, 0x03c6, 0x03de, 0x03f0, 0x0408, - 0x0445, 0x045d, 0x0472, 0x0484, 0x04a3, 0x04c1, 0x04d6, 0x04e8, - 0x04f7, 0x0534, 0x055d, 0x05aa, 0x05df, 0x0609, 0x0628, 0x0647, - 0x0653, 0x066b, 0x0677, 0x068f, 0x06c0, 0x06df, 0x06f1, 0x0710, - 0x0725, 0x074d, 0x0762, 0x078a, 0x079c, 0x07c7, 0x07d9, 0x07f7, - // Entry 40 - 7F - 0x080c, 0x0843, 0x085e, 0x0899, 0x08b1, 0x08cc, 0x08e1, 0x0900, - 0x091b, 0x0933, 0x094e, 0x097f, 0x099a, 0x09a6, 0x09dd, 0x09fe, - 0x0a1d, 0x0a38, 0x0a47, 0x0a7b, 0x0a93, 0x0aab, 0x0ad3, 0x0aee, - 0x0af7, 0x0b1b, 0x0b3f, 0x0b54, 0x0b66, 0x0b84, 0x0bb8, 0x0bca, - 0x0c39, 0x0c54, 0x0c66, 0x0c91, 0x0ca0, 0x0cdb, 0x0d28, 0x0d43, - 0x0d61, 0x0d6d, 0x0d7f, 0x0da1, 0x0dbf, 0x0dd7, 0x0df2, 0x0e12, - 0x0e2b, 0x0e85, 0x0e94, 0x0ea3, 0x0ebb, 0x0ec7, 0x0ed9, 0x0ee8, - 0x0f00, 0x0f0f, 0x0f21, 0x0f4b, 0x0f63, 0x0f7b, 0x0f93, 0x0fde, - // Entry 80 - BF - 0x1000, 0x1025, 0x1037, 0x105c, 0x1077, 0x1089, 0x109e, 0x10c0, - 0x10e4, 0x10f9, 0x1111, 0x1123, 0x1141, 0x115f, 0x1177, 0x1189, - 0x11a1, 0x11b3, 0x11cb, 0x11ec, 0x1214, 0x122f, 0x1257, 0x1275, - 0x1281, 0x12ab, 0x12c3, 0x12f8, 0x1330, 0x134e, 0x136c, 0x1393, - 0x13a5, 0x13ba, 0x13d8, 0x13ea, 0x1402, 0x1417, 0x1432, 0x1447, - 0x147b, 0x148a, 0x14af, 0x14c7, 0x14e2, 0x1506, 0x1518, 0x152a, - 0x1536, 0x1542, 0x1563, 0x156f, 0x157e, 0x158a, 0x15be, 0x15f0, - 0x1614, 0x1632, 0x1647, 0x1692, 0x16cc, 0x16f1, 0x1731, 0x174c, - // Entry C0 - FF - 0x175b, 0x1770, 0x177c, 0x17ad, 0x17c8, 0x17e0, 0x17f8, 0x1807, - 0x181c, 0x183e, 0x1863, 0x187b, 0x188d, 0x18a2, 0x18ba, 0x18dc, - 0x18fa, 0x194e, 0x196c, 0x1997, 0x19b6, 0x19cb, 0x19e3, 0x19fb, - 0x1a20, 0x1a67, 0x1a8c, 0x1ab4, 0x1ac6, 0x1aed, 0x1b1c, 0x1b6a, - 0x1b76, 0x1bba, 0x1bc6, 0x1be1, 0x1c02, 0x1c1a, 0x1c3f, 0x1c6c, - 0x1c8a, 0x1c99, 0x1ca8, 0x1ce9, 0x1cfb, 0x1d0d, 0x1d28, 0x1d43, - 0x1d55, 0x1dba, 0x1e04, 0x1e19, 0x1e40, 0x1e62, 0x1ebf, 0x1edd, - 0x1f1e, 0x1f58, 0x1f70, 0x1f7f, 0x1fc0, 0x1fcf, 0x1fe1, 0x1ff3, - // Entry 100 - 13F - 0x200b, 0x2033, 0x2048, 0x2063, 0x208e, 0x20a3, 0x20b8, 0x20dd, - 0x2105, 0x2117, 0x2152, 0x2177, 0x219f, 0x21c4, 0x21e9, 0x2224, - 0x223f, 0x2277, 0x2295, 0x22b7, 0x22d9, 0x22fb, 0x2320, 0x2347, - 0x235f, 0x2396, 0x23b4, 0x23c3, 0x23df, 0x23fe, 0x2410, 0x2435, - 0x2457, 0x247c, 0x24a4, -} - -// Size: 9078 bytes -var thRegionStr string = "" + - "เà¸à¸²à¸°à¹à¸­à¸ªà¹€à¸‹à¸™à¸Šà¸±à¸™à¸­à¸±à¸™à¸”อร์ราสหรัà¸à¸­à¸²à¸«à¸£à¸±à¸šà¹€à¸­à¸¡à¸´à¹€à¸£à¸•à¸ªà¹Œà¸­à¸±à¸Ÿà¸à¸²à¸™à¸´à¸ªà¸–านà¹à¸­à¸™à¸•à¸´à¸à¸²à¹à¸¥à¸°à¸šà¸²à¸£à¹Œà¸šà¸¹à¸”าà¹" + - "องà¸à¸§à¸´à¸¥à¸¥à¸²à¹à¸­à¸¥à¹€à¸šà¹€à¸™à¸µà¸¢à¸­à¸²à¸£à¹Œà¹€à¸¡à¹€à¸™à¸µà¸¢à¹€à¸™à¹€à¸˜à¸­à¸£à¹Œà¹à¸¥à¸™à¸”์à¹à¸­à¸™à¸—ิลลิสà¹à¸­à¸‡à¹‚à¸à¸¥à¸²à¹à¸­à¸™à¸•à¸²à¸£à¹Œà¸à¸•à¸´à¸à¸²à¸­à¸²à¸£" + - "์เจนตินาอเมริà¸à¸±à¸™à¸‹à¸²à¸¡à¸±à¸§à¸­à¸­à¸ªà¹€à¸•à¸£à¸µà¸¢à¸­à¸­à¸ªà¹€à¸•à¸£à¹€à¸¥à¸µà¸¢à¸­à¸²à¸£à¸¹à¸šà¸²à¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¹‚อลันด์อาเซอร์ไบจ" + - "านบอสเนียà¹à¸¥à¸°à¹€à¸®à¸­à¸£à¹Œà¹€à¸‹à¹‚à¸à¸§à¸µà¸™à¸²à¸šà¸²à¸£à¹Œà¹€à¸šà¹‚ดสบังà¸à¸¥à¸²à¹€à¸—ศเบลเยียมบูร์à¸à¸´à¸™à¸²à¸Ÿà¸²à¹‚ซบัลà¹à¸à¹€à¸£" + - "ียบาห์เรนบุรุนดีเบนินเซนต์บาร์เธเลมีเบอร์มิวดาบรูไนโบลิเวียเนเธอร์à¹à¸¥à¸™à¸”" + - "์à¹à¸„ริบเบียนบราซิลบาฮามาสภูà¸à¸²à¸™à¹€à¸à¸²à¸°à¸šà¸¹à¹€à¸§à¸•à¸šà¸­à¸•à¸ªà¸§à¸²à¸™à¸²à¹€à¸šà¸¥à¸²à¸£à¸¸à¸ªà¹€à¸šà¸¥à¸µà¸‹à¹à¸„นาดาหมู่เà¸" + - "าะโคโคส (คีลิง)คองโà¸-à¸à¸´à¸™à¸Šà¸²à¸‹à¸²à¸ªà¸²à¸˜à¸²à¸£à¸“รัà¸à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸à¸¥à¸²à¸‡à¸„องโà¸-บราซซาวิลสวิตเซอ" + - "ร์à¹à¸¥à¸™à¸”์ไอวอรี่โคสต์หมู่เà¸à¸²à¸°à¸„ุà¸à¸Šà¸´à¸¥à¸µà¹à¸„เมอรูนจีนโคลอมเบียเà¸à¸²à¸°à¸„ลิปเปอร์ตัน" + - "คอสตาริà¸à¸²à¸„ิวบาเคปเวิร์ดคูราเซาเà¸à¸²à¸°à¸„ริสต์มาสไซปรัสสาธารณรัà¸à¹€à¸Šà¹‡à¸à¹€à¸¢à¸­à¸£à¸¡à¸™à¸µà¸”" + - "ิเอโà¸à¸à¸²à¸£à¹Œà¹€à¸‹à¸µà¸¢à¸ˆà¸´à¸šà¸¹à¸•à¸µà¹€à¸”นมาร์à¸à¹‚ดมินิà¸à¸²à¸ªà¸²à¸˜à¸²à¸£à¸“รัà¸à¹‚ดมินิà¸à¸±à¸™à¹à¸­à¸¥à¸ˆà¸µà¹€à¸£à¸µà¸¢à¸‹à¸µà¹‚อตาà¹à¸¥" + - "ะเมลิลลาเอà¸à¸§à¸²à¸”อร์เอสโตเนียอียิปต์ซาฮาราตะวันตà¸à¹€à¸­à¸£à¸´à¹€à¸—รียสเปนเอธิโอเปียส" + - "หภาพยุโรปฟินà¹à¸¥à¸™à¸”์ฟิจิหมู่เà¸à¸²à¸°à¸Ÿà¸­à¸¥à¹Œà¸à¹à¸¥à¸™à¸”์ไมโครนีเซียหมู่เà¸à¸²à¸°à¹à¸Ÿà¹‚รà¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ª" + - "à¸à¸²à¸šà¸­à¸‡à¸ªà¸«à¸£à¸²à¸Šà¸­à¸²à¸“าจัà¸à¸£à¹€à¸à¸£à¹€à¸™à¸”าจอร์เจียเฟรนช์เà¸à¸µà¸¢à¸™à¸²à¹€à¸à¸´à¸£à¹Œà¸™à¸‹à¸µà¸¢à¹Œà¸à¸²à¸™à¸²à¸¢à¸´à¸šà¸£à¸­à¸¥à¸•à¸²à¸£à¹Œà¸" + - "รีนà¹à¸¥à¸™à¸”์à¹à¸à¸¡à¹€à¸šà¸µà¸¢à¸à¸´à¸™à¸µà¸à¸§à¸²à¹€à¸”อลูปอิเควทอเรียลà¸à¸´à¸™à¸µà¸à¸£à¸µà¸‹à¹€à¸à¸²à¸°à¹€à¸‹à¸²à¸—์จอร์เจียà¹à¸¥à¸°à¸«à¸¡" + - "ู่เà¸à¸²à¸°à¹€à¸‹à¸²à¸—์à¹à¸‹à¸™à¸”์วิชà¸à¸±à¸§à¹€à¸•à¸¡à¸²à¸¥à¸²à¸à¸§à¸¡à¸à¸´à¸™à¸µ-บิสเซาà¸à¸²à¸¢à¸­à¸²à¸™à¸²à¹€à¸‚ตปà¸à¸„รองพิเศษฮ่องà¸à¸‡à¹" + - "ห่งสาธารณรัà¸à¸›à¸£à¸°à¸Šà¸²à¸Šà¸™à¸ˆà¸µà¸™à¹€à¸à¸²à¸°à¹€à¸®à¸´à¸£à¹Œà¸”à¹à¸¥à¸°à¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¹à¸¡à¸à¸”อนัลด์ฮอนดูรัสโครเอเชีย" + - "เฮติฮังà¸à¸²à¸£à¸µà¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¸„านารีอินโดนีเซียไอร์à¹à¸¥à¸™à¸”์อิสราเอลเà¸à¸²à¸°à¹à¸¡à¸™à¸­à¸´à¸™à¹€à¸”ียบริ" + - "ติชอินเดียนโอเชียนเทร์ริทอรีอิรัà¸à¸­à¸´à¸«à¸£à¹ˆà¸²à¸™à¹„อซ์à¹à¸¥à¸™à¸”์อิตาลีเจอร์ซีย์จาเมà¸à¸²" + - "จอร์à¹à¸”นà¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™à¹€à¸„นยาคีร์à¸à¸µà¸‹à¸ªà¸–านà¸à¸±à¸¡à¸žà¸¹à¸Šà¸²à¸„ิริบาสคอโมโรสเซนต์คิตส์à¹à¸¥à¸°à¹€à¸™à¸§à¸´à¸ªà¹€" + - "à¸à¸²à¸«à¸¥à¸µà¹€à¸«à¸™à¸·à¸­à¹€à¸à¸²à¸«à¸¥à¸µà¹ƒà¸•à¹‰à¸„ูเวตหมู่เà¸à¸²à¸°à¹€à¸„ย์à¹à¸¡à¸™à¸„าซัคสถานลาวเลบานอนเซนต์ลูเซียล" + - "ิà¸à¹€à¸•à¸™à¸ªà¹„ตน์ศรีลังà¸à¸²à¹„ลบีเรียเลโซโทลิทัวเนียลัà¸à¹€à¸‹à¸¡à¹€à¸šà¸´à¸£à¹Œà¸à¸¥à¸±à¸•à¹€à¸§à¸µà¸¢à¸¥à¸´à¹€à¸šà¸µà¸¢à¹‚มร็" + - "อà¸à¹‚à¸à¹‚มนาโà¸à¸¡à¸­à¸¥à¹‚ดวามอนเตเนโà¸à¸£à¹€à¸‹à¸™à¸•à¹Œà¸¡à¸²à¸•à¸´à¸™à¸¡à¸²à¸”าà¸à¸±à¸ªà¸à¸²à¸£à¹Œà¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¸¡à¸²à¸£à¹Œà¹à¸Šà¸¥à¸¥à¹Œà¸¡à¸²à¸‹à¸´à¹‚" + - "ดเนียมาลีเมียนม่าร์ (พม่า)มองโà¸à¹€à¸¥à¸µà¸¢à¹€à¸‚ตปà¸à¸„รองพิเศษมาเà¸à¹Šà¸²à¹à¸«à¹ˆà¸‡à¸ªà¸²à¸˜à¸²à¸£à¸“รัà¸à¸›à¸£" + - "ะชาชนจีนหมู่เà¸à¸²à¸°à¸™à¸­à¸£à¹Œà¹€à¸—ิร์นมาเรียนามาร์ตินีà¸à¸¡à¸­à¸£à¸´à¹€à¸•à¹€à¸™à¸µà¸¢à¸¡à¸­à¸™à¸•à¹Œà¹€à¸‹à¸­à¸£à¹Œà¸£à¸±à¸•à¸¡à¸­à¸¥à¸•" + - "ามอริเชียสมัลดีฟส์มาลาวีเม็à¸à¸‹à¸´à¹‚à¸à¸¡à¸²à¹€à¸¥à¹€à¸‹à¸µà¸¢à¹‚มซัมบิà¸à¸™à¸²à¸¡à¸´à¹€à¸šà¸µà¸¢à¸™à¸´à¸§à¹à¸„ลิโดเนียไ" + - "นเจอร์เà¸à¸²à¸°à¸™à¸­à¸£à¹Œà¸Ÿà¸­à¸¥à¹Œà¸à¹„นจีเรียนิà¸à¸²à¸£à¸²à¸à¸±à¸§à¹€à¸™à¹€à¸˜à¸­à¸£à¹Œà¹à¸¥à¸™à¸”์นอร์เวย์เนปาลนาอูรูนีอ" + - "ูเอนิวซีà¹à¸¥à¸™à¸”์โอมานปานามาเปรูเฟรนช์โปลินีเซียปาปัวนิวà¸à¸´à¸™à¸µà¸Ÿà¸´à¸¥à¸´à¸›à¸›à¸´à¸™à¸ªà¹Œà¸›à¸²à¸à¸µ" + - "สถานโปà¹à¸¥à¸™à¸”์à¹à¸‹à¸‡à¸›à¸µà¹à¸¢à¸£à¹Œà¹à¸¥à¸°à¸¡à¸µà¹€à¸à¸­à¸¥à¸‡à¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¸žà¸´à¸•à¹à¸„ร์นเปอร์โตริโà¸à¸”ินà¹à¸”นปาเลสไต" + - "น์โปรตุเà¸à¸ªà¸›à¸²à¹€à¸¥à¸²à¸›à¸²à¸£à¸²à¸à¸§à¸±à¸¢à¸à¸²à¸•à¸²à¸£à¹Œà¹€à¸­à¸²à¸•à¹Œà¹„ลอิงโอเชียเนียเรอูนียงโรมาเนียเซอร์" + - "เบียรัสเซียรวันดาซาอุดีอาระเบียหมู่เà¸à¸²à¸°à¹‚ซโลมอนเซเชลส์ซูดานสวีเดนสิงคโป" + - "ร์เซนต์เฮเลนาสโลวีเนียสฟาลบาร์à¹à¸¥à¸°à¸¢à¸²à¸™à¹„มเอนสโลวะเà¸à¸µà¸¢à¹€à¸‹à¸µà¸¢à¸£à¹Œà¸£à¸²à¸¥à¸µà¹‚อนซานมารี" + - "โนเซเนà¸à¸±à¸¥à¹‚ซมาเลียซูรินาเมซูดานใต้เซาตูเมà¹à¸¥à¸°à¸›à¸£à¸´à¸™à¸‹à¸´à¸›à¸µà¹€à¸­à¸¥à¸‹à¸±à¸¥à¸§à¸²à¸”อร์เซนต์มา" + - "ร์ตินซีเรียสวาซิà¹à¸¥à¸™à¸”์ทริสตัน เดอ คูนาหมู่เà¸à¸²à¸°à¹€à¸•à¸´à¸à¸ªà¹Œà¹à¸¥à¸°à¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¹€à¸„คอสชาด" + - "เฟรนช์เซาเทิร์นเทร์ริทอรีส์โตโà¸à¹„ทยทาจิà¸à¸´à¸ªà¸–านโตเà¸à¹€à¸¥à¸²à¸•à¸´à¸¡à¸­à¸£à¹Œ-เลสเตเติร์à¸à¹€" + - "มนิสถานตูนิเซียตองà¸à¸²à¸•à¸¸à¸£à¸à¸µà¸•à¸£à¸´à¸™à¸´à¹à¸”ดà¹à¸¥à¸°à¹‚ตเบโà¸à¸•à¸¹à¸§à¸²à¸¥à¸¹à¹„ต้หวันà¹à¸—นซาเนียยูเครน" + - "ยูà¸à¸±à¸™à¸”าหมู่เà¸à¸²à¸°à¸£à¸­à¸šà¸™à¸­à¸à¸‚องสหรัà¸à¸­à¹€à¸¡à¸£à¸´à¸à¸²à¸ªà¸«à¸£à¸±à¸à¸­à¹€à¸¡à¸£à¸´à¸à¸²à¸­à¸¸à¸£à¸¸à¸à¸§à¸±à¸¢à¸­à¸¸à¸‹à¹€à¸šà¸à¸´à¸ªà¸–านนคร" + - "วาติà¸à¸±à¸™à¹€à¸‹à¸™à¸•à¹Œà¸§à¸´à¸™à¹€à¸‹à¸™à¸•à¹Œà¹à¸¥à¸°à¹€à¸à¸£à¸™à¸²à¸”ีนส์เวเนซุเอลาหมู่เà¸à¸²à¸°à¸šà¸£à¸´à¸•à¸´à¸Šà¹€à¸§à¸­à¸£à¹Œà¸ˆà¸´à¸™à¸«à¸¡à¸¹à¹ˆà¹€" + - "à¸à¸²à¸°à¸¢à¸¹à¹€à¸­à¸ªà¹€à¸§à¸­à¸£à¹Œà¸ˆà¸´à¸™à¹€à¸§à¸µà¸¢à¸”นามวานูอาตูวาลลิสà¹à¸¥à¸°à¸Ÿà¸¸à¸•à¸¹à¸™à¸²à¸‹à¸²à¸¡à¸±à¸§à¹‚คโซโวเยเมนมายอตà¹à¸­" + - "ฟริà¸à¸²à¹ƒà¸•à¹‰à¹à¸‹à¸¡à¹€à¸šà¸µà¸¢à¸‹à¸´à¸¡à¸šà¸±à¸šà¹€à¸§à¸ à¸¹à¸¡à¸´à¸ à¸²à¸„ที่ไม่รู้จัà¸à¹‚ลà¸à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸­à¹€à¸¡à¸£à¸´à¸à¸²à¹€à¸«à¸™à¸·à¸­à¸­à¹€à¸¡à¸£à¸´à¸" + - "าใต้โอเชียเนียà¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸•à¸°à¸§à¸±à¸™à¸•à¸à¸­à¹€à¸¡à¸£à¸´à¸à¸²à¸à¸¥à¸²à¸‡à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸•à¸°à¸§à¸±à¸™à¸­à¸­à¸à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¹€à¸«à¸™à¸·à¸­à¹à¸­à¸Ÿà¸£" + - "ิà¸à¸²à¸à¸¥à¸²à¸‡à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸•à¸­à¸™à¹ƒà¸•à¹‰à¸­à¹€à¸¡à¸£à¸´à¸à¸²à¸­à¹€à¸¡à¸£à¸´à¸à¸²à¸•à¸­à¸™à¹€à¸«à¸™à¸·à¸­à¹à¸„ริบเบียนเอเชียตะวันออà¸à¹€à¸­à¹€à¸Š" + - "ียใต้เอเชียตะวันออà¸à¹€à¸‰à¸µà¸¢à¸‡à¹ƒà¸•à¹‰à¸¢à¸¸à¹‚รปใต้ออสตราเลเซียเมลานีเซียเขตไมโครนีเซี" + - "ยโปลินีเซียเอเชียเอเชียà¸à¸¥à¸²à¸‡à¹€à¸­à¹€à¸Šà¸µà¸¢à¸•à¸°à¸§à¸±à¸™à¸•à¸à¸¢à¸¸à¹‚รปยุโรปตะวันออà¸à¸¢à¸¸à¹‚รปเหนือยุ" + - "โรปตะวันตà¸à¸¥à¸°à¸•à¸´à¸™à¸­à¹€à¸¡à¸£à¸´à¸à¸²" - -// Size: 606 bytes, 291 elements -var thRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0027, 0x0042, 0x007e, 0x009f, 0x00d5, 0x00f0, 0x010b, - 0x0129, 0x0168, 0x017d, 0x01a1, 0x01c2, 0x01e9, 0x0201, 0x021f, - 0x0231, 0x025e, 0x0282, 0x02c7, 0x02e2, 0x02fd, 0x0315, 0x0339, - 0x0354, 0x0369, 0x037e, 0x038d, 0x03ba, 0x03d8, 0x03e7, 0x03ff, - 0x0441, 0x0453, 0x0468, 0x0477, 0x0492, 0x04aa, 0x04bf, 0x04ce, - 0x04e0, 0x0519, 0x053e, 0x057a, 0x05a5, 0x05cf, 0x05f3, 0x0614, - 0x0620, 0x0638, 0x0641, 0x065c, 0x068c, 0x06a7, 0x06b6, 0x06d1, - 0x06e6, 0x070d, 0x071f, 0x0746, 0x075b, 0x0785, 0x0797, 0x07af, - // Entry 40 - 7F - 0x07c7, 0x07fd, 0x0818, 0x0848, 0x0863, 0x087e, 0x0893, 0x08ba, - 0x08d5, 0x08e1, 0x08ff, 0x091d, 0x0935, 0x0941, 0x0977, 0x0998, - 0x09bc, 0x09d4, 0x09e3, 0x0a0a, 0x0a1f, 0x0a37, 0x0a5b, 0x0a79, - 0x0a85, 0x0aa3, 0x0abe, 0x0ad3, 0x0adf, 0x0afa, 0x0b2a, 0x0b36, - 0x0bb1, 0x0bcc, 0x0bd5, 0x0bf4, 0x0c09, 0x0c8a, 0x0ce7, 0x0cff, - 0x0d1a, 0x0d26, 0x0d3b, 0x0d65, 0x0d86, 0x0da1, 0x0db9, 0x0dce, - 0x0de3, 0x0e40, 0x0e4f, 0x0e64, 0x0e7f, 0x0e91, 0x0eac, 0x0ebe, - 0x0ed3, 0x0ee8, 0x0ef7, 0x0f18, 0x0f2d, 0x0f42, 0x0f57, 0x0f8d, - // Entry 80 - BF - 0x0fae, 0x0fc9, 0x0fd8, 0x1005, 0x1020, 0x1029, 0x103e, 0x105f, - 0x1080, 0x1098, 0x10b0, 0x10c2, 0x10dd, 0x1101, 0x1116, 0x1128, - 0x1140, 0x1152, 0x1167, 0x1185, 0x11a3, 0x11c4, 0x11f7, 0x1215, - 0x1221, 0x124e, 0x1269, 0x12ea, 0x1338, 0x1353, 0x1371, 0x1398, - 0x13a7, 0x13c2, 0x13da, 0x13ec, 0x1404, 0x141c, 0x1434, 0x144c, - 0x1473, 0x1488, 0x14af, 0x14c7, 0x14e2, 0x1506, 0x151e, 0x152d, - 0x153f, 0x1551, 0x156f, 0x157e, 0x1590, 0x159c, 0x15cc, 0x15f0, - 0x160e, 0x1626, 0x163b, 0x1674, 0x16a4, 0x16c5, 0x16f2, 0x170a, - // Entry C0 - FF - 0x1719, 0x1731, 0x1743, 0x177f, 0x1797, 0x17af, 0x17ca, 0x17df, - 0x17f1, 0x181b, 0x1848, 0x185d, 0x186c, 0x187e, 0x1896, 0x18b7, - 0x18d2, 0x190b, 0x1926, 0x194d, 0x1968, 0x197d, 0x1995, 0x19ad, - 0x19c5, 0x19fb, 0x1a1f, 0x1a43, 0x1a55, 0x1a73, 0x1a9f, 0x1af9, - 0x1b02, 0x1b53, 0x1b5f, 0x1b68, 0x1b86, 0x1b9b, 0x1bbd, 0x1be7, - 0x1bff, 0x1c0e, 0x1c1d, 0x1c50, 0x1c62, 0x1c77, 0x1c92, 0x1ca4, - 0x1cb9, 0x1d10, 0x1d34, 0x1d4c, 0x1d6d, 0x1d8b, 0x1dd9, 0x1df7, - 0x1e39, 0x1e78, 0x1e90, 0x1ea8, 0x1ed5, 0x1ee4, 0x1ef6, 0x1f05, - // Entry 100 - 13F - 0x1f14, 0x1f32, 0x1f47, 0x1f5f, 0x1f98, 0x1fa1, 0x1fb6, 0x1fda, - 0x1ff8, 0x2016, 0x2040, 0x2061, 0x208e, 0x20b2, 0x20d3, 0x20fa, - 0x210f, 0x213c, 0x215a, 0x2184, 0x219f, 0x21e1, 0x21f9, 0x221d, - 0x223b, 0x2265, 0x2283, 0x2295, 0x22b3, 0x22da, 0x22e9, 0x2310, - 0x232e, 0x2352, 0x2376, -} - -// Size: 3053 bytes -var trRegionStr string = "" + - "Ascension AdasıAndorraBirleÅŸik Arap EmirlikleriAfganistanAntigua ve Barb" + - "udaAnguillaArnavutlukErmenistanHollanda AntilleriAngolaAntarktikaArjanti" + - "nAmerikan SamoasıAvusturyaAvustralyaArubaÃ…land AdalarıAzerbaycanBosna He" + - "rsekBarbadosBangladeÅŸBelçikaBurkina FasoBulgaristanBahreynBurundiBeninSa" + - "int BarthelemyBermudaBruneiBolivyaKarayip HollandaBrezilyaBahamalarButan" + - "Bouvet AdasıBotsvanaBeyaz RusyaBelizeKanadaCocos (Keeling) AdalarıKongo " + - "- KinÅŸasaOrta Afrika CumhuriyetiKongo - BrazavilÄ°sviçreFildiÅŸi SahiliCoo" + - "k AdalarıŞiliKamerunÇinKolombiyaClipperton AdasıKosta RikaKübaCape Verde" + - "CuraçaoChristmas AdasıGüney Kıbrıs Rum KesimiÇek CumhuriyetiAlmanyaDiego" + - " GarciaCibutiDanimarkaDominikaDominik CumhuriyetiCezayirSepte ve Melilla" + - "EkvadorEstonyaMısırBatı SaharaEritreÄ°spanyaEtiyopyaAvrupa BirliÄŸiFinland" + - "iyaFijiFalkland AdalarıMikronezyaFaroe AdalarıFransaGabonBirleÅŸik Krallı" + - "kGrenadaGürcistanFransız GuyanasıGuernseyGanaCebelitarıkGrönlandGambiyaG" + - "ineGuadalupeEkvator GinesiYunanistanGüney Georgia ve Güney Sandwich Adal" + - "arıGuatemalaGuamGine-BissauGuyanaÇin Hong Kong ÖYBHeard Adası ve McDonal" + - "d AdalarıHondurasHırvatistanHaitiMacaristanKanarya AdalarıEndonezyaÄ°rlan" + - "daÄ°srailMan AdasıHindistanBritanya Hint Okyanusu TopraklarıIrakÄ°ranÄ°zlan" + - "daÄ°talyaJerseyJamaikaÃœrdünJaponyaKenyaKırgızistanKamboçyaKiribatiKomorla" + - "rSaint Kitts ve NevisKuzey KoreGüney KoreKuveytCayman AdalarıKazakistanL" + - "aosLübnanSaint LuciaLiechtensteinSri LankaLiberyaLesotoLitvanyaLüksembur" + - "gLetonyaLibyaFasMonakoMoldovaKaradaÄŸSaint MartinMadagaskarMarshall Adala" + - "rıMakedonyaMaliMyanmar (Burma)MoÄŸolistanÇin Makao ÖYBKuzey Mariana Adala" + - "rıMartinikMoritanyaMontserratMaltaMauritiusMaldivlerMalaviMeksikaMalezya" + - "MozambikNamibyaYeni KaledonyaNijerNorfolk AdasıNijeryaNikaraguaHollandaN" + - "orveçNepalNauruNiueYeni ZelandaUmmanPanamaPeruFransız PolinezyasıPapua Y" + - "eni GineFilipinlerPakistanPolonyaSaint Pierre ve MiquelonPitcairn Adalar" + - "ıPorto RikoFilistin BölgeleriPortekizPalauParaguayKatarUzak OkyanusyaRé" + - "unionRomanyaSırbistanRusyaRuandaSuudi ArabistanSolomon AdalarıSeyÅŸellerS" + - "udanÄ°sveçSingapurSaint HelenaSlovenyaSvalbard ve Jan Mayen AdalarıSlovak" + - "yaSierra LeoneSan MarinoSenegalSomaliSurinamGüney SudanSão Tomé ve Prínc" + - "ipeEl SalvadorSint MaartenSuriyeSvazilandTristan da CunhaTurks ve Caicos" + - " AdalarıÇadFransız Güney TopraklarıTogoTaylandTacikistanTokelauTimor-Les" + - "teTürkmenistanTunusTongaTürkiyeTrinidad ve TobagoTuvaluTayvanTanzanyaUkr" + - "aynaUgandaABD Uzak AdalarıABDUruguayÖzbekistanVatikanSaint Vincent ve Gr" + - "enadinlerVenezuelaBritanya Virjin AdalarıABD Virjin AdalarıVietnamVanuat" + - "uWallis ve Futuna AdalarıSamoaKosovaYemenMayotteGüney AfrikaZambiyaZimba" + - "bveBilinmeyen BölgeDünyaAfrikaKuzey AmerikaGüney AmerikaOkyanusyaBatı Af" + - "rikaOrta AmerikaDoÄŸu AfrikaKuzey AfrikaOrta AfrikaAfrika’nın GüneyiAmeri" + - "kaAmerika’nın KuzeyiKarayiplerDoÄŸu AsyaGüney AsyaGüneydoÄŸu AsyaGüney Avr" + - "upaAvustralasyaMelanezyaMikronezya BölgesiPolinezyaAsyaOrta AsyaBatı Asy" + - "aAvrupaDoÄŸu AvrupaKuzey AvrupaBatı AvrupaLatin Amerika" - -// Size: 606 bytes, 291 elements -var trRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0010, 0x0017, 0x0031, 0x003b, 0x004d, 0x0055, 0x005f, - 0x0069, 0x007b, 0x0081, 0x008b, 0x0093, 0x00a4, 0x00ad, 0x00b7, - 0x00bc, 0x00cb, 0x00d5, 0x00e1, 0x00e9, 0x00f3, 0x00fb, 0x0107, - 0x0112, 0x0119, 0x0120, 0x0125, 0x0135, 0x013c, 0x0142, 0x0149, - 0x0159, 0x0161, 0x016a, 0x016f, 0x017c, 0x0184, 0x018f, 0x0195, - 0x019b, 0x01b3, 0x01c3, 0x01da, 0x01ea, 0x01f3, 0x0202, 0x020f, - 0x0214, 0x021b, 0x021f, 0x0228, 0x0239, 0x0243, 0x0248, 0x0252, - 0x025a, 0x026a, 0x0284, 0x0294, 0x029b, 0x02a7, 0x02ad, 0x02b6, - // Entry 40 - 7F - 0x02be, 0x02d1, 0x02d8, 0x02e8, 0x02ef, 0x02f6, 0x02fd, 0x0309, - 0x030f, 0x0317, 0x031f, 0x032e, 0x0338, 0x033c, 0x034d, 0x0357, - 0x0365, 0x036b, 0x0370, 0x0382, 0x0389, 0x0393, 0x03a5, 0x03ad, - 0x03b1, 0x03bd, 0x03c6, 0x03cd, 0x03d1, 0x03da, 0x03e8, 0x03f2, - 0x041c, 0x0425, 0x0429, 0x0434, 0x043a, 0x044d, 0x046e, 0x0476, - 0x0482, 0x0487, 0x0491, 0x04a1, 0x04aa, 0x04b2, 0x04b9, 0x04c3, - 0x04cc, 0x04ee, 0x04f2, 0x04f7, 0x04ff, 0x0506, 0x050c, 0x0513, - 0x051a, 0x0521, 0x0526, 0x0533, 0x053c, 0x0544, 0x054c, 0x0560, - // Entry 80 - BF - 0x056a, 0x0575, 0x057b, 0x058a, 0x0594, 0x0598, 0x059f, 0x05aa, - 0x05b7, 0x05c0, 0x05c7, 0x05cd, 0x05d5, 0x05e0, 0x05e7, 0x05ec, - 0x05ef, 0x05f5, 0x05fc, 0x0604, 0x0610, 0x061a, 0x062b, 0x0634, - 0x0638, 0x0647, 0x0652, 0x0661, 0x0677, 0x067f, 0x0688, 0x0692, - 0x0697, 0x06a0, 0x06a9, 0x06af, 0x06b6, 0x06bd, 0x06c5, 0x06cc, - 0x06da, 0x06df, 0x06ed, 0x06f4, 0x06fd, 0x0705, 0x070c, 0x0711, - 0x0716, 0x071a, 0x0726, 0x072b, 0x0731, 0x0735, 0x074a, 0x0759, - 0x0763, 0x076b, 0x0772, 0x078a, 0x079b, 0x07a5, 0x07b8, 0x07c0, - // Entry C0 - FF - 0x07c5, 0x07cd, 0x07d2, 0x07e0, 0x07e8, 0x07ef, 0x07f9, 0x07fe, - 0x0804, 0x0813, 0x0823, 0x082d, 0x0832, 0x0839, 0x0841, 0x084d, - 0x0855, 0x0873, 0x087b, 0x0887, 0x0891, 0x0898, 0x089e, 0x08a5, - 0x08b1, 0x08c8, 0x08d3, 0x08df, 0x08e5, 0x08ee, 0x08fe, 0x0916, - 0x091a, 0x0935, 0x0939, 0x0940, 0x094a, 0x0951, 0x095c, 0x0969, - 0x096e, 0x0973, 0x097b, 0x098d, 0x0993, 0x0999, 0x09a1, 0x09a8, - 0x09ae, 0x09bf, 0x09c2, 0x09c9, 0x09d4, 0x09db, 0x09f7, 0x0a00, - 0x0a18, 0x0a2b, 0x0a32, 0x0a39, 0x0a52, 0x0a57, 0x0a5d, 0x0a62, - // Entry 100 - 13F - 0x0a69, 0x0a76, 0x0a7d, 0x0a85, 0x0a96, 0x0a9c, 0x0aa2, 0x0aaf, - 0x0abd, 0x0ac6, 0x0ad2, 0x0ade, 0x0aea, 0x0af6, 0x0b01, 0x0b16, - 0x0b1d, 0x0b32, 0x0b3c, 0x0b46, 0x0b51, 0x0b61, 0x0b6e, 0x0b7a, - 0x0b83, 0x0b96, 0x0b9f, 0x0ba3, 0x0bac, 0x0bb6, 0x0bbc, 0x0bc8, - 0x0bd4, 0x0be0, 0x0bed, -} - -// Size: 6096 bytes -var ukRegionStr string = "" + - "ОÑтрів ВознеÑіннÑÐндорраОбʼєднані ÐрабÑькі ЕміратиÐфганіÑтанÐнтигуа Ñ– Ба" + - "рбудаÐнгільÑÐлбаніÑВірменіÑÐідерландÑькі ÐнтильÑькі ОÑтровиÐнголаÐнтарк" + - "тикаÐргентинаÐмериканÑьке СамоаÐвÑтріÑÐвÑтраліÑÐрубаÐландÑькі оÑтровиÐз" + - "ербайджанБоÑÐ½Ñ–Ñ Ñ– ГерцоговинаБарбадоÑБангладешБельгіÑБуркіна-ФаÑоБолгар" + - "Ñ–ÑБахрейнБурундіБенінСен-БартельміБермудиБрунейБолівіÑÐідерландÑькі Кар" + - "ибÑькі оÑтровиБразиліÑБагамиБутанОÑтрів БувеБотÑванаБілоруÑьБелізКанада" + - "КокоÑові (Кілінгові) оÑтровиКонго – КіншаÑаЦентральноафриканÑька РеÑпуб" + - "лікаКонго – БраззавільШвейцаріÑКот-д’ІвуарОÑтрови КукаЧиліКамерунКитайК" + - "олумбіÑОÑтрів КліппертонКоÑта-РикаКубаКабо ВердеКюраÑаоОÑтрів РіздваКіп" + - "рЧехіÑÐімеччинаДієго-ГарÑÑ–ÑДжибутіДаніÑДомінікаДомініканÑька РеÑпубліка" + - "ÐлжирСеута Ñ– МелільÑЕквадорЕÑтоніÑЄгипетЗахідна СахараЕритреÑІÑпаніÑЕфі" + - "опіÑЄвропейÑький СоюзФінлÑндіÑФіджіФолклендÑькі оÑтровиМікронезіÑФарерÑ" + - "ькі оÑтровиФранціÑГабонВелика БританіÑГренадаГрузіÑФранцузька ГвіанаГер" + - "нÑіГанаГібралтарГренландіÑГамбіÑГвінеÑГваделупаЕкваторіальна ГвінеÑГрец" + - "Ñ–ÑПівденна Ð”Ð¶Ð¾Ñ€Ð´Ð¶Ñ–Ñ Ñ‚Ð° Південні Сандвічеві оÑтровиГватемалаГуамГвінеÑ-Б" + - "Ñ–ÑауГаÑнаГонконг, О.Ð.Р. КитаюОÑтрови Херд Ñ– Мак-ДональдГондураÑХорваті" + - "ÑГаїтіУгорщинаКанарÑькі оÑтровиІндонезіÑІрландіÑІзраїльОÑтрів МенІндіÑБ" + - "ританÑькі території в ІндійÑькому океаніІракІранІÑландіÑІталіÑДжерÑіЯма" + - "йкаЙорданіÑЯпоніÑКеніÑКиргизÑтанКамбоджаКірибатіКоморÑькі оÑтровиСент-К" + - "Ñ–Ñ‚Ñ Ñ– ÐевіÑПівнічна КореÑПівденна КореÑКувейтКайманові оÑтровиКазахÑтан" + - "ЛаоÑЛіванСент-ЛюÑÑ–ÑЛіхтенштейнШрі-ЛанкаЛіберіÑЛеÑотоЛитваЛюкÑембургЛатв" + - "Ñ–ÑЛівіÑМароккоМонакоМолдоваЧорногоріÑСен-МартенМадагаÑкарМаршаллові ОÑÑ‚" + - "ровиМакедоніÑМаліМʼÑнма (Бірма)МонголіÑМакао О.Ð.Р. КитаюПівнічні Маріа" + - "нÑькі оÑтровиМартинікаМавританіÑМонтÑерратМальтаМаврикійМальдівиМалавіМ" + - "екÑикаМалайзіÑМозамбікÐамібіÑÐова КаледоніÑÐігерОÑтрів ÐорфолкÐігеріÑÐÑ–" + - "карагуаÐідерландиÐорвегіÑÐепалÐауруÐіуеÐова ЗеландіÑОманПанамаПеруФранц" + - "узька ПолінезіÑПапуа Ðова ГвінеÑФіліппіниПакиÑтанПольщаСен-Пʼєр Ñ– Мікел" + - "онОÑтрови ПіткернПуерто-РикоПалеÑтинÑькі територіїПортугаліÑПалауПарагв" + - "айКатарВіддалені оÑтрови ОкеаніїРеюньйонРумуніÑСербіÑРоÑÑ–ÑРуандаСаудівÑ" + - "ька ÐравіÑСоломонові ОÑтровиСейшельÑькі оÑтровиСуданШвеціÑСінгапурОÑтрі" + - "в СвÑтої ЄлениСловеніÑОÑтрови Свальбард Ñ– Ян-МаєнСловаччинаСьєрра-Леоне" + - "Сан-МариноСенегалСомаліСуринамПівденний СуданСан-Томе Ñ– ПрінÑіпіСальвад" + - "орСінт-МартенСиріÑСвазілендТріÑтан-да-КуньÑОÑтрови Ð¢ÐµÑ€ÐºÑ Ñ– КайкоÑЧадФра" + - "нцузькі Південні ТериторіїТогоТаїландТаджикиÑтанТокелауСхідний ТиморТур" + - "кменіÑтанТуніÑТонгаТуреччинаТринідад Ñ– ТобагоТувалуТайваньТанзаніÑУкраї" + - "наУгандаВіддалені оÑтрови СШÐСШÐУругвайУзбекиÑтанВатиканСент-ВінÑент Ñ– " + - "ГренадиниВенеÑуелаБританÑькі ВіргінÑькі оÑтровиВіргінÑькі оÑтрови, СШÐÐ’" + - "Ê¼Ñ”Ñ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ’Ð¾Ð»Ð»Ñ–Ñ Ñ– ФутунаСамоаКоÑовоЄменМайоттаПÐРЗамбіÑЗімбабвеÐеві" + - "домий регіонСвітÐфрикаПівнічноамериканÑький континентПівденна ÐмерикаОк" + - "еаніÑЗахідна ÐфрикаЦентральна ÐмерикаСхідна ÐфрикаПівнічна ÐфрикаЦентра" + - "льна ÐфрикаПівденна ÐфрикаÐмерикаПівнічна ÐмерикаКарибÑький баÑейнСхідн" + - "а ÐзіÑПівденна ÐзіÑПівденно-Східна ÐзіÑПівденна ЄвропаÐвÑÑ‚Ñ€Ð°Ð»Ñ–Ñ Ñ‚Ð° Ðова" + - " ЗеландіÑМеланезіÑМікронезійÑький регіонПолінезіÑÐзіÑЦентральна ÐзіÑЗахі" + - "дна ÐзіÑЄвропаСхідна ЄвропаПівнічна ЄвропаЗахідна ЄвропаЛатинÑька Ðмери" + - "ка" - -// Size: 606 bytes, 291 elements -var ukRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0021, 0x002f, 0x0061, 0x0075, 0x0095, 0x00a3, 0x00b1, - 0x00c1, 0x00ff, 0x010b, 0x011f, 0x0131, 0x0154, 0x0162, 0x0174, - 0x017e, 0x019f, 0x01b5, 0x01db, 0x01eb, 0x01fd, 0x020b, 0x0222, - 0x0232, 0x0240, 0x024e, 0x0258, 0x0271, 0x027f, 0x028b, 0x0299, - 0x02d5, 0x02e5, 0x02f1, 0x02fb, 0x0310, 0x0320, 0x0330, 0x033a, - 0x0346, 0x037a, 0x0397, 0x03d6, 0x03f9, 0x040b, 0x0421, 0x0438, - 0x0440, 0x044e, 0x0458, 0x0468, 0x0489, 0x049c, 0x04a4, 0x04b7, - 0x04c5, 0x04de, 0x04e6, 0x04f0, 0x0502, 0x0519, 0x0527, 0x0531, - // Entry 40 - 7F - 0x0541, 0x0570, 0x057a, 0x0596, 0x05a4, 0x05b2, 0x05be, 0x05d9, - 0x05e7, 0x05f5, 0x0603, 0x0624, 0x0636, 0x0640, 0x0667, 0x067b, - 0x069c, 0x06aa, 0x06b4, 0x06d1, 0x06df, 0x06eb, 0x070c, 0x0718, - 0x0720, 0x0732, 0x0746, 0x0752, 0x075e, 0x0770, 0x0797, 0x07a3, - 0x07fe, 0x0810, 0x0818, 0x082f, 0x0839, 0x085d, 0x088d, 0x089d, - 0x08ad, 0x08b7, 0x08c7, 0x08e8, 0x08fa, 0x090a, 0x0918, 0x092b, - 0x0935, 0x0983, 0x098b, 0x0993, 0x09a3, 0x09af, 0x09bb, 0x09c7, - 0x09d7, 0x09e3, 0x09ed, 0x0a01, 0x0a11, 0x0a21, 0x0a42, 0x0a61, - // Entry 80 - BF - 0x0a7c, 0x0a97, 0x0aa3, 0x0ac4, 0x0ad6, 0x0ade, 0x0ae8, 0x0afb, - 0x0b11, 0x0b22, 0x0b30, 0x0b3c, 0x0b46, 0x0b5a, 0x0b66, 0x0b70, - 0x0b7e, 0x0b8a, 0x0b98, 0x0bac, 0x0bbf, 0x0bd3, 0x0bf6, 0x0c08, - 0x0c10, 0x0c29, 0x0c39, 0x0c58, 0x0c8c, 0x0c9e, 0x0cb2, 0x0cc6, - 0x0cd2, 0x0ce2, 0x0cf2, 0x0cfe, 0x0d0c, 0x0d1c, 0x0d2c, 0x0d3a, - 0x0d55, 0x0d5f, 0x0d7a, 0x0d88, 0x0d9a, 0x0dae, 0x0dbe, 0x0dc8, - 0x0dd2, 0x0dda, 0x0df3, 0x0dfb, 0x0e07, 0x0e0f, 0x0e36, 0x0e56, - 0x0e68, 0x0e78, 0x0e84, 0x0ea5, 0x0ec2, 0x0ed7, 0x0f02, 0x0f16, - // Entry C0 - FF - 0x0f20, 0x0f30, 0x0f3a, 0x0f6a, 0x0f7a, 0x0f88, 0x0f94, 0x0f9e, - 0x0faa, 0x0fcb, 0x0fee, 0x1013, 0x101d, 0x1029, 0x1039, 0x105d, - 0x106d, 0x109f, 0x10b3, 0x10ca, 0x10dd, 0x10eb, 0x10f7, 0x1105, - 0x1122, 0x1145, 0x1157, 0x116c, 0x1176, 0x1188, 0x11a6, 0x11cf, - 0x11d5, 0x120d, 0x1215, 0x1223, 0x1239, 0x1247, 0x1260, 0x1278, - 0x1282, 0x128c, 0x129e, 0x12be, 0x12ca, 0x12d8, 0x12e8, 0x12f6, - 0x1302, 0x132a, 0x1330, 0x133e, 0x1352, 0x1360, 0x138d, 0x139f, - 0x13d7, 0x1402, 0x1410, 0x141e, 0x143a, 0x1444, 0x1450, 0x1458, - // Entry 100 - 13F - 0x1466, 0x146c, 0x1478, 0x1488, 0x14a7, 0x14af, 0x14bb, 0x14f8, - 0x1517, 0x1525, 0x1540, 0x1563, 0x157c, 0x1599, 0x15ba, 0x15d7, - 0x15e5, 0x1604, 0x1625, 0x163a, 0x1653, 0x1679, 0x1696, 0x16c7, - 0x16d9, 0x1704, 0x1716, 0x171e, 0x173b, 0x1752, 0x175e, 0x1777, - 0x1794, 0x17af, 0x17d0, -} - -// Size: 5163 bytes -var urRegionStr string = "" + - "اسینشن Ø¢Ø¦Ù„ÛŒÙ†ÚˆØ§Ù†ÚˆÙˆØ±Ø§Ù…ØªØ­Ø¯Û Ø¹Ø±Ø¨ اماراتاÙغانستانانٹیگوا اور باربوداانگوئیلاا" + - "لبانیÛآرمینیانیدرلینڈز انٹیلیزانگولاانٹارکٹیکاارجنٹیناامریکی ساموآآسٹری" + - "اآسٹریلیااروباآلینڈ آئلینڈزآذربائجانبوسنیا اور ÛØ±Ø²ÛŒÚ¯ÙˆÙˆÛŒÙ†Ø§Ø¨Ø§Ø±Ø¨Ø§ÚˆÙˆØ³Ø¨Ù†Ú¯Ù„Û " + - "دیشبیلجیمبرکینا ÙاسوبلغاریÛبحرینبرونڈیبیننسینٹ برتھلیمیبرمودابرونئیبولی" + - "ویاکریبیائی نیدرلینڈزبرازیلبÛاماسبھوٹانبؤویٹ آئلینڈبوتسوانابیلاروسبیلائ" + - "زکینیڈاکوکوس (کیلنگ) جزائرکانگو - کنشاساوسط اÙریقی جمÛوریÛکانگو - برازا" + - "ویلےسوئٹزر لینڈکوٹ ÚˆÛŒ آئیوریکک آئلینڈزچلیکیمرونچینکولمبیاکلپرٹن آئلینڈک" + - "وسٹا ریکاکیوباکیپ ورڈیکیوراکاؤکرسمس آئلینڈقبرصچیک جمÛوریÛجرمنیڈائجو گار" + - "سیاجبوتیڈنمارکڈومنیکاڈومنیکن جمÛوریÛالجیریاسیئوٹا اور میلیلاایکواڈوراسٹ" + - "ونیامصرمغربی صحارااریٹیریاÛسپانیÛایتھوپیایوروپی یونینÙÙ† لینڈÙجیÙاکلینڈ " + - "جزائرمائکرونیشیاÙیرو آئلینڈزÙرانسگیبونسلطنت متحدÛگریناڈاجارجیاÙرینچ گیا" + - "ناگوئرنسیگھاناجبل الطارقگرین لینڈگامبیاگنیگواڈیلوپاستوائی گیانایونانجنو" + - "بی جارجیا اور جنوبی سینڈوچ جزائرگواٹے مالاگوآمگنی بساؤگیاناÛانگ کانگ SA" + - "R چینÛیئرڈ آئلینڈ اور میکڈونالڈ آئلینڈزÛونڈاروسکروشیاÛیتیÛنگریکینری آئلی" + - "نڈزانڈونیشیاآئرلینڈاسرائیلآئل آ٠مینبھارتبرطانوی Ûندوستانی سمندری خطÛعر" + - "اقایرانآئس لینڈاٹلیجرسیجمائیکااردنجاپانکینیاکرغزستانکمبوڈیاکریباتیکومور" + - "وسسینٹ کٹس اور نیویسشمالی کوریاجنوبی کوریاکویتکیمین آئلینڈزقزاخستانلاؤس" + - "لبنانسینٹ لوسیالیشٹنسٹائنسری لنکالائبیریالیسوتھولتھوانیالگژمبرگلٹویالیب" + - "یامراقشموناکومالدووامونٹے نیگروسینٹ مارٹنمڈغاسکرمارشل آئلینڈزمقدونیÛمال" + - "یمیانمار (برما)منگولیامکاؤ SAR چینشمالی ماریانا آئلینڈزمارٹینکموریطانیÛ" + - "مونٹسیراٹمالٹاماریشسمالدیپملاویمیکسیکوملیشیاموزمبیقنامیبیانیو کلیڈونیان" + - "ائجرنارÙÙˆÚ© آئلینڈنائجیریانکاراگووانیدر لینڈزناروےنیپالنؤرونیئونیوزی ینڈ" + - "عمانپنامÛپیروÙرانسیسی پولینیشیاپاپوآ نیو Ú¯Ù†ÛŒÙلپائنیپاکستانپولینڈسینٹ Ù¾ÛŒ" + - "ئر اور میکلیئونپٹکائرن جزائرپیورٹو ریکوÙلسطینی خطےپرتگالپلاؤپیراگوئےقطر" + - "بیرونی اوشیانیاری یونینرومانیاسربیاروسروانڈاسعودی عربسولومن آئلینڈزسشلی" + - "زسوڈانسویڈنسنگاپورسینٹ Ûیلیناسلووینیاسوالبرڈ اور جان ماینسلوواکیÛسیئر Ù„" + - "یونسان مارینوسینیگلصومالیÛسورینامجنوبی سوڈانساؤ ٹوم اور پرنسپےال سلواڈو" + - "رسنٹ مارٹنشامسوازی لینڈٹرسٹن ڈا کیونÛاترکس اور کیکاؤس جزائرچاڈÙرانسیسی " + - "جنوبی خطےٹوگوتھائی لینڈتاجکستانٹوکیلاؤتیمور لیسٹترکمانستانتیونیسیاٹونگا" + - "ترکیترینیداد اور ٹوباگوٹووالوتائیوانتنزانیÛÛŒÙˆÚ©Ø±ÛŒÙ†ÛŒÙˆÚ¯Ø§Ù†ÚˆØ§Ø§Ù…Ø±ÛŒÚ©Û Ø³Û’ باÛر " + - "Ú©Û’ چھوٹے جزائزریاستÛائے متحدÛیوروگوئےازبکستانواٹیکن سٹیسینٹ ونسنٹ اور Ú¯" + - "رینیڈائنزوینزوئیلابرٹش ورجن آئلینڈزامریکی ورجن آئلینڈزویتناموینوآٹوویلی" + - "ز اور Ùیوٹیوناساموآکوسووویمنمایوٹجنوبی اÙریقÛزامبیازمبابوےنامعلوم علاقÛ" + - "دنیااÙریقÛشمالی امریکÛجنوبی امریکÛاوشیانیامغربی اÙریقÛوسطی امریکÛمشرقی " + - "اÙریقÛشمالی اÙریقÛوسطی اÙریقÛجنوبی اÙØ±ÛŒÙ‚Û Ú©Û’ علاقÛامیریکازشمالی Ø§Ù…Ø±ÛŒÚ©Û " + - "کا علاقÛکریبیائیمشرقی ایشیاجنوبی ایشیاجنوب مشرقی ایشیاجنوبی یورپآسٹریلی" + - "شیامالینیشیامائکرونیشیائی علاقÛپولینیشیاایشیاوسطی ایشیامغربی ایشیایورپم" + - "شرقی یورپشمالی یورپمغربی یورپلاطینی امریکÛ" - -// Size: 606 bytes, 291 elements -var urRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0019, 0x0025, 0x0043, 0x0055, 0x0079, 0x0089, 0x0097, - 0x00a5, 0x00c6, 0x00d2, 0x00e6, 0x00f6, 0x010d, 0x0119, 0x0129, - 0x0133, 0x014c, 0x015e, 0x0186, 0x0196, 0x01a7, 0x01b3, 0x01c8, - 0x01d6, 0x01e0, 0x01ec, 0x01f4, 0x020d, 0x0219, 0x0225, 0x0233, - 0x0256, 0x0262, 0x026e, 0x027a, 0x0291, 0x02a1, 0x02af, 0x02bb, - 0x02c7, 0x02e9, 0x0302, 0x0324, 0x0343, 0x0358, 0x0370, 0x0383, - 0x0389, 0x0395, 0x039b, 0x03a9, 0x03c2, 0x03d5, 0x03df, 0x03ee, - 0x03fe, 0x0415, 0x041d, 0x0432, 0x043c, 0x0453, 0x045d, 0x0469, - // Entry 40 - 7F - 0x0477, 0x0494, 0x04a2, 0x04c2, 0x04d2, 0x04e0, 0x04e6, 0x04fb, - 0x050b, 0x0519, 0x0529, 0x0540, 0x054d, 0x0553, 0x056c, 0x0582, - 0x0599, 0x05a3, 0x05ad, 0x05c2, 0x05d0, 0x05dc, 0x05f1, 0x05ff, - 0x0609, 0x061c, 0x062d, 0x0639, 0x063f, 0x064f, 0x0668, 0x0672, - 0x06b3, 0x06c6, 0x06ce, 0x06dd, 0x06e7, 0x0703, 0x0743, 0x0753, - 0x075f, 0x0767, 0x0771, 0x078a, 0x079c, 0x07aa, 0x07b8, 0x07ca, - 0x07d4, 0x0809, 0x0811, 0x081b, 0x082a, 0x0832, 0x083a, 0x0848, - 0x0850, 0x085a, 0x0864, 0x0874, 0x0882, 0x0890, 0x089e, 0x08bf, - // Entry 80 - BF - 0x08d4, 0x08e9, 0x08f1, 0x090a, 0x091a, 0x0922, 0x092c, 0x093f, - 0x0953, 0x0962, 0x0972, 0x0980, 0x0990, 0x099e, 0x09a8, 0x09b2, - 0x09bc, 0x09c8, 0x09d6, 0x09eb, 0x09fe, 0x0a0c, 0x0a25, 0x0a33, - 0x0a3b, 0x0a54, 0x0a62, 0x0a75, 0x0a9d, 0x0aab, 0x0abd, 0x0acf, - 0x0ad9, 0x0ae5, 0x0af1, 0x0afb, 0x0b09, 0x0b15, 0x0b23, 0x0b31, - 0x0b48, 0x0b52, 0x0b6b, 0x0b7b, 0x0b8d, 0x0ba0, 0x0baa, 0x0bb4, - 0x0bbc, 0x0bc4, 0x0bd5, 0x0bdd, 0x0be7, 0x0bef, 0x0c12, 0x0c2a, - 0x0c38, 0x0c46, 0x0c52, 0x0c7b, 0x0c94, 0x0ca9, 0x0cbe, 0x0cca, - // Entry C0 - FF - 0x0cd2, 0x0ce2, 0x0ce8, 0x0d05, 0x0d14, 0x0d22, 0x0d2c, 0x0d32, - 0x0d3e, 0x0d4f, 0x0d6a, 0x0d74, 0x0d7e, 0x0d88, 0x0d96, 0x0dab, - 0x0dbb, 0x0de0, 0x0df0, 0x0e01, 0x0e14, 0x0e20, 0x0e2e, 0x0e3c, - 0x0e51, 0x0e72, 0x0e85, 0x0e96, 0x0e9c, 0x0eaf, 0x0ecb, 0x0ef2, - 0x0ef8, 0x0f1a, 0x0f22, 0x0f35, 0x0f45, 0x0f53, 0x0f66, 0x0f7a, - 0x0f8a, 0x0f94, 0x0f9c, 0x0fc0, 0x0fcc, 0x0fda, 0x0fe8, 0x0ff4, - 0x1002, 0x1037, 0x1054, 0x1064, 0x1074, 0x1087, 0x10b6, 0x10c8, - 0x10e8, 0x110c, 0x1118, 0x1126, 0x1148, 0x1152, 0x115e, 0x1164, - // Entry 100 - 13F - 0x116e, 0x1185, 0x1191, 0x119f, 0x11b8, 0x11c0, 0x11cc, 0x11e3, - 0x11fa, 0x120a, 0x1221, 0x1236, 0x124d, 0x1264, 0x1279, 0x12a0, - 0x12b0, 0x12d7, 0x12e7, 0x12fc, 0x1311, 0x132f, 0x1342, 0x1356, - 0x1368, 0x138d, 0x139f, 0x13a9, 0x13bc, 0x13d1, 0x13d9, 0x13ec, - 0x13ff, 0x1412, 0x142b, -} - -// Size: 3170 bytes -var uzRegionStr string = "" + - "Vozneseniye oroliAndorraBirlashgan Arab AmirliklariAfgÊ»onistonAntigua va" + - " BarbadosAngilaAlbaniyaArmanistonAngolaAntarktikaArgentinaAmerika Samoas" + - "iAvstriyaAvstraliyaArubaAland orollariOzarbayjonBosniya va GertsegovinaB" + - "arbadosBangladeshBelgiyaBurkina-FasoBolgariyaBahraynBurundiBeninAvliyo V" + - "arfolomeyBermudaBruneyBoliviyaKarib NiderlandiyasiBraziliyaBagama orolla" + - "riButanBuvet oroliBotsvannaBelorusiyaBelizKanadaKokos (Kiling) orollariK" + - "ongo-KinshasaMarkaziy Afrika RespublikasiKongo BrazzavilShveysariyaKot-d" + - "-IvuarKuk orollariChiliKamerunXitoyKolumbiyaKlipperton oroliKosta-RikaKu" + - "baKabo-VerdeKurasaoRojdestvo oroliKiprChexiya RespublikasiGermaniyaDiyeg" + - "o GarsiyaDjibutiDaniyaDominikaDominikan RespublikasiJazoirSeyta va Melil" + - "laEkvadorEstoniyaMisrGÊ»arbiy Sahroi KabirEritreyaIspaniyaEfiopiyaYevropa" + - " IttifoqiFinlyandiyaFiji orollariFolklend orollariMikroneziyaFarer oroll" + - "ariFransiyaGabonBirlashgan QirollikGrenadaGruziyaFrantsuz GvianasiGernsi" + - "GanaGibraltarGrenlandiyaGambiyaGvineyaGvadelupeEkvatorial GvineyaGretsiy" + - "aJanubiy Djordjiya va Janubiy Sendvich orollariGvatemalaGuamGvineya-Bisa" + - "uGayanaGonkong Xitoy MMHGerd oroli va MakDonald orollariGondurasXorvatiy" + - "aGaitiVengriyaKanar orollariIndoneziyaIrlandiyaIsroilMen oroliHindistonB" + - "ritaniya Hind okeani hududiIroqEronIslandiyaItaliyaDjersiYamaykaIordaniy" + - "aYaponiyaKeniyaQirgÊ»izistonKambodjaKiribatiKomor orollariSent-Kits va Ne" + - "visShimoliy KoreyaJanubiy KoreyaQuveytKayman orollariQozogÊ»istonLaosLiva" + - "nSent-LyusiyaLixtenshteynShri-LankaLiberiyaLesotoLitvaLyuksemburgLatviya" + - "LiviyaMarokashMonakoMoldovaChernogoriyaSent-MartinMadagaskarMarshal orol" + - "lariMakedoniyaMaliMyanma (Birma)Mo‘g‘ulistonMakao Xitoy MMHShimoliy Mari" + - "anna orollariMartinikaMavritaniyaMontserratMaltaMavrikiyMaldiv orollariM" + - "alaviMeksikaMalayziyaMozambikNamibiyaYangi KaledoniyaNigerNorfolk orolla" + - "riNigeriyaNikaraguaNiderlandiyaNorvegiyaNepalNauruNiuyeYangi ZelandiyaOm" + - "onPanamaPeruFrantsuz PolineziyasiPapua Yangi GvineyaFilippinPokistonPols" + - "haSent-Pyer va MikelonPitkarin orollariPuerto-RikoFalastin hududiPortuga" + - "liyaPalauParagvayQatarYondosh OkeaniyaReyunonRuminiyaSerbiyaRossiyaRuand" + - "aSaudiya ArabistoniSolomon orollariSeyshel orollariSudanShvetsiyaSingapu" + - "rMuqaddas Yelena orollariSloveniyaSavlbard va Jan MayenSlovakiyaSyerra-L" + - "eoneSan-MarinoSenegalSomaliSurinamJanubiy SudanSan-Tome va PrinsipiSalva" + - "dorSint MartinSuriyaSvazilendTristan de KunaTurks va Kaykos orollariChad" + - "Frantsiya janubiy xududlariTogoTaylandTojikistonTokelauSharqiy-TimorTurk" + - "manistonTunisTongaTurkiyaTrinidad va TobagoTuvaluTayvanTanzaniyaUkrainaU" + - "gandaAQSH yondosh orollariQoÊ»shma ShtatlarUrugvayOÊ»zbekistonVatikanSent-" + - "Vinsent va GrenadinVenesuelaBritaniya Virdjiniya orollariAQSH Virdjiniya" + - " orollariVyetnamVanuatuUellis va FutunaSamoaKosovoYamanMayottaJanubi-Afr" + - "ikaZambiyaZimbabveNomaʼlum hududDunyoAfrikaShimoli-AmerikaJanubiy Amerik" + - "aOkeaniyaGÊ»arbiy AfrikaMarkaziy AmerikaSharqiy AfrikaShimoliy AfrikaMark" + - "aziy AfrikaJanubiy AfrikaAmerikaShimoliy AmerikaKarib havzasiSharqiy Osi" + - "yoJanubiy OsiyoJanubiy-Sharqiy OsiyoJanubiy YevropaAvstralaziyaMelaneziy" + - "aMikroneziya mintaqasiPolineziyaOsiyoMarkaziy OsiyoGÊ»arbiy OsiyoYevropaS" + - "harqiy YevropaShimoliy YevropaGÊ»arbiy YevropaLotin Amerikasi" - -// Size: 606 bytes, 291 elements -var uzRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0011, 0x0018, 0x0033, 0x003f, 0x0052, 0x0058, 0x0060, - 0x006a, 0x006a, 0x0070, 0x007a, 0x0083, 0x0092, 0x009a, 0x00a4, - 0x00a9, 0x00b7, 0x00c1, 0x00d8, 0x00e0, 0x00ea, 0x00f1, 0x00fd, - 0x0106, 0x010d, 0x0114, 0x0119, 0x012a, 0x0131, 0x0137, 0x013f, - 0x0153, 0x015c, 0x016b, 0x0170, 0x017b, 0x0184, 0x018e, 0x0193, - 0x0199, 0x01b0, 0x01be, 0x01da, 0x01e9, 0x01f4, 0x01ff, 0x020b, - 0x0210, 0x0217, 0x021c, 0x0225, 0x0235, 0x023f, 0x0243, 0x024d, - 0x0254, 0x0263, 0x0267, 0x027b, 0x0284, 0x0292, 0x0299, 0x029f, - // Entry 40 - 7F - 0x02a7, 0x02bd, 0x02c3, 0x02d3, 0x02da, 0x02e2, 0x02e6, 0x02fb, - 0x0303, 0x030b, 0x0313, 0x0323, 0x032e, 0x033b, 0x034c, 0x0357, - 0x0365, 0x036d, 0x0372, 0x0385, 0x038c, 0x0393, 0x03a4, 0x03aa, - 0x03ae, 0x03b7, 0x03c2, 0x03c9, 0x03d0, 0x03d9, 0x03eb, 0x03f3, - 0x0421, 0x042a, 0x042e, 0x043b, 0x0441, 0x0452, 0x0472, 0x047a, - 0x0483, 0x0488, 0x0490, 0x049e, 0x04a8, 0x04b1, 0x04b7, 0x04c0, - 0x04c9, 0x04e5, 0x04e9, 0x04ed, 0x04f6, 0x04fd, 0x0503, 0x050a, - 0x0513, 0x051b, 0x0521, 0x052e, 0x0536, 0x053e, 0x054c, 0x055e, - // Entry 80 - BF - 0x056d, 0x057b, 0x0581, 0x0590, 0x059c, 0x05a0, 0x05a5, 0x05b1, - 0x05bd, 0x05c7, 0x05cf, 0x05d5, 0x05da, 0x05e5, 0x05ec, 0x05f2, - 0x05fa, 0x0600, 0x0607, 0x0613, 0x061e, 0x0628, 0x0638, 0x0642, - 0x0646, 0x0654, 0x0664, 0x0673, 0x068d, 0x0696, 0x06a1, 0x06ab, - 0x06b0, 0x06b8, 0x06c7, 0x06cd, 0x06d4, 0x06dd, 0x06e5, 0x06ed, - 0x06fd, 0x0702, 0x0712, 0x071a, 0x0723, 0x072f, 0x0738, 0x073d, - 0x0742, 0x0747, 0x0756, 0x075a, 0x0760, 0x0764, 0x0779, 0x078c, - 0x0794, 0x079c, 0x07a2, 0x07b6, 0x07c7, 0x07d2, 0x07e1, 0x07ec, - // Entry C0 - FF - 0x07f1, 0x07f9, 0x07fe, 0x080e, 0x0815, 0x081d, 0x0824, 0x082b, - 0x0831, 0x0843, 0x0853, 0x0863, 0x0868, 0x0871, 0x0879, 0x0891, - 0x089a, 0x08af, 0x08b8, 0x08c4, 0x08ce, 0x08d5, 0x08db, 0x08e2, - 0x08ef, 0x0903, 0x090b, 0x0916, 0x091c, 0x0925, 0x0934, 0x094c, - 0x0950, 0x096b, 0x096f, 0x0976, 0x0980, 0x0987, 0x0994, 0x09a0, - 0x09a5, 0x09aa, 0x09b1, 0x09c3, 0x09c9, 0x09cf, 0x09d8, 0x09df, - 0x09e5, 0x09fa, 0x0a0b, 0x0a12, 0x0a1e, 0x0a25, 0x0a3d, 0x0a46, - 0x0a63, 0x0a7b, 0x0a82, 0x0a89, 0x0a99, 0x0a9e, 0x0aa4, 0x0aa9, - // Entry 100 - 13F - 0x0ab0, 0x0abd, 0x0ac4, 0x0acc, 0x0adb, 0x0ae0, 0x0ae6, 0x0af5, - 0x0b04, 0x0b0c, 0x0b1b, 0x0b2b, 0x0b39, 0x0b48, 0x0b57, 0x0b65, - 0x0b6c, 0x0b7c, 0x0b89, 0x0b96, 0x0ba3, 0x0bb8, 0x0bc7, 0x0bd3, - 0x0bdd, 0x0bf2, 0x0bfc, 0x0c01, 0x0c0f, 0x0c1d, 0x0c24, 0x0c33, - 0x0c43, 0x0c53, 0x0c62, -} - -// Size: 3299 bytes -var viRegionStr string = "" + - "Äảo AscensionAndorraCác Tiểu V.quốc Ả Rập T.nhấtAfghanistanAntigua và Ba" + - "rbudaAnguillaAlbaniArmeniaTây Ấn Hà LanAngolaNam Cá»±cArgentinaÄảo Somoa t" + - "huá»™c MỹÃoÚcArubaQuần đảo Ã…landAzerbaijanBosnia và HerzegovinaBarbadosBan" + - "gladeshBỉBurkina FasoBungariBahrainBurundiBeninSaint BarthélemyBermudaBr" + - "uneiBoliviaCa-ri-bê Hà LanBrazilBahamasBhutanÄảo BouvetBotswanaBelarusBe" + - "lizeCanadaQuần đảo Cocos (Keeling)Congo - KinshasaCá»™ng hòa Trung PhiCong" + - "o - BrazzavilleThụy SÄ©Bá» Biển NgàQuần đảo CookChileCameroonTrung QuốcCol" + - "ombiaÄảo ClippertonCosta RicaCubaCape VerdeCuraçaoÄảo Giáng SinhSípCá»™ng " + - "hòa SécÄứcDiego GarciaDjiboutiÄan MạchDominicaCá»™ng hòa DominicaAlgeriaCe" + - "uta và MelillaEcuadorEstoniaAi CậpTây SaharaEritreaTây Ban NhaEthiopiaLi" + - "ên Minh Châu ÂuPhần LanFijiQuần đảo FalklandMicronesiaQuần đảo FaroePhá" + - "pGabonVÆ°Æ¡ng quốc AnhGrenadaGeorgiaGuiana thuá»™c PhápGuernseyGhanaGibralta" + - "rGreenlandGambiaGuineaGuadeloupeGuinea Xích ÄạoHy LạpQuần đảo Nam Georgi" + - "a và Nam SandwichGuatemalaGuamGuinea-BissauGuyanaÄặc khu hành chính Hồng" + - " Kông - Trung QuốcÄảo Heard và Quần đảo McDonaldHondurasCroatiaHaitiHung" + - "ariQuần đảo CanaryIndonesiaAi-lenIsraelÄảo ManẤn Äá»™Thuá»™c địa Anh tại Ấn " + - "Äá»™ DÆ°Æ¡ngI-rắcIranIcelandÃJerseyJamaicaJordanNhật BảnKenyaKyrgyzstanCamp" + - "uchiaKiribatiComorosSaint Kitts và NevisTriá»u TiênHàn QuốcCô-oétQuần đảo" + - " CaymanKazakhstanLàoLi-băngSaint LuciaLiechtensteinSri LankaLiberiaLesot" + - "hoLít-vaLuxembourgLatviaLi-biMa-rốcMonacoMoldovaMontenegroSaint MartinMa" + - "dagascarQuần đảo MarshallMacedoniaMaliMyanmar (Miến Äiện)Mông CổÄặc khu " + - "hành chính Macao - Trung QuốcQuần đảo Bắc MarianaMartiniqueMauritaniaMon" + - "tserratMaltaMauritiusMaldivesMalawiMexicoMalaysiaMozambiqueNamibiaNew Ca" + - "ledoniaNigerÄảo NorfolkNigeriaNicaraguaHà LanNa UyNepalNauruNiueNew Zeal" + - "andOmanPanamaPeruPolynesia thuá»™c PhápPapua New GuineaPhilippinPakistanBa" + - " LanSaint Pierre và MiquelonQuần đảo PitcairnPuerto RicoLãnh thổ Palesti" + - "neBồ Äào NhaPalauParaguayQatarVùng xa xôi thuá»™c Châu Äại DÆ°Æ¡ngRéunionRom" + - "aniaSerbiaNgaRwandaẢ Rập Xê-útQuần đảo SolomonSeychellesSudanThụy ÄiểnSi" + - "ngaporeSaint HelenaSloveniaSvalbard và Jan MayenSlovakiaSierra LeoneSan " + - "MarinoSenegalSomaliSurinameNam SudanSão Tomé và PríncipeEl SalvadorSint " + - "MaartenSyriaSwazilandTristan da CunhaQuần đảo Turk và CaicosChadLãnh thổ" + - " miá»n nam nÆ°á»›c PhápTogoThái LanTajikistanTokelauÄông TimorTurkmenistanTu" + - "nisiaTongaThổ NhÄ© KỳTrinidad và TobagoTuvaluÄài LoanTanzaniaUkrainaUgand" + - "aCác đảo nhá» xa t.tâm thuá»™c MỹHoa KỳUruguayUzbekistanThành VaticanSaint " + - "Vincent và GrenadinesVenezuelaQuần đảo Virgin thuá»™c AnhQuần đảo Virgin t" + - "huá»™c MỹViệt NamVanuatuWallis và FutunaSamoaKosovoYemenMayotteNam PhiZamb" + - "iaZimbabweVùng không xác địnhThế giá»›iChâu PhiBắc MỹNam MỹChâu Äại DÆ°Æ¡ngT" + - "ây PhiTrung MỹÄông PhiBắc PhiTrung PhiMiá»n Nam Châu PhiChâu MỹMiá»n Bắc " + - "Châu MỹCa-ri-bêÄông ÃNam ÃÄông Nam ÃNam ÂuÚc và New ZealandMelanesiaVùng" + - " MicronesianPolynesiaChâu ÃTrung ÃTây ÃChâu ÂuÄông ÂuBắc ÂuTây ÂuChâu Mỹ" + - " La-tinh" - -// Size: 606 bytes, 291 elements -var viRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0010, 0x0017, 0x003e, 0x0049, 0x005c, 0x0064, 0x006a, - 0x0071, 0x0082, 0x0088, 0x0091, 0x009a, 0x00b3, 0x00b6, 0x00b9, - 0x00be, 0x00d2, 0x00dc, 0x00f2, 0x00fa, 0x0104, 0x0108, 0x0114, - 0x011b, 0x0122, 0x0129, 0x012e, 0x013f, 0x0146, 0x014c, 0x0153, - 0x0164, 0x016a, 0x0171, 0x0177, 0x0184, 0x018c, 0x0193, 0x0199, - 0x019f, 0x01bc, 0x01cc, 0x01e1, 0x01f4, 0x01fe, 0x020e, 0x0220, - 0x0225, 0x022d, 0x0239, 0x0241, 0x0252, 0x025c, 0x0260, 0x026a, - 0x0272, 0x0284, 0x0288, 0x0298, 0x029e, 0x02aa, 0x02b2, 0x02bd, - // Entry 40 - 7F - 0x02c5, 0x02d9, 0x02e0, 0x02f1, 0x02f8, 0x02ff, 0x0307, 0x0312, - 0x0319, 0x0325, 0x032d, 0x0341, 0x034b, 0x034f, 0x0365, 0x036f, - 0x0382, 0x0387, 0x038c, 0x039e, 0x03a5, 0x03ac, 0x03c0, 0x03c8, - 0x03cd, 0x03d6, 0x03df, 0x03e5, 0x03eb, 0x03f5, 0x0408, 0x0410, - 0x043a, 0x0443, 0x0447, 0x0454, 0x045a, 0x048d, 0x04b4, 0x04bc, - 0x04c3, 0x04c8, 0x04cf, 0x04e3, 0x04ec, 0x04f2, 0x04f8, 0x0502, - 0x050c, 0x0537, 0x053e, 0x0542, 0x0549, 0x054b, 0x0551, 0x0558, - 0x055e, 0x056a, 0x056f, 0x0579, 0x0582, 0x058a, 0x0591, 0x05a6, - // Entry 80 - BF - 0x05b3, 0x05be, 0x05c6, 0x05da, 0x05e4, 0x05e8, 0x05f0, 0x05fb, - 0x0608, 0x0611, 0x0618, 0x061f, 0x0626, 0x0630, 0x0636, 0x063b, - 0x0643, 0x0649, 0x0650, 0x065a, 0x0666, 0x0670, 0x0686, 0x068f, - 0x0693, 0x06ab, 0x06b5, 0x06e1, 0x06fc, 0x0706, 0x0710, 0x071a, - 0x071f, 0x0728, 0x0730, 0x0736, 0x073c, 0x0744, 0x074e, 0x0755, - 0x0762, 0x0767, 0x0775, 0x077c, 0x0785, 0x078c, 0x0791, 0x0796, - 0x079b, 0x079f, 0x07aa, 0x07ae, 0x07b4, 0x07b8, 0x07cf, 0x07df, - 0x07e8, 0x07f0, 0x07f6, 0x080f, 0x0825, 0x0830, 0x0845, 0x0853, - // Entry C0 - FF - 0x0858, 0x0860, 0x0865, 0x088f, 0x0897, 0x089e, 0x08a4, 0x08a7, - 0x08ad, 0x08be, 0x08d3, 0x08dd, 0x08e2, 0x08f0, 0x08f9, 0x0905, - 0x090d, 0x0923, 0x092b, 0x0937, 0x0941, 0x0948, 0x094e, 0x0956, - 0x095f, 0x0977, 0x0982, 0x098e, 0x0993, 0x099c, 0x09ac, 0x09c9, - 0x09cd, 0x09f1, 0x09f5, 0x09fe, 0x0a08, 0x0a0f, 0x0a1b, 0x0a27, - 0x0a2e, 0x0a33, 0x0a42, 0x0a55, 0x0a5b, 0x0a65, 0x0a6d, 0x0a74, - 0x0a7a, 0x0aa2, 0x0aaa, 0x0ab1, 0x0abb, 0x0ac9, 0x0ae5, 0x0aee, - 0x0b0e, 0x0b2f, 0x0b39, 0x0b40, 0x0b51, 0x0b56, 0x0b5c, 0x0b61, - // Entry 100 - 13F - 0x0b68, 0x0b6f, 0x0b75, 0x0b7d, 0x0b96, 0x0ba2, 0x0bab, 0x0bb5, - 0x0bbd, 0x0bd1, 0x0bd9, 0x0be3, 0x0bed, 0x0bf6, 0x0bff, 0x0c13, - 0x0c1d, 0x0c34, 0x0c3d, 0x0c46, 0x0c4c, 0x0c59, 0x0c60, 0x0c73, - 0x0c7c, 0x0c8d, 0x0c96, 0x0c9e, 0x0ca6, 0x0cad, 0x0cb6, 0x0cc0, - 0x0cc9, 0x0cd1, 0x0ce3, -} - -// Size: 3331 bytes -var zhRegionStr string = "" + - "阿森æ¾å²›å®‰é“尔阿拉伯è”åˆé…‹é•¿å›½é˜¿å¯Œæ±—安æ瓜和巴布达安圭拉阿尔巴尼亚亚美尼亚è·å±žå®‰çš„列斯群岛安哥拉å—æžæ´²é˜¿æ ¹å»·ç¾Žå±žè¨æ‘©äºšå¥¥åœ°åˆ©æ¾³å¤§åˆ©äºšé˜¿é²å·´å¥¥å…°ç¾¤" + - "岛阿塞拜疆波斯尼亚和黑塞哥维那巴巴多斯孟加拉国比利时布基纳法索ä¿åŠ åˆ©äºšå·´æž—布隆迪è´å®åœ£å·´æ³°å‹’米百慕大文莱玻利维亚è·å…°åŠ å‹’比区巴西巴哈马ä¸ä¸¹å¸ƒ" + - "ç»´å²›åšèŒ¨ç“¦çº³ç™½ä¿„罗斯伯利兹加拿大科科斯(基林)群岛刚果(金)中éžå…±å’Œå›½åˆšæžœï¼ˆå¸ƒï¼‰ç‘žå£«ç§‘特迪瓦库克群岛智利喀麦隆中国哥伦比亚克利ç€é¡¿å²›å“¥æ–¯è¾¾é»Ž" + - "加å¤å·´ä½›å¾—角库拉索圣诞岛塞浦路斯æ·å…‹å…±å’Œå›½å¾·å›½è¿ªæˆˆåŠ è¥¿äºšå²›å‰å¸ƒæ丹麦多米尼克多米尼加共和国阿尔åŠåˆ©äºšä¼‘è¾¾åŠæ¢…利利亚厄瓜多尔爱沙尼亚埃åŠè¥¿æ’’哈" + - "拉厄立特里亚西ç­ç‰™åŸƒå¡žä¿„比亚欧盟芬兰æ–济ç¦å…‹å…°ç¾¤å²›å¯†å…‹ç½—尼西亚法罗群岛法国加蓬英国格林纳达格é²å‰äºšæ³•å±žåœ­äºšé‚£æ ¹è¥¿å²›åŠ çº³ç›´å¸ƒç½—陀格陵兰冈比亚几" + - "内亚瓜德罗普赤é“几内亚希腊å—乔治亚岛和å—æ¡‘å¨é½ç¾¤å²›å±åœ°é©¬æ‹‰å…³å²›å‡ å†…亚比ç»åœ­äºšé‚£ä¸­å›½é¦™æ¸¯ç‰¹åˆ«è¡Œæ”¿åŒºèµ«å¾·å²›å’Œéº¦å…‹å”纳群岛洪都拉斯克罗地亚海地匈牙" + - "利加纳利群岛å°åº¦å°¼è¥¿äºšçˆ±å°”兰以色列曼岛å°åº¦è‹±å±žå°åº¦æ´‹é¢†åœ°ä¼Šæ‹‰å…‹ä¼Šæœ—冰岛æ„大利泽西岛牙买加约旦日本肯尼亚å‰å°”å‰æ–¯æ–¯å¦æŸ¬åŸ”寨基里巴斯科摩罗圣基茨" + - "和尼维斯æœé²œéŸ©å›½ç§‘å¨ç‰¹å¼€æ›¼ç¾¤å²›å“ˆè¨å…‹æ–¯å¦è€æŒé»Žå·´å«©åœ£å¢è¥¿äºšåˆ—支敦士登斯里兰å¡åˆ©æ¯”里亚莱索托立陶宛å¢æ£®å ¡æ‹‰è„±ç»´äºšåˆ©æ¯”亚摩洛哥摩纳哥摩尔多瓦黑山" + - "法属圣马ä¸é©¬è¾¾åŠ æ–¯åŠ é©¬ç»å°”群岛马其顿马里缅甸蒙å¤ä¸­å›½æ¾³é—¨ç‰¹åˆ«è¡Œæ”¿åŒºåŒ—马里亚纳群岛马æ尼克毛里塔尼亚蒙特塞拉特马耳他毛里求斯马尔代夫马拉维墨西" + - "哥马æ¥è¥¿äºšèŽ«æ¡‘比克纳米比亚新喀里多尼亚尼日尔诺ç¦å…‹å²›å°¼æ—¥åˆ©äºšå°¼åŠ æ‹‰ç“œè·å…°æŒªå¨å°¼æ³Šå°”ç‘™é²çº½åŸƒæ–°è¥¿å…°é˜¿æ›¼å·´æ‹¿é©¬ç§˜é²æ³•å±žæ³¢åˆ©å°¼è¥¿äºšå·´å¸ƒäºšæ–°å‡ å†…亚è²" + - "律宾巴基斯å¦æ³¢å…°åœ£çš®åŸƒå°”和密克隆群岛皮特凯æ©ç¾¤å²›æ³¢å¤šé»Žå„å·´å‹’æ–¯å¦é¢†åœŸè‘¡è„牙帕劳巴拉圭å¡å¡”尔大洋洲边远群岛留尼汪罗马尼亚塞尔维亚俄罗斯å¢æ—ºè¾¾æ²™" + - "特阿拉伯所罗门群岛塞舌尔è‹ä¸¹ç‘žå…¸æ–°åŠ å¡åœ£èµ«å‹’拿斯洛文尼亚斯瓦尔巴特和扬马延斯洛ä¼å…‹å¡žæ‹‰åˆ©æ˜‚圣马力诺塞内加尔索马里è‹é‡Œå—å—è‹ä¸¹åœ£å¤šç¾Žå’Œæ™®æž—西比" + - "è¨å°”瓦多è·å±žåœ£é©¬ä¸å™åˆ©äºšæ–¯å¨å£«å…°ç‰¹é‡Œæ–¯å¦-达库尼亚群岛特克斯和凯科斯群岛ä¹å¾—法属å—部领地多哥泰国塔å‰å…‹æ–¯å¦æ‰˜å…‹åŠ³ä¸œå¸æ±¶åœŸåº“曼斯å¦çªå°¼æ–¯æ±¤åŠ åœŸ" + - "耳其特立尼达和多巴哥图瓦å¢å°æ¹¾å¦æ¡‘尼亚乌克兰乌干达美国本土外å°å²›å±¿ç¾Žå›½ä¹Œæ‹‰åœ­ä¹Œå…¹åˆ«å…‹æ–¯å¦æ¢µè’‚冈圣文森特和格林纳ä¸æ–¯å§”内瑞拉英属维京群岛美属维" + - "京群岛越å—瓦努阿图瓦利斯和富图纳è¨æ‘©äºšç§‘索沃也门马约特å—éžèµžæ¯”亚津巴布韦未知地区世界éžæ´²åŒ—美洲å—美洲大洋洲西éžä¸­ç¾Žæ´²ä¸œéžåŒ—éžä¸­éžå—部éžæ´²ç¾Žæ´²" + - "美洲北部加勒比地区东亚å—亚东å—亚å—欧澳大拉西亚美拉尼西亚密克罗尼西亚地区玻利尼西亚亚洲中亚西亚欧洲东欧北欧西欧拉ä¸ç¾Žæ´²" - -// Size: 606 bytes, 291 elements -var zhRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000c, 0x0015, 0x002d, 0x0036, 0x004b, 0x0054, 0x0063, - 0x006f, 0x0087, 0x0090, 0x0099, 0x00a2, 0x00b1, 0x00ba, 0x00c6, - 0x00cf, 0x00db, 0x00e7, 0x0105, 0x0111, 0x011d, 0x0126, 0x0135, - 0x0141, 0x0147, 0x0150, 0x0156, 0x0165, 0x016e, 0x0174, 0x0180, - 0x0192, 0x0198, 0x01a1, 0x01a7, 0x01b0, 0x01bc, 0x01c8, 0x01d1, - 0x01da, 0x01f5, 0x0204, 0x0213, 0x0222, 0x0228, 0x0234, 0x0240, - 0x0246, 0x024f, 0x0255, 0x0261, 0x0270, 0x027f, 0x0285, 0x028e, - 0x0297, 0x02a0, 0x02ac, 0x02bb, 0x02c1, 0x02d3, 0x02dc, 0x02e2, - // Entry 40 - 7F - 0x02ee, 0x0303, 0x0312, 0x0327, 0x0333, 0x033f, 0x0345, 0x0351, - 0x0360, 0x0369, 0x0378, 0x037e, 0x0384, 0x038a, 0x0399, 0x03ab, - 0x03b7, 0x03bd, 0x03c3, 0x03c9, 0x03d5, 0x03e1, 0x03f0, 0x03f9, - 0x03ff, 0x040b, 0x0414, 0x041d, 0x0426, 0x0432, 0x0441, 0x0447, - 0x046b, 0x0477, 0x047d, 0x048c, 0x0495, 0x04b0, 0x04ce, 0x04da, - 0x04e6, 0x04ec, 0x04f5, 0x0504, 0x0513, 0x051c, 0x0525, 0x052b, - 0x0531, 0x0546, 0x054f, 0x0555, 0x055b, 0x0564, 0x056d, 0x0576, - 0x057c, 0x0582, 0x058b, 0x059d, 0x05a6, 0x05b2, 0x05bb, 0x05d0, - // Entry 80 - BF - 0x05d6, 0x05dc, 0x05e5, 0x05f1, 0x0600, 0x0606, 0x060f, 0x061b, - 0x062a, 0x0636, 0x0642, 0x064b, 0x0654, 0x065d, 0x0669, 0x0672, - 0x067b, 0x0684, 0x0690, 0x0696, 0x06a5, 0x06b4, 0x06c3, 0x06cc, - 0x06d2, 0x06d8, 0x06de, 0x06f9, 0x070e, 0x071a, 0x0729, 0x0738, - 0x0741, 0x074d, 0x0759, 0x0762, 0x076b, 0x0777, 0x0783, 0x078f, - 0x07a1, 0x07aa, 0x07b6, 0x07c2, 0x07ce, 0x07d4, 0x07da, 0x07e3, - 0x07e9, 0x07ef, 0x07f8, 0x07fe, 0x0807, 0x080d, 0x0822, 0x0837, - 0x0840, 0x084c, 0x0852, 0x0870, 0x0882, 0x088e, 0x08a0, 0x08a9, - // Entry C0 - FF - 0x08af, 0x08b8, 0x08c1, 0x08d6, 0x08df, 0x08eb, 0x08f7, 0x0900, - 0x0909, 0x0918, 0x0927, 0x0930, 0x0936, 0x093c, 0x0945, 0x0951, - 0x0960, 0x097b, 0x0987, 0x0993, 0x099f, 0x09ab, 0x09b4, 0x09bd, - 0x09c6, 0x09de, 0x09ea, 0x09f9, 0x0a02, 0x0a0e, 0x0a2d, 0x0a48, - 0x0a4e, 0x0a60, 0x0a66, 0x0a6c, 0x0a7b, 0x0a84, 0x0a8d, 0x0a9c, - 0x0aa5, 0x0aab, 0x0ab4, 0x0acc, 0x0ad5, 0x0adb, 0x0ae7, 0x0af0, - 0x0af9, 0x0b11, 0x0b17, 0x0b20, 0x0b32, 0x0b3b, 0x0b59, 0x0b65, - 0x0b77, 0x0b89, 0x0b8f, 0x0b9b, 0x0bb0, 0x0bb9, 0x0bc2, 0x0bc8, - // Entry 100 - 13F - 0x0bd1, 0x0bd7, 0x0be0, 0x0bec, 0x0bf8, 0x0bfe, 0x0c04, 0x0c0d, - 0x0c16, 0x0c1f, 0x0c25, 0x0c2e, 0x0c34, 0x0c3a, 0x0c40, 0x0c4c, - 0x0c52, 0x0c5e, 0x0c6d, 0x0c73, 0x0c79, 0x0c82, 0x0c88, 0x0c97, - 0x0ca6, 0x0cbe, 0x0ccd, 0x0cd3, 0x0cd9, 0x0cdf, 0x0ce5, 0x0ceb, - 0x0cf1, 0x0cf7, 0x0d03, -} - -// Size: 3330 bytes -var zhHantRegionStr string = "" + - "阿森æ¾å³¶å®‰é“爾阿拉伯è¯åˆå¤§å…¬åœ‹é˜¿å¯Œæ±—安地å¡åŠå·´å¸ƒé”安圭拉阿爾巴尼亞亞美尼亞è·å±¬å®‰åœ°åˆ—斯安哥拉å—極洲阿根廷美屬薩摩亞奧地利澳洲è·å±¬é˜¿é­¯å·´å¥§è˜­ç¾¤å³¶äºž" + - "塞拜然波士尼亞與赫塞哥維ç´å·´è²å¤šå­ŸåŠ æ‹‰æ¯”利時布å‰ç´æ³•ç´¢ä¿åŠ åˆ©äºžå·´æž—蒲隆地è²å—è–巴瑟米百慕é”汶èŠçŽ»åˆ©ç¶­äºžè·è˜­åŠ å‹’比å€å·´è¥¿å·´å“ˆé¦¬ä¸ä¸¹å¸ƒå¨å³¶æ³¢æœ­é‚£" + - "白俄羅斯è²é‡Œæ–¯åŠ æ‹¿å¤§ç§‘科斯(基林)群島剛果(金å¤æ²™ï¼‰ä¸­éžå…±å’Œåœ‹å‰›æžœï¼ˆå¸ƒæ‹‰è–©ï¼‰ç‘žå£«è±¡ç‰™æµ·å²¸åº«å…‹ç¾¤å³¶æ™ºåˆ©å–€éº¥éš†ä¸­è¯äººæ°‘共和國哥倫比亞克里派頓島哥" + - "斯大黎加å¤å·´ç¶­å¾·è§’庫拉索è–誕島賽普勒斯æ·å…‹å…±å’Œåœ‹å¾·åœ‹è¿ªäºžå“¥åŠ è¥¿äºžå³¶å‰å¸ƒåœ°ä¸¹éº¥å¤šç±³å°¼å…‹å¤šæ˜Žå°¼åŠ å…±å’Œåœ‹é˜¿çˆ¾åŠåˆ©äºžä¼‘é”與梅利利亞厄瓜多愛沙尼亞埃åŠ" + - "西撒哈拉厄利垂亞西ç­ç‰™è¡£ç´¢æ¯”亞æ­ç›ŸèŠ¬è˜­æ–æ¿Ÿç¦å…‹è˜­ç¾¤å³¶å¯†å…‹ç¾…尼西亞群島法羅群島法國加彭英國格瑞那é”喬治亞共和國法屬圭亞那根西島迦ç´ç›´å¸ƒç¾…陀格陵" + - "蘭甘比亞幾內亞瓜地洛普赤é“幾內亞希臘å—喬治亞與å—三明治群島瓜地馬拉關島幾內亞比索蓋亞那中è¯äººæ°‘共和國香港特別行政å€èµ«å¾·åŠéº¥ç•¶å‹žç¾¤å³¶å®éƒ½æ‹‰æ–¯å…‹" + - "羅埃西亞海地匈牙利加那利群島å°å°¼æ„›çˆ¾è˜­ä»¥è‰²åˆ—曼島å°åº¦è‹±å±¬å°åº¦æ´‹é ˜åœ°ä¼Šæ‹‰å…‹ä¼Šæœ—冰島義大利澤西島牙買加約旦日本肯亞å‰çˆ¾å‰æ–¯æŸ¬åŸ”寨å‰é‡Œå·´æ–¯è‘›æ‘©è–å…‹" + - "里斯多ç¦åŠå°¼ç¶­æ–¯åŒ—韓å—韓科å¨ç‰¹é–‹æ›¼ç¾¤å³¶å“ˆè–©å…‹å¯®åœ‹é»Žå·´å«©è–露西亞列支敦斯登斯里蘭å¡è³´æ¯”瑞亞賴索托立陶宛盧森堡拉脫維亞利比亞摩洛哥摩ç´å“¥æ‘©çˆ¾å¤šç“¦" + - "蒙特內哥羅法屬è–馬ä¸é¦¬é”加斯加馬紹爾群島馬其頓馬利緬甸蒙å¤ä¸­è¯äººæ°‘共和國澳門特別行政å€åŒ—馬里亞ç´ç¾¤å³¶é¦¬ä¸å°¼å…‹å³¶èŒ…利塔尼亞蒙哲臘馬爾他模里西斯" + - "馬爾地夫馬拉å¨å¢¨è¥¿å“¥é¦¬ä¾†è¥¿äºžèŽ«ä¸‰æ¯”å…‹ç´ç±³æ¯”亞新喀里多尼亞尼日諾ç¦å…‹å³¶å¥ˆåŠåˆ©äºžå°¼åŠ æ‹‰ç“œè·è˜­æŒªå¨å°¼æ³Šçˆ¾è«¾é­¯ç´åŸƒå³¶ç´è¥¿è˜­é˜¿æ›¼çŽ‹åœ‹å·´æ‹¿é¦¬ç§˜é­¯æ³•å±¬çŽ»é‡Œ" + - "尼西亞巴布亞ç´å¹¾å…§äºžè²å¾‹è³“巴基斯å¦æ³¢è˜­è–皮埃爾和密克隆群島皮特肯群島波多黎å„å·´å‹’æ–¯å¦è‡ªæ²»å€è‘¡è„牙帛ç‰å·´æ‹‰åœ­å¡é”大洋洲邊疆群島留尼旺羅馬尼亞塞" + - "爾維亞俄羅斯盧安é”æ²™çƒåœ°é˜¿æ‹‰ä¼¯ç´¢ç¾…門群島塞席爾蘇丹瑞典新加å¡è–赫勒拿島斯洛維尼亞冷岸åŠå¤®éº¥æ©ç¾¤å³¶æ–¯æ´›ä¼å…‹ç…å­å±±è–馬利諾塞內加爾索馬利亞蘇利å—" + - "å—蘇丹è–多美普林西比薩爾瓦多è·å±¬è–馬ä¸æ•˜åˆ©äºžå²ç“¦æ¿Ÿè˜­ç‰¹é‡Œæ–¯å¦é”庫尼亞群島英屬土克凱å¯ç¾¤å³¶æŸ¥å¾·æ³•å±¬å—方屬地多哥泰國塔å‰å…‹æ‰˜å…‹å‹žç¾¤å³¶æ±å¸æ±¶åœŸåº«æ›¼" + - "çªå°¼è¥¿äºžæ±åŠ åœŸè€³å…¶åƒé‡Œé”åŠæ‰˜å·´å“¥å瓦魯å°ç£å¦å°šå°¼äºžçƒå…‹è˜­çƒå¹²é”美國本土外å°å³¶å¶¼ç¾Žåœ‹çƒæ‹‰åœ­çƒèŒ²åˆ¥å…‹æ¢µè’‚岡è–文森åŠæ ¼ç‘žé‚£ä¸å§”內瑞拉英屬維京群島美" + - "屬維京群島越å—è¬é‚£æœç“¦åˆ©æ–¯å’Œå¯Œåœ–ç´ç¾¤å³¶è–©æ‘©äºžç¾¤å³¶ç§‘索沃葉門馬約特å—éžå°šæ¯”亞辛巴å¨æœªçŸ¥å€åŸŸä¸–ç•Œéžæ´²åŒ—美洲å—美洲大洋洲西éžä¸­ç¾Žæ±éžåŒ—éžä¸­éžéžæ´²å—" + - "部美洲北美加勒比海æ±äºžå—亞æ±å—亞å—æ­æ¾³æ´²èˆ‡ç´è¥¿è˜­ç¾Žæ‹‰å°¼è¥¿äºžå¯†å…‹ç¾…尼西亞玻里尼西亞亞洲中亞西亞æ­æ´²æ±æ­åŒ—æ­è¥¿æ­æ‹‰ä¸ç¾Žæ´²" - -// Size: 606 bytes, 291 elements -var zhHantRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x000c, 0x0015, 0x002d, 0x0036, 0x004b, 0x0054, 0x0063, - 0x006f, 0x0081, 0x008a, 0x0093, 0x009c, 0x00ab, 0x00b4, 0x00ba, - 0x00c9, 0x00d5, 0x00e1, 0x00ff, 0x0108, 0x0111, 0x011a, 0x0129, - 0x0135, 0x013b, 0x0144, 0x014a, 0x0156, 0x015f, 0x0165, 0x0171, - 0x0183, 0x0189, 0x0192, 0x0198, 0x01a1, 0x01aa, 0x01b6, 0x01bf, - 0x01c8, 0x01e3, 0x01f8, 0x0207, 0x021c, 0x0222, 0x022e, 0x023a, - 0x0240, 0x0249, 0x025e, 0x026a, 0x0279, 0x0288, 0x028e, 0x0297, - 0x02a0, 0x02a9, 0x02b5, 0x02c4, 0x02ca, 0x02df, 0x02e8, 0x02ee, - // Entry 40 - 7F - 0x02fa, 0x030f, 0x031e, 0x0333, 0x033c, 0x0348, 0x034e, 0x035a, - 0x0366, 0x036f, 0x037b, 0x0381, 0x0387, 0x038d, 0x039c, 0x03b4, - 0x03c0, 0x03c6, 0x03cc, 0x03d2, 0x03de, 0x03f0, 0x03ff, 0x0408, - 0x040e, 0x041a, 0x0423, 0x042c, 0x0435, 0x0441, 0x0450, 0x0456, - 0x0477, 0x0483, 0x0489, 0x0498, 0x04a1, 0x04cb, 0x04e3, 0x04ef, - 0x04fe, 0x0504, 0x050d, 0x051c, 0x0522, 0x052b, 0x0534, 0x053a, - 0x0540, 0x0555, 0x055e, 0x0564, 0x056a, 0x0573, 0x057c, 0x0585, - 0x058b, 0x0591, 0x0597, 0x05a3, 0x05ac, 0x05b8, 0x05be, 0x05dc, - // Entry 80 - BF - 0x05e2, 0x05e8, 0x05f1, 0x05fd, 0x0606, 0x060c, 0x0615, 0x0621, - 0x0630, 0x063c, 0x0648, 0x0651, 0x065a, 0x0663, 0x066f, 0x0678, - 0x0681, 0x068a, 0x0696, 0x06a5, 0x06b4, 0x06c3, 0x06d2, 0x06db, - 0x06e1, 0x06e7, 0x06ed, 0x0717, 0x072c, 0x073b, 0x074a, 0x0753, - 0x075c, 0x0768, 0x0774, 0x077d, 0x0786, 0x0792, 0x079e, 0x07aa, - 0x07bc, 0x07c2, 0x07ce, 0x07da, 0x07e6, 0x07ec, 0x07f2, 0x07fb, - 0x0801, 0x080a, 0x0813, 0x081f, 0x0828, 0x082e, 0x0843, 0x0858, - 0x0861, 0x086d, 0x0873, 0x0891, 0x08a0, 0x08ac, 0x08c1, 0x08ca, - // Entry C0 - FF - 0x08d0, 0x08d9, 0x08df, 0x08f4, 0x08fd, 0x0909, 0x0915, 0x091e, - 0x0927, 0x0939, 0x0948, 0x0951, 0x0957, 0x095d, 0x0966, 0x0975, - 0x0984, 0x099c, 0x09a8, 0x09b1, 0x09bd, 0x09c9, 0x09d5, 0x09de, - 0x09e7, 0x09fc, 0x0a08, 0x0a17, 0x0a20, 0x0a2c, 0x0a4a, 0x0a62, - 0x0a68, 0x0a7a, 0x0a80, 0x0a86, 0x0a8f, 0x0a9e, 0x0aa7, 0x0ab0, - 0x0abc, 0x0ac2, 0x0acb, 0x0ae0, 0x0ae9, 0x0aef, 0x0afb, 0x0b04, - 0x0b0d, 0x0b25, 0x0b2b, 0x0b34, 0x0b40, 0x0b49, 0x0b61, 0x0b6d, - 0x0b7f, 0x0b91, 0x0b97, 0x0ba0, 0x0bbb, 0x0bca, 0x0bd3, 0x0bd9, - // Entry 100 - 13F - 0x0be2, 0x0be8, 0x0bf1, 0x0bfa, 0x0c06, 0x0c0c, 0x0c12, 0x0c1b, - 0x0c24, 0x0c2d, 0x0c33, 0x0c39, 0x0c3f, 0x0c45, 0x0c4b, 0x0c57, - 0x0c5d, 0x0c63, 0x0c6f, 0x0c75, 0x0c7b, 0x0c84, 0x0c8a, 0x0c9c, - 0x0cab, 0x0cbd, 0x0ccc, 0x0cd2, 0x0cd8, 0x0cde, 0x0ce4, 0x0cea, - 0x0cf0, 0x0cf6, 0x0d02, -} - -// Size: 3581 bytes -var zuRegionStr string = "" + - "i-Ascension Islandi-Andorrai-United Arab Emiratesi-Afghanistani-Antigua " + - "and Barbudai-Anguillai-Albaniai-Armeniai-Netherlands Antillesi-Angolai-A" + - "ntarcticai-Argentinai-American Samoai-Austriai-Australiai-Arubai-Ã…land I" + - "slandsi-Azerbaijani-Bosnia ne-Herzegovinai-Barbadosi-Bangladeshi-Belgium" + - "i-Burkina Fasoi-Bulgariai-Bahraini-Burundii-Benini-Saint Barthélemyi-Ber" + - "mudai-Bruneii-Boliviai-Caribbean Netherlandsi-Brazili-Bahamasi-Bhutani-B" + - "ouvet Islandi-Botswanai-Belarusi-Belizei-Canadai-Cocos (Keeling) Islands" + - "i-Congo - Kinshasai-Central African Republici-Congo - Brazzavillei-Switz" + - "erlandi-Côte d’Ivoirei-Cook Islandsi-Chilei-Camerooni-Chinai-Colombiai-C" + - "lipperton Islandi-Costa Ricai-Cubai-Cape Verdei-Curaçaoi-Christmas Islan" + - "di-Cyprusi-Czech Republici-Germanyi-Diego Garciai-Djiboutii-Denmarki-Dom" + - "inicai-Dominican Republici-Algeriai-Cueta ne-Melillai-Ecuadori-Estoniai-" + - "Egypti-Western Saharai-Eritreai-Spaini-Ethiopiai-European Unioni-Finland" + - "i-Fijii-Falkland Islandsi-Micronesiai-Faroe Islandsi-Francei-Gaboni-Unit" + - "ed Kingdomi-Grenadai-Georgiaisi-French Guianai-Guernseyi-Ghanai-Gibralta" + - "ri-Greenlandi-Gambiai-Guineai-Guadeloupei-Equatorial Guineai-Greecei-Sou" + - "th Georgia ne-South Sandwich Islandsi-Guatemalai-Guami-Guinea-Bissaui-Gu" + - "yanai-Hong Kong SAR Chinai-Heard Island ne-McDonald Islandsi-Hondurasi-C" + - "roatiai-Haitii-Hungaryi-Canary Islandsi-Indonesiai-Irelandi-Israeli-Isle" + - " of Mani-Indiai-British Indian Ocean Territoryi-Iraqi-Irani-Icelandi-Ita" + - "lyi-Jerseyi-Jamaicai-Jordani-Japani-Kenyai-Kyrgyzstani-Cambodiai-Kiribat" + - "ii-Comorosi-Saint Kitts ne-Nevisi-North Koreai-South Koreai-Kuwaiti-Caym" + - "an Islandsi-Kazakhstani-Laosi-Lebanoni-Saint Luciai-Liechtensteini-Sri L" + - "ankai-Liberiai-Lesothoi-Lithuaniai-Luxembourgi-Latviai-Libyai-Moroccoi-M" + - "onacoi-Moldovai-Montenegroi-Saint Martini-Madagascari-Marshall Islandsi-" + - "Macedoniai-Malii-Myanmar (Burma)i-Mongoliai-Macau SAR Chinai-Northern Ma" + - "riana Islandsi-Martiniquei-Mauritaniai-Montserrati-Maltai-Mauritiusi-Mal" + - "divesi-Malawii-Mexicoi-Malaysiai-Mozambiquei-Namibiai-New Caledoniai-Nig" + - "eri-Norfolk Islandi-Nigeriai-Nicaraguai-Netherlandsi-Norwayi-Nepali-Naur" + - "ui-Niuei-New Zealandi-Omani-Panamai-Perui-French Polynesiai-Papua New Gu" + - "ineai-Philippinesi-Pakistani-Polandi-Saint Pierre kanye ne-Miqueloni-Pit" + - "cairn Islandsi-Puerto Ricoi-Palestinian Territoriesi-Portugali-Palaui-Pa" + - "raguayi-Qatari-Outlying Oceaniai-Réunioni-Romaniai-Serbiai-Russiai-Rwand" + - "ai-Saudi Arabiai-Solomon Islandsi-Seychellesi-Sudani-Swedeni-Singaporei-" + - "Saint Helenai-Sloveniai-Svalbard ne-Jan Mayeni-Slovakiai-Sierra Leonei-S" + - "an Marinoi-Senegali-Somaliai-Surinamei-South Sudani-São Tomé kanye ne-Pr" + - "íncipei-El SalvadorI-Sint Maarteni-Syriai-Swazilandi-Tristan da Cunhai-" + - "Turks and Caicos Islandsi-Chadi-French Southern Territoriesi-Togoi-Thail" + - "andi-Tajikistani-Tokelaui-Timor-Lestei-Turkmenistani-Tunisiai-Tongai-Tur" + - "keyi-Trinidad ne-Tobagoi-Tuvalui-Taiwani-Tanzaniai-Ukrainei-Ugandai-U.S." + - " Minor Outlying Islandsi-United Statesi-Uruguayi-Uzbekistani-Vatican Cit" + - "yi-Saint Vincent ne-Grenadinesi-Venezuelai-British Virgin Islandsi-U.S. " + - "Virgin Islandsi-Vietnami-Vanuatui-Wallis ne-Futunai-Samoai-Kosovoi-Yemen" + - "i-Mayottei-South Africai-Zambiai-ZimbabweiSifunda esingaziwaUmhlabai-Afr" + - "icai-North Americai-South Americai-Oceaniai-Western Africai-Central Amer" + - "icai-Eastern Africai-Northern Africai-Middle Africai-Southern AfricaAmer" + - "icasi-Northern Americai-Caribbeani-Eastern Asiai-Southern Asiai-South-Ea" + - "stern Asiai-Southern Europei-Australasiai-Melanesiai-Micronesian Regioni" + - "-Polynesiai-Asiai-Central Asiai-Western Asiai-Europei-Eastern Europei-No" + - "rthern Europei-Western Europei-Latin America" - -// Size: 606 bytes, 291 elements -var zuRegionIdx = []uint16{ - // Entry 0 - 3F - 0x0000, 0x0012, 0x001b, 0x0031, 0x003e, 0x0053, 0x005d, 0x0066, - 0x006f, 0x0085, 0x008d, 0x0099, 0x00a4, 0x00b4, 0x00bd, 0x00c8, - 0x00cf, 0x00df, 0x00eb, 0x0102, 0x010c, 0x0118, 0x0121, 0x012f, - 0x0139, 0x0142, 0x014b, 0x0152, 0x0165, 0x016e, 0x0176, 0x017f, - 0x0196, 0x019e, 0x01a7, 0x01af, 0x01be, 0x01c8, 0x01d1, 0x01d9, - 0x01e1, 0x01fa, 0x020c, 0x0226, 0x023b, 0x0248, 0x025a, 0x0268, - 0x026f, 0x0279, 0x0280, 0x028a, 0x029d, 0x02a9, 0x02af, 0x02bb, - 0x02c5, 0x02d7, 0x02df, 0x02ef, 0x02f8, 0x0306, 0x0310, 0x0319, - // Entry 40 - 7F - 0x0323, 0x0337, 0x0340, 0x0352, 0x035b, 0x0364, 0x036b, 0x037b, - 0x0384, 0x038b, 0x0395, 0x03a5, 0x03ae, 0x03b4, 0x03c6, 0x03d2, - 0x03e1, 0x03e9, 0x03f0, 0x0400, 0x0409, 0x0412, 0x0423, 0x042d, - 0x0434, 0x043f, 0x044a, 0x0452, 0x045a, 0x0466, 0x0479, 0x0481, - 0x04aa, 0x04b5, 0x04bb, 0x04ca, 0x04d2, 0x04e7, 0x0509, 0x0513, - 0x051c, 0x0523, 0x052c, 0x053c, 0x0547, 0x0550, 0x0558, 0x0565, - 0x056c, 0x058c, 0x0592, 0x0598, 0x05a1, 0x05a8, 0x05b0, 0x05b9, - 0x05c1, 0x05c8, 0x05cf, 0x05db, 0x05e5, 0x05ef, 0x05f8, 0x060e, - // Entry 80 - BF - 0x061b, 0x0628, 0x0630, 0x0640, 0x064c, 0x0652, 0x065b, 0x0668, - 0x0677, 0x0682, 0x068b, 0x0694, 0x069f, 0x06ab, 0x06b3, 0x06ba, - 0x06c3, 0x06cb, 0x06d4, 0x06e0, 0x06ee, 0x06fa, 0x070c, 0x0717, - 0x071d, 0x072e, 0x0738, 0x0749, 0x0763, 0x076f, 0x077b, 0x0787, - 0x078e, 0x0799, 0x07a3, 0x07ab, 0x07b3, 0x07bd, 0x07c9, 0x07d2, - 0x07e1, 0x07e8, 0x07f8, 0x0801, 0x080c, 0x0819, 0x0821, 0x0828, - 0x082f, 0x0835, 0x0842, 0x0848, 0x0850, 0x0856, 0x0868, 0x087a, - 0x0887, 0x0891, 0x0899, 0x08b9, 0x08cb, 0x08d8, 0x08f1, 0x08fb, - // Entry C0 - FF - 0x0902, 0x090c, 0x0913, 0x0925, 0x092f, 0x0938, 0x0940, 0x0948, - 0x0950, 0x095e, 0x096f, 0x097b, 0x0982, 0x098a, 0x0995, 0x09a3, - 0x09ad, 0x09c4, 0x09ce, 0x09dc, 0x09e8, 0x09f1, 0x09fa, 0x0a04, - 0x0a11, 0x0a30, 0x0a3d, 0x0a4b, 0x0a52, 0x0a5d, 0x0a6f, 0x0a89, - 0x0a8f, 0x0aac, 0x0ab2, 0x0abc, 0x0ac8, 0x0ad1, 0x0ade, 0x0aec, - 0x0af5, 0x0afc, 0x0b04, 0x0b18, 0x0b20, 0x0b28, 0x0b32, 0x0b3b, - 0x0b43, 0x0b60, 0x0b6f, 0x0b78, 0x0b84, 0x0b92, 0x0baf, 0x0bba, - 0x0bd2, 0x0be7, 0x0bf0, 0x0bf9, 0x0c0b, 0x0c12, 0x0c1a, 0x0c21, - // Entry 100 - 13F - 0x0c2a, 0x0c38, 0x0c40, 0x0c4a, 0x0c5d, 0x0c64, 0x0c6c, 0x0c7b, - 0x0c8a, 0x0c93, 0x0ca3, 0x0cb4, 0x0cc4, 0x0cd5, 0x0ce4, 0x0cf5, - 0x0cfd, 0x0d0f, 0x0d1a, 0x0d28, 0x0d37, 0x0d4b, 0x0d5c, 0x0d69, - 0x0d74, 0x0d88, 0x0d93, 0x0d99, 0x0da7, 0x0db5, 0x0dbd, 0x0dcd, - 0x0dde, 0x0dee, 0x0dfd, -} - -// Total size for region: 792515 bytes (792 KB) - -const numSupported = 210 - -// Size: 795 bytes -var supported string = "" + - "af|agq|ak|am|ar|ar-EG|as|asa|ast|az|az-Cyrl|bas|be|bem|bez|bg|bm|bn|bo|b" + - "o-IN|br|brx|bs|bs-Cyrl|ca|cgg|chr|cs|cy|da|dav|de|de-CH|dje|dsb|dua|dyo|" + - "dz|ebu|ee|el|en|en-AU|eo|es|es-CL|es-MX|et|eu|ewo|fa|fa-AF|ff|fi|fil|fo|" + - "fr|fr-CA|fur|fy|ga|gd|gl|gsw|gu|guz|gv|ha|haw|he|hi|hr|hsb|hu|hy|id|ig|i" + - "i|is|it|ja|jgo|jmc|ka|kab|kam|kde|kea|khq|ki|kk|kkj|kl|kln|km|kn|ko|kok|" + - "ks|ksb|ksf|ksh|kw|ky|lag|lb|lg|lkt|ln|lo|lt|lu|luo|luy|lv|mas|mer|mfe|mg" + - "|mgh|mgo|mk|ml|mn|mr|ms|mt|mua|my|naq|nd|ne|nl|nmg|nn|nnh|no|nus|nyn|om|" + - "or|os|pa|pa-Arab|pl|ps|pt|pt-PT|qu|rm|rn|ro|rof|ru|rw|rwk|sah|saq|sbp|se" + - "|se-FI|seh|ses|sg|shi|shi-Latn|si|sk|sl|smn|sn|so|sq|sr|sr-Latn|sv|sv-FI" + - "|sw|sw-CD|ta|te|teo|th|ti|to|tr|twq|tzm|ug|uk|ur|ur-IN|uz|uz-Arab|uz-Cyr" + - "l|vai|vai-Latn|vi|vun|wae|xog|yav|yi|yo|yo-BJ|zgh|zh|zh-Hant|zh-Hant-HK|" + - "zu|" - -// Dictionary entries of frequent languages -var ( - af = Dictionary{ // af - nil, - header{afLangStr, afLangIdx}, - header{afScriptStr, afScriptIdx}, - header{afRegionStr, afRegionIdx}, - } - am = Dictionary{ // am - nil, - header{amLangStr, amLangIdx}, - header{amScriptStr, amScriptIdx}, - header{amRegionStr, amRegionIdx}, - } - ar = Dictionary{ // ar - nil, - header{arLangStr, arLangIdx}, - header{arScriptStr, arScriptIdx}, - header{arRegionStr, arRegionIdx}, - } - az = Dictionary{ // az - nil, - header{azLangStr, azLangIdx}, - header{azScriptStr, azScriptIdx}, - header{azRegionStr, azRegionIdx}, - } - bg = Dictionary{ // bg - nil, - header{bgLangStr, bgLangIdx}, - header{bgScriptStr, bgScriptIdx}, - header{bgRegionStr, bgRegionIdx}, - } - bn = Dictionary{ // bn - nil, - header{bnLangStr, bnLangIdx}, - header{bnScriptStr, bnScriptIdx}, - header{bnRegionStr, bnRegionIdx}, - } - ca = Dictionary{ // ca - nil, - header{caLangStr, caLangIdx}, - header{caScriptStr, caScriptIdx}, - header{caRegionStr, caRegionIdx}, - } - cs = Dictionary{ // cs - nil, - header{csLangStr, csLangIdx}, - header{csScriptStr, csScriptIdx}, - header{csRegionStr, csRegionIdx}, - } - da = Dictionary{ // da - nil, - header{daLangStr, daLangIdx}, - header{daScriptStr, daScriptIdx}, - header{daRegionStr, daRegionIdx}, - } - de = Dictionary{ // de - nil, - header{deLangStr, deLangIdx}, - header{deScriptStr, deScriptIdx}, - header{deRegionStr, deRegionIdx}, - } - el = Dictionary{ // el - nil, - header{elLangStr, elLangIdx}, - header{elScriptStr, elScriptIdx}, - header{elRegionStr, elRegionIdx}, - } - en = Dictionary{ // en - nil, - header{enLangStr, enLangIdx}, - header{enScriptStr, enScriptIdx}, - header{enRegionStr, enRegionIdx}, - } - es = Dictionary{ // es - nil, - header{esLangStr, esLangIdx}, - header{esScriptStr, esScriptIdx}, - header{esRegionStr, esRegionIdx}, - } - et = Dictionary{ // et - nil, - header{etLangStr, etLangIdx}, - header{etScriptStr, etScriptIdx}, - header{etRegionStr, etRegionIdx}, - } - fa = Dictionary{ // fa - nil, - header{faLangStr, faLangIdx}, - header{faScriptStr, faScriptIdx}, - header{faRegionStr, faRegionIdx}, - } - fi = Dictionary{ // fi - nil, - header{fiLangStr, fiLangIdx}, - header{fiScriptStr, fiScriptIdx}, - header{fiRegionStr, fiRegionIdx}, - } - fil = Dictionary{ // fil - nil, - header{filLangStr, filLangIdx}, - header{filScriptStr, filScriptIdx}, - header{filRegionStr, filRegionIdx}, - } - fr = Dictionary{ // fr - nil, - header{frLangStr, frLangIdx}, - header{frScriptStr, frScriptIdx}, - header{frRegionStr, frRegionIdx}, - } - frCA = Dictionary{ // fr-CA - &fr, - header{frCALangStr, frCALangIdx}, - header{frCAScriptStr, frCAScriptIdx}, - header{frCARegionStr, frCARegionIdx}, - } - gu = Dictionary{ // gu - nil, - header{guLangStr, guLangIdx}, - header{guScriptStr, guScriptIdx}, - header{guRegionStr, guRegionIdx}, - } - he = Dictionary{ // he - nil, - header{heLangStr, heLangIdx}, - header{heScriptStr, heScriptIdx}, - header{heRegionStr, heRegionIdx}, - } - hi = Dictionary{ // hi - nil, - header{hiLangStr, hiLangIdx}, - header{hiScriptStr, hiScriptIdx}, - header{hiRegionStr, hiRegionIdx}, - } - hr = Dictionary{ // hr - nil, - header{hrLangStr, hrLangIdx}, - header{hrScriptStr, hrScriptIdx}, - header{hrRegionStr, hrRegionIdx}, - } - hu = Dictionary{ // hu - nil, - header{huLangStr, huLangIdx}, - header{huScriptStr, huScriptIdx}, - header{huRegionStr, huRegionIdx}, - } - hy = Dictionary{ // hy - nil, - header{hyLangStr, hyLangIdx}, - header{hyScriptStr, hyScriptIdx}, - header{hyRegionStr, hyRegionIdx}, - } - id = Dictionary{ // id - nil, - header{idLangStr, idLangIdx}, - header{idScriptStr, idScriptIdx}, - header{idRegionStr, idRegionIdx}, - } - is = Dictionary{ // is - nil, - header{isLangStr, isLangIdx}, - header{isScriptStr, isScriptIdx}, - header{isRegionStr, isRegionIdx}, - } - it = Dictionary{ // it - nil, - header{itLangStr, itLangIdx}, - header{itScriptStr, itScriptIdx}, - header{itRegionStr, itRegionIdx}, - } - ja = Dictionary{ // ja - nil, - header{jaLangStr, jaLangIdx}, - header{jaScriptStr, jaScriptIdx}, - header{jaRegionStr, jaRegionIdx}, - } - ka = Dictionary{ // ka - nil, - header{kaLangStr, kaLangIdx}, - header{kaScriptStr, kaScriptIdx}, - header{kaRegionStr, kaRegionIdx}, - } - kk = Dictionary{ // kk - nil, - header{kkLangStr, kkLangIdx}, - header{kkScriptStr, kkScriptIdx}, - header{kkRegionStr, kkRegionIdx}, - } - km = Dictionary{ // km - nil, - header{kmLangStr, kmLangIdx}, - header{kmScriptStr, kmScriptIdx}, - header{kmRegionStr, kmRegionIdx}, - } - kn = Dictionary{ // kn - nil, - header{knLangStr, knLangIdx}, - header{knScriptStr, knScriptIdx}, - header{knRegionStr, knRegionIdx}, - } - ko = Dictionary{ // ko - nil, - header{koLangStr, koLangIdx}, - header{koScriptStr, koScriptIdx}, - header{koRegionStr, koRegionIdx}, - } - ky = Dictionary{ // ky - nil, - header{kyLangStr, kyLangIdx}, - header{kyScriptStr, kyScriptIdx}, - header{kyRegionStr, kyRegionIdx}, - } - lo = Dictionary{ // lo - nil, - header{loLangStr, loLangIdx}, - header{loScriptStr, loScriptIdx}, - header{loRegionStr, loRegionIdx}, - } - lt = Dictionary{ // lt - nil, - header{ltLangStr, ltLangIdx}, - header{ltScriptStr, ltScriptIdx}, - header{ltRegionStr, ltRegionIdx}, - } - lv = Dictionary{ // lv - nil, - header{lvLangStr, lvLangIdx}, - header{lvScriptStr, lvScriptIdx}, - header{lvRegionStr, lvRegionIdx}, - } - mk = Dictionary{ // mk - nil, - header{mkLangStr, mkLangIdx}, - header{mkScriptStr, mkScriptIdx}, - header{mkRegionStr, mkRegionIdx}, - } - ml = Dictionary{ // ml - nil, - header{mlLangStr, mlLangIdx}, - header{mlScriptStr, mlScriptIdx}, - header{mlRegionStr, mlRegionIdx}, - } - mn = Dictionary{ // mn - nil, - header{mnLangStr, mnLangIdx}, - header{mnScriptStr, mnScriptIdx}, - header{mnRegionStr, mnRegionIdx}, - } - mr = Dictionary{ // mr - nil, - header{mrLangStr, mrLangIdx}, - header{mrScriptStr, mrScriptIdx}, - header{mrRegionStr, mrRegionIdx}, - } - ms = Dictionary{ // ms - nil, - header{msLangStr, msLangIdx}, - header{msScriptStr, msScriptIdx}, - header{msRegionStr, msRegionIdx}, - } - my = Dictionary{ // my - nil, - header{myLangStr, myLangIdx}, - header{myScriptStr, myScriptIdx}, - header{myRegionStr, myRegionIdx}, - } - ne = Dictionary{ // ne - nil, - header{neLangStr, neLangIdx}, - header{neScriptStr, neScriptIdx}, - header{neRegionStr, neRegionIdx}, - } - nl = Dictionary{ // nl - nil, - header{nlLangStr, nlLangIdx}, - header{nlScriptStr, nlScriptIdx}, - header{nlRegionStr, nlRegionIdx}, - } - no = Dictionary{ // no - nil, - header{noLangStr, noLangIdx}, - header{noScriptStr, noScriptIdx}, - header{noRegionStr, noRegionIdx}, - } - pa = Dictionary{ // pa - nil, - header{paLangStr, paLangIdx}, - header{paScriptStr, paScriptIdx}, - header{paRegionStr, paRegionIdx}, - } - pl = Dictionary{ // pl - nil, - header{plLangStr, plLangIdx}, - header{plScriptStr, plScriptIdx}, - header{plRegionStr, plRegionIdx}, - } - pt = Dictionary{ // pt - nil, - header{ptLangStr, ptLangIdx}, - header{ptScriptStr, ptScriptIdx}, - header{ptRegionStr, ptRegionIdx}, - } - ptPT = Dictionary{ // pt-PT - &pt, - header{ptPTLangStr, ptPTLangIdx}, - header{ptPTScriptStr, ptPTScriptIdx}, - header{ptPTRegionStr, ptPTRegionIdx}, - } - ro = Dictionary{ // ro - nil, - header{roLangStr, roLangIdx}, - header{roScriptStr, roScriptIdx}, - header{roRegionStr, roRegionIdx}, - } - ru = Dictionary{ // ru - nil, - header{ruLangStr, ruLangIdx}, - header{ruScriptStr, ruScriptIdx}, - header{ruRegionStr, ruRegionIdx}, - } - si = Dictionary{ // si - nil, - header{siLangStr, siLangIdx}, - header{siScriptStr, siScriptIdx}, - header{siRegionStr, siRegionIdx}, - } - sk = Dictionary{ // sk - nil, - header{skLangStr, skLangIdx}, - header{skScriptStr, skScriptIdx}, - header{skRegionStr, skRegionIdx}, - } - sl = Dictionary{ // sl - nil, - header{slLangStr, slLangIdx}, - header{slScriptStr, slScriptIdx}, - header{slRegionStr, slRegionIdx}, - } - sq = Dictionary{ // sq - nil, - header{sqLangStr, sqLangIdx}, - header{sqScriptStr, sqScriptIdx}, - header{sqRegionStr, sqRegionIdx}, - } - sr = Dictionary{ // sr - nil, - header{srLangStr, srLangIdx}, - header{srScriptStr, srScriptIdx}, - header{srRegionStr, srRegionIdx}, - } - srLatn = Dictionary{ // sr-Latn - nil, - header{srLatnLangStr, srLatnLangIdx}, - header{srLatnScriptStr, srLatnScriptIdx}, - header{srLatnRegionStr, srLatnRegionIdx}, - } - sv = Dictionary{ // sv - nil, - header{svLangStr, svLangIdx}, - header{svScriptStr, svScriptIdx}, - header{svRegionStr, svRegionIdx}, - } - sw = Dictionary{ // sw - nil, - header{swLangStr, swLangIdx}, - header{swScriptStr, swScriptIdx}, - header{swRegionStr, swRegionIdx}, - } - ta = Dictionary{ // ta - nil, - header{taLangStr, taLangIdx}, - header{taScriptStr, taScriptIdx}, - header{taRegionStr, taRegionIdx}, - } - te = Dictionary{ // te - nil, - header{teLangStr, teLangIdx}, - header{teScriptStr, teScriptIdx}, - header{teRegionStr, teRegionIdx}, - } - th = Dictionary{ // th - nil, - header{thLangStr, thLangIdx}, - header{thScriptStr, thScriptIdx}, - header{thRegionStr, thRegionIdx}, - } - tr = Dictionary{ // tr - nil, - header{trLangStr, trLangIdx}, - header{trScriptStr, trScriptIdx}, - header{trRegionStr, trRegionIdx}, - } - uk = Dictionary{ // uk - nil, - header{ukLangStr, ukLangIdx}, - header{ukScriptStr, ukScriptIdx}, - header{ukRegionStr, ukRegionIdx}, - } - ur = Dictionary{ // ur - nil, - header{urLangStr, urLangIdx}, - header{urScriptStr, urScriptIdx}, - header{urRegionStr, urRegionIdx}, - } - uz = Dictionary{ // uz - nil, - header{uzLangStr, uzLangIdx}, - header{uzScriptStr, uzScriptIdx}, - header{uzRegionStr, uzRegionIdx}, - } - vi = Dictionary{ // vi - nil, - header{viLangStr, viLangIdx}, - header{viScriptStr, viScriptIdx}, - header{viRegionStr, viRegionIdx}, - } - zh = Dictionary{ // zh - nil, - header{zhLangStr, zhLangIdx}, - header{zhScriptStr, zhScriptIdx}, - header{zhRegionStr, zhRegionIdx}, - } - zhHant = Dictionary{ // zh-Hant - nil, - header{zhHantLangStr, zhHantLangIdx}, - header{zhHantScriptStr, zhHantScriptIdx}, - header{zhHantRegionStr, zhHantRegionIdx}, - } - zu = Dictionary{ // zu - nil, - header{zuLangStr, zuLangIdx}, - header{zuScriptStr, zuScriptIdx}, - header{zuRegionStr, zuRegionIdx}, - } -) - -// Total size for 79 entries: 10112 bytes (10 KB) - -// Number of keys: 211 -var ( - selfIndex = tagIndex{ - "afakamarasazbebgbmbnbobrbscacscydadedzeeeleneoeseteufafffifofrfygagdglgu" + - "gvhahehihrhuhyidigiiisitjakakikkklkmknkokskwkylblglnloltlulvmgmkmlmn" + - "mrmsmtmyndnenlnnnoomorospaplpsptqurmrnrorurwsesgsiskslsnsosqsrsvswta" + - "tethtitotrugukuruzviyiyozhzu", - "agqasaastbasbembezbrxcggchrdavdjedsbduadyoebuewofilfurgswguzhawhsbjgojmc" + - "kabkamkdekeakhqkkjklnkokksbksfkshlaglktluoluymasmermfemghmgomuanaqnn" + - "hnusnynrofrwksahsaqsbpsehsesshismnteotwqtzmvaivunwaexogyavzgh", - "", - } - selfTagsLong = []string{ // 26 elements - "ar-001", - "az-Cyrl", - "bs-Cyrl", - "de-AT", - "de-CH", - "en-AU", - "en-CA", - "en-GB", - "en-US", - "es-419", - "es-ES", - "es-MX", - "fr-CA", - "fr-CH", - "nl-BE", - "pa-Arab", - "pt-BR", - "pt-PT", - "ro-MD", - "shi-Latn", - "sr-Latn", - "uz-Arab", - "uz-Cyrl", - "vai-Latn", - "zh-Hans", - "zh-Hant", - } -) - -var selfHeaders = [1]header{ - { // mul - "AfrikaansAkanአማርኛالعربيةঅসমীয়াazÉ™rbaycanбеларуÑкаÑбългарÑкиbamanakanবাং" + - "লাབོད་སà¾à½‘་brezhonegbosanskicatalàÄeÅ¡tinaCymraegdanskDeutschརྫོང་à½e" + - "Ê‹egbeΕλληνικάEnglishesperantoespañoleestieuskaraÙارسیPulaarsuomifør" + - "oysktfrançaisWest-FryskGaeilgeGàidhliggalegoગà«àªœàª°àª¾àª¤à«€GaelgHausaעבריתहि" + - "नà¥à¤¦à¥€hrvatskimagyarÕ°Õ¡ÕµÕ¥Ö€Õ¥Õ¶Bahasa IndonesiaIgboꆈꌠꉙíslenskaitaliano日本" + - "語ქáƒáƒ áƒ—ულიGikuyuқазақ тіліkalaallisutážáŸ’មែរಕನà³à²¨à²¡í•œêµ­ì–´Ú©Ù²Ø´Ùرkernewekкыргы" + - "зчаLëtzebuergeschLugandalingálaລາວlietuviųTshilubalatvieÅ¡uMalagasyм" + - "акедонÑкиമലയാളംмонголमराठीBahasa MelayuMaltiဗမာisiNdebeleनेपालीNede" + - "rlandsnynorsknorsk bokmÃ¥lOromooଓଡ଼ିଆиронਪੰਜਾਬੀpolskiپښتوportuguêsRun" + - "asimirumantschIkirundiromânăруÑÑкийKinyarwandadavvisámegiellaSängöසි" + - "ංහලslovenÄinaslovenÅ¡ÄinachiShonaSoomaalishqipÑрпÑкиsvenskaKiswahil" + - "iதமிழà¯à°¤à±†à°²à±à°—à±à¹„ทยትáŒáˆ­áŠ›lea fakatongaTürkçeئۇيغۇرچەукраїнÑькаاردوoÊ»zbekch" + - "aTiếng ViệtייִדישÈdè Yorùbá中文isiZuluAghemKipareasturianuÆàsàaIchibem" + - "baHibenaबड़ोRukigaá£áŽ³áŽ©KitaitaZarmaciinedolnoserbšćinaduálájoolaKÄ©embu" + - "ewondoFilipinofurlanSchwiizertüütschEkegusiiʻŌlelo HawaiÊ»ihornjoserb" + - "šćinaNdaꞌaKimachameTaqbaylitKikambaChimakondekabuverdianuKoyra ciin" + - "ikakÉ”KalenjinकोंकणीKishambaarikpaKölschKɨlaangiLakȟólʼiyapiDholuoLul" + - "uhiaMaaKÄ©mÄ©rÅ©kreol morisienMakuametaʼMUNDAÅŠKhoekhoegowabShwóŋò ngiem" + - "bɔɔnThok NathRunyankoreKihoromboKiruwaÑаха тылаKisampurIshisangusena" + - "Koyraboro senniⵜⴰⵎⴰⵣⵉⵖⵜanarâškielâKitesoTasawaq senniTamaziÉ£tꕙꔤKyivu" + - "njoWalserOlusoganuasueⵜⴰⵎⴰⵣⵉⵖⵜالعربية الرسمية الحديثةÐзәрбајҹанбоÑан" + - "ÑкиÖsterreichisches DeutschSchweizer HochdeutschAustralian EnglishC" + - "anadian EnglishBritish EnglishAmerican Englishespañol latinoamerican" + - "oespañol de Españaespañol de Méxicofrançais canadienfrançais suisseV" + - "laamsپنجابیportuguês do Brasilportuguês europeumoldoveneascătamazigh" + - "tSrpskohrvatskiاوزبیکЎзбекVai简体中文ç¹é«”中文", - []uint16{ // 212 elements - // Entry 0 - 3F - 0x0000, 0x0009, 0x000d, 0x0019, 0x0027, 0x003c, 0x0047, 0x005b, - 0x006d, 0x0076, 0x0085, 0x009d, 0x00a6, 0x00ae, 0x00b5, 0x00be, - 0x00c5, 0x00ca, 0x00d1, 0x00e3, 0x00ea, 0x00fa, 0x0101, 0x010a, - 0x0112, 0x0117, 0x011e, 0x0128, 0x012e, 0x0133, 0x013c, 0x0145, - 0x014f, 0x0156, 0x015f, 0x0165, 0x017a, 0x017f, 0x0184, 0x018e, - 0x01a0, 0x01a8, 0x01ae, 0x01bc, 0x01cc, 0x01d0, 0x01d9, 0x01e2, - 0x01ea, 0x01f3, 0x0208, 0x020e, 0x0221, 0x022c, 0x023b, 0x024a, - 0x0253, 0x025d, 0x0265, 0x0275, 0x0284, 0x028b, 0x0293, 0x029c, - // Entry 40 - 7F - 0x02a5, 0x02ad, 0x02b6, 0x02be, 0x02d2, 0x02e4, 0x02f0, 0x02ff, - 0x030c, 0x0311, 0x031a, 0x0324, 0x0336, 0x0340, 0x0347, 0x0354, - 0x035a, 0x0369, 0x0371, 0x0383, 0x0389, 0x0391, 0x039b, 0x03a3, - 0x03ac, 0x03b4, 0x03bc, 0x03ca, 0x03d5, 0x03e5, 0x03ec, 0x03fb, - 0x0406, 0x0413, 0x041b, 0x0423, 0x0428, 0x0434, 0x043b, 0x0444, - 0x0453, 0x0465, 0x046e, 0x047a, 0x0487, 0x048f, 0x049f, 0x04b3, - 0x04bb, 0x04c5, 0x04d3, 0x04df, 0x04ed, 0x04f3, 0x04fa, 0x04ff, - 0x0505, 0x050e, 0x0516, 0x051f, 0x0525, 0x0531, 0x0537, 0x0540, - // Entry 80 - BF - 0x0547, 0x0551, 0x0561, 0x0568, 0x056d, 0x0574, 0x057a, 0x0582, - 0x0588, 0x059a, 0x05a2, 0x05b3, 0x05c4, 0x05cb, 0x05d4, 0x05dd, - 0x05e4, 0x05ee, 0x05fa, 0x0605, 0x060a, 0x0612, 0x0624, 0x062d, - 0x0632, 0x0639, 0x0642, 0x0651, 0x0657, 0x065e, 0x0661, 0x066a, - 0x0678, 0x067d, 0x0683, 0x068a, 0x0697, 0x06ac, 0x06b5, 0x06bf, - 0x06c8, 0x06ce, 0x06df, 0x06e7, 0x06f0, 0x06f4, 0x0703, 0x071b, - 0x0729, 0x072f, 0x073c, 0x0745, 0x074b, 0x0753, 0x0759, 0x0760, - 0x0766, 0x077e, 0x07aa, 0x07be, 0x07ce, 0x07e7, 0x07fc, 0x080e, - // Entry C0 - FF - 0x081e, 0x082d, 0x083d, 0x0855, 0x0868, 0x087b, 0x088d, 0x089d, - 0x08a3, 0x08af, 0x08c3, 0x08d5, 0x08e3, 0x08ec, 0x08fa, 0x0906, - 0x0910, 0x0913, 0x091f, 0x092b, - }, - }, -} - -// Total size for self: 3914 bytes (3 KB) - -// Total table size 1870295 bytes (1826KiB); checksum: F1F57EF8 diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/doc.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/doc.go deleted file mode 100644 index 9d65bfb5..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/doc.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go - -// text is a repository of text-related packages, such as character encodings, -// text transformations, and locale-specific text handling. -package text - -// TODO: more documentation on general concepts, such as Transformers, use -// of normalization, etc. diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap/charmap.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap/charmap.go deleted file mode 100644 index 016cea6f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap/charmap.go +++ /dev/null @@ -1,209 +0,0 @@ -// 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 charmap provides simple character encodings such as IBM Code Page 437 -// and Windows 1252. -package charmap - -import ( - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// These encodings vary only in the way clients should interpret them. Their -// coded character set is identical and a single implementation can be shared. -var ( - // ISO8859_6E is the ISO 8859-6E encoding. - ISO8859_6E encoding.Encoding = &iso8859_6E - - // ISO8859_6I is the ISO 8859-6I encoding. - ISO8859_6I encoding.Encoding = &iso8859_6I - - // ISO8859_8E is the ISO 8859-8E encoding. - ISO8859_8E encoding.Encoding = &iso8859_8E - - // ISO8859_8I is the ISO 8859-8I encoding. - ISO8859_8I encoding.Encoding = &iso8859_8I - - iso8859_6E = internal.Encoding{ - ISO8859_6, - "ISO-8859-6E", - identifier.ISO88596E, - } - - iso8859_6I = internal.Encoding{ - ISO8859_6, - "ISO-8859-6I", - identifier.ISO88596I, - } - - iso8859_8E = internal.Encoding{ - ISO8859_8, - "ISO-8859-8E", - identifier.ISO88598E, - } - - iso8859_8I = internal.Encoding{ - ISO8859_8, - "ISO-8859-8I", - identifier.ISO88598I, - } -) - -// All is a list of all defined encodings in this package. -var All = listAll - -// TODO: implement these encodings, in order of importance. -// ASCII, ISO8859_1: Rather common. Close to Windows 1252. -// ISO8859_9: Close to Windows 1254. - -// utf8Enc holds a rune's UTF-8 encoding in data[:len]. -type utf8Enc struct { - len uint8 - data [3]byte -} - -// charmap describes an 8-bit character set encoding. -type charmap struct { - // name is the encoding's name. - name string - // mib is the encoding type of this encoder. - mib identifier.MIB - // asciiSuperset states whether the encoding is a superset of ASCII. - asciiSuperset bool - // low is the lower bound of the encoded byte for a non-ASCII rune. If - // charmap.asciiSuperset is true then this will be 0x80, otherwise 0x00. - low uint8 - // replacement is the encoded replacement character. - replacement byte - // decode is the map from encoded byte to UTF-8. - decode [256]utf8Enc - // encoding is the map from runes to encoded bytes. Each entry is a - // uint32: the high 8 bits are the encoded byte and the low 24 bits are - // the rune. The table entries are sorted by ascending rune. - encode [256]uint32 -} - -func (m *charmap) NewDecoder() transform.Transformer { - return charmapDecoder{charmap: m} -} - -func (m *charmap) NewEncoder() transform.Transformer { - return charmapEncoder{charmap: m} -} - -func (m *charmap) String() string { - return m.name -} - -func (m *charmap) ID() (mib identifier.MIB, other string) { - return m.mib, "" -} - -// charmapDecoder implements transform.Transformer by decoding to UTF-8. -type charmapDecoder struct { - transform.NopResetter - charmap *charmap -} - -func (m charmapDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for i, c := range src { - if m.charmap.asciiSuperset && c < utf8.RuneSelf { - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = c - nDst++ - nSrc = i + 1 - continue - } - - decode := &m.charmap.decode[c] - n := int(decode.len) - if nDst+n > len(dst) { - err = transform.ErrShortDst - break - } - // It's 15% faster to avoid calling copy for these tiny slices. - for j := 0; j < n; j++ { - dst[nDst] = decode.data[j] - nDst++ - } - nSrc = i + 1 - } - return nDst, nSrc, err -} - -// charmapEncoder implements transform.Transformer by encoding from UTF-8. -type charmapEncoder struct { - transform.NopResetter - charmap *charmap -} - -func (m charmapEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for nSrc < len(src) { - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - nSrc++ - if m.charmap.asciiSuperset { - dst[nDst] = uint8(r) - nDst++ - continue - } - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - nSrc += size - if r == utf8.RuneError { - dst[nDst] = m.charmap.replacement - nDst++ - continue - } - } - - // Binary search in [low, high) for that rune in the m.charmap.encode table. - for low, high := int(m.charmap.low), 0x100; ; { - if low >= high { - dst[nDst] = m.charmap.replacement - nDst++ - break - } - mid := (low + high) / 2 - got := m.charmap.encode[mid] - gotRune := rune(got & (1<<24 - 1)) - if gotRune < r { - low = mid + 1 - } else if gotRune > r { - high = mid - } else { - dst[nDst] = byte(got >> 24) - nDst++ - break - } - } - } - return nDst, nSrc, err -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap/maketables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap/maketables.go deleted file mode 100644 index 23881b48..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap/maketables.go +++ /dev/null @@ -1,489 +0,0 @@ -// 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. - -// +build ignore - -package main - -// This program generates tables.go: -// go run maketables.go | gofmt > tables.go - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" - "unicode/utf8" - - "golang.org/x/text/encoding" -) - -const ascii = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" + - "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + - ` !"#$%&'()*+,-./0123456789:;<=>?` + - `@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` + - "`abcdefghijklmnopqrstuvwxyz{|}~\u007f" - -var encodings = []struct { - name string - mib string - comment string - varName string - replacement byte - mapping string -}{ - { - "Windows Code Page 437", - "PC8CodePage437", - "", - "CodePage437", - '?', - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-437-2000.ucm", - }, - { - "Windows Code Page 850", - "PC850Multilingual", - "", - "CodePage850", - '?', - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-850-2000.ucm", - }, - { - "Windows Code Page 852", - "PCp852", - "", - "CodePage852", - '?', - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-852-2000.ucm", - }, - { - "Windows Code Page 855", - "IBM855", - "", - "CodePage855", - '?', - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-855-2000.ucm", - }, - { - "Windows Code Page 858", - "IBM00858", - "", - "CodePage858", - '?', - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-858-2000.ucm", - }, - { - "Windows Code Page 862", - "PC862LatinHebrew", - "", - "CodePage862", - '?', - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-862-2000.ucm", - }, - { - "IBM Code Page 866", - "IBM866", - "", - "CodePage866", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-ibm866.txt", - }, - { - "ISO 8859-2", - "ISOLatin2", - "", - "ISO8859_2", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-2.txt", - }, - { - "ISO 8859-3", - "ISOLatin3", - "", - "ISO8859_3", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-3.txt", - }, - { - "ISO 8859-4", - "ISOLatin4", - "", - "ISO8859_4", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-4.txt", - }, - { - "ISO 8859-5", - "ISOLatinCyrillic", - "", - "ISO8859_5", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-5.txt", - }, - { - "ISO 8859-6", - "ISOLatinArabic", - "", - "ISO8859_6,ISO8859_6E,ISO8859_6I", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-6.txt", - }, - { - "ISO 8859-7", - "ISOLatinGreek", - "", - "ISO8859_7", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-7.txt", - }, - { - "ISO 8859-8", - "ISOLatinHebrew", - "", - "ISO8859_8,ISO8859_8E,ISO8859_8I", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-8.txt", - }, - { - "ISO 8859-10", - "ISOLatin6", - "", - "ISO8859_10", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-10.txt", - }, - { - "ISO 8859-13", - "ISO885913", - "", - "ISO8859_13", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-13.txt", - }, - { - "ISO 8859-14", - "ISO885914", - "", - "ISO8859_14", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-14.txt", - }, - { - "ISO 8859-15", - "ISO885915", - "", - "ISO8859_15", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-15.txt", - }, - { - "ISO 8859-16", - "ISO885916", - "", - "ISO8859_16", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-16.txt", - }, - { - "KOI8-R", - "KOI8R", - "", - "KOI8R", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-koi8-r.txt", - }, - { - "KOI8-U", - "KOI8U", - "", - "KOI8U", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-koi8-u.txt", - }, - { - "Macintosh", - "Macintosh", - "", - "Macintosh", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-macintosh.txt", - }, - { - "Macintosh Cyrillic", - "MacintoshCyrillic", - "", - "MacintoshCyrillic", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-x-mac-cyrillic.txt", - }, - { - "Windows 874", - "Windows874", - "", - "Windows874", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-874.txt", - }, - { - "Windows 1250", - "Windows1250", - "", - "Windows1250", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1250.txt", - }, - { - "Windows 1251", - "Windows1251", - "", - "Windows1251", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1251.txt", - }, - { - "Windows 1252", - "Windows1252", - "", - "Windows1252", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1252.txt", - }, - { - "Windows 1253", - "Windows1253", - "", - "Windows1253", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1253.txt", - }, - { - "Windows 1254", - "Windows1254", - "", - "Windows1254", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1254.txt", - }, - { - "Windows 1255", - "Windows1255", - "", - "Windows1255", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1255.txt", - }, - { - "Windows 1256", - "Windows1256", - "", - "Windows1256", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1256.txt", - }, - { - "Windows 1257", - "Windows1257", - "", - "Windows1257", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1257.txt", - }, - { - "Windows 1258", - "Windows1258", - "", - "Windows1258", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1258.txt", - }, - { - "X-User-Defined", - "XUserDefined", - "It is defined at http://encoding.spec.whatwg.org/#x-user-defined", - "XUserDefined", - encoding.ASCIISub, - ascii + - "\uf780\uf781\uf782\uf783\uf784\uf785\uf786\uf787" + - "\uf788\uf789\uf78a\uf78b\uf78c\uf78d\uf78e\uf78f" + - "\uf790\uf791\uf792\uf793\uf794\uf795\uf796\uf797" + - "\uf798\uf799\uf79a\uf79b\uf79c\uf79d\uf79e\uf79f" + - "\uf7a0\uf7a1\uf7a2\uf7a3\uf7a4\uf7a5\uf7a6\uf7a7" + - "\uf7a8\uf7a9\uf7aa\uf7ab\uf7ac\uf7ad\uf7ae\uf7af" + - "\uf7b0\uf7b1\uf7b2\uf7b3\uf7b4\uf7b5\uf7b6\uf7b7" + - "\uf7b8\uf7b9\uf7ba\uf7bb\uf7bc\uf7bd\uf7be\uf7bf" + - "\uf7c0\uf7c1\uf7c2\uf7c3\uf7c4\uf7c5\uf7c6\uf7c7" + - "\uf7c8\uf7c9\uf7ca\uf7cb\uf7cc\uf7cd\uf7ce\uf7cf" + - "\uf7d0\uf7d1\uf7d2\uf7d3\uf7d4\uf7d5\uf7d6\uf7d7" + - "\uf7d8\uf7d9\uf7da\uf7db\uf7dc\uf7dd\uf7de\uf7df" + - "\uf7e0\uf7e1\uf7e2\uf7e3\uf7e4\uf7e5\uf7e6\uf7e7" + - "\uf7e8\uf7e9\uf7ea\uf7eb\uf7ec\uf7ed\uf7ee\uf7ef" + - "\uf7f0\uf7f1\uf7f2\uf7f3\uf7f4\uf7f5\uf7f6\uf7f7" + - "\uf7f8\uf7f9\uf7fa\uf7fb\uf7fc\uf7fd\uf7fe\uf7ff", - }, -} - -func getWHATWG(url string) string { - res, err := http.Get(url) - if err != nil { - log.Fatalf("%q: Get: %v", url, err) - } - defer res.Body.Close() - - mapping := make([]rune, 128) - for i := range mapping { - mapping[i] = '\ufffd' - } - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := 0, 0 - if _, err := fmt.Sscanf(s, "%d\t0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0 || 128 <= x { - log.Fatalf("code %d is out of range", x) - } - if 0x80 <= y && y < 0xa0 { - // We diverge from the WHATWG spec by mapping control characters - // in the range [0x80, 0xa0) to U+FFFD. - continue - } - mapping[x] = rune(y) - } - return ascii + string(mapping) -} - -func getUCM(url string) string { - res, err := http.Get(url) - if err != nil { - log.Fatalf("%q: Get: %v", url, err) - } - defer res.Body.Close() - - mapping := make([]rune, 256) - for i := range mapping { - mapping[i] = '\ufffd' - } - - charsFound := 0 - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - var c byte - var r rune - if _, err := fmt.Sscanf(s, `<U%x> \x%x |0`, &r, &c); err != nil { - continue - } - mapping[c] = r - charsFound++ - } - - if charsFound < 200 { - log.Fatalf("%q: only %d characters found (wrong page format?)", url, charsFound) - } - - return string(mapping) -} - -func main() { - mibs := map[string]bool{} - all := []string{} - - buf := make([]byte, 8) - fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") - fmt.Printf("package charmap\n\n") - fmt.Printf("import (\n") - fmt.Printf("\t\"golang.org/x/text/encoding\"\n") - fmt.Printf("\t\"golang.org/x/text/encoding/internal/identifier\"\n") - fmt.Printf(")\n\n") - for _, e := range encodings { - varNames := strings.Split(e.varName, ",") - all = append(all, varNames...) - varName := varNames[0] - switch { - case strings.HasPrefix(e.mapping, "http://encoding.spec.whatwg.org/"): - e.mapping = getWHATWG(e.mapping) - case strings.HasPrefix(e.mapping, "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/"): - e.mapping = getUCM(e.mapping) - } - - asciiSuperset, low := strings.HasPrefix(e.mapping, ascii), 0x00 - if asciiSuperset { - low = 0x80 - } - lvn := 1 - if strings.HasPrefix(varName, "ISO") || strings.HasPrefix(varName, "KOI") { - lvn = 3 - } - lowerVarName := strings.ToLower(varName[:lvn]) + varName[lvn:] - fmt.Printf("// %s is the %s encoding.\n", varName, e.name) - if e.comment != "" { - fmt.Printf("//\n// %s\n", e.comment) - } - fmt.Printf("var %s encoding.Encoding = &%s\n\nvar %s = charmap{\nname: %q,\n", - varName, lowerVarName, lowerVarName, e.name) - if mibs[e.mib] { - log.Fatalf("MIB type %q declared multiple times.", e.mib) - } - fmt.Printf("mib: identifier.%s,\n", e.mib) - fmt.Printf("asciiSuperset: %t,\n", asciiSuperset) - fmt.Printf("low: 0x%02x,\n", low) - fmt.Printf("replacement: 0x%02x,\n", e.replacement) - - fmt.Printf("decode: [256]utf8Enc{\n") - i, backMapping := 0, map[rune]byte{} - for _, c := range e.mapping { - if _, ok := backMapping[c]; !ok { - backMapping[c] = byte(i) - } - for j := range buf { - buf[j] = 0 - } - n := utf8.EncodeRune(buf, c) - if n > 3 { - panic(fmt.Sprintf("rune %q (%U) is too long", c, c)) - } - fmt.Printf("{%d,[3]byte{0x%02x,0x%02x,0x%02x}},", n, buf[0], buf[1], buf[2]) - if i%2 == 1 { - fmt.Printf("\n") - } - i++ - } - fmt.Printf("},\n") - - fmt.Printf("encode: [256]uint32{\n") - encode := make([]uint32, 0, 256) - for c, i := range backMapping { - encode = append(encode, uint32(i)<<24|uint32(c)) - } - sort.Sort(byRune(encode)) - for len(encode) < cap(encode) { - encode = append(encode, encode[len(encode)-1]) - } - for i, enc := range encode { - fmt.Printf("0x%08x,", enc) - if i%8 == 7 { - fmt.Printf("\n") - } - } - fmt.Printf("},\n}\n") - } - // TODO: add proper line breaking. - fmt.Printf("var listAll = []encoding.Encoding{\n%s,\n}\n\n", strings.Join(all, ",\n")) -} - -type byRune []uint32 - -func (b byRune) Len() int { return len(b) } -func (b byRune) Less(i, j int) bool { return b[i]&0xffffff < b[j]&0xffffff } -func (b byRune) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap/tables.go deleted file mode 100644 index 74436c57..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap/tables.go +++ /dev/null @@ -1,6000 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -package charmap - -import ( - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier" -) - -// CodePage437 is the Windows Code Page 437 encoding. -var CodePage437 encoding.Encoding = &codePage437 - -var codePage437 = charmap{ - name: "Windows Code Page 437", - mib: identifier.PC8CodePage437, - asciiSuperset: true, - low: 0x80, - replacement: 0x3f, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0x9d0000a5, 0xa60000aa, 0xae0000ab, 0xaa0000ac, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, - 0xab0000bd, 0xa80000bf, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, 0x900000c9, 0xa50000d1, - 0x990000d6, 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e4, 0x860000e5, - 0x910000e6, 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, - 0x8c0000ee, 0x8b0000ef, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, - 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x980000ff, 0x9f000192, 0xe2000393, 0xe9000398, - 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, - 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage850 is the Windows Code Page 850 encoding. -var CodePage850 encoding.Encoding = &codePage850 - -var codePage850 = charmap{ - name: "Windows Code Page 850", - mib: identifier.PC850Multilingual, - asciiSuperset: true, - low: 0x80, - replacement: 0x3f, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc2, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xbe, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, - {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x97}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0xbd0000a2, 0x9c0000a3, 0xcf0000a4, 0xbe0000a5, 0xdd0000a6, 0xf50000a7, - 0xf90000a8, 0xb80000a9, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xa90000ae, 0xee0000af, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xfc0000b3, 0xef0000b4, 0xe60000b5, 0xf40000b6, 0xfa0000b7, - 0xf70000b8, 0xfb0000b9, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xf30000be, 0xa80000bf, - 0xb70000c0, 0xb50000c1, 0xb60000c2, 0xc70000c3, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, - 0xd40000c8, 0x900000c9, 0xd20000ca, 0xd30000cb, 0xde0000cc, 0xd60000cd, 0xd70000ce, 0xd80000cf, - 0xd10000d0, 0xa50000d1, 0xe30000d2, 0xe00000d3, 0xe20000d4, 0xe50000d5, 0x990000d6, 0x9e0000d7, - 0x9d0000d8, 0xeb0000d9, 0xe90000da, 0xea0000db, 0x9a0000dc, 0xed0000dd, 0xe80000de, 0xe10000df, - 0x850000e0, 0xa00000e1, 0x830000e2, 0xc60000e3, 0x840000e4, 0x860000e5, 0x910000e6, 0x870000e7, - 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, 0x8b0000ef, - 0xd00000f0, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0xe40000f5, 0x940000f6, 0xf60000f7, - 0x9b0000f8, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0xec0000fd, 0xe70000fe, 0x980000ff, - 0xd5000131, 0x9f000192, 0xf2002017, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage852 is the Windows Code Page 852 encoding. -var CodePage852 encoding.Encoding = &codePage852 - -var codePage852 = charmap{ - name: "Windows Code Page 852", - mib: identifier.PCp852, - asciiSuperset: true, - low: 0x80, - replacement: 0x3f, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0x82, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc5, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, - {2, [3]byte{0xc4, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc4, 0xbd, 0x00}}, - {2, [3]byte{0xc4, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, - {2, [3]byte{0xc5, 0xa5, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc4, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xbe, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc5, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc5, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xbc, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xc4, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc4, 0x90, 0x00}}, - {2, [3]byte{0xc4, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x8f, 0x00}}, {2, [3]byte{0xc5, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc4, 0x9b, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc5, 0xa2, 0x00}}, - {2, [3]byte{0xc5, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x84, 0x00}}, {2, [3]byte{0xc5, 0x88, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, - {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, - {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xcb, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x99, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xcf0000a4, 0xf50000a7, 0xf90000a8, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xf80000b0, - 0xef0000b4, 0xf70000b8, 0xaf0000bb, 0xb50000c1, 0xb60000c2, 0x8e0000c4, 0x800000c7, 0x900000c9, - 0xd30000cb, 0xd60000cd, 0xd70000ce, 0xe00000d3, 0xe20000d4, 0x990000d6, 0x9e0000d7, 0xe90000da, - 0x9a0000dc, 0xed0000dd, 0xe10000df, 0xa00000e1, 0x830000e2, 0x840000e4, 0x870000e7, 0x820000e9, - 0x890000eb, 0xa10000ed, 0x8c0000ee, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, 0xa30000fa, - 0x810000fc, 0xec0000fd, 0xc6000102, 0xc7000103, 0xa4000104, 0xa5000105, 0x8f000106, 0x86000107, - 0xac00010c, 0x9f00010d, 0xd200010e, 0xd400010f, 0xd1000110, 0xd0000111, 0xa8000118, 0xa9000119, - 0xb700011a, 0xd800011b, 0x91000139, 0x9200013a, 0x9500013d, 0x9600013e, 0x9d000141, 0x88000142, - 0xe3000143, 0xe4000144, 0xd5000147, 0xe5000148, 0x8a000150, 0x8b000151, 0xe8000154, 0xea000155, - 0xfc000158, 0xfd000159, 0x9700015a, 0x9800015b, 0xb800015e, 0xad00015f, 0xe6000160, 0xe7000161, - 0xdd000162, 0xee000163, 0x9b000164, 0x9c000165, 0xde00016e, 0x8500016f, 0xeb000170, 0xfb000171, - 0x8d000179, 0xab00017a, 0xbd00017b, 0xbe00017c, 0xa600017d, 0xa700017e, 0xf30002c7, 0xf40002d8, - 0xfa0002d9, 0xf20002db, 0xf10002dd, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage855 is the Windows Code Page 855 encoding. -var CodePage855 encoding.Encoding = &codePage855 - -var codePage855 = charmap{ - name: "Windows Code Page 855", - mib: identifier.IBM855, - asciiSuperset: true, - low: 0x80, - replacement: 0x3f, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x82, 0x00}}, - {2, [3]byte{0xd1, 0x93, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x91, 0x00}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x84, 0x00}}, - {2, [3]byte{0xd1, 0x95, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x86, 0x00}}, - {2, [3]byte{0xd1, 0x97, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, - {2, [3]byte{0xd1, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x8a, 0x00}}, - {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x8e, 0x00}}, - {2, [3]byte{0xd1, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xae, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0x94, 0x00}}, - {2, [3]byte{0xd0, 0xb5, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xa4, 0x00}}, - {2, [3]byte{0xd0, 0xb3, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0x99, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, - {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd1, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xd0, 0xaf, 0x00}}, {2, [3]byte{0xd1, 0x80, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd0, 0xa1, 0x00}}, {2, [3]byte{0xd1, 0x82, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0xa3, 0x00}}, {2, [3]byte{0xd0, 0xb6, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd1, 0x8c, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x84, 0x96}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0xab, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd0, 0xa9, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xcf0000a4, 0xfd0000a7, 0xae0000ab, 0xf00000ad, 0xaf0000bb, 0x85000401, 0x81000402, - 0x83000403, 0x87000404, 0x89000405, 0x8b000406, 0x8d000407, 0x8f000408, 0x91000409, 0x9300040a, - 0x9500040b, 0x9700040c, 0x9900040e, 0x9b00040f, 0xa1000410, 0xa3000411, 0xec000412, 0xad000413, - 0xa7000414, 0xa9000415, 0xea000416, 0xf4000417, 0xb8000418, 0xbe000419, 0xc700041a, 0xd100041b, - 0xd300041c, 0xd500041d, 0xd700041e, 0xdd00041f, 0xe2000420, 0xe4000421, 0xe6000422, 0xe8000423, - 0xab000424, 0xb6000425, 0xa5000426, 0xfc000427, 0xf6000428, 0xfa000429, 0x9f00042a, 0xf200042b, - 0xee00042c, 0xf800042d, 0x9d00042e, 0xe000042f, 0xa0000430, 0xa2000431, 0xeb000432, 0xac000433, - 0xa6000434, 0xa8000435, 0xe9000436, 0xf3000437, 0xb7000438, 0xbd000439, 0xc600043a, 0xd000043b, - 0xd200043c, 0xd400043d, 0xd600043e, 0xd800043f, 0xe1000440, 0xe3000441, 0xe5000442, 0xe7000443, - 0xaa000444, 0xb5000445, 0xa4000446, 0xfb000447, 0xf5000448, 0xf9000449, 0x9e00044a, 0xf100044b, - 0xed00044c, 0xf700044d, 0x9c00044e, 0xde00044f, 0x84000451, 0x80000452, 0x82000453, 0x86000454, - 0x88000455, 0x8a000456, 0x8c000457, 0x8e000458, 0x90000459, 0x9200045a, 0x9400045b, 0x9600045c, - 0x9800045e, 0x9a00045f, 0xef002116, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage858 is the Windows Code Page 858 encoding. -var CodePage858 encoding.Encoding = &codePage858 - -var codePage858 = charmap{ - name: "Windows Code Page 858", - mib: identifier.IBM00858, - asciiSuperset: true, - low: 0x80, - replacement: 0x3f, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc2, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xbe, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, - {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x97}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0xbd0000a2, 0x9c0000a3, 0xcf0000a4, 0xbe0000a5, 0xdd0000a6, 0xf50000a7, - 0xf90000a8, 0xb80000a9, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xa90000ae, 0xee0000af, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xfc0000b3, 0xef0000b4, 0xe60000b5, 0xf40000b6, 0xfa0000b7, - 0xf70000b8, 0xfb0000b9, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xf30000be, 0xa80000bf, - 0xb70000c0, 0xb50000c1, 0xb60000c2, 0xc70000c3, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, - 0xd40000c8, 0x900000c9, 0xd20000ca, 0xd30000cb, 0xde0000cc, 0xd60000cd, 0xd70000ce, 0xd80000cf, - 0xd10000d0, 0xa50000d1, 0xe30000d2, 0xe00000d3, 0xe20000d4, 0xe50000d5, 0x990000d6, 0x9e0000d7, - 0x9d0000d8, 0xeb0000d9, 0xe90000da, 0xea0000db, 0x9a0000dc, 0xed0000dd, 0xe80000de, 0xe10000df, - 0x850000e0, 0xa00000e1, 0x830000e2, 0xc60000e3, 0x840000e4, 0x860000e5, 0x910000e6, 0x870000e7, - 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, 0x8b0000ef, - 0xd00000f0, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0xe40000f5, 0x940000f6, 0xf60000f7, - 0x9b0000f8, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0xec0000fd, 0xe70000fe, 0x980000ff, - 0x9f000192, 0xf2002017, 0xd50020ac, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage862 is the Windows Code Page 862 encoding. -var CodePage862 encoding.Encoding = &codePage862 - -var codePage862 = charmap{ - name: "Windows Code Page 862", - mib: identifier.PC862LatinHebrew, - asciiSuperset: true, - low: 0x80, - replacement: 0x3f, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, - {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, - {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, - {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, - {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, - {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, - {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, - {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, - {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, - {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, - {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, - {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, - {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, - {2, [3]byte{0xd7, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0x9d0000a5, 0xa60000aa, 0xae0000ab, 0xaa0000ac, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, - 0xab0000bd, 0xa80000bf, 0xa50000d1, 0xe10000df, 0xa00000e1, 0xa10000ed, 0xa40000f1, 0xa20000f3, - 0xf60000f7, 0xa30000fa, 0x9f000192, 0xe2000393, 0xe9000398, 0xe40003a3, 0xe80003a6, 0xea0003a9, - 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, 0xe70003c4, 0xed0003c6, 0x800005d0, - 0x810005d1, 0x820005d2, 0x830005d3, 0x840005d4, 0x850005d5, 0x860005d6, 0x870005d7, 0x880005d8, - 0x890005d9, 0x8a0005da, 0x8b0005db, 0x8c0005dc, 0x8d0005dd, 0x8e0005de, 0x8f0005df, 0x900005e0, - 0x910005e1, 0x920005e2, 0x930005e3, 0x940005e4, 0x950005e5, 0x960005e6, 0x970005e7, 0x980005e8, - 0x990005e9, 0x9a0005ea, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage866 is the IBM Code Page 866 encoding. -var CodePage866 encoding.Encoding = &codePage866 - -var codePage866 = charmap{ - name: "IBM Code Page 866", - mib: identifier.IBM866, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd0, 0x81, 0x00}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x94, 0x00}}, - {2, [3]byte{0xd0, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x9e, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xfd0000a4, 0xf80000b0, 0xfa0000b7, 0xf0000401, 0xf2000404, 0xf4000407, 0xf600040e, - 0x80000410, 0x81000411, 0x82000412, 0x83000413, 0x84000414, 0x85000415, 0x86000416, 0x87000417, - 0x88000418, 0x89000419, 0x8a00041a, 0x8b00041b, 0x8c00041c, 0x8d00041d, 0x8e00041e, 0x8f00041f, - 0x90000420, 0x91000421, 0x92000422, 0x93000423, 0x94000424, 0x95000425, 0x96000426, 0x97000427, - 0x98000428, 0x99000429, 0x9a00042a, 0x9b00042b, 0x9c00042c, 0x9d00042d, 0x9e00042e, 0x9f00042f, - 0xa0000430, 0xa1000431, 0xa2000432, 0xa3000433, 0xa4000434, 0xa5000435, 0xa6000436, 0xa7000437, - 0xa8000438, 0xa9000439, 0xaa00043a, 0xab00043b, 0xac00043c, 0xad00043d, 0xae00043e, 0xaf00043f, - 0xe0000440, 0xe1000441, 0xe2000442, 0xe3000443, 0xe4000444, 0xe5000445, 0xe6000446, 0xe7000447, - 0xe8000448, 0xe9000449, 0xea00044a, 0xeb00044b, 0xec00044c, 0xed00044d, 0xee00044e, 0xef00044f, - 0xf1000451, 0xf3000454, 0xf5000457, 0xf700045e, 0xfc002116, 0xf9002219, 0xfb00221a, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// ISO8859_2 is the ISO 8859-2 encoding. -var ISO8859_2 encoding.Encoding = &iso8859_2 - -var iso8859_2 = charmap{ - name: "ISO 8859-2", - mib: identifier.ISOLatin2, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc5, 0xa0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xbe, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc5, 0xa5, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, - {2, [3]byte{0xc4, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0x8e, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xae, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xb00000b0, 0xb40000b4, 0xb80000b8, - 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc90000c9, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, - 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xda0000da, 0xdc0000dc, 0xdd0000dd, 0xdf0000df, - 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, - 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xfa0000fa, 0xfc0000fc, 0xfd0000fd, 0xc3000102, - 0xe3000103, 0xa1000104, 0xb1000105, 0xc6000106, 0xe6000107, 0xc800010c, 0xe800010d, 0xcf00010e, - 0xef00010f, 0xd0000110, 0xf0000111, 0xca000118, 0xea000119, 0xcc00011a, 0xec00011b, 0xc5000139, - 0xe500013a, 0xa500013d, 0xb500013e, 0xa3000141, 0xb3000142, 0xd1000143, 0xf1000144, 0xd2000147, - 0xf2000148, 0xd5000150, 0xf5000151, 0xc0000154, 0xe0000155, 0xd8000158, 0xf8000159, 0xa600015a, - 0xb600015b, 0xaa00015e, 0xba00015f, 0xa9000160, 0xb9000161, 0xde000162, 0xfe000163, 0xab000164, - 0xbb000165, 0xd900016e, 0xf900016f, 0xdb000170, 0xfb000171, 0xac000179, 0xbc00017a, 0xaf00017b, - 0xbf00017c, 0xae00017d, 0xbe00017e, 0xb70002c7, 0xa20002d8, 0xff0002d9, 0xb20002db, 0xbd0002dd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - }, -} - -// ISO8859_3 is the ISO 8859-3 encoding. -var ISO8859_3 encoding.Encoding = &iso8859_3 - -var iso8859_3 = charmap{ - name: "ISO 8859-3", - mib: identifier.ISOLatin3, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0xa6, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc4, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc4, 0x9e, 0x00}}, - {2, [3]byte{0xc4, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc4, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc4, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0xb5, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x8a, 0x00}}, - {2, [3]byte{0xc4, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc4, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc4, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xac, 0x00}}, - {2, [3]byte{0xc5, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0x9d, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0x9d, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xb00000b0, 0xb20000b2, - 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb70000b7, 0xb80000b8, 0xbd0000bd, 0xc00000c0, 0xc10000c1, - 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, - 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd60000d6, - 0xd70000d7, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, - 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, - 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf60000f6, - 0xf70000f7, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xc6000108, 0xe6000109, 0xc500010a, - 0xe500010b, 0xd800011c, 0xf800011d, 0xab00011e, 0xbb00011f, 0xd5000120, 0xf5000121, 0xa6000124, - 0xb6000125, 0xa1000126, 0xb1000127, 0xa9000130, 0xb9000131, 0xac000134, 0xbc000135, 0xde00015c, - 0xfe00015d, 0xaa00015e, 0xba00015f, 0xdd00016c, 0xfd00016d, 0xaf00017b, 0xbf00017c, 0xa20002d8, - 0xff0002d9, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - }, -} - -// ISO8859_4 is the ISO 8859-4 encoding. -var ISO8859_4 encoding.Encoding = &iso8859_4 - -var iso8859_4 = charmap{ - name: "ISO 8859-4", - mib: identifier.ISOLatin4, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc4, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0x96, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xa8, 0x00}}, - {2, [3]byte{0xc4, 0xbb, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc5, 0xa0, 0x00}}, - {2, [3]byte{0xc4, 0x92, 0x00}}, {2, [3]byte{0xc4, 0xa2, 0x00}}, - {2, [3]byte{0xc5, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x97, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0xbc, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, - {2, [3]byte{0xc4, 0x93, 0x00}}, {2, [3]byte{0xc4, 0xa3, 0x00}}, - {2, [3]byte{0xc5, 0xa7, 0x00}}, {2, [3]byte{0xc5, 0x8a, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0xaa, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xa8, 0x00}}, - {2, [3]byte{0xc5, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x97, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x86, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0xab, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xaf0000af, 0xb00000b0, 0xb40000b4, - 0xb80000b8, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc90000c9, - 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8, - 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, - 0xe50000e5, 0xe60000e6, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xf40000f4, 0xf50000f5, - 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xc0000100, 0xe0000101, - 0xa1000104, 0xb1000105, 0xc800010c, 0xe800010d, 0xd0000110, 0xf0000111, 0xaa000112, 0xba000113, - 0xcc000116, 0xec000117, 0xca000118, 0xea000119, 0xab000122, 0xbb000123, 0xa5000128, 0xb5000129, - 0xcf00012a, 0xef00012b, 0xc700012e, 0xe700012f, 0xd3000136, 0xf3000137, 0xa2000138, 0xa600013b, - 0xb600013c, 0xd1000145, 0xf1000146, 0xbd00014a, 0xbf00014b, 0xd200014c, 0xf200014d, 0xa3000156, - 0xb3000157, 0xa9000160, 0xb9000161, 0xac000166, 0xbc000167, 0xdd000168, 0xfd000169, 0xde00016a, - 0xfe00016b, 0xd9000172, 0xf9000173, 0xae00017d, 0xbe00017e, 0xb70002c7, 0xff0002d9, 0xb20002db, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - }, -} - -// ISO8859_5 is the ISO 8859-5 encoding. -var ISO8859_5 encoding.Encoding = &iso8859_5 - -var iso8859_5 = charmap{ - name: "ISO 8859-5", - mib: identifier.ISOLatinCyrillic, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd0, 0x82, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {2, [3]byte{0xd0, 0x88, 0x00}}, {2, [3]byte{0xd0, 0x89, 0x00}}, - {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {2, [3]byte{0xd1, 0x93, 0x00}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xd1, 0x95, 0x00}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd1, 0x99, 0x00}}, - {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd1, 0x9b, 0x00}}, - {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xfd0000a7, 0xad0000ad, 0xa1000401, 0xa2000402, 0xa3000403, 0xa4000404, 0xa5000405, - 0xa6000406, 0xa7000407, 0xa8000408, 0xa9000409, 0xaa00040a, 0xab00040b, 0xac00040c, 0xae00040e, - 0xaf00040f, 0xb0000410, 0xb1000411, 0xb2000412, 0xb3000413, 0xb4000414, 0xb5000415, 0xb6000416, - 0xb7000417, 0xb8000418, 0xb9000419, 0xba00041a, 0xbb00041b, 0xbc00041c, 0xbd00041d, 0xbe00041e, - 0xbf00041f, 0xc0000420, 0xc1000421, 0xc2000422, 0xc3000423, 0xc4000424, 0xc5000425, 0xc6000426, - 0xc7000427, 0xc8000428, 0xc9000429, 0xca00042a, 0xcb00042b, 0xcc00042c, 0xcd00042d, 0xce00042e, - 0xcf00042f, 0xd0000430, 0xd1000431, 0xd2000432, 0xd3000433, 0xd4000434, 0xd5000435, 0xd6000436, - 0xd7000437, 0xd8000438, 0xd9000439, 0xda00043a, 0xdb00043b, 0xdc00043c, 0xdd00043d, 0xde00043e, - 0xdf00043f, 0xe0000440, 0xe1000441, 0xe2000442, 0xe3000443, 0xe4000444, 0xe5000445, 0xe6000446, - 0xe7000447, 0xe8000448, 0xe9000449, 0xea00044a, 0xeb00044b, 0xec00044c, 0xed00044d, 0xee00044e, - 0xef00044f, 0xf1000451, 0xf2000452, 0xf3000453, 0xf4000454, 0xf5000455, 0xf6000456, 0xf7000457, - 0xf8000458, 0xf9000459, 0xfa00045a, 0xfb00045b, 0xfc00045c, 0xfe00045e, 0xff00045f, 0xf0002116, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - }, -} - -// ISO8859_6 is the ISO 8859-6 encoding. -var ISO8859_6 encoding.Encoding = &iso8859_6 - -var iso8859_6 = charmap{ - name: "ISO 8859-6", - mib: identifier.ISOLatinArabic, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xd8, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0x9b, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0x9f, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0xa1, 0x00}}, - {2, [3]byte{0xd8, 0xa2, 0x00}}, {2, [3]byte{0xd8, 0xa3, 0x00}}, - {2, [3]byte{0xd8, 0xa4, 0x00}}, {2, [3]byte{0xd8, 0xa5, 0x00}}, - {2, [3]byte{0xd8, 0xa6, 0x00}}, {2, [3]byte{0xd8, 0xa7, 0x00}}, - {2, [3]byte{0xd8, 0xa8, 0x00}}, {2, [3]byte{0xd8, 0xa9, 0x00}}, - {2, [3]byte{0xd8, 0xaa, 0x00}}, {2, [3]byte{0xd8, 0xab, 0x00}}, - {2, [3]byte{0xd8, 0xac, 0x00}}, {2, [3]byte{0xd8, 0xad, 0x00}}, - {2, [3]byte{0xd8, 0xae, 0x00}}, {2, [3]byte{0xd8, 0xaf, 0x00}}, - {2, [3]byte{0xd8, 0xb0, 0x00}}, {2, [3]byte{0xd8, 0xb1, 0x00}}, - {2, [3]byte{0xd8, 0xb2, 0x00}}, {2, [3]byte{0xd8, 0xb3, 0x00}}, - {2, [3]byte{0xd8, 0xb4, 0x00}}, {2, [3]byte{0xd8, 0xb5, 0x00}}, - {2, [3]byte{0xd8, 0xb6, 0x00}}, {2, [3]byte{0xd8, 0xb7, 0x00}}, - {2, [3]byte{0xd8, 0xb8, 0x00}}, {2, [3]byte{0xd8, 0xb9, 0x00}}, - {2, [3]byte{0xd8, 0xba, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xd9, 0x80, 0x00}}, {2, [3]byte{0xd9, 0x81, 0x00}}, - {2, [3]byte{0xd9, 0x82, 0x00}}, {2, [3]byte{0xd9, 0x83, 0x00}}, - {2, [3]byte{0xd9, 0x84, 0x00}}, {2, [3]byte{0xd9, 0x85, 0x00}}, - {2, [3]byte{0xd9, 0x86, 0x00}}, {2, [3]byte{0xd9, 0x87, 0x00}}, - {2, [3]byte{0xd9, 0x88, 0x00}}, {2, [3]byte{0xd9, 0x89, 0x00}}, - {2, [3]byte{0xd9, 0x8a, 0x00}}, {2, [3]byte{0xd9, 0x8b, 0x00}}, - {2, [3]byte{0xd9, 0x8c, 0x00}}, {2, [3]byte{0xd9, 0x8d, 0x00}}, - {2, [3]byte{0xd9, 0x8e, 0x00}}, {2, [3]byte{0xd9, 0x8f, 0x00}}, - {2, [3]byte{0xd9, 0x90, 0x00}}, {2, [3]byte{0xd9, 0x91, 0x00}}, - {2, [3]byte{0xd9, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xad0000ad, 0xac00060c, 0xbb00061b, 0xbf00061f, 0xc1000621, 0xc2000622, - 0xc3000623, 0xc4000624, 0xc5000625, 0xc6000626, 0xc7000627, 0xc8000628, 0xc9000629, 0xca00062a, - 0xcb00062b, 0xcc00062c, 0xcd00062d, 0xce00062e, 0xcf00062f, 0xd0000630, 0xd1000631, 0xd2000632, - 0xd3000633, 0xd4000634, 0xd5000635, 0xd6000636, 0xd7000637, 0xd8000638, 0xd9000639, 0xda00063a, - 0xe0000640, 0xe1000641, 0xe2000642, 0xe3000643, 0xe4000644, 0xe5000645, 0xe6000646, 0xe7000647, - 0xe8000648, 0xe9000649, 0xea00064a, 0xeb00064b, 0xec00064c, 0xed00064d, 0xee00064e, 0xef00064f, - 0xf0000650, 0xf1000651, 0xf2000652, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - }, -} - -// ISO8859_7 is the ISO 8859-7 encoding. -var ISO8859_7 encoding.Encoding = &iso8859_7 - -var iso8859_7 = charmap{ - name: "ISO 8859-7", - mib: identifier.ISOLatinGreek, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x82, 0xaf}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xcd, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x95}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0x84, 0x00}}, {2, [3]byte{0xce, 0x85, 0x00}}, - {2, [3]byte{0xce, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0x88, 0x00}}, {2, [3]byte{0xce, 0x89, 0x00}}, - {2, [3]byte{0xce, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0x8e, 0x00}}, {2, [3]byte{0xce, 0x8f, 0x00}}, - {2, [3]byte{0xce, 0x90, 0x00}}, {2, [3]byte{0xce, 0x91, 0x00}}, - {2, [3]byte{0xce, 0x92, 0x00}}, {2, [3]byte{0xce, 0x93, 0x00}}, - {2, [3]byte{0xce, 0x94, 0x00}}, {2, [3]byte{0xce, 0x95, 0x00}}, - {2, [3]byte{0xce, 0x96, 0x00}}, {2, [3]byte{0xce, 0x97, 0x00}}, - {2, [3]byte{0xce, 0x98, 0x00}}, {2, [3]byte{0xce, 0x99, 0x00}}, - {2, [3]byte{0xce, 0x9a, 0x00}}, {2, [3]byte{0xce, 0x9b, 0x00}}, - {2, [3]byte{0xce, 0x9c, 0x00}}, {2, [3]byte{0xce, 0x9d, 0x00}}, - {2, [3]byte{0xce, 0x9e, 0x00}}, {2, [3]byte{0xce, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0xa0, 0x00}}, {2, [3]byte{0xce, 0xa1, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xce, 0xa3, 0x00}}, - {2, [3]byte{0xce, 0xa4, 0x00}}, {2, [3]byte{0xce, 0xa5, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0xa7, 0x00}}, - {2, [3]byte{0xce, 0xa8, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, - {2, [3]byte{0xce, 0xaa, 0x00}}, {2, [3]byte{0xce, 0xab, 0x00}}, - {2, [3]byte{0xce, 0xac, 0x00}}, {2, [3]byte{0xce, 0xad, 0x00}}, - {2, [3]byte{0xce, 0xae, 0x00}}, {2, [3]byte{0xce, 0xaf, 0x00}}, - {2, [3]byte{0xce, 0xb0, 0x00}}, {2, [3]byte{0xce, 0xb1, 0x00}}, - {2, [3]byte{0xce, 0xb2, 0x00}}, {2, [3]byte{0xce, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0xb4, 0x00}}, {2, [3]byte{0xce, 0xb5, 0x00}}, - {2, [3]byte{0xce, 0xb6, 0x00}}, {2, [3]byte{0xce, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0xb8, 0x00}}, {2, [3]byte{0xce, 0xb9, 0x00}}, - {2, [3]byte{0xce, 0xba, 0x00}}, {2, [3]byte{0xce, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0xbc, 0x00}}, {2, [3]byte{0xce, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0xbe, 0x00}}, {2, [3]byte{0xce, 0xbf, 0x00}}, - {2, [3]byte{0xcf, 0x80, 0x00}}, {2, [3]byte{0xcf, 0x81, 0x00}}, - {2, [3]byte{0xcf, 0x82, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xcf, 0x84, 0x00}}, {2, [3]byte{0xcf, 0x85, 0x00}}, - {2, [3]byte{0xcf, 0x86, 0x00}}, {2, [3]byte{0xcf, 0x87, 0x00}}, - {2, [3]byte{0xcf, 0x88, 0x00}}, {2, [3]byte{0xcf, 0x89, 0x00}}, - {2, [3]byte{0xcf, 0x8a, 0x00}}, {2, [3]byte{0xcf, 0x8b, 0x00}}, - {2, [3]byte{0xcf, 0x8c, 0x00}}, {2, [3]byte{0xcf, 0x8d, 0x00}}, - {2, [3]byte{0xcf, 0x8e, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, 0xab0000ab, 0xac0000ac, - 0xad0000ad, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb70000b7, 0xbb0000bb, 0xbd0000bd, - 0xaa00037a, 0xb4000384, 0xb5000385, 0xb6000386, 0xb8000388, 0xb9000389, 0xba00038a, 0xbc00038c, - 0xbe00038e, 0xbf00038f, 0xc0000390, 0xc1000391, 0xc2000392, 0xc3000393, 0xc4000394, 0xc5000395, - 0xc6000396, 0xc7000397, 0xc8000398, 0xc9000399, 0xca00039a, 0xcb00039b, 0xcc00039c, 0xcd00039d, - 0xce00039e, 0xcf00039f, 0xd00003a0, 0xd10003a1, 0xd30003a3, 0xd40003a4, 0xd50003a5, 0xd60003a6, - 0xd70003a7, 0xd80003a8, 0xd90003a9, 0xda0003aa, 0xdb0003ab, 0xdc0003ac, 0xdd0003ad, 0xde0003ae, - 0xdf0003af, 0xe00003b0, 0xe10003b1, 0xe20003b2, 0xe30003b3, 0xe40003b4, 0xe50003b5, 0xe60003b6, - 0xe70003b7, 0xe80003b8, 0xe90003b9, 0xea0003ba, 0xeb0003bb, 0xec0003bc, 0xed0003bd, 0xee0003be, - 0xef0003bf, 0xf00003c0, 0xf10003c1, 0xf20003c2, 0xf30003c3, 0xf40003c4, 0xf50003c5, 0xf60003c6, - 0xf70003c7, 0xf80003c8, 0xf90003c9, 0xfa0003ca, 0xfb0003cb, 0xfc0003cc, 0xfd0003cd, 0xfe0003ce, - 0xaf002015, 0xa1002018, 0xa2002019, 0xa40020ac, 0xa50020af, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - }, -} - -// ISO8859_8 is the ISO 8859-8 encoding. -var ISO8859_8 encoding.Encoding = &iso8859_8 - -var iso8859_8 = charmap{ - name: "ISO 8859-8", - mib: identifier.ISOLatinHebrew, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x97}}, - {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, - {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, - {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, - {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, - {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, - {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, - {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, - {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, - {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, - {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, - {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, - {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, - {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, - {2, [3]byte{0xd7, 0xaa, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, - {3, [3]byte{0xe2, 0x80, 0x8f}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, - 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, - 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, - 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xaa0000d7, 0xba0000f7, 0xe00005d0, 0xe10005d1, - 0xe20005d2, 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9, - 0xea0005da, 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1, - 0xf20005e2, 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9, - 0xfa0005ea, 0xfd00200e, 0xfe00200f, 0xdf002017, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - }, -} - -// ISO8859_10 is the ISO 8859-10 encoding. -var ISO8859_10 encoding.Encoding = &iso8859_10 - -var iso8859_10 = charmap{ - name: "ISO 8859-10", - mib: identifier.ISOLatin6, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc4, 0x92, 0x00}}, {2, [3]byte{0xc4, 0xa2, 0x00}}, - {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xa8, 0x00}}, - {2, [3]byte{0xc4, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc4, 0xbb, 0x00}}, {2, [3]byte{0xc4, 0x90, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0xa6, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xaa, 0x00}}, {2, [3]byte{0xc5, 0x8a, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xc4, 0x93, 0x00}}, {2, [3]byte{0xc4, 0xa3, 0x00}}, - {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0x91, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x95}}, - {2, [3]byte{0xc5, 0xab, 0x00}}, {2, [3]byte{0xc5, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc5, 0xa8, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x97, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc5, 0x86, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc5, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc4, 0xb8, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa70000a7, 0xad0000ad, 0xb00000b0, 0xb70000b7, 0xc10000c1, 0xc20000c2, 0xc30000c3, - 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc90000c9, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd80000d8, 0xda0000da, 0xdb0000db, - 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, - 0xe50000e5, 0xe60000e6, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf00000f0, - 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf80000f8, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, - 0xfd0000fd, 0xfe0000fe, 0xc0000100, 0xe0000101, 0xa1000104, 0xb1000105, 0xc800010c, 0xe800010d, - 0xa9000110, 0xb9000111, 0xa2000112, 0xb2000113, 0xcc000116, 0xec000117, 0xca000118, 0xea000119, - 0xa3000122, 0xb3000123, 0xa5000128, 0xb5000129, 0xa400012a, 0xb400012b, 0xc700012e, 0xe700012f, - 0xa6000136, 0xb6000137, 0xff000138, 0xa800013b, 0xb800013c, 0xd1000145, 0xf1000146, 0xaf00014a, - 0xbf00014b, 0xd200014c, 0xf200014d, 0xaa000160, 0xba000161, 0xab000166, 0xbb000167, 0xd7000168, - 0xf7000169, 0xae00016a, 0xbe00016b, 0xd9000172, 0xf9000173, 0xac00017d, 0xbc00017e, 0xbd002015, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - }, -} - -// ISO8859_13 is the ISO 8859-13 encoding. -var ISO8859_13 encoding.Encoding = &iso8859_13 - -var iso8859_13 = charmap{ - name: "ISO 8859-13", - mib: identifier.ISO885913, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc3, 0x86, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9c}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc5, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x92, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc4, 0x96, 0x00}}, - {2, [3]byte{0xc4, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, - {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x85, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0xb2, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xaa, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc4, 0x93, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc4, 0x97, 0x00}}, - {2, [3]byte{0xc4, 0xa3, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xb3, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x99}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa90000a9, 0xab0000ab, - 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb50000b5, - 0xb60000b6, 0xb70000b7, 0xb90000b9, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xc40000c4, - 0xc50000c5, 0xaf0000c6, 0xc90000c9, 0xd30000d3, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xa80000d8, - 0xdc0000dc, 0xdf0000df, 0xe40000e4, 0xe50000e5, 0xbf0000e6, 0xe90000e9, 0xf30000f3, 0xf50000f5, - 0xf60000f6, 0xf70000f7, 0xb80000f8, 0xfc0000fc, 0xc2000100, 0xe2000101, 0xc0000104, 0xe0000105, - 0xc3000106, 0xe3000107, 0xc800010c, 0xe800010d, 0xc7000112, 0xe7000113, 0xcb000116, 0xeb000117, - 0xc6000118, 0xe6000119, 0xcc000122, 0xec000123, 0xce00012a, 0xee00012b, 0xc100012e, 0xe100012f, - 0xcd000136, 0xed000137, 0xcf00013b, 0xef00013c, 0xd9000141, 0xf9000142, 0xd1000143, 0xf1000144, - 0xd2000145, 0xf2000146, 0xd400014c, 0xf400014d, 0xaa000156, 0xba000157, 0xda00015a, 0xfa00015b, - 0xd0000160, 0xf0000161, 0xdb00016a, 0xfb00016b, 0xd8000172, 0xf8000173, 0xca000179, 0xea00017a, - 0xdd00017b, 0xfd00017c, 0xde00017d, 0xfe00017e, 0xff002019, 0xb400201c, 0xa100201d, 0xa500201e, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - }, -} - -// ISO8859_14 is the ISO 8859-14 encoding. -var ISO8859_14 encoding.Encoding = &iso8859_14 - -var iso8859_14 = charmap{ - name: "ISO 8859-14", - mib: identifier.ISO885914, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe1, 0xb8, 0x82}}, - {3, [3]byte{0xe1, 0xb8, 0x83}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc4, 0x8a, 0x00}}, {2, [3]byte{0xc4, 0x8b, 0x00}}, - {3, [3]byte{0xe1, 0xb8, 0x8a}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {3, [3]byte{0xe1, 0xba, 0x80}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xe1, 0xba, 0x82}}, {3, [3]byte{0xe1, 0xb8, 0x8b}}, - {3, [3]byte{0xe1, 0xbb, 0xb2}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {3, [3]byte{0xe1, 0xb8, 0x9e}}, {3, [3]byte{0xe1, 0xb8, 0x9f}}, - {2, [3]byte{0xc4, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0xa1, 0x00}}, - {3, [3]byte{0xe1, 0xb9, 0x80}}, {3, [3]byte{0xe1, 0xb9, 0x81}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0x96}}, - {3, [3]byte{0xe1, 0xba, 0x81}}, {3, [3]byte{0xe1, 0xb9, 0x97}}, - {3, [3]byte{0xe1, 0xba, 0x83}}, {3, [3]byte{0xe1, 0xb9, 0xa0}}, - {3, [3]byte{0xe1, 0xbb, 0xb3}}, {3, [3]byte{0xe1, 0xba, 0x84}}, - {3, [3]byte{0xe1, 0xba, 0x85}}, {3, [3]byte{0xe1, 0xb9, 0xa1}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc5, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0xaa}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc5, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0xab}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa70000a7, 0xa90000a9, 0xad0000ad, 0xae0000ae, 0xb60000b6, 0xc00000c0, - 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, 0xc80000c8, - 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, - 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd80000d8, 0xd90000d9, 0xda0000da, - 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, - 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, - 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, - 0xf50000f5, 0xf60000f6, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, - 0xff0000ff, 0xa400010a, 0xa500010b, 0xb2000120, 0xb3000121, 0xd0000174, 0xf0000175, 0xde000176, - 0xfe000177, 0xaf000178, 0xa1001e02, 0xa2001e03, 0xa6001e0a, 0xab001e0b, 0xb0001e1e, 0xb1001e1f, - 0xb4001e40, 0xb5001e41, 0xb7001e56, 0xb9001e57, 0xbb001e60, 0xbf001e61, 0xd7001e6a, 0xf7001e6b, - 0xa8001e80, 0xb8001e81, 0xaa001e82, 0xba001e83, 0xbd001e84, 0xbe001e85, 0xac001ef2, 0xbc001ef3, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - }, -} - -// ISO8859_15 is the ISO 8859-15 encoding. -var ISO8859_15 encoding.Encoding = &iso8859_15 - -var iso8859_15 = charmap{ - name: "ISO 8859-15", - mib: identifier.ISO885915, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa50000a5, 0xa70000a7, 0xa90000a9, 0xaa0000aa, - 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, 0xb20000b2, - 0xb30000b3, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, - 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, - 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, - 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, - 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, - 0xbc000152, 0xbd000153, 0xa6000160, 0xa8000161, 0xbe000178, 0xb400017d, 0xb800017e, 0xa40020ac, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - }, -} - -// ISO8859_16 is the ISO 8859-16 encoding. -var ISO8859_16 encoding.Encoding = &iso8859_16 - -var iso8859_16 = charmap{ - name: "ISO 8859-16", - mib: identifier.ISO885916, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc8, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc4, 0x8d, 0x00}}, - {2, [3]byte{0xc8, 0x99, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc5, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0x98, 0x00}}, - {2, [3]byte{0xc8, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc5, 0x9b, 0x00}}, - {2, [3]byte{0xc5, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0x99, 0x00}}, - {2, [3]byte{0xc8, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa70000a7, 0xa90000a9, 0xab0000ab, 0xad0000ad, 0xb00000b0, 0xb10000b1, 0xb60000b6, - 0xb70000b7, 0xbb0000bb, 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, - 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe60000e6, 0xe70000e7, 0xe80000e8, - 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf20000f2, - 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xff0000ff, - 0xc3000102, 0xe3000103, 0xa1000104, 0xa2000105, 0xc5000106, 0xe5000107, 0xb200010c, 0xb900010d, - 0xd0000110, 0xf0000111, 0xdd000118, 0xfd000119, 0xa3000141, 0xb3000142, 0xd1000143, 0xf1000144, - 0xd5000150, 0xf5000151, 0xbc000152, 0xbd000153, 0xd700015a, 0xf700015b, 0xa6000160, 0xa8000161, - 0xd8000170, 0xf8000171, 0xbe000178, 0xac000179, 0xae00017a, 0xaf00017b, 0xbf00017c, 0xb400017d, - 0xb800017e, 0xaa000218, 0xba000219, 0xde00021a, 0xfe00021b, 0xb500201d, 0xa500201e, 0xa40020ac, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, 0x8000fffd, - }, -} - -// KOI8R is the KOI8-R encoding. -var KOI8R encoding.Encoding = &koi8R - -var koi8R = charmap{ - name: "KOI8-R", - mib: identifier.KOI8R, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x9c}}, {3, [3]byte{0xe2, 0x94, 0xa4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xbc}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x90}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x8c, 0xa0}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {3, [3]byte{0xe2, 0x88, 0x9a}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x90}}, {3, [3]byte{0xe2, 0x95, 0x91}}, - {3, [3]byte{0xe2, 0x95, 0x92}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x97}}, {3, [3]byte{0xe2, 0x95, 0x98}}, - {3, [3]byte{0xe2, 0x95, 0x99}}, {3, [3]byte{0xe2, 0x95, 0x9a}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9e}}, - {3, [3]byte{0xe2, 0x95, 0x9f}}, {3, [3]byte{0xe2, 0x95, 0xa0}}, - {3, [3]byte{0xe2, 0x95, 0xa1}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa5}}, - {3, [3]byte{0xe2, 0x95, 0xa6}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa9}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xb0, 0x00}}, - {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd1, 0x86, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd1, 0x85, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, - {2, [3]byte{0xd0, 0xb9, 0x00}}, {2, [3]byte{0xd0, 0xba, 0x00}}, - {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0xbc, 0x00}}, - {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0xbe, 0x00}}, - {2, [3]byte{0xd0, 0xbf, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0xb7, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, - {2, [3]byte{0xd1, 0x8d, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x8a, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0x91, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0x98, 0x00}}, - {2, [3]byte{0xd0, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, - {2, [3]byte{0xd0, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, - {2, [3]byte{0xd0, 0x9d, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x92, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd0, 0xa8, 0x00}}, - {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x9a0000a0, 0xbf0000a9, 0x9c0000b0, 0x9d0000b2, 0x9e0000b7, 0x9f0000f7, 0xb3000401, 0xe1000410, - 0xe2000411, 0xf7000412, 0xe7000413, 0xe4000414, 0xe5000415, 0xf6000416, 0xfa000417, 0xe9000418, - 0xea000419, 0xeb00041a, 0xec00041b, 0xed00041c, 0xee00041d, 0xef00041e, 0xf000041f, 0xf2000420, - 0xf3000421, 0xf4000422, 0xf5000423, 0xe6000424, 0xe8000425, 0xe3000426, 0xfe000427, 0xfb000428, - 0xfd000429, 0xff00042a, 0xf900042b, 0xf800042c, 0xfc00042d, 0xe000042e, 0xf100042f, 0xc1000430, - 0xc2000431, 0xd7000432, 0xc7000433, 0xc4000434, 0xc5000435, 0xd6000436, 0xda000437, 0xc9000438, - 0xca000439, 0xcb00043a, 0xcc00043b, 0xcd00043c, 0xce00043d, 0xcf00043e, 0xd000043f, 0xd2000440, - 0xd3000441, 0xd4000442, 0xd5000443, 0xc6000444, 0xc8000445, 0xc3000446, 0xde000447, 0xdb000448, - 0xdd000449, 0xdf00044a, 0xd900044b, 0xd800044c, 0xdc00044d, 0xc000044e, 0xd100044f, 0xa3000451, - 0x95002219, 0x9600221a, 0x97002248, 0x98002264, 0x99002265, 0x93002320, 0x9b002321, 0x80002500, - 0x81002502, 0x8200250c, 0x83002510, 0x84002514, 0x85002518, 0x8600251c, 0x87002524, 0x8800252c, - 0x89002534, 0x8a00253c, 0xa0002550, 0xa1002551, 0xa2002552, 0xa4002553, 0xa5002554, 0xa6002555, - 0xa7002556, 0xa8002557, 0xa9002558, 0xaa002559, 0xab00255a, 0xac00255b, 0xad00255c, 0xae00255d, - 0xaf00255e, 0xb000255f, 0xb1002560, 0xb2002561, 0xb4002562, 0xb5002563, 0xb6002564, 0xb7002565, - 0xb8002566, 0xb9002567, 0xba002568, 0xbb002569, 0xbc00256a, 0xbd00256b, 0xbe00256c, 0x8b002580, - 0x8c002584, 0x8d002588, 0x8e00258c, 0x8f002590, 0x90002591, 0x91002592, 0x92002593, 0x940025a0, - }, -} - -// KOI8U is the KOI8-U encoding. -var KOI8U encoding.Encoding = &koi8U - -var koi8U = charmap{ - name: "KOI8-U", - mib: identifier.KOI8U, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x9c}}, {3, [3]byte{0xe2, 0x94, 0xa4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xbc}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x90}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x8c, 0xa0}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {3, [3]byte{0xe2, 0x88, 0x9a}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x90}}, {3, [3]byte{0xe2, 0x95, 0x91}}, - {3, [3]byte{0xe2, 0x95, 0x92}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x97}}, {3, [3]byte{0xe2, 0x95, 0x98}}, - {3, [3]byte{0xe2, 0x95, 0x99}}, {3, [3]byte{0xe2, 0x95, 0x9a}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {2, [3]byte{0xd2, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {3, [3]byte{0xe2, 0x95, 0x9e}}, - {3, [3]byte{0xe2, 0x95, 0x9f}}, {3, [3]byte{0xe2, 0x95, 0xa0}}, - {3, [3]byte{0xe2, 0x95, 0xa1}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0xa6}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa9}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {2, [3]byte{0xd2, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xb0, 0x00}}, - {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd1, 0x86, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd1, 0x85, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, - {2, [3]byte{0xd0, 0xb9, 0x00}}, {2, [3]byte{0xd0, 0xba, 0x00}}, - {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0xbc, 0x00}}, - {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0xbe, 0x00}}, - {2, [3]byte{0xd0, 0xbf, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0xb7, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, - {2, [3]byte{0xd1, 0x8d, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x8a, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0x91, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0x98, 0x00}}, - {2, [3]byte{0xd0, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, - {2, [3]byte{0xd0, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, - {2, [3]byte{0xd0, 0x9d, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x92, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd0, 0xa8, 0x00}}, - {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x9a0000a0, 0xbf0000a9, 0x9c0000b0, 0x9d0000b2, 0x9e0000b7, 0x9f0000f7, 0xb3000401, 0xb4000404, - 0xb6000406, 0xb7000407, 0xbe00040e, 0xe1000410, 0xe2000411, 0xf7000412, 0xe7000413, 0xe4000414, - 0xe5000415, 0xf6000416, 0xfa000417, 0xe9000418, 0xea000419, 0xeb00041a, 0xec00041b, 0xed00041c, - 0xee00041d, 0xef00041e, 0xf000041f, 0xf2000420, 0xf3000421, 0xf4000422, 0xf5000423, 0xe6000424, - 0xe8000425, 0xe3000426, 0xfe000427, 0xfb000428, 0xfd000429, 0xff00042a, 0xf900042b, 0xf800042c, - 0xfc00042d, 0xe000042e, 0xf100042f, 0xc1000430, 0xc2000431, 0xd7000432, 0xc7000433, 0xc4000434, - 0xc5000435, 0xd6000436, 0xda000437, 0xc9000438, 0xca000439, 0xcb00043a, 0xcc00043b, 0xcd00043c, - 0xce00043d, 0xcf00043e, 0xd000043f, 0xd2000440, 0xd3000441, 0xd4000442, 0xd5000443, 0xc6000444, - 0xc8000445, 0xc3000446, 0xde000447, 0xdb000448, 0xdd000449, 0xdf00044a, 0xd900044b, 0xd800044c, - 0xdc00044d, 0xc000044e, 0xd100044f, 0xa3000451, 0xa4000454, 0xa6000456, 0xa7000457, 0xae00045e, - 0xbd000490, 0xad000491, 0x95002219, 0x9600221a, 0x97002248, 0x98002264, 0x99002265, 0x93002320, - 0x9b002321, 0x80002500, 0x81002502, 0x8200250c, 0x83002510, 0x84002514, 0x85002518, 0x8600251c, - 0x87002524, 0x8800252c, 0x89002534, 0x8a00253c, 0xa0002550, 0xa1002551, 0xa2002552, 0xa5002554, - 0xa8002557, 0xa9002558, 0xaa002559, 0xab00255a, 0xac00255b, 0xaf00255e, 0xb000255f, 0xb1002560, - 0xb2002561, 0xb5002563, 0xb8002566, 0xb9002567, 0xba002568, 0xbb002569, 0xbc00256a, 0x8b002580, - 0x8c002584, 0x8d002588, 0x8e00258c, 0x8f002590, 0x90002591, 0x91002592, 0x92002593, 0x940025a0, - }, -} - -// Macintosh is the Macintosh encoding. -var Macintosh encoding.Encoding = &macintosh - -var macintosh = charmap{ - name: "Macintosh", - mib: identifier.Macintosh, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x91, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa8, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {2, [3]byte{0xc2, 0xb0, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0xa2}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {3, [3]byte{0xe2, 0x89, 0xa0}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x82}}, {3, [3]byte{0xe2, 0x88, 0x91}}, - {3, [3]byte{0xe2, 0x88, 0x8f}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0xab}}, {2, [3]byte{0xc2, 0xaa, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {2, [3]byte{0xc6, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x88, 0x86}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xbb, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xe2, 0x80, 0x9c}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {3, [3]byte{0xe2, 0x80, 0x98}}, {3, [3]byte{0xe2, 0x80, 0x99}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x97, 0x8a}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {3, [3]byte{0xe2, 0x81, 0x84}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - {3, [3]byte{0xe2, 0x80, 0xb9}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xac, 0x81}}, {3, [3]byte{0xef, 0xac, 0x82}}, - {3, [3]byte{0xe2, 0x80, 0xa1}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {3, [3]byte{0xe2, 0x80, 0xb0}}, {2, [3]byte{0xc3, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x8b, 0x00}}, {2, [3]byte{0xc3, 0x88, 0x00}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0x8f, 0x00}}, {2, [3]byte{0xc3, 0x8c, 0x00}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, - {3, [3]byte{0xef, 0xa3, 0xbf}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x99, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {2, [3]byte{0xcb, 0x9c, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xcb, 0x98, 0x00}}, - {2, [3]byte{0xcb, 0x99, 0x00}}, {2, [3]byte{0xcb, 0x9a, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xca0000a0, 0xc10000a1, 0xa20000a2, 0xa30000a3, 0xb40000a5, 0xa40000a7, 0xac0000a8, 0xa90000a9, - 0xbb0000aa, 0xc70000ab, 0xc20000ac, 0xa80000ae, 0xf80000af, 0xa10000b0, 0xb10000b1, 0xab0000b4, - 0xb50000b5, 0xa60000b6, 0xe10000b7, 0xfc0000b8, 0xbc0000ba, 0xc80000bb, 0xc00000bf, 0xcb0000c0, - 0xe70000c1, 0xe50000c2, 0xcc0000c3, 0x800000c4, 0x810000c5, 0xae0000c6, 0x820000c7, 0xe90000c8, - 0x830000c9, 0xe60000ca, 0xe80000cb, 0xed0000cc, 0xea0000cd, 0xeb0000ce, 0xec0000cf, 0x840000d1, - 0xf10000d2, 0xee0000d3, 0xef0000d4, 0xcd0000d5, 0x850000d6, 0xaf0000d8, 0xf40000d9, 0xf20000da, - 0xf30000db, 0x860000dc, 0xa70000df, 0x880000e0, 0x870000e1, 0x890000e2, 0x8b0000e3, 0x8a0000e4, - 0x8c0000e5, 0xbe0000e6, 0x8d0000e7, 0x8f0000e8, 0x8e0000e9, 0x900000ea, 0x910000eb, 0x930000ec, - 0x920000ed, 0x940000ee, 0x950000ef, 0x960000f1, 0x980000f2, 0x970000f3, 0x990000f4, 0x9b0000f5, - 0x9a0000f6, 0xd60000f7, 0xbf0000f8, 0x9d0000f9, 0x9c0000fa, 0x9e0000fb, 0x9f0000fc, 0xd80000ff, - 0xf5000131, 0xce000152, 0xcf000153, 0xd9000178, 0xc4000192, 0xf60002c6, 0xff0002c7, 0xf90002d8, - 0xfa0002d9, 0xfb0002da, 0xfe0002db, 0xf70002dc, 0xfd0002dd, 0xbd0003a9, 0xb90003c0, 0xd0002013, - 0xd1002014, 0xd4002018, 0xd5002019, 0xe200201a, 0xd200201c, 0xd300201d, 0xe300201e, 0xa0002020, - 0xe0002021, 0xa5002022, 0xc9002026, 0xe4002030, 0xdc002039, 0xdd00203a, 0xda002044, 0xdb0020ac, - 0xaa002122, 0xb6002202, 0xc6002206, 0xb800220f, 0xb7002211, 0xc300221a, 0xb000221e, 0xba00222b, - 0xc5002248, 0xad002260, 0xb2002264, 0xb3002265, 0xd70025ca, 0xf000f8ff, 0xde00fb01, 0xdf00fb02, - }, -} - -// MacintoshCyrillic is the Macintosh Cyrillic encoding. -var MacintoshCyrillic encoding.Encoding = &macintoshCyrillic - -var macintoshCyrillic = charmap{ - name: "Macintosh Cyrillic", - mib: identifier.MacintoshCyrillic, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {2, [3]byte{0xc2, 0xb0, 0x00}}, - {2, [3]byte{0xd2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0x86, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0xa2}}, {2, [3]byte{0xd0, 0x82, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0xa0}}, - {2, [3]byte{0xd0, 0x83, 0x00}}, {2, [3]byte{0xd1, 0x93, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xd2, 0x91, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x94, 0x00}}, - {2, [3]byte{0xd0, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x89, 0x00}}, {2, [3]byte{0xd1, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x9a, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {2, [3]byte{0xc6, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x88, 0x86}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xbb, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, - {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xd1, 0x95, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xe2, 0x80, 0x9c}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {3, [3]byte{0xe2, 0x80, 0x98}}, {3, [3]byte{0xe2, 0x80, 0x99}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0x8f, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x91, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xca0000a0, 0xa30000a3, 0xa40000a7, 0xa90000a9, 0xc70000ab, 0xc20000ac, 0xa80000ae, 0xa10000b0, - 0xb10000b1, 0xb50000b5, 0xa60000b6, 0xc80000bb, 0xd60000f7, 0xc4000192, 0xdd000401, 0xab000402, - 0xae000403, 0xb8000404, 0xc1000405, 0xa7000406, 0xba000407, 0xb7000408, 0xbc000409, 0xbe00040a, - 0xcb00040b, 0xcd00040c, 0xd800040e, 0xda00040f, 0x80000410, 0x81000411, 0x82000412, 0x83000413, - 0x84000414, 0x85000415, 0x86000416, 0x87000417, 0x88000418, 0x89000419, 0x8a00041a, 0x8b00041b, - 0x8c00041c, 0x8d00041d, 0x8e00041e, 0x8f00041f, 0x90000420, 0x91000421, 0x92000422, 0x93000423, - 0x94000424, 0x95000425, 0x96000426, 0x97000427, 0x98000428, 0x99000429, 0x9a00042a, 0x9b00042b, - 0x9c00042c, 0x9d00042d, 0x9e00042e, 0x9f00042f, 0xe0000430, 0xe1000431, 0xe2000432, 0xe3000433, - 0xe4000434, 0xe5000435, 0xe6000436, 0xe7000437, 0xe8000438, 0xe9000439, 0xea00043a, 0xeb00043b, - 0xec00043c, 0xed00043d, 0xee00043e, 0xef00043f, 0xf0000440, 0xf1000441, 0xf2000442, 0xf3000443, - 0xf4000444, 0xf5000445, 0xf6000446, 0xf7000447, 0xf8000448, 0xf9000449, 0xfa00044a, 0xfb00044b, - 0xfc00044c, 0xfd00044d, 0xfe00044e, 0xdf00044f, 0xde000451, 0xac000452, 0xaf000453, 0xb9000454, - 0xcf000455, 0xb4000456, 0xbb000457, 0xc0000458, 0xbd000459, 0xbf00045a, 0xcc00045b, 0xce00045c, - 0xd900045e, 0xdb00045f, 0xa2000490, 0xb6000491, 0xd0002013, 0xd1002014, 0xd4002018, 0xd5002019, - 0xd200201c, 0xd300201d, 0xd700201e, 0xa0002020, 0xa5002022, 0xc9002026, 0xff0020ac, 0xdc002116, - 0xaa002122, 0xc6002206, 0xc300221a, 0xb000221e, 0xc5002248, 0xad002260, 0xb2002264, 0xb3002265, - }, -} - -// Windows874 is the Windows 874 encoding. -var Windows874 encoding.Encoding = &windows874 - -var windows874 = charmap{ - name: "Windows 874", - mib: identifier.Windows874, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe0, 0xb8, 0x81}}, - {3, [3]byte{0xe0, 0xb8, 0x82}}, {3, [3]byte{0xe0, 0xb8, 0x83}}, - {3, [3]byte{0xe0, 0xb8, 0x84}}, {3, [3]byte{0xe0, 0xb8, 0x85}}, - {3, [3]byte{0xe0, 0xb8, 0x86}}, {3, [3]byte{0xe0, 0xb8, 0x87}}, - {3, [3]byte{0xe0, 0xb8, 0x88}}, {3, [3]byte{0xe0, 0xb8, 0x89}}, - {3, [3]byte{0xe0, 0xb8, 0x8a}}, {3, [3]byte{0xe0, 0xb8, 0x8b}}, - {3, [3]byte{0xe0, 0xb8, 0x8c}}, {3, [3]byte{0xe0, 0xb8, 0x8d}}, - {3, [3]byte{0xe0, 0xb8, 0x8e}}, {3, [3]byte{0xe0, 0xb8, 0x8f}}, - {3, [3]byte{0xe0, 0xb8, 0x90}}, {3, [3]byte{0xe0, 0xb8, 0x91}}, - {3, [3]byte{0xe0, 0xb8, 0x92}}, {3, [3]byte{0xe0, 0xb8, 0x93}}, - {3, [3]byte{0xe0, 0xb8, 0x94}}, {3, [3]byte{0xe0, 0xb8, 0x95}}, - {3, [3]byte{0xe0, 0xb8, 0x96}}, {3, [3]byte{0xe0, 0xb8, 0x97}}, - {3, [3]byte{0xe0, 0xb8, 0x98}}, {3, [3]byte{0xe0, 0xb8, 0x99}}, - {3, [3]byte{0xe0, 0xb8, 0x9a}}, {3, [3]byte{0xe0, 0xb8, 0x9b}}, - {3, [3]byte{0xe0, 0xb8, 0x9c}}, {3, [3]byte{0xe0, 0xb8, 0x9d}}, - {3, [3]byte{0xe0, 0xb8, 0x9e}}, {3, [3]byte{0xe0, 0xb8, 0x9f}}, - {3, [3]byte{0xe0, 0xb8, 0xa0}}, {3, [3]byte{0xe0, 0xb8, 0xa1}}, - {3, [3]byte{0xe0, 0xb8, 0xa2}}, {3, [3]byte{0xe0, 0xb8, 0xa3}}, - {3, [3]byte{0xe0, 0xb8, 0xa4}}, {3, [3]byte{0xe0, 0xb8, 0xa5}}, - {3, [3]byte{0xe0, 0xb8, 0xa6}}, {3, [3]byte{0xe0, 0xb8, 0xa7}}, - {3, [3]byte{0xe0, 0xb8, 0xa8}}, {3, [3]byte{0xe0, 0xb8, 0xa9}}, - {3, [3]byte{0xe0, 0xb8, 0xaa}}, {3, [3]byte{0xe0, 0xb8, 0xab}}, - {3, [3]byte{0xe0, 0xb8, 0xac}}, {3, [3]byte{0xe0, 0xb8, 0xad}}, - {3, [3]byte{0xe0, 0xb8, 0xae}}, {3, [3]byte{0xe0, 0xb8, 0xaf}}, - {3, [3]byte{0xe0, 0xb8, 0xb0}}, {3, [3]byte{0xe0, 0xb8, 0xb1}}, - {3, [3]byte{0xe0, 0xb8, 0xb2}}, {3, [3]byte{0xe0, 0xb8, 0xb3}}, - {3, [3]byte{0xe0, 0xb8, 0xb4}}, {3, [3]byte{0xe0, 0xb8, 0xb5}}, - {3, [3]byte{0xe0, 0xb8, 0xb6}}, {3, [3]byte{0xe0, 0xb8, 0xb7}}, - {3, [3]byte{0xe0, 0xb8, 0xb8}}, {3, [3]byte{0xe0, 0xb8, 0xb9}}, - {3, [3]byte{0xe0, 0xb8, 0xba}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe0, 0xb8, 0xbf}}, - {3, [3]byte{0xe0, 0xb9, 0x80}}, {3, [3]byte{0xe0, 0xb9, 0x81}}, - {3, [3]byte{0xe0, 0xb9, 0x82}}, {3, [3]byte{0xe0, 0xb9, 0x83}}, - {3, [3]byte{0xe0, 0xb9, 0x84}}, {3, [3]byte{0xe0, 0xb9, 0x85}}, - {3, [3]byte{0xe0, 0xb9, 0x86}}, {3, [3]byte{0xe0, 0xb9, 0x87}}, - {3, [3]byte{0xe0, 0xb9, 0x88}}, {3, [3]byte{0xe0, 0xb9, 0x89}}, - {3, [3]byte{0xe0, 0xb9, 0x8a}}, {3, [3]byte{0xe0, 0xb9, 0x8b}}, - {3, [3]byte{0xe0, 0xb9, 0x8c}}, {3, [3]byte{0xe0, 0xb9, 0x8d}}, - {3, [3]byte{0xe0, 0xb9, 0x8e}}, {3, [3]byte{0xe0, 0xb9, 0x8f}}, - {3, [3]byte{0xe0, 0xb9, 0x90}}, {3, [3]byte{0xe0, 0xb9, 0x91}}, - {3, [3]byte{0xe0, 0xb9, 0x92}}, {3, [3]byte{0xe0, 0xb9, 0x93}}, - {3, [3]byte{0xe0, 0xb9, 0x94}}, {3, [3]byte{0xe0, 0xb9, 0x95}}, - {3, [3]byte{0xe0, 0xb9, 0x96}}, {3, [3]byte{0xe0, 0xb9, 0x97}}, - {3, [3]byte{0xe0, 0xb9, 0x98}}, {3, [3]byte{0xe0, 0xb9, 0x99}}, - {3, [3]byte{0xe0, 0xb9, 0x9a}}, {3, [3]byte{0xe0, 0xb9, 0x9b}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa1000e01, 0xa2000e02, 0xa3000e03, 0xa4000e04, 0xa5000e05, 0xa6000e06, 0xa7000e07, - 0xa8000e08, 0xa9000e09, 0xaa000e0a, 0xab000e0b, 0xac000e0c, 0xad000e0d, 0xae000e0e, 0xaf000e0f, - 0xb0000e10, 0xb1000e11, 0xb2000e12, 0xb3000e13, 0xb4000e14, 0xb5000e15, 0xb6000e16, 0xb7000e17, - 0xb8000e18, 0xb9000e19, 0xba000e1a, 0xbb000e1b, 0xbc000e1c, 0xbd000e1d, 0xbe000e1e, 0xbf000e1f, - 0xc0000e20, 0xc1000e21, 0xc2000e22, 0xc3000e23, 0xc4000e24, 0xc5000e25, 0xc6000e26, 0xc7000e27, - 0xc8000e28, 0xc9000e29, 0xca000e2a, 0xcb000e2b, 0xcc000e2c, 0xcd000e2d, 0xce000e2e, 0xcf000e2f, - 0xd0000e30, 0xd1000e31, 0xd2000e32, 0xd3000e33, 0xd4000e34, 0xd5000e35, 0xd6000e36, 0xd7000e37, - 0xd8000e38, 0xd9000e39, 0xda000e3a, 0xdf000e3f, 0xe0000e40, 0xe1000e41, 0xe2000e42, 0xe3000e43, - 0xe4000e44, 0xe5000e45, 0xe6000e46, 0xe7000e47, 0xe8000e48, 0xe9000e49, 0xea000e4a, 0xeb000e4b, - 0xec000e4c, 0xed000e4d, 0xee000e4e, 0xef000e4f, 0xf0000e50, 0xf1000e51, 0xf2000e52, 0xf3000e53, - 0xf4000e54, 0xf5000e55, 0xf6000e56, 0xf7000e57, 0xf8000e58, 0xf9000e59, 0xfa000e5a, 0xfb000e5b, - 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x9300201c, 0x9400201d, 0x95002022, 0x85002026, - 0x800020ac, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - }, -} - -// Windows1250 is the Windows 1250 encoding. -var Windows1250 encoding.Encoding = &windows1250 - -var windows1250 = charmap{ - name: "Windows 1250", - mib: identifier.Windows1250, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xb9, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xa5, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc4, 0xbd, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xc4, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, - {2, [3]byte{0xc4, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0x8e, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xae, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, 0xab0000ab, 0xac0000ac, - 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xbb0000bb, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc90000c9, 0xcb0000cb, - 0xcd0000cd, 0xce0000ce, 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xda0000da, 0xdc0000dc, - 0xdd0000dd, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe90000e9, 0xeb0000eb, - 0xed0000ed, 0xee0000ee, 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xfa0000fa, 0xfc0000fc, - 0xfd0000fd, 0xc3000102, 0xe3000103, 0xa5000104, 0xb9000105, 0xc6000106, 0xe6000107, 0xc800010c, - 0xe800010d, 0xcf00010e, 0xef00010f, 0xd0000110, 0xf0000111, 0xca000118, 0xea000119, 0xcc00011a, - 0xec00011b, 0xc5000139, 0xe500013a, 0xbc00013d, 0xbe00013e, 0xa3000141, 0xb3000142, 0xd1000143, - 0xf1000144, 0xd2000147, 0xf2000148, 0xd5000150, 0xf5000151, 0xc0000154, 0xe0000155, 0xd8000158, - 0xf8000159, 0x8c00015a, 0x9c00015b, 0xaa00015e, 0xba00015f, 0x8a000160, 0x9a000161, 0xde000162, - 0xfe000163, 0x8d000164, 0x9d000165, 0xd900016e, 0xf900016f, 0xdb000170, 0xfb000171, 0x8f000179, - 0x9f00017a, 0xaf00017b, 0xbf00017c, 0x8e00017d, 0x9e00017e, 0xa10002c7, 0xa20002d8, 0xff0002d9, - 0xb20002db, 0xbd0002dd, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, - 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, - 0x9b00203a, 0x800020ac, 0x99002122, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - }, -} - -// Windows1251 is the Windows 1251 encoding. -var Windows1251 encoding.Encoding = &windows1251 - -var windows1251 = charmap{ - name: "Windows 1251", - mib: identifier.Windows1251, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd0, 0x82, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xd1, 0x93, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xd0, 0x89, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, - {2, [3]byte{0xd0, 0x8b, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xd1, 0x99, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd1, 0x9c, 0x00}}, - {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x8e, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xd2, 0x90, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0x81, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x96, 0x00}}, - {2, [3]byte{0xd2, 0x91, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xd1, 0x91, 0x00}}, {3, [3]byte{0xe2, 0x84, 0x96}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x95, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, - 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xbb0000bb, 0xa8000401, - 0x80000402, 0x81000403, 0xaa000404, 0xbd000405, 0xb2000406, 0xaf000407, 0xa3000408, 0x8a000409, - 0x8c00040a, 0x8e00040b, 0x8d00040c, 0xa100040e, 0x8f00040f, 0xc0000410, 0xc1000411, 0xc2000412, - 0xc3000413, 0xc4000414, 0xc5000415, 0xc6000416, 0xc7000417, 0xc8000418, 0xc9000419, 0xca00041a, - 0xcb00041b, 0xcc00041c, 0xcd00041d, 0xce00041e, 0xcf00041f, 0xd0000420, 0xd1000421, 0xd2000422, - 0xd3000423, 0xd4000424, 0xd5000425, 0xd6000426, 0xd7000427, 0xd8000428, 0xd9000429, 0xda00042a, - 0xdb00042b, 0xdc00042c, 0xdd00042d, 0xde00042e, 0xdf00042f, 0xe0000430, 0xe1000431, 0xe2000432, - 0xe3000433, 0xe4000434, 0xe5000435, 0xe6000436, 0xe7000437, 0xe8000438, 0xe9000439, 0xea00043a, - 0xeb00043b, 0xec00043c, 0xed00043d, 0xee00043e, 0xef00043f, 0xf0000440, 0xf1000441, 0xf2000442, - 0xf3000443, 0xf4000444, 0xf5000445, 0xf6000446, 0xf7000447, 0xf8000448, 0xf9000449, 0xfa00044a, - 0xfb00044b, 0xfc00044c, 0xfd00044d, 0xfe00044e, 0xff00044f, 0xb8000451, 0x90000452, 0x83000453, - 0xba000454, 0xbe000455, 0xb3000456, 0xbf000457, 0xbc000458, 0x9a000459, 0x9c00045a, 0x9e00045b, - 0x9d00045c, 0xa200045e, 0x9f00045f, 0xa5000490, 0xb4000491, 0x96002013, 0x97002014, 0x91002018, - 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, - 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x880020ac, 0xb9002116, 0x99002122, 0x9800fffd, - }, -} - -// Windows1252 is the Windows 1252 encoding. -var Windows1252 encoding.Encoding = &windows1252 - -var windows1252 = charmap{ - name: "Windows 1252", - mib: identifier.Windows1252, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, - 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, - 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, - 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, - 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, - 0x8c000152, 0x9c000153, 0x8a000160, 0x9a000161, 0x9f000178, 0x8e00017d, 0x9e00017e, 0x83000192, - 0x880002c6, 0x980002dc, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, - 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, - 0x9b00203a, 0x800020ac, 0x99002122, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - }, -} - -// Windows1253 is the Windows 1253 encoding. -var Windows1253 encoding.Encoding = &windows1253 - -var windows1253 = charmap{ - name: "Windows 1253", - mib: identifier.Windows1253, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xce, 0x85, 0x00}}, - {2, [3]byte{0xce, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x95}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0x84, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0x88, 0x00}}, {2, [3]byte{0xce, 0x89, 0x00}}, - {2, [3]byte{0xce, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0x8e, 0x00}}, {2, [3]byte{0xce, 0x8f, 0x00}}, - {2, [3]byte{0xce, 0x90, 0x00}}, {2, [3]byte{0xce, 0x91, 0x00}}, - {2, [3]byte{0xce, 0x92, 0x00}}, {2, [3]byte{0xce, 0x93, 0x00}}, - {2, [3]byte{0xce, 0x94, 0x00}}, {2, [3]byte{0xce, 0x95, 0x00}}, - {2, [3]byte{0xce, 0x96, 0x00}}, {2, [3]byte{0xce, 0x97, 0x00}}, - {2, [3]byte{0xce, 0x98, 0x00}}, {2, [3]byte{0xce, 0x99, 0x00}}, - {2, [3]byte{0xce, 0x9a, 0x00}}, {2, [3]byte{0xce, 0x9b, 0x00}}, - {2, [3]byte{0xce, 0x9c, 0x00}}, {2, [3]byte{0xce, 0x9d, 0x00}}, - {2, [3]byte{0xce, 0x9e, 0x00}}, {2, [3]byte{0xce, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0xa0, 0x00}}, {2, [3]byte{0xce, 0xa1, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xce, 0xa3, 0x00}}, - {2, [3]byte{0xce, 0xa4, 0x00}}, {2, [3]byte{0xce, 0xa5, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0xa7, 0x00}}, - {2, [3]byte{0xce, 0xa8, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, - {2, [3]byte{0xce, 0xaa, 0x00}}, {2, [3]byte{0xce, 0xab, 0x00}}, - {2, [3]byte{0xce, 0xac, 0x00}}, {2, [3]byte{0xce, 0xad, 0x00}}, - {2, [3]byte{0xce, 0xae, 0x00}}, {2, [3]byte{0xce, 0xaf, 0x00}}, - {2, [3]byte{0xce, 0xb0, 0x00}}, {2, [3]byte{0xce, 0xb1, 0x00}}, - {2, [3]byte{0xce, 0xb2, 0x00}}, {2, [3]byte{0xce, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0xb4, 0x00}}, {2, [3]byte{0xce, 0xb5, 0x00}}, - {2, [3]byte{0xce, 0xb6, 0x00}}, {2, [3]byte{0xce, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0xb8, 0x00}}, {2, [3]byte{0xce, 0xb9, 0x00}}, - {2, [3]byte{0xce, 0xba, 0x00}}, {2, [3]byte{0xce, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0xbc, 0x00}}, {2, [3]byte{0xce, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0xbe, 0x00}}, {2, [3]byte{0xce, 0xbf, 0x00}}, - {2, [3]byte{0xcf, 0x80, 0x00}}, {2, [3]byte{0xcf, 0x81, 0x00}}, - {2, [3]byte{0xcf, 0x82, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xcf, 0x84, 0x00}}, {2, [3]byte{0xcf, 0x85, 0x00}}, - {2, [3]byte{0xcf, 0x86, 0x00}}, {2, [3]byte{0xcf, 0x87, 0x00}}, - {2, [3]byte{0xcf, 0x88, 0x00}}, {2, [3]byte{0xcf, 0x89, 0x00}}, - {2, [3]byte{0xcf, 0x8a, 0x00}}, {2, [3]byte{0xcf, 0x8b, 0x00}}, - {2, [3]byte{0xcf, 0x8c, 0x00}}, {2, [3]byte{0xcf, 0x8d, 0x00}}, - {2, [3]byte{0xcf, 0x8e, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, - 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, - 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xbb0000bb, 0xbd0000bd, 0x83000192, 0xb4000384, 0xa1000385, - 0xa2000386, 0xb8000388, 0xb9000389, 0xba00038a, 0xbc00038c, 0xbe00038e, 0xbf00038f, 0xc0000390, - 0xc1000391, 0xc2000392, 0xc3000393, 0xc4000394, 0xc5000395, 0xc6000396, 0xc7000397, 0xc8000398, - 0xc9000399, 0xca00039a, 0xcb00039b, 0xcc00039c, 0xcd00039d, 0xce00039e, 0xcf00039f, 0xd00003a0, - 0xd10003a1, 0xd30003a3, 0xd40003a4, 0xd50003a5, 0xd60003a6, 0xd70003a7, 0xd80003a8, 0xd90003a9, - 0xda0003aa, 0xdb0003ab, 0xdc0003ac, 0xdd0003ad, 0xde0003ae, 0xdf0003af, 0xe00003b0, 0xe10003b1, - 0xe20003b2, 0xe30003b3, 0xe40003b4, 0xe50003b5, 0xe60003b6, 0xe70003b7, 0xe80003b8, 0xe90003b9, - 0xea0003ba, 0xeb0003bb, 0xec0003bc, 0xed0003bd, 0xee0003be, 0xef0003bf, 0xf00003c0, 0xf10003c1, - 0xf20003c2, 0xf30003c3, 0xf40003c4, 0xf50003c5, 0xf60003c6, 0xf70003c7, 0xf80003c8, 0xf90003c9, - 0xfa0003ca, 0xfb0003cb, 0xfc0003cc, 0xfd0003cd, 0xfe0003ce, 0x96002013, 0x97002014, 0xaf002015, - 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, - 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, 0x8100fffd, - 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - }, -} - -// Windows1254 is the Windows 1254 encoding. -var Windows1254 encoding.Encoding = &windows1254 - -var windows1254 = charmap{ - name: "Windows 1254", - mib: identifier.Windows1254, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8, - 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, - 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, - 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, - 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, - 0xfc0000fc, 0xff0000ff, 0xd000011e, 0xf000011f, 0xdd000130, 0xfd000131, 0x8c000152, 0x9c000153, - 0xde00015e, 0xfe00015f, 0x8a000160, 0x9a000161, 0x9f000178, 0x83000192, 0x880002c6, 0x980002dc, - 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, - 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, - 0x99002122, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - }, -} - -// Windows1255 is the Windows 1255 encoding. -var Windows1255 encoding.Encoding = &windows1255 - -var windows1255 = charmap{ - name: "Windows 1255", - mib: identifier.Windows1255, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xaa}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xd6, 0xb0, 0x00}}, {2, [3]byte{0xd6, 0xb1, 0x00}}, - {2, [3]byte{0xd6, 0xb2, 0x00}}, {2, [3]byte{0xd6, 0xb3, 0x00}}, - {2, [3]byte{0xd6, 0xb4, 0x00}}, {2, [3]byte{0xd6, 0xb5, 0x00}}, - {2, [3]byte{0xd6, 0xb6, 0x00}}, {2, [3]byte{0xd6, 0xb7, 0x00}}, - {2, [3]byte{0xd6, 0xb8, 0x00}}, {2, [3]byte{0xd6, 0xb9, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd6, 0xbb, 0x00}}, - {2, [3]byte{0xd6, 0xbc, 0x00}}, {2, [3]byte{0xd6, 0xbd, 0x00}}, - {2, [3]byte{0xd6, 0xbe, 0x00}}, {2, [3]byte{0xd6, 0xbf, 0x00}}, - {2, [3]byte{0xd7, 0x80, 0x00}}, {2, [3]byte{0xd7, 0x81, 0x00}}, - {2, [3]byte{0xd7, 0x82, 0x00}}, {2, [3]byte{0xd7, 0x83, 0x00}}, - {2, [3]byte{0xd7, 0xb0, 0x00}}, {2, [3]byte{0xd7, 0xb1, 0x00}}, - {2, [3]byte{0xd7, 0xb2, 0x00}}, {2, [3]byte{0xd7, 0xb3, 0x00}}, - {2, [3]byte{0xd7, 0xb4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, - {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, - {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, - {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, - {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, - {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, - {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, - {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, - {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, - {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, - {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, - {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, - {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, - {2, [3]byte{0xd7, 0xaa, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, - {3, [3]byte{0xe2, 0x80, 0x8f}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, - 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, - 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, - 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, 0xaa0000d7, 0xba0000f7, 0x83000192, - 0x880002c6, 0x980002dc, 0xc00005b0, 0xc10005b1, 0xc20005b2, 0xc30005b3, 0xc40005b4, 0xc50005b5, - 0xc60005b6, 0xc70005b7, 0xc80005b8, 0xc90005b9, 0xcb0005bb, 0xcc0005bc, 0xcd0005bd, 0xce0005be, - 0xcf0005bf, 0xd00005c0, 0xd10005c1, 0xd20005c2, 0xd30005c3, 0xe00005d0, 0xe10005d1, 0xe20005d2, - 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9, 0xea0005da, - 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1, 0xf20005e2, - 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9, 0xfa0005ea, - 0xd40005f0, 0xd50005f1, 0xd60005f2, 0xd70005f3, 0xd80005f4, 0xfd00200e, 0xfe00200f, 0x96002013, - 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, - 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xa40020aa, 0x800020ac, - 0x99002122, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - }, -} - -// Windows1256 is the Windows 1256 encoding. -var Windows1256 encoding.Encoding = &windows1256 - -var windows1256 = charmap{ - name: "Windows 1256", - mib: identifier.Windows1256, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {2, [3]byte{0xd9, 0xbe, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xd9, 0xb9, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xda, 0x86, 0x00}}, - {2, [3]byte{0xda, 0x98, 0x00}}, {2, [3]byte{0xda, 0x88, 0x00}}, - {2, [3]byte{0xda, 0xaf, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xda, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xda, 0x91, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x8c}}, - {3, [3]byte{0xe2, 0x80, 0x8d}}, {2, [3]byte{0xda, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd8, 0x8c, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xda, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xd8, 0x9b, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xd8, 0x9f, 0x00}}, - {2, [3]byte{0xdb, 0x81, 0x00}}, {2, [3]byte{0xd8, 0xa1, 0x00}}, - {2, [3]byte{0xd8, 0xa2, 0x00}}, {2, [3]byte{0xd8, 0xa3, 0x00}}, - {2, [3]byte{0xd8, 0xa4, 0x00}}, {2, [3]byte{0xd8, 0xa5, 0x00}}, - {2, [3]byte{0xd8, 0xa6, 0x00}}, {2, [3]byte{0xd8, 0xa7, 0x00}}, - {2, [3]byte{0xd8, 0xa8, 0x00}}, {2, [3]byte{0xd8, 0xa9, 0x00}}, - {2, [3]byte{0xd8, 0xaa, 0x00}}, {2, [3]byte{0xd8, 0xab, 0x00}}, - {2, [3]byte{0xd8, 0xac, 0x00}}, {2, [3]byte{0xd8, 0xad, 0x00}}, - {2, [3]byte{0xd8, 0xae, 0x00}}, {2, [3]byte{0xd8, 0xaf, 0x00}}, - {2, [3]byte{0xd8, 0xb0, 0x00}}, {2, [3]byte{0xd8, 0xb1, 0x00}}, - {2, [3]byte{0xd8, 0xb2, 0x00}}, {2, [3]byte{0xd8, 0xb3, 0x00}}, - {2, [3]byte{0xd8, 0xb4, 0x00}}, {2, [3]byte{0xd8, 0xb5, 0x00}}, - {2, [3]byte{0xd8, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xd8, 0xb7, 0x00}}, {2, [3]byte{0xd8, 0xb8, 0x00}}, - {2, [3]byte{0xd8, 0xb9, 0x00}}, {2, [3]byte{0xd8, 0xba, 0x00}}, - {2, [3]byte{0xd9, 0x80, 0x00}}, {2, [3]byte{0xd9, 0x81, 0x00}}, - {2, [3]byte{0xd9, 0x82, 0x00}}, {2, [3]byte{0xd9, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xd9, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xd9, 0x85, 0x00}}, - {2, [3]byte{0xd9, 0x86, 0x00}}, {2, [3]byte{0xd9, 0x87, 0x00}}, - {2, [3]byte{0xd9, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xd9, 0x89, 0x00}}, {2, [3]byte{0xd9, 0x8a, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xd9, 0x8b, 0x00}}, {2, [3]byte{0xd9, 0x8c, 0x00}}, - {2, [3]byte{0xd9, 0x8d, 0x00}}, {2, [3]byte{0xd9, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xd9, 0x8f, 0x00}}, - {2, [3]byte{0xd9, 0x90, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xd9, 0x91, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xd9, 0x92, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, - {3, [3]byte{0xe2, 0x80, 0x8f}}, {2, [3]byte{0xdb, 0x92, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, - 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, - 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, - 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xd70000d7, 0xe00000e0, 0xe20000e2, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xee0000ee, 0xef0000ef, 0xf40000f4, 0xf70000f7, - 0xf90000f9, 0xfb0000fb, 0xfc0000fc, 0x8c000152, 0x9c000153, 0x83000192, 0x880002c6, 0xa100060c, - 0xba00061b, 0xbf00061f, 0xc1000621, 0xc2000622, 0xc3000623, 0xc4000624, 0xc5000625, 0xc6000626, - 0xc7000627, 0xc8000628, 0xc9000629, 0xca00062a, 0xcb00062b, 0xcc00062c, 0xcd00062d, 0xce00062e, - 0xcf00062f, 0xd0000630, 0xd1000631, 0xd2000632, 0xd3000633, 0xd4000634, 0xd5000635, 0xd6000636, - 0xd8000637, 0xd9000638, 0xda000639, 0xdb00063a, 0xdc000640, 0xdd000641, 0xde000642, 0xdf000643, - 0xe1000644, 0xe3000645, 0xe4000646, 0xe5000647, 0xe6000648, 0xec000649, 0xed00064a, 0xf000064b, - 0xf100064c, 0xf200064d, 0xf300064e, 0xf500064f, 0xf6000650, 0xf8000651, 0xfa000652, 0x8a000679, - 0x8100067e, 0x8d000686, 0x8f000688, 0x9a000691, 0x8e000698, 0x980006a9, 0x900006af, 0x9f0006ba, - 0xaa0006be, 0xc00006c1, 0xff0006d2, 0x9d00200c, 0x9e00200d, 0xfd00200e, 0xfe00200f, 0x96002013, - 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, - 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, - }, -} - -// Windows1257 is the Windows 1257 encoding. -var Windows1257 encoding.Encoding = &windows1257 - -var windows1257 = charmap{ - name: "Windows 1257", - mib: identifier.Windows1257, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xcb, 0x87, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc3, 0x86, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc5, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x92, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc4, 0x96, 0x00}}, - {2, [3]byte{0xc4, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, - {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x85, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0xb2, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xaa, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc4, 0x93, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc4, 0x97, 0x00}}, - {2, [3]byte{0xc4, 0xa3, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xb3, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0x8d0000a8, 0xa90000a9, - 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0x9d0000af, 0xb00000b0, 0xb10000b1, 0xb20000b2, - 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0x8f0000b8, 0xb90000b9, 0xbb0000bb, - 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xc40000c4, 0xc50000c5, 0xaf0000c6, 0xc90000c9, 0xd30000d3, - 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xa80000d8, 0xdc0000dc, 0xdf0000df, 0xe40000e4, 0xe50000e5, - 0xbf0000e6, 0xe90000e9, 0xf30000f3, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xb80000f8, 0xfc0000fc, - 0xc2000100, 0xe2000101, 0xc0000104, 0xe0000105, 0xc3000106, 0xe3000107, 0xc800010c, 0xe800010d, - 0xc7000112, 0xe7000113, 0xcb000116, 0xeb000117, 0xc6000118, 0xe6000119, 0xcc000122, 0xec000123, - 0xce00012a, 0xee00012b, 0xc100012e, 0xe100012f, 0xcd000136, 0xed000137, 0xcf00013b, 0xef00013c, - 0xd9000141, 0xf9000142, 0xd1000143, 0xf1000144, 0xd2000145, 0xf2000146, 0xd400014c, 0xf400014d, - 0xaa000156, 0xba000157, 0xda00015a, 0xfa00015b, 0xd0000160, 0xf0000161, 0xdb00016a, 0xfb00016b, - 0xd8000172, 0xf8000173, 0xca000179, 0xea00017a, 0xdd00017b, 0xfd00017c, 0xde00017d, 0xfe00017e, - 0x8e0002c7, 0xff0002d9, 0x9e0002db, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, - 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, - 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - }, -} - -// Windows1258 is the Windows 1258 encoding. -var Windows1258 encoding.Encoding = &windows1258 - -var windows1258 = charmap{ - name: "Windows 1258", - mib: identifier.Windows1258, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xcc, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xcc, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc6, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc6, 0xaf, 0x00}}, - {2, [3]byte{0xcc, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xcc, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xcc, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc6, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc6, 0xb0, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xab}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, 0xc80000c8, - 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, 0xd30000d3, - 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, - 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, - 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, - 0xfc0000fc, 0xff0000ff, 0xc3000102, 0xe3000103, 0xd0000110, 0xf0000111, 0x8c000152, 0x9c000153, - 0x9f000178, 0x83000192, 0xd50001a0, 0xf50001a1, 0xdd0001af, 0xfd0001b0, 0x880002c6, 0x980002dc, - 0xcc000300, 0xec000301, 0xde000303, 0xd2000309, 0xf2000323, 0x96002013, 0x97002014, 0x91002018, - 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, - 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xfe0020ab, 0x800020ac, 0x99002122, 0x8100fffd, - 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, 0x8100fffd, - }, -} - -// XUserDefined is the X-User-Defined encoding. -// -// It is defined at http://encoding.spec.whatwg.org/#x-user-defined -var XUserDefined encoding.Encoding = &xUserDefined - -var xUserDefined = charmap{ - name: "X-User-Defined", - mib: identifier.XUserDefined, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0x9e, 0x80}}, {3, [3]byte{0xef, 0x9e, 0x81}}, - {3, [3]byte{0xef, 0x9e, 0x82}}, {3, [3]byte{0xef, 0x9e, 0x83}}, - {3, [3]byte{0xef, 0x9e, 0x84}}, {3, [3]byte{0xef, 0x9e, 0x85}}, - {3, [3]byte{0xef, 0x9e, 0x86}}, {3, [3]byte{0xef, 0x9e, 0x87}}, - {3, [3]byte{0xef, 0x9e, 0x88}}, {3, [3]byte{0xef, 0x9e, 0x89}}, - {3, [3]byte{0xef, 0x9e, 0x8a}}, {3, [3]byte{0xef, 0x9e, 0x8b}}, - {3, [3]byte{0xef, 0x9e, 0x8c}}, {3, [3]byte{0xef, 0x9e, 0x8d}}, - {3, [3]byte{0xef, 0x9e, 0x8e}}, {3, [3]byte{0xef, 0x9e, 0x8f}}, - {3, [3]byte{0xef, 0x9e, 0x90}}, {3, [3]byte{0xef, 0x9e, 0x91}}, - {3, [3]byte{0xef, 0x9e, 0x92}}, {3, [3]byte{0xef, 0x9e, 0x93}}, - {3, [3]byte{0xef, 0x9e, 0x94}}, {3, [3]byte{0xef, 0x9e, 0x95}}, - {3, [3]byte{0xef, 0x9e, 0x96}}, {3, [3]byte{0xef, 0x9e, 0x97}}, - {3, [3]byte{0xef, 0x9e, 0x98}}, {3, [3]byte{0xef, 0x9e, 0x99}}, - {3, [3]byte{0xef, 0x9e, 0x9a}}, {3, [3]byte{0xef, 0x9e, 0x9b}}, - {3, [3]byte{0xef, 0x9e, 0x9c}}, {3, [3]byte{0xef, 0x9e, 0x9d}}, - {3, [3]byte{0xef, 0x9e, 0x9e}}, {3, [3]byte{0xef, 0x9e, 0x9f}}, - {3, [3]byte{0xef, 0x9e, 0xa0}}, {3, [3]byte{0xef, 0x9e, 0xa1}}, - {3, [3]byte{0xef, 0x9e, 0xa2}}, {3, [3]byte{0xef, 0x9e, 0xa3}}, - {3, [3]byte{0xef, 0x9e, 0xa4}}, {3, [3]byte{0xef, 0x9e, 0xa5}}, - {3, [3]byte{0xef, 0x9e, 0xa6}}, {3, [3]byte{0xef, 0x9e, 0xa7}}, - {3, [3]byte{0xef, 0x9e, 0xa8}}, {3, [3]byte{0xef, 0x9e, 0xa9}}, - {3, [3]byte{0xef, 0x9e, 0xaa}}, {3, [3]byte{0xef, 0x9e, 0xab}}, - {3, [3]byte{0xef, 0x9e, 0xac}}, {3, [3]byte{0xef, 0x9e, 0xad}}, - {3, [3]byte{0xef, 0x9e, 0xae}}, {3, [3]byte{0xef, 0x9e, 0xaf}}, - {3, [3]byte{0xef, 0x9e, 0xb0}}, {3, [3]byte{0xef, 0x9e, 0xb1}}, - {3, [3]byte{0xef, 0x9e, 0xb2}}, {3, [3]byte{0xef, 0x9e, 0xb3}}, - {3, [3]byte{0xef, 0x9e, 0xb4}}, {3, [3]byte{0xef, 0x9e, 0xb5}}, - {3, [3]byte{0xef, 0x9e, 0xb6}}, {3, [3]byte{0xef, 0x9e, 0xb7}}, - {3, [3]byte{0xef, 0x9e, 0xb8}}, {3, [3]byte{0xef, 0x9e, 0xb9}}, - {3, [3]byte{0xef, 0x9e, 0xba}}, {3, [3]byte{0xef, 0x9e, 0xbb}}, - {3, [3]byte{0xef, 0x9e, 0xbc}}, {3, [3]byte{0xef, 0x9e, 0xbd}}, - {3, [3]byte{0xef, 0x9e, 0xbe}}, {3, [3]byte{0xef, 0x9e, 0xbf}}, - {3, [3]byte{0xef, 0x9f, 0x80}}, {3, [3]byte{0xef, 0x9f, 0x81}}, - {3, [3]byte{0xef, 0x9f, 0x82}}, {3, [3]byte{0xef, 0x9f, 0x83}}, - {3, [3]byte{0xef, 0x9f, 0x84}}, {3, [3]byte{0xef, 0x9f, 0x85}}, - {3, [3]byte{0xef, 0x9f, 0x86}}, {3, [3]byte{0xef, 0x9f, 0x87}}, - {3, [3]byte{0xef, 0x9f, 0x88}}, {3, [3]byte{0xef, 0x9f, 0x89}}, - {3, [3]byte{0xef, 0x9f, 0x8a}}, {3, [3]byte{0xef, 0x9f, 0x8b}}, - {3, [3]byte{0xef, 0x9f, 0x8c}}, {3, [3]byte{0xef, 0x9f, 0x8d}}, - {3, [3]byte{0xef, 0x9f, 0x8e}}, {3, [3]byte{0xef, 0x9f, 0x8f}}, - {3, [3]byte{0xef, 0x9f, 0x90}}, {3, [3]byte{0xef, 0x9f, 0x91}}, - {3, [3]byte{0xef, 0x9f, 0x92}}, {3, [3]byte{0xef, 0x9f, 0x93}}, - {3, [3]byte{0xef, 0x9f, 0x94}}, {3, [3]byte{0xef, 0x9f, 0x95}}, - {3, [3]byte{0xef, 0x9f, 0x96}}, {3, [3]byte{0xef, 0x9f, 0x97}}, - {3, [3]byte{0xef, 0x9f, 0x98}}, {3, [3]byte{0xef, 0x9f, 0x99}}, - {3, [3]byte{0xef, 0x9f, 0x9a}}, {3, [3]byte{0xef, 0x9f, 0x9b}}, - {3, [3]byte{0xef, 0x9f, 0x9c}}, {3, [3]byte{0xef, 0x9f, 0x9d}}, - {3, [3]byte{0xef, 0x9f, 0x9e}}, {3, [3]byte{0xef, 0x9f, 0x9f}}, - {3, [3]byte{0xef, 0x9f, 0xa0}}, {3, [3]byte{0xef, 0x9f, 0xa1}}, - {3, [3]byte{0xef, 0x9f, 0xa2}}, {3, [3]byte{0xef, 0x9f, 0xa3}}, - {3, [3]byte{0xef, 0x9f, 0xa4}}, {3, [3]byte{0xef, 0x9f, 0xa5}}, - {3, [3]byte{0xef, 0x9f, 0xa6}}, {3, [3]byte{0xef, 0x9f, 0xa7}}, - {3, [3]byte{0xef, 0x9f, 0xa8}}, {3, [3]byte{0xef, 0x9f, 0xa9}}, - {3, [3]byte{0xef, 0x9f, 0xaa}}, {3, [3]byte{0xef, 0x9f, 0xab}}, - {3, [3]byte{0xef, 0x9f, 0xac}}, {3, [3]byte{0xef, 0x9f, 0xad}}, - {3, [3]byte{0xef, 0x9f, 0xae}}, {3, [3]byte{0xef, 0x9f, 0xaf}}, - {3, [3]byte{0xef, 0x9f, 0xb0}}, {3, [3]byte{0xef, 0x9f, 0xb1}}, - {3, [3]byte{0xef, 0x9f, 0xb2}}, {3, [3]byte{0xef, 0x9f, 0xb3}}, - {3, [3]byte{0xef, 0x9f, 0xb4}}, {3, [3]byte{0xef, 0x9f, 0xb5}}, - {3, [3]byte{0xef, 0x9f, 0xb6}}, {3, [3]byte{0xef, 0x9f, 0xb7}}, - {3, [3]byte{0xef, 0x9f, 0xb8}}, {3, [3]byte{0xef, 0x9f, 0xb9}}, - {3, [3]byte{0xef, 0x9f, 0xba}}, {3, [3]byte{0xef, 0x9f, 0xbb}}, - {3, [3]byte{0xef, 0x9f, 0xbc}}, {3, [3]byte{0xef, 0x9f, 0xbd}}, - {3, [3]byte{0xef, 0x9f, 0xbe}}, {3, [3]byte{0xef, 0x9f, 0xbf}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x8000f780, 0x8100f781, 0x8200f782, 0x8300f783, 0x8400f784, 0x8500f785, 0x8600f786, 0x8700f787, - 0x8800f788, 0x8900f789, 0x8a00f78a, 0x8b00f78b, 0x8c00f78c, 0x8d00f78d, 0x8e00f78e, 0x8f00f78f, - 0x9000f790, 0x9100f791, 0x9200f792, 0x9300f793, 0x9400f794, 0x9500f795, 0x9600f796, 0x9700f797, - 0x9800f798, 0x9900f799, 0x9a00f79a, 0x9b00f79b, 0x9c00f79c, 0x9d00f79d, 0x9e00f79e, 0x9f00f79f, - 0xa000f7a0, 0xa100f7a1, 0xa200f7a2, 0xa300f7a3, 0xa400f7a4, 0xa500f7a5, 0xa600f7a6, 0xa700f7a7, - 0xa800f7a8, 0xa900f7a9, 0xaa00f7aa, 0xab00f7ab, 0xac00f7ac, 0xad00f7ad, 0xae00f7ae, 0xaf00f7af, - 0xb000f7b0, 0xb100f7b1, 0xb200f7b2, 0xb300f7b3, 0xb400f7b4, 0xb500f7b5, 0xb600f7b6, 0xb700f7b7, - 0xb800f7b8, 0xb900f7b9, 0xba00f7ba, 0xbb00f7bb, 0xbc00f7bc, 0xbd00f7bd, 0xbe00f7be, 0xbf00f7bf, - 0xc000f7c0, 0xc100f7c1, 0xc200f7c2, 0xc300f7c3, 0xc400f7c4, 0xc500f7c5, 0xc600f7c6, 0xc700f7c7, - 0xc800f7c8, 0xc900f7c9, 0xca00f7ca, 0xcb00f7cb, 0xcc00f7cc, 0xcd00f7cd, 0xce00f7ce, 0xcf00f7cf, - 0xd000f7d0, 0xd100f7d1, 0xd200f7d2, 0xd300f7d3, 0xd400f7d4, 0xd500f7d5, 0xd600f7d6, 0xd700f7d7, - 0xd800f7d8, 0xd900f7d9, 0xda00f7da, 0xdb00f7db, 0xdc00f7dc, 0xdd00f7dd, 0xde00f7de, 0xdf00f7df, - 0xe000f7e0, 0xe100f7e1, 0xe200f7e2, 0xe300f7e3, 0xe400f7e4, 0xe500f7e5, 0xe600f7e6, 0xe700f7e7, - 0xe800f7e8, 0xe900f7e9, 0xea00f7ea, 0xeb00f7eb, 0xec00f7ec, 0xed00f7ed, 0xee00f7ee, 0xef00f7ef, - 0xf000f7f0, 0xf100f7f1, 0xf200f7f2, 0xf300f7f3, 0xf400f7f4, 0xf500f7f5, 0xf600f7f6, 0xf700f7f7, - 0xf800f7f8, 0xf900f7f9, 0xfa00f7fa, 0xfb00f7fb, 0xfc00f7fc, 0xfd00f7fd, 0xfe00f7fe, 0xff00f7ff, - }, -} -var listAll = []encoding.Encoding{ - CodePage437, - CodePage850, - CodePage852, - CodePage855, - CodePage858, - CodePage862, - CodePage866, - ISO8859_2, - ISO8859_3, - ISO8859_4, - ISO8859_5, - ISO8859_6, - ISO8859_6E, - ISO8859_6I, - ISO8859_7, - ISO8859_8, - ISO8859_8E, - ISO8859_8I, - ISO8859_10, - ISO8859_13, - ISO8859_14, - ISO8859_15, - ISO8859_16, - KOI8R, - KOI8U, - Macintosh, - MacintoshCyrillic, - Windows874, - Windows1250, - Windows1251, - Windows1252, - Windows1253, - Windows1254, - Windows1255, - Windows1256, - Windows1257, - Windows1258, - XUserDefined, -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/encoding.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/encoding.go deleted file mode 100644 index 2d9c43f3..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/encoding.go +++ /dev/null @@ -1,179 +0,0 @@ -// 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 encoding defines an interface for character encodings, such as Shift -// JIS and Windows 1252, that can convert to and from UTF-8. -// -// To convert the bytes of an io.Reader r from the encoding e to UTF-8: -// rInUTF8 := transform.NewReader(r, e.NewDecoder()) -// and to convert from UTF-8 to the encoding e: -// wInUTF8 := transform.NewWriter(w, e.NewEncoder()) -// In both cases, import "golang.org/x/text/transform". -// -// Encoding implementations are provided in other packages, such as -// golang.org/x/text/encoding/charmap and -// golang.org/x/text/encoding/japanese. -package encoding - -import ( - "errors" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// Encoding is a character set encoding that can be transformed to and from -// UTF-8. -type Encoding interface { - // NewDecoder returns a transformer that converts to UTF-8. - // - // Transforming source bytes that are not of that encoding will not - // result in an error per se. Each byte that cannot be transcoded will - // be represented in the output by the UTF-8 encoding of '\uFFFD', the - // replacement rune. - NewDecoder() transform.Transformer - - // NewEncoder returns a transformer that converts from UTF-8. - // - // Transforming source bytes that are not valid UTF-8 will not result in - // an error per se. Each rune that cannot be transcoded will be - // represented in the output by an encoding-specific replacement such as - // "\x1a" (the ASCII substitute character) or "\xff\xfd". To return - // early with error instead, use transform.Chain to preprocess the data - // with a UTF8Validator. - NewEncoder() transform.Transformer -} - -// ASCIISub is the ASCII substitute character, as recommended by -// http://unicode.org/reports/tr36/#Text_Comparison -const ASCIISub = '\x1a' - -// Nop is the nop encoding. Its transformed bytes are the same as the source -// bytes; it does not replace invalid UTF-8 sequences. -var Nop Encoding = nop{} - -type nop struct{} - -func (nop) NewDecoder() transform.Transformer { - return transform.Nop -} - -func (nop) NewEncoder() transform.Transformer { - return transform.Nop -} - -// Replacement is the replacement encoding. Decoding from the replacement -// encoding yields a single '\uFFFD' replacement rune. Encoding from UTF-8 to -// the replacement encoding yields the same as the source bytes except that -// invalid UTF-8 is converted to '\uFFFD'. -// -// It is defined at http://encoding.spec.whatwg.org/#replacement -var Replacement Encoding = replacement{} - -type replacement struct{} - -func (replacement) NewDecoder() transform.Transformer { - return replacementDecoder{} -} - -func (replacement) NewEncoder() transform.Transformer { - return replacementEncoder{} -} - -type replacementDecoder struct{ transform.NopResetter } - -func (replacementDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if len(dst) < 3 { - return 0, 0, transform.ErrShortDst - } - if atEOF { - const fffd = "\ufffd" - dst[0] = fffd[0] - dst[1] = fffd[1] - dst[2] = fffd[2] - nDst = 3 - } - return nDst, len(src), nil -} - -type replacementEncoder struct{ transform.NopResetter } - -func (replacementEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - r = '\ufffd' - } - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -// ErrInvalidUTF8 means that a transformer encountered invalid UTF-8. -var ErrInvalidUTF8 = errors.New("encoding: invalid UTF-8") - -// UTF8Validator is a transformer that returns ErrInvalidUTF8 on the first -// input byte that is not valid UTF-8. -var UTF8Validator transform.Transformer = utf8Validator{} - -type utf8Validator struct{ transform.NopResetter } - -func (utf8Validator) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := len(src) - if n > len(dst) { - n = len(dst) - } - for i := 0; i < n; { - if c := src[i]; c < utf8.RuneSelf { - dst[i] = c - i++ - continue - } - _, size := utf8.DecodeRune(src[i:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - err = ErrInvalidUTF8 - if !atEOF && !utf8.FullRune(src[i:]) { - err = transform.ErrShortSrc - } - return i, i, err - } - if i+size > len(dst) { - return i, i, transform.ErrShortDst - } - for ; size > 0; size-- { - dst[i] = src[i] - i++ - } - } - if len(src) > len(dst) { - err = transform.ErrShortDst - } - return n, n, err -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/encoding_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/encoding_test.go deleted file mode 100644 index e7dea701..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/encoding_test.go +++ /dev/null @@ -1,1036 +0,0 @@ -// 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 encoding_test - -import ( - "bytes" - "fmt" - "io" - "io/ioutil" - "strings" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/unicode" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -func trim(s string) string { - if len(s) < 120 { - return s - } - return s[:50] + "..." + s[len(s)-50:] -} - -var basicTestCases = []struct { - e encoding.Encoding - encPrefix string - encSuffix string - encoded string - utf8 string -}{ - // The encoded forms can be verified by the iconv program: - // $ echo 月日ã¯ç™¾ä»£ | iconv -f UTF-8 -t SHIFT-JIS | xxd - - // Charmap tests. - { - e: charmap.CodePage437, - encoded: "H\x82ll\x93 \x9d\xa7\xf4\x9c\xbe", - utf8: "Héllô ¥º⌠£╛", - }, - { - e: charmap.CodePage866, - encoded: "H\xf3\xd3o \x98\xfd\x9f\xdd\xa1", - utf8: "Hє╙o Ш¤Я▌б", - }, - { - e: charmap.ISO8859_2, - encoded: "Hel\xe5\xf5", - utf8: "Helĺő", - }, - { - e: charmap.ISO8859_3, - encoded: "He\xbd\xd4", - utf8: "He½Ô", - }, - { - e: charmap.ISO8859_4, - encoded: "Hel\xb6\xf8", - utf8: "Helļø", - }, - { - e: charmap.ISO8859_5, - encoded: "H\xd7\xc6o", - utf8: "HзЦo", - }, - { - e: charmap.ISO8859_6, - encoded: "Hel\xc2\xc9", - utf8: "Helآة", - }, - { - e: charmap.ISO8859_7, - encoded: "H\xeel\xebo", - utf8: "Hξlλo", - }, - { - e: charmap.ISO8859_8, - encoded: "Hel\xf5\xed", - utf8: "Hel×¥×", - }, - { - e: charmap.ISO8859_10, - encoded: "H\xea\xbfo", - utf8: "Hęŋo", - }, - { - e: charmap.ISO8859_13, - encoded: "H\xe6l\xf9o", - utf8: "HÄ™lÅ‚o", - }, - { - e: charmap.ISO8859_14, - encoded: "He\xfe\xd0o", - utf8: "HeÅ·Å´o", - }, - { - e: charmap.ISO8859_15, - encoded: "H\xa4ll\xd8", - utf8: "H€llØ", - }, - { - e: charmap.ISO8859_16, - encoded: "H\xe6ll\xbd", - utf8: "HællÅ“", - }, - { - e: charmap.KOI8R, - encoded: "He\x93\xad\x9c", - utf8: "He⌠╜°", - }, - { - e: charmap.KOI8U, - encoded: "He\x93\xad\x9c", - utf8: "He⌠ґ°", - }, - { - e: charmap.Macintosh, - encoded: "He\xdf\xd7", - utf8: "Hefl◊", - }, - { - e: charmap.MacintoshCyrillic, - encoded: "He\xbe\x94", - utf8: "HeЊФ", - }, - { - e: charmap.Windows874, - encoded: "He\xb7\xf0", - utf8: "Heทà¹", - }, - { - e: charmap.Windows1250, - encoded: "He\xe5\xe5o", - utf8: "Heĺĺo", - }, - { - e: charmap.Windows1251, - encoded: "H\xball\xfe", - utf8: "HÑ”llÑŽ", - }, - { - e: charmap.Windows1252, - encoded: "H\xe9ll\xf4 \xa5\xbA\xae\xa3\xd0", - utf8: "Héllô ¥º®£Ã", - }, - { - e: charmap.Windows1253, - encoded: "H\xe5ll\xd6", - utf8: "HεllΦ", - }, - { - e: charmap.Windows1254, - encoded: "\xd0ello", - utf8: "Äžello", - }, - { - e: charmap.Windows1255, - encoded: "He\xd4o", - utf8: "He×°o", - }, - { - e: charmap.Windows1256, - encoded: "H\xdbllo", - utf8: "Hغllo", - }, - { - e: charmap.Windows1257, - encoded: "He\xeflo", - utf8: "Heļlo", - }, - { - e: charmap.Windows1258, - encoded: "Hell\xf5", - utf8: "HellÆ¡", - }, - { - e: charmap.XUserDefined, - encoded: "\x00\x40\x7f\x80\xab\xff", - utf8: "\u0000\u0040\u007f\uf780\uf7ab\uf7ff", - }, - - // UTF-16 tests. - { - e: unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), - encoded: "\x00\x57\x00\xe4\xd8\x35\xdd\x65", - utf8: "\x57\u00e4\U0001d565", - }, - { - e: utf16BEEB, - encPrefix: "\xfe\xff", - encoded: "\x00\x57\x00\xe4\xd8\x35\xdd\x65", - utf8: "\x57\u00e4\U0001d565", - }, - { - e: unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), - encoded: "\x57\x00\xe4\x00\x35\xd8\x65\xdd", - utf8: "\x57\u00e4\U0001d565", - }, - { - e: utf16LEEB, - encPrefix: "\xff\xfe", - encoded: "\x57\x00\xe4\x00\x35\xd8\x65\xdd", - utf8: "\x57\u00e4\U0001d565", - }, - - // Chinese tests. - // - // "\u0081\u00de\u00df\u00e0\u00e1\u00e2\u00e3\uffff\U00010000" is a - // nonsense string that contains GB18030 encodable codepoints of which - // only U+00E0 and U+00E1 are GBK encodable. - // - // "A\u3000\u554a\u4e02\u4e90\u72dc\u7349\u02ca\u2588Z€" is a nonsense - // string that contains ASCII and GBK encodable codepoints from Levels - // 1-5 as well as the Euro sign. - // - // "A\u43f0\u4c32\U00027267\u3000\U0002910d\u79d4Z€" is a nonsense string - // that contains ASCII and Big5 encodable codepoints from the Basic - // Multilingual Plane and the Supplementary Ideographic Plane as well as - // the Euro sign. - // - // "花间一壶酒,独酌无相亲。" (simplified) and - // "花間一壺酒,ç¨é…Œç„¡ç›¸è¦ªã€‚" (traditional) - // are from the 8th century poem "Yuè Xià Dú Zhuó". - { - e: simplifiedchinese.GB18030, - encoded: "\x81\x30\x81\x31\x81\x30\x89\x37\x81\x30\x89\x38\xa8\xa4\xa8\xa2" + - "\x81\x30\x89\x39\x81\x30\x8a\x30\x84\x31\xa4\x39\x90\x30\x81\x30", - utf8: "\u0081\u00de\u00df\u00e0\u00e1\u00e2\u00e3\uffff\U00010000", - }, - { - e: simplifiedchinese.GB18030, - encoded: "\xbb\xa8\xbc\xe4\xd2\xbb\xba\xf8\xbe\xc6\xa3\xac\xb6\xc0\xd7\xc3" + - "\xce\xde\xcf\xe0\xc7\xd7\xa1\xa3", - utf8: "花间一壶酒,独酌无相亲。", - }, - { - e: simplifiedchinese.GBK, - encoded: "A\xa1\xa1\xb0\xa1\x81\x40\x81\x80\xaa\x40\xaa\x80\xa8\x40\xa8\x80Z\x80", - utf8: "A\u3000\u554a\u4e02\u4e90\u72dc\u7349\u02ca\u2588Z€", - }, - { - e: simplifiedchinese.GBK, - encoded: "\xbb\xa8\xbc\xe4\xd2\xbb\xba\xf8\xbe\xc6\xa3\xac\xb6\xc0\xd7\xc3" + - "\xce\xde\xcf\xe0\xc7\xd7\xa1\xa3", - utf8: "花间一壶酒,独酌无相亲。", - }, - { - e: simplifiedchinese.HZGB2312, - encoded: "A~{\x21\x21~~\x30\x21~}Z~~", - utf8: "A\u3000~\u554aZ~", - }, - { - e: simplifiedchinese.HZGB2312, - encPrefix: "~{", - encoded: ";(<dR;:x>F#,6@WCN^O`GW!#", - utf8: "花间一壶酒,独酌无相亲。", - }, - { - e: traditionalchinese.Big5, - encoded: "A\x87\x40\x87\x41\x87\x45\xa1\x40\xfe\xfd\xfe\xfeZ\xa3\xe1", - utf8: "A\u43f0\u4c32\U00027267\u3000\U0002910d\u79d4Z€", - }, - { - e: traditionalchinese.Big5, - encoded: "\xaa\xe1\xb6\xa1\xa4\x40\xb3\xfd\xb0\x73\xa1\x41\xbf\x57\xb0\x75" + - "\xb5\x4c\xac\xdb\xbf\xcb\xa1\x43", - utf8: "花間一壺酒,ç¨é…Œç„¡ç›¸è¦ªã€‚", - }, - - // Japanese tests. - // - // "A。カ゚ 0208: etc 0212: etc" is a nonsense string that contains ASCII, half-width - // kana, JIS X 0208 (including two near the kink in the Shift JIS second byte - // encoding) and JIS X 0212 encodable codepoints. - // - // "月日ã¯ç™¾ä»£ã®éŽå®¢ã«ã—ã¦ã€è¡Œã‹ãµå¹´ã‚‚åˆæ—…人也。" is from the 17th century poem - // "Oku no Hosomichi" and contains both hiragana and kanji. - { - e: japanese.EUCJP, - encoded: "A\x8e\xa1\x8e\xb6\x8e\xdf " + - "0208: \xa1\xa1\xa1\xa2\xa1\xdf\xa1\xe0\xa1\xfd\xa1\xfe\xa2\xa1\xa2\xa2\xf4\xa6 " + - "0212: \x8f\xa2\xaf\x8f\xed\xe3", - utf8: "A。カ゚ " + - "0208: \u3000\u3001\u00d7\u00f7\u25ce\u25c7\u25c6\u25a1\u7199 " + - "0212: \u02d8\u9fa5", - }, - { - e: japanese.EUCJP, - encoded: "\xb7\xee\xc6\xfc\xa4\xcf\xc9\xb4\xc2\xe5\xa4\xce\xb2\xe1\xb5\xd2" + - "\xa4\xcb\xa4\xb7\xa4\xc6\xa1\xa2\xb9\xd4\xa4\xab\xa4\xd5\xc7\xaf" + - "\xa4\xe2\xcb\xf4\xce\xb9\xbf\xcd\xcc\xe9\xa1\xa3", - utf8: "月日ã¯ç™¾ä»£ã®éŽå®¢ã«ã—ã¦ã€è¡Œã‹ãµå¹´ã‚‚åˆæ—…人也。", - }, - { - e: japanese.ISO2022JP, - encSuffix: "\x1b\x28\x42", - encoded: "\x1b\x28\x49\x21\x36\x5f\x1b\x28\x42 " + - "0208: \x1b\x24\x42\x21\x21\x21\x22\x21\x5f\x21\x60\x21\x7d\x21\x7e\x22\x21\x22\x22\x74\x26", - utf8: "。カ゚ " + - "0208: \u3000\u3001\u00d7\u00f7\u25ce\u25c7\u25c6\u25a1\u7199", - }, - { - e: japanese.ISO2022JP, - encPrefix: "\x1b\x24\x42", - encSuffix: "\x1b\x28\x42", - encoded: "\x37\x6e\x46\x7c\x24\x4f\x49\x34\x42\x65\x24\x4e\x32\x61\x35\x52" + - "\x24\x4b\x24\x37\x24\x46\x21\x22\x39\x54\x24\x2b\x24\x55\x47\x2f" + - "\x24\x62\x4b\x74\x4e\x39\x3f\x4d\x4c\x69\x21\x23", - utf8: "月日ã¯ç™¾ä»£ã®éŽå®¢ã«ã—ã¦ã€è¡Œã‹ãµå¹´ã‚‚åˆæ—…人也。", - }, - { - e: japanese.ShiftJIS, - encoded: "A\xa1\xb6\xdf " + - "0208: \x81\x40\x81\x41\x81\x7e\x81\x80\x81\x9d\x81\x9e\x81\x9f\x81\xa0\xea\xa4", - utf8: "A。カ゚ " + - "0208: \u3000\u3001\u00d7\u00f7\u25ce\u25c7\u25c6\u25a1\u7199", - }, - { - e: japanese.ShiftJIS, - encoded: "\x8c\x8e\x93\xfa\x82\xcd\x95\x53\x91\xe3\x82\xcc\x89\xdf\x8b\x71" + - "\x82\xc9\x82\xb5\x82\xc4\x81\x41\x8d\x73\x82\xa9\x82\xd3\x94\x4e" + - "\x82\xe0\x96\x94\x97\xb7\x90\x6c\x96\xe7\x81\x42", - utf8: "月日ã¯ç™¾ä»£ã®éŽå®¢ã«ã—ã¦ã€è¡Œã‹ãµå¹´ã‚‚åˆæ—…人也。", - }, - - // Korean tests. - // - // "A\uac02\uac35\uac56\ud401B\ud408\ud620\ud624C\u4f3d\u8a70D" is a - // nonsense string that contains ASCII, Hangul and CJK ideographs. - // - // "세계야, 안녕" translates as "Hello, world". - { - e: korean.EUCKR, - encoded: "A\x81\x41\x81\x61\x81\x81\xc6\xfeB\xc7\xa1\xc7\xfe\xc8\xa1C\xca\xa1\xfd\xfeD", - utf8: "A\uac02\uac35\uac56\ud401B\ud408\ud620\ud624C\u4f3d\u8a70D", - }, - { - e: korean.EUCKR, - encoded: "\xbc\xbc\xb0\xe8\xbe\xdf\x2c\x20\xbe\xc8\xb3\xe7", - utf8: "세계야, 안녕", - }, -} - -func TestBasics(t *testing.T) { - for _, tc := range basicTestCases { - for _, direction := range []string{"Decode", "Encode"} { - newTransformer, want, src := (func() transform.Transformer)(nil), "", "" - wPrefix, sPrefix, wSuffix, sSuffix := "", "", "", "" - if direction == "Decode" { - newTransformer, want, src = tc.e.NewDecoder, tc.utf8, tc.encoded - wPrefix, sPrefix, wSuffix, sSuffix = "", tc.encPrefix, "", tc.encSuffix - } else { - newTransformer, want, src = tc.e.NewEncoder, tc.encoded, tc.utf8 - wPrefix, sPrefix, wSuffix, sSuffix = tc.encPrefix, "", tc.encSuffix, "" - } - - dst := make([]byte, len(wPrefix)+len(want)+len(wSuffix)) - nDst, nSrc, err := newTransformer().Transform(dst, []byte(sPrefix+src+sSuffix), true) - if err != nil { - t.Errorf("%v: %s: %v", tc.e, direction, err) - continue - } - if nDst != len(wPrefix)+len(want)+len(wSuffix) { - t.Errorf("%v: %s: nDst got %d, want %d", - tc.e, direction, nDst, len(wPrefix)+len(want)+len(wSuffix)) - continue - } - if nSrc != len(sPrefix)+len(src)+len(sSuffix) { - t.Errorf("%v: %s: nSrc got %d, want %d", - tc.e, direction, nSrc, len(sPrefix)+len(src)+len(sSuffix)) - continue - } - if got := string(dst); got != wPrefix+want+wSuffix { - t.Errorf("%v: %s:\ngot %q\nwant %q", - tc.e, direction, got, wPrefix+want+wSuffix) - continue - } - - for _, n := range []int{0, 1, 2, 10, 123, 4567} { - input := sPrefix + strings.Repeat(src, n) + sSuffix - sr := strings.NewReader(input) - g, err := ioutil.ReadAll(transform.NewReader(sr, newTransformer())) - if err != nil { - t.Errorf("%v: %s: ReadAll: n=%d: %v", tc.e, direction, n, err) - continue - } - if len(g) == 0 && len(input) == 0 { - // If the input is empty then the output can be empty, - // regardless of whatever wPrefix is. - continue - } - got1, want1 := string(g), wPrefix+strings.Repeat(want, n)+wSuffix - if got1 != want1 { - t.Errorf("%v: %s: ReadAll: n=%d\ngot %q\nwant %q", - tc.e, direction, n, trim(got1), trim(want1)) - continue - } - } - } - } -} - -// TestNonRepertoire tests that codes outside of an Encoding's repertoire are -// converted: -// - to the Unicode replacement character '\ufffd' when decoding to UTF-8, -// - to the ASCII substitute character '\x1a' when encoding from UTF-8. -func TestNonRepertoire(t *testing.T) { - testCases := []struct { - e encoding.Encoding - dSrc, eSrc string - }{ - {charmap.Windows1252, "\x81", "ê°‚"}, - {japanese.EUCJP, "\xfe\xfc", "ê°‚"}, - {japanese.ISO2022JP, "\x1b$B\x7e\x7e", "ê°‚"}, - {japanese.ShiftJIS, "\xef\xfc", "ê°‚"}, - {korean.EUCKR, "\xfe\xfe", "×"}, - {simplifiedchinese.GBK, "\xfe\xfe", "ê°‚"}, - {simplifiedchinese.HZGB2312, "~{z~", "ê°‚"}, - {traditionalchinese.Big5, "\x81\x40", "ê°‚"}, - } - for _, tc := range testCases { - for _, direction := range []string{"Decode", "Encode"} { - enc, want, src := (transform.Transformer)(nil), "", "" - if direction == "Decode" { - enc, want, src = tc.e.NewDecoder(), "\ufffd", tc.dSrc - } else { - enc, want, src = tc.e.NewEncoder(), "\x1a", tc.eSrc - } - - dst, err := ioutil.ReadAll(transform.NewReader(strings.NewReader(src), enc)) - if err != nil { - t.Errorf("%s %v: %v", direction, tc.e, err) - continue - } - if got := string(dst); got != want { - t.Errorf("%s %v:\ngot %q\nwant %q", direction, tc.e, got, want) - continue - } - } - } -} - -// TestBig5CircumflexAndMacron tests the special cases listed in -// http://encoding.spec.whatwg.org/#big5 -// Note that these special cases aren't preserved by round-tripping through -// decoding and encoding (since -// http://encoding.spec.whatwg.org/index-big5.txt does not have an entry for -// U+0304 or U+030C), so we can't test this in TestBasics. -func TestBig5CircumflexAndMacron(t *testing.T) { - src := "\x88\x5f\x88\x60\x88\x61\x88\x62\x88\x63\x88\x64\x88\x65\x88\x66 " + - "\x88\xa2\x88\xa3\x88\xa4\x88\xa5\x88\xa6" - want := "ÓǑÒ\u00ca\u0304Ế\u00ca\u030cỀÊ " + - "ü\u00ea\u0304ế\u00ea\u030cá»" - dst, err := ioutil.ReadAll(transform.NewReader( - strings.NewReader(src), traditionalchinese.Big5.NewDecoder())) - if err != nil { - t.Fatal(err) - } - if got := string(dst); got != want { - t.Fatalf("\ngot %q\nwant %q", got, want) - } -} - -func TestEncodeInvalidUTF8(t *testing.T) { - inputs := []string{ - "hello.", - "wo\ufffdld.", - "ABC\xff\x80\x80", // Invalid UTF-8. - "\x80\x80\x80\x80\x80", - "\x80\x80D\x80\x80", // Valid rune at "D". - "E\xed\xa0\x80\xed\xbf\xbfF", // Two invalid UTF-8 runes (surrogates). - "G", - "H\xe2\x82", // U+20AC in UTF-8 is "\xe2\x82\xac", which we split over two - "\xacI\xe2\x82", // input lines. It maps to 0x80 in the Windows-1252 encoding. - } - // Each invalid source byte becomes '\x1a'. - want := strings.Replace("hello.wo?ld.ABC??????????D??E??????FGH\x80I??", "?", "\x1a", -1) - - transformer := charmap.Windows1252.NewEncoder() - gotBuf := make([]byte, 0, 1024) - src := make([]byte, 0, 1024) - for i, input := range inputs { - dst := make([]byte, 1024) - src = append(src, input...) - atEOF := i == len(inputs)-1 - nDst, nSrc, err := transformer.Transform(dst, src, atEOF) - gotBuf = append(gotBuf, dst[:nDst]...) - src = src[nSrc:] - if err != nil && err != transform.ErrShortSrc { - t.Fatalf("i=%d: %v", i, err) - } - if atEOF && err != nil { - t.Fatalf("i=%d: atEOF: %v", i, err) - } - } - if got := string(gotBuf); got != want { - t.Fatalf("\ngot %+q\nwant %+q", got, want) - } -} - -func TestReplacement(t *testing.T) { - for _, direction := range []string{"Decode", "Encode"} { - enc, want := (transform.Transformer)(nil), "" - if direction == "Decode" { - enc = encoding.Replacement.NewDecoder() - want = "\ufffd" - } else { - enc = encoding.Replacement.NewEncoder() - want = "AB\x00CD\ufffdYZ" - } - sr := strings.NewReader("AB\x00CD\x80YZ") - g, err := ioutil.ReadAll(transform.NewReader(sr, enc)) - if err != nil { - t.Errorf("%s: ReadAll: %v", direction, err) - continue - } - if got := string(g); got != want { - t.Errorf("%s:\ngot %q\nwant %q", direction, got, want) - continue - } - } -} - -func TestUTF8Validator(t *testing.T) { - testCases := []struct { - desc string - dstSize int - src string - atEOF bool - want string - wantErr error - }{ - { - "empty input", - 100, - "", - false, - "", - nil, - }, - { - "valid 1-byte 1-rune input", - 100, - "a", - false, - "a", - nil, - }, - { - "valid 3-byte 1-rune input", - 100, - "\u1234", - false, - "\u1234", - nil, - }, - { - "valid 5-byte 3-rune input", - 100, - "a\u0100\u0101", - false, - "a\u0100\u0101", - nil, - }, - { - "perfectly sized dst (non-ASCII)", - 5, - "a\u0100\u0101", - false, - "a\u0100\u0101", - nil, - }, - { - "short dst (non-ASCII)", - 4, - "a\u0100\u0101", - false, - "a\u0100", - transform.ErrShortDst, - }, - { - "perfectly sized dst (ASCII)", - 5, - "abcde", - false, - "abcde", - nil, - }, - { - "short dst (ASCII)", - 4, - "abcde", - false, - "abcd", - transform.ErrShortDst, - }, - { - "partial input (!EOF)", - 100, - "a\u0100\xf1", - false, - "a\u0100", - transform.ErrShortSrc, - }, - { - "invalid input (EOF)", - 100, - "a\u0100\xf1", - true, - "a\u0100", - encoding.ErrInvalidUTF8, - }, - { - "invalid input (!EOF)", - 100, - "a\u0100\x80", - false, - "a\u0100", - encoding.ErrInvalidUTF8, - }, - { - "invalid input (above U+10FFFF)", - 100, - "a\u0100\xf7\xbf\xbf\xbf", - false, - "a\u0100", - encoding.ErrInvalidUTF8, - }, - { - "invalid input (surrogate half)", - 100, - "a\u0100\xed\xa0\x80", - false, - "a\u0100", - encoding.ErrInvalidUTF8, - }, - } - for _, tc := range testCases { - dst := make([]byte, tc.dstSize) - nDst, nSrc, err := encoding.UTF8Validator.Transform(dst, []byte(tc.src), tc.atEOF) - if nDst < 0 || len(dst) < nDst { - t.Errorf("%s: nDst=%d out of range", tc.desc, nDst) - continue - } - got := string(dst[:nDst]) - if got != tc.want || nSrc != len(tc.want) || err != tc.wantErr { - t.Errorf("%s:\ngot %+q, %d, %v\nwant %+q, %d, %v", - tc.desc, got, nSrc, err, tc.want, len(tc.want), tc.wantErr) - continue - } - } -} - -var ( - utf16LEIB = unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM) // UTF-16LE (atypical interpretation) - utf16LEUB = unicode.UTF16(unicode.LittleEndian, unicode.UseBOM) // UTF-16, LE - utf16LEEB = unicode.UTF16(unicode.LittleEndian, unicode.ExpectBOM) // UTF-16, LE, Expect - utf16BEIB = unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM) // UTF-16BE (atypical interpretation) - utf16BEUB = unicode.UTF16(unicode.BigEndian, unicode.UseBOM) // UTF-16 default - utf16BEEB = unicode.UTF16(unicode.BigEndian, unicode.ExpectBOM) // UTF-16 Expect -) - -func TestUTF16(t *testing.T) { - testCases := []struct { - desc string - src string - notEOF bool // the inverse of atEOF - sizeDst int - want string - nSrc int - err error - t transform.Transformer - }{{ - desc: "utf-16 dec: BOM determines encoding BE (RFC 2781:3.3)", - src: "\xFE\xFF\xD8\x08\xDF\x45\x00\x3D\x00\x52\x00\x61", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 12, - t: utf16BEUB.NewDecoder(), - }, { - desc: "utf-16 dec: BOM determines encoding LE (RFC 2781:3.3)", - src: "\xFF\xFE\x08\xD8\x45\xDF\x3D\x00\x52\x00\x61\x00", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 12, - t: utf16LEUB.NewDecoder(), - }, { - desc: "utf-16 dec: BOM determines encoding LE, change default (RFC 2781:3.3)", - src: "\xFF\xFE\x08\xD8\x45\xDF\x3D\x00\x52\x00\x61\x00", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 12, - t: utf16BEUB.NewDecoder(), - }, { - desc: "utf-16 dec: Fail on missing BOM when required", - src: "\x08\xD8\x45\xDF\x3D\x00\xFF\xFE\xFE\xFF\x00\x52\x00\x61", - sizeDst: 100, - want: "", - nSrc: 0, - err: unicode.ErrMissingBOM, - t: utf16BEEB.NewDecoder(), - }, { - desc: "utf-16 dec: SHOULD interpret text as big-endian when BOM not present (RFC 2781:4.3)", - src: "\xD8\x08\xDF\x45\x00\x3D\x00\x52\x00\x61", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 10, - t: utf16BEUB.NewDecoder(), - }, { - // This is an error according to RFC 2781. But errors in RFC 2781 are - // open to interpretations, so I guess this is fine. - desc: "utf-16le dec: incorrect BOM is an error (RFC 2781:4.1)", - src: "\xFE\xFF\x08\xD8\x45\xDF\x3D\x00\x52\x00\x61\x00", - sizeDst: 100, - want: "\uFFFE\U00012345=Ra", - nSrc: 12, - t: utf16LEIB.NewDecoder(), - }, { - desc: "utf-16 enc: SHOULD write BOM (RFC 2781:3.3)", - src: "\U00012345=Ra", - sizeDst: 100, - want: "\xFF\xFE\x08\xD8\x45\xDF\x3D\x00\x52\x00\x61\x00", - nSrc: 7, - t: utf16LEUB.NewEncoder(), - }, { - desc: "utf-16 enc: SHOULD write BOM (RFC 2781:3.3)", - src: "\U00012345=Ra", - sizeDst: 100, - want: "\xFE\xFF\xD8\x08\xDF\x45\x00\x3D\x00\x52\x00\x61", - nSrc: 7, - t: utf16BEUB.NewEncoder(), - }, { - desc: "utf-16le enc: MUST NOT write BOM (RFC 2781:3.3)", - src: "\U00012345=Ra", - sizeDst: 100, - want: "\x08\xD8\x45\xDF\x3D\x00\x52\x00\x61\x00", - nSrc: 7, - t: utf16LEIB.NewEncoder(), - }, { - desc: "utf-16be dec: incorrect UTF-16: odd bytes", - src: "\x00", - sizeDst: 100, - want: "\uFFFD", - nSrc: 1, - t: utf16BEIB.NewDecoder(), - }, { - desc: "utf-16be dec: unpaired surrogate, odd bytes", - src: "\xD8\x45\x00", - sizeDst: 100, - want: "\uFFFD\uFFFD", - nSrc: 3, - t: utf16BEIB.NewDecoder(), - }, { - desc: "utf-16be dec: unpaired low surrogate + valid text", - src: "\xD8\x45\x00a", - sizeDst: 100, - want: "\uFFFDa", - nSrc: 4, - t: utf16BEIB.NewDecoder(), - }, { - desc: "utf-16be dec: unpaired low surrogate + valid text + single byte", - src: "\xD8\x45\x00ab", - sizeDst: 100, - want: "\uFFFDa\uFFFD", - nSrc: 5, - t: utf16BEIB.NewDecoder(), - }, { - desc: "utf-16le dec: unpaired high surrogate", - src: "\x00\x00\x00\xDC\x12\xD8", - sizeDst: 100, - want: "\x00\uFFFD\uFFFD", - nSrc: 6, - t: utf16LEIB.NewDecoder(), - }, { - desc: "utf-16be dec: two unpaired low surrogates", - src: "\xD8\x45\xD8\x12", - sizeDst: 100, - want: "\uFFFD\uFFFD", - nSrc: 4, - t: utf16BEIB.NewDecoder(), - }, { - desc: "utf-16be dec: short dst", - src: "\x00a", - sizeDst: 0, - want: "", - nSrc: 0, - t: utf16BEIB.NewDecoder(), - err: transform.ErrShortDst, - }, { - desc: "utf-16be dec: short dst surrogate", - src: "\xD8\xF5\xDC\x12", - sizeDst: 3, - want: "", - nSrc: 0, - t: utf16BEIB.NewDecoder(), - err: transform.ErrShortDst, - }, { - desc: "utf-16be dec: short dst trailing byte", - src: "\x00", - sizeDst: 2, - want: "", - nSrc: 0, - t: utf16BEIB.NewDecoder(), - err: transform.ErrShortDst, - }, { - desc: "utf-16be dec: short src", - src: "\x00", - notEOF: true, - sizeDst: 3, - want: "", - nSrc: 0, - t: utf16BEIB.NewDecoder(), - err: transform.ErrShortSrc, - }, { - desc: "utf-16 enc", - src: "\U00012345=Ra", - sizeDst: 100, - want: "\xFE\xFF\xD8\x08\xDF\x45\x00\x3D\x00\x52\x00\x61", - nSrc: 7, - t: utf16BEUB.NewEncoder(), - }, { - desc: "utf-16 enc: short dst normal", - src: "\U00012345=Ra", - sizeDst: 9, - want: "\xD8\x08\xDF\x45\x00\x3D\x00\x52", - nSrc: 6, - t: utf16BEIB.NewEncoder(), - err: transform.ErrShortDst, - }, { - desc: "utf-16 enc: short dst surrogate", - src: "\U00012345=Ra", - sizeDst: 3, - want: "", - nSrc: 0, - t: utf16BEIB.NewEncoder(), - err: transform.ErrShortDst, - }, { - desc: "utf-16 enc: short src", - src: "\U00012345=Ra\xC2", - notEOF: true, - sizeDst: 100, - want: "\xD8\x08\xDF\x45\x00\x3D\x00\x52\x00\x61", - nSrc: 7, - t: utf16BEIB.NewEncoder(), - err: transform.ErrShortSrc, - }, { - desc: "utf-16be dec: don't change byte order mid-stream", - src: "\xFE\xFF\xD8\x08\xDF\x45\x00\x3D\xFF\xFE\x00\x52\x00\x61", - sizeDst: 100, - want: "\U00012345=\ufffeRa", - nSrc: 14, - t: utf16BEUB.NewDecoder(), - }, { - desc: "utf-16le dec: don't change byte order mid-stream", - src: "\xFF\xFE\x08\xD8\x45\xDF\x3D\x00\xFF\xFE\xFE\xFF\x52\x00\x61\x00", - sizeDst: 100, - want: "\U00012345=\ufeff\ufffeRa", - nSrc: 16, - t: utf16LEUB.NewDecoder(), - }} - for i, tc := range testCases { - b := make([]byte, tc.sizeDst) - nDst, nSrc, err := tc.t.Transform(b, []byte(tc.src), !tc.notEOF) - if err != tc.err { - t.Errorf("%d:%s: error was %v; want %v", i, tc.desc, err, tc.err) - } - if got := string(b[:nDst]); got != tc.want { - t.Errorf("%d:%s: result was %q: want %q", i, tc.desc, got, tc.want) - } - if nSrc != tc.nSrc { - t.Errorf("%d:%s: nSrc was %d; want %d", i, tc.desc, nSrc, tc.nSrc) - } - } -} - -func TestBOMOverride(t *testing.T) { - dec := unicode.BOMOverride(charmap.CodePage437.NewDecoder()) - dst := make([]byte, 100) - for i, tc := range []struct { - src string - atEOF bool - dst string - nSrc int - err error - }{ - 0: {"H\x82ll\x93", true, "Héllô", 5, nil}, - 1: {"\uFEFFHéllö", true, "Héllö", 10, nil}, - 2: {"\xFE\xFF\x00H\x00e\x00l\x00l\x00o", true, "Hello", 12, nil}, - 3: {"\xFF\xFEH\x00e\x00l\x00l\x00o\x00", true, "Hello", 12, nil}, - 4: {"\uFEFF", true, "", 3, nil}, - 5: {"\xFE\xFF", true, "", 2, nil}, - 6: {"\xFF\xFE", true, "", 2, nil}, - 7: {"\xEF\xBB", true, "\u2229\u2557", 2, nil}, - 8: {"\xEF", true, "\u2229", 1, nil}, - 9: {"", true, "", 0, nil}, - 10: {"\xFE", true, "\u25a0", 1, nil}, - 11: {"\xFF", true, "\u00a0", 1, nil}, - 12: {"\xEF\xBB", false, "", 0, transform.ErrShortSrc}, - 13: {"\xEF", false, "", 0, transform.ErrShortSrc}, - 14: {"", false, "", 0, transform.ErrShortSrc}, - 15: {"\xFE", false, "", 0, transform.ErrShortSrc}, - 16: {"\xFF", false, "", 0, transform.ErrShortSrc}, - 17: {"\xFF\xFE", false, "", 0, transform.ErrShortSrc}, - } { - dec.Reset() - nDst, nSrc, err := dec.Transform(dst, []byte(tc.src), tc.atEOF) - got := string(dst[:nDst]) - if nSrc != tc.nSrc { - t.Errorf("%d: nSrc: got %d; want %d", i, nSrc, tc.nSrc) - } - if got != tc.dst { - t.Errorf("%d: got %+q; want %+q", i, got, tc.dst) - } - if err != tc.err { - t.Errorf("%d: error: got %v; want %v", i, err, tc.err) - } - } -} - -// testdataFiles are files in testdata/*.txt. -var testdataFiles = []struct { - enc encoding.Encoding - basename, ext string -}{ - {charmap.Windows1252, "candide", "windows-1252"}, - {japanese.EUCJP, "rashomon", "euc-jp"}, - {japanese.ISO2022JP, "rashomon", "iso-2022-jp"}, - {japanese.ShiftJIS, "rashomon", "shift-jis"}, - {korean.EUCKR, "unsu-joh-eun-nal", "euc-kr"}, - {simplifiedchinese.GBK, "sunzi-bingfa-simplified", "gbk"}, - {simplifiedchinese.HZGB2312, "sunzi-bingfa-gb-levels-1-and-2", "hz-gb2312"}, - {traditionalchinese.Big5, "sunzi-bingfa-traditional", "big5"}, - {utf16LEIB, "candide", "utf-16le"}, - - // GB18030 is a superset of GBK and is nominally a Simplified Chinese - // encoding, but it can also represent the entire Basic Multilingual - // Plane, including codepoints like 'â' that aren't encodable by GBK. - // GB18030 on Simplified Chinese should perform similarly to GBK on - // Simplified Chinese. GB18030 on "candide" is more interesting. - {simplifiedchinese.GB18030, "candide", "gb18030"}, -} - -func load(direction string, enc encoding.Encoding) ([]byte, []byte, func() transform.Transformer, error) { - basename, ext, count := "", "", 0 - for _, tf := range testdataFiles { - if tf.enc == enc { - basename, ext = tf.basename, tf.ext - count++ - } - } - if count != 1 { - if count == 0 { - return nil, nil, nil, fmt.Errorf("no testdataFiles for %s", enc) - } - return nil, nil, nil, fmt.Errorf("too many testdataFiles for %s", enc) - } - dstFile := fmt.Sprintf("testdata/%s-%s.txt", basename, ext) - srcFile := fmt.Sprintf("testdata/%s-utf-8.txt", basename) - newTransformer := enc.NewEncoder - if direction == "Decode" { - dstFile, srcFile = srcFile, dstFile - newTransformer = enc.NewDecoder - } - dst, err := ioutil.ReadFile(dstFile) - if err != nil { - return nil, nil, nil, err - } - src, err := ioutil.ReadFile(srcFile) - if err != nil { - return nil, nil, nil, err - } - return dst, src, newTransformer, nil -} - -func TestFiles(t *testing.T) { - for _, dir := range []string{"Decode", "Encode"} { - for _, tf := range testdataFiles { - dst, src, newTransformer, err := load(dir, tf.enc) - if err != nil { - t.Errorf("%s, %s: load: %v", dir, tf.enc, err) - continue - } - buf := bytes.NewBuffer(nil) - r := transform.NewReader(bytes.NewReader(src), newTransformer()) - if _, err := io.Copy(buf, r); err != nil { - t.Errorf("%s, %s: copy: %v", dir, tf.enc, err) - continue - } - if !bytes.Equal(buf.Bytes(), dst) { - t.Errorf("%s, %s: transformed bytes did not match golden file", dir, tf.enc) - continue - } - } - } -} - -func benchmark(b *testing.B, direction string, enc encoding.Encoding) { - _, src, newTransformer, err := load(direction, enc) - if err != nil { - b.Fatal(err) - } - b.SetBytes(int64(len(src))) - b.ResetTimer() - for i := 0; i < b.N; i++ { - r := transform.NewReader(bytes.NewReader(src), newTransformer()) - io.Copy(ioutil.Discard, r) - } -} - -func BenchmarkBig5Decoder(b *testing.B) { benchmark(b, "Decode", traditionalchinese.Big5) } -func BenchmarkBig5Encoder(b *testing.B) { benchmark(b, "Encode", traditionalchinese.Big5) } -func BenchmarkCharmapDecoder(b *testing.B) { benchmark(b, "Decode", charmap.Windows1252) } -func BenchmarkCharmapEncoder(b *testing.B) { benchmark(b, "Encode", charmap.Windows1252) } -func BenchmarkEUCJPDecoder(b *testing.B) { benchmark(b, "Decode", japanese.EUCJP) } -func BenchmarkEUCJPEncoder(b *testing.B) { benchmark(b, "Encode", japanese.EUCJP) } -func BenchmarkEUCKRDecoder(b *testing.B) { benchmark(b, "Decode", korean.EUCKR) } -func BenchmarkEUCKREncoder(b *testing.B) { benchmark(b, "Encode", korean.EUCKR) } -func BenchmarkGB18030Decoder(b *testing.B) { benchmark(b, "Decode", simplifiedchinese.GB18030) } -func BenchmarkGB18030Encoder(b *testing.B) { benchmark(b, "Encode", simplifiedchinese.GB18030) } -func BenchmarkGBKDecoder(b *testing.B) { benchmark(b, "Decode", simplifiedchinese.GBK) } -func BenchmarkGBKEncoder(b *testing.B) { benchmark(b, "Encode", simplifiedchinese.GBK) } -func BenchmarkHZGB2312Decoder(b *testing.B) { benchmark(b, "Decode", simplifiedchinese.HZGB2312) } -func BenchmarkHZGB2312Encoder(b *testing.B) { benchmark(b, "Encode", simplifiedchinese.HZGB2312) } -func BenchmarkISO2022JPDecoder(b *testing.B) { benchmark(b, "Decode", japanese.ISO2022JP) } -func BenchmarkISO2022JPEncoder(b *testing.B) { benchmark(b, "Encode", japanese.ISO2022JP) } -func BenchmarkShiftJISDecoder(b *testing.B) { benchmark(b, "Decode", japanese.ShiftJIS) } -func BenchmarkShiftJISEncoder(b *testing.B) { benchmark(b, "Encode", japanese.ShiftJIS) } -func BenchmarkUTF16Decoder(b *testing.B) { benchmark(b, "Decode", utf16LEIB) } -func BenchmarkUTF16Encoder(b *testing.B) { benchmark(b, "Encode", utf16LEIB) } diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/example_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/example_test.go deleted file mode 100644 index cc279b7a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/example_test.go +++ /dev/null @@ -1,40 +0,0 @@ -// 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 encoding_test - -import ( - "fmt" - "io" - "os" - "strings" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -func ExampleDecodeWindows1252() { - sr := strings.NewReader("Gar\xe7on !") - tr := transform.NewReader(sr, charmap.Windows1252.NewDecoder()) - io.Copy(os.Stdout, tr) - // Output: Garçon ! -} - -func ExampleUTF8Validator() { - for i := 0; i < 2; i++ { - transformer := charmap.Windows1252.NewEncoder() - if i == 1 { - transformer = transform.Chain(encoding.UTF8Validator, transformer) - } - dst := make([]byte, 256) - src := []byte("abc\xffxyz") // src is invalid UTF-8. - nDst, nSrc, err := transformer.Transform(dst, src, true) - fmt.Printf("i=%d: produced %q, consumed %q, error %v\n", - i, dst[:nDst], src[:nSrc], err) - } - // Output: - // i=0: produced "abc\x1axyz", consumed "abc\xffxyz", error <nil> - // i=1: produced "abc", consumed "abc", error encoding: invalid UTF-8 -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/gen.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/gen.go deleted file mode 100644 index 850a3a72..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/gen.go +++ /dev/null @@ -1,166 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "bytes" - "encoding/json" - "fmt" - "log" - "strings" - - "golang.org/x/text/internal/gen" -) - -type group struct { - Encodings []struct { - Labels []string - Name string - } -} - -func main() { - gen.Init() - - r := gen.Open("http://www.w3.org/TR", "w3", "encoding/indexes/encodings.json") - var groups []group - if err := json.NewDecoder(r).Decode(&groups); err != nil { - log.Fatalf("Error reading encodings.json: %v", err) - } - - w := &bytes.Buffer{} - fmt.Fprintln(w, "type htmlEncoding byte") - fmt.Fprintln(w, "const (") - for i, g := range groups { - for _, e := range g.Encodings { - name := consts[e.Name] - if name == "" { - log.Fatalf("No const defined for %s.", e.Name) - } - if i == 0 { - fmt.Fprintf(w, "%s htmlEncoding = iota\n", name) - } else { - fmt.Fprintf(w, "%s\n", name) - } - } - } - fmt.Fprintln(w, "numEncodings") - fmt.Fprint(w, ")\n\n") - - fmt.Fprintln(w, "var canonical = [numEncodings]string{") - for _, g := range groups { - for _, e := range g.Encodings { - fmt.Fprintf(w, "%q,\n", e.Name) - } - } - fmt.Fprint(w, "}\n\n") - - fmt.Fprintln(w, "var nameMap = map[string]htmlEncoding{") - for _, g := range groups { - for _, e := range g.Encodings { - for _, l := range e.Labels { - fmt.Fprintf(w, "%q: %s,\n", l, consts[e.Name]) - } - } - } - fmt.Fprint(w, "}\n\n") - - var tags []string - fmt.Fprintln(w, "var localeMap = []htmlEncoding{") - for _, loc := range locales { - tags = append(tags, loc.tag) - fmt.Fprintf(w, "%s, // %s \n", consts[loc.name], loc.tag) - } - fmt.Fprint(w, "}\n\n") - - fmt.Fprintf(w, "const locales = %q\n", strings.Join(tags, " ")) - - gen.WriteGoFile("tables.go", "htmlindex", w.Bytes()) -} - -// consts maps canonical encoding name to internal constant. -var consts = map[string]string{ - "utf-8": "utf8", - "ibm866": "ibm866", - "iso-8859-2": "iso8859_2", - "iso-8859-3": "iso8859_3", - "iso-8859-4": "iso8859_4", - "iso-8859-5": "iso8859_5", - "iso-8859-6": "iso8859_6", - "iso-8859-7": "iso8859_7", - "iso-8859-8": "iso8859_8", - "iso-8859-8-i": "iso8859_8I", - "iso-8859-10": "iso8859_10", - "iso-8859-13": "iso8859_13", - "iso-8859-14": "iso8859_14", - "iso-8859-15": "iso8859_15", - "iso-8859-16": "iso8859_16", - "koi8-r": "koi8r", - "koi8-u": "koi8u", - "macintosh": "macintosh", - "windows-874": "windows874", - "windows-1250": "windows1250", - "windows-1251": "windows1251", - "windows-1252": "windows1252", - "windows-1253": "windows1253", - "windows-1254": "windows1254", - "windows-1255": "windows1255", - "windows-1256": "windows1256", - "windows-1257": "windows1257", - "windows-1258": "windows1258", - "x-mac-cyrillic": "macintoshCyrillic", - "gb18030": "gb18030", - "hz-gb-2312": "hzgb2312", - "big5": "big5", - "euc-jp": "eucjp", - "iso-2022-jp": "iso2022jp", - "shift_jis": "shiftJIS", - "euc-kr": "euckr", - "replacement": "replacement", - "utf-16be": "utf16be", - "utf-16le": "utf16le", - "x-user-defined": "xUserDefined", -} - -// locales is taken from -// https://html.spec.whatwg.org/multipage/syntax.html#encoding-sniffing-algorithm. -var locales = []struct{ tag, name string }{ - {"und", "windows-1252"}, // The default value. - {"ar", "windows-1256"}, - {"ba", "windows-1251"}, - {"be", "windows-1251"}, - {"bg", "windows-1251"}, - {"cs", "windows-1250"}, - {"el", "iso-8859-7"}, - {"et", "windows-1257"}, - {"fa", "windows-1256"}, - {"he", "windows-1255"}, - {"hr", "windows-1250"}, - {"hu", "iso-8859-2"}, - {"ja", "shift_jis"}, - {"kk", "windows-1251"}, - {"ko", "euc-kr"}, - {"ku", "windows-1254"}, - {"ky", "windows-1251"}, - {"lt", "windows-1257"}, - {"lv", "windows-1257"}, - {"mk", "windows-1251"}, - {"pl", "iso-8859-2"}, - {"ru", "windows-1251"}, - {"sah", "windows-1251"}, - {"sk", "windows-1250"}, - {"sl", "iso-8859-2"}, - {"sr", "windows-1251"}, - {"tg", "windows-1251"}, - {"th", "windows-874"}, - {"tr", "windows-1254"}, - {"tt", "windows-1251"}, - {"uk", "windows-1251"}, - {"vi", "windows-1258"}, - {"zh-hans", "gb18030"}, - {"zh-hant", "big5"}, -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/htmlindex.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/htmlindex.go deleted file mode 100644 index d764333a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/htmlindex.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go - -// Package htmlindex maps character set encoding names to Encodings as -// recommended by the W3C for use in HTML 5. See http://www.w3.org/TR/encoding. -package htmlindex - -// TODO: perhaps have a "bare" version of the index (used by this package) that -// is not pre-loaded with all encodings. Global variables in encodings prevent -// the linker from being able to purge unneeded tables. This means that -// referencing all encodings, as this package does for the default index, links -// in all encodings unconditionally. -// -// This issue can be solved by either solving the linking issue (see -// https://github.com/golang/go/issues/6330) or refactoring the encoding tables -// (e.g. moving the tables to internal packages that do not use global -// variables). - -// TODO: allow canonicalizing names - -import ( - "errors" - "strings" - "sync" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -var ( - errInvalidName = errors.New("htmlindex: invalid encoding name") - errUnknown = errors.New("htmlindex: unknown Encoding") - errUnsupported = errors.New("htmlindex: this encoding is not supported") -) - -var ( - matcherOnce sync.Once - matcher language.Matcher -) - -// LanguageDefault returns the canonical name of the default encoding for a -// given language. -func LanguageDefault(tag language.Tag) string { - matcherOnce.Do(func() { - tags := []language.Tag{} - for _, t := range strings.Split(locales, " ") { - tags = append(tags, language.MustParse(t)) - } - matcher = language.NewMatcher(tags) - }) - _, i, _ := matcher.Match(tag) - return canonical[localeMap[i]] // Default is Windows-1252. -} - -// Get returns an Encoding for one of the names listed in -// http://www.w3.org/TR/encoding using the Default Index. Matching is case- -// insensitive. -func Get(name string) (encoding.Encoding, error) { - x, ok := nameMap[strings.ToLower(strings.TrimSpace(name))] - if !ok { - return nil, errInvalidName - } - return encodings[x], nil -} - -// Name reports the canonical name of the given Encoding. It will return -// an error if e is not associated with a supported encoding scheme. -func Name(e encoding.Encoding) (string, error) { - id, ok := e.(identifier.Interface) - if !ok { - return "", errUnknown - } - mib, _ := id.ID() - if mib == 0 { - return "", errUnknown - } - v, ok := mibMap[mib] - if !ok { - return "", errUnsupported - } - return canonical[v], nil -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/htmlindex_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/htmlindex_test.go deleted file mode 100644 index 33e66bbc..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/htmlindex_test.go +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package htmlindex - -import ( - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/unicode" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -func TestGet(t *testing.T) { - for i, tc := range []struct { - name string - canonical string - err error - }{ - {"utf-8", "utf-8", nil}, - {" utf-8 ", "utf-8", nil}, - {" l5 ", "windows-1254", nil}, - {"latin5 ", "windows-1254", nil}, - {"latin 5", "", errInvalidName}, - {"latin-5", "", errInvalidName}, - } { - enc, err := Get(tc.name) - if err != tc.err { - t.Errorf("%d: error was %v; want %v", i, err, tc.err) - } - if err != nil { - continue - } - if got, err := Name(enc); got != tc.canonical { - t.Errorf("%d: Name(Get(%q)) = %q; want %q (%v)", i, tc.name, got, tc.canonical, err) - } - } -} - -func TestName(t *testing.T) { - for i, tc := range []struct { - desc string - enc encoding.Encoding - name string - err error - }{{ - "defined encoding", - charmap.ISO8859_2, - "iso-8859-2", - nil, - }, { - "defined Unicode encoding", - unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), - "utf-16be", - nil, - }, { - "undefined Unicode encoding in HTML standard", - unicode.UTF16(unicode.BigEndian, unicode.UseBOM), - "", - errUnsupported, - }, { - "undefined other encoding in HTML standard", - charmap.CodePage437, - "", - errUnsupported, - }, { - "unknown encoding", - encoding.Nop, - "", - errUnknown, - }} { - name, err := Name(tc.enc) - if name != tc.name || err != tc.err { - t.Errorf("%d:%s: got %q, %v; want %q, %v", i, tc.desc, name, err, tc.name, tc.err) - } - } -} - -func TestLanguageDefault(t *testing.T) { - for _, tc := range []struct{ tag, want string }{ - {"und", "windows-1252"}, // The default value. - {"ar", "windows-1256"}, - {"ba", "windows-1251"}, - {"be", "windows-1251"}, - {"bg", "windows-1251"}, - {"cs", "windows-1250"}, - {"el", "iso-8859-7"}, - {"et", "windows-1257"}, - {"fa", "windows-1256"}, - {"he", "windows-1255"}, - {"hr", "windows-1250"}, - {"hu", "iso-8859-2"}, - {"ja", "shift_jis"}, - {"kk", "windows-1251"}, - {"ko", "euc-kr"}, - {"ku", "windows-1254"}, - {"ky", "windows-1251"}, - {"lt", "windows-1257"}, - {"lv", "windows-1257"}, - {"mk", "windows-1251"}, - {"pl", "iso-8859-2"}, - {"ru", "windows-1251"}, - {"sah", "windows-1251"}, - {"sk", "windows-1250"}, - {"sl", "iso-8859-2"}, - {"sr", "windows-1251"}, - {"tg", "windows-1251"}, - {"th", "windows-874"}, - {"tr", "windows-1254"}, - {"tt", "windows-1251"}, - {"uk", "windows-1251"}, - {"vi", "windows-1258"}, - {"zh-hans", "gb18030"}, - {"zh-hant", "big5"}, - // Variants and close approximates of the above. - {"ar_EG", "windows-1256"}, - {"bs", "windows-1250"}, // Bosnian Latin maps to Croatian. - // Use default fallback in case of miss. - {"nl", "windows-1252"}, - } { - if got := LanguageDefault(language.MustParse(tc.tag)); got != tc.want { - t.Errorf("LanguageDefault(%s) = %s; want %s", tc.tag, got, tc.want) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/map.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/map.go deleted file mode 100644 index 823bbb5b..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/map.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package htmlindex - -import ( - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/unicode" -) - -// mibMap maps a MIB identifier to an htmlEncoding index. -var mibMap = map[identifier.MIB]htmlEncoding{ - identifier.UTF8: utf8, - identifier.UTF16BE: utf16be, - identifier.UTF16LE: utf16le, - identifier.IBM866: ibm866, - identifier.ISOLatin2: iso8859_2, - identifier.ISOLatin3: iso8859_3, - identifier.ISOLatin4: iso8859_4, - identifier.ISOLatinCyrillic: iso8859_5, - identifier.ISOLatinArabic: iso8859_6, - identifier.ISOLatinGreek: iso8859_7, - identifier.ISOLatinHebrew: iso8859_8, - identifier.ISO88598I: iso8859_8I, - identifier.ISOLatin6: iso8859_10, - identifier.ISO885913: iso8859_13, - identifier.ISO885914: iso8859_14, - identifier.ISO885915: iso8859_15, - identifier.ISO885916: iso8859_16, - identifier.KOI8R: koi8r, - identifier.KOI8U: koi8u, - identifier.Macintosh: macintosh, - identifier.MacintoshCyrillic: macintoshCyrillic, - identifier.Windows874: windows874, - identifier.Windows1250: windows1250, - identifier.Windows1251: windows1251, - identifier.Windows1252: windows1252, - identifier.Windows1253: windows1253, - identifier.Windows1254: windows1254, - identifier.Windows1255: windows1255, - identifier.Windows1256: windows1256, - identifier.Windows1257: windows1257, - identifier.Windows1258: windows1258, - identifier.XUserDefined: xUserDefined, - identifier.GB18030: gb18030, - identifier.HZGB2312: hzgb2312, - identifier.Big5: big5, - identifier.EUCPkdFmtJapanese: eucjp, - identifier.ISO2022JP: iso2022jp, - identifier.ShiftJIS: shiftJIS, - identifier.EUCKR: euckr, -} - -// encodings maps the internal htmlEncoding to an Encoding. -// TODO: consider using a reusable index in encoding/internal. -var encodings = [numEncodings]encoding.Encoding{ - // TODO: replace with proper UTF-8 encoding. - utf8: &internal.Encoding{encoding.Nop, "UTF-8", identifier.UTF8}, - ibm866: charmap.CodePage866, - iso8859_2: charmap.ISO8859_2, - iso8859_3: charmap.ISO8859_3, - iso8859_4: charmap.ISO8859_4, - iso8859_5: charmap.ISO8859_5, - iso8859_6: charmap.ISO8859_6, - iso8859_7: charmap.ISO8859_7, - iso8859_8: charmap.ISO8859_8, - iso8859_8I: charmap.ISO8859_8I, - iso8859_10: charmap.ISO8859_10, - iso8859_13: charmap.ISO8859_13, - iso8859_14: charmap.ISO8859_14, - iso8859_15: charmap.ISO8859_15, - iso8859_16: charmap.ISO8859_16, - koi8r: charmap.KOI8R, - koi8u: charmap.KOI8U, - macintosh: charmap.Macintosh, - windows874: charmap.Windows874, - windows1250: charmap.Windows1250, - windows1251: charmap.Windows1251, - windows1252: charmap.Windows1252, - windows1253: charmap.Windows1253, - windows1254: charmap.Windows1254, - windows1255: charmap.Windows1255, - windows1256: charmap.Windows1256, - windows1257: charmap.Windows1257, - windows1258: charmap.Windows1258, - macintoshCyrillic: charmap.MacintoshCyrillic, - gb18030: simplifiedchinese.GB18030, - hzgb2312: simplifiedchinese.HZGB2312, - big5: traditionalchinese.Big5, - eucjp: japanese.EUCJP, - iso2022jp: japanese.ISO2022JP, - shiftJIS: japanese.ShiftJIS, - euckr: korean.EUCKR, - replacement: encoding.Replacement, - utf16be: unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), - utf16le: unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), - xUserDefined: charmap.XUserDefined, -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/tables.go deleted file mode 100644 index 88c0fcc5..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/htmlindex/tables.go +++ /dev/null @@ -1,350 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package htmlindex - -type htmlEncoding byte - -const ( - utf8 htmlEncoding = iota - ibm866 - iso8859_2 - iso8859_3 - iso8859_4 - iso8859_5 - iso8859_6 - iso8859_7 - iso8859_8 - iso8859_8I - iso8859_10 - iso8859_13 - iso8859_14 - iso8859_15 - iso8859_16 - koi8r - koi8u - macintosh - windows874 - windows1250 - windows1251 - windows1252 - windows1253 - windows1254 - windows1255 - windows1256 - windows1257 - windows1258 - macintoshCyrillic - gb18030 - hzgb2312 - big5 - eucjp - iso2022jp - shiftJIS - euckr - replacement - utf16be - utf16le - xUserDefined - numEncodings -) - -var canonical = [numEncodings]string{ - "utf-8", - "ibm866", - "iso-8859-2", - "iso-8859-3", - "iso-8859-4", - "iso-8859-5", - "iso-8859-6", - "iso-8859-7", - "iso-8859-8", - "iso-8859-8-i", - "iso-8859-10", - "iso-8859-13", - "iso-8859-14", - "iso-8859-15", - "iso-8859-16", - "koi8-r", - "koi8-u", - "macintosh", - "windows-874", - "windows-1250", - "windows-1251", - "windows-1252", - "windows-1253", - "windows-1254", - "windows-1255", - "windows-1256", - "windows-1257", - "windows-1258", - "x-mac-cyrillic", - "gb18030", - "hz-gb-2312", - "big5", - "euc-jp", - "iso-2022-jp", - "shift_jis", - "euc-kr", - "replacement", - "utf-16be", - "utf-16le", - "x-user-defined", -} - -var nameMap = map[string]htmlEncoding{ - "unicode-1-1-utf-8": utf8, - "utf-8": utf8, - "utf8": utf8, - "866": ibm866, - "cp866": ibm866, - "csibm866": ibm866, - "ibm866": ibm866, - "csisolatin2": iso8859_2, - "iso-8859-2": iso8859_2, - "iso-ir-101": iso8859_2, - "iso8859-2": iso8859_2, - "iso88592": iso8859_2, - "iso_8859-2": iso8859_2, - "iso_8859-2:1987": iso8859_2, - "l2": iso8859_2, - "latin2": iso8859_2, - "csisolatin3": iso8859_3, - "iso-8859-3": iso8859_3, - "iso-ir-109": iso8859_3, - "iso8859-3": iso8859_3, - "iso88593": iso8859_3, - "iso_8859-3": iso8859_3, - "iso_8859-3:1988": iso8859_3, - "l3": iso8859_3, - "latin3": iso8859_3, - "csisolatin4": iso8859_4, - "iso-8859-4": iso8859_4, - "iso-ir-110": iso8859_4, - "iso8859-4": iso8859_4, - "iso88594": iso8859_4, - "iso_8859-4": iso8859_4, - "iso_8859-4:1988": iso8859_4, - "l4": iso8859_4, - "latin4": iso8859_4, - "csisolatincyrillic": iso8859_5, - "cyrillic": iso8859_5, - "iso-8859-5": iso8859_5, - "iso-ir-144": iso8859_5, - "iso8859-5": iso8859_5, - "iso88595": iso8859_5, - "iso_8859-5": iso8859_5, - "iso_8859-5:1988": iso8859_5, - "arabic": iso8859_6, - "asmo-708": iso8859_6, - "csiso88596e": iso8859_6, - "csiso88596i": iso8859_6, - "csisolatinarabic": iso8859_6, - "ecma-114": iso8859_6, - "iso-8859-6": iso8859_6, - "iso-8859-6-e": iso8859_6, - "iso-8859-6-i": iso8859_6, - "iso-ir-127": iso8859_6, - "iso8859-6": iso8859_6, - "iso88596": iso8859_6, - "iso_8859-6": iso8859_6, - "iso_8859-6:1987": iso8859_6, - "csisolatingreek": iso8859_7, - "ecma-118": iso8859_7, - "elot_928": iso8859_7, - "greek": iso8859_7, - "greek8": iso8859_7, - "iso-8859-7": iso8859_7, - "iso-ir-126": iso8859_7, - "iso8859-7": iso8859_7, - "iso88597": iso8859_7, - "iso_8859-7": iso8859_7, - "iso_8859-7:1987": iso8859_7, - "sun_eu_greek": iso8859_7, - "csiso88598e": iso8859_8, - "csisolatinhebrew": iso8859_8, - "hebrew": iso8859_8, - "iso-8859-8": iso8859_8, - "iso-8859-8-e": iso8859_8, - "iso-ir-138": iso8859_8, - "iso8859-8": iso8859_8, - "iso88598": iso8859_8, - "iso_8859-8": iso8859_8, - "iso_8859-8:1988": iso8859_8, - "visual": iso8859_8, - "csiso88598i": iso8859_8I, - "iso-8859-8-i": iso8859_8I, - "logical": iso8859_8I, - "csisolatin6": iso8859_10, - "iso-8859-10": iso8859_10, - "iso-ir-157": iso8859_10, - "iso8859-10": iso8859_10, - "iso885910": iso8859_10, - "l6": iso8859_10, - "latin6": iso8859_10, - "iso-8859-13": iso8859_13, - "iso8859-13": iso8859_13, - "iso885913": iso8859_13, - "iso-8859-14": iso8859_14, - "iso8859-14": iso8859_14, - "iso885914": iso8859_14, - "csisolatin9": iso8859_15, - "iso-8859-15": iso8859_15, - "iso8859-15": iso8859_15, - "iso885915": iso8859_15, - "iso_8859-15": iso8859_15, - "l9": iso8859_15, - "iso-8859-16": iso8859_16, - "cskoi8r": koi8r, - "koi": koi8r, - "koi8": koi8r, - "koi8-r": koi8r, - "koi8_r": koi8r, - "koi8-u": koi8u, - "csmacintosh": macintosh, - "mac": macintosh, - "macintosh": macintosh, - "x-mac-roman": macintosh, - "dos-874": windows874, - "iso-8859-11": windows874, - "iso8859-11": windows874, - "iso885911": windows874, - "tis-620": windows874, - "windows-874": windows874, - "cp1250": windows1250, - "windows-1250": windows1250, - "x-cp1250": windows1250, - "cp1251": windows1251, - "windows-1251": windows1251, - "x-cp1251": windows1251, - "ansi_x3.4-1968": windows1252, - "ascii": windows1252, - "cp1252": windows1252, - "cp819": windows1252, - "csisolatin1": windows1252, - "ibm819": windows1252, - "iso-8859-1": windows1252, - "iso-ir-100": windows1252, - "iso8859-1": windows1252, - "iso88591": windows1252, - "iso_8859-1": windows1252, - "iso_8859-1:1987": windows1252, - "l1": windows1252, - "latin1": windows1252, - "us-ascii": windows1252, - "windows-1252": windows1252, - "x-cp1252": windows1252, - "cp1253": windows1253, - "windows-1253": windows1253, - "x-cp1253": windows1253, - "cp1254": windows1254, - "csisolatin5": windows1254, - "iso-8859-9": windows1254, - "iso-ir-148": windows1254, - "iso8859-9": windows1254, - "iso88599": windows1254, - "iso_8859-9": windows1254, - "iso_8859-9:1989": windows1254, - "l5": windows1254, - "latin5": windows1254, - "windows-1254": windows1254, - "x-cp1254": windows1254, - "cp1255": windows1255, - "windows-1255": windows1255, - "x-cp1255": windows1255, - "cp1256": windows1256, - "windows-1256": windows1256, - "x-cp1256": windows1256, - "cp1257": windows1257, - "windows-1257": windows1257, - "x-cp1257": windows1257, - "cp1258": windows1258, - "windows-1258": windows1258, - "x-cp1258": windows1258, - "x-mac-cyrillic": macintoshCyrillic, - "x-mac-ukrainian": macintoshCyrillic, - "chinese": gb18030, - "csgb2312": gb18030, - "csiso58gb231280": gb18030, - "gb18030": gb18030, - "gb2312": gb18030, - "gb_2312": gb18030, - "gb_2312-80": gb18030, - "gbk": gb18030, - "iso-ir-58": gb18030, - "x-gbk": gb18030, - "hz-gb-2312": hzgb2312, - "big5": big5, - "big5-hkscs": big5, - "cn-big5": big5, - "csbig5": big5, - "x-x-big5": big5, - "cseucpkdfmtjapanese": eucjp, - "euc-jp": eucjp, - "x-euc-jp": eucjp, - "csiso2022jp": iso2022jp, - "iso-2022-jp": iso2022jp, - "csshiftjis": shiftJIS, - "ms_kanji": shiftJIS, - "shift-jis": shiftJIS, - "shift_jis": shiftJIS, - "sjis": shiftJIS, - "windows-31j": shiftJIS, - "x-sjis": shiftJIS, - "cseuckr": euckr, - "csksc56011987": euckr, - "euc-kr": euckr, - "iso-ir-149": euckr, - "korean": euckr, - "ks_c_5601-1987": euckr, - "ks_c_5601-1989": euckr, - "ksc5601": euckr, - "ksc_5601": euckr, - "windows-949": euckr, - "csiso2022kr": replacement, - "iso-2022-cn": replacement, - "iso-2022-cn-ext": replacement, - "iso-2022-kr": replacement, - "utf-16be": utf16be, - "utf-16": utf16le, - "utf-16le": utf16le, - "x-user-defined": xUserDefined, -} - -var localeMap = []htmlEncoding{ - windows1252, // und - windows1256, // ar - windows1251, // ba - windows1251, // be - windows1251, // bg - windows1250, // cs - iso8859_7, // el - windows1257, // et - windows1256, // fa - windows1255, // he - windows1250, // hr - iso8859_2, // hu - shiftJIS, // ja - windows1251, // kk - euckr, // ko - windows1254, // ku - windows1251, // ky - windows1257, // lt - windows1257, // lv - windows1251, // mk - iso8859_2, // pl - windows1251, // ru - windows1251, // sah - windows1250, // sk - iso8859_2, // sl - windows1251, // sr - windows1251, // tg - windows874, // th - windows1254, // tr - windows1251, // tt - windows1251, // uk - windows1258, // vi - gb18030, // zh-hans - big5, // zh-hant -} - -const locales = "und ar ba be bg cs el et fa he hr hu ja kk ko ku ky lt lv mk pl ru sah sk sl sr tg th tr tt uk vi zh-hans zh-hant" diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/ianaindex/example_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/ianaindex/example_test.go deleted file mode 100644 index d3f2da37..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/ianaindex/example_test.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ianaindex_test - -import ( - "fmt" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/ianaindex" -) - -func ExampleIndex() { - fmt.Println(ianaindex.MIME.Name(charmap.ISO8859_7)) - - fmt.Println(ianaindex.IANA.Name(charmap.ISO8859_7)) - - e, _ := ianaindex.IANA.Get("cp437") - fmt.Println(ianaindex.IANA.Name(e)) - - // TODO: Output: - // ISO-8859-7 - // ISO8859_7:1987 - // IBM437 -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/ianaindex/ianaindex.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/ianaindex/ianaindex.go deleted file mode 100644 index 6f8300b7..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/ianaindex/ianaindex.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package ianaindex maps names to Encodings as specified by the IANA registry. -// This includes both the MIME and IANA names. -// -// See http://www.iana.org/assignments/character-sets/character-sets.xhtml for -// more details. -package ianaindex - -import ( - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" -) - -// TODO: allow users to specify their own aliases? -// TODO: allow users to specify their own indexes? -// TODO: allow canonicalizing names - -// NOTE: only use these top-level variables if we can get the linker to drop -// the indexes when they are not used. Make them a function or perhaps only -// support MIME otherwise. - -var ( - // MIME is an index to map MIME names. It does not support aliases. - MIME *Index - - // IANA is an index that supports all names and aliases using IANA names as - // the canonical identifier. - IANA *Index -) - -// Index maps names registered by IANA to Encodings. -type Index struct { -} - -// Get returns an Encoding for IANA-registered names. Matching is -// case-insensitive. -func (x *Index) Get(name string) (encoding.Encoding, error) { - panic("TODO: implement") -} - -// Name reports the canonical name of the given Encoding. It will return an -// error if the e is not associated with a known encoding scheme. -func (x *Index) Name(e encoding.Encoding) (string, error) { - panic("TODO: implement") -} - -// TODO: the coverage of this index is rather spotty. Allowing users to set -// encodings would allow: -// - users to increase coverage -// - allow a partially loaded set of encodings in case the user doesn't need to -// them all. -// - write an OS-specific wrapper for supported encodings and set them. -// The exact definition of Set depends a bit on if and how we want to let users -// write their own Encoding implementations. Also, it is not possible yet to -// only partially load the encodings without doing some refactoring. Until this -// is solved, we might as well not support Set. -// // Set sets the e to be used for the encoding scheme identified by name. Only -// // canonical names may be used. An empty name assigns e to its internally -// // associated encoding scheme. -// func (x *Index) Set(name string, e encoding.Encoding) error { -// panic("TODO: implement") -// } diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier/gen.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier/gen.go deleted file mode 100644 index 0c8eba7e..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier/gen.go +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "bytes" - "encoding/xml" - "fmt" - "io" - "log" - "strings" - - "golang.org/x/text/internal/gen" -) - -type registry struct { - XMLName xml.Name `xml:"registry"` - Updated string `xml:"updated"` - Registry []struct { - ID string `xml:"id,attr"` - Record []struct { - Name string `xml:"name"` - Xref []struct { - Type string `xml:"type,attr"` - Data string `xml:"data,attr"` - } `xml:"xref"` - Desc struct { - Data string `xml:",innerxml"` - // Any []struct { - // Data string `xml:",chardata"` - // } `xml:",any"` - // Data string `xml:",chardata"` - } `xml:"description,"` - MIB string `xml:"value"` - Alias []string `xml:"alias"` - MIME string `xml:"preferred_alias"` - } `xml:"record"` - } `xml:"registry"` -} - -func main() { - r := gen.OpenIANAFile("assignments/character-sets/character-sets.xml") - reg := ®istry{} - if err := xml.NewDecoder(r).Decode(®); err != nil && err != io.EOF { - log.Fatalf("Error decoding charset registry: %v", err) - } - if len(reg.Registry) == 0 || reg.Registry[0].ID != "character-sets-1" { - log.Fatalf("Unexpected ID %s", reg.Registry[0].ID) - } - - w := &bytes.Buffer{} - fmt.Fprintf(w, "const (\n") - for _, rec := range reg.Registry[0].Record { - constName := "" - for _, a := range rec.Alias { - if strings.HasPrefix(a, "cs") && strings.IndexByte(a, '-') == -1 { - // Some of the constant definitions have comments in them. Strip those. - constName = strings.Title(strings.SplitN(a[2:], "\n", 2)[0]) - } - } - if constName == "" { - switch rec.MIB { - case "2085": - constName = "HZGB2312" // Not listed as alias for some reason. - default: - log.Fatalf("No cs alias defined for %s.", rec.MIB) - } - } - if rec.MIME != "" { - rec.MIME = fmt.Sprintf(" (MIME: %s)", rec.MIME) - } - fmt.Fprintf(w, "// %s is the MIB identifier with IANA name %s%s.\n//\n", constName, rec.Name, rec.MIME) - if len(rec.Desc.Data) > 0 { - fmt.Fprint(w, "// ") - d := xml.NewDecoder(strings.NewReader(rec.Desc.Data)) - inElem := true - attr := "" - for { - t, err := d.Token() - if err != nil { - if err != io.EOF { - log.Fatal(err) - } - break - } - switch x := t.(type) { - case xml.CharData: - attr = "" // Don't need attribute info. - a := bytes.Split([]byte(x), []byte("\n")) - for i, b := range a { - if b = bytes.TrimSpace(b); len(b) != 0 { - if !inElem && i > 0 { - fmt.Fprint(w, "\n// ") - } - inElem = false - fmt.Fprintf(w, "%s ", string(b)) - } - } - case xml.StartElement: - if x.Name.Local == "xref" { - inElem = true - use := false - for _, a := range x.Attr { - if a.Name.Local == "type" { - use = use || a.Value != "person" - } - if a.Name.Local == "data" && use { - attr = a.Value + " " - } - } - } - case xml.EndElement: - inElem = false - fmt.Fprint(w, attr) - } - } - fmt.Fprint(w, "\n") - } - for _, x := range rec.Xref { - switch x.Type { - case "rfc": - fmt.Fprintf(w, "// Reference: %s\n", strings.ToUpper(x.Data)) - case "uri": - fmt.Fprintf(w, "// Reference: %s\n", x.Data) - } - } - fmt.Fprintf(w, "%s MIB = %s\n", constName, rec.MIB) - fmt.Fprintln(w) - } - fmt.Fprintln(w, ")") - - gen.WriteGoFile("mib.go", "identifier", w.Bytes()) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier/identifier.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier/identifier.go deleted file mode 100644 index cfb13547..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier/identifier.go +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go - -// Package identifier defines the contract between implementations of Encoding -// and Index by defining identifiers that uniquely identify standardized coded -// character sets (CCS) and character encoding schemes (CES), which we will -// together refer to as encodings, for which Encoding implementations provide -// converters to and from UTF-8. This package is typically only of concern to -// implementers of Indexes and Encodings. -// -// One part of the identifier is the MIB code, which is defined by IANA and -// uniquely identifies a CCS or CES. Each code is associated with data that -// references authorities, official documentation as well as aliases and MIME -// names. -// -// Not all CESs are covered by the IANA registry. The "other" string that is -// returned by ID can be used to identify other character sets or versions of -// existing ones. -// -// It is recommended that each package that provides a set of Encodings provide -// the All and Common variables to reference all supported encodings and -// commonly used subset. This allows Index implementations to include all -// available encodings without explicitly referencing or knowing about them. -package identifier - -// Note: this package is internal, but could be made public if there is a need -// for writing third-party Indexes and Encodings. - -// References: -// - http://source.icu-project.org/repos/icu/icu/trunk/source/data/mappings/convrtrs.txt -// - http://www.iana.org/assignments/character-sets/character-sets.xhtml -// - http://www.iana.org/assignments/ianacharset-mib/ianacharset-mib -// - http://www.ietf.org/rfc/rfc2978.txt -// - http://www.unicode.org/reports/tr22/ -// - http://www.w3.org/TR/encoding/ -// - http://www.w3.org/TR/encoding/indexes/encodings.json -// - https://encoding.spec.whatwg.org/ -// - https://tools.ietf.org/html/rfc6657#section-5 - -// Interface can be implemented by Encodings to define the CCS or CES for which -// it implements conversions. -type Interface interface { - // ID returns an encoding identifier. Exactly one of the mib and other - // values should be non-zero. - // - // In the usual case it is only necessary to indicate the MIB code. The - // other string can be used to specify encodings for which there is no MIB, - // such as "x-mac-dingbat". - // - // The other string may only contain the characters a-z, A-Z, 0-9, - and _. - ID() (mib MIB, other string) - - // NOTE: the restrictions on the encoding are to allow extending the syntax - // with additional information such as versions, vendors and other variants. -} - -// A MIB identifies an encoding. It is derived from the IANA MIB codes and adds -// some identifiers for some encodings that are not covered by the IANA -// standard. -// -// See http://www.iana.org/assignments/ianacharset-mib. -type MIB uint16 - -// These additional MIB types are not defined in IANA. They are added because -// they are common and defined within the text repo. -const ( - // Unofficial marks the start of encodings not registered by IANA. - Unofficial MIB = 10000 + iota - - // TODO: add Replacement? - - // XUserDefined is the code for x-user-defined. - XUserDefined - - // MacintoshCyrillic is the code for x-mac-cyrillic. - MacintoshCyrillic -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier/mib.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier/mib.go deleted file mode 100644 index 915abfa2..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier/mib.go +++ /dev/null @@ -1,1621 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package identifier - -const ( - // ASCII is the MIB identifier with IANA name US-ASCII (MIME: US-ASCII). - // - // ANSI X3.4-1986 - // Reference: RFC2046 - ASCII MIB = 3 - - // ISOLatin1 is the MIB identifier with IANA name ISO_8859-1:1987 (MIME: ISO-8859-1). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin1 MIB = 4 - - // ISOLatin2 is the MIB identifier with IANA name ISO_8859-2:1987 (MIME: ISO-8859-2). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin2 MIB = 5 - - // ISOLatin3 is the MIB identifier with IANA name ISO_8859-3:1988 (MIME: ISO-8859-3). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin3 MIB = 6 - - // ISOLatin4 is the MIB identifier with IANA name ISO_8859-4:1988 (MIME: ISO-8859-4). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin4 MIB = 7 - - // ISOLatinCyrillic is the MIB identifier with IANA name ISO_8859-5:1988 (MIME: ISO-8859-5). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatinCyrillic MIB = 8 - - // ISOLatinArabic is the MIB identifier with IANA name ISO_8859-6:1987 (MIME: ISO-8859-6). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatinArabic MIB = 9 - - // ISOLatinGreek is the MIB identifier with IANA name ISO_8859-7:1987 (MIME: ISO-8859-7). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1947 - // Reference: RFC1345 - ISOLatinGreek MIB = 10 - - // ISOLatinHebrew is the MIB identifier with IANA name ISO_8859-8:1988 (MIME: ISO-8859-8). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatinHebrew MIB = 11 - - // ISOLatin5 is the MIB identifier with IANA name ISO_8859-9:1989 (MIME: ISO-8859-9). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin5 MIB = 12 - - // ISOLatin6 is the MIB identifier with IANA name ISO-8859-10 (MIME: ISO-8859-10). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin6 MIB = 13 - - // ISOTextComm is the MIB identifier with IANA name ISO_6937-2-add. - // - // ISO-IR: International Register of Escape Sequences and ISO 6937-2:1983 - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOTextComm MIB = 14 - - // HalfWidthKatakana is the MIB identifier with IANA name JIS_X0201. - // - // JIS X 0201-1976. One byte only, this is equivalent to - // JIS/Roman (similar to ASCII) plus eight-bit half-width - // Katakana - // Reference: RFC1345 - HalfWidthKatakana MIB = 15 - - // JISEncoding is the MIB identifier with IANA name JIS_Encoding. - // - // JIS X 0202-1991. Uses ISO 2022 escape sequences to - // shift code sets as documented in JIS X 0202-1991. - JISEncoding MIB = 16 - - // ShiftJIS is the MIB identifier with IANA name Shift_JIS (MIME: Shift_JIS). - // - // This charset is an extension of csHalfWidthKatakana by - // adding graphic characters in JIS X 0208. The CCS's are - // JIS X0201:1997 and JIS X0208:1997. The - // complete definition is shown in Appendix 1 of JIS - // X0208:1997. - // This charset can be used for the top-level media type "text". - ShiftJIS MIB = 17 - - // EUCPkdFmtJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Packed_Format_for_Japanese (MIME: EUC-JP). - // - // Standardized by OSF, UNIX International, and UNIX Systems - // Laboratories Pacific. Uses ISO 2022 rules to select - // code set 0: US-ASCII (a single 7-bit byte set) - // code set 1: JIS X0208-1990 (a double 8-bit byte set) - // restricted to A0-FF in both bytes - // code set 2: Half Width Katakana (a single 7-bit byte set) - // requiring SS2 as the character prefix - // code set 3: JIS X0212-1990 (a double 7-bit byte set) - // restricted to A0-FF in both bytes - // requiring SS3 as the character prefix - EUCPkdFmtJapanese MIB = 18 - - // EUCFixWidJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Fixed_Width_for_Japanese. - // - // Used in Japan. Each character is 2 octets. - // code set 0: US-ASCII (a single 7-bit byte set) - // 1st byte = 00 - // 2nd byte = 20-7E - // code set 1: JIS X0208-1990 (a double 7-bit byte set) - // restricted to A0-FF in both bytes - // code set 2: Half Width Katakana (a single 7-bit byte set) - // 1st byte = 00 - // 2nd byte = A0-FF - // code set 3: JIS X0212-1990 (a double 7-bit byte set) - // restricted to A0-FF in - // the first byte - // and 21-7E in the second byte - EUCFixWidJapanese MIB = 19 - - // ISO4UnitedKingdom is the MIB identifier with IANA name BS_4730. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO4UnitedKingdom MIB = 20 - - // ISO11SwedishForNames is the MIB identifier with IANA name SEN_850200_C. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO11SwedishForNames MIB = 21 - - // ISO15Italian is the MIB identifier with IANA name IT. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO15Italian MIB = 22 - - // ISO17Spanish is the MIB identifier with IANA name ES. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO17Spanish MIB = 23 - - // ISO21German is the MIB identifier with IANA name DIN_66003. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO21German MIB = 24 - - // ISO60Norwegian1 is the MIB identifier with IANA name NS_4551-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO60Norwegian1 MIB = 25 - - // ISO69French is the MIB identifier with IANA name NF_Z_62-010. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO69French MIB = 26 - - // ISO10646UTF1 is the MIB identifier with IANA name ISO-10646-UTF-1. - // - // Universal Transfer Format (1), this is the multibyte - // encoding, that subsets ASCII-7. It does not have byte - // ordering issues. - ISO10646UTF1 MIB = 27 - - // ISO646basic1983 is the MIB identifier with IANA name ISO_646.basic:1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO646basic1983 MIB = 28 - - // INVARIANT is the MIB identifier with IANA name INVARIANT. - // - // Reference: RFC1345 - INVARIANT MIB = 29 - - // ISO2IntlRefVersion is the MIB identifier with IANA name ISO_646.irv:1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO2IntlRefVersion MIB = 30 - - // NATSSEFI is the MIB identifier with IANA name NATS-SEFI. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSSEFI MIB = 31 - - // NATSSEFIADD is the MIB identifier with IANA name NATS-SEFI-ADD. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSSEFIADD MIB = 32 - - // NATSDANO is the MIB identifier with IANA name NATS-DANO. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSDANO MIB = 33 - - // NATSDANOADD is the MIB identifier with IANA name NATS-DANO-ADD. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSDANOADD MIB = 34 - - // ISO10Swedish is the MIB identifier with IANA name SEN_850200_B. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO10Swedish MIB = 35 - - // KSC56011987 is the MIB identifier with IANA name KS_C_5601-1987. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - KSC56011987 MIB = 36 - - // ISO2022KR is the MIB identifier with IANA name ISO-2022-KR (MIME: ISO-2022-KR). - // - // rfc1557 (see also KS_C_5601-1987) - // Reference: RFC1557 - ISO2022KR MIB = 37 - - // EUCKR is the MIB identifier with IANA name EUC-KR (MIME: EUC-KR). - // - // rfc1557 (see also KS_C_5861-1992) - // Reference: RFC1557 - EUCKR MIB = 38 - - // ISO2022JP is the MIB identifier with IANA name ISO-2022-JP (MIME: ISO-2022-JP). - // - // rfc1468 (see also rfc2237 ) - // Reference: RFC1468 - ISO2022JP MIB = 39 - - // ISO2022JP2 is the MIB identifier with IANA name ISO-2022-JP-2 (MIME: ISO-2022-JP-2). - // - // rfc1554 - // Reference: RFC1554 - ISO2022JP2 MIB = 40 - - // ISO13JISC6220jp is the MIB identifier with IANA name JIS_C6220-1969-jp. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO13JISC6220jp MIB = 41 - - // ISO14JISC6220ro is the MIB identifier with IANA name JIS_C6220-1969-ro. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO14JISC6220ro MIB = 42 - - // ISO16Portuguese is the MIB identifier with IANA name PT. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO16Portuguese MIB = 43 - - // ISO18Greek7Old is the MIB identifier with IANA name greek7-old. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO18Greek7Old MIB = 44 - - // ISO19LatinGreek is the MIB identifier with IANA name latin-greek. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO19LatinGreek MIB = 45 - - // ISO25French is the MIB identifier with IANA name NF_Z_62-010_(1973). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO25French MIB = 46 - - // ISO27LatinGreek1 is the MIB identifier with IANA name Latin-greek-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO27LatinGreek1 MIB = 47 - - // ISO5427Cyrillic is the MIB identifier with IANA name ISO_5427. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO5427Cyrillic MIB = 48 - - // ISO42JISC62261978 is the MIB identifier with IANA name JIS_C6226-1978. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO42JISC62261978 MIB = 49 - - // ISO47BSViewdata is the MIB identifier with IANA name BS_viewdata. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO47BSViewdata MIB = 50 - - // ISO49INIS is the MIB identifier with IANA name INIS. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO49INIS MIB = 51 - - // ISO50INIS8 is the MIB identifier with IANA name INIS-8. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO50INIS8 MIB = 52 - - // ISO51INISCyrillic is the MIB identifier with IANA name INIS-cyrillic. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO51INISCyrillic MIB = 53 - - // ISO54271981 is the MIB identifier with IANA name ISO_5427:1981. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO54271981 MIB = 54 - - // ISO5428Greek is the MIB identifier with IANA name ISO_5428:1980. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO5428Greek MIB = 55 - - // ISO57GB1988 is the MIB identifier with IANA name GB_1988-80. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO57GB1988 MIB = 56 - - // ISO58GB231280 is the MIB identifier with IANA name GB_2312-80. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO58GB231280 MIB = 57 - - // ISO61Norwegian2 is the MIB identifier with IANA name NS_4551-2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO61Norwegian2 MIB = 58 - - // ISO70VideotexSupp1 is the MIB identifier with IANA name videotex-suppl. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO70VideotexSupp1 MIB = 59 - - // ISO84Portuguese2 is the MIB identifier with IANA name PT2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO84Portuguese2 MIB = 60 - - // ISO85Spanish2 is the MIB identifier with IANA name ES2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO85Spanish2 MIB = 61 - - // ISO86Hungarian is the MIB identifier with IANA name MSZ_7795.3. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO86Hungarian MIB = 62 - - // ISO87JISX0208 is the MIB identifier with IANA name JIS_C6226-1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO87JISX0208 MIB = 63 - - // ISO88Greek7 is the MIB identifier with IANA name greek7. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO88Greek7 MIB = 64 - - // ISO89ASMO449 is the MIB identifier with IANA name ASMO_449. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO89ASMO449 MIB = 65 - - // ISO90 is the MIB identifier with IANA name iso-ir-90. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO90 MIB = 66 - - // ISO91JISC62291984a is the MIB identifier with IANA name JIS_C6229-1984-a. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO91JISC62291984a MIB = 67 - - // ISO92JISC62991984b is the MIB identifier with IANA name JIS_C6229-1984-b. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO92JISC62991984b MIB = 68 - - // ISO93JIS62291984badd is the MIB identifier with IANA name JIS_C6229-1984-b-add. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO93JIS62291984badd MIB = 69 - - // ISO94JIS62291984hand is the MIB identifier with IANA name JIS_C6229-1984-hand. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO94JIS62291984hand MIB = 70 - - // ISO95JIS62291984handadd is the MIB identifier with IANA name JIS_C6229-1984-hand-add. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO95JIS62291984handadd MIB = 71 - - // ISO96JISC62291984kana is the MIB identifier with IANA name JIS_C6229-1984-kana. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO96JISC62291984kana MIB = 72 - - // ISO2033 is the MIB identifier with IANA name ISO_2033-1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO2033 MIB = 73 - - // ISO99NAPLPS is the MIB identifier with IANA name ANSI_X3.110-1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO99NAPLPS MIB = 74 - - // ISO102T617bit is the MIB identifier with IANA name T.61-7bit. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO102T617bit MIB = 75 - - // ISO103T618bit is the MIB identifier with IANA name T.61-8bit. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO103T618bit MIB = 76 - - // ISO111ECMACyrillic is the MIB identifier with IANA name ECMA-cyrillic. - // - // ISO registry - // (formerly ECMA - // registry ) - ISO111ECMACyrillic MIB = 77 - - // ISO121Canadian1 is the MIB identifier with IANA name CSA_Z243.4-1985-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO121Canadian1 MIB = 78 - - // ISO122Canadian2 is the MIB identifier with IANA name CSA_Z243.4-1985-2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO122Canadian2 MIB = 79 - - // ISO123CSAZ24341985gr is the MIB identifier with IANA name CSA_Z243.4-1985-gr. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO123CSAZ24341985gr MIB = 80 - - // ISO88596E is the MIB identifier with IANA name ISO_8859-6-E (MIME: ISO-8859-6-E). - // - // rfc1556 - // Reference: RFC1556 - ISO88596E MIB = 81 - - // ISO88596I is the MIB identifier with IANA name ISO_8859-6-I (MIME: ISO-8859-6-I). - // - // rfc1556 - // Reference: RFC1556 - ISO88596I MIB = 82 - - // ISO128T101G2 is the MIB identifier with IANA name T.101-G2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO128T101G2 MIB = 83 - - // ISO88598E is the MIB identifier with IANA name ISO_8859-8-E (MIME: ISO-8859-8-E). - // - // rfc1556 - // Reference: RFC1556 - ISO88598E MIB = 84 - - // ISO88598I is the MIB identifier with IANA name ISO_8859-8-I (MIME: ISO-8859-8-I). - // - // rfc1556 - // Reference: RFC1556 - ISO88598I MIB = 85 - - // ISO139CSN369103 is the MIB identifier with IANA name CSN_369103. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO139CSN369103 MIB = 86 - - // ISO141JUSIB1002 is the MIB identifier with IANA name JUS_I.B1.002. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO141JUSIB1002 MIB = 87 - - // ISO143IECP271 is the MIB identifier with IANA name IEC_P27-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO143IECP271 MIB = 88 - - // ISO146Serbian is the MIB identifier with IANA name JUS_I.B1.003-serb. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO146Serbian MIB = 89 - - // ISO147Macedonian is the MIB identifier with IANA name JUS_I.B1.003-mac. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO147Macedonian MIB = 90 - - // ISO150GreekCCITT is the MIB identifier with IANA name greek-ccitt. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO150GreekCCITT MIB = 91 - - // ISO151Cuba is the MIB identifier with IANA name NC_NC00-10:81. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO151Cuba MIB = 92 - - // ISO6937Add is the MIB identifier with IANA name ISO_6937-2-25. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO6937Add MIB = 93 - - // ISO153GOST1976874 is the MIB identifier with IANA name GOST_19768-74. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO153GOST1976874 MIB = 94 - - // ISO8859Supp is the MIB identifier with IANA name ISO_8859-supp. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO8859Supp MIB = 95 - - // ISO10367Box is the MIB identifier with IANA name ISO_10367-box. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO10367Box MIB = 96 - - // ISO158Lap is the MIB identifier with IANA name latin-lap. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO158Lap MIB = 97 - - // ISO159JISX02121990 is the MIB identifier with IANA name JIS_X0212-1990. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO159JISX02121990 MIB = 98 - - // ISO646Danish is the MIB identifier with IANA name DS_2089. - // - // Danish Standard, DS 2089, February 1974 - // Reference: RFC1345 - ISO646Danish MIB = 99 - - // USDK is the MIB identifier with IANA name us-dk. - // - // Reference: RFC1345 - USDK MIB = 100 - - // DKUS is the MIB identifier with IANA name dk-us. - // - // Reference: RFC1345 - DKUS MIB = 101 - - // KSC5636 is the MIB identifier with IANA name KSC5636. - // - // Reference: RFC1345 - KSC5636 MIB = 102 - - // Unicode11UTF7 is the MIB identifier with IANA name UNICODE-1-1-UTF-7. - // - // rfc1642 - // Reference: RFC1642 - Unicode11UTF7 MIB = 103 - - // ISO2022CN is the MIB identifier with IANA name ISO-2022-CN. - // - // rfc1922 - // Reference: RFC1922 - ISO2022CN MIB = 104 - - // ISO2022CNEXT is the MIB identifier with IANA name ISO-2022-CN-EXT. - // - // rfc1922 - // Reference: RFC1922 - ISO2022CNEXT MIB = 105 - - // UTF8 is the MIB identifier with IANA name UTF-8. - // - // rfc3629 - // Reference: RFC3629 - UTF8 MIB = 106 - - // ISO885913 is the MIB identifier with IANA name ISO-8859-13. - // - // ISO See http://www.iana.org/assignments/charset-reg/ISO-8859-13 http://www.iana.org/assignments/charset-reg/ISO-8859-13 - ISO885913 MIB = 109 - - // ISO885914 is the MIB identifier with IANA name ISO-8859-14. - // - // ISO See http://www.iana.org/assignments/charset-reg/ISO-8859-14 - ISO885914 MIB = 110 - - // ISO885915 is the MIB identifier with IANA name ISO-8859-15. - // - // ISO - // Please see: http://www.iana.org/assignments/charset-reg/ISO-8859-15 - ISO885915 MIB = 111 - - // ISO885916 is the MIB identifier with IANA name ISO-8859-16. - // - // ISO - ISO885916 MIB = 112 - - // GBK is the MIB identifier with IANA name GBK. - // - // Chinese IT Standardization Technical Committee - // Please see: http://www.iana.org/assignments/charset-reg/GBK - GBK MIB = 113 - - // GB18030 is the MIB identifier with IANA name GB18030. - // - // Chinese IT Standardization Technical Committee - // Please see: http://www.iana.org/assignments/charset-reg/GB18030 - GB18030 MIB = 114 - - // OSDEBCDICDF0415 is the MIB identifier with IANA name OSD_EBCDIC_DF04_15. - // - // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-15 - OSDEBCDICDF0415 MIB = 115 - - // OSDEBCDICDF03IRV is the MIB identifier with IANA name OSD_EBCDIC_DF03_IRV. - // - // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF03-IRV - OSDEBCDICDF03IRV MIB = 116 - - // OSDEBCDICDF041 is the MIB identifier with IANA name OSD_EBCDIC_DF04_1. - // - // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-1 - OSDEBCDICDF041 MIB = 117 - - // ISO115481 is the MIB identifier with IANA name ISO-11548-1. - // - // See http://www.iana.org/assignments/charset-reg/ISO-11548-1 - ISO115481 MIB = 118 - - // KZ1048 is the MIB identifier with IANA name KZ-1048. - // - // See http://www.iana.org/assignments/charset-reg/KZ-1048 - KZ1048 MIB = 119 - - // Unicode is the MIB identifier with IANA name ISO-10646-UCS-2. - // - // the 2-octet Basic Multilingual Plane, aka Unicode - // this needs to specify network byte order: the standard - // does not specify (it is a 16-bit integer space) - Unicode MIB = 1000 - - // UCS4 is the MIB identifier with IANA name ISO-10646-UCS-4. - // - // the full code space. (same comment about byte order, - // these are 31-bit numbers. - UCS4 MIB = 1001 - - // UnicodeASCII is the MIB identifier with IANA name ISO-10646-UCS-Basic. - // - // ASCII subset of Unicode. Basic Latin = collection 1 - // See ISO 10646, Appendix A - UnicodeASCII MIB = 1002 - - // UnicodeLatin1 is the MIB identifier with IANA name ISO-10646-Unicode-Latin1. - // - // ISO Latin-1 subset of Unicode. Basic Latin and Latin-1 - // Supplement = collections 1 and 2. See ISO 10646, - // Appendix A. See rfc1815 . - UnicodeLatin1 MIB = 1003 - - // UnicodeJapanese is the MIB identifier with IANA name ISO-10646-J-1. - // - // ISO 10646 Japanese, see rfc1815 . - UnicodeJapanese MIB = 1004 - - // UnicodeIBM1261 is the MIB identifier with IANA name ISO-Unicode-IBM-1261. - // - // IBM Latin-2, -3, -5, Extended Presentation Set, GCSGID: 1261 - UnicodeIBM1261 MIB = 1005 - - // UnicodeIBM1268 is the MIB identifier with IANA name ISO-Unicode-IBM-1268. - // - // IBM Latin-4 Extended Presentation Set, GCSGID: 1268 - UnicodeIBM1268 MIB = 1006 - - // UnicodeIBM1276 is the MIB identifier with IANA name ISO-Unicode-IBM-1276. - // - // IBM Cyrillic Greek Extended Presentation Set, GCSGID: 1276 - UnicodeIBM1276 MIB = 1007 - - // UnicodeIBM1264 is the MIB identifier with IANA name ISO-Unicode-IBM-1264. - // - // IBM Arabic Presentation Set, GCSGID: 1264 - UnicodeIBM1264 MIB = 1008 - - // UnicodeIBM1265 is the MIB identifier with IANA name ISO-Unicode-IBM-1265. - // - // IBM Hebrew Presentation Set, GCSGID: 1265 - UnicodeIBM1265 MIB = 1009 - - // Unicode11 is the MIB identifier with IANA name UNICODE-1-1. - // - // rfc1641 - // Reference: RFC1641 - Unicode11 MIB = 1010 - - // SCSU is the MIB identifier with IANA name SCSU. - // - // SCSU See http://www.iana.org/assignments/charset-reg/SCSU - SCSU MIB = 1011 - - // UTF7 is the MIB identifier with IANA name UTF-7. - // - // rfc2152 - // Reference: RFC2152 - UTF7 MIB = 1012 - - // UTF16BE is the MIB identifier with IANA name UTF-16BE. - // - // rfc2781 - // Reference: RFC2781 - UTF16BE MIB = 1013 - - // UTF16LE is the MIB identifier with IANA name UTF-16LE. - // - // rfc2781 - // Reference: RFC2781 - UTF16LE MIB = 1014 - - // UTF16 is the MIB identifier with IANA name UTF-16. - // - // rfc2781 - // Reference: RFC2781 - UTF16 MIB = 1015 - - // CESU8 is the MIB identifier with IANA name CESU-8. - // - // http://www.unicode.org/unicode/reports/tr26 - CESU8 MIB = 1016 - - // UTF32 is the MIB identifier with IANA name UTF-32. - // - // http://www.unicode.org/unicode/reports/tr19/ - UTF32 MIB = 1017 - - // UTF32BE is the MIB identifier with IANA name UTF-32BE. - // - // http://www.unicode.org/unicode/reports/tr19/ - UTF32BE MIB = 1018 - - // UTF32LE is the MIB identifier with IANA name UTF-32LE. - // - // http://www.unicode.org/unicode/reports/tr19/ - UTF32LE MIB = 1019 - - // BOCU1 is the MIB identifier with IANA name BOCU-1. - // - // http://www.unicode.org/notes/tn6/ - BOCU1 MIB = 1020 - - // Windows30Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.0-Latin-1. - // - // Extended ISO 8859-1 Latin-1 for Windows 3.0. - // PCL Symbol Set id: 9U - Windows30Latin1 MIB = 2000 - - // Windows31Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.1-Latin-1. - // - // Extended ISO 8859-1 Latin-1 for Windows 3.1. - // PCL Symbol Set id: 19U - Windows31Latin1 MIB = 2001 - - // Windows31Latin2 is the MIB identifier with IANA name ISO-8859-2-Windows-Latin-2. - // - // Extended ISO 8859-2. Latin-2 for Windows 3.1. - // PCL Symbol Set id: 9E - Windows31Latin2 MIB = 2002 - - // Windows31Latin5 is the MIB identifier with IANA name ISO-8859-9-Windows-Latin-5. - // - // Extended ISO 8859-9. Latin-5 for Windows 3.1 - // PCL Symbol Set id: 5T - Windows31Latin5 MIB = 2003 - - // HPRoman8 is the MIB identifier with IANA name hp-roman8. - // - // LaserJet IIP Printer User's Manual, - // HP part no 33471-90901, Hewlet-Packard, June 1989. - // Reference: RFC1345 - HPRoman8 MIB = 2004 - - // AdobeStandardEncoding is the MIB identifier with IANA name Adobe-Standard-Encoding. - // - // PostScript Language Reference Manual - // PCL Symbol Set id: 10J - AdobeStandardEncoding MIB = 2005 - - // VenturaUS is the MIB identifier with IANA name Ventura-US. - // - // Ventura US. ASCII plus characters typically used in - // publishing, like pilcrow, copyright, registered, trade mark, - // section, dagger, and double dagger in the range A0 (hex) - // to FF (hex). - // PCL Symbol Set id: 14J - VenturaUS MIB = 2006 - - // VenturaInternational is the MIB identifier with IANA name Ventura-International. - // - // Ventura International. ASCII plus coded characters similar - // to Roman8. - // PCL Symbol Set id: 13J - VenturaInternational MIB = 2007 - - // DECMCS is the MIB identifier with IANA name DEC-MCS. - // - // VAX/VMS User's Manual, - // Order Number: AI-Y517A-TE, April 1986. - // Reference: RFC1345 - DECMCS MIB = 2008 - - // PC850Multilingual is the MIB identifier with IANA name IBM850. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PC850Multilingual MIB = 2009 - - // PC8DanishNorwegian is the MIB identifier with IANA name PC8-Danish-Norwegian. - // - // PC Danish Norwegian - // 8-bit PC set for Danish Norwegian - // PCL Symbol Set id: 11U - PC8DanishNorwegian MIB = 2012 - - // PC862LatinHebrew is the MIB identifier with IANA name IBM862. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PC862LatinHebrew MIB = 2013 - - // PC8Turkish is the MIB identifier with IANA name PC8-Turkish. - // - // PC Latin Turkish. PCL Symbol Set id: 9T - PC8Turkish MIB = 2014 - - // IBMSymbols is the MIB identifier with IANA name IBM-Symbols. - // - // Presentation Set, CPGID: 259 - IBMSymbols MIB = 2015 - - // IBMThai is the MIB identifier with IANA name IBM-Thai. - // - // Presentation Set, CPGID: 838 - IBMThai MIB = 2016 - - // HPLegal is the MIB identifier with IANA name HP-Legal. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 1U - HPLegal MIB = 2017 - - // HPPiFont is the MIB identifier with IANA name HP-Pi-font. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 15U - HPPiFont MIB = 2018 - - // HPMath8 is the MIB identifier with IANA name HP-Math8. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 8M - HPMath8 MIB = 2019 - - // HPPSMath is the MIB identifier with IANA name Adobe-Symbol-Encoding. - // - // PostScript Language Reference Manual - // PCL Symbol Set id: 5M - HPPSMath MIB = 2020 - - // HPDesktop is the MIB identifier with IANA name HP-DeskTop. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 7J - HPDesktop MIB = 2021 - - // VenturaMath is the MIB identifier with IANA name Ventura-Math. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 6M - VenturaMath MIB = 2022 - - // MicrosoftPublishing is the MIB identifier with IANA name Microsoft-Publishing. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 6J - MicrosoftPublishing MIB = 2023 - - // Windows31J is the MIB identifier with IANA name Windows-31J. - // - // Windows Japanese. A further extension of Shift_JIS - // to include NEC special characters (Row 13), NEC - // selection of IBM extensions (Rows 89 to 92), and IBM - // extensions (Rows 115 to 119). The CCS's are - // JIS X0201:1997, JIS X0208:1997, and these extensions. - // This charset can be used for the top-level media type "text", - // but it is of limited or specialized use (see rfc2278 ). - // PCL Symbol Set id: 19K - Windows31J MIB = 2024 - - // GB2312 is the MIB identifier with IANA name GB2312 (MIME: GB2312). - // - // Chinese for People's Republic of China (PRC) mixed one byte, - // two byte set: - // 20-7E = one byte ASCII - // A1-FE = two byte PRC Kanji - // See GB 2312-80 - // PCL Symbol Set Id: 18C - GB2312 MIB = 2025 - - // Big5 is the MIB identifier with IANA name Big5 (MIME: Big5). - // - // Chinese for Taiwan Multi-byte set. - // PCL Symbol Set Id: 18T - Big5 MIB = 2026 - - // Macintosh is the MIB identifier with IANA name macintosh. - // - // The Unicode Standard ver1.0, ISBN 0-201-56788-1, Oct 1991 - // Reference: RFC1345 - Macintosh MIB = 2027 - - // IBM037 is the MIB identifier with IANA name IBM037. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM037 MIB = 2028 - - // IBM038 is the MIB identifier with IANA name IBM038. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM038 MIB = 2029 - - // IBM273 is the MIB identifier with IANA name IBM273. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM273 MIB = 2030 - - // IBM274 is the MIB identifier with IANA name IBM274. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM274 MIB = 2031 - - // IBM275 is the MIB identifier with IANA name IBM275. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM275 MIB = 2032 - - // IBM277 is the MIB identifier with IANA name IBM277. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM277 MIB = 2033 - - // IBM278 is the MIB identifier with IANA name IBM278. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM278 MIB = 2034 - - // IBM280 is the MIB identifier with IANA name IBM280. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM280 MIB = 2035 - - // IBM281 is the MIB identifier with IANA name IBM281. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM281 MIB = 2036 - - // IBM284 is the MIB identifier with IANA name IBM284. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM284 MIB = 2037 - - // IBM285 is the MIB identifier with IANA name IBM285. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM285 MIB = 2038 - - // IBM290 is the MIB identifier with IANA name IBM290. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM290 MIB = 2039 - - // IBM297 is the MIB identifier with IANA name IBM297. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM297 MIB = 2040 - - // IBM420 is the MIB identifier with IANA name IBM420. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990, - // IBM NLS RM p 11-11 - // Reference: RFC1345 - IBM420 MIB = 2041 - - // IBM423 is the MIB identifier with IANA name IBM423. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM423 MIB = 2042 - - // IBM424 is the MIB identifier with IANA name IBM424. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM424 MIB = 2043 - - // PC8CodePage437 is the MIB identifier with IANA name IBM437. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PC8CodePage437 MIB = 2011 - - // IBM500 is the MIB identifier with IANA name IBM500. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM500 MIB = 2044 - - // IBM851 is the MIB identifier with IANA name IBM851. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM851 MIB = 2045 - - // PCp852 is the MIB identifier with IANA name IBM852. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PCp852 MIB = 2010 - - // IBM855 is the MIB identifier with IANA name IBM855. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM855 MIB = 2046 - - // IBM857 is the MIB identifier with IANA name IBM857. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM857 MIB = 2047 - - // IBM860 is the MIB identifier with IANA name IBM860. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM860 MIB = 2048 - - // IBM861 is the MIB identifier with IANA name IBM861. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM861 MIB = 2049 - - // IBM863 is the MIB identifier with IANA name IBM863. - // - // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 - // Reference: RFC1345 - IBM863 MIB = 2050 - - // IBM864 is the MIB identifier with IANA name IBM864. - // - // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 - // Reference: RFC1345 - IBM864 MIB = 2051 - - // IBM865 is the MIB identifier with IANA name IBM865. - // - // IBM DOS 3.3 Ref (Abridged), 94X9575 (Feb 1987) - // Reference: RFC1345 - IBM865 MIB = 2052 - - // IBM868 is the MIB identifier with IANA name IBM868. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM868 MIB = 2053 - - // IBM869 is the MIB identifier with IANA name IBM869. - // - // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 - // Reference: RFC1345 - IBM869 MIB = 2054 - - // IBM870 is the MIB identifier with IANA name IBM870. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM870 MIB = 2055 - - // IBM871 is the MIB identifier with IANA name IBM871. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM871 MIB = 2056 - - // IBM880 is the MIB identifier with IANA name IBM880. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM880 MIB = 2057 - - // IBM891 is the MIB identifier with IANA name IBM891. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM891 MIB = 2058 - - // IBM903 is the MIB identifier with IANA name IBM903. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM903 MIB = 2059 - - // IBBM904 is the MIB identifier with IANA name IBM904. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBBM904 MIB = 2060 - - // IBM905 is the MIB identifier with IANA name IBM905. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM905 MIB = 2061 - - // IBM918 is the MIB identifier with IANA name IBM918. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM918 MIB = 2062 - - // IBM1026 is the MIB identifier with IANA name IBM1026. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM1026 MIB = 2063 - - // IBMEBCDICATDE is the MIB identifier with IANA name EBCDIC-AT-DE. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - IBMEBCDICATDE MIB = 2064 - - // EBCDICATDEA is the MIB identifier with IANA name EBCDIC-AT-DE-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICATDEA MIB = 2065 - - // EBCDICCAFR is the MIB identifier with IANA name EBCDIC-CA-FR. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICCAFR MIB = 2066 - - // EBCDICDKNO is the MIB identifier with IANA name EBCDIC-DK-NO. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICDKNO MIB = 2067 - - // EBCDICDKNOA is the MIB identifier with IANA name EBCDIC-DK-NO-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICDKNOA MIB = 2068 - - // EBCDICFISE is the MIB identifier with IANA name EBCDIC-FI-SE. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICFISE MIB = 2069 - - // EBCDICFISEA is the MIB identifier with IANA name EBCDIC-FI-SE-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICFISEA MIB = 2070 - - // EBCDICFR is the MIB identifier with IANA name EBCDIC-FR. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICFR MIB = 2071 - - // EBCDICIT is the MIB identifier with IANA name EBCDIC-IT. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICIT MIB = 2072 - - // EBCDICPT is the MIB identifier with IANA name EBCDIC-PT. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICPT MIB = 2073 - - // EBCDICES is the MIB identifier with IANA name EBCDIC-ES. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICES MIB = 2074 - - // EBCDICESA is the MIB identifier with IANA name EBCDIC-ES-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICESA MIB = 2075 - - // EBCDICESS is the MIB identifier with IANA name EBCDIC-ES-S. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICESS MIB = 2076 - - // EBCDICUK is the MIB identifier with IANA name EBCDIC-UK. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICUK MIB = 2077 - - // EBCDICUS is the MIB identifier with IANA name EBCDIC-US. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICUS MIB = 2078 - - // Unknown8BiT is the MIB identifier with IANA name UNKNOWN-8BIT. - // - // Reference: RFC1428 - Unknown8BiT MIB = 2079 - - // Mnemonic is the MIB identifier with IANA name MNEMONIC. - // - // rfc1345 , also known as "mnemonic+ascii+38" - // Reference: RFC1345 - Mnemonic MIB = 2080 - - // Mnem is the MIB identifier with IANA name MNEM. - // - // rfc1345 , also known as "mnemonic+ascii+8200" - // Reference: RFC1345 - Mnem MIB = 2081 - - // VISCII is the MIB identifier with IANA name VISCII. - // - // rfc1456 - // Reference: RFC1456 - VISCII MIB = 2082 - - // VIQR is the MIB identifier with IANA name VIQR. - // - // rfc1456 - // Reference: RFC1456 - VIQR MIB = 2083 - - // KOI8R is the MIB identifier with IANA name KOI8-R (MIME: KOI8-R). - // - // rfc1489 , based on GOST-19768-74, ISO-6937/8, - // INIS-Cyrillic, ISO-5427. - // Reference: RFC1489 - KOI8R MIB = 2084 - - // HZGB2312 is the MIB identifier with IANA name HZ-GB-2312. - // - // rfc1842 , rfc1843 rfc1843 rfc1842 - HZGB2312 MIB = 2085 - - // IBM866 is the MIB identifier with IANA name IBM866. - // - // IBM NLDG Volume 2 (SE09-8002-03) August 1994 - IBM866 MIB = 2086 - - // PC775Baltic is the MIB identifier with IANA name IBM775. - // - // HP PCL 5 Comparison Guide (P/N 5021-0329) pp B-13, 1996 - PC775Baltic MIB = 2087 - - // KOI8U is the MIB identifier with IANA name KOI8-U. - // - // rfc2319 - // Reference: RFC2319 - KOI8U MIB = 2088 - - // IBM00858 is the MIB identifier with IANA name IBM00858. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM00858 - IBM00858 MIB = 2089 - - // IBM00924 is the MIB identifier with IANA name IBM00924. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM00924 - IBM00924 MIB = 2090 - - // IBM01140 is the MIB identifier with IANA name IBM01140. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01140 - IBM01140 MIB = 2091 - - // IBM01141 is the MIB identifier with IANA name IBM01141. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01141 - IBM01141 MIB = 2092 - - // IBM01142 is the MIB identifier with IANA name IBM01142. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01142 - IBM01142 MIB = 2093 - - // IBM01143 is the MIB identifier with IANA name IBM01143. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01143 - IBM01143 MIB = 2094 - - // IBM01144 is the MIB identifier with IANA name IBM01144. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01144 - IBM01144 MIB = 2095 - - // IBM01145 is the MIB identifier with IANA name IBM01145. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01145 - IBM01145 MIB = 2096 - - // IBM01146 is the MIB identifier with IANA name IBM01146. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01146 - IBM01146 MIB = 2097 - - // IBM01147 is the MIB identifier with IANA name IBM01147. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01147 - IBM01147 MIB = 2098 - - // IBM01148 is the MIB identifier with IANA name IBM01148. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01148 - IBM01148 MIB = 2099 - - // IBM01149 is the MIB identifier with IANA name IBM01149. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01149 - IBM01149 MIB = 2100 - - // Big5HKSCS is the MIB identifier with IANA name Big5-HKSCS. - // - // See http://www.iana.org/assignments/charset-reg/Big5-HKSCS - Big5HKSCS MIB = 2101 - - // IBM1047 is the MIB identifier with IANA name IBM1047. - // - // IBM1047 (EBCDIC Latin 1/Open Systems) http://www-1.ibm.com/servers/eserver/iseries/software/globalization/pdf/cp01047z.pdf - IBM1047 MIB = 2102 - - // PTCP154 is the MIB identifier with IANA name PTCP154. - // - // See http://www.iana.org/assignments/charset-reg/PTCP154 - PTCP154 MIB = 2103 - - // Amiga1251 is the MIB identifier with IANA name Amiga-1251. - // - // See http://www.amiga.ultranet.ru/Amiga-1251.html - Amiga1251 MIB = 2104 - - // KOI7switched is the MIB identifier with IANA name KOI7-switched. - // - // See http://www.iana.org/assignments/charset-reg/KOI7-switched - KOI7switched MIB = 2105 - - // BRF is the MIB identifier with IANA name BRF. - // - // See http://www.iana.org/assignments/charset-reg/BRF - BRF MIB = 2106 - - // TSCII is the MIB identifier with IANA name TSCII. - // - // See http://www.iana.org/assignments/charset-reg/TSCII - TSCII MIB = 2107 - - // CP51932 is the MIB identifier with IANA name CP51932. - // - // See http://www.iana.org/assignments/charset-reg/CP51932 - CP51932 MIB = 2108 - - // Windows874 is the MIB identifier with IANA name windows-874. - // - // See http://www.iana.org/assignments/charset-reg/windows-874 - Windows874 MIB = 2109 - - // Windows1250 is the MIB identifier with IANA name windows-1250. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1250 - Windows1250 MIB = 2250 - - // Windows1251 is the MIB identifier with IANA name windows-1251. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1251 - Windows1251 MIB = 2251 - - // Windows1252 is the MIB identifier with IANA name windows-1252. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1252 - Windows1252 MIB = 2252 - - // Windows1253 is the MIB identifier with IANA name windows-1253. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1253 - Windows1253 MIB = 2253 - - // Windows1254 is the MIB identifier with IANA name windows-1254. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1254 - Windows1254 MIB = 2254 - - // Windows1255 is the MIB identifier with IANA name windows-1255. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1255 - Windows1255 MIB = 2255 - - // Windows1256 is the MIB identifier with IANA name windows-1256. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1256 - Windows1256 MIB = 2256 - - // Windows1257 is the MIB identifier with IANA name windows-1257. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1257 - Windows1257 MIB = 2257 - - // Windows1258 is the MIB identifier with IANA name windows-1258. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1258 - Windows1258 MIB = 2258 - - // TIS620 is the MIB identifier with IANA name TIS-620. - // - // Thai Industrial Standards Institute (TISI) - TIS620 MIB = 2259 - - // CP50220 is the MIB identifier with IANA name CP50220. - // - // See http://www.iana.org/assignments/charset-reg/CP50220 - CP50220 MIB = 2260 -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/internal.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/internal.go deleted file mode 100644 index dc8768c6..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/internal.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package internal contains code that is shared among encoding implementations. -package internal - -import ( - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// Encoding is an implementation of the Encoding interface that adds the String -// and ID methods to an existing encoding. -type Encoding struct { - encoding.Encoding - Name string - MIB identifier.MIB -} - -// _ verifies that Encoding implements identifier.Interface. -var _ identifier.Interface = (*Encoding)(nil) - -func (e *Encoding) String() string { - return e.Name -} - -func (e *Encoding) ID() (mib identifier.MIB, other string) { - return e.MIB, "" -} - -// SimpleEncoding is an Encoding that combines two Transformers. -type SimpleEncoding struct { - Decoder transform.Transformer - Encoder transform.Transformer -} - -func (e *SimpleEncoding) NewDecoder() transform.Transformer { - return e.Decoder -} - -func (e *SimpleEncoding) NewEncoder() transform.Transformer { - return e.Encoder -} - -// FuncEncoding is an Encoding that combines two functions returning a new -// Transformer. -type FuncEncoding struct { - Decoder func() transform.Transformer - Encoder func() transform.Transformer -} - -func (e FuncEncoding) NewDecoder() transform.Transformer { - return e.Decoder() -} - -func (e FuncEncoding) NewEncoder() transform.Transformer { - return e.Encoder() -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/all.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/all.go deleted file mode 100644 index 6c009468..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/all.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package japanese - -import ( - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{EUCJP, ISO2022JP, ShiftJIS} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/eucjp.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/eucjp.go deleted file mode 100644 index 31ed324f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/eucjp.go +++ /dev/null @@ -1,210 +0,0 @@ -// 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 japanese - -import ( - "errors" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// EUCJP is the EUC-JP encoding. -var EUCJP encoding.Encoding = &eucJP - -var eucJP = internal.Encoding{ - &internal.SimpleEncoding{eucJPDecoder{}, eucJPEncoder{}}, - "EUC-JP", - identifier.EUCPkdFmtJapanese, -} - -var errInvalidEUCJP = errors.New("japanese: invalid EUC-JP encoding") - -type eucJPDecoder struct{ transform.NopResetter } - -func (eucJPDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case c0 == 0x8e: - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - if c1 < 0xa1 || 0xdf < c1 { - err = errInvalidEUCJP - break loop - } - r, size = rune(c1)+(0xff61-0xa1), 2 - - case c0 == 0x8f: - if nSrc+2 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - if c1 < 0xa1 || 0xfe < c1 { - err = errInvalidEUCJP - break loop - } - c2 := src[nSrc+2] - if c2 < 0xa1 || 0xfe < c2 { - err = errInvalidEUCJP - break loop - } - r, size = '\ufffd', 3 - if i := int(c1-0xa1)*94 + int(c2-0xa1); i < len(jis0212Decode) { - r = rune(jis0212Decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - case 0xa1 <= c0 && c0 <= 0xfe: - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - if c1 < 0xa1 || 0xfe < c1 { - err = errInvalidEUCJP - break loop - } - r, size = '\ufffd', 2 - if i := int(c0-0xa1)*94 + int(c1-0xa1); i < len(jis0208Decode) { - r = rune(jis0208Decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - default: - err = errInvalidEUCJP - break loop - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - if atEOF && err == transform.ErrShortSrc { - err = errInvalidEUCJP - } - return nDst, nSrc, err -} - -type eucJPEncoder struct{ transform.NopResetter } - -func (eucJPEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto write2or3 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto write2or3 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto write2or3 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto write2or3 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto write2or3 - } - case encode5Low <= r && r < encode5High: - if 0xff61 <= r && r < 0xffa0 { - goto write2 - } - if r = rune(encode5[r-encode5Low]); r != 0 { - goto write2or3 - } - } - r = encoding.ASCIISub - } - - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2or3: - if r>>tableShift == jis0208 { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - } else { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = 0x8f - nDst++ - } - dst[nDst+0] = 0xa1 + uint8(r>>codeShift)&codeMask - dst[nDst+1] = 0xa1 + uint8(r)&codeMask - nDst += 2 - continue - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = 0x8e - dst[nDst+1] = uint8(r - (0xff61 - 0xa1)) - nDst += 2 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 6 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/iso2022jp.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/iso2022jp.go deleted file mode 100644 index c7808941..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/iso2022jp.go +++ /dev/null @@ -1,284 +0,0 @@ -// 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 japanese - -import ( - "errors" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// ISO2022JP is the ISO-2022-JP encoding. -var ISO2022JP encoding.Encoding = &iso2022JP - -var iso2022JP = internal.Encoding{ - internal.FuncEncoding{iso2022JPNewDecoder, iso2022JPNewEncoder}, - "ISO-2022-JP", - identifier.ISO2022JP, -} - -func iso2022JPNewDecoder() transform.Transformer { - return new(iso2022JPDecoder) -} - -func iso2022JPNewEncoder() transform.Transformer { - return new(iso2022JPEncoder) -} - -var errInvalidISO2022JP = errors.New("japanese: invalid ISO-2022-JP encoding") - -const ( - asciiState = iota - katakanaState - jis0208State - jis0212State -) - -const asciiEsc = 0x1b - -type iso2022JPDecoder int - -func (d *iso2022JPDecoder) Reset() { - *d = asciiState -} - -func (d *iso2022JPDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - c0 := src[nSrc] - if c0 >= utf8.RuneSelf { - err = errInvalidISO2022JP - break loop - } - - if c0 == asciiEsc { - if nSrc+2 >= len(src) { - err = transform.ErrShortSrc - break loop - } - size = 3 - c1 := src[nSrc+1] - c2 := src[nSrc+2] - switch { - case c1 == '$' && (c2 == '@' || c2 == 'B'): - *d = jis0208State - continue - case c1 == '$' && c2 == '(': - if nSrc+3 >= len(src) { - err = transform.ErrShortSrc - break loop - } - size = 4 - if src[nSrc]+3 == 'D' { - *d = jis0212State - continue - } - case c1 == '(' && (c2 == 'B' || c2 == 'J'): - *d = asciiState - continue - case c1 == '(' && c2 == 'I': - *d = katakanaState - continue - } - err = errInvalidISO2022JP - break loop - } - - switch *d { - case asciiState: - r, size = rune(c0), 1 - - case katakanaState: - if c0 < 0x21 || 0x60 <= c0 { - err = errInvalidISO2022JP - break loop - } - r, size = rune(c0)+(0xff61-0x21), 1 - - default: - if c0 == 0x0a { - *d = asciiState - r, size = rune(c0), 1 - break - } - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - size = 2 - c1 := src[nSrc+1] - i := int(c0-0x21)*94 + int(c1-0x21) - if *d == jis0208State && i < len(jis0208Decode) { - r = rune(jis0208Decode[i]) - } else if *d == jis0212State && i < len(jis0212Decode) { - r = rune(jis0212Decode[i]) - } else { - r = '\ufffd' - break - } - if r == 0 { - r = '\ufffd' - } - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - if atEOF && err == transform.ErrShortSrc { - err = errInvalidISO2022JP - } - return nDst, nSrc, err -} - -type iso2022JPEncoder int - -func (e *iso2022JPEncoder) Reset() { - *e = asciiState -} - -func (e *iso2022JPEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - if r == asciiEsc { - r = encoding.ASCIISub - } - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - // - // http://encoding.spec.whatwg.org/#iso-2022-jp says that "the index jis0212 - // is not used by the iso-2022-jp encoder due to lack of widespread support". - // - // TODO: do we have to special-case U+00A5 and U+203E, as per - // http://encoding.spec.whatwg.org/#iso-2022-jp - // Doing so would mean that "\u00a5" would not be preserved - // after an encode-decode round trip. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode5Low <= r && r < encode5High: - if 0xff61 <= r && r < 0xffa0 { - goto writeKatakana - } - if r = rune(encode5[r-encode5Low]); r>>tableShift == jis0208 { - goto writeJIS - } - } - r = encoding.ASCIISub - } - - if *e != asciiState { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - *e = asciiState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'B' - nDst += 3 - } else if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - writeJIS: - if *e != jis0208State { - if nDst+5 > len(dst) { - err = transform.ErrShortDst - break - } - *e = jis0208State - dst[nDst+0] = asciiEsc - dst[nDst+1] = '$' - dst[nDst+2] = 'B' - nDst += 3 - } else if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = 0x21 + uint8(r>>codeShift)&codeMask - dst[nDst+1] = 0x21 + uint8(r)&codeMask - nDst += 2 - continue - - writeKatakana: - if *e != katakanaState { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - *e = katakanaState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'I' - nDst += 3 - } else if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r - (0xff61 - 0x21)) - nDst++ - continue - } - if atEOF && err == nil && *e != asciiState { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - } else { - *e = asciiState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'B' - nDst += 3 - } - } - return nDst, nSrc, err -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/maketables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/maketables.go deleted file mode 100644 index d6c10deb..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/maketables.go +++ /dev/null @@ -1,161 +0,0 @@ -// 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. - -// +build ignore - -package main - -// This program generates tables.go: -// go run maketables.go | gofmt > tables.go - -// TODO: Emoji extensions? -// http://www.unicode.org/faq/emoji_dingbats.html -// http://www.unicode.org/Public/UNIDATA/EmojiSources.txt - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" -) - -type entry struct { - jisCode, table int -} - -func main() { - fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") - fmt.Printf("// Package japanese provides Japanese encodings such as EUC-JP and Shift JIS.\n") - fmt.Printf(`package japanese // import "golang.org/x/text/encoding/japanese"` + "\n\n") - - reverse := [65536]entry{} - for i := range reverse { - reverse[i].table = -1 - } - - tables := []struct { - url string - name string - }{ - {"http://encoding.spec.whatwg.org/index-jis0208.txt", "0208"}, - {"http://encoding.spec.whatwg.org/index-jis0212.txt", "0212"}, - } - for i, table := range tables { - res, err := http.Get(table.url) - if err != nil { - log.Fatalf("%q: Get: %v", table.url, err) - } - defer res.Body.Close() - - mapping := [65536]uint16{} - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := 0, uint16(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("%q: could not parse %q", table.url, s) - } - if x < 0 || 120*94 <= x { - log.Fatalf("%q: JIS code %d is out of range", table.url, x) - } - mapping[x] = y - if reverse[y].table == -1 { - reverse[y] = entry{jisCode: x, table: i} - } - } - if err := scanner.Err(); err != nil { - log.Fatalf("%q: scanner error: %v", table.url, err) - } - - fmt.Printf("// jis%sDecode is the decoding table from JIS %s code to Unicode.\n// It is defined at %s\n", - table.name, table.name, table.url) - fmt.Printf("var jis%sDecode = [...]uint16{\n", table.name) - for i, m := range mapping { - if m != 0 { - fmt.Printf("\t%d: 0x%04X,\n", i, m) - } - } - fmt.Printf("}\n\n") - } - - // Any run of at least separation continuous zero entries in the reverse map will - // be a separate encode table. - const separation = 1024 - - intervals := []interval(nil) - low, high := -1, -1 - for i, v := range reverse { - if v.table == -1 { - continue - } - if low < 0 { - low = i - } else if i-high >= separation { - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - low = i - } - high = i + 1 - } - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - sort.Sort(byDecreasingLength(intervals)) - - fmt.Printf("const (\n") - fmt.Printf("\tjis0208 = 1\n") - fmt.Printf("\tjis0212 = 2\n") - fmt.Printf("\tcodeMask = 0x7f\n") - fmt.Printf("\tcodeShift = 7\n") - fmt.Printf("\ttableShift = 14\n") - fmt.Printf(")\n\n") - - fmt.Printf("const numEncodeTables = %d\n\n", len(intervals)) - fmt.Printf("// encodeX are the encoding tables from Unicode to JIS code,\n") - fmt.Printf("// sorted by decreasing length.\n") - for i, v := range intervals { - fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high) - } - fmt.Printf("//\n") - fmt.Printf("// The high two bits of the value record whether the JIS code comes from the\n") - fmt.Printf("// JIS0208 table (high bits == 1) or the JIS0212 table (high bits == 2).\n") - fmt.Printf("// The low 14 bits are two 7-bit unsigned integers j1 and j2 that form the\n") - fmt.Printf("// JIS code (94*j1 + j2) within that table.\n") - fmt.Printf("\n") - - for i, v := range intervals { - fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high) - fmt.Printf("var encode%d = [...]uint16{\n", i) - for j := v.low; j < v.high; j++ { - x := reverse[j] - if x.table == -1 { - continue - } - fmt.Printf("\t%d - %d: jis%s<<14 | 0x%02X<<7 | 0x%02X,\n", - j, v.low, tables[x.table].name, x.jisCode/94, x.jisCode%94) - } - fmt.Printf("}\n\n") - } -} - -// interval is a half-open interval [low, high). -type interval struct { - low, high int -} - -func (i interval) len() int { return i.high - i.low } - -// byDecreasingLength sorts intervals by decreasing length. -type byDecreasingLength []interval - -func (b byDecreasingLength) Len() int { return len(b) } -func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() } -func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/shiftjis.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/shiftjis.go deleted file mode 100644 index 334a7c3b..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/shiftjis.go +++ /dev/null @@ -1,188 +0,0 @@ -// 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 japanese - -import ( - "errors" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// ShiftJIS is the Shift JIS encoding, also known as Code Page 932 and -// Windows-31J. -var ShiftJIS encoding.Encoding = &shiftJIS - -var shiftJIS = internal.Encoding{ - &internal.SimpleEncoding{shiftJISDecoder{}, shiftJISEncoder{}}, - "Shift JIS", - identifier.ShiftJIS, -} - -var errInvalidShiftJIS = errors.New("japanese: invalid Shift JIS encoding") - -type shiftJISDecoder struct{ transform.NopResetter } - -func (shiftJISDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case 0xa1 <= c0 && c0 < 0xe0: - r, size = rune(c0)+(0xff61-0xa1), 1 - - case (0x81 <= c0 && c0 < 0xa0) || (0xe0 <= c0 && c0 < 0xf0): - if c0 <= 0x9f { - c0 -= 0x70 - } else { - c0 -= 0xb0 - } - c0 = 2*c0 - 0x21 - - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - switch { - case c1 < 0x40: - err = errInvalidShiftJIS - break loop - case c1 < 0x7f: - c0-- - c1 -= 0x40 - case c1 == 0x7f: - err = errInvalidShiftJIS - break loop - case c1 < 0x9f: - c0-- - c1 -= 0x41 - case c1 < 0xfd: - c1 -= 0x9f - default: - err = errInvalidShiftJIS - break loop - } - r, size = '\ufffd', 2 - if i := int(c0)*94 + int(c1); i < len(jis0208Decode) { - r = rune(jis0208Decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - default: - err = errInvalidShiftJIS - break loop - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - if atEOF && err == transform.ErrShortSrc { - err = errInvalidShiftJIS - } - return nDst, nSrc, err -} - -type shiftJISEncoder struct{ transform.NopResetter } - -func (shiftJISEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break loop - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode5Low <= r && r < encode5High: - if 0xff61 <= r && r < 0xffa0 { - r -= 0xff61 - 0xa1 - goto write1 - } - if r = rune(encode5[r-encode5Low]); r>>tableShift == jis0208 { - goto write2 - } - } - r = encoding.ASCIISub - } - - write1: - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2: - j1 := uint8(r>>codeShift) & codeMask - j2 := uint8(r) & codeMask - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break loop - } - if j1 <= 61 { - dst[nDst+0] = 129 + j1/2 - } else { - dst[nDst+0] = 193 + j1/2 - } - if j1&1 == 0 { - dst[nDst+1] = j2 + j2/63 + 64 - } else { - dst[nDst+1] = j2 + 159 - } - nDst += 2 - continue - } - return nDst, nSrc, err -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/tables.go deleted file mode 100644 index 1108e83d..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese/tables.go +++ /dev/null @@ -1,26971 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package japanese provides Japanese encodings such as EUC-JP and Shift JIS. -package japanese - -// jis0208Decode is the decoding table from JIS 0208 code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-jis0208.txt -var jis0208Decode = [...]uint16{ - 0: 0x3000, - 1: 0x3001, - 2: 0x3002, - 3: 0xFF0C, - 4: 0xFF0E, - 5: 0x30FB, - 6: 0xFF1A, - 7: 0xFF1B, - 8: 0xFF1F, - 9: 0xFF01, - 10: 0x309B, - 11: 0x309C, - 12: 0x00B4, - 13: 0xFF40, - 14: 0x00A8, - 15: 0xFF3E, - 16: 0xFFE3, - 17: 0xFF3F, - 18: 0x30FD, - 19: 0x30FE, - 20: 0x309D, - 21: 0x309E, - 22: 0x3003, - 23: 0x4EDD, - 24: 0x3005, - 25: 0x3006, - 26: 0x3007, - 27: 0x30FC, - 28: 0x2015, - 29: 0x2010, - 30: 0xFF0F, - 31: 0xFF3C, - 32: 0xFF5E, - 33: 0x2225, - 34: 0xFF5C, - 35: 0x2026, - 36: 0x2025, - 37: 0x2018, - 38: 0x2019, - 39: 0x201C, - 40: 0x201D, - 41: 0xFF08, - 42: 0xFF09, - 43: 0x3014, - 44: 0x3015, - 45: 0xFF3B, - 46: 0xFF3D, - 47: 0xFF5B, - 48: 0xFF5D, - 49: 0x3008, - 50: 0x3009, - 51: 0x300A, - 52: 0x300B, - 53: 0x300C, - 54: 0x300D, - 55: 0x300E, - 56: 0x300F, - 57: 0x3010, - 58: 0x3011, - 59: 0xFF0B, - 60: 0xFF0D, - 61: 0x00B1, - 62: 0x00D7, - 63: 0x00F7, - 64: 0xFF1D, - 65: 0x2260, - 66: 0xFF1C, - 67: 0xFF1E, - 68: 0x2266, - 69: 0x2267, - 70: 0x221E, - 71: 0x2234, - 72: 0x2642, - 73: 0x2640, - 74: 0x00B0, - 75: 0x2032, - 76: 0x2033, - 77: 0x2103, - 78: 0xFFE5, - 79: 0xFF04, - 80: 0xFFE0, - 81: 0xFFE1, - 82: 0xFF05, - 83: 0xFF03, - 84: 0xFF06, - 85: 0xFF0A, - 86: 0xFF20, - 87: 0x00A7, - 88: 0x2606, - 89: 0x2605, - 90: 0x25CB, - 91: 0x25CF, - 92: 0x25CE, - 93: 0x25C7, - 94: 0x25C6, - 95: 0x25A1, - 96: 0x25A0, - 97: 0x25B3, - 98: 0x25B2, - 99: 0x25BD, - 100: 0x25BC, - 101: 0x203B, - 102: 0x3012, - 103: 0x2192, - 104: 0x2190, - 105: 0x2191, - 106: 0x2193, - 107: 0x3013, - 119: 0x2208, - 120: 0x220B, - 121: 0x2286, - 122: 0x2287, - 123: 0x2282, - 124: 0x2283, - 125: 0x222A, - 126: 0x2229, - 135: 0x2227, - 136: 0x2228, - 137: 0xFFE2, - 138: 0x21D2, - 139: 0x21D4, - 140: 0x2200, - 141: 0x2203, - 153: 0x2220, - 154: 0x22A5, - 155: 0x2312, - 156: 0x2202, - 157: 0x2207, - 158: 0x2261, - 159: 0x2252, - 160: 0x226A, - 161: 0x226B, - 162: 0x221A, - 163: 0x223D, - 164: 0x221D, - 165: 0x2235, - 166: 0x222B, - 167: 0x222C, - 175: 0x212B, - 176: 0x2030, - 177: 0x266F, - 178: 0x266D, - 179: 0x266A, - 180: 0x2020, - 181: 0x2021, - 182: 0x00B6, - 187: 0x25EF, - 203: 0xFF10, - 204: 0xFF11, - 205: 0xFF12, - 206: 0xFF13, - 207: 0xFF14, - 208: 0xFF15, - 209: 0xFF16, - 210: 0xFF17, - 211: 0xFF18, - 212: 0xFF19, - 220: 0xFF21, - 221: 0xFF22, - 222: 0xFF23, - 223: 0xFF24, - 224: 0xFF25, - 225: 0xFF26, - 226: 0xFF27, - 227: 0xFF28, - 228: 0xFF29, - 229: 0xFF2A, - 230: 0xFF2B, - 231: 0xFF2C, - 232: 0xFF2D, - 233: 0xFF2E, - 234: 0xFF2F, - 235: 0xFF30, - 236: 0xFF31, - 237: 0xFF32, - 238: 0xFF33, - 239: 0xFF34, - 240: 0xFF35, - 241: 0xFF36, - 242: 0xFF37, - 243: 0xFF38, - 244: 0xFF39, - 245: 0xFF3A, - 252: 0xFF41, - 253: 0xFF42, - 254: 0xFF43, - 255: 0xFF44, - 256: 0xFF45, - 257: 0xFF46, - 258: 0xFF47, - 259: 0xFF48, - 260: 0xFF49, - 261: 0xFF4A, - 262: 0xFF4B, - 263: 0xFF4C, - 264: 0xFF4D, - 265: 0xFF4E, - 266: 0xFF4F, - 267: 0xFF50, - 268: 0xFF51, - 269: 0xFF52, - 270: 0xFF53, - 271: 0xFF54, - 272: 0xFF55, - 273: 0xFF56, - 274: 0xFF57, - 275: 0xFF58, - 276: 0xFF59, - 277: 0xFF5A, - 282: 0x3041, - 283: 0x3042, - 284: 0x3043, - 285: 0x3044, - 286: 0x3045, - 287: 0x3046, - 288: 0x3047, - 289: 0x3048, - 290: 0x3049, - 291: 0x304A, - 292: 0x304B, - 293: 0x304C, - 294: 0x304D, - 295: 0x304E, - 296: 0x304F, - 297: 0x3050, - 298: 0x3051, - 299: 0x3052, - 300: 0x3053, - 301: 0x3054, - 302: 0x3055, - 303: 0x3056, - 304: 0x3057, - 305: 0x3058, - 306: 0x3059, - 307: 0x305A, - 308: 0x305B, - 309: 0x305C, - 310: 0x305D, - 311: 0x305E, - 312: 0x305F, - 313: 0x3060, - 314: 0x3061, - 315: 0x3062, - 316: 0x3063, - 317: 0x3064, - 318: 0x3065, - 319: 0x3066, - 320: 0x3067, - 321: 0x3068, - 322: 0x3069, - 323: 0x306A, - 324: 0x306B, - 325: 0x306C, - 326: 0x306D, - 327: 0x306E, - 328: 0x306F, - 329: 0x3070, - 330: 0x3071, - 331: 0x3072, - 332: 0x3073, - 333: 0x3074, - 334: 0x3075, - 335: 0x3076, - 336: 0x3077, - 337: 0x3078, - 338: 0x3079, - 339: 0x307A, - 340: 0x307B, - 341: 0x307C, - 342: 0x307D, - 343: 0x307E, - 344: 0x307F, - 345: 0x3080, - 346: 0x3081, - 347: 0x3082, - 348: 0x3083, - 349: 0x3084, - 350: 0x3085, - 351: 0x3086, - 352: 0x3087, - 353: 0x3088, - 354: 0x3089, - 355: 0x308A, - 356: 0x308B, - 357: 0x308C, - 358: 0x308D, - 359: 0x308E, - 360: 0x308F, - 361: 0x3090, - 362: 0x3091, - 363: 0x3092, - 364: 0x3093, - 376: 0x30A1, - 377: 0x30A2, - 378: 0x30A3, - 379: 0x30A4, - 380: 0x30A5, - 381: 0x30A6, - 382: 0x30A7, - 383: 0x30A8, - 384: 0x30A9, - 385: 0x30AA, - 386: 0x30AB, - 387: 0x30AC, - 388: 0x30AD, - 389: 0x30AE, - 390: 0x30AF, - 391: 0x30B0, - 392: 0x30B1, - 393: 0x30B2, - 394: 0x30B3, - 395: 0x30B4, - 396: 0x30B5, - 397: 0x30B6, - 398: 0x30B7, - 399: 0x30B8, - 400: 0x30B9, - 401: 0x30BA, - 402: 0x30BB, - 403: 0x30BC, - 404: 0x30BD, - 405: 0x30BE, - 406: 0x30BF, - 407: 0x30C0, - 408: 0x30C1, - 409: 0x30C2, - 410: 0x30C3, - 411: 0x30C4, - 412: 0x30C5, - 413: 0x30C6, - 414: 0x30C7, - 415: 0x30C8, - 416: 0x30C9, - 417: 0x30CA, - 418: 0x30CB, - 419: 0x30CC, - 420: 0x30CD, - 421: 0x30CE, - 422: 0x30CF, - 423: 0x30D0, - 424: 0x30D1, - 425: 0x30D2, - 426: 0x30D3, - 427: 0x30D4, - 428: 0x30D5, - 429: 0x30D6, - 430: 0x30D7, - 431: 0x30D8, - 432: 0x30D9, - 433: 0x30DA, - 434: 0x30DB, - 435: 0x30DC, - 436: 0x30DD, - 437: 0x30DE, - 438: 0x30DF, - 439: 0x30E0, - 440: 0x30E1, - 441: 0x30E2, - 442: 0x30E3, - 443: 0x30E4, - 444: 0x30E5, - 445: 0x30E6, - 446: 0x30E7, - 447: 0x30E8, - 448: 0x30E9, - 449: 0x30EA, - 450: 0x30EB, - 451: 0x30EC, - 452: 0x30ED, - 453: 0x30EE, - 454: 0x30EF, - 455: 0x30F0, - 456: 0x30F1, - 457: 0x30F2, - 458: 0x30F3, - 459: 0x30F4, - 460: 0x30F5, - 461: 0x30F6, - 470: 0x0391, - 471: 0x0392, - 472: 0x0393, - 473: 0x0394, - 474: 0x0395, - 475: 0x0396, - 476: 0x0397, - 477: 0x0398, - 478: 0x0399, - 479: 0x039A, - 480: 0x039B, - 481: 0x039C, - 482: 0x039D, - 483: 0x039E, - 484: 0x039F, - 485: 0x03A0, - 486: 0x03A1, - 487: 0x03A3, - 488: 0x03A4, - 489: 0x03A5, - 490: 0x03A6, - 491: 0x03A7, - 492: 0x03A8, - 493: 0x03A9, - 502: 0x03B1, - 503: 0x03B2, - 504: 0x03B3, - 505: 0x03B4, - 506: 0x03B5, - 507: 0x03B6, - 508: 0x03B7, - 509: 0x03B8, - 510: 0x03B9, - 511: 0x03BA, - 512: 0x03BB, - 513: 0x03BC, - 514: 0x03BD, - 515: 0x03BE, - 516: 0x03BF, - 517: 0x03C0, - 518: 0x03C1, - 519: 0x03C3, - 520: 0x03C4, - 521: 0x03C5, - 522: 0x03C6, - 523: 0x03C7, - 524: 0x03C8, - 525: 0x03C9, - 564: 0x0410, - 565: 0x0411, - 566: 0x0412, - 567: 0x0413, - 568: 0x0414, - 569: 0x0415, - 570: 0x0401, - 571: 0x0416, - 572: 0x0417, - 573: 0x0418, - 574: 0x0419, - 575: 0x041A, - 576: 0x041B, - 577: 0x041C, - 578: 0x041D, - 579: 0x041E, - 580: 0x041F, - 581: 0x0420, - 582: 0x0421, - 583: 0x0422, - 584: 0x0423, - 585: 0x0424, - 586: 0x0425, - 587: 0x0426, - 588: 0x0427, - 589: 0x0428, - 590: 0x0429, - 591: 0x042A, - 592: 0x042B, - 593: 0x042C, - 594: 0x042D, - 595: 0x042E, - 596: 0x042F, - 612: 0x0430, - 613: 0x0431, - 614: 0x0432, - 615: 0x0433, - 616: 0x0434, - 617: 0x0435, - 618: 0x0451, - 619: 0x0436, - 620: 0x0437, - 621: 0x0438, - 622: 0x0439, - 623: 0x043A, - 624: 0x043B, - 625: 0x043C, - 626: 0x043D, - 627: 0x043E, - 628: 0x043F, - 629: 0x0440, - 630: 0x0441, - 631: 0x0442, - 632: 0x0443, - 633: 0x0444, - 634: 0x0445, - 635: 0x0446, - 636: 0x0447, - 637: 0x0448, - 638: 0x0449, - 639: 0x044A, - 640: 0x044B, - 641: 0x044C, - 642: 0x044D, - 643: 0x044E, - 644: 0x044F, - 658: 0x2500, - 659: 0x2502, - 660: 0x250C, - 661: 0x2510, - 662: 0x2518, - 663: 0x2514, - 664: 0x251C, - 665: 0x252C, - 666: 0x2524, - 667: 0x2534, - 668: 0x253C, - 669: 0x2501, - 670: 0x2503, - 671: 0x250F, - 672: 0x2513, - 673: 0x251B, - 674: 0x2517, - 675: 0x2523, - 676: 0x2533, - 677: 0x252B, - 678: 0x253B, - 679: 0x254B, - 680: 0x2520, - 681: 0x252F, - 682: 0x2528, - 683: 0x2537, - 684: 0x253F, - 685: 0x251D, - 686: 0x2530, - 687: 0x2525, - 688: 0x2538, - 689: 0x2542, - 1128: 0x2460, - 1129: 0x2461, - 1130: 0x2462, - 1131: 0x2463, - 1132: 0x2464, - 1133: 0x2465, - 1134: 0x2466, - 1135: 0x2467, - 1136: 0x2468, - 1137: 0x2469, - 1138: 0x246A, - 1139: 0x246B, - 1140: 0x246C, - 1141: 0x246D, - 1142: 0x246E, - 1143: 0x246F, - 1144: 0x2470, - 1145: 0x2471, - 1146: 0x2472, - 1147: 0x2473, - 1148: 0x2160, - 1149: 0x2161, - 1150: 0x2162, - 1151: 0x2163, - 1152: 0x2164, - 1153: 0x2165, - 1154: 0x2166, - 1155: 0x2167, - 1156: 0x2168, - 1157: 0x2169, - 1159: 0x3349, - 1160: 0x3314, - 1161: 0x3322, - 1162: 0x334D, - 1163: 0x3318, - 1164: 0x3327, - 1165: 0x3303, - 1166: 0x3336, - 1167: 0x3351, - 1168: 0x3357, - 1169: 0x330D, - 1170: 0x3326, - 1171: 0x3323, - 1172: 0x332B, - 1173: 0x334A, - 1174: 0x333B, - 1175: 0x339C, - 1176: 0x339D, - 1177: 0x339E, - 1178: 0x338E, - 1179: 0x338F, - 1180: 0x33C4, - 1181: 0x33A1, - 1190: 0x337B, - 1191: 0x301D, - 1192: 0x301F, - 1193: 0x2116, - 1194: 0x33CD, - 1195: 0x2121, - 1196: 0x32A4, - 1197: 0x32A5, - 1198: 0x32A6, - 1199: 0x32A7, - 1200: 0x32A8, - 1201: 0x3231, - 1202: 0x3232, - 1203: 0x3239, - 1204: 0x337E, - 1205: 0x337D, - 1206: 0x337C, - 1207: 0x2252, - 1208: 0x2261, - 1209: 0x222B, - 1210: 0x222E, - 1211: 0x2211, - 1212: 0x221A, - 1213: 0x22A5, - 1214: 0x2220, - 1215: 0x221F, - 1216: 0x22BF, - 1217: 0x2235, - 1218: 0x2229, - 1219: 0x222A, - 1410: 0x4E9C, - 1411: 0x5516, - 1412: 0x5A03, - 1413: 0x963F, - 1414: 0x54C0, - 1415: 0x611B, - 1416: 0x6328, - 1417: 0x59F6, - 1418: 0x9022, - 1419: 0x8475, - 1420: 0x831C, - 1421: 0x7A50, - 1422: 0x60AA, - 1423: 0x63E1, - 1424: 0x6E25, - 1425: 0x65ED, - 1426: 0x8466, - 1427: 0x82A6, - 1428: 0x9BF5, - 1429: 0x6893, - 1430: 0x5727, - 1431: 0x65A1, - 1432: 0x6271, - 1433: 0x5B9B, - 1434: 0x59D0, - 1435: 0x867B, - 1436: 0x98F4, - 1437: 0x7D62, - 1438: 0x7DBE, - 1439: 0x9B8E, - 1440: 0x6216, - 1441: 0x7C9F, - 1442: 0x88B7, - 1443: 0x5B89, - 1444: 0x5EB5, - 1445: 0x6309, - 1446: 0x6697, - 1447: 0x6848, - 1448: 0x95C7, - 1449: 0x978D, - 1450: 0x674F, - 1451: 0x4EE5, - 1452: 0x4F0A, - 1453: 0x4F4D, - 1454: 0x4F9D, - 1455: 0x5049, - 1456: 0x56F2, - 1457: 0x5937, - 1458: 0x59D4, - 1459: 0x5A01, - 1460: 0x5C09, - 1461: 0x60DF, - 1462: 0x610F, - 1463: 0x6170, - 1464: 0x6613, - 1465: 0x6905, - 1466: 0x70BA, - 1467: 0x754F, - 1468: 0x7570, - 1469: 0x79FB, - 1470: 0x7DAD, - 1471: 0x7DEF, - 1472: 0x80C3, - 1473: 0x840E, - 1474: 0x8863, - 1475: 0x8B02, - 1476: 0x9055, - 1477: 0x907A, - 1478: 0x533B, - 1479: 0x4E95, - 1480: 0x4EA5, - 1481: 0x57DF, - 1482: 0x80B2, - 1483: 0x90C1, - 1484: 0x78EF, - 1485: 0x4E00, - 1486: 0x58F1, - 1487: 0x6EA2, - 1488: 0x9038, - 1489: 0x7A32, - 1490: 0x8328, - 1491: 0x828B, - 1492: 0x9C2F, - 1493: 0x5141, - 1494: 0x5370, - 1495: 0x54BD, - 1496: 0x54E1, - 1497: 0x56E0, - 1498: 0x59FB, - 1499: 0x5F15, - 1500: 0x98F2, - 1501: 0x6DEB, - 1502: 0x80E4, - 1503: 0x852D, - 1504: 0x9662, - 1505: 0x9670, - 1506: 0x96A0, - 1507: 0x97FB, - 1508: 0x540B, - 1509: 0x53F3, - 1510: 0x5B87, - 1511: 0x70CF, - 1512: 0x7FBD, - 1513: 0x8FC2, - 1514: 0x96E8, - 1515: 0x536F, - 1516: 0x9D5C, - 1517: 0x7ABA, - 1518: 0x4E11, - 1519: 0x7893, - 1520: 0x81FC, - 1521: 0x6E26, - 1522: 0x5618, - 1523: 0x5504, - 1524: 0x6B1D, - 1525: 0x851A, - 1526: 0x9C3B, - 1527: 0x59E5, - 1528: 0x53A9, - 1529: 0x6D66, - 1530: 0x74DC, - 1531: 0x958F, - 1532: 0x5642, - 1533: 0x4E91, - 1534: 0x904B, - 1535: 0x96F2, - 1536: 0x834F, - 1537: 0x990C, - 1538: 0x53E1, - 1539: 0x55B6, - 1540: 0x5B30, - 1541: 0x5F71, - 1542: 0x6620, - 1543: 0x66F3, - 1544: 0x6804, - 1545: 0x6C38, - 1546: 0x6CF3, - 1547: 0x6D29, - 1548: 0x745B, - 1549: 0x76C8, - 1550: 0x7A4E, - 1551: 0x9834, - 1552: 0x82F1, - 1553: 0x885B, - 1554: 0x8A60, - 1555: 0x92ED, - 1556: 0x6DB2, - 1557: 0x75AB, - 1558: 0x76CA, - 1559: 0x99C5, - 1560: 0x60A6, - 1561: 0x8B01, - 1562: 0x8D8A, - 1563: 0x95B2, - 1564: 0x698E, - 1565: 0x53AD, - 1566: 0x5186, - 1567: 0x5712, - 1568: 0x5830, - 1569: 0x5944, - 1570: 0x5BB4, - 1571: 0x5EF6, - 1572: 0x6028, - 1573: 0x63A9, - 1574: 0x63F4, - 1575: 0x6CBF, - 1576: 0x6F14, - 1577: 0x708E, - 1578: 0x7114, - 1579: 0x7159, - 1580: 0x71D5, - 1581: 0x733F, - 1582: 0x7E01, - 1583: 0x8276, - 1584: 0x82D1, - 1585: 0x8597, - 1586: 0x9060, - 1587: 0x925B, - 1588: 0x9D1B, - 1589: 0x5869, - 1590: 0x65BC, - 1591: 0x6C5A, - 1592: 0x7525, - 1593: 0x51F9, - 1594: 0x592E, - 1595: 0x5965, - 1596: 0x5F80, - 1597: 0x5FDC, - 1598: 0x62BC, - 1599: 0x65FA, - 1600: 0x6A2A, - 1601: 0x6B27, - 1602: 0x6BB4, - 1603: 0x738B, - 1604: 0x7FC1, - 1605: 0x8956, - 1606: 0x9D2C, - 1607: 0x9D0E, - 1608: 0x9EC4, - 1609: 0x5CA1, - 1610: 0x6C96, - 1611: 0x837B, - 1612: 0x5104, - 1613: 0x5C4B, - 1614: 0x61B6, - 1615: 0x81C6, - 1616: 0x6876, - 1617: 0x7261, - 1618: 0x4E59, - 1619: 0x4FFA, - 1620: 0x5378, - 1621: 0x6069, - 1622: 0x6E29, - 1623: 0x7A4F, - 1624: 0x97F3, - 1625: 0x4E0B, - 1626: 0x5316, - 1627: 0x4EEE, - 1628: 0x4F55, - 1629: 0x4F3D, - 1630: 0x4FA1, - 1631: 0x4F73, - 1632: 0x52A0, - 1633: 0x53EF, - 1634: 0x5609, - 1635: 0x590F, - 1636: 0x5AC1, - 1637: 0x5BB6, - 1638: 0x5BE1, - 1639: 0x79D1, - 1640: 0x6687, - 1641: 0x679C, - 1642: 0x67B6, - 1643: 0x6B4C, - 1644: 0x6CB3, - 1645: 0x706B, - 1646: 0x73C2, - 1647: 0x798D, - 1648: 0x79BE, - 1649: 0x7A3C, - 1650: 0x7B87, - 1651: 0x82B1, - 1652: 0x82DB, - 1653: 0x8304, - 1654: 0x8377, - 1655: 0x83EF, - 1656: 0x83D3, - 1657: 0x8766, - 1658: 0x8AB2, - 1659: 0x5629, - 1660: 0x8CA8, - 1661: 0x8FE6, - 1662: 0x904E, - 1663: 0x971E, - 1664: 0x868A, - 1665: 0x4FC4, - 1666: 0x5CE8, - 1667: 0x6211, - 1668: 0x7259, - 1669: 0x753B, - 1670: 0x81E5, - 1671: 0x82BD, - 1672: 0x86FE, - 1673: 0x8CC0, - 1674: 0x96C5, - 1675: 0x9913, - 1676: 0x99D5, - 1677: 0x4ECB, - 1678: 0x4F1A, - 1679: 0x89E3, - 1680: 0x56DE, - 1681: 0x584A, - 1682: 0x58CA, - 1683: 0x5EFB, - 1684: 0x5FEB, - 1685: 0x602A, - 1686: 0x6094, - 1687: 0x6062, - 1688: 0x61D0, - 1689: 0x6212, - 1690: 0x62D0, - 1691: 0x6539, - 1692: 0x9B41, - 1693: 0x6666, - 1694: 0x68B0, - 1695: 0x6D77, - 1696: 0x7070, - 1697: 0x754C, - 1698: 0x7686, - 1699: 0x7D75, - 1700: 0x82A5, - 1701: 0x87F9, - 1702: 0x958B, - 1703: 0x968E, - 1704: 0x8C9D, - 1705: 0x51F1, - 1706: 0x52BE, - 1707: 0x5916, - 1708: 0x54B3, - 1709: 0x5BB3, - 1710: 0x5D16, - 1711: 0x6168, - 1712: 0x6982, - 1713: 0x6DAF, - 1714: 0x788D, - 1715: 0x84CB, - 1716: 0x8857, - 1717: 0x8A72, - 1718: 0x93A7, - 1719: 0x9AB8, - 1720: 0x6D6C, - 1721: 0x99A8, - 1722: 0x86D9, - 1723: 0x57A3, - 1724: 0x67FF, - 1725: 0x86CE, - 1726: 0x920E, - 1727: 0x5283, - 1728: 0x5687, - 1729: 0x5404, - 1730: 0x5ED3, - 1731: 0x62E1, - 1732: 0x64B9, - 1733: 0x683C, - 1734: 0x6838, - 1735: 0x6BBB, - 1736: 0x7372, - 1737: 0x78BA, - 1738: 0x7A6B, - 1739: 0x899A, - 1740: 0x89D2, - 1741: 0x8D6B, - 1742: 0x8F03, - 1743: 0x90ED, - 1744: 0x95A3, - 1745: 0x9694, - 1746: 0x9769, - 1747: 0x5B66, - 1748: 0x5CB3, - 1749: 0x697D, - 1750: 0x984D, - 1751: 0x984E, - 1752: 0x639B, - 1753: 0x7B20, - 1754: 0x6A2B, - 1755: 0x6A7F, - 1756: 0x68B6, - 1757: 0x9C0D, - 1758: 0x6F5F, - 1759: 0x5272, - 1760: 0x559D, - 1761: 0x6070, - 1762: 0x62EC, - 1763: 0x6D3B, - 1764: 0x6E07, - 1765: 0x6ED1, - 1766: 0x845B, - 1767: 0x8910, - 1768: 0x8F44, - 1769: 0x4E14, - 1770: 0x9C39, - 1771: 0x53F6, - 1772: 0x691B, - 1773: 0x6A3A, - 1774: 0x9784, - 1775: 0x682A, - 1776: 0x515C, - 1777: 0x7AC3, - 1778: 0x84B2, - 1779: 0x91DC, - 1780: 0x938C, - 1781: 0x565B, - 1782: 0x9D28, - 1783: 0x6822, - 1784: 0x8305, - 1785: 0x8431, - 1786: 0x7CA5, - 1787: 0x5208, - 1788: 0x82C5, - 1789: 0x74E6, - 1790: 0x4E7E, - 1791: 0x4F83, - 1792: 0x51A0, - 1793: 0x5BD2, - 1794: 0x520A, - 1795: 0x52D8, - 1796: 0x52E7, - 1797: 0x5DFB, - 1798: 0x559A, - 1799: 0x582A, - 1800: 0x59E6, - 1801: 0x5B8C, - 1802: 0x5B98, - 1803: 0x5BDB, - 1804: 0x5E72, - 1805: 0x5E79, - 1806: 0x60A3, - 1807: 0x611F, - 1808: 0x6163, - 1809: 0x61BE, - 1810: 0x63DB, - 1811: 0x6562, - 1812: 0x67D1, - 1813: 0x6853, - 1814: 0x68FA, - 1815: 0x6B3E, - 1816: 0x6B53, - 1817: 0x6C57, - 1818: 0x6F22, - 1819: 0x6F97, - 1820: 0x6F45, - 1821: 0x74B0, - 1822: 0x7518, - 1823: 0x76E3, - 1824: 0x770B, - 1825: 0x7AFF, - 1826: 0x7BA1, - 1827: 0x7C21, - 1828: 0x7DE9, - 1829: 0x7F36, - 1830: 0x7FF0, - 1831: 0x809D, - 1832: 0x8266, - 1833: 0x839E, - 1834: 0x89B3, - 1835: 0x8ACC, - 1836: 0x8CAB, - 1837: 0x9084, - 1838: 0x9451, - 1839: 0x9593, - 1840: 0x9591, - 1841: 0x95A2, - 1842: 0x9665, - 1843: 0x97D3, - 1844: 0x9928, - 1845: 0x8218, - 1846: 0x4E38, - 1847: 0x542B, - 1848: 0x5CB8, - 1849: 0x5DCC, - 1850: 0x73A9, - 1851: 0x764C, - 1852: 0x773C, - 1853: 0x5CA9, - 1854: 0x7FEB, - 1855: 0x8D0B, - 1856: 0x96C1, - 1857: 0x9811, - 1858: 0x9854, - 1859: 0x9858, - 1860: 0x4F01, - 1861: 0x4F0E, - 1862: 0x5371, - 1863: 0x559C, - 1864: 0x5668, - 1865: 0x57FA, - 1866: 0x5947, - 1867: 0x5B09, - 1868: 0x5BC4, - 1869: 0x5C90, - 1870: 0x5E0C, - 1871: 0x5E7E, - 1872: 0x5FCC, - 1873: 0x63EE, - 1874: 0x673A, - 1875: 0x65D7, - 1876: 0x65E2, - 1877: 0x671F, - 1878: 0x68CB, - 1879: 0x68C4, - 1880: 0x6A5F, - 1881: 0x5E30, - 1882: 0x6BC5, - 1883: 0x6C17, - 1884: 0x6C7D, - 1885: 0x757F, - 1886: 0x7948, - 1887: 0x5B63, - 1888: 0x7A00, - 1889: 0x7D00, - 1890: 0x5FBD, - 1891: 0x898F, - 1892: 0x8A18, - 1893: 0x8CB4, - 1894: 0x8D77, - 1895: 0x8ECC, - 1896: 0x8F1D, - 1897: 0x98E2, - 1898: 0x9A0E, - 1899: 0x9B3C, - 1900: 0x4E80, - 1901: 0x507D, - 1902: 0x5100, - 1903: 0x5993, - 1904: 0x5B9C, - 1905: 0x622F, - 1906: 0x6280, - 1907: 0x64EC, - 1908: 0x6B3A, - 1909: 0x72A0, - 1910: 0x7591, - 1911: 0x7947, - 1912: 0x7FA9, - 1913: 0x87FB, - 1914: 0x8ABC, - 1915: 0x8B70, - 1916: 0x63AC, - 1917: 0x83CA, - 1918: 0x97A0, - 1919: 0x5409, - 1920: 0x5403, - 1921: 0x55AB, - 1922: 0x6854, - 1923: 0x6A58, - 1924: 0x8A70, - 1925: 0x7827, - 1926: 0x6775, - 1927: 0x9ECD, - 1928: 0x5374, - 1929: 0x5BA2, - 1930: 0x811A, - 1931: 0x8650, - 1932: 0x9006, - 1933: 0x4E18, - 1934: 0x4E45, - 1935: 0x4EC7, - 1936: 0x4F11, - 1937: 0x53CA, - 1938: 0x5438, - 1939: 0x5BAE, - 1940: 0x5F13, - 1941: 0x6025, - 1942: 0x6551, - 1943: 0x673D, - 1944: 0x6C42, - 1945: 0x6C72, - 1946: 0x6CE3, - 1947: 0x7078, - 1948: 0x7403, - 1949: 0x7A76, - 1950: 0x7AAE, - 1951: 0x7B08, - 1952: 0x7D1A, - 1953: 0x7CFE, - 1954: 0x7D66, - 1955: 0x65E7, - 1956: 0x725B, - 1957: 0x53BB, - 1958: 0x5C45, - 1959: 0x5DE8, - 1960: 0x62D2, - 1961: 0x62E0, - 1962: 0x6319, - 1963: 0x6E20, - 1964: 0x865A, - 1965: 0x8A31, - 1966: 0x8DDD, - 1967: 0x92F8, - 1968: 0x6F01, - 1969: 0x79A6, - 1970: 0x9B5A, - 1971: 0x4EA8, - 1972: 0x4EAB, - 1973: 0x4EAC, - 1974: 0x4F9B, - 1975: 0x4FA0, - 1976: 0x50D1, - 1977: 0x5147, - 1978: 0x7AF6, - 1979: 0x5171, - 1980: 0x51F6, - 1981: 0x5354, - 1982: 0x5321, - 1983: 0x537F, - 1984: 0x53EB, - 1985: 0x55AC, - 1986: 0x5883, - 1987: 0x5CE1, - 1988: 0x5F37, - 1989: 0x5F4A, - 1990: 0x602F, - 1991: 0x6050, - 1992: 0x606D, - 1993: 0x631F, - 1994: 0x6559, - 1995: 0x6A4B, - 1996: 0x6CC1, - 1997: 0x72C2, - 1998: 0x72ED, - 1999: 0x77EF, - 2000: 0x80F8, - 2001: 0x8105, - 2002: 0x8208, - 2003: 0x854E, - 2004: 0x90F7, - 2005: 0x93E1, - 2006: 0x97FF, - 2007: 0x9957, - 2008: 0x9A5A, - 2009: 0x4EF0, - 2010: 0x51DD, - 2011: 0x5C2D, - 2012: 0x6681, - 2013: 0x696D, - 2014: 0x5C40, - 2015: 0x66F2, - 2016: 0x6975, - 2017: 0x7389, - 2018: 0x6850, - 2019: 0x7C81, - 2020: 0x50C5, - 2021: 0x52E4, - 2022: 0x5747, - 2023: 0x5DFE, - 2024: 0x9326, - 2025: 0x65A4, - 2026: 0x6B23, - 2027: 0x6B3D, - 2028: 0x7434, - 2029: 0x7981, - 2030: 0x79BD, - 2031: 0x7B4B, - 2032: 0x7DCA, - 2033: 0x82B9, - 2034: 0x83CC, - 2035: 0x887F, - 2036: 0x895F, - 2037: 0x8B39, - 2038: 0x8FD1, - 2039: 0x91D1, - 2040: 0x541F, - 2041: 0x9280, - 2042: 0x4E5D, - 2043: 0x5036, - 2044: 0x53E5, - 2045: 0x533A, - 2046: 0x72D7, - 2047: 0x7396, - 2048: 0x77E9, - 2049: 0x82E6, - 2050: 0x8EAF, - 2051: 0x99C6, - 2052: 0x99C8, - 2053: 0x99D2, - 2054: 0x5177, - 2055: 0x611A, - 2056: 0x865E, - 2057: 0x55B0, - 2058: 0x7A7A, - 2059: 0x5076, - 2060: 0x5BD3, - 2061: 0x9047, - 2062: 0x9685, - 2063: 0x4E32, - 2064: 0x6ADB, - 2065: 0x91E7, - 2066: 0x5C51, - 2067: 0x5C48, - 2068: 0x6398, - 2069: 0x7A9F, - 2070: 0x6C93, - 2071: 0x9774, - 2072: 0x8F61, - 2073: 0x7AAA, - 2074: 0x718A, - 2075: 0x9688, - 2076: 0x7C82, - 2077: 0x6817, - 2078: 0x7E70, - 2079: 0x6851, - 2080: 0x936C, - 2081: 0x52F2, - 2082: 0x541B, - 2083: 0x85AB, - 2084: 0x8A13, - 2085: 0x7FA4, - 2086: 0x8ECD, - 2087: 0x90E1, - 2088: 0x5366, - 2089: 0x8888, - 2090: 0x7941, - 2091: 0x4FC2, - 2092: 0x50BE, - 2093: 0x5211, - 2094: 0x5144, - 2095: 0x5553, - 2096: 0x572D, - 2097: 0x73EA, - 2098: 0x578B, - 2099: 0x5951, - 2100: 0x5F62, - 2101: 0x5F84, - 2102: 0x6075, - 2103: 0x6176, - 2104: 0x6167, - 2105: 0x61A9, - 2106: 0x63B2, - 2107: 0x643A, - 2108: 0x656C, - 2109: 0x666F, - 2110: 0x6842, - 2111: 0x6E13, - 2112: 0x7566, - 2113: 0x7A3D, - 2114: 0x7CFB, - 2115: 0x7D4C, - 2116: 0x7D99, - 2117: 0x7E4B, - 2118: 0x7F6B, - 2119: 0x830E, - 2120: 0x834A, - 2121: 0x86CD, - 2122: 0x8A08, - 2123: 0x8A63, - 2124: 0x8B66, - 2125: 0x8EFD, - 2126: 0x981A, - 2127: 0x9D8F, - 2128: 0x82B8, - 2129: 0x8FCE, - 2130: 0x9BE8, - 2131: 0x5287, - 2132: 0x621F, - 2133: 0x6483, - 2134: 0x6FC0, - 2135: 0x9699, - 2136: 0x6841, - 2137: 0x5091, - 2138: 0x6B20, - 2139: 0x6C7A, - 2140: 0x6F54, - 2141: 0x7A74, - 2142: 0x7D50, - 2143: 0x8840, - 2144: 0x8A23, - 2145: 0x6708, - 2146: 0x4EF6, - 2147: 0x5039, - 2148: 0x5026, - 2149: 0x5065, - 2150: 0x517C, - 2151: 0x5238, - 2152: 0x5263, - 2153: 0x55A7, - 2154: 0x570F, - 2155: 0x5805, - 2156: 0x5ACC, - 2157: 0x5EFA, - 2158: 0x61B2, - 2159: 0x61F8, - 2160: 0x62F3, - 2161: 0x6372, - 2162: 0x691C, - 2163: 0x6A29, - 2164: 0x727D, - 2165: 0x72AC, - 2166: 0x732E, - 2167: 0x7814, - 2168: 0x786F, - 2169: 0x7D79, - 2170: 0x770C, - 2171: 0x80A9, - 2172: 0x898B, - 2173: 0x8B19, - 2174: 0x8CE2, - 2175: 0x8ED2, - 2176: 0x9063, - 2177: 0x9375, - 2178: 0x967A, - 2179: 0x9855, - 2180: 0x9A13, - 2181: 0x9E78, - 2182: 0x5143, - 2183: 0x539F, - 2184: 0x53B3, - 2185: 0x5E7B, - 2186: 0x5F26, - 2187: 0x6E1B, - 2188: 0x6E90, - 2189: 0x7384, - 2190: 0x73FE, - 2191: 0x7D43, - 2192: 0x8237, - 2193: 0x8A00, - 2194: 0x8AFA, - 2195: 0x9650, - 2196: 0x4E4E, - 2197: 0x500B, - 2198: 0x53E4, - 2199: 0x547C, - 2200: 0x56FA, - 2201: 0x59D1, - 2202: 0x5B64, - 2203: 0x5DF1, - 2204: 0x5EAB, - 2205: 0x5F27, - 2206: 0x6238, - 2207: 0x6545, - 2208: 0x67AF, - 2209: 0x6E56, - 2210: 0x72D0, - 2211: 0x7CCA, - 2212: 0x88B4, - 2213: 0x80A1, - 2214: 0x80E1, - 2215: 0x83F0, - 2216: 0x864E, - 2217: 0x8A87, - 2218: 0x8DE8, - 2219: 0x9237, - 2220: 0x96C7, - 2221: 0x9867, - 2222: 0x9F13, - 2223: 0x4E94, - 2224: 0x4E92, - 2225: 0x4F0D, - 2226: 0x5348, - 2227: 0x5449, - 2228: 0x543E, - 2229: 0x5A2F, - 2230: 0x5F8C, - 2231: 0x5FA1, - 2232: 0x609F, - 2233: 0x68A7, - 2234: 0x6A8E, - 2235: 0x745A, - 2236: 0x7881, - 2237: 0x8A9E, - 2238: 0x8AA4, - 2239: 0x8B77, - 2240: 0x9190, - 2241: 0x4E5E, - 2242: 0x9BC9, - 2243: 0x4EA4, - 2244: 0x4F7C, - 2245: 0x4FAF, - 2246: 0x5019, - 2247: 0x5016, - 2248: 0x5149, - 2249: 0x516C, - 2250: 0x529F, - 2251: 0x52B9, - 2252: 0x52FE, - 2253: 0x539A, - 2254: 0x53E3, - 2255: 0x5411, - 2256: 0x540E, - 2257: 0x5589, - 2258: 0x5751, - 2259: 0x57A2, - 2260: 0x597D, - 2261: 0x5B54, - 2262: 0x5B5D, - 2263: 0x5B8F, - 2264: 0x5DE5, - 2265: 0x5DE7, - 2266: 0x5DF7, - 2267: 0x5E78, - 2268: 0x5E83, - 2269: 0x5E9A, - 2270: 0x5EB7, - 2271: 0x5F18, - 2272: 0x6052, - 2273: 0x614C, - 2274: 0x6297, - 2275: 0x62D8, - 2276: 0x63A7, - 2277: 0x653B, - 2278: 0x6602, - 2279: 0x6643, - 2280: 0x66F4, - 2281: 0x676D, - 2282: 0x6821, - 2283: 0x6897, - 2284: 0x69CB, - 2285: 0x6C5F, - 2286: 0x6D2A, - 2287: 0x6D69, - 2288: 0x6E2F, - 2289: 0x6E9D, - 2290: 0x7532, - 2291: 0x7687, - 2292: 0x786C, - 2293: 0x7A3F, - 2294: 0x7CE0, - 2295: 0x7D05, - 2296: 0x7D18, - 2297: 0x7D5E, - 2298: 0x7DB1, - 2299: 0x8015, - 2300: 0x8003, - 2301: 0x80AF, - 2302: 0x80B1, - 2303: 0x8154, - 2304: 0x818F, - 2305: 0x822A, - 2306: 0x8352, - 2307: 0x884C, - 2308: 0x8861, - 2309: 0x8B1B, - 2310: 0x8CA2, - 2311: 0x8CFC, - 2312: 0x90CA, - 2313: 0x9175, - 2314: 0x9271, - 2315: 0x783F, - 2316: 0x92FC, - 2317: 0x95A4, - 2318: 0x964D, - 2319: 0x9805, - 2320: 0x9999, - 2321: 0x9AD8, - 2322: 0x9D3B, - 2323: 0x525B, - 2324: 0x52AB, - 2325: 0x53F7, - 2326: 0x5408, - 2327: 0x58D5, - 2328: 0x62F7, - 2329: 0x6FE0, - 2330: 0x8C6A, - 2331: 0x8F5F, - 2332: 0x9EB9, - 2333: 0x514B, - 2334: 0x523B, - 2335: 0x544A, - 2336: 0x56FD, - 2337: 0x7A40, - 2338: 0x9177, - 2339: 0x9D60, - 2340: 0x9ED2, - 2341: 0x7344, - 2342: 0x6F09, - 2343: 0x8170, - 2344: 0x7511, - 2345: 0x5FFD, - 2346: 0x60DA, - 2347: 0x9AA8, - 2348: 0x72DB, - 2349: 0x8FBC, - 2350: 0x6B64, - 2351: 0x9803, - 2352: 0x4ECA, - 2353: 0x56F0, - 2354: 0x5764, - 2355: 0x58BE, - 2356: 0x5A5A, - 2357: 0x6068, - 2358: 0x61C7, - 2359: 0x660F, - 2360: 0x6606, - 2361: 0x6839, - 2362: 0x68B1, - 2363: 0x6DF7, - 2364: 0x75D5, - 2365: 0x7D3A, - 2366: 0x826E, - 2367: 0x9B42, - 2368: 0x4E9B, - 2369: 0x4F50, - 2370: 0x53C9, - 2371: 0x5506, - 2372: 0x5D6F, - 2373: 0x5DE6, - 2374: 0x5DEE, - 2375: 0x67FB, - 2376: 0x6C99, - 2377: 0x7473, - 2378: 0x7802, - 2379: 0x8A50, - 2380: 0x9396, - 2381: 0x88DF, - 2382: 0x5750, - 2383: 0x5EA7, - 2384: 0x632B, - 2385: 0x50B5, - 2386: 0x50AC, - 2387: 0x518D, - 2388: 0x6700, - 2389: 0x54C9, - 2390: 0x585E, - 2391: 0x59BB, - 2392: 0x5BB0, - 2393: 0x5F69, - 2394: 0x624D, - 2395: 0x63A1, - 2396: 0x683D, - 2397: 0x6B73, - 2398: 0x6E08, - 2399: 0x707D, - 2400: 0x91C7, - 2401: 0x7280, - 2402: 0x7815, - 2403: 0x7826, - 2404: 0x796D, - 2405: 0x658E, - 2406: 0x7D30, - 2407: 0x83DC, - 2408: 0x88C1, - 2409: 0x8F09, - 2410: 0x969B, - 2411: 0x5264, - 2412: 0x5728, - 2413: 0x6750, - 2414: 0x7F6A, - 2415: 0x8CA1, - 2416: 0x51B4, - 2417: 0x5742, - 2418: 0x962A, - 2419: 0x583A, - 2420: 0x698A, - 2421: 0x80B4, - 2422: 0x54B2, - 2423: 0x5D0E, - 2424: 0x57FC, - 2425: 0x7895, - 2426: 0x9DFA, - 2427: 0x4F5C, - 2428: 0x524A, - 2429: 0x548B, - 2430: 0x643E, - 2431: 0x6628, - 2432: 0x6714, - 2433: 0x67F5, - 2434: 0x7A84, - 2435: 0x7B56, - 2436: 0x7D22, - 2437: 0x932F, - 2438: 0x685C, - 2439: 0x9BAD, - 2440: 0x7B39, - 2441: 0x5319, - 2442: 0x518A, - 2443: 0x5237, - 2444: 0x5BDF, - 2445: 0x62F6, - 2446: 0x64AE, - 2447: 0x64E6, - 2448: 0x672D, - 2449: 0x6BBA, - 2450: 0x85A9, - 2451: 0x96D1, - 2452: 0x7690, - 2453: 0x9BD6, - 2454: 0x634C, - 2455: 0x9306, - 2456: 0x9BAB, - 2457: 0x76BF, - 2458: 0x6652, - 2459: 0x4E09, - 2460: 0x5098, - 2461: 0x53C2, - 2462: 0x5C71, - 2463: 0x60E8, - 2464: 0x6492, - 2465: 0x6563, - 2466: 0x685F, - 2467: 0x71E6, - 2468: 0x73CA, - 2469: 0x7523, - 2470: 0x7B97, - 2471: 0x7E82, - 2472: 0x8695, - 2473: 0x8B83, - 2474: 0x8CDB, - 2475: 0x9178, - 2476: 0x9910, - 2477: 0x65AC, - 2478: 0x66AB, - 2479: 0x6B8B, - 2480: 0x4ED5, - 2481: 0x4ED4, - 2482: 0x4F3A, - 2483: 0x4F7F, - 2484: 0x523A, - 2485: 0x53F8, - 2486: 0x53F2, - 2487: 0x55E3, - 2488: 0x56DB, - 2489: 0x58EB, - 2490: 0x59CB, - 2491: 0x59C9, - 2492: 0x59FF, - 2493: 0x5B50, - 2494: 0x5C4D, - 2495: 0x5E02, - 2496: 0x5E2B, - 2497: 0x5FD7, - 2498: 0x601D, - 2499: 0x6307, - 2500: 0x652F, - 2501: 0x5B5C, - 2502: 0x65AF, - 2503: 0x65BD, - 2504: 0x65E8, - 2505: 0x679D, - 2506: 0x6B62, - 2507: 0x6B7B, - 2508: 0x6C0F, - 2509: 0x7345, - 2510: 0x7949, - 2511: 0x79C1, - 2512: 0x7CF8, - 2513: 0x7D19, - 2514: 0x7D2B, - 2515: 0x80A2, - 2516: 0x8102, - 2517: 0x81F3, - 2518: 0x8996, - 2519: 0x8A5E, - 2520: 0x8A69, - 2521: 0x8A66, - 2522: 0x8A8C, - 2523: 0x8AEE, - 2524: 0x8CC7, - 2525: 0x8CDC, - 2526: 0x96CC, - 2527: 0x98FC, - 2528: 0x6B6F, - 2529: 0x4E8B, - 2530: 0x4F3C, - 2531: 0x4F8D, - 2532: 0x5150, - 2533: 0x5B57, - 2534: 0x5BFA, - 2535: 0x6148, - 2536: 0x6301, - 2537: 0x6642, - 2538: 0x6B21, - 2539: 0x6ECB, - 2540: 0x6CBB, - 2541: 0x723E, - 2542: 0x74BD, - 2543: 0x75D4, - 2544: 0x78C1, - 2545: 0x793A, - 2546: 0x800C, - 2547: 0x8033, - 2548: 0x81EA, - 2549: 0x8494, - 2550: 0x8F9E, - 2551: 0x6C50, - 2552: 0x9E7F, - 2553: 0x5F0F, - 2554: 0x8B58, - 2555: 0x9D2B, - 2556: 0x7AFA, - 2557: 0x8EF8, - 2558: 0x5B8D, - 2559: 0x96EB, - 2560: 0x4E03, - 2561: 0x53F1, - 2562: 0x57F7, - 2563: 0x5931, - 2564: 0x5AC9, - 2565: 0x5BA4, - 2566: 0x6089, - 2567: 0x6E7F, - 2568: 0x6F06, - 2569: 0x75BE, - 2570: 0x8CEA, - 2571: 0x5B9F, - 2572: 0x8500, - 2573: 0x7BE0, - 2574: 0x5072, - 2575: 0x67F4, - 2576: 0x829D, - 2577: 0x5C61, - 2578: 0x854A, - 2579: 0x7E1E, - 2580: 0x820E, - 2581: 0x5199, - 2582: 0x5C04, - 2583: 0x6368, - 2584: 0x8D66, - 2585: 0x659C, - 2586: 0x716E, - 2587: 0x793E, - 2588: 0x7D17, - 2589: 0x8005, - 2590: 0x8B1D, - 2591: 0x8ECA, - 2592: 0x906E, - 2593: 0x86C7, - 2594: 0x90AA, - 2595: 0x501F, - 2596: 0x52FA, - 2597: 0x5C3A, - 2598: 0x6753, - 2599: 0x707C, - 2600: 0x7235, - 2601: 0x914C, - 2602: 0x91C8, - 2603: 0x932B, - 2604: 0x82E5, - 2605: 0x5BC2, - 2606: 0x5F31, - 2607: 0x60F9, - 2608: 0x4E3B, - 2609: 0x53D6, - 2610: 0x5B88, - 2611: 0x624B, - 2612: 0x6731, - 2613: 0x6B8A, - 2614: 0x72E9, - 2615: 0x73E0, - 2616: 0x7A2E, - 2617: 0x816B, - 2618: 0x8DA3, - 2619: 0x9152, - 2620: 0x9996, - 2621: 0x5112, - 2622: 0x53D7, - 2623: 0x546A, - 2624: 0x5BFF, - 2625: 0x6388, - 2626: 0x6A39, - 2627: 0x7DAC, - 2628: 0x9700, - 2629: 0x56DA, - 2630: 0x53CE, - 2631: 0x5468, - 2632: 0x5B97, - 2633: 0x5C31, - 2634: 0x5DDE, - 2635: 0x4FEE, - 2636: 0x6101, - 2637: 0x62FE, - 2638: 0x6D32, - 2639: 0x79C0, - 2640: 0x79CB, - 2641: 0x7D42, - 2642: 0x7E4D, - 2643: 0x7FD2, - 2644: 0x81ED, - 2645: 0x821F, - 2646: 0x8490, - 2647: 0x8846, - 2648: 0x8972, - 2649: 0x8B90, - 2650: 0x8E74, - 2651: 0x8F2F, - 2652: 0x9031, - 2653: 0x914B, - 2654: 0x916C, - 2655: 0x96C6, - 2656: 0x919C, - 2657: 0x4EC0, - 2658: 0x4F4F, - 2659: 0x5145, - 2660: 0x5341, - 2661: 0x5F93, - 2662: 0x620E, - 2663: 0x67D4, - 2664: 0x6C41, - 2665: 0x6E0B, - 2666: 0x7363, - 2667: 0x7E26, - 2668: 0x91CD, - 2669: 0x9283, - 2670: 0x53D4, - 2671: 0x5919, - 2672: 0x5BBF, - 2673: 0x6DD1, - 2674: 0x795D, - 2675: 0x7E2E, - 2676: 0x7C9B, - 2677: 0x587E, - 2678: 0x719F, - 2679: 0x51FA, - 2680: 0x8853, - 2681: 0x8FF0, - 2682: 0x4FCA, - 2683: 0x5CFB, - 2684: 0x6625, - 2685: 0x77AC, - 2686: 0x7AE3, - 2687: 0x821C, - 2688: 0x99FF, - 2689: 0x51C6, - 2690: 0x5FAA, - 2691: 0x65EC, - 2692: 0x696F, - 2693: 0x6B89, - 2694: 0x6DF3, - 2695: 0x6E96, - 2696: 0x6F64, - 2697: 0x76FE, - 2698: 0x7D14, - 2699: 0x5DE1, - 2700: 0x9075, - 2701: 0x9187, - 2702: 0x9806, - 2703: 0x51E6, - 2704: 0x521D, - 2705: 0x6240, - 2706: 0x6691, - 2707: 0x66D9, - 2708: 0x6E1A, - 2709: 0x5EB6, - 2710: 0x7DD2, - 2711: 0x7F72, - 2712: 0x66F8, - 2713: 0x85AF, - 2714: 0x85F7, - 2715: 0x8AF8, - 2716: 0x52A9, - 2717: 0x53D9, - 2718: 0x5973, - 2719: 0x5E8F, - 2720: 0x5F90, - 2721: 0x6055, - 2722: 0x92E4, - 2723: 0x9664, - 2724: 0x50B7, - 2725: 0x511F, - 2726: 0x52DD, - 2727: 0x5320, - 2728: 0x5347, - 2729: 0x53EC, - 2730: 0x54E8, - 2731: 0x5546, - 2732: 0x5531, - 2733: 0x5617, - 2734: 0x5968, - 2735: 0x59BE, - 2736: 0x5A3C, - 2737: 0x5BB5, - 2738: 0x5C06, - 2739: 0x5C0F, - 2740: 0x5C11, - 2741: 0x5C1A, - 2742: 0x5E84, - 2743: 0x5E8A, - 2744: 0x5EE0, - 2745: 0x5F70, - 2746: 0x627F, - 2747: 0x6284, - 2748: 0x62DB, - 2749: 0x638C, - 2750: 0x6377, - 2751: 0x6607, - 2752: 0x660C, - 2753: 0x662D, - 2754: 0x6676, - 2755: 0x677E, - 2756: 0x68A2, - 2757: 0x6A1F, - 2758: 0x6A35, - 2759: 0x6CBC, - 2760: 0x6D88, - 2761: 0x6E09, - 2762: 0x6E58, - 2763: 0x713C, - 2764: 0x7126, - 2765: 0x7167, - 2766: 0x75C7, - 2767: 0x7701, - 2768: 0x785D, - 2769: 0x7901, - 2770: 0x7965, - 2771: 0x79F0, - 2772: 0x7AE0, - 2773: 0x7B11, - 2774: 0x7CA7, - 2775: 0x7D39, - 2776: 0x8096, - 2777: 0x83D6, - 2778: 0x848B, - 2779: 0x8549, - 2780: 0x885D, - 2781: 0x88F3, - 2782: 0x8A1F, - 2783: 0x8A3C, - 2784: 0x8A54, - 2785: 0x8A73, - 2786: 0x8C61, - 2787: 0x8CDE, - 2788: 0x91A4, - 2789: 0x9266, - 2790: 0x937E, - 2791: 0x9418, - 2792: 0x969C, - 2793: 0x9798, - 2794: 0x4E0A, - 2795: 0x4E08, - 2796: 0x4E1E, - 2797: 0x4E57, - 2798: 0x5197, - 2799: 0x5270, - 2800: 0x57CE, - 2801: 0x5834, - 2802: 0x58CC, - 2803: 0x5B22, - 2804: 0x5E38, - 2805: 0x60C5, - 2806: 0x64FE, - 2807: 0x6761, - 2808: 0x6756, - 2809: 0x6D44, - 2810: 0x72B6, - 2811: 0x7573, - 2812: 0x7A63, - 2813: 0x84B8, - 2814: 0x8B72, - 2815: 0x91B8, - 2816: 0x9320, - 2817: 0x5631, - 2818: 0x57F4, - 2819: 0x98FE, - 2820: 0x62ED, - 2821: 0x690D, - 2822: 0x6B96, - 2823: 0x71ED, - 2824: 0x7E54, - 2825: 0x8077, - 2826: 0x8272, - 2827: 0x89E6, - 2828: 0x98DF, - 2829: 0x8755, - 2830: 0x8FB1, - 2831: 0x5C3B, - 2832: 0x4F38, - 2833: 0x4FE1, - 2834: 0x4FB5, - 2835: 0x5507, - 2836: 0x5A20, - 2837: 0x5BDD, - 2838: 0x5BE9, - 2839: 0x5FC3, - 2840: 0x614E, - 2841: 0x632F, - 2842: 0x65B0, - 2843: 0x664B, - 2844: 0x68EE, - 2845: 0x699B, - 2846: 0x6D78, - 2847: 0x6DF1, - 2848: 0x7533, - 2849: 0x75B9, - 2850: 0x771F, - 2851: 0x795E, - 2852: 0x79E6, - 2853: 0x7D33, - 2854: 0x81E3, - 2855: 0x82AF, - 2856: 0x85AA, - 2857: 0x89AA, - 2858: 0x8A3A, - 2859: 0x8EAB, - 2860: 0x8F9B, - 2861: 0x9032, - 2862: 0x91DD, - 2863: 0x9707, - 2864: 0x4EBA, - 2865: 0x4EC1, - 2866: 0x5203, - 2867: 0x5875, - 2868: 0x58EC, - 2869: 0x5C0B, - 2870: 0x751A, - 2871: 0x5C3D, - 2872: 0x814E, - 2873: 0x8A0A, - 2874: 0x8FC5, - 2875: 0x9663, - 2876: 0x976D, - 2877: 0x7B25, - 2878: 0x8ACF, - 2879: 0x9808, - 2880: 0x9162, - 2881: 0x56F3, - 2882: 0x53A8, - 2883: 0x9017, - 2884: 0x5439, - 2885: 0x5782, - 2886: 0x5E25, - 2887: 0x63A8, - 2888: 0x6C34, - 2889: 0x708A, - 2890: 0x7761, - 2891: 0x7C8B, - 2892: 0x7FE0, - 2893: 0x8870, - 2894: 0x9042, - 2895: 0x9154, - 2896: 0x9310, - 2897: 0x9318, - 2898: 0x968F, - 2899: 0x745E, - 2900: 0x9AC4, - 2901: 0x5D07, - 2902: 0x5D69, - 2903: 0x6570, - 2904: 0x67A2, - 2905: 0x8DA8, - 2906: 0x96DB, - 2907: 0x636E, - 2908: 0x6749, - 2909: 0x6919, - 2910: 0x83C5, - 2911: 0x9817, - 2912: 0x96C0, - 2913: 0x88FE, - 2914: 0x6F84, - 2915: 0x647A, - 2916: 0x5BF8, - 2917: 0x4E16, - 2918: 0x702C, - 2919: 0x755D, - 2920: 0x662F, - 2921: 0x51C4, - 2922: 0x5236, - 2923: 0x52E2, - 2924: 0x59D3, - 2925: 0x5F81, - 2926: 0x6027, - 2927: 0x6210, - 2928: 0x653F, - 2929: 0x6574, - 2930: 0x661F, - 2931: 0x6674, - 2932: 0x68F2, - 2933: 0x6816, - 2934: 0x6B63, - 2935: 0x6E05, - 2936: 0x7272, - 2937: 0x751F, - 2938: 0x76DB, - 2939: 0x7CBE, - 2940: 0x8056, - 2941: 0x58F0, - 2942: 0x88FD, - 2943: 0x897F, - 2944: 0x8AA0, - 2945: 0x8A93, - 2946: 0x8ACB, - 2947: 0x901D, - 2948: 0x9192, - 2949: 0x9752, - 2950: 0x9759, - 2951: 0x6589, - 2952: 0x7A0E, - 2953: 0x8106, - 2954: 0x96BB, - 2955: 0x5E2D, - 2956: 0x60DC, - 2957: 0x621A, - 2958: 0x65A5, - 2959: 0x6614, - 2960: 0x6790, - 2961: 0x77F3, - 2962: 0x7A4D, - 2963: 0x7C4D, - 2964: 0x7E3E, - 2965: 0x810A, - 2966: 0x8CAC, - 2967: 0x8D64, - 2968: 0x8DE1, - 2969: 0x8E5F, - 2970: 0x78A9, - 2971: 0x5207, - 2972: 0x62D9, - 2973: 0x63A5, - 2974: 0x6442, - 2975: 0x6298, - 2976: 0x8A2D, - 2977: 0x7A83, - 2978: 0x7BC0, - 2979: 0x8AAC, - 2980: 0x96EA, - 2981: 0x7D76, - 2982: 0x820C, - 2983: 0x8749, - 2984: 0x4ED9, - 2985: 0x5148, - 2986: 0x5343, - 2987: 0x5360, - 2988: 0x5BA3, - 2989: 0x5C02, - 2990: 0x5C16, - 2991: 0x5DDD, - 2992: 0x6226, - 2993: 0x6247, - 2994: 0x64B0, - 2995: 0x6813, - 2996: 0x6834, - 2997: 0x6CC9, - 2998: 0x6D45, - 2999: 0x6D17, - 3000: 0x67D3, - 3001: 0x6F5C, - 3002: 0x714E, - 3003: 0x717D, - 3004: 0x65CB, - 3005: 0x7A7F, - 3006: 0x7BAD, - 3007: 0x7DDA, - 3008: 0x7E4A, - 3009: 0x7FA8, - 3010: 0x817A, - 3011: 0x821B, - 3012: 0x8239, - 3013: 0x85A6, - 3014: 0x8A6E, - 3015: 0x8CCE, - 3016: 0x8DF5, - 3017: 0x9078, - 3018: 0x9077, - 3019: 0x92AD, - 3020: 0x9291, - 3021: 0x9583, - 3022: 0x9BAE, - 3023: 0x524D, - 3024: 0x5584, - 3025: 0x6F38, - 3026: 0x7136, - 3027: 0x5168, - 3028: 0x7985, - 3029: 0x7E55, - 3030: 0x81B3, - 3031: 0x7CCE, - 3032: 0x564C, - 3033: 0x5851, - 3034: 0x5CA8, - 3035: 0x63AA, - 3036: 0x66FE, - 3037: 0x66FD, - 3038: 0x695A, - 3039: 0x72D9, - 3040: 0x758F, - 3041: 0x758E, - 3042: 0x790E, - 3043: 0x7956, - 3044: 0x79DF, - 3045: 0x7C97, - 3046: 0x7D20, - 3047: 0x7D44, - 3048: 0x8607, - 3049: 0x8A34, - 3050: 0x963B, - 3051: 0x9061, - 3052: 0x9F20, - 3053: 0x50E7, - 3054: 0x5275, - 3055: 0x53CC, - 3056: 0x53E2, - 3057: 0x5009, - 3058: 0x55AA, - 3059: 0x58EE, - 3060: 0x594F, - 3061: 0x723D, - 3062: 0x5B8B, - 3063: 0x5C64, - 3064: 0x531D, - 3065: 0x60E3, - 3066: 0x60F3, - 3067: 0x635C, - 3068: 0x6383, - 3069: 0x633F, - 3070: 0x63BB, - 3071: 0x64CD, - 3072: 0x65E9, - 3073: 0x66F9, - 3074: 0x5DE3, - 3075: 0x69CD, - 3076: 0x69FD, - 3077: 0x6F15, - 3078: 0x71E5, - 3079: 0x4E89, - 3080: 0x75E9, - 3081: 0x76F8, - 3082: 0x7A93, - 3083: 0x7CDF, - 3084: 0x7DCF, - 3085: 0x7D9C, - 3086: 0x8061, - 3087: 0x8349, - 3088: 0x8358, - 3089: 0x846C, - 3090: 0x84BC, - 3091: 0x85FB, - 3092: 0x88C5, - 3093: 0x8D70, - 3094: 0x9001, - 3095: 0x906D, - 3096: 0x9397, - 3097: 0x971C, - 3098: 0x9A12, - 3099: 0x50CF, - 3100: 0x5897, - 3101: 0x618E, - 3102: 0x81D3, - 3103: 0x8535, - 3104: 0x8D08, - 3105: 0x9020, - 3106: 0x4FC3, - 3107: 0x5074, - 3108: 0x5247, - 3109: 0x5373, - 3110: 0x606F, - 3111: 0x6349, - 3112: 0x675F, - 3113: 0x6E2C, - 3114: 0x8DB3, - 3115: 0x901F, - 3116: 0x4FD7, - 3117: 0x5C5E, - 3118: 0x8CCA, - 3119: 0x65CF, - 3120: 0x7D9A, - 3121: 0x5352, - 3122: 0x8896, - 3123: 0x5176, - 3124: 0x63C3, - 3125: 0x5B58, - 3126: 0x5B6B, - 3127: 0x5C0A, - 3128: 0x640D, - 3129: 0x6751, - 3130: 0x905C, - 3131: 0x4ED6, - 3132: 0x591A, - 3133: 0x592A, - 3134: 0x6C70, - 3135: 0x8A51, - 3136: 0x553E, - 3137: 0x5815, - 3138: 0x59A5, - 3139: 0x60F0, - 3140: 0x6253, - 3141: 0x67C1, - 3142: 0x8235, - 3143: 0x6955, - 3144: 0x9640, - 3145: 0x99C4, - 3146: 0x9A28, - 3147: 0x4F53, - 3148: 0x5806, - 3149: 0x5BFE, - 3150: 0x8010, - 3151: 0x5CB1, - 3152: 0x5E2F, - 3153: 0x5F85, - 3154: 0x6020, - 3155: 0x614B, - 3156: 0x6234, - 3157: 0x66FF, - 3158: 0x6CF0, - 3159: 0x6EDE, - 3160: 0x80CE, - 3161: 0x817F, - 3162: 0x82D4, - 3163: 0x888B, - 3164: 0x8CB8, - 3165: 0x9000, - 3166: 0x902E, - 3167: 0x968A, - 3168: 0x9EDB, - 3169: 0x9BDB, - 3170: 0x4EE3, - 3171: 0x53F0, - 3172: 0x5927, - 3173: 0x7B2C, - 3174: 0x918D, - 3175: 0x984C, - 3176: 0x9DF9, - 3177: 0x6EDD, - 3178: 0x7027, - 3179: 0x5353, - 3180: 0x5544, - 3181: 0x5B85, - 3182: 0x6258, - 3183: 0x629E, - 3184: 0x62D3, - 3185: 0x6CA2, - 3186: 0x6FEF, - 3187: 0x7422, - 3188: 0x8A17, - 3189: 0x9438, - 3190: 0x6FC1, - 3191: 0x8AFE, - 3192: 0x8338, - 3193: 0x51E7, - 3194: 0x86F8, - 3195: 0x53EA, - 3196: 0x53E9, - 3197: 0x4F46, - 3198: 0x9054, - 3199: 0x8FB0, - 3200: 0x596A, - 3201: 0x8131, - 3202: 0x5DFD, - 3203: 0x7AEA, - 3204: 0x8FBF, - 3205: 0x68DA, - 3206: 0x8C37, - 3207: 0x72F8, - 3208: 0x9C48, - 3209: 0x6A3D, - 3210: 0x8AB0, - 3211: 0x4E39, - 3212: 0x5358, - 3213: 0x5606, - 3214: 0x5766, - 3215: 0x62C5, - 3216: 0x63A2, - 3217: 0x65E6, - 3218: 0x6B4E, - 3219: 0x6DE1, - 3220: 0x6E5B, - 3221: 0x70AD, - 3222: 0x77ED, - 3223: 0x7AEF, - 3224: 0x7BAA, - 3225: 0x7DBB, - 3226: 0x803D, - 3227: 0x80C6, - 3228: 0x86CB, - 3229: 0x8A95, - 3230: 0x935B, - 3231: 0x56E3, - 3232: 0x58C7, - 3233: 0x5F3E, - 3234: 0x65AD, - 3235: 0x6696, - 3236: 0x6A80, - 3237: 0x6BB5, - 3238: 0x7537, - 3239: 0x8AC7, - 3240: 0x5024, - 3241: 0x77E5, - 3242: 0x5730, - 3243: 0x5F1B, - 3244: 0x6065, - 3245: 0x667A, - 3246: 0x6C60, - 3247: 0x75F4, - 3248: 0x7A1A, - 3249: 0x7F6E, - 3250: 0x81F4, - 3251: 0x8718, - 3252: 0x9045, - 3253: 0x99B3, - 3254: 0x7BC9, - 3255: 0x755C, - 3256: 0x7AF9, - 3257: 0x7B51, - 3258: 0x84C4, - 3259: 0x9010, - 3260: 0x79E9, - 3261: 0x7A92, - 3262: 0x8336, - 3263: 0x5AE1, - 3264: 0x7740, - 3265: 0x4E2D, - 3266: 0x4EF2, - 3267: 0x5B99, - 3268: 0x5FE0, - 3269: 0x62BD, - 3270: 0x663C, - 3271: 0x67F1, - 3272: 0x6CE8, - 3273: 0x866B, - 3274: 0x8877, - 3275: 0x8A3B, - 3276: 0x914E, - 3277: 0x92F3, - 3278: 0x99D0, - 3279: 0x6A17, - 3280: 0x7026, - 3281: 0x732A, - 3282: 0x82E7, - 3283: 0x8457, - 3284: 0x8CAF, - 3285: 0x4E01, - 3286: 0x5146, - 3287: 0x51CB, - 3288: 0x558B, - 3289: 0x5BF5, - 3290: 0x5E16, - 3291: 0x5E33, - 3292: 0x5E81, - 3293: 0x5F14, - 3294: 0x5F35, - 3295: 0x5F6B, - 3296: 0x5FB4, - 3297: 0x61F2, - 3298: 0x6311, - 3299: 0x66A2, - 3300: 0x671D, - 3301: 0x6F6E, - 3302: 0x7252, - 3303: 0x753A, - 3304: 0x773A, - 3305: 0x8074, - 3306: 0x8139, - 3307: 0x8178, - 3308: 0x8776, - 3309: 0x8ABF, - 3310: 0x8ADC, - 3311: 0x8D85, - 3312: 0x8DF3, - 3313: 0x929A, - 3314: 0x9577, - 3315: 0x9802, - 3316: 0x9CE5, - 3317: 0x52C5, - 3318: 0x6357, - 3319: 0x76F4, - 3320: 0x6715, - 3321: 0x6C88, - 3322: 0x73CD, - 3323: 0x8CC3, - 3324: 0x93AE, - 3325: 0x9673, - 3326: 0x6D25, - 3327: 0x589C, - 3328: 0x690E, - 3329: 0x69CC, - 3330: 0x8FFD, - 3331: 0x939A, - 3332: 0x75DB, - 3333: 0x901A, - 3334: 0x585A, - 3335: 0x6802, - 3336: 0x63B4, - 3337: 0x69FB, - 3338: 0x4F43, - 3339: 0x6F2C, - 3340: 0x67D8, - 3341: 0x8FBB, - 3342: 0x8526, - 3343: 0x7DB4, - 3344: 0x9354, - 3345: 0x693F, - 3346: 0x6F70, - 3347: 0x576A, - 3348: 0x58F7, - 3349: 0x5B2C, - 3350: 0x7D2C, - 3351: 0x722A, - 3352: 0x540A, - 3353: 0x91E3, - 3354: 0x9DB4, - 3355: 0x4EAD, - 3356: 0x4F4E, - 3357: 0x505C, - 3358: 0x5075, - 3359: 0x5243, - 3360: 0x8C9E, - 3361: 0x5448, - 3362: 0x5824, - 3363: 0x5B9A, - 3364: 0x5E1D, - 3365: 0x5E95, - 3366: 0x5EAD, - 3367: 0x5EF7, - 3368: 0x5F1F, - 3369: 0x608C, - 3370: 0x62B5, - 3371: 0x633A, - 3372: 0x63D0, - 3373: 0x68AF, - 3374: 0x6C40, - 3375: 0x7887, - 3376: 0x798E, - 3377: 0x7A0B, - 3378: 0x7DE0, - 3379: 0x8247, - 3380: 0x8A02, - 3381: 0x8AE6, - 3382: 0x8E44, - 3383: 0x9013, - 3384: 0x90B8, - 3385: 0x912D, - 3386: 0x91D8, - 3387: 0x9F0E, - 3388: 0x6CE5, - 3389: 0x6458, - 3390: 0x64E2, - 3391: 0x6575, - 3392: 0x6EF4, - 3393: 0x7684, - 3394: 0x7B1B, - 3395: 0x9069, - 3396: 0x93D1, - 3397: 0x6EBA, - 3398: 0x54F2, - 3399: 0x5FB9, - 3400: 0x64A4, - 3401: 0x8F4D, - 3402: 0x8FED, - 3403: 0x9244, - 3404: 0x5178, - 3405: 0x586B, - 3406: 0x5929, - 3407: 0x5C55, - 3408: 0x5E97, - 3409: 0x6DFB, - 3410: 0x7E8F, - 3411: 0x751C, - 3412: 0x8CBC, - 3413: 0x8EE2, - 3414: 0x985B, - 3415: 0x70B9, - 3416: 0x4F1D, - 3417: 0x6BBF, - 3418: 0x6FB1, - 3419: 0x7530, - 3420: 0x96FB, - 3421: 0x514E, - 3422: 0x5410, - 3423: 0x5835, - 3424: 0x5857, - 3425: 0x59AC, - 3426: 0x5C60, - 3427: 0x5F92, - 3428: 0x6597, - 3429: 0x675C, - 3430: 0x6E21, - 3431: 0x767B, - 3432: 0x83DF, - 3433: 0x8CED, - 3434: 0x9014, - 3435: 0x90FD, - 3436: 0x934D, - 3437: 0x7825, - 3438: 0x783A, - 3439: 0x52AA, - 3440: 0x5EA6, - 3441: 0x571F, - 3442: 0x5974, - 3443: 0x6012, - 3444: 0x5012, - 3445: 0x515A, - 3446: 0x51AC, - 3447: 0x51CD, - 3448: 0x5200, - 3449: 0x5510, - 3450: 0x5854, - 3451: 0x5858, - 3452: 0x5957, - 3453: 0x5B95, - 3454: 0x5CF6, - 3455: 0x5D8B, - 3456: 0x60BC, - 3457: 0x6295, - 3458: 0x642D, - 3459: 0x6771, - 3460: 0x6843, - 3461: 0x68BC, - 3462: 0x68DF, - 3463: 0x76D7, - 3464: 0x6DD8, - 3465: 0x6E6F, - 3466: 0x6D9B, - 3467: 0x706F, - 3468: 0x71C8, - 3469: 0x5F53, - 3470: 0x75D8, - 3471: 0x7977, - 3472: 0x7B49, - 3473: 0x7B54, - 3474: 0x7B52, - 3475: 0x7CD6, - 3476: 0x7D71, - 3477: 0x5230, - 3478: 0x8463, - 3479: 0x8569, - 3480: 0x85E4, - 3481: 0x8A0E, - 3482: 0x8B04, - 3483: 0x8C46, - 3484: 0x8E0F, - 3485: 0x9003, - 3486: 0x900F, - 3487: 0x9419, - 3488: 0x9676, - 3489: 0x982D, - 3490: 0x9A30, - 3491: 0x95D8, - 3492: 0x50CD, - 3493: 0x52D5, - 3494: 0x540C, - 3495: 0x5802, - 3496: 0x5C0E, - 3497: 0x61A7, - 3498: 0x649E, - 3499: 0x6D1E, - 3500: 0x77B3, - 3501: 0x7AE5, - 3502: 0x80F4, - 3503: 0x8404, - 3504: 0x9053, - 3505: 0x9285, - 3506: 0x5CE0, - 3507: 0x9D07, - 3508: 0x533F, - 3509: 0x5F97, - 3510: 0x5FB3, - 3511: 0x6D9C, - 3512: 0x7279, - 3513: 0x7763, - 3514: 0x79BF, - 3515: 0x7BE4, - 3516: 0x6BD2, - 3517: 0x72EC, - 3518: 0x8AAD, - 3519: 0x6803, - 3520: 0x6A61, - 3521: 0x51F8, - 3522: 0x7A81, - 3523: 0x6934, - 3524: 0x5C4A, - 3525: 0x9CF6, - 3526: 0x82EB, - 3527: 0x5BC5, - 3528: 0x9149, - 3529: 0x701E, - 3530: 0x5678, - 3531: 0x5C6F, - 3532: 0x60C7, - 3533: 0x6566, - 3534: 0x6C8C, - 3535: 0x8C5A, - 3536: 0x9041, - 3537: 0x9813, - 3538: 0x5451, - 3539: 0x66C7, - 3540: 0x920D, - 3541: 0x5948, - 3542: 0x90A3, - 3543: 0x5185, - 3544: 0x4E4D, - 3545: 0x51EA, - 3546: 0x8599, - 3547: 0x8B0E, - 3548: 0x7058, - 3549: 0x637A, - 3550: 0x934B, - 3551: 0x6962, - 3552: 0x99B4, - 3553: 0x7E04, - 3554: 0x7577, - 3555: 0x5357, - 3556: 0x6960, - 3557: 0x8EDF, - 3558: 0x96E3, - 3559: 0x6C5D, - 3560: 0x4E8C, - 3561: 0x5C3C, - 3562: 0x5F10, - 3563: 0x8FE9, - 3564: 0x5302, - 3565: 0x8CD1, - 3566: 0x8089, - 3567: 0x8679, - 3568: 0x5EFF, - 3569: 0x65E5, - 3570: 0x4E73, - 3571: 0x5165, - 3572: 0x5982, - 3573: 0x5C3F, - 3574: 0x97EE, - 3575: 0x4EFB, - 3576: 0x598A, - 3577: 0x5FCD, - 3578: 0x8A8D, - 3579: 0x6FE1, - 3580: 0x79B0, - 3581: 0x7962, - 3582: 0x5BE7, - 3583: 0x8471, - 3584: 0x732B, - 3585: 0x71B1, - 3586: 0x5E74, - 3587: 0x5FF5, - 3588: 0x637B, - 3589: 0x649A, - 3590: 0x71C3, - 3591: 0x7C98, - 3592: 0x4E43, - 3593: 0x5EFC, - 3594: 0x4E4B, - 3595: 0x57DC, - 3596: 0x56A2, - 3597: 0x60A9, - 3598: 0x6FC3, - 3599: 0x7D0D, - 3600: 0x80FD, - 3601: 0x8133, - 3602: 0x81BF, - 3603: 0x8FB2, - 3604: 0x8997, - 3605: 0x86A4, - 3606: 0x5DF4, - 3607: 0x628A, - 3608: 0x64AD, - 3609: 0x8987, - 3610: 0x6777, - 3611: 0x6CE2, - 3612: 0x6D3E, - 3613: 0x7436, - 3614: 0x7834, - 3615: 0x5A46, - 3616: 0x7F75, - 3617: 0x82AD, - 3618: 0x99AC, - 3619: 0x4FF3, - 3620: 0x5EC3, - 3621: 0x62DD, - 3622: 0x6392, - 3623: 0x6557, - 3624: 0x676F, - 3625: 0x76C3, - 3626: 0x724C, - 3627: 0x80CC, - 3628: 0x80BA, - 3629: 0x8F29, - 3630: 0x914D, - 3631: 0x500D, - 3632: 0x57F9, - 3633: 0x5A92, - 3634: 0x6885, - 3635: 0x6973, - 3636: 0x7164, - 3637: 0x72FD, - 3638: 0x8CB7, - 3639: 0x58F2, - 3640: 0x8CE0, - 3641: 0x966A, - 3642: 0x9019, - 3643: 0x877F, - 3644: 0x79E4, - 3645: 0x77E7, - 3646: 0x8429, - 3647: 0x4F2F, - 3648: 0x5265, - 3649: 0x535A, - 3650: 0x62CD, - 3651: 0x67CF, - 3652: 0x6CCA, - 3653: 0x767D, - 3654: 0x7B94, - 3655: 0x7C95, - 3656: 0x8236, - 3657: 0x8584, - 3658: 0x8FEB, - 3659: 0x66DD, - 3660: 0x6F20, - 3661: 0x7206, - 3662: 0x7E1B, - 3663: 0x83AB, - 3664: 0x99C1, - 3665: 0x9EA6, - 3666: 0x51FD, - 3667: 0x7BB1, - 3668: 0x7872, - 3669: 0x7BB8, - 3670: 0x8087, - 3671: 0x7B48, - 3672: 0x6AE8, - 3673: 0x5E61, - 3674: 0x808C, - 3675: 0x7551, - 3676: 0x7560, - 3677: 0x516B, - 3678: 0x9262, - 3679: 0x6E8C, - 3680: 0x767A, - 3681: 0x9197, - 3682: 0x9AEA, - 3683: 0x4F10, - 3684: 0x7F70, - 3685: 0x629C, - 3686: 0x7B4F, - 3687: 0x95A5, - 3688: 0x9CE9, - 3689: 0x567A, - 3690: 0x5859, - 3691: 0x86E4, - 3692: 0x96BC, - 3693: 0x4F34, - 3694: 0x5224, - 3695: 0x534A, - 3696: 0x53CD, - 3697: 0x53DB, - 3698: 0x5E06, - 3699: 0x642C, - 3700: 0x6591, - 3701: 0x677F, - 3702: 0x6C3E, - 3703: 0x6C4E, - 3704: 0x7248, - 3705: 0x72AF, - 3706: 0x73ED, - 3707: 0x7554, - 3708: 0x7E41, - 3709: 0x822C, - 3710: 0x85E9, - 3711: 0x8CA9, - 3712: 0x7BC4, - 3713: 0x91C6, - 3714: 0x7169, - 3715: 0x9812, - 3716: 0x98EF, - 3717: 0x633D, - 3718: 0x6669, - 3719: 0x756A, - 3720: 0x76E4, - 3721: 0x78D0, - 3722: 0x8543, - 3723: 0x86EE, - 3724: 0x532A, - 3725: 0x5351, - 3726: 0x5426, - 3727: 0x5983, - 3728: 0x5E87, - 3729: 0x5F7C, - 3730: 0x60B2, - 3731: 0x6249, - 3732: 0x6279, - 3733: 0x62AB, - 3734: 0x6590, - 3735: 0x6BD4, - 3736: 0x6CCC, - 3737: 0x75B2, - 3738: 0x76AE, - 3739: 0x7891, - 3740: 0x79D8, - 3741: 0x7DCB, - 3742: 0x7F77, - 3743: 0x80A5, - 3744: 0x88AB, - 3745: 0x8AB9, - 3746: 0x8CBB, - 3747: 0x907F, - 3748: 0x975E, - 3749: 0x98DB, - 3750: 0x6A0B, - 3751: 0x7C38, - 3752: 0x5099, - 3753: 0x5C3E, - 3754: 0x5FAE, - 3755: 0x6787, - 3756: 0x6BD8, - 3757: 0x7435, - 3758: 0x7709, - 3759: 0x7F8E, - 3760: 0x9F3B, - 3761: 0x67CA, - 3762: 0x7A17, - 3763: 0x5339, - 3764: 0x758B, - 3765: 0x9AED, - 3766: 0x5F66, - 3767: 0x819D, - 3768: 0x83F1, - 3769: 0x8098, - 3770: 0x5F3C, - 3771: 0x5FC5, - 3772: 0x7562, - 3773: 0x7B46, - 3774: 0x903C, - 3775: 0x6867, - 3776: 0x59EB, - 3777: 0x5A9B, - 3778: 0x7D10, - 3779: 0x767E, - 3780: 0x8B2C, - 3781: 0x4FF5, - 3782: 0x5F6A, - 3783: 0x6A19, - 3784: 0x6C37, - 3785: 0x6F02, - 3786: 0x74E2, - 3787: 0x7968, - 3788: 0x8868, - 3789: 0x8A55, - 3790: 0x8C79, - 3791: 0x5EDF, - 3792: 0x63CF, - 3793: 0x75C5, - 3794: 0x79D2, - 3795: 0x82D7, - 3796: 0x9328, - 3797: 0x92F2, - 3798: 0x849C, - 3799: 0x86ED, - 3800: 0x9C2D, - 3801: 0x54C1, - 3802: 0x5F6C, - 3803: 0x658C, - 3804: 0x6D5C, - 3805: 0x7015, - 3806: 0x8CA7, - 3807: 0x8CD3, - 3808: 0x983B, - 3809: 0x654F, - 3810: 0x74F6, - 3811: 0x4E0D, - 3812: 0x4ED8, - 3813: 0x57E0, - 3814: 0x592B, - 3815: 0x5A66, - 3816: 0x5BCC, - 3817: 0x51A8, - 3818: 0x5E03, - 3819: 0x5E9C, - 3820: 0x6016, - 3821: 0x6276, - 3822: 0x6577, - 3823: 0x65A7, - 3824: 0x666E, - 3825: 0x6D6E, - 3826: 0x7236, - 3827: 0x7B26, - 3828: 0x8150, - 3829: 0x819A, - 3830: 0x8299, - 3831: 0x8B5C, - 3832: 0x8CA0, - 3833: 0x8CE6, - 3834: 0x8D74, - 3835: 0x961C, - 3836: 0x9644, - 3837: 0x4FAE, - 3838: 0x64AB, - 3839: 0x6B66, - 3840: 0x821E, - 3841: 0x8461, - 3842: 0x856A, - 3843: 0x90E8, - 3844: 0x5C01, - 3845: 0x6953, - 3846: 0x98A8, - 3847: 0x847A, - 3848: 0x8557, - 3849: 0x4F0F, - 3850: 0x526F, - 3851: 0x5FA9, - 3852: 0x5E45, - 3853: 0x670D, - 3854: 0x798F, - 3855: 0x8179, - 3856: 0x8907, - 3857: 0x8986, - 3858: 0x6DF5, - 3859: 0x5F17, - 3860: 0x6255, - 3861: 0x6CB8, - 3862: 0x4ECF, - 3863: 0x7269, - 3864: 0x9B92, - 3865: 0x5206, - 3866: 0x543B, - 3867: 0x5674, - 3868: 0x58B3, - 3869: 0x61A4, - 3870: 0x626E, - 3871: 0x711A, - 3872: 0x596E, - 3873: 0x7C89, - 3874: 0x7CDE, - 3875: 0x7D1B, - 3876: 0x96F0, - 3877: 0x6587, - 3878: 0x805E, - 3879: 0x4E19, - 3880: 0x4F75, - 3881: 0x5175, - 3882: 0x5840, - 3883: 0x5E63, - 3884: 0x5E73, - 3885: 0x5F0A, - 3886: 0x67C4, - 3887: 0x4E26, - 3888: 0x853D, - 3889: 0x9589, - 3890: 0x965B, - 3891: 0x7C73, - 3892: 0x9801, - 3893: 0x50FB, - 3894: 0x58C1, - 3895: 0x7656, - 3896: 0x78A7, - 3897: 0x5225, - 3898: 0x77A5, - 3899: 0x8511, - 3900: 0x7B86, - 3901: 0x504F, - 3902: 0x5909, - 3903: 0x7247, - 3904: 0x7BC7, - 3905: 0x7DE8, - 3906: 0x8FBA, - 3907: 0x8FD4, - 3908: 0x904D, - 3909: 0x4FBF, - 3910: 0x52C9, - 3911: 0x5A29, - 3912: 0x5F01, - 3913: 0x97AD, - 3914: 0x4FDD, - 3915: 0x8217, - 3916: 0x92EA, - 3917: 0x5703, - 3918: 0x6355, - 3919: 0x6B69, - 3920: 0x752B, - 3921: 0x88DC, - 3922: 0x8F14, - 3923: 0x7A42, - 3924: 0x52DF, - 3925: 0x5893, - 3926: 0x6155, - 3927: 0x620A, - 3928: 0x66AE, - 3929: 0x6BCD, - 3930: 0x7C3F, - 3931: 0x83E9, - 3932: 0x5023, - 3933: 0x4FF8, - 3934: 0x5305, - 3935: 0x5446, - 3936: 0x5831, - 3937: 0x5949, - 3938: 0x5B9D, - 3939: 0x5CF0, - 3940: 0x5CEF, - 3941: 0x5D29, - 3942: 0x5E96, - 3943: 0x62B1, - 3944: 0x6367, - 3945: 0x653E, - 3946: 0x65B9, - 3947: 0x670B, - 3948: 0x6CD5, - 3949: 0x6CE1, - 3950: 0x70F9, - 3951: 0x7832, - 3952: 0x7E2B, - 3953: 0x80DE, - 3954: 0x82B3, - 3955: 0x840C, - 3956: 0x84EC, - 3957: 0x8702, - 3958: 0x8912, - 3959: 0x8A2A, - 3960: 0x8C4A, - 3961: 0x90A6, - 3962: 0x92D2, - 3963: 0x98FD, - 3964: 0x9CF3, - 3965: 0x9D6C, - 3966: 0x4E4F, - 3967: 0x4EA1, - 3968: 0x508D, - 3969: 0x5256, - 3970: 0x574A, - 3971: 0x59A8, - 3972: 0x5E3D, - 3973: 0x5FD8, - 3974: 0x5FD9, - 3975: 0x623F, - 3976: 0x66B4, - 3977: 0x671B, - 3978: 0x67D0, - 3979: 0x68D2, - 3980: 0x5192, - 3981: 0x7D21, - 3982: 0x80AA, - 3983: 0x81A8, - 3984: 0x8B00, - 3985: 0x8C8C, - 3986: 0x8CBF, - 3987: 0x927E, - 3988: 0x9632, - 3989: 0x5420, - 3990: 0x982C, - 3991: 0x5317, - 3992: 0x50D5, - 3993: 0x535C, - 3994: 0x58A8, - 3995: 0x64B2, - 3996: 0x6734, - 3997: 0x7267, - 3998: 0x7766, - 3999: 0x7A46, - 4000: 0x91E6, - 4001: 0x52C3, - 4002: 0x6CA1, - 4003: 0x6B86, - 4004: 0x5800, - 4005: 0x5E4C, - 4006: 0x5954, - 4007: 0x672C, - 4008: 0x7FFB, - 4009: 0x51E1, - 4010: 0x76C6, - 4011: 0x6469, - 4012: 0x78E8, - 4013: 0x9B54, - 4014: 0x9EBB, - 4015: 0x57CB, - 4016: 0x59B9, - 4017: 0x6627, - 4018: 0x679A, - 4019: 0x6BCE, - 4020: 0x54E9, - 4021: 0x69D9, - 4022: 0x5E55, - 4023: 0x819C, - 4024: 0x6795, - 4025: 0x9BAA, - 4026: 0x67FE, - 4027: 0x9C52, - 4028: 0x685D, - 4029: 0x4EA6, - 4030: 0x4FE3, - 4031: 0x53C8, - 4032: 0x62B9, - 4033: 0x672B, - 4034: 0x6CAB, - 4035: 0x8FC4, - 4036: 0x4FAD, - 4037: 0x7E6D, - 4038: 0x9EBF, - 4039: 0x4E07, - 4040: 0x6162, - 4041: 0x6E80, - 4042: 0x6F2B, - 4043: 0x8513, - 4044: 0x5473, - 4045: 0x672A, - 4046: 0x9B45, - 4047: 0x5DF3, - 4048: 0x7B95, - 4049: 0x5CAC, - 4050: 0x5BC6, - 4051: 0x871C, - 4052: 0x6E4A, - 4053: 0x84D1, - 4054: 0x7A14, - 4055: 0x8108, - 4056: 0x5999, - 4057: 0x7C8D, - 4058: 0x6C11, - 4059: 0x7720, - 4060: 0x52D9, - 4061: 0x5922, - 4062: 0x7121, - 4063: 0x725F, - 4064: 0x77DB, - 4065: 0x9727, - 4066: 0x9D61, - 4067: 0x690B, - 4068: 0x5A7F, - 4069: 0x5A18, - 4070: 0x51A5, - 4071: 0x540D, - 4072: 0x547D, - 4073: 0x660E, - 4074: 0x76DF, - 4075: 0x8FF7, - 4076: 0x9298, - 4077: 0x9CF4, - 4078: 0x59EA, - 4079: 0x725D, - 4080: 0x6EC5, - 4081: 0x514D, - 4082: 0x68C9, - 4083: 0x7DBF, - 4084: 0x7DEC, - 4085: 0x9762, - 4086: 0x9EBA, - 4087: 0x6478, - 4088: 0x6A21, - 4089: 0x8302, - 4090: 0x5984, - 4091: 0x5B5F, - 4092: 0x6BDB, - 4093: 0x731B, - 4094: 0x76F2, - 4095: 0x7DB2, - 4096: 0x8017, - 4097: 0x8499, - 4098: 0x5132, - 4099: 0x6728, - 4100: 0x9ED9, - 4101: 0x76EE, - 4102: 0x6762, - 4103: 0x52FF, - 4104: 0x9905, - 4105: 0x5C24, - 4106: 0x623B, - 4107: 0x7C7E, - 4108: 0x8CB0, - 4109: 0x554F, - 4110: 0x60B6, - 4111: 0x7D0B, - 4112: 0x9580, - 4113: 0x5301, - 4114: 0x4E5F, - 4115: 0x51B6, - 4116: 0x591C, - 4117: 0x723A, - 4118: 0x8036, - 4119: 0x91CE, - 4120: 0x5F25, - 4121: 0x77E2, - 4122: 0x5384, - 4123: 0x5F79, - 4124: 0x7D04, - 4125: 0x85AC, - 4126: 0x8A33, - 4127: 0x8E8D, - 4128: 0x9756, - 4129: 0x67F3, - 4130: 0x85AE, - 4131: 0x9453, - 4132: 0x6109, - 4133: 0x6108, - 4134: 0x6CB9, - 4135: 0x7652, - 4136: 0x8AED, - 4137: 0x8F38, - 4138: 0x552F, - 4139: 0x4F51, - 4140: 0x512A, - 4141: 0x52C7, - 4142: 0x53CB, - 4143: 0x5BA5, - 4144: 0x5E7D, - 4145: 0x60A0, - 4146: 0x6182, - 4147: 0x63D6, - 4148: 0x6709, - 4149: 0x67DA, - 4150: 0x6E67, - 4151: 0x6D8C, - 4152: 0x7336, - 4153: 0x7337, - 4154: 0x7531, - 4155: 0x7950, - 4156: 0x88D5, - 4157: 0x8A98, - 4158: 0x904A, - 4159: 0x9091, - 4160: 0x90F5, - 4161: 0x96C4, - 4162: 0x878D, - 4163: 0x5915, - 4164: 0x4E88, - 4165: 0x4F59, - 4166: 0x4E0E, - 4167: 0x8A89, - 4168: 0x8F3F, - 4169: 0x9810, - 4170: 0x50AD, - 4171: 0x5E7C, - 4172: 0x5996, - 4173: 0x5BB9, - 4174: 0x5EB8, - 4175: 0x63DA, - 4176: 0x63FA, - 4177: 0x64C1, - 4178: 0x66DC, - 4179: 0x694A, - 4180: 0x69D8, - 4181: 0x6D0B, - 4182: 0x6EB6, - 4183: 0x7194, - 4184: 0x7528, - 4185: 0x7AAF, - 4186: 0x7F8A, - 4187: 0x8000, - 4188: 0x8449, - 4189: 0x84C9, - 4190: 0x8981, - 4191: 0x8B21, - 4192: 0x8E0A, - 4193: 0x9065, - 4194: 0x967D, - 4195: 0x990A, - 4196: 0x617E, - 4197: 0x6291, - 4198: 0x6B32, - 4199: 0x6C83, - 4200: 0x6D74, - 4201: 0x7FCC, - 4202: 0x7FFC, - 4203: 0x6DC0, - 4204: 0x7F85, - 4205: 0x87BA, - 4206: 0x88F8, - 4207: 0x6765, - 4208: 0x83B1, - 4209: 0x983C, - 4210: 0x96F7, - 4211: 0x6D1B, - 4212: 0x7D61, - 4213: 0x843D, - 4214: 0x916A, - 4215: 0x4E71, - 4216: 0x5375, - 4217: 0x5D50, - 4218: 0x6B04, - 4219: 0x6FEB, - 4220: 0x85CD, - 4221: 0x862D, - 4222: 0x89A7, - 4223: 0x5229, - 4224: 0x540F, - 4225: 0x5C65, - 4226: 0x674E, - 4227: 0x68A8, - 4228: 0x7406, - 4229: 0x7483, - 4230: 0x75E2, - 4231: 0x88CF, - 4232: 0x88E1, - 4233: 0x91CC, - 4234: 0x96E2, - 4235: 0x9678, - 4236: 0x5F8B, - 4237: 0x7387, - 4238: 0x7ACB, - 4239: 0x844E, - 4240: 0x63A0, - 4241: 0x7565, - 4242: 0x5289, - 4243: 0x6D41, - 4244: 0x6E9C, - 4245: 0x7409, - 4246: 0x7559, - 4247: 0x786B, - 4248: 0x7C92, - 4249: 0x9686, - 4250: 0x7ADC, - 4251: 0x9F8D, - 4252: 0x4FB6, - 4253: 0x616E, - 4254: 0x65C5, - 4255: 0x865C, - 4256: 0x4E86, - 4257: 0x4EAE, - 4258: 0x50DA, - 4259: 0x4E21, - 4260: 0x51CC, - 4261: 0x5BEE, - 4262: 0x6599, - 4263: 0x6881, - 4264: 0x6DBC, - 4265: 0x731F, - 4266: 0x7642, - 4267: 0x77AD, - 4268: 0x7A1C, - 4269: 0x7CE7, - 4270: 0x826F, - 4271: 0x8AD2, - 4272: 0x907C, - 4273: 0x91CF, - 4274: 0x9675, - 4275: 0x9818, - 4276: 0x529B, - 4277: 0x7DD1, - 4278: 0x502B, - 4279: 0x5398, - 4280: 0x6797, - 4281: 0x6DCB, - 4282: 0x71D0, - 4283: 0x7433, - 4284: 0x81E8, - 4285: 0x8F2A, - 4286: 0x96A3, - 4287: 0x9C57, - 4288: 0x9E9F, - 4289: 0x7460, - 4290: 0x5841, - 4291: 0x6D99, - 4292: 0x7D2F, - 4293: 0x985E, - 4294: 0x4EE4, - 4295: 0x4F36, - 4296: 0x4F8B, - 4297: 0x51B7, - 4298: 0x52B1, - 4299: 0x5DBA, - 4300: 0x601C, - 4301: 0x73B2, - 4302: 0x793C, - 4303: 0x82D3, - 4304: 0x9234, - 4305: 0x96B7, - 4306: 0x96F6, - 4307: 0x970A, - 4308: 0x9E97, - 4309: 0x9F62, - 4310: 0x66A6, - 4311: 0x6B74, - 4312: 0x5217, - 4313: 0x52A3, - 4314: 0x70C8, - 4315: 0x88C2, - 4316: 0x5EC9, - 4317: 0x604B, - 4318: 0x6190, - 4319: 0x6F23, - 4320: 0x7149, - 4321: 0x7C3E, - 4322: 0x7DF4, - 4323: 0x806F, - 4324: 0x84EE, - 4325: 0x9023, - 4326: 0x932C, - 4327: 0x5442, - 4328: 0x9B6F, - 4329: 0x6AD3, - 4330: 0x7089, - 4331: 0x8CC2, - 4332: 0x8DEF, - 4333: 0x9732, - 4334: 0x52B4, - 4335: 0x5A41, - 4336: 0x5ECA, - 4337: 0x5F04, - 4338: 0x6717, - 4339: 0x697C, - 4340: 0x6994, - 4341: 0x6D6A, - 4342: 0x6F0F, - 4343: 0x7262, - 4344: 0x72FC, - 4345: 0x7BED, - 4346: 0x8001, - 4347: 0x807E, - 4348: 0x874B, - 4349: 0x90CE, - 4350: 0x516D, - 4351: 0x9E93, - 4352: 0x7984, - 4353: 0x808B, - 4354: 0x9332, - 4355: 0x8AD6, - 4356: 0x502D, - 4357: 0x548C, - 4358: 0x8A71, - 4359: 0x6B6A, - 4360: 0x8CC4, - 4361: 0x8107, - 4362: 0x60D1, - 4363: 0x67A0, - 4364: 0x9DF2, - 4365: 0x4E99, - 4366: 0x4E98, - 4367: 0x9C10, - 4368: 0x8A6B, - 4369: 0x85C1, - 4370: 0x8568, - 4371: 0x6900, - 4372: 0x6E7E, - 4373: 0x7897, - 4374: 0x8155, - 4418: 0x5F0C, - 4419: 0x4E10, - 4420: 0x4E15, - 4421: 0x4E2A, - 4422: 0x4E31, - 4423: 0x4E36, - 4424: 0x4E3C, - 4425: 0x4E3F, - 4426: 0x4E42, - 4427: 0x4E56, - 4428: 0x4E58, - 4429: 0x4E82, - 4430: 0x4E85, - 4431: 0x8C6B, - 4432: 0x4E8A, - 4433: 0x8212, - 4434: 0x5F0D, - 4435: 0x4E8E, - 4436: 0x4E9E, - 4437: 0x4E9F, - 4438: 0x4EA0, - 4439: 0x4EA2, - 4440: 0x4EB0, - 4441: 0x4EB3, - 4442: 0x4EB6, - 4443: 0x4ECE, - 4444: 0x4ECD, - 4445: 0x4EC4, - 4446: 0x4EC6, - 4447: 0x4EC2, - 4448: 0x4ED7, - 4449: 0x4EDE, - 4450: 0x4EED, - 4451: 0x4EDF, - 4452: 0x4EF7, - 4453: 0x4F09, - 4454: 0x4F5A, - 4455: 0x4F30, - 4456: 0x4F5B, - 4457: 0x4F5D, - 4458: 0x4F57, - 4459: 0x4F47, - 4460: 0x4F76, - 4461: 0x4F88, - 4462: 0x4F8F, - 4463: 0x4F98, - 4464: 0x4F7B, - 4465: 0x4F69, - 4466: 0x4F70, - 4467: 0x4F91, - 4468: 0x4F6F, - 4469: 0x4F86, - 4470: 0x4F96, - 4471: 0x5118, - 4472: 0x4FD4, - 4473: 0x4FDF, - 4474: 0x4FCE, - 4475: 0x4FD8, - 4476: 0x4FDB, - 4477: 0x4FD1, - 4478: 0x4FDA, - 4479: 0x4FD0, - 4480: 0x4FE4, - 4481: 0x4FE5, - 4482: 0x501A, - 4483: 0x5028, - 4484: 0x5014, - 4485: 0x502A, - 4486: 0x5025, - 4487: 0x5005, - 4488: 0x4F1C, - 4489: 0x4FF6, - 4490: 0x5021, - 4491: 0x5029, - 4492: 0x502C, - 4493: 0x4FFE, - 4494: 0x4FEF, - 4495: 0x5011, - 4496: 0x5006, - 4497: 0x5043, - 4498: 0x5047, - 4499: 0x6703, - 4500: 0x5055, - 4501: 0x5050, - 4502: 0x5048, - 4503: 0x505A, - 4504: 0x5056, - 4505: 0x506C, - 4506: 0x5078, - 4507: 0x5080, - 4508: 0x509A, - 4509: 0x5085, - 4510: 0x50B4, - 4511: 0x50B2, - 4512: 0x50C9, - 4513: 0x50CA, - 4514: 0x50B3, - 4515: 0x50C2, - 4516: 0x50D6, - 4517: 0x50DE, - 4518: 0x50E5, - 4519: 0x50ED, - 4520: 0x50E3, - 4521: 0x50EE, - 4522: 0x50F9, - 4523: 0x50F5, - 4524: 0x5109, - 4525: 0x5101, - 4526: 0x5102, - 4527: 0x5116, - 4528: 0x5115, - 4529: 0x5114, - 4530: 0x511A, - 4531: 0x5121, - 4532: 0x513A, - 4533: 0x5137, - 4534: 0x513C, - 4535: 0x513B, - 4536: 0x513F, - 4537: 0x5140, - 4538: 0x5152, - 4539: 0x514C, - 4540: 0x5154, - 4541: 0x5162, - 4542: 0x7AF8, - 4543: 0x5169, - 4544: 0x516A, - 4545: 0x516E, - 4546: 0x5180, - 4547: 0x5182, - 4548: 0x56D8, - 4549: 0x518C, - 4550: 0x5189, - 4551: 0x518F, - 4552: 0x5191, - 4553: 0x5193, - 4554: 0x5195, - 4555: 0x5196, - 4556: 0x51A4, - 4557: 0x51A6, - 4558: 0x51A2, - 4559: 0x51A9, - 4560: 0x51AA, - 4561: 0x51AB, - 4562: 0x51B3, - 4563: 0x51B1, - 4564: 0x51B2, - 4565: 0x51B0, - 4566: 0x51B5, - 4567: 0x51BD, - 4568: 0x51C5, - 4569: 0x51C9, - 4570: 0x51DB, - 4571: 0x51E0, - 4572: 0x8655, - 4573: 0x51E9, - 4574: 0x51ED, - 4575: 0x51F0, - 4576: 0x51F5, - 4577: 0x51FE, - 4578: 0x5204, - 4579: 0x520B, - 4580: 0x5214, - 4581: 0x520E, - 4582: 0x5227, - 4583: 0x522A, - 4584: 0x522E, - 4585: 0x5233, - 4586: 0x5239, - 4587: 0x524F, - 4588: 0x5244, - 4589: 0x524B, - 4590: 0x524C, - 4591: 0x525E, - 4592: 0x5254, - 4593: 0x526A, - 4594: 0x5274, - 4595: 0x5269, - 4596: 0x5273, - 4597: 0x527F, - 4598: 0x527D, - 4599: 0x528D, - 4600: 0x5294, - 4601: 0x5292, - 4602: 0x5271, - 4603: 0x5288, - 4604: 0x5291, - 4605: 0x8FA8, - 4606: 0x8FA7, - 4607: 0x52AC, - 4608: 0x52AD, - 4609: 0x52BC, - 4610: 0x52B5, - 4611: 0x52C1, - 4612: 0x52CD, - 4613: 0x52D7, - 4614: 0x52DE, - 4615: 0x52E3, - 4616: 0x52E6, - 4617: 0x98ED, - 4618: 0x52E0, - 4619: 0x52F3, - 4620: 0x52F5, - 4621: 0x52F8, - 4622: 0x52F9, - 4623: 0x5306, - 4624: 0x5308, - 4625: 0x7538, - 4626: 0x530D, - 4627: 0x5310, - 4628: 0x530F, - 4629: 0x5315, - 4630: 0x531A, - 4631: 0x5323, - 4632: 0x532F, - 4633: 0x5331, - 4634: 0x5333, - 4635: 0x5338, - 4636: 0x5340, - 4637: 0x5346, - 4638: 0x5345, - 4639: 0x4E17, - 4640: 0x5349, - 4641: 0x534D, - 4642: 0x51D6, - 4643: 0x535E, - 4644: 0x5369, - 4645: 0x536E, - 4646: 0x5918, - 4647: 0x537B, - 4648: 0x5377, - 4649: 0x5382, - 4650: 0x5396, - 4651: 0x53A0, - 4652: 0x53A6, - 4653: 0x53A5, - 4654: 0x53AE, - 4655: 0x53B0, - 4656: 0x53B6, - 4657: 0x53C3, - 4658: 0x7C12, - 4659: 0x96D9, - 4660: 0x53DF, - 4661: 0x66FC, - 4662: 0x71EE, - 4663: 0x53EE, - 4664: 0x53E8, - 4665: 0x53ED, - 4666: 0x53FA, - 4667: 0x5401, - 4668: 0x543D, - 4669: 0x5440, - 4670: 0x542C, - 4671: 0x542D, - 4672: 0x543C, - 4673: 0x542E, - 4674: 0x5436, - 4675: 0x5429, - 4676: 0x541D, - 4677: 0x544E, - 4678: 0x548F, - 4679: 0x5475, - 4680: 0x548E, - 4681: 0x545F, - 4682: 0x5471, - 4683: 0x5477, - 4684: 0x5470, - 4685: 0x5492, - 4686: 0x547B, - 4687: 0x5480, - 4688: 0x5476, - 4689: 0x5484, - 4690: 0x5490, - 4691: 0x5486, - 4692: 0x54C7, - 4693: 0x54A2, - 4694: 0x54B8, - 4695: 0x54A5, - 4696: 0x54AC, - 4697: 0x54C4, - 4698: 0x54C8, - 4699: 0x54A8, - 4700: 0x54AB, - 4701: 0x54C2, - 4702: 0x54A4, - 4703: 0x54BE, - 4704: 0x54BC, - 4705: 0x54D8, - 4706: 0x54E5, - 4707: 0x54E6, - 4708: 0x550F, - 4709: 0x5514, - 4710: 0x54FD, - 4711: 0x54EE, - 4712: 0x54ED, - 4713: 0x54FA, - 4714: 0x54E2, - 4715: 0x5539, - 4716: 0x5540, - 4717: 0x5563, - 4718: 0x554C, - 4719: 0x552E, - 4720: 0x555C, - 4721: 0x5545, - 4722: 0x5556, - 4723: 0x5557, - 4724: 0x5538, - 4725: 0x5533, - 4726: 0x555D, - 4727: 0x5599, - 4728: 0x5580, - 4729: 0x54AF, - 4730: 0x558A, - 4731: 0x559F, - 4732: 0x557B, - 4733: 0x557E, - 4734: 0x5598, - 4735: 0x559E, - 4736: 0x55AE, - 4737: 0x557C, - 4738: 0x5583, - 4739: 0x55A9, - 4740: 0x5587, - 4741: 0x55A8, - 4742: 0x55DA, - 4743: 0x55C5, - 4744: 0x55DF, - 4745: 0x55C4, - 4746: 0x55DC, - 4747: 0x55E4, - 4748: 0x55D4, - 4749: 0x5614, - 4750: 0x55F7, - 4751: 0x5616, - 4752: 0x55FE, - 4753: 0x55FD, - 4754: 0x561B, - 4755: 0x55F9, - 4756: 0x564E, - 4757: 0x5650, - 4758: 0x71DF, - 4759: 0x5634, - 4760: 0x5636, - 4761: 0x5632, - 4762: 0x5638, - 4763: 0x566B, - 4764: 0x5664, - 4765: 0x562F, - 4766: 0x566C, - 4767: 0x566A, - 4768: 0x5686, - 4769: 0x5680, - 4770: 0x568A, - 4771: 0x56A0, - 4772: 0x5694, - 4773: 0x568F, - 4774: 0x56A5, - 4775: 0x56AE, - 4776: 0x56B6, - 4777: 0x56B4, - 4778: 0x56C2, - 4779: 0x56BC, - 4780: 0x56C1, - 4781: 0x56C3, - 4782: 0x56C0, - 4783: 0x56C8, - 4784: 0x56CE, - 4785: 0x56D1, - 4786: 0x56D3, - 4787: 0x56D7, - 4788: 0x56EE, - 4789: 0x56F9, - 4790: 0x5700, - 4791: 0x56FF, - 4792: 0x5704, - 4793: 0x5709, - 4794: 0x5708, - 4795: 0x570B, - 4796: 0x570D, - 4797: 0x5713, - 4798: 0x5718, - 4799: 0x5716, - 4800: 0x55C7, - 4801: 0x571C, - 4802: 0x5726, - 4803: 0x5737, - 4804: 0x5738, - 4805: 0x574E, - 4806: 0x573B, - 4807: 0x5740, - 4808: 0x574F, - 4809: 0x5769, - 4810: 0x57C0, - 4811: 0x5788, - 4812: 0x5761, - 4813: 0x577F, - 4814: 0x5789, - 4815: 0x5793, - 4816: 0x57A0, - 4817: 0x57B3, - 4818: 0x57A4, - 4819: 0x57AA, - 4820: 0x57B0, - 4821: 0x57C3, - 4822: 0x57C6, - 4823: 0x57D4, - 4824: 0x57D2, - 4825: 0x57D3, - 4826: 0x580A, - 4827: 0x57D6, - 4828: 0x57E3, - 4829: 0x580B, - 4830: 0x5819, - 4831: 0x581D, - 4832: 0x5872, - 4833: 0x5821, - 4834: 0x5862, - 4835: 0x584B, - 4836: 0x5870, - 4837: 0x6BC0, - 4838: 0x5852, - 4839: 0x583D, - 4840: 0x5879, - 4841: 0x5885, - 4842: 0x58B9, - 4843: 0x589F, - 4844: 0x58AB, - 4845: 0x58BA, - 4846: 0x58DE, - 4847: 0x58BB, - 4848: 0x58B8, - 4849: 0x58AE, - 4850: 0x58C5, - 4851: 0x58D3, - 4852: 0x58D1, - 4853: 0x58D7, - 4854: 0x58D9, - 4855: 0x58D8, - 4856: 0x58E5, - 4857: 0x58DC, - 4858: 0x58E4, - 4859: 0x58DF, - 4860: 0x58EF, - 4861: 0x58FA, - 4862: 0x58F9, - 4863: 0x58FB, - 4864: 0x58FC, - 4865: 0x58FD, - 4866: 0x5902, - 4867: 0x590A, - 4868: 0x5910, - 4869: 0x591B, - 4870: 0x68A6, - 4871: 0x5925, - 4872: 0x592C, - 4873: 0x592D, - 4874: 0x5932, - 4875: 0x5938, - 4876: 0x593E, - 4877: 0x7AD2, - 4878: 0x5955, - 4879: 0x5950, - 4880: 0x594E, - 4881: 0x595A, - 4882: 0x5958, - 4883: 0x5962, - 4884: 0x5960, - 4885: 0x5967, - 4886: 0x596C, - 4887: 0x5969, - 4888: 0x5978, - 4889: 0x5981, - 4890: 0x599D, - 4891: 0x4F5E, - 4892: 0x4FAB, - 4893: 0x59A3, - 4894: 0x59B2, - 4895: 0x59C6, - 4896: 0x59E8, - 4897: 0x59DC, - 4898: 0x598D, - 4899: 0x59D9, - 4900: 0x59DA, - 4901: 0x5A25, - 4902: 0x5A1F, - 4903: 0x5A11, - 4904: 0x5A1C, - 4905: 0x5A09, - 4906: 0x5A1A, - 4907: 0x5A40, - 4908: 0x5A6C, - 4909: 0x5A49, - 4910: 0x5A35, - 4911: 0x5A36, - 4912: 0x5A62, - 4913: 0x5A6A, - 4914: 0x5A9A, - 4915: 0x5ABC, - 4916: 0x5ABE, - 4917: 0x5ACB, - 4918: 0x5AC2, - 4919: 0x5ABD, - 4920: 0x5AE3, - 4921: 0x5AD7, - 4922: 0x5AE6, - 4923: 0x5AE9, - 4924: 0x5AD6, - 4925: 0x5AFA, - 4926: 0x5AFB, - 4927: 0x5B0C, - 4928: 0x5B0B, - 4929: 0x5B16, - 4930: 0x5B32, - 4931: 0x5AD0, - 4932: 0x5B2A, - 4933: 0x5B36, - 4934: 0x5B3E, - 4935: 0x5B43, - 4936: 0x5B45, - 4937: 0x5B40, - 4938: 0x5B51, - 4939: 0x5B55, - 4940: 0x5B5A, - 4941: 0x5B5B, - 4942: 0x5B65, - 4943: 0x5B69, - 4944: 0x5B70, - 4945: 0x5B73, - 4946: 0x5B75, - 4947: 0x5B78, - 4948: 0x6588, - 4949: 0x5B7A, - 4950: 0x5B80, - 4951: 0x5B83, - 4952: 0x5BA6, - 4953: 0x5BB8, - 4954: 0x5BC3, - 4955: 0x5BC7, - 4956: 0x5BC9, - 4957: 0x5BD4, - 4958: 0x5BD0, - 4959: 0x5BE4, - 4960: 0x5BE6, - 4961: 0x5BE2, - 4962: 0x5BDE, - 4963: 0x5BE5, - 4964: 0x5BEB, - 4965: 0x5BF0, - 4966: 0x5BF6, - 4967: 0x5BF3, - 4968: 0x5C05, - 4969: 0x5C07, - 4970: 0x5C08, - 4971: 0x5C0D, - 4972: 0x5C13, - 4973: 0x5C20, - 4974: 0x5C22, - 4975: 0x5C28, - 4976: 0x5C38, - 4977: 0x5C39, - 4978: 0x5C41, - 4979: 0x5C46, - 4980: 0x5C4E, - 4981: 0x5C53, - 4982: 0x5C50, - 4983: 0x5C4F, - 4984: 0x5B71, - 4985: 0x5C6C, - 4986: 0x5C6E, - 4987: 0x4E62, - 4988: 0x5C76, - 4989: 0x5C79, - 4990: 0x5C8C, - 4991: 0x5C91, - 4992: 0x5C94, - 4993: 0x599B, - 4994: 0x5CAB, - 4995: 0x5CBB, - 4996: 0x5CB6, - 4997: 0x5CBC, - 4998: 0x5CB7, - 4999: 0x5CC5, - 5000: 0x5CBE, - 5001: 0x5CC7, - 5002: 0x5CD9, - 5003: 0x5CE9, - 5004: 0x5CFD, - 5005: 0x5CFA, - 5006: 0x5CED, - 5007: 0x5D8C, - 5008: 0x5CEA, - 5009: 0x5D0B, - 5010: 0x5D15, - 5011: 0x5D17, - 5012: 0x5D5C, - 5013: 0x5D1F, - 5014: 0x5D1B, - 5015: 0x5D11, - 5016: 0x5D14, - 5017: 0x5D22, - 5018: 0x5D1A, - 5019: 0x5D19, - 5020: 0x5D18, - 5021: 0x5D4C, - 5022: 0x5D52, - 5023: 0x5D4E, - 5024: 0x5D4B, - 5025: 0x5D6C, - 5026: 0x5D73, - 5027: 0x5D76, - 5028: 0x5D87, - 5029: 0x5D84, - 5030: 0x5D82, - 5031: 0x5DA2, - 5032: 0x5D9D, - 5033: 0x5DAC, - 5034: 0x5DAE, - 5035: 0x5DBD, - 5036: 0x5D90, - 5037: 0x5DB7, - 5038: 0x5DBC, - 5039: 0x5DC9, - 5040: 0x5DCD, - 5041: 0x5DD3, - 5042: 0x5DD2, - 5043: 0x5DD6, - 5044: 0x5DDB, - 5045: 0x5DEB, - 5046: 0x5DF2, - 5047: 0x5DF5, - 5048: 0x5E0B, - 5049: 0x5E1A, - 5050: 0x5E19, - 5051: 0x5E11, - 5052: 0x5E1B, - 5053: 0x5E36, - 5054: 0x5E37, - 5055: 0x5E44, - 5056: 0x5E43, - 5057: 0x5E40, - 5058: 0x5E4E, - 5059: 0x5E57, - 5060: 0x5E54, - 5061: 0x5E5F, - 5062: 0x5E62, - 5063: 0x5E64, - 5064: 0x5E47, - 5065: 0x5E75, - 5066: 0x5E76, - 5067: 0x5E7A, - 5068: 0x9EBC, - 5069: 0x5E7F, - 5070: 0x5EA0, - 5071: 0x5EC1, - 5072: 0x5EC2, - 5073: 0x5EC8, - 5074: 0x5ED0, - 5075: 0x5ECF, - 5076: 0x5ED6, - 5077: 0x5EE3, - 5078: 0x5EDD, - 5079: 0x5EDA, - 5080: 0x5EDB, - 5081: 0x5EE2, - 5082: 0x5EE1, - 5083: 0x5EE8, - 5084: 0x5EE9, - 5085: 0x5EEC, - 5086: 0x5EF1, - 5087: 0x5EF3, - 5088: 0x5EF0, - 5089: 0x5EF4, - 5090: 0x5EF8, - 5091: 0x5EFE, - 5092: 0x5F03, - 5093: 0x5F09, - 5094: 0x5F5D, - 5095: 0x5F5C, - 5096: 0x5F0B, - 5097: 0x5F11, - 5098: 0x5F16, - 5099: 0x5F29, - 5100: 0x5F2D, - 5101: 0x5F38, - 5102: 0x5F41, - 5103: 0x5F48, - 5104: 0x5F4C, - 5105: 0x5F4E, - 5106: 0x5F2F, - 5107: 0x5F51, - 5108: 0x5F56, - 5109: 0x5F57, - 5110: 0x5F59, - 5111: 0x5F61, - 5112: 0x5F6D, - 5113: 0x5F73, - 5114: 0x5F77, - 5115: 0x5F83, - 5116: 0x5F82, - 5117: 0x5F7F, - 5118: 0x5F8A, - 5119: 0x5F88, - 5120: 0x5F91, - 5121: 0x5F87, - 5122: 0x5F9E, - 5123: 0x5F99, - 5124: 0x5F98, - 5125: 0x5FA0, - 5126: 0x5FA8, - 5127: 0x5FAD, - 5128: 0x5FBC, - 5129: 0x5FD6, - 5130: 0x5FFB, - 5131: 0x5FE4, - 5132: 0x5FF8, - 5133: 0x5FF1, - 5134: 0x5FDD, - 5135: 0x60B3, - 5136: 0x5FFF, - 5137: 0x6021, - 5138: 0x6060, - 5139: 0x6019, - 5140: 0x6010, - 5141: 0x6029, - 5142: 0x600E, - 5143: 0x6031, - 5144: 0x601B, - 5145: 0x6015, - 5146: 0x602B, - 5147: 0x6026, - 5148: 0x600F, - 5149: 0x603A, - 5150: 0x605A, - 5151: 0x6041, - 5152: 0x606A, - 5153: 0x6077, - 5154: 0x605F, - 5155: 0x604A, - 5156: 0x6046, - 5157: 0x604D, - 5158: 0x6063, - 5159: 0x6043, - 5160: 0x6064, - 5161: 0x6042, - 5162: 0x606C, - 5163: 0x606B, - 5164: 0x6059, - 5165: 0x6081, - 5166: 0x608D, - 5167: 0x60E7, - 5168: 0x6083, - 5169: 0x609A, - 5170: 0x6084, - 5171: 0x609B, - 5172: 0x6096, - 5173: 0x6097, - 5174: 0x6092, - 5175: 0x60A7, - 5176: 0x608B, - 5177: 0x60E1, - 5178: 0x60B8, - 5179: 0x60E0, - 5180: 0x60D3, - 5181: 0x60B4, - 5182: 0x5FF0, - 5183: 0x60BD, - 5184: 0x60C6, - 5185: 0x60B5, - 5186: 0x60D8, - 5187: 0x614D, - 5188: 0x6115, - 5189: 0x6106, - 5190: 0x60F6, - 5191: 0x60F7, - 5192: 0x6100, - 5193: 0x60F4, - 5194: 0x60FA, - 5195: 0x6103, - 5196: 0x6121, - 5197: 0x60FB, - 5198: 0x60F1, - 5199: 0x610D, - 5200: 0x610E, - 5201: 0x6147, - 5202: 0x613E, - 5203: 0x6128, - 5204: 0x6127, - 5205: 0x614A, - 5206: 0x613F, - 5207: 0x613C, - 5208: 0x612C, - 5209: 0x6134, - 5210: 0x613D, - 5211: 0x6142, - 5212: 0x6144, - 5213: 0x6173, - 5214: 0x6177, - 5215: 0x6158, - 5216: 0x6159, - 5217: 0x615A, - 5218: 0x616B, - 5219: 0x6174, - 5220: 0x616F, - 5221: 0x6165, - 5222: 0x6171, - 5223: 0x615F, - 5224: 0x615D, - 5225: 0x6153, - 5226: 0x6175, - 5227: 0x6199, - 5228: 0x6196, - 5229: 0x6187, - 5230: 0x61AC, - 5231: 0x6194, - 5232: 0x619A, - 5233: 0x618A, - 5234: 0x6191, - 5235: 0x61AB, - 5236: 0x61AE, - 5237: 0x61CC, - 5238: 0x61CA, - 5239: 0x61C9, - 5240: 0x61F7, - 5241: 0x61C8, - 5242: 0x61C3, - 5243: 0x61C6, - 5244: 0x61BA, - 5245: 0x61CB, - 5246: 0x7F79, - 5247: 0x61CD, - 5248: 0x61E6, - 5249: 0x61E3, - 5250: 0x61F6, - 5251: 0x61FA, - 5252: 0x61F4, - 5253: 0x61FF, - 5254: 0x61FD, - 5255: 0x61FC, - 5256: 0x61FE, - 5257: 0x6200, - 5258: 0x6208, - 5259: 0x6209, - 5260: 0x620D, - 5261: 0x620C, - 5262: 0x6214, - 5263: 0x621B, - 5264: 0x621E, - 5265: 0x6221, - 5266: 0x622A, - 5267: 0x622E, - 5268: 0x6230, - 5269: 0x6232, - 5270: 0x6233, - 5271: 0x6241, - 5272: 0x624E, - 5273: 0x625E, - 5274: 0x6263, - 5275: 0x625B, - 5276: 0x6260, - 5277: 0x6268, - 5278: 0x627C, - 5279: 0x6282, - 5280: 0x6289, - 5281: 0x627E, - 5282: 0x6292, - 5283: 0x6293, - 5284: 0x6296, - 5285: 0x62D4, - 5286: 0x6283, - 5287: 0x6294, - 5288: 0x62D7, - 5289: 0x62D1, - 5290: 0x62BB, - 5291: 0x62CF, - 5292: 0x62FF, - 5293: 0x62C6, - 5294: 0x64D4, - 5295: 0x62C8, - 5296: 0x62DC, - 5297: 0x62CC, - 5298: 0x62CA, - 5299: 0x62C2, - 5300: 0x62C7, - 5301: 0x629B, - 5302: 0x62C9, - 5303: 0x630C, - 5304: 0x62EE, - 5305: 0x62F1, - 5306: 0x6327, - 5307: 0x6302, - 5308: 0x6308, - 5309: 0x62EF, - 5310: 0x62F5, - 5311: 0x6350, - 5312: 0x633E, - 5313: 0x634D, - 5314: 0x641C, - 5315: 0x634F, - 5316: 0x6396, - 5317: 0x638E, - 5318: 0x6380, - 5319: 0x63AB, - 5320: 0x6376, - 5321: 0x63A3, - 5322: 0x638F, - 5323: 0x6389, - 5324: 0x639F, - 5325: 0x63B5, - 5326: 0x636B, - 5327: 0x6369, - 5328: 0x63BE, - 5329: 0x63E9, - 5330: 0x63C0, - 5331: 0x63C6, - 5332: 0x63E3, - 5333: 0x63C9, - 5334: 0x63D2, - 5335: 0x63F6, - 5336: 0x63C4, - 5337: 0x6416, - 5338: 0x6434, - 5339: 0x6406, - 5340: 0x6413, - 5341: 0x6426, - 5342: 0x6436, - 5343: 0x651D, - 5344: 0x6417, - 5345: 0x6428, - 5346: 0x640F, - 5347: 0x6467, - 5348: 0x646F, - 5349: 0x6476, - 5350: 0x644E, - 5351: 0x652A, - 5352: 0x6495, - 5353: 0x6493, - 5354: 0x64A5, - 5355: 0x64A9, - 5356: 0x6488, - 5357: 0x64BC, - 5358: 0x64DA, - 5359: 0x64D2, - 5360: 0x64C5, - 5361: 0x64C7, - 5362: 0x64BB, - 5363: 0x64D8, - 5364: 0x64C2, - 5365: 0x64F1, - 5366: 0x64E7, - 5367: 0x8209, - 5368: 0x64E0, - 5369: 0x64E1, - 5370: 0x62AC, - 5371: 0x64E3, - 5372: 0x64EF, - 5373: 0x652C, - 5374: 0x64F6, - 5375: 0x64F4, - 5376: 0x64F2, - 5377: 0x64FA, - 5378: 0x6500, - 5379: 0x64FD, - 5380: 0x6518, - 5381: 0x651C, - 5382: 0x6505, - 5383: 0x6524, - 5384: 0x6523, - 5385: 0x652B, - 5386: 0x6534, - 5387: 0x6535, - 5388: 0x6537, - 5389: 0x6536, - 5390: 0x6538, - 5391: 0x754B, - 5392: 0x6548, - 5393: 0x6556, - 5394: 0x6555, - 5395: 0x654D, - 5396: 0x6558, - 5397: 0x655E, - 5398: 0x655D, - 5399: 0x6572, - 5400: 0x6578, - 5401: 0x6582, - 5402: 0x6583, - 5403: 0x8B8A, - 5404: 0x659B, - 5405: 0x659F, - 5406: 0x65AB, - 5407: 0x65B7, - 5408: 0x65C3, - 5409: 0x65C6, - 5410: 0x65C1, - 5411: 0x65C4, - 5412: 0x65CC, - 5413: 0x65D2, - 5414: 0x65DB, - 5415: 0x65D9, - 5416: 0x65E0, - 5417: 0x65E1, - 5418: 0x65F1, - 5419: 0x6772, - 5420: 0x660A, - 5421: 0x6603, - 5422: 0x65FB, - 5423: 0x6773, - 5424: 0x6635, - 5425: 0x6636, - 5426: 0x6634, - 5427: 0x661C, - 5428: 0x664F, - 5429: 0x6644, - 5430: 0x6649, - 5431: 0x6641, - 5432: 0x665E, - 5433: 0x665D, - 5434: 0x6664, - 5435: 0x6667, - 5436: 0x6668, - 5437: 0x665F, - 5438: 0x6662, - 5439: 0x6670, - 5440: 0x6683, - 5441: 0x6688, - 5442: 0x668E, - 5443: 0x6689, - 5444: 0x6684, - 5445: 0x6698, - 5446: 0x669D, - 5447: 0x66C1, - 5448: 0x66B9, - 5449: 0x66C9, - 5450: 0x66BE, - 5451: 0x66BC, - 5452: 0x66C4, - 5453: 0x66B8, - 5454: 0x66D6, - 5455: 0x66DA, - 5456: 0x66E0, - 5457: 0x663F, - 5458: 0x66E6, - 5459: 0x66E9, - 5460: 0x66F0, - 5461: 0x66F5, - 5462: 0x66F7, - 5463: 0x670F, - 5464: 0x6716, - 5465: 0x671E, - 5466: 0x6726, - 5467: 0x6727, - 5468: 0x9738, - 5469: 0x672E, - 5470: 0x673F, - 5471: 0x6736, - 5472: 0x6741, - 5473: 0x6738, - 5474: 0x6737, - 5475: 0x6746, - 5476: 0x675E, - 5477: 0x6760, - 5478: 0x6759, - 5479: 0x6763, - 5480: 0x6764, - 5481: 0x6789, - 5482: 0x6770, - 5483: 0x67A9, - 5484: 0x677C, - 5485: 0x676A, - 5486: 0x678C, - 5487: 0x678B, - 5488: 0x67A6, - 5489: 0x67A1, - 5490: 0x6785, - 5491: 0x67B7, - 5492: 0x67EF, - 5493: 0x67B4, - 5494: 0x67EC, - 5495: 0x67B3, - 5496: 0x67E9, - 5497: 0x67B8, - 5498: 0x67E4, - 5499: 0x67DE, - 5500: 0x67DD, - 5501: 0x67E2, - 5502: 0x67EE, - 5503: 0x67B9, - 5504: 0x67CE, - 5505: 0x67C6, - 5506: 0x67E7, - 5507: 0x6A9C, - 5508: 0x681E, - 5509: 0x6846, - 5510: 0x6829, - 5511: 0x6840, - 5512: 0x684D, - 5513: 0x6832, - 5514: 0x684E, - 5515: 0x68B3, - 5516: 0x682B, - 5517: 0x6859, - 5518: 0x6863, - 5519: 0x6877, - 5520: 0x687F, - 5521: 0x689F, - 5522: 0x688F, - 5523: 0x68AD, - 5524: 0x6894, - 5525: 0x689D, - 5526: 0x689B, - 5527: 0x6883, - 5528: 0x6AAE, - 5529: 0x68B9, - 5530: 0x6874, - 5531: 0x68B5, - 5532: 0x68A0, - 5533: 0x68BA, - 5534: 0x690F, - 5535: 0x688D, - 5536: 0x687E, - 5537: 0x6901, - 5538: 0x68CA, - 5539: 0x6908, - 5540: 0x68D8, - 5541: 0x6922, - 5542: 0x6926, - 5543: 0x68E1, - 5544: 0x690C, - 5545: 0x68CD, - 5546: 0x68D4, - 5547: 0x68E7, - 5548: 0x68D5, - 5549: 0x6936, - 5550: 0x6912, - 5551: 0x6904, - 5552: 0x68D7, - 5553: 0x68E3, - 5554: 0x6925, - 5555: 0x68F9, - 5556: 0x68E0, - 5557: 0x68EF, - 5558: 0x6928, - 5559: 0x692A, - 5560: 0x691A, - 5561: 0x6923, - 5562: 0x6921, - 5563: 0x68C6, - 5564: 0x6979, - 5565: 0x6977, - 5566: 0x695C, - 5567: 0x6978, - 5568: 0x696B, - 5569: 0x6954, - 5570: 0x697E, - 5571: 0x696E, - 5572: 0x6939, - 5573: 0x6974, - 5574: 0x693D, - 5575: 0x6959, - 5576: 0x6930, - 5577: 0x6961, - 5578: 0x695E, - 5579: 0x695D, - 5580: 0x6981, - 5581: 0x696A, - 5582: 0x69B2, - 5583: 0x69AE, - 5584: 0x69D0, - 5585: 0x69BF, - 5586: 0x69C1, - 5587: 0x69D3, - 5588: 0x69BE, - 5589: 0x69CE, - 5590: 0x5BE8, - 5591: 0x69CA, - 5592: 0x69DD, - 5593: 0x69BB, - 5594: 0x69C3, - 5595: 0x69A7, - 5596: 0x6A2E, - 5597: 0x6991, - 5598: 0x69A0, - 5599: 0x699C, - 5600: 0x6995, - 5601: 0x69B4, - 5602: 0x69DE, - 5603: 0x69E8, - 5604: 0x6A02, - 5605: 0x6A1B, - 5606: 0x69FF, - 5607: 0x6B0A, - 5608: 0x69F9, - 5609: 0x69F2, - 5610: 0x69E7, - 5611: 0x6A05, - 5612: 0x69B1, - 5613: 0x6A1E, - 5614: 0x69ED, - 5615: 0x6A14, - 5616: 0x69EB, - 5617: 0x6A0A, - 5618: 0x6A12, - 5619: 0x6AC1, - 5620: 0x6A23, - 5621: 0x6A13, - 5622: 0x6A44, - 5623: 0x6A0C, - 5624: 0x6A72, - 5625: 0x6A36, - 5626: 0x6A78, - 5627: 0x6A47, - 5628: 0x6A62, - 5629: 0x6A59, - 5630: 0x6A66, - 5631: 0x6A48, - 5632: 0x6A38, - 5633: 0x6A22, - 5634: 0x6A90, - 5635: 0x6A8D, - 5636: 0x6AA0, - 5637: 0x6A84, - 5638: 0x6AA2, - 5639: 0x6AA3, - 5640: 0x6A97, - 5641: 0x8617, - 5642: 0x6ABB, - 5643: 0x6AC3, - 5644: 0x6AC2, - 5645: 0x6AB8, - 5646: 0x6AB3, - 5647: 0x6AAC, - 5648: 0x6ADE, - 5649: 0x6AD1, - 5650: 0x6ADF, - 5651: 0x6AAA, - 5652: 0x6ADA, - 5653: 0x6AEA, - 5654: 0x6AFB, - 5655: 0x6B05, - 5656: 0x8616, - 5657: 0x6AFA, - 5658: 0x6B12, - 5659: 0x6B16, - 5660: 0x9B31, - 5661: 0x6B1F, - 5662: 0x6B38, - 5663: 0x6B37, - 5664: 0x76DC, - 5665: 0x6B39, - 5666: 0x98EE, - 5667: 0x6B47, - 5668: 0x6B43, - 5669: 0x6B49, - 5670: 0x6B50, - 5671: 0x6B59, - 5672: 0x6B54, - 5673: 0x6B5B, - 5674: 0x6B5F, - 5675: 0x6B61, - 5676: 0x6B78, - 5677: 0x6B79, - 5678: 0x6B7F, - 5679: 0x6B80, - 5680: 0x6B84, - 5681: 0x6B83, - 5682: 0x6B8D, - 5683: 0x6B98, - 5684: 0x6B95, - 5685: 0x6B9E, - 5686: 0x6BA4, - 5687: 0x6BAA, - 5688: 0x6BAB, - 5689: 0x6BAF, - 5690: 0x6BB2, - 5691: 0x6BB1, - 5692: 0x6BB3, - 5693: 0x6BB7, - 5694: 0x6BBC, - 5695: 0x6BC6, - 5696: 0x6BCB, - 5697: 0x6BD3, - 5698: 0x6BDF, - 5699: 0x6BEC, - 5700: 0x6BEB, - 5701: 0x6BF3, - 5702: 0x6BEF, - 5703: 0x9EBE, - 5704: 0x6C08, - 5705: 0x6C13, - 5706: 0x6C14, - 5707: 0x6C1B, - 5708: 0x6C24, - 5709: 0x6C23, - 5710: 0x6C5E, - 5711: 0x6C55, - 5712: 0x6C62, - 5713: 0x6C6A, - 5714: 0x6C82, - 5715: 0x6C8D, - 5716: 0x6C9A, - 5717: 0x6C81, - 5718: 0x6C9B, - 5719: 0x6C7E, - 5720: 0x6C68, - 5721: 0x6C73, - 5722: 0x6C92, - 5723: 0x6C90, - 5724: 0x6CC4, - 5725: 0x6CF1, - 5726: 0x6CD3, - 5727: 0x6CBD, - 5728: 0x6CD7, - 5729: 0x6CC5, - 5730: 0x6CDD, - 5731: 0x6CAE, - 5732: 0x6CB1, - 5733: 0x6CBE, - 5734: 0x6CBA, - 5735: 0x6CDB, - 5736: 0x6CEF, - 5737: 0x6CD9, - 5738: 0x6CEA, - 5739: 0x6D1F, - 5740: 0x884D, - 5741: 0x6D36, - 5742: 0x6D2B, - 5743: 0x6D3D, - 5744: 0x6D38, - 5745: 0x6D19, - 5746: 0x6D35, - 5747: 0x6D33, - 5748: 0x6D12, - 5749: 0x6D0C, - 5750: 0x6D63, - 5751: 0x6D93, - 5752: 0x6D64, - 5753: 0x6D5A, - 5754: 0x6D79, - 5755: 0x6D59, - 5756: 0x6D8E, - 5757: 0x6D95, - 5758: 0x6FE4, - 5759: 0x6D85, - 5760: 0x6DF9, - 5761: 0x6E15, - 5762: 0x6E0A, - 5763: 0x6DB5, - 5764: 0x6DC7, - 5765: 0x6DE6, - 5766: 0x6DB8, - 5767: 0x6DC6, - 5768: 0x6DEC, - 5769: 0x6DDE, - 5770: 0x6DCC, - 5771: 0x6DE8, - 5772: 0x6DD2, - 5773: 0x6DC5, - 5774: 0x6DFA, - 5775: 0x6DD9, - 5776: 0x6DE4, - 5777: 0x6DD5, - 5778: 0x6DEA, - 5779: 0x6DEE, - 5780: 0x6E2D, - 5781: 0x6E6E, - 5782: 0x6E2E, - 5783: 0x6E19, - 5784: 0x6E72, - 5785: 0x6E5F, - 5786: 0x6E3E, - 5787: 0x6E23, - 5788: 0x6E6B, - 5789: 0x6E2B, - 5790: 0x6E76, - 5791: 0x6E4D, - 5792: 0x6E1F, - 5793: 0x6E43, - 5794: 0x6E3A, - 5795: 0x6E4E, - 5796: 0x6E24, - 5797: 0x6EFF, - 5798: 0x6E1D, - 5799: 0x6E38, - 5800: 0x6E82, - 5801: 0x6EAA, - 5802: 0x6E98, - 5803: 0x6EC9, - 5804: 0x6EB7, - 5805: 0x6ED3, - 5806: 0x6EBD, - 5807: 0x6EAF, - 5808: 0x6EC4, - 5809: 0x6EB2, - 5810: 0x6ED4, - 5811: 0x6ED5, - 5812: 0x6E8F, - 5813: 0x6EA5, - 5814: 0x6EC2, - 5815: 0x6E9F, - 5816: 0x6F41, - 5817: 0x6F11, - 5818: 0x704C, - 5819: 0x6EEC, - 5820: 0x6EF8, - 5821: 0x6EFE, - 5822: 0x6F3F, - 5823: 0x6EF2, - 5824: 0x6F31, - 5825: 0x6EEF, - 5826: 0x6F32, - 5827: 0x6ECC, - 5828: 0x6F3E, - 5829: 0x6F13, - 5830: 0x6EF7, - 5831: 0x6F86, - 5832: 0x6F7A, - 5833: 0x6F78, - 5834: 0x6F81, - 5835: 0x6F80, - 5836: 0x6F6F, - 5837: 0x6F5B, - 5838: 0x6FF3, - 5839: 0x6F6D, - 5840: 0x6F82, - 5841: 0x6F7C, - 5842: 0x6F58, - 5843: 0x6F8E, - 5844: 0x6F91, - 5845: 0x6FC2, - 5846: 0x6F66, - 5847: 0x6FB3, - 5848: 0x6FA3, - 5849: 0x6FA1, - 5850: 0x6FA4, - 5851: 0x6FB9, - 5852: 0x6FC6, - 5853: 0x6FAA, - 5854: 0x6FDF, - 5855: 0x6FD5, - 5856: 0x6FEC, - 5857: 0x6FD4, - 5858: 0x6FD8, - 5859: 0x6FF1, - 5860: 0x6FEE, - 5861: 0x6FDB, - 5862: 0x7009, - 5863: 0x700B, - 5864: 0x6FFA, - 5865: 0x7011, - 5866: 0x7001, - 5867: 0x700F, - 5868: 0x6FFE, - 5869: 0x701B, - 5870: 0x701A, - 5871: 0x6F74, - 5872: 0x701D, - 5873: 0x7018, - 5874: 0x701F, - 5875: 0x7030, - 5876: 0x703E, - 5877: 0x7032, - 5878: 0x7051, - 5879: 0x7063, - 5880: 0x7099, - 5881: 0x7092, - 5882: 0x70AF, - 5883: 0x70F1, - 5884: 0x70AC, - 5885: 0x70B8, - 5886: 0x70B3, - 5887: 0x70AE, - 5888: 0x70DF, - 5889: 0x70CB, - 5890: 0x70DD, - 5891: 0x70D9, - 5892: 0x7109, - 5893: 0x70FD, - 5894: 0x711C, - 5895: 0x7119, - 5896: 0x7165, - 5897: 0x7155, - 5898: 0x7188, - 5899: 0x7166, - 5900: 0x7162, - 5901: 0x714C, - 5902: 0x7156, - 5903: 0x716C, - 5904: 0x718F, - 5905: 0x71FB, - 5906: 0x7184, - 5907: 0x7195, - 5908: 0x71A8, - 5909: 0x71AC, - 5910: 0x71D7, - 5911: 0x71B9, - 5912: 0x71BE, - 5913: 0x71D2, - 5914: 0x71C9, - 5915: 0x71D4, - 5916: 0x71CE, - 5917: 0x71E0, - 5918: 0x71EC, - 5919: 0x71E7, - 5920: 0x71F5, - 5921: 0x71FC, - 5922: 0x71F9, - 5923: 0x71FF, - 5924: 0x720D, - 5925: 0x7210, - 5926: 0x721B, - 5927: 0x7228, - 5928: 0x722D, - 5929: 0x722C, - 5930: 0x7230, - 5931: 0x7232, - 5932: 0x723B, - 5933: 0x723C, - 5934: 0x723F, - 5935: 0x7240, - 5936: 0x7246, - 5937: 0x724B, - 5938: 0x7258, - 5939: 0x7274, - 5940: 0x727E, - 5941: 0x7282, - 5942: 0x7281, - 5943: 0x7287, - 5944: 0x7292, - 5945: 0x7296, - 5946: 0x72A2, - 5947: 0x72A7, - 5948: 0x72B9, - 5949: 0x72B2, - 5950: 0x72C3, - 5951: 0x72C6, - 5952: 0x72C4, - 5953: 0x72CE, - 5954: 0x72D2, - 5955: 0x72E2, - 5956: 0x72E0, - 5957: 0x72E1, - 5958: 0x72F9, - 5959: 0x72F7, - 5960: 0x500F, - 5961: 0x7317, - 5962: 0x730A, - 5963: 0x731C, - 5964: 0x7316, - 5965: 0x731D, - 5966: 0x7334, - 5967: 0x732F, - 5968: 0x7329, - 5969: 0x7325, - 5970: 0x733E, - 5971: 0x734E, - 5972: 0x734F, - 5973: 0x9ED8, - 5974: 0x7357, - 5975: 0x736A, - 5976: 0x7368, - 5977: 0x7370, - 5978: 0x7378, - 5979: 0x7375, - 5980: 0x737B, - 5981: 0x737A, - 5982: 0x73C8, - 5983: 0x73B3, - 5984: 0x73CE, - 5985: 0x73BB, - 5986: 0x73C0, - 5987: 0x73E5, - 5988: 0x73EE, - 5989: 0x73DE, - 5990: 0x74A2, - 5991: 0x7405, - 5992: 0x746F, - 5993: 0x7425, - 5994: 0x73F8, - 5995: 0x7432, - 5996: 0x743A, - 5997: 0x7455, - 5998: 0x743F, - 5999: 0x745F, - 6000: 0x7459, - 6001: 0x7441, - 6002: 0x745C, - 6003: 0x7469, - 6004: 0x7470, - 6005: 0x7463, - 6006: 0x746A, - 6007: 0x7476, - 6008: 0x747E, - 6009: 0x748B, - 6010: 0x749E, - 6011: 0x74A7, - 6012: 0x74CA, - 6013: 0x74CF, - 6014: 0x74D4, - 6015: 0x73F1, - 6016: 0x74E0, - 6017: 0x74E3, - 6018: 0x74E7, - 6019: 0x74E9, - 6020: 0x74EE, - 6021: 0x74F2, - 6022: 0x74F0, - 6023: 0x74F1, - 6024: 0x74F8, - 6025: 0x74F7, - 6026: 0x7504, - 6027: 0x7503, - 6028: 0x7505, - 6029: 0x750C, - 6030: 0x750E, - 6031: 0x750D, - 6032: 0x7515, - 6033: 0x7513, - 6034: 0x751E, - 6035: 0x7526, - 6036: 0x752C, - 6037: 0x753C, - 6038: 0x7544, - 6039: 0x754D, - 6040: 0x754A, - 6041: 0x7549, - 6042: 0x755B, - 6043: 0x7546, - 6044: 0x755A, - 6045: 0x7569, - 6046: 0x7564, - 6047: 0x7567, - 6048: 0x756B, - 6049: 0x756D, - 6050: 0x7578, - 6051: 0x7576, - 6052: 0x7586, - 6053: 0x7587, - 6054: 0x7574, - 6055: 0x758A, - 6056: 0x7589, - 6057: 0x7582, - 6058: 0x7594, - 6059: 0x759A, - 6060: 0x759D, - 6061: 0x75A5, - 6062: 0x75A3, - 6063: 0x75C2, - 6064: 0x75B3, - 6065: 0x75C3, - 6066: 0x75B5, - 6067: 0x75BD, - 6068: 0x75B8, - 6069: 0x75BC, - 6070: 0x75B1, - 6071: 0x75CD, - 6072: 0x75CA, - 6073: 0x75D2, - 6074: 0x75D9, - 6075: 0x75E3, - 6076: 0x75DE, - 6077: 0x75FE, - 6078: 0x75FF, - 6079: 0x75FC, - 6080: 0x7601, - 6081: 0x75F0, - 6082: 0x75FA, - 6083: 0x75F2, - 6084: 0x75F3, - 6085: 0x760B, - 6086: 0x760D, - 6087: 0x7609, - 6088: 0x761F, - 6089: 0x7627, - 6090: 0x7620, - 6091: 0x7621, - 6092: 0x7622, - 6093: 0x7624, - 6094: 0x7634, - 6095: 0x7630, - 6096: 0x763B, - 6097: 0x7647, - 6098: 0x7648, - 6099: 0x7646, - 6100: 0x765C, - 6101: 0x7658, - 6102: 0x7661, - 6103: 0x7662, - 6104: 0x7668, - 6105: 0x7669, - 6106: 0x766A, - 6107: 0x7667, - 6108: 0x766C, - 6109: 0x7670, - 6110: 0x7672, - 6111: 0x7676, - 6112: 0x7678, - 6113: 0x767C, - 6114: 0x7680, - 6115: 0x7683, - 6116: 0x7688, - 6117: 0x768B, - 6118: 0x768E, - 6119: 0x7696, - 6120: 0x7693, - 6121: 0x7699, - 6122: 0x769A, - 6123: 0x76B0, - 6124: 0x76B4, - 6125: 0x76B8, - 6126: 0x76B9, - 6127: 0x76BA, - 6128: 0x76C2, - 6129: 0x76CD, - 6130: 0x76D6, - 6131: 0x76D2, - 6132: 0x76DE, - 6133: 0x76E1, - 6134: 0x76E5, - 6135: 0x76E7, - 6136: 0x76EA, - 6137: 0x862F, - 6138: 0x76FB, - 6139: 0x7708, - 6140: 0x7707, - 6141: 0x7704, - 6142: 0x7729, - 6143: 0x7724, - 6144: 0x771E, - 6145: 0x7725, - 6146: 0x7726, - 6147: 0x771B, - 6148: 0x7737, - 6149: 0x7738, - 6150: 0x7747, - 6151: 0x775A, - 6152: 0x7768, - 6153: 0x776B, - 6154: 0x775B, - 6155: 0x7765, - 6156: 0x777F, - 6157: 0x777E, - 6158: 0x7779, - 6159: 0x778E, - 6160: 0x778B, - 6161: 0x7791, - 6162: 0x77A0, - 6163: 0x779E, - 6164: 0x77B0, - 6165: 0x77B6, - 6166: 0x77B9, - 6167: 0x77BF, - 6168: 0x77BC, - 6169: 0x77BD, - 6170: 0x77BB, - 6171: 0x77C7, - 6172: 0x77CD, - 6173: 0x77D7, - 6174: 0x77DA, - 6175: 0x77DC, - 6176: 0x77E3, - 6177: 0x77EE, - 6178: 0x77FC, - 6179: 0x780C, - 6180: 0x7812, - 6181: 0x7926, - 6182: 0x7820, - 6183: 0x792A, - 6184: 0x7845, - 6185: 0x788E, - 6186: 0x7874, - 6187: 0x7886, - 6188: 0x787C, - 6189: 0x789A, - 6190: 0x788C, - 6191: 0x78A3, - 6192: 0x78B5, - 6193: 0x78AA, - 6194: 0x78AF, - 6195: 0x78D1, - 6196: 0x78C6, - 6197: 0x78CB, - 6198: 0x78D4, - 6199: 0x78BE, - 6200: 0x78BC, - 6201: 0x78C5, - 6202: 0x78CA, - 6203: 0x78EC, - 6204: 0x78E7, - 6205: 0x78DA, - 6206: 0x78FD, - 6207: 0x78F4, - 6208: 0x7907, - 6209: 0x7912, - 6210: 0x7911, - 6211: 0x7919, - 6212: 0x792C, - 6213: 0x792B, - 6214: 0x7940, - 6215: 0x7960, - 6216: 0x7957, - 6217: 0x795F, - 6218: 0x795A, - 6219: 0x7955, - 6220: 0x7953, - 6221: 0x797A, - 6222: 0x797F, - 6223: 0x798A, - 6224: 0x799D, - 6225: 0x79A7, - 6226: 0x9F4B, - 6227: 0x79AA, - 6228: 0x79AE, - 6229: 0x79B3, - 6230: 0x79B9, - 6231: 0x79BA, - 6232: 0x79C9, - 6233: 0x79D5, - 6234: 0x79E7, - 6235: 0x79EC, - 6236: 0x79E1, - 6237: 0x79E3, - 6238: 0x7A08, - 6239: 0x7A0D, - 6240: 0x7A18, - 6241: 0x7A19, - 6242: 0x7A20, - 6243: 0x7A1F, - 6244: 0x7980, - 6245: 0x7A31, - 6246: 0x7A3B, - 6247: 0x7A3E, - 6248: 0x7A37, - 6249: 0x7A43, - 6250: 0x7A57, - 6251: 0x7A49, - 6252: 0x7A61, - 6253: 0x7A62, - 6254: 0x7A69, - 6255: 0x9F9D, - 6256: 0x7A70, - 6257: 0x7A79, - 6258: 0x7A7D, - 6259: 0x7A88, - 6260: 0x7A97, - 6261: 0x7A95, - 6262: 0x7A98, - 6263: 0x7A96, - 6264: 0x7AA9, - 6265: 0x7AC8, - 6266: 0x7AB0, - 6267: 0x7AB6, - 6268: 0x7AC5, - 6269: 0x7AC4, - 6270: 0x7ABF, - 6271: 0x9083, - 6272: 0x7AC7, - 6273: 0x7ACA, - 6274: 0x7ACD, - 6275: 0x7ACF, - 6276: 0x7AD5, - 6277: 0x7AD3, - 6278: 0x7AD9, - 6279: 0x7ADA, - 6280: 0x7ADD, - 6281: 0x7AE1, - 6282: 0x7AE2, - 6283: 0x7AE6, - 6284: 0x7AED, - 6285: 0x7AF0, - 6286: 0x7B02, - 6287: 0x7B0F, - 6288: 0x7B0A, - 6289: 0x7B06, - 6290: 0x7B33, - 6291: 0x7B18, - 6292: 0x7B19, - 6293: 0x7B1E, - 6294: 0x7B35, - 6295: 0x7B28, - 6296: 0x7B36, - 6297: 0x7B50, - 6298: 0x7B7A, - 6299: 0x7B04, - 6300: 0x7B4D, - 6301: 0x7B0B, - 6302: 0x7B4C, - 6303: 0x7B45, - 6304: 0x7B75, - 6305: 0x7B65, - 6306: 0x7B74, - 6307: 0x7B67, - 6308: 0x7B70, - 6309: 0x7B71, - 6310: 0x7B6C, - 6311: 0x7B6E, - 6312: 0x7B9D, - 6313: 0x7B98, - 6314: 0x7B9F, - 6315: 0x7B8D, - 6316: 0x7B9C, - 6317: 0x7B9A, - 6318: 0x7B8B, - 6319: 0x7B92, - 6320: 0x7B8F, - 6321: 0x7B5D, - 6322: 0x7B99, - 6323: 0x7BCB, - 6324: 0x7BC1, - 6325: 0x7BCC, - 6326: 0x7BCF, - 6327: 0x7BB4, - 6328: 0x7BC6, - 6329: 0x7BDD, - 6330: 0x7BE9, - 6331: 0x7C11, - 6332: 0x7C14, - 6333: 0x7BE6, - 6334: 0x7BE5, - 6335: 0x7C60, - 6336: 0x7C00, - 6337: 0x7C07, - 6338: 0x7C13, - 6339: 0x7BF3, - 6340: 0x7BF7, - 6341: 0x7C17, - 6342: 0x7C0D, - 6343: 0x7BF6, - 6344: 0x7C23, - 6345: 0x7C27, - 6346: 0x7C2A, - 6347: 0x7C1F, - 6348: 0x7C37, - 6349: 0x7C2B, - 6350: 0x7C3D, - 6351: 0x7C4C, - 6352: 0x7C43, - 6353: 0x7C54, - 6354: 0x7C4F, - 6355: 0x7C40, - 6356: 0x7C50, - 6357: 0x7C58, - 6358: 0x7C5F, - 6359: 0x7C64, - 6360: 0x7C56, - 6361: 0x7C65, - 6362: 0x7C6C, - 6363: 0x7C75, - 6364: 0x7C83, - 6365: 0x7C90, - 6366: 0x7CA4, - 6367: 0x7CAD, - 6368: 0x7CA2, - 6369: 0x7CAB, - 6370: 0x7CA1, - 6371: 0x7CA8, - 6372: 0x7CB3, - 6373: 0x7CB2, - 6374: 0x7CB1, - 6375: 0x7CAE, - 6376: 0x7CB9, - 6377: 0x7CBD, - 6378: 0x7CC0, - 6379: 0x7CC5, - 6380: 0x7CC2, - 6381: 0x7CD8, - 6382: 0x7CD2, - 6383: 0x7CDC, - 6384: 0x7CE2, - 6385: 0x9B3B, - 6386: 0x7CEF, - 6387: 0x7CF2, - 6388: 0x7CF4, - 6389: 0x7CF6, - 6390: 0x7CFA, - 6391: 0x7D06, - 6392: 0x7D02, - 6393: 0x7D1C, - 6394: 0x7D15, - 6395: 0x7D0A, - 6396: 0x7D45, - 6397: 0x7D4B, - 6398: 0x7D2E, - 6399: 0x7D32, - 6400: 0x7D3F, - 6401: 0x7D35, - 6402: 0x7D46, - 6403: 0x7D73, - 6404: 0x7D56, - 6405: 0x7D4E, - 6406: 0x7D72, - 6407: 0x7D68, - 6408: 0x7D6E, - 6409: 0x7D4F, - 6410: 0x7D63, - 6411: 0x7D93, - 6412: 0x7D89, - 6413: 0x7D5B, - 6414: 0x7D8F, - 6415: 0x7D7D, - 6416: 0x7D9B, - 6417: 0x7DBA, - 6418: 0x7DAE, - 6419: 0x7DA3, - 6420: 0x7DB5, - 6421: 0x7DC7, - 6422: 0x7DBD, - 6423: 0x7DAB, - 6424: 0x7E3D, - 6425: 0x7DA2, - 6426: 0x7DAF, - 6427: 0x7DDC, - 6428: 0x7DB8, - 6429: 0x7D9F, - 6430: 0x7DB0, - 6431: 0x7DD8, - 6432: 0x7DDD, - 6433: 0x7DE4, - 6434: 0x7DDE, - 6435: 0x7DFB, - 6436: 0x7DF2, - 6437: 0x7DE1, - 6438: 0x7E05, - 6439: 0x7E0A, - 6440: 0x7E23, - 6441: 0x7E21, - 6442: 0x7E12, - 6443: 0x7E31, - 6444: 0x7E1F, - 6445: 0x7E09, - 6446: 0x7E0B, - 6447: 0x7E22, - 6448: 0x7E46, - 6449: 0x7E66, - 6450: 0x7E3B, - 6451: 0x7E35, - 6452: 0x7E39, - 6453: 0x7E43, - 6454: 0x7E37, - 6455: 0x7E32, - 6456: 0x7E3A, - 6457: 0x7E67, - 6458: 0x7E5D, - 6459: 0x7E56, - 6460: 0x7E5E, - 6461: 0x7E59, - 6462: 0x7E5A, - 6463: 0x7E79, - 6464: 0x7E6A, - 6465: 0x7E69, - 6466: 0x7E7C, - 6467: 0x7E7B, - 6468: 0x7E83, - 6469: 0x7DD5, - 6470: 0x7E7D, - 6471: 0x8FAE, - 6472: 0x7E7F, - 6473: 0x7E88, - 6474: 0x7E89, - 6475: 0x7E8C, - 6476: 0x7E92, - 6477: 0x7E90, - 6478: 0x7E93, - 6479: 0x7E94, - 6480: 0x7E96, - 6481: 0x7E8E, - 6482: 0x7E9B, - 6483: 0x7E9C, - 6484: 0x7F38, - 6485: 0x7F3A, - 6486: 0x7F45, - 6487: 0x7F4C, - 6488: 0x7F4D, - 6489: 0x7F4E, - 6490: 0x7F50, - 6491: 0x7F51, - 6492: 0x7F55, - 6493: 0x7F54, - 6494: 0x7F58, - 6495: 0x7F5F, - 6496: 0x7F60, - 6497: 0x7F68, - 6498: 0x7F69, - 6499: 0x7F67, - 6500: 0x7F78, - 6501: 0x7F82, - 6502: 0x7F86, - 6503: 0x7F83, - 6504: 0x7F88, - 6505: 0x7F87, - 6506: 0x7F8C, - 6507: 0x7F94, - 6508: 0x7F9E, - 6509: 0x7F9D, - 6510: 0x7F9A, - 6511: 0x7FA3, - 6512: 0x7FAF, - 6513: 0x7FB2, - 6514: 0x7FB9, - 6515: 0x7FAE, - 6516: 0x7FB6, - 6517: 0x7FB8, - 6518: 0x8B71, - 6519: 0x7FC5, - 6520: 0x7FC6, - 6521: 0x7FCA, - 6522: 0x7FD5, - 6523: 0x7FD4, - 6524: 0x7FE1, - 6525: 0x7FE6, - 6526: 0x7FE9, - 6527: 0x7FF3, - 6528: 0x7FF9, - 6529: 0x98DC, - 6530: 0x8006, - 6531: 0x8004, - 6532: 0x800B, - 6533: 0x8012, - 6534: 0x8018, - 6535: 0x8019, - 6536: 0x801C, - 6537: 0x8021, - 6538: 0x8028, - 6539: 0x803F, - 6540: 0x803B, - 6541: 0x804A, - 6542: 0x8046, - 6543: 0x8052, - 6544: 0x8058, - 6545: 0x805A, - 6546: 0x805F, - 6547: 0x8062, - 6548: 0x8068, - 6549: 0x8073, - 6550: 0x8072, - 6551: 0x8070, - 6552: 0x8076, - 6553: 0x8079, - 6554: 0x807D, - 6555: 0x807F, - 6556: 0x8084, - 6557: 0x8086, - 6558: 0x8085, - 6559: 0x809B, - 6560: 0x8093, - 6561: 0x809A, - 6562: 0x80AD, - 6563: 0x5190, - 6564: 0x80AC, - 6565: 0x80DB, - 6566: 0x80E5, - 6567: 0x80D9, - 6568: 0x80DD, - 6569: 0x80C4, - 6570: 0x80DA, - 6571: 0x80D6, - 6572: 0x8109, - 6573: 0x80EF, - 6574: 0x80F1, - 6575: 0x811B, - 6576: 0x8129, - 6577: 0x8123, - 6578: 0x812F, - 6579: 0x814B, - 6580: 0x968B, - 6581: 0x8146, - 6582: 0x813E, - 6583: 0x8153, - 6584: 0x8151, - 6585: 0x80FC, - 6586: 0x8171, - 6587: 0x816E, - 6588: 0x8165, - 6589: 0x8166, - 6590: 0x8174, - 6591: 0x8183, - 6592: 0x8188, - 6593: 0x818A, - 6594: 0x8180, - 6595: 0x8182, - 6596: 0x81A0, - 6597: 0x8195, - 6598: 0x81A4, - 6599: 0x81A3, - 6600: 0x815F, - 6601: 0x8193, - 6602: 0x81A9, - 6603: 0x81B0, - 6604: 0x81B5, - 6605: 0x81BE, - 6606: 0x81B8, - 6607: 0x81BD, - 6608: 0x81C0, - 6609: 0x81C2, - 6610: 0x81BA, - 6611: 0x81C9, - 6612: 0x81CD, - 6613: 0x81D1, - 6614: 0x81D9, - 6615: 0x81D8, - 6616: 0x81C8, - 6617: 0x81DA, - 6618: 0x81DF, - 6619: 0x81E0, - 6620: 0x81E7, - 6621: 0x81FA, - 6622: 0x81FB, - 6623: 0x81FE, - 6624: 0x8201, - 6625: 0x8202, - 6626: 0x8205, - 6627: 0x8207, - 6628: 0x820A, - 6629: 0x820D, - 6630: 0x8210, - 6631: 0x8216, - 6632: 0x8229, - 6633: 0x822B, - 6634: 0x8238, - 6635: 0x8233, - 6636: 0x8240, - 6637: 0x8259, - 6638: 0x8258, - 6639: 0x825D, - 6640: 0x825A, - 6641: 0x825F, - 6642: 0x8264, - 6643: 0x8262, - 6644: 0x8268, - 6645: 0x826A, - 6646: 0x826B, - 6647: 0x822E, - 6648: 0x8271, - 6649: 0x8277, - 6650: 0x8278, - 6651: 0x827E, - 6652: 0x828D, - 6653: 0x8292, - 6654: 0x82AB, - 6655: 0x829F, - 6656: 0x82BB, - 6657: 0x82AC, - 6658: 0x82E1, - 6659: 0x82E3, - 6660: 0x82DF, - 6661: 0x82D2, - 6662: 0x82F4, - 6663: 0x82F3, - 6664: 0x82FA, - 6665: 0x8393, - 6666: 0x8303, - 6667: 0x82FB, - 6668: 0x82F9, - 6669: 0x82DE, - 6670: 0x8306, - 6671: 0x82DC, - 6672: 0x8309, - 6673: 0x82D9, - 6674: 0x8335, - 6675: 0x8334, - 6676: 0x8316, - 6677: 0x8332, - 6678: 0x8331, - 6679: 0x8340, - 6680: 0x8339, - 6681: 0x8350, - 6682: 0x8345, - 6683: 0x832F, - 6684: 0x832B, - 6685: 0x8317, - 6686: 0x8318, - 6687: 0x8385, - 6688: 0x839A, - 6689: 0x83AA, - 6690: 0x839F, - 6691: 0x83A2, - 6692: 0x8396, - 6693: 0x8323, - 6694: 0x838E, - 6695: 0x8387, - 6696: 0x838A, - 6697: 0x837C, - 6698: 0x83B5, - 6699: 0x8373, - 6700: 0x8375, - 6701: 0x83A0, - 6702: 0x8389, - 6703: 0x83A8, - 6704: 0x83F4, - 6705: 0x8413, - 6706: 0x83EB, - 6707: 0x83CE, - 6708: 0x83FD, - 6709: 0x8403, - 6710: 0x83D8, - 6711: 0x840B, - 6712: 0x83C1, - 6713: 0x83F7, - 6714: 0x8407, - 6715: 0x83E0, - 6716: 0x83F2, - 6717: 0x840D, - 6718: 0x8422, - 6719: 0x8420, - 6720: 0x83BD, - 6721: 0x8438, - 6722: 0x8506, - 6723: 0x83FB, - 6724: 0x846D, - 6725: 0x842A, - 6726: 0x843C, - 6727: 0x855A, - 6728: 0x8484, - 6729: 0x8477, - 6730: 0x846B, - 6731: 0x84AD, - 6732: 0x846E, - 6733: 0x8482, - 6734: 0x8469, - 6735: 0x8446, - 6736: 0x842C, - 6737: 0x846F, - 6738: 0x8479, - 6739: 0x8435, - 6740: 0x84CA, - 6741: 0x8462, - 6742: 0x84B9, - 6743: 0x84BF, - 6744: 0x849F, - 6745: 0x84D9, - 6746: 0x84CD, - 6747: 0x84BB, - 6748: 0x84DA, - 6749: 0x84D0, - 6750: 0x84C1, - 6751: 0x84C6, - 6752: 0x84D6, - 6753: 0x84A1, - 6754: 0x8521, - 6755: 0x84FF, - 6756: 0x84F4, - 6757: 0x8517, - 6758: 0x8518, - 6759: 0x852C, - 6760: 0x851F, - 6761: 0x8515, - 6762: 0x8514, - 6763: 0x84FC, - 6764: 0x8540, - 6765: 0x8563, - 6766: 0x8558, - 6767: 0x8548, - 6768: 0x8541, - 6769: 0x8602, - 6770: 0x854B, - 6771: 0x8555, - 6772: 0x8580, - 6773: 0x85A4, - 6774: 0x8588, - 6775: 0x8591, - 6776: 0x858A, - 6777: 0x85A8, - 6778: 0x856D, - 6779: 0x8594, - 6780: 0x859B, - 6781: 0x85EA, - 6782: 0x8587, - 6783: 0x859C, - 6784: 0x8577, - 6785: 0x857E, - 6786: 0x8590, - 6787: 0x85C9, - 6788: 0x85BA, - 6789: 0x85CF, - 6790: 0x85B9, - 6791: 0x85D0, - 6792: 0x85D5, - 6793: 0x85DD, - 6794: 0x85E5, - 6795: 0x85DC, - 6796: 0x85F9, - 6797: 0x860A, - 6798: 0x8613, - 6799: 0x860B, - 6800: 0x85FE, - 6801: 0x85FA, - 6802: 0x8606, - 6803: 0x8622, - 6804: 0x861A, - 6805: 0x8630, - 6806: 0x863F, - 6807: 0x864D, - 6808: 0x4E55, - 6809: 0x8654, - 6810: 0x865F, - 6811: 0x8667, - 6812: 0x8671, - 6813: 0x8693, - 6814: 0x86A3, - 6815: 0x86A9, - 6816: 0x86AA, - 6817: 0x868B, - 6818: 0x868C, - 6819: 0x86B6, - 6820: 0x86AF, - 6821: 0x86C4, - 6822: 0x86C6, - 6823: 0x86B0, - 6824: 0x86C9, - 6825: 0x8823, - 6826: 0x86AB, - 6827: 0x86D4, - 6828: 0x86DE, - 6829: 0x86E9, - 6830: 0x86EC, - 6831: 0x86DF, - 6832: 0x86DB, - 6833: 0x86EF, - 6834: 0x8712, - 6835: 0x8706, - 6836: 0x8708, - 6837: 0x8700, - 6838: 0x8703, - 6839: 0x86FB, - 6840: 0x8711, - 6841: 0x8709, - 6842: 0x870D, - 6843: 0x86F9, - 6844: 0x870A, - 6845: 0x8734, - 6846: 0x873F, - 6847: 0x8737, - 6848: 0x873B, - 6849: 0x8725, - 6850: 0x8729, - 6851: 0x871A, - 6852: 0x8760, - 6853: 0x875F, - 6854: 0x8778, - 6855: 0x874C, - 6856: 0x874E, - 6857: 0x8774, - 6858: 0x8757, - 6859: 0x8768, - 6860: 0x876E, - 6861: 0x8759, - 6862: 0x8753, - 6863: 0x8763, - 6864: 0x876A, - 6865: 0x8805, - 6866: 0x87A2, - 6867: 0x879F, - 6868: 0x8782, - 6869: 0x87AF, - 6870: 0x87CB, - 6871: 0x87BD, - 6872: 0x87C0, - 6873: 0x87D0, - 6874: 0x96D6, - 6875: 0x87AB, - 6876: 0x87C4, - 6877: 0x87B3, - 6878: 0x87C7, - 6879: 0x87C6, - 6880: 0x87BB, - 6881: 0x87EF, - 6882: 0x87F2, - 6883: 0x87E0, - 6884: 0x880F, - 6885: 0x880D, - 6886: 0x87FE, - 6887: 0x87F6, - 6888: 0x87F7, - 6889: 0x880E, - 6890: 0x87D2, - 6891: 0x8811, - 6892: 0x8816, - 6893: 0x8815, - 6894: 0x8822, - 6895: 0x8821, - 6896: 0x8831, - 6897: 0x8836, - 6898: 0x8839, - 6899: 0x8827, - 6900: 0x883B, - 6901: 0x8844, - 6902: 0x8842, - 6903: 0x8852, - 6904: 0x8859, - 6905: 0x885E, - 6906: 0x8862, - 6907: 0x886B, - 6908: 0x8881, - 6909: 0x887E, - 6910: 0x889E, - 6911: 0x8875, - 6912: 0x887D, - 6913: 0x88B5, - 6914: 0x8872, - 6915: 0x8882, - 6916: 0x8897, - 6917: 0x8892, - 6918: 0x88AE, - 6919: 0x8899, - 6920: 0x88A2, - 6921: 0x888D, - 6922: 0x88A4, - 6923: 0x88B0, - 6924: 0x88BF, - 6925: 0x88B1, - 6926: 0x88C3, - 6927: 0x88C4, - 6928: 0x88D4, - 6929: 0x88D8, - 6930: 0x88D9, - 6931: 0x88DD, - 6932: 0x88F9, - 6933: 0x8902, - 6934: 0x88FC, - 6935: 0x88F4, - 6936: 0x88E8, - 6937: 0x88F2, - 6938: 0x8904, - 6939: 0x890C, - 6940: 0x890A, - 6941: 0x8913, - 6942: 0x8943, - 6943: 0x891E, - 6944: 0x8925, - 6945: 0x892A, - 6946: 0x892B, - 6947: 0x8941, - 6948: 0x8944, - 6949: 0x893B, - 6950: 0x8936, - 6951: 0x8938, - 6952: 0x894C, - 6953: 0x891D, - 6954: 0x8960, - 6955: 0x895E, - 6956: 0x8966, - 6957: 0x8964, - 6958: 0x896D, - 6959: 0x896A, - 6960: 0x896F, - 6961: 0x8974, - 6962: 0x8977, - 6963: 0x897E, - 6964: 0x8983, - 6965: 0x8988, - 6966: 0x898A, - 6967: 0x8993, - 6968: 0x8998, - 6969: 0x89A1, - 6970: 0x89A9, - 6971: 0x89A6, - 6972: 0x89AC, - 6973: 0x89AF, - 6974: 0x89B2, - 6975: 0x89BA, - 6976: 0x89BD, - 6977: 0x89BF, - 6978: 0x89C0, - 6979: 0x89DA, - 6980: 0x89DC, - 6981: 0x89DD, - 6982: 0x89E7, - 6983: 0x89F4, - 6984: 0x89F8, - 6985: 0x8A03, - 6986: 0x8A16, - 6987: 0x8A10, - 6988: 0x8A0C, - 6989: 0x8A1B, - 6990: 0x8A1D, - 6991: 0x8A25, - 6992: 0x8A36, - 6993: 0x8A41, - 6994: 0x8A5B, - 6995: 0x8A52, - 6996: 0x8A46, - 6997: 0x8A48, - 6998: 0x8A7C, - 6999: 0x8A6D, - 7000: 0x8A6C, - 7001: 0x8A62, - 7002: 0x8A85, - 7003: 0x8A82, - 7004: 0x8A84, - 7005: 0x8AA8, - 7006: 0x8AA1, - 7007: 0x8A91, - 7008: 0x8AA5, - 7009: 0x8AA6, - 7010: 0x8A9A, - 7011: 0x8AA3, - 7012: 0x8AC4, - 7013: 0x8ACD, - 7014: 0x8AC2, - 7015: 0x8ADA, - 7016: 0x8AEB, - 7017: 0x8AF3, - 7018: 0x8AE7, - 7019: 0x8AE4, - 7020: 0x8AF1, - 7021: 0x8B14, - 7022: 0x8AE0, - 7023: 0x8AE2, - 7024: 0x8AF7, - 7025: 0x8ADE, - 7026: 0x8ADB, - 7027: 0x8B0C, - 7028: 0x8B07, - 7029: 0x8B1A, - 7030: 0x8AE1, - 7031: 0x8B16, - 7032: 0x8B10, - 7033: 0x8B17, - 7034: 0x8B20, - 7035: 0x8B33, - 7036: 0x97AB, - 7037: 0x8B26, - 7038: 0x8B2B, - 7039: 0x8B3E, - 7040: 0x8B28, - 7041: 0x8B41, - 7042: 0x8B4C, - 7043: 0x8B4F, - 7044: 0x8B4E, - 7045: 0x8B49, - 7046: 0x8B56, - 7047: 0x8B5B, - 7048: 0x8B5A, - 7049: 0x8B6B, - 7050: 0x8B5F, - 7051: 0x8B6C, - 7052: 0x8B6F, - 7053: 0x8B74, - 7054: 0x8B7D, - 7055: 0x8B80, - 7056: 0x8B8C, - 7057: 0x8B8E, - 7058: 0x8B92, - 7059: 0x8B93, - 7060: 0x8B96, - 7061: 0x8B99, - 7062: 0x8B9A, - 7063: 0x8C3A, - 7064: 0x8C41, - 7065: 0x8C3F, - 7066: 0x8C48, - 7067: 0x8C4C, - 7068: 0x8C4E, - 7069: 0x8C50, - 7070: 0x8C55, - 7071: 0x8C62, - 7072: 0x8C6C, - 7073: 0x8C78, - 7074: 0x8C7A, - 7075: 0x8C82, - 7076: 0x8C89, - 7077: 0x8C85, - 7078: 0x8C8A, - 7079: 0x8C8D, - 7080: 0x8C8E, - 7081: 0x8C94, - 7082: 0x8C7C, - 7083: 0x8C98, - 7084: 0x621D, - 7085: 0x8CAD, - 7086: 0x8CAA, - 7087: 0x8CBD, - 7088: 0x8CB2, - 7089: 0x8CB3, - 7090: 0x8CAE, - 7091: 0x8CB6, - 7092: 0x8CC8, - 7093: 0x8CC1, - 7094: 0x8CE4, - 7095: 0x8CE3, - 7096: 0x8CDA, - 7097: 0x8CFD, - 7098: 0x8CFA, - 7099: 0x8CFB, - 7100: 0x8D04, - 7101: 0x8D05, - 7102: 0x8D0A, - 7103: 0x8D07, - 7104: 0x8D0F, - 7105: 0x8D0D, - 7106: 0x8D10, - 7107: 0x9F4E, - 7108: 0x8D13, - 7109: 0x8CCD, - 7110: 0x8D14, - 7111: 0x8D16, - 7112: 0x8D67, - 7113: 0x8D6D, - 7114: 0x8D71, - 7115: 0x8D73, - 7116: 0x8D81, - 7117: 0x8D99, - 7118: 0x8DC2, - 7119: 0x8DBE, - 7120: 0x8DBA, - 7121: 0x8DCF, - 7122: 0x8DDA, - 7123: 0x8DD6, - 7124: 0x8DCC, - 7125: 0x8DDB, - 7126: 0x8DCB, - 7127: 0x8DEA, - 7128: 0x8DEB, - 7129: 0x8DDF, - 7130: 0x8DE3, - 7131: 0x8DFC, - 7132: 0x8E08, - 7133: 0x8E09, - 7134: 0x8DFF, - 7135: 0x8E1D, - 7136: 0x8E1E, - 7137: 0x8E10, - 7138: 0x8E1F, - 7139: 0x8E42, - 7140: 0x8E35, - 7141: 0x8E30, - 7142: 0x8E34, - 7143: 0x8E4A, - 7144: 0x8E47, - 7145: 0x8E49, - 7146: 0x8E4C, - 7147: 0x8E50, - 7148: 0x8E48, - 7149: 0x8E59, - 7150: 0x8E64, - 7151: 0x8E60, - 7152: 0x8E2A, - 7153: 0x8E63, - 7154: 0x8E55, - 7155: 0x8E76, - 7156: 0x8E72, - 7157: 0x8E7C, - 7158: 0x8E81, - 7159: 0x8E87, - 7160: 0x8E85, - 7161: 0x8E84, - 7162: 0x8E8B, - 7163: 0x8E8A, - 7164: 0x8E93, - 7165: 0x8E91, - 7166: 0x8E94, - 7167: 0x8E99, - 7168: 0x8EAA, - 7169: 0x8EA1, - 7170: 0x8EAC, - 7171: 0x8EB0, - 7172: 0x8EC6, - 7173: 0x8EB1, - 7174: 0x8EBE, - 7175: 0x8EC5, - 7176: 0x8EC8, - 7177: 0x8ECB, - 7178: 0x8EDB, - 7179: 0x8EE3, - 7180: 0x8EFC, - 7181: 0x8EFB, - 7182: 0x8EEB, - 7183: 0x8EFE, - 7184: 0x8F0A, - 7185: 0x8F05, - 7186: 0x8F15, - 7187: 0x8F12, - 7188: 0x8F19, - 7189: 0x8F13, - 7190: 0x8F1C, - 7191: 0x8F1F, - 7192: 0x8F1B, - 7193: 0x8F0C, - 7194: 0x8F26, - 7195: 0x8F33, - 7196: 0x8F3B, - 7197: 0x8F39, - 7198: 0x8F45, - 7199: 0x8F42, - 7200: 0x8F3E, - 7201: 0x8F4C, - 7202: 0x8F49, - 7203: 0x8F46, - 7204: 0x8F4E, - 7205: 0x8F57, - 7206: 0x8F5C, - 7207: 0x8F62, - 7208: 0x8F63, - 7209: 0x8F64, - 7210: 0x8F9C, - 7211: 0x8F9F, - 7212: 0x8FA3, - 7213: 0x8FAD, - 7214: 0x8FAF, - 7215: 0x8FB7, - 7216: 0x8FDA, - 7217: 0x8FE5, - 7218: 0x8FE2, - 7219: 0x8FEA, - 7220: 0x8FEF, - 7221: 0x9087, - 7222: 0x8FF4, - 7223: 0x9005, - 7224: 0x8FF9, - 7225: 0x8FFA, - 7226: 0x9011, - 7227: 0x9015, - 7228: 0x9021, - 7229: 0x900D, - 7230: 0x901E, - 7231: 0x9016, - 7232: 0x900B, - 7233: 0x9027, - 7234: 0x9036, - 7235: 0x9035, - 7236: 0x9039, - 7237: 0x8FF8, - 7238: 0x904F, - 7239: 0x9050, - 7240: 0x9051, - 7241: 0x9052, - 7242: 0x900E, - 7243: 0x9049, - 7244: 0x903E, - 7245: 0x9056, - 7246: 0x9058, - 7247: 0x905E, - 7248: 0x9068, - 7249: 0x906F, - 7250: 0x9076, - 7251: 0x96A8, - 7252: 0x9072, - 7253: 0x9082, - 7254: 0x907D, - 7255: 0x9081, - 7256: 0x9080, - 7257: 0x908A, - 7258: 0x9089, - 7259: 0x908F, - 7260: 0x90A8, - 7261: 0x90AF, - 7262: 0x90B1, - 7263: 0x90B5, - 7264: 0x90E2, - 7265: 0x90E4, - 7266: 0x6248, - 7267: 0x90DB, - 7268: 0x9102, - 7269: 0x9112, - 7270: 0x9119, - 7271: 0x9132, - 7272: 0x9130, - 7273: 0x914A, - 7274: 0x9156, - 7275: 0x9158, - 7276: 0x9163, - 7277: 0x9165, - 7278: 0x9169, - 7279: 0x9173, - 7280: 0x9172, - 7281: 0x918B, - 7282: 0x9189, - 7283: 0x9182, - 7284: 0x91A2, - 7285: 0x91AB, - 7286: 0x91AF, - 7287: 0x91AA, - 7288: 0x91B5, - 7289: 0x91B4, - 7290: 0x91BA, - 7291: 0x91C0, - 7292: 0x91C1, - 7293: 0x91C9, - 7294: 0x91CB, - 7295: 0x91D0, - 7296: 0x91D6, - 7297: 0x91DF, - 7298: 0x91E1, - 7299: 0x91DB, - 7300: 0x91FC, - 7301: 0x91F5, - 7302: 0x91F6, - 7303: 0x921E, - 7304: 0x91FF, - 7305: 0x9214, - 7306: 0x922C, - 7307: 0x9215, - 7308: 0x9211, - 7309: 0x925E, - 7310: 0x9257, - 7311: 0x9245, - 7312: 0x9249, - 7313: 0x9264, - 7314: 0x9248, - 7315: 0x9295, - 7316: 0x923F, - 7317: 0x924B, - 7318: 0x9250, - 7319: 0x929C, - 7320: 0x9296, - 7321: 0x9293, - 7322: 0x929B, - 7323: 0x925A, - 7324: 0x92CF, - 7325: 0x92B9, - 7326: 0x92B7, - 7327: 0x92E9, - 7328: 0x930F, - 7329: 0x92FA, - 7330: 0x9344, - 7331: 0x932E, - 7332: 0x9319, - 7333: 0x9322, - 7334: 0x931A, - 7335: 0x9323, - 7336: 0x933A, - 7337: 0x9335, - 7338: 0x933B, - 7339: 0x935C, - 7340: 0x9360, - 7341: 0x937C, - 7342: 0x936E, - 7343: 0x9356, - 7344: 0x93B0, - 7345: 0x93AC, - 7346: 0x93AD, - 7347: 0x9394, - 7348: 0x93B9, - 7349: 0x93D6, - 7350: 0x93D7, - 7351: 0x93E8, - 7352: 0x93E5, - 7353: 0x93D8, - 7354: 0x93C3, - 7355: 0x93DD, - 7356: 0x93D0, - 7357: 0x93C8, - 7358: 0x93E4, - 7359: 0x941A, - 7360: 0x9414, - 7361: 0x9413, - 7362: 0x9403, - 7363: 0x9407, - 7364: 0x9410, - 7365: 0x9436, - 7366: 0x942B, - 7367: 0x9435, - 7368: 0x9421, - 7369: 0x943A, - 7370: 0x9441, - 7371: 0x9452, - 7372: 0x9444, - 7373: 0x945B, - 7374: 0x9460, - 7375: 0x9462, - 7376: 0x945E, - 7377: 0x946A, - 7378: 0x9229, - 7379: 0x9470, - 7380: 0x9475, - 7381: 0x9477, - 7382: 0x947D, - 7383: 0x945A, - 7384: 0x947C, - 7385: 0x947E, - 7386: 0x9481, - 7387: 0x947F, - 7388: 0x9582, - 7389: 0x9587, - 7390: 0x958A, - 7391: 0x9594, - 7392: 0x9596, - 7393: 0x9598, - 7394: 0x9599, - 7395: 0x95A0, - 7396: 0x95A8, - 7397: 0x95A7, - 7398: 0x95AD, - 7399: 0x95BC, - 7400: 0x95BB, - 7401: 0x95B9, - 7402: 0x95BE, - 7403: 0x95CA, - 7404: 0x6FF6, - 7405: 0x95C3, - 7406: 0x95CD, - 7407: 0x95CC, - 7408: 0x95D5, - 7409: 0x95D4, - 7410: 0x95D6, - 7411: 0x95DC, - 7412: 0x95E1, - 7413: 0x95E5, - 7414: 0x95E2, - 7415: 0x9621, - 7416: 0x9628, - 7417: 0x962E, - 7418: 0x962F, - 7419: 0x9642, - 7420: 0x964C, - 7421: 0x964F, - 7422: 0x964B, - 7423: 0x9677, - 7424: 0x965C, - 7425: 0x965E, - 7426: 0x965D, - 7427: 0x965F, - 7428: 0x9666, - 7429: 0x9672, - 7430: 0x966C, - 7431: 0x968D, - 7432: 0x9698, - 7433: 0x9695, - 7434: 0x9697, - 7435: 0x96AA, - 7436: 0x96A7, - 7437: 0x96B1, - 7438: 0x96B2, - 7439: 0x96B0, - 7440: 0x96B4, - 7441: 0x96B6, - 7442: 0x96B8, - 7443: 0x96B9, - 7444: 0x96CE, - 7445: 0x96CB, - 7446: 0x96C9, - 7447: 0x96CD, - 7448: 0x894D, - 7449: 0x96DC, - 7450: 0x970D, - 7451: 0x96D5, - 7452: 0x96F9, - 7453: 0x9704, - 7454: 0x9706, - 7455: 0x9708, - 7456: 0x9713, - 7457: 0x970E, - 7458: 0x9711, - 7459: 0x970F, - 7460: 0x9716, - 7461: 0x9719, - 7462: 0x9724, - 7463: 0x972A, - 7464: 0x9730, - 7465: 0x9739, - 7466: 0x973D, - 7467: 0x973E, - 7468: 0x9744, - 7469: 0x9746, - 7470: 0x9748, - 7471: 0x9742, - 7472: 0x9749, - 7473: 0x975C, - 7474: 0x9760, - 7475: 0x9764, - 7476: 0x9766, - 7477: 0x9768, - 7478: 0x52D2, - 7479: 0x976B, - 7480: 0x9771, - 7481: 0x9779, - 7482: 0x9785, - 7483: 0x977C, - 7484: 0x9781, - 7485: 0x977A, - 7486: 0x9786, - 7487: 0x978B, - 7488: 0x978F, - 7489: 0x9790, - 7490: 0x979C, - 7491: 0x97A8, - 7492: 0x97A6, - 7493: 0x97A3, - 7494: 0x97B3, - 7495: 0x97B4, - 7496: 0x97C3, - 7497: 0x97C6, - 7498: 0x97C8, - 7499: 0x97CB, - 7500: 0x97DC, - 7501: 0x97ED, - 7502: 0x9F4F, - 7503: 0x97F2, - 7504: 0x7ADF, - 7505: 0x97F6, - 7506: 0x97F5, - 7507: 0x980F, - 7508: 0x980C, - 7509: 0x9838, - 7510: 0x9824, - 7511: 0x9821, - 7512: 0x9837, - 7513: 0x983D, - 7514: 0x9846, - 7515: 0x984F, - 7516: 0x984B, - 7517: 0x986B, - 7518: 0x986F, - 7519: 0x9870, - 7520: 0x9871, - 7521: 0x9874, - 7522: 0x9873, - 7523: 0x98AA, - 7524: 0x98AF, - 7525: 0x98B1, - 7526: 0x98B6, - 7527: 0x98C4, - 7528: 0x98C3, - 7529: 0x98C6, - 7530: 0x98E9, - 7531: 0x98EB, - 7532: 0x9903, - 7533: 0x9909, - 7534: 0x9912, - 7535: 0x9914, - 7536: 0x9918, - 7537: 0x9921, - 7538: 0x991D, - 7539: 0x991E, - 7540: 0x9924, - 7541: 0x9920, - 7542: 0x992C, - 7543: 0x992E, - 7544: 0x993D, - 7545: 0x993E, - 7546: 0x9942, - 7547: 0x9949, - 7548: 0x9945, - 7549: 0x9950, - 7550: 0x994B, - 7551: 0x9951, - 7552: 0x9952, - 7553: 0x994C, - 7554: 0x9955, - 7555: 0x9997, - 7556: 0x9998, - 7557: 0x99A5, - 7558: 0x99AD, - 7559: 0x99AE, - 7560: 0x99BC, - 7561: 0x99DF, - 7562: 0x99DB, - 7563: 0x99DD, - 7564: 0x99D8, - 7565: 0x99D1, - 7566: 0x99ED, - 7567: 0x99EE, - 7568: 0x99F1, - 7569: 0x99F2, - 7570: 0x99FB, - 7571: 0x99F8, - 7572: 0x9A01, - 7573: 0x9A0F, - 7574: 0x9A05, - 7575: 0x99E2, - 7576: 0x9A19, - 7577: 0x9A2B, - 7578: 0x9A37, - 7579: 0x9A45, - 7580: 0x9A42, - 7581: 0x9A40, - 7582: 0x9A43, - 7583: 0x9A3E, - 7584: 0x9A55, - 7585: 0x9A4D, - 7586: 0x9A5B, - 7587: 0x9A57, - 7588: 0x9A5F, - 7589: 0x9A62, - 7590: 0x9A65, - 7591: 0x9A64, - 7592: 0x9A69, - 7593: 0x9A6B, - 7594: 0x9A6A, - 7595: 0x9AAD, - 7596: 0x9AB0, - 7597: 0x9ABC, - 7598: 0x9AC0, - 7599: 0x9ACF, - 7600: 0x9AD1, - 7601: 0x9AD3, - 7602: 0x9AD4, - 7603: 0x9ADE, - 7604: 0x9ADF, - 7605: 0x9AE2, - 7606: 0x9AE3, - 7607: 0x9AE6, - 7608: 0x9AEF, - 7609: 0x9AEB, - 7610: 0x9AEE, - 7611: 0x9AF4, - 7612: 0x9AF1, - 7613: 0x9AF7, - 7614: 0x9AFB, - 7615: 0x9B06, - 7616: 0x9B18, - 7617: 0x9B1A, - 7618: 0x9B1F, - 7619: 0x9B22, - 7620: 0x9B23, - 7621: 0x9B25, - 7622: 0x9B27, - 7623: 0x9B28, - 7624: 0x9B29, - 7625: 0x9B2A, - 7626: 0x9B2E, - 7627: 0x9B2F, - 7628: 0x9B32, - 7629: 0x9B44, - 7630: 0x9B43, - 7631: 0x9B4F, - 7632: 0x9B4D, - 7633: 0x9B4E, - 7634: 0x9B51, - 7635: 0x9B58, - 7636: 0x9B74, - 7637: 0x9B93, - 7638: 0x9B83, - 7639: 0x9B91, - 7640: 0x9B96, - 7641: 0x9B97, - 7642: 0x9B9F, - 7643: 0x9BA0, - 7644: 0x9BA8, - 7645: 0x9BB4, - 7646: 0x9BC0, - 7647: 0x9BCA, - 7648: 0x9BB9, - 7649: 0x9BC6, - 7650: 0x9BCF, - 7651: 0x9BD1, - 7652: 0x9BD2, - 7653: 0x9BE3, - 7654: 0x9BE2, - 7655: 0x9BE4, - 7656: 0x9BD4, - 7657: 0x9BE1, - 7658: 0x9C3A, - 7659: 0x9BF2, - 7660: 0x9BF1, - 7661: 0x9BF0, - 7662: 0x9C15, - 7663: 0x9C14, - 7664: 0x9C09, - 7665: 0x9C13, - 7666: 0x9C0C, - 7667: 0x9C06, - 7668: 0x9C08, - 7669: 0x9C12, - 7670: 0x9C0A, - 7671: 0x9C04, - 7672: 0x9C2E, - 7673: 0x9C1B, - 7674: 0x9C25, - 7675: 0x9C24, - 7676: 0x9C21, - 7677: 0x9C30, - 7678: 0x9C47, - 7679: 0x9C32, - 7680: 0x9C46, - 7681: 0x9C3E, - 7682: 0x9C5A, - 7683: 0x9C60, - 7684: 0x9C67, - 7685: 0x9C76, - 7686: 0x9C78, - 7687: 0x9CE7, - 7688: 0x9CEC, - 7689: 0x9CF0, - 7690: 0x9D09, - 7691: 0x9D08, - 7692: 0x9CEB, - 7693: 0x9D03, - 7694: 0x9D06, - 7695: 0x9D2A, - 7696: 0x9D26, - 7697: 0x9DAF, - 7698: 0x9D23, - 7699: 0x9D1F, - 7700: 0x9D44, - 7701: 0x9D15, - 7702: 0x9D12, - 7703: 0x9D41, - 7704: 0x9D3F, - 7705: 0x9D3E, - 7706: 0x9D46, - 7707: 0x9D48, - 7708: 0x9D5D, - 7709: 0x9D5E, - 7710: 0x9D64, - 7711: 0x9D51, - 7712: 0x9D50, - 7713: 0x9D59, - 7714: 0x9D72, - 7715: 0x9D89, - 7716: 0x9D87, - 7717: 0x9DAB, - 7718: 0x9D6F, - 7719: 0x9D7A, - 7720: 0x9D9A, - 7721: 0x9DA4, - 7722: 0x9DA9, - 7723: 0x9DB2, - 7724: 0x9DC4, - 7725: 0x9DC1, - 7726: 0x9DBB, - 7727: 0x9DB8, - 7728: 0x9DBA, - 7729: 0x9DC6, - 7730: 0x9DCF, - 7731: 0x9DC2, - 7732: 0x9DD9, - 7733: 0x9DD3, - 7734: 0x9DF8, - 7735: 0x9DE6, - 7736: 0x9DED, - 7737: 0x9DEF, - 7738: 0x9DFD, - 7739: 0x9E1A, - 7740: 0x9E1B, - 7741: 0x9E1E, - 7742: 0x9E75, - 7743: 0x9E79, - 7744: 0x9E7D, - 7745: 0x9E81, - 7746: 0x9E88, - 7747: 0x9E8B, - 7748: 0x9E8C, - 7749: 0x9E92, - 7750: 0x9E95, - 7751: 0x9E91, - 7752: 0x9E9D, - 7753: 0x9EA5, - 7754: 0x9EA9, - 7755: 0x9EB8, - 7756: 0x9EAA, - 7757: 0x9EAD, - 7758: 0x9761, - 7759: 0x9ECC, - 7760: 0x9ECE, - 7761: 0x9ECF, - 7762: 0x9ED0, - 7763: 0x9ED4, - 7764: 0x9EDC, - 7765: 0x9EDE, - 7766: 0x9EDD, - 7767: 0x9EE0, - 7768: 0x9EE5, - 7769: 0x9EE8, - 7770: 0x9EEF, - 7771: 0x9EF4, - 7772: 0x9EF6, - 7773: 0x9EF7, - 7774: 0x9EF9, - 7775: 0x9EFB, - 7776: 0x9EFC, - 7777: 0x9EFD, - 7778: 0x9F07, - 7779: 0x9F08, - 7780: 0x76B7, - 7781: 0x9F15, - 7782: 0x9F21, - 7783: 0x9F2C, - 7784: 0x9F3E, - 7785: 0x9F4A, - 7786: 0x9F52, - 7787: 0x9F54, - 7788: 0x9F63, - 7789: 0x9F5F, - 7790: 0x9F60, - 7791: 0x9F61, - 7792: 0x9F66, - 7793: 0x9F67, - 7794: 0x9F6C, - 7795: 0x9F6A, - 7796: 0x9F77, - 7797: 0x9F72, - 7798: 0x9F76, - 7799: 0x9F95, - 7800: 0x9F9C, - 7801: 0x9FA0, - 7802: 0x582F, - 7803: 0x69C7, - 7804: 0x9059, - 7805: 0x7464, - 7806: 0x51DC, - 7807: 0x7199, - 8272: 0x7E8A, - 8273: 0x891C, - 8274: 0x9348, - 8275: 0x9288, - 8276: 0x84DC, - 8277: 0x4FC9, - 8278: 0x70BB, - 8279: 0x6631, - 8280: 0x68C8, - 8281: 0x92F9, - 8282: 0x66FB, - 8283: 0x5F45, - 8284: 0x4E28, - 8285: 0x4EE1, - 8286: 0x4EFC, - 8287: 0x4F00, - 8288: 0x4F03, - 8289: 0x4F39, - 8290: 0x4F56, - 8291: 0x4F92, - 8292: 0x4F8A, - 8293: 0x4F9A, - 8294: 0x4F94, - 8295: 0x4FCD, - 8296: 0x5040, - 8297: 0x5022, - 8298: 0x4FFF, - 8299: 0x501E, - 8300: 0x5046, - 8301: 0x5070, - 8302: 0x5042, - 8303: 0x5094, - 8304: 0x50F4, - 8305: 0x50D8, - 8306: 0x514A, - 8307: 0x5164, - 8308: 0x519D, - 8309: 0x51BE, - 8310: 0x51EC, - 8311: 0x5215, - 8312: 0x529C, - 8313: 0x52A6, - 8314: 0x52C0, - 8315: 0x52DB, - 8316: 0x5300, - 8317: 0x5307, - 8318: 0x5324, - 8319: 0x5372, - 8320: 0x5393, - 8321: 0x53B2, - 8322: 0x53DD, - 8323: 0xFA0E, - 8324: 0x549C, - 8325: 0x548A, - 8326: 0x54A9, - 8327: 0x54FF, - 8328: 0x5586, - 8329: 0x5759, - 8330: 0x5765, - 8331: 0x57AC, - 8332: 0x57C8, - 8333: 0x57C7, - 8334: 0xFA0F, - 8335: 0xFA10, - 8336: 0x589E, - 8337: 0x58B2, - 8338: 0x590B, - 8339: 0x5953, - 8340: 0x595B, - 8341: 0x595D, - 8342: 0x5963, - 8343: 0x59A4, - 8344: 0x59BA, - 8345: 0x5B56, - 8346: 0x5BC0, - 8347: 0x752F, - 8348: 0x5BD8, - 8349: 0x5BEC, - 8350: 0x5C1E, - 8351: 0x5CA6, - 8352: 0x5CBA, - 8353: 0x5CF5, - 8354: 0x5D27, - 8355: 0x5D53, - 8356: 0xFA11, - 8357: 0x5D42, - 8358: 0x5D6D, - 8359: 0x5DB8, - 8360: 0x5DB9, - 8361: 0x5DD0, - 8362: 0x5F21, - 8363: 0x5F34, - 8364: 0x5F67, - 8365: 0x5FB7, - 8366: 0x5FDE, - 8367: 0x605D, - 8368: 0x6085, - 8369: 0x608A, - 8370: 0x60DE, - 8371: 0x60D5, - 8372: 0x6120, - 8373: 0x60F2, - 8374: 0x6111, - 8375: 0x6137, - 8376: 0x6130, - 8377: 0x6198, - 8378: 0x6213, - 8379: 0x62A6, - 8380: 0x63F5, - 8381: 0x6460, - 8382: 0x649D, - 8383: 0x64CE, - 8384: 0x654E, - 8385: 0x6600, - 8386: 0x6615, - 8387: 0x663B, - 8388: 0x6609, - 8389: 0x662E, - 8390: 0x661E, - 8391: 0x6624, - 8392: 0x6665, - 8393: 0x6657, - 8394: 0x6659, - 8395: 0xFA12, - 8396: 0x6673, - 8397: 0x6699, - 8398: 0x66A0, - 8399: 0x66B2, - 8400: 0x66BF, - 8401: 0x66FA, - 8402: 0x670E, - 8403: 0xF929, - 8404: 0x6766, - 8405: 0x67BB, - 8406: 0x6852, - 8407: 0x67C0, - 8408: 0x6801, - 8409: 0x6844, - 8410: 0x68CF, - 8411: 0xFA13, - 8412: 0x6968, - 8413: 0xFA14, - 8414: 0x6998, - 8415: 0x69E2, - 8416: 0x6A30, - 8417: 0x6A6B, - 8418: 0x6A46, - 8419: 0x6A73, - 8420: 0x6A7E, - 8421: 0x6AE2, - 8422: 0x6AE4, - 8423: 0x6BD6, - 8424: 0x6C3F, - 8425: 0x6C5C, - 8426: 0x6C86, - 8427: 0x6C6F, - 8428: 0x6CDA, - 8429: 0x6D04, - 8430: 0x6D87, - 8431: 0x6D6F, - 8432: 0x6D96, - 8433: 0x6DAC, - 8434: 0x6DCF, - 8435: 0x6DF8, - 8436: 0x6DF2, - 8437: 0x6DFC, - 8438: 0x6E39, - 8439: 0x6E5C, - 8440: 0x6E27, - 8441: 0x6E3C, - 8442: 0x6EBF, - 8443: 0x6F88, - 8444: 0x6FB5, - 8445: 0x6FF5, - 8446: 0x7005, - 8447: 0x7007, - 8448: 0x7028, - 8449: 0x7085, - 8450: 0x70AB, - 8451: 0x710F, - 8452: 0x7104, - 8453: 0x715C, - 8454: 0x7146, - 8455: 0x7147, - 8456: 0xFA15, - 8457: 0x71C1, - 8458: 0x71FE, - 8459: 0x72B1, - 8460: 0x72BE, - 8461: 0x7324, - 8462: 0xFA16, - 8463: 0x7377, - 8464: 0x73BD, - 8465: 0x73C9, - 8466: 0x73D6, - 8467: 0x73E3, - 8468: 0x73D2, - 8469: 0x7407, - 8470: 0x73F5, - 8471: 0x7426, - 8472: 0x742A, - 8473: 0x7429, - 8474: 0x742E, - 8475: 0x7462, - 8476: 0x7489, - 8477: 0x749F, - 8478: 0x7501, - 8479: 0x756F, - 8480: 0x7682, - 8481: 0x769C, - 8482: 0x769E, - 8483: 0x769B, - 8484: 0x76A6, - 8485: 0xFA17, - 8486: 0x7746, - 8487: 0x52AF, - 8488: 0x7821, - 8489: 0x784E, - 8490: 0x7864, - 8491: 0x787A, - 8492: 0x7930, - 8493: 0xFA18, - 8494: 0xFA19, - 8495: 0xFA1A, - 8496: 0x7994, - 8497: 0xFA1B, - 8498: 0x799B, - 8499: 0x7AD1, - 8500: 0x7AE7, - 8501: 0xFA1C, - 8502: 0x7AEB, - 8503: 0x7B9E, - 8504: 0xFA1D, - 8505: 0x7D48, - 8506: 0x7D5C, - 8507: 0x7DB7, - 8508: 0x7DA0, - 8509: 0x7DD6, - 8510: 0x7E52, - 8511: 0x7F47, - 8512: 0x7FA1, - 8513: 0xFA1E, - 8514: 0x8301, - 8515: 0x8362, - 8516: 0x837F, - 8517: 0x83C7, - 8518: 0x83F6, - 8519: 0x8448, - 8520: 0x84B4, - 8521: 0x8553, - 8522: 0x8559, - 8523: 0x856B, - 8524: 0xFA1F, - 8525: 0x85B0, - 8526: 0xFA20, - 8527: 0xFA21, - 8528: 0x8807, - 8529: 0x88F5, - 8530: 0x8A12, - 8531: 0x8A37, - 8532: 0x8A79, - 8533: 0x8AA7, - 8534: 0x8ABE, - 8535: 0x8ADF, - 8536: 0xFA22, - 8537: 0x8AF6, - 8538: 0x8B53, - 8539: 0x8B7F, - 8540: 0x8CF0, - 8541: 0x8CF4, - 8542: 0x8D12, - 8543: 0x8D76, - 8544: 0xFA23, - 8545: 0x8ECF, - 8546: 0xFA24, - 8547: 0xFA25, - 8548: 0x9067, - 8549: 0x90DE, - 8550: 0xFA26, - 8551: 0x9115, - 8552: 0x9127, - 8553: 0x91DA, - 8554: 0x91D7, - 8555: 0x91DE, - 8556: 0x91ED, - 8557: 0x91EE, - 8558: 0x91E4, - 8559: 0x91E5, - 8560: 0x9206, - 8561: 0x9210, - 8562: 0x920A, - 8563: 0x923A, - 8564: 0x9240, - 8565: 0x923C, - 8566: 0x924E, - 8567: 0x9259, - 8568: 0x9251, - 8569: 0x9239, - 8570: 0x9267, - 8571: 0x92A7, - 8572: 0x9277, - 8573: 0x9278, - 8574: 0x92E7, - 8575: 0x92D7, - 8576: 0x92D9, - 8577: 0x92D0, - 8578: 0xFA27, - 8579: 0x92D5, - 8580: 0x92E0, - 8581: 0x92D3, - 8582: 0x9325, - 8583: 0x9321, - 8584: 0x92FB, - 8585: 0xFA28, - 8586: 0x931E, - 8587: 0x92FF, - 8588: 0x931D, - 8589: 0x9302, - 8590: 0x9370, - 8591: 0x9357, - 8592: 0x93A4, - 8593: 0x93C6, - 8594: 0x93DE, - 8595: 0x93F8, - 8596: 0x9431, - 8597: 0x9445, - 8598: 0x9448, - 8599: 0x9592, - 8600: 0xF9DC, - 8601: 0xFA29, - 8602: 0x969D, - 8603: 0x96AF, - 8604: 0x9733, - 8605: 0x973B, - 8606: 0x9743, - 8607: 0x974D, - 8608: 0x974F, - 8609: 0x9751, - 8610: 0x9755, - 8611: 0x9857, - 8612: 0x9865, - 8613: 0xFA2A, - 8614: 0xFA2B, - 8615: 0x9927, - 8616: 0xFA2C, - 8617: 0x999E, - 8618: 0x9A4E, - 8619: 0x9AD9, - 8620: 0x9ADC, - 8621: 0x9B75, - 8622: 0x9B72, - 8623: 0x9B8F, - 8624: 0x9BB1, - 8625: 0x9BBB, - 8626: 0x9C00, - 8627: 0x9D70, - 8628: 0x9D6B, - 8629: 0xFA2D, - 8630: 0x9E19, - 8631: 0x9ED1, - 8634: 0x2170, - 8635: 0x2171, - 8636: 0x2172, - 8637: 0x2173, - 8638: 0x2174, - 8639: 0x2175, - 8640: 0x2176, - 8641: 0x2177, - 8642: 0x2178, - 8643: 0x2179, - 8644: 0xFFE2, - 8645: 0xFFE4, - 8646: 0xFF07, - 8647: 0xFF02, - 10716: 0x2170, - 10717: 0x2171, - 10718: 0x2172, - 10719: 0x2173, - 10720: 0x2174, - 10721: 0x2175, - 10722: 0x2176, - 10723: 0x2177, - 10724: 0x2178, - 10725: 0x2179, - 10726: 0x2160, - 10727: 0x2161, - 10728: 0x2162, - 10729: 0x2163, - 10730: 0x2164, - 10731: 0x2165, - 10732: 0x2166, - 10733: 0x2167, - 10734: 0x2168, - 10735: 0x2169, - 10736: 0xFFE2, - 10737: 0xFFE4, - 10738: 0xFF07, - 10739: 0xFF02, - 10740: 0x3231, - 10741: 0x2116, - 10742: 0x2121, - 10743: 0x2235, - 10744: 0x7E8A, - 10745: 0x891C, - 10746: 0x9348, - 10747: 0x9288, - 10748: 0x84DC, - 10749: 0x4FC9, - 10750: 0x70BB, - 10751: 0x6631, - 10752: 0x68C8, - 10753: 0x92F9, - 10754: 0x66FB, - 10755: 0x5F45, - 10756: 0x4E28, - 10757: 0x4EE1, - 10758: 0x4EFC, - 10759: 0x4F00, - 10760: 0x4F03, - 10761: 0x4F39, - 10762: 0x4F56, - 10763: 0x4F92, - 10764: 0x4F8A, - 10765: 0x4F9A, - 10766: 0x4F94, - 10767: 0x4FCD, - 10768: 0x5040, - 10769: 0x5022, - 10770: 0x4FFF, - 10771: 0x501E, - 10772: 0x5046, - 10773: 0x5070, - 10774: 0x5042, - 10775: 0x5094, - 10776: 0x50F4, - 10777: 0x50D8, - 10778: 0x514A, - 10779: 0x5164, - 10780: 0x519D, - 10781: 0x51BE, - 10782: 0x51EC, - 10783: 0x5215, - 10784: 0x529C, - 10785: 0x52A6, - 10786: 0x52C0, - 10787: 0x52DB, - 10788: 0x5300, - 10789: 0x5307, - 10790: 0x5324, - 10791: 0x5372, - 10792: 0x5393, - 10793: 0x53B2, - 10794: 0x53DD, - 10795: 0xFA0E, - 10796: 0x549C, - 10797: 0x548A, - 10798: 0x54A9, - 10799: 0x54FF, - 10800: 0x5586, - 10801: 0x5759, - 10802: 0x5765, - 10803: 0x57AC, - 10804: 0x57C8, - 10805: 0x57C7, - 10806: 0xFA0F, - 10807: 0xFA10, - 10808: 0x589E, - 10809: 0x58B2, - 10810: 0x590B, - 10811: 0x5953, - 10812: 0x595B, - 10813: 0x595D, - 10814: 0x5963, - 10815: 0x59A4, - 10816: 0x59BA, - 10817: 0x5B56, - 10818: 0x5BC0, - 10819: 0x752F, - 10820: 0x5BD8, - 10821: 0x5BEC, - 10822: 0x5C1E, - 10823: 0x5CA6, - 10824: 0x5CBA, - 10825: 0x5CF5, - 10826: 0x5D27, - 10827: 0x5D53, - 10828: 0xFA11, - 10829: 0x5D42, - 10830: 0x5D6D, - 10831: 0x5DB8, - 10832: 0x5DB9, - 10833: 0x5DD0, - 10834: 0x5F21, - 10835: 0x5F34, - 10836: 0x5F67, - 10837: 0x5FB7, - 10838: 0x5FDE, - 10839: 0x605D, - 10840: 0x6085, - 10841: 0x608A, - 10842: 0x60DE, - 10843: 0x60D5, - 10844: 0x6120, - 10845: 0x60F2, - 10846: 0x6111, - 10847: 0x6137, - 10848: 0x6130, - 10849: 0x6198, - 10850: 0x6213, - 10851: 0x62A6, - 10852: 0x63F5, - 10853: 0x6460, - 10854: 0x649D, - 10855: 0x64CE, - 10856: 0x654E, - 10857: 0x6600, - 10858: 0x6615, - 10859: 0x663B, - 10860: 0x6609, - 10861: 0x662E, - 10862: 0x661E, - 10863: 0x6624, - 10864: 0x6665, - 10865: 0x6657, - 10866: 0x6659, - 10867: 0xFA12, - 10868: 0x6673, - 10869: 0x6699, - 10870: 0x66A0, - 10871: 0x66B2, - 10872: 0x66BF, - 10873: 0x66FA, - 10874: 0x670E, - 10875: 0xF929, - 10876: 0x6766, - 10877: 0x67BB, - 10878: 0x6852, - 10879: 0x67C0, - 10880: 0x6801, - 10881: 0x6844, - 10882: 0x68CF, - 10883: 0xFA13, - 10884: 0x6968, - 10885: 0xFA14, - 10886: 0x6998, - 10887: 0x69E2, - 10888: 0x6A30, - 10889: 0x6A6B, - 10890: 0x6A46, - 10891: 0x6A73, - 10892: 0x6A7E, - 10893: 0x6AE2, - 10894: 0x6AE4, - 10895: 0x6BD6, - 10896: 0x6C3F, - 10897: 0x6C5C, - 10898: 0x6C86, - 10899: 0x6C6F, - 10900: 0x6CDA, - 10901: 0x6D04, - 10902: 0x6D87, - 10903: 0x6D6F, - 10904: 0x6D96, - 10905: 0x6DAC, - 10906: 0x6DCF, - 10907: 0x6DF8, - 10908: 0x6DF2, - 10909: 0x6DFC, - 10910: 0x6E39, - 10911: 0x6E5C, - 10912: 0x6E27, - 10913: 0x6E3C, - 10914: 0x6EBF, - 10915: 0x6F88, - 10916: 0x6FB5, - 10917: 0x6FF5, - 10918: 0x7005, - 10919: 0x7007, - 10920: 0x7028, - 10921: 0x7085, - 10922: 0x70AB, - 10923: 0x710F, - 10924: 0x7104, - 10925: 0x715C, - 10926: 0x7146, - 10927: 0x7147, - 10928: 0xFA15, - 10929: 0x71C1, - 10930: 0x71FE, - 10931: 0x72B1, - 10932: 0x72BE, - 10933: 0x7324, - 10934: 0xFA16, - 10935: 0x7377, - 10936: 0x73BD, - 10937: 0x73C9, - 10938: 0x73D6, - 10939: 0x73E3, - 10940: 0x73D2, - 10941: 0x7407, - 10942: 0x73F5, - 10943: 0x7426, - 10944: 0x742A, - 10945: 0x7429, - 10946: 0x742E, - 10947: 0x7462, - 10948: 0x7489, - 10949: 0x749F, - 10950: 0x7501, - 10951: 0x756F, - 10952: 0x7682, - 10953: 0x769C, - 10954: 0x769E, - 10955: 0x769B, - 10956: 0x76A6, - 10957: 0xFA17, - 10958: 0x7746, - 10959: 0x52AF, - 10960: 0x7821, - 10961: 0x784E, - 10962: 0x7864, - 10963: 0x787A, - 10964: 0x7930, - 10965: 0xFA18, - 10966: 0xFA19, - 10967: 0xFA1A, - 10968: 0x7994, - 10969: 0xFA1B, - 10970: 0x799B, - 10971: 0x7AD1, - 10972: 0x7AE7, - 10973: 0xFA1C, - 10974: 0x7AEB, - 10975: 0x7B9E, - 10976: 0xFA1D, - 10977: 0x7D48, - 10978: 0x7D5C, - 10979: 0x7DB7, - 10980: 0x7DA0, - 10981: 0x7DD6, - 10982: 0x7E52, - 10983: 0x7F47, - 10984: 0x7FA1, - 10985: 0xFA1E, - 10986: 0x8301, - 10987: 0x8362, - 10988: 0x837F, - 10989: 0x83C7, - 10990: 0x83F6, - 10991: 0x8448, - 10992: 0x84B4, - 10993: 0x8553, - 10994: 0x8559, - 10995: 0x856B, - 10996: 0xFA1F, - 10997: 0x85B0, - 10998: 0xFA20, - 10999: 0xFA21, - 11000: 0x8807, - 11001: 0x88F5, - 11002: 0x8A12, - 11003: 0x8A37, - 11004: 0x8A79, - 11005: 0x8AA7, - 11006: 0x8ABE, - 11007: 0x8ADF, - 11008: 0xFA22, - 11009: 0x8AF6, - 11010: 0x8B53, - 11011: 0x8B7F, - 11012: 0x8CF0, - 11013: 0x8CF4, - 11014: 0x8D12, - 11015: 0x8D76, - 11016: 0xFA23, - 11017: 0x8ECF, - 11018: 0xFA24, - 11019: 0xFA25, - 11020: 0x9067, - 11021: 0x90DE, - 11022: 0xFA26, - 11023: 0x9115, - 11024: 0x9127, - 11025: 0x91DA, - 11026: 0x91D7, - 11027: 0x91DE, - 11028: 0x91ED, - 11029: 0x91EE, - 11030: 0x91E4, - 11031: 0x91E5, - 11032: 0x9206, - 11033: 0x9210, - 11034: 0x920A, - 11035: 0x923A, - 11036: 0x9240, - 11037: 0x923C, - 11038: 0x924E, - 11039: 0x9259, - 11040: 0x9251, - 11041: 0x9239, - 11042: 0x9267, - 11043: 0x92A7, - 11044: 0x9277, - 11045: 0x9278, - 11046: 0x92E7, - 11047: 0x92D7, - 11048: 0x92D9, - 11049: 0x92D0, - 11050: 0xFA27, - 11051: 0x92D5, - 11052: 0x92E0, - 11053: 0x92D3, - 11054: 0x9325, - 11055: 0x9321, - 11056: 0x92FB, - 11057: 0xFA28, - 11058: 0x931E, - 11059: 0x92FF, - 11060: 0x931D, - 11061: 0x9302, - 11062: 0x9370, - 11063: 0x9357, - 11064: 0x93A4, - 11065: 0x93C6, - 11066: 0x93DE, - 11067: 0x93F8, - 11068: 0x9431, - 11069: 0x9445, - 11070: 0x9448, - 11071: 0x9592, - 11072: 0xF9DC, - 11073: 0xFA29, - 11074: 0x969D, - 11075: 0x96AF, - 11076: 0x9733, - 11077: 0x973B, - 11078: 0x9743, - 11079: 0x974D, - 11080: 0x974F, - 11081: 0x9751, - 11082: 0x9755, - 11083: 0x9857, - 11084: 0x9865, - 11085: 0xFA2A, - 11086: 0xFA2B, - 11087: 0x9927, - 11088: 0xFA2C, - 11089: 0x999E, - 11090: 0x9A4E, - 11091: 0x9AD9, - 11092: 0x9ADC, - 11093: 0x9B75, - 11094: 0x9B72, - 11095: 0x9B8F, - 11096: 0x9BB1, - 11097: 0x9BBB, - 11098: 0x9C00, - 11099: 0x9D70, - 11100: 0x9D6B, - 11101: 0xFA2D, - 11102: 0x9E19, - 11103: 0x9ED1, -} - -// jis0212Decode is the decoding table from JIS 0212 code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-jis0212.txt -var jis0212Decode = [...]uint16{ - 108: 0x02D8, - 109: 0x02C7, - 110: 0x00B8, - 111: 0x02D9, - 112: 0x02DD, - 113: 0x00AF, - 114: 0x02DB, - 115: 0x02DA, - 116: 0xFF5E, - 117: 0x0384, - 118: 0x0385, - 127: 0x00A1, - 128: 0x00A6, - 129: 0x00BF, - 168: 0x00BA, - 169: 0x00AA, - 170: 0x00A9, - 171: 0x00AE, - 172: 0x2122, - 173: 0x00A4, - 174: 0x2116, - 534: 0x0386, - 535: 0x0388, - 536: 0x0389, - 537: 0x038A, - 538: 0x03AA, - 540: 0x038C, - 542: 0x038E, - 543: 0x03AB, - 545: 0x038F, - 550: 0x03AC, - 551: 0x03AD, - 552: 0x03AE, - 553: 0x03AF, - 554: 0x03CA, - 555: 0x0390, - 556: 0x03CC, - 557: 0x03C2, - 558: 0x03CD, - 559: 0x03CB, - 560: 0x03B0, - 561: 0x03CE, - 597: 0x0402, - 598: 0x0403, - 599: 0x0404, - 600: 0x0405, - 601: 0x0406, - 602: 0x0407, - 603: 0x0408, - 604: 0x0409, - 605: 0x040A, - 606: 0x040B, - 607: 0x040C, - 608: 0x040E, - 609: 0x040F, - 645: 0x0452, - 646: 0x0453, - 647: 0x0454, - 648: 0x0455, - 649: 0x0456, - 650: 0x0457, - 651: 0x0458, - 652: 0x0459, - 653: 0x045A, - 654: 0x045B, - 655: 0x045C, - 656: 0x045E, - 657: 0x045F, - 752: 0x00C6, - 753: 0x0110, - 755: 0x0126, - 757: 0x0132, - 759: 0x0141, - 760: 0x013F, - 762: 0x014A, - 763: 0x00D8, - 764: 0x0152, - 766: 0x0166, - 767: 0x00DE, - 784: 0x00E6, - 785: 0x0111, - 786: 0x00F0, - 787: 0x0127, - 788: 0x0131, - 789: 0x0133, - 790: 0x0138, - 791: 0x0142, - 792: 0x0140, - 793: 0x0149, - 794: 0x014B, - 795: 0x00F8, - 796: 0x0153, - 797: 0x00DF, - 798: 0x0167, - 799: 0x00FE, - 846: 0x00C1, - 847: 0x00C0, - 848: 0x00C4, - 849: 0x00C2, - 850: 0x0102, - 851: 0x01CD, - 852: 0x0100, - 853: 0x0104, - 854: 0x00C5, - 855: 0x00C3, - 856: 0x0106, - 857: 0x0108, - 858: 0x010C, - 859: 0x00C7, - 860: 0x010A, - 861: 0x010E, - 862: 0x00C9, - 863: 0x00C8, - 864: 0x00CB, - 865: 0x00CA, - 866: 0x011A, - 867: 0x0116, - 868: 0x0112, - 869: 0x0118, - 871: 0x011C, - 872: 0x011E, - 873: 0x0122, - 874: 0x0120, - 875: 0x0124, - 876: 0x00CD, - 877: 0x00CC, - 878: 0x00CF, - 879: 0x00CE, - 880: 0x01CF, - 881: 0x0130, - 882: 0x012A, - 883: 0x012E, - 884: 0x0128, - 885: 0x0134, - 886: 0x0136, - 887: 0x0139, - 888: 0x013D, - 889: 0x013B, - 890: 0x0143, - 891: 0x0147, - 892: 0x0145, - 893: 0x00D1, - 894: 0x00D3, - 895: 0x00D2, - 896: 0x00D6, - 897: 0x00D4, - 898: 0x01D1, - 899: 0x0150, - 900: 0x014C, - 901: 0x00D5, - 902: 0x0154, - 903: 0x0158, - 904: 0x0156, - 905: 0x015A, - 906: 0x015C, - 907: 0x0160, - 908: 0x015E, - 909: 0x0164, - 910: 0x0162, - 911: 0x00DA, - 912: 0x00D9, - 913: 0x00DC, - 914: 0x00DB, - 915: 0x016C, - 916: 0x01D3, - 917: 0x0170, - 918: 0x016A, - 919: 0x0172, - 920: 0x016E, - 921: 0x0168, - 922: 0x01D7, - 923: 0x01DB, - 924: 0x01D9, - 925: 0x01D5, - 926: 0x0174, - 927: 0x00DD, - 928: 0x0178, - 929: 0x0176, - 930: 0x0179, - 931: 0x017D, - 932: 0x017B, - 940: 0x00E1, - 941: 0x00E0, - 942: 0x00E4, - 943: 0x00E2, - 944: 0x0103, - 945: 0x01CE, - 946: 0x0101, - 947: 0x0105, - 948: 0x00E5, - 949: 0x00E3, - 950: 0x0107, - 951: 0x0109, - 952: 0x010D, - 953: 0x00E7, - 954: 0x010B, - 955: 0x010F, - 956: 0x00E9, - 957: 0x00E8, - 958: 0x00EB, - 959: 0x00EA, - 960: 0x011B, - 961: 0x0117, - 962: 0x0113, - 963: 0x0119, - 964: 0x01F5, - 965: 0x011D, - 966: 0x011F, - 968: 0x0121, - 969: 0x0125, - 970: 0x00ED, - 971: 0x00EC, - 972: 0x00EF, - 973: 0x00EE, - 974: 0x01D0, - 976: 0x012B, - 977: 0x012F, - 978: 0x0129, - 979: 0x0135, - 980: 0x0137, - 981: 0x013A, - 982: 0x013E, - 983: 0x013C, - 984: 0x0144, - 985: 0x0148, - 986: 0x0146, - 987: 0x00F1, - 988: 0x00F3, - 989: 0x00F2, - 990: 0x00F6, - 991: 0x00F4, - 992: 0x01D2, - 993: 0x0151, - 994: 0x014D, - 995: 0x00F5, - 996: 0x0155, - 997: 0x0159, - 998: 0x0157, - 999: 0x015B, - 1000: 0x015D, - 1001: 0x0161, - 1002: 0x015F, - 1003: 0x0165, - 1004: 0x0163, - 1005: 0x00FA, - 1006: 0x00F9, - 1007: 0x00FC, - 1008: 0x00FB, - 1009: 0x016D, - 1010: 0x01D4, - 1011: 0x0171, - 1012: 0x016B, - 1013: 0x0173, - 1014: 0x016F, - 1015: 0x0169, - 1016: 0x01D8, - 1017: 0x01DC, - 1018: 0x01DA, - 1019: 0x01D6, - 1020: 0x0175, - 1021: 0x00FD, - 1022: 0x00FF, - 1023: 0x0177, - 1024: 0x017A, - 1025: 0x017E, - 1026: 0x017C, - 1410: 0x4E02, - 1411: 0x4E04, - 1412: 0x4E05, - 1413: 0x4E0C, - 1414: 0x4E12, - 1415: 0x4E1F, - 1416: 0x4E23, - 1417: 0x4E24, - 1418: 0x4E28, - 1419: 0x4E2B, - 1420: 0x4E2E, - 1421: 0x4E2F, - 1422: 0x4E30, - 1423: 0x4E35, - 1424: 0x4E40, - 1425: 0x4E41, - 1426: 0x4E44, - 1427: 0x4E47, - 1428: 0x4E51, - 1429: 0x4E5A, - 1430: 0x4E5C, - 1431: 0x4E63, - 1432: 0x4E68, - 1433: 0x4E69, - 1434: 0x4E74, - 1435: 0x4E75, - 1436: 0x4E79, - 1437: 0x4E7F, - 1438: 0x4E8D, - 1439: 0x4E96, - 1440: 0x4E97, - 1441: 0x4E9D, - 1442: 0x4EAF, - 1443: 0x4EB9, - 1444: 0x4EC3, - 1445: 0x4ED0, - 1446: 0x4EDA, - 1447: 0x4EDB, - 1448: 0x4EE0, - 1449: 0x4EE1, - 1450: 0x4EE2, - 1451: 0x4EE8, - 1452: 0x4EEF, - 1453: 0x4EF1, - 1454: 0x4EF3, - 1455: 0x4EF5, - 1456: 0x4EFD, - 1457: 0x4EFE, - 1458: 0x4EFF, - 1459: 0x4F00, - 1460: 0x4F02, - 1461: 0x4F03, - 1462: 0x4F08, - 1463: 0x4F0B, - 1464: 0x4F0C, - 1465: 0x4F12, - 1466: 0x4F15, - 1467: 0x4F16, - 1468: 0x4F17, - 1469: 0x4F19, - 1470: 0x4F2E, - 1471: 0x4F31, - 1472: 0x4F60, - 1473: 0x4F33, - 1474: 0x4F35, - 1475: 0x4F37, - 1476: 0x4F39, - 1477: 0x4F3B, - 1478: 0x4F3E, - 1479: 0x4F40, - 1480: 0x4F42, - 1481: 0x4F48, - 1482: 0x4F49, - 1483: 0x4F4B, - 1484: 0x4F4C, - 1485: 0x4F52, - 1486: 0x4F54, - 1487: 0x4F56, - 1488: 0x4F58, - 1489: 0x4F5F, - 1490: 0x4F63, - 1491: 0x4F6A, - 1492: 0x4F6C, - 1493: 0x4F6E, - 1494: 0x4F71, - 1495: 0x4F77, - 1496: 0x4F78, - 1497: 0x4F79, - 1498: 0x4F7A, - 1499: 0x4F7D, - 1500: 0x4F7E, - 1501: 0x4F81, - 1502: 0x4F82, - 1503: 0x4F84, - 1504: 0x4F85, - 1505: 0x4F89, - 1506: 0x4F8A, - 1507: 0x4F8C, - 1508: 0x4F8E, - 1509: 0x4F90, - 1510: 0x4F92, - 1511: 0x4F93, - 1512: 0x4F94, - 1513: 0x4F97, - 1514: 0x4F99, - 1515: 0x4F9A, - 1516: 0x4F9E, - 1517: 0x4F9F, - 1518: 0x4FB2, - 1519: 0x4FB7, - 1520: 0x4FB9, - 1521: 0x4FBB, - 1522: 0x4FBC, - 1523: 0x4FBD, - 1524: 0x4FBE, - 1525: 0x4FC0, - 1526: 0x4FC1, - 1527: 0x4FC5, - 1528: 0x4FC6, - 1529: 0x4FC8, - 1530: 0x4FC9, - 1531: 0x4FCB, - 1532: 0x4FCC, - 1533: 0x4FCD, - 1534: 0x4FCF, - 1535: 0x4FD2, - 1536: 0x4FDC, - 1537: 0x4FE0, - 1538: 0x4FE2, - 1539: 0x4FF0, - 1540: 0x4FF2, - 1541: 0x4FFC, - 1542: 0x4FFD, - 1543: 0x4FFF, - 1544: 0x5000, - 1545: 0x5001, - 1546: 0x5004, - 1547: 0x5007, - 1548: 0x500A, - 1549: 0x500C, - 1550: 0x500E, - 1551: 0x5010, - 1552: 0x5013, - 1553: 0x5017, - 1554: 0x5018, - 1555: 0x501B, - 1556: 0x501C, - 1557: 0x501D, - 1558: 0x501E, - 1559: 0x5022, - 1560: 0x5027, - 1561: 0x502E, - 1562: 0x5030, - 1563: 0x5032, - 1564: 0x5033, - 1565: 0x5035, - 1566: 0x5040, - 1567: 0x5041, - 1568: 0x5042, - 1569: 0x5045, - 1570: 0x5046, - 1571: 0x504A, - 1572: 0x504C, - 1573: 0x504E, - 1574: 0x5051, - 1575: 0x5052, - 1576: 0x5053, - 1577: 0x5057, - 1578: 0x5059, - 1579: 0x505F, - 1580: 0x5060, - 1581: 0x5062, - 1582: 0x5063, - 1583: 0x5066, - 1584: 0x5067, - 1585: 0x506A, - 1586: 0x506D, - 1587: 0x5070, - 1588: 0x5071, - 1589: 0x503B, - 1590: 0x5081, - 1591: 0x5083, - 1592: 0x5084, - 1593: 0x5086, - 1594: 0x508A, - 1595: 0x508E, - 1596: 0x508F, - 1597: 0x5090, - 1598: 0x5092, - 1599: 0x5093, - 1600: 0x5094, - 1601: 0x5096, - 1602: 0x509B, - 1603: 0x509C, - 1604: 0x509E, - 1605: 0x509F, - 1606: 0x50A0, - 1607: 0x50A1, - 1608: 0x50A2, - 1609: 0x50AA, - 1610: 0x50AF, - 1611: 0x50B0, - 1612: 0x50B9, - 1613: 0x50BA, - 1614: 0x50BD, - 1615: 0x50C0, - 1616: 0x50C3, - 1617: 0x50C4, - 1618: 0x50C7, - 1619: 0x50CC, - 1620: 0x50CE, - 1621: 0x50D0, - 1622: 0x50D3, - 1623: 0x50D4, - 1624: 0x50D8, - 1625: 0x50DC, - 1626: 0x50DD, - 1627: 0x50DF, - 1628: 0x50E2, - 1629: 0x50E4, - 1630: 0x50E6, - 1631: 0x50E8, - 1632: 0x50E9, - 1633: 0x50EF, - 1634: 0x50F1, - 1635: 0x50F6, - 1636: 0x50FA, - 1637: 0x50FE, - 1638: 0x5103, - 1639: 0x5106, - 1640: 0x5107, - 1641: 0x5108, - 1642: 0x510B, - 1643: 0x510C, - 1644: 0x510D, - 1645: 0x510E, - 1646: 0x50F2, - 1647: 0x5110, - 1648: 0x5117, - 1649: 0x5119, - 1650: 0x511B, - 1651: 0x511C, - 1652: 0x511D, - 1653: 0x511E, - 1654: 0x5123, - 1655: 0x5127, - 1656: 0x5128, - 1657: 0x512C, - 1658: 0x512D, - 1659: 0x512F, - 1660: 0x5131, - 1661: 0x5133, - 1662: 0x5134, - 1663: 0x5135, - 1664: 0x5138, - 1665: 0x5139, - 1666: 0x5142, - 1667: 0x514A, - 1668: 0x514F, - 1669: 0x5153, - 1670: 0x5155, - 1671: 0x5157, - 1672: 0x5158, - 1673: 0x515F, - 1674: 0x5164, - 1675: 0x5166, - 1676: 0x517E, - 1677: 0x5183, - 1678: 0x5184, - 1679: 0x518B, - 1680: 0x518E, - 1681: 0x5198, - 1682: 0x519D, - 1683: 0x51A1, - 1684: 0x51A3, - 1685: 0x51AD, - 1686: 0x51B8, - 1687: 0x51BA, - 1688: 0x51BC, - 1689: 0x51BE, - 1690: 0x51BF, - 1691: 0x51C2, - 1692: 0x51C8, - 1693: 0x51CF, - 1694: 0x51D1, - 1695: 0x51D2, - 1696: 0x51D3, - 1697: 0x51D5, - 1698: 0x51D8, - 1699: 0x51DE, - 1700: 0x51E2, - 1701: 0x51E5, - 1702: 0x51EE, - 1703: 0x51F2, - 1704: 0x51F3, - 1705: 0x51F4, - 1706: 0x51F7, - 1707: 0x5201, - 1708: 0x5202, - 1709: 0x5205, - 1710: 0x5212, - 1711: 0x5213, - 1712: 0x5215, - 1713: 0x5216, - 1714: 0x5218, - 1715: 0x5222, - 1716: 0x5228, - 1717: 0x5231, - 1718: 0x5232, - 1719: 0x5235, - 1720: 0x523C, - 1721: 0x5245, - 1722: 0x5249, - 1723: 0x5255, - 1724: 0x5257, - 1725: 0x5258, - 1726: 0x525A, - 1727: 0x525C, - 1728: 0x525F, - 1729: 0x5260, - 1730: 0x5261, - 1731: 0x5266, - 1732: 0x526E, - 1733: 0x5277, - 1734: 0x5278, - 1735: 0x5279, - 1736: 0x5280, - 1737: 0x5282, - 1738: 0x5285, - 1739: 0x528A, - 1740: 0x528C, - 1741: 0x5293, - 1742: 0x5295, - 1743: 0x5296, - 1744: 0x5297, - 1745: 0x5298, - 1746: 0x529A, - 1747: 0x529C, - 1748: 0x52A4, - 1749: 0x52A5, - 1750: 0x52A6, - 1751: 0x52A7, - 1752: 0x52AF, - 1753: 0x52B0, - 1754: 0x52B6, - 1755: 0x52B7, - 1756: 0x52B8, - 1757: 0x52BA, - 1758: 0x52BB, - 1759: 0x52BD, - 1760: 0x52C0, - 1761: 0x52C4, - 1762: 0x52C6, - 1763: 0x52C8, - 1764: 0x52CC, - 1765: 0x52CF, - 1766: 0x52D1, - 1767: 0x52D4, - 1768: 0x52D6, - 1769: 0x52DB, - 1770: 0x52DC, - 1771: 0x52E1, - 1772: 0x52E5, - 1773: 0x52E8, - 1774: 0x52E9, - 1775: 0x52EA, - 1776: 0x52EC, - 1777: 0x52F0, - 1778: 0x52F1, - 1779: 0x52F4, - 1780: 0x52F6, - 1781: 0x52F7, - 1782: 0x5300, - 1783: 0x5303, - 1784: 0x530A, - 1785: 0x530B, - 1786: 0x530C, - 1787: 0x5311, - 1788: 0x5313, - 1789: 0x5318, - 1790: 0x531B, - 1791: 0x531C, - 1792: 0x531E, - 1793: 0x531F, - 1794: 0x5325, - 1795: 0x5327, - 1796: 0x5328, - 1797: 0x5329, - 1798: 0x532B, - 1799: 0x532C, - 1800: 0x532D, - 1801: 0x5330, - 1802: 0x5332, - 1803: 0x5335, - 1804: 0x533C, - 1805: 0x533D, - 1806: 0x533E, - 1807: 0x5342, - 1808: 0x534C, - 1809: 0x534B, - 1810: 0x5359, - 1811: 0x535B, - 1812: 0x5361, - 1813: 0x5363, - 1814: 0x5365, - 1815: 0x536C, - 1816: 0x536D, - 1817: 0x5372, - 1818: 0x5379, - 1819: 0x537E, - 1820: 0x5383, - 1821: 0x5387, - 1822: 0x5388, - 1823: 0x538E, - 1824: 0x5393, - 1825: 0x5394, - 1826: 0x5399, - 1827: 0x539D, - 1828: 0x53A1, - 1829: 0x53A4, - 1830: 0x53AA, - 1831: 0x53AB, - 1832: 0x53AF, - 1833: 0x53B2, - 1834: 0x53B4, - 1835: 0x53B5, - 1836: 0x53B7, - 1837: 0x53B8, - 1838: 0x53BA, - 1839: 0x53BD, - 1840: 0x53C0, - 1841: 0x53C5, - 1842: 0x53CF, - 1843: 0x53D2, - 1844: 0x53D3, - 1845: 0x53D5, - 1846: 0x53DA, - 1847: 0x53DD, - 1848: 0x53DE, - 1849: 0x53E0, - 1850: 0x53E6, - 1851: 0x53E7, - 1852: 0x53F5, - 1853: 0x5402, - 1854: 0x5413, - 1855: 0x541A, - 1856: 0x5421, - 1857: 0x5427, - 1858: 0x5428, - 1859: 0x542A, - 1860: 0x542F, - 1861: 0x5431, - 1862: 0x5434, - 1863: 0x5435, - 1864: 0x5443, - 1865: 0x5444, - 1866: 0x5447, - 1867: 0x544D, - 1868: 0x544F, - 1869: 0x545E, - 1870: 0x5462, - 1871: 0x5464, - 1872: 0x5466, - 1873: 0x5467, - 1874: 0x5469, - 1875: 0x546B, - 1876: 0x546D, - 1877: 0x546E, - 1878: 0x5474, - 1879: 0x547F, - 1880: 0x5481, - 1881: 0x5483, - 1882: 0x5485, - 1883: 0x5488, - 1884: 0x5489, - 1885: 0x548D, - 1886: 0x5491, - 1887: 0x5495, - 1888: 0x5496, - 1889: 0x549C, - 1890: 0x549F, - 1891: 0x54A1, - 1892: 0x54A6, - 1893: 0x54A7, - 1894: 0x54A9, - 1895: 0x54AA, - 1896: 0x54AD, - 1897: 0x54AE, - 1898: 0x54B1, - 1899: 0x54B7, - 1900: 0x54B9, - 1901: 0x54BA, - 1902: 0x54BB, - 1903: 0x54BF, - 1904: 0x54C6, - 1905: 0x54CA, - 1906: 0x54CD, - 1907: 0x54CE, - 1908: 0x54E0, - 1909: 0x54EA, - 1910: 0x54EC, - 1911: 0x54EF, - 1912: 0x54F6, - 1913: 0x54FC, - 1914: 0x54FE, - 1915: 0x54FF, - 1916: 0x5500, - 1917: 0x5501, - 1918: 0x5505, - 1919: 0x5508, - 1920: 0x5509, - 1921: 0x550C, - 1922: 0x550D, - 1923: 0x550E, - 1924: 0x5515, - 1925: 0x552A, - 1926: 0x552B, - 1927: 0x5532, - 1928: 0x5535, - 1929: 0x5536, - 1930: 0x553B, - 1931: 0x553C, - 1932: 0x553D, - 1933: 0x5541, - 1934: 0x5547, - 1935: 0x5549, - 1936: 0x554A, - 1937: 0x554D, - 1938: 0x5550, - 1939: 0x5551, - 1940: 0x5558, - 1941: 0x555A, - 1942: 0x555B, - 1943: 0x555E, - 1944: 0x5560, - 1945: 0x5561, - 1946: 0x5564, - 1947: 0x5566, - 1948: 0x557F, - 1949: 0x5581, - 1950: 0x5582, - 1951: 0x5586, - 1952: 0x5588, - 1953: 0x558E, - 1954: 0x558F, - 1955: 0x5591, - 1956: 0x5592, - 1957: 0x5593, - 1958: 0x5594, - 1959: 0x5597, - 1960: 0x55A3, - 1961: 0x55A4, - 1962: 0x55AD, - 1963: 0x55B2, - 1964: 0x55BF, - 1965: 0x55C1, - 1966: 0x55C3, - 1967: 0x55C6, - 1968: 0x55C9, - 1969: 0x55CB, - 1970: 0x55CC, - 1971: 0x55CE, - 1972: 0x55D1, - 1973: 0x55D2, - 1974: 0x55D3, - 1975: 0x55D7, - 1976: 0x55D8, - 1977: 0x55DB, - 1978: 0x55DE, - 1979: 0x55E2, - 1980: 0x55E9, - 1981: 0x55F6, - 1982: 0x55FF, - 1983: 0x5605, - 1984: 0x5608, - 1985: 0x560A, - 1986: 0x560D, - 1987: 0x560E, - 1988: 0x560F, - 1989: 0x5610, - 1990: 0x5611, - 1991: 0x5612, - 1992: 0x5619, - 1993: 0x562C, - 1994: 0x5630, - 1995: 0x5633, - 1996: 0x5635, - 1997: 0x5637, - 1998: 0x5639, - 1999: 0x563B, - 2000: 0x563C, - 2001: 0x563D, - 2002: 0x563F, - 2003: 0x5640, - 2004: 0x5641, - 2005: 0x5643, - 2006: 0x5644, - 2007: 0x5646, - 2008: 0x5649, - 2009: 0x564B, - 2010: 0x564D, - 2011: 0x564F, - 2012: 0x5654, - 2013: 0x565E, - 2014: 0x5660, - 2015: 0x5661, - 2016: 0x5662, - 2017: 0x5663, - 2018: 0x5666, - 2019: 0x5669, - 2020: 0x566D, - 2021: 0x566F, - 2022: 0x5671, - 2023: 0x5672, - 2024: 0x5675, - 2025: 0x5684, - 2026: 0x5685, - 2027: 0x5688, - 2028: 0x568B, - 2029: 0x568C, - 2030: 0x5695, - 2031: 0x5699, - 2032: 0x569A, - 2033: 0x569D, - 2034: 0x569E, - 2035: 0x569F, - 2036: 0x56A6, - 2037: 0x56A7, - 2038: 0x56A8, - 2039: 0x56A9, - 2040: 0x56AB, - 2041: 0x56AC, - 2042: 0x56AD, - 2043: 0x56B1, - 2044: 0x56B3, - 2045: 0x56B7, - 2046: 0x56BE, - 2047: 0x56C5, - 2048: 0x56C9, - 2049: 0x56CA, - 2050: 0x56CB, - 2051: 0x56CF, - 2052: 0x56D0, - 2053: 0x56CC, - 2054: 0x56CD, - 2055: 0x56D9, - 2056: 0x56DC, - 2057: 0x56DD, - 2058: 0x56DF, - 2059: 0x56E1, - 2060: 0x56E4, - 2061: 0x56E5, - 2062: 0x56E6, - 2063: 0x56E7, - 2064: 0x56E8, - 2065: 0x56F1, - 2066: 0x56EB, - 2067: 0x56ED, - 2068: 0x56F6, - 2069: 0x56F7, - 2070: 0x5701, - 2071: 0x5702, - 2072: 0x5707, - 2073: 0x570A, - 2074: 0x570C, - 2075: 0x5711, - 2076: 0x5715, - 2077: 0x571A, - 2078: 0x571B, - 2079: 0x571D, - 2080: 0x5720, - 2081: 0x5722, - 2082: 0x5723, - 2083: 0x5724, - 2084: 0x5725, - 2085: 0x5729, - 2086: 0x572A, - 2087: 0x572C, - 2088: 0x572E, - 2089: 0x572F, - 2090: 0x5733, - 2091: 0x5734, - 2092: 0x573D, - 2093: 0x573E, - 2094: 0x573F, - 2095: 0x5745, - 2096: 0x5746, - 2097: 0x574C, - 2098: 0x574D, - 2099: 0x5752, - 2100: 0x5762, - 2101: 0x5765, - 2102: 0x5767, - 2103: 0x5768, - 2104: 0x576B, - 2105: 0x576D, - 2106: 0x576E, - 2107: 0x576F, - 2108: 0x5770, - 2109: 0x5771, - 2110: 0x5773, - 2111: 0x5774, - 2112: 0x5775, - 2113: 0x5777, - 2114: 0x5779, - 2115: 0x577A, - 2116: 0x577B, - 2117: 0x577C, - 2118: 0x577E, - 2119: 0x5781, - 2120: 0x5783, - 2121: 0x578C, - 2122: 0x5794, - 2123: 0x5797, - 2124: 0x5799, - 2125: 0x579A, - 2126: 0x579C, - 2127: 0x579D, - 2128: 0x579E, - 2129: 0x579F, - 2130: 0x57A1, - 2131: 0x5795, - 2132: 0x57A7, - 2133: 0x57A8, - 2134: 0x57A9, - 2135: 0x57AC, - 2136: 0x57B8, - 2137: 0x57BD, - 2138: 0x57C7, - 2139: 0x57C8, - 2140: 0x57CC, - 2141: 0x57CF, - 2142: 0x57D5, - 2143: 0x57DD, - 2144: 0x57DE, - 2145: 0x57E4, - 2146: 0x57E6, - 2147: 0x57E7, - 2148: 0x57E9, - 2149: 0x57ED, - 2150: 0x57F0, - 2151: 0x57F5, - 2152: 0x57F6, - 2153: 0x57F8, - 2154: 0x57FD, - 2155: 0x57FE, - 2156: 0x57FF, - 2157: 0x5803, - 2158: 0x5804, - 2159: 0x5808, - 2160: 0x5809, - 2161: 0x57E1, - 2162: 0x580C, - 2163: 0x580D, - 2164: 0x581B, - 2165: 0x581E, - 2166: 0x581F, - 2167: 0x5820, - 2168: 0x5826, - 2169: 0x5827, - 2170: 0x582D, - 2171: 0x5832, - 2172: 0x5839, - 2173: 0x583F, - 2174: 0x5849, - 2175: 0x584C, - 2176: 0x584D, - 2177: 0x584F, - 2178: 0x5850, - 2179: 0x5855, - 2180: 0x585F, - 2181: 0x5861, - 2182: 0x5864, - 2183: 0x5867, - 2184: 0x5868, - 2185: 0x5878, - 2186: 0x587C, - 2187: 0x587F, - 2188: 0x5880, - 2189: 0x5881, - 2190: 0x5887, - 2191: 0x5888, - 2192: 0x5889, - 2193: 0x588A, - 2194: 0x588C, - 2195: 0x588D, - 2196: 0x588F, - 2197: 0x5890, - 2198: 0x5894, - 2199: 0x5896, - 2200: 0x589D, - 2201: 0x58A0, - 2202: 0x58A1, - 2203: 0x58A2, - 2204: 0x58A6, - 2205: 0x58A9, - 2206: 0x58B1, - 2207: 0x58B2, - 2208: 0x58C4, - 2209: 0x58BC, - 2210: 0x58C2, - 2211: 0x58C8, - 2212: 0x58CD, - 2213: 0x58CE, - 2214: 0x58D0, - 2215: 0x58D2, - 2216: 0x58D4, - 2217: 0x58D6, - 2218: 0x58DA, - 2219: 0x58DD, - 2220: 0x58E1, - 2221: 0x58E2, - 2222: 0x58E9, - 2223: 0x58F3, - 2224: 0x5905, - 2225: 0x5906, - 2226: 0x590B, - 2227: 0x590C, - 2228: 0x5912, - 2229: 0x5913, - 2230: 0x5914, - 2231: 0x8641, - 2232: 0x591D, - 2233: 0x5921, - 2234: 0x5923, - 2235: 0x5924, - 2236: 0x5928, - 2237: 0x592F, - 2238: 0x5930, - 2239: 0x5933, - 2240: 0x5935, - 2241: 0x5936, - 2242: 0x593F, - 2243: 0x5943, - 2244: 0x5946, - 2245: 0x5952, - 2246: 0x5953, - 2247: 0x5959, - 2248: 0x595B, - 2249: 0x595D, - 2250: 0x595E, - 2251: 0x595F, - 2252: 0x5961, - 2253: 0x5963, - 2254: 0x596B, - 2255: 0x596D, - 2256: 0x596F, - 2257: 0x5972, - 2258: 0x5975, - 2259: 0x5976, - 2260: 0x5979, - 2261: 0x597B, - 2262: 0x597C, - 2263: 0x598B, - 2264: 0x598C, - 2265: 0x598E, - 2266: 0x5992, - 2267: 0x5995, - 2268: 0x5997, - 2269: 0x599F, - 2270: 0x59A4, - 2271: 0x59A7, - 2272: 0x59AD, - 2273: 0x59AE, - 2274: 0x59AF, - 2275: 0x59B0, - 2276: 0x59B3, - 2277: 0x59B7, - 2278: 0x59BA, - 2279: 0x59BC, - 2280: 0x59C1, - 2281: 0x59C3, - 2282: 0x59C4, - 2283: 0x59C8, - 2284: 0x59CA, - 2285: 0x59CD, - 2286: 0x59D2, - 2287: 0x59DD, - 2288: 0x59DE, - 2289: 0x59DF, - 2290: 0x59E3, - 2291: 0x59E4, - 2292: 0x59E7, - 2293: 0x59EE, - 2294: 0x59EF, - 2295: 0x59F1, - 2296: 0x59F2, - 2297: 0x59F4, - 2298: 0x59F7, - 2299: 0x5A00, - 2300: 0x5A04, - 2301: 0x5A0C, - 2302: 0x5A0D, - 2303: 0x5A0E, - 2304: 0x5A12, - 2305: 0x5A13, - 2306: 0x5A1E, - 2307: 0x5A23, - 2308: 0x5A24, - 2309: 0x5A27, - 2310: 0x5A28, - 2311: 0x5A2A, - 2312: 0x5A2D, - 2313: 0x5A30, - 2314: 0x5A44, - 2315: 0x5A45, - 2316: 0x5A47, - 2317: 0x5A48, - 2318: 0x5A4C, - 2319: 0x5A50, - 2320: 0x5A55, - 2321: 0x5A5E, - 2322: 0x5A63, - 2323: 0x5A65, - 2324: 0x5A67, - 2325: 0x5A6D, - 2326: 0x5A77, - 2327: 0x5A7A, - 2328: 0x5A7B, - 2329: 0x5A7E, - 2330: 0x5A8B, - 2331: 0x5A90, - 2332: 0x5A93, - 2333: 0x5A96, - 2334: 0x5A99, - 2335: 0x5A9C, - 2336: 0x5A9E, - 2337: 0x5A9F, - 2338: 0x5AA0, - 2339: 0x5AA2, - 2340: 0x5AA7, - 2341: 0x5AAC, - 2342: 0x5AB1, - 2343: 0x5AB2, - 2344: 0x5AB3, - 2345: 0x5AB5, - 2346: 0x5AB8, - 2347: 0x5ABA, - 2348: 0x5ABB, - 2349: 0x5ABF, - 2350: 0x5AC4, - 2351: 0x5AC6, - 2352: 0x5AC8, - 2353: 0x5ACF, - 2354: 0x5ADA, - 2355: 0x5ADC, - 2356: 0x5AE0, - 2357: 0x5AE5, - 2358: 0x5AEA, - 2359: 0x5AEE, - 2360: 0x5AF5, - 2361: 0x5AF6, - 2362: 0x5AFD, - 2363: 0x5B00, - 2364: 0x5B01, - 2365: 0x5B08, - 2366: 0x5B17, - 2367: 0x5B34, - 2368: 0x5B19, - 2369: 0x5B1B, - 2370: 0x5B1D, - 2371: 0x5B21, - 2372: 0x5B25, - 2373: 0x5B2D, - 2374: 0x5B38, - 2375: 0x5B41, - 2376: 0x5B4B, - 2377: 0x5B4C, - 2378: 0x5B52, - 2379: 0x5B56, - 2380: 0x5B5E, - 2381: 0x5B68, - 2382: 0x5B6E, - 2383: 0x5B6F, - 2384: 0x5B7C, - 2385: 0x5B7D, - 2386: 0x5B7E, - 2387: 0x5B7F, - 2388: 0x5B81, - 2389: 0x5B84, - 2390: 0x5B86, - 2391: 0x5B8A, - 2392: 0x5B8E, - 2393: 0x5B90, - 2394: 0x5B91, - 2395: 0x5B93, - 2396: 0x5B94, - 2397: 0x5B96, - 2398: 0x5BA8, - 2399: 0x5BA9, - 2400: 0x5BAC, - 2401: 0x5BAD, - 2402: 0x5BAF, - 2403: 0x5BB1, - 2404: 0x5BB2, - 2405: 0x5BB7, - 2406: 0x5BBA, - 2407: 0x5BBC, - 2408: 0x5BC0, - 2409: 0x5BC1, - 2410: 0x5BCD, - 2411: 0x5BCF, - 2412: 0x5BD6, - 2413: 0x5BD7, - 2414: 0x5BD8, - 2415: 0x5BD9, - 2416: 0x5BDA, - 2417: 0x5BE0, - 2418: 0x5BEF, - 2419: 0x5BF1, - 2420: 0x5BF4, - 2421: 0x5BFD, - 2422: 0x5C0C, - 2423: 0x5C17, - 2424: 0x5C1E, - 2425: 0x5C1F, - 2426: 0x5C23, - 2427: 0x5C26, - 2428: 0x5C29, - 2429: 0x5C2B, - 2430: 0x5C2C, - 2431: 0x5C2E, - 2432: 0x5C30, - 2433: 0x5C32, - 2434: 0x5C35, - 2435: 0x5C36, - 2436: 0x5C59, - 2437: 0x5C5A, - 2438: 0x5C5C, - 2439: 0x5C62, - 2440: 0x5C63, - 2441: 0x5C67, - 2442: 0x5C68, - 2443: 0x5C69, - 2444: 0x5C6D, - 2445: 0x5C70, - 2446: 0x5C74, - 2447: 0x5C75, - 2448: 0x5C7A, - 2449: 0x5C7B, - 2450: 0x5C7C, - 2451: 0x5C7D, - 2452: 0x5C87, - 2453: 0x5C88, - 2454: 0x5C8A, - 2455: 0x5C8F, - 2456: 0x5C92, - 2457: 0x5C9D, - 2458: 0x5C9F, - 2459: 0x5CA0, - 2460: 0x5CA2, - 2461: 0x5CA3, - 2462: 0x5CA6, - 2463: 0x5CAA, - 2464: 0x5CB2, - 2465: 0x5CB4, - 2466: 0x5CB5, - 2467: 0x5CBA, - 2468: 0x5CC9, - 2469: 0x5CCB, - 2470: 0x5CD2, - 2471: 0x5CDD, - 2472: 0x5CD7, - 2473: 0x5CEE, - 2474: 0x5CF1, - 2475: 0x5CF2, - 2476: 0x5CF4, - 2477: 0x5D01, - 2478: 0x5D06, - 2479: 0x5D0D, - 2480: 0x5D12, - 2481: 0x5D2B, - 2482: 0x5D23, - 2483: 0x5D24, - 2484: 0x5D26, - 2485: 0x5D27, - 2486: 0x5D31, - 2487: 0x5D34, - 2488: 0x5D39, - 2489: 0x5D3D, - 2490: 0x5D3F, - 2491: 0x5D42, - 2492: 0x5D43, - 2493: 0x5D46, - 2494: 0x5D48, - 2495: 0x5D55, - 2496: 0x5D51, - 2497: 0x5D59, - 2498: 0x5D4A, - 2499: 0x5D5F, - 2500: 0x5D60, - 2501: 0x5D61, - 2502: 0x5D62, - 2503: 0x5D64, - 2504: 0x5D6A, - 2505: 0x5D6D, - 2506: 0x5D70, - 2507: 0x5D79, - 2508: 0x5D7A, - 2509: 0x5D7E, - 2510: 0x5D7F, - 2511: 0x5D81, - 2512: 0x5D83, - 2513: 0x5D88, - 2514: 0x5D8A, - 2515: 0x5D92, - 2516: 0x5D93, - 2517: 0x5D94, - 2518: 0x5D95, - 2519: 0x5D99, - 2520: 0x5D9B, - 2521: 0x5D9F, - 2522: 0x5DA0, - 2523: 0x5DA7, - 2524: 0x5DAB, - 2525: 0x5DB0, - 2526: 0x5DB4, - 2527: 0x5DB8, - 2528: 0x5DB9, - 2529: 0x5DC3, - 2530: 0x5DC7, - 2531: 0x5DCB, - 2532: 0x5DD0, - 2533: 0x5DCE, - 2534: 0x5DD8, - 2535: 0x5DD9, - 2536: 0x5DE0, - 2537: 0x5DE4, - 2538: 0x5DE9, - 2539: 0x5DF8, - 2540: 0x5DF9, - 2541: 0x5E00, - 2542: 0x5E07, - 2543: 0x5E0D, - 2544: 0x5E12, - 2545: 0x5E14, - 2546: 0x5E15, - 2547: 0x5E18, - 2548: 0x5E1F, - 2549: 0x5E20, - 2550: 0x5E2E, - 2551: 0x5E28, - 2552: 0x5E32, - 2553: 0x5E35, - 2554: 0x5E3E, - 2555: 0x5E4B, - 2556: 0x5E50, - 2557: 0x5E49, - 2558: 0x5E51, - 2559: 0x5E56, - 2560: 0x5E58, - 2561: 0x5E5B, - 2562: 0x5E5C, - 2563: 0x5E5E, - 2564: 0x5E68, - 2565: 0x5E6A, - 2566: 0x5E6B, - 2567: 0x5E6C, - 2568: 0x5E6D, - 2569: 0x5E6E, - 2570: 0x5E70, - 2571: 0x5E80, - 2572: 0x5E8B, - 2573: 0x5E8E, - 2574: 0x5EA2, - 2575: 0x5EA4, - 2576: 0x5EA5, - 2577: 0x5EA8, - 2578: 0x5EAA, - 2579: 0x5EAC, - 2580: 0x5EB1, - 2581: 0x5EB3, - 2582: 0x5EBD, - 2583: 0x5EBE, - 2584: 0x5EBF, - 2585: 0x5EC6, - 2586: 0x5ECC, - 2587: 0x5ECB, - 2588: 0x5ECE, - 2589: 0x5ED1, - 2590: 0x5ED2, - 2591: 0x5ED4, - 2592: 0x5ED5, - 2593: 0x5EDC, - 2594: 0x5EDE, - 2595: 0x5EE5, - 2596: 0x5EEB, - 2597: 0x5F02, - 2598: 0x5F06, - 2599: 0x5F07, - 2600: 0x5F08, - 2601: 0x5F0E, - 2602: 0x5F19, - 2603: 0x5F1C, - 2604: 0x5F1D, - 2605: 0x5F21, - 2606: 0x5F22, - 2607: 0x5F23, - 2608: 0x5F24, - 2609: 0x5F28, - 2610: 0x5F2B, - 2611: 0x5F2C, - 2612: 0x5F2E, - 2613: 0x5F30, - 2614: 0x5F34, - 2615: 0x5F36, - 2616: 0x5F3B, - 2617: 0x5F3D, - 2618: 0x5F3F, - 2619: 0x5F40, - 2620: 0x5F44, - 2621: 0x5F45, - 2622: 0x5F47, - 2623: 0x5F4D, - 2624: 0x5F50, - 2625: 0x5F54, - 2626: 0x5F58, - 2627: 0x5F5B, - 2628: 0x5F60, - 2629: 0x5F63, - 2630: 0x5F64, - 2631: 0x5F67, - 2632: 0x5F6F, - 2633: 0x5F72, - 2634: 0x5F74, - 2635: 0x5F75, - 2636: 0x5F78, - 2637: 0x5F7A, - 2638: 0x5F7D, - 2639: 0x5F7E, - 2640: 0x5F89, - 2641: 0x5F8D, - 2642: 0x5F8F, - 2643: 0x5F96, - 2644: 0x5F9C, - 2645: 0x5F9D, - 2646: 0x5FA2, - 2647: 0x5FA7, - 2648: 0x5FAB, - 2649: 0x5FA4, - 2650: 0x5FAC, - 2651: 0x5FAF, - 2652: 0x5FB0, - 2653: 0x5FB1, - 2654: 0x5FB8, - 2655: 0x5FC4, - 2656: 0x5FC7, - 2657: 0x5FC8, - 2658: 0x5FC9, - 2659: 0x5FCB, - 2660: 0x5FD0, - 2661: 0x5FD1, - 2662: 0x5FD2, - 2663: 0x5FD3, - 2664: 0x5FD4, - 2665: 0x5FDE, - 2666: 0x5FE1, - 2667: 0x5FE2, - 2668: 0x5FE8, - 2669: 0x5FE9, - 2670: 0x5FEA, - 2671: 0x5FEC, - 2672: 0x5FED, - 2673: 0x5FEE, - 2674: 0x5FEF, - 2675: 0x5FF2, - 2676: 0x5FF3, - 2677: 0x5FF6, - 2678: 0x5FFA, - 2679: 0x5FFC, - 2680: 0x6007, - 2681: 0x600A, - 2682: 0x600D, - 2683: 0x6013, - 2684: 0x6014, - 2685: 0x6017, - 2686: 0x6018, - 2687: 0x601A, - 2688: 0x601F, - 2689: 0x6024, - 2690: 0x602D, - 2691: 0x6033, - 2692: 0x6035, - 2693: 0x6040, - 2694: 0x6047, - 2695: 0x6048, - 2696: 0x6049, - 2697: 0x604C, - 2698: 0x6051, - 2699: 0x6054, - 2700: 0x6056, - 2701: 0x6057, - 2702: 0x605D, - 2703: 0x6061, - 2704: 0x6067, - 2705: 0x6071, - 2706: 0x607E, - 2707: 0x607F, - 2708: 0x6082, - 2709: 0x6086, - 2710: 0x6088, - 2711: 0x608A, - 2712: 0x608E, - 2713: 0x6091, - 2714: 0x6093, - 2715: 0x6095, - 2716: 0x6098, - 2717: 0x609D, - 2718: 0x609E, - 2719: 0x60A2, - 2720: 0x60A4, - 2721: 0x60A5, - 2722: 0x60A8, - 2723: 0x60B0, - 2724: 0x60B1, - 2725: 0x60B7, - 2726: 0x60BB, - 2727: 0x60BE, - 2728: 0x60C2, - 2729: 0x60C4, - 2730: 0x60C8, - 2731: 0x60C9, - 2732: 0x60CA, - 2733: 0x60CB, - 2734: 0x60CE, - 2735: 0x60CF, - 2736: 0x60D4, - 2737: 0x60D5, - 2738: 0x60D9, - 2739: 0x60DB, - 2740: 0x60DD, - 2741: 0x60DE, - 2742: 0x60E2, - 2743: 0x60E5, - 2744: 0x60F2, - 2745: 0x60F5, - 2746: 0x60F8, - 2747: 0x60FC, - 2748: 0x60FD, - 2749: 0x6102, - 2750: 0x6107, - 2751: 0x610A, - 2752: 0x610C, - 2753: 0x6110, - 2754: 0x6111, - 2755: 0x6112, - 2756: 0x6113, - 2757: 0x6114, - 2758: 0x6116, - 2759: 0x6117, - 2760: 0x6119, - 2761: 0x611C, - 2762: 0x611E, - 2763: 0x6122, - 2764: 0x612A, - 2765: 0x612B, - 2766: 0x6130, - 2767: 0x6131, - 2768: 0x6135, - 2769: 0x6136, - 2770: 0x6137, - 2771: 0x6139, - 2772: 0x6141, - 2773: 0x6145, - 2774: 0x6146, - 2775: 0x6149, - 2776: 0x615E, - 2777: 0x6160, - 2778: 0x616C, - 2779: 0x6172, - 2780: 0x6178, - 2781: 0x617B, - 2782: 0x617C, - 2783: 0x617F, - 2784: 0x6180, - 2785: 0x6181, - 2786: 0x6183, - 2787: 0x6184, - 2788: 0x618B, - 2789: 0x618D, - 2790: 0x6192, - 2791: 0x6193, - 2792: 0x6197, - 2793: 0x6198, - 2794: 0x619C, - 2795: 0x619D, - 2796: 0x619F, - 2797: 0x61A0, - 2798: 0x61A5, - 2799: 0x61A8, - 2800: 0x61AA, - 2801: 0x61AD, - 2802: 0x61B8, - 2803: 0x61B9, - 2804: 0x61BC, - 2805: 0x61C0, - 2806: 0x61C1, - 2807: 0x61C2, - 2808: 0x61CE, - 2809: 0x61CF, - 2810: 0x61D5, - 2811: 0x61DC, - 2812: 0x61DD, - 2813: 0x61DE, - 2814: 0x61DF, - 2815: 0x61E1, - 2816: 0x61E2, - 2817: 0x61E7, - 2818: 0x61E9, - 2819: 0x61E5, - 2820: 0x61EC, - 2821: 0x61ED, - 2822: 0x61EF, - 2823: 0x6201, - 2824: 0x6203, - 2825: 0x6204, - 2826: 0x6207, - 2827: 0x6213, - 2828: 0x6215, - 2829: 0x621C, - 2830: 0x6220, - 2831: 0x6222, - 2832: 0x6223, - 2833: 0x6227, - 2834: 0x6229, - 2835: 0x622B, - 2836: 0x6239, - 2837: 0x623D, - 2838: 0x6242, - 2839: 0x6243, - 2840: 0x6244, - 2841: 0x6246, - 2842: 0x624C, - 2843: 0x6250, - 2844: 0x6251, - 2845: 0x6252, - 2846: 0x6254, - 2847: 0x6256, - 2848: 0x625A, - 2849: 0x625C, - 2850: 0x6264, - 2851: 0x626D, - 2852: 0x626F, - 2853: 0x6273, - 2854: 0x627A, - 2855: 0x627D, - 2856: 0x628D, - 2857: 0x628E, - 2858: 0x628F, - 2859: 0x6290, - 2860: 0x62A6, - 2861: 0x62A8, - 2862: 0x62B3, - 2863: 0x62B6, - 2864: 0x62B7, - 2865: 0x62BA, - 2866: 0x62BE, - 2867: 0x62BF, - 2868: 0x62C4, - 2869: 0x62CE, - 2870: 0x62D5, - 2871: 0x62D6, - 2872: 0x62DA, - 2873: 0x62EA, - 2874: 0x62F2, - 2875: 0x62F4, - 2876: 0x62FC, - 2877: 0x62FD, - 2878: 0x6303, - 2879: 0x6304, - 2880: 0x630A, - 2881: 0x630B, - 2882: 0x630D, - 2883: 0x6310, - 2884: 0x6313, - 2885: 0x6316, - 2886: 0x6318, - 2887: 0x6329, - 2888: 0x632A, - 2889: 0x632D, - 2890: 0x6335, - 2891: 0x6336, - 2892: 0x6339, - 2893: 0x633C, - 2894: 0x6341, - 2895: 0x6342, - 2896: 0x6343, - 2897: 0x6344, - 2898: 0x6346, - 2899: 0x634A, - 2900: 0x634B, - 2901: 0x634E, - 2902: 0x6352, - 2903: 0x6353, - 2904: 0x6354, - 2905: 0x6358, - 2906: 0x635B, - 2907: 0x6365, - 2908: 0x6366, - 2909: 0x636C, - 2910: 0x636D, - 2911: 0x6371, - 2912: 0x6374, - 2913: 0x6375, - 2914: 0x6378, - 2915: 0x637C, - 2916: 0x637D, - 2917: 0x637F, - 2918: 0x6382, - 2919: 0x6384, - 2920: 0x6387, - 2921: 0x638A, - 2922: 0x6390, - 2923: 0x6394, - 2924: 0x6395, - 2925: 0x6399, - 2926: 0x639A, - 2927: 0x639E, - 2928: 0x63A4, - 2929: 0x63A6, - 2930: 0x63AD, - 2931: 0x63AE, - 2932: 0x63AF, - 2933: 0x63BD, - 2934: 0x63C1, - 2935: 0x63C5, - 2936: 0x63C8, - 2937: 0x63CE, - 2938: 0x63D1, - 2939: 0x63D3, - 2940: 0x63D4, - 2941: 0x63D5, - 2942: 0x63DC, - 2943: 0x63E0, - 2944: 0x63E5, - 2945: 0x63EA, - 2946: 0x63EC, - 2947: 0x63F2, - 2948: 0x63F3, - 2949: 0x63F5, - 2950: 0x63F8, - 2951: 0x63F9, - 2952: 0x6409, - 2953: 0x640A, - 2954: 0x6410, - 2955: 0x6412, - 2956: 0x6414, - 2957: 0x6418, - 2958: 0x641E, - 2959: 0x6420, - 2960: 0x6422, - 2961: 0x6424, - 2962: 0x6425, - 2963: 0x6429, - 2964: 0x642A, - 2965: 0x642F, - 2966: 0x6430, - 2967: 0x6435, - 2968: 0x643D, - 2969: 0x643F, - 2970: 0x644B, - 2971: 0x644F, - 2972: 0x6451, - 2973: 0x6452, - 2974: 0x6453, - 2975: 0x6454, - 2976: 0x645A, - 2977: 0x645B, - 2978: 0x645C, - 2979: 0x645D, - 2980: 0x645F, - 2981: 0x6460, - 2982: 0x6461, - 2983: 0x6463, - 2984: 0x646D, - 2985: 0x6473, - 2986: 0x6474, - 2987: 0x647B, - 2988: 0x647D, - 2989: 0x6485, - 2990: 0x6487, - 2991: 0x648F, - 2992: 0x6490, - 2993: 0x6491, - 2994: 0x6498, - 2995: 0x6499, - 2996: 0x649B, - 2997: 0x649D, - 2998: 0x649F, - 2999: 0x64A1, - 3000: 0x64A3, - 3001: 0x64A6, - 3002: 0x64A8, - 3003: 0x64AC, - 3004: 0x64B3, - 3005: 0x64BD, - 3006: 0x64BE, - 3007: 0x64BF, - 3008: 0x64C4, - 3009: 0x64C9, - 3010: 0x64CA, - 3011: 0x64CB, - 3012: 0x64CC, - 3013: 0x64CE, - 3014: 0x64D0, - 3015: 0x64D1, - 3016: 0x64D5, - 3017: 0x64D7, - 3018: 0x64E4, - 3019: 0x64E5, - 3020: 0x64E9, - 3021: 0x64EA, - 3022: 0x64ED, - 3023: 0x64F0, - 3024: 0x64F5, - 3025: 0x64F7, - 3026: 0x64FB, - 3027: 0x64FF, - 3028: 0x6501, - 3029: 0x6504, - 3030: 0x6508, - 3031: 0x6509, - 3032: 0x650A, - 3033: 0x650F, - 3034: 0x6513, - 3035: 0x6514, - 3036: 0x6516, - 3037: 0x6519, - 3038: 0x651B, - 3039: 0x651E, - 3040: 0x651F, - 3041: 0x6522, - 3042: 0x6526, - 3043: 0x6529, - 3044: 0x652E, - 3045: 0x6531, - 3046: 0x653A, - 3047: 0x653C, - 3048: 0x653D, - 3049: 0x6543, - 3050: 0x6547, - 3051: 0x6549, - 3052: 0x6550, - 3053: 0x6552, - 3054: 0x6554, - 3055: 0x655F, - 3056: 0x6560, - 3057: 0x6567, - 3058: 0x656B, - 3059: 0x657A, - 3060: 0x657D, - 3061: 0x6581, - 3062: 0x6585, - 3063: 0x658A, - 3064: 0x6592, - 3065: 0x6595, - 3066: 0x6598, - 3067: 0x659D, - 3068: 0x65A0, - 3069: 0x65A3, - 3070: 0x65A6, - 3071: 0x65AE, - 3072: 0x65B2, - 3073: 0x65B3, - 3074: 0x65B4, - 3075: 0x65BF, - 3076: 0x65C2, - 3077: 0x65C8, - 3078: 0x65C9, - 3079: 0x65CE, - 3080: 0x65D0, - 3081: 0x65D4, - 3082: 0x65D6, - 3083: 0x65D8, - 3084: 0x65DF, - 3085: 0x65F0, - 3086: 0x65F2, - 3087: 0x65F4, - 3088: 0x65F5, - 3089: 0x65F9, - 3090: 0x65FE, - 3091: 0x65FF, - 3092: 0x6600, - 3093: 0x6604, - 3094: 0x6608, - 3095: 0x6609, - 3096: 0x660D, - 3097: 0x6611, - 3098: 0x6612, - 3099: 0x6615, - 3100: 0x6616, - 3101: 0x661D, - 3102: 0x661E, - 3103: 0x6621, - 3104: 0x6622, - 3105: 0x6623, - 3106: 0x6624, - 3107: 0x6626, - 3108: 0x6629, - 3109: 0x662A, - 3110: 0x662B, - 3111: 0x662C, - 3112: 0x662E, - 3113: 0x6630, - 3114: 0x6631, - 3115: 0x6633, - 3116: 0x6639, - 3117: 0x6637, - 3118: 0x6640, - 3119: 0x6645, - 3120: 0x6646, - 3121: 0x664A, - 3122: 0x664C, - 3123: 0x6651, - 3124: 0x664E, - 3125: 0x6657, - 3126: 0x6658, - 3127: 0x6659, - 3128: 0x665B, - 3129: 0x665C, - 3130: 0x6660, - 3131: 0x6661, - 3132: 0x66FB, - 3133: 0x666A, - 3134: 0x666B, - 3135: 0x666C, - 3136: 0x667E, - 3137: 0x6673, - 3138: 0x6675, - 3139: 0x667F, - 3140: 0x6677, - 3141: 0x6678, - 3142: 0x6679, - 3143: 0x667B, - 3144: 0x6680, - 3145: 0x667C, - 3146: 0x668B, - 3147: 0x668C, - 3148: 0x668D, - 3149: 0x6690, - 3150: 0x6692, - 3151: 0x6699, - 3152: 0x669A, - 3153: 0x669B, - 3154: 0x669C, - 3155: 0x669F, - 3156: 0x66A0, - 3157: 0x66A4, - 3158: 0x66AD, - 3159: 0x66B1, - 3160: 0x66B2, - 3161: 0x66B5, - 3162: 0x66BB, - 3163: 0x66BF, - 3164: 0x66C0, - 3165: 0x66C2, - 3166: 0x66C3, - 3167: 0x66C8, - 3168: 0x66CC, - 3169: 0x66CE, - 3170: 0x66CF, - 3171: 0x66D4, - 3172: 0x66DB, - 3173: 0x66DF, - 3174: 0x66E8, - 3175: 0x66EB, - 3176: 0x66EC, - 3177: 0x66EE, - 3178: 0x66FA, - 3179: 0x6705, - 3180: 0x6707, - 3181: 0x670E, - 3182: 0x6713, - 3183: 0x6719, - 3184: 0x671C, - 3185: 0x6720, - 3186: 0x6722, - 3187: 0x6733, - 3188: 0x673E, - 3189: 0x6745, - 3190: 0x6747, - 3191: 0x6748, - 3192: 0x674C, - 3193: 0x6754, - 3194: 0x6755, - 3195: 0x675D, - 3196: 0x6766, - 3197: 0x676C, - 3198: 0x676E, - 3199: 0x6774, - 3200: 0x6776, - 3201: 0x677B, - 3202: 0x6781, - 3203: 0x6784, - 3204: 0x678E, - 3205: 0x678F, - 3206: 0x6791, - 3207: 0x6793, - 3208: 0x6796, - 3209: 0x6798, - 3210: 0x6799, - 3211: 0x679B, - 3212: 0x67B0, - 3213: 0x67B1, - 3214: 0x67B2, - 3215: 0x67B5, - 3216: 0x67BB, - 3217: 0x67BC, - 3218: 0x67BD, - 3219: 0x67F9, - 3220: 0x67C0, - 3221: 0x67C2, - 3222: 0x67C3, - 3223: 0x67C5, - 3224: 0x67C8, - 3225: 0x67C9, - 3226: 0x67D2, - 3227: 0x67D7, - 3228: 0x67D9, - 3229: 0x67DC, - 3230: 0x67E1, - 3231: 0x67E6, - 3232: 0x67F0, - 3233: 0x67F2, - 3234: 0x67F6, - 3235: 0x67F7, - 3236: 0x6852, - 3237: 0x6814, - 3238: 0x6819, - 3239: 0x681D, - 3240: 0x681F, - 3241: 0x6828, - 3242: 0x6827, - 3243: 0x682C, - 3244: 0x682D, - 3245: 0x682F, - 3246: 0x6830, - 3247: 0x6831, - 3248: 0x6833, - 3249: 0x683B, - 3250: 0x683F, - 3251: 0x6844, - 3252: 0x6845, - 3253: 0x684A, - 3254: 0x684C, - 3255: 0x6855, - 3256: 0x6857, - 3257: 0x6858, - 3258: 0x685B, - 3259: 0x686B, - 3260: 0x686E, - 3261: 0x686F, - 3262: 0x6870, - 3263: 0x6871, - 3264: 0x6872, - 3265: 0x6875, - 3266: 0x6879, - 3267: 0x687A, - 3268: 0x687B, - 3269: 0x687C, - 3270: 0x6882, - 3271: 0x6884, - 3272: 0x6886, - 3273: 0x6888, - 3274: 0x6896, - 3275: 0x6898, - 3276: 0x689A, - 3277: 0x689C, - 3278: 0x68A1, - 3279: 0x68A3, - 3280: 0x68A5, - 3281: 0x68A9, - 3282: 0x68AA, - 3283: 0x68AE, - 3284: 0x68B2, - 3285: 0x68BB, - 3286: 0x68C5, - 3287: 0x68C8, - 3288: 0x68CC, - 3289: 0x68CF, - 3290: 0x68D0, - 3291: 0x68D1, - 3292: 0x68D3, - 3293: 0x68D6, - 3294: 0x68D9, - 3295: 0x68DC, - 3296: 0x68DD, - 3297: 0x68E5, - 3298: 0x68E8, - 3299: 0x68EA, - 3300: 0x68EB, - 3301: 0x68EC, - 3302: 0x68ED, - 3303: 0x68F0, - 3304: 0x68F1, - 3305: 0x68F5, - 3306: 0x68F6, - 3307: 0x68FB, - 3308: 0x68FC, - 3309: 0x68FD, - 3310: 0x6906, - 3311: 0x6909, - 3312: 0x690A, - 3313: 0x6910, - 3314: 0x6911, - 3315: 0x6913, - 3316: 0x6916, - 3317: 0x6917, - 3318: 0x6931, - 3319: 0x6933, - 3320: 0x6935, - 3321: 0x6938, - 3322: 0x693B, - 3323: 0x6942, - 3324: 0x6945, - 3325: 0x6949, - 3326: 0x694E, - 3327: 0x6957, - 3328: 0x695B, - 3329: 0x6963, - 3330: 0x6964, - 3331: 0x6965, - 3332: 0x6966, - 3333: 0x6968, - 3334: 0x6969, - 3335: 0x696C, - 3336: 0x6970, - 3337: 0x6971, - 3338: 0x6972, - 3339: 0x697A, - 3340: 0x697B, - 3341: 0x697F, - 3342: 0x6980, - 3343: 0x698D, - 3344: 0x6992, - 3345: 0x6996, - 3346: 0x6998, - 3347: 0x69A1, - 3348: 0x69A5, - 3349: 0x69A6, - 3350: 0x69A8, - 3351: 0x69AB, - 3352: 0x69AD, - 3353: 0x69AF, - 3354: 0x69B7, - 3355: 0x69B8, - 3356: 0x69BA, - 3357: 0x69BC, - 3358: 0x69C5, - 3359: 0x69C8, - 3360: 0x69D1, - 3361: 0x69D6, - 3362: 0x69D7, - 3363: 0x69E2, - 3364: 0x69E5, - 3365: 0x69EE, - 3366: 0x69EF, - 3367: 0x69F1, - 3368: 0x69F3, - 3369: 0x69F5, - 3370: 0x69FE, - 3371: 0x6A00, - 3372: 0x6A01, - 3373: 0x6A03, - 3374: 0x6A0F, - 3375: 0x6A11, - 3376: 0x6A15, - 3377: 0x6A1A, - 3378: 0x6A1D, - 3379: 0x6A20, - 3380: 0x6A24, - 3381: 0x6A28, - 3382: 0x6A30, - 3383: 0x6A32, - 3384: 0x6A34, - 3385: 0x6A37, - 3386: 0x6A3B, - 3387: 0x6A3E, - 3388: 0x6A3F, - 3389: 0x6A45, - 3390: 0x6A46, - 3391: 0x6A49, - 3392: 0x6A4A, - 3393: 0x6A4E, - 3394: 0x6A50, - 3395: 0x6A51, - 3396: 0x6A52, - 3397: 0x6A55, - 3398: 0x6A56, - 3399: 0x6A5B, - 3400: 0x6A64, - 3401: 0x6A67, - 3402: 0x6A6A, - 3403: 0x6A71, - 3404: 0x6A73, - 3405: 0x6A7E, - 3406: 0x6A81, - 3407: 0x6A83, - 3408: 0x6A86, - 3409: 0x6A87, - 3410: 0x6A89, - 3411: 0x6A8B, - 3412: 0x6A91, - 3413: 0x6A9B, - 3414: 0x6A9D, - 3415: 0x6A9E, - 3416: 0x6A9F, - 3417: 0x6AA5, - 3418: 0x6AAB, - 3419: 0x6AAF, - 3420: 0x6AB0, - 3421: 0x6AB1, - 3422: 0x6AB4, - 3423: 0x6ABD, - 3424: 0x6ABE, - 3425: 0x6ABF, - 3426: 0x6AC6, - 3427: 0x6AC9, - 3428: 0x6AC8, - 3429: 0x6ACC, - 3430: 0x6AD0, - 3431: 0x6AD4, - 3432: 0x6AD5, - 3433: 0x6AD6, - 3434: 0x6ADC, - 3435: 0x6ADD, - 3436: 0x6AE4, - 3437: 0x6AE7, - 3438: 0x6AEC, - 3439: 0x6AF0, - 3440: 0x6AF1, - 3441: 0x6AF2, - 3442: 0x6AFC, - 3443: 0x6AFD, - 3444: 0x6B02, - 3445: 0x6B03, - 3446: 0x6B06, - 3447: 0x6B07, - 3448: 0x6B09, - 3449: 0x6B0F, - 3450: 0x6B10, - 3451: 0x6B11, - 3452: 0x6B17, - 3453: 0x6B1B, - 3454: 0x6B1E, - 3455: 0x6B24, - 3456: 0x6B28, - 3457: 0x6B2B, - 3458: 0x6B2C, - 3459: 0x6B2F, - 3460: 0x6B35, - 3461: 0x6B36, - 3462: 0x6B3B, - 3463: 0x6B3F, - 3464: 0x6B46, - 3465: 0x6B4A, - 3466: 0x6B4D, - 3467: 0x6B52, - 3468: 0x6B56, - 3469: 0x6B58, - 3470: 0x6B5D, - 3471: 0x6B60, - 3472: 0x6B67, - 3473: 0x6B6B, - 3474: 0x6B6E, - 3475: 0x6B70, - 3476: 0x6B75, - 3477: 0x6B7D, - 3478: 0x6B7E, - 3479: 0x6B82, - 3480: 0x6B85, - 3481: 0x6B97, - 3482: 0x6B9B, - 3483: 0x6B9F, - 3484: 0x6BA0, - 3485: 0x6BA2, - 3486: 0x6BA3, - 3487: 0x6BA8, - 3488: 0x6BA9, - 3489: 0x6BAC, - 3490: 0x6BAD, - 3491: 0x6BAE, - 3492: 0x6BB0, - 3493: 0x6BB8, - 3494: 0x6BB9, - 3495: 0x6BBD, - 3496: 0x6BBE, - 3497: 0x6BC3, - 3498: 0x6BC4, - 3499: 0x6BC9, - 3500: 0x6BCC, - 3501: 0x6BD6, - 3502: 0x6BDA, - 3503: 0x6BE1, - 3504: 0x6BE3, - 3505: 0x6BE6, - 3506: 0x6BE7, - 3507: 0x6BEE, - 3508: 0x6BF1, - 3509: 0x6BF7, - 3510: 0x6BF9, - 3511: 0x6BFF, - 3512: 0x6C02, - 3513: 0x6C04, - 3514: 0x6C05, - 3515: 0x6C09, - 3516: 0x6C0D, - 3517: 0x6C0E, - 3518: 0x6C10, - 3519: 0x6C12, - 3520: 0x6C19, - 3521: 0x6C1F, - 3522: 0x6C26, - 3523: 0x6C27, - 3524: 0x6C28, - 3525: 0x6C2C, - 3526: 0x6C2E, - 3527: 0x6C33, - 3528: 0x6C35, - 3529: 0x6C36, - 3530: 0x6C3A, - 3531: 0x6C3B, - 3532: 0x6C3F, - 3533: 0x6C4A, - 3534: 0x6C4B, - 3535: 0x6C4D, - 3536: 0x6C4F, - 3537: 0x6C52, - 3538: 0x6C54, - 3539: 0x6C59, - 3540: 0x6C5B, - 3541: 0x6C5C, - 3542: 0x6C6B, - 3543: 0x6C6D, - 3544: 0x6C6F, - 3545: 0x6C74, - 3546: 0x6C76, - 3547: 0x6C78, - 3548: 0x6C79, - 3549: 0x6C7B, - 3550: 0x6C85, - 3551: 0x6C86, - 3552: 0x6C87, - 3553: 0x6C89, - 3554: 0x6C94, - 3555: 0x6C95, - 3556: 0x6C97, - 3557: 0x6C98, - 3558: 0x6C9C, - 3559: 0x6C9F, - 3560: 0x6CB0, - 3561: 0x6CB2, - 3562: 0x6CB4, - 3563: 0x6CC2, - 3564: 0x6CC6, - 3565: 0x6CCD, - 3566: 0x6CCF, - 3567: 0x6CD0, - 3568: 0x6CD1, - 3569: 0x6CD2, - 3570: 0x6CD4, - 3571: 0x6CD6, - 3572: 0x6CDA, - 3573: 0x6CDC, - 3574: 0x6CE0, - 3575: 0x6CE7, - 3576: 0x6CE9, - 3577: 0x6CEB, - 3578: 0x6CEC, - 3579: 0x6CEE, - 3580: 0x6CF2, - 3581: 0x6CF4, - 3582: 0x6D04, - 3583: 0x6D07, - 3584: 0x6D0A, - 3585: 0x6D0E, - 3586: 0x6D0F, - 3587: 0x6D11, - 3588: 0x6D13, - 3589: 0x6D1A, - 3590: 0x6D26, - 3591: 0x6D27, - 3592: 0x6D28, - 3593: 0x6C67, - 3594: 0x6D2E, - 3595: 0x6D2F, - 3596: 0x6D31, - 3597: 0x6D39, - 3598: 0x6D3C, - 3599: 0x6D3F, - 3600: 0x6D57, - 3601: 0x6D5E, - 3602: 0x6D5F, - 3603: 0x6D61, - 3604: 0x6D65, - 3605: 0x6D67, - 3606: 0x6D6F, - 3607: 0x6D70, - 3608: 0x6D7C, - 3609: 0x6D82, - 3610: 0x6D87, - 3611: 0x6D91, - 3612: 0x6D92, - 3613: 0x6D94, - 3614: 0x6D96, - 3615: 0x6D97, - 3616: 0x6D98, - 3617: 0x6DAA, - 3618: 0x6DAC, - 3619: 0x6DB4, - 3620: 0x6DB7, - 3621: 0x6DB9, - 3622: 0x6DBD, - 3623: 0x6DBF, - 3624: 0x6DC4, - 3625: 0x6DC8, - 3626: 0x6DCA, - 3627: 0x6DCE, - 3628: 0x6DCF, - 3629: 0x6DD6, - 3630: 0x6DDB, - 3631: 0x6DDD, - 3632: 0x6DDF, - 3633: 0x6DE0, - 3634: 0x6DE2, - 3635: 0x6DE5, - 3636: 0x6DE9, - 3637: 0x6DEF, - 3638: 0x6DF0, - 3639: 0x6DF4, - 3640: 0x6DF6, - 3641: 0x6DFC, - 3642: 0x6E00, - 3643: 0x6E04, - 3644: 0x6E1E, - 3645: 0x6E22, - 3646: 0x6E27, - 3647: 0x6E32, - 3648: 0x6E36, - 3649: 0x6E39, - 3650: 0x6E3B, - 3651: 0x6E3C, - 3652: 0x6E44, - 3653: 0x6E45, - 3654: 0x6E48, - 3655: 0x6E49, - 3656: 0x6E4B, - 3657: 0x6E4F, - 3658: 0x6E51, - 3659: 0x6E52, - 3660: 0x6E53, - 3661: 0x6E54, - 3662: 0x6E57, - 3663: 0x6E5C, - 3664: 0x6E5D, - 3665: 0x6E5E, - 3666: 0x6E62, - 3667: 0x6E63, - 3668: 0x6E68, - 3669: 0x6E73, - 3670: 0x6E7B, - 3671: 0x6E7D, - 3672: 0x6E8D, - 3673: 0x6E93, - 3674: 0x6E99, - 3675: 0x6EA0, - 3676: 0x6EA7, - 3677: 0x6EAD, - 3678: 0x6EAE, - 3679: 0x6EB1, - 3680: 0x6EB3, - 3681: 0x6EBB, - 3682: 0x6EBF, - 3683: 0x6EC0, - 3684: 0x6EC1, - 3685: 0x6EC3, - 3686: 0x6EC7, - 3687: 0x6EC8, - 3688: 0x6ECA, - 3689: 0x6ECD, - 3690: 0x6ECE, - 3691: 0x6ECF, - 3692: 0x6EEB, - 3693: 0x6EED, - 3694: 0x6EEE, - 3695: 0x6EF9, - 3696: 0x6EFB, - 3697: 0x6EFD, - 3698: 0x6F04, - 3699: 0x6F08, - 3700: 0x6F0A, - 3701: 0x6F0C, - 3702: 0x6F0D, - 3703: 0x6F16, - 3704: 0x6F18, - 3705: 0x6F1A, - 3706: 0x6F1B, - 3707: 0x6F26, - 3708: 0x6F29, - 3709: 0x6F2A, - 3710: 0x6F2F, - 3711: 0x6F30, - 3712: 0x6F33, - 3713: 0x6F36, - 3714: 0x6F3B, - 3715: 0x6F3C, - 3716: 0x6F2D, - 3717: 0x6F4F, - 3718: 0x6F51, - 3719: 0x6F52, - 3720: 0x6F53, - 3721: 0x6F57, - 3722: 0x6F59, - 3723: 0x6F5A, - 3724: 0x6F5D, - 3725: 0x6F5E, - 3726: 0x6F61, - 3727: 0x6F62, - 3728: 0x6F68, - 3729: 0x6F6C, - 3730: 0x6F7D, - 3731: 0x6F7E, - 3732: 0x6F83, - 3733: 0x6F87, - 3734: 0x6F88, - 3735: 0x6F8B, - 3736: 0x6F8C, - 3737: 0x6F8D, - 3738: 0x6F90, - 3739: 0x6F92, - 3740: 0x6F93, - 3741: 0x6F94, - 3742: 0x6F96, - 3743: 0x6F9A, - 3744: 0x6F9F, - 3745: 0x6FA0, - 3746: 0x6FA5, - 3747: 0x6FA6, - 3748: 0x6FA7, - 3749: 0x6FA8, - 3750: 0x6FAE, - 3751: 0x6FAF, - 3752: 0x6FB0, - 3753: 0x6FB5, - 3754: 0x6FB6, - 3755: 0x6FBC, - 3756: 0x6FC5, - 3757: 0x6FC7, - 3758: 0x6FC8, - 3759: 0x6FCA, - 3760: 0x6FDA, - 3761: 0x6FDE, - 3762: 0x6FE8, - 3763: 0x6FE9, - 3764: 0x6FF0, - 3765: 0x6FF5, - 3766: 0x6FF9, - 3767: 0x6FFC, - 3768: 0x6FFD, - 3769: 0x7000, - 3770: 0x7005, - 3771: 0x7006, - 3772: 0x7007, - 3773: 0x700D, - 3774: 0x7017, - 3775: 0x7020, - 3776: 0x7023, - 3777: 0x702F, - 3778: 0x7034, - 3779: 0x7037, - 3780: 0x7039, - 3781: 0x703C, - 3782: 0x7043, - 3783: 0x7044, - 3784: 0x7048, - 3785: 0x7049, - 3786: 0x704A, - 3787: 0x704B, - 3788: 0x7054, - 3789: 0x7055, - 3790: 0x705D, - 3791: 0x705E, - 3792: 0x704E, - 3793: 0x7064, - 3794: 0x7065, - 3795: 0x706C, - 3796: 0x706E, - 3797: 0x7075, - 3798: 0x7076, - 3799: 0x707E, - 3800: 0x7081, - 3801: 0x7085, - 3802: 0x7086, - 3803: 0x7094, - 3804: 0x7095, - 3805: 0x7096, - 3806: 0x7097, - 3807: 0x7098, - 3808: 0x709B, - 3809: 0x70A4, - 3810: 0x70AB, - 3811: 0x70B0, - 3812: 0x70B1, - 3813: 0x70B4, - 3814: 0x70B7, - 3815: 0x70CA, - 3816: 0x70D1, - 3817: 0x70D3, - 3818: 0x70D4, - 3819: 0x70D5, - 3820: 0x70D6, - 3821: 0x70D8, - 3822: 0x70DC, - 3823: 0x70E4, - 3824: 0x70FA, - 3825: 0x7103, - 3826: 0x7104, - 3827: 0x7105, - 3828: 0x7106, - 3829: 0x7107, - 3830: 0x710B, - 3831: 0x710C, - 3832: 0x710F, - 3833: 0x711E, - 3834: 0x7120, - 3835: 0x712B, - 3836: 0x712D, - 3837: 0x712F, - 3838: 0x7130, - 3839: 0x7131, - 3840: 0x7138, - 3841: 0x7141, - 3842: 0x7145, - 3843: 0x7146, - 3844: 0x7147, - 3845: 0x714A, - 3846: 0x714B, - 3847: 0x7150, - 3848: 0x7152, - 3849: 0x7157, - 3850: 0x715A, - 3851: 0x715C, - 3852: 0x715E, - 3853: 0x7160, - 3854: 0x7168, - 3855: 0x7179, - 3856: 0x7180, - 3857: 0x7185, - 3858: 0x7187, - 3859: 0x718C, - 3860: 0x7192, - 3861: 0x719A, - 3862: 0x719B, - 3863: 0x71A0, - 3864: 0x71A2, - 3865: 0x71AF, - 3866: 0x71B0, - 3867: 0x71B2, - 3868: 0x71B3, - 3869: 0x71BA, - 3870: 0x71BF, - 3871: 0x71C0, - 3872: 0x71C1, - 3873: 0x71C4, - 3874: 0x71CB, - 3875: 0x71CC, - 3876: 0x71D3, - 3877: 0x71D6, - 3878: 0x71D9, - 3879: 0x71DA, - 3880: 0x71DC, - 3881: 0x71F8, - 3882: 0x71FE, - 3883: 0x7200, - 3884: 0x7207, - 3885: 0x7208, - 3886: 0x7209, - 3887: 0x7213, - 3888: 0x7217, - 3889: 0x721A, - 3890: 0x721D, - 3891: 0x721F, - 3892: 0x7224, - 3893: 0x722B, - 3894: 0x722F, - 3895: 0x7234, - 3896: 0x7238, - 3897: 0x7239, - 3898: 0x7241, - 3899: 0x7242, - 3900: 0x7243, - 3901: 0x7245, - 3902: 0x724E, - 3903: 0x724F, - 3904: 0x7250, - 3905: 0x7253, - 3906: 0x7255, - 3907: 0x7256, - 3908: 0x725A, - 3909: 0x725C, - 3910: 0x725E, - 3911: 0x7260, - 3912: 0x7263, - 3913: 0x7268, - 3914: 0x726B, - 3915: 0x726E, - 3916: 0x726F, - 3917: 0x7271, - 3918: 0x7277, - 3919: 0x7278, - 3920: 0x727B, - 3921: 0x727C, - 3922: 0x727F, - 3923: 0x7284, - 3924: 0x7289, - 3925: 0x728D, - 3926: 0x728E, - 3927: 0x7293, - 3928: 0x729B, - 3929: 0x72A8, - 3930: 0x72AD, - 3931: 0x72AE, - 3932: 0x72B1, - 3933: 0x72B4, - 3934: 0x72BE, - 3935: 0x72C1, - 3936: 0x72C7, - 3937: 0x72C9, - 3938: 0x72CC, - 3939: 0x72D5, - 3940: 0x72D6, - 3941: 0x72D8, - 3942: 0x72DF, - 3943: 0x72E5, - 3944: 0x72F3, - 3945: 0x72F4, - 3946: 0x72FA, - 3947: 0x72FB, - 3948: 0x72FE, - 3949: 0x7302, - 3950: 0x7304, - 3951: 0x7305, - 3952: 0x7307, - 3953: 0x730B, - 3954: 0x730D, - 3955: 0x7312, - 3956: 0x7313, - 3957: 0x7318, - 3958: 0x7319, - 3959: 0x731E, - 3960: 0x7322, - 3961: 0x7324, - 3962: 0x7327, - 3963: 0x7328, - 3964: 0x732C, - 3965: 0x7331, - 3966: 0x7332, - 3967: 0x7335, - 3968: 0x733A, - 3969: 0x733B, - 3970: 0x733D, - 3971: 0x7343, - 3972: 0x734D, - 3973: 0x7350, - 3974: 0x7352, - 3975: 0x7356, - 3976: 0x7358, - 3977: 0x735D, - 3978: 0x735E, - 3979: 0x735F, - 3980: 0x7360, - 3981: 0x7366, - 3982: 0x7367, - 3983: 0x7369, - 3984: 0x736B, - 3985: 0x736C, - 3986: 0x736E, - 3987: 0x736F, - 3988: 0x7371, - 3989: 0x7377, - 3990: 0x7379, - 3991: 0x737C, - 3992: 0x7380, - 3993: 0x7381, - 3994: 0x7383, - 3995: 0x7385, - 3996: 0x7386, - 3997: 0x738E, - 3998: 0x7390, - 3999: 0x7393, - 4000: 0x7395, - 4001: 0x7397, - 4002: 0x7398, - 4003: 0x739C, - 4004: 0x739E, - 4005: 0x739F, - 4006: 0x73A0, - 4007: 0x73A2, - 4008: 0x73A5, - 4009: 0x73A6, - 4010: 0x73AA, - 4011: 0x73AB, - 4012: 0x73AD, - 4013: 0x73B5, - 4014: 0x73B7, - 4015: 0x73B9, - 4016: 0x73BC, - 4017: 0x73BD, - 4018: 0x73BF, - 4019: 0x73C5, - 4020: 0x73C6, - 4021: 0x73C9, - 4022: 0x73CB, - 4023: 0x73CC, - 4024: 0x73CF, - 4025: 0x73D2, - 4026: 0x73D3, - 4027: 0x73D6, - 4028: 0x73D9, - 4029: 0x73DD, - 4030: 0x73E1, - 4031: 0x73E3, - 4032: 0x73E6, - 4033: 0x73E7, - 4034: 0x73E9, - 4035: 0x73F4, - 4036: 0x73F5, - 4037: 0x73F7, - 4038: 0x73F9, - 4039: 0x73FA, - 4040: 0x73FB, - 4041: 0x73FD, - 4042: 0x73FF, - 4043: 0x7400, - 4044: 0x7401, - 4045: 0x7404, - 4046: 0x7407, - 4047: 0x740A, - 4048: 0x7411, - 4049: 0x741A, - 4050: 0x741B, - 4051: 0x7424, - 4052: 0x7426, - 4053: 0x7428, - 4054: 0x7429, - 4055: 0x742A, - 4056: 0x742B, - 4057: 0x742C, - 4058: 0x742D, - 4059: 0x742E, - 4060: 0x742F, - 4061: 0x7430, - 4062: 0x7431, - 4063: 0x7439, - 4064: 0x7440, - 4065: 0x7443, - 4066: 0x7444, - 4067: 0x7446, - 4068: 0x7447, - 4069: 0x744B, - 4070: 0x744D, - 4071: 0x7451, - 4072: 0x7452, - 4073: 0x7457, - 4074: 0x745D, - 4075: 0x7462, - 4076: 0x7466, - 4077: 0x7467, - 4078: 0x7468, - 4079: 0x746B, - 4080: 0x746D, - 4081: 0x746E, - 4082: 0x7471, - 4083: 0x7472, - 4084: 0x7480, - 4085: 0x7481, - 4086: 0x7485, - 4087: 0x7486, - 4088: 0x7487, - 4089: 0x7489, - 4090: 0x748F, - 4091: 0x7490, - 4092: 0x7491, - 4093: 0x7492, - 4094: 0x7498, - 4095: 0x7499, - 4096: 0x749A, - 4097: 0x749C, - 4098: 0x749F, - 4099: 0x74A0, - 4100: 0x74A1, - 4101: 0x74A3, - 4102: 0x74A6, - 4103: 0x74A8, - 4104: 0x74A9, - 4105: 0x74AA, - 4106: 0x74AB, - 4107: 0x74AE, - 4108: 0x74AF, - 4109: 0x74B1, - 4110: 0x74B2, - 4111: 0x74B5, - 4112: 0x74B9, - 4113: 0x74BB, - 4114: 0x74BF, - 4115: 0x74C8, - 4116: 0x74C9, - 4117: 0x74CC, - 4118: 0x74D0, - 4119: 0x74D3, - 4120: 0x74D8, - 4121: 0x74DA, - 4122: 0x74DB, - 4123: 0x74DE, - 4124: 0x74DF, - 4125: 0x74E4, - 4126: 0x74E8, - 4127: 0x74EA, - 4128: 0x74EB, - 4129: 0x74EF, - 4130: 0x74F4, - 4131: 0x74FA, - 4132: 0x74FB, - 4133: 0x74FC, - 4134: 0x74FF, - 4135: 0x7506, - 4136: 0x7512, - 4137: 0x7516, - 4138: 0x7517, - 4139: 0x7520, - 4140: 0x7521, - 4141: 0x7524, - 4142: 0x7527, - 4143: 0x7529, - 4144: 0x752A, - 4145: 0x752F, - 4146: 0x7536, - 4147: 0x7539, - 4148: 0x753D, - 4149: 0x753E, - 4150: 0x753F, - 4151: 0x7540, - 4152: 0x7543, - 4153: 0x7547, - 4154: 0x7548, - 4155: 0x754E, - 4156: 0x7550, - 4157: 0x7552, - 4158: 0x7557, - 4159: 0x755E, - 4160: 0x755F, - 4161: 0x7561, - 4162: 0x756F, - 4163: 0x7571, - 4164: 0x7579, - 4165: 0x757A, - 4166: 0x757B, - 4167: 0x757C, - 4168: 0x757D, - 4169: 0x757E, - 4170: 0x7581, - 4171: 0x7585, - 4172: 0x7590, - 4173: 0x7592, - 4174: 0x7593, - 4175: 0x7595, - 4176: 0x7599, - 4177: 0x759C, - 4178: 0x75A2, - 4179: 0x75A4, - 4180: 0x75B4, - 4181: 0x75BA, - 4182: 0x75BF, - 4183: 0x75C0, - 4184: 0x75C1, - 4185: 0x75C4, - 4186: 0x75C6, - 4187: 0x75CC, - 4188: 0x75CE, - 4189: 0x75CF, - 4190: 0x75D7, - 4191: 0x75DC, - 4192: 0x75DF, - 4193: 0x75E0, - 4194: 0x75E1, - 4195: 0x75E4, - 4196: 0x75E7, - 4197: 0x75EC, - 4198: 0x75EE, - 4199: 0x75EF, - 4200: 0x75F1, - 4201: 0x75F9, - 4202: 0x7600, - 4203: 0x7602, - 4204: 0x7603, - 4205: 0x7604, - 4206: 0x7607, - 4207: 0x7608, - 4208: 0x760A, - 4209: 0x760C, - 4210: 0x760F, - 4211: 0x7612, - 4212: 0x7613, - 4213: 0x7615, - 4214: 0x7616, - 4215: 0x7619, - 4216: 0x761B, - 4217: 0x761C, - 4218: 0x761D, - 4219: 0x761E, - 4220: 0x7623, - 4221: 0x7625, - 4222: 0x7626, - 4223: 0x7629, - 4224: 0x762D, - 4225: 0x7632, - 4226: 0x7633, - 4227: 0x7635, - 4228: 0x7638, - 4229: 0x7639, - 4230: 0x763A, - 4231: 0x763C, - 4232: 0x764A, - 4233: 0x7640, - 4234: 0x7641, - 4235: 0x7643, - 4236: 0x7644, - 4237: 0x7645, - 4238: 0x7649, - 4239: 0x764B, - 4240: 0x7655, - 4241: 0x7659, - 4242: 0x765F, - 4243: 0x7664, - 4244: 0x7665, - 4245: 0x766D, - 4246: 0x766E, - 4247: 0x766F, - 4248: 0x7671, - 4249: 0x7674, - 4250: 0x7681, - 4251: 0x7685, - 4252: 0x768C, - 4253: 0x768D, - 4254: 0x7695, - 4255: 0x769B, - 4256: 0x769C, - 4257: 0x769D, - 4258: 0x769F, - 4259: 0x76A0, - 4260: 0x76A2, - 4261: 0x76A3, - 4262: 0x76A4, - 4263: 0x76A5, - 4264: 0x76A6, - 4265: 0x76A7, - 4266: 0x76A8, - 4267: 0x76AA, - 4268: 0x76AD, - 4269: 0x76BD, - 4270: 0x76C1, - 4271: 0x76C5, - 4272: 0x76C9, - 4273: 0x76CB, - 4274: 0x76CC, - 4275: 0x76CE, - 4276: 0x76D4, - 4277: 0x76D9, - 4278: 0x76E0, - 4279: 0x76E6, - 4280: 0x76E8, - 4281: 0x76EC, - 4282: 0x76F0, - 4283: 0x76F1, - 4284: 0x76F6, - 4285: 0x76F9, - 4286: 0x76FC, - 4287: 0x7700, - 4288: 0x7706, - 4289: 0x770A, - 4290: 0x770E, - 4291: 0x7712, - 4292: 0x7714, - 4293: 0x7715, - 4294: 0x7717, - 4295: 0x7719, - 4296: 0x771A, - 4297: 0x771C, - 4298: 0x7722, - 4299: 0x7728, - 4300: 0x772D, - 4301: 0x772E, - 4302: 0x772F, - 4303: 0x7734, - 4304: 0x7735, - 4305: 0x7736, - 4306: 0x7739, - 4307: 0x773D, - 4308: 0x773E, - 4309: 0x7742, - 4310: 0x7745, - 4311: 0x7746, - 4312: 0x774A, - 4313: 0x774D, - 4314: 0x774E, - 4315: 0x774F, - 4316: 0x7752, - 4317: 0x7756, - 4318: 0x7757, - 4319: 0x775C, - 4320: 0x775E, - 4321: 0x775F, - 4322: 0x7760, - 4323: 0x7762, - 4324: 0x7764, - 4325: 0x7767, - 4326: 0x776A, - 4327: 0x776C, - 4328: 0x7770, - 4329: 0x7772, - 4330: 0x7773, - 4331: 0x7774, - 4332: 0x777A, - 4333: 0x777D, - 4334: 0x7780, - 4335: 0x7784, - 4336: 0x778C, - 4337: 0x778D, - 4338: 0x7794, - 4339: 0x7795, - 4340: 0x7796, - 4341: 0x779A, - 4342: 0x779F, - 4343: 0x77A2, - 4344: 0x77A7, - 4345: 0x77AA, - 4346: 0x77AE, - 4347: 0x77AF, - 4348: 0x77B1, - 4349: 0x77B5, - 4350: 0x77BE, - 4351: 0x77C3, - 4352: 0x77C9, - 4353: 0x77D1, - 4354: 0x77D2, - 4355: 0x77D5, - 4356: 0x77D9, - 4357: 0x77DE, - 4358: 0x77DF, - 4359: 0x77E0, - 4360: 0x77E4, - 4361: 0x77E6, - 4362: 0x77EA, - 4363: 0x77EC, - 4364: 0x77F0, - 4365: 0x77F1, - 4366: 0x77F4, - 4367: 0x77F8, - 4368: 0x77FB, - 4369: 0x7805, - 4370: 0x7806, - 4371: 0x7809, - 4372: 0x780D, - 4373: 0x780E, - 4374: 0x7811, - 4375: 0x781D, - 4376: 0x7821, - 4377: 0x7822, - 4378: 0x7823, - 4379: 0x782D, - 4380: 0x782E, - 4381: 0x7830, - 4382: 0x7835, - 4383: 0x7837, - 4384: 0x7843, - 4385: 0x7844, - 4386: 0x7847, - 4387: 0x7848, - 4388: 0x784C, - 4389: 0x784E, - 4390: 0x7852, - 4391: 0x785C, - 4392: 0x785E, - 4393: 0x7860, - 4394: 0x7861, - 4395: 0x7863, - 4396: 0x7864, - 4397: 0x7868, - 4398: 0x786A, - 4399: 0x786E, - 4400: 0x787A, - 4401: 0x787E, - 4402: 0x788A, - 4403: 0x788F, - 4404: 0x7894, - 4405: 0x7898, - 4406: 0x78A1, - 4407: 0x789D, - 4408: 0x789E, - 4409: 0x789F, - 4410: 0x78A4, - 4411: 0x78A8, - 4412: 0x78AC, - 4413: 0x78AD, - 4414: 0x78B0, - 4415: 0x78B1, - 4416: 0x78B2, - 4417: 0x78B3, - 4418: 0x78BB, - 4419: 0x78BD, - 4420: 0x78BF, - 4421: 0x78C7, - 4422: 0x78C8, - 4423: 0x78C9, - 4424: 0x78CC, - 4425: 0x78CE, - 4426: 0x78D2, - 4427: 0x78D3, - 4428: 0x78D5, - 4429: 0x78D6, - 4430: 0x78E4, - 4431: 0x78DB, - 4432: 0x78DF, - 4433: 0x78E0, - 4434: 0x78E1, - 4435: 0x78E6, - 4436: 0x78EA, - 4437: 0x78F2, - 4438: 0x78F3, - 4439: 0x7900, - 4440: 0x78F6, - 4441: 0x78F7, - 4442: 0x78FA, - 4443: 0x78FB, - 4444: 0x78FF, - 4445: 0x7906, - 4446: 0x790C, - 4447: 0x7910, - 4448: 0x791A, - 4449: 0x791C, - 4450: 0x791E, - 4451: 0x791F, - 4452: 0x7920, - 4453: 0x7925, - 4454: 0x7927, - 4455: 0x7929, - 4456: 0x792D, - 4457: 0x7931, - 4458: 0x7934, - 4459: 0x7935, - 4460: 0x793B, - 4461: 0x793D, - 4462: 0x793F, - 4463: 0x7944, - 4464: 0x7945, - 4465: 0x7946, - 4466: 0x794A, - 4467: 0x794B, - 4468: 0x794F, - 4469: 0x7951, - 4470: 0x7954, - 4471: 0x7958, - 4472: 0x795B, - 4473: 0x795C, - 4474: 0x7967, - 4475: 0x7969, - 4476: 0x796B, - 4477: 0x7972, - 4478: 0x7979, - 4479: 0x797B, - 4480: 0x797C, - 4481: 0x797E, - 4482: 0x798B, - 4483: 0x798C, - 4484: 0x7991, - 4485: 0x7993, - 4486: 0x7994, - 4487: 0x7995, - 4488: 0x7996, - 4489: 0x7998, - 4490: 0x799B, - 4491: 0x799C, - 4492: 0x79A1, - 4493: 0x79A8, - 4494: 0x79A9, - 4495: 0x79AB, - 4496: 0x79AF, - 4497: 0x79B1, - 4498: 0x79B4, - 4499: 0x79B8, - 4500: 0x79BB, - 4501: 0x79C2, - 4502: 0x79C4, - 4503: 0x79C7, - 4504: 0x79C8, - 4505: 0x79CA, - 4506: 0x79CF, - 4507: 0x79D4, - 4508: 0x79D6, - 4509: 0x79DA, - 4510: 0x79DD, - 4511: 0x79DE, - 4512: 0x79E0, - 4513: 0x79E2, - 4514: 0x79E5, - 4515: 0x79EA, - 4516: 0x79EB, - 4517: 0x79ED, - 4518: 0x79F1, - 4519: 0x79F8, - 4520: 0x79FC, - 4521: 0x7A02, - 4522: 0x7A03, - 4523: 0x7A07, - 4524: 0x7A09, - 4525: 0x7A0A, - 4526: 0x7A0C, - 4527: 0x7A11, - 4528: 0x7A15, - 4529: 0x7A1B, - 4530: 0x7A1E, - 4531: 0x7A21, - 4532: 0x7A27, - 4533: 0x7A2B, - 4534: 0x7A2D, - 4535: 0x7A2F, - 4536: 0x7A30, - 4537: 0x7A34, - 4538: 0x7A35, - 4539: 0x7A38, - 4540: 0x7A39, - 4541: 0x7A3A, - 4542: 0x7A44, - 4543: 0x7A45, - 4544: 0x7A47, - 4545: 0x7A48, - 4546: 0x7A4C, - 4547: 0x7A55, - 4548: 0x7A56, - 4549: 0x7A59, - 4550: 0x7A5C, - 4551: 0x7A5D, - 4552: 0x7A5F, - 4553: 0x7A60, - 4554: 0x7A65, - 4555: 0x7A67, - 4556: 0x7A6A, - 4557: 0x7A6D, - 4558: 0x7A75, - 4559: 0x7A78, - 4560: 0x7A7E, - 4561: 0x7A80, - 4562: 0x7A82, - 4563: 0x7A85, - 4564: 0x7A86, - 4565: 0x7A8A, - 4566: 0x7A8B, - 4567: 0x7A90, - 4568: 0x7A91, - 4569: 0x7A94, - 4570: 0x7A9E, - 4571: 0x7AA0, - 4572: 0x7AA3, - 4573: 0x7AAC, - 4574: 0x7AB3, - 4575: 0x7AB5, - 4576: 0x7AB9, - 4577: 0x7ABB, - 4578: 0x7ABC, - 4579: 0x7AC6, - 4580: 0x7AC9, - 4581: 0x7ACC, - 4582: 0x7ACE, - 4583: 0x7AD1, - 4584: 0x7ADB, - 4585: 0x7AE8, - 4586: 0x7AE9, - 4587: 0x7AEB, - 4588: 0x7AEC, - 4589: 0x7AF1, - 4590: 0x7AF4, - 4591: 0x7AFB, - 4592: 0x7AFD, - 4593: 0x7AFE, - 4594: 0x7B07, - 4595: 0x7B14, - 4596: 0x7B1F, - 4597: 0x7B23, - 4598: 0x7B27, - 4599: 0x7B29, - 4600: 0x7B2A, - 4601: 0x7B2B, - 4602: 0x7B2D, - 4603: 0x7B2E, - 4604: 0x7B2F, - 4605: 0x7B30, - 4606: 0x7B31, - 4607: 0x7B34, - 4608: 0x7B3D, - 4609: 0x7B3F, - 4610: 0x7B40, - 4611: 0x7B41, - 4612: 0x7B47, - 4613: 0x7B4E, - 4614: 0x7B55, - 4615: 0x7B60, - 4616: 0x7B64, - 4617: 0x7B66, - 4618: 0x7B69, - 4619: 0x7B6A, - 4620: 0x7B6D, - 4621: 0x7B6F, - 4622: 0x7B72, - 4623: 0x7B73, - 4624: 0x7B77, - 4625: 0x7B84, - 4626: 0x7B89, - 4627: 0x7B8E, - 4628: 0x7B90, - 4629: 0x7B91, - 4630: 0x7B96, - 4631: 0x7B9B, - 4632: 0x7B9E, - 4633: 0x7BA0, - 4634: 0x7BA5, - 4635: 0x7BAC, - 4636: 0x7BAF, - 4637: 0x7BB0, - 4638: 0x7BB2, - 4639: 0x7BB5, - 4640: 0x7BB6, - 4641: 0x7BBA, - 4642: 0x7BBB, - 4643: 0x7BBC, - 4644: 0x7BBD, - 4645: 0x7BC2, - 4646: 0x7BC5, - 4647: 0x7BC8, - 4648: 0x7BCA, - 4649: 0x7BD4, - 4650: 0x7BD6, - 4651: 0x7BD7, - 4652: 0x7BD9, - 4653: 0x7BDA, - 4654: 0x7BDB, - 4655: 0x7BE8, - 4656: 0x7BEA, - 4657: 0x7BF2, - 4658: 0x7BF4, - 4659: 0x7BF5, - 4660: 0x7BF8, - 4661: 0x7BF9, - 4662: 0x7BFA, - 4663: 0x7BFC, - 4664: 0x7BFE, - 4665: 0x7C01, - 4666: 0x7C02, - 4667: 0x7C03, - 4668: 0x7C04, - 4669: 0x7C06, - 4670: 0x7C09, - 4671: 0x7C0B, - 4672: 0x7C0C, - 4673: 0x7C0E, - 4674: 0x7C0F, - 4675: 0x7C19, - 4676: 0x7C1B, - 4677: 0x7C20, - 4678: 0x7C25, - 4679: 0x7C26, - 4680: 0x7C28, - 4681: 0x7C2C, - 4682: 0x7C31, - 4683: 0x7C33, - 4684: 0x7C34, - 4685: 0x7C36, - 4686: 0x7C39, - 4687: 0x7C3A, - 4688: 0x7C46, - 4689: 0x7C4A, - 4690: 0x7C55, - 4691: 0x7C51, - 4692: 0x7C52, - 4693: 0x7C53, - 4694: 0x7C59, - 4695: 0x7C5A, - 4696: 0x7C5B, - 4697: 0x7C5C, - 4698: 0x7C5D, - 4699: 0x7C5E, - 4700: 0x7C61, - 4701: 0x7C63, - 4702: 0x7C67, - 4703: 0x7C69, - 4704: 0x7C6D, - 4705: 0x7C6E, - 4706: 0x7C70, - 4707: 0x7C72, - 4708: 0x7C79, - 4709: 0x7C7C, - 4710: 0x7C7D, - 4711: 0x7C86, - 4712: 0x7C87, - 4713: 0x7C8F, - 4714: 0x7C94, - 4715: 0x7C9E, - 4716: 0x7CA0, - 4717: 0x7CA6, - 4718: 0x7CB0, - 4719: 0x7CB6, - 4720: 0x7CB7, - 4721: 0x7CBA, - 4722: 0x7CBB, - 4723: 0x7CBC, - 4724: 0x7CBF, - 4725: 0x7CC4, - 4726: 0x7CC7, - 4727: 0x7CC8, - 4728: 0x7CC9, - 4729: 0x7CCD, - 4730: 0x7CCF, - 4731: 0x7CD3, - 4732: 0x7CD4, - 4733: 0x7CD5, - 4734: 0x7CD7, - 4735: 0x7CD9, - 4736: 0x7CDA, - 4737: 0x7CDD, - 4738: 0x7CE6, - 4739: 0x7CE9, - 4740: 0x7CEB, - 4741: 0x7CF5, - 4742: 0x7D03, - 4743: 0x7D07, - 4744: 0x7D08, - 4745: 0x7D09, - 4746: 0x7D0F, - 4747: 0x7D11, - 4748: 0x7D12, - 4749: 0x7D13, - 4750: 0x7D16, - 4751: 0x7D1D, - 4752: 0x7D1E, - 4753: 0x7D23, - 4754: 0x7D26, - 4755: 0x7D2A, - 4756: 0x7D2D, - 4757: 0x7D31, - 4758: 0x7D3C, - 4759: 0x7D3D, - 4760: 0x7D3E, - 4761: 0x7D40, - 4762: 0x7D41, - 4763: 0x7D47, - 4764: 0x7D48, - 4765: 0x7D4D, - 4766: 0x7D51, - 4767: 0x7D53, - 4768: 0x7D57, - 4769: 0x7D59, - 4770: 0x7D5A, - 4771: 0x7D5C, - 4772: 0x7D5D, - 4773: 0x7D65, - 4774: 0x7D67, - 4775: 0x7D6A, - 4776: 0x7D70, - 4777: 0x7D78, - 4778: 0x7D7A, - 4779: 0x7D7B, - 4780: 0x7D7F, - 4781: 0x7D81, - 4782: 0x7D82, - 4783: 0x7D83, - 4784: 0x7D85, - 4785: 0x7D86, - 4786: 0x7D88, - 4787: 0x7D8B, - 4788: 0x7D8C, - 4789: 0x7D8D, - 4790: 0x7D91, - 4791: 0x7D96, - 4792: 0x7D97, - 4793: 0x7D9D, - 4794: 0x7D9E, - 4795: 0x7DA6, - 4796: 0x7DA7, - 4797: 0x7DAA, - 4798: 0x7DB3, - 4799: 0x7DB6, - 4800: 0x7DB7, - 4801: 0x7DB9, - 4802: 0x7DC2, - 4803: 0x7DC3, - 4804: 0x7DC4, - 4805: 0x7DC5, - 4806: 0x7DC6, - 4807: 0x7DCC, - 4808: 0x7DCD, - 4809: 0x7DCE, - 4810: 0x7DD7, - 4811: 0x7DD9, - 4812: 0x7E00, - 4813: 0x7DE2, - 4814: 0x7DE5, - 4815: 0x7DE6, - 4816: 0x7DEA, - 4817: 0x7DEB, - 4818: 0x7DED, - 4819: 0x7DF1, - 4820: 0x7DF5, - 4821: 0x7DF6, - 4822: 0x7DF9, - 4823: 0x7DFA, - 4824: 0x7E08, - 4825: 0x7E10, - 4826: 0x7E11, - 4827: 0x7E15, - 4828: 0x7E17, - 4829: 0x7E1C, - 4830: 0x7E1D, - 4831: 0x7E20, - 4832: 0x7E27, - 4833: 0x7E28, - 4834: 0x7E2C, - 4835: 0x7E2D, - 4836: 0x7E2F, - 4837: 0x7E33, - 4838: 0x7E36, - 4839: 0x7E3F, - 4840: 0x7E44, - 4841: 0x7E45, - 4842: 0x7E47, - 4843: 0x7E4E, - 4844: 0x7E50, - 4845: 0x7E52, - 4846: 0x7E58, - 4847: 0x7E5F, - 4848: 0x7E61, - 4849: 0x7E62, - 4850: 0x7E65, - 4851: 0x7E6B, - 4852: 0x7E6E, - 4853: 0x7E6F, - 4854: 0x7E73, - 4855: 0x7E78, - 4856: 0x7E7E, - 4857: 0x7E81, - 4858: 0x7E86, - 4859: 0x7E87, - 4860: 0x7E8A, - 4861: 0x7E8D, - 4862: 0x7E91, - 4863: 0x7E95, - 4864: 0x7E98, - 4865: 0x7E9A, - 4866: 0x7E9D, - 4867: 0x7E9E, - 4868: 0x7F3C, - 4869: 0x7F3B, - 4870: 0x7F3D, - 4871: 0x7F3E, - 4872: 0x7F3F, - 4873: 0x7F43, - 4874: 0x7F44, - 4875: 0x7F47, - 4876: 0x7F4F, - 4877: 0x7F52, - 4878: 0x7F53, - 4879: 0x7F5B, - 4880: 0x7F5C, - 4881: 0x7F5D, - 4882: 0x7F61, - 4883: 0x7F63, - 4884: 0x7F64, - 4885: 0x7F65, - 4886: 0x7F66, - 4887: 0x7F6D, - 4888: 0x7F71, - 4889: 0x7F7D, - 4890: 0x7F7E, - 4891: 0x7F7F, - 4892: 0x7F80, - 4893: 0x7F8B, - 4894: 0x7F8D, - 4895: 0x7F8F, - 4896: 0x7F90, - 4897: 0x7F91, - 4898: 0x7F96, - 4899: 0x7F97, - 4900: 0x7F9C, - 4901: 0x7FA1, - 4902: 0x7FA2, - 4903: 0x7FA6, - 4904: 0x7FAA, - 4905: 0x7FAD, - 4906: 0x7FB4, - 4907: 0x7FBC, - 4908: 0x7FBF, - 4909: 0x7FC0, - 4910: 0x7FC3, - 4911: 0x7FC8, - 4912: 0x7FCE, - 4913: 0x7FCF, - 4914: 0x7FDB, - 4915: 0x7FDF, - 4916: 0x7FE3, - 4917: 0x7FE5, - 4918: 0x7FE8, - 4919: 0x7FEC, - 4920: 0x7FEE, - 4921: 0x7FEF, - 4922: 0x7FF2, - 4923: 0x7FFA, - 4924: 0x7FFD, - 4925: 0x7FFE, - 4926: 0x7FFF, - 4927: 0x8007, - 4928: 0x8008, - 4929: 0x800A, - 4930: 0x800D, - 4931: 0x800E, - 4932: 0x800F, - 4933: 0x8011, - 4934: 0x8013, - 4935: 0x8014, - 4936: 0x8016, - 4937: 0x801D, - 4938: 0x801E, - 4939: 0x801F, - 4940: 0x8020, - 4941: 0x8024, - 4942: 0x8026, - 4943: 0x802C, - 4944: 0x802E, - 4945: 0x8030, - 4946: 0x8034, - 4947: 0x8035, - 4948: 0x8037, - 4949: 0x8039, - 4950: 0x803A, - 4951: 0x803C, - 4952: 0x803E, - 4953: 0x8040, - 4954: 0x8044, - 4955: 0x8060, - 4956: 0x8064, - 4957: 0x8066, - 4958: 0x806D, - 4959: 0x8071, - 4960: 0x8075, - 4961: 0x8081, - 4962: 0x8088, - 4963: 0x808E, - 4964: 0x809C, - 4965: 0x809E, - 4966: 0x80A6, - 4967: 0x80A7, - 4968: 0x80AB, - 4969: 0x80B8, - 4970: 0x80B9, - 4971: 0x80C8, - 4972: 0x80CD, - 4973: 0x80CF, - 4974: 0x80D2, - 4975: 0x80D4, - 4976: 0x80D5, - 4977: 0x80D7, - 4978: 0x80D8, - 4979: 0x80E0, - 4980: 0x80ED, - 4981: 0x80EE, - 4982: 0x80F0, - 4983: 0x80F2, - 4984: 0x80F3, - 4985: 0x80F6, - 4986: 0x80F9, - 4987: 0x80FA, - 4988: 0x80FE, - 4989: 0x8103, - 4990: 0x810B, - 4991: 0x8116, - 4992: 0x8117, - 4993: 0x8118, - 4994: 0x811C, - 4995: 0x811E, - 4996: 0x8120, - 4997: 0x8124, - 4998: 0x8127, - 4999: 0x812C, - 5000: 0x8130, - 5001: 0x8135, - 5002: 0x813A, - 5003: 0x813C, - 5004: 0x8145, - 5005: 0x8147, - 5006: 0x814A, - 5007: 0x814C, - 5008: 0x8152, - 5009: 0x8157, - 5010: 0x8160, - 5011: 0x8161, - 5012: 0x8167, - 5013: 0x8168, - 5014: 0x8169, - 5015: 0x816D, - 5016: 0x816F, - 5017: 0x8177, - 5018: 0x8181, - 5019: 0x8190, - 5020: 0x8184, - 5021: 0x8185, - 5022: 0x8186, - 5023: 0x818B, - 5024: 0x818E, - 5025: 0x8196, - 5026: 0x8198, - 5027: 0x819B, - 5028: 0x819E, - 5029: 0x81A2, - 5030: 0x81AE, - 5031: 0x81B2, - 5032: 0x81B4, - 5033: 0x81BB, - 5034: 0x81CB, - 5035: 0x81C3, - 5036: 0x81C5, - 5037: 0x81CA, - 5038: 0x81CE, - 5039: 0x81CF, - 5040: 0x81D5, - 5041: 0x81D7, - 5042: 0x81DB, - 5043: 0x81DD, - 5044: 0x81DE, - 5045: 0x81E1, - 5046: 0x81E4, - 5047: 0x81EB, - 5048: 0x81EC, - 5049: 0x81F0, - 5050: 0x81F1, - 5051: 0x81F2, - 5052: 0x81F5, - 5053: 0x81F6, - 5054: 0x81F8, - 5055: 0x81F9, - 5056: 0x81FD, - 5057: 0x81FF, - 5058: 0x8200, - 5059: 0x8203, - 5060: 0x820F, - 5061: 0x8213, - 5062: 0x8214, - 5063: 0x8219, - 5064: 0x821A, - 5065: 0x821D, - 5066: 0x8221, - 5067: 0x8222, - 5068: 0x8228, - 5069: 0x8232, - 5070: 0x8234, - 5071: 0x823A, - 5072: 0x8243, - 5073: 0x8244, - 5074: 0x8245, - 5075: 0x8246, - 5076: 0x824B, - 5077: 0x824E, - 5078: 0x824F, - 5079: 0x8251, - 5080: 0x8256, - 5081: 0x825C, - 5082: 0x8260, - 5083: 0x8263, - 5084: 0x8267, - 5085: 0x826D, - 5086: 0x8274, - 5087: 0x827B, - 5088: 0x827D, - 5089: 0x827F, - 5090: 0x8280, - 5091: 0x8281, - 5092: 0x8283, - 5093: 0x8284, - 5094: 0x8287, - 5095: 0x8289, - 5096: 0x828A, - 5097: 0x828E, - 5098: 0x8291, - 5099: 0x8294, - 5100: 0x8296, - 5101: 0x8298, - 5102: 0x829A, - 5103: 0x829B, - 5104: 0x82A0, - 5105: 0x82A1, - 5106: 0x82A3, - 5107: 0x82A4, - 5108: 0x82A7, - 5109: 0x82A8, - 5110: 0x82A9, - 5111: 0x82AA, - 5112: 0x82AE, - 5113: 0x82B0, - 5114: 0x82B2, - 5115: 0x82B4, - 5116: 0x82B7, - 5117: 0x82BA, - 5118: 0x82BC, - 5119: 0x82BE, - 5120: 0x82BF, - 5121: 0x82C6, - 5122: 0x82D0, - 5123: 0x82D5, - 5124: 0x82DA, - 5125: 0x82E0, - 5126: 0x82E2, - 5127: 0x82E4, - 5128: 0x82E8, - 5129: 0x82EA, - 5130: 0x82ED, - 5131: 0x82EF, - 5132: 0x82F6, - 5133: 0x82F7, - 5134: 0x82FD, - 5135: 0x82FE, - 5136: 0x8300, - 5137: 0x8301, - 5138: 0x8307, - 5139: 0x8308, - 5140: 0x830A, - 5141: 0x830B, - 5142: 0x8354, - 5143: 0x831B, - 5144: 0x831D, - 5145: 0x831E, - 5146: 0x831F, - 5147: 0x8321, - 5148: 0x8322, - 5149: 0x832C, - 5150: 0x832D, - 5151: 0x832E, - 5152: 0x8330, - 5153: 0x8333, - 5154: 0x8337, - 5155: 0x833A, - 5156: 0x833C, - 5157: 0x833D, - 5158: 0x8342, - 5159: 0x8343, - 5160: 0x8344, - 5161: 0x8347, - 5162: 0x834D, - 5163: 0x834E, - 5164: 0x8351, - 5165: 0x8355, - 5166: 0x8356, - 5167: 0x8357, - 5168: 0x8370, - 5169: 0x8378, - 5170: 0x837D, - 5171: 0x837F, - 5172: 0x8380, - 5173: 0x8382, - 5174: 0x8384, - 5175: 0x8386, - 5176: 0x838D, - 5177: 0x8392, - 5178: 0x8394, - 5179: 0x8395, - 5180: 0x8398, - 5181: 0x8399, - 5182: 0x839B, - 5183: 0x839C, - 5184: 0x839D, - 5185: 0x83A6, - 5186: 0x83A7, - 5187: 0x83A9, - 5188: 0x83AC, - 5189: 0x83BE, - 5190: 0x83BF, - 5191: 0x83C0, - 5192: 0x83C7, - 5193: 0x83C9, - 5194: 0x83CF, - 5195: 0x83D0, - 5196: 0x83D1, - 5197: 0x83D4, - 5198: 0x83DD, - 5199: 0x8353, - 5200: 0x83E8, - 5201: 0x83EA, - 5202: 0x83F6, - 5203: 0x83F8, - 5204: 0x83F9, - 5205: 0x83FC, - 5206: 0x8401, - 5207: 0x8406, - 5208: 0x840A, - 5209: 0x840F, - 5210: 0x8411, - 5211: 0x8415, - 5212: 0x8419, - 5213: 0x83AD, - 5214: 0x842F, - 5215: 0x8439, - 5216: 0x8445, - 5217: 0x8447, - 5218: 0x8448, - 5219: 0x844A, - 5220: 0x844D, - 5221: 0x844F, - 5222: 0x8451, - 5223: 0x8452, - 5224: 0x8456, - 5225: 0x8458, - 5226: 0x8459, - 5227: 0x845A, - 5228: 0x845C, - 5229: 0x8460, - 5230: 0x8464, - 5231: 0x8465, - 5232: 0x8467, - 5233: 0x846A, - 5234: 0x8470, - 5235: 0x8473, - 5236: 0x8474, - 5237: 0x8476, - 5238: 0x8478, - 5239: 0x847C, - 5240: 0x847D, - 5241: 0x8481, - 5242: 0x8485, - 5243: 0x8492, - 5244: 0x8493, - 5245: 0x8495, - 5246: 0x849E, - 5247: 0x84A6, - 5248: 0x84A8, - 5249: 0x84A9, - 5250: 0x84AA, - 5251: 0x84AF, - 5252: 0x84B1, - 5253: 0x84B4, - 5254: 0x84BA, - 5255: 0x84BD, - 5256: 0x84BE, - 5257: 0x84C0, - 5258: 0x84C2, - 5259: 0x84C7, - 5260: 0x84C8, - 5261: 0x84CC, - 5262: 0x84CF, - 5263: 0x84D3, - 5264: 0x84DC, - 5265: 0x84E7, - 5266: 0x84EA, - 5267: 0x84EF, - 5268: 0x84F0, - 5269: 0x84F1, - 5270: 0x84F2, - 5271: 0x84F7, - 5272: 0x8532, - 5273: 0x84FA, - 5274: 0x84FB, - 5275: 0x84FD, - 5276: 0x8502, - 5277: 0x8503, - 5278: 0x8507, - 5279: 0x850C, - 5280: 0x850E, - 5281: 0x8510, - 5282: 0x851C, - 5283: 0x851E, - 5284: 0x8522, - 5285: 0x8523, - 5286: 0x8524, - 5287: 0x8525, - 5288: 0x8527, - 5289: 0x852A, - 5290: 0x852B, - 5291: 0x852F, - 5292: 0x8533, - 5293: 0x8534, - 5294: 0x8536, - 5295: 0x853F, - 5296: 0x8546, - 5297: 0x854F, - 5298: 0x8550, - 5299: 0x8551, - 5300: 0x8552, - 5301: 0x8553, - 5302: 0x8556, - 5303: 0x8559, - 5304: 0x855C, - 5305: 0x855D, - 5306: 0x855E, - 5307: 0x855F, - 5308: 0x8560, - 5309: 0x8561, - 5310: 0x8562, - 5311: 0x8564, - 5312: 0x856B, - 5313: 0x856F, - 5314: 0x8579, - 5315: 0x857A, - 5316: 0x857B, - 5317: 0x857D, - 5318: 0x857F, - 5319: 0x8581, - 5320: 0x8585, - 5321: 0x8586, - 5322: 0x8589, - 5323: 0x858B, - 5324: 0x858C, - 5325: 0x858F, - 5326: 0x8593, - 5327: 0x8598, - 5328: 0x859D, - 5329: 0x859F, - 5330: 0x85A0, - 5331: 0x85A2, - 5332: 0x85A5, - 5333: 0x85A7, - 5334: 0x85B4, - 5335: 0x85B6, - 5336: 0x85B7, - 5337: 0x85B8, - 5338: 0x85BC, - 5339: 0x85BD, - 5340: 0x85BE, - 5341: 0x85BF, - 5342: 0x85C2, - 5343: 0x85C7, - 5344: 0x85CA, - 5345: 0x85CB, - 5346: 0x85CE, - 5347: 0x85AD, - 5348: 0x85D8, - 5349: 0x85DA, - 5350: 0x85DF, - 5351: 0x85E0, - 5352: 0x85E6, - 5353: 0x85E8, - 5354: 0x85ED, - 5355: 0x85F3, - 5356: 0x85F6, - 5357: 0x85FC, - 5358: 0x85FF, - 5359: 0x8600, - 5360: 0x8604, - 5361: 0x8605, - 5362: 0x860D, - 5363: 0x860E, - 5364: 0x8610, - 5365: 0x8611, - 5366: 0x8612, - 5367: 0x8618, - 5368: 0x8619, - 5369: 0x861B, - 5370: 0x861E, - 5371: 0x8621, - 5372: 0x8627, - 5373: 0x8629, - 5374: 0x8636, - 5375: 0x8638, - 5376: 0x863A, - 5377: 0x863C, - 5378: 0x863D, - 5379: 0x8640, - 5380: 0x8642, - 5381: 0x8646, - 5382: 0x8652, - 5383: 0x8653, - 5384: 0x8656, - 5385: 0x8657, - 5386: 0x8658, - 5387: 0x8659, - 5388: 0x865D, - 5389: 0x8660, - 5390: 0x8661, - 5391: 0x8662, - 5392: 0x8663, - 5393: 0x8664, - 5394: 0x8669, - 5395: 0x866C, - 5396: 0x866F, - 5397: 0x8675, - 5398: 0x8676, - 5399: 0x8677, - 5400: 0x867A, - 5401: 0x868D, - 5402: 0x8691, - 5403: 0x8696, - 5404: 0x8698, - 5405: 0x869A, - 5406: 0x869C, - 5407: 0x86A1, - 5408: 0x86A6, - 5409: 0x86A7, - 5410: 0x86A8, - 5411: 0x86AD, - 5412: 0x86B1, - 5413: 0x86B3, - 5414: 0x86B4, - 5415: 0x86B5, - 5416: 0x86B7, - 5417: 0x86B8, - 5418: 0x86B9, - 5419: 0x86BF, - 5420: 0x86C0, - 5421: 0x86C1, - 5422: 0x86C3, - 5423: 0x86C5, - 5424: 0x86D1, - 5425: 0x86D2, - 5426: 0x86D5, - 5427: 0x86D7, - 5428: 0x86DA, - 5429: 0x86DC, - 5430: 0x86E0, - 5431: 0x86E3, - 5432: 0x86E5, - 5433: 0x86E7, - 5434: 0x8688, - 5435: 0x86FA, - 5436: 0x86FC, - 5437: 0x86FD, - 5438: 0x8704, - 5439: 0x8705, - 5440: 0x8707, - 5441: 0x870B, - 5442: 0x870E, - 5443: 0x870F, - 5444: 0x8710, - 5445: 0x8713, - 5446: 0x8714, - 5447: 0x8719, - 5448: 0x871E, - 5449: 0x871F, - 5450: 0x8721, - 5451: 0x8723, - 5452: 0x8728, - 5453: 0x872E, - 5454: 0x872F, - 5455: 0x8731, - 5456: 0x8732, - 5457: 0x8739, - 5458: 0x873A, - 5459: 0x873C, - 5460: 0x873D, - 5461: 0x873E, - 5462: 0x8740, - 5463: 0x8743, - 5464: 0x8745, - 5465: 0x874D, - 5466: 0x8758, - 5467: 0x875D, - 5468: 0x8761, - 5469: 0x8764, - 5470: 0x8765, - 5471: 0x876F, - 5472: 0x8771, - 5473: 0x8772, - 5474: 0x877B, - 5475: 0x8783, - 5476: 0x8784, - 5477: 0x8785, - 5478: 0x8786, - 5479: 0x8787, - 5480: 0x8788, - 5481: 0x8789, - 5482: 0x878B, - 5483: 0x878C, - 5484: 0x8790, - 5485: 0x8793, - 5486: 0x8795, - 5487: 0x8797, - 5488: 0x8798, - 5489: 0x8799, - 5490: 0x879E, - 5491: 0x87A0, - 5492: 0x87A3, - 5493: 0x87A7, - 5494: 0x87AC, - 5495: 0x87AD, - 5496: 0x87AE, - 5497: 0x87B1, - 5498: 0x87B5, - 5499: 0x87BE, - 5500: 0x87BF, - 5501: 0x87C1, - 5502: 0x87C8, - 5503: 0x87C9, - 5504: 0x87CA, - 5505: 0x87CE, - 5506: 0x87D5, - 5507: 0x87D6, - 5508: 0x87D9, - 5509: 0x87DA, - 5510: 0x87DC, - 5511: 0x87DF, - 5512: 0x87E2, - 5513: 0x87E3, - 5514: 0x87E4, - 5515: 0x87EA, - 5516: 0x87EB, - 5517: 0x87ED, - 5518: 0x87F1, - 5519: 0x87F3, - 5520: 0x87F8, - 5521: 0x87FA, - 5522: 0x87FF, - 5523: 0x8801, - 5524: 0x8803, - 5525: 0x8806, - 5526: 0x8809, - 5527: 0x880A, - 5528: 0x880B, - 5529: 0x8810, - 5530: 0x8819, - 5531: 0x8812, - 5532: 0x8813, - 5533: 0x8814, - 5534: 0x8818, - 5535: 0x881A, - 5536: 0x881B, - 5537: 0x881C, - 5538: 0x881E, - 5539: 0x881F, - 5540: 0x8828, - 5541: 0x882D, - 5542: 0x882E, - 5543: 0x8830, - 5544: 0x8832, - 5545: 0x8835, - 5546: 0x883A, - 5547: 0x883C, - 5548: 0x8841, - 5549: 0x8843, - 5550: 0x8845, - 5551: 0x8848, - 5552: 0x8849, - 5553: 0x884A, - 5554: 0x884B, - 5555: 0x884E, - 5556: 0x8851, - 5557: 0x8855, - 5558: 0x8856, - 5559: 0x8858, - 5560: 0x885A, - 5561: 0x885C, - 5562: 0x885F, - 5563: 0x8860, - 5564: 0x8864, - 5565: 0x8869, - 5566: 0x8871, - 5567: 0x8879, - 5568: 0x887B, - 5569: 0x8880, - 5570: 0x8898, - 5571: 0x889A, - 5572: 0x889B, - 5573: 0x889C, - 5574: 0x889F, - 5575: 0x88A0, - 5576: 0x88A8, - 5577: 0x88AA, - 5578: 0x88BA, - 5579: 0x88BD, - 5580: 0x88BE, - 5581: 0x88C0, - 5582: 0x88CA, - 5583: 0x88CB, - 5584: 0x88CC, - 5585: 0x88CD, - 5586: 0x88CE, - 5587: 0x88D1, - 5588: 0x88D2, - 5589: 0x88D3, - 5590: 0x88DB, - 5591: 0x88DE, - 5592: 0x88E7, - 5593: 0x88EF, - 5594: 0x88F0, - 5595: 0x88F1, - 5596: 0x88F5, - 5597: 0x88F7, - 5598: 0x8901, - 5599: 0x8906, - 5600: 0x890D, - 5601: 0x890E, - 5602: 0x890F, - 5603: 0x8915, - 5604: 0x8916, - 5605: 0x8918, - 5606: 0x8919, - 5607: 0x891A, - 5608: 0x891C, - 5609: 0x8920, - 5610: 0x8926, - 5611: 0x8927, - 5612: 0x8928, - 5613: 0x8930, - 5614: 0x8931, - 5615: 0x8932, - 5616: 0x8935, - 5617: 0x8939, - 5618: 0x893A, - 5619: 0x893E, - 5620: 0x8940, - 5621: 0x8942, - 5622: 0x8945, - 5623: 0x8946, - 5624: 0x8949, - 5625: 0x894F, - 5626: 0x8952, - 5627: 0x8957, - 5628: 0x895A, - 5629: 0x895B, - 5630: 0x895C, - 5631: 0x8961, - 5632: 0x8962, - 5633: 0x8963, - 5634: 0x896B, - 5635: 0x896E, - 5636: 0x8970, - 5637: 0x8973, - 5638: 0x8975, - 5639: 0x897A, - 5640: 0x897B, - 5641: 0x897C, - 5642: 0x897D, - 5643: 0x8989, - 5644: 0x898D, - 5645: 0x8990, - 5646: 0x8994, - 5647: 0x8995, - 5648: 0x899B, - 5649: 0x899C, - 5650: 0x899F, - 5651: 0x89A0, - 5652: 0x89A5, - 5653: 0x89B0, - 5654: 0x89B4, - 5655: 0x89B5, - 5656: 0x89B6, - 5657: 0x89B7, - 5658: 0x89BC, - 5659: 0x89D4, - 5660: 0x89D5, - 5661: 0x89D6, - 5662: 0x89D7, - 5663: 0x89D8, - 5664: 0x89E5, - 5665: 0x89E9, - 5666: 0x89EB, - 5667: 0x89ED, - 5668: 0x89F1, - 5669: 0x89F3, - 5670: 0x89F6, - 5671: 0x89F9, - 5672: 0x89FD, - 5673: 0x89FF, - 5674: 0x8A04, - 5675: 0x8A05, - 5676: 0x8A07, - 5677: 0x8A0F, - 5678: 0x8A11, - 5679: 0x8A12, - 5680: 0x8A14, - 5681: 0x8A15, - 5682: 0x8A1E, - 5683: 0x8A20, - 5684: 0x8A22, - 5685: 0x8A24, - 5686: 0x8A26, - 5687: 0x8A2B, - 5688: 0x8A2C, - 5689: 0x8A2F, - 5690: 0x8A35, - 5691: 0x8A37, - 5692: 0x8A3D, - 5693: 0x8A3E, - 5694: 0x8A40, - 5695: 0x8A43, - 5696: 0x8A45, - 5697: 0x8A47, - 5698: 0x8A49, - 5699: 0x8A4D, - 5700: 0x8A4E, - 5701: 0x8A53, - 5702: 0x8A56, - 5703: 0x8A57, - 5704: 0x8A58, - 5705: 0x8A5C, - 5706: 0x8A5D, - 5707: 0x8A61, - 5708: 0x8A65, - 5709: 0x8A67, - 5710: 0x8A75, - 5711: 0x8A76, - 5712: 0x8A77, - 5713: 0x8A79, - 5714: 0x8A7A, - 5715: 0x8A7B, - 5716: 0x8A7E, - 5717: 0x8A7F, - 5718: 0x8A80, - 5719: 0x8A83, - 5720: 0x8A86, - 5721: 0x8A8B, - 5722: 0x8A8F, - 5723: 0x8A90, - 5724: 0x8A92, - 5725: 0x8A96, - 5726: 0x8A97, - 5727: 0x8A99, - 5728: 0x8A9F, - 5729: 0x8AA7, - 5730: 0x8AA9, - 5731: 0x8AAE, - 5732: 0x8AAF, - 5733: 0x8AB3, - 5734: 0x8AB6, - 5735: 0x8AB7, - 5736: 0x8ABB, - 5737: 0x8ABE, - 5738: 0x8AC3, - 5739: 0x8AC6, - 5740: 0x8AC8, - 5741: 0x8AC9, - 5742: 0x8ACA, - 5743: 0x8AD1, - 5744: 0x8AD3, - 5745: 0x8AD4, - 5746: 0x8AD5, - 5747: 0x8AD7, - 5748: 0x8ADD, - 5749: 0x8ADF, - 5750: 0x8AEC, - 5751: 0x8AF0, - 5752: 0x8AF4, - 5753: 0x8AF5, - 5754: 0x8AF6, - 5755: 0x8AFC, - 5756: 0x8AFF, - 5757: 0x8B05, - 5758: 0x8B06, - 5759: 0x8B0B, - 5760: 0x8B11, - 5761: 0x8B1C, - 5762: 0x8B1E, - 5763: 0x8B1F, - 5764: 0x8B0A, - 5765: 0x8B2D, - 5766: 0x8B30, - 5767: 0x8B37, - 5768: 0x8B3C, - 5769: 0x8B42, - 5770: 0x8B43, - 5771: 0x8B44, - 5772: 0x8B45, - 5773: 0x8B46, - 5774: 0x8B48, - 5775: 0x8B52, - 5776: 0x8B53, - 5777: 0x8B54, - 5778: 0x8B59, - 5779: 0x8B4D, - 5780: 0x8B5E, - 5781: 0x8B63, - 5782: 0x8B6D, - 5783: 0x8B76, - 5784: 0x8B78, - 5785: 0x8B79, - 5786: 0x8B7C, - 5787: 0x8B7E, - 5788: 0x8B81, - 5789: 0x8B84, - 5790: 0x8B85, - 5791: 0x8B8B, - 5792: 0x8B8D, - 5793: 0x8B8F, - 5794: 0x8B94, - 5795: 0x8B95, - 5796: 0x8B9C, - 5797: 0x8B9E, - 5798: 0x8B9F, - 5799: 0x8C38, - 5800: 0x8C39, - 5801: 0x8C3D, - 5802: 0x8C3E, - 5803: 0x8C45, - 5804: 0x8C47, - 5805: 0x8C49, - 5806: 0x8C4B, - 5807: 0x8C4F, - 5808: 0x8C51, - 5809: 0x8C53, - 5810: 0x8C54, - 5811: 0x8C57, - 5812: 0x8C58, - 5813: 0x8C5B, - 5814: 0x8C5D, - 5815: 0x8C59, - 5816: 0x8C63, - 5817: 0x8C64, - 5818: 0x8C66, - 5819: 0x8C68, - 5820: 0x8C69, - 5821: 0x8C6D, - 5822: 0x8C73, - 5823: 0x8C75, - 5824: 0x8C76, - 5825: 0x8C7B, - 5826: 0x8C7E, - 5827: 0x8C86, - 5828: 0x8C87, - 5829: 0x8C8B, - 5830: 0x8C90, - 5831: 0x8C92, - 5832: 0x8C93, - 5833: 0x8C99, - 5834: 0x8C9B, - 5835: 0x8C9C, - 5836: 0x8CA4, - 5837: 0x8CB9, - 5838: 0x8CBA, - 5839: 0x8CC5, - 5840: 0x8CC6, - 5841: 0x8CC9, - 5842: 0x8CCB, - 5843: 0x8CCF, - 5844: 0x8CD6, - 5845: 0x8CD5, - 5846: 0x8CD9, - 5847: 0x8CDD, - 5848: 0x8CE1, - 5849: 0x8CE8, - 5850: 0x8CEC, - 5851: 0x8CEF, - 5852: 0x8CF0, - 5853: 0x8CF2, - 5854: 0x8CF5, - 5855: 0x8CF7, - 5856: 0x8CF8, - 5857: 0x8CFE, - 5858: 0x8CFF, - 5859: 0x8D01, - 5860: 0x8D03, - 5861: 0x8D09, - 5862: 0x8D12, - 5863: 0x8D17, - 5864: 0x8D1B, - 5865: 0x8D65, - 5866: 0x8D69, - 5867: 0x8D6C, - 5868: 0x8D6E, - 5869: 0x8D7F, - 5870: 0x8D82, - 5871: 0x8D84, - 5872: 0x8D88, - 5873: 0x8D8D, - 5874: 0x8D90, - 5875: 0x8D91, - 5876: 0x8D95, - 5877: 0x8D9E, - 5878: 0x8D9F, - 5879: 0x8DA0, - 5880: 0x8DA6, - 5881: 0x8DAB, - 5882: 0x8DAC, - 5883: 0x8DAF, - 5884: 0x8DB2, - 5885: 0x8DB5, - 5886: 0x8DB7, - 5887: 0x8DB9, - 5888: 0x8DBB, - 5889: 0x8DC0, - 5890: 0x8DC5, - 5891: 0x8DC6, - 5892: 0x8DC7, - 5893: 0x8DC8, - 5894: 0x8DCA, - 5895: 0x8DCE, - 5896: 0x8DD1, - 5897: 0x8DD4, - 5898: 0x8DD5, - 5899: 0x8DD7, - 5900: 0x8DD9, - 5901: 0x8DE4, - 5902: 0x8DE5, - 5903: 0x8DE7, - 5904: 0x8DEC, - 5905: 0x8DF0, - 5906: 0x8DBC, - 5907: 0x8DF1, - 5908: 0x8DF2, - 5909: 0x8DF4, - 5910: 0x8DFD, - 5911: 0x8E01, - 5912: 0x8E04, - 5913: 0x8E05, - 5914: 0x8E06, - 5915: 0x8E0B, - 5916: 0x8E11, - 5917: 0x8E14, - 5918: 0x8E16, - 5919: 0x8E20, - 5920: 0x8E21, - 5921: 0x8E22, - 5922: 0x8E23, - 5923: 0x8E26, - 5924: 0x8E27, - 5925: 0x8E31, - 5926: 0x8E33, - 5927: 0x8E36, - 5928: 0x8E37, - 5929: 0x8E38, - 5930: 0x8E39, - 5931: 0x8E3D, - 5932: 0x8E40, - 5933: 0x8E41, - 5934: 0x8E4B, - 5935: 0x8E4D, - 5936: 0x8E4E, - 5937: 0x8E4F, - 5938: 0x8E54, - 5939: 0x8E5B, - 5940: 0x8E5C, - 5941: 0x8E5D, - 5942: 0x8E5E, - 5943: 0x8E61, - 5944: 0x8E62, - 5945: 0x8E69, - 5946: 0x8E6C, - 5947: 0x8E6D, - 5948: 0x8E6F, - 5949: 0x8E70, - 5950: 0x8E71, - 5951: 0x8E79, - 5952: 0x8E7A, - 5953: 0x8E7B, - 5954: 0x8E82, - 5955: 0x8E83, - 5956: 0x8E89, - 5957: 0x8E90, - 5958: 0x8E92, - 5959: 0x8E95, - 5960: 0x8E9A, - 5961: 0x8E9B, - 5962: 0x8E9D, - 5963: 0x8E9E, - 5964: 0x8EA2, - 5965: 0x8EA7, - 5966: 0x8EA9, - 5967: 0x8EAD, - 5968: 0x8EAE, - 5969: 0x8EB3, - 5970: 0x8EB5, - 5971: 0x8EBA, - 5972: 0x8EBB, - 5973: 0x8EC0, - 5974: 0x8EC1, - 5975: 0x8EC3, - 5976: 0x8EC4, - 5977: 0x8EC7, - 5978: 0x8ECF, - 5979: 0x8ED1, - 5980: 0x8ED4, - 5981: 0x8EDC, - 5982: 0x8EE8, - 5983: 0x8EEE, - 5984: 0x8EF0, - 5985: 0x8EF1, - 5986: 0x8EF7, - 5987: 0x8EF9, - 5988: 0x8EFA, - 5989: 0x8EED, - 5990: 0x8F00, - 5991: 0x8F02, - 5992: 0x8F07, - 5993: 0x8F08, - 5994: 0x8F0F, - 5995: 0x8F10, - 5996: 0x8F16, - 5997: 0x8F17, - 5998: 0x8F18, - 5999: 0x8F1E, - 6000: 0x8F20, - 6001: 0x8F21, - 6002: 0x8F23, - 6003: 0x8F25, - 6004: 0x8F27, - 6005: 0x8F28, - 6006: 0x8F2C, - 6007: 0x8F2D, - 6008: 0x8F2E, - 6009: 0x8F34, - 6010: 0x8F35, - 6011: 0x8F36, - 6012: 0x8F37, - 6013: 0x8F3A, - 6014: 0x8F40, - 6015: 0x8F41, - 6016: 0x8F43, - 6017: 0x8F47, - 6018: 0x8F4F, - 6019: 0x8F51, - 6020: 0x8F52, - 6021: 0x8F53, - 6022: 0x8F54, - 6023: 0x8F55, - 6024: 0x8F58, - 6025: 0x8F5D, - 6026: 0x8F5E, - 6027: 0x8F65, - 6028: 0x8F9D, - 6029: 0x8FA0, - 6030: 0x8FA1, - 6031: 0x8FA4, - 6032: 0x8FA5, - 6033: 0x8FA6, - 6034: 0x8FB5, - 6035: 0x8FB6, - 6036: 0x8FB8, - 6037: 0x8FBE, - 6038: 0x8FC0, - 6039: 0x8FC1, - 6040: 0x8FC6, - 6041: 0x8FCA, - 6042: 0x8FCB, - 6043: 0x8FCD, - 6044: 0x8FD0, - 6045: 0x8FD2, - 6046: 0x8FD3, - 6047: 0x8FD5, - 6048: 0x8FE0, - 6049: 0x8FE3, - 6050: 0x8FE4, - 6051: 0x8FE8, - 6052: 0x8FEE, - 6053: 0x8FF1, - 6054: 0x8FF5, - 6055: 0x8FF6, - 6056: 0x8FFB, - 6057: 0x8FFE, - 6058: 0x9002, - 6059: 0x9004, - 6060: 0x9008, - 6061: 0x900C, - 6062: 0x9018, - 6063: 0x901B, - 6064: 0x9028, - 6065: 0x9029, - 6066: 0x902F, - 6067: 0x902A, - 6068: 0x902C, - 6069: 0x902D, - 6070: 0x9033, - 6071: 0x9034, - 6072: 0x9037, - 6073: 0x903F, - 6074: 0x9043, - 6075: 0x9044, - 6076: 0x904C, - 6077: 0x905B, - 6078: 0x905D, - 6079: 0x9062, - 6080: 0x9066, - 6081: 0x9067, - 6082: 0x906C, - 6083: 0x9070, - 6084: 0x9074, - 6085: 0x9079, - 6086: 0x9085, - 6087: 0x9088, - 6088: 0x908B, - 6089: 0x908C, - 6090: 0x908E, - 6091: 0x9090, - 6092: 0x9095, - 6093: 0x9097, - 6094: 0x9098, - 6095: 0x9099, - 6096: 0x909B, - 6097: 0x90A0, - 6098: 0x90A1, - 6099: 0x90A2, - 6100: 0x90A5, - 6101: 0x90B0, - 6102: 0x90B2, - 6103: 0x90B3, - 6104: 0x90B4, - 6105: 0x90B6, - 6106: 0x90BD, - 6107: 0x90CC, - 6108: 0x90BE, - 6109: 0x90C3, - 6110: 0x90C4, - 6111: 0x90C5, - 6112: 0x90C7, - 6113: 0x90C8, - 6114: 0x90D5, - 6115: 0x90D7, - 6116: 0x90D8, - 6117: 0x90D9, - 6118: 0x90DC, - 6119: 0x90DD, - 6120: 0x90DF, - 6121: 0x90E5, - 6122: 0x90D2, - 6123: 0x90F6, - 6124: 0x90EB, - 6125: 0x90EF, - 6126: 0x90F0, - 6127: 0x90F4, - 6128: 0x90FE, - 6129: 0x90FF, - 6130: 0x9100, - 6131: 0x9104, - 6132: 0x9105, - 6133: 0x9106, - 6134: 0x9108, - 6135: 0x910D, - 6136: 0x9110, - 6137: 0x9114, - 6138: 0x9116, - 6139: 0x9117, - 6140: 0x9118, - 6141: 0x911A, - 6142: 0x911C, - 6143: 0x911E, - 6144: 0x9120, - 6145: 0x9125, - 6146: 0x9122, - 6147: 0x9123, - 6148: 0x9127, - 6149: 0x9129, - 6150: 0x912E, - 6151: 0x912F, - 6152: 0x9131, - 6153: 0x9134, - 6154: 0x9136, - 6155: 0x9137, - 6156: 0x9139, - 6157: 0x913A, - 6158: 0x913C, - 6159: 0x913D, - 6160: 0x9143, - 6161: 0x9147, - 6162: 0x9148, - 6163: 0x914F, - 6164: 0x9153, - 6165: 0x9157, - 6166: 0x9159, - 6167: 0x915A, - 6168: 0x915B, - 6169: 0x9161, - 6170: 0x9164, - 6171: 0x9167, - 6172: 0x916D, - 6173: 0x9174, - 6174: 0x9179, - 6175: 0x917A, - 6176: 0x917B, - 6177: 0x9181, - 6178: 0x9183, - 6179: 0x9185, - 6180: 0x9186, - 6181: 0x918A, - 6182: 0x918E, - 6183: 0x9191, - 6184: 0x9193, - 6185: 0x9194, - 6186: 0x9195, - 6187: 0x9198, - 6188: 0x919E, - 6189: 0x91A1, - 6190: 0x91A6, - 6191: 0x91A8, - 6192: 0x91AC, - 6193: 0x91AD, - 6194: 0x91AE, - 6195: 0x91B0, - 6196: 0x91B1, - 6197: 0x91B2, - 6198: 0x91B3, - 6199: 0x91B6, - 6200: 0x91BB, - 6201: 0x91BC, - 6202: 0x91BD, - 6203: 0x91BF, - 6204: 0x91C2, - 6205: 0x91C3, - 6206: 0x91C5, - 6207: 0x91D3, - 6208: 0x91D4, - 6209: 0x91D7, - 6210: 0x91D9, - 6211: 0x91DA, - 6212: 0x91DE, - 6213: 0x91E4, - 6214: 0x91E5, - 6215: 0x91E9, - 6216: 0x91EA, - 6217: 0x91EC, - 6218: 0x91ED, - 6219: 0x91EE, - 6220: 0x91EF, - 6221: 0x91F0, - 6222: 0x91F1, - 6223: 0x91F7, - 6224: 0x91F9, - 6225: 0x91FB, - 6226: 0x91FD, - 6227: 0x9200, - 6228: 0x9201, - 6229: 0x9204, - 6230: 0x9205, - 6231: 0x9206, - 6232: 0x9207, - 6233: 0x9209, - 6234: 0x920A, - 6235: 0x920C, - 6236: 0x9210, - 6237: 0x9212, - 6238: 0x9213, - 6239: 0x9216, - 6240: 0x9218, - 6241: 0x921C, - 6242: 0x921D, - 6243: 0x9223, - 6244: 0x9224, - 6245: 0x9225, - 6246: 0x9226, - 6247: 0x9228, - 6248: 0x922E, - 6249: 0x922F, - 6250: 0x9230, - 6251: 0x9233, - 6252: 0x9235, - 6253: 0x9236, - 6254: 0x9238, - 6255: 0x9239, - 6256: 0x923A, - 6257: 0x923C, - 6258: 0x923E, - 6259: 0x9240, - 6260: 0x9242, - 6261: 0x9243, - 6262: 0x9246, - 6263: 0x9247, - 6264: 0x924A, - 6265: 0x924D, - 6266: 0x924E, - 6267: 0x924F, - 6268: 0x9251, - 6269: 0x9258, - 6270: 0x9259, - 6271: 0x925C, - 6272: 0x925D, - 6273: 0x9260, - 6274: 0x9261, - 6275: 0x9265, - 6276: 0x9267, - 6277: 0x9268, - 6278: 0x9269, - 6279: 0x926E, - 6280: 0x926F, - 6281: 0x9270, - 6282: 0x9275, - 6283: 0x9276, - 6284: 0x9277, - 6285: 0x9278, - 6286: 0x9279, - 6287: 0x927B, - 6288: 0x927C, - 6289: 0x927D, - 6290: 0x927F, - 6291: 0x9288, - 6292: 0x9289, - 6293: 0x928A, - 6294: 0x928D, - 6295: 0x928E, - 6296: 0x9292, - 6297: 0x9297, - 6298: 0x9299, - 6299: 0x929F, - 6300: 0x92A0, - 6301: 0x92A4, - 6302: 0x92A5, - 6303: 0x92A7, - 6304: 0x92A8, - 6305: 0x92AB, - 6306: 0x92AF, - 6307: 0x92B2, - 6308: 0x92B6, - 6309: 0x92B8, - 6310: 0x92BA, - 6311: 0x92BB, - 6312: 0x92BC, - 6313: 0x92BD, - 6314: 0x92BF, - 6315: 0x92C0, - 6316: 0x92C1, - 6317: 0x92C2, - 6318: 0x92C3, - 6319: 0x92C5, - 6320: 0x92C6, - 6321: 0x92C7, - 6322: 0x92C8, - 6323: 0x92CB, - 6324: 0x92CC, - 6325: 0x92CD, - 6326: 0x92CE, - 6327: 0x92D0, - 6328: 0x92D3, - 6329: 0x92D5, - 6330: 0x92D7, - 6331: 0x92D8, - 6332: 0x92D9, - 6333: 0x92DC, - 6334: 0x92DD, - 6335: 0x92DF, - 6336: 0x92E0, - 6337: 0x92E1, - 6338: 0x92E3, - 6339: 0x92E5, - 6340: 0x92E7, - 6341: 0x92E8, - 6342: 0x92EC, - 6343: 0x92EE, - 6344: 0x92F0, - 6345: 0x92F9, - 6346: 0x92FB, - 6347: 0x92FF, - 6348: 0x9300, - 6349: 0x9302, - 6350: 0x9308, - 6351: 0x930D, - 6352: 0x9311, - 6353: 0x9314, - 6354: 0x9315, - 6355: 0x931C, - 6356: 0x931D, - 6357: 0x931E, - 6358: 0x931F, - 6359: 0x9321, - 6360: 0x9324, - 6361: 0x9325, - 6362: 0x9327, - 6363: 0x9329, - 6364: 0x932A, - 6365: 0x9333, - 6366: 0x9334, - 6367: 0x9336, - 6368: 0x9337, - 6369: 0x9347, - 6370: 0x9348, - 6371: 0x9349, - 6372: 0x9350, - 6373: 0x9351, - 6374: 0x9352, - 6375: 0x9355, - 6376: 0x9357, - 6377: 0x9358, - 6378: 0x935A, - 6379: 0x935E, - 6380: 0x9364, - 6381: 0x9365, - 6382: 0x9367, - 6383: 0x9369, - 6384: 0x936A, - 6385: 0x936D, - 6386: 0x936F, - 6387: 0x9370, - 6388: 0x9371, - 6389: 0x9373, - 6390: 0x9374, - 6391: 0x9376, - 6392: 0x937A, - 6393: 0x937D, - 6394: 0x937F, - 6395: 0x9380, - 6396: 0x9381, - 6397: 0x9382, - 6398: 0x9388, - 6399: 0x938A, - 6400: 0x938B, - 6401: 0x938D, - 6402: 0x938F, - 6403: 0x9392, - 6404: 0x9395, - 6405: 0x9398, - 6406: 0x939B, - 6407: 0x939E, - 6408: 0x93A1, - 6409: 0x93A3, - 6410: 0x93A4, - 6411: 0x93A6, - 6412: 0x93A8, - 6413: 0x93AB, - 6414: 0x93B4, - 6415: 0x93B5, - 6416: 0x93B6, - 6417: 0x93BA, - 6418: 0x93A9, - 6419: 0x93C1, - 6420: 0x93C4, - 6421: 0x93C5, - 6422: 0x93C6, - 6423: 0x93C7, - 6424: 0x93C9, - 6425: 0x93CA, - 6426: 0x93CB, - 6427: 0x93CC, - 6428: 0x93CD, - 6429: 0x93D3, - 6430: 0x93D9, - 6431: 0x93DC, - 6432: 0x93DE, - 6433: 0x93DF, - 6434: 0x93E2, - 6435: 0x93E6, - 6436: 0x93E7, - 6437: 0x93F9, - 6438: 0x93F7, - 6439: 0x93F8, - 6440: 0x93FA, - 6441: 0x93FB, - 6442: 0x93FD, - 6443: 0x9401, - 6444: 0x9402, - 6445: 0x9404, - 6446: 0x9408, - 6447: 0x9409, - 6448: 0x940D, - 6449: 0x940E, - 6450: 0x940F, - 6451: 0x9415, - 6452: 0x9416, - 6453: 0x9417, - 6454: 0x941F, - 6455: 0x942E, - 6456: 0x942F, - 6457: 0x9431, - 6458: 0x9432, - 6459: 0x9433, - 6460: 0x9434, - 6461: 0x943B, - 6462: 0x943F, - 6463: 0x943D, - 6464: 0x9443, - 6465: 0x9445, - 6466: 0x9448, - 6467: 0x944A, - 6468: 0x944C, - 6469: 0x9455, - 6470: 0x9459, - 6471: 0x945C, - 6472: 0x945F, - 6473: 0x9461, - 6474: 0x9463, - 6475: 0x9468, - 6476: 0x946B, - 6477: 0x946D, - 6478: 0x946E, - 6479: 0x946F, - 6480: 0x9471, - 6481: 0x9472, - 6482: 0x9484, - 6483: 0x9483, - 6484: 0x9578, - 6485: 0x9579, - 6486: 0x957E, - 6487: 0x9584, - 6488: 0x9588, - 6489: 0x958C, - 6490: 0x958D, - 6491: 0x958E, - 6492: 0x959D, - 6493: 0x959E, - 6494: 0x959F, - 6495: 0x95A1, - 6496: 0x95A6, - 6497: 0x95A9, - 6498: 0x95AB, - 6499: 0x95AC, - 6500: 0x95B4, - 6501: 0x95B6, - 6502: 0x95BA, - 6503: 0x95BD, - 6504: 0x95BF, - 6505: 0x95C6, - 6506: 0x95C8, - 6507: 0x95C9, - 6508: 0x95CB, - 6509: 0x95D0, - 6510: 0x95D1, - 6511: 0x95D2, - 6512: 0x95D3, - 6513: 0x95D9, - 6514: 0x95DA, - 6515: 0x95DD, - 6516: 0x95DE, - 6517: 0x95DF, - 6518: 0x95E0, - 6519: 0x95E4, - 6520: 0x95E6, - 6521: 0x961D, - 6522: 0x961E, - 6523: 0x9622, - 6524: 0x9624, - 6525: 0x9625, - 6526: 0x9626, - 6527: 0x962C, - 6528: 0x9631, - 6529: 0x9633, - 6530: 0x9637, - 6531: 0x9638, - 6532: 0x9639, - 6533: 0x963A, - 6534: 0x963C, - 6535: 0x963D, - 6536: 0x9641, - 6537: 0x9652, - 6538: 0x9654, - 6539: 0x9656, - 6540: 0x9657, - 6541: 0x9658, - 6542: 0x9661, - 6543: 0x966E, - 6544: 0x9674, - 6545: 0x967B, - 6546: 0x967C, - 6547: 0x967E, - 6548: 0x967F, - 6549: 0x9681, - 6550: 0x9682, - 6551: 0x9683, - 6552: 0x9684, - 6553: 0x9689, - 6554: 0x9691, - 6555: 0x9696, - 6556: 0x969A, - 6557: 0x969D, - 6558: 0x969F, - 6559: 0x96A4, - 6560: 0x96A5, - 6561: 0x96A6, - 6562: 0x96A9, - 6563: 0x96AE, - 6564: 0x96AF, - 6565: 0x96B3, - 6566: 0x96BA, - 6567: 0x96CA, - 6568: 0x96D2, - 6569: 0x5DB2, - 6570: 0x96D8, - 6571: 0x96DA, - 6572: 0x96DD, - 6573: 0x96DE, - 6574: 0x96DF, - 6575: 0x96E9, - 6576: 0x96EF, - 6577: 0x96F1, - 6578: 0x96FA, - 6579: 0x9702, - 6580: 0x9703, - 6581: 0x9705, - 6582: 0x9709, - 6583: 0x971A, - 6584: 0x971B, - 6585: 0x971D, - 6586: 0x9721, - 6587: 0x9722, - 6588: 0x9723, - 6589: 0x9728, - 6590: 0x9731, - 6591: 0x9733, - 6592: 0x9741, - 6593: 0x9743, - 6594: 0x974A, - 6595: 0x974E, - 6596: 0x974F, - 6597: 0x9755, - 6598: 0x9757, - 6599: 0x9758, - 6600: 0x975A, - 6601: 0x975B, - 6602: 0x9763, - 6603: 0x9767, - 6604: 0x976A, - 6605: 0x976E, - 6606: 0x9773, - 6607: 0x9776, - 6608: 0x9777, - 6609: 0x9778, - 6610: 0x977B, - 6611: 0x977D, - 6612: 0x977F, - 6613: 0x9780, - 6614: 0x9789, - 6615: 0x9795, - 6616: 0x9796, - 6617: 0x9797, - 6618: 0x9799, - 6619: 0x979A, - 6620: 0x979E, - 6621: 0x979F, - 6622: 0x97A2, - 6623: 0x97AC, - 6624: 0x97AE, - 6625: 0x97B1, - 6626: 0x97B2, - 6627: 0x97B5, - 6628: 0x97B6, - 6629: 0x97B8, - 6630: 0x97B9, - 6631: 0x97BA, - 6632: 0x97BC, - 6633: 0x97BE, - 6634: 0x97BF, - 6635: 0x97C1, - 6636: 0x97C4, - 6637: 0x97C5, - 6638: 0x97C7, - 6639: 0x97C9, - 6640: 0x97CA, - 6641: 0x97CC, - 6642: 0x97CD, - 6643: 0x97CE, - 6644: 0x97D0, - 6645: 0x97D1, - 6646: 0x97D4, - 6647: 0x97D7, - 6648: 0x97D8, - 6649: 0x97D9, - 6650: 0x97DD, - 6651: 0x97DE, - 6652: 0x97E0, - 6653: 0x97DB, - 6654: 0x97E1, - 6655: 0x97E4, - 6656: 0x97EF, - 6657: 0x97F1, - 6658: 0x97F4, - 6659: 0x97F7, - 6660: 0x97F8, - 6661: 0x97FA, - 6662: 0x9807, - 6663: 0x980A, - 6664: 0x9819, - 6665: 0x980D, - 6666: 0x980E, - 6667: 0x9814, - 6668: 0x9816, - 6669: 0x981C, - 6670: 0x981E, - 6671: 0x9820, - 6672: 0x9823, - 6673: 0x9826, - 6674: 0x982B, - 6675: 0x982E, - 6676: 0x982F, - 6677: 0x9830, - 6678: 0x9832, - 6679: 0x9833, - 6680: 0x9835, - 6681: 0x9825, - 6682: 0x983E, - 6683: 0x9844, - 6684: 0x9847, - 6685: 0x984A, - 6686: 0x9851, - 6687: 0x9852, - 6688: 0x9853, - 6689: 0x9856, - 6690: 0x9857, - 6691: 0x9859, - 6692: 0x985A, - 6693: 0x9862, - 6694: 0x9863, - 6695: 0x9865, - 6696: 0x9866, - 6697: 0x986A, - 6698: 0x986C, - 6699: 0x98AB, - 6700: 0x98AD, - 6701: 0x98AE, - 6702: 0x98B0, - 6703: 0x98B4, - 6704: 0x98B7, - 6705: 0x98B8, - 6706: 0x98BA, - 6707: 0x98BB, - 6708: 0x98BF, - 6709: 0x98C2, - 6710: 0x98C5, - 6711: 0x98C8, - 6712: 0x98CC, - 6713: 0x98E1, - 6714: 0x98E3, - 6715: 0x98E5, - 6716: 0x98E6, - 6717: 0x98E7, - 6718: 0x98EA, - 6719: 0x98F3, - 6720: 0x98F6, - 6721: 0x9902, - 6722: 0x9907, - 6723: 0x9908, - 6724: 0x9911, - 6725: 0x9915, - 6726: 0x9916, - 6727: 0x9917, - 6728: 0x991A, - 6729: 0x991B, - 6730: 0x991C, - 6731: 0x991F, - 6732: 0x9922, - 6733: 0x9926, - 6734: 0x9927, - 6735: 0x992B, - 6736: 0x9931, - 6737: 0x9932, - 6738: 0x9933, - 6739: 0x9934, - 6740: 0x9935, - 6741: 0x9939, - 6742: 0x993A, - 6743: 0x993B, - 6744: 0x993C, - 6745: 0x9940, - 6746: 0x9941, - 6747: 0x9946, - 6748: 0x9947, - 6749: 0x9948, - 6750: 0x994D, - 6751: 0x994E, - 6752: 0x9954, - 6753: 0x9958, - 6754: 0x9959, - 6755: 0x995B, - 6756: 0x995C, - 6757: 0x995E, - 6758: 0x995F, - 6759: 0x9960, - 6760: 0x999B, - 6761: 0x999D, - 6762: 0x999F, - 6763: 0x99A6, - 6764: 0x99B0, - 6765: 0x99B1, - 6766: 0x99B2, - 6767: 0x99B5, - 6768: 0x99B9, - 6769: 0x99BA, - 6770: 0x99BD, - 6771: 0x99BF, - 6772: 0x99C3, - 6773: 0x99C9, - 6774: 0x99D3, - 6775: 0x99D4, - 6776: 0x99D9, - 6777: 0x99DA, - 6778: 0x99DC, - 6779: 0x99DE, - 6780: 0x99E7, - 6781: 0x99EA, - 6782: 0x99EB, - 6783: 0x99EC, - 6784: 0x99F0, - 6785: 0x99F4, - 6786: 0x99F5, - 6787: 0x99F9, - 6788: 0x99FD, - 6789: 0x99FE, - 6790: 0x9A02, - 6791: 0x9A03, - 6792: 0x9A04, - 6793: 0x9A0B, - 6794: 0x9A0C, - 6795: 0x9A10, - 6796: 0x9A11, - 6797: 0x9A16, - 6798: 0x9A1E, - 6799: 0x9A20, - 6800: 0x9A22, - 6801: 0x9A23, - 6802: 0x9A24, - 6803: 0x9A27, - 6804: 0x9A2D, - 6805: 0x9A2E, - 6806: 0x9A33, - 6807: 0x9A35, - 6808: 0x9A36, - 6809: 0x9A38, - 6810: 0x9A47, - 6811: 0x9A41, - 6812: 0x9A44, - 6813: 0x9A4A, - 6814: 0x9A4B, - 6815: 0x9A4C, - 6816: 0x9A4E, - 6817: 0x9A51, - 6818: 0x9A54, - 6819: 0x9A56, - 6820: 0x9A5D, - 6821: 0x9AAA, - 6822: 0x9AAC, - 6823: 0x9AAE, - 6824: 0x9AAF, - 6825: 0x9AB2, - 6826: 0x9AB4, - 6827: 0x9AB5, - 6828: 0x9AB6, - 6829: 0x9AB9, - 6830: 0x9ABB, - 6831: 0x9ABE, - 6832: 0x9ABF, - 6833: 0x9AC1, - 6834: 0x9AC3, - 6835: 0x9AC6, - 6836: 0x9AC8, - 6837: 0x9ACE, - 6838: 0x9AD0, - 6839: 0x9AD2, - 6840: 0x9AD5, - 6841: 0x9AD6, - 6842: 0x9AD7, - 6843: 0x9ADB, - 6844: 0x9ADC, - 6845: 0x9AE0, - 6846: 0x9AE4, - 6847: 0x9AE5, - 6848: 0x9AE7, - 6849: 0x9AE9, - 6850: 0x9AEC, - 6851: 0x9AF2, - 6852: 0x9AF3, - 6853: 0x9AF5, - 6854: 0x9AF9, - 6855: 0x9AFA, - 6856: 0x9AFD, - 6857: 0x9AFF, - 6858: 0x9B00, - 6859: 0x9B01, - 6860: 0x9B02, - 6861: 0x9B03, - 6862: 0x9B04, - 6863: 0x9B05, - 6864: 0x9B08, - 6865: 0x9B09, - 6866: 0x9B0B, - 6867: 0x9B0C, - 6868: 0x9B0D, - 6869: 0x9B0E, - 6870: 0x9B10, - 6871: 0x9B12, - 6872: 0x9B16, - 6873: 0x9B19, - 6874: 0x9B1B, - 6875: 0x9B1C, - 6876: 0x9B20, - 6877: 0x9B26, - 6878: 0x9B2B, - 6879: 0x9B2D, - 6880: 0x9B33, - 6881: 0x9B34, - 6882: 0x9B35, - 6883: 0x9B37, - 6884: 0x9B39, - 6885: 0x9B3A, - 6886: 0x9B3D, - 6887: 0x9B48, - 6888: 0x9B4B, - 6889: 0x9B4C, - 6890: 0x9B55, - 6891: 0x9B56, - 6892: 0x9B57, - 6893: 0x9B5B, - 6894: 0x9B5E, - 6895: 0x9B61, - 6896: 0x9B63, - 6897: 0x9B65, - 6898: 0x9B66, - 6899: 0x9B68, - 6900: 0x9B6A, - 6901: 0x9B6B, - 6902: 0x9B6C, - 6903: 0x9B6D, - 6904: 0x9B6E, - 6905: 0x9B73, - 6906: 0x9B75, - 6907: 0x9B77, - 6908: 0x9B78, - 6909: 0x9B79, - 6910: 0x9B7F, - 6911: 0x9B80, - 6912: 0x9B84, - 6913: 0x9B85, - 6914: 0x9B86, - 6915: 0x9B87, - 6916: 0x9B89, - 6917: 0x9B8A, - 6918: 0x9B8B, - 6919: 0x9B8D, - 6920: 0x9B8F, - 6921: 0x9B90, - 6922: 0x9B94, - 6923: 0x9B9A, - 6924: 0x9B9D, - 6925: 0x9B9E, - 6926: 0x9BA6, - 6927: 0x9BA7, - 6928: 0x9BA9, - 6929: 0x9BAC, - 6930: 0x9BB0, - 6931: 0x9BB1, - 6932: 0x9BB2, - 6933: 0x9BB7, - 6934: 0x9BB8, - 6935: 0x9BBB, - 6936: 0x9BBC, - 6937: 0x9BBE, - 6938: 0x9BBF, - 6939: 0x9BC1, - 6940: 0x9BC7, - 6941: 0x9BC8, - 6942: 0x9BCE, - 6943: 0x9BD0, - 6944: 0x9BD7, - 6945: 0x9BD8, - 6946: 0x9BDD, - 6947: 0x9BDF, - 6948: 0x9BE5, - 6949: 0x9BE7, - 6950: 0x9BEA, - 6951: 0x9BEB, - 6952: 0x9BEF, - 6953: 0x9BF3, - 6954: 0x9BF7, - 6955: 0x9BF8, - 6956: 0x9BF9, - 6957: 0x9BFA, - 6958: 0x9BFD, - 6959: 0x9BFF, - 6960: 0x9C00, - 6961: 0x9C02, - 6962: 0x9C0B, - 6963: 0x9C0F, - 6964: 0x9C11, - 6965: 0x9C16, - 6966: 0x9C18, - 6967: 0x9C19, - 6968: 0x9C1A, - 6969: 0x9C1C, - 6970: 0x9C1E, - 6971: 0x9C22, - 6972: 0x9C23, - 6973: 0x9C26, - 6974: 0x9C27, - 6975: 0x9C28, - 6976: 0x9C29, - 6977: 0x9C2A, - 6978: 0x9C31, - 6979: 0x9C35, - 6980: 0x9C36, - 6981: 0x9C37, - 6982: 0x9C3D, - 6983: 0x9C41, - 6984: 0x9C43, - 6985: 0x9C44, - 6986: 0x9C45, - 6987: 0x9C49, - 6988: 0x9C4A, - 6989: 0x9C4E, - 6990: 0x9C4F, - 6991: 0x9C50, - 6992: 0x9C53, - 6993: 0x9C54, - 6994: 0x9C56, - 6995: 0x9C58, - 6996: 0x9C5B, - 6997: 0x9C5D, - 6998: 0x9C5E, - 6999: 0x9C5F, - 7000: 0x9C63, - 7001: 0x9C69, - 7002: 0x9C6A, - 7003: 0x9C5C, - 7004: 0x9C6B, - 7005: 0x9C68, - 7006: 0x9C6E, - 7007: 0x9C70, - 7008: 0x9C72, - 7009: 0x9C75, - 7010: 0x9C77, - 7011: 0x9C7B, - 7012: 0x9CE6, - 7013: 0x9CF2, - 7014: 0x9CF7, - 7015: 0x9CF9, - 7016: 0x9D0B, - 7017: 0x9D02, - 7018: 0x9D11, - 7019: 0x9D17, - 7020: 0x9D18, - 7021: 0x9D1C, - 7022: 0x9D1D, - 7023: 0x9D1E, - 7024: 0x9D2F, - 7025: 0x9D30, - 7026: 0x9D32, - 7027: 0x9D33, - 7028: 0x9D34, - 7029: 0x9D3A, - 7030: 0x9D3C, - 7031: 0x9D45, - 7032: 0x9D3D, - 7033: 0x9D42, - 7034: 0x9D43, - 7035: 0x9D47, - 7036: 0x9D4A, - 7037: 0x9D53, - 7038: 0x9D54, - 7039: 0x9D5F, - 7040: 0x9D63, - 7041: 0x9D62, - 7042: 0x9D65, - 7043: 0x9D69, - 7044: 0x9D6A, - 7045: 0x9D6B, - 7046: 0x9D70, - 7047: 0x9D76, - 7048: 0x9D77, - 7049: 0x9D7B, - 7050: 0x9D7C, - 7051: 0x9D7E, - 7052: 0x9D83, - 7053: 0x9D84, - 7054: 0x9D86, - 7055: 0x9D8A, - 7056: 0x9D8D, - 7057: 0x9D8E, - 7058: 0x9D92, - 7059: 0x9D93, - 7060: 0x9D95, - 7061: 0x9D96, - 7062: 0x9D97, - 7063: 0x9D98, - 7064: 0x9DA1, - 7065: 0x9DAA, - 7066: 0x9DAC, - 7067: 0x9DAE, - 7068: 0x9DB1, - 7069: 0x9DB5, - 7070: 0x9DB9, - 7071: 0x9DBC, - 7072: 0x9DBF, - 7073: 0x9DC3, - 7074: 0x9DC7, - 7075: 0x9DC9, - 7076: 0x9DCA, - 7077: 0x9DD4, - 7078: 0x9DD5, - 7079: 0x9DD6, - 7080: 0x9DD7, - 7081: 0x9DDA, - 7082: 0x9DDE, - 7083: 0x9DDF, - 7084: 0x9DE0, - 7085: 0x9DE5, - 7086: 0x9DE7, - 7087: 0x9DE9, - 7088: 0x9DEB, - 7089: 0x9DEE, - 7090: 0x9DF0, - 7091: 0x9DF3, - 7092: 0x9DF4, - 7093: 0x9DFE, - 7094: 0x9E0A, - 7095: 0x9E02, - 7096: 0x9E07, - 7097: 0x9E0E, - 7098: 0x9E10, - 7099: 0x9E11, - 7100: 0x9E12, - 7101: 0x9E15, - 7102: 0x9E16, - 7103: 0x9E19, - 7104: 0x9E1C, - 7105: 0x9E1D, - 7106: 0x9E7A, - 7107: 0x9E7B, - 7108: 0x9E7C, - 7109: 0x9E80, - 7110: 0x9E82, - 7111: 0x9E83, - 7112: 0x9E84, - 7113: 0x9E85, - 7114: 0x9E87, - 7115: 0x9E8E, - 7116: 0x9E8F, - 7117: 0x9E96, - 7118: 0x9E98, - 7119: 0x9E9B, - 7120: 0x9E9E, - 7121: 0x9EA4, - 7122: 0x9EA8, - 7123: 0x9EAC, - 7124: 0x9EAE, - 7125: 0x9EAF, - 7126: 0x9EB0, - 7127: 0x9EB3, - 7128: 0x9EB4, - 7129: 0x9EB5, - 7130: 0x9EC6, - 7131: 0x9EC8, - 7132: 0x9ECB, - 7133: 0x9ED5, - 7134: 0x9EDF, - 7135: 0x9EE4, - 7136: 0x9EE7, - 7137: 0x9EEC, - 7138: 0x9EED, - 7139: 0x9EEE, - 7140: 0x9EF0, - 7141: 0x9EF1, - 7142: 0x9EF2, - 7143: 0x9EF5, - 7144: 0x9EF8, - 7145: 0x9EFF, - 7146: 0x9F02, - 7147: 0x9F03, - 7148: 0x9F09, - 7149: 0x9F0F, - 7150: 0x9F10, - 7151: 0x9F11, - 7152: 0x9F12, - 7153: 0x9F14, - 7154: 0x9F16, - 7155: 0x9F17, - 7156: 0x9F19, - 7157: 0x9F1A, - 7158: 0x9F1B, - 7159: 0x9F1F, - 7160: 0x9F22, - 7161: 0x9F26, - 7162: 0x9F2A, - 7163: 0x9F2B, - 7164: 0x9F2F, - 7165: 0x9F31, - 7166: 0x9F32, - 7167: 0x9F34, - 7168: 0x9F37, - 7169: 0x9F39, - 7170: 0x9F3A, - 7171: 0x9F3C, - 7172: 0x9F3D, - 7173: 0x9F3F, - 7174: 0x9F41, - 7175: 0x9F43, - 7176: 0x9F44, - 7177: 0x9F45, - 7178: 0x9F46, - 7179: 0x9F47, - 7180: 0x9F53, - 7181: 0x9F55, - 7182: 0x9F56, - 7183: 0x9F57, - 7184: 0x9F58, - 7185: 0x9F5A, - 7186: 0x9F5D, - 7187: 0x9F5E, - 7188: 0x9F68, - 7189: 0x9F69, - 7190: 0x9F6D, - 7191: 0x9F6E, - 7192: 0x9F6F, - 7193: 0x9F70, - 7194: 0x9F71, - 7195: 0x9F73, - 7196: 0x9F75, - 7197: 0x9F7A, - 7198: 0x9F7D, - 7199: 0x9F8F, - 7200: 0x9F90, - 7201: 0x9F91, - 7202: 0x9F92, - 7203: 0x9F94, - 7204: 0x9F96, - 7205: 0x9F97, - 7206: 0x9F9E, - 7207: 0x9FA1, - 7208: 0x9FA2, - 7209: 0x9FA3, - 7210: 0x9FA5, -} - -const ( - jis0208 = 1 - jis0212 = 2 - codeMask = 0x7f - codeShift = 7 - tableShift = 14 -) - -const numEncodeTables = 6 - -// encodeX are the encoding tables from Unicode to JIS code, -// sorted by decreasing length. -// encode0: 20902 entries for runes in [19968, 40870). -// encode1: 1632 entries for runes in [ 8208, 9840). -// encode2: 974 entries for runes in [12288, 13262). -// encode3: 959 entries for runes in [ 161, 1120). -// encode4: 261 entries for runes in [63785, 64046). -// encode5: 229 entries for runes in [65281, 65510). -// -// The high two bits of the value record whether the JIS code comes from the -// JIS0208 table (high bits == 1) or the JIS0212 table (high bits == 2). -// The low 14 bits are two 7-bit unsigned integers j1 and j2 that form the -// JIS code (94*j1 + j2) within that table. - -const encode0Low, encode0High = 19968, 40870 - -var encode0 = [...]uint16{ - 19968 - 19968: jis0208<<14 | 0x0F<<7 | 0x4B, - 19969 - 19968: jis0208<<14 | 0x22<<7 | 0x59, - 19970 - 19968: jis0212<<14 | 0x0F<<7 | 0x00, - 19971 - 19968: jis0208<<14 | 0x1B<<7 | 0x16, - 19972 - 19968: jis0212<<14 | 0x0F<<7 | 0x01, - 19973 - 19968: jis0212<<14 | 0x0F<<7 | 0x02, - 19975 - 19968: jis0208<<14 | 0x2A<<7 | 0x5B, - 19976 - 19968: jis0208<<14 | 0x1D<<7 | 0x45, - 19977 - 19968: jis0208<<14 | 0x1A<<7 | 0x0F, - 19978 - 19968: jis0208<<14 | 0x1D<<7 | 0x44, - 19979 - 19968: jis0208<<14 | 0x11<<7 | 0x1B, - 19980 - 19968: jis0212<<14 | 0x0F<<7 | 0x03, - 19981 - 19968: jis0208<<14 | 0x28<<7 | 0x33, - 19982 - 19968: jis0208<<14 | 0x2C<<7 | 0x1E, - 19984 - 19968: jis0208<<14 | 0x2F<<7 | 0x01, - 19985 - 19968: jis0208<<14 | 0x10<<7 | 0x0E, - 19986 - 19968: jis0212<<14 | 0x0F<<7 | 0x04, - 19988 - 19968: jis0208<<14 | 0x12<<7 | 0x4D, - 19989 - 19968: jis0208<<14 | 0x2F<<7 | 0x02, - 19990 - 19968: jis0208<<14 | 0x1F<<7 | 0x03, - 19991 - 19968: jis0208<<14 | 0x31<<7 | 0x21, - 19992 - 19968: jis0208<<14 | 0x14<<7 | 0x35, - 19993 - 19968: jis0208<<14 | 0x29<<7 | 0x19, - 19998 - 19968: jis0208<<14 | 0x1D<<7 | 0x46, - 19999 - 19968: jis0212<<14 | 0x0F<<7 | 0x05, - 20001 - 19968: jis0208<<14 | 0x2D<<7 | 0x1D, - 20003 - 19968: jis0212<<14 | 0x0F<<7 | 0x06, - 20004 - 19968: jis0212<<14 | 0x0F<<7 | 0x07, - 20006 - 19968: jis0208<<14 | 0x29<<7 | 0x21, - 20008 - 19968: jis0208<<14 | 0x58<<7 | 0x0C, - 20010 - 19968: jis0208<<14 | 0x2F<<7 | 0x03, - 20011 - 19968: jis0212<<14 | 0x0F<<7 | 0x09, - 20013 - 19968: jis0208<<14 | 0x22<<7 | 0x45, - 20014 - 19968: jis0212<<14 | 0x0F<<7 | 0x0A, - 20015 - 19968: jis0212<<14 | 0x0F<<7 | 0x0B, - 20016 - 19968: jis0212<<14 | 0x0F<<7 | 0x0C, - 20017 - 19968: jis0208<<14 | 0x2F<<7 | 0x04, - 20018 - 19968: jis0208<<14 | 0x15<<7 | 0x59, - 20021 - 19968: jis0212<<14 | 0x0F<<7 | 0x0D, - 20022 - 19968: jis0208<<14 | 0x2F<<7 | 0x05, - 20024 - 19968: jis0208<<14 | 0x13<<7 | 0x3C, - 20025 - 19968: jis0208<<14 | 0x22<<7 | 0x0F, - 20027 - 19968: jis0208<<14 | 0x1B<<7 | 0x46, - 20028 - 19968: jis0208<<14 | 0x2F<<7 | 0x06, - 20031 - 19968: jis0208<<14 | 0x2F<<7 | 0x07, - 20032 - 19968: jis0212<<14 | 0x0F<<7 | 0x0E, - 20033 - 19968: jis0212<<14 | 0x0F<<7 | 0x0F, - 20034 - 19968: jis0208<<14 | 0x2F<<7 | 0x08, - 20035 - 19968: jis0208<<14 | 0x26<<7 | 0x14, - 20036 - 19968: jis0212<<14 | 0x0F<<7 | 0x10, - 20037 - 19968: jis0208<<14 | 0x14<<7 | 0x36, - 20039 - 19968: jis0212<<14 | 0x0F<<7 | 0x11, - 20043 - 19968: jis0208<<14 | 0x26<<7 | 0x16, - 20045 - 19968: jis0208<<14 | 0x25<<7 | 0x42, - 20046 - 19968: jis0208<<14 | 0x17<<7 | 0x22, - 20047 - 19968: jis0208<<14 | 0x2A<<7 | 0x12, - 20049 - 19968: jis0212<<14 | 0x0F<<7 | 0x12, - 20053 - 19968: jis0208<<14 | 0x48<<7 | 0x28, - 20054 - 19968: jis0208<<14 | 0x2F<<7 | 0x09, - 20055 - 19968: jis0208<<14 | 0x1D<<7 | 0x47, - 20056 - 19968: jis0208<<14 | 0x2F<<7 | 0x0A, - 20057 - 19968: jis0208<<14 | 0x11<<7 | 0x14, - 20058 - 19968: jis0212<<14 | 0x0F<<7 | 0x13, - 20060 - 19968: jis0212<<14 | 0x0F<<7 | 0x14, - 20061 - 19968: jis0208<<14 | 0x15<<7 | 0x44, - 20062 - 19968: jis0208<<14 | 0x17<<7 | 0x4F, - 20063 - 19968: jis0208<<14 | 0x2B<<7 | 0x48, - 20066 - 19968: jis0208<<14 | 0x35<<7 | 0x05, - 20067 - 19968: jis0212<<14 | 0x0F<<7 | 0x15, - 20072 - 19968: jis0212<<14 | 0x0F<<7 | 0x16, - 20073 - 19968: jis0212<<14 | 0x0F<<7 | 0x17, - 20081 - 19968: jis0208<<14 | 0x2C<<7 | 0x4F, - 20083 - 19968: jis0208<<14 | 0x25<<7 | 0x5C, - 20084 - 19968: jis0212<<14 | 0x0F<<7 | 0x18, - 20085 - 19968: jis0212<<14 | 0x0F<<7 | 0x19, - 20089 - 19968: jis0212<<14 | 0x0F<<7 | 0x1A, - 20094 - 19968: jis0208<<14 | 0x13<<7 | 0x04, - 20095 - 19968: jis0212<<14 | 0x0F<<7 | 0x1B, - 20096 - 19968: jis0208<<14 | 0x14<<7 | 0x14, - 20098 - 19968: jis0208<<14 | 0x2F<<7 | 0x0B, - 20101 - 19968: jis0208<<14 | 0x2F<<7 | 0x0C, - 20102 - 19968: jis0208<<14 | 0x2D<<7 | 0x1A, - 20104 - 19968: jis0208<<14 | 0x2C<<7 | 0x1C, - 20105 - 19968: jis0208<<14 | 0x20<<7 | 0x47, - 20106 - 19968: jis0208<<14 | 0x2F<<7 | 0x0E, - 20107 - 19968: jis0208<<14 | 0x1A<<7 | 0x55, - 20108 - 19968: jis0208<<14 | 0x25<<7 | 0x52, - 20109 - 19968: jis0212<<14 | 0x0F<<7 | 0x1C, - 20110 - 19968: jis0208<<14 | 0x2F<<7 | 0x11, - 20113 - 19968: jis0208<<14 | 0x10<<7 | 0x1D, - 20114 - 19968: jis0208<<14 | 0x17<<7 | 0x3E, - 20116 - 19968: jis0208<<14 | 0x17<<7 | 0x3D, - 20117 - 19968: jis0208<<14 | 0x0F<<7 | 0x45, - 20118 - 19968: jis0212<<14 | 0x0F<<7 | 0x1D, - 20119 - 19968: jis0212<<14 | 0x0F<<7 | 0x1E, - 20120 - 19968: jis0208<<14 | 0x2E<<7 | 0x2A, - 20121 - 19968: jis0208<<14 | 0x2E<<7 | 0x29, - 20123 - 19968: jis0208<<14 | 0x19<<7 | 0x12, - 20124 - 19968: jis0208<<14 | 0x0F<<7 | 0x00, - 20125 - 19968: jis0212<<14 | 0x0F<<7 | 0x1F, - 20126 - 19968: jis0208<<14 | 0x2F<<7 | 0x12, - 20127 - 19968: jis0208<<14 | 0x2F<<7 | 0x13, - 20128 - 19968: jis0208<<14 | 0x2F<<7 | 0x14, - 20129 - 19968: jis0208<<14 | 0x2A<<7 | 0x13, - 20130 - 19968: jis0208<<14 | 0x2F<<7 | 0x15, - 20132 - 19968: jis0208<<14 | 0x17<<7 | 0x51, - 20133 - 19968: jis0208<<14 | 0x0F<<7 | 0x46, - 20134 - 19968: jis0208<<14 | 0x2A<<7 | 0x51, - 20136 - 19968: jis0208<<14 | 0x14<<7 | 0x5B, - 20139 - 19968: jis0208<<14 | 0x14<<7 | 0x5C, - 20140 - 19968: jis0208<<14 | 0x14<<7 | 0x5D, - 20141 - 19968: jis0208<<14 | 0x23<<7 | 0x41, - 20142 - 19968: jis0208<<14 | 0x2D<<7 | 0x1B, - 20143 - 19968: jis0212<<14 | 0x0F<<7 | 0x20, - 20144 - 19968: jis0208<<14 | 0x2F<<7 | 0x16, - 20147 - 19968: jis0208<<14 | 0x2F<<7 | 0x17, - 20150 - 19968: jis0208<<14 | 0x2F<<7 | 0x18, - 20153 - 19968: jis0212<<14 | 0x0F<<7 | 0x21, - 20154 - 19968: jis0208<<14 | 0x1E<<7 | 0x2C, - 20160 - 19968: jis0208<<14 | 0x1C<<7 | 0x19, - 20161 - 19968: jis0208<<14 | 0x1E<<7 | 0x2D, - 20162 - 19968: jis0208<<14 | 0x2F<<7 | 0x1D, - 20163 - 19968: jis0212<<14 | 0x0F<<7 | 0x22, - 20164 - 19968: jis0208<<14 | 0x2F<<7 | 0x1B, - 20166 - 19968: jis0208<<14 | 0x2F<<7 | 0x1C, - 20167 - 19968: jis0208<<14 | 0x14<<7 | 0x37, - 20170 - 19968: jis0208<<14 | 0x19<<7 | 0x02, - 20171 - 19968: jis0208<<14 | 0x11<<7 | 0x4F, - 20173 - 19968: jis0208<<14 | 0x2F<<7 | 0x1A, - 20174 - 19968: jis0208<<14 | 0x2F<<7 | 0x19, - 20175 - 19968: jis0208<<14 | 0x29<<7 | 0x08, - 20176 - 19968: jis0212<<14 | 0x0F<<7 | 0x23, - 20180 - 19968: jis0208<<14 | 0x1A<<7 | 0x25, - 20181 - 19968: jis0208<<14 | 0x1A<<7 | 0x24, - 20182 - 19968: jis0208<<14 | 0x21<<7 | 0x1D, - 20183 - 19968: jis0208<<14 | 0x2F<<7 | 0x1E, - 20184 - 19968: jis0208<<14 | 0x28<<7 | 0x34, - 20185 - 19968: jis0208<<14 | 0x1F<<7 | 0x46, - 20186 - 19968: jis0212<<14 | 0x0F<<7 | 0x24, - 20187 - 19968: jis0212<<14 | 0x0F<<7 | 0x25, - 20189 - 19968: jis0208<<14 | 0x00<<7 | 0x17, - 20190 - 19968: jis0208<<14 | 0x2F<<7 | 0x1F, - 20191 - 19968: jis0208<<14 | 0x2F<<7 | 0x21, - 20192 - 19968: jis0212<<14 | 0x0F<<7 | 0x26, - 20193 - 19968: jis0208<<14 | 0x58<<7 | 0x0D, - 20194 - 19968: jis0212<<14 | 0x0F<<7 | 0x28, - 20195 - 19968: jis0208<<14 | 0x21<<7 | 0x44, - 20196 - 19968: jis0208<<14 | 0x2D<<7 | 0x40, - 20197 - 19968: jis0208<<14 | 0x0F<<7 | 0x29, - 20200 - 19968: jis0212<<14 | 0x0F<<7 | 0x29, - 20205 - 19968: jis0208<<14 | 0x2F<<7 | 0x20, - 20206 - 19968: jis0208<<14 | 0x11<<7 | 0x1D, - 20207 - 19968: jis0212<<14 | 0x0F<<7 | 0x2A, - 20208 - 19968: jis0208<<14 | 0x15<<7 | 0x23, - 20209 - 19968: jis0212<<14 | 0x0F<<7 | 0x2B, - 20210 - 19968: jis0208<<14 | 0x22<<7 | 0x46, - 20211 - 19968: jis0212<<14 | 0x0F<<7 | 0x2C, - 20213 - 19968: jis0212<<14 | 0x0F<<7 | 0x2D, - 20214 - 19968: jis0208<<14 | 0x16<<7 | 0x4E, - 20215 - 19968: jis0208<<14 | 0x2F<<7 | 0x22, - 20219 - 19968: jis0208<<14 | 0x26<<7 | 0x03, - 20220 - 19968: jis0208<<14 | 0x58<<7 | 0x0E, - 20221 - 19968: jis0212<<14 | 0x0F<<7 | 0x2E, - 20222 - 19968: jis0212<<14 | 0x0F<<7 | 0x2F, - 20223 - 19968: jis0212<<14 | 0x0F<<7 | 0x30, - 20224 - 19968: jis0208<<14 | 0x58<<7 | 0x0F, - 20225 - 19968: jis0208<<14 | 0x13<<7 | 0x4A, - 20226 - 19968: jis0212<<14 | 0x0F<<7 | 0x32, - 20227 - 19968: jis0208<<14 | 0x58<<7 | 0x10, - 20232 - 19968: jis0212<<14 | 0x0F<<7 | 0x34, - 20233 - 19968: jis0208<<14 | 0x2F<<7 | 0x23, - 20234 - 19968: jis0208<<14 | 0x0F<<7 | 0x2A, - 20235 - 19968: jis0212<<14 | 0x0F<<7 | 0x35, - 20236 - 19968: jis0212<<14 | 0x0F<<7 | 0x36, - 20237 - 19968: jis0208<<14 | 0x17<<7 | 0x3F, - 20238 - 19968: jis0208<<14 | 0x13<<7 | 0x4B, - 20239 - 19968: jis0208<<14 | 0x28<<7 | 0x59, - 20240 - 19968: jis0208<<14 | 0x27<<7 | 0x11, - 20241 - 19968: jis0208<<14 | 0x14<<7 | 0x38, - 20242 - 19968: jis0212<<14 | 0x0F<<7 | 0x37, - 20245 - 19968: jis0212<<14 | 0x0F<<7 | 0x38, - 20246 - 19968: jis0212<<14 | 0x0F<<7 | 0x39, - 20247 - 19968: jis0212<<14 | 0x0F<<7 | 0x3A, - 20249 - 19968: jis0212<<14 | 0x0F<<7 | 0x3B, - 20250 - 19968: jis0208<<14 | 0x11<<7 | 0x50, - 20252 - 19968: jis0208<<14 | 0x2F<<7 | 0x46, - 20253 - 19968: jis0208<<14 | 0x24<<7 | 0x20, - 20270 - 19968: jis0212<<14 | 0x0F<<7 | 0x3C, - 20271 - 19968: jis0208<<14 | 0x26<<7 | 0x4B, - 20272 - 19968: jis0208<<14 | 0x2F<<7 | 0x25, - 20273 - 19968: jis0212<<14 | 0x0F<<7 | 0x3D, - 20275 - 19968: jis0212<<14 | 0x0F<<7 | 0x3F, - 20276 - 19968: jis0208<<14 | 0x27<<7 | 0x1B, - 20277 - 19968: jis0212<<14 | 0x0F<<7 | 0x40, - 20278 - 19968: jis0208<<14 | 0x2D<<7 | 0x41, - 20279 - 19968: jis0212<<14 | 0x0F<<7 | 0x41, - 20280 - 19968: jis0208<<14 | 0x1E<<7 | 0x0C, - 20281 - 19968: jis0208<<14 | 0x58<<7 | 0x11, - 20282 - 19968: jis0208<<14 | 0x1A<<7 | 0x26, - 20283 - 19968: jis0212<<14 | 0x0F<<7 | 0x43, - 20284 - 19968: jis0208<<14 | 0x1A<<7 | 0x56, - 20285 - 19968: jis0208<<14 | 0x11<<7 | 0x1F, - 20286 - 19968: jis0212<<14 | 0x0F<<7 | 0x44, - 20288 - 19968: jis0212<<14 | 0x0F<<7 | 0x45, - 20290 - 19968: jis0212<<14 | 0x0F<<7 | 0x46, - 20291 - 19968: jis0208<<14 | 0x23<<7 | 0x30, - 20294 - 19968: jis0208<<14 | 0x22<<7 | 0x01, - 20295 - 19968: jis0208<<14 | 0x2F<<7 | 0x29, - 20296 - 19968: jis0212<<14 | 0x0F<<7 | 0x47, - 20297 - 19968: jis0212<<14 | 0x0F<<7 | 0x48, - 20299 - 19968: jis0212<<14 | 0x0F<<7 | 0x49, - 20300 - 19968: jis0212<<14 | 0x0F<<7 | 0x4A, - 20301 - 19968: jis0208<<14 | 0x0F<<7 | 0x2B, - 20302 - 19968: jis0208<<14 | 0x23<<7 | 0x42, - 20303 - 19968: jis0208<<14 | 0x1C<<7 | 0x1A, - 20304 - 19968: jis0208<<14 | 0x19<<7 | 0x13, - 20305 - 19968: jis0208<<14 | 0x2C<<7 | 0x03, - 20306 - 19968: jis0212<<14 | 0x0F<<7 | 0x4B, - 20307 - 19968: jis0208<<14 | 0x21<<7 | 0x2D, - 20308 - 19968: jis0212<<14 | 0x0F<<7 | 0x4C, - 20309 - 19968: jis0208<<14 | 0x11<<7 | 0x1E, - 20310 - 19968: jis0208<<14 | 0x58<<7 | 0x12, - 20311 - 19968: jis0208<<14 | 0x2F<<7 | 0x28, - 20312 - 19968: jis0212<<14 | 0x0F<<7 | 0x4E, - 20313 - 19968: jis0208<<14 | 0x2C<<7 | 0x1D, - 20314 - 19968: jis0208<<14 | 0x2F<<7 | 0x24, - 20315 - 19968: jis0208<<14 | 0x2F<<7 | 0x26, - 20316 - 19968: jis0208<<14 | 0x19<<7 | 0x4D, - 20317 - 19968: jis0208<<14 | 0x2F<<7 | 0x27, - 20318 - 19968: jis0208<<14 | 0x34<<7 | 0x03, - 20319 - 19968: jis0212<<14 | 0x0F<<7 | 0x4F, - 20320 - 19968: jis0212<<14 | 0x0F<<7 | 0x3E, - 20323 - 19968: jis0212<<14 | 0x0F<<7 | 0x50, - 20329 - 19968: jis0208<<14 | 0x2F<<7 | 0x2F, - 20330 - 19968: jis0212<<14 | 0x0F<<7 | 0x51, - 20332 - 19968: jis0212<<14 | 0x0F<<7 | 0x52, - 20334 - 19968: jis0212<<14 | 0x0F<<7 | 0x53, - 20335 - 19968: jis0208<<14 | 0x2F<<7 | 0x32, - 20336 - 19968: jis0208<<14 | 0x2F<<7 | 0x30, - 20337 - 19968: jis0212<<14 | 0x0F<<7 | 0x54, - 20339 - 19968: jis0208<<14 | 0x11<<7 | 0x21, - 20341 - 19968: jis0208<<14 | 0x29<<7 | 0x1A, - 20342 - 19968: jis0208<<14 | 0x2F<<7 | 0x2A, - 20343 - 19968: jis0212<<14 | 0x0F<<7 | 0x55, - 20344 - 19968: jis0212<<14 | 0x0F<<7 | 0x56, - 20345 - 19968: jis0212<<14 | 0x0F<<7 | 0x57, - 20346 - 19968: jis0212<<14 | 0x0F<<7 | 0x58, - 20347 - 19968: jis0208<<14 | 0x2F<<7 | 0x2E, - 20348 - 19968: jis0208<<14 | 0x17<<7 | 0x52, - 20349 - 19968: jis0212<<14 | 0x0F<<7 | 0x59, - 20350 - 19968: jis0212<<14 | 0x0F<<7 | 0x5A, - 20351 - 19968: jis0208<<14 | 0x1A<<7 | 0x27, - 20353 - 19968: jis0212<<14 | 0x0F<<7 | 0x5B, - 20354 - 19968: jis0212<<14 | 0x0F<<7 | 0x5C, - 20355 - 19968: jis0208<<14 | 0x13<<7 | 0x05, - 20356 - 19968: jis0212<<14 | 0x0F<<7 | 0x5D, - 20357 - 19968: jis0212<<14 | 0x10<<7 | 0x00, - 20358 - 19968: jis0208<<14 | 0x2F<<7 | 0x33, - 20360 - 19968: jis0208<<14 | 0x2F<<7 | 0x2B, - 20361 - 19968: jis0212<<14 | 0x10<<7 | 0x01, - 20362 - 19968: jis0208<<14 | 0x58<<7 | 0x14, - 20363 - 19968: jis0208<<14 | 0x2D<<7 | 0x42, - 20364 - 19968: jis0212<<14 | 0x10<<7 | 0x03, - 20365 - 19968: jis0208<<14 | 0x1A<<7 | 0x57, - 20366 - 19968: jis0212<<14 | 0x10<<7 | 0x04, - 20367 - 19968: jis0208<<14 | 0x2F<<7 | 0x2C, - 20368 - 19968: jis0212<<14 | 0x10<<7 | 0x05, - 20369 - 19968: jis0208<<14 | 0x2F<<7 | 0x31, - 20370 - 19968: jis0208<<14 | 0x58<<7 | 0x13, - 20371 - 19968: jis0212<<14 | 0x10<<7 | 0x07, - 20372 - 19968: jis0208<<14 | 0x58<<7 | 0x16, - 20374 - 19968: jis0208<<14 | 0x2F<<7 | 0x34, - 20375 - 19968: jis0212<<14 | 0x10<<7 | 0x09, - 20376 - 19968: jis0208<<14 | 0x2F<<7 | 0x2D, - 20377 - 19968: jis0212<<14 | 0x10<<7 | 0x0A, - 20378 - 19968: jis0208<<14 | 0x58<<7 | 0x15, - 20379 - 19968: jis0208<<14 | 0x15<<7 | 0x00, - 20381 - 19968: jis0208<<14 | 0x0F<<7 | 0x2C, - 20382 - 19968: jis0212<<14 | 0x10<<7 | 0x0C, - 20383 - 19968: jis0212<<14 | 0x10<<7 | 0x0D, - 20384 - 19968: jis0208<<14 | 0x15<<7 | 0x01, - 20385 - 19968: jis0208<<14 | 0x11<<7 | 0x20, - 20395 - 19968: jis0208<<14 | 0x34<<7 | 0x04, - 20397 - 19968: jis0208<<14 | 0x2A<<7 | 0x58, - 20398 - 19968: jis0208<<14 | 0x28<<7 | 0x4D, - 20399 - 19968: jis0208<<14 | 0x17<<7 | 0x53, - 20402 - 19968: jis0212<<14 | 0x10<<7 | 0x0E, - 20405 - 19968: jis0208<<14 | 0x1E<<7 | 0x0E, - 20406 - 19968: jis0208<<14 | 0x2D<<7 | 0x16, - 20407 - 19968: jis0212<<14 | 0x10<<7 | 0x0F, - 20409 - 19968: jis0212<<14 | 0x10<<7 | 0x10, - 20411 - 19968: jis0212<<14 | 0x10<<7 | 0x11, - 20412 - 19968: jis0212<<14 | 0x10<<7 | 0x12, - 20413 - 19968: jis0212<<14 | 0x10<<7 | 0x13, - 20414 - 19968: jis0212<<14 | 0x10<<7 | 0x14, - 20415 - 19968: jis0208<<14 | 0x29<<7 | 0x37, - 20416 - 19968: jis0212<<14 | 0x10<<7 | 0x15, - 20417 - 19968: jis0212<<14 | 0x10<<7 | 0x16, - 20418 - 19968: jis0208<<14 | 0x16<<7 | 0x17, - 20419 - 19968: jis0208<<14 | 0x21<<7 | 0x04, - 20420 - 19968: jis0208<<14 | 0x11<<7 | 0x43, - 20421 - 19968: jis0212<<14 | 0x10<<7 | 0x17, - 20422 - 19968: jis0212<<14 | 0x10<<7 | 0x18, - 20424 - 19968: jis0212<<14 | 0x10<<7 | 0x19, - 20425 - 19968: jis0208<<14 | 0x58<<7 | 0x05, - 20426 - 19968: jis0208<<14 | 0x1C<<7 | 0x32, - 20427 - 19968: jis0212<<14 | 0x10<<7 | 0x1B, - 20428 - 19968: jis0212<<14 | 0x10<<7 | 0x1C, - 20429 - 19968: jis0208<<14 | 0x58<<7 | 0x17, - 20430 - 19968: jis0208<<14 | 0x2F<<7 | 0x38, - 20431 - 19968: jis0212<<14 | 0x10<<7 | 0x1E, - 20432 - 19968: jis0208<<14 | 0x2F<<7 | 0x3D, - 20433 - 19968: jis0208<<14 | 0x2F<<7 | 0x3B, - 20434 - 19968: jis0212<<14 | 0x10<<7 | 0x1F, - 20436 - 19968: jis0208<<14 | 0x2F<<7 | 0x36, - 20439 - 19968: jis0208<<14 | 0x21<<7 | 0x0E, - 20440 - 19968: jis0208<<14 | 0x2F<<7 | 0x39, - 20442 - 19968: jis0208<<14 | 0x2F<<7 | 0x3C, - 20443 - 19968: jis0208<<14 | 0x2F<<7 | 0x3A, - 20444 - 19968: jis0212<<14 | 0x10<<7 | 0x20, - 20445 - 19968: jis0208<<14 | 0x29<<7 | 0x3C, - 20447 - 19968: jis0208<<14 | 0x2F<<7 | 0x37, - 20448 - 19968: jis0212<<14 | 0x10<<7 | 0x21, - 20449 - 19968: jis0208<<14 | 0x1E<<7 | 0x0D, - 20450 - 19968: jis0212<<14 | 0x10<<7 | 0x22, - 20451 - 19968: jis0208<<14 | 0x2A<<7 | 0x52, - 20452 - 19968: jis0208<<14 | 0x2F<<7 | 0x3E, - 20453 - 19968: jis0208<<14 | 0x2F<<7 | 0x3F, - 20462 - 19968: jis0208<<14 | 0x1C<<7 | 0x03, - 20463 - 19968: jis0208<<14 | 0x2F<<7 | 0x4C, - 20464 - 19968: jis0212<<14 | 0x10<<7 | 0x23, - 20466 - 19968: jis0212<<14 | 0x10<<7 | 0x24, - 20467 - 19968: jis0208<<14 | 0x26<<7 | 0x2F, - 20469 - 19968: jis0208<<14 | 0x28<<7 | 0x15, - 20470 - 19968: jis0208<<14 | 0x2F<<7 | 0x47, - 20472 - 19968: jis0208<<14 | 0x29<<7 | 0x4F, - 20474 - 19968: jis0208<<14 | 0x11<<7 | 0x15, - 20476 - 19968: jis0212<<14 | 0x10<<7 | 0x25, - 20477 - 19968: jis0212<<14 | 0x10<<7 | 0x26, - 20478 - 19968: jis0208<<14 | 0x2F<<7 | 0x4B, - 20479 - 19968: jis0208<<14 | 0x58<<7 | 0x1A, - 20480 - 19968: jis0212<<14 | 0x10<<7 | 0x28, - 20481 - 19968: jis0212<<14 | 0x10<<7 | 0x29, - 20484 - 19968: jis0212<<14 | 0x10<<7 | 0x2A, - 20485 - 19968: jis0208<<14 | 0x2F<<7 | 0x45, - 20486 - 19968: jis0208<<14 | 0x2F<<7 | 0x4E, - 20487 - 19968: jis0212<<14 | 0x10<<7 | 0x2B, - 20489 - 19968: jis0208<<14 | 0x20<<7 | 0x31, - 20490 - 19968: jis0212<<14 | 0x10<<7 | 0x2C, - 20491 - 19968: jis0208<<14 | 0x17<<7 | 0x23, - 20492 - 19968: jis0212<<14 | 0x10<<7 | 0x2D, - 20493 - 19968: jis0208<<14 | 0x26<<7 | 0x3B, - 20494 - 19968: jis0212<<14 | 0x10<<7 | 0x2E, - 20495 - 19968: jis0208<<14 | 0x3F<<7 | 0x26, - 20496 - 19968: jis0212<<14 | 0x10<<7 | 0x2F, - 20497 - 19968: jis0208<<14 | 0x2F<<7 | 0x4D, - 20498 - 19968: jis0208<<14 | 0x24<<7 | 0x3C, - 20499 - 19968: jis0212<<14 | 0x10<<7 | 0x30, - 20500 - 19968: jis0208<<14 | 0x2F<<7 | 0x42, - 20502 - 19968: jis0208<<14 | 0x17<<7 | 0x55, - 20503 - 19968: jis0212<<14 | 0x10<<7 | 0x31, - 20504 - 19968: jis0212<<14 | 0x10<<7 | 0x32, - 20505 - 19968: jis0208<<14 | 0x17<<7 | 0x54, - 20506 - 19968: jis0208<<14 | 0x2F<<7 | 0x40, - 20507 - 19968: jis0212<<14 | 0x10<<7 | 0x33, - 20508 - 19968: jis0212<<14 | 0x10<<7 | 0x34, - 20509 - 19968: jis0212<<14 | 0x10<<7 | 0x35, - 20510 - 19968: jis0208<<14 | 0x58<<7 | 0x1B, - 20511 - 19968: jis0208<<14 | 0x1B<<7 | 0x39, - 20513 - 19968: jis0208<<14 | 0x2F<<7 | 0x48, - 20514 - 19968: jis0208<<14 | 0x58<<7 | 0x19, - 20515 - 19968: jis0208<<14 | 0x29<<7 | 0x4E, - 20516 - 19968: jis0208<<14 | 0x22<<7 | 0x2C, - 20517 - 19968: jis0208<<14 | 0x2F<<7 | 0x44, - 20518 - 19968: jis0208<<14 | 0x16<<7 | 0x50, - 20519 - 19968: jis0212<<14 | 0x10<<7 | 0x38, - 20520 - 19968: jis0208<<14 | 0x2F<<7 | 0x41, - 20521 - 19968: jis0208<<14 | 0x2F<<7 | 0x49, - 20522 - 19968: jis0208<<14 | 0x2F<<7 | 0x43, - 20523 - 19968: jis0208<<14 | 0x2D<<7 | 0x30, - 20524 - 19968: jis0208<<14 | 0x2F<<7 | 0x4A, - 20525 - 19968: jis0208<<14 | 0x2E<<7 | 0x20, - 20526 - 19968: jis0212<<14 | 0x10<<7 | 0x39, - 20528 - 19968: jis0212<<14 | 0x10<<7 | 0x3A, - 20530 - 19968: jis0212<<14 | 0x10<<7 | 0x3B, - 20531 - 19968: jis0212<<14 | 0x10<<7 | 0x3C, - 20533 - 19968: jis0212<<14 | 0x10<<7 | 0x3D, - 20534 - 19968: jis0208<<14 | 0x15<<7 | 0x45, - 20537 - 19968: jis0208<<14 | 0x16<<7 | 0x4F, - 20539 - 19968: jis0212<<14 | 0x10<<7 | 0x55, - 20544 - 19968: jis0208<<14 | 0x58<<7 | 0x18, - 20545 - 19968: jis0212<<14 | 0x10<<7 | 0x3F, - 20546 - 19968: jis0208<<14 | 0x58<<7 | 0x1E, - 20547 - 19968: jis0208<<14 | 0x2F<<7 | 0x4F, - 20549 - 19968: jis0212<<14 | 0x10<<7 | 0x41, - 20550 - 19968: jis0208<<14 | 0x58<<7 | 0x1C, - 20551 - 19968: jis0208<<14 | 0x2F<<7 | 0x50, - 20552 - 19968: jis0208<<14 | 0x2F<<7 | 0x54, - 20553 - 19968: jis0208<<14 | 0x0F<<7 | 0x2D, - 20554 - 19968: jis0212<<14 | 0x10<<7 | 0x43, - 20556 - 19968: jis0212<<14 | 0x10<<7 | 0x44, - 20558 - 19968: jis0212<<14 | 0x10<<7 | 0x45, - 20559 - 19968: jis0208<<14 | 0x29<<7 | 0x2F, - 20560 - 19968: jis0208<<14 | 0x2F<<7 | 0x53, - 20561 - 19968: jis0212<<14 | 0x10<<7 | 0x46, - 20562 - 19968: jis0212<<14 | 0x10<<7 | 0x47, - 20563 - 19968: jis0212<<14 | 0x10<<7 | 0x48, - 20565 - 19968: jis0208<<14 | 0x2F<<7 | 0x52, - 20566 - 19968: jis0208<<14 | 0x2F<<7 | 0x56, - 20567 - 19968: jis0212<<14 | 0x10<<7 | 0x49, - 20569 - 19968: jis0212<<14 | 0x10<<7 | 0x4A, - 20570 - 19968: jis0208<<14 | 0x2F<<7 | 0x55, - 20572 - 19968: jis0208<<14 | 0x23<<7 | 0x43, - 20575 - 19968: jis0212<<14 | 0x10<<7 | 0x4B, - 20576 - 19968: jis0212<<14 | 0x10<<7 | 0x4C, - 20578 - 19968: jis0212<<14 | 0x10<<7 | 0x4D, - 20579 - 19968: jis0212<<14 | 0x10<<7 | 0x4E, - 20581 - 19968: jis0208<<14 | 0x16<<7 | 0x51, - 20582 - 19968: jis0212<<14 | 0x10<<7 | 0x4F, - 20583 - 19968: jis0212<<14 | 0x10<<7 | 0x50, - 20586 - 19968: jis0212<<14 | 0x10<<7 | 0x51, - 20588 - 19968: jis0208<<14 | 0x2F<<7 | 0x57, - 20589 - 19968: jis0212<<14 | 0x10<<7 | 0x52, - 20592 - 19968: jis0208<<14 | 0x58<<7 | 0x1D, - 20593 - 19968: jis0212<<14 | 0x10<<7 | 0x54, - 20594 - 19968: jis0208<<14 | 0x1B<<7 | 0x24, - 20596 - 19968: jis0208<<14 | 0x21<<7 | 0x05, - 20597 - 19968: jis0208<<14 | 0x23<<7 | 0x44, - 20598 - 19968: jis0208<<14 | 0x15<<7 | 0x55, - 20600 - 19968: jis0208<<14 | 0x2F<<7 | 0x58, - 20605 - 19968: jis0208<<14 | 0x14<<7 | 0x15, - 20608 - 19968: jis0208<<14 | 0x2F<<7 | 0x59, - 20609 - 19968: jis0212<<14 | 0x10<<7 | 0x56, - 20611 - 19968: jis0212<<14 | 0x10<<7 | 0x57, - 20612 - 19968: jis0212<<14 | 0x10<<7 | 0x58, - 20613 - 19968: jis0208<<14 | 0x2F<<7 | 0x5B, - 20614 - 19968: jis0212<<14 | 0x10<<7 | 0x59, - 20618 - 19968: jis0212<<14 | 0x10<<7 | 0x5A, - 20621 - 19968: jis0208<<14 | 0x2A<<7 | 0x14, - 20622 - 19968: jis0212<<14 | 0x10<<7 | 0x5B, - 20623 - 19968: jis0212<<14 | 0x10<<7 | 0x5C, - 20624 - 19968: jis0212<<14 | 0x10<<7 | 0x5D, - 20625 - 19968: jis0208<<14 | 0x16<<7 | 0x45, - 20626 - 19968: jis0212<<14 | 0x11<<7 | 0x00, - 20627 - 19968: jis0212<<14 | 0x11<<7 | 0x01, - 20628 - 19968: jis0208<<14 | 0x58<<7 | 0x1F, - 20630 - 19968: jis0212<<14 | 0x11<<7 | 0x03, - 20632 - 19968: jis0208<<14 | 0x1A<<7 | 0x10, - 20633 - 19968: jis0208<<14 | 0x27<<7 | 0x56, - 20634 - 19968: jis0208<<14 | 0x2F<<7 | 0x5A, - 20635 - 19968: jis0212<<14 | 0x11<<7 | 0x04, - 20636 - 19968: jis0212<<14 | 0x11<<7 | 0x05, - 20638 - 19968: jis0212<<14 | 0x11<<7 | 0x06, - 20639 - 19968: jis0212<<14 | 0x11<<7 | 0x07, - 20640 - 19968: jis0212<<14 | 0x11<<7 | 0x08, - 20641 - 19968: jis0212<<14 | 0x11<<7 | 0x09, - 20642 - 19968: jis0212<<14 | 0x11<<7 | 0x0A, - 20650 - 19968: jis0212<<14 | 0x11<<7 | 0x0B, - 20652 - 19968: jis0208<<14 | 0x19<<7 | 0x24, - 20653 - 19968: jis0208<<14 | 0x2C<<7 | 0x22, - 20655 - 19968: jis0212<<14 | 0x11<<7 | 0x0C, - 20656 - 19968: jis0212<<14 | 0x11<<7 | 0x0D, - 20658 - 19968: jis0208<<14 | 0x2F<<7 | 0x5D, - 20659 - 19968: jis0208<<14 | 0x30<<7 | 0x02, - 20660 - 19968: jis0208<<14 | 0x2F<<7 | 0x5C, - 20661 - 19968: jis0208<<14 | 0x19<<7 | 0x23, - 20663 - 19968: jis0208<<14 | 0x1C<<7 | 0x5C, - 20665 - 19968: jis0212<<14 | 0x11<<7 | 0x0E, - 20666 - 19968: jis0212<<14 | 0x11<<7 | 0x0F, - 20669 - 19968: jis0212<<14 | 0x11<<7 | 0x10, - 20670 - 19968: jis0208<<14 | 0x16<<7 | 0x18, - 20672 - 19968: jis0212<<14 | 0x11<<7 | 0x11, - 20674 - 19968: jis0208<<14 | 0x30<<7 | 0x03, - 20675 - 19968: jis0212<<14 | 0x11<<7 | 0x12, - 20676 - 19968: jis0212<<14 | 0x11<<7 | 0x13, - 20677 - 19968: jis0208<<14 | 0x15<<7 | 0x2E, - 20679 - 19968: jis0212<<14 | 0x11<<7 | 0x14, - 20681 - 19968: jis0208<<14 | 0x30<<7 | 0x00, - 20682 - 19968: jis0208<<14 | 0x30<<7 | 0x01, - 20684 - 19968: jis0212<<14 | 0x11<<7 | 0x15, - 20685 - 19968: jis0208<<14 | 0x25<<7 | 0x0E, - 20686 - 19968: jis0212<<14 | 0x11<<7 | 0x16, - 20687 - 19968: jis0208<<14 | 0x20<<7 | 0x5B, - 20688 - 19968: jis0212<<14 | 0x11<<7 | 0x17, - 20689 - 19968: jis0208<<14 | 0x15<<7 | 0x02, - 20691 - 19968: jis0212<<14 | 0x11<<7 | 0x18, - 20692 - 19968: jis0212<<14 | 0x11<<7 | 0x19, - 20693 - 19968: jis0208<<14 | 0x2A<<7 | 0x2C, - 20694 - 19968: jis0208<<14 | 0x30<<7 | 0x04, - 20696 - 19968: jis0208<<14 | 0x58<<7 | 0x21, - 20698 - 19968: jis0208<<14 | 0x2D<<7 | 0x1C, - 20700 - 19968: jis0212<<14 | 0x11<<7 | 0x1B, - 20701 - 19968: jis0212<<14 | 0x11<<7 | 0x1C, - 20702 - 19968: jis0208<<14 | 0x30<<7 | 0x05, - 20703 - 19968: jis0212<<14 | 0x11<<7 | 0x1D, - 20706 - 19968: jis0212<<14 | 0x11<<7 | 0x1E, - 20707 - 19968: jis0208<<14 | 0x30<<7 | 0x08, - 20708 - 19968: jis0212<<14 | 0x11<<7 | 0x1F, - 20709 - 19968: jis0208<<14 | 0x30<<7 | 0x06, - 20710 - 19968: jis0212<<14 | 0x11<<7 | 0x20, - 20711 - 19968: jis0208<<14 | 0x20<<7 | 0x2D, - 20712 - 19968: jis0212<<14 | 0x11<<7 | 0x21, - 20713 - 19968: jis0212<<14 | 0x11<<7 | 0x22, - 20717 - 19968: jis0208<<14 | 0x30<<7 | 0x07, - 20718 - 19968: jis0208<<14 | 0x30<<7 | 0x09, - 20719 - 19968: jis0212<<14 | 0x11<<7 | 0x23, - 20721 - 19968: jis0212<<14 | 0x11<<7 | 0x24, - 20722 - 19968: jis0212<<14 | 0x11<<7 | 0x30, - 20724 - 19968: jis0208<<14 | 0x58<<7 | 0x20, - 20725 - 19968: jis0208<<14 | 0x30<<7 | 0x0B, - 20726 - 19968: jis0212<<14 | 0x11<<7 | 0x25, - 20729 - 19968: jis0208<<14 | 0x30<<7 | 0x0A, - 20730 - 19968: jis0212<<14 | 0x11<<7 | 0x26, - 20731 - 19968: jis0208<<14 | 0x29<<7 | 0x27, - 20734 - 19968: jis0212<<14 | 0x11<<7 | 0x27, - 20736 - 19968: jis0208<<14 | 0x14<<7 | 0x16, - 20737 - 19968: jis0208<<14 | 0x30<<7 | 0x0D, - 20738 - 19968: jis0208<<14 | 0x30<<7 | 0x0E, - 20739 - 19968: jis0212<<14 | 0x11<<7 | 0x28, - 20740 - 19968: jis0208<<14 | 0x11<<7 | 0x0E, - 20742 - 19968: jis0212<<14 | 0x11<<7 | 0x29, - 20743 - 19968: jis0212<<14 | 0x11<<7 | 0x2A, - 20744 - 19968: jis0212<<14 | 0x11<<7 | 0x2B, - 20745 - 19968: jis0208<<14 | 0x30<<7 | 0x0C, - 20747 - 19968: jis0212<<14 | 0x11<<7 | 0x2C, - 20748 - 19968: jis0212<<14 | 0x11<<7 | 0x2D, - 20749 - 19968: jis0212<<14 | 0x11<<7 | 0x2E, - 20750 - 19968: jis0212<<14 | 0x11<<7 | 0x2F, - 20752 - 19968: jis0212<<14 | 0x11<<7 | 0x31, - 20754 - 19968: jis0208<<14 | 0x1B<<7 | 0x53, - 20756 - 19968: jis0208<<14 | 0x30<<7 | 0x11, - 20757 - 19968: jis0208<<14 | 0x30<<7 | 0x10, - 20758 - 19968: jis0208<<14 | 0x30<<7 | 0x0F, - 20759 - 19968: jis0212<<14 | 0x11<<7 | 0x32, - 20760 - 19968: jis0208<<14 | 0x2F<<7 | 0x35, - 20761 - 19968: jis0212<<14 | 0x11<<7 | 0x33, - 20762 - 19968: jis0208<<14 | 0x30<<7 | 0x12, - 20763 - 19968: jis0212<<14 | 0x11<<7 | 0x34, - 20764 - 19968: jis0212<<14 | 0x11<<7 | 0x35, - 20765 - 19968: jis0212<<14 | 0x11<<7 | 0x36, - 20766 - 19968: jis0212<<14 | 0x11<<7 | 0x37, - 20767 - 19968: jis0208<<14 | 0x1C<<7 | 0x5D, - 20769 - 19968: jis0208<<14 | 0x30<<7 | 0x13, - 20771 - 19968: jis0212<<14 | 0x11<<7 | 0x38, - 20775 - 19968: jis0212<<14 | 0x11<<7 | 0x39, - 20776 - 19968: jis0212<<14 | 0x11<<7 | 0x3A, - 20778 - 19968: jis0208<<14 | 0x2C<<7 | 0x04, - 20780 - 19968: jis0212<<14 | 0x11<<7 | 0x3B, - 20781 - 19968: jis0212<<14 | 0x11<<7 | 0x3C, - 20783 - 19968: jis0212<<14 | 0x11<<7 | 0x3D, - 20785 - 19968: jis0212<<14 | 0x11<<7 | 0x3E, - 20786 - 19968: jis0208<<14 | 0x2B<<7 | 0x38, - 20787 - 19968: jis0212<<14 | 0x11<<7 | 0x3F, - 20788 - 19968: jis0212<<14 | 0x11<<7 | 0x40, - 20789 - 19968: jis0212<<14 | 0x11<<7 | 0x41, - 20791 - 19968: jis0208<<14 | 0x30<<7 | 0x15, - 20792 - 19968: jis0212<<14 | 0x11<<7 | 0x42, - 20793 - 19968: jis0212<<14 | 0x11<<7 | 0x43, - 20794 - 19968: jis0208<<14 | 0x30<<7 | 0x14, - 20795 - 19968: jis0208<<14 | 0x30<<7 | 0x17, - 20796 - 19968: jis0208<<14 | 0x30<<7 | 0x16, - 20799 - 19968: jis0208<<14 | 0x30<<7 | 0x18, - 20800 - 19968: jis0208<<14 | 0x30<<7 | 0x19, - 20801 - 19968: jis0208<<14 | 0x0F<<7 | 0x53, - 20802 - 19968: jis0212<<14 | 0x11<<7 | 0x44, - 20803 - 19968: jis0208<<14 | 0x17<<7 | 0x14, - 20804 - 19968: jis0208<<14 | 0x16<<7 | 0x1A, - 20805 - 19968: jis0208<<14 | 0x1C<<7 | 0x1B, - 20806 - 19968: jis0208<<14 | 0x22<<7 | 0x5A, - 20807 - 19968: jis0208<<14 | 0x15<<7 | 0x03, - 20808 - 19968: jis0208<<14 | 0x1F<<7 | 0x47, - 20809 - 19968: jis0208<<14 | 0x17<<7 | 0x56, - 20810 - 19968: jis0208<<14 | 0x58<<7 | 0x22, - 20811 - 19968: jis0208<<14 | 0x18<<7 | 0x4D, - 20812 - 19968: jis0208<<14 | 0x30<<7 | 0x1B, - 20813 - 19968: jis0208<<14 | 0x2B<<7 | 0x27, - 20814 - 19968: jis0208<<14 | 0x24<<7 | 0x25, - 20815 - 19968: jis0212<<14 | 0x11<<7 | 0x46, - 20816 - 19968: jis0208<<14 | 0x1A<<7 | 0x58, - 20818 - 19968: jis0208<<14 | 0x30<<7 | 0x1A, - 20819 - 19968: jis0212<<14 | 0x11<<7 | 0x47, - 20820 - 19968: jis0208<<14 | 0x30<<7 | 0x1C, - 20821 - 19968: jis0212<<14 | 0x11<<7 | 0x48, - 20823 - 19968: jis0212<<14 | 0x11<<7 | 0x49, - 20824 - 19968: jis0212<<14 | 0x11<<7 | 0x4A, - 20826 - 19968: jis0208<<14 | 0x24<<7 | 0x3D, - 20828 - 19968: jis0208<<14 | 0x12<<7 | 0x54, - 20831 - 19968: jis0212<<14 | 0x11<<7 | 0x4B, - 20834 - 19968: jis0208<<14 | 0x30<<7 | 0x1D, - 20836 - 19968: jis0208<<14 | 0x58<<7 | 0x23, - 20837 - 19968: jis0208<<14 | 0x25<<7 | 0x5D, - 20838 - 19968: jis0212<<14 | 0x11<<7 | 0x4D, - 20840 - 19968: jis0208<<14 | 0x20<<7 | 0x13, - 20841 - 19968: jis0208<<14 | 0x30<<7 | 0x1F, - 20842 - 19968: jis0208<<14 | 0x30<<7 | 0x20, - 20843 - 19968: jis0208<<14 | 0x27<<7 | 0x0B, - 20844 - 19968: jis0208<<14 | 0x17<<7 | 0x57, - 20845 - 19968: jis0208<<14 | 0x2E<<7 | 0x1A, - 20846 - 19968: jis0208<<14 | 0x30<<7 | 0x21, - 20849 - 19968: jis0208<<14 | 0x15<<7 | 0x05, - 20853 - 19968: jis0208<<14 | 0x29<<7 | 0x1B, - 20854 - 19968: jis0208<<14 | 0x21<<7 | 0x15, - 20855 - 19968: jis0208<<14 | 0x15<<7 | 0x50, - 20856 - 19968: jis0208<<14 | 0x24<<7 | 0x14, - 20860 - 19968: jis0208<<14 | 0x16<<7 | 0x52, - 20862 - 19968: jis0212<<14 | 0x11<<7 | 0x4E, - 20864 - 19968: jis0208<<14 | 0x30<<7 | 0x22, - 20866 - 19968: jis0208<<14 | 0x30<<7 | 0x23, - 20867 - 19968: jis0212<<14 | 0x11<<7 | 0x4F, - 20868 - 19968: jis0212<<14 | 0x11<<7 | 0x50, - 20869 - 19968: jis0208<<14 | 0x25<<7 | 0x41, - 20870 - 19968: jis0208<<14 | 0x10<<7 | 0x3E, - 20873 - 19968: jis0208<<14 | 0x30<<7 | 0x26, - 20874 - 19968: jis0208<<14 | 0x19<<7 | 0x5C, - 20875 - 19968: jis0212<<14 | 0x11<<7 | 0x51, - 20876 - 19968: jis0208<<14 | 0x30<<7 | 0x25, - 20877 - 19968: jis0208<<14 | 0x19<<7 | 0x25, - 20878 - 19968: jis0212<<14 | 0x11<<7 | 0x52, - 20879 - 19968: jis0208<<14 | 0x30<<7 | 0x27, - 20880 - 19968: jis0208<<14 | 0x45<<7 | 0x4D, - 20881 - 19968: jis0208<<14 | 0x30<<7 | 0x28, - 20882 - 19968: jis0208<<14 | 0x2A<<7 | 0x20, - 20883 - 19968: jis0208<<14 | 0x30<<7 | 0x29, - 20885 - 19968: jis0208<<14 | 0x30<<7 | 0x2A, - 20886 - 19968: jis0208<<14 | 0x30<<7 | 0x2B, - 20887 - 19968: jis0208<<14 | 0x1D<<7 | 0x48, - 20888 - 19968: jis0212<<14 | 0x11<<7 | 0x53, - 20889 - 19968: jis0208<<14 | 0x1B<<7 | 0x2B, - 20893 - 19968: jis0208<<14 | 0x58<<7 | 0x24, - 20896 - 19968: jis0208<<14 | 0x13<<7 | 0x06, - 20897 - 19968: jis0212<<14 | 0x11<<7 | 0x55, - 20898 - 19968: jis0208<<14 | 0x30<<7 | 0x2E, - 20899 - 19968: jis0212<<14 | 0x11<<7 | 0x56, - 20900 - 19968: jis0208<<14 | 0x30<<7 | 0x2C, - 20901 - 19968: jis0208<<14 | 0x2B<<7 | 0x1C, - 20902 - 19968: jis0208<<14 | 0x30<<7 | 0x2D, - 20904 - 19968: jis0208<<14 | 0x28<<7 | 0x39, - 20905 - 19968: jis0208<<14 | 0x30<<7 | 0x2F, - 20906 - 19968: jis0208<<14 | 0x30<<7 | 0x30, - 20907 - 19968: jis0208<<14 | 0x30<<7 | 0x31, - 20908 - 19968: jis0208<<14 | 0x24<<7 | 0x3E, - 20909 - 19968: jis0212<<14 | 0x11<<7 | 0x57, - 20912 - 19968: jis0208<<14 | 0x30<<7 | 0x35, - 20913 - 19968: jis0208<<14 | 0x30<<7 | 0x33, - 20914 - 19968: jis0208<<14 | 0x30<<7 | 0x34, - 20915 - 19968: jis0208<<14 | 0x30<<7 | 0x32, - 20916 - 19968: jis0208<<14 | 0x19<<7 | 0x42, - 20917 - 19968: jis0208<<14 | 0x30<<7 | 0x36, - 20918 - 19968: jis0208<<14 | 0x2B<<7 | 0x49, - 20919 - 19968: jis0208<<14 | 0x2D<<7 | 0x43, - 20920 - 19968: jis0212<<14 | 0x11<<7 | 0x58, - 20922 - 19968: jis0212<<14 | 0x11<<7 | 0x59, - 20924 - 19968: jis0212<<14 | 0x11<<7 | 0x5A, - 20925 - 19968: jis0208<<14 | 0x30<<7 | 0x37, - 20926 - 19968: jis0208<<14 | 0x58<<7 | 0x25, - 20927 - 19968: jis0212<<14 | 0x11<<7 | 0x5C, - 20930 - 19968: jis0212<<14 | 0x11<<7 | 0x5D, - 20932 - 19968: jis0208<<14 | 0x1F<<7 | 0x07, - 20933 - 19968: jis0208<<14 | 0x30<<7 | 0x38, - 20934 - 19968: jis0208<<14 | 0x1C<<7 | 0x39, - 20936 - 19968: jis0212<<14 | 0x12<<7 | 0x00, - 20937 - 19968: jis0208<<14 | 0x30<<7 | 0x39, - 20939 - 19968: jis0208<<14 | 0x22<<7 | 0x5B, - 20940 - 19968: jis0208<<14 | 0x2D<<7 | 0x1E, - 20941 - 19968: jis0208<<14 | 0x24<<7 | 0x3F, - 20943 - 19968: jis0212<<14 | 0x12<<7 | 0x01, - 20945 - 19968: jis0212<<14 | 0x12<<7 | 0x02, - 20946 - 19968: jis0212<<14 | 0x12<<7 | 0x03, - 20947 - 19968: jis0212<<14 | 0x12<<7 | 0x04, - 20949 - 19968: jis0212<<14 | 0x12<<7 | 0x05, - 20950 - 19968: jis0208<<14 | 0x31<<7 | 0x24, - 20952 - 19968: jis0212<<14 | 0x12<<7 | 0x06, - 20955 - 19968: jis0208<<14 | 0x30<<7 | 0x3A, - 20956 - 19968: jis0208<<14 | 0x53<<7 | 0x04, - 20957 - 19968: jis0208<<14 | 0x15<<7 | 0x24, - 20958 - 19968: jis0212<<14 | 0x12<<7 | 0x07, - 20960 - 19968: jis0208<<14 | 0x30<<7 | 0x3B, - 20961 - 19968: jis0208<<14 | 0x2A<<7 | 0x3D, - 20962 - 19968: jis0212<<14 | 0x12<<7 | 0x08, - 20965 - 19968: jis0212<<14 | 0x12<<7 | 0x09, - 20966 - 19968: jis0208<<14 | 0x1C<<7 | 0x47, - 20967 - 19968: jis0208<<14 | 0x21<<7 | 0x5B, - 20969 - 19968: jis0208<<14 | 0x30<<7 | 0x3D, - 20970 - 19968: jis0208<<14 | 0x25<<7 | 0x43, - 20972 - 19968: jis0208<<14 | 0x58<<7 | 0x26, - 20973 - 19968: jis0208<<14 | 0x30<<7 | 0x3E, - 20974 - 19968: jis0212<<14 | 0x12<<7 | 0x0A, - 20976 - 19968: jis0208<<14 | 0x30<<7 | 0x3F, - 20977 - 19968: jis0208<<14 | 0x12<<7 | 0x0D, - 20978 - 19968: jis0212<<14 | 0x12<<7 | 0x0B, - 20979 - 19968: jis0212<<14 | 0x12<<7 | 0x0C, - 20980 - 19968: jis0212<<14 | 0x12<<7 | 0x0D, - 20981 - 19968: jis0208<<14 | 0x30<<7 | 0x40, - 20982 - 19968: jis0208<<14 | 0x15<<7 | 0x06, - 20983 - 19968: jis0212<<14 | 0x12<<7 | 0x0E, - 20984 - 19968: jis0208<<14 | 0x25<<7 | 0x2B, - 20985 - 19968: jis0208<<14 | 0x10<<7 | 0x59, - 20986 - 19968: jis0208<<14 | 0x1C<<7 | 0x2F, - 20989 - 19968: jis0208<<14 | 0x27<<7 | 0x00, - 20990 - 19968: jis0208<<14 | 0x30<<7 | 0x41, - 20992 - 19968: jis0208<<14 | 0x24<<7 | 0x40, - 20993 - 19968: jis0212<<14 | 0x12<<7 | 0x0F, - 20994 - 19968: jis0212<<14 | 0x12<<7 | 0x10, - 20995 - 19968: jis0208<<14 | 0x1E<<7 | 0x2E, - 20996 - 19968: jis0208<<14 | 0x30<<7 | 0x42, - 20997 - 19968: jis0212<<14 | 0x12<<7 | 0x11, - 20998 - 19968: jis0208<<14 | 0x29<<7 | 0x0B, - 20999 - 19968: jis0208<<14 | 0x1F<<7 | 0x39, - 21000 - 19968: jis0208<<14 | 0x13<<7 | 0x01, - 21002 - 19968: jis0208<<14 | 0x13<<7 | 0x08, - 21003 - 19968: jis0208<<14 | 0x30<<7 | 0x43, - 21006 - 19968: jis0208<<14 | 0x30<<7 | 0x45, - 21009 - 19968: jis0208<<14 | 0x16<<7 | 0x19, - 21010 - 19968: jis0212<<14 | 0x12<<7 | 0x12, - 21011 - 19968: jis0212<<14 | 0x12<<7 | 0x13, - 21012 - 19968: jis0208<<14 | 0x30<<7 | 0x44, - 21013 - 19968: jis0208<<14 | 0x58<<7 | 0x27, - 21014 - 19968: jis0212<<14 | 0x12<<7 | 0x15, - 21015 - 19968: jis0208<<14 | 0x2D<<7 | 0x52, - 21016 - 19968: jis0212<<14 | 0x12<<7 | 0x16, - 21021 - 19968: jis0208<<14 | 0x1C<<7 | 0x48, - 21026 - 19968: jis0212<<14 | 0x12<<7 | 0x17, - 21028 - 19968: jis0208<<14 | 0x27<<7 | 0x1C, - 21029 - 19968: jis0208<<14 | 0x29<<7 | 0x2B, - 21031 - 19968: jis0208<<14 | 0x30<<7 | 0x46, - 21032 - 19968: jis0212<<14 | 0x12<<7 | 0x18, - 21033 - 19968: jis0208<<14 | 0x2C<<7 | 0x57, - 21034 - 19968: jis0208<<14 | 0x30<<7 | 0x47, - 21038 - 19968: jis0208<<14 | 0x30<<7 | 0x48, - 21040 - 19968: jis0208<<14 | 0x24<<7 | 0x5D, - 21041 - 19968: jis0212<<14 | 0x12<<7 | 0x19, - 21042 - 19968: jis0212<<14 | 0x12<<7 | 0x1A, - 21043 - 19968: jis0208<<14 | 0x30<<7 | 0x49, - 21045 - 19968: jis0212<<14 | 0x12<<7 | 0x1B, - 21046 - 19968: jis0208<<14 | 0x1F<<7 | 0x08, - 21047 - 19968: jis0208<<14 | 0x19<<7 | 0x5D, - 21048 - 19968: jis0208<<14 | 0x16<<7 | 0x53, - 21049 - 19968: jis0208<<14 | 0x30<<7 | 0x4A, - 21050 - 19968: jis0208<<14 | 0x1A<<7 | 0x28, - 21051 - 19968: jis0208<<14 | 0x18<<7 | 0x4E, - 21052 - 19968: jis0212<<14 | 0x12<<7 | 0x1C, - 21059 - 19968: jis0208<<14 | 0x23<<7 | 0x45, - 21060 - 19968: jis0208<<14 | 0x30<<7 | 0x4C, - 21061 - 19968: jis0212<<14 | 0x12<<7 | 0x1D, - 21063 - 19968: jis0208<<14 | 0x21<<7 | 0x06, - 21065 - 19968: jis0212<<14 | 0x12<<7 | 0x1E, - 21066 - 19968: jis0208<<14 | 0x19<<7 | 0x4E, - 21067 - 19968: jis0208<<14 | 0x30<<7 | 0x4D, - 21068 - 19968: jis0208<<14 | 0x30<<7 | 0x4E, - 21069 - 19968: jis0208<<14 | 0x20<<7 | 0x0F, - 21071 - 19968: jis0208<<14 | 0x30<<7 | 0x4B, - 21076 - 19968: jis0208<<14 | 0x30<<7 | 0x50, - 21077 - 19968: jis0212<<14 | 0x12<<7 | 0x1F, - 21078 - 19968: jis0208<<14 | 0x2A<<7 | 0x15, - 21079 - 19968: jis0212<<14 | 0x12<<7 | 0x20, - 21080 - 19968: jis0212<<14 | 0x12<<7 | 0x21, - 21082 - 19968: jis0212<<14 | 0x12<<7 | 0x22, - 21083 - 19968: jis0208<<14 | 0x18<<7 | 0x43, - 21084 - 19968: jis0212<<14 | 0x12<<7 | 0x23, - 21086 - 19968: jis0208<<14 | 0x30<<7 | 0x4F, - 21087 - 19968: jis0212<<14 | 0x12<<7 | 0x24, - 21088 - 19968: jis0212<<14 | 0x12<<7 | 0x25, - 21089 - 19968: jis0212<<14 | 0x12<<7 | 0x26, - 21091 - 19968: jis0208<<14 | 0x16<<7 | 0x54, - 21092 - 19968: jis0208<<14 | 0x19<<7 | 0x3D, - 21093 - 19968: jis0208<<14 | 0x26<<7 | 0x4C, - 21094 - 19968: jis0212<<14 | 0x12<<7 | 0x27, - 21097 - 19968: jis0208<<14 | 0x30<<7 | 0x53, - 21098 - 19968: jis0208<<14 | 0x30<<7 | 0x51, - 21102 - 19968: jis0212<<14 | 0x12<<7 | 0x28, - 21103 - 19968: jis0208<<14 | 0x28<<7 | 0x5A, - 21104 - 19968: jis0208<<14 | 0x1D<<7 | 0x49, - 21105 - 19968: jis0208<<14 | 0x30<<7 | 0x5A, - 21106 - 19968: jis0208<<14 | 0x12<<7 | 0x43, - 21107 - 19968: jis0208<<14 | 0x30<<7 | 0x54, - 21108 - 19968: jis0208<<14 | 0x30<<7 | 0x52, - 21109 - 19968: jis0208<<14 | 0x20<<7 | 0x2E, - 21111 - 19968: jis0212<<14 | 0x12<<7 | 0x29, - 21112 - 19968: jis0212<<14 | 0x12<<7 | 0x2A, - 21113 - 19968: jis0212<<14 | 0x12<<7 | 0x2B, - 21117 - 19968: jis0208<<14 | 0x30<<7 | 0x56, - 21119 - 19968: jis0208<<14 | 0x30<<7 | 0x55, - 21120 - 19968: jis0212<<14 | 0x12<<7 | 0x2C, - 21122 - 19968: jis0212<<14 | 0x12<<7 | 0x2D, - 21123 - 19968: jis0208<<14 | 0x12<<7 | 0x23, - 21125 - 19968: jis0212<<14 | 0x12<<7 | 0x2E, - 21127 - 19968: jis0208<<14 | 0x16<<7 | 0x3F, - 21128 - 19968: jis0208<<14 | 0x30<<7 | 0x5B, - 21129 - 19968: jis0208<<14 | 0x2D<<7 | 0x0C, - 21130 - 19968: jis0212<<14 | 0x12<<7 | 0x2F, - 21132 - 19968: jis0212<<14 | 0x12<<7 | 0x30, - 21133 - 19968: jis0208<<14 | 0x30<<7 | 0x57, - 21137 - 19968: jis0208<<14 | 0x30<<7 | 0x5C, - 21138 - 19968: jis0208<<14 | 0x30<<7 | 0x59, - 21139 - 19968: jis0212<<14 | 0x12<<7 | 0x31, - 21140 - 19968: jis0208<<14 | 0x30<<7 | 0x58, - 21141 - 19968: jis0212<<14 | 0x12<<7 | 0x32, - 21142 - 19968: jis0212<<14 | 0x12<<7 | 0x33, - 21143 - 19968: jis0212<<14 | 0x12<<7 | 0x34, - 21144 - 19968: jis0212<<14 | 0x12<<7 | 0x35, - 21146 - 19968: jis0212<<14 | 0x12<<7 | 0x36, - 21147 - 19968: jis0208<<14 | 0x2D<<7 | 0x2E, - 21148 - 19968: jis0208<<14 | 0x58<<7 | 0x28, - 21151 - 19968: jis0208<<14 | 0x17<<7 | 0x58, - 21152 - 19968: jis0208<<14 | 0x11<<7 | 0x22, - 21155 - 19968: jis0208<<14 | 0x2D<<7 | 0x53, - 21156 - 19968: jis0212<<14 | 0x12<<7 | 0x38, - 21157 - 19968: jis0212<<14 | 0x12<<7 | 0x39, - 21158 - 19968: jis0208<<14 | 0x58<<7 | 0x29, - 21159 - 19968: jis0212<<14 | 0x12<<7 | 0x3B, - 21161 - 19968: jis0208<<14 | 0x1C<<7 | 0x54, - 21162 - 19968: jis0208<<14 | 0x24<<7 | 0x37, - 21163 - 19968: jis0208<<14 | 0x18<<7 | 0x44, - 21164 - 19968: jis0208<<14 | 0x31<<7 | 0x01, - 21165 - 19968: jis0208<<14 | 0x31<<7 | 0x02, - 21167 - 19968: jis0208<<14 | 0x5A<<7 | 0x1B, - 21168 - 19968: jis0212<<14 | 0x12<<7 | 0x3D, - 21169 - 19968: jis0208<<14 | 0x2D<<7 | 0x44, - 21172 - 19968: jis0208<<14 | 0x2E<<7 | 0x0A, - 21173 - 19968: jis0208<<14 | 0x31<<7 | 0x04, - 21174 - 19968: jis0212<<14 | 0x12<<7 | 0x3E, - 21175 - 19968: jis0212<<14 | 0x12<<7 | 0x3F, - 21176 - 19968: jis0212<<14 | 0x12<<7 | 0x40, - 21177 - 19968: jis0208<<14 | 0x17<<7 | 0x59, - 21178 - 19968: jis0212<<14 | 0x12<<7 | 0x41, - 21179 - 19968: jis0212<<14 | 0x12<<7 | 0x42, - 21180 - 19968: jis0208<<14 | 0x31<<7 | 0x03, - 21181 - 19968: jis0212<<14 | 0x12<<7 | 0x43, - 21182 - 19968: jis0208<<14 | 0x12<<7 | 0x0E, - 21184 - 19968: jis0208<<14 | 0x58<<7 | 0x2A, - 21185 - 19968: jis0208<<14 | 0x31<<7 | 0x05, - 21187 - 19968: jis0208<<14 | 0x2A<<7 | 0x35, - 21188 - 19968: jis0212<<14 | 0x12<<7 | 0x45, - 21189 - 19968: jis0208<<14 | 0x23<<7 | 0x1B, - 21190 - 19968: jis0212<<14 | 0x12<<7 | 0x46, - 21191 - 19968: jis0208<<14 | 0x2C<<7 | 0x05, - 21192 - 19968: jis0212<<14 | 0x12<<7 | 0x47, - 21193 - 19968: jis0208<<14 | 0x29<<7 | 0x38, - 21196 - 19968: jis0212<<14 | 0x12<<7 | 0x48, - 21197 - 19968: jis0208<<14 | 0x31<<7 | 0x06, - 21199 - 19968: jis0212<<14 | 0x12<<7 | 0x49, - 21201 - 19968: jis0212<<14 | 0x12<<7 | 0x4A, - 21202 - 19968: jis0208<<14 | 0x4F<<7 | 0x34, - 21204 - 19968: jis0212<<14 | 0x12<<7 | 0x4B, - 21205 - 19968: jis0208<<14 | 0x25<<7 | 0x0F, - 21206 - 19968: jis0212<<14 | 0x12<<7 | 0x4C, - 21207 - 19968: jis0208<<14 | 0x31<<7 | 0x07, - 21208 - 19968: jis0208<<14 | 0x13<<7 | 0x09, - 21209 - 19968: jis0208<<14 | 0x2B<<7 | 0x12, - 21211 - 19968: jis0208<<14 | 0x58<<7 | 0x2B, - 21212 - 19968: jis0212<<14 | 0x12<<7 | 0x4E, - 21213 - 19968: jis0208<<14 | 0x1D<<7 | 0x00, - 21214 - 19968: jis0208<<14 | 0x31<<7 | 0x08, - 21215 - 19968: jis0208<<14 | 0x29<<7 | 0x46, - 21216 - 19968: jis0208<<14 | 0x31<<7 | 0x0C, - 21217 - 19968: jis0212<<14 | 0x12<<7 | 0x4F, - 21218 - 19968: jis0208<<14 | 0x1F<<7 | 0x09, - 21219 - 19968: jis0208<<14 | 0x31<<7 | 0x09, - 21220 - 19968: jis0208<<14 | 0x15<<7 | 0x2F, - 21221 - 19968: jis0212<<14 | 0x12<<7 | 0x50, - 21222 - 19968: jis0208<<14 | 0x31<<7 | 0x0A, - 21223 - 19968: jis0208<<14 | 0x13<<7 | 0x0A, - 21224 - 19968: jis0212<<14 | 0x12<<7 | 0x51, - 21225 - 19968: jis0212<<14 | 0x12<<7 | 0x52, - 21226 - 19968: jis0212<<14 | 0x12<<7 | 0x53, - 21228 - 19968: jis0212<<14 | 0x12<<7 | 0x54, - 21232 - 19968: jis0212<<14 | 0x12<<7 | 0x55, - 21233 - 19968: jis0212<<14 | 0x12<<7 | 0x56, - 21234 - 19968: jis0208<<14 | 0x16<<7 | 0x0D, - 21235 - 19968: jis0208<<14 | 0x31<<7 | 0x0D, - 21236 - 19968: jis0212<<14 | 0x12<<7 | 0x57, - 21237 - 19968: jis0208<<14 | 0x31<<7 | 0x0E, - 21238 - 19968: jis0212<<14 | 0x12<<7 | 0x58, - 21239 - 19968: jis0212<<14 | 0x12<<7 | 0x59, - 21240 - 19968: jis0208<<14 | 0x31<<7 | 0x0F, - 21241 - 19968: jis0208<<14 | 0x31<<7 | 0x10, - 21242 - 19968: jis0208<<14 | 0x1B<<7 | 0x3A, - 21246 - 19968: jis0208<<14 | 0x17<<7 | 0x5A, - 21247 - 19968: jis0208<<14 | 0x2B<<7 | 0x3D, - 21248 - 19968: jis0208<<14 | 0x58<<7 | 0x2C, - 21249 - 19968: jis0208<<14 | 0x2B<<7 | 0x47, - 21250 - 19968: jis0208<<14 | 0x25<<7 | 0x56, - 21251 - 19968: jis0212<<14 | 0x12<<7 | 0x5B, - 21253 - 19968: jis0208<<14 | 0x29<<7 | 0x50, - 21254 - 19968: jis0208<<14 | 0x31<<7 | 0x11, - 21255 - 19968: jis0208<<14 | 0x58<<7 | 0x2D, - 21256 - 19968: jis0208<<14 | 0x31<<7 | 0x12, - 21258 - 19968: jis0212<<14 | 0x12<<7 | 0x5C, - 21259 - 19968: jis0212<<14 | 0x12<<7 | 0x5D, - 21260 - 19968: jis0212<<14 | 0x13<<7 | 0x00, - 21261 - 19968: jis0208<<14 | 0x31<<7 | 0x14, - 21263 - 19968: jis0208<<14 | 0x31<<7 | 0x16, - 21264 - 19968: jis0208<<14 | 0x31<<7 | 0x15, - 21265 - 19968: jis0212<<14 | 0x13<<7 | 0x01, - 21267 - 19968: jis0212<<14 | 0x13<<7 | 0x02, - 21269 - 19968: jis0208<<14 | 0x31<<7 | 0x17, - 21270 - 19968: jis0208<<14 | 0x11<<7 | 0x1C, - 21271 - 19968: jis0208<<14 | 0x2A<<7 | 0x2B, - 21272 - 19968: jis0212<<14 | 0x13<<7 | 0x03, - 21273 - 19968: jis0208<<14 | 0x19<<7 | 0x5B, - 21274 - 19968: jis0208<<14 | 0x31<<7 | 0x18, - 21275 - 19968: jis0212<<14 | 0x13<<7 | 0x04, - 21276 - 19968: jis0212<<14 | 0x13<<7 | 0x05, - 21277 - 19968: jis0208<<14 | 0x20<<7 | 0x38, - 21278 - 19968: jis0212<<14 | 0x13<<7 | 0x06, - 21279 - 19968: jis0212<<14 | 0x13<<7 | 0x07, - 21280 - 19968: jis0208<<14 | 0x1D<<7 | 0x01, - 21281 - 19968: jis0208<<14 | 0x15<<7 | 0x08, - 21283 - 19968: jis0208<<14 | 0x31<<7 | 0x19, - 21284 - 19968: jis0208<<14 | 0x58<<7 | 0x2E, - 21285 - 19968: jis0212<<14 | 0x13<<7 | 0x08, - 21287 - 19968: jis0212<<14 | 0x13<<7 | 0x09, - 21288 - 19968: jis0212<<14 | 0x13<<7 | 0x0A, - 21289 - 19968: jis0212<<14 | 0x13<<7 | 0x0B, - 21290 - 19968: jis0208<<14 | 0x27<<7 | 0x3A, - 21291 - 19968: jis0212<<14 | 0x13<<7 | 0x0C, - 21292 - 19968: jis0212<<14 | 0x13<<7 | 0x0D, - 21293 - 19968: jis0212<<14 | 0x13<<7 | 0x0E, - 21295 - 19968: jis0208<<14 | 0x31<<7 | 0x1A, - 21296 - 19968: jis0212<<14 | 0x13<<7 | 0x0F, - 21297 - 19968: jis0208<<14 | 0x31<<7 | 0x1B, - 21298 - 19968: jis0212<<14 | 0x13<<7 | 0x10, - 21299 - 19968: jis0208<<14 | 0x31<<7 | 0x1C, - 21301 - 19968: jis0212<<14 | 0x13<<7 | 0x11, - 21304 - 19968: jis0208<<14 | 0x31<<7 | 0x1D, - 21305 - 19968: jis0208<<14 | 0x28<<7 | 0x03, - 21306 - 19968: jis0208<<14 | 0x15<<7 | 0x47, - 21307 - 19968: jis0208<<14 | 0x0F<<7 | 0x44, - 21308 - 19968: jis0212<<14 | 0x13<<7 | 0x12, - 21309 - 19968: jis0212<<14 | 0x13<<7 | 0x13, - 21310 - 19968: jis0212<<14 | 0x13<<7 | 0x14, - 21311 - 19968: jis0208<<14 | 0x25<<7 | 0x1E, - 21312 - 19968: jis0208<<14 | 0x31<<7 | 0x1E, - 21313 - 19968: jis0208<<14 | 0x1C<<7 | 0x1C, - 21314 - 19968: jis0212<<14 | 0x13<<7 | 0x15, - 21315 - 19968: jis0208<<14 | 0x1F<<7 | 0x48, - 21317 - 19968: jis0208<<14 | 0x31<<7 | 0x20, - 21318 - 19968: jis0208<<14 | 0x31<<7 | 0x1F, - 21319 - 19968: jis0208<<14 | 0x1D<<7 | 0x02, - 21320 - 19968: jis0208<<14 | 0x17<<7 | 0x40, - 21321 - 19968: jis0208<<14 | 0x31<<7 | 0x22, - 21322 - 19968: jis0208<<14 | 0x27<<7 | 0x1D, - 21323 - 19968: jis0212<<14 | 0x13<<7 | 0x17, - 21324 - 19968: jis0212<<14 | 0x13<<7 | 0x16, - 21325 - 19968: jis0208<<14 | 0x31<<7 | 0x23, - 21329 - 19968: jis0208<<14 | 0x27<<7 | 0x3B, - 21330 - 19968: jis0208<<14 | 0x21<<7 | 0x13, - 21331 - 19968: jis0208<<14 | 0x21<<7 | 0x4D, - 21332 - 19968: jis0208<<14 | 0x15<<7 | 0x07, - 21335 - 19968: jis0208<<14 | 0x25<<7 | 0x4D, - 21336 - 19968: jis0208<<14 | 0x22<<7 | 0x10, - 21337 - 19968: jis0212<<14 | 0x13<<7 | 0x18, - 21338 - 19968: jis0208<<14 | 0x26<<7 | 0x4D, - 21339 - 19968: jis0212<<14 | 0x13<<7 | 0x19, - 21340 - 19968: jis0208<<14 | 0x2A<<7 | 0x2D, - 21342 - 19968: jis0208<<14 | 0x31<<7 | 0x25, - 21344 - 19968: jis0208<<14 | 0x1F<<7 | 0x49, - 21345 - 19968: jis0212<<14 | 0x13<<7 | 0x1A, - 21347 - 19968: jis0212<<14 | 0x13<<7 | 0x1B, - 21349 - 19968: jis0212<<14 | 0x13<<7 | 0x1C, - 21350 - 19968: jis0208<<14 | 0x16<<7 | 0x14, - 21353 - 19968: jis0208<<14 | 0x31<<7 | 0x26, - 21356 - 19968: jis0212<<14 | 0x13<<7 | 0x1D, - 21357 - 19968: jis0212<<14 | 0x13<<7 | 0x1E, - 21358 - 19968: jis0208<<14 | 0x31<<7 | 0x27, - 21359 - 19968: jis0208<<14 | 0x10<<7 | 0x0B, - 21360 - 19968: jis0208<<14 | 0x0F<<7 | 0x54, - 21361 - 19968: jis0208<<14 | 0x13<<7 | 0x4C, - 21362 - 19968: jis0208<<14 | 0x58<<7 | 0x2F, - 21363 - 19968: jis0208<<14 | 0x21<<7 | 0x07, - 21364 - 19968: jis0208<<14 | 0x14<<7 | 0x30, - 21365 - 19968: jis0208<<14 | 0x2C<<7 | 0x50, - 21367 - 19968: jis0208<<14 | 0x31<<7 | 0x2A, - 21368 - 19968: jis0208<<14 | 0x11<<7 | 0x16, - 21369 - 19968: jis0212<<14 | 0x13<<7 | 0x20, - 21371 - 19968: jis0208<<14 | 0x31<<7 | 0x29, - 21374 - 19968: jis0212<<14 | 0x13<<7 | 0x21, - 21375 - 19968: jis0208<<14 | 0x15<<7 | 0x09, - 21378 - 19968: jis0208<<14 | 0x31<<7 | 0x2B, - 21379 - 19968: jis0212<<14 | 0x13<<7 | 0x22, - 21380 - 19968: jis0208<<14 | 0x2B<<7 | 0x50, - 21383 - 19968: jis0212<<14 | 0x13<<7 | 0x23, - 21384 - 19968: jis0212<<14 | 0x13<<7 | 0x24, - 21390 - 19968: jis0212<<14 | 0x13<<7 | 0x25, - 21395 - 19968: jis0208<<14 | 0x58<<7 | 0x30, - 21396 - 19968: jis0212<<14 | 0x13<<7 | 0x27, - 21398 - 19968: jis0208<<14 | 0x31<<7 | 0x2C, - 21400 - 19968: jis0208<<14 | 0x2D<<7 | 0x31, - 21401 - 19968: jis0212<<14 | 0x13<<7 | 0x28, - 21402 - 19968: jis0208<<14 | 0x17<<7 | 0x5B, - 21405 - 19968: jis0212<<14 | 0x13<<7 | 0x29, - 21407 - 19968: jis0208<<14 | 0x17<<7 | 0x15, - 21408 - 19968: jis0208<<14 | 0x31<<7 | 0x2D, - 21409 - 19968: jis0212<<14 | 0x13<<7 | 0x2A, - 21412 - 19968: jis0212<<14 | 0x13<<7 | 0x2B, - 21413 - 19968: jis0208<<14 | 0x31<<7 | 0x2F, - 21414 - 19968: jis0208<<14 | 0x31<<7 | 0x2E, - 21416 - 19968: jis0208<<14 | 0x1E<<7 | 0x3E, - 21417 - 19968: jis0208<<14 | 0x10<<7 | 0x18, - 21418 - 19968: jis0212<<14 | 0x13<<7 | 0x2C, - 21419 - 19968: jis0212<<14 | 0x13<<7 | 0x2D, - 21421 - 19968: jis0208<<14 | 0x10<<7 | 0x3D, - 21422 - 19968: jis0208<<14 | 0x31<<7 | 0x30, - 21423 - 19968: jis0212<<14 | 0x13<<7 | 0x2E, - 21424 - 19968: jis0208<<14 | 0x31<<7 | 0x31, - 21426 - 19968: jis0208<<14 | 0x58<<7 | 0x31, - 21427 - 19968: jis0208<<14 | 0x17<<7 | 0x16, - 21428 - 19968: jis0212<<14 | 0x13<<7 | 0x30, - 21429 - 19968: jis0212<<14 | 0x13<<7 | 0x31, - 21430 - 19968: jis0208<<14 | 0x31<<7 | 0x32, - 21431 - 19968: jis0212<<14 | 0x13<<7 | 0x32, - 21432 - 19968: jis0212<<14 | 0x13<<7 | 0x33, - 21434 - 19968: jis0212<<14 | 0x13<<7 | 0x34, - 21435 - 19968: jis0208<<14 | 0x14<<7 | 0x4D, - 21437 - 19968: jis0212<<14 | 0x13<<7 | 0x35, - 21440 - 19968: jis0212<<14 | 0x13<<7 | 0x36, - 21442 - 19968: jis0208<<14 | 0x1A<<7 | 0x11, - 21443 - 19968: jis0208<<14 | 0x31<<7 | 0x33, - 21445 - 19968: jis0212<<14 | 0x13<<7 | 0x37, - 21448 - 19968: jis0208<<14 | 0x2A<<7 | 0x53, - 21449 - 19968: jis0208<<14 | 0x19<<7 | 0x14, - 21450 - 19968: jis0208<<14 | 0x14<<7 | 0x39, - 21451 - 19968: jis0208<<14 | 0x2C<<7 | 0x06, - 21452 - 19968: jis0208<<14 | 0x20<<7 | 0x2F, - 21453 - 19968: jis0208<<14 | 0x27<<7 | 0x1E, - 21454 - 19968: jis0208<<14 | 0x1B<<7 | 0x5C, - 21455 - 19968: jis0212<<14 | 0x13<<7 | 0x38, - 21458 - 19968: jis0212<<14 | 0x13<<7 | 0x39, - 21459 - 19968: jis0212<<14 | 0x13<<7 | 0x3A, - 21460 - 19968: jis0208<<14 | 0x1C<<7 | 0x26, - 21461 - 19968: jis0212<<14 | 0x13<<7 | 0x3B, - 21462 - 19968: jis0208<<14 | 0x1B<<7 | 0x47, - 21463 - 19968: jis0208<<14 | 0x1B<<7 | 0x54, - 21465 - 19968: jis0208<<14 | 0x1C<<7 | 0x55, - 21466 - 19968: jis0212<<14 | 0x13<<7 | 0x3C, - 21467 - 19968: jis0208<<14 | 0x27<<7 | 0x1F, - 21469 - 19968: jis0208<<14 | 0x58<<7 | 0x32, - 21470 - 19968: jis0212<<14 | 0x13<<7 | 0x3E, - 21471 - 19968: jis0208<<14 | 0x31<<7 | 0x36, - 21472 - 19968: jis0212<<14 | 0x13<<7 | 0x3F, - 21473 - 19968: jis0208<<14 | 0x10<<7 | 0x22, - 21474 - 19968: jis0208<<14 | 0x20<<7 | 0x30, - 21475 - 19968: jis0208<<14 | 0x17<<7 | 0x5C, - 21476 - 19968: jis0208<<14 | 0x17<<7 | 0x24, - 21477 - 19968: jis0208<<14 | 0x15<<7 | 0x46, - 21478 - 19968: jis0212<<14 | 0x13<<7 | 0x40, - 21479 - 19968: jis0212<<14 | 0x13<<7 | 0x41, - 21480 - 19968: jis0208<<14 | 0x31<<7 | 0x3A, - 21481 - 19968: jis0208<<14 | 0x22<<7 | 0x00, - 21482 - 19968: jis0208<<14 | 0x21<<7 | 0x5D, - 21483 - 19968: jis0208<<14 | 0x15<<7 | 0x0A, - 21484 - 19968: jis0208<<14 | 0x1D<<7 | 0x03, - 21485 - 19968: jis0208<<14 | 0x31<<7 | 0x3B, - 21486 - 19968: jis0208<<14 | 0x31<<7 | 0x39, - 21487 - 19968: jis0208<<14 | 0x11<<7 | 0x23, - 21488 - 19968: jis0208<<14 | 0x21<<7 | 0x45, - 21489 - 19968: jis0208<<14 | 0x1B<<7 | 0x17, - 21490 - 19968: jis0208<<14 | 0x1A<<7 | 0x2A, - 21491 - 19968: jis0208<<14 | 0x10<<7 | 0x05, - 21493 - 19968: jis0212<<14 | 0x13<<7 | 0x42, - 21494 - 19968: jis0208<<14 | 0x12<<7 | 0x4F, - 21495 - 19968: jis0208<<14 | 0x18<<7 | 0x45, - 21496 - 19968: jis0208<<14 | 0x1A<<7 | 0x29, - 21498 - 19968: jis0208<<14 | 0x31<<7 | 0x3C, - 21505 - 19968: jis0208<<14 | 0x31<<7 | 0x3D, - 21506 - 19968: jis0212<<14 | 0x13<<7 | 0x43, - 21507 - 19968: jis0208<<14 | 0x14<<7 | 0x28, - 21508 - 19968: jis0208<<14 | 0x12<<7 | 0x25, - 21512 - 19968: jis0208<<14 | 0x18<<7 | 0x46, - 21513 - 19968: jis0208<<14 | 0x14<<7 | 0x27, - 21514 - 19968: jis0208<<14 | 0x23<<7 | 0x3E, - 21515 - 19968: jis0208<<14 | 0x10<<7 | 0x04, - 21516 - 19968: jis0208<<14 | 0x25<<7 | 0x10, - 21517 - 19968: jis0208<<14 | 0x2B<<7 | 0x1D, - 21518 - 19968: jis0208<<14 | 0x18<<7 | 0x00, - 21519 - 19968: jis0208<<14 | 0x2C<<7 | 0x58, - 21520 - 19968: jis0208<<14 | 0x24<<7 | 0x26, - 21521 - 19968: jis0208<<14 | 0x17<<7 | 0x5D, - 21523 - 19968: jis0212<<14 | 0x13<<7 | 0x44, - 21530 - 19968: jis0212<<14 | 0x13<<7 | 0x45, - 21531 - 19968: jis0208<<14 | 0x16<<7 | 0x0E, - 21533 - 19968: jis0208<<14 | 0x31<<7 | 0x46, - 21535 - 19968: jis0208<<14 | 0x15<<7 | 0x42, - 21536 - 19968: jis0208<<14 | 0x2A<<7 | 0x29, - 21537 - 19968: jis0212<<14 | 0x13<<7 | 0x46, - 21542 - 19968: jis0208<<14 | 0x27<<7 | 0x3C, - 21543 - 19968: jis0212<<14 | 0x13<<7 | 0x47, - 21544 - 19968: jis0212<<14 | 0x13<<7 | 0x48, - 21545 - 19968: jis0208<<14 | 0x31<<7 | 0x45, - 21546 - 19968: jis0212<<14 | 0x13<<7 | 0x49, - 21547 - 19968: jis0208<<14 | 0x13<<7 | 0x3D, - 21548 - 19968: jis0208<<14 | 0x31<<7 | 0x40, - 21549 - 19968: jis0208<<14 | 0x31<<7 | 0x41, - 21550 - 19968: jis0208<<14 | 0x31<<7 | 0x43, - 21551 - 19968: jis0212<<14 | 0x13<<7 | 0x4A, - 21553 - 19968: jis0212<<14 | 0x13<<7 | 0x4B, - 21556 - 19968: jis0212<<14 | 0x13<<7 | 0x4C, - 21557 - 19968: jis0212<<14 | 0x13<<7 | 0x4D, - 21558 - 19968: jis0208<<14 | 0x31<<7 | 0x44, - 21560 - 19968: jis0208<<14 | 0x14<<7 | 0x3A, - 21561 - 19968: jis0208<<14 | 0x1E<<7 | 0x40, - 21563 - 19968: jis0208<<14 | 0x29<<7 | 0x0C, - 21564 - 19968: jis0208<<14 | 0x31<<7 | 0x42, - 21565 - 19968: jis0208<<14 | 0x31<<7 | 0x3E, - 21566 - 19968: jis0208<<14 | 0x17<<7 | 0x42, - 21568 - 19968: jis0208<<14 | 0x31<<7 | 0x3F, - 21570 - 19968: jis0208<<14 | 0x2E<<7 | 0x03, - 21571 - 19968: jis0212<<14 | 0x13<<7 | 0x4E, - 21572 - 19968: jis0212<<14 | 0x13<<7 | 0x4F, - 21574 - 19968: jis0208<<14 | 0x29<<7 | 0x51, - 21575 - 19968: jis0212<<14 | 0x13<<7 | 0x50, - 21576 - 19968: jis0208<<14 | 0x23<<7 | 0x47, - 21577 - 19968: jis0208<<14 | 0x17<<7 | 0x41, - 21578 - 19968: jis0208<<14 | 0x18<<7 | 0x4F, - 21581 - 19968: jis0212<<14 | 0x13<<7 | 0x51, - 21582 - 19968: jis0208<<14 | 0x31<<7 | 0x47, - 21583 - 19968: jis0212<<14 | 0x13<<7 | 0x52, - 21585 - 19968: jis0208<<14 | 0x25<<7 | 0x3C, - 21598 - 19968: jis0212<<14 | 0x13<<7 | 0x53, - 21599 - 19968: jis0208<<14 | 0x31<<7 | 0x4B, - 21602 - 19968: jis0212<<14 | 0x13<<7 | 0x54, - 21604 - 19968: jis0212<<14 | 0x13<<7 | 0x55, - 21606 - 19968: jis0212<<14 | 0x13<<7 | 0x56, - 21607 - 19968: jis0212<<14 | 0x13<<7 | 0x57, - 21608 - 19968: jis0208<<14 | 0x1B<<7 | 0x5D, - 21609 - 19968: jis0212<<14 | 0x13<<7 | 0x58, - 21610 - 19968: jis0208<<14 | 0x1B<<7 | 0x55, - 21611 - 19968: jis0212<<14 | 0x13<<7 | 0x59, - 21613 - 19968: jis0212<<14 | 0x13<<7 | 0x5A, - 21614 - 19968: jis0212<<14 | 0x13<<7 | 0x5B, - 21616 - 19968: jis0208<<14 | 0x31<<7 | 0x4E, - 21617 - 19968: jis0208<<14 | 0x31<<7 | 0x4C, - 21619 - 19968: jis0208<<14 | 0x2B<<7 | 0x02, - 21620 - 19968: jis0212<<14 | 0x13<<7 | 0x5C, - 21621 - 19968: jis0208<<14 | 0x31<<7 | 0x49, - 21622 - 19968: jis0208<<14 | 0x31<<7 | 0x52, - 21623 - 19968: jis0208<<14 | 0x31<<7 | 0x4D, - 21627 - 19968: jis0208<<14 | 0x31<<7 | 0x50, - 21628 - 19968: jis0208<<14 | 0x17<<7 | 0x25, - 21629 - 19968: jis0208<<14 | 0x2B<<7 | 0x1E, - 21631 - 19968: jis0212<<14 | 0x13<<7 | 0x5D, - 21632 - 19968: jis0208<<14 | 0x31<<7 | 0x51, - 21633 - 19968: jis0212<<14 | 0x14<<7 | 0x00, - 21635 - 19968: jis0212<<14 | 0x14<<7 | 0x01, - 21636 - 19968: jis0208<<14 | 0x31<<7 | 0x53, - 21637 - 19968: jis0212<<14 | 0x14<<7 | 0x02, - 21638 - 19968: jis0208<<14 | 0x31<<7 | 0x55, - 21640 - 19968: jis0212<<14 | 0x14<<7 | 0x03, - 21641 - 19968: jis0212<<14 | 0x14<<7 | 0x04, - 21642 - 19968: jis0208<<14 | 0x58<<7 | 0x35, - 21643 - 19968: jis0208<<14 | 0x19<<7 | 0x4F, - 21644 - 19968: jis0208<<14 | 0x2E<<7 | 0x21, - 21645 - 19968: jis0212<<14 | 0x14<<7 | 0x05, - 21646 - 19968: jis0208<<14 | 0x31<<7 | 0x4A, - 21647 - 19968: jis0208<<14 | 0x31<<7 | 0x48, - 21648 - 19968: jis0208<<14 | 0x31<<7 | 0x54, - 21649 - 19968: jis0212<<14 | 0x14<<7 | 0x06, - 21650 - 19968: jis0208<<14 | 0x31<<7 | 0x4F, - 21653 - 19968: jis0212<<14 | 0x14<<7 | 0x07, - 21654 - 19968: jis0212<<14 | 0x14<<7 | 0x08, - 21660 - 19968: jis0208<<14 | 0x58<<7 | 0x34, - 21663 - 19968: jis0212<<14 | 0x14<<7 | 0x0A, - 21665 - 19968: jis0212<<14 | 0x14<<7 | 0x0B, - 21666 - 19968: jis0208<<14 | 0x31<<7 | 0x57, - 21668 - 19968: jis0208<<14 | 0x32<<7 | 0x02, - 21669 - 19968: jis0208<<14 | 0x31<<7 | 0x59, - 21670 - 19968: jis0212<<14 | 0x14<<7 | 0x0C, - 21671 - 19968: jis0212<<14 | 0x14<<7 | 0x0D, - 21672 - 19968: jis0208<<14 | 0x31<<7 | 0x5D, - 21673 - 19968: jis0208<<14 | 0x58<<7 | 0x36, - 21674 - 19968: jis0212<<14 | 0x14<<7 | 0x0F, - 21675 - 19968: jis0208<<14 | 0x32<<7 | 0x00, - 21676 - 19968: jis0208<<14 | 0x31<<7 | 0x5A, - 21677 - 19968: jis0212<<14 | 0x14<<7 | 0x10, - 21678 - 19968: jis0212<<14 | 0x14<<7 | 0x11, - 21679 - 19968: jis0208<<14 | 0x32<<7 | 0x1D, - 21681 - 19968: jis0212<<14 | 0x14<<7 | 0x12, - 21682 - 19968: jis0208<<14 | 0x19<<7 | 0x48, - 21683 - 19968: jis0208<<14 | 0x12<<7 | 0x10, - 21687 - 19968: jis0212<<14 | 0x14<<7 | 0x13, - 21688 - 19968: jis0208<<14 | 0x31<<7 | 0x58, - 21689 - 19968: jis0212<<14 | 0x14<<7 | 0x14, - 21690 - 19968: jis0212<<14 | 0x14<<7 | 0x15, - 21691 - 19968: jis0212<<14 | 0x14<<7 | 0x16, - 21692 - 19968: jis0208<<14 | 0x32<<7 | 0x04, - 21693 - 19968: jis0208<<14 | 0x0F<<7 | 0x55, - 21694 - 19968: jis0208<<14 | 0x32<<7 | 0x03, - 21695 - 19968: jis0212<<14 | 0x14<<7 | 0x17, - 21696 - 19968: jis0208<<14 | 0x0F<<7 | 0x04, - 21697 - 19968: jis0208<<14 | 0x28<<7 | 0x29, - 21698 - 19968: jis0208<<14 | 0x32<<7 | 0x01, - 21700 - 19968: jis0208<<14 | 0x31<<7 | 0x5B, - 21702 - 19968: jis0212<<14 | 0x14<<7 | 0x18, - 21703 - 19968: jis0208<<14 | 0x31<<7 | 0x56, - 21704 - 19968: jis0208<<14 | 0x31<<7 | 0x5C, - 21705 - 19968: jis0208<<14 | 0x19<<7 | 0x27, - 21706 - 19968: jis0212<<14 | 0x14<<7 | 0x19, - 21709 - 19968: jis0212<<14 | 0x14<<7 | 0x1A, - 21710 - 19968: jis0212<<14 | 0x14<<7 | 0x1B, - 21720 - 19968: jis0208<<14 | 0x32<<7 | 0x05, - 21728 - 19968: jis0212<<14 | 0x14<<7 | 0x1C, - 21729 - 19968: jis0208<<14 | 0x0F<<7 | 0x56, - 21730 - 19968: jis0208<<14 | 0x32<<7 | 0x0E, - 21733 - 19968: jis0208<<14 | 0x32<<7 | 0x06, - 21734 - 19968: jis0208<<14 | 0x32<<7 | 0x07, - 21736 - 19968: jis0208<<14 | 0x1D<<7 | 0x04, - 21737 - 19968: jis0208<<14 | 0x2A<<7 | 0x48, - 21738 - 19968: jis0212<<14 | 0x14<<7 | 0x1D, - 21740 - 19968: jis0212<<14 | 0x14<<7 | 0x1E, - 21741 - 19968: jis0208<<14 | 0x32<<7 | 0x0C, - 21742 - 19968: jis0208<<14 | 0x32<<7 | 0x0B, - 21743 - 19968: jis0212<<14 | 0x14<<7 | 0x1F, - 21746 - 19968: jis0208<<14 | 0x24<<7 | 0x0E, - 21750 - 19968: jis0212<<14 | 0x14<<7 | 0x20, - 21754 - 19968: jis0208<<14 | 0x32<<7 | 0x0D, - 21756 - 19968: jis0212<<14 | 0x14<<7 | 0x21, - 21757 - 19968: jis0208<<14 | 0x32<<7 | 0x0A, - 21758 - 19968: jis0212<<14 | 0x14<<7 | 0x22, - 21759 - 19968: jis0208<<14 | 0x58<<7 | 0x37, - 21760 - 19968: jis0212<<14 | 0x14<<7 | 0x24, - 21761 - 19968: jis0212<<14 | 0x14<<7 | 0x25, - 21764 - 19968: jis0208<<14 | 0x10<<7 | 0x13, - 21765 - 19968: jis0212<<14 | 0x14<<7 | 0x26, - 21766 - 19968: jis0208<<14 | 0x19<<7 | 0x15, - 21767 - 19968: jis0208<<14 | 0x1E<<7 | 0x0F, - 21768 - 19968: jis0212<<14 | 0x14<<7 | 0x27, - 21769 - 19968: jis0212<<14 | 0x14<<7 | 0x28, - 21772 - 19968: jis0212<<14 | 0x14<<7 | 0x29, - 21773 - 19968: jis0212<<14 | 0x14<<7 | 0x2A, - 21774 - 19968: jis0212<<14 | 0x14<<7 | 0x2B, - 21775 - 19968: jis0208<<14 | 0x32<<7 | 0x08, - 21776 - 19968: jis0208<<14 | 0x24<<7 | 0x41, - 21780 - 19968: jis0208<<14 | 0x32<<7 | 0x09, - 21781 - 19968: jis0212<<14 | 0x14<<7 | 0x2C, - 21782 - 19968: jis0208<<14 | 0x0F<<7 | 0x01, - 21802 - 19968: jis0212<<14 | 0x14<<7 | 0x2D, - 21803 - 19968: jis0212<<14 | 0x14<<7 | 0x2E, - 21806 - 19968: jis0208<<14 | 0x32<<7 | 0x13, - 21807 - 19968: jis0208<<14 | 0x2C<<7 | 0x02, - 21809 - 19968: jis0208<<14 | 0x1D<<7 | 0x06, - 21810 - 19968: jis0212<<14 | 0x14<<7 | 0x2F, - 21811 - 19968: jis0208<<14 | 0x32<<7 | 0x19, - 21813 - 19968: jis0212<<14 | 0x14<<7 | 0x30, - 21814 - 19968: jis0212<<14 | 0x14<<7 | 0x31, - 21816 - 19968: jis0208<<14 | 0x32<<7 | 0x18, - 21817 - 19968: jis0208<<14 | 0x32<<7 | 0x0F, - 21819 - 19968: jis0212<<14 | 0x14<<7 | 0x32, - 21820 - 19968: jis0212<<14 | 0x14<<7 | 0x33, - 21821 - 19968: jis0212<<14 | 0x14<<7 | 0x34, - 21822 - 19968: jis0208<<14 | 0x21<<7 | 0x22, - 21824 - 19968: jis0208<<14 | 0x32<<7 | 0x10, - 21825 - 19968: jis0212<<14 | 0x14<<7 | 0x35, - 21828 - 19968: jis0208<<14 | 0x21<<7 | 0x4E, - 21829 - 19968: jis0208<<14 | 0x32<<7 | 0x15, - 21830 - 19968: jis0208<<14 | 0x1D<<7 | 0x05, - 21831 - 19968: jis0212<<14 | 0x14<<7 | 0x36, - 21833 - 19968: jis0212<<14 | 0x14<<7 | 0x37, - 21834 - 19968: jis0212<<14 | 0x14<<7 | 0x38, - 21836 - 19968: jis0208<<14 | 0x32<<7 | 0x12, - 21837 - 19968: jis0212<<14 | 0x14<<7 | 0x39, - 21839 - 19968: jis0208<<14 | 0x2B<<7 | 0x43, - 21840 - 19968: jis0212<<14 | 0x14<<7 | 0x3A, - 21841 - 19968: jis0212<<14 | 0x14<<7 | 0x3B, - 21843 - 19968: jis0208<<14 | 0x16<<7 | 0x1B, - 21846 - 19968: jis0208<<14 | 0x32<<7 | 0x16, - 21847 - 19968: jis0208<<14 | 0x32<<7 | 0x17, - 21848 - 19968: jis0212<<14 | 0x14<<7 | 0x3C, - 21850 - 19968: jis0212<<14 | 0x14<<7 | 0x3D, - 21851 - 19968: jis0212<<14 | 0x14<<7 | 0x3E, - 21852 - 19968: jis0208<<14 | 0x32<<7 | 0x14, - 21853 - 19968: jis0208<<14 | 0x32<<7 | 0x1A, - 21854 - 19968: jis0212<<14 | 0x14<<7 | 0x3F, - 21856 - 19968: jis0212<<14 | 0x14<<7 | 0x40, - 21857 - 19968: jis0212<<14 | 0x14<<7 | 0x41, - 21859 - 19968: jis0208<<14 | 0x32<<7 | 0x11, - 21860 - 19968: jis0212<<14 | 0x14<<7 | 0x42, - 21862 - 19968: jis0212<<14 | 0x14<<7 | 0x43, - 21883 - 19968: jis0208<<14 | 0x32<<7 | 0x20, - 21884 - 19968: jis0208<<14 | 0x32<<7 | 0x25, - 21886 - 19968: jis0208<<14 | 0x32<<7 | 0x21, - 21887 - 19968: jis0212<<14 | 0x14<<7 | 0x44, - 21888 - 19968: jis0208<<14 | 0x32<<7 | 0x1C, - 21889 - 19968: jis0212<<14 | 0x14<<7 | 0x45, - 21890 - 19968: jis0212<<14 | 0x14<<7 | 0x46, - 21891 - 19968: jis0208<<14 | 0x32<<7 | 0x26, - 21892 - 19968: jis0208<<14 | 0x20<<7 | 0x10, - 21894 - 19968: jis0208<<14 | 0x58<<7 | 0x38, - 21895 - 19968: jis0208<<14 | 0x32<<7 | 0x28, - 21896 - 19968: jis0212<<14 | 0x14<<7 | 0x48, - 21897 - 19968: jis0208<<14 | 0x18<<7 | 0x01, - 21898 - 19968: jis0208<<14 | 0x32<<7 | 0x1E, - 21899 - 19968: jis0208<<14 | 0x22<<7 | 0x5C, - 21902 - 19968: jis0212<<14 | 0x14<<7 | 0x49, - 21903 - 19968: jis0212<<14 | 0x14<<7 | 0x4A, - 21905 - 19968: jis0212<<14 | 0x14<<7 | 0x4B, - 21906 - 19968: jis0212<<14 | 0x14<<7 | 0x4C, - 21907 - 19968: jis0212<<14 | 0x14<<7 | 0x4D, - 21908 - 19968: jis0212<<14 | 0x14<<7 | 0x4E, - 21911 - 19968: jis0212<<14 | 0x14<<7 | 0x4F, - 21912 - 19968: jis0208<<14 | 0x32<<7 | 0x22, - 21913 - 19968: jis0208<<14 | 0x32<<7 | 0x1B, - 21914 - 19968: jis0208<<14 | 0x13<<7 | 0x0C, - 21916 - 19968: jis0208<<14 | 0x13<<7 | 0x4D, - 21917 - 19968: jis0208<<14 | 0x12<<7 | 0x44, - 21918 - 19968: jis0208<<14 | 0x32<<7 | 0x23, - 21919 - 19968: jis0208<<14 | 0x32<<7 | 0x1F, - 21923 - 19968: jis0212<<14 | 0x14<<7 | 0x50, - 21924 - 19968: jis0212<<14 | 0x14<<7 | 0x51, - 21927 - 19968: jis0208<<14 | 0x16<<7 | 0x55, - 21928 - 19968: jis0208<<14 | 0x32<<7 | 0x29, - 21929 - 19968: jis0208<<14 | 0x32<<7 | 0x27, - 21930 - 19968: jis0208<<14 | 0x20<<7 | 0x32, - 21931 - 19968: jis0208<<14 | 0x14<<7 | 0x29, - 21932 - 19968: jis0208<<14 | 0x15<<7 | 0x0B, - 21933 - 19968: jis0212<<14 | 0x14<<7 | 0x52, - 21934 - 19968: jis0208<<14 | 0x32<<7 | 0x24, - 21936 - 19968: jis0208<<14 | 0x15<<7 | 0x53, - 21938 - 19968: jis0212<<14 | 0x14<<7 | 0x53, - 21942 - 19968: jis0208<<14 | 0x10<<7 | 0x23, - 21951 - 19968: jis0212<<14 | 0x14<<7 | 0x54, - 21953 - 19968: jis0212<<14 | 0x14<<7 | 0x55, - 21955 - 19968: jis0212<<14 | 0x14<<7 | 0x56, - 21956 - 19968: jis0208<<14 | 0x32<<7 | 0x2D, - 21957 - 19968: jis0208<<14 | 0x32<<7 | 0x2B, - 21958 - 19968: jis0212<<14 | 0x14<<7 | 0x57, - 21959 - 19968: jis0208<<14 | 0x33<<7 | 0x06, - 21961 - 19968: jis0212<<14 | 0x14<<7 | 0x58, - 21963 - 19968: jis0212<<14 | 0x14<<7 | 0x59, - 21964 - 19968: jis0212<<14 | 0x14<<7 | 0x5A, - 21966 - 19968: jis0212<<14 | 0x14<<7 | 0x5B, - 21969 - 19968: jis0212<<14 | 0x14<<7 | 0x5C, - 21970 - 19968: jis0212<<14 | 0x14<<7 | 0x5D, - 21971 - 19968: jis0212<<14 | 0x15<<7 | 0x00, - 21972 - 19968: jis0208<<14 | 0x32<<7 | 0x30, - 21975 - 19968: jis0212<<14 | 0x15<<7 | 0x01, - 21976 - 19968: jis0212<<14 | 0x15<<7 | 0x02, - 21978 - 19968: jis0208<<14 | 0x32<<7 | 0x2A, - 21979 - 19968: jis0212<<14 | 0x15<<7 | 0x03, - 21980 - 19968: jis0208<<14 | 0x32<<7 | 0x2E, - 21982 - 19968: jis0212<<14 | 0x15<<7 | 0x04, - 21983 - 19968: jis0208<<14 | 0x32<<7 | 0x2C, - 21986 - 19968: jis0212<<14 | 0x15<<7 | 0x05, - 21987 - 19968: jis0208<<14 | 0x1A<<7 | 0x2B, - 21988 - 19968: jis0208<<14 | 0x32<<7 | 0x2F, - 21993 - 19968: jis0212<<14 | 0x15<<7 | 0x06, - 22006 - 19968: jis0212<<14 | 0x15<<7 | 0x07, - 22007 - 19968: jis0208<<14 | 0x32<<7 | 0x32, - 22009 - 19968: jis0208<<14 | 0x32<<7 | 0x37, - 22013 - 19968: jis0208<<14 | 0x32<<7 | 0x35, - 22014 - 19968: jis0208<<14 | 0x32<<7 | 0x34, - 22015 - 19968: jis0212<<14 | 0x15<<7 | 0x08, - 22021 - 19968: jis0212<<14 | 0x15<<7 | 0x09, - 22022 - 19968: jis0208<<14 | 0x22<<7 | 0x11, - 22024 - 19968: jis0212<<14 | 0x15<<7 | 0x0A, - 22025 - 19968: jis0208<<14 | 0x11<<7 | 0x24, - 22026 - 19968: jis0212<<14 | 0x15<<7 | 0x0B, - 22029 - 19968: jis0212<<14 | 0x15<<7 | 0x0C, - 22030 - 19968: jis0212<<14 | 0x15<<7 | 0x0D, - 22031 - 19968: jis0212<<14 | 0x15<<7 | 0x0E, - 22032 - 19968: jis0212<<14 | 0x15<<7 | 0x0F, - 22033 - 19968: jis0212<<14 | 0x15<<7 | 0x10, - 22034 - 19968: jis0212<<14 | 0x15<<7 | 0x11, - 22036 - 19968: jis0208<<14 | 0x32<<7 | 0x31, - 22038 - 19968: jis0208<<14 | 0x32<<7 | 0x33, - 22039 - 19968: jis0208<<14 | 0x1D<<7 | 0x07, - 22040 - 19968: jis0208<<14 | 0x10<<7 | 0x12, - 22041 - 19968: jis0212<<14 | 0x15<<7 | 0x12, - 22043 - 19968: jis0208<<14 | 0x32<<7 | 0x36, - 22057 - 19968: jis0208<<14 | 0x11<<7 | 0x3D, - 22060 - 19968: jis0212<<14 | 0x15<<7 | 0x13, - 22063 - 19968: jis0208<<14 | 0x32<<7 | 0x41, - 22064 - 19968: jis0212<<14 | 0x15<<7 | 0x14, - 22065 - 19968: jis0208<<14 | 0x1D<<7 | 0x5B, - 22066 - 19968: jis0208<<14 | 0x32<<7 | 0x3D, - 22067 - 19968: jis0212<<14 | 0x15<<7 | 0x15, - 22068 - 19968: jis0208<<14 | 0x32<<7 | 0x3B, - 22069 - 19968: jis0212<<14 | 0x15<<7 | 0x16, - 22070 - 19968: jis0208<<14 | 0x32<<7 | 0x3C, - 22071 - 19968: jis0212<<14 | 0x15<<7 | 0x17, - 22072 - 19968: jis0208<<14 | 0x32<<7 | 0x3E, - 22073 - 19968: jis0212<<14 | 0x15<<7 | 0x18, - 22075 - 19968: jis0212<<14 | 0x15<<7 | 0x19, - 22076 - 19968: jis0212<<14 | 0x15<<7 | 0x1A, - 22077 - 19968: jis0212<<14 | 0x15<<7 | 0x1B, - 22079 - 19968: jis0212<<14 | 0x15<<7 | 0x1C, - 22080 - 19968: jis0212<<14 | 0x15<<7 | 0x1D, - 22081 - 19968: jis0212<<14 | 0x15<<7 | 0x1E, - 22082 - 19968: jis0208<<14 | 0x10<<7 | 0x1C, - 22083 - 19968: jis0212<<14 | 0x15<<7 | 0x1F, - 22084 - 19968: jis0212<<14 | 0x15<<7 | 0x20, - 22086 - 19968: jis0212<<14 | 0x15<<7 | 0x21, - 22089 - 19968: jis0212<<14 | 0x15<<7 | 0x22, - 22091 - 19968: jis0212<<14 | 0x15<<7 | 0x23, - 22092 - 19968: jis0208<<14 | 0x20<<7 | 0x18, - 22093 - 19968: jis0212<<14 | 0x15<<7 | 0x24, - 22094 - 19968: jis0208<<14 | 0x32<<7 | 0x38, - 22095 - 19968: jis0212<<14 | 0x15<<7 | 0x25, - 22096 - 19968: jis0208<<14 | 0x32<<7 | 0x39, - 22100 - 19968: jis0212<<14 | 0x15<<7 | 0x26, - 22107 - 19968: jis0208<<14 | 0x12<<7 | 0x59, - 22110 - 19968: jis0212<<14 | 0x15<<7 | 0x27, - 22112 - 19968: jis0212<<14 | 0x15<<7 | 0x28, - 22113 - 19968: jis0212<<14 | 0x15<<7 | 0x29, - 22114 - 19968: jis0212<<14 | 0x15<<7 | 0x2A, - 22115 - 19968: jis0212<<14 | 0x15<<7 | 0x2B, - 22116 - 19968: jis0208<<14 | 0x32<<7 | 0x40, - 22118 - 19968: jis0212<<14 | 0x15<<7 | 0x2C, - 22120 - 19968: jis0208<<14 | 0x13<<7 | 0x4E, - 22121 - 19968: jis0212<<14 | 0x15<<7 | 0x2D, - 22122 - 19968: jis0208<<14 | 0x32<<7 | 0x43, - 22123 - 19968: jis0208<<14 | 0x32<<7 | 0x3F, - 22124 - 19968: jis0208<<14 | 0x32<<7 | 0x42, - 22125 - 19968: jis0212<<14 | 0x15<<7 | 0x2E, - 22127 - 19968: jis0212<<14 | 0x15<<7 | 0x2F, - 22129 - 19968: jis0212<<14 | 0x15<<7 | 0x30, - 22130 - 19968: jis0212<<14 | 0x15<<7 | 0x31, - 22132 - 19968: jis0208<<14 | 0x29<<7 | 0x0D, - 22133 - 19968: jis0212<<14 | 0x15<<7 | 0x32, - 22136 - 19968: jis0208<<14 | 0x25<<7 | 0x34, - 22138 - 19968: jis0208<<14 | 0x27<<7 | 0x17, - 22144 - 19968: jis0208<<14 | 0x32<<7 | 0x45, - 22148 - 19968: jis0212<<14 | 0x15<<7 | 0x33, - 22149 - 19968: jis0212<<14 | 0x15<<7 | 0x34, - 22150 - 19968: jis0208<<14 | 0x32<<7 | 0x44, - 22151 - 19968: jis0208<<14 | 0x12<<7 | 0x24, - 22152 - 19968: jis0212<<14 | 0x15<<7 | 0x35, - 22154 - 19968: jis0208<<14 | 0x32<<7 | 0x46, - 22155 - 19968: jis0212<<14 | 0x15<<7 | 0x36, - 22156 - 19968: jis0212<<14 | 0x15<<7 | 0x37, - 22159 - 19968: jis0208<<14 | 0x32<<7 | 0x49, - 22164 - 19968: jis0208<<14 | 0x32<<7 | 0x48, - 22165 - 19968: jis0212<<14 | 0x15<<7 | 0x38, - 22169 - 19968: jis0212<<14 | 0x15<<7 | 0x39, - 22170 - 19968: jis0212<<14 | 0x15<<7 | 0x3A, - 22173 - 19968: jis0212<<14 | 0x15<<7 | 0x3B, - 22174 - 19968: jis0212<<14 | 0x15<<7 | 0x3C, - 22175 - 19968: jis0212<<14 | 0x15<<7 | 0x3D, - 22176 - 19968: jis0208<<14 | 0x32<<7 | 0x47, - 22178 - 19968: jis0208<<14 | 0x26<<7 | 0x18, - 22181 - 19968: jis0208<<14 | 0x32<<7 | 0x4A, - 22182 - 19968: jis0212<<14 | 0x15<<7 | 0x3E, - 22183 - 19968: jis0212<<14 | 0x15<<7 | 0x3F, - 22184 - 19968: jis0212<<14 | 0x15<<7 | 0x40, - 22185 - 19968: jis0212<<14 | 0x15<<7 | 0x41, - 22187 - 19968: jis0212<<14 | 0x15<<7 | 0x42, - 22188 - 19968: jis0212<<14 | 0x15<<7 | 0x43, - 22189 - 19968: jis0212<<14 | 0x15<<7 | 0x44, - 22190 - 19968: jis0208<<14 | 0x32<<7 | 0x4B, - 22193 - 19968: jis0212<<14 | 0x15<<7 | 0x45, - 22195 - 19968: jis0212<<14 | 0x15<<7 | 0x46, - 22196 - 19968: jis0208<<14 | 0x32<<7 | 0x4D, - 22198 - 19968: jis0208<<14 | 0x32<<7 | 0x4C, - 22199 - 19968: jis0212<<14 | 0x15<<7 | 0x47, - 22204 - 19968: jis0208<<14 | 0x32<<7 | 0x4F, - 22206 - 19968: jis0212<<14 | 0x15<<7 | 0x48, - 22208 - 19968: jis0208<<14 | 0x32<<7 | 0x52, - 22209 - 19968: jis0208<<14 | 0x32<<7 | 0x50, - 22210 - 19968: jis0208<<14 | 0x32<<7 | 0x4E, - 22211 - 19968: jis0208<<14 | 0x32<<7 | 0x51, - 22213 - 19968: jis0212<<14 | 0x15<<7 | 0x49, - 22216 - 19968: jis0208<<14 | 0x32<<7 | 0x53, - 22217 - 19968: jis0212<<14 | 0x15<<7 | 0x4A, - 22218 - 19968: jis0212<<14 | 0x15<<7 | 0x4B, - 22219 - 19968: jis0212<<14 | 0x15<<7 | 0x4C, - 22220 - 19968: jis0212<<14 | 0x15<<7 | 0x4F, - 22221 - 19968: jis0212<<14 | 0x15<<7 | 0x50, - 22222 - 19968: jis0208<<14 | 0x32<<7 | 0x54, - 22223 - 19968: jis0212<<14 | 0x15<<7 | 0x4D, - 22224 - 19968: jis0212<<14 | 0x15<<7 | 0x4E, - 22225 - 19968: jis0208<<14 | 0x32<<7 | 0x55, - 22227 - 19968: jis0208<<14 | 0x32<<7 | 0x56, - 22231 - 19968: jis0208<<14 | 0x32<<7 | 0x57, - 22232 - 19968: jis0208<<14 | 0x30<<7 | 0x24, - 22233 - 19968: jis0212<<14 | 0x15<<7 | 0x51, - 22234 - 19968: jis0208<<14 | 0x1B<<7 | 0x5B, - 22235 - 19968: jis0208<<14 | 0x1A<<7 | 0x2C, - 22236 - 19968: jis0212<<14 | 0x15<<7 | 0x52, - 22237 - 19968: jis0212<<14 | 0x15<<7 | 0x53, - 22238 - 19968: jis0208<<14 | 0x11<<7 | 0x52, - 22239 - 19968: jis0212<<14 | 0x15<<7 | 0x54, - 22240 - 19968: jis0208<<14 | 0x0F<<7 | 0x57, - 22241 - 19968: jis0212<<14 | 0x15<<7 | 0x55, - 22243 - 19968: jis0208<<14 | 0x22<<7 | 0x23, - 22244 - 19968: jis0212<<14 | 0x15<<7 | 0x56, - 22245 - 19968: jis0212<<14 | 0x15<<7 | 0x57, - 22246 - 19968: jis0212<<14 | 0x15<<7 | 0x58, - 22247 - 19968: jis0212<<14 | 0x15<<7 | 0x59, - 22248 - 19968: jis0212<<14 | 0x15<<7 | 0x5A, - 22251 - 19968: jis0212<<14 | 0x15<<7 | 0x5C, - 22253 - 19968: jis0212<<14 | 0x15<<7 | 0x5D, - 22254 - 19968: jis0208<<14 | 0x32<<7 | 0x58, - 22256 - 19968: jis0208<<14 | 0x19<<7 | 0x03, - 22257 - 19968: jis0212<<14 | 0x15<<7 | 0x5B, - 22258 - 19968: jis0208<<14 | 0x0F<<7 | 0x2E, - 22259 - 19968: jis0208<<14 | 0x1E<<7 | 0x3D, - 22262 - 19968: jis0212<<14 | 0x16<<7 | 0x00, - 22263 - 19968: jis0212<<14 | 0x16<<7 | 0x01, - 22265 - 19968: jis0208<<14 | 0x32<<7 | 0x59, - 22266 - 19968: jis0208<<14 | 0x17<<7 | 0x26, - 22269 - 19968: jis0208<<14 | 0x18<<7 | 0x50, - 22271 - 19968: jis0208<<14 | 0x32<<7 | 0x5B, - 22272 - 19968: jis0208<<14 | 0x32<<7 | 0x5A, - 22273 - 19968: jis0212<<14 | 0x16<<7 | 0x02, - 22274 - 19968: jis0212<<14 | 0x16<<7 | 0x03, - 22275 - 19968: jis0208<<14 | 0x29<<7 | 0x3F, - 22276 - 19968: jis0208<<14 | 0x32<<7 | 0x5C, - 22279 - 19968: jis0212<<14 | 0x16<<7 | 0x04, - 22280 - 19968: jis0208<<14 | 0x33<<7 | 0x00, - 22281 - 19968: jis0208<<14 | 0x32<<7 | 0x5D, - 22282 - 19968: jis0212<<14 | 0x16<<7 | 0x05, - 22283 - 19968: jis0208<<14 | 0x33<<7 | 0x01, - 22284 - 19968: jis0212<<14 | 0x16<<7 | 0x06, - 22285 - 19968: jis0208<<14 | 0x33<<7 | 0x02, - 22287 - 19968: jis0208<<14 | 0x16<<7 | 0x56, - 22289 - 19968: jis0212<<14 | 0x16<<7 | 0x07, - 22290 - 19968: jis0208<<14 | 0x10<<7 | 0x3F, - 22291 - 19968: jis0208<<14 | 0x33<<7 | 0x03, - 22293 - 19968: jis0212<<14 | 0x16<<7 | 0x08, - 22294 - 19968: jis0208<<14 | 0x33<<7 | 0x05, - 22296 - 19968: jis0208<<14 | 0x33<<7 | 0x04, - 22298 - 19968: jis0212<<14 | 0x16<<7 | 0x09, - 22299 - 19968: jis0212<<14 | 0x16<<7 | 0x0A, - 22300 - 19968: jis0208<<14 | 0x33<<7 | 0x07, - 22301 - 19968: jis0212<<14 | 0x16<<7 | 0x0B, - 22303 - 19968: jis0208<<14 | 0x24<<7 | 0x39, - 22304 - 19968: jis0212<<14 | 0x16<<7 | 0x0C, - 22306 - 19968: jis0212<<14 | 0x16<<7 | 0x0D, - 22307 - 19968: jis0212<<14 | 0x16<<7 | 0x0E, - 22308 - 19968: jis0212<<14 | 0x16<<7 | 0x0F, - 22309 - 19968: jis0212<<14 | 0x16<<7 | 0x10, - 22310 - 19968: jis0208<<14 | 0x33<<7 | 0x08, - 22311 - 19968: jis0208<<14 | 0x0F<<7 | 0x14, - 22312 - 19968: jis0208<<14 | 0x19<<7 | 0x3E, - 22313 - 19968: jis0212<<14 | 0x16<<7 | 0x11, - 22314 - 19968: jis0212<<14 | 0x16<<7 | 0x12, - 22316 - 19968: jis0212<<14 | 0x16<<7 | 0x13, - 22317 - 19968: jis0208<<14 | 0x16<<7 | 0x1C, - 22318 - 19968: jis0212<<14 | 0x16<<7 | 0x14, - 22319 - 19968: jis0212<<14 | 0x16<<7 | 0x15, - 22320 - 19968: jis0208<<14 | 0x22<<7 | 0x2E, - 22323 - 19968: jis0212<<14 | 0x16<<7 | 0x16, - 22324 - 19968: jis0212<<14 | 0x16<<7 | 0x17, - 22327 - 19968: jis0208<<14 | 0x33<<7 | 0x09, - 22328 - 19968: jis0208<<14 | 0x33<<7 | 0x0A, - 22331 - 19968: jis0208<<14 | 0x33<<7 | 0x0C, - 22333 - 19968: jis0212<<14 | 0x16<<7 | 0x18, - 22334 - 19968: jis0212<<14 | 0x16<<7 | 0x19, - 22335 - 19968: jis0212<<14 | 0x16<<7 | 0x1A, - 22336 - 19968: jis0208<<14 | 0x33<<7 | 0x0D, - 22338 - 19968: jis0208<<14 | 0x19<<7 | 0x43, - 22341 - 19968: jis0212<<14 | 0x16<<7 | 0x1B, - 22342 - 19968: jis0212<<14 | 0x16<<7 | 0x1C, - 22343 - 19968: jis0208<<14 | 0x15<<7 | 0x30, - 22346 - 19968: jis0208<<14 | 0x2A<<7 | 0x16, - 22348 - 19968: jis0212<<14 | 0x16<<7 | 0x1D, - 22349 - 19968: jis0212<<14 | 0x16<<7 | 0x1E, - 22350 - 19968: jis0208<<14 | 0x33<<7 | 0x0B, - 22351 - 19968: jis0208<<14 | 0x33<<7 | 0x0E, - 22352 - 19968: jis0208<<14 | 0x19<<7 | 0x20, - 22353 - 19968: jis0208<<14 | 0x18<<7 | 0x02, - 22354 - 19968: jis0212<<14 | 0x16<<7 | 0x1F, - 22361 - 19968: jis0208<<14 | 0x58<<7 | 0x39, - 22369 - 19968: jis0208<<14 | 0x33<<7 | 0x12, - 22370 - 19968: jis0212<<14 | 0x16<<7 | 0x20, - 22372 - 19968: jis0208<<14 | 0x19<<7 | 0x04, - 22373 - 19968: jis0208<<14 | 0x58<<7 | 0x3A, - 22374 - 19968: jis0208<<14 | 0x22<<7 | 0x12, - 22375 - 19968: jis0212<<14 | 0x16<<7 | 0x22, - 22376 - 19968: jis0212<<14 | 0x16<<7 | 0x23, - 22377 - 19968: jis0208<<14 | 0x33<<7 | 0x0F, - 22378 - 19968: jis0208<<14 | 0x23<<7 | 0x39, - 22379 - 19968: jis0212<<14 | 0x16<<7 | 0x24, - 22381 - 19968: jis0212<<14 | 0x16<<7 | 0x25, - 22382 - 19968: jis0212<<14 | 0x16<<7 | 0x26, - 22383 - 19968: jis0212<<14 | 0x16<<7 | 0x27, - 22384 - 19968: jis0212<<14 | 0x16<<7 | 0x28, - 22385 - 19968: jis0212<<14 | 0x16<<7 | 0x29, - 22387 - 19968: jis0212<<14 | 0x16<<7 | 0x2A, - 22388 - 19968: jis0212<<14 | 0x16<<7 | 0x2B, - 22389 - 19968: jis0212<<14 | 0x16<<7 | 0x2C, - 22391 - 19968: jis0212<<14 | 0x16<<7 | 0x2D, - 22393 - 19968: jis0212<<14 | 0x16<<7 | 0x2E, - 22394 - 19968: jis0212<<14 | 0x16<<7 | 0x2F, - 22395 - 19968: jis0212<<14 | 0x16<<7 | 0x30, - 22396 - 19968: jis0212<<14 | 0x16<<7 | 0x31, - 22398 - 19968: jis0212<<14 | 0x16<<7 | 0x32, - 22399 - 19968: jis0208<<14 | 0x33<<7 | 0x13, - 22401 - 19968: jis0212<<14 | 0x16<<7 | 0x33, - 22402 - 19968: jis0208<<14 | 0x1E<<7 | 0x41, - 22403 - 19968: jis0212<<14 | 0x16<<7 | 0x34, - 22408 - 19968: jis0208<<14 | 0x33<<7 | 0x11, - 22409 - 19968: jis0208<<14 | 0x33<<7 | 0x14, - 22411 - 19968: jis0208<<14 | 0x16<<7 | 0x1E, - 22412 - 19968: jis0212<<14 | 0x16<<7 | 0x35, - 22419 - 19968: jis0208<<14 | 0x33<<7 | 0x15, - 22420 - 19968: jis0212<<14 | 0x16<<7 | 0x36, - 22421 - 19968: jis0212<<14 | 0x16<<7 | 0x3F, - 22423 - 19968: jis0212<<14 | 0x16<<7 | 0x37, - 22425 - 19968: jis0212<<14 | 0x16<<7 | 0x38, - 22426 - 19968: jis0212<<14 | 0x16<<7 | 0x39, - 22428 - 19968: jis0212<<14 | 0x16<<7 | 0x3A, - 22429 - 19968: jis0212<<14 | 0x16<<7 | 0x3B, - 22430 - 19968: jis0212<<14 | 0x16<<7 | 0x3C, - 22431 - 19968: jis0212<<14 | 0x16<<7 | 0x3D, - 22432 - 19968: jis0208<<14 | 0x33<<7 | 0x16, - 22433 - 19968: jis0212<<14 | 0x16<<7 | 0x3E, - 22434 - 19968: jis0208<<14 | 0x18<<7 | 0x03, - 22435 - 19968: jis0208<<14 | 0x12<<7 | 0x1F, - 22436 - 19968: jis0208<<14 | 0x33<<7 | 0x18, - 22439 - 19968: jis0212<<14 | 0x16<<7 | 0x40, - 22440 - 19968: jis0212<<14 | 0x16<<7 | 0x41, - 22441 - 19968: jis0212<<14 | 0x16<<7 | 0x42, - 22442 - 19968: jis0208<<14 | 0x33<<7 | 0x19, - 22444 - 19968: jis0208<<14 | 0x58<<7 | 0x3B, - 22448 - 19968: jis0208<<14 | 0x33<<7 | 0x1A, - 22451 - 19968: jis0208<<14 | 0x33<<7 | 0x17, - 22456 - 19968: jis0212<<14 | 0x16<<7 | 0x44, - 22461 - 19968: jis0212<<14 | 0x16<<7 | 0x45, - 22464 - 19968: jis0208<<14 | 0x33<<7 | 0x10, - 22467 - 19968: jis0208<<14 | 0x33<<7 | 0x1B, - 22470 - 19968: jis0208<<14 | 0x33<<7 | 0x1C, - 22471 - 19968: jis0208<<14 | 0x58<<7 | 0x3D, - 22472 - 19968: jis0208<<14 | 0x58<<7 | 0x3C, - 22475 - 19968: jis0208<<14 | 0x2A<<7 | 0x43, - 22476 - 19968: jis0212<<14 | 0x16<<7 | 0x48, - 22478 - 19968: jis0208<<14 | 0x1D<<7 | 0x4A, - 22479 - 19968: jis0212<<14 | 0x16<<7 | 0x49, - 22482 - 19968: jis0208<<14 | 0x33<<7 | 0x1E, - 22483 - 19968: jis0208<<14 | 0x33<<7 | 0x1F, - 22484 - 19968: jis0208<<14 | 0x33<<7 | 0x1D, - 22485 - 19968: jis0212<<14 | 0x16<<7 | 0x4A, - 22486 - 19968: jis0208<<14 | 0x33<<7 | 0x21, - 22492 - 19968: jis0208<<14 | 0x26<<7 | 0x17, - 22493 - 19968: jis0212<<14 | 0x16<<7 | 0x4B, - 22494 - 19968: jis0212<<14 | 0x16<<7 | 0x4C, - 22495 - 19968: jis0208<<14 | 0x0F<<7 | 0x47, - 22496 - 19968: jis0208<<14 | 0x28<<7 | 0x35, - 22497 - 19968: jis0212<<14 | 0x16<<7 | 0x5D, - 22499 - 19968: jis0208<<14 | 0x33<<7 | 0x22, - 22500 - 19968: jis0212<<14 | 0x16<<7 | 0x4D, - 22502 - 19968: jis0212<<14 | 0x16<<7 | 0x4E, - 22503 - 19968: jis0212<<14 | 0x16<<7 | 0x4F, - 22505 - 19968: jis0212<<14 | 0x16<<7 | 0x50, - 22509 - 19968: jis0212<<14 | 0x16<<7 | 0x51, - 22512 - 19968: jis0212<<14 | 0x16<<7 | 0x52, - 22516 - 19968: jis0208<<14 | 0x1D<<7 | 0x5C, - 22517 - 19968: jis0212<<14 | 0x16<<7 | 0x53, - 22518 - 19968: jis0212<<14 | 0x16<<7 | 0x54, - 22519 - 19968: jis0208<<14 | 0x1B<<7 | 0x18, - 22520 - 19968: jis0212<<14 | 0x16<<7 | 0x55, - 22521 - 19968: jis0208<<14 | 0x26<<7 | 0x3C, - 22522 - 19968: jis0208<<14 | 0x13<<7 | 0x4F, - 22524 - 19968: jis0208<<14 | 0x19<<7 | 0x4A, - 22525 - 19968: jis0212<<14 | 0x16<<7 | 0x56, - 22526 - 19968: jis0212<<14 | 0x16<<7 | 0x57, - 22527 - 19968: jis0212<<14 | 0x16<<7 | 0x58, - 22528 - 19968: jis0208<<14 | 0x2A<<7 | 0x38, - 22530 - 19968: jis0208<<14 | 0x25<<7 | 0x11, - 22531 - 19968: jis0212<<14 | 0x16<<7 | 0x59, - 22532 - 19968: jis0212<<14 | 0x16<<7 | 0x5A, - 22533 - 19968: jis0208<<14 | 0x16<<7 | 0x57, - 22534 - 19968: jis0208<<14 | 0x21<<7 | 0x2E, - 22536 - 19968: jis0212<<14 | 0x16<<7 | 0x5B, - 22537 - 19968: jis0212<<14 | 0x16<<7 | 0x5C, - 22538 - 19968: jis0208<<14 | 0x33<<7 | 0x20, - 22539 - 19968: jis0208<<14 | 0x33<<7 | 0x23, - 22540 - 19968: jis0212<<14 | 0x17<<7 | 0x00, - 22541 - 19968: jis0212<<14 | 0x17<<7 | 0x01, - 22549 - 19968: jis0208<<14 | 0x21<<7 | 0x23, - 22553 - 19968: jis0208<<14 | 0x33<<7 | 0x24, - 22555 - 19968: jis0212<<14 | 0x17<<7 | 0x02, - 22557 - 19968: jis0208<<14 | 0x33<<7 | 0x25, - 22558 - 19968: jis0212<<14 | 0x17<<7 | 0x03, - 22559 - 19968: jis0212<<14 | 0x17<<7 | 0x04, - 22560 - 19968: jis0212<<14 | 0x17<<7 | 0x05, - 22561 - 19968: jis0208<<14 | 0x33<<7 | 0x27, - 22564 - 19968: jis0208<<14 | 0x23<<7 | 0x48, - 22566 - 19968: jis0212<<14 | 0x17<<7 | 0x06, - 22567 - 19968: jis0212<<14 | 0x17<<7 | 0x07, - 22570 - 19968: jis0208<<14 | 0x13<<7 | 0x0D, - 22573 - 19968: jis0212<<14 | 0x17<<7 | 0x08, - 22575 - 19968: jis0208<<14 | 0x53<<7 | 0x00, - 22576 - 19968: jis0208<<14 | 0x10<<7 | 0x40, - 22577 - 19968: jis0208<<14 | 0x29<<7 | 0x52, - 22578 - 19968: jis0212<<14 | 0x17<<7 | 0x09, - 22580 - 19968: jis0208<<14 | 0x1D<<7 | 0x4B, - 22581 - 19968: jis0208<<14 | 0x24<<7 | 0x27, - 22585 - 19968: jis0212<<14 | 0x17<<7 | 0x0A, - 22586 - 19968: jis0208<<14 | 0x19<<7 | 0x45, - 22589 - 19968: jis0208<<14 | 0x33<<7 | 0x2D, - 22591 - 19968: jis0212<<14 | 0x17<<7 | 0x0B, - 22592 - 19968: jis0208<<14 | 0x29<<7 | 0x1C, - 22593 - 19968: jis0208<<14 | 0x2D<<7 | 0x3C, - 22601 - 19968: jis0212<<14 | 0x17<<7 | 0x0C, - 22602 - 19968: jis0208<<14 | 0x11<<7 | 0x53, - 22603 - 19968: jis0208<<14 | 0x33<<7 | 0x29, - 22604 - 19968: jis0212<<14 | 0x17<<7 | 0x0D, - 22605 - 19968: jis0212<<14 | 0x17<<7 | 0x0E, - 22607 - 19968: jis0212<<14 | 0x17<<7 | 0x0F, - 22608 - 19968: jis0212<<14 | 0x17<<7 | 0x10, - 22609 - 19968: jis0208<<14 | 0x20<<7 | 0x19, - 22610 - 19968: jis0208<<14 | 0x33<<7 | 0x2C, - 22612 - 19968: jis0208<<14 | 0x24<<7 | 0x42, - 22613 - 19968: jis0212<<14 | 0x17<<7 | 0x11, - 22615 - 19968: jis0208<<14 | 0x24<<7 | 0x28, - 22616 - 19968: jis0208<<14 | 0x24<<7 | 0x43, - 22617 - 19968: jis0208<<14 | 0x27<<7 | 0x18, - 22618 - 19968: jis0208<<14 | 0x23<<7 | 0x2C, - 22622 - 19968: jis0208<<14 | 0x19<<7 | 0x28, - 22623 - 19968: jis0212<<14 | 0x17<<7 | 0x12, - 22625 - 19968: jis0212<<14 | 0x17<<7 | 0x13, - 22626 - 19968: jis0208<<14 | 0x33<<7 | 0x28, - 22628 - 19968: jis0212<<14 | 0x17<<7 | 0x14, - 22631 - 19968: jis0212<<14 | 0x17<<7 | 0x15, - 22632 - 19968: jis0212<<14 | 0x17<<7 | 0x16, - 22633 - 19968: jis0208<<14 | 0x10<<7 | 0x55, - 22635 - 19968: jis0208<<14 | 0x24<<7 | 0x15, - 22640 - 19968: jis0208<<14 | 0x33<<7 | 0x2A, - 22642 - 19968: jis0208<<14 | 0x33<<7 | 0x26, - 22645 - 19968: jis0208<<14 | 0x1E<<7 | 0x2F, - 22648 - 19968: jis0212<<14 | 0x17<<7 | 0x17, - 22649 - 19968: jis0208<<14 | 0x33<<7 | 0x2E, - 22652 - 19968: jis0212<<14 | 0x17<<7 | 0x18, - 22654 - 19968: jis0208<<14 | 0x1C<<7 | 0x2D, - 22655 - 19968: jis0212<<14 | 0x17<<7 | 0x19, - 22656 - 19968: jis0212<<14 | 0x17<<7 | 0x1A, - 22657 - 19968: jis0212<<14 | 0x17<<7 | 0x1B, - 22659 - 19968: jis0208<<14 | 0x15<<7 | 0x0C, - 22661 - 19968: jis0208<<14 | 0x33<<7 | 0x2F, - 22663 - 19968: jis0212<<14 | 0x17<<7 | 0x1C, - 22664 - 19968: jis0212<<14 | 0x17<<7 | 0x1D, - 22665 - 19968: jis0212<<14 | 0x17<<7 | 0x1E, - 22666 - 19968: jis0212<<14 | 0x17<<7 | 0x1F, - 22668 - 19968: jis0212<<14 | 0x17<<7 | 0x20, - 22669 - 19968: jis0212<<14 | 0x17<<7 | 0x21, - 22671 - 19968: jis0212<<14 | 0x17<<7 | 0x22, - 22672 - 19968: jis0212<<14 | 0x17<<7 | 0x23, - 22675 - 19968: jis0208<<14 | 0x29<<7 | 0x47, - 22676 - 19968: jis0212<<14 | 0x17<<7 | 0x24, - 22678 - 19968: jis0212<<14 | 0x17<<7 | 0x25, - 22679 - 19968: jis0208<<14 | 0x20<<7 | 0x5C, - 22684 - 19968: jis0208<<14 | 0x23<<7 | 0x25, - 22685 - 19968: jis0212<<14 | 0x17<<7 | 0x26, - 22686 - 19968: jis0208<<14 | 0x58<<7 | 0x40, - 22687 - 19968: jis0208<<14 | 0x33<<7 | 0x31, - 22688 - 19968: jis0212<<14 | 0x17<<7 | 0x27, - 22689 - 19968: jis0212<<14 | 0x17<<7 | 0x28, - 22690 - 19968: jis0212<<14 | 0x17<<7 | 0x29, - 22694 - 19968: jis0212<<14 | 0x17<<7 | 0x2A, - 22696 - 19968: jis0208<<14 | 0x2A<<7 | 0x2E, - 22697 - 19968: jis0212<<14 | 0x17<<7 | 0x2B, - 22699 - 19968: jis0208<<14 | 0x33<<7 | 0x32, - 22702 - 19968: jis0208<<14 | 0x33<<7 | 0x37, - 22705 - 19968: jis0212<<14 | 0x17<<7 | 0x2C, - 22706 - 19968: jis0208<<14 | 0x58<<7 | 0x41, - 22707 - 19968: jis0208<<14 | 0x29<<7 | 0x0E, - 22712 - 19968: jis0208<<14 | 0x33<<7 | 0x36, - 22713 - 19968: jis0208<<14 | 0x33<<7 | 0x30, - 22714 - 19968: jis0208<<14 | 0x33<<7 | 0x33, - 22715 - 19968: jis0208<<14 | 0x33<<7 | 0x35, - 22716 - 19968: jis0212<<14 | 0x17<<7 | 0x2F, - 22718 - 19968: jis0208<<14 | 0x19<<7 | 0x05, - 22721 - 19968: jis0208<<14 | 0x29<<7 | 0x28, - 22722 - 19968: jis0212<<14 | 0x17<<7 | 0x30, - 22724 - 19968: jis0212<<14 | 0x17<<7 | 0x2E, - 22725 - 19968: jis0208<<14 | 0x33<<7 | 0x38, - 22727 - 19968: jis0208<<14 | 0x22<<7 | 0x24, - 22728 - 19968: jis0212<<14 | 0x17<<7 | 0x31, - 22730 - 19968: jis0208<<14 | 0x11<<7 | 0x54, - 22732 - 19968: jis0208<<14 | 0x1D<<7 | 0x4C, - 22733 - 19968: jis0212<<14 | 0x17<<7 | 0x32, - 22734 - 19968: jis0212<<14 | 0x17<<7 | 0x33, - 22736 - 19968: jis0212<<14 | 0x17<<7 | 0x34, - 22737 - 19968: jis0208<<14 | 0x33<<7 | 0x3A, - 22738 - 19968: jis0212<<14 | 0x17<<7 | 0x35, - 22739 - 19968: jis0208<<14 | 0x33<<7 | 0x39, - 22740 - 19968: jis0212<<14 | 0x17<<7 | 0x36, - 22741 - 19968: jis0208<<14 | 0x18<<7 | 0x47, - 22742 - 19968: jis0212<<14 | 0x17<<7 | 0x37, - 22743 - 19968: jis0208<<14 | 0x33<<7 | 0x3B, - 22744 - 19968: jis0208<<14 | 0x33<<7 | 0x3D, - 22745 - 19968: jis0208<<14 | 0x33<<7 | 0x3C, - 22746 - 19968: jis0212<<14 | 0x17<<7 | 0x38, - 22748 - 19968: jis0208<<14 | 0x33<<7 | 0x3F, - 22749 - 19968: jis0212<<14 | 0x17<<7 | 0x39, - 22750 - 19968: jis0208<<14 | 0x33<<7 | 0x34, - 22751 - 19968: jis0208<<14 | 0x33<<7 | 0x41, - 22753 - 19968: jis0212<<14 | 0x17<<7 | 0x3A, - 22754 - 19968: jis0212<<14 | 0x17<<7 | 0x3B, - 22756 - 19968: jis0208<<14 | 0x33<<7 | 0x40, - 22757 - 19968: jis0208<<14 | 0x33<<7 | 0x3E, - 22761 - 19968: jis0212<<14 | 0x17<<7 | 0x3C, - 22763 - 19968: jis0208<<14 | 0x1A<<7 | 0x2D, - 22764 - 19968: jis0208<<14 | 0x1E<<7 | 0x30, - 22766 - 19968: jis0208<<14 | 0x20<<7 | 0x33, - 22767 - 19968: jis0208<<14 | 0x33<<7 | 0x42, - 22768 - 19968: jis0208<<14 | 0x1F<<7 | 0x1B, - 22769 - 19968: jis0208<<14 | 0x0F<<7 | 0x4C, - 22770 - 19968: jis0208<<14 | 0x26<<7 | 0x43, - 22771 - 19968: jis0212<<14 | 0x17<<7 | 0x3D, - 22775 - 19968: jis0208<<14 | 0x23<<7 | 0x3A, - 22777 - 19968: jis0208<<14 | 0x33<<7 | 0x44, - 22778 - 19968: jis0208<<14 | 0x33<<7 | 0x43, - 22779 - 19968: jis0208<<14 | 0x33<<7 | 0x45, - 22780 - 19968: jis0208<<14 | 0x33<<7 | 0x46, - 22781 - 19968: jis0208<<14 | 0x33<<7 | 0x47, - 22786 - 19968: jis0208<<14 | 0x33<<7 | 0x48, - 22789 - 19968: jis0212<<14 | 0x17<<7 | 0x3E, - 22790 - 19968: jis0212<<14 | 0x17<<7 | 0x3F, - 22793 - 19968: jis0208<<14 | 0x29<<7 | 0x30, - 22794 - 19968: jis0208<<14 | 0x33<<7 | 0x49, - 22795 - 19968: jis0208<<14 | 0x58<<7 | 0x42, - 22796 - 19968: jis0212<<14 | 0x17<<7 | 0x41, - 22799 - 19968: jis0208<<14 | 0x11<<7 | 0x25, - 22800 - 19968: jis0208<<14 | 0x33<<7 | 0x4A, - 22802 - 19968: jis0212<<14 | 0x17<<7 | 0x42, - 22803 - 19968: jis0212<<14 | 0x17<<7 | 0x43, - 22804 - 19968: jis0212<<14 | 0x17<<7 | 0x44, - 22805 - 19968: jis0208<<14 | 0x2C<<7 | 0x1B, - 22806 - 19968: jis0208<<14 | 0x12<<7 | 0x0F, - 22808 - 19968: jis0208<<14 | 0x31<<7 | 0x28, - 22809 - 19968: jis0208<<14 | 0x1C<<7 | 0x27, - 22810 - 19968: jis0208<<14 | 0x21<<7 | 0x1E, - 22811 - 19968: jis0208<<14 | 0x33<<7 | 0x4B, - 22812 - 19968: jis0208<<14 | 0x2B<<7 | 0x4A, - 22813 - 19968: jis0212<<14 | 0x17<<7 | 0x46, - 22817 - 19968: jis0212<<14 | 0x17<<7 | 0x47, - 22818 - 19968: jis0208<<14 | 0x2B<<7 | 0x13, - 22819 - 19968: jis0212<<14 | 0x17<<7 | 0x48, - 22820 - 19968: jis0212<<14 | 0x17<<7 | 0x49, - 22821 - 19968: jis0208<<14 | 0x33<<7 | 0x4D, - 22823 - 19968: jis0208<<14 | 0x21<<7 | 0x46, - 22824 - 19968: jis0212<<14 | 0x17<<7 | 0x4A, - 22825 - 19968: jis0208<<14 | 0x24<<7 | 0x16, - 22826 - 19968: jis0208<<14 | 0x21<<7 | 0x1F, - 22827 - 19968: jis0208<<14 | 0x28<<7 | 0x36, - 22828 - 19968: jis0208<<14 | 0x33<<7 | 0x4E, - 22829 - 19968: jis0208<<14 | 0x33<<7 | 0x4F, - 22830 - 19968: jis0208<<14 | 0x10<<7 | 0x5A, - 22831 - 19968: jis0212<<14 | 0x17<<7 | 0x4B, - 22832 - 19968: jis0212<<14 | 0x17<<7 | 0x4C, - 22833 - 19968: jis0208<<14 | 0x1B<<7 | 0x19, - 22834 - 19968: jis0208<<14 | 0x33<<7 | 0x50, - 22835 - 19968: jis0212<<14 | 0x17<<7 | 0x4D, - 22837 - 19968: jis0212<<14 | 0x17<<7 | 0x4E, - 22838 - 19968: jis0212<<14 | 0x17<<7 | 0x4F, - 22839 - 19968: jis0208<<14 | 0x0F<<7 | 0x2F, - 22840 - 19968: jis0208<<14 | 0x33<<7 | 0x51, - 22846 - 19968: jis0208<<14 | 0x33<<7 | 0x52, - 22847 - 19968: jis0212<<14 | 0x17<<7 | 0x50, - 22851 - 19968: jis0212<<14 | 0x17<<7 | 0x51, - 22852 - 19968: jis0208<<14 | 0x10<<7 | 0x41, - 22854 - 19968: jis0212<<14 | 0x17<<7 | 0x52, - 22855 - 19968: jis0208<<14 | 0x13<<7 | 0x50, - 22856 - 19968: jis0208<<14 | 0x25<<7 | 0x3F, - 22857 - 19968: jis0208<<14 | 0x29<<7 | 0x53, - 22862 - 19968: jis0208<<14 | 0x33<<7 | 0x56, - 22863 - 19968: jis0208<<14 | 0x20<<7 | 0x34, - 22864 - 19968: jis0208<<14 | 0x33<<7 | 0x55, - 22865 - 19968: jis0208<<14 | 0x16<<7 | 0x1F, - 22866 - 19968: jis0212<<14 | 0x17<<7 | 0x53, - 22867 - 19968: jis0208<<14 | 0x58<<7 | 0x43, - 22868 - 19968: jis0208<<14 | 0x2A<<7 | 0x3A, - 22869 - 19968: jis0208<<14 | 0x33<<7 | 0x54, - 22871 - 19968: jis0208<<14 | 0x24<<7 | 0x44, - 22872 - 19968: jis0208<<14 | 0x33<<7 | 0x58, - 22873 - 19968: jis0212<<14 | 0x17<<7 | 0x55, - 22874 - 19968: jis0208<<14 | 0x33<<7 | 0x57, - 22875 - 19968: jis0208<<14 | 0x58<<7 | 0x44, - 22877 - 19968: jis0208<<14 | 0x58<<7 | 0x45, - 22878 - 19968: jis0212<<14 | 0x17<<7 | 0x58, - 22879 - 19968: jis0212<<14 | 0x17<<7 | 0x59, - 22880 - 19968: jis0208<<14 | 0x33<<7 | 0x5A, - 22881 - 19968: jis0212<<14 | 0x17<<7 | 0x5A, - 22882 - 19968: jis0208<<14 | 0x33<<7 | 0x59, - 22883 - 19968: jis0208<<14 | 0x58<<7 | 0x46, - 22885 - 19968: jis0208<<14 | 0x10<<7 | 0x5B, - 22887 - 19968: jis0208<<14 | 0x33<<7 | 0x5B, - 22888 - 19968: jis0208<<14 | 0x1D<<7 | 0x08, - 22889 - 19968: jis0208<<14 | 0x33<<7 | 0x5D, - 22890 - 19968: jis0208<<14 | 0x22<<7 | 0x04, - 22891 - 19968: jis0212<<14 | 0x17<<7 | 0x5C, - 22892 - 19968: jis0208<<14 | 0x33<<7 | 0x5C, - 22893 - 19968: jis0212<<14 | 0x17<<7 | 0x5D, - 22894 - 19968: jis0208<<14 | 0x29<<7 | 0x12, - 22895 - 19968: jis0212<<14 | 0x18<<7 | 0x00, - 22898 - 19968: jis0212<<14 | 0x18<<7 | 0x01, - 22899 - 19968: jis0208<<14 | 0x1C<<7 | 0x56, - 22900 - 19968: jis0208<<14 | 0x24<<7 | 0x3A, - 22901 - 19968: jis0212<<14 | 0x18<<7 | 0x02, - 22902 - 19968: jis0212<<14 | 0x18<<7 | 0x03, - 22904 - 19968: jis0208<<14 | 0x34<<7 | 0x00, - 22905 - 19968: jis0212<<14 | 0x18<<7 | 0x04, - 22907 - 19968: jis0212<<14 | 0x18<<7 | 0x05, - 22908 - 19968: jis0212<<14 | 0x18<<7 | 0x06, - 22909 - 19968: jis0208<<14 | 0x18<<7 | 0x04, - 22913 - 19968: jis0208<<14 | 0x34<<7 | 0x01, - 22914 - 19968: jis0208<<14 | 0x26<<7 | 0x00, - 22915 - 19968: jis0208<<14 | 0x27<<7 | 0x3D, - 22916 - 19968: jis0208<<14 | 0x2B<<7 | 0x30, - 22922 - 19968: jis0208<<14 | 0x26<<7 | 0x04, - 22923 - 19968: jis0212<<14 | 0x18<<7 | 0x07, - 22924 - 19968: jis0212<<14 | 0x18<<7 | 0x08, - 22925 - 19968: jis0208<<14 | 0x34<<7 | 0x0A, - 22926 - 19968: jis0212<<14 | 0x18<<7 | 0x09, - 22930 - 19968: jis0212<<14 | 0x18<<7 | 0x0A, - 22931 - 19968: jis0208<<14 | 0x14<<7 | 0x17, - 22933 - 19968: jis0212<<14 | 0x18<<7 | 0x0B, - 22934 - 19968: jis0208<<14 | 0x2C<<7 | 0x24, - 22935 - 19968: jis0212<<14 | 0x18<<7 | 0x0C, - 22937 - 19968: jis0208<<14 | 0x2B<<7 | 0x0E, - 22939 - 19968: jis0208<<14 | 0x35<<7 | 0x0B, - 22941 - 19968: jis0208<<14 | 0x34<<7 | 0x02, - 22943 - 19968: jis0212<<14 | 0x18<<7 | 0x0D, - 22947 - 19968: jis0208<<14 | 0x34<<7 | 0x05, - 22948 - 19968: jis0208<<14 | 0x58<<7 | 0x47, - 22949 - 19968: jis0208<<14 | 0x21<<7 | 0x24, - 22951 - 19968: jis0212<<14 | 0x18<<7 | 0x0F, - 22952 - 19968: jis0208<<14 | 0x2A<<7 | 0x17, - 22956 - 19968: jis0208<<14 | 0x24<<7 | 0x29, - 22957 - 19968: jis0212<<14 | 0x18<<7 | 0x10, - 22958 - 19968: jis0212<<14 | 0x18<<7 | 0x11, - 22959 - 19968: jis0212<<14 | 0x18<<7 | 0x12, - 22960 - 19968: jis0212<<14 | 0x18<<7 | 0x13, - 22962 - 19968: jis0208<<14 | 0x34<<7 | 0x06, - 22963 - 19968: jis0212<<14 | 0x18<<7 | 0x14, - 22967 - 19968: jis0212<<14 | 0x18<<7 | 0x15, - 22969 - 19968: jis0208<<14 | 0x2A<<7 | 0x44, - 22970 - 19968: jis0208<<14 | 0x58<<7 | 0x48, - 22971 - 19968: jis0208<<14 | 0x19<<7 | 0x29, - 22972 - 19968: jis0212<<14 | 0x18<<7 | 0x17, - 22974 - 19968: jis0208<<14 | 0x1D<<7 | 0x09, - 22977 - 19968: jis0212<<14 | 0x18<<7 | 0x18, - 22979 - 19968: jis0212<<14 | 0x18<<7 | 0x19, - 22980 - 19968: jis0212<<14 | 0x18<<7 | 0x1A, - 22982 - 19968: jis0208<<14 | 0x34<<7 | 0x07, - 22984 - 19968: jis0212<<14 | 0x18<<7 | 0x1B, - 22985 - 19968: jis0208<<14 | 0x1A<<7 | 0x2F, - 22986 - 19968: jis0212<<14 | 0x18<<7 | 0x1C, - 22987 - 19968: jis0208<<14 | 0x1A<<7 | 0x2E, - 22989 - 19968: jis0212<<14 | 0x18<<7 | 0x1D, - 22992 - 19968: jis0208<<14 | 0x0F<<7 | 0x18, - 22993 - 19968: jis0208<<14 | 0x17<<7 | 0x27, - 22994 - 19968: jis0212<<14 | 0x18<<7 | 0x1E, - 22995 - 19968: jis0208<<14 | 0x1F<<7 | 0x0A, - 22996 - 19968: jis0208<<14 | 0x0F<<7 | 0x30, - 23001 - 19968: jis0208<<14 | 0x34<<7 | 0x0B, - 23002 - 19968: jis0208<<14 | 0x34<<7 | 0x0C, - 23004 - 19968: jis0208<<14 | 0x34<<7 | 0x09, - 23005 - 19968: jis0212<<14 | 0x18<<7 | 0x1F, - 23006 - 19968: jis0212<<14 | 0x18<<7 | 0x20, - 23007 - 19968: jis0212<<14 | 0x18<<7 | 0x21, - 23011 - 19968: jis0212<<14 | 0x18<<7 | 0x22, - 23012 - 19968: jis0212<<14 | 0x18<<7 | 0x23, - 23013 - 19968: jis0208<<14 | 0x10<<7 | 0x17, - 23014 - 19968: jis0208<<14 | 0x13<<7 | 0x0E, - 23015 - 19968: jis0212<<14 | 0x18<<7 | 0x24, - 23016 - 19968: jis0208<<14 | 0x34<<7 | 0x08, - 23018 - 19968: jis0208<<14 | 0x2B<<7 | 0x24, - 23019 - 19968: jis0208<<14 | 0x28<<7 | 0x10, - 23022 - 19968: jis0212<<14 | 0x18<<7 | 0x25, - 23023 - 19968: jis0212<<14 | 0x18<<7 | 0x26, - 23025 - 19968: jis0212<<14 | 0x18<<7 | 0x27, - 23026 - 19968: jis0212<<14 | 0x18<<7 | 0x28, - 23028 - 19968: jis0212<<14 | 0x18<<7 | 0x29, - 23030 - 19968: jis0208<<14 | 0x0F<<7 | 0x07, - 23031 - 19968: jis0212<<14 | 0x18<<7 | 0x2A, - 23035 - 19968: jis0208<<14 | 0x0F<<7 | 0x58, - 23039 - 19968: jis0208<<14 | 0x1A<<7 | 0x30, - 23040 - 19968: jis0212<<14 | 0x18<<7 | 0x2B, - 23041 - 19968: jis0208<<14 | 0x0F<<7 | 0x31, - 23043 - 19968: jis0208<<14 | 0x0F<<7 | 0x02, - 23044 - 19968: jis0212<<14 | 0x18<<7 | 0x2C, - 23049 - 19968: jis0208<<14 | 0x34<<7 | 0x11, - 23052 - 19968: jis0212<<14 | 0x18<<7 | 0x2D, - 23053 - 19968: jis0212<<14 | 0x18<<7 | 0x2E, - 23054 - 19968: jis0212<<14 | 0x18<<7 | 0x2F, - 23057 - 19968: jis0208<<14 | 0x34<<7 | 0x0F, - 23058 - 19968: jis0212<<14 | 0x18<<7 | 0x30, - 23059 - 19968: jis0212<<14 | 0x18<<7 | 0x31, - 23064 - 19968: jis0208<<14 | 0x2B<<7 | 0x1B, - 23066 - 19968: jis0208<<14 | 0x34<<7 | 0x12, - 23068 - 19968: jis0208<<14 | 0x34<<7 | 0x10, - 23070 - 19968: jis0212<<14 | 0x18<<7 | 0x32, - 23071 - 19968: jis0208<<14 | 0x34<<7 | 0x0E, - 23072 - 19968: jis0208<<14 | 0x1E<<7 | 0x10, - 23075 - 19968: jis0212<<14 | 0x18<<7 | 0x33, - 23076 - 19968: jis0212<<14 | 0x18<<7 | 0x34, - 23077 - 19968: jis0208<<14 | 0x34<<7 | 0x0D, - 23079 - 19968: jis0212<<14 | 0x18<<7 | 0x35, - 23080 - 19968: jis0212<<14 | 0x18<<7 | 0x36, - 23081 - 19968: jis0208<<14 | 0x29<<7 | 0x39, - 23082 - 19968: jis0212<<14 | 0x18<<7 | 0x37, - 23085 - 19968: jis0212<<14 | 0x18<<7 | 0x38, - 23087 - 19968: jis0208<<14 | 0x17<<7 | 0x43, - 23088 - 19968: jis0212<<14 | 0x18<<7 | 0x39, - 23093 - 19968: jis0208<<14 | 0x34<<7 | 0x16, - 23094 - 19968: jis0208<<14 | 0x34<<7 | 0x17, - 23100 - 19968: jis0208<<14 | 0x1D<<7 | 0x0A, - 23104 - 19968: jis0208<<14 | 0x34<<7 | 0x13, - 23105 - 19968: jis0208<<14 | 0x2E<<7 | 0x0B, - 23108 - 19968: jis0212<<14 | 0x18<<7 | 0x3A, - 23109 - 19968: jis0212<<14 | 0x18<<7 | 0x3B, - 23110 - 19968: jis0208<<14 | 0x26<<7 | 0x2B, - 23111 - 19968: jis0212<<14 | 0x18<<7 | 0x3C, - 23112 - 19968: jis0212<<14 | 0x18<<7 | 0x3D, - 23113 - 19968: jis0208<<14 | 0x34<<7 | 0x15, - 23116 - 19968: jis0212<<14 | 0x18<<7 | 0x3E, - 23120 - 19968: jis0212<<14 | 0x18<<7 | 0x3F, - 23125 - 19968: jis0212<<14 | 0x18<<7 | 0x40, - 23130 - 19968: jis0208<<14 | 0x19<<7 | 0x06, - 23134 - 19968: jis0212<<14 | 0x18<<7 | 0x41, - 23138 - 19968: jis0208<<14 | 0x34<<7 | 0x18, - 23139 - 19968: jis0212<<14 | 0x18<<7 | 0x42, - 23141 - 19968: jis0212<<14 | 0x18<<7 | 0x43, - 23142 - 19968: jis0208<<14 | 0x28<<7 | 0x37, - 23143 - 19968: jis0212<<14 | 0x18<<7 | 0x44, - 23146 - 19968: jis0208<<14 | 0x34<<7 | 0x19, - 23148 - 19968: jis0208<<14 | 0x34<<7 | 0x14, - 23149 - 19968: jis0212<<14 | 0x18<<7 | 0x45, - 23159 - 19968: jis0212<<14 | 0x18<<7 | 0x46, - 23162 - 19968: jis0212<<14 | 0x18<<7 | 0x47, - 23163 - 19968: jis0212<<14 | 0x18<<7 | 0x48, - 23166 - 19968: jis0212<<14 | 0x18<<7 | 0x49, - 23167 - 19968: jis0208<<14 | 0x2B<<7 | 0x1A, - 23179 - 19968: jis0212<<14 | 0x18<<7 | 0x4A, - 23184 - 19968: jis0212<<14 | 0x18<<7 | 0x4B, - 23186 - 19968: jis0208<<14 | 0x26<<7 | 0x3D, - 23187 - 19968: jis0212<<14 | 0x18<<7 | 0x4C, - 23190 - 19968: jis0212<<14 | 0x18<<7 | 0x4D, - 23193 - 19968: jis0212<<14 | 0x18<<7 | 0x4E, - 23194 - 19968: jis0208<<14 | 0x34<<7 | 0x1A, - 23195 - 19968: jis0208<<14 | 0x28<<7 | 0x11, - 23196 - 19968: jis0212<<14 | 0x18<<7 | 0x4F, - 23198 - 19968: jis0212<<14 | 0x18<<7 | 0x50, - 23199 - 19968: jis0212<<14 | 0x18<<7 | 0x51, - 23200 - 19968: jis0212<<14 | 0x18<<7 | 0x52, - 23202 - 19968: jis0212<<14 | 0x18<<7 | 0x53, - 23207 - 19968: jis0212<<14 | 0x18<<7 | 0x54, - 23212 - 19968: jis0212<<14 | 0x18<<7 | 0x55, - 23217 - 19968: jis0212<<14 | 0x18<<7 | 0x56, - 23218 - 19968: jis0212<<14 | 0x18<<7 | 0x57, - 23219 - 19968: jis0212<<14 | 0x18<<7 | 0x58, - 23221 - 19968: jis0212<<14 | 0x18<<7 | 0x59, - 23224 - 19968: jis0212<<14 | 0x18<<7 | 0x5A, - 23226 - 19968: jis0212<<14 | 0x18<<7 | 0x5B, - 23227 - 19968: jis0212<<14 | 0x18<<7 | 0x5C, - 23228 - 19968: jis0208<<14 | 0x34<<7 | 0x1B, - 23229 - 19968: jis0208<<14 | 0x34<<7 | 0x1F, - 23230 - 19968: jis0208<<14 | 0x34<<7 | 0x1C, - 23231 - 19968: jis0212<<14 | 0x18<<7 | 0x5D, - 23233 - 19968: jis0208<<14 | 0x11<<7 | 0x26, - 23234 - 19968: jis0208<<14 | 0x34<<7 | 0x1E, - 23236 - 19968: jis0212<<14 | 0x19<<7 | 0x00, - 23238 - 19968: jis0212<<14 | 0x19<<7 | 0x01, - 23240 - 19968: jis0212<<14 | 0x19<<7 | 0x02, - 23241 - 19968: jis0208<<14 | 0x1B<<7 | 0x1A, - 23243 - 19968: jis0208<<14 | 0x34<<7 | 0x1D, - 23244 - 19968: jis0208<<14 | 0x16<<7 | 0x58, - 23247 - 19968: jis0212<<14 | 0x19<<7 | 0x03, - 23248 - 19968: jis0208<<14 | 0x34<<7 | 0x2B, - 23254 - 19968: jis0208<<14 | 0x34<<7 | 0x24, - 23255 - 19968: jis0208<<14 | 0x34<<7 | 0x21, - 23258 - 19968: jis0212<<14 | 0x19<<7 | 0x04, - 23260 - 19968: jis0212<<14 | 0x19<<7 | 0x05, - 23264 - 19968: jis0212<<14 | 0x19<<7 | 0x06, - 23265 - 19968: jis0208<<14 | 0x22<<7 | 0x43, - 23267 - 19968: jis0208<<14 | 0x34<<7 | 0x20, - 23269 - 19968: jis0212<<14 | 0x19<<7 | 0x07, - 23270 - 19968: jis0208<<14 | 0x34<<7 | 0x22, - 23273 - 19968: jis0208<<14 | 0x34<<7 | 0x23, - 23274 - 19968: jis0212<<14 | 0x19<<7 | 0x08, - 23278 - 19968: jis0212<<14 | 0x19<<7 | 0x09, - 23285 - 19968: jis0212<<14 | 0x19<<7 | 0x0A, - 23286 - 19968: jis0212<<14 | 0x19<<7 | 0x0B, - 23290 - 19968: jis0208<<14 | 0x34<<7 | 0x25, - 23291 - 19968: jis0208<<14 | 0x34<<7 | 0x26, - 23293 - 19968: jis0212<<14 | 0x19<<7 | 0x0C, - 23296 - 19968: jis0212<<14 | 0x19<<7 | 0x0D, - 23297 - 19968: jis0212<<14 | 0x19<<7 | 0x0E, - 23304 - 19968: jis0212<<14 | 0x19<<7 | 0x0F, - 23305 - 19968: jis0208<<14 | 0x13<<7 | 0x51, - 23307 - 19968: jis0208<<14 | 0x34<<7 | 0x28, - 23308 - 19968: jis0208<<14 | 0x34<<7 | 0x27, - 23318 - 19968: jis0208<<14 | 0x34<<7 | 0x29, - 23319 - 19968: jis0212<<14 | 0x19<<7 | 0x10, - 23321 - 19968: jis0212<<14 | 0x19<<7 | 0x12, - 23323 - 19968: jis0212<<14 | 0x19<<7 | 0x13, - 23325 - 19968: jis0212<<14 | 0x19<<7 | 0x14, - 23329 - 19968: jis0212<<14 | 0x19<<7 | 0x15, - 23330 - 19968: jis0208<<14 | 0x1D<<7 | 0x4D, - 23333 - 19968: jis0212<<14 | 0x19<<7 | 0x16, - 23338 - 19968: jis0208<<14 | 0x34<<7 | 0x2C, - 23340 - 19968: jis0208<<14 | 0x23<<7 | 0x3B, - 23341 - 19968: jis0212<<14 | 0x19<<7 | 0x17, - 23344 - 19968: jis0208<<14 | 0x10<<7 | 0x24, - 23346 - 19968: jis0208<<14 | 0x34<<7 | 0x2A, - 23348 - 19968: jis0212<<14 | 0x19<<7 | 0x11, - 23350 - 19968: jis0208<<14 | 0x34<<7 | 0x2D, - 23352 - 19968: jis0212<<14 | 0x19<<7 | 0x18, - 23358 - 19968: jis0208<<14 | 0x34<<7 | 0x2E, - 23360 - 19968: jis0208<<14 | 0x34<<7 | 0x31, - 23361 - 19968: jis0212<<14 | 0x19<<7 | 0x19, - 23363 - 19968: jis0208<<14 | 0x34<<7 | 0x2F, - 23365 - 19968: jis0208<<14 | 0x34<<7 | 0x30, - 23371 - 19968: jis0212<<14 | 0x19<<7 | 0x1A, - 23372 - 19968: jis0212<<14 | 0x19<<7 | 0x1B, - 23376 - 19968: jis0208<<14 | 0x1A<<7 | 0x31, - 23377 - 19968: jis0208<<14 | 0x34<<7 | 0x32, - 23378 - 19968: jis0212<<14 | 0x19<<7 | 0x1C, - 23380 - 19968: jis0208<<14 | 0x18<<7 | 0x05, - 23381 - 19968: jis0208<<14 | 0x34<<7 | 0x33, - 23382 - 19968: jis0208<<14 | 0x58<<7 | 0x49, - 23383 - 19968: jis0208<<14 | 0x1A<<7 | 0x59, - 23384 - 19968: jis0208<<14 | 0x21<<7 | 0x17, - 23386 - 19968: jis0208<<14 | 0x34<<7 | 0x34, - 23387 - 19968: jis0208<<14 | 0x34<<7 | 0x35, - 23388 - 19968: jis0208<<14 | 0x1A<<7 | 0x39, - 23389 - 19968: jis0208<<14 | 0x18<<7 | 0x06, - 23390 - 19968: jis0212<<14 | 0x19<<7 | 0x1E, - 23391 - 19968: jis0208<<14 | 0x2B<<7 | 0x31, - 23395 - 19968: jis0208<<14 | 0x14<<7 | 0x07, - 23396 - 19968: jis0208<<14 | 0x17<<7 | 0x28, - 23397 - 19968: jis0208<<14 | 0x34<<7 | 0x36, - 23398 - 19968: jis0208<<14 | 0x12<<7 | 0x37, - 23400 - 19968: jis0212<<14 | 0x19<<7 | 0x1F, - 23401 - 19968: jis0208<<14 | 0x34<<7 | 0x37, - 23403 - 19968: jis0208<<14 | 0x21<<7 | 0x18, - 23406 - 19968: jis0212<<14 | 0x19<<7 | 0x20, - 23407 - 19968: jis0212<<14 | 0x19<<7 | 0x21, - 23408 - 19968: jis0208<<14 | 0x34<<7 | 0x38, - 23409 - 19968: jis0208<<14 | 0x35<<7 | 0x02, - 23411 - 19968: jis0208<<14 | 0x34<<7 | 0x39, - 23413 - 19968: jis0208<<14 | 0x34<<7 | 0x3A, - 23416 - 19968: jis0208<<14 | 0x34<<7 | 0x3B, - 23418 - 19968: jis0208<<14 | 0x34<<7 | 0x3D, - 23420 - 19968: jis0212<<14 | 0x19<<7 | 0x22, - 23421 - 19968: jis0212<<14 | 0x19<<7 | 0x23, - 23422 - 19968: jis0212<<14 | 0x19<<7 | 0x24, - 23423 - 19968: jis0212<<14 | 0x19<<7 | 0x25, - 23424 - 19968: jis0208<<14 | 0x34<<7 | 0x3E, - 23425 - 19968: jis0212<<14 | 0x19<<7 | 0x26, - 23427 - 19968: jis0208<<14 | 0x34<<7 | 0x3F, - 23428 - 19968: jis0212<<14 | 0x19<<7 | 0x27, - 23429 - 19968: jis0208<<14 | 0x21<<7 | 0x4F, - 23430 - 19968: jis0212<<14 | 0x19<<7 | 0x28, - 23431 - 19968: jis0208<<14 | 0x10<<7 | 0x06, - 23432 - 19968: jis0208<<14 | 0x1B<<7 | 0x48, - 23433 - 19968: jis0208<<14 | 0x0F<<7 | 0x21, - 23434 - 19968: jis0212<<14 | 0x19<<7 | 0x29, - 23435 - 19968: jis0208<<14 | 0x20<<7 | 0x36, - 23436 - 19968: jis0208<<14 | 0x13<<7 | 0x0F, - 23437 - 19968: jis0208<<14 | 0x1B<<7 | 0x14, - 23438 - 19968: jis0212<<14 | 0x19<<7 | 0x2A, - 23439 - 19968: jis0208<<14 | 0x18<<7 | 0x07, - 23440 - 19968: jis0212<<14 | 0x19<<7 | 0x2B, - 23441 - 19968: jis0212<<14 | 0x19<<7 | 0x2C, - 23443 - 19968: jis0212<<14 | 0x19<<7 | 0x2D, - 23444 - 19968: jis0212<<14 | 0x19<<7 | 0x2E, - 23445 - 19968: jis0208<<14 | 0x24<<7 | 0x45, - 23446 - 19968: jis0212<<14 | 0x19<<7 | 0x2F, - 23447 - 19968: jis0208<<14 | 0x1C<<7 | 0x00, - 23448 - 19968: jis0208<<14 | 0x13<<7 | 0x10, - 23449 - 19968: jis0208<<14 | 0x22<<7 | 0x47, - 23450 - 19968: jis0208<<14 | 0x23<<7 | 0x49, - 23451 - 19968: jis0208<<14 | 0x0F<<7 | 0x17, - 23452 - 19968: jis0208<<14 | 0x14<<7 | 0x18, - 23453 - 19968: jis0208<<14 | 0x29<<7 | 0x54, - 23455 - 19968: jis0208<<14 | 0x1B<<7 | 0x21, - 23458 - 19968: jis0208<<14 | 0x14<<7 | 0x31, - 23459 - 19968: jis0208<<14 | 0x1F<<7 | 0x4A, - 23460 - 19968: jis0208<<14 | 0x1B<<7 | 0x1B, - 23461 - 19968: jis0208<<14 | 0x2C<<7 | 0x07, - 23462 - 19968: jis0208<<14 | 0x34<<7 | 0x40, - 23464 - 19968: jis0212<<14 | 0x19<<7 | 0x30, - 23465 - 19968: jis0212<<14 | 0x19<<7 | 0x31, - 23468 - 19968: jis0212<<14 | 0x19<<7 | 0x32, - 23469 - 19968: jis0212<<14 | 0x19<<7 | 0x33, - 23470 - 19968: jis0208<<14 | 0x14<<7 | 0x3B, - 23471 - 19968: jis0212<<14 | 0x19<<7 | 0x34, - 23472 - 19968: jis0208<<14 | 0x19<<7 | 0x2A, - 23473 - 19968: jis0212<<14 | 0x19<<7 | 0x35, - 23474 - 19968: jis0212<<14 | 0x19<<7 | 0x36, - 23475 - 19968: jis0208<<14 | 0x12<<7 | 0x11, - 23476 - 19968: jis0208<<14 | 0x10<<7 | 0x42, - 23477 - 19968: jis0208<<14 | 0x1D<<7 | 0x0B, - 23478 - 19968: jis0208<<14 | 0x11<<7 | 0x27, - 23479 - 19968: jis0212<<14 | 0x19<<7 | 0x37, - 23480 - 19968: jis0208<<14 | 0x34<<7 | 0x41, - 23481 - 19968: jis0208<<14 | 0x2C<<7 | 0x25, - 23482 - 19968: jis0212<<14 | 0x19<<7 | 0x38, - 23484 - 19968: jis0212<<14 | 0x19<<7 | 0x39, - 23487 - 19968: jis0208<<14 | 0x1C<<7 | 0x28, - 23488 - 19968: jis0208<<14 | 0x58<<7 | 0x4A, - 23489 - 19968: jis0212<<14 | 0x19<<7 | 0x3B, - 23490 - 19968: jis0208<<14 | 0x1B<<7 | 0x43, - 23491 - 19968: jis0208<<14 | 0x34<<7 | 0x42, - 23492 - 19968: jis0208<<14 | 0x13<<7 | 0x52, - 23493 - 19968: jis0208<<14 | 0x25<<7 | 0x31, - 23494 - 19968: jis0208<<14 | 0x2B<<7 | 0x08, - 23495 - 19968: jis0208<<14 | 0x34<<7 | 0x43, - 23497 - 19968: jis0208<<14 | 0x34<<7 | 0x44, - 23500 - 19968: jis0208<<14 | 0x28<<7 | 0x38, - 23501 - 19968: jis0212<<14 | 0x19<<7 | 0x3C, - 23503 - 19968: jis0212<<14 | 0x19<<7 | 0x3D, - 23504 - 19968: jis0208<<14 | 0x34<<7 | 0x46, - 23506 - 19968: jis0208<<14 | 0x13<<7 | 0x07, - 23507 - 19968: jis0208<<14 | 0x15<<7 | 0x56, - 23508 - 19968: jis0208<<14 | 0x34<<7 | 0x45, - 23510 - 19968: jis0212<<14 | 0x19<<7 | 0x3E, - 23511 - 19968: jis0212<<14 | 0x19<<7 | 0x3F, - 23512 - 19968: jis0208<<14 | 0x58<<7 | 0x4C, - 23513 - 19968: jis0212<<14 | 0x19<<7 | 0x41, - 23514 - 19968: jis0212<<14 | 0x19<<7 | 0x42, - 23515 - 19968: jis0208<<14 | 0x13<<7 | 0x11, - 23517 - 19968: jis0208<<14 | 0x1E<<7 | 0x11, - 23518 - 19968: jis0208<<14 | 0x34<<7 | 0x4A, - 23519 - 19968: jis0208<<14 | 0x1A<<7 | 0x00, - 23520 - 19968: jis0212<<14 | 0x19<<7 | 0x43, - 23521 - 19968: jis0208<<14 | 0x11<<7 | 0x28, - 23522 - 19968: jis0208<<14 | 0x34<<7 | 0x49, - 23524 - 19968: jis0208<<14 | 0x34<<7 | 0x47, - 23525 - 19968: jis0208<<14 | 0x34<<7 | 0x4B, - 23526 - 19968: jis0208<<14 | 0x34<<7 | 0x48, - 23527 - 19968: jis0208<<14 | 0x26<<7 | 0x0A, - 23528 - 19968: jis0208<<14 | 0x3B<<7 | 0x2C, - 23529 - 19968: jis0208<<14 | 0x1E<<7 | 0x12, - 23531 - 19968: jis0208<<14 | 0x34<<7 | 0x4C, - 23532 - 19968: jis0208<<14 | 0x58<<7 | 0x4D, - 23534 - 19968: jis0208<<14 | 0x2D<<7 | 0x1F, - 23535 - 19968: jis0212<<14 | 0x19<<7 | 0x44, - 23536 - 19968: jis0208<<14 | 0x34<<7 | 0x4D, - 23537 - 19968: jis0212<<14 | 0x19<<7 | 0x45, - 23539 - 19968: jis0208<<14 | 0x34<<7 | 0x4F, - 23540 - 19968: jis0212<<14 | 0x19<<7 | 0x46, - 23541 - 19968: jis0208<<14 | 0x22<<7 | 0x5D, - 23542 - 19968: jis0208<<14 | 0x34<<7 | 0x4E, - 23544 - 19968: jis0208<<14 | 0x1F<<7 | 0x02, - 23546 - 19968: jis0208<<14 | 0x1A<<7 | 0x5A, - 23549 - 19968: jis0212<<14 | 0x19<<7 | 0x47, - 23550 - 19968: jis0208<<14 | 0x21<<7 | 0x2F, - 23551 - 19968: jis0208<<14 | 0x1B<<7 | 0x56, - 23553 - 19968: jis0208<<14 | 0x28<<7 | 0x54, - 23554 - 19968: jis0208<<14 | 0x1F<<7 | 0x4B, - 23556 - 19968: jis0208<<14 | 0x1B<<7 | 0x2C, - 23557 - 19968: jis0208<<14 | 0x34<<7 | 0x50, - 23558 - 19968: jis0208<<14 | 0x1D<<7 | 0x0C, - 23559 - 19968: jis0208<<14 | 0x34<<7 | 0x51, - 23560 - 19968: jis0208<<14 | 0x34<<7 | 0x52, - 23561 - 19968: jis0208<<14 | 0x0F<<7 | 0x32, - 23562 - 19968: jis0208<<14 | 0x21<<7 | 0x19, - 23563 - 19968: jis0208<<14 | 0x1E<<7 | 0x31, - 23564 - 19968: jis0212<<14 | 0x19<<7 | 0x48, - 23565 - 19968: jis0208<<14 | 0x34<<7 | 0x53, - 23566 - 19968: jis0208<<14 | 0x25<<7 | 0x12, - 23567 - 19968: jis0208<<14 | 0x1D<<7 | 0x0D, - 23569 - 19968: jis0208<<14 | 0x1D<<7 | 0x0E, - 23571 - 19968: jis0208<<14 | 0x34<<7 | 0x54, - 23574 - 19968: jis0208<<14 | 0x1F<<7 | 0x4C, - 23575 - 19968: jis0212<<14 | 0x19<<7 | 0x49, - 23578 - 19968: jis0208<<14 | 0x1D<<7 | 0x0F, - 23582 - 19968: jis0208<<14 | 0x58<<7 | 0x4E, - 23583 - 19968: jis0212<<14 | 0x19<<7 | 0x4B, - 23584 - 19968: jis0208<<14 | 0x34<<7 | 0x55, - 23586 - 19968: jis0208<<14 | 0x34<<7 | 0x56, - 23587 - 19968: jis0212<<14 | 0x19<<7 | 0x4C, - 23588 - 19968: jis0208<<14 | 0x2B<<7 | 0x3F, - 23590 - 19968: jis0212<<14 | 0x19<<7 | 0x4D, - 23592 - 19968: jis0208<<14 | 0x34<<7 | 0x57, - 23593 - 19968: jis0212<<14 | 0x19<<7 | 0x4E, - 23595 - 19968: jis0212<<14 | 0x19<<7 | 0x4F, - 23596 - 19968: jis0212<<14 | 0x19<<7 | 0x50, - 23597 - 19968: jis0208<<14 | 0x15<<7 | 0x25, - 23598 - 19968: jis0212<<14 | 0x19<<7 | 0x51, - 23600 - 19968: jis0212<<14 | 0x19<<7 | 0x52, - 23601 - 19968: jis0208<<14 | 0x1C<<7 | 0x01, - 23602 - 19968: jis0212<<14 | 0x19<<7 | 0x53, - 23605 - 19968: jis0212<<14 | 0x19<<7 | 0x54, - 23606 - 19968: jis0212<<14 | 0x19<<7 | 0x55, - 23608 - 19968: jis0208<<14 | 0x34<<7 | 0x58, - 23609 - 19968: jis0208<<14 | 0x34<<7 | 0x59, - 23610 - 19968: jis0208<<14 | 0x1B<<7 | 0x3B, - 23611 - 19968: jis0208<<14 | 0x1E<<7 | 0x0B, - 23612 - 19968: jis0208<<14 | 0x25<<7 | 0x53, - 23613 - 19968: jis0208<<14 | 0x1E<<7 | 0x33, - 23614 - 19968: jis0208<<14 | 0x27<<7 | 0x57, - 23615 - 19968: jis0208<<14 | 0x26<<7 | 0x01, - 23616 - 19968: jis0208<<14 | 0x15<<7 | 0x28, - 23617 - 19968: jis0208<<14 | 0x34<<7 | 0x5A, - 23621 - 19968: jis0208<<14 | 0x14<<7 | 0x4E, - 23622 - 19968: jis0208<<14 | 0x34<<7 | 0x5B, - 23624 - 19968: jis0208<<14 | 0x15<<7 | 0x5D, - 23626 - 19968: jis0208<<14 | 0x25<<7 | 0x2E, - 23627 - 19968: jis0208<<14 | 0x11<<7 | 0x0F, - 23629 - 19968: jis0208<<14 | 0x1A<<7 | 0x32, - 23630 - 19968: jis0208<<14 | 0x34<<7 | 0x5C, - 23631 - 19968: jis0208<<14 | 0x35<<7 | 0x01, - 23632 - 19968: jis0208<<14 | 0x35<<7 | 0x00, - 23633 - 19968: jis0208<<14 | 0x15<<7 | 0x5C, - 23635 - 19968: jis0208<<14 | 0x34<<7 | 0x5D, - 23637 - 19968: jis0208<<14 | 0x24<<7 | 0x17, - 23641 - 19968: jis0212<<14 | 0x19<<7 | 0x56, - 23642 - 19968: jis0212<<14 | 0x19<<7 | 0x57, - 23644 - 19968: jis0212<<14 | 0x19<<7 | 0x58, - 23646 - 19968: jis0208<<14 | 0x21<<7 | 0x0F, - 23648 - 19968: jis0208<<14 | 0x24<<7 | 0x2A, - 23649 - 19968: jis0208<<14 | 0x1B<<7 | 0x27, - 23650 - 19968: jis0212<<14 | 0x19<<7 | 0x59, - 23651 - 19968: jis0212<<14 | 0x19<<7 | 0x5A, - 23652 - 19968: jis0208<<14 | 0x20<<7 | 0x37, - 23653 - 19968: jis0208<<14 | 0x2C<<7 | 0x59, - 23655 - 19968: jis0212<<14 | 0x19<<7 | 0x5B, - 23656 - 19968: jis0212<<14 | 0x19<<7 | 0x5C, - 23657 - 19968: jis0212<<14 | 0x19<<7 | 0x5D, - 23660 - 19968: jis0208<<14 | 0x35<<7 | 0x03, - 23661 - 19968: jis0212<<14 | 0x1A<<7 | 0x00, - 23662 - 19968: jis0208<<14 | 0x35<<7 | 0x04, - 23663 - 19968: jis0208<<14 | 0x25<<7 | 0x35, - 23664 - 19968: jis0212<<14 | 0x1A<<7 | 0x01, - 23665 - 19968: jis0208<<14 | 0x1A<<7 | 0x12, - 23668 - 19968: jis0212<<14 | 0x1A<<7 | 0x02, - 23669 - 19968: jis0212<<14 | 0x1A<<7 | 0x03, - 23670 - 19968: jis0208<<14 | 0x35<<7 | 0x06, - 23673 - 19968: jis0208<<14 | 0x35<<7 | 0x07, - 23674 - 19968: jis0212<<14 | 0x1A<<7 | 0x04, - 23675 - 19968: jis0212<<14 | 0x1A<<7 | 0x05, - 23676 - 19968: jis0212<<14 | 0x1A<<7 | 0x06, - 23677 - 19968: jis0212<<14 | 0x1A<<7 | 0x07, - 23687 - 19968: jis0212<<14 | 0x1A<<7 | 0x08, - 23688 - 19968: jis0212<<14 | 0x1A<<7 | 0x09, - 23690 - 19968: jis0212<<14 | 0x1A<<7 | 0x0A, - 23692 - 19968: jis0208<<14 | 0x35<<7 | 0x08, - 23695 - 19968: jis0212<<14 | 0x1A<<7 | 0x0B, - 23696 - 19968: jis0208<<14 | 0x13<<7 | 0x53, - 23697 - 19968: jis0208<<14 | 0x35<<7 | 0x09, - 23698 - 19968: jis0212<<14 | 0x1A<<7 | 0x0C, - 23700 - 19968: jis0208<<14 | 0x35<<7 | 0x0A, - 23709 - 19968: jis0212<<14 | 0x1A<<7 | 0x0D, - 23711 - 19968: jis0212<<14 | 0x1A<<7 | 0x0E, - 23712 - 19968: jis0212<<14 | 0x1A<<7 | 0x0F, - 23713 - 19968: jis0208<<14 | 0x11<<7 | 0x0B, - 23714 - 19968: jis0212<<14 | 0x1A<<7 | 0x10, - 23715 - 19968: jis0212<<14 | 0x1A<<7 | 0x11, - 23718 - 19968: jis0208<<14 | 0x58<<7 | 0x4F, - 23720 - 19968: jis0208<<14 | 0x20<<7 | 0x1A, - 23721 - 19968: jis0208<<14 | 0x13<<7 | 0x43, - 23722 - 19968: jis0212<<14 | 0x1A<<7 | 0x13, - 23723 - 19968: jis0208<<14 | 0x35<<7 | 0x0C, - 23724 - 19968: jis0208<<14 | 0x2B<<7 | 0x07, - 23729 - 19968: jis0208<<14 | 0x21<<7 | 0x31, - 23730 - 19968: jis0212<<14 | 0x1A<<7 | 0x14, - 23731 - 19968: jis0208<<14 | 0x12<<7 | 0x38, - 23732 - 19968: jis0212<<14 | 0x1A<<7 | 0x15, - 23733 - 19968: jis0212<<14 | 0x1A<<7 | 0x16, - 23734 - 19968: jis0208<<14 | 0x35<<7 | 0x0E, - 23735 - 19968: jis0208<<14 | 0x35<<7 | 0x10, - 23736 - 19968: jis0208<<14 | 0x13<<7 | 0x3E, - 23738 - 19968: jis0208<<14 | 0x58<<7 | 0x50, - 23739 - 19968: jis0208<<14 | 0x35<<7 | 0x0D, - 23740 - 19968: jis0208<<14 | 0x35<<7 | 0x0F, - 23742 - 19968: jis0208<<14 | 0x35<<7 | 0x12, - 23749 - 19968: jis0208<<14 | 0x35<<7 | 0x11, - 23751 - 19968: jis0208<<14 | 0x35<<7 | 0x13, - 23753 - 19968: jis0212<<14 | 0x1A<<7 | 0x18, - 23755 - 19968: jis0212<<14 | 0x1A<<7 | 0x19, - 23762 - 19968: jis0212<<14 | 0x1A<<7 | 0x1A, - 23767 - 19968: jis0212<<14 | 0x1A<<7 | 0x1C, - 23769 - 19968: jis0208<<14 | 0x35<<7 | 0x14, - 23773 - 19968: jis0212<<14 | 0x1A<<7 | 0x1B, - 23776 - 19968: jis0208<<14 | 0x25<<7 | 0x1C, - 23777 - 19968: jis0208<<14 | 0x15<<7 | 0x0D, - 23784 - 19968: jis0208<<14 | 0x11<<7 | 0x44, - 23785 - 19968: jis0208<<14 | 0x35<<7 | 0x15, - 23786 - 19968: jis0208<<14 | 0x35<<7 | 0x1A, - 23789 - 19968: jis0208<<14 | 0x35<<7 | 0x18, - 23790 - 19968: jis0212<<14 | 0x1A<<7 | 0x1D, - 23791 - 19968: jis0208<<14 | 0x29<<7 | 0x56, - 23792 - 19968: jis0208<<14 | 0x29<<7 | 0x55, - 23793 - 19968: jis0212<<14 | 0x1A<<7 | 0x1E, - 23794 - 19968: jis0212<<14 | 0x1A<<7 | 0x1F, - 23796 - 19968: jis0212<<14 | 0x1A<<7 | 0x20, - 23797 - 19968: jis0208<<14 | 0x58<<7 | 0x51, - 23798 - 19968: jis0208<<14 | 0x24<<7 | 0x46, - 23802 - 19968: jis0208<<14 | 0x35<<7 | 0x17, - 23803 - 19968: jis0208<<14 | 0x1C<<7 | 0x33, - 23805 - 19968: jis0208<<14 | 0x35<<7 | 0x16, - 23809 - 19968: jis0212<<14 | 0x1A<<7 | 0x21, - 23814 - 19968: jis0212<<14 | 0x1A<<7 | 0x22, - 23815 - 19968: jis0208<<14 | 0x1E<<7 | 0x51, - 23819 - 19968: jis0208<<14 | 0x35<<7 | 0x1B, - 23821 - 19968: jis0212<<14 | 0x1A<<7 | 0x23, - 23822 - 19968: jis0208<<14 | 0x19<<7 | 0x49, - 23825 - 19968: jis0208<<14 | 0x35<<7 | 0x21, - 23826 - 19968: jis0212<<14 | 0x1A<<7 | 0x24, - 23828 - 19968: jis0208<<14 | 0x35<<7 | 0x22, - 23829 - 19968: jis0208<<14 | 0x35<<7 | 0x1C, - 23830 - 19968: jis0208<<14 | 0x12<<7 | 0x12, - 23831 - 19968: jis0208<<14 | 0x35<<7 | 0x1D, - 23832 - 19968: jis0208<<14 | 0x35<<7 | 0x26, - 23833 - 19968: jis0208<<14 | 0x35<<7 | 0x25, - 23834 - 19968: jis0208<<14 | 0x35<<7 | 0x24, - 23835 - 19968: jis0208<<14 | 0x35<<7 | 0x20, - 23839 - 19968: jis0208<<14 | 0x35<<7 | 0x1F, - 23842 - 19968: jis0208<<14 | 0x35<<7 | 0x23, - 23843 - 19968: jis0212<<14 | 0x1A<<7 | 0x26, - 23844 - 19968: jis0212<<14 | 0x1A<<7 | 0x27, - 23846 - 19968: jis0212<<14 | 0x1A<<7 | 0x28, - 23847 - 19968: jis0208<<14 | 0x58<<7 | 0x52, - 23849 - 19968: jis0208<<14 | 0x29<<7 | 0x57, - 23851 - 19968: jis0212<<14 | 0x1A<<7 | 0x25, - 23857 - 19968: jis0212<<14 | 0x1A<<7 | 0x2A, - 23860 - 19968: jis0212<<14 | 0x1A<<7 | 0x2B, - 23865 - 19968: jis0212<<14 | 0x1A<<7 | 0x2C, - 23869 - 19968: jis0212<<14 | 0x1A<<7 | 0x2D, - 23871 - 19968: jis0212<<14 | 0x1A<<7 | 0x2E, - 23874 - 19968: jis0208<<14 | 0x58<<7 | 0x55, - 23875 - 19968: jis0212<<14 | 0x1A<<7 | 0x30, - 23878 - 19968: jis0212<<14 | 0x1A<<7 | 0x31, - 23880 - 19968: jis0212<<14 | 0x1A<<7 | 0x32, - 23882 - 19968: jis0212<<14 | 0x1A<<7 | 0x36, - 23883 - 19968: jis0208<<14 | 0x35<<7 | 0x2A, - 23884 - 19968: jis0208<<14 | 0x35<<7 | 0x27, - 23886 - 19968: jis0208<<14 | 0x35<<7 | 0x29, - 23888 - 19968: jis0208<<14 | 0x2C<<7 | 0x51, - 23889 - 19968: jis0212<<14 | 0x1A<<7 | 0x34, - 23890 - 19968: jis0208<<14 | 0x35<<7 | 0x28, - 23891 - 19968: jis0208<<14 | 0x58<<7 | 0x53, - 23893 - 19968: jis0212<<14 | 0x1A<<7 | 0x33, - 23897 - 19968: jis0212<<14 | 0x1A<<7 | 0x35, - 23900 - 19968: jis0208<<14 | 0x35<<7 | 0x1E, - 23903 - 19968: jis0212<<14 | 0x1A<<7 | 0x37, - 23904 - 19968: jis0212<<14 | 0x1A<<7 | 0x38, - 23905 - 19968: jis0212<<14 | 0x1A<<7 | 0x39, - 23906 - 19968: jis0212<<14 | 0x1A<<7 | 0x3A, - 23908 - 19968: jis0212<<14 | 0x1A<<7 | 0x3B, - 23913 - 19968: jis0208<<14 | 0x1E<<7 | 0x52, - 23914 - 19968: jis0212<<14 | 0x1A<<7 | 0x3C, - 23916 - 19968: jis0208<<14 | 0x35<<7 | 0x2B, - 23917 - 19968: jis0208<<14 | 0x58<<7 | 0x56, - 23919 - 19968: jis0208<<14 | 0x19<<7 | 0x16, - 23920 - 19968: jis0212<<14 | 0x1A<<7 | 0x3E, - 23923 - 19968: jis0208<<14 | 0x35<<7 | 0x2C, - 23926 - 19968: jis0208<<14 | 0x35<<7 | 0x2D, - 23929 - 19968: jis0212<<14 | 0x1A<<7 | 0x3F, - 23930 - 19968: jis0212<<14 | 0x1A<<7 | 0x40, - 23934 - 19968: jis0212<<14 | 0x1A<<7 | 0x41, - 23935 - 19968: jis0212<<14 | 0x1A<<7 | 0x42, - 23937 - 19968: jis0212<<14 | 0x1A<<7 | 0x43, - 23938 - 19968: jis0208<<14 | 0x35<<7 | 0x30, - 23939 - 19968: jis0212<<14 | 0x1A<<7 | 0x44, - 23940 - 19968: jis0208<<14 | 0x35<<7 | 0x2F, - 23943 - 19968: jis0208<<14 | 0x35<<7 | 0x2E, - 23944 - 19968: jis0212<<14 | 0x1A<<7 | 0x45, - 23946 - 19968: jis0212<<14 | 0x1A<<7 | 0x46, - 23947 - 19968: jis0208<<14 | 0x24<<7 | 0x47, - 23948 - 19968: jis0208<<14 | 0x35<<7 | 0x19, - 23952 - 19968: jis0208<<14 | 0x35<<7 | 0x36, - 23954 - 19968: jis0212<<14 | 0x1A<<7 | 0x47, - 23955 - 19968: jis0212<<14 | 0x1A<<7 | 0x48, - 23956 - 19968: jis0212<<14 | 0x1A<<7 | 0x49, - 23957 - 19968: jis0212<<14 | 0x1A<<7 | 0x4A, - 23961 - 19968: jis0212<<14 | 0x1A<<7 | 0x4B, - 23963 - 19968: jis0212<<14 | 0x1A<<7 | 0x4C, - 23965 - 19968: jis0208<<14 | 0x35<<7 | 0x32, - 23967 - 19968: jis0212<<14 | 0x1A<<7 | 0x4D, - 23968 - 19968: jis0212<<14 | 0x1A<<7 | 0x4E, - 23970 - 19968: jis0208<<14 | 0x35<<7 | 0x31, - 23975 - 19968: jis0212<<14 | 0x1A<<7 | 0x4F, - 23979 - 19968: jis0212<<14 | 0x1A<<7 | 0x50, - 23980 - 19968: jis0208<<14 | 0x35<<7 | 0x33, - 23982 - 19968: jis0208<<14 | 0x35<<7 | 0x34, - 23984 - 19968: jis0212<<14 | 0x1A<<7 | 0x51, - 23986 - 19968: jis0212<<14 | 0x45<<7 | 0x53, - 23988 - 19968: jis0212<<14 | 0x1A<<7 | 0x52, - 23991 - 19968: jis0208<<14 | 0x35<<7 | 0x37, - 23992 - 19968: jis0208<<14 | 0x58<<7 | 0x57, - 23993 - 19968: jis0208<<14 | 0x58<<7 | 0x58, - 23994 - 19968: jis0208<<14 | 0x2D<<7 | 0x45, - 23996 - 19968: jis0208<<14 | 0x35<<7 | 0x38, - 23997 - 19968: jis0208<<14 | 0x35<<7 | 0x35, - 24003 - 19968: jis0212<<14 | 0x1A<<7 | 0x55, - 24007 - 19968: jis0212<<14 | 0x1A<<7 | 0x56, - 24009 - 19968: jis0208<<14 | 0x35<<7 | 0x39, - 24011 - 19968: jis0212<<14 | 0x1A<<7 | 0x57, - 24012 - 19968: jis0208<<14 | 0x13<<7 | 0x3F, - 24013 - 19968: jis0208<<14 | 0x35<<7 | 0x3A, - 24014 - 19968: jis0212<<14 | 0x1A<<7 | 0x59, - 24016 - 19968: jis0208<<14 | 0x58<<7 | 0x59, - 24018 - 19968: jis0208<<14 | 0x35<<7 | 0x3C, - 24019 - 19968: jis0208<<14 | 0x35<<7 | 0x3B, - 24022 - 19968: jis0208<<14 | 0x35<<7 | 0x3D, - 24024 - 19968: jis0212<<14 | 0x1A<<7 | 0x5A, - 24025 - 19968: jis0212<<14 | 0x1A<<7 | 0x5B, - 24027 - 19968: jis0208<<14 | 0x35<<7 | 0x3E, - 24029 - 19968: jis0208<<14 | 0x1F<<7 | 0x4D, - 24030 - 19968: jis0208<<14 | 0x1C<<7 | 0x02, - 24032 - 19968: jis0212<<14 | 0x1A<<7 | 0x5C, - 24033 - 19968: jis0208<<14 | 0x1C<<7 | 0x43, - 24035 - 19968: jis0208<<14 | 0x20<<7 | 0x42, - 24036 - 19968: jis0212<<14 | 0x1A<<7 | 0x5D, - 24037 - 19968: jis0208<<14 | 0x18<<7 | 0x08, - 24038 - 19968: jis0208<<14 | 0x19<<7 | 0x17, - 24039 - 19968: jis0208<<14 | 0x18<<7 | 0x09, - 24040 - 19968: jis0208<<14 | 0x14<<7 | 0x4F, - 24041 - 19968: jis0212<<14 | 0x1B<<7 | 0x00, - 24043 - 19968: jis0208<<14 | 0x35<<7 | 0x3F, - 24046 - 19968: jis0208<<14 | 0x19<<7 | 0x18, - 24049 - 19968: jis0208<<14 | 0x17<<7 | 0x29, - 24050 - 19968: jis0208<<14 | 0x35<<7 | 0x40, - 24051 - 19968: jis0208<<14 | 0x2B<<7 | 0x05, - 24052 - 19968: jis0208<<14 | 0x26<<7 | 0x22, - 24053 - 19968: jis0208<<14 | 0x35<<7 | 0x41, - 24055 - 19968: jis0208<<14 | 0x18<<7 | 0x0A, - 24056 - 19968: jis0212<<14 | 0x1B<<7 | 0x01, - 24057 - 19968: jis0212<<14 | 0x1B<<7 | 0x02, - 24059 - 19968: jis0208<<14 | 0x13<<7 | 0x0B, - 24061 - 19968: jis0208<<14 | 0x22<<7 | 0x06, - 24062 - 19968: jis0208<<14 | 0x15<<7 | 0x31, - 24064 - 19968: jis0212<<14 | 0x1B<<7 | 0x03, - 24066 - 19968: jis0208<<14 | 0x1A<<7 | 0x33, - 24067 - 19968: jis0208<<14 | 0x28<<7 | 0x3A, - 24070 - 19968: jis0208<<14 | 0x27<<7 | 0x20, - 24071 - 19968: jis0212<<14 | 0x1B<<7 | 0x04, - 24075 - 19968: jis0208<<14 | 0x35<<7 | 0x42, - 24076 - 19968: jis0208<<14 | 0x13<<7 | 0x54, - 24077 - 19968: jis0212<<14 | 0x1B<<7 | 0x05, - 24081 - 19968: jis0208<<14 | 0x35<<7 | 0x45, - 24082 - 19968: jis0212<<14 | 0x1B<<7 | 0x06, - 24084 - 19968: jis0212<<14 | 0x1B<<7 | 0x07, - 24085 - 19968: jis0212<<14 | 0x1B<<7 | 0x08, - 24086 - 19968: jis0208<<14 | 0x23<<7 | 0x00, - 24088 - 19968: jis0212<<14 | 0x1B<<7 | 0x09, - 24089 - 19968: jis0208<<14 | 0x35<<7 | 0x44, - 24090 - 19968: jis0208<<14 | 0x35<<7 | 0x43, - 24091 - 19968: jis0208<<14 | 0x35<<7 | 0x46, - 24093 - 19968: jis0208<<14 | 0x23<<7 | 0x4A, - 24095 - 19968: jis0212<<14 | 0x1B<<7 | 0x0A, - 24096 - 19968: jis0212<<14 | 0x1B<<7 | 0x0B, - 24101 - 19968: jis0208<<14 | 0x1E<<7 | 0x42, - 24104 - 19968: jis0212<<14 | 0x1B<<7 | 0x0D, - 24107 - 19968: jis0208<<14 | 0x1A<<7 | 0x34, - 24109 - 19968: jis0208<<14 | 0x1F<<7 | 0x29, - 24110 - 19968: jis0212<<14 | 0x1B<<7 | 0x0C, - 24111 - 19968: jis0208<<14 | 0x21<<7 | 0x32, - 24112 - 19968: jis0208<<14 | 0x14<<7 | 0x01, - 24114 - 19968: jis0212<<14 | 0x1B<<7 | 0x0E, - 24115 - 19968: jis0208<<14 | 0x23<<7 | 0x01, - 24117 - 19968: jis0212<<14 | 0x1B<<7 | 0x0F, - 24118 - 19968: jis0208<<14 | 0x35<<7 | 0x47, - 24119 - 19968: jis0208<<14 | 0x35<<7 | 0x48, - 24120 - 19968: jis0208<<14 | 0x1D<<7 | 0x4E, - 24125 - 19968: jis0208<<14 | 0x2A<<7 | 0x18, - 24126 - 19968: jis0212<<14 | 0x1B<<7 | 0x10, - 24128 - 19968: jis0208<<14 | 0x35<<7 | 0x4B, - 24131 - 19968: jis0208<<14 | 0x35<<7 | 0x4A, - 24132 - 19968: jis0208<<14 | 0x35<<7 | 0x49, - 24133 - 19968: jis0208<<14 | 0x28<<7 | 0x5C, - 24135 - 19968: jis0208<<14 | 0x35<<7 | 0x52, - 24137 - 19968: jis0212<<14 | 0x1B<<7 | 0x13, - 24139 - 19968: jis0212<<14 | 0x1B<<7 | 0x11, - 24140 - 19968: jis0208<<14 | 0x2A<<7 | 0x39, - 24142 - 19968: jis0208<<14 | 0x35<<7 | 0x4C, - 24144 - 19968: jis0212<<14 | 0x1B<<7 | 0x12, - 24145 - 19968: jis0212<<14 | 0x1B<<7 | 0x14, - 24148 - 19968: jis0208<<14 | 0x35<<7 | 0x4E, - 24149 - 19968: jis0208<<14 | 0x2A<<7 | 0x4A, - 24150 - 19968: jis0212<<14 | 0x1B<<7 | 0x15, - 24151 - 19968: jis0208<<14 | 0x35<<7 | 0x4D, - 24152 - 19968: jis0212<<14 | 0x1B<<7 | 0x16, - 24155 - 19968: jis0212<<14 | 0x1B<<7 | 0x17, - 24156 - 19968: jis0212<<14 | 0x1B<<7 | 0x18, - 24158 - 19968: jis0212<<14 | 0x1B<<7 | 0x19, - 24159 - 19968: jis0208<<14 | 0x35<<7 | 0x4F, - 24161 - 19968: jis0208<<14 | 0x27<<7 | 0x07, - 24162 - 19968: jis0208<<14 | 0x35<<7 | 0x50, - 24163 - 19968: jis0208<<14 | 0x29<<7 | 0x1D, - 24164 - 19968: jis0208<<14 | 0x35<<7 | 0x51, - 24168 - 19968: jis0212<<14 | 0x1B<<7 | 0x1A, - 24170 - 19968: jis0212<<14 | 0x1B<<7 | 0x1B, - 24171 - 19968: jis0212<<14 | 0x1B<<7 | 0x1C, - 24172 - 19968: jis0212<<14 | 0x1B<<7 | 0x1D, - 24173 - 19968: jis0212<<14 | 0x1B<<7 | 0x1E, - 24174 - 19968: jis0212<<14 | 0x1B<<7 | 0x1F, - 24176 - 19968: jis0212<<14 | 0x1B<<7 | 0x20, - 24178 - 19968: jis0208<<14 | 0x13<<7 | 0x12, - 24179 - 19968: jis0208<<14 | 0x29<<7 | 0x1E, - 24180 - 19968: jis0208<<14 | 0x26<<7 | 0x0E, - 24181 - 19968: jis0208<<14 | 0x35<<7 | 0x53, - 24182 - 19968: jis0208<<14 | 0x35<<7 | 0x54, - 24184 - 19968: jis0208<<14 | 0x18<<7 | 0x0B, - 24185 - 19968: jis0208<<14 | 0x13<<7 | 0x13, - 24186 - 19968: jis0208<<14 | 0x35<<7 | 0x55, - 24187 - 19968: jis0208<<14 | 0x17<<7 | 0x17, - 24188 - 19968: jis0208<<14 | 0x2C<<7 | 0x23, - 24189 - 19968: jis0208<<14 | 0x2C<<7 | 0x08, - 24190 - 19968: jis0208<<14 | 0x13<<7 | 0x55, - 24191 - 19968: jis0208<<14 | 0x35<<7 | 0x57, - 24192 - 19968: jis0212<<14 | 0x1B<<7 | 0x21, - 24193 - 19968: jis0208<<14 | 0x23<<7 | 0x02, - 24195 - 19968: jis0208<<14 | 0x18<<7 | 0x0C, - 24196 - 19968: jis0208<<14 | 0x1D<<7 | 0x10, - 24199 - 19968: jis0208<<14 | 0x27<<7 | 0x3E, - 24202 - 19968: jis0208<<14 | 0x1D<<7 | 0x11, - 24203 - 19968: jis0212<<14 | 0x1B<<7 | 0x22, - 24206 - 19968: jis0212<<14 | 0x1B<<7 | 0x23, - 24207 - 19968: jis0208<<14 | 0x1C<<7 | 0x57, - 24213 - 19968: jis0208<<14 | 0x23<<7 | 0x4B, - 24214 - 19968: jis0208<<14 | 0x29<<7 | 0x58, - 24215 - 19968: jis0208<<14 | 0x24<<7 | 0x18, - 24218 - 19968: jis0208<<14 | 0x18<<7 | 0x0D, - 24220 - 19968: jis0208<<14 | 0x28<<7 | 0x3B, - 24224 - 19968: jis0208<<14 | 0x35<<7 | 0x58, - 24226 - 19968: jis0212<<14 | 0x1B<<7 | 0x24, - 24228 - 19968: jis0212<<14 | 0x1B<<7 | 0x25, - 24229 - 19968: jis0212<<14 | 0x1B<<7 | 0x26, - 24230 - 19968: jis0208<<14 | 0x24<<7 | 0x38, - 24231 - 19968: jis0208<<14 | 0x19<<7 | 0x21, - 24232 - 19968: jis0212<<14 | 0x1B<<7 | 0x27, - 24234 - 19968: jis0212<<14 | 0x1B<<7 | 0x28, - 24235 - 19968: jis0208<<14 | 0x17<<7 | 0x2A, - 24236 - 19968: jis0212<<14 | 0x1B<<7 | 0x29, - 24237 - 19968: jis0208<<14 | 0x23<<7 | 0x4C, - 24241 - 19968: jis0212<<14 | 0x1B<<7 | 0x2A, - 24243 - 19968: jis0212<<14 | 0x1B<<7 | 0x2B, - 24245 - 19968: jis0208<<14 | 0x0F<<7 | 0x22, - 24246 - 19968: jis0208<<14 | 0x1C<<7 | 0x4D, - 24247 - 19968: jis0208<<14 | 0x18<<7 | 0x0E, - 24248 - 19968: jis0208<<14 | 0x2C<<7 | 0x26, - 24253 - 19968: jis0212<<14 | 0x1B<<7 | 0x2C, - 24254 - 19968: jis0212<<14 | 0x1B<<7 | 0x2D, - 24255 - 19968: jis0212<<14 | 0x1B<<7 | 0x2E, - 24257 - 19968: jis0208<<14 | 0x35<<7 | 0x59, - 24258 - 19968: jis0208<<14 | 0x35<<7 | 0x5A, - 24259 - 19968: jis0208<<14 | 0x26<<7 | 0x30, - 24262 - 19968: jis0212<<14 | 0x1B<<7 | 0x2F, - 24264 - 19968: jis0208<<14 | 0x35<<7 | 0x5B, - 24265 - 19968: jis0208<<14 | 0x2D<<7 | 0x56, - 24266 - 19968: jis0208<<14 | 0x2E<<7 | 0x0C, - 24267 - 19968: jis0212<<14 | 0x1B<<7 | 0x31, - 24268 - 19968: jis0212<<14 | 0x1B<<7 | 0x30, - 24270 - 19968: jis0212<<14 | 0x1B<<7 | 0x32, - 24271 - 19968: jis0208<<14 | 0x35<<7 | 0x5D, - 24272 - 19968: jis0208<<14 | 0x35<<7 | 0x5C, - 24273 - 19968: jis0212<<14 | 0x1B<<7 | 0x33, - 24274 - 19968: jis0212<<14 | 0x1B<<7 | 0x34, - 24275 - 19968: jis0208<<14 | 0x12<<7 | 0x26, - 24276 - 19968: jis0212<<14 | 0x1B<<7 | 0x35, - 24277 - 19968: jis0212<<14 | 0x1B<<7 | 0x36, - 24278 - 19968: jis0208<<14 | 0x36<<7 | 0x00, - 24282 - 19968: jis0208<<14 | 0x36<<7 | 0x03, - 24283 - 19968: jis0208<<14 | 0x36<<7 | 0x04, - 24284 - 19968: jis0212<<14 | 0x1B<<7 | 0x37, - 24285 - 19968: jis0208<<14 | 0x36<<7 | 0x02, - 24286 - 19968: jis0212<<14 | 0x1B<<7 | 0x38, - 24287 - 19968: jis0208<<14 | 0x28<<7 | 0x1F, - 24288 - 19968: jis0208<<14 | 0x1D<<7 | 0x12, - 24289 - 19968: jis0208<<14 | 0x36<<7 | 0x06, - 24290 - 19968: jis0208<<14 | 0x36<<7 | 0x05, - 24291 - 19968: jis0208<<14 | 0x36<<7 | 0x01, - 24293 - 19968: jis0212<<14 | 0x1B<<7 | 0x39, - 24296 - 19968: jis0208<<14 | 0x36<<7 | 0x07, - 24297 - 19968: jis0208<<14 | 0x36<<7 | 0x08, - 24299 - 19968: jis0212<<14 | 0x1B<<7 | 0x3A, - 24300 - 19968: jis0208<<14 | 0x36<<7 | 0x09, - 24304 - 19968: jis0208<<14 | 0x36<<7 | 0x0C, - 24305 - 19968: jis0208<<14 | 0x36<<7 | 0x0A, - 24307 - 19968: jis0208<<14 | 0x36<<7 | 0x0B, - 24308 - 19968: jis0208<<14 | 0x36<<7 | 0x0D, - 24310 - 19968: jis0208<<14 | 0x10<<7 | 0x43, - 24311 - 19968: jis0208<<14 | 0x23<<7 | 0x4D, - 24312 - 19968: jis0208<<14 | 0x36<<7 | 0x0E, - 24314 - 19968: jis0208<<14 | 0x16<<7 | 0x59, - 24315 - 19968: jis0208<<14 | 0x11<<7 | 0x55, - 24316 - 19968: jis0208<<14 | 0x26<<7 | 0x15, - 24318 - 19968: jis0208<<14 | 0x36<<7 | 0x0F, - 24319 - 19968: jis0208<<14 | 0x25<<7 | 0x5A, - 24321 - 19968: jis0208<<14 | 0x29<<7 | 0x3A, - 24322 - 19968: jis0212<<14 | 0x1B<<7 | 0x3B, - 24323 - 19968: jis0208<<14 | 0x36<<7 | 0x10, - 24324 - 19968: jis0208<<14 | 0x2E<<7 | 0x0D, - 24326 - 19968: jis0212<<14 | 0x1B<<7 | 0x3C, - 24327 - 19968: jis0212<<14 | 0x1B<<7 | 0x3D, - 24328 - 19968: jis0212<<14 | 0x1B<<7 | 0x3E, - 24329 - 19968: jis0208<<14 | 0x36<<7 | 0x11, - 24330 - 19968: jis0208<<14 | 0x29<<7 | 0x1F, - 24331 - 19968: jis0208<<14 | 0x36<<7 | 0x14, - 24332 - 19968: jis0208<<14 | 0x2F<<7 | 0x00, - 24333 - 19968: jis0208<<14 | 0x2F<<7 | 0x10, - 24334 - 19968: jis0212<<14 | 0x1B<<7 | 0x3F, - 24335 - 19968: jis0208<<14 | 0x1B<<7 | 0x0F, - 24336 - 19968: jis0208<<14 | 0x25<<7 | 0x54, - 24337 - 19968: jis0208<<14 | 0x36<<7 | 0x15, - 24339 - 19968: jis0208<<14 | 0x14<<7 | 0x3C, - 24340 - 19968: jis0208<<14 | 0x23<<7 | 0x03, - 24341 - 19968: jis0208<<14 | 0x0F<<7 | 0x59, - 24342 - 19968: jis0208<<14 | 0x36<<7 | 0x16, - 24343 - 19968: jis0208<<14 | 0x29<<7 | 0x05, - 24344 - 19968: jis0208<<14 | 0x18<<7 | 0x0F, - 24345 - 19968: jis0212<<14 | 0x1B<<7 | 0x40, - 24347 - 19968: jis0208<<14 | 0x22<<7 | 0x2F, - 24348 - 19968: jis0212<<14 | 0x1B<<7 | 0x41, - 24349 - 19968: jis0212<<14 | 0x1B<<7 | 0x42, - 24351 - 19968: jis0208<<14 | 0x23<<7 | 0x4E, - 24353 - 19968: jis0208<<14 | 0x58<<7 | 0x5A, - 24354 - 19968: jis0212<<14 | 0x1B<<7 | 0x44, - 24355 - 19968: jis0212<<14 | 0x1B<<7 | 0x45, - 24356 - 19968: jis0212<<14 | 0x1B<<7 | 0x46, - 24357 - 19968: jis0208<<14 | 0x2B<<7 | 0x4E, - 24358 - 19968: jis0208<<14 | 0x17<<7 | 0x18, - 24359 - 19968: jis0208<<14 | 0x17<<7 | 0x2B, - 24360 - 19968: jis0212<<14 | 0x1B<<7 | 0x47, - 24361 - 19968: jis0208<<14 | 0x36<<7 | 0x17, - 24363 - 19968: jis0212<<14 | 0x1B<<7 | 0x48, - 24364 - 19968: jis0212<<14 | 0x1B<<7 | 0x49, - 24365 - 19968: jis0208<<14 | 0x36<<7 | 0x18, - 24366 - 19968: jis0212<<14 | 0x1B<<7 | 0x4A, - 24367 - 19968: jis0208<<14 | 0x36<<7 | 0x1E, - 24368 - 19968: jis0212<<14 | 0x1B<<7 | 0x4B, - 24369 - 19968: jis0208<<14 | 0x1B<<7 | 0x44, - 24372 - 19968: jis0208<<14 | 0x58<<7 | 0x5B, - 24373 - 19968: jis0208<<14 | 0x23<<7 | 0x04, - 24374 - 19968: jis0212<<14 | 0x1B<<7 | 0x4D, - 24375 - 19968: jis0208<<14 | 0x15<<7 | 0x0E, - 24376 - 19968: jis0208<<14 | 0x36<<7 | 0x19, - 24379 - 19968: jis0212<<14 | 0x1B<<7 | 0x4E, - 24380 - 19968: jis0208<<14 | 0x28<<7 | 0x0A, - 24381 - 19968: jis0212<<14 | 0x1B<<7 | 0x4F, - 24382 - 19968: jis0208<<14 | 0x22<<7 | 0x25, - 24383 - 19968: jis0212<<14 | 0x1B<<7 | 0x50, - 24384 - 19968: jis0212<<14 | 0x1B<<7 | 0x51, - 24385 - 19968: jis0208<<14 | 0x36<<7 | 0x1A, - 24388 - 19968: jis0212<<14 | 0x1B<<7 | 0x52, - 24389 - 19968: jis0208<<14 | 0x58<<7 | 0x0B, - 24391 - 19968: jis0212<<14 | 0x1B<<7 | 0x54, - 24392 - 19968: jis0208<<14 | 0x36<<7 | 0x1B, - 24394 - 19968: jis0208<<14 | 0x15<<7 | 0x0F, - 24396 - 19968: jis0208<<14 | 0x36<<7 | 0x1C, - 24397 - 19968: jis0212<<14 | 0x1B<<7 | 0x55, - 24398 - 19968: jis0208<<14 | 0x36<<7 | 0x1D, - 24400 - 19968: jis0212<<14 | 0x1B<<7 | 0x56, - 24401 - 19968: jis0208<<14 | 0x36<<7 | 0x1F, - 24403 - 19968: jis0208<<14 | 0x24<<7 | 0x55, - 24404 - 19968: jis0212<<14 | 0x1B<<7 | 0x57, - 24406 - 19968: jis0208<<14 | 0x36<<7 | 0x20, - 24407 - 19968: jis0208<<14 | 0x36<<7 | 0x21, - 24408 - 19968: jis0212<<14 | 0x1B<<7 | 0x58, - 24409 - 19968: jis0208<<14 | 0x36<<7 | 0x22, - 24411 - 19968: jis0212<<14 | 0x1B<<7 | 0x59, - 24412 - 19968: jis0208<<14 | 0x36<<7 | 0x13, - 24413 - 19968: jis0208<<14 | 0x36<<7 | 0x12, - 24416 - 19968: jis0212<<14 | 0x1B<<7 | 0x5A, - 24417 - 19968: jis0208<<14 | 0x36<<7 | 0x23, - 24418 - 19968: jis0208<<14 | 0x16<<7 | 0x20, - 24419 - 19968: jis0212<<14 | 0x1B<<7 | 0x5B, - 24420 - 19968: jis0212<<14 | 0x1B<<7 | 0x5C, - 24422 - 19968: jis0208<<14 | 0x28<<7 | 0x06, - 24423 - 19968: jis0208<<14 | 0x58<<7 | 0x5C, - 24425 - 19968: jis0208<<14 | 0x19<<7 | 0x2B, - 24426 - 19968: jis0208<<14 | 0x28<<7 | 0x16, - 24427 - 19968: jis0208<<14 | 0x23<<7 | 0x05, - 24428 - 19968: jis0208<<14 | 0x28<<7 | 0x2A, - 24429 - 19968: jis0208<<14 | 0x36<<7 | 0x24, - 24431 - 19968: jis0212<<14 | 0x1C<<7 | 0x00, - 24432 - 19968: jis0208<<14 | 0x1D<<7 | 0x13, - 24433 - 19968: jis0208<<14 | 0x10<<7 | 0x25, - 24434 - 19968: jis0212<<14 | 0x1C<<7 | 0x01, - 24435 - 19968: jis0208<<14 | 0x36<<7 | 0x25, - 24436 - 19968: jis0212<<14 | 0x1C<<7 | 0x02, - 24437 - 19968: jis0212<<14 | 0x1C<<7 | 0x03, - 24439 - 19968: jis0208<<14 | 0x36<<7 | 0x26, - 24440 - 19968: jis0212<<14 | 0x1C<<7 | 0x04, - 24441 - 19968: jis0208<<14 | 0x2B<<7 | 0x51, - 24442 - 19968: jis0212<<14 | 0x1C<<7 | 0x05, - 24444 - 19968: jis0208<<14 | 0x27<<7 | 0x3F, - 24445 - 19968: jis0212<<14 | 0x1C<<7 | 0x06, - 24446 - 19968: jis0212<<14 | 0x1C<<7 | 0x07, - 24447 - 19968: jis0208<<14 | 0x36<<7 | 0x29, - 24448 - 19968: jis0208<<14 | 0x10<<7 | 0x5C, - 24449 - 19968: jis0208<<14 | 0x1F<<7 | 0x0B, - 24450 - 19968: jis0208<<14 | 0x36<<7 | 0x28, - 24451 - 19968: jis0208<<14 | 0x36<<7 | 0x27, - 24452 - 19968: jis0208<<14 | 0x16<<7 | 0x21, - 24453 - 19968: jis0208<<14 | 0x21<<7 | 0x33, - 24455 - 19968: jis0208<<14 | 0x36<<7 | 0x2D, - 24456 - 19968: jis0208<<14 | 0x36<<7 | 0x2B, - 24457 - 19968: jis0212<<14 | 0x1C<<7 | 0x08, - 24458 - 19968: jis0208<<14 | 0x36<<7 | 0x2A, - 24459 - 19968: jis0208<<14 | 0x2D<<7 | 0x06, - 24460 - 19968: jis0208<<14 | 0x17<<7 | 0x44, - 24461 - 19968: jis0212<<14 | 0x1C<<7 | 0x09, - 24463 - 19968: jis0212<<14 | 0x1C<<7 | 0x0A, - 24464 - 19968: jis0208<<14 | 0x1C<<7 | 0x58, - 24465 - 19968: jis0208<<14 | 0x36<<7 | 0x2C, - 24466 - 19968: jis0208<<14 | 0x24<<7 | 0x2B, - 24467 - 19968: jis0208<<14 | 0x1C<<7 | 0x1D, - 24470 - 19968: jis0212<<14 | 0x1C<<7 | 0x0B, - 24471 - 19968: jis0208<<14 | 0x25<<7 | 0x1F, - 24472 - 19968: jis0208<<14 | 0x36<<7 | 0x30, - 24473 - 19968: jis0208<<14 | 0x36<<7 | 0x2F, - 24476 - 19968: jis0212<<14 | 0x1C<<7 | 0x0C, - 24477 - 19968: jis0212<<14 | 0x1C<<7 | 0x0D, - 24478 - 19968: jis0208<<14 | 0x36<<7 | 0x2E, - 24480 - 19968: jis0208<<14 | 0x36<<7 | 0x31, - 24481 - 19968: jis0208<<14 | 0x17<<7 | 0x45, - 24482 - 19968: jis0212<<14 | 0x1C<<7 | 0x0E, - 24484 - 19968: jis0212<<14 | 0x1C<<7 | 0x11, - 24487 - 19968: jis0212<<14 | 0x1C<<7 | 0x0F, - 24488 - 19968: jis0208<<14 | 0x36<<7 | 0x32, - 24489 - 19968: jis0208<<14 | 0x28<<7 | 0x5B, - 24490 - 19968: jis0208<<14 | 0x1C<<7 | 0x3A, - 24491 - 19968: jis0212<<14 | 0x1C<<7 | 0x10, - 24492 - 19968: jis0212<<14 | 0x1C<<7 | 0x12, - 24493 - 19968: jis0208<<14 | 0x36<<7 | 0x33, - 24494 - 19968: jis0208<<14 | 0x27<<7 | 0x58, - 24495 - 19968: jis0212<<14 | 0x1C<<7 | 0x13, - 24496 - 19968: jis0212<<14 | 0x1C<<7 | 0x14, - 24497 - 19968: jis0212<<14 | 0x1C<<7 | 0x15, - 24499 - 19968: jis0208<<14 | 0x25<<7 | 0x20, - 24500 - 19968: jis0208<<14 | 0x23<<7 | 0x06, - 24503 - 19968: jis0208<<14 | 0x58<<7 | 0x5D, - 24504 - 19968: jis0212<<14 | 0x1C<<7 | 0x16, - 24505 - 19968: jis0208<<14 | 0x24<<7 | 0x0F, - 24508 - 19968: jis0208<<14 | 0x36<<7 | 0x34, - 24509 - 19968: jis0208<<14 | 0x14<<7 | 0x0A, - 24515 - 19968: jis0208<<14 | 0x1E<<7 | 0x13, - 24516 - 19968: jis0212<<14 | 0x1C<<7 | 0x17, - 24517 - 19968: jis0208<<14 | 0x28<<7 | 0x0B, - 24519 - 19968: jis0212<<14 | 0x1C<<7 | 0x18, - 24520 - 19968: jis0212<<14 | 0x1C<<7 | 0x19, - 24521 - 19968: jis0212<<14 | 0x1C<<7 | 0x1A, - 24523 - 19968: jis0212<<14 | 0x1C<<7 | 0x1B, - 24524 - 19968: jis0208<<14 | 0x13<<7 | 0x56, - 24525 - 19968: jis0208<<14 | 0x26<<7 | 0x05, - 24528 - 19968: jis0212<<14 | 0x1C<<7 | 0x1C, - 24529 - 19968: jis0212<<14 | 0x1C<<7 | 0x1D, - 24530 - 19968: jis0212<<14 | 0x1C<<7 | 0x1E, - 24531 - 19968: jis0212<<14 | 0x1C<<7 | 0x1F, - 24532 - 19968: jis0212<<14 | 0x1C<<7 | 0x20, - 24534 - 19968: jis0208<<14 | 0x36<<7 | 0x35, - 24535 - 19968: jis0208<<14 | 0x1A<<7 | 0x35, - 24536 - 19968: jis0208<<14 | 0x2A<<7 | 0x19, - 24537 - 19968: jis0208<<14 | 0x2A<<7 | 0x1A, - 24540 - 19968: jis0208<<14 | 0x10<<7 | 0x5D, - 24541 - 19968: jis0208<<14 | 0x36<<7 | 0x3A, - 24542 - 19968: jis0208<<14 | 0x59<<7 | 0x00, - 24544 - 19968: jis0208<<14 | 0x22<<7 | 0x48, - 24545 - 19968: jis0212<<14 | 0x1C<<7 | 0x22, - 24546 - 19968: jis0212<<14 | 0x1C<<7 | 0x23, - 24548 - 19968: jis0208<<14 | 0x36<<7 | 0x37, - 24552 - 19968: jis0212<<14 | 0x1C<<7 | 0x24, - 24553 - 19968: jis0212<<14 | 0x1C<<7 | 0x25, - 24554 - 19968: jis0212<<14 | 0x1C<<7 | 0x26, - 24555 - 19968: jis0208<<14 | 0x11<<7 | 0x56, - 24556 - 19968: jis0212<<14 | 0x1C<<7 | 0x27, - 24557 - 19968: jis0212<<14 | 0x1C<<7 | 0x28, - 24558 - 19968: jis0212<<14 | 0x1C<<7 | 0x29, - 24559 - 19968: jis0212<<14 | 0x1C<<7 | 0x2A, - 24560 - 19968: jis0208<<14 | 0x37<<7 | 0x0C, - 24561 - 19968: jis0208<<14 | 0x36<<7 | 0x39, - 24562 - 19968: jis0212<<14 | 0x1C<<7 | 0x2B, - 24563 - 19968: jis0212<<14 | 0x1C<<7 | 0x2C, - 24565 - 19968: jis0208<<14 | 0x26<<7 | 0x0F, - 24566 - 19968: jis0212<<14 | 0x1C<<7 | 0x2D, - 24568 - 19968: jis0208<<14 | 0x36<<7 | 0x38, - 24570 - 19968: jis0212<<14 | 0x1C<<7 | 0x2E, - 24571 - 19968: jis0208<<14 | 0x36<<7 | 0x36, - 24572 - 19968: jis0212<<14 | 0x1C<<7 | 0x2F, - 24573 - 19968: jis0208<<14 | 0x18<<7 | 0x59, - 24575 - 19968: jis0208<<14 | 0x36<<7 | 0x3C, - 24583 - 19968: jis0212<<14 | 0x1C<<7 | 0x30, - 24586 - 19968: jis0212<<14 | 0x1C<<7 | 0x31, - 24589 - 19968: jis0212<<14 | 0x1C<<7 | 0x32, - 24590 - 19968: jis0208<<14 | 0x36<<7 | 0x42, - 24591 - 19968: jis0208<<14 | 0x36<<7 | 0x48, - 24592 - 19968: jis0208<<14 | 0x36<<7 | 0x40, - 24594 - 19968: jis0208<<14 | 0x24<<7 | 0x3B, - 24595 - 19968: jis0212<<14 | 0x1C<<7 | 0x33, - 24596 - 19968: jis0212<<14 | 0x1C<<7 | 0x34, - 24597 - 19968: jis0208<<14 | 0x36<<7 | 0x45, - 24598 - 19968: jis0208<<14 | 0x28<<7 | 0x3C, - 24599 - 19968: jis0212<<14 | 0x1C<<7 | 0x35, - 24600 - 19968: jis0212<<14 | 0x1C<<7 | 0x36, - 24601 - 19968: jis0208<<14 | 0x36<<7 | 0x3F, - 24602 - 19968: jis0212<<14 | 0x1C<<7 | 0x37, - 24603 - 19968: jis0208<<14 | 0x36<<7 | 0x44, - 24604 - 19968: jis0208<<14 | 0x2D<<7 | 0x46, - 24605 - 19968: jis0208<<14 | 0x1A<<7 | 0x36, - 24607 - 19968: jis0212<<14 | 0x1C<<7 | 0x38, - 24608 - 19968: jis0208<<14 | 0x21<<7 | 0x34, - 24609 - 19968: jis0208<<14 | 0x36<<7 | 0x3D, - 24612 - 19968: jis0212<<14 | 0x1C<<7 | 0x39, - 24613 - 19968: jis0208<<14 | 0x14<<7 | 0x3D, - 24614 - 19968: jis0208<<14 | 0x36<<7 | 0x47, - 24615 - 19968: jis0208<<14 | 0x1F<<7 | 0x0C, - 24616 - 19968: jis0208<<14 | 0x10<<7 | 0x44, - 24617 - 19968: jis0208<<14 | 0x36<<7 | 0x41, - 24618 - 19968: jis0208<<14 | 0x11<<7 | 0x57, - 24619 - 19968: jis0208<<14 | 0x36<<7 | 0x46, - 24621 - 19968: jis0212<<14 | 0x1C<<7 | 0x3A, - 24623 - 19968: jis0208<<14 | 0x15<<7 | 0x10, - 24625 - 19968: jis0208<<14 | 0x36<<7 | 0x43, - 24627 - 19968: jis0212<<14 | 0x1C<<7 | 0x3B, - 24629 - 19968: jis0212<<14 | 0x1C<<7 | 0x3C, - 24634 - 19968: jis0208<<14 | 0x36<<7 | 0x49, - 24640 - 19968: jis0212<<14 | 0x1C<<7 | 0x3D, - 24641 - 19968: jis0208<<14 | 0x36<<7 | 0x4B, - 24642 - 19968: jis0208<<14 | 0x36<<7 | 0x55, - 24643 - 19968: jis0208<<14 | 0x36<<7 | 0x53, - 24646 - 19968: jis0208<<14 | 0x36<<7 | 0x50, - 24647 - 19968: jis0212<<14 | 0x1C<<7 | 0x3E, - 24648 - 19968: jis0212<<14 | 0x1C<<7 | 0x3F, - 24649 - 19968: jis0212<<14 | 0x1C<<7 | 0x40, - 24650 - 19968: jis0208<<14 | 0x36<<7 | 0x4F, - 24651 - 19968: jis0208<<14 | 0x2D<<7 | 0x57, - 24652 - 19968: jis0212<<14 | 0x1C<<7 | 0x41, - 24653 - 19968: jis0208<<14 | 0x36<<7 | 0x51, - 24656 - 19968: jis0208<<14 | 0x15<<7 | 0x11, - 24657 - 19968: jis0212<<14 | 0x1C<<7 | 0x42, - 24658 - 19968: jis0208<<14 | 0x18<<7 | 0x10, - 24660 - 19968: jis0212<<14 | 0x1C<<7 | 0x43, - 24661 - 19968: jis0208<<14 | 0x1C<<7 | 0x59, - 24662 - 19968: jis0212<<14 | 0x1C<<7 | 0x44, - 24663 - 19968: jis0212<<14 | 0x1C<<7 | 0x45, - 24665 - 19968: jis0208<<14 | 0x36<<7 | 0x58, - 24666 - 19968: jis0208<<14 | 0x36<<7 | 0x4A, - 24669 - 19968: jis0208<<14 | 0x59<<7 | 0x01, - 24671 - 19968: jis0208<<14 | 0x36<<7 | 0x4E, - 24672 - 19968: jis0208<<14 | 0x36<<7 | 0x3E, - 24673 - 19968: jis0212<<14 | 0x1C<<7 | 0x47, - 24674 - 19968: jis0208<<14 | 0x11<<7 | 0x59, - 24675 - 19968: jis0208<<14 | 0x36<<7 | 0x52, - 24676 - 19968: jis0208<<14 | 0x36<<7 | 0x54, - 24677 - 19968: jis0208<<14 | 0x22<<7 | 0x30, - 24679 - 19968: jis0212<<14 | 0x1C<<7 | 0x48, - 24680 - 19968: jis0208<<14 | 0x19<<7 | 0x07, - 24681 - 19968: jis0208<<14 | 0x11<<7 | 0x17, - 24682 - 19968: jis0208<<14 | 0x36<<7 | 0x4C, - 24683 - 19968: jis0208<<14 | 0x36<<7 | 0x57, - 24684 - 19968: jis0208<<14 | 0x36<<7 | 0x56, - 24685 - 19968: jis0208<<14 | 0x15<<7 | 0x12, - 24687 - 19968: jis0208<<14 | 0x21<<7 | 0x08, - 24688 - 19968: jis0208<<14 | 0x12<<7 | 0x45, - 24689 - 19968: jis0212<<14 | 0x1C<<7 | 0x49, - 24693 - 19968: jis0208<<14 | 0x16<<7 | 0x22, - 24695 - 19968: jis0208<<14 | 0x36<<7 | 0x4D, - 24702 - 19968: jis0212<<14 | 0x1C<<7 | 0x4A, - 24703 - 19968: jis0212<<14 | 0x1C<<7 | 0x4B, - 24705 - 19968: jis0208<<14 | 0x36<<7 | 0x59, - 24706 - 19968: jis0212<<14 | 0x1C<<7 | 0x4C, - 24707 - 19968: jis0208<<14 | 0x36<<7 | 0x5C, - 24708 - 19968: jis0208<<14 | 0x37<<7 | 0x00, - 24709 - 19968: jis0208<<14 | 0x59<<7 | 0x02, - 24710 - 19968: jis0212<<14 | 0x1C<<7 | 0x4D, - 24712 - 19968: jis0212<<14 | 0x1C<<7 | 0x4E, - 24713 - 19968: jis0208<<14 | 0x1B<<7 | 0x1C, - 24714 - 19968: jis0208<<14 | 0x59<<7 | 0x03, - 24715 - 19968: jis0208<<14 | 0x37<<7 | 0x06, - 24716 - 19968: jis0208<<14 | 0x23<<7 | 0x4F, - 24717 - 19968: jis0208<<14 | 0x36<<7 | 0x5A, - 24718 - 19968: jis0212<<14 | 0x1C<<7 | 0x50, - 24721 - 19968: jis0212<<14 | 0x1C<<7 | 0x51, - 24722 - 19968: jis0208<<14 | 0x37<<7 | 0x04, - 24723 - 19968: jis0212<<14 | 0x1C<<7 | 0x52, - 24724 - 19968: jis0208<<14 | 0x11<<7 | 0x58, - 24725 - 19968: jis0212<<14 | 0x1C<<7 | 0x53, - 24726 - 19968: jis0208<<14 | 0x37<<7 | 0x02, - 24727 - 19968: jis0208<<14 | 0x37<<7 | 0x03, - 24728 - 19968: jis0212<<14 | 0x1C<<7 | 0x54, - 24730 - 19968: jis0208<<14 | 0x36<<7 | 0x5D, - 24731 - 19968: jis0208<<14 | 0x37<<7 | 0x01, - 24733 - 19968: jis0212<<14 | 0x1C<<7 | 0x55, - 24734 - 19968: jis0212<<14 | 0x1C<<7 | 0x56, - 24735 - 19968: jis0208<<14 | 0x17<<7 | 0x46, - 24736 - 19968: jis0208<<14 | 0x2C<<7 | 0x09, - 24738 - 19968: jis0212<<14 | 0x1C<<7 | 0x57, - 24739 - 19968: jis0208<<14 | 0x13<<7 | 0x14, - 24740 - 19968: jis0212<<14 | 0x1C<<7 | 0x58, - 24741 - 19968: jis0212<<14 | 0x1C<<7 | 0x59, - 24742 - 19968: jis0208<<14 | 0x10<<7 | 0x38, - 24743 - 19968: jis0208<<14 | 0x37<<7 | 0x05, - 24744 - 19968: jis0212<<14 | 0x1C<<7 | 0x5A, - 24745 - 19968: jis0208<<14 | 0x26<<7 | 0x19, - 24746 - 19968: jis0208<<14 | 0x0F<<7 | 0x0C, - 24752 - 19968: jis0212<<14 | 0x1C<<7 | 0x5B, - 24753 - 19968: jis0212<<14 | 0x1C<<7 | 0x5C, - 24754 - 19968: jis0208<<14 | 0x27<<7 | 0x40, - 24755 - 19968: jis0208<<14 | 0x36<<7 | 0x3B, - 24756 - 19968: jis0208<<14 | 0x37<<7 | 0x0B, - 24757 - 19968: jis0208<<14 | 0x37<<7 | 0x0F, - 24758 - 19968: jis0208<<14 | 0x2B<<7 | 0x44, - 24759 - 19968: jis0212<<14 | 0x1C<<7 | 0x5D, - 24760 - 19968: jis0208<<14 | 0x37<<7 | 0x08, - 24763 - 19968: jis0212<<14 | 0x1D<<7 | 0x00, - 24764 - 19968: jis0208<<14 | 0x24<<7 | 0x48, - 24765 - 19968: jis0208<<14 | 0x37<<7 | 0x0D, - 24766 - 19968: jis0212<<14 | 0x1D<<7 | 0x01, - 24770 - 19968: jis0212<<14 | 0x1D<<7 | 0x02, - 24772 - 19968: jis0212<<14 | 0x1D<<7 | 0x03, - 24773 - 19968: jis0208<<14 | 0x1D<<7 | 0x4F, - 24774 - 19968: jis0208<<14 | 0x37<<7 | 0x0E, - 24775 - 19968: jis0208<<14 | 0x25<<7 | 0x36, - 24776 - 19968: jis0212<<14 | 0x1D<<7 | 0x04, - 24777 - 19968: jis0212<<14 | 0x1D<<7 | 0x05, - 24778 - 19968: jis0212<<14 | 0x1D<<7 | 0x06, - 24779 - 19968: jis0212<<14 | 0x1D<<7 | 0x07, - 24782 - 19968: jis0212<<14 | 0x1D<<7 | 0x08, - 24783 - 19968: jis0212<<14 | 0x1D<<7 | 0x09, - 24785 - 19968: jis0208<<14 | 0x2E<<7 | 0x26, - 24787 - 19968: jis0208<<14 | 0x37<<7 | 0x0A, - 24788 - 19968: jis0212<<14 | 0x1D<<7 | 0x0A, - 24789 - 19968: jis0208<<14 | 0x59<<7 | 0x05, - 24792 - 19968: jis0208<<14 | 0x37<<7 | 0x10, - 24793 - 19968: jis0212<<14 | 0x1D<<7 | 0x0C, - 24794 - 19968: jis0208<<14 | 0x18<<7 | 0x5A, - 24795 - 19968: jis0212<<14 | 0x1D<<7 | 0x0D, - 24796 - 19968: jis0208<<14 | 0x1F<<7 | 0x2A, - 24797 - 19968: jis0212<<14 | 0x1D<<7 | 0x0E, - 24798 - 19968: jis0208<<14 | 0x59<<7 | 0x04, - 24799 - 19968: jis0208<<14 | 0x0F<<7 | 0x33, - 24800 - 19968: jis0208<<14 | 0x37<<7 | 0x09, - 24801 - 19968: jis0208<<14 | 0x37<<7 | 0x07, - 24802 - 19968: jis0212<<14 | 0x1D<<7 | 0x10, - 24803 - 19968: jis0208<<14 | 0x20<<7 | 0x39, - 24805 - 19968: jis0212<<14 | 0x1D<<7 | 0x11, - 24807 - 19968: jis0208<<14 | 0x36<<7 | 0x5B, - 24808 - 19968: jis0208<<14 | 0x1A<<7 | 0x13, - 24816 - 19968: jis0208<<14 | 0x21<<7 | 0x25, - 24817 - 19968: jis0208<<14 | 0x37<<7 | 0x1C, - 24818 - 19968: jis0208<<14 | 0x59<<7 | 0x07, - 24819 - 19968: jis0208<<14 | 0x20<<7 | 0x3A, - 24820 - 19968: jis0208<<14 | 0x37<<7 | 0x17, - 24821 - 19968: jis0212<<14 | 0x1D<<7 | 0x13, - 24822 - 19968: jis0208<<14 | 0x37<<7 | 0x14, - 24823 - 19968: jis0208<<14 | 0x37<<7 | 0x15, - 24824 - 19968: jis0212<<14 | 0x1D<<7 | 0x14, - 24825 - 19968: jis0208<<14 | 0x1B<<7 | 0x45, - 24826 - 19968: jis0208<<14 | 0x37<<7 | 0x18, - 24827 - 19968: jis0208<<14 | 0x37<<7 | 0x1B, - 24828 - 19968: jis0212<<14 | 0x1D<<7 | 0x15, - 24829 - 19968: jis0212<<14 | 0x1D<<7 | 0x16, - 24832 - 19968: jis0208<<14 | 0x37<<7 | 0x16, - 24833 - 19968: jis0208<<14 | 0x1C<<7 | 0x04, - 24834 - 19968: jis0212<<14 | 0x1D<<7 | 0x17, - 24835 - 19968: jis0208<<14 | 0x37<<7 | 0x19, - 24838 - 19968: jis0208<<14 | 0x37<<7 | 0x13, - 24839 - 19968: jis0212<<14 | 0x1D<<7 | 0x18, - 24840 - 19968: jis0208<<14 | 0x2B<<7 | 0x5B, - 24841 - 19968: jis0208<<14 | 0x2B<<7 | 0x5A, - 24842 - 19968: jis0212<<14 | 0x1D<<7 | 0x19, - 24844 - 19968: jis0212<<14 | 0x1D<<7 | 0x1A, - 24845 - 19968: jis0208<<14 | 0x37<<7 | 0x1D, - 24846 - 19968: jis0208<<14 | 0x37<<7 | 0x1E, - 24847 - 19968: jis0208<<14 | 0x0F<<7 | 0x34, - 24848 - 19968: jis0212<<14 | 0x1D<<7 | 0x1B, - 24849 - 19968: jis0208<<14 | 0x59<<7 | 0x08, - 24850 - 19968: jis0212<<14 | 0x1D<<7 | 0x1D, - 24851 - 19968: jis0212<<14 | 0x1D<<7 | 0x1E, - 24852 - 19968: jis0212<<14 | 0x1D<<7 | 0x1F, - 24853 - 19968: jis0208<<14 | 0x37<<7 | 0x12, - 24854 - 19968: jis0212<<14 | 0x1D<<7 | 0x20, - 24855 - 19968: jis0212<<14 | 0x1D<<7 | 0x21, - 24857 - 19968: jis0212<<14 | 0x1D<<7 | 0x22, - 24858 - 19968: jis0208<<14 | 0x15<<7 | 0x51, - 24859 - 19968: jis0208<<14 | 0x0F<<7 | 0x05, - 24860 - 19968: jis0212<<14 | 0x1D<<7 | 0x23, - 24862 - 19968: jis0212<<14 | 0x1D<<7 | 0x24, - 24863 - 19968: jis0208<<14 | 0x13<<7 | 0x15, - 24864 - 19968: jis0208<<14 | 0x59<<7 | 0x06, - 24865 - 19968: jis0208<<14 | 0x37<<7 | 0x1A, - 24866 - 19968: jis0212<<14 | 0x1D<<7 | 0x25, - 24871 - 19968: jis0208<<14 | 0x37<<7 | 0x22, - 24872 - 19968: jis0208<<14 | 0x37<<7 | 0x21, - 24874 - 19968: jis0212<<14 | 0x1D<<7 | 0x26, - 24875 - 19968: jis0212<<14 | 0x1D<<7 | 0x27, - 24876 - 19968: jis0208<<14 | 0x37<<7 | 0x26, - 24880 - 19968: jis0208<<14 | 0x59<<7 | 0x0A, - 24881 - 19968: jis0212<<14 | 0x1D<<7 | 0x29, - 24884 - 19968: jis0208<<14 | 0x37<<7 | 0x27, - 24885 - 19968: jis0212<<14 | 0x1D<<7 | 0x2A, - 24886 - 19968: jis0212<<14 | 0x1D<<7 | 0x2B, - 24887 - 19968: jis0208<<14 | 0x59<<7 | 0x09, - 24889 - 19968: jis0212<<14 | 0x1D<<7 | 0x2D, - 24892 - 19968: jis0208<<14 | 0x37<<7 | 0x25, - 24893 - 19968: jis0208<<14 | 0x37<<7 | 0x28, - 24894 - 19968: jis0208<<14 | 0x37<<7 | 0x20, - 24895 - 19968: jis0208<<14 | 0x37<<7 | 0x24, - 24897 - 19968: jis0212<<14 | 0x1D<<7 | 0x2E, - 24898 - 19968: jis0208<<14 | 0x37<<7 | 0x29, - 24900 - 19968: jis0208<<14 | 0x37<<7 | 0x2A, - 24901 - 19968: jis0212<<14 | 0x1D<<7 | 0x2F, - 24902 - 19968: jis0212<<14 | 0x1D<<7 | 0x30, - 24903 - 19968: jis0208<<14 | 0x37<<7 | 0x1F, - 24904 - 19968: jis0208<<14 | 0x1A<<7 | 0x5B, - 24905 - 19968: jis0212<<14 | 0x1D<<7 | 0x31, - 24906 - 19968: jis0208<<14 | 0x37<<7 | 0x23, - 24907 - 19968: jis0208<<14 | 0x21<<7 | 0x35, - 24908 - 19968: jis0208<<14 | 0x18<<7 | 0x11, - 24909 - 19968: jis0208<<14 | 0x37<<7 | 0x11, - 24910 - 19968: jis0208<<14 | 0x1E<<7 | 0x14, - 24915 - 19968: jis0208<<14 | 0x37<<7 | 0x37, - 24917 - 19968: jis0208<<14 | 0x29<<7 | 0x48, - 24920 - 19968: jis0208<<14 | 0x37<<7 | 0x2D, - 24921 - 19968: jis0208<<14 | 0x37<<7 | 0x2E, - 24922 - 19968: jis0208<<14 | 0x37<<7 | 0x2F, - 24925 - 19968: jis0208<<14 | 0x37<<7 | 0x36, - 24926 - 19968: jis0212<<14 | 0x1D<<7 | 0x32, - 24927 - 19968: jis0208<<14 | 0x37<<7 | 0x35, - 24928 - 19968: jis0212<<14 | 0x1D<<7 | 0x33, - 24930 - 19968: jis0208<<14 | 0x2A<<7 | 0x5C, - 24931 - 19968: jis0208<<14 | 0x13<<7 | 0x16, - 24933 - 19968: jis0208<<14 | 0x37<<7 | 0x33, - 24935 - 19968: jis0208<<14 | 0x16<<7 | 0x24, - 24936 - 19968: jis0208<<14 | 0x12<<7 | 0x13, - 24939 - 19968: jis0208<<14 | 0x37<<7 | 0x30, - 24940 - 19968: jis0212<<14 | 0x1D<<7 | 0x34, - 24942 - 19968: jis0208<<14 | 0x2D<<7 | 0x17, - 24943 - 19968: jis0208<<14 | 0x37<<7 | 0x32, - 24944 - 19968: jis0208<<14 | 0x0F<<7 | 0x35, - 24945 - 19968: jis0208<<14 | 0x37<<7 | 0x34, - 24946 - 19968: jis0212<<14 | 0x1D<<7 | 0x35, - 24947 - 19968: jis0208<<14 | 0x37<<7 | 0x2B, - 24948 - 19968: jis0208<<14 | 0x37<<7 | 0x31, - 24949 - 19968: jis0208<<14 | 0x37<<7 | 0x38, - 24950 - 19968: jis0208<<14 | 0x16<<7 | 0x23, - 24951 - 19968: jis0208<<14 | 0x37<<7 | 0x2C, - 24952 - 19968: jis0212<<14 | 0x1D<<7 | 0x36, - 24955 - 19968: jis0212<<14 | 0x1D<<7 | 0x37, - 24956 - 19968: jis0212<<14 | 0x1D<<7 | 0x38, - 24958 - 19968: jis0208<<14 | 0x2C<<7 | 0x3C, - 24959 - 19968: jis0212<<14 | 0x1D<<7 | 0x39, - 24960 - 19968: jis0212<<14 | 0x1D<<7 | 0x3A, - 24961 - 19968: jis0212<<14 | 0x1D<<7 | 0x3B, - 24962 - 19968: jis0208<<14 | 0x2C<<7 | 0x0A, - 24963 - 19968: jis0212<<14 | 0x1D<<7 | 0x3C, - 24964 - 19968: jis0212<<14 | 0x1D<<7 | 0x3D, - 24967 - 19968: jis0208<<14 | 0x37<<7 | 0x3B, - 24970 - 19968: jis0208<<14 | 0x37<<7 | 0x3F, - 24971 - 19968: jis0212<<14 | 0x1D<<7 | 0x3E, - 24973 - 19968: jis0212<<14 | 0x1D<<7 | 0x3F, - 24974 - 19968: jis0208<<14 | 0x20<<7 | 0x5D, - 24976 - 19968: jis0208<<14 | 0x2D<<7 | 0x58, - 24977 - 19968: jis0208<<14 | 0x37<<7 | 0x40, - 24978 - 19968: jis0212<<14 | 0x1D<<7 | 0x40, - 24979 - 19968: jis0212<<14 | 0x1D<<7 | 0x41, - 24980 - 19968: jis0208<<14 | 0x37<<7 | 0x3D, - 24982 - 19968: jis0208<<14 | 0x37<<7 | 0x3A, - 24983 - 19968: jis0212<<14 | 0x1D<<7 | 0x42, - 24984 - 19968: jis0208<<14 | 0x59<<7 | 0x0B, - 24985 - 19968: jis0208<<14 | 0x37<<7 | 0x39, - 24986 - 19968: jis0208<<14 | 0x37<<7 | 0x3E, - 24988 - 19968: jis0212<<14 | 0x1D<<7 | 0x44, - 24989 - 19968: jis0212<<14 | 0x1D<<7 | 0x45, - 24991 - 19968: jis0212<<14 | 0x1D<<7 | 0x46, - 24992 - 19968: jis0212<<14 | 0x1D<<7 | 0x47, - 24996 - 19968: jis0208<<14 | 0x29<<7 | 0x0F, - 24997 - 19968: jis0212<<14 | 0x1D<<7 | 0x48, - 24999 - 19968: jis0208<<14 | 0x25<<7 | 0x13, - 25000 - 19968: jis0212<<14 | 0x1D<<7 | 0x49, - 25001 - 19968: jis0208<<14 | 0x16<<7 | 0x25, - 25002 - 19968: jis0212<<14 | 0x1D<<7 | 0x4A, - 25003 - 19968: jis0208<<14 | 0x37<<7 | 0x41, - 25004 - 19968: jis0208<<14 | 0x37<<7 | 0x3C, - 25005 - 19968: jis0212<<14 | 0x1D<<7 | 0x4B, - 25006 - 19968: jis0208<<14 | 0x37<<7 | 0x42, - 25010 - 19968: jis0208<<14 | 0x16<<7 | 0x5A, - 25014 - 19968: jis0208<<14 | 0x11<<7 | 0x10, - 25016 - 19968: jis0212<<14 | 0x1D<<7 | 0x4C, - 25017 - 19968: jis0212<<14 | 0x1D<<7 | 0x4D, - 25018 - 19968: jis0208<<14 | 0x37<<7 | 0x4A, - 25020 - 19968: jis0212<<14 | 0x1D<<7 | 0x4E, - 25022 - 19968: jis0208<<14 | 0x13<<7 | 0x17, - 25024 - 19968: jis0212<<14 | 0x1D<<7 | 0x4F, - 25025 - 19968: jis0212<<14 | 0x1D<<7 | 0x50, - 25026 - 19968: jis0212<<14 | 0x1D<<7 | 0x51, - 25027 - 19968: jis0208<<14 | 0x37<<7 | 0x48, - 25030 - 19968: jis0208<<14 | 0x37<<7 | 0x49, - 25031 - 19968: jis0208<<14 | 0x19<<7 | 0x08, - 25032 - 19968: jis0208<<14 | 0x37<<7 | 0x47, - 25033 - 19968: jis0208<<14 | 0x37<<7 | 0x45, - 25034 - 19968: jis0208<<14 | 0x37<<7 | 0x44, - 25035 - 19968: jis0208<<14 | 0x37<<7 | 0x4B, - 25036 - 19968: jis0208<<14 | 0x37<<7 | 0x43, - 25037 - 19968: jis0208<<14 | 0x37<<7 | 0x4D, - 25038 - 19968: jis0212<<14 | 0x1D<<7 | 0x52, - 25039 - 19968: jis0212<<14 | 0x1D<<7 | 0x53, - 25040 - 19968: jis0208<<14 | 0x11<<7 | 0x5A, - 25045 - 19968: jis0212<<14 | 0x1D<<7 | 0x54, - 25052 - 19968: jis0212<<14 | 0x1D<<7 | 0x55, - 25053 - 19968: jis0212<<14 | 0x1D<<7 | 0x56, - 25054 - 19968: jis0212<<14 | 0x1D<<7 | 0x57, - 25055 - 19968: jis0212<<14 | 0x1D<<7 | 0x58, - 25057 - 19968: jis0212<<14 | 0x1D<<7 | 0x59, - 25058 - 19968: jis0212<<14 | 0x1D<<7 | 0x5A, - 25059 - 19968: jis0208<<14 | 0x37<<7 | 0x4F, - 25061 - 19968: jis0212<<14 | 0x1D<<7 | 0x5D, - 25062 - 19968: jis0208<<14 | 0x37<<7 | 0x4E, - 25063 - 19968: jis0212<<14 | 0x1D<<7 | 0x5B, - 25065 - 19968: jis0212<<14 | 0x1D<<7 | 0x5C, - 25068 - 19968: jis0212<<14 | 0x1E<<7 | 0x00, - 25069 - 19968: jis0212<<14 | 0x1E<<7 | 0x01, - 25071 - 19968: jis0212<<14 | 0x1E<<7 | 0x02, - 25074 - 19968: jis0208<<14 | 0x23<<7 | 0x07, - 25076 - 19968: jis0208<<14 | 0x37<<7 | 0x52, - 25078 - 19968: jis0208<<14 | 0x37<<7 | 0x50, - 25079 - 19968: jis0208<<14 | 0x37<<7 | 0x46, - 25080 - 19968: jis0208<<14 | 0x16<<7 | 0x5B, - 25082 - 19968: jis0208<<14 | 0x37<<7 | 0x51, - 25084 - 19968: jis0208<<14 | 0x37<<7 | 0x55, - 25085 - 19968: jis0208<<14 | 0x37<<7 | 0x54, - 25086 - 19968: jis0208<<14 | 0x37<<7 | 0x56, - 25087 - 19968: jis0208<<14 | 0x37<<7 | 0x53, - 25088 - 19968: jis0208<<14 | 0x37<<7 | 0x57, - 25089 - 19968: jis0212<<14 | 0x1E<<7 | 0x03, - 25091 - 19968: jis0212<<14 | 0x1E<<7 | 0x04, - 25092 - 19968: jis0212<<14 | 0x1E<<7 | 0x05, - 25095 - 19968: jis0212<<14 | 0x1E<<7 | 0x06, - 25096 - 19968: jis0208<<14 | 0x37<<7 | 0x58, - 25097 - 19968: jis0208<<14 | 0x37<<7 | 0x59, - 25098 - 19968: jis0208<<14 | 0x29<<7 | 0x49, - 25100 - 19968: jis0208<<14 | 0x37<<7 | 0x5B, - 25101 - 19968: jis0208<<14 | 0x37<<7 | 0x5A, - 25102 - 19968: jis0208<<14 | 0x1C<<7 | 0x1E, - 25104 - 19968: jis0208<<14 | 0x1F<<7 | 0x0D, - 25105 - 19968: jis0208<<14 | 0x11<<7 | 0x45, - 25106 - 19968: jis0208<<14 | 0x11<<7 | 0x5B, - 25107 - 19968: jis0208<<14 | 0x59<<7 | 0x0C, - 25108 - 19968: jis0208<<14 | 0x37<<7 | 0x5C, - 25109 - 19968: jis0212<<14 | 0x1E<<7 | 0x08, - 25110 - 19968: jis0208<<14 | 0x0F<<7 | 0x1E, - 25114 - 19968: jis0208<<14 | 0x1F<<7 | 0x2B, - 25115 - 19968: jis0208<<14 | 0x37<<7 | 0x5D, - 25116 - 19968: jis0212<<14 | 0x1E<<7 | 0x09, - 25117 - 19968: jis0208<<14 | 0x4B<<7 | 0x22, - 25118 - 19968: jis0208<<14 | 0x38<<7 | 0x00, - 25119 - 19968: jis0208<<14 | 0x16<<7 | 0x40, - 25120 - 19968: jis0212<<14 | 0x1E<<7 | 0x0A, - 25121 - 19968: jis0208<<14 | 0x38<<7 | 0x01, - 25122 - 19968: jis0212<<14 | 0x1E<<7 | 0x0B, - 25123 - 19968: jis0212<<14 | 0x1E<<7 | 0x0C, - 25126 - 19968: jis0208<<14 | 0x1F<<7 | 0x4E, - 25127 - 19968: jis0212<<14 | 0x1E<<7 | 0x0D, - 25129 - 19968: jis0212<<14 | 0x1E<<7 | 0x0E, - 25130 - 19968: jis0208<<14 | 0x38<<7 | 0x02, - 25131 - 19968: jis0212<<14 | 0x1E<<7 | 0x0F, - 25134 - 19968: jis0208<<14 | 0x38<<7 | 0x03, - 25135 - 19968: jis0208<<14 | 0x14<<7 | 0x19, - 25136 - 19968: jis0208<<14 | 0x38<<7 | 0x04, - 25138 - 19968: jis0208<<14 | 0x38<<7 | 0x05, - 25139 - 19968: jis0208<<14 | 0x38<<7 | 0x06, - 25140 - 19968: jis0208<<14 | 0x21<<7 | 0x36, - 25144 - 19968: jis0208<<14 | 0x17<<7 | 0x2C, - 25145 - 19968: jis0212<<14 | 0x1E<<7 | 0x10, - 25147 - 19968: jis0208<<14 | 0x2B<<7 | 0x40, - 25149 - 19968: jis0212<<14 | 0x1E<<7 | 0x11, - 25151 - 19968: jis0208<<14 | 0x2A<<7 | 0x1B, - 25152 - 19968: jis0208<<14 | 0x1C<<7 | 0x49, - 25153 - 19968: jis0208<<14 | 0x38<<7 | 0x07, - 25154 - 19968: jis0212<<14 | 0x1E<<7 | 0x12, - 25155 - 19968: jis0212<<14 | 0x1E<<7 | 0x13, - 25156 - 19968: jis0212<<14 | 0x1E<<7 | 0x14, - 25158 - 19968: jis0212<<14 | 0x1E<<7 | 0x15, - 25159 - 19968: jis0208<<14 | 0x1F<<7 | 0x4F, - 25160 - 19968: jis0208<<14 | 0x4D<<7 | 0x1C, - 25161 - 19968: jis0208<<14 | 0x27<<7 | 0x41, - 25163 - 19968: jis0208<<14 | 0x1B<<7 | 0x49, - 25164 - 19968: jis0212<<14 | 0x1E<<7 | 0x16, - 25165 - 19968: jis0208<<14 | 0x19<<7 | 0x2C, - 25166 - 19968: jis0208<<14 | 0x38<<7 | 0x08, - 25168 - 19968: jis0212<<14 | 0x1E<<7 | 0x17, - 25169 - 19968: jis0212<<14 | 0x1E<<7 | 0x18, - 25170 - 19968: jis0212<<14 | 0x1E<<7 | 0x19, - 25171 - 19968: jis0208<<14 | 0x21<<7 | 0x26, - 25172 - 19968: jis0212<<14 | 0x1E<<7 | 0x1A, - 25173 - 19968: jis0208<<14 | 0x29<<7 | 0x06, - 25174 - 19968: jis0212<<14 | 0x1E<<7 | 0x1B, - 25176 - 19968: jis0208<<14 | 0x21<<7 | 0x50, - 25178 - 19968: jis0212<<14 | 0x1E<<7 | 0x1C, - 25179 - 19968: jis0208<<14 | 0x38<<7 | 0x0B, - 25180 - 19968: jis0212<<14 | 0x1E<<7 | 0x1D, - 25182 - 19968: jis0208<<14 | 0x38<<7 | 0x09, - 25184 - 19968: jis0208<<14 | 0x38<<7 | 0x0C, - 25187 - 19968: jis0208<<14 | 0x38<<7 | 0x0A, - 25188 - 19968: jis0212<<14 | 0x1E<<7 | 0x1E, - 25192 - 19968: jis0208<<14 | 0x38<<7 | 0x0D, - 25197 - 19968: jis0212<<14 | 0x1E<<7 | 0x1F, - 25198 - 19968: jis0208<<14 | 0x29<<7 | 0x10, - 25199 - 19968: jis0212<<14 | 0x1E<<7 | 0x20, - 25201 - 19968: jis0208<<14 | 0x0F<<7 | 0x16, - 25203 - 19968: jis0212<<14 | 0x1E<<7 | 0x21, - 25206 - 19968: jis0208<<14 | 0x28<<7 | 0x3D, - 25209 - 19968: jis0208<<14 | 0x27<<7 | 0x42, - 25210 - 19968: jis0212<<14 | 0x1E<<7 | 0x22, - 25212 - 19968: jis0208<<14 | 0x38<<7 | 0x0E, - 25213 - 19968: jis0212<<14 | 0x1E<<7 | 0x23, - 25214 - 19968: jis0208<<14 | 0x38<<7 | 0x11, - 25215 - 19968: jis0208<<14 | 0x1D<<7 | 0x14, - 25216 - 19968: jis0208<<14 | 0x14<<7 | 0x1A, - 25218 - 19968: jis0208<<14 | 0x38<<7 | 0x0F, - 25219 - 19968: jis0208<<14 | 0x38<<7 | 0x16, - 25220 - 19968: jis0208<<14 | 0x1D<<7 | 0x15, - 25225 - 19968: jis0208<<14 | 0x38<<7 | 0x10, - 25226 - 19968: jis0208<<14 | 0x26<<7 | 0x23, - 25229 - 19968: jis0212<<14 | 0x1E<<7 | 0x24, - 25230 - 19968: jis0212<<14 | 0x1E<<7 | 0x25, - 25231 - 19968: jis0212<<14 | 0x1E<<7 | 0x26, - 25232 - 19968: jis0212<<14 | 0x1E<<7 | 0x27, - 25233 - 19968: jis0208<<14 | 0x2C<<7 | 0x3D, - 25234 - 19968: jis0208<<14 | 0x38<<7 | 0x12, - 25235 - 19968: jis0208<<14 | 0x38<<7 | 0x13, - 25236 - 19968: jis0208<<14 | 0x38<<7 | 0x17, - 25237 - 19968: jis0208<<14 | 0x24<<7 | 0x49, - 25238 - 19968: jis0208<<14 | 0x38<<7 | 0x14, - 25239 - 19968: jis0208<<14 | 0x18<<7 | 0x12, - 25240 - 19968: jis0208<<14 | 0x1F<<7 | 0x3D, - 25243 - 19968: jis0208<<14 | 0x38<<7 | 0x25, - 25244 - 19968: jis0208<<14 | 0x27<<7 | 0x13, - 25246 - 19968: jis0208<<14 | 0x21<<7 | 0x51, - 25254 - 19968: jis0208<<14 | 0x59<<7 | 0x0D, - 25256 - 19968: jis0212<<14 | 0x1E<<7 | 0x29, - 25259 - 19968: jis0208<<14 | 0x27<<7 | 0x43, - 25260 - 19968: jis0208<<14 | 0x39<<7 | 0x0C, - 25265 - 19968: jis0208<<14 | 0x29<<7 | 0x59, - 25267 - 19968: jis0212<<14 | 0x1E<<7 | 0x2A, - 25269 - 19968: jis0208<<14 | 0x23<<7 | 0x50, - 25270 - 19968: jis0212<<14 | 0x1E<<7 | 0x2B, - 25271 - 19968: jis0212<<14 | 0x1E<<7 | 0x2C, - 25273 - 19968: jis0208<<14 | 0x2A<<7 | 0x54, - 25274 - 19968: jis0212<<14 | 0x1E<<7 | 0x2D, - 25275 - 19968: jis0208<<14 | 0x38<<7 | 0x1A, - 25276 - 19968: jis0208<<14 | 0x11<<7 | 0x00, - 25277 - 19968: jis0208<<14 | 0x22<<7 | 0x49, - 25278 - 19968: jis0212<<14 | 0x1E<<7 | 0x2E, - 25279 - 19968: jis0212<<14 | 0x1E<<7 | 0x2F, - 25282 - 19968: jis0208<<14 | 0x38<<7 | 0x23, - 25284 - 19968: jis0212<<14 | 0x1E<<7 | 0x30, - 25285 - 19968: jis0208<<14 | 0x22<<7 | 0x13, - 25286 - 19968: jis0208<<14 | 0x38<<7 | 0x1D, - 25287 - 19968: jis0208<<14 | 0x38<<7 | 0x24, - 25288 - 19968: jis0208<<14 | 0x38<<7 | 0x1F, - 25289 - 19968: jis0208<<14 | 0x38<<7 | 0x26, - 25290 - 19968: jis0208<<14 | 0x38<<7 | 0x22, - 25292 - 19968: jis0208<<14 | 0x38<<7 | 0x21, - 25293 - 19968: jis0208<<14 | 0x26<<7 | 0x4E, - 25294 - 19968: jis0212<<14 | 0x1E<<7 | 0x31, - 25295 - 19968: jis0208<<14 | 0x38<<7 | 0x1B, - 25296 - 19968: jis0208<<14 | 0x11<<7 | 0x5C, - 25297 - 19968: jis0208<<14 | 0x38<<7 | 0x19, - 25298 - 19968: jis0208<<14 | 0x14<<7 | 0x50, - 25299 - 19968: jis0208<<14 | 0x21<<7 | 0x52, - 25300 - 19968: jis0208<<14 | 0x38<<7 | 0x15, - 25301 - 19968: jis0212<<14 | 0x1E<<7 | 0x32, - 25302 - 19968: jis0212<<14 | 0x1E<<7 | 0x33, - 25303 - 19968: jis0208<<14 | 0x38<<7 | 0x18, - 25304 - 19968: jis0208<<14 | 0x18<<7 | 0x13, - 25305 - 19968: jis0208<<14 | 0x1F<<7 | 0x3A, - 25306 - 19968: jis0212<<14 | 0x1E<<7 | 0x34, - 25307 - 19968: jis0208<<14 | 0x1D<<7 | 0x16, - 25308 - 19968: jis0208<<14 | 0x38<<7 | 0x20, - 25309 - 19968: jis0208<<14 | 0x26<<7 | 0x31, - 25312 - 19968: jis0208<<14 | 0x14<<7 | 0x51, - 25313 - 19968: jis0208<<14 | 0x12<<7 | 0x27, - 25322 - 19968: jis0212<<14 | 0x1E<<7 | 0x35, - 25324 - 19968: jis0208<<14 | 0x12<<7 | 0x46, - 25325 - 19968: jis0208<<14 | 0x1E<<7 | 0x00, - 25326 - 19968: jis0208<<14 | 0x38<<7 | 0x28, - 25327 - 19968: jis0208<<14 | 0x38<<7 | 0x2D, - 25329 - 19968: jis0208<<14 | 0x38<<7 | 0x29, - 25330 - 19968: jis0212<<14 | 0x1E<<7 | 0x36, - 25331 - 19968: jis0208<<14 | 0x16<<7 | 0x5C, - 25332 - 19968: jis0212<<14 | 0x1E<<7 | 0x37, - 25333 - 19968: jis0208<<14 | 0x38<<7 | 0x2E, - 25334 - 19968: jis0208<<14 | 0x1A<<7 | 0x01, - 25335 - 19968: jis0208<<14 | 0x18<<7 | 0x48, - 25340 - 19968: jis0212<<14 | 0x1E<<7 | 0x38, - 25341 - 19968: jis0212<<14 | 0x1E<<7 | 0x39, - 25342 - 19968: jis0208<<14 | 0x1C<<7 | 0x05, - 25343 - 19968: jis0208<<14 | 0x38<<7 | 0x1C, - 25345 - 19968: jis0208<<14 | 0x1A<<7 | 0x5C, - 25346 - 19968: jis0208<<14 | 0x38<<7 | 0x2B, - 25347 - 19968: jis0212<<14 | 0x1E<<7 | 0x3A, - 25348 - 19968: jis0212<<14 | 0x1E<<7 | 0x3B, - 25351 - 19968: jis0208<<14 | 0x1A<<7 | 0x37, - 25352 - 19968: jis0208<<14 | 0x38<<7 | 0x2C, - 25353 - 19968: jis0208<<14 | 0x0F<<7 | 0x23, - 25354 - 19968: jis0212<<14 | 0x1E<<7 | 0x3C, - 25355 - 19968: jis0212<<14 | 0x1E<<7 | 0x3D, - 25356 - 19968: jis0208<<14 | 0x38<<7 | 0x27, - 25357 - 19968: jis0212<<14 | 0x1E<<7 | 0x3E, - 25360 - 19968: jis0212<<14 | 0x1E<<7 | 0x3F, - 25361 - 19968: jis0208<<14 | 0x23<<7 | 0x08, - 25363 - 19968: jis0212<<14 | 0x1E<<7 | 0x40, - 25366 - 19968: jis0212<<14 | 0x1E<<7 | 0x41, - 25368 - 19968: jis0212<<14 | 0x1E<<7 | 0x42, - 25369 - 19968: jis0208<<14 | 0x14<<7 | 0x52, - 25375 - 19968: jis0208<<14 | 0x15<<7 | 0x13, - 25383 - 19968: jis0208<<14 | 0x38<<7 | 0x2A, - 25384 - 19968: jis0208<<14 | 0x0F<<7 | 0x06, - 25385 - 19968: jis0212<<14 | 0x1E<<7 | 0x43, - 25386 - 19968: jis0212<<14 | 0x1E<<7 | 0x44, - 25387 - 19968: jis0208<<14 | 0x19<<7 | 0x22, - 25389 - 19968: jis0212<<14 | 0x1E<<7 | 0x45, - 25391 - 19968: jis0208<<14 | 0x1E<<7 | 0x15, - 25397 - 19968: jis0212<<14 | 0x1E<<7 | 0x46, - 25398 - 19968: jis0212<<14 | 0x1E<<7 | 0x47, - 25401 - 19968: jis0212<<14 | 0x1E<<7 | 0x48, - 25402 - 19968: jis0208<<14 | 0x23<<7 | 0x51, - 25404 - 19968: jis0212<<14 | 0x1E<<7 | 0x49, - 25405 - 19968: jis0208<<14 | 0x27<<7 | 0x33, - 25406 - 19968: jis0208<<14 | 0x38<<7 | 0x30, - 25407 - 19968: jis0208<<14 | 0x20<<7 | 0x3D, - 25409 - 19968: jis0212<<14 | 0x1E<<7 | 0x4A, - 25410 - 19968: jis0212<<14 | 0x1E<<7 | 0x4B, - 25411 - 19968: jis0212<<14 | 0x1E<<7 | 0x4C, - 25412 - 19968: jis0212<<14 | 0x1E<<7 | 0x4D, - 25414 - 19968: jis0212<<14 | 0x1E<<7 | 0x4E, - 25417 - 19968: jis0208<<14 | 0x21<<7 | 0x09, - 25418 - 19968: jis0212<<14 | 0x1E<<7 | 0x4F, - 25419 - 19968: jis0212<<14 | 0x1E<<7 | 0x50, - 25420 - 19968: jis0208<<14 | 0x1A<<7 | 0x0A, - 25421 - 19968: jis0208<<14 | 0x38<<7 | 0x31, - 25422 - 19968: jis0212<<14 | 0x1E<<7 | 0x51, - 25423 - 19968: jis0208<<14 | 0x38<<7 | 0x33, - 25424 - 19968: jis0208<<14 | 0x38<<7 | 0x2F, - 25426 - 19968: jis0212<<14 | 0x1E<<7 | 0x52, - 25427 - 19968: jis0212<<14 | 0x1E<<7 | 0x53, - 25428 - 19968: jis0212<<14 | 0x1E<<7 | 0x54, - 25429 - 19968: jis0208<<14 | 0x29<<7 | 0x40, - 25431 - 19968: jis0208<<14 | 0x23<<7 | 0x1C, - 25432 - 19968: jis0212<<14 | 0x1E<<7 | 0x55, - 25435 - 19968: jis0212<<14 | 0x1E<<7 | 0x56, - 25436 - 19968: jis0208<<14 | 0x20<<7 | 0x3B, - 25445 - 19968: jis0212<<14 | 0x1E<<7 | 0x57, - 25446 - 19968: jis0212<<14 | 0x1E<<7 | 0x58, - 25447 - 19968: jis0208<<14 | 0x29<<7 | 0x5A, - 25448 - 19968: jis0208<<14 | 0x1B<<7 | 0x2D, - 25449 - 19968: jis0208<<14 | 0x38<<7 | 0x3F, - 25451 - 19968: jis0208<<14 | 0x38<<7 | 0x3E, - 25452 - 19968: jis0212<<14 | 0x1E<<7 | 0x59, - 25453 - 19968: jis0212<<14 | 0x1E<<7 | 0x5A, - 25454 - 19968: jis0208<<14 | 0x1E<<7 | 0x57, - 25457 - 19968: jis0212<<14 | 0x1E<<7 | 0x5B, - 25458 - 19968: jis0208<<14 | 0x16<<7 | 0x5D, - 25460 - 19968: jis0212<<14 | 0x1E<<7 | 0x5C, - 25461 - 19968: jis0212<<14 | 0x1E<<7 | 0x5D, - 25462 - 19968: jis0208<<14 | 0x38<<7 | 0x38, - 25463 - 19968: jis0208<<14 | 0x1D<<7 | 0x18, - 25464 - 19968: jis0212<<14 | 0x1F<<7 | 0x00, - 25466 - 19968: jis0208<<14 | 0x25<<7 | 0x47, - 25467 - 19968: jis0208<<14 | 0x26<<7 | 0x10, - 25468 - 19968: jis0212<<14 | 0x1F<<7 | 0x01, - 25469 - 19968: jis0212<<14 | 0x1F<<7 | 0x02, - 25471 - 19968: jis0212<<14 | 0x1F<<7 | 0x03, - 25472 - 19968: jis0208<<14 | 0x38<<7 | 0x36, - 25474 - 19968: jis0212<<14 | 0x1F<<7 | 0x04, - 25475 - 19968: jis0208<<14 | 0x20<<7 | 0x3C, - 25476 - 19968: jis0212<<14 | 0x1F<<7 | 0x05, - 25479 - 19968: jis0212<<14 | 0x1F<<7 | 0x06, - 25480 - 19968: jis0208<<14 | 0x1B<<7 | 0x57, - 25481 - 19968: jis0208<<14 | 0x38<<7 | 0x3B, - 25482 - 19968: jis0212<<14 | 0x1F<<7 | 0x07, - 25484 - 19968: jis0208<<14 | 0x1D<<7 | 0x17, - 25486 - 19968: jis0208<<14 | 0x38<<7 | 0x35, - 25487 - 19968: jis0208<<14 | 0x38<<7 | 0x3A, - 25488 - 19968: jis0212<<14 | 0x1F<<7 | 0x08, - 25490 - 19968: jis0208<<14 | 0x26<<7 | 0x32, - 25492 - 19968: jis0212<<14 | 0x1F<<7 | 0x09, - 25493 - 19968: jis0212<<14 | 0x1F<<7 | 0x0A, - 25494 - 19968: jis0208<<14 | 0x38<<7 | 0x34, - 25496 - 19968: jis0208<<14 | 0x16<<7 | 0x00, - 25497 - 19968: jis0212<<14 | 0x1F<<7 | 0x0B, - 25498 - 19968: jis0212<<14 | 0x1F<<7 | 0x0C, - 25499 - 19968: jis0208<<14 | 0x12<<7 | 0x3C, - 25502 - 19968: jis0212<<14 | 0x1F<<7 | 0x0D, - 25503 - 19968: jis0208<<14 | 0x38<<7 | 0x3C, - 25504 - 19968: jis0208<<14 | 0x2D<<7 | 0x0A, - 25505 - 19968: jis0208<<14 | 0x19<<7 | 0x2D, - 25506 - 19968: jis0208<<14 | 0x22<<7 | 0x14, - 25507 - 19968: jis0208<<14 | 0x38<<7 | 0x39, - 25508 - 19968: jis0212<<14 | 0x1F<<7 | 0x0E, - 25509 - 19968: jis0208<<14 | 0x1F<<7 | 0x3B, - 25510 - 19968: jis0212<<14 | 0x1F<<7 | 0x0F, - 25511 - 19968: jis0208<<14 | 0x18<<7 | 0x14, - 25512 - 19968: jis0208<<14 | 0x1E<<7 | 0x43, - 25513 - 19968: jis0208<<14 | 0x10<<7 | 0x45, - 25514 - 19968: jis0208<<14 | 0x20<<7 | 0x1B, - 25515 - 19968: jis0208<<14 | 0x38<<7 | 0x37, - 25516 - 19968: jis0208<<14 | 0x14<<7 | 0x24, - 25517 - 19968: jis0212<<14 | 0x1F<<7 | 0x10, - 25518 - 19968: jis0212<<14 | 0x1F<<7 | 0x11, - 25519 - 19968: jis0212<<14 | 0x1F<<7 | 0x12, - 25522 - 19968: jis0208<<14 | 0x16<<7 | 0x26, - 25524 - 19968: jis0208<<14 | 0x23<<7 | 0x2E, - 25525 - 19968: jis0208<<14 | 0x38<<7 | 0x3D, - 25531 - 19968: jis0208<<14 | 0x20<<7 | 0x3E, - 25533 - 19968: jis0212<<14 | 0x1F<<7 | 0x13, - 25534 - 19968: jis0208<<14 | 0x38<<7 | 0x40, - 25536 - 19968: jis0208<<14 | 0x38<<7 | 0x42, - 25537 - 19968: jis0212<<14 | 0x1F<<7 | 0x14, - 25539 - 19968: jis0208<<14 | 0x21<<7 | 0x16, - 25540 - 19968: jis0208<<14 | 0x38<<7 | 0x48, - 25541 - 19968: jis0212<<14 | 0x1F<<7 | 0x15, - 25542 - 19968: jis0208<<14 | 0x38<<7 | 0x43, - 25544 - 19968: jis0212<<14 | 0x1F<<7 | 0x16, - 25545 - 19968: jis0208<<14 | 0x38<<7 | 0x45, - 25550 - 19968: jis0212<<14 | 0x1F<<7 | 0x17, - 25551 - 19968: jis0208<<14 | 0x28<<7 | 0x20, - 25552 - 19968: jis0208<<14 | 0x23<<7 | 0x52, - 25553 - 19968: jis0212<<14 | 0x1F<<7 | 0x18, - 25554 - 19968: jis0208<<14 | 0x38<<7 | 0x46, - 25555 - 19968: jis0212<<14 | 0x1F<<7 | 0x19, - 25556 - 19968: jis0212<<14 | 0x1F<<7 | 0x1A, - 25557 - 19968: jis0212<<14 | 0x1F<<7 | 0x1B, - 25558 - 19968: jis0208<<14 | 0x2C<<7 | 0x0B, - 25562 - 19968: jis0208<<14 | 0x2C<<7 | 0x27, - 25563 - 19968: jis0208<<14 | 0x13<<7 | 0x18, - 25564 - 19968: jis0212<<14 | 0x1F<<7 | 0x1C, - 25568 - 19968: jis0212<<14 | 0x1F<<7 | 0x1D, - 25569 - 19968: jis0208<<14 | 0x0F<<7 | 0x0D, - 25571 - 19968: jis0208<<14 | 0x38<<7 | 0x44, - 25573 - 19968: jis0212<<14 | 0x1F<<7 | 0x1E, - 25577 - 19968: jis0208<<14 | 0x38<<7 | 0x41, - 25578 - 19968: jis0212<<14 | 0x1F<<7 | 0x1F, - 25580 - 19968: jis0212<<14 | 0x1F<<7 | 0x20, - 25582 - 19968: jis0208<<14 | 0x13<<7 | 0x57, - 25586 - 19968: jis0212<<14 | 0x1F<<7 | 0x21, - 25587 - 19968: jis0212<<14 | 0x1F<<7 | 0x22, - 25588 - 19968: jis0208<<14 | 0x10<<7 | 0x46, - 25589 - 19968: jis0208<<14 | 0x59<<7 | 0x0E, - 25590 - 19968: jis0208<<14 | 0x38<<7 | 0x47, - 25592 - 19968: jis0212<<14 | 0x1F<<7 | 0x24, - 25593 - 19968: jis0212<<14 | 0x1F<<7 | 0x25, - 25594 - 19968: jis0208<<14 | 0x2C<<7 | 0x28, - 25606 - 19968: jis0208<<14 | 0x38<<7 | 0x4B, - 25609 - 19968: jis0212<<14 | 0x1F<<7 | 0x26, - 25610 - 19968: jis0212<<14 | 0x1F<<7 | 0x27, - 25613 - 19968: jis0208<<14 | 0x21<<7 | 0x1A, - 25615 - 19968: jis0208<<14 | 0x38<<7 | 0x52, - 25616 - 19968: jis0212<<14 | 0x1F<<7 | 0x28, - 25618 - 19968: jis0212<<14 | 0x1F<<7 | 0x29, - 25619 - 19968: jis0208<<14 | 0x38<<7 | 0x4C, - 25620 - 19968: jis0212<<14 | 0x1F<<7 | 0x2A, - 25622 - 19968: jis0208<<14 | 0x38<<7 | 0x49, - 25623 - 19968: jis0208<<14 | 0x38<<7 | 0x50, - 25624 - 19968: jis0212<<14 | 0x1F<<7 | 0x2B, - 25628 - 19968: jis0208<<14 | 0x38<<7 | 0x32, - 25630 - 19968: jis0212<<14 | 0x1F<<7 | 0x2C, - 25632 - 19968: jis0212<<14 | 0x1F<<7 | 0x2D, - 25634 - 19968: jis0212<<14 | 0x1F<<7 | 0x2E, - 25636 - 19968: jis0212<<14 | 0x1F<<7 | 0x2F, - 25637 - 19968: jis0212<<14 | 0x1F<<7 | 0x30, - 25638 - 19968: jis0208<<14 | 0x38<<7 | 0x4D, - 25640 - 19968: jis0208<<14 | 0x38<<7 | 0x51, - 25641 - 19968: jis0212<<14 | 0x1F<<7 | 0x31, - 25642 - 19968: jis0212<<14 | 0x1F<<7 | 0x32, - 25644 - 19968: jis0208<<14 | 0x27<<7 | 0x21, - 25645 - 19968: jis0208<<14 | 0x24<<7 | 0x4A, - 25647 - 19968: jis0212<<14 | 0x1F<<7 | 0x33, - 25648 - 19968: jis0212<<14 | 0x1F<<7 | 0x34, - 25652 - 19968: jis0208<<14 | 0x38<<7 | 0x4A, - 25653 - 19968: jis0212<<14 | 0x1F<<7 | 0x35, - 25654 - 19968: jis0208<<14 | 0x38<<7 | 0x4E, - 25658 - 19968: jis0208<<14 | 0x16<<7 | 0x27, - 25661 - 19968: jis0212<<14 | 0x1F<<7 | 0x36, - 25662 - 19968: jis0208<<14 | 0x19<<7 | 0x50, - 25663 - 19968: jis0212<<14 | 0x1F<<7 | 0x37, - 25666 - 19968: jis0208<<14 | 0x1F<<7 | 0x3C, - 25675 - 19968: jis0212<<14 | 0x1F<<7 | 0x38, - 25678 - 19968: jis0208<<14 | 0x38<<7 | 0x56, - 25679 - 19968: jis0212<<14 | 0x1F<<7 | 0x39, - 25681 - 19968: jis0212<<14 | 0x1F<<7 | 0x3A, - 25682 - 19968: jis0212<<14 | 0x1F<<7 | 0x3B, - 25683 - 19968: jis0212<<14 | 0x1F<<7 | 0x3C, - 25684 - 19968: jis0212<<14 | 0x1F<<7 | 0x3D, - 25688 - 19968: jis0208<<14 | 0x24<<7 | 0x05, - 25690 - 19968: jis0212<<14 | 0x1F<<7 | 0x3E, - 25691 - 19968: jis0212<<14 | 0x1F<<7 | 0x3F, - 25692 - 19968: jis0212<<14 | 0x1F<<7 | 0x40, - 25693 - 19968: jis0212<<14 | 0x1F<<7 | 0x41, - 25695 - 19968: jis0212<<14 | 0x1F<<7 | 0x42, - 25696 - 19968: jis0208<<14 | 0x59<<7 | 0x0F, - 25697 - 19968: jis0212<<14 | 0x1F<<7 | 0x44, - 25699 - 19968: jis0212<<14 | 0x1F<<7 | 0x45, - 25703 - 19968: jis0208<<14 | 0x38<<7 | 0x53, - 25705 - 19968: jis0208<<14 | 0x2A<<7 | 0x3F, - 25709 - 19968: jis0212<<14 | 0x1F<<7 | 0x46, - 25711 - 19968: jis0208<<14 | 0x38<<7 | 0x54, - 25715 - 19968: jis0212<<14 | 0x1F<<7 | 0x47, - 25716 - 19968: jis0212<<14 | 0x1F<<7 | 0x48, - 25718 - 19968: jis0208<<14 | 0x38<<7 | 0x55, - 25720 - 19968: jis0208<<14 | 0x2B<<7 | 0x2D, - 25722 - 19968: jis0208<<14 | 0x1F<<7 | 0x01, - 25723 - 19968: jis0212<<14 | 0x1F<<7 | 0x49, - 25725 - 19968: jis0212<<14 | 0x1F<<7 | 0x4A, - 25731 - 19968: jis0208<<14 | 0x16<<7 | 0x41, - 25733 - 19968: jis0212<<14 | 0x1F<<7 | 0x4B, - 25735 - 19968: jis0212<<14 | 0x1F<<7 | 0x4C, - 25736 - 19968: jis0208<<14 | 0x38<<7 | 0x5C, - 25743 - 19968: jis0212<<14 | 0x1F<<7 | 0x4D, - 25744 - 19968: jis0212<<14 | 0x1F<<7 | 0x4E, - 25745 - 19968: jis0212<<14 | 0x1F<<7 | 0x4F, - 25746 - 19968: jis0208<<14 | 0x1A<<7 | 0x14, - 25747 - 19968: jis0208<<14 | 0x38<<7 | 0x59, - 25749 - 19968: jis0208<<14 | 0x38<<7 | 0x58, - 25752 - 19968: jis0212<<14 | 0x1F<<7 | 0x50, - 25753 - 19968: jis0212<<14 | 0x1F<<7 | 0x51, - 25754 - 19968: jis0208<<14 | 0x26<<7 | 0x11, - 25755 - 19968: jis0212<<14 | 0x1F<<7 | 0x52, - 25757 - 19968: jis0208<<14 | 0x59<<7 | 0x10, - 25758 - 19968: jis0208<<14 | 0x25<<7 | 0x14, - 25759 - 19968: jis0212<<14 | 0x1F<<7 | 0x54, - 25761 - 19968: jis0212<<14 | 0x1F<<7 | 0x55, - 25763 - 19968: jis0212<<14 | 0x1F<<7 | 0x56, - 25764 - 19968: jis0208<<14 | 0x24<<7 | 0x10, - 25765 - 19968: jis0208<<14 | 0x38<<7 | 0x5A, - 25766 - 19968: jis0212<<14 | 0x1F<<7 | 0x57, - 25768 - 19968: jis0212<<14 | 0x1F<<7 | 0x58, - 25769 - 19968: jis0208<<14 | 0x38<<7 | 0x5B, - 25771 - 19968: jis0208<<14 | 0x28<<7 | 0x4E, - 25772 - 19968: jis0212<<14 | 0x1F<<7 | 0x59, - 25773 - 19968: jis0208<<14 | 0x26<<7 | 0x24, - 25774 - 19968: jis0208<<14 | 0x1A<<7 | 0x02, - 25776 - 19968: jis0208<<14 | 0x1F<<7 | 0x50, - 25778 - 19968: jis0208<<14 | 0x2A<<7 | 0x2F, - 25779 - 19968: jis0212<<14 | 0x1F<<7 | 0x5A, - 25785 - 19968: jis0208<<14 | 0x12<<7 | 0x28, - 25787 - 19968: jis0208<<14 | 0x39<<7 | 0x04, - 25788 - 19968: jis0208<<14 | 0x38<<7 | 0x5D, - 25789 - 19968: jis0212<<14 | 0x1F<<7 | 0x5B, - 25790 - 19968: jis0212<<14 | 0x1F<<7 | 0x5C, - 25791 - 19968: jis0212<<14 | 0x1F<<7 | 0x5D, - 25793 - 19968: jis0208<<14 | 0x2C<<7 | 0x29, - 25794 - 19968: jis0208<<14 | 0x39<<7 | 0x06, - 25796 - 19968: jis0212<<14 | 0x20<<7 | 0x00, - 25797 - 19968: jis0208<<14 | 0x39<<7 | 0x02, - 25799 - 19968: jis0208<<14 | 0x39<<7 | 0x03, - 25801 - 19968: jis0212<<14 | 0x20<<7 | 0x01, - 25802 - 19968: jis0212<<14 | 0x20<<7 | 0x02, - 25803 - 19968: jis0212<<14 | 0x20<<7 | 0x03, - 25804 - 19968: jis0212<<14 | 0x20<<7 | 0x04, - 25805 - 19968: jis0208<<14 | 0x20<<7 | 0x3F, - 25806 - 19968: jis0208<<14 | 0x59<<7 | 0x11, - 25808 - 19968: jis0212<<14 | 0x20<<7 | 0x06, - 25809 - 19968: jis0212<<14 | 0x20<<7 | 0x07, - 25810 - 19968: jis0208<<14 | 0x39<<7 | 0x01, - 25812 - 19968: jis0208<<14 | 0x38<<7 | 0x1E, - 25813 - 19968: jis0212<<14 | 0x20<<7 | 0x08, - 25815 - 19968: jis0212<<14 | 0x20<<7 | 0x09, - 25816 - 19968: jis0208<<14 | 0x39<<7 | 0x05, - 25818 - 19968: jis0208<<14 | 0x39<<7 | 0x00, - 25824 - 19968: jis0208<<14 | 0x39<<7 | 0x0A, - 25825 - 19968: jis0208<<14 | 0x39<<7 | 0x0B, - 25826 - 19968: jis0208<<14 | 0x24<<7 | 0x06, - 25827 - 19968: jis0208<<14 | 0x39<<7 | 0x0D, - 25828 - 19968: jis0212<<14 | 0x20<<7 | 0x0A, - 25829 - 19968: jis0212<<14 | 0x20<<7 | 0x0B, - 25830 - 19968: jis0208<<14 | 0x1A<<7 | 0x03, - 25831 - 19968: jis0208<<14 | 0x39<<7 | 0x08, - 25833 - 19968: jis0212<<14 | 0x20<<7 | 0x0C, - 25834 - 19968: jis0212<<14 | 0x20<<7 | 0x0D, - 25836 - 19968: jis0208<<14 | 0x14<<7 | 0x1B, - 25837 - 19968: jis0212<<14 | 0x20<<7 | 0x0E, - 25839 - 19968: jis0208<<14 | 0x39<<7 | 0x0E, - 25840 - 19968: jis0212<<14 | 0x20<<7 | 0x0F, - 25841 - 19968: jis0208<<14 | 0x39<<7 | 0x07, - 25842 - 19968: jis0208<<14 | 0x39<<7 | 0x12, - 25844 - 19968: jis0208<<14 | 0x39<<7 | 0x11, - 25845 - 19968: jis0212<<14 | 0x20<<7 | 0x10, - 25846 - 19968: jis0208<<14 | 0x39<<7 | 0x10, - 25847 - 19968: jis0212<<14 | 0x20<<7 | 0x11, - 25850 - 19968: jis0208<<14 | 0x39<<7 | 0x13, - 25851 - 19968: jis0212<<14 | 0x20<<7 | 0x12, - 25853 - 19968: jis0208<<14 | 0x39<<7 | 0x15, - 25854 - 19968: jis0208<<14 | 0x1D<<7 | 0x50, - 25855 - 19968: jis0212<<14 | 0x20<<7 | 0x13, - 25856 - 19968: jis0208<<14 | 0x39<<7 | 0x14, - 25857 - 19968: jis0212<<14 | 0x20<<7 | 0x14, - 25860 - 19968: jis0212<<14 | 0x20<<7 | 0x15, - 25861 - 19968: jis0208<<14 | 0x39<<7 | 0x18, - 25864 - 19968: jis0212<<14 | 0x20<<7 | 0x16, - 25865 - 19968: jis0212<<14 | 0x20<<7 | 0x17, - 25866 - 19968: jis0212<<14 | 0x20<<7 | 0x18, - 25871 - 19968: jis0212<<14 | 0x20<<7 | 0x19, - 25875 - 19968: jis0212<<14 | 0x20<<7 | 0x1A, - 25876 - 19968: jis0212<<14 | 0x20<<7 | 0x1B, - 25878 - 19968: jis0212<<14 | 0x20<<7 | 0x1C, - 25880 - 19968: jis0208<<14 | 0x39<<7 | 0x16, - 25881 - 19968: jis0212<<14 | 0x20<<7 | 0x1D, - 25883 - 19968: jis0212<<14 | 0x20<<7 | 0x1E, - 25884 - 19968: jis0208<<14 | 0x39<<7 | 0x17, - 25885 - 19968: jis0208<<14 | 0x38<<7 | 0x4F, - 25886 - 19968: jis0212<<14 | 0x20<<7 | 0x1F, - 25887 - 19968: jis0212<<14 | 0x20<<7 | 0x20, - 25890 - 19968: jis0212<<14 | 0x20<<7 | 0x21, - 25891 - 19968: jis0208<<14 | 0x39<<7 | 0x1A, - 25892 - 19968: jis0208<<14 | 0x39<<7 | 0x19, - 25894 - 19968: jis0212<<14 | 0x20<<7 | 0x22, - 25897 - 19968: jis0212<<14 | 0x20<<7 | 0x23, - 25898 - 19968: jis0208<<14 | 0x38<<7 | 0x57, - 25899 - 19968: jis0208<<14 | 0x39<<7 | 0x1B, - 25900 - 19968: jis0208<<14 | 0x39<<7 | 0x0F, - 25902 - 19968: jis0212<<14 | 0x20<<7 | 0x24, - 25903 - 19968: jis0208<<14 | 0x1A<<7 | 0x38, - 25905 - 19968: jis0212<<14 | 0x20<<7 | 0x25, - 25908 - 19968: jis0208<<14 | 0x39<<7 | 0x1C, - 25909 - 19968: jis0208<<14 | 0x39<<7 | 0x1D, - 25910 - 19968: jis0208<<14 | 0x39<<7 | 0x1F, - 25911 - 19968: jis0208<<14 | 0x39<<7 | 0x1E, - 25912 - 19968: jis0208<<14 | 0x39<<7 | 0x20, - 25913 - 19968: jis0208<<14 | 0x11<<7 | 0x5D, - 25914 - 19968: jis0212<<14 | 0x20<<7 | 0x26, - 25915 - 19968: jis0208<<14 | 0x18<<7 | 0x15, - 25916 - 19968: jis0212<<14 | 0x20<<7 | 0x27, - 25917 - 19968: jis0212<<14 | 0x20<<7 | 0x28, - 25918 - 19968: jis0208<<14 | 0x29<<7 | 0x5B, - 25919 - 19968: jis0208<<14 | 0x1F<<7 | 0x0E, - 25923 - 19968: jis0212<<14 | 0x20<<7 | 0x29, - 25925 - 19968: jis0208<<14 | 0x17<<7 | 0x2D, - 25927 - 19968: jis0212<<14 | 0x20<<7 | 0x2A, - 25928 - 19968: jis0208<<14 | 0x39<<7 | 0x22, - 25929 - 19968: jis0212<<14 | 0x20<<7 | 0x2B, - 25933 - 19968: jis0208<<14 | 0x39<<7 | 0x25, - 25934 - 19968: jis0208<<14 | 0x59<<7 | 0x12, - 25935 - 19968: jis0208<<14 | 0x28<<7 | 0x31, - 25936 - 19968: jis0212<<14 | 0x20<<7 | 0x2C, - 25937 - 19968: jis0208<<14 | 0x14<<7 | 0x3E, - 25938 - 19968: jis0212<<14 | 0x20<<7 | 0x2D, - 25940 - 19968: jis0212<<14 | 0x20<<7 | 0x2E, - 25941 - 19968: jis0208<<14 | 0x39<<7 | 0x24, - 25942 - 19968: jis0208<<14 | 0x39<<7 | 0x23, - 25943 - 19968: jis0208<<14 | 0x26<<7 | 0x33, - 25944 - 19968: jis0208<<14 | 0x39<<7 | 0x26, - 25945 - 19968: jis0208<<14 | 0x15<<7 | 0x14, - 25949 - 19968: jis0208<<14 | 0x39<<7 | 0x28, - 25950 - 19968: jis0208<<14 | 0x39<<7 | 0x27, - 25951 - 19968: jis0212<<14 | 0x20<<7 | 0x2F, - 25952 - 19968: jis0212<<14 | 0x20<<7 | 0x30, - 25954 - 19968: jis0208<<14 | 0x13<<7 | 0x19, - 25955 - 19968: jis0208<<14 | 0x1A<<7 | 0x15, - 25958 - 19968: jis0208<<14 | 0x25<<7 | 0x37, - 25959 - 19968: jis0212<<14 | 0x20<<7 | 0x31, - 25963 - 19968: jis0212<<14 | 0x20<<7 | 0x32, - 25964 - 19968: jis0208<<14 | 0x16<<7 | 0x28, - 25968 - 19968: jis0208<<14 | 0x1E<<7 | 0x53, - 25970 - 19968: jis0208<<14 | 0x39<<7 | 0x29, - 25972 - 19968: jis0208<<14 | 0x1F<<7 | 0x0F, - 25973 - 19968: jis0208<<14 | 0x24<<7 | 0x07, - 25975 - 19968: jis0208<<14 | 0x28<<7 | 0x3E, - 25976 - 19968: jis0208<<14 | 0x39<<7 | 0x2A, - 25978 - 19968: jis0212<<14 | 0x20<<7 | 0x33, - 25981 - 19968: jis0212<<14 | 0x20<<7 | 0x34, - 25985 - 19968: jis0212<<14 | 0x20<<7 | 0x35, - 25986 - 19968: jis0208<<14 | 0x39<<7 | 0x2B, - 25987 - 19968: jis0208<<14 | 0x39<<7 | 0x2C, - 25989 - 19968: jis0212<<14 | 0x20<<7 | 0x36, - 25991 - 19968: jis0208<<14 | 0x29<<7 | 0x17, - 25992 - 19968: jis0208<<14 | 0x34<<7 | 0x3C, - 25993 - 19968: jis0208<<14 | 0x1F<<7 | 0x25, - 25994 - 19968: jis0212<<14 | 0x20<<7 | 0x37, - 25996 - 19968: jis0208<<14 | 0x28<<7 | 0x2B, - 25998 - 19968: jis0208<<14 | 0x19<<7 | 0x37, - 26000 - 19968: jis0208<<14 | 0x27<<7 | 0x44, - 26001 - 19968: jis0208<<14 | 0x27<<7 | 0x22, - 26002 - 19968: jis0212<<14 | 0x20<<7 | 0x38, - 26005 - 19968: jis0212<<14 | 0x20<<7 | 0x39, - 26007 - 19968: jis0208<<14 | 0x24<<7 | 0x2C, - 26008 - 19968: jis0212<<14 | 0x20<<7 | 0x3A, - 26009 - 19968: jis0208<<14 | 0x2D<<7 | 0x20, - 26011 - 19968: jis0208<<14 | 0x39<<7 | 0x2E, - 26012 - 19968: jis0208<<14 | 0x1B<<7 | 0x2F, - 26013 - 19968: jis0212<<14 | 0x20<<7 | 0x3B, - 26015 - 19968: jis0208<<14 | 0x39<<7 | 0x2F, - 26016 - 19968: jis0212<<14 | 0x20<<7 | 0x3C, - 26017 - 19968: jis0208<<14 | 0x0F<<7 | 0x15, - 26019 - 19968: jis0212<<14 | 0x20<<7 | 0x3D, - 26020 - 19968: jis0208<<14 | 0x15<<7 | 0x33, - 26021 - 19968: jis0208<<14 | 0x1F<<7 | 0x2C, - 26022 - 19968: jis0212<<14 | 0x20<<7 | 0x3E, - 26023 - 19968: jis0208<<14 | 0x28<<7 | 0x3F, - 26027 - 19968: jis0208<<14 | 0x39<<7 | 0x30, - 26028 - 19968: jis0208<<14 | 0x1A<<7 | 0x21, - 26029 - 19968: jis0208<<14 | 0x22<<7 | 0x26, - 26030 - 19968: jis0212<<14 | 0x20<<7 | 0x3F, - 26031 - 19968: jis0208<<14 | 0x1A<<7 | 0x3A, - 26032 - 19968: jis0208<<14 | 0x1E<<7 | 0x16, - 26034 - 19968: jis0212<<14 | 0x20<<7 | 0x40, - 26035 - 19968: jis0212<<14 | 0x20<<7 | 0x41, - 26036 - 19968: jis0212<<14 | 0x20<<7 | 0x42, - 26039 - 19968: jis0208<<14 | 0x39<<7 | 0x31, - 26041 - 19968: jis0208<<14 | 0x29<<7 | 0x5C, - 26044 - 19968: jis0208<<14 | 0x10<<7 | 0x56, - 26045 - 19968: jis0208<<14 | 0x1A<<7 | 0x3B, - 26047 - 19968: jis0212<<14 | 0x20<<7 | 0x43, - 26049 - 19968: jis0208<<14 | 0x39<<7 | 0x34, - 26050 - 19968: jis0212<<14 | 0x20<<7 | 0x44, - 26051 - 19968: jis0208<<14 | 0x39<<7 | 0x32, - 26052 - 19968: jis0208<<14 | 0x39<<7 | 0x35, - 26053 - 19968: jis0208<<14 | 0x2D<<7 | 0x18, - 26054 - 19968: jis0208<<14 | 0x39<<7 | 0x33, - 26056 - 19968: jis0212<<14 | 0x20<<7 | 0x45, - 26057 - 19968: jis0212<<14 | 0x20<<7 | 0x46, - 26059 - 19968: jis0208<<14 | 0x1F<<7 | 0x5A, - 26060 - 19968: jis0208<<14 | 0x39<<7 | 0x36, - 26062 - 19968: jis0212<<14 | 0x20<<7 | 0x47, - 26063 - 19968: jis0208<<14 | 0x21<<7 | 0x11, - 26064 - 19968: jis0212<<14 | 0x20<<7 | 0x48, - 26066 - 19968: jis0208<<14 | 0x39<<7 | 0x37, - 26068 - 19968: jis0212<<14 | 0x20<<7 | 0x49, - 26070 - 19968: jis0212<<14 | 0x20<<7 | 0x4A, - 26071 - 19968: jis0208<<14 | 0x13<<7 | 0x59, - 26072 - 19968: jis0212<<14 | 0x20<<7 | 0x4B, - 26073 - 19968: jis0208<<14 | 0x39<<7 | 0x39, - 26075 - 19968: jis0208<<14 | 0x39<<7 | 0x38, - 26079 - 19968: jis0212<<14 | 0x20<<7 | 0x4C, - 26080 - 19968: jis0208<<14 | 0x39<<7 | 0x3A, - 26081 - 19968: jis0208<<14 | 0x39<<7 | 0x3B, - 26082 - 19968: jis0208<<14 | 0x13<<7 | 0x5A, - 26085 - 19968: jis0208<<14 | 0x25<<7 | 0x5B, - 26086 - 19968: jis0208<<14 | 0x22<<7 | 0x15, - 26087 - 19968: jis0208<<14 | 0x14<<7 | 0x4B, - 26088 - 19968: jis0208<<14 | 0x1A<<7 | 0x3C, - 26089 - 19968: jis0208<<14 | 0x20<<7 | 0x40, - 26092 - 19968: jis0208<<14 | 0x1C<<7 | 0x3B, - 26093 - 19968: jis0208<<14 | 0x0F<<7 | 0x0F, - 26096 - 19968: jis0212<<14 | 0x20<<7 | 0x4D, - 26097 - 19968: jis0208<<14 | 0x39<<7 | 0x3C, - 26098 - 19968: jis0212<<14 | 0x20<<7 | 0x4E, - 26100 - 19968: jis0212<<14 | 0x20<<7 | 0x4F, - 26101 - 19968: jis0212<<14 | 0x20<<7 | 0x50, - 26105 - 19968: jis0212<<14 | 0x20<<7 | 0x51, - 26106 - 19968: jis0208<<14 | 0x11<<7 | 0x01, - 26107 - 19968: jis0208<<14 | 0x39<<7 | 0x40, - 26110 - 19968: jis0212<<14 | 0x20<<7 | 0x52, - 26111 - 19968: jis0212<<14 | 0x20<<7 | 0x53, - 26112 - 19968: jis0208<<14 | 0x59<<7 | 0x13, - 26114 - 19968: jis0208<<14 | 0x18<<7 | 0x16, - 26115 - 19968: jis0208<<14 | 0x39<<7 | 0x3F, - 26116 - 19968: jis0212<<14 | 0x20<<7 | 0x55, - 26118 - 19968: jis0208<<14 | 0x19<<7 | 0x0A, - 26119 - 19968: jis0208<<14 | 0x1D<<7 | 0x19, - 26120 - 19968: jis0212<<14 | 0x20<<7 | 0x56, - 26121 - 19968: jis0208<<14 | 0x59<<7 | 0x16, - 26122 - 19968: jis0208<<14 | 0x39<<7 | 0x3E, - 26124 - 19968: jis0208<<14 | 0x1D<<7 | 0x1A, - 26125 - 19968: jis0212<<14 | 0x20<<7 | 0x58, - 26126 - 19968: jis0208<<14 | 0x2B<<7 | 0x1F, - 26127 - 19968: jis0208<<14 | 0x19<<7 | 0x09, - 26129 - 19968: jis0212<<14 | 0x20<<7 | 0x59, - 26130 - 19968: jis0212<<14 | 0x20<<7 | 0x5A, - 26131 - 19968: jis0208<<14 | 0x0F<<7 | 0x36, - 26132 - 19968: jis0208<<14 | 0x1F<<7 | 0x2D, - 26133 - 19968: jis0208<<14 | 0x59<<7 | 0x14, - 26134 - 19968: jis0212<<14 | 0x20<<7 | 0x5C, - 26140 - 19968: jis0208<<14 | 0x39<<7 | 0x45, - 26141 - 19968: jis0212<<14 | 0x20<<7 | 0x5D, - 26142 - 19968: jis0208<<14 | 0x59<<7 | 0x18, - 26143 - 19968: jis0208<<14 | 0x1F<<7 | 0x10, - 26144 - 19968: jis0208<<14 | 0x10<<7 | 0x26, - 26145 - 19968: jis0212<<14 | 0x21<<7 | 0x01, - 26146 - 19968: jis0212<<14 | 0x21<<7 | 0x02, - 26147 - 19968: jis0212<<14 | 0x21<<7 | 0x03, - 26148 - 19968: jis0208<<14 | 0x59<<7 | 0x19, - 26149 - 19968: jis0208<<14 | 0x1C<<7 | 0x34, - 26150 - 19968: jis0212<<14 | 0x21<<7 | 0x05, - 26151 - 19968: jis0208<<14 | 0x2A<<7 | 0x45, - 26152 - 19968: jis0208<<14 | 0x19<<7 | 0x51, - 26153 - 19968: jis0212<<14 | 0x21<<7 | 0x06, - 26154 - 19968: jis0212<<14 | 0x21<<7 | 0x07, - 26155 - 19968: jis0212<<14 | 0x21<<7 | 0x08, - 26156 - 19968: jis0212<<14 | 0x21<<7 | 0x09, - 26157 - 19968: jis0208<<14 | 0x1D<<7 | 0x1B, - 26158 - 19968: jis0208<<14 | 0x59<<7 | 0x17, - 26159 - 19968: jis0208<<14 | 0x1F<<7 | 0x06, - 26160 - 19968: jis0212<<14 | 0x21<<7 | 0x0B, - 26161 - 19968: jis0208<<14 | 0x58<<7 | 0x07, - 26163 - 19968: jis0212<<14 | 0x21<<7 | 0x0D, - 26164 - 19968: jis0208<<14 | 0x39<<7 | 0x44, - 26165 - 19968: jis0208<<14 | 0x39<<7 | 0x42, - 26166 - 19968: jis0208<<14 | 0x39<<7 | 0x43, - 26167 - 19968: jis0212<<14 | 0x21<<7 | 0x0F, - 26169 - 19968: jis0212<<14 | 0x21<<7 | 0x0E, - 26171 - 19968: jis0208<<14 | 0x59<<7 | 0x15, - 26172 - 19968: jis0208<<14 | 0x22<<7 | 0x4A, - 26175 - 19968: jis0208<<14 | 0x3A<<7 | 0x05, - 26176 - 19968: jis0212<<14 | 0x21<<7 | 0x10, - 26177 - 19968: jis0208<<14 | 0x39<<7 | 0x49, - 26178 - 19968: jis0208<<14 | 0x1A<<7 | 0x5D, - 26179 - 19968: jis0208<<14 | 0x18<<7 | 0x17, - 26180 - 19968: jis0208<<14 | 0x39<<7 | 0x47, - 26181 - 19968: jis0212<<14 | 0x21<<7 | 0x11, - 26182 - 19968: jis0212<<14 | 0x21<<7 | 0x12, - 26185 - 19968: jis0208<<14 | 0x39<<7 | 0x48, - 26186 - 19968: jis0212<<14 | 0x21<<7 | 0x13, - 26187 - 19968: jis0208<<14 | 0x1E<<7 | 0x17, - 26188 - 19968: jis0212<<14 | 0x21<<7 | 0x14, - 26190 - 19968: jis0212<<14 | 0x21<<7 | 0x16, - 26191 - 19968: jis0208<<14 | 0x39<<7 | 0x46, - 26193 - 19968: jis0212<<14 | 0x21<<7 | 0x15, - 26194 - 19968: jis0208<<14 | 0x1A<<7 | 0x0E, - 26199 - 19968: jis0208<<14 | 0x59<<7 | 0x1B, - 26200 - 19968: jis0212<<14 | 0x21<<7 | 0x18, - 26201 - 19968: jis0208<<14 | 0x59<<7 | 0x1C, - 26203 - 19968: jis0212<<14 | 0x21<<7 | 0x1A, - 26204 - 19968: jis0212<<14 | 0x21<<7 | 0x1B, - 26205 - 19968: jis0208<<14 | 0x39<<7 | 0x4B, - 26206 - 19968: jis0208<<14 | 0x39<<7 | 0x4A, - 26207 - 19968: jis0208<<14 | 0x39<<7 | 0x4F, - 26208 - 19968: jis0212<<14 | 0x21<<7 | 0x1C, - 26209 - 19968: jis0212<<14 | 0x21<<7 | 0x1D, - 26210 - 19968: jis0208<<14 | 0x39<<7 | 0x50, - 26212 - 19968: jis0208<<14 | 0x39<<7 | 0x4C, - 26213 - 19968: jis0208<<14 | 0x59<<7 | 0x1A, - 26214 - 19968: jis0208<<14 | 0x12<<7 | 0x01, - 26215 - 19968: jis0208<<14 | 0x39<<7 | 0x4D, - 26216 - 19968: jis0208<<14 | 0x39<<7 | 0x4E, - 26217 - 19968: jis0208<<14 | 0x27<<7 | 0x34, - 26218 - 19968: jis0212<<14 | 0x21<<7 | 0x1F, - 26219 - 19968: jis0212<<14 | 0x21<<7 | 0x20, - 26220 - 19968: jis0212<<14 | 0x21<<7 | 0x21, - 26222 - 19968: jis0208<<14 | 0x28<<7 | 0x40, - 26223 - 19968: jis0208<<14 | 0x16<<7 | 0x29, - 26224 - 19968: jis0208<<14 | 0x39<<7 | 0x51, - 26227 - 19968: jis0208<<14 | 0x59<<7 | 0x1E, - 26228 - 19968: jis0208<<14 | 0x1F<<7 | 0x11, - 26229 - 19968: jis0212<<14 | 0x21<<7 | 0x24, - 26230 - 19968: jis0208<<14 | 0x1D<<7 | 0x1C, - 26231 - 19968: jis0212<<14 | 0x21<<7 | 0x26, - 26232 - 19968: jis0212<<14 | 0x21<<7 | 0x27, - 26233 - 19968: jis0212<<14 | 0x21<<7 | 0x28, - 26234 - 19968: jis0208<<14 | 0x22<<7 | 0x31, - 26235 - 19968: jis0212<<14 | 0x21<<7 | 0x29, - 26236 - 19968: jis0212<<14 | 0x21<<7 | 0x2B, - 26238 - 19968: jis0212<<14 | 0x21<<7 | 0x22, - 26239 - 19968: jis0212<<14 | 0x21<<7 | 0x25, - 26240 - 19968: jis0212<<14 | 0x21<<7 | 0x2A, - 26241 - 19968: jis0208<<14 | 0x15<<7 | 0x26, - 26243 - 19968: jis0208<<14 | 0x39<<7 | 0x52, - 26244 - 19968: jis0208<<14 | 0x39<<7 | 0x56, - 26247 - 19968: jis0208<<14 | 0x11<<7 | 0x2A, - 26248 - 19968: jis0208<<14 | 0x39<<7 | 0x53, - 26249 - 19968: jis0208<<14 | 0x39<<7 | 0x55, - 26251 - 19968: jis0212<<14 | 0x21<<7 | 0x2C, - 26252 - 19968: jis0212<<14 | 0x21<<7 | 0x2D, - 26253 - 19968: jis0212<<14 | 0x21<<7 | 0x2E, - 26254 - 19968: jis0208<<14 | 0x39<<7 | 0x54, - 26256 - 19968: jis0212<<14 | 0x21<<7 | 0x2F, - 26257 - 19968: jis0208<<14 | 0x1C<<7 | 0x4A, - 26258 - 19968: jis0212<<14 | 0x21<<7 | 0x30, - 26262 - 19968: jis0208<<14 | 0x22<<7 | 0x27, - 26263 - 19968: jis0208<<14 | 0x0F<<7 | 0x24, - 26264 - 19968: jis0208<<14 | 0x39<<7 | 0x57, - 26265 - 19968: jis0208<<14 | 0x59<<7 | 0x1F, - 26266 - 19968: jis0212<<14 | 0x21<<7 | 0x32, - 26267 - 19968: jis0212<<14 | 0x21<<7 | 0x33, - 26268 - 19968: jis0212<<14 | 0x21<<7 | 0x34, - 26269 - 19968: jis0208<<14 | 0x39<<7 | 0x58, - 26271 - 19968: jis0212<<14 | 0x21<<7 | 0x35, - 26272 - 19968: jis0208<<14 | 0x59<<7 | 0x20, - 26274 - 19968: jis0208<<14 | 0x23<<7 | 0x09, - 26276 - 19968: jis0212<<14 | 0x21<<7 | 0x37, - 26278 - 19968: jis0208<<14 | 0x2D<<7 | 0x50, - 26283 - 19968: jis0208<<14 | 0x1A<<7 | 0x22, - 26285 - 19968: jis0212<<14 | 0x21<<7 | 0x38, - 26286 - 19968: jis0208<<14 | 0x29<<7 | 0x4A, - 26289 - 19968: jis0212<<14 | 0x21<<7 | 0x39, - 26290 - 19968: jis0208<<14 | 0x59<<7 | 0x21, - 26292 - 19968: jis0208<<14 | 0x2A<<7 | 0x1C, - 26293 - 19968: jis0212<<14 | 0x21<<7 | 0x3B, - 26296 - 19968: jis0208<<14 | 0x3A<<7 | 0x01, - 26297 - 19968: jis0208<<14 | 0x39<<7 | 0x5A, - 26299 - 19968: jis0212<<14 | 0x21<<7 | 0x3C, - 26300 - 19968: jis0208<<14 | 0x39<<7 | 0x5D, - 26302 - 19968: jis0208<<14 | 0x39<<7 | 0x5C, - 26303 - 19968: jis0208<<14 | 0x59<<7 | 0x22, - 26304 - 19968: jis0212<<14 | 0x21<<7 | 0x3E, - 26305 - 19968: jis0208<<14 | 0x39<<7 | 0x59, - 26306 - 19968: jis0212<<14 | 0x21<<7 | 0x3F, - 26307 - 19968: jis0212<<14 | 0x21<<7 | 0x40, - 26308 - 19968: jis0208<<14 | 0x3A<<7 | 0x00, - 26311 - 19968: jis0208<<14 | 0x25<<7 | 0x3D, - 26312 - 19968: jis0212<<14 | 0x21<<7 | 0x41, - 26313 - 19968: jis0208<<14 | 0x39<<7 | 0x5B, - 26316 - 19968: jis0212<<14 | 0x21<<7 | 0x42, - 26318 - 19968: jis0212<<14 | 0x21<<7 | 0x43, - 26319 - 19968: jis0212<<14 | 0x21<<7 | 0x44, - 26324 - 19968: jis0212<<14 | 0x21<<7 | 0x45, - 26326 - 19968: jis0208<<14 | 0x3A<<7 | 0x02, - 26329 - 19968: jis0208<<14 | 0x1C<<7 | 0x4B, - 26330 - 19968: jis0208<<14 | 0x3A<<7 | 0x03, - 26331 - 19968: jis0212<<14 | 0x21<<7 | 0x46, - 26332 - 19968: jis0208<<14 | 0x2C<<7 | 0x2A, - 26333 - 19968: jis0208<<14 | 0x26<<7 | 0x57, - 26335 - 19968: jis0212<<14 | 0x21<<7 | 0x47, - 26336 - 19968: jis0208<<14 | 0x3A<<7 | 0x04, - 26342 - 19968: jis0208<<14 | 0x3A<<7 | 0x06, - 26344 - 19968: jis0212<<14 | 0x21<<7 | 0x48, - 26345 - 19968: jis0208<<14 | 0x3A<<7 | 0x07, - 26347 - 19968: jis0212<<14 | 0x21<<7 | 0x49, - 26348 - 19968: jis0212<<14 | 0x21<<7 | 0x4A, - 26350 - 19968: jis0212<<14 | 0x21<<7 | 0x4B, - 26352 - 19968: jis0208<<14 | 0x3A<<7 | 0x08, - 26354 - 19968: jis0208<<14 | 0x15<<7 | 0x29, - 26355 - 19968: jis0208<<14 | 0x10<<7 | 0x27, - 26356 - 19968: jis0208<<14 | 0x18<<7 | 0x18, - 26357 - 19968: jis0208<<14 | 0x3A<<7 | 0x09, - 26359 - 19968: jis0208<<14 | 0x3A<<7 | 0x0A, - 26360 - 19968: jis0208<<14 | 0x1C<<7 | 0x50, - 26361 - 19968: jis0208<<14 | 0x20<<7 | 0x41, - 26362 - 19968: jis0208<<14 | 0x59<<7 | 0x23, - 26363 - 19968: jis0208<<14 | 0x58<<7 | 0x0A, - 26364 - 19968: jis0208<<14 | 0x31<<7 | 0x37, - 26365 - 19968: jis0208<<14 | 0x20<<7 | 0x1D, - 26366 - 19968: jis0208<<14 | 0x20<<7 | 0x1C, - 26367 - 19968: jis0208<<14 | 0x21<<7 | 0x37, - 26368 - 19968: jis0208<<14 | 0x19<<7 | 0x26, - 26371 - 19968: jis0208<<14 | 0x2F<<7 | 0x51, - 26373 - 19968: jis0212<<14 | 0x21<<7 | 0x4D, - 26375 - 19968: jis0212<<14 | 0x21<<7 | 0x4E, - 26376 - 19968: jis0208<<14 | 0x16<<7 | 0x4D, - 26377 - 19968: jis0208<<14 | 0x2C<<7 | 0x0C, - 26379 - 19968: jis0208<<14 | 0x29<<7 | 0x5D, - 26381 - 19968: jis0208<<14 | 0x28<<7 | 0x5D, - 26382 - 19968: jis0208<<14 | 0x59<<7 | 0x24, - 26383 - 19968: jis0208<<14 | 0x3A<<7 | 0x0B, - 26387 - 19968: jis0212<<14 | 0x21<<7 | 0x50, - 26388 - 19968: jis0208<<14 | 0x19<<7 | 0x52, - 26389 - 19968: jis0208<<14 | 0x23<<7 | 0x1E, - 26390 - 19968: jis0208<<14 | 0x3A<<7 | 0x0C, - 26391 - 19968: jis0208<<14 | 0x2E<<7 | 0x0E, - 26393 - 19968: jis0212<<14 | 0x21<<7 | 0x51, - 26395 - 19968: jis0208<<14 | 0x2A<<7 | 0x1D, - 26396 - 19968: jis0212<<14 | 0x21<<7 | 0x52, - 26397 - 19968: jis0208<<14 | 0x23<<7 | 0x0A, - 26398 - 19968: jis0208<<14 | 0x3A<<7 | 0x0D, - 26399 - 19968: jis0208<<14 | 0x13<<7 | 0x5B, - 26400 - 19968: jis0212<<14 | 0x21<<7 | 0x53, - 26402 - 19968: jis0212<<14 | 0x21<<7 | 0x54, - 26406 - 19968: jis0208<<14 | 0x3A<<7 | 0x0E, - 26407 - 19968: jis0208<<14 | 0x3A<<7 | 0x0F, - 26408 - 19968: jis0208<<14 | 0x2B<<7 | 0x39, - 26410 - 19968: jis0208<<14 | 0x2B<<7 | 0x03, - 26411 - 19968: jis0208<<14 | 0x2A<<7 | 0x55, - 26412 - 19968: jis0208<<14 | 0x2A<<7 | 0x3B, - 26413 - 19968: jis0208<<14 | 0x1A<<7 | 0x04, - 26414 - 19968: jis0208<<14 | 0x3A<<7 | 0x11, - 26417 - 19968: jis0208<<14 | 0x1B<<7 | 0x4A, - 26419 - 19968: jis0212<<14 | 0x21<<7 | 0x55, - 26420 - 19968: jis0208<<14 | 0x2A<<7 | 0x30, - 26422 - 19968: jis0208<<14 | 0x3A<<7 | 0x13, - 26423 - 19968: jis0208<<14 | 0x3A<<7 | 0x16, - 26424 - 19968: jis0208<<14 | 0x3A<<7 | 0x15, - 26426 - 19968: jis0208<<14 | 0x13<<7 | 0x58, - 26429 - 19968: jis0208<<14 | 0x14<<7 | 0x3F, - 26430 - 19968: jis0212<<14 | 0x21<<7 | 0x56, - 26431 - 19968: jis0208<<14 | 0x3A<<7 | 0x12, - 26433 - 19968: jis0208<<14 | 0x3A<<7 | 0x14, - 26437 - 19968: jis0212<<14 | 0x21<<7 | 0x57, - 26438 - 19968: jis0208<<14 | 0x3A<<7 | 0x17, - 26439 - 19968: jis0212<<14 | 0x21<<7 | 0x58, - 26440 - 19968: jis0212<<14 | 0x21<<7 | 0x59, - 26441 - 19968: jis0208<<14 | 0x1E<<7 | 0x58, - 26444 - 19968: jis0212<<14 | 0x21<<7 | 0x5A, - 26446 - 19968: jis0208<<14 | 0x2C<<7 | 0x5A, - 26447 - 19968: jis0208<<14 | 0x0F<<7 | 0x28, - 26448 - 19968: jis0208<<14 | 0x19<<7 | 0x3F, - 26449 - 19968: jis0208<<14 | 0x21<<7 | 0x1B, - 26451 - 19968: jis0208<<14 | 0x1B<<7 | 0x3C, - 26452 - 19968: jis0212<<14 | 0x21<<7 | 0x5B, - 26453 - 19968: jis0212<<14 | 0x21<<7 | 0x5C, - 26454 - 19968: jis0208<<14 | 0x1D<<7 | 0x52, - 26457 - 19968: jis0208<<14 | 0x3A<<7 | 0x1A, - 26460 - 19968: jis0208<<14 | 0x24<<7 | 0x2D, - 26461 - 19968: jis0212<<14 | 0x21<<7 | 0x5D, - 26462 - 19968: jis0208<<14 | 0x3A<<7 | 0x18, - 26463 - 19968: jis0208<<14 | 0x21<<7 | 0x0A, - 26464 - 19968: jis0208<<14 | 0x3A<<7 | 0x19, - 26465 - 19968: jis0208<<14 | 0x1D<<7 | 0x51, - 26466 - 19968: jis0208<<14 | 0x2B<<7 | 0x3C, - 26467 - 19968: jis0208<<14 | 0x3A<<7 | 0x1B, - 26468 - 19968: jis0208<<14 | 0x3A<<7 | 0x1C, - 26469 - 19968: jis0208<<14 | 0x2C<<7 | 0x47, - 26470 - 19968: jis0208<<14 | 0x59<<7 | 0x26, - 26474 - 19968: jis0208<<14 | 0x3A<<7 | 0x21, - 26476 - 19968: jis0212<<14 | 0x22<<7 | 0x01, - 26477 - 19968: jis0208<<14 | 0x18<<7 | 0x19, - 26478 - 19968: jis0212<<14 | 0x22<<7 | 0x02, - 26479 - 19968: jis0208<<14 | 0x26<<7 | 0x34, - 26480 - 19968: jis0208<<14 | 0x3A<<7 | 0x1E, - 26481 - 19968: jis0208<<14 | 0x24<<7 | 0x4B, - 26482 - 19968: jis0208<<14 | 0x39<<7 | 0x3D, - 26483 - 19968: jis0208<<14 | 0x39<<7 | 0x41, - 26484 - 19968: jis0212<<14 | 0x22<<7 | 0x03, - 26485 - 19968: jis0208<<14 | 0x14<<7 | 0x2E, - 26486 - 19968: jis0212<<14 | 0x22<<7 | 0x04, - 26487 - 19968: jis0208<<14 | 0x26<<7 | 0x26, - 26491 - 19968: jis0212<<14 | 0x22<<7 | 0x05, - 26492 - 19968: jis0208<<14 | 0x3A<<7 | 0x20, - 26494 - 19968: jis0208<<14 | 0x1D<<7 | 0x1D, - 26495 - 19968: jis0208<<14 | 0x27<<7 | 0x23, - 26497 - 19968: jis0212<<14 | 0x22<<7 | 0x06, - 26500 - 19968: jis0212<<14 | 0x22<<7 | 0x07, - 26501 - 19968: jis0208<<14 | 0x3A<<7 | 0x26, - 26503 - 19968: jis0208<<14 | 0x27<<7 | 0x59, - 26505 - 19968: jis0208<<14 | 0x3A<<7 | 0x1D, - 26507 - 19968: jis0208<<14 | 0x3A<<7 | 0x23, - 26508 - 19968: jis0208<<14 | 0x3A<<7 | 0x22, - 26510 - 19968: jis0212<<14 | 0x22<<7 | 0x08, - 26511 - 19968: jis0212<<14 | 0x22<<7 | 0x09, - 26512 - 19968: jis0208<<14 | 0x1F<<7 | 0x2E, - 26513 - 19968: jis0212<<14 | 0x22<<7 | 0x0A, - 26515 - 19968: jis0212<<14 | 0x22<<7 | 0x0B, - 26517 - 19968: jis0208<<14 | 0x2A<<7 | 0x4C, - 26518 - 19968: jis0212<<14 | 0x22<<7 | 0x0C, - 26519 - 19968: jis0208<<14 | 0x2D<<7 | 0x32, - 26520 - 19968: jis0212<<14 | 0x22<<7 | 0x0D, - 26521 - 19968: jis0212<<14 | 0x22<<7 | 0x0E, - 26522 - 19968: jis0208<<14 | 0x2A<<7 | 0x46, - 26523 - 19968: jis0212<<14 | 0x22<<7 | 0x0F, - 26524 - 19968: jis0208<<14 | 0x11<<7 | 0x2B, - 26525 - 19968: jis0208<<14 | 0x1A<<7 | 0x3D, - 26528 - 19968: jis0208<<14 | 0x2E<<7 | 0x27, - 26529 - 19968: jis0208<<14 | 0x3A<<7 | 0x25, - 26530 - 19968: jis0208<<14 | 0x1E<<7 | 0x54, - 26534 - 19968: jis0208<<14 | 0x3A<<7 | 0x24, - 26537 - 19968: jis0208<<14 | 0x3A<<7 | 0x1F, - 26543 - 19968: jis0208<<14 | 0x17<<7 | 0x2E, - 26544 - 19968: jis0212<<14 | 0x22<<7 | 0x10, - 26545 - 19968: jis0212<<14 | 0x22<<7 | 0x11, - 26546 - 19968: jis0212<<14 | 0x22<<7 | 0x12, - 26547 - 19968: jis0208<<14 | 0x3A<<7 | 0x2B, - 26548 - 19968: jis0208<<14 | 0x3A<<7 | 0x29, - 26549 - 19968: jis0212<<14 | 0x22<<7 | 0x13, - 26550 - 19968: jis0208<<14 | 0x11<<7 | 0x2C, - 26551 - 19968: jis0208<<14 | 0x3A<<7 | 0x27, - 26552 - 19968: jis0208<<14 | 0x3A<<7 | 0x2D, - 26553 - 19968: jis0208<<14 | 0x3A<<7 | 0x33, - 26555 - 19968: jis0208<<14 | 0x59<<7 | 0x27, - 26556 - 19968: jis0212<<14 | 0x22<<7 | 0x15, - 26557 - 19968: jis0212<<14 | 0x22<<7 | 0x16, - 26560 - 19968: jis0208<<14 | 0x59<<7 | 0x29, - 26561 - 19968: jis0208<<14 | 0x21<<7 | 0x27, - 26562 - 19968: jis0212<<14 | 0x22<<7 | 0x19, - 26563 - 19968: jis0212<<14 | 0x22<<7 | 0x1A, - 26564 - 19968: jis0208<<14 | 0x29<<7 | 0x20, - 26565 - 19968: jis0212<<14 | 0x22<<7 | 0x1B, - 26566 - 19968: jis0208<<14 | 0x3A<<7 | 0x35, - 26568 - 19968: jis0212<<14 | 0x22<<7 | 0x1C, - 26569 - 19968: jis0212<<14 | 0x22<<7 | 0x1D, - 26570 - 19968: jis0208<<14 | 0x28<<7 | 0x01, - 26574 - 19968: jis0208<<14 | 0x3A<<7 | 0x34, - 26575 - 19968: jis0208<<14 | 0x26<<7 | 0x4F, - 26576 - 19968: jis0208<<14 | 0x2A<<7 | 0x1E, - 26577 - 19968: jis0208<<14 | 0x13<<7 | 0x1A, - 26578 - 19968: jis0212<<14 | 0x22<<7 | 0x1E, - 26579 - 19968: jis0208<<14 | 0x1F<<7 | 0x56, - 26580 - 19968: jis0208<<14 | 0x1C<<7 | 0x1F, - 26583 - 19968: jis0212<<14 | 0x22<<7 | 0x1F, - 26584 - 19968: jis0208<<14 | 0x23<<7 | 0x32, - 26585 - 19968: jis0212<<14 | 0x22<<7 | 0x20, - 26586 - 19968: jis0208<<14 | 0x2C<<7 | 0x0D, - 26588 - 19968: jis0212<<14 | 0x22<<7 | 0x21, - 26589 - 19968: jis0208<<14 | 0x3A<<7 | 0x30, - 26590 - 19968: jis0208<<14 | 0x3A<<7 | 0x2F, - 26593 - 19968: jis0212<<14 | 0x22<<7 | 0x22, - 26594 - 19968: jis0208<<14 | 0x3A<<7 | 0x31, - 26596 - 19968: jis0208<<14 | 0x3A<<7 | 0x2E, - 26598 - 19968: jis0212<<14 | 0x22<<7 | 0x23, - 26599 - 19968: jis0208<<14 | 0x3A<<7 | 0x36, - 26601 - 19968: jis0208<<14 | 0x3A<<7 | 0x2C, - 26604 - 19968: jis0208<<14 | 0x3A<<7 | 0x2A, - 26606 - 19968: jis0208<<14 | 0x3A<<7 | 0x32, - 26607 - 19968: jis0208<<14 | 0x3A<<7 | 0x28, - 26608 - 19968: jis0212<<14 | 0x22<<7 | 0x24, - 26609 - 19968: jis0208<<14 | 0x22<<7 | 0x4B, - 26610 - 19968: jis0212<<14 | 0x22<<7 | 0x25, - 26611 - 19968: jis0208<<14 | 0x2B<<7 | 0x57, - 26612 - 19968: jis0208<<14 | 0x1B<<7 | 0x25, - 26613 - 19968: jis0208<<14 | 0x19<<7 | 0x53, - 26614 - 19968: jis0212<<14 | 0x22<<7 | 0x26, - 26615 - 19968: jis0212<<14 | 0x22<<7 | 0x27, - 26617 - 19968: jis0212<<14 | 0x22<<7 | 0x17, - 26619 - 19968: jis0208<<14 | 0x19<<7 | 0x19, - 26622 - 19968: jis0208<<14 | 0x2A<<7 | 0x4E, - 26623 - 19968: jis0208<<14 | 0x12<<7 | 0x20, - 26625 - 19968: jis0208<<14 | 0x59<<7 | 0x2A, - 26626 - 19968: jis0208<<14 | 0x23<<7 | 0x2D, - 26627 - 19968: jis0208<<14 | 0x25<<7 | 0x29, - 26628 - 19968: jis0208<<14 | 0x10<<7 | 0x28, - 26643 - 19968: jis0208<<14 | 0x1F<<7 | 0x51, - 26644 - 19968: jis0212<<14 | 0x22<<7 | 0x29, - 26646 - 19968: jis0208<<14 | 0x1F<<7 | 0x13, - 26647 - 19968: jis0208<<14 | 0x16<<7 | 0x09, - 26649 - 19968: jis0212<<14 | 0x22<<7 | 0x2A, - 26653 - 19968: jis0212<<14 | 0x22<<7 | 0x2B, - 26654 - 19968: jis0208<<14 | 0x3A<<7 | 0x38, - 26655 - 19968: jis0212<<14 | 0x22<<7 | 0x2C, - 26657 - 19968: jis0208<<14 | 0x18<<7 | 0x1A, - 26658 - 19968: jis0208<<14 | 0x12<<7 | 0x5B, - 26663 - 19968: jis0212<<14 | 0x22<<7 | 0x2E, - 26664 - 19968: jis0212<<14 | 0x22<<7 | 0x2D, - 26665 - 19968: jis0208<<14 | 0x3A<<7 | 0x3A, - 26666 - 19968: jis0208<<14 | 0x12<<7 | 0x53, - 26667 - 19968: jis0208<<14 | 0x3A<<7 | 0x40, - 26668 - 19968: jis0212<<14 | 0x22<<7 | 0x2F, - 26669 - 19968: jis0212<<14 | 0x22<<7 | 0x30, - 26671 - 19968: jis0212<<14 | 0x22<<7 | 0x31, - 26672 - 19968: jis0212<<14 | 0x22<<7 | 0x32, - 26673 - 19968: jis0212<<14 | 0x22<<7 | 0x33, - 26674 - 19968: jis0208<<14 | 0x3A<<7 | 0x3D, - 26675 - 19968: jis0212<<14 | 0x22<<7 | 0x34, - 26676 - 19968: jis0208<<14 | 0x1F<<7 | 0x52, - 26680 - 19968: jis0208<<14 | 0x12<<7 | 0x2A, - 26681 - 19968: jis0208<<14 | 0x19<<7 | 0x0B, - 26683 - 19968: jis0212<<14 | 0x22<<7 | 0x35, - 26684 - 19968: jis0208<<14 | 0x12<<7 | 0x29, - 26685 - 19968: jis0208<<14 | 0x19<<7 | 0x2E, - 26687 - 19968: jis0212<<14 | 0x22<<7 | 0x36, - 26688 - 19968: jis0208<<14 | 0x3A<<7 | 0x3B, - 26689 - 19968: jis0208<<14 | 0x16<<7 | 0x44, - 26690 - 19968: jis0208<<14 | 0x16<<7 | 0x2A, - 26691 - 19968: jis0208<<14 | 0x24<<7 | 0x4C, - 26692 - 19968: jis0208<<14 | 0x59<<7 | 0x2B, - 26693 - 19968: jis0212<<14 | 0x22<<7 | 0x38, - 26694 - 19968: jis0208<<14 | 0x3A<<7 | 0x39, - 26696 - 19968: jis0208<<14 | 0x0F<<7 | 0x25, - 26698 - 19968: jis0212<<14 | 0x22<<7 | 0x39, - 26700 - 19968: jis0212<<14 | 0x22<<7 | 0x3A, - 26701 - 19968: jis0208<<14 | 0x3A<<7 | 0x3C, - 26702 - 19968: jis0208<<14 | 0x3A<<7 | 0x3E, - 26704 - 19968: jis0208<<14 | 0x15<<7 | 0x2C, - 26705 - 19968: jis0208<<14 | 0x16<<7 | 0x0B, - 26706 - 19968: jis0208<<14 | 0x59<<7 | 0x28, - 26707 - 19968: jis0208<<14 | 0x13<<7 | 0x1B, - 26708 - 19968: jis0208<<14 | 0x14<<7 | 0x2A, - 26709 - 19968: jis0212<<14 | 0x22<<7 | 0x3B, - 26711 - 19968: jis0212<<14 | 0x22<<7 | 0x3C, - 26712 - 19968: jis0212<<14 | 0x22<<7 | 0x3D, - 26713 - 19968: jis0208<<14 | 0x3A<<7 | 0x41, - 26715 - 19968: jis0212<<14 | 0x22<<7 | 0x3E, - 26716 - 19968: jis0208<<14 | 0x19<<7 | 0x58, - 26717 - 19968: jis0208<<14 | 0x2A<<7 | 0x50, - 26719 - 19968: jis0208<<14 | 0x1A<<7 | 0x16, - 26723 - 19968: jis0208<<14 | 0x3A<<7 | 0x42, - 26727 - 19968: jis0208<<14 | 0x28<<7 | 0x0F, - 26731 - 19968: jis0212<<14 | 0x22<<7 | 0x3F, - 26734 - 19968: jis0212<<14 | 0x22<<7 | 0x40, - 26735 - 19968: jis0212<<14 | 0x22<<7 | 0x41, - 26736 - 19968: jis0212<<14 | 0x22<<7 | 0x42, - 26737 - 19968: jis0212<<14 | 0x22<<7 | 0x43, - 26738 - 19968: jis0212<<14 | 0x22<<7 | 0x44, - 26740 - 19968: jis0208<<14 | 0x3A<<7 | 0x4E, - 26741 - 19968: jis0212<<14 | 0x22<<7 | 0x45, - 26742 - 19968: jis0208<<14 | 0x11<<7 | 0x12, - 26743 - 19968: jis0208<<14 | 0x3A<<7 | 0x43, - 26745 - 19968: jis0212<<14 | 0x22<<7 | 0x46, - 26746 - 19968: jis0212<<14 | 0x22<<7 | 0x47, - 26747 - 19968: jis0212<<14 | 0x22<<7 | 0x48, - 26748 - 19968: jis0212<<14 | 0x22<<7 | 0x49, - 26750 - 19968: jis0208<<14 | 0x3A<<7 | 0x54, - 26751 - 19968: jis0208<<14 | 0x3A<<7 | 0x44, - 26753 - 19968: jis0208<<14 | 0x2D<<7 | 0x21, - 26754 - 19968: jis0212<<14 | 0x22<<7 | 0x4A, - 26755 - 19968: jis0208<<14 | 0x3A<<7 | 0x4B, - 26756 - 19968: jis0212<<14 | 0x22<<7 | 0x4B, - 26757 - 19968: jis0208<<14 | 0x26<<7 | 0x3E, - 26758 - 19968: jis0212<<14 | 0x22<<7 | 0x4C, - 26760 - 19968: jis0212<<14 | 0x22<<7 | 0x4D, - 26765 - 19968: jis0208<<14 | 0x3A<<7 | 0x53, - 26767 - 19968: jis0208<<14 | 0x3A<<7 | 0x46, - 26771 - 19968: jis0208<<14 | 0x0F<<7 | 0x13, - 26772 - 19968: jis0208<<14 | 0x3A<<7 | 0x48, - 26774 - 19968: jis0212<<14 | 0x22<<7 | 0x4E, - 26775 - 19968: jis0208<<14 | 0x18<<7 | 0x1B, - 26776 - 19968: jis0212<<14 | 0x22<<7 | 0x4F, - 26778 - 19968: jis0212<<14 | 0x22<<7 | 0x50, - 26779 - 19968: jis0208<<14 | 0x3A<<7 | 0x4A, - 26780 - 19968: jis0212<<14 | 0x22<<7 | 0x51, - 26781 - 19968: jis0208<<14 | 0x3A<<7 | 0x49, - 26783 - 19968: jis0208<<14 | 0x3A<<7 | 0x45, - 26784 - 19968: jis0208<<14 | 0x3A<<7 | 0x50, - 26785 - 19968: jis0212<<14 | 0x22<<7 | 0x52, - 26786 - 19968: jis0208<<14 | 0x1D<<7 | 0x1E, - 26787 - 19968: jis0212<<14 | 0x22<<7 | 0x53, - 26789 - 19968: jis0212<<14 | 0x22<<7 | 0x54, - 26790 - 19968: jis0208<<14 | 0x33<<7 | 0x4C, - 26791 - 19968: jis0208<<14 | 0x17<<7 | 0x47, - 26792 - 19968: jis0208<<14 | 0x2C<<7 | 0x5B, - 26793 - 19968: jis0212<<14 | 0x22<<7 | 0x55, - 26794 - 19968: jis0212<<14 | 0x22<<7 | 0x56, - 26797 - 19968: jis0208<<14 | 0x3A<<7 | 0x47, - 26798 - 19968: jis0212<<14 | 0x22<<7 | 0x57, - 26799 - 19968: jis0208<<14 | 0x23<<7 | 0x53, - 26800 - 19968: jis0208<<14 | 0x12<<7 | 0x02, - 26801 - 19968: jis0208<<14 | 0x19<<7 | 0x0C, - 26802 - 19968: jis0212<<14 | 0x22<<7 | 0x58, - 26803 - 19968: jis0208<<14 | 0x3A<<7 | 0x3F, - 26805 - 19968: jis0208<<14 | 0x3A<<7 | 0x4F, - 26806 - 19968: jis0208<<14 | 0x12<<7 | 0x40, - 26809 - 19968: jis0208<<14 | 0x3A<<7 | 0x4D, - 26810 - 19968: jis0208<<14 | 0x3A<<7 | 0x51, - 26811 - 19968: jis0212<<14 | 0x22<<7 | 0x59, - 26812 - 19968: jis0208<<14 | 0x24<<7 | 0x4D, - 26820 - 19968: jis0208<<14 | 0x13<<7 | 0x5D, - 26821 - 19968: jis0212<<14 | 0x22<<7 | 0x5A, - 26822 - 19968: jis0208<<14 | 0x3B<<7 | 0x11, - 26824 - 19968: jis0208<<14 | 0x58<<7 | 0x08, - 26825 - 19968: jis0208<<14 | 0x2B<<7 | 0x28, - 26826 - 19968: jis0208<<14 | 0x3A<<7 | 0x56, - 26827 - 19968: jis0208<<14 | 0x13<<7 | 0x5C, - 26828 - 19968: jis0212<<14 | 0x22<<7 | 0x5C, - 26829 - 19968: jis0208<<14 | 0x3A<<7 | 0x5D, - 26831 - 19968: jis0208<<14 | 0x59<<7 | 0x2C, - 26832 - 19968: jis0212<<14 | 0x23<<7 | 0x00, - 26833 - 19968: jis0212<<14 | 0x23<<7 | 0x01, - 26834 - 19968: jis0208<<14 | 0x2A<<7 | 0x1F, - 26835 - 19968: jis0212<<14 | 0x23<<7 | 0x02, - 26836 - 19968: jis0208<<14 | 0x3B<<7 | 0x00, - 26837 - 19968: jis0208<<14 | 0x3B<<7 | 0x02, - 26838 - 19968: jis0212<<14 | 0x23<<7 | 0x03, - 26839 - 19968: jis0208<<14 | 0x3B<<7 | 0x06, - 26840 - 19968: jis0208<<14 | 0x3A<<7 | 0x58, - 26841 - 19968: jis0212<<14 | 0x23<<7 | 0x04, - 26842 - 19968: jis0208<<14 | 0x22<<7 | 0x09, - 26844 - 19968: jis0212<<14 | 0x23<<7 | 0x05, - 26845 - 19968: jis0212<<14 | 0x23<<7 | 0x06, - 26847 - 19968: jis0208<<14 | 0x24<<7 | 0x4E, - 26848 - 19968: jis0208<<14 | 0x3B<<7 | 0x0A, - 26849 - 19968: jis0208<<14 | 0x3A<<7 | 0x5B, - 26851 - 19968: jis0208<<14 | 0x3B<<7 | 0x07, - 26853 - 19968: jis0212<<14 | 0x23<<7 | 0x07, - 26855 - 19968: jis0208<<14 | 0x3B<<7 | 0x01, - 26856 - 19968: jis0212<<14 | 0x23<<7 | 0x08, - 26858 - 19968: jis0212<<14 | 0x23<<7 | 0x09, - 26859 - 19968: jis0212<<14 | 0x23<<7 | 0x0A, - 26860 - 19968: jis0212<<14 | 0x23<<7 | 0x0B, - 26861 - 19968: jis0212<<14 | 0x23<<7 | 0x0C, - 26862 - 19968: jis0208<<14 | 0x1E<<7 | 0x18, - 26863 - 19968: jis0208<<14 | 0x3B<<7 | 0x0B, - 26864 - 19968: jis0212<<14 | 0x23<<7 | 0x0D, - 26865 - 19968: jis0212<<14 | 0x23<<7 | 0x0E, - 26866 - 19968: jis0208<<14 | 0x1F<<7 | 0x12, - 26869 - 19968: jis0212<<14 | 0x23<<7 | 0x0F, - 26870 - 19968: jis0212<<14 | 0x23<<7 | 0x10, - 26873 - 19968: jis0208<<14 | 0x3B<<7 | 0x09, - 26874 - 19968: jis0208<<14 | 0x13<<7 | 0x1C, - 26875 - 19968: jis0212<<14 | 0x23<<7 | 0x11, - 26876 - 19968: jis0212<<14 | 0x23<<7 | 0x12, - 26877 - 19968: jis0212<<14 | 0x23<<7 | 0x13, - 26880 - 19968: jis0208<<14 | 0x2E<<7 | 0x2F, - 26881 - 19968: jis0208<<14 | 0x3A<<7 | 0x55, - 26884 - 19968: jis0208<<14 | 0x3B<<7 | 0x05, - 26885 - 19968: jis0208<<14 | 0x0F<<7 | 0x37, - 26886 - 19968: jis0212<<14 | 0x23<<7 | 0x14, - 26888 - 19968: jis0208<<14 | 0x3A<<7 | 0x57, - 26889 - 19968: jis0212<<14 | 0x23<<7 | 0x15, - 26890 - 19968: jis0212<<14 | 0x23<<7 | 0x16, - 26891 - 19968: jis0208<<14 | 0x2B<<7 | 0x19, - 26892 - 19968: jis0208<<14 | 0x3A<<7 | 0x5C, - 26893 - 19968: jis0208<<14 | 0x1E<<7 | 0x01, - 26894 - 19968: jis0208<<14 | 0x23<<7 | 0x26, - 26895 - 19968: jis0208<<14 | 0x3A<<7 | 0x52, - 26896 - 19968: jis0212<<14 | 0x23<<7 | 0x17, - 26897 - 19968: jis0212<<14 | 0x23<<7 | 0x18, - 26898 - 19968: jis0208<<14 | 0x3B<<7 | 0x04, - 26899 - 19968: jis0212<<14 | 0x23<<7 | 0x19, - 26902 - 19968: jis0212<<14 | 0x23<<7 | 0x1A, - 26903 - 19968: jis0212<<14 | 0x23<<7 | 0x1B, - 26905 - 19968: jis0208<<14 | 0x1E<<7 | 0x59, - 26906 - 19968: jis0208<<14 | 0x3B<<7 | 0x0E, - 26907 - 19968: jis0208<<14 | 0x12<<7 | 0x50, - 26908 - 19968: jis0208<<14 | 0x17<<7 | 0x00, - 26913 - 19968: jis0208<<14 | 0x3B<<7 | 0x10, - 26914 - 19968: jis0208<<14 | 0x3A<<7 | 0x59, - 26915 - 19968: jis0208<<14 | 0x3B<<7 | 0x0F, - 26917 - 19968: jis0208<<14 | 0x3B<<7 | 0x08, - 26918 - 19968: jis0208<<14 | 0x3A<<7 | 0x5A, - 26920 - 19968: jis0208<<14 | 0x3B<<7 | 0x0C, - 26922 - 19968: jis0208<<14 | 0x3B<<7 | 0x0D, - 26928 - 19968: jis0208<<14 | 0x3B<<7 | 0x1E, - 26929 - 19968: jis0212<<14 | 0x23<<7 | 0x1C, - 26931 - 19968: jis0212<<14 | 0x23<<7 | 0x1D, - 26932 - 19968: jis0208<<14 | 0x25<<7 | 0x2D, - 26933 - 19968: jis0212<<14 | 0x23<<7 | 0x1E, - 26934 - 19968: jis0208<<14 | 0x3B<<7 | 0x03, - 26936 - 19968: jis0212<<14 | 0x23<<7 | 0x1F, - 26937 - 19968: jis0208<<14 | 0x3B<<7 | 0x1A, - 26939 - 19968: jis0212<<14 | 0x23<<7 | 0x20, - 26941 - 19968: jis0208<<14 | 0x3B<<7 | 0x1C, - 26943 - 19968: jis0208<<14 | 0x23<<7 | 0x37, - 26946 - 19968: jis0212<<14 | 0x23<<7 | 0x21, - 26949 - 19968: jis0212<<14 | 0x23<<7 | 0x22, - 26953 - 19968: jis0212<<14 | 0x23<<7 | 0x23, - 26954 - 19968: jis0208<<14 | 0x2C<<7 | 0x2B, - 26958 - 19968: jis0212<<14 | 0x23<<7 | 0x24, - 26963 - 19968: jis0208<<14 | 0x28<<7 | 0x55, - 26964 - 19968: jis0208<<14 | 0x3B<<7 | 0x17, - 26965 - 19968: jis0208<<14 | 0x21<<7 | 0x29, - 26967 - 19968: jis0212<<14 | 0x23<<7 | 0x25, - 26969 - 19968: jis0208<<14 | 0x3B<<7 | 0x1D, - 26970 - 19968: jis0208<<14 | 0x20<<7 | 0x1E, - 26971 - 19968: jis0212<<14 | 0x23<<7 | 0x26, - 26972 - 19968: jis0208<<14 | 0x3B<<7 | 0x14, - 26973 - 19968: jis0208<<14 | 0x3B<<7 | 0x21, - 26974 - 19968: jis0208<<14 | 0x3B<<7 | 0x20, - 26976 - 19968: jis0208<<14 | 0x25<<7 | 0x4E, - 26977 - 19968: jis0208<<14 | 0x3B<<7 | 0x1F, - 26978 - 19968: jis0208<<14 | 0x25<<7 | 0x49, - 26979 - 19968: jis0212<<14 | 0x23<<7 | 0x27, - 26980 - 19968: jis0212<<14 | 0x23<<7 | 0x28, - 26981 - 19968: jis0212<<14 | 0x23<<7 | 0x29, - 26982 - 19968: jis0212<<14 | 0x23<<7 | 0x2A, - 26984 - 19968: jis0208<<14 | 0x59<<7 | 0x2E, - 26985 - 19968: jis0212<<14 | 0x23<<7 | 0x2C, - 26986 - 19968: jis0208<<14 | 0x3B<<7 | 0x23, - 26987 - 19968: jis0208<<14 | 0x3B<<7 | 0x16, - 26988 - 19968: jis0212<<14 | 0x23<<7 | 0x2D, - 26989 - 19968: jis0208<<14 | 0x15<<7 | 0x27, - 26990 - 19968: jis0208<<14 | 0x3B<<7 | 0x19, - 26991 - 19968: jis0208<<14 | 0x1C<<7 | 0x3C, - 26992 - 19968: jis0212<<14 | 0x23<<7 | 0x2E, - 26993 - 19968: jis0212<<14 | 0x23<<7 | 0x2F, - 26994 - 19968: jis0212<<14 | 0x23<<7 | 0x30, - 26995 - 19968: jis0208<<14 | 0x26<<7 | 0x3F, - 26996 - 19968: jis0208<<14 | 0x3B<<7 | 0x1B, - 26997 - 19968: jis0208<<14 | 0x15<<7 | 0x2A, - 26999 - 19968: jis0208<<14 | 0x3B<<7 | 0x13, - 27000 - 19968: jis0208<<14 | 0x3B<<7 | 0x15, - 27001 - 19968: jis0208<<14 | 0x3B<<7 | 0x12, - 27002 - 19968: jis0212<<14 | 0x23<<7 | 0x31, - 27003 - 19968: jis0212<<14 | 0x23<<7 | 0x32, - 27004 - 19968: jis0208<<14 | 0x2E<<7 | 0x0F, - 27005 - 19968: jis0208<<14 | 0x12<<7 | 0x39, - 27006 - 19968: jis0208<<14 | 0x3B<<7 | 0x18, - 27007 - 19968: jis0212<<14 | 0x23<<7 | 0x33, - 27008 - 19968: jis0212<<14 | 0x23<<7 | 0x34, - 27009 - 19968: jis0208<<14 | 0x3B<<7 | 0x22, - 27010 - 19968: jis0208<<14 | 0x12<<7 | 0x14, - 27018 - 19968: jis0208<<14 | 0x19<<7 | 0x46, - 27021 - 19968: jis0212<<14 | 0x23<<7 | 0x35, - 27022 - 19968: jis0208<<14 | 0x10<<7 | 0x3C, - 27025 - 19968: jis0208<<14 | 0x3B<<7 | 0x33, - 27026 - 19968: jis0212<<14 | 0x23<<7 | 0x36, - 27028 - 19968: jis0208<<14 | 0x2E<<7 | 0x10, - 27029 - 19968: jis0208<<14 | 0x3B<<7 | 0x36, - 27030 - 19968: jis0212<<14 | 0x23<<7 | 0x37, - 27032 - 19968: jis0208<<14 | 0x59<<7 | 0x30, - 27035 - 19968: jis0208<<14 | 0x1E<<7 | 0x19, - 27036 - 19968: jis0208<<14 | 0x3B<<7 | 0x35, - 27040 - 19968: jis0208<<14 | 0x3B<<7 | 0x34, - 27041 - 19968: jis0212<<14 | 0x23<<7 | 0x39, - 27045 - 19968: jis0212<<14 | 0x23<<7 | 0x3A, - 27046 - 19968: jis0212<<14 | 0x23<<7 | 0x3B, - 27047 - 19968: jis0208<<14 | 0x3B<<7 | 0x31, - 27048 - 19968: jis0212<<14 | 0x23<<7 | 0x3C, - 27051 - 19968: jis0212<<14 | 0x23<<7 | 0x3D, - 27053 - 19968: jis0212<<14 | 0x23<<7 | 0x3E, - 27054 - 19968: jis0208<<14 | 0x3B<<7 | 0x25, - 27055 - 19968: jis0212<<14 | 0x23<<7 | 0x3F, - 27057 - 19968: jis0208<<14 | 0x3B<<7 | 0x42, - 27058 - 19968: jis0208<<14 | 0x3B<<7 | 0x24, - 27060 - 19968: jis0208<<14 | 0x3B<<7 | 0x37, - 27063 - 19968: jis0212<<14 | 0x23<<7 | 0x40, - 27064 - 19968: jis0212<<14 | 0x23<<7 | 0x41, - 27066 - 19968: jis0212<<14 | 0x23<<7 | 0x42, - 27067 - 19968: jis0208<<14 | 0x3B<<7 | 0x2F, - 27068 - 19968: jis0212<<14 | 0x23<<7 | 0x43, - 27070 - 19968: jis0208<<14 | 0x3B<<7 | 0x2A, - 27071 - 19968: jis0208<<14 | 0x3B<<7 | 0x27, - 27073 - 19968: jis0208<<14 | 0x3B<<7 | 0x28, - 27075 - 19968: jis0208<<14 | 0x3B<<7 | 0x30, - 27077 - 19968: jis0212<<14 | 0x23<<7 | 0x44, - 27079 - 19968: jis0208<<14 | 0x53<<7 | 0x01, - 27080 - 19968: jis0212<<14 | 0x23<<7 | 0x45, - 27082 - 19968: jis0208<<14 | 0x3B<<7 | 0x2D, - 27083 - 19968: jis0208<<14 | 0x18<<7 | 0x1C, - 27084 - 19968: jis0208<<14 | 0x23<<7 | 0x27, - 27085 - 19968: jis0208<<14 | 0x20<<7 | 0x43, - 27086 - 19968: jis0208<<14 | 0x3B<<7 | 0x2B, - 27088 - 19968: jis0208<<14 | 0x3B<<7 | 0x26, - 27089 - 19968: jis0212<<14 | 0x23<<7 | 0x46, - 27091 - 19968: jis0208<<14 | 0x3B<<7 | 0x29, - 27094 - 19968: jis0212<<14 | 0x23<<7 | 0x47, - 27095 - 19968: jis0212<<14 | 0x23<<7 | 0x48, - 27096 - 19968: jis0208<<14 | 0x2C<<7 | 0x2C, - 27097 - 19968: jis0208<<14 | 0x2A<<7 | 0x49, - 27101 - 19968: jis0208<<14 | 0x3B<<7 | 0x2E, - 27102 - 19968: jis0208<<14 | 0x3B<<7 | 0x38, - 27106 - 19968: jis0208<<14 | 0x59<<7 | 0x31, - 27109 - 19968: jis0212<<14 | 0x23<<7 | 0x4A, - 27111 - 19968: jis0208<<14 | 0x3B<<7 | 0x40, - 27112 - 19968: jis0208<<14 | 0x3B<<7 | 0x39, - 27115 - 19968: jis0208<<14 | 0x3B<<7 | 0x46, - 27117 - 19968: jis0208<<14 | 0x3B<<7 | 0x44, - 27118 - 19968: jis0212<<14 | 0x23<<7 | 0x4B, - 27119 - 19968: jis0212<<14 | 0x23<<7 | 0x4C, - 27121 - 19968: jis0212<<14 | 0x23<<7 | 0x4D, - 27122 - 19968: jis0208<<14 | 0x3B<<7 | 0x3F, - 27123 - 19968: jis0212<<14 | 0x23<<7 | 0x4E, - 27125 - 19968: jis0212<<14 | 0x23<<7 | 0x4F, - 27129 - 19968: jis0208<<14 | 0x3B<<7 | 0x3E, - 27131 - 19968: jis0208<<14 | 0x23<<7 | 0x2F, - 27133 - 19968: jis0208<<14 | 0x20<<7 | 0x44, - 27134 - 19968: jis0212<<14 | 0x23<<7 | 0x50, - 27135 - 19968: jis0208<<14 | 0x3B<<7 | 0x3C, - 27136 - 19968: jis0212<<14 | 0x23<<7 | 0x51, - 27137 - 19968: jis0212<<14 | 0x23<<7 | 0x52, - 27138 - 19968: jis0208<<14 | 0x3B<<7 | 0x3A, - 27139 - 19968: jis0212<<14 | 0x23<<7 | 0x53, - 27141 - 19968: jis0208<<14 | 0x3B<<7 | 0x41, - 27146 - 19968: jis0208<<14 | 0x3B<<7 | 0x47, - 27147 - 19968: jis0208<<14 | 0x27<<7 | 0x54, - 27148 - 19968: jis0208<<14 | 0x3B<<7 | 0x4D, - 27151 - 19968: jis0212<<14 | 0x23<<7 | 0x54, - 27153 - 19968: jis0212<<14 | 0x23<<7 | 0x55, - 27154 - 19968: jis0208<<14 | 0x3B<<7 | 0x48, - 27155 - 19968: jis0208<<14 | 0x3B<<7 | 0x4B, - 27156 - 19968: jis0208<<14 | 0x3B<<7 | 0x45, - 27157 - 19968: jis0212<<14 | 0x23<<7 | 0x56, - 27159 - 19968: jis0208<<14 | 0x22<<7 | 0x53, - 27161 - 19968: jis0208<<14 | 0x28<<7 | 0x17, - 27162 - 19968: jis0212<<14 | 0x23<<7 | 0x57, - 27163 - 19968: jis0208<<14 | 0x3B<<7 | 0x3B, - 27165 - 19968: jis0212<<14 | 0x23<<7 | 0x58, - 27166 - 19968: jis0208<<14 | 0x3B<<7 | 0x43, - 27167 - 19968: jis0208<<14 | 0x1D<<7 | 0x1F, - 27168 - 19968: jis0212<<14 | 0x23<<7 | 0x59, - 27169 - 19968: jis0208<<14 | 0x2B<<7 | 0x2E, - 27170 - 19968: jis0208<<14 | 0x3B<<7 | 0x57, - 27171 - 19968: jis0208<<14 | 0x3B<<7 | 0x4A, - 27172 - 19968: jis0212<<14 | 0x23<<7 | 0x5A, - 27176 - 19968: jis0212<<14 | 0x23<<7 | 0x5B, - 27177 - 19968: jis0208<<14 | 0x17<<7 | 0x01, - 27178 - 19968: jis0208<<14 | 0x11<<7 | 0x02, - 27179 - 19968: jis0208<<14 | 0x12<<7 | 0x3E, - 27182 - 19968: jis0208<<14 | 0x3B<<7 | 0x32, - 27184 - 19968: jis0208<<14 | 0x59<<7 | 0x32, - 27186 - 19968: jis0212<<14 | 0x23<<7 | 0x5D, - 27188 - 19968: jis0212<<14 | 0x24<<7 | 0x00, - 27189 - 19968: jis0208<<14 | 0x1D<<7 | 0x20, - 27190 - 19968: jis0208<<14 | 0x3B<<7 | 0x4F, - 27191 - 19968: jis0212<<14 | 0x24<<7 | 0x01, - 27192 - 19968: jis0208<<14 | 0x3B<<7 | 0x56, - 27193 - 19968: jis0208<<14 | 0x1B<<7 | 0x58, - 27194 - 19968: jis0208<<14 | 0x12<<7 | 0x51, - 27195 - 19968: jis0212<<14 | 0x24<<7 | 0x02, - 27197 - 19968: jis0208<<14 | 0x22<<7 | 0x0D, - 27198 - 19968: jis0212<<14 | 0x24<<7 | 0x03, - 27199 - 19968: jis0212<<14 | 0x24<<7 | 0x04, - 27204 - 19968: jis0208<<14 | 0x3B<<7 | 0x4C, - 27205 - 19968: jis0212<<14 | 0x24<<7 | 0x05, - 27206 - 19968: jis0208<<14 | 0x59<<7 | 0x34, - 27207 - 19968: jis0208<<14 | 0x3B<<7 | 0x51, - 27208 - 19968: jis0208<<14 | 0x3B<<7 | 0x55, - 27209 - 19968: jis0212<<14 | 0x24<<7 | 0x07, - 27210 - 19968: jis0212<<14 | 0x24<<7 | 0x08, - 27211 - 19968: jis0208<<14 | 0x15<<7 | 0x15, - 27214 - 19968: jis0212<<14 | 0x24<<7 | 0x09, - 27216 - 19968: jis0212<<14 | 0x24<<7 | 0x0A, - 27217 - 19968: jis0212<<14 | 0x24<<7 | 0x0B, - 27218 - 19968: jis0212<<14 | 0x24<<7 | 0x0C, - 27221 - 19968: jis0212<<14 | 0x24<<7 | 0x0D, - 27222 - 19968: jis0212<<14 | 0x24<<7 | 0x0E, - 27224 - 19968: jis0208<<14 | 0x14<<7 | 0x2B, - 27225 - 19968: jis0208<<14 | 0x3B<<7 | 0x53, - 27227 - 19968: jis0212<<14 | 0x24<<7 | 0x0F, - 27231 - 19968: jis0208<<14 | 0x14<<7 | 0x00, - 27233 - 19968: jis0208<<14 | 0x25<<7 | 0x2A, - 27234 - 19968: jis0208<<14 | 0x3B<<7 | 0x52, - 27236 - 19968: jis0212<<14 | 0x24<<7 | 0x10, - 27238 - 19968: jis0208<<14 | 0x3B<<7 | 0x54, - 27239 - 19968: jis0212<<14 | 0x24<<7 | 0x11, - 27242 - 19968: jis0212<<14 | 0x24<<7 | 0x12, - 27243 - 19968: jis0208<<14 | 0x59<<7 | 0x33, - 27249 - 19968: jis0212<<14 | 0x24<<7 | 0x13, - 27250 - 19968: jis0208<<14 | 0x3B<<7 | 0x4E, - 27251 - 19968: jis0208<<14 | 0x59<<7 | 0x35, - 27256 - 19968: jis0208<<14 | 0x3B<<7 | 0x50, - 27262 - 19968: jis0208<<14 | 0x59<<7 | 0x36, - 27263 - 19968: jis0208<<14 | 0x12<<7 | 0x3F, - 27264 - 19968: jis0208<<14 | 0x22<<7 | 0x28, - 27265 - 19968: jis0212<<14 | 0x24<<7 | 0x16, - 27267 - 19968: jis0212<<14 | 0x24<<7 | 0x17, - 27268 - 19968: jis0208<<14 | 0x3B<<7 | 0x5B, - 27270 - 19968: jis0212<<14 | 0x24<<7 | 0x18, - 27271 - 19968: jis0212<<14 | 0x24<<7 | 0x19, - 27273 - 19968: jis0212<<14 | 0x24<<7 | 0x1A, - 27275 - 19968: jis0212<<14 | 0x24<<7 | 0x1B, - 27277 - 19968: jis0208<<14 | 0x3B<<7 | 0x59, - 27278 - 19968: jis0208<<14 | 0x17<<7 | 0x48, - 27280 - 19968: jis0208<<14 | 0x3B<<7 | 0x58, - 27281 - 19968: jis0212<<14 | 0x24<<7 | 0x1C, - 27287 - 19968: jis0208<<14 | 0x3C<<7 | 0x00, - 27291 - 19968: jis0212<<14 | 0x24<<7 | 0x1D, - 27292 - 19968: jis0208<<14 | 0x3A<<7 | 0x37, - 27293 - 19968: jis0212<<14 | 0x24<<7 | 0x1E, - 27294 - 19968: jis0212<<14 | 0x24<<7 | 0x1F, - 27295 - 19968: jis0212<<14 | 0x24<<7 | 0x20, - 27296 - 19968: jis0208<<14 | 0x3B<<7 | 0x5A, - 27298 - 19968: jis0208<<14 | 0x3B<<7 | 0x5C, - 27299 - 19968: jis0208<<14 | 0x3B<<7 | 0x5D, - 27301 - 19968: jis0212<<14 | 0x24<<7 | 0x21, - 27306 - 19968: jis0208<<14 | 0x3C<<7 | 0x0B, - 27307 - 19968: jis0212<<14 | 0x24<<7 | 0x22, - 27308 - 19968: jis0208<<14 | 0x3C<<7 | 0x07, - 27310 - 19968: jis0208<<14 | 0x3A<<7 | 0x4C, - 27311 - 19968: jis0212<<14 | 0x24<<7 | 0x23, - 27312 - 19968: jis0212<<14 | 0x24<<7 | 0x24, - 27313 - 19968: jis0212<<14 | 0x24<<7 | 0x25, - 27315 - 19968: jis0208<<14 | 0x3C<<7 | 0x06, - 27316 - 19968: jis0212<<14 | 0x24<<7 | 0x26, - 27320 - 19968: jis0208<<14 | 0x3C<<7 | 0x05, - 27323 - 19968: jis0208<<14 | 0x3C<<7 | 0x02, - 27325 - 19968: jis0212<<14 | 0x24<<7 | 0x27, - 27326 - 19968: jis0212<<14 | 0x24<<7 | 0x28, - 27327 - 19968: jis0212<<14 | 0x24<<7 | 0x29, - 27329 - 19968: jis0208<<14 | 0x3B<<7 | 0x49, - 27330 - 19968: jis0208<<14 | 0x3C<<7 | 0x04, - 27331 - 19968: jis0208<<14 | 0x3C<<7 | 0x03, - 27334 - 19968: jis0212<<14 | 0x24<<7 | 0x2A, - 27336 - 19968: jis0212<<14 | 0x24<<7 | 0x2C, - 27337 - 19968: jis0212<<14 | 0x24<<7 | 0x2B, - 27340 - 19968: jis0212<<14 | 0x24<<7 | 0x2D, - 27344 - 19968: jis0212<<14 | 0x24<<7 | 0x2E, - 27345 - 19968: jis0208<<14 | 0x3C<<7 | 0x09, - 27347 - 19968: jis0208<<14 | 0x2E<<7 | 0x05, - 27348 - 19968: jis0212<<14 | 0x24<<7 | 0x2F, - 27349 - 19968: jis0212<<14 | 0x24<<7 | 0x30, - 27350 - 19968: jis0212<<14 | 0x24<<7 | 0x31, - 27354 - 19968: jis0208<<14 | 0x3C<<7 | 0x0C, - 27355 - 19968: jis0208<<14 | 0x15<<7 | 0x5A, - 27356 - 19968: jis0212<<14 | 0x24<<7 | 0x32, - 27357 - 19968: jis0212<<14 | 0x24<<7 | 0x33, - 27358 - 19968: jis0208<<14 | 0x3C<<7 | 0x08, - 27359 - 19968: jis0208<<14 | 0x3C<<7 | 0x0A, - 27362 - 19968: jis0208<<14 | 0x59<<7 | 0x37, - 27364 - 19968: jis0208<<14 | 0x59<<7 | 0x38, - 27367 - 19968: jis0212<<14 | 0x24<<7 | 0x35, - 27368 - 19968: jis0208<<14 | 0x27<<7 | 0x06, - 27370 - 19968: jis0208<<14 | 0x3C<<7 | 0x0D, - 27372 - 19968: jis0212<<14 | 0x24<<7 | 0x36, - 27376 - 19968: jis0212<<14 | 0x24<<7 | 0x37, - 27377 - 19968: jis0212<<14 | 0x24<<7 | 0x38, - 27378 - 19968: jis0212<<14 | 0x24<<7 | 0x39, - 27386 - 19968: jis0208<<14 | 0x3C<<7 | 0x11, - 27387 - 19968: jis0208<<14 | 0x3C<<7 | 0x0E, - 27388 - 19968: jis0212<<14 | 0x24<<7 | 0x3A, - 27389 - 19968: jis0212<<14 | 0x24<<7 | 0x3B, - 27394 - 19968: jis0212<<14 | 0x24<<7 | 0x3C, - 27395 - 19968: jis0212<<14 | 0x24<<7 | 0x3D, - 27396 - 19968: jis0208<<14 | 0x2C<<7 | 0x52, - 27397 - 19968: jis0208<<14 | 0x3C<<7 | 0x0F, - 27398 - 19968: jis0212<<14 | 0x24<<7 | 0x3E, - 27399 - 19968: jis0212<<14 | 0x24<<7 | 0x3F, - 27401 - 19968: jis0212<<14 | 0x24<<7 | 0x40, - 27402 - 19968: jis0208<<14 | 0x3B<<7 | 0x3D, - 27407 - 19968: jis0212<<14 | 0x24<<7 | 0x41, - 27408 - 19968: jis0212<<14 | 0x24<<7 | 0x42, - 27409 - 19968: jis0212<<14 | 0x24<<7 | 0x43, - 27410 - 19968: jis0208<<14 | 0x3C<<7 | 0x12, - 27414 - 19968: jis0208<<14 | 0x3C<<7 | 0x13, - 27415 - 19968: jis0212<<14 | 0x24<<7 | 0x44, - 27419 - 19968: jis0212<<14 | 0x24<<7 | 0x45, - 27421 - 19968: jis0208<<14 | 0x10<<7 | 0x14, - 27422 - 19968: jis0212<<14 | 0x24<<7 | 0x46, - 27423 - 19968: jis0208<<14 | 0x3C<<7 | 0x15, - 27424 - 19968: jis0208<<14 | 0x16<<7 | 0x46, - 27425 - 19968: jis0208<<14 | 0x1B<<7 | 0x00, - 27427 - 19968: jis0208<<14 | 0x15<<7 | 0x34, - 27428 - 19968: jis0212<<14 | 0x24<<7 | 0x47, - 27431 - 19968: jis0208<<14 | 0x11<<7 | 0x03, - 27432 - 19968: jis0212<<14 | 0x24<<7 | 0x48, - 27435 - 19968: jis0212<<14 | 0x24<<7 | 0x49, - 27436 - 19968: jis0212<<14 | 0x24<<7 | 0x4A, - 27439 - 19968: jis0212<<14 | 0x24<<7 | 0x4B, - 27442 - 19968: jis0208<<14 | 0x2C<<7 | 0x3E, - 27445 - 19968: jis0212<<14 | 0x24<<7 | 0x4C, - 27446 - 19968: jis0212<<14 | 0x24<<7 | 0x4D, - 27447 - 19968: jis0208<<14 | 0x3C<<7 | 0x17, - 27448 - 19968: jis0208<<14 | 0x3C<<7 | 0x16, - 27449 - 19968: jis0208<<14 | 0x3C<<7 | 0x19, - 27450 - 19968: jis0208<<14 | 0x14<<7 | 0x1C, - 27451 - 19968: jis0212<<14 | 0x24<<7 | 0x4E, - 27453 - 19968: jis0208<<14 | 0x15<<7 | 0x35, - 27454 - 19968: jis0208<<14 | 0x13<<7 | 0x1D, - 27455 - 19968: jis0212<<14 | 0x24<<7 | 0x4F, - 27459 - 19968: jis0208<<14 | 0x3C<<7 | 0x1C, - 27462 - 19968: jis0212<<14 | 0x24<<7 | 0x50, - 27463 - 19968: jis0208<<14 | 0x3C<<7 | 0x1B, - 27465 - 19968: jis0208<<14 | 0x3C<<7 | 0x1D, - 27466 - 19968: jis0212<<14 | 0x24<<7 | 0x51, - 27468 - 19968: jis0208<<14 | 0x11<<7 | 0x2D, - 27469 - 19968: jis0212<<14 | 0x24<<7 | 0x52, - 27470 - 19968: jis0208<<14 | 0x22<<7 | 0x16, - 27472 - 19968: jis0208<<14 | 0x3C<<7 | 0x1E, - 27474 - 19968: jis0212<<14 | 0x24<<7 | 0x53, - 27475 - 19968: jis0208<<14 | 0x13<<7 | 0x1E, - 27476 - 19968: jis0208<<14 | 0x3C<<7 | 0x20, - 27478 - 19968: jis0212<<14 | 0x24<<7 | 0x54, - 27480 - 19968: jis0212<<14 | 0x24<<7 | 0x55, - 27481 - 19968: jis0208<<14 | 0x3C<<7 | 0x1F, - 27483 - 19968: jis0208<<14 | 0x3C<<7 | 0x21, - 27485 - 19968: jis0212<<14 | 0x24<<7 | 0x56, - 27487 - 19968: jis0208<<14 | 0x3C<<7 | 0x22, - 27488 - 19968: jis0212<<14 | 0x24<<7 | 0x57, - 27489 - 19968: jis0208<<14 | 0x3C<<7 | 0x23, - 27490 - 19968: jis0208<<14 | 0x1A<<7 | 0x3E, - 27491 - 19968: jis0208<<14 | 0x1F<<7 | 0x14, - 27492 - 19968: jis0208<<14 | 0x19<<7 | 0x00, - 27494 - 19968: jis0208<<14 | 0x28<<7 | 0x4F, - 27495 - 19968: jis0212<<14 | 0x24<<7 | 0x58, - 27497 - 19968: jis0208<<14 | 0x29<<7 | 0x41, - 27498 - 19968: jis0208<<14 | 0x2E<<7 | 0x23, - 27499 - 19968: jis0212<<14 | 0x24<<7 | 0x59, - 27502 - 19968: jis0212<<14 | 0x24<<7 | 0x5A, - 27503 - 19968: jis0208<<14 | 0x1A<<7 | 0x54, - 27504 - 19968: jis0212<<14 | 0x24<<7 | 0x5B, - 27507 - 19968: jis0208<<14 | 0x19<<7 | 0x2F, - 27508 - 19968: jis0208<<14 | 0x2D<<7 | 0x51, - 27509 - 19968: jis0212<<14 | 0x24<<7 | 0x5C, - 27512 - 19968: jis0208<<14 | 0x3C<<7 | 0x24, - 27513 - 19968: jis0208<<14 | 0x3C<<7 | 0x25, - 27515 - 19968: jis0208<<14 | 0x1A<<7 | 0x3F, - 27517 - 19968: jis0212<<14 | 0x24<<7 | 0x5D, - 27518 - 19968: jis0212<<14 | 0x25<<7 | 0x00, - 27519 - 19968: jis0208<<14 | 0x3C<<7 | 0x26, - 27520 - 19968: jis0208<<14 | 0x3C<<7 | 0x27, - 27522 - 19968: jis0212<<14 | 0x25<<7 | 0x01, - 27523 - 19968: jis0208<<14 | 0x3C<<7 | 0x29, - 27524 - 19968: jis0208<<14 | 0x3C<<7 | 0x28, - 27525 - 19968: jis0212<<14 | 0x25<<7 | 0x02, - 27526 - 19968: jis0208<<14 | 0x2A<<7 | 0x37, - 27529 - 19968: jis0208<<14 | 0x1C<<7 | 0x3D, - 27530 - 19968: jis0208<<14 | 0x1B<<7 | 0x4B, - 27531 - 19968: jis0208<<14 | 0x1A<<7 | 0x23, - 27533 - 19968: jis0208<<14 | 0x3C<<7 | 0x2A, - 27541 - 19968: jis0208<<14 | 0x3C<<7 | 0x2C, - 27542 - 19968: jis0208<<14 | 0x1E<<7 | 0x02, - 27543 - 19968: jis0212<<14 | 0x25<<7 | 0x03, - 27544 - 19968: jis0208<<14 | 0x3C<<7 | 0x2B, - 27547 - 19968: jis0212<<14 | 0x25<<7 | 0x04, - 27550 - 19968: jis0208<<14 | 0x3C<<7 | 0x2D, - 27551 - 19968: jis0212<<14 | 0x25<<7 | 0x05, - 27552 - 19968: jis0212<<14 | 0x25<<7 | 0x06, - 27554 - 19968: jis0212<<14 | 0x25<<7 | 0x07, - 27555 - 19968: jis0212<<14 | 0x25<<7 | 0x08, - 27556 - 19968: jis0208<<14 | 0x3C<<7 | 0x2E, - 27560 - 19968: jis0212<<14 | 0x25<<7 | 0x09, - 27561 - 19968: jis0212<<14 | 0x25<<7 | 0x0A, - 27562 - 19968: jis0208<<14 | 0x3C<<7 | 0x2F, - 27563 - 19968: jis0208<<14 | 0x3C<<7 | 0x30, - 27564 - 19968: jis0212<<14 | 0x25<<7 | 0x0B, - 27565 - 19968: jis0212<<14 | 0x25<<7 | 0x0C, - 27566 - 19968: jis0212<<14 | 0x25<<7 | 0x0D, - 27567 - 19968: jis0208<<14 | 0x3C<<7 | 0x31, - 27568 - 19968: jis0212<<14 | 0x25<<7 | 0x0E, - 27569 - 19968: jis0208<<14 | 0x3C<<7 | 0x33, - 27570 - 19968: jis0208<<14 | 0x3C<<7 | 0x32, - 27571 - 19968: jis0208<<14 | 0x3C<<7 | 0x34, - 27572 - 19968: jis0208<<14 | 0x11<<7 | 0x04, - 27573 - 19968: jis0208<<14 | 0x22<<7 | 0x29, - 27575 - 19968: jis0208<<14 | 0x3C<<7 | 0x35, - 27576 - 19968: jis0212<<14 | 0x25<<7 | 0x0F, - 27577 - 19968: jis0212<<14 | 0x25<<7 | 0x10, - 27578 - 19968: jis0208<<14 | 0x1A<<7 | 0x05, - 27579 - 19968: jis0208<<14 | 0x12<<7 | 0x2B, - 27580 - 19968: jis0208<<14 | 0x3C<<7 | 0x36, - 27581 - 19968: jis0212<<14 | 0x25<<7 | 0x11, - 27582 - 19968: jis0212<<14 | 0x25<<7 | 0x12, - 27583 - 19968: jis0208<<14 | 0x24<<7 | 0x21, - 27584 - 19968: jis0208<<14 | 0x33<<7 | 0x2B, - 27587 - 19968: jis0212<<14 | 0x25<<7 | 0x13, - 27588 - 19968: jis0212<<14 | 0x25<<7 | 0x14, - 27589 - 19968: jis0208<<14 | 0x14<<7 | 0x02, - 27590 - 19968: jis0208<<14 | 0x3C<<7 | 0x37, - 27593 - 19968: jis0212<<14 | 0x25<<7 | 0x15, - 27595 - 19968: jis0208<<14 | 0x3C<<7 | 0x38, - 27596 - 19968: jis0212<<14 | 0x25<<7 | 0x16, - 27597 - 19968: jis0208<<14 | 0x29<<7 | 0x4B, - 27598 - 19968: jis0208<<14 | 0x2A<<7 | 0x47, - 27602 - 19968: jis0208<<14 | 0x25<<7 | 0x26, - 27603 - 19968: jis0208<<14 | 0x3C<<7 | 0x39, - 27604 - 19968: jis0208<<14 | 0x27<<7 | 0x45, - 27606 - 19968: jis0208<<14 | 0x59<<7 | 0x39, - 27608 - 19968: jis0208<<14 | 0x27<<7 | 0x5A, - 27610 - 19968: jis0212<<14 | 0x25<<7 | 0x18, - 27611 - 19968: jis0208<<14 | 0x2B<<7 | 0x32, - 27615 - 19968: jis0208<<14 | 0x3C<<7 | 0x3A, - 27617 - 19968: jis0212<<14 | 0x25<<7 | 0x19, - 27619 - 19968: jis0212<<14 | 0x25<<7 | 0x1A, - 27622 - 19968: jis0212<<14 | 0x25<<7 | 0x1B, - 27623 - 19968: jis0212<<14 | 0x25<<7 | 0x1C, - 27627 - 19968: jis0208<<14 | 0x3C<<7 | 0x3C, - 27628 - 19968: jis0208<<14 | 0x3C<<7 | 0x3B, - 27630 - 19968: jis0212<<14 | 0x25<<7 | 0x1D, - 27631 - 19968: jis0208<<14 | 0x3C<<7 | 0x3E, - 27633 - 19968: jis0212<<14 | 0x25<<7 | 0x1E, - 27635 - 19968: jis0208<<14 | 0x3C<<7 | 0x3D, - 27639 - 19968: jis0212<<14 | 0x25<<7 | 0x1F, - 27641 - 19968: jis0212<<14 | 0x25<<7 | 0x20, - 27647 - 19968: jis0212<<14 | 0x25<<7 | 0x21, - 27650 - 19968: jis0212<<14 | 0x25<<7 | 0x22, - 27652 - 19968: jis0212<<14 | 0x25<<7 | 0x23, - 27653 - 19968: jis0212<<14 | 0x25<<7 | 0x24, - 27656 - 19968: jis0208<<14 | 0x3C<<7 | 0x40, - 27657 - 19968: jis0212<<14 | 0x25<<7 | 0x25, - 27661 - 19968: jis0212<<14 | 0x25<<7 | 0x26, - 27662 - 19968: jis0212<<14 | 0x25<<7 | 0x27, - 27663 - 19968: jis0208<<14 | 0x1A<<7 | 0x40, - 27664 - 19968: jis0212<<14 | 0x25<<7 | 0x28, - 27665 - 19968: jis0208<<14 | 0x2B<<7 | 0x10, - 27666 - 19968: jis0212<<14 | 0x25<<7 | 0x29, - 27667 - 19968: jis0208<<14 | 0x3C<<7 | 0x41, - 27668 - 19968: jis0208<<14 | 0x3C<<7 | 0x42, - 27671 - 19968: jis0208<<14 | 0x14<<7 | 0x03, - 27673 - 19968: jis0212<<14 | 0x25<<7 | 0x2A, - 27675 - 19968: jis0208<<14 | 0x3C<<7 | 0x43, - 27679 - 19968: jis0212<<14 | 0x25<<7 | 0x2B, - 27683 - 19968: jis0208<<14 | 0x3C<<7 | 0x45, - 27684 - 19968: jis0208<<14 | 0x3C<<7 | 0x44, - 27686 - 19968: jis0212<<14 | 0x25<<7 | 0x2C, - 27687 - 19968: jis0212<<14 | 0x25<<7 | 0x2D, - 27688 - 19968: jis0212<<14 | 0x25<<7 | 0x2E, - 27692 - 19968: jis0212<<14 | 0x25<<7 | 0x2F, - 27694 - 19968: jis0212<<14 | 0x25<<7 | 0x30, - 27699 - 19968: jis0212<<14 | 0x25<<7 | 0x31, - 27700 - 19968: jis0208<<14 | 0x1E<<7 | 0x44, - 27701 - 19968: jis0212<<14 | 0x25<<7 | 0x32, - 27702 - 19968: jis0212<<14 | 0x25<<7 | 0x33, - 27703 - 19968: jis0208<<14 | 0x28<<7 | 0x18, - 27704 - 19968: jis0208<<14 | 0x10<<7 | 0x29, - 27706 - 19968: jis0212<<14 | 0x25<<7 | 0x34, - 27707 - 19968: jis0212<<14 | 0x25<<7 | 0x35, - 27710 - 19968: jis0208<<14 | 0x27<<7 | 0x24, - 27711 - 19968: jis0208<<14 | 0x59<<7 | 0x3A, - 27712 - 19968: jis0208<<14 | 0x23<<7 | 0x54, - 27713 - 19968: jis0208<<14 | 0x1C<<7 | 0x20, - 27714 - 19968: jis0208<<14 | 0x14<<7 | 0x40, - 27722 - 19968: jis0212<<14 | 0x25<<7 | 0x37, - 27723 - 19968: jis0212<<14 | 0x25<<7 | 0x38, - 27725 - 19968: jis0212<<14 | 0x25<<7 | 0x39, - 27726 - 19968: jis0208<<14 | 0x27<<7 | 0x25, - 27727 - 19968: jis0212<<14 | 0x25<<7 | 0x3A, - 27728 - 19968: jis0208<<14 | 0x1B<<7 | 0x0D, - 27730 - 19968: jis0212<<14 | 0x25<<7 | 0x3B, - 27732 - 19968: jis0212<<14 | 0x25<<7 | 0x3C, - 27733 - 19968: jis0208<<14 | 0x3C<<7 | 0x47, - 27735 - 19968: jis0208<<14 | 0x13<<7 | 0x1F, - 27737 - 19968: jis0212<<14 | 0x25<<7 | 0x3D, - 27738 - 19968: jis0208<<14 | 0x10<<7 | 0x57, - 27739 - 19968: jis0212<<14 | 0x25<<7 | 0x3E, - 27740 - 19968: jis0208<<14 | 0x59<<7 | 0x3B, - 27741 - 19968: jis0208<<14 | 0x25<<7 | 0x51, - 27742 - 19968: jis0208<<14 | 0x3C<<7 | 0x46, - 27743 - 19968: jis0208<<14 | 0x18<<7 | 0x1D, - 27744 - 19968: jis0208<<14 | 0x22<<7 | 0x32, - 27746 - 19968: jis0208<<14 | 0x3C<<7 | 0x48, - 27751 - 19968: jis0212<<14 | 0x26<<7 | 0x15, - 27752 - 19968: jis0208<<14 | 0x3C<<7 | 0x50, - 27754 - 19968: jis0208<<14 | 0x3C<<7 | 0x49, - 27755 - 19968: jis0212<<14 | 0x25<<7 | 0x40, - 27757 - 19968: jis0212<<14 | 0x25<<7 | 0x41, - 27759 - 19968: jis0208<<14 | 0x59<<7 | 0x3D, - 27760 - 19968: jis0208<<14 | 0x21<<7 | 0x20, - 27762 - 19968: jis0208<<14 | 0x14<<7 | 0x41, - 27763 - 19968: jis0208<<14 | 0x3C<<7 | 0x51, - 27764 - 19968: jis0212<<14 | 0x25<<7 | 0x43, - 27766 - 19968: jis0212<<14 | 0x25<<7 | 0x44, - 27768 - 19968: jis0212<<14 | 0x25<<7 | 0x45, - 27769 - 19968: jis0212<<14 | 0x25<<7 | 0x46, - 27770 - 19968: jis0208<<14 | 0x16<<7 | 0x47, - 27771 - 19968: jis0212<<14 | 0x25<<7 | 0x47, - 27773 - 19968: jis0208<<14 | 0x14<<7 | 0x04, - 27774 - 19968: jis0208<<14 | 0x3C<<7 | 0x4F, - 27777 - 19968: jis0208<<14 | 0x3C<<7 | 0x4D, - 27778 - 19968: jis0208<<14 | 0x3C<<7 | 0x4A, - 27779 - 19968: jis0208<<14 | 0x2C<<7 | 0x3F, - 27781 - 19968: jis0212<<14 | 0x25<<7 | 0x48, - 27782 - 19968: jis0208<<14 | 0x59<<7 | 0x3C, - 27783 - 19968: jis0212<<14 | 0x25<<7 | 0x4A, - 27784 - 19968: jis0208<<14 | 0x23<<7 | 0x1F, - 27785 - 19968: jis0212<<14 | 0x25<<7 | 0x4B, - 27788 - 19968: jis0208<<14 | 0x25<<7 | 0x38, - 27789 - 19968: jis0208<<14 | 0x3C<<7 | 0x4B, - 27792 - 19968: jis0208<<14 | 0x3C<<7 | 0x53, - 27794 - 19968: jis0208<<14 | 0x3C<<7 | 0x52, - 27795 - 19968: jis0208<<14 | 0x16<<7 | 0x02, - 27796 - 19968: jis0212<<14 | 0x25<<7 | 0x4C, - 27797 - 19968: jis0212<<14 | 0x25<<7 | 0x4D, - 27798 - 19968: jis0208<<14 | 0x11<<7 | 0x0C, - 27799 - 19968: jis0212<<14 | 0x25<<7 | 0x4E, - 27800 - 19968: jis0212<<14 | 0x25<<7 | 0x4F, - 27801 - 19968: jis0208<<14 | 0x19<<7 | 0x1A, - 27802 - 19968: jis0208<<14 | 0x3C<<7 | 0x4C, - 27803 - 19968: jis0208<<14 | 0x3C<<7 | 0x4E, - 27804 - 19968: jis0212<<14 | 0x25<<7 | 0x50, - 27807 - 19968: jis0212<<14 | 0x25<<7 | 0x51, - 27809 - 19968: jis0208<<14 | 0x2A<<7 | 0x36, - 27810 - 19968: jis0208<<14 | 0x21<<7 | 0x53, - 27819 - 19968: jis0208<<14 | 0x2A<<7 | 0x56, - 27822 - 19968: jis0208<<14 | 0x3C<<7 | 0x5B, - 27824 - 19968: jis0212<<14 | 0x25<<7 | 0x52, - 27825 - 19968: jis0208<<14 | 0x3C<<7 | 0x5C, - 27826 - 19968: jis0212<<14 | 0x25<<7 | 0x53, - 27827 - 19968: jis0208<<14 | 0x11<<7 | 0x2E, - 27828 - 19968: jis0212<<14 | 0x25<<7 | 0x54, - 27832 - 19968: jis0208<<14 | 0x29<<7 | 0x07, - 27833 - 19968: jis0208<<14 | 0x2B<<7 | 0x5C, - 27834 - 19968: jis0208<<14 | 0x3D<<7 | 0x00, - 27835 - 19968: jis0208<<14 | 0x1B<<7 | 0x02, - 27836 - 19968: jis0208<<14 | 0x1D<<7 | 0x21, - 27837 - 19968: jis0208<<14 | 0x3C<<7 | 0x57, - 27838 - 19968: jis0208<<14 | 0x3C<<7 | 0x5D, - 27839 - 19968: jis0208<<14 | 0x10<<7 | 0x47, - 27841 - 19968: jis0208<<14 | 0x15<<7 | 0x16, - 27842 - 19968: jis0212<<14 | 0x25<<7 | 0x55, - 27844 - 19968: jis0208<<14 | 0x3C<<7 | 0x54, - 27845 - 19968: jis0208<<14 | 0x3C<<7 | 0x59, - 27846 - 19968: jis0212<<14 | 0x25<<7 | 0x56, - 27849 - 19968: jis0208<<14 | 0x1F<<7 | 0x53, - 27850 - 19968: jis0208<<14 | 0x26<<7 | 0x50, - 27852 - 19968: jis0208<<14 | 0x27<<7 | 0x46, - 27853 - 19968: jis0212<<14 | 0x25<<7 | 0x57, - 27855 - 19968: jis0212<<14 | 0x25<<7 | 0x58, - 27856 - 19968: jis0212<<14 | 0x25<<7 | 0x59, - 27857 - 19968: jis0212<<14 | 0x25<<7 | 0x5A, - 27858 - 19968: jis0212<<14 | 0x25<<7 | 0x5B, - 27859 - 19968: jis0208<<14 | 0x3C<<7 | 0x56, - 27860 - 19968: jis0212<<14 | 0x25<<7 | 0x5C, - 27861 - 19968: jis0208<<14 | 0x2A<<7 | 0x00, - 27862 - 19968: jis0212<<14 | 0x25<<7 | 0x5D, - 27863 - 19968: jis0208<<14 | 0x3C<<7 | 0x58, - 27865 - 19968: jis0208<<14 | 0x3D<<7 | 0x03, - 27866 - 19968: jis0208<<14 | 0x59<<7 | 0x3E, - 27867 - 19968: jis0208<<14 | 0x3D<<7 | 0x01, - 27868 - 19968: jis0212<<14 | 0x26<<7 | 0x01, - 27869 - 19968: jis0208<<14 | 0x3C<<7 | 0x5A, - 27872 - 19968: jis0212<<14 | 0x26<<7 | 0x02, - 27873 - 19968: jis0208<<14 | 0x2A<<7 | 0x01, - 27874 - 19968: jis0208<<14 | 0x26<<7 | 0x27, - 27875 - 19968: jis0208<<14 | 0x14<<7 | 0x42, - 27877 - 19968: jis0208<<14 | 0x24<<7 | 0x04, - 27879 - 19968: jis0212<<14 | 0x26<<7 | 0x03, - 27880 - 19968: jis0208<<14 | 0x22<<7 | 0x4C, - 27881 - 19968: jis0212<<14 | 0x26<<7 | 0x04, - 27882 - 19968: jis0208<<14 | 0x3D<<7 | 0x04, - 27883 - 19968: jis0212<<14 | 0x26<<7 | 0x05, - 27884 - 19968: jis0212<<14 | 0x26<<7 | 0x06, - 27886 - 19968: jis0212<<14 | 0x26<<7 | 0x07, - 27887 - 19968: jis0208<<14 | 0x3D<<7 | 0x02, - 27888 - 19968: jis0208<<14 | 0x21<<7 | 0x38, - 27889 - 19968: jis0208<<14 | 0x3C<<7 | 0x55, - 27890 - 19968: jis0212<<14 | 0x26<<7 | 0x08, - 27891 - 19968: jis0208<<14 | 0x10<<7 | 0x2A, - 27892 - 19968: jis0212<<14 | 0x26<<7 | 0x09, - 27908 - 19968: jis0208<<14 | 0x59<<7 | 0x3F, - 27911 - 19968: jis0212<<14 | 0x26<<7 | 0x0B, - 27914 - 19968: jis0212<<14 | 0x26<<7 | 0x0C, - 27915 - 19968: jis0208<<14 | 0x2C<<7 | 0x2D, - 27916 - 19968: jis0208<<14 | 0x3D<<7 | 0x0F, - 27918 - 19968: jis0212<<14 | 0x26<<7 | 0x0D, - 27919 - 19968: jis0212<<14 | 0x26<<7 | 0x0E, - 27921 - 19968: jis0212<<14 | 0x26<<7 | 0x0F, - 27922 - 19968: jis0208<<14 | 0x3D<<7 | 0x0E, - 27923 - 19968: jis0212<<14 | 0x26<<7 | 0x10, - 27927 - 19968: jis0208<<14 | 0x1F<<7 | 0x55, - 27929 - 19968: jis0208<<14 | 0x3D<<7 | 0x0B, - 27930 - 19968: jis0212<<14 | 0x26<<7 | 0x11, - 27931 - 19968: jis0208<<14 | 0x2C<<7 | 0x4B, - 27934 - 19968: jis0208<<14 | 0x25<<7 | 0x15, - 27935 - 19968: jis0208<<14 | 0x3D<<7 | 0x05, - 27941 - 19968: jis0208<<14 | 0x23<<7 | 0x24, - 27942 - 19968: jis0212<<14 | 0x26<<7 | 0x12, - 27943 - 19968: jis0212<<14 | 0x26<<7 | 0x13, - 27944 - 19968: jis0212<<14 | 0x26<<7 | 0x14, - 27945 - 19968: jis0208<<14 | 0x10<<7 | 0x2B, - 27946 - 19968: jis0208<<14 | 0x18<<7 | 0x1E, - 27947 - 19968: jis0208<<14 | 0x3D<<7 | 0x08, - 27950 - 19968: jis0212<<14 | 0x26<<7 | 0x16, - 27951 - 19968: jis0212<<14 | 0x26<<7 | 0x17, - 27953 - 19968: jis0212<<14 | 0x26<<7 | 0x18, - 27954 - 19968: jis0208<<14 | 0x1C<<7 | 0x06, - 27955 - 19968: jis0208<<14 | 0x3D<<7 | 0x0D, - 27957 - 19968: jis0208<<14 | 0x3D<<7 | 0x0C, - 27958 - 19968: jis0208<<14 | 0x3D<<7 | 0x07, - 27960 - 19968: jis0208<<14 | 0x3D<<7 | 0x0A, - 27961 - 19968: jis0212<<14 | 0x26<<7 | 0x19, - 27963 - 19968: jis0208<<14 | 0x12<<7 | 0x47, - 27964 - 19968: jis0212<<14 | 0x26<<7 | 0x1A, - 27965 - 19968: jis0208<<14 | 0x3D<<7 | 0x09, - 27966 - 19968: jis0208<<14 | 0x26<<7 | 0x28, - 27967 - 19968: jis0212<<14 | 0x26<<7 | 0x1B, - 27969 - 19968: jis0208<<14 | 0x2D<<7 | 0x0D, - 27972 - 19968: jis0208<<14 | 0x1D<<7 | 0x53, - 27973 - 19968: jis0208<<14 | 0x1F<<7 | 0x54, - 27991 - 19968: jis0212<<14 | 0x26<<7 | 0x1C, - 27993 - 19968: jis0208<<14 | 0x3D<<7 | 0x15, - 27994 - 19968: jis0208<<14 | 0x3D<<7 | 0x13, - 27996 - 19968: jis0208<<14 | 0x28<<7 | 0x2C, - 27998 - 19968: jis0212<<14 | 0x26<<7 | 0x1D, - 27999 - 19968: jis0212<<14 | 0x26<<7 | 0x1E, - 28001 - 19968: jis0212<<14 | 0x26<<7 | 0x1F, - 28003 - 19968: jis0208<<14 | 0x3D<<7 | 0x10, - 28004 - 19968: jis0208<<14 | 0x3D<<7 | 0x12, - 28005 - 19968: jis0212<<14 | 0x26<<7 | 0x20, - 28006 - 19968: jis0208<<14 | 0x10<<7 | 0x19, - 28007 - 19968: jis0212<<14 | 0x26<<7 | 0x21, - 28009 - 19968: jis0208<<14 | 0x18<<7 | 0x1F, - 28010 - 19968: jis0208<<14 | 0x2E<<7 | 0x11, - 28012 - 19968: jis0208<<14 | 0x12<<7 | 0x1C, - 28014 - 19968: jis0208<<14 | 0x28<<7 | 0x41, - 28015 - 19968: jis0208<<14 | 0x59<<7 | 0x41, - 28016 - 19968: jis0212<<14 | 0x26<<7 | 0x23, - 28020 - 19968: jis0208<<14 | 0x2C<<7 | 0x40, - 28023 - 19968: jis0208<<14 | 0x12<<7 | 0x03, - 28024 - 19968: jis0208<<14 | 0x1E<<7 | 0x1A, - 28025 - 19968: jis0208<<14 | 0x3D<<7 | 0x14, - 28028 - 19968: jis0212<<14 | 0x26<<7 | 0x24, - 28034 - 19968: jis0212<<14 | 0x26<<7 | 0x25, - 28037 - 19968: jis0208<<14 | 0x3D<<7 | 0x19, - 28039 - 19968: jis0208<<14 | 0x59<<7 | 0x40, - 28040 - 19968: jis0208<<14 | 0x1D<<7 | 0x22, - 28044 - 19968: jis0208<<14 | 0x2C<<7 | 0x0F, - 28046 - 19968: jis0208<<14 | 0x3D<<7 | 0x16, - 28049 - 19968: jis0212<<14 | 0x26<<7 | 0x27, - 28050 - 19968: jis0212<<14 | 0x26<<7 | 0x28, - 28051 - 19968: jis0208<<14 | 0x3D<<7 | 0x11, - 28052 - 19968: jis0212<<14 | 0x26<<7 | 0x29, - 28053 - 19968: jis0208<<14 | 0x3D<<7 | 0x17, - 28054 - 19968: jis0208<<14 | 0x59<<7 | 0x42, - 28055 - 19968: jis0212<<14 | 0x26<<7 | 0x2B, - 28056 - 19968: jis0212<<14 | 0x26<<7 | 0x2C, - 28057 - 19968: jis0208<<14 | 0x2D<<7 | 0x3D, - 28059 - 19968: jis0208<<14 | 0x24<<7 | 0x52, - 28060 - 19968: jis0208<<14 | 0x25<<7 | 0x21, - 28074 - 19968: jis0212<<14 | 0x26<<7 | 0x2D, - 28076 - 19968: jis0208<<14 | 0x59<<7 | 0x43, - 28079 - 19968: jis0208<<14 | 0x12<<7 | 0x15, - 28082 - 19968: jis0208<<14 | 0x10<<7 | 0x34, - 28084 - 19968: jis0212<<14 | 0x26<<7 | 0x2F, - 28085 - 19968: jis0208<<14 | 0x3D<<7 | 0x1D, - 28087 - 19968: jis0212<<14 | 0x26<<7 | 0x30, - 28088 - 19968: jis0208<<14 | 0x3D<<7 | 0x20, - 28089 - 19968: jis0212<<14 | 0x26<<7 | 0x31, - 28092 - 19968: jis0208<<14 | 0x2D<<7 | 0x22, - 28093 - 19968: jis0212<<14 | 0x26<<7 | 0x32, - 28095 - 19968: jis0212<<14 | 0x26<<7 | 0x33, - 28096 - 19968: jis0208<<14 | 0x2C<<7 | 0x43, - 28100 - 19968: jis0212<<14 | 0x26<<7 | 0x34, - 28101 - 19968: jis0208<<14 | 0x3D<<7 | 0x27, - 28102 - 19968: jis0208<<14 | 0x3D<<7 | 0x21, - 28103 - 19968: jis0208<<14 | 0x3D<<7 | 0x1E, - 28104 - 19968: jis0212<<14 | 0x26<<7 | 0x35, - 28106 - 19968: jis0212<<14 | 0x26<<7 | 0x36, - 28107 - 19968: jis0208<<14 | 0x2D<<7 | 0x33, - 28108 - 19968: jis0208<<14 | 0x3D<<7 | 0x24, - 28110 - 19968: jis0212<<14 | 0x26<<7 | 0x37, - 28111 - 19968: jis0208<<14 | 0x59<<7 | 0x44, - 28113 - 19968: jis0208<<14 | 0x1C<<7 | 0x29, - 28114 - 19968: jis0208<<14 | 0x3D<<7 | 0x26, - 28117 - 19968: jis0208<<14 | 0x3D<<7 | 0x2B, - 28118 - 19968: jis0212<<14 | 0x26<<7 | 0x39, - 28120 - 19968: jis0208<<14 | 0x24<<7 | 0x50, - 28121 - 19968: jis0208<<14 | 0x3D<<7 | 0x29, - 28123 - 19968: jis0212<<14 | 0x26<<7 | 0x3A, - 28125 - 19968: jis0212<<14 | 0x26<<7 | 0x3B, - 28126 - 19968: jis0208<<14 | 0x3D<<7 | 0x23, - 28127 - 19968: jis0212<<14 | 0x26<<7 | 0x3C, - 28128 - 19968: jis0212<<14 | 0x26<<7 | 0x3D, - 28129 - 19968: jis0208<<14 | 0x22<<7 | 0x17, - 28130 - 19968: jis0212<<14 | 0x26<<7 | 0x3E, - 28132 - 19968: jis0208<<14 | 0x3D<<7 | 0x2A, - 28133 - 19968: jis0212<<14 | 0x26<<7 | 0x3F, - 28134 - 19968: jis0208<<14 | 0x3D<<7 | 0x1F, - 28136 - 19968: jis0208<<14 | 0x3D<<7 | 0x25, - 28137 - 19968: jis0212<<14 | 0x26<<7 | 0x40, - 28138 - 19968: jis0208<<14 | 0x3D<<7 | 0x2C, - 28139 - 19968: jis0208<<14 | 0x0F<<7 | 0x5B, - 28140 - 19968: jis0208<<14 | 0x3D<<7 | 0x22, - 28142 - 19968: jis0208<<14 | 0x3D<<7 | 0x2D, - 28143 - 19968: jis0212<<14 | 0x26<<7 | 0x41, - 28144 - 19968: jis0212<<14 | 0x26<<7 | 0x42, - 28145 - 19968: jis0208<<14 | 0x1E<<7 | 0x1B, - 28146 - 19968: jis0208<<14 | 0x59<<7 | 0x46, - 28147 - 19968: jis0208<<14 | 0x1C<<7 | 0x3E, - 28148 - 19968: jis0212<<14 | 0x26<<7 | 0x43, - 28149 - 19968: jis0208<<14 | 0x29<<7 | 0x04, - 28150 - 19968: jis0212<<14 | 0x26<<7 | 0x44, - 28151 - 19968: jis0208<<14 | 0x19<<7 | 0x0D, - 28152 - 19968: jis0208<<14 | 0x59<<7 | 0x45, - 28153 - 19968: jis0208<<14 | 0x3D<<7 | 0x1A, - 28154 - 19968: jis0208<<14 | 0x3D<<7 | 0x28, - 28155 - 19968: jis0208<<14 | 0x24<<7 | 0x19, - 28156 - 19968: jis0208<<14 | 0x59<<7 | 0x47, - 28160 - 19968: jis0212<<14 | 0x26<<7 | 0x46, - 28164 - 19968: jis0212<<14 | 0x26<<7 | 0x47, - 28165 - 19968: jis0208<<14 | 0x1F<<7 | 0x15, - 28167 - 19968: jis0208<<14 | 0x12<<7 | 0x48, - 28168 - 19968: jis0208<<14 | 0x19<<7 | 0x30, - 28169 - 19968: jis0208<<14 | 0x1D<<7 | 0x23, - 28170 - 19968: jis0208<<14 | 0x3D<<7 | 0x1C, - 28171 - 19968: jis0208<<14 | 0x1C<<7 | 0x21, - 28179 - 19968: jis0208<<14 | 0x16<<7 | 0x2B, - 28181 - 19968: jis0208<<14 | 0x3D<<7 | 0x1B, - 28185 - 19968: jis0208<<14 | 0x3D<<7 | 0x31, - 28186 - 19968: jis0208<<14 | 0x1C<<7 | 0x4C, - 28187 - 19968: jis0208<<14 | 0x17<<7 | 0x19, - 28189 - 19968: jis0208<<14 | 0x3D<<7 | 0x40, - 28190 - 19968: jis0212<<14 | 0x26<<7 | 0x48, - 28191 - 19968: jis0208<<14 | 0x3D<<7 | 0x3A, - 28192 - 19968: jis0208<<14 | 0x14<<7 | 0x53, - 28193 - 19968: jis0208<<14 | 0x24<<7 | 0x2E, - 28194 - 19968: jis0212<<14 | 0x26<<7 | 0x49, - 28195 - 19968: jis0208<<14 | 0x3D<<7 | 0x35, - 28196 - 19968: jis0208<<14 | 0x3D<<7 | 0x3E, - 28197 - 19968: jis0208<<14 | 0x0F<<7 | 0x0E, - 28198 - 19968: jis0208<<14 | 0x10<<7 | 0x11, - 28199 - 19968: jis0208<<14 | 0x59<<7 | 0x4A, - 28201 - 19968: jis0208<<14 | 0x11<<7 | 0x18, - 28203 - 19968: jis0208<<14 | 0x3D<<7 | 0x37, - 28204 - 19968: jis0208<<14 | 0x21<<7 | 0x0B, - 28205 - 19968: jis0208<<14 | 0x3D<<7 | 0x2E, - 28206 - 19968: jis0208<<14 | 0x3D<<7 | 0x30, - 28207 - 19968: jis0208<<14 | 0x18<<7 | 0x20, - 28210 - 19968: jis0212<<14 | 0x26<<7 | 0x4B, - 28214 - 19968: jis0212<<14 | 0x26<<7 | 0x4C, - 28216 - 19968: jis0208<<14 | 0x3D<<7 | 0x41, - 28217 - 19968: jis0208<<14 | 0x59<<7 | 0x48, - 28218 - 19968: jis0208<<14 | 0x3D<<7 | 0x3C, - 28219 - 19968: jis0212<<14 | 0x26<<7 | 0x4E, - 28220 - 19968: jis0208<<14 | 0x59<<7 | 0x4B, - 28222 - 19968: jis0208<<14 | 0x3D<<7 | 0x34, - 28227 - 19968: jis0208<<14 | 0x3D<<7 | 0x3B, - 28228 - 19968: jis0212<<14 | 0x26<<7 | 0x50, - 28229 - 19968: jis0212<<14 | 0x26<<7 | 0x51, - 28232 - 19968: jis0212<<14 | 0x26<<7 | 0x52, - 28233 - 19968: jis0212<<14 | 0x26<<7 | 0x53, - 28234 - 19968: jis0208<<14 | 0x2B<<7 | 0x0A, - 28235 - 19968: jis0212<<14 | 0x26<<7 | 0x54, - 28237 - 19968: jis0208<<14 | 0x3D<<7 | 0x39, - 28238 - 19968: jis0208<<14 | 0x3D<<7 | 0x3D, - 28239 - 19968: jis0212<<14 | 0x26<<7 | 0x55, - 28241 - 19968: jis0212<<14 | 0x26<<7 | 0x56, - 28242 - 19968: jis0212<<14 | 0x26<<7 | 0x57, - 28243 - 19968: jis0212<<14 | 0x26<<7 | 0x58, - 28244 - 19968: jis0212<<14 | 0x26<<7 | 0x59, - 28246 - 19968: jis0208<<14 | 0x17<<7 | 0x2F, - 28247 - 19968: jis0212<<14 | 0x26<<7 | 0x5A, - 28248 - 19968: jis0208<<14 | 0x1D<<7 | 0x24, - 28251 - 19968: jis0208<<14 | 0x22<<7 | 0x18, - 28252 - 19968: jis0208<<14 | 0x59<<7 | 0x49, - 28253 - 19968: jis0212<<14 | 0x26<<7 | 0x5C, - 28254 - 19968: jis0212<<14 | 0x26<<7 | 0x5D, - 28255 - 19968: jis0208<<14 | 0x3D<<7 | 0x33, - 28258 - 19968: jis0212<<14 | 0x27<<7 | 0x00, - 28259 - 19968: jis0212<<14 | 0x27<<7 | 0x01, - 28263 - 19968: jis0208<<14 | 0x2C<<7 | 0x0E, - 28264 - 19968: jis0212<<14 | 0x27<<7 | 0x02, - 28267 - 19968: jis0208<<14 | 0x3D<<7 | 0x36, - 28270 - 19968: jis0208<<14 | 0x3D<<7 | 0x2F, - 28271 - 19968: jis0208<<14 | 0x24<<7 | 0x51, - 28274 - 19968: jis0208<<14 | 0x3D<<7 | 0x32, - 28275 - 19968: jis0212<<14 | 0x27<<7 | 0x03, - 28278 - 19968: jis0208<<14 | 0x3D<<7 | 0x38, - 28283 - 19968: jis0212<<14 | 0x27<<7 | 0x04, - 28285 - 19968: jis0212<<14 | 0x27<<7 | 0x05, - 28286 - 19968: jis0208<<14 | 0x2E<<7 | 0x30, - 28287 - 19968: jis0208<<14 | 0x1B<<7 | 0x1D, - 28288 - 19968: jis0208<<14 | 0x2A<<7 | 0x5D, - 28290 - 19968: jis0208<<14 | 0x3D<<7 | 0x42, - 28300 - 19968: jis0208<<14 | 0x27<<7 | 0x0D, - 28301 - 19968: jis0212<<14 | 0x27<<7 | 0x06, - 28303 - 19968: jis0208<<14 | 0x3D<<7 | 0x4E, - 28304 - 19968: jis0208<<14 | 0x17<<7 | 0x1A, - 28307 - 19968: jis0212<<14 | 0x27<<7 | 0x07, - 28310 - 19968: jis0208<<14 | 0x1C<<7 | 0x3F, - 28312 - 19968: jis0208<<14 | 0x3D<<7 | 0x44, - 28313 - 19968: jis0212<<14 | 0x27<<7 | 0x08, - 28316 - 19968: jis0208<<14 | 0x2D<<7 | 0x0E, - 28317 - 19968: jis0208<<14 | 0x18<<7 | 0x21, - 28319 - 19968: jis0208<<14 | 0x3D<<7 | 0x51, - 28320 - 19968: jis0212<<14 | 0x27<<7 | 0x09, - 28322 - 19968: jis0208<<14 | 0x0F<<7 | 0x4D, - 28325 - 19968: jis0208<<14 | 0x3D<<7 | 0x4F, - 28327 - 19968: jis0212<<14 | 0x27<<7 | 0x0A, - 28330 - 19968: jis0208<<14 | 0x3D<<7 | 0x43, - 28333 - 19968: jis0212<<14 | 0x27<<7 | 0x0B, - 28334 - 19968: jis0212<<14 | 0x27<<7 | 0x0C, - 28335 - 19968: jis0208<<14 | 0x3D<<7 | 0x49, - 28337 - 19968: jis0212<<14 | 0x27<<7 | 0x0D, - 28338 - 19968: jis0208<<14 | 0x3D<<7 | 0x4B, - 28339 - 19968: jis0212<<14 | 0x27<<7 | 0x0E, - 28342 - 19968: jis0208<<14 | 0x2C<<7 | 0x2E, - 28343 - 19968: jis0208<<14 | 0x3D<<7 | 0x46, - 28346 - 19968: jis0208<<14 | 0x24<<7 | 0x0D, - 28347 - 19968: jis0212<<14 | 0x27<<7 | 0x0F, - 28349 - 19968: jis0208<<14 | 0x3D<<7 | 0x48, - 28351 - 19968: jis0208<<14 | 0x59<<7 | 0x4C, - 28352 - 19968: jis0212<<14 | 0x27<<7 | 0x11, - 28353 - 19968: jis0212<<14 | 0x27<<7 | 0x12, - 28354 - 19968: jis0208<<14 | 0x3D<<7 | 0x50, - 28355 - 19968: jis0212<<14 | 0x27<<7 | 0x13, - 28356 - 19968: jis0208<<14 | 0x3D<<7 | 0x4A, - 28357 - 19968: jis0208<<14 | 0x2B<<7 | 0x26, - 28359 - 19968: jis0212<<14 | 0x27<<7 | 0x14, - 28360 - 19968: jis0212<<14 | 0x27<<7 | 0x15, - 28361 - 19968: jis0208<<14 | 0x3D<<7 | 0x45, - 28362 - 19968: jis0212<<14 | 0x27<<7 | 0x16, - 28363 - 19968: jis0208<<14 | 0x1B<<7 | 0x01, - 28364 - 19968: jis0208<<14 | 0x3D<<7 | 0x5D, - 28365 - 19968: jis0212<<14 | 0x27<<7 | 0x17, - 28366 - 19968: jis0212<<14 | 0x27<<7 | 0x18, - 28367 - 19968: jis0212<<14 | 0x27<<7 | 0x19, - 28369 - 19968: jis0208<<14 | 0x12<<7 | 0x49, - 28371 - 19968: jis0208<<14 | 0x3D<<7 | 0x47, - 28372 - 19968: jis0208<<14 | 0x3D<<7 | 0x4C, - 28373 - 19968: jis0208<<14 | 0x3D<<7 | 0x4D, - 28381 - 19968: jis0208<<14 | 0x21<<7 | 0x4B, - 28382 - 19968: jis0208<<14 | 0x21<<7 | 0x39, - 28395 - 19968: jis0212<<14 | 0x27<<7 | 0x1A, - 28396 - 19968: jis0208<<14 | 0x3D<<7 | 0x55, - 28397 - 19968: jis0212<<14 | 0x27<<7 | 0x1B, - 28398 - 19968: jis0212<<14 | 0x27<<7 | 0x1C, - 28399 - 19968: jis0208<<14 | 0x3D<<7 | 0x5B, - 28402 - 19968: jis0208<<14 | 0x3D<<7 | 0x59, - 28404 - 19968: jis0208<<14 | 0x24<<7 | 0x08, - 28407 - 19968: jis0208<<14 | 0x3E<<7 | 0x02, - 28408 - 19968: jis0208<<14 | 0x3D<<7 | 0x56, - 28409 - 19968: jis0212<<14 | 0x27<<7 | 0x1D, - 28411 - 19968: jis0212<<14 | 0x27<<7 | 0x1E, - 28413 - 19968: jis0212<<14 | 0x27<<7 | 0x1F, - 28414 - 19968: jis0208<<14 | 0x3D<<7 | 0x57, - 28415 - 19968: jis0208<<14 | 0x3D<<7 | 0x3F, - 28417 - 19968: jis0208<<14 | 0x14<<7 | 0x58, - 28418 - 19968: jis0208<<14 | 0x28<<7 | 0x19, - 28420 - 19968: jis0212<<14 | 0x27<<7 | 0x20, - 28422 - 19968: jis0208<<14 | 0x1B<<7 | 0x1E, - 28424 - 19968: jis0212<<14 | 0x27<<7 | 0x21, - 28425 - 19968: jis0208<<14 | 0x18<<7 | 0x56, - 28426 - 19968: jis0212<<14 | 0x27<<7 | 0x22, - 28428 - 19968: jis0212<<14 | 0x27<<7 | 0x23, - 28429 - 19968: jis0212<<14 | 0x27<<7 | 0x24, - 28431 - 19968: jis0208<<14 | 0x2E<<7 | 0x12, - 28433 - 19968: jis0208<<14 | 0x3D<<7 | 0x53, - 28435 - 19968: jis0208<<14 | 0x3E<<7 | 0x01, - 28436 - 19968: jis0208<<14 | 0x10<<7 | 0x48, - 28437 - 19968: jis0208<<14 | 0x20<<7 | 0x45, - 28438 - 19968: jis0212<<14 | 0x27<<7 | 0x25, - 28440 - 19968: jis0212<<14 | 0x27<<7 | 0x26, - 28442 - 19968: jis0212<<14 | 0x27<<7 | 0x27, - 28443 - 19968: jis0212<<14 | 0x27<<7 | 0x28, - 28448 - 19968: jis0208<<14 | 0x26<<7 | 0x58, - 28450 - 19968: jis0208<<14 | 0x13<<7 | 0x20, - 28451 - 19968: jis0208<<14 | 0x2D<<7 | 0x59, - 28454 - 19968: jis0212<<14 | 0x27<<7 | 0x29, - 28457 - 19968: jis0212<<14 | 0x27<<7 | 0x2A, - 28458 - 19968: jis0212<<14 | 0x27<<7 | 0x2B, - 28459 - 19968: jis0208<<14 | 0x2B<<7 | 0x00, - 28460 - 19968: jis0208<<14 | 0x23<<7 | 0x31, - 28461 - 19968: jis0212<<14 | 0x27<<7 | 0x32, - 28463 - 19968: jis0212<<14 | 0x27<<7 | 0x2C, - 28464 - 19968: jis0212<<14 | 0x27<<7 | 0x2D, - 28465 - 19968: jis0208<<14 | 0x3D<<7 | 0x5A, - 28466 - 19968: jis0208<<14 | 0x3D<<7 | 0x5C, - 28467 - 19968: jis0212<<14 | 0x27<<7 | 0x2E, - 28470 - 19968: jis0212<<14 | 0x27<<7 | 0x2F, - 28472 - 19968: jis0208<<14 | 0x20<<7 | 0x11, - 28475 - 19968: jis0212<<14 | 0x27<<7 | 0x30, - 28476 - 19968: jis0212<<14 | 0x27<<7 | 0x31, - 28478 - 19968: jis0208<<14 | 0x3E<<7 | 0x00, - 28479 - 19968: jis0208<<14 | 0x3D<<7 | 0x58, - 28481 - 19968: jis0208<<14 | 0x3D<<7 | 0x52, - 28485 - 19968: jis0208<<14 | 0x13<<7 | 0x22, - 28495 - 19968: jis0212<<14 | 0x27<<7 | 0x33, - 28497 - 19968: jis0212<<14 | 0x27<<7 | 0x34, - 28498 - 19968: jis0212<<14 | 0x27<<7 | 0x35, - 28499 - 19968: jis0212<<14 | 0x27<<7 | 0x36, - 28500 - 19968: jis0208<<14 | 0x16<<7 | 0x48, - 28503 - 19968: jis0212<<14 | 0x27<<7 | 0x37, - 28504 - 19968: jis0208<<14 | 0x3E<<7 | 0x0E, - 28505 - 19968: jis0212<<14 | 0x27<<7 | 0x38, - 28506 - 19968: jis0212<<14 | 0x27<<7 | 0x39, - 28507 - 19968: jis0208<<14 | 0x3E<<7 | 0x09, - 28508 - 19968: jis0208<<14 | 0x1F<<7 | 0x57, - 28509 - 19968: jis0212<<14 | 0x27<<7 | 0x3A, - 28510 - 19968: jis0212<<14 | 0x27<<7 | 0x3B, - 28511 - 19968: jis0208<<14 | 0x12<<7 | 0x42, - 28513 - 19968: jis0212<<14 | 0x27<<7 | 0x3C, - 28514 - 19968: jis0212<<14 | 0x27<<7 | 0x3D, - 28516 - 19968: jis0208<<14 | 0x1C<<7 | 0x40, - 28518 - 19968: jis0208<<14 | 0x3E<<7 | 0x12, - 28520 - 19968: jis0212<<14 | 0x27<<7 | 0x3E, - 28524 - 19968: jis0212<<14 | 0x27<<7 | 0x3F, - 28525 - 19968: jis0208<<14 | 0x3E<<7 | 0x0B, - 28526 - 19968: jis0208<<14 | 0x23<<7 | 0x0B, - 28527 - 19968: jis0208<<14 | 0x3E<<7 | 0x08, - 28528 - 19968: jis0208<<14 | 0x23<<7 | 0x38, - 28532 - 19968: jis0208<<14 | 0x3E<<7 | 0x2B, - 28536 - 19968: jis0208<<14 | 0x3E<<7 | 0x05, - 28538 - 19968: jis0208<<14 | 0x3E<<7 | 0x04, - 28540 - 19968: jis0208<<14 | 0x3E<<7 | 0x0D, - 28541 - 19968: jis0212<<14 | 0x27<<7 | 0x40, - 28542 - 19968: jis0212<<14 | 0x27<<7 | 0x41, - 28544 - 19968: jis0208<<14 | 0x3E<<7 | 0x07, - 28545 - 19968: jis0208<<14 | 0x3E<<7 | 0x06, - 28546 - 19968: jis0208<<14 | 0x3E<<7 | 0x0C, - 28547 - 19968: jis0212<<14 | 0x27<<7 | 0x42, - 28548 - 19968: jis0208<<14 | 0x1F<<7 | 0x00, - 28550 - 19968: jis0208<<14 | 0x3E<<7 | 0x03, - 28551 - 19968: jis0212<<14 | 0x27<<7 | 0x43, - 28552 - 19968: jis0208<<14 | 0x59<<7 | 0x4D, - 28555 - 19968: jis0212<<14 | 0x27<<7 | 0x45, - 28556 - 19968: jis0212<<14 | 0x27<<7 | 0x46, - 28557 - 19968: jis0212<<14 | 0x27<<7 | 0x47, - 28558 - 19968: jis0208<<14 | 0x3E<<7 | 0x0F, - 28560 - 19968: jis0212<<14 | 0x27<<7 | 0x48, - 28561 - 19968: jis0208<<14 | 0x3E<<7 | 0x10, - 28562 - 19968: jis0212<<14 | 0x27<<7 | 0x49, - 28563 - 19968: jis0212<<14 | 0x27<<7 | 0x4A, - 28564 - 19968: jis0212<<14 | 0x27<<7 | 0x4B, - 28566 - 19968: jis0212<<14 | 0x27<<7 | 0x4C, - 28567 - 19968: jis0208<<14 | 0x13<<7 | 0x21, - 28570 - 19968: jis0212<<14 | 0x27<<7 | 0x4D, - 28575 - 19968: jis0212<<14 | 0x27<<7 | 0x4E, - 28576 - 19968: jis0212<<14 | 0x27<<7 | 0x4F, - 28577 - 19968: jis0208<<14 | 0x3E<<7 | 0x15, - 28579 - 19968: jis0208<<14 | 0x3E<<7 | 0x14, - 28580 - 19968: jis0208<<14 | 0x3E<<7 | 0x16, - 28581 - 19968: jis0212<<14 | 0x27<<7 | 0x50, - 28582 - 19968: jis0212<<14 | 0x27<<7 | 0x51, - 28583 - 19968: jis0212<<14 | 0x27<<7 | 0x52, - 28584 - 19968: jis0212<<14 | 0x27<<7 | 0x53, - 28586 - 19968: jis0208<<14 | 0x3E<<7 | 0x19, - 28590 - 19968: jis0212<<14 | 0x27<<7 | 0x54, - 28591 - 19968: jis0212<<14 | 0x27<<7 | 0x55, - 28592 - 19968: jis0212<<14 | 0x27<<7 | 0x56, - 28593 - 19968: jis0208<<14 | 0x24<<7 | 0x22, - 28595 - 19968: jis0208<<14 | 0x3E<<7 | 0x13, - 28597 - 19968: jis0208<<14 | 0x59<<7 | 0x4E, - 28598 - 19968: jis0212<<14 | 0x27<<7 | 0x58, - 28601 - 19968: jis0208<<14 | 0x3E<<7 | 0x17, - 28604 - 19968: jis0212<<14 | 0x27<<7 | 0x59, - 28608 - 19968: jis0208<<14 | 0x16<<7 | 0x42, - 28609 - 19968: jis0208<<14 | 0x21<<7 | 0x58, - 28610 - 19968: jis0208<<14 | 0x3E<<7 | 0x11, - 28611 - 19968: jis0208<<14 | 0x26<<7 | 0x1A, - 28613 - 19968: jis0212<<14 | 0x27<<7 | 0x5A, - 28614 - 19968: jis0208<<14 | 0x3E<<7 | 0x18, - 28615 - 19968: jis0212<<14 | 0x27<<7 | 0x5B, - 28616 - 19968: jis0212<<14 | 0x27<<7 | 0x5C, - 28618 - 19968: jis0212<<14 | 0x27<<7 | 0x5D, - 28628 - 19968: jis0208<<14 | 0x3E<<7 | 0x1D, - 28629 - 19968: jis0208<<14 | 0x3E<<7 | 0x1B, - 28632 - 19968: jis0208<<14 | 0x3E<<7 | 0x1E, - 28634 - 19968: jis0212<<14 | 0x28<<7 | 0x00, - 28635 - 19968: jis0208<<14 | 0x3E<<7 | 0x21, - 28638 - 19968: jis0212<<14 | 0x28<<7 | 0x01, - 28639 - 19968: jis0208<<14 | 0x3E<<7 | 0x1A, - 28640 - 19968: jis0208<<14 | 0x18<<7 | 0x49, - 28641 - 19968: jis0208<<14 | 0x26<<7 | 0x07, - 28644 - 19968: jis0208<<14 | 0x3D<<7 | 0x18, - 28648 - 19968: jis0212<<14 | 0x28<<7 | 0x02, - 28649 - 19968: jis0212<<14 | 0x28<<7 | 0x03, - 28651 - 19968: jis0208<<14 | 0x2C<<7 | 0x53, - 28652 - 19968: jis0208<<14 | 0x3E<<7 | 0x1C, - 28654 - 19968: jis0208<<14 | 0x3E<<7 | 0x20, - 28655 - 19968: jis0208<<14 | 0x21<<7 | 0x54, - 28656 - 19968: jis0212<<14 | 0x28<<7 | 0x04, - 28657 - 19968: jis0208<<14 | 0x3E<<7 | 0x1F, - 28659 - 19968: jis0208<<14 | 0x3E<<7 | 0x0A, - 28661 - 19968: jis0208<<14 | 0x59<<7 | 0x4F, - 28662 - 19968: jis0208<<14 | 0x4E<<7 | 0x48, - 28665 - 19968: jis0212<<14 | 0x28<<7 | 0x06, - 28666 - 19968: jis0208<<14 | 0x3E<<7 | 0x24, - 28668 - 19968: jis0212<<14 | 0x28<<7 | 0x07, - 28669 - 19968: jis0212<<14 | 0x28<<7 | 0x08, - 28670 - 19968: jis0208<<14 | 0x3E<<7 | 0x28, - 28672 - 19968: jis0212<<14 | 0x28<<7 | 0x09, - 28673 - 19968: jis0208<<14 | 0x3E<<7 | 0x26, - 28677 - 19968: jis0208<<14 | 0x59<<7 | 0x50, - 28678 - 19968: jis0212<<14 | 0x28<<7 | 0x0B, - 28679 - 19968: jis0208<<14 | 0x59<<7 | 0x51, - 28681 - 19968: jis0208<<14 | 0x3E<<7 | 0x22, - 28683 - 19968: jis0208<<14 | 0x3E<<7 | 0x23, - 28685 - 19968: jis0212<<14 | 0x28<<7 | 0x0D, - 28687 - 19968: jis0208<<14 | 0x3E<<7 | 0x27, - 28689 - 19968: jis0208<<14 | 0x3E<<7 | 0x25, - 28693 - 19968: jis0208<<14 | 0x28<<7 | 0x2D, - 28695 - 19968: jis0212<<14 | 0x28<<7 | 0x0E, - 28696 - 19968: jis0208<<14 | 0x3E<<7 | 0x2D, - 28698 - 19968: jis0208<<14 | 0x3E<<7 | 0x2A, - 28699 - 19968: jis0208<<14 | 0x3E<<7 | 0x29, - 28701 - 19968: jis0208<<14 | 0x3E<<7 | 0x2C, - 28702 - 19968: jis0208<<14 | 0x25<<7 | 0x33, - 28703 - 19968: jis0208<<14 | 0x3E<<7 | 0x2E, - 28704 - 19968: jis0212<<14 | 0x28<<7 | 0x0F, - 28707 - 19968: jis0212<<14 | 0x28<<7 | 0x10, - 28710 - 19968: jis0208<<14 | 0x22<<7 | 0x54, - 28711 - 19968: jis0208<<14 | 0x21<<7 | 0x4C, - 28712 - 19968: jis0208<<14 | 0x59<<7 | 0x52, - 28716 - 19968: jis0208<<14 | 0x1F<<7 | 0x04, - 28719 - 19968: jis0212<<14 | 0x28<<7 | 0x11, - 28720 - 19968: jis0208<<14 | 0x3E<<7 | 0x2F, - 28722 - 19968: jis0208<<14 | 0x3E<<7 | 0x31, - 28724 - 19968: jis0212<<14 | 0x28<<7 | 0x12, - 28727 - 19968: jis0212<<14 | 0x28<<7 | 0x13, - 28729 - 19968: jis0212<<14 | 0x28<<7 | 0x14, - 28732 - 19968: jis0212<<14 | 0x28<<7 | 0x15, - 28734 - 19968: jis0208<<14 | 0x3E<<7 | 0x30, - 28739 - 19968: jis0212<<14 | 0x28<<7 | 0x16, - 28740 - 19968: jis0212<<14 | 0x28<<7 | 0x17, - 28744 - 19968: jis0212<<14 | 0x28<<7 | 0x18, - 28745 - 19968: jis0212<<14 | 0x28<<7 | 0x19, - 28746 - 19968: jis0212<<14 | 0x28<<7 | 0x1A, - 28747 - 19968: jis0212<<14 | 0x28<<7 | 0x1B, - 28748 - 19968: jis0208<<14 | 0x3D<<7 | 0x54, - 28750 - 19968: jis0212<<14 | 0x28<<7 | 0x20, - 28753 - 19968: jis0208<<14 | 0x3E<<7 | 0x32, - 28756 - 19968: jis0212<<14 | 0x28<<7 | 0x1C, - 28757 - 19968: jis0212<<14 | 0x28<<7 | 0x1D, - 28760 - 19968: jis0208<<14 | 0x25<<7 | 0x46, - 28765 - 19968: jis0212<<14 | 0x28<<7 | 0x1E, - 28766 - 19968: jis0212<<14 | 0x28<<7 | 0x1F, - 28771 - 19968: jis0208<<14 | 0x3E<<7 | 0x33, - 28772 - 19968: jis0212<<14 | 0x28<<7 | 0x21, - 28773 - 19968: jis0212<<14 | 0x28<<7 | 0x22, - 28779 - 19968: jis0208<<14 | 0x11<<7 | 0x2F, - 28780 - 19968: jis0212<<14 | 0x28<<7 | 0x23, - 28782 - 19968: jis0212<<14 | 0x28<<7 | 0x24, - 28783 - 19968: jis0208<<14 | 0x24<<7 | 0x53, - 28784 - 19968: jis0208<<14 | 0x12<<7 | 0x04, - 28789 - 19968: jis0212<<14 | 0x28<<7 | 0x25, - 28790 - 19968: jis0212<<14 | 0x28<<7 | 0x26, - 28792 - 19968: jis0208<<14 | 0x14<<7 | 0x43, - 28796 - 19968: jis0208<<14 | 0x1B<<7 | 0x3D, - 28797 - 19968: jis0208<<14 | 0x19<<7 | 0x31, - 28798 - 19968: jis0212<<14 | 0x28<<7 | 0x27, - 28801 - 19968: jis0212<<14 | 0x28<<7 | 0x28, - 28805 - 19968: jis0208<<14 | 0x59<<7 | 0x53, - 28806 - 19968: jis0212<<14 | 0x28<<7 | 0x2A, - 28809 - 19968: jis0208<<14 | 0x2E<<7 | 0x06, - 28810 - 19968: jis0208<<14 | 0x1E<<7 | 0x45, - 28814 - 19968: jis0208<<14 | 0x10<<7 | 0x49, - 28818 - 19968: jis0208<<14 | 0x3E<<7 | 0x35, - 28820 - 19968: jis0212<<14 | 0x28<<7 | 0x2B, - 28821 - 19968: jis0212<<14 | 0x28<<7 | 0x2C, - 28822 - 19968: jis0212<<14 | 0x28<<7 | 0x2D, - 28823 - 19968: jis0212<<14 | 0x28<<7 | 0x2E, - 28824 - 19968: jis0212<<14 | 0x28<<7 | 0x2F, - 28825 - 19968: jis0208<<14 | 0x3E<<7 | 0x34, - 28827 - 19968: jis0212<<14 | 0x28<<7 | 0x30, - 28836 - 19968: jis0212<<14 | 0x28<<7 | 0x31, - 28843 - 19968: jis0208<<14 | 0x59<<7 | 0x54, - 28844 - 19968: jis0208<<14 | 0x3E<<7 | 0x38, - 28845 - 19968: jis0208<<14 | 0x22<<7 | 0x19, - 28846 - 19968: jis0208<<14 | 0x3E<<7 | 0x3B, - 28847 - 19968: jis0208<<14 | 0x3E<<7 | 0x36, - 28848 - 19968: jis0212<<14 | 0x28<<7 | 0x33, - 28849 - 19968: jis0212<<14 | 0x28<<7 | 0x34, - 28851 - 19968: jis0208<<14 | 0x3E<<7 | 0x3A, - 28852 - 19968: jis0212<<14 | 0x28<<7 | 0x35, - 28855 - 19968: jis0212<<14 | 0x28<<7 | 0x36, - 28856 - 19968: jis0208<<14 | 0x3E<<7 | 0x39, - 28857 - 19968: jis0208<<14 | 0x24<<7 | 0x1F, - 28858 - 19968: jis0208<<14 | 0x0F<<7 | 0x38, - 28859 - 19968: jis0208<<14 | 0x58<<7 | 0x06, - 28872 - 19968: jis0208<<14 | 0x2D<<7 | 0x54, - 28874 - 19968: jis0212<<14 | 0x28<<7 | 0x37, - 28875 - 19968: jis0208<<14 | 0x3E<<7 | 0x3D, - 28879 - 19968: jis0208<<14 | 0x10<<7 | 0x07, - 28881 - 19968: jis0212<<14 | 0x28<<7 | 0x38, - 28883 - 19968: jis0212<<14 | 0x28<<7 | 0x39, - 28884 - 19968: jis0212<<14 | 0x28<<7 | 0x3A, - 28885 - 19968: jis0212<<14 | 0x28<<7 | 0x3B, - 28886 - 19968: jis0212<<14 | 0x28<<7 | 0x3C, - 28888 - 19968: jis0212<<14 | 0x28<<7 | 0x3D, - 28889 - 19968: jis0208<<14 | 0x3E<<7 | 0x3F, - 28892 - 19968: jis0212<<14 | 0x28<<7 | 0x3E, - 28893 - 19968: jis0208<<14 | 0x3E<<7 | 0x3E, - 28895 - 19968: jis0208<<14 | 0x3E<<7 | 0x3C, - 28900 - 19968: jis0212<<14 | 0x28<<7 | 0x3F, - 28913 - 19968: jis0208<<14 | 0x3E<<7 | 0x37, - 28921 - 19968: jis0208<<14 | 0x2A<<7 | 0x02, - 28922 - 19968: jis0212<<14 | 0x28<<7 | 0x40, - 28925 - 19968: jis0208<<14 | 0x3E<<7 | 0x41, - 28931 - 19968: jis0212<<14 | 0x28<<7 | 0x41, - 28932 - 19968: jis0208<<14 | 0x59<<7 | 0x56, - 28933 - 19968: jis0212<<14 | 0x28<<7 | 0x43, - 28934 - 19968: jis0212<<14 | 0x28<<7 | 0x44, - 28935 - 19968: jis0212<<14 | 0x28<<7 | 0x45, - 28937 - 19968: jis0208<<14 | 0x3E<<7 | 0x40, - 28939 - 19968: jis0212<<14 | 0x28<<7 | 0x46, - 28940 - 19968: jis0212<<14 | 0x28<<7 | 0x47, - 28943 - 19968: jis0208<<14 | 0x59<<7 | 0x55, - 28948 - 19968: jis0208<<14 | 0x10<<7 | 0x4A, - 28953 - 19968: jis0208<<14 | 0x3E<<7 | 0x43, - 28954 - 19968: jis0208<<14 | 0x29<<7 | 0x11, - 28956 - 19968: jis0208<<14 | 0x3E<<7 | 0x42, - 28958 - 19968: jis0212<<14 | 0x28<<7 | 0x49, - 28960 - 19968: jis0212<<14 | 0x28<<7 | 0x4A, - 28961 - 19968: jis0208<<14 | 0x2B<<7 | 0x14, - 28966 - 19968: jis0208<<14 | 0x1D<<7 | 0x26, - 28971 - 19968: jis0212<<14 | 0x28<<7 | 0x4B, - 28973 - 19968: jis0212<<14 | 0x28<<7 | 0x4C, - 28975 - 19968: jis0212<<14 | 0x28<<7 | 0x4D, - 28976 - 19968: jis0212<<14 | 0x28<<7 | 0x4E, - 28977 - 19968: jis0212<<14 | 0x28<<7 | 0x4F, - 28982 - 19968: jis0208<<14 | 0x20<<7 | 0x12, - 28984 - 19968: jis0212<<14 | 0x28<<7 | 0x50, - 28988 - 19968: jis0208<<14 | 0x1D<<7 | 0x25, - 28993 - 19968: jis0212<<14 | 0x28<<7 | 0x51, - 28997 - 19968: jis0212<<14 | 0x28<<7 | 0x52, - 28998 - 19968: jis0208<<14 | 0x59<<7 | 0x58, - 28999 - 19968: jis0208<<14 | 0x59<<7 | 0x59, - 29001 - 19968: jis0208<<14 | 0x2D<<7 | 0x5A, - 29002 - 19968: jis0212<<14 | 0x28<<7 | 0x55, - 29003 - 19968: jis0212<<14 | 0x28<<7 | 0x56, - 29004 - 19968: jis0208<<14 | 0x3E<<7 | 0x49, - 29006 - 19968: jis0208<<14 | 0x1F<<7 | 0x58, - 29008 - 19968: jis0212<<14 | 0x28<<7 | 0x57, - 29010 - 19968: jis0212<<14 | 0x28<<7 | 0x58, - 29013 - 19968: jis0208<<14 | 0x3E<<7 | 0x45, - 29014 - 19968: jis0208<<14 | 0x3E<<7 | 0x4A, - 29015 - 19968: jis0212<<14 | 0x28<<7 | 0x59, - 29017 - 19968: jis0208<<14 | 0x10<<7 | 0x4B, - 29018 - 19968: jis0212<<14 | 0x28<<7 | 0x5A, - 29020 - 19968: jis0208<<14 | 0x59<<7 | 0x57, - 29022 - 19968: jis0212<<14 | 0x28<<7 | 0x5C, - 29024 - 19968: jis0212<<14 | 0x28<<7 | 0x5D, - 29026 - 19968: jis0208<<14 | 0x3E<<7 | 0x48, - 29028 - 19968: jis0208<<14 | 0x26<<7 | 0x40, - 29029 - 19968: jis0208<<14 | 0x3E<<7 | 0x44, - 29030 - 19968: jis0208<<14 | 0x3E<<7 | 0x47, - 29031 - 19968: jis0208<<14 | 0x1D<<7 | 0x27, - 29032 - 19968: jis0212<<14 | 0x29<<7 | 0x00, - 29033 - 19968: jis0208<<14 | 0x27<<7 | 0x30, - 29036 - 19968: jis0208<<14 | 0x3E<<7 | 0x4B, - 29038 - 19968: jis0208<<14 | 0x1B<<7 | 0x30, - 29049 - 19968: jis0212<<14 | 0x29<<7 | 0x01, - 29053 - 19968: jis0208<<14 | 0x1F<<7 | 0x59, - 29056 - 19968: jis0212<<14 | 0x29<<7 | 0x02, - 29060 - 19968: jis0208<<14 | 0x3E<<7 | 0x4E, - 29061 - 19968: jis0212<<14 | 0x29<<7 | 0x03, - 29063 - 19968: jis0212<<14 | 0x29<<7 | 0x04, - 29064 - 19968: jis0208<<14 | 0x3E<<7 | 0x46, - 29066 - 19968: jis0208<<14 | 0x16<<7 | 0x06, - 29068 - 19968: jis0212<<14 | 0x29<<7 | 0x05, - 29071 - 19968: jis0208<<14 | 0x3E<<7 | 0x4C, - 29074 - 19968: jis0212<<14 | 0x29<<7 | 0x06, - 29076 - 19968: jis0208<<14 | 0x2C<<7 | 0x2F, - 29077 - 19968: jis0208<<14 | 0x3E<<7 | 0x4F, - 29081 - 19968: jis0208<<14 | 0x53<<7 | 0x05, - 29082 - 19968: jis0212<<14 | 0x29<<7 | 0x07, - 29083 - 19968: jis0212<<14 | 0x29<<7 | 0x08, - 29087 - 19968: jis0208<<14 | 0x1C<<7 | 0x2E, - 29088 - 19968: jis0212<<14 | 0x29<<7 | 0x09, - 29090 - 19968: jis0212<<14 | 0x29<<7 | 0x0A, - 29096 - 19968: jis0208<<14 | 0x3E<<7 | 0x50, - 29100 - 19968: jis0208<<14 | 0x3E<<7 | 0x51, - 29103 - 19968: jis0212<<14 | 0x29<<7 | 0x0B, - 29104 - 19968: jis0212<<14 | 0x29<<7 | 0x0C, - 29105 - 19968: jis0208<<14 | 0x26<<7 | 0x0D, - 29106 - 19968: jis0212<<14 | 0x29<<7 | 0x0D, - 29107 - 19968: jis0212<<14 | 0x29<<7 | 0x0E, - 29113 - 19968: jis0208<<14 | 0x3E<<7 | 0x53, - 29114 - 19968: jis0212<<14 | 0x29<<7 | 0x0F, - 29118 - 19968: jis0208<<14 | 0x3E<<7 | 0x54, - 29119 - 19968: jis0212<<14 | 0x29<<7 | 0x10, - 29120 - 19968: jis0212<<14 | 0x29<<7 | 0x11, - 29121 - 19968: jis0208<<14 | 0x59<<7 | 0x5B, - 29123 - 19968: jis0208<<14 | 0x26<<7 | 0x12, - 29124 - 19968: jis0212<<14 | 0x29<<7 | 0x13, - 29128 - 19968: jis0208<<14 | 0x24<<7 | 0x54, - 29129 - 19968: jis0208<<14 | 0x3E<<7 | 0x56, - 29131 - 19968: jis0212<<14 | 0x29<<7 | 0x14, - 29132 - 19968: jis0212<<14 | 0x29<<7 | 0x15, - 29134 - 19968: jis0208<<14 | 0x3E<<7 | 0x58, - 29136 - 19968: jis0208<<14 | 0x2D<<7 | 0x34, - 29138 - 19968: jis0208<<14 | 0x3E<<7 | 0x55, - 29139 - 19968: jis0212<<14 | 0x29<<7 | 0x16, - 29140 - 19968: jis0208<<14 | 0x3E<<7 | 0x57, - 29141 - 19968: jis0208<<14 | 0x10<<7 | 0x4C, - 29142 - 19968: jis0212<<14 | 0x29<<7 | 0x17, - 29143 - 19968: jis0208<<14 | 0x3E<<7 | 0x52, - 29145 - 19968: jis0212<<14 | 0x29<<7 | 0x18, - 29146 - 19968: jis0212<<14 | 0x29<<7 | 0x19, - 29148 - 19968: jis0212<<14 | 0x29<<7 | 0x1A, - 29151 - 19968: jis0208<<14 | 0x32<<7 | 0x3A, - 29152 - 19968: jis0208<<14 | 0x3E<<7 | 0x59, - 29157 - 19968: jis0208<<14 | 0x20<<7 | 0x46, - 29158 - 19968: jis0208<<14 | 0x1A<<7 | 0x17, - 29159 - 19968: jis0208<<14 | 0x3E<<7 | 0x5B, - 29164 - 19968: jis0208<<14 | 0x3E<<7 | 0x5A, - 29165 - 19968: jis0208<<14 | 0x1E<<7 | 0x03, - 29166 - 19968: jis0208<<14 | 0x31<<7 | 0x38, - 29173 - 19968: jis0208<<14 | 0x3E<<7 | 0x5C, - 29176 - 19968: jis0212<<14 | 0x29<<7 | 0x1B, - 29177 - 19968: jis0208<<14 | 0x3F<<7 | 0x00, - 29179 - 19968: jis0208<<14 | 0x3E<<7 | 0x4D, - 29180 - 19968: jis0208<<14 | 0x3E<<7 | 0x5D, - 29182 - 19968: jis0208<<14 | 0x59<<7 | 0x5C, - 29183 - 19968: jis0208<<14 | 0x3F<<7 | 0x01, - 29184 - 19968: jis0212<<14 | 0x29<<7 | 0x1D, - 29190 - 19968: jis0208<<14 | 0x26<<7 | 0x59, - 29191 - 19968: jis0212<<14 | 0x29<<7 | 0x1E, - 29192 - 19968: jis0212<<14 | 0x29<<7 | 0x1F, - 29193 - 19968: jis0212<<14 | 0x29<<7 | 0x20, - 29197 - 19968: jis0208<<14 | 0x3F<<7 | 0x02, - 29200 - 19968: jis0208<<14 | 0x3F<<7 | 0x03, - 29203 - 19968: jis0212<<14 | 0x29<<7 | 0x21, - 29207 - 19968: jis0212<<14 | 0x29<<7 | 0x22, - 29210 - 19968: jis0212<<14 | 0x29<<7 | 0x23, - 29211 - 19968: jis0208<<14 | 0x3F<<7 | 0x04, - 29213 - 19968: jis0212<<14 | 0x29<<7 | 0x24, - 29215 - 19968: jis0212<<14 | 0x29<<7 | 0x25, - 29220 - 19968: jis0212<<14 | 0x29<<7 | 0x26, - 29224 - 19968: jis0208<<14 | 0x3F<<7 | 0x05, - 29226 - 19968: jis0208<<14 | 0x23<<7 | 0x3D, - 29227 - 19968: jis0212<<14 | 0x29<<7 | 0x27, - 29228 - 19968: jis0208<<14 | 0x3F<<7 | 0x07, - 29229 - 19968: jis0208<<14 | 0x3F<<7 | 0x06, - 29231 - 19968: jis0212<<14 | 0x29<<7 | 0x28, - 29232 - 19968: jis0208<<14 | 0x3F<<7 | 0x08, - 29234 - 19968: jis0208<<14 | 0x3F<<7 | 0x09, - 29236 - 19968: jis0212<<14 | 0x29<<7 | 0x29, - 29237 - 19968: jis0208<<14 | 0x1B<<7 | 0x3E, - 29238 - 19968: jis0208<<14 | 0x28<<7 | 0x42, - 29240 - 19968: jis0212<<14 | 0x29<<7 | 0x2A, - 29241 - 19968: jis0212<<14 | 0x29<<7 | 0x2B, - 29242 - 19968: jis0208<<14 | 0x2B<<7 | 0x4B, - 29243 - 19968: jis0208<<14 | 0x3F<<7 | 0x0A, - 29244 - 19968: jis0208<<14 | 0x3F<<7 | 0x0B, - 29245 - 19968: jis0208<<14 | 0x20<<7 | 0x35, - 29246 - 19968: jis0208<<14 | 0x1B<<7 | 0x03, - 29247 - 19968: jis0208<<14 | 0x3F<<7 | 0x0C, - 29248 - 19968: jis0208<<14 | 0x3F<<7 | 0x0D, - 29249 - 19968: jis0212<<14 | 0x29<<7 | 0x2C, - 29250 - 19968: jis0212<<14 | 0x29<<7 | 0x2D, - 29251 - 19968: jis0212<<14 | 0x29<<7 | 0x2E, - 29253 - 19968: jis0212<<14 | 0x29<<7 | 0x2F, - 29254 - 19968: jis0208<<14 | 0x3F<<7 | 0x0E, - 29255 - 19968: jis0208<<14 | 0x29<<7 | 0x31, - 29256 - 19968: jis0208<<14 | 0x27<<7 | 0x26, - 29259 - 19968: jis0208<<14 | 0x3F<<7 | 0x0F, - 29260 - 19968: jis0208<<14 | 0x26<<7 | 0x36, - 29262 - 19968: jis0212<<14 | 0x29<<7 | 0x30, - 29263 - 19968: jis0212<<14 | 0x29<<7 | 0x31, - 29264 - 19968: jis0212<<14 | 0x29<<7 | 0x32, - 29266 - 19968: jis0208<<14 | 0x23<<7 | 0x0C, - 29267 - 19968: jis0212<<14 | 0x29<<7 | 0x33, - 29269 - 19968: jis0212<<14 | 0x29<<7 | 0x34, - 29270 - 19968: jis0212<<14 | 0x29<<7 | 0x35, - 29272 - 19968: jis0208<<14 | 0x3F<<7 | 0x10, - 29273 - 19968: jis0208<<14 | 0x11<<7 | 0x46, - 29274 - 19968: jis0212<<14 | 0x29<<7 | 0x36, - 29275 - 19968: jis0208<<14 | 0x14<<7 | 0x4C, - 29276 - 19968: jis0212<<14 | 0x29<<7 | 0x37, - 29277 - 19968: jis0208<<14 | 0x2B<<7 | 0x25, - 29278 - 19968: jis0212<<14 | 0x29<<7 | 0x38, - 29279 - 19968: jis0208<<14 | 0x2B<<7 | 0x15, - 29280 - 19968: jis0212<<14 | 0x29<<7 | 0x39, - 29281 - 19968: jis0208<<14 | 0x11<<7 | 0x13, - 29282 - 19968: jis0208<<14 | 0x2E<<7 | 0x13, - 29283 - 19968: jis0212<<14 | 0x29<<7 | 0x3A, - 29287 - 19968: jis0208<<14 | 0x2A<<7 | 0x31, - 29288 - 19968: jis0212<<14 | 0x29<<7 | 0x3B, - 29289 - 19968: jis0208<<14 | 0x29<<7 | 0x09, - 29291 - 19968: jis0212<<14 | 0x29<<7 | 0x3C, - 29294 - 19968: jis0212<<14 | 0x29<<7 | 0x3D, - 29295 - 19968: jis0212<<14 | 0x29<<7 | 0x3E, - 29297 - 19968: jis0212<<14 | 0x29<<7 | 0x3F, - 29298 - 19968: jis0208<<14 | 0x1F<<7 | 0x16, - 29300 - 19968: jis0208<<14 | 0x3F<<7 | 0x11, - 29303 - 19968: jis0212<<14 | 0x29<<7 | 0x40, - 29304 - 19968: jis0212<<14 | 0x29<<7 | 0x41, - 29305 - 19968: jis0208<<14 | 0x25<<7 | 0x22, - 29307 - 19968: jis0212<<14 | 0x29<<7 | 0x42, - 29308 - 19968: jis0212<<14 | 0x29<<7 | 0x43, - 29309 - 19968: jis0208<<14 | 0x17<<7 | 0x02, - 29310 - 19968: jis0208<<14 | 0x3F<<7 | 0x12, - 29311 - 19968: jis0212<<14 | 0x29<<7 | 0x44, - 29312 - 19968: jis0208<<14 | 0x19<<7 | 0x33, - 29313 - 19968: jis0208<<14 | 0x3F<<7 | 0x14, - 29314 - 19968: jis0208<<14 | 0x3F<<7 | 0x13, - 29316 - 19968: jis0212<<14 | 0x29<<7 | 0x45, - 29319 - 19968: jis0208<<14 | 0x3F<<7 | 0x15, - 29321 - 19968: jis0212<<14 | 0x29<<7 | 0x46, - 29325 - 19968: jis0212<<14 | 0x29<<7 | 0x47, - 29326 - 19968: jis0212<<14 | 0x29<<7 | 0x48, - 29330 - 19968: jis0208<<14 | 0x3F<<7 | 0x16, - 29331 - 19968: jis0212<<14 | 0x29<<7 | 0x49, - 29334 - 19968: jis0208<<14 | 0x3F<<7 | 0x17, - 29339 - 19968: jis0212<<14 | 0x29<<7 | 0x4A, - 29344 - 19968: jis0208<<14 | 0x14<<7 | 0x1D, - 29346 - 19968: jis0208<<14 | 0x3F<<7 | 0x18, - 29351 - 19968: jis0208<<14 | 0x3F<<7 | 0x19, - 29352 - 19968: jis0212<<14 | 0x29<<7 | 0x4B, - 29356 - 19968: jis0208<<14 | 0x17<<7 | 0x03, - 29357 - 19968: jis0212<<14 | 0x29<<7 | 0x4C, - 29358 - 19968: jis0212<<14 | 0x29<<7 | 0x4D, - 29359 - 19968: jis0208<<14 | 0x27<<7 | 0x27, - 29361 - 19968: jis0208<<14 | 0x59<<7 | 0x5D, - 29362 - 19968: jis0208<<14 | 0x3F<<7 | 0x1B, - 29364 - 19968: jis0212<<14 | 0x29<<7 | 0x4F, - 29366 - 19968: jis0208<<14 | 0x1D<<7 | 0x54, - 29369 - 19968: jis0208<<14 | 0x3F<<7 | 0x1A, - 29374 - 19968: jis0208<<14 | 0x5A<<7 | 0x00, - 29377 - 19968: jis0212<<14 | 0x29<<7 | 0x51, - 29378 - 19968: jis0208<<14 | 0x15<<7 | 0x17, - 29379 - 19968: jis0208<<14 | 0x3F<<7 | 0x1C, - 29380 - 19968: jis0208<<14 | 0x3F<<7 | 0x1E, - 29382 - 19968: jis0208<<14 | 0x3F<<7 | 0x1D, - 29383 - 19968: jis0212<<14 | 0x29<<7 | 0x52, - 29385 - 19968: jis0212<<14 | 0x29<<7 | 0x53, - 29388 - 19968: jis0212<<14 | 0x29<<7 | 0x54, - 29390 - 19968: jis0208<<14 | 0x3F<<7 | 0x1F, - 29392 - 19968: jis0208<<14 | 0x17<<7 | 0x30, - 29394 - 19968: jis0208<<14 | 0x3F<<7 | 0x20, - 29397 - 19968: jis0212<<14 | 0x29<<7 | 0x55, - 29398 - 19968: jis0212<<14 | 0x29<<7 | 0x56, - 29399 - 19968: jis0208<<14 | 0x15<<7 | 0x48, - 29400 - 19968: jis0212<<14 | 0x29<<7 | 0x57, - 29401 - 19968: jis0208<<14 | 0x20<<7 | 0x1F, - 29403 - 19968: jis0208<<14 | 0x18<<7 | 0x5C, - 29407 - 19968: jis0212<<14 | 0x29<<7 | 0x58, - 29408 - 19968: jis0208<<14 | 0x3F<<7 | 0x22, - 29409 - 19968: jis0208<<14 | 0x3F<<7 | 0x23, - 29410 - 19968: jis0208<<14 | 0x3F<<7 | 0x21, - 29413 - 19968: jis0212<<14 | 0x29<<7 | 0x59, - 29417 - 19968: jis0208<<14 | 0x1B<<7 | 0x4C, - 29420 - 19968: jis0208<<14 | 0x25<<7 | 0x27, - 29421 - 19968: jis0208<<14 | 0x15<<7 | 0x18, - 29427 - 19968: jis0212<<14 | 0x29<<7 | 0x5A, - 29428 - 19968: jis0212<<14 | 0x29<<7 | 0x5B, - 29431 - 19968: jis0208<<14 | 0x3F<<7 | 0x25, - 29432 - 19968: jis0208<<14 | 0x22<<7 | 0x0B, - 29433 - 19968: jis0208<<14 | 0x3F<<7 | 0x24, - 29434 - 19968: jis0212<<14 | 0x29<<7 | 0x5C, - 29435 - 19968: jis0212<<14 | 0x29<<7 | 0x5D, - 29436 - 19968: jis0208<<14 | 0x2E<<7 | 0x14, - 29437 - 19968: jis0208<<14 | 0x26<<7 | 0x41, - 29438 - 19968: jis0212<<14 | 0x2A<<7 | 0x00, - 29442 - 19968: jis0212<<14 | 0x2A<<7 | 0x01, - 29444 - 19968: jis0212<<14 | 0x2A<<7 | 0x02, - 29445 - 19968: jis0212<<14 | 0x2A<<7 | 0x03, - 29447 - 19968: jis0212<<14 | 0x2A<<7 | 0x04, - 29450 - 19968: jis0208<<14 | 0x3F<<7 | 0x28, - 29451 - 19968: jis0212<<14 | 0x2A<<7 | 0x05, - 29453 - 19968: jis0212<<14 | 0x2A<<7 | 0x06, - 29458 - 19968: jis0212<<14 | 0x2A<<7 | 0x07, - 29459 - 19968: jis0212<<14 | 0x2A<<7 | 0x08, - 29462 - 19968: jis0208<<14 | 0x3F<<7 | 0x2A, - 29463 - 19968: jis0208<<14 | 0x3F<<7 | 0x27, - 29464 - 19968: jis0212<<14 | 0x2A<<7 | 0x09, - 29465 - 19968: jis0212<<14 | 0x2A<<7 | 0x0A, - 29467 - 19968: jis0208<<14 | 0x2B<<7 | 0x33, - 29468 - 19968: jis0208<<14 | 0x3F<<7 | 0x29, - 29469 - 19968: jis0208<<14 | 0x3F<<7 | 0x2B, - 29470 - 19968: jis0212<<14 | 0x2A<<7 | 0x0B, - 29471 - 19968: jis0208<<14 | 0x2D<<7 | 0x23, - 29474 - 19968: jis0212<<14 | 0x2A<<7 | 0x0C, - 29476 - 19968: jis0208<<14 | 0x5A<<7 | 0x01, - 29477 - 19968: jis0208<<14 | 0x3F<<7 | 0x2F, - 29479 - 19968: jis0212<<14 | 0x2A<<7 | 0x0E, - 29480 - 19968: jis0212<<14 | 0x2A<<7 | 0x0F, - 29481 - 19968: jis0208<<14 | 0x3F<<7 | 0x2E, - 29482 - 19968: jis0208<<14 | 0x22<<7 | 0x55, - 29483 - 19968: jis0208<<14 | 0x26<<7 | 0x0C, - 29484 - 19968: jis0212<<14 | 0x2A<<7 | 0x10, - 29486 - 19968: jis0208<<14 | 0x17<<7 | 0x04, - 29487 - 19968: jis0208<<14 | 0x3F<<7 | 0x2D, - 29489 - 19968: jis0212<<14 | 0x2A<<7 | 0x11, - 29490 - 19968: jis0212<<14 | 0x2A<<7 | 0x12, - 29492 - 19968: jis0208<<14 | 0x3F<<7 | 0x2C, - 29493 - 19968: jis0212<<14 | 0x2A<<7 | 0x13, - 29494 - 19968: jis0208<<14 | 0x2C<<7 | 0x10, - 29495 - 19968: jis0208<<14 | 0x2C<<7 | 0x11, - 29498 - 19968: jis0212<<14 | 0x2A<<7 | 0x14, - 29499 - 19968: jis0212<<14 | 0x2A<<7 | 0x15, - 29501 - 19968: jis0212<<14 | 0x2A<<7 | 0x16, - 29502 - 19968: jis0208<<14 | 0x3F<<7 | 0x30, - 29503 - 19968: jis0208<<14 | 0x10<<7 | 0x4D, - 29507 - 19968: jis0212<<14 | 0x2A<<7 | 0x17, - 29508 - 19968: jis0208<<14 | 0x18<<7 | 0x55, - 29509 - 19968: jis0208<<14 | 0x1A<<7 | 0x41, - 29517 - 19968: jis0212<<14 | 0x2A<<7 | 0x18, - 29518 - 19968: jis0208<<14 | 0x3F<<7 | 0x31, - 29519 - 19968: jis0208<<14 | 0x3F<<7 | 0x32, - 29520 - 19968: jis0212<<14 | 0x2A<<7 | 0x19, - 29522 - 19968: jis0212<<14 | 0x2A<<7 | 0x1A, - 29526 - 19968: jis0212<<14 | 0x2A<<7 | 0x1B, - 29527 - 19968: jis0208<<14 | 0x3F<<7 | 0x34, - 29528 - 19968: jis0212<<14 | 0x2A<<7 | 0x1C, - 29533 - 19968: jis0212<<14 | 0x2A<<7 | 0x1D, - 29534 - 19968: jis0212<<14 | 0x2A<<7 | 0x1E, - 29535 - 19968: jis0212<<14 | 0x2A<<7 | 0x1F, - 29536 - 19968: jis0212<<14 | 0x2A<<7 | 0x20, - 29539 - 19968: jis0208<<14 | 0x1C<<7 | 0x22, - 29542 - 19968: jis0212<<14 | 0x2A<<7 | 0x21, - 29543 - 19968: jis0212<<14 | 0x2A<<7 | 0x22, - 29544 - 19968: jis0208<<14 | 0x3F<<7 | 0x36, - 29545 - 19968: jis0212<<14 | 0x2A<<7 | 0x23, - 29546 - 19968: jis0208<<14 | 0x3F<<7 | 0x35, - 29547 - 19968: jis0212<<14 | 0x2A<<7 | 0x24, - 29548 - 19968: jis0212<<14 | 0x2A<<7 | 0x25, - 29550 - 19968: jis0212<<14 | 0x2A<<7 | 0x26, - 29551 - 19968: jis0212<<14 | 0x2A<<7 | 0x27, - 29552 - 19968: jis0208<<14 | 0x3F<<7 | 0x37, - 29553 - 19968: jis0212<<14 | 0x2A<<7 | 0x28, - 29554 - 19968: jis0208<<14 | 0x12<<7 | 0x2C, - 29557 - 19968: jis0208<<14 | 0x3F<<7 | 0x39, - 29559 - 19968: jis0208<<14 | 0x5A<<7 | 0x03, - 29560 - 19968: jis0208<<14 | 0x3F<<7 | 0x38, - 29561 - 19968: jis0212<<14 | 0x2A<<7 | 0x2A, - 29562 - 19968: jis0208<<14 | 0x3F<<7 | 0x3B, - 29563 - 19968: jis0208<<14 | 0x3F<<7 | 0x3A, - 29564 - 19968: jis0212<<14 | 0x2A<<7 | 0x2B, - 29568 - 19968: jis0212<<14 | 0x2A<<7 | 0x2C, - 29569 - 19968: jis0212<<14 | 0x2A<<7 | 0x2D, - 29571 - 19968: jis0212<<14 | 0x2A<<7 | 0x2E, - 29572 - 19968: jis0208<<14 | 0x17<<7 | 0x1B, - 29573 - 19968: jis0212<<14 | 0x2A<<7 | 0x2F, - 29574 - 19968: jis0212<<14 | 0x2A<<7 | 0x30, - 29575 - 19968: jis0208<<14 | 0x2D<<7 | 0x07, - 29577 - 19968: jis0208<<14 | 0x15<<7 | 0x2B, - 29579 - 19968: jis0208<<14 | 0x11<<7 | 0x05, - 29582 - 19968: jis0212<<14 | 0x2A<<7 | 0x31, - 29584 - 19968: jis0212<<14 | 0x2A<<7 | 0x32, - 29587 - 19968: jis0212<<14 | 0x2A<<7 | 0x33, - 29589 - 19968: jis0212<<14 | 0x2A<<7 | 0x34, - 29590 - 19968: jis0208<<14 | 0x15<<7 | 0x49, - 29591 - 19968: jis0212<<14 | 0x2A<<7 | 0x35, - 29592 - 19968: jis0212<<14 | 0x2A<<7 | 0x36, - 29596 - 19968: jis0212<<14 | 0x2A<<7 | 0x37, - 29598 - 19968: jis0212<<14 | 0x2A<<7 | 0x38, - 29599 - 19968: jis0212<<14 | 0x2A<<7 | 0x39, - 29600 - 19968: jis0212<<14 | 0x2A<<7 | 0x3A, - 29602 - 19968: jis0212<<14 | 0x2A<<7 | 0x3B, - 29605 - 19968: jis0212<<14 | 0x2A<<7 | 0x3C, - 29606 - 19968: jis0212<<14 | 0x2A<<7 | 0x3D, - 29609 - 19968: jis0208<<14 | 0x13<<7 | 0x40, - 29610 - 19968: jis0212<<14 | 0x2A<<7 | 0x3E, - 29611 - 19968: jis0212<<14 | 0x2A<<7 | 0x3F, - 29613 - 19968: jis0212<<14 | 0x2A<<7 | 0x40, - 29618 - 19968: jis0208<<14 | 0x2D<<7 | 0x47, - 29619 - 19968: jis0208<<14 | 0x3F<<7 | 0x3D, - 29621 - 19968: jis0212<<14 | 0x2A<<7 | 0x41, - 29623 - 19968: jis0212<<14 | 0x2A<<7 | 0x42, - 29625 - 19968: jis0212<<14 | 0x2A<<7 | 0x43, - 29627 - 19968: jis0208<<14 | 0x3F<<7 | 0x3F, - 29628 - 19968: jis0212<<14 | 0x2A<<7 | 0x44, - 29629 - 19968: jis0208<<14 | 0x5A<<7 | 0x04, - 29631 - 19968: jis0212<<14 | 0x2A<<7 | 0x46, - 29632 - 19968: jis0208<<14 | 0x3F<<7 | 0x40, - 29634 - 19968: jis0208<<14 | 0x11<<7 | 0x30, - 29637 - 19968: jis0212<<14 | 0x2A<<7 | 0x47, - 29638 - 19968: jis0212<<14 | 0x2A<<7 | 0x48, - 29640 - 19968: jis0208<<14 | 0x3F<<7 | 0x3C, - 29641 - 19968: jis0208<<14 | 0x5A<<7 | 0x05, - 29642 - 19968: jis0208<<14 | 0x1A<<7 | 0x18, - 29643 - 19968: jis0212<<14 | 0x2A<<7 | 0x4A, - 29644 - 19968: jis0212<<14 | 0x2A<<7 | 0x4B, - 29645 - 19968: jis0208<<14 | 0x23<<7 | 0x20, - 29646 - 19968: jis0208<<14 | 0x3F<<7 | 0x3E, - 29647 - 19968: jis0212<<14 | 0x2A<<7 | 0x4C, - 29650 - 19968: jis0208<<14 | 0x5A<<7 | 0x08, - 29651 - 19968: jis0212<<14 | 0x2A<<7 | 0x4E, - 29654 - 19968: jis0208<<14 | 0x5A<<7 | 0x06, - 29657 - 19968: jis0212<<14 | 0x2A<<7 | 0x50, - 29661 - 19968: jis0212<<14 | 0x2A<<7 | 0x51, - 29662 - 19968: jis0208<<14 | 0x3F<<7 | 0x43, - 29664 - 19968: jis0208<<14 | 0x1B<<7 | 0x4D, - 29665 - 19968: jis0212<<14 | 0x2A<<7 | 0x52, - 29667 - 19968: jis0208<<14 | 0x5A<<7 | 0x07, - 29669 - 19968: jis0208<<14 | 0x3F<<7 | 0x41, - 29670 - 19968: jis0212<<14 | 0x2A<<7 | 0x54, - 29671 - 19968: jis0212<<14 | 0x2A<<7 | 0x55, - 29673 - 19968: jis0212<<14 | 0x2A<<7 | 0x56, - 29674 - 19968: jis0208<<14 | 0x16<<7 | 0x1D, - 29677 - 19968: jis0208<<14 | 0x27<<7 | 0x28, - 29678 - 19968: jis0208<<14 | 0x3F<<7 | 0x42, - 29681 - 19968: jis0208<<14 | 0x3F<<7 | 0x5D, - 29684 - 19968: jis0212<<14 | 0x2A<<7 | 0x57, - 29685 - 19968: jis0208<<14 | 0x5A<<7 | 0x0A, - 29687 - 19968: jis0212<<14 | 0x2A<<7 | 0x59, - 29688 - 19968: jis0208<<14 | 0x3F<<7 | 0x48, - 29689 - 19968: jis0212<<14 | 0x2A<<7 | 0x5A, - 29690 - 19968: jis0212<<14 | 0x2A<<7 | 0x5B, - 29691 - 19968: jis0212<<14 | 0x2A<<7 | 0x5C, - 29693 - 19968: jis0212<<14 | 0x2A<<7 | 0x5D, - 29694 - 19968: jis0208<<14 | 0x17<<7 | 0x1C, - 29695 - 19968: jis0212<<14 | 0x2B<<7 | 0x00, - 29696 - 19968: jis0212<<14 | 0x2B<<7 | 0x01, - 29697 - 19968: jis0212<<14 | 0x2B<<7 | 0x02, - 29699 - 19968: jis0208<<14 | 0x14<<7 | 0x44, - 29700 - 19968: jis0212<<14 | 0x2B<<7 | 0x03, - 29701 - 19968: jis0208<<14 | 0x3F<<7 | 0x45, - 29702 - 19968: jis0208<<14 | 0x2C<<7 | 0x5C, - 29703 - 19968: jis0208<<14 | 0x5A<<7 | 0x09, - 29705 - 19968: jis0208<<14 | 0x2D<<7 | 0x0F, - 29706 - 19968: jis0212<<14 | 0x2B<<7 | 0x05, - 29713 - 19968: jis0212<<14 | 0x2B<<7 | 0x06, - 29722 - 19968: jis0212<<14 | 0x2B<<7 | 0x07, - 29723 - 19968: jis0212<<14 | 0x2B<<7 | 0x08, - 29730 - 19968: jis0208<<14 | 0x21<<7 | 0x55, - 29732 - 19968: jis0212<<14 | 0x2B<<7 | 0x09, - 29733 - 19968: jis0208<<14 | 0x3F<<7 | 0x47, - 29734 - 19968: jis0208<<14 | 0x5A<<7 | 0x0B, - 29736 - 19968: jis0212<<14 | 0x2B<<7 | 0x0B, - 29737 - 19968: jis0208<<14 | 0x5A<<7 | 0x0D, - 29738 - 19968: jis0208<<14 | 0x5A<<7 | 0x0C, - 29739 - 19968: jis0212<<14 | 0x2B<<7 | 0x0E, - 29740 - 19968: jis0212<<14 | 0x2B<<7 | 0x0F, - 29741 - 19968: jis0212<<14 | 0x2B<<7 | 0x10, - 29742 - 19968: jis0208<<14 | 0x5A<<7 | 0x0E, - 29743 - 19968: jis0212<<14 | 0x2B<<7 | 0x12, - 29744 - 19968: jis0212<<14 | 0x2B<<7 | 0x13, - 29745 - 19968: jis0212<<14 | 0x2B<<7 | 0x14, - 29746 - 19968: jis0208<<14 | 0x3F<<7 | 0x49, - 29747 - 19968: jis0208<<14 | 0x2D<<7 | 0x35, - 29748 - 19968: jis0208<<14 | 0x15<<7 | 0x36, - 29749 - 19968: jis0208<<14 | 0x27<<7 | 0x5B, - 29750 - 19968: jis0208<<14 | 0x26<<7 | 0x29, - 29753 - 19968: jis0212<<14 | 0x2B<<7 | 0x15, - 29754 - 19968: jis0208<<14 | 0x3F<<7 | 0x4A, - 29759 - 19968: jis0208<<14 | 0x3F<<7 | 0x4C, - 29760 - 19968: jis0212<<14 | 0x2B<<7 | 0x16, - 29761 - 19968: jis0208<<14 | 0x3F<<7 | 0x4F, - 29763 - 19968: jis0212<<14 | 0x2B<<7 | 0x17, - 29764 - 19968: jis0212<<14 | 0x2B<<7 | 0x18, - 29766 - 19968: jis0212<<14 | 0x2B<<7 | 0x19, - 29767 - 19968: jis0212<<14 | 0x2B<<7 | 0x1A, - 29771 - 19968: jis0212<<14 | 0x2B<<7 | 0x1B, - 29773 - 19968: jis0212<<14 | 0x2B<<7 | 0x1C, - 29777 - 19968: jis0212<<14 | 0x2B<<7 | 0x1D, - 29778 - 19968: jis0212<<14 | 0x2B<<7 | 0x1E, - 29781 - 19968: jis0208<<14 | 0x3F<<7 | 0x4B, - 29783 - 19968: jis0212<<14 | 0x2B<<7 | 0x1F, - 29785 - 19968: jis0208<<14 | 0x3F<<7 | 0x4E, - 29786 - 19968: jis0208<<14 | 0x17<<7 | 0x49, - 29787 - 19968: jis0208<<14 | 0x10<<7 | 0x2C, - 29788 - 19968: jis0208<<14 | 0x3F<<7 | 0x50, - 29789 - 19968: jis0212<<14 | 0x2B<<7 | 0x20, - 29790 - 19968: jis0208<<14 | 0x1E<<7 | 0x4F, - 29791 - 19968: jis0208<<14 | 0x3F<<7 | 0x4D, - 29792 - 19968: jis0208<<14 | 0x2D<<7 | 0x3B, - 29794 - 19968: jis0208<<14 | 0x5A<<7 | 0x0F, - 29795 - 19968: jis0208<<14 | 0x3F<<7 | 0x53, - 29796 - 19968: jis0208<<14 | 0x53<<7 | 0x03, - 29798 - 19968: jis0212<<14 | 0x2B<<7 | 0x22, - 29799 - 19968: jis0212<<14 | 0x2B<<7 | 0x23, - 29800 - 19968: jis0212<<14 | 0x2B<<7 | 0x24, - 29801 - 19968: jis0208<<14 | 0x3F<<7 | 0x51, - 29802 - 19968: jis0208<<14 | 0x3F<<7 | 0x54, - 29803 - 19968: jis0212<<14 | 0x2B<<7 | 0x25, - 29805 - 19968: jis0212<<14 | 0x2B<<7 | 0x26, - 29806 - 19968: jis0212<<14 | 0x2B<<7 | 0x27, - 29807 - 19968: jis0208<<14 | 0x3F<<7 | 0x46, - 29808 - 19968: jis0208<<14 | 0x3F<<7 | 0x52, - 29809 - 19968: jis0212<<14 | 0x2B<<7 | 0x28, - 29810 - 19968: jis0212<<14 | 0x2B<<7 | 0x29, - 29811 - 19968: jis0208<<14 | 0x19<<7 | 0x1B, - 29814 - 19968: jis0208<<14 | 0x3F<<7 | 0x55, - 29822 - 19968: jis0208<<14 | 0x3F<<7 | 0x56, - 29824 - 19968: jis0212<<14 | 0x2B<<7 | 0x2A, - 29825 - 19968: jis0212<<14 | 0x2B<<7 | 0x2B, - 29827 - 19968: jis0208<<14 | 0x2C<<7 | 0x5D, - 29829 - 19968: jis0212<<14 | 0x2B<<7 | 0x2C, - 29830 - 19968: jis0212<<14 | 0x2B<<7 | 0x2D, - 29831 - 19968: jis0212<<14 | 0x2B<<7 | 0x2E, - 29833 - 19968: jis0208<<14 | 0x5A<<7 | 0x10, - 29835 - 19968: jis0208<<14 | 0x3F<<7 | 0x57, - 29839 - 19968: jis0212<<14 | 0x2B<<7 | 0x30, - 29840 - 19968: jis0212<<14 | 0x2B<<7 | 0x31, - 29841 - 19968: jis0212<<14 | 0x2B<<7 | 0x32, - 29842 - 19968: jis0212<<14 | 0x2B<<7 | 0x33, - 29848 - 19968: jis0212<<14 | 0x2B<<7 | 0x34, - 29849 - 19968: jis0212<<14 | 0x2B<<7 | 0x35, - 29850 - 19968: jis0212<<14 | 0x2B<<7 | 0x36, - 29852 - 19968: jis0212<<14 | 0x2B<<7 | 0x37, - 29854 - 19968: jis0208<<14 | 0x3F<<7 | 0x58, - 29855 - 19968: jis0208<<14 | 0x5A<<7 | 0x11, - 29856 - 19968: jis0212<<14 | 0x2B<<7 | 0x39, - 29857 - 19968: jis0212<<14 | 0x2B<<7 | 0x3A, - 29858 - 19968: jis0208<<14 | 0x3F<<7 | 0x44, - 29859 - 19968: jis0212<<14 | 0x2B<<7 | 0x3B, - 29862 - 19968: jis0212<<14 | 0x2B<<7 | 0x3C, - 29863 - 19968: jis0208<<14 | 0x3F<<7 | 0x59, - 29864 - 19968: jis0212<<14 | 0x2B<<7 | 0x3D, - 29865 - 19968: jis0212<<14 | 0x2B<<7 | 0x3E, - 29866 - 19968: jis0212<<14 | 0x2B<<7 | 0x3F, - 29867 - 19968: jis0212<<14 | 0x2B<<7 | 0x40, - 29870 - 19968: jis0212<<14 | 0x2B<<7 | 0x41, - 29871 - 19968: jis0212<<14 | 0x2B<<7 | 0x42, - 29872 - 19968: jis0208<<14 | 0x13<<7 | 0x23, - 29873 - 19968: jis0212<<14 | 0x2B<<7 | 0x43, - 29874 - 19968: jis0212<<14 | 0x2B<<7 | 0x44, - 29877 - 19968: jis0212<<14 | 0x2B<<7 | 0x45, - 29881 - 19968: jis0212<<14 | 0x2B<<7 | 0x46, - 29883 - 19968: jis0212<<14 | 0x2B<<7 | 0x47, - 29885 - 19968: jis0208<<14 | 0x1B<<7 | 0x04, - 29887 - 19968: jis0212<<14 | 0x2B<<7 | 0x48, - 29896 - 19968: jis0212<<14 | 0x2B<<7 | 0x49, - 29897 - 19968: jis0212<<14 | 0x2B<<7 | 0x4A, - 29898 - 19968: jis0208<<14 | 0x3F<<7 | 0x5A, - 29900 - 19968: jis0212<<14 | 0x2B<<7 | 0x4B, - 29903 - 19968: jis0208<<14 | 0x3F<<7 | 0x5B, - 29904 - 19968: jis0212<<14 | 0x2B<<7 | 0x4C, - 29907 - 19968: jis0212<<14 | 0x2B<<7 | 0x4D, - 29908 - 19968: jis0208<<14 | 0x3F<<7 | 0x5C, - 29912 - 19968: jis0212<<14 | 0x2B<<7 | 0x4E, - 29914 - 19968: jis0212<<14 | 0x2B<<7 | 0x4F, - 29915 - 19968: jis0212<<14 | 0x2B<<7 | 0x50, - 29916 - 19968: jis0208<<14 | 0x10<<7 | 0x1A, - 29918 - 19968: jis0212<<14 | 0x2B<<7 | 0x51, - 29919 - 19968: jis0212<<14 | 0x2B<<7 | 0x52, - 29920 - 19968: jis0208<<14 | 0x40<<7 | 0x00, - 29922 - 19968: jis0208<<14 | 0x28<<7 | 0x1A, - 29923 - 19968: jis0208<<14 | 0x40<<7 | 0x01, - 29924 - 19968: jis0212<<14 | 0x2B<<7 | 0x53, - 29926 - 19968: jis0208<<14 | 0x13<<7 | 0x03, - 29927 - 19968: jis0208<<14 | 0x40<<7 | 0x02, - 29928 - 19968: jis0212<<14 | 0x2B<<7 | 0x54, - 29929 - 19968: jis0208<<14 | 0x40<<7 | 0x03, - 29930 - 19968: jis0212<<14 | 0x2B<<7 | 0x55, - 29931 - 19968: jis0212<<14 | 0x2B<<7 | 0x56, - 29934 - 19968: jis0208<<14 | 0x40<<7 | 0x04, - 29935 - 19968: jis0212<<14 | 0x2B<<7 | 0x57, - 29936 - 19968: jis0208<<14 | 0x40<<7 | 0x06, - 29937 - 19968: jis0208<<14 | 0x40<<7 | 0x07, - 29938 - 19968: jis0208<<14 | 0x40<<7 | 0x05, - 29940 - 19968: jis0212<<14 | 0x2B<<7 | 0x58, - 29942 - 19968: jis0208<<14 | 0x28<<7 | 0x32, - 29943 - 19968: jis0208<<14 | 0x40<<7 | 0x09, - 29944 - 19968: jis0208<<14 | 0x40<<7 | 0x08, - 29946 - 19968: jis0212<<14 | 0x2B<<7 | 0x59, - 29947 - 19968: jis0212<<14 | 0x2B<<7 | 0x5A, - 29948 - 19968: jis0212<<14 | 0x2B<<7 | 0x5B, - 29951 - 19968: jis0212<<14 | 0x2B<<7 | 0x5C, - 29953 - 19968: jis0208<<14 | 0x5A<<7 | 0x12, - 29955 - 19968: jis0208<<14 | 0x40<<7 | 0x0B, - 29956 - 19968: jis0208<<14 | 0x40<<7 | 0x0A, - 29957 - 19968: jis0208<<14 | 0x40<<7 | 0x0C, - 29958 - 19968: jis0212<<14 | 0x2B<<7 | 0x5D, - 29964 - 19968: jis0208<<14 | 0x40<<7 | 0x0D, - 29965 - 19968: jis0208<<14 | 0x40<<7 | 0x0F, - 29966 - 19968: jis0208<<14 | 0x40<<7 | 0x0E, - 29969 - 19968: jis0208<<14 | 0x18<<7 | 0x58, - 29970 - 19968: jis0212<<14 | 0x2C<<7 | 0x00, - 29971 - 19968: jis0208<<14 | 0x40<<7 | 0x11, - 29973 - 19968: jis0208<<14 | 0x40<<7 | 0x10, - 29974 - 19968: jis0212<<14 | 0x2C<<7 | 0x01, - 29975 - 19968: jis0212<<14 | 0x2C<<7 | 0x02, - 29976 - 19968: jis0208<<14 | 0x13<<7 | 0x24, - 29978 - 19968: jis0208<<14 | 0x1E<<7 | 0x32, - 29980 - 19968: jis0208<<14 | 0x24<<7 | 0x1B, - 29982 - 19968: jis0208<<14 | 0x40<<7 | 0x12, - 29983 - 19968: jis0208<<14 | 0x1F<<7 | 0x17, - 29984 - 19968: jis0212<<14 | 0x2C<<7 | 0x03, - 29985 - 19968: jis0212<<14 | 0x2C<<7 | 0x04, - 29987 - 19968: jis0208<<14 | 0x1A<<7 | 0x19, - 29988 - 19968: jis0212<<14 | 0x2C<<7 | 0x05, - 29989 - 19968: jis0208<<14 | 0x10<<7 | 0x58, - 29990 - 19968: jis0208<<14 | 0x40<<7 | 0x13, - 29991 - 19968: jis0212<<14 | 0x2C<<7 | 0x06, - 29992 - 19968: jis0208<<14 | 0x2C<<7 | 0x30, - 29993 - 19968: jis0212<<14 | 0x2C<<7 | 0x07, - 29994 - 19968: jis0212<<14 | 0x2C<<7 | 0x08, - 29995 - 19968: jis0208<<14 | 0x29<<7 | 0x42, - 29996 - 19968: jis0208<<14 | 0x40<<7 | 0x14, - 29999 - 19968: jis0208<<14 | 0x58<<7 | 0x4B, - 30000 - 19968: jis0208<<14 | 0x24<<7 | 0x23, - 30001 - 19968: jis0208<<14 | 0x2C<<7 | 0x12, - 30002 - 19968: jis0208<<14 | 0x18<<7 | 0x22, - 30003 - 19968: jis0208<<14 | 0x1E<<7 | 0x1C, - 30006 - 19968: jis0212<<14 | 0x2C<<7 | 0x0A, - 30007 - 19968: jis0208<<14 | 0x22<<7 | 0x2A, - 30008 - 19968: jis0208<<14 | 0x31<<7 | 0x13, - 30009 - 19968: jis0212<<14 | 0x2C<<7 | 0x0B, - 30010 - 19968: jis0208<<14 | 0x23<<7 | 0x0D, - 30011 - 19968: jis0208<<14 | 0x11<<7 | 0x47, - 30012 - 19968: jis0208<<14 | 0x40<<7 | 0x15, - 30013 - 19968: jis0212<<14 | 0x2C<<7 | 0x0C, - 30014 - 19968: jis0212<<14 | 0x2C<<7 | 0x0D, - 30015 - 19968: jis0212<<14 | 0x2C<<7 | 0x0E, - 30016 - 19968: jis0212<<14 | 0x2C<<7 | 0x0F, - 30019 - 19968: jis0212<<14 | 0x2C<<7 | 0x10, - 30020 - 19968: jis0208<<14 | 0x40<<7 | 0x16, - 30022 - 19968: jis0208<<14 | 0x40<<7 | 0x1B, - 30023 - 19968: jis0212<<14 | 0x2C<<7 | 0x11, - 30024 - 19968: jis0212<<14 | 0x2C<<7 | 0x12, - 30025 - 19968: jis0208<<14 | 0x40<<7 | 0x19, - 30026 - 19968: jis0208<<14 | 0x40<<7 | 0x18, - 30027 - 19968: jis0208<<14 | 0x39<<7 | 0x21, - 30028 - 19968: jis0208<<14 | 0x12<<7 | 0x05, - 30029 - 19968: jis0208<<14 | 0x40<<7 | 0x17, - 30030 - 19968: jis0212<<14 | 0x2C<<7 | 0x13, - 30031 - 19968: jis0208<<14 | 0x0F<<7 | 0x39, - 30032 - 19968: jis0212<<14 | 0x2C<<7 | 0x14, - 30033 - 19968: jis0208<<14 | 0x27<<7 | 0x09, - 30034 - 19968: jis0212<<14 | 0x2C<<7 | 0x15, - 30036 - 19968: jis0208<<14 | 0x27<<7 | 0x29, - 30039 - 19968: jis0212<<14 | 0x2C<<7 | 0x16, - 30041 - 19968: jis0208<<14 | 0x2D<<7 | 0x10, - 30042 - 19968: jis0208<<14 | 0x40<<7 | 0x1C, - 30043 - 19968: jis0208<<14 | 0x40<<7 | 0x1A, - 30044 - 19968: jis0208<<14 | 0x22<<7 | 0x3B, - 30045 - 19968: jis0208<<14 | 0x1F<<7 | 0x05, - 30046 - 19968: jis0212<<14 | 0x2C<<7 | 0x17, - 30047 - 19968: jis0212<<14 | 0x2C<<7 | 0x18, - 30048 - 19968: jis0208<<14 | 0x27<<7 | 0x0A, - 30049 - 19968: jis0212<<14 | 0x2C<<7 | 0x19, - 30050 - 19968: jis0208<<14 | 0x28<<7 | 0x0C, - 30052 - 19968: jis0208<<14 | 0x40<<7 | 0x1E, - 30053 - 19968: jis0208<<14 | 0x2D<<7 | 0x0B, - 30054 - 19968: jis0208<<14 | 0x16<<7 | 0x2C, - 30055 - 19968: jis0208<<14 | 0x40<<7 | 0x1F, - 30057 - 19968: jis0208<<14 | 0x40<<7 | 0x1D, - 30058 - 19968: jis0208<<14 | 0x27<<7 | 0x35, - 30059 - 19968: jis0208<<14 | 0x40<<7 | 0x20, - 30061 - 19968: jis0208<<14 | 0x40<<7 | 0x21, - 30063 - 19968: jis0208<<14 | 0x5A<<7 | 0x13, - 30064 - 19968: jis0208<<14 | 0x0F<<7 | 0x3A, - 30065 - 19968: jis0212<<14 | 0x2C<<7 | 0x1B, - 30067 - 19968: jis0208<<14 | 0x1D<<7 | 0x55, - 30068 - 19968: jis0208<<14 | 0x40<<7 | 0x26, - 30070 - 19968: jis0208<<14 | 0x40<<7 | 0x23, - 30071 - 19968: jis0208<<14 | 0x25<<7 | 0x4C, - 30072 - 19968: jis0208<<14 | 0x40<<7 | 0x22, - 30073 - 19968: jis0212<<14 | 0x2C<<7 | 0x1C, - 30074 - 19968: jis0212<<14 | 0x2C<<7 | 0x1D, - 30075 - 19968: jis0212<<14 | 0x2C<<7 | 0x1E, - 30076 - 19968: jis0212<<14 | 0x2C<<7 | 0x1F, - 30077 - 19968: jis0212<<14 | 0x2C<<7 | 0x20, - 30078 - 19968: jis0212<<14 | 0x2C<<7 | 0x21, - 30079 - 19968: jis0208<<14 | 0x14<<7 | 0x05, - 30081 - 19968: jis0212<<14 | 0x2C<<7 | 0x22, - 30082 - 19968: jis0208<<14 | 0x40<<7 | 0x29, - 30085 - 19968: jis0212<<14 | 0x2C<<7 | 0x23, - 30086 - 19968: jis0208<<14 | 0x40<<7 | 0x24, - 30087 - 19968: jis0208<<14 | 0x40<<7 | 0x25, - 30089 - 19968: jis0208<<14 | 0x40<<7 | 0x28, - 30090 - 19968: jis0208<<14 | 0x40<<7 | 0x27, - 30091 - 19968: jis0208<<14 | 0x28<<7 | 0x04, - 30094 - 19968: jis0208<<14 | 0x20<<7 | 0x21, - 30095 - 19968: jis0208<<14 | 0x20<<7 | 0x20, - 30096 - 19968: jis0212<<14 | 0x2C<<7 | 0x24, - 30097 - 19968: jis0208<<14 | 0x14<<7 | 0x1E, - 30098 - 19968: jis0212<<14 | 0x2C<<7 | 0x25, - 30099 - 19968: jis0212<<14 | 0x2C<<7 | 0x26, - 30100 - 19968: jis0208<<14 | 0x40<<7 | 0x2A, - 30101 - 19968: jis0212<<14 | 0x2C<<7 | 0x27, - 30105 - 19968: jis0212<<14 | 0x2C<<7 | 0x28, - 30106 - 19968: jis0208<<14 | 0x40<<7 | 0x2B, - 30108 - 19968: jis0212<<14 | 0x2C<<7 | 0x29, - 30109 - 19968: jis0208<<14 | 0x40<<7 | 0x2C, - 30114 - 19968: jis0212<<14 | 0x2C<<7 | 0x2A, - 30115 - 19968: jis0208<<14 | 0x40<<7 | 0x2E, - 30116 - 19968: jis0212<<14 | 0x2C<<7 | 0x2B, - 30117 - 19968: jis0208<<14 | 0x40<<7 | 0x2D, - 30123 - 19968: jis0208<<14 | 0x10<<7 | 0x35, - 30129 - 19968: jis0208<<14 | 0x40<<7 | 0x36, - 30130 - 19968: jis0208<<14 | 0x27<<7 | 0x47, - 30131 - 19968: jis0208<<14 | 0x40<<7 | 0x30, - 30132 - 19968: jis0212<<14 | 0x2C<<7 | 0x2C, - 30133 - 19968: jis0208<<14 | 0x40<<7 | 0x32, - 30136 - 19968: jis0208<<14 | 0x40<<7 | 0x34, - 30137 - 19968: jis0208<<14 | 0x1E<<7 | 0x1D, - 30138 - 19968: jis0212<<14 | 0x2C<<7 | 0x2D, - 30140 - 19968: jis0208<<14 | 0x40<<7 | 0x35, - 30141 - 19968: jis0208<<14 | 0x40<<7 | 0x33, - 30142 - 19968: jis0208<<14 | 0x1B<<7 | 0x1F, - 30143 - 19968: jis0212<<14 | 0x2C<<7 | 0x2E, - 30144 - 19968: jis0212<<14 | 0x2C<<7 | 0x2F, - 30145 - 19968: jis0212<<14 | 0x2C<<7 | 0x30, - 30146 - 19968: jis0208<<14 | 0x40<<7 | 0x2F, - 30147 - 19968: jis0208<<14 | 0x40<<7 | 0x31, - 30148 - 19968: jis0212<<14 | 0x2C<<7 | 0x31, - 30149 - 19968: jis0208<<14 | 0x28<<7 | 0x21, - 30150 - 19968: jis0212<<14 | 0x2C<<7 | 0x32, - 30151 - 19968: jis0208<<14 | 0x1D<<7 | 0x28, - 30154 - 19968: jis0208<<14 | 0x40<<7 | 0x38, - 30156 - 19968: jis0212<<14 | 0x2C<<7 | 0x33, - 30157 - 19968: jis0208<<14 | 0x40<<7 | 0x37, - 30158 - 19968: jis0212<<14 | 0x2C<<7 | 0x34, - 30159 - 19968: jis0212<<14 | 0x2C<<7 | 0x35, - 30162 - 19968: jis0208<<14 | 0x40<<7 | 0x39, - 30164 - 19968: jis0208<<14 | 0x1B<<7 | 0x05, - 30165 - 19968: jis0208<<14 | 0x19<<7 | 0x0E, - 30167 - 19968: jis0212<<14 | 0x2C<<7 | 0x36, - 30168 - 19968: jis0208<<14 | 0x24<<7 | 0x56, - 30169 - 19968: jis0208<<14 | 0x40<<7 | 0x3A, - 30171 - 19968: jis0208<<14 | 0x23<<7 | 0x2A, - 30172 - 19968: jis0212<<14 | 0x2C<<7 | 0x37, - 30174 - 19968: jis0208<<14 | 0x40<<7 | 0x3C, - 30175 - 19968: jis0212<<14 | 0x2C<<7 | 0x38, - 30176 - 19968: jis0212<<14 | 0x2C<<7 | 0x39, - 30177 - 19968: jis0212<<14 | 0x2C<<7 | 0x3A, - 30178 - 19968: jis0208<<14 | 0x2D<<7 | 0x00, - 30179 - 19968: jis0208<<14 | 0x40<<7 | 0x3B, - 30180 - 19968: jis0212<<14 | 0x2C<<7 | 0x3B, - 30183 - 19968: jis0212<<14 | 0x2C<<7 | 0x3C, - 30185 - 19968: jis0208<<14 | 0x20<<7 | 0x48, - 30188 - 19968: jis0212<<14 | 0x2C<<7 | 0x3D, - 30190 - 19968: jis0212<<14 | 0x2C<<7 | 0x3E, - 30191 - 19968: jis0212<<14 | 0x2C<<7 | 0x3F, - 30192 - 19968: jis0208<<14 | 0x40<<7 | 0x41, - 30193 - 19968: jis0212<<14 | 0x2C<<7 | 0x40, - 30194 - 19968: jis0208<<14 | 0x40<<7 | 0x43, - 30195 - 19968: jis0208<<14 | 0x40<<7 | 0x44, - 30196 - 19968: jis0208<<14 | 0x22<<7 | 0x33, - 30201 - 19968: jis0212<<14 | 0x2C<<7 | 0x41, - 30202 - 19968: jis0208<<14 | 0x40<<7 | 0x42, - 30204 - 19968: jis0208<<14 | 0x40<<7 | 0x3F, - 30206 - 19968: jis0208<<14 | 0x40<<7 | 0x3D, - 30207 - 19968: jis0208<<14 | 0x40<<7 | 0x3E, - 30208 - 19968: jis0212<<14 | 0x2C<<7 | 0x42, - 30209 - 19968: jis0208<<14 | 0x40<<7 | 0x40, - 30210 - 19968: jis0212<<14 | 0x2C<<7 | 0x43, - 30211 - 19968: jis0212<<14 | 0x2C<<7 | 0x44, - 30212 - 19968: jis0212<<14 | 0x2C<<7 | 0x45, - 30215 - 19968: jis0212<<14 | 0x2C<<7 | 0x46, - 30216 - 19968: jis0212<<14 | 0x2C<<7 | 0x47, - 30217 - 19968: jis0208<<14 | 0x40<<7 | 0x47, - 30218 - 19968: jis0212<<14 | 0x2C<<7 | 0x48, - 30219 - 19968: jis0208<<14 | 0x40<<7 | 0x45, - 30220 - 19968: jis0212<<14 | 0x2C<<7 | 0x49, - 30221 - 19968: jis0208<<14 | 0x40<<7 | 0x46, - 30223 - 19968: jis0212<<14 | 0x2C<<7 | 0x4A, - 30226 - 19968: jis0212<<14 | 0x2C<<7 | 0x4B, - 30227 - 19968: jis0212<<14 | 0x2C<<7 | 0x4C, - 30229 - 19968: jis0212<<14 | 0x2C<<7 | 0x4D, - 30230 - 19968: jis0212<<14 | 0x2C<<7 | 0x4E, - 30233 - 19968: jis0212<<14 | 0x2C<<7 | 0x4F, - 30235 - 19968: jis0212<<14 | 0x2C<<7 | 0x50, - 30236 - 19968: jis0212<<14 | 0x2C<<7 | 0x51, - 30237 - 19968: jis0212<<14 | 0x2C<<7 | 0x52, - 30238 - 19968: jis0212<<14 | 0x2C<<7 | 0x53, - 30239 - 19968: jis0208<<14 | 0x40<<7 | 0x48, - 30240 - 19968: jis0208<<14 | 0x40<<7 | 0x4A, - 30241 - 19968: jis0208<<14 | 0x40<<7 | 0x4B, - 30242 - 19968: jis0208<<14 | 0x40<<7 | 0x4C, - 30243 - 19968: jis0212<<14 | 0x2C<<7 | 0x54, - 30244 - 19968: jis0208<<14 | 0x40<<7 | 0x4D, - 30245 - 19968: jis0212<<14 | 0x2C<<7 | 0x55, - 30246 - 19968: jis0212<<14 | 0x2C<<7 | 0x56, - 30247 - 19968: jis0208<<14 | 0x40<<7 | 0x49, - 30249 - 19968: jis0212<<14 | 0x2C<<7 | 0x57, - 30253 - 19968: jis0212<<14 | 0x2C<<7 | 0x58, - 30256 - 19968: jis0208<<14 | 0x40<<7 | 0x4F, - 30258 - 19968: jis0212<<14 | 0x2C<<7 | 0x59, - 30259 - 19968: jis0212<<14 | 0x2C<<7 | 0x5A, - 30260 - 19968: jis0208<<14 | 0x40<<7 | 0x4E, - 30261 - 19968: jis0212<<14 | 0x2C<<7 | 0x5B, - 30264 - 19968: jis0212<<14 | 0x2C<<7 | 0x5C, - 30265 - 19968: jis0212<<14 | 0x2C<<7 | 0x5D, - 30266 - 19968: jis0212<<14 | 0x2D<<7 | 0x00, - 30267 - 19968: jis0208<<14 | 0x40<<7 | 0x50, - 30268 - 19968: jis0212<<14 | 0x2D<<7 | 0x01, - 30272 - 19968: jis0212<<14 | 0x2D<<7 | 0x03, - 30273 - 19968: jis0212<<14 | 0x2D<<7 | 0x04, - 30274 - 19968: jis0208<<14 | 0x2D<<7 | 0x24, - 30275 - 19968: jis0212<<14 | 0x2D<<7 | 0x05, - 30276 - 19968: jis0212<<14 | 0x2D<<7 | 0x06, - 30277 - 19968: jis0212<<14 | 0x2D<<7 | 0x07, - 30278 - 19968: jis0208<<14 | 0x40<<7 | 0x53, - 30279 - 19968: jis0208<<14 | 0x40<<7 | 0x51, - 30280 - 19968: jis0208<<14 | 0x40<<7 | 0x52, - 30281 - 19968: jis0212<<14 | 0x2D<<7 | 0x08, - 30282 - 19968: jis0212<<14 | 0x2D<<7 | 0x02, - 30283 - 19968: jis0212<<14 | 0x2D<<7 | 0x09, - 30284 - 19968: jis0208<<14 | 0x13<<7 | 0x41, - 30290 - 19968: jis0208<<14 | 0x2B<<7 | 0x5D, - 30293 - 19968: jis0212<<14 | 0x2D<<7 | 0x0A, - 30294 - 19968: jis0208<<14 | 0x29<<7 | 0x29, - 30296 - 19968: jis0208<<14 | 0x40<<7 | 0x55, - 30297 - 19968: jis0212<<14 | 0x2D<<7 | 0x0B, - 30300 - 19968: jis0208<<14 | 0x40<<7 | 0x54, - 30303 - 19968: jis0212<<14 | 0x2D<<7 | 0x0C, - 30305 - 19968: jis0208<<14 | 0x40<<7 | 0x56, - 30306 - 19968: jis0208<<14 | 0x40<<7 | 0x57, - 30308 - 19968: jis0212<<14 | 0x2D<<7 | 0x0D, - 30309 - 19968: jis0212<<14 | 0x2D<<7 | 0x0E, - 30311 - 19968: jis0208<<14 | 0x40<<7 | 0x5B, - 30312 - 19968: jis0208<<14 | 0x40<<7 | 0x58, - 30313 - 19968: jis0208<<14 | 0x40<<7 | 0x59, - 30314 - 19968: jis0208<<14 | 0x40<<7 | 0x5A, - 30316 - 19968: jis0208<<14 | 0x40<<7 | 0x5C, - 30317 - 19968: jis0212<<14 | 0x2D<<7 | 0x0F, - 30318 - 19968: jis0212<<14 | 0x2D<<7 | 0x10, - 30319 - 19968: jis0212<<14 | 0x2D<<7 | 0x11, - 30320 - 19968: jis0208<<14 | 0x40<<7 | 0x5D, - 30321 - 19968: jis0212<<14 | 0x2D<<7 | 0x12, - 30322 - 19968: jis0208<<14 | 0x41<<7 | 0x00, - 30324 - 19968: jis0212<<14 | 0x2D<<7 | 0x13, - 30326 - 19968: jis0208<<14 | 0x41<<7 | 0x01, - 30328 - 19968: jis0208<<14 | 0x41<<7 | 0x02, - 30330 - 19968: jis0208<<14 | 0x27<<7 | 0x0E, - 30331 - 19968: jis0208<<14 | 0x24<<7 | 0x2F, - 30332 - 19968: jis0208<<14 | 0x41<<7 | 0x03, - 30333 - 19968: jis0208<<14 | 0x26<<7 | 0x51, - 30334 - 19968: jis0208<<14 | 0x28<<7 | 0x13, - 30336 - 19968: jis0208<<14 | 0x41<<7 | 0x04, - 30337 - 19968: jis0212<<14 | 0x2D<<7 | 0x14, - 30338 - 19968: jis0208<<14 | 0x5A<<7 | 0x14, - 30339 - 19968: jis0208<<14 | 0x41<<7 | 0x05, - 30340 - 19968: jis0208<<14 | 0x24<<7 | 0x09, - 30341 - 19968: jis0212<<14 | 0x2D<<7 | 0x15, - 30342 - 19968: jis0208<<14 | 0x12<<7 | 0x06, - 30343 - 19968: jis0208<<14 | 0x18<<7 | 0x23, - 30344 - 19968: jis0208<<14 | 0x41<<7 | 0x06, - 30347 - 19968: jis0208<<14 | 0x41<<7 | 0x07, - 30348 - 19968: jis0212<<14 | 0x2D<<7 | 0x16, - 30349 - 19968: jis0212<<14 | 0x2D<<7 | 0x17, - 30350 - 19968: jis0208<<14 | 0x41<<7 | 0x08, - 30352 - 19968: jis0208<<14 | 0x1A<<7 | 0x08, - 30355 - 19968: jis0208<<14 | 0x41<<7 | 0x0A, - 30357 - 19968: jis0212<<14 | 0x2D<<7 | 0x18, - 30358 - 19968: jis0208<<14 | 0x41<<7 | 0x09, - 30361 - 19968: jis0208<<14 | 0x41<<7 | 0x0B, - 30362 - 19968: jis0208<<14 | 0x41<<7 | 0x0C, - 30363 - 19968: jis0208<<14 | 0x5A<<7 | 0x17, - 30364 - 19968: jis0208<<14 | 0x5A<<7 | 0x15, - 30365 - 19968: jis0212<<14 | 0x2D<<7 | 0x1B, - 30366 - 19968: jis0208<<14 | 0x5A<<7 | 0x16, - 30367 - 19968: jis0212<<14 | 0x2D<<7 | 0x1C, - 30368 - 19968: jis0212<<14 | 0x2D<<7 | 0x1D, - 30370 - 19968: jis0212<<14 | 0x2D<<7 | 0x1E, - 30371 - 19968: jis0212<<14 | 0x2D<<7 | 0x1F, - 30372 - 19968: jis0212<<14 | 0x2D<<7 | 0x20, - 30373 - 19968: jis0212<<14 | 0x2D<<7 | 0x21, - 30374 - 19968: jis0208<<14 | 0x5A<<7 | 0x18, - 30375 - 19968: jis0212<<14 | 0x2D<<7 | 0x23, - 30376 - 19968: jis0212<<14 | 0x2D<<7 | 0x24, - 30378 - 19968: jis0212<<14 | 0x2D<<7 | 0x25, - 30381 - 19968: jis0212<<14 | 0x2D<<7 | 0x26, - 30382 - 19968: jis0208<<14 | 0x27<<7 | 0x48, - 30384 - 19968: jis0208<<14 | 0x41<<7 | 0x0D, - 30388 - 19968: jis0208<<14 | 0x41<<7 | 0x0E, - 30391 - 19968: jis0208<<14 | 0x52<<7 | 0x48, - 30392 - 19968: jis0208<<14 | 0x41<<7 | 0x0F, - 30393 - 19968: jis0208<<14 | 0x41<<7 | 0x10, - 30394 - 19968: jis0208<<14 | 0x41<<7 | 0x11, - 30397 - 19968: jis0212<<14 | 0x2D<<7 | 0x27, - 30399 - 19968: jis0208<<14 | 0x1A<<7 | 0x0D, - 30401 - 19968: jis0212<<14 | 0x2D<<7 | 0x28, - 30402 - 19968: jis0208<<14 | 0x41<<7 | 0x12, - 30403 - 19968: jis0208<<14 | 0x26<<7 | 0x35, - 30405 - 19968: jis0212<<14 | 0x2D<<7 | 0x29, - 30406 - 19968: jis0208<<14 | 0x2A<<7 | 0x3E, - 30408 - 19968: jis0208<<14 | 0x10<<7 | 0x2D, - 30409 - 19968: jis0212<<14 | 0x2D<<7 | 0x2A, - 30410 - 19968: jis0208<<14 | 0x10<<7 | 0x36, - 30411 - 19968: jis0212<<14 | 0x2D<<7 | 0x2B, - 30412 - 19968: jis0212<<14 | 0x2D<<7 | 0x2C, - 30413 - 19968: jis0208<<14 | 0x41<<7 | 0x13, - 30414 - 19968: jis0212<<14 | 0x2D<<7 | 0x2D, - 30418 - 19968: jis0208<<14 | 0x41<<7 | 0x15, - 30420 - 19968: jis0212<<14 | 0x2D<<7 | 0x2E, - 30422 - 19968: jis0208<<14 | 0x41<<7 | 0x14, - 30423 - 19968: jis0208<<14 | 0x24<<7 | 0x4F, - 30425 - 19968: jis0212<<14 | 0x2D<<7 | 0x2F, - 30427 - 19968: jis0208<<14 | 0x1F<<7 | 0x18, - 30428 - 19968: jis0208<<14 | 0x3C<<7 | 0x18, - 30430 - 19968: jis0208<<14 | 0x41<<7 | 0x16, - 30431 - 19968: jis0208<<14 | 0x2B<<7 | 0x20, - 30432 - 19968: jis0212<<14 | 0x2D<<7 | 0x30, - 30433 - 19968: jis0208<<14 | 0x41<<7 | 0x17, - 30435 - 19968: jis0208<<14 | 0x13<<7 | 0x25, - 30436 - 19968: jis0208<<14 | 0x27<<7 | 0x36, - 30437 - 19968: jis0208<<14 | 0x41<<7 | 0x18, - 30438 - 19968: jis0212<<14 | 0x2D<<7 | 0x31, - 30439 - 19968: jis0208<<14 | 0x41<<7 | 0x19, - 30440 - 19968: jis0212<<14 | 0x2D<<7 | 0x32, - 30442 - 19968: jis0208<<14 | 0x41<<7 | 0x1A, - 30444 - 19968: jis0212<<14 | 0x2D<<7 | 0x33, - 30446 - 19968: jis0208<<14 | 0x2B<<7 | 0x3B, - 30448 - 19968: jis0212<<14 | 0x2D<<7 | 0x34, - 30449 - 19968: jis0212<<14 | 0x2D<<7 | 0x35, - 30450 - 19968: jis0208<<14 | 0x2B<<7 | 0x34, - 30452 - 19968: jis0208<<14 | 0x23<<7 | 0x1D, - 30454 - 19968: jis0212<<14 | 0x2D<<7 | 0x36, - 30456 - 19968: jis0208<<14 | 0x20<<7 | 0x49, - 30457 - 19968: jis0212<<14 | 0x2D<<7 | 0x37, - 30459 - 19968: jis0208<<14 | 0x41<<7 | 0x1C, - 30460 - 19968: jis0212<<14 | 0x2D<<7 | 0x38, - 30462 - 19968: jis0208<<14 | 0x1C<<7 | 0x41, - 30464 - 19968: jis0212<<14 | 0x2D<<7 | 0x39, - 30465 - 19968: jis0208<<14 | 0x1D<<7 | 0x29, - 30468 - 19968: jis0208<<14 | 0x41<<7 | 0x1F, - 30470 - 19968: jis0212<<14 | 0x2D<<7 | 0x3A, - 30471 - 19968: jis0208<<14 | 0x41<<7 | 0x1E, - 30472 - 19968: jis0208<<14 | 0x41<<7 | 0x1D, - 30473 - 19968: jis0208<<14 | 0x27<<7 | 0x5C, - 30474 - 19968: jis0212<<14 | 0x2D<<7 | 0x3B, - 30475 - 19968: jis0208<<14 | 0x13<<7 | 0x26, - 30476 - 19968: jis0208<<14 | 0x17<<7 | 0x08, - 30478 - 19968: jis0212<<14 | 0x2D<<7 | 0x3C, - 30482 - 19968: jis0212<<14 | 0x2D<<7 | 0x3D, - 30484 - 19968: jis0212<<14 | 0x2D<<7 | 0x3E, - 30485 - 19968: jis0212<<14 | 0x2D<<7 | 0x3F, - 30487 - 19968: jis0212<<14 | 0x2D<<7 | 0x40, - 30489 - 19968: jis0212<<14 | 0x2D<<7 | 0x41, - 30490 - 19968: jis0212<<14 | 0x2D<<7 | 0x42, - 30491 - 19968: jis0208<<14 | 0x41<<7 | 0x25, - 30492 - 19968: jis0212<<14 | 0x2D<<7 | 0x43, - 30494 - 19968: jis0208<<14 | 0x41<<7 | 0x22, - 30495 - 19968: jis0208<<14 | 0x1E<<7 | 0x1E, - 30496 - 19968: jis0208<<14 | 0x2B<<7 | 0x11, - 30498 - 19968: jis0212<<14 | 0x2D<<7 | 0x44, - 30500 - 19968: jis0208<<14 | 0x41<<7 | 0x21, - 30501 - 19968: jis0208<<14 | 0x41<<7 | 0x23, - 30502 - 19968: jis0208<<14 | 0x41<<7 | 0x24, - 30504 - 19968: jis0212<<14 | 0x2D<<7 | 0x45, - 30505 - 19968: jis0208<<14 | 0x41<<7 | 0x20, - 30509 - 19968: jis0212<<14 | 0x2D<<7 | 0x46, - 30510 - 19968: jis0212<<14 | 0x2D<<7 | 0x47, - 30511 - 19968: jis0212<<14 | 0x2D<<7 | 0x48, - 30516 - 19968: jis0212<<14 | 0x2D<<7 | 0x49, - 30517 - 19968: jis0212<<14 | 0x2D<<7 | 0x4A, - 30518 - 19968: jis0212<<14 | 0x2D<<7 | 0x4B, - 30519 - 19968: jis0208<<14 | 0x41<<7 | 0x26, - 30520 - 19968: jis0208<<14 | 0x41<<7 | 0x27, - 30521 - 19968: jis0212<<14 | 0x2D<<7 | 0x4C, - 30522 - 19968: jis0208<<14 | 0x23<<7 | 0x0E, - 30524 - 19968: jis0208<<14 | 0x13<<7 | 0x42, - 30525 - 19968: jis0212<<14 | 0x2D<<7 | 0x4D, - 30526 - 19968: jis0212<<14 | 0x2D<<7 | 0x4E, - 30528 - 19968: jis0208<<14 | 0x22<<7 | 0x44, - 30530 - 19968: jis0212<<14 | 0x2D<<7 | 0x4F, - 30533 - 19968: jis0212<<14 | 0x2D<<7 | 0x50, - 30534 - 19968: jis0208<<14 | 0x5A<<7 | 0x1A, - 30535 - 19968: jis0208<<14 | 0x41<<7 | 0x28, - 30538 - 19968: jis0212<<14 | 0x2D<<7 | 0x52, - 30541 - 19968: jis0212<<14 | 0x2D<<7 | 0x53, - 30542 - 19968: jis0212<<14 | 0x2D<<7 | 0x54, - 30543 - 19968: jis0212<<14 | 0x2D<<7 | 0x55, - 30546 - 19968: jis0212<<14 | 0x2D<<7 | 0x56, - 30550 - 19968: jis0212<<14 | 0x2D<<7 | 0x57, - 30551 - 19968: jis0212<<14 | 0x2D<<7 | 0x58, - 30554 - 19968: jis0208<<14 | 0x41<<7 | 0x29, - 30555 - 19968: jis0208<<14 | 0x41<<7 | 0x2C, - 30556 - 19968: jis0212<<14 | 0x2D<<7 | 0x59, - 30558 - 19968: jis0212<<14 | 0x2D<<7 | 0x5A, - 30559 - 19968: jis0212<<14 | 0x2D<<7 | 0x5B, - 30560 - 19968: jis0212<<14 | 0x2D<<7 | 0x5C, - 30561 - 19968: jis0208<<14 | 0x1E<<7 | 0x46, - 30562 - 19968: jis0212<<14 | 0x2D<<7 | 0x5D, - 30563 - 19968: jis0208<<14 | 0x25<<7 | 0x23, - 30564 - 19968: jis0212<<14 | 0x2E<<7 | 0x00, - 30565 - 19968: jis0208<<14 | 0x41<<7 | 0x2D, - 30566 - 19968: jis0208<<14 | 0x2A<<7 | 0x32, - 30567 - 19968: jis0212<<14 | 0x2E<<7 | 0x01, - 30568 - 19968: jis0208<<14 | 0x41<<7 | 0x2A, - 30570 - 19968: jis0212<<14 | 0x2E<<7 | 0x02, - 30571 - 19968: jis0208<<14 | 0x41<<7 | 0x2B, - 30572 - 19968: jis0212<<14 | 0x2E<<7 | 0x03, - 30576 - 19968: jis0212<<14 | 0x2E<<7 | 0x04, - 30578 - 19968: jis0212<<14 | 0x2E<<7 | 0x05, - 30579 - 19968: jis0212<<14 | 0x2E<<7 | 0x06, - 30580 - 19968: jis0212<<14 | 0x2E<<7 | 0x07, - 30585 - 19968: jis0208<<14 | 0x41<<7 | 0x30, - 30586 - 19968: jis0212<<14 | 0x2E<<7 | 0x08, - 30589 - 19968: jis0212<<14 | 0x2E<<7 | 0x09, - 30590 - 19968: jis0208<<14 | 0x41<<7 | 0x2F, - 30591 - 19968: jis0208<<14 | 0x41<<7 | 0x2E, - 30592 - 19968: jis0212<<14 | 0x2E<<7 | 0x0A, - 30596 - 19968: jis0212<<14 | 0x2E<<7 | 0x0B, - 30603 - 19968: jis0208<<14 | 0x41<<7 | 0x32, - 30604 - 19968: jis0212<<14 | 0x2E<<7 | 0x0C, - 30605 - 19968: jis0212<<14 | 0x2E<<7 | 0x0D, - 30606 - 19968: jis0208<<14 | 0x41<<7 | 0x31, - 30609 - 19968: jis0208<<14 | 0x41<<7 | 0x33, - 30612 - 19968: jis0212<<14 | 0x2E<<7 | 0x0E, - 30613 - 19968: jis0212<<14 | 0x2E<<7 | 0x0F, - 30614 - 19968: jis0212<<14 | 0x2E<<7 | 0x10, - 30618 - 19968: jis0212<<14 | 0x2E<<7 | 0x11, - 30622 - 19968: jis0208<<14 | 0x41<<7 | 0x35, - 30623 - 19968: jis0212<<14 | 0x2E<<7 | 0x12, - 30624 - 19968: jis0208<<14 | 0x41<<7 | 0x34, - 30626 - 19968: jis0212<<14 | 0x2E<<7 | 0x13, - 30629 - 19968: jis0208<<14 | 0x29<<7 | 0x2C, - 30631 - 19968: jis0212<<14 | 0x2E<<7 | 0x14, - 30634 - 19968: jis0212<<14 | 0x2E<<7 | 0x15, - 30636 - 19968: jis0208<<14 | 0x1C<<7 | 0x35, - 30637 - 19968: jis0208<<14 | 0x2D<<7 | 0x25, - 30638 - 19968: jis0212<<14 | 0x2E<<7 | 0x16, - 30639 - 19968: jis0212<<14 | 0x2E<<7 | 0x17, - 30640 - 19968: jis0208<<14 | 0x41<<7 | 0x36, - 30641 - 19968: jis0212<<14 | 0x2E<<7 | 0x18, - 30643 - 19968: jis0208<<14 | 0x25<<7 | 0x16, - 30645 - 19968: jis0212<<14 | 0x2E<<7 | 0x19, - 30646 - 19968: jis0208<<14 | 0x41<<7 | 0x37, - 30649 - 19968: jis0208<<14 | 0x41<<7 | 0x38, - 30651 - 19968: jis0208<<14 | 0x41<<7 | 0x3C, - 30652 - 19968: jis0208<<14 | 0x41<<7 | 0x3A, - 30653 - 19968: jis0208<<14 | 0x41<<7 | 0x3B, - 30654 - 19968: jis0212<<14 | 0x2E<<7 | 0x1A, - 30655 - 19968: jis0208<<14 | 0x41<<7 | 0x39, - 30659 - 19968: jis0212<<14 | 0x2E<<7 | 0x1B, - 30663 - 19968: jis0208<<14 | 0x41<<7 | 0x3D, - 30665 - 19968: jis0212<<14 | 0x2E<<7 | 0x1C, - 30669 - 19968: jis0208<<14 | 0x41<<7 | 0x3E, - 30673 - 19968: jis0212<<14 | 0x2E<<7 | 0x1D, - 30674 - 19968: jis0212<<14 | 0x2E<<7 | 0x1E, - 30677 - 19968: jis0212<<14 | 0x2E<<7 | 0x1F, - 30679 - 19968: jis0208<<14 | 0x41<<7 | 0x3F, - 30681 - 19968: jis0212<<14 | 0x2E<<7 | 0x20, - 30682 - 19968: jis0208<<14 | 0x41<<7 | 0x40, - 30683 - 19968: jis0208<<14 | 0x2B<<7 | 0x16, - 30684 - 19968: jis0208<<14 | 0x41<<7 | 0x41, - 30686 - 19968: jis0212<<14 | 0x2E<<7 | 0x21, - 30687 - 19968: jis0212<<14 | 0x2E<<7 | 0x22, - 30688 - 19968: jis0212<<14 | 0x2E<<7 | 0x23, - 30690 - 19968: jis0208<<14 | 0x2B<<7 | 0x4F, - 30691 - 19968: jis0208<<14 | 0x41<<7 | 0x42, - 30692 - 19968: jis0212<<14 | 0x2E<<7 | 0x24, - 30693 - 19968: jis0208<<14 | 0x22<<7 | 0x2D, - 30694 - 19968: jis0212<<14 | 0x2E<<7 | 0x25, - 30695 - 19968: jis0208<<14 | 0x26<<7 | 0x49, - 30697 - 19968: jis0208<<14 | 0x15<<7 | 0x4A, - 30698 - 19968: jis0212<<14 | 0x2E<<7 | 0x26, - 30700 - 19968: jis0212<<14 | 0x2E<<7 | 0x27, - 30701 - 19968: jis0208<<14 | 0x22<<7 | 0x1A, - 30702 - 19968: jis0208<<14 | 0x41<<7 | 0x43, - 30703 - 19968: jis0208<<14 | 0x15<<7 | 0x19, - 30704 - 19968: jis0212<<14 | 0x2E<<7 | 0x28, - 30705 - 19968: jis0212<<14 | 0x2E<<7 | 0x29, - 30707 - 19968: jis0208<<14 | 0x1F<<7 | 0x2F, - 30708 - 19968: jis0212<<14 | 0x2E<<7 | 0x2A, - 30712 - 19968: jis0212<<14 | 0x2E<<7 | 0x2B, - 30715 - 19968: jis0212<<14 | 0x2E<<7 | 0x2C, - 30716 - 19968: jis0208<<14 | 0x41<<7 | 0x44, - 30722 - 19968: jis0208<<14 | 0x19<<7 | 0x1C, - 30725 - 19968: jis0212<<14 | 0x2E<<7 | 0x2D, - 30726 - 19968: jis0212<<14 | 0x2E<<7 | 0x2E, - 30729 - 19968: jis0212<<14 | 0x2E<<7 | 0x2F, - 30732 - 19968: jis0208<<14 | 0x41<<7 | 0x45, - 30733 - 19968: jis0212<<14 | 0x2E<<7 | 0x30, - 30734 - 19968: jis0212<<14 | 0x2E<<7 | 0x31, - 30737 - 19968: jis0212<<14 | 0x2E<<7 | 0x32, - 30738 - 19968: jis0208<<14 | 0x41<<7 | 0x46, - 30740 - 19968: jis0208<<14 | 0x17<<7 | 0x05, - 30741 - 19968: jis0208<<14 | 0x19<<7 | 0x34, - 30749 - 19968: jis0212<<14 | 0x2E<<7 | 0x33, - 30752 - 19968: jis0208<<14 | 0x41<<7 | 0x48, - 30753 - 19968: jis0208<<14 | 0x5A<<7 | 0x1C, - 30754 - 19968: jis0212<<14 | 0x2E<<7 | 0x35, - 30755 - 19968: jis0212<<14 | 0x2E<<7 | 0x36, - 30757 - 19968: jis0208<<14 | 0x24<<7 | 0x35, - 30758 - 19968: jis0208<<14 | 0x19<<7 | 0x35, - 30759 - 19968: jis0208<<14 | 0x14<<7 | 0x2D, - 30765 - 19968: jis0212<<14 | 0x2E<<7 | 0x37, - 30766 - 19968: jis0212<<14 | 0x2E<<7 | 0x38, - 30768 - 19968: jis0212<<14 | 0x2E<<7 | 0x39, - 30770 - 19968: jis0208<<14 | 0x2A<<7 | 0x03, - 30772 - 19968: jis0208<<14 | 0x26<<7 | 0x2A, - 30773 - 19968: jis0212<<14 | 0x2E<<7 | 0x3A, - 30775 - 19968: jis0212<<14 | 0x2E<<7 | 0x3B, - 30778 - 19968: jis0208<<14 | 0x24<<7 | 0x36, - 30783 - 19968: jis0208<<14 | 0x18<<7 | 0x3B, - 30787 - 19968: jis0212<<14 | 0x2E<<7 | 0x3C, - 30788 - 19968: jis0212<<14 | 0x2E<<7 | 0x3D, - 30789 - 19968: jis0208<<14 | 0x41<<7 | 0x4A, - 30791 - 19968: jis0212<<14 | 0x2E<<7 | 0x3E, - 30792 - 19968: jis0212<<14 | 0x2E<<7 | 0x3F, - 30796 - 19968: jis0212<<14 | 0x2E<<7 | 0x40, - 30798 - 19968: jis0208<<14 | 0x5A<<7 | 0x1D, - 30802 - 19968: jis0212<<14 | 0x2E<<7 | 0x42, - 30812 - 19968: jis0212<<14 | 0x2E<<7 | 0x43, - 30813 - 19968: jis0208<<14 | 0x1D<<7 | 0x2A, - 30814 - 19968: jis0212<<14 | 0x2E<<7 | 0x44, - 30816 - 19968: jis0212<<14 | 0x2E<<7 | 0x45, - 30817 - 19968: jis0212<<14 | 0x2E<<7 | 0x46, - 30819 - 19968: jis0212<<14 | 0x2E<<7 | 0x47, - 30820 - 19968: jis0208<<14 | 0x5A<<7 | 0x1E, - 30824 - 19968: jis0212<<14 | 0x2E<<7 | 0x49, - 30826 - 19968: jis0212<<14 | 0x2E<<7 | 0x4A, - 30827 - 19968: jis0208<<14 | 0x2D<<7 | 0x11, - 30828 - 19968: jis0208<<14 | 0x18<<7 | 0x24, - 30830 - 19968: jis0212<<14 | 0x2E<<7 | 0x4B, - 30831 - 19968: jis0208<<14 | 0x17<<7 | 0x06, - 30834 - 19968: jis0208<<14 | 0x27<<7 | 0x02, - 30836 - 19968: jis0208<<14 | 0x41<<7 | 0x4C, - 30842 - 19968: jis0208<<14 | 0x5A<<7 | 0x1F, - 30844 - 19968: jis0208<<14 | 0x41<<7 | 0x4E, - 30846 - 19968: jis0212<<14 | 0x2E<<7 | 0x4D, - 30849 - 19968: jis0208<<14 | 0x17<<7 | 0x4A, - 30854 - 19968: jis0208<<14 | 0x41<<7 | 0x4D, - 30855 - 19968: jis0208<<14 | 0x23<<7 | 0x55, - 30858 - 19968: jis0212<<14 | 0x2E<<7 | 0x4E, - 30860 - 19968: jis0208<<14 | 0x41<<7 | 0x50, - 30861 - 19968: jis0208<<14 | 0x12<<7 | 0x16, - 30862 - 19968: jis0208<<14 | 0x41<<7 | 0x4B, - 30863 - 19968: jis0212<<14 | 0x2E<<7 | 0x4F, - 30865 - 19968: jis0208<<14 | 0x27<<7 | 0x49, - 30867 - 19968: jis0208<<14 | 0x10<<7 | 0x0F, - 30868 - 19968: jis0212<<14 | 0x2E<<7 | 0x50, - 30869 - 19968: jis0208<<14 | 0x19<<7 | 0x4B, - 30871 - 19968: jis0208<<14 | 0x2E<<7 | 0x31, - 30872 - 19968: jis0212<<14 | 0x2E<<7 | 0x51, - 30874 - 19968: jis0208<<14 | 0x41<<7 | 0x4F, - 30877 - 19968: jis0212<<14 | 0x2E<<7 | 0x53, - 30878 - 19968: jis0212<<14 | 0x2E<<7 | 0x54, - 30879 - 19968: jis0212<<14 | 0x2E<<7 | 0x55, - 30881 - 19968: jis0212<<14 | 0x2E<<7 | 0x52, - 30883 - 19968: jis0208<<14 | 0x41<<7 | 0x51, - 30884 - 19968: jis0212<<14 | 0x2E<<7 | 0x56, - 30887 - 19968: jis0208<<14 | 0x29<<7 | 0x2A, - 30888 - 19968: jis0212<<14 | 0x2E<<7 | 0x57, - 30889 - 19968: jis0208<<14 | 0x1F<<7 | 0x38, - 30890 - 19968: jis0208<<14 | 0x41<<7 | 0x53, - 30892 - 19968: jis0212<<14 | 0x2E<<7 | 0x58, - 30893 - 19968: jis0212<<14 | 0x2E<<7 | 0x59, - 30895 - 19968: jis0208<<14 | 0x41<<7 | 0x54, - 30896 - 19968: jis0212<<14 | 0x2E<<7 | 0x5A, - 30897 - 19968: jis0212<<14 | 0x2E<<7 | 0x5B, - 30898 - 19968: jis0212<<14 | 0x2E<<7 | 0x5C, - 30899 - 19968: jis0212<<14 | 0x2E<<7 | 0x5D, - 30901 - 19968: jis0208<<14 | 0x41<<7 | 0x52, - 30906 - 19968: jis0208<<14 | 0x12<<7 | 0x2D, - 30907 - 19968: jis0212<<14 | 0x2F<<7 | 0x00, - 30908 - 19968: jis0208<<14 | 0x41<<7 | 0x5A, - 30909 - 19968: jis0212<<14 | 0x2F<<7 | 0x01, - 30910 - 19968: jis0208<<14 | 0x41<<7 | 0x59, - 30911 - 19968: jis0212<<14 | 0x2F<<7 | 0x02, - 30913 - 19968: jis0208<<14 | 0x1B<<7 | 0x06, - 30917 - 19968: jis0208<<14 | 0x41<<7 | 0x5B, - 30918 - 19968: jis0208<<14 | 0x41<<7 | 0x56, - 30919 - 19968: jis0212<<14 | 0x2F<<7 | 0x03, - 30920 - 19968: jis0212<<14 | 0x2F<<7 | 0x04, - 30921 - 19968: jis0212<<14 | 0x2F<<7 | 0x05, - 30922 - 19968: jis0208<<14 | 0x41<<7 | 0x5C, - 30923 - 19968: jis0208<<14 | 0x41<<7 | 0x57, - 30924 - 19968: jis0212<<14 | 0x2F<<7 | 0x06, - 30926 - 19968: jis0212<<14 | 0x2F<<7 | 0x07, - 30928 - 19968: jis0208<<14 | 0x27<<7 | 0x37, - 30929 - 19968: jis0208<<14 | 0x41<<7 | 0x55, - 30930 - 19968: jis0212<<14 | 0x2F<<7 | 0x08, - 30931 - 19968: jis0212<<14 | 0x2F<<7 | 0x09, - 30932 - 19968: jis0208<<14 | 0x41<<7 | 0x58, - 30933 - 19968: jis0212<<14 | 0x2F<<7 | 0x0A, - 30934 - 19968: jis0212<<14 | 0x2F<<7 | 0x0B, - 30938 - 19968: jis0208<<14 | 0x42<<7 | 0x01, - 30939 - 19968: jis0212<<14 | 0x2F<<7 | 0x0D, - 30943 - 19968: jis0212<<14 | 0x2F<<7 | 0x0E, - 30944 - 19968: jis0212<<14 | 0x2F<<7 | 0x0F, - 30945 - 19968: jis0212<<14 | 0x2F<<7 | 0x10, - 30948 - 19968: jis0212<<14 | 0x2F<<7 | 0x0C, - 30950 - 19968: jis0212<<14 | 0x2F<<7 | 0x11, - 30951 - 19968: jis0208<<14 | 0x42<<7 | 0x00, - 30952 - 19968: jis0208<<14 | 0x2A<<7 | 0x40, - 30954 - 19968: jis0212<<14 | 0x2F<<7 | 0x12, - 30956 - 19968: jis0208<<14 | 0x41<<7 | 0x5D, - 30959 - 19968: jis0208<<14 | 0x0F<<7 | 0x4A, - 30962 - 19968: jis0212<<14 | 0x2F<<7 | 0x13, - 30963 - 19968: jis0212<<14 | 0x2F<<7 | 0x14, - 30964 - 19968: jis0208<<14 | 0x42<<7 | 0x03, - 30966 - 19968: jis0212<<14 | 0x2F<<7 | 0x16, - 30967 - 19968: jis0212<<14 | 0x2F<<7 | 0x17, - 30970 - 19968: jis0212<<14 | 0x2F<<7 | 0x18, - 30971 - 19968: jis0212<<14 | 0x2F<<7 | 0x19, - 30973 - 19968: jis0208<<14 | 0x42<<7 | 0x02, - 30975 - 19968: jis0212<<14 | 0x2F<<7 | 0x1A, - 30976 - 19968: jis0212<<14 | 0x2F<<7 | 0x15, - 30977 - 19968: jis0208<<14 | 0x1D<<7 | 0x2B, - 30982 - 19968: jis0212<<14 | 0x2F<<7 | 0x1B, - 30983 - 19968: jis0208<<14 | 0x42<<7 | 0x04, - 30988 - 19968: jis0212<<14 | 0x2F<<7 | 0x1C, - 30990 - 19968: jis0208<<14 | 0x20<<7 | 0x22, - 30992 - 19968: jis0212<<14 | 0x2F<<7 | 0x1D, - 30993 - 19968: jis0208<<14 | 0x42<<7 | 0x06, - 30994 - 19968: jis0208<<14 | 0x42<<7 | 0x05, - 31001 - 19968: jis0208<<14 | 0x42<<7 | 0x07, - 31002 - 19968: jis0212<<14 | 0x2F<<7 | 0x1E, - 31004 - 19968: jis0212<<14 | 0x2F<<7 | 0x1F, - 31006 - 19968: jis0212<<14 | 0x2F<<7 | 0x20, - 31007 - 19968: jis0212<<14 | 0x2F<<7 | 0x21, - 31008 - 19968: jis0212<<14 | 0x2F<<7 | 0x22, - 31013 - 19968: jis0212<<14 | 0x2F<<7 | 0x23, - 31014 - 19968: jis0208<<14 | 0x41<<7 | 0x47, - 31015 - 19968: jis0212<<14 | 0x2F<<7 | 0x24, - 31017 - 19968: jis0212<<14 | 0x2F<<7 | 0x25, - 31018 - 19968: jis0208<<14 | 0x41<<7 | 0x49, - 31019 - 19968: jis0208<<14 | 0x42<<7 | 0x09, - 31020 - 19968: jis0208<<14 | 0x42<<7 | 0x08, - 31021 - 19968: jis0212<<14 | 0x2F<<7 | 0x26, - 31024 - 19968: jis0208<<14 | 0x5A<<7 | 0x20, - 31025 - 19968: jis0212<<14 | 0x2F<<7 | 0x27, - 31028 - 19968: jis0212<<14 | 0x2F<<7 | 0x28, - 31029 - 19968: jis0212<<14 | 0x2F<<7 | 0x29, - 31034 - 19968: jis0208<<14 | 0x1B<<7 | 0x07, - 31035 - 19968: jis0212<<14 | 0x2F<<7 | 0x2A, - 31036 - 19968: jis0208<<14 | 0x2D<<7 | 0x48, - 31037 - 19968: jis0212<<14 | 0x2F<<7 | 0x2B, - 31038 - 19968: jis0208<<14 | 0x1B<<7 | 0x31, - 31039 - 19968: jis0212<<14 | 0x2F<<7 | 0x2C, - 31040 - 19968: jis0208<<14 | 0x42<<7 | 0x0A, - 31041 - 19968: jis0208<<14 | 0x16<<7 | 0x16, - 31044 - 19968: jis0212<<14 | 0x2F<<7 | 0x2D, - 31045 - 19968: jis0212<<14 | 0x2F<<7 | 0x2E, - 31046 - 19968: jis0212<<14 | 0x2F<<7 | 0x2F, - 31047 - 19968: jis0208<<14 | 0x14<<7 | 0x1F, - 31048 - 19968: jis0208<<14 | 0x14<<7 | 0x06, - 31049 - 19968: jis0208<<14 | 0x1A<<7 | 0x42, - 31050 - 19968: jis0212<<14 | 0x2F<<7 | 0x30, - 31051 - 19968: jis0212<<14 | 0x2F<<7 | 0x31, - 31055 - 19968: jis0212<<14 | 0x2F<<7 | 0x32, - 31056 - 19968: jis0208<<14 | 0x2C<<7 | 0x13, - 31057 - 19968: jis0212<<14 | 0x2F<<7 | 0x33, - 31059 - 19968: jis0208<<14 | 0x42<<7 | 0x10, - 31060 - 19968: jis0212<<14 | 0x2F<<7 | 0x34, - 31061 - 19968: jis0208<<14 | 0x42<<7 | 0x0F, - 31062 - 19968: jis0208<<14 | 0x20<<7 | 0x23, - 31063 - 19968: jis0208<<14 | 0x42<<7 | 0x0C, - 31064 - 19968: jis0212<<14 | 0x2F<<7 | 0x35, - 31066 - 19968: jis0208<<14 | 0x42<<7 | 0x0E, - 31067 - 19968: jis0212<<14 | 0x2F<<7 | 0x36, - 31068 - 19968: jis0212<<14 | 0x2F<<7 | 0x37, - 31069 - 19968: jis0208<<14 | 0x1C<<7 | 0x2A, - 31070 - 19968: jis0208<<14 | 0x1E<<7 | 0x1F, - 31071 - 19968: jis0208<<14 | 0x42<<7 | 0x0D, - 31072 - 19968: jis0208<<14 | 0x42<<7 | 0x0B, - 31074 - 19968: jis0208<<14 | 0x26<<7 | 0x09, - 31077 - 19968: jis0208<<14 | 0x1D<<7 | 0x2C, - 31079 - 19968: jis0212<<14 | 0x2F<<7 | 0x38, - 31080 - 19968: jis0208<<14 | 0x28<<7 | 0x1B, - 31081 - 19968: jis0212<<14 | 0x2F<<7 | 0x39, - 31083 - 19968: jis0212<<14 | 0x2F<<7 | 0x3A, - 31085 - 19968: jis0208<<14 | 0x19<<7 | 0x36, - 31090 - 19968: jis0212<<14 | 0x2F<<7 | 0x3B, - 31095 - 19968: jis0208<<14 | 0x24<<7 | 0x57, - 31097 - 19968: jis0212<<14 | 0x2F<<7 | 0x3C, - 31098 - 19968: jis0208<<14 | 0x42<<7 | 0x11, - 31099 - 19968: jis0212<<14 | 0x2F<<7 | 0x3D, - 31100 - 19968: jis0212<<14 | 0x2F<<7 | 0x3E, - 31102 - 19968: jis0212<<14 | 0x2F<<7 | 0x3F, - 31103 - 19968: jis0208<<14 | 0x42<<7 | 0x12, - 31104 - 19968: jis0208<<14 | 0x42<<7 | 0x28, - 31105 - 19968: jis0208<<14 | 0x15<<7 | 0x37, - 31108 - 19968: jis0208<<14 | 0x2E<<7 | 0x1C, - 31109 - 19968: jis0208<<14 | 0x20<<7 | 0x14, - 31114 - 19968: jis0208<<14 | 0x42<<7 | 0x13, - 31115 - 19968: jis0212<<14 | 0x2F<<7 | 0x40, - 31116 - 19968: jis0212<<14 | 0x2F<<7 | 0x41, - 31117 - 19968: jis0208<<14 | 0x11<<7 | 0x31, - 31118 - 19968: jis0208<<14 | 0x23<<7 | 0x56, - 31119 - 19968: jis0208<<14 | 0x29<<7 | 0x00, - 31121 - 19968: jis0212<<14 | 0x2F<<7 | 0x42, - 31123 - 19968: jis0212<<14 | 0x2F<<7 | 0x43, - 31124 - 19968: jis0208<<14 | 0x5A<<7 | 0x24, - 31125 - 19968: jis0212<<14 | 0x2F<<7 | 0x45, - 31126 - 19968: jis0212<<14 | 0x2F<<7 | 0x46, - 31128 - 19968: jis0212<<14 | 0x2F<<7 | 0x47, - 31131 - 19968: jis0208<<14 | 0x5A<<7 | 0x26, - 31132 - 19968: jis0212<<14 | 0x2F<<7 | 0x49, - 31133 - 19968: jis0208<<14 | 0x42<<7 | 0x14, - 31137 - 19968: jis0212<<14 | 0x2F<<7 | 0x4A, - 31142 - 19968: jis0208<<14 | 0x14<<7 | 0x59, - 31143 - 19968: jis0208<<14 | 0x42<<7 | 0x15, - 31144 - 19968: jis0212<<14 | 0x2F<<7 | 0x4B, - 31145 - 19968: jis0212<<14 | 0x2F<<7 | 0x4C, - 31146 - 19968: jis0208<<14 | 0x42<<7 | 0x17, - 31147 - 19968: jis0212<<14 | 0x2F<<7 | 0x4D, - 31150 - 19968: jis0208<<14 | 0x42<<7 | 0x18, - 31151 - 19968: jis0212<<14 | 0x2F<<7 | 0x4E, - 31152 - 19968: jis0208<<14 | 0x26<<7 | 0x08, - 31153 - 19968: jis0212<<14 | 0x2F<<7 | 0x4F, - 31155 - 19968: jis0208<<14 | 0x42<<7 | 0x19, - 31156 - 19968: jis0212<<14 | 0x2F<<7 | 0x50, - 31160 - 19968: jis0212<<14 | 0x2F<<7 | 0x51, - 31161 - 19968: jis0208<<14 | 0x42<<7 | 0x1A, - 31162 - 19968: jis0208<<14 | 0x42<<7 | 0x1B, - 31163 - 19968: jis0212<<14 | 0x2F<<7 | 0x52, - 31165 - 19968: jis0208<<14 | 0x15<<7 | 0x38, - 31166 - 19968: jis0208<<14 | 0x11<<7 | 0x32, - 31167 - 19968: jis0208<<14 | 0x25<<7 | 0x24, - 31168 - 19968: jis0208<<14 | 0x1C<<7 | 0x07, - 31169 - 19968: jis0208<<14 | 0x1A<<7 | 0x43, - 31170 - 19968: jis0212<<14 | 0x2F<<7 | 0x53, - 31172 - 19968: jis0212<<14 | 0x2F<<7 | 0x54, - 31175 - 19968: jis0212<<14 | 0x2F<<7 | 0x55, - 31176 - 19968: jis0212<<14 | 0x2F<<7 | 0x56, - 31177 - 19968: jis0208<<14 | 0x42<<7 | 0x1C, - 31178 - 19968: jis0212<<14 | 0x2F<<7 | 0x57, - 31179 - 19968: jis0208<<14 | 0x1C<<7 | 0x08, - 31183 - 19968: jis0212<<14 | 0x2F<<7 | 0x58, - 31185 - 19968: jis0208<<14 | 0x11<<7 | 0x29, - 31186 - 19968: jis0208<<14 | 0x28<<7 | 0x22, - 31188 - 19968: jis0212<<14 | 0x2F<<7 | 0x59, - 31189 - 19968: jis0208<<14 | 0x42<<7 | 0x1D, - 31190 - 19968: jis0212<<14 | 0x2F<<7 | 0x5A, - 31192 - 19968: jis0208<<14 | 0x27<<7 | 0x4A, - 31194 - 19968: jis0212<<14 | 0x2F<<7 | 0x5B, - 31197 - 19968: jis0212<<14 | 0x2F<<7 | 0x5C, - 31198 - 19968: jis0212<<14 | 0x2F<<7 | 0x5D, - 31199 - 19968: jis0208<<14 | 0x20<<7 | 0x24, - 31200 - 19968: jis0212<<14 | 0x30<<7 | 0x00, - 31201 - 19968: jis0208<<14 | 0x42<<7 | 0x20, - 31202 - 19968: jis0212<<14 | 0x30<<7 | 0x01, - 31203 - 19968: jis0208<<14 | 0x42<<7 | 0x21, - 31204 - 19968: jis0208<<14 | 0x26<<7 | 0x48, - 31205 - 19968: jis0212<<14 | 0x30<<7 | 0x02, - 31206 - 19968: jis0208<<14 | 0x1E<<7 | 0x20, - 31207 - 19968: jis0208<<14 | 0x42<<7 | 0x1E, - 31209 - 19968: jis0208<<14 | 0x22<<7 | 0x40, - 31210 - 19968: jis0212<<14 | 0x30<<7 | 0x03, - 31211 - 19968: jis0212<<14 | 0x30<<7 | 0x04, - 31212 - 19968: jis0208<<14 | 0x42<<7 | 0x1F, - 31213 - 19968: jis0212<<14 | 0x30<<7 | 0x05, - 31216 - 19968: jis0208<<14 | 0x1D<<7 | 0x2D, - 31217 - 19968: jis0212<<14 | 0x30<<7 | 0x06, - 31224 - 19968: jis0212<<14 | 0x30<<7 | 0x07, - 31227 - 19968: jis0208<<14 | 0x0F<<7 | 0x3B, - 31228 - 19968: jis0212<<14 | 0x30<<7 | 0x08, - 31232 - 19968: jis0208<<14 | 0x14<<7 | 0x08, - 31234 - 19968: jis0212<<14 | 0x30<<7 | 0x09, - 31235 - 19968: jis0212<<14 | 0x30<<7 | 0x0A, - 31239 - 19968: jis0212<<14 | 0x30<<7 | 0x0B, - 31240 - 19968: jis0208<<14 | 0x42<<7 | 0x22, - 31241 - 19968: jis0212<<14 | 0x30<<7 | 0x0C, - 31242 - 19968: jis0212<<14 | 0x30<<7 | 0x0D, - 31243 - 19968: jis0208<<14 | 0x23<<7 | 0x57, - 31244 - 19968: jis0212<<14 | 0x30<<7 | 0x0E, - 31245 - 19968: jis0208<<14 | 0x42<<7 | 0x23, - 31246 - 19968: jis0208<<14 | 0x1F<<7 | 0x26, - 31249 - 19968: jis0212<<14 | 0x30<<7 | 0x0F, - 31252 - 19968: jis0208<<14 | 0x2B<<7 | 0x0C, - 31253 - 19968: jis0212<<14 | 0x30<<7 | 0x10, - 31255 - 19968: jis0208<<14 | 0x28<<7 | 0x02, - 31256 - 19968: jis0208<<14 | 0x42<<7 | 0x24, - 31257 - 19968: jis0208<<14 | 0x42<<7 | 0x25, - 31258 - 19968: jis0208<<14 | 0x22<<7 | 0x34, - 31259 - 19968: jis0212<<14 | 0x30<<7 | 0x11, - 31260 - 19968: jis0208<<14 | 0x2D<<7 | 0x26, - 31262 - 19968: jis0212<<14 | 0x30<<7 | 0x12, - 31263 - 19968: jis0208<<14 | 0x42<<7 | 0x27, - 31264 - 19968: jis0208<<14 | 0x42<<7 | 0x26, - 31265 - 19968: jis0212<<14 | 0x30<<7 | 0x13, - 31271 - 19968: jis0212<<14 | 0x30<<7 | 0x14, - 31275 - 19968: jis0212<<14 | 0x30<<7 | 0x15, - 31277 - 19968: jis0212<<14 | 0x30<<7 | 0x16, - 31278 - 19968: jis0208<<14 | 0x1B<<7 | 0x4E, - 31279 - 19968: jis0212<<14 | 0x30<<7 | 0x17, - 31280 - 19968: jis0212<<14 | 0x30<<7 | 0x18, - 31281 - 19968: jis0208<<14 | 0x42<<7 | 0x29, - 31282 - 19968: jis0208<<14 | 0x0F<<7 | 0x4F, - 31284 - 19968: jis0212<<14 | 0x30<<7 | 0x19, - 31285 - 19968: jis0212<<14 | 0x30<<7 | 0x1A, - 31287 - 19968: jis0208<<14 | 0x42<<7 | 0x2C, - 31288 - 19968: jis0212<<14 | 0x30<<7 | 0x1B, - 31289 - 19968: jis0212<<14 | 0x30<<7 | 0x1C, - 31290 - 19968: jis0212<<14 | 0x30<<7 | 0x1D, - 31291 - 19968: jis0208<<14 | 0x42<<7 | 0x2A, - 31292 - 19968: jis0208<<14 | 0x11<<7 | 0x33, - 31293 - 19968: jis0208<<14 | 0x16<<7 | 0x2D, - 31294 - 19968: jis0208<<14 | 0x42<<7 | 0x2B, - 31295 - 19968: jis0208<<14 | 0x18<<7 | 0x25, - 31296 - 19968: jis0208<<14 | 0x18<<7 | 0x51, - 31298 - 19968: jis0208<<14 | 0x29<<7 | 0x45, - 31299 - 19968: jis0208<<14 | 0x42<<7 | 0x2D, - 31300 - 19968: jis0212<<14 | 0x30<<7 | 0x1E, - 31301 - 19968: jis0212<<14 | 0x30<<7 | 0x1F, - 31302 - 19968: jis0208<<14 | 0x2A<<7 | 0x33, - 31303 - 19968: jis0212<<14 | 0x30<<7 | 0x20, - 31304 - 19968: jis0212<<14 | 0x30<<7 | 0x21, - 31305 - 19968: jis0208<<14 | 0x42<<7 | 0x2F, - 31308 - 19968: jis0212<<14 | 0x30<<7 | 0x22, - 31309 - 19968: jis0208<<14 | 0x1F<<7 | 0x30, - 31310 - 19968: jis0208<<14 | 0x10<<7 | 0x2E, - 31311 - 19968: jis0208<<14 | 0x11<<7 | 0x19, - 31312 - 19968: jis0208<<14 | 0x0F<<7 | 0x0B, - 31317 - 19968: jis0212<<14 | 0x30<<7 | 0x23, - 31318 - 19968: jis0212<<14 | 0x30<<7 | 0x24, - 31319 - 19968: jis0208<<14 | 0x42<<7 | 0x2E, - 31321 - 19968: jis0212<<14 | 0x30<<7 | 0x25, - 31324 - 19968: jis0212<<14 | 0x30<<7 | 0x26, - 31325 - 19968: jis0212<<14 | 0x30<<7 | 0x27, - 31327 - 19968: jis0212<<14 | 0x30<<7 | 0x28, - 31328 - 19968: jis0212<<14 | 0x30<<7 | 0x29, - 31329 - 19968: jis0208<<14 | 0x42<<7 | 0x30, - 31330 - 19968: jis0208<<14 | 0x42<<7 | 0x31, - 31331 - 19968: jis0208<<14 | 0x1D<<7 | 0x56, - 31333 - 19968: jis0212<<14 | 0x30<<7 | 0x2A, - 31335 - 19968: jis0212<<14 | 0x30<<7 | 0x2B, - 31337 - 19968: jis0208<<14 | 0x42<<7 | 0x32, - 31338 - 19968: jis0212<<14 | 0x30<<7 | 0x2C, - 31339 - 19968: jis0208<<14 | 0x12<<7 | 0x2E, - 31341 - 19968: jis0212<<14 | 0x30<<7 | 0x2D, - 31344 - 19968: jis0208<<14 | 0x42<<7 | 0x34, - 31348 - 19968: jis0208<<14 | 0x16<<7 | 0x49, - 31349 - 19968: jis0212<<14 | 0x30<<7 | 0x2E, - 31350 - 19968: jis0208<<14 | 0x14<<7 | 0x45, - 31352 - 19968: jis0212<<14 | 0x30<<7 | 0x2F, - 31353 - 19968: jis0208<<14 | 0x42<<7 | 0x35, - 31354 - 19968: jis0208<<14 | 0x15<<7 | 0x54, - 31357 - 19968: jis0208<<14 | 0x42<<7 | 0x36, - 31358 - 19968: jis0212<<14 | 0x30<<7 | 0x30, - 31359 - 19968: jis0208<<14 | 0x1F<<7 | 0x5B, - 31360 - 19968: jis0212<<14 | 0x30<<7 | 0x31, - 31361 - 19968: jis0208<<14 | 0x25<<7 | 0x2C, - 31362 - 19968: jis0212<<14 | 0x30<<7 | 0x32, - 31363 - 19968: jis0208<<14 | 0x1F<<7 | 0x3F, - 31364 - 19968: jis0208<<14 | 0x19<<7 | 0x54, - 31365 - 19968: jis0212<<14 | 0x30<<7 | 0x33, - 31366 - 19968: jis0212<<14 | 0x30<<7 | 0x34, - 31368 - 19968: jis0208<<14 | 0x42<<7 | 0x37, - 31370 - 19968: jis0212<<14 | 0x30<<7 | 0x35, - 31371 - 19968: jis0212<<14 | 0x30<<7 | 0x36, - 31376 - 19968: jis0212<<14 | 0x30<<7 | 0x37, - 31377 - 19968: jis0212<<14 | 0x30<<7 | 0x38, - 31378 - 19968: jis0208<<14 | 0x22<<7 | 0x41, - 31379 - 19968: jis0208<<14 | 0x20<<7 | 0x4A, - 31380 - 19968: jis0212<<14 | 0x30<<7 | 0x39, - 31381 - 19968: jis0208<<14 | 0x42<<7 | 0x39, - 31382 - 19968: jis0208<<14 | 0x42<<7 | 0x3B, - 31383 - 19968: jis0208<<14 | 0x42<<7 | 0x38, - 31384 - 19968: jis0208<<14 | 0x42<<7 | 0x3A, - 31390 - 19968: jis0212<<14 | 0x30<<7 | 0x3A, - 31391 - 19968: jis0208<<14 | 0x16<<7 | 0x01, - 31392 - 19968: jis0212<<14 | 0x30<<7 | 0x3B, - 31395 - 19968: jis0212<<14 | 0x30<<7 | 0x3C, - 31401 - 19968: jis0208<<14 | 0x42<<7 | 0x3C, - 31402 - 19968: jis0208<<14 | 0x16<<7 | 0x05, - 31404 - 19968: jis0212<<14 | 0x30<<7 | 0x3D, - 31406 - 19968: jis0208<<14 | 0x14<<7 | 0x46, - 31407 - 19968: jis0208<<14 | 0x2C<<7 | 0x31, - 31408 - 19968: jis0208<<14 | 0x42<<7 | 0x3E, - 31411 - 19968: jis0212<<14 | 0x30<<7 | 0x3E, - 31413 - 19968: jis0212<<14 | 0x30<<7 | 0x3F, - 31414 - 19968: jis0208<<14 | 0x42<<7 | 0x3F, - 31417 - 19968: jis0212<<14 | 0x30<<7 | 0x40, - 31418 - 19968: jis0208<<14 | 0x10<<7 | 0x0D, - 31419 - 19968: jis0212<<14 | 0x30<<7 | 0x41, - 31420 - 19968: jis0212<<14 | 0x30<<7 | 0x42, - 31423 - 19968: jis0208<<14 | 0x42<<7 | 0x42, - 31427 - 19968: jis0208<<14 | 0x12<<7 | 0x55, - 31428 - 19968: jis0208<<14 | 0x42<<7 | 0x41, - 31429 - 19968: jis0208<<14 | 0x42<<7 | 0x40, - 31430 - 19968: jis0212<<14 | 0x30<<7 | 0x43, - 31431 - 19968: jis0208<<14 | 0x42<<7 | 0x44, - 31432 - 19968: jis0208<<14 | 0x42<<7 | 0x3D, - 31433 - 19968: jis0212<<14 | 0x30<<7 | 0x44, - 31434 - 19968: jis0208<<14 | 0x42<<7 | 0x45, - 31435 - 19968: jis0208<<14 | 0x2D<<7 | 0x08, - 31436 - 19968: jis0212<<14 | 0x30<<7 | 0x45, - 31437 - 19968: jis0208<<14 | 0x42<<7 | 0x46, - 31438 - 19968: jis0212<<14 | 0x30<<7 | 0x46, - 31439 - 19968: jis0208<<14 | 0x42<<7 | 0x47, - 31441 - 19968: jis0208<<14 | 0x5A<<7 | 0x27, - 31442 - 19968: jis0208<<14 | 0x33<<7 | 0x53, - 31443 - 19968: jis0208<<14 | 0x42<<7 | 0x49, - 31445 - 19968: jis0208<<14 | 0x42<<7 | 0x48, - 31449 - 19968: jis0208<<14 | 0x42<<7 | 0x4A, - 31450 - 19968: jis0208<<14 | 0x42<<7 | 0x4B, - 31451 - 19968: jis0212<<14 | 0x30<<7 | 0x48, - 31452 - 19968: jis0208<<14 | 0x2D<<7 | 0x14, - 31453 - 19968: jis0208<<14 | 0x42<<7 | 0x4C, - 31455 - 19968: jis0208<<14 | 0x4F<<7 | 0x4E, - 31456 - 19968: jis0208<<14 | 0x1D<<7 | 0x2E, - 31457 - 19968: jis0208<<14 | 0x42<<7 | 0x4D, - 31458 - 19968: jis0208<<14 | 0x42<<7 | 0x4E, - 31459 - 19968: jis0208<<14 | 0x1C<<7 | 0x36, - 31461 - 19968: jis0208<<14 | 0x25<<7 | 0x17, - 31462 - 19968: jis0208<<14 | 0x42<<7 | 0x4F, - 31463 - 19968: jis0208<<14 | 0x5A<<7 | 0x28, - 31464 - 19968: jis0212<<14 | 0x30<<7 | 0x49, - 31465 - 19968: jis0212<<14 | 0x30<<7 | 0x4A, - 31466 - 19968: jis0208<<14 | 0x22<<7 | 0x07, - 31467 - 19968: jis0208<<14 | 0x5A<<7 | 0x2A, - 31468 - 19968: jis0212<<14 | 0x30<<7 | 0x4C, - 31469 - 19968: jis0208<<14 | 0x42<<7 | 0x50, - 31471 - 19968: jis0208<<14 | 0x22<<7 | 0x1B, - 31472 - 19968: jis0208<<14 | 0x42<<7 | 0x51, - 31473 - 19968: jis0212<<14 | 0x30<<7 | 0x4D, - 31476 - 19968: jis0212<<14 | 0x30<<7 | 0x4E, - 31478 - 19968: jis0208<<14 | 0x15<<7 | 0x04, - 31480 - 19968: jis0208<<14 | 0x30<<7 | 0x1E, - 31481 - 19968: jis0208<<14 | 0x22<<7 | 0x3C, - 31482 - 19968: jis0208<<14 | 0x1B<<7 | 0x12, - 31483 - 19968: jis0212<<14 | 0x30<<7 | 0x4F, - 31485 - 19968: jis0212<<14 | 0x30<<7 | 0x50, - 31486 - 19968: jis0212<<14 | 0x30<<7 | 0x51, - 31487 - 19968: jis0208<<14 | 0x13<<7 | 0x27, - 31490 - 19968: jis0208<<14 | 0x42<<7 | 0x52, - 31492 - 19968: jis0208<<14 | 0x43<<7 | 0x01, - 31494 - 19968: jis0208<<14 | 0x42<<7 | 0x55, - 31495 - 19968: jis0212<<14 | 0x30<<7 | 0x52, - 31496 - 19968: jis0208<<14 | 0x14<<7 | 0x47, - 31498 - 19968: jis0208<<14 | 0x42<<7 | 0x54, - 31499 - 19968: jis0208<<14 | 0x43<<7 | 0x03, - 31503 - 19968: jis0208<<14 | 0x42<<7 | 0x53, - 31505 - 19968: jis0208<<14 | 0x1D<<7 | 0x2F, - 31508 - 19968: jis0212<<14 | 0x30<<7 | 0x53, - 31512 - 19968: jis0208<<14 | 0x42<<7 | 0x57, - 31513 - 19968: jis0208<<14 | 0x42<<7 | 0x58, - 31515 - 19968: jis0208<<14 | 0x24<<7 | 0x0A, - 31518 - 19968: jis0208<<14 | 0x42<<7 | 0x59, - 31519 - 19968: jis0212<<14 | 0x30<<7 | 0x54, - 31520 - 19968: jis0208<<14 | 0x12<<7 | 0x3D, - 31523 - 19968: jis0212<<14 | 0x30<<7 | 0x55, - 31525 - 19968: jis0208<<14 | 0x1E<<7 | 0x39, - 31526 - 19968: jis0208<<14 | 0x28<<7 | 0x43, - 31527 - 19968: jis0212<<14 | 0x30<<7 | 0x56, - 31528 - 19968: jis0208<<14 | 0x42<<7 | 0x5B, - 31529 - 19968: jis0212<<14 | 0x30<<7 | 0x57, - 31530 - 19968: jis0212<<14 | 0x30<<7 | 0x58, - 31531 - 19968: jis0212<<14 | 0x30<<7 | 0x59, - 31532 - 19968: jis0208<<14 | 0x21<<7 | 0x47, - 31533 - 19968: jis0212<<14 | 0x30<<7 | 0x5A, - 31534 - 19968: jis0212<<14 | 0x30<<7 | 0x5B, - 31535 - 19968: jis0212<<14 | 0x30<<7 | 0x5C, - 31536 - 19968: jis0212<<14 | 0x30<<7 | 0x5D, - 31537 - 19968: jis0212<<14 | 0x31<<7 | 0x00, - 31539 - 19968: jis0208<<14 | 0x42<<7 | 0x56, - 31540 - 19968: jis0212<<14 | 0x31<<7 | 0x01, - 31541 - 19968: jis0208<<14 | 0x42<<7 | 0x5A, - 31542 - 19968: jis0208<<14 | 0x42<<7 | 0x5C, - 31545 - 19968: jis0208<<14 | 0x19<<7 | 0x5A, - 31549 - 19968: jis0212<<14 | 0x31<<7 | 0x02, - 31551 - 19968: jis0212<<14 | 0x31<<7 | 0x03, - 31552 - 19968: jis0212<<14 | 0x31<<7 | 0x04, - 31553 - 19968: jis0212<<14 | 0x31<<7 | 0x05, - 31557 - 19968: jis0208<<14 | 0x43<<7 | 0x05, - 31558 - 19968: jis0208<<14 | 0x28<<7 | 0x0D, - 31559 - 19968: jis0212<<14 | 0x31<<7 | 0x06, - 31560 - 19968: jis0208<<14 | 0x27<<7 | 0x05, - 31561 - 19968: jis0208<<14 | 0x24<<7 | 0x58, - 31563 - 19968: jis0208<<14 | 0x15<<7 | 0x39, - 31564 - 19968: jis0208<<14 | 0x43<<7 | 0x04, - 31565 - 19968: jis0208<<14 | 0x43<<7 | 0x02, - 31566 - 19968: jis0212<<14 | 0x31<<7 | 0x07, - 31567 - 19968: jis0208<<14 | 0x27<<7 | 0x14, - 31568 - 19968: jis0208<<14 | 0x42<<7 | 0x5D, - 31569 - 19968: jis0208<<14 | 0x22<<7 | 0x3D, - 31570 - 19968: jis0208<<14 | 0x24<<7 | 0x5A, - 31572 - 19968: jis0208<<14 | 0x24<<7 | 0x59, - 31573 - 19968: jis0212<<14 | 0x31<<7 | 0x08, - 31574 - 19968: jis0208<<14 | 0x19<<7 | 0x55, - 31581 - 19968: jis0208<<14 | 0x43<<7 | 0x17, - 31584 - 19968: jis0212<<14 | 0x31<<7 | 0x09, - 31588 - 19968: jis0212<<14 | 0x31<<7 | 0x0A, - 31589 - 19968: jis0208<<14 | 0x43<<7 | 0x07, - 31590 - 19968: jis0212<<14 | 0x31<<7 | 0x0B, - 31591 - 19968: jis0208<<14 | 0x43<<7 | 0x09, - 31593 - 19968: jis0212<<14 | 0x31<<7 | 0x0C, - 31594 - 19968: jis0212<<14 | 0x31<<7 | 0x0D, - 31596 - 19968: jis0208<<14 | 0x43<<7 | 0x0C, - 31597 - 19968: jis0212<<14 | 0x31<<7 | 0x0E, - 31598 - 19968: jis0208<<14 | 0x43<<7 | 0x0D, - 31599 - 19968: jis0212<<14 | 0x31<<7 | 0x0F, - 31600 - 19968: jis0208<<14 | 0x43<<7 | 0x0A, - 31601 - 19968: jis0208<<14 | 0x43<<7 | 0x0B, - 31602 - 19968: jis0212<<14 | 0x31<<7 | 0x10, - 31603 - 19968: jis0212<<14 | 0x31<<7 | 0x11, - 31604 - 19968: jis0208<<14 | 0x43<<7 | 0x08, - 31605 - 19968: jis0208<<14 | 0x43<<7 | 0x06, - 31607 - 19968: jis0212<<14 | 0x31<<7 | 0x12, - 31610 - 19968: jis0208<<14 | 0x43<<7 | 0x00, - 31620 - 19968: jis0212<<14 | 0x31<<7 | 0x13, - 31622 - 19968: jis0208<<14 | 0x29<<7 | 0x2E, - 31623 - 19968: jis0208<<14 | 0x11<<7 | 0x34, - 31625 - 19968: jis0212<<14 | 0x31<<7 | 0x14, - 31627 - 19968: jis0208<<14 | 0x43<<7 | 0x14, - 31629 - 19968: jis0208<<14 | 0x43<<7 | 0x11, - 31630 - 19968: jis0212<<14 | 0x31<<7 | 0x15, - 31631 - 19968: jis0208<<14 | 0x43<<7 | 0x16, - 31632 - 19968: jis0212<<14 | 0x31<<7 | 0x16, - 31633 - 19968: jis0212<<14 | 0x31<<7 | 0x17, - 31634 - 19968: jis0208<<14 | 0x43<<7 | 0x15, - 31636 - 19968: jis0208<<14 | 0x26<<7 | 0x52, - 31637 - 19968: jis0208<<14 | 0x2B<<7 | 0x06, - 31638 - 19968: jis0212<<14 | 0x31<<7 | 0x18, - 31639 - 19968: jis0208<<14 | 0x1A<<7 | 0x1A, - 31640 - 19968: jis0208<<14 | 0x43<<7 | 0x0F, - 31641 - 19968: jis0208<<14 | 0x43<<7 | 0x18, - 31642 - 19968: jis0208<<14 | 0x43<<7 | 0x13, - 31643 - 19968: jis0212<<14 | 0x31<<7 | 0x19, - 31644 - 19968: jis0208<<14 | 0x43<<7 | 0x12, - 31645 - 19968: jis0208<<14 | 0x43<<7 | 0x0E, - 31646 - 19968: jis0208<<14 | 0x5A<<7 | 0x2B, - 31647 - 19968: jis0208<<14 | 0x43<<7 | 0x10, - 31648 - 19968: jis0212<<14 | 0x31<<7 | 0x1B, - 31649 - 19968: jis0208<<14 | 0x13<<7 | 0x28, - 31653 - 19968: jis0212<<14 | 0x31<<7 | 0x1C, - 31658 - 19968: jis0208<<14 | 0x22<<7 | 0x1C, - 31660 - 19968: jis0212<<14 | 0x31<<7 | 0x1D, - 31661 - 19968: jis0208<<14 | 0x1F<<7 | 0x5C, - 31663 - 19968: jis0212<<14 | 0x31<<7 | 0x1E, - 31664 - 19968: jis0212<<14 | 0x31<<7 | 0x1F, - 31665 - 19968: jis0208<<14 | 0x27<<7 | 0x01, - 31666 - 19968: jis0212<<14 | 0x31<<7 | 0x20, - 31668 - 19968: jis0208<<14 | 0x43<<7 | 0x1D, - 31669 - 19968: jis0212<<14 | 0x31<<7 | 0x21, - 31670 - 19968: jis0212<<14 | 0x31<<7 | 0x22, - 31672 - 19968: jis0208<<14 | 0x27<<7 | 0x03, - 31674 - 19968: jis0212<<14 | 0x31<<7 | 0x23, - 31675 - 19968: jis0212<<14 | 0x31<<7 | 0x24, - 31676 - 19968: jis0212<<14 | 0x31<<7 | 0x25, - 31677 - 19968: jis0212<<14 | 0x31<<7 | 0x26, - 31680 - 19968: jis0208<<14 | 0x1F<<7 | 0x40, - 31681 - 19968: jis0208<<14 | 0x43<<7 | 0x1A, - 31682 - 19968: jis0212<<14 | 0x31<<7 | 0x27, - 31684 - 19968: jis0208<<14 | 0x27<<7 | 0x2E, - 31685 - 19968: jis0212<<14 | 0x31<<7 | 0x28, - 31686 - 19968: jis0208<<14 | 0x43<<7 | 0x1E, - 31687 - 19968: jis0208<<14 | 0x29<<7 | 0x32, - 31688 - 19968: jis0212<<14 | 0x31<<7 | 0x29, - 31689 - 19968: jis0208<<14 | 0x22<<7 | 0x3A, - 31690 - 19968: jis0212<<14 | 0x31<<7 | 0x2A, - 31691 - 19968: jis0208<<14 | 0x43<<7 | 0x19, - 31692 - 19968: jis0208<<14 | 0x43<<7 | 0x1B, - 31695 - 19968: jis0208<<14 | 0x43<<7 | 0x1C, - 31700 - 19968: jis0212<<14 | 0x31<<7 | 0x2B, - 31702 - 19968: jis0212<<14 | 0x31<<7 | 0x2C, - 31703 - 19968: jis0212<<14 | 0x31<<7 | 0x2D, - 31705 - 19968: jis0212<<14 | 0x31<<7 | 0x2E, - 31706 - 19968: jis0212<<14 | 0x31<<7 | 0x2F, - 31707 - 19968: jis0212<<14 | 0x31<<7 | 0x30, - 31709 - 19968: jis0208<<14 | 0x43<<7 | 0x1F, - 31712 - 19968: jis0208<<14 | 0x1B<<7 | 0x23, - 31716 - 19968: jis0208<<14 | 0x25<<7 | 0x25, - 31717 - 19968: jis0208<<14 | 0x43<<7 | 0x24, - 31718 - 19968: jis0208<<14 | 0x43<<7 | 0x23, - 31720 - 19968: jis0212<<14 | 0x31<<7 | 0x31, - 31721 - 19968: jis0208<<14 | 0x43<<7 | 0x20, - 31722 - 19968: jis0212<<14 | 0x31<<7 | 0x32, - 31725 - 19968: jis0208<<14 | 0x2E<<7 | 0x15, - 31730 - 19968: jis0212<<14 | 0x31<<7 | 0x33, - 31731 - 19968: jis0208<<14 | 0x43<<7 | 0x29, - 31732 - 19968: jis0212<<14 | 0x31<<7 | 0x34, - 31733 - 19968: jis0212<<14 | 0x31<<7 | 0x35, - 31734 - 19968: jis0208<<14 | 0x43<<7 | 0x2D, - 31735 - 19968: jis0208<<14 | 0x43<<7 | 0x2A, - 31736 - 19968: jis0212<<14 | 0x31<<7 | 0x36, - 31737 - 19968: jis0212<<14 | 0x31<<7 | 0x37, - 31738 - 19968: jis0212<<14 | 0x31<<7 | 0x38, - 31740 - 19968: jis0212<<14 | 0x31<<7 | 0x39, - 31742 - 19968: jis0212<<14 | 0x31<<7 | 0x3A, - 31744 - 19968: jis0208<<14 | 0x43<<7 | 0x26, - 31745 - 19968: jis0212<<14 | 0x31<<7 | 0x3B, - 31746 - 19968: jis0212<<14 | 0x31<<7 | 0x3C, - 31747 - 19968: jis0212<<14 | 0x31<<7 | 0x3D, - 31748 - 19968: jis0212<<14 | 0x31<<7 | 0x3E, - 31750 - 19968: jis0212<<14 | 0x31<<7 | 0x3F, - 31751 - 19968: jis0208<<14 | 0x43<<7 | 0x27, - 31753 - 19968: jis0212<<14 | 0x31<<7 | 0x40, - 31755 - 19968: jis0212<<14 | 0x31<<7 | 0x41, - 31756 - 19968: jis0212<<14 | 0x31<<7 | 0x42, - 31757 - 19968: jis0208<<14 | 0x43<<7 | 0x2C, - 31758 - 19968: jis0212<<14 | 0x31<<7 | 0x43, - 31759 - 19968: jis0212<<14 | 0x31<<7 | 0x44, - 31761 - 19968: jis0208<<14 | 0x43<<7 | 0x21, - 31762 - 19968: jis0208<<14 | 0x31<<7 | 0x34, - 31763 - 19968: jis0208<<14 | 0x43<<7 | 0x28, - 31764 - 19968: jis0208<<14 | 0x43<<7 | 0x22, - 31767 - 19968: jis0208<<14 | 0x43<<7 | 0x2B, - 31769 - 19968: jis0212<<14 | 0x31<<7 | 0x45, - 31771 - 19968: jis0212<<14 | 0x31<<7 | 0x46, - 31775 - 19968: jis0208<<14 | 0x43<<7 | 0x31, - 31776 - 19968: jis0212<<14 | 0x31<<7 | 0x47, - 31777 - 19968: jis0208<<14 | 0x13<<7 | 0x29, - 31779 - 19968: jis0208<<14 | 0x43<<7 | 0x2E, - 31781 - 19968: jis0212<<14 | 0x31<<7 | 0x48, - 31782 - 19968: jis0212<<14 | 0x31<<7 | 0x49, - 31783 - 19968: jis0208<<14 | 0x43<<7 | 0x2F, - 31784 - 19968: jis0212<<14 | 0x31<<7 | 0x4A, - 31786 - 19968: jis0208<<14 | 0x43<<7 | 0x30, - 31787 - 19968: jis0208<<14 | 0x43<<7 | 0x33, - 31788 - 19968: jis0212<<14 | 0x31<<7 | 0x4B, - 31793 - 19968: jis0212<<14 | 0x31<<7 | 0x4C, - 31795 - 19968: jis0212<<14 | 0x31<<7 | 0x4D, - 31796 - 19968: jis0212<<14 | 0x31<<7 | 0x4E, - 31798 - 19968: jis0212<<14 | 0x31<<7 | 0x4F, - 31799 - 19968: jis0208<<14 | 0x43<<7 | 0x32, - 31800 - 19968: jis0208<<14 | 0x27<<7 | 0x55, - 31801 - 19968: jis0212<<14 | 0x31<<7 | 0x50, - 31802 - 19968: jis0212<<14 | 0x31<<7 | 0x51, - 31805 - 19968: jis0208<<14 | 0x43<<7 | 0x34, - 31806 - 19968: jis0208<<14 | 0x2D<<7 | 0x5B, - 31807 - 19968: jis0208<<14 | 0x29<<7 | 0x4C, - 31808 - 19968: jis0208<<14 | 0x43<<7 | 0x39, - 31811 - 19968: jis0208<<14 | 0x43<<7 | 0x36, - 31814 - 19968: jis0212<<14 | 0x31<<7 | 0x52, - 31818 - 19968: jis0212<<14 | 0x31<<7 | 0x53, - 31820 - 19968: jis0208<<14 | 0x43<<7 | 0x35, - 31821 - 19968: jis0208<<14 | 0x1F<<7 | 0x31, - 31823 - 19968: jis0208<<14 | 0x43<<7 | 0x38, - 31824 - 19968: jis0208<<14 | 0x43<<7 | 0x3A, - 31825 - 19968: jis0212<<14 | 0x31<<7 | 0x55, - 31826 - 19968: jis0212<<14 | 0x31<<7 | 0x56, - 31827 - 19968: jis0212<<14 | 0x31<<7 | 0x57, - 31828 - 19968: jis0208<<14 | 0x43<<7 | 0x37, - 31829 - 19968: jis0212<<14 | 0x31<<7 | 0x54, - 31830 - 19968: jis0208<<14 | 0x43<<7 | 0x3E, - 31832 - 19968: jis0208<<14 | 0x43<<7 | 0x3B, - 31833 - 19968: jis0212<<14 | 0x31<<7 | 0x58, - 31834 - 19968: jis0212<<14 | 0x31<<7 | 0x59, - 31835 - 19968: jis0212<<14 | 0x31<<7 | 0x5A, - 31836 - 19968: jis0212<<14 | 0x31<<7 | 0x5B, - 31837 - 19968: jis0212<<14 | 0x31<<7 | 0x5C, - 31838 - 19968: jis0212<<14 | 0x31<<7 | 0x5D, - 31839 - 19968: jis0208<<14 | 0x43<<7 | 0x3C, - 31840 - 19968: jis0208<<14 | 0x43<<7 | 0x25, - 31841 - 19968: jis0212<<14 | 0x32<<7 | 0x00, - 31843 - 19968: jis0212<<14 | 0x32<<7 | 0x01, - 31844 - 19968: jis0208<<14 | 0x43<<7 | 0x3D, - 31845 - 19968: jis0208<<14 | 0x43<<7 | 0x3F, - 31847 - 19968: jis0212<<14 | 0x32<<7 | 0x02, - 31849 - 19968: jis0212<<14 | 0x32<<7 | 0x03, - 31852 - 19968: jis0208<<14 | 0x43<<7 | 0x40, - 31853 - 19968: jis0212<<14 | 0x32<<7 | 0x04, - 31854 - 19968: jis0212<<14 | 0x32<<7 | 0x05, - 31856 - 19968: jis0212<<14 | 0x32<<7 | 0x06, - 31858 - 19968: jis0212<<14 | 0x32<<7 | 0x07, - 31859 - 19968: jis0208<<14 | 0x29<<7 | 0x25, - 31861 - 19968: jis0208<<14 | 0x43<<7 | 0x41, - 31865 - 19968: jis0212<<14 | 0x32<<7 | 0x08, - 31868 - 19968: jis0212<<14 | 0x32<<7 | 0x09, - 31869 - 19968: jis0212<<14 | 0x32<<7 | 0x0A, - 31870 - 19968: jis0208<<14 | 0x2B<<7 | 0x41, - 31873 - 19968: jis0208<<14 | 0x15<<7 | 0x2D, - 31874 - 19968: jis0208<<14 | 0x16<<7 | 0x08, - 31875 - 19968: jis0208<<14 | 0x43<<7 | 0x42, - 31878 - 19968: jis0212<<14 | 0x32<<7 | 0x0B, - 31879 - 19968: jis0212<<14 | 0x32<<7 | 0x0C, - 31881 - 19968: jis0208<<14 | 0x29<<7 | 0x13, - 31883 - 19968: jis0208<<14 | 0x1E<<7 | 0x47, - 31885 - 19968: jis0208<<14 | 0x2B<<7 | 0x0F, - 31887 - 19968: jis0212<<14 | 0x32<<7 | 0x0D, - 31888 - 19968: jis0208<<14 | 0x43<<7 | 0x43, - 31890 - 19968: jis0208<<14 | 0x2D<<7 | 0x12, - 31892 - 19968: jis0212<<14 | 0x32<<7 | 0x0E, - 31893 - 19968: jis0208<<14 | 0x26<<7 | 0x53, - 31895 - 19968: jis0208<<14 | 0x20<<7 | 0x25, - 31896 - 19968: jis0208<<14 | 0x26<<7 | 0x13, - 31899 - 19968: jis0208<<14 | 0x1C<<7 | 0x2C, - 31902 - 19968: jis0212<<14 | 0x32<<7 | 0x0F, - 31903 - 19968: jis0208<<14 | 0x0F<<7 | 0x1F, - 31904 - 19968: jis0212<<14 | 0x32<<7 | 0x10, - 31905 - 19968: jis0208<<14 | 0x43<<7 | 0x48, - 31906 - 19968: jis0208<<14 | 0x43<<7 | 0x46, - 31908 - 19968: jis0208<<14 | 0x43<<7 | 0x44, - 31909 - 19968: jis0208<<14 | 0x13<<7 | 0x00, - 31910 - 19968: jis0212<<14 | 0x32<<7 | 0x11, - 31911 - 19968: jis0208<<14 | 0x1D<<7 | 0x30, - 31912 - 19968: jis0208<<14 | 0x43<<7 | 0x49, - 31915 - 19968: jis0208<<14 | 0x43<<7 | 0x47, - 31917 - 19968: jis0208<<14 | 0x43<<7 | 0x45, - 31918 - 19968: jis0208<<14 | 0x43<<7 | 0x4D, - 31920 - 19968: jis0212<<14 | 0x32<<7 | 0x12, - 31921 - 19968: jis0208<<14 | 0x43<<7 | 0x4C, - 31922 - 19968: jis0208<<14 | 0x43<<7 | 0x4B, - 31923 - 19968: jis0208<<14 | 0x43<<7 | 0x4A, - 31926 - 19968: jis0212<<14 | 0x32<<7 | 0x13, - 31927 - 19968: jis0212<<14 | 0x32<<7 | 0x14, - 31929 - 19968: jis0208<<14 | 0x43<<7 | 0x4E, - 31930 - 19968: jis0212<<14 | 0x32<<7 | 0x15, - 31931 - 19968: jis0212<<14 | 0x32<<7 | 0x16, - 31932 - 19968: jis0212<<14 | 0x32<<7 | 0x17, - 31933 - 19968: jis0208<<14 | 0x43<<7 | 0x4F, - 31934 - 19968: jis0208<<14 | 0x1F<<7 | 0x19, - 31935 - 19968: jis0212<<14 | 0x32<<7 | 0x18, - 31936 - 19968: jis0208<<14 | 0x43<<7 | 0x50, - 31938 - 19968: jis0208<<14 | 0x43<<7 | 0x52, - 31940 - 19968: jis0212<<14 | 0x32<<7 | 0x19, - 31941 - 19968: jis0208<<14 | 0x43<<7 | 0x51, - 31943 - 19968: jis0212<<14 | 0x32<<7 | 0x1A, - 31944 - 19968: jis0212<<14 | 0x32<<7 | 0x1B, - 31945 - 19968: jis0212<<14 | 0x32<<7 | 0x1C, - 31946 - 19968: jis0208<<14 | 0x17<<7 | 0x31, - 31949 - 19968: jis0212<<14 | 0x32<<7 | 0x1D, - 31950 - 19968: jis0208<<14 | 0x20<<7 | 0x17, - 31951 - 19968: jis0212<<14 | 0x32<<7 | 0x1E, - 31954 - 19968: jis0208<<14 | 0x43<<7 | 0x54, - 31955 - 19968: jis0212<<14 | 0x32<<7 | 0x1F, - 31956 - 19968: jis0212<<14 | 0x32<<7 | 0x20, - 31957 - 19968: jis0212<<14 | 0x32<<7 | 0x21, - 31958 - 19968: jis0208<<14 | 0x24<<7 | 0x5B, - 31959 - 19968: jis0212<<14 | 0x32<<7 | 0x22, - 31960 - 19968: jis0208<<14 | 0x43<<7 | 0x53, - 31961 - 19968: jis0212<<14 | 0x32<<7 | 0x23, - 31962 - 19968: jis0212<<14 | 0x32<<7 | 0x24, - 31964 - 19968: jis0208<<14 | 0x43<<7 | 0x55, - 31965 - 19968: jis0212<<14 | 0x32<<7 | 0x25, - 31966 - 19968: jis0208<<14 | 0x29<<7 | 0x14, - 31967 - 19968: jis0208<<14 | 0x20<<7 | 0x4B, - 31968 - 19968: jis0208<<14 | 0x18<<7 | 0x26, - 31970 - 19968: jis0208<<14 | 0x43<<7 | 0x56, - 31974 - 19968: jis0212<<14 | 0x32<<7 | 0x26, - 31975 - 19968: jis0208<<14 | 0x2D<<7 | 0x27, - 31977 - 19968: jis0212<<14 | 0x32<<7 | 0x27, - 31979 - 19968: jis0212<<14 | 0x32<<7 | 0x28, - 31983 - 19968: jis0208<<14 | 0x43<<7 | 0x58, - 31986 - 19968: jis0208<<14 | 0x43<<7 | 0x59, - 31988 - 19968: jis0208<<14 | 0x43<<7 | 0x5A, - 31989 - 19968: jis0212<<14 | 0x32<<7 | 0x29, - 31990 - 19968: jis0208<<14 | 0x43<<7 | 0x5B, - 31992 - 19968: jis0208<<14 | 0x1A<<7 | 0x44, - 31994 - 19968: jis0208<<14 | 0x43<<7 | 0x5C, - 31995 - 19968: jis0208<<14 | 0x16<<7 | 0x2E, - 31998 - 19968: jis0208<<14 | 0x14<<7 | 0x49, - 32000 - 19968: jis0208<<14 | 0x14<<7 | 0x09, - 32002 - 19968: jis0208<<14 | 0x44<<7 | 0x00, - 32003 - 19968: jis0212<<14 | 0x32<<7 | 0x2A, - 32004 - 19968: jis0208<<14 | 0x2B<<7 | 0x52, - 32005 - 19968: jis0208<<14 | 0x18<<7 | 0x27, - 32006 - 19968: jis0208<<14 | 0x43<<7 | 0x5D, - 32007 - 19968: jis0212<<14 | 0x32<<7 | 0x2B, - 32008 - 19968: jis0212<<14 | 0x32<<7 | 0x2C, - 32009 - 19968: jis0212<<14 | 0x32<<7 | 0x2D, - 32010 - 19968: jis0208<<14 | 0x44<<7 | 0x03, - 32011 - 19968: jis0208<<14 | 0x2B<<7 | 0x45, - 32013 - 19968: jis0208<<14 | 0x26<<7 | 0x1B, - 32015 - 19968: jis0212<<14 | 0x32<<7 | 0x2E, - 32016 - 19968: jis0208<<14 | 0x28<<7 | 0x12, - 32017 - 19968: jis0212<<14 | 0x32<<7 | 0x2F, - 32018 - 19968: jis0212<<14 | 0x32<<7 | 0x30, - 32019 - 19968: jis0212<<14 | 0x32<<7 | 0x31, - 32020 - 19968: jis0208<<14 | 0x1C<<7 | 0x42, - 32021 - 19968: jis0208<<14 | 0x44<<7 | 0x02, - 32022 - 19968: jis0212<<14 | 0x32<<7 | 0x32, - 32023 - 19968: jis0208<<14 | 0x1B<<7 | 0x32, - 32024 - 19968: jis0208<<14 | 0x18<<7 | 0x28, - 32025 - 19968: jis0208<<14 | 0x1A<<7 | 0x45, - 32026 - 19968: jis0208<<14 | 0x14<<7 | 0x48, - 32027 - 19968: jis0208<<14 | 0x29<<7 | 0x15, - 32028 - 19968: jis0208<<14 | 0x44<<7 | 0x01, - 32029 - 19968: jis0212<<14 | 0x32<<7 | 0x33, - 32030 - 19968: jis0212<<14 | 0x32<<7 | 0x34, - 32032 - 19968: jis0208<<14 | 0x20<<7 | 0x26, - 32033 - 19968: jis0208<<14 | 0x2A<<7 | 0x21, - 32034 - 19968: jis0208<<14 | 0x19<<7 | 0x56, - 32035 - 19968: jis0212<<14 | 0x32<<7 | 0x35, - 32038 - 19968: jis0212<<14 | 0x32<<7 | 0x36, - 32042 - 19968: jis0212<<14 | 0x32<<7 | 0x37, - 32043 - 19968: jis0208<<14 | 0x1A<<7 | 0x46, - 32044 - 19968: jis0208<<14 | 0x23<<7 | 0x3C, - 32045 - 19968: jis0212<<14 | 0x32<<7 | 0x38, - 32046 - 19968: jis0208<<14 | 0x44<<7 | 0x06, - 32047 - 19968: jis0208<<14 | 0x2D<<7 | 0x3E, - 32048 - 19968: jis0208<<14 | 0x19<<7 | 0x38, - 32049 - 19968: jis0212<<14 | 0x32<<7 | 0x39, - 32050 - 19968: jis0208<<14 | 0x44<<7 | 0x07, - 32051 - 19968: jis0208<<14 | 0x1E<<7 | 0x21, - 32053 - 19968: jis0208<<14 | 0x44<<7 | 0x09, - 32057 - 19968: jis0208<<14 | 0x1D<<7 | 0x31, - 32058 - 19968: jis0208<<14 | 0x19<<7 | 0x0F, - 32060 - 19968: jis0212<<14 | 0x32<<7 | 0x3A, - 32061 - 19968: jis0212<<14 | 0x32<<7 | 0x3B, - 32062 - 19968: jis0212<<14 | 0x32<<7 | 0x3C, - 32063 - 19968: jis0208<<14 | 0x44<<7 | 0x08, - 32064 - 19968: jis0212<<14 | 0x32<<7 | 0x3D, - 32065 - 19968: jis0212<<14 | 0x32<<7 | 0x3E, - 32066 - 19968: jis0208<<14 | 0x1C<<7 | 0x09, - 32067 - 19968: jis0208<<14 | 0x17<<7 | 0x1D, - 32068 - 19968: jis0208<<14 | 0x20<<7 | 0x27, - 32069 - 19968: jis0208<<14 | 0x44<<7 | 0x04, - 32070 - 19968: jis0208<<14 | 0x44<<7 | 0x0A, - 32071 - 19968: jis0212<<14 | 0x32<<7 | 0x3F, - 32072 - 19968: jis0208<<14 | 0x5A<<7 | 0x2D, - 32075 - 19968: jis0208<<14 | 0x44<<7 | 0x05, - 32076 - 19968: jis0208<<14 | 0x16<<7 | 0x2F, - 32077 - 19968: jis0212<<14 | 0x32<<7 | 0x41, - 32078 - 19968: jis0208<<14 | 0x44<<7 | 0x0D, - 32079 - 19968: jis0208<<14 | 0x44<<7 | 0x11, - 32080 - 19968: jis0208<<14 | 0x16<<7 | 0x4A, - 32081 - 19968: jis0212<<14 | 0x32<<7 | 0x42, - 32083 - 19968: jis0212<<14 | 0x32<<7 | 0x43, - 32086 - 19968: jis0208<<14 | 0x44<<7 | 0x0C, - 32087 - 19968: jis0212<<14 | 0x32<<7 | 0x44, - 32089 - 19968: jis0212<<14 | 0x32<<7 | 0x45, - 32090 - 19968: jis0212<<14 | 0x32<<7 | 0x46, - 32091 - 19968: jis0208<<14 | 0x44<<7 | 0x15, - 32092 - 19968: jis0208<<14 | 0x5A<<7 | 0x2E, - 32093 - 19968: jis0212<<14 | 0x32<<7 | 0x48, - 32094 - 19968: jis0208<<14 | 0x18<<7 | 0x29, - 32097 - 19968: jis0208<<14 | 0x2C<<7 | 0x4C, - 32098 - 19968: jis0208<<14 | 0x0F<<7 | 0x1B, - 32099 - 19968: jis0208<<14 | 0x44<<7 | 0x12, - 32101 - 19968: jis0212<<14 | 0x32<<7 | 0x49, - 32102 - 19968: jis0208<<14 | 0x14<<7 | 0x4A, - 32103 - 19968: jis0212<<14 | 0x32<<7 | 0x4A, - 32104 - 19968: jis0208<<14 | 0x44<<7 | 0x0F, - 32106 - 19968: jis0212<<14 | 0x32<<7 | 0x4B, - 32110 - 19968: jis0208<<14 | 0x44<<7 | 0x10, - 32112 - 19968: jis0212<<14 | 0x32<<7 | 0x4C, - 32113 - 19968: jis0208<<14 | 0x24<<7 | 0x5C, - 32114 - 19968: jis0208<<14 | 0x44<<7 | 0x0E, - 32115 - 19968: jis0208<<14 | 0x44<<7 | 0x0B, - 32117 - 19968: jis0208<<14 | 0x12<<7 | 0x07, - 32118 - 19968: jis0208<<14 | 0x1F<<7 | 0x43, - 32120 - 19968: jis0212<<14 | 0x32<<7 | 0x4D, - 32121 - 19968: jis0208<<14 | 0x17<<7 | 0x07, - 32122 - 19968: jis0212<<14 | 0x32<<7 | 0x4E, - 32123 - 19968: jis0212<<14 | 0x32<<7 | 0x4F, - 32125 - 19968: jis0208<<14 | 0x44<<7 | 0x17, - 32127 - 19968: jis0212<<14 | 0x32<<7 | 0x50, - 32129 - 19968: jis0212<<14 | 0x32<<7 | 0x51, - 32130 - 19968: jis0212<<14 | 0x32<<7 | 0x52, - 32131 - 19968: jis0212<<14 | 0x32<<7 | 0x53, - 32133 - 19968: jis0212<<14 | 0x32<<7 | 0x54, - 32134 - 19968: jis0212<<14 | 0x32<<7 | 0x55, - 32136 - 19968: jis0212<<14 | 0x32<<7 | 0x56, - 32137 - 19968: jis0208<<14 | 0x44<<7 | 0x14, - 32139 - 19968: jis0212<<14 | 0x32<<7 | 0x57, - 32140 - 19968: jis0212<<14 | 0x32<<7 | 0x58, - 32141 - 19968: jis0212<<14 | 0x32<<7 | 0x59, - 32143 - 19968: jis0208<<14 | 0x44<<7 | 0x16, - 32145 - 19968: jis0212<<14 | 0x32<<7 | 0x5A, - 32147 - 19968: jis0208<<14 | 0x44<<7 | 0x13, - 32150 - 19968: jis0212<<14 | 0x32<<7 | 0x5B, - 32151 - 19968: jis0212<<14 | 0x32<<7 | 0x5C, - 32153 - 19968: jis0208<<14 | 0x16<<7 | 0x30, - 32154 - 19968: jis0208<<14 | 0x21<<7 | 0x12, - 32155 - 19968: jis0208<<14 | 0x44<<7 | 0x18, - 32156 - 19968: jis0208<<14 | 0x20<<7 | 0x4D, - 32157 - 19968: jis0212<<14 | 0x32<<7 | 0x5D, - 32158 - 19968: jis0212<<14 | 0x33<<7 | 0x00, - 32159 - 19968: jis0208<<14 | 0x44<<7 | 0x25, - 32160 - 19968: jis0208<<14 | 0x5A<<7 | 0x30, - 32162 - 19968: jis0208<<14 | 0x44<<7 | 0x21, - 32163 - 19968: jis0208<<14 | 0x44<<7 | 0x1B, - 32166 - 19968: jis0212<<14 | 0x33<<7 | 0x01, - 32167 - 19968: jis0212<<14 | 0x33<<7 | 0x02, - 32170 - 19968: jis0212<<14 | 0x33<<7 | 0x03, - 32171 - 19968: jis0208<<14 | 0x44<<7 | 0x1F, - 32172 - 19968: jis0208<<14 | 0x1B<<7 | 0x59, - 32173 - 19968: jis0208<<14 | 0x0F<<7 | 0x3C, - 32174 - 19968: jis0208<<14 | 0x44<<7 | 0x1A, - 32175 - 19968: jis0208<<14 | 0x44<<7 | 0x22, - 32176 - 19968: jis0208<<14 | 0x44<<7 | 0x26, - 32177 - 19968: jis0208<<14 | 0x18<<7 | 0x2A, - 32178 - 19968: jis0208<<14 | 0x2B<<7 | 0x35, - 32179 - 19968: jis0212<<14 | 0x33<<7 | 0x04, - 32180 - 19968: jis0208<<14 | 0x23<<7 | 0x35, - 32181 - 19968: jis0208<<14 | 0x44<<7 | 0x1C, - 32182 - 19968: jis0212<<14 | 0x33<<7 | 0x05, - 32183 - 19968: jis0208<<14 | 0x5A<<7 | 0x2F, - 32184 - 19968: jis0208<<14 | 0x44<<7 | 0x24, - 32185 - 19968: jis0212<<14 | 0x33<<7 | 0x07, - 32186 - 19968: jis0208<<14 | 0x44<<7 | 0x19, - 32187 - 19968: jis0208<<14 | 0x22<<7 | 0x1D, - 32189 - 19968: jis0208<<14 | 0x44<<7 | 0x1E, - 32190 - 19968: jis0208<<14 | 0x0F<<7 | 0x1C, - 32191 - 19968: jis0208<<14 | 0x2B<<7 | 0x29, - 32194 - 19968: jis0212<<14 | 0x33<<7 | 0x08, - 32195 - 19968: jis0212<<14 | 0x33<<7 | 0x09, - 32196 - 19968: jis0212<<14 | 0x33<<7 | 0x0A, - 32197 - 19968: jis0212<<14 | 0x33<<7 | 0x0B, - 32198 - 19968: jis0212<<14 | 0x33<<7 | 0x0C, - 32199 - 19968: jis0208<<14 | 0x44<<7 | 0x1D, - 32202 - 19968: jis0208<<14 | 0x15<<7 | 0x3A, - 32203 - 19968: jis0208<<14 | 0x27<<7 | 0x4B, - 32204 - 19968: jis0212<<14 | 0x33<<7 | 0x0D, - 32205 - 19968: jis0212<<14 | 0x33<<7 | 0x0E, - 32206 - 19968: jis0212<<14 | 0x33<<7 | 0x0F, - 32207 - 19968: jis0208<<14 | 0x20<<7 | 0x4C, - 32209 - 19968: jis0208<<14 | 0x2D<<7 | 0x2F, - 32210 - 19968: jis0208<<14 | 0x1C<<7 | 0x4E, - 32213 - 19968: jis0208<<14 | 0x44<<7 | 0x4D, - 32214 - 19968: jis0208<<14 | 0x5A<<7 | 0x31, - 32215 - 19968: jis0212<<14 | 0x33<<7 | 0x10, - 32216 - 19968: jis0208<<14 | 0x44<<7 | 0x27, - 32217 - 19968: jis0212<<14 | 0x33<<7 | 0x11, - 32218 - 19968: jis0208<<14 | 0x1F<<7 | 0x5D, - 32220 - 19968: jis0208<<14 | 0x44<<7 | 0x23, - 32221 - 19968: jis0208<<14 | 0x44<<7 | 0x28, - 32222 - 19968: jis0208<<14 | 0x44<<7 | 0x2A, - 32224 - 19968: jis0208<<14 | 0x23<<7 | 0x58, - 32225 - 19968: jis0208<<14 | 0x44<<7 | 0x2D, - 32226 - 19968: jis0212<<14 | 0x33<<7 | 0x13, - 32228 - 19968: jis0208<<14 | 0x44<<7 | 0x29, - 32229 - 19968: jis0212<<14 | 0x33<<7 | 0x14, - 32230 - 19968: jis0212<<14 | 0x33<<7 | 0x15, - 32232 - 19968: jis0208<<14 | 0x29<<7 | 0x33, - 32233 - 19968: jis0208<<14 | 0x13<<7 | 0x2A, - 32234 - 19968: jis0212<<14 | 0x33<<7 | 0x16, - 32235 - 19968: jis0212<<14 | 0x33<<7 | 0x17, - 32236 - 19968: jis0208<<14 | 0x2B<<7 | 0x2A, - 32237 - 19968: jis0212<<14 | 0x33<<7 | 0x18, - 32239 - 19968: jis0208<<14 | 0x0F<<7 | 0x3D, - 32241 - 19968: jis0212<<14 | 0x33<<7 | 0x19, - 32242 - 19968: jis0208<<14 | 0x44<<7 | 0x2C, - 32244 - 19968: jis0208<<14 | 0x2D<<7 | 0x5C, - 32245 - 19968: jis0212<<14 | 0x33<<7 | 0x1A, - 32246 - 19968: jis0212<<14 | 0x33<<7 | 0x1B, - 32249 - 19968: jis0212<<14 | 0x33<<7 | 0x1C, - 32250 - 19968: jis0212<<14 | 0x33<<7 | 0x1D, - 32251 - 19968: jis0208<<14 | 0x44<<7 | 0x2B, - 32256 - 19968: jis0212<<14 | 0x33<<7 | 0x12, - 32257 - 19968: jis0208<<14 | 0x10<<7 | 0x4E, - 32260 - 19968: jis0208<<14 | 0x25<<7 | 0x4B, - 32261 - 19968: jis0208<<14 | 0x44<<7 | 0x2E, - 32264 - 19968: jis0212<<14 | 0x33<<7 | 0x1E, - 32265 - 19968: jis0208<<14 | 0x44<<7 | 0x35, - 32266 - 19968: jis0208<<14 | 0x44<<7 | 0x2F, - 32267 - 19968: jis0208<<14 | 0x44<<7 | 0x36, - 32272 - 19968: jis0212<<14 | 0x33<<7 | 0x1F, - 32273 - 19968: jis0212<<14 | 0x33<<7 | 0x20, - 32274 - 19968: jis0208<<14 | 0x44<<7 | 0x32, - 32277 - 19968: jis0212<<14 | 0x33<<7 | 0x21, - 32279 - 19968: jis0212<<14 | 0x33<<7 | 0x22, - 32283 - 19968: jis0208<<14 | 0x26<<7 | 0x5A, - 32284 - 19968: jis0212<<14 | 0x33<<7 | 0x23, - 32285 - 19968: jis0212<<14 | 0x33<<7 | 0x24, - 32286 - 19968: jis0208<<14 | 0x1B<<7 | 0x29, - 32287 - 19968: jis0208<<14 | 0x44<<7 | 0x34, - 32288 - 19968: jis0212<<14 | 0x33<<7 | 0x25, - 32289 - 19968: jis0208<<14 | 0x44<<7 | 0x31, - 32290 - 19968: jis0208<<14 | 0x44<<7 | 0x37, - 32291 - 19968: jis0208<<14 | 0x44<<7 | 0x30, - 32294 - 19968: jis0208<<14 | 0x1C<<7 | 0x23, - 32295 - 19968: jis0212<<14 | 0x33<<7 | 0x26, - 32296 - 19968: jis0212<<14 | 0x33<<7 | 0x27, - 32299 - 19968: jis0208<<14 | 0x2A<<7 | 0x04, - 32300 - 19968: jis0212<<14 | 0x33<<7 | 0x28, - 32301 - 19968: jis0212<<14 | 0x33<<7 | 0x29, - 32302 - 19968: jis0208<<14 | 0x1C<<7 | 0x2B, - 32303 - 19968: jis0212<<14 | 0x33<<7 | 0x2A, - 32305 - 19968: jis0208<<14 | 0x44<<7 | 0x33, - 32306 - 19968: jis0208<<14 | 0x44<<7 | 0x3F, - 32307 - 19968: jis0212<<14 | 0x33<<7 | 0x2B, - 32309 - 19968: jis0208<<14 | 0x44<<7 | 0x3B, - 32310 - 19968: jis0212<<14 | 0x33<<7 | 0x2C, - 32311 - 19968: jis0208<<14 | 0x44<<7 | 0x3E, - 32313 - 19968: jis0208<<14 | 0x44<<7 | 0x3C, - 32314 - 19968: jis0208<<14 | 0x44<<7 | 0x40, - 32315 - 19968: jis0208<<14 | 0x44<<7 | 0x3A, - 32317 - 19968: jis0208<<14 | 0x44<<7 | 0x20, - 32318 - 19968: jis0208<<14 | 0x1F<<7 | 0x32, - 32319 - 19968: jis0212<<14 | 0x33<<7 | 0x2D, - 32321 - 19968: jis0208<<14 | 0x27<<7 | 0x2A, - 32323 - 19968: jis0208<<14 | 0x44<<7 | 0x3D, - 32324 - 19968: jis0212<<14 | 0x33<<7 | 0x2E, - 32325 - 19968: jis0212<<14 | 0x33<<7 | 0x2F, - 32326 - 19968: jis0208<<14 | 0x44<<7 | 0x38, - 32327 - 19968: jis0212<<14 | 0x33<<7 | 0x30, - 32330 - 19968: jis0208<<14 | 0x20<<7 | 0x00, - 32331 - 19968: jis0208<<14 | 0x16<<7 | 0x31, - 32333 - 19968: jis0208<<14 | 0x1C<<7 | 0x0A, - 32334 - 19968: jis0212<<14 | 0x33<<7 | 0x31, - 32336 - 19968: jis0212<<14 | 0x33<<7 | 0x32, - 32338 - 19968: jis0208<<14 | 0x5A<<7 | 0x32, - 32340 - 19968: jis0208<<14 | 0x1E<<7 | 0x04, - 32341 - 19968: jis0208<<14 | 0x20<<7 | 0x15, - 32342 - 19968: jis0208<<14 | 0x44<<7 | 0x43, - 32344 - 19968: jis0212<<14 | 0x33<<7 | 0x34, - 32345 - 19968: jis0208<<14 | 0x44<<7 | 0x45, - 32346 - 19968: jis0208<<14 | 0x44<<7 | 0x46, - 32349 - 19968: jis0208<<14 | 0x44<<7 | 0x42, - 32350 - 19968: jis0208<<14 | 0x44<<7 | 0x44, - 32351 - 19968: jis0212<<14 | 0x33<<7 | 0x35, - 32353 - 19968: jis0212<<14 | 0x33<<7 | 0x36, - 32354 - 19968: jis0212<<14 | 0x33<<7 | 0x37, - 32357 - 19968: jis0212<<14 | 0x33<<7 | 0x38, - 32358 - 19968: jis0208<<14 | 0x44<<7 | 0x39, - 32359 - 19968: jis0208<<14 | 0x44<<7 | 0x41, - 32361 - 19968: jis0208<<14 | 0x44<<7 | 0x49, - 32362 - 19968: jis0208<<14 | 0x44<<7 | 0x48, - 32363 - 19968: jis0212<<14 | 0x33<<7 | 0x39, - 32365 - 19968: jis0208<<14 | 0x2A<<7 | 0x59, - 32366 - 19968: jis0212<<14 | 0x33<<7 | 0x3A, - 32367 - 19968: jis0212<<14 | 0x33<<7 | 0x3B, - 32368 - 19968: jis0208<<14 | 0x16<<7 | 0x0A, - 32371 - 19968: jis0212<<14 | 0x33<<7 | 0x3C, - 32376 - 19968: jis0212<<14 | 0x33<<7 | 0x3D, - 32377 - 19968: jis0208<<14 | 0x44<<7 | 0x47, - 32379 - 19968: jis0208<<14 | 0x44<<7 | 0x4B, - 32380 - 19968: jis0208<<14 | 0x44<<7 | 0x4A, - 32381 - 19968: jis0208<<14 | 0x44<<7 | 0x4E, - 32382 - 19968: jis0212<<14 | 0x33<<7 | 0x3E, - 32383 - 19968: jis0208<<14 | 0x44<<7 | 0x50, - 32385 - 19968: jis0212<<14 | 0x33<<7 | 0x3F, - 32386 - 19968: jis0208<<14 | 0x1A<<7 | 0x1B, - 32387 - 19968: jis0208<<14 | 0x44<<7 | 0x4C, - 32390 - 19968: jis0212<<14 | 0x33<<7 | 0x40, - 32391 - 19968: jis0212<<14 | 0x33<<7 | 0x41, - 32392 - 19968: jis0208<<14 | 0x44<<7 | 0x51, - 32393 - 19968: jis0208<<14 | 0x44<<7 | 0x52, - 32394 - 19968: jis0208<<14 | 0x58<<7 | 0x00, - 32396 - 19968: jis0208<<14 | 0x44<<7 | 0x53, - 32397 - 19968: jis0212<<14 | 0x33<<7 | 0x43, - 32398 - 19968: jis0208<<14 | 0x44<<7 | 0x59, - 32399 - 19968: jis0208<<14 | 0x24<<7 | 0x1A, - 32400 - 19968: jis0208<<14 | 0x44<<7 | 0x55, - 32401 - 19968: jis0212<<14 | 0x33<<7 | 0x44, - 32402 - 19968: jis0208<<14 | 0x44<<7 | 0x54, - 32403 - 19968: jis0208<<14 | 0x44<<7 | 0x56, - 32404 - 19968: jis0208<<14 | 0x44<<7 | 0x57, - 32405 - 19968: jis0212<<14 | 0x33<<7 | 0x45, - 32406 - 19968: jis0208<<14 | 0x44<<7 | 0x58, - 32408 - 19968: jis0212<<14 | 0x33<<7 | 0x46, - 32410 - 19968: jis0212<<14 | 0x33<<7 | 0x47, - 32411 - 19968: jis0208<<14 | 0x44<<7 | 0x5A, - 32412 - 19968: jis0208<<14 | 0x44<<7 | 0x5B, - 32413 - 19968: jis0212<<14 | 0x33<<7 | 0x48, - 32414 - 19968: jis0212<<14 | 0x33<<7 | 0x49, - 32566 - 19968: jis0208<<14 | 0x13<<7 | 0x2B, - 32568 - 19968: jis0208<<14 | 0x44<<7 | 0x5C, - 32570 - 19968: jis0208<<14 | 0x44<<7 | 0x5D, - 32571 - 19968: jis0212<<14 | 0x33<<7 | 0x4B, - 32572 - 19968: jis0212<<14 | 0x33<<7 | 0x4A, - 32573 - 19968: jis0212<<14 | 0x33<<7 | 0x4C, - 32574 - 19968: jis0212<<14 | 0x33<<7 | 0x4D, - 32575 - 19968: jis0212<<14 | 0x33<<7 | 0x4E, - 32579 - 19968: jis0212<<14 | 0x33<<7 | 0x4F, - 32580 - 19968: jis0212<<14 | 0x33<<7 | 0x50, - 32581 - 19968: jis0208<<14 | 0x45<<7 | 0x00, - 32583 - 19968: jis0208<<14 | 0x5A<<7 | 0x33, - 32588 - 19968: jis0208<<14 | 0x45<<7 | 0x01, - 32589 - 19968: jis0208<<14 | 0x45<<7 | 0x02, - 32590 - 19968: jis0208<<14 | 0x45<<7 | 0x03, - 32591 - 19968: jis0212<<14 | 0x33<<7 | 0x52, - 32592 - 19968: jis0208<<14 | 0x45<<7 | 0x04, - 32593 - 19968: jis0208<<14 | 0x45<<7 | 0x05, - 32594 - 19968: jis0212<<14 | 0x33<<7 | 0x53, - 32595 - 19968: jis0212<<14 | 0x33<<7 | 0x54, - 32596 - 19968: jis0208<<14 | 0x45<<7 | 0x07, - 32597 - 19968: jis0208<<14 | 0x45<<7 | 0x06, - 32600 - 19968: jis0208<<14 | 0x45<<7 | 0x08, - 32603 - 19968: jis0212<<14 | 0x33<<7 | 0x55, - 32604 - 19968: jis0212<<14 | 0x33<<7 | 0x56, - 32605 - 19968: jis0212<<14 | 0x33<<7 | 0x57, - 32607 - 19968: jis0208<<14 | 0x45<<7 | 0x09, - 32608 - 19968: jis0208<<14 | 0x45<<7 | 0x0A, - 32609 - 19968: jis0212<<14 | 0x33<<7 | 0x58, - 32611 - 19968: jis0212<<14 | 0x33<<7 | 0x59, - 32612 - 19968: jis0212<<14 | 0x33<<7 | 0x5A, - 32613 - 19968: jis0212<<14 | 0x33<<7 | 0x5B, - 32614 - 19968: jis0212<<14 | 0x33<<7 | 0x5C, - 32615 - 19968: jis0208<<14 | 0x45<<7 | 0x0D, - 32616 - 19968: jis0208<<14 | 0x45<<7 | 0x0B, - 32617 - 19968: jis0208<<14 | 0x45<<7 | 0x0C, - 32618 - 19968: jis0208<<14 | 0x19<<7 | 0x40, - 32619 - 19968: jis0208<<14 | 0x16<<7 | 0x32, - 32621 - 19968: jis0212<<14 | 0x33<<7 | 0x5D, - 32622 - 19968: jis0208<<14 | 0x22<<7 | 0x35, - 32624 - 19968: jis0208<<14 | 0x27<<7 | 0x12, - 32625 - 19968: jis0212<<14 | 0x34<<7 | 0x00, - 32626 - 19968: jis0208<<14 | 0x1C<<7 | 0x4F, - 32629 - 19968: jis0208<<14 | 0x26<<7 | 0x2C, - 32631 - 19968: jis0208<<14 | 0x27<<7 | 0x4C, - 32632 - 19968: jis0208<<14 | 0x45<<7 | 0x0E, - 32633 - 19968: jis0208<<14 | 0x37<<7 | 0x4C, - 32637 - 19968: jis0212<<14 | 0x34<<7 | 0x01, - 32638 - 19968: jis0212<<14 | 0x34<<7 | 0x02, - 32639 - 19968: jis0212<<14 | 0x34<<7 | 0x03, - 32640 - 19968: jis0212<<14 | 0x34<<7 | 0x04, - 32642 - 19968: jis0208<<14 | 0x45<<7 | 0x0F, - 32643 - 19968: jis0208<<14 | 0x45<<7 | 0x11, - 32645 - 19968: jis0208<<14 | 0x2C<<7 | 0x44, - 32646 - 19968: jis0208<<14 | 0x45<<7 | 0x10, - 32647 - 19968: jis0208<<14 | 0x45<<7 | 0x13, - 32648 - 19968: jis0208<<14 | 0x45<<7 | 0x12, - 32650 - 19968: jis0208<<14 | 0x2C<<7 | 0x32, - 32651 - 19968: jis0212<<14 | 0x34<<7 | 0x05, - 32652 - 19968: jis0208<<14 | 0x45<<7 | 0x14, - 32653 - 19968: jis0212<<14 | 0x34<<7 | 0x06, - 32654 - 19968: jis0208<<14 | 0x27<<7 | 0x5D, - 32655 - 19968: jis0212<<14 | 0x34<<7 | 0x07, - 32656 - 19968: jis0212<<14 | 0x34<<7 | 0x08, - 32657 - 19968: jis0212<<14 | 0x34<<7 | 0x09, - 32660 - 19968: jis0208<<14 | 0x45<<7 | 0x15, - 32662 - 19968: jis0212<<14 | 0x34<<7 | 0x0A, - 32663 - 19968: jis0212<<14 | 0x34<<7 | 0x0B, - 32666 - 19968: jis0208<<14 | 0x45<<7 | 0x18, - 32668 - 19968: jis0212<<14 | 0x34<<7 | 0x0C, - 32669 - 19968: jis0208<<14 | 0x45<<7 | 0x17, - 32670 - 19968: jis0208<<14 | 0x45<<7 | 0x16, - 32673 - 19968: jis0208<<14 | 0x5A<<7 | 0x34, - 32674 - 19968: jis0212<<14 | 0x34<<7 | 0x0E, - 32675 - 19968: jis0208<<14 | 0x45<<7 | 0x19, - 32676 - 19968: jis0208<<14 | 0x16<<7 | 0x11, - 32678 - 19968: jis0212<<14 | 0x34<<7 | 0x0F, - 32680 - 19968: jis0208<<14 | 0x20<<7 | 0x01, - 32681 - 19968: jis0208<<14 | 0x14<<7 | 0x20, - 32682 - 19968: jis0212<<14 | 0x34<<7 | 0x10, - 32685 - 19968: jis0212<<14 | 0x34<<7 | 0x11, - 32686 - 19968: jis0208<<14 | 0x45<<7 | 0x1D, - 32687 - 19968: jis0208<<14 | 0x45<<7 | 0x1A, - 32690 - 19968: jis0208<<14 | 0x45<<7 | 0x1B, - 32692 - 19968: jis0212<<14 | 0x34<<7 | 0x12, - 32694 - 19968: jis0208<<14 | 0x45<<7 | 0x1E, - 32696 - 19968: jis0208<<14 | 0x45<<7 | 0x1F, - 32697 - 19968: jis0208<<14 | 0x45<<7 | 0x1C, - 32700 - 19968: jis0212<<14 | 0x34<<7 | 0x13, - 32701 - 19968: jis0208<<14 | 0x10<<7 | 0x08, - 32703 - 19968: jis0212<<14 | 0x34<<7 | 0x14, - 32704 - 19968: jis0212<<14 | 0x34<<7 | 0x15, - 32705 - 19968: jis0208<<14 | 0x11<<7 | 0x06, - 32707 - 19968: jis0212<<14 | 0x34<<7 | 0x16, - 32709 - 19968: jis0208<<14 | 0x45<<7 | 0x21, - 32710 - 19968: jis0208<<14 | 0x45<<7 | 0x22, - 32712 - 19968: jis0212<<14 | 0x34<<7 | 0x17, - 32714 - 19968: jis0208<<14 | 0x45<<7 | 0x23, - 32716 - 19968: jis0208<<14 | 0x2C<<7 | 0x41, - 32718 - 19968: jis0212<<14 | 0x34<<7 | 0x18, - 32719 - 19968: jis0212<<14 | 0x34<<7 | 0x19, - 32722 - 19968: jis0208<<14 | 0x1C<<7 | 0x0B, - 32724 - 19968: jis0208<<14 | 0x45<<7 | 0x25, - 32725 - 19968: jis0208<<14 | 0x45<<7 | 0x24, - 32731 - 19968: jis0212<<14 | 0x34<<7 | 0x1A, - 32735 - 19968: jis0212<<14 | 0x34<<7 | 0x1B, - 32736 - 19968: jis0208<<14 | 0x1E<<7 | 0x48, - 32737 - 19968: jis0208<<14 | 0x45<<7 | 0x26, - 32739 - 19968: jis0212<<14 | 0x34<<7 | 0x1C, - 32741 - 19968: jis0212<<14 | 0x34<<7 | 0x1D, - 32742 - 19968: jis0208<<14 | 0x45<<7 | 0x27, - 32744 - 19968: jis0212<<14 | 0x34<<7 | 0x1E, - 32745 - 19968: jis0208<<14 | 0x45<<7 | 0x28, - 32747 - 19968: jis0208<<14 | 0x13<<7 | 0x44, - 32748 - 19968: jis0212<<14 | 0x34<<7 | 0x1F, - 32750 - 19968: jis0212<<14 | 0x34<<7 | 0x20, - 32751 - 19968: jis0212<<14 | 0x34<<7 | 0x21, - 32752 - 19968: jis0208<<14 | 0x13<<7 | 0x2C, - 32754 - 19968: jis0212<<14 | 0x34<<7 | 0x22, - 32755 - 19968: jis0208<<14 | 0x45<<7 | 0x29, - 32761 - 19968: jis0208<<14 | 0x45<<7 | 0x2A, - 32762 - 19968: jis0212<<14 | 0x34<<7 | 0x23, - 32763 - 19968: jis0208<<14 | 0x2A<<7 | 0x3C, - 32764 - 19968: jis0208<<14 | 0x2C<<7 | 0x42, - 32765 - 19968: jis0212<<14 | 0x34<<7 | 0x24, - 32766 - 19968: jis0212<<14 | 0x34<<7 | 0x25, - 32767 - 19968: jis0212<<14 | 0x34<<7 | 0x26, - 32768 - 19968: jis0208<<14 | 0x2C<<7 | 0x33, - 32769 - 19968: jis0208<<14 | 0x2E<<7 | 0x16, - 32771 - 19968: jis0208<<14 | 0x18<<7 | 0x2C, - 32772 - 19968: jis0208<<14 | 0x45<<7 | 0x2D, - 32773 - 19968: jis0208<<14 | 0x1B<<7 | 0x33, - 32774 - 19968: jis0208<<14 | 0x45<<7 | 0x2C, - 32775 - 19968: jis0212<<14 | 0x34<<7 | 0x27, - 32776 - 19968: jis0212<<14 | 0x34<<7 | 0x28, - 32778 - 19968: jis0212<<14 | 0x34<<7 | 0x29, - 32779 - 19968: jis0208<<14 | 0x45<<7 | 0x2E, - 32780 - 19968: jis0208<<14 | 0x1B<<7 | 0x08, - 32781 - 19968: jis0212<<14 | 0x34<<7 | 0x2A, - 32782 - 19968: jis0212<<14 | 0x34<<7 | 0x2B, - 32783 - 19968: jis0212<<14 | 0x34<<7 | 0x2C, - 32784 - 19968: jis0208<<14 | 0x21<<7 | 0x30, - 32785 - 19968: jis0212<<14 | 0x34<<7 | 0x2D, - 32786 - 19968: jis0208<<14 | 0x45<<7 | 0x2F, - 32787 - 19968: jis0212<<14 | 0x34<<7 | 0x2E, - 32788 - 19968: jis0212<<14 | 0x34<<7 | 0x2F, - 32789 - 19968: jis0208<<14 | 0x18<<7 | 0x2B, - 32790 - 19968: jis0212<<14 | 0x34<<7 | 0x30, - 32791 - 19968: jis0208<<14 | 0x2B<<7 | 0x36, - 32792 - 19968: jis0208<<14 | 0x45<<7 | 0x30, - 32793 - 19968: jis0208<<14 | 0x45<<7 | 0x31, - 32796 - 19968: jis0208<<14 | 0x45<<7 | 0x32, - 32797 - 19968: jis0212<<14 | 0x34<<7 | 0x31, - 32798 - 19968: jis0212<<14 | 0x34<<7 | 0x32, - 32799 - 19968: jis0212<<14 | 0x34<<7 | 0x33, - 32800 - 19968: jis0212<<14 | 0x34<<7 | 0x34, - 32801 - 19968: jis0208<<14 | 0x45<<7 | 0x33, - 32804 - 19968: jis0212<<14 | 0x34<<7 | 0x35, - 32806 - 19968: jis0212<<14 | 0x34<<7 | 0x36, - 32808 - 19968: jis0208<<14 | 0x45<<7 | 0x34, - 32812 - 19968: jis0212<<14 | 0x34<<7 | 0x37, - 32814 - 19968: jis0212<<14 | 0x34<<7 | 0x38, - 32816 - 19968: jis0212<<14 | 0x34<<7 | 0x39, - 32819 - 19968: jis0208<<14 | 0x1B<<7 | 0x09, - 32820 - 19968: jis0212<<14 | 0x34<<7 | 0x3A, - 32821 - 19968: jis0212<<14 | 0x34<<7 | 0x3B, - 32822 - 19968: jis0208<<14 | 0x2B<<7 | 0x4C, - 32823 - 19968: jis0212<<14 | 0x34<<7 | 0x3C, - 32825 - 19968: jis0212<<14 | 0x34<<7 | 0x3D, - 32826 - 19968: jis0212<<14 | 0x34<<7 | 0x3E, - 32827 - 19968: jis0208<<14 | 0x45<<7 | 0x36, - 32828 - 19968: jis0212<<14 | 0x34<<7 | 0x3F, - 32829 - 19968: jis0208<<14 | 0x22<<7 | 0x1E, - 32830 - 19968: jis0212<<14 | 0x34<<7 | 0x40, - 32831 - 19968: jis0208<<14 | 0x45<<7 | 0x35, - 32832 - 19968: jis0212<<14 | 0x34<<7 | 0x41, - 32836 - 19968: jis0212<<14 | 0x34<<7 | 0x42, - 32838 - 19968: jis0208<<14 | 0x45<<7 | 0x38, - 32842 - 19968: jis0208<<14 | 0x45<<7 | 0x37, - 32850 - 19968: jis0208<<14 | 0x45<<7 | 0x39, - 32854 - 19968: jis0208<<14 | 0x1F<<7 | 0x1A, - 32856 - 19968: jis0208<<14 | 0x45<<7 | 0x3A, - 32858 - 19968: jis0208<<14 | 0x45<<7 | 0x3B, - 32862 - 19968: jis0208<<14 | 0x29<<7 | 0x18, - 32863 - 19968: jis0208<<14 | 0x45<<7 | 0x3C, - 32864 - 19968: jis0212<<14 | 0x34<<7 | 0x43, - 32865 - 19968: jis0208<<14 | 0x20<<7 | 0x4E, - 32866 - 19968: jis0208<<14 | 0x45<<7 | 0x3D, - 32868 - 19968: jis0212<<14 | 0x34<<7 | 0x44, - 32870 - 19968: jis0212<<14 | 0x34<<7 | 0x45, - 32872 - 19968: jis0208<<14 | 0x45<<7 | 0x3E, - 32877 - 19968: jis0212<<14 | 0x34<<7 | 0x46, - 32879 - 19968: jis0208<<14 | 0x2D<<7 | 0x5D, - 32880 - 19968: jis0208<<14 | 0x45<<7 | 0x41, - 32881 - 19968: jis0212<<14 | 0x34<<7 | 0x47, - 32882 - 19968: jis0208<<14 | 0x45<<7 | 0x40, - 32883 - 19968: jis0208<<14 | 0x45<<7 | 0x3F, - 32884 - 19968: jis0208<<14 | 0x23<<7 | 0x0F, - 32885 - 19968: jis0212<<14 | 0x34<<7 | 0x48, - 32886 - 19968: jis0208<<14 | 0x45<<7 | 0x42, - 32887 - 19968: jis0208<<14 | 0x1E<<7 | 0x05, - 32889 - 19968: jis0208<<14 | 0x45<<7 | 0x43, - 32893 - 19968: jis0208<<14 | 0x45<<7 | 0x44, - 32894 - 19968: jis0208<<14 | 0x2E<<7 | 0x17, - 32895 - 19968: jis0208<<14 | 0x45<<7 | 0x45, - 32897 - 19968: jis0212<<14 | 0x34<<7 | 0x49, - 32900 - 19968: jis0208<<14 | 0x45<<7 | 0x46, - 32901 - 19968: jis0208<<14 | 0x45<<7 | 0x48, - 32902 - 19968: jis0208<<14 | 0x45<<7 | 0x47, - 32903 - 19968: jis0208<<14 | 0x27<<7 | 0x04, - 32904 - 19968: jis0212<<14 | 0x34<<7 | 0x4A, - 32905 - 19968: jis0208<<14 | 0x25<<7 | 0x58, - 32907 - 19968: jis0208<<14 | 0x2E<<7 | 0x1D, - 32908 - 19968: jis0208<<14 | 0x27<<7 | 0x08, - 32910 - 19968: jis0212<<14 | 0x34<<7 | 0x4B, - 32915 - 19968: jis0208<<14 | 0x45<<7 | 0x4A, - 32918 - 19968: jis0208<<14 | 0x1D<<7 | 0x32, - 32920 - 19968: jis0208<<14 | 0x28<<7 | 0x09, - 32922 - 19968: jis0208<<14 | 0x45<<7 | 0x4B, - 32923 - 19968: jis0208<<14 | 0x45<<7 | 0x49, - 32924 - 19968: jis0212<<14 | 0x34<<7 | 0x4C, - 32925 - 19968: jis0208<<14 | 0x13<<7 | 0x2D, - 32926 - 19968: jis0212<<14 | 0x34<<7 | 0x4D, - 32929 - 19968: jis0208<<14 | 0x17<<7 | 0x33, - 32930 - 19968: jis0208<<14 | 0x1A<<7 | 0x47, - 32933 - 19968: jis0208<<14 | 0x27<<7 | 0x4D, - 32934 - 19968: jis0212<<14 | 0x34<<7 | 0x4E, - 32935 - 19968: jis0212<<14 | 0x34<<7 | 0x4F, - 32937 - 19968: jis0208<<14 | 0x17<<7 | 0x09, - 32938 - 19968: jis0208<<14 | 0x2A<<7 | 0x22, - 32939 - 19968: jis0212<<14 | 0x34<<7 | 0x50, - 32940 - 19968: jis0208<<14 | 0x45<<7 | 0x4E, - 32941 - 19968: jis0208<<14 | 0x45<<7 | 0x4C, - 32943 - 19968: jis0208<<14 | 0x18<<7 | 0x2D, - 32945 - 19968: jis0208<<14 | 0x18<<7 | 0x2E, - 32946 - 19968: jis0208<<14 | 0x0F<<7 | 0x48, - 32948 - 19968: jis0208<<14 | 0x19<<7 | 0x47, - 32952 - 19968: jis0212<<14 | 0x34<<7 | 0x51, - 32953 - 19968: jis0212<<14 | 0x34<<7 | 0x52, - 32954 - 19968: jis0208<<14 | 0x26<<7 | 0x38, - 32963 - 19968: jis0208<<14 | 0x0F<<7 | 0x3E, - 32964 - 19968: jis0208<<14 | 0x45<<7 | 0x53, - 32966 - 19968: jis0208<<14 | 0x22<<7 | 0x1F, - 32968 - 19968: jis0212<<14 | 0x34<<7 | 0x53, - 32972 - 19968: jis0208<<14 | 0x26<<7 | 0x37, - 32973 - 19968: jis0212<<14 | 0x34<<7 | 0x54, - 32974 - 19968: jis0208<<14 | 0x21<<7 | 0x3A, - 32975 - 19968: jis0212<<14 | 0x34<<7 | 0x55, - 32978 - 19968: jis0212<<14 | 0x34<<7 | 0x56, - 32980 - 19968: jis0212<<14 | 0x34<<7 | 0x57, - 32981 - 19968: jis0212<<14 | 0x34<<7 | 0x58, - 32982 - 19968: jis0208<<14 | 0x45<<7 | 0x55, - 32983 - 19968: jis0212<<14 | 0x34<<7 | 0x59, - 32984 - 19968: jis0212<<14 | 0x34<<7 | 0x5A, - 32985 - 19968: jis0208<<14 | 0x45<<7 | 0x51, - 32986 - 19968: jis0208<<14 | 0x45<<7 | 0x54, - 32987 - 19968: jis0208<<14 | 0x45<<7 | 0x4F, - 32989 - 19968: jis0208<<14 | 0x45<<7 | 0x52, - 32990 - 19968: jis0208<<14 | 0x2A<<7 | 0x05, - 32992 - 19968: jis0212<<14 | 0x34<<7 | 0x5B, - 32993 - 19968: jis0208<<14 | 0x17<<7 | 0x34, - 32996 - 19968: jis0208<<14 | 0x0F<<7 | 0x5C, - 32997 - 19968: jis0208<<14 | 0x45<<7 | 0x50, - 33005 - 19968: jis0212<<14 | 0x34<<7 | 0x5C, - 33006 - 19968: jis0212<<14 | 0x34<<7 | 0x5D, - 33007 - 19968: jis0208<<14 | 0x45<<7 | 0x57, - 33008 - 19968: jis0212<<14 | 0x35<<7 | 0x00, - 33009 - 19968: jis0208<<14 | 0x45<<7 | 0x58, - 33010 - 19968: jis0212<<14 | 0x35<<7 | 0x01, - 33011 - 19968: jis0212<<14 | 0x35<<7 | 0x02, - 33012 - 19968: jis0208<<14 | 0x25<<7 | 0x18, - 33014 - 19968: jis0212<<14 | 0x35<<7 | 0x03, - 33016 - 19968: jis0208<<14 | 0x15<<7 | 0x1A, - 33017 - 19968: jis0212<<14 | 0x35<<7 | 0x04, - 33018 - 19968: jis0212<<14 | 0x35<<7 | 0x05, - 33020 - 19968: jis0208<<14 | 0x46<<7 | 0x05, - 33021 - 19968: jis0208<<14 | 0x26<<7 | 0x1C, - 33022 - 19968: jis0212<<14 | 0x35<<7 | 0x06, - 33026 - 19968: jis0208<<14 | 0x1A<<7 | 0x48, - 33027 - 19968: jis0212<<14 | 0x35<<7 | 0x07, - 33029 - 19968: jis0208<<14 | 0x15<<7 | 0x1B, - 33030 - 19968: jis0208<<14 | 0x1F<<7 | 0x27, - 33031 - 19968: jis0208<<14 | 0x2E<<7 | 0x25, - 33032 - 19968: jis0208<<14 | 0x2B<<7 | 0x0D, - 33033 - 19968: jis0208<<14 | 0x45<<7 | 0x56, - 33034 - 19968: jis0208<<14 | 0x1F<<7 | 0x33, - 33035 - 19968: jis0212<<14 | 0x35<<7 | 0x08, - 33046 - 19968: jis0212<<14 | 0x35<<7 | 0x09, - 33047 - 19968: jis0212<<14 | 0x35<<7 | 0x0A, - 33048 - 19968: jis0212<<14 | 0x35<<7 | 0x0B, - 33050 - 19968: jis0208<<14 | 0x14<<7 | 0x32, - 33051 - 19968: jis0208<<14 | 0x45<<7 | 0x59, - 33052 - 19968: jis0212<<14 | 0x35<<7 | 0x0C, - 33054 - 19968: jis0212<<14 | 0x35<<7 | 0x0D, - 33056 - 19968: jis0212<<14 | 0x35<<7 | 0x0E, - 33059 - 19968: jis0208<<14 | 0x45<<7 | 0x5B, - 33060 - 19968: jis0212<<14 | 0x35<<7 | 0x0F, - 33063 - 19968: jis0212<<14 | 0x35<<7 | 0x10, - 33065 - 19968: jis0208<<14 | 0x45<<7 | 0x5A, - 33068 - 19968: jis0212<<14 | 0x35<<7 | 0x11, - 33071 - 19968: jis0208<<14 | 0x45<<7 | 0x5C, - 33072 - 19968: jis0212<<14 | 0x35<<7 | 0x12, - 33073 - 19968: jis0208<<14 | 0x22<<7 | 0x05, - 33075 - 19968: jis0208<<14 | 0x26<<7 | 0x1D, - 33077 - 19968: jis0212<<14 | 0x35<<7 | 0x13, - 33081 - 19968: jis0208<<14 | 0x23<<7 | 0x10, - 33082 - 19968: jis0212<<14 | 0x35<<7 | 0x14, - 33084 - 19968: jis0212<<14 | 0x35<<7 | 0x15, - 33086 - 19968: jis0208<<14 | 0x46<<7 | 0x02, - 33093 - 19968: jis0212<<14 | 0x35<<7 | 0x16, - 33094 - 19968: jis0208<<14 | 0x46<<7 | 0x01, - 33095 - 19968: jis0212<<14 | 0x35<<7 | 0x17, - 33098 - 19968: jis0212<<14 | 0x35<<7 | 0x18, - 33099 - 19968: jis0208<<14 | 0x45<<7 | 0x5D, - 33100 - 19968: jis0212<<14 | 0x35<<7 | 0x19, - 33102 - 19968: jis0208<<14 | 0x1E<<7 | 0x34, - 33104 - 19968: jis0208<<14 | 0x28<<7 | 0x44, - 33105 - 19968: jis0208<<14 | 0x46<<7 | 0x04, - 33106 - 19968: jis0212<<14 | 0x35<<7 | 0x1A, - 33107 - 19968: jis0208<<14 | 0x46<<7 | 0x03, - 33108 - 19968: jis0208<<14 | 0x18<<7 | 0x2F, - 33109 - 19968: jis0208<<14 | 0x2E<<7 | 0x32, - 33111 - 19968: jis0212<<14 | 0x35<<7 | 0x1B, - 33119 - 19968: jis0208<<14 | 0x46<<7 | 0x14, - 33120 - 19968: jis0212<<14 | 0x35<<7 | 0x1C, - 33121 - 19968: jis0212<<14 | 0x35<<7 | 0x1D, - 33125 - 19968: jis0208<<14 | 0x46<<7 | 0x08, - 33126 - 19968: jis0208<<14 | 0x46<<7 | 0x09, - 33127 - 19968: jis0212<<14 | 0x35<<7 | 0x1E, - 33128 - 19968: jis0212<<14 | 0x35<<7 | 0x1F, - 33129 - 19968: jis0212<<14 | 0x35<<7 | 0x20, - 33131 - 19968: jis0208<<14 | 0x1B<<7 | 0x4F, - 33133 - 19968: jis0212<<14 | 0x35<<7 | 0x21, - 33134 - 19968: jis0208<<14 | 0x46<<7 | 0x07, - 33135 - 19968: jis0212<<14 | 0x35<<7 | 0x22, - 33136 - 19968: jis0208<<14 | 0x18<<7 | 0x57, - 33137 - 19968: jis0208<<14 | 0x46<<7 | 0x06, - 33140 - 19968: jis0208<<14 | 0x46<<7 | 0x0A, - 33143 - 19968: jis0212<<14 | 0x35<<7 | 0x23, - 33144 - 19968: jis0208<<14 | 0x23<<7 | 0x11, - 33145 - 19968: jis0208<<14 | 0x29<<7 | 0x01, - 33146 - 19968: jis0208<<14 | 0x20<<7 | 0x02, - 33151 - 19968: jis0208<<14 | 0x21<<7 | 0x3B, - 33152 - 19968: jis0208<<14 | 0x46<<7 | 0x0E, - 33153 - 19968: jis0212<<14 | 0x35<<7 | 0x24, - 33154 - 19968: jis0208<<14 | 0x46<<7 | 0x0F, - 33155 - 19968: jis0208<<14 | 0x46<<7 | 0x0B, - 33156 - 19968: jis0212<<14 | 0x35<<7 | 0x26, - 33157 - 19968: jis0212<<14 | 0x35<<7 | 0x27, - 33158 - 19968: jis0212<<14 | 0x35<<7 | 0x28, - 33160 - 19968: jis0208<<14 | 0x46<<7 | 0x0C, - 33162 - 19968: jis0208<<14 | 0x46<<7 | 0x0D, - 33163 - 19968: jis0212<<14 | 0x35<<7 | 0x29, - 33166 - 19968: jis0212<<14 | 0x35<<7 | 0x2A, - 33167 - 19968: jis0208<<14 | 0x18<<7 | 0x30, - 33168 - 19968: jis0212<<14 | 0x35<<7 | 0x25, - 33171 - 19968: jis0208<<14 | 0x46<<7 | 0x15, - 33173 - 19968: jis0208<<14 | 0x46<<7 | 0x11, - 33174 - 19968: jis0212<<14 | 0x35<<7 | 0x2B, - 33176 - 19968: jis0212<<14 | 0x35<<7 | 0x2C, - 33178 - 19968: jis0208<<14 | 0x28<<7 | 0x45, - 33179 - 19968: jis0212<<14 | 0x35<<7 | 0x2D, - 33180 - 19968: jis0208<<14 | 0x2A<<7 | 0x4B, - 33181 - 19968: jis0208<<14 | 0x28<<7 | 0x07, - 33182 - 19968: jis0212<<14 | 0x35<<7 | 0x2E, - 33184 - 19968: jis0208<<14 | 0x46<<7 | 0x10, - 33186 - 19968: jis0212<<14 | 0x35<<7 | 0x2F, - 33187 - 19968: jis0208<<14 | 0x46<<7 | 0x13, - 33188 - 19968: jis0208<<14 | 0x46<<7 | 0x12, - 33192 - 19968: jis0208<<14 | 0x2A<<7 | 0x23, - 33193 - 19968: jis0208<<14 | 0x46<<7 | 0x16, - 33198 - 19968: jis0212<<14 | 0x35<<7 | 0x30, - 33200 - 19968: jis0208<<14 | 0x46<<7 | 0x17, - 33202 - 19968: jis0212<<14 | 0x35<<7 | 0x31, - 33203 - 19968: jis0208<<14 | 0x20<<7 | 0x16, - 33204 - 19968: jis0212<<14 | 0x35<<7 | 0x32, - 33205 - 19968: jis0208<<14 | 0x46<<7 | 0x18, - 33208 - 19968: jis0208<<14 | 0x46<<7 | 0x1A, - 33210 - 19968: jis0208<<14 | 0x46<<7 | 0x1E, - 33211 - 19968: jis0212<<14 | 0x35<<7 | 0x33, - 33213 - 19968: jis0208<<14 | 0x46<<7 | 0x1B, - 33214 - 19968: jis0208<<14 | 0x46<<7 | 0x19, - 33215 - 19968: jis0208<<14 | 0x26<<7 | 0x1E, - 33216 - 19968: jis0208<<14 | 0x46<<7 | 0x1C, - 33218 - 19968: jis0208<<14 | 0x46<<7 | 0x1D, - 33219 - 19968: jis0212<<14 | 0x35<<7 | 0x35, - 33221 - 19968: jis0212<<14 | 0x35<<7 | 0x36, - 33222 - 19968: jis0208<<14 | 0x11<<7 | 0x11, - 33224 - 19968: jis0208<<14 | 0x46<<7 | 0x24, - 33225 - 19968: jis0208<<14 | 0x46<<7 | 0x1F, - 33226 - 19968: jis0212<<14 | 0x35<<7 | 0x37, - 33227 - 19968: jis0212<<14 | 0x35<<7 | 0x34, - 33229 - 19968: jis0208<<14 | 0x46<<7 | 0x20, - 33230 - 19968: jis0212<<14 | 0x35<<7 | 0x38, - 33231 - 19968: jis0212<<14 | 0x35<<7 | 0x39, - 33233 - 19968: jis0208<<14 | 0x46<<7 | 0x21, - 33235 - 19968: jis0208<<14 | 0x21<<7 | 0x00, - 33237 - 19968: jis0212<<14 | 0x35<<7 | 0x3A, - 33239 - 19968: jis0212<<14 | 0x35<<7 | 0x3B, - 33240 - 19968: jis0208<<14 | 0x46<<7 | 0x23, - 33241 - 19968: jis0208<<14 | 0x46<<7 | 0x22, - 33242 - 19968: jis0208<<14 | 0x46<<7 | 0x25, - 33243 - 19968: jis0212<<14 | 0x35<<7 | 0x3C, - 33245 - 19968: jis0212<<14 | 0x35<<7 | 0x3D, - 33246 - 19968: jis0212<<14 | 0x35<<7 | 0x3E, - 33247 - 19968: jis0208<<14 | 0x46<<7 | 0x26, - 33248 - 19968: jis0208<<14 | 0x46<<7 | 0x27, - 33249 - 19968: jis0212<<14 | 0x35<<7 | 0x3F, - 33251 - 19968: jis0208<<14 | 0x1E<<7 | 0x22, - 33252 - 19968: jis0212<<14 | 0x35<<7 | 0x40, - 33253 - 19968: jis0208<<14 | 0x11<<7 | 0x48, - 33255 - 19968: jis0208<<14 | 0x46<<7 | 0x28, - 33256 - 19968: jis0208<<14 | 0x2D<<7 | 0x36, - 33258 - 19968: jis0208<<14 | 0x1B<<7 | 0x0A, - 33259 - 19968: jis0212<<14 | 0x35<<7 | 0x41, - 33260 - 19968: jis0212<<14 | 0x35<<7 | 0x42, - 33261 - 19968: jis0208<<14 | 0x1C<<7 | 0x0C, - 33264 - 19968: jis0212<<14 | 0x35<<7 | 0x43, - 33265 - 19968: jis0212<<14 | 0x35<<7 | 0x44, - 33266 - 19968: jis0212<<14 | 0x35<<7 | 0x45, - 33267 - 19968: jis0208<<14 | 0x1A<<7 | 0x49, - 33268 - 19968: jis0208<<14 | 0x22<<7 | 0x36, - 33269 - 19968: jis0212<<14 | 0x35<<7 | 0x46, - 33270 - 19968: jis0212<<14 | 0x35<<7 | 0x47, - 33272 - 19968: jis0212<<14 | 0x35<<7 | 0x48, - 33273 - 19968: jis0212<<14 | 0x35<<7 | 0x49, - 33274 - 19968: jis0208<<14 | 0x46<<7 | 0x29, - 33275 - 19968: jis0208<<14 | 0x46<<7 | 0x2A, - 33276 - 19968: jis0208<<14 | 0x10<<7 | 0x10, - 33277 - 19968: jis0212<<14 | 0x35<<7 | 0x4A, - 33278 - 19968: jis0208<<14 | 0x46<<7 | 0x2B, - 33279 - 19968: jis0212<<14 | 0x35<<7 | 0x4B, - 33280 - 19968: jis0212<<14 | 0x35<<7 | 0x4C, - 33281 - 19968: jis0208<<14 | 0x46<<7 | 0x2C, - 33282 - 19968: jis0208<<14 | 0x46<<7 | 0x2D, - 33283 - 19968: jis0212<<14 | 0x35<<7 | 0x4D, - 33285 - 19968: jis0208<<14 | 0x46<<7 | 0x2E, - 33287 - 19968: jis0208<<14 | 0x46<<7 | 0x2F, - 33288 - 19968: jis0208<<14 | 0x15<<7 | 0x1C, - 33289 - 19968: jis0208<<14 | 0x39<<7 | 0x09, - 33290 - 19968: jis0208<<14 | 0x46<<7 | 0x30, - 33292 - 19968: jis0208<<14 | 0x1F<<7 | 0x44, - 33293 - 19968: jis0208<<14 | 0x46<<7 | 0x31, - 33294 - 19968: jis0208<<14 | 0x1B<<7 | 0x2A, - 33295 - 19968: jis0212<<14 | 0x35<<7 | 0x4E, - 33296 - 19968: jis0208<<14 | 0x46<<7 | 0x32, - 33298 - 19968: jis0208<<14 | 0x2F<<7 | 0x0F, - 33299 - 19968: jis0212<<14 | 0x35<<7 | 0x4F, - 33300 - 19968: jis0212<<14 | 0x35<<7 | 0x50, - 33302 - 19968: jis0208<<14 | 0x46<<7 | 0x33, - 33303 - 19968: jis0208<<14 | 0x29<<7 | 0x3D, - 33304 - 19968: jis0208<<14 | 0x13<<7 | 0x3B, - 33305 - 19968: jis0212<<14 | 0x35<<7 | 0x51, - 33306 - 19968: jis0212<<14 | 0x35<<7 | 0x52, - 33307 - 19968: jis0208<<14 | 0x20<<7 | 0x03, - 33308 - 19968: jis0208<<14 | 0x1C<<7 | 0x37, - 33309 - 19968: jis0212<<14 | 0x35<<7 | 0x53, - 33310 - 19968: jis0208<<14 | 0x28<<7 | 0x50, - 33311 - 19968: jis0208<<14 | 0x1C<<7 | 0x0D, - 33313 - 19968: jis0212<<14 | 0x35<<7 | 0x54, - 33314 - 19968: jis0212<<14 | 0x35<<7 | 0x55, - 33320 - 19968: jis0212<<14 | 0x35<<7 | 0x56, - 33321 - 19968: jis0208<<14 | 0x46<<7 | 0x34, - 33322 - 19968: jis0208<<14 | 0x18<<7 | 0x31, - 33323 - 19968: jis0208<<14 | 0x46<<7 | 0x35, - 33324 - 19968: jis0208<<14 | 0x27<<7 | 0x2B, - 33326 - 19968: jis0208<<14 | 0x46<<7 | 0x43, - 33330 - 19968: jis0212<<14 | 0x35<<7 | 0x57, - 33331 - 19968: jis0208<<14 | 0x46<<7 | 0x37, - 33332 - 19968: jis0212<<14 | 0x35<<7 | 0x58, - 33333 - 19968: jis0208<<14 | 0x21<<7 | 0x28, - 33334 - 19968: jis0208<<14 | 0x26<<7 | 0x54, - 33335 - 19968: jis0208<<14 | 0x17<<7 | 0x1E, - 33336 - 19968: jis0208<<14 | 0x46<<7 | 0x36, - 33337 - 19968: jis0208<<14 | 0x20<<7 | 0x04, - 33338 - 19968: jis0212<<14 | 0x35<<7 | 0x59, - 33344 - 19968: jis0208<<14 | 0x46<<7 | 0x38, - 33347 - 19968: jis0212<<14 | 0x35<<7 | 0x5A, - 33348 - 19968: jis0212<<14 | 0x35<<7 | 0x5B, - 33349 - 19968: jis0212<<14 | 0x35<<7 | 0x5C, - 33350 - 19968: jis0212<<14 | 0x35<<7 | 0x5D, - 33351 - 19968: jis0208<<14 | 0x23<<7 | 0x59, - 33355 - 19968: jis0212<<14 | 0x36<<7 | 0x00, - 33358 - 19968: jis0212<<14 | 0x36<<7 | 0x01, - 33359 - 19968: jis0212<<14 | 0x36<<7 | 0x02, - 33361 - 19968: jis0212<<14 | 0x36<<7 | 0x03, - 33366 - 19968: jis0212<<14 | 0x36<<7 | 0x04, - 33368 - 19968: jis0208<<14 | 0x46<<7 | 0x3A, - 33369 - 19968: jis0208<<14 | 0x46<<7 | 0x39, - 33370 - 19968: jis0208<<14 | 0x46<<7 | 0x3C, - 33372 - 19968: jis0212<<14 | 0x36<<7 | 0x05, - 33373 - 19968: jis0208<<14 | 0x46<<7 | 0x3B, - 33375 - 19968: jis0208<<14 | 0x46<<7 | 0x3D, - 33376 - 19968: jis0212<<14 | 0x36<<7 | 0x06, - 33378 - 19968: jis0208<<14 | 0x46<<7 | 0x3F, - 33379 - 19968: jis0212<<14 | 0x36<<7 | 0x07, - 33380 - 19968: jis0208<<14 | 0x46<<7 | 0x3E, - 33382 - 19968: jis0208<<14 | 0x13<<7 | 0x2E, - 33383 - 19968: jis0212<<14 | 0x36<<7 | 0x08, - 33384 - 19968: jis0208<<14 | 0x46<<7 | 0x40, - 33386 - 19968: jis0208<<14 | 0x46<<7 | 0x41, - 33387 - 19968: jis0208<<14 | 0x46<<7 | 0x42, - 33389 - 19968: jis0212<<14 | 0x36<<7 | 0x09, - 33390 - 19968: jis0208<<14 | 0x19<<7 | 0x10, - 33391 - 19968: jis0208<<14 | 0x2D<<7 | 0x28, - 33393 - 19968: jis0208<<14 | 0x46<<7 | 0x44, - 33394 - 19968: jis0208<<14 | 0x1E<<7 | 0x06, - 33396 - 19968: jis0212<<14 | 0x36<<7 | 0x0A, - 33398 - 19968: jis0208<<14 | 0x10<<7 | 0x4F, - 33399 - 19968: jis0208<<14 | 0x46<<7 | 0x45, - 33400 - 19968: jis0208<<14 | 0x46<<7 | 0x46, - 33403 - 19968: jis0212<<14 | 0x36<<7 | 0x0B, - 33405 - 19968: jis0212<<14 | 0x36<<7 | 0x0C, - 33406 - 19968: jis0208<<14 | 0x46<<7 | 0x47, - 33407 - 19968: jis0212<<14 | 0x36<<7 | 0x0D, - 33408 - 19968: jis0212<<14 | 0x36<<7 | 0x0E, - 33409 - 19968: jis0212<<14 | 0x36<<7 | 0x0F, - 33411 - 19968: jis0212<<14 | 0x36<<7 | 0x10, - 33412 - 19968: jis0212<<14 | 0x36<<7 | 0x11, - 33415 - 19968: jis0212<<14 | 0x36<<7 | 0x12, - 33417 - 19968: jis0212<<14 | 0x36<<7 | 0x13, - 33418 - 19968: jis0212<<14 | 0x36<<7 | 0x14, - 33419 - 19968: jis0208<<14 | 0x0F<<7 | 0x51, - 33421 - 19968: jis0208<<14 | 0x46<<7 | 0x48, - 33422 - 19968: jis0212<<14 | 0x36<<7 | 0x15, - 33425 - 19968: jis0212<<14 | 0x36<<7 | 0x16, - 33426 - 19968: jis0208<<14 | 0x46<<7 | 0x49, - 33428 - 19968: jis0212<<14 | 0x36<<7 | 0x17, - 33430 - 19968: jis0212<<14 | 0x36<<7 | 0x18, - 33432 - 19968: jis0212<<14 | 0x36<<7 | 0x19, - 33433 - 19968: jis0208<<14 | 0x28<<7 | 0x46, - 33434 - 19968: jis0212<<14 | 0x36<<7 | 0x1A, - 33435 - 19968: jis0212<<14 | 0x36<<7 | 0x1B, - 33437 - 19968: jis0208<<14 | 0x1B<<7 | 0x26, - 33439 - 19968: jis0208<<14 | 0x46<<7 | 0x4B, - 33440 - 19968: jis0212<<14 | 0x36<<7 | 0x1C, - 33441 - 19968: jis0212<<14 | 0x36<<7 | 0x1D, - 33443 - 19968: jis0212<<14 | 0x36<<7 | 0x1E, - 33444 - 19968: jis0212<<14 | 0x36<<7 | 0x1F, - 33445 - 19968: jis0208<<14 | 0x12<<7 | 0x08, - 33446 - 19968: jis0208<<14 | 0x0F<<7 | 0x11, - 33447 - 19968: jis0212<<14 | 0x36<<7 | 0x20, - 33448 - 19968: jis0212<<14 | 0x36<<7 | 0x21, - 33449 - 19968: jis0212<<14 | 0x36<<7 | 0x22, - 33450 - 19968: jis0212<<14 | 0x36<<7 | 0x23, - 33451 - 19968: jis0208<<14 | 0x46<<7 | 0x4A, - 33452 - 19968: jis0208<<14 | 0x46<<7 | 0x4D, - 33453 - 19968: jis0208<<14 | 0x26<<7 | 0x2D, - 33454 - 19968: jis0212<<14 | 0x36<<7 | 0x24, - 33455 - 19968: jis0208<<14 | 0x1E<<7 | 0x23, - 33456 - 19968: jis0212<<14 | 0x36<<7 | 0x25, - 33457 - 19968: jis0208<<14 | 0x11<<7 | 0x35, - 33458 - 19968: jis0212<<14 | 0x36<<7 | 0x26, - 33459 - 19968: jis0208<<14 | 0x2A<<7 | 0x06, - 33460 - 19968: jis0212<<14 | 0x36<<7 | 0x27, - 33463 - 19968: jis0212<<14 | 0x36<<7 | 0x28, - 33464 - 19968: jis0208<<14 | 0x16<<7 | 0x3C, - 33465 - 19968: jis0208<<14 | 0x15<<7 | 0x3B, - 33466 - 19968: jis0212<<14 | 0x36<<7 | 0x29, - 33467 - 19968: jis0208<<14 | 0x46<<7 | 0x4C, - 33468 - 19968: jis0212<<14 | 0x36<<7 | 0x2A, - 33469 - 19968: jis0208<<14 | 0x11<<7 | 0x49, - 33470 - 19968: jis0212<<14 | 0x36<<7 | 0x2B, - 33471 - 19968: jis0212<<14 | 0x36<<7 | 0x2C, - 33477 - 19968: jis0208<<14 | 0x13<<7 | 0x02, - 33478 - 19968: jis0212<<14 | 0x36<<7 | 0x2D, - 33488 - 19968: jis0212<<14 | 0x36<<7 | 0x2E, - 33489 - 19968: jis0208<<14 | 0x10<<7 | 0x50, - 33490 - 19968: jis0208<<14 | 0x46<<7 | 0x51, - 33491 - 19968: jis0208<<14 | 0x2D<<7 | 0x49, - 33492 - 19968: jis0208<<14 | 0x21<<7 | 0x3C, - 33493 - 19968: jis0212<<14 | 0x36<<7 | 0x2F, - 33495 - 19968: jis0208<<14 | 0x28<<7 | 0x23, - 33497 - 19968: jis0208<<14 | 0x46<<7 | 0x5D, - 33498 - 19968: jis0212<<14 | 0x36<<7 | 0x30, - 33499 - 19968: jis0208<<14 | 0x11<<7 | 0x36, - 33500 - 19968: jis0208<<14 | 0x46<<7 | 0x5B, - 33502 - 19968: jis0208<<14 | 0x46<<7 | 0x59, - 33503 - 19968: jis0208<<14 | 0x46<<7 | 0x50, - 33504 - 19968: jis0212<<14 | 0x36<<7 | 0x31, - 33505 - 19968: jis0208<<14 | 0x46<<7 | 0x4E, - 33506 - 19968: jis0212<<14 | 0x36<<7 | 0x32, - 33507 - 19968: jis0208<<14 | 0x46<<7 | 0x4F, - 33508 - 19968: jis0212<<14 | 0x36<<7 | 0x33, - 33509 - 19968: jis0208<<14 | 0x1B<<7 | 0x42, - 33510 - 19968: jis0208<<14 | 0x15<<7 | 0x4B, - 33511 - 19968: jis0208<<14 | 0x22<<7 | 0x56, - 33512 - 19968: jis0212<<14 | 0x36<<7 | 0x34, - 33514 - 19968: jis0212<<14 | 0x36<<7 | 0x35, - 33515 - 19968: jis0208<<14 | 0x25<<7 | 0x30, - 33517 - 19968: jis0212<<14 | 0x36<<7 | 0x36, - 33519 - 19968: jis0212<<14 | 0x36<<7 | 0x37, - 33521 - 19968: jis0208<<14 | 0x10<<7 | 0x30, - 33523 - 19968: jis0208<<14 | 0x46<<7 | 0x53, - 33524 - 19968: jis0208<<14 | 0x46<<7 | 0x52, - 33526 - 19968: jis0212<<14 | 0x36<<7 | 0x38, - 33527 - 19968: jis0212<<14 | 0x36<<7 | 0x39, - 33529 - 19968: jis0208<<14 | 0x46<<7 | 0x58, - 33530 - 19968: jis0208<<14 | 0x46<<7 | 0x54, - 33531 - 19968: jis0208<<14 | 0x46<<7 | 0x57, - 33533 - 19968: jis0212<<14 | 0x36<<7 | 0x3A, - 33534 - 19968: jis0212<<14 | 0x36<<7 | 0x3B, - 33536 - 19968: jis0212<<14 | 0x36<<7 | 0x3C, - 33537 - 19968: jis0208<<14 | 0x5A<<7 | 0x36, - 33538 - 19968: jis0208<<14 | 0x2B<<7 | 0x2F, - 33539 - 19968: jis0208<<14 | 0x46<<7 | 0x56, - 33540 - 19968: jis0208<<14 | 0x11<<7 | 0x37, - 33541 - 19968: jis0208<<14 | 0x12<<7 | 0x5C, - 33542 - 19968: jis0208<<14 | 0x46<<7 | 0x5A, - 33543 - 19968: jis0212<<14 | 0x36<<7 | 0x3E, - 33544 - 19968: jis0212<<14 | 0x36<<7 | 0x3F, - 33545 - 19968: jis0208<<14 | 0x46<<7 | 0x5C, - 33546 - 19968: jis0212<<14 | 0x36<<7 | 0x40, - 33547 - 19968: jis0212<<14 | 0x36<<7 | 0x41, - 33550 - 19968: jis0208<<14 | 0x16<<7 | 0x33, - 33558 - 19968: jis0208<<14 | 0x47<<7 | 0x02, - 33559 - 19968: jis0208<<14 | 0x47<<7 | 0x0B, - 33560 - 19968: jis0208<<14 | 0x47<<7 | 0x0C, - 33563 - 19968: jis0212<<14 | 0x36<<7 | 0x43, - 33564 - 19968: jis0208<<14 | 0x0F<<7 | 0x0A, - 33565 - 19968: jis0212<<14 | 0x36<<7 | 0x44, - 33566 - 19968: jis0212<<14 | 0x36<<7 | 0x45, - 33567 - 19968: jis0212<<14 | 0x36<<7 | 0x46, - 33569 - 19968: jis0212<<14 | 0x36<<7 | 0x47, - 33570 - 19968: jis0212<<14 | 0x36<<7 | 0x48, - 33571 - 19968: jis0208<<14 | 0x47<<7 | 0x13, - 33576 - 19968: jis0208<<14 | 0x0F<<7 | 0x50, - 33579 - 19968: jis0208<<14 | 0x47<<7 | 0x0A, - 33580 - 19968: jis0212<<14 | 0x36<<7 | 0x49, - 33581 - 19968: jis0212<<14 | 0x36<<7 | 0x4A, - 33582 - 19968: jis0212<<14 | 0x36<<7 | 0x4B, - 33583 - 19968: jis0208<<14 | 0x47<<7 | 0x09, - 33584 - 19968: jis0212<<14 | 0x36<<7 | 0x4C, - 33585 - 19968: jis0208<<14 | 0x47<<7 | 0x04, - 33586 - 19968: jis0208<<14 | 0x47<<7 | 0x03, - 33587 - 19968: jis0212<<14 | 0x36<<7 | 0x4D, - 33588 - 19968: jis0208<<14 | 0x47<<7 | 0x01, - 33589 - 19968: jis0208<<14 | 0x47<<7 | 0x00, - 33590 - 19968: jis0208<<14 | 0x22<<7 | 0x42, - 33591 - 19968: jis0212<<14 | 0x36<<7 | 0x4E, - 33592 - 19968: jis0208<<14 | 0x21<<7 | 0x5A, - 33593 - 19968: jis0208<<14 | 0x47<<7 | 0x06, - 33594 - 19968: jis0212<<14 | 0x36<<7 | 0x4F, - 33596 - 19968: jis0212<<14 | 0x36<<7 | 0x50, - 33597 - 19968: jis0212<<14 | 0x36<<7 | 0x51, - 33600 - 19968: jis0208<<14 | 0x47<<7 | 0x05, - 33602 - 19968: jis0212<<14 | 0x36<<7 | 0x52, - 33603 - 19968: jis0212<<14 | 0x36<<7 | 0x53, - 33604 - 19968: jis0212<<14 | 0x36<<7 | 0x54, - 33605 - 19968: jis0208<<14 | 0x47<<7 | 0x08, - 33607 - 19968: jis0212<<14 | 0x36<<7 | 0x55, - 33609 - 19968: jis0208<<14 | 0x20<<7 | 0x4F, - 33610 - 19968: jis0208<<14 | 0x16<<7 | 0x34, - 33613 - 19968: jis0212<<14 | 0x36<<7 | 0x56, - 33614 - 19968: jis0212<<14 | 0x36<<7 | 0x57, - 33615 - 19968: jis0208<<14 | 0x10<<7 | 0x20, - 33616 - 19968: jis0208<<14 | 0x47<<7 | 0x07, - 33617 - 19968: jis0212<<14 | 0x36<<7 | 0x58, - 33618 - 19968: jis0208<<14 | 0x18<<7 | 0x32, - 33619 - 19968: jis0212<<14 | 0x37<<7 | 0x1D, - 33620 - 19968: jis0212<<14 | 0x36<<7 | 0x42, - 33621 - 19968: jis0212<<14 | 0x36<<7 | 0x59, - 33622 - 19968: jis0212<<14 | 0x36<<7 | 0x5A, - 33623 - 19968: jis0212<<14 | 0x36<<7 | 0x5B, - 33624 - 19968: jis0208<<14 | 0x20<<7 | 0x50, - 33634 - 19968: jis0208<<14 | 0x5A<<7 | 0x37, - 33648 - 19968: jis0212<<14 | 0x36<<7 | 0x5C, - 33651 - 19968: jis0208<<14 | 0x47<<7 | 0x19, - 33653 - 19968: jis0208<<14 | 0x47<<7 | 0x1A, - 33655 - 19968: jis0208<<14 | 0x11<<7 | 0x38, - 33656 - 19968: jis0212<<14 | 0x36<<7 | 0x5D, - 33659 - 19968: jis0208<<14 | 0x11<<7 | 0x0D, - 33660 - 19968: jis0208<<14 | 0x47<<7 | 0x17, - 33661 - 19968: jis0212<<14 | 0x37<<7 | 0x00, - 33663 - 19968: jis0208<<14 | 0x5A<<7 | 0x38, - 33664 - 19968: jis0212<<14 | 0x37<<7 | 0x02, - 33666 - 19968: jis0212<<14 | 0x37<<7 | 0x03, - 33668 - 19968: jis0212<<14 | 0x37<<7 | 0x04, - 33669 - 19968: jis0208<<14 | 0x47<<7 | 0x0D, - 33670 - 19968: jis0212<<14 | 0x37<<7 | 0x05, - 33671 - 19968: jis0208<<14 | 0x47<<7 | 0x15, - 33673 - 19968: jis0208<<14 | 0x47<<7 | 0x1C, - 33674 - 19968: jis0208<<14 | 0x47<<7 | 0x16, - 33677 - 19968: jis0212<<14 | 0x37<<7 | 0x06, - 33678 - 19968: jis0208<<14 | 0x47<<7 | 0x14, - 33682 - 19968: jis0212<<14 | 0x37<<7 | 0x07, - 33683 - 19968: jis0208<<14 | 0x46<<7 | 0x55, - 33684 - 19968: jis0212<<14 | 0x37<<7 | 0x08, - 33685 - 19968: jis0212<<14 | 0x37<<7 | 0x09, - 33686 - 19968: jis0208<<14 | 0x47<<7 | 0x12, - 33688 - 19968: jis0212<<14 | 0x37<<7 | 0x0A, - 33689 - 19968: jis0212<<14 | 0x37<<7 | 0x0B, - 33690 - 19968: jis0208<<14 | 0x47<<7 | 0x0E, - 33691 - 19968: jis0212<<14 | 0x37<<7 | 0x0C, - 33692 - 19968: jis0212<<14 | 0x37<<7 | 0x0D, - 33693 - 19968: jis0212<<14 | 0x37<<7 | 0x0E, - 33694 - 19968: jis0208<<14 | 0x13<<7 | 0x2F, - 33695 - 19968: jis0208<<14 | 0x47<<7 | 0x10, - 33696 - 19968: jis0208<<14 | 0x47<<7 | 0x1B, - 33698 - 19968: jis0208<<14 | 0x47<<7 | 0x11, - 33702 - 19968: jis0212<<14 | 0x37<<7 | 0x0F, - 33703 - 19968: jis0212<<14 | 0x37<<7 | 0x10, - 33704 - 19968: jis0208<<14 | 0x47<<7 | 0x1D, - 33705 - 19968: jis0212<<14 | 0x37<<7 | 0x11, - 33706 - 19968: jis0208<<14 | 0x47<<7 | 0x0F, - 33707 - 19968: jis0208<<14 | 0x26<<7 | 0x5B, - 33708 - 19968: jis0212<<14 | 0x37<<7 | 0x12, - 33709 - 19968: jis0212<<14 | 0x37<<7 | 0x2B, - 33713 - 19968: jis0208<<14 | 0x2C<<7 | 0x48, - 33717 - 19968: jis0208<<14 | 0x47<<7 | 0x18, - 33725 - 19968: jis0208<<14 | 0x47<<7 | 0x2E, - 33726 - 19968: jis0212<<14 | 0x37<<7 | 0x13, - 33727 - 19968: jis0212<<14 | 0x37<<7 | 0x14, - 33728 - 19968: jis0212<<14 | 0x37<<7 | 0x15, - 33729 - 19968: jis0208<<14 | 0x47<<7 | 0x26, - 33733 - 19968: jis0208<<14 | 0x1E<<7 | 0x5A, - 33735 - 19968: jis0208<<14 | 0x5A<<7 | 0x39, - 33737 - 19968: jis0212<<14 | 0x37<<7 | 0x17, - 33738 - 19968: jis0208<<14 | 0x14<<7 | 0x25, - 33740 - 19968: jis0208<<14 | 0x15<<7 | 0x3C, - 33742 - 19968: jis0208<<14 | 0x47<<7 | 0x21, - 33743 - 19968: jis0212<<14 | 0x37<<7 | 0x18, - 33744 - 19968: jis0212<<14 | 0x37<<7 | 0x19, - 33745 - 19968: jis0212<<14 | 0x37<<7 | 0x1A, - 33747 - 19968: jis0208<<14 | 0x11<<7 | 0x3A, - 33748 - 19968: jis0212<<14 | 0x37<<7 | 0x1B, - 33750 - 19968: jis0208<<14 | 0x1D<<7 | 0x33, - 33752 - 19968: jis0208<<14 | 0x47<<7 | 0x24, - 33756 - 19968: jis0208<<14 | 0x19<<7 | 0x39, - 33757 - 19968: jis0212<<14 | 0x37<<7 | 0x1C, - 33759 - 19968: jis0208<<14 | 0x24<<7 | 0x30, - 33760 - 19968: jis0208<<14 | 0x47<<7 | 0x29, - 33768 - 19968: jis0212<<14 | 0x37<<7 | 0x1E, - 33769 - 19968: jis0208<<14 | 0x29<<7 | 0x4D, - 33770 - 19968: jis0212<<14 | 0x37<<7 | 0x1F, - 33771 - 19968: jis0208<<14 | 0x47<<7 | 0x20, - 33775 - 19968: jis0208<<14 | 0x11<<7 | 0x39, - 33776 - 19968: jis0208<<14 | 0x17<<7 | 0x35, - 33777 - 19968: jis0208<<14 | 0x28<<7 | 0x08, - 33778 - 19968: jis0208<<14 | 0x47<<7 | 0x2A, - 33780 - 19968: jis0208<<14 | 0x47<<7 | 0x1E, - 33782 - 19968: jis0208<<14 | 0x5A<<7 | 0x3A, - 33783 - 19968: jis0208<<14 | 0x47<<7 | 0x27, - 33784 - 19968: jis0212<<14 | 0x37<<7 | 0x21, - 33785 - 19968: jis0212<<14 | 0x37<<7 | 0x22, - 33787 - 19968: jis0208<<14 | 0x47<<7 | 0x31, - 33788 - 19968: jis0212<<14 | 0x37<<7 | 0x23, - 33789 - 19968: jis0208<<14 | 0x47<<7 | 0x22, - 33793 - 19968: jis0212<<14 | 0x37<<7 | 0x24, - 33795 - 19968: jis0208<<14 | 0x47<<7 | 0x23, - 33796 - 19968: jis0208<<14 | 0x25<<7 | 0x19, - 33798 - 19968: jis0212<<14 | 0x37<<7 | 0x25, - 33799 - 19968: jis0208<<14 | 0x47<<7 | 0x28, - 33802 - 19968: jis0212<<14 | 0x37<<7 | 0x26, - 33803 - 19968: jis0208<<14 | 0x47<<7 | 0x25, - 33804 - 19968: jis0208<<14 | 0x2A<<7 | 0x07, - 33805 - 19968: jis0208<<14 | 0x47<<7 | 0x2B, - 33806 - 19968: jis0208<<14 | 0x0F<<7 | 0x3F, - 33807 - 19968: jis0212<<14 | 0x37<<7 | 0x27, - 33809 - 19968: jis0212<<14 | 0x37<<7 | 0x28, - 33811 - 19968: jis0208<<14 | 0x47<<7 | 0x1F, - 33813 - 19968: jis0212<<14 | 0x37<<7 | 0x29, - 33817 - 19968: jis0212<<14 | 0x37<<7 | 0x2A, - 33824 - 19968: jis0208<<14 | 0x47<<7 | 0x2D, - 33826 - 19968: jis0208<<14 | 0x47<<7 | 0x2C, - 33833 - 19968: jis0208<<14 | 0x26<<7 | 0x4A, - 33834 - 19968: jis0208<<14 | 0x47<<7 | 0x33, - 33836 - 19968: jis0208<<14 | 0x47<<7 | 0x3E, - 33839 - 19968: jis0212<<14 | 0x37<<7 | 0x2C, - 33841 - 19968: jis0208<<14 | 0x12<<7 | 0x5D, - 33845 - 19968: jis0208<<14 | 0x47<<7 | 0x41, - 33848 - 19968: jis0208<<14 | 0x47<<7 | 0x2F, - 33849 - 19968: jis0212<<14 | 0x37<<7 | 0x2D, - 33852 - 19968: jis0208<<14 | 0x47<<7 | 0x34, - 33853 - 19968: jis0208<<14 | 0x2C<<7 | 0x4D, - 33861 - 19968: jis0212<<14 | 0x37<<7 | 0x2E, - 33862 - 19968: jis0208<<14 | 0x47<<7 | 0x3D, - 33863 - 19968: jis0212<<14 | 0x37<<7 | 0x2F, - 33864 - 19968: jis0208<<14 | 0x5A<<7 | 0x3B, - 33865 - 19968: jis0208<<14 | 0x2C<<7 | 0x34, - 33866 - 19968: jis0212<<14 | 0x37<<7 | 0x31, - 33869 - 19968: jis0212<<14 | 0x37<<7 | 0x32, - 33870 - 19968: jis0208<<14 | 0x2D<<7 | 0x09, - 33871 - 19968: jis0212<<14 | 0x37<<7 | 0x33, - 33873 - 19968: jis0212<<14 | 0x37<<7 | 0x34, - 33874 - 19968: jis0212<<14 | 0x37<<7 | 0x35, - 33878 - 19968: jis0212<<14 | 0x37<<7 | 0x36, - 33879 - 19968: jis0208<<14 | 0x22<<7 | 0x57, - 33880 - 19968: jis0212<<14 | 0x37<<7 | 0x37, - 33881 - 19968: jis0212<<14 | 0x37<<7 | 0x38, - 33882 - 19968: jis0212<<14 | 0x37<<7 | 0x39, - 33883 - 19968: jis0208<<14 | 0x12<<7 | 0x4A, - 33884 - 19968: jis0212<<14 | 0x37<<7 | 0x3A, - 33888 - 19968: jis0212<<14 | 0x37<<7 | 0x3B, - 33889 - 19968: jis0208<<14 | 0x28<<7 | 0x51, - 33890 - 19968: jis0208<<14 | 0x47<<7 | 0x43, - 33891 - 19968: jis0208<<14 | 0x25<<7 | 0x00, - 33892 - 19968: jis0212<<14 | 0x37<<7 | 0x3C, - 33893 - 19968: jis0212<<14 | 0x37<<7 | 0x3D, - 33894 - 19968: jis0208<<14 | 0x0F<<7 | 0x10, - 33895 - 19968: jis0212<<14 | 0x37<<7 | 0x3E, - 33897 - 19968: jis0208<<14 | 0x47<<7 | 0x3C, - 33898 - 19968: jis0212<<14 | 0x37<<7 | 0x3F, - 33899 - 19968: jis0208<<14 | 0x47<<7 | 0x38, - 33900 - 19968: jis0208<<14 | 0x20<<7 | 0x51, - 33901 - 19968: jis0208<<14 | 0x47<<7 | 0x32, - 33902 - 19968: jis0208<<14 | 0x47<<7 | 0x3A, - 33903 - 19968: jis0208<<14 | 0x47<<7 | 0x3F, - 33904 - 19968: jis0212<<14 | 0x37<<7 | 0x40, - 33905 - 19968: jis0208<<14 | 0x26<<7 | 0x0B, - 33907 - 19968: jis0212<<14 | 0x37<<7 | 0x41, - 33908 - 19968: jis0212<<14 | 0x37<<7 | 0x42, - 33909 - 19968: jis0208<<14 | 0x0F<<7 | 0x09, - 33910 - 19968: jis0212<<14 | 0x37<<7 | 0x43, - 33911 - 19968: jis0208<<14 | 0x47<<7 | 0x37, - 33912 - 19968: jis0212<<14 | 0x37<<7 | 0x44, - 33913 - 19968: jis0208<<14 | 0x47<<7 | 0x40, - 33914 - 19968: jis0208<<14 | 0x28<<7 | 0x57, - 33916 - 19968: jis0212<<14 | 0x37<<7 | 0x45, - 33917 - 19968: jis0212<<14 | 0x37<<7 | 0x46, - 33921 - 19968: jis0212<<14 | 0x37<<7 | 0x47, - 33922 - 19968: jis0208<<14 | 0x47<<7 | 0x3B, - 33924 - 19968: jis0208<<14 | 0x47<<7 | 0x36, - 33925 - 19968: jis0212<<14 | 0x37<<7 | 0x48, - 33931 - 19968: jis0208<<14 | 0x1D<<7 | 0x34, - 33936 - 19968: jis0208<<14 | 0x1C<<7 | 0x0E, - 33938 - 19968: jis0212<<14 | 0x37<<7 | 0x49, - 33939 - 19968: jis0212<<14 | 0x37<<7 | 0x4A, - 33940 - 19968: jis0208<<14 | 0x1B<<7 | 0x0B, - 33941 - 19968: jis0212<<14 | 0x37<<7 | 0x4B, - 33945 - 19968: jis0208<<14 | 0x2B<<7 | 0x37, - 33948 - 19968: jis0208<<14 | 0x28<<7 | 0x26, - 33950 - 19968: jis0212<<14 | 0x37<<7 | 0x4C, - 33951 - 19968: jis0208<<14 | 0x47<<7 | 0x46, - 33953 - 19968: jis0208<<14 | 0x47<<7 | 0x4F, - 33958 - 19968: jis0212<<14 | 0x37<<7 | 0x4D, - 33960 - 19968: jis0212<<14 | 0x37<<7 | 0x4E, - 33961 - 19968: jis0212<<14 | 0x37<<7 | 0x4F, - 33962 - 19968: jis0212<<14 | 0x37<<7 | 0x50, - 33965 - 19968: jis0208<<14 | 0x47<<7 | 0x39, - 33967 - 19968: jis0212<<14 | 0x37<<7 | 0x51, - 33969 - 19968: jis0212<<14 | 0x37<<7 | 0x52, - 33970 - 19968: jis0208<<14 | 0x12<<7 | 0x56, - 33972 - 19968: jis0208<<14 | 0x5A<<7 | 0x3C, - 33976 - 19968: jis0208<<14 | 0x1D<<7 | 0x57, - 33977 - 19968: jis0208<<14 | 0x47<<7 | 0x44, - 33978 - 19968: jis0212<<14 | 0x37<<7 | 0x54, - 33979 - 19968: jis0208<<14 | 0x47<<7 | 0x49, - 33980 - 19968: jis0208<<14 | 0x20<<7 | 0x52, - 33981 - 19968: jis0212<<14 | 0x37<<7 | 0x55, - 33982 - 19968: jis0212<<14 | 0x37<<7 | 0x56, - 33983 - 19968: jis0208<<14 | 0x47<<7 | 0x45, - 33984 - 19968: jis0212<<14 | 0x37<<7 | 0x57, - 33985 - 19968: jis0208<<14 | 0x47<<7 | 0x4C, - 33986 - 19968: jis0212<<14 | 0x37<<7 | 0x58, - 33988 - 19968: jis0208<<14 | 0x22<<7 | 0x3E, - 33990 - 19968: jis0208<<14 | 0x47<<7 | 0x4D, - 33991 - 19968: jis0212<<14 | 0x37<<7 | 0x59, - 33992 - 19968: jis0212<<14 | 0x37<<7 | 0x5A, - 33993 - 19968: jis0208<<14 | 0x2C<<7 | 0x35, - 33994 - 19968: jis0208<<14 | 0x47<<7 | 0x42, - 33995 - 19968: jis0208<<14 | 0x12<<7 | 0x17, - 33996 - 19968: jis0212<<14 | 0x37<<7 | 0x5B, - 33997 - 19968: jis0208<<14 | 0x47<<7 | 0x48, - 33999 - 19968: jis0212<<14 | 0x37<<7 | 0x5C, - 34000 - 19968: jis0208<<14 | 0x47<<7 | 0x4B, - 34001 - 19968: jis0208<<14 | 0x2B<<7 | 0x0B, - 34003 - 19968: jis0212<<14 | 0x37<<7 | 0x5D, - 34006 - 19968: jis0208<<14 | 0x47<<7 | 0x4E, - 34009 - 19968: jis0208<<14 | 0x47<<7 | 0x47, - 34010 - 19968: jis0208<<14 | 0x47<<7 | 0x4A, - 34012 - 19968: jis0208<<14 | 0x58<<7 | 0x04, - 34023 - 19968: jis0212<<14 | 0x38<<7 | 0x01, - 34026 - 19968: jis0212<<14 | 0x38<<7 | 0x02, - 34028 - 19968: jis0208<<14 | 0x2A<<7 | 0x08, - 34030 - 19968: jis0208<<14 | 0x2E<<7 | 0x00, - 34031 - 19968: jis0212<<14 | 0x38<<7 | 0x03, - 34032 - 19968: jis0212<<14 | 0x38<<7 | 0x04, - 34033 - 19968: jis0212<<14 | 0x38<<7 | 0x05, - 34034 - 19968: jis0212<<14 | 0x38<<7 | 0x06, - 34036 - 19968: jis0208<<14 | 0x47<<7 | 0x52, - 34039 - 19968: jis0212<<14 | 0x38<<7 | 0x07, - 34042 - 19968: jis0212<<14 | 0x38<<7 | 0x09, - 34043 - 19968: jis0212<<14 | 0x38<<7 | 0x0A, - 34044 - 19968: jis0208<<14 | 0x47<<7 | 0x59, - 34045 - 19968: jis0212<<14 | 0x38<<7 | 0x0B, - 34047 - 19968: jis0208<<14 | 0x47<<7 | 0x51, - 34048 - 19968: jis0208<<14 | 0x1B<<7 | 0x22, - 34050 - 19968: jis0212<<14 | 0x38<<7 | 0x0C, - 34051 - 19968: jis0212<<14 | 0x38<<7 | 0x0D, - 34054 - 19968: jis0208<<14 | 0x47<<7 | 0x30, - 34055 - 19968: jis0212<<14 | 0x38<<7 | 0x0E, - 34060 - 19968: jis0212<<14 | 0x38<<7 | 0x0F, - 34062 - 19968: jis0212<<14 | 0x38<<7 | 0x10, - 34064 - 19968: jis0212<<14 | 0x38<<7 | 0x11, - 34065 - 19968: jis0208<<14 | 0x29<<7 | 0x2D, - 34067 - 19968: jis0208<<14 | 0x2B<<7 | 0x01, - 34068 - 19968: jis0208<<14 | 0x47<<7 | 0x58, - 34069 - 19968: jis0208<<14 | 0x47<<7 | 0x57, - 34071 - 19968: jis0208<<14 | 0x47<<7 | 0x53, - 34072 - 19968: jis0208<<14 | 0x47<<7 | 0x54, - 34074 - 19968: jis0208<<14 | 0x10<<7 | 0x15, - 34076 - 19968: jis0212<<14 | 0x38<<7 | 0x12, - 34078 - 19968: jis0212<<14 | 0x38<<7 | 0x13, - 34079 - 19968: jis0208<<14 | 0x47<<7 | 0x56, - 34081 - 19968: jis0208<<14 | 0x47<<7 | 0x50, - 34082 - 19968: jis0212<<14 | 0x38<<7 | 0x14, - 34083 - 19968: jis0212<<14 | 0x38<<7 | 0x15, - 34084 - 19968: jis0212<<14 | 0x38<<7 | 0x16, - 34085 - 19968: jis0212<<14 | 0x38<<7 | 0x17, - 34086 - 19968: jis0208<<14 | 0x23<<7 | 0x34, - 34087 - 19968: jis0212<<14 | 0x38<<7 | 0x18, - 34090 - 19968: jis0212<<14 | 0x38<<7 | 0x19, - 34091 - 19968: jis0212<<14 | 0x38<<7 | 0x1A, - 34092 - 19968: jis0208<<14 | 0x47<<7 | 0x55, - 34093 - 19968: jis0208<<14 | 0x0F<<7 | 0x5D, - 34095 - 19968: jis0212<<14 | 0x38<<7 | 0x1B, - 34098 - 19968: jis0212<<14 | 0x38<<7 | 0x08, - 34099 - 19968: jis0212<<14 | 0x38<<7 | 0x1C, - 34100 - 19968: jis0212<<14 | 0x38<<7 | 0x1D, - 34101 - 19968: jis0208<<14 | 0x21<<7 | 0x01, - 34102 - 19968: jis0212<<14 | 0x38<<7 | 0x1E, - 34109 - 19968: jis0208<<14 | 0x29<<7 | 0x22, - 34111 - 19968: jis0212<<14 | 0x38<<7 | 0x1F, - 34112 - 19968: jis0208<<14 | 0x47<<7 | 0x5A, - 34113 - 19968: jis0208<<14 | 0x48<<7 | 0x00, - 34115 - 19968: jis0208<<14 | 0x27<<7 | 0x38, - 34118 - 19968: jis0212<<14 | 0x38<<7 | 0x20, - 34120 - 19968: jis0208<<14 | 0x47<<7 | 0x5D, - 34121 - 19968: jis0208<<14 | 0x1D<<7 | 0x35, - 34122 - 19968: jis0208<<14 | 0x1B<<7 | 0x28, - 34123 - 19968: jis0208<<14 | 0x48<<7 | 0x02, - 34126 - 19968: jis0208<<14 | 0x15<<7 | 0x1D, - 34127 - 19968: jis0212<<14 | 0x38<<7 | 0x21, - 34128 - 19968: jis0212<<14 | 0x38<<7 | 0x22, - 34129 - 19968: jis0212<<14 | 0x38<<7 | 0x23, - 34130 - 19968: jis0212<<14 | 0x38<<7 | 0x24, - 34131 - 19968: jis0208<<14 | 0x5A<<7 | 0x3D, - 34133 - 19968: jis0208<<14 | 0x48<<7 | 0x03, - 34134 - 19968: jis0212<<14 | 0x38<<7 | 0x26, - 34135 - 19968: jis0208<<14 | 0x28<<7 | 0x58, - 34136 - 19968: jis0208<<14 | 0x47<<7 | 0x5C, - 34137 - 19968: jis0208<<14 | 0x5A<<7 | 0x3E, - 34138 - 19968: jis0208<<14 | 0x47<<7 | 0x35, - 34140 - 19968: jis0212<<14 | 0x38<<7 | 0x28, - 34141 - 19968: jis0212<<14 | 0x38<<7 | 0x29, - 34142 - 19968: jis0212<<14 | 0x38<<7 | 0x2A, - 34143 - 19968: jis0212<<14 | 0x38<<7 | 0x2B, - 34144 - 19968: jis0212<<14 | 0x38<<7 | 0x2C, - 34145 - 19968: jis0212<<14 | 0x38<<7 | 0x2D, - 34146 - 19968: jis0212<<14 | 0x38<<7 | 0x2E, - 34147 - 19968: jis0208<<14 | 0x47<<7 | 0x5B, - 34148 - 19968: jis0212<<14 | 0x38<<7 | 0x2F, - 34152 - 19968: jis0208<<14 | 0x2E<<7 | 0x2E, - 34153 - 19968: jis0208<<14 | 0x25<<7 | 0x01, - 34154 - 19968: jis0208<<14 | 0x28<<7 | 0x52, - 34155 - 19968: jis0208<<14 | 0x5A<<7 | 0x3F, - 34157 - 19968: jis0208<<14 | 0x48<<7 | 0x0A, - 34159 - 19968: jis0212<<14 | 0x38<<7 | 0x31, - 34167 - 19968: jis0208<<14 | 0x48<<7 | 0x10, - 34169 - 19968: jis0212<<14 | 0x38<<7 | 0x32, - 34170 - 19968: jis0212<<14 | 0x38<<7 | 0x33, - 34171 - 19968: jis0212<<14 | 0x38<<7 | 0x34, - 34173 - 19968: jis0212<<14 | 0x38<<7 | 0x35, - 34174 - 19968: jis0208<<14 | 0x48<<7 | 0x11, - 34175 - 19968: jis0212<<14 | 0x38<<7 | 0x36, - 34176 - 19968: jis0208<<14 | 0x48<<7 | 0x04, - 34177 - 19968: jis0212<<14 | 0x38<<7 | 0x37, - 34180 - 19968: jis0208<<14 | 0x26<<7 | 0x55, - 34181 - 19968: jis0212<<14 | 0x38<<7 | 0x38, - 34182 - 19968: jis0212<<14 | 0x38<<7 | 0x39, - 34183 - 19968: jis0208<<14 | 0x48<<7 | 0x0E, - 34184 - 19968: jis0208<<14 | 0x48<<7 | 0x06, - 34185 - 19968: jis0212<<14 | 0x38<<7 | 0x3A, - 34186 - 19968: jis0208<<14 | 0x48<<7 | 0x08, - 34187 - 19968: jis0212<<14 | 0x38<<7 | 0x3B, - 34188 - 19968: jis0212<<14 | 0x38<<7 | 0x3C, - 34191 - 19968: jis0212<<14 | 0x38<<7 | 0x3D, - 34192 - 19968: jis0208<<14 | 0x48<<7 | 0x12, - 34193 - 19968: jis0208<<14 | 0x48<<7 | 0x07, - 34195 - 19968: jis0212<<14 | 0x38<<7 | 0x3E, - 34196 - 19968: jis0208<<14 | 0x48<<7 | 0x0B, - 34199 - 19968: jis0208<<14 | 0x10<<7 | 0x51, - 34200 - 19968: jis0212<<14 | 0x38<<7 | 0x3F, - 34201 - 19968: jis0208<<14 | 0x25<<7 | 0x44, - 34203 - 19968: jis0208<<14 | 0x48<<7 | 0x0C, - 34204 - 19968: jis0208<<14 | 0x48<<7 | 0x0F, - 34205 - 19968: jis0212<<14 | 0x38<<7 | 0x40, - 34207 - 19968: jis0212<<14 | 0x38<<7 | 0x41, - 34208 - 19968: jis0212<<14 | 0x38<<7 | 0x42, - 34210 - 19968: jis0212<<14 | 0x38<<7 | 0x43, - 34212 - 19968: jis0208<<14 | 0x48<<7 | 0x05, - 34213 - 19968: jis0212<<14 | 0x38<<7 | 0x44, - 34214 - 19968: jis0208<<14 | 0x20<<7 | 0x05, - 34215 - 19968: jis0212<<14 | 0x38<<7 | 0x45, - 34216 - 19968: jis0208<<14 | 0x48<<7 | 0x09, - 34217 - 19968: jis0208<<14 | 0x1A<<7 | 0x06, - 34218 - 19968: jis0208<<14 | 0x1E<<7 | 0x24, - 34219 - 19968: jis0208<<14 | 0x16<<7 | 0x0F, - 34220 - 19968: jis0208<<14 | 0x2B<<7 | 0x53, - 34221 - 19968: jis0212<<14 | 0x38<<7 | 0x53, - 34222 - 19968: jis0208<<14 | 0x2B<<7 | 0x58, - 34223 - 19968: jis0208<<14 | 0x1C<<7 | 0x51, - 34224 - 19968: jis0208<<14 | 0x5A<<7 | 0x41, - 34228 - 19968: jis0212<<14 | 0x38<<7 | 0x46, - 34230 - 19968: jis0212<<14 | 0x38<<7 | 0x47, - 34231 - 19968: jis0212<<14 | 0x38<<7 | 0x48, - 34232 - 19968: jis0212<<14 | 0x38<<7 | 0x49, - 34233 - 19968: jis0208<<14 | 0x48<<7 | 0x16, - 34234 - 19968: jis0208<<14 | 0x48<<7 | 0x14, - 34236 - 19968: jis0212<<14 | 0x38<<7 | 0x4A, - 34237 - 19968: jis0212<<14 | 0x38<<7 | 0x4B, - 34238 - 19968: jis0212<<14 | 0x38<<7 | 0x4C, - 34239 - 19968: jis0212<<14 | 0x38<<7 | 0x4D, - 34241 - 19968: jis0208<<14 | 0x2E<<7 | 0x2D, - 34242 - 19968: jis0212<<14 | 0x38<<7 | 0x4E, - 34247 - 19968: jis0212<<14 | 0x38<<7 | 0x4F, - 34249 - 19968: jis0208<<14 | 0x48<<7 | 0x13, - 34250 - 19968: jis0212<<14 | 0x38<<7 | 0x50, - 34251 - 19968: jis0212<<14 | 0x38<<7 | 0x51, - 34253 - 19968: jis0208<<14 | 0x2C<<7 | 0x54, - 34254 - 19968: jis0212<<14 | 0x38<<7 | 0x52, - 34255 - 19968: jis0208<<14 | 0x48<<7 | 0x15, - 34256 - 19968: jis0208<<14 | 0x48<<7 | 0x17, - 34261 - 19968: jis0208<<14 | 0x48<<7 | 0x18, - 34264 - 19968: jis0212<<14 | 0x38<<7 | 0x54, - 34266 - 19968: jis0212<<14 | 0x38<<7 | 0x55, - 34268 - 19968: jis0208<<14 | 0x48<<7 | 0x1B, - 34269 - 19968: jis0208<<14 | 0x48<<7 | 0x19, - 34271 - 19968: jis0212<<14 | 0x38<<7 | 0x56, - 34272 - 19968: jis0212<<14 | 0x38<<7 | 0x57, - 34276 - 19968: jis0208<<14 | 0x25<<7 | 0x02, - 34277 - 19968: jis0208<<14 | 0x48<<7 | 0x1A, - 34278 - 19968: jis0212<<14 | 0x38<<7 | 0x58, - 34280 - 19968: jis0212<<14 | 0x38<<7 | 0x59, - 34281 - 19968: jis0208<<14 | 0x27<<7 | 0x2C, - 34282 - 19968: jis0208<<14 | 0x48<<7 | 0x0D, - 34285 - 19968: jis0212<<14 | 0x38<<7 | 0x5A, - 34291 - 19968: jis0212<<14 | 0x38<<7 | 0x5B, - 34294 - 19968: jis0212<<14 | 0x38<<7 | 0x5C, - 34295 - 19968: jis0208<<14 | 0x1C<<7 | 0x52, - 34297 - 19968: jis0208<<14 | 0x48<<7 | 0x1C, - 34298 - 19968: jis0208<<14 | 0x48<<7 | 0x21, - 34299 - 19968: jis0208<<14 | 0x20<<7 | 0x53, - 34300 - 19968: jis0212<<14 | 0x38<<7 | 0x5D, - 34302 - 19968: jis0208<<14 | 0x48<<7 | 0x20, - 34303 - 19968: jis0212<<14 | 0x39<<7 | 0x00, - 34304 - 19968: jis0212<<14 | 0x39<<7 | 0x01, - 34306 - 19968: jis0208<<14 | 0x48<<7 | 0x01, - 34308 - 19968: jis0212<<14 | 0x39<<7 | 0x02, - 34309 - 19968: jis0212<<14 | 0x39<<7 | 0x03, - 34310 - 19968: jis0208<<14 | 0x48<<7 | 0x22, - 34311 - 19968: jis0208<<14 | 0x20<<7 | 0x28, - 34314 - 19968: jis0208<<14 | 0x48<<7 | 0x1D, - 34315 - 19968: jis0208<<14 | 0x48<<7 | 0x1F, - 34317 - 19968: jis0212<<14 | 0x39<<7 | 0x04, - 34318 - 19968: jis0212<<14 | 0x39<<7 | 0x05, - 34320 - 19968: jis0212<<14 | 0x39<<7 | 0x06, - 34321 - 19968: jis0212<<14 | 0x39<<7 | 0x07, - 34322 - 19968: jis0212<<14 | 0x39<<7 | 0x08, - 34323 - 19968: jis0208<<14 | 0x48<<7 | 0x1E, - 34326 - 19968: jis0208<<14 | 0x3C<<7 | 0x10, - 34327 - 19968: jis0208<<14 | 0x3C<<7 | 0x01, - 34328 - 19968: jis0212<<14 | 0x39<<7 | 0x09, - 34329 - 19968: jis0212<<14 | 0x39<<7 | 0x0A, - 34330 - 19968: jis0208<<14 | 0x48<<7 | 0x24, - 34331 - 19968: jis0212<<14 | 0x39<<7 | 0x0B, - 34334 - 19968: jis0212<<14 | 0x39<<7 | 0x0C, - 34337 - 19968: jis0212<<14 | 0x39<<7 | 0x0D, - 34338 - 19968: jis0208<<14 | 0x48<<7 | 0x23, - 34343 - 19968: jis0212<<14 | 0x39<<7 | 0x0E, - 34345 - 19968: jis0212<<14 | 0x39<<7 | 0x0F, - 34349 - 19968: jis0208<<14 | 0x2C<<7 | 0x55, - 34351 - 19968: jis0208<<14 | 0x41<<7 | 0x1B, - 34352 - 19968: jis0208<<14 | 0x48<<7 | 0x25, - 34358 - 19968: jis0212<<14 | 0x39<<7 | 0x10, - 34360 - 19968: jis0212<<14 | 0x39<<7 | 0x11, - 34362 - 19968: jis0212<<14 | 0x39<<7 | 0x12, - 34364 - 19968: jis0212<<14 | 0x39<<7 | 0x13, - 34365 - 19968: jis0212<<14 | 0x39<<7 | 0x14, - 34367 - 19968: jis0208<<14 | 0x48<<7 | 0x26, - 34368 - 19968: jis0212<<14 | 0x39<<7 | 0x15, - 34369 - 19968: jis0212<<14 | 0x17<<7 | 0x45, - 34370 - 19968: jis0212<<14 | 0x39<<7 | 0x16, - 34374 - 19968: jis0212<<14 | 0x39<<7 | 0x17, - 34381 - 19968: jis0208<<14 | 0x48<<7 | 0x27, - 34382 - 19968: jis0208<<14 | 0x17<<7 | 0x36, - 34384 - 19968: jis0208<<14 | 0x14<<7 | 0x33, - 34386 - 19968: jis0212<<14 | 0x39<<7 | 0x18, - 34387 - 19968: jis0212<<14 | 0x39<<7 | 0x19, - 34388 - 19968: jis0208<<14 | 0x48<<7 | 0x29, - 34389 - 19968: jis0208<<14 | 0x30<<7 | 0x3C, - 34390 - 19968: jis0212<<14 | 0x39<<7 | 0x1A, - 34391 - 19968: jis0212<<14 | 0x39<<7 | 0x1B, - 34392 - 19968: jis0212<<14 | 0x39<<7 | 0x1C, - 34393 - 19968: jis0212<<14 | 0x39<<7 | 0x1D, - 34394 - 19968: jis0208<<14 | 0x14<<7 | 0x54, - 34396 - 19968: jis0208<<14 | 0x2D<<7 | 0x19, - 34397 - 19968: jis0212<<14 | 0x39<<7 | 0x1E, - 34398 - 19968: jis0208<<14 | 0x15<<7 | 0x52, - 34399 - 19968: jis0208<<14 | 0x48<<7 | 0x2A, - 34400 - 19968: jis0212<<14 | 0x39<<7 | 0x1F, - 34401 - 19968: jis0212<<14 | 0x39<<7 | 0x20, - 34402 - 19968: jis0212<<14 | 0x39<<7 | 0x21, - 34403 - 19968: jis0212<<14 | 0x39<<7 | 0x22, - 34404 - 19968: jis0212<<14 | 0x39<<7 | 0x23, - 34407 - 19968: jis0208<<14 | 0x48<<7 | 0x2B, - 34409 - 19968: jis0212<<14 | 0x39<<7 | 0x24, - 34411 - 19968: jis0208<<14 | 0x22<<7 | 0x4D, - 34412 - 19968: jis0212<<14 | 0x39<<7 | 0x25, - 34415 - 19968: jis0212<<14 | 0x39<<7 | 0x26, - 34417 - 19968: jis0208<<14 | 0x48<<7 | 0x2C, - 34421 - 19968: jis0212<<14 | 0x39<<7 | 0x27, - 34422 - 19968: jis0212<<14 | 0x39<<7 | 0x28, - 34423 - 19968: jis0212<<14 | 0x39<<7 | 0x29, - 34425 - 19968: jis0208<<14 | 0x25<<7 | 0x59, - 34426 - 19968: jis0212<<14 | 0x39<<7 | 0x2A, - 34427 - 19968: jis0208<<14 | 0x0F<<7 | 0x19, - 34440 - 19968: jis0212<<14 | 0x39<<7 | 0x4C, - 34442 - 19968: jis0208<<14 | 0x11<<7 | 0x42, - 34443 - 19968: jis0208<<14 | 0x48<<7 | 0x31, - 34444 - 19968: jis0208<<14 | 0x48<<7 | 0x32, - 34445 - 19968: jis0212<<14 | 0x39<<7 | 0x2B, - 34449 - 19968: jis0212<<14 | 0x39<<7 | 0x2C, - 34451 - 19968: jis0208<<14 | 0x48<<7 | 0x2D, - 34453 - 19968: jis0208<<14 | 0x1A<<7 | 0x1C, - 34454 - 19968: jis0212<<14 | 0x39<<7 | 0x2D, - 34456 - 19968: jis0212<<14 | 0x39<<7 | 0x2E, - 34458 - 19968: jis0212<<14 | 0x39<<7 | 0x2F, - 34460 - 19968: jis0212<<14 | 0x39<<7 | 0x30, - 34465 - 19968: jis0212<<14 | 0x39<<7 | 0x31, - 34467 - 19968: jis0208<<14 | 0x48<<7 | 0x2E, - 34468 - 19968: jis0208<<14 | 0x26<<7 | 0x21, - 34470 - 19968: jis0212<<14 | 0x39<<7 | 0x32, - 34471 - 19968: jis0212<<14 | 0x39<<7 | 0x33, - 34472 - 19968: jis0212<<14 | 0x39<<7 | 0x34, - 34473 - 19968: jis0208<<14 | 0x48<<7 | 0x2F, - 34474 - 19968: jis0208<<14 | 0x48<<7 | 0x30, - 34475 - 19968: jis0208<<14 | 0x48<<7 | 0x3A, - 34477 - 19968: jis0212<<14 | 0x39<<7 | 0x35, - 34479 - 19968: jis0208<<14 | 0x48<<7 | 0x34, - 34480 - 19968: jis0208<<14 | 0x48<<7 | 0x37, - 34481 - 19968: jis0212<<14 | 0x39<<7 | 0x36, - 34483 - 19968: jis0212<<14 | 0x39<<7 | 0x37, - 34484 - 19968: jis0212<<14 | 0x39<<7 | 0x38, - 34485 - 19968: jis0212<<14 | 0x39<<7 | 0x39, - 34486 - 19968: jis0208<<14 | 0x48<<7 | 0x33, - 34487 - 19968: jis0212<<14 | 0x39<<7 | 0x3A, - 34488 - 19968: jis0212<<14 | 0x39<<7 | 0x3B, - 34489 - 19968: jis0212<<14 | 0x39<<7 | 0x3C, - 34495 - 19968: jis0212<<14 | 0x39<<7 | 0x3D, - 34496 - 19968: jis0212<<14 | 0x39<<7 | 0x3E, - 34497 - 19968: jis0212<<14 | 0x39<<7 | 0x3F, - 34499 - 19968: jis0212<<14 | 0x39<<7 | 0x40, - 34500 - 19968: jis0208<<14 | 0x48<<7 | 0x35, - 34501 - 19968: jis0212<<14 | 0x39<<7 | 0x41, - 34502 - 19968: jis0208<<14 | 0x48<<7 | 0x36, - 34503 - 19968: jis0208<<14 | 0x1B<<7 | 0x37, - 34505 - 19968: jis0208<<14 | 0x48<<7 | 0x38, - 34507 - 19968: jis0208<<14 | 0x22<<7 | 0x20, - 34509 - 19968: jis0208<<14 | 0x16<<7 | 0x35, - 34510 - 19968: jis0208<<14 | 0x12<<7 | 0x21, - 34513 - 19968: jis0212<<14 | 0x39<<7 | 0x42, - 34514 - 19968: jis0212<<14 | 0x39<<7 | 0x43, - 34516 - 19968: jis0208<<14 | 0x48<<7 | 0x3B, - 34517 - 19968: jis0212<<14 | 0x39<<7 | 0x44, - 34519 - 19968: jis0212<<14 | 0x39<<7 | 0x45, - 34521 - 19968: jis0208<<14 | 0x12<<7 | 0x1E, - 34522 - 19968: jis0212<<14 | 0x39<<7 | 0x46, - 34523 - 19968: jis0208<<14 | 0x48<<7 | 0x40, - 34524 - 19968: jis0212<<14 | 0x39<<7 | 0x47, - 34526 - 19968: jis0208<<14 | 0x48<<7 | 0x3C, - 34527 - 19968: jis0208<<14 | 0x48<<7 | 0x3F, - 34528 - 19968: jis0212<<14 | 0x39<<7 | 0x48, - 34531 - 19968: jis0212<<14 | 0x39<<7 | 0x49, - 34532 - 19968: jis0208<<14 | 0x27<<7 | 0x19, - 34533 - 19968: jis0212<<14 | 0x39<<7 | 0x4A, - 34535 - 19968: jis0212<<14 | 0x39<<7 | 0x4B, - 34537 - 19968: jis0208<<14 | 0x48<<7 | 0x3D, - 34540 - 19968: jis0208<<14 | 0x48<<7 | 0x3E, - 34541 - 19968: jis0208<<14 | 0x28<<7 | 0x27, - 34542 - 19968: jis0208<<14 | 0x27<<7 | 0x39, - 34543 - 19968: jis0208<<14 | 0x48<<7 | 0x41, - 34552 - 19968: jis0208<<14 | 0x21<<7 | 0x5C, - 34553 - 19968: jis0208<<14 | 0x48<<7 | 0x4B, - 34554 - 19968: jis0212<<14 | 0x39<<7 | 0x4D, - 34555 - 19968: jis0208<<14 | 0x48<<7 | 0x47, - 34556 - 19968: jis0212<<14 | 0x39<<7 | 0x4E, - 34557 - 19968: jis0212<<14 | 0x39<<7 | 0x4F, - 34558 - 19968: jis0208<<14 | 0x11<<7 | 0x4A, - 34560 - 19968: jis0208<<14 | 0x48<<7 | 0x45, - 34562 - 19968: jis0208<<14 | 0x2A<<7 | 0x09, - 34563 - 19968: jis0208<<14 | 0x48<<7 | 0x46, - 34564 - 19968: jis0212<<14 | 0x39<<7 | 0x50, - 34565 - 19968: jis0212<<14 | 0x39<<7 | 0x51, - 34566 - 19968: jis0208<<14 | 0x48<<7 | 0x43, - 34567 - 19968: jis0212<<14 | 0x39<<7 | 0x52, - 34568 - 19968: jis0208<<14 | 0x48<<7 | 0x44, - 34569 - 19968: jis0208<<14 | 0x48<<7 | 0x49, - 34570 - 19968: jis0208<<14 | 0x48<<7 | 0x4C, - 34571 - 19968: jis0212<<14 | 0x39<<7 | 0x53, - 34573 - 19968: jis0208<<14 | 0x48<<7 | 0x4A, - 34574 - 19968: jis0212<<14 | 0x39<<7 | 0x54, - 34575 - 19968: jis0212<<14 | 0x39<<7 | 0x55, - 34576 - 19968: jis0212<<14 | 0x39<<7 | 0x56, - 34577 - 19968: jis0208<<14 | 0x48<<7 | 0x48, - 34578 - 19968: jis0208<<14 | 0x48<<7 | 0x42, - 34579 - 19968: jis0212<<14 | 0x39<<7 | 0x57, - 34580 - 19968: jis0212<<14 | 0x39<<7 | 0x58, - 34584 - 19968: jis0208<<14 | 0x22<<7 | 0x37, - 34585 - 19968: jis0212<<14 | 0x39<<7 | 0x59, - 34586 - 19968: jis0208<<14 | 0x48<<7 | 0x53, - 34588 - 19968: jis0208<<14 | 0x2B<<7 | 0x09, - 34590 - 19968: jis0212<<14 | 0x39<<7 | 0x5A, - 34591 - 19968: jis0212<<14 | 0x39<<7 | 0x5B, - 34593 - 19968: jis0212<<14 | 0x39<<7 | 0x5C, - 34595 - 19968: jis0212<<14 | 0x39<<7 | 0x5D, - 34597 - 19968: jis0208<<14 | 0x48<<7 | 0x51, - 34600 - 19968: jis0212<<14 | 0x3A<<7 | 0x00, - 34601 - 19968: jis0208<<14 | 0x48<<7 | 0x52, - 34606 - 19968: jis0212<<14 | 0x3A<<7 | 0x01, - 34607 - 19968: jis0212<<14 | 0x3A<<7 | 0x02, - 34609 - 19968: jis0212<<14 | 0x3A<<7 | 0x03, - 34610 - 19968: jis0212<<14 | 0x3A<<7 | 0x04, - 34612 - 19968: jis0208<<14 | 0x48<<7 | 0x4D, - 34615 - 19968: jis0208<<14 | 0x48<<7 | 0x4F, - 34617 - 19968: jis0212<<14 | 0x3A<<7 | 0x05, - 34618 - 19968: jis0212<<14 | 0x3A<<7 | 0x06, - 34619 - 19968: jis0208<<14 | 0x48<<7 | 0x50, - 34620 - 19968: jis0212<<14 | 0x3A<<7 | 0x07, - 34621 - 19968: jis0212<<14 | 0x3A<<7 | 0x08, - 34622 - 19968: jis0212<<14 | 0x3A<<7 | 0x09, - 34623 - 19968: jis0208<<14 | 0x48<<7 | 0x4E, - 34624 - 19968: jis0212<<14 | 0x3A<<7 | 0x0A, - 34627 - 19968: jis0212<<14 | 0x3A<<7 | 0x0B, - 34629 - 19968: jis0212<<14 | 0x3A<<7 | 0x0C, - 34633 - 19968: jis0208<<14 | 0x1F<<7 | 0x45, - 34635 - 19968: jis0208<<14 | 0x2E<<7 | 0x18, - 34636 - 19968: jis0208<<14 | 0x48<<7 | 0x57, - 34637 - 19968: jis0212<<14 | 0x3A<<7 | 0x0D, - 34638 - 19968: jis0208<<14 | 0x48<<7 | 0x58, - 34643 - 19968: jis0208<<14 | 0x49<<7 | 0x00, - 34645 - 19968: jis0208<<14 | 0x1E<<7 | 0x09, - 34647 - 19968: jis0208<<14 | 0x48<<7 | 0x5A, - 34648 - 19968: jis0212<<14 | 0x3A<<7 | 0x0E, - 34649 - 19968: jis0208<<14 | 0x48<<7 | 0x5D, - 34653 - 19968: jis0212<<14 | 0x3A<<7 | 0x0F, - 34655 - 19968: jis0208<<14 | 0x48<<7 | 0x55, - 34656 - 19968: jis0208<<14 | 0x48<<7 | 0x54, - 34657 - 19968: jis0212<<14 | 0x3A<<7 | 0x10, - 34659 - 19968: jis0208<<14 | 0x49<<7 | 0x01, - 34660 - 19968: jis0212<<14 | 0x3A<<7 | 0x11, - 34661 - 19968: jis0212<<14 | 0x3A<<7 | 0x12, - 34662 - 19968: jis0208<<14 | 0x11<<7 | 0x3B, - 34664 - 19968: jis0208<<14 | 0x48<<7 | 0x5B, - 34666 - 19968: jis0208<<14 | 0x49<<7 | 0x02, - 34670 - 19968: jis0208<<14 | 0x48<<7 | 0x5C, - 34671 - 19968: jis0212<<14 | 0x3A<<7 | 0x13, - 34673 - 19968: jis0212<<14 | 0x3A<<7 | 0x14, - 34674 - 19968: jis0212<<14 | 0x3A<<7 | 0x15, - 34676 - 19968: jis0208<<14 | 0x48<<7 | 0x59, - 34678 - 19968: jis0208<<14 | 0x23<<7 | 0x12, - 34680 - 19968: jis0208<<14 | 0x48<<7 | 0x56, - 34683 - 19968: jis0212<<14 | 0x3A<<7 | 0x16, - 34687 - 19968: jis0208<<14 | 0x26<<7 | 0x47, - 34690 - 19968: jis0208<<14 | 0x49<<7 | 0x06, - 34691 - 19968: jis0212<<14 | 0x3A<<7 | 0x17, - 34692 - 19968: jis0212<<14 | 0x3A<<7 | 0x18, - 34693 - 19968: jis0212<<14 | 0x3A<<7 | 0x19, - 34694 - 19968: jis0212<<14 | 0x3A<<7 | 0x1A, - 34695 - 19968: jis0212<<14 | 0x3A<<7 | 0x1B, - 34696 - 19968: jis0212<<14 | 0x3A<<7 | 0x1C, - 34697 - 19968: jis0212<<14 | 0x3A<<7 | 0x1D, - 34699 - 19968: jis0212<<14 | 0x3A<<7 | 0x1E, - 34700 - 19968: jis0212<<14 | 0x3A<<7 | 0x1F, - 34701 - 19968: jis0208<<14 | 0x2C<<7 | 0x1A, - 34704 - 19968: jis0212<<14 | 0x3A<<7 | 0x20, - 34707 - 19968: jis0212<<14 | 0x3A<<7 | 0x21, - 34709 - 19968: jis0212<<14 | 0x3A<<7 | 0x22, - 34711 - 19968: jis0212<<14 | 0x3A<<7 | 0x23, - 34712 - 19968: jis0212<<14 | 0x3A<<7 | 0x24, - 34713 - 19968: jis0212<<14 | 0x3A<<7 | 0x25, - 34718 - 19968: jis0212<<14 | 0x3A<<7 | 0x26, - 34719 - 19968: jis0208<<14 | 0x49<<7 | 0x05, - 34720 - 19968: jis0212<<14 | 0x3A<<7 | 0x27, - 34722 - 19968: jis0208<<14 | 0x49<<7 | 0x04, - 34723 - 19968: jis0212<<14 | 0x3A<<7 | 0x28, - 34727 - 19968: jis0212<<14 | 0x3A<<7 | 0x29, - 34731 - 19968: jis0208<<14 | 0x49<<7 | 0x0D, - 34732 - 19968: jis0212<<14 | 0x3A<<7 | 0x2A, - 34733 - 19968: jis0212<<14 | 0x3A<<7 | 0x2B, - 34734 - 19968: jis0212<<14 | 0x3A<<7 | 0x2C, - 34735 - 19968: jis0208<<14 | 0x49<<7 | 0x07, - 34737 - 19968: jis0212<<14 | 0x3A<<7 | 0x2D, - 34739 - 19968: jis0208<<14 | 0x49<<7 | 0x0F, - 34741 - 19968: jis0212<<14 | 0x3A<<7 | 0x2E, - 34746 - 19968: jis0208<<14 | 0x2C<<7 | 0x45, - 34747 - 19968: jis0208<<14 | 0x49<<7 | 0x12, - 34749 - 19968: jis0208<<14 | 0x49<<7 | 0x09, - 34750 - 19968: jis0212<<14 | 0x3A<<7 | 0x2F, - 34751 - 19968: jis0212<<14 | 0x3A<<7 | 0x30, - 34752 - 19968: jis0208<<14 | 0x49<<7 | 0x0A, - 34753 - 19968: jis0212<<14 | 0x3A<<7 | 0x31, - 34756 - 19968: jis0208<<14 | 0x49<<7 | 0x0E, - 34758 - 19968: jis0208<<14 | 0x49<<7 | 0x11, - 34759 - 19968: jis0208<<14 | 0x49<<7 | 0x10, - 34760 - 19968: jis0212<<14 | 0x3A<<7 | 0x32, - 34761 - 19968: jis0212<<14 | 0x3A<<7 | 0x33, - 34762 - 19968: jis0212<<14 | 0x3A<<7 | 0x34, - 34763 - 19968: jis0208<<14 | 0x49<<7 | 0x08, - 34766 - 19968: jis0212<<14 | 0x3A<<7 | 0x35, - 34768 - 19968: jis0208<<14 | 0x49<<7 | 0x0B, - 34770 - 19968: jis0208<<14 | 0x49<<7 | 0x1C, - 34773 - 19968: jis0212<<14 | 0x3A<<7 | 0x36, - 34774 - 19968: jis0212<<14 | 0x3A<<7 | 0x37, - 34777 - 19968: jis0212<<14 | 0x3A<<7 | 0x38, - 34778 - 19968: jis0212<<14 | 0x3A<<7 | 0x39, - 34780 - 19968: jis0212<<14 | 0x3A<<7 | 0x3A, - 34783 - 19968: jis0212<<14 | 0x3A<<7 | 0x3B, - 34784 - 19968: jis0208<<14 | 0x49<<7 | 0x15, - 34786 - 19968: jis0212<<14 | 0x3A<<7 | 0x3C, - 34787 - 19968: jis0212<<14 | 0x3A<<7 | 0x3D, - 34788 - 19968: jis0212<<14 | 0x3A<<7 | 0x3E, - 34794 - 19968: jis0212<<14 | 0x3A<<7 | 0x3F, - 34795 - 19968: jis0212<<14 | 0x3A<<7 | 0x40, - 34797 - 19968: jis0212<<14 | 0x3A<<7 | 0x41, - 34799 - 19968: jis0208<<14 | 0x49<<7 | 0x13, - 34801 - 19968: jis0212<<14 | 0x3A<<7 | 0x42, - 34802 - 19968: jis0208<<14 | 0x49<<7 | 0x14, - 34803 - 19968: jis0212<<14 | 0x3A<<7 | 0x43, - 34806 - 19968: jis0208<<14 | 0x49<<7 | 0x19, - 34807 - 19968: jis0208<<14 | 0x49<<7 | 0x1A, - 34808 - 19968: jis0212<<14 | 0x3A<<7 | 0x44, - 34809 - 19968: jis0208<<14 | 0x12<<7 | 0x09, - 34810 - 19968: jis0212<<14 | 0x3A<<7 | 0x45, - 34811 - 19968: jis0208<<14 | 0x14<<7 | 0x21, - 34814 - 19968: jis0208<<14 | 0x49<<7 | 0x18, - 34815 - 19968: jis0212<<14 | 0x3A<<7 | 0x46, - 34817 - 19968: jis0212<<14 | 0x3A<<7 | 0x47, - 34819 - 19968: jis0212<<14 | 0x3A<<7 | 0x48, - 34821 - 19968: jis0208<<14 | 0x49<<7 | 0x03, - 34822 - 19968: jis0212<<14 | 0x3A<<7 | 0x49, - 34823 - 19968: jis0208<<14 | 0x5A<<7 | 0x44, - 34825 - 19968: jis0212<<14 | 0x3A<<7 | 0x4A, - 34826 - 19968: jis0212<<14 | 0x3A<<7 | 0x4B, - 34827 - 19968: jis0212<<14 | 0x3A<<7 | 0x4C, - 34829 - 19968: jis0208<<14 | 0x49<<7 | 0x17, - 34830 - 19968: jis0208<<14 | 0x49<<7 | 0x1B, - 34831 - 19968: jis0208<<14 | 0x49<<7 | 0x16, - 34832 - 19968: jis0212<<14 | 0x3A<<7 | 0x4D, - 34833 - 19968: jis0208<<14 | 0x49<<7 | 0x1D, - 34834 - 19968: jis0212<<14 | 0x3A<<7 | 0x4F, - 34835 - 19968: jis0212<<14 | 0x3A<<7 | 0x50, - 34836 - 19968: jis0212<<14 | 0x3A<<7 | 0x51, - 34837 - 19968: jis0208<<14 | 0x49<<7 | 0x1F, - 34838 - 19968: jis0208<<14 | 0x49<<7 | 0x1E, - 34840 - 19968: jis0212<<14 | 0x3A<<7 | 0x52, - 34841 - 19968: jis0212<<14 | 0x3A<<7 | 0x4E, - 34842 - 19968: jis0212<<14 | 0x3A<<7 | 0x53, - 34843 - 19968: jis0212<<14 | 0x3A<<7 | 0x54, - 34844 - 19968: jis0212<<14 | 0x3A<<7 | 0x55, - 34846 - 19968: jis0212<<14 | 0x3A<<7 | 0x56, - 34847 - 19968: jis0212<<14 | 0x3A<<7 | 0x57, - 34849 - 19968: jis0208<<14 | 0x49<<7 | 0x21, - 34850 - 19968: jis0208<<14 | 0x49<<7 | 0x20, - 34851 - 19968: jis0208<<14 | 0x48<<7 | 0x39, - 34855 - 19968: jis0208<<14 | 0x49<<7 | 0x25, - 34856 - 19968: jis0212<<14 | 0x3A<<7 | 0x58, - 34861 - 19968: jis0212<<14 | 0x3A<<7 | 0x59, - 34862 - 19968: jis0212<<14 | 0x3A<<7 | 0x5A, - 34864 - 19968: jis0212<<14 | 0x3A<<7 | 0x5B, - 34865 - 19968: jis0208<<14 | 0x49<<7 | 0x22, - 34866 - 19968: jis0212<<14 | 0x3A<<7 | 0x5C, - 34869 - 19968: jis0212<<14 | 0x3A<<7 | 0x5D, - 34870 - 19968: jis0208<<14 | 0x49<<7 | 0x23, - 34873 - 19968: jis0208<<14 | 0x49<<7 | 0x24, - 34874 - 19968: jis0212<<14 | 0x3B<<7 | 0x00, - 34875 - 19968: jis0208<<14 | 0x49<<7 | 0x26, - 34876 - 19968: jis0212<<14 | 0x3B<<7 | 0x01, - 34880 - 19968: jis0208<<14 | 0x16<<7 | 0x4B, - 34881 - 19968: jis0212<<14 | 0x3B<<7 | 0x02, - 34882 - 19968: jis0208<<14 | 0x49<<7 | 0x28, - 34883 - 19968: jis0212<<14 | 0x3B<<7 | 0x03, - 34884 - 19968: jis0208<<14 | 0x49<<7 | 0x27, - 34885 - 19968: jis0212<<14 | 0x3B<<7 | 0x04, - 34886 - 19968: jis0208<<14 | 0x1C<<7 | 0x0F, - 34888 - 19968: jis0212<<14 | 0x3B<<7 | 0x05, - 34889 - 19968: jis0212<<14 | 0x3B<<7 | 0x06, - 34890 - 19968: jis0212<<14 | 0x3B<<7 | 0x07, - 34891 - 19968: jis0212<<14 | 0x3B<<7 | 0x08, - 34892 - 19968: jis0208<<14 | 0x18<<7 | 0x33, - 34893 - 19968: jis0208<<14 | 0x3D<<7 | 0x06, - 34894 - 19968: jis0212<<14 | 0x3B<<7 | 0x09, - 34897 - 19968: jis0212<<14 | 0x3B<<7 | 0x0A, - 34898 - 19968: jis0208<<14 | 0x49<<7 | 0x29, - 34899 - 19968: jis0208<<14 | 0x1C<<7 | 0x30, - 34901 - 19968: jis0212<<14 | 0x3B<<7 | 0x0B, - 34902 - 19968: jis0212<<14 | 0x3B<<7 | 0x0C, - 34903 - 19968: jis0208<<14 | 0x12<<7 | 0x18, - 34904 - 19968: jis0212<<14 | 0x3B<<7 | 0x0D, - 34905 - 19968: jis0208<<14 | 0x49<<7 | 0x2A, - 34906 - 19968: jis0212<<14 | 0x3B<<7 | 0x0E, - 34907 - 19968: jis0208<<14 | 0x10<<7 | 0x31, - 34908 - 19968: jis0212<<14 | 0x3B<<7 | 0x0F, - 34909 - 19968: jis0208<<14 | 0x1D<<7 | 0x36, - 34910 - 19968: jis0208<<14 | 0x49<<7 | 0x2B, - 34911 - 19968: jis0212<<14 | 0x3B<<7 | 0x10, - 34912 - 19968: jis0212<<14 | 0x3B<<7 | 0x11, - 34913 - 19968: jis0208<<14 | 0x18<<7 | 0x34, - 34914 - 19968: jis0208<<14 | 0x49<<7 | 0x2C, - 34915 - 19968: jis0208<<14 | 0x0F<<7 | 0x40, - 34916 - 19968: jis0212<<14 | 0x3B<<7 | 0x12, - 34920 - 19968: jis0208<<14 | 0x28<<7 | 0x1C, - 34921 - 19968: jis0212<<14 | 0x3B<<7 | 0x13, - 34923 - 19968: jis0208<<14 | 0x49<<7 | 0x2D, - 34928 - 19968: jis0208<<14 | 0x1E<<7 | 0x49, - 34929 - 19968: jis0212<<14 | 0x3B<<7 | 0x14, - 34930 - 19968: jis0208<<14 | 0x49<<7 | 0x34, - 34933 - 19968: jis0208<<14 | 0x49<<7 | 0x31, - 34935 - 19968: jis0208<<14 | 0x22<<7 | 0x4E, - 34937 - 19968: jis0212<<14 | 0x3B<<7 | 0x15, - 34939 - 19968: jis0212<<14 | 0x3B<<7 | 0x16, - 34941 - 19968: jis0208<<14 | 0x49<<7 | 0x32, - 34942 - 19968: jis0208<<14 | 0x49<<7 | 0x2F, - 34943 - 19968: jis0208<<14 | 0x15<<7 | 0x3D, - 34944 - 19968: jis0212<<14 | 0x3B<<7 | 0x17, - 34945 - 19968: jis0208<<14 | 0x49<<7 | 0x2E, - 34946 - 19968: jis0208<<14 | 0x49<<7 | 0x35, - 34952 - 19968: jis0208<<14 | 0x16<<7 | 0x15, - 34955 - 19968: jis0208<<14 | 0x21<<7 | 0x3D, - 34957 - 19968: jis0208<<14 | 0x49<<7 | 0x3B, - 34962 - 19968: jis0208<<14 | 0x49<<7 | 0x37, - 34966 - 19968: jis0208<<14 | 0x21<<7 | 0x14, - 34967 - 19968: jis0208<<14 | 0x49<<7 | 0x36, - 34968 - 19968: jis0212<<14 | 0x3B<<7 | 0x18, - 34969 - 19968: jis0208<<14 | 0x49<<7 | 0x39, - 34970 - 19968: jis0212<<14 | 0x3B<<7 | 0x19, - 34971 - 19968: jis0212<<14 | 0x3B<<7 | 0x1A, - 34972 - 19968: jis0212<<14 | 0x3B<<7 | 0x1B, - 34974 - 19968: jis0208<<14 | 0x49<<7 | 0x30, - 34975 - 19968: jis0212<<14 | 0x3B<<7 | 0x1C, - 34976 - 19968: jis0212<<14 | 0x3B<<7 | 0x1D, - 34978 - 19968: jis0208<<14 | 0x49<<7 | 0x3A, - 34980 - 19968: jis0208<<14 | 0x49<<7 | 0x3C, - 34984 - 19968: jis0212<<14 | 0x3B<<7 | 0x1E, - 34986 - 19968: jis0212<<14 | 0x3B<<7 | 0x1F, - 34987 - 19968: jis0208<<14 | 0x27<<7 | 0x4E, - 34990 - 19968: jis0208<<14 | 0x49<<7 | 0x38, - 34992 - 19968: jis0208<<14 | 0x49<<7 | 0x3D, - 34993 - 19968: jis0208<<14 | 0x49<<7 | 0x3F, - 34996 - 19968: jis0208<<14 | 0x17<<7 | 0x32, - 34997 - 19968: jis0208<<14 | 0x49<<7 | 0x33, - 34999 - 19968: jis0208<<14 | 0x0F<<7 | 0x20, - 35002 - 19968: jis0212<<14 | 0x3B<<7 | 0x20, - 35005 - 19968: jis0212<<14 | 0x3B<<7 | 0x21, - 35006 - 19968: jis0212<<14 | 0x3B<<7 | 0x22, - 35007 - 19968: jis0208<<14 | 0x49<<7 | 0x3E, - 35008 - 19968: jis0212<<14 | 0x3B<<7 | 0x23, - 35009 - 19968: jis0208<<14 | 0x19<<7 | 0x3A, - 35010 - 19968: jis0208<<14 | 0x2D<<7 | 0x55, - 35011 - 19968: jis0208<<14 | 0x49<<7 | 0x40, - 35012 - 19968: jis0208<<14 | 0x49<<7 | 0x41, - 35013 - 19968: jis0208<<14 | 0x20<<7 | 0x54, - 35018 - 19968: jis0212<<14 | 0x3B<<7 | 0x24, - 35019 - 19968: jis0212<<14 | 0x3B<<7 | 0x25, - 35020 - 19968: jis0212<<14 | 0x3B<<7 | 0x26, - 35021 - 19968: jis0212<<14 | 0x3B<<7 | 0x27, - 35022 - 19968: jis0212<<14 | 0x3B<<7 | 0x28, - 35023 - 19968: jis0208<<14 | 0x2D<<7 | 0x01, - 35025 - 19968: jis0212<<14 | 0x3B<<7 | 0x29, - 35026 - 19968: jis0212<<14 | 0x3B<<7 | 0x2A, - 35027 - 19968: jis0212<<14 | 0x3B<<7 | 0x2B, - 35028 - 19968: jis0208<<14 | 0x49<<7 | 0x42, - 35029 - 19968: jis0208<<14 | 0x2C<<7 | 0x14, - 35032 - 19968: jis0208<<14 | 0x49<<7 | 0x43, - 35033 - 19968: jis0208<<14 | 0x49<<7 | 0x44, - 35035 - 19968: jis0212<<14 | 0x3B<<7 | 0x2C, - 35036 - 19968: jis0208<<14 | 0x29<<7 | 0x43, - 35037 - 19968: jis0208<<14 | 0x49<<7 | 0x45, - 35038 - 19968: jis0212<<14 | 0x3B<<7 | 0x2D, - 35039 - 19968: jis0208<<14 | 0x19<<7 | 0x1F, - 35041 - 19968: jis0208<<14 | 0x2D<<7 | 0x02, - 35047 - 19968: jis0212<<14 | 0x3B<<7 | 0x2E, - 35048 - 19968: jis0208<<14 | 0x49<<7 | 0x4A, - 35055 - 19968: jis0212<<14 | 0x3B<<7 | 0x2F, - 35056 - 19968: jis0212<<14 | 0x3B<<7 | 0x30, - 35057 - 19968: jis0212<<14 | 0x3B<<7 | 0x31, - 35058 - 19968: jis0208<<14 | 0x49<<7 | 0x4B, - 35059 - 19968: jis0208<<14 | 0x1D<<7 | 0x37, - 35060 - 19968: jis0208<<14 | 0x49<<7 | 0x49, - 35061 - 19968: jis0208<<14 | 0x5A<<7 | 0x45, - 35063 - 19968: jis0212<<14 | 0x3B<<7 | 0x33, - 35064 - 19968: jis0208<<14 | 0x2C<<7 | 0x46, - 35065 - 19968: jis0208<<14 | 0x49<<7 | 0x46, - 35068 - 19968: jis0208<<14 | 0x49<<7 | 0x48, - 35069 - 19968: jis0208<<14 | 0x1F<<7 | 0x1C, - 35070 - 19968: jis0208<<14 | 0x1E<<7 | 0x5D, - 35073 - 19968: jis0212<<14 | 0x3B<<7 | 0x34, - 35074 - 19968: jis0208<<14 | 0x49<<7 | 0x47, - 35076 - 19968: jis0208<<14 | 0x49<<7 | 0x4C, - 35078 - 19968: jis0212<<14 | 0x3B<<7 | 0x35, - 35079 - 19968: jis0208<<14 | 0x29<<7 | 0x02, - 35082 - 19968: jis0208<<14 | 0x49<<7 | 0x4E, - 35084 - 19968: jis0208<<14 | 0x49<<7 | 0x4D, - 35085 - 19968: jis0212<<14 | 0x3B<<7 | 0x36, - 35086 - 19968: jis0212<<14 | 0x3B<<7 | 0x37, - 35087 - 19968: jis0212<<14 | 0x3B<<7 | 0x38, - 35088 - 19968: jis0208<<14 | 0x12<<7 | 0x4B, - 35090 - 19968: jis0208<<14 | 0x2A<<7 | 0x0A, - 35091 - 19968: jis0208<<14 | 0x49<<7 | 0x4F, - 35093 - 19968: jis0212<<14 | 0x3B<<7 | 0x39, - 35094 - 19968: jis0212<<14 | 0x3B<<7 | 0x3A, - 35096 - 19968: jis0212<<14 | 0x3B<<7 | 0x3B, - 35097 - 19968: jis0212<<14 | 0x3B<<7 | 0x3C, - 35098 - 19968: jis0212<<14 | 0x3B<<7 | 0x3D, - 35100 - 19968: jis0208<<14 | 0x58<<7 | 0x01, - 35101 - 19968: jis0208<<14 | 0x49<<7 | 0x5B, - 35102 - 19968: jis0208<<14 | 0x49<<7 | 0x51, - 35104 - 19968: jis0212<<14 | 0x3B<<7 | 0x3F, - 35109 - 19968: jis0208<<14 | 0x49<<7 | 0x52, - 35110 - 19968: jis0212<<14 | 0x3B<<7 | 0x40, - 35111 - 19968: jis0212<<14 | 0x3B<<7 | 0x41, - 35112 - 19968: jis0212<<14 | 0x3B<<7 | 0x42, - 35114 - 19968: jis0208<<14 | 0x49<<7 | 0x53, - 35115 - 19968: jis0208<<14 | 0x49<<7 | 0x54, - 35120 - 19968: jis0212<<14 | 0x3B<<7 | 0x43, - 35121 - 19968: jis0212<<14 | 0x3B<<7 | 0x44, - 35122 - 19968: jis0212<<14 | 0x3B<<7 | 0x45, - 35125 - 19968: jis0212<<14 | 0x3B<<7 | 0x46, - 35126 - 19968: jis0208<<14 | 0x49<<7 | 0x58, - 35128 - 19968: jis0208<<14 | 0x49<<7 | 0x59, - 35129 - 19968: jis0212<<14 | 0x3B<<7 | 0x47, - 35130 - 19968: jis0212<<14 | 0x3B<<7 | 0x48, - 35131 - 19968: jis0208<<14 | 0x49<<7 | 0x57, - 35134 - 19968: jis0212<<14 | 0x3B<<7 | 0x49, - 35136 - 19968: jis0212<<14 | 0x3B<<7 | 0x4A, - 35137 - 19968: jis0208<<14 | 0x49<<7 | 0x55, - 35138 - 19968: jis0212<<14 | 0x3B<<7 | 0x4B, - 35139 - 19968: jis0208<<14 | 0x49<<7 | 0x50, - 35140 - 19968: jis0208<<14 | 0x49<<7 | 0x56, - 35141 - 19968: jis0212<<14 | 0x3B<<7 | 0x4C, - 35142 - 19968: jis0212<<14 | 0x3B<<7 | 0x4D, - 35145 - 19968: jis0212<<14 | 0x3B<<7 | 0x4E, - 35148 - 19968: jis0208<<14 | 0x49<<7 | 0x5A, - 35149 - 19968: jis0208<<14 | 0x4F<<7 | 0x16, - 35151 - 19968: jis0212<<14 | 0x3B<<7 | 0x4F, - 35154 - 19968: jis0212<<14 | 0x3B<<7 | 0x50, - 35158 - 19968: jis0208<<14 | 0x11<<7 | 0x07, - 35159 - 19968: jis0212<<14 | 0x3B<<7 | 0x51, - 35162 - 19968: jis0212<<14 | 0x3B<<7 | 0x52, - 35163 - 19968: jis0212<<14 | 0x3B<<7 | 0x53, - 35164 - 19968: jis0212<<14 | 0x3B<<7 | 0x54, - 35166 - 19968: jis0208<<14 | 0x49<<7 | 0x5D, - 35167 - 19968: jis0208<<14 | 0x15<<7 | 0x3E, - 35168 - 19968: jis0208<<14 | 0x49<<7 | 0x5C, - 35169 - 19968: jis0212<<14 | 0x3B<<7 | 0x55, - 35170 - 19968: jis0212<<14 | 0x3B<<7 | 0x56, - 35171 - 19968: jis0212<<14 | 0x3B<<7 | 0x57, - 35172 - 19968: jis0208<<14 | 0x4A<<7 | 0x01, - 35174 - 19968: jis0208<<14 | 0x4A<<7 | 0x00, - 35178 - 19968: jis0208<<14 | 0x4A<<7 | 0x03, - 35179 - 19968: jis0212<<14 | 0x3B<<7 | 0x58, - 35181 - 19968: jis0208<<14 | 0x4A<<7 | 0x02, - 35182 - 19968: jis0212<<14 | 0x3B<<7 | 0x59, - 35183 - 19968: jis0208<<14 | 0x4A<<7 | 0x04, - 35184 - 19968: jis0212<<14 | 0x3B<<7 | 0x5A, - 35186 - 19968: jis0208<<14 | 0x1C<<7 | 0x10, - 35187 - 19968: jis0212<<14 | 0x3B<<7 | 0x5B, - 35188 - 19968: jis0208<<14 | 0x4A<<7 | 0x05, - 35189 - 19968: jis0212<<14 | 0x3B<<7 | 0x5C, - 35191 - 19968: jis0208<<14 | 0x4A<<7 | 0x06, - 35194 - 19968: jis0212<<14 | 0x3B<<7 | 0x5D, - 35195 - 19968: jis0212<<14 | 0x3C<<7 | 0x00, - 35196 - 19968: jis0212<<14 | 0x3C<<7 | 0x01, - 35197 - 19968: jis0212<<14 | 0x3C<<7 | 0x02, - 35198 - 19968: jis0208<<14 | 0x4A<<7 | 0x07, - 35199 - 19968: jis0208<<14 | 0x1F<<7 | 0x1D, - 35201 - 19968: jis0208<<14 | 0x2C<<7 | 0x36, - 35203 - 19968: jis0208<<14 | 0x4A<<7 | 0x08, - 35206 - 19968: jis0208<<14 | 0x29<<7 | 0x03, - 35207 - 19968: jis0208<<14 | 0x26<<7 | 0x25, - 35208 - 19968: jis0208<<14 | 0x4A<<7 | 0x09, - 35209 - 19968: jis0212<<14 | 0x3C<<7 | 0x03, - 35210 - 19968: jis0208<<14 | 0x4A<<7 | 0x0A, - 35211 - 19968: jis0208<<14 | 0x17<<7 | 0x0A, - 35213 - 19968: jis0212<<14 | 0x3C<<7 | 0x04, - 35215 - 19968: jis0208<<14 | 0x14<<7 | 0x0B, - 35216 - 19968: jis0212<<14 | 0x3C<<7 | 0x05, - 35219 - 19968: jis0208<<14 | 0x4A<<7 | 0x0B, - 35220 - 19968: jis0212<<14 | 0x3C<<7 | 0x06, - 35221 - 19968: jis0212<<14 | 0x3C<<7 | 0x07, - 35222 - 19968: jis0208<<14 | 0x1A<<7 | 0x4A, - 35223 - 19968: jis0208<<14 | 0x26<<7 | 0x20, - 35224 - 19968: jis0208<<14 | 0x4A<<7 | 0x0C, - 35226 - 19968: jis0208<<14 | 0x12<<7 | 0x2F, - 35227 - 19968: jis0212<<14 | 0x3C<<7 | 0x08, - 35228 - 19968: jis0212<<14 | 0x3C<<7 | 0x09, - 35231 - 19968: jis0212<<14 | 0x3C<<7 | 0x0A, - 35232 - 19968: jis0212<<14 | 0x3C<<7 | 0x0B, - 35233 - 19968: jis0208<<14 | 0x4A<<7 | 0x0D, - 35237 - 19968: jis0212<<14 | 0x3C<<7 | 0x0C, - 35238 - 19968: jis0208<<14 | 0x4A<<7 | 0x0F, - 35239 - 19968: jis0208<<14 | 0x2C<<7 | 0x56, - 35241 - 19968: jis0208<<14 | 0x4A<<7 | 0x0E, - 35242 - 19968: jis0208<<14 | 0x1E<<7 | 0x25, - 35244 - 19968: jis0208<<14 | 0x4A<<7 | 0x10, - 35247 - 19968: jis0208<<14 | 0x4A<<7 | 0x11, - 35248 - 19968: jis0212<<14 | 0x3C<<7 | 0x0D, - 35250 - 19968: jis0208<<14 | 0x4A<<7 | 0x12, - 35251 - 19968: jis0208<<14 | 0x13<<7 | 0x30, - 35252 - 19968: jis0212<<14 | 0x3C<<7 | 0x0E, - 35253 - 19968: jis0212<<14 | 0x3C<<7 | 0x0F, - 35254 - 19968: jis0212<<14 | 0x3C<<7 | 0x10, - 35255 - 19968: jis0212<<14 | 0x3C<<7 | 0x11, - 35258 - 19968: jis0208<<14 | 0x4A<<7 | 0x13, - 35260 - 19968: jis0212<<14 | 0x3C<<7 | 0x12, - 35261 - 19968: jis0208<<14 | 0x4A<<7 | 0x14, - 35263 - 19968: jis0208<<14 | 0x4A<<7 | 0x15, - 35264 - 19968: jis0208<<14 | 0x4A<<7 | 0x16, - 35282 - 19968: jis0208<<14 | 0x12<<7 | 0x30, - 35284 - 19968: jis0212<<14 | 0x3C<<7 | 0x13, - 35285 - 19968: jis0212<<14 | 0x3C<<7 | 0x14, - 35286 - 19968: jis0212<<14 | 0x3C<<7 | 0x15, - 35287 - 19968: jis0212<<14 | 0x3C<<7 | 0x16, - 35288 - 19968: jis0212<<14 | 0x3C<<7 | 0x17, - 35290 - 19968: jis0208<<14 | 0x4A<<7 | 0x17, - 35292 - 19968: jis0208<<14 | 0x4A<<7 | 0x18, - 35293 - 19968: jis0208<<14 | 0x4A<<7 | 0x19, - 35299 - 19968: jis0208<<14 | 0x11<<7 | 0x51, - 35301 - 19968: jis0212<<14 | 0x3C<<7 | 0x18, - 35302 - 19968: jis0208<<14 | 0x1E<<7 | 0x07, - 35303 - 19968: jis0208<<14 | 0x4A<<7 | 0x1A, - 35305 - 19968: jis0212<<14 | 0x3C<<7 | 0x19, - 35307 - 19968: jis0212<<14 | 0x3C<<7 | 0x1A, - 35309 - 19968: jis0212<<14 | 0x3C<<7 | 0x1B, - 35313 - 19968: jis0212<<14 | 0x3C<<7 | 0x1C, - 35315 - 19968: jis0212<<14 | 0x3C<<7 | 0x1D, - 35316 - 19968: jis0208<<14 | 0x4A<<7 | 0x1B, - 35318 - 19968: jis0212<<14 | 0x3C<<7 | 0x1E, - 35320 - 19968: jis0208<<14 | 0x4A<<7 | 0x1C, - 35321 - 19968: jis0212<<14 | 0x3C<<7 | 0x1F, - 35325 - 19968: jis0212<<14 | 0x3C<<7 | 0x20, - 35327 - 19968: jis0212<<14 | 0x3C<<7 | 0x21, - 35328 - 19968: jis0208<<14 | 0x17<<7 | 0x1F, - 35330 - 19968: jis0208<<14 | 0x23<<7 | 0x5A, - 35331 - 19968: jis0208<<14 | 0x4A<<7 | 0x1D, - 35332 - 19968: jis0212<<14 | 0x3C<<7 | 0x22, - 35333 - 19968: jis0212<<14 | 0x3C<<7 | 0x23, - 35335 - 19968: jis0212<<14 | 0x3C<<7 | 0x24, - 35336 - 19968: jis0208<<14 | 0x16<<7 | 0x36, - 35338 - 19968: jis0208<<14 | 0x1E<<7 | 0x35, - 35340 - 19968: jis0208<<14 | 0x4A<<7 | 0x20, - 35342 - 19968: jis0208<<14 | 0x25<<7 | 0x03, - 35343 - 19968: jis0212<<14 | 0x3C<<7 | 0x25, - 35344 - 19968: jis0208<<14 | 0x4A<<7 | 0x1F, - 35345 - 19968: jis0212<<14 | 0x3C<<7 | 0x26, - 35346 - 19968: jis0208<<14 | 0x5A<<7 | 0x46, - 35347 - 19968: jis0208<<14 | 0x16<<7 | 0x10, - 35348 - 19968: jis0212<<14 | 0x3C<<7 | 0x28, - 35349 - 19968: jis0212<<14 | 0x3C<<7 | 0x29, - 35350 - 19968: jis0208<<14 | 0x4A<<7 | 0x1E, - 35351 - 19968: jis0208<<14 | 0x21<<7 | 0x56, - 35352 - 19968: jis0208<<14 | 0x14<<7 | 0x0C, - 35355 - 19968: jis0208<<14 | 0x4A<<7 | 0x21, - 35357 - 19968: jis0208<<14 | 0x4A<<7 | 0x22, - 35358 - 19968: jis0212<<14 | 0x3C<<7 | 0x2A, - 35359 - 19968: jis0208<<14 | 0x1D<<7 | 0x38, - 35360 - 19968: jis0212<<14 | 0x3C<<7 | 0x2B, - 35362 - 19968: jis0212<<14 | 0x3C<<7 | 0x2C, - 35363 - 19968: jis0208<<14 | 0x16<<7 | 0x4C, - 35364 - 19968: jis0212<<14 | 0x3C<<7 | 0x2D, - 35365 - 19968: jis0208<<14 | 0x4A<<7 | 0x23, - 35366 - 19968: jis0212<<14 | 0x3C<<7 | 0x2E, - 35370 - 19968: jis0208<<14 | 0x2A<<7 | 0x0B, - 35371 - 19968: jis0212<<14 | 0x3C<<7 | 0x2F, - 35372 - 19968: jis0212<<14 | 0x3C<<7 | 0x30, - 35373 - 19968: jis0208<<14 | 0x1F<<7 | 0x3E, - 35375 - 19968: jis0212<<14 | 0x3C<<7 | 0x31, - 35377 - 19968: jis0208<<14 | 0x14<<7 | 0x55, - 35379 - 19968: jis0208<<14 | 0x2B<<7 | 0x54, - 35380 - 19968: jis0208<<14 | 0x20<<7 | 0x29, - 35381 - 19968: jis0212<<14 | 0x3C<<7 | 0x32, - 35382 - 19968: jis0208<<14 | 0x4A<<7 | 0x24, - 35383 - 19968: jis0208<<14 | 0x5A<<7 | 0x47, - 35386 - 19968: jis0208<<14 | 0x1E<<7 | 0x26, - 35387 - 19968: jis0208<<14 | 0x22<<7 | 0x4F, - 35388 - 19968: jis0208<<14 | 0x1D<<7 | 0x39, - 35389 - 19968: jis0212<<14 | 0x3C<<7 | 0x34, - 35390 - 19968: jis0212<<14 | 0x3C<<7 | 0x35, - 35392 - 19968: jis0212<<14 | 0x3C<<7 | 0x36, - 35393 - 19968: jis0208<<14 | 0x4A<<7 | 0x25, - 35395 - 19968: jis0212<<14 | 0x3C<<7 | 0x37, - 35397 - 19968: jis0212<<14 | 0x3C<<7 | 0x38, - 35398 - 19968: jis0208<<14 | 0x4A<<7 | 0x28, - 35399 - 19968: jis0212<<14 | 0x3C<<7 | 0x39, - 35400 - 19968: jis0208<<14 | 0x4A<<7 | 0x29, - 35401 - 19968: jis0212<<14 | 0x3C<<7 | 0x3A, - 35405 - 19968: jis0212<<14 | 0x3C<<7 | 0x3B, - 35406 - 19968: jis0212<<14 | 0x3C<<7 | 0x3C, - 35408 - 19968: jis0208<<14 | 0x19<<7 | 0x1D, - 35409 - 19968: jis0208<<14 | 0x21<<7 | 0x21, - 35410 - 19968: jis0208<<14 | 0x4A<<7 | 0x27, - 35411 - 19968: jis0212<<14 | 0x3C<<7 | 0x3D, - 35412 - 19968: jis0208<<14 | 0x1D<<7 | 0x3A, - 35413 - 19968: jis0208<<14 | 0x28<<7 | 0x1D, - 35414 - 19968: jis0212<<14 | 0x3C<<7 | 0x3E, - 35415 - 19968: jis0212<<14 | 0x3C<<7 | 0x3F, - 35416 - 19968: jis0212<<14 | 0x3C<<7 | 0x40, - 35419 - 19968: jis0208<<14 | 0x4A<<7 | 0x26, - 35420 - 19968: jis0212<<14 | 0x3C<<7 | 0x41, - 35421 - 19968: jis0212<<14 | 0x3C<<7 | 0x42, - 35422 - 19968: jis0208<<14 | 0x1A<<7 | 0x4B, - 35424 - 19968: jis0208<<14 | 0x10<<7 | 0x32, - 35425 - 19968: jis0212<<14 | 0x3C<<7 | 0x43, - 35426 - 19968: jis0208<<14 | 0x4A<<7 | 0x2D, - 35427 - 19968: jis0208<<14 | 0x16<<7 | 0x37, - 35429 - 19968: jis0212<<14 | 0x3C<<7 | 0x44, - 35430 - 19968: jis0208<<14 | 0x1A<<7 | 0x4D, - 35431 - 19968: jis0212<<14 | 0x3C<<7 | 0x45, - 35433 - 19968: jis0208<<14 | 0x1A<<7 | 0x4C, - 35435 - 19968: jis0208<<14 | 0x2E<<7 | 0x2C, - 35436 - 19968: jis0208<<14 | 0x4A<<7 | 0x2C, - 35437 - 19968: jis0208<<14 | 0x4A<<7 | 0x2B, - 35438 - 19968: jis0208<<14 | 0x20<<7 | 0x06, - 35440 - 19968: jis0208<<14 | 0x14<<7 | 0x2C, - 35441 - 19968: jis0208<<14 | 0x2E<<7 | 0x22, - 35442 - 19968: jis0208<<14 | 0x12<<7 | 0x19, - 35443 - 19968: jis0208<<14 | 0x1D<<7 | 0x3B, - 35445 - 19968: jis0212<<14 | 0x3C<<7 | 0x46, - 35446 - 19968: jis0212<<14 | 0x3C<<7 | 0x47, - 35447 - 19968: jis0212<<14 | 0x3C<<7 | 0x48, - 35449 - 19968: jis0208<<14 | 0x5A<<7 | 0x48, - 35450 - 19968: jis0212<<14 | 0x3C<<7 | 0x4A, - 35451 - 19968: jis0212<<14 | 0x3C<<7 | 0x4B, - 35452 - 19968: jis0208<<14 | 0x4A<<7 | 0x2A, - 35454 - 19968: jis0212<<14 | 0x3C<<7 | 0x4C, - 35455 - 19968: jis0212<<14 | 0x3C<<7 | 0x4D, - 35456 - 19968: jis0212<<14 | 0x3C<<7 | 0x4E, - 35458 - 19968: jis0208<<14 | 0x4A<<7 | 0x2F, - 35459 - 19968: jis0212<<14 | 0x3C<<7 | 0x4F, - 35460 - 19968: jis0208<<14 | 0x4A<<7 | 0x30, - 35461 - 19968: jis0208<<14 | 0x4A<<7 | 0x2E, - 35462 - 19968: jis0212<<14 | 0x3C<<7 | 0x50, - 35463 - 19968: jis0208<<14 | 0x17<<7 | 0x37, - 35465 - 19968: jis0208<<14 | 0x2C<<7 | 0x1F, - 35467 - 19968: jis0212<<14 | 0x3C<<7 | 0x51, - 35468 - 19968: jis0208<<14 | 0x1A<<7 | 0x4E, - 35469 - 19968: jis0208<<14 | 0x26<<7 | 0x06, - 35471 - 19968: jis0212<<14 | 0x3C<<7 | 0x52, - 35472 - 19968: jis0212<<14 | 0x3C<<7 | 0x53, - 35473 - 19968: jis0208<<14 | 0x4A<<7 | 0x33, - 35474 - 19968: jis0212<<14 | 0x3C<<7 | 0x54, - 35475 - 19968: jis0208<<14 | 0x1F<<7 | 0x1F, - 35477 - 19968: jis0208<<14 | 0x22<<7 | 0x21, - 35478 - 19968: jis0212<<14 | 0x3C<<7 | 0x55, - 35479 - 19968: jis0212<<14 | 0x3C<<7 | 0x56, - 35480 - 19968: jis0208<<14 | 0x2C<<7 | 0x15, - 35481 - 19968: jis0212<<14 | 0x3C<<7 | 0x57, - 35482 - 19968: jis0208<<14 | 0x4A<<7 | 0x36, - 35486 - 19968: jis0208<<14 | 0x17<<7 | 0x4B, - 35487 - 19968: jis0212<<14 | 0x3C<<7 | 0x58, - 35488 - 19968: jis0208<<14 | 0x1F<<7 | 0x1E, - 35489 - 19968: jis0208<<14 | 0x4A<<7 | 0x32, - 35491 - 19968: jis0208<<14 | 0x4A<<7 | 0x37, - 35492 - 19968: jis0208<<14 | 0x17<<7 | 0x4C, - 35493 - 19968: jis0208<<14 | 0x4A<<7 | 0x34, - 35494 - 19968: jis0208<<14 | 0x4A<<7 | 0x35, - 35495 - 19968: jis0208<<14 | 0x5A<<7 | 0x49, - 35496 - 19968: jis0208<<14 | 0x4A<<7 | 0x31, - 35497 - 19968: jis0212<<14 | 0x3C<<7 | 0x5A, - 35500 - 19968: jis0208<<14 | 0x1F<<7 | 0x41, - 35501 - 19968: jis0208<<14 | 0x25<<7 | 0x28, - 35502 - 19968: jis0212<<14 | 0x3C<<7 | 0x5B, - 35503 - 19968: jis0212<<14 | 0x3C<<7 | 0x5C, - 35504 - 19968: jis0208<<14 | 0x22<<7 | 0x0E, - 35506 - 19968: jis0208<<14 | 0x11<<7 | 0x3C, - 35507 - 19968: jis0212<<14 | 0x3C<<7 | 0x5D, - 35510 - 19968: jis0212<<14 | 0x3D<<7 | 0x00, - 35511 - 19968: jis0212<<14 | 0x3D<<7 | 0x01, - 35513 - 19968: jis0208<<14 | 0x27<<7 | 0x4F, - 35515 - 19968: jis0212<<14 | 0x3D<<7 | 0x02, - 35516 - 19968: jis0208<<14 | 0x14<<7 | 0x22, - 35518 - 19968: jis0208<<14 | 0x5A<<7 | 0x4A, - 35519 - 19968: jis0208<<14 | 0x23<<7 | 0x13, - 35522 - 19968: jis0208<<14 | 0x4A<<7 | 0x3A, - 35523 - 19968: jis0212<<14 | 0x3D<<7 | 0x04, - 35524 - 19968: jis0208<<14 | 0x4A<<7 | 0x38, - 35526 - 19968: jis0212<<14 | 0x3D<<7 | 0x05, - 35527 - 19968: jis0208<<14 | 0x22<<7 | 0x2B, - 35528 - 19968: jis0212<<14 | 0x3D<<7 | 0x06, - 35529 - 19968: jis0212<<14 | 0x3D<<7 | 0x07, - 35530 - 19968: jis0212<<14 | 0x3D<<7 | 0x08, - 35531 - 19968: jis0208<<14 | 0x1F<<7 | 0x20, - 35532 - 19968: jis0208<<14 | 0x13<<7 | 0x31, - 35533 - 19968: jis0208<<14 | 0x4A<<7 | 0x39, - 35535 - 19968: jis0208<<14 | 0x1E<<7 | 0x3A, - 35537 - 19968: jis0212<<14 | 0x3D<<7 | 0x09, - 35538 - 19968: jis0208<<14 | 0x2D<<7 | 0x29, - 35539 - 19968: jis0212<<14 | 0x3D<<7 | 0x0A, - 35540 - 19968: jis0212<<14 | 0x3D<<7 | 0x0B, - 35541 - 19968: jis0212<<14 | 0x3D<<7 | 0x0C, - 35542 - 19968: jis0208<<14 | 0x2E<<7 | 0x1F, - 35543 - 19968: jis0212<<14 | 0x3D<<7 | 0x0D, - 35546 - 19968: jis0208<<14 | 0x4A<<7 | 0x3B, - 35547 - 19968: jis0208<<14 | 0x4A<<7 | 0x46, - 35548 - 19968: jis0208<<14 | 0x23<<7 | 0x14, - 35549 - 19968: jis0212<<14 | 0x3D<<7 | 0x0E, - 35550 - 19968: jis0208<<14 | 0x4A<<7 | 0x45, - 35551 - 19968: jis0208<<14 | 0x5A<<7 | 0x4B, - 35552 - 19968: jis0208<<14 | 0x4A<<7 | 0x42, - 35553 - 19968: jis0208<<14 | 0x4A<<7 | 0x4A, - 35554 - 19968: jis0208<<14 | 0x4A<<7 | 0x43, - 35556 - 19968: jis0208<<14 | 0x4A<<7 | 0x3F, - 35558 - 19968: jis0208<<14 | 0x23<<7 | 0x5B, - 35559 - 19968: jis0208<<14 | 0x4A<<7 | 0x3E, - 35563 - 19968: jis0208<<14 | 0x4A<<7 | 0x3C, - 35564 - 19968: jis0212<<14 | 0x3D<<7 | 0x10, - 35565 - 19968: jis0208<<14 | 0x2C<<7 | 0x00, - 35566 - 19968: jis0208<<14 | 0x1A<<7 | 0x4F, - 35568 - 19968: jis0212<<14 | 0x3D<<7 | 0x11, - 35569 - 19968: jis0208<<14 | 0x4A<<7 | 0x40, - 35571 - 19968: jis0208<<14 | 0x4A<<7 | 0x3D, - 35572 - 19968: jis0212<<14 | 0x3D<<7 | 0x12, - 35573 - 19968: jis0212<<14 | 0x3D<<7 | 0x13, - 35574 - 19968: jis0208<<14 | 0x5A<<7 | 0x4D, - 35575 - 19968: jis0208<<14 | 0x4A<<7 | 0x44, - 35576 - 19968: jis0208<<14 | 0x1C<<7 | 0x53, - 35578 - 19968: jis0208<<14 | 0x17<<7 | 0x20, - 35580 - 19968: jis0212<<14 | 0x3D<<7 | 0x15, - 35582 - 19968: jis0208<<14 | 0x21<<7 | 0x59, - 35583 - 19968: jis0212<<14 | 0x3D<<7 | 0x16, - 35584 - 19968: jis0208<<14 | 0x2A<<7 | 0x24, - 35585 - 19968: jis0208<<14 | 0x10<<7 | 0x39, - 35586 - 19968: jis0208<<14 | 0x0F<<7 | 0x41, - 35588 - 19968: jis0208<<14 | 0x25<<7 | 0x04, - 35589 - 19968: jis0212<<14 | 0x3D<<7 | 0x17, - 35590 - 19968: jis0212<<14 | 0x3D<<7 | 0x18, - 35591 - 19968: jis0208<<14 | 0x4A<<7 | 0x48, - 35594 - 19968: jis0212<<14 | 0x3D<<7 | 0x1E, - 35595 - 19968: jis0212<<14 | 0x3D<<7 | 0x19, - 35596 - 19968: jis0208<<14 | 0x4A<<7 | 0x47, - 35598 - 19968: jis0208<<14 | 0x25<<7 | 0x45, - 35600 - 19968: jis0208<<14 | 0x4A<<7 | 0x4C, - 35601 - 19968: jis0212<<14 | 0x3D<<7 | 0x1A, - 35604 - 19968: jis0208<<14 | 0x4A<<7 | 0x41, - 35606 - 19968: jis0208<<14 | 0x4A<<7 | 0x4B, - 35607 - 19968: jis0208<<14 | 0x4A<<7 | 0x4D, - 35609 - 19968: jis0208<<14 | 0x17<<7 | 0x0B, - 35610 - 19968: jis0208<<14 | 0x4A<<7 | 0x49, - 35611 - 19968: jis0208<<14 | 0x18<<7 | 0x35, - 35612 - 19968: jis0212<<14 | 0x3D<<7 | 0x1B, - 35613 - 19968: jis0208<<14 | 0x1B<<7 | 0x34, - 35614 - 19968: jis0212<<14 | 0x3D<<7 | 0x1C, - 35615 - 19968: jis0212<<14 | 0x3D<<7 | 0x1D, - 35616 - 19968: jis0208<<14 | 0x4A<<7 | 0x4E, - 35617 - 19968: jis0208<<14 | 0x2C<<7 | 0x37, - 35622 - 19968: jis0208<<14 | 0x4A<<7 | 0x51, - 35624 - 19968: jis0208<<14 | 0x4A<<7 | 0x54, - 35627 - 19968: jis0208<<14 | 0x4A<<7 | 0x52, - 35628 - 19968: jis0208<<14 | 0x28<<7 | 0x14, - 35629 - 19968: jis0212<<14 | 0x3D<<7 | 0x1F, - 35632 - 19968: jis0212<<14 | 0x3D<<7 | 0x20, - 35635 - 19968: jis0208<<14 | 0x4A<<7 | 0x4F, - 35639 - 19968: jis0212<<14 | 0x3D<<7 | 0x21, - 35641 - 19968: jis0208<<14 | 0x15<<7 | 0x3F, - 35644 - 19968: jis0212<<14 | 0x3D<<7 | 0x22, - 35646 - 19968: jis0208<<14 | 0x4A<<7 | 0x53, - 35649 - 19968: jis0208<<14 | 0x4A<<7 | 0x55, - 35650 - 19968: jis0212<<14 | 0x3D<<7 | 0x23, - 35651 - 19968: jis0212<<14 | 0x3D<<7 | 0x24, - 35652 - 19968: jis0212<<14 | 0x3D<<7 | 0x25, - 35653 - 19968: jis0212<<14 | 0x3D<<7 | 0x26, - 35654 - 19968: jis0212<<14 | 0x3D<<7 | 0x27, - 35656 - 19968: jis0212<<14 | 0x3D<<7 | 0x28, - 35657 - 19968: jis0208<<14 | 0x4A<<7 | 0x59, - 35660 - 19968: jis0208<<14 | 0x4A<<7 | 0x56, - 35661 - 19968: jis0212<<14 | 0x3D<<7 | 0x2D, - 35662 - 19968: jis0208<<14 | 0x4A<<7 | 0x58, - 35663 - 19968: jis0208<<14 | 0x4A<<7 | 0x57, - 35666 - 19968: jis0212<<14 | 0x3D<<7 | 0x29, - 35667 - 19968: jis0208<<14 | 0x5A<<7 | 0x4E, - 35668 - 19968: jis0212<<14 | 0x3D<<7 | 0x2B, - 35670 - 19968: jis0208<<14 | 0x4A<<7 | 0x5A, - 35672 - 19968: jis0208<<14 | 0x1B<<7 | 0x10, - 35673 - 19968: jis0212<<14 | 0x3D<<7 | 0x2C, - 35674 - 19968: jis0208<<14 | 0x4A<<7 | 0x5C, - 35675 - 19968: jis0208<<14 | 0x4A<<7 | 0x5B, - 35676 - 19968: jis0208<<14 | 0x28<<7 | 0x47, - 35678 - 19968: jis0212<<14 | 0x3D<<7 | 0x2E, - 35679 - 19968: jis0208<<14 | 0x4B<<7 | 0x00, - 35683 - 19968: jis0212<<14 | 0x3D<<7 | 0x2F, - 35686 - 19968: jis0208<<14 | 0x16<<7 | 0x38, - 35691 - 19968: jis0208<<14 | 0x4A<<7 | 0x5D, - 35692 - 19968: jis0208<<14 | 0x4B<<7 | 0x01, - 35693 - 19968: jis0212<<14 | 0x3D<<7 | 0x30, - 35695 - 19968: jis0208<<14 | 0x4B<<7 | 0x02, - 35696 - 19968: jis0208<<14 | 0x14<<7 | 0x23, - 35697 - 19968: jis0208<<14 | 0x45<<7 | 0x20, - 35698 - 19968: jis0208<<14 | 0x1D<<7 | 0x58, - 35700 - 19968: jis0208<<14 | 0x4B<<7 | 0x03, - 35702 - 19968: jis0212<<14 | 0x3D<<7 | 0x31, - 35703 - 19968: jis0208<<14 | 0x17<<7 | 0x4D, - 35704 - 19968: jis0212<<14 | 0x3D<<7 | 0x32, - 35705 - 19968: jis0212<<14 | 0x3D<<7 | 0x33, - 35708 - 19968: jis0212<<14 | 0x3D<<7 | 0x34, - 35709 - 19968: jis0208<<14 | 0x4B<<7 | 0x04, - 35710 - 19968: jis0212<<14 | 0x3D<<7 | 0x35, - 35711 - 19968: jis0208<<14 | 0x5A<<7 | 0x4F, - 35712 - 19968: jis0208<<14 | 0x4B<<7 | 0x05, - 35713 - 19968: jis0212<<14 | 0x3D<<7 | 0x36, - 35715 - 19968: jis0208<<14 | 0x1A<<7 | 0x1D, - 35716 - 19968: jis0212<<14 | 0x3D<<7 | 0x37, - 35717 - 19968: jis0212<<14 | 0x3D<<7 | 0x38, - 35722 - 19968: jis0208<<14 | 0x39<<7 | 0x2D, - 35723 - 19968: jis0212<<14 | 0x3D<<7 | 0x39, - 35724 - 19968: jis0208<<14 | 0x4B<<7 | 0x06, - 35725 - 19968: jis0212<<14 | 0x3D<<7 | 0x3A, - 35726 - 19968: jis0208<<14 | 0x4B<<7 | 0x07, - 35727 - 19968: jis0212<<14 | 0x3D<<7 | 0x3B, - 35728 - 19968: jis0208<<14 | 0x1C<<7 | 0x11, - 35730 - 19968: jis0208<<14 | 0x4B<<7 | 0x08, - 35731 - 19968: jis0208<<14 | 0x4B<<7 | 0x09, - 35732 - 19968: jis0212<<14 | 0x3D<<7 | 0x3C, - 35733 - 19968: jis0212<<14 | 0x3D<<7 | 0x3D, - 35734 - 19968: jis0208<<14 | 0x4B<<7 | 0x0A, - 35737 - 19968: jis0208<<14 | 0x4B<<7 | 0x0B, - 35738 - 19968: jis0208<<14 | 0x4B<<7 | 0x0C, - 35740 - 19968: jis0212<<14 | 0x3D<<7 | 0x3E, - 35742 - 19968: jis0212<<14 | 0x3D<<7 | 0x3F, - 35743 - 19968: jis0212<<14 | 0x3D<<7 | 0x40, - 35895 - 19968: jis0208<<14 | 0x22<<7 | 0x0A, - 35896 - 19968: jis0212<<14 | 0x3D<<7 | 0x41, - 35897 - 19968: jis0212<<14 | 0x3D<<7 | 0x42, - 35898 - 19968: jis0208<<14 | 0x4B<<7 | 0x0D, - 35901 - 19968: jis0212<<14 | 0x3D<<7 | 0x43, - 35902 - 19968: jis0212<<14 | 0x3D<<7 | 0x44, - 35903 - 19968: jis0208<<14 | 0x4B<<7 | 0x0F, - 35905 - 19968: jis0208<<14 | 0x4B<<7 | 0x0E, - 35909 - 19968: jis0212<<14 | 0x3D<<7 | 0x45, - 35910 - 19968: jis0208<<14 | 0x25<<7 | 0x05, - 35911 - 19968: jis0212<<14 | 0x3D<<7 | 0x46, - 35912 - 19968: jis0208<<14 | 0x4B<<7 | 0x10, - 35913 - 19968: jis0212<<14 | 0x3D<<7 | 0x47, - 35914 - 19968: jis0208<<14 | 0x2A<<7 | 0x0C, - 35915 - 19968: jis0212<<14 | 0x3D<<7 | 0x48, - 35916 - 19968: jis0208<<14 | 0x4B<<7 | 0x11, - 35918 - 19968: jis0208<<14 | 0x4B<<7 | 0x12, - 35919 - 19968: jis0212<<14 | 0x3D<<7 | 0x49, - 35920 - 19968: jis0208<<14 | 0x4B<<7 | 0x13, - 35921 - 19968: jis0212<<14 | 0x3D<<7 | 0x4A, - 35923 - 19968: jis0212<<14 | 0x3D<<7 | 0x4B, - 35924 - 19968: jis0212<<14 | 0x3D<<7 | 0x4C, - 35925 - 19968: jis0208<<14 | 0x4B<<7 | 0x14, - 35927 - 19968: jis0212<<14 | 0x3D<<7 | 0x4D, - 35928 - 19968: jis0212<<14 | 0x3D<<7 | 0x4E, - 35929 - 19968: jis0212<<14 | 0x3D<<7 | 0x51, - 35930 - 19968: jis0208<<14 | 0x25<<7 | 0x39, - 35931 - 19968: jis0212<<14 | 0x3D<<7 | 0x4F, - 35933 - 19968: jis0212<<14 | 0x3D<<7 | 0x50, - 35937 - 19968: jis0208<<14 | 0x1D<<7 | 0x3C, - 35938 - 19968: jis0208<<14 | 0x4B<<7 | 0x15, - 35939 - 19968: jis0212<<14 | 0x3D<<7 | 0x52, - 35940 - 19968: jis0212<<14 | 0x3D<<7 | 0x53, - 35942 - 19968: jis0212<<14 | 0x3D<<7 | 0x54, - 35944 - 19968: jis0212<<14 | 0x3D<<7 | 0x55, - 35945 - 19968: jis0212<<14 | 0x3D<<7 | 0x56, - 35946 - 19968: jis0208<<14 | 0x18<<7 | 0x4A, - 35947 - 19968: jis0208<<14 | 0x2F<<7 | 0x0D, - 35948 - 19968: jis0208<<14 | 0x4B<<7 | 0x16, - 35949 - 19968: jis0212<<14 | 0x3D<<7 | 0x57, - 35955 - 19968: jis0212<<14 | 0x3D<<7 | 0x58, - 35957 - 19968: jis0212<<14 | 0x3D<<7 | 0x59, - 35958 - 19968: jis0212<<14 | 0x3D<<7 | 0x5A, - 35960 - 19968: jis0208<<14 | 0x4B<<7 | 0x17, - 35961 - 19968: jis0208<<14 | 0x28<<7 | 0x1E, - 35962 - 19968: jis0208<<14 | 0x4B<<7 | 0x18, - 35963 - 19968: jis0212<<14 | 0x3D<<7 | 0x5B, - 35964 - 19968: jis0208<<14 | 0x4B<<7 | 0x20, - 35966 - 19968: jis0212<<14 | 0x3D<<7 | 0x5C, - 35970 - 19968: jis0208<<14 | 0x4B<<7 | 0x19, - 35973 - 19968: jis0208<<14 | 0x4B<<7 | 0x1B, - 35974 - 19968: jis0212<<14 | 0x3D<<7 | 0x5D, - 35975 - 19968: jis0212<<14 | 0x3E<<7 | 0x00, - 35977 - 19968: jis0208<<14 | 0x4B<<7 | 0x1A, - 35978 - 19968: jis0208<<14 | 0x4B<<7 | 0x1C, - 35979 - 19968: jis0212<<14 | 0x3E<<7 | 0x01, - 35980 - 19968: jis0208<<14 | 0x2A<<7 | 0x25, - 35981 - 19968: jis0208<<14 | 0x4B<<7 | 0x1D, - 35982 - 19968: jis0208<<14 | 0x4B<<7 | 0x1E, - 35984 - 19968: jis0212<<14 | 0x3E<<7 | 0x02, - 35986 - 19968: jis0212<<14 | 0x3E<<7 | 0x03, - 35987 - 19968: jis0212<<14 | 0x3E<<7 | 0x04, - 35988 - 19968: jis0208<<14 | 0x4B<<7 | 0x1F, - 35992 - 19968: jis0208<<14 | 0x4B<<7 | 0x21, - 35993 - 19968: jis0212<<14 | 0x3E<<7 | 0x05, - 35995 - 19968: jis0212<<14 | 0x3E<<7 | 0x06, - 35996 - 19968: jis0212<<14 | 0x3E<<7 | 0x07, - 35997 - 19968: jis0208<<14 | 0x12<<7 | 0x0C, - 35998 - 19968: jis0208<<14 | 0x23<<7 | 0x46, - 36000 - 19968: jis0208<<14 | 0x28<<7 | 0x48, - 36001 - 19968: jis0208<<14 | 0x19<<7 | 0x41, - 36002 - 19968: jis0208<<14 | 0x18<<7 | 0x36, - 36004 - 19968: jis0212<<14 | 0x3E<<7 | 0x08, - 36007 - 19968: jis0208<<14 | 0x28<<7 | 0x2E, - 36008 - 19968: jis0208<<14 | 0x11<<7 | 0x3E, - 36009 - 19968: jis0208<<14 | 0x27<<7 | 0x2D, - 36010 - 19968: jis0208<<14 | 0x4B<<7 | 0x24, - 36011 - 19968: jis0208<<14 | 0x13<<7 | 0x32, - 36012 - 19968: jis0208<<14 | 0x1F<<7 | 0x34, - 36013 - 19968: jis0208<<14 | 0x4B<<7 | 0x23, - 36014 - 19968: jis0208<<14 | 0x4B<<7 | 0x28, - 36015 - 19968: jis0208<<14 | 0x22<<7 | 0x58, - 36016 - 19968: jis0208<<14 | 0x2B<<7 | 0x42, - 36018 - 19968: jis0208<<14 | 0x4B<<7 | 0x26, - 36019 - 19968: jis0208<<14 | 0x4B<<7 | 0x27, - 36020 - 19968: jis0208<<14 | 0x14<<7 | 0x0D, - 36022 - 19968: jis0208<<14 | 0x4B<<7 | 0x29, - 36023 - 19968: jis0208<<14 | 0x26<<7 | 0x42, - 36024 - 19968: jis0208<<14 | 0x21<<7 | 0x3E, - 36025 - 19968: jis0212<<14 | 0x3E<<7 | 0x09, - 36026 - 19968: jis0212<<14 | 0x3E<<7 | 0x0A, - 36027 - 19968: jis0208<<14 | 0x27<<7 | 0x50, - 36028 - 19968: jis0208<<14 | 0x24<<7 | 0x1C, - 36029 - 19968: jis0208<<14 | 0x4B<<7 | 0x25, - 36031 - 19968: jis0208<<14 | 0x2A<<7 | 0x26, - 36032 - 19968: jis0208<<14 | 0x11<<7 | 0x4B, - 36033 - 19968: jis0208<<14 | 0x4B<<7 | 0x2B, - 36034 - 19968: jis0208<<14 | 0x2E<<7 | 0x07, - 36035 - 19968: jis0208<<14 | 0x23<<7 | 0x21, - 36036 - 19968: jis0208<<14 | 0x2E<<7 | 0x24, - 36037 - 19968: jis0212<<14 | 0x3E<<7 | 0x0B, - 36038 - 19968: jis0212<<14 | 0x3E<<7 | 0x0C, - 36039 - 19968: jis0208<<14 | 0x1A<<7 | 0x50, - 36040 - 19968: jis0208<<14 | 0x4B<<7 | 0x2A, - 36041 - 19968: jis0212<<14 | 0x3E<<7 | 0x0D, - 36042 - 19968: jis0208<<14 | 0x21<<7 | 0x10, - 36043 - 19968: jis0212<<14 | 0x3E<<7 | 0x0E, - 36045 - 19968: jis0208<<14 | 0x4B<<7 | 0x3B, - 36046 - 19968: jis0208<<14 | 0x20<<7 | 0x07, - 36047 - 19968: jis0212<<14 | 0x3E<<7 | 0x0F, - 36049 - 19968: jis0208<<14 | 0x25<<7 | 0x57, - 36051 - 19968: jis0208<<14 | 0x28<<7 | 0x2F, - 36053 - 19968: jis0212<<14 | 0x3E<<7 | 0x11, - 36054 - 19968: jis0212<<14 | 0x3E<<7 | 0x10, - 36057 - 19968: jis0212<<14 | 0x3E<<7 | 0x12, - 36058 - 19968: jis0208<<14 | 0x4B<<7 | 0x2E, - 36059 - 19968: jis0208<<14 | 0x1A<<7 | 0x1E, - 36060 - 19968: jis0208<<14 | 0x1A<<7 | 0x51, - 36061 - 19968: jis0212<<14 | 0x3E<<7 | 0x13, - 36062 - 19968: jis0208<<14 | 0x1D<<7 | 0x3D, - 36064 - 19968: jis0208<<14 | 0x26<<7 | 0x44, - 36065 - 19968: jis0212<<14 | 0x3E<<7 | 0x14, - 36066 - 19968: jis0208<<14 | 0x17<<7 | 0x0C, - 36067 - 19968: jis0208<<14 | 0x4B<<7 | 0x2D, - 36068 - 19968: jis0208<<14 | 0x4B<<7 | 0x2C, - 36070 - 19968: jis0208<<14 | 0x28<<7 | 0x49, - 36072 - 19968: jis0212<<14 | 0x3E<<7 | 0x15, - 36074 - 19968: jis0208<<14 | 0x1B<<7 | 0x20, - 36076 - 19968: jis0212<<14 | 0x3E<<7 | 0x16, - 36077 - 19968: jis0208<<14 | 0x24<<7 | 0x31, - 36079 - 19968: jis0212<<14 | 0x3E<<7 | 0x17, - 36080 - 19968: jis0208<<14 | 0x5A<<7 | 0x50, - 36082 - 19968: jis0212<<14 | 0x3E<<7 | 0x19, - 36084 - 19968: jis0208<<14 | 0x5A<<7 | 0x51, - 36085 - 19968: jis0212<<14 | 0x3E<<7 | 0x1A, - 36087 - 19968: jis0212<<14 | 0x3E<<7 | 0x1B, - 36088 - 19968: jis0212<<14 | 0x3E<<7 | 0x1C, - 36090 - 19968: jis0208<<14 | 0x4B<<7 | 0x30, - 36091 - 19968: jis0208<<14 | 0x4B<<7 | 0x31, - 36092 - 19968: jis0208<<14 | 0x18<<7 | 0x37, - 36093 - 19968: jis0208<<14 | 0x4B<<7 | 0x2F, - 36094 - 19968: jis0212<<14 | 0x3E<<7 | 0x1D, - 36095 - 19968: jis0212<<14 | 0x3E<<7 | 0x1E, - 36097 - 19968: jis0212<<14 | 0x3E<<7 | 0x1F, - 36099 - 19968: jis0212<<14 | 0x3E<<7 | 0x20, - 36100 - 19968: jis0208<<14 | 0x4B<<7 | 0x32, - 36101 - 19968: jis0208<<14 | 0x4B<<7 | 0x33, - 36103 - 19968: jis0208<<14 | 0x4B<<7 | 0x35, - 36104 - 19968: jis0208<<14 | 0x21<<7 | 0x02, - 36105 - 19968: jis0212<<14 | 0x3E<<7 | 0x21, - 36106 - 19968: jis0208<<14 | 0x4B<<7 | 0x34, - 36107 - 19968: jis0208<<14 | 0x13<<7 | 0x45, - 36109 - 19968: jis0208<<14 | 0x4B<<7 | 0x37, - 36111 - 19968: jis0208<<14 | 0x4B<<7 | 0x36, - 36112 - 19968: jis0208<<14 | 0x4B<<7 | 0x38, - 36114 - 19968: jis0208<<14 | 0x5A<<7 | 0x52, - 36115 - 19968: jis0208<<14 | 0x4B<<7 | 0x3A, - 36116 - 19968: jis0208<<14 | 0x4B<<7 | 0x3C, - 36118 - 19968: jis0208<<14 | 0x4B<<7 | 0x3D, - 36119 - 19968: jis0212<<14 | 0x3E<<7 | 0x23, - 36123 - 19968: jis0212<<14 | 0x3E<<7 | 0x24, - 36196 - 19968: jis0208<<14 | 0x1F<<7 | 0x35, - 36197 - 19968: jis0212<<14 | 0x3E<<7 | 0x25, - 36198 - 19968: jis0208<<14 | 0x1B<<7 | 0x2E, - 36199 - 19968: jis0208<<14 | 0x4B<<7 | 0x3E, - 36201 - 19968: jis0212<<14 | 0x3E<<7 | 0x26, - 36203 - 19968: jis0208<<14 | 0x12<<7 | 0x31, - 36204 - 19968: jis0212<<14 | 0x3E<<7 | 0x27, - 36205 - 19968: jis0208<<14 | 0x4B<<7 | 0x3F, - 36206 - 19968: jis0212<<14 | 0x3E<<7 | 0x28, - 36208 - 19968: jis0208<<14 | 0x20<<7 | 0x55, - 36209 - 19968: jis0208<<14 | 0x4B<<7 | 0x40, - 36211 - 19968: jis0208<<14 | 0x4B<<7 | 0x41, - 36212 - 19968: jis0208<<14 | 0x28<<7 | 0x4A, - 36214 - 19968: jis0208<<14 | 0x5A<<7 | 0x53, - 36215 - 19968: jis0208<<14 | 0x14<<7 | 0x0E, - 36223 - 19968: jis0212<<14 | 0x3E<<7 | 0x29, - 36225 - 19968: jis0208<<14 | 0x4B<<7 | 0x42, - 36226 - 19968: jis0212<<14 | 0x3E<<7 | 0x2A, - 36228 - 19968: jis0212<<14 | 0x3E<<7 | 0x2B, - 36229 - 19968: jis0208<<14 | 0x23<<7 | 0x15, - 36232 - 19968: jis0212<<14 | 0x3E<<7 | 0x2C, - 36234 - 19968: jis0208<<14 | 0x10<<7 | 0x3A, - 36237 - 19968: jis0212<<14 | 0x3E<<7 | 0x2D, - 36240 - 19968: jis0212<<14 | 0x3E<<7 | 0x2E, - 36241 - 19968: jis0212<<14 | 0x3E<<7 | 0x2F, - 36245 - 19968: jis0212<<14 | 0x3E<<7 | 0x30, - 36249 - 19968: jis0208<<14 | 0x4B<<7 | 0x43, - 36254 - 19968: jis0212<<14 | 0x3E<<7 | 0x31, - 36255 - 19968: jis0212<<14 | 0x3E<<7 | 0x32, - 36256 - 19968: jis0212<<14 | 0x3E<<7 | 0x33, - 36259 - 19968: jis0208<<14 | 0x1B<<7 | 0x50, - 36262 - 19968: jis0212<<14 | 0x3E<<7 | 0x34, - 36264 - 19968: jis0208<<14 | 0x1E<<7 | 0x55, - 36267 - 19968: jis0212<<14 | 0x3E<<7 | 0x35, - 36268 - 19968: jis0212<<14 | 0x3E<<7 | 0x36, - 36271 - 19968: jis0212<<14 | 0x3E<<7 | 0x37, - 36274 - 19968: jis0212<<14 | 0x3E<<7 | 0x38, - 36275 - 19968: jis0208<<14 | 0x21<<7 | 0x0C, - 36277 - 19968: jis0212<<14 | 0x3E<<7 | 0x39, - 36279 - 19968: jis0212<<14 | 0x3E<<7 | 0x3A, - 36281 - 19968: jis0212<<14 | 0x3E<<7 | 0x3B, - 36282 - 19968: jis0208<<14 | 0x4B<<7 | 0x46, - 36283 - 19968: jis0212<<14 | 0x3E<<7 | 0x3C, - 36284 - 19968: jis0212<<14 | 0x3E<<7 | 0x4E, - 36286 - 19968: jis0208<<14 | 0x4B<<7 | 0x45, - 36288 - 19968: jis0212<<14 | 0x3E<<7 | 0x3D, - 36290 - 19968: jis0208<<14 | 0x4B<<7 | 0x44, - 36293 - 19968: jis0212<<14 | 0x3E<<7 | 0x3E, - 36294 - 19968: jis0212<<14 | 0x3E<<7 | 0x3F, - 36295 - 19968: jis0212<<14 | 0x3E<<7 | 0x40, - 36296 - 19968: jis0212<<14 | 0x3E<<7 | 0x41, - 36298 - 19968: jis0212<<14 | 0x3E<<7 | 0x42, - 36299 - 19968: jis0208<<14 | 0x4B<<7 | 0x4C, - 36300 - 19968: jis0208<<14 | 0x4B<<7 | 0x4A, - 36302 - 19968: jis0212<<14 | 0x3E<<7 | 0x43, - 36303 - 19968: jis0208<<14 | 0x4B<<7 | 0x47, - 36305 - 19968: jis0212<<14 | 0x3E<<7 | 0x44, - 36308 - 19968: jis0212<<14 | 0x3E<<7 | 0x45, - 36309 - 19968: jis0212<<14 | 0x3E<<7 | 0x46, - 36310 - 19968: jis0208<<14 | 0x4B<<7 | 0x49, - 36311 - 19968: jis0212<<14 | 0x3E<<7 | 0x47, - 36313 - 19968: jis0212<<14 | 0x3E<<7 | 0x48, - 36314 - 19968: jis0208<<14 | 0x4B<<7 | 0x48, - 36315 - 19968: jis0208<<14 | 0x4B<<7 | 0x4B, - 36317 - 19968: jis0208<<14 | 0x14<<7 | 0x56, - 36319 - 19968: jis0208<<14 | 0x4B<<7 | 0x4F, - 36321 - 19968: jis0208<<14 | 0x1F<<7 | 0x36, - 36323 - 19968: jis0208<<14 | 0x4B<<7 | 0x50, - 36324 - 19968: jis0212<<14 | 0x3E<<7 | 0x49, - 36325 - 19968: jis0212<<14 | 0x3E<<7 | 0x4A, - 36327 - 19968: jis0212<<14 | 0x3E<<7 | 0x4B, - 36328 - 19968: jis0208<<14 | 0x17<<7 | 0x38, - 36330 - 19968: jis0208<<14 | 0x4B<<7 | 0x4D, - 36331 - 19968: jis0208<<14 | 0x4B<<7 | 0x4E, - 36332 - 19968: jis0212<<14 | 0x3E<<7 | 0x4C, - 36335 - 19968: jis0208<<14 | 0x2E<<7 | 0x08, - 36336 - 19968: jis0212<<14 | 0x3E<<7 | 0x4D, - 36337 - 19968: jis0212<<14 | 0x3E<<7 | 0x4F, - 36338 - 19968: jis0212<<14 | 0x3E<<7 | 0x50, - 36339 - 19968: jis0208<<14 | 0x23<<7 | 0x16, - 36340 - 19968: jis0212<<14 | 0x3E<<7 | 0x51, - 36341 - 19968: jis0208<<14 | 0x20<<7 | 0x08, - 36348 - 19968: jis0208<<14 | 0x4B<<7 | 0x51, - 36349 - 19968: jis0212<<14 | 0x3E<<7 | 0x52, - 36351 - 19968: jis0208<<14 | 0x4B<<7 | 0x54, - 36353 - 19968: jis0212<<14 | 0x3E<<7 | 0x53, - 36356 - 19968: jis0212<<14 | 0x3E<<7 | 0x54, - 36357 - 19968: jis0212<<14 | 0x3E<<7 | 0x55, - 36358 - 19968: jis0212<<14 | 0x3E<<7 | 0x56, - 36360 - 19968: jis0208<<14 | 0x4B<<7 | 0x52, - 36361 - 19968: jis0208<<14 | 0x4B<<7 | 0x53, - 36362 - 19968: jis0208<<14 | 0x2C<<7 | 0x38, - 36363 - 19968: jis0212<<14 | 0x3E<<7 | 0x57, - 36367 - 19968: jis0208<<14 | 0x25<<7 | 0x06, - 36368 - 19968: jis0208<<14 | 0x4B<<7 | 0x57, - 36369 - 19968: jis0212<<14 | 0x3E<<7 | 0x58, - 36372 - 19968: jis0212<<14 | 0x3E<<7 | 0x59, - 36374 - 19968: jis0212<<14 | 0x3E<<7 | 0x5A, - 36381 - 19968: jis0208<<14 | 0x4B<<7 | 0x55, - 36382 - 19968: jis0208<<14 | 0x4B<<7 | 0x56, - 36383 - 19968: jis0208<<14 | 0x4B<<7 | 0x58, - 36384 - 19968: jis0212<<14 | 0x3E<<7 | 0x5B, - 36385 - 19968: jis0212<<14 | 0x3E<<7 | 0x5C, - 36386 - 19968: jis0212<<14 | 0x3E<<7 | 0x5D, - 36387 - 19968: jis0212<<14 | 0x3F<<7 | 0x00, - 36390 - 19968: jis0212<<14 | 0x3F<<7 | 0x01, - 36391 - 19968: jis0212<<14 | 0x3F<<7 | 0x02, - 36394 - 19968: jis0208<<14 | 0x4C<<7 | 0x08, - 36400 - 19968: jis0208<<14 | 0x4B<<7 | 0x5B, - 36401 - 19968: jis0212<<14 | 0x3F<<7 | 0x03, - 36403 - 19968: jis0212<<14 | 0x3F<<7 | 0x04, - 36404 - 19968: jis0208<<14 | 0x4B<<7 | 0x5C, - 36405 - 19968: jis0208<<14 | 0x4B<<7 | 0x5A, - 36406 - 19968: jis0212<<14 | 0x3F<<7 | 0x05, - 36407 - 19968: jis0212<<14 | 0x3F<<7 | 0x06, - 36408 - 19968: jis0212<<14 | 0x3F<<7 | 0x07, - 36409 - 19968: jis0212<<14 | 0x3F<<7 | 0x08, - 36413 - 19968: jis0212<<14 | 0x3F<<7 | 0x09, - 36416 - 19968: jis0212<<14 | 0x3F<<7 | 0x0A, - 36417 - 19968: jis0212<<14 | 0x3F<<7 | 0x0B, - 36418 - 19968: jis0208<<14 | 0x4B<<7 | 0x59, - 36420 - 19968: jis0208<<14 | 0x23<<7 | 0x5C, - 36423 - 19968: jis0208<<14 | 0x4C<<7 | 0x00, - 36424 - 19968: jis0208<<14 | 0x4C<<7 | 0x04, - 36425 - 19968: jis0208<<14 | 0x4C<<7 | 0x01, - 36426 - 19968: jis0208<<14 | 0x4B<<7 | 0x5D, - 36427 - 19968: jis0212<<14 | 0x3F<<7 | 0x0C, - 36428 - 19968: jis0208<<14 | 0x4C<<7 | 0x02, - 36429 - 19968: jis0212<<14 | 0x3F<<7 | 0x0D, - 36430 - 19968: jis0212<<14 | 0x3F<<7 | 0x0E, - 36431 - 19968: jis0212<<14 | 0x3F<<7 | 0x0F, - 36432 - 19968: jis0208<<14 | 0x4C<<7 | 0x03, - 36436 - 19968: jis0212<<14 | 0x3F<<7 | 0x10, - 36437 - 19968: jis0208<<14 | 0x4C<<7 | 0x0A, - 36441 - 19968: jis0208<<14 | 0x4C<<7 | 0x05, - 36443 - 19968: jis0212<<14 | 0x3F<<7 | 0x11, - 36444 - 19968: jis0212<<14 | 0x3F<<7 | 0x12, - 36445 - 19968: jis0212<<14 | 0x3F<<7 | 0x13, - 36446 - 19968: jis0212<<14 | 0x3F<<7 | 0x14, - 36447 - 19968: jis0208<<14 | 0x1F<<7 | 0x37, - 36448 - 19968: jis0208<<14 | 0x4C<<7 | 0x07, - 36449 - 19968: jis0212<<14 | 0x3F<<7 | 0x15, - 36450 - 19968: jis0212<<14 | 0x3F<<7 | 0x16, - 36451 - 19968: jis0208<<14 | 0x4C<<7 | 0x09, - 36452 - 19968: jis0208<<14 | 0x4C<<7 | 0x06, - 36457 - 19968: jis0212<<14 | 0x3F<<7 | 0x17, - 36460 - 19968: jis0212<<14 | 0x3F<<7 | 0x18, - 36461 - 19968: jis0212<<14 | 0x3F<<7 | 0x19, - 36463 - 19968: jis0212<<14 | 0x3F<<7 | 0x1A, - 36464 - 19968: jis0212<<14 | 0x3F<<7 | 0x1B, - 36465 - 19968: jis0212<<14 | 0x3F<<7 | 0x1C, - 36466 - 19968: jis0208<<14 | 0x4C<<7 | 0x0C, - 36468 - 19968: jis0208<<14 | 0x1C<<7 | 0x12, - 36470 - 19968: jis0208<<14 | 0x4C<<7 | 0x0B, - 36473 - 19968: jis0212<<14 | 0x3F<<7 | 0x1D, - 36474 - 19968: jis0212<<14 | 0x3F<<7 | 0x1E, - 36475 - 19968: jis0212<<14 | 0x3F<<7 | 0x1F, - 36476 - 19968: jis0208<<14 | 0x4C<<7 | 0x0D, - 36481 - 19968: jis0208<<14 | 0x4C<<7 | 0x0E, - 36482 - 19968: jis0212<<14 | 0x3F<<7 | 0x20, - 36483 - 19968: jis0212<<14 | 0x3F<<7 | 0x21, - 36484 - 19968: jis0208<<14 | 0x4C<<7 | 0x11, - 36485 - 19968: jis0208<<14 | 0x4C<<7 | 0x10, - 36487 - 19968: jis0208<<14 | 0x4C<<7 | 0x0F, - 36489 - 19968: jis0212<<14 | 0x3F<<7 | 0x22, - 36490 - 19968: jis0208<<14 | 0x4C<<7 | 0x13, - 36491 - 19968: jis0208<<14 | 0x4C<<7 | 0x12, - 36493 - 19968: jis0208<<14 | 0x2B<<7 | 0x55, - 36496 - 19968: jis0212<<14 | 0x3F<<7 | 0x23, - 36497 - 19968: jis0208<<14 | 0x4C<<7 | 0x15, - 36498 - 19968: jis0212<<14 | 0x3F<<7 | 0x24, - 36499 - 19968: jis0208<<14 | 0x4C<<7 | 0x14, - 36500 - 19968: jis0208<<14 | 0x4C<<7 | 0x16, - 36501 - 19968: jis0212<<14 | 0x3F<<7 | 0x25, - 36505 - 19968: jis0208<<14 | 0x4C<<7 | 0x17, - 36506 - 19968: jis0212<<14 | 0x3F<<7 | 0x26, - 36507 - 19968: jis0212<<14 | 0x3F<<7 | 0x27, - 36509 - 19968: jis0212<<14 | 0x3F<<7 | 0x28, - 36510 - 19968: jis0212<<14 | 0x3F<<7 | 0x29, - 36513 - 19968: jis0208<<14 | 0x4C<<7 | 0x19, - 36514 - 19968: jis0212<<14 | 0x3F<<7 | 0x2A, - 36519 - 19968: jis0212<<14 | 0x3F<<7 | 0x2B, - 36521 - 19968: jis0212<<14 | 0x3F<<7 | 0x2C, - 36522 - 19968: jis0208<<14 | 0x4C<<7 | 0x18, - 36523 - 19968: jis0208<<14 | 0x1E<<7 | 0x27, - 36524 - 19968: jis0208<<14 | 0x4C<<7 | 0x1A, - 36525 - 19968: jis0212<<14 | 0x3F<<7 | 0x2D, - 36526 - 19968: jis0212<<14 | 0x3F<<7 | 0x2E, - 36527 - 19968: jis0208<<14 | 0x15<<7 | 0x4C, - 36528 - 19968: jis0208<<14 | 0x4C<<7 | 0x1B, - 36529 - 19968: jis0208<<14 | 0x4C<<7 | 0x1D, - 36531 - 19968: jis0212<<14 | 0x3F<<7 | 0x2F, - 36533 - 19968: jis0212<<14 | 0x3F<<7 | 0x30, - 36538 - 19968: jis0212<<14 | 0x3F<<7 | 0x31, - 36539 - 19968: jis0212<<14 | 0x3F<<7 | 0x32, - 36542 - 19968: jis0208<<14 | 0x4C<<7 | 0x1E, - 36544 - 19968: jis0212<<14 | 0x3F<<7 | 0x33, - 36545 - 19968: jis0212<<14 | 0x3F<<7 | 0x34, - 36547 - 19968: jis0212<<14 | 0x3F<<7 | 0x35, - 36548 - 19968: jis0212<<14 | 0x3F<<7 | 0x36, - 36549 - 19968: jis0208<<14 | 0x4C<<7 | 0x1F, - 36550 - 19968: jis0208<<14 | 0x4C<<7 | 0x1C, - 36551 - 19968: jis0212<<14 | 0x3F<<7 | 0x37, - 36552 - 19968: jis0208<<14 | 0x4C<<7 | 0x20, - 36554 - 19968: jis0208<<14 | 0x1B<<7 | 0x35, - 36555 - 19968: jis0208<<14 | 0x4C<<7 | 0x21, - 36556 - 19968: jis0208<<14 | 0x14<<7 | 0x0F, - 36557 - 19968: jis0208<<14 | 0x16<<7 | 0x12, - 36559 - 19968: jis0208<<14 | 0x5A<<7 | 0x55, - 36561 - 19968: jis0212<<14 | 0x3F<<7 | 0x39, - 36562 - 19968: jis0208<<14 | 0x17<<7 | 0x0D, - 36564 - 19968: jis0212<<14 | 0x3F<<7 | 0x3A, - 36571 - 19968: jis0208<<14 | 0x4C<<7 | 0x22, - 36572 - 19968: jis0212<<14 | 0x3F<<7 | 0x3B, - 36575 - 19968: jis0208<<14 | 0x25<<7 | 0x4F, - 36578 - 19968: jis0208<<14 | 0x24<<7 | 0x1D, - 36579 - 19968: jis0208<<14 | 0x4C<<7 | 0x23, - 36584 - 19968: jis0212<<14 | 0x3F<<7 | 0x3C, - 36587 - 19968: jis0208<<14 | 0x4C<<7 | 0x26, - 36589 - 19968: jis0212<<14 | 0x3F<<7 | 0x43, - 36590 - 19968: jis0212<<14 | 0x3F<<7 | 0x3D, - 36592 - 19968: jis0212<<14 | 0x3F<<7 | 0x3E, - 36593 - 19968: jis0212<<14 | 0x3F<<7 | 0x3F, - 36599 - 19968: jis0212<<14 | 0x3F<<7 | 0x40, - 36600 - 19968: jis0208<<14 | 0x1B<<7 | 0x13, - 36601 - 19968: jis0212<<14 | 0x3F<<7 | 0x41, - 36602 - 19968: jis0212<<14 | 0x3F<<7 | 0x42, - 36603 - 19968: jis0208<<14 | 0x4C<<7 | 0x25, - 36604 - 19968: jis0208<<14 | 0x4C<<7 | 0x24, - 36605 - 19968: jis0208<<14 | 0x16<<7 | 0x39, - 36606 - 19968: jis0208<<14 | 0x4C<<7 | 0x27, - 36608 - 19968: jis0212<<14 | 0x3F<<7 | 0x44, - 36610 - 19968: jis0212<<14 | 0x3F<<7 | 0x45, - 36611 - 19968: jis0208<<14 | 0x12<<7 | 0x32, - 36613 - 19968: jis0208<<14 | 0x4C<<7 | 0x29, - 36615 - 19968: jis0212<<14 | 0x3F<<7 | 0x46, - 36616 - 19968: jis0212<<14 | 0x3F<<7 | 0x47, - 36617 - 19968: jis0208<<14 | 0x19<<7 | 0x3B, - 36618 - 19968: jis0208<<14 | 0x4C<<7 | 0x28, - 36620 - 19968: jis0208<<14 | 0x4C<<7 | 0x31, - 36623 - 19968: jis0212<<14 | 0x3F<<7 | 0x48, - 36624 - 19968: jis0212<<14 | 0x3F<<7 | 0x49, - 36626 - 19968: jis0208<<14 | 0x4C<<7 | 0x2B, - 36627 - 19968: jis0208<<14 | 0x4C<<7 | 0x2D, - 36628 - 19968: jis0208<<14 | 0x29<<7 | 0x44, - 36629 - 19968: jis0208<<14 | 0x4C<<7 | 0x2A, - 36630 - 19968: jis0212<<14 | 0x3F<<7 | 0x4A, - 36631 - 19968: jis0212<<14 | 0x3F<<7 | 0x4B, - 36632 - 19968: jis0212<<14 | 0x3F<<7 | 0x4C, - 36633 - 19968: jis0208<<14 | 0x4C<<7 | 0x2C, - 36635 - 19968: jis0208<<14 | 0x4C<<7 | 0x30, - 36636 - 19968: jis0208<<14 | 0x4C<<7 | 0x2E, - 36637 - 19968: jis0208<<14 | 0x14<<7 | 0x10, - 36638 - 19968: jis0212<<14 | 0x3F<<7 | 0x4D, - 36639 - 19968: jis0208<<14 | 0x4C<<7 | 0x2F, - 36640 - 19968: jis0212<<14 | 0x3F<<7 | 0x4E, - 36641 - 19968: jis0212<<14 | 0x3F<<7 | 0x4F, - 36643 - 19968: jis0212<<14 | 0x3F<<7 | 0x50, - 36645 - 19968: jis0212<<14 | 0x3F<<7 | 0x51, - 36646 - 19968: jis0208<<14 | 0x4C<<7 | 0x32, - 36647 - 19968: jis0212<<14 | 0x3F<<7 | 0x52, - 36648 - 19968: jis0212<<14 | 0x3F<<7 | 0x53, - 36649 - 19968: jis0208<<14 | 0x26<<7 | 0x39, - 36650 - 19968: jis0208<<14 | 0x2D<<7 | 0x37, - 36652 - 19968: jis0212<<14 | 0x3F<<7 | 0x54, - 36653 - 19968: jis0212<<14 | 0x3F<<7 | 0x55, - 36654 - 19968: jis0212<<14 | 0x3F<<7 | 0x56, - 36655 - 19968: jis0208<<14 | 0x1C<<7 | 0x13, - 36659 - 19968: jis0208<<14 | 0x4C<<7 | 0x33, - 36660 - 19968: jis0212<<14 | 0x3F<<7 | 0x57, - 36661 - 19968: jis0212<<14 | 0x3F<<7 | 0x58, - 36662 - 19968: jis0212<<14 | 0x3F<<7 | 0x59, - 36663 - 19968: jis0212<<14 | 0x3F<<7 | 0x5A, - 36664 - 19968: jis0208<<14 | 0x2C<<7 | 0x01, - 36665 - 19968: jis0208<<14 | 0x4C<<7 | 0x35, - 36666 - 19968: jis0212<<14 | 0x3F<<7 | 0x5B, - 36667 - 19968: jis0208<<14 | 0x4C<<7 | 0x34, - 36670 - 19968: jis0208<<14 | 0x4C<<7 | 0x38, - 36671 - 19968: jis0208<<14 | 0x2C<<7 | 0x20, - 36672 - 19968: jis0212<<14 | 0x3F<<7 | 0x5C, - 36673 - 19968: jis0212<<14 | 0x3F<<7 | 0x5D, - 36674 - 19968: jis0208<<14 | 0x4C<<7 | 0x37, - 36675 - 19968: jis0212<<14 | 0x40<<7 | 0x00, - 36676 - 19968: jis0208<<14 | 0x12<<7 | 0x4C, - 36677 - 19968: jis0208<<14 | 0x4C<<7 | 0x36, - 36678 - 19968: jis0208<<14 | 0x4C<<7 | 0x3B, - 36679 - 19968: jis0212<<14 | 0x40<<7 | 0x01, - 36681 - 19968: jis0208<<14 | 0x4C<<7 | 0x3A, - 36684 - 19968: jis0208<<14 | 0x4C<<7 | 0x39, - 36685 - 19968: jis0208<<14 | 0x24<<7 | 0x11, - 36686 - 19968: jis0208<<14 | 0x4C<<7 | 0x3C, - 36687 - 19968: jis0212<<14 | 0x40<<7 | 0x02, - 36689 - 19968: jis0212<<14 | 0x40<<7 | 0x03, - 36690 - 19968: jis0212<<14 | 0x40<<7 | 0x04, - 36691 - 19968: jis0212<<14 | 0x40<<7 | 0x05, - 36692 - 19968: jis0212<<14 | 0x40<<7 | 0x06, - 36693 - 19968: jis0212<<14 | 0x40<<7 | 0x07, - 36695 - 19968: jis0208<<14 | 0x4C<<7 | 0x3D, - 36696 - 19968: jis0212<<14 | 0x40<<7 | 0x08, - 36700 - 19968: jis0208<<14 | 0x4C<<7 | 0x3E, - 36701 - 19968: jis0212<<14 | 0x40<<7 | 0x09, - 36702 - 19968: jis0212<<14 | 0x40<<7 | 0x0A, - 36703 - 19968: jis0208<<14 | 0x18<<7 | 0x4B, - 36705 - 19968: jis0208<<14 | 0x16<<7 | 0x04, - 36706 - 19968: jis0208<<14 | 0x4C<<7 | 0x3F, - 36707 - 19968: jis0208<<14 | 0x4C<<7 | 0x40, - 36708 - 19968: jis0208<<14 | 0x4C<<7 | 0x41, - 36709 - 19968: jis0212<<14 | 0x40<<7 | 0x0B, - 36763 - 19968: jis0208<<14 | 0x1E<<7 | 0x28, - 36764 - 19968: jis0208<<14 | 0x4C<<7 | 0x42, - 36765 - 19968: jis0212<<14 | 0x40<<7 | 0x0C, - 36766 - 19968: jis0208<<14 | 0x1B<<7 | 0x0C, - 36767 - 19968: jis0208<<14 | 0x4C<<7 | 0x43, - 36768 - 19968: jis0212<<14 | 0x40<<7 | 0x0D, - 36769 - 19968: jis0212<<14 | 0x40<<7 | 0x0E, - 36771 - 19968: jis0208<<14 | 0x4C<<7 | 0x44, - 36772 - 19968: jis0212<<14 | 0x40<<7 | 0x0F, - 36773 - 19968: jis0212<<14 | 0x40<<7 | 0x10, - 36774 - 19968: jis0212<<14 | 0x40<<7 | 0x11, - 36775 - 19968: jis0208<<14 | 0x31<<7 | 0x00, - 36776 - 19968: jis0208<<14 | 0x30<<7 | 0x5D, - 36781 - 19968: jis0208<<14 | 0x4C<<7 | 0x45, - 36782 - 19968: jis0208<<14 | 0x44<<7 | 0x4F, - 36783 - 19968: jis0208<<14 | 0x4C<<7 | 0x46, - 36784 - 19968: jis0208<<14 | 0x22<<7 | 0x03, - 36785 - 19968: jis0208<<14 | 0x1E<<7 | 0x0A, - 36786 - 19968: jis0208<<14 | 0x26<<7 | 0x1F, - 36789 - 19968: jis0212<<14 | 0x40<<7 | 0x12, - 36790 - 19968: jis0212<<14 | 0x40<<7 | 0x13, - 36791 - 19968: jis0208<<14 | 0x4C<<7 | 0x47, - 36792 - 19968: jis0212<<14 | 0x40<<7 | 0x14, - 36794 - 19968: jis0208<<14 | 0x29<<7 | 0x34, - 36795 - 19968: jis0208<<14 | 0x23<<7 | 0x33, - 36796 - 19968: jis0208<<14 | 0x18<<7 | 0x5D, - 36798 - 19968: jis0212<<14 | 0x40<<7 | 0x15, - 36799 - 19968: jis0208<<14 | 0x22<<7 | 0x08, - 36800 - 19968: jis0212<<14 | 0x40<<7 | 0x16, - 36801 - 19968: jis0212<<14 | 0x40<<7 | 0x17, - 36802 - 19968: jis0208<<14 | 0x10<<7 | 0x09, - 36804 - 19968: jis0208<<14 | 0x2A<<7 | 0x57, - 36805 - 19968: jis0208<<14 | 0x1E<<7 | 0x36, - 36806 - 19968: jis0212<<14 | 0x40<<7 | 0x18, - 36810 - 19968: jis0212<<14 | 0x40<<7 | 0x19, - 36811 - 19968: jis0212<<14 | 0x40<<7 | 0x1A, - 36813 - 19968: jis0212<<14 | 0x40<<7 | 0x1B, - 36814 - 19968: jis0208<<14 | 0x16<<7 | 0x3D, - 36816 - 19968: jis0212<<14 | 0x40<<7 | 0x1C, - 36817 - 19968: jis0208<<14 | 0x15<<7 | 0x40, - 36818 - 19968: jis0212<<14 | 0x40<<7 | 0x1D, - 36819 - 19968: jis0212<<14 | 0x40<<7 | 0x1E, - 36820 - 19968: jis0208<<14 | 0x29<<7 | 0x35, - 36821 - 19968: jis0212<<14 | 0x40<<7 | 0x1F, - 36826 - 19968: jis0208<<14 | 0x4C<<7 | 0x48, - 36832 - 19968: jis0212<<14 | 0x40<<7 | 0x20, - 36834 - 19968: jis0208<<14 | 0x4C<<7 | 0x4A, - 36835 - 19968: jis0212<<14 | 0x40<<7 | 0x21, - 36836 - 19968: jis0212<<14 | 0x40<<7 | 0x22, - 36837 - 19968: jis0208<<14 | 0x4C<<7 | 0x49, - 36838 - 19968: jis0208<<14 | 0x11<<7 | 0x3F, - 36840 - 19968: jis0212<<14 | 0x40<<7 | 0x23, - 36841 - 19968: jis0208<<14 | 0x25<<7 | 0x55, - 36842 - 19968: jis0208<<14 | 0x4C<<7 | 0x4B, - 36843 - 19968: jis0208<<14 | 0x26<<7 | 0x56, - 36845 - 19968: jis0208<<14 | 0x24<<7 | 0x12, - 36846 - 19968: jis0212<<14 | 0x40<<7 | 0x24, - 36847 - 19968: jis0208<<14 | 0x4C<<7 | 0x4C, - 36848 - 19968: jis0208<<14 | 0x1C<<7 | 0x31, - 36849 - 19968: jis0212<<14 | 0x40<<7 | 0x25, - 36852 - 19968: jis0208<<14 | 0x4C<<7 | 0x4E, - 36853 - 19968: jis0212<<14 | 0x40<<7 | 0x26, - 36854 - 19968: jis0212<<14 | 0x40<<7 | 0x27, - 36855 - 19968: jis0208<<14 | 0x2B<<7 | 0x21, - 36856 - 19968: jis0208<<14 | 0x4C<<7 | 0x5D, - 36857 - 19968: jis0208<<14 | 0x4C<<7 | 0x50, - 36858 - 19968: jis0208<<14 | 0x4C<<7 | 0x51, - 36859 - 19968: jis0212<<14 | 0x40<<7 | 0x28, - 36861 - 19968: jis0208<<14 | 0x23<<7 | 0x28, - 36862 - 19968: jis0212<<14 | 0x40<<7 | 0x29, - 36864 - 19968: jis0208<<14 | 0x21<<7 | 0x3F, - 36865 - 19968: jis0208<<14 | 0x20<<7 | 0x56, - 36866 - 19968: jis0212<<14 | 0x40<<7 | 0x2A, - 36867 - 19968: jis0208<<14 | 0x25<<7 | 0x07, - 36868 - 19968: jis0212<<14 | 0x40<<7 | 0x2B, - 36869 - 19968: jis0208<<14 | 0x4C<<7 | 0x4F, - 36870 - 19968: jis0208<<14 | 0x14<<7 | 0x34, - 36872 - 19968: jis0212<<14 | 0x40<<7 | 0x2C, - 36875 - 19968: jis0208<<14 | 0x4C<<7 | 0x58, - 36876 - 19968: jis0212<<14 | 0x40<<7 | 0x2D, - 36877 - 19968: jis0208<<14 | 0x4C<<7 | 0x55, - 36878 - 19968: jis0208<<14 | 0x4D<<7 | 0x04, - 36879 - 19968: jis0208<<14 | 0x25<<7 | 0x08, - 36880 - 19968: jis0208<<14 | 0x22<<7 | 0x3F, - 36881 - 19968: jis0208<<14 | 0x4C<<7 | 0x52, - 36883 - 19968: jis0208<<14 | 0x23<<7 | 0x5D, - 36884 - 19968: jis0208<<14 | 0x24<<7 | 0x32, - 36885 - 19968: jis0208<<14 | 0x4C<<7 | 0x53, - 36886 - 19968: jis0208<<14 | 0x4C<<7 | 0x57, - 36887 - 19968: jis0208<<14 | 0x1E<<7 | 0x3F, - 36888 - 19968: jis0212<<14 | 0x40<<7 | 0x2E, - 36889 - 19968: jis0208<<14 | 0x26<<7 | 0x46, - 36890 - 19968: jis0208<<14 | 0x23<<7 | 0x2B, - 36891 - 19968: jis0212<<14 | 0x40<<7 | 0x2F, - 36893 - 19968: jis0208<<14 | 0x1F<<7 | 0x21, - 36894 - 19968: jis0208<<14 | 0x4C<<7 | 0x56, - 36895 - 19968: jis0208<<14 | 0x21<<7 | 0x0D, - 36896 - 19968: jis0208<<14 | 0x21<<7 | 0x03, - 36897 - 19968: jis0208<<14 | 0x4C<<7 | 0x54, - 36898 - 19968: jis0208<<14 | 0x0F<<7 | 0x08, - 36899 - 19968: jis0208<<14 | 0x2E<<7 | 0x01, - 36903 - 19968: jis0208<<14 | 0x4C<<7 | 0x59, - 36904 - 19968: jis0212<<14 | 0x40<<7 | 0x30, - 36905 - 19968: jis0212<<14 | 0x40<<7 | 0x31, - 36906 - 19968: jis0212<<14 | 0x40<<7 | 0x33, - 36908 - 19968: jis0212<<14 | 0x40<<7 | 0x34, - 36909 - 19968: jis0212<<14 | 0x40<<7 | 0x35, - 36910 - 19968: jis0208<<14 | 0x21<<7 | 0x40, - 36911 - 19968: jis0212<<14 | 0x40<<7 | 0x32, - 36913 - 19968: jis0208<<14 | 0x1C<<7 | 0x14, - 36914 - 19968: jis0208<<14 | 0x1E<<7 | 0x29, - 36915 - 19968: jis0212<<14 | 0x40<<7 | 0x36, - 36916 - 19968: jis0212<<14 | 0x40<<7 | 0x37, - 36917 - 19968: jis0208<<14 | 0x4C<<7 | 0x5B, - 36918 - 19968: jis0208<<14 | 0x4C<<7 | 0x5A, - 36919 - 19968: jis0212<<14 | 0x40<<7 | 0x38, - 36920 - 19968: jis0208<<14 | 0x0F<<7 | 0x4E, - 36921 - 19968: jis0208<<14 | 0x4C<<7 | 0x5C, - 36924 - 19968: jis0208<<14 | 0x28<<7 | 0x0E, - 36926 - 19968: jis0208<<14 | 0x4D<<7 | 0x06, - 36927 - 19968: jis0212<<14 | 0x40<<7 | 0x39, - 36929 - 19968: jis0208<<14 | 0x25<<7 | 0x3A, - 36930 - 19968: jis0208<<14 | 0x1E<<7 | 0x4A, - 36931 - 19968: jis0212<<14 | 0x40<<7 | 0x3A, - 36932 - 19968: jis0212<<14 | 0x40<<7 | 0x3B, - 36933 - 19968: jis0208<<14 | 0x22<<7 | 0x38, - 36935 - 19968: jis0208<<14 | 0x15<<7 | 0x57, - 36937 - 19968: jis0208<<14 | 0x4D<<7 | 0x05, - 36938 - 19968: jis0208<<14 | 0x2C<<7 | 0x16, - 36939 - 19968: jis0208<<14 | 0x10<<7 | 0x1E, - 36940 - 19968: jis0212<<14 | 0x40<<7 | 0x3C, - 36941 - 19968: jis0208<<14 | 0x29<<7 | 0x36, - 36942 - 19968: jis0208<<14 | 0x11<<7 | 0x40, - 36943 - 19968: jis0208<<14 | 0x4D<<7 | 0x00, - 36944 - 19968: jis0208<<14 | 0x4D<<7 | 0x01, - 36945 - 19968: jis0208<<14 | 0x4D<<7 | 0x02, - 36946 - 19968: jis0208<<14 | 0x4D<<7 | 0x03, - 36947 - 19968: jis0208<<14 | 0x25<<7 | 0x1A, - 36948 - 19968: jis0208<<14 | 0x22<<7 | 0x02, - 36949 - 19968: jis0208<<14 | 0x0F<<7 | 0x42, - 36950 - 19968: jis0208<<14 | 0x4D<<7 | 0x07, - 36952 - 19968: jis0208<<14 | 0x4D<<7 | 0x08, - 36953 - 19968: jis0208<<14 | 0x53<<7 | 0x02, - 36955 - 19968: jis0212<<14 | 0x40<<7 | 0x3D, - 36956 - 19968: jis0208<<14 | 0x21<<7 | 0x1C, - 36957 - 19968: jis0212<<14 | 0x40<<7 | 0x3E, - 36958 - 19968: jis0208<<14 | 0x4D<<7 | 0x09, - 36960 - 19968: jis0208<<14 | 0x10<<7 | 0x52, - 36961 - 19968: jis0208<<14 | 0x20<<7 | 0x2B, - 36962 - 19968: jis0212<<14 | 0x40<<7 | 0x3F, - 36963 - 19968: jis0208<<14 | 0x17<<7 | 0x0E, - 36965 - 19968: jis0208<<14 | 0x2C<<7 | 0x39, - 36966 - 19968: jis0212<<14 | 0x40<<7 | 0x40, - 36967 - 19968: jis0208<<14 | 0x5A<<7 | 0x58, - 36968 - 19968: jis0208<<14 | 0x4D<<7 | 0x0A, - 36969 - 19968: jis0208<<14 | 0x24<<7 | 0x0B, - 36972 - 19968: jis0212<<14 | 0x40<<7 | 0x42, - 36973 - 19968: jis0208<<14 | 0x20<<7 | 0x57, - 36974 - 19968: jis0208<<14 | 0x1B<<7 | 0x36, - 36975 - 19968: jis0208<<14 | 0x4D<<7 | 0x0B, - 36976 - 19968: jis0212<<14 | 0x40<<7 | 0x43, - 36978 - 19968: jis0208<<14 | 0x4D<<7 | 0x0E, - 36980 - 19968: jis0212<<14 | 0x40<<7 | 0x44, - 36981 - 19968: jis0208<<14 | 0x1C<<7 | 0x44, - 36982 - 19968: jis0208<<14 | 0x4D<<7 | 0x0C, - 36983 - 19968: jis0208<<14 | 0x20<<7 | 0x0A, - 36984 - 19968: jis0208<<14 | 0x20<<7 | 0x09, - 36985 - 19968: jis0212<<14 | 0x40<<7 | 0x45, - 36986 - 19968: jis0208<<14 | 0x0F<<7 | 0x43, - 36988 - 19968: jis0208<<14 | 0x2D<<7 | 0x2A, - 36989 - 19968: jis0208<<14 | 0x4D<<7 | 0x10, - 36991 - 19968: jis0208<<14 | 0x27<<7 | 0x51, - 36992 - 19968: jis0208<<14 | 0x4D<<7 | 0x12, - 36993 - 19968: jis0208<<14 | 0x4D<<7 | 0x11, - 36994 - 19968: jis0208<<14 | 0x4D<<7 | 0x0F, - 36995 - 19968: jis0208<<14 | 0x42<<7 | 0x43, - 36996 - 19968: jis0208<<14 | 0x13<<7 | 0x33, - 36997 - 19968: jis0212<<14 | 0x40<<7 | 0x46, - 36999 - 19968: jis0208<<14 | 0x4C<<7 | 0x4D, - 37000 - 19968: jis0212<<14 | 0x40<<7 | 0x47, - 37001 - 19968: jis0208<<14 | 0x4D<<7 | 0x14, - 37002 - 19968: jis0208<<14 | 0x4D<<7 | 0x13, - 37003 - 19968: jis0212<<14 | 0x40<<7 | 0x48, - 37004 - 19968: jis0212<<14 | 0x40<<7 | 0x49, - 37006 - 19968: jis0212<<14 | 0x40<<7 | 0x4A, - 37007 - 19968: jis0208<<14 | 0x4D<<7 | 0x15, - 37008 - 19968: jis0212<<14 | 0x40<<7 | 0x4B, - 37009 - 19968: jis0208<<14 | 0x2C<<7 | 0x17, - 37013 - 19968: jis0212<<14 | 0x40<<7 | 0x4C, - 37015 - 19968: jis0212<<14 | 0x40<<7 | 0x4D, - 37016 - 19968: jis0212<<14 | 0x40<<7 | 0x4E, - 37017 - 19968: jis0212<<14 | 0x40<<7 | 0x4F, - 37019 - 19968: jis0212<<14 | 0x40<<7 | 0x50, - 37024 - 19968: jis0212<<14 | 0x40<<7 | 0x51, - 37025 - 19968: jis0212<<14 | 0x40<<7 | 0x52, - 37026 - 19968: jis0212<<14 | 0x40<<7 | 0x53, - 37027 - 19968: jis0208<<14 | 0x25<<7 | 0x40, - 37029 - 19968: jis0212<<14 | 0x40<<7 | 0x54, - 37030 - 19968: jis0208<<14 | 0x2A<<7 | 0x0D, - 37032 - 19968: jis0208<<14 | 0x4D<<7 | 0x16, - 37034 - 19968: jis0208<<14 | 0x1B<<7 | 0x38, - 37039 - 19968: jis0208<<14 | 0x4D<<7 | 0x17, - 37040 - 19968: jis0212<<14 | 0x40<<7 | 0x55, - 37041 - 19968: jis0208<<14 | 0x4D<<7 | 0x18, - 37042 - 19968: jis0212<<14 | 0x40<<7 | 0x56, - 37043 - 19968: jis0212<<14 | 0x40<<7 | 0x57, - 37044 - 19968: jis0212<<14 | 0x40<<7 | 0x58, - 37045 - 19968: jis0208<<14 | 0x4D<<7 | 0x19, - 37046 - 19968: jis0212<<14 | 0x40<<7 | 0x59, - 37048 - 19968: jis0208<<14 | 0x24<<7 | 0x00, - 37053 - 19968: jis0212<<14 | 0x40<<7 | 0x5A, - 37054 - 19968: jis0212<<14 | 0x40<<7 | 0x5C, - 37057 - 19968: jis0208<<14 | 0x0F<<7 | 0x49, - 37059 - 19968: jis0212<<14 | 0x40<<7 | 0x5D, - 37060 - 19968: jis0212<<14 | 0x41<<7 | 0x00, - 37061 - 19968: jis0212<<14 | 0x41<<7 | 0x01, - 37063 - 19968: jis0212<<14 | 0x41<<7 | 0x02, - 37064 - 19968: jis0212<<14 | 0x41<<7 | 0x03, - 37066 - 19968: jis0208<<14 | 0x18<<7 | 0x38, - 37068 - 19968: jis0212<<14 | 0x40<<7 | 0x5B, - 37070 - 19968: jis0208<<14 | 0x2E<<7 | 0x19, - 37074 - 19968: jis0212<<14 | 0x41<<7 | 0x0C, - 37077 - 19968: jis0212<<14 | 0x41<<7 | 0x04, - 37079 - 19968: jis0212<<14 | 0x41<<7 | 0x05, - 37080 - 19968: jis0212<<14 | 0x41<<7 | 0x06, - 37081 - 19968: jis0212<<14 | 0x41<<7 | 0x07, - 37083 - 19968: jis0208<<14 | 0x4D<<7 | 0x1D, - 37084 - 19968: jis0212<<14 | 0x41<<7 | 0x08, - 37085 - 19968: jis0212<<14 | 0x41<<7 | 0x09, - 37086 - 19968: jis0208<<14 | 0x5A<<7 | 0x59, - 37087 - 19968: jis0212<<14 | 0x41<<7 | 0x0A, - 37089 - 19968: jis0208<<14 | 0x16<<7 | 0x13, - 37090 - 19968: jis0208<<14 | 0x4D<<7 | 0x1A, - 37092 - 19968: jis0208<<14 | 0x4D<<7 | 0x1B, - 37093 - 19968: jis0212<<14 | 0x41<<7 | 0x0B, - 37096 - 19968: jis0208<<14 | 0x28<<7 | 0x53, - 37099 - 19968: jis0212<<14 | 0x41<<7 | 0x0E, - 37101 - 19968: jis0208<<14 | 0x12<<7 | 0x33, - 37103 - 19968: jis0212<<14 | 0x41<<7 | 0x0F, - 37104 - 19968: jis0212<<14 | 0x41<<7 | 0x10, - 37108 - 19968: jis0212<<14 | 0x41<<7 | 0x11, - 37109 - 19968: jis0208<<14 | 0x2C<<7 | 0x18, - 37110 - 19968: jis0212<<14 | 0x41<<7 | 0x0D, - 37111 - 19968: jis0208<<14 | 0x15<<7 | 0x1E, - 37117 - 19968: jis0208<<14 | 0x24<<7 | 0x33, - 37118 - 19968: jis0212<<14 | 0x41<<7 | 0x12, - 37119 - 19968: jis0212<<14 | 0x41<<7 | 0x13, - 37120 - 19968: jis0212<<14 | 0x41<<7 | 0x14, - 37122 - 19968: jis0208<<14 | 0x4D<<7 | 0x1E, - 37124 - 19968: jis0212<<14 | 0x41<<7 | 0x15, - 37125 - 19968: jis0212<<14 | 0x41<<7 | 0x16, - 37126 - 19968: jis0212<<14 | 0x41<<7 | 0x17, - 37128 - 19968: jis0212<<14 | 0x41<<7 | 0x18, - 37133 - 19968: jis0212<<14 | 0x41<<7 | 0x19, - 37136 - 19968: jis0212<<14 | 0x41<<7 | 0x1A, - 37138 - 19968: jis0208<<14 | 0x4D<<7 | 0x1F, - 37140 - 19968: jis0212<<14 | 0x41<<7 | 0x1B, - 37141 - 19968: jis0208<<14 | 0x5A<<7 | 0x5B, - 37142 - 19968: jis0212<<14 | 0x41<<7 | 0x1C, - 37143 - 19968: jis0212<<14 | 0x41<<7 | 0x1D, - 37144 - 19968: jis0212<<14 | 0x41<<7 | 0x1E, - 37145 - 19968: jis0208<<14 | 0x4D<<7 | 0x20, - 37146 - 19968: jis0212<<14 | 0x41<<7 | 0x1F, - 37148 - 19968: jis0212<<14 | 0x41<<7 | 0x20, - 37150 - 19968: jis0212<<14 | 0x41<<7 | 0x21, - 37152 - 19968: jis0212<<14 | 0x41<<7 | 0x22, - 37154 - 19968: jis0212<<14 | 0x41<<7 | 0x24, - 37155 - 19968: jis0212<<14 | 0x41<<7 | 0x25, - 37157 - 19968: jis0212<<14 | 0x41<<7 | 0x23, - 37159 - 19968: jis0208<<14 | 0x5A<<7 | 0x5C, - 37161 - 19968: jis0212<<14 | 0x41<<7 | 0x27, - 37165 - 19968: jis0208<<14 | 0x24<<7 | 0x01, - 37166 - 19968: jis0212<<14 | 0x41<<7 | 0x28, - 37167 - 19968: jis0212<<14 | 0x41<<7 | 0x29, - 37168 - 19968: jis0208<<14 | 0x4D<<7 | 0x22, - 37169 - 19968: jis0212<<14 | 0x41<<7 | 0x2A, - 37170 - 19968: jis0208<<14 | 0x4D<<7 | 0x21, - 37172 - 19968: jis0212<<14 | 0x41<<7 | 0x2B, - 37174 - 19968: jis0212<<14 | 0x41<<7 | 0x2C, - 37175 - 19968: jis0212<<14 | 0x41<<7 | 0x2D, - 37177 - 19968: jis0212<<14 | 0x41<<7 | 0x2E, - 37178 - 19968: jis0212<<14 | 0x41<<7 | 0x2F, - 37180 - 19968: jis0212<<14 | 0x41<<7 | 0x30, - 37181 - 19968: jis0212<<14 | 0x41<<7 | 0x31, - 37187 - 19968: jis0212<<14 | 0x41<<7 | 0x32, - 37191 - 19968: jis0212<<14 | 0x41<<7 | 0x33, - 37192 - 19968: jis0212<<14 | 0x41<<7 | 0x34, - 37193 - 19968: jis0208<<14 | 0x25<<7 | 0x32, - 37194 - 19968: jis0208<<14 | 0x4D<<7 | 0x23, - 37195 - 19968: jis0208<<14 | 0x1C<<7 | 0x15, - 37196 - 19968: jis0208<<14 | 0x1B<<7 | 0x3F, - 37197 - 19968: jis0208<<14 | 0x26<<7 | 0x3A, - 37198 - 19968: jis0208<<14 | 0x22<<7 | 0x50, - 37199 - 19968: jis0212<<14 | 0x41<<7 | 0x35, - 37202 - 19968: jis0208<<14 | 0x1B<<7 | 0x51, - 37203 - 19968: jis0212<<14 | 0x41<<7 | 0x36, - 37204 - 19968: jis0208<<14 | 0x1E<<7 | 0x4B, - 37206 - 19968: jis0208<<14 | 0x4D<<7 | 0x24, - 37207 - 19968: jis0212<<14 | 0x41<<7 | 0x37, - 37208 - 19968: jis0208<<14 | 0x4D<<7 | 0x25, - 37209 - 19968: jis0212<<14 | 0x41<<7 | 0x38, - 37210 - 19968: jis0212<<14 | 0x41<<7 | 0x39, - 37211 - 19968: jis0212<<14 | 0x41<<7 | 0x3A, - 37217 - 19968: jis0212<<14 | 0x41<<7 | 0x3B, - 37218 - 19968: jis0208<<14 | 0x1E<<7 | 0x3C, - 37219 - 19968: jis0208<<14 | 0x4D<<7 | 0x26, - 37220 - 19968: jis0212<<14 | 0x41<<7 | 0x3C, - 37221 - 19968: jis0208<<14 | 0x4D<<7 | 0x27, - 37223 - 19968: jis0212<<14 | 0x41<<7 | 0x3D, - 37225 - 19968: jis0208<<14 | 0x4D<<7 | 0x28, - 37226 - 19968: jis0208<<14 | 0x2C<<7 | 0x4E, - 37228 - 19968: jis0208<<14 | 0x1C<<7 | 0x16, - 37229 - 19968: jis0212<<14 | 0x41<<7 | 0x3E, - 37234 - 19968: jis0208<<14 | 0x4D<<7 | 0x2A, - 37235 - 19968: jis0208<<14 | 0x4D<<7 | 0x29, - 37236 - 19968: jis0212<<14 | 0x41<<7 | 0x3F, - 37237 - 19968: jis0208<<14 | 0x18<<7 | 0x39, - 37239 - 19968: jis0208<<14 | 0x18<<7 | 0x52, - 37240 - 19968: jis0208<<14 | 0x1A<<7 | 0x1F, - 37241 - 19968: jis0212<<14 | 0x41<<7 | 0x40, - 37242 - 19968: jis0212<<14 | 0x41<<7 | 0x41, - 37243 - 19968: jis0212<<14 | 0x41<<7 | 0x42, - 37249 - 19968: jis0212<<14 | 0x41<<7 | 0x43, - 37250 - 19968: jis0208<<14 | 0x4D<<7 | 0x2D, - 37251 - 19968: jis0212<<14 | 0x41<<7 | 0x44, - 37253 - 19968: jis0212<<14 | 0x41<<7 | 0x45, - 37254 - 19968: jis0212<<14 | 0x41<<7 | 0x46, - 37255 - 19968: jis0208<<14 | 0x1C<<7 | 0x45, - 37257 - 19968: jis0208<<14 | 0x4D<<7 | 0x2C, - 37258 - 19968: jis0212<<14 | 0x41<<7 | 0x47, - 37259 - 19968: jis0208<<14 | 0x4D<<7 | 0x2B, - 37261 - 19968: jis0208<<14 | 0x21<<7 | 0x48, - 37262 - 19968: jis0212<<14 | 0x41<<7 | 0x48, - 37264 - 19968: jis0208<<14 | 0x17<<7 | 0x4E, - 37265 - 19968: jis0212<<14 | 0x41<<7 | 0x49, - 37266 - 19968: jis0208<<14 | 0x1F<<7 | 0x22, - 37267 - 19968: jis0212<<14 | 0x41<<7 | 0x4A, - 37268 - 19968: jis0212<<14 | 0x41<<7 | 0x4B, - 37269 - 19968: jis0212<<14 | 0x41<<7 | 0x4C, - 37271 - 19968: jis0208<<14 | 0x27<<7 | 0x0F, - 37272 - 19968: jis0212<<14 | 0x41<<7 | 0x4D, - 37276 - 19968: jis0208<<14 | 0x1C<<7 | 0x18, - 37278 - 19968: jis0212<<14 | 0x41<<7 | 0x4E, - 37281 - 19968: jis0212<<14 | 0x41<<7 | 0x4F, - 37282 - 19968: jis0208<<14 | 0x4D<<7 | 0x2E, - 37284 - 19968: jis0208<<14 | 0x1D<<7 | 0x3E, - 37286 - 19968: jis0212<<14 | 0x41<<7 | 0x50, - 37288 - 19968: jis0212<<14 | 0x41<<7 | 0x51, - 37290 - 19968: jis0208<<14 | 0x4D<<7 | 0x31, - 37291 - 19968: jis0208<<14 | 0x4D<<7 | 0x2F, - 37292 - 19968: jis0212<<14 | 0x41<<7 | 0x52, - 37293 - 19968: jis0212<<14 | 0x41<<7 | 0x53, - 37294 - 19968: jis0212<<14 | 0x41<<7 | 0x54, - 37295 - 19968: jis0208<<14 | 0x4D<<7 | 0x30, - 37296 - 19968: jis0212<<14 | 0x41<<7 | 0x55, - 37297 - 19968: jis0212<<14 | 0x41<<7 | 0x56, - 37298 - 19968: jis0212<<14 | 0x41<<7 | 0x57, - 37299 - 19968: jis0212<<14 | 0x41<<7 | 0x58, - 37300 - 19968: jis0208<<14 | 0x4D<<7 | 0x33, - 37301 - 19968: jis0208<<14 | 0x4D<<7 | 0x32, - 37302 - 19968: jis0212<<14 | 0x41<<7 | 0x59, - 37304 - 19968: jis0208<<14 | 0x1D<<7 | 0x59, - 37306 - 19968: jis0208<<14 | 0x4D<<7 | 0x34, - 37307 - 19968: jis0212<<14 | 0x41<<7 | 0x5A, - 37308 - 19968: jis0212<<14 | 0x41<<7 | 0x5B, - 37309 - 19968: jis0212<<14 | 0x41<<7 | 0x5C, - 37311 - 19968: jis0212<<14 | 0x41<<7 | 0x5D, - 37312 - 19968: jis0208<<14 | 0x4D<<7 | 0x35, - 37313 - 19968: jis0208<<14 | 0x4D<<7 | 0x36, - 37314 - 19968: jis0212<<14 | 0x42<<7 | 0x00, - 37315 - 19968: jis0212<<14 | 0x42<<7 | 0x01, - 37317 - 19968: jis0212<<14 | 0x42<<7 | 0x02, - 37318 - 19968: jis0208<<14 | 0x27<<7 | 0x2F, - 37319 - 19968: jis0208<<14 | 0x19<<7 | 0x32, - 37320 - 19968: jis0208<<14 | 0x1B<<7 | 0x40, - 37321 - 19968: jis0208<<14 | 0x4D<<7 | 0x37, - 37323 - 19968: jis0208<<14 | 0x4D<<7 | 0x38, - 37324 - 19968: jis0208<<14 | 0x2D<<7 | 0x03, - 37325 - 19968: jis0208<<14 | 0x1C<<7 | 0x24, - 37326 - 19968: jis0208<<14 | 0x2B<<7 | 0x4D, - 37327 - 19968: jis0208<<14 | 0x2D<<7 | 0x2B, - 37328 - 19968: jis0208<<14 | 0x4D<<7 | 0x39, - 37329 - 19968: jis0208<<14 | 0x15<<7 | 0x41, - 37331 - 19968: jis0212<<14 | 0x42<<7 | 0x03, - 37332 - 19968: jis0212<<14 | 0x42<<7 | 0x04, - 37334 - 19968: jis0208<<14 | 0x4D<<7 | 0x3A, - 37335 - 19968: jis0208<<14 | 0x5B<<7 | 0x00, - 37336 - 19968: jis0208<<14 | 0x24<<7 | 0x02, - 37337 - 19968: jis0212<<14 | 0x42<<7 | 0x06, - 37338 - 19968: jis0208<<14 | 0x5A<<7 | 0x5D, - 37339 - 19968: jis0208<<14 | 0x4D<<7 | 0x3D, - 37340 - 19968: jis0208<<14 | 0x12<<7 | 0x57, - 37341 - 19968: jis0208<<14 | 0x1E<<7 | 0x2A, - 37342 - 19968: jis0208<<14 | 0x5B<<7 | 0x01, - 37343 - 19968: jis0208<<14 | 0x4D<<7 | 0x3B, - 37345 - 19968: jis0208<<14 | 0x4D<<7 | 0x3C, - 37347 - 19968: jis0208<<14 | 0x23<<7 | 0x3F, - 37348 - 19968: jis0208<<14 | 0x5B<<7 | 0x04, - 37349 - 19968: jis0208<<14 | 0x5B<<7 | 0x05, - 37350 - 19968: jis0208<<14 | 0x2A<<7 | 0x34, - 37351 - 19968: jis0208<<14 | 0x15<<7 | 0x5B, - 37353 - 19968: jis0212<<14 | 0x42<<7 | 0x0B, - 37354 - 19968: jis0212<<14 | 0x42<<7 | 0x0C, - 37356 - 19968: jis0212<<14 | 0x42<<7 | 0x0D, - 37357 - 19968: jis0208<<14 | 0x5B<<7 | 0x02, - 37358 - 19968: jis0208<<14 | 0x5B<<7 | 0x03, - 37359 - 19968: jis0212<<14 | 0x42<<7 | 0x10, - 37360 - 19968: jis0212<<14 | 0x42<<7 | 0x11, - 37361 - 19968: jis0212<<14 | 0x42<<7 | 0x12, - 37365 - 19968: jis0208<<14 | 0x4D<<7 | 0x3F, - 37366 - 19968: jis0208<<14 | 0x4D<<7 | 0x40, - 37367 - 19968: jis0212<<14 | 0x42<<7 | 0x13, - 37369 - 19968: jis0212<<14 | 0x42<<7 | 0x14, - 37371 - 19968: jis0212<<14 | 0x42<<7 | 0x15, - 37372 - 19968: jis0208<<14 | 0x4D<<7 | 0x3E, - 37373 - 19968: jis0212<<14 | 0x42<<7 | 0x16, - 37375 - 19968: jis0208<<14 | 0x4D<<7 | 0x42, - 37376 - 19968: jis0212<<14 | 0x42<<7 | 0x17, - 37377 - 19968: jis0212<<14 | 0x42<<7 | 0x18, - 37380 - 19968: jis0212<<14 | 0x42<<7 | 0x19, - 37381 - 19968: jis0212<<14 | 0x42<<7 | 0x1A, - 37382 - 19968: jis0208<<14 | 0x5B<<7 | 0x06, - 37383 - 19968: jis0212<<14 | 0x42<<7 | 0x1C, - 37385 - 19968: jis0212<<14 | 0x42<<7 | 0x1D, - 37386 - 19968: jis0208<<14 | 0x5B<<7 | 0x08, - 37388 - 19968: jis0212<<14 | 0x42<<7 | 0x1F, - 37389 - 19968: jis0208<<14 | 0x25<<7 | 0x3E, - 37390 - 19968: jis0208<<14 | 0x12<<7 | 0x22, - 37392 - 19968: jis0208<<14 | 0x5B<<7 | 0x07, - 37393 - 19968: jis0208<<14 | 0x4D<<7 | 0x46, - 37394 - 19968: jis0212<<14 | 0x42<<7 | 0x21, - 37395 - 19968: jis0212<<14 | 0x42<<7 | 0x22, - 37396 - 19968: jis0208<<14 | 0x4D<<7 | 0x43, - 37397 - 19968: jis0208<<14 | 0x4D<<7 | 0x45, - 37398 - 19968: jis0212<<14 | 0x42<<7 | 0x23, - 37400 - 19968: jis0212<<14 | 0x42<<7 | 0x24, - 37404 - 19968: jis0212<<14 | 0x42<<7 | 0x25, - 37405 - 19968: jis0212<<14 | 0x42<<7 | 0x26, - 37406 - 19968: jis0208<<14 | 0x4D<<7 | 0x41, - 37411 - 19968: jis0212<<14 | 0x42<<7 | 0x27, - 37412 - 19968: jis0212<<14 | 0x42<<7 | 0x28, - 37413 - 19968: jis0212<<14 | 0x42<<7 | 0x29, - 37414 - 19968: jis0212<<14 | 0x42<<7 | 0x2A, - 37416 - 19968: jis0212<<14 | 0x42<<7 | 0x2B, - 37417 - 19968: jis0208<<14 | 0x4E<<7 | 0x2E, - 37420 - 19968: jis0208<<14 | 0x4D<<7 | 0x44, - 37422 - 19968: jis0212<<14 | 0x42<<7 | 0x2C, - 37423 - 19968: jis0212<<14 | 0x42<<7 | 0x2D, - 37424 - 19968: jis0212<<14 | 0x42<<7 | 0x2E, - 37427 - 19968: jis0212<<14 | 0x42<<7 | 0x2F, - 37428 - 19968: jis0208<<14 | 0x2D<<7 | 0x4A, - 37429 - 19968: jis0212<<14 | 0x42<<7 | 0x30, - 37430 - 19968: jis0212<<14 | 0x42<<7 | 0x31, - 37431 - 19968: jis0208<<14 | 0x17<<7 | 0x39, - 37432 - 19968: jis0212<<14 | 0x42<<7 | 0x32, - 37433 - 19968: jis0208<<14 | 0x5B<<7 | 0x0F, - 37434 - 19968: jis0208<<14 | 0x5B<<7 | 0x09, - 37436 - 19968: jis0208<<14 | 0x5B<<7 | 0x0B, - 37438 - 19968: jis0212<<14 | 0x42<<7 | 0x36, - 37439 - 19968: jis0208<<14 | 0x4D<<7 | 0x4E, - 37440 - 19968: jis0208<<14 | 0x5B<<7 | 0x0A, - 37442 - 19968: jis0212<<14 | 0x42<<7 | 0x38, - 37443 - 19968: jis0212<<14 | 0x42<<7 | 0x39, - 37444 - 19968: jis0208<<14 | 0x24<<7 | 0x13, - 37445 - 19968: jis0208<<14 | 0x4D<<7 | 0x49, - 37446 - 19968: jis0212<<14 | 0x42<<7 | 0x3A, - 37447 - 19968: jis0212<<14 | 0x42<<7 | 0x3B, - 37448 - 19968: jis0208<<14 | 0x4D<<7 | 0x4C, - 37449 - 19968: jis0208<<14 | 0x4D<<7 | 0x4A, - 37450 - 19968: jis0212<<14 | 0x42<<7 | 0x3C, - 37451 - 19968: jis0208<<14 | 0x4D<<7 | 0x4F, - 37453 - 19968: jis0212<<14 | 0x42<<7 | 0x3D, - 37454 - 19968: jis0208<<14 | 0x5B<<7 | 0x0C, - 37455 - 19968: jis0212<<14 | 0x42<<7 | 0x3F, - 37456 - 19968: jis0208<<14 | 0x4D<<7 | 0x50, - 37457 - 19968: jis0208<<14 | 0x5B<<7 | 0x0E, - 37463 - 19968: jis0208<<14 | 0x4D<<7 | 0x48, - 37464 - 19968: jis0212<<14 | 0x42<<7 | 0x41, - 37465 - 19968: jis0208<<14 | 0x5B<<7 | 0x0D, - 37466 - 19968: jis0208<<14 | 0x4D<<7 | 0x55, - 37467 - 19968: jis0208<<14 | 0x10<<7 | 0x53, - 37468 - 19968: jis0212<<14 | 0x42<<7 | 0x43, - 37469 - 19968: jis0212<<14 | 0x42<<7 | 0x44, - 37470 - 19968: jis0208<<14 | 0x4D<<7 | 0x47, - 37472 - 19968: jis0212<<14 | 0x42<<7 | 0x45, - 37473 - 19968: jis0212<<14 | 0x42<<7 | 0x46, - 37474 - 19968: jis0208<<14 | 0x27<<7 | 0x0C, - 37476 - 19968: jis0208<<14 | 0x4D<<7 | 0x4B, - 37477 - 19968: jis0212<<14 | 0x42<<7 | 0x47, - 37478 - 19968: jis0208<<14 | 0x1D<<7 | 0x3F, - 37479 - 19968: jis0208<<14 | 0x5B<<7 | 0x10, - 37480 - 19968: jis0212<<14 | 0x42<<7 | 0x49, - 37481 - 19968: jis0212<<14 | 0x42<<7 | 0x4A, - 37486 - 19968: jis0212<<14 | 0x42<<7 | 0x4B, - 37487 - 19968: jis0212<<14 | 0x42<<7 | 0x4C, - 37488 - 19968: jis0212<<14 | 0x42<<7 | 0x4D, - 37489 - 19968: jis0208<<14 | 0x18<<7 | 0x3A, - 37493 - 19968: jis0212<<14 | 0x42<<7 | 0x4E, - 37494 - 19968: jis0212<<14 | 0x42<<7 | 0x4F, - 37495 - 19968: jis0208<<14 | 0x5B<<7 | 0x12, - 37496 - 19968: jis0208<<14 | 0x5B<<7 | 0x13, - 37497 - 19968: jis0212<<14 | 0x42<<7 | 0x52, - 37499 - 19968: jis0212<<14 | 0x42<<7 | 0x53, - 37500 - 19968: jis0212<<14 | 0x42<<7 | 0x54, - 37501 - 19968: jis0212<<14 | 0x42<<7 | 0x55, - 37502 - 19968: jis0208<<14 | 0x2A<<7 | 0x27, - 37503 - 19968: jis0212<<14 | 0x42<<7 | 0x56, - 37504 - 19968: jis0208<<14 | 0x15<<7 | 0x43, - 37507 - 19968: jis0208<<14 | 0x1C<<7 | 0x25, - 37509 - 19968: jis0208<<14 | 0x25<<7 | 0x1B, - 37512 - 19968: jis0208<<14 | 0x58<<7 | 0x03, - 37513 - 19968: jis0212<<14 | 0x42<<7 | 0x58, - 37514 - 19968: jis0212<<14 | 0x42<<7 | 0x59, - 37517 - 19968: jis0212<<14 | 0x42<<7 | 0x5A, - 37518 - 19968: jis0212<<14 | 0x42<<7 | 0x5B, - 37521 - 19968: jis0208<<14 | 0x20<<7 | 0x0C, - 37522 - 19968: jis0212<<14 | 0x42<<7 | 0x5C, - 37523 - 19968: jis0208<<14 | 0x4D<<7 | 0x53, - 37525 - 19968: jis0208<<14 | 0x4D<<7 | 0x4D, - 37526 - 19968: jis0208<<14 | 0x4D<<7 | 0x52, - 37527 - 19968: jis0212<<14 | 0x42<<7 | 0x5D, - 37528 - 19968: jis0208<<14 | 0x2B<<7 | 0x22, - 37529 - 19968: jis0212<<14 | 0x43<<7 | 0x00, - 37530 - 19968: jis0208<<14 | 0x23<<7 | 0x17, - 37531 - 19968: jis0208<<14 | 0x4D<<7 | 0x54, - 37532 - 19968: jis0208<<14 | 0x4D<<7 | 0x51, - 37535 - 19968: jis0212<<14 | 0x43<<7 | 0x01, - 37536 - 19968: jis0212<<14 | 0x43<<7 | 0x02, - 37540 - 19968: jis0212<<14 | 0x43<<7 | 0x03, - 37541 - 19968: jis0212<<14 | 0x43<<7 | 0x04, - 37543 - 19968: jis0208<<14 | 0x5B<<7 | 0x11, - 37544 - 19968: jis0212<<14 | 0x43<<7 | 0x06, - 37547 - 19968: jis0212<<14 | 0x43<<7 | 0x07, - 37549 - 19968: jis0208<<14 | 0x20<<7 | 0x0B, - 37551 - 19968: jis0212<<14 | 0x43<<7 | 0x08, - 37554 - 19968: jis0212<<14 | 0x43<<7 | 0x09, - 37558 - 19968: jis0212<<14 | 0x43<<7 | 0x0A, - 37559 - 19968: jis0208<<14 | 0x4D<<7 | 0x58, - 37560 - 19968: jis0212<<14 | 0x43<<7 | 0x0B, - 37561 - 19968: jis0208<<14 | 0x4D<<7 | 0x57, - 37562 - 19968: jis0212<<14 | 0x43<<7 | 0x0C, - 37563 - 19968: jis0212<<14 | 0x43<<7 | 0x0D, - 37564 - 19968: jis0212<<14 | 0x43<<7 | 0x0E, - 37565 - 19968: jis0212<<14 | 0x43<<7 | 0x0F, - 37567 - 19968: jis0212<<14 | 0x43<<7 | 0x10, - 37568 - 19968: jis0212<<14 | 0x43<<7 | 0x11, - 37569 - 19968: jis0212<<14 | 0x43<<7 | 0x12, - 37570 - 19968: jis0212<<14 | 0x43<<7 | 0x13, - 37571 - 19968: jis0212<<14 | 0x43<<7 | 0x14, - 37573 - 19968: jis0212<<14 | 0x43<<7 | 0x15, - 37574 - 19968: jis0212<<14 | 0x43<<7 | 0x16, - 37575 - 19968: jis0212<<14 | 0x43<<7 | 0x17, - 37576 - 19968: jis0212<<14 | 0x43<<7 | 0x18, - 37579 - 19968: jis0212<<14 | 0x43<<7 | 0x19, - 37580 - 19968: jis0212<<14 | 0x43<<7 | 0x1A, - 37581 - 19968: jis0212<<14 | 0x43<<7 | 0x1B, - 37582 - 19968: jis0212<<14 | 0x43<<7 | 0x1C, - 37583 - 19968: jis0208<<14 | 0x4D<<7 | 0x56, - 37584 - 19968: jis0208<<14 | 0x5B<<7 | 0x17, - 37586 - 19968: jis0208<<14 | 0x2A<<7 | 0x0E, - 37587 - 19968: jis0208<<14 | 0x5B<<7 | 0x1B, - 37589 - 19968: jis0208<<14 | 0x5B<<7 | 0x19, - 37591 - 19968: jis0208<<14 | 0x5B<<7 | 0x15, - 37592 - 19968: jis0212<<14 | 0x43<<7 | 0x21, - 37593 - 19968: jis0208<<14 | 0x5B<<7 | 0x16, - 37596 - 19968: jis0212<<14 | 0x43<<7 | 0x23, - 37597 - 19968: jis0212<<14 | 0x43<<7 | 0x24, - 37599 - 19968: jis0212<<14 | 0x43<<7 | 0x25, - 37600 - 19968: jis0208<<14 | 0x5B<<7 | 0x1A, - 37601 - 19968: jis0212<<14 | 0x43<<7 | 0x27, - 37603 - 19968: jis0212<<14 | 0x43<<7 | 0x28, - 37604 - 19968: jis0208<<14 | 0x1C<<7 | 0x5A, - 37605 - 19968: jis0212<<14 | 0x43<<7 | 0x29, - 37607 - 19968: jis0208<<14 | 0x5B<<7 | 0x14, - 37608 - 19968: jis0212<<14 | 0x43<<7 | 0x2B, - 37609 - 19968: jis0208<<14 | 0x4D<<7 | 0x59, - 37610 - 19968: jis0208<<14 | 0x29<<7 | 0x3E, - 37612 - 19968: jis0212<<14 | 0x43<<7 | 0x2C, - 37613 - 19968: jis0208<<14 | 0x10<<7 | 0x33, - 37614 - 19968: jis0212<<14 | 0x43<<7 | 0x2D, - 37616 - 19968: jis0212<<14 | 0x43<<7 | 0x2E, - 37618 - 19968: jis0208<<14 | 0x28<<7 | 0x25, - 37619 - 19968: jis0208<<14 | 0x22<<7 | 0x51, - 37624 - 19968: jis0208<<14 | 0x14<<7 | 0x57, - 37625 - 19968: jis0208<<14 | 0x58<<7 | 0x09, - 37626 - 19968: jis0208<<14 | 0x4D<<7 | 0x5B, - 37627 - 19968: jis0208<<14 | 0x5B<<7 | 0x1E, - 37628 - 19968: jis0208<<14 | 0x18<<7 | 0x3C, - 37631 - 19968: jis0208<<14 | 0x5B<<7 | 0x21, - 37632 - 19968: jis0212<<14 | 0x43<<7 | 0x32, - 37634 - 19968: jis0208<<14 | 0x5B<<7 | 0x23, - 37638 - 19968: jis0208<<14 | 0x1A<<7 | 0x0B, - 37640 - 19968: jis0212<<14 | 0x43<<7 | 0x34, - 37645 - 19968: jis0212<<14 | 0x43<<7 | 0x35, - 37647 - 19968: jis0208<<14 | 0x4D<<7 | 0x5A, - 37648 - 19968: jis0208<<14 | 0x1E<<7 | 0x4C, - 37649 - 19968: jis0212<<14 | 0x43<<7 | 0x36, - 37652 - 19968: jis0212<<14 | 0x43<<7 | 0x37, - 37653 - 19968: jis0212<<14 | 0x43<<7 | 0x38, - 37656 - 19968: jis0208<<14 | 0x1E<<7 | 0x4D, - 37657 - 19968: jis0208<<14 | 0x4E<<7 | 0x00, - 37658 - 19968: jis0208<<14 | 0x4E<<7 | 0x02, - 37660 - 19968: jis0212<<14 | 0x43<<7 | 0x39, - 37661 - 19968: jis0208<<14 | 0x5B<<7 | 0x22, - 37662 - 19968: jis0208<<14 | 0x5B<<7 | 0x20, - 37663 - 19968: jis0212<<14 | 0x43<<7 | 0x3C, - 37664 - 19968: jis0208<<14 | 0x1D<<7 | 0x5A, - 37665 - 19968: jis0208<<14 | 0x5B<<7 | 0x1D, - 37666 - 19968: jis0208<<14 | 0x4E<<7 | 0x01, - 37667 - 19968: jis0208<<14 | 0x4E<<7 | 0x03, - 37668 - 19968: jis0212<<14 | 0x43<<7 | 0x3E, - 37669 - 19968: jis0208<<14 | 0x5B<<7 | 0x1C, - 37670 - 19968: jis0208<<14 | 0x15<<7 | 0x32, - 37671 - 19968: jis0212<<14 | 0x43<<7 | 0x40, - 37672 - 19968: jis0208<<14 | 0x28<<7 | 0x24, - 37673 - 19968: jis0212<<14 | 0x43<<7 | 0x41, - 37674 - 19968: jis0212<<14 | 0x43<<7 | 0x42, - 37675 - 19968: jis0208<<14 | 0x1B<<7 | 0x41, - 37676 - 19968: jis0208<<14 | 0x2E<<7 | 0x02, - 37678 - 19968: jis0208<<14 | 0x4D<<7 | 0x5D, - 37679 - 19968: jis0208<<14 | 0x19<<7 | 0x57, - 37682 - 19968: jis0208<<14 | 0x2E<<7 | 0x1E, - 37683 - 19968: jis0212<<14 | 0x43<<7 | 0x43, - 37684 - 19968: jis0212<<14 | 0x43<<7 | 0x44, - 37685 - 19968: jis0208<<14 | 0x4E<<7 | 0x05, - 37686 - 19968: jis0212<<14 | 0x43<<7 | 0x45, - 37687 - 19968: jis0212<<14 | 0x43<<7 | 0x46, - 37690 - 19968: jis0208<<14 | 0x4E<<7 | 0x04, - 37691 - 19968: jis0208<<14 | 0x4E<<7 | 0x06, - 37700 - 19968: jis0208<<14 | 0x4D<<7 | 0x5C, - 37703 - 19968: jis0212<<14 | 0x43<<7 | 0x47, - 37704 - 19968: jis0208<<14 | 0x58<<7 | 0x02, - 37705 - 19968: jis0212<<14 | 0x43<<7 | 0x49, - 37707 - 19968: jis0208<<14 | 0x25<<7 | 0x48, - 37709 - 19968: jis0208<<14 | 0x24<<7 | 0x34, - 37712 - 19968: jis0212<<14 | 0x43<<7 | 0x4A, - 37713 - 19968: jis0212<<14 | 0x43<<7 | 0x4B, - 37714 - 19968: jis0212<<14 | 0x43<<7 | 0x4C, - 37716 - 19968: jis0208<<14 | 0x23<<7 | 0x36, - 37717 - 19968: jis0212<<14 | 0x43<<7 | 0x4D, - 37718 - 19968: jis0208<<14 | 0x4E<<7 | 0x0B, - 37719 - 19968: jis0208<<14 | 0x5B<<7 | 0x25, - 37720 - 19968: jis0212<<14 | 0x43<<7 | 0x4F, - 37722 - 19968: jis0212<<14 | 0x43<<7 | 0x50, - 37723 - 19968: jis0208<<14 | 0x22<<7 | 0x22, - 37724 - 19968: jis0208<<14 | 0x4E<<7 | 0x07, - 37726 - 19968: jis0212<<14 | 0x43<<7 | 0x51, - 37728 - 19968: jis0208<<14 | 0x4E<<7 | 0x08, - 37732 - 19968: jis0212<<14 | 0x43<<7 | 0x52, - 37733 - 19968: jis0212<<14 | 0x43<<7 | 0x53, - 37735 - 19968: jis0212<<14 | 0x43<<7 | 0x54, - 37737 - 19968: jis0212<<14 | 0x43<<7 | 0x55, - 37738 - 19968: jis0212<<14 | 0x43<<7 | 0x56, - 37740 - 19968: jis0208<<14 | 0x16<<7 | 0x0C, - 37741 - 19968: jis0212<<14 | 0x43<<7 | 0x57, - 37742 - 19968: jis0208<<14 | 0x4E<<7 | 0x0A, - 37743 - 19968: jis0212<<14 | 0x43<<7 | 0x58, - 37744 - 19968: jis0208<<14 | 0x5B<<7 | 0x24, - 37745 - 19968: jis0212<<14 | 0x43<<7 | 0x5A, - 37747 - 19968: jis0212<<14 | 0x43<<7 | 0x5B, - 37748 - 19968: jis0212<<14 | 0x43<<7 | 0x5C, - 37749 - 19968: jis0208<<14 | 0x17<<7 | 0x0F, - 37750 - 19968: jis0212<<14 | 0x43<<7 | 0x5D, - 37754 - 19968: jis0212<<14 | 0x44<<7 | 0x00, - 37756 - 19968: jis0208<<14 | 0x4E<<7 | 0x09, - 37757 - 19968: jis0212<<14 | 0x44<<7 | 0x01, - 37758 - 19968: jis0208<<14 | 0x1D<<7 | 0x40, - 37759 - 19968: jis0212<<14 | 0x44<<7 | 0x02, - 37760 - 19968: jis0212<<14 | 0x44<<7 | 0x03, - 37761 - 19968: jis0212<<14 | 0x44<<7 | 0x04, - 37762 - 19968: jis0212<<14 | 0x44<<7 | 0x05, - 37768 - 19968: jis0212<<14 | 0x44<<7 | 0x06, - 37770 - 19968: jis0212<<14 | 0x44<<7 | 0x07, - 37771 - 19968: jis0212<<14 | 0x44<<7 | 0x08, - 37772 - 19968: jis0208<<14 | 0x12<<7 | 0x58, - 37773 - 19968: jis0212<<14 | 0x44<<7 | 0x09, - 37775 - 19968: jis0212<<14 | 0x44<<7 | 0x0A, - 37778 - 19968: jis0212<<14 | 0x44<<7 | 0x0B, - 37780 - 19968: jis0208<<14 | 0x4E<<7 | 0x0F, - 37781 - 19968: jis0212<<14 | 0x44<<7 | 0x0C, - 37782 - 19968: jis0208<<14 | 0x19<<7 | 0x1E, - 37783 - 19968: jis0208<<14 | 0x20<<7 | 0x58, - 37784 - 19968: jis0212<<14 | 0x44<<7 | 0x0D, - 37786 - 19968: jis0208<<14 | 0x23<<7 | 0x29, - 37787 - 19968: jis0212<<14 | 0x44<<7 | 0x0E, - 37790 - 19968: jis0212<<14 | 0x44<<7 | 0x0F, - 37793 - 19968: jis0212<<14 | 0x44<<7 | 0x10, - 37795 - 19968: jis0212<<14 | 0x44<<7 | 0x11, - 37796 - 19968: jis0208<<14 | 0x5B<<7 | 0x26, - 37798 - 19968: jis0212<<14 | 0x44<<7 | 0x13, - 37799 - 19968: jis0208<<14 | 0x12<<7 | 0x1A, - 37800 - 19968: jis0212<<14 | 0x44<<7 | 0x14, - 37801 - 19968: jis0212<<14 | 0x44<<7 | 0x1A, - 37803 - 19968: jis0212<<14 | 0x44<<7 | 0x15, - 37804 - 19968: jis0208<<14 | 0x4E<<7 | 0x0D, - 37805 - 19968: jis0208<<14 | 0x4E<<7 | 0x0E, - 37806 - 19968: jis0208<<14 | 0x23<<7 | 0x22, - 37808 - 19968: jis0208<<14 | 0x4E<<7 | 0x0C, - 37812 - 19968: jis0212<<14 | 0x44<<7 | 0x16, - 37813 - 19968: jis0212<<14 | 0x44<<7 | 0x17, - 37814 - 19968: jis0212<<14 | 0x44<<7 | 0x18, - 37817 - 19968: jis0208<<14 | 0x4E<<7 | 0x10, - 37818 - 19968: jis0212<<14 | 0x44<<7 | 0x19, - 37825 - 19968: jis0212<<14 | 0x44<<7 | 0x1B, - 37827 - 19968: jis0208<<14 | 0x4E<<7 | 0x16, - 37828 - 19968: jis0212<<14 | 0x44<<7 | 0x1C, - 37829 - 19968: jis0212<<14 | 0x44<<7 | 0x1D, - 37830 - 19968: jis0208<<14 | 0x5B<<7 | 0x27, - 37831 - 19968: jis0212<<14 | 0x44<<7 | 0x1F, - 37832 - 19968: jis0208<<14 | 0x4E<<7 | 0x19, - 37833 - 19968: jis0212<<14 | 0x44<<7 | 0x20, - 37834 - 19968: jis0212<<14 | 0x44<<7 | 0x21, - 37835 - 19968: jis0212<<14 | 0x44<<7 | 0x22, - 37836 - 19968: jis0212<<14 | 0x44<<7 | 0x23, - 37837 - 19968: jis0212<<14 | 0x44<<7 | 0x24, - 37840 - 19968: jis0208<<14 | 0x4E<<7 | 0x18, - 37841 - 19968: jis0208<<14 | 0x24<<7 | 0x0C, - 37843 - 19968: jis0212<<14 | 0x44<<7 | 0x25, - 37846 - 19968: jis0208<<14 | 0x4E<<7 | 0x11, - 37847 - 19968: jis0208<<14 | 0x4E<<7 | 0x12, - 37848 - 19968: jis0208<<14 | 0x4E<<7 | 0x15, - 37849 - 19968: jis0212<<14 | 0x44<<7 | 0x26, - 37852 - 19968: jis0212<<14 | 0x44<<7 | 0x27, - 37853 - 19968: jis0208<<14 | 0x4E<<7 | 0x17, - 37854 - 19968: jis0208<<14 | 0x5B<<7 | 0x28, - 37855 - 19968: jis0212<<14 | 0x44<<7 | 0x29, - 37857 - 19968: jis0208<<14 | 0x15<<7 | 0x1F, - 37858 - 19968: jis0212<<14 | 0x44<<7 | 0x2A, - 37860 - 19968: jis0208<<14 | 0x4E<<7 | 0x1A, - 37861 - 19968: jis0208<<14 | 0x4E<<7 | 0x14, - 37862 - 19968: jis0212<<14 | 0x44<<7 | 0x2B, - 37863 - 19968: jis0212<<14 | 0x44<<7 | 0x2C, - 37864 - 19968: jis0208<<14 | 0x4E<<7 | 0x13, - 37879 - 19968: jis0212<<14 | 0x44<<7 | 0x2E, - 37880 - 19968: jis0208<<14 | 0x5B<<7 | 0x29, - 37881 - 19968: jis0212<<14 | 0x44<<7 | 0x2D, - 37882 - 19968: jis0212<<14 | 0x44<<7 | 0x30, - 37883 - 19968: jis0212<<14 | 0x44<<7 | 0x31, - 37885 - 19968: jis0212<<14 | 0x44<<7 | 0x32, - 37889 - 19968: jis0212<<14 | 0x44<<7 | 0x33, - 37890 - 19968: jis0212<<14 | 0x44<<7 | 0x34, - 37891 - 19968: jis0208<<14 | 0x4E<<7 | 0x1E, - 37892 - 19968: jis0212<<14 | 0x44<<7 | 0x35, - 37895 - 19968: jis0208<<14 | 0x4E<<7 | 0x1F, - 37896 - 19968: jis0212<<14 | 0x44<<7 | 0x36, - 37897 - 19968: jis0212<<14 | 0x44<<7 | 0x37, - 37901 - 19968: jis0212<<14 | 0x44<<7 | 0x38, - 37902 - 19968: jis0212<<14 | 0x44<<7 | 0x39, - 37903 - 19968: jis0212<<14 | 0x44<<7 | 0x3A, - 37904 - 19968: jis0208<<14 | 0x4E<<7 | 0x20, - 37907 - 19968: jis0208<<14 | 0x4E<<7 | 0x1D, - 37908 - 19968: jis0208<<14 | 0x4E<<7 | 0x1C, - 37909 - 19968: jis0212<<14 | 0x44<<7 | 0x3B, - 37910 - 19968: jis0212<<14 | 0x44<<7 | 0x3C, - 37911 - 19968: jis0212<<14 | 0x44<<7 | 0x3D, - 37912 - 19968: jis0208<<14 | 0x1D<<7 | 0x41, - 37913 - 19968: jis0208<<14 | 0x25<<7 | 0x09, - 37914 - 19968: jis0208<<14 | 0x4E<<7 | 0x1B, - 37919 - 19968: jis0212<<14 | 0x44<<7 | 0x3E, - 37921 - 19968: jis0208<<14 | 0x4E<<7 | 0x24, - 37931 - 19968: jis0208<<14 | 0x4E<<7 | 0x22, - 37934 - 19968: jis0212<<14 | 0x44<<7 | 0x3F, - 37935 - 19968: jis0212<<14 | 0x44<<7 | 0x40, - 37937 - 19968: jis0208<<14 | 0x5B<<7 | 0x2A, - 37938 - 19968: jis0212<<14 | 0x44<<7 | 0x42, - 37939 - 19968: jis0212<<14 | 0x44<<7 | 0x43, - 37940 - 19968: jis0212<<14 | 0x44<<7 | 0x44, - 37941 - 19968: jis0208<<14 | 0x4E<<7 | 0x23, - 37942 - 19968: jis0208<<14 | 0x4E<<7 | 0x21, - 37944 - 19968: jis0208<<14 | 0x21<<7 | 0x57, - 37946 - 19968: jis0208<<14 | 0x4E<<7 | 0x25, - 37947 - 19968: jis0212<<14 | 0x44<<7 | 0x45, - 37949 - 19968: jis0212<<14 | 0x44<<7 | 0x47, - 37951 - 19968: jis0212<<14 | 0x44<<7 | 0x46, - 37953 - 19968: jis0208<<14 | 0x4E<<7 | 0x26, - 37955 - 19968: jis0212<<14 | 0x44<<7 | 0x48, - 37956 - 19968: jis0208<<14 | 0x4E<<7 | 0x28, - 37957 - 19968: jis0208<<14 | 0x5B<<7 | 0x2B, - 37960 - 19968: jis0208<<14 | 0x5B<<7 | 0x2C, - 37962 - 19968: jis0212<<14 | 0x44<<7 | 0x4B, - 37964 - 19968: jis0212<<14 | 0x44<<7 | 0x4C, - 37969 - 19968: jis0208<<14 | 0x13<<7 | 0x34, - 37970 - 19968: jis0208<<14 | 0x4E<<7 | 0x27, - 37971 - 19968: jis0208<<14 | 0x2B<<7 | 0x59, - 37973 - 19968: jis0212<<14 | 0x44<<7 | 0x4D, - 37977 - 19968: jis0212<<14 | 0x44<<7 | 0x4E, - 37978 - 19968: jis0208<<14 | 0x4E<<7 | 0x33, - 37979 - 19968: jis0208<<14 | 0x4E<<7 | 0x29, - 37980 - 19968: jis0212<<14 | 0x44<<7 | 0x4F, - 37982 - 19968: jis0208<<14 | 0x4E<<7 | 0x2C, - 37983 - 19968: jis0212<<14 | 0x44<<7 | 0x50, - 37984 - 19968: jis0208<<14 | 0x4E<<7 | 0x2A, - 37985 - 19968: jis0212<<14 | 0x44<<7 | 0x51, - 37986 - 19968: jis0208<<14 | 0x4E<<7 | 0x2B, - 37987 - 19968: jis0212<<14 | 0x44<<7 | 0x52, - 37992 - 19968: jis0212<<14 | 0x44<<7 | 0x53, - 37994 - 19968: jis0208<<14 | 0x4E<<7 | 0x2D, - 37995 - 19968: jis0212<<14 | 0x44<<7 | 0x54, - 37997 - 19968: jis0212<<14 | 0x44<<7 | 0x55, - 37998 - 19968: jis0212<<14 | 0x44<<7 | 0x56, - 37999 - 19968: jis0212<<14 | 0x44<<7 | 0x57, - 38000 - 19968: jis0208<<14 | 0x4E<<7 | 0x2F, - 38001 - 19968: jis0212<<14 | 0x44<<7 | 0x58, - 38002 - 19968: jis0212<<14 | 0x44<<7 | 0x59, - 38005 - 19968: jis0208<<14 | 0x4E<<7 | 0x30, - 38007 - 19968: jis0208<<14 | 0x4E<<7 | 0x31, - 38012 - 19968: jis0208<<14 | 0x4E<<7 | 0x34, - 38013 - 19968: jis0208<<14 | 0x4E<<7 | 0x32, - 38014 - 19968: jis0208<<14 | 0x4E<<7 | 0x35, - 38015 - 19968: jis0208<<14 | 0x4E<<7 | 0x37, - 38017 - 19968: jis0208<<14 | 0x4E<<7 | 0x36, - 38019 - 19968: jis0212<<14 | 0x44<<7 | 0x5B, - 38020 - 19968: jis0212<<14 | 0x44<<7 | 0x5A, - 38263 - 19968: jis0208<<14 | 0x23<<7 | 0x18, - 38264 - 19968: jis0212<<14 | 0x44<<7 | 0x5C, - 38265 - 19968: jis0212<<14 | 0x44<<7 | 0x5D, - 38270 - 19968: jis0212<<14 | 0x45<<7 | 0x00, - 38272 - 19968: jis0208<<14 | 0x2B<<7 | 0x46, - 38274 - 19968: jis0208<<14 | 0x4E<<7 | 0x38, - 38275 - 19968: jis0208<<14 | 0x20<<7 | 0x0D, - 38276 - 19968: jis0212<<14 | 0x45<<7 | 0x01, - 38279 - 19968: jis0208<<14 | 0x4E<<7 | 0x39, - 38280 - 19968: jis0212<<14 | 0x45<<7 | 0x02, - 38281 - 19968: jis0208<<14 | 0x29<<7 | 0x23, - 38282 - 19968: jis0208<<14 | 0x4E<<7 | 0x3A, - 38283 - 19968: jis0208<<14 | 0x12<<7 | 0x0A, - 38284 - 19968: jis0212<<14 | 0x45<<7 | 0x03, - 38285 - 19968: jis0212<<14 | 0x45<<7 | 0x04, - 38286 - 19968: jis0212<<14 | 0x45<<7 | 0x05, - 38287 - 19968: jis0208<<14 | 0x10<<7 | 0x1B, - 38289 - 19968: jis0208<<14 | 0x13<<7 | 0x36, - 38290 - 19968: jis0208<<14 | 0x5B<<7 | 0x2D, - 38291 - 19968: jis0208<<14 | 0x13<<7 | 0x35, - 38292 - 19968: jis0208<<14 | 0x4E<<7 | 0x3B, - 38294 - 19968: jis0208<<14 | 0x4E<<7 | 0x3C, - 38296 - 19968: jis0208<<14 | 0x4E<<7 | 0x3D, - 38297 - 19968: jis0208<<14 | 0x4E<<7 | 0x3E, - 38301 - 19968: jis0212<<14 | 0x45<<7 | 0x06, - 38302 - 19968: jis0212<<14 | 0x45<<7 | 0x07, - 38303 - 19968: jis0212<<14 | 0x45<<7 | 0x08, - 38304 - 19968: jis0208<<14 | 0x4E<<7 | 0x3F, - 38305 - 19968: jis0212<<14 | 0x45<<7 | 0x09, - 38306 - 19968: jis0208<<14 | 0x13<<7 | 0x37, - 38307 - 19968: jis0208<<14 | 0x12<<7 | 0x34, - 38308 - 19968: jis0208<<14 | 0x18<<7 | 0x3D, - 38309 - 19968: jis0208<<14 | 0x27<<7 | 0x15, - 38310 - 19968: jis0212<<14 | 0x45<<7 | 0x0A, - 38311 - 19968: jis0208<<14 | 0x4E<<7 | 0x41, - 38312 - 19968: jis0208<<14 | 0x4E<<7 | 0x40, - 38313 - 19968: jis0212<<14 | 0x45<<7 | 0x0B, - 38315 - 19968: jis0212<<14 | 0x45<<7 | 0x0C, - 38316 - 19968: jis0212<<14 | 0x45<<7 | 0x0D, - 38317 - 19968: jis0208<<14 | 0x4E<<7 | 0x42, - 38322 - 19968: jis0208<<14 | 0x10<<7 | 0x3B, - 38324 - 19968: jis0212<<14 | 0x45<<7 | 0x0E, - 38326 - 19968: jis0212<<14 | 0x45<<7 | 0x0F, - 38329 - 19968: jis0208<<14 | 0x4E<<7 | 0x45, - 38330 - 19968: jis0212<<14 | 0x45<<7 | 0x10, - 38331 - 19968: jis0208<<14 | 0x4E<<7 | 0x44, - 38332 - 19968: jis0208<<14 | 0x4E<<7 | 0x43, - 38333 - 19968: jis0212<<14 | 0x45<<7 | 0x11, - 38334 - 19968: jis0208<<14 | 0x4E<<7 | 0x46, - 38335 - 19968: jis0212<<14 | 0x45<<7 | 0x12, - 38339 - 19968: jis0208<<14 | 0x4E<<7 | 0x49, - 38342 - 19968: jis0212<<14 | 0x45<<7 | 0x13, - 38343 - 19968: jis0208<<14 | 0x0F<<7 | 0x26, - 38344 - 19968: jis0212<<14 | 0x45<<7 | 0x14, - 38345 - 19968: jis0212<<14 | 0x45<<7 | 0x15, - 38346 - 19968: jis0208<<14 | 0x4E<<7 | 0x47, - 38347 - 19968: jis0212<<14 | 0x45<<7 | 0x16, - 38348 - 19968: jis0208<<14 | 0x4E<<7 | 0x4B, - 38349 - 19968: jis0208<<14 | 0x4E<<7 | 0x4A, - 38352 - 19968: jis0212<<14 | 0x45<<7 | 0x17, - 38353 - 19968: jis0212<<14 | 0x45<<7 | 0x18, - 38354 - 19968: jis0212<<14 | 0x45<<7 | 0x19, - 38355 - 19968: jis0212<<14 | 0x45<<7 | 0x1A, - 38356 - 19968: jis0208<<14 | 0x4E<<7 | 0x4D, - 38357 - 19968: jis0208<<14 | 0x4E<<7 | 0x4C, - 38358 - 19968: jis0208<<14 | 0x4E<<7 | 0x4E, - 38360 - 19968: jis0208<<14 | 0x25<<7 | 0x0D, - 38361 - 19968: jis0212<<14 | 0x45<<7 | 0x1B, - 38362 - 19968: jis0212<<14 | 0x45<<7 | 0x1C, - 38364 - 19968: jis0208<<14 | 0x4E<<7 | 0x4F, - 38365 - 19968: jis0212<<14 | 0x45<<7 | 0x1D, - 38366 - 19968: jis0212<<14 | 0x45<<7 | 0x1E, - 38367 - 19968: jis0212<<14 | 0x45<<7 | 0x1F, - 38368 - 19968: jis0212<<14 | 0x45<<7 | 0x20, - 38369 - 19968: jis0208<<14 | 0x4E<<7 | 0x50, - 38370 - 19968: jis0208<<14 | 0x4E<<7 | 0x52, - 38372 - 19968: jis0212<<14 | 0x45<<7 | 0x21, - 38373 - 19968: jis0208<<14 | 0x4E<<7 | 0x51, - 38374 - 19968: jis0212<<14 | 0x45<<7 | 0x22, - 38428 - 19968: jis0208<<14 | 0x28<<7 | 0x4B, - 38429 - 19968: jis0212<<14 | 0x45<<7 | 0x23, - 38430 - 19968: jis0212<<14 | 0x45<<7 | 0x24, - 38433 - 19968: jis0208<<14 | 0x4E<<7 | 0x53, - 38434 - 19968: jis0212<<14 | 0x45<<7 | 0x25, - 38436 - 19968: jis0212<<14 | 0x45<<7 | 0x26, - 38437 - 19968: jis0212<<14 | 0x45<<7 | 0x27, - 38438 - 19968: jis0212<<14 | 0x45<<7 | 0x28, - 38440 - 19968: jis0208<<14 | 0x4E<<7 | 0x54, - 38442 - 19968: jis0208<<14 | 0x19<<7 | 0x44, - 38444 - 19968: jis0212<<14 | 0x45<<7 | 0x29, - 38446 - 19968: jis0208<<14 | 0x4E<<7 | 0x55, - 38447 - 19968: jis0208<<14 | 0x4E<<7 | 0x56, - 38449 - 19968: jis0212<<14 | 0x45<<7 | 0x2A, - 38450 - 19968: jis0208<<14 | 0x2A<<7 | 0x28, - 38451 - 19968: jis0212<<14 | 0x45<<7 | 0x2B, - 38455 - 19968: jis0212<<14 | 0x45<<7 | 0x2C, - 38456 - 19968: jis0212<<14 | 0x45<<7 | 0x2D, - 38457 - 19968: jis0212<<14 | 0x45<<7 | 0x2E, - 38458 - 19968: jis0212<<14 | 0x45<<7 | 0x2F, - 38459 - 19968: jis0208<<14 | 0x20<<7 | 0x2A, - 38460 - 19968: jis0212<<14 | 0x45<<7 | 0x30, - 38461 - 19968: jis0212<<14 | 0x45<<7 | 0x31, - 38463 - 19968: jis0208<<14 | 0x0F<<7 | 0x03, - 38464 - 19968: jis0208<<14 | 0x21<<7 | 0x2A, - 38465 - 19968: jis0212<<14 | 0x45<<7 | 0x32, - 38466 - 19968: jis0208<<14 | 0x4E<<7 | 0x57, - 38468 - 19968: jis0208<<14 | 0x28<<7 | 0x4C, - 38475 - 19968: jis0208<<14 | 0x4E<<7 | 0x5A, - 38476 - 19968: jis0208<<14 | 0x4E<<7 | 0x58, - 38477 - 19968: jis0208<<14 | 0x18<<7 | 0x3E, - 38479 - 19968: jis0208<<14 | 0x4E<<7 | 0x59, - 38480 - 19968: jis0208<<14 | 0x17<<7 | 0x21, - 38482 - 19968: jis0212<<14 | 0x45<<7 | 0x33, - 38484 - 19968: jis0212<<14 | 0x45<<7 | 0x34, - 38486 - 19968: jis0212<<14 | 0x45<<7 | 0x35, - 38487 - 19968: jis0212<<14 | 0x45<<7 | 0x36, - 38488 - 19968: jis0212<<14 | 0x45<<7 | 0x37, - 38491 - 19968: jis0208<<14 | 0x29<<7 | 0x24, - 38492 - 19968: jis0208<<14 | 0x4E<<7 | 0x5C, - 38493 - 19968: jis0208<<14 | 0x4F<<7 | 0x00, - 38494 - 19968: jis0208<<14 | 0x4E<<7 | 0x5D, - 38495 - 19968: jis0208<<14 | 0x4F<<7 | 0x01, - 38497 - 19968: jis0212<<14 | 0x45<<7 | 0x38, - 38498 - 19968: jis0208<<14 | 0x10<<7 | 0x00, - 38499 - 19968: jis0208<<14 | 0x1E<<7 | 0x37, - 38500 - 19968: jis0208<<14 | 0x1C<<7 | 0x5B, - 38501 - 19968: jis0208<<14 | 0x13<<7 | 0x38, - 38502 - 19968: jis0208<<14 | 0x4F<<7 | 0x02, - 38506 - 19968: jis0208<<14 | 0x26<<7 | 0x45, - 38508 - 19968: jis0208<<14 | 0x4F<<7 | 0x04, - 38510 - 19968: jis0212<<14 | 0x45<<7 | 0x39, - 38512 - 19968: jis0208<<14 | 0x10<<7 | 0x01, - 38514 - 19968: jis0208<<14 | 0x4F<<7 | 0x03, - 38515 - 19968: jis0208<<14 | 0x23<<7 | 0x23, - 38516 - 19968: jis0212<<14 | 0x45<<7 | 0x3A, - 38517 - 19968: jis0208<<14 | 0x2D<<7 | 0x2C, - 38518 - 19968: jis0208<<14 | 0x25<<7 | 0x0A, - 38519 - 19968: jis0208<<14 | 0x4E<<7 | 0x5B, - 38520 - 19968: jis0208<<14 | 0x2D<<7 | 0x05, - 38522 - 19968: jis0208<<14 | 0x17<<7 | 0x10, - 38523 - 19968: jis0212<<14 | 0x45<<7 | 0x3B, - 38524 - 19968: jis0212<<14 | 0x45<<7 | 0x3C, - 38525 - 19968: jis0208<<14 | 0x2C<<7 | 0x3A, - 38526 - 19968: jis0212<<14 | 0x45<<7 | 0x3D, - 38527 - 19968: jis0212<<14 | 0x45<<7 | 0x3E, - 38529 - 19968: jis0212<<14 | 0x45<<7 | 0x3F, - 38530 - 19968: jis0212<<14 | 0x45<<7 | 0x40, - 38531 - 19968: jis0212<<14 | 0x45<<7 | 0x41, - 38532 - 19968: jis0212<<14 | 0x45<<7 | 0x42, - 38533 - 19968: jis0208<<14 | 0x15<<7 | 0x58, - 38534 - 19968: jis0208<<14 | 0x2D<<7 | 0x13, - 38536 - 19968: jis0208<<14 | 0x16<<7 | 0x07, - 38537 - 19968: jis0212<<14 | 0x45<<7 | 0x43, - 38538 - 19968: jis0208<<14 | 0x21<<7 | 0x41, - 38539 - 19968: jis0208<<14 | 0x46<<7 | 0x00, - 38541 - 19968: jis0208<<14 | 0x4F<<7 | 0x05, - 38542 - 19968: jis0208<<14 | 0x12<<7 | 0x0B, - 38543 - 19968: jis0208<<14 | 0x1E<<7 | 0x4E, - 38545 - 19968: jis0212<<14 | 0x45<<7 | 0x44, - 38548 - 19968: jis0208<<14 | 0x12<<7 | 0x35, - 38549 - 19968: jis0208<<14 | 0x4F<<7 | 0x07, - 38550 - 19968: jis0212<<14 | 0x45<<7 | 0x45, - 38551 - 19968: jis0208<<14 | 0x4F<<7 | 0x08, - 38552 - 19968: jis0208<<14 | 0x4F<<7 | 0x06, - 38553 - 19968: jis0208<<14 | 0x16<<7 | 0x43, - 38554 - 19968: jis0212<<14 | 0x45<<7 | 0x46, - 38555 - 19968: jis0208<<14 | 0x19<<7 | 0x3C, - 38556 - 19968: jis0208<<14 | 0x1D<<7 | 0x42, - 38557 - 19968: jis0208<<14 | 0x5B<<7 | 0x30, - 38559 - 19968: jis0212<<14 | 0x45<<7 | 0x48, - 38560 - 19968: jis0208<<14 | 0x10<<7 | 0x02, - 38563 - 19968: jis0208<<14 | 0x2D<<7 | 0x38, - 38564 - 19968: jis0212<<14 | 0x45<<7 | 0x49, - 38565 - 19968: jis0212<<14 | 0x45<<7 | 0x4A, - 38566 - 19968: jis0212<<14 | 0x45<<7 | 0x4B, - 38567 - 19968: jis0208<<14 | 0x4F<<7 | 0x0A, - 38568 - 19968: jis0208<<14 | 0x4D<<7 | 0x0D, - 38569 - 19968: jis0212<<14 | 0x45<<7 | 0x4C, - 38570 - 19968: jis0208<<14 | 0x4F<<7 | 0x09, - 38574 - 19968: jis0212<<14 | 0x45<<7 | 0x4D, - 38575 - 19968: jis0208<<14 | 0x5B<<7 | 0x31, - 38576 - 19968: jis0208<<14 | 0x4F<<7 | 0x0D, - 38577 - 19968: jis0208<<14 | 0x4F<<7 | 0x0B, - 38578 - 19968: jis0208<<14 | 0x4F<<7 | 0x0C, - 38579 - 19968: jis0212<<14 | 0x45<<7 | 0x4F, - 38580 - 19968: jis0208<<14 | 0x4F<<7 | 0x0E, - 38582 - 19968: jis0208<<14 | 0x4F<<7 | 0x0F, - 38583 - 19968: jis0208<<14 | 0x2D<<7 | 0x4B, - 38584 - 19968: jis0208<<14 | 0x4F<<7 | 0x10, - 38585 - 19968: jis0208<<14 | 0x4F<<7 | 0x11, - 38586 - 19968: jis0212<<14 | 0x45<<7 | 0x50, - 38587 - 19968: jis0208<<14 | 0x1F<<7 | 0x28, - 38588 - 19968: jis0208<<14 | 0x27<<7 | 0x1A, - 38592 - 19968: jis0208<<14 | 0x1E<<7 | 0x5C, - 38593 - 19968: jis0208<<14 | 0x13<<7 | 0x46, - 38596 - 19968: jis0208<<14 | 0x2C<<7 | 0x19, - 38597 - 19968: jis0208<<14 | 0x11<<7 | 0x4C, - 38598 - 19968: jis0208<<14 | 0x1C<<7 | 0x17, - 38599 - 19968: jis0208<<14 | 0x17<<7 | 0x3A, - 38601 - 19968: jis0208<<14 | 0x4F<<7 | 0x14, - 38602 - 19968: jis0212<<14 | 0x45<<7 | 0x51, - 38603 - 19968: jis0208<<14 | 0x4F<<7 | 0x13, - 38604 - 19968: jis0208<<14 | 0x1A<<7 | 0x52, - 38605 - 19968: jis0208<<14 | 0x4F<<7 | 0x15, - 38606 - 19968: jis0208<<14 | 0x4F<<7 | 0x12, - 38609 - 19968: jis0208<<14 | 0x1A<<7 | 0x07, - 38610 - 19968: jis0212<<14 | 0x45<<7 | 0x52, - 38613 - 19968: jis0208<<14 | 0x4F<<7 | 0x19, - 38614 - 19968: jis0208<<14 | 0x49<<7 | 0x0C, - 38616 - 19968: jis0212<<14 | 0x45<<7 | 0x54, - 38617 - 19968: jis0208<<14 | 0x31<<7 | 0x35, - 38618 - 19968: jis0212<<14 | 0x45<<7 | 0x55, - 38619 - 19968: jis0208<<14 | 0x1E<<7 | 0x56, - 38620 - 19968: jis0208<<14 | 0x4F<<7 | 0x17, - 38621 - 19968: jis0212<<14 | 0x45<<7 | 0x56, - 38622 - 19968: jis0212<<14 | 0x45<<7 | 0x57, - 38623 - 19968: jis0212<<14 | 0x45<<7 | 0x58, - 38626 - 19968: jis0208<<14 | 0x2D<<7 | 0x04, - 38627 - 19968: jis0208<<14 | 0x25<<7 | 0x50, - 38632 - 19968: jis0208<<14 | 0x10<<7 | 0x0A, - 38633 - 19968: jis0212<<14 | 0x45<<7 | 0x59, - 38634 - 19968: jis0208<<14 | 0x1F<<7 | 0x42, - 38635 - 19968: jis0208<<14 | 0x1B<<7 | 0x15, - 38639 - 19968: jis0212<<14 | 0x45<<7 | 0x5A, - 38640 - 19968: jis0208<<14 | 0x29<<7 | 0x16, - 38641 - 19968: jis0212<<14 | 0x45<<7 | 0x5B, - 38642 - 19968: jis0208<<14 | 0x10<<7 | 0x1F, - 38646 - 19968: jis0208<<14 | 0x2D<<7 | 0x4C, - 38647 - 19968: jis0208<<14 | 0x2C<<7 | 0x4A, - 38649 - 19968: jis0208<<14 | 0x4F<<7 | 0x1A, - 38650 - 19968: jis0212<<14 | 0x45<<7 | 0x5C, - 38651 - 19968: jis0208<<14 | 0x24<<7 | 0x24, - 38656 - 19968: jis0208<<14 | 0x1B<<7 | 0x5A, - 38658 - 19968: jis0212<<14 | 0x45<<7 | 0x5D, - 38659 - 19968: jis0212<<14 | 0x46<<7 | 0x00, - 38660 - 19968: jis0208<<14 | 0x4F<<7 | 0x1B, - 38661 - 19968: jis0212<<14 | 0x46<<7 | 0x01, - 38662 - 19968: jis0208<<14 | 0x4F<<7 | 0x1C, - 38663 - 19968: jis0208<<14 | 0x1E<<7 | 0x2B, - 38664 - 19968: jis0208<<14 | 0x4F<<7 | 0x1D, - 38665 - 19968: jis0212<<14 | 0x46<<7 | 0x02, - 38666 - 19968: jis0208<<14 | 0x2D<<7 | 0x4D, - 38669 - 19968: jis0208<<14 | 0x4F<<7 | 0x18, - 38670 - 19968: jis0208<<14 | 0x4F<<7 | 0x1F, - 38671 - 19968: jis0208<<14 | 0x4F<<7 | 0x21, - 38673 - 19968: jis0208<<14 | 0x4F<<7 | 0x20, - 38675 - 19968: jis0208<<14 | 0x4F<<7 | 0x1E, - 38678 - 19968: jis0208<<14 | 0x4F<<7 | 0x22, - 38681 - 19968: jis0208<<14 | 0x4F<<7 | 0x23, - 38682 - 19968: jis0212<<14 | 0x46<<7 | 0x03, - 38683 - 19968: jis0212<<14 | 0x46<<7 | 0x04, - 38684 - 19968: jis0208<<14 | 0x20<<7 | 0x59, - 38685 - 19968: jis0212<<14 | 0x46<<7 | 0x05, - 38686 - 19968: jis0208<<14 | 0x11<<7 | 0x41, - 38689 - 19968: jis0212<<14 | 0x46<<7 | 0x06, - 38690 - 19968: jis0212<<14 | 0x46<<7 | 0x07, - 38691 - 19968: jis0212<<14 | 0x46<<7 | 0x08, - 38692 - 19968: jis0208<<14 | 0x4F<<7 | 0x24, - 38695 - 19968: jis0208<<14 | 0x2B<<7 | 0x17, - 38696 - 19968: jis0212<<14 | 0x46<<7 | 0x09, - 38698 - 19968: jis0208<<14 | 0x4F<<7 | 0x25, - 38704 - 19968: jis0208<<14 | 0x4F<<7 | 0x26, - 38705 - 19968: jis0212<<14 | 0x46<<7 | 0x0A, - 38706 - 19968: jis0208<<14 | 0x2E<<7 | 0x09, - 38707 - 19968: jis0208<<14 | 0x5B<<7 | 0x32, - 38712 - 19968: jis0208<<14 | 0x3A<<7 | 0x10, - 38713 - 19968: jis0208<<14 | 0x4F<<7 | 0x27, - 38715 - 19968: jis0208<<14 | 0x5B<<7 | 0x33, - 38717 - 19968: jis0208<<14 | 0x4F<<7 | 0x28, - 38718 - 19968: jis0208<<14 | 0x4F<<7 | 0x29, - 38721 - 19968: jis0212<<14 | 0x46<<7 | 0x0C, - 38722 - 19968: jis0208<<14 | 0x4F<<7 | 0x2D, - 38723 - 19968: jis0208<<14 | 0x5B<<7 | 0x34, - 38724 - 19968: jis0208<<14 | 0x4F<<7 | 0x2A, - 38726 - 19968: jis0208<<14 | 0x4F<<7 | 0x2B, - 38728 - 19968: jis0208<<14 | 0x4F<<7 | 0x2C, - 38729 - 19968: jis0208<<14 | 0x4F<<7 | 0x2E, - 38730 - 19968: jis0212<<14 | 0x46<<7 | 0x0E, - 38733 - 19968: jis0208<<14 | 0x5B<<7 | 0x35, - 38734 - 19968: jis0212<<14 | 0x46<<7 | 0x0F, - 38735 - 19968: jis0208<<14 | 0x5B<<7 | 0x36, - 38737 - 19968: jis0208<<14 | 0x5B<<7 | 0x37, - 38738 - 19968: jis0208<<14 | 0x1F<<7 | 0x23, - 38741 - 19968: jis0208<<14 | 0x5B<<7 | 0x38, - 38742 - 19968: jis0208<<14 | 0x2B<<7 | 0x56, - 38743 - 19968: jis0212<<14 | 0x46<<7 | 0x12, - 38744 - 19968: jis0212<<14 | 0x46<<7 | 0x13, - 38745 - 19968: jis0208<<14 | 0x1F<<7 | 0x24, - 38746 - 19968: jis0212<<14 | 0x46<<7 | 0x14, - 38747 - 19968: jis0212<<14 | 0x46<<7 | 0x15, - 38748 - 19968: jis0208<<14 | 0x4F<<7 | 0x2F, - 38750 - 19968: jis0208<<14 | 0x27<<7 | 0x52, - 38752 - 19968: jis0208<<14 | 0x4F<<7 | 0x30, - 38753 - 19968: jis0208<<14 | 0x52<<7 | 0x32, - 38754 - 19968: jis0208<<14 | 0x2B<<7 | 0x2B, - 38755 - 19968: jis0212<<14 | 0x46<<7 | 0x16, - 38756 - 19968: jis0208<<14 | 0x4F<<7 | 0x31, - 38758 - 19968: jis0208<<14 | 0x4F<<7 | 0x32, - 38759 - 19968: jis0212<<14 | 0x46<<7 | 0x17, - 38760 - 19968: jis0208<<14 | 0x4F<<7 | 0x33, - 38761 - 19968: jis0208<<14 | 0x12<<7 | 0x36, - 38762 - 19968: jis0212<<14 | 0x46<<7 | 0x18, - 38763 - 19968: jis0208<<14 | 0x4F<<7 | 0x35, - 38765 - 19968: jis0208<<14 | 0x1E<<7 | 0x38, - 38766 - 19968: jis0212<<14 | 0x46<<7 | 0x19, - 38769 - 19968: jis0208<<14 | 0x4F<<7 | 0x36, - 38771 - 19968: jis0212<<14 | 0x46<<7 | 0x1A, - 38772 - 19968: jis0208<<14 | 0x16<<7 | 0x03, - 38774 - 19968: jis0212<<14 | 0x46<<7 | 0x1B, - 38775 - 19968: jis0212<<14 | 0x46<<7 | 0x1C, - 38776 - 19968: jis0212<<14 | 0x46<<7 | 0x1D, - 38777 - 19968: jis0208<<14 | 0x4F<<7 | 0x37, - 38778 - 19968: jis0208<<14 | 0x4F<<7 | 0x3B, - 38779 - 19968: jis0212<<14 | 0x46<<7 | 0x1E, - 38780 - 19968: jis0208<<14 | 0x4F<<7 | 0x39, - 38781 - 19968: jis0212<<14 | 0x46<<7 | 0x1F, - 38783 - 19968: jis0212<<14 | 0x46<<7 | 0x20, - 38784 - 19968: jis0212<<14 | 0x46<<7 | 0x21, - 38785 - 19968: jis0208<<14 | 0x4F<<7 | 0x3A, - 38788 - 19968: jis0208<<14 | 0x12<<7 | 0x52, - 38789 - 19968: jis0208<<14 | 0x4F<<7 | 0x38, - 38790 - 19968: jis0208<<14 | 0x4F<<7 | 0x3C, - 38793 - 19968: jis0212<<14 | 0x46<<7 | 0x22, - 38795 - 19968: jis0208<<14 | 0x4F<<7 | 0x3D, - 38797 - 19968: jis0208<<14 | 0x0F<<7 | 0x27, - 38799 - 19968: jis0208<<14 | 0x4F<<7 | 0x3E, - 38800 - 19968: jis0208<<14 | 0x4F<<7 | 0x3F, - 38805 - 19968: jis0212<<14 | 0x46<<7 | 0x23, - 38806 - 19968: jis0212<<14 | 0x46<<7 | 0x24, - 38807 - 19968: jis0212<<14 | 0x46<<7 | 0x25, - 38808 - 19968: jis0208<<14 | 0x1D<<7 | 0x43, - 38809 - 19968: jis0212<<14 | 0x46<<7 | 0x26, - 38810 - 19968: jis0212<<14 | 0x46<<7 | 0x27, - 38812 - 19968: jis0208<<14 | 0x4F<<7 | 0x40, - 38814 - 19968: jis0212<<14 | 0x46<<7 | 0x28, - 38815 - 19968: jis0212<<14 | 0x46<<7 | 0x29, - 38816 - 19968: jis0208<<14 | 0x14<<7 | 0x26, - 38818 - 19968: jis0212<<14 | 0x46<<7 | 0x2A, - 38819 - 19968: jis0208<<14 | 0x4F<<7 | 0x43, - 38822 - 19968: jis0208<<14 | 0x4F<<7 | 0x42, - 38824 - 19968: jis0208<<14 | 0x4F<<7 | 0x41, - 38827 - 19968: jis0208<<14 | 0x4A<<7 | 0x50, - 38828 - 19968: jis0212<<14 | 0x46<<7 | 0x2B, - 38829 - 19968: jis0208<<14 | 0x29<<7 | 0x3B, - 38830 - 19968: jis0212<<14 | 0x46<<7 | 0x2C, - 38833 - 19968: jis0212<<14 | 0x46<<7 | 0x2D, - 38834 - 19968: jis0212<<14 | 0x46<<7 | 0x2E, - 38835 - 19968: jis0208<<14 | 0x4F<<7 | 0x44, - 38836 - 19968: jis0208<<14 | 0x4F<<7 | 0x45, - 38837 - 19968: jis0212<<14 | 0x46<<7 | 0x2F, - 38838 - 19968: jis0212<<14 | 0x46<<7 | 0x30, - 38840 - 19968: jis0212<<14 | 0x46<<7 | 0x31, - 38841 - 19968: jis0212<<14 | 0x46<<7 | 0x32, - 38842 - 19968: jis0212<<14 | 0x46<<7 | 0x33, - 38844 - 19968: jis0212<<14 | 0x46<<7 | 0x34, - 38846 - 19968: jis0212<<14 | 0x46<<7 | 0x35, - 38847 - 19968: jis0212<<14 | 0x46<<7 | 0x36, - 38849 - 19968: jis0212<<14 | 0x46<<7 | 0x37, - 38851 - 19968: jis0208<<14 | 0x4F<<7 | 0x46, - 38852 - 19968: jis0212<<14 | 0x46<<7 | 0x38, - 38853 - 19968: jis0212<<14 | 0x46<<7 | 0x39, - 38854 - 19968: jis0208<<14 | 0x4F<<7 | 0x47, - 38855 - 19968: jis0212<<14 | 0x46<<7 | 0x3A, - 38856 - 19968: jis0208<<14 | 0x4F<<7 | 0x48, - 38857 - 19968: jis0212<<14 | 0x46<<7 | 0x3B, - 38858 - 19968: jis0212<<14 | 0x46<<7 | 0x3C, - 38859 - 19968: jis0208<<14 | 0x4F<<7 | 0x49, - 38860 - 19968: jis0212<<14 | 0x46<<7 | 0x3D, - 38861 - 19968: jis0212<<14 | 0x46<<7 | 0x3E, - 38862 - 19968: jis0212<<14 | 0x46<<7 | 0x3F, - 38864 - 19968: jis0212<<14 | 0x46<<7 | 0x40, - 38865 - 19968: jis0212<<14 | 0x46<<7 | 0x41, - 38867 - 19968: jis0208<<14 | 0x13<<7 | 0x39, - 38868 - 19968: jis0212<<14 | 0x46<<7 | 0x42, - 38871 - 19968: jis0212<<14 | 0x46<<7 | 0x43, - 38872 - 19968: jis0212<<14 | 0x46<<7 | 0x44, - 38873 - 19968: jis0212<<14 | 0x46<<7 | 0x45, - 38875 - 19968: jis0212<<14 | 0x46<<7 | 0x49, - 38876 - 19968: jis0208<<14 | 0x4F<<7 | 0x4A, - 38877 - 19968: jis0212<<14 | 0x46<<7 | 0x46, - 38878 - 19968: jis0212<<14 | 0x46<<7 | 0x47, - 38880 - 19968: jis0212<<14 | 0x46<<7 | 0x48, - 38881 - 19968: jis0212<<14 | 0x46<<7 | 0x4A, - 38884 - 19968: jis0212<<14 | 0x46<<7 | 0x4B, - 38893 - 19968: jis0208<<14 | 0x4F<<7 | 0x4B, - 38894 - 19968: jis0208<<14 | 0x26<<7 | 0x02, - 38895 - 19968: jis0212<<14 | 0x46<<7 | 0x4C, - 38897 - 19968: jis0212<<14 | 0x46<<7 | 0x4D, - 38898 - 19968: jis0208<<14 | 0x4F<<7 | 0x4D, - 38899 - 19968: jis0208<<14 | 0x11<<7 | 0x1A, - 38900 - 19968: jis0212<<14 | 0x46<<7 | 0x4E, - 38901 - 19968: jis0208<<14 | 0x4F<<7 | 0x50, - 38902 - 19968: jis0208<<14 | 0x4F<<7 | 0x4F, - 38903 - 19968: jis0212<<14 | 0x46<<7 | 0x4F, - 38904 - 19968: jis0212<<14 | 0x46<<7 | 0x50, - 38906 - 19968: jis0212<<14 | 0x46<<7 | 0x51, - 38907 - 19968: jis0208<<14 | 0x10<<7 | 0x03, - 38911 - 19968: jis0208<<14 | 0x15<<7 | 0x20, - 38913 - 19968: jis0208<<14 | 0x29<<7 | 0x26, - 38914 - 19968: jis0208<<14 | 0x23<<7 | 0x19, - 38915 - 19968: jis0208<<14 | 0x19<<7 | 0x01, - 38917 - 19968: jis0208<<14 | 0x18<<7 | 0x3F, - 38918 - 19968: jis0208<<14 | 0x1C<<7 | 0x46, - 38919 - 19968: jis0212<<14 | 0x46<<7 | 0x52, - 38920 - 19968: jis0208<<14 | 0x1E<<7 | 0x3B, - 38922 - 19968: jis0212<<14 | 0x46<<7 | 0x53, - 38924 - 19968: jis0208<<14 | 0x4F<<7 | 0x52, - 38925 - 19968: jis0212<<14 | 0x46<<7 | 0x55, - 38926 - 19968: jis0212<<14 | 0x46<<7 | 0x56, - 38927 - 19968: jis0208<<14 | 0x4F<<7 | 0x51, - 38928 - 19968: jis0208<<14 | 0x2C<<7 | 0x21, - 38929 - 19968: jis0208<<14 | 0x13<<7 | 0x47, - 38930 - 19968: jis0208<<14 | 0x27<<7 | 0x31, - 38931 - 19968: jis0208<<14 | 0x25<<7 | 0x3B, - 38932 - 19968: jis0212<<14 | 0x46<<7 | 0x57, - 38934 - 19968: jis0212<<14 | 0x46<<7 | 0x58, - 38935 - 19968: jis0208<<14 | 0x1E<<7 | 0x5B, - 38936 - 19968: jis0208<<14 | 0x2D<<7 | 0x2D, - 38937 - 19968: jis0212<<14 | 0x46<<7 | 0x54, - 38938 - 19968: jis0208<<14 | 0x16<<7 | 0x3A, - 38940 - 19968: jis0212<<14 | 0x46<<7 | 0x59, - 38942 - 19968: jis0212<<14 | 0x46<<7 | 0x5A, - 38944 - 19968: jis0212<<14 | 0x46<<7 | 0x5B, - 38945 - 19968: jis0208<<14 | 0x4F<<7 | 0x55, - 38947 - 19968: jis0212<<14 | 0x46<<7 | 0x5C, - 38948 - 19968: jis0208<<14 | 0x4F<<7 | 0x54, - 38949 - 19968: jis0212<<14 | 0x47<<7 | 0x07, - 38950 - 19968: jis0212<<14 | 0x46<<7 | 0x5D, - 38955 - 19968: jis0212<<14 | 0x47<<7 | 0x00, - 38956 - 19968: jis0208<<14 | 0x2A<<7 | 0x2A, - 38957 - 19968: jis0208<<14 | 0x25<<7 | 0x0B, - 38958 - 19968: jis0212<<14 | 0x47<<7 | 0x01, - 38959 - 19968: jis0212<<14 | 0x47<<7 | 0x02, - 38960 - 19968: jis0212<<14 | 0x47<<7 | 0x03, - 38962 - 19968: jis0212<<14 | 0x47<<7 | 0x04, - 38963 - 19968: jis0212<<14 | 0x47<<7 | 0x05, - 38964 - 19968: jis0208<<14 | 0x10<<7 | 0x2F, - 38965 - 19968: jis0212<<14 | 0x47<<7 | 0x06, - 38967 - 19968: jis0208<<14 | 0x4F<<7 | 0x56, - 38968 - 19968: jis0208<<14 | 0x4F<<7 | 0x53, - 38971 - 19968: jis0208<<14 | 0x28<<7 | 0x30, - 38972 - 19968: jis0208<<14 | 0x2C<<7 | 0x49, - 38973 - 19968: jis0208<<14 | 0x4F<<7 | 0x57, - 38974 - 19968: jis0212<<14 | 0x47<<7 | 0x08, - 38980 - 19968: jis0212<<14 | 0x47<<7 | 0x09, - 38982 - 19968: jis0208<<14 | 0x4F<<7 | 0x58, - 38983 - 19968: jis0212<<14 | 0x47<<7 | 0x0A, - 38986 - 19968: jis0212<<14 | 0x47<<7 | 0x0B, - 38987 - 19968: jis0208<<14 | 0x4F<<7 | 0x5A, - 38988 - 19968: jis0208<<14 | 0x21<<7 | 0x49, - 38989 - 19968: jis0208<<14 | 0x12<<7 | 0x3A, - 38990 - 19968: jis0208<<14 | 0x12<<7 | 0x3B, - 38991 - 19968: jis0208<<14 | 0x4F<<7 | 0x59, - 38993 - 19968: jis0212<<14 | 0x47<<7 | 0x0C, - 38994 - 19968: jis0212<<14 | 0x47<<7 | 0x0D, - 38995 - 19968: jis0212<<14 | 0x47<<7 | 0x0E, - 38996 - 19968: jis0208<<14 | 0x13<<7 | 0x48, - 38997 - 19968: jis0208<<14 | 0x17<<7 | 0x11, - 38998 - 19968: jis0212<<14 | 0x47<<7 | 0x0F, - 38999 - 19968: jis0208<<14 | 0x5B<<7 | 0x39, - 39000 - 19968: jis0208<<14 | 0x13<<7 | 0x49, - 39001 - 19968: jis0212<<14 | 0x47<<7 | 0x11, - 39002 - 19968: jis0212<<14 | 0x47<<7 | 0x12, - 39003 - 19968: jis0208<<14 | 0x24<<7 | 0x1E, - 39006 - 19968: jis0208<<14 | 0x2D<<7 | 0x3F, - 39010 - 19968: jis0212<<14 | 0x47<<7 | 0x13, - 39011 - 19968: jis0212<<14 | 0x47<<7 | 0x14, - 39013 - 19968: jis0208<<14 | 0x5B<<7 | 0x3A, - 39014 - 19968: jis0212<<14 | 0x47<<7 | 0x16, - 39015 - 19968: jis0208<<14 | 0x17<<7 | 0x3B, - 39018 - 19968: jis0212<<14 | 0x47<<7 | 0x17, - 39019 - 19968: jis0208<<14 | 0x4F<<7 | 0x5B, - 39020 - 19968: jis0212<<14 | 0x47<<7 | 0x18, - 39023 - 19968: jis0208<<14 | 0x4F<<7 | 0x5C, - 39024 - 19968: jis0208<<14 | 0x4F<<7 | 0x5D, - 39025 - 19968: jis0208<<14 | 0x50<<7 | 0x00, - 39027 - 19968: jis0208<<14 | 0x50<<7 | 0x02, - 39028 - 19968: jis0208<<14 | 0x50<<7 | 0x01, - 39080 - 19968: jis0208<<14 | 0x28<<7 | 0x56, - 39082 - 19968: jis0208<<14 | 0x50<<7 | 0x03, - 39083 - 19968: jis0212<<14 | 0x47<<7 | 0x19, - 39085 - 19968: jis0212<<14 | 0x47<<7 | 0x1A, - 39086 - 19968: jis0212<<14 | 0x47<<7 | 0x1B, - 39087 - 19968: jis0208<<14 | 0x50<<7 | 0x04, - 39088 - 19968: jis0212<<14 | 0x47<<7 | 0x1C, - 39089 - 19968: jis0208<<14 | 0x50<<7 | 0x05, - 39092 - 19968: jis0212<<14 | 0x47<<7 | 0x1D, - 39094 - 19968: jis0208<<14 | 0x50<<7 | 0x06, - 39095 - 19968: jis0212<<14 | 0x47<<7 | 0x1E, - 39096 - 19968: jis0212<<14 | 0x47<<7 | 0x1F, - 39098 - 19968: jis0212<<14 | 0x47<<7 | 0x20, - 39099 - 19968: jis0212<<14 | 0x47<<7 | 0x21, - 39103 - 19968: jis0212<<14 | 0x47<<7 | 0x22, - 39106 - 19968: jis0212<<14 | 0x47<<7 | 0x23, - 39107 - 19968: jis0208<<14 | 0x50<<7 | 0x08, - 39108 - 19968: jis0208<<14 | 0x50<<7 | 0x07, - 39109 - 19968: jis0212<<14 | 0x47<<7 | 0x24, - 39110 - 19968: jis0208<<14 | 0x50<<7 | 0x09, - 39112 - 19968: jis0212<<14 | 0x47<<7 | 0x25, - 39116 - 19968: jis0212<<14 | 0x47<<7 | 0x26, - 39131 - 19968: jis0208<<14 | 0x27<<7 | 0x53, - 39132 - 19968: jis0208<<14 | 0x45<<7 | 0x2B, - 39135 - 19968: jis0208<<14 | 0x1E<<7 | 0x08, - 39137 - 19968: jis0212<<14 | 0x47<<7 | 0x27, - 39138 - 19968: jis0208<<14 | 0x14<<7 | 0x11, - 39139 - 19968: jis0212<<14 | 0x47<<7 | 0x28, - 39141 - 19968: jis0212<<14 | 0x47<<7 | 0x29, - 39142 - 19968: jis0212<<14 | 0x47<<7 | 0x2A, - 39143 - 19968: jis0212<<14 | 0x47<<7 | 0x2B, - 39145 - 19968: jis0208<<14 | 0x50<<7 | 0x0A, - 39146 - 19968: jis0212<<14 | 0x47<<7 | 0x2C, - 39147 - 19968: jis0208<<14 | 0x50<<7 | 0x0B, - 39149 - 19968: jis0208<<14 | 0x31<<7 | 0x0B, - 39150 - 19968: jis0208<<14 | 0x3C<<7 | 0x1A, - 39151 - 19968: jis0208<<14 | 0x27<<7 | 0x32, - 39154 - 19968: jis0208<<14 | 0x0F<<7 | 0x5A, - 39155 - 19968: jis0212<<14 | 0x47<<7 | 0x2D, - 39156 - 19968: jis0208<<14 | 0x0F<<7 | 0x1A, - 39158 - 19968: jis0212<<14 | 0x47<<7 | 0x2E, - 39164 - 19968: jis0208<<14 | 0x1A<<7 | 0x53, - 39165 - 19968: jis0208<<14 | 0x2A<<7 | 0x0F, - 39166 - 19968: jis0208<<14 | 0x1D<<7 | 0x5D, - 39170 - 19968: jis0212<<14 | 0x47<<7 | 0x2F, - 39171 - 19968: jis0208<<14 | 0x50<<7 | 0x0C, - 39173 - 19968: jis0208<<14 | 0x2B<<7 | 0x3E, - 39175 - 19968: jis0212<<14 | 0x47<<7 | 0x30, - 39176 - 19968: jis0212<<14 | 0x47<<7 | 0x31, - 39177 - 19968: jis0208<<14 | 0x50<<7 | 0x0D, - 39178 - 19968: jis0208<<14 | 0x2C<<7 | 0x3B, - 39180 - 19968: jis0208<<14 | 0x10<<7 | 0x21, - 39184 - 19968: jis0208<<14 | 0x1A<<7 | 0x20, - 39185 - 19968: jis0212<<14 | 0x47<<7 | 0x32, - 39186 - 19968: jis0208<<14 | 0x50<<7 | 0x0E, - 39187 - 19968: jis0208<<14 | 0x11<<7 | 0x4D, - 39188 - 19968: jis0208<<14 | 0x50<<7 | 0x0F, - 39189 - 19968: jis0212<<14 | 0x47<<7 | 0x33, - 39190 - 19968: jis0212<<14 | 0x47<<7 | 0x34, - 39191 - 19968: jis0212<<14 | 0x47<<7 | 0x35, - 39192 - 19968: jis0208<<14 | 0x50<<7 | 0x10, - 39194 - 19968: jis0212<<14 | 0x47<<7 | 0x36, - 39195 - 19968: jis0212<<14 | 0x47<<7 | 0x37, - 39196 - 19968: jis0212<<14 | 0x47<<7 | 0x38, - 39197 - 19968: jis0208<<14 | 0x50<<7 | 0x12, - 39198 - 19968: jis0208<<14 | 0x50<<7 | 0x13, - 39199 - 19968: jis0212<<14 | 0x47<<7 | 0x39, - 39200 - 19968: jis0208<<14 | 0x50<<7 | 0x15, - 39201 - 19968: jis0208<<14 | 0x50<<7 | 0x11, - 39202 - 19968: jis0212<<14 | 0x47<<7 | 0x3A, - 39204 - 19968: jis0208<<14 | 0x50<<7 | 0x14, - 39206 - 19968: jis0212<<14 | 0x47<<7 | 0x3B, - 39207 - 19968: jis0208<<14 | 0x5B<<7 | 0x3D, - 39208 - 19968: jis0208<<14 | 0x13<<7 | 0x3A, - 39211 - 19968: jis0212<<14 | 0x47<<7 | 0x3D, - 39212 - 19968: jis0208<<14 | 0x50<<7 | 0x16, - 39214 - 19968: jis0208<<14 | 0x50<<7 | 0x17, - 39217 - 19968: jis0212<<14 | 0x47<<7 | 0x3E, - 39218 - 19968: jis0212<<14 | 0x47<<7 | 0x3F, - 39219 - 19968: jis0212<<14 | 0x47<<7 | 0x40, - 39220 - 19968: jis0212<<14 | 0x47<<7 | 0x41, - 39221 - 19968: jis0212<<14 | 0x47<<7 | 0x42, - 39225 - 19968: jis0212<<14 | 0x47<<7 | 0x43, - 39226 - 19968: jis0212<<14 | 0x47<<7 | 0x44, - 39227 - 19968: jis0212<<14 | 0x47<<7 | 0x45, - 39228 - 19968: jis0212<<14 | 0x47<<7 | 0x46, - 39229 - 19968: jis0208<<14 | 0x50<<7 | 0x18, - 39230 - 19968: jis0208<<14 | 0x50<<7 | 0x19, - 39232 - 19968: jis0212<<14 | 0x47<<7 | 0x47, - 39233 - 19968: jis0212<<14 | 0x47<<7 | 0x48, - 39234 - 19968: jis0208<<14 | 0x50<<7 | 0x1A, - 39237 - 19968: jis0208<<14 | 0x50<<7 | 0x1C, - 39238 - 19968: jis0212<<14 | 0x47<<7 | 0x49, - 39239 - 19968: jis0212<<14 | 0x47<<7 | 0x4A, - 39240 - 19968: jis0212<<14 | 0x47<<7 | 0x4B, - 39241 - 19968: jis0208<<14 | 0x50<<7 | 0x1B, - 39243 - 19968: jis0208<<14 | 0x50<<7 | 0x1E, - 39244 - 19968: jis0208<<14 | 0x50<<7 | 0x21, - 39245 - 19968: jis0212<<14 | 0x47<<7 | 0x4C, - 39246 - 19968: jis0212<<14 | 0x47<<7 | 0x4D, - 39248 - 19968: jis0208<<14 | 0x50<<7 | 0x1D, - 39249 - 19968: jis0208<<14 | 0x50<<7 | 0x1F, - 39250 - 19968: jis0208<<14 | 0x50<<7 | 0x20, - 39252 - 19968: jis0212<<14 | 0x47<<7 | 0x4E, - 39253 - 19968: jis0208<<14 | 0x50<<7 | 0x22, - 39255 - 19968: jis0208<<14 | 0x15<<7 | 0x21, - 39256 - 19968: jis0212<<14 | 0x47<<7 | 0x4F, - 39257 - 19968: jis0212<<14 | 0x47<<7 | 0x50, - 39259 - 19968: jis0212<<14 | 0x47<<7 | 0x51, - 39260 - 19968: jis0212<<14 | 0x47<<7 | 0x52, - 39262 - 19968: jis0212<<14 | 0x47<<7 | 0x53, - 39263 - 19968: jis0212<<14 | 0x47<<7 | 0x54, - 39264 - 19968: jis0212<<14 | 0x47<<7 | 0x55, - 39318 - 19968: jis0208<<14 | 0x1B<<7 | 0x52, - 39319 - 19968: jis0208<<14 | 0x50<<7 | 0x23, - 39320 - 19968: jis0208<<14 | 0x50<<7 | 0x24, - 39321 - 19968: jis0208<<14 | 0x18<<7 | 0x40, - 39323 - 19968: jis0212<<14 | 0x47<<7 | 0x56, - 39325 - 19968: jis0212<<14 | 0x47<<7 | 0x57, - 39326 - 19968: jis0208<<14 | 0x5B<<7 | 0x3F, - 39327 - 19968: jis0212<<14 | 0x47<<7 | 0x58, - 39333 - 19968: jis0208<<14 | 0x50<<7 | 0x25, - 39334 - 19968: jis0212<<14 | 0x47<<7 | 0x59, - 39336 - 19968: jis0208<<14 | 0x12<<7 | 0x1D, - 39340 - 19968: jis0208<<14 | 0x26<<7 | 0x2E, - 39341 - 19968: jis0208<<14 | 0x50<<7 | 0x26, - 39342 - 19968: jis0208<<14 | 0x50<<7 | 0x27, - 39344 - 19968: jis0212<<14 | 0x47<<7 | 0x5A, - 39345 - 19968: jis0212<<14 | 0x47<<7 | 0x5B, - 39346 - 19968: jis0212<<14 | 0x47<<7 | 0x5C, - 39347 - 19968: jis0208<<14 | 0x22<<7 | 0x39, - 39348 - 19968: jis0208<<14 | 0x25<<7 | 0x4A, - 39349 - 19968: jis0212<<14 | 0x47<<7 | 0x5D, - 39353 - 19968: jis0212<<14 | 0x48<<7 | 0x00, - 39354 - 19968: jis0212<<14 | 0x48<<7 | 0x01, - 39356 - 19968: jis0208<<14 | 0x50<<7 | 0x28, - 39357 - 19968: jis0212<<14 | 0x48<<7 | 0x02, - 39359 - 19968: jis0212<<14 | 0x48<<7 | 0x03, - 39361 - 19968: jis0208<<14 | 0x26<<7 | 0x5C, - 39363 - 19968: jis0212<<14 | 0x48<<7 | 0x04, - 39364 - 19968: jis0208<<14 | 0x21<<7 | 0x2B, - 39365 - 19968: jis0208<<14 | 0x10<<7 | 0x37, - 39366 - 19968: jis0208<<14 | 0x15<<7 | 0x4D, - 39368 - 19968: jis0208<<14 | 0x15<<7 | 0x4E, - 39369 - 19968: jis0212<<14 | 0x48<<7 | 0x05, - 39376 - 19968: jis0208<<14 | 0x22<<7 | 0x52, - 39377 - 19968: jis0208<<14 | 0x50<<7 | 0x2D, - 39378 - 19968: jis0208<<14 | 0x15<<7 | 0x4F, - 39379 - 19968: jis0212<<14 | 0x48<<7 | 0x06, - 39380 - 19968: jis0212<<14 | 0x48<<7 | 0x07, - 39381 - 19968: jis0208<<14 | 0x11<<7 | 0x4E, - 39384 - 19968: jis0208<<14 | 0x50<<7 | 0x2C, - 39385 - 19968: jis0212<<14 | 0x48<<7 | 0x08, - 39386 - 19968: jis0212<<14 | 0x48<<7 | 0x09, - 39387 - 19968: jis0208<<14 | 0x50<<7 | 0x2A, - 39388 - 19968: jis0212<<14 | 0x48<<7 | 0x0A, - 39389 - 19968: jis0208<<14 | 0x50<<7 | 0x2B, - 39390 - 19968: jis0212<<14 | 0x48<<7 | 0x0B, - 39391 - 19968: jis0208<<14 | 0x50<<7 | 0x29, - 39394 - 19968: jis0208<<14 | 0x50<<7 | 0x37, - 39399 - 19968: jis0212<<14 | 0x48<<7 | 0x0C, - 39402 - 19968: jis0212<<14 | 0x48<<7 | 0x0D, - 39403 - 19968: jis0212<<14 | 0x48<<7 | 0x0E, - 39404 - 19968: jis0212<<14 | 0x48<<7 | 0x0F, - 39405 - 19968: jis0208<<14 | 0x50<<7 | 0x2E, - 39406 - 19968: jis0208<<14 | 0x50<<7 | 0x2F, - 39408 - 19968: jis0212<<14 | 0x48<<7 | 0x10, - 39409 - 19968: jis0208<<14 | 0x50<<7 | 0x30, - 39410 - 19968: jis0208<<14 | 0x50<<7 | 0x31, - 39412 - 19968: jis0212<<14 | 0x48<<7 | 0x11, - 39413 - 19968: jis0212<<14 | 0x48<<7 | 0x12, - 39416 - 19968: jis0208<<14 | 0x50<<7 | 0x33, - 39417 - 19968: jis0212<<14 | 0x48<<7 | 0x13, - 39419 - 19968: jis0208<<14 | 0x50<<7 | 0x32, - 39421 - 19968: jis0212<<14 | 0x48<<7 | 0x14, - 39422 - 19968: jis0212<<14 | 0x48<<7 | 0x15, - 39423 - 19968: jis0208<<14 | 0x1C<<7 | 0x38, - 39425 - 19968: jis0208<<14 | 0x50<<7 | 0x34, - 39426 - 19968: jis0212<<14 | 0x48<<7 | 0x16, - 39427 - 19968: jis0212<<14 | 0x48<<7 | 0x17, - 39428 - 19968: jis0212<<14 | 0x48<<7 | 0x18, - 39429 - 19968: jis0208<<14 | 0x50<<7 | 0x36, - 39435 - 19968: jis0212<<14 | 0x48<<7 | 0x19, - 39436 - 19968: jis0212<<14 | 0x48<<7 | 0x1A, - 39438 - 19968: jis0208<<14 | 0x14<<7 | 0x12, - 39439 - 19968: jis0208<<14 | 0x50<<7 | 0x35, - 39440 - 19968: jis0212<<14 | 0x48<<7 | 0x1B, - 39441 - 19968: jis0212<<14 | 0x48<<7 | 0x1C, - 39442 - 19968: jis0208<<14 | 0x20<<7 | 0x5A, - 39443 - 19968: jis0208<<14 | 0x17<<7 | 0x12, - 39446 - 19968: jis0212<<14 | 0x48<<7 | 0x1D, - 39449 - 19968: jis0208<<14 | 0x50<<7 | 0x38, - 39454 - 19968: jis0212<<14 | 0x48<<7 | 0x1E, - 39456 - 19968: jis0212<<14 | 0x48<<7 | 0x1F, - 39458 - 19968: jis0212<<14 | 0x48<<7 | 0x20, - 39459 - 19968: jis0212<<14 | 0x48<<7 | 0x21, - 39460 - 19968: jis0212<<14 | 0x48<<7 | 0x22, - 39463 - 19968: jis0212<<14 | 0x48<<7 | 0x23, - 39464 - 19968: jis0208<<14 | 0x21<<7 | 0x2C, - 39467 - 19968: jis0208<<14 | 0x50<<7 | 0x39, - 39469 - 19968: jis0212<<14 | 0x48<<7 | 0x24, - 39470 - 19968: jis0212<<14 | 0x48<<7 | 0x25, - 39472 - 19968: jis0208<<14 | 0x25<<7 | 0x0C, - 39475 - 19968: jis0212<<14 | 0x48<<7 | 0x26, - 39477 - 19968: jis0212<<14 | 0x48<<7 | 0x27, - 39478 - 19968: jis0212<<14 | 0x48<<7 | 0x28, - 39479 - 19968: jis0208<<14 | 0x50<<7 | 0x3A, - 39480 - 19968: jis0212<<14 | 0x48<<7 | 0x29, - 39486 - 19968: jis0208<<14 | 0x50<<7 | 0x3F, - 39488 - 19968: jis0208<<14 | 0x50<<7 | 0x3D, - 39489 - 19968: jis0212<<14 | 0x48<<7 | 0x2B, - 39490 - 19968: jis0208<<14 | 0x50<<7 | 0x3C, - 39491 - 19968: jis0208<<14 | 0x50<<7 | 0x3E, - 39492 - 19968: jis0212<<14 | 0x48<<7 | 0x2C, - 39493 - 19968: jis0208<<14 | 0x50<<7 | 0x3B, - 39495 - 19968: jis0212<<14 | 0x48<<7 | 0x2A, - 39498 - 19968: jis0212<<14 | 0x48<<7 | 0x2D, - 39499 - 19968: jis0212<<14 | 0x48<<7 | 0x2E, - 39500 - 19968: jis0212<<14 | 0x48<<7 | 0x2F, - 39501 - 19968: jis0208<<14 | 0x50<<7 | 0x41, - 39502 - 19968: jis0208<<14 | 0x5B<<7 | 0x40, - 39505 - 19968: jis0212<<14 | 0x48<<7 | 0x31, - 39508 - 19968: jis0212<<14 | 0x48<<7 | 0x32, - 39509 - 19968: jis0208<<14 | 0x50<<7 | 0x40, - 39510 - 19968: jis0212<<14 | 0x48<<7 | 0x33, - 39511 - 19968: jis0208<<14 | 0x50<<7 | 0x43, - 39514 - 19968: jis0208<<14 | 0x15<<7 | 0x22, - 39515 - 19968: jis0208<<14 | 0x50<<7 | 0x42, - 39517 - 19968: jis0212<<14 | 0x48<<7 | 0x34, - 39519 - 19968: jis0208<<14 | 0x50<<7 | 0x44, - 39522 - 19968: jis0208<<14 | 0x50<<7 | 0x45, - 39524 - 19968: jis0208<<14 | 0x50<<7 | 0x47, - 39525 - 19968: jis0208<<14 | 0x50<<7 | 0x46, - 39529 - 19968: jis0208<<14 | 0x50<<7 | 0x48, - 39530 - 19968: jis0208<<14 | 0x50<<7 | 0x4A, - 39531 - 19968: jis0208<<14 | 0x50<<7 | 0x49, - 39592 - 19968: jis0208<<14 | 0x18<<7 | 0x5B, - 39594 - 19968: jis0212<<14 | 0x48<<7 | 0x35, - 39596 - 19968: jis0212<<14 | 0x48<<7 | 0x36, - 39597 - 19968: jis0208<<14 | 0x50<<7 | 0x4B, - 39598 - 19968: jis0212<<14 | 0x48<<7 | 0x37, - 39599 - 19968: jis0212<<14 | 0x48<<7 | 0x38, - 39600 - 19968: jis0208<<14 | 0x50<<7 | 0x4C, - 39602 - 19968: jis0212<<14 | 0x48<<7 | 0x39, - 39604 - 19968: jis0212<<14 | 0x48<<7 | 0x3A, - 39605 - 19968: jis0212<<14 | 0x48<<7 | 0x3B, - 39606 - 19968: jis0212<<14 | 0x48<<7 | 0x3C, - 39608 - 19968: jis0208<<14 | 0x12<<7 | 0x1B, - 39609 - 19968: jis0212<<14 | 0x48<<7 | 0x3D, - 39611 - 19968: jis0212<<14 | 0x48<<7 | 0x3E, - 39612 - 19968: jis0208<<14 | 0x50<<7 | 0x4D, - 39614 - 19968: jis0212<<14 | 0x48<<7 | 0x3F, - 39615 - 19968: jis0212<<14 | 0x48<<7 | 0x40, - 39616 - 19968: jis0208<<14 | 0x50<<7 | 0x4E, - 39617 - 19968: jis0212<<14 | 0x48<<7 | 0x41, - 39619 - 19968: jis0212<<14 | 0x48<<7 | 0x42, - 39620 - 19968: jis0208<<14 | 0x1E<<7 | 0x50, - 39622 - 19968: jis0212<<14 | 0x48<<7 | 0x43, - 39624 - 19968: jis0212<<14 | 0x48<<7 | 0x44, - 39630 - 19968: jis0212<<14 | 0x48<<7 | 0x45, - 39631 - 19968: jis0208<<14 | 0x50<<7 | 0x4F, - 39632 - 19968: jis0212<<14 | 0x48<<7 | 0x46, - 39633 - 19968: jis0208<<14 | 0x50<<7 | 0x50, - 39634 - 19968: jis0212<<14 | 0x48<<7 | 0x47, - 39635 - 19968: jis0208<<14 | 0x50<<7 | 0x51, - 39636 - 19968: jis0208<<14 | 0x50<<7 | 0x52, - 39637 - 19968: jis0212<<14 | 0x48<<7 | 0x48, - 39638 - 19968: jis0212<<14 | 0x48<<7 | 0x49, - 39639 - 19968: jis0212<<14 | 0x48<<7 | 0x4A, - 39640 - 19968: jis0208<<14 | 0x18<<7 | 0x41, - 39641 - 19968: jis0208<<14 | 0x5B<<7 | 0x41, - 39643 - 19968: jis0212<<14 | 0x48<<7 | 0x4B, - 39644 - 19968: jis0208<<14 | 0x5B<<7 | 0x42, - 39646 - 19968: jis0208<<14 | 0x50<<7 | 0x53, - 39647 - 19968: jis0208<<14 | 0x50<<7 | 0x54, - 39648 - 19968: jis0212<<14 | 0x48<<7 | 0x4D, - 39650 - 19968: jis0208<<14 | 0x50<<7 | 0x55, - 39651 - 19968: jis0208<<14 | 0x50<<7 | 0x56, - 39652 - 19968: jis0212<<14 | 0x48<<7 | 0x4E, - 39653 - 19968: jis0212<<14 | 0x48<<7 | 0x4F, - 39654 - 19968: jis0208<<14 | 0x50<<7 | 0x57, - 39655 - 19968: jis0212<<14 | 0x48<<7 | 0x50, - 39657 - 19968: jis0212<<14 | 0x48<<7 | 0x51, - 39658 - 19968: jis0208<<14 | 0x27<<7 | 0x10, - 39659 - 19968: jis0208<<14 | 0x50<<7 | 0x59, - 39660 - 19968: jis0212<<14 | 0x48<<7 | 0x52, - 39661 - 19968: jis0208<<14 | 0x28<<7 | 0x05, - 39662 - 19968: jis0208<<14 | 0x50<<7 | 0x5A, - 39663 - 19968: jis0208<<14 | 0x50<<7 | 0x58, - 39665 - 19968: jis0208<<14 | 0x50<<7 | 0x5C, - 39666 - 19968: jis0212<<14 | 0x48<<7 | 0x53, - 39667 - 19968: jis0212<<14 | 0x48<<7 | 0x54, - 39668 - 19968: jis0208<<14 | 0x50<<7 | 0x5B, - 39669 - 19968: jis0212<<14 | 0x48<<7 | 0x55, - 39671 - 19968: jis0208<<14 | 0x50<<7 | 0x5D, - 39673 - 19968: jis0212<<14 | 0x48<<7 | 0x56, - 39674 - 19968: jis0212<<14 | 0x48<<7 | 0x57, - 39675 - 19968: jis0208<<14 | 0x51<<7 | 0x00, - 39677 - 19968: jis0212<<14 | 0x48<<7 | 0x58, - 39679 - 19968: jis0212<<14 | 0x48<<7 | 0x59, - 39680 - 19968: jis0212<<14 | 0x48<<7 | 0x5A, - 39681 - 19968: jis0212<<14 | 0x48<<7 | 0x5B, - 39682 - 19968: jis0212<<14 | 0x48<<7 | 0x5C, - 39683 - 19968: jis0212<<14 | 0x48<<7 | 0x5D, - 39684 - 19968: jis0212<<14 | 0x49<<7 | 0x00, - 39685 - 19968: jis0212<<14 | 0x49<<7 | 0x01, - 39686 - 19968: jis0208<<14 | 0x51<<7 | 0x01, - 39688 - 19968: jis0212<<14 | 0x49<<7 | 0x02, - 39689 - 19968: jis0212<<14 | 0x49<<7 | 0x03, - 39691 - 19968: jis0212<<14 | 0x49<<7 | 0x04, - 39692 - 19968: jis0212<<14 | 0x49<<7 | 0x05, - 39693 - 19968: jis0212<<14 | 0x49<<7 | 0x06, - 39694 - 19968: jis0212<<14 | 0x49<<7 | 0x07, - 39696 - 19968: jis0212<<14 | 0x49<<7 | 0x08, - 39698 - 19968: jis0212<<14 | 0x49<<7 | 0x09, - 39702 - 19968: jis0212<<14 | 0x49<<7 | 0x0A, - 39704 - 19968: jis0208<<14 | 0x51<<7 | 0x02, - 39705 - 19968: jis0212<<14 | 0x49<<7 | 0x0B, - 39706 - 19968: jis0208<<14 | 0x51<<7 | 0x03, - 39707 - 19968: jis0212<<14 | 0x49<<7 | 0x0C, - 39708 - 19968: jis0212<<14 | 0x49<<7 | 0x0D, - 39711 - 19968: jis0208<<14 | 0x51<<7 | 0x04, - 39712 - 19968: jis0212<<14 | 0x49<<7 | 0x0E, - 39714 - 19968: jis0208<<14 | 0x51<<7 | 0x05, - 39715 - 19968: jis0208<<14 | 0x51<<7 | 0x06, - 39717 - 19968: jis0208<<14 | 0x51<<7 | 0x07, - 39718 - 19968: jis0212<<14 | 0x49<<7 | 0x0F, - 39719 - 19968: jis0208<<14 | 0x51<<7 | 0x08, - 39720 - 19968: jis0208<<14 | 0x51<<7 | 0x09, - 39721 - 19968: jis0208<<14 | 0x51<<7 | 0x0A, - 39722 - 19968: jis0208<<14 | 0x51<<7 | 0x0B, - 39723 - 19968: jis0212<<14 | 0x49<<7 | 0x10, - 39725 - 19968: jis0212<<14 | 0x49<<7 | 0x11, - 39726 - 19968: jis0208<<14 | 0x51<<7 | 0x0C, - 39727 - 19968: jis0208<<14 | 0x51<<7 | 0x0D, - 39729 - 19968: jis0208<<14 | 0x3C<<7 | 0x14, - 39730 - 19968: jis0208<<14 | 0x51<<7 | 0x0E, - 39731 - 19968: jis0212<<14 | 0x49<<7 | 0x12, - 39732 - 19968: jis0212<<14 | 0x49<<7 | 0x13, - 39733 - 19968: jis0212<<14 | 0x49<<7 | 0x14, - 39735 - 19968: jis0212<<14 | 0x49<<7 | 0x15, - 39737 - 19968: jis0212<<14 | 0x49<<7 | 0x16, - 39738 - 19968: jis0212<<14 | 0x49<<7 | 0x17, - 39739 - 19968: jis0208<<14 | 0x43<<7 | 0x57, - 39740 - 19968: jis0208<<14 | 0x14<<7 | 0x13, - 39741 - 19968: jis0212<<14 | 0x49<<7 | 0x18, - 39745 - 19968: jis0208<<14 | 0x12<<7 | 0x00, - 39746 - 19968: jis0208<<14 | 0x19<<7 | 0x11, - 39747 - 19968: jis0208<<14 | 0x51<<7 | 0x10, - 39748 - 19968: jis0208<<14 | 0x51<<7 | 0x0F, - 39749 - 19968: jis0208<<14 | 0x2B<<7 | 0x04, - 39752 - 19968: jis0212<<14 | 0x49<<7 | 0x19, - 39755 - 19968: jis0212<<14 | 0x49<<7 | 0x1A, - 39756 - 19968: jis0212<<14 | 0x49<<7 | 0x1B, - 39757 - 19968: jis0208<<14 | 0x51<<7 | 0x12, - 39758 - 19968: jis0208<<14 | 0x51<<7 | 0x13, - 39759 - 19968: jis0208<<14 | 0x51<<7 | 0x11, - 39761 - 19968: jis0208<<14 | 0x51<<7 | 0x14, - 39764 - 19968: jis0208<<14 | 0x2A<<7 | 0x41, - 39765 - 19968: jis0212<<14 | 0x49<<7 | 0x1C, - 39766 - 19968: jis0212<<14 | 0x49<<7 | 0x1D, - 39767 - 19968: jis0212<<14 | 0x49<<7 | 0x1E, - 39768 - 19968: jis0208<<14 | 0x51<<7 | 0x15, - 39770 - 19968: jis0208<<14 | 0x14<<7 | 0x5A, - 39771 - 19968: jis0212<<14 | 0x49<<7 | 0x1F, - 39774 - 19968: jis0212<<14 | 0x49<<7 | 0x20, - 39777 - 19968: jis0212<<14 | 0x49<<7 | 0x21, - 39779 - 19968: jis0212<<14 | 0x49<<7 | 0x22, - 39781 - 19968: jis0212<<14 | 0x49<<7 | 0x23, - 39782 - 19968: jis0212<<14 | 0x49<<7 | 0x24, - 39784 - 19968: jis0212<<14 | 0x49<<7 | 0x25, - 39786 - 19968: jis0212<<14 | 0x49<<7 | 0x26, - 39787 - 19968: jis0212<<14 | 0x49<<7 | 0x27, - 39788 - 19968: jis0212<<14 | 0x49<<7 | 0x28, - 39789 - 19968: jis0212<<14 | 0x49<<7 | 0x29, - 39790 - 19968: jis0212<<14 | 0x49<<7 | 0x2A, - 39791 - 19968: jis0208<<14 | 0x2E<<7 | 0x04, - 39794 - 19968: jis0208<<14 | 0x5B<<7 | 0x44, - 39795 - 19968: jis0212<<14 | 0x49<<7 | 0x2B, - 39796 - 19968: jis0208<<14 | 0x51<<7 | 0x16, - 39797 - 19968: jis0208<<14 | 0x5B<<7 | 0x43, - 39799 - 19968: jis0212<<14 | 0x49<<7 | 0x2D, - 39800 - 19968: jis0212<<14 | 0x49<<7 | 0x2E, - 39801 - 19968: jis0212<<14 | 0x49<<7 | 0x2F, - 39807 - 19968: jis0212<<14 | 0x49<<7 | 0x30, - 39808 - 19968: jis0212<<14 | 0x49<<7 | 0x31, - 39811 - 19968: jis0208<<14 | 0x51<<7 | 0x18, - 39812 - 19968: jis0212<<14 | 0x49<<7 | 0x32, - 39813 - 19968: jis0212<<14 | 0x49<<7 | 0x33, - 39814 - 19968: jis0212<<14 | 0x49<<7 | 0x34, - 39815 - 19968: jis0212<<14 | 0x49<<7 | 0x35, - 39817 - 19968: jis0212<<14 | 0x49<<7 | 0x36, - 39818 - 19968: jis0212<<14 | 0x49<<7 | 0x37, - 39819 - 19968: jis0212<<14 | 0x49<<7 | 0x38, - 39821 - 19968: jis0212<<14 | 0x49<<7 | 0x39, - 39822 - 19968: jis0208<<14 | 0x0F<<7 | 0x1D, - 39823 - 19968: jis0208<<14 | 0x5B<<7 | 0x45, - 39824 - 19968: jis0212<<14 | 0x49<<7 | 0x3B, - 39825 - 19968: jis0208<<14 | 0x51<<7 | 0x19, - 39826 - 19968: jis0208<<14 | 0x29<<7 | 0x0A, - 39827 - 19968: jis0208<<14 | 0x51<<7 | 0x17, - 39828 - 19968: jis0212<<14 | 0x49<<7 | 0x3C, - 39830 - 19968: jis0208<<14 | 0x51<<7 | 0x1A, - 39831 - 19968: jis0208<<14 | 0x51<<7 | 0x1B, - 39834 - 19968: jis0212<<14 | 0x49<<7 | 0x3D, - 39837 - 19968: jis0212<<14 | 0x49<<7 | 0x3E, - 39838 - 19968: jis0212<<14 | 0x49<<7 | 0x3F, - 39839 - 19968: jis0208<<14 | 0x51<<7 | 0x1C, - 39840 - 19968: jis0208<<14 | 0x51<<7 | 0x1D, - 39846 - 19968: jis0212<<14 | 0x49<<7 | 0x40, - 39847 - 19968: jis0212<<14 | 0x49<<7 | 0x41, - 39848 - 19968: jis0208<<14 | 0x51<<7 | 0x1E, - 39849 - 19968: jis0212<<14 | 0x49<<7 | 0x42, - 39850 - 19968: jis0208<<14 | 0x2A<<7 | 0x4D, - 39851 - 19968: jis0208<<14 | 0x1A<<7 | 0x0C, - 39852 - 19968: jis0212<<14 | 0x49<<7 | 0x43, - 39853 - 19968: jis0208<<14 | 0x19<<7 | 0x59, - 39854 - 19968: jis0208<<14 | 0x20<<7 | 0x0E, - 39856 - 19968: jis0212<<14 | 0x49<<7 | 0x44, - 39857 - 19968: jis0208<<14 | 0x5B<<7 | 0x46, - 39858 - 19968: jis0212<<14 | 0x49<<7 | 0x46, - 39860 - 19968: jis0208<<14 | 0x51<<7 | 0x1F, - 39863 - 19968: jis0212<<14 | 0x49<<7 | 0x47, - 39864 - 19968: jis0212<<14 | 0x49<<7 | 0x48, - 39865 - 19968: jis0208<<14 | 0x51<<7 | 0x22, - 39867 - 19968: jis0208<<14 | 0x5B<<7 | 0x47, - 39868 - 19968: jis0212<<14 | 0x49<<7 | 0x4A, - 39870 - 19968: jis0212<<14 | 0x49<<7 | 0x4B, - 39871 - 19968: jis0212<<14 | 0x49<<7 | 0x4C, - 39872 - 19968: jis0208<<14 | 0x51<<7 | 0x20, - 39873 - 19968: jis0212<<14 | 0x49<<7 | 0x4D, - 39878 - 19968: jis0208<<14 | 0x51<<7 | 0x23, - 39879 - 19968: jis0212<<14 | 0x49<<7 | 0x4E, - 39880 - 19968: jis0212<<14 | 0x49<<7 | 0x4F, - 39881 - 19968: jis0208<<14 | 0x17<<7 | 0x50, - 39882 - 19968: jis0208<<14 | 0x51<<7 | 0x21, - 39886 - 19968: jis0212<<14 | 0x49<<7 | 0x50, - 39887 - 19968: jis0208<<14 | 0x51<<7 | 0x24, - 39888 - 19968: jis0212<<14 | 0x49<<7 | 0x51, - 39889 - 19968: jis0208<<14 | 0x51<<7 | 0x25, - 39890 - 19968: jis0208<<14 | 0x51<<7 | 0x26, - 39892 - 19968: jis0208<<14 | 0x51<<7 | 0x2A, - 39894 - 19968: jis0208<<14 | 0x1A<<7 | 0x09, - 39895 - 19968: jis0212<<14 | 0x49<<7 | 0x52, - 39896 - 19968: jis0212<<14 | 0x49<<7 | 0x53, - 39899 - 19968: jis0208<<14 | 0x21<<7 | 0x43, - 39901 - 19968: jis0212<<14 | 0x49<<7 | 0x54, - 39903 - 19968: jis0212<<14 | 0x49<<7 | 0x55, - 39905 - 19968: jis0208<<14 | 0x51<<7 | 0x2B, - 39906 - 19968: jis0208<<14 | 0x51<<7 | 0x28, - 39907 - 19968: jis0208<<14 | 0x51<<7 | 0x27, - 39908 - 19968: jis0208<<14 | 0x51<<7 | 0x29, - 39909 - 19968: jis0212<<14 | 0x49<<7 | 0x56, - 39911 - 19968: jis0212<<14 | 0x49<<7 | 0x57, - 39912 - 19968: jis0208<<14 | 0x16<<7 | 0x3E, - 39914 - 19968: jis0212<<14 | 0x49<<7 | 0x58, - 39915 - 19968: jis0212<<14 | 0x49<<7 | 0x59, - 39919 - 19968: jis0212<<14 | 0x49<<7 | 0x5A, - 39920 - 19968: jis0208<<14 | 0x51<<7 | 0x2F, - 39921 - 19968: jis0208<<14 | 0x51<<7 | 0x2E, - 39922 - 19968: jis0208<<14 | 0x51<<7 | 0x2D, - 39923 - 19968: jis0212<<14 | 0x49<<7 | 0x5B, - 39925 - 19968: jis0208<<14 | 0x0F<<7 | 0x12, - 39927 - 19968: jis0212<<14 | 0x49<<7 | 0x5C, - 39928 - 19968: jis0212<<14 | 0x49<<7 | 0x5D, - 39929 - 19968: jis0212<<14 | 0x4A<<7 | 0x00, - 39930 - 19968: jis0212<<14 | 0x4A<<7 | 0x01, - 39933 - 19968: jis0212<<14 | 0x4A<<7 | 0x02, - 39935 - 19968: jis0212<<14 | 0x4A<<7 | 0x03, - 39936 - 19968: jis0208<<14 | 0x5B<<7 | 0x48, - 39938 - 19968: jis0212<<14 | 0x4A<<7 | 0x05, - 39940 - 19968: jis0208<<14 | 0x51<<7 | 0x39, - 39942 - 19968: jis0208<<14 | 0x51<<7 | 0x35, - 39944 - 19968: jis0208<<14 | 0x51<<7 | 0x36, - 39945 - 19968: jis0208<<14 | 0x51<<7 | 0x32, - 39946 - 19968: jis0208<<14 | 0x51<<7 | 0x38, - 39947 - 19968: jis0212<<14 | 0x4A<<7 | 0x06, - 39948 - 19968: jis0208<<14 | 0x51<<7 | 0x34, - 39949 - 19968: jis0208<<14 | 0x12<<7 | 0x41, - 39951 - 19968: jis0212<<14 | 0x4A<<7 | 0x07, - 39952 - 19968: jis0208<<14 | 0x2E<<7 | 0x2B, - 39953 - 19968: jis0212<<14 | 0x4A<<7 | 0x08, - 39954 - 19968: jis0208<<14 | 0x51<<7 | 0x37, - 39955 - 19968: jis0208<<14 | 0x51<<7 | 0x33, - 39956 - 19968: jis0208<<14 | 0x51<<7 | 0x31, - 39957 - 19968: jis0208<<14 | 0x51<<7 | 0x30, - 39958 - 19968: jis0212<<14 | 0x4A<<7 | 0x09, - 39960 - 19968: jis0212<<14 | 0x4A<<7 | 0x0A, - 39961 - 19968: jis0212<<14 | 0x4A<<7 | 0x0B, - 39962 - 19968: jis0212<<14 | 0x4A<<7 | 0x0C, - 39963 - 19968: jis0208<<14 | 0x51<<7 | 0x3B, - 39964 - 19968: jis0212<<14 | 0x4A<<7 | 0x0D, - 39966 - 19968: jis0212<<14 | 0x4A<<7 | 0x0E, - 39969 - 19968: jis0208<<14 | 0x51<<7 | 0x3E, - 39970 - 19968: jis0212<<14 | 0x4A<<7 | 0x0F, - 39971 - 19968: jis0212<<14 | 0x4A<<7 | 0x10, - 39972 - 19968: jis0208<<14 | 0x51<<7 | 0x3D, - 39973 - 19968: jis0208<<14 | 0x51<<7 | 0x3C, - 39974 - 19968: jis0212<<14 | 0x4A<<7 | 0x11, - 39975 - 19968: jis0212<<14 | 0x4A<<7 | 0x12, - 39976 - 19968: jis0212<<14 | 0x4A<<7 | 0x13, - 39977 - 19968: jis0212<<14 | 0x4A<<7 | 0x14, - 39978 - 19968: jis0212<<14 | 0x4A<<7 | 0x15, - 39981 - 19968: jis0208<<14 | 0x28<<7 | 0x28, - 39982 - 19968: jis0208<<14 | 0x51<<7 | 0x3A, - 39983 - 19968: jis0208<<14 | 0x0F<<7 | 0x52, - 39984 - 19968: jis0208<<14 | 0x51<<7 | 0x3F, - 39985 - 19968: jis0212<<14 | 0x4A<<7 | 0x16, - 39986 - 19968: jis0208<<14 | 0x51<<7 | 0x41, - 39989 - 19968: jis0212<<14 | 0x4A<<7 | 0x17, - 39990 - 19968: jis0212<<14 | 0x4A<<7 | 0x18, - 39991 - 19968: jis0212<<14 | 0x4A<<7 | 0x19, - 39993 - 19968: jis0208<<14 | 0x12<<7 | 0x4E, - 39994 - 19968: jis0208<<14 | 0x51<<7 | 0x2C, - 39995 - 19968: jis0208<<14 | 0x10<<7 | 0x16, - 39997 - 19968: jis0212<<14 | 0x4A<<7 | 0x1A, - 39998 - 19968: jis0208<<14 | 0x51<<7 | 0x43, - 40001 - 19968: jis0212<<14 | 0x4A<<7 | 0x1B, - 40003 - 19968: jis0212<<14 | 0x4A<<7 | 0x1C, - 40004 - 19968: jis0212<<14 | 0x4A<<7 | 0x1D, - 40005 - 19968: jis0212<<14 | 0x4A<<7 | 0x1E, - 40006 - 19968: jis0208<<14 | 0x51<<7 | 0x42, - 40007 - 19968: jis0208<<14 | 0x51<<7 | 0x40, - 40008 - 19968: jis0208<<14 | 0x22<<7 | 0x0C, - 40009 - 19968: jis0212<<14 | 0x4A<<7 | 0x1F, - 40010 - 19968: jis0212<<14 | 0x4A<<7 | 0x20, - 40014 - 19968: jis0212<<14 | 0x4A<<7 | 0x21, - 40015 - 19968: jis0212<<14 | 0x4A<<7 | 0x22, - 40016 - 19968: jis0212<<14 | 0x4A<<7 | 0x23, - 40018 - 19968: jis0208<<14 | 0x2A<<7 | 0x4F, - 40019 - 19968: jis0212<<14 | 0x4A<<7 | 0x24, - 40020 - 19968: jis0212<<14 | 0x4A<<7 | 0x25, - 40022 - 19968: jis0212<<14 | 0x4A<<7 | 0x26, - 40023 - 19968: jis0208<<14 | 0x2D<<7 | 0x39, - 40024 - 19968: jis0212<<14 | 0x4A<<7 | 0x27, - 40026 - 19968: jis0208<<14 | 0x51<<7 | 0x44, - 40027 - 19968: jis0212<<14 | 0x4A<<7 | 0x28, - 40028 - 19968: jis0212<<14 | 0x4A<<7 | 0x2F, - 40029 - 19968: jis0212<<14 | 0x4A<<7 | 0x29, - 40030 - 19968: jis0212<<14 | 0x4A<<7 | 0x2A, - 40031 - 19968: jis0212<<14 | 0x4A<<7 | 0x2B, - 40032 - 19968: jis0208<<14 | 0x51<<7 | 0x45, - 40035 - 19968: jis0212<<14 | 0x4A<<7 | 0x2C, - 40039 - 19968: jis0208<<14 | 0x51<<7 | 0x46, - 40040 - 19968: jis0212<<14 | 0x4A<<7 | 0x31, - 40041 - 19968: jis0212<<14 | 0x4A<<7 | 0x2D, - 40042 - 19968: jis0212<<14 | 0x4A<<7 | 0x2E, - 40043 - 19968: jis0212<<14 | 0x4A<<7 | 0x30, - 40046 - 19968: jis0212<<14 | 0x4A<<7 | 0x32, - 40048 - 19968: jis0212<<14 | 0x4A<<7 | 0x33, - 40050 - 19968: jis0212<<14 | 0x4A<<7 | 0x34, - 40053 - 19968: jis0212<<14 | 0x4A<<7 | 0x35, - 40054 - 19968: jis0208<<14 | 0x51<<7 | 0x47, - 40055 - 19968: jis0212<<14 | 0x4A<<7 | 0x36, - 40056 - 19968: jis0208<<14 | 0x51<<7 | 0x48, - 40059 - 19968: jis0212<<14 | 0x4A<<7 | 0x37, - 40165 - 19968: jis0208<<14 | 0x23<<7 | 0x1A, - 40166 - 19968: jis0212<<14 | 0x4A<<7 | 0x38, - 40167 - 19968: jis0208<<14 | 0x51<<7 | 0x49, - 40169 - 19968: jis0208<<14 | 0x27<<7 | 0x16, - 40171 - 19968: jis0208<<14 | 0x51<<7 | 0x4E, - 40172 - 19968: jis0208<<14 | 0x51<<7 | 0x4A, - 40176 - 19968: jis0208<<14 | 0x51<<7 | 0x4B, - 40178 - 19968: jis0212<<14 | 0x4A<<7 | 0x39, - 40179 - 19968: jis0208<<14 | 0x2A<<7 | 0x10, - 40180 - 19968: jis0208<<14 | 0x2B<<7 | 0x23, - 40182 - 19968: jis0208<<14 | 0x25<<7 | 0x2F, - 40183 - 19968: jis0212<<14 | 0x4A<<7 | 0x3A, - 40185 - 19968: jis0212<<14 | 0x4A<<7 | 0x3B, - 40194 - 19968: jis0212<<14 | 0x4A<<7 | 0x3D, - 40195 - 19968: jis0208<<14 | 0x51<<7 | 0x4F, - 40198 - 19968: jis0208<<14 | 0x51<<7 | 0x50, - 40199 - 19968: jis0208<<14 | 0x25<<7 | 0x1D, - 40200 - 19968: jis0208<<14 | 0x51<<7 | 0x4D, - 40201 - 19968: jis0208<<14 | 0x51<<7 | 0x4C, - 40203 - 19968: jis0212<<14 | 0x4A<<7 | 0x3C, - 40206 - 19968: jis0208<<14 | 0x11<<7 | 0x09, - 40209 - 19968: jis0212<<14 | 0x4A<<7 | 0x3E, - 40210 - 19968: jis0208<<14 | 0x51<<7 | 0x58, - 40213 - 19968: jis0208<<14 | 0x51<<7 | 0x57, - 40215 - 19968: jis0212<<14 | 0x4A<<7 | 0x3F, - 40216 - 19968: jis0212<<14 | 0x4A<<7 | 0x40, - 40219 - 19968: jis0208<<14 | 0x10<<7 | 0x54, - 40220 - 19968: jis0212<<14 | 0x4A<<7 | 0x41, - 40221 - 19968: jis0212<<14 | 0x4A<<7 | 0x42, - 40222 - 19968: jis0212<<14 | 0x4A<<7 | 0x43, - 40223 - 19968: jis0208<<14 | 0x51<<7 | 0x55, - 40227 - 19968: jis0208<<14 | 0x51<<7 | 0x54, - 40230 - 19968: jis0208<<14 | 0x51<<7 | 0x52, - 40232 - 19968: jis0208<<14 | 0x12<<7 | 0x5A, - 40234 - 19968: jis0208<<14 | 0x51<<7 | 0x51, - 40235 - 19968: jis0208<<14 | 0x1B<<7 | 0x11, - 40236 - 19968: jis0208<<14 | 0x11<<7 | 0x08, - 40239 - 19968: jis0212<<14 | 0x4A<<7 | 0x44, - 40240 - 19968: jis0212<<14 | 0x4A<<7 | 0x45, - 40242 - 19968: jis0212<<14 | 0x4A<<7 | 0x46, - 40243 - 19968: jis0212<<14 | 0x4A<<7 | 0x47, - 40244 - 19968: jis0212<<14 | 0x4A<<7 | 0x48, - 40250 - 19968: jis0212<<14 | 0x4A<<7 | 0x49, - 40251 - 19968: jis0208<<14 | 0x18<<7 | 0x42, - 40252 - 19968: jis0212<<14 | 0x4A<<7 | 0x4A, - 40253 - 19968: jis0212<<14 | 0x4A<<7 | 0x4C, - 40254 - 19968: jis0208<<14 | 0x51<<7 | 0x5B, - 40255 - 19968: jis0208<<14 | 0x51<<7 | 0x5A, - 40257 - 19968: jis0208<<14 | 0x51<<7 | 0x59, - 40258 - 19968: jis0212<<14 | 0x4A<<7 | 0x4D, - 40259 - 19968: jis0212<<14 | 0x4A<<7 | 0x4E, - 40260 - 19968: jis0208<<14 | 0x51<<7 | 0x56, - 40261 - 19968: jis0212<<14 | 0x4A<<7 | 0x4B, - 40262 - 19968: jis0208<<14 | 0x51<<7 | 0x5C, - 40263 - 19968: jis0212<<14 | 0x4A<<7 | 0x4F, - 40264 - 19968: jis0208<<14 | 0x51<<7 | 0x5D, - 40266 - 19968: jis0212<<14 | 0x4A<<7 | 0x50, - 40272 - 19968: jis0208<<14 | 0x52<<7 | 0x04, - 40273 - 19968: jis0208<<14 | 0x52<<7 | 0x03, - 40275 - 19968: jis0212<<14 | 0x4A<<7 | 0x51, - 40276 - 19968: jis0212<<14 | 0x4A<<7 | 0x52, - 40281 - 19968: jis0208<<14 | 0x52<<7 | 0x05, - 40284 - 19968: jis0208<<14 | 0x10<<7 | 0x0C, - 40285 - 19968: jis0208<<14 | 0x52<<7 | 0x00, - 40286 - 19968: jis0208<<14 | 0x52<<7 | 0x01, - 40287 - 19968: jis0212<<14 | 0x4A<<7 | 0x53, - 40288 - 19968: jis0208<<14 | 0x18<<7 | 0x53, - 40289 - 19968: jis0208<<14 | 0x2B<<7 | 0x18, - 40290 - 19968: jis0212<<14 | 0x4A<<7 | 0x55, - 40291 - 19968: jis0212<<14 | 0x4A<<7 | 0x54, - 40292 - 19968: jis0208<<14 | 0x52<<7 | 0x02, - 40293 - 19968: jis0212<<14 | 0x4A<<7 | 0x56, - 40297 - 19968: jis0212<<14 | 0x4A<<7 | 0x57, - 40298 - 19968: jis0212<<14 | 0x4A<<7 | 0x58, - 40299 - 19968: jis0208<<14 | 0x5B<<7 | 0x4A, - 40300 - 19968: jis0208<<14 | 0x2A<<7 | 0x11, - 40303 - 19968: jis0208<<14 | 0x52<<7 | 0x0A, - 40304 - 19968: jis0208<<14 | 0x5B<<7 | 0x49, - 40306 - 19968: jis0208<<14 | 0x52<<7 | 0x06, - 40310 - 19968: jis0212<<14 | 0x4A<<7 | 0x5B, - 40311 - 19968: jis0212<<14 | 0x4A<<7 | 0x5C, - 40314 - 19968: jis0208<<14 | 0x52<<7 | 0x0B, - 40315 - 19968: jis0212<<14 | 0x4A<<7 | 0x5D, - 40316 - 19968: jis0212<<14 | 0x4B<<7 | 0x00, - 40318 - 19968: jis0212<<14 | 0x4B<<7 | 0x01, - 40323 - 19968: jis0212<<14 | 0x4B<<7 | 0x02, - 40324 - 19968: jis0212<<14 | 0x4B<<7 | 0x03, - 40326 - 19968: jis0212<<14 | 0x4B<<7 | 0x04, - 40327 - 19968: jis0208<<14 | 0x52<<7 | 0x08, - 40329 - 19968: jis0208<<14 | 0x52<<7 | 0x07, - 40330 - 19968: jis0212<<14 | 0x4B<<7 | 0x05, - 40333 - 19968: jis0212<<14 | 0x4B<<7 | 0x06, - 40334 - 19968: jis0212<<14 | 0x4B<<7 | 0x07, - 40335 - 19968: jis0208<<14 | 0x16<<7 | 0x3B, - 40338 - 19968: jis0212<<14 | 0x4B<<7 | 0x08, - 40339 - 19968: jis0212<<14 | 0x4B<<7 | 0x09, - 40341 - 19968: jis0212<<14 | 0x4B<<7 | 0x0A, - 40342 - 19968: jis0212<<14 | 0x4B<<7 | 0x0B, - 40343 - 19968: jis0212<<14 | 0x4B<<7 | 0x0C, - 40344 - 19968: jis0212<<14 | 0x4B<<7 | 0x0D, - 40346 - 19968: jis0208<<14 | 0x52<<7 | 0x0C, - 40353 - 19968: jis0212<<14 | 0x4B<<7 | 0x0E, - 40356 - 19968: jis0208<<14 | 0x52<<7 | 0x0D, - 40361 - 19968: jis0208<<14 | 0x52<<7 | 0x0E, - 40362 - 19968: jis0212<<14 | 0x4B<<7 | 0x0F, - 40363 - 19968: jis0208<<14 | 0x52<<7 | 0x09, - 40364 - 19968: jis0212<<14 | 0x4B<<7 | 0x10, - 40366 - 19968: jis0212<<14 | 0x4B<<7 | 0x11, - 40367 - 19968: jis0208<<14 | 0x51<<7 | 0x53, - 40369 - 19968: jis0212<<14 | 0x4B<<7 | 0x12, - 40370 - 19968: jis0208<<14 | 0x52<<7 | 0x0F, - 40372 - 19968: jis0208<<14 | 0x23<<7 | 0x40, - 40373 - 19968: jis0212<<14 | 0x4B<<7 | 0x13, - 40376 - 19968: jis0208<<14 | 0x52<<7 | 0x13, - 40377 - 19968: jis0212<<14 | 0x4B<<7 | 0x14, - 40378 - 19968: jis0208<<14 | 0x52<<7 | 0x14, - 40379 - 19968: jis0208<<14 | 0x52<<7 | 0x12, - 40380 - 19968: jis0212<<14 | 0x4B<<7 | 0x15, - 40383 - 19968: jis0212<<14 | 0x4B<<7 | 0x16, - 40385 - 19968: jis0208<<14 | 0x52<<7 | 0x11, - 40386 - 19968: jis0208<<14 | 0x52<<7 | 0x17, - 40387 - 19968: jis0212<<14 | 0x4B<<7 | 0x17, - 40388 - 19968: jis0208<<14 | 0x52<<7 | 0x10, - 40390 - 19968: jis0208<<14 | 0x52<<7 | 0x15, - 40391 - 19968: jis0212<<14 | 0x4B<<7 | 0x18, - 40393 - 19968: jis0212<<14 | 0x4B<<7 | 0x19, - 40394 - 19968: jis0212<<14 | 0x4B<<7 | 0x1A, - 40399 - 19968: jis0208<<14 | 0x52<<7 | 0x16, - 40403 - 19968: jis0208<<14 | 0x52<<7 | 0x19, - 40404 - 19968: jis0212<<14 | 0x4B<<7 | 0x1B, - 40405 - 19968: jis0212<<14 | 0x4B<<7 | 0x1C, - 40406 - 19968: jis0212<<14 | 0x4B<<7 | 0x1D, - 40407 - 19968: jis0212<<14 | 0x4B<<7 | 0x1E, - 40409 - 19968: jis0208<<14 | 0x52<<7 | 0x18, - 40410 - 19968: jis0212<<14 | 0x4B<<7 | 0x1F, - 40414 - 19968: jis0212<<14 | 0x4B<<7 | 0x20, - 40415 - 19968: jis0212<<14 | 0x4B<<7 | 0x21, - 40416 - 19968: jis0212<<14 | 0x4B<<7 | 0x22, - 40421 - 19968: jis0212<<14 | 0x4B<<7 | 0x23, - 40422 - 19968: jis0208<<14 | 0x52<<7 | 0x1B, - 40423 - 19968: jis0212<<14 | 0x4B<<7 | 0x24, - 40425 - 19968: jis0212<<14 | 0x4B<<7 | 0x25, - 40427 - 19968: jis0212<<14 | 0x4B<<7 | 0x26, - 40429 - 19968: jis0208<<14 | 0x52<<7 | 0x1C, - 40430 - 19968: jis0212<<14 | 0x4B<<7 | 0x27, - 40431 - 19968: jis0208<<14 | 0x52<<7 | 0x1D, - 40432 - 19968: jis0212<<14 | 0x4B<<7 | 0x28, - 40434 - 19968: jis0208<<14 | 0x2E<<7 | 0x28, - 40435 - 19968: jis0212<<14 | 0x4B<<7 | 0x29, - 40436 - 19968: jis0212<<14 | 0x4B<<7 | 0x2A, - 40440 - 19968: jis0208<<14 | 0x52<<7 | 0x1A, - 40441 - 19968: jis0208<<14 | 0x21<<7 | 0x4A, - 40442 - 19968: jis0208<<14 | 0x19<<7 | 0x4C, - 40445 - 19968: jis0208<<14 | 0x52<<7 | 0x1E, - 40446 - 19968: jis0212<<14 | 0x4B<<7 | 0x2B, - 40450 - 19968: jis0212<<14 | 0x4B<<7 | 0x2D, - 40455 - 19968: jis0212<<14 | 0x4B<<7 | 0x2E, - 40458 - 19968: jis0212<<14 | 0x4B<<7 | 0x2C, - 40462 - 19968: jis0212<<14 | 0x4B<<7 | 0x2F, - 40464 - 19968: jis0212<<14 | 0x4B<<7 | 0x30, - 40465 - 19968: jis0212<<14 | 0x4B<<7 | 0x31, - 40466 - 19968: jis0212<<14 | 0x4B<<7 | 0x32, - 40469 - 19968: jis0212<<14 | 0x4B<<7 | 0x33, - 40470 - 19968: jis0212<<14 | 0x4B<<7 | 0x34, - 40473 - 19968: jis0208<<14 | 0x5B<<7 | 0x4C, - 40474 - 19968: jis0208<<14 | 0x52<<7 | 0x1F, - 40475 - 19968: jis0208<<14 | 0x52<<7 | 0x20, - 40476 - 19968: jis0212<<14 | 0x4B<<7 | 0x36, - 40477 - 19968: jis0212<<14 | 0x4B<<7 | 0x37, - 40478 - 19968: jis0208<<14 | 0x52<<7 | 0x21, - 40565 - 19968: jis0208<<14 | 0x52<<7 | 0x22, - 40568 - 19968: jis0208<<14 | 0x17<<7 | 0x13, - 40569 - 19968: jis0208<<14 | 0x52<<7 | 0x23, - 40570 - 19968: jis0212<<14 | 0x4B<<7 | 0x38, - 40571 - 19968: jis0212<<14 | 0x4B<<7 | 0x39, - 40572 - 19968: jis0212<<14 | 0x4B<<7 | 0x3A, - 40573 - 19968: jis0208<<14 | 0x52<<7 | 0x24, - 40575 - 19968: jis0208<<14 | 0x1B<<7 | 0x0E, - 40576 - 19968: jis0212<<14 | 0x4B<<7 | 0x3B, - 40577 - 19968: jis0208<<14 | 0x52<<7 | 0x25, - 40578 - 19968: jis0212<<14 | 0x4B<<7 | 0x3C, - 40579 - 19968: jis0212<<14 | 0x4B<<7 | 0x3D, - 40580 - 19968: jis0212<<14 | 0x4B<<7 | 0x3E, - 40581 - 19968: jis0212<<14 | 0x4B<<7 | 0x3F, - 40583 - 19968: jis0212<<14 | 0x4B<<7 | 0x40, - 40584 - 19968: jis0208<<14 | 0x52<<7 | 0x26, - 40587 - 19968: jis0208<<14 | 0x52<<7 | 0x27, - 40588 - 19968: jis0208<<14 | 0x52<<7 | 0x28, - 40590 - 19968: jis0212<<14 | 0x4B<<7 | 0x41, - 40591 - 19968: jis0212<<14 | 0x4B<<7 | 0x42, - 40593 - 19968: jis0208<<14 | 0x52<<7 | 0x2B, - 40594 - 19968: jis0208<<14 | 0x52<<7 | 0x29, - 40595 - 19968: jis0208<<14 | 0x2E<<7 | 0x1B, - 40597 - 19968: jis0208<<14 | 0x52<<7 | 0x2A, - 40598 - 19968: jis0212<<14 | 0x4B<<7 | 0x43, - 40599 - 19968: jis0208<<14 | 0x2D<<7 | 0x4E, - 40600 - 19968: jis0212<<14 | 0x4B<<7 | 0x44, - 40603 - 19968: jis0212<<14 | 0x4B<<7 | 0x45, - 40605 - 19968: jis0208<<14 | 0x52<<7 | 0x2C, - 40606 - 19968: jis0212<<14 | 0x4B<<7 | 0x46, - 40607 - 19968: jis0208<<14 | 0x2D<<7 | 0x3A, - 40612 - 19968: jis0212<<14 | 0x4B<<7 | 0x47, - 40613 - 19968: jis0208<<14 | 0x52<<7 | 0x2D, - 40614 - 19968: jis0208<<14 | 0x26<<7 | 0x5D, - 40616 - 19968: jis0212<<14 | 0x4B<<7 | 0x48, - 40617 - 19968: jis0208<<14 | 0x52<<7 | 0x2E, - 40618 - 19968: jis0208<<14 | 0x52<<7 | 0x30, - 40620 - 19968: jis0212<<14 | 0x4B<<7 | 0x49, - 40621 - 19968: jis0208<<14 | 0x52<<7 | 0x31, - 40622 - 19968: jis0212<<14 | 0x4B<<7 | 0x4A, - 40623 - 19968: jis0212<<14 | 0x4B<<7 | 0x4B, - 40624 - 19968: jis0212<<14 | 0x4B<<7 | 0x4C, - 40627 - 19968: jis0212<<14 | 0x4B<<7 | 0x4D, - 40628 - 19968: jis0212<<14 | 0x4B<<7 | 0x4E, - 40629 - 19968: jis0212<<14 | 0x4B<<7 | 0x4F, - 40632 - 19968: jis0208<<14 | 0x52<<7 | 0x2F, - 40633 - 19968: jis0208<<14 | 0x18<<7 | 0x4C, - 40634 - 19968: jis0208<<14 | 0x2B<<7 | 0x2C, - 40635 - 19968: jis0208<<14 | 0x2A<<7 | 0x42, - 40636 - 19968: jis0208<<14 | 0x35<<7 | 0x56, - 40638 - 19968: jis0208<<14 | 0x3C<<7 | 0x3F, - 40639 - 19968: jis0208<<14 | 0x2A<<7 | 0x5A, - 40644 - 19968: jis0208<<14 | 0x11<<7 | 0x0A, - 40646 - 19968: jis0212<<14 | 0x4B<<7 | 0x50, - 40648 - 19968: jis0212<<14 | 0x4B<<7 | 0x51, - 40651 - 19968: jis0212<<14 | 0x4B<<7 | 0x52, - 40652 - 19968: jis0208<<14 | 0x52<<7 | 0x33, - 40653 - 19968: jis0208<<14 | 0x14<<7 | 0x2F, - 40654 - 19968: jis0208<<14 | 0x52<<7 | 0x34, - 40655 - 19968: jis0208<<14 | 0x52<<7 | 0x35, - 40656 - 19968: jis0208<<14 | 0x52<<7 | 0x36, - 40657 - 19968: jis0208<<14 | 0x5B<<7 | 0x4D, - 40658 - 19968: jis0208<<14 | 0x18<<7 | 0x54, - 40660 - 19968: jis0208<<14 | 0x52<<7 | 0x37, - 40661 - 19968: jis0212<<14 | 0x4B<<7 | 0x53, - 40664 - 19968: jis0208<<14 | 0x3F<<7 | 0x33, - 40665 - 19968: jis0208<<14 | 0x2B<<7 | 0x3A, - 40667 - 19968: jis0208<<14 | 0x21<<7 | 0x42, - 40668 - 19968: jis0208<<14 | 0x52<<7 | 0x38, - 40669 - 19968: jis0208<<14 | 0x52<<7 | 0x3A, - 40670 - 19968: jis0208<<14 | 0x52<<7 | 0x39, - 40671 - 19968: jis0212<<14 | 0x4B<<7 | 0x54, - 40672 - 19968: jis0208<<14 | 0x52<<7 | 0x3B, - 40676 - 19968: jis0212<<14 | 0x4B<<7 | 0x55, - 40677 - 19968: jis0208<<14 | 0x52<<7 | 0x3C, - 40679 - 19968: jis0212<<14 | 0x4B<<7 | 0x56, - 40680 - 19968: jis0208<<14 | 0x52<<7 | 0x3D, - 40684 - 19968: jis0212<<14 | 0x4B<<7 | 0x57, - 40685 - 19968: jis0212<<14 | 0x4B<<7 | 0x58, - 40686 - 19968: jis0212<<14 | 0x4B<<7 | 0x59, - 40687 - 19968: jis0208<<14 | 0x52<<7 | 0x3E, - 40688 - 19968: jis0212<<14 | 0x4B<<7 | 0x5A, - 40689 - 19968: jis0212<<14 | 0x4B<<7 | 0x5B, - 40690 - 19968: jis0212<<14 | 0x4B<<7 | 0x5C, - 40692 - 19968: jis0208<<14 | 0x52<<7 | 0x3F, - 40693 - 19968: jis0212<<14 | 0x4B<<7 | 0x5D, - 40694 - 19968: jis0208<<14 | 0x52<<7 | 0x40, - 40695 - 19968: jis0208<<14 | 0x52<<7 | 0x41, - 40696 - 19968: jis0212<<14 | 0x4C<<7 | 0x00, - 40697 - 19968: jis0208<<14 | 0x52<<7 | 0x42, - 40699 - 19968: jis0208<<14 | 0x52<<7 | 0x43, - 40700 - 19968: jis0208<<14 | 0x52<<7 | 0x44, - 40701 - 19968: jis0208<<14 | 0x52<<7 | 0x45, - 40703 - 19968: jis0212<<14 | 0x4C<<7 | 0x01, - 40706 - 19968: jis0212<<14 | 0x4C<<7 | 0x02, - 40707 - 19968: jis0212<<14 | 0x4C<<7 | 0x03, - 40711 - 19968: jis0208<<14 | 0x52<<7 | 0x46, - 40712 - 19968: jis0208<<14 | 0x52<<7 | 0x47, - 40713 - 19968: jis0212<<14 | 0x4C<<7 | 0x04, - 40718 - 19968: jis0208<<14 | 0x24<<7 | 0x03, - 40719 - 19968: jis0212<<14 | 0x4C<<7 | 0x05, - 40720 - 19968: jis0212<<14 | 0x4C<<7 | 0x06, - 40721 - 19968: jis0212<<14 | 0x4C<<7 | 0x07, - 40722 - 19968: jis0212<<14 | 0x4C<<7 | 0x08, - 40723 - 19968: jis0208<<14 | 0x17<<7 | 0x3C, - 40724 - 19968: jis0212<<14 | 0x4C<<7 | 0x09, - 40725 - 19968: jis0208<<14 | 0x52<<7 | 0x49, - 40726 - 19968: jis0212<<14 | 0x4C<<7 | 0x0A, - 40727 - 19968: jis0212<<14 | 0x4C<<7 | 0x0B, - 40729 - 19968: jis0212<<14 | 0x4C<<7 | 0x0C, - 40730 - 19968: jis0212<<14 | 0x4C<<7 | 0x0D, - 40731 - 19968: jis0212<<14 | 0x4C<<7 | 0x0E, - 40735 - 19968: jis0212<<14 | 0x4C<<7 | 0x0F, - 40736 - 19968: jis0208<<14 | 0x20<<7 | 0x2C, - 40737 - 19968: jis0208<<14 | 0x52<<7 | 0x4A, - 40738 - 19968: jis0212<<14 | 0x4C<<7 | 0x10, - 40742 - 19968: jis0212<<14 | 0x4C<<7 | 0x11, - 40746 - 19968: jis0212<<14 | 0x4C<<7 | 0x12, - 40747 - 19968: jis0212<<14 | 0x4C<<7 | 0x13, - 40748 - 19968: jis0208<<14 | 0x52<<7 | 0x4B, - 40751 - 19968: jis0212<<14 | 0x4C<<7 | 0x14, - 40753 - 19968: jis0212<<14 | 0x4C<<7 | 0x15, - 40754 - 19968: jis0212<<14 | 0x4C<<7 | 0x16, - 40756 - 19968: jis0212<<14 | 0x4C<<7 | 0x17, - 40759 - 19968: jis0212<<14 | 0x4C<<7 | 0x18, - 40761 - 19968: jis0212<<14 | 0x4C<<7 | 0x19, - 40762 - 19968: jis0212<<14 | 0x4C<<7 | 0x1A, - 40763 - 19968: jis0208<<14 | 0x28<<7 | 0x00, - 40764 - 19968: jis0212<<14 | 0x4C<<7 | 0x1B, - 40765 - 19968: jis0212<<14 | 0x4C<<7 | 0x1C, - 40766 - 19968: jis0208<<14 | 0x52<<7 | 0x4C, - 40767 - 19968: jis0212<<14 | 0x4C<<7 | 0x1D, - 40769 - 19968: jis0212<<14 | 0x4C<<7 | 0x1E, - 40771 - 19968: jis0212<<14 | 0x4C<<7 | 0x1F, - 40772 - 19968: jis0212<<14 | 0x4C<<7 | 0x20, - 40773 - 19968: jis0212<<14 | 0x4C<<7 | 0x21, - 40774 - 19968: jis0212<<14 | 0x4C<<7 | 0x22, - 40775 - 19968: jis0212<<14 | 0x4C<<7 | 0x23, - 40778 - 19968: jis0208<<14 | 0x52<<7 | 0x4D, - 40779 - 19968: jis0208<<14 | 0x42<<7 | 0x16, - 40782 - 19968: jis0208<<14 | 0x4B<<7 | 0x39, - 40783 - 19968: jis0208<<14 | 0x4F<<7 | 0x4C, - 40786 - 19968: jis0208<<14 | 0x52<<7 | 0x4E, - 40787 - 19968: jis0212<<14 | 0x4C<<7 | 0x24, - 40788 - 19968: jis0208<<14 | 0x52<<7 | 0x4F, - 40789 - 19968: jis0212<<14 | 0x4C<<7 | 0x25, - 40790 - 19968: jis0212<<14 | 0x4C<<7 | 0x26, - 40791 - 19968: jis0212<<14 | 0x4C<<7 | 0x27, - 40792 - 19968: jis0212<<14 | 0x4C<<7 | 0x28, - 40794 - 19968: jis0212<<14 | 0x4C<<7 | 0x29, - 40797 - 19968: jis0212<<14 | 0x4C<<7 | 0x2A, - 40798 - 19968: jis0212<<14 | 0x4C<<7 | 0x2B, - 40799 - 19968: jis0208<<14 | 0x52<<7 | 0x51, - 40800 - 19968: jis0208<<14 | 0x52<<7 | 0x52, - 40801 - 19968: jis0208<<14 | 0x52<<7 | 0x53, - 40802 - 19968: jis0208<<14 | 0x2D<<7 | 0x4F, - 40803 - 19968: jis0208<<14 | 0x52<<7 | 0x50, - 40806 - 19968: jis0208<<14 | 0x52<<7 | 0x54, - 40807 - 19968: jis0208<<14 | 0x52<<7 | 0x55, - 40808 - 19968: jis0212<<14 | 0x4C<<7 | 0x2C, - 40809 - 19968: jis0212<<14 | 0x4C<<7 | 0x2D, - 40810 - 19968: jis0208<<14 | 0x52<<7 | 0x57, - 40812 - 19968: jis0208<<14 | 0x52<<7 | 0x56, - 40813 - 19968: jis0212<<14 | 0x4C<<7 | 0x2E, - 40814 - 19968: jis0212<<14 | 0x4C<<7 | 0x2F, - 40815 - 19968: jis0212<<14 | 0x4C<<7 | 0x30, - 40816 - 19968: jis0212<<14 | 0x4C<<7 | 0x31, - 40817 - 19968: jis0212<<14 | 0x4C<<7 | 0x32, - 40818 - 19968: jis0208<<14 | 0x52<<7 | 0x59, - 40819 - 19968: jis0212<<14 | 0x4C<<7 | 0x33, - 40821 - 19968: jis0212<<14 | 0x4C<<7 | 0x34, - 40822 - 19968: jis0208<<14 | 0x52<<7 | 0x5A, - 40823 - 19968: jis0208<<14 | 0x52<<7 | 0x58, - 40826 - 19968: jis0212<<14 | 0x4C<<7 | 0x35, - 40829 - 19968: jis0212<<14 | 0x4C<<7 | 0x36, - 40845 - 19968: jis0208<<14 | 0x2D<<7 | 0x15, - 40847 - 19968: jis0212<<14 | 0x4C<<7 | 0x37, - 40848 - 19968: jis0212<<14 | 0x4C<<7 | 0x38, - 40849 - 19968: jis0212<<14 | 0x4C<<7 | 0x39, - 40850 - 19968: jis0212<<14 | 0x4C<<7 | 0x3A, - 40852 - 19968: jis0212<<14 | 0x4C<<7 | 0x3B, - 40853 - 19968: jis0208<<14 | 0x52<<7 | 0x5B, - 40854 - 19968: jis0212<<14 | 0x4C<<7 | 0x3C, - 40855 - 19968: jis0212<<14 | 0x4C<<7 | 0x3D, - 40860 - 19968: jis0208<<14 | 0x52<<7 | 0x5C, - 40861 - 19968: jis0208<<14 | 0x42<<7 | 0x33, - 40862 - 19968: jis0212<<14 | 0x4C<<7 | 0x3E, - 40864 - 19968: jis0208<<14 | 0x52<<7 | 0x5D, - 40865 - 19968: jis0212<<14 | 0x4C<<7 | 0x3F, - 40866 - 19968: jis0212<<14 | 0x4C<<7 | 0x40, - 40867 - 19968: jis0212<<14 | 0x4C<<7 | 0x41, - 40869 - 19968: jis0212<<14 | 0x4C<<7 | 0x42, -} - -const encode1Low, encode1High = 8208, 9840 - -var encode1 = [...]uint16{ - 8208 - 8208: jis0208<<14 | 0x00<<7 | 0x1D, - 8213 - 8208: jis0208<<14 | 0x00<<7 | 0x1C, - 8216 - 8208: jis0208<<14 | 0x00<<7 | 0x25, - 8217 - 8208: jis0208<<14 | 0x00<<7 | 0x26, - 8220 - 8208: jis0208<<14 | 0x00<<7 | 0x27, - 8221 - 8208: jis0208<<14 | 0x00<<7 | 0x28, - 8224 - 8208: jis0208<<14 | 0x01<<7 | 0x56, - 8225 - 8208: jis0208<<14 | 0x01<<7 | 0x57, - 8229 - 8208: jis0208<<14 | 0x00<<7 | 0x24, - 8230 - 8208: jis0208<<14 | 0x00<<7 | 0x23, - 8240 - 8208: jis0208<<14 | 0x01<<7 | 0x52, - 8242 - 8208: jis0208<<14 | 0x00<<7 | 0x4B, - 8243 - 8208: jis0208<<14 | 0x00<<7 | 0x4C, - 8251 - 8208: jis0208<<14 | 0x01<<7 | 0x07, - 8451 - 8208: jis0208<<14 | 0x00<<7 | 0x4D, - 8470 - 8208: jis0208<<14 | 0x0C<<7 | 0x41, - 8481 - 8208: jis0208<<14 | 0x0C<<7 | 0x43, - 8482 - 8208: jis0212<<14 | 0x01<<7 | 0x4E, - 8491 - 8208: jis0208<<14 | 0x01<<7 | 0x51, - 8544 - 8208: jis0208<<14 | 0x0C<<7 | 0x14, - 8545 - 8208: jis0208<<14 | 0x0C<<7 | 0x15, - 8546 - 8208: jis0208<<14 | 0x0C<<7 | 0x16, - 8547 - 8208: jis0208<<14 | 0x0C<<7 | 0x17, - 8548 - 8208: jis0208<<14 | 0x0C<<7 | 0x18, - 8549 - 8208: jis0208<<14 | 0x0C<<7 | 0x19, - 8550 - 8208: jis0208<<14 | 0x0C<<7 | 0x1A, - 8551 - 8208: jis0208<<14 | 0x0C<<7 | 0x1B, - 8552 - 8208: jis0208<<14 | 0x0C<<7 | 0x1C, - 8553 - 8208: jis0208<<14 | 0x0C<<7 | 0x1D, - 8560 - 8208: jis0208<<14 | 0x5B<<7 | 0x50, - 8561 - 8208: jis0208<<14 | 0x5B<<7 | 0x51, - 8562 - 8208: jis0208<<14 | 0x5B<<7 | 0x52, - 8563 - 8208: jis0208<<14 | 0x5B<<7 | 0x53, - 8564 - 8208: jis0208<<14 | 0x5B<<7 | 0x54, - 8565 - 8208: jis0208<<14 | 0x5B<<7 | 0x55, - 8566 - 8208: jis0208<<14 | 0x5B<<7 | 0x56, - 8567 - 8208: jis0208<<14 | 0x5B<<7 | 0x57, - 8568 - 8208: jis0208<<14 | 0x5B<<7 | 0x58, - 8569 - 8208: jis0208<<14 | 0x5B<<7 | 0x59, - 8592 - 8208: jis0208<<14 | 0x01<<7 | 0x0A, - 8593 - 8208: jis0208<<14 | 0x01<<7 | 0x0B, - 8594 - 8208: jis0208<<14 | 0x01<<7 | 0x09, - 8595 - 8208: jis0208<<14 | 0x01<<7 | 0x0C, - 8658 - 8208: jis0208<<14 | 0x01<<7 | 0x2C, - 8660 - 8208: jis0208<<14 | 0x01<<7 | 0x2D, - 8704 - 8208: jis0208<<14 | 0x01<<7 | 0x2E, - 8706 - 8208: jis0208<<14 | 0x01<<7 | 0x3E, - 8707 - 8208: jis0208<<14 | 0x01<<7 | 0x2F, - 8711 - 8208: jis0208<<14 | 0x01<<7 | 0x3F, - 8712 - 8208: jis0208<<14 | 0x01<<7 | 0x19, - 8715 - 8208: jis0208<<14 | 0x01<<7 | 0x1A, - 8721 - 8208: jis0208<<14 | 0x0C<<7 | 0x53, - 8730 - 8208: jis0208<<14 | 0x01<<7 | 0x44, - 8733 - 8208: jis0208<<14 | 0x01<<7 | 0x46, - 8734 - 8208: jis0208<<14 | 0x00<<7 | 0x46, - 8735 - 8208: jis0208<<14 | 0x0C<<7 | 0x57, - 8736 - 8208: jis0208<<14 | 0x01<<7 | 0x3B, - 8741 - 8208: jis0208<<14 | 0x00<<7 | 0x21, - 8743 - 8208: jis0208<<14 | 0x01<<7 | 0x29, - 8744 - 8208: jis0208<<14 | 0x01<<7 | 0x2A, - 8745 - 8208: jis0208<<14 | 0x01<<7 | 0x20, - 8746 - 8208: jis0208<<14 | 0x01<<7 | 0x1F, - 8747 - 8208: jis0208<<14 | 0x01<<7 | 0x48, - 8748 - 8208: jis0208<<14 | 0x01<<7 | 0x49, - 8750 - 8208: jis0208<<14 | 0x0C<<7 | 0x52, - 8756 - 8208: jis0208<<14 | 0x00<<7 | 0x47, - 8757 - 8208: jis0208<<14 | 0x01<<7 | 0x47, - 8765 - 8208: jis0208<<14 | 0x01<<7 | 0x45, - 8786 - 8208: jis0208<<14 | 0x01<<7 | 0x41, - 8800 - 8208: jis0208<<14 | 0x00<<7 | 0x41, - 8801 - 8208: jis0208<<14 | 0x01<<7 | 0x40, - 8806 - 8208: jis0208<<14 | 0x00<<7 | 0x44, - 8807 - 8208: jis0208<<14 | 0x00<<7 | 0x45, - 8810 - 8208: jis0208<<14 | 0x01<<7 | 0x42, - 8811 - 8208: jis0208<<14 | 0x01<<7 | 0x43, - 8834 - 8208: jis0208<<14 | 0x01<<7 | 0x1D, - 8835 - 8208: jis0208<<14 | 0x01<<7 | 0x1E, - 8838 - 8208: jis0208<<14 | 0x01<<7 | 0x1B, - 8839 - 8208: jis0208<<14 | 0x01<<7 | 0x1C, - 8869 - 8208: jis0208<<14 | 0x01<<7 | 0x3C, - 8895 - 8208: jis0208<<14 | 0x0C<<7 | 0x58, - 8978 - 8208: jis0208<<14 | 0x01<<7 | 0x3D, - 9312 - 8208: jis0208<<14 | 0x0C<<7 | 0x00, - 9313 - 8208: jis0208<<14 | 0x0C<<7 | 0x01, - 9314 - 8208: jis0208<<14 | 0x0C<<7 | 0x02, - 9315 - 8208: jis0208<<14 | 0x0C<<7 | 0x03, - 9316 - 8208: jis0208<<14 | 0x0C<<7 | 0x04, - 9317 - 8208: jis0208<<14 | 0x0C<<7 | 0x05, - 9318 - 8208: jis0208<<14 | 0x0C<<7 | 0x06, - 9319 - 8208: jis0208<<14 | 0x0C<<7 | 0x07, - 9320 - 8208: jis0208<<14 | 0x0C<<7 | 0x08, - 9321 - 8208: jis0208<<14 | 0x0C<<7 | 0x09, - 9322 - 8208: jis0208<<14 | 0x0C<<7 | 0x0A, - 9323 - 8208: jis0208<<14 | 0x0C<<7 | 0x0B, - 9324 - 8208: jis0208<<14 | 0x0C<<7 | 0x0C, - 9325 - 8208: jis0208<<14 | 0x0C<<7 | 0x0D, - 9326 - 8208: jis0208<<14 | 0x0C<<7 | 0x0E, - 9327 - 8208: jis0208<<14 | 0x0C<<7 | 0x0F, - 9328 - 8208: jis0208<<14 | 0x0C<<7 | 0x10, - 9329 - 8208: jis0208<<14 | 0x0C<<7 | 0x11, - 9330 - 8208: jis0208<<14 | 0x0C<<7 | 0x12, - 9331 - 8208: jis0208<<14 | 0x0C<<7 | 0x13, - 9472 - 8208: jis0208<<14 | 0x07<<7 | 0x00, - 9473 - 8208: jis0208<<14 | 0x07<<7 | 0x0B, - 9474 - 8208: jis0208<<14 | 0x07<<7 | 0x01, - 9475 - 8208: jis0208<<14 | 0x07<<7 | 0x0C, - 9484 - 8208: jis0208<<14 | 0x07<<7 | 0x02, - 9487 - 8208: jis0208<<14 | 0x07<<7 | 0x0D, - 9488 - 8208: jis0208<<14 | 0x07<<7 | 0x03, - 9491 - 8208: jis0208<<14 | 0x07<<7 | 0x0E, - 9492 - 8208: jis0208<<14 | 0x07<<7 | 0x05, - 9495 - 8208: jis0208<<14 | 0x07<<7 | 0x10, - 9496 - 8208: jis0208<<14 | 0x07<<7 | 0x04, - 9499 - 8208: jis0208<<14 | 0x07<<7 | 0x0F, - 9500 - 8208: jis0208<<14 | 0x07<<7 | 0x06, - 9501 - 8208: jis0208<<14 | 0x07<<7 | 0x1B, - 9504 - 8208: jis0208<<14 | 0x07<<7 | 0x16, - 9507 - 8208: jis0208<<14 | 0x07<<7 | 0x11, - 9508 - 8208: jis0208<<14 | 0x07<<7 | 0x08, - 9509 - 8208: jis0208<<14 | 0x07<<7 | 0x1D, - 9512 - 8208: jis0208<<14 | 0x07<<7 | 0x18, - 9515 - 8208: jis0208<<14 | 0x07<<7 | 0x13, - 9516 - 8208: jis0208<<14 | 0x07<<7 | 0x07, - 9519 - 8208: jis0208<<14 | 0x07<<7 | 0x17, - 9520 - 8208: jis0208<<14 | 0x07<<7 | 0x1C, - 9523 - 8208: jis0208<<14 | 0x07<<7 | 0x12, - 9524 - 8208: jis0208<<14 | 0x07<<7 | 0x09, - 9527 - 8208: jis0208<<14 | 0x07<<7 | 0x19, - 9528 - 8208: jis0208<<14 | 0x07<<7 | 0x1E, - 9531 - 8208: jis0208<<14 | 0x07<<7 | 0x14, - 9532 - 8208: jis0208<<14 | 0x07<<7 | 0x0A, - 9535 - 8208: jis0208<<14 | 0x07<<7 | 0x1A, - 9538 - 8208: jis0208<<14 | 0x07<<7 | 0x1F, - 9547 - 8208: jis0208<<14 | 0x07<<7 | 0x15, - 9632 - 8208: jis0208<<14 | 0x01<<7 | 0x02, - 9633 - 8208: jis0208<<14 | 0x01<<7 | 0x01, - 9650 - 8208: jis0208<<14 | 0x01<<7 | 0x04, - 9651 - 8208: jis0208<<14 | 0x01<<7 | 0x03, - 9660 - 8208: jis0208<<14 | 0x01<<7 | 0x06, - 9661 - 8208: jis0208<<14 | 0x01<<7 | 0x05, - 9670 - 8208: jis0208<<14 | 0x01<<7 | 0x00, - 9671 - 8208: jis0208<<14 | 0x00<<7 | 0x5D, - 9675 - 8208: jis0208<<14 | 0x00<<7 | 0x5A, - 9678 - 8208: jis0208<<14 | 0x00<<7 | 0x5C, - 9679 - 8208: jis0208<<14 | 0x00<<7 | 0x5B, - 9711 - 8208: jis0208<<14 | 0x01<<7 | 0x5D, - 9733 - 8208: jis0208<<14 | 0x00<<7 | 0x59, - 9734 - 8208: jis0208<<14 | 0x00<<7 | 0x58, - 9792 - 8208: jis0208<<14 | 0x00<<7 | 0x49, - 9794 - 8208: jis0208<<14 | 0x00<<7 | 0x48, - 9834 - 8208: jis0208<<14 | 0x01<<7 | 0x55, - 9837 - 8208: jis0208<<14 | 0x01<<7 | 0x54, - 9839 - 8208: jis0208<<14 | 0x01<<7 | 0x53, -} - -const encode2Low, encode2High = 12288, 13262 - -var encode2 = [...]uint16{ - 12288 - 12288: jis0208<<14 | 0x00<<7 | 0x00, - 12289 - 12288: jis0208<<14 | 0x00<<7 | 0x01, - 12290 - 12288: jis0208<<14 | 0x00<<7 | 0x02, - 12291 - 12288: jis0208<<14 | 0x00<<7 | 0x16, - 12293 - 12288: jis0208<<14 | 0x00<<7 | 0x18, - 12294 - 12288: jis0208<<14 | 0x00<<7 | 0x19, - 12295 - 12288: jis0208<<14 | 0x00<<7 | 0x1A, - 12296 - 12288: jis0208<<14 | 0x00<<7 | 0x31, - 12297 - 12288: jis0208<<14 | 0x00<<7 | 0x32, - 12298 - 12288: jis0208<<14 | 0x00<<7 | 0x33, - 12299 - 12288: jis0208<<14 | 0x00<<7 | 0x34, - 12300 - 12288: jis0208<<14 | 0x00<<7 | 0x35, - 12301 - 12288: jis0208<<14 | 0x00<<7 | 0x36, - 12302 - 12288: jis0208<<14 | 0x00<<7 | 0x37, - 12303 - 12288: jis0208<<14 | 0x00<<7 | 0x38, - 12304 - 12288: jis0208<<14 | 0x00<<7 | 0x39, - 12305 - 12288: jis0208<<14 | 0x00<<7 | 0x3A, - 12306 - 12288: jis0208<<14 | 0x01<<7 | 0x08, - 12307 - 12288: jis0208<<14 | 0x01<<7 | 0x0D, - 12308 - 12288: jis0208<<14 | 0x00<<7 | 0x2B, - 12309 - 12288: jis0208<<14 | 0x00<<7 | 0x2C, - 12317 - 12288: jis0208<<14 | 0x0C<<7 | 0x3F, - 12319 - 12288: jis0208<<14 | 0x0C<<7 | 0x40, - 12353 - 12288: jis0208<<14 | 0x03<<7 | 0x00, - 12354 - 12288: jis0208<<14 | 0x03<<7 | 0x01, - 12355 - 12288: jis0208<<14 | 0x03<<7 | 0x02, - 12356 - 12288: jis0208<<14 | 0x03<<7 | 0x03, - 12357 - 12288: jis0208<<14 | 0x03<<7 | 0x04, - 12358 - 12288: jis0208<<14 | 0x03<<7 | 0x05, - 12359 - 12288: jis0208<<14 | 0x03<<7 | 0x06, - 12360 - 12288: jis0208<<14 | 0x03<<7 | 0x07, - 12361 - 12288: jis0208<<14 | 0x03<<7 | 0x08, - 12362 - 12288: jis0208<<14 | 0x03<<7 | 0x09, - 12363 - 12288: jis0208<<14 | 0x03<<7 | 0x0A, - 12364 - 12288: jis0208<<14 | 0x03<<7 | 0x0B, - 12365 - 12288: jis0208<<14 | 0x03<<7 | 0x0C, - 12366 - 12288: jis0208<<14 | 0x03<<7 | 0x0D, - 12367 - 12288: jis0208<<14 | 0x03<<7 | 0x0E, - 12368 - 12288: jis0208<<14 | 0x03<<7 | 0x0F, - 12369 - 12288: jis0208<<14 | 0x03<<7 | 0x10, - 12370 - 12288: jis0208<<14 | 0x03<<7 | 0x11, - 12371 - 12288: jis0208<<14 | 0x03<<7 | 0x12, - 12372 - 12288: jis0208<<14 | 0x03<<7 | 0x13, - 12373 - 12288: jis0208<<14 | 0x03<<7 | 0x14, - 12374 - 12288: jis0208<<14 | 0x03<<7 | 0x15, - 12375 - 12288: jis0208<<14 | 0x03<<7 | 0x16, - 12376 - 12288: jis0208<<14 | 0x03<<7 | 0x17, - 12377 - 12288: jis0208<<14 | 0x03<<7 | 0x18, - 12378 - 12288: jis0208<<14 | 0x03<<7 | 0x19, - 12379 - 12288: jis0208<<14 | 0x03<<7 | 0x1A, - 12380 - 12288: jis0208<<14 | 0x03<<7 | 0x1B, - 12381 - 12288: jis0208<<14 | 0x03<<7 | 0x1C, - 12382 - 12288: jis0208<<14 | 0x03<<7 | 0x1D, - 12383 - 12288: jis0208<<14 | 0x03<<7 | 0x1E, - 12384 - 12288: jis0208<<14 | 0x03<<7 | 0x1F, - 12385 - 12288: jis0208<<14 | 0x03<<7 | 0x20, - 12386 - 12288: jis0208<<14 | 0x03<<7 | 0x21, - 12387 - 12288: jis0208<<14 | 0x03<<7 | 0x22, - 12388 - 12288: jis0208<<14 | 0x03<<7 | 0x23, - 12389 - 12288: jis0208<<14 | 0x03<<7 | 0x24, - 12390 - 12288: jis0208<<14 | 0x03<<7 | 0x25, - 12391 - 12288: jis0208<<14 | 0x03<<7 | 0x26, - 12392 - 12288: jis0208<<14 | 0x03<<7 | 0x27, - 12393 - 12288: jis0208<<14 | 0x03<<7 | 0x28, - 12394 - 12288: jis0208<<14 | 0x03<<7 | 0x29, - 12395 - 12288: jis0208<<14 | 0x03<<7 | 0x2A, - 12396 - 12288: jis0208<<14 | 0x03<<7 | 0x2B, - 12397 - 12288: jis0208<<14 | 0x03<<7 | 0x2C, - 12398 - 12288: jis0208<<14 | 0x03<<7 | 0x2D, - 12399 - 12288: jis0208<<14 | 0x03<<7 | 0x2E, - 12400 - 12288: jis0208<<14 | 0x03<<7 | 0x2F, - 12401 - 12288: jis0208<<14 | 0x03<<7 | 0x30, - 12402 - 12288: jis0208<<14 | 0x03<<7 | 0x31, - 12403 - 12288: jis0208<<14 | 0x03<<7 | 0x32, - 12404 - 12288: jis0208<<14 | 0x03<<7 | 0x33, - 12405 - 12288: jis0208<<14 | 0x03<<7 | 0x34, - 12406 - 12288: jis0208<<14 | 0x03<<7 | 0x35, - 12407 - 12288: jis0208<<14 | 0x03<<7 | 0x36, - 12408 - 12288: jis0208<<14 | 0x03<<7 | 0x37, - 12409 - 12288: jis0208<<14 | 0x03<<7 | 0x38, - 12410 - 12288: jis0208<<14 | 0x03<<7 | 0x39, - 12411 - 12288: jis0208<<14 | 0x03<<7 | 0x3A, - 12412 - 12288: jis0208<<14 | 0x03<<7 | 0x3B, - 12413 - 12288: jis0208<<14 | 0x03<<7 | 0x3C, - 12414 - 12288: jis0208<<14 | 0x03<<7 | 0x3D, - 12415 - 12288: jis0208<<14 | 0x03<<7 | 0x3E, - 12416 - 12288: jis0208<<14 | 0x03<<7 | 0x3F, - 12417 - 12288: jis0208<<14 | 0x03<<7 | 0x40, - 12418 - 12288: jis0208<<14 | 0x03<<7 | 0x41, - 12419 - 12288: jis0208<<14 | 0x03<<7 | 0x42, - 12420 - 12288: jis0208<<14 | 0x03<<7 | 0x43, - 12421 - 12288: jis0208<<14 | 0x03<<7 | 0x44, - 12422 - 12288: jis0208<<14 | 0x03<<7 | 0x45, - 12423 - 12288: jis0208<<14 | 0x03<<7 | 0x46, - 12424 - 12288: jis0208<<14 | 0x03<<7 | 0x47, - 12425 - 12288: jis0208<<14 | 0x03<<7 | 0x48, - 12426 - 12288: jis0208<<14 | 0x03<<7 | 0x49, - 12427 - 12288: jis0208<<14 | 0x03<<7 | 0x4A, - 12428 - 12288: jis0208<<14 | 0x03<<7 | 0x4B, - 12429 - 12288: jis0208<<14 | 0x03<<7 | 0x4C, - 12430 - 12288: jis0208<<14 | 0x03<<7 | 0x4D, - 12431 - 12288: jis0208<<14 | 0x03<<7 | 0x4E, - 12432 - 12288: jis0208<<14 | 0x03<<7 | 0x4F, - 12433 - 12288: jis0208<<14 | 0x03<<7 | 0x50, - 12434 - 12288: jis0208<<14 | 0x03<<7 | 0x51, - 12435 - 12288: jis0208<<14 | 0x03<<7 | 0x52, - 12443 - 12288: jis0208<<14 | 0x00<<7 | 0x0A, - 12444 - 12288: jis0208<<14 | 0x00<<7 | 0x0B, - 12445 - 12288: jis0208<<14 | 0x00<<7 | 0x14, - 12446 - 12288: jis0208<<14 | 0x00<<7 | 0x15, - 12449 - 12288: jis0208<<14 | 0x04<<7 | 0x00, - 12450 - 12288: jis0208<<14 | 0x04<<7 | 0x01, - 12451 - 12288: jis0208<<14 | 0x04<<7 | 0x02, - 12452 - 12288: jis0208<<14 | 0x04<<7 | 0x03, - 12453 - 12288: jis0208<<14 | 0x04<<7 | 0x04, - 12454 - 12288: jis0208<<14 | 0x04<<7 | 0x05, - 12455 - 12288: jis0208<<14 | 0x04<<7 | 0x06, - 12456 - 12288: jis0208<<14 | 0x04<<7 | 0x07, - 12457 - 12288: jis0208<<14 | 0x04<<7 | 0x08, - 12458 - 12288: jis0208<<14 | 0x04<<7 | 0x09, - 12459 - 12288: jis0208<<14 | 0x04<<7 | 0x0A, - 12460 - 12288: jis0208<<14 | 0x04<<7 | 0x0B, - 12461 - 12288: jis0208<<14 | 0x04<<7 | 0x0C, - 12462 - 12288: jis0208<<14 | 0x04<<7 | 0x0D, - 12463 - 12288: jis0208<<14 | 0x04<<7 | 0x0E, - 12464 - 12288: jis0208<<14 | 0x04<<7 | 0x0F, - 12465 - 12288: jis0208<<14 | 0x04<<7 | 0x10, - 12466 - 12288: jis0208<<14 | 0x04<<7 | 0x11, - 12467 - 12288: jis0208<<14 | 0x04<<7 | 0x12, - 12468 - 12288: jis0208<<14 | 0x04<<7 | 0x13, - 12469 - 12288: jis0208<<14 | 0x04<<7 | 0x14, - 12470 - 12288: jis0208<<14 | 0x04<<7 | 0x15, - 12471 - 12288: jis0208<<14 | 0x04<<7 | 0x16, - 12472 - 12288: jis0208<<14 | 0x04<<7 | 0x17, - 12473 - 12288: jis0208<<14 | 0x04<<7 | 0x18, - 12474 - 12288: jis0208<<14 | 0x04<<7 | 0x19, - 12475 - 12288: jis0208<<14 | 0x04<<7 | 0x1A, - 12476 - 12288: jis0208<<14 | 0x04<<7 | 0x1B, - 12477 - 12288: jis0208<<14 | 0x04<<7 | 0x1C, - 12478 - 12288: jis0208<<14 | 0x04<<7 | 0x1D, - 12479 - 12288: jis0208<<14 | 0x04<<7 | 0x1E, - 12480 - 12288: jis0208<<14 | 0x04<<7 | 0x1F, - 12481 - 12288: jis0208<<14 | 0x04<<7 | 0x20, - 12482 - 12288: jis0208<<14 | 0x04<<7 | 0x21, - 12483 - 12288: jis0208<<14 | 0x04<<7 | 0x22, - 12484 - 12288: jis0208<<14 | 0x04<<7 | 0x23, - 12485 - 12288: jis0208<<14 | 0x04<<7 | 0x24, - 12486 - 12288: jis0208<<14 | 0x04<<7 | 0x25, - 12487 - 12288: jis0208<<14 | 0x04<<7 | 0x26, - 12488 - 12288: jis0208<<14 | 0x04<<7 | 0x27, - 12489 - 12288: jis0208<<14 | 0x04<<7 | 0x28, - 12490 - 12288: jis0208<<14 | 0x04<<7 | 0x29, - 12491 - 12288: jis0208<<14 | 0x04<<7 | 0x2A, - 12492 - 12288: jis0208<<14 | 0x04<<7 | 0x2B, - 12493 - 12288: jis0208<<14 | 0x04<<7 | 0x2C, - 12494 - 12288: jis0208<<14 | 0x04<<7 | 0x2D, - 12495 - 12288: jis0208<<14 | 0x04<<7 | 0x2E, - 12496 - 12288: jis0208<<14 | 0x04<<7 | 0x2F, - 12497 - 12288: jis0208<<14 | 0x04<<7 | 0x30, - 12498 - 12288: jis0208<<14 | 0x04<<7 | 0x31, - 12499 - 12288: jis0208<<14 | 0x04<<7 | 0x32, - 12500 - 12288: jis0208<<14 | 0x04<<7 | 0x33, - 12501 - 12288: jis0208<<14 | 0x04<<7 | 0x34, - 12502 - 12288: jis0208<<14 | 0x04<<7 | 0x35, - 12503 - 12288: jis0208<<14 | 0x04<<7 | 0x36, - 12504 - 12288: jis0208<<14 | 0x04<<7 | 0x37, - 12505 - 12288: jis0208<<14 | 0x04<<7 | 0x38, - 12506 - 12288: jis0208<<14 | 0x04<<7 | 0x39, - 12507 - 12288: jis0208<<14 | 0x04<<7 | 0x3A, - 12508 - 12288: jis0208<<14 | 0x04<<7 | 0x3B, - 12509 - 12288: jis0208<<14 | 0x04<<7 | 0x3C, - 12510 - 12288: jis0208<<14 | 0x04<<7 | 0x3D, - 12511 - 12288: jis0208<<14 | 0x04<<7 | 0x3E, - 12512 - 12288: jis0208<<14 | 0x04<<7 | 0x3F, - 12513 - 12288: jis0208<<14 | 0x04<<7 | 0x40, - 12514 - 12288: jis0208<<14 | 0x04<<7 | 0x41, - 12515 - 12288: jis0208<<14 | 0x04<<7 | 0x42, - 12516 - 12288: jis0208<<14 | 0x04<<7 | 0x43, - 12517 - 12288: jis0208<<14 | 0x04<<7 | 0x44, - 12518 - 12288: jis0208<<14 | 0x04<<7 | 0x45, - 12519 - 12288: jis0208<<14 | 0x04<<7 | 0x46, - 12520 - 12288: jis0208<<14 | 0x04<<7 | 0x47, - 12521 - 12288: jis0208<<14 | 0x04<<7 | 0x48, - 12522 - 12288: jis0208<<14 | 0x04<<7 | 0x49, - 12523 - 12288: jis0208<<14 | 0x04<<7 | 0x4A, - 12524 - 12288: jis0208<<14 | 0x04<<7 | 0x4B, - 12525 - 12288: jis0208<<14 | 0x04<<7 | 0x4C, - 12526 - 12288: jis0208<<14 | 0x04<<7 | 0x4D, - 12527 - 12288: jis0208<<14 | 0x04<<7 | 0x4E, - 12528 - 12288: jis0208<<14 | 0x04<<7 | 0x4F, - 12529 - 12288: jis0208<<14 | 0x04<<7 | 0x50, - 12530 - 12288: jis0208<<14 | 0x04<<7 | 0x51, - 12531 - 12288: jis0208<<14 | 0x04<<7 | 0x52, - 12532 - 12288: jis0208<<14 | 0x04<<7 | 0x53, - 12533 - 12288: jis0208<<14 | 0x04<<7 | 0x54, - 12534 - 12288: jis0208<<14 | 0x04<<7 | 0x55, - 12539 - 12288: jis0208<<14 | 0x00<<7 | 0x05, - 12540 - 12288: jis0208<<14 | 0x00<<7 | 0x1B, - 12541 - 12288: jis0208<<14 | 0x00<<7 | 0x12, - 12542 - 12288: jis0208<<14 | 0x00<<7 | 0x13, - 12849 - 12288: jis0208<<14 | 0x0C<<7 | 0x49, - 12850 - 12288: jis0208<<14 | 0x0C<<7 | 0x4A, - 12857 - 12288: jis0208<<14 | 0x0C<<7 | 0x4B, - 12964 - 12288: jis0208<<14 | 0x0C<<7 | 0x44, - 12965 - 12288: jis0208<<14 | 0x0C<<7 | 0x45, - 12966 - 12288: jis0208<<14 | 0x0C<<7 | 0x46, - 12967 - 12288: jis0208<<14 | 0x0C<<7 | 0x47, - 12968 - 12288: jis0208<<14 | 0x0C<<7 | 0x48, - 13059 - 12288: jis0208<<14 | 0x0C<<7 | 0x25, - 13069 - 12288: jis0208<<14 | 0x0C<<7 | 0x29, - 13076 - 12288: jis0208<<14 | 0x0C<<7 | 0x20, - 13080 - 12288: jis0208<<14 | 0x0C<<7 | 0x23, - 13090 - 12288: jis0208<<14 | 0x0C<<7 | 0x21, - 13091 - 12288: jis0208<<14 | 0x0C<<7 | 0x2B, - 13094 - 12288: jis0208<<14 | 0x0C<<7 | 0x2A, - 13095 - 12288: jis0208<<14 | 0x0C<<7 | 0x24, - 13099 - 12288: jis0208<<14 | 0x0C<<7 | 0x2C, - 13110 - 12288: jis0208<<14 | 0x0C<<7 | 0x26, - 13115 - 12288: jis0208<<14 | 0x0C<<7 | 0x2E, - 13129 - 12288: jis0208<<14 | 0x0C<<7 | 0x1F, - 13130 - 12288: jis0208<<14 | 0x0C<<7 | 0x2D, - 13133 - 12288: jis0208<<14 | 0x0C<<7 | 0x22, - 13137 - 12288: jis0208<<14 | 0x0C<<7 | 0x27, - 13143 - 12288: jis0208<<14 | 0x0C<<7 | 0x28, - 13179 - 12288: jis0208<<14 | 0x0C<<7 | 0x3E, - 13180 - 12288: jis0208<<14 | 0x0C<<7 | 0x4E, - 13181 - 12288: jis0208<<14 | 0x0C<<7 | 0x4D, - 13182 - 12288: jis0208<<14 | 0x0C<<7 | 0x4C, - 13198 - 12288: jis0208<<14 | 0x0C<<7 | 0x32, - 13199 - 12288: jis0208<<14 | 0x0C<<7 | 0x33, - 13212 - 12288: jis0208<<14 | 0x0C<<7 | 0x2F, - 13213 - 12288: jis0208<<14 | 0x0C<<7 | 0x30, - 13214 - 12288: jis0208<<14 | 0x0C<<7 | 0x31, - 13217 - 12288: jis0208<<14 | 0x0C<<7 | 0x35, - 13252 - 12288: jis0208<<14 | 0x0C<<7 | 0x34, - 13261 - 12288: jis0208<<14 | 0x0C<<7 | 0x42, -} - -const encode3Low, encode3High = 161, 1120 - -var encode3 = [...]uint16{ - 161 - 161: jis0212<<14 | 0x01<<7 | 0x21, - 164 - 161: jis0212<<14 | 0x01<<7 | 0x4F, - 166 - 161: jis0212<<14 | 0x01<<7 | 0x22, - 167 - 161: jis0208<<14 | 0x00<<7 | 0x57, - 168 - 161: jis0208<<14 | 0x00<<7 | 0x0E, - 169 - 161: jis0212<<14 | 0x01<<7 | 0x4C, - 170 - 161: jis0212<<14 | 0x01<<7 | 0x4B, - 174 - 161: jis0212<<14 | 0x01<<7 | 0x4D, - 175 - 161: jis0212<<14 | 0x01<<7 | 0x13, - 176 - 161: jis0208<<14 | 0x00<<7 | 0x4A, - 177 - 161: jis0208<<14 | 0x00<<7 | 0x3D, - 180 - 161: jis0208<<14 | 0x00<<7 | 0x0C, - 182 - 161: jis0208<<14 | 0x01<<7 | 0x58, - 184 - 161: jis0212<<14 | 0x01<<7 | 0x10, - 186 - 161: jis0212<<14 | 0x01<<7 | 0x4A, - 191 - 161: jis0212<<14 | 0x01<<7 | 0x23, - 192 - 161: jis0212<<14 | 0x09<<7 | 0x01, - 193 - 161: jis0212<<14 | 0x09<<7 | 0x00, - 194 - 161: jis0212<<14 | 0x09<<7 | 0x03, - 195 - 161: jis0212<<14 | 0x09<<7 | 0x09, - 196 - 161: jis0212<<14 | 0x09<<7 | 0x02, - 197 - 161: jis0212<<14 | 0x09<<7 | 0x08, - 198 - 161: jis0212<<14 | 0x08<<7 | 0x00, - 199 - 161: jis0212<<14 | 0x09<<7 | 0x0D, - 200 - 161: jis0212<<14 | 0x09<<7 | 0x11, - 201 - 161: jis0212<<14 | 0x09<<7 | 0x10, - 202 - 161: jis0212<<14 | 0x09<<7 | 0x13, - 203 - 161: jis0212<<14 | 0x09<<7 | 0x12, - 204 - 161: jis0212<<14 | 0x09<<7 | 0x1F, - 205 - 161: jis0212<<14 | 0x09<<7 | 0x1E, - 206 - 161: jis0212<<14 | 0x09<<7 | 0x21, - 207 - 161: jis0212<<14 | 0x09<<7 | 0x20, - 209 - 161: jis0212<<14 | 0x09<<7 | 0x2F, - 210 - 161: jis0212<<14 | 0x09<<7 | 0x31, - 211 - 161: jis0212<<14 | 0x09<<7 | 0x30, - 212 - 161: jis0212<<14 | 0x09<<7 | 0x33, - 213 - 161: jis0212<<14 | 0x09<<7 | 0x37, - 214 - 161: jis0212<<14 | 0x09<<7 | 0x32, - 215 - 161: jis0208<<14 | 0x00<<7 | 0x3E, - 216 - 161: jis0212<<14 | 0x08<<7 | 0x0B, - 217 - 161: jis0212<<14 | 0x09<<7 | 0x42, - 218 - 161: jis0212<<14 | 0x09<<7 | 0x41, - 219 - 161: jis0212<<14 | 0x09<<7 | 0x44, - 220 - 161: jis0212<<14 | 0x09<<7 | 0x43, - 221 - 161: jis0212<<14 | 0x09<<7 | 0x51, - 222 - 161: jis0212<<14 | 0x08<<7 | 0x0F, - 223 - 161: jis0212<<14 | 0x08<<7 | 0x2D, - 224 - 161: jis0212<<14 | 0x0A<<7 | 0x01, - 225 - 161: jis0212<<14 | 0x0A<<7 | 0x00, - 226 - 161: jis0212<<14 | 0x0A<<7 | 0x03, - 227 - 161: jis0212<<14 | 0x0A<<7 | 0x09, - 228 - 161: jis0212<<14 | 0x0A<<7 | 0x02, - 229 - 161: jis0212<<14 | 0x0A<<7 | 0x08, - 230 - 161: jis0212<<14 | 0x08<<7 | 0x20, - 231 - 161: jis0212<<14 | 0x0A<<7 | 0x0D, - 232 - 161: jis0212<<14 | 0x0A<<7 | 0x11, - 233 - 161: jis0212<<14 | 0x0A<<7 | 0x10, - 234 - 161: jis0212<<14 | 0x0A<<7 | 0x13, - 235 - 161: jis0212<<14 | 0x0A<<7 | 0x12, - 236 - 161: jis0212<<14 | 0x0A<<7 | 0x1F, - 237 - 161: jis0212<<14 | 0x0A<<7 | 0x1E, - 238 - 161: jis0212<<14 | 0x0A<<7 | 0x21, - 239 - 161: jis0212<<14 | 0x0A<<7 | 0x20, - 240 - 161: jis0212<<14 | 0x08<<7 | 0x22, - 241 - 161: jis0212<<14 | 0x0A<<7 | 0x2F, - 242 - 161: jis0212<<14 | 0x0A<<7 | 0x31, - 243 - 161: jis0212<<14 | 0x0A<<7 | 0x30, - 244 - 161: jis0212<<14 | 0x0A<<7 | 0x33, - 245 - 161: jis0212<<14 | 0x0A<<7 | 0x37, - 246 - 161: jis0212<<14 | 0x0A<<7 | 0x32, - 247 - 161: jis0208<<14 | 0x00<<7 | 0x3F, - 248 - 161: jis0212<<14 | 0x08<<7 | 0x2B, - 249 - 161: jis0212<<14 | 0x0A<<7 | 0x42, - 250 - 161: jis0212<<14 | 0x0A<<7 | 0x41, - 251 - 161: jis0212<<14 | 0x0A<<7 | 0x44, - 252 - 161: jis0212<<14 | 0x0A<<7 | 0x43, - 253 - 161: jis0212<<14 | 0x0A<<7 | 0x51, - 254 - 161: jis0212<<14 | 0x08<<7 | 0x2F, - 255 - 161: jis0212<<14 | 0x0A<<7 | 0x52, - 256 - 161: jis0212<<14 | 0x09<<7 | 0x06, - 257 - 161: jis0212<<14 | 0x0A<<7 | 0x06, - 258 - 161: jis0212<<14 | 0x09<<7 | 0x04, - 259 - 161: jis0212<<14 | 0x0A<<7 | 0x04, - 260 - 161: jis0212<<14 | 0x09<<7 | 0x07, - 261 - 161: jis0212<<14 | 0x0A<<7 | 0x07, - 262 - 161: jis0212<<14 | 0x09<<7 | 0x0A, - 263 - 161: jis0212<<14 | 0x0A<<7 | 0x0A, - 264 - 161: jis0212<<14 | 0x09<<7 | 0x0B, - 265 - 161: jis0212<<14 | 0x0A<<7 | 0x0B, - 266 - 161: jis0212<<14 | 0x09<<7 | 0x0E, - 267 - 161: jis0212<<14 | 0x0A<<7 | 0x0E, - 268 - 161: jis0212<<14 | 0x09<<7 | 0x0C, - 269 - 161: jis0212<<14 | 0x0A<<7 | 0x0C, - 270 - 161: jis0212<<14 | 0x09<<7 | 0x0F, - 271 - 161: jis0212<<14 | 0x0A<<7 | 0x0F, - 272 - 161: jis0212<<14 | 0x08<<7 | 0x01, - 273 - 161: jis0212<<14 | 0x08<<7 | 0x21, - 274 - 161: jis0212<<14 | 0x09<<7 | 0x16, - 275 - 161: jis0212<<14 | 0x0A<<7 | 0x16, - 278 - 161: jis0212<<14 | 0x09<<7 | 0x15, - 279 - 161: jis0212<<14 | 0x0A<<7 | 0x15, - 280 - 161: jis0212<<14 | 0x09<<7 | 0x17, - 281 - 161: jis0212<<14 | 0x0A<<7 | 0x17, - 282 - 161: jis0212<<14 | 0x09<<7 | 0x14, - 283 - 161: jis0212<<14 | 0x0A<<7 | 0x14, - 284 - 161: jis0212<<14 | 0x09<<7 | 0x19, - 285 - 161: jis0212<<14 | 0x0A<<7 | 0x19, - 286 - 161: jis0212<<14 | 0x09<<7 | 0x1A, - 287 - 161: jis0212<<14 | 0x0A<<7 | 0x1A, - 288 - 161: jis0212<<14 | 0x09<<7 | 0x1C, - 289 - 161: jis0212<<14 | 0x0A<<7 | 0x1C, - 290 - 161: jis0212<<14 | 0x09<<7 | 0x1B, - 292 - 161: jis0212<<14 | 0x09<<7 | 0x1D, - 293 - 161: jis0212<<14 | 0x0A<<7 | 0x1D, - 294 - 161: jis0212<<14 | 0x08<<7 | 0x03, - 295 - 161: jis0212<<14 | 0x08<<7 | 0x23, - 296 - 161: jis0212<<14 | 0x09<<7 | 0x26, - 297 - 161: jis0212<<14 | 0x0A<<7 | 0x26, - 298 - 161: jis0212<<14 | 0x09<<7 | 0x24, - 299 - 161: jis0212<<14 | 0x0A<<7 | 0x24, - 302 - 161: jis0212<<14 | 0x09<<7 | 0x25, - 303 - 161: jis0212<<14 | 0x0A<<7 | 0x25, - 304 - 161: jis0212<<14 | 0x09<<7 | 0x23, - 305 - 161: jis0212<<14 | 0x08<<7 | 0x24, - 306 - 161: jis0212<<14 | 0x08<<7 | 0x05, - 307 - 161: jis0212<<14 | 0x08<<7 | 0x25, - 308 - 161: jis0212<<14 | 0x09<<7 | 0x27, - 309 - 161: jis0212<<14 | 0x0A<<7 | 0x27, - 310 - 161: jis0212<<14 | 0x09<<7 | 0x28, - 311 - 161: jis0212<<14 | 0x0A<<7 | 0x28, - 312 - 161: jis0212<<14 | 0x08<<7 | 0x26, - 313 - 161: jis0212<<14 | 0x09<<7 | 0x29, - 314 - 161: jis0212<<14 | 0x0A<<7 | 0x29, - 315 - 161: jis0212<<14 | 0x09<<7 | 0x2B, - 316 - 161: jis0212<<14 | 0x0A<<7 | 0x2B, - 317 - 161: jis0212<<14 | 0x09<<7 | 0x2A, - 318 - 161: jis0212<<14 | 0x0A<<7 | 0x2A, - 319 - 161: jis0212<<14 | 0x08<<7 | 0x08, - 320 - 161: jis0212<<14 | 0x08<<7 | 0x28, - 321 - 161: jis0212<<14 | 0x08<<7 | 0x07, - 322 - 161: jis0212<<14 | 0x08<<7 | 0x27, - 323 - 161: jis0212<<14 | 0x09<<7 | 0x2C, - 324 - 161: jis0212<<14 | 0x0A<<7 | 0x2C, - 325 - 161: jis0212<<14 | 0x09<<7 | 0x2E, - 326 - 161: jis0212<<14 | 0x0A<<7 | 0x2E, - 327 - 161: jis0212<<14 | 0x09<<7 | 0x2D, - 328 - 161: jis0212<<14 | 0x0A<<7 | 0x2D, - 329 - 161: jis0212<<14 | 0x08<<7 | 0x29, - 330 - 161: jis0212<<14 | 0x08<<7 | 0x0A, - 331 - 161: jis0212<<14 | 0x08<<7 | 0x2A, - 332 - 161: jis0212<<14 | 0x09<<7 | 0x36, - 333 - 161: jis0212<<14 | 0x0A<<7 | 0x36, - 336 - 161: jis0212<<14 | 0x09<<7 | 0x35, - 337 - 161: jis0212<<14 | 0x0A<<7 | 0x35, - 338 - 161: jis0212<<14 | 0x08<<7 | 0x0C, - 339 - 161: jis0212<<14 | 0x08<<7 | 0x2C, - 340 - 161: jis0212<<14 | 0x09<<7 | 0x38, - 341 - 161: jis0212<<14 | 0x0A<<7 | 0x38, - 342 - 161: jis0212<<14 | 0x09<<7 | 0x3A, - 343 - 161: jis0212<<14 | 0x0A<<7 | 0x3A, - 344 - 161: jis0212<<14 | 0x09<<7 | 0x39, - 345 - 161: jis0212<<14 | 0x0A<<7 | 0x39, - 346 - 161: jis0212<<14 | 0x09<<7 | 0x3B, - 347 - 161: jis0212<<14 | 0x0A<<7 | 0x3B, - 348 - 161: jis0212<<14 | 0x09<<7 | 0x3C, - 349 - 161: jis0212<<14 | 0x0A<<7 | 0x3C, - 350 - 161: jis0212<<14 | 0x09<<7 | 0x3E, - 351 - 161: jis0212<<14 | 0x0A<<7 | 0x3E, - 352 - 161: jis0212<<14 | 0x09<<7 | 0x3D, - 353 - 161: jis0212<<14 | 0x0A<<7 | 0x3D, - 354 - 161: jis0212<<14 | 0x09<<7 | 0x40, - 355 - 161: jis0212<<14 | 0x0A<<7 | 0x40, - 356 - 161: jis0212<<14 | 0x09<<7 | 0x3F, - 357 - 161: jis0212<<14 | 0x0A<<7 | 0x3F, - 358 - 161: jis0212<<14 | 0x08<<7 | 0x0E, - 359 - 161: jis0212<<14 | 0x08<<7 | 0x2E, - 360 - 161: jis0212<<14 | 0x09<<7 | 0x4B, - 361 - 161: jis0212<<14 | 0x0A<<7 | 0x4B, - 362 - 161: jis0212<<14 | 0x09<<7 | 0x48, - 363 - 161: jis0212<<14 | 0x0A<<7 | 0x48, - 364 - 161: jis0212<<14 | 0x09<<7 | 0x45, - 365 - 161: jis0212<<14 | 0x0A<<7 | 0x45, - 366 - 161: jis0212<<14 | 0x09<<7 | 0x4A, - 367 - 161: jis0212<<14 | 0x0A<<7 | 0x4A, - 368 - 161: jis0212<<14 | 0x09<<7 | 0x47, - 369 - 161: jis0212<<14 | 0x0A<<7 | 0x47, - 370 - 161: jis0212<<14 | 0x09<<7 | 0x49, - 371 - 161: jis0212<<14 | 0x0A<<7 | 0x49, - 372 - 161: jis0212<<14 | 0x09<<7 | 0x50, - 373 - 161: jis0212<<14 | 0x0A<<7 | 0x50, - 374 - 161: jis0212<<14 | 0x09<<7 | 0x53, - 375 - 161: jis0212<<14 | 0x0A<<7 | 0x53, - 376 - 161: jis0212<<14 | 0x09<<7 | 0x52, - 377 - 161: jis0212<<14 | 0x09<<7 | 0x54, - 378 - 161: jis0212<<14 | 0x0A<<7 | 0x54, - 379 - 161: jis0212<<14 | 0x09<<7 | 0x56, - 380 - 161: jis0212<<14 | 0x0A<<7 | 0x56, - 381 - 161: jis0212<<14 | 0x09<<7 | 0x55, - 382 - 161: jis0212<<14 | 0x0A<<7 | 0x55, - 461 - 161: jis0212<<14 | 0x09<<7 | 0x05, - 462 - 161: jis0212<<14 | 0x0A<<7 | 0x05, - 463 - 161: jis0212<<14 | 0x09<<7 | 0x22, - 464 - 161: jis0212<<14 | 0x0A<<7 | 0x22, - 465 - 161: jis0212<<14 | 0x09<<7 | 0x34, - 466 - 161: jis0212<<14 | 0x0A<<7 | 0x34, - 467 - 161: jis0212<<14 | 0x09<<7 | 0x46, - 468 - 161: jis0212<<14 | 0x0A<<7 | 0x46, - 469 - 161: jis0212<<14 | 0x09<<7 | 0x4F, - 470 - 161: jis0212<<14 | 0x0A<<7 | 0x4F, - 471 - 161: jis0212<<14 | 0x09<<7 | 0x4C, - 472 - 161: jis0212<<14 | 0x0A<<7 | 0x4C, - 473 - 161: jis0212<<14 | 0x09<<7 | 0x4E, - 474 - 161: jis0212<<14 | 0x0A<<7 | 0x4E, - 475 - 161: jis0212<<14 | 0x09<<7 | 0x4D, - 476 - 161: jis0212<<14 | 0x0A<<7 | 0x4D, - 501 - 161: jis0212<<14 | 0x0A<<7 | 0x18, - 711 - 161: jis0212<<14 | 0x01<<7 | 0x0F, - 728 - 161: jis0212<<14 | 0x01<<7 | 0x0E, - 729 - 161: jis0212<<14 | 0x01<<7 | 0x11, - 730 - 161: jis0212<<14 | 0x01<<7 | 0x15, - 731 - 161: jis0212<<14 | 0x01<<7 | 0x14, - 733 - 161: jis0212<<14 | 0x01<<7 | 0x12, - 900 - 161: jis0212<<14 | 0x01<<7 | 0x17, - 901 - 161: jis0212<<14 | 0x01<<7 | 0x18, - 902 - 161: jis0212<<14 | 0x05<<7 | 0x40, - 904 - 161: jis0212<<14 | 0x05<<7 | 0x41, - 905 - 161: jis0212<<14 | 0x05<<7 | 0x42, - 906 - 161: jis0212<<14 | 0x05<<7 | 0x43, - 908 - 161: jis0212<<14 | 0x05<<7 | 0x46, - 910 - 161: jis0212<<14 | 0x05<<7 | 0x48, - 911 - 161: jis0212<<14 | 0x05<<7 | 0x4B, - 912 - 161: jis0212<<14 | 0x05<<7 | 0x55, - 913 - 161: jis0208<<14 | 0x05<<7 | 0x00, - 914 - 161: jis0208<<14 | 0x05<<7 | 0x01, - 915 - 161: jis0208<<14 | 0x05<<7 | 0x02, - 916 - 161: jis0208<<14 | 0x05<<7 | 0x03, - 917 - 161: jis0208<<14 | 0x05<<7 | 0x04, - 918 - 161: jis0208<<14 | 0x05<<7 | 0x05, - 919 - 161: jis0208<<14 | 0x05<<7 | 0x06, - 920 - 161: jis0208<<14 | 0x05<<7 | 0x07, - 921 - 161: jis0208<<14 | 0x05<<7 | 0x08, - 922 - 161: jis0208<<14 | 0x05<<7 | 0x09, - 923 - 161: jis0208<<14 | 0x05<<7 | 0x0A, - 924 - 161: jis0208<<14 | 0x05<<7 | 0x0B, - 925 - 161: jis0208<<14 | 0x05<<7 | 0x0C, - 926 - 161: jis0208<<14 | 0x05<<7 | 0x0D, - 927 - 161: jis0208<<14 | 0x05<<7 | 0x0E, - 928 - 161: jis0208<<14 | 0x05<<7 | 0x0F, - 929 - 161: jis0208<<14 | 0x05<<7 | 0x10, - 931 - 161: jis0208<<14 | 0x05<<7 | 0x11, - 932 - 161: jis0208<<14 | 0x05<<7 | 0x12, - 933 - 161: jis0208<<14 | 0x05<<7 | 0x13, - 934 - 161: jis0208<<14 | 0x05<<7 | 0x14, - 935 - 161: jis0208<<14 | 0x05<<7 | 0x15, - 936 - 161: jis0208<<14 | 0x05<<7 | 0x16, - 937 - 161: jis0208<<14 | 0x05<<7 | 0x17, - 938 - 161: jis0212<<14 | 0x05<<7 | 0x44, - 939 - 161: jis0212<<14 | 0x05<<7 | 0x49, - 940 - 161: jis0212<<14 | 0x05<<7 | 0x50, - 941 - 161: jis0212<<14 | 0x05<<7 | 0x51, - 942 - 161: jis0212<<14 | 0x05<<7 | 0x52, - 943 - 161: jis0212<<14 | 0x05<<7 | 0x53, - 944 - 161: jis0212<<14 | 0x05<<7 | 0x5A, - 945 - 161: jis0208<<14 | 0x05<<7 | 0x20, - 946 - 161: jis0208<<14 | 0x05<<7 | 0x21, - 947 - 161: jis0208<<14 | 0x05<<7 | 0x22, - 948 - 161: jis0208<<14 | 0x05<<7 | 0x23, - 949 - 161: jis0208<<14 | 0x05<<7 | 0x24, - 950 - 161: jis0208<<14 | 0x05<<7 | 0x25, - 951 - 161: jis0208<<14 | 0x05<<7 | 0x26, - 952 - 161: jis0208<<14 | 0x05<<7 | 0x27, - 953 - 161: jis0208<<14 | 0x05<<7 | 0x28, - 954 - 161: jis0208<<14 | 0x05<<7 | 0x29, - 955 - 161: jis0208<<14 | 0x05<<7 | 0x2A, - 956 - 161: jis0208<<14 | 0x05<<7 | 0x2B, - 957 - 161: jis0208<<14 | 0x05<<7 | 0x2C, - 958 - 161: jis0208<<14 | 0x05<<7 | 0x2D, - 959 - 161: jis0208<<14 | 0x05<<7 | 0x2E, - 960 - 161: jis0208<<14 | 0x05<<7 | 0x2F, - 961 - 161: jis0208<<14 | 0x05<<7 | 0x30, - 962 - 161: jis0212<<14 | 0x05<<7 | 0x57, - 963 - 161: jis0208<<14 | 0x05<<7 | 0x31, - 964 - 161: jis0208<<14 | 0x05<<7 | 0x32, - 965 - 161: jis0208<<14 | 0x05<<7 | 0x33, - 966 - 161: jis0208<<14 | 0x05<<7 | 0x34, - 967 - 161: jis0208<<14 | 0x05<<7 | 0x35, - 968 - 161: jis0208<<14 | 0x05<<7 | 0x36, - 969 - 161: jis0208<<14 | 0x05<<7 | 0x37, - 970 - 161: jis0212<<14 | 0x05<<7 | 0x54, - 971 - 161: jis0212<<14 | 0x05<<7 | 0x59, - 972 - 161: jis0212<<14 | 0x05<<7 | 0x56, - 973 - 161: jis0212<<14 | 0x05<<7 | 0x58, - 974 - 161: jis0212<<14 | 0x05<<7 | 0x5B, - 1025 - 161: jis0208<<14 | 0x06<<7 | 0x06, - 1026 - 161: jis0212<<14 | 0x06<<7 | 0x21, - 1027 - 161: jis0212<<14 | 0x06<<7 | 0x22, - 1028 - 161: jis0212<<14 | 0x06<<7 | 0x23, - 1029 - 161: jis0212<<14 | 0x06<<7 | 0x24, - 1030 - 161: jis0212<<14 | 0x06<<7 | 0x25, - 1031 - 161: jis0212<<14 | 0x06<<7 | 0x26, - 1032 - 161: jis0212<<14 | 0x06<<7 | 0x27, - 1033 - 161: jis0212<<14 | 0x06<<7 | 0x28, - 1034 - 161: jis0212<<14 | 0x06<<7 | 0x29, - 1035 - 161: jis0212<<14 | 0x06<<7 | 0x2A, - 1036 - 161: jis0212<<14 | 0x06<<7 | 0x2B, - 1038 - 161: jis0212<<14 | 0x06<<7 | 0x2C, - 1039 - 161: jis0212<<14 | 0x06<<7 | 0x2D, - 1040 - 161: jis0208<<14 | 0x06<<7 | 0x00, - 1041 - 161: jis0208<<14 | 0x06<<7 | 0x01, - 1042 - 161: jis0208<<14 | 0x06<<7 | 0x02, - 1043 - 161: jis0208<<14 | 0x06<<7 | 0x03, - 1044 - 161: jis0208<<14 | 0x06<<7 | 0x04, - 1045 - 161: jis0208<<14 | 0x06<<7 | 0x05, - 1046 - 161: jis0208<<14 | 0x06<<7 | 0x07, - 1047 - 161: jis0208<<14 | 0x06<<7 | 0x08, - 1048 - 161: jis0208<<14 | 0x06<<7 | 0x09, - 1049 - 161: jis0208<<14 | 0x06<<7 | 0x0A, - 1050 - 161: jis0208<<14 | 0x06<<7 | 0x0B, - 1051 - 161: jis0208<<14 | 0x06<<7 | 0x0C, - 1052 - 161: jis0208<<14 | 0x06<<7 | 0x0D, - 1053 - 161: jis0208<<14 | 0x06<<7 | 0x0E, - 1054 - 161: jis0208<<14 | 0x06<<7 | 0x0F, - 1055 - 161: jis0208<<14 | 0x06<<7 | 0x10, - 1056 - 161: jis0208<<14 | 0x06<<7 | 0x11, - 1057 - 161: jis0208<<14 | 0x06<<7 | 0x12, - 1058 - 161: jis0208<<14 | 0x06<<7 | 0x13, - 1059 - 161: jis0208<<14 | 0x06<<7 | 0x14, - 1060 - 161: jis0208<<14 | 0x06<<7 | 0x15, - 1061 - 161: jis0208<<14 | 0x06<<7 | 0x16, - 1062 - 161: jis0208<<14 | 0x06<<7 | 0x17, - 1063 - 161: jis0208<<14 | 0x06<<7 | 0x18, - 1064 - 161: jis0208<<14 | 0x06<<7 | 0x19, - 1065 - 161: jis0208<<14 | 0x06<<7 | 0x1A, - 1066 - 161: jis0208<<14 | 0x06<<7 | 0x1B, - 1067 - 161: jis0208<<14 | 0x06<<7 | 0x1C, - 1068 - 161: jis0208<<14 | 0x06<<7 | 0x1D, - 1069 - 161: jis0208<<14 | 0x06<<7 | 0x1E, - 1070 - 161: jis0208<<14 | 0x06<<7 | 0x1F, - 1071 - 161: jis0208<<14 | 0x06<<7 | 0x20, - 1072 - 161: jis0208<<14 | 0x06<<7 | 0x30, - 1073 - 161: jis0208<<14 | 0x06<<7 | 0x31, - 1074 - 161: jis0208<<14 | 0x06<<7 | 0x32, - 1075 - 161: jis0208<<14 | 0x06<<7 | 0x33, - 1076 - 161: jis0208<<14 | 0x06<<7 | 0x34, - 1077 - 161: jis0208<<14 | 0x06<<7 | 0x35, - 1078 - 161: jis0208<<14 | 0x06<<7 | 0x37, - 1079 - 161: jis0208<<14 | 0x06<<7 | 0x38, - 1080 - 161: jis0208<<14 | 0x06<<7 | 0x39, - 1081 - 161: jis0208<<14 | 0x06<<7 | 0x3A, - 1082 - 161: jis0208<<14 | 0x06<<7 | 0x3B, - 1083 - 161: jis0208<<14 | 0x06<<7 | 0x3C, - 1084 - 161: jis0208<<14 | 0x06<<7 | 0x3D, - 1085 - 161: jis0208<<14 | 0x06<<7 | 0x3E, - 1086 - 161: jis0208<<14 | 0x06<<7 | 0x3F, - 1087 - 161: jis0208<<14 | 0x06<<7 | 0x40, - 1088 - 161: jis0208<<14 | 0x06<<7 | 0x41, - 1089 - 161: jis0208<<14 | 0x06<<7 | 0x42, - 1090 - 161: jis0208<<14 | 0x06<<7 | 0x43, - 1091 - 161: jis0208<<14 | 0x06<<7 | 0x44, - 1092 - 161: jis0208<<14 | 0x06<<7 | 0x45, - 1093 - 161: jis0208<<14 | 0x06<<7 | 0x46, - 1094 - 161: jis0208<<14 | 0x06<<7 | 0x47, - 1095 - 161: jis0208<<14 | 0x06<<7 | 0x48, - 1096 - 161: jis0208<<14 | 0x06<<7 | 0x49, - 1097 - 161: jis0208<<14 | 0x06<<7 | 0x4A, - 1098 - 161: jis0208<<14 | 0x06<<7 | 0x4B, - 1099 - 161: jis0208<<14 | 0x06<<7 | 0x4C, - 1100 - 161: jis0208<<14 | 0x06<<7 | 0x4D, - 1101 - 161: jis0208<<14 | 0x06<<7 | 0x4E, - 1102 - 161: jis0208<<14 | 0x06<<7 | 0x4F, - 1103 - 161: jis0208<<14 | 0x06<<7 | 0x50, - 1105 - 161: jis0208<<14 | 0x06<<7 | 0x36, - 1106 - 161: jis0212<<14 | 0x06<<7 | 0x51, - 1107 - 161: jis0212<<14 | 0x06<<7 | 0x52, - 1108 - 161: jis0212<<14 | 0x06<<7 | 0x53, - 1109 - 161: jis0212<<14 | 0x06<<7 | 0x54, - 1110 - 161: jis0212<<14 | 0x06<<7 | 0x55, - 1111 - 161: jis0212<<14 | 0x06<<7 | 0x56, - 1112 - 161: jis0212<<14 | 0x06<<7 | 0x57, - 1113 - 161: jis0212<<14 | 0x06<<7 | 0x58, - 1114 - 161: jis0212<<14 | 0x06<<7 | 0x59, - 1115 - 161: jis0212<<14 | 0x06<<7 | 0x5A, - 1116 - 161: jis0212<<14 | 0x06<<7 | 0x5B, - 1118 - 161: jis0212<<14 | 0x06<<7 | 0x5C, - 1119 - 161: jis0212<<14 | 0x06<<7 | 0x5D, -} - -const encode4Low, encode4High = 63785, 64046 - -var encode4 = [...]uint16{ - 63785 - 63785: jis0208<<14 | 0x59<<7 | 0x25, - 63964 - 63785: jis0208<<14 | 0x5B<<7 | 0x2E, - 64014 - 63785: jis0208<<14 | 0x58<<7 | 0x33, - 64015 - 63785: jis0208<<14 | 0x58<<7 | 0x3E, - 64016 - 63785: jis0208<<14 | 0x58<<7 | 0x3F, - 64017 - 63785: jis0208<<14 | 0x58<<7 | 0x54, - 64018 - 63785: jis0208<<14 | 0x59<<7 | 0x1D, - 64019 - 63785: jis0208<<14 | 0x59<<7 | 0x2D, - 64020 - 63785: jis0208<<14 | 0x59<<7 | 0x2F, - 64021 - 63785: jis0208<<14 | 0x59<<7 | 0x5A, - 64022 - 63785: jis0208<<14 | 0x5A<<7 | 0x02, - 64023 - 63785: jis0208<<14 | 0x5A<<7 | 0x19, - 64024 - 63785: jis0208<<14 | 0x5A<<7 | 0x21, - 64025 - 63785: jis0208<<14 | 0x5A<<7 | 0x22, - 64026 - 63785: jis0208<<14 | 0x5A<<7 | 0x23, - 64027 - 63785: jis0208<<14 | 0x5A<<7 | 0x25, - 64028 - 63785: jis0208<<14 | 0x5A<<7 | 0x29, - 64029 - 63785: jis0208<<14 | 0x5A<<7 | 0x2C, - 64030 - 63785: jis0208<<14 | 0x5A<<7 | 0x35, - 64031 - 63785: jis0208<<14 | 0x5A<<7 | 0x40, - 64032 - 63785: jis0208<<14 | 0x5A<<7 | 0x42, - 64033 - 63785: jis0208<<14 | 0x5A<<7 | 0x43, - 64034 - 63785: jis0208<<14 | 0x5A<<7 | 0x4C, - 64035 - 63785: jis0208<<14 | 0x5A<<7 | 0x54, - 64036 - 63785: jis0208<<14 | 0x5A<<7 | 0x56, - 64037 - 63785: jis0208<<14 | 0x5A<<7 | 0x57, - 64038 - 63785: jis0208<<14 | 0x5A<<7 | 0x5A, - 64039 - 63785: jis0208<<14 | 0x5B<<7 | 0x18, - 64040 - 63785: jis0208<<14 | 0x5B<<7 | 0x1F, - 64041 - 63785: jis0208<<14 | 0x5B<<7 | 0x2F, - 64042 - 63785: jis0208<<14 | 0x5B<<7 | 0x3B, - 64043 - 63785: jis0208<<14 | 0x5B<<7 | 0x3C, - 64044 - 63785: jis0208<<14 | 0x5B<<7 | 0x3E, - 64045 - 63785: jis0208<<14 | 0x5B<<7 | 0x4B, -} - -const encode5Low, encode5High = 65281, 65510 - -var encode5 = [...]uint16{ - 65281 - 65281: jis0208<<14 | 0x00<<7 | 0x09, - 65282 - 65281: jis0208<<14 | 0x5B<<7 | 0x5D, - 65283 - 65281: jis0208<<14 | 0x00<<7 | 0x53, - 65284 - 65281: jis0208<<14 | 0x00<<7 | 0x4F, - 65285 - 65281: jis0208<<14 | 0x00<<7 | 0x52, - 65286 - 65281: jis0208<<14 | 0x00<<7 | 0x54, - 65287 - 65281: jis0208<<14 | 0x5B<<7 | 0x5C, - 65288 - 65281: jis0208<<14 | 0x00<<7 | 0x29, - 65289 - 65281: jis0208<<14 | 0x00<<7 | 0x2A, - 65290 - 65281: jis0208<<14 | 0x00<<7 | 0x55, - 65291 - 65281: jis0208<<14 | 0x00<<7 | 0x3B, - 65292 - 65281: jis0208<<14 | 0x00<<7 | 0x03, - 65293 - 65281: jis0208<<14 | 0x00<<7 | 0x3C, - 65294 - 65281: jis0208<<14 | 0x00<<7 | 0x04, - 65295 - 65281: jis0208<<14 | 0x00<<7 | 0x1E, - 65296 - 65281: jis0208<<14 | 0x02<<7 | 0x0F, - 65297 - 65281: jis0208<<14 | 0x02<<7 | 0x10, - 65298 - 65281: jis0208<<14 | 0x02<<7 | 0x11, - 65299 - 65281: jis0208<<14 | 0x02<<7 | 0x12, - 65300 - 65281: jis0208<<14 | 0x02<<7 | 0x13, - 65301 - 65281: jis0208<<14 | 0x02<<7 | 0x14, - 65302 - 65281: jis0208<<14 | 0x02<<7 | 0x15, - 65303 - 65281: jis0208<<14 | 0x02<<7 | 0x16, - 65304 - 65281: jis0208<<14 | 0x02<<7 | 0x17, - 65305 - 65281: jis0208<<14 | 0x02<<7 | 0x18, - 65306 - 65281: jis0208<<14 | 0x00<<7 | 0x06, - 65307 - 65281: jis0208<<14 | 0x00<<7 | 0x07, - 65308 - 65281: jis0208<<14 | 0x00<<7 | 0x42, - 65309 - 65281: jis0208<<14 | 0x00<<7 | 0x40, - 65310 - 65281: jis0208<<14 | 0x00<<7 | 0x43, - 65311 - 65281: jis0208<<14 | 0x00<<7 | 0x08, - 65312 - 65281: jis0208<<14 | 0x00<<7 | 0x56, - 65313 - 65281: jis0208<<14 | 0x02<<7 | 0x20, - 65314 - 65281: jis0208<<14 | 0x02<<7 | 0x21, - 65315 - 65281: jis0208<<14 | 0x02<<7 | 0x22, - 65316 - 65281: jis0208<<14 | 0x02<<7 | 0x23, - 65317 - 65281: jis0208<<14 | 0x02<<7 | 0x24, - 65318 - 65281: jis0208<<14 | 0x02<<7 | 0x25, - 65319 - 65281: jis0208<<14 | 0x02<<7 | 0x26, - 65320 - 65281: jis0208<<14 | 0x02<<7 | 0x27, - 65321 - 65281: jis0208<<14 | 0x02<<7 | 0x28, - 65322 - 65281: jis0208<<14 | 0x02<<7 | 0x29, - 65323 - 65281: jis0208<<14 | 0x02<<7 | 0x2A, - 65324 - 65281: jis0208<<14 | 0x02<<7 | 0x2B, - 65325 - 65281: jis0208<<14 | 0x02<<7 | 0x2C, - 65326 - 65281: jis0208<<14 | 0x02<<7 | 0x2D, - 65327 - 65281: jis0208<<14 | 0x02<<7 | 0x2E, - 65328 - 65281: jis0208<<14 | 0x02<<7 | 0x2F, - 65329 - 65281: jis0208<<14 | 0x02<<7 | 0x30, - 65330 - 65281: jis0208<<14 | 0x02<<7 | 0x31, - 65331 - 65281: jis0208<<14 | 0x02<<7 | 0x32, - 65332 - 65281: jis0208<<14 | 0x02<<7 | 0x33, - 65333 - 65281: jis0208<<14 | 0x02<<7 | 0x34, - 65334 - 65281: jis0208<<14 | 0x02<<7 | 0x35, - 65335 - 65281: jis0208<<14 | 0x02<<7 | 0x36, - 65336 - 65281: jis0208<<14 | 0x02<<7 | 0x37, - 65337 - 65281: jis0208<<14 | 0x02<<7 | 0x38, - 65338 - 65281: jis0208<<14 | 0x02<<7 | 0x39, - 65339 - 65281: jis0208<<14 | 0x00<<7 | 0x2D, - 65340 - 65281: jis0208<<14 | 0x00<<7 | 0x1F, - 65341 - 65281: jis0208<<14 | 0x00<<7 | 0x2E, - 65342 - 65281: jis0208<<14 | 0x00<<7 | 0x0F, - 65343 - 65281: jis0208<<14 | 0x00<<7 | 0x11, - 65344 - 65281: jis0208<<14 | 0x00<<7 | 0x0D, - 65345 - 65281: jis0208<<14 | 0x02<<7 | 0x40, - 65346 - 65281: jis0208<<14 | 0x02<<7 | 0x41, - 65347 - 65281: jis0208<<14 | 0x02<<7 | 0x42, - 65348 - 65281: jis0208<<14 | 0x02<<7 | 0x43, - 65349 - 65281: jis0208<<14 | 0x02<<7 | 0x44, - 65350 - 65281: jis0208<<14 | 0x02<<7 | 0x45, - 65351 - 65281: jis0208<<14 | 0x02<<7 | 0x46, - 65352 - 65281: jis0208<<14 | 0x02<<7 | 0x47, - 65353 - 65281: jis0208<<14 | 0x02<<7 | 0x48, - 65354 - 65281: jis0208<<14 | 0x02<<7 | 0x49, - 65355 - 65281: jis0208<<14 | 0x02<<7 | 0x4A, - 65356 - 65281: jis0208<<14 | 0x02<<7 | 0x4B, - 65357 - 65281: jis0208<<14 | 0x02<<7 | 0x4C, - 65358 - 65281: jis0208<<14 | 0x02<<7 | 0x4D, - 65359 - 65281: jis0208<<14 | 0x02<<7 | 0x4E, - 65360 - 65281: jis0208<<14 | 0x02<<7 | 0x4F, - 65361 - 65281: jis0208<<14 | 0x02<<7 | 0x50, - 65362 - 65281: jis0208<<14 | 0x02<<7 | 0x51, - 65363 - 65281: jis0208<<14 | 0x02<<7 | 0x52, - 65364 - 65281: jis0208<<14 | 0x02<<7 | 0x53, - 65365 - 65281: jis0208<<14 | 0x02<<7 | 0x54, - 65366 - 65281: jis0208<<14 | 0x02<<7 | 0x55, - 65367 - 65281: jis0208<<14 | 0x02<<7 | 0x56, - 65368 - 65281: jis0208<<14 | 0x02<<7 | 0x57, - 65369 - 65281: jis0208<<14 | 0x02<<7 | 0x58, - 65370 - 65281: jis0208<<14 | 0x02<<7 | 0x59, - 65371 - 65281: jis0208<<14 | 0x00<<7 | 0x2F, - 65372 - 65281: jis0208<<14 | 0x00<<7 | 0x22, - 65373 - 65281: jis0208<<14 | 0x00<<7 | 0x30, - 65374 - 65281: jis0208<<14 | 0x00<<7 | 0x20, - 65504 - 65281: jis0208<<14 | 0x00<<7 | 0x50, - 65505 - 65281: jis0208<<14 | 0x00<<7 | 0x51, - 65506 - 65281: jis0208<<14 | 0x01<<7 | 0x2B, - 65507 - 65281: jis0208<<14 | 0x00<<7 | 0x10, - 65508 - 65281: jis0208<<14 | 0x5B<<7 | 0x5B, - 65509 - 65281: jis0208<<14 | 0x00<<7 | 0x4E, -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean/euckr.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean/euckr.go deleted file mode 100644 index 8716e5b1..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean/euckr.go +++ /dev/null @@ -1,177 +0,0 @@ -// 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 korean - -import ( - "errors" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{EUCKR} - -// EUCKR is the EUC-KR encoding, also known as Code Page 949. -var EUCKR encoding.Encoding = &eucKR - -var eucKR = internal.Encoding{ - &internal.SimpleEncoding{eucKRDecoder{}, eucKREncoder{}}, - "EUC-KR", - identifier.EUCKR, -} - -var errInvalidEUCKR = errors.New("korean: invalid EUC-KR encoding") - -type eucKRDecoder struct{ transform.NopResetter } - -func (eucKRDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case 0x81 <= c0 && c0 < 0xff: - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - if c0 < 0xc7 { - r = 178 * rune(c0-0x81) - switch { - case 0x41 <= c1 && c1 < 0x5b: - r += rune(c1) - (0x41 - 0*26) - case 0x61 <= c1 && c1 < 0x7b: - r += rune(c1) - (0x61 - 1*26) - case 0x81 <= c1 && c1 < 0xff: - r += rune(c1) - (0x81 - 2*26) - default: - err = errInvalidEUCKR - break loop - } - } else if 0xa1 <= c1 && c1 < 0xff { - r = 178*(0xc7-0x81) + rune(c0-0xc7)*94 + rune(c1-0xa1) - } else { - err = errInvalidEUCKR - break loop - } - if int(r) < len(decode) { - r = rune(decode[r]) - if r == 0 { - r = '\ufffd' - } - } else { - r = '\ufffd' - } - size = 2 - - default: - err = errInvalidEUCKR - break loop - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - if atEOF && err == transform.ErrShortSrc { - err = errInvalidEUCKR - } - return nDst, nSrc, err -} - -type eucKREncoder struct{ transform.NopResetter } - -func (eucKREncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto write2 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto write2 - } - case encode5Low <= r && r < encode5High: - if r = rune(encode5[r-encode5Low]); r != 0 { - goto write2 - } - case encode6Low <= r && r < encode6High: - if r = rune(encode6[r-encode6Low]); r != 0 { - goto write2 - } - } - r = encoding.ASCIISub - } - - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r >> 8) - dst[nDst+1] = uint8(r) - nDst += 2 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 7 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean/maketables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean/maketables.go deleted file mode 100644 index c84034fb..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean/maketables.go +++ /dev/null @@ -1,143 +0,0 @@ -// 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. - -// +build ignore - -package main - -// This program generates tables.go: -// go run maketables.go | gofmt > tables.go - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" -) - -func main() { - fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") - fmt.Printf("// Package korean provides Korean encodings such as EUC-KR.\n") - fmt.Printf(`package korean // import "golang.org/x/text/encoding/korean"` + "\n\n") - - res, err := http.Get("http://encoding.spec.whatwg.org/index-euc-kr.txt") - if err != nil { - log.Fatalf("Get: %v", err) - } - defer res.Body.Close() - - mapping := [65536]uint16{} - reverse := [65536]uint16{} - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := uint16(0), uint16(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0 || 178*(0xc7-0x81)+(0xfe-0xc7)*94+(0xff-0xa1) <= x { - log.Fatalf("EUC-KR code %d is out of range", x) - } - mapping[x] = y - if reverse[y] == 0 { - c0, c1 := uint16(0), uint16(0) - if x < 178*(0xc7-0x81) { - c0 = uint16(x/178) + 0x81 - c1 = uint16(x % 178) - switch { - case c1 < 1*26: - c1 += 0x41 - case c1 < 2*26: - c1 += 0x47 - default: - c1 += 0x4d - } - } else { - x -= 178 * (0xc7 - 0x81) - c0 = uint16(x/94) + 0xc7 - c1 = uint16(x%94) + 0xa1 - } - reverse[y] = c0<<8 | c1 - } - } - if err := scanner.Err(); err != nil { - log.Fatalf("scanner error: %v", err) - } - - fmt.Printf("// decode is the decoding table from EUC-KR code to Unicode.\n") - fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-euc-kr.txt\n") - fmt.Printf("var decode = [...]uint16{\n") - for i, v := range mapping { - if v != 0 { - fmt.Printf("\t%d: 0x%04X,\n", i, v) - } - } - fmt.Printf("}\n\n") - - // Any run of at least separation continuous zero entries in the reverse map will - // be a separate encode table. - const separation = 1024 - - intervals := []interval(nil) - low, high := -1, -1 - for i, v := range reverse { - if v == 0 { - continue - } - if low < 0 { - low = i - } else if i-high >= separation { - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - low = i - } - high = i + 1 - } - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - sort.Sort(byDecreasingLength(intervals)) - - fmt.Printf("const numEncodeTables = %d\n\n", len(intervals)) - fmt.Printf("// encodeX are the encoding tables from Unicode to EUC-KR code,\n") - fmt.Printf("// sorted by decreasing length.\n") - for i, v := range intervals { - fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high) - } - fmt.Printf("\n") - - for i, v := range intervals { - fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high) - fmt.Printf("var encode%d = [...]uint16{\n", i) - for j := v.low; j < v.high; j++ { - x := reverse[j] - if x == 0 { - continue - } - fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x) - } - fmt.Printf("}\n\n") - } -} - -// interval is a half-open interval [low, high). -type interval struct { - low, high int -} - -func (i interval) len() int { return i.high - i.low } - -// byDecreasingLength sorts intervals by decreasing length. -type byDecreasingLength []interval - -func (b byDecreasingLength) Len() int { return len(b) } -func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() } -func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean/tables.go deleted file mode 100644 index eb8b4517..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean/tables.go +++ /dev/null @@ -1,34152 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package korean provides Korean encodings such as EUC-KR. -package korean - -// decode is the decoding table from EUC-KR code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-euc-kr.txt -var decode = [...]uint16{ - 0: 0xAC02, - 1: 0xAC03, - 2: 0xAC05, - 3: 0xAC06, - 4: 0xAC0B, - 5: 0xAC0C, - 6: 0xAC0D, - 7: 0xAC0E, - 8: 0xAC0F, - 9: 0xAC18, - 10: 0xAC1E, - 11: 0xAC1F, - 12: 0xAC21, - 13: 0xAC22, - 14: 0xAC23, - 15: 0xAC25, - 16: 0xAC26, - 17: 0xAC27, - 18: 0xAC28, - 19: 0xAC29, - 20: 0xAC2A, - 21: 0xAC2B, - 22: 0xAC2E, - 23: 0xAC32, - 24: 0xAC33, - 25: 0xAC34, - 26: 0xAC35, - 27: 0xAC36, - 28: 0xAC37, - 29: 0xAC3A, - 30: 0xAC3B, - 31: 0xAC3D, - 32: 0xAC3E, - 33: 0xAC3F, - 34: 0xAC41, - 35: 0xAC42, - 36: 0xAC43, - 37: 0xAC44, - 38: 0xAC45, - 39: 0xAC46, - 40: 0xAC47, - 41: 0xAC48, - 42: 0xAC49, - 43: 0xAC4A, - 44: 0xAC4C, - 45: 0xAC4E, - 46: 0xAC4F, - 47: 0xAC50, - 48: 0xAC51, - 49: 0xAC52, - 50: 0xAC53, - 51: 0xAC55, - 52: 0xAC56, - 53: 0xAC57, - 54: 0xAC59, - 55: 0xAC5A, - 56: 0xAC5B, - 57: 0xAC5D, - 58: 0xAC5E, - 59: 0xAC5F, - 60: 0xAC60, - 61: 0xAC61, - 62: 0xAC62, - 63: 0xAC63, - 64: 0xAC64, - 65: 0xAC65, - 66: 0xAC66, - 67: 0xAC67, - 68: 0xAC68, - 69: 0xAC69, - 70: 0xAC6A, - 71: 0xAC6B, - 72: 0xAC6C, - 73: 0xAC6D, - 74: 0xAC6E, - 75: 0xAC6F, - 76: 0xAC72, - 77: 0xAC73, - 78: 0xAC75, - 79: 0xAC76, - 80: 0xAC79, - 81: 0xAC7B, - 82: 0xAC7C, - 83: 0xAC7D, - 84: 0xAC7E, - 85: 0xAC7F, - 86: 0xAC82, - 87: 0xAC87, - 88: 0xAC88, - 89: 0xAC8D, - 90: 0xAC8E, - 91: 0xAC8F, - 92: 0xAC91, - 93: 0xAC92, - 94: 0xAC93, - 95: 0xAC95, - 96: 0xAC96, - 97: 0xAC97, - 98: 0xAC98, - 99: 0xAC99, - 100: 0xAC9A, - 101: 0xAC9B, - 102: 0xAC9E, - 103: 0xACA2, - 104: 0xACA3, - 105: 0xACA4, - 106: 0xACA5, - 107: 0xACA6, - 108: 0xACA7, - 109: 0xACAB, - 110: 0xACAD, - 111: 0xACAE, - 112: 0xACB1, - 113: 0xACB2, - 114: 0xACB3, - 115: 0xACB4, - 116: 0xACB5, - 117: 0xACB6, - 118: 0xACB7, - 119: 0xACBA, - 120: 0xACBE, - 121: 0xACBF, - 122: 0xACC0, - 123: 0xACC2, - 124: 0xACC3, - 125: 0xACC5, - 126: 0xACC6, - 127: 0xACC7, - 128: 0xACC9, - 129: 0xACCA, - 130: 0xACCB, - 131: 0xACCD, - 132: 0xACCE, - 133: 0xACCF, - 134: 0xACD0, - 135: 0xACD1, - 136: 0xACD2, - 137: 0xACD3, - 138: 0xACD4, - 139: 0xACD6, - 140: 0xACD8, - 141: 0xACD9, - 142: 0xACDA, - 143: 0xACDB, - 144: 0xACDC, - 145: 0xACDD, - 146: 0xACDE, - 147: 0xACDF, - 148: 0xACE2, - 149: 0xACE3, - 150: 0xACE5, - 151: 0xACE6, - 152: 0xACE9, - 153: 0xACEB, - 154: 0xACED, - 155: 0xACEE, - 156: 0xACF2, - 157: 0xACF4, - 158: 0xACF7, - 159: 0xACF8, - 160: 0xACF9, - 161: 0xACFA, - 162: 0xACFB, - 163: 0xACFE, - 164: 0xACFF, - 165: 0xAD01, - 166: 0xAD02, - 167: 0xAD03, - 168: 0xAD05, - 169: 0xAD07, - 170: 0xAD08, - 171: 0xAD09, - 172: 0xAD0A, - 173: 0xAD0B, - 174: 0xAD0E, - 175: 0xAD10, - 176: 0xAD12, - 177: 0xAD13, - 178: 0xAD14, - 179: 0xAD15, - 180: 0xAD16, - 181: 0xAD17, - 182: 0xAD19, - 183: 0xAD1A, - 184: 0xAD1B, - 185: 0xAD1D, - 186: 0xAD1E, - 187: 0xAD1F, - 188: 0xAD21, - 189: 0xAD22, - 190: 0xAD23, - 191: 0xAD24, - 192: 0xAD25, - 193: 0xAD26, - 194: 0xAD27, - 195: 0xAD28, - 196: 0xAD2A, - 197: 0xAD2B, - 198: 0xAD2E, - 199: 0xAD2F, - 200: 0xAD30, - 201: 0xAD31, - 202: 0xAD32, - 203: 0xAD33, - 204: 0xAD36, - 205: 0xAD37, - 206: 0xAD39, - 207: 0xAD3A, - 208: 0xAD3B, - 209: 0xAD3D, - 210: 0xAD3E, - 211: 0xAD3F, - 212: 0xAD40, - 213: 0xAD41, - 214: 0xAD42, - 215: 0xAD43, - 216: 0xAD46, - 217: 0xAD48, - 218: 0xAD4A, - 219: 0xAD4B, - 220: 0xAD4C, - 221: 0xAD4D, - 222: 0xAD4E, - 223: 0xAD4F, - 224: 0xAD51, - 225: 0xAD52, - 226: 0xAD53, - 227: 0xAD55, - 228: 0xAD56, - 229: 0xAD57, - 230: 0xAD59, - 231: 0xAD5A, - 232: 0xAD5B, - 233: 0xAD5C, - 234: 0xAD5D, - 235: 0xAD5E, - 236: 0xAD5F, - 237: 0xAD60, - 238: 0xAD62, - 239: 0xAD64, - 240: 0xAD65, - 241: 0xAD66, - 242: 0xAD67, - 243: 0xAD68, - 244: 0xAD69, - 245: 0xAD6A, - 246: 0xAD6B, - 247: 0xAD6E, - 248: 0xAD6F, - 249: 0xAD71, - 250: 0xAD72, - 251: 0xAD77, - 252: 0xAD78, - 253: 0xAD79, - 254: 0xAD7A, - 255: 0xAD7E, - 256: 0xAD80, - 257: 0xAD83, - 258: 0xAD84, - 259: 0xAD85, - 260: 0xAD86, - 261: 0xAD87, - 262: 0xAD8A, - 263: 0xAD8B, - 264: 0xAD8D, - 265: 0xAD8E, - 266: 0xAD8F, - 267: 0xAD91, - 268: 0xAD92, - 269: 0xAD93, - 270: 0xAD94, - 271: 0xAD95, - 272: 0xAD96, - 273: 0xAD97, - 274: 0xAD98, - 275: 0xAD99, - 276: 0xAD9A, - 277: 0xAD9B, - 278: 0xAD9E, - 279: 0xAD9F, - 280: 0xADA0, - 281: 0xADA1, - 282: 0xADA2, - 283: 0xADA3, - 284: 0xADA5, - 285: 0xADA6, - 286: 0xADA7, - 287: 0xADA8, - 288: 0xADA9, - 289: 0xADAA, - 290: 0xADAB, - 291: 0xADAC, - 292: 0xADAD, - 293: 0xADAE, - 294: 0xADAF, - 295: 0xADB0, - 296: 0xADB1, - 297: 0xADB2, - 298: 0xADB3, - 299: 0xADB4, - 300: 0xADB5, - 301: 0xADB6, - 302: 0xADB8, - 303: 0xADB9, - 304: 0xADBA, - 305: 0xADBB, - 306: 0xADBC, - 307: 0xADBD, - 308: 0xADBE, - 309: 0xADBF, - 310: 0xADC2, - 311: 0xADC3, - 312: 0xADC5, - 313: 0xADC6, - 314: 0xADC7, - 315: 0xADC9, - 316: 0xADCA, - 317: 0xADCB, - 318: 0xADCC, - 319: 0xADCD, - 320: 0xADCE, - 321: 0xADCF, - 322: 0xADD2, - 323: 0xADD4, - 324: 0xADD5, - 325: 0xADD6, - 326: 0xADD7, - 327: 0xADD8, - 328: 0xADD9, - 329: 0xADDA, - 330: 0xADDB, - 331: 0xADDD, - 332: 0xADDE, - 333: 0xADDF, - 334: 0xADE1, - 335: 0xADE2, - 336: 0xADE3, - 337: 0xADE5, - 338: 0xADE6, - 339: 0xADE7, - 340: 0xADE8, - 341: 0xADE9, - 342: 0xADEA, - 343: 0xADEB, - 344: 0xADEC, - 345: 0xADED, - 346: 0xADEE, - 347: 0xADEF, - 348: 0xADF0, - 349: 0xADF1, - 350: 0xADF2, - 351: 0xADF3, - 352: 0xADF4, - 353: 0xADF5, - 354: 0xADF6, - 355: 0xADF7, - 356: 0xADFA, - 357: 0xADFB, - 358: 0xADFD, - 359: 0xADFE, - 360: 0xAE02, - 361: 0xAE03, - 362: 0xAE04, - 363: 0xAE05, - 364: 0xAE06, - 365: 0xAE07, - 366: 0xAE0A, - 367: 0xAE0C, - 368: 0xAE0E, - 369: 0xAE0F, - 370: 0xAE10, - 371: 0xAE11, - 372: 0xAE12, - 373: 0xAE13, - 374: 0xAE15, - 375: 0xAE16, - 376: 0xAE17, - 377: 0xAE18, - 378: 0xAE19, - 379: 0xAE1A, - 380: 0xAE1B, - 381: 0xAE1C, - 382: 0xAE1D, - 383: 0xAE1E, - 384: 0xAE1F, - 385: 0xAE20, - 386: 0xAE21, - 387: 0xAE22, - 388: 0xAE23, - 389: 0xAE24, - 390: 0xAE25, - 391: 0xAE26, - 392: 0xAE27, - 393: 0xAE28, - 394: 0xAE29, - 395: 0xAE2A, - 396: 0xAE2B, - 397: 0xAE2C, - 398: 0xAE2D, - 399: 0xAE2E, - 400: 0xAE2F, - 401: 0xAE32, - 402: 0xAE33, - 403: 0xAE35, - 404: 0xAE36, - 405: 0xAE39, - 406: 0xAE3B, - 407: 0xAE3C, - 408: 0xAE3D, - 409: 0xAE3E, - 410: 0xAE3F, - 411: 0xAE42, - 412: 0xAE44, - 413: 0xAE47, - 414: 0xAE48, - 415: 0xAE49, - 416: 0xAE4B, - 417: 0xAE4F, - 418: 0xAE51, - 419: 0xAE52, - 420: 0xAE53, - 421: 0xAE55, - 422: 0xAE57, - 423: 0xAE58, - 424: 0xAE59, - 425: 0xAE5A, - 426: 0xAE5B, - 427: 0xAE5E, - 428: 0xAE62, - 429: 0xAE63, - 430: 0xAE64, - 431: 0xAE66, - 432: 0xAE67, - 433: 0xAE6A, - 434: 0xAE6B, - 435: 0xAE6D, - 436: 0xAE6E, - 437: 0xAE6F, - 438: 0xAE71, - 439: 0xAE72, - 440: 0xAE73, - 441: 0xAE74, - 442: 0xAE75, - 443: 0xAE76, - 444: 0xAE77, - 445: 0xAE7A, - 446: 0xAE7E, - 447: 0xAE7F, - 448: 0xAE80, - 449: 0xAE81, - 450: 0xAE82, - 451: 0xAE83, - 452: 0xAE86, - 453: 0xAE87, - 454: 0xAE88, - 455: 0xAE89, - 456: 0xAE8A, - 457: 0xAE8B, - 458: 0xAE8D, - 459: 0xAE8E, - 460: 0xAE8F, - 461: 0xAE90, - 462: 0xAE91, - 463: 0xAE92, - 464: 0xAE93, - 465: 0xAE94, - 466: 0xAE95, - 467: 0xAE96, - 468: 0xAE97, - 469: 0xAE98, - 470: 0xAE99, - 471: 0xAE9A, - 472: 0xAE9B, - 473: 0xAE9C, - 474: 0xAE9D, - 475: 0xAE9E, - 476: 0xAE9F, - 477: 0xAEA0, - 478: 0xAEA1, - 479: 0xAEA2, - 480: 0xAEA3, - 481: 0xAEA4, - 482: 0xAEA5, - 483: 0xAEA6, - 484: 0xAEA7, - 485: 0xAEA8, - 486: 0xAEA9, - 487: 0xAEAA, - 488: 0xAEAB, - 489: 0xAEAC, - 490: 0xAEAD, - 491: 0xAEAE, - 492: 0xAEAF, - 493: 0xAEB0, - 494: 0xAEB1, - 495: 0xAEB2, - 496: 0xAEB3, - 497: 0xAEB4, - 498: 0xAEB5, - 499: 0xAEB6, - 500: 0xAEB7, - 501: 0xAEB8, - 502: 0xAEB9, - 503: 0xAEBA, - 504: 0xAEBB, - 505: 0xAEBF, - 506: 0xAEC1, - 507: 0xAEC2, - 508: 0xAEC3, - 509: 0xAEC5, - 510: 0xAEC6, - 511: 0xAEC7, - 512: 0xAEC8, - 513: 0xAEC9, - 514: 0xAECA, - 515: 0xAECB, - 516: 0xAECE, - 517: 0xAED2, - 518: 0xAED3, - 519: 0xAED4, - 520: 0xAED5, - 521: 0xAED6, - 522: 0xAED7, - 523: 0xAEDA, - 524: 0xAEDB, - 525: 0xAEDD, - 526: 0xAEDE, - 527: 0xAEDF, - 528: 0xAEE0, - 529: 0xAEE1, - 530: 0xAEE2, - 531: 0xAEE3, - 532: 0xAEE4, - 533: 0xAEE5, - 534: 0xAEE6, - 535: 0xAEE7, - 536: 0xAEE9, - 537: 0xAEEA, - 538: 0xAEEC, - 539: 0xAEEE, - 540: 0xAEEF, - 541: 0xAEF0, - 542: 0xAEF1, - 543: 0xAEF2, - 544: 0xAEF3, - 545: 0xAEF5, - 546: 0xAEF6, - 547: 0xAEF7, - 548: 0xAEF9, - 549: 0xAEFA, - 550: 0xAEFB, - 551: 0xAEFD, - 552: 0xAEFE, - 553: 0xAEFF, - 554: 0xAF00, - 555: 0xAF01, - 556: 0xAF02, - 557: 0xAF03, - 558: 0xAF04, - 559: 0xAF05, - 560: 0xAF06, - 561: 0xAF09, - 562: 0xAF0A, - 563: 0xAF0B, - 564: 0xAF0C, - 565: 0xAF0E, - 566: 0xAF0F, - 567: 0xAF11, - 568: 0xAF12, - 569: 0xAF13, - 570: 0xAF14, - 571: 0xAF15, - 572: 0xAF16, - 573: 0xAF17, - 574: 0xAF18, - 575: 0xAF19, - 576: 0xAF1A, - 577: 0xAF1B, - 578: 0xAF1C, - 579: 0xAF1D, - 580: 0xAF1E, - 581: 0xAF1F, - 582: 0xAF20, - 583: 0xAF21, - 584: 0xAF22, - 585: 0xAF23, - 586: 0xAF24, - 587: 0xAF25, - 588: 0xAF26, - 589: 0xAF27, - 590: 0xAF28, - 591: 0xAF29, - 592: 0xAF2A, - 593: 0xAF2B, - 594: 0xAF2E, - 595: 0xAF2F, - 596: 0xAF31, - 597: 0xAF33, - 598: 0xAF35, - 599: 0xAF36, - 600: 0xAF37, - 601: 0xAF38, - 602: 0xAF39, - 603: 0xAF3A, - 604: 0xAF3B, - 605: 0xAF3E, - 606: 0xAF40, - 607: 0xAF44, - 608: 0xAF45, - 609: 0xAF46, - 610: 0xAF47, - 611: 0xAF4A, - 612: 0xAF4B, - 613: 0xAF4C, - 614: 0xAF4D, - 615: 0xAF4E, - 616: 0xAF4F, - 617: 0xAF51, - 618: 0xAF52, - 619: 0xAF53, - 620: 0xAF54, - 621: 0xAF55, - 622: 0xAF56, - 623: 0xAF57, - 624: 0xAF58, - 625: 0xAF59, - 626: 0xAF5A, - 627: 0xAF5B, - 628: 0xAF5E, - 629: 0xAF5F, - 630: 0xAF60, - 631: 0xAF61, - 632: 0xAF62, - 633: 0xAF63, - 634: 0xAF66, - 635: 0xAF67, - 636: 0xAF68, - 637: 0xAF69, - 638: 0xAF6A, - 639: 0xAF6B, - 640: 0xAF6C, - 641: 0xAF6D, - 642: 0xAF6E, - 643: 0xAF6F, - 644: 0xAF70, - 645: 0xAF71, - 646: 0xAF72, - 647: 0xAF73, - 648: 0xAF74, - 649: 0xAF75, - 650: 0xAF76, - 651: 0xAF77, - 652: 0xAF78, - 653: 0xAF7A, - 654: 0xAF7B, - 655: 0xAF7C, - 656: 0xAF7D, - 657: 0xAF7E, - 658: 0xAF7F, - 659: 0xAF81, - 660: 0xAF82, - 661: 0xAF83, - 662: 0xAF85, - 663: 0xAF86, - 664: 0xAF87, - 665: 0xAF89, - 666: 0xAF8A, - 667: 0xAF8B, - 668: 0xAF8C, - 669: 0xAF8D, - 670: 0xAF8E, - 671: 0xAF8F, - 672: 0xAF92, - 673: 0xAF93, - 674: 0xAF94, - 675: 0xAF96, - 676: 0xAF97, - 677: 0xAF98, - 678: 0xAF99, - 679: 0xAF9A, - 680: 0xAF9B, - 681: 0xAF9D, - 682: 0xAF9E, - 683: 0xAF9F, - 684: 0xAFA0, - 685: 0xAFA1, - 686: 0xAFA2, - 687: 0xAFA3, - 688: 0xAFA4, - 689: 0xAFA5, - 690: 0xAFA6, - 691: 0xAFA7, - 692: 0xAFA8, - 693: 0xAFA9, - 694: 0xAFAA, - 695: 0xAFAB, - 696: 0xAFAC, - 697: 0xAFAD, - 698: 0xAFAE, - 699: 0xAFAF, - 700: 0xAFB0, - 701: 0xAFB1, - 702: 0xAFB2, - 703: 0xAFB3, - 704: 0xAFB4, - 705: 0xAFB5, - 706: 0xAFB6, - 707: 0xAFB7, - 708: 0xAFBA, - 709: 0xAFBB, - 710: 0xAFBD, - 711: 0xAFBE, - 712: 0xAFBF, - 713: 0xAFC1, - 714: 0xAFC2, - 715: 0xAFC3, - 716: 0xAFC4, - 717: 0xAFC5, - 718: 0xAFC6, - 719: 0xAFCA, - 720: 0xAFCC, - 721: 0xAFCF, - 722: 0xAFD0, - 723: 0xAFD1, - 724: 0xAFD2, - 725: 0xAFD3, - 726: 0xAFD5, - 727: 0xAFD6, - 728: 0xAFD7, - 729: 0xAFD8, - 730: 0xAFD9, - 731: 0xAFDA, - 732: 0xAFDB, - 733: 0xAFDD, - 734: 0xAFDE, - 735: 0xAFDF, - 736: 0xAFE0, - 737: 0xAFE1, - 738: 0xAFE2, - 739: 0xAFE3, - 740: 0xAFE4, - 741: 0xAFE5, - 742: 0xAFE6, - 743: 0xAFE7, - 744: 0xAFEA, - 745: 0xAFEB, - 746: 0xAFEC, - 747: 0xAFED, - 748: 0xAFEE, - 749: 0xAFEF, - 750: 0xAFF2, - 751: 0xAFF3, - 752: 0xAFF5, - 753: 0xAFF6, - 754: 0xAFF7, - 755: 0xAFF9, - 756: 0xAFFA, - 757: 0xAFFB, - 758: 0xAFFC, - 759: 0xAFFD, - 760: 0xAFFE, - 761: 0xAFFF, - 762: 0xB002, - 763: 0xB003, - 764: 0xB005, - 765: 0xB006, - 766: 0xB007, - 767: 0xB008, - 768: 0xB009, - 769: 0xB00A, - 770: 0xB00B, - 771: 0xB00D, - 772: 0xB00E, - 773: 0xB00F, - 774: 0xB011, - 775: 0xB012, - 776: 0xB013, - 777: 0xB015, - 778: 0xB016, - 779: 0xB017, - 780: 0xB018, - 781: 0xB019, - 782: 0xB01A, - 783: 0xB01B, - 784: 0xB01E, - 785: 0xB01F, - 786: 0xB020, - 787: 0xB021, - 788: 0xB022, - 789: 0xB023, - 790: 0xB024, - 791: 0xB025, - 792: 0xB026, - 793: 0xB027, - 794: 0xB029, - 795: 0xB02A, - 796: 0xB02B, - 797: 0xB02C, - 798: 0xB02D, - 799: 0xB02E, - 800: 0xB02F, - 801: 0xB030, - 802: 0xB031, - 803: 0xB032, - 804: 0xB033, - 805: 0xB034, - 806: 0xB035, - 807: 0xB036, - 808: 0xB037, - 809: 0xB038, - 810: 0xB039, - 811: 0xB03A, - 812: 0xB03B, - 813: 0xB03C, - 814: 0xB03D, - 815: 0xB03E, - 816: 0xB03F, - 817: 0xB040, - 818: 0xB041, - 819: 0xB042, - 820: 0xB043, - 821: 0xB046, - 822: 0xB047, - 823: 0xB049, - 824: 0xB04B, - 825: 0xB04D, - 826: 0xB04F, - 827: 0xB050, - 828: 0xB051, - 829: 0xB052, - 830: 0xB056, - 831: 0xB058, - 832: 0xB05A, - 833: 0xB05B, - 834: 0xB05C, - 835: 0xB05E, - 836: 0xB05F, - 837: 0xB060, - 838: 0xB061, - 839: 0xB062, - 840: 0xB063, - 841: 0xB064, - 842: 0xB065, - 843: 0xB066, - 844: 0xB067, - 845: 0xB068, - 846: 0xB069, - 847: 0xB06A, - 848: 0xB06B, - 849: 0xB06C, - 850: 0xB06D, - 851: 0xB06E, - 852: 0xB06F, - 853: 0xB070, - 854: 0xB071, - 855: 0xB072, - 856: 0xB073, - 857: 0xB074, - 858: 0xB075, - 859: 0xB076, - 860: 0xB077, - 861: 0xB078, - 862: 0xB079, - 863: 0xB07A, - 864: 0xB07B, - 865: 0xB07E, - 866: 0xB07F, - 867: 0xB081, - 868: 0xB082, - 869: 0xB083, - 870: 0xB085, - 871: 0xB086, - 872: 0xB087, - 873: 0xB088, - 874: 0xB089, - 875: 0xB08A, - 876: 0xB08B, - 877: 0xB08E, - 878: 0xB090, - 879: 0xB092, - 880: 0xB093, - 881: 0xB094, - 882: 0xB095, - 883: 0xB096, - 884: 0xB097, - 885: 0xB09B, - 886: 0xB09D, - 887: 0xB09E, - 888: 0xB0A3, - 889: 0xB0A4, - 890: 0xB0A5, - 891: 0xB0A6, - 892: 0xB0A7, - 893: 0xB0AA, - 894: 0xB0B0, - 895: 0xB0B2, - 896: 0xB0B6, - 897: 0xB0B7, - 898: 0xB0B9, - 899: 0xB0BA, - 900: 0xB0BB, - 901: 0xB0BD, - 902: 0xB0BE, - 903: 0xB0BF, - 904: 0xB0C0, - 905: 0xB0C1, - 906: 0xB0C2, - 907: 0xB0C3, - 908: 0xB0C6, - 909: 0xB0CA, - 910: 0xB0CB, - 911: 0xB0CC, - 912: 0xB0CD, - 913: 0xB0CE, - 914: 0xB0CF, - 915: 0xB0D2, - 916: 0xB0D3, - 917: 0xB0D5, - 918: 0xB0D6, - 919: 0xB0D7, - 920: 0xB0D9, - 921: 0xB0DA, - 922: 0xB0DB, - 923: 0xB0DC, - 924: 0xB0DD, - 925: 0xB0DE, - 926: 0xB0DF, - 927: 0xB0E1, - 928: 0xB0E2, - 929: 0xB0E3, - 930: 0xB0E4, - 931: 0xB0E6, - 932: 0xB0E7, - 933: 0xB0E8, - 934: 0xB0E9, - 935: 0xB0EA, - 936: 0xB0EB, - 937: 0xB0EC, - 938: 0xB0ED, - 939: 0xB0EE, - 940: 0xB0EF, - 941: 0xB0F0, - 942: 0xB0F1, - 943: 0xB0F2, - 944: 0xB0F3, - 945: 0xB0F4, - 946: 0xB0F5, - 947: 0xB0F6, - 948: 0xB0F7, - 949: 0xB0F8, - 950: 0xB0F9, - 951: 0xB0FA, - 952: 0xB0FB, - 953: 0xB0FC, - 954: 0xB0FD, - 955: 0xB0FE, - 956: 0xB0FF, - 957: 0xB100, - 958: 0xB101, - 959: 0xB102, - 960: 0xB103, - 961: 0xB104, - 962: 0xB105, - 963: 0xB106, - 964: 0xB107, - 965: 0xB10A, - 966: 0xB10D, - 967: 0xB10E, - 968: 0xB10F, - 969: 0xB111, - 970: 0xB114, - 971: 0xB115, - 972: 0xB116, - 973: 0xB117, - 974: 0xB11A, - 975: 0xB11E, - 976: 0xB11F, - 977: 0xB120, - 978: 0xB121, - 979: 0xB122, - 980: 0xB126, - 981: 0xB127, - 982: 0xB129, - 983: 0xB12A, - 984: 0xB12B, - 985: 0xB12D, - 986: 0xB12E, - 987: 0xB12F, - 988: 0xB130, - 989: 0xB131, - 990: 0xB132, - 991: 0xB133, - 992: 0xB136, - 993: 0xB13A, - 994: 0xB13B, - 995: 0xB13C, - 996: 0xB13D, - 997: 0xB13E, - 998: 0xB13F, - 999: 0xB142, - 1000: 0xB143, - 1001: 0xB145, - 1002: 0xB146, - 1003: 0xB147, - 1004: 0xB149, - 1005: 0xB14A, - 1006: 0xB14B, - 1007: 0xB14C, - 1008: 0xB14D, - 1009: 0xB14E, - 1010: 0xB14F, - 1011: 0xB152, - 1012: 0xB153, - 1013: 0xB156, - 1014: 0xB157, - 1015: 0xB159, - 1016: 0xB15A, - 1017: 0xB15B, - 1018: 0xB15D, - 1019: 0xB15E, - 1020: 0xB15F, - 1021: 0xB161, - 1022: 0xB162, - 1023: 0xB163, - 1024: 0xB164, - 1025: 0xB165, - 1026: 0xB166, - 1027: 0xB167, - 1028: 0xB168, - 1029: 0xB169, - 1030: 0xB16A, - 1031: 0xB16B, - 1032: 0xB16C, - 1033: 0xB16D, - 1034: 0xB16E, - 1035: 0xB16F, - 1036: 0xB170, - 1037: 0xB171, - 1038: 0xB172, - 1039: 0xB173, - 1040: 0xB174, - 1041: 0xB175, - 1042: 0xB176, - 1043: 0xB177, - 1044: 0xB17A, - 1045: 0xB17B, - 1046: 0xB17D, - 1047: 0xB17E, - 1048: 0xB17F, - 1049: 0xB181, - 1050: 0xB183, - 1051: 0xB184, - 1052: 0xB185, - 1053: 0xB186, - 1054: 0xB187, - 1055: 0xB18A, - 1056: 0xB18C, - 1057: 0xB18E, - 1058: 0xB18F, - 1059: 0xB190, - 1060: 0xB191, - 1061: 0xB195, - 1062: 0xB196, - 1063: 0xB197, - 1064: 0xB199, - 1065: 0xB19A, - 1066: 0xB19B, - 1067: 0xB19D, - 1068: 0xB19E, - 1069: 0xB19F, - 1070: 0xB1A0, - 1071: 0xB1A1, - 1072: 0xB1A2, - 1073: 0xB1A3, - 1074: 0xB1A4, - 1075: 0xB1A5, - 1076: 0xB1A6, - 1077: 0xB1A7, - 1078: 0xB1A9, - 1079: 0xB1AA, - 1080: 0xB1AB, - 1081: 0xB1AC, - 1082: 0xB1AD, - 1083: 0xB1AE, - 1084: 0xB1AF, - 1085: 0xB1B0, - 1086: 0xB1B1, - 1087: 0xB1B2, - 1088: 0xB1B3, - 1089: 0xB1B4, - 1090: 0xB1B5, - 1091: 0xB1B6, - 1092: 0xB1B7, - 1093: 0xB1B8, - 1094: 0xB1B9, - 1095: 0xB1BA, - 1096: 0xB1BB, - 1097: 0xB1BC, - 1098: 0xB1BD, - 1099: 0xB1BE, - 1100: 0xB1BF, - 1101: 0xB1C0, - 1102: 0xB1C1, - 1103: 0xB1C2, - 1104: 0xB1C3, - 1105: 0xB1C4, - 1106: 0xB1C5, - 1107: 0xB1C6, - 1108: 0xB1C7, - 1109: 0xB1C8, - 1110: 0xB1C9, - 1111: 0xB1CA, - 1112: 0xB1CB, - 1113: 0xB1CD, - 1114: 0xB1CE, - 1115: 0xB1CF, - 1116: 0xB1D1, - 1117: 0xB1D2, - 1118: 0xB1D3, - 1119: 0xB1D5, - 1120: 0xB1D6, - 1121: 0xB1D7, - 1122: 0xB1D8, - 1123: 0xB1D9, - 1124: 0xB1DA, - 1125: 0xB1DB, - 1126: 0xB1DE, - 1127: 0xB1E0, - 1128: 0xB1E1, - 1129: 0xB1E2, - 1130: 0xB1E3, - 1131: 0xB1E4, - 1132: 0xB1E5, - 1133: 0xB1E6, - 1134: 0xB1E7, - 1135: 0xB1EA, - 1136: 0xB1EB, - 1137: 0xB1ED, - 1138: 0xB1EE, - 1139: 0xB1EF, - 1140: 0xB1F1, - 1141: 0xB1F2, - 1142: 0xB1F3, - 1143: 0xB1F4, - 1144: 0xB1F5, - 1145: 0xB1F6, - 1146: 0xB1F7, - 1147: 0xB1F8, - 1148: 0xB1FA, - 1149: 0xB1FC, - 1150: 0xB1FE, - 1151: 0xB1FF, - 1152: 0xB200, - 1153: 0xB201, - 1154: 0xB202, - 1155: 0xB203, - 1156: 0xB206, - 1157: 0xB207, - 1158: 0xB209, - 1159: 0xB20A, - 1160: 0xB20D, - 1161: 0xB20E, - 1162: 0xB20F, - 1163: 0xB210, - 1164: 0xB211, - 1165: 0xB212, - 1166: 0xB213, - 1167: 0xB216, - 1168: 0xB218, - 1169: 0xB21A, - 1170: 0xB21B, - 1171: 0xB21C, - 1172: 0xB21D, - 1173: 0xB21E, - 1174: 0xB21F, - 1175: 0xB221, - 1176: 0xB222, - 1177: 0xB223, - 1178: 0xB224, - 1179: 0xB225, - 1180: 0xB226, - 1181: 0xB227, - 1182: 0xB228, - 1183: 0xB229, - 1184: 0xB22A, - 1185: 0xB22B, - 1186: 0xB22C, - 1187: 0xB22D, - 1188: 0xB22E, - 1189: 0xB22F, - 1190: 0xB230, - 1191: 0xB231, - 1192: 0xB232, - 1193: 0xB233, - 1194: 0xB235, - 1195: 0xB236, - 1196: 0xB237, - 1197: 0xB238, - 1198: 0xB239, - 1199: 0xB23A, - 1200: 0xB23B, - 1201: 0xB23D, - 1202: 0xB23E, - 1203: 0xB23F, - 1204: 0xB240, - 1205: 0xB241, - 1206: 0xB242, - 1207: 0xB243, - 1208: 0xB244, - 1209: 0xB245, - 1210: 0xB246, - 1211: 0xB247, - 1212: 0xB248, - 1213: 0xB249, - 1214: 0xB24A, - 1215: 0xB24B, - 1216: 0xB24C, - 1217: 0xB24D, - 1218: 0xB24E, - 1219: 0xB24F, - 1220: 0xB250, - 1221: 0xB251, - 1222: 0xB252, - 1223: 0xB253, - 1224: 0xB254, - 1225: 0xB255, - 1226: 0xB256, - 1227: 0xB257, - 1228: 0xB259, - 1229: 0xB25A, - 1230: 0xB25B, - 1231: 0xB25D, - 1232: 0xB25E, - 1233: 0xB25F, - 1234: 0xB261, - 1235: 0xB262, - 1236: 0xB263, - 1237: 0xB264, - 1238: 0xB265, - 1239: 0xB266, - 1240: 0xB267, - 1241: 0xB26A, - 1242: 0xB26B, - 1243: 0xB26C, - 1244: 0xB26D, - 1245: 0xB26E, - 1246: 0xB26F, - 1247: 0xB270, - 1248: 0xB271, - 1249: 0xB272, - 1250: 0xB273, - 1251: 0xB276, - 1252: 0xB277, - 1253: 0xB278, - 1254: 0xB279, - 1255: 0xB27A, - 1256: 0xB27B, - 1257: 0xB27D, - 1258: 0xB27E, - 1259: 0xB27F, - 1260: 0xB280, - 1261: 0xB281, - 1262: 0xB282, - 1263: 0xB283, - 1264: 0xB286, - 1265: 0xB287, - 1266: 0xB288, - 1267: 0xB28A, - 1268: 0xB28B, - 1269: 0xB28C, - 1270: 0xB28D, - 1271: 0xB28E, - 1272: 0xB28F, - 1273: 0xB292, - 1274: 0xB293, - 1275: 0xB295, - 1276: 0xB296, - 1277: 0xB297, - 1278: 0xB29B, - 1279: 0xB29C, - 1280: 0xB29D, - 1281: 0xB29E, - 1282: 0xB29F, - 1283: 0xB2A2, - 1284: 0xB2A4, - 1285: 0xB2A7, - 1286: 0xB2A8, - 1287: 0xB2A9, - 1288: 0xB2AB, - 1289: 0xB2AD, - 1290: 0xB2AE, - 1291: 0xB2AF, - 1292: 0xB2B1, - 1293: 0xB2B2, - 1294: 0xB2B3, - 1295: 0xB2B5, - 1296: 0xB2B6, - 1297: 0xB2B7, - 1298: 0xB2B8, - 1299: 0xB2B9, - 1300: 0xB2BA, - 1301: 0xB2BB, - 1302: 0xB2BC, - 1303: 0xB2BD, - 1304: 0xB2BE, - 1305: 0xB2BF, - 1306: 0xB2C0, - 1307: 0xB2C1, - 1308: 0xB2C2, - 1309: 0xB2C3, - 1310: 0xB2C4, - 1311: 0xB2C5, - 1312: 0xB2C6, - 1313: 0xB2C7, - 1314: 0xB2CA, - 1315: 0xB2CB, - 1316: 0xB2CD, - 1317: 0xB2CE, - 1318: 0xB2CF, - 1319: 0xB2D1, - 1320: 0xB2D3, - 1321: 0xB2D4, - 1322: 0xB2D5, - 1323: 0xB2D6, - 1324: 0xB2D7, - 1325: 0xB2DA, - 1326: 0xB2DC, - 1327: 0xB2DE, - 1328: 0xB2DF, - 1329: 0xB2E0, - 1330: 0xB2E1, - 1331: 0xB2E3, - 1332: 0xB2E7, - 1333: 0xB2E9, - 1334: 0xB2EA, - 1335: 0xB2F0, - 1336: 0xB2F1, - 1337: 0xB2F2, - 1338: 0xB2F6, - 1339: 0xB2FC, - 1340: 0xB2FD, - 1341: 0xB2FE, - 1342: 0xB302, - 1343: 0xB303, - 1344: 0xB305, - 1345: 0xB306, - 1346: 0xB307, - 1347: 0xB309, - 1348: 0xB30A, - 1349: 0xB30B, - 1350: 0xB30C, - 1351: 0xB30D, - 1352: 0xB30E, - 1353: 0xB30F, - 1354: 0xB312, - 1355: 0xB316, - 1356: 0xB317, - 1357: 0xB318, - 1358: 0xB319, - 1359: 0xB31A, - 1360: 0xB31B, - 1361: 0xB31D, - 1362: 0xB31E, - 1363: 0xB31F, - 1364: 0xB320, - 1365: 0xB321, - 1366: 0xB322, - 1367: 0xB323, - 1368: 0xB324, - 1369: 0xB325, - 1370: 0xB326, - 1371: 0xB327, - 1372: 0xB328, - 1373: 0xB329, - 1374: 0xB32A, - 1375: 0xB32B, - 1376: 0xB32C, - 1377: 0xB32D, - 1378: 0xB32E, - 1379: 0xB32F, - 1380: 0xB330, - 1381: 0xB331, - 1382: 0xB332, - 1383: 0xB333, - 1384: 0xB334, - 1385: 0xB335, - 1386: 0xB336, - 1387: 0xB337, - 1388: 0xB338, - 1389: 0xB339, - 1390: 0xB33A, - 1391: 0xB33B, - 1392: 0xB33C, - 1393: 0xB33D, - 1394: 0xB33E, - 1395: 0xB33F, - 1396: 0xB340, - 1397: 0xB341, - 1398: 0xB342, - 1399: 0xB343, - 1400: 0xB344, - 1401: 0xB345, - 1402: 0xB346, - 1403: 0xB347, - 1404: 0xB348, - 1405: 0xB349, - 1406: 0xB34A, - 1407: 0xB34B, - 1408: 0xB34C, - 1409: 0xB34D, - 1410: 0xB34E, - 1411: 0xB34F, - 1412: 0xB350, - 1413: 0xB351, - 1414: 0xB352, - 1415: 0xB353, - 1416: 0xB357, - 1417: 0xB359, - 1418: 0xB35A, - 1419: 0xB35D, - 1420: 0xB360, - 1421: 0xB361, - 1422: 0xB362, - 1423: 0xB363, - 1424: 0xB366, - 1425: 0xB368, - 1426: 0xB36A, - 1427: 0xB36C, - 1428: 0xB36D, - 1429: 0xB36F, - 1430: 0xB372, - 1431: 0xB373, - 1432: 0xB375, - 1433: 0xB376, - 1434: 0xB377, - 1435: 0xB379, - 1436: 0xB37A, - 1437: 0xB37B, - 1438: 0xB37C, - 1439: 0xB37D, - 1440: 0xB37E, - 1441: 0xB37F, - 1442: 0xB382, - 1443: 0xB386, - 1444: 0xB387, - 1445: 0xB388, - 1446: 0xB389, - 1447: 0xB38A, - 1448: 0xB38B, - 1449: 0xB38D, - 1450: 0xB38E, - 1451: 0xB38F, - 1452: 0xB391, - 1453: 0xB392, - 1454: 0xB393, - 1455: 0xB395, - 1456: 0xB396, - 1457: 0xB397, - 1458: 0xB398, - 1459: 0xB399, - 1460: 0xB39A, - 1461: 0xB39B, - 1462: 0xB39C, - 1463: 0xB39D, - 1464: 0xB39E, - 1465: 0xB39F, - 1466: 0xB3A2, - 1467: 0xB3A3, - 1468: 0xB3A4, - 1469: 0xB3A5, - 1470: 0xB3A6, - 1471: 0xB3A7, - 1472: 0xB3A9, - 1473: 0xB3AA, - 1474: 0xB3AB, - 1475: 0xB3AD, - 1476: 0xB3AE, - 1477: 0xB3AF, - 1478: 0xB3B0, - 1479: 0xB3B1, - 1480: 0xB3B2, - 1481: 0xB3B3, - 1482: 0xB3B4, - 1483: 0xB3B5, - 1484: 0xB3B6, - 1485: 0xB3B7, - 1486: 0xB3B8, - 1487: 0xB3B9, - 1488: 0xB3BA, - 1489: 0xB3BB, - 1490: 0xB3BC, - 1491: 0xB3BD, - 1492: 0xB3BE, - 1493: 0xB3BF, - 1494: 0xB3C0, - 1495: 0xB3C1, - 1496: 0xB3C2, - 1497: 0xB3C3, - 1498: 0xB3C6, - 1499: 0xB3C7, - 1500: 0xB3C9, - 1501: 0xB3CA, - 1502: 0xB3CD, - 1503: 0xB3CF, - 1504: 0xB3D1, - 1505: 0xB3D2, - 1506: 0xB3D3, - 1507: 0xB3D6, - 1508: 0xB3D8, - 1509: 0xB3DA, - 1510: 0xB3DC, - 1511: 0xB3DE, - 1512: 0xB3DF, - 1513: 0xB3E1, - 1514: 0xB3E2, - 1515: 0xB3E3, - 1516: 0xB3E5, - 1517: 0xB3E6, - 1518: 0xB3E7, - 1519: 0xB3E9, - 1520: 0xB3EA, - 1521: 0xB3EB, - 1522: 0xB3EC, - 1523: 0xB3ED, - 1524: 0xB3EE, - 1525: 0xB3EF, - 1526: 0xB3F0, - 1527: 0xB3F1, - 1528: 0xB3F2, - 1529: 0xB3F3, - 1530: 0xB3F4, - 1531: 0xB3F5, - 1532: 0xB3F6, - 1533: 0xB3F7, - 1534: 0xB3F8, - 1535: 0xB3F9, - 1536: 0xB3FA, - 1537: 0xB3FB, - 1538: 0xB3FD, - 1539: 0xB3FE, - 1540: 0xB3FF, - 1541: 0xB400, - 1542: 0xB401, - 1543: 0xB402, - 1544: 0xB403, - 1545: 0xB404, - 1546: 0xB405, - 1547: 0xB406, - 1548: 0xB407, - 1549: 0xB408, - 1550: 0xB409, - 1551: 0xB40A, - 1552: 0xB40B, - 1553: 0xB40C, - 1554: 0xB40D, - 1555: 0xB40E, - 1556: 0xB40F, - 1557: 0xB411, - 1558: 0xB412, - 1559: 0xB413, - 1560: 0xB414, - 1561: 0xB415, - 1562: 0xB416, - 1563: 0xB417, - 1564: 0xB419, - 1565: 0xB41A, - 1566: 0xB41B, - 1567: 0xB41D, - 1568: 0xB41E, - 1569: 0xB41F, - 1570: 0xB421, - 1571: 0xB422, - 1572: 0xB423, - 1573: 0xB424, - 1574: 0xB425, - 1575: 0xB426, - 1576: 0xB427, - 1577: 0xB42A, - 1578: 0xB42C, - 1579: 0xB42D, - 1580: 0xB42E, - 1581: 0xB42F, - 1582: 0xB430, - 1583: 0xB431, - 1584: 0xB432, - 1585: 0xB433, - 1586: 0xB435, - 1587: 0xB436, - 1588: 0xB437, - 1589: 0xB438, - 1590: 0xB439, - 1591: 0xB43A, - 1592: 0xB43B, - 1593: 0xB43C, - 1594: 0xB43D, - 1595: 0xB43E, - 1596: 0xB43F, - 1597: 0xB440, - 1598: 0xB441, - 1599: 0xB442, - 1600: 0xB443, - 1601: 0xB444, - 1602: 0xB445, - 1603: 0xB446, - 1604: 0xB447, - 1605: 0xB448, - 1606: 0xB449, - 1607: 0xB44A, - 1608: 0xB44B, - 1609: 0xB44C, - 1610: 0xB44D, - 1611: 0xB44E, - 1612: 0xB44F, - 1613: 0xB452, - 1614: 0xB453, - 1615: 0xB455, - 1616: 0xB456, - 1617: 0xB457, - 1618: 0xB459, - 1619: 0xB45A, - 1620: 0xB45B, - 1621: 0xB45C, - 1622: 0xB45D, - 1623: 0xB45E, - 1624: 0xB45F, - 1625: 0xB462, - 1626: 0xB464, - 1627: 0xB466, - 1628: 0xB467, - 1629: 0xB468, - 1630: 0xB469, - 1631: 0xB46A, - 1632: 0xB46B, - 1633: 0xB46D, - 1634: 0xB46E, - 1635: 0xB46F, - 1636: 0xB470, - 1637: 0xB471, - 1638: 0xB472, - 1639: 0xB473, - 1640: 0xB474, - 1641: 0xB475, - 1642: 0xB476, - 1643: 0xB477, - 1644: 0xB478, - 1645: 0xB479, - 1646: 0xB47A, - 1647: 0xB47B, - 1648: 0xB47C, - 1649: 0xB47D, - 1650: 0xB47E, - 1651: 0xB47F, - 1652: 0xB481, - 1653: 0xB482, - 1654: 0xB483, - 1655: 0xB484, - 1656: 0xB485, - 1657: 0xB486, - 1658: 0xB487, - 1659: 0xB489, - 1660: 0xB48A, - 1661: 0xB48B, - 1662: 0xB48C, - 1663: 0xB48D, - 1664: 0xB48E, - 1665: 0xB48F, - 1666: 0xB490, - 1667: 0xB491, - 1668: 0xB492, - 1669: 0xB493, - 1670: 0xB494, - 1671: 0xB495, - 1672: 0xB496, - 1673: 0xB497, - 1674: 0xB498, - 1675: 0xB499, - 1676: 0xB49A, - 1677: 0xB49B, - 1678: 0xB49C, - 1679: 0xB49E, - 1680: 0xB49F, - 1681: 0xB4A0, - 1682: 0xB4A1, - 1683: 0xB4A2, - 1684: 0xB4A3, - 1685: 0xB4A5, - 1686: 0xB4A6, - 1687: 0xB4A7, - 1688: 0xB4A9, - 1689: 0xB4AA, - 1690: 0xB4AB, - 1691: 0xB4AD, - 1692: 0xB4AE, - 1693: 0xB4AF, - 1694: 0xB4B0, - 1695: 0xB4B1, - 1696: 0xB4B2, - 1697: 0xB4B3, - 1698: 0xB4B4, - 1699: 0xB4B6, - 1700: 0xB4B8, - 1701: 0xB4BA, - 1702: 0xB4BB, - 1703: 0xB4BC, - 1704: 0xB4BD, - 1705: 0xB4BE, - 1706: 0xB4BF, - 1707: 0xB4C1, - 1708: 0xB4C2, - 1709: 0xB4C3, - 1710: 0xB4C5, - 1711: 0xB4C6, - 1712: 0xB4C7, - 1713: 0xB4C9, - 1714: 0xB4CA, - 1715: 0xB4CB, - 1716: 0xB4CC, - 1717: 0xB4CD, - 1718: 0xB4CE, - 1719: 0xB4CF, - 1720: 0xB4D1, - 1721: 0xB4D2, - 1722: 0xB4D3, - 1723: 0xB4D4, - 1724: 0xB4D6, - 1725: 0xB4D7, - 1726: 0xB4D8, - 1727: 0xB4D9, - 1728: 0xB4DA, - 1729: 0xB4DB, - 1730: 0xB4DE, - 1731: 0xB4DF, - 1732: 0xB4E1, - 1733: 0xB4E2, - 1734: 0xB4E5, - 1735: 0xB4E7, - 1736: 0xB4E8, - 1737: 0xB4E9, - 1738: 0xB4EA, - 1739: 0xB4EB, - 1740: 0xB4EE, - 1741: 0xB4F0, - 1742: 0xB4F2, - 1743: 0xB4F3, - 1744: 0xB4F4, - 1745: 0xB4F5, - 1746: 0xB4F6, - 1747: 0xB4F7, - 1748: 0xB4F9, - 1749: 0xB4FA, - 1750: 0xB4FB, - 1751: 0xB4FC, - 1752: 0xB4FD, - 1753: 0xB4FE, - 1754: 0xB4FF, - 1755: 0xB500, - 1756: 0xB501, - 1757: 0xB502, - 1758: 0xB503, - 1759: 0xB504, - 1760: 0xB505, - 1761: 0xB506, - 1762: 0xB507, - 1763: 0xB508, - 1764: 0xB509, - 1765: 0xB50A, - 1766: 0xB50B, - 1767: 0xB50C, - 1768: 0xB50D, - 1769: 0xB50E, - 1770: 0xB50F, - 1771: 0xB510, - 1772: 0xB511, - 1773: 0xB512, - 1774: 0xB513, - 1775: 0xB516, - 1776: 0xB517, - 1777: 0xB519, - 1778: 0xB51A, - 1779: 0xB51D, - 1780: 0xB51E, - 1781: 0xB51F, - 1782: 0xB520, - 1783: 0xB521, - 1784: 0xB522, - 1785: 0xB523, - 1786: 0xB526, - 1787: 0xB52B, - 1788: 0xB52C, - 1789: 0xB52D, - 1790: 0xB52E, - 1791: 0xB52F, - 1792: 0xB532, - 1793: 0xB533, - 1794: 0xB535, - 1795: 0xB536, - 1796: 0xB537, - 1797: 0xB539, - 1798: 0xB53A, - 1799: 0xB53B, - 1800: 0xB53C, - 1801: 0xB53D, - 1802: 0xB53E, - 1803: 0xB53F, - 1804: 0xB542, - 1805: 0xB546, - 1806: 0xB547, - 1807: 0xB548, - 1808: 0xB549, - 1809: 0xB54A, - 1810: 0xB54E, - 1811: 0xB54F, - 1812: 0xB551, - 1813: 0xB552, - 1814: 0xB553, - 1815: 0xB555, - 1816: 0xB556, - 1817: 0xB557, - 1818: 0xB558, - 1819: 0xB559, - 1820: 0xB55A, - 1821: 0xB55B, - 1822: 0xB55E, - 1823: 0xB562, - 1824: 0xB563, - 1825: 0xB564, - 1826: 0xB565, - 1827: 0xB566, - 1828: 0xB567, - 1829: 0xB568, - 1830: 0xB569, - 1831: 0xB56A, - 1832: 0xB56B, - 1833: 0xB56C, - 1834: 0xB56D, - 1835: 0xB56E, - 1836: 0xB56F, - 1837: 0xB570, - 1838: 0xB571, - 1839: 0xB572, - 1840: 0xB573, - 1841: 0xB574, - 1842: 0xB575, - 1843: 0xB576, - 1844: 0xB577, - 1845: 0xB578, - 1846: 0xB579, - 1847: 0xB57A, - 1848: 0xB57B, - 1849: 0xB57C, - 1850: 0xB57D, - 1851: 0xB57E, - 1852: 0xB57F, - 1853: 0xB580, - 1854: 0xB581, - 1855: 0xB582, - 1856: 0xB583, - 1857: 0xB584, - 1858: 0xB585, - 1859: 0xB586, - 1860: 0xB587, - 1861: 0xB588, - 1862: 0xB589, - 1863: 0xB58A, - 1864: 0xB58B, - 1865: 0xB58C, - 1866: 0xB58D, - 1867: 0xB58E, - 1868: 0xB58F, - 1869: 0xB590, - 1870: 0xB591, - 1871: 0xB592, - 1872: 0xB593, - 1873: 0xB594, - 1874: 0xB595, - 1875: 0xB596, - 1876: 0xB597, - 1877: 0xB598, - 1878: 0xB599, - 1879: 0xB59A, - 1880: 0xB59B, - 1881: 0xB59C, - 1882: 0xB59D, - 1883: 0xB59E, - 1884: 0xB59F, - 1885: 0xB5A2, - 1886: 0xB5A3, - 1887: 0xB5A5, - 1888: 0xB5A6, - 1889: 0xB5A7, - 1890: 0xB5A9, - 1891: 0xB5AC, - 1892: 0xB5AD, - 1893: 0xB5AE, - 1894: 0xB5AF, - 1895: 0xB5B2, - 1896: 0xB5B6, - 1897: 0xB5B7, - 1898: 0xB5B8, - 1899: 0xB5B9, - 1900: 0xB5BA, - 1901: 0xB5BE, - 1902: 0xB5BF, - 1903: 0xB5C1, - 1904: 0xB5C2, - 1905: 0xB5C3, - 1906: 0xB5C5, - 1907: 0xB5C6, - 1908: 0xB5C7, - 1909: 0xB5C8, - 1910: 0xB5C9, - 1911: 0xB5CA, - 1912: 0xB5CB, - 1913: 0xB5CE, - 1914: 0xB5D2, - 1915: 0xB5D3, - 1916: 0xB5D4, - 1917: 0xB5D5, - 1918: 0xB5D6, - 1919: 0xB5D7, - 1920: 0xB5D9, - 1921: 0xB5DA, - 1922: 0xB5DB, - 1923: 0xB5DC, - 1924: 0xB5DD, - 1925: 0xB5DE, - 1926: 0xB5DF, - 1927: 0xB5E0, - 1928: 0xB5E1, - 1929: 0xB5E2, - 1930: 0xB5E3, - 1931: 0xB5E4, - 1932: 0xB5E5, - 1933: 0xB5E6, - 1934: 0xB5E7, - 1935: 0xB5E8, - 1936: 0xB5E9, - 1937: 0xB5EA, - 1938: 0xB5EB, - 1939: 0xB5ED, - 1940: 0xB5EE, - 1941: 0xB5EF, - 1942: 0xB5F0, - 1943: 0xB5F1, - 1944: 0xB5F2, - 1945: 0xB5F3, - 1946: 0xB5F4, - 1947: 0xB5F5, - 1948: 0xB5F6, - 1949: 0xB5F7, - 1950: 0xB5F8, - 1951: 0xB5F9, - 1952: 0xB5FA, - 1953: 0xB5FB, - 1954: 0xB5FC, - 1955: 0xB5FD, - 1956: 0xB5FE, - 1957: 0xB5FF, - 1958: 0xB600, - 1959: 0xB601, - 1960: 0xB602, - 1961: 0xB603, - 1962: 0xB604, - 1963: 0xB605, - 1964: 0xB606, - 1965: 0xB607, - 1966: 0xB608, - 1967: 0xB609, - 1968: 0xB60A, - 1969: 0xB60B, - 1970: 0xB60C, - 1971: 0xB60D, - 1972: 0xB60E, - 1973: 0xB60F, - 1974: 0xB612, - 1975: 0xB613, - 1976: 0xB615, - 1977: 0xB616, - 1978: 0xB617, - 1979: 0xB619, - 1980: 0xB61A, - 1981: 0xB61B, - 1982: 0xB61C, - 1983: 0xB61D, - 1984: 0xB61E, - 1985: 0xB61F, - 1986: 0xB620, - 1987: 0xB621, - 1988: 0xB622, - 1989: 0xB623, - 1990: 0xB624, - 1991: 0xB626, - 1992: 0xB627, - 1993: 0xB628, - 1994: 0xB629, - 1995: 0xB62A, - 1996: 0xB62B, - 1997: 0xB62D, - 1998: 0xB62E, - 1999: 0xB62F, - 2000: 0xB630, - 2001: 0xB631, - 2002: 0xB632, - 2003: 0xB633, - 2004: 0xB635, - 2005: 0xB636, - 2006: 0xB637, - 2007: 0xB638, - 2008: 0xB639, - 2009: 0xB63A, - 2010: 0xB63B, - 2011: 0xB63C, - 2012: 0xB63D, - 2013: 0xB63E, - 2014: 0xB63F, - 2015: 0xB640, - 2016: 0xB641, - 2017: 0xB642, - 2018: 0xB643, - 2019: 0xB644, - 2020: 0xB645, - 2021: 0xB646, - 2022: 0xB647, - 2023: 0xB649, - 2024: 0xB64A, - 2025: 0xB64B, - 2026: 0xB64C, - 2027: 0xB64D, - 2028: 0xB64E, - 2029: 0xB64F, - 2030: 0xB650, - 2031: 0xB651, - 2032: 0xB652, - 2033: 0xB653, - 2034: 0xB654, - 2035: 0xB655, - 2036: 0xB656, - 2037: 0xB657, - 2038: 0xB658, - 2039: 0xB659, - 2040: 0xB65A, - 2041: 0xB65B, - 2042: 0xB65C, - 2043: 0xB65D, - 2044: 0xB65E, - 2045: 0xB65F, - 2046: 0xB660, - 2047: 0xB661, - 2048: 0xB662, - 2049: 0xB663, - 2050: 0xB665, - 2051: 0xB666, - 2052: 0xB667, - 2053: 0xB669, - 2054: 0xB66A, - 2055: 0xB66B, - 2056: 0xB66C, - 2057: 0xB66D, - 2058: 0xB66E, - 2059: 0xB66F, - 2060: 0xB670, - 2061: 0xB671, - 2062: 0xB672, - 2063: 0xB673, - 2064: 0xB674, - 2065: 0xB675, - 2066: 0xB676, - 2067: 0xB677, - 2068: 0xB678, - 2069: 0xB679, - 2070: 0xB67A, - 2071: 0xB67B, - 2072: 0xB67C, - 2073: 0xB67D, - 2074: 0xB67E, - 2075: 0xB67F, - 2076: 0xB680, - 2077: 0xB681, - 2078: 0xB682, - 2079: 0xB683, - 2080: 0xB684, - 2081: 0xB685, - 2082: 0xB686, - 2083: 0xB687, - 2084: 0xB688, - 2085: 0xB689, - 2086: 0xB68A, - 2087: 0xB68B, - 2088: 0xB68C, - 2089: 0xB68D, - 2090: 0xB68E, - 2091: 0xB68F, - 2092: 0xB690, - 2093: 0xB691, - 2094: 0xB692, - 2095: 0xB693, - 2096: 0xB694, - 2097: 0xB695, - 2098: 0xB696, - 2099: 0xB697, - 2100: 0xB698, - 2101: 0xB699, - 2102: 0xB69A, - 2103: 0xB69B, - 2104: 0xB69E, - 2105: 0xB69F, - 2106: 0xB6A1, - 2107: 0xB6A2, - 2108: 0xB6A3, - 2109: 0xB6A5, - 2110: 0xB6A6, - 2111: 0xB6A7, - 2112: 0xB6A8, - 2113: 0xB6A9, - 2114: 0xB6AA, - 2115: 0xB6AD, - 2116: 0xB6AE, - 2117: 0xB6AF, - 2118: 0xB6B0, - 2119: 0xB6B2, - 2120: 0xB6B3, - 2121: 0xB6B4, - 2122: 0xB6B5, - 2123: 0xB6B6, - 2124: 0xB6B7, - 2125: 0xB6B8, - 2126: 0xB6B9, - 2127: 0xB6BA, - 2128: 0xB6BB, - 2129: 0xB6BC, - 2130: 0xB6BD, - 2131: 0xB6BE, - 2132: 0xB6BF, - 2133: 0xB6C0, - 2134: 0xB6C1, - 2135: 0xB6C2, - 2136: 0xB6C3, - 2137: 0xB6C4, - 2138: 0xB6C5, - 2139: 0xB6C6, - 2140: 0xB6C7, - 2141: 0xB6C8, - 2142: 0xB6C9, - 2143: 0xB6CA, - 2144: 0xB6CB, - 2145: 0xB6CC, - 2146: 0xB6CD, - 2147: 0xB6CE, - 2148: 0xB6CF, - 2149: 0xB6D0, - 2150: 0xB6D1, - 2151: 0xB6D2, - 2152: 0xB6D3, - 2153: 0xB6D5, - 2154: 0xB6D6, - 2155: 0xB6D7, - 2156: 0xB6D8, - 2157: 0xB6D9, - 2158: 0xB6DA, - 2159: 0xB6DB, - 2160: 0xB6DC, - 2161: 0xB6DD, - 2162: 0xB6DE, - 2163: 0xB6DF, - 2164: 0xB6E0, - 2165: 0xB6E1, - 2166: 0xB6E2, - 2167: 0xB6E3, - 2168: 0xB6E4, - 2169: 0xB6E5, - 2170: 0xB6E6, - 2171: 0xB6E7, - 2172: 0xB6E8, - 2173: 0xB6E9, - 2174: 0xB6EA, - 2175: 0xB6EB, - 2176: 0xB6EC, - 2177: 0xB6ED, - 2178: 0xB6EE, - 2179: 0xB6EF, - 2180: 0xB6F1, - 2181: 0xB6F2, - 2182: 0xB6F3, - 2183: 0xB6F5, - 2184: 0xB6F6, - 2185: 0xB6F7, - 2186: 0xB6F9, - 2187: 0xB6FA, - 2188: 0xB6FB, - 2189: 0xB6FC, - 2190: 0xB6FD, - 2191: 0xB6FE, - 2192: 0xB6FF, - 2193: 0xB702, - 2194: 0xB703, - 2195: 0xB704, - 2196: 0xB706, - 2197: 0xB707, - 2198: 0xB708, - 2199: 0xB709, - 2200: 0xB70A, - 2201: 0xB70B, - 2202: 0xB70C, - 2203: 0xB70D, - 2204: 0xB70E, - 2205: 0xB70F, - 2206: 0xB710, - 2207: 0xB711, - 2208: 0xB712, - 2209: 0xB713, - 2210: 0xB714, - 2211: 0xB715, - 2212: 0xB716, - 2213: 0xB717, - 2214: 0xB718, - 2215: 0xB719, - 2216: 0xB71A, - 2217: 0xB71B, - 2218: 0xB71C, - 2219: 0xB71D, - 2220: 0xB71E, - 2221: 0xB71F, - 2222: 0xB720, - 2223: 0xB721, - 2224: 0xB722, - 2225: 0xB723, - 2226: 0xB724, - 2227: 0xB725, - 2228: 0xB726, - 2229: 0xB727, - 2230: 0xB72A, - 2231: 0xB72B, - 2232: 0xB72D, - 2233: 0xB72E, - 2234: 0xB731, - 2235: 0xB732, - 2236: 0xB733, - 2237: 0xB734, - 2238: 0xB735, - 2239: 0xB736, - 2240: 0xB737, - 2241: 0xB73A, - 2242: 0xB73C, - 2243: 0xB73D, - 2244: 0xB73E, - 2245: 0xB73F, - 2246: 0xB740, - 2247: 0xB741, - 2248: 0xB742, - 2249: 0xB743, - 2250: 0xB745, - 2251: 0xB746, - 2252: 0xB747, - 2253: 0xB749, - 2254: 0xB74A, - 2255: 0xB74B, - 2256: 0xB74D, - 2257: 0xB74E, - 2258: 0xB74F, - 2259: 0xB750, - 2260: 0xB751, - 2261: 0xB752, - 2262: 0xB753, - 2263: 0xB756, - 2264: 0xB757, - 2265: 0xB758, - 2266: 0xB759, - 2267: 0xB75A, - 2268: 0xB75B, - 2269: 0xB75C, - 2270: 0xB75D, - 2271: 0xB75E, - 2272: 0xB75F, - 2273: 0xB761, - 2274: 0xB762, - 2275: 0xB763, - 2276: 0xB765, - 2277: 0xB766, - 2278: 0xB767, - 2279: 0xB769, - 2280: 0xB76A, - 2281: 0xB76B, - 2282: 0xB76C, - 2283: 0xB76D, - 2284: 0xB76E, - 2285: 0xB76F, - 2286: 0xB772, - 2287: 0xB774, - 2288: 0xB776, - 2289: 0xB777, - 2290: 0xB778, - 2291: 0xB779, - 2292: 0xB77A, - 2293: 0xB77B, - 2294: 0xB77E, - 2295: 0xB77F, - 2296: 0xB781, - 2297: 0xB782, - 2298: 0xB783, - 2299: 0xB785, - 2300: 0xB786, - 2301: 0xB787, - 2302: 0xB788, - 2303: 0xB789, - 2304: 0xB78A, - 2305: 0xB78B, - 2306: 0xB78E, - 2307: 0xB793, - 2308: 0xB794, - 2309: 0xB795, - 2310: 0xB79A, - 2311: 0xB79B, - 2312: 0xB79D, - 2313: 0xB79E, - 2314: 0xB79F, - 2315: 0xB7A1, - 2316: 0xB7A2, - 2317: 0xB7A3, - 2318: 0xB7A4, - 2319: 0xB7A5, - 2320: 0xB7A6, - 2321: 0xB7A7, - 2322: 0xB7AA, - 2323: 0xB7AE, - 2324: 0xB7AF, - 2325: 0xB7B0, - 2326: 0xB7B1, - 2327: 0xB7B2, - 2328: 0xB7B3, - 2329: 0xB7B6, - 2330: 0xB7B7, - 2331: 0xB7B9, - 2332: 0xB7BA, - 2333: 0xB7BB, - 2334: 0xB7BC, - 2335: 0xB7BD, - 2336: 0xB7BE, - 2337: 0xB7BF, - 2338: 0xB7C0, - 2339: 0xB7C1, - 2340: 0xB7C2, - 2341: 0xB7C3, - 2342: 0xB7C4, - 2343: 0xB7C5, - 2344: 0xB7C6, - 2345: 0xB7C8, - 2346: 0xB7CA, - 2347: 0xB7CB, - 2348: 0xB7CC, - 2349: 0xB7CD, - 2350: 0xB7CE, - 2351: 0xB7CF, - 2352: 0xB7D0, - 2353: 0xB7D1, - 2354: 0xB7D2, - 2355: 0xB7D3, - 2356: 0xB7D4, - 2357: 0xB7D5, - 2358: 0xB7D6, - 2359: 0xB7D7, - 2360: 0xB7D8, - 2361: 0xB7D9, - 2362: 0xB7DA, - 2363: 0xB7DB, - 2364: 0xB7DC, - 2365: 0xB7DD, - 2366: 0xB7DE, - 2367: 0xB7DF, - 2368: 0xB7E0, - 2369: 0xB7E1, - 2370: 0xB7E2, - 2371: 0xB7E3, - 2372: 0xB7E4, - 2373: 0xB7E5, - 2374: 0xB7E6, - 2375: 0xB7E7, - 2376: 0xB7E8, - 2377: 0xB7E9, - 2378: 0xB7EA, - 2379: 0xB7EB, - 2380: 0xB7EE, - 2381: 0xB7EF, - 2382: 0xB7F1, - 2383: 0xB7F2, - 2384: 0xB7F3, - 2385: 0xB7F5, - 2386: 0xB7F6, - 2387: 0xB7F7, - 2388: 0xB7F8, - 2389: 0xB7F9, - 2390: 0xB7FA, - 2391: 0xB7FB, - 2392: 0xB7FE, - 2393: 0xB802, - 2394: 0xB803, - 2395: 0xB804, - 2396: 0xB805, - 2397: 0xB806, - 2398: 0xB80A, - 2399: 0xB80B, - 2400: 0xB80D, - 2401: 0xB80E, - 2402: 0xB80F, - 2403: 0xB811, - 2404: 0xB812, - 2405: 0xB813, - 2406: 0xB814, - 2407: 0xB815, - 2408: 0xB816, - 2409: 0xB817, - 2410: 0xB81A, - 2411: 0xB81C, - 2412: 0xB81E, - 2413: 0xB81F, - 2414: 0xB820, - 2415: 0xB821, - 2416: 0xB822, - 2417: 0xB823, - 2418: 0xB826, - 2419: 0xB827, - 2420: 0xB829, - 2421: 0xB82A, - 2422: 0xB82B, - 2423: 0xB82D, - 2424: 0xB82E, - 2425: 0xB82F, - 2426: 0xB830, - 2427: 0xB831, - 2428: 0xB832, - 2429: 0xB833, - 2430: 0xB836, - 2431: 0xB83A, - 2432: 0xB83B, - 2433: 0xB83C, - 2434: 0xB83D, - 2435: 0xB83E, - 2436: 0xB83F, - 2437: 0xB841, - 2438: 0xB842, - 2439: 0xB843, - 2440: 0xB845, - 2441: 0xB846, - 2442: 0xB847, - 2443: 0xB848, - 2444: 0xB849, - 2445: 0xB84A, - 2446: 0xB84B, - 2447: 0xB84C, - 2448: 0xB84D, - 2449: 0xB84E, - 2450: 0xB84F, - 2451: 0xB850, - 2452: 0xB852, - 2453: 0xB854, - 2454: 0xB855, - 2455: 0xB856, - 2456: 0xB857, - 2457: 0xB858, - 2458: 0xB859, - 2459: 0xB85A, - 2460: 0xB85B, - 2461: 0xB85E, - 2462: 0xB85F, - 2463: 0xB861, - 2464: 0xB862, - 2465: 0xB863, - 2466: 0xB865, - 2467: 0xB866, - 2468: 0xB867, - 2469: 0xB868, - 2470: 0xB869, - 2471: 0xB86A, - 2472: 0xB86B, - 2473: 0xB86E, - 2474: 0xB870, - 2475: 0xB872, - 2476: 0xB873, - 2477: 0xB874, - 2478: 0xB875, - 2479: 0xB876, - 2480: 0xB877, - 2481: 0xB879, - 2482: 0xB87A, - 2483: 0xB87B, - 2484: 0xB87D, - 2485: 0xB87E, - 2486: 0xB87F, - 2487: 0xB880, - 2488: 0xB881, - 2489: 0xB882, - 2490: 0xB883, - 2491: 0xB884, - 2492: 0xB885, - 2493: 0xB886, - 2494: 0xB887, - 2495: 0xB888, - 2496: 0xB889, - 2497: 0xB88A, - 2498: 0xB88B, - 2499: 0xB88C, - 2500: 0xB88E, - 2501: 0xB88F, - 2502: 0xB890, - 2503: 0xB891, - 2504: 0xB892, - 2505: 0xB893, - 2506: 0xB894, - 2507: 0xB895, - 2508: 0xB896, - 2509: 0xB897, - 2510: 0xB898, - 2511: 0xB899, - 2512: 0xB89A, - 2513: 0xB89B, - 2514: 0xB89C, - 2515: 0xB89D, - 2516: 0xB89E, - 2517: 0xB89F, - 2518: 0xB8A0, - 2519: 0xB8A1, - 2520: 0xB8A2, - 2521: 0xB8A3, - 2522: 0xB8A4, - 2523: 0xB8A5, - 2524: 0xB8A6, - 2525: 0xB8A7, - 2526: 0xB8A9, - 2527: 0xB8AA, - 2528: 0xB8AB, - 2529: 0xB8AC, - 2530: 0xB8AD, - 2531: 0xB8AE, - 2532: 0xB8AF, - 2533: 0xB8B1, - 2534: 0xB8B2, - 2535: 0xB8B3, - 2536: 0xB8B5, - 2537: 0xB8B6, - 2538: 0xB8B7, - 2539: 0xB8B9, - 2540: 0xB8BA, - 2541: 0xB8BB, - 2542: 0xB8BC, - 2543: 0xB8BD, - 2544: 0xB8BE, - 2545: 0xB8BF, - 2546: 0xB8C2, - 2547: 0xB8C4, - 2548: 0xB8C6, - 2549: 0xB8C7, - 2550: 0xB8C8, - 2551: 0xB8C9, - 2552: 0xB8CA, - 2553: 0xB8CB, - 2554: 0xB8CD, - 2555: 0xB8CE, - 2556: 0xB8CF, - 2557: 0xB8D1, - 2558: 0xB8D2, - 2559: 0xB8D3, - 2560: 0xB8D5, - 2561: 0xB8D6, - 2562: 0xB8D7, - 2563: 0xB8D8, - 2564: 0xB8D9, - 2565: 0xB8DA, - 2566: 0xB8DB, - 2567: 0xB8DC, - 2568: 0xB8DE, - 2569: 0xB8E0, - 2570: 0xB8E2, - 2571: 0xB8E3, - 2572: 0xB8E4, - 2573: 0xB8E5, - 2574: 0xB8E6, - 2575: 0xB8E7, - 2576: 0xB8EA, - 2577: 0xB8EB, - 2578: 0xB8ED, - 2579: 0xB8EE, - 2580: 0xB8EF, - 2581: 0xB8F1, - 2582: 0xB8F2, - 2583: 0xB8F3, - 2584: 0xB8F4, - 2585: 0xB8F5, - 2586: 0xB8F6, - 2587: 0xB8F7, - 2588: 0xB8FA, - 2589: 0xB8FC, - 2590: 0xB8FE, - 2591: 0xB8FF, - 2592: 0xB900, - 2593: 0xB901, - 2594: 0xB902, - 2595: 0xB903, - 2596: 0xB905, - 2597: 0xB906, - 2598: 0xB907, - 2599: 0xB908, - 2600: 0xB909, - 2601: 0xB90A, - 2602: 0xB90B, - 2603: 0xB90C, - 2604: 0xB90D, - 2605: 0xB90E, - 2606: 0xB90F, - 2607: 0xB910, - 2608: 0xB911, - 2609: 0xB912, - 2610: 0xB913, - 2611: 0xB914, - 2612: 0xB915, - 2613: 0xB916, - 2614: 0xB917, - 2615: 0xB919, - 2616: 0xB91A, - 2617: 0xB91B, - 2618: 0xB91C, - 2619: 0xB91D, - 2620: 0xB91E, - 2621: 0xB91F, - 2622: 0xB921, - 2623: 0xB922, - 2624: 0xB923, - 2625: 0xB924, - 2626: 0xB925, - 2627: 0xB926, - 2628: 0xB927, - 2629: 0xB928, - 2630: 0xB929, - 2631: 0xB92A, - 2632: 0xB92B, - 2633: 0xB92C, - 2634: 0xB92D, - 2635: 0xB92E, - 2636: 0xB92F, - 2637: 0xB930, - 2638: 0xB931, - 2639: 0xB932, - 2640: 0xB933, - 2641: 0xB934, - 2642: 0xB935, - 2643: 0xB936, - 2644: 0xB937, - 2645: 0xB938, - 2646: 0xB939, - 2647: 0xB93A, - 2648: 0xB93B, - 2649: 0xB93E, - 2650: 0xB93F, - 2651: 0xB941, - 2652: 0xB942, - 2653: 0xB943, - 2654: 0xB945, - 2655: 0xB946, - 2656: 0xB947, - 2657: 0xB948, - 2658: 0xB949, - 2659: 0xB94A, - 2660: 0xB94B, - 2661: 0xB94D, - 2662: 0xB94E, - 2663: 0xB950, - 2664: 0xB952, - 2665: 0xB953, - 2666: 0xB954, - 2667: 0xB955, - 2668: 0xB956, - 2669: 0xB957, - 2670: 0xB95A, - 2671: 0xB95B, - 2672: 0xB95D, - 2673: 0xB95E, - 2674: 0xB95F, - 2675: 0xB961, - 2676: 0xB962, - 2677: 0xB963, - 2678: 0xB964, - 2679: 0xB965, - 2680: 0xB966, - 2681: 0xB967, - 2682: 0xB96A, - 2683: 0xB96C, - 2684: 0xB96E, - 2685: 0xB96F, - 2686: 0xB970, - 2687: 0xB971, - 2688: 0xB972, - 2689: 0xB973, - 2690: 0xB976, - 2691: 0xB977, - 2692: 0xB979, - 2693: 0xB97A, - 2694: 0xB97B, - 2695: 0xB97D, - 2696: 0xB97E, - 2697: 0xB97F, - 2698: 0xB980, - 2699: 0xB981, - 2700: 0xB982, - 2701: 0xB983, - 2702: 0xB986, - 2703: 0xB988, - 2704: 0xB98B, - 2705: 0xB98C, - 2706: 0xB98F, - 2707: 0xB990, - 2708: 0xB991, - 2709: 0xB992, - 2710: 0xB993, - 2711: 0xB994, - 2712: 0xB995, - 2713: 0xB996, - 2714: 0xB997, - 2715: 0xB998, - 2716: 0xB999, - 2717: 0xB99A, - 2718: 0xB99B, - 2719: 0xB99C, - 2720: 0xB99D, - 2721: 0xB99E, - 2722: 0xB99F, - 2723: 0xB9A0, - 2724: 0xB9A1, - 2725: 0xB9A2, - 2726: 0xB9A3, - 2727: 0xB9A4, - 2728: 0xB9A5, - 2729: 0xB9A6, - 2730: 0xB9A7, - 2731: 0xB9A8, - 2732: 0xB9A9, - 2733: 0xB9AA, - 2734: 0xB9AB, - 2735: 0xB9AE, - 2736: 0xB9AF, - 2737: 0xB9B1, - 2738: 0xB9B2, - 2739: 0xB9B3, - 2740: 0xB9B5, - 2741: 0xB9B6, - 2742: 0xB9B7, - 2743: 0xB9B8, - 2744: 0xB9B9, - 2745: 0xB9BA, - 2746: 0xB9BB, - 2747: 0xB9BE, - 2748: 0xB9C0, - 2749: 0xB9C2, - 2750: 0xB9C3, - 2751: 0xB9C4, - 2752: 0xB9C5, - 2753: 0xB9C6, - 2754: 0xB9C7, - 2755: 0xB9CA, - 2756: 0xB9CB, - 2757: 0xB9CD, - 2758: 0xB9D3, - 2759: 0xB9D4, - 2760: 0xB9D5, - 2761: 0xB9D6, - 2762: 0xB9D7, - 2763: 0xB9DA, - 2764: 0xB9DC, - 2765: 0xB9DF, - 2766: 0xB9E0, - 2767: 0xB9E2, - 2768: 0xB9E6, - 2769: 0xB9E7, - 2770: 0xB9E9, - 2771: 0xB9EA, - 2772: 0xB9EB, - 2773: 0xB9ED, - 2774: 0xB9EE, - 2775: 0xB9EF, - 2776: 0xB9F0, - 2777: 0xB9F1, - 2778: 0xB9F2, - 2779: 0xB9F3, - 2780: 0xB9F6, - 2781: 0xB9FB, - 2782: 0xB9FC, - 2783: 0xB9FD, - 2784: 0xB9FE, - 2785: 0xB9FF, - 2786: 0xBA02, - 2787: 0xBA03, - 2788: 0xBA04, - 2789: 0xBA05, - 2790: 0xBA06, - 2791: 0xBA07, - 2792: 0xBA09, - 2793: 0xBA0A, - 2794: 0xBA0B, - 2795: 0xBA0C, - 2796: 0xBA0D, - 2797: 0xBA0E, - 2798: 0xBA0F, - 2799: 0xBA10, - 2800: 0xBA11, - 2801: 0xBA12, - 2802: 0xBA13, - 2803: 0xBA14, - 2804: 0xBA16, - 2805: 0xBA17, - 2806: 0xBA18, - 2807: 0xBA19, - 2808: 0xBA1A, - 2809: 0xBA1B, - 2810: 0xBA1C, - 2811: 0xBA1D, - 2812: 0xBA1E, - 2813: 0xBA1F, - 2814: 0xBA20, - 2815: 0xBA21, - 2816: 0xBA22, - 2817: 0xBA23, - 2818: 0xBA24, - 2819: 0xBA25, - 2820: 0xBA26, - 2821: 0xBA27, - 2822: 0xBA28, - 2823: 0xBA29, - 2824: 0xBA2A, - 2825: 0xBA2B, - 2826: 0xBA2C, - 2827: 0xBA2D, - 2828: 0xBA2E, - 2829: 0xBA2F, - 2830: 0xBA30, - 2831: 0xBA31, - 2832: 0xBA32, - 2833: 0xBA33, - 2834: 0xBA34, - 2835: 0xBA35, - 2836: 0xBA36, - 2837: 0xBA37, - 2838: 0xBA3A, - 2839: 0xBA3B, - 2840: 0xBA3D, - 2841: 0xBA3E, - 2842: 0xBA3F, - 2843: 0xBA41, - 2844: 0xBA43, - 2845: 0xBA44, - 2846: 0xBA45, - 2847: 0xBA46, - 2848: 0xBA47, - 2849: 0xBA4A, - 2850: 0xBA4C, - 2851: 0xBA4F, - 2852: 0xBA50, - 2853: 0xBA51, - 2854: 0xBA52, - 2855: 0xBA56, - 2856: 0xBA57, - 2857: 0xBA59, - 2858: 0xBA5A, - 2859: 0xBA5B, - 2860: 0xBA5D, - 2861: 0xBA5E, - 2862: 0xBA5F, - 2863: 0xBA60, - 2864: 0xBA61, - 2865: 0xBA62, - 2866: 0xBA63, - 2867: 0xBA66, - 2868: 0xBA6A, - 2869: 0xBA6B, - 2870: 0xBA6C, - 2871: 0xBA6D, - 2872: 0xBA6E, - 2873: 0xBA6F, - 2874: 0xBA72, - 2875: 0xBA73, - 2876: 0xBA75, - 2877: 0xBA76, - 2878: 0xBA77, - 2879: 0xBA79, - 2880: 0xBA7A, - 2881: 0xBA7B, - 2882: 0xBA7C, - 2883: 0xBA7D, - 2884: 0xBA7E, - 2885: 0xBA7F, - 2886: 0xBA80, - 2887: 0xBA81, - 2888: 0xBA82, - 2889: 0xBA86, - 2890: 0xBA88, - 2891: 0xBA89, - 2892: 0xBA8A, - 2893: 0xBA8B, - 2894: 0xBA8D, - 2895: 0xBA8E, - 2896: 0xBA8F, - 2897: 0xBA90, - 2898: 0xBA91, - 2899: 0xBA92, - 2900: 0xBA93, - 2901: 0xBA94, - 2902: 0xBA95, - 2903: 0xBA96, - 2904: 0xBA97, - 2905: 0xBA98, - 2906: 0xBA99, - 2907: 0xBA9A, - 2908: 0xBA9B, - 2909: 0xBA9C, - 2910: 0xBA9D, - 2911: 0xBA9E, - 2912: 0xBA9F, - 2913: 0xBAA0, - 2914: 0xBAA1, - 2915: 0xBAA2, - 2916: 0xBAA3, - 2917: 0xBAA4, - 2918: 0xBAA5, - 2919: 0xBAA6, - 2920: 0xBAA7, - 2921: 0xBAAA, - 2922: 0xBAAD, - 2923: 0xBAAE, - 2924: 0xBAAF, - 2925: 0xBAB1, - 2926: 0xBAB3, - 2927: 0xBAB4, - 2928: 0xBAB5, - 2929: 0xBAB6, - 2930: 0xBAB7, - 2931: 0xBABA, - 2932: 0xBABC, - 2933: 0xBABE, - 2934: 0xBABF, - 2935: 0xBAC0, - 2936: 0xBAC1, - 2937: 0xBAC2, - 2938: 0xBAC3, - 2939: 0xBAC5, - 2940: 0xBAC6, - 2941: 0xBAC7, - 2942: 0xBAC9, - 2943: 0xBACA, - 2944: 0xBACB, - 2945: 0xBACC, - 2946: 0xBACD, - 2947: 0xBACE, - 2948: 0xBACF, - 2949: 0xBAD0, - 2950: 0xBAD1, - 2951: 0xBAD2, - 2952: 0xBAD3, - 2953: 0xBAD4, - 2954: 0xBAD5, - 2955: 0xBAD6, - 2956: 0xBAD7, - 2957: 0xBADA, - 2958: 0xBADB, - 2959: 0xBADC, - 2960: 0xBADD, - 2961: 0xBADE, - 2962: 0xBADF, - 2963: 0xBAE0, - 2964: 0xBAE1, - 2965: 0xBAE2, - 2966: 0xBAE3, - 2967: 0xBAE4, - 2968: 0xBAE5, - 2969: 0xBAE6, - 2970: 0xBAE7, - 2971: 0xBAE8, - 2972: 0xBAE9, - 2973: 0xBAEA, - 2974: 0xBAEB, - 2975: 0xBAEC, - 2976: 0xBAED, - 2977: 0xBAEE, - 2978: 0xBAEF, - 2979: 0xBAF0, - 2980: 0xBAF1, - 2981: 0xBAF2, - 2982: 0xBAF3, - 2983: 0xBAF4, - 2984: 0xBAF5, - 2985: 0xBAF6, - 2986: 0xBAF7, - 2987: 0xBAF8, - 2988: 0xBAF9, - 2989: 0xBAFA, - 2990: 0xBAFB, - 2991: 0xBAFD, - 2992: 0xBAFE, - 2993: 0xBAFF, - 2994: 0xBB01, - 2995: 0xBB02, - 2996: 0xBB03, - 2997: 0xBB05, - 2998: 0xBB06, - 2999: 0xBB07, - 3000: 0xBB08, - 3001: 0xBB09, - 3002: 0xBB0A, - 3003: 0xBB0B, - 3004: 0xBB0C, - 3005: 0xBB0E, - 3006: 0xBB10, - 3007: 0xBB12, - 3008: 0xBB13, - 3009: 0xBB14, - 3010: 0xBB15, - 3011: 0xBB16, - 3012: 0xBB17, - 3013: 0xBB19, - 3014: 0xBB1A, - 3015: 0xBB1B, - 3016: 0xBB1D, - 3017: 0xBB1E, - 3018: 0xBB1F, - 3019: 0xBB21, - 3020: 0xBB22, - 3021: 0xBB23, - 3022: 0xBB24, - 3023: 0xBB25, - 3024: 0xBB26, - 3025: 0xBB27, - 3026: 0xBB28, - 3027: 0xBB2A, - 3028: 0xBB2C, - 3029: 0xBB2D, - 3030: 0xBB2E, - 3031: 0xBB2F, - 3032: 0xBB30, - 3033: 0xBB31, - 3034: 0xBB32, - 3035: 0xBB33, - 3036: 0xBB37, - 3037: 0xBB39, - 3038: 0xBB3A, - 3039: 0xBB3F, - 3040: 0xBB40, - 3041: 0xBB41, - 3042: 0xBB42, - 3043: 0xBB43, - 3044: 0xBB46, - 3045: 0xBB48, - 3046: 0xBB4A, - 3047: 0xBB4B, - 3048: 0xBB4C, - 3049: 0xBB4E, - 3050: 0xBB51, - 3051: 0xBB52, - 3052: 0xBB53, - 3053: 0xBB55, - 3054: 0xBB56, - 3055: 0xBB57, - 3056: 0xBB59, - 3057: 0xBB5A, - 3058: 0xBB5B, - 3059: 0xBB5C, - 3060: 0xBB5D, - 3061: 0xBB5E, - 3062: 0xBB5F, - 3063: 0xBB60, - 3064: 0xBB62, - 3065: 0xBB64, - 3066: 0xBB65, - 3067: 0xBB66, - 3068: 0xBB67, - 3069: 0xBB68, - 3070: 0xBB69, - 3071: 0xBB6A, - 3072: 0xBB6B, - 3073: 0xBB6D, - 3074: 0xBB6E, - 3075: 0xBB6F, - 3076: 0xBB70, - 3077: 0xBB71, - 3078: 0xBB72, - 3079: 0xBB73, - 3080: 0xBB74, - 3081: 0xBB75, - 3082: 0xBB76, - 3083: 0xBB77, - 3084: 0xBB78, - 3085: 0xBB79, - 3086: 0xBB7A, - 3087: 0xBB7B, - 3088: 0xBB7C, - 3089: 0xBB7D, - 3090: 0xBB7E, - 3091: 0xBB7F, - 3092: 0xBB80, - 3093: 0xBB81, - 3094: 0xBB82, - 3095: 0xBB83, - 3096: 0xBB84, - 3097: 0xBB85, - 3098: 0xBB86, - 3099: 0xBB87, - 3100: 0xBB89, - 3101: 0xBB8A, - 3102: 0xBB8B, - 3103: 0xBB8D, - 3104: 0xBB8E, - 3105: 0xBB8F, - 3106: 0xBB91, - 3107: 0xBB92, - 3108: 0xBB93, - 3109: 0xBB94, - 3110: 0xBB95, - 3111: 0xBB96, - 3112: 0xBB97, - 3113: 0xBB98, - 3114: 0xBB99, - 3115: 0xBB9A, - 3116: 0xBB9B, - 3117: 0xBB9C, - 3118: 0xBB9D, - 3119: 0xBB9E, - 3120: 0xBB9F, - 3121: 0xBBA0, - 3122: 0xBBA1, - 3123: 0xBBA2, - 3124: 0xBBA3, - 3125: 0xBBA5, - 3126: 0xBBA6, - 3127: 0xBBA7, - 3128: 0xBBA9, - 3129: 0xBBAA, - 3130: 0xBBAB, - 3131: 0xBBAD, - 3132: 0xBBAE, - 3133: 0xBBAF, - 3134: 0xBBB0, - 3135: 0xBBB1, - 3136: 0xBBB2, - 3137: 0xBBB3, - 3138: 0xBBB5, - 3139: 0xBBB6, - 3140: 0xBBB8, - 3141: 0xBBB9, - 3142: 0xBBBA, - 3143: 0xBBBB, - 3144: 0xBBBC, - 3145: 0xBBBD, - 3146: 0xBBBE, - 3147: 0xBBBF, - 3148: 0xBBC1, - 3149: 0xBBC2, - 3150: 0xBBC3, - 3151: 0xBBC5, - 3152: 0xBBC6, - 3153: 0xBBC7, - 3154: 0xBBC9, - 3155: 0xBBCA, - 3156: 0xBBCB, - 3157: 0xBBCC, - 3158: 0xBBCD, - 3159: 0xBBCE, - 3160: 0xBBCF, - 3161: 0xBBD1, - 3162: 0xBBD2, - 3163: 0xBBD4, - 3164: 0xBBD5, - 3165: 0xBBD6, - 3166: 0xBBD7, - 3167: 0xBBD8, - 3168: 0xBBD9, - 3169: 0xBBDA, - 3170: 0xBBDB, - 3171: 0xBBDC, - 3172: 0xBBDD, - 3173: 0xBBDE, - 3174: 0xBBDF, - 3175: 0xBBE0, - 3176: 0xBBE1, - 3177: 0xBBE2, - 3178: 0xBBE3, - 3179: 0xBBE4, - 3180: 0xBBE5, - 3181: 0xBBE6, - 3182: 0xBBE7, - 3183: 0xBBE8, - 3184: 0xBBE9, - 3185: 0xBBEA, - 3186: 0xBBEB, - 3187: 0xBBEC, - 3188: 0xBBED, - 3189: 0xBBEE, - 3190: 0xBBEF, - 3191: 0xBBF0, - 3192: 0xBBF1, - 3193: 0xBBF2, - 3194: 0xBBF3, - 3195: 0xBBF4, - 3196: 0xBBF5, - 3197: 0xBBF6, - 3198: 0xBBF7, - 3199: 0xBBFA, - 3200: 0xBBFB, - 3201: 0xBBFD, - 3202: 0xBBFE, - 3203: 0xBC01, - 3204: 0xBC03, - 3205: 0xBC04, - 3206: 0xBC05, - 3207: 0xBC06, - 3208: 0xBC07, - 3209: 0xBC0A, - 3210: 0xBC0E, - 3211: 0xBC10, - 3212: 0xBC12, - 3213: 0xBC13, - 3214: 0xBC19, - 3215: 0xBC1A, - 3216: 0xBC20, - 3217: 0xBC21, - 3218: 0xBC22, - 3219: 0xBC23, - 3220: 0xBC26, - 3221: 0xBC28, - 3222: 0xBC2A, - 3223: 0xBC2B, - 3224: 0xBC2C, - 3225: 0xBC2E, - 3226: 0xBC2F, - 3227: 0xBC32, - 3228: 0xBC33, - 3229: 0xBC35, - 3230: 0xBC36, - 3231: 0xBC37, - 3232: 0xBC39, - 3233: 0xBC3A, - 3234: 0xBC3B, - 3235: 0xBC3C, - 3236: 0xBC3D, - 3237: 0xBC3E, - 3238: 0xBC3F, - 3239: 0xBC42, - 3240: 0xBC46, - 3241: 0xBC47, - 3242: 0xBC48, - 3243: 0xBC4A, - 3244: 0xBC4B, - 3245: 0xBC4E, - 3246: 0xBC4F, - 3247: 0xBC51, - 3248: 0xBC52, - 3249: 0xBC53, - 3250: 0xBC54, - 3251: 0xBC55, - 3252: 0xBC56, - 3253: 0xBC57, - 3254: 0xBC58, - 3255: 0xBC59, - 3256: 0xBC5A, - 3257: 0xBC5B, - 3258: 0xBC5C, - 3259: 0xBC5E, - 3260: 0xBC5F, - 3261: 0xBC60, - 3262: 0xBC61, - 3263: 0xBC62, - 3264: 0xBC63, - 3265: 0xBC64, - 3266: 0xBC65, - 3267: 0xBC66, - 3268: 0xBC67, - 3269: 0xBC68, - 3270: 0xBC69, - 3271: 0xBC6A, - 3272: 0xBC6B, - 3273: 0xBC6C, - 3274: 0xBC6D, - 3275: 0xBC6E, - 3276: 0xBC6F, - 3277: 0xBC70, - 3278: 0xBC71, - 3279: 0xBC72, - 3280: 0xBC73, - 3281: 0xBC74, - 3282: 0xBC75, - 3283: 0xBC76, - 3284: 0xBC77, - 3285: 0xBC78, - 3286: 0xBC79, - 3287: 0xBC7A, - 3288: 0xBC7B, - 3289: 0xBC7C, - 3290: 0xBC7D, - 3291: 0xBC7E, - 3292: 0xBC7F, - 3293: 0xBC80, - 3294: 0xBC81, - 3295: 0xBC82, - 3296: 0xBC83, - 3297: 0xBC86, - 3298: 0xBC87, - 3299: 0xBC89, - 3300: 0xBC8A, - 3301: 0xBC8D, - 3302: 0xBC8F, - 3303: 0xBC90, - 3304: 0xBC91, - 3305: 0xBC92, - 3306: 0xBC93, - 3307: 0xBC96, - 3308: 0xBC98, - 3309: 0xBC9B, - 3310: 0xBC9C, - 3311: 0xBC9D, - 3312: 0xBC9E, - 3313: 0xBC9F, - 3314: 0xBCA2, - 3315: 0xBCA3, - 3316: 0xBCA5, - 3317: 0xBCA6, - 3318: 0xBCA9, - 3319: 0xBCAA, - 3320: 0xBCAB, - 3321: 0xBCAC, - 3322: 0xBCAD, - 3323: 0xBCAE, - 3324: 0xBCAF, - 3325: 0xBCB2, - 3326: 0xBCB6, - 3327: 0xBCB7, - 3328: 0xBCB8, - 3329: 0xBCB9, - 3330: 0xBCBA, - 3331: 0xBCBB, - 3332: 0xBCBE, - 3333: 0xBCBF, - 3334: 0xBCC1, - 3335: 0xBCC2, - 3336: 0xBCC3, - 3337: 0xBCC5, - 3338: 0xBCC6, - 3339: 0xBCC7, - 3340: 0xBCC8, - 3341: 0xBCC9, - 3342: 0xBCCA, - 3343: 0xBCCB, - 3344: 0xBCCC, - 3345: 0xBCCE, - 3346: 0xBCD2, - 3347: 0xBCD3, - 3348: 0xBCD4, - 3349: 0xBCD6, - 3350: 0xBCD7, - 3351: 0xBCD9, - 3352: 0xBCDA, - 3353: 0xBCDB, - 3354: 0xBCDD, - 3355: 0xBCDE, - 3356: 0xBCDF, - 3357: 0xBCE0, - 3358: 0xBCE1, - 3359: 0xBCE2, - 3360: 0xBCE3, - 3361: 0xBCE4, - 3362: 0xBCE5, - 3363: 0xBCE6, - 3364: 0xBCE7, - 3365: 0xBCE8, - 3366: 0xBCE9, - 3367: 0xBCEA, - 3368: 0xBCEB, - 3369: 0xBCEC, - 3370: 0xBCED, - 3371: 0xBCEE, - 3372: 0xBCEF, - 3373: 0xBCF0, - 3374: 0xBCF1, - 3375: 0xBCF2, - 3376: 0xBCF3, - 3377: 0xBCF7, - 3378: 0xBCF9, - 3379: 0xBCFA, - 3380: 0xBCFB, - 3381: 0xBCFD, - 3382: 0xBCFE, - 3383: 0xBCFF, - 3384: 0xBD00, - 3385: 0xBD01, - 3386: 0xBD02, - 3387: 0xBD03, - 3388: 0xBD06, - 3389: 0xBD08, - 3390: 0xBD0A, - 3391: 0xBD0B, - 3392: 0xBD0C, - 3393: 0xBD0D, - 3394: 0xBD0E, - 3395: 0xBD0F, - 3396: 0xBD11, - 3397: 0xBD12, - 3398: 0xBD13, - 3399: 0xBD15, - 3400: 0xBD16, - 3401: 0xBD17, - 3402: 0xBD18, - 3403: 0xBD19, - 3404: 0xBD1A, - 3405: 0xBD1B, - 3406: 0xBD1C, - 3407: 0xBD1D, - 3408: 0xBD1E, - 3409: 0xBD1F, - 3410: 0xBD20, - 3411: 0xBD21, - 3412: 0xBD22, - 3413: 0xBD23, - 3414: 0xBD25, - 3415: 0xBD26, - 3416: 0xBD27, - 3417: 0xBD28, - 3418: 0xBD29, - 3419: 0xBD2A, - 3420: 0xBD2B, - 3421: 0xBD2D, - 3422: 0xBD2E, - 3423: 0xBD2F, - 3424: 0xBD30, - 3425: 0xBD31, - 3426: 0xBD32, - 3427: 0xBD33, - 3428: 0xBD34, - 3429: 0xBD35, - 3430: 0xBD36, - 3431: 0xBD37, - 3432: 0xBD38, - 3433: 0xBD39, - 3434: 0xBD3A, - 3435: 0xBD3B, - 3436: 0xBD3C, - 3437: 0xBD3D, - 3438: 0xBD3E, - 3439: 0xBD3F, - 3440: 0xBD41, - 3441: 0xBD42, - 3442: 0xBD43, - 3443: 0xBD44, - 3444: 0xBD45, - 3445: 0xBD46, - 3446: 0xBD47, - 3447: 0xBD4A, - 3448: 0xBD4B, - 3449: 0xBD4D, - 3450: 0xBD4E, - 3451: 0xBD4F, - 3452: 0xBD51, - 3453: 0xBD52, - 3454: 0xBD53, - 3455: 0xBD54, - 3456: 0xBD55, - 3457: 0xBD56, - 3458: 0xBD57, - 3459: 0xBD5A, - 3460: 0xBD5B, - 3461: 0xBD5C, - 3462: 0xBD5D, - 3463: 0xBD5E, - 3464: 0xBD5F, - 3465: 0xBD60, - 3466: 0xBD61, - 3467: 0xBD62, - 3468: 0xBD63, - 3469: 0xBD65, - 3470: 0xBD66, - 3471: 0xBD67, - 3472: 0xBD69, - 3473: 0xBD6A, - 3474: 0xBD6B, - 3475: 0xBD6C, - 3476: 0xBD6D, - 3477: 0xBD6E, - 3478: 0xBD6F, - 3479: 0xBD70, - 3480: 0xBD71, - 3481: 0xBD72, - 3482: 0xBD73, - 3483: 0xBD74, - 3484: 0xBD75, - 3485: 0xBD76, - 3486: 0xBD77, - 3487: 0xBD78, - 3488: 0xBD79, - 3489: 0xBD7A, - 3490: 0xBD7B, - 3491: 0xBD7C, - 3492: 0xBD7D, - 3493: 0xBD7E, - 3494: 0xBD7F, - 3495: 0xBD82, - 3496: 0xBD83, - 3497: 0xBD85, - 3498: 0xBD86, - 3499: 0xBD8B, - 3500: 0xBD8C, - 3501: 0xBD8D, - 3502: 0xBD8E, - 3503: 0xBD8F, - 3504: 0xBD92, - 3505: 0xBD94, - 3506: 0xBD96, - 3507: 0xBD97, - 3508: 0xBD98, - 3509: 0xBD9B, - 3510: 0xBD9D, - 3511: 0xBD9E, - 3512: 0xBD9F, - 3513: 0xBDA0, - 3514: 0xBDA1, - 3515: 0xBDA2, - 3516: 0xBDA3, - 3517: 0xBDA5, - 3518: 0xBDA6, - 3519: 0xBDA7, - 3520: 0xBDA8, - 3521: 0xBDA9, - 3522: 0xBDAA, - 3523: 0xBDAB, - 3524: 0xBDAC, - 3525: 0xBDAD, - 3526: 0xBDAE, - 3527: 0xBDAF, - 3528: 0xBDB1, - 3529: 0xBDB2, - 3530: 0xBDB3, - 3531: 0xBDB4, - 3532: 0xBDB5, - 3533: 0xBDB6, - 3534: 0xBDB7, - 3535: 0xBDB9, - 3536: 0xBDBA, - 3537: 0xBDBB, - 3538: 0xBDBC, - 3539: 0xBDBD, - 3540: 0xBDBE, - 3541: 0xBDBF, - 3542: 0xBDC0, - 3543: 0xBDC1, - 3544: 0xBDC2, - 3545: 0xBDC3, - 3546: 0xBDC4, - 3547: 0xBDC5, - 3548: 0xBDC6, - 3549: 0xBDC7, - 3550: 0xBDC8, - 3551: 0xBDC9, - 3552: 0xBDCA, - 3553: 0xBDCB, - 3554: 0xBDCC, - 3555: 0xBDCD, - 3556: 0xBDCE, - 3557: 0xBDCF, - 3558: 0xBDD0, - 3559: 0xBDD1, - 3560: 0xBDD2, - 3561: 0xBDD3, - 3562: 0xBDD6, - 3563: 0xBDD7, - 3564: 0xBDD9, - 3565: 0xBDDA, - 3566: 0xBDDB, - 3567: 0xBDDD, - 3568: 0xBDDE, - 3569: 0xBDDF, - 3570: 0xBDE0, - 3571: 0xBDE1, - 3572: 0xBDE2, - 3573: 0xBDE3, - 3574: 0xBDE4, - 3575: 0xBDE5, - 3576: 0xBDE6, - 3577: 0xBDE7, - 3578: 0xBDE8, - 3579: 0xBDEA, - 3580: 0xBDEB, - 3581: 0xBDEC, - 3582: 0xBDED, - 3583: 0xBDEE, - 3584: 0xBDEF, - 3585: 0xBDF1, - 3586: 0xBDF2, - 3587: 0xBDF3, - 3588: 0xBDF5, - 3589: 0xBDF6, - 3590: 0xBDF7, - 3591: 0xBDF9, - 3592: 0xBDFA, - 3593: 0xBDFB, - 3594: 0xBDFC, - 3595: 0xBDFD, - 3596: 0xBDFE, - 3597: 0xBDFF, - 3598: 0xBE01, - 3599: 0xBE02, - 3600: 0xBE04, - 3601: 0xBE06, - 3602: 0xBE07, - 3603: 0xBE08, - 3604: 0xBE09, - 3605: 0xBE0A, - 3606: 0xBE0B, - 3607: 0xBE0E, - 3608: 0xBE0F, - 3609: 0xBE11, - 3610: 0xBE12, - 3611: 0xBE13, - 3612: 0xBE15, - 3613: 0xBE16, - 3614: 0xBE17, - 3615: 0xBE18, - 3616: 0xBE19, - 3617: 0xBE1A, - 3618: 0xBE1B, - 3619: 0xBE1E, - 3620: 0xBE20, - 3621: 0xBE21, - 3622: 0xBE22, - 3623: 0xBE23, - 3624: 0xBE24, - 3625: 0xBE25, - 3626: 0xBE26, - 3627: 0xBE27, - 3628: 0xBE28, - 3629: 0xBE29, - 3630: 0xBE2A, - 3631: 0xBE2B, - 3632: 0xBE2C, - 3633: 0xBE2D, - 3634: 0xBE2E, - 3635: 0xBE2F, - 3636: 0xBE30, - 3637: 0xBE31, - 3638: 0xBE32, - 3639: 0xBE33, - 3640: 0xBE34, - 3641: 0xBE35, - 3642: 0xBE36, - 3643: 0xBE37, - 3644: 0xBE38, - 3645: 0xBE39, - 3646: 0xBE3A, - 3647: 0xBE3B, - 3648: 0xBE3C, - 3649: 0xBE3D, - 3650: 0xBE3E, - 3651: 0xBE3F, - 3652: 0xBE40, - 3653: 0xBE41, - 3654: 0xBE42, - 3655: 0xBE43, - 3656: 0xBE46, - 3657: 0xBE47, - 3658: 0xBE49, - 3659: 0xBE4A, - 3660: 0xBE4B, - 3661: 0xBE4D, - 3662: 0xBE4F, - 3663: 0xBE50, - 3664: 0xBE51, - 3665: 0xBE52, - 3666: 0xBE53, - 3667: 0xBE56, - 3668: 0xBE58, - 3669: 0xBE5C, - 3670: 0xBE5D, - 3671: 0xBE5E, - 3672: 0xBE5F, - 3673: 0xBE62, - 3674: 0xBE63, - 3675: 0xBE65, - 3676: 0xBE66, - 3677: 0xBE67, - 3678: 0xBE69, - 3679: 0xBE6B, - 3680: 0xBE6C, - 3681: 0xBE6D, - 3682: 0xBE6E, - 3683: 0xBE6F, - 3684: 0xBE72, - 3685: 0xBE76, - 3686: 0xBE77, - 3687: 0xBE78, - 3688: 0xBE79, - 3689: 0xBE7A, - 3690: 0xBE7E, - 3691: 0xBE7F, - 3692: 0xBE81, - 3693: 0xBE82, - 3694: 0xBE83, - 3695: 0xBE85, - 3696: 0xBE86, - 3697: 0xBE87, - 3698: 0xBE88, - 3699: 0xBE89, - 3700: 0xBE8A, - 3701: 0xBE8B, - 3702: 0xBE8E, - 3703: 0xBE92, - 3704: 0xBE93, - 3705: 0xBE94, - 3706: 0xBE95, - 3707: 0xBE96, - 3708: 0xBE97, - 3709: 0xBE9A, - 3710: 0xBE9B, - 3711: 0xBE9C, - 3712: 0xBE9D, - 3713: 0xBE9E, - 3714: 0xBE9F, - 3715: 0xBEA0, - 3716: 0xBEA1, - 3717: 0xBEA2, - 3718: 0xBEA3, - 3719: 0xBEA4, - 3720: 0xBEA5, - 3721: 0xBEA6, - 3722: 0xBEA7, - 3723: 0xBEA9, - 3724: 0xBEAA, - 3725: 0xBEAB, - 3726: 0xBEAC, - 3727: 0xBEAD, - 3728: 0xBEAE, - 3729: 0xBEAF, - 3730: 0xBEB0, - 3731: 0xBEB1, - 3732: 0xBEB2, - 3733: 0xBEB3, - 3734: 0xBEB4, - 3735: 0xBEB5, - 3736: 0xBEB6, - 3737: 0xBEB7, - 3738: 0xBEB8, - 3739: 0xBEB9, - 3740: 0xBEBA, - 3741: 0xBEBB, - 3742: 0xBEBC, - 3743: 0xBEBD, - 3744: 0xBEBE, - 3745: 0xBEBF, - 3746: 0xBEC0, - 3747: 0xBEC1, - 3748: 0xBEC2, - 3749: 0xBEC3, - 3750: 0xBEC4, - 3751: 0xBEC5, - 3752: 0xBEC6, - 3753: 0xBEC7, - 3754: 0xBEC8, - 3755: 0xBEC9, - 3756: 0xBECA, - 3757: 0xBECB, - 3758: 0xBECC, - 3759: 0xBECD, - 3760: 0xBECE, - 3761: 0xBECF, - 3762: 0xBED2, - 3763: 0xBED3, - 3764: 0xBED5, - 3765: 0xBED6, - 3766: 0xBED9, - 3767: 0xBEDA, - 3768: 0xBEDB, - 3769: 0xBEDC, - 3770: 0xBEDD, - 3771: 0xBEDE, - 3772: 0xBEDF, - 3773: 0xBEE1, - 3774: 0xBEE2, - 3775: 0xBEE6, - 3776: 0xBEE7, - 3777: 0xBEE8, - 3778: 0xBEE9, - 3779: 0xBEEA, - 3780: 0xBEEB, - 3781: 0xBEED, - 3782: 0xBEEE, - 3783: 0xBEEF, - 3784: 0xBEF0, - 3785: 0xBEF1, - 3786: 0xBEF2, - 3787: 0xBEF3, - 3788: 0xBEF4, - 3789: 0xBEF5, - 3790: 0xBEF6, - 3791: 0xBEF7, - 3792: 0xBEF8, - 3793: 0xBEF9, - 3794: 0xBEFA, - 3795: 0xBEFB, - 3796: 0xBEFC, - 3797: 0xBEFD, - 3798: 0xBEFE, - 3799: 0xBEFF, - 3800: 0xBF00, - 3801: 0xBF02, - 3802: 0xBF03, - 3803: 0xBF04, - 3804: 0xBF05, - 3805: 0xBF06, - 3806: 0xBF07, - 3807: 0xBF0A, - 3808: 0xBF0B, - 3809: 0xBF0C, - 3810: 0xBF0D, - 3811: 0xBF0E, - 3812: 0xBF0F, - 3813: 0xBF10, - 3814: 0xBF11, - 3815: 0xBF12, - 3816: 0xBF13, - 3817: 0xBF14, - 3818: 0xBF15, - 3819: 0xBF16, - 3820: 0xBF17, - 3821: 0xBF1A, - 3822: 0xBF1E, - 3823: 0xBF1F, - 3824: 0xBF20, - 3825: 0xBF21, - 3826: 0xBF22, - 3827: 0xBF23, - 3828: 0xBF24, - 3829: 0xBF25, - 3830: 0xBF26, - 3831: 0xBF27, - 3832: 0xBF28, - 3833: 0xBF29, - 3834: 0xBF2A, - 3835: 0xBF2B, - 3836: 0xBF2C, - 3837: 0xBF2D, - 3838: 0xBF2E, - 3839: 0xBF2F, - 3840: 0xBF30, - 3841: 0xBF31, - 3842: 0xBF32, - 3843: 0xBF33, - 3844: 0xBF34, - 3845: 0xBF35, - 3846: 0xBF36, - 3847: 0xBF37, - 3848: 0xBF38, - 3849: 0xBF39, - 3850: 0xBF3A, - 3851: 0xBF3B, - 3852: 0xBF3C, - 3853: 0xBF3D, - 3854: 0xBF3E, - 3855: 0xBF3F, - 3856: 0xBF42, - 3857: 0xBF43, - 3858: 0xBF45, - 3859: 0xBF46, - 3860: 0xBF47, - 3861: 0xBF49, - 3862: 0xBF4A, - 3863: 0xBF4B, - 3864: 0xBF4C, - 3865: 0xBF4D, - 3866: 0xBF4E, - 3867: 0xBF4F, - 3868: 0xBF52, - 3869: 0xBF53, - 3870: 0xBF54, - 3871: 0xBF56, - 3872: 0xBF57, - 3873: 0xBF58, - 3874: 0xBF59, - 3875: 0xBF5A, - 3876: 0xBF5B, - 3877: 0xBF5C, - 3878: 0xBF5D, - 3879: 0xBF5E, - 3880: 0xBF5F, - 3881: 0xBF60, - 3882: 0xBF61, - 3883: 0xBF62, - 3884: 0xBF63, - 3885: 0xBF64, - 3886: 0xBF65, - 3887: 0xBF66, - 3888: 0xBF67, - 3889: 0xBF68, - 3890: 0xBF69, - 3891: 0xBF6A, - 3892: 0xBF6B, - 3893: 0xBF6C, - 3894: 0xBF6D, - 3895: 0xBF6E, - 3896: 0xBF6F, - 3897: 0xBF70, - 3898: 0xBF71, - 3899: 0xBF72, - 3900: 0xBF73, - 3901: 0xBF74, - 3902: 0xBF75, - 3903: 0xBF76, - 3904: 0xBF77, - 3905: 0xBF78, - 3906: 0xBF79, - 3907: 0xBF7A, - 3908: 0xBF7B, - 3909: 0xBF7C, - 3910: 0xBF7D, - 3911: 0xBF7E, - 3912: 0xBF7F, - 3913: 0xBF80, - 3914: 0xBF81, - 3915: 0xBF82, - 3916: 0xBF83, - 3917: 0xBF84, - 3918: 0xBF85, - 3919: 0xBF86, - 3920: 0xBF87, - 3921: 0xBF88, - 3922: 0xBF89, - 3923: 0xBF8A, - 3924: 0xBF8B, - 3925: 0xBF8C, - 3926: 0xBF8D, - 3927: 0xBF8E, - 3928: 0xBF8F, - 3929: 0xBF90, - 3930: 0xBF91, - 3931: 0xBF92, - 3932: 0xBF93, - 3933: 0xBF95, - 3934: 0xBF96, - 3935: 0xBF97, - 3936: 0xBF98, - 3937: 0xBF99, - 3938: 0xBF9A, - 3939: 0xBF9B, - 3940: 0xBF9C, - 3941: 0xBF9D, - 3942: 0xBF9E, - 3943: 0xBF9F, - 3944: 0xBFA0, - 3945: 0xBFA1, - 3946: 0xBFA2, - 3947: 0xBFA3, - 3948: 0xBFA4, - 3949: 0xBFA5, - 3950: 0xBFA6, - 3951: 0xBFA7, - 3952: 0xBFA8, - 3953: 0xBFA9, - 3954: 0xBFAA, - 3955: 0xBFAB, - 3956: 0xBFAC, - 3957: 0xBFAD, - 3958: 0xBFAE, - 3959: 0xBFAF, - 3960: 0xBFB1, - 3961: 0xBFB2, - 3962: 0xBFB3, - 3963: 0xBFB4, - 3964: 0xBFB5, - 3965: 0xBFB6, - 3966: 0xBFB7, - 3967: 0xBFB8, - 3968: 0xBFB9, - 3969: 0xBFBA, - 3970: 0xBFBB, - 3971: 0xBFBC, - 3972: 0xBFBD, - 3973: 0xBFBE, - 3974: 0xBFBF, - 3975: 0xBFC0, - 3976: 0xBFC1, - 3977: 0xBFC2, - 3978: 0xBFC3, - 3979: 0xBFC4, - 3980: 0xBFC6, - 3981: 0xBFC7, - 3982: 0xBFC8, - 3983: 0xBFC9, - 3984: 0xBFCA, - 3985: 0xBFCB, - 3986: 0xBFCE, - 3987: 0xBFCF, - 3988: 0xBFD1, - 3989: 0xBFD2, - 3990: 0xBFD3, - 3991: 0xBFD5, - 3992: 0xBFD6, - 3993: 0xBFD7, - 3994: 0xBFD8, - 3995: 0xBFD9, - 3996: 0xBFDA, - 3997: 0xBFDB, - 3998: 0xBFDD, - 3999: 0xBFDE, - 4000: 0xBFE0, - 4001: 0xBFE2, - 4002: 0xBFE3, - 4003: 0xBFE4, - 4004: 0xBFE5, - 4005: 0xBFE6, - 4006: 0xBFE7, - 4007: 0xBFE8, - 4008: 0xBFE9, - 4009: 0xBFEA, - 4010: 0xBFEB, - 4011: 0xBFEC, - 4012: 0xBFED, - 4013: 0xBFEE, - 4014: 0xBFEF, - 4015: 0xBFF0, - 4016: 0xBFF1, - 4017: 0xBFF2, - 4018: 0xBFF3, - 4019: 0xBFF4, - 4020: 0xBFF5, - 4021: 0xBFF6, - 4022: 0xBFF7, - 4023: 0xBFF8, - 4024: 0xBFF9, - 4025: 0xBFFA, - 4026: 0xBFFB, - 4027: 0xBFFC, - 4028: 0xBFFD, - 4029: 0xBFFE, - 4030: 0xBFFF, - 4031: 0xC000, - 4032: 0xC001, - 4033: 0xC002, - 4034: 0xC003, - 4035: 0xC004, - 4036: 0xC005, - 4037: 0xC006, - 4038: 0xC007, - 4039: 0xC008, - 4040: 0xC009, - 4041: 0xC00A, - 4042: 0xC00B, - 4043: 0xC00C, - 4044: 0xC00D, - 4045: 0xC00E, - 4046: 0xC00F, - 4047: 0xC010, - 4048: 0xC011, - 4049: 0xC012, - 4050: 0xC013, - 4051: 0xC014, - 4052: 0xC015, - 4053: 0xC016, - 4054: 0xC017, - 4055: 0xC018, - 4056: 0xC019, - 4057: 0xC01A, - 4058: 0xC01B, - 4059: 0xC01C, - 4060: 0xC01D, - 4061: 0xC01E, - 4062: 0xC01F, - 4063: 0xC020, - 4064: 0xC021, - 4065: 0xC022, - 4066: 0xC023, - 4067: 0xC024, - 4068: 0xC025, - 4069: 0xC026, - 4070: 0xC027, - 4071: 0xC028, - 4072: 0xC029, - 4073: 0xC02A, - 4074: 0xC02B, - 4075: 0xC02C, - 4076: 0xC02D, - 4077: 0xC02E, - 4078: 0xC02F, - 4079: 0xC030, - 4080: 0xC031, - 4081: 0xC032, - 4082: 0xC033, - 4083: 0xC034, - 4084: 0xC035, - 4085: 0xC036, - 4086: 0xC037, - 4087: 0xC038, - 4088: 0xC039, - 4089: 0xC03A, - 4090: 0xC03B, - 4091: 0xC03D, - 4092: 0xC03E, - 4093: 0xC03F, - 4094: 0xC040, - 4095: 0xC041, - 4096: 0xC042, - 4097: 0xC043, - 4098: 0xC044, - 4099: 0xC045, - 4100: 0xC046, - 4101: 0xC047, - 4102: 0xC048, - 4103: 0xC049, - 4104: 0xC04A, - 4105: 0xC04B, - 4106: 0xC04C, - 4107: 0xC04D, - 4108: 0xC04E, - 4109: 0xC04F, - 4110: 0xC050, - 4111: 0xC052, - 4112: 0xC053, - 4113: 0xC054, - 4114: 0xC055, - 4115: 0xC056, - 4116: 0xC057, - 4117: 0xC059, - 4118: 0xC05A, - 4119: 0xC05B, - 4120: 0xC05D, - 4121: 0xC05E, - 4122: 0xC05F, - 4123: 0xC061, - 4124: 0xC062, - 4125: 0xC063, - 4126: 0xC064, - 4127: 0xC065, - 4128: 0xC066, - 4129: 0xC067, - 4130: 0xC06A, - 4131: 0xC06B, - 4132: 0xC06C, - 4133: 0xC06D, - 4134: 0xC06E, - 4135: 0xC06F, - 4136: 0xC070, - 4137: 0xC071, - 4138: 0xC072, - 4139: 0xC073, - 4140: 0xC074, - 4141: 0xC075, - 4142: 0xC076, - 4143: 0xC077, - 4144: 0xC078, - 4145: 0xC079, - 4146: 0xC07A, - 4147: 0xC07B, - 4148: 0xC07C, - 4149: 0xC07D, - 4150: 0xC07E, - 4151: 0xC07F, - 4152: 0xC080, - 4153: 0xC081, - 4154: 0xC082, - 4155: 0xC083, - 4156: 0xC084, - 4157: 0xC085, - 4158: 0xC086, - 4159: 0xC087, - 4160: 0xC088, - 4161: 0xC089, - 4162: 0xC08A, - 4163: 0xC08B, - 4164: 0xC08C, - 4165: 0xC08D, - 4166: 0xC08E, - 4167: 0xC08F, - 4168: 0xC092, - 4169: 0xC093, - 4170: 0xC095, - 4171: 0xC096, - 4172: 0xC097, - 4173: 0xC099, - 4174: 0xC09A, - 4175: 0xC09B, - 4176: 0xC09C, - 4177: 0xC09D, - 4178: 0xC09E, - 4179: 0xC09F, - 4180: 0xC0A2, - 4181: 0xC0A4, - 4182: 0xC0A6, - 4183: 0xC0A7, - 4184: 0xC0A8, - 4185: 0xC0A9, - 4186: 0xC0AA, - 4187: 0xC0AB, - 4188: 0xC0AE, - 4189: 0xC0B1, - 4190: 0xC0B2, - 4191: 0xC0B7, - 4192: 0xC0B8, - 4193: 0xC0B9, - 4194: 0xC0BA, - 4195: 0xC0BB, - 4196: 0xC0BE, - 4197: 0xC0C2, - 4198: 0xC0C3, - 4199: 0xC0C4, - 4200: 0xC0C6, - 4201: 0xC0C7, - 4202: 0xC0CA, - 4203: 0xC0CB, - 4204: 0xC0CD, - 4205: 0xC0CE, - 4206: 0xC0CF, - 4207: 0xC0D1, - 4208: 0xC0D2, - 4209: 0xC0D3, - 4210: 0xC0D4, - 4211: 0xC0D5, - 4212: 0xC0D6, - 4213: 0xC0D7, - 4214: 0xC0DA, - 4215: 0xC0DE, - 4216: 0xC0DF, - 4217: 0xC0E0, - 4218: 0xC0E1, - 4219: 0xC0E2, - 4220: 0xC0E3, - 4221: 0xC0E6, - 4222: 0xC0E7, - 4223: 0xC0E9, - 4224: 0xC0EA, - 4225: 0xC0EB, - 4226: 0xC0ED, - 4227: 0xC0EE, - 4228: 0xC0EF, - 4229: 0xC0F0, - 4230: 0xC0F1, - 4231: 0xC0F2, - 4232: 0xC0F3, - 4233: 0xC0F6, - 4234: 0xC0F8, - 4235: 0xC0FA, - 4236: 0xC0FB, - 4237: 0xC0FC, - 4238: 0xC0FD, - 4239: 0xC0FE, - 4240: 0xC0FF, - 4241: 0xC101, - 4242: 0xC102, - 4243: 0xC103, - 4244: 0xC105, - 4245: 0xC106, - 4246: 0xC107, - 4247: 0xC109, - 4248: 0xC10A, - 4249: 0xC10B, - 4250: 0xC10C, - 4251: 0xC10D, - 4252: 0xC10E, - 4253: 0xC10F, - 4254: 0xC111, - 4255: 0xC112, - 4256: 0xC113, - 4257: 0xC114, - 4258: 0xC116, - 4259: 0xC117, - 4260: 0xC118, - 4261: 0xC119, - 4262: 0xC11A, - 4263: 0xC11B, - 4264: 0xC121, - 4265: 0xC122, - 4266: 0xC125, - 4267: 0xC128, - 4268: 0xC129, - 4269: 0xC12A, - 4270: 0xC12B, - 4271: 0xC12E, - 4272: 0xC132, - 4273: 0xC133, - 4274: 0xC134, - 4275: 0xC135, - 4276: 0xC137, - 4277: 0xC13A, - 4278: 0xC13B, - 4279: 0xC13D, - 4280: 0xC13E, - 4281: 0xC13F, - 4282: 0xC141, - 4283: 0xC142, - 4284: 0xC143, - 4285: 0xC144, - 4286: 0xC145, - 4287: 0xC146, - 4288: 0xC147, - 4289: 0xC14A, - 4290: 0xC14E, - 4291: 0xC14F, - 4292: 0xC150, - 4293: 0xC151, - 4294: 0xC152, - 4295: 0xC153, - 4296: 0xC156, - 4297: 0xC157, - 4298: 0xC159, - 4299: 0xC15A, - 4300: 0xC15B, - 4301: 0xC15D, - 4302: 0xC15E, - 4303: 0xC15F, - 4304: 0xC160, - 4305: 0xC161, - 4306: 0xC162, - 4307: 0xC163, - 4308: 0xC166, - 4309: 0xC16A, - 4310: 0xC16B, - 4311: 0xC16C, - 4312: 0xC16D, - 4313: 0xC16E, - 4314: 0xC16F, - 4315: 0xC171, - 4316: 0xC172, - 4317: 0xC173, - 4318: 0xC175, - 4319: 0xC176, - 4320: 0xC177, - 4321: 0xC179, - 4322: 0xC17A, - 4323: 0xC17B, - 4324: 0xC17C, - 4325: 0xC17D, - 4326: 0xC17E, - 4327: 0xC17F, - 4328: 0xC180, - 4329: 0xC181, - 4330: 0xC182, - 4331: 0xC183, - 4332: 0xC184, - 4333: 0xC186, - 4334: 0xC187, - 4335: 0xC188, - 4336: 0xC189, - 4337: 0xC18A, - 4338: 0xC18B, - 4339: 0xC18F, - 4340: 0xC191, - 4341: 0xC192, - 4342: 0xC193, - 4343: 0xC195, - 4344: 0xC197, - 4345: 0xC198, - 4346: 0xC199, - 4347: 0xC19A, - 4348: 0xC19B, - 4349: 0xC19E, - 4350: 0xC1A0, - 4351: 0xC1A2, - 4352: 0xC1A3, - 4353: 0xC1A4, - 4354: 0xC1A6, - 4355: 0xC1A7, - 4356: 0xC1AA, - 4357: 0xC1AB, - 4358: 0xC1AD, - 4359: 0xC1AE, - 4360: 0xC1AF, - 4361: 0xC1B1, - 4362: 0xC1B2, - 4363: 0xC1B3, - 4364: 0xC1B4, - 4365: 0xC1B5, - 4366: 0xC1B6, - 4367: 0xC1B7, - 4368: 0xC1B8, - 4369: 0xC1B9, - 4370: 0xC1BA, - 4371: 0xC1BB, - 4372: 0xC1BC, - 4373: 0xC1BE, - 4374: 0xC1BF, - 4375: 0xC1C0, - 4376: 0xC1C1, - 4377: 0xC1C2, - 4378: 0xC1C3, - 4379: 0xC1C5, - 4380: 0xC1C6, - 4381: 0xC1C7, - 4382: 0xC1C9, - 4383: 0xC1CA, - 4384: 0xC1CB, - 4385: 0xC1CD, - 4386: 0xC1CE, - 4387: 0xC1CF, - 4388: 0xC1D0, - 4389: 0xC1D1, - 4390: 0xC1D2, - 4391: 0xC1D3, - 4392: 0xC1D5, - 4393: 0xC1D6, - 4394: 0xC1D9, - 4395: 0xC1DA, - 4396: 0xC1DB, - 4397: 0xC1DC, - 4398: 0xC1DD, - 4399: 0xC1DE, - 4400: 0xC1DF, - 4401: 0xC1E1, - 4402: 0xC1E2, - 4403: 0xC1E3, - 4404: 0xC1E5, - 4405: 0xC1E6, - 4406: 0xC1E7, - 4407: 0xC1E9, - 4408: 0xC1EA, - 4409: 0xC1EB, - 4410: 0xC1EC, - 4411: 0xC1ED, - 4412: 0xC1EE, - 4413: 0xC1EF, - 4414: 0xC1F2, - 4415: 0xC1F4, - 4416: 0xC1F5, - 4417: 0xC1F6, - 4418: 0xC1F7, - 4419: 0xC1F8, - 4420: 0xC1F9, - 4421: 0xC1FA, - 4422: 0xC1FB, - 4423: 0xC1FE, - 4424: 0xC1FF, - 4425: 0xC201, - 4426: 0xC202, - 4427: 0xC203, - 4428: 0xC205, - 4429: 0xC206, - 4430: 0xC207, - 4431: 0xC208, - 4432: 0xC209, - 4433: 0xC20A, - 4434: 0xC20B, - 4435: 0xC20E, - 4436: 0xC210, - 4437: 0xC212, - 4438: 0xC213, - 4439: 0xC214, - 4440: 0xC215, - 4441: 0xC216, - 4442: 0xC217, - 4443: 0xC21A, - 4444: 0xC21B, - 4445: 0xC21D, - 4446: 0xC21E, - 4447: 0xC221, - 4448: 0xC222, - 4449: 0xC223, - 4450: 0xC224, - 4451: 0xC225, - 4452: 0xC226, - 4453: 0xC227, - 4454: 0xC22A, - 4455: 0xC22C, - 4456: 0xC22E, - 4457: 0xC230, - 4458: 0xC233, - 4459: 0xC235, - 4460: 0xC236, - 4461: 0xC237, - 4462: 0xC238, - 4463: 0xC239, - 4464: 0xC23A, - 4465: 0xC23B, - 4466: 0xC23C, - 4467: 0xC23D, - 4468: 0xC23E, - 4469: 0xC23F, - 4470: 0xC240, - 4471: 0xC241, - 4472: 0xC242, - 4473: 0xC243, - 4474: 0xC244, - 4475: 0xC245, - 4476: 0xC246, - 4477: 0xC247, - 4478: 0xC249, - 4479: 0xC24A, - 4480: 0xC24B, - 4481: 0xC24C, - 4482: 0xC24D, - 4483: 0xC24E, - 4484: 0xC24F, - 4485: 0xC252, - 4486: 0xC253, - 4487: 0xC255, - 4488: 0xC256, - 4489: 0xC257, - 4490: 0xC259, - 4491: 0xC25A, - 4492: 0xC25B, - 4493: 0xC25C, - 4494: 0xC25D, - 4495: 0xC25E, - 4496: 0xC25F, - 4497: 0xC261, - 4498: 0xC262, - 4499: 0xC263, - 4500: 0xC264, - 4501: 0xC266, - 4502: 0xC267, - 4503: 0xC268, - 4504: 0xC269, - 4505: 0xC26A, - 4506: 0xC26B, - 4507: 0xC26E, - 4508: 0xC26F, - 4509: 0xC271, - 4510: 0xC272, - 4511: 0xC273, - 4512: 0xC275, - 4513: 0xC276, - 4514: 0xC277, - 4515: 0xC278, - 4516: 0xC279, - 4517: 0xC27A, - 4518: 0xC27B, - 4519: 0xC27E, - 4520: 0xC280, - 4521: 0xC282, - 4522: 0xC283, - 4523: 0xC284, - 4524: 0xC285, - 4525: 0xC286, - 4526: 0xC287, - 4527: 0xC28A, - 4528: 0xC28B, - 4529: 0xC28C, - 4530: 0xC28D, - 4531: 0xC28E, - 4532: 0xC28F, - 4533: 0xC291, - 4534: 0xC292, - 4535: 0xC293, - 4536: 0xC294, - 4537: 0xC295, - 4538: 0xC296, - 4539: 0xC297, - 4540: 0xC299, - 4541: 0xC29A, - 4542: 0xC29C, - 4543: 0xC29E, - 4544: 0xC29F, - 4545: 0xC2A0, - 4546: 0xC2A1, - 4547: 0xC2A2, - 4548: 0xC2A3, - 4549: 0xC2A6, - 4550: 0xC2A7, - 4551: 0xC2A9, - 4552: 0xC2AA, - 4553: 0xC2AB, - 4554: 0xC2AE, - 4555: 0xC2AF, - 4556: 0xC2B0, - 4557: 0xC2B1, - 4558: 0xC2B2, - 4559: 0xC2B3, - 4560: 0xC2B6, - 4561: 0xC2B8, - 4562: 0xC2BA, - 4563: 0xC2BB, - 4564: 0xC2BC, - 4565: 0xC2BD, - 4566: 0xC2BE, - 4567: 0xC2BF, - 4568: 0xC2C0, - 4569: 0xC2C1, - 4570: 0xC2C2, - 4571: 0xC2C3, - 4572: 0xC2C4, - 4573: 0xC2C5, - 4574: 0xC2C6, - 4575: 0xC2C7, - 4576: 0xC2C8, - 4577: 0xC2C9, - 4578: 0xC2CA, - 4579: 0xC2CB, - 4580: 0xC2CC, - 4581: 0xC2CD, - 4582: 0xC2CE, - 4583: 0xC2CF, - 4584: 0xC2D0, - 4585: 0xC2D1, - 4586: 0xC2D2, - 4587: 0xC2D3, - 4588: 0xC2D4, - 4589: 0xC2D5, - 4590: 0xC2D6, - 4591: 0xC2D7, - 4592: 0xC2D8, - 4593: 0xC2D9, - 4594: 0xC2DA, - 4595: 0xC2DB, - 4596: 0xC2DE, - 4597: 0xC2DF, - 4598: 0xC2E1, - 4599: 0xC2E2, - 4600: 0xC2E5, - 4601: 0xC2E6, - 4602: 0xC2E7, - 4603: 0xC2E8, - 4604: 0xC2E9, - 4605: 0xC2EA, - 4606: 0xC2EE, - 4607: 0xC2F0, - 4608: 0xC2F2, - 4609: 0xC2F3, - 4610: 0xC2F4, - 4611: 0xC2F5, - 4612: 0xC2F7, - 4613: 0xC2FA, - 4614: 0xC2FD, - 4615: 0xC2FE, - 4616: 0xC2FF, - 4617: 0xC301, - 4618: 0xC302, - 4619: 0xC303, - 4620: 0xC304, - 4621: 0xC305, - 4622: 0xC306, - 4623: 0xC307, - 4624: 0xC30A, - 4625: 0xC30B, - 4626: 0xC30E, - 4627: 0xC30F, - 4628: 0xC310, - 4629: 0xC311, - 4630: 0xC312, - 4631: 0xC316, - 4632: 0xC317, - 4633: 0xC319, - 4634: 0xC31A, - 4635: 0xC31B, - 4636: 0xC31D, - 4637: 0xC31E, - 4638: 0xC31F, - 4639: 0xC320, - 4640: 0xC321, - 4641: 0xC322, - 4642: 0xC323, - 4643: 0xC326, - 4644: 0xC327, - 4645: 0xC32A, - 4646: 0xC32B, - 4647: 0xC32C, - 4648: 0xC32D, - 4649: 0xC32E, - 4650: 0xC32F, - 4651: 0xC330, - 4652: 0xC331, - 4653: 0xC332, - 4654: 0xC333, - 4655: 0xC334, - 4656: 0xC335, - 4657: 0xC336, - 4658: 0xC337, - 4659: 0xC338, - 4660: 0xC339, - 4661: 0xC33A, - 4662: 0xC33B, - 4663: 0xC33C, - 4664: 0xC33D, - 4665: 0xC33E, - 4666: 0xC33F, - 4667: 0xC340, - 4668: 0xC341, - 4669: 0xC342, - 4670: 0xC343, - 4671: 0xC344, - 4672: 0xC346, - 4673: 0xC347, - 4674: 0xC348, - 4675: 0xC349, - 4676: 0xC34A, - 4677: 0xC34B, - 4678: 0xC34C, - 4679: 0xC34D, - 4680: 0xC34E, - 4681: 0xC34F, - 4682: 0xC350, - 4683: 0xC351, - 4684: 0xC352, - 4685: 0xC353, - 4686: 0xC354, - 4687: 0xC355, - 4688: 0xC356, - 4689: 0xC357, - 4690: 0xC358, - 4691: 0xC359, - 4692: 0xC35A, - 4693: 0xC35B, - 4694: 0xC35C, - 4695: 0xC35D, - 4696: 0xC35E, - 4697: 0xC35F, - 4698: 0xC360, - 4699: 0xC361, - 4700: 0xC362, - 4701: 0xC363, - 4702: 0xC364, - 4703: 0xC365, - 4704: 0xC366, - 4705: 0xC367, - 4706: 0xC36A, - 4707: 0xC36B, - 4708: 0xC36D, - 4709: 0xC36E, - 4710: 0xC36F, - 4711: 0xC371, - 4712: 0xC373, - 4713: 0xC374, - 4714: 0xC375, - 4715: 0xC376, - 4716: 0xC377, - 4717: 0xC37A, - 4718: 0xC37B, - 4719: 0xC37E, - 4720: 0xC37F, - 4721: 0xC380, - 4722: 0xC381, - 4723: 0xC382, - 4724: 0xC383, - 4725: 0xC385, - 4726: 0xC386, - 4727: 0xC387, - 4728: 0xC389, - 4729: 0xC38A, - 4730: 0xC38B, - 4731: 0xC38D, - 4732: 0xC38E, - 4733: 0xC38F, - 4734: 0xC390, - 4735: 0xC391, - 4736: 0xC392, - 4737: 0xC393, - 4738: 0xC394, - 4739: 0xC395, - 4740: 0xC396, - 4741: 0xC397, - 4742: 0xC398, - 4743: 0xC399, - 4744: 0xC39A, - 4745: 0xC39B, - 4746: 0xC39C, - 4747: 0xC39D, - 4748: 0xC39E, - 4749: 0xC39F, - 4750: 0xC3A0, - 4751: 0xC3A1, - 4752: 0xC3A2, - 4753: 0xC3A3, - 4754: 0xC3A4, - 4755: 0xC3A5, - 4756: 0xC3A6, - 4757: 0xC3A7, - 4758: 0xC3A8, - 4759: 0xC3A9, - 4760: 0xC3AA, - 4761: 0xC3AB, - 4762: 0xC3AC, - 4763: 0xC3AD, - 4764: 0xC3AE, - 4765: 0xC3AF, - 4766: 0xC3B0, - 4767: 0xC3B1, - 4768: 0xC3B2, - 4769: 0xC3B3, - 4770: 0xC3B4, - 4771: 0xC3B5, - 4772: 0xC3B6, - 4773: 0xC3B7, - 4774: 0xC3B8, - 4775: 0xC3B9, - 4776: 0xC3BA, - 4777: 0xC3BB, - 4778: 0xC3BC, - 4779: 0xC3BD, - 4780: 0xC3BE, - 4781: 0xC3BF, - 4782: 0xC3C1, - 4783: 0xC3C2, - 4784: 0xC3C3, - 4785: 0xC3C4, - 4786: 0xC3C5, - 4787: 0xC3C6, - 4788: 0xC3C7, - 4789: 0xC3C8, - 4790: 0xC3C9, - 4791: 0xC3CA, - 4792: 0xC3CB, - 4793: 0xC3CC, - 4794: 0xC3CD, - 4795: 0xC3CE, - 4796: 0xC3CF, - 4797: 0xC3D0, - 4798: 0xC3D1, - 4799: 0xC3D2, - 4800: 0xC3D3, - 4801: 0xC3D4, - 4802: 0xC3D5, - 4803: 0xC3D6, - 4804: 0xC3D7, - 4805: 0xC3DA, - 4806: 0xC3DB, - 4807: 0xC3DD, - 4808: 0xC3DE, - 4809: 0xC3E1, - 4810: 0xC3E3, - 4811: 0xC3E4, - 4812: 0xC3E5, - 4813: 0xC3E6, - 4814: 0xC3E7, - 4815: 0xC3EA, - 4816: 0xC3EB, - 4817: 0xC3EC, - 4818: 0xC3EE, - 4819: 0xC3EF, - 4820: 0xC3F0, - 4821: 0xC3F1, - 4822: 0xC3F2, - 4823: 0xC3F3, - 4824: 0xC3F6, - 4825: 0xC3F7, - 4826: 0xC3F9, - 4827: 0xC3FA, - 4828: 0xC3FB, - 4829: 0xC3FC, - 4830: 0xC3FD, - 4831: 0xC3FE, - 4832: 0xC3FF, - 4833: 0xC400, - 4834: 0xC401, - 4835: 0xC402, - 4836: 0xC403, - 4837: 0xC404, - 4838: 0xC405, - 4839: 0xC406, - 4840: 0xC407, - 4841: 0xC409, - 4842: 0xC40A, - 4843: 0xC40B, - 4844: 0xC40C, - 4845: 0xC40D, - 4846: 0xC40E, - 4847: 0xC40F, - 4848: 0xC411, - 4849: 0xC412, - 4850: 0xC413, - 4851: 0xC414, - 4852: 0xC415, - 4853: 0xC416, - 4854: 0xC417, - 4855: 0xC418, - 4856: 0xC419, - 4857: 0xC41A, - 4858: 0xC41B, - 4859: 0xC41C, - 4860: 0xC41D, - 4861: 0xC41E, - 4862: 0xC41F, - 4863: 0xC420, - 4864: 0xC421, - 4865: 0xC422, - 4866: 0xC423, - 4867: 0xC425, - 4868: 0xC426, - 4869: 0xC427, - 4870: 0xC428, - 4871: 0xC429, - 4872: 0xC42A, - 4873: 0xC42B, - 4874: 0xC42D, - 4875: 0xC42E, - 4876: 0xC42F, - 4877: 0xC431, - 4878: 0xC432, - 4879: 0xC433, - 4880: 0xC435, - 4881: 0xC436, - 4882: 0xC437, - 4883: 0xC438, - 4884: 0xC439, - 4885: 0xC43A, - 4886: 0xC43B, - 4887: 0xC43E, - 4888: 0xC43F, - 4889: 0xC440, - 4890: 0xC441, - 4891: 0xC442, - 4892: 0xC443, - 4893: 0xC444, - 4894: 0xC445, - 4895: 0xC446, - 4896: 0xC447, - 4897: 0xC449, - 4898: 0xC44A, - 4899: 0xC44B, - 4900: 0xC44C, - 4901: 0xC44D, - 4902: 0xC44E, - 4903: 0xC44F, - 4904: 0xC450, - 4905: 0xC451, - 4906: 0xC452, - 4907: 0xC453, - 4908: 0xC454, - 4909: 0xC455, - 4910: 0xC456, - 4911: 0xC457, - 4912: 0xC458, - 4913: 0xC459, - 4914: 0xC45A, - 4915: 0xC45B, - 4916: 0xC45C, - 4917: 0xC45D, - 4918: 0xC45E, - 4919: 0xC45F, - 4920: 0xC460, - 4921: 0xC461, - 4922: 0xC462, - 4923: 0xC463, - 4924: 0xC466, - 4925: 0xC467, - 4926: 0xC469, - 4927: 0xC46A, - 4928: 0xC46B, - 4929: 0xC46D, - 4930: 0xC46E, - 4931: 0xC46F, - 4932: 0xC470, - 4933: 0xC471, - 4934: 0xC472, - 4935: 0xC473, - 4936: 0xC476, - 4937: 0xC477, - 4938: 0xC478, - 4939: 0xC47A, - 4940: 0xC47B, - 4941: 0xC47C, - 4942: 0xC47D, - 4943: 0xC47E, - 4944: 0xC47F, - 4945: 0xC481, - 4946: 0xC482, - 4947: 0xC483, - 4948: 0xC484, - 4949: 0xC485, - 4950: 0xC486, - 4951: 0xC487, - 4952: 0xC488, - 4953: 0xC489, - 4954: 0xC48A, - 4955: 0xC48B, - 4956: 0xC48C, - 4957: 0xC48D, - 4958: 0xC48E, - 4959: 0xC48F, - 4960: 0xC490, - 4961: 0xC491, - 4962: 0xC492, - 4963: 0xC493, - 4964: 0xC495, - 4965: 0xC496, - 4966: 0xC497, - 4967: 0xC498, - 4968: 0xC499, - 4969: 0xC49A, - 4970: 0xC49B, - 4971: 0xC49D, - 4972: 0xC49E, - 4973: 0xC49F, - 4974: 0xC4A0, - 4975: 0xC4A1, - 4976: 0xC4A2, - 4977: 0xC4A3, - 4978: 0xC4A4, - 4979: 0xC4A5, - 4980: 0xC4A6, - 4981: 0xC4A7, - 4982: 0xC4A8, - 4983: 0xC4A9, - 4984: 0xC4AA, - 4985: 0xC4AB, - 4986: 0xC4AC, - 4987: 0xC4AD, - 4988: 0xC4AE, - 4989: 0xC4AF, - 4990: 0xC4B0, - 4991: 0xC4B1, - 4992: 0xC4B2, - 4993: 0xC4B3, - 4994: 0xC4B4, - 4995: 0xC4B5, - 4996: 0xC4B6, - 4997: 0xC4B7, - 4998: 0xC4B9, - 4999: 0xC4BA, - 5000: 0xC4BB, - 5001: 0xC4BD, - 5002: 0xC4BE, - 5003: 0xC4BF, - 5004: 0xC4C0, - 5005: 0xC4C1, - 5006: 0xC4C2, - 5007: 0xC4C3, - 5008: 0xC4C4, - 5009: 0xC4C5, - 5010: 0xC4C6, - 5011: 0xC4C7, - 5012: 0xC4C8, - 5013: 0xC4C9, - 5014: 0xC4CA, - 5015: 0xC4CB, - 5016: 0xC4CC, - 5017: 0xC4CD, - 5018: 0xC4CE, - 5019: 0xC4CF, - 5020: 0xC4D0, - 5021: 0xC4D1, - 5022: 0xC4D2, - 5023: 0xC4D3, - 5024: 0xC4D4, - 5025: 0xC4D5, - 5026: 0xC4D6, - 5027: 0xC4D7, - 5028: 0xC4D8, - 5029: 0xC4D9, - 5030: 0xC4DA, - 5031: 0xC4DB, - 5032: 0xC4DC, - 5033: 0xC4DD, - 5034: 0xC4DE, - 5035: 0xC4DF, - 5036: 0xC4E0, - 5037: 0xC4E1, - 5038: 0xC4E2, - 5039: 0xC4E3, - 5040: 0xC4E4, - 5041: 0xC4E5, - 5042: 0xC4E6, - 5043: 0xC4E7, - 5044: 0xC4E8, - 5045: 0xC4EA, - 5046: 0xC4EB, - 5047: 0xC4EC, - 5048: 0xC4ED, - 5049: 0xC4EE, - 5050: 0xC4EF, - 5051: 0xC4F2, - 5052: 0xC4F3, - 5053: 0xC4F5, - 5054: 0xC4F6, - 5055: 0xC4F7, - 5056: 0xC4F9, - 5057: 0xC4FB, - 5058: 0xC4FC, - 5059: 0xC4FD, - 5060: 0xC4FE, - 5061: 0xC502, - 5062: 0xC503, - 5063: 0xC504, - 5064: 0xC505, - 5065: 0xC506, - 5066: 0xC507, - 5067: 0xC508, - 5068: 0xC509, - 5069: 0xC50A, - 5070: 0xC50B, - 5071: 0xC50D, - 5072: 0xC50E, - 5073: 0xC50F, - 5074: 0xC511, - 5075: 0xC512, - 5076: 0xC513, - 5077: 0xC515, - 5078: 0xC516, - 5079: 0xC517, - 5080: 0xC518, - 5081: 0xC519, - 5082: 0xC51A, - 5083: 0xC51B, - 5084: 0xC51D, - 5085: 0xC51E, - 5086: 0xC51F, - 5087: 0xC520, - 5088: 0xC521, - 5089: 0xC522, - 5090: 0xC523, - 5091: 0xC524, - 5092: 0xC525, - 5093: 0xC526, - 5094: 0xC527, - 5095: 0xC52A, - 5096: 0xC52B, - 5097: 0xC52D, - 5098: 0xC52E, - 5099: 0xC52F, - 5100: 0xC531, - 5101: 0xC532, - 5102: 0xC533, - 5103: 0xC534, - 5104: 0xC535, - 5105: 0xC536, - 5106: 0xC537, - 5107: 0xC53A, - 5108: 0xC53C, - 5109: 0xC53E, - 5110: 0xC53F, - 5111: 0xC540, - 5112: 0xC541, - 5113: 0xC542, - 5114: 0xC543, - 5115: 0xC546, - 5116: 0xC547, - 5117: 0xC54B, - 5118: 0xC54F, - 5119: 0xC550, - 5120: 0xC551, - 5121: 0xC552, - 5122: 0xC556, - 5123: 0xC55A, - 5124: 0xC55B, - 5125: 0xC55C, - 5126: 0xC55F, - 5127: 0xC562, - 5128: 0xC563, - 5129: 0xC565, - 5130: 0xC566, - 5131: 0xC567, - 5132: 0xC569, - 5133: 0xC56A, - 5134: 0xC56B, - 5135: 0xC56C, - 5136: 0xC56D, - 5137: 0xC56E, - 5138: 0xC56F, - 5139: 0xC572, - 5140: 0xC576, - 5141: 0xC577, - 5142: 0xC578, - 5143: 0xC579, - 5144: 0xC57A, - 5145: 0xC57B, - 5146: 0xC57E, - 5147: 0xC57F, - 5148: 0xC581, - 5149: 0xC582, - 5150: 0xC583, - 5151: 0xC585, - 5152: 0xC586, - 5153: 0xC588, - 5154: 0xC589, - 5155: 0xC58A, - 5156: 0xC58B, - 5157: 0xC58E, - 5158: 0xC590, - 5159: 0xC592, - 5160: 0xC593, - 5161: 0xC594, - 5162: 0xC596, - 5163: 0xC599, - 5164: 0xC59A, - 5165: 0xC59B, - 5166: 0xC59D, - 5167: 0xC59E, - 5168: 0xC59F, - 5169: 0xC5A1, - 5170: 0xC5A2, - 5171: 0xC5A3, - 5172: 0xC5A4, - 5173: 0xC5A5, - 5174: 0xC5A6, - 5175: 0xC5A7, - 5176: 0xC5A8, - 5177: 0xC5AA, - 5178: 0xC5AB, - 5179: 0xC5AC, - 5180: 0xC5AD, - 5181: 0xC5AE, - 5182: 0xC5AF, - 5183: 0xC5B0, - 5184: 0xC5B1, - 5185: 0xC5B2, - 5186: 0xC5B3, - 5187: 0xC5B6, - 5188: 0xC5B7, - 5189: 0xC5BA, - 5190: 0xC5BF, - 5191: 0xC5C0, - 5192: 0xC5C1, - 5193: 0xC5C2, - 5194: 0xC5C3, - 5195: 0xC5CB, - 5196: 0xC5CD, - 5197: 0xC5CF, - 5198: 0xC5D2, - 5199: 0xC5D3, - 5200: 0xC5D5, - 5201: 0xC5D6, - 5202: 0xC5D7, - 5203: 0xC5D9, - 5204: 0xC5DA, - 5205: 0xC5DB, - 5206: 0xC5DC, - 5207: 0xC5DD, - 5208: 0xC5DE, - 5209: 0xC5DF, - 5210: 0xC5E2, - 5211: 0xC5E4, - 5212: 0xC5E6, - 5213: 0xC5E7, - 5214: 0xC5E8, - 5215: 0xC5E9, - 5216: 0xC5EA, - 5217: 0xC5EB, - 5218: 0xC5EF, - 5219: 0xC5F1, - 5220: 0xC5F2, - 5221: 0xC5F3, - 5222: 0xC5F5, - 5223: 0xC5F8, - 5224: 0xC5F9, - 5225: 0xC5FA, - 5226: 0xC5FB, - 5227: 0xC602, - 5228: 0xC603, - 5229: 0xC604, - 5230: 0xC609, - 5231: 0xC60A, - 5232: 0xC60B, - 5233: 0xC60D, - 5234: 0xC60E, - 5235: 0xC60F, - 5236: 0xC611, - 5237: 0xC612, - 5238: 0xC613, - 5239: 0xC614, - 5240: 0xC615, - 5241: 0xC616, - 5242: 0xC617, - 5243: 0xC61A, - 5244: 0xC61D, - 5245: 0xC61E, - 5246: 0xC61F, - 5247: 0xC620, - 5248: 0xC621, - 5249: 0xC622, - 5250: 0xC623, - 5251: 0xC626, - 5252: 0xC627, - 5253: 0xC629, - 5254: 0xC62A, - 5255: 0xC62B, - 5256: 0xC62F, - 5257: 0xC631, - 5258: 0xC632, - 5259: 0xC636, - 5260: 0xC638, - 5261: 0xC63A, - 5262: 0xC63C, - 5263: 0xC63D, - 5264: 0xC63E, - 5265: 0xC63F, - 5266: 0xC642, - 5267: 0xC643, - 5268: 0xC645, - 5269: 0xC646, - 5270: 0xC647, - 5271: 0xC649, - 5272: 0xC64A, - 5273: 0xC64B, - 5274: 0xC64C, - 5275: 0xC64D, - 5276: 0xC64E, - 5277: 0xC64F, - 5278: 0xC652, - 5279: 0xC656, - 5280: 0xC657, - 5281: 0xC658, - 5282: 0xC659, - 5283: 0xC65A, - 5284: 0xC65B, - 5285: 0xC65E, - 5286: 0xC65F, - 5287: 0xC661, - 5288: 0xC662, - 5289: 0xC663, - 5290: 0xC664, - 5291: 0xC665, - 5292: 0xC666, - 5293: 0xC667, - 5294: 0xC668, - 5295: 0xC669, - 5296: 0xC66A, - 5297: 0xC66B, - 5298: 0xC66D, - 5299: 0xC66E, - 5300: 0xC670, - 5301: 0xC672, - 5302: 0xC673, - 5303: 0xC674, - 5304: 0xC675, - 5305: 0xC676, - 5306: 0xC677, - 5307: 0xC67A, - 5308: 0xC67B, - 5309: 0xC67D, - 5310: 0xC67E, - 5311: 0xC67F, - 5312: 0xC681, - 5313: 0xC682, - 5314: 0xC683, - 5315: 0xC684, - 5316: 0xC685, - 5317: 0xC686, - 5318: 0xC687, - 5319: 0xC68A, - 5320: 0xC68C, - 5321: 0xC68E, - 5322: 0xC68F, - 5323: 0xC690, - 5324: 0xC691, - 5325: 0xC692, - 5326: 0xC693, - 5327: 0xC696, - 5328: 0xC697, - 5329: 0xC699, - 5330: 0xC69A, - 5331: 0xC69B, - 5332: 0xC69D, - 5333: 0xC69E, - 5334: 0xC69F, - 5335: 0xC6A0, - 5336: 0xC6A1, - 5337: 0xC6A2, - 5338: 0xC6A3, - 5339: 0xC6A6, - 5340: 0xC6A8, - 5341: 0xC6AA, - 5342: 0xC6AB, - 5343: 0xC6AC, - 5344: 0xC6AD, - 5345: 0xC6AE, - 5346: 0xC6AF, - 5347: 0xC6B2, - 5348: 0xC6B3, - 5349: 0xC6B5, - 5350: 0xC6B6, - 5351: 0xC6B7, - 5352: 0xC6BB, - 5353: 0xC6BC, - 5354: 0xC6BD, - 5355: 0xC6BE, - 5356: 0xC6BF, - 5357: 0xC6C2, - 5358: 0xC6C4, - 5359: 0xC6C6, - 5360: 0xC6C7, - 5361: 0xC6C8, - 5362: 0xC6C9, - 5363: 0xC6CA, - 5364: 0xC6CB, - 5365: 0xC6CE, - 5366: 0xC6CF, - 5367: 0xC6D1, - 5368: 0xC6D2, - 5369: 0xC6D3, - 5370: 0xC6D5, - 5371: 0xC6D6, - 5372: 0xC6D7, - 5373: 0xC6D8, - 5374: 0xC6D9, - 5375: 0xC6DA, - 5376: 0xC6DB, - 5377: 0xC6DE, - 5378: 0xC6DF, - 5379: 0xC6E2, - 5380: 0xC6E3, - 5381: 0xC6E4, - 5382: 0xC6E5, - 5383: 0xC6E6, - 5384: 0xC6E7, - 5385: 0xC6EA, - 5386: 0xC6EB, - 5387: 0xC6ED, - 5388: 0xC6EE, - 5389: 0xC6EF, - 5390: 0xC6F1, - 5391: 0xC6F2, - 5392: 0xC6F3, - 5393: 0xC6F4, - 5394: 0xC6F5, - 5395: 0xC6F6, - 5396: 0xC6F7, - 5397: 0xC6FA, - 5398: 0xC6FB, - 5399: 0xC6FC, - 5400: 0xC6FE, - 5401: 0xC6FF, - 5402: 0xC700, - 5403: 0xC701, - 5404: 0xC702, - 5405: 0xC703, - 5406: 0xC706, - 5407: 0xC707, - 5408: 0xC709, - 5409: 0xC70A, - 5410: 0xC70B, - 5411: 0xC70D, - 5412: 0xC70E, - 5413: 0xC70F, - 5414: 0xC710, - 5415: 0xC711, - 5416: 0xC712, - 5417: 0xC713, - 5418: 0xC716, - 5419: 0xC718, - 5420: 0xC71A, - 5421: 0xC71B, - 5422: 0xC71C, - 5423: 0xC71D, - 5424: 0xC71E, - 5425: 0xC71F, - 5426: 0xC722, - 5427: 0xC723, - 5428: 0xC725, - 5429: 0xC726, - 5430: 0xC727, - 5431: 0xC729, - 5432: 0xC72A, - 5433: 0xC72B, - 5434: 0xC72C, - 5435: 0xC72D, - 5436: 0xC72E, - 5437: 0xC72F, - 5438: 0xC732, - 5439: 0xC734, - 5440: 0xC736, - 5441: 0xC738, - 5442: 0xC739, - 5443: 0xC73A, - 5444: 0xC73B, - 5445: 0xC73E, - 5446: 0xC73F, - 5447: 0xC741, - 5448: 0xC742, - 5449: 0xC743, - 5450: 0xC745, - 5451: 0xC746, - 5452: 0xC747, - 5453: 0xC748, - 5454: 0xC749, - 5455: 0xC74B, - 5456: 0xC74E, - 5457: 0xC750, - 5458: 0xC759, - 5459: 0xC75A, - 5460: 0xC75B, - 5461: 0xC75D, - 5462: 0xC75E, - 5463: 0xC75F, - 5464: 0xC761, - 5465: 0xC762, - 5466: 0xC763, - 5467: 0xC764, - 5468: 0xC765, - 5469: 0xC766, - 5470: 0xC767, - 5471: 0xC769, - 5472: 0xC76A, - 5473: 0xC76C, - 5474: 0xC76D, - 5475: 0xC76E, - 5476: 0xC76F, - 5477: 0xC770, - 5478: 0xC771, - 5479: 0xC772, - 5480: 0xC773, - 5481: 0xC776, - 5482: 0xC777, - 5483: 0xC779, - 5484: 0xC77A, - 5485: 0xC77B, - 5486: 0xC77F, - 5487: 0xC780, - 5488: 0xC781, - 5489: 0xC782, - 5490: 0xC786, - 5491: 0xC78B, - 5492: 0xC78C, - 5493: 0xC78D, - 5494: 0xC78F, - 5495: 0xC792, - 5496: 0xC793, - 5497: 0xC795, - 5498: 0xC799, - 5499: 0xC79B, - 5500: 0xC79C, - 5501: 0xC79D, - 5502: 0xC79E, - 5503: 0xC79F, - 5504: 0xC7A2, - 5505: 0xC7A7, - 5506: 0xC7A8, - 5507: 0xC7A9, - 5508: 0xC7AA, - 5509: 0xC7AB, - 5510: 0xC7AE, - 5511: 0xC7AF, - 5512: 0xC7B1, - 5513: 0xC7B2, - 5514: 0xC7B3, - 5515: 0xC7B5, - 5516: 0xC7B6, - 5517: 0xC7B7, - 5518: 0xC7B8, - 5519: 0xC7B9, - 5520: 0xC7BA, - 5521: 0xC7BB, - 5522: 0xC7BE, - 5523: 0xC7C2, - 5524: 0xC7C3, - 5525: 0xC7C4, - 5526: 0xC7C5, - 5527: 0xC7C6, - 5528: 0xC7C7, - 5529: 0xC7CA, - 5530: 0xC7CB, - 5531: 0xC7CD, - 5532: 0xC7CF, - 5533: 0xC7D1, - 5534: 0xC7D2, - 5535: 0xC7D3, - 5536: 0xC7D4, - 5537: 0xC7D5, - 5538: 0xC7D6, - 5539: 0xC7D7, - 5540: 0xC7D9, - 5541: 0xC7DA, - 5542: 0xC7DB, - 5543: 0xC7DC, - 5544: 0xC7DE, - 5545: 0xC7DF, - 5546: 0xC7E0, - 5547: 0xC7E1, - 5548: 0xC7E2, - 5549: 0xC7E3, - 5550: 0xC7E5, - 5551: 0xC7E6, - 5552: 0xC7E7, - 5553: 0xC7E9, - 5554: 0xC7EA, - 5555: 0xC7EB, - 5556: 0xC7ED, - 5557: 0xC7EE, - 5558: 0xC7EF, - 5559: 0xC7F0, - 5560: 0xC7F1, - 5561: 0xC7F2, - 5562: 0xC7F3, - 5563: 0xC7F4, - 5564: 0xC7F5, - 5565: 0xC7F6, - 5566: 0xC7F7, - 5567: 0xC7F8, - 5568: 0xC7F9, - 5569: 0xC7FA, - 5570: 0xC7FB, - 5571: 0xC7FC, - 5572: 0xC7FD, - 5573: 0xC7FE, - 5574: 0xC7FF, - 5575: 0xC802, - 5576: 0xC803, - 5577: 0xC805, - 5578: 0xC806, - 5579: 0xC807, - 5580: 0xC809, - 5581: 0xC80B, - 5582: 0xC80C, - 5583: 0xC80D, - 5584: 0xC80E, - 5585: 0xC80F, - 5586: 0xC812, - 5587: 0xC814, - 5588: 0xC817, - 5589: 0xC818, - 5590: 0xC819, - 5591: 0xC81A, - 5592: 0xC81B, - 5593: 0xC81E, - 5594: 0xC81F, - 5595: 0xC821, - 5596: 0xC822, - 5597: 0xC823, - 5598: 0xC825, - 5599: 0xC826, - 5600: 0xC827, - 5601: 0xC828, - 5602: 0xC829, - 5603: 0xC82A, - 5604: 0xC82B, - 5605: 0xC82E, - 5606: 0xC830, - 5607: 0xC832, - 5608: 0xC833, - 5609: 0xC834, - 5610: 0xC835, - 5611: 0xC836, - 5612: 0xC837, - 5613: 0xC839, - 5614: 0xC83A, - 5615: 0xC83B, - 5616: 0xC83D, - 5617: 0xC83E, - 5618: 0xC83F, - 5619: 0xC841, - 5620: 0xC842, - 5621: 0xC843, - 5622: 0xC844, - 5623: 0xC845, - 5624: 0xC846, - 5625: 0xC847, - 5626: 0xC84A, - 5627: 0xC84B, - 5628: 0xC84E, - 5629: 0xC84F, - 5630: 0xC850, - 5631: 0xC851, - 5632: 0xC852, - 5633: 0xC853, - 5634: 0xC855, - 5635: 0xC856, - 5636: 0xC857, - 5637: 0xC858, - 5638: 0xC859, - 5639: 0xC85A, - 5640: 0xC85B, - 5641: 0xC85C, - 5642: 0xC85D, - 5643: 0xC85E, - 5644: 0xC85F, - 5645: 0xC860, - 5646: 0xC861, - 5647: 0xC862, - 5648: 0xC863, - 5649: 0xC864, - 5650: 0xC865, - 5651: 0xC866, - 5652: 0xC867, - 5653: 0xC868, - 5654: 0xC869, - 5655: 0xC86A, - 5656: 0xC86B, - 5657: 0xC86C, - 5658: 0xC86D, - 5659: 0xC86E, - 5660: 0xC86F, - 5661: 0xC872, - 5662: 0xC873, - 5663: 0xC875, - 5664: 0xC876, - 5665: 0xC877, - 5666: 0xC879, - 5667: 0xC87B, - 5668: 0xC87C, - 5669: 0xC87D, - 5670: 0xC87E, - 5671: 0xC87F, - 5672: 0xC882, - 5673: 0xC884, - 5674: 0xC888, - 5675: 0xC889, - 5676: 0xC88A, - 5677: 0xC88E, - 5678: 0xC88F, - 5679: 0xC890, - 5680: 0xC891, - 5681: 0xC892, - 5682: 0xC893, - 5683: 0xC895, - 5684: 0xC896, - 5685: 0xC897, - 5686: 0xC898, - 5687: 0xC899, - 5688: 0xC89A, - 5689: 0xC89B, - 5690: 0xC89C, - 5691: 0xC89E, - 5692: 0xC8A0, - 5693: 0xC8A2, - 5694: 0xC8A3, - 5695: 0xC8A4, - 5696: 0xC8A5, - 5697: 0xC8A6, - 5698: 0xC8A7, - 5699: 0xC8A9, - 5700: 0xC8AA, - 5701: 0xC8AB, - 5702: 0xC8AC, - 5703: 0xC8AD, - 5704: 0xC8AE, - 5705: 0xC8AF, - 5706: 0xC8B0, - 5707: 0xC8B1, - 5708: 0xC8B2, - 5709: 0xC8B3, - 5710: 0xC8B4, - 5711: 0xC8B5, - 5712: 0xC8B6, - 5713: 0xC8B7, - 5714: 0xC8B8, - 5715: 0xC8B9, - 5716: 0xC8BA, - 5717: 0xC8BB, - 5718: 0xC8BE, - 5719: 0xC8BF, - 5720: 0xC8C0, - 5721: 0xC8C1, - 5722: 0xC8C2, - 5723: 0xC8C3, - 5724: 0xC8C5, - 5725: 0xC8C6, - 5726: 0xC8C7, - 5727: 0xC8C9, - 5728: 0xC8CA, - 5729: 0xC8CB, - 5730: 0xC8CD, - 5731: 0xC8CE, - 5732: 0xC8CF, - 5733: 0xC8D0, - 5734: 0xC8D1, - 5735: 0xC8D2, - 5736: 0xC8D3, - 5737: 0xC8D6, - 5738: 0xC8D8, - 5739: 0xC8DA, - 5740: 0xC8DB, - 5741: 0xC8DC, - 5742: 0xC8DD, - 5743: 0xC8DE, - 5744: 0xC8DF, - 5745: 0xC8E2, - 5746: 0xC8E3, - 5747: 0xC8E5, - 5748: 0xC8E6, - 5749: 0xC8E7, - 5750: 0xC8E8, - 5751: 0xC8E9, - 5752: 0xC8EA, - 5753: 0xC8EB, - 5754: 0xC8EC, - 5755: 0xC8ED, - 5756: 0xC8EE, - 5757: 0xC8EF, - 5758: 0xC8F0, - 5759: 0xC8F1, - 5760: 0xC8F2, - 5761: 0xC8F3, - 5762: 0xC8F4, - 5763: 0xC8F6, - 5764: 0xC8F7, - 5765: 0xC8F8, - 5766: 0xC8F9, - 5767: 0xC8FA, - 5768: 0xC8FB, - 5769: 0xC8FE, - 5770: 0xC8FF, - 5771: 0xC901, - 5772: 0xC902, - 5773: 0xC903, - 5774: 0xC907, - 5775: 0xC908, - 5776: 0xC909, - 5777: 0xC90A, - 5778: 0xC90B, - 5779: 0xC90E, - 5780: 0x3000, - 5781: 0x3001, - 5782: 0x3002, - 5783: 0x00B7, - 5784: 0x2025, - 5785: 0x2026, - 5786: 0x00A8, - 5787: 0x3003, - 5788: 0x00AD, - 5789: 0x2015, - 5790: 0x2225, - 5791: 0xFF3C, - 5792: 0x223C, - 5793: 0x2018, - 5794: 0x2019, - 5795: 0x201C, - 5796: 0x201D, - 5797: 0x3014, - 5798: 0x3015, - 5799: 0x3008, - 5800: 0x3009, - 5801: 0x300A, - 5802: 0x300B, - 5803: 0x300C, - 5804: 0x300D, - 5805: 0x300E, - 5806: 0x300F, - 5807: 0x3010, - 5808: 0x3011, - 5809: 0x00B1, - 5810: 0x00D7, - 5811: 0x00F7, - 5812: 0x2260, - 5813: 0x2264, - 5814: 0x2265, - 5815: 0x221E, - 5816: 0x2234, - 5817: 0x00B0, - 5818: 0x2032, - 5819: 0x2033, - 5820: 0x2103, - 5821: 0x212B, - 5822: 0xFFE0, - 5823: 0xFFE1, - 5824: 0xFFE5, - 5825: 0x2642, - 5826: 0x2640, - 5827: 0x2220, - 5828: 0x22A5, - 5829: 0x2312, - 5830: 0x2202, - 5831: 0x2207, - 5832: 0x2261, - 5833: 0x2252, - 5834: 0x00A7, - 5835: 0x203B, - 5836: 0x2606, - 5837: 0x2605, - 5838: 0x25CB, - 5839: 0x25CF, - 5840: 0x25CE, - 5841: 0x25C7, - 5842: 0x25C6, - 5843: 0x25A1, - 5844: 0x25A0, - 5845: 0x25B3, - 5846: 0x25B2, - 5847: 0x25BD, - 5848: 0x25BC, - 5849: 0x2192, - 5850: 0x2190, - 5851: 0x2191, - 5852: 0x2193, - 5853: 0x2194, - 5854: 0x3013, - 5855: 0x226A, - 5856: 0x226B, - 5857: 0x221A, - 5858: 0x223D, - 5859: 0x221D, - 5860: 0x2235, - 5861: 0x222B, - 5862: 0x222C, - 5863: 0x2208, - 5864: 0x220B, - 5865: 0x2286, - 5866: 0x2287, - 5867: 0x2282, - 5868: 0x2283, - 5869: 0x222A, - 5870: 0x2229, - 5871: 0x2227, - 5872: 0x2228, - 5873: 0xFFE2, - 5874: 0xC910, - 5875: 0xC912, - 5876: 0xC913, - 5877: 0xC914, - 5878: 0xC915, - 5879: 0xC916, - 5880: 0xC917, - 5881: 0xC919, - 5882: 0xC91A, - 5883: 0xC91B, - 5884: 0xC91C, - 5885: 0xC91D, - 5886: 0xC91E, - 5887: 0xC91F, - 5888: 0xC920, - 5889: 0xC921, - 5890: 0xC922, - 5891: 0xC923, - 5892: 0xC924, - 5893: 0xC925, - 5894: 0xC926, - 5895: 0xC927, - 5896: 0xC928, - 5897: 0xC929, - 5898: 0xC92A, - 5899: 0xC92B, - 5900: 0xC92D, - 5901: 0xC92E, - 5902: 0xC92F, - 5903: 0xC930, - 5904: 0xC931, - 5905: 0xC932, - 5906: 0xC933, - 5907: 0xC935, - 5908: 0xC936, - 5909: 0xC937, - 5910: 0xC938, - 5911: 0xC939, - 5912: 0xC93A, - 5913: 0xC93B, - 5914: 0xC93C, - 5915: 0xC93D, - 5916: 0xC93E, - 5917: 0xC93F, - 5918: 0xC940, - 5919: 0xC941, - 5920: 0xC942, - 5921: 0xC943, - 5922: 0xC944, - 5923: 0xC945, - 5924: 0xC946, - 5925: 0xC947, - 5926: 0xC948, - 5927: 0xC949, - 5928: 0xC94A, - 5929: 0xC94B, - 5930: 0xC94C, - 5931: 0xC94D, - 5932: 0xC94E, - 5933: 0xC94F, - 5934: 0xC952, - 5935: 0xC953, - 5936: 0xC955, - 5937: 0xC956, - 5938: 0xC957, - 5939: 0xC959, - 5940: 0xC95A, - 5941: 0xC95B, - 5942: 0xC95C, - 5943: 0xC95D, - 5944: 0xC95E, - 5945: 0xC95F, - 5946: 0xC962, - 5947: 0xC964, - 5948: 0xC965, - 5949: 0xC966, - 5950: 0xC967, - 5951: 0xC968, - 5952: 0xC969, - 5953: 0xC96A, - 5954: 0xC96B, - 5955: 0xC96D, - 5956: 0xC96E, - 5957: 0xC96F, - 5958: 0x21D2, - 5959: 0x21D4, - 5960: 0x2200, - 5961: 0x2203, - 5962: 0x00B4, - 5963: 0xFF5E, - 5964: 0x02C7, - 5965: 0x02D8, - 5966: 0x02DD, - 5967: 0x02DA, - 5968: 0x02D9, - 5969: 0x00B8, - 5970: 0x02DB, - 5971: 0x00A1, - 5972: 0x00BF, - 5973: 0x02D0, - 5974: 0x222E, - 5975: 0x2211, - 5976: 0x220F, - 5977: 0x00A4, - 5978: 0x2109, - 5979: 0x2030, - 5980: 0x25C1, - 5981: 0x25C0, - 5982: 0x25B7, - 5983: 0x25B6, - 5984: 0x2664, - 5985: 0x2660, - 5986: 0x2661, - 5987: 0x2665, - 5988: 0x2667, - 5989: 0x2663, - 5990: 0x2299, - 5991: 0x25C8, - 5992: 0x25A3, - 5993: 0x25D0, - 5994: 0x25D1, - 5995: 0x2592, - 5996: 0x25A4, - 5997: 0x25A5, - 5998: 0x25A8, - 5999: 0x25A7, - 6000: 0x25A6, - 6001: 0x25A9, - 6002: 0x2668, - 6003: 0x260F, - 6004: 0x260E, - 6005: 0x261C, - 6006: 0x261E, - 6007: 0x00B6, - 6008: 0x2020, - 6009: 0x2021, - 6010: 0x2195, - 6011: 0x2197, - 6012: 0x2199, - 6013: 0x2196, - 6014: 0x2198, - 6015: 0x266D, - 6016: 0x2669, - 6017: 0x266A, - 6018: 0x266C, - 6019: 0x327F, - 6020: 0x321C, - 6021: 0x2116, - 6022: 0x33C7, - 6023: 0x2122, - 6024: 0x33C2, - 6025: 0x33D8, - 6026: 0x2121, - 6027: 0x20AC, - 6028: 0x00AE, - 6052: 0xC971, - 6053: 0xC972, - 6054: 0xC973, - 6055: 0xC975, - 6056: 0xC976, - 6057: 0xC977, - 6058: 0xC978, - 6059: 0xC979, - 6060: 0xC97A, - 6061: 0xC97B, - 6062: 0xC97D, - 6063: 0xC97E, - 6064: 0xC97F, - 6065: 0xC980, - 6066: 0xC981, - 6067: 0xC982, - 6068: 0xC983, - 6069: 0xC984, - 6070: 0xC985, - 6071: 0xC986, - 6072: 0xC987, - 6073: 0xC98A, - 6074: 0xC98B, - 6075: 0xC98D, - 6076: 0xC98E, - 6077: 0xC98F, - 6078: 0xC991, - 6079: 0xC992, - 6080: 0xC993, - 6081: 0xC994, - 6082: 0xC995, - 6083: 0xC996, - 6084: 0xC997, - 6085: 0xC99A, - 6086: 0xC99C, - 6087: 0xC99E, - 6088: 0xC99F, - 6089: 0xC9A0, - 6090: 0xC9A1, - 6091: 0xC9A2, - 6092: 0xC9A3, - 6093: 0xC9A4, - 6094: 0xC9A5, - 6095: 0xC9A6, - 6096: 0xC9A7, - 6097: 0xC9A8, - 6098: 0xC9A9, - 6099: 0xC9AA, - 6100: 0xC9AB, - 6101: 0xC9AC, - 6102: 0xC9AD, - 6103: 0xC9AE, - 6104: 0xC9AF, - 6105: 0xC9B0, - 6106: 0xC9B1, - 6107: 0xC9B2, - 6108: 0xC9B3, - 6109: 0xC9B4, - 6110: 0xC9B5, - 6111: 0xC9B6, - 6112: 0xC9B7, - 6113: 0xC9B8, - 6114: 0xC9B9, - 6115: 0xC9BA, - 6116: 0xC9BB, - 6117: 0xC9BC, - 6118: 0xC9BD, - 6119: 0xC9BE, - 6120: 0xC9BF, - 6121: 0xC9C2, - 6122: 0xC9C3, - 6123: 0xC9C5, - 6124: 0xC9C6, - 6125: 0xC9C9, - 6126: 0xC9CB, - 6127: 0xC9CC, - 6128: 0xC9CD, - 6129: 0xC9CE, - 6130: 0xC9CF, - 6131: 0xC9D2, - 6132: 0xC9D4, - 6133: 0xC9D7, - 6134: 0xC9D8, - 6135: 0xC9DB, - 6136: 0xFF01, - 6137: 0xFF02, - 6138: 0xFF03, - 6139: 0xFF04, - 6140: 0xFF05, - 6141: 0xFF06, - 6142: 0xFF07, - 6143: 0xFF08, - 6144: 0xFF09, - 6145: 0xFF0A, - 6146: 0xFF0B, - 6147: 0xFF0C, - 6148: 0xFF0D, - 6149: 0xFF0E, - 6150: 0xFF0F, - 6151: 0xFF10, - 6152: 0xFF11, - 6153: 0xFF12, - 6154: 0xFF13, - 6155: 0xFF14, - 6156: 0xFF15, - 6157: 0xFF16, - 6158: 0xFF17, - 6159: 0xFF18, - 6160: 0xFF19, - 6161: 0xFF1A, - 6162: 0xFF1B, - 6163: 0xFF1C, - 6164: 0xFF1D, - 6165: 0xFF1E, - 6166: 0xFF1F, - 6167: 0xFF20, - 6168: 0xFF21, - 6169: 0xFF22, - 6170: 0xFF23, - 6171: 0xFF24, - 6172: 0xFF25, - 6173: 0xFF26, - 6174: 0xFF27, - 6175: 0xFF28, - 6176: 0xFF29, - 6177: 0xFF2A, - 6178: 0xFF2B, - 6179: 0xFF2C, - 6180: 0xFF2D, - 6181: 0xFF2E, - 6182: 0xFF2F, - 6183: 0xFF30, - 6184: 0xFF31, - 6185: 0xFF32, - 6186: 0xFF33, - 6187: 0xFF34, - 6188: 0xFF35, - 6189: 0xFF36, - 6190: 0xFF37, - 6191: 0xFF38, - 6192: 0xFF39, - 6193: 0xFF3A, - 6194: 0xFF3B, - 6195: 0xFFE6, - 6196: 0xFF3D, - 6197: 0xFF3E, - 6198: 0xFF3F, - 6199: 0xFF40, - 6200: 0xFF41, - 6201: 0xFF42, - 6202: 0xFF43, - 6203: 0xFF44, - 6204: 0xFF45, - 6205: 0xFF46, - 6206: 0xFF47, - 6207: 0xFF48, - 6208: 0xFF49, - 6209: 0xFF4A, - 6210: 0xFF4B, - 6211: 0xFF4C, - 6212: 0xFF4D, - 6213: 0xFF4E, - 6214: 0xFF4F, - 6215: 0xFF50, - 6216: 0xFF51, - 6217: 0xFF52, - 6218: 0xFF53, - 6219: 0xFF54, - 6220: 0xFF55, - 6221: 0xFF56, - 6222: 0xFF57, - 6223: 0xFF58, - 6224: 0xFF59, - 6225: 0xFF5A, - 6226: 0xFF5B, - 6227: 0xFF5C, - 6228: 0xFF5D, - 6229: 0xFFE3, - 6230: 0xC9DE, - 6231: 0xC9DF, - 6232: 0xC9E1, - 6233: 0xC9E3, - 6234: 0xC9E5, - 6235: 0xC9E6, - 6236: 0xC9E8, - 6237: 0xC9E9, - 6238: 0xC9EA, - 6239: 0xC9EB, - 6240: 0xC9EE, - 6241: 0xC9F2, - 6242: 0xC9F3, - 6243: 0xC9F4, - 6244: 0xC9F5, - 6245: 0xC9F6, - 6246: 0xC9F7, - 6247: 0xC9FA, - 6248: 0xC9FB, - 6249: 0xC9FD, - 6250: 0xC9FE, - 6251: 0xC9FF, - 6252: 0xCA01, - 6253: 0xCA02, - 6254: 0xCA03, - 6255: 0xCA04, - 6256: 0xCA05, - 6257: 0xCA06, - 6258: 0xCA07, - 6259: 0xCA0A, - 6260: 0xCA0E, - 6261: 0xCA0F, - 6262: 0xCA10, - 6263: 0xCA11, - 6264: 0xCA12, - 6265: 0xCA13, - 6266: 0xCA15, - 6267: 0xCA16, - 6268: 0xCA17, - 6269: 0xCA19, - 6270: 0xCA1A, - 6271: 0xCA1B, - 6272: 0xCA1C, - 6273: 0xCA1D, - 6274: 0xCA1E, - 6275: 0xCA1F, - 6276: 0xCA20, - 6277: 0xCA21, - 6278: 0xCA22, - 6279: 0xCA23, - 6280: 0xCA24, - 6281: 0xCA25, - 6282: 0xCA26, - 6283: 0xCA27, - 6284: 0xCA28, - 6285: 0xCA2A, - 6286: 0xCA2B, - 6287: 0xCA2C, - 6288: 0xCA2D, - 6289: 0xCA2E, - 6290: 0xCA2F, - 6291: 0xCA30, - 6292: 0xCA31, - 6293: 0xCA32, - 6294: 0xCA33, - 6295: 0xCA34, - 6296: 0xCA35, - 6297: 0xCA36, - 6298: 0xCA37, - 6299: 0xCA38, - 6300: 0xCA39, - 6301: 0xCA3A, - 6302: 0xCA3B, - 6303: 0xCA3C, - 6304: 0xCA3D, - 6305: 0xCA3E, - 6306: 0xCA3F, - 6307: 0xCA40, - 6308: 0xCA41, - 6309: 0xCA42, - 6310: 0xCA43, - 6311: 0xCA44, - 6312: 0xCA45, - 6313: 0xCA46, - 6314: 0x3131, - 6315: 0x3132, - 6316: 0x3133, - 6317: 0x3134, - 6318: 0x3135, - 6319: 0x3136, - 6320: 0x3137, - 6321: 0x3138, - 6322: 0x3139, - 6323: 0x313A, - 6324: 0x313B, - 6325: 0x313C, - 6326: 0x313D, - 6327: 0x313E, - 6328: 0x313F, - 6329: 0x3140, - 6330: 0x3141, - 6331: 0x3142, - 6332: 0x3143, - 6333: 0x3144, - 6334: 0x3145, - 6335: 0x3146, - 6336: 0x3147, - 6337: 0x3148, - 6338: 0x3149, - 6339: 0x314A, - 6340: 0x314B, - 6341: 0x314C, - 6342: 0x314D, - 6343: 0x314E, - 6344: 0x314F, - 6345: 0x3150, - 6346: 0x3151, - 6347: 0x3152, - 6348: 0x3153, - 6349: 0x3154, - 6350: 0x3155, - 6351: 0x3156, - 6352: 0x3157, - 6353: 0x3158, - 6354: 0x3159, - 6355: 0x315A, - 6356: 0x315B, - 6357: 0x315C, - 6358: 0x315D, - 6359: 0x315E, - 6360: 0x315F, - 6361: 0x3160, - 6362: 0x3161, - 6363: 0x3162, - 6364: 0x3163, - 6365: 0x3164, - 6366: 0x3165, - 6367: 0x3166, - 6368: 0x3167, - 6369: 0x3168, - 6370: 0x3169, - 6371: 0x316A, - 6372: 0x316B, - 6373: 0x316C, - 6374: 0x316D, - 6375: 0x316E, - 6376: 0x316F, - 6377: 0x3170, - 6378: 0x3171, - 6379: 0x3172, - 6380: 0x3173, - 6381: 0x3174, - 6382: 0x3175, - 6383: 0x3176, - 6384: 0x3177, - 6385: 0x3178, - 6386: 0x3179, - 6387: 0x317A, - 6388: 0x317B, - 6389: 0x317C, - 6390: 0x317D, - 6391: 0x317E, - 6392: 0x317F, - 6393: 0x3180, - 6394: 0x3181, - 6395: 0x3182, - 6396: 0x3183, - 6397: 0x3184, - 6398: 0x3185, - 6399: 0x3186, - 6400: 0x3187, - 6401: 0x3188, - 6402: 0x3189, - 6403: 0x318A, - 6404: 0x318B, - 6405: 0x318C, - 6406: 0x318D, - 6407: 0x318E, - 6408: 0xCA47, - 6409: 0xCA48, - 6410: 0xCA49, - 6411: 0xCA4A, - 6412: 0xCA4B, - 6413: 0xCA4E, - 6414: 0xCA4F, - 6415: 0xCA51, - 6416: 0xCA52, - 6417: 0xCA53, - 6418: 0xCA55, - 6419: 0xCA56, - 6420: 0xCA57, - 6421: 0xCA58, - 6422: 0xCA59, - 6423: 0xCA5A, - 6424: 0xCA5B, - 6425: 0xCA5E, - 6426: 0xCA62, - 6427: 0xCA63, - 6428: 0xCA64, - 6429: 0xCA65, - 6430: 0xCA66, - 6431: 0xCA67, - 6432: 0xCA69, - 6433: 0xCA6A, - 6434: 0xCA6B, - 6435: 0xCA6C, - 6436: 0xCA6D, - 6437: 0xCA6E, - 6438: 0xCA6F, - 6439: 0xCA70, - 6440: 0xCA71, - 6441: 0xCA72, - 6442: 0xCA73, - 6443: 0xCA74, - 6444: 0xCA75, - 6445: 0xCA76, - 6446: 0xCA77, - 6447: 0xCA78, - 6448: 0xCA79, - 6449: 0xCA7A, - 6450: 0xCA7B, - 6451: 0xCA7C, - 6452: 0xCA7E, - 6453: 0xCA7F, - 6454: 0xCA80, - 6455: 0xCA81, - 6456: 0xCA82, - 6457: 0xCA83, - 6458: 0xCA85, - 6459: 0xCA86, - 6460: 0xCA87, - 6461: 0xCA88, - 6462: 0xCA89, - 6463: 0xCA8A, - 6464: 0xCA8B, - 6465: 0xCA8C, - 6466: 0xCA8D, - 6467: 0xCA8E, - 6468: 0xCA8F, - 6469: 0xCA90, - 6470: 0xCA91, - 6471: 0xCA92, - 6472: 0xCA93, - 6473: 0xCA94, - 6474: 0xCA95, - 6475: 0xCA96, - 6476: 0xCA97, - 6477: 0xCA99, - 6478: 0xCA9A, - 6479: 0xCA9B, - 6480: 0xCA9C, - 6481: 0xCA9D, - 6482: 0xCA9E, - 6483: 0xCA9F, - 6484: 0xCAA0, - 6485: 0xCAA1, - 6486: 0xCAA2, - 6487: 0xCAA3, - 6488: 0xCAA4, - 6489: 0xCAA5, - 6490: 0xCAA6, - 6491: 0xCAA7, - 6492: 0x2170, - 6493: 0x2171, - 6494: 0x2172, - 6495: 0x2173, - 6496: 0x2174, - 6497: 0x2175, - 6498: 0x2176, - 6499: 0x2177, - 6500: 0x2178, - 6501: 0x2179, - 6507: 0x2160, - 6508: 0x2161, - 6509: 0x2162, - 6510: 0x2163, - 6511: 0x2164, - 6512: 0x2165, - 6513: 0x2166, - 6514: 0x2167, - 6515: 0x2168, - 6516: 0x2169, - 6524: 0x0391, - 6525: 0x0392, - 6526: 0x0393, - 6527: 0x0394, - 6528: 0x0395, - 6529: 0x0396, - 6530: 0x0397, - 6531: 0x0398, - 6532: 0x0399, - 6533: 0x039A, - 6534: 0x039B, - 6535: 0x039C, - 6536: 0x039D, - 6537: 0x039E, - 6538: 0x039F, - 6539: 0x03A0, - 6540: 0x03A1, - 6541: 0x03A3, - 6542: 0x03A4, - 6543: 0x03A5, - 6544: 0x03A6, - 6545: 0x03A7, - 6546: 0x03A8, - 6547: 0x03A9, - 6556: 0x03B1, - 6557: 0x03B2, - 6558: 0x03B3, - 6559: 0x03B4, - 6560: 0x03B5, - 6561: 0x03B6, - 6562: 0x03B7, - 6563: 0x03B8, - 6564: 0x03B9, - 6565: 0x03BA, - 6566: 0x03BB, - 6567: 0x03BC, - 6568: 0x03BD, - 6569: 0x03BE, - 6570: 0x03BF, - 6571: 0x03C0, - 6572: 0x03C1, - 6573: 0x03C3, - 6574: 0x03C4, - 6575: 0x03C5, - 6576: 0x03C6, - 6577: 0x03C7, - 6578: 0x03C8, - 6579: 0x03C9, - 6586: 0xCAA8, - 6587: 0xCAA9, - 6588: 0xCAAA, - 6589: 0xCAAB, - 6590: 0xCAAC, - 6591: 0xCAAD, - 6592: 0xCAAE, - 6593: 0xCAAF, - 6594: 0xCAB0, - 6595: 0xCAB1, - 6596: 0xCAB2, - 6597: 0xCAB3, - 6598: 0xCAB4, - 6599: 0xCAB5, - 6600: 0xCAB6, - 6601: 0xCAB7, - 6602: 0xCAB8, - 6603: 0xCAB9, - 6604: 0xCABA, - 6605: 0xCABB, - 6606: 0xCABE, - 6607: 0xCABF, - 6608: 0xCAC1, - 6609: 0xCAC2, - 6610: 0xCAC3, - 6611: 0xCAC5, - 6612: 0xCAC6, - 6613: 0xCAC7, - 6614: 0xCAC8, - 6615: 0xCAC9, - 6616: 0xCACA, - 6617: 0xCACB, - 6618: 0xCACE, - 6619: 0xCAD0, - 6620: 0xCAD2, - 6621: 0xCAD4, - 6622: 0xCAD5, - 6623: 0xCAD6, - 6624: 0xCAD7, - 6625: 0xCADA, - 6626: 0xCADB, - 6627: 0xCADC, - 6628: 0xCADD, - 6629: 0xCADE, - 6630: 0xCADF, - 6631: 0xCAE1, - 6632: 0xCAE2, - 6633: 0xCAE3, - 6634: 0xCAE4, - 6635: 0xCAE5, - 6636: 0xCAE6, - 6637: 0xCAE7, - 6638: 0xCAE8, - 6639: 0xCAE9, - 6640: 0xCAEA, - 6641: 0xCAEB, - 6642: 0xCAED, - 6643: 0xCAEE, - 6644: 0xCAEF, - 6645: 0xCAF0, - 6646: 0xCAF1, - 6647: 0xCAF2, - 6648: 0xCAF3, - 6649: 0xCAF5, - 6650: 0xCAF6, - 6651: 0xCAF7, - 6652: 0xCAF8, - 6653: 0xCAF9, - 6654: 0xCAFA, - 6655: 0xCAFB, - 6656: 0xCAFC, - 6657: 0xCAFD, - 6658: 0xCAFE, - 6659: 0xCAFF, - 6660: 0xCB00, - 6661: 0xCB01, - 6662: 0xCB02, - 6663: 0xCB03, - 6664: 0xCB04, - 6665: 0xCB05, - 6666: 0xCB06, - 6667: 0xCB07, - 6668: 0xCB09, - 6669: 0xCB0A, - 6670: 0x2500, - 6671: 0x2502, - 6672: 0x250C, - 6673: 0x2510, - 6674: 0x2518, - 6675: 0x2514, - 6676: 0x251C, - 6677: 0x252C, - 6678: 0x2524, - 6679: 0x2534, - 6680: 0x253C, - 6681: 0x2501, - 6682: 0x2503, - 6683: 0x250F, - 6684: 0x2513, - 6685: 0x251B, - 6686: 0x2517, - 6687: 0x2523, - 6688: 0x2533, - 6689: 0x252B, - 6690: 0x253B, - 6691: 0x254B, - 6692: 0x2520, - 6693: 0x252F, - 6694: 0x2528, - 6695: 0x2537, - 6696: 0x253F, - 6697: 0x251D, - 6698: 0x2530, - 6699: 0x2525, - 6700: 0x2538, - 6701: 0x2542, - 6702: 0x2512, - 6703: 0x2511, - 6704: 0x251A, - 6705: 0x2519, - 6706: 0x2516, - 6707: 0x2515, - 6708: 0x250E, - 6709: 0x250D, - 6710: 0x251E, - 6711: 0x251F, - 6712: 0x2521, - 6713: 0x2522, - 6714: 0x2526, - 6715: 0x2527, - 6716: 0x2529, - 6717: 0x252A, - 6718: 0x252D, - 6719: 0x252E, - 6720: 0x2531, - 6721: 0x2532, - 6722: 0x2535, - 6723: 0x2536, - 6724: 0x2539, - 6725: 0x253A, - 6726: 0x253D, - 6727: 0x253E, - 6728: 0x2540, - 6729: 0x2541, - 6730: 0x2543, - 6731: 0x2544, - 6732: 0x2545, - 6733: 0x2546, - 6734: 0x2547, - 6735: 0x2548, - 6736: 0x2549, - 6737: 0x254A, - 6764: 0xCB0B, - 6765: 0xCB0C, - 6766: 0xCB0D, - 6767: 0xCB0E, - 6768: 0xCB0F, - 6769: 0xCB11, - 6770: 0xCB12, - 6771: 0xCB13, - 6772: 0xCB15, - 6773: 0xCB16, - 6774: 0xCB17, - 6775: 0xCB19, - 6776: 0xCB1A, - 6777: 0xCB1B, - 6778: 0xCB1C, - 6779: 0xCB1D, - 6780: 0xCB1E, - 6781: 0xCB1F, - 6782: 0xCB22, - 6783: 0xCB23, - 6784: 0xCB24, - 6785: 0xCB25, - 6786: 0xCB26, - 6787: 0xCB27, - 6788: 0xCB28, - 6789: 0xCB29, - 6790: 0xCB2A, - 6791: 0xCB2B, - 6792: 0xCB2C, - 6793: 0xCB2D, - 6794: 0xCB2E, - 6795: 0xCB2F, - 6796: 0xCB30, - 6797: 0xCB31, - 6798: 0xCB32, - 6799: 0xCB33, - 6800: 0xCB34, - 6801: 0xCB35, - 6802: 0xCB36, - 6803: 0xCB37, - 6804: 0xCB38, - 6805: 0xCB39, - 6806: 0xCB3A, - 6807: 0xCB3B, - 6808: 0xCB3C, - 6809: 0xCB3D, - 6810: 0xCB3E, - 6811: 0xCB3F, - 6812: 0xCB40, - 6813: 0xCB42, - 6814: 0xCB43, - 6815: 0xCB44, - 6816: 0xCB45, - 6817: 0xCB46, - 6818: 0xCB47, - 6819: 0xCB4A, - 6820: 0xCB4B, - 6821: 0xCB4D, - 6822: 0xCB4E, - 6823: 0xCB4F, - 6824: 0xCB51, - 6825: 0xCB52, - 6826: 0xCB53, - 6827: 0xCB54, - 6828: 0xCB55, - 6829: 0xCB56, - 6830: 0xCB57, - 6831: 0xCB5A, - 6832: 0xCB5B, - 6833: 0xCB5C, - 6834: 0xCB5E, - 6835: 0xCB5F, - 6836: 0xCB60, - 6837: 0xCB61, - 6838: 0xCB62, - 6839: 0xCB63, - 6840: 0xCB65, - 6841: 0xCB66, - 6842: 0xCB67, - 6843: 0xCB68, - 6844: 0xCB69, - 6845: 0xCB6A, - 6846: 0xCB6B, - 6847: 0xCB6C, - 6848: 0x3395, - 6849: 0x3396, - 6850: 0x3397, - 6851: 0x2113, - 6852: 0x3398, - 6853: 0x33C4, - 6854: 0x33A3, - 6855: 0x33A4, - 6856: 0x33A5, - 6857: 0x33A6, - 6858: 0x3399, - 6859: 0x339A, - 6860: 0x339B, - 6861: 0x339C, - 6862: 0x339D, - 6863: 0x339E, - 6864: 0x339F, - 6865: 0x33A0, - 6866: 0x33A1, - 6867: 0x33A2, - 6868: 0x33CA, - 6869: 0x338D, - 6870: 0x338E, - 6871: 0x338F, - 6872: 0x33CF, - 6873: 0x3388, - 6874: 0x3389, - 6875: 0x33C8, - 6876: 0x33A7, - 6877: 0x33A8, - 6878: 0x33B0, - 6879: 0x33B1, - 6880: 0x33B2, - 6881: 0x33B3, - 6882: 0x33B4, - 6883: 0x33B5, - 6884: 0x33B6, - 6885: 0x33B7, - 6886: 0x33B8, - 6887: 0x33B9, - 6888: 0x3380, - 6889: 0x3381, - 6890: 0x3382, - 6891: 0x3383, - 6892: 0x3384, - 6893: 0x33BA, - 6894: 0x33BB, - 6895: 0x33BC, - 6896: 0x33BD, - 6897: 0x33BE, - 6898: 0x33BF, - 6899: 0x3390, - 6900: 0x3391, - 6901: 0x3392, - 6902: 0x3393, - 6903: 0x3394, - 6904: 0x2126, - 6905: 0x33C0, - 6906: 0x33C1, - 6907: 0x338A, - 6908: 0x338B, - 6909: 0x338C, - 6910: 0x33D6, - 6911: 0x33C5, - 6912: 0x33AD, - 6913: 0x33AE, - 6914: 0x33AF, - 6915: 0x33DB, - 6916: 0x33A9, - 6917: 0x33AA, - 6918: 0x33AB, - 6919: 0x33AC, - 6920: 0x33DD, - 6921: 0x33D0, - 6922: 0x33D3, - 6923: 0x33C3, - 6924: 0x33C9, - 6925: 0x33DC, - 6926: 0x33C6, - 6942: 0xCB6D, - 6943: 0xCB6E, - 6944: 0xCB6F, - 6945: 0xCB70, - 6946: 0xCB71, - 6947: 0xCB72, - 6948: 0xCB73, - 6949: 0xCB74, - 6950: 0xCB75, - 6951: 0xCB76, - 6952: 0xCB77, - 6953: 0xCB7A, - 6954: 0xCB7B, - 6955: 0xCB7C, - 6956: 0xCB7D, - 6957: 0xCB7E, - 6958: 0xCB7F, - 6959: 0xCB80, - 6960: 0xCB81, - 6961: 0xCB82, - 6962: 0xCB83, - 6963: 0xCB84, - 6964: 0xCB85, - 6965: 0xCB86, - 6966: 0xCB87, - 6967: 0xCB88, - 6968: 0xCB89, - 6969: 0xCB8A, - 6970: 0xCB8B, - 6971: 0xCB8C, - 6972: 0xCB8D, - 6973: 0xCB8E, - 6974: 0xCB8F, - 6975: 0xCB90, - 6976: 0xCB91, - 6977: 0xCB92, - 6978: 0xCB93, - 6979: 0xCB94, - 6980: 0xCB95, - 6981: 0xCB96, - 6982: 0xCB97, - 6983: 0xCB98, - 6984: 0xCB99, - 6985: 0xCB9A, - 6986: 0xCB9B, - 6987: 0xCB9D, - 6988: 0xCB9E, - 6989: 0xCB9F, - 6990: 0xCBA0, - 6991: 0xCBA1, - 6992: 0xCBA2, - 6993: 0xCBA3, - 6994: 0xCBA4, - 6995: 0xCBA5, - 6996: 0xCBA6, - 6997: 0xCBA7, - 6998: 0xCBA8, - 6999: 0xCBA9, - 7000: 0xCBAA, - 7001: 0xCBAB, - 7002: 0xCBAC, - 7003: 0xCBAD, - 7004: 0xCBAE, - 7005: 0xCBAF, - 7006: 0xCBB0, - 7007: 0xCBB1, - 7008: 0xCBB2, - 7009: 0xCBB3, - 7010: 0xCBB4, - 7011: 0xCBB5, - 7012: 0xCBB6, - 7013: 0xCBB7, - 7014: 0xCBB9, - 7015: 0xCBBA, - 7016: 0xCBBB, - 7017: 0xCBBC, - 7018: 0xCBBD, - 7019: 0xCBBE, - 7020: 0xCBBF, - 7021: 0xCBC0, - 7022: 0xCBC1, - 7023: 0xCBC2, - 7024: 0xCBC3, - 7025: 0xCBC4, - 7026: 0x00C6, - 7027: 0x00D0, - 7028: 0x00AA, - 7029: 0x0126, - 7031: 0x0132, - 7033: 0x013F, - 7034: 0x0141, - 7035: 0x00D8, - 7036: 0x0152, - 7037: 0x00BA, - 7038: 0x00DE, - 7039: 0x0166, - 7040: 0x014A, - 7042: 0x3260, - 7043: 0x3261, - 7044: 0x3262, - 7045: 0x3263, - 7046: 0x3264, - 7047: 0x3265, - 7048: 0x3266, - 7049: 0x3267, - 7050: 0x3268, - 7051: 0x3269, - 7052: 0x326A, - 7053: 0x326B, - 7054: 0x326C, - 7055: 0x326D, - 7056: 0x326E, - 7057: 0x326F, - 7058: 0x3270, - 7059: 0x3271, - 7060: 0x3272, - 7061: 0x3273, - 7062: 0x3274, - 7063: 0x3275, - 7064: 0x3276, - 7065: 0x3277, - 7066: 0x3278, - 7067: 0x3279, - 7068: 0x327A, - 7069: 0x327B, - 7070: 0x24D0, - 7071: 0x24D1, - 7072: 0x24D2, - 7073: 0x24D3, - 7074: 0x24D4, - 7075: 0x24D5, - 7076: 0x24D6, - 7077: 0x24D7, - 7078: 0x24D8, - 7079: 0x24D9, - 7080: 0x24DA, - 7081: 0x24DB, - 7082: 0x24DC, - 7083: 0x24DD, - 7084: 0x24DE, - 7085: 0x24DF, - 7086: 0x24E0, - 7087: 0x24E1, - 7088: 0x24E2, - 7089: 0x24E3, - 7090: 0x24E4, - 7091: 0x24E5, - 7092: 0x24E6, - 7093: 0x24E7, - 7094: 0x24E8, - 7095: 0x24E9, - 7096: 0x2460, - 7097: 0x2461, - 7098: 0x2462, - 7099: 0x2463, - 7100: 0x2464, - 7101: 0x2465, - 7102: 0x2466, - 7103: 0x2467, - 7104: 0x2468, - 7105: 0x2469, - 7106: 0x246A, - 7107: 0x246B, - 7108: 0x246C, - 7109: 0x246D, - 7110: 0x246E, - 7111: 0x00BD, - 7112: 0x2153, - 7113: 0x2154, - 7114: 0x00BC, - 7115: 0x00BE, - 7116: 0x215B, - 7117: 0x215C, - 7118: 0x215D, - 7119: 0x215E, - 7120: 0xCBC5, - 7121: 0xCBC6, - 7122: 0xCBC7, - 7123: 0xCBC8, - 7124: 0xCBC9, - 7125: 0xCBCA, - 7126: 0xCBCB, - 7127: 0xCBCC, - 7128: 0xCBCD, - 7129: 0xCBCE, - 7130: 0xCBCF, - 7131: 0xCBD0, - 7132: 0xCBD1, - 7133: 0xCBD2, - 7134: 0xCBD3, - 7135: 0xCBD5, - 7136: 0xCBD6, - 7137: 0xCBD7, - 7138: 0xCBD8, - 7139: 0xCBD9, - 7140: 0xCBDA, - 7141: 0xCBDB, - 7142: 0xCBDC, - 7143: 0xCBDD, - 7144: 0xCBDE, - 7145: 0xCBDF, - 7146: 0xCBE0, - 7147: 0xCBE1, - 7148: 0xCBE2, - 7149: 0xCBE3, - 7150: 0xCBE5, - 7151: 0xCBE6, - 7152: 0xCBE8, - 7153: 0xCBEA, - 7154: 0xCBEB, - 7155: 0xCBEC, - 7156: 0xCBED, - 7157: 0xCBEE, - 7158: 0xCBEF, - 7159: 0xCBF0, - 7160: 0xCBF1, - 7161: 0xCBF2, - 7162: 0xCBF3, - 7163: 0xCBF4, - 7164: 0xCBF5, - 7165: 0xCBF6, - 7166: 0xCBF7, - 7167: 0xCBF8, - 7168: 0xCBF9, - 7169: 0xCBFA, - 7170: 0xCBFB, - 7171: 0xCBFC, - 7172: 0xCBFD, - 7173: 0xCBFE, - 7174: 0xCBFF, - 7175: 0xCC00, - 7176: 0xCC01, - 7177: 0xCC02, - 7178: 0xCC03, - 7179: 0xCC04, - 7180: 0xCC05, - 7181: 0xCC06, - 7182: 0xCC07, - 7183: 0xCC08, - 7184: 0xCC09, - 7185: 0xCC0A, - 7186: 0xCC0B, - 7187: 0xCC0E, - 7188: 0xCC0F, - 7189: 0xCC11, - 7190: 0xCC12, - 7191: 0xCC13, - 7192: 0xCC15, - 7193: 0xCC16, - 7194: 0xCC17, - 7195: 0xCC18, - 7196: 0xCC19, - 7197: 0xCC1A, - 7198: 0xCC1B, - 7199: 0xCC1E, - 7200: 0xCC1F, - 7201: 0xCC20, - 7202: 0xCC23, - 7203: 0xCC24, - 7204: 0x00E6, - 7205: 0x0111, - 7206: 0x00F0, - 7207: 0x0127, - 7208: 0x0131, - 7209: 0x0133, - 7210: 0x0138, - 7211: 0x0140, - 7212: 0x0142, - 7213: 0x00F8, - 7214: 0x0153, - 7215: 0x00DF, - 7216: 0x00FE, - 7217: 0x0167, - 7218: 0x014B, - 7219: 0x0149, - 7220: 0x3200, - 7221: 0x3201, - 7222: 0x3202, - 7223: 0x3203, - 7224: 0x3204, - 7225: 0x3205, - 7226: 0x3206, - 7227: 0x3207, - 7228: 0x3208, - 7229: 0x3209, - 7230: 0x320A, - 7231: 0x320B, - 7232: 0x320C, - 7233: 0x320D, - 7234: 0x320E, - 7235: 0x320F, - 7236: 0x3210, - 7237: 0x3211, - 7238: 0x3212, - 7239: 0x3213, - 7240: 0x3214, - 7241: 0x3215, - 7242: 0x3216, - 7243: 0x3217, - 7244: 0x3218, - 7245: 0x3219, - 7246: 0x321A, - 7247: 0x321B, - 7248: 0x249C, - 7249: 0x249D, - 7250: 0x249E, - 7251: 0x249F, - 7252: 0x24A0, - 7253: 0x24A1, - 7254: 0x24A2, - 7255: 0x24A3, - 7256: 0x24A4, - 7257: 0x24A5, - 7258: 0x24A6, - 7259: 0x24A7, - 7260: 0x24A8, - 7261: 0x24A9, - 7262: 0x24AA, - 7263: 0x24AB, - 7264: 0x24AC, - 7265: 0x24AD, - 7266: 0x24AE, - 7267: 0x24AF, - 7268: 0x24B0, - 7269: 0x24B1, - 7270: 0x24B2, - 7271: 0x24B3, - 7272: 0x24B4, - 7273: 0x24B5, - 7274: 0x2474, - 7275: 0x2475, - 7276: 0x2476, - 7277: 0x2477, - 7278: 0x2478, - 7279: 0x2479, - 7280: 0x247A, - 7281: 0x247B, - 7282: 0x247C, - 7283: 0x247D, - 7284: 0x247E, - 7285: 0x247F, - 7286: 0x2480, - 7287: 0x2481, - 7288: 0x2482, - 7289: 0x00B9, - 7290: 0x00B2, - 7291: 0x00B3, - 7292: 0x2074, - 7293: 0x207F, - 7294: 0x2081, - 7295: 0x2082, - 7296: 0x2083, - 7297: 0x2084, - 7298: 0xCC25, - 7299: 0xCC26, - 7300: 0xCC2A, - 7301: 0xCC2B, - 7302: 0xCC2D, - 7303: 0xCC2F, - 7304: 0xCC31, - 7305: 0xCC32, - 7306: 0xCC33, - 7307: 0xCC34, - 7308: 0xCC35, - 7309: 0xCC36, - 7310: 0xCC37, - 7311: 0xCC3A, - 7312: 0xCC3F, - 7313: 0xCC40, - 7314: 0xCC41, - 7315: 0xCC42, - 7316: 0xCC43, - 7317: 0xCC46, - 7318: 0xCC47, - 7319: 0xCC49, - 7320: 0xCC4A, - 7321: 0xCC4B, - 7322: 0xCC4D, - 7323: 0xCC4E, - 7324: 0xCC4F, - 7325: 0xCC50, - 7326: 0xCC51, - 7327: 0xCC52, - 7328: 0xCC53, - 7329: 0xCC56, - 7330: 0xCC5A, - 7331: 0xCC5B, - 7332: 0xCC5C, - 7333: 0xCC5D, - 7334: 0xCC5E, - 7335: 0xCC5F, - 7336: 0xCC61, - 7337: 0xCC62, - 7338: 0xCC63, - 7339: 0xCC65, - 7340: 0xCC67, - 7341: 0xCC69, - 7342: 0xCC6A, - 7343: 0xCC6B, - 7344: 0xCC6C, - 7345: 0xCC6D, - 7346: 0xCC6E, - 7347: 0xCC6F, - 7348: 0xCC71, - 7349: 0xCC72, - 7350: 0xCC73, - 7351: 0xCC74, - 7352: 0xCC76, - 7353: 0xCC77, - 7354: 0xCC78, - 7355: 0xCC79, - 7356: 0xCC7A, - 7357: 0xCC7B, - 7358: 0xCC7C, - 7359: 0xCC7D, - 7360: 0xCC7E, - 7361: 0xCC7F, - 7362: 0xCC80, - 7363: 0xCC81, - 7364: 0xCC82, - 7365: 0xCC83, - 7366: 0xCC84, - 7367: 0xCC85, - 7368: 0xCC86, - 7369: 0xCC87, - 7370: 0xCC88, - 7371: 0xCC89, - 7372: 0xCC8A, - 7373: 0xCC8B, - 7374: 0xCC8C, - 7375: 0xCC8D, - 7376: 0xCC8E, - 7377: 0xCC8F, - 7378: 0xCC90, - 7379: 0xCC91, - 7380: 0xCC92, - 7381: 0xCC93, - 7382: 0x3041, - 7383: 0x3042, - 7384: 0x3043, - 7385: 0x3044, - 7386: 0x3045, - 7387: 0x3046, - 7388: 0x3047, - 7389: 0x3048, - 7390: 0x3049, - 7391: 0x304A, - 7392: 0x304B, - 7393: 0x304C, - 7394: 0x304D, - 7395: 0x304E, - 7396: 0x304F, - 7397: 0x3050, - 7398: 0x3051, - 7399: 0x3052, - 7400: 0x3053, - 7401: 0x3054, - 7402: 0x3055, - 7403: 0x3056, - 7404: 0x3057, - 7405: 0x3058, - 7406: 0x3059, - 7407: 0x305A, - 7408: 0x305B, - 7409: 0x305C, - 7410: 0x305D, - 7411: 0x305E, - 7412: 0x305F, - 7413: 0x3060, - 7414: 0x3061, - 7415: 0x3062, - 7416: 0x3063, - 7417: 0x3064, - 7418: 0x3065, - 7419: 0x3066, - 7420: 0x3067, - 7421: 0x3068, - 7422: 0x3069, - 7423: 0x306A, - 7424: 0x306B, - 7425: 0x306C, - 7426: 0x306D, - 7427: 0x306E, - 7428: 0x306F, - 7429: 0x3070, - 7430: 0x3071, - 7431: 0x3072, - 7432: 0x3073, - 7433: 0x3074, - 7434: 0x3075, - 7435: 0x3076, - 7436: 0x3077, - 7437: 0x3078, - 7438: 0x3079, - 7439: 0x307A, - 7440: 0x307B, - 7441: 0x307C, - 7442: 0x307D, - 7443: 0x307E, - 7444: 0x307F, - 7445: 0x3080, - 7446: 0x3081, - 7447: 0x3082, - 7448: 0x3083, - 7449: 0x3084, - 7450: 0x3085, - 7451: 0x3086, - 7452: 0x3087, - 7453: 0x3088, - 7454: 0x3089, - 7455: 0x308A, - 7456: 0x308B, - 7457: 0x308C, - 7458: 0x308D, - 7459: 0x308E, - 7460: 0x308F, - 7461: 0x3090, - 7462: 0x3091, - 7463: 0x3092, - 7464: 0x3093, - 7476: 0xCC94, - 7477: 0xCC95, - 7478: 0xCC96, - 7479: 0xCC97, - 7480: 0xCC9A, - 7481: 0xCC9B, - 7482: 0xCC9D, - 7483: 0xCC9E, - 7484: 0xCC9F, - 7485: 0xCCA1, - 7486: 0xCCA2, - 7487: 0xCCA3, - 7488: 0xCCA4, - 7489: 0xCCA5, - 7490: 0xCCA6, - 7491: 0xCCA7, - 7492: 0xCCAA, - 7493: 0xCCAE, - 7494: 0xCCAF, - 7495: 0xCCB0, - 7496: 0xCCB1, - 7497: 0xCCB2, - 7498: 0xCCB3, - 7499: 0xCCB6, - 7500: 0xCCB7, - 7501: 0xCCB9, - 7502: 0xCCBA, - 7503: 0xCCBB, - 7504: 0xCCBD, - 7505: 0xCCBE, - 7506: 0xCCBF, - 7507: 0xCCC0, - 7508: 0xCCC1, - 7509: 0xCCC2, - 7510: 0xCCC3, - 7511: 0xCCC6, - 7512: 0xCCC8, - 7513: 0xCCCA, - 7514: 0xCCCB, - 7515: 0xCCCC, - 7516: 0xCCCD, - 7517: 0xCCCE, - 7518: 0xCCCF, - 7519: 0xCCD1, - 7520: 0xCCD2, - 7521: 0xCCD3, - 7522: 0xCCD5, - 7523: 0xCCD6, - 7524: 0xCCD7, - 7525: 0xCCD8, - 7526: 0xCCD9, - 7527: 0xCCDA, - 7528: 0xCCDB, - 7529: 0xCCDC, - 7530: 0xCCDD, - 7531: 0xCCDE, - 7532: 0xCCDF, - 7533: 0xCCE0, - 7534: 0xCCE1, - 7535: 0xCCE2, - 7536: 0xCCE3, - 7537: 0xCCE5, - 7538: 0xCCE6, - 7539: 0xCCE7, - 7540: 0xCCE8, - 7541: 0xCCE9, - 7542: 0xCCEA, - 7543: 0xCCEB, - 7544: 0xCCED, - 7545: 0xCCEE, - 7546: 0xCCEF, - 7547: 0xCCF1, - 7548: 0xCCF2, - 7549: 0xCCF3, - 7550: 0xCCF4, - 7551: 0xCCF5, - 7552: 0xCCF6, - 7553: 0xCCF7, - 7554: 0xCCF8, - 7555: 0xCCF9, - 7556: 0xCCFA, - 7557: 0xCCFB, - 7558: 0xCCFC, - 7559: 0xCCFD, - 7560: 0x30A1, - 7561: 0x30A2, - 7562: 0x30A3, - 7563: 0x30A4, - 7564: 0x30A5, - 7565: 0x30A6, - 7566: 0x30A7, - 7567: 0x30A8, - 7568: 0x30A9, - 7569: 0x30AA, - 7570: 0x30AB, - 7571: 0x30AC, - 7572: 0x30AD, - 7573: 0x30AE, - 7574: 0x30AF, - 7575: 0x30B0, - 7576: 0x30B1, - 7577: 0x30B2, - 7578: 0x30B3, - 7579: 0x30B4, - 7580: 0x30B5, - 7581: 0x30B6, - 7582: 0x30B7, - 7583: 0x30B8, - 7584: 0x30B9, - 7585: 0x30BA, - 7586: 0x30BB, - 7587: 0x30BC, - 7588: 0x30BD, - 7589: 0x30BE, - 7590: 0x30BF, - 7591: 0x30C0, - 7592: 0x30C1, - 7593: 0x30C2, - 7594: 0x30C3, - 7595: 0x30C4, - 7596: 0x30C5, - 7597: 0x30C6, - 7598: 0x30C7, - 7599: 0x30C8, - 7600: 0x30C9, - 7601: 0x30CA, - 7602: 0x30CB, - 7603: 0x30CC, - 7604: 0x30CD, - 7605: 0x30CE, - 7606: 0x30CF, - 7607: 0x30D0, - 7608: 0x30D1, - 7609: 0x30D2, - 7610: 0x30D3, - 7611: 0x30D4, - 7612: 0x30D5, - 7613: 0x30D6, - 7614: 0x30D7, - 7615: 0x30D8, - 7616: 0x30D9, - 7617: 0x30DA, - 7618: 0x30DB, - 7619: 0x30DC, - 7620: 0x30DD, - 7621: 0x30DE, - 7622: 0x30DF, - 7623: 0x30E0, - 7624: 0x30E1, - 7625: 0x30E2, - 7626: 0x30E3, - 7627: 0x30E4, - 7628: 0x30E5, - 7629: 0x30E6, - 7630: 0x30E7, - 7631: 0x30E8, - 7632: 0x30E9, - 7633: 0x30EA, - 7634: 0x30EB, - 7635: 0x30EC, - 7636: 0x30ED, - 7637: 0x30EE, - 7638: 0x30EF, - 7639: 0x30F0, - 7640: 0x30F1, - 7641: 0x30F2, - 7642: 0x30F3, - 7643: 0x30F4, - 7644: 0x30F5, - 7645: 0x30F6, - 7654: 0xCCFE, - 7655: 0xCCFF, - 7656: 0xCD00, - 7657: 0xCD02, - 7658: 0xCD03, - 7659: 0xCD04, - 7660: 0xCD05, - 7661: 0xCD06, - 7662: 0xCD07, - 7663: 0xCD0A, - 7664: 0xCD0B, - 7665: 0xCD0D, - 7666: 0xCD0E, - 7667: 0xCD0F, - 7668: 0xCD11, - 7669: 0xCD12, - 7670: 0xCD13, - 7671: 0xCD14, - 7672: 0xCD15, - 7673: 0xCD16, - 7674: 0xCD17, - 7675: 0xCD1A, - 7676: 0xCD1C, - 7677: 0xCD1E, - 7678: 0xCD1F, - 7679: 0xCD20, - 7680: 0xCD21, - 7681: 0xCD22, - 7682: 0xCD23, - 7683: 0xCD25, - 7684: 0xCD26, - 7685: 0xCD27, - 7686: 0xCD29, - 7687: 0xCD2A, - 7688: 0xCD2B, - 7689: 0xCD2D, - 7690: 0xCD2E, - 7691: 0xCD2F, - 7692: 0xCD30, - 7693: 0xCD31, - 7694: 0xCD32, - 7695: 0xCD33, - 7696: 0xCD34, - 7697: 0xCD35, - 7698: 0xCD36, - 7699: 0xCD37, - 7700: 0xCD38, - 7701: 0xCD3A, - 7702: 0xCD3B, - 7703: 0xCD3C, - 7704: 0xCD3D, - 7705: 0xCD3E, - 7706: 0xCD3F, - 7707: 0xCD40, - 7708: 0xCD41, - 7709: 0xCD42, - 7710: 0xCD43, - 7711: 0xCD44, - 7712: 0xCD45, - 7713: 0xCD46, - 7714: 0xCD47, - 7715: 0xCD48, - 7716: 0xCD49, - 7717: 0xCD4A, - 7718: 0xCD4B, - 7719: 0xCD4C, - 7720: 0xCD4D, - 7721: 0xCD4E, - 7722: 0xCD4F, - 7723: 0xCD50, - 7724: 0xCD51, - 7725: 0xCD52, - 7726: 0xCD53, - 7727: 0xCD54, - 7728: 0xCD55, - 7729: 0xCD56, - 7730: 0xCD57, - 7731: 0xCD58, - 7732: 0xCD59, - 7733: 0xCD5A, - 7734: 0xCD5B, - 7735: 0xCD5D, - 7736: 0xCD5E, - 7737: 0xCD5F, - 7738: 0x0410, - 7739: 0x0411, - 7740: 0x0412, - 7741: 0x0413, - 7742: 0x0414, - 7743: 0x0415, - 7744: 0x0401, - 7745: 0x0416, - 7746: 0x0417, - 7747: 0x0418, - 7748: 0x0419, - 7749: 0x041A, - 7750: 0x041B, - 7751: 0x041C, - 7752: 0x041D, - 7753: 0x041E, - 7754: 0x041F, - 7755: 0x0420, - 7756: 0x0421, - 7757: 0x0422, - 7758: 0x0423, - 7759: 0x0424, - 7760: 0x0425, - 7761: 0x0426, - 7762: 0x0427, - 7763: 0x0428, - 7764: 0x0429, - 7765: 0x042A, - 7766: 0x042B, - 7767: 0x042C, - 7768: 0x042D, - 7769: 0x042E, - 7770: 0x042F, - 7786: 0x0430, - 7787: 0x0431, - 7788: 0x0432, - 7789: 0x0433, - 7790: 0x0434, - 7791: 0x0435, - 7792: 0x0451, - 7793: 0x0436, - 7794: 0x0437, - 7795: 0x0438, - 7796: 0x0439, - 7797: 0x043A, - 7798: 0x043B, - 7799: 0x043C, - 7800: 0x043D, - 7801: 0x043E, - 7802: 0x043F, - 7803: 0x0440, - 7804: 0x0441, - 7805: 0x0442, - 7806: 0x0443, - 7807: 0x0444, - 7808: 0x0445, - 7809: 0x0446, - 7810: 0x0447, - 7811: 0x0448, - 7812: 0x0449, - 7813: 0x044A, - 7814: 0x044B, - 7815: 0x044C, - 7816: 0x044D, - 7817: 0x044E, - 7818: 0x044F, - 7832: 0xCD61, - 7833: 0xCD62, - 7834: 0xCD63, - 7835: 0xCD65, - 7836: 0xCD66, - 7837: 0xCD67, - 7838: 0xCD68, - 7839: 0xCD69, - 7840: 0xCD6A, - 7841: 0xCD6B, - 7842: 0xCD6E, - 7843: 0xCD70, - 7844: 0xCD72, - 7845: 0xCD73, - 7846: 0xCD74, - 7847: 0xCD75, - 7848: 0xCD76, - 7849: 0xCD77, - 7850: 0xCD79, - 7851: 0xCD7A, - 7852: 0xCD7B, - 7853: 0xCD7C, - 7854: 0xCD7D, - 7855: 0xCD7E, - 7856: 0xCD7F, - 7857: 0xCD80, - 7858: 0xCD81, - 7859: 0xCD82, - 7860: 0xCD83, - 7861: 0xCD84, - 7862: 0xCD85, - 7863: 0xCD86, - 7864: 0xCD87, - 7865: 0xCD89, - 7866: 0xCD8A, - 7867: 0xCD8B, - 7868: 0xCD8C, - 7869: 0xCD8D, - 7870: 0xCD8E, - 7871: 0xCD8F, - 7872: 0xCD90, - 7873: 0xCD91, - 7874: 0xCD92, - 7875: 0xCD93, - 7876: 0xCD96, - 7877: 0xCD97, - 7878: 0xCD99, - 7879: 0xCD9A, - 7880: 0xCD9B, - 7881: 0xCD9D, - 7882: 0xCD9E, - 7883: 0xCD9F, - 7884: 0xCDA0, - 7885: 0xCDA1, - 7886: 0xCDA2, - 7887: 0xCDA3, - 7888: 0xCDA6, - 7889: 0xCDA8, - 7890: 0xCDAA, - 7891: 0xCDAB, - 7892: 0xCDAC, - 7893: 0xCDAD, - 7894: 0xCDAE, - 7895: 0xCDAF, - 7896: 0xCDB1, - 7897: 0xCDB2, - 7898: 0xCDB3, - 7899: 0xCDB4, - 7900: 0xCDB5, - 7901: 0xCDB6, - 7902: 0xCDB7, - 7903: 0xCDB8, - 7904: 0xCDB9, - 7905: 0xCDBA, - 7906: 0xCDBB, - 7907: 0xCDBC, - 7908: 0xCDBD, - 7909: 0xCDBE, - 7910: 0xCDBF, - 7911: 0xCDC0, - 7912: 0xCDC1, - 7913: 0xCDC2, - 7914: 0xCDC3, - 7915: 0xCDC5, - 8010: 0xCDC6, - 8011: 0xCDC7, - 8012: 0xCDC8, - 8013: 0xCDC9, - 8014: 0xCDCA, - 8015: 0xCDCB, - 8016: 0xCDCD, - 8017: 0xCDCE, - 8018: 0xCDCF, - 8019: 0xCDD1, - 8020: 0xCDD2, - 8021: 0xCDD3, - 8022: 0xCDD4, - 8023: 0xCDD5, - 8024: 0xCDD6, - 8025: 0xCDD7, - 8026: 0xCDD8, - 8027: 0xCDD9, - 8028: 0xCDDA, - 8029: 0xCDDB, - 8030: 0xCDDC, - 8031: 0xCDDD, - 8032: 0xCDDE, - 8033: 0xCDDF, - 8034: 0xCDE0, - 8035: 0xCDE1, - 8036: 0xCDE2, - 8037: 0xCDE3, - 8038: 0xCDE4, - 8039: 0xCDE5, - 8040: 0xCDE6, - 8041: 0xCDE7, - 8042: 0xCDE9, - 8043: 0xCDEA, - 8044: 0xCDEB, - 8045: 0xCDED, - 8046: 0xCDEE, - 8047: 0xCDEF, - 8048: 0xCDF1, - 8049: 0xCDF2, - 8050: 0xCDF3, - 8051: 0xCDF4, - 8052: 0xCDF5, - 8053: 0xCDF6, - 8054: 0xCDF7, - 8055: 0xCDFA, - 8056: 0xCDFC, - 8057: 0xCDFE, - 8058: 0xCDFF, - 8059: 0xCE00, - 8060: 0xCE01, - 8061: 0xCE02, - 8062: 0xCE03, - 8063: 0xCE05, - 8064: 0xCE06, - 8065: 0xCE07, - 8066: 0xCE09, - 8067: 0xCE0A, - 8068: 0xCE0B, - 8069: 0xCE0D, - 8070: 0xCE0E, - 8071: 0xCE0F, - 8072: 0xCE10, - 8073: 0xCE11, - 8074: 0xCE12, - 8075: 0xCE13, - 8076: 0xCE15, - 8077: 0xCE16, - 8078: 0xCE17, - 8079: 0xCE18, - 8080: 0xCE1A, - 8081: 0xCE1B, - 8082: 0xCE1C, - 8083: 0xCE1D, - 8084: 0xCE1E, - 8085: 0xCE1F, - 8086: 0xCE22, - 8087: 0xCE23, - 8088: 0xCE25, - 8089: 0xCE26, - 8090: 0xCE27, - 8091: 0xCE29, - 8092: 0xCE2A, - 8093: 0xCE2B, - 8188: 0xCE2C, - 8189: 0xCE2D, - 8190: 0xCE2E, - 8191: 0xCE2F, - 8192: 0xCE32, - 8193: 0xCE34, - 8194: 0xCE36, - 8195: 0xCE37, - 8196: 0xCE38, - 8197: 0xCE39, - 8198: 0xCE3A, - 8199: 0xCE3B, - 8200: 0xCE3C, - 8201: 0xCE3D, - 8202: 0xCE3E, - 8203: 0xCE3F, - 8204: 0xCE40, - 8205: 0xCE41, - 8206: 0xCE42, - 8207: 0xCE43, - 8208: 0xCE44, - 8209: 0xCE45, - 8210: 0xCE46, - 8211: 0xCE47, - 8212: 0xCE48, - 8213: 0xCE49, - 8214: 0xCE4A, - 8215: 0xCE4B, - 8216: 0xCE4C, - 8217: 0xCE4D, - 8218: 0xCE4E, - 8219: 0xCE4F, - 8220: 0xCE50, - 8221: 0xCE51, - 8222: 0xCE52, - 8223: 0xCE53, - 8224: 0xCE54, - 8225: 0xCE55, - 8226: 0xCE56, - 8227: 0xCE57, - 8228: 0xCE5A, - 8229: 0xCE5B, - 8230: 0xCE5D, - 8231: 0xCE5E, - 8232: 0xCE62, - 8233: 0xCE63, - 8234: 0xCE64, - 8235: 0xCE65, - 8236: 0xCE66, - 8237: 0xCE67, - 8238: 0xCE6A, - 8239: 0xCE6C, - 8240: 0xCE6E, - 8241: 0xCE6F, - 8242: 0xCE70, - 8243: 0xCE71, - 8244: 0xCE72, - 8245: 0xCE73, - 8246: 0xCE76, - 8247: 0xCE77, - 8248: 0xCE79, - 8249: 0xCE7A, - 8250: 0xCE7B, - 8251: 0xCE7D, - 8252: 0xCE7E, - 8253: 0xCE7F, - 8254: 0xCE80, - 8255: 0xCE81, - 8256: 0xCE82, - 8257: 0xCE83, - 8258: 0xCE86, - 8259: 0xCE88, - 8260: 0xCE8A, - 8261: 0xCE8B, - 8262: 0xCE8C, - 8263: 0xCE8D, - 8264: 0xCE8E, - 8265: 0xCE8F, - 8266: 0xCE92, - 8267: 0xCE93, - 8268: 0xCE95, - 8269: 0xCE96, - 8270: 0xCE97, - 8271: 0xCE99, - 8366: 0xCE9A, - 8367: 0xCE9B, - 8368: 0xCE9C, - 8369: 0xCE9D, - 8370: 0xCE9E, - 8371: 0xCE9F, - 8372: 0xCEA2, - 8373: 0xCEA6, - 8374: 0xCEA7, - 8375: 0xCEA8, - 8376: 0xCEA9, - 8377: 0xCEAA, - 8378: 0xCEAB, - 8379: 0xCEAE, - 8380: 0xCEAF, - 8381: 0xCEB0, - 8382: 0xCEB1, - 8383: 0xCEB2, - 8384: 0xCEB3, - 8385: 0xCEB4, - 8386: 0xCEB5, - 8387: 0xCEB6, - 8388: 0xCEB7, - 8389: 0xCEB8, - 8390: 0xCEB9, - 8391: 0xCEBA, - 8392: 0xCEBB, - 8393: 0xCEBC, - 8394: 0xCEBD, - 8395: 0xCEBE, - 8396: 0xCEBF, - 8397: 0xCEC0, - 8398: 0xCEC2, - 8399: 0xCEC3, - 8400: 0xCEC4, - 8401: 0xCEC5, - 8402: 0xCEC6, - 8403: 0xCEC7, - 8404: 0xCEC8, - 8405: 0xCEC9, - 8406: 0xCECA, - 8407: 0xCECB, - 8408: 0xCECC, - 8409: 0xCECD, - 8410: 0xCECE, - 8411: 0xCECF, - 8412: 0xCED0, - 8413: 0xCED1, - 8414: 0xCED2, - 8415: 0xCED3, - 8416: 0xCED4, - 8417: 0xCED5, - 8418: 0xCED6, - 8419: 0xCED7, - 8420: 0xCED8, - 8421: 0xCED9, - 8422: 0xCEDA, - 8423: 0xCEDB, - 8424: 0xCEDC, - 8425: 0xCEDD, - 8426: 0xCEDE, - 8427: 0xCEDF, - 8428: 0xCEE0, - 8429: 0xCEE1, - 8430: 0xCEE2, - 8431: 0xCEE3, - 8432: 0xCEE6, - 8433: 0xCEE7, - 8434: 0xCEE9, - 8435: 0xCEEA, - 8436: 0xCEED, - 8437: 0xCEEE, - 8438: 0xCEEF, - 8439: 0xCEF0, - 8440: 0xCEF1, - 8441: 0xCEF2, - 8442: 0xCEF3, - 8443: 0xCEF6, - 8444: 0xCEFA, - 8445: 0xCEFB, - 8446: 0xCEFC, - 8447: 0xCEFD, - 8448: 0xCEFE, - 8449: 0xCEFF, - 8450: 0xAC00, - 8451: 0xAC01, - 8452: 0xAC04, - 8453: 0xAC07, - 8454: 0xAC08, - 8455: 0xAC09, - 8456: 0xAC0A, - 8457: 0xAC10, - 8458: 0xAC11, - 8459: 0xAC12, - 8460: 0xAC13, - 8461: 0xAC14, - 8462: 0xAC15, - 8463: 0xAC16, - 8464: 0xAC17, - 8465: 0xAC19, - 8466: 0xAC1A, - 8467: 0xAC1B, - 8468: 0xAC1C, - 8469: 0xAC1D, - 8470: 0xAC20, - 8471: 0xAC24, - 8472: 0xAC2C, - 8473: 0xAC2D, - 8474: 0xAC2F, - 8475: 0xAC30, - 8476: 0xAC31, - 8477: 0xAC38, - 8478: 0xAC39, - 8479: 0xAC3C, - 8480: 0xAC40, - 8481: 0xAC4B, - 8482: 0xAC4D, - 8483: 0xAC54, - 8484: 0xAC58, - 8485: 0xAC5C, - 8486: 0xAC70, - 8487: 0xAC71, - 8488: 0xAC74, - 8489: 0xAC77, - 8490: 0xAC78, - 8491: 0xAC7A, - 8492: 0xAC80, - 8493: 0xAC81, - 8494: 0xAC83, - 8495: 0xAC84, - 8496: 0xAC85, - 8497: 0xAC86, - 8498: 0xAC89, - 8499: 0xAC8A, - 8500: 0xAC8B, - 8501: 0xAC8C, - 8502: 0xAC90, - 8503: 0xAC94, - 8504: 0xAC9C, - 8505: 0xAC9D, - 8506: 0xAC9F, - 8507: 0xACA0, - 8508: 0xACA1, - 8509: 0xACA8, - 8510: 0xACA9, - 8511: 0xACAA, - 8512: 0xACAC, - 8513: 0xACAF, - 8514: 0xACB0, - 8515: 0xACB8, - 8516: 0xACB9, - 8517: 0xACBB, - 8518: 0xACBC, - 8519: 0xACBD, - 8520: 0xACC1, - 8521: 0xACC4, - 8522: 0xACC8, - 8523: 0xACCC, - 8524: 0xACD5, - 8525: 0xACD7, - 8526: 0xACE0, - 8527: 0xACE1, - 8528: 0xACE4, - 8529: 0xACE7, - 8530: 0xACE8, - 8531: 0xACEA, - 8532: 0xACEC, - 8533: 0xACEF, - 8534: 0xACF0, - 8535: 0xACF1, - 8536: 0xACF3, - 8537: 0xACF5, - 8538: 0xACF6, - 8539: 0xACFC, - 8540: 0xACFD, - 8541: 0xAD00, - 8542: 0xAD04, - 8543: 0xAD06, - 8544: 0xCF02, - 8545: 0xCF03, - 8546: 0xCF05, - 8547: 0xCF06, - 8548: 0xCF07, - 8549: 0xCF09, - 8550: 0xCF0A, - 8551: 0xCF0B, - 8552: 0xCF0C, - 8553: 0xCF0D, - 8554: 0xCF0E, - 8555: 0xCF0F, - 8556: 0xCF12, - 8557: 0xCF14, - 8558: 0xCF16, - 8559: 0xCF17, - 8560: 0xCF18, - 8561: 0xCF19, - 8562: 0xCF1A, - 8563: 0xCF1B, - 8564: 0xCF1D, - 8565: 0xCF1E, - 8566: 0xCF1F, - 8567: 0xCF21, - 8568: 0xCF22, - 8569: 0xCF23, - 8570: 0xCF25, - 8571: 0xCF26, - 8572: 0xCF27, - 8573: 0xCF28, - 8574: 0xCF29, - 8575: 0xCF2A, - 8576: 0xCF2B, - 8577: 0xCF2E, - 8578: 0xCF32, - 8579: 0xCF33, - 8580: 0xCF34, - 8581: 0xCF35, - 8582: 0xCF36, - 8583: 0xCF37, - 8584: 0xCF39, - 8585: 0xCF3A, - 8586: 0xCF3B, - 8587: 0xCF3C, - 8588: 0xCF3D, - 8589: 0xCF3E, - 8590: 0xCF3F, - 8591: 0xCF40, - 8592: 0xCF41, - 8593: 0xCF42, - 8594: 0xCF43, - 8595: 0xCF44, - 8596: 0xCF45, - 8597: 0xCF46, - 8598: 0xCF47, - 8599: 0xCF48, - 8600: 0xCF49, - 8601: 0xCF4A, - 8602: 0xCF4B, - 8603: 0xCF4C, - 8604: 0xCF4D, - 8605: 0xCF4E, - 8606: 0xCF4F, - 8607: 0xCF50, - 8608: 0xCF51, - 8609: 0xCF52, - 8610: 0xCF53, - 8611: 0xCF56, - 8612: 0xCF57, - 8613: 0xCF59, - 8614: 0xCF5A, - 8615: 0xCF5B, - 8616: 0xCF5D, - 8617: 0xCF5E, - 8618: 0xCF5F, - 8619: 0xCF60, - 8620: 0xCF61, - 8621: 0xCF62, - 8622: 0xCF63, - 8623: 0xCF66, - 8624: 0xCF68, - 8625: 0xCF6A, - 8626: 0xCF6B, - 8627: 0xCF6C, - 8628: 0xAD0C, - 8629: 0xAD0D, - 8630: 0xAD0F, - 8631: 0xAD11, - 8632: 0xAD18, - 8633: 0xAD1C, - 8634: 0xAD20, - 8635: 0xAD29, - 8636: 0xAD2C, - 8637: 0xAD2D, - 8638: 0xAD34, - 8639: 0xAD35, - 8640: 0xAD38, - 8641: 0xAD3C, - 8642: 0xAD44, - 8643: 0xAD45, - 8644: 0xAD47, - 8645: 0xAD49, - 8646: 0xAD50, - 8647: 0xAD54, - 8648: 0xAD58, - 8649: 0xAD61, - 8650: 0xAD63, - 8651: 0xAD6C, - 8652: 0xAD6D, - 8653: 0xAD70, - 8654: 0xAD73, - 8655: 0xAD74, - 8656: 0xAD75, - 8657: 0xAD76, - 8658: 0xAD7B, - 8659: 0xAD7C, - 8660: 0xAD7D, - 8661: 0xAD7F, - 8662: 0xAD81, - 8663: 0xAD82, - 8664: 0xAD88, - 8665: 0xAD89, - 8666: 0xAD8C, - 8667: 0xAD90, - 8668: 0xAD9C, - 8669: 0xAD9D, - 8670: 0xADA4, - 8671: 0xADB7, - 8672: 0xADC0, - 8673: 0xADC1, - 8674: 0xADC4, - 8675: 0xADC8, - 8676: 0xADD0, - 8677: 0xADD1, - 8678: 0xADD3, - 8679: 0xADDC, - 8680: 0xADE0, - 8681: 0xADE4, - 8682: 0xADF8, - 8683: 0xADF9, - 8684: 0xADFC, - 8685: 0xADFF, - 8686: 0xAE00, - 8687: 0xAE01, - 8688: 0xAE08, - 8689: 0xAE09, - 8690: 0xAE0B, - 8691: 0xAE0D, - 8692: 0xAE14, - 8693: 0xAE30, - 8694: 0xAE31, - 8695: 0xAE34, - 8696: 0xAE37, - 8697: 0xAE38, - 8698: 0xAE3A, - 8699: 0xAE40, - 8700: 0xAE41, - 8701: 0xAE43, - 8702: 0xAE45, - 8703: 0xAE46, - 8704: 0xAE4A, - 8705: 0xAE4C, - 8706: 0xAE4D, - 8707: 0xAE4E, - 8708: 0xAE50, - 8709: 0xAE54, - 8710: 0xAE56, - 8711: 0xAE5C, - 8712: 0xAE5D, - 8713: 0xAE5F, - 8714: 0xAE60, - 8715: 0xAE61, - 8716: 0xAE65, - 8717: 0xAE68, - 8718: 0xAE69, - 8719: 0xAE6C, - 8720: 0xAE70, - 8721: 0xAE78, - 8722: 0xCF6D, - 8723: 0xCF6E, - 8724: 0xCF6F, - 8725: 0xCF72, - 8726: 0xCF73, - 8727: 0xCF75, - 8728: 0xCF76, - 8729: 0xCF77, - 8730: 0xCF79, - 8731: 0xCF7A, - 8732: 0xCF7B, - 8733: 0xCF7C, - 8734: 0xCF7D, - 8735: 0xCF7E, - 8736: 0xCF7F, - 8737: 0xCF81, - 8738: 0xCF82, - 8739: 0xCF83, - 8740: 0xCF84, - 8741: 0xCF86, - 8742: 0xCF87, - 8743: 0xCF88, - 8744: 0xCF89, - 8745: 0xCF8A, - 8746: 0xCF8B, - 8747: 0xCF8D, - 8748: 0xCF8E, - 8749: 0xCF8F, - 8750: 0xCF90, - 8751: 0xCF91, - 8752: 0xCF92, - 8753: 0xCF93, - 8754: 0xCF94, - 8755: 0xCF95, - 8756: 0xCF96, - 8757: 0xCF97, - 8758: 0xCF98, - 8759: 0xCF99, - 8760: 0xCF9A, - 8761: 0xCF9B, - 8762: 0xCF9C, - 8763: 0xCF9D, - 8764: 0xCF9E, - 8765: 0xCF9F, - 8766: 0xCFA0, - 8767: 0xCFA2, - 8768: 0xCFA3, - 8769: 0xCFA4, - 8770: 0xCFA5, - 8771: 0xCFA6, - 8772: 0xCFA7, - 8773: 0xCFA9, - 8774: 0xCFAA, - 8775: 0xCFAB, - 8776: 0xCFAC, - 8777: 0xCFAD, - 8778: 0xCFAE, - 8779: 0xCFAF, - 8780: 0xCFB1, - 8781: 0xCFB2, - 8782: 0xCFB3, - 8783: 0xCFB4, - 8784: 0xCFB5, - 8785: 0xCFB6, - 8786: 0xCFB7, - 8787: 0xCFB8, - 8788: 0xCFB9, - 8789: 0xCFBA, - 8790: 0xCFBB, - 8791: 0xCFBC, - 8792: 0xCFBD, - 8793: 0xCFBE, - 8794: 0xCFBF, - 8795: 0xCFC0, - 8796: 0xCFC1, - 8797: 0xCFC2, - 8798: 0xCFC3, - 8799: 0xCFC5, - 8800: 0xCFC6, - 8801: 0xCFC7, - 8802: 0xCFC8, - 8803: 0xCFC9, - 8804: 0xCFCA, - 8805: 0xCFCB, - 8806: 0xAE79, - 8807: 0xAE7B, - 8808: 0xAE7C, - 8809: 0xAE7D, - 8810: 0xAE84, - 8811: 0xAE85, - 8812: 0xAE8C, - 8813: 0xAEBC, - 8814: 0xAEBD, - 8815: 0xAEBE, - 8816: 0xAEC0, - 8817: 0xAEC4, - 8818: 0xAECC, - 8819: 0xAECD, - 8820: 0xAECF, - 8821: 0xAED0, - 8822: 0xAED1, - 8823: 0xAED8, - 8824: 0xAED9, - 8825: 0xAEDC, - 8826: 0xAEE8, - 8827: 0xAEEB, - 8828: 0xAEED, - 8829: 0xAEF4, - 8830: 0xAEF8, - 8831: 0xAEFC, - 8832: 0xAF07, - 8833: 0xAF08, - 8834: 0xAF0D, - 8835: 0xAF10, - 8836: 0xAF2C, - 8837: 0xAF2D, - 8838: 0xAF30, - 8839: 0xAF32, - 8840: 0xAF34, - 8841: 0xAF3C, - 8842: 0xAF3D, - 8843: 0xAF3F, - 8844: 0xAF41, - 8845: 0xAF42, - 8846: 0xAF43, - 8847: 0xAF48, - 8848: 0xAF49, - 8849: 0xAF50, - 8850: 0xAF5C, - 8851: 0xAF5D, - 8852: 0xAF64, - 8853: 0xAF65, - 8854: 0xAF79, - 8855: 0xAF80, - 8856: 0xAF84, - 8857: 0xAF88, - 8858: 0xAF90, - 8859: 0xAF91, - 8860: 0xAF95, - 8861: 0xAF9C, - 8862: 0xAFB8, - 8863: 0xAFB9, - 8864: 0xAFBC, - 8865: 0xAFC0, - 8866: 0xAFC7, - 8867: 0xAFC8, - 8868: 0xAFC9, - 8869: 0xAFCB, - 8870: 0xAFCD, - 8871: 0xAFCE, - 8872: 0xAFD4, - 8873: 0xAFDC, - 8874: 0xAFE8, - 8875: 0xAFE9, - 8876: 0xAFF0, - 8877: 0xAFF1, - 8878: 0xAFF4, - 8879: 0xAFF8, - 8880: 0xB000, - 8881: 0xB001, - 8882: 0xB004, - 8883: 0xB00C, - 8884: 0xB010, - 8885: 0xB014, - 8886: 0xB01C, - 8887: 0xB01D, - 8888: 0xB028, - 8889: 0xB044, - 8890: 0xB045, - 8891: 0xB048, - 8892: 0xB04A, - 8893: 0xB04C, - 8894: 0xB04E, - 8895: 0xB053, - 8896: 0xB054, - 8897: 0xB055, - 8898: 0xB057, - 8899: 0xB059, - 8900: 0xCFCC, - 8901: 0xCFCD, - 8902: 0xCFCE, - 8903: 0xCFCF, - 8904: 0xCFD0, - 8905: 0xCFD1, - 8906: 0xCFD2, - 8907: 0xCFD3, - 8908: 0xCFD4, - 8909: 0xCFD5, - 8910: 0xCFD6, - 8911: 0xCFD7, - 8912: 0xCFD8, - 8913: 0xCFD9, - 8914: 0xCFDA, - 8915: 0xCFDB, - 8916: 0xCFDC, - 8917: 0xCFDD, - 8918: 0xCFDE, - 8919: 0xCFDF, - 8920: 0xCFE2, - 8921: 0xCFE3, - 8922: 0xCFE5, - 8923: 0xCFE6, - 8924: 0xCFE7, - 8925: 0xCFE9, - 8926: 0xCFEA, - 8927: 0xCFEB, - 8928: 0xCFEC, - 8929: 0xCFED, - 8930: 0xCFEE, - 8931: 0xCFEF, - 8932: 0xCFF2, - 8933: 0xCFF4, - 8934: 0xCFF6, - 8935: 0xCFF7, - 8936: 0xCFF8, - 8937: 0xCFF9, - 8938: 0xCFFA, - 8939: 0xCFFB, - 8940: 0xCFFD, - 8941: 0xCFFE, - 8942: 0xCFFF, - 8943: 0xD001, - 8944: 0xD002, - 8945: 0xD003, - 8946: 0xD005, - 8947: 0xD006, - 8948: 0xD007, - 8949: 0xD008, - 8950: 0xD009, - 8951: 0xD00A, - 8952: 0xD00B, - 8953: 0xD00C, - 8954: 0xD00D, - 8955: 0xD00E, - 8956: 0xD00F, - 8957: 0xD010, - 8958: 0xD012, - 8959: 0xD013, - 8960: 0xD014, - 8961: 0xD015, - 8962: 0xD016, - 8963: 0xD017, - 8964: 0xD019, - 8965: 0xD01A, - 8966: 0xD01B, - 8967: 0xD01C, - 8968: 0xD01D, - 8969: 0xD01E, - 8970: 0xD01F, - 8971: 0xD020, - 8972: 0xD021, - 8973: 0xD022, - 8974: 0xD023, - 8975: 0xD024, - 8976: 0xD025, - 8977: 0xD026, - 8978: 0xD027, - 8979: 0xD028, - 8980: 0xD029, - 8981: 0xD02A, - 8982: 0xD02B, - 8983: 0xD02C, - 8984: 0xB05D, - 8985: 0xB07C, - 8986: 0xB07D, - 8987: 0xB080, - 8988: 0xB084, - 8989: 0xB08C, - 8990: 0xB08D, - 8991: 0xB08F, - 8992: 0xB091, - 8993: 0xB098, - 8994: 0xB099, - 8995: 0xB09A, - 8996: 0xB09C, - 8997: 0xB09F, - 8998: 0xB0A0, - 8999: 0xB0A1, - 9000: 0xB0A2, - 9001: 0xB0A8, - 9002: 0xB0A9, - 9003: 0xB0AB, - 9004: 0xB0AC, - 9005: 0xB0AD, - 9006: 0xB0AE, - 9007: 0xB0AF, - 9008: 0xB0B1, - 9009: 0xB0B3, - 9010: 0xB0B4, - 9011: 0xB0B5, - 9012: 0xB0B8, - 9013: 0xB0BC, - 9014: 0xB0C4, - 9015: 0xB0C5, - 9016: 0xB0C7, - 9017: 0xB0C8, - 9018: 0xB0C9, - 9019: 0xB0D0, - 9020: 0xB0D1, - 9021: 0xB0D4, - 9022: 0xB0D8, - 9023: 0xB0E0, - 9024: 0xB0E5, - 9025: 0xB108, - 9026: 0xB109, - 9027: 0xB10B, - 9028: 0xB10C, - 9029: 0xB110, - 9030: 0xB112, - 9031: 0xB113, - 9032: 0xB118, - 9033: 0xB119, - 9034: 0xB11B, - 9035: 0xB11C, - 9036: 0xB11D, - 9037: 0xB123, - 9038: 0xB124, - 9039: 0xB125, - 9040: 0xB128, - 9041: 0xB12C, - 9042: 0xB134, - 9043: 0xB135, - 9044: 0xB137, - 9045: 0xB138, - 9046: 0xB139, - 9047: 0xB140, - 9048: 0xB141, - 9049: 0xB144, - 9050: 0xB148, - 9051: 0xB150, - 9052: 0xB151, - 9053: 0xB154, - 9054: 0xB155, - 9055: 0xB158, - 9056: 0xB15C, - 9057: 0xB160, - 9058: 0xB178, - 9059: 0xB179, - 9060: 0xB17C, - 9061: 0xB180, - 9062: 0xB182, - 9063: 0xB188, - 9064: 0xB189, - 9065: 0xB18B, - 9066: 0xB18D, - 9067: 0xB192, - 9068: 0xB193, - 9069: 0xB194, - 9070: 0xB198, - 9071: 0xB19C, - 9072: 0xB1A8, - 9073: 0xB1CC, - 9074: 0xB1D0, - 9075: 0xB1D4, - 9076: 0xB1DC, - 9077: 0xB1DD, - 9078: 0xD02E, - 9079: 0xD02F, - 9080: 0xD030, - 9081: 0xD031, - 9082: 0xD032, - 9083: 0xD033, - 9084: 0xD036, - 9085: 0xD037, - 9086: 0xD039, - 9087: 0xD03A, - 9088: 0xD03B, - 9089: 0xD03D, - 9090: 0xD03E, - 9091: 0xD03F, - 9092: 0xD040, - 9093: 0xD041, - 9094: 0xD042, - 9095: 0xD043, - 9096: 0xD046, - 9097: 0xD048, - 9098: 0xD04A, - 9099: 0xD04B, - 9100: 0xD04C, - 9101: 0xD04D, - 9102: 0xD04E, - 9103: 0xD04F, - 9104: 0xD051, - 9105: 0xD052, - 9106: 0xD053, - 9107: 0xD055, - 9108: 0xD056, - 9109: 0xD057, - 9110: 0xD059, - 9111: 0xD05A, - 9112: 0xD05B, - 9113: 0xD05C, - 9114: 0xD05D, - 9115: 0xD05E, - 9116: 0xD05F, - 9117: 0xD061, - 9118: 0xD062, - 9119: 0xD063, - 9120: 0xD064, - 9121: 0xD065, - 9122: 0xD066, - 9123: 0xD067, - 9124: 0xD068, - 9125: 0xD069, - 9126: 0xD06A, - 9127: 0xD06B, - 9128: 0xD06E, - 9129: 0xD06F, - 9130: 0xD071, - 9131: 0xD072, - 9132: 0xD073, - 9133: 0xD075, - 9134: 0xD076, - 9135: 0xD077, - 9136: 0xD078, - 9137: 0xD079, - 9138: 0xD07A, - 9139: 0xD07B, - 9140: 0xD07E, - 9141: 0xD07F, - 9142: 0xD080, - 9143: 0xD082, - 9144: 0xD083, - 9145: 0xD084, - 9146: 0xD085, - 9147: 0xD086, - 9148: 0xD087, - 9149: 0xD088, - 9150: 0xD089, - 9151: 0xD08A, - 9152: 0xD08B, - 9153: 0xD08C, - 9154: 0xD08D, - 9155: 0xD08E, - 9156: 0xD08F, - 9157: 0xD090, - 9158: 0xD091, - 9159: 0xD092, - 9160: 0xD093, - 9161: 0xD094, - 9162: 0xB1DF, - 9163: 0xB1E8, - 9164: 0xB1E9, - 9165: 0xB1EC, - 9166: 0xB1F0, - 9167: 0xB1F9, - 9168: 0xB1FB, - 9169: 0xB1FD, - 9170: 0xB204, - 9171: 0xB205, - 9172: 0xB208, - 9173: 0xB20B, - 9174: 0xB20C, - 9175: 0xB214, - 9176: 0xB215, - 9177: 0xB217, - 9178: 0xB219, - 9179: 0xB220, - 9180: 0xB234, - 9181: 0xB23C, - 9182: 0xB258, - 9183: 0xB25C, - 9184: 0xB260, - 9185: 0xB268, - 9186: 0xB269, - 9187: 0xB274, - 9188: 0xB275, - 9189: 0xB27C, - 9190: 0xB284, - 9191: 0xB285, - 9192: 0xB289, - 9193: 0xB290, - 9194: 0xB291, - 9195: 0xB294, - 9196: 0xB298, - 9197: 0xB299, - 9198: 0xB29A, - 9199: 0xB2A0, - 9200: 0xB2A1, - 9201: 0xB2A3, - 9202: 0xB2A5, - 9203: 0xB2A6, - 9204: 0xB2AA, - 9205: 0xB2AC, - 9206: 0xB2B0, - 9207: 0xB2B4, - 9208: 0xB2C8, - 9209: 0xB2C9, - 9210: 0xB2CC, - 9211: 0xB2D0, - 9212: 0xB2D2, - 9213: 0xB2D8, - 9214: 0xB2D9, - 9215: 0xB2DB, - 9216: 0xB2DD, - 9217: 0xB2E2, - 9218: 0xB2E4, - 9219: 0xB2E5, - 9220: 0xB2E6, - 9221: 0xB2E8, - 9222: 0xB2EB, - 9223: 0xB2EC, - 9224: 0xB2ED, - 9225: 0xB2EE, - 9226: 0xB2EF, - 9227: 0xB2F3, - 9228: 0xB2F4, - 9229: 0xB2F5, - 9230: 0xB2F7, - 9231: 0xB2F8, - 9232: 0xB2F9, - 9233: 0xB2FA, - 9234: 0xB2FB, - 9235: 0xB2FF, - 9236: 0xB300, - 9237: 0xB301, - 9238: 0xB304, - 9239: 0xB308, - 9240: 0xB310, - 9241: 0xB311, - 9242: 0xB313, - 9243: 0xB314, - 9244: 0xB315, - 9245: 0xB31C, - 9246: 0xB354, - 9247: 0xB355, - 9248: 0xB356, - 9249: 0xB358, - 9250: 0xB35B, - 9251: 0xB35C, - 9252: 0xB35E, - 9253: 0xB35F, - 9254: 0xB364, - 9255: 0xB365, - 9256: 0xD095, - 9257: 0xD096, - 9258: 0xD097, - 9259: 0xD098, - 9260: 0xD099, - 9261: 0xD09A, - 9262: 0xD09B, - 9263: 0xD09C, - 9264: 0xD09D, - 9265: 0xD09E, - 9266: 0xD09F, - 9267: 0xD0A0, - 9268: 0xD0A1, - 9269: 0xD0A2, - 9270: 0xD0A3, - 9271: 0xD0A6, - 9272: 0xD0A7, - 9273: 0xD0A9, - 9274: 0xD0AA, - 9275: 0xD0AB, - 9276: 0xD0AD, - 9277: 0xD0AE, - 9278: 0xD0AF, - 9279: 0xD0B0, - 9280: 0xD0B1, - 9281: 0xD0B2, - 9282: 0xD0B3, - 9283: 0xD0B6, - 9284: 0xD0B8, - 9285: 0xD0BA, - 9286: 0xD0BB, - 9287: 0xD0BC, - 9288: 0xD0BD, - 9289: 0xD0BE, - 9290: 0xD0BF, - 9291: 0xD0C2, - 9292: 0xD0C3, - 9293: 0xD0C5, - 9294: 0xD0C6, - 9295: 0xD0C7, - 9296: 0xD0CA, - 9297: 0xD0CB, - 9298: 0xD0CC, - 9299: 0xD0CD, - 9300: 0xD0CE, - 9301: 0xD0CF, - 9302: 0xD0D2, - 9303: 0xD0D6, - 9304: 0xD0D7, - 9305: 0xD0D8, - 9306: 0xD0D9, - 9307: 0xD0DA, - 9308: 0xD0DB, - 9309: 0xD0DE, - 9310: 0xD0DF, - 9311: 0xD0E1, - 9312: 0xD0E2, - 9313: 0xD0E3, - 9314: 0xD0E5, - 9315: 0xD0E6, - 9316: 0xD0E7, - 9317: 0xD0E8, - 9318: 0xD0E9, - 9319: 0xD0EA, - 9320: 0xD0EB, - 9321: 0xD0EE, - 9322: 0xD0F2, - 9323: 0xD0F3, - 9324: 0xD0F4, - 9325: 0xD0F5, - 9326: 0xD0F6, - 9327: 0xD0F7, - 9328: 0xD0F9, - 9329: 0xD0FA, - 9330: 0xD0FB, - 9331: 0xD0FC, - 9332: 0xD0FD, - 9333: 0xD0FE, - 9334: 0xD0FF, - 9335: 0xD100, - 9336: 0xD101, - 9337: 0xD102, - 9338: 0xD103, - 9339: 0xD104, - 9340: 0xB367, - 9341: 0xB369, - 9342: 0xB36B, - 9343: 0xB36E, - 9344: 0xB370, - 9345: 0xB371, - 9346: 0xB374, - 9347: 0xB378, - 9348: 0xB380, - 9349: 0xB381, - 9350: 0xB383, - 9351: 0xB384, - 9352: 0xB385, - 9353: 0xB38C, - 9354: 0xB390, - 9355: 0xB394, - 9356: 0xB3A0, - 9357: 0xB3A1, - 9358: 0xB3A8, - 9359: 0xB3AC, - 9360: 0xB3C4, - 9361: 0xB3C5, - 9362: 0xB3C8, - 9363: 0xB3CB, - 9364: 0xB3CC, - 9365: 0xB3CE, - 9366: 0xB3D0, - 9367: 0xB3D4, - 9368: 0xB3D5, - 9369: 0xB3D7, - 9370: 0xB3D9, - 9371: 0xB3DB, - 9372: 0xB3DD, - 9373: 0xB3E0, - 9374: 0xB3E4, - 9375: 0xB3E8, - 9376: 0xB3FC, - 9377: 0xB410, - 9378: 0xB418, - 9379: 0xB41C, - 9380: 0xB420, - 9381: 0xB428, - 9382: 0xB429, - 9383: 0xB42B, - 9384: 0xB434, - 9385: 0xB450, - 9386: 0xB451, - 9387: 0xB454, - 9388: 0xB458, - 9389: 0xB460, - 9390: 0xB461, - 9391: 0xB463, - 9392: 0xB465, - 9393: 0xB46C, - 9394: 0xB480, - 9395: 0xB488, - 9396: 0xB49D, - 9397: 0xB4A4, - 9398: 0xB4A8, - 9399: 0xB4AC, - 9400: 0xB4B5, - 9401: 0xB4B7, - 9402: 0xB4B9, - 9403: 0xB4C0, - 9404: 0xB4C4, - 9405: 0xB4C8, - 9406: 0xB4D0, - 9407: 0xB4D5, - 9408: 0xB4DC, - 9409: 0xB4DD, - 9410: 0xB4E0, - 9411: 0xB4E3, - 9412: 0xB4E4, - 9413: 0xB4E6, - 9414: 0xB4EC, - 9415: 0xB4ED, - 9416: 0xB4EF, - 9417: 0xB4F1, - 9418: 0xB4F8, - 9419: 0xB514, - 9420: 0xB515, - 9421: 0xB518, - 9422: 0xB51B, - 9423: 0xB51C, - 9424: 0xB524, - 9425: 0xB525, - 9426: 0xB527, - 9427: 0xB528, - 9428: 0xB529, - 9429: 0xB52A, - 9430: 0xB530, - 9431: 0xB531, - 9432: 0xB534, - 9433: 0xB538, - 9434: 0xD105, - 9435: 0xD106, - 9436: 0xD107, - 9437: 0xD108, - 9438: 0xD109, - 9439: 0xD10A, - 9440: 0xD10B, - 9441: 0xD10C, - 9442: 0xD10E, - 9443: 0xD10F, - 9444: 0xD110, - 9445: 0xD111, - 9446: 0xD112, - 9447: 0xD113, - 9448: 0xD114, - 9449: 0xD115, - 9450: 0xD116, - 9451: 0xD117, - 9452: 0xD118, - 9453: 0xD119, - 9454: 0xD11A, - 9455: 0xD11B, - 9456: 0xD11C, - 9457: 0xD11D, - 9458: 0xD11E, - 9459: 0xD11F, - 9460: 0xD120, - 9461: 0xD121, - 9462: 0xD122, - 9463: 0xD123, - 9464: 0xD124, - 9465: 0xD125, - 9466: 0xD126, - 9467: 0xD127, - 9468: 0xD128, - 9469: 0xD129, - 9470: 0xD12A, - 9471: 0xD12B, - 9472: 0xD12C, - 9473: 0xD12D, - 9474: 0xD12E, - 9475: 0xD12F, - 9476: 0xD132, - 9477: 0xD133, - 9478: 0xD135, - 9479: 0xD136, - 9480: 0xD137, - 9481: 0xD139, - 9482: 0xD13B, - 9483: 0xD13C, - 9484: 0xD13D, - 9485: 0xD13E, - 9486: 0xD13F, - 9487: 0xD142, - 9488: 0xD146, - 9489: 0xD147, - 9490: 0xD148, - 9491: 0xD149, - 9492: 0xD14A, - 9493: 0xD14B, - 9494: 0xD14E, - 9495: 0xD14F, - 9496: 0xD151, - 9497: 0xD152, - 9498: 0xD153, - 9499: 0xD155, - 9500: 0xD156, - 9501: 0xD157, - 9502: 0xD158, - 9503: 0xD159, - 9504: 0xD15A, - 9505: 0xD15B, - 9506: 0xD15E, - 9507: 0xD160, - 9508: 0xD162, - 9509: 0xD163, - 9510: 0xD164, - 9511: 0xD165, - 9512: 0xD166, - 9513: 0xD167, - 9514: 0xD169, - 9515: 0xD16A, - 9516: 0xD16B, - 9517: 0xD16D, - 9518: 0xB540, - 9519: 0xB541, - 9520: 0xB543, - 9521: 0xB544, - 9522: 0xB545, - 9523: 0xB54B, - 9524: 0xB54C, - 9525: 0xB54D, - 9526: 0xB550, - 9527: 0xB554, - 9528: 0xB55C, - 9529: 0xB55D, - 9530: 0xB55F, - 9531: 0xB560, - 9532: 0xB561, - 9533: 0xB5A0, - 9534: 0xB5A1, - 9535: 0xB5A4, - 9536: 0xB5A8, - 9537: 0xB5AA, - 9538: 0xB5AB, - 9539: 0xB5B0, - 9540: 0xB5B1, - 9541: 0xB5B3, - 9542: 0xB5B4, - 9543: 0xB5B5, - 9544: 0xB5BB, - 9545: 0xB5BC, - 9546: 0xB5BD, - 9547: 0xB5C0, - 9548: 0xB5C4, - 9549: 0xB5CC, - 9550: 0xB5CD, - 9551: 0xB5CF, - 9552: 0xB5D0, - 9553: 0xB5D1, - 9554: 0xB5D8, - 9555: 0xB5EC, - 9556: 0xB610, - 9557: 0xB611, - 9558: 0xB614, - 9559: 0xB618, - 9560: 0xB625, - 9561: 0xB62C, - 9562: 0xB634, - 9563: 0xB648, - 9564: 0xB664, - 9565: 0xB668, - 9566: 0xB69C, - 9567: 0xB69D, - 9568: 0xB6A0, - 9569: 0xB6A4, - 9570: 0xB6AB, - 9571: 0xB6AC, - 9572: 0xB6B1, - 9573: 0xB6D4, - 9574: 0xB6F0, - 9575: 0xB6F4, - 9576: 0xB6F8, - 9577: 0xB700, - 9578: 0xB701, - 9579: 0xB705, - 9580: 0xB728, - 9581: 0xB729, - 9582: 0xB72C, - 9583: 0xB72F, - 9584: 0xB730, - 9585: 0xB738, - 9586: 0xB739, - 9587: 0xB73B, - 9588: 0xB744, - 9589: 0xB748, - 9590: 0xB74C, - 9591: 0xB754, - 9592: 0xB755, - 9593: 0xB760, - 9594: 0xB764, - 9595: 0xB768, - 9596: 0xB770, - 9597: 0xB771, - 9598: 0xB773, - 9599: 0xB775, - 9600: 0xB77C, - 9601: 0xB77D, - 9602: 0xB780, - 9603: 0xB784, - 9604: 0xB78C, - 9605: 0xB78D, - 9606: 0xB78F, - 9607: 0xB790, - 9608: 0xB791, - 9609: 0xB792, - 9610: 0xB796, - 9611: 0xB797, - 9612: 0xD16E, - 9613: 0xD16F, - 9614: 0xD170, - 9615: 0xD171, - 9616: 0xD172, - 9617: 0xD173, - 9618: 0xD174, - 9619: 0xD175, - 9620: 0xD176, - 9621: 0xD177, - 9622: 0xD178, - 9623: 0xD179, - 9624: 0xD17A, - 9625: 0xD17B, - 9626: 0xD17D, - 9627: 0xD17E, - 9628: 0xD17F, - 9629: 0xD180, - 9630: 0xD181, - 9631: 0xD182, - 9632: 0xD183, - 9633: 0xD185, - 9634: 0xD186, - 9635: 0xD187, - 9636: 0xD189, - 9637: 0xD18A, - 9638: 0xD18B, - 9639: 0xD18C, - 9640: 0xD18D, - 9641: 0xD18E, - 9642: 0xD18F, - 9643: 0xD190, - 9644: 0xD191, - 9645: 0xD192, - 9646: 0xD193, - 9647: 0xD194, - 9648: 0xD195, - 9649: 0xD196, - 9650: 0xD197, - 9651: 0xD198, - 9652: 0xD199, - 9653: 0xD19A, - 9654: 0xD19B, - 9655: 0xD19C, - 9656: 0xD19D, - 9657: 0xD19E, - 9658: 0xD19F, - 9659: 0xD1A2, - 9660: 0xD1A3, - 9661: 0xD1A5, - 9662: 0xD1A6, - 9663: 0xD1A7, - 9664: 0xD1A9, - 9665: 0xD1AA, - 9666: 0xD1AB, - 9667: 0xD1AC, - 9668: 0xD1AD, - 9669: 0xD1AE, - 9670: 0xD1AF, - 9671: 0xD1B2, - 9672: 0xD1B4, - 9673: 0xD1B6, - 9674: 0xD1B7, - 9675: 0xD1B8, - 9676: 0xD1B9, - 9677: 0xD1BB, - 9678: 0xD1BD, - 9679: 0xD1BE, - 9680: 0xD1BF, - 9681: 0xD1C1, - 9682: 0xD1C2, - 9683: 0xD1C3, - 9684: 0xD1C4, - 9685: 0xD1C5, - 9686: 0xD1C6, - 9687: 0xD1C7, - 9688: 0xD1C8, - 9689: 0xD1C9, - 9690: 0xD1CA, - 9691: 0xD1CB, - 9692: 0xD1CC, - 9693: 0xD1CD, - 9694: 0xD1CE, - 9695: 0xD1CF, - 9696: 0xB798, - 9697: 0xB799, - 9698: 0xB79C, - 9699: 0xB7A0, - 9700: 0xB7A8, - 9701: 0xB7A9, - 9702: 0xB7AB, - 9703: 0xB7AC, - 9704: 0xB7AD, - 9705: 0xB7B4, - 9706: 0xB7B5, - 9707: 0xB7B8, - 9708: 0xB7C7, - 9709: 0xB7C9, - 9710: 0xB7EC, - 9711: 0xB7ED, - 9712: 0xB7F0, - 9713: 0xB7F4, - 9714: 0xB7FC, - 9715: 0xB7FD, - 9716: 0xB7FF, - 9717: 0xB800, - 9718: 0xB801, - 9719: 0xB807, - 9720: 0xB808, - 9721: 0xB809, - 9722: 0xB80C, - 9723: 0xB810, - 9724: 0xB818, - 9725: 0xB819, - 9726: 0xB81B, - 9727: 0xB81D, - 9728: 0xB824, - 9729: 0xB825, - 9730: 0xB828, - 9731: 0xB82C, - 9732: 0xB834, - 9733: 0xB835, - 9734: 0xB837, - 9735: 0xB838, - 9736: 0xB839, - 9737: 0xB840, - 9738: 0xB844, - 9739: 0xB851, - 9740: 0xB853, - 9741: 0xB85C, - 9742: 0xB85D, - 9743: 0xB860, - 9744: 0xB864, - 9745: 0xB86C, - 9746: 0xB86D, - 9747: 0xB86F, - 9748: 0xB871, - 9749: 0xB878, - 9750: 0xB87C, - 9751: 0xB88D, - 9752: 0xB8A8, - 9753: 0xB8B0, - 9754: 0xB8B4, - 9755: 0xB8B8, - 9756: 0xB8C0, - 9757: 0xB8C1, - 9758: 0xB8C3, - 9759: 0xB8C5, - 9760: 0xB8CC, - 9761: 0xB8D0, - 9762: 0xB8D4, - 9763: 0xB8DD, - 9764: 0xB8DF, - 9765: 0xB8E1, - 9766: 0xB8E8, - 9767: 0xB8E9, - 9768: 0xB8EC, - 9769: 0xB8F0, - 9770: 0xB8F8, - 9771: 0xB8F9, - 9772: 0xB8FB, - 9773: 0xB8FD, - 9774: 0xB904, - 9775: 0xB918, - 9776: 0xB920, - 9777: 0xB93C, - 9778: 0xB93D, - 9779: 0xB940, - 9780: 0xB944, - 9781: 0xB94C, - 9782: 0xB94F, - 9783: 0xB951, - 9784: 0xB958, - 9785: 0xB959, - 9786: 0xB95C, - 9787: 0xB960, - 9788: 0xB968, - 9789: 0xB969, - 9790: 0xD1D0, - 9791: 0xD1D1, - 9792: 0xD1D2, - 9793: 0xD1D3, - 9794: 0xD1D4, - 9795: 0xD1D5, - 9796: 0xD1D6, - 9797: 0xD1D7, - 9798: 0xD1D9, - 9799: 0xD1DA, - 9800: 0xD1DB, - 9801: 0xD1DC, - 9802: 0xD1DD, - 9803: 0xD1DE, - 9804: 0xD1DF, - 9805: 0xD1E0, - 9806: 0xD1E1, - 9807: 0xD1E2, - 9808: 0xD1E3, - 9809: 0xD1E4, - 9810: 0xD1E5, - 9811: 0xD1E6, - 9812: 0xD1E7, - 9813: 0xD1E8, - 9814: 0xD1E9, - 9815: 0xD1EA, - 9816: 0xD1EB, - 9817: 0xD1EC, - 9818: 0xD1ED, - 9819: 0xD1EE, - 9820: 0xD1EF, - 9821: 0xD1F0, - 9822: 0xD1F1, - 9823: 0xD1F2, - 9824: 0xD1F3, - 9825: 0xD1F5, - 9826: 0xD1F6, - 9827: 0xD1F7, - 9828: 0xD1F9, - 9829: 0xD1FA, - 9830: 0xD1FB, - 9831: 0xD1FC, - 9832: 0xD1FD, - 9833: 0xD1FE, - 9834: 0xD1FF, - 9835: 0xD200, - 9836: 0xD201, - 9837: 0xD202, - 9838: 0xD203, - 9839: 0xD204, - 9840: 0xD205, - 9841: 0xD206, - 9842: 0xD208, - 9843: 0xD20A, - 9844: 0xD20B, - 9845: 0xD20C, - 9846: 0xD20D, - 9847: 0xD20E, - 9848: 0xD20F, - 9849: 0xD211, - 9850: 0xD212, - 9851: 0xD213, - 9852: 0xD214, - 9853: 0xD215, - 9854: 0xD216, - 9855: 0xD217, - 9856: 0xD218, - 9857: 0xD219, - 9858: 0xD21A, - 9859: 0xD21B, - 9860: 0xD21C, - 9861: 0xD21D, - 9862: 0xD21E, - 9863: 0xD21F, - 9864: 0xD220, - 9865: 0xD221, - 9866: 0xD222, - 9867: 0xD223, - 9868: 0xD224, - 9869: 0xD225, - 9870: 0xD226, - 9871: 0xD227, - 9872: 0xD228, - 9873: 0xD229, - 9874: 0xB96B, - 9875: 0xB96D, - 9876: 0xB974, - 9877: 0xB975, - 9878: 0xB978, - 9879: 0xB97C, - 9880: 0xB984, - 9881: 0xB985, - 9882: 0xB987, - 9883: 0xB989, - 9884: 0xB98A, - 9885: 0xB98D, - 9886: 0xB98E, - 9887: 0xB9AC, - 9888: 0xB9AD, - 9889: 0xB9B0, - 9890: 0xB9B4, - 9891: 0xB9BC, - 9892: 0xB9BD, - 9893: 0xB9BF, - 9894: 0xB9C1, - 9895: 0xB9C8, - 9896: 0xB9C9, - 9897: 0xB9CC, - 9898: 0xB9CE, - 9899: 0xB9CF, - 9900: 0xB9D0, - 9901: 0xB9D1, - 9902: 0xB9D2, - 9903: 0xB9D8, - 9904: 0xB9D9, - 9905: 0xB9DB, - 9906: 0xB9DD, - 9907: 0xB9DE, - 9908: 0xB9E1, - 9909: 0xB9E3, - 9910: 0xB9E4, - 9911: 0xB9E5, - 9912: 0xB9E8, - 9913: 0xB9EC, - 9914: 0xB9F4, - 9915: 0xB9F5, - 9916: 0xB9F7, - 9917: 0xB9F8, - 9918: 0xB9F9, - 9919: 0xB9FA, - 9920: 0xBA00, - 9921: 0xBA01, - 9922: 0xBA08, - 9923: 0xBA15, - 9924: 0xBA38, - 9925: 0xBA39, - 9926: 0xBA3C, - 9927: 0xBA40, - 9928: 0xBA42, - 9929: 0xBA48, - 9930: 0xBA49, - 9931: 0xBA4B, - 9932: 0xBA4D, - 9933: 0xBA4E, - 9934: 0xBA53, - 9935: 0xBA54, - 9936: 0xBA55, - 9937: 0xBA58, - 9938: 0xBA5C, - 9939: 0xBA64, - 9940: 0xBA65, - 9941: 0xBA67, - 9942: 0xBA68, - 9943: 0xBA69, - 9944: 0xBA70, - 9945: 0xBA71, - 9946: 0xBA74, - 9947: 0xBA78, - 9948: 0xBA83, - 9949: 0xBA84, - 9950: 0xBA85, - 9951: 0xBA87, - 9952: 0xBA8C, - 9953: 0xBAA8, - 9954: 0xBAA9, - 9955: 0xBAAB, - 9956: 0xBAAC, - 9957: 0xBAB0, - 9958: 0xBAB2, - 9959: 0xBAB8, - 9960: 0xBAB9, - 9961: 0xBABB, - 9962: 0xBABD, - 9963: 0xBAC4, - 9964: 0xBAC8, - 9965: 0xBAD8, - 9966: 0xBAD9, - 9967: 0xBAFC, - 9968: 0xD22A, - 9969: 0xD22B, - 9970: 0xD22E, - 9971: 0xD22F, - 9972: 0xD231, - 9973: 0xD232, - 9974: 0xD233, - 9975: 0xD235, - 9976: 0xD236, - 9977: 0xD237, - 9978: 0xD238, - 9979: 0xD239, - 9980: 0xD23A, - 9981: 0xD23B, - 9982: 0xD23E, - 9983: 0xD240, - 9984: 0xD242, - 9985: 0xD243, - 9986: 0xD244, - 9987: 0xD245, - 9988: 0xD246, - 9989: 0xD247, - 9990: 0xD249, - 9991: 0xD24A, - 9992: 0xD24B, - 9993: 0xD24C, - 9994: 0xD24D, - 9995: 0xD24E, - 9996: 0xD24F, - 9997: 0xD250, - 9998: 0xD251, - 9999: 0xD252, - 10000: 0xD253, - 10001: 0xD254, - 10002: 0xD255, - 10003: 0xD256, - 10004: 0xD257, - 10005: 0xD258, - 10006: 0xD259, - 10007: 0xD25A, - 10008: 0xD25B, - 10009: 0xD25D, - 10010: 0xD25E, - 10011: 0xD25F, - 10012: 0xD260, - 10013: 0xD261, - 10014: 0xD262, - 10015: 0xD263, - 10016: 0xD265, - 10017: 0xD266, - 10018: 0xD267, - 10019: 0xD268, - 10020: 0xD269, - 10021: 0xD26A, - 10022: 0xD26B, - 10023: 0xD26C, - 10024: 0xD26D, - 10025: 0xD26E, - 10026: 0xD26F, - 10027: 0xD270, - 10028: 0xD271, - 10029: 0xD272, - 10030: 0xD273, - 10031: 0xD274, - 10032: 0xD275, - 10033: 0xD276, - 10034: 0xD277, - 10035: 0xD278, - 10036: 0xD279, - 10037: 0xD27A, - 10038: 0xD27B, - 10039: 0xD27C, - 10040: 0xD27D, - 10041: 0xD27E, - 10042: 0xD27F, - 10043: 0xD282, - 10044: 0xD283, - 10045: 0xD285, - 10046: 0xD286, - 10047: 0xD287, - 10048: 0xD289, - 10049: 0xD28A, - 10050: 0xD28B, - 10051: 0xD28C, - 10052: 0xBB00, - 10053: 0xBB04, - 10054: 0xBB0D, - 10055: 0xBB0F, - 10056: 0xBB11, - 10057: 0xBB18, - 10058: 0xBB1C, - 10059: 0xBB20, - 10060: 0xBB29, - 10061: 0xBB2B, - 10062: 0xBB34, - 10063: 0xBB35, - 10064: 0xBB36, - 10065: 0xBB38, - 10066: 0xBB3B, - 10067: 0xBB3C, - 10068: 0xBB3D, - 10069: 0xBB3E, - 10070: 0xBB44, - 10071: 0xBB45, - 10072: 0xBB47, - 10073: 0xBB49, - 10074: 0xBB4D, - 10075: 0xBB4F, - 10076: 0xBB50, - 10077: 0xBB54, - 10078: 0xBB58, - 10079: 0xBB61, - 10080: 0xBB63, - 10081: 0xBB6C, - 10082: 0xBB88, - 10083: 0xBB8C, - 10084: 0xBB90, - 10085: 0xBBA4, - 10086: 0xBBA8, - 10087: 0xBBAC, - 10088: 0xBBB4, - 10089: 0xBBB7, - 10090: 0xBBC0, - 10091: 0xBBC4, - 10092: 0xBBC8, - 10093: 0xBBD0, - 10094: 0xBBD3, - 10095: 0xBBF8, - 10096: 0xBBF9, - 10097: 0xBBFC, - 10098: 0xBBFF, - 10099: 0xBC00, - 10100: 0xBC02, - 10101: 0xBC08, - 10102: 0xBC09, - 10103: 0xBC0B, - 10104: 0xBC0C, - 10105: 0xBC0D, - 10106: 0xBC0F, - 10107: 0xBC11, - 10108: 0xBC14, - 10109: 0xBC15, - 10110: 0xBC16, - 10111: 0xBC17, - 10112: 0xBC18, - 10113: 0xBC1B, - 10114: 0xBC1C, - 10115: 0xBC1D, - 10116: 0xBC1E, - 10117: 0xBC1F, - 10118: 0xBC24, - 10119: 0xBC25, - 10120: 0xBC27, - 10121: 0xBC29, - 10122: 0xBC2D, - 10123: 0xBC30, - 10124: 0xBC31, - 10125: 0xBC34, - 10126: 0xBC38, - 10127: 0xBC40, - 10128: 0xBC41, - 10129: 0xBC43, - 10130: 0xBC44, - 10131: 0xBC45, - 10132: 0xBC49, - 10133: 0xBC4C, - 10134: 0xBC4D, - 10135: 0xBC50, - 10136: 0xBC5D, - 10137: 0xBC84, - 10138: 0xBC85, - 10139: 0xBC88, - 10140: 0xBC8B, - 10141: 0xBC8C, - 10142: 0xBC8E, - 10143: 0xBC94, - 10144: 0xBC95, - 10145: 0xBC97, - 10146: 0xD28D, - 10147: 0xD28E, - 10148: 0xD28F, - 10149: 0xD292, - 10150: 0xD293, - 10151: 0xD294, - 10152: 0xD296, - 10153: 0xD297, - 10154: 0xD298, - 10155: 0xD299, - 10156: 0xD29A, - 10157: 0xD29B, - 10158: 0xD29D, - 10159: 0xD29E, - 10160: 0xD29F, - 10161: 0xD2A1, - 10162: 0xD2A2, - 10163: 0xD2A3, - 10164: 0xD2A5, - 10165: 0xD2A6, - 10166: 0xD2A7, - 10167: 0xD2A8, - 10168: 0xD2A9, - 10169: 0xD2AA, - 10170: 0xD2AB, - 10171: 0xD2AD, - 10172: 0xD2AE, - 10173: 0xD2AF, - 10174: 0xD2B0, - 10175: 0xD2B2, - 10176: 0xD2B3, - 10177: 0xD2B4, - 10178: 0xD2B5, - 10179: 0xD2B6, - 10180: 0xD2B7, - 10181: 0xD2BA, - 10182: 0xD2BB, - 10183: 0xD2BD, - 10184: 0xD2BE, - 10185: 0xD2C1, - 10186: 0xD2C3, - 10187: 0xD2C4, - 10188: 0xD2C5, - 10189: 0xD2C6, - 10190: 0xD2C7, - 10191: 0xD2CA, - 10192: 0xD2CC, - 10193: 0xD2CD, - 10194: 0xD2CE, - 10195: 0xD2CF, - 10196: 0xD2D0, - 10197: 0xD2D1, - 10198: 0xD2D2, - 10199: 0xD2D3, - 10200: 0xD2D5, - 10201: 0xD2D6, - 10202: 0xD2D7, - 10203: 0xD2D9, - 10204: 0xD2DA, - 10205: 0xD2DB, - 10206: 0xD2DD, - 10207: 0xD2DE, - 10208: 0xD2DF, - 10209: 0xD2E0, - 10210: 0xD2E1, - 10211: 0xD2E2, - 10212: 0xD2E3, - 10213: 0xD2E6, - 10214: 0xD2E7, - 10215: 0xD2E8, - 10216: 0xD2E9, - 10217: 0xD2EA, - 10218: 0xD2EB, - 10219: 0xD2EC, - 10220: 0xD2ED, - 10221: 0xD2EE, - 10222: 0xD2EF, - 10223: 0xD2F2, - 10224: 0xD2F3, - 10225: 0xD2F5, - 10226: 0xD2F6, - 10227: 0xD2F7, - 10228: 0xD2F9, - 10229: 0xD2FA, - 10230: 0xBC99, - 10231: 0xBC9A, - 10232: 0xBCA0, - 10233: 0xBCA1, - 10234: 0xBCA4, - 10235: 0xBCA7, - 10236: 0xBCA8, - 10237: 0xBCB0, - 10238: 0xBCB1, - 10239: 0xBCB3, - 10240: 0xBCB4, - 10241: 0xBCB5, - 10242: 0xBCBC, - 10243: 0xBCBD, - 10244: 0xBCC0, - 10245: 0xBCC4, - 10246: 0xBCCD, - 10247: 0xBCCF, - 10248: 0xBCD0, - 10249: 0xBCD1, - 10250: 0xBCD5, - 10251: 0xBCD8, - 10252: 0xBCDC, - 10253: 0xBCF4, - 10254: 0xBCF5, - 10255: 0xBCF6, - 10256: 0xBCF8, - 10257: 0xBCFC, - 10258: 0xBD04, - 10259: 0xBD05, - 10260: 0xBD07, - 10261: 0xBD09, - 10262: 0xBD10, - 10263: 0xBD14, - 10264: 0xBD24, - 10265: 0xBD2C, - 10266: 0xBD40, - 10267: 0xBD48, - 10268: 0xBD49, - 10269: 0xBD4C, - 10270: 0xBD50, - 10271: 0xBD58, - 10272: 0xBD59, - 10273: 0xBD64, - 10274: 0xBD68, - 10275: 0xBD80, - 10276: 0xBD81, - 10277: 0xBD84, - 10278: 0xBD87, - 10279: 0xBD88, - 10280: 0xBD89, - 10281: 0xBD8A, - 10282: 0xBD90, - 10283: 0xBD91, - 10284: 0xBD93, - 10285: 0xBD95, - 10286: 0xBD99, - 10287: 0xBD9A, - 10288: 0xBD9C, - 10289: 0xBDA4, - 10290: 0xBDB0, - 10291: 0xBDB8, - 10292: 0xBDD4, - 10293: 0xBDD5, - 10294: 0xBDD8, - 10295: 0xBDDC, - 10296: 0xBDE9, - 10297: 0xBDF0, - 10298: 0xBDF4, - 10299: 0xBDF8, - 10300: 0xBE00, - 10301: 0xBE03, - 10302: 0xBE05, - 10303: 0xBE0C, - 10304: 0xBE0D, - 10305: 0xBE10, - 10306: 0xBE14, - 10307: 0xBE1C, - 10308: 0xBE1D, - 10309: 0xBE1F, - 10310: 0xBE44, - 10311: 0xBE45, - 10312: 0xBE48, - 10313: 0xBE4C, - 10314: 0xBE4E, - 10315: 0xBE54, - 10316: 0xBE55, - 10317: 0xBE57, - 10318: 0xBE59, - 10319: 0xBE5A, - 10320: 0xBE5B, - 10321: 0xBE60, - 10322: 0xBE61, - 10323: 0xBE64, - 10324: 0xD2FB, - 10325: 0xD2FC, - 10326: 0xD2FD, - 10327: 0xD2FE, - 10328: 0xD2FF, - 10329: 0xD302, - 10330: 0xD304, - 10331: 0xD306, - 10332: 0xD307, - 10333: 0xD308, - 10334: 0xD309, - 10335: 0xD30A, - 10336: 0xD30B, - 10337: 0xD30F, - 10338: 0xD311, - 10339: 0xD312, - 10340: 0xD313, - 10341: 0xD315, - 10342: 0xD317, - 10343: 0xD318, - 10344: 0xD319, - 10345: 0xD31A, - 10346: 0xD31B, - 10347: 0xD31E, - 10348: 0xD322, - 10349: 0xD323, - 10350: 0xD324, - 10351: 0xD326, - 10352: 0xD327, - 10353: 0xD32A, - 10354: 0xD32B, - 10355: 0xD32D, - 10356: 0xD32E, - 10357: 0xD32F, - 10358: 0xD331, - 10359: 0xD332, - 10360: 0xD333, - 10361: 0xD334, - 10362: 0xD335, - 10363: 0xD336, - 10364: 0xD337, - 10365: 0xD33A, - 10366: 0xD33E, - 10367: 0xD33F, - 10368: 0xD340, - 10369: 0xD341, - 10370: 0xD342, - 10371: 0xD343, - 10372: 0xD346, - 10373: 0xD347, - 10374: 0xD348, - 10375: 0xD349, - 10376: 0xD34A, - 10377: 0xD34B, - 10378: 0xD34C, - 10379: 0xD34D, - 10380: 0xD34E, - 10381: 0xD34F, - 10382: 0xD350, - 10383: 0xD351, - 10384: 0xD352, - 10385: 0xD353, - 10386: 0xD354, - 10387: 0xD355, - 10388: 0xD356, - 10389: 0xD357, - 10390: 0xD358, - 10391: 0xD359, - 10392: 0xD35A, - 10393: 0xD35B, - 10394: 0xD35C, - 10395: 0xD35D, - 10396: 0xD35E, - 10397: 0xD35F, - 10398: 0xD360, - 10399: 0xD361, - 10400: 0xD362, - 10401: 0xD363, - 10402: 0xD364, - 10403: 0xD365, - 10404: 0xD366, - 10405: 0xD367, - 10406: 0xD368, - 10407: 0xD369, - 10408: 0xBE68, - 10409: 0xBE6A, - 10410: 0xBE70, - 10411: 0xBE71, - 10412: 0xBE73, - 10413: 0xBE74, - 10414: 0xBE75, - 10415: 0xBE7B, - 10416: 0xBE7C, - 10417: 0xBE7D, - 10418: 0xBE80, - 10419: 0xBE84, - 10420: 0xBE8C, - 10421: 0xBE8D, - 10422: 0xBE8F, - 10423: 0xBE90, - 10424: 0xBE91, - 10425: 0xBE98, - 10426: 0xBE99, - 10427: 0xBEA8, - 10428: 0xBED0, - 10429: 0xBED1, - 10430: 0xBED4, - 10431: 0xBED7, - 10432: 0xBED8, - 10433: 0xBEE0, - 10434: 0xBEE3, - 10435: 0xBEE4, - 10436: 0xBEE5, - 10437: 0xBEEC, - 10438: 0xBF01, - 10439: 0xBF08, - 10440: 0xBF09, - 10441: 0xBF18, - 10442: 0xBF19, - 10443: 0xBF1B, - 10444: 0xBF1C, - 10445: 0xBF1D, - 10446: 0xBF40, - 10447: 0xBF41, - 10448: 0xBF44, - 10449: 0xBF48, - 10450: 0xBF50, - 10451: 0xBF51, - 10452: 0xBF55, - 10453: 0xBF94, - 10454: 0xBFB0, - 10455: 0xBFC5, - 10456: 0xBFCC, - 10457: 0xBFCD, - 10458: 0xBFD0, - 10459: 0xBFD4, - 10460: 0xBFDC, - 10461: 0xBFDF, - 10462: 0xBFE1, - 10463: 0xC03C, - 10464: 0xC051, - 10465: 0xC058, - 10466: 0xC05C, - 10467: 0xC060, - 10468: 0xC068, - 10469: 0xC069, - 10470: 0xC090, - 10471: 0xC091, - 10472: 0xC094, - 10473: 0xC098, - 10474: 0xC0A0, - 10475: 0xC0A1, - 10476: 0xC0A3, - 10477: 0xC0A5, - 10478: 0xC0AC, - 10479: 0xC0AD, - 10480: 0xC0AF, - 10481: 0xC0B0, - 10482: 0xC0B3, - 10483: 0xC0B4, - 10484: 0xC0B5, - 10485: 0xC0B6, - 10486: 0xC0BC, - 10487: 0xC0BD, - 10488: 0xC0BF, - 10489: 0xC0C0, - 10490: 0xC0C1, - 10491: 0xC0C5, - 10492: 0xC0C8, - 10493: 0xC0C9, - 10494: 0xC0CC, - 10495: 0xC0D0, - 10496: 0xC0D8, - 10497: 0xC0D9, - 10498: 0xC0DB, - 10499: 0xC0DC, - 10500: 0xC0DD, - 10501: 0xC0E4, - 10502: 0xD36A, - 10503: 0xD36B, - 10504: 0xD36C, - 10505: 0xD36D, - 10506: 0xD36E, - 10507: 0xD36F, - 10508: 0xD370, - 10509: 0xD371, - 10510: 0xD372, - 10511: 0xD373, - 10512: 0xD374, - 10513: 0xD375, - 10514: 0xD376, - 10515: 0xD377, - 10516: 0xD378, - 10517: 0xD379, - 10518: 0xD37A, - 10519: 0xD37B, - 10520: 0xD37E, - 10521: 0xD37F, - 10522: 0xD381, - 10523: 0xD382, - 10524: 0xD383, - 10525: 0xD385, - 10526: 0xD386, - 10527: 0xD387, - 10528: 0xD388, - 10529: 0xD389, - 10530: 0xD38A, - 10531: 0xD38B, - 10532: 0xD38E, - 10533: 0xD392, - 10534: 0xD393, - 10535: 0xD394, - 10536: 0xD395, - 10537: 0xD396, - 10538: 0xD397, - 10539: 0xD39A, - 10540: 0xD39B, - 10541: 0xD39D, - 10542: 0xD39E, - 10543: 0xD39F, - 10544: 0xD3A1, - 10545: 0xD3A2, - 10546: 0xD3A3, - 10547: 0xD3A4, - 10548: 0xD3A5, - 10549: 0xD3A6, - 10550: 0xD3A7, - 10551: 0xD3AA, - 10552: 0xD3AC, - 10553: 0xD3AE, - 10554: 0xD3AF, - 10555: 0xD3B0, - 10556: 0xD3B1, - 10557: 0xD3B2, - 10558: 0xD3B3, - 10559: 0xD3B5, - 10560: 0xD3B6, - 10561: 0xD3B7, - 10562: 0xD3B9, - 10563: 0xD3BA, - 10564: 0xD3BB, - 10565: 0xD3BD, - 10566: 0xD3BE, - 10567: 0xD3BF, - 10568: 0xD3C0, - 10569: 0xD3C1, - 10570: 0xD3C2, - 10571: 0xD3C3, - 10572: 0xD3C6, - 10573: 0xD3C7, - 10574: 0xD3CA, - 10575: 0xD3CB, - 10576: 0xD3CC, - 10577: 0xD3CD, - 10578: 0xD3CE, - 10579: 0xD3CF, - 10580: 0xD3D1, - 10581: 0xD3D2, - 10582: 0xD3D3, - 10583: 0xD3D4, - 10584: 0xD3D5, - 10585: 0xD3D6, - 10586: 0xC0E5, - 10587: 0xC0E8, - 10588: 0xC0EC, - 10589: 0xC0F4, - 10590: 0xC0F5, - 10591: 0xC0F7, - 10592: 0xC0F9, - 10593: 0xC100, - 10594: 0xC104, - 10595: 0xC108, - 10596: 0xC110, - 10597: 0xC115, - 10598: 0xC11C, - 10599: 0xC11D, - 10600: 0xC11E, - 10601: 0xC11F, - 10602: 0xC120, - 10603: 0xC123, - 10604: 0xC124, - 10605: 0xC126, - 10606: 0xC127, - 10607: 0xC12C, - 10608: 0xC12D, - 10609: 0xC12F, - 10610: 0xC130, - 10611: 0xC131, - 10612: 0xC136, - 10613: 0xC138, - 10614: 0xC139, - 10615: 0xC13C, - 10616: 0xC140, - 10617: 0xC148, - 10618: 0xC149, - 10619: 0xC14B, - 10620: 0xC14C, - 10621: 0xC14D, - 10622: 0xC154, - 10623: 0xC155, - 10624: 0xC158, - 10625: 0xC15C, - 10626: 0xC164, - 10627: 0xC165, - 10628: 0xC167, - 10629: 0xC168, - 10630: 0xC169, - 10631: 0xC170, - 10632: 0xC174, - 10633: 0xC178, - 10634: 0xC185, - 10635: 0xC18C, - 10636: 0xC18D, - 10637: 0xC18E, - 10638: 0xC190, - 10639: 0xC194, - 10640: 0xC196, - 10641: 0xC19C, - 10642: 0xC19D, - 10643: 0xC19F, - 10644: 0xC1A1, - 10645: 0xC1A5, - 10646: 0xC1A8, - 10647: 0xC1A9, - 10648: 0xC1AC, - 10649: 0xC1B0, - 10650: 0xC1BD, - 10651: 0xC1C4, - 10652: 0xC1C8, - 10653: 0xC1CC, - 10654: 0xC1D4, - 10655: 0xC1D7, - 10656: 0xC1D8, - 10657: 0xC1E0, - 10658: 0xC1E4, - 10659: 0xC1E8, - 10660: 0xC1F0, - 10661: 0xC1F1, - 10662: 0xC1F3, - 10663: 0xC1FC, - 10664: 0xC1FD, - 10665: 0xC200, - 10666: 0xC204, - 10667: 0xC20C, - 10668: 0xC20D, - 10669: 0xC20F, - 10670: 0xC211, - 10671: 0xC218, - 10672: 0xC219, - 10673: 0xC21C, - 10674: 0xC21F, - 10675: 0xC220, - 10676: 0xC228, - 10677: 0xC229, - 10678: 0xC22B, - 10679: 0xC22D, - 10680: 0xD3D7, - 10681: 0xD3D9, - 10682: 0xD3DA, - 10683: 0xD3DB, - 10684: 0xD3DC, - 10685: 0xD3DD, - 10686: 0xD3DE, - 10687: 0xD3DF, - 10688: 0xD3E0, - 10689: 0xD3E2, - 10690: 0xD3E4, - 10691: 0xD3E5, - 10692: 0xD3E6, - 10693: 0xD3E7, - 10694: 0xD3E8, - 10695: 0xD3E9, - 10696: 0xD3EA, - 10697: 0xD3EB, - 10698: 0xD3EE, - 10699: 0xD3EF, - 10700: 0xD3F1, - 10701: 0xD3F2, - 10702: 0xD3F3, - 10703: 0xD3F5, - 10704: 0xD3F6, - 10705: 0xD3F7, - 10706: 0xD3F8, - 10707: 0xD3F9, - 10708: 0xD3FA, - 10709: 0xD3FB, - 10710: 0xD3FE, - 10711: 0xD400, - 10712: 0xD402, - 10713: 0xD403, - 10714: 0xD404, - 10715: 0xD405, - 10716: 0xD406, - 10717: 0xD407, - 10718: 0xD409, - 10719: 0xD40A, - 10720: 0xD40B, - 10721: 0xD40C, - 10722: 0xD40D, - 10723: 0xD40E, - 10724: 0xD40F, - 10725: 0xD410, - 10726: 0xD411, - 10727: 0xD412, - 10728: 0xD413, - 10729: 0xD414, - 10730: 0xD415, - 10731: 0xD416, - 10732: 0xD417, - 10733: 0xD418, - 10734: 0xD419, - 10735: 0xD41A, - 10736: 0xD41B, - 10737: 0xD41C, - 10738: 0xD41E, - 10739: 0xD41F, - 10740: 0xD420, - 10741: 0xD421, - 10742: 0xD422, - 10743: 0xD423, - 10744: 0xD424, - 10745: 0xD425, - 10746: 0xD426, - 10747: 0xD427, - 10748: 0xD428, - 10749: 0xD429, - 10750: 0xD42A, - 10751: 0xD42B, - 10752: 0xD42C, - 10753: 0xD42D, - 10754: 0xD42E, - 10755: 0xD42F, - 10756: 0xD430, - 10757: 0xD431, - 10758: 0xD432, - 10759: 0xD433, - 10760: 0xD434, - 10761: 0xD435, - 10762: 0xD436, - 10763: 0xD437, - 10764: 0xC22F, - 10765: 0xC231, - 10766: 0xC232, - 10767: 0xC234, - 10768: 0xC248, - 10769: 0xC250, - 10770: 0xC251, - 10771: 0xC254, - 10772: 0xC258, - 10773: 0xC260, - 10774: 0xC265, - 10775: 0xC26C, - 10776: 0xC26D, - 10777: 0xC270, - 10778: 0xC274, - 10779: 0xC27C, - 10780: 0xC27D, - 10781: 0xC27F, - 10782: 0xC281, - 10783: 0xC288, - 10784: 0xC289, - 10785: 0xC290, - 10786: 0xC298, - 10787: 0xC29B, - 10788: 0xC29D, - 10789: 0xC2A4, - 10790: 0xC2A5, - 10791: 0xC2A8, - 10792: 0xC2AC, - 10793: 0xC2AD, - 10794: 0xC2B4, - 10795: 0xC2B5, - 10796: 0xC2B7, - 10797: 0xC2B9, - 10798: 0xC2DC, - 10799: 0xC2DD, - 10800: 0xC2E0, - 10801: 0xC2E3, - 10802: 0xC2E4, - 10803: 0xC2EB, - 10804: 0xC2EC, - 10805: 0xC2ED, - 10806: 0xC2EF, - 10807: 0xC2F1, - 10808: 0xC2F6, - 10809: 0xC2F8, - 10810: 0xC2F9, - 10811: 0xC2FB, - 10812: 0xC2FC, - 10813: 0xC300, - 10814: 0xC308, - 10815: 0xC309, - 10816: 0xC30C, - 10817: 0xC30D, - 10818: 0xC313, - 10819: 0xC314, - 10820: 0xC315, - 10821: 0xC318, - 10822: 0xC31C, - 10823: 0xC324, - 10824: 0xC325, - 10825: 0xC328, - 10826: 0xC329, - 10827: 0xC345, - 10828: 0xC368, - 10829: 0xC369, - 10830: 0xC36C, - 10831: 0xC370, - 10832: 0xC372, - 10833: 0xC378, - 10834: 0xC379, - 10835: 0xC37C, - 10836: 0xC37D, - 10837: 0xC384, - 10838: 0xC388, - 10839: 0xC38C, - 10840: 0xC3C0, - 10841: 0xC3D8, - 10842: 0xC3D9, - 10843: 0xC3DC, - 10844: 0xC3DF, - 10845: 0xC3E0, - 10846: 0xC3E2, - 10847: 0xC3E8, - 10848: 0xC3E9, - 10849: 0xC3ED, - 10850: 0xC3F4, - 10851: 0xC3F5, - 10852: 0xC3F8, - 10853: 0xC408, - 10854: 0xC410, - 10855: 0xC424, - 10856: 0xC42C, - 10857: 0xC430, - 10858: 0xD438, - 10859: 0xD439, - 10860: 0xD43A, - 10861: 0xD43B, - 10862: 0xD43C, - 10863: 0xD43D, - 10864: 0xD43E, - 10865: 0xD43F, - 10866: 0xD441, - 10867: 0xD442, - 10868: 0xD443, - 10869: 0xD445, - 10870: 0xD446, - 10871: 0xD447, - 10872: 0xD448, - 10873: 0xD449, - 10874: 0xD44A, - 10875: 0xD44B, - 10876: 0xD44C, - 10877: 0xD44D, - 10878: 0xD44E, - 10879: 0xD44F, - 10880: 0xD450, - 10881: 0xD451, - 10882: 0xD452, - 10883: 0xD453, - 10884: 0xD454, - 10885: 0xD455, - 10886: 0xD456, - 10887: 0xD457, - 10888: 0xD458, - 10889: 0xD459, - 10890: 0xD45A, - 10891: 0xD45B, - 10892: 0xD45D, - 10893: 0xD45E, - 10894: 0xD45F, - 10895: 0xD461, - 10896: 0xD462, - 10897: 0xD463, - 10898: 0xD465, - 10899: 0xD466, - 10900: 0xD467, - 10901: 0xD468, - 10902: 0xD469, - 10903: 0xD46A, - 10904: 0xD46B, - 10905: 0xD46C, - 10906: 0xD46E, - 10907: 0xD470, - 10908: 0xD471, - 10909: 0xD472, - 10910: 0xD473, - 10911: 0xD474, - 10912: 0xD475, - 10913: 0xD476, - 10914: 0xD477, - 10915: 0xD47A, - 10916: 0xD47B, - 10917: 0xD47D, - 10918: 0xD47E, - 10919: 0xD481, - 10920: 0xD483, - 10921: 0xD484, - 10922: 0xD485, - 10923: 0xD486, - 10924: 0xD487, - 10925: 0xD48A, - 10926: 0xD48C, - 10927: 0xD48E, - 10928: 0xD48F, - 10929: 0xD490, - 10930: 0xD491, - 10931: 0xD492, - 10932: 0xD493, - 10933: 0xD495, - 10934: 0xD496, - 10935: 0xD497, - 10936: 0xD498, - 10937: 0xD499, - 10938: 0xD49A, - 10939: 0xD49B, - 10940: 0xD49C, - 10941: 0xD49D, - 10942: 0xC434, - 10943: 0xC43C, - 10944: 0xC43D, - 10945: 0xC448, - 10946: 0xC464, - 10947: 0xC465, - 10948: 0xC468, - 10949: 0xC46C, - 10950: 0xC474, - 10951: 0xC475, - 10952: 0xC479, - 10953: 0xC480, - 10954: 0xC494, - 10955: 0xC49C, - 10956: 0xC4B8, - 10957: 0xC4BC, - 10958: 0xC4E9, - 10959: 0xC4F0, - 10960: 0xC4F1, - 10961: 0xC4F4, - 10962: 0xC4F8, - 10963: 0xC4FA, - 10964: 0xC4FF, - 10965: 0xC500, - 10966: 0xC501, - 10967: 0xC50C, - 10968: 0xC510, - 10969: 0xC514, - 10970: 0xC51C, - 10971: 0xC528, - 10972: 0xC529, - 10973: 0xC52C, - 10974: 0xC530, - 10975: 0xC538, - 10976: 0xC539, - 10977: 0xC53B, - 10978: 0xC53D, - 10979: 0xC544, - 10980: 0xC545, - 10981: 0xC548, - 10982: 0xC549, - 10983: 0xC54A, - 10984: 0xC54C, - 10985: 0xC54D, - 10986: 0xC54E, - 10987: 0xC553, - 10988: 0xC554, - 10989: 0xC555, - 10990: 0xC557, - 10991: 0xC558, - 10992: 0xC559, - 10993: 0xC55D, - 10994: 0xC55E, - 10995: 0xC560, - 10996: 0xC561, - 10997: 0xC564, - 10998: 0xC568, - 10999: 0xC570, - 11000: 0xC571, - 11001: 0xC573, - 11002: 0xC574, - 11003: 0xC575, - 11004: 0xC57C, - 11005: 0xC57D, - 11006: 0xC580, - 11007: 0xC584, - 11008: 0xC587, - 11009: 0xC58C, - 11010: 0xC58D, - 11011: 0xC58F, - 11012: 0xC591, - 11013: 0xC595, - 11014: 0xC597, - 11015: 0xC598, - 11016: 0xC59C, - 11017: 0xC5A0, - 11018: 0xC5A9, - 11019: 0xC5B4, - 11020: 0xC5B5, - 11021: 0xC5B8, - 11022: 0xC5B9, - 11023: 0xC5BB, - 11024: 0xC5BC, - 11025: 0xC5BD, - 11026: 0xC5BE, - 11027: 0xC5C4, - 11028: 0xC5C5, - 11029: 0xC5C6, - 11030: 0xC5C7, - 11031: 0xC5C8, - 11032: 0xC5C9, - 11033: 0xC5CA, - 11034: 0xC5CC, - 11035: 0xC5CE, - 11036: 0xD49E, - 11037: 0xD49F, - 11038: 0xD4A0, - 11039: 0xD4A1, - 11040: 0xD4A2, - 11041: 0xD4A3, - 11042: 0xD4A4, - 11043: 0xD4A5, - 11044: 0xD4A6, - 11045: 0xD4A7, - 11046: 0xD4A8, - 11047: 0xD4AA, - 11048: 0xD4AB, - 11049: 0xD4AC, - 11050: 0xD4AD, - 11051: 0xD4AE, - 11052: 0xD4AF, - 11053: 0xD4B0, - 11054: 0xD4B1, - 11055: 0xD4B2, - 11056: 0xD4B3, - 11057: 0xD4B4, - 11058: 0xD4B5, - 11059: 0xD4B6, - 11060: 0xD4B7, - 11061: 0xD4B8, - 11062: 0xD4B9, - 11063: 0xD4BA, - 11064: 0xD4BB, - 11065: 0xD4BC, - 11066: 0xD4BD, - 11067: 0xD4BE, - 11068: 0xD4BF, - 11069: 0xD4C0, - 11070: 0xD4C1, - 11071: 0xD4C2, - 11072: 0xD4C3, - 11073: 0xD4C4, - 11074: 0xD4C5, - 11075: 0xD4C6, - 11076: 0xD4C7, - 11077: 0xD4C8, - 11078: 0xD4C9, - 11079: 0xD4CA, - 11080: 0xD4CB, - 11081: 0xD4CD, - 11082: 0xD4CE, - 11083: 0xD4CF, - 11084: 0xD4D1, - 11085: 0xD4D2, - 11086: 0xD4D3, - 11087: 0xD4D5, - 11088: 0xD4D6, - 11089: 0xD4D7, - 11090: 0xD4D8, - 11091: 0xD4D9, - 11092: 0xD4DA, - 11093: 0xD4DB, - 11094: 0xD4DD, - 11095: 0xD4DE, - 11096: 0xD4E0, - 11097: 0xD4E1, - 11098: 0xD4E2, - 11099: 0xD4E3, - 11100: 0xD4E4, - 11101: 0xD4E5, - 11102: 0xD4E6, - 11103: 0xD4E7, - 11104: 0xD4E9, - 11105: 0xD4EA, - 11106: 0xD4EB, - 11107: 0xD4ED, - 11108: 0xD4EE, - 11109: 0xD4EF, - 11110: 0xD4F1, - 11111: 0xD4F2, - 11112: 0xD4F3, - 11113: 0xD4F4, - 11114: 0xD4F5, - 11115: 0xD4F6, - 11116: 0xD4F7, - 11117: 0xD4F9, - 11118: 0xD4FA, - 11119: 0xD4FC, - 11120: 0xC5D0, - 11121: 0xC5D1, - 11122: 0xC5D4, - 11123: 0xC5D8, - 11124: 0xC5E0, - 11125: 0xC5E1, - 11126: 0xC5E3, - 11127: 0xC5E5, - 11128: 0xC5EC, - 11129: 0xC5ED, - 11130: 0xC5EE, - 11131: 0xC5F0, - 11132: 0xC5F4, - 11133: 0xC5F6, - 11134: 0xC5F7, - 11135: 0xC5FC, - 11136: 0xC5FD, - 11137: 0xC5FE, - 11138: 0xC5FF, - 11139: 0xC600, - 11140: 0xC601, - 11141: 0xC605, - 11142: 0xC606, - 11143: 0xC607, - 11144: 0xC608, - 11145: 0xC60C, - 11146: 0xC610, - 11147: 0xC618, - 11148: 0xC619, - 11149: 0xC61B, - 11150: 0xC61C, - 11151: 0xC624, - 11152: 0xC625, - 11153: 0xC628, - 11154: 0xC62C, - 11155: 0xC62D, - 11156: 0xC62E, - 11157: 0xC630, - 11158: 0xC633, - 11159: 0xC634, - 11160: 0xC635, - 11161: 0xC637, - 11162: 0xC639, - 11163: 0xC63B, - 11164: 0xC640, - 11165: 0xC641, - 11166: 0xC644, - 11167: 0xC648, - 11168: 0xC650, - 11169: 0xC651, - 11170: 0xC653, - 11171: 0xC654, - 11172: 0xC655, - 11173: 0xC65C, - 11174: 0xC65D, - 11175: 0xC660, - 11176: 0xC66C, - 11177: 0xC66F, - 11178: 0xC671, - 11179: 0xC678, - 11180: 0xC679, - 11181: 0xC67C, - 11182: 0xC680, - 11183: 0xC688, - 11184: 0xC689, - 11185: 0xC68B, - 11186: 0xC68D, - 11187: 0xC694, - 11188: 0xC695, - 11189: 0xC698, - 11190: 0xC69C, - 11191: 0xC6A4, - 11192: 0xC6A5, - 11193: 0xC6A7, - 11194: 0xC6A9, - 11195: 0xC6B0, - 11196: 0xC6B1, - 11197: 0xC6B4, - 11198: 0xC6B8, - 11199: 0xC6B9, - 11200: 0xC6BA, - 11201: 0xC6C0, - 11202: 0xC6C1, - 11203: 0xC6C3, - 11204: 0xC6C5, - 11205: 0xC6CC, - 11206: 0xC6CD, - 11207: 0xC6D0, - 11208: 0xC6D4, - 11209: 0xC6DC, - 11210: 0xC6DD, - 11211: 0xC6E0, - 11212: 0xC6E1, - 11213: 0xC6E8, - 11214: 0xD4FE, - 11215: 0xD4FF, - 11216: 0xD500, - 11217: 0xD501, - 11218: 0xD502, - 11219: 0xD503, - 11220: 0xD505, - 11221: 0xD506, - 11222: 0xD507, - 11223: 0xD509, - 11224: 0xD50A, - 11225: 0xD50B, - 11226: 0xD50D, - 11227: 0xD50E, - 11228: 0xD50F, - 11229: 0xD510, - 11230: 0xD511, - 11231: 0xD512, - 11232: 0xD513, - 11233: 0xD516, - 11234: 0xD518, - 11235: 0xD519, - 11236: 0xD51A, - 11237: 0xD51B, - 11238: 0xD51C, - 11239: 0xD51D, - 11240: 0xD51E, - 11241: 0xD51F, - 11242: 0xD520, - 11243: 0xD521, - 11244: 0xD522, - 11245: 0xD523, - 11246: 0xD524, - 11247: 0xD525, - 11248: 0xD526, - 11249: 0xD527, - 11250: 0xD528, - 11251: 0xD529, - 11252: 0xD52A, - 11253: 0xD52B, - 11254: 0xD52C, - 11255: 0xD52D, - 11256: 0xD52E, - 11257: 0xD52F, - 11258: 0xD530, - 11259: 0xD531, - 11260: 0xD532, - 11261: 0xD533, - 11262: 0xD534, - 11263: 0xD535, - 11264: 0xD536, - 11265: 0xD537, - 11266: 0xD538, - 11267: 0xD539, - 11268: 0xD53A, - 11269: 0xD53B, - 11270: 0xD53E, - 11271: 0xD53F, - 11272: 0xD541, - 11273: 0xD542, - 11274: 0xD543, - 11275: 0xD545, - 11276: 0xD546, - 11277: 0xD547, - 11278: 0xD548, - 11279: 0xD549, - 11280: 0xD54A, - 11281: 0xD54B, - 11282: 0xD54E, - 11283: 0xD550, - 11284: 0xD552, - 11285: 0xD553, - 11286: 0xD554, - 11287: 0xD555, - 11288: 0xD556, - 11289: 0xD557, - 11290: 0xD55A, - 11291: 0xD55B, - 11292: 0xD55D, - 11293: 0xD55E, - 11294: 0xD55F, - 11295: 0xD561, - 11296: 0xD562, - 11297: 0xD563, - 11298: 0xC6E9, - 11299: 0xC6EC, - 11300: 0xC6F0, - 11301: 0xC6F8, - 11302: 0xC6F9, - 11303: 0xC6FD, - 11304: 0xC704, - 11305: 0xC705, - 11306: 0xC708, - 11307: 0xC70C, - 11308: 0xC714, - 11309: 0xC715, - 11310: 0xC717, - 11311: 0xC719, - 11312: 0xC720, - 11313: 0xC721, - 11314: 0xC724, - 11315: 0xC728, - 11316: 0xC730, - 11317: 0xC731, - 11318: 0xC733, - 11319: 0xC735, - 11320: 0xC737, - 11321: 0xC73C, - 11322: 0xC73D, - 11323: 0xC740, - 11324: 0xC744, - 11325: 0xC74A, - 11326: 0xC74C, - 11327: 0xC74D, - 11328: 0xC74F, - 11329: 0xC751, - 11330: 0xC752, - 11331: 0xC753, - 11332: 0xC754, - 11333: 0xC755, - 11334: 0xC756, - 11335: 0xC757, - 11336: 0xC758, - 11337: 0xC75C, - 11338: 0xC760, - 11339: 0xC768, - 11340: 0xC76B, - 11341: 0xC774, - 11342: 0xC775, - 11343: 0xC778, - 11344: 0xC77C, - 11345: 0xC77D, - 11346: 0xC77E, - 11347: 0xC783, - 11348: 0xC784, - 11349: 0xC785, - 11350: 0xC787, - 11351: 0xC788, - 11352: 0xC789, - 11353: 0xC78A, - 11354: 0xC78E, - 11355: 0xC790, - 11356: 0xC791, - 11357: 0xC794, - 11358: 0xC796, - 11359: 0xC797, - 11360: 0xC798, - 11361: 0xC79A, - 11362: 0xC7A0, - 11363: 0xC7A1, - 11364: 0xC7A3, - 11365: 0xC7A4, - 11366: 0xC7A5, - 11367: 0xC7A6, - 11368: 0xC7AC, - 11369: 0xC7AD, - 11370: 0xC7B0, - 11371: 0xC7B4, - 11372: 0xC7BC, - 11373: 0xC7BD, - 11374: 0xC7BF, - 11375: 0xC7C0, - 11376: 0xC7C1, - 11377: 0xC7C8, - 11378: 0xC7C9, - 11379: 0xC7CC, - 11380: 0xC7CE, - 11381: 0xC7D0, - 11382: 0xC7D8, - 11383: 0xC7DD, - 11384: 0xC7E4, - 11385: 0xC7E8, - 11386: 0xC7EC, - 11387: 0xC800, - 11388: 0xC801, - 11389: 0xC804, - 11390: 0xC808, - 11391: 0xC80A, - 11392: 0xD564, - 11393: 0xD566, - 11394: 0xD567, - 11395: 0xD56A, - 11396: 0xD56C, - 11397: 0xD56E, - 11398: 0xD56F, - 11399: 0xD570, - 11400: 0xD571, - 11401: 0xD572, - 11402: 0xD573, - 11403: 0xD576, - 11404: 0xD577, - 11405: 0xD579, - 11406: 0xD57A, - 11407: 0xD57B, - 11408: 0xD57D, - 11409: 0xD57E, - 11410: 0xD57F, - 11411: 0xD580, - 11412: 0xD581, - 11413: 0xD582, - 11414: 0xD583, - 11415: 0xD586, - 11416: 0xD58A, - 11417: 0xD58B, - 11418: 0xD58C, - 11419: 0xD58D, - 11420: 0xD58E, - 11421: 0xD58F, - 11422: 0xD591, - 11423: 0xD592, - 11424: 0xD593, - 11425: 0xD594, - 11426: 0xD595, - 11427: 0xD596, - 11428: 0xD597, - 11429: 0xD598, - 11430: 0xD599, - 11431: 0xD59A, - 11432: 0xD59B, - 11433: 0xD59C, - 11434: 0xD59D, - 11435: 0xD59E, - 11436: 0xD59F, - 11437: 0xD5A0, - 11438: 0xD5A1, - 11439: 0xD5A2, - 11440: 0xD5A3, - 11441: 0xD5A4, - 11442: 0xD5A6, - 11443: 0xD5A7, - 11444: 0xD5A8, - 11445: 0xD5A9, - 11446: 0xD5AA, - 11447: 0xD5AB, - 11448: 0xD5AC, - 11449: 0xD5AD, - 11450: 0xD5AE, - 11451: 0xD5AF, - 11452: 0xD5B0, - 11453: 0xD5B1, - 11454: 0xD5B2, - 11455: 0xD5B3, - 11456: 0xD5B4, - 11457: 0xD5B5, - 11458: 0xD5B6, - 11459: 0xD5B7, - 11460: 0xD5B8, - 11461: 0xD5B9, - 11462: 0xD5BA, - 11463: 0xD5BB, - 11464: 0xD5BC, - 11465: 0xD5BD, - 11466: 0xD5BE, - 11467: 0xD5BF, - 11468: 0xD5C0, - 11469: 0xD5C1, - 11470: 0xD5C2, - 11471: 0xD5C3, - 11472: 0xD5C4, - 11473: 0xD5C5, - 11474: 0xD5C6, - 11475: 0xD5C7, - 11476: 0xC810, - 11477: 0xC811, - 11478: 0xC813, - 11479: 0xC815, - 11480: 0xC816, - 11481: 0xC81C, - 11482: 0xC81D, - 11483: 0xC820, - 11484: 0xC824, - 11485: 0xC82C, - 11486: 0xC82D, - 11487: 0xC82F, - 11488: 0xC831, - 11489: 0xC838, - 11490: 0xC83C, - 11491: 0xC840, - 11492: 0xC848, - 11493: 0xC849, - 11494: 0xC84C, - 11495: 0xC84D, - 11496: 0xC854, - 11497: 0xC870, - 11498: 0xC871, - 11499: 0xC874, - 11500: 0xC878, - 11501: 0xC87A, - 11502: 0xC880, - 11503: 0xC881, - 11504: 0xC883, - 11505: 0xC885, - 11506: 0xC886, - 11507: 0xC887, - 11508: 0xC88B, - 11509: 0xC88C, - 11510: 0xC88D, - 11511: 0xC894, - 11512: 0xC89D, - 11513: 0xC89F, - 11514: 0xC8A1, - 11515: 0xC8A8, - 11516: 0xC8BC, - 11517: 0xC8BD, - 11518: 0xC8C4, - 11519: 0xC8C8, - 11520: 0xC8CC, - 11521: 0xC8D4, - 11522: 0xC8D5, - 11523: 0xC8D7, - 11524: 0xC8D9, - 11525: 0xC8E0, - 11526: 0xC8E1, - 11527: 0xC8E4, - 11528: 0xC8F5, - 11529: 0xC8FC, - 11530: 0xC8FD, - 11531: 0xC900, - 11532: 0xC904, - 11533: 0xC905, - 11534: 0xC906, - 11535: 0xC90C, - 11536: 0xC90D, - 11537: 0xC90F, - 11538: 0xC911, - 11539: 0xC918, - 11540: 0xC92C, - 11541: 0xC934, - 11542: 0xC950, - 11543: 0xC951, - 11544: 0xC954, - 11545: 0xC958, - 11546: 0xC960, - 11547: 0xC961, - 11548: 0xC963, - 11549: 0xC96C, - 11550: 0xC970, - 11551: 0xC974, - 11552: 0xC97C, - 11553: 0xC988, - 11554: 0xC989, - 11555: 0xC98C, - 11556: 0xC990, - 11557: 0xC998, - 11558: 0xC999, - 11559: 0xC99B, - 11560: 0xC99D, - 11561: 0xC9C0, - 11562: 0xC9C1, - 11563: 0xC9C4, - 11564: 0xC9C7, - 11565: 0xC9C8, - 11566: 0xC9CA, - 11567: 0xC9D0, - 11568: 0xC9D1, - 11569: 0xC9D3, - 11570: 0xD5CA, - 11571: 0xD5CB, - 11572: 0xD5CD, - 11573: 0xD5CE, - 11574: 0xD5CF, - 11575: 0xD5D1, - 11576: 0xD5D3, - 11577: 0xD5D4, - 11578: 0xD5D5, - 11579: 0xD5D6, - 11580: 0xD5D7, - 11581: 0xD5DA, - 11582: 0xD5DC, - 11583: 0xD5DE, - 11584: 0xD5DF, - 11585: 0xD5E0, - 11586: 0xD5E1, - 11587: 0xD5E2, - 11588: 0xD5E3, - 11589: 0xD5E6, - 11590: 0xD5E7, - 11591: 0xD5E9, - 11592: 0xD5EA, - 11593: 0xD5EB, - 11594: 0xD5ED, - 11595: 0xD5EE, - 11596: 0xD5EF, - 11597: 0xD5F0, - 11598: 0xD5F1, - 11599: 0xD5F2, - 11600: 0xD5F3, - 11601: 0xD5F6, - 11602: 0xD5F8, - 11603: 0xD5FA, - 11604: 0xD5FB, - 11605: 0xD5FC, - 11606: 0xD5FD, - 11607: 0xD5FE, - 11608: 0xD5FF, - 11609: 0xD602, - 11610: 0xD603, - 11611: 0xD605, - 11612: 0xD606, - 11613: 0xD607, - 11614: 0xD609, - 11615: 0xD60A, - 11616: 0xD60B, - 11617: 0xD60C, - 11618: 0xD60D, - 11619: 0xD60E, - 11620: 0xD60F, - 11621: 0xD612, - 11622: 0xD616, - 11623: 0xD617, - 11624: 0xD618, - 11625: 0xD619, - 11626: 0xD61A, - 11627: 0xD61B, - 11628: 0xD61D, - 11629: 0xD61E, - 11630: 0xD61F, - 11631: 0xD621, - 11632: 0xD622, - 11633: 0xD623, - 11634: 0xD625, - 11635: 0xD626, - 11636: 0xD627, - 11637: 0xD628, - 11638: 0xD629, - 11639: 0xD62A, - 11640: 0xD62B, - 11641: 0xD62C, - 11642: 0xD62E, - 11643: 0xD62F, - 11644: 0xD630, - 11645: 0xD631, - 11646: 0xD632, - 11647: 0xD633, - 11648: 0xD634, - 11649: 0xD635, - 11650: 0xD636, - 11651: 0xD637, - 11652: 0xD63A, - 11653: 0xD63B, - 11654: 0xC9D5, - 11655: 0xC9D6, - 11656: 0xC9D9, - 11657: 0xC9DA, - 11658: 0xC9DC, - 11659: 0xC9DD, - 11660: 0xC9E0, - 11661: 0xC9E2, - 11662: 0xC9E4, - 11663: 0xC9E7, - 11664: 0xC9EC, - 11665: 0xC9ED, - 11666: 0xC9EF, - 11667: 0xC9F0, - 11668: 0xC9F1, - 11669: 0xC9F8, - 11670: 0xC9F9, - 11671: 0xC9FC, - 11672: 0xCA00, - 11673: 0xCA08, - 11674: 0xCA09, - 11675: 0xCA0B, - 11676: 0xCA0C, - 11677: 0xCA0D, - 11678: 0xCA14, - 11679: 0xCA18, - 11680: 0xCA29, - 11681: 0xCA4C, - 11682: 0xCA4D, - 11683: 0xCA50, - 11684: 0xCA54, - 11685: 0xCA5C, - 11686: 0xCA5D, - 11687: 0xCA5F, - 11688: 0xCA60, - 11689: 0xCA61, - 11690: 0xCA68, - 11691: 0xCA7D, - 11692: 0xCA84, - 11693: 0xCA98, - 11694: 0xCABC, - 11695: 0xCABD, - 11696: 0xCAC0, - 11697: 0xCAC4, - 11698: 0xCACC, - 11699: 0xCACD, - 11700: 0xCACF, - 11701: 0xCAD1, - 11702: 0xCAD3, - 11703: 0xCAD8, - 11704: 0xCAD9, - 11705: 0xCAE0, - 11706: 0xCAEC, - 11707: 0xCAF4, - 11708: 0xCB08, - 11709: 0xCB10, - 11710: 0xCB14, - 11711: 0xCB18, - 11712: 0xCB20, - 11713: 0xCB21, - 11714: 0xCB41, - 11715: 0xCB48, - 11716: 0xCB49, - 11717: 0xCB4C, - 11718: 0xCB50, - 11719: 0xCB58, - 11720: 0xCB59, - 11721: 0xCB5D, - 11722: 0xCB64, - 11723: 0xCB78, - 11724: 0xCB79, - 11725: 0xCB9C, - 11726: 0xCBB8, - 11727: 0xCBD4, - 11728: 0xCBE4, - 11729: 0xCBE7, - 11730: 0xCBE9, - 11731: 0xCC0C, - 11732: 0xCC0D, - 11733: 0xCC10, - 11734: 0xCC14, - 11735: 0xCC1C, - 11736: 0xCC1D, - 11737: 0xCC21, - 11738: 0xCC22, - 11739: 0xCC27, - 11740: 0xCC28, - 11741: 0xCC29, - 11742: 0xCC2C, - 11743: 0xCC2E, - 11744: 0xCC30, - 11745: 0xCC38, - 11746: 0xCC39, - 11747: 0xCC3B, - 11748: 0xD63D, - 11749: 0xD63E, - 11750: 0xD63F, - 11751: 0xD641, - 11752: 0xD642, - 11753: 0xD643, - 11754: 0xD644, - 11755: 0xD646, - 11756: 0xD647, - 11757: 0xD64A, - 11758: 0xD64C, - 11759: 0xD64E, - 11760: 0xD64F, - 11761: 0xD650, - 11762: 0xD652, - 11763: 0xD653, - 11764: 0xD656, - 11765: 0xD657, - 11766: 0xD659, - 11767: 0xD65A, - 11768: 0xD65B, - 11769: 0xD65D, - 11770: 0xD65E, - 11771: 0xD65F, - 11772: 0xD660, - 11773: 0xD661, - 11774: 0xD662, - 11775: 0xD663, - 11776: 0xD664, - 11777: 0xD665, - 11778: 0xD666, - 11779: 0xD668, - 11780: 0xD66A, - 11781: 0xD66B, - 11782: 0xD66C, - 11783: 0xD66D, - 11784: 0xD66E, - 11785: 0xD66F, - 11786: 0xD672, - 11787: 0xD673, - 11788: 0xD675, - 11789: 0xD676, - 11790: 0xD677, - 11791: 0xD678, - 11792: 0xD679, - 11793: 0xD67A, - 11794: 0xD67B, - 11795: 0xD67C, - 11796: 0xD67D, - 11797: 0xD67E, - 11798: 0xD67F, - 11799: 0xD680, - 11800: 0xD681, - 11801: 0xD682, - 11802: 0xD684, - 11803: 0xD686, - 11804: 0xD687, - 11805: 0xD688, - 11806: 0xD689, - 11807: 0xD68A, - 11808: 0xD68B, - 11809: 0xD68E, - 11810: 0xD68F, - 11811: 0xD691, - 11812: 0xD692, - 11813: 0xD693, - 11814: 0xD695, - 11815: 0xD696, - 11816: 0xD697, - 11817: 0xD698, - 11818: 0xD699, - 11819: 0xD69A, - 11820: 0xD69B, - 11821: 0xD69C, - 11822: 0xD69E, - 11823: 0xD6A0, - 11824: 0xD6A2, - 11825: 0xD6A3, - 11826: 0xD6A4, - 11827: 0xD6A5, - 11828: 0xD6A6, - 11829: 0xD6A7, - 11830: 0xD6A9, - 11831: 0xD6AA, - 11832: 0xCC3C, - 11833: 0xCC3D, - 11834: 0xCC3E, - 11835: 0xCC44, - 11836: 0xCC45, - 11837: 0xCC48, - 11838: 0xCC4C, - 11839: 0xCC54, - 11840: 0xCC55, - 11841: 0xCC57, - 11842: 0xCC58, - 11843: 0xCC59, - 11844: 0xCC60, - 11845: 0xCC64, - 11846: 0xCC66, - 11847: 0xCC68, - 11848: 0xCC70, - 11849: 0xCC75, - 11850: 0xCC98, - 11851: 0xCC99, - 11852: 0xCC9C, - 11853: 0xCCA0, - 11854: 0xCCA8, - 11855: 0xCCA9, - 11856: 0xCCAB, - 11857: 0xCCAC, - 11858: 0xCCAD, - 11859: 0xCCB4, - 11860: 0xCCB5, - 11861: 0xCCB8, - 11862: 0xCCBC, - 11863: 0xCCC4, - 11864: 0xCCC5, - 11865: 0xCCC7, - 11866: 0xCCC9, - 11867: 0xCCD0, - 11868: 0xCCD4, - 11869: 0xCCE4, - 11870: 0xCCEC, - 11871: 0xCCF0, - 11872: 0xCD01, - 11873: 0xCD08, - 11874: 0xCD09, - 11875: 0xCD0C, - 11876: 0xCD10, - 11877: 0xCD18, - 11878: 0xCD19, - 11879: 0xCD1B, - 11880: 0xCD1D, - 11881: 0xCD24, - 11882: 0xCD28, - 11883: 0xCD2C, - 11884: 0xCD39, - 11885: 0xCD5C, - 11886: 0xCD60, - 11887: 0xCD64, - 11888: 0xCD6C, - 11889: 0xCD6D, - 11890: 0xCD6F, - 11891: 0xCD71, - 11892: 0xCD78, - 11893: 0xCD88, - 11894: 0xCD94, - 11895: 0xCD95, - 11896: 0xCD98, - 11897: 0xCD9C, - 11898: 0xCDA4, - 11899: 0xCDA5, - 11900: 0xCDA7, - 11901: 0xCDA9, - 11902: 0xCDB0, - 11903: 0xCDC4, - 11904: 0xCDCC, - 11905: 0xCDD0, - 11906: 0xCDE8, - 11907: 0xCDEC, - 11908: 0xCDF0, - 11909: 0xCDF8, - 11910: 0xCDF9, - 11911: 0xCDFB, - 11912: 0xCDFD, - 11913: 0xCE04, - 11914: 0xCE08, - 11915: 0xCE0C, - 11916: 0xCE14, - 11917: 0xCE19, - 11918: 0xCE20, - 11919: 0xCE21, - 11920: 0xCE24, - 11921: 0xCE28, - 11922: 0xCE30, - 11923: 0xCE31, - 11924: 0xCE33, - 11925: 0xCE35, - 11926: 0xD6AB, - 11927: 0xD6AD, - 11928: 0xD6AE, - 11929: 0xD6AF, - 11930: 0xD6B1, - 11931: 0xD6B2, - 11932: 0xD6B3, - 11933: 0xD6B4, - 11934: 0xD6B5, - 11935: 0xD6B6, - 11936: 0xD6B7, - 11937: 0xD6B8, - 11938: 0xD6BA, - 11939: 0xD6BC, - 11940: 0xD6BD, - 11941: 0xD6BE, - 11942: 0xD6BF, - 11943: 0xD6C0, - 11944: 0xD6C1, - 11945: 0xD6C2, - 11946: 0xD6C3, - 11947: 0xD6C6, - 11948: 0xD6C7, - 11949: 0xD6C9, - 11950: 0xD6CA, - 11951: 0xD6CB, - 11952: 0xD6CD, - 11953: 0xD6CE, - 11954: 0xD6CF, - 11955: 0xD6D0, - 11956: 0xD6D2, - 11957: 0xD6D3, - 11958: 0xD6D5, - 11959: 0xD6D6, - 11960: 0xD6D8, - 11961: 0xD6DA, - 11962: 0xD6DB, - 11963: 0xD6DC, - 11964: 0xD6DD, - 11965: 0xD6DE, - 11966: 0xD6DF, - 11967: 0xD6E1, - 11968: 0xD6E2, - 11969: 0xD6E3, - 11970: 0xD6E5, - 11971: 0xD6E6, - 11972: 0xD6E7, - 11973: 0xD6E9, - 11974: 0xD6EA, - 11975: 0xD6EB, - 11976: 0xD6EC, - 11977: 0xD6ED, - 11978: 0xD6EE, - 11979: 0xD6EF, - 11980: 0xD6F1, - 11981: 0xD6F2, - 11982: 0xD6F3, - 11983: 0xD6F4, - 11984: 0xD6F6, - 11985: 0xD6F7, - 11986: 0xD6F8, - 11987: 0xD6F9, - 11988: 0xD6FA, - 11989: 0xD6FB, - 11990: 0xD6FE, - 11991: 0xD6FF, - 11992: 0xD701, - 11993: 0xD702, - 11994: 0xD703, - 11995: 0xD705, - 11996: 0xD706, - 11997: 0xD707, - 11998: 0xD708, - 11999: 0xD709, - 12000: 0xD70A, - 12001: 0xD70B, - 12002: 0xD70C, - 12003: 0xD70D, - 12004: 0xD70E, - 12005: 0xD70F, - 12006: 0xD710, - 12007: 0xD712, - 12008: 0xD713, - 12009: 0xD714, - 12010: 0xCE58, - 12011: 0xCE59, - 12012: 0xCE5C, - 12013: 0xCE5F, - 12014: 0xCE60, - 12015: 0xCE61, - 12016: 0xCE68, - 12017: 0xCE69, - 12018: 0xCE6B, - 12019: 0xCE6D, - 12020: 0xCE74, - 12021: 0xCE75, - 12022: 0xCE78, - 12023: 0xCE7C, - 12024: 0xCE84, - 12025: 0xCE85, - 12026: 0xCE87, - 12027: 0xCE89, - 12028: 0xCE90, - 12029: 0xCE91, - 12030: 0xCE94, - 12031: 0xCE98, - 12032: 0xCEA0, - 12033: 0xCEA1, - 12034: 0xCEA3, - 12035: 0xCEA4, - 12036: 0xCEA5, - 12037: 0xCEAC, - 12038: 0xCEAD, - 12039: 0xCEC1, - 12040: 0xCEE4, - 12041: 0xCEE5, - 12042: 0xCEE8, - 12043: 0xCEEB, - 12044: 0xCEEC, - 12045: 0xCEF4, - 12046: 0xCEF5, - 12047: 0xCEF7, - 12048: 0xCEF8, - 12049: 0xCEF9, - 12050: 0xCF00, - 12051: 0xCF01, - 12052: 0xCF04, - 12053: 0xCF08, - 12054: 0xCF10, - 12055: 0xCF11, - 12056: 0xCF13, - 12057: 0xCF15, - 12058: 0xCF1C, - 12059: 0xCF20, - 12060: 0xCF24, - 12061: 0xCF2C, - 12062: 0xCF2D, - 12063: 0xCF2F, - 12064: 0xCF30, - 12065: 0xCF31, - 12066: 0xCF38, - 12067: 0xCF54, - 12068: 0xCF55, - 12069: 0xCF58, - 12070: 0xCF5C, - 12071: 0xCF64, - 12072: 0xCF65, - 12073: 0xCF67, - 12074: 0xCF69, - 12075: 0xCF70, - 12076: 0xCF71, - 12077: 0xCF74, - 12078: 0xCF78, - 12079: 0xCF80, - 12080: 0xCF85, - 12081: 0xCF8C, - 12082: 0xCFA1, - 12083: 0xCFA8, - 12084: 0xCFB0, - 12085: 0xCFC4, - 12086: 0xCFE0, - 12087: 0xCFE1, - 12088: 0xCFE4, - 12089: 0xCFE8, - 12090: 0xCFF0, - 12091: 0xCFF1, - 12092: 0xCFF3, - 12093: 0xCFF5, - 12094: 0xCFFC, - 12095: 0xD000, - 12096: 0xD004, - 12097: 0xD011, - 12098: 0xD018, - 12099: 0xD02D, - 12100: 0xD034, - 12101: 0xD035, - 12102: 0xD038, - 12103: 0xD03C, - 12104: 0xD715, - 12105: 0xD716, - 12106: 0xD717, - 12107: 0xD71A, - 12108: 0xD71B, - 12109: 0xD71D, - 12110: 0xD71E, - 12111: 0xD71F, - 12112: 0xD721, - 12113: 0xD722, - 12114: 0xD723, - 12115: 0xD724, - 12116: 0xD725, - 12117: 0xD726, - 12118: 0xD727, - 12119: 0xD72A, - 12120: 0xD72C, - 12121: 0xD72E, - 12122: 0xD72F, - 12123: 0xD730, - 12124: 0xD731, - 12125: 0xD732, - 12126: 0xD733, - 12127: 0xD736, - 12128: 0xD737, - 12129: 0xD739, - 12130: 0xD73A, - 12131: 0xD73B, - 12132: 0xD73D, - 12133: 0xD73E, - 12134: 0xD73F, - 12135: 0xD740, - 12136: 0xD741, - 12137: 0xD742, - 12138: 0xD743, - 12139: 0xD745, - 12140: 0xD746, - 12141: 0xD748, - 12142: 0xD74A, - 12143: 0xD74B, - 12144: 0xD74C, - 12145: 0xD74D, - 12146: 0xD74E, - 12147: 0xD74F, - 12148: 0xD752, - 12149: 0xD753, - 12150: 0xD755, - 12151: 0xD75A, - 12152: 0xD75B, - 12153: 0xD75C, - 12154: 0xD75D, - 12155: 0xD75E, - 12156: 0xD75F, - 12157: 0xD762, - 12158: 0xD764, - 12159: 0xD766, - 12160: 0xD767, - 12161: 0xD768, - 12162: 0xD76A, - 12163: 0xD76B, - 12164: 0xD76D, - 12165: 0xD76E, - 12166: 0xD76F, - 12167: 0xD771, - 12168: 0xD772, - 12169: 0xD773, - 12170: 0xD775, - 12171: 0xD776, - 12172: 0xD777, - 12173: 0xD778, - 12174: 0xD779, - 12175: 0xD77A, - 12176: 0xD77B, - 12177: 0xD77E, - 12178: 0xD77F, - 12179: 0xD780, - 12180: 0xD782, - 12181: 0xD783, - 12182: 0xD784, - 12183: 0xD785, - 12184: 0xD786, - 12185: 0xD787, - 12186: 0xD78A, - 12187: 0xD78B, - 12188: 0xD044, - 12189: 0xD045, - 12190: 0xD047, - 12191: 0xD049, - 12192: 0xD050, - 12193: 0xD054, - 12194: 0xD058, - 12195: 0xD060, - 12196: 0xD06C, - 12197: 0xD06D, - 12198: 0xD070, - 12199: 0xD074, - 12200: 0xD07C, - 12201: 0xD07D, - 12202: 0xD081, - 12203: 0xD0A4, - 12204: 0xD0A5, - 12205: 0xD0A8, - 12206: 0xD0AC, - 12207: 0xD0B4, - 12208: 0xD0B5, - 12209: 0xD0B7, - 12210: 0xD0B9, - 12211: 0xD0C0, - 12212: 0xD0C1, - 12213: 0xD0C4, - 12214: 0xD0C8, - 12215: 0xD0C9, - 12216: 0xD0D0, - 12217: 0xD0D1, - 12218: 0xD0D3, - 12219: 0xD0D4, - 12220: 0xD0D5, - 12221: 0xD0DC, - 12222: 0xD0DD, - 12223: 0xD0E0, - 12224: 0xD0E4, - 12225: 0xD0EC, - 12226: 0xD0ED, - 12227: 0xD0EF, - 12228: 0xD0F0, - 12229: 0xD0F1, - 12230: 0xD0F8, - 12231: 0xD10D, - 12232: 0xD130, - 12233: 0xD131, - 12234: 0xD134, - 12235: 0xD138, - 12236: 0xD13A, - 12237: 0xD140, - 12238: 0xD141, - 12239: 0xD143, - 12240: 0xD144, - 12241: 0xD145, - 12242: 0xD14C, - 12243: 0xD14D, - 12244: 0xD150, - 12245: 0xD154, - 12246: 0xD15C, - 12247: 0xD15D, - 12248: 0xD15F, - 12249: 0xD161, - 12250: 0xD168, - 12251: 0xD16C, - 12252: 0xD17C, - 12253: 0xD184, - 12254: 0xD188, - 12255: 0xD1A0, - 12256: 0xD1A1, - 12257: 0xD1A4, - 12258: 0xD1A8, - 12259: 0xD1B0, - 12260: 0xD1B1, - 12261: 0xD1B3, - 12262: 0xD1B5, - 12263: 0xD1BA, - 12264: 0xD1BC, - 12265: 0xD1C0, - 12266: 0xD1D8, - 12267: 0xD1F4, - 12268: 0xD1F8, - 12269: 0xD207, - 12270: 0xD209, - 12271: 0xD210, - 12272: 0xD22C, - 12273: 0xD22D, - 12274: 0xD230, - 12275: 0xD234, - 12276: 0xD23C, - 12277: 0xD23D, - 12278: 0xD23F, - 12279: 0xD241, - 12280: 0xD248, - 12281: 0xD25C, - 12282: 0xD78D, - 12283: 0xD78E, - 12284: 0xD78F, - 12285: 0xD791, - 12286: 0xD792, - 12287: 0xD793, - 12288: 0xD794, - 12289: 0xD795, - 12290: 0xD796, - 12291: 0xD797, - 12292: 0xD79A, - 12293: 0xD79C, - 12294: 0xD79E, - 12295: 0xD79F, - 12296: 0xD7A0, - 12297: 0xD7A1, - 12298: 0xD7A2, - 12299: 0xD7A3, - 12366: 0xD264, - 12367: 0xD280, - 12368: 0xD281, - 12369: 0xD284, - 12370: 0xD288, - 12371: 0xD290, - 12372: 0xD291, - 12373: 0xD295, - 12374: 0xD29C, - 12375: 0xD2A0, - 12376: 0xD2A4, - 12377: 0xD2AC, - 12378: 0xD2B1, - 12379: 0xD2B8, - 12380: 0xD2B9, - 12381: 0xD2BC, - 12382: 0xD2BF, - 12383: 0xD2C0, - 12384: 0xD2C2, - 12385: 0xD2C8, - 12386: 0xD2C9, - 12387: 0xD2CB, - 12388: 0xD2D4, - 12389: 0xD2D8, - 12390: 0xD2DC, - 12391: 0xD2E4, - 12392: 0xD2E5, - 12393: 0xD2F0, - 12394: 0xD2F1, - 12395: 0xD2F4, - 12396: 0xD2F8, - 12397: 0xD300, - 12398: 0xD301, - 12399: 0xD303, - 12400: 0xD305, - 12401: 0xD30C, - 12402: 0xD30D, - 12403: 0xD30E, - 12404: 0xD310, - 12405: 0xD314, - 12406: 0xD316, - 12407: 0xD31C, - 12408: 0xD31D, - 12409: 0xD31F, - 12410: 0xD320, - 12411: 0xD321, - 12412: 0xD325, - 12413: 0xD328, - 12414: 0xD329, - 12415: 0xD32C, - 12416: 0xD330, - 12417: 0xD338, - 12418: 0xD339, - 12419: 0xD33B, - 12420: 0xD33C, - 12421: 0xD33D, - 12422: 0xD344, - 12423: 0xD345, - 12424: 0xD37C, - 12425: 0xD37D, - 12426: 0xD380, - 12427: 0xD384, - 12428: 0xD38C, - 12429: 0xD38D, - 12430: 0xD38F, - 12431: 0xD390, - 12432: 0xD391, - 12433: 0xD398, - 12434: 0xD399, - 12435: 0xD39C, - 12436: 0xD3A0, - 12437: 0xD3A8, - 12438: 0xD3A9, - 12439: 0xD3AB, - 12440: 0xD3AD, - 12441: 0xD3B4, - 12442: 0xD3B8, - 12443: 0xD3BC, - 12444: 0xD3C4, - 12445: 0xD3C5, - 12446: 0xD3C8, - 12447: 0xD3C9, - 12448: 0xD3D0, - 12449: 0xD3D8, - 12450: 0xD3E1, - 12451: 0xD3E3, - 12452: 0xD3EC, - 12453: 0xD3ED, - 12454: 0xD3F0, - 12455: 0xD3F4, - 12456: 0xD3FC, - 12457: 0xD3FD, - 12458: 0xD3FF, - 12459: 0xD401, - 12460: 0xD408, - 12461: 0xD41D, - 12462: 0xD440, - 12463: 0xD444, - 12464: 0xD45C, - 12465: 0xD460, - 12466: 0xD464, - 12467: 0xD46D, - 12468: 0xD46F, - 12469: 0xD478, - 12470: 0xD479, - 12471: 0xD47C, - 12472: 0xD47F, - 12473: 0xD480, - 12474: 0xD482, - 12475: 0xD488, - 12476: 0xD489, - 12477: 0xD48B, - 12478: 0xD48D, - 12479: 0xD494, - 12480: 0xD4A9, - 12481: 0xD4CC, - 12482: 0xD4D0, - 12483: 0xD4D4, - 12484: 0xD4DC, - 12485: 0xD4DF, - 12486: 0xD4E8, - 12487: 0xD4EC, - 12488: 0xD4F0, - 12489: 0xD4F8, - 12490: 0xD4FB, - 12491: 0xD4FD, - 12492: 0xD504, - 12493: 0xD508, - 12494: 0xD50C, - 12495: 0xD514, - 12496: 0xD515, - 12497: 0xD517, - 12498: 0xD53C, - 12499: 0xD53D, - 12500: 0xD540, - 12501: 0xD544, - 12502: 0xD54C, - 12503: 0xD54D, - 12504: 0xD54F, - 12505: 0xD551, - 12506: 0xD558, - 12507: 0xD559, - 12508: 0xD55C, - 12509: 0xD560, - 12510: 0xD565, - 12511: 0xD568, - 12512: 0xD569, - 12513: 0xD56B, - 12514: 0xD56D, - 12515: 0xD574, - 12516: 0xD575, - 12517: 0xD578, - 12518: 0xD57C, - 12519: 0xD584, - 12520: 0xD585, - 12521: 0xD587, - 12522: 0xD588, - 12523: 0xD589, - 12524: 0xD590, - 12525: 0xD5A5, - 12526: 0xD5C8, - 12527: 0xD5C9, - 12528: 0xD5CC, - 12529: 0xD5D0, - 12530: 0xD5D2, - 12531: 0xD5D8, - 12532: 0xD5D9, - 12533: 0xD5DB, - 12534: 0xD5DD, - 12535: 0xD5E4, - 12536: 0xD5E5, - 12537: 0xD5E8, - 12538: 0xD5EC, - 12539: 0xD5F4, - 12540: 0xD5F5, - 12541: 0xD5F7, - 12542: 0xD5F9, - 12543: 0xD600, - 12544: 0xD601, - 12545: 0xD604, - 12546: 0xD608, - 12547: 0xD610, - 12548: 0xD611, - 12549: 0xD613, - 12550: 0xD614, - 12551: 0xD615, - 12552: 0xD61C, - 12553: 0xD620, - 12554: 0xD624, - 12555: 0xD62D, - 12556: 0xD638, - 12557: 0xD639, - 12558: 0xD63C, - 12559: 0xD640, - 12560: 0xD645, - 12561: 0xD648, - 12562: 0xD649, - 12563: 0xD64B, - 12564: 0xD64D, - 12565: 0xD651, - 12566: 0xD654, - 12567: 0xD655, - 12568: 0xD658, - 12569: 0xD65C, - 12570: 0xD667, - 12571: 0xD669, - 12572: 0xD670, - 12573: 0xD671, - 12574: 0xD674, - 12575: 0xD683, - 12576: 0xD685, - 12577: 0xD68C, - 12578: 0xD68D, - 12579: 0xD690, - 12580: 0xD694, - 12581: 0xD69D, - 12582: 0xD69F, - 12583: 0xD6A1, - 12584: 0xD6A8, - 12585: 0xD6AC, - 12586: 0xD6B0, - 12587: 0xD6B9, - 12588: 0xD6BB, - 12589: 0xD6C4, - 12590: 0xD6C5, - 12591: 0xD6C8, - 12592: 0xD6CC, - 12593: 0xD6D1, - 12594: 0xD6D4, - 12595: 0xD6D7, - 12596: 0xD6D9, - 12597: 0xD6E0, - 12598: 0xD6E4, - 12599: 0xD6E8, - 12600: 0xD6F0, - 12601: 0xD6F5, - 12602: 0xD6FC, - 12603: 0xD6FD, - 12604: 0xD700, - 12605: 0xD704, - 12606: 0xD711, - 12607: 0xD718, - 12608: 0xD719, - 12609: 0xD71C, - 12610: 0xD720, - 12611: 0xD728, - 12612: 0xD729, - 12613: 0xD72B, - 12614: 0xD72D, - 12615: 0xD734, - 12616: 0xD735, - 12617: 0xD738, - 12618: 0xD73C, - 12619: 0xD744, - 12620: 0xD747, - 12621: 0xD749, - 12622: 0xD750, - 12623: 0xD751, - 12624: 0xD754, - 12625: 0xD756, - 12626: 0xD757, - 12627: 0xD758, - 12628: 0xD759, - 12629: 0xD760, - 12630: 0xD761, - 12631: 0xD763, - 12632: 0xD765, - 12633: 0xD769, - 12634: 0xD76C, - 12635: 0xD770, - 12636: 0xD774, - 12637: 0xD77C, - 12638: 0xD77D, - 12639: 0xD781, - 12640: 0xD788, - 12641: 0xD789, - 12642: 0xD78C, - 12643: 0xD790, - 12644: 0xD798, - 12645: 0xD799, - 12646: 0xD79B, - 12647: 0xD79D, - 12742: 0x4F3D, - 12743: 0x4F73, - 12744: 0x5047, - 12745: 0x50F9, - 12746: 0x52A0, - 12747: 0x53EF, - 12748: 0x5475, - 12749: 0x54E5, - 12750: 0x5609, - 12751: 0x5AC1, - 12752: 0x5BB6, - 12753: 0x6687, - 12754: 0x67B6, - 12755: 0x67B7, - 12756: 0x67EF, - 12757: 0x6B4C, - 12758: 0x73C2, - 12759: 0x75C2, - 12760: 0x7A3C, - 12761: 0x82DB, - 12762: 0x8304, - 12763: 0x8857, - 12764: 0x8888, - 12765: 0x8A36, - 12766: 0x8CC8, - 12767: 0x8DCF, - 12768: 0x8EFB, - 12769: 0x8FE6, - 12770: 0x99D5, - 12771: 0x523B, - 12772: 0x5374, - 12773: 0x5404, - 12774: 0x606A, - 12775: 0x6164, - 12776: 0x6BBC, - 12777: 0x73CF, - 12778: 0x811A, - 12779: 0x89BA, - 12780: 0x89D2, - 12781: 0x95A3, - 12782: 0x4F83, - 12783: 0x520A, - 12784: 0x58BE, - 12785: 0x5978, - 12786: 0x59E6, - 12787: 0x5E72, - 12788: 0x5E79, - 12789: 0x61C7, - 12790: 0x63C0, - 12791: 0x6746, - 12792: 0x67EC, - 12793: 0x687F, - 12794: 0x6F97, - 12795: 0x764E, - 12796: 0x770B, - 12797: 0x78F5, - 12798: 0x7A08, - 12799: 0x7AFF, - 12800: 0x7C21, - 12801: 0x809D, - 12802: 0x826E, - 12803: 0x8271, - 12804: 0x8AEB, - 12805: 0x9593, - 12806: 0x4E6B, - 12807: 0x559D, - 12808: 0x66F7, - 12809: 0x6E34, - 12810: 0x78A3, - 12811: 0x7AED, - 12812: 0x845B, - 12813: 0x8910, - 12814: 0x874E, - 12815: 0x97A8, - 12816: 0x52D8, - 12817: 0x574E, - 12818: 0x582A, - 12819: 0x5D4C, - 12820: 0x611F, - 12821: 0x61BE, - 12822: 0x6221, - 12823: 0x6562, - 12824: 0x67D1, - 12825: 0x6A44, - 12826: 0x6E1B, - 12827: 0x7518, - 12828: 0x75B3, - 12829: 0x76E3, - 12830: 0x77B0, - 12831: 0x7D3A, - 12832: 0x90AF, - 12833: 0x9451, - 12834: 0x9452, - 12835: 0x9F95, - 12836: 0x5323, - 12837: 0x5CAC, - 12838: 0x7532, - 12839: 0x80DB, - 12840: 0x9240, - 12841: 0x9598, - 12842: 0x525B, - 12843: 0x5808, - 12844: 0x59DC, - 12845: 0x5CA1, - 12846: 0x5D17, - 12847: 0x5EB7, - 12848: 0x5F3A, - 12849: 0x5F4A, - 12850: 0x6177, - 12851: 0x6C5F, - 12852: 0x757A, - 12853: 0x7586, - 12854: 0x7CE0, - 12855: 0x7D73, - 12856: 0x7DB1, - 12857: 0x7F8C, - 12858: 0x8154, - 12859: 0x8221, - 12860: 0x8591, - 12861: 0x8941, - 12862: 0x8B1B, - 12863: 0x92FC, - 12864: 0x964D, - 12865: 0x9C47, - 12866: 0x4ECB, - 12867: 0x4EF7, - 12868: 0x500B, - 12869: 0x51F1, - 12870: 0x584F, - 12871: 0x6137, - 12872: 0x613E, - 12873: 0x6168, - 12874: 0x6539, - 12875: 0x69EA, - 12876: 0x6F11, - 12877: 0x75A5, - 12878: 0x7686, - 12879: 0x76D6, - 12880: 0x7B87, - 12881: 0x82A5, - 12882: 0x84CB, - 12883: 0xF900, - 12884: 0x93A7, - 12885: 0x958B, - 12886: 0x5580, - 12887: 0x5BA2, - 12888: 0x5751, - 12889: 0xF901, - 12890: 0x7CB3, - 12891: 0x7FB9, - 12892: 0x91B5, - 12893: 0x5028, - 12894: 0x53BB, - 12895: 0x5C45, - 12896: 0x5DE8, - 12897: 0x62D2, - 12898: 0x636E, - 12899: 0x64DA, - 12900: 0x64E7, - 12901: 0x6E20, - 12902: 0x70AC, - 12903: 0x795B, - 12904: 0x8DDD, - 12905: 0x8E1E, - 12906: 0xF902, - 12907: 0x907D, - 12908: 0x9245, - 12909: 0x92F8, - 12910: 0x4E7E, - 12911: 0x4EF6, - 12912: 0x5065, - 12913: 0x5DFE, - 12914: 0x5EFA, - 12915: 0x6106, - 12916: 0x6957, - 12917: 0x8171, - 12918: 0x8654, - 12919: 0x8E47, - 12920: 0x9375, - 12921: 0x9A2B, - 12922: 0x4E5E, - 12923: 0x5091, - 12924: 0x6770, - 12925: 0x6840, - 12926: 0x5109, - 12927: 0x528D, - 12928: 0x5292, - 12929: 0x6AA2, - 12930: 0x77BC, - 12931: 0x9210, - 12932: 0x9ED4, - 12933: 0x52AB, - 12934: 0x602F, - 12935: 0x8FF2, - 12936: 0x5048, - 12937: 0x61A9, - 12938: 0x63ED, - 12939: 0x64CA, - 12940: 0x683C, - 12941: 0x6A84, - 12942: 0x6FC0, - 12943: 0x8188, - 12944: 0x89A1, - 12945: 0x9694, - 12946: 0x5805, - 12947: 0x727D, - 12948: 0x72AC, - 12949: 0x7504, - 12950: 0x7D79, - 12951: 0x7E6D, - 12952: 0x80A9, - 12953: 0x898B, - 12954: 0x8B74, - 12955: 0x9063, - 12956: 0x9D51, - 12957: 0x6289, - 12958: 0x6C7A, - 12959: 0x6F54, - 12960: 0x7D50, - 12961: 0x7F3A, - 12962: 0x8A23, - 12963: 0x517C, - 12964: 0x614A, - 12965: 0x7B9D, - 12966: 0x8B19, - 12967: 0x9257, - 12968: 0x938C, - 12969: 0x4EAC, - 12970: 0x4FD3, - 12971: 0x501E, - 12972: 0x50BE, - 12973: 0x5106, - 12974: 0x52C1, - 12975: 0x52CD, - 12976: 0x537F, - 12977: 0x5770, - 12978: 0x5883, - 12979: 0x5E9A, - 12980: 0x5F91, - 12981: 0x6176, - 12982: 0x61AC, - 12983: 0x64CE, - 12984: 0x656C, - 12985: 0x666F, - 12986: 0x66BB, - 12987: 0x66F4, - 12988: 0x6897, - 12989: 0x6D87, - 12990: 0x7085, - 12991: 0x70F1, - 12992: 0x749F, - 12993: 0x74A5, - 12994: 0x74CA, - 12995: 0x75D9, - 12996: 0x786C, - 12997: 0x78EC, - 12998: 0x7ADF, - 12999: 0x7AF6, - 13000: 0x7D45, - 13001: 0x7D93, - 13002: 0x8015, - 13003: 0x803F, - 13004: 0x811B, - 13005: 0x8396, - 13006: 0x8B66, - 13007: 0x8F15, - 13008: 0x9015, - 13009: 0x93E1, - 13010: 0x9803, - 13011: 0x9838, - 13012: 0x9A5A, - 13013: 0x9BE8, - 13014: 0x4FC2, - 13015: 0x5553, - 13016: 0x583A, - 13017: 0x5951, - 13018: 0x5B63, - 13019: 0x5C46, - 13020: 0x60B8, - 13021: 0x6212, - 13022: 0x6842, - 13023: 0x68B0, - 13024: 0x68E8, - 13025: 0x6EAA, - 13026: 0x754C, - 13027: 0x7678, - 13028: 0x78CE, - 13029: 0x7A3D, - 13030: 0x7CFB, - 13031: 0x7E6B, - 13032: 0x7E7C, - 13033: 0x8A08, - 13034: 0x8AA1, - 13035: 0x8C3F, - 13036: 0x968E, - 13037: 0x9DC4, - 13038: 0x53E4, - 13039: 0x53E9, - 13040: 0x544A, - 13041: 0x5471, - 13042: 0x56FA, - 13043: 0x59D1, - 13044: 0x5B64, - 13045: 0x5C3B, - 13046: 0x5EAB, - 13047: 0x62F7, - 13048: 0x6537, - 13049: 0x6545, - 13050: 0x6572, - 13051: 0x66A0, - 13052: 0x67AF, - 13053: 0x69C1, - 13054: 0x6CBD, - 13055: 0x75FC, - 13056: 0x7690, - 13057: 0x777E, - 13058: 0x7A3F, - 13059: 0x7F94, - 13060: 0x8003, - 13061: 0x80A1, - 13062: 0x818F, - 13063: 0x82E6, - 13064: 0x82FD, - 13065: 0x83F0, - 13066: 0x85C1, - 13067: 0x8831, - 13068: 0x88B4, - 13069: 0x8AA5, - 13070: 0xF903, - 13071: 0x8F9C, - 13072: 0x932E, - 13073: 0x96C7, - 13074: 0x9867, - 13075: 0x9AD8, - 13076: 0x9F13, - 13077: 0x54ED, - 13078: 0x659B, - 13079: 0x66F2, - 13080: 0x688F, - 13081: 0x7A40, - 13082: 0x8C37, - 13083: 0x9D60, - 13084: 0x56F0, - 13085: 0x5764, - 13086: 0x5D11, - 13087: 0x6606, - 13088: 0x68B1, - 13089: 0x68CD, - 13090: 0x6EFE, - 13091: 0x7428, - 13092: 0x889E, - 13093: 0x9BE4, - 13094: 0x6C68, - 13095: 0xF904, - 13096: 0x9AA8, - 13097: 0x4F9B, - 13098: 0x516C, - 13099: 0x5171, - 13100: 0x529F, - 13101: 0x5B54, - 13102: 0x5DE5, - 13103: 0x6050, - 13104: 0x606D, - 13105: 0x62F1, - 13106: 0x63A7, - 13107: 0x653B, - 13108: 0x73D9, - 13109: 0x7A7A, - 13110: 0x86A3, - 13111: 0x8CA2, - 13112: 0x978F, - 13113: 0x4E32, - 13114: 0x5BE1, - 13115: 0x6208, - 13116: 0x679C, - 13117: 0x74DC, - 13118: 0x79D1, - 13119: 0x83D3, - 13120: 0x8A87, - 13121: 0x8AB2, - 13122: 0x8DE8, - 13123: 0x904E, - 13124: 0x934B, - 13125: 0x9846, - 13126: 0x5ED3, - 13127: 0x69E8, - 13128: 0x85FF, - 13129: 0x90ED, - 13130: 0xF905, - 13131: 0x51A0, - 13132: 0x5B98, - 13133: 0x5BEC, - 13134: 0x6163, - 13135: 0x68FA, - 13136: 0x6B3E, - 13137: 0x704C, - 13138: 0x742F, - 13139: 0x74D8, - 13140: 0x7BA1, - 13141: 0x7F50, - 13142: 0x83C5, - 13143: 0x89C0, - 13144: 0x8CAB, - 13145: 0x95DC, - 13146: 0x9928, - 13147: 0x522E, - 13148: 0x605D, - 13149: 0x62EC, - 13150: 0x9002, - 13151: 0x4F8A, - 13152: 0x5149, - 13153: 0x5321, - 13154: 0x58D9, - 13155: 0x5EE3, - 13156: 0x66E0, - 13157: 0x6D38, - 13158: 0x709A, - 13159: 0x72C2, - 13160: 0x73D6, - 13161: 0x7B50, - 13162: 0x80F1, - 13163: 0x945B, - 13164: 0x5366, - 13165: 0x639B, - 13166: 0x7F6B, - 13167: 0x4E56, - 13168: 0x5080, - 13169: 0x584A, - 13170: 0x58DE, - 13171: 0x602A, - 13172: 0x6127, - 13173: 0x62D0, - 13174: 0x69D0, - 13175: 0x9B41, - 13176: 0x5B8F, - 13177: 0x7D18, - 13178: 0x80B1, - 13179: 0x8F5F, - 13180: 0x4EA4, - 13181: 0x50D1, - 13182: 0x54AC, - 13183: 0x55AC, - 13184: 0x5B0C, - 13185: 0x5DA0, - 13186: 0x5DE7, - 13187: 0x652A, - 13188: 0x654E, - 13189: 0x6821, - 13190: 0x6A4B, - 13191: 0x72E1, - 13192: 0x768E, - 13193: 0x77EF, - 13194: 0x7D5E, - 13195: 0x7FF9, - 13196: 0x81A0, - 13197: 0x854E, - 13198: 0x86DF, - 13199: 0x8F03, - 13200: 0x8F4E, - 13201: 0x90CA, - 13202: 0x9903, - 13203: 0x9A55, - 13204: 0x9BAB, - 13205: 0x4E18, - 13206: 0x4E45, - 13207: 0x4E5D, - 13208: 0x4EC7, - 13209: 0x4FF1, - 13210: 0x5177, - 13211: 0x52FE, - 13212: 0x5340, - 13213: 0x53E3, - 13214: 0x53E5, - 13215: 0x548E, - 13216: 0x5614, - 13217: 0x5775, - 13218: 0x57A2, - 13219: 0x5BC7, - 13220: 0x5D87, - 13221: 0x5ED0, - 13222: 0x61FC, - 13223: 0x62D8, - 13224: 0x6551, - 13225: 0x67B8, - 13226: 0x67E9, - 13227: 0x69CB, - 13228: 0x6B50, - 13229: 0x6BC6, - 13230: 0x6BEC, - 13231: 0x6C42, - 13232: 0x6E9D, - 13233: 0x7078, - 13234: 0x72D7, - 13235: 0x7396, - 13236: 0x7403, - 13237: 0x77BF, - 13238: 0x77E9, - 13239: 0x7A76, - 13240: 0x7D7F, - 13241: 0x8009, - 13242: 0x81FC, - 13243: 0x8205, - 13244: 0x820A, - 13245: 0x82DF, - 13246: 0x8862, - 13247: 0x8B33, - 13248: 0x8CFC, - 13249: 0x8EC0, - 13250: 0x9011, - 13251: 0x90B1, - 13252: 0x9264, - 13253: 0x92B6, - 13254: 0x99D2, - 13255: 0x9A45, - 13256: 0x9CE9, - 13257: 0x9DD7, - 13258: 0x9F9C, - 13259: 0x570B, - 13260: 0x5C40, - 13261: 0x83CA, - 13262: 0x97A0, - 13263: 0x97AB, - 13264: 0x9EB4, - 13265: 0x541B, - 13266: 0x7A98, - 13267: 0x7FA4, - 13268: 0x88D9, - 13269: 0x8ECD, - 13270: 0x90E1, - 13271: 0x5800, - 13272: 0x5C48, - 13273: 0x6398, - 13274: 0x7A9F, - 13275: 0x5BAE, - 13276: 0x5F13, - 13277: 0x7A79, - 13278: 0x7AAE, - 13279: 0x828E, - 13280: 0x8EAC, - 13281: 0x5026, - 13282: 0x5238, - 13283: 0x52F8, - 13284: 0x5377, - 13285: 0x5708, - 13286: 0x62F3, - 13287: 0x6372, - 13288: 0x6B0A, - 13289: 0x6DC3, - 13290: 0x7737, - 13291: 0x53A5, - 13292: 0x7357, - 13293: 0x8568, - 13294: 0x8E76, - 13295: 0x95D5, - 13296: 0x673A, - 13297: 0x6AC3, - 13298: 0x6F70, - 13299: 0x8A6D, - 13300: 0x8ECC, - 13301: 0x994B, - 13302: 0xF906, - 13303: 0x6677, - 13304: 0x6B78, - 13305: 0x8CB4, - 13306: 0x9B3C, - 13307: 0xF907, - 13308: 0x53EB, - 13309: 0x572D, - 13310: 0x594E, - 13311: 0x63C6, - 13312: 0x69FB, - 13313: 0x73EA, - 13314: 0x7845, - 13315: 0x7ABA, - 13316: 0x7AC5, - 13317: 0x7CFE, - 13318: 0x8475, - 13319: 0x898F, - 13320: 0x8D73, - 13321: 0x9035, - 13322: 0x95A8, - 13323: 0x52FB, - 13324: 0x5747, - 13325: 0x7547, - 13326: 0x7B60, - 13327: 0x83CC, - 13328: 0x921E, - 13329: 0xF908, - 13330: 0x6A58, - 13331: 0x514B, - 13332: 0x524B, - 13333: 0x5287, - 13334: 0x621F, - 13335: 0x68D8, - 13336: 0x6975, - 13337: 0x9699, - 13338: 0x50C5, - 13339: 0x52A4, - 13340: 0x52E4, - 13341: 0x61C3, - 13342: 0x65A4, - 13343: 0x6839, - 13344: 0x69FF, - 13345: 0x747E, - 13346: 0x7B4B, - 13347: 0x82B9, - 13348: 0x83EB, - 13349: 0x89B2, - 13350: 0x8B39, - 13351: 0x8FD1, - 13352: 0x9949, - 13353: 0xF909, - 13354: 0x4ECA, - 13355: 0x5997, - 13356: 0x64D2, - 13357: 0x6611, - 13358: 0x6A8E, - 13359: 0x7434, - 13360: 0x7981, - 13361: 0x79BD, - 13362: 0x82A9, - 13363: 0x887E, - 13364: 0x887F, - 13365: 0x895F, - 13366: 0xF90A, - 13367: 0x9326, - 13368: 0x4F0B, - 13369: 0x53CA, - 13370: 0x6025, - 13371: 0x6271, - 13372: 0x6C72, - 13373: 0x7D1A, - 13374: 0x7D66, - 13375: 0x4E98, - 13376: 0x5162, - 13377: 0x77DC, - 13378: 0x80AF, - 13379: 0x4F01, - 13380: 0x4F0E, - 13381: 0x5176, - 13382: 0x5180, - 13383: 0x55DC, - 13384: 0x5668, - 13385: 0x573B, - 13386: 0x57FA, - 13387: 0x57FC, - 13388: 0x5914, - 13389: 0x5947, - 13390: 0x5993, - 13391: 0x5BC4, - 13392: 0x5C90, - 13393: 0x5D0E, - 13394: 0x5DF1, - 13395: 0x5E7E, - 13396: 0x5FCC, - 13397: 0x6280, - 13398: 0x65D7, - 13399: 0x65E3, - 13400: 0x671E, - 13401: 0x671F, - 13402: 0x675E, - 13403: 0x68CB, - 13404: 0x68C4, - 13405: 0x6A5F, - 13406: 0x6B3A, - 13407: 0x6C23, - 13408: 0x6C7D, - 13409: 0x6C82, - 13410: 0x6DC7, - 13411: 0x7398, - 13412: 0x7426, - 13413: 0x742A, - 13414: 0x7482, - 13415: 0x74A3, - 13416: 0x7578, - 13417: 0x757F, - 13418: 0x7881, - 13419: 0x78EF, - 13420: 0x7941, - 13421: 0x7947, - 13422: 0x7948, - 13423: 0x797A, - 13424: 0x7B95, - 13425: 0x7D00, - 13426: 0x7DBA, - 13427: 0x7F88, - 13428: 0x8006, - 13429: 0x802D, - 13430: 0x808C, - 13431: 0x8A18, - 13432: 0x8B4F, - 13433: 0x8C48, - 13434: 0x8D77, - 13435: 0x9321, - 13436: 0x9324, - 13437: 0x98E2, - 13438: 0x9951, - 13439: 0x9A0E, - 13440: 0x9A0F, - 13441: 0x9A65, - 13442: 0x9E92, - 13443: 0x7DCA, - 13444: 0x4F76, - 13445: 0x5409, - 13446: 0x62EE, - 13447: 0x6854, - 13448: 0x91D1, - 13449: 0x55AB, - 13450: 0x513A, - 13451: 0xF90B, - 13452: 0xF90C, - 13453: 0x5A1C, - 13454: 0x61E6, - 13455: 0xF90D, - 13456: 0x62CF, - 13457: 0x62FF, - 13458: 0xF90E, - 13459: 0xF90F, - 13460: 0xF910, - 13461: 0xF911, - 13462: 0xF912, - 13463: 0xF913, - 13464: 0x90A3, - 13465: 0xF914, - 13466: 0xF915, - 13467: 0xF916, - 13468: 0xF917, - 13469: 0xF918, - 13470: 0x8AFE, - 13471: 0xF919, - 13472: 0xF91A, - 13473: 0xF91B, - 13474: 0xF91C, - 13475: 0x6696, - 13476: 0xF91D, - 13477: 0x7156, - 13478: 0xF91E, - 13479: 0xF91F, - 13480: 0x96E3, - 13481: 0xF920, - 13482: 0x634F, - 13483: 0x637A, - 13484: 0x5357, - 13485: 0xF921, - 13486: 0x678F, - 13487: 0x6960, - 13488: 0x6E73, - 13489: 0xF922, - 13490: 0x7537, - 13491: 0xF923, - 13492: 0xF924, - 13493: 0xF925, - 13494: 0x7D0D, - 13495: 0xF926, - 13496: 0xF927, - 13497: 0x8872, - 13498: 0x56CA, - 13499: 0x5A18, - 13500: 0xF928, - 13501: 0xF929, - 13502: 0xF92A, - 13503: 0xF92B, - 13504: 0xF92C, - 13505: 0x4E43, - 13506: 0xF92D, - 13507: 0x5167, - 13508: 0x5948, - 13509: 0x67F0, - 13510: 0x8010, - 13511: 0xF92E, - 13512: 0x5973, - 13513: 0x5E74, - 13514: 0x649A, - 13515: 0x79CA, - 13516: 0x5FF5, - 13517: 0x606C, - 13518: 0x62C8, - 13519: 0x637B, - 13520: 0x5BE7, - 13521: 0x5BD7, - 13522: 0x52AA, - 13523: 0xF92F, - 13524: 0x5974, - 13525: 0x5F29, - 13526: 0x6012, - 13527: 0xF930, - 13528: 0xF931, - 13529: 0xF932, - 13530: 0x7459, - 13531: 0xF933, - 13532: 0xF934, - 13533: 0xF935, - 13534: 0xF936, - 13535: 0xF937, - 13536: 0xF938, - 13537: 0x99D1, - 13538: 0xF939, - 13539: 0xF93A, - 13540: 0xF93B, - 13541: 0xF93C, - 13542: 0xF93D, - 13543: 0xF93E, - 13544: 0xF93F, - 13545: 0xF940, - 13546: 0xF941, - 13547: 0xF942, - 13548: 0xF943, - 13549: 0x6FC3, - 13550: 0xF944, - 13551: 0xF945, - 13552: 0x81BF, - 13553: 0x8FB2, - 13554: 0x60F1, - 13555: 0xF946, - 13556: 0xF947, - 13557: 0x8166, - 13558: 0xF948, - 13559: 0xF949, - 13560: 0x5C3F, - 13561: 0xF94A, - 13562: 0xF94B, - 13563: 0xF94C, - 13564: 0xF94D, - 13565: 0xF94E, - 13566: 0xF94F, - 13567: 0xF950, - 13568: 0xF951, - 13569: 0x5AE9, - 13570: 0x8A25, - 13571: 0x677B, - 13572: 0x7D10, - 13573: 0xF952, - 13574: 0xF953, - 13575: 0xF954, - 13576: 0xF955, - 13577: 0xF956, - 13578: 0xF957, - 13579: 0x80FD, - 13580: 0xF958, - 13581: 0xF959, - 13582: 0x5C3C, - 13583: 0x6CE5, - 13584: 0x533F, - 13585: 0x6EBA, - 13586: 0x591A, - 13587: 0x8336, - 13588: 0x4E39, - 13589: 0x4EB6, - 13590: 0x4F46, - 13591: 0x55AE, - 13592: 0x5718, - 13593: 0x58C7, - 13594: 0x5F56, - 13595: 0x65B7, - 13596: 0x65E6, - 13597: 0x6A80, - 13598: 0x6BB5, - 13599: 0x6E4D, - 13600: 0x77ED, - 13601: 0x7AEF, - 13602: 0x7C1E, - 13603: 0x7DDE, - 13604: 0x86CB, - 13605: 0x8892, - 13606: 0x9132, - 13607: 0x935B, - 13608: 0x64BB, - 13609: 0x6FBE, - 13610: 0x737A, - 13611: 0x75B8, - 13612: 0x9054, - 13613: 0x5556, - 13614: 0x574D, - 13615: 0x61BA, - 13616: 0x64D4, - 13617: 0x66C7, - 13618: 0x6DE1, - 13619: 0x6E5B, - 13620: 0x6F6D, - 13621: 0x6FB9, - 13622: 0x75F0, - 13623: 0x8043, - 13624: 0x81BD, - 13625: 0x8541, - 13626: 0x8983, - 13627: 0x8AC7, - 13628: 0x8B5A, - 13629: 0x931F, - 13630: 0x6C93, - 13631: 0x7553, - 13632: 0x7B54, - 13633: 0x8E0F, - 13634: 0x905D, - 13635: 0x5510, - 13636: 0x5802, - 13637: 0x5858, - 13638: 0x5E62, - 13639: 0x6207, - 13640: 0x649E, - 13641: 0x68E0, - 13642: 0x7576, - 13643: 0x7CD6, - 13644: 0x87B3, - 13645: 0x9EE8, - 13646: 0x4EE3, - 13647: 0x5788, - 13648: 0x576E, - 13649: 0x5927, - 13650: 0x5C0D, - 13651: 0x5CB1, - 13652: 0x5E36, - 13653: 0x5F85, - 13654: 0x6234, - 13655: 0x64E1, - 13656: 0x73B3, - 13657: 0x81FA, - 13658: 0x888B, - 13659: 0x8CB8, - 13660: 0x968A, - 13661: 0x9EDB, - 13662: 0x5B85, - 13663: 0x5FB7, - 13664: 0x60B3, - 13665: 0x5012, - 13666: 0x5200, - 13667: 0x5230, - 13668: 0x5716, - 13669: 0x5835, - 13670: 0x5857, - 13671: 0x5C0E, - 13672: 0x5C60, - 13673: 0x5CF6, - 13674: 0x5D8B, - 13675: 0x5EA6, - 13676: 0x5F92, - 13677: 0x60BC, - 13678: 0x6311, - 13679: 0x6389, - 13680: 0x6417, - 13681: 0x6843, - 13682: 0x68F9, - 13683: 0x6AC2, - 13684: 0x6DD8, - 13685: 0x6E21, - 13686: 0x6ED4, - 13687: 0x6FE4, - 13688: 0x71FE, - 13689: 0x76DC, - 13690: 0x7779, - 13691: 0x79B1, - 13692: 0x7A3B, - 13693: 0x8404, - 13694: 0x89A9, - 13695: 0x8CED, - 13696: 0x8DF3, - 13697: 0x8E48, - 13698: 0x9003, - 13699: 0x9014, - 13700: 0x9053, - 13701: 0x90FD, - 13702: 0x934D, - 13703: 0x9676, - 13704: 0x97DC, - 13705: 0x6BD2, - 13706: 0x7006, - 13707: 0x7258, - 13708: 0x72A2, - 13709: 0x7368, - 13710: 0x7763, - 13711: 0x79BF, - 13712: 0x7BE4, - 13713: 0x7E9B, - 13714: 0x8B80, - 13715: 0x58A9, - 13716: 0x60C7, - 13717: 0x6566, - 13718: 0x65FD, - 13719: 0x66BE, - 13720: 0x6C8C, - 13721: 0x711E, - 13722: 0x71C9, - 13723: 0x8C5A, - 13724: 0x9813, - 13725: 0x4E6D, - 13726: 0x7A81, - 13727: 0x4EDD, - 13728: 0x51AC, - 13729: 0x51CD, - 13730: 0x52D5, - 13731: 0x540C, - 13732: 0x61A7, - 13733: 0x6771, - 13734: 0x6850, - 13735: 0x68DF, - 13736: 0x6D1E, - 13737: 0x6F7C, - 13738: 0x75BC, - 13739: 0x77B3, - 13740: 0x7AE5, - 13741: 0x80F4, - 13742: 0x8463, - 13743: 0x9285, - 13744: 0x515C, - 13745: 0x6597, - 13746: 0x675C, - 13747: 0x6793, - 13748: 0x75D8, - 13749: 0x7AC7, - 13750: 0x8373, - 13751: 0xF95A, - 13752: 0x8C46, - 13753: 0x9017, - 13754: 0x982D, - 13755: 0x5C6F, - 13756: 0x81C0, - 13757: 0x829A, - 13758: 0x9041, - 13759: 0x906F, - 13760: 0x920D, - 13761: 0x5F97, - 13762: 0x5D9D, - 13763: 0x6A59, - 13764: 0x71C8, - 13765: 0x767B, - 13766: 0x7B49, - 13767: 0x85E4, - 13768: 0x8B04, - 13769: 0x9127, - 13770: 0x9A30, - 13771: 0x5587, - 13772: 0x61F6, - 13773: 0xF95B, - 13774: 0x7669, - 13775: 0x7F85, - 13776: 0x863F, - 13777: 0x87BA, - 13778: 0x88F8, - 13779: 0x908F, - 13780: 0xF95C, - 13781: 0x6D1B, - 13782: 0x70D9, - 13783: 0x73DE, - 13784: 0x7D61, - 13785: 0x843D, - 13786: 0xF95D, - 13787: 0x916A, - 13788: 0x99F1, - 13789: 0xF95E, - 13790: 0x4E82, - 13791: 0x5375, - 13792: 0x6B04, - 13793: 0x6B12, - 13794: 0x703E, - 13795: 0x721B, - 13796: 0x862D, - 13797: 0x9E1E, - 13798: 0x524C, - 13799: 0x8FA3, - 13800: 0x5D50, - 13801: 0x64E5, - 13802: 0x652C, - 13803: 0x6B16, - 13804: 0x6FEB, - 13805: 0x7C43, - 13806: 0x7E9C, - 13807: 0x85CD, - 13808: 0x8964, - 13809: 0x89BD, - 13810: 0x62C9, - 13811: 0x81D8, - 13812: 0x881F, - 13813: 0x5ECA, - 13814: 0x6717, - 13815: 0x6D6A, - 13816: 0x72FC, - 13817: 0x7405, - 13818: 0x746F, - 13819: 0x8782, - 13820: 0x90DE, - 13821: 0x4F86, - 13822: 0x5D0D, - 13823: 0x5FA0, - 13824: 0x840A, - 13825: 0x51B7, - 13826: 0x63A0, - 13827: 0x7565, - 13828: 0x4EAE, - 13829: 0x5006, - 13830: 0x5169, - 13831: 0x51C9, - 13832: 0x6881, - 13833: 0x6A11, - 13834: 0x7CAE, - 13835: 0x7CB1, - 13836: 0x7CE7, - 13837: 0x826F, - 13838: 0x8AD2, - 13839: 0x8F1B, - 13840: 0x91CF, - 13841: 0x4FB6, - 13842: 0x5137, - 13843: 0x52F5, - 13844: 0x5442, - 13845: 0x5EEC, - 13846: 0x616E, - 13847: 0x623E, - 13848: 0x65C5, - 13849: 0x6ADA, - 13850: 0x6FFE, - 13851: 0x792A, - 13852: 0x85DC, - 13853: 0x8823, - 13854: 0x95AD, - 13855: 0x9A62, - 13856: 0x9A6A, - 13857: 0x9E97, - 13858: 0x9ECE, - 13859: 0x529B, - 13860: 0x66C6, - 13861: 0x6B77, - 13862: 0x701D, - 13863: 0x792B, - 13864: 0x8F62, - 13865: 0x9742, - 13866: 0x6190, - 13867: 0x6200, - 13868: 0x6523, - 13869: 0x6F23, - 13870: 0x7149, - 13871: 0x7489, - 13872: 0x7DF4, - 13873: 0x806F, - 13874: 0x84EE, - 13875: 0x8F26, - 13876: 0x9023, - 13877: 0x934A, - 13878: 0x51BD, - 13879: 0x5217, - 13880: 0x52A3, - 13881: 0x6D0C, - 13882: 0x70C8, - 13883: 0x88C2, - 13884: 0x5EC9, - 13885: 0x6582, - 13886: 0x6BAE, - 13887: 0x6FC2, - 13888: 0x7C3E, - 13889: 0x7375, - 13890: 0x4EE4, - 13891: 0x4F36, - 13892: 0x56F9, - 13893: 0xF95F, - 13894: 0x5CBA, - 13895: 0x5DBA, - 13896: 0x601C, - 13897: 0x73B2, - 13898: 0x7B2D, - 13899: 0x7F9A, - 13900: 0x7FCE, - 13901: 0x8046, - 13902: 0x901E, - 13903: 0x9234, - 13904: 0x96F6, - 13905: 0x9748, - 13906: 0x9818, - 13907: 0x9F61, - 13908: 0x4F8B, - 13909: 0x6FA7, - 13910: 0x79AE, - 13911: 0x91B4, - 13912: 0x96B7, - 13913: 0x52DE, - 13914: 0xF960, - 13915: 0x6488, - 13916: 0x64C4, - 13917: 0x6AD3, - 13918: 0x6F5E, - 13919: 0x7018, - 13920: 0x7210, - 13921: 0x76E7, - 13922: 0x8001, - 13923: 0x8606, - 13924: 0x865C, - 13925: 0x8DEF, - 13926: 0x8F05, - 13927: 0x9732, - 13928: 0x9B6F, - 13929: 0x9DFA, - 13930: 0x9E75, - 13931: 0x788C, - 13932: 0x797F, - 13933: 0x7DA0, - 13934: 0x83C9, - 13935: 0x9304, - 13936: 0x9E7F, - 13937: 0x9E93, - 13938: 0x8AD6, - 13939: 0x58DF, - 13940: 0x5F04, - 13941: 0x6727, - 13942: 0x7027, - 13943: 0x74CF, - 13944: 0x7C60, - 13945: 0x807E, - 13946: 0x5121, - 13947: 0x7028, - 13948: 0x7262, - 13949: 0x78CA, - 13950: 0x8CC2, - 13951: 0x8CDA, - 13952: 0x8CF4, - 13953: 0x96F7, - 13954: 0x4E86, - 13955: 0x50DA, - 13956: 0x5BEE, - 13957: 0x5ED6, - 13958: 0x6599, - 13959: 0x71CE, - 13960: 0x7642, - 13961: 0x77AD, - 13962: 0x804A, - 13963: 0x84FC, - 13964: 0x907C, - 13965: 0x9B27, - 13966: 0x9F8D, - 13967: 0x58D8, - 13968: 0x5A41, - 13969: 0x5C62, - 13970: 0x6A13, - 13971: 0x6DDA, - 13972: 0x6F0F, - 13973: 0x763B, - 13974: 0x7D2F, - 13975: 0x7E37, - 13976: 0x851E, - 13977: 0x8938, - 13978: 0x93E4, - 13979: 0x964B, - 13980: 0x5289, - 13981: 0x65D2, - 13982: 0x67F3, - 13983: 0x69B4, - 13984: 0x6D41, - 13985: 0x6E9C, - 13986: 0x700F, - 13987: 0x7409, - 13988: 0x7460, - 13989: 0x7559, - 13990: 0x7624, - 13991: 0x786B, - 13992: 0x8B2C, - 13993: 0x985E, - 13994: 0x516D, - 13995: 0x622E, - 13996: 0x9678, - 13997: 0x4F96, - 13998: 0x502B, - 13999: 0x5D19, - 14000: 0x6DEA, - 14001: 0x7DB8, - 14002: 0x8F2A, - 14003: 0x5F8B, - 14004: 0x6144, - 14005: 0x6817, - 14006: 0xF961, - 14007: 0x9686, - 14008: 0x52D2, - 14009: 0x808B, - 14010: 0x51DC, - 14011: 0x51CC, - 14012: 0x695E, - 14013: 0x7A1C, - 14014: 0x7DBE, - 14015: 0x83F1, - 14016: 0x9675, - 14017: 0x4FDA, - 14018: 0x5229, - 14019: 0x5398, - 14020: 0x540F, - 14021: 0x550E, - 14022: 0x5C65, - 14023: 0x60A7, - 14024: 0x674E, - 14025: 0x68A8, - 14026: 0x6D6C, - 14027: 0x7281, - 14028: 0x72F8, - 14029: 0x7406, - 14030: 0x7483, - 14031: 0xF962, - 14032: 0x75E2, - 14033: 0x7C6C, - 14034: 0x7F79, - 14035: 0x7FB8, - 14036: 0x8389, - 14037: 0x88CF, - 14038: 0x88E1, - 14039: 0x91CC, - 14040: 0x91D0, - 14041: 0x96E2, - 14042: 0x9BC9, - 14043: 0x541D, - 14044: 0x6F7E, - 14045: 0x71D0, - 14046: 0x7498, - 14047: 0x85FA, - 14048: 0x8EAA, - 14049: 0x96A3, - 14050: 0x9C57, - 14051: 0x9E9F, - 14052: 0x6797, - 14053: 0x6DCB, - 14054: 0x7433, - 14055: 0x81E8, - 14056: 0x9716, - 14057: 0x782C, - 14058: 0x7ACB, - 14059: 0x7B20, - 14060: 0x7C92, - 14061: 0x6469, - 14062: 0x746A, - 14063: 0x75F2, - 14064: 0x78BC, - 14065: 0x78E8, - 14066: 0x99AC, - 14067: 0x9B54, - 14068: 0x9EBB, - 14069: 0x5BDE, - 14070: 0x5E55, - 14071: 0x6F20, - 14072: 0x819C, - 14073: 0x83AB, - 14074: 0x9088, - 14075: 0x4E07, - 14076: 0x534D, - 14077: 0x5A29, - 14078: 0x5DD2, - 14079: 0x5F4E, - 14080: 0x6162, - 14081: 0x633D, - 14082: 0x6669, - 14083: 0x66FC, - 14084: 0x6EFF, - 14085: 0x6F2B, - 14086: 0x7063, - 14087: 0x779E, - 14088: 0x842C, - 14089: 0x8513, - 14090: 0x883B, - 14091: 0x8F13, - 14092: 0x9945, - 14093: 0x9C3B, - 14094: 0x551C, - 14095: 0x62B9, - 14096: 0x672B, - 14097: 0x6CAB, - 14098: 0x8309, - 14099: 0x896A, - 14100: 0x977A, - 14101: 0x4EA1, - 14102: 0x5984, - 14103: 0x5FD8, - 14104: 0x5FD9, - 14105: 0x671B, - 14106: 0x7DB2, - 14107: 0x7F54, - 14108: 0x8292, - 14109: 0x832B, - 14110: 0x83BD, - 14111: 0x8F1E, - 14112: 0x9099, - 14113: 0x57CB, - 14114: 0x59B9, - 14115: 0x5A92, - 14116: 0x5BD0, - 14117: 0x6627, - 14118: 0x679A, - 14119: 0x6885, - 14120: 0x6BCF, - 14121: 0x7164, - 14122: 0x7F75, - 14123: 0x8CB7, - 14124: 0x8CE3, - 14125: 0x9081, - 14126: 0x9B45, - 14127: 0x8108, - 14128: 0x8C8A, - 14129: 0x964C, - 14130: 0x9A40, - 14131: 0x9EA5, - 14132: 0x5B5F, - 14133: 0x6C13, - 14134: 0x731B, - 14135: 0x76F2, - 14136: 0x76DF, - 14137: 0x840C, - 14138: 0x51AA, - 14139: 0x8993, - 14140: 0x514D, - 14141: 0x5195, - 14142: 0x52C9, - 14143: 0x68C9, - 14144: 0x6C94, - 14145: 0x7704, - 14146: 0x7720, - 14147: 0x7DBF, - 14148: 0x7DEC, - 14149: 0x9762, - 14150: 0x9EB5, - 14151: 0x6EC5, - 14152: 0x8511, - 14153: 0x51A5, - 14154: 0x540D, - 14155: 0x547D, - 14156: 0x660E, - 14157: 0x669D, - 14158: 0x6927, - 14159: 0x6E9F, - 14160: 0x76BF, - 14161: 0x7791, - 14162: 0x8317, - 14163: 0x84C2, - 14164: 0x879F, - 14165: 0x9169, - 14166: 0x9298, - 14167: 0x9CF4, - 14168: 0x8882, - 14169: 0x4FAE, - 14170: 0x5192, - 14171: 0x52DF, - 14172: 0x59C6, - 14173: 0x5E3D, - 14174: 0x6155, - 14175: 0x6478, - 14176: 0x6479, - 14177: 0x66AE, - 14178: 0x67D0, - 14179: 0x6A21, - 14180: 0x6BCD, - 14181: 0x6BDB, - 14182: 0x725F, - 14183: 0x7261, - 14184: 0x7441, - 14185: 0x7738, - 14186: 0x77DB, - 14187: 0x8017, - 14188: 0x82BC, - 14189: 0x8305, - 14190: 0x8B00, - 14191: 0x8B28, - 14192: 0x8C8C, - 14193: 0x6728, - 14194: 0x6C90, - 14195: 0x7267, - 14196: 0x76EE, - 14197: 0x7766, - 14198: 0x7A46, - 14199: 0x9DA9, - 14200: 0x6B7F, - 14201: 0x6C92, - 14202: 0x5922, - 14203: 0x6726, - 14204: 0x8499, - 14205: 0x536F, - 14206: 0x5893, - 14207: 0x5999, - 14208: 0x5EDF, - 14209: 0x63CF, - 14210: 0x6634, - 14211: 0x6773, - 14212: 0x6E3A, - 14213: 0x732B, - 14214: 0x7AD7, - 14215: 0x82D7, - 14216: 0x9328, - 14217: 0x52D9, - 14218: 0x5DEB, - 14219: 0x61AE, - 14220: 0x61CB, - 14221: 0x620A, - 14222: 0x62C7, - 14223: 0x64AB, - 14224: 0x65E0, - 14225: 0x6959, - 14226: 0x6B66, - 14227: 0x6BCB, - 14228: 0x7121, - 14229: 0x73F7, - 14230: 0x755D, - 14231: 0x7E46, - 14232: 0x821E, - 14233: 0x8302, - 14234: 0x856A, - 14235: 0x8AA3, - 14236: 0x8CBF, - 14237: 0x9727, - 14238: 0x9D61, - 14239: 0x58A8, - 14240: 0x9ED8, - 14241: 0x5011, - 14242: 0x520E, - 14243: 0x543B, - 14244: 0x554F, - 14245: 0x6587, - 14246: 0x6C76, - 14247: 0x7D0A, - 14248: 0x7D0B, - 14249: 0x805E, - 14250: 0x868A, - 14251: 0x9580, - 14252: 0x96EF, - 14253: 0x52FF, - 14254: 0x6C95, - 14255: 0x7269, - 14256: 0x5473, - 14257: 0x5A9A, - 14258: 0x5C3E, - 14259: 0x5D4B, - 14260: 0x5F4C, - 14261: 0x5FAE, - 14262: 0x672A, - 14263: 0x68B6, - 14264: 0x6963, - 14265: 0x6E3C, - 14266: 0x6E44, - 14267: 0x7709, - 14268: 0x7C73, - 14269: 0x7F8E, - 14270: 0x8587, - 14271: 0x8B0E, - 14272: 0x8FF7, - 14273: 0x9761, - 14274: 0x9EF4, - 14275: 0x5CB7, - 14276: 0x60B6, - 14277: 0x610D, - 14278: 0x61AB, - 14279: 0x654F, - 14280: 0x65FB, - 14281: 0x65FC, - 14282: 0x6C11, - 14283: 0x6CEF, - 14284: 0x739F, - 14285: 0x73C9, - 14286: 0x7DE1, - 14287: 0x9594, - 14288: 0x5BC6, - 14289: 0x871C, - 14290: 0x8B10, - 14291: 0x525D, - 14292: 0x535A, - 14293: 0x62CD, - 14294: 0x640F, - 14295: 0x64B2, - 14296: 0x6734, - 14297: 0x6A38, - 14298: 0x6CCA, - 14299: 0x73C0, - 14300: 0x749E, - 14301: 0x7B94, - 14302: 0x7C95, - 14303: 0x7E1B, - 14304: 0x818A, - 14305: 0x8236, - 14306: 0x8584, - 14307: 0x8FEB, - 14308: 0x96F9, - 14309: 0x99C1, - 14310: 0x4F34, - 14311: 0x534A, - 14312: 0x53CD, - 14313: 0x53DB, - 14314: 0x62CC, - 14315: 0x642C, - 14316: 0x6500, - 14317: 0x6591, - 14318: 0x69C3, - 14319: 0x6CEE, - 14320: 0x6F58, - 14321: 0x73ED, - 14322: 0x7554, - 14323: 0x7622, - 14324: 0x76E4, - 14325: 0x76FC, - 14326: 0x78D0, - 14327: 0x78FB, - 14328: 0x792C, - 14329: 0x7D46, - 14330: 0x822C, - 14331: 0x87E0, - 14332: 0x8FD4, - 14333: 0x9812, - 14334: 0x98EF, - 14335: 0x52C3, - 14336: 0x62D4, - 14337: 0x64A5, - 14338: 0x6E24, - 14339: 0x6F51, - 14340: 0x767C, - 14341: 0x8DCB, - 14342: 0x91B1, - 14343: 0x9262, - 14344: 0x9AEE, - 14345: 0x9B43, - 14346: 0x5023, - 14347: 0x508D, - 14348: 0x574A, - 14349: 0x59A8, - 14350: 0x5C28, - 14351: 0x5E47, - 14352: 0x5F77, - 14353: 0x623F, - 14354: 0x653E, - 14355: 0x65B9, - 14356: 0x65C1, - 14357: 0x6609, - 14358: 0x678B, - 14359: 0x699C, - 14360: 0x6EC2, - 14361: 0x78C5, - 14362: 0x7D21, - 14363: 0x80AA, - 14364: 0x8180, - 14365: 0x822B, - 14366: 0x82B3, - 14367: 0x84A1, - 14368: 0x868C, - 14369: 0x8A2A, - 14370: 0x8B17, - 14371: 0x90A6, - 14372: 0x9632, - 14373: 0x9F90, - 14374: 0x500D, - 14375: 0x4FF3, - 14376: 0xF963, - 14377: 0x57F9, - 14378: 0x5F98, - 14379: 0x62DC, - 14380: 0x6392, - 14381: 0x676F, - 14382: 0x6E43, - 14383: 0x7119, - 14384: 0x76C3, - 14385: 0x80CC, - 14386: 0x80DA, - 14387: 0x88F4, - 14388: 0x88F5, - 14389: 0x8919, - 14390: 0x8CE0, - 14391: 0x8F29, - 14392: 0x914D, - 14393: 0x966A, - 14394: 0x4F2F, - 14395: 0x4F70, - 14396: 0x5E1B, - 14397: 0x67CF, - 14398: 0x6822, - 14399: 0x767D, - 14400: 0x767E, - 14401: 0x9B44, - 14402: 0x5E61, - 14403: 0x6A0A, - 14404: 0x7169, - 14405: 0x71D4, - 14406: 0x756A, - 14407: 0xF964, - 14408: 0x7E41, - 14409: 0x8543, - 14410: 0x85E9, - 14411: 0x98DC, - 14412: 0x4F10, - 14413: 0x7B4F, - 14414: 0x7F70, - 14415: 0x95A5, - 14416: 0x51E1, - 14417: 0x5E06, - 14418: 0x68B5, - 14419: 0x6C3E, - 14420: 0x6C4E, - 14421: 0x6CDB, - 14422: 0x72AF, - 14423: 0x7BC4, - 14424: 0x8303, - 14425: 0x6CD5, - 14426: 0x743A, - 14427: 0x50FB, - 14428: 0x5288, - 14429: 0x58C1, - 14430: 0x64D8, - 14431: 0x6A97, - 14432: 0x74A7, - 14433: 0x7656, - 14434: 0x78A7, - 14435: 0x8617, - 14436: 0x95E2, - 14437: 0x9739, - 14438: 0xF965, - 14439: 0x535E, - 14440: 0x5F01, - 14441: 0x8B8A, - 14442: 0x8FA8, - 14443: 0x8FAF, - 14444: 0x908A, - 14445: 0x5225, - 14446: 0x77A5, - 14447: 0x9C49, - 14448: 0x9F08, - 14449: 0x4E19, - 14450: 0x5002, - 14451: 0x5175, - 14452: 0x5C5B, - 14453: 0x5E77, - 14454: 0x661E, - 14455: 0x663A, - 14456: 0x67C4, - 14457: 0x68C5, - 14458: 0x70B3, - 14459: 0x7501, - 14460: 0x75C5, - 14461: 0x79C9, - 14462: 0x7ADD, - 14463: 0x8F27, - 14464: 0x9920, - 14465: 0x9A08, - 14466: 0x4FDD, - 14467: 0x5821, - 14468: 0x5831, - 14469: 0x5BF6, - 14470: 0x666E, - 14471: 0x6B65, - 14472: 0x6D11, - 14473: 0x6E7A, - 14474: 0x6F7D, - 14475: 0x73E4, - 14476: 0x752B, - 14477: 0x83E9, - 14478: 0x88DC, - 14479: 0x8913, - 14480: 0x8B5C, - 14481: 0x8F14, - 14482: 0x4F0F, - 14483: 0x50D5, - 14484: 0x5310, - 14485: 0x535C, - 14486: 0x5B93, - 14487: 0x5FA9, - 14488: 0x670D, - 14489: 0x798F, - 14490: 0x8179, - 14491: 0x832F, - 14492: 0x8514, - 14493: 0x8907, - 14494: 0x8986, - 14495: 0x8F39, - 14496: 0x8F3B, - 14497: 0x99A5, - 14498: 0x9C12, - 14499: 0x672C, - 14500: 0x4E76, - 14501: 0x4FF8, - 14502: 0x5949, - 14503: 0x5C01, - 14504: 0x5CEF, - 14505: 0x5CF0, - 14506: 0x6367, - 14507: 0x68D2, - 14508: 0x70FD, - 14509: 0x71A2, - 14510: 0x742B, - 14511: 0x7E2B, - 14512: 0x84EC, - 14513: 0x8702, - 14514: 0x9022, - 14515: 0x92D2, - 14516: 0x9CF3, - 14517: 0x4E0D, - 14518: 0x4ED8, - 14519: 0x4FEF, - 14520: 0x5085, - 14521: 0x5256, - 14522: 0x526F, - 14523: 0x5426, - 14524: 0x5490, - 14525: 0x57E0, - 14526: 0x592B, - 14527: 0x5A66, - 14528: 0x5B5A, - 14529: 0x5B75, - 14530: 0x5BCC, - 14531: 0x5E9C, - 14532: 0xF966, - 14533: 0x6276, - 14534: 0x6577, - 14535: 0x65A7, - 14536: 0x6D6E, - 14537: 0x6EA5, - 14538: 0x7236, - 14539: 0x7B26, - 14540: 0x7C3F, - 14541: 0x7F36, - 14542: 0x8150, - 14543: 0x8151, - 14544: 0x819A, - 14545: 0x8240, - 14546: 0x8299, - 14547: 0x83A9, - 14548: 0x8A03, - 14549: 0x8CA0, - 14550: 0x8CE6, - 14551: 0x8CFB, - 14552: 0x8D74, - 14553: 0x8DBA, - 14554: 0x90E8, - 14555: 0x91DC, - 14556: 0x961C, - 14557: 0x9644, - 14558: 0x99D9, - 14559: 0x9CE7, - 14560: 0x5317, - 14561: 0x5206, - 14562: 0x5429, - 14563: 0x5674, - 14564: 0x58B3, - 14565: 0x5954, - 14566: 0x596E, - 14567: 0x5FFF, - 14568: 0x61A4, - 14569: 0x626E, - 14570: 0x6610, - 14571: 0x6C7E, - 14572: 0x711A, - 14573: 0x76C6, - 14574: 0x7C89, - 14575: 0x7CDE, - 14576: 0x7D1B, - 14577: 0x82AC, - 14578: 0x8CC1, - 14579: 0x96F0, - 14580: 0xF967, - 14581: 0x4F5B, - 14582: 0x5F17, - 14583: 0x5F7F, - 14584: 0x62C2, - 14585: 0x5D29, - 14586: 0x670B, - 14587: 0x68DA, - 14588: 0x787C, - 14589: 0x7E43, - 14590: 0x9D6C, - 14591: 0x4E15, - 14592: 0x5099, - 14593: 0x5315, - 14594: 0x532A, - 14595: 0x5351, - 14596: 0x5983, - 14597: 0x5A62, - 14598: 0x5E87, - 14599: 0x60B2, - 14600: 0x618A, - 14601: 0x6249, - 14602: 0x6279, - 14603: 0x6590, - 14604: 0x6787, - 14605: 0x69A7, - 14606: 0x6BD4, - 14607: 0x6BD6, - 14608: 0x6BD7, - 14609: 0x6BD8, - 14610: 0x6CB8, - 14611: 0xF968, - 14612: 0x7435, - 14613: 0x75FA, - 14614: 0x7812, - 14615: 0x7891, - 14616: 0x79D5, - 14617: 0x79D8, - 14618: 0x7C83, - 14619: 0x7DCB, - 14620: 0x7FE1, - 14621: 0x80A5, - 14622: 0x813E, - 14623: 0x81C2, - 14624: 0x83F2, - 14625: 0x871A, - 14626: 0x88E8, - 14627: 0x8AB9, - 14628: 0x8B6C, - 14629: 0x8CBB, - 14630: 0x9119, - 14631: 0x975E, - 14632: 0x98DB, - 14633: 0x9F3B, - 14634: 0x56AC, - 14635: 0x5B2A, - 14636: 0x5F6C, - 14637: 0x658C, - 14638: 0x6AB3, - 14639: 0x6BAF, - 14640: 0x6D5C, - 14641: 0x6FF1, - 14642: 0x7015, - 14643: 0x725D, - 14644: 0x73AD, - 14645: 0x8CA7, - 14646: 0x8CD3, - 14647: 0x983B, - 14648: 0x6191, - 14649: 0x6C37, - 14650: 0x8058, - 14651: 0x9A01, - 14652: 0x4E4D, - 14653: 0x4E8B, - 14654: 0x4E9B, - 14655: 0x4ED5, - 14656: 0x4F3A, - 14657: 0x4F3C, - 14658: 0x4F7F, - 14659: 0x4FDF, - 14660: 0x50FF, - 14661: 0x53F2, - 14662: 0x53F8, - 14663: 0x5506, - 14664: 0x55E3, - 14665: 0x56DB, - 14666: 0x58EB, - 14667: 0x5962, - 14668: 0x5A11, - 14669: 0x5BEB, - 14670: 0x5BFA, - 14671: 0x5C04, - 14672: 0x5DF3, - 14673: 0x5E2B, - 14674: 0x5F99, - 14675: 0x601D, - 14676: 0x6368, - 14677: 0x659C, - 14678: 0x65AF, - 14679: 0x67F6, - 14680: 0x67FB, - 14681: 0x68AD, - 14682: 0x6B7B, - 14683: 0x6C99, - 14684: 0x6CD7, - 14685: 0x6E23, - 14686: 0x7009, - 14687: 0x7345, - 14688: 0x7802, - 14689: 0x793E, - 14690: 0x7940, - 14691: 0x7960, - 14692: 0x79C1, - 14693: 0x7BE9, - 14694: 0x7D17, - 14695: 0x7D72, - 14696: 0x8086, - 14697: 0x820D, - 14698: 0x838E, - 14699: 0x84D1, - 14700: 0x86C7, - 14701: 0x88DF, - 14702: 0x8A50, - 14703: 0x8A5E, - 14704: 0x8B1D, - 14705: 0x8CDC, - 14706: 0x8D66, - 14707: 0x8FAD, - 14708: 0x90AA, - 14709: 0x98FC, - 14710: 0x99DF, - 14711: 0x9E9D, - 14712: 0x524A, - 14713: 0xF969, - 14714: 0x6714, - 14715: 0xF96A, - 14716: 0x5098, - 14717: 0x522A, - 14718: 0x5C71, - 14719: 0x6563, - 14720: 0x6C55, - 14721: 0x73CA, - 14722: 0x7523, - 14723: 0x759D, - 14724: 0x7B97, - 14725: 0x849C, - 14726: 0x9178, - 14727: 0x9730, - 14728: 0x4E77, - 14729: 0x6492, - 14730: 0x6BBA, - 14731: 0x715E, - 14732: 0x85A9, - 14733: 0x4E09, - 14734: 0xF96B, - 14735: 0x6749, - 14736: 0x68EE, - 14737: 0x6E17, - 14738: 0x829F, - 14739: 0x8518, - 14740: 0x886B, - 14741: 0x63F7, - 14742: 0x6F81, - 14743: 0x9212, - 14744: 0x98AF, - 14745: 0x4E0A, - 14746: 0x50B7, - 14747: 0x50CF, - 14748: 0x511F, - 14749: 0x5546, - 14750: 0x55AA, - 14751: 0x5617, - 14752: 0x5B40, - 14753: 0x5C19, - 14754: 0x5CE0, - 14755: 0x5E38, - 14756: 0x5E8A, - 14757: 0x5EA0, - 14758: 0x5EC2, - 14759: 0x60F3, - 14760: 0x6851, - 14761: 0x6A61, - 14762: 0x6E58, - 14763: 0x723D, - 14764: 0x7240, - 14765: 0x72C0, - 14766: 0x76F8, - 14767: 0x7965, - 14768: 0x7BB1, - 14769: 0x7FD4, - 14770: 0x88F3, - 14771: 0x89F4, - 14772: 0x8A73, - 14773: 0x8C61, - 14774: 0x8CDE, - 14775: 0x971C, - 14776: 0x585E, - 14777: 0x74BD, - 14778: 0x8CFD, - 14779: 0x55C7, - 14780: 0xF96C, - 14781: 0x7A61, - 14782: 0x7D22, - 14783: 0x8272, - 14784: 0x7272, - 14785: 0x751F, - 14786: 0x7525, - 14787: 0xF96D, - 14788: 0x7B19, - 14789: 0x5885, - 14790: 0x58FB, - 14791: 0x5DBC, - 14792: 0x5E8F, - 14793: 0x5EB6, - 14794: 0x5F90, - 14795: 0x6055, - 14796: 0x6292, - 14797: 0x637F, - 14798: 0x654D, - 14799: 0x6691, - 14800: 0x66D9, - 14801: 0x66F8, - 14802: 0x6816, - 14803: 0x68F2, - 14804: 0x7280, - 14805: 0x745E, - 14806: 0x7B6E, - 14807: 0x7D6E, - 14808: 0x7DD6, - 14809: 0x7F72, - 14810: 0x80E5, - 14811: 0x8212, - 14812: 0x85AF, - 14813: 0x897F, - 14814: 0x8A93, - 14815: 0x901D, - 14816: 0x92E4, - 14817: 0x9ECD, - 14818: 0x9F20, - 14819: 0x5915, - 14820: 0x596D, - 14821: 0x5E2D, - 14822: 0x60DC, - 14823: 0x6614, - 14824: 0x6673, - 14825: 0x6790, - 14826: 0x6C50, - 14827: 0x6DC5, - 14828: 0x6F5F, - 14829: 0x77F3, - 14830: 0x78A9, - 14831: 0x84C6, - 14832: 0x91CB, - 14833: 0x932B, - 14834: 0x4ED9, - 14835: 0x50CA, - 14836: 0x5148, - 14837: 0x5584, - 14838: 0x5B0B, - 14839: 0x5BA3, - 14840: 0x6247, - 14841: 0x657E, - 14842: 0x65CB, - 14843: 0x6E32, - 14844: 0x717D, - 14845: 0x7401, - 14846: 0x7444, - 14847: 0x7487, - 14848: 0x74BF, - 14849: 0x766C, - 14850: 0x79AA, - 14851: 0x7DDA, - 14852: 0x7E55, - 14853: 0x7FA8, - 14854: 0x817A, - 14855: 0x81B3, - 14856: 0x8239, - 14857: 0x861A, - 14858: 0x87EC, - 14859: 0x8A75, - 14860: 0x8DE3, - 14861: 0x9078, - 14862: 0x9291, - 14863: 0x9425, - 14864: 0x994D, - 14865: 0x9BAE, - 14866: 0x5368, - 14867: 0x5C51, - 14868: 0x6954, - 14869: 0x6CC4, - 14870: 0x6D29, - 14871: 0x6E2B, - 14872: 0x820C, - 14873: 0x859B, - 14874: 0x893B, - 14875: 0x8A2D, - 14876: 0x8AAA, - 14877: 0x96EA, - 14878: 0x9F67, - 14879: 0x5261, - 14880: 0x66B9, - 14881: 0x6BB2, - 14882: 0x7E96, - 14883: 0x87FE, - 14884: 0x8D0D, - 14885: 0x9583, - 14886: 0x965D, - 14887: 0x651D, - 14888: 0x6D89, - 14889: 0x71EE, - 14890: 0xF96E, - 14891: 0x57CE, - 14892: 0x59D3, - 14893: 0x5BAC, - 14894: 0x6027, - 14895: 0x60FA, - 14896: 0x6210, - 14897: 0x661F, - 14898: 0x665F, - 14899: 0x7329, - 14900: 0x73F9, - 14901: 0x76DB, - 14902: 0x7701, - 14903: 0x7B6C, - 14904: 0x8056, - 14905: 0x8072, - 14906: 0x8165, - 14907: 0x8AA0, - 14908: 0x9192, - 14909: 0x4E16, - 14910: 0x52E2, - 14911: 0x6B72, - 14912: 0x6D17, - 14913: 0x7A05, - 14914: 0x7B39, - 14915: 0x7D30, - 14916: 0xF96F, - 14917: 0x8CB0, - 14918: 0x53EC, - 14919: 0x562F, - 14920: 0x5851, - 14921: 0x5BB5, - 14922: 0x5C0F, - 14923: 0x5C11, - 14924: 0x5DE2, - 14925: 0x6240, - 14926: 0x6383, - 14927: 0x6414, - 14928: 0x662D, - 14929: 0x68B3, - 14930: 0x6CBC, - 14931: 0x6D88, - 14932: 0x6EAF, - 14933: 0x701F, - 14934: 0x70A4, - 14935: 0x71D2, - 14936: 0x7526, - 14937: 0x758F, - 14938: 0x758E, - 14939: 0x7619, - 14940: 0x7B11, - 14941: 0x7BE0, - 14942: 0x7C2B, - 14943: 0x7D20, - 14944: 0x7D39, - 14945: 0x852C, - 14946: 0x856D, - 14947: 0x8607, - 14948: 0x8A34, - 14949: 0x900D, - 14950: 0x9061, - 14951: 0x90B5, - 14952: 0x92B7, - 14953: 0x97F6, - 14954: 0x9A37, - 14955: 0x4FD7, - 14956: 0x5C6C, - 14957: 0x675F, - 14958: 0x6D91, - 14959: 0x7C9F, - 14960: 0x7E8C, - 14961: 0x8B16, - 14962: 0x8D16, - 14963: 0x901F, - 14964: 0x5B6B, - 14965: 0x5DFD, - 14966: 0x640D, - 14967: 0x84C0, - 14968: 0x905C, - 14969: 0x98E1, - 14970: 0x7387, - 14971: 0x5B8B, - 14972: 0x609A, - 14973: 0x677E, - 14974: 0x6DDE, - 14975: 0x8A1F, - 14976: 0x8AA6, - 14977: 0x9001, - 14978: 0x980C, - 14979: 0x5237, - 14980: 0xF970, - 14981: 0x7051, - 14982: 0x788E, - 14983: 0x9396, - 14984: 0x8870, - 14985: 0x91D7, - 14986: 0x4FEE, - 14987: 0x53D7, - 14988: 0x55FD, - 14989: 0x56DA, - 14990: 0x5782, - 14991: 0x58FD, - 14992: 0x5AC2, - 14993: 0x5B88, - 14994: 0x5CAB, - 14995: 0x5CC0, - 14996: 0x5E25, - 14997: 0x6101, - 14998: 0x620D, - 14999: 0x624B, - 15000: 0x6388, - 15001: 0x641C, - 15002: 0x6536, - 15003: 0x6578, - 15004: 0x6A39, - 15005: 0x6B8A, - 15006: 0x6C34, - 15007: 0x6D19, - 15008: 0x6F31, - 15009: 0x71E7, - 15010: 0x72E9, - 15011: 0x7378, - 15012: 0x7407, - 15013: 0x74B2, - 15014: 0x7626, - 15015: 0x7761, - 15016: 0x79C0, - 15017: 0x7A57, - 15018: 0x7AEA, - 15019: 0x7CB9, - 15020: 0x7D8F, - 15021: 0x7DAC, - 15022: 0x7E61, - 15023: 0x7F9E, - 15024: 0x8129, - 15025: 0x8331, - 15026: 0x8490, - 15027: 0x84DA, - 15028: 0x85EA, - 15029: 0x8896, - 15030: 0x8AB0, - 15031: 0x8B90, - 15032: 0x8F38, - 15033: 0x9042, - 15034: 0x9083, - 15035: 0x916C, - 15036: 0x9296, - 15037: 0x92B9, - 15038: 0x968B, - 15039: 0x96A7, - 15040: 0x96A8, - 15041: 0x96D6, - 15042: 0x9700, - 15043: 0x9808, - 15044: 0x9996, - 15045: 0x9AD3, - 15046: 0x9B1A, - 15047: 0x53D4, - 15048: 0x587E, - 15049: 0x5919, - 15050: 0x5B70, - 15051: 0x5BBF, - 15052: 0x6DD1, - 15053: 0x6F5A, - 15054: 0x719F, - 15055: 0x7421, - 15056: 0x74B9, - 15057: 0x8085, - 15058: 0x83FD, - 15059: 0x5DE1, - 15060: 0x5F87, - 15061: 0x5FAA, - 15062: 0x6042, - 15063: 0x65EC, - 15064: 0x6812, - 15065: 0x696F, - 15066: 0x6A53, - 15067: 0x6B89, - 15068: 0x6D35, - 15069: 0x6DF3, - 15070: 0x73E3, - 15071: 0x76FE, - 15072: 0x77AC, - 15073: 0x7B4D, - 15074: 0x7D14, - 15075: 0x8123, - 15076: 0x821C, - 15077: 0x8340, - 15078: 0x84F4, - 15079: 0x8563, - 15080: 0x8A62, - 15081: 0x8AC4, - 15082: 0x9187, - 15083: 0x931E, - 15084: 0x9806, - 15085: 0x99B4, - 15086: 0x620C, - 15087: 0x8853, - 15088: 0x8FF0, - 15089: 0x9265, - 15090: 0x5D07, - 15091: 0x5D27, - 15092: 0x5D69, - 15093: 0x745F, - 15094: 0x819D, - 15095: 0x8768, - 15096: 0x6FD5, - 15097: 0x62FE, - 15098: 0x7FD2, - 15099: 0x8936, - 15100: 0x8972, - 15101: 0x4E1E, - 15102: 0x4E58, - 15103: 0x50E7, - 15104: 0x52DD, - 15105: 0x5347, - 15106: 0x627F, - 15107: 0x6607, - 15108: 0x7E69, - 15109: 0x8805, - 15110: 0x965E, - 15111: 0x4F8D, - 15112: 0x5319, - 15113: 0x5636, - 15114: 0x59CB, - 15115: 0x5AA4, - 15116: 0x5C38, - 15117: 0x5C4E, - 15118: 0x5C4D, - 15119: 0x5E02, - 15120: 0x5F11, - 15121: 0x6043, - 15122: 0x65BD, - 15123: 0x662F, - 15124: 0x6642, - 15125: 0x67BE, - 15126: 0x67F4, - 15127: 0x731C, - 15128: 0x77E2, - 15129: 0x793A, - 15130: 0x7FC5, - 15131: 0x8494, - 15132: 0x84CD, - 15133: 0x8996, - 15134: 0x8A66, - 15135: 0x8A69, - 15136: 0x8AE1, - 15137: 0x8C55, - 15138: 0x8C7A, - 15139: 0x57F4, - 15140: 0x5BD4, - 15141: 0x5F0F, - 15142: 0x606F, - 15143: 0x62ED, - 15144: 0x690D, - 15145: 0x6B96, - 15146: 0x6E5C, - 15147: 0x7184, - 15148: 0x7BD2, - 15149: 0x8755, - 15150: 0x8B58, - 15151: 0x8EFE, - 15152: 0x98DF, - 15153: 0x98FE, - 15154: 0x4F38, - 15155: 0x4F81, - 15156: 0x4FE1, - 15157: 0x547B, - 15158: 0x5A20, - 15159: 0x5BB8, - 15160: 0x613C, - 15161: 0x65B0, - 15162: 0x6668, - 15163: 0x71FC, - 15164: 0x7533, - 15165: 0x795E, - 15166: 0x7D33, - 15167: 0x814E, - 15168: 0x81E3, - 15169: 0x8398, - 15170: 0x85AA, - 15171: 0x85CE, - 15172: 0x8703, - 15173: 0x8A0A, - 15174: 0x8EAB, - 15175: 0x8F9B, - 15176: 0xF971, - 15177: 0x8FC5, - 15178: 0x5931, - 15179: 0x5BA4, - 15180: 0x5BE6, - 15181: 0x6089, - 15182: 0x5BE9, - 15183: 0x5C0B, - 15184: 0x5FC3, - 15185: 0x6C81, - 15186: 0xF972, - 15187: 0x6DF1, - 15188: 0x700B, - 15189: 0x751A, - 15190: 0x82AF, - 15191: 0x8AF6, - 15192: 0x4EC0, - 15193: 0x5341, - 15194: 0xF973, - 15195: 0x96D9, - 15196: 0x6C0F, - 15197: 0x4E9E, - 15198: 0x4FC4, - 15199: 0x5152, - 15200: 0x555E, - 15201: 0x5A25, - 15202: 0x5CE8, - 15203: 0x6211, - 15204: 0x7259, - 15205: 0x82BD, - 15206: 0x83AA, - 15207: 0x86FE, - 15208: 0x8859, - 15209: 0x8A1D, - 15210: 0x963F, - 15211: 0x96C5, - 15212: 0x9913, - 15213: 0x9D09, - 15214: 0x9D5D, - 15215: 0x580A, - 15216: 0x5CB3, - 15217: 0x5DBD, - 15218: 0x5E44, - 15219: 0x60E1, - 15220: 0x6115, - 15221: 0x63E1, - 15222: 0x6A02, - 15223: 0x6E25, - 15224: 0x9102, - 15225: 0x9354, - 15226: 0x984E, - 15227: 0x9C10, - 15228: 0x9F77, - 15229: 0x5B89, - 15230: 0x5CB8, - 15231: 0x6309, - 15232: 0x664F, - 15233: 0x6848, - 15234: 0x773C, - 15235: 0x96C1, - 15236: 0x978D, - 15237: 0x9854, - 15238: 0x9B9F, - 15239: 0x65A1, - 15240: 0x8B01, - 15241: 0x8ECB, - 15242: 0x95BC, - 15243: 0x5535, - 15244: 0x5CA9, - 15245: 0x5DD6, - 15246: 0x5EB5, - 15247: 0x6697, - 15248: 0x764C, - 15249: 0x83F4, - 15250: 0x95C7, - 15251: 0x58D3, - 15252: 0x62BC, - 15253: 0x72CE, - 15254: 0x9D28, - 15255: 0x4EF0, - 15256: 0x592E, - 15257: 0x600F, - 15258: 0x663B, - 15259: 0x6B83, - 15260: 0x79E7, - 15261: 0x9D26, - 15262: 0x5393, - 15263: 0x54C0, - 15264: 0x57C3, - 15265: 0x5D16, - 15266: 0x611B, - 15267: 0x66D6, - 15268: 0x6DAF, - 15269: 0x788D, - 15270: 0x827E, - 15271: 0x9698, - 15272: 0x9744, - 15273: 0x5384, - 15274: 0x627C, - 15275: 0x6396, - 15276: 0x6DB2, - 15277: 0x7E0A, - 15278: 0x814B, - 15279: 0x984D, - 15280: 0x6AFB, - 15281: 0x7F4C, - 15282: 0x9DAF, - 15283: 0x9E1A, - 15284: 0x4E5F, - 15285: 0x503B, - 15286: 0x51B6, - 15287: 0x591C, - 15288: 0x60F9, - 15289: 0x63F6, - 15290: 0x6930, - 15291: 0x723A, - 15292: 0x8036, - 15293: 0xF974, - 15294: 0x91CE, - 15295: 0x5F31, - 15296: 0xF975, - 15297: 0xF976, - 15298: 0x7D04, - 15299: 0x82E5, - 15300: 0x846F, - 15301: 0x84BB, - 15302: 0x85E5, - 15303: 0x8E8D, - 15304: 0xF977, - 15305: 0x4F6F, - 15306: 0xF978, - 15307: 0xF979, - 15308: 0x58E4, - 15309: 0x5B43, - 15310: 0x6059, - 15311: 0x63DA, - 15312: 0x6518, - 15313: 0x656D, - 15314: 0x6698, - 15315: 0xF97A, - 15316: 0x694A, - 15317: 0x6A23, - 15318: 0x6D0B, - 15319: 0x7001, - 15320: 0x716C, - 15321: 0x75D2, - 15322: 0x760D, - 15323: 0x79B3, - 15324: 0x7A70, - 15325: 0xF97B, - 15326: 0x7F8A, - 15327: 0xF97C, - 15328: 0x8944, - 15329: 0xF97D, - 15330: 0x8B93, - 15331: 0x91C0, - 15332: 0x967D, - 15333: 0xF97E, - 15334: 0x990A, - 15335: 0x5704, - 15336: 0x5FA1, - 15337: 0x65BC, - 15338: 0x6F01, - 15339: 0x7600, - 15340: 0x79A6, - 15341: 0x8A9E, - 15342: 0x99AD, - 15343: 0x9B5A, - 15344: 0x9F6C, - 15345: 0x5104, - 15346: 0x61B6, - 15347: 0x6291, - 15348: 0x6A8D, - 15349: 0x81C6, - 15350: 0x5043, - 15351: 0x5830, - 15352: 0x5F66, - 15353: 0x7109, - 15354: 0x8A00, - 15355: 0x8AFA, - 15356: 0x5B7C, - 15357: 0x8616, - 15358: 0x4FFA, - 15359: 0x513C, - 15360: 0x56B4, - 15361: 0x5944, - 15362: 0x63A9, - 15363: 0x6DF9, - 15364: 0x5DAA, - 15365: 0x696D, - 15366: 0x5186, - 15367: 0x4E88, - 15368: 0x4F59, - 15369: 0xF97F, - 15370: 0xF980, - 15371: 0xF981, - 15372: 0x5982, - 15373: 0xF982, - 15374: 0xF983, - 15375: 0x6B5F, - 15376: 0x6C5D, - 15377: 0xF984, - 15378: 0x74B5, - 15379: 0x7916, - 15380: 0xF985, - 15381: 0x8207, - 15382: 0x8245, - 15383: 0x8339, - 15384: 0x8F3F, - 15385: 0x8F5D, - 15386: 0xF986, - 15387: 0x9918, - 15388: 0xF987, - 15389: 0xF988, - 15390: 0xF989, - 15391: 0x4EA6, - 15392: 0xF98A, - 15393: 0x57DF, - 15394: 0x5F79, - 15395: 0x6613, - 15396: 0xF98B, - 15397: 0xF98C, - 15398: 0x75AB, - 15399: 0x7E79, - 15400: 0x8B6F, - 15401: 0xF98D, - 15402: 0x9006, - 15403: 0x9A5B, - 15404: 0x56A5, - 15405: 0x5827, - 15406: 0x59F8, - 15407: 0x5A1F, - 15408: 0x5BB4, - 15409: 0xF98E, - 15410: 0x5EF6, - 15411: 0xF98F, - 15412: 0xF990, - 15413: 0x6350, - 15414: 0x633B, - 15415: 0xF991, - 15416: 0x693D, - 15417: 0x6C87, - 15418: 0x6CBF, - 15419: 0x6D8E, - 15420: 0x6D93, - 15421: 0x6DF5, - 15422: 0x6F14, - 15423: 0xF992, - 15424: 0x70DF, - 15425: 0x7136, - 15426: 0x7159, - 15427: 0xF993, - 15428: 0x71C3, - 15429: 0x71D5, - 15430: 0xF994, - 15431: 0x784F, - 15432: 0x786F, - 15433: 0xF995, - 15434: 0x7B75, - 15435: 0x7DE3, - 15436: 0xF996, - 15437: 0x7E2F, - 15438: 0xF997, - 15439: 0x884D, - 15440: 0x8EDF, - 15441: 0xF998, - 15442: 0xF999, - 15443: 0xF99A, - 15444: 0x925B, - 15445: 0xF99B, - 15446: 0x9CF6, - 15447: 0xF99C, - 15448: 0xF99D, - 15449: 0xF99E, - 15450: 0x6085, - 15451: 0x6D85, - 15452: 0xF99F, - 15453: 0x71B1, - 15454: 0xF9A0, - 15455: 0xF9A1, - 15456: 0x95B1, - 15457: 0x53AD, - 15458: 0xF9A2, - 15459: 0xF9A3, - 15460: 0xF9A4, - 15461: 0x67D3, - 15462: 0xF9A5, - 15463: 0x708E, - 15464: 0x7130, - 15465: 0x7430, - 15466: 0x8276, - 15467: 0x82D2, - 15468: 0xF9A6, - 15469: 0x95BB, - 15470: 0x9AE5, - 15471: 0x9E7D, - 15472: 0x66C4, - 15473: 0xF9A7, - 15474: 0x71C1, - 15475: 0x8449, - 15476: 0xF9A8, - 15477: 0xF9A9, - 15478: 0x584B, - 15479: 0xF9AA, - 15480: 0xF9AB, - 15481: 0x5DB8, - 15482: 0x5F71, - 15483: 0xF9AC, - 15484: 0x6620, - 15485: 0x668E, - 15486: 0x6979, - 15487: 0x69AE, - 15488: 0x6C38, - 15489: 0x6CF3, - 15490: 0x6E36, - 15491: 0x6F41, - 15492: 0x6FDA, - 15493: 0x701B, - 15494: 0x702F, - 15495: 0x7150, - 15496: 0x71DF, - 15497: 0x7370, - 15498: 0xF9AD, - 15499: 0x745B, - 15500: 0xF9AE, - 15501: 0x74D4, - 15502: 0x76C8, - 15503: 0x7A4E, - 15504: 0x7E93, - 15505: 0xF9AF, - 15506: 0xF9B0, - 15507: 0x82F1, - 15508: 0x8A60, - 15509: 0x8FCE, - 15510: 0xF9B1, - 15511: 0x9348, - 15512: 0xF9B2, - 15513: 0x9719, - 15514: 0xF9B3, - 15515: 0xF9B4, - 15516: 0x4E42, - 15517: 0x502A, - 15518: 0xF9B5, - 15519: 0x5208, - 15520: 0x53E1, - 15521: 0x66F3, - 15522: 0x6C6D, - 15523: 0x6FCA, - 15524: 0x730A, - 15525: 0x777F, - 15526: 0x7A62, - 15527: 0x82AE, - 15528: 0x85DD, - 15529: 0x8602, - 15530: 0xF9B6, - 15531: 0x88D4, - 15532: 0x8A63, - 15533: 0x8B7D, - 15534: 0x8C6B, - 15535: 0xF9B7, - 15536: 0x92B3, - 15537: 0xF9B8, - 15538: 0x9713, - 15539: 0x9810, - 15540: 0x4E94, - 15541: 0x4F0D, - 15542: 0x4FC9, - 15543: 0x50B2, - 15544: 0x5348, - 15545: 0x543E, - 15546: 0x5433, - 15547: 0x55DA, - 15548: 0x5862, - 15549: 0x58BA, - 15550: 0x5967, - 15551: 0x5A1B, - 15552: 0x5BE4, - 15553: 0x609F, - 15554: 0xF9B9, - 15555: 0x61CA, - 15556: 0x6556, - 15557: 0x65FF, - 15558: 0x6664, - 15559: 0x68A7, - 15560: 0x6C5A, - 15561: 0x6FB3, - 15562: 0x70CF, - 15563: 0x71AC, - 15564: 0x7352, - 15565: 0x7B7D, - 15566: 0x8708, - 15567: 0x8AA4, - 15568: 0x9C32, - 15569: 0x9F07, - 15570: 0x5C4B, - 15571: 0x6C83, - 15572: 0x7344, - 15573: 0x7389, - 15574: 0x923A, - 15575: 0x6EAB, - 15576: 0x7465, - 15577: 0x761F, - 15578: 0x7A69, - 15579: 0x7E15, - 15580: 0x860A, - 15581: 0x5140, - 15582: 0x58C5, - 15583: 0x64C1, - 15584: 0x74EE, - 15585: 0x7515, - 15586: 0x7670, - 15587: 0x7FC1, - 15588: 0x9095, - 15589: 0x96CD, - 15590: 0x9954, - 15591: 0x6E26, - 15592: 0x74E6, - 15593: 0x7AA9, - 15594: 0x7AAA, - 15595: 0x81E5, - 15596: 0x86D9, - 15597: 0x8778, - 15598: 0x8A1B, - 15599: 0x5A49, - 15600: 0x5B8C, - 15601: 0x5B9B, - 15602: 0x68A1, - 15603: 0x6900, - 15604: 0x6D63, - 15605: 0x73A9, - 15606: 0x7413, - 15607: 0x742C, - 15608: 0x7897, - 15609: 0x7DE9, - 15610: 0x7FEB, - 15611: 0x8118, - 15612: 0x8155, - 15613: 0x839E, - 15614: 0x8C4C, - 15615: 0x962E, - 15616: 0x9811, - 15617: 0x66F0, - 15618: 0x5F80, - 15619: 0x65FA, - 15620: 0x6789, - 15621: 0x6C6A, - 15622: 0x738B, - 15623: 0x502D, - 15624: 0x5A03, - 15625: 0x6B6A, - 15626: 0x77EE, - 15627: 0x5916, - 15628: 0x5D6C, - 15629: 0x5DCD, - 15630: 0x7325, - 15631: 0x754F, - 15632: 0xF9BA, - 15633: 0xF9BB, - 15634: 0x50E5, - 15635: 0x51F9, - 15636: 0x582F, - 15637: 0x592D, - 15638: 0x5996, - 15639: 0x59DA, - 15640: 0x5BE5, - 15641: 0xF9BC, - 15642: 0xF9BD, - 15643: 0x5DA2, - 15644: 0x62D7, - 15645: 0x6416, - 15646: 0x6493, - 15647: 0x64FE, - 15648: 0xF9BE, - 15649: 0x66DC, - 15650: 0xF9BF, - 15651: 0x6A48, - 15652: 0xF9C0, - 15653: 0x71FF, - 15654: 0x7464, - 15655: 0xF9C1, - 15656: 0x7A88, - 15657: 0x7AAF, - 15658: 0x7E47, - 15659: 0x7E5E, - 15660: 0x8000, - 15661: 0x8170, - 15662: 0xF9C2, - 15663: 0x87EF, - 15664: 0x8981, - 15665: 0x8B20, - 15666: 0x9059, - 15667: 0xF9C3, - 15668: 0x9080, - 15669: 0x9952, - 15670: 0x617E, - 15671: 0x6B32, - 15672: 0x6D74, - 15673: 0x7E1F, - 15674: 0x8925, - 15675: 0x8FB1, - 15676: 0x4FD1, - 15677: 0x50AD, - 15678: 0x5197, - 15679: 0x52C7, - 15680: 0x57C7, - 15681: 0x5889, - 15682: 0x5BB9, - 15683: 0x5EB8, - 15684: 0x6142, - 15685: 0x6995, - 15686: 0x6D8C, - 15687: 0x6E67, - 15688: 0x6EB6, - 15689: 0x7194, - 15690: 0x7462, - 15691: 0x7528, - 15692: 0x752C, - 15693: 0x8073, - 15694: 0x8338, - 15695: 0x84C9, - 15696: 0x8E0A, - 15697: 0x9394, - 15698: 0x93DE, - 15699: 0xF9C4, - 15700: 0x4E8E, - 15701: 0x4F51, - 15702: 0x5076, - 15703: 0x512A, - 15704: 0x53C8, - 15705: 0x53CB, - 15706: 0x53F3, - 15707: 0x5B87, - 15708: 0x5BD3, - 15709: 0x5C24, - 15710: 0x611A, - 15711: 0x6182, - 15712: 0x65F4, - 15713: 0x725B, - 15714: 0x7397, - 15715: 0x7440, - 15716: 0x76C2, - 15717: 0x7950, - 15718: 0x7991, - 15719: 0x79B9, - 15720: 0x7D06, - 15721: 0x7FBD, - 15722: 0x828B, - 15723: 0x85D5, - 15724: 0x865E, - 15725: 0x8FC2, - 15726: 0x9047, - 15727: 0x90F5, - 15728: 0x91EA, - 15729: 0x9685, - 15730: 0x96E8, - 15731: 0x96E9, - 15732: 0x52D6, - 15733: 0x5F67, - 15734: 0x65ED, - 15735: 0x6631, - 15736: 0x682F, - 15737: 0x715C, - 15738: 0x7A36, - 15739: 0x90C1, - 15740: 0x980A, - 15741: 0x4E91, - 15742: 0xF9C5, - 15743: 0x6A52, - 15744: 0x6B9E, - 15745: 0x6F90, - 15746: 0x7189, - 15747: 0x8018, - 15748: 0x82B8, - 15749: 0x8553, - 15750: 0x904B, - 15751: 0x9695, - 15752: 0x96F2, - 15753: 0x97FB, - 15754: 0x851A, - 15755: 0x9B31, - 15756: 0x4E90, - 15757: 0x718A, - 15758: 0x96C4, - 15759: 0x5143, - 15760: 0x539F, - 15761: 0x54E1, - 15762: 0x5713, - 15763: 0x5712, - 15764: 0x57A3, - 15765: 0x5A9B, - 15766: 0x5AC4, - 15767: 0x5BC3, - 15768: 0x6028, - 15769: 0x613F, - 15770: 0x63F4, - 15771: 0x6C85, - 15772: 0x6D39, - 15773: 0x6E72, - 15774: 0x6E90, - 15775: 0x7230, - 15776: 0x733F, - 15777: 0x7457, - 15778: 0x82D1, - 15779: 0x8881, - 15780: 0x8F45, - 15781: 0x9060, - 15782: 0xF9C6, - 15783: 0x9662, - 15784: 0x9858, - 15785: 0x9D1B, - 15786: 0x6708, - 15787: 0x8D8A, - 15788: 0x925E, - 15789: 0x4F4D, - 15790: 0x5049, - 15791: 0x50DE, - 15792: 0x5371, - 15793: 0x570D, - 15794: 0x59D4, - 15795: 0x5A01, - 15796: 0x5C09, - 15797: 0x6170, - 15798: 0x6690, - 15799: 0x6E2D, - 15800: 0x7232, - 15801: 0x744B, - 15802: 0x7DEF, - 15803: 0x80C3, - 15804: 0x840E, - 15805: 0x8466, - 15806: 0x853F, - 15807: 0x875F, - 15808: 0x885B, - 15809: 0x8918, - 15810: 0x8B02, - 15811: 0x9055, - 15812: 0x97CB, - 15813: 0x9B4F, - 15814: 0x4E73, - 15815: 0x4F91, - 15816: 0x5112, - 15817: 0x516A, - 15818: 0xF9C7, - 15819: 0x552F, - 15820: 0x55A9, - 15821: 0x5B7A, - 15822: 0x5BA5, - 15823: 0x5E7C, - 15824: 0x5E7D, - 15825: 0x5EBE, - 15826: 0x60A0, - 15827: 0x60DF, - 15828: 0x6108, - 15829: 0x6109, - 15830: 0x63C4, - 15831: 0x6538, - 15832: 0x6709, - 15833: 0xF9C8, - 15834: 0x67D4, - 15835: 0x67DA, - 15836: 0xF9C9, - 15837: 0x6961, - 15838: 0x6962, - 15839: 0x6CB9, - 15840: 0x6D27, - 15841: 0xF9CA, - 15842: 0x6E38, - 15843: 0xF9CB, - 15844: 0x6FE1, - 15845: 0x7336, - 15846: 0x7337, - 15847: 0xF9CC, - 15848: 0x745C, - 15849: 0x7531, - 15850: 0xF9CD, - 15851: 0x7652, - 15852: 0xF9CE, - 15853: 0xF9CF, - 15854: 0x7DAD, - 15855: 0x81FE, - 15856: 0x8438, - 15857: 0x88D5, - 15858: 0x8A98, - 15859: 0x8ADB, - 15860: 0x8AED, - 15861: 0x8E30, - 15862: 0x8E42, - 15863: 0x904A, - 15864: 0x903E, - 15865: 0x907A, - 15866: 0x9149, - 15867: 0x91C9, - 15868: 0x936E, - 15869: 0xF9D0, - 15870: 0xF9D1, - 15871: 0x5809, - 15872: 0xF9D2, - 15873: 0x6BD3, - 15874: 0x8089, - 15875: 0x80B2, - 15876: 0xF9D3, - 15877: 0xF9D4, - 15878: 0x5141, - 15879: 0x596B, - 15880: 0x5C39, - 15881: 0xF9D5, - 15882: 0xF9D6, - 15883: 0x6F64, - 15884: 0x73A7, - 15885: 0x80E4, - 15886: 0x8D07, - 15887: 0xF9D7, - 15888: 0x9217, - 15889: 0x958F, - 15890: 0xF9D8, - 15891: 0xF9D9, - 15892: 0xF9DA, - 15893: 0xF9DB, - 15894: 0x807F, - 15895: 0x620E, - 15896: 0x701C, - 15897: 0x7D68, - 15898: 0x878D, - 15899: 0xF9DC, - 15900: 0x57A0, - 15901: 0x6069, - 15902: 0x6147, - 15903: 0x6BB7, - 15904: 0x8ABE, - 15905: 0x9280, - 15906: 0x96B1, - 15907: 0x4E59, - 15908: 0x541F, - 15909: 0x6DEB, - 15910: 0x852D, - 15911: 0x9670, - 15912: 0x97F3, - 15913: 0x98EE, - 15914: 0x63D6, - 15915: 0x6CE3, - 15916: 0x9091, - 15917: 0x51DD, - 15918: 0x61C9, - 15919: 0x81BA, - 15920: 0x9DF9, - 15921: 0x4F9D, - 15922: 0x501A, - 15923: 0x5100, - 15924: 0x5B9C, - 15925: 0x610F, - 15926: 0x61FF, - 15927: 0x64EC, - 15928: 0x6905, - 15929: 0x6BC5, - 15930: 0x7591, - 15931: 0x77E3, - 15932: 0x7FA9, - 15933: 0x8264, - 15934: 0x858F, - 15935: 0x87FB, - 15936: 0x8863, - 15937: 0x8ABC, - 15938: 0x8B70, - 15939: 0x91AB, - 15940: 0x4E8C, - 15941: 0x4EE5, - 15942: 0x4F0A, - 15943: 0xF9DD, - 15944: 0xF9DE, - 15945: 0x5937, - 15946: 0x59E8, - 15947: 0xF9DF, - 15948: 0x5DF2, - 15949: 0x5F1B, - 15950: 0x5F5B, - 15951: 0x6021, - 15952: 0xF9E0, - 15953: 0xF9E1, - 15954: 0xF9E2, - 15955: 0xF9E3, - 15956: 0x723E, - 15957: 0x73E5, - 15958: 0xF9E4, - 15959: 0x7570, - 15960: 0x75CD, - 15961: 0xF9E5, - 15962: 0x79FB, - 15963: 0xF9E6, - 15964: 0x800C, - 15965: 0x8033, - 15966: 0x8084, - 15967: 0x82E1, - 15968: 0x8351, - 15969: 0xF9E7, - 15970: 0xF9E8, - 15971: 0x8CBD, - 15972: 0x8CB3, - 15973: 0x9087, - 15974: 0xF9E9, - 15975: 0xF9EA, - 15976: 0x98F4, - 15977: 0x990C, - 15978: 0xF9EB, - 15979: 0xF9EC, - 15980: 0x7037, - 15981: 0x76CA, - 15982: 0x7FCA, - 15983: 0x7FCC, - 15984: 0x7FFC, - 15985: 0x8B1A, - 15986: 0x4EBA, - 15987: 0x4EC1, - 15988: 0x5203, - 15989: 0x5370, - 15990: 0xF9ED, - 15991: 0x54BD, - 15992: 0x56E0, - 15993: 0x59FB, - 15994: 0x5BC5, - 15995: 0x5F15, - 15996: 0x5FCD, - 15997: 0x6E6E, - 15998: 0xF9EE, - 15999: 0xF9EF, - 16000: 0x7D6A, - 16001: 0x8335, - 16002: 0xF9F0, - 16003: 0x8693, - 16004: 0x8A8D, - 16005: 0xF9F1, - 16006: 0x976D, - 16007: 0x9777, - 16008: 0xF9F2, - 16009: 0xF9F3, - 16010: 0x4E00, - 16011: 0x4F5A, - 16012: 0x4F7E, - 16013: 0x58F9, - 16014: 0x65E5, - 16015: 0x6EA2, - 16016: 0x9038, - 16017: 0x93B0, - 16018: 0x99B9, - 16019: 0x4EFB, - 16020: 0x58EC, - 16021: 0x598A, - 16022: 0x59D9, - 16023: 0x6041, - 16024: 0xF9F4, - 16025: 0xF9F5, - 16026: 0x7A14, - 16027: 0xF9F6, - 16028: 0x834F, - 16029: 0x8CC3, - 16030: 0x5165, - 16031: 0x5344, - 16032: 0xF9F7, - 16033: 0xF9F8, - 16034: 0xF9F9, - 16035: 0x4ECD, - 16036: 0x5269, - 16037: 0x5B55, - 16038: 0x82BF, - 16039: 0x4ED4, - 16040: 0x523A, - 16041: 0x54A8, - 16042: 0x59C9, - 16043: 0x59FF, - 16044: 0x5B50, - 16045: 0x5B57, - 16046: 0x5B5C, - 16047: 0x6063, - 16048: 0x6148, - 16049: 0x6ECB, - 16050: 0x7099, - 16051: 0x716E, - 16052: 0x7386, - 16053: 0x74F7, - 16054: 0x75B5, - 16055: 0x78C1, - 16056: 0x7D2B, - 16057: 0x8005, - 16058: 0x81EA, - 16059: 0x8328, - 16060: 0x8517, - 16061: 0x85C9, - 16062: 0x8AEE, - 16063: 0x8CC7, - 16064: 0x96CC, - 16065: 0x4F5C, - 16066: 0x52FA, - 16067: 0x56BC, - 16068: 0x65AB, - 16069: 0x6628, - 16070: 0x707C, - 16071: 0x70B8, - 16072: 0x7235, - 16073: 0x7DBD, - 16074: 0x828D, - 16075: 0x914C, - 16076: 0x96C0, - 16077: 0x9D72, - 16078: 0x5B71, - 16079: 0x68E7, - 16080: 0x6B98, - 16081: 0x6F7A, - 16082: 0x76DE, - 16083: 0x5C91, - 16084: 0x66AB, - 16085: 0x6F5B, - 16086: 0x7BB4, - 16087: 0x7C2A, - 16088: 0x8836, - 16089: 0x96DC, - 16090: 0x4E08, - 16091: 0x4ED7, - 16092: 0x5320, - 16093: 0x5834, - 16094: 0x58BB, - 16095: 0x58EF, - 16096: 0x596C, - 16097: 0x5C07, - 16098: 0x5E33, - 16099: 0x5E84, - 16100: 0x5F35, - 16101: 0x638C, - 16102: 0x66B2, - 16103: 0x6756, - 16104: 0x6A1F, - 16105: 0x6AA3, - 16106: 0x6B0C, - 16107: 0x6F3F, - 16108: 0x7246, - 16109: 0xF9FA, - 16110: 0x7350, - 16111: 0x748B, - 16112: 0x7AE0, - 16113: 0x7CA7, - 16114: 0x8178, - 16115: 0x81DF, - 16116: 0x81E7, - 16117: 0x838A, - 16118: 0x846C, - 16119: 0x8523, - 16120: 0x8594, - 16121: 0x85CF, - 16122: 0x88DD, - 16123: 0x8D13, - 16124: 0x91AC, - 16125: 0x9577, - 16126: 0x969C, - 16127: 0x518D, - 16128: 0x54C9, - 16129: 0x5728, - 16130: 0x5BB0, - 16131: 0x624D, - 16132: 0x6750, - 16133: 0x683D, - 16134: 0x6893, - 16135: 0x6E3D, - 16136: 0x6ED3, - 16137: 0x707D, - 16138: 0x7E21, - 16139: 0x88C1, - 16140: 0x8CA1, - 16141: 0x8F09, - 16142: 0x9F4B, - 16143: 0x9F4E, - 16144: 0x722D, - 16145: 0x7B8F, - 16146: 0x8ACD, - 16147: 0x931A, - 16148: 0x4F47, - 16149: 0x4F4E, - 16150: 0x5132, - 16151: 0x5480, - 16152: 0x59D0, - 16153: 0x5E95, - 16154: 0x62B5, - 16155: 0x6775, - 16156: 0x696E, - 16157: 0x6A17, - 16158: 0x6CAE, - 16159: 0x6E1A, - 16160: 0x72D9, - 16161: 0x732A, - 16162: 0x75BD, - 16163: 0x7BB8, - 16164: 0x7D35, - 16165: 0x82E7, - 16166: 0x83F9, - 16167: 0x8457, - 16168: 0x85F7, - 16169: 0x8A5B, - 16170: 0x8CAF, - 16171: 0x8E87, - 16172: 0x9019, - 16173: 0x90B8, - 16174: 0x96CE, - 16175: 0x9F5F, - 16176: 0x52E3, - 16177: 0x540A, - 16178: 0x5AE1, - 16179: 0x5BC2, - 16180: 0x6458, - 16181: 0x6575, - 16182: 0x6EF4, - 16183: 0x72C4, - 16184: 0xF9FB, - 16185: 0x7684, - 16186: 0x7A4D, - 16187: 0x7B1B, - 16188: 0x7C4D, - 16189: 0x7E3E, - 16190: 0x7FDF, - 16191: 0x837B, - 16192: 0x8B2B, - 16193: 0x8CCA, - 16194: 0x8D64, - 16195: 0x8DE1, - 16196: 0x8E5F, - 16197: 0x8FEA, - 16198: 0x8FF9, - 16199: 0x9069, - 16200: 0x93D1, - 16201: 0x4F43, - 16202: 0x4F7A, - 16203: 0x50B3, - 16204: 0x5168, - 16205: 0x5178, - 16206: 0x524D, - 16207: 0x526A, - 16208: 0x5861, - 16209: 0x587C, - 16210: 0x5960, - 16211: 0x5C08, - 16212: 0x5C55, - 16213: 0x5EDB, - 16214: 0x609B, - 16215: 0x6230, - 16216: 0x6813, - 16217: 0x6BBF, - 16218: 0x6C08, - 16219: 0x6FB1, - 16220: 0x714E, - 16221: 0x7420, - 16222: 0x7530, - 16223: 0x7538, - 16224: 0x7551, - 16225: 0x7672, - 16226: 0x7B4C, - 16227: 0x7B8B, - 16228: 0x7BAD, - 16229: 0x7BC6, - 16230: 0x7E8F, - 16231: 0x8A6E, - 16232: 0x8F3E, - 16233: 0x8F49, - 16234: 0x923F, - 16235: 0x9293, - 16236: 0x9322, - 16237: 0x942B, - 16238: 0x96FB, - 16239: 0x985A, - 16240: 0x986B, - 16241: 0x991E, - 16242: 0x5207, - 16243: 0x622A, - 16244: 0x6298, - 16245: 0x6D59, - 16246: 0x7664, - 16247: 0x7ACA, - 16248: 0x7BC0, - 16249: 0x7D76, - 16250: 0x5360, - 16251: 0x5CBE, - 16252: 0x5E97, - 16253: 0x6F38, - 16254: 0x70B9, - 16255: 0x7C98, - 16256: 0x9711, - 16257: 0x9B8E, - 16258: 0x9EDE, - 16259: 0x63A5, - 16260: 0x647A, - 16261: 0x8776, - 16262: 0x4E01, - 16263: 0x4E95, - 16264: 0x4EAD, - 16265: 0x505C, - 16266: 0x5075, - 16267: 0x5448, - 16268: 0x59C3, - 16269: 0x5B9A, - 16270: 0x5E40, - 16271: 0x5EAD, - 16272: 0x5EF7, - 16273: 0x5F81, - 16274: 0x60C5, - 16275: 0x633A, - 16276: 0x653F, - 16277: 0x6574, - 16278: 0x65CC, - 16279: 0x6676, - 16280: 0x6678, - 16281: 0x67FE, - 16282: 0x6968, - 16283: 0x6A89, - 16284: 0x6B63, - 16285: 0x6C40, - 16286: 0x6DC0, - 16287: 0x6DE8, - 16288: 0x6E1F, - 16289: 0x6E5E, - 16290: 0x701E, - 16291: 0x70A1, - 16292: 0x738E, - 16293: 0x73FD, - 16294: 0x753A, - 16295: 0x775B, - 16296: 0x7887, - 16297: 0x798E, - 16298: 0x7A0B, - 16299: 0x7A7D, - 16300: 0x7CBE, - 16301: 0x7D8E, - 16302: 0x8247, - 16303: 0x8A02, - 16304: 0x8AEA, - 16305: 0x8C9E, - 16306: 0x912D, - 16307: 0x914A, - 16308: 0x91D8, - 16309: 0x9266, - 16310: 0x92CC, - 16311: 0x9320, - 16312: 0x9706, - 16313: 0x9756, - 16314: 0x975C, - 16315: 0x9802, - 16316: 0x9F0E, - 16317: 0x5236, - 16318: 0x5291, - 16319: 0x557C, - 16320: 0x5824, - 16321: 0x5E1D, - 16322: 0x5F1F, - 16323: 0x608C, - 16324: 0x63D0, - 16325: 0x68AF, - 16326: 0x6FDF, - 16327: 0x796D, - 16328: 0x7B2C, - 16329: 0x81CD, - 16330: 0x85BA, - 16331: 0x88FD, - 16332: 0x8AF8, - 16333: 0x8E44, - 16334: 0x918D, - 16335: 0x9664, - 16336: 0x969B, - 16337: 0x973D, - 16338: 0x984C, - 16339: 0x9F4A, - 16340: 0x4FCE, - 16341: 0x5146, - 16342: 0x51CB, - 16343: 0x52A9, - 16344: 0x5632, - 16345: 0x5F14, - 16346: 0x5F6B, - 16347: 0x63AA, - 16348: 0x64CD, - 16349: 0x65E9, - 16350: 0x6641, - 16351: 0x66FA, - 16352: 0x66F9, - 16353: 0x671D, - 16354: 0x689D, - 16355: 0x68D7, - 16356: 0x69FD, - 16357: 0x6F15, - 16358: 0x6F6E, - 16359: 0x7167, - 16360: 0x71E5, - 16361: 0x722A, - 16362: 0x74AA, - 16363: 0x773A, - 16364: 0x7956, - 16365: 0x795A, - 16366: 0x79DF, - 16367: 0x7A20, - 16368: 0x7A95, - 16369: 0x7C97, - 16370: 0x7CDF, - 16371: 0x7D44, - 16372: 0x7E70, - 16373: 0x8087, - 16374: 0x85FB, - 16375: 0x86A4, - 16376: 0x8A54, - 16377: 0x8ABF, - 16378: 0x8D99, - 16379: 0x8E81, - 16380: 0x9020, - 16381: 0x906D, - 16382: 0x91E3, - 16383: 0x963B, - 16384: 0x96D5, - 16385: 0x9CE5, - 16386: 0x65CF, - 16387: 0x7C07, - 16388: 0x8DB3, - 16389: 0x93C3, - 16390: 0x5B58, - 16391: 0x5C0A, - 16392: 0x5352, - 16393: 0x62D9, - 16394: 0x731D, - 16395: 0x5027, - 16396: 0x5B97, - 16397: 0x5F9E, - 16398: 0x60B0, - 16399: 0x616B, - 16400: 0x68D5, - 16401: 0x6DD9, - 16402: 0x742E, - 16403: 0x7A2E, - 16404: 0x7D42, - 16405: 0x7D9C, - 16406: 0x7E31, - 16407: 0x816B, - 16408: 0x8E2A, - 16409: 0x8E35, - 16410: 0x937E, - 16411: 0x9418, - 16412: 0x4F50, - 16413: 0x5750, - 16414: 0x5DE6, - 16415: 0x5EA7, - 16416: 0x632B, - 16417: 0x7F6A, - 16418: 0x4E3B, - 16419: 0x4F4F, - 16420: 0x4F8F, - 16421: 0x505A, - 16422: 0x59DD, - 16423: 0x80C4, - 16424: 0x546A, - 16425: 0x5468, - 16426: 0x55FE, - 16427: 0x594F, - 16428: 0x5B99, - 16429: 0x5DDE, - 16430: 0x5EDA, - 16431: 0x665D, - 16432: 0x6731, - 16433: 0x67F1, - 16434: 0x682A, - 16435: 0x6CE8, - 16436: 0x6D32, - 16437: 0x6E4A, - 16438: 0x6F8D, - 16439: 0x70B7, - 16440: 0x73E0, - 16441: 0x7587, - 16442: 0x7C4C, - 16443: 0x7D02, - 16444: 0x7D2C, - 16445: 0x7DA2, - 16446: 0x821F, - 16447: 0x86DB, - 16448: 0x8A3B, - 16449: 0x8A85, - 16450: 0x8D70, - 16451: 0x8E8A, - 16452: 0x8F33, - 16453: 0x9031, - 16454: 0x914E, - 16455: 0x9152, - 16456: 0x9444, - 16457: 0x99D0, - 16458: 0x7AF9, - 16459: 0x7CA5, - 16460: 0x4FCA, - 16461: 0x5101, - 16462: 0x51C6, - 16463: 0x57C8, - 16464: 0x5BEF, - 16465: 0x5CFB, - 16466: 0x6659, - 16467: 0x6A3D, - 16468: 0x6D5A, - 16469: 0x6E96, - 16470: 0x6FEC, - 16471: 0x710C, - 16472: 0x756F, - 16473: 0x7AE3, - 16474: 0x8822, - 16475: 0x9021, - 16476: 0x9075, - 16477: 0x96CB, - 16478: 0x99FF, - 16479: 0x8301, - 16480: 0x4E2D, - 16481: 0x4EF2, - 16482: 0x8846, - 16483: 0x91CD, - 16484: 0x537D, - 16485: 0x6ADB, - 16486: 0x696B, - 16487: 0x6C41, - 16488: 0x847A, - 16489: 0x589E, - 16490: 0x618E, - 16491: 0x66FE, - 16492: 0x62EF, - 16493: 0x70DD, - 16494: 0x7511, - 16495: 0x75C7, - 16496: 0x7E52, - 16497: 0x84B8, - 16498: 0x8B49, - 16499: 0x8D08, - 16500: 0x4E4B, - 16501: 0x53EA, - 16502: 0x54AB, - 16503: 0x5730, - 16504: 0x5740, - 16505: 0x5FD7, - 16506: 0x6301, - 16507: 0x6307, - 16508: 0x646F, - 16509: 0x652F, - 16510: 0x65E8, - 16511: 0x667A, - 16512: 0x679D, - 16513: 0x67B3, - 16514: 0x6B62, - 16515: 0x6C60, - 16516: 0x6C9A, - 16517: 0x6F2C, - 16518: 0x77E5, - 16519: 0x7825, - 16520: 0x7949, - 16521: 0x7957, - 16522: 0x7D19, - 16523: 0x80A2, - 16524: 0x8102, - 16525: 0x81F3, - 16526: 0x829D, - 16527: 0x82B7, - 16528: 0x8718, - 16529: 0x8A8C, - 16530: 0xF9FC, - 16531: 0x8D04, - 16532: 0x8DBE, - 16533: 0x9072, - 16534: 0x76F4, - 16535: 0x7A19, - 16536: 0x7A37, - 16537: 0x7E54, - 16538: 0x8077, - 16539: 0x5507, - 16540: 0x55D4, - 16541: 0x5875, - 16542: 0x632F, - 16543: 0x6422, - 16544: 0x6649, - 16545: 0x664B, - 16546: 0x686D, - 16547: 0x699B, - 16548: 0x6B84, - 16549: 0x6D25, - 16550: 0x6EB1, - 16551: 0x73CD, - 16552: 0x7468, - 16553: 0x74A1, - 16554: 0x755B, - 16555: 0x75B9, - 16556: 0x76E1, - 16557: 0x771E, - 16558: 0x778B, - 16559: 0x79E6, - 16560: 0x7E09, - 16561: 0x7E1D, - 16562: 0x81FB, - 16563: 0x852F, - 16564: 0x8897, - 16565: 0x8A3A, - 16566: 0x8CD1, - 16567: 0x8EEB, - 16568: 0x8FB0, - 16569: 0x9032, - 16570: 0x93AD, - 16571: 0x9663, - 16572: 0x9673, - 16573: 0x9707, - 16574: 0x4F84, - 16575: 0x53F1, - 16576: 0x59EA, - 16577: 0x5AC9, - 16578: 0x5E19, - 16579: 0x684E, - 16580: 0x74C6, - 16581: 0x75BE, - 16582: 0x79E9, - 16583: 0x7A92, - 16584: 0x81A3, - 16585: 0x86ED, - 16586: 0x8CEA, - 16587: 0x8DCC, - 16588: 0x8FED, - 16589: 0x659F, - 16590: 0x6715, - 16591: 0xF9FD, - 16592: 0x57F7, - 16593: 0x6F57, - 16594: 0x7DDD, - 16595: 0x8F2F, - 16596: 0x93F6, - 16597: 0x96C6, - 16598: 0x5FB5, - 16599: 0x61F2, - 16600: 0x6F84, - 16601: 0x4E14, - 16602: 0x4F98, - 16603: 0x501F, - 16604: 0x53C9, - 16605: 0x55DF, - 16606: 0x5D6F, - 16607: 0x5DEE, - 16608: 0x6B21, - 16609: 0x6B64, - 16610: 0x78CB, - 16611: 0x7B9A, - 16612: 0xF9FE, - 16613: 0x8E49, - 16614: 0x8ECA, - 16615: 0x906E, - 16616: 0x6349, - 16617: 0x643E, - 16618: 0x7740, - 16619: 0x7A84, - 16620: 0x932F, - 16621: 0x947F, - 16622: 0x9F6A, - 16623: 0x64B0, - 16624: 0x6FAF, - 16625: 0x71E6, - 16626: 0x74A8, - 16627: 0x74DA, - 16628: 0x7AC4, - 16629: 0x7C12, - 16630: 0x7E82, - 16631: 0x7CB2, - 16632: 0x7E98, - 16633: 0x8B9A, - 16634: 0x8D0A, - 16635: 0x947D, - 16636: 0x9910, - 16637: 0x994C, - 16638: 0x5239, - 16639: 0x5BDF, - 16640: 0x64E6, - 16641: 0x672D, - 16642: 0x7D2E, - 16643: 0x50ED, - 16644: 0x53C3, - 16645: 0x5879, - 16646: 0x6158, - 16647: 0x6159, - 16648: 0x61FA, - 16649: 0x65AC, - 16650: 0x7AD9, - 16651: 0x8B92, - 16652: 0x8B96, - 16653: 0x5009, - 16654: 0x5021, - 16655: 0x5275, - 16656: 0x5531, - 16657: 0x5A3C, - 16658: 0x5EE0, - 16659: 0x5F70, - 16660: 0x6134, - 16661: 0x655E, - 16662: 0x660C, - 16663: 0x6636, - 16664: 0x66A2, - 16665: 0x69CD, - 16666: 0x6EC4, - 16667: 0x6F32, - 16668: 0x7316, - 16669: 0x7621, - 16670: 0x7A93, - 16671: 0x8139, - 16672: 0x8259, - 16673: 0x83D6, - 16674: 0x84BC, - 16675: 0x50B5, - 16676: 0x57F0, - 16677: 0x5BC0, - 16678: 0x5BE8, - 16679: 0x5F69, - 16680: 0x63A1, - 16681: 0x7826, - 16682: 0x7DB5, - 16683: 0x83DC, - 16684: 0x8521, - 16685: 0x91C7, - 16686: 0x91F5, - 16687: 0x518A, - 16688: 0x67F5, - 16689: 0x7B56, - 16690: 0x8CAC, - 16691: 0x51C4, - 16692: 0x59BB, - 16693: 0x60BD, - 16694: 0x8655, - 16695: 0x501C, - 16696: 0xF9FF, - 16697: 0x5254, - 16698: 0x5C3A, - 16699: 0x617D, - 16700: 0x621A, - 16701: 0x62D3, - 16702: 0x64F2, - 16703: 0x65A5, - 16704: 0x6ECC, - 16705: 0x7620, - 16706: 0x810A, - 16707: 0x8E60, - 16708: 0x965F, - 16709: 0x96BB, - 16710: 0x4EDF, - 16711: 0x5343, - 16712: 0x5598, - 16713: 0x5929, - 16714: 0x5DDD, - 16715: 0x64C5, - 16716: 0x6CC9, - 16717: 0x6DFA, - 16718: 0x7394, - 16719: 0x7A7F, - 16720: 0x821B, - 16721: 0x85A6, - 16722: 0x8CE4, - 16723: 0x8E10, - 16724: 0x9077, - 16725: 0x91E7, - 16726: 0x95E1, - 16727: 0x9621, - 16728: 0x97C6, - 16729: 0x51F8, - 16730: 0x54F2, - 16731: 0x5586, - 16732: 0x5FB9, - 16733: 0x64A4, - 16734: 0x6F88, - 16735: 0x7DB4, - 16736: 0x8F1F, - 16737: 0x8F4D, - 16738: 0x9435, - 16739: 0x50C9, - 16740: 0x5C16, - 16741: 0x6CBE, - 16742: 0x6DFB, - 16743: 0x751B, - 16744: 0x77BB, - 16745: 0x7C3D, - 16746: 0x7C64, - 16747: 0x8A79, - 16748: 0x8AC2, - 16749: 0x581E, - 16750: 0x59BE, - 16751: 0x5E16, - 16752: 0x6377, - 16753: 0x7252, - 16754: 0x758A, - 16755: 0x776B, - 16756: 0x8ADC, - 16757: 0x8CBC, - 16758: 0x8F12, - 16759: 0x5EF3, - 16760: 0x6674, - 16761: 0x6DF8, - 16762: 0x807D, - 16763: 0x83C1, - 16764: 0x8ACB, - 16765: 0x9751, - 16766: 0x9BD6, - 16767: 0xFA00, - 16768: 0x5243, - 16769: 0x66FF, - 16770: 0x6D95, - 16771: 0x6EEF, - 16772: 0x7DE0, - 16773: 0x8AE6, - 16774: 0x902E, - 16775: 0x905E, - 16776: 0x9AD4, - 16777: 0x521D, - 16778: 0x527F, - 16779: 0x54E8, - 16780: 0x6194, - 16781: 0x6284, - 16782: 0x62DB, - 16783: 0x68A2, - 16784: 0x6912, - 16785: 0x695A, - 16786: 0x6A35, - 16787: 0x7092, - 16788: 0x7126, - 16789: 0x785D, - 16790: 0x7901, - 16791: 0x790E, - 16792: 0x79D2, - 16793: 0x7A0D, - 16794: 0x8096, - 16795: 0x8278, - 16796: 0x82D5, - 16797: 0x8349, - 16798: 0x8549, - 16799: 0x8C82, - 16800: 0x8D85, - 16801: 0x9162, - 16802: 0x918B, - 16803: 0x91AE, - 16804: 0x4FC3, - 16805: 0x56D1, - 16806: 0x71ED, - 16807: 0x77D7, - 16808: 0x8700, - 16809: 0x89F8, - 16810: 0x5BF8, - 16811: 0x5FD6, - 16812: 0x6751, - 16813: 0x90A8, - 16814: 0x53E2, - 16815: 0x585A, - 16816: 0x5BF5, - 16817: 0x60A4, - 16818: 0x6181, - 16819: 0x6460, - 16820: 0x7E3D, - 16821: 0x8070, - 16822: 0x8525, - 16823: 0x9283, - 16824: 0x64AE, - 16825: 0x50AC, - 16826: 0x5D14, - 16827: 0x6700, - 16828: 0x589C, - 16829: 0x62BD, - 16830: 0x63A8, - 16831: 0x690E, - 16832: 0x6978, - 16833: 0x6A1E, - 16834: 0x6E6B, - 16835: 0x76BA, - 16836: 0x79CB, - 16837: 0x82BB, - 16838: 0x8429, - 16839: 0x8ACF, - 16840: 0x8DA8, - 16841: 0x8FFD, - 16842: 0x9112, - 16843: 0x914B, - 16844: 0x919C, - 16845: 0x9310, - 16846: 0x9318, - 16847: 0x939A, - 16848: 0x96DB, - 16849: 0x9A36, - 16850: 0x9C0D, - 16851: 0x4E11, - 16852: 0x755C, - 16853: 0x795D, - 16854: 0x7AFA, - 16855: 0x7B51, - 16856: 0x7BC9, - 16857: 0x7E2E, - 16858: 0x84C4, - 16859: 0x8E59, - 16860: 0x8E74, - 16861: 0x8EF8, - 16862: 0x9010, - 16863: 0x6625, - 16864: 0x693F, - 16865: 0x7443, - 16866: 0x51FA, - 16867: 0x672E, - 16868: 0x9EDC, - 16869: 0x5145, - 16870: 0x5FE0, - 16871: 0x6C96, - 16872: 0x87F2, - 16873: 0x885D, - 16874: 0x8877, - 16875: 0x60B4, - 16876: 0x81B5, - 16877: 0x8403, - 16878: 0x8D05, - 16879: 0x53D6, - 16880: 0x5439, - 16881: 0x5634, - 16882: 0x5A36, - 16883: 0x5C31, - 16884: 0x708A, - 16885: 0x7FE0, - 16886: 0x805A, - 16887: 0x8106, - 16888: 0x81ED, - 16889: 0x8DA3, - 16890: 0x9189, - 16891: 0x9A5F, - 16892: 0x9DF2, - 16893: 0x5074, - 16894: 0x4EC4, - 16895: 0x53A0, - 16896: 0x60FB, - 16897: 0x6E2C, - 16898: 0x5C64, - 16899: 0x4F88, - 16900: 0x5024, - 16901: 0x55E4, - 16902: 0x5CD9, - 16903: 0x5E5F, - 16904: 0x6065, - 16905: 0x6894, - 16906: 0x6CBB, - 16907: 0x6DC4, - 16908: 0x71BE, - 16909: 0x75D4, - 16910: 0x75F4, - 16911: 0x7661, - 16912: 0x7A1A, - 16913: 0x7A49, - 16914: 0x7DC7, - 16915: 0x7DFB, - 16916: 0x7F6E, - 16917: 0x81F4, - 16918: 0x86A9, - 16919: 0x8F1C, - 16920: 0x96C9, - 16921: 0x99B3, - 16922: 0x9F52, - 16923: 0x5247, - 16924: 0x52C5, - 16925: 0x98ED, - 16926: 0x89AA, - 16927: 0x4E03, - 16928: 0x67D2, - 16929: 0x6F06, - 16930: 0x4FB5, - 16931: 0x5BE2, - 16932: 0x6795, - 16933: 0x6C88, - 16934: 0x6D78, - 16935: 0x741B, - 16936: 0x7827, - 16937: 0x91DD, - 16938: 0x937C, - 16939: 0x87C4, - 16940: 0x79E4, - 16941: 0x7A31, - 16942: 0x5FEB, - 16943: 0x4ED6, - 16944: 0x54A4, - 16945: 0x553E, - 16946: 0x58AE, - 16947: 0x59A5, - 16948: 0x60F0, - 16949: 0x6253, - 16950: 0x62D6, - 16951: 0x6736, - 16952: 0x6955, - 16953: 0x8235, - 16954: 0x9640, - 16955: 0x99B1, - 16956: 0x99DD, - 16957: 0x502C, - 16958: 0x5353, - 16959: 0x5544, - 16960: 0x577C, - 16961: 0xFA01, - 16962: 0x6258, - 16963: 0xFA02, - 16964: 0x64E2, - 16965: 0x666B, - 16966: 0x67DD, - 16967: 0x6FC1, - 16968: 0x6FEF, - 16969: 0x7422, - 16970: 0x7438, - 16971: 0x8A17, - 16972: 0x9438, - 16973: 0x5451, - 16974: 0x5606, - 16975: 0x5766, - 16976: 0x5F48, - 16977: 0x619A, - 16978: 0x6B4E, - 16979: 0x7058, - 16980: 0x70AD, - 16981: 0x7DBB, - 16982: 0x8A95, - 16983: 0x596A, - 16984: 0x812B, - 16985: 0x63A2, - 16986: 0x7708, - 16987: 0x803D, - 16988: 0x8CAA, - 16989: 0x5854, - 16990: 0x642D, - 16991: 0x69BB, - 16992: 0x5B95, - 16993: 0x5E11, - 16994: 0x6E6F, - 16995: 0xFA03, - 16996: 0x8569, - 16997: 0x514C, - 16998: 0x53F0, - 16999: 0x592A, - 17000: 0x6020, - 17001: 0x614B, - 17002: 0x6B86, - 17003: 0x6C70, - 17004: 0x6CF0, - 17005: 0x7B1E, - 17006: 0x80CE, - 17007: 0x82D4, - 17008: 0x8DC6, - 17009: 0x90B0, - 17010: 0x98B1, - 17011: 0xFA04, - 17012: 0x64C7, - 17013: 0x6FA4, - 17014: 0x6491, - 17015: 0x6504, - 17016: 0x514E, - 17017: 0x5410, - 17018: 0x571F, - 17019: 0x8A0E, - 17020: 0x615F, - 17021: 0x6876, - 17022: 0xFA05, - 17023: 0x75DB, - 17024: 0x7B52, - 17025: 0x7D71, - 17026: 0x901A, - 17027: 0x5806, - 17028: 0x69CC, - 17029: 0x817F, - 17030: 0x892A, - 17031: 0x9000, - 17032: 0x9839, - 17033: 0x5078, - 17034: 0x5957, - 17035: 0x59AC, - 17036: 0x6295, - 17037: 0x900F, - 17038: 0x9B2A, - 17039: 0x615D, - 17040: 0x7279, - 17041: 0x95D6, - 17042: 0x5761, - 17043: 0x5A46, - 17044: 0x5DF4, - 17045: 0x628A, - 17046: 0x64AD, - 17047: 0x64FA, - 17048: 0x6777, - 17049: 0x6CE2, - 17050: 0x6D3E, - 17051: 0x722C, - 17052: 0x7436, - 17053: 0x7834, - 17054: 0x7F77, - 17055: 0x82AD, - 17056: 0x8DDB, - 17057: 0x9817, - 17058: 0x5224, - 17059: 0x5742, - 17060: 0x677F, - 17061: 0x7248, - 17062: 0x74E3, - 17063: 0x8CA9, - 17064: 0x8FA6, - 17065: 0x9211, - 17066: 0x962A, - 17067: 0x516B, - 17068: 0x53ED, - 17069: 0x634C, - 17070: 0x4F69, - 17071: 0x5504, - 17072: 0x6096, - 17073: 0x6557, - 17074: 0x6C9B, - 17075: 0x6D7F, - 17076: 0x724C, - 17077: 0x72FD, - 17078: 0x7A17, - 17079: 0x8987, - 17080: 0x8C9D, - 17081: 0x5F6D, - 17082: 0x6F8E, - 17083: 0x70F9, - 17084: 0x81A8, - 17085: 0x610E, - 17086: 0x4FBF, - 17087: 0x504F, - 17088: 0x6241, - 17089: 0x7247, - 17090: 0x7BC7, - 17091: 0x7DE8, - 17092: 0x7FE9, - 17093: 0x904D, - 17094: 0x97AD, - 17095: 0x9A19, - 17096: 0x8CB6, - 17097: 0x576A, - 17098: 0x5E73, - 17099: 0x67B0, - 17100: 0x840D, - 17101: 0x8A55, - 17102: 0x5420, - 17103: 0x5B16, - 17104: 0x5E63, - 17105: 0x5EE2, - 17106: 0x5F0A, - 17107: 0x6583, - 17108: 0x80BA, - 17109: 0x853D, - 17110: 0x9589, - 17111: 0x965B, - 17112: 0x4F48, - 17113: 0x5305, - 17114: 0x530D, - 17115: 0x530F, - 17116: 0x5486, - 17117: 0x54FA, - 17118: 0x5703, - 17119: 0x5E03, - 17120: 0x6016, - 17121: 0x629B, - 17122: 0x62B1, - 17123: 0x6355, - 17124: 0xFA06, - 17125: 0x6CE1, - 17126: 0x6D66, - 17127: 0x75B1, - 17128: 0x7832, - 17129: 0x80DE, - 17130: 0x812F, - 17131: 0x82DE, - 17132: 0x8461, - 17133: 0x84B2, - 17134: 0x888D, - 17135: 0x8912, - 17136: 0x900B, - 17137: 0x92EA, - 17138: 0x98FD, - 17139: 0x9B91, - 17140: 0x5E45, - 17141: 0x66B4, - 17142: 0x66DD, - 17143: 0x7011, - 17144: 0x7206, - 17145: 0xFA07, - 17146: 0x4FF5, - 17147: 0x527D, - 17148: 0x5F6A, - 17149: 0x6153, - 17150: 0x6753, - 17151: 0x6A19, - 17152: 0x6F02, - 17153: 0x74E2, - 17154: 0x7968, - 17155: 0x8868, - 17156: 0x8C79, - 17157: 0x98C7, - 17158: 0x98C4, - 17159: 0x9A43, - 17160: 0x54C1, - 17161: 0x7A1F, - 17162: 0x6953, - 17163: 0x8AF7, - 17164: 0x8C4A, - 17165: 0x98A8, - 17166: 0x99AE, - 17167: 0x5F7C, - 17168: 0x62AB, - 17169: 0x75B2, - 17170: 0x76AE, - 17171: 0x88AB, - 17172: 0x907F, - 17173: 0x9642, - 17174: 0x5339, - 17175: 0x5F3C, - 17176: 0x5FC5, - 17177: 0x6CCC, - 17178: 0x73CC, - 17179: 0x7562, - 17180: 0x758B, - 17181: 0x7B46, - 17182: 0x82FE, - 17183: 0x999D, - 17184: 0x4E4F, - 17185: 0x903C, - 17186: 0x4E0B, - 17187: 0x4F55, - 17188: 0x53A6, - 17189: 0x590F, - 17190: 0x5EC8, - 17191: 0x6630, - 17192: 0x6CB3, - 17193: 0x7455, - 17194: 0x8377, - 17195: 0x8766, - 17196: 0x8CC0, - 17197: 0x9050, - 17198: 0x971E, - 17199: 0x9C15, - 17200: 0x58D1, - 17201: 0x5B78, - 17202: 0x8650, - 17203: 0x8B14, - 17204: 0x9DB4, - 17205: 0x5BD2, - 17206: 0x6068, - 17207: 0x608D, - 17208: 0x65F1, - 17209: 0x6C57, - 17210: 0x6F22, - 17211: 0x6FA3, - 17212: 0x701A, - 17213: 0x7F55, - 17214: 0x7FF0, - 17215: 0x9591, - 17216: 0x9592, - 17217: 0x9650, - 17218: 0x97D3, - 17219: 0x5272, - 17220: 0x8F44, - 17221: 0x51FD, - 17222: 0x542B, - 17223: 0x54B8, - 17224: 0x5563, - 17225: 0x558A, - 17226: 0x6ABB, - 17227: 0x6DB5, - 17228: 0x7DD8, - 17229: 0x8266, - 17230: 0x929C, - 17231: 0x9677, - 17232: 0x9E79, - 17233: 0x5408, - 17234: 0x54C8, - 17235: 0x76D2, - 17236: 0x86E4, - 17237: 0x95A4, - 17238: 0x95D4, - 17239: 0x965C, - 17240: 0x4EA2, - 17241: 0x4F09, - 17242: 0x59EE, - 17243: 0x5AE6, - 17244: 0x5DF7, - 17245: 0x6052, - 17246: 0x6297, - 17247: 0x676D, - 17248: 0x6841, - 17249: 0x6C86, - 17250: 0x6E2F, - 17251: 0x7F38, - 17252: 0x809B, - 17253: 0x822A, - 17254: 0xFA08, - 17255: 0xFA09, - 17256: 0x9805, - 17257: 0x4EA5, - 17258: 0x5055, - 17259: 0x54B3, - 17260: 0x5793, - 17261: 0x595A, - 17262: 0x5B69, - 17263: 0x5BB3, - 17264: 0x61C8, - 17265: 0x6977, - 17266: 0x6D77, - 17267: 0x7023, - 17268: 0x87F9, - 17269: 0x89E3, - 17270: 0x8A72, - 17271: 0x8AE7, - 17272: 0x9082, - 17273: 0x99ED, - 17274: 0x9AB8, - 17275: 0x52BE, - 17276: 0x6838, - 17277: 0x5016, - 17278: 0x5E78, - 17279: 0x674F, - 17280: 0x8347, - 17281: 0x884C, - 17282: 0x4EAB, - 17283: 0x5411, - 17284: 0x56AE, - 17285: 0x73E6, - 17286: 0x9115, - 17287: 0x97FF, - 17288: 0x9909, - 17289: 0x9957, - 17290: 0x9999, - 17291: 0x5653, - 17292: 0x589F, - 17293: 0x865B, - 17294: 0x8A31, - 17295: 0x61B2, - 17296: 0x6AF6, - 17297: 0x737B, - 17298: 0x8ED2, - 17299: 0x6B47, - 17300: 0x96AA, - 17301: 0x9A57, - 17302: 0x5955, - 17303: 0x7200, - 17304: 0x8D6B, - 17305: 0x9769, - 17306: 0x4FD4, - 17307: 0x5CF4, - 17308: 0x5F26, - 17309: 0x61F8, - 17310: 0x665B, - 17311: 0x6CEB, - 17312: 0x70AB, - 17313: 0x7384, - 17314: 0x73B9, - 17315: 0x73FE, - 17316: 0x7729, - 17317: 0x774D, - 17318: 0x7D43, - 17319: 0x7D62, - 17320: 0x7E23, - 17321: 0x8237, - 17322: 0x8852, - 17323: 0xFA0A, - 17324: 0x8CE2, - 17325: 0x9249, - 17326: 0x986F, - 17327: 0x5B51, - 17328: 0x7A74, - 17329: 0x8840, - 17330: 0x9801, - 17331: 0x5ACC, - 17332: 0x4FE0, - 17333: 0x5354, - 17334: 0x593E, - 17335: 0x5CFD, - 17336: 0x633E, - 17337: 0x6D79, - 17338: 0x72F9, - 17339: 0x8105, - 17340: 0x8107, - 17341: 0x83A2, - 17342: 0x92CF, - 17343: 0x9830, - 17344: 0x4EA8, - 17345: 0x5144, - 17346: 0x5211, - 17347: 0x578B, - 17348: 0x5F62, - 17349: 0x6CC2, - 17350: 0x6ECE, - 17351: 0x7005, - 17352: 0x7050, - 17353: 0x70AF, - 17354: 0x7192, - 17355: 0x73E9, - 17356: 0x7469, - 17357: 0x834A, - 17358: 0x87A2, - 17359: 0x8861, - 17360: 0x9008, - 17361: 0x90A2, - 17362: 0x93A3, - 17363: 0x99A8, - 17364: 0x516E, - 17365: 0x5F57, - 17366: 0x60E0, - 17367: 0x6167, - 17368: 0x66B3, - 17369: 0x8559, - 17370: 0x8E4A, - 17371: 0x91AF, - 17372: 0x978B, - 17373: 0x4E4E, - 17374: 0x4E92, - 17375: 0x547C, - 17376: 0x58D5, - 17377: 0x58FA, - 17378: 0x597D, - 17379: 0x5CB5, - 17380: 0x5F27, - 17381: 0x6236, - 17382: 0x6248, - 17383: 0x660A, - 17384: 0x6667, - 17385: 0x6BEB, - 17386: 0x6D69, - 17387: 0x6DCF, - 17388: 0x6E56, - 17389: 0x6EF8, - 17390: 0x6F94, - 17391: 0x6FE0, - 17392: 0x6FE9, - 17393: 0x705D, - 17394: 0x72D0, - 17395: 0x7425, - 17396: 0x745A, - 17397: 0x74E0, - 17398: 0x7693, - 17399: 0x795C, - 17400: 0x7CCA, - 17401: 0x7E1E, - 17402: 0x80E1, - 17403: 0x82A6, - 17404: 0x846B, - 17405: 0x84BF, - 17406: 0x864E, - 17407: 0x865F, - 17408: 0x8774, - 17409: 0x8B77, - 17410: 0x8C6A, - 17411: 0x93AC, - 17412: 0x9800, - 17413: 0x9865, - 17414: 0x60D1, - 17415: 0x6216, - 17416: 0x9177, - 17417: 0x5A5A, - 17418: 0x660F, - 17419: 0x6DF7, - 17420: 0x6E3E, - 17421: 0x743F, - 17422: 0x9B42, - 17423: 0x5FFD, - 17424: 0x60DA, - 17425: 0x7B0F, - 17426: 0x54C4, - 17427: 0x5F18, - 17428: 0x6C5E, - 17429: 0x6CD3, - 17430: 0x6D2A, - 17431: 0x70D8, - 17432: 0x7D05, - 17433: 0x8679, - 17434: 0x8A0C, - 17435: 0x9D3B, - 17436: 0x5316, - 17437: 0x548C, - 17438: 0x5B05, - 17439: 0x6A3A, - 17440: 0x706B, - 17441: 0x7575, - 17442: 0x798D, - 17443: 0x79BE, - 17444: 0x82B1, - 17445: 0x83EF, - 17446: 0x8A71, - 17447: 0x8B41, - 17448: 0x8CA8, - 17449: 0x9774, - 17450: 0xFA0B, - 17451: 0x64F4, - 17452: 0x652B, - 17453: 0x78BA, - 17454: 0x78BB, - 17455: 0x7A6B, - 17456: 0x4E38, - 17457: 0x559A, - 17458: 0x5950, - 17459: 0x5BA6, - 17460: 0x5E7B, - 17461: 0x60A3, - 17462: 0x63DB, - 17463: 0x6B61, - 17464: 0x6665, - 17465: 0x6853, - 17466: 0x6E19, - 17467: 0x7165, - 17468: 0x74B0, - 17469: 0x7D08, - 17470: 0x9084, - 17471: 0x9A69, - 17472: 0x9C25, - 17473: 0x6D3B, - 17474: 0x6ED1, - 17475: 0x733E, - 17476: 0x8C41, - 17477: 0x95CA, - 17478: 0x51F0, - 17479: 0x5E4C, - 17480: 0x5FA8, - 17481: 0x604D, - 17482: 0x60F6, - 17483: 0x6130, - 17484: 0x614C, - 17485: 0x6643, - 17486: 0x6644, - 17487: 0x69A5, - 17488: 0x6CC1, - 17489: 0x6E5F, - 17490: 0x6EC9, - 17491: 0x6F62, - 17492: 0x714C, - 17493: 0x749C, - 17494: 0x7687, - 17495: 0x7BC1, - 17496: 0x7C27, - 17497: 0x8352, - 17498: 0x8757, - 17499: 0x9051, - 17500: 0x968D, - 17501: 0x9EC3, - 17502: 0x532F, - 17503: 0x56DE, - 17504: 0x5EFB, - 17505: 0x5F8A, - 17506: 0x6062, - 17507: 0x6094, - 17508: 0x61F7, - 17509: 0x6666, - 17510: 0x6703, - 17511: 0x6A9C, - 17512: 0x6DEE, - 17513: 0x6FAE, - 17514: 0x7070, - 17515: 0x736A, - 17516: 0x7E6A, - 17517: 0x81BE, - 17518: 0x8334, - 17519: 0x86D4, - 17520: 0x8AA8, - 17521: 0x8CC4, - 17522: 0x5283, - 17523: 0x7372, - 17524: 0x5B96, - 17525: 0x6A6B, - 17526: 0x9404, - 17527: 0x54EE, - 17528: 0x5686, - 17529: 0x5B5D, - 17530: 0x6548, - 17531: 0x6585, - 17532: 0x66C9, - 17533: 0x689F, - 17534: 0x6D8D, - 17535: 0x6DC6, - 17536: 0x723B, - 17537: 0x80B4, - 17538: 0x9175, - 17539: 0x9A4D, - 17540: 0x4FAF, - 17541: 0x5019, - 17542: 0x539A, - 17543: 0x540E, - 17544: 0x543C, - 17545: 0x5589, - 17546: 0x55C5, - 17547: 0x5E3F, - 17548: 0x5F8C, - 17549: 0x673D, - 17550: 0x7166, - 17551: 0x73DD, - 17552: 0x9005, - 17553: 0x52DB, - 17554: 0x52F3, - 17555: 0x5864, - 17556: 0x58CE, - 17557: 0x7104, - 17558: 0x718F, - 17559: 0x71FB, - 17560: 0x85B0, - 17561: 0x8A13, - 17562: 0x6688, - 17563: 0x85A8, - 17564: 0x55A7, - 17565: 0x6684, - 17566: 0x714A, - 17567: 0x8431, - 17568: 0x5349, - 17569: 0x5599, - 17570: 0x6BC1, - 17571: 0x5F59, - 17572: 0x5FBD, - 17573: 0x63EE, - 17574: 0x6689, - 17575: 0x7147, - 17576: 0x8AF1, - 17577: 0x8F1D, - 17578: 0x9EBE, - 17579: 0x4F11, - 17580: 0x643A, - 17581: 0x70CB, - 17582: 0x7566, - 17583: 0x8667, - 17584: 0x6064, - 17585: 0x8B4E, - 17586: 0x9DF8, - 17587: 0x5147, - 17588: 0x51F6, - 17589: 0x5308, - 17590: 0x6D36, - 17591: 0x80F8, - 17592: 0x9ED1, - 17593: 0x6615, - 17594: 0x6B23, - 17595: 0x7098, - 17596: 0x75D5, - 17597: 0x5403, - 17598: 0x5C79, - 17599: 0x7D07, - 17600: 0x8A16, - 17601: 0x6B20, - 17602: 0x6B3D, - 17603: 0x6B46, - 17604: 0x5438, - 17605: 0x6070, - 17606: 0x6D3D, - 17607: 0x7FD5, - 17608: 0x8208, - 17609: 0x50D6, - 17610: 0x51DE, - 17611: 0x559C, - 17612: 0x566B, - 17613: 0x56CD, - 17614: 0x59EC, - 17615: 0x5B09, - 17616: 0x5E0C, - 17617: 0x6199, - 17618: 0x6198, - 17619: 0x6231, - 17620: 0x665E, - 17621: 0x66E6, - 17622: 0x7199, - 17623: 0x71B9, - 17624: 0x71BA, - 17625: 0x72A7, - 17626: 0x79A7, - 17627: 0x7A00, - 17628: 0x7FB2, - 17629: 0x8A70, -} - -const numEncodeTables = 7 - -// encodeX are the encoding tables from Unicode to EUC-KR code, -// sorted by decreasing length. -// encode0: 20893 entries for runes in [19968, 40861). -// encode1: 11172 entries for runes in [44032, 55204). -// encode2: 1625 entries for runes in [ 8213, 9838). -// encode3: 990 entries for runes in [12288, 13278). -// encode4: 945 entries for runes in [ 161, 1106). -// encode5: 268 entries for runes in [63744, 64012). -// encode6: 230 entries for runes in [65281, 65511). - -const encode0Low, encode0High = 19968, 40861 - -var encode0 = [...]uint16{ - 19968 - 19968: 0xECE9, - 19969 - 19968: 0xEFCB, - 19971 - 19968: 0xF6D2, - 19975 - 19968: 0xD8B2, - 19976 - 19968: 0xEDDB, - 19977 - 19968: 0xDFB2, - 19978 - 19968: 0xDFBE, - 19979 - 19968: 0xF9BB, - 19981 - 19968: 0xDCF4, - 19985 - 19968: 0xF5E4, - 19988 - 19968: 0xF3A6, - 19989 - 19968: 0xDDE0, - 19990 - 19968: 0xE1A6, - 19992 - 19968: 0xCEF8, - 19993 - 19968: 0xDCB0, - 19998 - 19968: 0xE3AA, - 20013 - 19968: 0xF1E9, - 20018 - 19968: 0xCDFA, - 20024 - 19968: 0xFCAF, - 20025 - 19968: 0xD3A1, - 20027 - 19968: 0xF1AB, - 20034 - 19968: 0xE7D1, - 20035 - 19968: 0xD2AC, - 20037 - 19968: 0xCEF9, - 20043 - 19968: 0xF1FD, - 20045 - 19968: 0xDEBF, - 20046 - 19968: 0xFBBA, - 20047 - 19968: 0xF9B9, - 20054 - 19968: 0xCED2, - 20056 - 19968: 0xE3AB, - 20057 - 19968: 0xEBE0, - 20061 - 19968: 0xCEFA, - 20062 - 19968: 0xCBF7, - 20063 - 19968: 0xE5A5, - 20075 - 19968: 0xCAE1, - 20077 - 19968: 0xD4CC, - 20083 - 19968: 0xEAE1, - 20086 - 19968: 0xDCE3, - 20087 - 19968: 0xDFAD, - 20094 - 19968: 0xCBEB, - 20098 - 19968: 0xD5AF, - 20102 - 19968: 0xD6F5, - 20104 - 19968: 0xE5F8, - 20107 - 19968: 0xDEC0, - 20108 - 19968: 0xECA3, - 20110 - 19968: 0xE9CD, - 20112 - 19968: 0xEAA7, - 20113 - 19968: 0xE9F6, - 20114 - 19968: 0xFBBB, - 20116 - 19968: 0xE7E9, - 20117 - 19968: 0xEFCC, - 20120 - 19968: 0xD0E6, - 20123 - 19968: 0xDEC1, - 20126 - 19968: 0xE4AC, - 20129 - 19968: 0xD8CC, - 20130 - 19968: 0xF9F1, - 20132 - 19968: 0xCEDF, - 20133 - 19968: 0xFAA4, - 20134 - 19968: 0xE6B2, - 20136 - 19968: 0xFAFB, - 20139 - 19968: 0xFABD, - 20140 - 19968: 0xCCC8, - 20141 - 19968: 0xEFCD, - 20142 - 19968: 0xD5D5, - 20150 - 19968: 0xD3A2, - 20154 - 19968: 0xECD1, - 20160 - 19968: 0xE4A7, - 20161 - 19968: 0xECD2, - 20164 - 19968: 0xF6B1, - 20167 - 19968: 0xCEFB, - 20170 - 19968: 0xD0D1, - 20171 - 19968: 0xCBBF, - 20173 - 19968: 0xEDA4, - 20180 - 19968: 0xEDA8, - 20181 - 19968: 0xDEC2, - 20182 - 19968: 0xF6E2, - 20183 - 19968: 0xEDDC, - 20184 - 19968: 0xDCF5, - 20185 - 19968: 0xE0B9, - 20189 - 19968: 0xD4CE, - 20191 - 19968: 0xF4B5, - 20195 - 19968: 0xD3DB, - 20196 - 19968: 0xD6B5, - 20197 - 19968: 0xECA4, - 20208 - 19968: 0xE4E6, - 20210 - 19968: 0xF1EA, - 20214 - 19968: 0xCBEC, - 20215 - 19968: 0xCBC0, - 20219 - 19968: 0xECF2, - 20225 - 19968: 0xD0EA, - 20233 - 19968: 0xF9F2, - 20234 - 19968: 0xECA5, - 20235 - 19968: 0xD0DF, - 20237 - 19968: 0xE7EA, - 20238 - 19968: 0xD0EB, - 20239 - 19968: 0xDCD1, - 20240 - 19968: 0xDBE9, - 20241 - 19968: 0xFDCC, - 20271 - 19968: 0xDBD7, - 20276 - 19968: 0xDAE1, - 20278 - 19968: 0xD6B6, - 20280 - 19968: 0xE3DF, - 20282 - 19968: 0xDEC3, - 20284 - 19968: 0xDEC4, - 20285 - 19968: 0xCAA1, - 20291 - 19968: 0xEEEC, - 20294 - 19968: 0xD3A3, - 20295 - 19968: 0xEEB7, - 20296 - 19968: 0xF8CF, - 20301 - 19968: 0xEAC8, - 20302 - 19968: 0xEEB8, - 20303 - 19968: 0xF1AC, - 20304 - 19968: 0xF1A5, - 20305 - 19968: 0xE9CE, - 20309 - 19968: 0xF9BC, - 20313 - 19968: 0xE5F9, - 20314 - 19968: 0xECEA, - 20315 - 19968: 0xDDD6, - 20316 - 19968: 0xEDC2, - 20329 - 19968: 0xF8A5, - 20335 - 19968: 0xE5BA, - 20336 - 19968: 0xDBD8, - 20339 - 19968: 0xCAA2, - 20342 - 19968: 0xD1CD, - 20346 - 19968: 0xEEED, - 20350 - 19968: 0xECEB, - 20351 - 19968: 0xDEC5, - 20353 - 19968: 0xE3E0, - 20355 - 19968: 0xCAC9, - 20356 - 19968: 0xF2E9, - 20358 - 19968: 0xD5CE, - 20360 - 19968: 0xF6B6, - 20362 - 19968: 0xCEC2, - 20363 - 19968: 0xD6C7, - 20365 - 19968: 0xE3B4, - 20367 - 19968: 0xF1AD, - 20369 - 19968: 0xEAE2, - 20374 - 19968: 0xD7C2, - 20376 - 19968: 0xF3A7, - 20379 - 19968: 0xCDEA, - 20381 - 19968: 0xEBEE, - 20398 - 19968: 0xD9B2, - 20399 - 19968: 0xFDA5, - 20405 - 19968: 0xF6D5, - 20406 - 19968: 0xD5E2, - 20415 - 19968: 0xF8B5, - 20418 - 19968: 0xCCF5, - 20419 - 19968: 0xF5B5, - 20420 - 19968: 0xE4AD, - 20425 - 19968: 0xE7EB, - 20426 - 19968: 0xF1D5, - 20430 - 19968: 0xF0BB, - 20433 - 19968: 0xE9B5, - 20435 - 19968: 0xCCC9, - 20436 - 19968: 0xFAD5, - 20439 - 19968: 0xE1D4, - 20442 - 19968: 0xD7D6, - 20445 - 19968: 0xDCC1, - 20447 - 19968: 0xDEC6, - 20448 - 19968: 0xFAEF, - 20449 - 19968: 0xE3E1, - 20462 - 19968: 0xE1F3, - 20463 - 19968: 0xDCF6, - 20465 - 19968: 0xCEFC, - 20467 - 19968: 0xDBC4, - 20469 - 19968: 0xF8F1, - 20472 - 19968: 0xDCE4, - 20474 - 19968: 0xE5EF, - 20482 - 19968: 0xDCB1, - 20486 - 19968: 0xD5D6, - 20489 - 19968: 0xF3DA, - 20491 - 19968: 0xCBC1, - 20493 - 19968: 0xDBC3, - 20497 - 19968: 0xD9FA, - 20498 - 19968: 0xD3EE, - 20502 - 19968: 0xFAB8, - 20505 - 19968: 0xFDA6, - 20506 - 19968: 0xEBEF, - 20508 - 19968: 0xF4A6, - 20510 - 19968: 0xCCCA, - 20511 - 19968: 0xF3A8, - 20513 - 19968: 0xF3DB, - 20515 - 19968: 0xDBA7, - 20516 - 19968: 0xF6B7, - 20518 - 19968: 0xCFE6, - 20519 - 19968: 0xF0F2, - 20520 - 19968: 0xCBDA, - 20522 - 19968: 0xE7D2, - 20523 - 19968: 0xD7C3, - 20524 - 19968: 0xF6F0, - 20525 - 19968: 0xE8DE, - 20539 - 19968: 0xE5A6, - 20547 - 19968: 0xE5E7, - 20551 - 19968: 0xCAA3, - 20552 - 19968: 0xCCA7, - 20553 - 19968: 0xEAC9, - 20559 - 19968: 0xF8B6, - 20565 - 19968: 0xFAA5, - 20570 - 19968: 0xF1AE, - 20572 - 19968: 0xEFCE, - 20581 - 19968: 0xCBED, - 20596 - 19968: 0xF6B0, - 20597 - 19968: 0xEFCF, - 20598 - 19968: 0xE9CF, - 20600 - 19968: 0xF7DE, - 20608 - 19968: 0xCED3, - 20613 - 19968: 0xDCF7, - 20621 - 19968: 0xDBA8, - 20625 - 19968: 0xCBF8, - 20632 - 19968: 0xDFA1, - 20633 - 19968: 0xDDE1, - 20652 - 19968: 0xF5CA, - 20653 - 19968: 0xE9B6, - 20658 - 19968: 0xE7EC, - 20659 - 19968: 0xEEEE, - 20661 - 19968: 0xF3F0, - 20663 - 19968: 0xDFBF, - 20670 - 19968: 0xCCCB, - 20677 - 19968: 0xD0C1, - 20681 - 19968: 0xF4D2, - 20682 - 19968: 0xE0BA, - 20687 - 19968: 0xDFC0, - 20689 - 19968: 0xCEE0, - 20693 - 19968: 0xDCD2, - 20694 - 19968: 0xFDEA, - 20698 - 19968: 0xD6F6, - 20702 - 19968: 0xEACA, - 20709 - 19968: 0xE8E9, - 20711 - 19968: 0xE3AC, - 20717 - 19968: 0xF3D0, - 20729 - 19968: 0xCAA4, - 20731 - 19968: 0xDBF8, - 20735 - 19968: 0xDEC7, - 20736 - 19968: 0xEBF0, - 20737 - 19968: 0xF1D6, - 20740 - 19968: 0xE5E2, - 20742 - 19968: 0xCCCC, - 20745 - 19968: 0xCBFB, - 20754 - 19968: 0xEAE3, - 20767 - 19968: 0xDFC1, - 20769 - 19968: 0xD6ED, - 20778 - 19968: 0xE9D0, - 20786 - 19968: 0xEEB9, - 20791 - 19968: 0xD5E3, - 20794 - 19968: 0xD1D3, - 20796 - 19968: 0xE5F0, - 20800 - 19968: 0xE8B4, - 20801 - 19968: 0xEBC3, - 20803 - 19968: 0xEAAA, - 20804 - 19968: 0xFAFC, - 20805 - 19968: 0xF5F6, - 20806 - 19968: 0xF0BC, - 20807 - 19968: 0xFDD4, - 20808 - 19968: 0xE0BB, - 20809 - 19968: 0xCEC3, - 20811 - 19968: 0xD0BA, - 20812 - 19968: 0xF7BA, - 20813 - 19968: 0xD8F3, - 20814 - 19968: 0xF7CD, - 20818 - 19968: 0xE4AE, - 20828 - 19968: 0xD4DF, - 20834 - 19968: 0xD0E7, - 20837 - 19968: 0xECFD, - 20839 - 19968: 0xD2AE, - 20840 - 19968: 0xEEEF, - 20841 - 19968: 0xD5D7, - 20842 - 19968: 0xEAE4, - 20843 - 19968: 0xF8A2, - 20844 - 19968: 0xCDEB, - 20845 - 19968: 0xD7BF, - 20846 - 19968: 0xFBB1, - 20849 - 19968: 0xCDEC, - 20853 - 19968: 0xDCB2, - 20854 - 19968: 0xD0EC, - 20855 - 19968: 0xCEFD, - 20856 - 19968: 0xEEF0, - 20860 - 19968: 0xCCC2, - 20864 - 19968: 0xD0ED, - 20870 - 19968: 0xE5F7, - 20874 - 19968: 0xF3FC, - 20877 - 19968: 0xEEA2, - 20882 - 19968: 0xD9B3, - 20885 - 19968: 0xD8F4, - 20887 - 19968: 0xE9B7, - 20896 - 19968: 0xCEAE, - 20901 - 19968: 0xD9A2, - 20906 - 19968: 0xD8F1, - 20908 - 19968: 0xD4CF, - 20918 - 19968: 0xE5A7, - 20919 - 19968: 0xD5D2, - 20925 - 19968: 0xD6A9, - 20932 - 19968: 0xF4A2, - 20934 - 19968: 0xF1D7, - 20937 - 19968: 0xD5D8, - 20939 - 19968: 0xF0BD, - 20940 - 19968: 0xD7D0, - 20941 - 19968: 0xD4D0, - 20956 - 19968: 0xD7CF, - 20957 - 19968: 0xEBEA, - 20958 - 19968: 0xFDEB, - 20961 - 19968: 0xDBED, - 20976 - 19968: 0xFCC5, - 20977 - 19968: 0xCBC2, - 20982 - 19968: 0xFDD5, - 20984 - 19968: 0xF4C8, - 20985 - 19968: 0xE8EA, - 20986 - 19968: 0xF5F3, - 20989 - 19968: 0xF9DE, - 20992 - 19968: 0xD3EF, - 20995 - 19968: 0xECD3, - 20998 - 19968: 0xDDC2, - 20999 - 19968: 0xEFB7, - 21000 - 19968: 0xE7D4, - 21002 - 19968: 0xCACA, - 21006 - 19968: 0xD9FB, - 21009 - 19968: 0xFAFD, - 21015 - 19968: 0xD6AA, - 21021 - 19968: 0xF4F8, - 21028 - 19968: 0xF7F7, - 21029 - 19968: 0xDCAC, - 21033 - 19968: 0xD7D7, - 21034 - 19968: 0xDFA2, - 21038 - 19968: 0xCEBE, - 21040 - 19968: 0xD3F0, - 21046 - 19968: 0xF0A4, - 21047 - 19968: 0xE1EC, - 21048 - 19968: 0xCFE7, - 21049 - 19968: 0xF3CB, - 21050 - 19968: 0xEDA9, - 21051 - 19968: 0xCABE, - 21059 - 19968: 0xF4EF, - 21063 - 19968: 0xF6CE, - 21066 - 19968: 0xDEFB, - 21067 - 19968: 0xD0BB, - 21068 - 19968: 0xD5B7, - 21069 - 19968: 0xEEF1, - 21076 - 19968: 0xF4A8, - 21078 - 19968: 0xDCF8, - 21083 - 19968: 0xCBA7, - 21085 - 19968: 0xDACE, - 21089 - 19968: 0xE0E6, - 21097 - 19968: 0xEDA5, - 21098 - 19968: 0xEEF2, - 21103 - 19968: 0xDCF9, - 21106 - 19968: 0xF9DC, - 21109 - 19968: 0xF3DC, - 21117 - 19968: 0xF8F2, - 21119 - 19968: 0xF4F9, - 21123 - 19968: 0xFCF1, - 21127 - 19968: 0xD0BC, - 21128 - 19968: 0xDBF9, - 21129 - 19968: 0xD7B1, - 21133 - 19968: 0xCBFC, - 21137 - 19968: 0xF0A5, - 21138 - 19968: 0xCBFD, - 21147 - 19968: 0xD5F4, - 21151 - 19968: 0xCDED, - 21152 - 19968: 0xCAA5, - 21155 - 19968: 0xD6AB, - 21156 - 19968: 0xD0C2, - 21161 - 19968: 0xF0BE, - 21162 - 19968: 0xD2BD, - 21163 - 19968: 0xCCA4, - 21182 - 19968: 0xFAB6, - 21185 - 19968: 0xCCCD, - 21187 - 19968: 0xDAFA, - 21189 - 19968: 0xF6CF, - 21191 - 19968: 0xE9B8, - 21193 - 19968: 0xD8F5, - 21197 - 19968: 0xCCCE, - 21202 - 19968: 0xD7CD, - 21205 - 19968: 0xD4D1, - 21206 - 19968: 0xE9ED, - 21208 - 19968: 0xCAEB, - 21209 - 19968: 0xD9E2, - 21211 - 19968: 0xFDB2, - 21213 - 19968: 0xE3AD, - 21214 - 19968: 0xD6CC, - 21215 - 19968: 0xD9B4, - 21218 - 19968: 0xE1A7, - 21219 - 19968: 0xEED3, - 21220 - 19968: 0xD0C3, - 21235 - 19968: 0xFDB3, - 21237 - 19968: 0xD5E4, - 21240 - 19968: 0xCFE8, - 21242 - 19968: 0xEDC3, - 21243 - 19968: 0xD0B2, - 21246 - 19968: 0xCEFE, - 21247 - 19968: 0xDAA8, - 21253 - 19968: 0xF8D0, - 21256 - 19968: 0xFDD6, - 21261 - 19968: 0xF8D1, - 21263 - 19968: 0xF8D2, - 21264 - 19968: 0xDCD3, - 21269 - 19968: 0xDDE2, - 21270 - 19968: 0xFBF9, - 21271 - 19968: 0xDDC1, - 21273 - 19968: 0xE3B5, - 21280 - 19968: 0xEDDD, - 21281 - 19968: 0xCEC4, - 21283 - 19968: 0xCBA1, - 21290 - 19968: 0xDDE3, - 21295 - 19968: 0xFCDD, - 21305 - 19968: 0xF9AF, - 21311 - 19968: 0xD2FB, - 21312 - 19968: 0xCFA1, - 21313 - 19968: 0xE4A8, - 21315 - 19968: 0xF4B6, - 21316 - 19968: 0xECFE, - 21319 - 19968: 0xE3AE, - 21320 - 19968: 0xE7ED, - 21321 - 19968: 0xFDC1, - 21322 - 19968: 0xDAE2, - 21325 - 19968: 0xD8B3, - 21329 - 19968: 0xDDE4, - 21330 - 19968: 0xF0EF, - 21331 - 19968: 0xF6F1, - 21332 - 19968: 0xFAF0, - 21335 - 19968: 0xD1F5, - 21338 - 19968: 0xDACF, - 21340 - 19968: 0xDCD4, - 21342 - 19968: 0xDCA6, - 21344 - 19968: 0xEFBF, - 21350 - 19968: 0xCECF, - 21352 - 19968: 0xE0D9, - 21359 - 19968: 0xD9D6, - 21360 - 19968: 0xECD4, - 21361 - 19968: 0xEACB, - 21364 - 19968: 0xCABF, - 21365 - 19968: 0xD5B0, - 21367 - 19968: 0xCFE9, - 21373 - 19968: 0xF1ED, - 21375 - 19968: 0xCCCF, - 21380 - 19968: 0xE4F8, - 21395 - 19968: 0xE4ED, - 21400 - 19968: 0xD7D8, - 21402 - 19968: 0xFDA7, - 21407 - 19968: 0xEAAB, - 21408 - 19968: 0xF6B2, - 21413 - 19968: 0xCFF0, - 21414 - 19968: 0xF9BD, - 21421 - 19968: 0xE6F4, - 21435 - 19968: 0xCBDB, - 21443 - 19968: 0xF3D1, - 21448 - 19968: 0xE9D1, - 21449 - 19968: 0xF3A9, - 21450 - 19968: 0xD0E0, - 21451 - 19968: 0xE9D2, - 21453 - 19968: 0xDAE3, - 21460 - 19968: 0xE2D2, - 21462 - 19968: 0xF6A2, - 21463 - 19968: 0xE1F4, - 21467 - 19968: 0xDAE4, - 21473 - 19968: 0xE7D5, - 21474 - 19968: 0xF5BF, - 21475 - 19968: 0xCFA2, - 21476 - 19968: 0xCDAF, - 21477 - 19968: 0xCFA3, - 21481 - 19968: 0xCDB0, - 21482 - 19968: 0xF1FE, - 21483 - 19968: 0xD0A3, - 21484 - 19968: 0xE1AF, - 21485 - 19968: 0xF8A3, - 21487 - 19968: 0xCAA6, - 21488 - 19968: 0xF7BB, - 21489 - 19968: 0xF2EA, - 21490 - 19968: 0xDEC8, - 21491 - 19968: 0xE9D3, - 21496 - 19968: 0xDEC9, - 21507 - 19968: 0xFDDE, - 21508 - 19968: 0xCAC0, - 21512 - 19968: 0xF9EA, - 21513 - 19968: 0xD1CE, - 21514 - 19968: 0xEED4, - 21516 - 19968: 0xD4D2, - 21517 - 19968: 0xD9A3, - 21518 - 19968: 0xFDA8, - 21519 - 19968: 0xD7D9, - 21520 - 19968: 0xF7CE, - 21521 - 19968: 0xFABE, - 21531 - 19968: 0xCFD6, - 21533 - 19968: 0xD7F0, - 21535 - 19968: 0xEBE1, - 21536 - 19968: 0xF8C5, - 21542 - 19968: 0xDCFA, - 21545 - 19968: 0xDDC3, - 21547 - 19968: 0xF9DF, - 21555 - 19968: 0xE7EF, - 21560 - 19968: 0xFDE5, - 21561 - 19968: 0xF6A3, - 21563 - 19968: 0xD9FC, - 21564 - 19968: 0xFDA9, - 21566 - 19968: 0xE7EE, - 21570 - 19968: 0xD5E5, - 21576 - 19968: 0xEFD0, - 21578 - 19968: 0xCDB1, - 21585 - 19968: 0xF7A2, - 21608 - 19968: 0xF1B2, - 21610 - 19968: 0xF1B1, - 21617 - 19968: 0xCDB2, - 21619 - 19968: 0xDAAB, - 21621 - 19968: 0xCAA7, - 21627 - 19968: 0xE3E2, - 21628 - 19968: 0xFBBC, - 21629 - 19968: 0xD9A4, - 21632 - 19968: 0xEEBA, - 21638 - 19968: 0xF8D3, - 21644 - 19968: 0xFBFA, - 21646 - 19968: 0xCFA4, - 21648 - 19968: 0xDCFB, - 21668 - 19968: 0xF6E3, - 21672 - 19968: 0xEDAA, - 21675 - 19968: 0xF2A1, - 21676 - 19968: 0xCEE1, - 21683 - 19968: 0xFAA6, - 21688 - 19968: 0xF9E0, - 21693 - 19968: 0xECD6, - 21696 - 19968: 0xE4EE, - 21697 - 19968: 0xF9A1, - 21700 - 19968: 0xFBEF, - 21704 - 19968: 0xF9EB, - 21705 - 19968: 0xEEA3, - 21729 - 19968: 0xEAAC, - 21733 - 19968: 0xCAA8, - 21736 - 19968: 0xF4FA, - 21741 - 19968: 0xCDD6, - 21742 - 19968: 0xFCF6, - 21746 - 19968: 0xF4C9, - 21754 - 19968: 0xF8D4, - 21764 - 19968: 0xF8A6, - 21766 - 19968: 0xDECA, - 21767 - 19968: 0xF2C6, - 21774 - 19968: 0xD7DA, - 21776 - 19968: 0xD3D0, - 21788 - 19968: 0xD8C5, - 21807 - 19968: 0xEAE6, - 21809 - 19968: 0xF3DD, - 21813 - 19968: 0xE4DA, - 21822 - 19968: 0xF6E4, - 21828 - 19968: 0xF6F2, - 21830 - 19968: 0xDFC2, - 21839 - 19968: 0xD9FD, - 21843 - 19968: 0xCCF6, - 21846 - 19968: 0xD3BA, - 21854 - 19968: 0xE4AF, - 21859 - 19968: 0xF9E1, - 21884 - 19968: 0xF0A6, - 21888 - 19968: 0xCBD3, - 21892 - 19968: 0xE0BC, - 21894 - 19968: 0xF4CA, - 21895 - 19968: 0xD4FA, - 21897 - 19968: 0xFDAA, - 21898 - 19968: 0xF9E2, - 21912 - 19968: 0xF4B7, - 21913 - 19968: 0xFDC2, - 21914 - 19968: 0xFCB0, - 21916 - 19968: 0xFDEC, - 21917 - 19968: 0xCAE2, - 21927 - 19968: 0xFDBD, - 21929 - 19968: 0xEAE7, - 21930 - 19968: 0xDFC3, - 21931 - 19968: 0xD1D2, - 21932 - 19968: 0xCEE2, - 21934 - 19968: 0xD3A4, - 21957 - 19968: 0xFDAB, - 21959 - 19968: 0xDFE0, - 21972 - 19968: 0xF2C7, - 21978 - 19968: 0xE7F0, - 21980 - 19968: 0xD0EE, - 21983 - 19968: 0xF3AA, - 21987 - 19968: 0xDECB, - 21988 - 19968: 0xF6B8, - 22013 - 19968: 0xE1F5, - 22014 - 19968: 0xF1B3, - 22022 - 19968: 0xF7A3, - 22025 - 19968: 0xCAA9, - 22036 - 19968: 0xCFA5, - 22039 - 19968: 0xDFC4, - 22063 - 19968: 0xE1B0, - 22066 - 19968: 0xF0BF, - 22068 - 19968: 0xF6A4, - 22070 - 19968: 0xE3B6, - 22099 - 19968: 0xFAC6, - 22120 - 19968: 0xD0EF, - 22123 - 19968: 0xFDED, - 22132 - 19968: 0xDDC4, - 22150 - 19968: 0xFCF7, - 22181 - 19968: 0xE6BF, - 22188 - 19968: 0xDEAD, - 22190 - 19968: 0xFABF, - 22196 - 19968: 0xE5F1, - 22204 - 19968: 0xEDC4, - 22218 - 19968: 0xD2A5, - 22221 - 19968: 0xFDEE, - 22225 - 19968: 0xF5B6, - 22234 - 19968: 0xE1F6, - 22235 - 19968: 0xDECC, - 22238 - 19968: 0xFCDE, - 22240 - 19968: 0xECD7, - 22256 - 19968: 0xCDDD, - 22265 - 19968: 0xD6B7, - 22266 - 19968: 0xCDB3, - 22275 - 19968: 0xF8D5, - 22276 - 19968: 0xE5D8, - 22280 - 19968: 0xCFEA, - 22283 - 19968: 0xCFD0, - 22285 - 19968: 0xEACC, - 22290 - 19968: 0xEAAE, - 22291 - 19968: 0xEAAD, - 22294 - 19968: 0xD3F1, - 22296 - 19968: 0xD3A5, - 22303 - 19968: 0xF7CF, - 22312 - 19968: 0xEEA4, - 22317 - 19968: 0xD0A4, - 22320 - 19968: 0xF2A2, - 22331 - 19968: 0xD0F0, - 22336 - 19968: 0xF2A3, - 22338 - 19968: 0xF7F8, - 22343 - 19968: 0xD0B3, - 22346 - 19968: 0xDBA9, - 22349 - 19968: 0xD3BB, - 22350 - 19968: 0xCAEC, - 22352 - 19968: 0xF1A6, - 22353 - 19968: 0xCBD5, - 22369 - 19968: 0xF7E7, - 22372 - 19968: 0xCDDE, - 22374 - 19968: 0xF7A4, - 22378 - 19968: 0xF8C0, - 22382 - 19968: 0xD3DD, - 22384 - 19968: 0xCCD0, - 22389 - 19968: 0xCFA6, - 22396 - 19968: 0xF6F3, - 22402 - 19968: 0xE1F7, - 22408 - 19968: 0xD3DC, - 22411 - 19968: 0xFAFE, - 22419 - 19968: 0xFAA7, - 22432 - 19968: 0xEBD9, - 22434 - 19968: 0xCFA7, - 22435 - 19968: 0xEAAF, - 22467 - 19968: 0xE4EF, - 22471 - 19968: 0xE9B9, - 22472 - 19968: 0xF1D8, - 22475 - 19968: 0xD8D8, - 22478 - 19968: 0xE0F2, - 22495 - 19968: 0xE6B4, - 22496 - 19968: 0xDCFC, - 22512 - 19968: 0xF3F1, - 22516 - 19968: 0xE3D0, - 22519 - 19968: 0xF2FB, - 22521 - 19968: 0xDBC6, - 22522 - 19968: 0xD0F1, - 22524 - 19968: 0xD0F2, - 22528 - 19968: 0xCFDC, - 22530 - 19968: 0xD3D1, - 22533 - 19968: 0xCCB1, - 22534 - 19968: 0xF7D8, - 22536 - 19968: 0xCBA8, - 22537 - 19968: 0xEBBC, - 22538 - 19968: 0xE4BE, - 22558 - 19968: 0xF4DC, - 22561 - 19968: 0xDCC2, - 22564 - 19968: 0xF0A7, - 22567 - 19968: 0xE6C0, - 22570 - 19968: 0xCAED, - 22575 - 19968: 0xE8EB, - 22576 - 19968: 0xE5E8, - 22577 - 19968: 0xDCC3, - 22580 - 19968: 0xEDDE, - 22581 - 19968: 0xD3F2, - 22586 - 19968: 0xCCF7, - 22602 - 19968: 0xCED4, - 22603 - 19968: 0xE7AB, - 22607 - 19968: 0xCBC3, - 22609 - 19968: 0xE1B1, - 22612 - 19968: 0xF7B2, - 22615 - 19968: 0xD3F3, - 22616 - 19968: 0xD3D2, - 22618 - 19968: 0xF5C0, - 22622 - 19968: 0xDFDD, - 22625 - 19968: 0xEEF3, - 22626 - 19968: 0xE7F1, - 22628 - 19968: 0xFDB4, - 22645 - 19968: 0xF2C8, - 22649 - 19968: 0xF3D2, - 22652 - 19968: 0xEEF4, - 22654 - 19968: 0xE2D3, - 22659 - 19968: 0xCCD1, - 22661 - 19968: 0xDFEA, - 22665 - 19968: 0xE9BA, - 22675 - 19968: 0xD9D7, - 22684 - 19968: 0xF5CD, - 22686 - 19968: 0xF1F2, - 22687 - 19968: 0xFAC7, - 22696 - 19968: 0xD9F8, - 22697 - 19968: 0xD4C2, - 22702 - 19968: 0xF6E5, - 22707 - 19968: 0xDDC5, - 22714 - 19968: 0xE7F2, - 22715 - 19968: 0xEDDF, - 22718 - 19968: 0xCACB, - 22721 - 19968: 0xDBFA, - 22725 - 19968: 0xE8B5, - 22727 - 19968: 0xD3A6, - 22734 - 19968: 0xFDB5, - 22737 - 19968: 0xF9C9, - 22739 - 19968: 0xE4E2, - 22741 - 19968: 0xFBBD, - 22744 - 19968: 0xD7A4, - 22745 - 19968: 0xCEC5, - 22750 - 19968: 0xCED5, - 22751 - 19968: 0xD6E6, - 22756 - 19968: 0xE5BD, - 22763 - 19968: 0xDECD, - 22764 - 19968: 0xECF3, - 22767 - 19968: 0xEDE0, - 22777 - 19968: 0xECEC, - 22778 - 19968: 0xFBBE, - 22779 - 19968: 0xDFEB, - 22781 - 19968: 0xE1F8, - 22799 - 19968: 0xF9BE, - 22804 - 19968: 0xD0F3, - 22805 - 19968: 0xE0AA, - 22806 - 19968: 0xE8E2, - 22809 - 19968: 0xE2D4, - 22810 - 19968: 0xD2FD, - 22812 - 19968: 0xE5A8, - 22818 - 19968: 0xD9D3, - 22823 - 19968: 0xD3DE, - 22825 - 19968: 0xF4B8, - 22826 - 19968: 0xF7BC, - 22827 - 19968: 0xDCFD, - 22829 - 19968: 0xE8EC, - 22830 - 19968: 0xE4E7, - 22833 - 19968: 0xE3F7, - 22839 - 19968: 0xECA8, - 22846 - 19968: 0xFAF1, - 22852 - 19968: 0xE5F2, - 22855 - 19968: 0xD0F4, - 22856 - 19968: 0xD2AF, - 22857 - 19968: 0xDCE5, - 22862 - 19968: 0xD0A5, - 22863 - 19968: 0xF1B4, - 22864 - 19968: 0xFCB1, - 22865 - 19968: 0xCCF8, - 22868 - 19968: 0xDDC6, - 22869 - 19968: 0xFAD1, - 22871 - 19968: 0xF7DF, - 22874 - 19968: 0xFAA8, - 22880 - 19968: 0xEEF5, - 22882 - 19968: 0xDECE, - 22887 - 19968: 0xE7F3, - 22890 - 19968: 0xF7AC, - 22891 - 19968: 0xEBC4, - 22892 - 19968: 0xEDE1, - 22893 - 19968: 0xE0AB, - 22894 - 19968: 0xDDC7, - 22899 - 19968: 0xD2B3, - 22900 - 19968: 0xD2BF, - 22904 - 19968: 0xCACC, - 22909 - 19968: 0xFBBF, - 22914 - 19968: 0xE5FD, - 22915 - 19968: 0xDDE5, - 22916 - 19968: 0xD8CD, - 22922 - 19968: 0xECF4, - 22931 - 19968: 0xD0F5, - 22934 - 19968: 0xE8ED, - 22935 - 19968: 0xD0D2, - 22937 - 19968: 0xD9D8, - 22949 - 19968: 0xF6E6, - 22952 - 19968: 0xDBAA, - 22956 - 19968: 0xF7E0, - 22969 - 19968: 0xD8D9, - 22971 - 19968: 0xF4A3, - 22974 - 19968: 0xF4DD, - 22979 - 19968: 0xEFD1, - 22982 - 19968: 0xD9B5, - 22985 - 19968: 0xEDAB, - 22987 - 19968: 0xE3B7, - 22992 - 19968: 0xEEBB, - 22993 - 19968: 0xCDB4, - 22995 - 19968: 0xE0F3, - 22996 - 19968: 0xEACD, - 23001 - 19968: 0xECF5, - 23002 - 19968: 0xE8EE, - 23004 - 19968: 0xCBA9, - 23005 - 19968: 0xF1AF, - 23014 - 19968: 0xCACD, - 23016 - 19968: 0xECA9, - 23018 - 19968: 0xF2EB, - 23020 - 19968: 0xFDEF, - 23022 - 19968: 0xF9F3, - 23032 - 19968: 0xE6C1, - 23035 - 19968: 0xECD8, - 23039 - 19968: 0xEDAC, - 23041 - 19968: 0xEACE, - 23043 - 19968: 0xE8DF, - 23057 - 19968: 0xDECF, - 23064 - 19968: 0xD2A6, - 23067 - 19968: 0xE7F4, - 23068 - 19968: 0xD1D6, - 23071 - 19968: 0xE6C2, - 23072 - 19968: 0xE3E3, - 23077 - 19968: 0xE4B0, - 23081 - 19968: 0xD8B4, - 23094 - 19968: 0xF6A5, - 23100 - 19968: 0xF3DE, - 23105 - 19968: 0xD7A5, - 23110 - 19968: 0xF7E8, - 23113 - 19968: 0xE8C6, - 23130 - 19968: 0xFBE6, - 23138 - 19968: 0xDDE6, - 23142 - 19968: 0xDCFE, - 23186 - 19968: 0xD8DA, - 23194 - 19968: 0xDAAC, - 23195 - 19968: 0xEAB0, - 23204 - 19968: 0xE3B8, - 23233 - 19968: 0xCAAA, - 23234 - 19968: 0xE1F9, - 23236 - 19968: 0xEAB1, - 23241 - 19968: 0xF2EC, - 23244 - 19968: 0xFAEE, - 23265 - 19968: 0xEED5, - 23270 - 19968: 0xF9F4, - 23273 - 19968: 0xD2EC, - 23301 - 19968: 0xFBFB, - 23305 - 19968: 0xFDF0, - 23307 - 19968: 0xE0BD, - 23308 - 19968: 0xCEE3, - 23318 - 19968: 0xF8C6, - 23338 - 19968: 0xDEAE, - 23360 - 19968: 0xDFC5, - 23363 - 19968: 0xE5BE, - 23376 - 19968: 0xEDAD, - 23377 - 19968: 0xFAEA, - 23380 - 19968: 0xCDEE, - 23381 - 19968: 0xEDA6, - 23383 - 19968: 0xEDAE, - 23384 - 19968: 0xF0ED, - 23386 - 19968: 0xDDA1, - 23388 - 19968: 0xEDAF, - 23389 - 19968: 0xFCF8, - 23391 - 19968: 0xD8EB, - 23395 - 19968: 0xCCF9, - 23396 - 19968: 0xCDB5, - 23401 - 19968: 0xFAA9, - 23403 - 19968: 0xE1DD, - 23408 - 19968: 0xE2D5, - 23409 - 19968: 0xEDCF, - 23413 - 19968: 0xDDA2, - 23416 - 19968: 0xF9CA, - 23418 - 19968: 0xEAE8, - 23420 - 19968: 0xE5ED, - 23429 - 19968: 0xD3EB, - 23431 - 19968: 0xE9D4, - 23432 - 19968: 0xE1FA, - 23433 - 19968: 0xE4CC, - 23435 - 19968: 0xE1E4, - 23436 - 19968: 0xE8C7, - 23439 - 19968: 0xCEDB, - 23443 - 19968: 0xDCD5, - 23445 - 19968: 0xF7B5, - 23446 - 19968: 0xFCF3, - 23447 - 19968: 0xF0F3, - 23448 - 19968: 0xCEAF, - 23449 - 19968: 0xF1B5, - 23450 - 19968: 0xEFD2, - 23451 - 19968: 0xE8C8, - 23452 - 19968: 0xEBF1, - 23458 - 19968: 0xCBD4, - 23459 - 19968: 0xE0BE, - 23460 - 19968: 0xE3F8, - 23461 - 19968: 0xEAE9, - 23462 - 19968: 0xFCB2, - 23468 - 19968: 0xE0F4, - 23470 - 19968: 0xCFE0, - 23472 - 19968: 0xEEA5, - 23475 - 19968: 0xFAAA, - 23476 - 19968: 0xE6C3, - 23477 - 19968: 0xE1B2, - 23478 - 19968: 0xCAAB, - 23480 - 19968: 0xE3E4, - 23481 - 19968: 0xE9BB, - 23487 - 19968: 0xE2D6, - 23488 - 19968: 0xF3F2, - 23490 - 19968: 0xEED6, - 23491 - 19968: 0xEAB2, - 23492 - 19968: 0xD0F6, - 23493 - 19968: 0xECD9, - 23494 - 19968: 0xDACB, - 23495 - 19968: 0xCFA8, - 23500 - 19968: 0xDDA3, - 23504 - 19968: 0xD8DB, - 23506 - 19968: 0xF9CE, - 23507 - 19968: 0xE9D5, - 23508 - 19968: 0xE3D1, - 23511 - 19968: 0xD2BC, - 23518 - 19968: 0xD8AC, - 23519 - 19968: 0xF3CC, - 23521 - 19968: 0xCDFB, - 23522 - 19968: 0xF6D6, - 23524 - 19968: 0xE7F5, - 23525 - 19968: 0xE8EF, - 23526 - 19968: 0xE3F9, - 23527 - 19968: 0xD2BB, - 23528 - 19968: 0xF3F3, - 23529 - 19968: 0xE3FB, - 23531 - 19968: 0xDED0, - 23532 - 19968: 0xCEB0, - 23534 - 19968: 0xD6F7, - 23535 - 19968: 0xF1D9, - 23541 - 19968: 0xF5C1, - 23542 - 19968: 0xDCC4, - 23544 - 19968: 0xF5BB, - 23546 - 19968: 0xDED1, - 23553 - 19968: 0xDCE6, - 23556 - 19968: 0xDED2, - 23559 - 19968: 0xEDE2, - 23560 - 19968: 0xEEF6, - 23561 - 19968: 0xEACF, - 23562 - 19968: 0xF0EE, - 23563 - 19968: 0xE3FC, - 23565 - 19968: 0xD3DF, - 23566 - 19968: 0xD3F4, - 23567 - 19968: 0xE1B3, - 23569 - 19968: 0xE1B4, - 23574 - 19968: 0xF4D3, - 23577 - 19968: 0xDFC6, - 23588 - 19968: 0xE9D6, - 23592 - 19968: 0xDBAB, - 23601 - 19968: 0xF6A6, - 23608 - 19968: 0xE3B9, - 23609 - 19968: 0xEBC5, - 23610 - 19968: 0xF4A9, - 23611 - 19968: 0xCDB6, - 23612 - 19968: 0xD2F9, - 23614 - 19968: 0xDAAD, - 23615 - 19968: 0xD2E3, - 23616 - 19968: 0xCFD1, - 23621 - 19968: 0xCBDC, - 23622 - 19968: 0xCCFA, - 23624 - 19968: 0xCFDD, - 23627 - 19968: 0xE8A9, - 23629 - 19968: 0xE3BB, - 23630 - 19968: 0xE3BA, - 23633 - 19968: 0xE0DA, - 23637 - 19968: 0xEEF7, - 23643 - 19968: 0xDCB3, - 23648 - 19968: 0xD3F5, - 23650 - 19968: 0xD7A6, - 23652 - 19968: 0xF6B5, - 23653 - 19968: 0xD7DB, - 23660 - 19968: 0xE1D5, - 23663 - 19968: 0xD4EA, - 23665 - 19968: 0xDFA3, - 23673 - 19968: 0xFDDF, - 23696 - 19968: 0xD0F7, - 23697 - 19968: 0xEDD4, - 23713 - 19968: 0xCBAA, - 23721 - 19968: 0xE4DB, - 23723 - 19968: 0xE1FB, - 23724 - 19968: 0xCBA2, - 23729 - 19968: 0xD3E0, - 23731 - 19968: 0xE4BF, - 23733 - 19968: 0xFBC0, - 23735 - 19968: 0xDABE, - 23736 - 19968: 0xE4CD, - 23738 - 19968: 0xD6B9, - 23742 - 19968: 0xEFC0, - 23744 - 19968: 0xE1FC, - 23769 - 19968: 0xF6B9, - 23776 - 19968: 0xDFC7, - 23784 - 19968: 0xE4B1, - 23791 - 19968: 0xDCE7, - 23792 - 19968: 0xDCE8, - 23796 - 19968: 0xFAD6, - 23798 - 19968: 0xD3F6, - 23803 - 19968: 0xF1DA, - 23805 - 19968: 0xFAF2, - 23815 - 19968: 0xE2FD, - 23821 - 19968: 0xD5CF, - 23822 - 19968: 0xD0F8, - 23825 - 19968: 0xCDDF, - 23828 - 19968: 0xF5CB, - 23830 - 19968: 0xE4F0, - 23831 - 19968: 0xCBAB, - 23833 - 19968: 0xD7C4, - 23847 - 19968: 0xE2FE, - 23849 - 19968: 0xDDDA, - 23883 - 19968: 0xDAAE, - 23884 - 19968: 0xCAEE, - 23888 - 19968: 0xD5B9, - 23913 - 19968: 0xE3A1, - 23916 - 19968: 0xE8E3, - 23919 - 19968: 0xF3AB, - 23943 - 19968: 0xCFA9, - 23947 - 19968: 0xD3F7, - 23965 - 19968: 0xD4F1, - 23968 - 19968: 0xCEE4, - 23970 - 19968: 0xE8F2, - 23978 - 19968: 0xE5F5, - 23992 - 19968: 0xE7AE, - 23994 - 19968: 0xD6BA, - 23996 - 19968: 0xDFEC, - 23997 - 19968: 0xE4C0, - 24013 - 19968: 0xE8E4, - 24018 - 19968: 0xD8B5, - 24022 - 19968: 0xE4DC, - 24029 - 19968: 0xF4B9, - 24030 - 19968: 0xF1B6, - 24033 - 19968: 0xE2DE, - 24034 - 19968: 0xE1B5, - 24037 - 19968: 0xCDEF, - 24038 - 19968: 0xF1A7, - 24039 - 19968: 0xCEE5, - 24040 - 19968: 0xCBDD, - 24043 - 19968: 0xD9E3, - 24046 - 19968: 0xF3AC, - 24049 - 19968: 0xD0F9, - 24050 - 19968: 0xECAB, - 24051 - 19968: 0xDED3, - 24052 - 19968: 0xF7E9, - 24055 - 19968: 0xF9F5, - 24061 - 19968: 0xE1DE, - 24062 - 19968: 0xCBEE, - 24066 - 19968: 0xE3BC, - 24067 - 19968: 0xF8D6, - 24070 - 19968: 0xDBEE, - 24076 - 19968: 0xFDF1, - 24081 - 19968: 0xF7B6, - 24086 - 19968: 0xF4DE, - 24089 - 19968: 0xF2ED, - 24091 - 19968: 0xDBD9, - 24093 - 19968: 0xF0A8, - 24101 - 19968: 0xE1FD, - 24107 - 19968: 0xDED4, - 24109 - 19968: 0xE0AC, - 24115 - 19968: 0xEDE3, - 24118 - 19968: 0xD3E1, - 24120 - 19968: 0xDFC8, - 24125 - 19968: 0xD9B6, - 24127 - 19968: 0xFDAC, - 24128 - 19968: 0xEFD3, - 24132 - 19968: 0xE4C1, - 24133 - 19968: 0xF8EB, - 24135 - 19968: 0xDBAC, - 24140 - 19968: 0xFCC6, - 24149 - 19968: 0xD8AD, - 24159 - 19968: 0xF6BA, - 24161 - 19968: 0xDBDF, - 24162 - 19968: 0xD3D3, - 24163 - 19968: 0xF8C7, - 24178 - 19968: 0xCACE, - 24179 - 19968: 0xF8C1, - 24180 - 19968: 0xD2B4, - 24183 - 19968: 0xDCB4, - 24184 - 19968: 0xFAB9, - 24185 - 19968: 0xCACF, - 24187 - 19968: 0xFCB3, - 24188 - 19968: 0xEAEA, - 24189 - 19968: 0xEAEB, - 24190 - 19968: 0xD0FA, - 24196 - 19968: 0xEDE4, - 24199 - 19968: 0xDDE7, - 24202 - 19968: 0xDFC9, - 24207 - 19968: 0xDFED, - 24213 - 19968: 0xEEBC, - 24215 - 19968: 0xEFC1, - 24218 - 19968: 0xCCD2, - 24220 - 19968: 0xDDA4, - 24224 - 19968: 0xDFCA, - 24230 - 19968: 0xD3F8, - 24231 - 19968: 0xF1A8, - 24235 - 19968: 0xCDB7, - 24237 - 19968: 0xEFD4, - 24245 - 19968: 0xE4DD, - 24246 - 19968: 0xDFEE, - 24247 - 19968: 0xCBAC, - 24248 - 19968: 0xE9BC, - 24254 - 19968: 0xEAEC, - 24258 - 19968: 0xDFCB, - 24264 - 19968: 0xF9BF, - 24265 - 19968: 0xD6AF, - 24266 - 19968: 0xD5C6, - 24272 - 19968: 0xCFAA, - 24275 - 19968: 0xCEA9, - 24278 - 19968: 0xD6F8, - 24282 - 19968: 0xF1B7, - 24283 - 19968: 0xEEF8, - 24287 - 19968: 0xD9D9, - 24288 - 19968: 0xF3DF, - 24290 - 19968: 0xF8C8, - 24291 - 19968: 0xCEC6, - 24300 - 19968: 0xD5E6, - 24307 - 19968: 0xF4E6, - 24310 - 19968: 0xE6C5, - 24311 - 19968: 0xEFD5, - 24314 - 19968: 0xCBEF, - 24315 - 19968: 0xFCDF, - 24321 - 19968: 0xDCA7, - 24324 - 19968: 0xD6E7, - 24330 - 19968: 0xF8C9, - 24335 - 19968: 0xE3D2, - 24337 - 19968: 0xE3BD, - 24339 - 19968: 0xCFE1, - 24340 - 19968: 0xF0C0, - 24341 - 19968: 0xECDA, - 24343 - 19968: 0xDDD7, - 24344 - 19968: 0xFBF0, - 24347 - 19968: 0xECAC, - 24351 - 19968: 0xF0A9, - 24358 - 19968: 0xFAD7, - 24359 - 19968: 0xFBC1, - 24361 - 19968: 0xD2C0, - 24369 - 19968: 0xE5B0, - 24373 - 19968: 0xEDE5, - 24378 - 19968: 0xCBAD, - 24380 - 19968: 0xF9B0, - 24392 - 19968: 0xF7A5, - 24394 - 19968: 0xCBAE, - 24396 - 19968: 0xDAAF, - 24398 - 19968: 0xD8B6, - 24406 - 19968: 0xD3A7, - 24407 - 19968: 0xFBB2, - 24409 - 19968: 0xFDC4, - 24411 - 19968: 0xECAD, - 24418 - 19968: 0xFBA1, - 24422 - 19968: 0xE5E9, - 24423 - 19968: 0xE9EE, - 24425 - 19968: 0xF3F4, - 24426 - 19968: 0xF8F3, - 24427 - 19968: 0xF0C1, - 24428 - 19968: 0xDEAF, - 24429 - 19968: 0xF8B0, - 24432 - 19968: 0xF3E0, - 24433 - 19968: 0xE7AF, - 24439 - 19968: 0xDBAD, - 24441 - 19968: 0xE6B5, - 24444 - 19968: 0xF9A8, - 24447 - 19968: 0xDDD8, - 24448 - 19968: 0xE8D9, - 24449 - 19968: 0xEFD6, - 24453 - 19968: 0xD3E2, - 24455 - 19968: 0xE2DF, - 24458 - 19968: 0xFCE0, - 24459 - 19968: 0xD7C8, - 24460 - 19968: 0xFDAD, - 24464 - 19968: 0xDFEF, - 24465 - 19968: 0xCCD3, - 24466 - 19968: 0xD3F9, - 24471 - 19968: 0xD4F0, - 24472 - 19968: 0xDBC7, - 24473 - 19968: 0xDED5, - 24478 - 19968: 0xF0F4, - 24480 - 19968: 0xD5D0, - 24481 - 19968: 0xE5D9, - 24488 - 19968: 0xFCC7, - 24489 - 19968: 0xDCD6, - 24490 - 19968: 0xE2E0, - 24494 - 19968: 0xDAB0, - 24501 - 19968: 0xF3A3, - 24503 - 19968: 0xD3EC, - 24505 - 19968: 0xF4CB, - 24509 - 19968: 0xFDC5, - 24515 - 19968: 0xE3FD, - 24517 - 19968: 0xF9B1, - 24524 - 19968: 0xD0FB, - 24525 - 19968: 0xECDB, - 24534 - 19968: 0xF5BC, - 24535 - 19968: 0xF2A4, - 24536 - 19968: 0xD8CE, - 24537 - 19968: 0xD8CF, - 24544 - 19968: 0xF5F7, - 24555 - 19968: 0xF6E1, - 24565 - 19968: 0xD2B7, - 24573 - 19968: 0xFBEC, - 24575 - 19968: 0xDDC8, - 24591 - 19968: 0xE4E8, - 24594 - 19968: 0xD2C1, - 24598 - 19968: 0xF8D7, - 24604 - 19968: 0xD6BB, - 24605 - 19968: 0xDED6, - 24608 - 19968: 0xF7BD, - 24609 - 19968: 0xECAE, - 24613 - 19968: 0xD0E1, - 24615 - 19968: 0xE0F5, - 24616 - 19968: 0xEAB3, - 24618 - 19968: 0xCED6, - 24623 - 19968: 0xCCA5, - 24641 - 19968: 0xECF6, - 24642 - 19968: 0xE2E1, - 24643 - 19968: 0xE3BE, - 24653 - 19968: 0xFCC8, - 24656 - 19968: 0xCDF0, - 24658 - 19968: 0xF9F6, - 24661 - 19968: 0xDFF0, - 24665 - 19968: 0xE5BF, - 24669 - 19968: 0xCEBF, - 24674 - 19968: 0xFCE1, - 24675 - 19968: 0xEDB0, - 24676 - 19968: 0xFDD1, - 24677 - 19968: 0xF6BB, - 24680 - 19968: 0xF9CF, - 24681 - 19968: 0xEBDA, - 24682 - 19968: 0xCAC1, - 24684 - 19968: 0xD2B8, - 24685 - 19968: 0xCDF1, - 24687 - 19968: 0xE3D3, - 24688 - 19968: 0xFDE6, - 24709 - 19968: 0xE6ED, - 24713 - 19968: 0xE3FA, - 24716 - 19968: 0xF0AA, - 24717 - 19968: 0xF9D0, - 24724 - 19968: 0xFCE2, - 24726 - 19968: 0xF8A7, - 24730 - 19968: 0xE1E5, - 24731 - 19968: 0xEEF9, - 24735 - 19968: 0xE7F6, - 24736 - 19968: 0xEAED, - 24739 - 19968: 0xFCB4, - 24740 - 19968: 0xF5C2, - 24743 - 19968: 0xD7DC, - 24752 - 19968: 0xF0F5, - 24754 - 19968: 0xDDE8, - 24755 - 19968: 0xD3ED, - 24756 - 19968: 0xF5FC, - 24758 - 19968: 0xDABF, - 24760 - 19968: 0xCCFB, - 24764 - 19968: 0xD3FA, - 24765 - 19968: 0xF4A4, - 24773 - 19968: 0xEFD7, - 24775 - 19968: 0xD4C3, - 24785 - 19968: 0xFBE3, - 24794 - 19968: 0xFBED, - 24796 - 19968: 0xE0AD, - 24799 - 19968: 0xEAEE, - 24800 - 19968: 0xFBB3, - 24801 - 19968: 0xE4C2, - 24816 - 19968: 0xF6E7, - 24817 - 19968: 0xD2DD, - 24819 - 19968: 0xDFCC, - 24822 - 19968: 0xFCC9, - 24825 - 19968: 0xE5A9, - 24826 - 19968: 0xE0F6, - 24827 - 19968: 0xF6B3, - 24833 - 19968: 0xE1FE, - 24838 - 19968: 0xCBF0, - 24840 - 19968: 0xEAEF, - 24841 - 19968: 0xEAF0, - 24845 - 19968: 0xDAC0, - 24846 - 19968: 0xF8B4, - 24847 - 19968: 0xEBF2, - 24853 - 19968: 0xE4C3, - 24858 - 19968: 0xE9D7, - 24859 - 19968: 0xE4F1, - 24863 - 19968: 0xCAEF, - 24871 - 19968: 0xCED7, - 24880 - 19968: 0xFCCA, - 24884 - 19968: 0xF3E1, - 24887 - 19968: 0xCBC4, - 24892 - 19968: 0xE3E5, - 24894 - 19968: 0xCBC5, - 24895 - 19968: 0xEAB4, - 24898 - 19968: 0xE9BD, - 24900 - 19968: 0xD7C9, - 24903 - 19968: 0xEBDB, - 24904 - 19968: 0xEDB1, - 24906 - 19968: 0xCCC3, - 24907 - 19968: 0xF7BE, - 24908 - 19968: 0xFCCB, - 24915 - 19968: 0xF8F4, - 24917 - 19968: 0xD9B7, - 24920 - 19968: 0xF3D3, - 24921 - 19968: 0xF3D4, - 24925 - 19968: 0xF7E4, - 24927 - 19968: 0xF7D1, - 24930 - 19968: 0xD8B7, - 24931 - 19968: 0xCEB1, - 24932 - 19968: 0xCAC2, - 24935 - 19968: 0xFBB4, - 24936 - 19968: 0xCBC6, - 24939 - 19968: 0xF0F6, - 24942 - 19968: 0xD5E7, - 24944 - 19968: 0xEAD0, - 24950 - 19968: 0xCCD4, - 24951 - 19968: 0xCBAF, - 24957 - 19968: 0xF4AA, - 24958 - 19968: 0xE9AF, - 24961 - 19968: 0xF5C3, - 24962 - 19968: 0xE9D8, - 24970 - 19968: 0xDDE9, - 24974 - 19968: 0xF1F3, - 24976 - 19968: 0xD5FB, - 24977 - 19968: 0xDEBB, - 24980 - 19968: 0xF4FB, - 24984 - 19968: 0xFDF3, - 24985 - 19968: 0xFDF2, - 24986 - 19968: 0xF7A6, - 24996 - 19968: 0xDDC9, - 24999 - 19968: 0xD4D3, - 25001 - 19968: 0xCCA8, - 25003 - 19968: 0xDAC1, - 25004 - 19968: 0xCCD5, - 25006 - 19968: 0xD9E4, - 25010 - 19968: 0xFACA, - 25014 - 19968: 0xE5E3, - 25018 - 19968: 0xD3BC, - 25022 - 19968: 0xCAF0, - 25027 - 19968: 0xD0C4, - 25031 - 19968: 0xCAD0, - 25032 - 19968: 0xFAAB, - 25033 - 19968: 0xEBEB, - 25034 - 19968: 0xE7F8, - 25035 - 19968: 0xD9E5, - 25062 - 19968: 0xD1D7, - 25074 - 19968: 0xF3A4, - 25078 - 19968: 0xD4FB, - 25079 - 19968: 0xFCE3, - 25080 - 19968: 0xFAD8, - 25082 - 19968: 0xF3D5, - 25084 - 19968: 0xCFAB, - 25087 - 19968: 0xEBF3, - 25088 - 19968: 0xD5FC, - 25095 - 19968: 0xD3D4, - 25096 - 19968: 0xCDFC, - 25098 - 19968: 0xD9E6, - 25100 - 19968: 0xE2F9, - 25101 - 19968: 0xE2A1, - 25102 - 19968: 0xEBD4, - 25104 - 19968: 0xE0F7, - 25105 - 19968: 0xE4B2, - 25106 - 19968: 0xCCFC, - 25110 - 19968: 0xFBE4, - 25114 - 19968: 0xF4AB, - 25119 - 19968: 0xD0BD, - 25121 - 19968: 0xCAF1, - 25130 - 19968: 0xEFB8, - 25134 - 19968: 0xD7C0, - 25136 - 19968: 0xEEFA, - 25137 - 19968: 0xFDF4, - 25140 - 19968: 0xD3E3, - 25142 - 19968: 0xFBC2, - 25150 - 19968: 0xD5E8, - 25151 - 19968: 0xDBAE, - 25152 - 19968: 0xE1B6, - 25153 - 19968: 0xF8B7, - 25159 - 19968: 0xE0BF, - 25160 - 19968: 0xFBC3, - 25161 - 19968: 0xDDEA, - 25163 - 19968: 0xE2A2, - 25165 - 19968: 0xEEA6, - 25171 - 19968: 0xF6E8, - 25176 - 19968: 0xF6F5, - 25198 - 19968: 0xDDCA, - 25201 - 19968: 0xD0E2, - 25206 - 19968: 0xDDA6, - 25209 - 19968: 0xDDEB, - 25212 - 19968: 0xE4F9, - 25215 - 19968: 0xE3AF, - 25216 - 19968: 0xD0FC, - 25220 - 19968: 0xF4FC, - 25225 - 19968: 0xCCBC, - 25226 - 19968: 0xF7EA, - 25233 - 19968: 0xE5E4, - 25234 - 19968: 0xDFF1, - 25237 - 19968: 0xF7E1, - 25239 - 19968: 0xF9F7, - 25240 - 19968: 0xEFB9, - 25243 - 19968: 0xF8D8, - 25259 - 19968: 0xF9A9, - 25265 - 19968: 0xF8D9, - 25269 - 19968: 0xEEBD, - 25273 - 19968: 0xD8C6, - 25276 - 19968: 0xE4E3, - 25277 - 19968: 0xF5CE, - 25282 - 19968: 0xDDD9, - 25287 - 19968: 0xD9E7, - 25288 - 19968: 0xD2B9, - 25289 - 19968: 0xD5C3, - 25292 - 19968: 0xDAE5, - 25293 - 19968: 0xDAD0, - 25295 - 19968: 0xD1D9, - 25296 - 19968: 0xCED8, - 25298 - 19968: 0xCBDE, - 25299 - 19968: 0xF4AC, - 25300 - 19968: 0xDAFB, - 25302 - 19968: 0xF6E9, - 25303 - 19968: 0xE8F3, - 25304 - 19968: 0xCFAC, - 25305 - 19968: 0xF0F0, - 25307 - 19968: 0xF4FD, - 25308 - 19968: 0xDBC8, - 25324 - 19968: 0xCEC0, - 25325 - 19968: 0xE3D4, - 25326 - 19968: 0xD1CF, - 25327 - 19968: 0xF1F5, - 25329 - 19968: 0xCDF2, - 25331 - 19968: 0xCFEB, - 25335 - 19968: 0xCDB8, - 25342 - 19968: 0xE3A6, - 25343 - 19968: 0xD1DA, - 25345 - 19968: 0xF2A5, - 25351 - 19968: 0xF2A6, - 25353 - 19968: 0xE4CE, - 25361 - 19968: 0xD3FB, - 25387 - 19968: 0xF1A9, - 25391 - 19968: 0xF2C9, - 25402 - 19968: 0xEFD8, - 25403 - 19968: 0xE6C9, - 25405 - 19968: 0xD8B8, - 25406 - 19968: 0xFAF3, - 25417 - 19968: 0xF3B5, - 25420 - 19968: 0xF8A4, - 25423 - 19968: 0xD1F3, - 25424 - 19968: 0xE6C8, - 25429 - 19968: 0xF8DA, - 25447 - 19968: 0xDCE9, - 25448 - 19968: 0xDED7, - 25454 - 19968: 0xCBDF, - 25458 - 19968: 0xCFEC, - 25463 - 19968: 0xF4DF, - 25466 - 19968: 0xD1F4, - 25467 - 19968: 0xD2BA, - 25471 - 19968: 0xDFF2, - 25475 - 19968: 0xE1B7, - 25480 - 19968: 0xE2A3, - 25481 - 19968: 0xD3FC, - 25484 - 19968: 0xEDE6, - 25490 - 19968: 0xDBC9, - 25494 - 19968: 0xE4FA, - 25496 - 19968: 0xCFDE, - 25499 - 19968: 0xCED0, - 25504 - 19968: 0xD5D3, - 25505 - 19968: 0xF3F5, - 25506 - 19968: 0xF7AE, - 25509 - 19968: 0xEFC8, - 25511 - 19968: 0xCDF3, - 25512 - 19968: 0xF5CF, - 25513 - 19968: 0xE5F3, - 25514 - 19968: 0xF0C2, - 25536 - 19968: 0xCAD1, - 25540 - 19968: 0xEAF1, - 25542 - 19968: 0xD0A6, - 25551 - 19968: 0xD9DA, - 25552 - 19968: 0xF0AB, - 25558 - 19968: 0xEBE7, - 25562 - 19968: 0xE5C0, - 25563 - 19968: 0xFCB5, - 25569 - 19968: 0xE4C4, - 25581 - 19968: 0xCCA9, - 25582 - 19968: 0xFDC6, - 25588 - 19968: 0xEAB5, - 25590 - 19968: 0xE5AA, - 25591 - 19968: 0xDFBA, - 25613 - 19968: 0xE1DF, - 25615 - 19968: 0xDAD1, - 25620 - 19968: 0xE1B8, - 25622 - 19968: 0xE8F4, - 25623 - 19968: 0xD3FD, - 25628 - 19968: 0xE2A4, - 25634 - 19968: 0xF2CA, - 25644 - 19968: 0xDAE6, - 25645 - 19968: 0xF7B3, - 25658 - 19968: 0xFDCD, - 25662 - 19968: 0xF3B6, - 25688 - 19968: 0xEED7, - 25696 - 19968: 0xF5C4, - 25705 - 19968: 0xD8A4, - 25711 - 19968: 0xF2A7, - 25720 - 19968: 0xD9B8, - 25721 - 19968: 0xD9B9, - 25722 - 19968: 0xEFC9, - 25736 - 19968: 0xD6CE, - 25745 - 19968: 0xF7CB, - 25746 - 19968: 0xDFAE, - 25747 - 19968: 0xE8F5, - 25754 - 19968: 0xD2B5, - 25758 - 19968: 0xD3D5, - 25764 - 19968: 0xF4CC, - 25765 - 19968: 0xDAFC, - 25771 - 19968: 0xD9E8, - 25773 - 19968: 0xF7EB, - 25774 - 19968: 0xF5C9, - 25776 - 19968: 0xF3BC, - 25778 - 19968: 0xDAD2, - 25787 - 19968: 0xD3B5, - 25793 - 19968: 0xE8B6, - 25796 - 19968: 0xD6CF, - 25797 - 19968: 0xF4BA, - 25799 - 19968: 0xF7C9, - 25802 - 19968: 0xCCAA, - 25805 - 19968: 0xF0C3, - 25806 - 19968: 0xCCD6, - 25810 - 19968: 0xD0D3, - 25812 - 19968: 0xD3BD, - 25816 - 19968: 0xDBFB, - 25818 - 19968: 0xCBE0, - 25825 - 19968: 0xD3E4, - 25826 - 19968: 0xF6F7, - 25829 - 19968: 0xD5BA, - 25830 - 19968: 0xF3CD, - 25831 - 19968: 0xCBE1, - 25836 - 19968: 0xEBF4, - 25842 - 19968: 0xF4AD, - 25844 - 19968: 0xFCAA, - 25850 - 19968: 0xF7EC, - 25854 - 19968: 0xE8F6, - 25856 - 19968: 0xDAE7, - 25860 - 19968: 0xF7CC, - 25880 - 19968: 0xE5C1, - 25885 - 19968: 0xE0EE, - 25891 - 19968: 0xD5FD, - 25898 - 19968: 0xCEE6, - 25899 - 19968: 0xFCAB, - 25900 - 19968: 0xD5BB, - 25903 - 19968: 0xF2A8, - 25910 - 19968: 0xE2A5, - 25911 - 19968: 0xCDB9, - 25912 - 19968: 0xEAF2, - 25913 - 19968: 0xCBC7, - 25915 - 19968: 0xCDF4, - 25918 - 19968: 0xDBAF, - 25919 - 19968: 0xEFD9, - 25925 - 19968: 0xCDBA, - 25928 - 19968: 0xFCF9, - 25933 - 19968: 0xDFF3, - 25934 - 19968: 0xCEE7, - 25935 - 19968: 0xDAC2, - 25937 - 19968: 0xCFAD, - 25942 - 19968: 0xE7F9, - 25943 - 19968: 0xF8A8, - 25950 - 19968: 0xF3E2, - 25954 - 19968: 0xCAF2, - 25955 - 19968: 0xDFA4, - 25958 - 19968: 0xD4C4, - 25964 - 19968: 0xCCD7, - 25965 - 19968: 0xE5C2, - 25970 - 19968: 0xCDBB, - 25972 - 19968: 0xEFDA, - 25973 - 19968: 0xEED8, - 25975 - 19968: 0xDDA7, - 25976 - 19968: 0xE2A6, - 25982 - 19968: 0xE0C0, - 25986 - 19968: 0xD6B0, - 25987 - 19968: 0xF8CA, - 25989 - 19968: 0xFCFA, - 25991 - 19968: 0xD9FE, - 25996 - 19968: 0xDEB0, - 26000 - 19968: 0xDDEC, - 26001 - 19968: 0xDAE8, - 26007 - 19968: 0xD4E0, - 26009 - 19968: 0xD6F9, - 26011 - 19968: 0xCDD7, - 26012 - 19968: 0xDED8, - 26015 - 19968: 0xF2F8, - 26017 - 19968: 0xE4D6, - 26020 - 19968: 0xD0C5, - 26021 - 19968: 0xF4AE, - 26023 - 19968: 0xDDA8, - 26027 - 19968: 0xEDC5, - 26028 - 19968: 0xF3D6, - 26031 - 19968: 0xDED9, - 26032 - 19968: 0xE3E6, - 26039 - 19968: 0xD3A8, - 26041 - 19968: 0xDBB0, - 26044 - 19968: 0xE5DA, - 26045 - 19968: 0xE3BF, - 26049 - 19968: 0xDBB1, - 26053 - 19968: 0xD5E9, - 26059 - 19968: 0xE0C1, - 26060 - 19968: 0xEFDB, - 26063 - 19968: 0xF0E9, - 26066 - 19968: 0xD7B2, - 26071 - 19968: 0xD0FD, - 26080 - 19968: 0xD9E9, - 26083 - 19968: 0xD0FE, - 26085 - 19968: 0xECED, - 26086 - 19968: 0xD3A9, - 26088 - 19968: 0xF2A9, - 26089 - 19968: 0xF0C4, - 26092 - 19968: 0xE2E2, - 26093 - 19968: 0xE9EF, - 26097 - 19968: 0xF9D1, - 26100 - 19968: 0xE9D9, - 26106 - 19968: 0xE8DA, - 26107 - 19968: 0xDAC3, - 26108 - 19968: 0xDAC4, - 26109 - 19968: 0xD4C5, - 26111 - 19968: 0xE7FA, - 26118 - 19968: 0xCDE0, - 26119 - 19968: 0xE3B0, - 26121 - 19968: 0xDBB2, - 26122 - 19968: 0xFBC4, - 26124 - 19968: 0xF3E3, - 26126 - 19968: 0xD9A5, - 26127 - 19968: 0xFBE7, - 26128 - 19968: 0xDDCB, - 26129 - 19968: 0xD0D4, - 26131 - 19968: 0xE6B6, - 26132 - 19968: 0xE0AE, - 26133 - 19968: 0xFDDA, - 26142 - 19968: 0xDCB5, - 26143 - 19968: 0xE0F8, - 26144 - 19968: 0xE7B1, - 26149 - 19968: 0xF5F0, - 26151 - 19968: 0xD8DC, - 26152 - 19968: 0xEDC6, - 26157 - 19968: 0xE1B9, - 26159 - 19968: 0xE3C0, - 26160 - 19968: 0xF9C0, - 26161 - 19968: 0xE9F0, - 26164 - 19968: 0xD9DB, - 26166 - 19968: 0xF3E4, - 26170 - 19968: 0xDCB6, - 26171 - 19968: 0xE4E9, - 26177 - 19968: 0xF0C5, - 26178 - 19968: 0xE3C1, - 26179 - 19968: 0xFCCC, - 26180 - 19968: 0xFCCD, - 26185 - 19968: 0xF2CB, - 26187 - 19968: 0xF2CC, - 26191 - 19968: 0xE4CF, - 26201 - 19968: 0xF1DB, - 26203 - 19968: 0xFAD9, - 26205 - 19968: 0xF1B8, - 26206 - 19968: 0xFDF5, - 26207 - 19968: 0xE0F9, - 26212 - 19968: 0xE7FB, - 26213 - 19968: 0xFCB7, - 26214 - 19968: 0xFCE4, - 26215 - 19968: 0xFBC5, - 26216 - 19968: 0xE3E7, - 26217 - 19968: 0xD8B9, - 26219 - 19968: 0xF6F8, - 26222 - 19968: 0xDCC5, - 26223 - 19968: 0xCCD8, - 26227 - 19968: 0xE0AF, - 26228 - 19968: 0xF4E7, - 26230 - 19968: 0xEFDC, - 26231 - 19968: 0xCFFC, - 26232 - 19968: 0xEFDD, - 26234 - 19968: 0xF2AA, - 26244 - 19968: 0xFDBE, - 26247 - 19968: 0xCAAC, - 26248 - 19968: 0xFDBB, - 26249 - 19968: 0xFDC7, - 26254 - 19968: 0xE7B2, - 26256 - 19968: 0xEAD1, - 26257 - 19968: 0xDFF4, - 26262 - 19968: 0xD1EC, - 26263 - 19968: 0xE4DE, - 26264 - 19968: 0xE5C3, - 26269 - 19968: 0xD9A6, - 26272 - 19968: 0xCDBC, - 26274 - 19968: 0xF3E5, - 26283 - 19968: 0xEDD5, - 26286 - 19968: 0xD9BA, - 26290 - 19968: 0xEDE7, - 26291 - 19968: 0xFBB5, - 26292 - 19968: 0xF8EC, - 26297 - 19968: 0xE0E7, - 26299 - 19968: 0xCCD9, - 26302 - 19968: 0xD4C6, - 26308 - 19968: 0xE7A5, - 26310 - 19968: 0xD5F5, - 26311 - 19968: 0xD3BE, - 26313 - 19968: 0xFCFB, - 26326 - 19968: 0xE4F2, - 26329 - 19968: 0xDFF5, - 26332 - 19968: 0xE8F8, - 26333 - 19968: 0xF8ED, - 26336 - 19968: 0xCEC7, - 26342 - 19968: 0xFDF6, - 26352 - 19968: 0xE8D8, - 26354 - 19968: 0xCDD8, - 26355 - 19968: 0xE7D6, - 26356 - 19968: 0xCCDA, - 26359 - 19968: 0xCAE3, - 26360 - 19968: 0xDFF6, - 26361 - 19968: 0xF0C7, - 26362 - 19968: 0xF0C6, - 26364 - 19968: 0xD8BA, - 26366 - 19968: 0xF1F4, - 26367 - 19968: 0xF4F0, - 26368 - 19968: 0xF5CC, - 26371 - 19968: 0xFCE5, - 26376 - 19968: 0xEAC5, - 26377 - 19968: 0xEAF3, - 26379 - 19968: 0xDDDB, - 26381 - 19968: 0xDCD7, - 26388 - 19968: 0xDEFD, - 26389 - 19968: 0xF2F9, - 26391 - 19968: 0xD5C7, - 26395 - 19968: 0xD8D0, - 26397 - 19968: 0xF0C8, - 26398 - 19968: 0xD1A1, - 26399 - 19968: 0xD1A2, - 26406 - 19968: 0xD9D4, - 26407 - 19968: 0xD6E8, - 26408 - 19968: 0xD9CA, - 26410 - 19968: 0xDAB1, - 26411 - 19968: 0xD8C7, - 26412 - 19968: 0xDCE2, - 26413 - 19968: 0xF3CE, - 26414 - 19968: 0xF5F4, - 26417 - 19968: 0xF1B9, - 26420 - 19968: 0xDAD3, - 26422 - 19968: 0xF6EA, - 26426 - 19968: 0xCFF5, - 26429 - 19968: 0xFDAE, - 26438 - 19968: 0xCAD2, - 26441 - 19968: 0xDFB4, - 26446 - 19968: 0xD7DD, - 26447 - 19968: 0xFABA, - 26448 - 19968: 0xEEA7, - 26449 - 19968: 0xF5BD, - 26451 - 19968: 0xF8F5, - 26454 - 19968: 0xEDE8, - 26460 - 19968: 0xD4E1, - 26462 - 19968: 0xD1A3, - 26463 - 19968: 0xE1D6, - 26477 - 19968: 0xF9F8, - 26479 - 19968: 0xDBCA, - 26480 - 19968: 0xCBF9, - 26481 - 19968: 0xD4D4, - 26483 - 19968: 0xD9DC, - 26485 - 19968: 0xEEBE, - 26487 - 19968: 0xF7ED, - 26491 - 19968: 0xD2EE, - 26494 - 19968: 0xE1E6, - 26495 - 19968: 0xF7F9, - 26503 - 19968: 0xDDED, - 26505 - 19968: 0xE8DB, - 26507 - 19968: 0xDBB3, - 26511 - 19968: 0xD1F7, - 26512 - 19968: 0xE0B0, - 26515 - 19968: 0xD4E2, - 26517 - 19968: 0xF6D7, - 26519 - 19968: 0xD7F9, - 26522 - 19968: 0xD8DD, - 26524 - 19968: 0xCDFD, - 26525 - 19968: 0xF2AB, - 26543 - 19968: 0xCDBD, - 26544 - 19968: 0xF8C2, - 26547 - 19968: 0xF2AC, - 26550 - 19968: 0xCAAD, - 26551 - 19968: 0xCAAE, - 26552 - 19968: 0xCFAE, - 26558 - 19968: 0xE3C2, - 26564 - 19968: 0xDCB7, - 26575 - 19968: 0xDBDA, - 26576 - 19968: 0xD9BB, - 26577 - 19968: 0xCAF3, - 26578 - 19968: 0xF6D3, - 26579 - 19968: 0xE6F8, - 26580 - 19968: 0xEAF5, - 26586 - 19968: 0xEAF6, - 26589 - 19968: 0xF6F9, - 26601 - 19968: 0xCFAF, - 26604 - 19968: 0xCAD3, - 26607 - 19968: 0xCAAF, - 26608 - 19968: 0xD2B0, - 26609 - 19968: 0xF1BA, - 26611 - 19968: 0xD7B3, - 26612 - 19968: 0xE3C3, - 26613 - 19968: 0xF3FD, - 26614 - 19968: 0xDEDA, - 26619 - 19968: 0xDEDB, - 26622 - 19968: 0xEFDE, - 26642 - 19968: 0xE2E3, - 26643 - 19968: 0xEEFB, - 26646 - 19968: 0xDFF7, - 26647 - 19968: 0xD7CA, - 26657 - 19968: 0xCEE8, - 26658 - 19968: 0xDBDB, - 26666 - 19968: 0xF1BB, - 26671 - 19968: 0xE9F1, - 26680 - 19968: 0xFAB7, - 26681 - 19968: 0xD0C6, - 26684 - 19968: 0xCCAB, - 26685 - 19968: 0xEEA8, - 26688 - 19968: 0xCBFA, - 26689 - 19968: 0xF9F9, - 26690 - 19968: 0xCCFD, - 26691 - 19968: 0xD3FE, - 26696 - 19968: 0xE4D0, - 26702 - 19968: 0xF2EE, - 26704 - 19968: 0xD4D5, - 26705 - 19968: 0xDFCD, - 26707 - 19968: 0xFCB8, - 26708 - 19968: 0xD1D0, - 26733 - 19968: 0xF2CD, - 26742 - 19968: 0xF7D2, - 26751 - 19968: 0xCAD4, - 26753 - 19968: 0xD5D9, - 26757 - 19968: 0xD8DE, - 26767 - 19968: 0xCDD9, - 26771 - 19968: 0xEEA9, - 26772 - 19968: 0xF6BC, - 26775 - 19968: 0xCCDB, - 26781 - 19968: 0xF0C9, - 26783 - 19968: 0xFCFC, - 26785 - 19968: 0xE8C9, - 26786 - 19968: 0xF4FE, - 26791 - 19968: 0xE7FC, - 26792 - 19968: 0xD7DE, - 26797 - 19968: 0xDEDC, - 26799 - 19968: 0xF0AC, - 26800 - 19968: 0xCCFE, - 26801 - 19968: 0xCDE1, - 26803 - 19968: 0xE1BA, - 26805 - 19968: 0xDBEF, - 26806 - 19968: 0xDAB2, - 26820 - 19968: 0xD1A5, - 26821 - 19968: 0xDCB8, - 26825 - 19968: 0xD8F6, - 26827 - 19968: 0xD1A4, - 26829 - 19968: 0xCDE2, - 26834 - 19968: 0xDCEA, - 26837 - 19968: 0xF0F7, - 26839 - 19968: 0xF0CA, - 26840 - 19968: 0xD0BE, - 26842 - 19968: 0xDDDC, - 26847 - 19968: 0xD4D6, - 26848 - 19968: 0xD3D6, - 26855 - 19968: 0xEDD0, - 26856 - 19968: 0xCDA1, - 26862 - 19968: 0xDFB5, - 26866 - 19968: 0xDFF8, - 26873 - 19968: 0xD4A1, - 26874 - 19968: 0xCEB2, - 26880 - 19968: 0xE8CA, - 26885 - 19968: 0xEBF5, - 26893 - 19968: 0xE3D5, - 26894 - 19968: 0xF5D0, - 26898 - 19968: 0xF5A1, - 26919 - 19968: 0xD9A7, - 26928 - 19968: 0xE5AB, - 26941 - 19968: 0xE6CB, - 26943 - 19968: 0xF5F1, - 26954 - 19968: 0xE5C5, - 26963 - 19968: 0xF9A3, - 26964 - 19968: 0xE0DB, - 26965 - 19968: 0xF6EB, - 26967 - 19968: 0xCBF1, - 26969 - 19968: 0xD9EA, - 26970 - 19968: 0xF5A2, - 26974 - 19968: 0xD7D1, - 26976 - 19968: 0xD1F8, - 26977 - 19968: 0xEAF8, - 26978 - 19968: 0xEAF9, - 26979 - 19968: 0xDAB3, - 26984 - 19968: 0xEFDF, - 26987 - 19968: 0xF1EF, - 26989 - 19968: 0xE5F6, - 26990 - 19968: 0xEEBF, - 26991 - 19968: 0xE2E4, - 26997 - 19968: 0xD0BF, - 26999 - 19968: 0xFAAC, - 27000 - 19968: 0xF5D1, - 27001 - 19968: 0xE7B3, - 27029 - 19968: 0xE9BE, - 27035 - 19968: 0xF2CE, - 27036 - 19968: 0xDBB4, - 27045 - 19968: 0xFCCE, - 27047 - 19968: 0xDDEE, - 27054 - 19968: 0xE7B4, - 27060 - 19968: 0xD7B4, - 27067 - 19968: 0xF7B4, - 27073 - 19968: 0xCDBE, - 27075 - 19968: 0xDAE9, - 27083 - 19968: 0xCFB0, - 27084 - 19968: 0xF7D9, - 27085 - 19968: 0xF3E6, - 27088 - 19968: 0xCED9, - 27112 - 19968: 0xCEAA, - 27114 - 19968: 0xCBC8, - 27131 - 19968: 0xD0A7, - 27133 - 19968: 0xF0CB, - 27135 - 19968: 0xD0C7, - 27138 - 19968: 0xE4C5, - 27146 - 19968: 0xDBE0, - 27153 - 19968: 0xD5DA, - 27155 - 19968: 0xD7A7, - 27159 - 19968: 0xEEC0, - 27161 - 19968: 0xF8F6, - 27166 - 19968: 0xF5D2, - 27167 - 19968: 0xEDE9, - 27169 - 19968: 0xD9BC, - 27171 - 19968: 0xE5C6, - 27189 - 19968: 0xF5A3, - 27192 - 19968: 0xDAD4, - 27193 - 19968: 0xE2A7, - 27194 - 19968: 0xFBFC, - 27197 - 19968: 0xF1DC, - 27204 - 19968: 0xCAF4, - 27208 - 19968: 0xE8FA, - 27211 - 19968: 0xCEE9, - 27218 - 19968: 0xE9F8, - 27219 - 19968: 0xE2E5, - 27224 - 19968: 0xD0B9, - 27225 - 19968: 0xD4F2, - 27231 - 19968: 0xD1A6, - 27233 - 19968: 0xDFCE, - 27243 - 19968: 0xFCF4, - 27264 - 19968: 0xD3AA, - 27268 - 19968: 0xCCAC, - 27273 - 19968: 0xEFE0, - 27277 - 19968: 0xE5E5, - 27278 - 19968: 0xD0D5, - 27287 - 19968: 0xDBFC, - 27292 - 19968: 0xFCE6, - 27298 - 19968: 0xCBFE, - 27299 - 19968: 0xEDEA, - 27315 - 19968: 0xDEB1, - 27323 - 19968: 0xF9E3, - 27330 - 19968: 0xD4A2, - 27331 - 19968: 0xCFF6, - 27347 - 19968: 0xD6D0, - 27354 - 19968: 0xD5EA, - 27355 - 19968: 0xF1EE, - 27382 - 19968: 0xFACB, - 27387 - 19968: 0xE5A1, - 27396 - 19968: 0xD5B1, - 27402 - 19968: 0xCFED, - 27404 - 19968: 0xEDEB, - 27410 - 19968: 0xD5B2, - 27414 - 19968: 0xD5BC, - 27424 - 19968: 0xFDE2, - 27425 - 19968: 0xF3AD, - 27427 - 19968: 0xFDDB, - 27442 - 19968: 0xE9B0, - 27450 - 19968: 0xD1A7, - 27453 - 19968: 0xFDE3, - 27454 - 19968: 0xCEB3, - 27462 - 19968: 0xFDE4, - 27463 - 19968: 0xFACE, - 27468 - 19968: 0xCAB0, - 27470 - 19968: 0xF7A7, - 27472 - 19968: 0xCFB1, - 27487 - 19968: 0xE6A2, - 27489 - 19968: 0xFCB6, - 27490 - 19968: 0xF2AD, - 27491 - 19968: 0xEFE1, - 27492 - 19968: 0xF3AE, - 27493 - 19968: 0xDCC6, - 27494 - 19968: 0xD9EB, - 27498 - 19968: 0xE8E0, - 27506 - 19968: 0xE1A8, - 27511 - 19968: 0xD5F6, - 27512 - 19968: 0xCFFD, - 27515 - 19968: 0xDEDD, - 27519 - 19968: 0xD9D1, - 27523 - 19968: 0xE4EA, - 27524 - 19968: 0xF2CF, - 27526 - 19968: 0xF7BF, - 27529 - 19968: 0xE2E6, - 27530 - 19968: 0xE2A8, - 27542 - 19968: 0xE3D6, - 27544 - 19968: 0xEDD1, - 27550 - 19968: 0xE9F9, - 27566 - 19968: 0xD6B1, - 27567 - 19968: 0xDEB2, - 27570 - 19968: 0xE0E8, - 27573 - 19968: 0xD3AB, - 27575 - 19968: 0xEBDC, - 27578 - 19968: 0xDFAF, - 27580 - 19968: 0xCAC3, - 27583 - 19968: 0xEEFC, - 27585 - 19968: 0xFDC3, - 27589 - 19968: 0xEBF6, - 27590 - 19968: 0xCFB2, - 27595 - 19968: 0xD9EC, - 27597 - 19968: 0xD9BD, - 27599 - 19968: 0xD8DF, - 27602 - 19968: 0xD4B8, - 27603 - 19968: 0xEBBE, - 27604 - 19968: 0xDDEF, - 27606 - 19968: 0xDDF0, - 27607 - 19968: 0xDDF1, - 27608 - 19968: 0xDDF2, - 27611 - 19968: 0xD9BE, - 27627 - 19968: 0xFBC6, - 27628 - 19968: 0xCFB3, - 27656 - 19968: 0xEEFD, - 27663 - 19968: 0xE4AB, - 27665 - 19968: 0xDAC5, - 27667 - 19968: 0xD8EC, - 27683 - 19968: 0xD1A8, - 27700 - 19968: 0xE2A9, - 27703 - 19968: 0xDEBC, - 27704 - 19968: 0xE7B5, - 27710 - 19968: 0xDBF0, - 27712 - 19968: 0xEFE2, - 27713 - 19968: 0xF1F0, - 27714 - 19968: 0xCFB4, - 27726 - 19968: 0xDBF1, - 27728 - 19968: 0xE0B1, - 27733 - 19968: 0xDFA5, - 27735 - 19968: 0xF9D2, - 27738 - 19968: 0xE7FD, - 27741 - 19968: 0xE6A3, - 27742 - 19968: 0xFBF1, - 27743 - 19968: 0xCBB0, - 27744 - 19968: 0xF2AE, - 27752 - 19968: 0xCDE7, - 27754 - 19968: 0xE8DC, - 27757 - 19968: 0xE7D7, - 27760 - 19968: 0xF7C0, - 27762 - 19968: 0xD0E3, - 27766 - 19968: 0xDAA1, - 27770 - 19968: 0xCCBD, - 27773 - 19968: 0xD1A9, - 27774 - 19968: 0xDDCC, - 27777 - 19968: 0xE3FE, - 27778 - 19968: 0xD1AA, - 27779 - 19968: 0xE8AA, - 27781 - 19968: 0xEAB6, - 27782 - 19968: 0xF9FA, - 27783 - 19968: 0xE6CC, - 27784 - 19968: 0xF6D8, - 27788 - 19968: 0xD4C7, - 27792 - 19968: 0xD9CB, - 27794 - 19968: 0xD9D2, - 27795 - 19968: 0xD3CB, - 27796 - 19968: 0xD8F7, - 27797 - 19968: 0xDAA9, - 27798 - 19968: 0xF5F8, - 27801 - 19968: 0xDEDE, - 27802 - 19968: 0xF2AF, - 27803 - 19968: 0xF8A9, - 27819 - 19968: 0xD8C8, - 27822 - 19968: 0xEEC1, - 27827 - 19968: 0xF9C1, - 27832 - 19968: 0xDDF3, - 27833 - 19968: 0xEAFA, - 27835 - 19968: 0xF6BD, - 27836 - 19968: 0xE1BB, - 27837 - 19968: 0xCDBF, - 27838 - 19968: 0xF4D4, - 27839 - 19968: 0xE6CD, - 27841 - 19968: 0xFCCF, - 27842 - 19968: 0xFBA2, - 27844 - 19968: 0xE0DC, - 27849 - 19968: 0xF4BB, - 27850 - 19968: 0xDAD5, - 27852 - 19968: 0xF9B2, - 27859 - 19968: 0xFBF2, - 27861 - 19968: 0xDBF6, - 27863 - 19968: 0xDEDF, - 27867 - 19968: 0xDBF2, - 27873 - 19968: 0xF8DC, - 27874 - 19968: 0xF7EE, - 27875 - 19968: 0xEBE8, - 27877 - 19968: 0xD2FA, - 27880 - 19968: 0xF1BC, - 27883 - 19968: 0xFADA, - 27886 - 19968: 0xDAEA, - 27887 - 19968: 0xDAC6, - 27888 - 19968: 0xF7C1, - 27891 - 19968: 0xE7B6, - 27915 - 19968: 0xE5C7, - 27916 - 19968: 0xD6AC, - 27921 - 19968: 0xDCC7, - 27927 - 19968: 0xE1A9, - 27929 - 19968: 0xE2AA, - 27931 - 19968: 0xD5A6, - 27934 - 19968: 0xD4D7, - 27941 - 19968: 0xF2D0, - 27943 - 19968: 0xEAFB, - 27945 - 19968: 0xE0DD, - 27946 - 19968: 0xFBF3, - 27954 - 19968: 0xF1BD, - 27957 - 19968: 0xE2E7, - 27958 - 19968: 0xFDD7, - 27960 - 19968: 0xCEC8, - 27961 - 19968: 0xEAB7, - 27963 - 19968: 0xFCC0, - 27965 - 19968: 0xFDE7, - 27966 - 19968: 0xF7EF, - 27969 - 19968: 0xD7B5, - 27993 - 19968: 0xEFBA, - 27994 - 19968: 0xF1DD, - 27996 - 19968: 0xDEB3, - 28003 - 19968: 0xE8CB, - 28006 - 19968: 0xF8DD, - 28009 - 19968: 0xFBC7, - 28010 - 19968: 0xD5C8, - 28012 - 19968: 0xD7DF, - 28014 - 19968: 0xDDA9, - 28020 - 19968: 0xE9B1, - 28023 - 19968: 0xFAAD, - 28024 - 19968: 0xF6D9, - 28025 - 19968: 0xFAF4, - 28031 - 19968: 0xF8AA, - 28037 - 19968: 0xE6EE, - 28039 - 19968: 0xCCDC, - 28040 - 19968: 0xE1BC, - 28041 - 19968: 0xE0EF, - 28044 - 19968: 0xE9BF, - 28045 - 19968: 0xFCFD, - 28046 - 19968: 0xE6CE, - 28049 - 19968: 0xE1D7, - 28051 - 19968: 0xE6CF, - 28053 - 19968: 0xF4F1, - 28079 - 19968: 0xE4F3, - 28082 - 19968: 0xE4FB, - 28085 - 19968: 0xF9E4, - 28096 - 19968: 0xEFE3, - 28099 - 19968: 0xCFEE, - 28100 - 19968: 0xF6BE, - 28101 - 19968: 0xE0B2, - 28102 - 19968: 0xFCFE, - 28103 - 19968: 0xD1AB, - 28107 - 19968: 0xD7FA, - 28111 - 19968: 0xFBC8, - 28113 - 19968: 0xE2D7, - 28120 - 19968: 0xD4A3, - 28121 - 19968: 0xF0F8, - 28122 - 19968: 0xD7A8, - 28126 - 19968: 0xE1E7, - 28129 - 19968: 0xD3BF, - 28136 - 19968: 0xEFE4, - 28138 - 19968: 0xD7C5, - 28139 - 19968: 0xEBE2, - 28142 - 19968: 0xFCE7, - 28145 - 19968: 0xE4A2, - 28147 - 19968: 0xE2E8, - 28149 - 19968: 0xE6D0, - 28151 - 19968: 0xFBE8, - 28152 - 19968: 0xF4E8, - 28153 - 19968: 0xE5F4, - 28154 - 19968: 0xF4BC, - 28155 - 19968: 0xF4D5, - 28183 - 19968: 0xDFB6, - 28185 - 19968: 0xFCB9, - 28186 - 19968: 0xEEC2, - 28187 - 19968: 0xCAF5, - 28191 - 19968: 0xEFE5, - 28192 - 19968: 0xCBE2, - 28193 - 19968: 0xD4A4, - 28195 - 19968: 0xDEE0, - 28196 - 19968: 0xDAFD, - 28197 - 19968: 0xE4C6, - 28198 - 19968: 0xE8BE, - 28203 - 19968: 0xE0DE, - 28204 - 19968: 0xF6B4, - 28205 - 19968: 0xEAD2, - 28207 - 19968: 0xF9FB, - 28210 - 19968: 0xE0C2, - 28212 - 19968: 0xCAE4, - 28214 - 19968: 0xE7B7, - 28216 - 19968: 0xEAFD, - 28218 - 19968: 0xD9DD, - 28220 - 19968: 0xDAB4, - 28221 - 19968: 0xEEAA, - 28222 - 19968: 0xFBE9, - 28227 - 19968: 0xDBCB, - 28228 - 19968: 0xDAB5, - 28234 - 19968: 0xF1BE, - 28237 - 19968: 0xD3AC, - 28246 - 19968: 0xFBC9, - 28248 - 19968: 0xDFCF, - 28251 - 19968: 0xD3C0, - 28252 - 19968: 0xE3D7, - 28254 - 19968: 0xEFE6, - 28255 - 19968: 0xFCD0, - 28263 - 19968: 0xE9C0, - 28267 - 19968: 0xF5D3, - 28270 - 19968: 0xECDC, - 28271 - 19968: 0xF7B7, - 28274 - 19968: 0xEAB8, - 28275 - 19968: 0xD1F9, - 28282 - 19968: 0xDCC8, - 28304 - 19968: 0xEAB9, - 28310 - 19968: 0xF1DE, - 28316 - 19968: 0xD7B6, - 28317 - 19968: 0xCFB5, - 28319 - 19968: 0xD9A8, - 28322 - 19968: 0xECEE, - 28325 - 19968: 0xDDAA, - 28330 - 19968: 0xCDA2, - 28331 - 19968: 0xE8AE, - 28335 - 19968: 0xE1BD, - 28337 - 19968: 0xF2D1, - 28342 - 19968: 0xE9C1, - 28346 - 19968: 0xD2FC, - 28354 - 19968: 0xDBB5, - 28356 - 19968: 0xF3E7, - 28357 - 19968: 0xD8FE, - 28361 - 19968: 0xFCD1, - 28363 - 19968: 0xEDB2, - 28364 - 19968: 0xF4AF, - 28366 - 19968: 0xFBA3, - 28369 - 19968: 0xFCC1, - 28371 - 19968: 0xEEAB, - 28372 - 19968: 0xD4A5, - 28399 - 19968: 0xF4F2, - 28404 - 19968: 0xEED9, - 28408 - 19968: 0xFBCA, - 28414 - 19968: 0xCDE3, - 28415 - 19968: 0xD8BB, - 28417 - 19968: 0xE5DB, - 28418 - 19968: 0xF8F7, - 28422 - 19968: 0xF6D4, - 28431 - 19968: 0xD7A9, - 28433 - 19968: 0xCBC9, - 28436 - 19968: 0xE6D1, - 28437 - 19968: 0xF0CC, - 28448 - 19968: 0xD8AE, - 28450 - 19968: 0xF9D3, - 28451 - 19968: 0xD5FE, - 28459 - 19968: 0xD8BC, - 28460 - 19968: 0xF2B0, - 28465 - 19968: 0xE2AB, - 28466 - 19968: 0xF3E8, - 28472 - 19968: 0xEFC2, - 28479 - 19968: 0xEDEC, - 28481 - 19968: 0xE7B8, - 28497 - 19968: 0xDAFE, - 28500 - 19968: 0xCCBE, - 28503 - 19968: 0xF2FC, - 28504 - 19968: 0xDAEB, - 28506 - 19968: 0xE2D8, - 28507 - 19968: 0xEDD6, - 28510 - 19968: 0xD6D1, - 28511 - 19968: 0xE0B3, - 28514 - 19968: 0xFCD2, - 28516 - 19968: 0xEBC8, - 28525 - 19968: 0xD3C1, - 28526 - 19968: 0xF0CD, - 28528 - 19968: 0xCFF7, - 28538 - 19968: 0xEDD2, - 28540 - 19968: 0xD4D8, - 28541 - 19968: 0xDCC9, - 28542 - 19968: 0xD7F1, - 28545 - 19968: 0xDFBB, - 28548 - 19968: 0xF3A5, - 28552 - 19968: 0xF4CD, - 28557 - 19968: 0xF1BF, - 28558 - 19968: 0xF8B1, - 28560 - 19968: 0xE9FA, - 28564 - 19968: 0xFBCB, - 28567 - 19968: 0xCAD5, - 28579 - 19968: 0xF9D4, - 28580 - 19968: 0xF7CA, - 28583 - 19968: 0xD6C8, - 28590 - 19968: 0xFCE8, - 28591 - 19968: 0xF3BD, - 28593 - 19968: 0xEEFE, - 28595 - 19968: 0xE7FE, - 28601 - 19968: 0xD3C2, - 28606 - 19968: 0xD3B6, - 28608 - 19968: 0xCCAD, - 28609 - 19968: 0xF6FA, - 28610 - 19968: 0xD6B2, - 28611 - 19968: 0xD2D8, - 28618 - 19968: 0xE7D8, - 28629 - 19968: 0xE3A5, - 28634 - 19968: 0xE7B9, - 28639 - 19968: 0xF0AD, - 28640 - 19968: 0xFBCC, - 28641 - 19968: 0xEBA1, - 28644 - 19968: 0xD4A6, - 28649 - 19968: 0xFBCD, - 28651 - 19968: 0xD5BD, - 28652 - 19968: 0xF1DF, - 28655 - 19968: 0xF6FB, - 28657 - 19968: 0xDEB4, - 28670 - 19968: 0xD5EB, - 28673 - 19968: 0xE5C8, - 28677 - 19968: 0xFBA4, - 28678 - 19968: 0xD4B9, - 28681 - 19968: 0xDEE1, - 28683 - 19968: 0xE4A3, - 28687 - 19968: 0xD7B7, - 28689 - 19968: 0xF8EE, - 28693 - 19968: 0xDEB5, - 28696 - 19968: 0xD6D2, - 28698 - 19968: 0xF9D5, - 28699 - 19968: 0xE7BA, - 28700 - 19968: 0xEBD5, - 28701 - 19968: 0xD5F7, - 28702 - 19968: 0xEFE7, - 28703 - 19968: 0xE1BE, - 28707 - 19968: 0xFAAE, - 28711 - 19968: 0xD6E9, - 28712 - 19968: 0xD6EE, - 28719 - 19968: 0xE7BB, - 28727 - 19968: 0xECCB, - 28734 - 19968: 0xD5B3, - 28748 - 19968: 0xCEB4, - 28752 - 19968: 0xFBA5, - 28753 - 19968: 0xE1EE, - 28760 - 19968: 0xF7A8, - 28765 - 19968: 0xFBCE, - 28771 - 19968: 0xD8BD, - 28779 - 19968: 0xFBFD, - 28784 - 19968: 0xFCE9, - 28792 - 19968: 0xCFB6, - 28796 - 19968: 0xEDC7, - 28797 - 19968: 0xEEAC, - 28805 - 19968: 0xCCDD, - 28810 - 19968: 0xF6A7, - 28814 - 19968: 0xE6FA, - 28818 - 19968: 0xF5A4, - 28824 - 19968: 0xFDDC, - 28825 - 19968: 0xEDB3, - 28826 - 19968: 0xCEC9, - 28833 - 19968: 0xEFE8, - 28836 - 19968: 0xE1BF, - 28843 - 19968: 0xFADB, - 28844 - 19968: 0xCBE3, - 28845 - 19968: 0xF7A9, - 28847 - 19968: 0xFBA6, - 28851 - 19968: 0xDCB9, - 28855 - 19968: 0xF1C0, - 28856 - 19968: 0xEDC8, - 28857 - 19968: 0xEFC3, - 28872 - 19968: 0xD6AD, - 28875 - 19968: 0xFDCE, - 28879 - 19968: 0xE8A1, - 28888 - 19968: 0xFBF4, - 28889 - 19968: 0xD5A7, - 28893 - 19968: 0xF1F6, - 28895 - 19968: 0xE6D3, - 28913 - 19968: 0xCCDE, - 28921 - 19968: 0xF8B2, - 28925 - 19968: 0xDCEB, - 28932 - 19968: 0xFDB6, - 28937 - 19968: 0xE5EA, - 28940 - 19968: 0xF1E0, - 28953 - 19968: 0xDBCC, - 28954 - 19968: 0xDDCD, - 28958 - 19968: 0xD4C8, - 28961 - 19968: 0xD9ED, - 28966 - 19968: 0xF5A5, - 28976 - 19968: 0xE6FB, - 28982 - 19968: 0xE6D4, - 28999 - 19968: 0xFDC8, - 29001 - 19968: 0xD6A1, - 29002 - 19968: 0xFDBF, - 29004 - 19968: 0xFCD3, - 29006 - 19968: 0xEFA1, - 29008 - 19968: 0xE7BC, - 29014 - 19968: 0xD1EE, - 29017 - 19968: 0xE6D5, - 29020 - 19968: 0xE9F2, - 29022 - 19968: 0xDFB0, - 29028 - 19968: 0xD8E0, - 29029 - 19968: 0xFCBA, - 29030 - 19968: 0xFDAF, - 29031 - 19968: 0xF0CE, - 29033 - 19968: 0xDBE1, - 29036 - 19968: 0xE5C9, - 29038 - 19968: 0xEDB4, - 29053 - 19968: 0xE0C3, - 29060 - 19968: 0xE3D8, - 29065 - 19968: 0xE9FB, - 29066 - 19968: 0xEAA8, - 29071 - 19968: 0xFDB7, - 29074 - 19968: 0xFBA7, - 29076 - 19968: 0xE9C2, - 29081 - 19968: 0xFDF7, - 29087 - 19968: 0xE2D9, - 29090 - 19968: 0xDCEC, - 29100 - 19968: 0xE8A2, - 29105 - 19968: 0xE6F0, - 29113 - 19968: 0xFDF8, - 29114 - 19968: 0xFDF9, - 29118 - 19968: 0xF6BF, - 29121 - 19968: 0xE7A7, - 29123 - 19968: 0xE6D7, - 29128 - 19968: 0xD4F3, - 29129 - 19968: 0xD4C9, - 29134 - 19968: 0xD6FA, - 29136 - 19968: 0xD7F2, - 29138 - 19968: 0xE1C0, - 29140 - 19968: 0xDBE2, - 29141 - 19968: 0xE6D8, - 29151 - 19968: 0xE7BD, - 29157 - 19968: 0xF0CF, - 29158 - 19968: 0xF3BE, - 29159 - 19968: 0xE2AC, - 29165 - 19968: 0xF5B7, - 29166 - 19968: 0xE0F0, - 29179 - 19968: 0xFDB8, - 29180 - 19968: 0xE3E8, - 29182 - 19968: 0xD4A7, - 29183 - 19968: 0xE8FC, - 29184 - 19968: 0xFAD2, - 29190 - 19968: 0xF8EF, - 29200 - 19968: 0xD6D3, - 29211 - 19968: 0xD5B4, - 29226 - 19968: 0xF0D0, - 29228 - 19968: 0xF7F0, - 29229 - 19968: 0xEEB3, - 29232 - 19968: 0xEABA, - 29234 - 19968: 0xEAD3, - 29237 - 19968: 0xEDC9, - 29238 - 19968: 0xDDAB, - 29242 - 19968: 0xE5AC, - 29243 - 19968: 0xFDA1, - 29245 - 19968: 0xDFD0, - 29246 - 19968: 0xECB3, - 29248 - 19968: 0xDFD1, - 29254 - 19968: 0xEDED, - 29255 - 19968: 0xF8B8, - 29256 - 19968: 0xF7FA, - 29260 - 19968: 0xF8AB, - 29266 - 19968: 0xF4E0, - 29272 - 19968: 0xD4BA, - 29273 - 19968: 0xE4B3, - 29275 - 19968: 0xE9DA, - 29277 - 19968: 0xDEB6, - 29279 - 19968: 0xD9BF, - 29281 - 19968: 0xD9C0, - 29282 - 19968: 0xD6EF, - 29287 - 19968: 0xD9CC, - 29289 - 19968: 0xDAAA, - 29298 - 19968: 0xDFE5, - 29305 - 19968: 0xF7E5, - 29309 - 19968: 0xCCB2, - 29312 - 19968: 0xDFF9, - 29313 - 19968: 0xD7E0, - 29346 - 19968: 0xD4BB, - 29351 - 19968: 0xFDFA, - 29356 - 19968: 0xCCB3, - 29359 - 19968: 0xDBF3, - 29376 - 19968: 0xDFD2, - 29378 - 19968: 0xCECA, - 29380 - 19968: 0xEEDA, - 29390 - 19968: 0xE4E4, - 29392 - 19968: 0xFBCF, - 29399 - 19968: 0xCFB7, - 29401 - 19968: 0xEEC3, - 29409 - 19968: 0xCEEA, - 29417 - 19968: 0xE2AD, - 29432 - 19968: 0xD7E1, - 29433 - 19968: 0xFAF5, - 29436 - 19968: 0xD5C9, - 29437 - 19968: 0xF8AC, - 29450 - 19968: 0xE7D9, - 29462 - 19968: 0xF3E9, - 29467 - 19968: 0xD8ED, - 29468 - 19968: 0xE3C4, - 29469 - 19968: 0xF0F1, - 29477 - 19968: 0xE8E5, - 29481 - 19968: 0xE0FA, - 29482 - 19968: 0xEEC4, - 29483 - 19968: 0xD9DE, - 29494 - 19968: 0xEBA2, - 29495 - 19968: 0xEBA3, - 29502 - 19968: 0xFCC2, - 29503 - 19968: 0xEABB, - 29508 - 19968: 0xE8AB, - 29509 - 19968: 0xDEE2, - 29520 - 19968: 0xEDEF, - 29522 - 19968: 0xE8A3, - 29527 - 19968: 0xCFF1, - 29544 - 19968: 0xD4BC, - 29546 - 19968: 0xFCEA, - 29552 - 19968: 0xE7BE, - 29554 - 19968: 0xFCF2, - 29557 - 19968: 0xD6B4, - 29560 - 19968: 0xE2AE, - 29562 - 19968: 0xD3B7, - 29563 - 19968: 0xFACC, - 29572 - 19968: 0xFADC, - 29574 - 19968: 0xEDB5, - 29575 - 19968: 0xE1E3, - 29577 - 19968: 0xE8AC, - 29579 - 19968: 0xE8DD, - 29582 - 19968: 0xEFE9, - 29588 - 19968: 0xF4BD, - 29590 - 19968: 0xCFB8, - 29591 - 19968: 0xE9DB, - 29592 - 19968: 0xD1AC, - 29599 - 19968: 0xDAC7, - 29607 - 19968: 0xEBC9, - 29609 - 19968: 0xE8CC, - 29613 - 19968: 0xDEB7, - 29618 - 19968: 0xD6BC, - 29619 - 19968: 0xD3E5, - 29625 - 19968: 0xFADD, - 29632 - 19968: 0xDAD6, - 29634 - 19968: 0xCAB1, - 29641 - 19968: 0xDAC8, - 29642 - 19968: 0xDFA6, - 29644 - 19968: 0xF9B3, - 29645 - 19968: 0xF2D2, - 29647 - 19968: 0xCAC4, - 29654 - 19968: 0xCECB, - 29657 - 19968: 0xCDF5, - 29661 - 19968: 0xFDB0, - 29662 - 19968: 0xD5A8, - 29664 - 19968: 0xF1C1, - 29667 - 19968: 0xE2E9, - 29668 - 19968: 0xDCCA, - 29669 - 19968: 0xECB4, - 29670 - 19968: 0xFAC0, - 29673 - 19968: 0xFBA8, - 29674 - 19968: 0xD0A8, - 29677 - 19968: 0xDAEC, - 29687 - 19968: 0xD9EE, - 29689 - 19968: 0xE0FB, - 29693 - 19968: 0xEFEA, - 29694 - 19968: 0xFADE, - 29697 - 19968: 0xE0C4, - 29699 - 19968: 0xCFB9, - 29701 - 19968: 0xD5CA, - 29702 - 19968: 0xD7E2, - 29703 - 19968: 0xE2AF, - 29705 - 19968: 0xD7B8, - 29715 - 19968: 0xE8CD, - 29723 - 19968: 0xF6DA, - 29728 - 19968: 0xEFA2, - 29729 - 19968: 0xE2DA, - 29730 - 19968: 0xF6FC, - 29733 - 19968: 0xFBD0, - 29734 - 19968: 0xD1AD, - 29736 - 19968: 0xCDE4, - 29738 - 19968: 0xD1AE, - 29739 - 19968: 0xDCED, - 29740 - 19968: 0xE8CE, - 29742 - 19968: 0xF0F9, - 29743 - 19968: 0xCEB5, - 29744 - 19968: 0xE6FC, - 29747 - 19968: 0xD7FB, - 29748 - 19968: 0xD0D6, - 29749 - 19968: 0xDDF5, - 29750 - 19968: 0xF7F1, - 29752 - 19968: 0xF6FD, - 29754 - 19968: 0xDBF7, - 29759 - 19968: 0xFBEA, - 29760 - 19968: 0xE9DC, - 29761 - 19968: 0xD9C1, - 29763 - 19968: 0xF5F2, - 29764 - 19968: 0xE0C5, - 29771 - 19968: 0xEAD4, - 29781 - 19968: 0xF9C2, - 29783 - 19968: 0xEABC, - 29785 - 19968: 0xD2C5, - 29786 - 19968: 0xFBD1, - 29787 - 19968: 0xE7C0, - 29788 - 19968: 0xEBA5, - 29790 - 19968: 0xDFFA, - 29791 - 19968: 0xE3A2, - 29792 - 19968: 0xD7B9, - 29794 - 19968: 0xE9C3, - 29796 - 19968: 0xE8FD, - 29797 - 19968: 0xE8AF, - 29800 - 19968: 0xF2D3, - 29801 - 19968: 0xFBA9, - 29802 - 19968: 0xD8A5, - 29807 - 19968: 0xD5CB, - 29822 - 19968: 0xD0C8, - 29826 - 19968: 0xD1AF, - 29827 - 19968: 0xD7E3, - 29831 - 19968: 0xE0C6, - 29833 - 19968: 0xD6A2, - 29835 - 19968: 0xEDF0, - 29848 - 19968: 0xD7F3, - 29852 - 19968: 0xFCD4, - 29854 - 19968: 0xDAD7, - 29855 - 19968: 0xCCDF, - 29857 - 19968: 0xF2D4, - 29859 - 19968: 0xD1B0, - 29861 - 19968: 0xCCE0, - 29863 - 19968: 0xDBFD, - 29864 - 19968: 0xF3BF, - 29866 - 19968: 0xF0D1, - 29872 - 19968: 0xFCBB, - 29874 - 19968: 0xE2B0, - 29877 - 19968: 0xE6A5, - 29881 - 19968: 0xE2DB, - 29885 - 19968: 0xDFDE, - 29887 - 19968: 0xE0C7, - 29894 - 19968: 0xF2EF, - 29898 - 19968: 0xCCE1, - 29903 - 19968: 0xD6EA, - 29908 - 19968: 0xE7C2, - 29912 - 19968: 0xCEB6, - 29914 - 19968: 0xF3C0, - 29916 - 19968: 0xCDFE, - 29920 - 19968: 0xFBD2, - 29922 - 19968: 0xF8F8, - 29923 - 19968: 0xF7FB, - 29926 - 19968: 0xE8BF, - 29934 - 19968: 0xE8B7, - 29943 - 19968: 0xEDB6, - 29953 - 19968: 0xDCBA, - 29956 - 19968: 0xCCB4, - 29969 - 19968: 0xF1F7, - 29973 - 19968: 0xE8B8, - 29976 - 19968: 0xCAF6, - 29978 - 19968: 0xE4A4, - 29979 - 19968: 0xF4D6, - 29983 - 19968: 0xDFE6, - 29987 - 19968: 0xDFA7, - 29989 - 19968: 0xDFE7, - 29990 - 19968: 0xE1C1, - 29992 - 19968: 0xE9C4, - 29995 - 19968: 0xDCCB, - 29996 - 19968: 0xE9C5, - 30000 - 19968: 0xEFA3, - 30001 - 19968: 0xEBA6, - 30002 - 19968: 0xCBA3, - 30003 - 19968: 0xE3E9, - 30007 - 19968: 0xD1FB, - 30008 - 19968: 0xEFA4, - 30010 - 19968: 0xEFEB, - 30023 - 19968: 0xD0B4, - 30028 - 19968: 0xCDA3, - 30031 - 19968: 0xE8E6, - 30033 - 19968: 0xEFA5, - 30035 - 19968: 0xD3CC, - 30036 - 19968: 0xDAED, - 30041 - 19968: 0xD7BA, - 30043 - 19968: 0xF2D5, - 30044 - 19968: 0xF5E5, - 30045 - 19968: 0xD9EF, - 30050 - 19968: 0xF9B4, - 30053 - 19968: 0xD5D4, - 30054 - 19968: 0xFDCF, - 30058 - 19968: 0xDBE3, - 30063 - 19968: 0xF1E1, - 30064 - 19968: 0xECB6, - 30069 - 19968: 0xFBFE, - 30070 - 19968: 0xD3D7, - 30072 - 19968: 0xD1B1, - 30074 - 19968: 0xCBB1, - 30079 - 19968: 0xD1B2, - 30086 - 19968: 0xCBB2, - 30087 - 19968: 0xF1C2, - 30090 - 19968: 0xF4E1, - 30091 - 19968: 0xF9B5, - 30094 - 19968: 0xE1C3, - 30095 - 19968: 0xE1C2, - 30097 - 19968: 0xEBF7, - 30109 - 19968: 0xDFA8, - 30117 - 19968: 0xCBCA, - 30123 - 19968: 0xE6B9, - 30129 - 19968: 0xF8DE, - 30130 - 19968: 0xF9AA, - 30131 - 19968: 0xCAF7, - 30133 - 19968: 0xEDB7, - 30136 - 19968: 0xD3B8, - 30137 - 19968: 0xF2D6, - 30140 - 19968: 0xD4D9, - 30141 - 19968: 0xEEC5, - 30142 - 19968: 0xF2F0, - 30146 - 19968: 0xCAB2, - 30149 - 19968: 0xDCBB, - 30151 - 19968: 0xF1F8, - 30157 - 19968: 0xECB7, - 30162 - 19968: 0xE5CA, - 30164 - 19968: 0xF6C0, - 30165 - 19968: 0xFDDD, - 30168 - 19968: 0xD4E3, - 30169 - 19968: 0xCCE2, - 30171 - 19968: 0xF7D4, - 30178 - 19968: 0xD7E5, - 30192 - 19968: 0xD3C3, - 30194 - 19968: 0xD8A6, - 30196 - 19968: 0xF6C1, - 30202 - 19968: 0xDDF6, - 30204 - 19968: 0xCDC0, - 30208 - 19968: 0xE5DC, - 30221 - 19968: 0xE5CB, - 30233 - 19968: 0xE1C4, - 30239 - 19968: 0xE8B0, - 30240 - 19968: 0xF4B0, - 30241 - 19968: 0xF3EA, - 30242 - 19968: 0xDAEE, - 30244 - 19968: 0xD7BB, - 30246 - 19968: 0xE2B1, - 30267 - 19968: 0xD7AA, - 30274 - 19968: 0xD6FB, - 30284 - 19968: 0xE4DF, - 30286 - 19968: 0xCAD6, - 30290 - 19968: 0xEBA8, - 30294 - 19968: 0xDBFE, - 30305 - 19968: 0xF6C2, - 30308 - 19968: 0xEFBB, - 30313 - 19968: 0xD4FD, - 30316 - 19968: 0xE0C8, - 30320 - 19968: 0xE8B9, - 30322 - 19968: 0xEFA6, - 30328 - 19968: 0xCDA4, - 30331 - 19968: 0xD4F4, - 30332 - 19968: 0xDBA1, - 30333 - 19968: 0xDBDC, - 30334 - 19968: 0xDBDD, - 30340 - 19968: 0xEEDC, - 30342 - 19968: 0xCBCB, - 30343 - 19968: 0xFCD5, - 30350 - 19968: 0xCEEB, - 30352 - 19968: 0xCDC1, - 30355 - 19968: 0xFBD3, - 30382 - 19968: 0xF9AB, - 30394 - 19968: 0xF5D4, - 30399 - 19968: 0xD9A9, - 30402 - 19968: 0xE9DD, - 30403 - 19968: 0xDBCD, - 30406 - 19968: 0xDDCE, - 30408 - 19968: 0xE7C3, - 30410 - 19968: 0xECCC, - 30418 - 19968: 0xF9EC, - 30422 - 19968: 0xCBCC, - 30427 - 19968: 0xE0FC, - 30428 - 19968: 0xD4A8, - 30430 - 19968: 0xEDD3, - 30431 - 19968: 0xD8EF, - 30433 - 19968: 0xF2D7, - 30435 - 19968: 0xCAF8, - 30436 - 19968: 0xDAEF, - 30439 - 19968: 0xD6D4, - 30446 - 19968: 0xD9CD, - 30450 - 19968: 0xD8EE, - 30452 - 19968: 0xF2C1, - 30456 - 19968: 0xDFD3, - 30460 - 19968: 0xDAF0, - 30462 - 19968: 0xE2EA, - 30465 - 19968: 0xE0FD, - 30468 - 19968: 0xD8F8, - 30472 - 19968: 0xF7AF, - 30473 - 19968: 0xDAB6, - 30475 - 19968: 0xCAD7, - 30494 - 19968: 0xF2D8, - 30496 - 19968: 0xD8F9, - 30505 - 19968: 0xFADF, - 30519 - 19968: 0xCFEF, - 30520 - 19968: 0xD9C2, - 30522 - 19968: 0xF0D2, - 30524 - 19968: 0xE4D1, - 30528 - 19968: 0xF3B7, - 30541 - 19968: 0xFAE0, - 30555 - 19968: 0xEFEC, - 30561 - 19968: 0xE2B2, - 30563 - 19968: 0xD4BD, - 30566 - 19968: 0xD9CE, - 30571 - 19968: 0xF4E2, - 30585 - 19968: 0xD4A9, - 30590 - 19968: 0xCDC2, - 30591 - 19968: 0xE7DA, - 30603 - 19968: 0xF2D9, - 30609 - 19968: 0xD9AA, - 30622 - 19968: 0xD8BE, - 30629 - 19968: 0xDCAD, - 30636 - 19968: 0xE2EB, - 30637 - 19968: 0xD6FC, - 30640 - 19968: 0xCAF9, - 30643 - 19968: 0xD4DA, - 30651 - 19968: 0xF4D7, - 30652 - 19968: 0xCCA1, - 30655 - 19968: 0xCFBA, - 30679 - 19968: 0xF5B8, - 30683 - 19968: 0xD9C3, - 30684 - 19968: 0xD0E8, - 30690 - 19968: 0xE3C5, - 30691 - 19968: 0xEBF8, - 30693 - 19968: 0xF2B1, - 30697 - 19968: 0xCFBB, - 30701 - 19968: 0xD3AD, - 30702 - 19968: 0xE8E1, - 30703 - 19968: 0xCEEC, - 30707 - 19968: 0xE0B4, - 30722 - 19968: 0xDEE3, - 30738 - 19968: 0xDDF7, - 30757 - 19968: 0xF2B2, - 30758 - 19968: 0xF3F6, - 30759 - 19968: 0xF6DB, - 30764 - 19968: 0xD7FE, - 30770 - 19968: 0xF8DF, - 30772 - 19968: 0xF7F2, - 30789 - 19968: 0xD0A9, - 30799 - 19968: 0xE6DA, - 30813 - 19968: 0xF5A6, - 30827 - 19968: 0xD7BC, - 30828 - 19968: 0xCCE3, - 30831 - 19968: 0xE6DB, - 30844 - 19968: 0xDDDD, - 30849 - 19968: 0xD1B3, - 30855 - 19968: 0xEFED, - 30860 - 19968: 0xD6DE, - 30861 - 19968: 0xE4F4, - 30862 - 19968: 0xE1EF, - 30865 - 19968: 0xDDF8, - 30871 - 19968: 0xE8CF, - 30883 - 19968: 0xCAE5, - 30887 - 19968: 0xDCA1, - 30889 - 19968: 0xE0B5, - 30906 - 19968: 0xFCAC, - 30907 - 19968: 0xFCAD, - 30908 - 19968: 0xD8A7, - 30913 - 19968: 0xEDB8, - 30917 - 19968: 0xDBB6, - 30922 - 19968: 0xD6F0, - 30923 - 19968: 0xF3AF, - 30926 - 19968: 0xCDA5, - 30928 - 19968: 0xDAF1, - 30952 - 19968: 0xD8A8, - 30956 - 19968: 0xCCE4, - 30959 - 19968: 0xD1B4, - 30965 - 19968: 0xCAD8, - 30971 - 19968: 0xDAF2, - 30977 - 19968: 0xF5A7, - 30990 - 19968: 0xF5A8, - 30998 - 19968: 0xE6A6, - 31018 - 19968: 0xD5EC, - 31019 - 19968: 0xD5F8, - 31020 - 19968: 0xDAF3, - 31034 - 19968: 0xE3C6, - 31038 - 19968: 0xDEE4, - 31040 - 19968: 0xDEE5, - 31041 - 19968: 0xD1B5, - 31047 - 19968: 0xD1B6, - 31048 - 19968: 0xD1B7, - 31049 - 19968: 0xF2B3, - 31056 - 19968: 0xE9DE, - 31062 - 19968: 0xF0D3, - 31063 - 19968: 0xF2B4, - 31066 - 19968: 0xF0D4, - 31067 - 19968: 0xCBE4, - 31068 - 19968: 0xFBD4, - 31069 - 19968: 0xF5E6, - 31070 - 19968: 0xE3EA, - 31072 - 19968: 0xDEE6, - 31077 - 19968: 0xDFD4, - 31080 - 19968: 0xF8F9, - 31085 - 19968: 0xF0AE, - 31098 - 19968: 0xD1B8, - 31103 - 19968: 0xD6DF, - 31105 - 19968: 0xD0D7, - 31117 - 19968: 0xFCA1, - 31118 - 19968: 0xEFEE, - 31119 - 19968: 0xDCD8, - 31121 - 19968: 0xE9DF, - 31142 - 19968: 0xE5DD, - 31143 - 19968: 0xFDFB, - 31146 - 19968: 0xE0C9, - 31150 - 19968: 0xD6C9, - 31153 - 19968: 0xD4AA, - 31155 - 19968: 0xE5CC, - 31161 - 19968: 0xE9E0, - 31165 - 19968: 0xD0D8, - 31166 - 19968: 0xFCA2, - 31167 - 19968: 0xD4BE, - 31168 - 19968: 0xE2B3, - 31169 - 19968: 0xDEE7, - 31177 - 19968: 0xDCBC, - 31178 - 19968: 0xD2B6, - 31179 - 19968: 0xF5D5, - 31185 - 19968: 0xCEA1, - 31186 - 19968: 0xF5A9, - 31189 - 19968: 0xDDF9, - 31192 - 19968: 0xDDFA, - 31199 - 19968: 0xF0D5, - 31204 - 19968: 0xF6DF, - 31206 - 19968: 0xF2DA, - 31207 - 19968: 0xE4EB, - 31209 - 19968: 0xF2F1, - 31227 - 19968: 0xECB9, - 31232 - 19968: 0xFDFC, - 31237 - 19968: 0xE1AA, - 31240 - 19968: 0xCAD9, - 31243 - 19968: 0xEFEF, - 31245 - 19968: 0xF5AA, - 31252 - 19968: 0xECF9, - 31255 - 19968: 0xF8AD, - 31257 - 19968: 0xF2C2, - 31258 - 19968: 0xF6C3, - 31260 - 19968: 0xD7D2, - 31263 - 19968: 0xF9A2, - 31264 - 19968: 0xF0D6, - 31278 - 19968: 0xF0FA, - 31281 - 19968: 0xF6E0, - 31286 - 19968: 0xE9F3, - 31287 - 19968: 0xF2C3, - 31291 - 19968: 0xD4AB, - 31292 - 19968: 0xCAB3, - 31293 - 19968: 0xCDA6, - 31295 - 19968: 0xCDC3, - 31296 - 19968: 0xCDDA, - 31302 - 19968: 0xD9CF, - 31305 - 19968: 0xF6C4, - 31309 - 19968: 0xEEDD, - 31310 - 19968: 0xE7C4, - 31319 - 19968: 0xE2B4, - 31329 - 19968: 0xDFE2, - 31330 - 19968: 0xE7DB, - 31337 - 19968: 0xE8B1, - 31339 - 19968: 0xFCAE, - 31344 - 19968: 0xE5CD, - 31348 - 19968: 0xFAEB, - 31350 - 19968: 0xCFBC, - 31353 - 19968: 0xCFE2, - 31354 - 19968: 0xCDF6, - 31357 - 19968: 0xEFF0, - 31359 - 19968: 0xF4BE, - 31361 - 19968: 0xD4CD, - 31364 - 19968: 0xF3B8, - 31368 - 19968: 0xE9A1, - 31378 - 19968: 0xF2F2, - 31379 - 19968: 0xF3EB, - 31381 - 19968: 0xF0D7, - 31384 - 19968: 0xCFD7, - 31391 - 19968: 0xCFDF, - 31401 - 19968: 0xE8C0, - 31402 - 19968: 0xE8C1, - 31406 - 19968: 0xCFE3, - 31407 - 19968: 0xE9A2, - 31418 - 19968: 0xD0AA, - 31428 - 19968: 0xF3C1, - 31429 - 19968: 0xD0AB, - 31431 - 19968: 0xD4E4, - 31434 - 19968: 0xEFBC, - 31435 - 19968: 0xD8A1, - 31447 - 19968: 0xD9DF, - 31449 - 19968: 0xF3D7, - 31453 - 19968: 0xDCBD, - 31455 - 19968: 0xCCE5, - 31456 - 19968: 0xEDF1, - 31459 - 19968: 0xF1E2, - 31461 - 19968: 0xD4DB, - 31466 - 19968: 0xE2B5, - 31469 - 19968: 0xCAE6, - 31471 - 19968: 0xD3AE, - 31478 - 19968: 0xCCE6, - 31481 - 19968: 0xF1D3, - 31482 - 19968: 0xF5E7, - 31487 - 19968: 0xCADA, - 31503 - 19968: 0xFBEE, - 31505 - 19968: 0xE1C5, - 31513 - 19968: 0xDFE9, - 31515 - 19968: 0xEEDE, - 31518 - 19968: 0xF7C2, - 31520 - 19968: 0xD8A2, - 31526 - 19968: 0xDDAC, - 31532 - 19968: 0xF0AF, - 31533 - 19968: 0xD6BD, - 31545 - 19968: 0xE1AB, - 31558 - 19968: 0xF9B6, - 31561 - 19968: 0xD4F5, - 31563 - 19968: 0xD0C9, - 31564 - 19968: 0xEFA7, - 31565 - 19968: 0xE2EC, - 31567 - 19968: 0xDBEA, - 31568 - 19968: 0xCECC, - 31569 - 19968: 0xF5E8, - 31570 - 19968: 0xF7D5, - 31572 - 19968: 0xD3CD, - 31574 - 19968: 0xF3FE, - 31584 - 19968: 0xD0B5, - 31596 - 19968: 0xE0FE, - 31598 - 19968: 0xDFFB, - 31605 - 19968: 0xE6DD, - 31613 - 19968: 0xE8A4, - 31623 - 19968: 0xCBCD, - 31627 - 19968: 0xEFA8, - 31631 - 19968: 0xEEB4, - 31636 - 19968: 0xDAD8, - 31637 - 19968: 0xD1B9, - 31639 - 19968: 0xDFA9, - 31642 - 19968: 0xF3B0, - 31645 - 19968: 0xCCC4, - 31649 - 19968: 0xCEB7, - 31661 - 19968: 0xEFA9, - 31665 - 19968: 0xDFD5, - 31668 - 19968: 0xEDD7, - 31672 - 19968: 0xEEC6, - 31680 - 19968: 0xEFBD, - 31681 - 19968: 0xFCD6, - 31684 - 19968: 0xDBF4, - 31686 - 19968: 0xEFAA, - 31687 - 19968: 0xF8B9, - 31689 - 19968: 0xF5E9, - 31698 - 19968: 0xE3D9, - 31712 - 19968: 0xE1C6, - 31716 - 19968: 0xD4BF, - 31721 - 19968: 0xDEE8, - 31751 - 19968: 0xF0EA, - 31762 - 19968: 0xF3C2, - 31774 - 19968: 0xD3AF, - 31777 - 19968: 0xCADB, - 31783 - 19968: 0xFCD7, - 31786 - 19968: 0xEDD8, - 31787 - 19968: 0xE1C7, - 31805 - 19968: 0xF4D8, - 31806 - 19968: 0xD6B3, - 31807 - 19968: 0xDDAD, - 31811 - 19968: 0xD5BE, - 31820 - 19968: 0xF1C3, - 31821 - 19968: 0xEEDF, - 31840 - 19968: 0xD6EB, - 31844 - 19968: 0xF4D9, - 31852 - 19968: 0xD7E6, - 31859 - 19968: 0xDAB7, - 31875 - 19968: 0xDDFB, - 31881 - 19968: 0xDDCF, - 31890 - 19968: 0xD8A3, - 31893 - 19968: 0xDAD9, - 31895 - 19968: 0xF0D8, - 31896 - 19968: 0xEFC4, - 31903 - 19968: 0xE1D8, - 31909 - 19968: 0xF1D4, - 31911 - 19968: 0xEDF2, - 31918 - 19968: 0xD5DB, - 31921 - 19968: 0xD5DC, - 31922 - 19968: 0xF3C4, - 31923 - 19968: 0xCBD7, - 31929 - 19968: 0xE2B6, - 31934 - 19968: 0xEFF1, - 31946 - 19968: 0xFBD5, - 31958 - 19968: 0xD3D8, - 31966 - 19968: 0xDDD0, - 31967 - 19968: 0xF0D9, - 31968 - 19968: 0xCBB3, - 31975 - 19968: 0xD5DD, - 31995 - 19968: 0xCDA7, - 31998 - 19968: 0xD0AC, - 32000 - 19968: 0xD1BA, - 32002 - 19968: 0xF1C4, - 32004 - 19968: 0xE5B3, - 32005 - 19968: 0xFBF5, - 32006 - 19968: 0xE9E1, - 32007 - 19968: 0xFDE0, - 32008 - 19968: 0xFCBC, - 32010 - 19968: 0xDAA2, - 32011 - 19968: 0xDAA3, - 32013 - 19968: 0xD2A1, - 32016 - 19968: 0xD2EF, - 32020 - 19968: 0xE2ED, - 32023 - 19968: 0xDEE9, - 32024 - 19968: 0xCEDC, - 32025 - 19968: 0xF2B5, - 32026 - 19968: 0xD0E4, - 32027 - 19968: 0xDDD1, - 32032 - 19968: 0xE1C8, - 32033 - 19968: 0xDBB7, - 32034 - 19968: 0xDFE3, - 32043 - 19968: 0xEDB9, - 32044 - 19968: 0xF1C5, - 32046 - 19968: 0xF3CF, - 32047 - 19968: 0xD7AB, - 32048 - 19968: 0xE1AC, - 32051 - 19968: 0xE3EB, - 32053 - 19968: 0xEEC7, - 32057 - 19968: 0xE1C9, - 32058 - 19968: 0xCAFA, - 32066 - 19968: 0xF0FB, - 32067 - 19968: 0xFAE1, - 32068 - 19968: 0xF0DA, - 32069 - 19968: 0xCCE7, - 32070 - 19968: 0xDAF4, - 32080 - 19968: 0xCCBF, - 32094 - 19968: 0xCEED, - 32097 - 19968: 0xD5A9, - 32098 - 19968: 0xFAE2, - 32102 - 19968: 0xD0E5, - 32104 - 19968: 0xEBD6, - 32106 - 19968: 0xECDF, - 32110 - 19968: 0xDFFC, - 32113 - 19968: 0xF7D6, - 32114 - 19968: 0xDEEA, - 32115 - 19968: 0xCBB4, - 32118 - 19968: 0xEFBE, - 32121 - 19968: 0xCCB5, - 32127 - 19968: 0xCFBD, - 32142 - 19968: 0xEFF2, - 32143 - 19968: 0xE2B7, - 32147 - 19968: 0xCCE8, - 32156 - 19968: 0xF0FC, - 32160 - 19968: 0xD6E0, - 32162 - 19968: 0xF1C6, - 32172 - 19968: 0xE2B8, - 32173 - 19968: 0xEBAB, - 32177 - 19968: 0xCBB5, - 32178 - 19968: 0xD8D1, - 32180 - 19968: 0xF4CE, - 32181 - 19968: 0xF3F7, - 32184 - 19968: 0xD7C6, - 32186 - 19968: 0xD1BB, - 32187 - 19968: 0xF7AA, - 32189 - 19968: 0xEDCA, - 32190 - 19968: 0xD7D3, - 32191 - 19968: 0xD8FA, - 32199 - 19968: 0xF6C5, - 32202 - 19968: 0xD1CC, - 32203 - 19968: 0xDDFC, - 32214 - 19968: 0xDFFD, - 32216 - 19968: 0xF9E5, - 32218 - 19968: 0xE0CA, - 32221 - 19968: 0xF2FD, - 32222 - 19968: 0xD3B0, - 32224 - 19968: 0xF4F3, - 32225 - 19968: 0xDAC9, - 32227 - 19968: 0xE6DE, - 32232 - 19968: 0xF8BA, - 32233 - 19968: 0xE8D0, - 32236 - 19968: 0xD8FB, - 32239 - 19968: 0xEAD5, - 32244 - 19968: 0xD6A3, - 32251 - 19968: 0xF6C6, - 32265 - 19968: 0xF2DB, - 32266 - 19968: 0xE4FC, - 32277 - 19968: 0xE8B2, - 32283 - 19968: 0xDADA, - 32285 - 19968: 0xF2DC, - 32286 - 19968: 0xFBD6, - 32287 - 19968: 0xE9B2, - 32289 - 19968: 0xEEAD, - 32291 - 19968: 0xFAE3, - 32299 - 19968: 0xDCEE, - 32302 - 19968: 0xF5EA, - 32303 - 19968: 0xE6E0, - 32305 - 19968: 0xF0FD, - 32311 - 19968: 0xD7AC, - 32317 - 19968: 0xF5C5, - 32318 - 19968: 0xEEE0, - 32321 - 19968: 0xDBE5, - 32323 - 19968: 0xDDDE, - 32326 - 19968: 0xD9F0, - 32327 - 19968: 0xE9A3, - 32338 - 19968: 0xF1F9, - 32340 - 19968: 0xF2C4, - 32341 - 19968: 0xE0CB, - 32350 - 19968: 0xE9A4, - 32353 - 19968: 0xE2B9, - 32361 - 19968: 0xE3B1, - 32362 - 19968: 0xFCEB, - 32363 - 19968: 0xCDA8, - 32365 - 19968: 0xCCB6, - 32368 - 19968: 0xF0DB, - 32377 - 19968: 0xE6BA, - 32380 - 19968: 0xCDA9, - 32386 - 19968: 0xF3C3, - 32396 - 19968: 0xE1D9, - 32399 - 19968: 0xEFAB, - 32403 - 19968: 0xE7C5, - 32406 - 19968: 0xE0E9, - 32408 - 19968: 0xF3C5, - 32411 - 19968: 0xD4C0, - 32412 - 19968: 0xD5BF, - 32566 - 19968: 0xDDAE, - 32568 - 19968: 0xF9FC, - 32570 - 19968: 0xCCC0, - 32588 - 19968: 0xE5A2, - 32592 - 19968: 0xCEB8, - 32596 - 19968: 0xD8D2, - 32597 - 19968: 0xF9D6, - 32618 - 19968: 0xF1AA, - 32619 - 19968: 0xCED1, - 32622 - 19968: 0xF6C7, - 32624 - 19968: 0xDBEB, - 32626 - 19968: 0xDFFE, - 32629 - 19968: 0xD8E1, - 32631 - 19968: 0xF7F3, - 32633 - 19968: 0xD7E7, - 32645 - 19968: 0xD4FE, - 32648 - 19968: 0xD1BC, - 32650 - 19968: 0xE5CF, - 32652 - 19968: 0xCBB6, - 32654 - 19968: 0xDAB8, - 32660 - 19968: 0xCDC4, - 32666 - 19968: 0xD6BE, - 32670 - 19968: 0xE2BA, - 32676 - 19968: 0xCFD8, - 32680 - 19968: 0xE0CC, - 32681 - 19968: 0xEBF9, - 32690 - 19968: 0xFDFD, - 32696 - 19968: 0xD7E8, - 32697 - 19968: 0xCBD8, - 32701 - 19968: 0xE9E2, - 32705 - 19968: 0xE8BA, - 32709 - 19968: 0xE3C7, - 32714 - 19968: 0xECCD, - 32716 - 19968: 0xECCE, - 32718 - 19968: 0xD6BF, - 32722 - 19968: 0xE3A7, - 32724 - 19968: 0xDFD6, - 32725 - 19968: 0xFDE8, - 32735 - 19968: 0xEEE1, - 32736 - 19968: 0xF6A8, - 32737 - 19968: 0xDDFD, - 32745 - 19968: 0xF8BB, - 32747 - 19968: 0xE8D1, - 32752 - 19968: 0xF9D7, - 32761 - 19968: 0xCEEE, - 32764 - 19968: 0xECCF, - 32768 - 19968: 0xE9A5, - 32769 - 19968: 0xD6D5, - 32771 - 19968: 0xCDC5, - 32773 - 19968: 0xEDBA, - 32774 - 19968: 0xD1BD, - 32777 - 19968: 0xCFBE, - 32780 - 19968: 0xECBB, - 32784 - 19968: 0xD2B1, - 32789 - 19968: 0xCCE9, - 32791 - 19968: 0xD9C4, - 32792 - 19968: 0xE9FC, - 32813 - 19968: 0xD1BE, - 32819 - 19968: 0xECBC, - 32822 - 19968: 0xE5AD, - 32829 - 19968: 0xF7B0, - 32831 - 19968: 0xCCEA, - 32835 - 19968: 0xD3C4, - 32838 - 19968: 0xD6C0, - 32842 - 19968: 0xD6FD, - 32854 - 19968: 0xE1A1, - 32856 - 19968: 0xDEBD, - 32858 - 19968: 0xF6A9, - 32862 - 19968: 0xDAA4, - 32879 - 19968: 0xD6A4, - 32880 - 19968: 0xF5C6, - 32882 - 19968: 0xE1A2, - 32883 - 19968: 0xE9C6, - 32887 - 19968: 0xF2C5, - 32893 - 19968: 0xF4E9, - 32894 - 19968: 0xD6EC, - 32895 - 19968: 0xEBD3, - 32900 - 19968: 0xECBD, - 32901 - 19968: 0xE2DC, - 32902 - 19968: 0xDEEB, - 32903 - 19968: 0xF0DC, - 32905 - 19968: 0xEBBF, - 32907 - 19968: 0xD7CE, - 32908 - 19968: 0xD1BF, - 32918 - 19968: 0xF5AB, - 32923 - 19968: 0xF9FD, - 32925 - 19968: 0xCADC, - 32929 - 19968: 0xCDC6, - 32930 - 19968: 0xF2B6, - 32933 - 19968: 0xDDFE, - 32937 - 19968: 0xCCB7, - 32938 - 19968: 0xDBB8, - 32943 - 19968: 0xD0E9, - 32945 - 19968: 0xCEDD, - 32946 - 19968: 0xEBC0, - 32948 - 19968: 0xFDA2, - 32954 - 19968: 0xF8CB, - 32963 - 19968: 0xEAD6, - 32964 - 19968: 0xF1B0, - 32972 - 19968: 0xDBCE, - 32974 - 19968: 0xF7C3, - 32986 - 19968: 0xDBCF, - 32987 - 19968: 0xCBA4, - 32990 - 19968: 0xF8E0, - 32993 - 19968: 0xFBD7, - 32996 - 19968: 0xEBCA, - 32997 - 19968: 0xE0A1, - 33009 - 19968: 0xCECD, - 33012 - 19968: 0xD4DC, - 33016 - 19968: 0xFDD8, - 33021 - 19968: 0xD2F6, - 33026 - 19968: 0xF2B7, - 33029 - 19968: 0xFAF6, - 33030 - 19968: 0xF6AA, - 33031 - 19968: 0xFAF7, - 33032 - 19968: 0xD8E6, - 33034 - 19968: 0xF4B1, - 33048 - 19968: 0xE8D2, - 33050 - 19968: 0xCAC5, - 33051 - 19968: 0xCCEB, - 33059 - 19968: 0xE2EE, - 33065 - 19968: 0xE2BB, - 33067 - 19968: 0xF7AD, - 33071 - 19968: 0xF8E1, - 33081 - 19968: 0xF3EC, - 33086 - 19968: 0xDEA1, - 33099 - 19968: 0xE4FD, - 33102 - 19968: 0xE3EC, - 33104 - 19968: 0xDDAF, - 33105 - 19968: 0xDDB0, - 33108 - 19968: 0xCBB7, - 33109 - 19968: 0xE8D3, - 33125 - 19968: 0xE1A3, - 33126 - 19968: 0xD2E0, - 33131 - 19968: 0xF0FE, - 33136 - 19968: 0xE9A6, - 33137 - 19968: 0xCBF2, - 33144 - 19968: 0xEDF3, - 33145 - 19968: 0xDCD9, - 33146 - 19968: 0xE0CD, - 33151 - 19968: 0xF7DA, - 33152 - 19968: 0xDBB9, - 33160 - 19968: 0xCCAE, - 33162 - 19968: 0xDADB, - 33167 - 19968: 0xCDC7, - 33178 - 19968: 0xDDB1, - 33180 - 19968: 0xD8AF, - 33181 - 19968: 0xE3A3, - 33184 - 19968: 0xCEEF, - 33187 - 19968: 0xF2F3, - 33192 - 19968: 0xF8B3, - 33203 - 19968: 0xE0CE, - 33205 - 19968: 0xF5FD, - 33210 - 19968: 0xEBEC, - 33213 - 19968: 0xD3C5, - 33214 - 19968: 0xFCEC, - 33215 - 19968: 0xD2DB, - 33216 - 19968: 0xD4EB, - 33218 - 19968: 0xDEA2, - 33222 - 19968: 0xE5E6, - 33229 - 19968: 0xF0B0, - 33240 - 19968: 0xD5C4, - 33247 - 19968: 0xEDF4, - 33251 - 19968: 0xE3ED, - 33253 - 19968: 0xE8C2, - 33255 - 19968: 0xEDF5, - 33256 - 19968: 0xD7FC, - 33258 - 19968: 0xEDBB, - 33261 - 19968: 0xF6AB, - 33267 - 19968: 0xF2B8, - 33268 - 19968: 0xF6C8, - 33274 - 19968: 0xD3E6, - 33275 - 19968: 0xF2DD, - 33276 - 19968: 0xCFBF, - 33278 - 19968: 0xEBAC, - 33285 - 19968: 0xCFC0, - 33287 - 19968: 0xE6A8, - 33288 - 19968: 0xFDE9, - 33290 - 19968: 0xCFC1, - 33292 - 19968: 0xE0DF, - 33293 - 19968: 0xDEEC, - 33298 - 19968: 0xE0A2, - 33307 - 19968: 0xF4BF, - 33308 - 19968: 0xE2EF, - 33310 - 19968: 0xD9F1, - 33311 - 19968: 0xF1C7, - 33313 - 19968: 0xCBB8, - 33322 - 19968: 0xF9FE, - 33323 - 19968: 0xDBBA, - 33324 - 19968: 0xDAF5, - 33333 - 19968: 0xF6EC, - 33334 - 19968: 0xDADC, - 33335 - 19968: 0xFAE4, - 33337 - 19968: 0xE0CF, - 33344 - 19968: 0xDDB2, - 33349 - 19968: 0xE6A9, - 33351 - 19968: 0xEFF3, - 33369 - 19968: 0xF3ED, - 33380 - 19968: 0xEBFA, - 33382 - 19968: 0xF9E6, - 33390 - 19968: 0xCADD, - 33391 - 19968: 0xD5DE, - 33393 - 19968: 0xCADE, - 33394 - 19968: 0xDFE4, - 33398 - 19968: 0xE6FD, - 33400 - 19968: 0xF5AC, - 33406 - 19968: 0xE4F5, - 33419 - 19968: 0xE9E3, - 33421 - 19968: 0xEDCB, - 33422 - 19968: 0xCFE4, - 33426 - 19968: 0xD8D3, - 33433 - 19968: 0xDDB3, - 33434 - 19968: 0xD4EC, - 33437 - 19968: 0xF2B9, - 33439 - 19968: 0xDFB7, - 33445 - 19968: 0xCBCE, - 33446 - 19968: 0xFBD8, - 33449 - 19968: 0xD0D9, - 33452 - 19968: 0xDDD2, - 33453 - 19968: 0xF7F4, - 33454 - 19968: 0xE7DC, - 33455 - 19968: 0xE4A5, - 33457 - 19968: 0xFCA3, - 33459 - 19968: 0xDBBB, - 33463 - 19968: 0xF2BA, - 33464 - 19968: 0xE9FD, - 33465 - 19968: 0xD0CA, - 33467 - 19968: 0xF5D6, - 33468 - 19968: 0xD9C5, - 33469 - 19968: 0xE4B4, - 33471 - 19968: 0xEDA7, - 33489 - 19968: 0xEABD, - 33490 - 19968: 0xE6FE, - 33492 - 19968: 0xF7C4, - 33493 - 19968: 0xF5AD, - 33495 - 19968: 0xD9E0, - 33499 - 19968: 0xCAB4, - 33502 - 19968: 0xF8E2, - 33503 - 19968: 0xCFC2, - 33505 - 19968: 0xECBE, - 33509 - 19968: 0xE5B4, - 33510 - 19968: 0xCDC8, - 33511 - 19968: 0xEEC8, - 33521 - 19968: 0xE7C8, - 33533 - 19968: 0xCDC9, - 33534 - 19968: 0xF9B7, - 33537 - 19968: 0xF1E8, - 33538 - 19968: 0xD9F2, - 33539 - 19968: 0xDBF5, - 33540 - 19968: 0xCAB5, - 33541 - 19968: 0xD9C6, - 33545 - 19968: 0xD8C9, - 33559 - 19968: 0xD9AB, - 33576 - 19968: 0xEDBC, - 33579 - 19968: 0xD8D4, - 33583 - 19968: 0xDCDA, - 33585 - 19968: 0xE2BC, - 33588 - 19968: 0xFCED, - 33589 - 19968: 0xECE0, - 33590 - 19968: 0xD2FE, - 33592 - 19968: 0xE9C7, - 33593 - 19968: 0xE6AA, - 33600 - 19968: 0xE2F0, - 33607 - 19968: 0xFABB, - 33609 - 19968: 0xF5AE, - 33610 - 19968: 0xFBAA, - 33615 - 19968: 0xECFB, - 33617 - 19968: 0xECBF, - 33618 - 19968: 0xFCD8, - 33651 - 19968: 0xD4E5, - 33655 - 19968: 0xF9C3, - 33659 - 19968: 0xEEE2, - 33673 - 19968: 0xD7E9, - 33674 - 19968: 0xEDF6, - 33678 - 19968: 0xDEED, - 33686 - 19968: 0xCCEC, - 33688 - 19968: 0xE3EE, - 33694 - 19968: 0xE8D4, - 33698 - 19968: 0xFAF8, - 33705 - 19968: 0xDDB4, - 33706 - 19968: 0xE4B5, - 33707 - 19968: 0xD8B0, - 33725 - 19968: 0xD8D5, - 33729 - 19968: 0xF4EA, - 33733 - 19968: 0xCEB9, - 33737 - 19968: 0xD6E1, - 33738 - 19968: 0xCFD2, - 33740 - 19968: 0xD0B6, - 33747 - 19968: 0xCEA2, - 33750 - 19968: 0xF3EE, - 33756 - 19968: 0xF3F8, - 33769 - 19968: 0xDCCC, - 33771 - 19968: 0xD0CB, - 33775 - 19968: 0xFCA4, - 33776 - 19968: 0xCDCA, - 33777 - 19968: 0xD7D4, - 33778 - 19968: 0xDEA3, - 33780 - 19968: 0xE4E0, - 33785 - 19968: 0xEEC9, - 33789 - 19968: 0xE2DD, - 33795 - 19968: 0xF5FE, - 33796 - 19968: 0xD4AC, - 33802 - 19968: 0xD5D1, - 33804 - 19968: 0xD8F0, - 33805 - 19968: 0xF8C3, - 33806 - 19968: 0xEAD7, - 33833 - 19968: 0xF5D7, - 33836 - 19968: 0xD8BF, - 33841 - 19968: 0xFDC0, - 33848 - 19968: 0xEBAD, - 33853 - 19968: 0xD5AA, - 33865 - 19968: 0xE7A8, - 33879 - 19968: 0xEECA, - 33883 - 19968: 0xCAE7, - 33889 - 19968: 0xF8E3, - 33891 - 19968: 0xD4DD, - 33894 - 19968: 0xEAD8, - 33899 - 19968: 0xFBD9, - 33900 - 19968: 0xEDF7, - 33903 - 19968: 0xE5B5, - 33909 - 19968: 0xD0AD, - 33914 - 19968: 0xF1F1, - 33936 - 19968: 0xE2BD, - 33940 - 19968: 0xE3C8, - 33945 - 19968: 0xD9D5, - 33948 - 19968: 0xDFAA, - 33953 - 19968: 0xDBBC, - 33970 - 19968: 0xF8E4, - 33976 - 19968: 0xF1FA, - 33979 - 19968: 0xE5B6, - 33980 - 19968: 0xF3EF, - 33983 - 19968: 0xFBDA, - 33984 - 19968: 0xE1E0, - 33986 - 19968: 0xD9AC, - 33988 - 19968: 0xF5EB, - 33990 - 19968: 0xE0B6, - 33993 - 19968: 0xE9C8, - 33995 - 19968: 0xCBCF, - 33997 - 19968: 0xE3C9, - 34001 - 19968: 0xDEEE, - 34010 - 19968: 0xE2BE, - 34028 - 19968: 0xDCEF, - 34030 - 19968: 0xD6A5, - 34036 - 19968: 0xE2F1, - 34044 - 19968: 0xD6FE, - 34065 - 19968: 0xD9A1, - 34067 - 19968: 0xD8C0, - 34068 - 19968: 0xDCDB, - 34071 - 19968: 0xEDBD, - 34072 - 19968: 0xDFB8, - 34074 - 19968: 0xEAA5, - 34078 - 19968: 0xD7AD, - 34081 - 19968: 0xF3F9, - 34083 - 19968: 0xEDF8, - 34085 - 19968: 0xF5C7, - 34092 - 19968: 0xE1CA, - 34093 - 19968: 0xEBE3, - 34095 - 19968: 0xF2DE, - 34109 - 19968: 0xF8CC, - 34111 - 19968: 0xEAD9, - 34113 - 19968: 0xD3C6, - 34115 - 19968: 0xDBE6, - 34121 - 19968: 0xF5AF, - 34126 - 19968: 0xCEF0, - 34131 - 19968: 0xE9FE, - 34137 - 19968: 0xFBB6, - 34147 - 19968: 0xE2F2, - 34152 - 19968: 0xCFF2, - 34153 - 19968: 0xF7B9, - 34154 - 19968: 0xD9F3, - 34157 - 19968: 0xE1CB, - 34180 - 19968: 0xDADD, - 34183 - 19968: 0xDAB9, - 34191 - 19968: 0xEBFB, - 34193 - 19968: 0xCBB9, - 34196 - 19968: 0xEDF9, - 34203 - 19968: 0xE0E0, - 34214 - 19968: 0xF4C0, - 34216 - 19968: 0xFDBC, - 34217 - 19968: 0xDFB1, - 34218 - 19968: 0xE3EF, - 34223 - 19968: 0xE0A3, - 34224 - 19968: 0xFDB9, - 34234 - 19968: 0xF0B1, - 34241 - 19968: 0xCDCB, - 34249 - 19968: 0xEDBE, - 34253 - 19968: 0xD5C0, - 34254 - 19968: 0xE3F0, - 34255 - 19968: 0xEDFA, - 34261 - 19968: 0xE9E4, - 34268 - 19968: 0xD5ED, - 34269 - 19968: 0xE7DD, - 34276 - 19968: 0xD4F6, - 34277 - 19968: 0xE5B7, - 34281 - 19968: 0xDBE7, - 34282 - 19968: 0xE2BF, - 34295 - 19968: 0xEECB, - 34298 - 19968: 0xD7F4, - 34299 - 19968: 0xF0DD, - 34303 - 19968: 0xCEAB, - 34306 - 19968: 0xE7DE, - 34310 - 19968: 0xD6D6, - 34311 - 19968: 0xE1CC, - 34314 - 19968: 0xE8B3, - 34326 - 19968: 0xE5EE, - 34327 - 19968: 0xDCA2, - 34330 - 19968: 0xE0D0, - 34349 - 19968: 0xD5B5, - 34367 - 19968: 0xD5A1, - 34382 - 19968: 0xFBDB, - 34384 - 19968: 0xF9CB, - 34388 - 19968: 0xCBF3, - 34389 - 19968: 0xF4A5, - 34395 - 19968: 0xFAC8, - 34396 - 19968: 0xD6D7, - 34398 - 19968: 0xE9E5, - 34399 - 19968: 0xFBDC, - 34407 - 19968: 0xFDD0, - 34425 - 19968: 0xFBF6, - 34442 - 19968: 0xDAA5, - 34444 - 19968: 0xDBBD, - 34451 - 19968: 0xECE2, - 34467 - 19968: 0xCDF7, - 34468 - 19968: 0xF0DE, - 34473 - 19968: 0xF6C9, - 34503 - 19968: 0xDEEF, - 34507 - 19968: 0xD3B1, - 34516 - 19968: 0xFCEE, - 34521 - 19968: 0xE8C3, - 34523 - 19968: 0xF1C8, - 34527 - 19968: 0xCEF1, - 34532 - 19968: 0xF9ED, - 34541 - 19968: 0xF2F4, - 34558 - 19968: 0xE4B6, - 34560 - 19968: 0xF5B9, - 34562 - 19968: 0xDCF0, - 34563 - 19968: 0xE3F1, - 34568 - 19968: 0xE8A5, - 34584 - 19968: 0xF2BB, - 34586 - 19968: 0xDEA4, - 34588 - 19968: 0xDACC, - 34638 - 19968: 0xCAE9, - 34645 - 19968: 0xE3DA, - 34647 - 19968: 0xFCD9, - 34655 - 19968: 0xEADA, - 34662 - 19968: 0xF9C4, - 34664 - 19968: 0xE3A4, - 34676 - 19968: 0xFBDD, - 34678 - 19968: 0xEFCA, - 34680 - 19968: 0xE8C4, - 34690 - 19968: 0xD5CC, - 34701 - 19968: 0xEBD7, - 34719 - 19968: 0xD9AD, - 34722 - 19968: 0xFBAB, - 34739 - 19968: 0xD3D9, - 34746 - 19968: 0xD5A2, - 34756 - 19968: 0xF6DE, - 34784 - 19968: 0xDAF6, - 34796 - 19968: 0xE0D1, - 34799 - 19968: 0xE9A8, - 34802 - 19968: 0xF5F9, - 34809 - 19968: 0xFAAF, - 34811 - 19968: 0xEBFC, - 34814 - 19968: 0xE0EA, - 34821 - 19968: 0xE3B2, - 34847 - 19968: 0xD5C5, - 34850 - 19968: 0xF1E3, - 34851 - 19968: 0xD5EE, - 34865 - 19968: 0xCDCC, - 34870 - 19968: 0xEDD9, - 34875 - 19968: 0xD8C1, - 34880 - 19968: 0xFAEC, - 34886 - 19968: 0xF1EB, - 34892 - 19968: 0xFABC, - 34893 - 19968: 0xE6E2, - 34898 - 19968: 0xFAE5, - 34899 - 19968: 0xE2FA, - 34903 - 19968: 0xCAB6, - 34905 - 19968: 0xE4B7, - 34907 - 19968: 0xEADB, - 34909 - 19968: 0xF5FA, - 34913 - 19968: 0xFBAC, - 34914 - 19968: 0xCFC3, - 34915 - 19968: 0xEBFD, - 34920 - 19968: 0xF8FA, - 34923 - 19968: 0xDFB9, - 34928 - 19968: 0xE1F1, - 34930 - 19968: 0xD2A4, - 34935 - 19968: 0xF5FB, - 34942 - 19968: 0xD0DA, - 34943 - 19968: 0xD0DB, - 34945 - 19968: 0xEABE, - 34946 - 19968: 0xD9B1, - 34952 - 19968: 0xCAB7, - 34955 - 19968: 0xD3E7, - 34957 - 19968: 0xF8E5, - 34962 - 19968: 0xD3B2, - 34966 - 19968: 0xE2C0, - 34967 - 19968: 0xF2DF, - 34974 - 19968: 0xCDE5, - 34987 - 19968: 0xF9AC, - 34996 - 19968: 0xCDCD, - 35009 - 19968: 0xEEAE, - 35010 - 19968: 0xD6AE, - 35023 - 19968: 0xD7EA, - 35028 - 19968: 0xE7E0, - 35029 - 19968: 0xEBAE, - 35033 - 19968: 0xCFD9, - 35036 - 19968: 0xDCCD, - 35037 - 19968: 0xEDFB, - 35039 - 19968: 0xDEF0, - 35041 - 19968: 0xD7EB, - 35048 - 19968: 0xDEA5, - 35059 - 19968: 0xDFD7, - 35060 - 19968: 0xDBD0, - 35061 - 19968: 0xDBD1, - 35064 - 19968: 0xD5A3, - 35069 - 19968: 0xF0B2, - 35079 - 19968: 0xDCDC, - 35088 - 19968: 0xCAE8, - 35090 - 19968: 0xF8E6, - 35091 - 19968: 0xDCCE, - 35096 - 19968: 0xEADC, - 35097 - 19968: 0xDBD2, - 35109 - 19968: 0xE9B3, - 35114 - 19968: 0xF7DB, - 35126 - 19968: 0xE3A8, - 35128 - 19968: 0xD7AE, - 35131 - 19968: 0xE0E1, - 35137 - 19968: 0xCBBA, - 35140 - 19968: 0xE5D1, - 35167 - 19968: 0xD0DC, - 35172 - 19968: 0xD5C1, - 35178 - 19968: 0xD8CA, - 35186 - 19968: 0xE3A9, - 35199 - 19968: 0xE0A4, - 35201 - 19968: 0xE9A9, - 35203 - 19968: 0xD3C7, - 35206 - 19968: 0xDCDD, - 35207 - 19968: 0xF8AE, - 35211 - 19968: 0xCCB8, - 35215 - 19968: 0xD0AE, - 35219 - 19968: 0xD8F2, - 35222 - 19968: 0xE3CA, - 35233 - 19968: 0xCCAF, - 35241 - 19968: 0xD4AD, - 35242 - 19968: 0xF6D1, - 35250 - 19968: 0xD0CC, - 35258 - 19968: 0xCAC6, - 35261 - 19968: 0xD5C2, - 35264 - 19968: 0xCEBA, - 35282 - 19968: 0xCAC7, - 35299 - 19968: 0xFAB0, - 35316 - 19968: 0xDFD8, - 35320 - 19968: 0xF5BA, - 35328 - 19968: 0xE5EB, - 35330 - 19968: 0xEFF4, - 35331 - 19968: 0xDDB5, - 35336 - 19968: 0xCDAA, - 35338 - 19968: 0xE3F2, - 35340 - 19968: 0xFBF7, - 35342 - 19968: 0xF7D0, - 35347 - 19968: 0xFDBA, - 35350 - 19968: 0xFDE1, - 35351 - 19968: 0xF6FE, - 35352 - 19968: 0xD1C0, - 35355 - 19968: 0xE8C5, - 35357 - 19968: 0xE4B8, - 35359 - 19968: 0xE1E8, - 35363 - 19968: 0xCCC1, - 35365 - 19968: 0xD2ED, - 35370 - 19968: 0xDBBE, - 35373 - 19968: 0xE0E2, - 35377 - 19968: 0xFAC9, - 35380 - 19968: 0xE1CD, - 35382 - 19968: 0xCAB8, - 35386 - 19968: 0xF2E0, - 35387 - 19968: 0xF1C9, - 35408 - 19968: 0xDEF1, - 35412 - 19968: 0xF0DF, - 35413 - 19968: 0xF8C4, - 35419 - 19968: 0xEECC, - 35422 - 19968: 0xDEF2, - 35424 - 19968: 0xE7C9, - 35426 - 19968: 0xE2F3, - 35427 - 19968: 0xE7E1, - 35430 - 19968: 0xE3CB, - 35433 - 19968: 0xE3CC, - 35437 - 19968: 0xCFF8, - 35438 - 19968: 0xEFAC, - 35440 - 19968: 0xFDFE, - 35441 - 19968: 0xFCA5, - 35442 - 19968: 0xFAB1, - 35443 - 19968: 0xDFD9, - 35445 - 19968: 0xE0D2, - 35449 - 19968: 0xF4DA, - 35461 - 19968: 0xF1CA, - 35463 - 19968: 0xCEA3, - 35468 - 19968: 0xF2BC, - 35469 - 19968: 0xECE3, - 35475 - 19968: 0xE0A5, - 35477 - 19968: 0xF7AB, - 35480 - 19968: 0xEBAF, - 35486 - 19968: 0xE5DE, - 35488 - 19968: 0xE1A4, - 35489 - 19968: 0xCDAB, - 35491 - 19968: 0xD9F4, - 35492 - 19968: 0xE8A6, - 35493 - 19968: 0xCDCE, - 35494 - 19968: 0xE1E9, - 35496 - 19968: 0xFCEF, - 35498 - 19968: 0xE0E3, - 35504 - 19968: 0xE2C1, - 35506 - 19968: 0xCEA4, - 35513 - 19968: 0xDEA6, - 35516 - 19968: 0xEBFE, - 35518 - 19968: 0xEBDD, - 35519 - 19968: 0xF0E0, - 35522 - 19968: 0xF4DB, - 35524 - 19968: 0xE2F4, - 35527 - 19968: 0xD3C8, - 35531 - 19968: 0xF4EB, - 35533 - 19968: 0xEEB5, - 35535 - 19968: 0xF5D8, - 35538 - 19968: 0xD5DF, - 35542 - 19968: 0xD6E5, - 35547 - 19968: 0xEBB0, - 35548 - 19968: 0xF4E3, - 35553 - 19968: 0xE3CD, - 35558 - 19968: 0xF4F4, - 35559 - 19968: 0xFAB2, - 35562 - 19968: 0xEFF5, - 35563 - 19968: 0xCADF, - 35565 - 19968: 0xEBB1, - 35566 - 19968: 0xEDBF, - 35569 - 19968: 0xFDC9, - 35574 - 19968: 0xE4A6, - 35575 - 19968: 0xF9A4, - 35576 - 19968: 0xF0B3, - 35578 - 19968: 0xE5EC, - 35582 - 19968: 0xD1E7, - 35584 - 19968: 0xD9C7, - 35585 - 19968: 0xE4D7, - 35586 - 19968: 0xEADD, - 35588 - 19968: 0xD4F7, - 35598 - 19968: 0xDABA, - 35600 - 19968: 0xDACD, - 35604 - 19968: 0xF9CC, - 35606 - 19968: 0xE1DA, - 35607 - 19968: 0xDBBF, - 35609 - 19968: 0xCCC5, - 35610 - 19968: 0xECD0, - 35611 - 19968: 0xCBBB, - 35613 - 19968: 0xDEF3, - 35616 - 19968: 0xE9AA, - 35624 - 19968: 0xD9C8, - 35627 - 19968: 0xEEE3, - 35628 - 19968: 0xD7BD, - 35635 - 19968: 0xCFC4, - 35641 - 19968: 0xD0CD, - 35649 - 19968: 0xFCA6, - 35657 - 19968: 0xF1FB, - 35662 - 19968: 0xFDD2, - 35663 - 19968: 0xD1C1, - 35672 - 19968: 0xE3DB, - 35674 - 19968: 0xD3C9, - 35676 - 19968: 0xDCCF, - 35686 - 19968: 0xCCED, - 35692 - 19968: 0xDEA7, - 35695 - 19968: 0xE6BB, - 35696 - 19968: 0xECA1, - 35700 - 19968: 0xCCB9, - 35703 - 19968: 0xFBDE, - 35709 - 19968: 0xE7E2, - 35712 - 19968: 0xD4C1, - 35722 - 19968: 0xDCA8, - 35728 - 19968: 0xE2C2, - 35730 - 19968: 0xF3D8, - 35731 - 19968: 0xE5D3, - 35734 - 19968: 0xF3D9, - 35738 - 19968: 0xF3C6, - 35895 - 19968: 0xCDDB, - 35903 - 19968: 0xCDAC, - 35905 - 19968: 0xFCC3, - 35910 - 19968: 0xD4E7, - 35912 - 19968: 0xD1C2, - 35914 - 19968: 0xF9A5, - 35916 - 19968: 0xE8D5, - 35925 - 19968: 0xE3CE, - 35930 - 19968: 0xD4CA, - 35937 - 19968: 0xDFDA, - 35946 - 19968: 0xFBDF, - 35947 - 19968: 0xE7E3, - 35961 - 19968: 0xF8FB, - 35962 - 19968: 0xE3CF, - 35970 - 19968: 0xF5B0, - 35978 - 19968: 0xD8E7, - 35980 - 19968: 0xD9C9, - 35997 - 19968: 0xF8AF, - 35998 - 19968: 0xEFF6, - 36000 - 19968: 0xDDB6, - 36001 - 19968: 0xEEAF, - 36002 - 19968: 0xCDF8, - 36007 - 19968: 0xDEB8, - 36008 - 19968: 0xFCA7, - 36009 - 19968: 0xF7FC, - 36010 - 19968: 0xF7B1, - 36011 - 19968: 0xCEBB, - 36012 - 19968: 0xF4A1, - 36015 - 19968: 0xEECD, - 36016 - 19968: 0xE1AE, - 36019 - 19968: 0xECC3, - 36020 - 19968: 0xCFFE, - 36022 - 19968: 0xF8BF, - 36023 - 19968: 0xD8E2, - 36024 - 19968: 0xD3E8, - 36027 - 19968: 0xDEA8, - 36028 - 19968: 0xF4E4, - 36029 - 19968: 0xECC2, - 36031 - 19968: 0xD9F5, - 36032 - 19968: 0xF9C5, - 36033 - 19968: 0xDDD3, - 36034 - 19968: 0xD6F1, - 36035 - 19968: 0xECFC, - 36036 - 19968: 0xFCF0, - 36039 - 19968: 0xEDC0, - 36040 - 19968: 0xCAB9, - 36042 - 19968: 0xEEE4, - 36049 - 19968: 0xF2E1, - 36051 - 19968: 0xDEB9, - 36058 - 19968: 0xD6F2, - 36060 - 19968: 0xDEF4, - 36062 - 19968: 0xDFDB, - 36064 - 19968: 0xDBD3, - 36066 - 19968: 0xFAE7, - 36067 - 19968: 0xD8E3, - 36068 - 19968: 0xF4C1, - 36070 - 19968: 0xDDB7, - 36074 - 19968: 0xF2F5, - 36077 - 19968: 0xD4AE, - 36084 - 19968: 0xD6F3, - 36091 - 19968: 0xDDB8, - 36092 - 19968: 0xCFC5, - 36093 - 19968: 0xDFDF, - 36100 - 19968: 0xF2BE, - 36101 - 19968: 0xF6A1, - 36103 - 19968: 0xEBCB, - 36104 - 19968: 0xF1FC, - 36106 - 19968: 0xF3C7, - 36109 - 19968: 0xE0EB, - 36115 - 19968: 0xEDFC, - 36118 - 19968: 0xE1DB, - 36196 - 19968: 0xEEE5, - 36198 - 19968: 0xDEF5, - 36203 - 19968: 0xFAD3, - 36208 - 19968: 0xF1CB, - 36211 - 19968: 0xD0AF, - 36212 - 19968: 0xDDB9, - 36215 - 19968: 0xD1C3, - 36229 - 19968: 0xF5B1, - 36234 - 19968: 0xEAC6, - 36249 - 19968: 0xF0E1, - 36259 - 19968: 0xF6AC, - 36264 - 19968: 0xF5D9, - 36275 - 19968: 0xF0EB, - 36282 - 19968: 0xDDBA, - 36286 - 19968: 0xF2BF, - 36294 - 19968: 0xF7C5, - 36299 - 19968: 0xDBA2, - 36300 - 19968: 0xF2F6, - 36303 - 19968: 0xCABA, - 36315 - 19968: 0xF7F5, - 36317 - 19968: 0xCBE5, - 36321 - 19968: 0xEEE6, - 36323 - 19968: 0xE0D3, - 36328 - 19968: 0xCEA5, - 36335 - 19968: 0xD6D8, - 36339 - 19968: 0xD4AF, - 36362 - 19968: 0xE9C9, - 36367 - 19968: 0xD3CE, - 36368 - 19968: 0xF4C2, - 36382 - 19968: 0xCBE6, - 36394 - 19968: 0xF1A1, - 36400 - 19968: 0xEBB2, - 36405 - 19968: 0xF1A2, - 36418 - 19968: 0xEBB3, - 36420 - 19968: 0xF0B4, - 36423 - 19968: 0xCBF4, - 36424 - 19968: 0xD4B0, - 36425 - 19968: 0xF3B2, - 36426 - 19968: 0xFBB7, - 36441 - 19968: 0xF5EC, - 36447 - 19968: 0xEEE7, - 36448 - 19968: 0xF4B2, - 36468 - 19968: 0xF5ED, - 36470 - 19968: 0xCFF3, - 36481 - 19968: 0xF0E2, - 36487 - 19968: 0xEECE, - 36490 - 19968: 0xF1CC, - 36493 - 19968: 0xE5B8, - 36522 - 19968: 0xD7F5, - 36523 - 19968: 0xE3F3, - 36524 - 19968: 0xCFE5, - 36544 - 19968: 0xCFC6, - 36554 - 19968: 0xF3B3, - 36555 - 19968: 0xE4D8, - 36556 - 19968: 0xCFF9, - 36557 - 19968: 0xCFDA, - 36562 - 19968: 0xFACD, - 36575 - 19968: 0xE6E3, - 36587 - 19968: 0xF2E2, - 36600 - 19968: 0xF5EE, - 36603 - 19968: 0xCABB, - 36606 - 19968: 0xE3DC, - 36611 - 19968: 0xCEF2, - 36613 - 19968: 0xD6D9, - 36617 - 19968: 0xEEB0, - 36626 - 19968: 0xF4E5, - 36627 - 19968: 0xD8C2, - 36628 - 19968: 0xDCD0, - 36629 - 19968: 0xCCEE, - 36635 - 19968: 0xD5E0, - 36636 - 19968: 0xF6CA, - 36637 - 19968: 0xFDCA, - 36638 - 19968: 0xD8D6, - 36639 - 19968: 0xF4CF, - 36646 - 19968: 0xD6A6, - 36647 - 19968: 0xDCBE, - 36649 - 19968: 0xDBD4, - 36650 - 19968: 0xD7C7, - 36655 - 19968: 0xF2FE, - 36659 - 19968: 0xF1CD, - 36664 - 19968: 0xE2C3, - 36665 - 19968: 0xDCDE, - 36667 - 19968: 0xDCDF, - 36670 - 19968: 0xEFAD, - 36671 - 19968: 0xE6AB, - 36676 - 19968: 0xF9DD, - 36677 - 19968: 0xEABF, - 36681 - 19968: 0xEFAE, - 36685 - 19968: 0xF4D0, - 36686 - 19968: 0xCEF3, - 36701 - 19968: 0xE6AC, - 36703 - 19968: 0xCEDE, - 36706 - 19968: 0xD5F9, - 36763 - 19968: 0xE3F4, - 36764 - 19968: 0xCDD0, - 36771 - 19968: 0xD5B8, - 36774 - 19968: 0xF7FD, - 36776 - 19968: 0xDCA9, - 36781 - 19968: 0xDEF6, - 36783 - 19968: 0xDCAA, - 36784 - 19968: 0xF2E3, - 36785 - 19968: 0xE9B4, - 36786 - 19968: 0xD2DC, - 36802 - 19968: 0xE9E6, - 36805 - 19968: 0xE3F6, - 36814 - 19968: 0xE7CA, - 36817 - 19968: 0xD0CE, - 36820 - 19968: 0xDAF7, - 36838 - 19968: 0xCABC, - 36842 - 19968: 0xEEE8, - 36843 - 19968: 0xDADE, - 36845 - 19968: 0xF2F7, - 36848 - 19968: 0xE2FB, - 36850 - 19968: 0xCCA6, - 36855 - 19968: 0xDABB, - 36857 - 19968: 0xEEE9, - 36861 - 19968: 0xF5DA, - 36864 - 19968: 0xF7DC, - 36865 - 19968: 0xE1EA, - 36866 - 19968: 0xCEC1, - 36867 - 19968: 0xD4B1, - 36869 - 19968: 0xFDB1, - 36870 - 19968: 0xE6BD, - 36872 - 19968: 0xFBAD, - 36875 - 19968: 0xF8E7, - 36877 - 19968: 0xE1CE, - 36879 - 19968: 0xF7E2, - 36880 - 19968: 0xF5EF, - 36881 - 19968: 0xCFC7, - 36884 - 19968: 0xD4B2, - 36885 - 19968: 0xCCEF, - 36887 - 19968: 0xD4E8, - 36889 - 19968: 0xEECF, - 36890 - 19968: 0xF7D7, - 36893 - 19968: 0xE0A6, - 36894 - 19968: 0xD6C1, - 36895 - 19968: 0xE1DC, - 36896 - 19968: 0xF0E3, - 36897 - 19968: 0xF1E4, - 36898 - 19968: 0xDCF1, - 36899 - 19968: 0xD6A7, - 36910 - 19968: 0xF4F5, - 36913 - 19968: 0xF1CE, - 36914 - 19968: 0xF2E4, - 36917 - 19968: 0xD0B0, - 36920 - 19968: 0xECEF, - 36924 - 19968: 0xF9BA, - 36926 - 19968: 0xEBB5, - 36929 - 19968: 0xD4ED, - 36930 - 19968: 0xE2C4, - 36935 - 19968: 0xE9E7, - 36938 - 19968: 0xEBB4, - 36939 - 19968: 0xEAA1, - 36941 - 19968: 0xF8BC, - 36942 - 19968: 0xCEA6, - 36944 - 19968: 0xF9C6, - 36945 - 19968: 0xFCDA, - 36947 - 19968: 0xD4B3, - 36948 - 19968: 0xD3B9, - 36949 - 19968: 0xEADE, - 36953 - 19968: 0xE9AB, - 36956 - 19968: 0xE1E1, - 36957 - 19968: 0xD3CF, - 36958 - 19968: 0xF4F6, - 36960 - 19968: 0xEAC0, - 36961 - 19968: 0xE1CF, - 36963 - 19968: 0xCCBA, - 36969 - 19968: 0xEEEA, - 36973 - 19968: 0xF0E4, - 36974 - 19968: 0xF3B4, - 36975 - 19968: 0xD4EE, - 36978 - 19968: 0xF2C0, - 36981 - 19968: 0xF1E5, - 36983 - 19968: 0xF4C3, - 36984 - 19968: 0xE0D4, - 36986 - 19968: 0xEBB6, - 36988 - 19968: 0xD7A1, - 36989 - 19968: 0xCBE8, - 36991 - 19968: 0xF9AD, - 36992 - 19968: 0xE9AD, - 36993 - 19968: 0xD8E4, - 36994 - 19968: 0xFAB3, - 36995 - 19968: 0xE2C5, - 36996 - 19968: 0xFCBD, - 36999 - 19968: 0xECC4, - 37000 - 19968: 0xD8B1, - 37002 - 19968: 0xDCAB, - 37007 - 19968: 0xD5A4, - 37009 - 19968: 0xEBE9, - 37013 - 19968: 0xE8BB, - 37017 - 19968: 0xD8D7, - 37026 - 19968: 0xFBAE, - 37027 - 19968: 0xD1E1, - 37030 - 19968: 0xDBC0, - 37032 - 19968: 0xF5BE, - 37034 - 19968: 0xDEF7, - 37039 - 19968: 0xCAFB, - 37040 - 19968: 0xF7C6, - 37041 - 19968: 0xCFC8, - 37045 - 19968: 0xE1D0, - 37048 - 19968: 0xEED0, - 37057 - 19968: 0xE9F4, - 37066 - 19968: 0xCEF4, - 37086 - 19968: 0xD5CD, - 37089 - 19968: 0xCFDB, - 37096 - 19968: 0xDDBB, - 37101 - 19968: 0xCEAC, - 37109 - 19968: 0xE9E8, - 37117 - 19968: 0xD4B4, - 37122 - 19968: 0xE4C7, - 37138 - 19968: 0xF5DB, - 37141 - 19968: 0xFAC1, - 37145 - 19968: 0xDEA9, - 37159 - 19968: 0xD4F8, - 37165 - 19968: 0xEFF7, - 37170 - 19968: 0xD3B3, - 37193 - 19968: 0xEBB7, - 37194 - 19968: 0xEFF8, - 37195 - 19968: 0xF5DC, - 37196 - 19968: 0xEDCC, - 37197 - 19968: 0xDBD5, - 37198 - 19968: 0xF1CF, - 37202 - 19968: 0xF1D0, - 37218 - 19968: 0xF5B2, - 37225 - 19968: 0xD9AE, - 37226 - 19968: 0xD5AC, - 37228 - 19968: 0xE2C6, - 37237 - 19968: 0xFDA3, - 37239 - 19968: 0xFBE5, - 37240 - 19968: 0xDFAB, - 37255 - 19968: 0xE2F5, - 37257 - 19968: 0xF6AD, - 37259 - 19968: 0xF5B3, - 37261 - 19968: 0xF0B5, - 37266 - 19968: 0xE1A5, - 37276 - 19968: 0xF5DD, - 37291 - 19968: 0xECA2, - 37292 - 19968: 0xEDFD, - 37294 - 19968: 0xF5B4, - 37295 - 19968: 0xFBB8, - 37297 - 19968: 0xDBA3, - 37300 - 19968: 0xD6CA, - 37301 - 19968: 0xCBD9, - 37312 - 19968: 0xE5D4, - 37319 - 19968: 0xF3FA, - 37321 - 19968: 0xEBB8, - 37323 - 19968: 0xE0B7, - 37324 - 19968: 0xD7EC, - 37325 - 19968: 0xF1EC, - 37326 - 19968: 0xE5AF, - 37327 - 19968: 0xD5E1, - 37328 - 19968: 0xD7ED, - 37329 - 19968: 0xD1D1, - 37335 - 19968: 0xE1F2, - 37336 - 19968: 0xEFF9, - 37340 - 19968: 0xDDBC, - 37341 - 19968: 0xF6DC, - 37347 - 19968: 0xF0E5, - 37351 - 19968: 0xF4C4, - 37354 - 19968: 0xE9E9, - 37365 - 19968: 0xF3FB, - 37389 - 19968: 0xD4EF, - 37392 - 19968: 0xCCA2, - 37393 - 19968: 0xF7FE, - 37394 - 19968: 0xDFBC, - 37399 - 19968: 0xEBCD, - 37406 - 19968: 0xD0B7, - 37428 - 19968: 0xD6C2, - 37434 - 19968: 0xE8AD, - 37439 - 19968: 0xEFAF, - 37440 - 19968: 0xCBA5, - 37445 - 19968: 0xCBE9, - 37449 - 19968: 0xFAE8, - 37463 - 19968: 0xCCC6, - 37467 - 19968: 0xE6E7, - 37470 - 19968: 0xEAC7, - 37474 - 19968: 0xDBA4, - 37476 - 19968: 0xCFC9, - 37477 - 19968: 0xE2FC, - 37478 - 19968: 0xEFFA, - 37504 - 19968: 0xEBDE, - 37507 - 19968: 0xF5C8, - 37509 - 19968: 0xD4DE, - 37521 - 19968: 0xE0D5, - 37523 - 19968: 0xEFB0, - 37526 - 19968: 0xE2C7, - 37528 - 19968: 0xD9AF, - 37532 - 19968: 0xF9E7, - 37555 - 19968: 0xE7E5, - 37558 - 19968: 0xCFCA, - 37559 - 19968: 0xE1D1, - 37561 - 19968: 0xE2C8, - 37580 - 19968: 0xEFFB, - 37583 - 19968: 0xFAF9, - 37586 - 19968: 0xDCF2, - 37604 - 19968: 0xE0A7, - 37610 - 19968: 0xF8E8, - 37624 - 19968: 0xCBEA, - 37628 - 19968: 0xCBBC, - 37636 - 19968: 0xD6E2, - 37648 - 19968: 0xF5DE, - 37656 - 19968: 0xF5DF, - 37658 - 19968: 0xEEB6, - 37662 - 19968: 0xE2F6, - 37663 - 19968: 0xD3CA, - 37664 - 19968: 0xEFFC, - 37665 - 19968: 0xD1C4, - 37666 - 19968: 0xEFB1, - 37668 - 19968: 0xD1C5, - 37670 - 19968: 0xD0DE, - 37672 - 19968: 0xD9E1, - 37675 - 19968: 0xE0B8, - 37678 - 19968: 0xCDD1, - 37679 - 19968: 0xF3B9, - 37704 - 19968: 0xE7CC, - 37706 - 19968: 0xD6A8, - 37707 - 19968: 0xCEA7, - 37709 - 19968: 0xD4B5, - 37716 - 19968: 0xE4C8, - 37723 - 19968: 0xD3B4, - 37742 - 19968: 0xEBB9, - 37749 - 19968: 0xCBF5, - 37756 - 19968: 0xF6DD, - 37758 - 19968: 0xF1A3, - 37772 - 19968: 0xCCC7, - 37780 - 19968: 0xE9CA, - 37782 - 19968: 0xE1F0, - 37786 - 19968: 0xF5E0, - 37795 - 19968: 0xFBAF, - 37799 - 19968: 0xCBD1, - 37804 - 19968: 0xFBE0, - 37805 - 19968: 0xF2E5, - 37808 - 19968: 0xECF0, - 37827 - 19968: 0xF0EC, - 37841 - 19968: 0xEEEB, - 37854 - 19968: 0xE9CB, - 37857 - 19968: 0xCCF0, - 37860 - 19968: 0xD7AF, - 37878 - 19968: 0xF3A1, - 37892 - 19968: 0xFCF5, - 37912 - 19968: 0xF1A4, - 37925 - 19968: 0xE0D6, - 37931 - 19968: 0xEFB2, - 37941 - 19968: 0xF4D1, - 37944 - 19968: 0xF7A1, - 37956 - 19968: 0xF1D1, - 37969 - 19968: 0xCAFC, - 37970 - 19968: 0xCAFD, - 37979 - 19968: 0xCECE, - 38013 - 19968: 0xF3C8, - 38015 - 19968: 0xF3BA, - 38263 - 19968: 0xEDFE, - 38272 - 19968: 0xDAA6, - 38275 - 19968: 0xE0EC, - 38281 - 19968: 0xF8CD, - 38283 - 19968: 0xCBD2, - 38287 - 19968: 0xEBCE, - 38289 - 19968: 0xF9D8, - 38290 - 19968: 0xF9D9, - 38291 - 19968: 0xCAE0, - 38292 - 19968: 0xDACA, - 38296 - 19968: 0xCBA6, - 38307 - 19968: 0xCAC8, - 38308 - 19968: 0xF9EE, - 38309 - 19968: 0xDBEC, - 38312 - 19968: 0xD0B1, - 38317 - 19968: 0xD5EF, - 38321 - 19968: 0xE6F3, - 38331 - 19968: 0xE7A2, - 38332 - 19968: 0xE4D9, - 38343 - 19968: 0xE4E1, - 38346 - 19968: 0xFCC4, - 38356 - 19968: 0xF9EF, - 38357 - 19968: 0xCFF4, - 38358 - 19968: 0xF7E6, - 38364 - 19968: 0xCEBC, - 38369 - 19968: 0xF4C5, - 38370 - 19968: 0xDCA3, - 38428 - 19968: 0xDDBD, - 38433 - 19968: 0xF4C6, - 38442 - 19968: 0xF8A1, - 38446 - 19968: 0xE8D6, - 38450 - 19968: 0xDBC1, - 38459 - 19968: 0xF0E6, - 38463 - 19968: 0xE4B9, - 38464 - 19968: 0xF6ED, - 38466 - 19968: 0xF9AE, - 38468 - 19968: 0xDDBE, - 38475 - 19968: 0xD7B0, - 38476 - 19968: 0xD8E8, - 38477 - 19968: 0xCBBD, - 38480 - 19968: 0xF9DA, - 38491 - 19968: 0xF8CE, - 38492 - 19968: 0xF9F0, - 38493 - 19968: 0xE0ED, - 38494 - 19968: 0xE3B3, - 38495 - 19968: 0xF4B3, - 38498 - 19968: 0xEAC2, - 38499 - 19968: 0xF2E6, - 38500 - 19968: 0xF0B6, - 38506 - 19968: 0xDBD6, - 38512 - 19968: 0xEBE4, - 38515 - 19968: 0xF2E7, - 38517 - 19968: 0xD7D5, - 38518 - 19968: 0xD4B6, - 38519 - 19968: 0xF9E8, - 38520 - 19968: 0xD7C1, - 38525 - 19968: 0xE5D5, - 38533 - 19968: 0xE9EA, - 38534 - 19968: 0xD7CC, - 38538 - 19968: 0xD3E9, - 38539 - 19968: 0xE2C9, - 38541 - 19968: 0xFCDB, - 38542 - 19968: 0xCDAD, - 38548 - 19968: 0xCCB0, - 38549 - 19968: 0xEAA2, - 38552 - 19968: 0xE4F6, - 38553 - 19968: 0xD0C0, - 38555 - 19968: 0xF0B7, - 38556 - 19968: 0xEEA1, - 38563 - 19968: 0xD7F6, - 38567 - 19968: 0xE2CA, - 38568 - 19968: 0xE2CB, - 38570 - 19968: 0xFACF, - 38577 - 19968: 0xEBDF, - 38583 - 19968: 0xD6CB, - 38587 - 19968: 0xF4B4, - 38592 - 19968: 0xEDCD, - 38593 - 19968: 0xE4D2, - 38596 - 19968: 0xEAA9, - 38597 - 19968: 0xE4BA, - 38598 - 19968: 0xF3A2, - 38599 - 19968: 0xCDD2, - 38601 - 19968: 0xF6CB, - 38603 - 19968: 0xF1E6, - 38604 - 19968: 0xEDC1, - 38605 - 19968: 0xE8BC, - 38606 - 19968: 0xEED1, - 38613 - 19968: 0xF0E7, - 38614 - 19968: 0xE2CC, - 38617 - 19968: 0xE4AA, - 38619 - 19968: 0xF5E1, - 38620 - 19968: 0xEDDA, - 38626 - 19968: 0xD7EE, - 38627 - 19968: 0xD1F1, - 38632 - 19968: 0xE9EB, - 38633 - 19968: 0xE9EC, - 38634 - 19968: 0xE0E4, - 38639 - 19968: 0xDAA7, - 38640 - 19968: 0xDDD4, - 38642 - 19968: 0xEAA3, - 38646 - 19968: 0xD6C3, - 38647 - 19968: 0xD6F4, - 38649 - 19968: 0xDADF, - 38651 - 19968: 0xEFB3, - 38656 - 19968: 0xE2CD, - 38662 - 19968: 0xEFFD, - 38663 - 19968: 0xF2E8, - 38673 - 19968: 0xEFC5, - 38675 - 19968: 0xE7E7, - 38678 - 19968: 0xD7FD, - 38681 - 19968: 0xE7CE, - 38684 - 19968: 0xDFDC, - 38686 - 19968: 0xF9C7, - 38695 - 19968: 0xD9F6, - 38704 - 19968: 0xDFAC, - 38706 - 19968: 0xD6DA, - 38713 - 19968: 0xDCA4, - 38717 - 19968: 0xF0B8, - 38722 - 19968: 0xD5FA, - 38724 - 19968: 0xE4F7, - 38728 - 19968: 0xD6C4, - 38737 - 19968: 0xF4EC, - 38742 - 19968: 0xEFFE, - 38748 - 19968: 0xF0A1, - 38750 - 19968: 0xDEAA, - 38753 - 19968: 0xDABC, - 38754 - 19968: 0xD8FC, - 38761 - 19968: 0xFAD4, - 38765 - 19968: 0xECE5, - 38772 - 19968: 0xFCA8, - 38775 - 19968: 0xECE6, - 38778 - 19968: 0xD8CB, - 38795 - 19968: 0xFBB9, - 38797 - 19968: 0xE4D3, - 38799 - 19968: 0xCDF9, - 38816 - 19968: 0xCFD3, - 38824 - 19968: 0xCAEA, - 38827 - 19968: 0xCFD4, - 38829 - 19968: 0xF8BD, - 38854 - 19968: 0xF4C7, - 38859 - 19968: 0xEADF, - 38867 - 19968: 0xF9DB, - 38876 - 19968: 0xD4B7, - 38899 - 19968: 0xEBE5, - 38902 - 19968: 0xE1D2, - 38907 - 19968: 0xEAA4, - 38911 - 19968: 0xFAC2, - 38912 - 19968: 0xFBE1, - 38913 - 19968: 0xFAED, - 38914 - 19968: 0xF0A2, - 38915 - 19968: 0xCCF1, - 38917 - 19968: 0xFAA3, - 38918 - 19968: 0xE2F7, - 38920 - 19968: 0xE2CE, - 38922 - 19968: 0xE9F5, - 38924 - 19968: 0xE1EB, - 38928 - 19968: 0xE7E8, - 38929 - 19968: 0xE8D7, - 38930 - 19968: 0xDAF8, - 38931 - 19968: 0xD4CB, - 38935 - 19968: 0xF7F6, - 38936 - 19968: 0xD6C5, - 38957 - 19968: 0xD4E9, - 38960 - 19968: 0xFAFA, - 38968 - 19968: 0xCCF2, - 38969 - 19968: 0xF7DD, - 38971 - 19968: 0xDEBA, - 38982 - 19968: 0xCEA8, - 38988 - 19968: 0xF0B9, - 38989 - 19968: 0xE4FE, - 38990 - 19968: 0xE4C9, - 38996 - 19968: 0xE4D4, - 39000 - 19968: 0xEAC3, - 39002 - 19968: 0xEFB4, - 39006 - 19968: 0xD7BE, - 39013 - 19968: 0xFBE2, - 39015 - 19968: 0xCDD3, - 39019 - 19968: 0xEFB5, - 39023 - 19968: 0xFAE9, - 39080 - 19968: 0xF9A6, - 39087 - 19968: 0xDFBD, - 39089 - 19968: 0xF7C7, - 39108 - 19968: 0xF8FD, - 39111 - 19968: 0xF8FC, - 39131 - 19968: 0xDEAB, - 39132 - 19968: 0xDBE8, - 39135 - 19968: 0xE3DD, - 39137 - 19968: 0xE1E2, - 39138 - 19968: 0xD1C6, - 39149 - 19968: 0xF6D0, - 39150 - 19968: 0xEBE6, - 39151 - 19968: 0xDAF9, - 39156 - 19968: 0xECC7, - 39164 - 19968: 0xDEF8, - 39165 - 19968: 0xF8E9, - 39166 - 19968: 0xE3DE, - 39171 - 19968: 0xCEF5, - 39177 - 19968: 0xFAC3, - 39178 - 19968: 0xE5D7, - 39180 - 19968: 0xECC8, - 39184 - 19968: 0xF3C9, - 39187 - 19968: 0xE4BB, - 39192 - 19968: 0xE6AE, - 39198 - 19968: 0xEFB6, - 39200 - 19968: 0xDCBF, - 39208 - 19968: 0xCEBD, - 39237 - 19968: 0xD8C3, - 39241 - 19968: 0xD0CF, - 39243 - 19968: 0xCFFA, - 39244 - 19968: 0xF3CA, - 39245 - 19968: 0xE0D7, - 39249 - 19968: 0xD1C7, - 39250 - 19968: 0xE9AE, - 39252 - 19968: 0xE8BD, - 39255 - 19968: 0xFAC4, - 39318 - 19968: 0xE2CF, - 39321 - 19968: 0xFAC5, - 39325 - 19968: 0xF9B8, - 39333 - 19968: 0xDCE0, - 39336 - 19968: 0xFBB0, - 39340 - 19968: 0xD8A9, - 39341 - 19968: 0xE5DF, - 39342 - 19968: 0xF9A7, - 39345 - 19968: 0xF6EE, - 39347 - 19968: 0xF6CC, - 39348 - 19968: 0xE2F8, - 39353 - 19968: 0xECF1, - 39361 - 19968: 0xDAE0, - 39376 - 19968: 0xF1D2, - 39377 - 19968: 0xD2CC, - 39378 - 19968: 0xCFCB, - 39381 - 19968: 0xCABD, - 39385 - 19968: 0xDDBF, - 39389 - 19968: 0xF6EF, - 39391 - 19968: 0xDEF9, - 39405 - 19968: 0xFAB4, - 39409 - 19968: 0xD5AD, - 39423 - 19968: 0xF1E7, - 39425 - 19968: 0xDEBE, - 39432 - 19968: 0xDCC0, - 39438 - 19968: 0xD1C8, - 39439 - 19968: 0xD1C9, - 39449 - 19968: 0xF8BE, - 39467 - 19968: 0xCBF6, - 39472 - 19968: 0xD4F9, - 39478 - 19968: 0xF5E2, - 39479 - 19968: 0xE1D3, - 39488 - 19968: 0xD8E9, - 39491 - 19968: 0xF8FE, - 39493 - 19968: 0xCFCC, - 39501 - 19968: 0xFDA4, - 39509 - 19968: 0xCEF6, - 39511 - 19968: 0xFAD0, - 39514 - 19968: 0xCCF3, - 39515 - 19968: 0xE6BE, - 39519 - 19968: 0xF6AE, - 39522 - 19968: 0xD5F0, - 39525 - 19968: 0xD1CA, - 39529 - 19968: 0xFCBE, - 39530 - 19968: 0xD5F1, - 39592 - 19968: 0xCDE9, - 39608 - 19968: 0xFAB5, - 39635 - 19968: 0xE2D0, - 39636 - 19968: 0xF4F7, - 39640 - 19968: 0xCDD4, - 39653 - 19968: 0xE7A3, - 39662 - 19968: 0xDBA5, - 39706 - 19968: 0xE2D1, - 39719 - 19968: 0xD7A2, - 39722 - 19968: 0xF7E3, - 39729 - 19968: 0xEAA6, - 39740 - 19968: 0xD0A1, - 39745 - 19968: 0xCEDA, - 39746 - 19968: 0xFBEB, - 39747 - 19968: 0xDBA6, - 39748 - 19968: 0xDBDE, - 39749 - 19968: 0xD8E5, - 39759 - 19968: 0xEAE0, - 39764 - 19968: 0xD8AA, - 39770 - 19968: 0xE5E0, - 39791 - 19968: 0xD6DB, - 39822 - 19968: 0xEFC6, - 39825 - 19968: 0xF8EA, - 39839 - 19968: 0xE4D5, - 39851 - 19968: 0xCEF7, - 39854 - 19968: 0xE0D8, - 39881 - 19968: 0xD7EF, - 39894 - 19968: 0xF4ED, - 39908 - 19968: 0xCDE6, - 39912 - 19968: 0xCCF4, - 39949 - 19968: 0xF5E3, - 39952 - 19968: 0xE4CA, - 39954 - 19968: 0xDCE1, - 39957 - 19968: 0xF9C8, - 39973 - 19968: 0xFCBF, - 39986 - 19968: 0xE8A7, - 39995 - 19968: 0xD8C4, - 40007 - 19968: 0xCBBE, - 40009 - 19968: 0xDCAE, - 40023 - 19968: 0xD7F7, - 40165 - 19968: 0xF0E8, - 40167 - 19968: 0xDDC0, - 40169 - 19968: 0xCFCD, - 40179 - 19968: 0xDCF3, - 40180 - 19968: 0xD9B0, - 40182 - 19968: 0xE6E9, - 40201 - 19968: 0xE4BC, - 40219 - 19968: 0xEAC4, - 40230 - 19968: 0xE4EC, - 40232 - 19968: 0xE4E5, - 40251 - 19968: 0xFBF8, - 40273 - 19968: 0xCCBB, - 40285 - 19968: 0xE4BD, - 40288 - 19968: 0xCDDC, - 40289 - 19968: 0xD9F7, - 40300 - 19968: 0xDDDF, - 40306 - 19968: 0xEDCE, - 40361 - 19968: 0xD9D0, - 40367 - 19968: 0xE5A3, - 40372 - 19968: 0xF9CD, - 40388 - 19968: 0xCDAE, - 40407 - 19968: 0xCFCE, - 40434 - 19968: 0xF6AF, - 40440 - 19968: 0xFDD3, - 40441 - 19968: 0xEBED, - 40442 - 19968: 0xD6DC, - 40474 - 19968: 0xE5A4, - 40478 - 19968: 0xD5B6, - 40565 - 19968: 0xD6DD, - 40569 - 19968: 0xF9E9, - 40573 - 19968: 0xE7A4, - 40575 - 19968: 0xD6E3, - 40594 - 19968: 0xD1CB, - 40595 - 19968: 0xD6E4, - 40599 - 19968: 0xD5F2, - 40605 - 19968: 0xDEFA, - 40607 - 19968: 0xD7F8, - 40613 - 19968: 0xD8EA, - 40628 - 19968: 0xCFD5, - 40629 - 19968: 0xD8FD, - 40635 - 19968: 0xD8AB, - 40638 - 19968: 0xFDCB, - 40643 - 19968: 0xFCDC, - 40653 - 19968: 0xE0A8, - 40654 - 19968: 0xD5F3, - 40657 - 19968: 0xFDD9, - 40660 - 19968: 0xCCA3, - 40664 - 19968: 0xD9F9, - 40667 - 19968: 0xD3EA, - 40668 - 19968: 0xF5F5, - 40670 - 19968: 0xEFC7, - 40680 - 19968: 0xD3DA, - 40692 - 19968: 0xDABD, - 40711 - 19968: 0xE8A8, - 40712 - 19968: 0xDCAF, - 40718 - 19968: 0xF0A3, - 40723 - 19968: 0xCDD5, - 40736 - 19968: 0xE0A9, - 40763 - 19968: 0xDEAC, - 40778 - 19968: 0xF0BA, - 40779 - 19968: 0xEEB1, - 40782 - 19968: 0xEEB2, - 40786 - 19968: 0xF6CD, - 40799 - 19968: 0xEED2, - 40801 - 19968: 0xD6C6, - 40807 - 19968: 0xE0E5, - 40810 - 19968: 0xF3BB, - 40812 - 19968: 0xE5E1, - 40823 - 19968: 0xE4CB, - 40845 - 19968: 0xD7A3, - 40848 - 19968: 0xDBC2, - 40853 - 19968: 0xCAFE, - 40860 - 19968: 0xCFCF, -} - -const encode1Low, encode1High = 44032, 55204 - -var encode1 = [...]uint16{ - 44032 - 44032: 0xB0A1, - 44033 - 44032: 0xB0A2, - 44034 - 44032: 0x8141, - 44035 - 44032: 0x8142, - 44036 - 44032: 0xB0A3, - 44037 - 44032: 0x8143, - 44038 - 44032: 0x8144, - 44039 - 44032: 0xB0A4, - 44040 - 44032: 0xB0A5, - 44041 - 44032: 0xB0A6, - 44042 - 44032: 0xB0A7, - 44043 - 44032: 0x8145, - 44044 - 44032: 0x8146, - 44045 - 44032: 0x8147, - 44046 - 44032: 0x8148, - 44047 - 44032: 0x8149, - 44048 - 44032: 0xB0A8, - 44049 - 44032: 0xB0A9, - 44050 - 44032: 0xB0AA, - 44051 - 44032: 0xB0AB, - 44052 - 44032: 0xB0AC, - 44053 - 44032: 0xB0AD, - 44054 - 44032: 0xB0AE, - 44055 - 44032: 0xB0AF, - 44056 - 44032: 0x814A, - 44057 - 44032: 0xB0B0, - 44058 - 44032: 0xB0B1, - 44059 - 44032: 0xB0B2, - 44060 - 44032: 0xB0B3, - 44061 - 44032: 0xB0B4, - 44062 - 44032: 0x814B, - 44063 - 44032: 0x814C, - 44064 - 44032: 0xB0B5, - 44065 - 44032: 0x814D, - 44066 - 44032: 0x814E, - 44067 - 44032: 0x814F, - 44068 - 44032: 0xB0B6, - 44069 - 44032: 0x8150, - 44070 - 44032: 0x8151, - 44071 - 44032: 0x8152, - 44072 - 44032: 0x8153, - 44073 - 44032: 0x8154, - 44074 - 44032: 0x8155, - 44075 - 44032: 0x8156, - 44076 - 44032: 0xB0B7, - 44077 - 44032: 0xB0B8, - 44078 - 44032: 0x8157, - 44079 - 44032: 0xB0B9, - 44080 - 44032: 0xB0BA, - 44081 - 44032: 0xB0BB, - 44082 - 44032: 0x8158, - 44083 - 44032: 0x8159, - 44084 - 44032: 0x815A, - 44085 - 44032: 0x8161, - 44086 - 44032: 0x8162, - 44087 - 44032: 0x8163, - 44088 - 44032: 0xB0BC, - 44089 - 44032: 0xB0BD, - 44090 - 44032: 0x8164, - 44091 - 44032: 0x8165, - 44092 - 44032: 0xB0BE, - 44093 - 44032: 0x8166, - 44094 - 44032: 0x8167, - 44095 - 44032: 0x8168, - 44096 - 44032: 0xB0BF, - 44097 - 44032: 0x8169, - 44098 - 44032: 0x816A, - 44099 - 44032: 0x816B, - 44100 - 44032: 0x816C, - 44101 - 44032: 0x816D, - 44102 - 44032: 0x816E, - 44103 - 44032: 0x816F, - 44104 - 44032: 0x8170, - 44105 - 44032: 0x8171, - 44106 - 44032: 0x8172, - 44107 - 44032: 0xB0C0, - 44108 - 44032: 0x8173, - 44109 - 44032: 0xB0C1, - 44110 - 44032: 0x8174, - 44111 - 44032: 0x8175, - 44112 - 44032: 0x8176, - 44113 - 44032: 0x8177, - 44114 - 44032: 0x8178, - 44115 - 44032: 0x8179, - 44116 - 44032: 0xB0C2, - 44117 - 44032: 0x817A, - 44118 - 44032: 0x8181, - 44119 - 44032: 0x8182, - 44120 - 44032: 0xB0C3, - 44121 - 44032: 0x8183, - 44122 - 44032: 0x8184, - 44123 - 44032: 0x8185, - 44124 - 44032: 0xB0C4, - 44125 - 44032: 0x8186, - 44126 - 44032: 0x8187, - 44127 - 44032: 0x8188, - 44128 - 44032: 0x8189, - 44129 - 44032: 0x818A, - 44130 - 44032: 0x818B, - 44131 - 44032: 0x818C, - 44132 - 44032: 0x818D, - 44133 - 44032: 0x818E, - 44134 - 44032: 0x818F, - 44135 - 44032: 0x8190, - 44136 - 44032: 0x8191, - 44137 - 44032: 0x8192, - 44138 - 44032: 0x8193, - 44139 - 44032: 0x8194, - 44140 - 44032: 0x8195, - 44141 - 44032: 0x8196, - 44142 - 44032: 0x8197, - 44143 - 44032: 0x8198, - 44144 - 44032: 0xB0C5, - 44145 - 44032: 0xB0C6, - 44146 - 44032: 0x8199, - 44147 - 44032: 0x819A, - 44148 - 44032: 0xB0C7, - 44149 - 44032: 0x819B, - 44150 - 44032: 0x819C, - 44151 - 44032: 0xB0C8, - 44152 - 44032: 0xB0C9, - 44153 - 44032: 0x819D, - 44154 - 44032: 0xB0CA, - 44155 - 44032: 0x819E, - 44156 - 44032: 0x819F, - 44157 - 44032: 0x81A0, - 44158 - 44032: 0x81A1, - 44159 - 44032: 0x81A2, - 44160 - 44032: 0xB0CB, - 44161 - 44032: 0xB0CC, - 44162 - 44032: 0x81A3, - 44163 - 44032: 0xB0CD, - 44164 - 44032: 0xB0CE, - 44165 - 44032: 0xB0CF, - 44166 - 44032: 0xB0D0, - 44167 - 44032: 0x81A4, - 44168 - 44032: 0x81A5, - 44169 - 44032: 0xB0D1, - 44170 - 44032: 0xB0D2, - 44171 - 44032: 0xB0D3, - 44172 - 44032: 0xB0D4, - 44173 - 44032: 0x81A6, - 44174 - 44032: 0x81A7, - 44175 - 44032: 0x81A8, - 44176 - 44032: 0xB0D5, - 44177 - 44032: 0x81A9, - 44178 - 44032: 0x81AA, - 44179 - 44032: 0x81AB, - 44180 - 44032: 0xB0D6, - 44181 - 44032: 0x81AC, - 44182 - 44032: 0x81AD, - 44183 - 44032: 0x81AE, - 44184 - 44032: 0x81AF, - 44185 - 44032: 0x81B0, - 44186 - 44032: 0x81B1, - 44187 - 44032: 0x81B2, - 44188 - 44032: 0xB0D7, - 44189 - 44032: 0xB0D8, - 44190 - 44032: 0x81B3, - 44191 - 44032: 0xB0D9, - 44192 - 44032: 0xB0DA, - 44193 - 44032: 0xB0DB, - 44194 - 44032: 0x81B4, - 44195 - 44032: 0x81B5, - 44196 - 44032: 0x81B6, - 44197 - 44032: 0x81B7, - 44198 - 44032: 0x81B8, - 44199 - 44032: 0x81B9, - 44200 - 44032: 0xB0DC, - 44201 - 44032: 0xB0DD, - 44202 - 44032: 0xB0DE, - 44203 - 44032: 0x81BA, - 44204 - 44032: 0xB0DF, - 44205 - 44032: 0x81BB, - 44206 - 44032: 0x81BC, - 44207 - 44032: 0xB0E0, - 44208 - 44032: 0xB0E1, - 44209 - 44032: 0x81BD, - 44210 - 44032: 0x81BE, - 44211 - 44032: 0x81BF, - 44212 - 44032: 0x81C0, - 44213 - 44032: 0x81C1, - 44214 - 44032: 0x81C2, - 44215 - 44032: 0x81C3, - 44216 - 44032: 0xB0E2, - 44217 - 44032: 0xB0E3, - 44218 - 44032: 0x81C4, - 44219 - 44032: 0xB0E4, - 44220 - 44032: 0xB0E5, - 44221 - 44032: 0xB0E6, - 44222 - 44032: 0x81C5, - 44223 - 44032: 0x81C6, - 44224 - 44032: 0x81C7, - 44225 - 44032: 0xB0E7, - 44226 - 44032: 0x81C8, - 44227 - 44032: 0x81C9, - 44228 - 44032: 0xB0E8, - 44229 - 44032: 0x81CA, - 44230 - 44032: 0x81CB, - 44231 - 44032: 0x81CC, - 44232 - 44032: 0xB0E9, - 44233 - 44032: 0x81CD, - 44234 - 44032: 0x81CE, - 44235 - 44032: 0x81CF, - 44236 - 44032: 0xB0EA, - 44237 - 44032: 0x81D0, - 44238 - 44032: 0x81D1, - 44239 - 44032: 0x81D2, - 44240 - 44032: 0x81D3, - 44241 - 44032: 0x81D4, - 44242 - 44032: 0x81D5, - 44243 - 44032: 0x81D6, - 44244 - 44032: 0x81D7, - 44245 - 44032: 0xB0EB, - 44246 - 44032: 0x81D8, - 44247 - 44032: 0xB0EC, - 44248 - 44032: 0x81D9, - 44249 - 44032: 0x81DA, - 44250 - 44032: 0x81DB, - 44251 - 44032: 0x81DC, - 44252 - 44032: 0x81DD, - 44253 - 44032: 0x81DE, - 44254 - 44032: 0x81DF, - 44255 - 44032: 0x81E0, - 44256 - 44032: 0xB0ED, - 44257 - 44032: 0xB0EE, - 44258 - 44032: 0x81E1, - 44259 - 44032: 0x81E2, - 44260 - 44032: 0xB0EF, - 44261 - 44032: 0x81E3, - 44262 - 44032: 0x81E4, - 44263 - 44032: 0xB0F0, - 44264 - 44032: 0xB0F1, - 44265 - 44032: 0x81E5, - 44266 - 44032: 0xB0F2, - 44267 - 44032: 0x81E6, - 44268 - 44032: 0xB0F3, - 44269 - 44032: 0x81E7, - 44270 - 44032: 0x81E8, - 44271 - 44032: 0xB0F4, - 44272 - 44032: 0xB0F5, - 44273 - 44032: 0xB0F6, - 44274 - 44032: 0x81E9, - 44275 - 44032: 0xB0F7, - 44276 - 44032: 0x81EA, - 44277 - 44032: 0xB0F8, - 44278 - 44032: 0xB0F9, - 44279 - 44032: 0x81EB, - 44280 - 44032: 0x81EC, - 44281 - 44032: 0x81ED, - 44282 - 44032: 0x81EE, - 44283 - 44032: 0x81EF, - 44284 - 44032: 0xB0FA, - 44285 - 44032: 0xB0FB, - 44286 - 44032: 0x81F0, - 44287 - 44032: 0x81F1, - 44288 - 44032: 0xB0FC, - 44289 - 44032: 0x81F2, - 44290 - 44032: 0x81F3, - 44291 - 44032: 0x81F4, - 44292 - 44032: 0xB0FD, - 44293 - 44032: 0x81F5, - 44294 - 44032: 0xB0FE, - 44295 - 44032: 0x81F6, - 44296 - 44032: 0x81F7, - 44297 - 44032: 0x81F8, - 44298 - 44032: 0x81F9, - 44299 - 44032: 0x81FA, - 44300 - 44032: 0xB1A1, - 44301 - 44032: 0xB1A2, - 44302 - 44032: 0x81FB, - 44303 - 44032: 0xB1A3, - 44304 - 44032: 0x81FC, - 44305 - 44032: 0xB1A4, - 44306 - 44032: 0x81FD, - 44307 - 44032: 0x81FE, - 44308 - 44032: 0x8241, - 44309 - 44032: 0x8242, - 44310 - 44032: 0x8243, - 44311 - 44032: 0x8244, - 44312 - 44032: 0xB1A5, - 44313 - 44032: 0x8245, - 44314 - 44032: 0x8246, - 44315 - 44032: 0x8247, - 44316 - 44032: 0xB1A6, - 44317 - 44032: 0x8248, - 44318 - 44032: 0x8249, - 44319 - 44032: 0x824A, - 44320 - 44032: 0xB1A7, - 44321 - 44032: 0x824B, - 44322 - 44032: 0x824C, - 44323 - 44032: 0x824D, - 44324 - 44032: 0x824E, - 44325 - 44032: 0x824F, - 44326 - 44032: 0x8250, - 44327 - 44032: 0x8251, - 44328 - 44032: 0x8252, - 44329 - 44032: 0xB1A8, - 44330 - 44032: 0x8253, - 44331 - 44032: 0x8254, - 44332 - 44032: 0xB1A9, - 44333 - 44032: 0xB1AA, - 44334 - 44032: 0x8255, - 44335 - 44032: 0x8256, - 44336 - 44032: 0x8257, - 44337 - 44032: 0x8258, - 44338 - 44032: 0x8259, - 44339 - 44032: 0x825A, - 44340 - 44032: 0xB1AB, - 44341 - 44032: 0xB1AC, - 44342 - 44032: 0x8261, - 44343 - 44032: 0x8262, - 44344 - 44032: 0xB1AD, - 44345 - 44032: 0x8263, - 44346 - 44032: 0x8264, - 44347 - 44032: 0x8265, - 44348 - 44032: 0xB1AE, - 44349 - 44032: 0x8266, - 44350 - 44032: 0x8267, - 44351 - 44032: 0x8268, - 44352 - 44032: 0x8269, - 44353 - 44032: 0x826A, - 44354 - 44032: 0x826B, - 44355 - 44032: 0x826C, - 44356 - 44032: 0xB1AF, - 44357 - 44032: 0xB1B0, - 44358 - 44032: 0x826D, - 44359 - 44032: 0xB1B1, - 44360 - 44032: 0x826E, - 44361 - 44032: 0xB1B2, - 44362 - 44032: 0x826F, - 44363 - 44032: 0x8270, - 44364 - 44032: 0x8271, - 44365 - 44032: 0x8272, - 44366 - 44032: 0x8273, - 44367 - 44032: 0x8274, - 44368 - 44032: 0xB1B3, - 44369 - 44032: 0x8275, - 44370 - 44032: 0x8276, - 44371 - 44032: 0x8277, - 44372 - 44032: 0xB1B4, - 44373 - 44032: 0x8278, - 44374 - 44032: 0x8279, - 44375 - 44032: 0x827A, - 44376 - 44032: 0xB1B5, - 44377 - 44032: 0x8281, - 44378 - 44032: 0x8282, - 44379 - 44032: 0x8283, - 44380 - 44032: 0x8284, - 44381 - 44032: 0x8285, - 44382 - 44032: 0x8286, - 44383 - 44032: 0x8287, - 44384 - 44032: 0x8288, - 44385 - 44032: 0xB1B6, - 44386 - 44032: 0x8289, - 44387 - 44032: 0xB1B7, - 44388 - 44032: 0x828A, - 44389 - 44032: 0x828B, - 44390 - 44032: 0x828C, - 44391 - 44032: 0x828D, - 44392 - 44032: 0x828E, - 44393 - 44032: 0x828F, - 44394 - 44032: 0x8290, - 44395 - 44032: 0x8291, - 44396 - 44032: 0xB1B8, - 44397 - 44032: 0xB1B9, - 44398 - 44032: 0x8292, - 44399 - 44032: 0x8293, - 44400 - 44032: 0xB1BA, - 44401 - 44032: 0x8294, - 44402 - 44032: 0x8295, - 44403 - 44032: 0xB1BB, - 44404 - 44032: 0xB1BC, - 44405 - 44032: 0xB1BD, - 44406 - 44032: 0xB1BE, - 44407 - 44032: 0x8296, - 44408 - 44032: 0x8297, - 44409 - 44032: 0x8298, - 44410 - 44032: 0x8299, - 44411 - 44032: 0xB1BF, - 44412 - 44032: 0xB1C0, - 44413 - 44032: 0xB1C1, - 44414 - 44032: 0x829A, - 44415 - 44032: 0xB1C2, - 44416 - 44032: 0x829B, - 44417 - 44032: 0xB1C3, - 44418 - 44032: 0xB1C4, - 44419 - 44032: 0x829C, - 44420 - 44032: 0x829D, - 44421 - 44032: 0x829E, - 44422 - 44032: 0x829F, - 44423 - 44032: 0x82A0, - 44424 - 44032: 0xB1C5, - 44425 - 44032: 0xB1C6, - 44426 - 44032: 0x82A1, - 44427 - 44032: 0x82A2, - 44428 - 44032: 0xB1C7, - 44429 - 44032: 0x82A3, - 44430 - 44032: 0x82A4, - 44431 - 44032: 0x82A5, - 44432 - 44032: 0xB1C8, - 44433 - 44032: 0x82A6, - 44434 - 44032: 0x82A7, - 44435 - 44032: 0x82A8, - 44436 - 44032: 0x82A9, - 44437 - 44032: 0x82AA, - 44438 - 44032: 0x82AB, - 44439 - 44032: 0x82AC, - 44440 - 44032: 0x82AD, - 44441 - 44032: 0x82AE, - 44442 - 44032: 0x82AF, - 44443 - 44032: 0x82B0, - 44444 - 44032: 0xB1C9, - 44445 - 44032: 0xB1CA, - 44446 - 44032: 0x82B1, - 44447 - 44032: 0x82B2, - 44448 - 44032: 0x82B3, - 44449 - 44032: 0x82B4, - 44450 - 44032: 0x82B5, - 44451 - 44032: 0x82B6, - 44452 - 44032: 0xB1CB, - 44453 - 44032: 0x82B7, - 44454 - 44032: 0x82B8, - 44455 - 44032: 0x82B9, - 44456 - 44032: 0x82BA, - 44457 - 44032: 0x82BB, - 44458 - 44032: 0x82BC, - 44459 - 44032: 0x82BD, - 44460 - 44032: 0x82BE, - 44461 - 44032: 0x82BF, - 44462 - 44032: 0x82C0, - 44463 - 44032: 0x82C1, - 44464 - 44032: 0x82C2, - 44465 - 44032: 0x82C3, - 44466 - 44032: 0x82C4, - 44467 - 44032: 0x82C5, - 44468 - 44032: 0x82C6, - 44469 - 44032: 0x82C7, - 44470 - 44032: 0x82C8, - 44471 - 44032: 0xB1CC, - 44472 - 44032: 0x82C9, - 44473 - 44032: 0x82CA, - 44474 - 44032: 0x82CB, - 44475 - 44032: 0x82CC, - 44476 - 44032: 0x82CD, - 44477 - 44032: 0x82CE, - 44478 - 44032: 0x82CF, - 44479 - 44032: 0x82D0, - 44480 - 44032: 0xB1CD, - 44481 - 44032: 0xB1CE, - 44482 - 44032: 0x82D1, - 44483 - 44032: 0x82D2, - 44484 - 44032: 0xB1CF, - 44485 - 44032: 0x82D3, - 44486 - 44032: 0x82D4, - 44487 - 44032: 0x82D5, - 44488 - 44032: 0xB1D0, - 44489 - 44032: 0x82D6, - 44490 - 44032: 0x82D7, - 44491 - 44032: 0x82D8, - 44492 - 44032: 0x82D9, - 44493 - 44032: 0x82DA, - 44494 - 44032: 0x82DB, - 44495 - 44032: 0x82DC, - 44496 - 44032: 0xB1D1, - 44497 - 44032: 0xB1D2, - 44498 - 44032: 0x82DD, - 44499 - 44032: 0xB1D3, - 44500 - 44032: 0x82DE, - 44501 - 44032: 0x82DF, - 44502 - 44032: 0x82E0, - 44503 - 44032: 0x82E1, - 44504 - 44032: 0x82E2, - 44505 - 44032: 0x82E3, - 44506 - 44032: 0x82E4, - 44507 - 44032: 0x82E5, - 44508 - 44032: 0xB1D4, - 44509 - 44032: 0x82E6, - 44510 - 44032: 0x82E7, - 44511 - 44032: 0x82E8, - 44512 - 44032: 0xB1D5, - 44513 - 44032: 0x82E9, - 44514 - 44032: 0x82EA, - 44515 - 44032: 0x82EB, - 44516 - 44032: 0xB1D6, - 44517 - 44032: 0x82EC, - 44518 - 44032: 0x82ED, - 44519 - 44032: 0x82EE, - 44520 - 44032: 0x82EF, - 44521 - 44032: 0x82F0, - 44522 - 44032: 0x82F1, - 44523 - 44032: 0x82F2, - 44524 - 44032: 0x82F3, - 44525 - 44032: 0x82F4, - 44526 - 44032: 0x82F5, - 44527 - 44032: 0x82F6, - 44528 - 44032: 0x82F7, - 44529 - 44032: 0x82F8, - 44530 - 44032: 0x82F9, - 44531 - 44032: 0x82FA, - 44532 - 44032: 0x82FB, - 44533 - 44032: 0x82FC, - 44534 - 44032: 0x82FD, - 44535 - 44032: 0x82FE, - 44536 - 44032: 0xB1D7, - 44537 - 44032: 0xB1D8, - 44538 - 44032: 0x8341, - 44539 - 44032: 0x8342, - 44540 - 44032: 0xB1D9, - 44541 - 44032: 0x8343, - 44542 - 44032: 0x8344, - 44543 - 44032: 0xB1DA, - 44544 - 44032: 0xB1DB, - 44545 - 44032: 0xB1DC, - 44546 - 44032: 0x8345, - 44547 - 44032: 0x8346, - 44548 - 44032: 0x8347, - 44549 - 44032: 0x8348, - 44550 - 44032: 0x8349, - 44551 - 44032: 0x834A, - 44552 - 44032: 0xB1DD, - 44553 - 44032: 0xB1DE, - 44554 - 44032: 0x834B, - 44555 - 44032: 0xB1DF, - 44556 - 44032: 0x834C, - 44557 - 44032: 0xB1E0, - 44558 - 44032: 0x834D, - 44559 - 44032: 0x834E, - 44560 - 44032: 0x834F, - 44561 - 44032: 0x8350, - 44562 - 44032: 0x8351, - 44563 - 44032: 0x8352, - 44564 - 44032: 0xB1E1, - 44565 - 44032: 0x8353, - 44566 - 44032: 0x8354, - 44567 - 44032: 0x8355, - 44568 - 44032: 0x8356, - 44569 - 44032: 0x8357, - 44570 - 44032: 0x8358, - 44571 - 44032: 0x8359, - 44572 - 44032: 0x835A, - 44573 - 44032: 0x8361, - 44574 - 44032: 0x8362, - 44575 - 44032: 0x8363, - 44576 - 44032: 0x8364, - 44577 - 44032: 0x8365, - 44578 - 44032: 0x8366, - 44579 - 44032: 0x8367, - 44580 - 44032: 0x8368, - 44581 - 44032: 0x8369, - 44582 - 44032: 0x836A, - 44583 - 44032: 0x836B, - 44584 - 44032: 0x836C, - 44585 - 44032: 0x836D, - 44586 - 44032: 0x836E, - 44587 - 44032: 0x836F, - 44588 - 44032: 0x8370, - 44589 - 44032: 0x8371, - 44590 - 44032: 0x8372, - 44591 - 44032: 0x8373, - 44592 - 44032: 0xB1E2, - 44593 - 44032: 0xB1E3, - 44594 - 44032: 0x8374, - 44595 - 44032: 0x8375, - 44596 - 44032: 0xB1E4, - 44597 - 44032: 0x8376, - 44598 - 44032: 0x8377, - 44599 - 44032: 0xB1E5, - 44600 - 44032: 0xB1E6, - 44601 - 44032: 0x8378, - 44602 - 44032: 0xB1E7, - 44603 - 44032: 0x8379, - 44604 - 44032: 0x837A, - 44605 - 44032: 0x8381, - 44606 - 44032: 0x8382, - 44607 - 44032: 0x8383, - 44608 - 44032: 0xB1E8, - 44609 - 44032: 0xB1E9, - 44610 - 44032: 0x8384, - 44611 - 44032: 0xB1EA, - 44612 - 44032: 0x8385, - 44613 - 44032: 0xB1EB, - 44614 - 44032: 0xB1EC, - 44615 - 44032: 0x8386, - 44616 - 44032: 0x8387, - 44617 - 44032: 0x8388, - 44618 - 44032: 0xB1ED, - 44619 - 44032: 0x8389, - 44620 - 44032: 0xB1EE, - 44621 - 44032: 0xB1EF, - 44622 - 44032: 0xB1F0, - 44623 - 44032: 0x838A, - 44624 - 44032: 0xB1F1, - 44625 - 44032: 0x838B, - 44626 - 44032: 0x838C, - 44627 - 44032: 0x838D, - 44628 - 44032: 0xB1F2, - 44629 - 44032: 0x838E, - 44630 - 44032: 0xB1F3, - 44631 - 44032: 0x838F, - 44632 - 44032: 0x8390, - 44633 - 44032: 0x8391, - 44634 - 44032: 0x8392, - 44635 - 44032: 0x8393, - 44636 - 44032: 0xB1F4, - 44637 - 44032: 0xB1F5, - 44638 - 44032: 0x8394, - 44639 - 44032: 0xB1F6, - 44640 - 44032: 0xB1F7, - 44641 - 44032: 0xB1F8, - 44642 - 44032: 0x8395, - 44643 - 44032: 0x8396, - 44644 - 44032: 0x8397, - 44645 - 44032: 0xB1F9, - 44646 - 44032: 0x8398, - 44647 - 44032: 0x8399, - 44648 - 44032: 0xB1FA, - 44649 - 44032: 0xB1FB, - 44650 - 44032: 0x839A, - 44651 - 44032: 0x839B, - 44652 - 44032: 0xB1FC, - 44653 - 44032: 0x839C, - 44654 - 44032: 0x839D, - 44655 - 44032: 0x839E, - 44656 - 44032: 0xB1FD, - 44657 - 44032: 0x839F, - 44658 - 44032: 0x83A0, - 44659 - 44032: 0x83A1, - 44660 - 44032: 0x83A2, - 44661 - 44032: 0x83A3, - 44662 - 44032: 0x83A4, - 44663 - 44032: 0x83A5, - 44664 - 44032: 0xB1FE, - 44665 - 44032: 0xB2A1, - 44666 - 44032: 0x83A6, - 44667 - 44032: 0xB2A2, - 44668 - 44032: 0xB2A3, - 44669 - 44032: 0xB2A4, - 44670 - 44032: 0x83A7, - 44671 - 44032: 0x83A8, - 44672 - 44032: 0x83A9, - 44673 - 44032: 0x83AA, - 44674 - 44032: 0x83AB, - 44675 - 44032: 0x83AC, - 44676 - 44032: 0xB2A5, - 44677 - 44032: 0xB2A6, - 44678 - 44032: 0x83AD, - 44679 - 44032: 0x83AE, - 44680 - 44032: 0x83AF, - 44681 - 44032: 0x83B0, - 44682 - 44032: 0x83B1, - 44683 - 44032: 0x83B2, - 44684 - 44032: 0xB2A7, - 44685 - 44032: 0x83B3, - 44686 - 44032: 0x83B4, - 44687 - 44032: 0x83B5, - 44688 - 44032: 0x83B6, - 44689 - 44032: 0x83B7, - 44690 - 44032: 0x83B8, - 44691 - 44032: 0x83B9, - 44692 - 44032: 0x83BA, - 44693 - 44032: 0x83BB, - 44694 - 44032: 0x83BC, - 44695 - 44032: 0x83BD, - 44696 - 44032: 0x83BE, - 44697 - 44032: 0x83BF, - 44698 - 44032: 0x83C0, - 44699 - 44032: 0x83C1, - 44700 - 44032: 0x83C2, - 44701 - 44032: 0x83C3, - 44702 - 44032: 0x83C4, - 44703 - 44032: 0x83C5, - 44704 - 44032: 0x83C6, - 44705 - 44032: 0x83C7, - 44706 - 44032: 0x83C8, - 44707 - 44032: 0x83C9, - 44708 - 44032: 0x83CA, - 44709 - 44032: 0x83CB, - 44710 - 44032: 0x83CC, - 44711 - 44032: 0x83CD, - 44712 - 44032: 0x83CE, - 44713 - 44032: 0x83CF, - 44714 - 44032: 0x83D0, - 44715 - 44032: 0x83D1, - 44716 - 44032: 0x83D2, - 44717 - 44032: 0x83D3, - 44718 - 44032: 0x83D4, - 44719 - 44032: 0x83D5, - 44720 - 44032: 0x83D6, - 44721 - 44032: 0x83D7, - 44722 - 44032: 0x83D8, - 44723 - 44032: 0x83D9, - 44724 - 44032: 0x83DA, - 44725 - 44032: 0x83DB, - 44726 - 44032: 0x83DC, - 44727 - 44032: 0x83DD, - 44728 - 44032: 0x83DE, - 44729 - 44032: 0x83DF, - 44730 - 44032: 0x83E0, - 44731 - 44032: 0x83E1, - 44732 - 44032: 0xB2A8, - 44733 - 44032: 0xB2A9, - 44734 - 44032: 0xB2AA, - 44735 - 44032: 0x83E2, - 44736 - 44032: 0xB2AB, - 44737 - 44032: 0x83E3, - 44738 - 44032: 0x83E4, - 44739 - 44032: 0x83E5, - 44740 - 44032: 0xB2AC, - 44741 - 44032: 0x83E6, - 44742 - 44032: 0x83E7, - 44743 - 44032: 0x83E8, - 44744 - 44032: 0x83E9, - 44745 - 44032: 0x83EA, - 44746 - 44032: 0x83EB, - 44747 - 44032: 0x83EC, - 44748 - 44032: 0xB2AD, - 44749 - 44032: 0xB2AE, - 44750 - 44032: 0x83ED, - 44751 - 44032: 0xB2AF, - 44752 - 44032: 0xB2B0, - 44753 - 44032: 0xB2B1, - 44754 - 44032: 0x83EE, - 44755 - 44032: 0x83EF, - 44756 - 44032: 0x83F0, - 44757 - 44032: 0x83F1, - 44758 - 44032: 0x83F2, - 44759 - 44032: 0x83F3, - 44760 - 44032: 0xB2B2, - 44761 - 44032: 0xB2B3, - 44762 - 44032: 0x83F4, - 44763 - 44032: 0x83F5, - 44764 - 44032: 0xB2B4, - 44765 - 44032: 0x83F6, - 44766 - 44032: 0x83F7, - 44767 - 44032: 0x83F8, - 44768 - 44032: 0x83F9, - 44769 - 44032: 0x83FA, - 44770 - 44032: 0x83FB, - 44771 - 44032: 0x83FC, - 44772 - 44032: 0x83FD, - 44773 - 44032: 0x83FE, - 44774 - 44032: 0x8441, - 44775 - 44032: 0x8442, - 44776 - 44032: 0xB2B5, - 44777 - 44032: 0x8443, - 44778 - 44032: 0x8444, - 44779 - 44032: 0xB2B6, - 44780 - 44032: 0x8445, - 44781 - 44032: 0xB2B7, - 44782 - 44032: 0x8446, - 44783 - 44032: 0x8447, - 44784 - 44032: 0x8448, - 44785 - 44032: 0x8449, - 44786 - 44032: 0x844A, - 44787 - 44032: 0x844B, - 44788 - 44032: 0xB2B8, - 44789 - 44032: 0x844C, - 44790 - 44032: 0x844D, - 44791 - 44032: 0x844E, - 44792 - 44032: 0xB2B9, - 44793 - 44032: 0x844F, - 44794 - 44032: 0x8450, - 44795 - 44032: 0x8451, - 44796 - 44032: 0xB2BA, - 44797 - 44032: 0x8452, - 44798 - 44032: 0x8453, - 44799 - 44032: 0x8454, - 44800 - 44032: 0x8455, - 44801 - 44032: 0x8456, - 44802 - 44032: 0x8457, - 44803 - 44032: 0x8458, - 44804 - 44032: 0x8459, - 44805 - 44032: 0x845A, - 44806 - 44032: 0x8461, - 44807 - 44032: 0xB2BB, - 44808 - 44032: 0xB2BC, - 44809 - 44032: 0x8462, - 44810 - 44032: 0x8463, - 44811 - 44032: 0x8464, - 44812 - 44032: 0x8465, - 44813 - 44032: 0xB2BD, - 44814 - 44032: 0x8466, - 44815 - 44032: 0x8467, - 44816 - 44032: 0xB2BE, - 44817 - 44032: 0x8468, - 44818 - 44032: 0x8469, - 44819 - 44032: 0x846A, - 44820 - 44032: 0x846B, - 44821 - 44032: 0x846C, - 44822 - 44032: 0x846D, - 44823 - 44032: 0x846E, - 44824 - 44032: 0x846F, - 44825 - 44032: 0x8470, - 44826 - 44032: 0x8471, - 44827 - 44032: 0x8472, - 44828 - 44032: 0x8473, - 44829 - 44032: 0x8474, - 44830 - 44032: 0x8475, - 44831 - 44032: 0x8476, - 44832 - 44032: 0x8477, - 44833 - 44032: 0x8478, - 44834 - 44032: 0x8479, - 44835 - 44032: 0x847A, - 44836 - 44032: 0x8481, - 44837 - 44032: 0x8482, - 44838 - 44032: 0x8483, - 44839 - 44032: 0x8484, - 44840 - 44032: 0x8485, - 44841 - 44032: 0x8486, - 44842 - 44032: 0x8487, - 44843 - 44032: 0x8488, - 44844 - 44032: 0xB2BF, - 44845 - 44032: 0xB2C0, - 44846 - 44032: 0x8489, - 44847 - 44032: 0x848A, - 44848 - 44032: 0xB2C1, - 44849 - 44032: 0x848B, - 44850 - 44032: 0xB2C2, - 44851 - 44032: 0x848C, - 44852 - 44032: 0xB2C3, - 44853 - 44032: 0x848D, - 44854 - 44032: 0x848E, - 44855 - 44032: 0x848F, - 44856 - 44032: 0x8490, - 44857 - 44032: 0x8491, - 44858 - 44032: 0x8492, - 44859 - 44032: 0x8493, - 44860 - 44032: 0xB2C4, - 44861 - 44032: 0xB2C5, - 44862 - 44032: 0x8494, - 44863 - 44032: 0xB2C6, - 44864 - 44032: 0x8495, - 44865 - 44032: 0xB2C7, - 44866 - 44032: 0xB2C8, - 44867 - 44032: 0xB2C9, - 44868 - 44032: 0x8496, - 44869 - 44032: 0x8497, - 44870 - 44032: 0x8498, - 44871 - 44032: 0x8499, - 44872 - 44032: 0xB2CA, - 44873 - 44032: 0xB2CB, - 44874 - 44032: 0x849A, - 44875 - 44032: 0x849B, - 44876 - 44032: 0x849C, - 44877 - 44032: 0x849D, - 44878 - 44032: 0x849E, - 44879 - 44032: 0x849F, - 44880 - 44032: 0xB2CC, - 44881 - 44032: 0x84A0, - 44882 - 44032: 0x84A1, - 44883 - 44032: 0x84A2, - 44884 - 44032: 0x84A3, - 44885 - 44032: 0x84A4, - 44886 - 44032: 0x84A5, - 44887 - 44032: 0x84A6, - 44888 - 44032: 0x84A7, - 44889 - 44032: 0x84A8, - 44890 - 44032: 0x84A9, - 44891 - 44032: 0x84AA, - 44892 - 44032: 0xB2CD, - 44893 - 44032: 0xB2CE, - 44894 - 44032: 0x84AB, - 44895 - 44032: 0x84AC, - 44896 - 44032: 0x84AD, - 44897 - 44032: 0x84AE, - 44898 - 44032: 0x84AF, - 44899 - 44032: 0x84B0, - 44900 - 44032: 0xB2CF, - 44901 - 44032: 0xB2D0, - 44902 - 44032: 0x84B1, - 44903 - 44032: 0x84B2, - 44904 - 44032: 0x84B3, - 44905 - 44032: 0x84B4, - 44906 - 44032: 0x84B5, - 44907 - 44032: 0x84B6, - 44908 - 44032: 0x84B7, - 44909 - 44032: 0x84B8, - 44910 - 44032: 0x84B9, - 44911 - 44032: 0x84BA, - 44912 - 44032: 0x84BB, - 44913 - 44032: 0x84BC, - 44914 - 44032: 0x84BD, - 44915 - 44032: 0x84BE, - 44916 - 44032: 0x84BF, - 44917 - 44032: 0x84C0, - 44918 - 44032: 0x84C1, - 44919 - 44032: 0x84C2, - 44920 - 44032: 0x84C3, - 44921 - 44032: 0xB2D1, - 44922 - 44032: 0x84C4, - 44923 - 44032: 0x84C5, - 44924 - 44032: 0x84C6, - 44925 - 44032: 0x84C7, - 44926 - 44032: 0x84C8, - 44927 - 44032: 0x84C9, - 44928 - 44032: 0xB2D2, - 44929 - 44032: 0x84CA, - 44930 - 44032: 0x84CB, - 44931 - 44032: 0x84CC, - 44932 - 44032: 0xB2D3, - 44933 - 44032: 0x84CD, - 44934 - 44032: 0x84CE, - 44935 - 44032: 0x84CF, - 44936 - 44032: 0xB2D4, - 44937 - 44032: 0x84D0, - 44938 - 44032: 0x84D1, - 44939 - 44032: 0x84D2, - 44940 - 44032: 0x84D3, - 44941 - 44032: 0x84D4, - 44942 - 44032: 0x84D5, - 44943 - 44032: 0x84D6, - 44944 - 44032: 0xB2D5, - 44945 - 44032: 0xB2D6, - 44946 - 44032: 0x84D7, - 44947 - 44032: 0x84D8, - 44948 - 44032: 0x84D9, - 44949 - 44032: 0xB2D7, - 44950 - 44032: 0x84DA, - 44951 - 44032: 0x84DB, - 44952 - 44032: 0x84DC, - 44953 - 44032: 0x84DD, - 44954 - 44032: 0x84DE, - 44955 - 44032: 0x84DF, - 44956 - 44032: 0xB2D8, - 44957 - 44032: 0x84E0, - 44958 - 44032: 0x84E1, - 44959 - 44032: 0x84E2, - 44960 - 44032: 0x84E3, - 44961 - 44032: 0x84E4, - 44962 - 44032: 0x84E5, - 44963 - 44032: 0x84E6, - 44964 - 44032: 0x84E7, - 44965 - 44032: 0x84E8, - 44966 - 44032: 0x84E9, - 44967 - 44032: 0x84EA, - 44968 - 44032: 0x84EB, - 44969 - 44032: 0x84EC, - 44970 - 44032: 0x84ED, - 44971 - 44032: 0x84EE, - 44972 - 44032: 0x84EF, - 44973 - 44032: 0x84F0, - 44974 - 44032: 0x84F1, - 44975 - 44032: 0x84F2, - 44976 - 44032: 0x84F3, - 44977 - 44032: 0x84F4, - 44978 - 44032: 0x84F5, - 44979 - 44032: 0x84F6, - 44980 - 44032: 0x84F7, - 44981 - 44032: 0x84F8, - 44982 - 44032: 0x84F9, - 44983 - 44032: 0x84FA, - 44984 - 44032: 0xB2D9, - 44985 - 44032: 0xB2DA, - 44986 - 44032: 0x84FB, - 44987 - 44032: 0x84FC, - 44988 - 44032: 0xB2DB, - 44989 - 44032: 0x84FD, - 44990 - 44032: 0x84FE, - 44991 - 44032: 0x8541, - 44992 - 44032: 0xB2DC, - 44993 - 44032: 0x8542, - 44994 - 44032: 0x8543, - 44995 - 44032: 0x8544, - 44996 - 44032: 0x8545, - 44997 - 44032: 0x8546, - 44998 - 44032: 0x8547, - 44999 - 44032: 0xB2DD, - 45000 - 44032: 0xB2DE, - 45001 - 44032: 0xB2DF, - 45002 - 44032: 0x8548, - 45003 - 44032: 0xB2E0, - 45004 - 44032: 0x8549, - 45005 - 44032: 0xB2E1, - 45006 - 44032: 0xB2E2, - 45007 - 44032: 0x854A, - 45008 - 44032: 0x854B, - 45009 - 44032: 0x854C, - 45010 - 44032: 0x854D, - 45011 - 44032: 0x854E, - 45012 - 44032: 0xB2E3, - 45013 - 44032: 0x854F, - 45014 - 44032: 0x8550, - 45015 - 44032: 0x8551, - 45016 - 44032: 0x8552, - 45017 - 44032: 0x8553, - 45018 - 44032: 0x8554, - 45019 - 44032: 0x8555, - 45020 - 44032: 0xB2E4, - 45021 - 44032: 0x8556, - 45022 - 44032: 0x8557, - 45023 - 44032: 0x8558, - 45024 - 44032: 0x8559, - 45025 - 44032: 0x855A, - 45026 - 44032: 0x8561, - 45027 - 44032: 0x8562, - 45028 - 44032: 0x8563, - 45029 - 44032: 0x8564, - 45030 - 44032: 0x8565, - 45031 - 44032: 0x8566, - 45032 - 44032: 0xB2E5, - 45033 - 44032: 0xB2E6, - 45034 - 44032: 0x8567, - 45035 - 44032: 0x8568, - 45036 - 44032: 0x8569, - 45037 - 44032: 0x856A, - 45038 - 44032: 0x856B, - 45039 - 44032: 0x856C, - 45040 - 44032: 0xB2E7, - 45041 - 44032: 0xB2E8, - 45042 - 44032: 0x856D, - 45043 - 44032: 0x856E, - 45044 - 44032: 0xB2E9, - 45045 - 44032: 0x856F, - 45046 - 44032: 0x8570, - 45047 - 44032: 0x8571, - 45048 - 44032: 0xB2EA, - 45049 - 44032: 0x8572, - 45050 - 44032: 0x8573, - 45051 - 44032: 0x8574, - 45052 - 44032: 0x8575, - 45053 - 44032: 0x8576, - 45054 - 44032: 0x8577, - 45055 - 44032: 0x8578, - 45056 - 44032: 0xB2EB, - 45057 - 44032: 0xB2EC, - 45058 - 44032: 0x8579, - 45059 - 44032: 0x857A, - 45060 - 44032: 0xB2ED, - 45061 - 44032: 0x8581, - 45062 - 44032: 0x8582, - 45063 - 44032: 0x8583, - 45064 - 44032: 0x8584, - 45065 - 44032: 0x8585, - 45066 - 44032: 0x8586, - 45067 - 44032: 0x8587, - 45068 - 44032: 0xB2EE, - 45069 - 44032: 0x8588, - 45070 - 44032: 0x8589, - 45071 - 44032: 0x858A, - 45072 - 44032: 0xB2EF, - 45073 - 44032: 0x858B, - 45074 - 44032: 0x858C, - 45075 - 44032: 0x858D, - 45076 - 44032: 0xB2F0, - 45077 - 44032: 0x858E, - 45078 - 44032: 0x858F, - 45079 - 44032: 0x8590, - 45080 - 44032: 0x8591, - 45081 - 44032: 0x8592, - 45082 - 44032: 0x8593, - 45083 - 44032: 0x8594, - 45084 - 44032: 0xB2F1, - 45085 - 44032: 0xB2F2, - 45086 - 44032: 0x8595, - 45087 - 44032: 0x8596, - 45088 - 44032: 0x8597, - 45089 - 44032: 0x8598, - 45090 - 44032: 0x8599, - 45091 - 44032: 0x859A, - 45092 - 44032: 0x859B, - 45093 - 44032: 0x859C, - 45094 - 44032: 0x859D, - 45095 - 44032: 0x859E, - 45096 - 44032: 0xB2F3, - 45097 - 44032: 0x859F, - 45098 - 44032: 0x85A0, - 45099 - 44032: 0x85A1, - 45100 - 44032: 0x85A2, - 45101 - 44032: 0x85A3, - 45102 - 44032: 0x85A4, - 45103 - 44032: 0x85A5, - 45104 - 44032: 0x85A6, - 45105 - 44032: 0x85A7, - 45106 - 44032: 0x85A8, - 45107 - 44032: 0x85A9, - 45108 - 44032: 0x85AA, - 45109 - 44032: 0x85AB, - 45110 - 44032: 0x85AC, - 45111 - 44032: 0x85AD, - 45112 - 44032: 0x85AE, - 45113 - 44032: 0x85AF, - 45114 - 44032: 0x85B0, - 45115 - 44032: 0x85B1, - 45116 - 44032: 0x85B2, - 45117 - 44032: 0x85B3, - 45118 - 44032: 0x85B4, - 45119 - 44032: 0x85B5, - 45120 - 44032: 0x85B6, - 45121 - 44032: 0x85B7, - 45122 - 44032: 0x85B8, - 45123 - 44032: 0x85B9, - 45124 - 44032: 0xB2F4, - 45125 - 44032: 0xB2F5, - 45126 - 44032: 0x85BA, - 45127 - 44032: 0x85BB, - 45128 - 44032: 0xB2F6, - 45129 - 44032: 0x85BC, - 45130 - 44032: 0xB2F7, - 45131 - 44032: 0x85BD, - 45132 - 44032: 0xB2F8, - 45133 - 44032: 0x85BE, - 45134 - 44032: 0xB2F9, - 45135 - 44032: 0x85BF, - 45136 - 44032: 0x85C0, - 45137 - 44032: 0x85C1, - 45138 - 44032: 0x85C2, - 45139 - 44032: 0xB2FA, - 45140 - 44032: 0xB2FB, - 45141 - 44032: 0xB2FC, - 45142 - 44032: 0x85C3, - 45143 - 44032: 0xB2FD, - 45144 - 44032: 0x85C4, - 45145 - 44032: 0xB2FE, - 45146 - 44032: 0x85C5, - 45147 - 44032: 0x85C6, - 45148 - 44032: 0x85C7, - 45149 - 44032: 0xB3A1, - 45150 - 44032: 0x85C8, - 45151 - 44032: 0x85C9, - 45152 - 44032: 0x85CA, - 45153 - 44032: 0x85CB, - 45154 - 44032: 0x85CC, - 45155 - 44032: 0x85CD, - 45156 - 44032: 0x85CE, - 45157 - 44032: 0x85CF, - 45158 - 44032: 0x85D0, - 45159 - 44032: 0x85D1, - 45160 - 44032: 0x85D2, - 45161 - 44032: 0x85D3, - 45162 - 44032: 0x85D4, - 45163 - 44032: 0x85D5, - 45164 - 44032: 0x85D6, - 45165 - 44032: 0x85D7, - 45166 - 44032: 0x85D8, - 45167 - 44032: 0x85D9, - 45168 - 44032: 0x85DA, - 45169 - 44032: 0x85DB, - 45170 - 44032: 0x85DC, - 45171 - 44032: 0x85DD, - 45172 - 44032: 0x85DE, - 45173 - 44032: 0x85DF, - 45174 - 44032: 0x85E0, - 45175 - 44032: 0x85E1, - 45176 - 44032: 0x85E2, - 45177 - 44032: 0x85E3, - 45178 - 44032: 0x85E4, - 45179 - 44032: 0x85E5, - 45180 - 44032: 0xB3A2, - 45181 - 44032: 0xB3A3, - 45182 - 44032: 0x85E6, - 45183 - 44032: 0x85E7, - 45184 - 44032: 0xB3A4, - 45185 - 44032: 0x85E8, - 45186 - 44032: 0x85E9, - 45187 - 44032: 0x85EA, - 45188 - 44032: 0xB3A5, - 45189 - 44032: 0x85EB, - 45190 - 44032: 0x85EC, - 45191 - 44032: 0x85ED, - 45192 - 44032: 0x85EE, - 45193 - 44032: 0x85EF, - 45194 - 44032: 0x85F0, - 45195 - 44032: 0x85F1, - 45196 - 44032: 0xB3A6, - 45197 - 44032: 0xB3A7, - 45198 - 44032: 0x85F2, - 45199 - 44032: 0xB3A8, - 45200 - 44032: 0x85F3, - 45201 - 44032: 0xB3A9, - 45202 - 44032: 0x85F4, - 45203 - 44032: 0x85F5, - 45204 - 44032: 0x85F6, - 45205 - 44032: 0x85F7, - 45206 - 44032: 0x85F8, - 45207 - 44032: 0x85F9, - 45208 - 44032: 0xB3AA, - 45209 - 44032: 0xB3AB, - 45210 - 44032: 0xB3AC, - 45211 - 44032: 0x85FA, - 45212 - 44032: 0xB3AD, - 45213 - 44032: 0x85FB, - 45214 - 44032: 0x85FC, - 45215 - 44032: 0xB3AE, - 45216 - 44032: 0xB3AF, - 45217 - 44032: 0xB3B0, - 45218 - 44032: 0xB3B1, - 45219 - 44032: 0x85FD, - 45220 - 44032: 0x85FE, - 45221 - 44032: 0x8641, - 45222 - 44032: 0x8642, - 45223 - 44032: 0x8643, - 45224 - 44032: 0xB3B2, - 45225 - 44032: 0xB3B3, - 45226 - 44032: 0x8644, - 45227 - 44032: 0xB3B4, - 45228 - 44032: 0xB3B5, - 45229 - 44032: 0xB3B6, - 45230 - 44032: 0xB3B7, - 45231 - 44032: 0xB3B8, - 45232 - 44032: 0x8645, - 45233 - 44032: 0xB3B9, - 45234 - 44032: 0x8646, - 45235 - 44032: 0xB3BA, - 45236 - 44032: 0xB3BB, - 45237 - 44032: 0xB3BC, - 45238 - 44032: 0x8647, - 45239 - 44032: 0x8648, - 45240 - 44032: 0xB3BD, - 45241 - 44032: 0x8649, - 45242 - 44032: 0x864A, - 45243 - 44032: 0x864B, - 45244 - 44032: 0xB3BE, - 45245 - 44032: 0x864C, - 45246 - 44032: 0x864D, - 45247 - 44032: 0x864E, - 45248 - 44032: 0x864F, - 45249 - 44032: 0x8650, - 45250 - 44032: 0x8651, - 45251 - 44032: 0x8652, - 45252 - 44032: 0xB3BF, - 45253 - 44032: 0xB3C0, - 45254 - 44032: 0x8653, - 45255 - 44032: 0xB3C1, - 45256 - 44032: 0xB3C2, - 45257 - 44032: 0xB3C3, - 45258 - 44032: 0x8654, - 45259 - 44032: 0x8655, - 45260 - 44032: 0x8656, - 45261 - 44032: 0x8657, - 45262 - 44032: 0x8658, - 45263 - 44032: 0x8659, - 45264 - 44032: 0xB3C4, - 45265 - 44032: 0xB3C5, - 45266 - 44032: 0x865A, - 45267 - 44032: 0x8661, - 45268 - 44032: 0xB3C6, - 45269 - 44032: 0x8662, - 45270 - 44032: 0x8663, - 45271 - 44032: 0x8664, - 45272 - 44032: 0xB3C7, - 45273 - 44032: 0x8665, - 45274 - 44032: 0x8666, - 45275 - 44032: 0x8667, - 45276 - 44032: 0x8668, - 45277 - 44032: 0x8669, - 45278 - 44032: 0x866A, - 45279 - 44032: 0x866B, - 45280 - 44032: 0xB3C8, - 45281 - 44032: 0x866C, - 45282 - 44032: 0x866D, - 45283 - 44032: 0x866E, - 45284 - 44032: 0x866F, - 45285 - 44032: 0xB3C9, - 45286 - 44032: 0x8670, - 45287 - 44032: 0x8671, - 45288 - 44032: 0x8672, - 45289 - 44032: 0x8673, - 45290 - 44032: 0x8674, - 45291 - 44032: 0x8675, - 45292 - 44032: 0x8676, - 45293 - 44032: 0x8677, - 45294 - 44032: 0x8678, - 45295 - 44032: 0x8679, - 45296 - 44032: 0x867A, - 45297 - 44032: 0x8681, - 45298 - 44032: 0x8682, - 45299 - 44032: 0x8683, - 45300 - 44032: 0x8684, - 45301 - 44032: 0x8685, - 45302 - 44032: 0x8686, - 45303 - 44032: 0x8687, - 45304 - 44032: 0x8688, - 45305 - 44032: 0x8689, - 45306 - 44032: 0x868A, - 45307 - 44032: 0x868B, - 45308 - 44032: 0x868C, - 45309 - 44032: 0x868D, - 45310 - 44032: 0x868E, - 45311 - 44032: 0x868F, - 45312 - 44032: 0x8690, - 45313 - 44032: 0x8691, - 45314 - 44032: 0x8692, - 45315 - 44032: 0x8693, - 45316 - 44032: 0x8694, - 45317 - 44032: 0x8695, - 45318 - 44032: 0x8696, - 45319 - 44032: 0x8697, - 45320 - 44032: 0xB3CA, - 45321 - 44032: 0xB3CB, - 45322 - 44032: 0x8698, - 45323 - 44032: 0xB3CC, - 45324 - 44032: 0xB3CD, - 45325 - 44032: 0x8699, - 45326 - 44032: 0x869A, - 45327 - 44032: 0x869B, - 45328 - 44032: 0xB3CE, - 45329 - 44032: 0x869C, - 45330 - 44032: 0xB3CF, - 45331 - 44032: 0xB3D0, - 45332 - 44032: 0x869D, - 45333 - 44032: 0x869E, - 45334 - 44032: 0x869F, - 45335 - 44032: 0x86A0, - 45336 - 44032: 0xB3D1, - 45337 - 44032: 0xB3D2, - 45338 - 44032: 0x86A1, - 45339 - 44032: 0xB3D3, - 45340 - 44032: 0xB3D4, - 45341 - 44032: 0xB3D5, - 45342 - 44032: 0x86A2, - 45343 - 44032: 0x86A3, - 45344 - 44032: 0x86A4, - 45345 - 44032: 0x86A5, - 45346 - 44032: 0x86A6, - 45347 - 44032: 0xB3D6, - 45348 - 44032: 0xB3D7, - 45349 - 44032: 0xB3D8, - 45350 - 44032: 0x86A7, - 45351 - 44032: 0x86A8, - 45352 - 44032: 0xB3D9, - 45353 - 44032: 0x86A9, - 45354 - 44032: 0x86AA, - 45355 - 44032: 0x86AB, - 45356 - 44032: 0xB3DA, - 45357 - 44032: 0x86AC, - 45358 - 44032: 0x86AD, - 45359 - 44032: 0x86AE, - 45360 - 44032: 0x86AF, - 45361 - 44032: 0x86B0, - 45362 - 44032: 0x86B1, - 45363 - 44032: 0x86B2, - 45364 - 44032: 0xB3DB, - 45365 - 44032: 0xB3DC, - 45366 - 44032: 0x86B3, - 45367 - 44032: 0xB3DD, - 45368 - 44032: 0xB3DE, - 45369 - 44032: 0xB3DF, - 45370 - 44032: 0x86B4, - 45371 - 44032: 0x86B5, - 45372 - 44032: 0x86B6, - 45373 - 44032: 0x86B7, - 45374 - 44032: 0x86B8, - 45375 - 44032: 0x86B9, - 45376 - 44032: 0xB3E0, - 45377 - 44032: 0xB3E1, - 45378 - 44032: 0x86BA, - 45379 - 44032: 0x86BB, - 45380 - 44032: 0xB3E2, - 45381 - 44032: 0x86BC, - 45382 - 44032: 0x86BD, - 45383 - 44032: 0x86BE, - 45384 - 44032: 0xB3E3, - 45385 - 44032: 0x86BF, - 45386 - 44032: 0x86C0, - 45387 - 44032: 0x86C1, - 45388 - 44032: 0x86C2, - 45389 - 44032: 0x86C3, - 45390 - 44032: 0x86C4, - 45391 - 44032: 0x86C5, - 45392 - 44032: 0xB3E4, - 45393 - 44032: 0xB3E5, - 45394 - 44032: 0x86C6, - 45395 - 44032: 0x86C7, - 45396 - 44032: 0xB3E6, - 45397 - 44032: 0xB3E7, - 45398 - 44032: 0x86C8, - 45399 - 44032: 0x86C9, - 45400 - 44032: 0xB3E8, - 45401 - 44032: 0x86CA, - 45402 - 44032: 0x86CB, - 45403 - 44032: 0x86CC, - 45404 - 44032: 0xB3E9, - 45405 - 44032: 0x86CD, - 45406 - 44032: 0x86CE, - 45407 - 44032: 0x86CF, - 45408 - 44032: 0xB3EA, - 45409 - 44032: 0x86D0, - 45410 - 44032: 0x86D1, - 45411 - 44032: 0x86D2, - 45412 - 44032: 0x86D3, - 45413 - 44032: 0x86D4, - 45414 - 44032: 0x86D5, - 45415 - 44032: 0x86D6, - 45416 - 44032: 0x86D7, - 45417 - 44032: 0x86D8, - 45418 - 44032: 0x86D9, - 45419 - 44032: 0x86DA, - 45420 - 44032: 0x86DB, - 45421 - 44032: 0x86DC, - 45422 - 44032: 0x86DD, - 45423 - 44032: 0x86DE, - 45424 - 44032: 0x86DF, - 45425 - 44032: 0x86E0, - 45426 - 44032: 0x86E1, - 45427 - 44032: 0x86E2, - 45428 - 44032: 0x86E3, - 45429 - 44032: 0x86E4, - 45430 - 44032: 0x86E5, - 45431 - 44032: 0x86E6, - 45432 - 44032: 0xB3EB, - 45433 - 44032: 0xB3EC, - 45434 - 44032: 0x86E7, - 45435 - 44032: 0x86E8, - 45436 - 44032: 0xB3ED, - 45437 - 44032: 0x86E9, - 45438 - 44032: 0x86EA, - 45439 - 44032: 0x86EB, - 45440 - 44032: 0xB3EE, - 45441 - 44032: 0x86EC, - 45442 - 44032: 0xB3EF, - 45443 - 44032: 0x86ED, - 45444 - 44032: 0x86EE, - 45445 - 44032: 0x86EF, - 45446 - 44032: 0x86F0, - 45447 - 44032: 0x86F1, - 45448 - 44032: 0xB3F0, - 45449 - 44032: 0xB3F1, - 45450 - 44032: 0x86F2, - 45451 - 44032: 0xB3F2, - 45452 - 44032: 0x86F3, - 45453 - 44032: 0xB3F3, - 45454 - 44032: 0x86F4, - 45455 - 44032: 0x86F5, - 45456 - 44032: 0x86F6, - 45457 - 44032: 0x86F7, - 45458 - 44032: 0xB3F4, - 45459 - 44032: 0xB3F5, - 45460 - 44032: 0xB3F6, - 45461 - 44032: 0x86F8, - 45462 - 44032: 0x86F9, - 45463 - 44032: 0x86FA, - 45464 - 44032: 0xB3F7, - 45465 - 44032: 0x86FB, - 45466 - 44032: 0x86FC, - 45467 - 44032: 0x86FD, - 45468 - 44032: 0xB3F8, - 45469 - 44032: 0x86FE, - 45470 - 44032: 0x8741, - 45471 - 44032: 0x8742, - 45472 - 44032: 0x8743, - 45473 - 44032: 0x8744, - 45474 - 44032: 0x8745, - 45475 - 44032: 0x8746, - 45476 - 44032: 0x8747, - 45477 - 44032: 0x8748, - 45478 - 44032: 0x8749, - 45479 - 44032: 0x874A, - 45480 - 44032: 0xB3F9, - 45481 - 44032: 0x874B, - 45482 - 44032: 0x874C, - 45483 - 44032: 0x874D, - 45484 - 44032: 0x874E, - 45485 - 44032: 0x874F, - 45486 - 44032: 0x8750, - 45487 - 44032: 0x8751, - 45488 - 44032: 0x8752, - 45489 - 44032: 0x8753, - 45490 - 44032: 0x8754, - 45491 - 44032: 0x8755, - 45492 - 44032: 0x8756, - 45493 - 44032: 0x8757, - 45494 - 44032: 0x8758, - 45495 - 44032: 0x8759, - 45496 - 44032: 0x875A, - 45497 - 44032: 0x8761, - 45498 - 44032: 0x8762, - 45499 - 44032: 0x8763, - 45500 - 44032: 0x8764, - 45501 - 44032: 0x8765, - 45502 - 44032: 0x8766, - 45503 - 44032: 0x8767, - 45504 - 44032: 0x8768, - 45505 - 44032: 0x8769, - 45506 - 44032: 0x876A, - 45507 - 44032: 0x876B, - 45508 - 44032: 0x876C, - 45509 - 44032: 0x876D, - 45510 - 44032: 0x876E, - 45511 - 44032: 0x876F, - 45512 - 44032: 0x8770, - 45513 - 44032: 0x8771, - 45514 - 44032: 0x8772, - 45515 - 44032: 0x8773, - 45516 - 44032: 0xB3FA, - 45517 - 44032: 0x8774, - 45518 - 44032: 0x8775, - 45519 - 44032: 0x8776, - 45520 - 44032: 0xB3FB, - 45521 - 44032: 0x8777, - 45522 - 44032: 0x8778, - 45523 - 44032: 0x8779, - 45524 - 44032: 0xB3FC, - 45525 - 44032: 0x877A, - 45526 - 44032: 0x8781, - 45527 - 44032: 0x8782, - 45528 - 44032: 0x8783, - 45529 - 44032: 0x8784, - 45530 - 44032: 0x8785, - 45531 - 44032: 0x8786, - 45532 - 44032: 0xB3FD, - 45533 - 44032: 0xB3FE, - 45534 - 44032: 0x8787, - 45535 - 44032: 0xB4A1, - 45536 - 44032: 0x8788, - 45537 - 44032: 0x8789, - 45538 - 44032: 0x878A, - 45539 - 44032: 0x878B, - 45540 - 44032: 0x878C, - 45541 - 44032: 0x878D, - 45542 - 44032: 0x878E, - 45543 - 44032: 0x878F, - 45544 - 44032: 0xB4A2, - 45545 - 44032: 0xB4A3, - 45546 - 44032: 0x8790, - 45547 - 44032: 0x8791, - 45548 - 44032: 0xB4A4, - 45549 - 44032: 0x8792, - 45550 - 44032: 0x8793, - 45551 - 44032: 0x8794, - 45552 - 44032: 0xB4A5, - 45553 - 44032: 0x8795, - 45554 - 44032: 0x8796, - 45555 - 44032: 0x8797, - 45556 - 44032: 0x8798, - 45557 - 44032: 0x8799, - 45558 - 44032: 0x879A, - 45559 - 44032: 0x879B, - 45560 - 44032: 0x879C, - 45561 - 44032: 0xB4A6, - 45562 - 44032: 0x879D, - 45563 - 44032: 0xB4A7, - 45564 - 44032: 0x879E, - 45565 - 44032: 0xB4A8, - 45566 - 44032: 0x879F, - 45567 - 44032: 0x87A0, - 45568 - 44032: 0x87A1, - 45569 - 44032: 0x87A2, - 45570 - 44032: 0x87A3, - 45571 - 44032: 0x87A4, - 45572 - 44032: 0xB4A9, - 45573 - 44032: 0xB4AA, - 45574 - 44032: 0x87A5, - 45575 - 44032: 0x87A6, - 45576 - 44032: 0xB4AB, - 45577 - 44032: 0x87A7, - 45578 - 44032: 0x87A8, - 45579 - 44032: 0xB4AC, - 45580 - 44032: 0xB4AD, - 45581 - 44032: 0x87A9, - 45582 - 44032: 0x87AA, - 45583 - 44032: 0x87AB, - 45584 - 44032: 0x87AC, - 45585 - 44032: 0x87AD, - 45586 - 44032: 0x87AE, - 45587 - 44032: 0x87AF, - 45588 - 44032: 0xB4AE, - 45589 - 44032: 0xB4AF, - 45590 - 44032: 0x87B0, - 45591 - 44032: 0xB4B0, - 45592 - 44032: 0x87B1, - 45593 - 44032: 0xB4B1, - 45594 - 44032: 0x87B2, - 45595 - 44032: 0x87B3, - 45596 - 44032: 0x87B4, - 45597 - 44032: 0x87B5, - 45598 - 44032: 0x87B6, - 45599 - 44032: 0x87B7, - 45600 - 44032: 0xB4B2, - 45601 - 44032: 0x87B8, - 45602 - 44032: 0x87B9, - 45603 - 44032: 0x87BA, - 45604 - 44032: 0x87BB, - 45605 - 44032: 0x87BC, - 45606 - 44032: 0x87BD, - 45607 - 44032: 0x87BE, - 45608 - 44032: 0x87BF, - 45609 - 44032: 0x87C0, - 45610 - 44032: 0x87C1, - 45611 - 44032: 0x87C2, - 45612 - 44032: 0x87C3, - 45613 - 44032: 0x87C4, - 45614 - 44032: 0x87C5, - 45615 - 44032: 0x87C6, - 45616 - 44032: 0x87C7, - 45617 - 44032: 0x87C8, - 45618 - 44032: 0x87C9, - 45619 - 44032: 0x87CA, - 45620 - 44032: 0xB4B3, - 45621 - 44032: 0x87CB, - 45622 - 44032: 0x87CC, - 45623 - 44032: 0x87CD, - 45624 - 44032: 0x87CE, - 45625 - 44032: 0x87CF, - 45626 - 44032: 0x87D0, - 45627 - 44032: 0x87D1, - 45628 - 44032: 0xB4B4, - 45629 - 44032: 0x87D2, - 45630 - 44032: 0x87D3, - 45631 - 44032: 0x87D4, - 45632 - 44032: 0x87D5, - 45633 - 44032: 0x87D6, - 45634 - 44032: 0x87D7, - 45635 - 44032: 0x87D8, - 45636 - 44032: 0x87D9, - 45637 - 44032: 0x87DA, - 45638 - 44032: 0x87DB, - 45639 - 44032: 0x87DC, - 45640 - 44032: 0x87DD, - 45641 - 44032: 0x87DE, - 45642 - 44032: 0x87DF, - 45643 - 44032: 0x87E0, - 45644 - 44032: 0x87E1, - 45645 - 44032: 0x87E2, - 45646 - 44032: 0x87E3, - 45647 - 44032: 0x87E4, - 45648 - 44032: 0x87E5, - 45649 - 44032: 0x87E6, - 45650 - 44032: 0x87E7, - 45651 - 44032: 0x87E8, - 45652 - 44032: 0x87E9, - 45653 - 44032: 0x87EA, - 45654 - 44032: 0x87EB, - 45655 - 44032: 0x87EC, - 45656 - 44032: 0xB4B5, - 45657 - 44032: 0x87ED, - 45658 - 44032: 0x87EE, - 45659 - 44032: 0x87EF, - 45660 - 44032: 0xB4B6, - 45661 - 44032: 0x87F0, - 45662 - 44032: 0x87F1, - 45663 - 44032: 0x87F2, - 45664 - 44032: 0xB4B7, - 45665 - 44032: 0x87F3, - 45666 - 44032: 0x87F4, - 45667 - 44032: 0x87F5, - 45668 - 44032: 0x87F6, - 45669 - 44032: 0x87F7, - 45670 - 44032: 0x87F8, - 45671 - 44032: 0x87F9, - 45672 - 44032: 0xB4B8, - 45673 - 44032: 0xB4B9, - 45674 - 44032: 0x87FA, - 45675 - 44032: 0x87FB, - 45676 - 44032: 0x87FC, - 45677 - 44032: 0x87FD, - 45678 - 44032: 0x87FE, - 45679 - 44032: 0x8841, - 45680 - 44032: 0x8842, - 45681 - 44032: 0x8843, - 45682 - 44032: 0x8844, - 45683 - 44032: 0x8845, - 45684 - 44032: 0xB4BA, - 45685 - 44032: 0xB4BB, - 45686 - 44032: 0x8846, - 45687 - 44032: 0x8847, - 45688 - 44032: 0x8848, - 45689 - 44032: 0x8849, - 45690 - 44032: 0x884A, - 45691 - 44032: 0x884B, - 45692 - 44032: 0xB4BC, - 45693 - 44032: 0x884C, - 45694 - 44032: 0x884D, - 45695 - 44032: 0x884E, - 45696 - 44032: 0x884F, - 45697 - 44032: 0x8850, - 45698 - 44032: 0x8851, - 45699 - 44032: 0x8852, - 45700 - 44032: 0xB4BD, - 45701 - 44032: 0xB4BE, - 45702 - 44032: 0x8853, - 45703 - 44032: 0x8854, - 45704 - 44032: 0x8855, - 45705 - 44032: 0xB4BF, - 45706 - 44032: 0x8856, - 45707 - 44032: 0x8857, - 45708 - 44032: 0x8858, - 45709 - 44032: 0x8859, - 45710 - 44032: 0x885A, - 45711 - 44032: 0x8861, - 45712 - 44032: 0xB4C0, - 45713 - 44032: 0xB4C1, - 45714 - 44032: 0x8862, - 45715 - 44032: 0x8863, - 45716 - 44032: 0xB4C2, - 45717 - 44032: 0x8864, - 45718 - 44032: 0x8865, - 45719 - 44032: 0x8866, - 45720 - 44032: 0xB4C3, - 45721 - 44032: 0xB4C4, - 45722 - 44032: 0xB4C5, - 45723 - 44032: 0x8867, - 45724 - 44032: 0x8868, - 45725 - 44032: 0x8869, - 45726 - 44032: 0x886A, - 45727 - 44032: 0x886B, - 45728 - 44032: 0xB4C6, - 45729 - 44032: 0xB4C7, - 45730 - 44032: 0x886C, - 45731 - 44032: 0xB4C8, - 45732 - 44032: 0x886D, - 45733 - 44032: 0xB4C9, - 45734 - 44032: 0xB4CA, - 45735 - 44032: 0x886E, - 45736 - 44032: 0x886F, - 45737 - 44032: 0x8870, - 45738 - 44032: 0xB4CB, - 45739 - 44032: 0x8871, - 45740 - 44032: 0xB4CC, - 45741 - 44032: 0x8872, - 45742 - 44032: 0x8873, - 45743 - 44032: 0x8874, - 45744 - 44032: 0xB4CD, - 45745 - 44032: 0x8875, - 45746 - 44032: 0x8876, - 45747 - 44032: 0x8877, - 45748 - 44032: 0xB4CE, - 45749 - 44032: 0x8878, - 45750 - 44032: 0x8879, - 45751 - 44032: 0x887A, - 45752 - 44032: 0x8881, - 45753 - 44032: 0x8882, - 45754 - 44032: 0x8883, - 45755 - 44032: 0x8884, - 45756 - 44032: 0x8885, - 45757 - 44032: 0x8886, - 45758 - 44032: 0x8887, - 45759 - 44032: 0x8888, - 45760 - 44032: 0x8889, - 45761 - 44032: 0x888A, - 45762 - 44032: 0x888B, - 45763 - 44032: 0x888C, - 45764 - 44032: 0x888D, - 45765 - 44032: 0x888E, - 45766 - 44032: 0x888F, - 45767 - 44032: 0x8890, - 45768 - 44032: 0xB4CF, - 45769 - 44032: 0xB4D0, - 45770 - 44032: 0x8891, - 45771 - 44032: 0x8892, - 45772 - 44032: 0xB4D1, - 45773 - 44032: 0x8893, - 45774 - 44032: 0x8894, - 45775 - 44032: 0x8895, - 45776 - 44032: 0xB4D2, - 45777 - 44032: 0x8896, - 45778 - 44032: 0xB4D3, - 45779 - 44032: 0x8897, - 45780 - 44032: 0x8898, - 45781 - 44032: 0x8899, - 45782 - 44032: 0x889A, - 45783 - 44032: 0x889B, - 45784 - 44032: 0xB4D4, - 45785 - 44032: 0xB4D5, - 45786 - 44032: 0x889C, - 45787 - 44032: 0xB4D6, - 45788 - 44032: 0x889D, - 45789 - 44032: 0xB4D7, - 45790 - 44032: 0x889E, - 45791 - 44032: 0x889F, - 45792 - 44032: 0x88A0, - 45793 - 44032: 0x88A1, - 45794 - 44032: 0xB4D8, - 45795 - 44032: 0x88A2, - 45796 - 44032: 0xB4D9, - 45797 - 44032: 0xB4DA, - 45798 - 44032: 0xB4DB, - 45799 - 44032: 0x88A3, - 45800 - 44032: 0xB4DC, - 45801 - 44032: 0x88A4, - 45802 - 44032: 0x88A5, - 45803 - 44032: 0xB4DD, - 45804 - 44032: 0xB4DE, - 45805 - 44032: 0xB4DF, - 45806 - 44032: 0xB4E0, - 45807 - 44032: 0xB4E1, - 45808 - 44032: 0x88A6, - 45809 - 44032: 0x88A7, - 45810 - 44032: 0x88A8, - 45811 - 44032: 0xB4E2, - 45812 - 44032: 0xB4E3, - 45813 - 44032: 0xB4E4, - 45814 - 44032: 0x88A9, - 45815 - 44032: 0xB4E5, - 45816 - 44032: 0xB4E6, - 45817 - 44032: 0xB4E7, - 45818 - 44032: 0xB4E8, - 45819 - 44032: 0xB4E9, - 45820 - 44032: 0x88AA, - 45821 - 44032: 0x88AB, - 45822 - 44032: 0x88AC, - 45823 - 44032: 0xB4EA, - 45824 - 44032: 0xB4EB, - 45825 - 44032: 0xB4EC, - 45826 - 44032: 0x88AD, - 45827 - 44032: 0x88AE, - 45828 - 44032: 0xB4ED, - 45829 - 44032: 0x88AF, - 45830 - 44032: 0x88B0, - 45831 - 44032: 0x88B1, - 45832 - 44032: 0xB4EE, - 45833 - 44032: 0x88B2, - 45834 - 44032: 0x88B3, - 45835 - 44032: 0x88B4, - 45836 - 44032: 0x88B5, - 45837 - 44032: 0x88B6, - 45838 - 44032: 0x88B7, - 45839 - 44032: 0x88B8, - 45840 - 44032: 0xB4EF, - 45841 - 44032: 0xB4F0, - 45842 - 44032: 0x88B9, - 45843 - 44032: 0xB4F1, - 45844 - 44032: 0xB4F2, - 45845 - 44032: 0xB4F3, - 45846 - 44032: 0x88BA, - 45847 - 44032: 0x88BB, - 45848 - 44032: 0x88BC, - 45849 - 44032: 0x88BD, - 45850 - 44032: 0x88BE, - 45851 - 44032: 0x88BF, - 45852 - 44032: 0xB4F4, - 45853 - 44032: 0x88C0, - 45854 - 44032: 0x88C1, - 45855 - 44032: 0x88C2, - 45856 - 44032: 0x88C3, - 45857 - 44032: 0x88C4, - 45858 - 44032: 0x88C5, - 45859 - 44032: 0x88C6, - 45860 - 44032: 0x88C7, - 45861 - 44032: 0x88C8, - 45862 - 44032: 0x88C9, - 45863 - 44032: 0x88CA, - 45864 - 44032: 0x88CB, - 45865 - 44032: 0x88CC, - 45866 - 44032: 0x88CD, - 45867 - 44032: 0x88CE, - 45868 - 44032: 0x88CF, - 45869 - 44032: 0x88D0, - 45870 - 44032: 0x88D1, - 45871 - 44032: 0x88D2, - 45872 - 44032: 0x88D3, - 45873 - 44032: 0x88D4, - 45874 - 44032: 0x88D5, - 45875 - 44032: 0x88D6, - 45876 - 44032: 0x88D7, - 45877 - 44032: 0x88D8, - 45878 - 44032: 0x88D9, - 45879 - 44032: 0x88DA, - 45880 - 44032: 0x88DB, - 45881 - 44032: 0x88DC, - 45882 - 44032: 0x88DD, - 45883 - 44032: 0x88DE, - 45884 - 44032: 0x88DF, - 45885 - 44032: 0x88E0, - 45886 - 44032: 0x88E1, - 45887 - 44032: 0x88E2, - 45888 - 44032: 0x88E3, - 45889 - 44032: 0x88E4, - 45890 - 44032: 0x88E5, - 45891 - 44032: 0x88E6, - 45892 - 44032: 0x88E7, - 45893 - 44032: 0x88E8, - 45894 - 44032: 0x88E9, - 45895 - 44032: 0x88EA, - 45896 - 44032: 0x88EB, - 45897 - 44032: 0x88EC, - 45898 - 44032: 0x88ED, - 45899 - 44032: 0x88EE, - 45900 - 44032: 0x88EF, - 45901 - 44032: 0x88F0, - 45902 - 44032: 0x88F1, - 45903 - 44032: 0x88F2, - 45904 - 44032: 0x88F3, - 45905 - 44032: 0x88F4, - 45906 - 44032: 0x88F5, - 45907 - 44032: 0x88F6, - 45908 - 44032: 0xB4F5, - 45909 - 44032: 0xB4F6, - 45910 - 44032: 0xB4F7, - 45911 - 44032: 0x88F7, - 45912 - 44032: 0xB4F8, - 45913 - 44032: 0x88F8, - 45914 - 44032: 0x88F9, - 45915 - 44032: 0xB4F9, - 45916 - 44032: 0xB4FA, - 45917 - 44032: 0x88FA, - 45918 - 44032: 0xB4FB, - 45919 - 44032: 0xB4FC, - 45920 - 44032: 0x88FB, - 45921 - 44032: 0x88FC, - 45922 - 44032: 0x88FD, - 45923 - 44032: 0x88FE, - 45924 - 44032: 0xB4FD, - 45925 - 44032: 0xB4FE, - 45926 - 44032: 0x8941, - 45927 - 44032: 0xB5A1, - 45928 - 44032: 0x8942, - 45929 - 44032: 0xB5A2, - 45930 - 44032: 0x8943, - 45931 - 44032: 0xB5A3, - 45932 - 44032: 0x8944, - 45933 - 44032: 0x8945, - 45934 - 44032: 0xB5A4, - 45935 - 44032: 0x8946, - 45936 - 44032: 0xB5A5, - 45937 - 44032: 0xB5A6, - 45938 - 44032: 0x8947, - 45939 - 44032: 0x8948, - 45940 - 44032: 0xB5A7, - 45941 - 44032: 0x8949, - 45942 - 44032: 0x894A, - 45943 - 44032: 0x894B, - 45944 - 44032: 0xB5A8, - 45945 - 44032: 0x894C, - 45946 - 44032: 0x894D, - 45947 - 44032: 0x894E, - 45948 - 44032: 0x894F, - 45949 - 44032: 0x8950, - 45950 - 44032: 0x8951, - 45951 - 44032: 0x8952, - 45952 - 44032: 0xB5A9, - 45953 - 44032: 0xB5AA, - 45954 - 44032: 0x8953, - 45955 - 44032: 0xB5AB, - 45956 - 44032: 0xB5AC, - 45957 - 44032: 0xB5AD, - 45958 - 44032: 0x8954, - 45959 - 44032: 0x8955, - 45960 - 44032: 0x8956, - 45961 - 44032: 0x8957, - 45962 - 44032: 0x8958, - 45963 - 44032: 0x8959, - 45964 - 44032: 0xB5AE, - 45965 - 44032: 0x895A, - 45966 - 44032: 0x8961, - 45967 - 44032: 0x8962, - 45968 - 44032: 0xB5AF, - 45969 - 44032: 0x8963, - 45970 - 44032: 0x8964, - 45971 - 44032: 0x8965, - 45972 - 44032: 0xB5B0, - 45973 - 44032: 0x8966, - 45974 - 44032: 0x8967, - 45975 - 44032: 0x8968, - 45976 - 44032: 0x8969, - 45977 - 44032: 0x896A, - 45978 - 44032: 0x896B, - 45979 - 44032: 0x896C, - 45980 - 44032: 0x896D, - 45981 - 44032: 0x896E, - 45982 - 44032: 0x896F, - 45983 - 44032: 0x8970, - 45984 - 44032: 0xB5B1, - 45985 - 44032: 0xB5B2, - 45986 - 44032: 0x8971, - 45987 - 44032: 0x8972, - 45988 - 44032: 0x8973, - 45989 - 44032: 0x8974, - 45990 - 44032: 0x8975, - 45991 - 44032: 0x8976, - 45992 - 44032: 0xB5B3, - 45993 - 44032: 0x8977, - 45994 - 44032: 0x8978, - 45995 - 44032: 0x8979, - 45996 - 44032: 0xB5B4, - 45997 - 44032: 0x897A, - 45998 - 44032: 0x8981, - 45999 - 44032: 0x8982, - 46000 - 44032: 0x8983, - 46001 - 44032: 0x8984, - 46002 - 44032: 0x8985, - 46003 - 44032: 0x8986, - 46004 - 44032: 0x8987, - 46005 - 44032: 0x8988, - 46006 - 44032: 0x8989, - 46007 - 44032: 0x898A, - 46008 - 44032: 0x898B, - 46009 - 44032: 0x898C, - 46010 - 44032: 0x898D, - 46011 - 44032: 0x898E, - 46012 - 44032: 0x898F, - 46013 - 44032: 0x8990, - 46014 - 44032: 0x8991, - 46015 - 44032: 0x8992, - 46016 - 44032: 0x8993, - 46017 - 44032: 0x8994, - 46018 - 44032: 0x8995, - 46019 - 44032: 0x8996, - 46020 - 44032: 0xB5B5, - 46021 - 44032: 0xB5B6, - 46022 - 44032: 0x8997, - 46023 - 44032: 0x8998, - 46024 - 44032: 0xB5B7, - 46025 - 44032: 0x8999, - 46026 - 44032: 0x899A, - 46027 - 44032: 0xB5B8, - 46028 - 44032: 0xB5B9, - 46029 - 44032: 0x899B, - 46030 - 44032: 0xB5BA, - 46031 - 44032: 0x899C, - 46032 - 44032: 0xB5BB, - 46033 - 44032: 0x899D, - 46034 - 44032: 0x899E, - 46035 - 44032: 0x899F, - 46036 - 44032: 0xB5BC, - 46037 - 44032: 0xB5BD, - 46038 - 44032: 0x89A0, - 46039 - 44032: 0xB5BE, - 46040 - 44032: 0x89A1, - 46041 - 44032: 0xB5BF, - 46042 - 44032: 0x89A2, - 46043 - 44032: 0xB5C0, - 46044 - 44032: 0x89A3, - 46045 - 44032: 0xB5C1, - 46046 - 44032: 0x89A4, - 46047 - 44032: 0x89A5, - 46048 - 44032: 0xB5C2, - 46049 - 44032: 0x89A6, - 46050 - 44032: 0x89A7, - 46051 - 44032: 0x89A8, - 46052 - 44032: 0xB5C3, - 46053 - 44032: 0x89A9, - 46054 - 44032: 0x89AA, - 46055 - 44032: 0x89AB, - 46056 - 44032: 0xB5C4, - 46057 - 44032: 0x89AC, - 46058 - 44032: 0x89AD, - 46059 - 44032: 0x89AE, - 46060 - 44032: 0x89AF, - 46061 - 44032: 0x89B0, - 46062 - 44032: 0x89B1, - 46063 - 44032: 0x89B2, - 46064 - 44032: 0x89B3, - 46065 - 44032: 0x89B4, - 46066 - 44032: 0x89B5, - 46067 - 44032: 0x89B6, - 46068 - 44032: 0x89B7, - 46069 - 44032: 0x89B8, - 46070 - 44032: 0x89B9, - 46071 - 44032: 0x89BA, - 46072 - 44032: 0x89BB, - 46073 - 44032: 0x89BC, - 46074 - 44032: 0x89BD, - 46075 - 44032: 0x89BE, - 46076 - 44032: 0xB5C5, - 46077 - 44032: 0x89BF, - 46078 - 44032: 0x89C0, - 46079 - 44032: 0x89C1, - 46080 - 44032: 0x89C2, - 46081 - 44032: 0x89C3, - 46082 - 44032: 0x89C4, - 46083 - 44032: 0x89C5, - 46084 - 44032: 0x89C6, - 46085 - 44032: 0x89C7, - 46086 - 44032: 0x89C8, - 46087 - 44032: 0x89C9, - 46088 - 44032: 0x89CA, - 46089 - 44032: 0x89CB, - 46090 - 44032: 0x89CC, - 46091 - 44032: 0x89CD, - 46092 - 44032: 0x89CE, - 46093 - 44032: 0x89CF, - 46094 - 44032: 0x89D0, - 46095 - 44032: 0x89D1, - 46096 - 44032: 0xB5C6, - 46097 - 44032: 0x89D2, - 46098 - 44032: 0x89D3, - 46099 - 44032: 0x89D4, - 46100 - 44032: 0x89D5, - 46101 - 44032: 0x89D6, - 46102 - 44032: 0x89D7, - 46103 - 44032: 0x89D8, - 46104 - 44032: 0xB5C7, - 46105 - 44032: 0x89D9, - 46106 - 44032: 0x89DA, - 46107 - 44032: 0x89DB, - 46108 - 44032: 0xB5C8, - 46109 - 44032: 0x89DC, - 46110 - 44032: 0x89DD, - 46111 - 44032: 0x89DE, - 46112 - 44032: 0xB5C9, - 46113 - 44032: 0x89DF, - 46114 - 44032: 0x89E0, - 46115 - 44032: 0x89E1, - 46116 - 44032: 0x89E2, - 46117 - 44032: 0x89E3, - 46118 - 44032: 0x89E4, - 46119 - 44032: 0x89E5, - 46120 - 44032: 0xB5CA, - 46121 - 44032: 0xB5CB, - 46122 - 44032: 0x89E6, - 46123 - 44032: 0xB5CC, - 46124 - 44032: 0x89E7, - 46125 - 44032: 0x89E8, - 46126 - 44032: 0x89E9, - 46127 - 44032: 0x89EA, - 46128 - 44032: 0x89EB, - 46129 - 44032: 0x89EC, - 46130 - 44032: 0x89ED, - 46131 - 44032: 0x89EE, - 46132 - 44032: 0xB5CD, - 46133 - 44032: 0x89EF, - 46134 - 44032: 0x89F0, - 46135 - 44032: 0x89F1, - 46136 - 44032: 0x89F2, - 46137 - 44032: 0x89F3, - 46138 - 44032: 0x89F4, - 46139 - 44032: 0x89F5, - 46140 - 44032: 0x89F6, - 46141 - 44032: 0x89F7, - 46142 - 44032: 0x89F8, - 46143 - 44032: 0x89F9, - 46144 - 44032: 0x89FA, - 46145 - 44032: 0x89FB, - 46146 - 44032: 0x89FC, - 46147 - 44032: 0x89FD, - 46148 - 44032: 0x89FE, - 46149 - 44032: 0x8A41, - 46150 - 44032: 0x8A42, - 46151 - 44032: 0x8A43, - 46152 - 44032: 0x8A44, - 46153 - 44032: 0x8A45, - 46154 - 44032: 0x8A46, - 46155 - 44032: 0x8A47, - 46156 - 44032: 0x8A48, - 46157 - 44032: 0x8A49, - 46158 - 44032: 0x8A4A, - 46159 - 44032: 0x8A4B, - 46160 - 44032: 0xB5CE, - 46161 - 44032: 0xB5CF, - 46162 - 44032: 0x8A4C, - 46163 - 44032: 0x8A4D, - 46164 - 44032: 0xB5D0, - 46165 - 44032: 0x8A4E, - 46166 - 44032: 0x8A4F, - 46167 - 44032: 0x8A50, - 46168 - 44032: 0xB5D1, - 46169 - 44032: 0x8A51, - 46170 - 44032: 0x8A52, - 46171 - 44032: 0x8A53, - 46172 - 44032: 0x8A54, - 46173 - 44032: 0x8A55, - 46174 - 44032: 0x8A56, - 46175 - 44032: 0x8A57, - 46176 - 44032: 0xB5D2, - 46177 - 44032: 0xB5D3, - 46178 - 44032: 0x8A58, - 46179 - 44032: 0xB5D4, - 46180 - 44032: 0x8A59, - 46181 - 44032: 0xB5D5, - 46182 - 44032: 0x8A5A, - 46183 - 44032: 0x8A61, - 46184 - 44032: 0x8A62, - 46185 - 44032: 0x8A63, - 46186 - 44032: 0x8A64, - 46187 - 44032: 0x8A65, - 46188 - 44032: 0xB5D6, - 46189 - 44032: 0x8A66, - 46190 - 44032: 0x8A67, - 46191 - 44032: 0x8A68, - 46192 - 44032: 0x8A69, - 46193 - 44032: 0x8A6A, - 46194 - 44032: 0x8A6B, - 46195 - 44032: 0x8A6C, - 46196 - 44032: 0x8A6D, - 46197 - 44032: 0x8A6E, - 46198 - 44032: 0x8A6F, - 46199 - 44032: 0x8A70, - 46200 - 44032: 0x8A71, - 46201 - 44032: 0x8A72, - 46202 - 44032: 0x8A73, - 46203 - 44032: 0x8A74, - 46204 - 44032: 0x8A75, - 46205 - 44032: 0x8A76, - 46206 - 44032: 0x8A77, - 46207 - 44032: 0x8A78, - 46208 - 44032: 0xB5D7, - 46209 - 44032: 0x8A79, - 46210 - 44032: 0x8A7A, - 46211 - 44032: 0x8A81, - 46212 - 44032: 0x8A82, - 46213 - 44032: 0x8A83, - 46214 - 44032: 0x8A84, - 46215 - 44032: 0x8A85, - 46216 - 44032: 0xB5D8, - 46217 - 44032: 0x8A86, - 46218 - 44032: 0x8A87, - 46219 - 44032: 0x8A88, - 46220 - 44032: 0x8A89, - 46221 - 44032: 0x8A8A, - 46222 - 44032: 0x8A8B, - 46223 - 44032: 0x8A8C, - 46224 - 44032: 0x8A8D, - 46225 - 44032: 0x8A8E, - 46226 - 44032: 0x8A8F, - 46227 - 44032: 0x8A90, - 46228 - 44032: 0x8A91, - 46229 - 44032: 0x8A92, - 46230 - 44032: 0x8A93, - 46231 - 44032: 0x8A94, - 46232 - 44032: 0x8A95, - 46233 - 44032: 0x8A96, - 46234 - 44032: 0x8A97, - 46235 - 44032: 0x8A98, - 46236 - 44032: 0x8A99, - 46237 - 44032: 0xB5D9, - 46238 - 44032: 0x8A9A, - 46239 - 44032: 0x8A9B, - 46240 - 44032: 0x8A9C, - 46241 - 44032: 0x8A9D, - 46242 - 44032: 0x8A9E, - 46243 - 44032: 0x8A9F, - 46244 - 44032: 0xB5DA, - 46245 - 44032: 0x8AA0, - 46246 - 44032: 0x8AA1, - 46247 - 44032: 0x8AA2, - 46248 - 44032: 0xB5DB, - 46249 - 44032: 0x8AA3, - 46250 - 44032: 0x8AA4, - 46251 - 44032: 0x8AA5, - 46252 - 44032: 0xB5DC, - 46253 - 44032: 0x8AA6, - 46254 - 44032: 0x8AA7, - 46255 - 44032: 0x8AA8, - 46256 - 44032: 0x8AA9, - 46257 - 44032: 0x8AAA, - 46258 - 44032: 0x8AAB, - 46259 - 44032: 0x8AAC, - 46260 - 44032: 0x8AAD, - 46261 - 44032: 0xB5DD, - 46262 - 44032: 0x8AAE, - 46263 - 44032: 0xB5DE, - 46264 - 44032: 0x8AAF, - 46265 - 44032: 0xB5DF, - 46266 - 44032: 0x8AB0, - 46267 - 44032: 0x8AB1, - 46268 - 44032: 0x8AB2, - 46269 - 44032: 0x8AB3, - 46270 - 44032: 0x8AB4, - 46271 - 44032: 0x8AB5, - 46272 - 44032: 0xB5E0, - 46273 - 44032: 0x8AB6, - 46274 - 44032: 0x8AB7, - 46275 - 44032: 0x8AB8, - 46276 - 44032: 0xB5E1, - 46277 - 44032: 0x8AB9, - 46278 - 44032: 0x8ABA, - 46279 - 44032: 0x8ABB, - 46280 - 44032: 0xB5E2, - 46281 - 44032: 0x8ABC, - 46282 - 44032: 0x8ABD, - 46283 - 44032: 0x8ABE, - 46284 - 44032: 0x8ABF, - 46285 - 44032: 0x8AC0, - 46286 - 44032: 0x8AC1, - 46287 - 44032: 0x8AC2, - 46288 - 44032: 0xB5E3, - 46289 - 44032: 0x8AC3, - 46290 - 44032: 0x8AC4, - 46291 - 44032: 0x8AC5, - 46292 - 44032: 0x8AC6, - 46293 - 44032: 0xB5E4, - 46294 - 44032: 0x8AC7, - 46295 - 44032: 0x8AC8, - 46296 - 44032: 0x8AC9, - 46297 - 44032: 0x8ACA, - 46298 - 44032: 0x8ACB, - 46299 - 44032: 0x8ACC, - 46300 - 44032: 0xB5E5, - 46301 - 44032: 0xB5E6, - 46302 - 44032: 0x8ACD, - 46303 - 44032: 0x8ACE, - 46304 - 44032: 0xB5E7, - 46305 - 44032: 0x8ACF, - 46306 - 44032: 0x8AD0, - 46307 - 44032: 0xB5E8, - 46308 - 44032: 0xB5E9, - 46309 - 44032: 0x8AD1, - 46310 - 44032: 0xB5EA, - 46311 - 44032: 0x8AD2, - 46312 - 44032: 0x8AD3, - 46313 - 44032: 0x8AD4, - 46314 - 44032: 0x8AD5, - 46315 - 44032: 0x8AD6, - 46316 - 44032: 0xB5EB, - 46317 - 44032: 0xB5EC, - 46318 - 44032: 0x8AD7, - 46319 - 44032: 0xB5ED, - 46320 - 44032: 0x8AD8, - 46321 - 44032: 0xB5EE, - 46322 - 44032: 0x8AD9, - 46323 - 44032: 0x8ADA, - 46324 - 44032: 0x8ADB, - 46325 - 44032: 0x8ADC, - 46326 - 44032: 0x8ADD, - 46327 - 44032: 0x8ADE, - 46328 - 44032: 0xB5EF, - 46329 - 44032: 0x8ADF, - 46330 - 44032: 0x8AE0, - 46331 - 44032: 0x8AE1, - 46332 - 44032: 0x8AE2, - 46333 - 44032: 0x8AE3, - 46334 - 44032: 0x8AE4, - 46335 - 44032: 0x8AE5, - 46336 - 44032: 0x8AE6, - 46337 - 44032: 0x8AE7, - 46338 - 44032: 0x8AE8, - 46339 - 44032: 0x8AE9, - 46340 - 44032: 0x8AEA, - 46341 - 44032: 0x8AEB, - 46342 - 44032: 0x8AEC, - 46343 - 44032: 0x8AED, - 46344 - 44032: 0x8AEE, - 46345 - 44032: 0x8AEF, - 46346 - 44032: 0x8AF0, - 46347 - 44032: 0x8AF1, - 46348 - 44032: 0x8AF2, - 46349 - 44032: 0x8AF3, - 46350 - 44032: 0x8AF4, - 46351 - 44032: 0x8AF5, - 46352 - 44032: 0x8AF6, - 46353 - 44032: 0x8AF7, - 46354 - 44032: 0x8AF8, - 46355 - 44032: 0x8AF9, - 46356 - 44032: 0xB5F0, - 46357 - 44032: 0xB5F1, - 46358 - 44032: 0x8AFA, - 46359 - 44032: 0x8AFB, - 46360 - 44032: 0xB5F2, - 46361 - 44032: 0x8AFC, - 46362 - 44032: 0x8AFD, - 46363 - 44032: 0xB5F3, - 46364 - 44032: 0xB5F4, - 46365 - 44032: 0x8AFE, - 46366 - 44032: 0x8B41, - 46367 - 44032: 0x8B42, - 46368 - 44032: 0x8B43, - 46369 - 44032: 0x8B44, - 46370 - 44032: 0x8B45, - 46371 - 44032: 0x8B46, - 46372 - 44032: 0xB5F5, - 46373 - 44032: 0xB5F6, - 46374 - 44032: 0x8B47, - 46375 - 44032: 0xB5F7, - 46376 - 44032: 0xB5F8, - 46377 - 44032: 0xB5F9, - 46378 - 44032: 0xB5FA, - 46379 - 44032: 0x8B48, - 46380 - 44032: 0x8B49, - 46381 - 44032: 0x8B4A, - 46382 - 44032: 0x8B4B, - 46383 - 44032: 0x8B4C, - 46384 - 44032: 0xB5FB, - 46385 - 44032: 0xB5FC, - 46386 - 44032: 0x8B4D, - 46387 - 44032: 0x8B4E, - 46388 - 44032: 0xB5FD, - 46389 - 44032: 0x8B4F, - 46390 - 44032: 0x8B50, - 46391 - 44032: 0x8B51, - 46392 - 44032: 0xB5FE, - 46393 - 44032: 0x8B52, - 46394 - 44032: 0x8B53, - 46395 - 44032: 0x8B54, - 46396 - 44032: 0x8B55, - 46397 - 44032: 0x8B56, - 46398 - 44032: 0x8B57, - 46399 - 44032: 0x8B58, - 46400 - 44032: 0xB6A1, - 46401 - 44032: 0xB6A2, - 46402 - 44032: 0x8B59, - 46403 - 44032: 0xB6A3, - 46404 - 44032: 0xB6A4, - 46405 - 44032: 0xB6A5, - 46406 - 44032: 0x8B5A, - 46407 - 44032: 0x8B61, - 46408 - 44032: 0x8B62, - 46409 - 44032: 0x8B63, - 46410 - 44032: 0x8B64, - 46411 - 44032: 0xB6A6, - 46412 - 44032: 0xB6A7, - 46413 - 44032: 0xB6A8, - 46414 - 44032: 0x8B65, - 46415 - 44032: 0x8B66, - 46416 - 44032: 0xB6A9, - 46417 - 44032: 0x8B67, - 46418 - 44032: 0x8B68, - 46419 - 44032: 0x8B69, - 46420 - 44032: 0xB6AA, - 46421 - 44032: 0x8B6A, - 46422 - 44032: 0x8B6B, - 46423 - 44032: 0x8B6C, - 46424 - 44032: 0x8B6D, - 46425 - 44032: 0x8B6E, - 46426 - 44032: 0x8B6F, - 46427 - 44032: 0x8B70, - 46428 - 44032: 0xB6AB, - 46429 - 44032: 0xB6AC, - 46430 - 44032: 0x8B71, - 46431 - 44032: 0xB6AD, - 46432 - 44032: 0xB6AE, - 46433 - 44032: 0xB6AF, - 46434 - 44032: 0x8B72, - 46435 - 44032: 0x8B73, - 46436 - 44032: 0x8B74, - 46437 - 44032: 0x8B75, - 46438 - 44032: 0x8B76, - 46439 - 44032: 0x8B77, - 46440 - 44032: 0x8B78, - 46441 - 44032: 0x8B79, - 46442 - 44032: 0x8B7A, - 46443 - 44032: 0x8B81, - 46444 - 44032: 0x8B82, - 46445 - 44032: 0x8B83, - 46446 - 44032: 0x8B84, - 46447 - 44032: 0x8B85, - 46448 - 44032: 0x8B86, - 46449 - 44032: 0x8B87, - 46450 - 44032: 0x8B88, - 46451 - 44032: 0x8B89, - 46452 - 44032: 0x8B8A, - 46453 - 44032: 0x8B8B, - 46454 - 44032: 0x8B8C, - 46455 - 44032: 0x8B8D, - 46456 - 44032: 0x8B8E, - 46457 - 44032: 0x8B8F, - 46458 - 44032: 0x8B90, - 46459 - 44032: 0x8B91, - 46460 - 44032: 0x8B92, - 46461 - 44032: 0x8B93, - 46462 - 44032: 0x8B94, - 46463 - 44032: 0x8B95, - 46464 - 44032: 0x8B96, - 46465 - 44032: 0x8B97, - 46466 - 44032: 0x8B98, - 46467 - 44032: 0x8B99, - 46468 - 44032: 0x8B9A, - 46469 - 44032: 0x8B9B, - 46470 - 44032: 0x8B9C, - 46471 - 44032: 0x8B9D, - 46472 - 44032: 0x8B9E, - 46473 - 44032: 0x8B9F, - 46474 - 44032: 0x8BA0, - 46475 - 44032: 0x8BA1, - 46476 - 44032: 0x8BA2, - 46477 - 44032: 0x8BA3, - 46478 - 44032: 0x8BA4, - 46479 - 44032: 0x8BA5, - 46480 - 44032: 0x8BA6, - 46481 - 44032: 0x8BA7, - 46482 - 44032: 0x8BA8, - 46483 - 44032: 0x8BA9, - 46484 - 44032: 0x8BAA, - 46485 - 44032: 0x8BAB, - 46486 - 44032: 0x8BAC, - 46487 - 44032: 0x8BAD, - 46488 - 44032: 0x8BAE, - 46489 - 44032: 0x8BAF, - 46490 - 44032: 0x8BB0, - 46491 - 44032: 0x8BB1, - 46492 - 44032: 0x8BB2, - 46493 - 44032: 0x8BB3, - 46494 - 44032: 0x8BB4, - 46495 - 44032: 0x8BB5, - 46496 - 44032: 0xB6B0, - 46497 - 44032: 0xB6B1, - 46498 - 44032: 0x8BB6, - 46499 - 44032: 0x8BB7, - 46500 - 44032: 0xB6B2, - 46501 - 44032: 0x8BB8, - 46502 - 44032: 0x8BB9, - 46503 - 44032: 0x8BBA, - 46504 - 44032: 0xB6B3, - 46505 - 44032: 0x8BBB, - 46506 - 44032: 0xB6B4, - 46507 - 44032: 0xB6B5, - 46508 - 44032: 0x8BBC, - 46509 - 44032: 0x8BBD, - 46510 - 44032: 0x8BBE, - 46511 - 44032: 0x8BBF, - 46512 - 44032: 0xB6B6, - 46513 - 44032: 0xB6B7, - 46514 - 44032: 0x8BC0, - 46515 - 44032: 0xB6B8, - 46516 - 44032: 0xB6B9, - 46517 - 44032: 0xB6BA, - 46518 - 44032: 0x8BC1, - 46519 - 44032: 0x8BC2, - 46520 - 44032: 0x8BC3, - 46521 - 44032: 0x8BC4, - 46522 - 44032: 0x8BC5, - 46523 - 44032: 0xB6BB, - 46524 - 44032: 0xB6BC, - 46525 - 44032: 0xB6BD, - 46526 - 44032: 0x8BC6, - 46527 - 44032: 0x8BC7, - 46528 - 44032: 0xB6BE, - 46529 - 44032: 0x8BC8, - 46530 - 44032: 0x8BC9, - 46531 - 44032: 0x8BCA, - 46532 - 44032: 0xB6BF, - 46533 - 44032: 0x8BCB, - 46534 - 44032: 0x8BCC, - 46535 - 44032: 0x8BCD, - 46536 - 44032: 0x8BCE, - 46537 - 44032: 0x8BCF, - 46538 - 44032: 0x8BD0, - 46539 - 44032: 0x8BD1, - 46540 - 44032: 0xB6C0, - 46541 - 44032: 0xB6C1, - 46542 - 44032: 0x8BD2, - 46543 - 44032: 0xB6C2, - 46544 - 44032: 0xB6C3, - 46545 - 44032: 0xB6C4, - 46546 - 44032: 0x8BD3, - 46547 - 44032: 0x8BD4, - 46548 - 44032: 0x8BD5, - 46549 - 44032: 0x8BD6, - 46550 - 44032: 0x8BD7, - 46551 - 44032: 0x8BD8, - 46552 - 44032: 0xB6C5, - 46553 - 44032: 0x8BD9, - 46554 - 44032: 0x8BDA, - 46555 - 44032: 0x8BDB, - 46556 - 44032: 0x8BDC, - 46557 - 44032: 0x8BDD, - 46558 - 44032: 0x8BDE, - 46559 - 44032: 0x8BDF, - 46560 - 44032: 0x8BE0, - 46561 - 44032: 0x8BE1, - 46562 - 44032: 0x8BE2, - 46563 - 44032: 0x8BE3, - 46564 - 44032: 0x8BE4, - 46565 - 44032: 0x8BE5, - 46566 - 44032: 0x8BE6, - 46567 - 44032: 0x8BE7, - 46568 - 44032: 0x8BE8, - 46569 - 44032: 0x8BE9, - 46570 - 44032: 0x8BEA, - 46571 - 44032: 0x8BEB, - 46572 - 44032: 0xB6C6, - 46573 - 44032: 0x8BEC, - 46574 - 44032: 0x8BED, - 46575 - 44032: 0x8BEE, - 46576 - 44032: 0x8BEF, - 46577 - 44032: 0x8BF0, - 46578 - 44032: 0x8BF1, - 46579 - 44032: 0x8BF2, - 46580 - 44032: 0x8BF3, - 46581 - 44032: 0x8BF4, - 46582 - 44032: 0x8BF5, - 46583 - 44032: 0x8BF6, - 46584 - 44032: 0x8BF7, - 46585 - 44032: 0x8BF8, - 46586 - 44032: 0x8BF9, - 46587 - 44032: 0x8BFA, - 46588 - 44032: 0x8BFB, - 46589 - 44032: 0x8BFC, - 46590 - 44032: 0x8BFD, - 46591 - 44032: 0x8BFE, - 46592 - 44032: 0x8C41, - 46593 - 44032: 0x8C42, - 46594 - 44032: 0x8C43, - 46595 - 44032: 0x8C44, - 46596 - 44032: 0x8C45, - 46597 - 44032: 0x8C46, - 46598 - 44032: 0x8C47, - 46599 - 44032: 0x8C48, - 46600 - 44032: 0x8C49, - 46601 - 44032: 0x8C4A, - 46602 - 44032: 0x8C4B, - 46603 - 44032: 0x8C4C, - 46604 - 44032: 0x8C4D, - 46605 - 44032: 0x8C4E, - 46606 - 44032: 0x8C4F, - 46607 - 44032: 0x8C50, - 46608 - 44032: 0xB6C7, - 46609 - 44032: 0xB6C8, - 46610 - 44032: 0x8C51, - 46611 - 44032: 0x8C52, - 46612 - 44032: 0xB6C9, - 46613 - 44032: 0x8C53, - 46614 - 44032: 0x8C54, - 46615 - 44032: 0x8C55, - 46616 - 44032: 0xB6CA, - 46617 - 44032: 0x8C56, - 46618 - 44032: 0x8C57, - 46619 - 44032: 0x8C58, - 46620 - 44032: 0x8C59, - 46621 - 44032: 0x8C5A, - 46622 - 44032: 0x8C61, - 46623 - 44032: 0x8C62, - 46624 - 44032: 0x8C63, - 46625 - 44032: 0x8C64, - 46626 - 44032: 0x8C65, - 46627 - 44032: 0x8C66, - 46628 - 44032: 0x8C67, - 46629 - 44032: 0xB6CB, - 46630 - 44032: 0x8C68, - 46631 - 44032: 0x8C69, - 46632 - 44032: 0x8C6A, - 46633 - 44032: 0x8C6B, - 46634 - 44032: 0x8C6C, - 46635 - 44032: 0x8C6D, - 46636 - 44032: 0xB6CC, - 46637 - 44032: 0x8C6E, - 46638 - 44032: 0x8C6F, - 46639 - 44032: 0x8C70, - 46640 - 44032: 0x8C71, - 46641 - 44032: 0x8C72, - 46642 - 44032: 0x8C73, - 46643 - 44032: 0x8C74, - 46644 - 44032: 0xB6CD, - 46645 - 44032: 0x8C75, - 46646 - 44032: 0x8C76, - 46647 - 44032: 0x8C77, - 46648 - 44032: 0x8C78, - 46649 - 44032: 0x8C79, - 46650 - 44032: 0x8C7A, - 46651 - 44032: 0x8C81, - 46652 - 44032: 0x8C82, - 46653 - 44032: 0x8C83, - 46654 - 44032: 0x8C84, - 46655 - 44032: 0x8C85, - 46656 - 44032: 0x8C86, - 46657 - 44032: 0x8C87, - 46658 - 44032: 0x8C88, - 46659 - 44032: 0x8C89, - 46660 - 44032: 0x8C8A, - 46661 - 44032: 0x8C8B, - 46662 - 44032: 0x8C8C, - 46663 - 44032: 0x8C8D, - 46664 - 44032: 0xB6CE, - 46665 - 44032: 0x8C8E, - 46666 - 44032: 0x8C8F, - 46667 - 44032: 0x8C90, - 46668 - 44032: 0x8C91, - 46669 - 44032: 0x8C92, - 46670 - 44032: 0x8C93, - 46671 - 44032: 0x8C94, - 46672 - 44032: 0x8C95, - 46673 - 44032: 0x8C96, - 46674 - 44032: 0x8C97, - 46675 - 44032: 0x8C98, - 46676 - 44032: 0x8C99, - 46677 - 44032: 0x8C9A, - 46678 - 44032: 0x8C9B, - 46679 - 44032: 0x8C9C, - 46680 - 44032: 0x8C9D, - 46681 - 44032: 0x8C9E, - 46682 - 44032: 0x8C9F, - 46683 - 44032: 0x8CA0, - 46684 - 44032: 0x8CA1, - 46685 - 44032: 0x8CA2, - 46686 - 44032: 0x8CA3, - 46687 - 44032: 0x8CA4, - 46688 - 44032: 0x8CA5, - 46689 - 44032: 0x8CA6, - 46690 - 44032: 0x8CA7, - 46691 - 44032: 0x8CA8, - 46692 - 44032: 0xB6CF, - 46693 - 44032: 0x8CA9, - 46694 - 44032: 0x8CAA, - 46695 - 44032: 0x8CAB, - 46696 - 44032: 0xB6D0, - 46697 - 44032: 0x8CAC, - 46698 - 44032: 0x8CAD, - 46699 - 44032: 0x8CAE, - 46700 - 44032: 0x8CAF, - 46701 - 44032: 0x8CB0, - 46702 - 44032: 0x8CB1, - 46703 - 44032: 0x8CB2, - 46704 - 44032: 0x8CB3, - 46705 - 44032: 0x8CB4, - 46706 - 44032: 0x8CB5, - 46707 - 44032: 0x8CB6, - 46708 - 44032: 0x8CB7, - 46709 - 44032: 0x8CB8, - 46710 - 44032: 0x8CB9, - 46711 - 44032: 0x8CBA, - 46712 - 44032: 0x8CBB, - 46713 - 44032: 0x8CBC, - 46714 - 44032: 0x8CBD, - 46715 - 44032: 0x8CBE, - 46716 - 44032: 0x8CBF, - 46717 - 44032: 0x8CC0, - 46718 - 44032: 0x8CC1, - 46719 - 44032: 0x8CC2, - 46720 - 44032: 0x8CC3, - 46721 - 44032: 0x8CC4, - 46722 - 44032: 0x8CC5, - 46723 - 44032: 0x8CC6, - 46724 - 44032: 0x8CC7, - 46725 - 44032: 0x8CC8, - 46726 - 44032: 0x8CC9, - 46727 - 44032: 0x8CCA, - 46728 - 44032: 0x8CCB, - 46729 - 44032: 0x8CCC, - 46730 - 44032: 0x8CCD, - 46731 - 44032: 0x8CCE, - 46732 - 44032: 0x8CCF, - 46733 - 44032: 0x8CD0, - 46734 - 44032: 0x8CD1, - 46735 - 44032: 0x8CD2, - 46736 - 44032: 0x8CD3, - 46737 - 44032: 0x8CD4, - 46738 - 44032: 0x8CD5, - 46739 - 44032: 0x8CD6, - 46740 - 44032: 0x8CD7, - 46741 - 44032: 0x8CD8, - 46742 - 44032: 0x8CD9, - 46743 - 44032: 0x8CDA, - 46744 - 44032: 0x8CDB, - 46745 - 44032: 0x8CDC, - 46746 - 44032: 0x8CDD, - 46747 - 44032: 0x8CDE, - 46748 - 44032: 0xB6D1, - 46749 - 44032: 0xB6D2, - 46750 - 44032: 0x8CDF, - 46751 - 44032: 0x8CE0, - 46752 - 44032: 0xB6D3, - 46753 - 44032: 0x8CE1, - 46754 - 44032: 0x8CE2, - 46755 - 44032: 0x8CE3, - 46756 - 44032: 0xB6D4, - 46757 - 44032: 0x8CE4, - 46758 - 44032: 0x8CE5, - 46759 - 44032: 0x8CE6, - 46760 - 44032: 0x8CE7, - 46761 - 44032: 0x8CE8, - 46762 - 44032: 0x8CE9, - 46763 - 44032: 0xB6D5, - 46764 - 44032: 0xB6D6, - 46765 - 44032: 0x8CEA, - 46766 - 44032: 0x8CEB, - 46767 - 44032: 0x8CEC, - 46768 - 44032: 0x8CED, - 46769 - 44032: 0xB6D7, - 46770 - 44032: 0x8CEE, - 46771 - 44032: 0x8CEF, - 46772 - 44032: 0x8CF0, - 46773 - 44032: 0x8CF1, - 46774 - 44032: 0x8CF2, - 46775 - 44032: 0x8CF3, - 46776 - 44032: 0x8CF4, - 46777 - 44032: 0x8CF5, - 46778 - 44032: 0x8CF6, - 46779 - 44032: 0x8CF7, - 46780 - 44032: 0x8CF8, - 46781 - 44032: 0x8CF9, - 46782 - 44032: 0x8CFA, - 46783 - 44032: 0x8CFB, - 46784 - 44032: 0x8CFC, - 46785 - 44032: 0x8CFD, - 46786 - 44032: 0x8CFE, - 46787 - 44032: 0x8D41, - 46788 - 44032: 0x8D42, - 46789 - 44032: 0x8D43, - 46790 - 44032: 0x8D44, - 46791 - 44032: 0x8D45, - 46792 - 44032: 0x8D46, - 46793 - 44032: 0x8D47, - 46794 - 44032: 0x8D48, - 46795 - 44032: 0x8D49, - 46796 - 44032: 0x8D4A, - 46797 - 44032: 0x8D4B, - 46798 - 44032: 0x8D4C, - 46799 - 44032: 0x8D4D, - 46800 - 44032: 0x8D4E, - 46801 - 44032: 0x8D4F, - 46802 - 44032: 0x8D50, - 46803 - 44032: 0x8D51, - 46804 - 44032: 0xB6D8, - 46805 - 44032: 0x8D52, - 46806 - 44032: 0x8D53, - 46807 - 44032: 0x8D54, - 46808 - 44032: 0x8D55, - 46809 - 44032: 0x8D56, - 46810 - 44032: 0x8D57, - 46811 - 44032: 0x8D58, - 46812 - 44032: 0x8D59, - 46813 - 44032: 0x8D5A, - 46814 - 44032: 0x8D61, - 46815 - 44032: 0x8D62, - 46816 - 44032: 0x8D63, - 46817 - 44032: 0x8D64, - 46818 - 44032: 0x8D65, - 46819 - 44032: 0x8D66, - 46820 - 44032: 0x8D67, - 46821 - 44032: 0x8D68, - 46822 - 44032: 0x8D69, - 46823 - 44032: 0x8D6A, - 46824 - 44032: 0x8D6B, - 46825 - 44032: 0x8D6C, - 46826 - 44032: 0x8D6D, - 46827 - 44032: 0x8D6E, - 46828 - 44032: 0x8D6F, - 46829 - 44032: 0x8D70, - 46830 - 44032: 0x8D71, - 46831 - 44032: 0x8D72, - 46832 - 44032: 0xB6D9, - 46833 - 44032: 0x8D73, - 46834 - 44032: 0x8D74, - 46835 - 44032: 0x8D75, - 46836 - 44032: 0xB6DA, - 46837 - 44032: 0x8D76, - 46838 - 44032: 0x8D77, - 46839 - 44032: 0x8D78, - 46840 - 44032: 0xB6DB, - 46841 - 44032: 0x8D79, - 46842 - 44032: 0x8D7A, - 46843 - 44032: 0x8D81, - 46844 - 44032: 0x8D82, - 46845 - 44032: 0x8D83, - 46846 - 44032: 0x8D84, - 46847 - 44032: 0x8D85, - 46848 - 44032: 0xB6DC, - 46849 - 44032: 0xB6DD, - 46850 - 44032: 0x8D86, - 46851 - 44032: 0x8D87, - 46852 - 44032: 0x8D88, - 46853 - 44032: 0xB6DE, - 46854 - 44032: 0x8D89, - 46855 - 44032: 0x8D8A, - 46856 - 44032: 0x8D8B, - 46857 - 44032: 0x8D8C, - 46858 - 44032: 0x8D8D, - 46859 - 44032: 0x8D8E, - 46860 - 44032: 0x8D8F, - 46861 - 44032: 0x8D90, - 46862 - 44032: 0x8D91, - 46863 - 44032: 0x8D92, - 46864 - 44032: 0x8D93, - 46865 - 44032: 0x8D94, - 46866 - 44032: 0x8D95, - 46867 - 44032: 0x8D96, - 46868 - 44032: 0x8D97, - 46869 - 44032: 0x8D98, - 46870 - 44032: 0x8D99, - 46871 - 44032: 0x8D9A, - 46872 - 44032: 0x8D9B, - 46873 - 44032: 0x8D9C, - 46874 - 44032: 0x8D9D, - 46875 - 44032: 0x8D9E, - 46876 - 44032: 0x8D9F, - 46877 - 44032: 0x8DA0, - 46878 - 44032: 0x8DA1, - 46879 - 44032: 0x8DA2, - 46880 - 44032: 0x8DA3, - 46881 - 44032: 0x8DA4, - 46882 - 44032: 0x8DA5, - 46883 - 44032: 0x8DA6, - 46884 - 44032: 0x8DA7, - 46885 - 44032: 0x8DA8, - 46886 - 44032: 0x8DA9, - 46887 - 44032: 0x8DAA, - 46888 - 44032: 0xB6DF, - 46889 - 44032: 0xB6E0, - 46890 - 44032: 0x8DAB, - 46891 - 44032: 0x8DAC, - 46892 - 44032: 0xB6E1, - 46893 - 44032: 0x8DAD, - 46894 - 44032: 0x8DAE, - 46895 - 44032: 0xB6E2, - 46896 - 44032: 0xB6E3, - 46897 - 44032: 0x8DAF, - 46898 - 44032: 0x8DB0, - 46899 - 44032: 0x8DB1, - 46900 - 44032: 0x8DB2, - 46901 - 44032: 0x8DB3, - 46902 - 44032: 0x8DB4, - 46903 - 44032: 0x8DB5, - 46904 - 44032: 0xB6E4, - 46905 - 44032: 0xB6E5, - 46906 - 44032: 0x8DB6, - 46907 - 44032: 0xB6E6, - 46908 - 44032: 0x8DB7, - 46909 - 44032: 0x8DB8, - 46910 - 44032: 0x8DB9, - 46911 - 44032: 0x8DBA, - 46912 - 44032: 0x8DBB, - 46913 - 44032: 0x8DBC, - 46914 - 44032: 0x8DBD, - 46915 - 44032: 0x8DBE, - 46916 - 44032: 0xB6E7, - 46917 - 44032: 0x8DBF, - 46918 - 44032: 0x8DC0, - 46919 - 44032: 0x8DC1, - 46920 - 44032: 0xB6E8, - 46921 - 44032: 0x8DC2, - 46922 - 44032: 0x8DC3, - 46923 - 44032: 0x8DC4, - 46924 - 44032: 0xB6E9, - 46925 - 44032: 0x8DC5, - 46926 - 44032: 0x8DC6, - 46927 - 44032: 0x8DC7, - 46928 - 44032: 0x8DC8, - 46929 - 44032: 0x8DC9, - 46930 - 44032: 0x8DCA, - 46931 - 44032: 0x8DCB, - 46932 - 44032: 0xB6EA, - 46933 - 44032: 0xB6EB, - 46934 - 44032: 0x8DCC, - 46935 - 44032: 0x8DCD, - 46936 - 44032: 0x8DCE, - 46937 - 44032: 0x8DCF, - 46938 - 44032: 0x8DD0, - 46939 - 44032: 0x8DD1, - 46940 - 44032: 0x8DD2, - 46941 - 44032: 0x8DD3, - 46942 - 44032: 0x8DD4, - 46943 - 44032: 0x8DD5, - 46944 - 44032: 0xB6EC, - 46945 - 44032: 0x8DD6, - 46946 - 44032: 0x8DD7, - 46947 - 44032: 0x8DD8, - 46948 - 44032: 0xB6ED, - 46949 - 44032: 0x8DD9, - 46950 - 44032: 0x8DDA, - 46951 - 44032: 0x8DDB, - 46952 - 44032: 0xB6EE, - 46953 - 44032: 0x8DDC, - 46954 - 44032: 0x8DDD, - 46955 - 44032: 0x8DDE, - 46956 - 44032: 0x8DDF, - 46957 - 44032: 0x8DE0, - 46958 - 44032: 0x8DE1, - 46959 - 44032: 0x8DE2, - 46960 - 44032: 0xB6EF, - 46961 - 44032: 0xB6F0, - 46962 - 44032: 0x8DE3, - 46963 - 44032: 0xB6F1, - 46964 - 44032: 0x8DE4, - 46965 - 44032: 0xB6F2, - 46966 - 44032: 0x8DE5, - 46967 - 44032: 0x8DE6, - 46968 - 44032: 0x8DE7, - 46969 - 44032: 0x8DE8, - 46970 - 44032: 0x8DE9, - 46971 - 44032: 0x8DEA, - 46972 - 44032: 0xB6F3, - 46973 - 44032: 0xB6F4, - 46974 - 44032: 0x8DEB, - 46975 - 44032: 0x8DEC, - 46976 - 44032: 0xB6F5, - 46977 - 44032: 0x8DED, - 46978 - 44032: 0x8DEE, - 46979 - 44032: 0x8DEF, - 46980 - 44032: 0xB6F6, - 46981 - 44032: 0x8DF0, - 46982 - 44032: 0x8DF1, - 46983 - 44032: 0x8DF2, - 46984 - 44032: 0x8DF3, - 46985 - 44032: 0x8DF4, - 46986 - 44032: 0x8DF5, - 46987 - 44032: 0x8DF6, - 46988 - 44032: 0xB6F7, - 46989 - 44032: 0xB6F8, - 46990 - 44032: 0x8DF7, - 46991 - 44032: 0xB6F9, - 46992 - 44032: 0xB6FA, - 46993 - 44032: 0xB6FB, - 46994 - 44032: 0xB6FC, - 46995 - 44032: 0x8DF8, - 46996 - 44032: 0x8DF9, - 46997 - 44032: 0x8DFA, - 46998 - 44032: 0xB6FD, - 46999 - 44032: 0xB6FE, - 47000 - 44032: 0xB7A1, - 47001 - 44032: 0xB7A2, - 47002 - 44032: 0x8DFB, - 47003 - 44032: 0x8DFC, - 47004 - 44032: 0xB7A3, - 47005 - 44032: 0x8DFD, - 47006 - 44032: 0x8DFE, - 47007 - 44032: 0x8E41, - 47008 - 44032: 0xB7A4, - 47009 - 44032: 0x8E42, - 47010 - 44032: 0x8E43, - 47011 - 44032: 0x8E44, - 47012 - 44032: 0x8E45, - 47013 - 44032: 0x8E46, - 47014 - 44032: 0x8E47, - 47015 - 44032: 0x8E48, - 47016 - 44032: 0xB7A5, - 47017 - 44032: 0xB7A6, - 47018 - 44032: 0x8E49, - 47019 - 44032: 0xB7A7, - 47020 - 44032: 0xB7A8, - 47021 - 44032: 0xB7A9, - 47022 - 44032: 0x8E4A, - 47023 - 44032: 0x8E4B, - 47024 - 44032: 0x8E4C, - 47025 - 44032: 0x8E4D, - 47026 - 44032: 0x8E4E, - 47027 - 44032: 0x8E4F, - 47028 - 44032: 0xB7AA, - 47029 - 44032: 0xB7AB, - 47030 - 44032: 0x8E50, - 47031 - 44032: 0x8E51, - 47032 - 44032: 0xB7AC, - 47033 - 44032: 0x8E52, - 47034 - 44032: 0x8E53, - 47035 - 44032: 0x8E54, - 47036 - 44032: 0x8E55, - 47037 - 44032: 0x8E56, - 47038 - 44032: 0x8E57, - 47039 - 44032: 0x8E58, - 47040 - 44032: 0x8E59, - 47041 - 44032: 0x8E5A, - 47042 - 44032: 0x8E61, - 47043 - 44032: 0x8E62, - 47044 - 44032: 0x8E63, - 47045 - 44032: 0x8E64, - 47046 - 44032: 0x8E65, - 47047 - 44032: 0xB7AD, - 47048 - 44032: 0x8E66, - 47049 - 44032: 0xB7AE, - 47050 - 44032: 0x8E67, - 47051 - 44032: 0x8E68, - 47052 - 44032: 0x8E69, - 47053 - 44032: 0x8E6A, - 47054 - 44032: 0x8E6B, - 47055 - 44032: 0x8E6C, - 47056 - 44032: 0x8E6D, - 47057 - 44032: 0x8E6E, - 47058 - 44032: 0x8E6F, - 47059 - 44032: 0x8E70, - 47060 - 44032: 0x8E71, - 47061 - 44032: 0x8E72, - 47062 - 44032: 0x8E73, - 47063 - 44032: 0x8E74, - 47064 - 44032: 0x8E75, - 47065 - 44032: 0x8E76, - 47066 - 44032: 0x8E77, - 47067 - 44032: 0x8E78, - 47068 - 44032: 0x8E79, - 47069 - 44032: 0x8E7A, - 47070 - 44032: 0x8E81, - 47071 - 44032: 0x8E82, - 47072 - 44032: 0x8E83, - 47073 - 44032: 0x8E84, - 47074 - 44032: 0x8E85, - 47075 - 44032: 0x8E86, - 47076 - 44032: 0x8E87, - 47077 - 44032: 0x8E88, - 47078 - 44032: 0x8E89, - 47079 - 44032: 0x8E8A, - 47080 - 44032: 0x8E8B, - 47081 - 44032: 0x8E8C, - 47082 - 44032: 0x8E8D, - 47083 - 44032: 0x8E8E, - 47084 - 44032: 0xB7AF, - 47085 - 44032: 0xB7B0, - 47086 - 44032: 0x8E8F, - 47087 - 44032: 0x8E90, - 47088 - 44032: 0xB7B1, - 47089 - 44032: 0x8E91, - 47090 - 44032: 0x8E92, - 47091 - 44032: 0x8E93, - 47092 - 44032: 0xB7B2, - 47093 - 44032: 0x8E94, - 47094 - 44032: 0x8E95, - 47095 - 44032: 0x8E96, - 47096 - 44032: 0x8E97, - 47097 - 44032: 0x8E98, - 47098 - 44032: 0x8E99, - 47099 - 44032: 0x8E9A, - 47100 - 44032: 0xB7B3, - 47101 - 44032: 0xB7B4, - 47102 - 44032: 0x8E9B, - 47103 - 44032: 0xB7B5, - 47104 - 44032: 0xB7B6, - 47105 - 44032: 0xB7B7, - 47106 - 44032: 0x8E9C, - 47107 - 44032: 0x8E9D, - 47108 - 44032: 0x8E9E, - 47109 - 44032: 0x8E9F, - 47110 - 44032: 0x8EA0, - 47111 - 44032: 0xB7B8, - 47112 - 44032: 0xB7B9, - 47113 - 44032: 0xB7BA, - 47114 - 44032: 0x8EA1, - 47115 - 44032: 0x8EA2, - 47116 - 44032: 0xB7BB, - 47117 - 44032: 0x8EA3, - 47118 - 44032: 0x8EA4, - 47119 - 44032: 0x8EA5, - 47120 - 44032: 0xB7BC, - 47121 - 44032: 0x8EA6, - 47122 - 44032: 0x8EA7, - 47123 - 44032: 0x8EA8, - 47124 - 44032: 0x8EA9, - 47125 - 44032: 0x8EAA, - 47126 - 44032: 0x8EAB, - 47127 - 44032: 0x8EAC, - 47128 - 44032: 0xB7BD, - 47129 - 44032: 0xB7BE, - 47130 - 44032: 0x8EAD, - 47131 - 44032: 0xB7BF, - 47132 - 44032: 0x8EAE, - 47133 - 44032: 0xB7C0, - 47134 - 44032: 0x8EAF, - 47135 - 44032: 0x8EB0, - 47136 - 44032: 0x8EB1, - 47137 - 44032: 0x8EB2, - 47138 - 44032: 0x8EB3, - 47139 - 44032: 0x8EB4, - 47140 - 44032: 0xB7C1, - 47141 - 44032: 0xB7C2, - 47142 - 44032: 0x8EB5, - 47143 - 44032: 0x8EB6, - 47144 - 44032: 0xB7C3, - 47145 - 44032: 0x8EB7, - 47146 - 44032: 0x8EB8, - 47147 - 44032: 0x8EB9, - 47148 - 44032: 0xB7C4, - 47149 - 44032: 0x8EBA, - 47150 - 44032: 0x8EBB, - 47151 - 44032: 0x8EBC, - 47152 - 44032: 0x8EBD, - 47153 - 44032: 0x8EBE, - 47154 - 44032: 0x8EBF, - 47155 - 44032: 0x8EC0, - 47156 - 44032: 0xB7C5, - 47157 - 44032: 0xB7C6, - 47158 - 44032: 0x8EC1, - 47159 - 44032: 0xB7C7, - 47160 - 44032: 0xB7C8, - 47161 - 44032: 0xB7C9, - 47162 - 44032: 0x8EC2, - 47163 - 44032: 0x8EC3, - 47164 - 44032: 0x8EC4, - 47165 - 44032: 0x8EC5, - 47166 - 44032: 0x8EC6, - 47167 - 44032: 0x8EC7, - 47168 - 44032: 0xB7CA, - 47169 - 44032: 0x8EC8, - 47170 - 44032: 0x8EC9, - 47171 - 44032: 0x8ECA, - 47172 - 44032: 0xB7CB, - 47173 - 44032: 0x8ECB, - 47174 - 44032: 0x8ECC, - 47175 - 44032: 0x8ECD, - 47176 - 44032: 0x8ECE, - 47177 - 44032: 0x8ECF, - 47178 - 44032: 0x8ED0, - 47179 - 44032: 0x8ED1, - 47180 - 44032: 0x8ED2, - 47181 - 44032: 0x8ED3, - 47182 - 44032: 0x8ED4, - 47183 - 44032: 0x8ED5, - 47184 - 44032: 0x8ED6, - 47185 - 44032: 0xB7CC, - 47186 - 44032: 0x8ED7, - 47187 - 44032: 0xB7CD, - 47188 - 44032: 0x8ED8, - 47189 - 44032: 0x8ED9, - 47190 - 44032: 0x8EDA, - 47191 - 44032: 0x8EDB, - 47192 - 44032: 0x8EDC, - 47193 - 44032: 0x8EDD, - 47194 - 44032: 0x8EDE, - 47195 - 44032: 0x8EDF, - 47196 - 44032: 0xB7CE, - 47197 - 44032: 0xB7CF, - 47198 - 44032: 0x8EE0, - 47199 - 44032: 0x8EE1, - 47200 - 44032: 0xB7D0, - 47201 - 44032: 0x8EE2, - 47202 - 44032: 0x8EE3, - 47203 - 44032: 0x8EE4, - 47204 - 44032: 0xB7D1, - 47205 - 44032: 0x8EE5, - 47206 - 44032: 0x8EE6, - 47207 - 44032: 0x8EE7, - 47208 - 44032: 0x8EE8, - 47209 - 44032: 0x8EE9, - 47210 - 44032: 0x8EEA, - 47211 - 44032: 0x8EEB, - 47212 - 44032: 0xB7D2, - 47213 - 44032: 0xB7D3, - 47214 - 44032: 0x8EEC, - 47215 - 44032: 0xB7D4, - 47216 - 44032: 0x8EED, - 47217 - 44032: 0xB7D5, - 47218 - 44032: 0x8EEE, - 47219 - 44032: 0x8EEF, - 47220 - 44032: 0x8EF0, - 47221 - 44032: 0x8EF1, - 47222 - 44032: 0x8EF2, - 47223 - 44032: 0x8EF3, - 47224 - 44032: 0xB7D6, - 47225 - 44032: 0x8EF4, - 47226 - 44032: 0x8EF5, - 47227 - 44032: 0x8EF6, - 47228 - 44032: 0xB7D7, - 47229 - 44032: 0x8EF7, - 47230 - 44032: 0x8EF8, - 47231 - 44032: 0x8EF9, - 47232 - 44032: 0x8EFA, - 47233 - 44032: 0x8EFB, - 47234 - 44032: 0x8EFC, - 47235 - 44032: 0x8EFD, - 47236 - 44032: 0x8EFE, - 47237 - 44032: 0x8F41, - 47238 - 44032: 0x8F42, - 47239 - 44032: 0x8F43, - 47240 - 44032: 0x8F44, - 47241 - 44032: 0x8F45, - 47242 - 44032: 0x8F46, - 47243 - 44032: 0x8F47, - 47244 - 44032: 0x8F48, - 47245 - 44032: 0xB7D8, - 47246 - 44032: 0x8F49, - 47247 - 44032: 0x8F4A, - 47248 - 44032: 0x8F4B, - 47249 - 44032: 0x8F4C, - 47250 - 44032: 0x8F4D, - 47251 - 44032: 0x8F4E, - 47252 - 44032: 0x8F4F, - 47253 - 44032: 0x8F50, - 47254 - 44032: 0x8F51, - 47255 - 44032: 0x8F52, - 47256 - 44032: 0x8F53, - 47257 - 44032: 0x8F54, - 47258 - 44032: 0x8F55, - 47259 - 44032: 0x8F56, - 47260 - 44032: 0x8F57, - 47261 - 44032: 0x8F58, - 47262 - 44032: 0x8F59, - 47263 - 44032: 0x8F5A, - 47264 - 44032: 0x8F61, - 47265 - 44032: 0x8F62, - 47266 - 44032: 0x8F63, - 47267 - 44032: 0x8F64, - 47268 - 44032: 0x8F65, - 47269 - 44032: 0x8F66, - 47270 - 44032: 0x8F67, - 47271 - 44032: 0x8F68, - 47272 - 44032: 0xB7D9, - 47273 - 44032: 0x8F69, - 47274 - 44032: 0x8F6A, - 47275 - 44032: 0x8F6B, - 47276 - 44032: 0x8F6C, - 47277 - 44032: 0x8F6D, - 47278 - 44032: 0x8F6E, - 47279 - 44032: 0x8F6F, - 47280 - 44032: 0xB7DA, - 47281 - 44032: 0x8F70, - 47282 - 44032: 0x8F71, - 47283 - 44032: 0x8F72, - 47284 - 44032: 0xB7DB, - 47285 - 44032: 0x8F73, - 47286 - 44032: 0x8F74, - 47287 - 44032: 0x8F75, - 47288 - 44032: 0xB7DC, - 47289 - 44032: 0x8F76, - 47290 - 44032: 0x8F77, - 47291 - 44032: 0x8F78, - 47292 - 44032: 0x8F79, - 47293 - 44032: 0x8F7A, - 47294 - 44032: 0x8F81, - 47295 - 44032: 0x8F82, - 47296 - 44032: 0xB7DD, - 47297 - 44032: 0xB7DE, - 47298 - 44032: 0x8F83, - 47299 - 44032: 0xB7DF, - 47300 - 44032: 0x8F84, - 47301 - 44032: 0xB7E0, - 47302 - 44032: 0x8F85, - 47303 - 44032: 0x8F86, - 47304 - 44032: 0x8F87, - 47305 - 44032: 0x8F88, - 47306 - 44032: 0x8F89, - 47307 - 44032: 0x8F8A, - 47308 - 44032: 0xB7E1, - 47309 - 44032: 0x8F8B, - 47310 - 44032: 0x8F8C, - 47311 - 44032: 0x8F8D, - 47312 - 44032: 0xB7E2, - 47313 - 44032: 0x8F8E, - 47314 - 44032: 0x8F8F, - 47315 - 44032: 0x8F90, - 47316 - 44032: 0xB7E3, - 47317 - 44032: 0x8F91, - 47318 - 44032: 0x8F92, - 47319 - 44032: 0x8F93, - 47320 - 44032: 0x8F94, - 47321 - 44032: 0x8F95, - 47322 - 44032: 0x8F96, - 47323 - 44032: 0x8F97, - 47324 - 44032: 0x8F98, - 47325 - 44032: 0xB7E4, - 47326 - 44032: 0x8F99, - 47327 - 44032: 0xB7E5, - 47328 - 44032: 0x8F9A, - 47329 - 44032: 0xB7E6, - 47330 - 44032: 0x8F9B, - 47331 - 44032: 0x8F9C, - 47332 - 44032: 0x8F9D, - 47333 - 44032: 0x8F9E, - 47334 - 44032: 0x8F9F, - 47335 - 44032: 0x8FA0, - 47336 - 44032: 0xB7E7, - 47337 - 44032: 0xB7E8, - 47338 - 44032: 0x8FA1, - 47339 - 44032: 0x8FA2, - 47340 - 44032: 0xB7E9, - 47341 - 44032: 0x8FA3, - 47342 - 44032: 0x8FA4, - 47343 - 44032: 0x8FA5, - 47344 - 44032: 0xB7EA, - 47345 - 44032: 0x8FA6, - 47346 - 44032: 0x8FA7, - 47347 - 44032: 0x8FA8, - 47348 - 44032: 0x8FA9, - 47349 - 44032: 0x8FAA, - 47350 - 44032: 0x8FAB, - 47351 - 44032: 0x8FAC, - 47352 - 44032: 0xB7EB, - 47353 - 44032: 0xB7EC, - 47354 - 44032: 0x8FAD, - 47355 - 44032: 0xB7ED, - 47356 - 44032: 0x8FAE, - 47357 - 44032: 0xB7EE, - 47358 - 44032: 0x8FAF, - 47359 - 44032: 0x8FB0, - 47360 - 44032: 0x8FB1, - 47361 - 44032: 0x8FB2, - 47362 - 44032: 0x8FB3, - 47363 - 44032: 0x8FB4, - 47364 - 44032: 0xB7EF, - 47365 - 44032: 0x8FB5, - 47366 - 44032: 0x8FB6, - 47367 - 44032: 0x8FB7, - 47368 - 44032: 0x8FB8, - 47369 - 44032: 0x8FB9, - 47370 - 44032: 0x8FBA, - 47371 - 44032: 0x8FBB, - 47372 - 44032: 0x8FBC, - 47373 - 44032: 0x8FBD, - 47374 - 44032: 0x8FBE, - 47375 - 44032: 0x8FBF, - 47376 - 44032: 0x8FC0, - 47377 - 44032: 0x8FC1, - 47378 - 44032: 0x8FC2, - 47379 - 44032: 0x8FC3, - 47380 - 44032: 0x8FC4, - 47381 - 44032: 0x8FC5, - 47382 - 44032: 0x8FC6, - 47383 - 44032: 0x8FC7, - 47384 - 44032: 0xB7F0, - 47385 - 44032: 0x8FC8, - 47386 - 44032: 0x8FC9, - 47387 - 44032: 0x8FCA, - 47388 - 44032: 0x8FCB, - 47389 - 44032: 0x8FCC, - 47390 - 44032: 0x8FCD, - 47391 - 44032: 0x8FCE, - 47392 - 44032: 0xB7F1, - 47393 - 44032: 0x8FCF, - 47394 - 44032: 0x8FD0, - 47395 - 44032: 0x8FD1, - 47396 - 44032: 0x8FD2, - 47397 - 44032: 0x8FD3, - 47398 - 44032: 0x8FD4, - 47399 - 44032: 0x8FD5, - 47400 - 44032: 0x8FD6, - 47401 - 44032: 0x8FD7, - 47402 - 44032: 0x8FD8, - 47403 - 44032: 0x8FD9, - 47404 - 44032: 0x8FDA, - 47405 - 44032: 0x8FDB, - 47406 - 44032: 0x8FDC, - 47407 - 44032: 0x8FDD, - 47408 - 44032: 0x8FDE, - 47409 - 44032: 0x8FDF, - 47410 - 44032: 0x8FE0, - 47411 - 44032: 0x8FE1, - 47412 - 44032: 0x8FE2, - 47413 - 44032: 0x8FE3, - 47414 - 44032: 0x8FE4, - 47415 - 44032: 0x8FE5, - 47416 - 44032: 0x8FE6, - 47417 - 44032: 0x8FE7, - 47418 - 44032: 0x8FE8, - 47419 - 44032: 0x8FE9, - 47420 - 44032: 0xB7F2, - 47421 - 44032: 0xB7F3, - 47422 - 44032: 0x8FEA, - 47423 - 44032: 0x8FEB, - 47424 - 44032: 0xB7F4, - 47425 - 44032: 0x8FEC, - 47426 - 44032: 0x8FED, - 47427 - 44032: 0x8FEE, - 47428 - 44032: 0xB7F5, - 47429 - 44032: 0x8FEF, - 47430 - 44032: 0x8FF0, - 47431 - 44032: 0x8FF1, - 47432 - 44032: 0x8FF2, - 47433 - 44032: 0x8FF3, - 47434 - 44032: 0x8FF4, - 47435 - 44032: 0x8FF5, - 47436 - 44032: 0xB7F6, - 47437 - 44032: 0x8FF6, - 47438 - 44032: 0x8FF7, - 47439 - 44032: 0xB7F7, - 47440 - 44032: 0x8FF8, - 47441 - 44032: 0xB7F8, - 47442 - 44032: 0x8FF9, - 47443 - 44032: 0x8FFA, - 47444 - 44032: 0x8FFB, - 47445 - 44032: 0x8FFC, - 47446 - 44032: 0x8FFD, - 47447 - 44032: 0x8FFE, - 47448 - 44032: 0xB7F9, - 47449 - 44032: 0xB7FA, - 47450 - 44032: 0x9041, - 47451 - 44032: 0x9042, - 47452 - 44032: 0xB7FB, - 47453 - 44032: 0x9043, - 47454 - 44032: 0x9044, - 47455 - 44032: 0x9045, - 47456 - 44032: 0xB7FC, - 47457 - 44032: 0x9046, - 47458 - 44032: 0x9047, - 47459 - 44032: 0x9048, - 47460 - 44032: 0x9049, - 47461 - 44032: 0x904A, - 47462 - 44032: 0x904B, - 47463 - 44032: 0x904C, - 47464 - 44032: 0xB7FD, - 47465 - 44032: 0xB7FE, - 47466 - 44032: 0x904D, - 47467 - 44032: 0xB8A1, - 47468 - 44032: 0x904E, - 47469 - 44032: 0xB8A2, - 47470 - 44032: 0x904F, - 47471 - 44032: 0x9050, - 47472 - 44032: 0x9051, - 47473 - 44032: 0x9052, - 47474 - 44032: 0x9053, - 47475 - 44032: 0x9054, - 47476 - 44032: 0xB8A3, - 47477 - 44032: 0xB8A4, - 47478 - 44032: 0x9055, - 47479 - 44032: 0x9056, - 47480 - 44032: 0xB8A5, - 47481 - 44032: 0x9057, - 47482 - 44032: 0x9058, - 47483 - 44032: 0x9059, - 47484 - 44032: 0xB8A6, - 47485 - 44032: 0x905A, - 47486 - 44032: 0x9061, - 47487 - 44032: 0x9062, - 47488 - 44032: 0x9063, - 47489 - 44032: 0x9064, - 47490 - 44032: 0x9065, - 47491 - 44032: 0x9066, - 47492 - 44032: 0xB8A7, - 47493 - 44032: 0xB8A8, - 47494 - 44032: 0x9067, - 47495 - 44032: 0xB8A9, - 47496 - 44032: 0x9068, - 47497 - 44032: 0xB8AA, - 47498 - 44032: 0xB8AB, - 47499 - 44032: 0x9069, - 47500 - 44032: 0x906A, - 47501 - 44032: 0xB8AC, - 47502 - 44032: 0xB8AD, - 47503 - 44032: 0x906B, - 47504 - 44032: 0x906C, - 47505 - 44032: 0x906D, - 47506 - 44032: 0x906E, - 47507 - 44032: 0x906F, - 47508 - 44032: 0x9070, - 47509 - 44032: 0x9071, - 47510 - 44032: 0x9072, - 47511 - 44032: 0x9073, - 47512 - 44032: 0x9074, - 47513 - 44032: 0x9075, - 47514 - 44032: 0x9076, - 47515 - 44032: 0x9077, - 47516 - 44032: 0x9078, - 47517 - 44032: 0x9079, - 47518 - 44032: 0x907A, - 47519 - 44032: 0x9081, - 47520 - 44032: 0x9082, - 47521 - 44032: 0x9083, - 47522 - 44032: 0x9084, - 47523 - 44032: 0x9085, - 47524 - 44032: 0x9086, - 47525 - 44032: 0x9087, - 47526 - 44032: 0x9088, - 47527 - 44032: 0x9089, - 47528 - 44032: 0x908A, - 47529 - 44032: 0x908B, - 47530 - 44032: 0x908C, - 47531 - 44032: 0x908D, - 47532 - 44032: 0xB8AE, - 47533 - 44032: 0xB8AF, - 47534 - 44032: 0x908E, - 47535 - 44032: 0x908F, - 47536 - 44032: 0xB8B0, - 47537 - 44032: 0x9090, - 47538 - 44032: 0x9091, - 47539 - 44032: 0x9092, - 47540 - 44032: 0xB8B1, - 47541 - 44032: 0x9093, - 47542 - 44032: 0x9094, - 47543 - 44032: 0x9095, - 47544 - 44032: 0x9096, - 47545 - 44032: 0x9097, - 47546 - 44032: 0x9098, - 47547 - 44032: 0x9099, - 47548 - 44032: 0xB8B2, - 47549 - 44032: 0xB8B3, - 47550 - 44032: 0x909A, - 47551 - 44032: 0xB8B4, - 47552 - 44032: 0x909B, - 47553 - 44032: 0xB8B5, - 47554 - 44032: 0x909C, - 47555 - 44032: 0x909D, - 47556 - 44032: 0x909E, - 47557 - 44032: 0x909F, - 47558 - 44032: 0x90A0, - 47559 - 44032: 0x90A1, - 47560 - 44032: 0xB8B6, - 47561 - 44032: 0xB8B7, - 47562 - 44032: 0x90A2, - 47563 - 44032: 0x90A3, - 47564 - 44032: 0xB8B8, - 47565 - 44032: 0x90A4, - 47566 - 44032: 0xB8B9, - 47567 - 44032: 0xB8BA, - 47568 - 44032: 0xB8BB, - 47569 - 44032: 0xB8BC, - 47570 - 44032: 0xB8BD, - 47571 - 44032: 0x90A5, - 47572 - 44032: 0x90A6, - 47573 - 44032: 0x90A7, - 47574 - 44032: 0x90A8, - 47575 - 44032: 0x90A9, - 47576 - 44032: 0xB8BE, - 47577 - 44032: 0xB8BF, - 47578 - 44032: 0x90AA, - 47579 - 44032: 0xB8C0, - 47580 - 44032: 0x90AB, - 47581 - 44032: 0xB8C1, - 47582 - 44032: 0xB8C2, - 47583 - 44032: 0x90AC, - 47584 - 44032: 0x90AD, - 47585 - 44032: 0xB8C3, - 47586 - 44032: 0x90AE, - 47587 - 44032: 0xB8C4, - 47588 - 44032: 0xB8C5, - 47589 - 44032: 0xB8C6, - 47590 - 44032: 0x90AF, - 47591 - 44032: 0x90B0, - 47592 - 44032: 0xB8C7, - 47593 - 44032: 0x90B1, - 47594 - 44032: 0x90B2, - 47595 - 44032: 0x90B3, - 47596 - 44032: 0xB8C8, - 47597 - 44032: 0x90B4, - 47598 - 44032: 0x90B5, - 47599 - 44032: 0x90B6, - 47600 - 44032: 0x90B7, - 47601 - 44032: 0x90B8, - 47602 - 44032: 0x90B9, - 47603 - 44032: 0x90BA, - 47604 - 44032: 0xB8C9, - 47605 - 44032: 0xB8CA, - 47606 - 44032: 0x90BB, - 47607 - 44032: 0xB8CB, - 47608 - 44032: 0xB8CC, - 47609 - 44032: 0xB8CD, - 47610 - 44032: 0xB8CE, - 47611 - 44032: 0x90BC, - 47612 - 44032: 0x90BD, - 47613 - 44032: 0x90BE, - 47614 - 44032: 0x90BF, - 47615 - 44032: 0x90C0, - 47616 - 44032: 0xB8CF, - 47617 - 44032: 0xB8D0, - 47618 - 44032: 0x90C1, - 47619 - 44032: 0x90C2, - 47620 - 44032: 0x90C3, - 47621 - 44032: 0x90C4, - 47622 - 44032: 0x90C5, - 47623 - 44032: 0x90C6, - 47624 - 44032: 0xB8D1, - 47625 - 44032: 0x90C7, - 47626 - 44032: 0x90C8, - 47627 - 44032: 0x90C9, - 47628 - 44032: 0x90CA, - 47629 - 44032: 0x90CB, - 47630 - 44032: 0x90CC, - 47631 - 44032: 0x90CD, - 47632 - 44032: 0x90CE, - 47633 - 44032: 0x90CF, - 47634 - 44032: 0x90D0, - 47635 - 44032: 0x90D1, - 47636 - 44032: 0x90D2, - 47637 - 44032: 0xB8D2, - 47638 - 44032: 0x90D3, - 47639 - 44032: 0x90D4, - 47640 - 44032: 0x90D5, - 47641 - 44032: 0x90D6, - 47642 - 44032: 0x90D7, - 47643 - 44032: 0x90D8, - 47644 - 44032: 0x90D9, - 47645 - 44032: 0x90DA, - 47646 - 44032: 0x90DB, - 47647 - 44032: 0x90DC, - 47648 - 44032: 0x90DD, - 47649 - 44032: 0x90DE, - 47650 - 44032: 0x90DF, - 47651 - 44032: 0x90E0, - 47652 - 44032: 0x90E1, - 47653 - 44032: 0x90E2, - 47654 - 44032: 0x90E3, - 47655 - 44032: 0x90E4, - 47656 - 44032: 0x90E5, - 47657 - 44032: 0x90E6, - 47658 - 44032: 0x90E7, - 47659 - 44032: 0x90E8, - 47660 - 44032: 0x90E9, - 47661 - 44032: 0x90EA, - 47662 - 44032: 0x90EB, - 47663 - 44032: 0x90EC, - 47664 - 44032: 0x90ED, - 47665 - 44032: 0x90EE, - 47666 - 44032: 0x90EF, - 47667 - 44032: 0x90F0, - 47668 - 44032: 0x90F1, - 47669 - 44032: 0x90F2, - 47670 - 44032: 0x90F3, - 47671 - 44032: 0x90F4, - 47672 - 44032: 0xB8D3, - 47673 - 44032: 0xB8D4, - 47674 - 44032: 0x90F5, - 47675 - 44032: 0x90F6, - 47676 - 44032: 0xB8D5, - 47677 - 44032: 0x90F7, - 47678 - 44032: 0x90F8, - 47679 - 44032: 0x90F9, - 47680 - 44032: 0xB8D6, - 47681 - 44032: 0x90FA, - 47682 - 44032: 0xB8D7, - 47683 - 44032: 0x90FB, - 47684 - 44032: 0x90FC, - 47685 - 44032: 0x90FD, - 47686 - 44032: 0x90FE, - 47687 - 44032: 0x9141, - 47688 - 44032: 0xB8D8, - 47689 - 44032: 0xB8D9, - 47690 - 44032: 0x9142, - 47691 - 44032: 0xB8DA, - 47692 - 44032: 0x9143, - 47693 - 44032: 0xB8DB, - 47694 - 44032: 0xB8DC, - 47695 - 44032: 0x9144, - 47696 - 44032: 0x9145, - 47697 - 44032: 0x9146, - 47698 - 44032: 0x9147, - 47699 - 44032: 0xB8DD, - 47700 - 44032: 0xB8DE, - 47701 - 44032: 0xB8DF, - 47702 - 44032: 0x9148, - 47703 - 44032: 0x9149, - 47704 - 44032: 0xB8E0, - 47705 - 44032: 0x914A, - 47706 - 44032: 0x914B, - 47707 - 44032: 0x914C, - 47708 - 44032: 0xB8E1, - 47709 - 44032: 0x914D, - 47710 - 44032: 0x914E, - 47711 - 44032: 0x914F, - 47712 - 44032: 0x9150, - 47713 - 44032: 0x9151, - 47714 - 44032: 0x9152, - 47715 - 44032: 0x9153, - 47716 - 44032: 0xB8E2, - 47717 - 44032: 0xB8E3, - 47718 - 44032: 0x9154, - 47719 - 44032: 0xB8E4, - 47720 - 44032: 0xB8E5, - 47721 - 44032: 0xB8E6, - 47722 - 44032: 0x9155, - 47723 - 44032: 0x9156, - 47724 - 44032: 0x9157, - 47725 - 44032: 0x9158, - 47726 - 44032: 0x9159, - 47727 - 44032: 0x915A, - 47728 - 44032: 0xB8E7, - 47729 - 44032: 0xB8E8, - 47730 - 44032: 0x9161, - 47731 - 44032: 0x9162, - 47732 - 44032: 0xB8E9, - 47733 - 44032: 0x9163, - 47734 - 44032: 0x9164, - 47735 - 44032: 0x9165, - 47736 - 44032: 0xB8EA, - 47737 - 44032: 0x9166, - 47738 - 44032: 0x9167, - 47739 - 44032: 0x9168, - 47740 - 44032: 0x9169, - 47741 - 44032: 0x916A, - 47742 - 44032: 0x916B, - 47743 - 44032: 0x916C, - 47744 - 44032: 0x916D, - 47745 - 44032: 0x916E, - 47746 - 44032: 0x916F, - 47747 - 44032: 0xB8EB, - 47748 - 44032: 0xB8EC, - 47749 - 44032: 0xB8ED, - 47750 - 44032: 0x9170, - 47751 - 44032: 0xB8EE, - 47752 - 44032: 0x9171, - 47753 - 44032: 0x9172, - 47754 - 44032: 0x9173, - 47755 - 44032: 0x9174, - 47756 - 44032: 0xB8EF, - 47757 - 44032: 0x9175, - 47758 - 44032: 0x9176, - 47759 - 44032: 0x9177, - 47760 - 44032: 0x9178, - 47761 - 44032: 0x9179, - 47762 - 44032: 0x917A, - 47763 - 44032: 0x9181, - 47764 - 44032: 0x9182, - 47765 - 44032: 0x9183, - 47766 - 44032: 0x9184, - 47767 - 44032: 0x9185, - 47768 - 44032: 0x9186, - 47769 - 44032: 0x9187, - 47770 - 44032: 0x9188, - 47771 - 44032: 0x9189, - 47772 - 44032: 0x918A, - 47773 - 44032: 0x918B, - 47774 - 44032: 0x918C, - 47775 - 44032: 0x918D, - 47776 - 44032: 0x918E, - 47777 - 44032: 0x918F, - 47778 - 44032: 0x9190, - 47779 - 44032: 0x9191, - 47780 - 44032: 0x9192, - 47781 - 44032: 0x9193, - 47782 - 44032: 0x9194, - 47783 - 44032: 0x9195, - 47784 - 44032: 0xB8F0, - 47785 - 44032: 0xB8F1, - 47786 - 44032: 0x9196, - 47787 - 44032: 0xB8F2, - 47788 - 44032: 0xB8F3, - 47789 - 44032: 0x9197, - 47790 - 44032: 0x9198, - 47791 - 44032: 0x9199, - 47792 - 44032: 0xB8F4, - 47793 - 44032: 0x919A, - 47794 - 44032: 0xB8F5, - 47795 - 44032: 0x919B, - 47796 - 44032: 0x919C, - 47797 - 44032: 0x919D, - 47798 - 44032: 0x919E, - 47799 - 44032: 0x919F, - 47800 - 44032: 0xB8F6, - 47801 - 44032: 0xB8F7, - 47802 - 44032: 0x91A0, - 47803 - 44032: 0xB8F8, - 47804 - 44032: 0x91A1, - 47805 - 44032: 0xB8F9, - 47806 - 44032: 0x91A2, - 47807 - 44032: 0x91A3, - 47808 - 44032: 0x91A4, - 47809 - 44032: 0x91A5, - 47810 - 44032: 0x91A6, - 47811 - 44032: 0x91A7, - 47812 - 44032: 0xB8FA, - 47813 - 44032: 0x91A8, - 47814 - 44032: 0x91A9, - 47815 - 44032: 0x91AA, - 47816 - 44032: 0xB8FB, - 47817 - 44032: 0x91AB, - 47818 - 44032: 0x91AC, - 47819 - 44032: 0x91AD, - 47820 - 44032: 0x91AE, - 47821 - 44032: 0x91AF, - 47822 - 44032: 0x91B0, - 47823 - 44032: 0x91B1, - 47824 - 44032: 0x91B2, - 47825 - 44032: 0x91B3, - 47826 - 44032: 0x91B4, - 47827 - 44032: 0x91B5, - 47828 - 44032: 0x91B6, - 47829 - 44032: 0x91B7, - 47830 - 44032: 0x91B8, - 47831 - 44032: 0x91B9, - 47832 - 44032: 0xB8FC, - 47833 - 44032: 0xB8FD, - 47834 - 44032: 0x91BA, - 47835 - 44032: 0x91BB, - 47836 - 44032: 0x91BC, - 47837 - 44032: 0x91BD, - 47838 - 44032: 0x91BE, - 47839 - 44032: 0x91BF, - 47840 - 44032: 0x91C0, - 47841 - 44032: 0x91C1, - 47842 - 44032: 0x91C2, - 47843 - 44032: 0x91C3, - 47844 - 44032: 0x91C4, - 47845 - 44032: 0x91C5, - 47846 - 44032: 0x91C6, - 47847 - 44032: 0x91C7, - 47848 - 44032: 0x91C8, - 47849 - 44032: 0x91C9, - 47850 - 44032: 0x91CA, - 47851 - 44032: 0x91CB, - 47852 - 44032: 0x91CC, - 47853 - 44032: 0x91CD, - 47854 - 44032: 0x91CE, - 47855 - 44032: 0x91CF, - 47856 - 44032: 0x91D0, - 47857 - 44032: 0x91D1, - 47858 - 44032: 0x91D2, - 47859 - 44032: 0x91D3, - 47860 - 44032: 0x91D4, - 47861 - 44032: 0x91D5, - 47862 - 44032: 0x91D6, - 47863 - 44032: 0x91D7, - 47864 - 44032: 0x91D8, - 47865 - 44032: 0x91D9, - 47866 - 44032: 0x91DA, - 47867 - 44032: 0x91DB, - 47868 - 44032: 0xB8FE, - 47869 - 44032: 0x91DC, - 47870 - 44032: 0x91DD, - 47871 - 44032: 0x91DE, - 47872 - 44032: 0xB9A1, - 47873 - 44032: 0x91DF, - 47874 - 44032: 0x91E0, - 47875 - 44032: 0x91E1, - 47876 - 44032: 0xB9A2, - 47877 - 44032: 0x91E2, - 47878 - 44032: 0x91E3, - 47879 - 44032: 0x91E4, - 47880 - 44032: 0x91E5, - 47881 - 44032: 0x91E6, - 47882 - 44032: 0x91E7, - 47883 - 44032: 0x91E8, - 47884 - 44032: 0x91E9, - 47885 - 44032: 0xB9A3, - 47886 - 44032: 0x91EA, - 47887 - 44032: 0xB9A4, - 47888 - 44032: 0x91EB, - 47889 - 44032: 0xB9A5, - 47890 - 44032: 0x91EC, - 47891 - 44032: 0x91ED, - 47892 - 44032: 0x91EE, - 47893 - 44032: 0x91EF, - 47894 - 44032: 0x91F0, - 47895 - 44032: 0x91F1, - 47896 - 44032: 0xB9A6, - 47897 - 44032: 0x91F2, - 47898 - 44032: 0x91F3, - 47899 - 44032: 0x91F4, - 47900 - 44032: 0xB9A7, - 47901 - 44032: 0x91F5, - 47902 - 44032: 0x91F6, - 47903 - 44032: 0x91F7, - 47904 - 44032: 0xB9A8, - 47905 - 44032: 0x91F8, - 47906 - 44032: 0x91F9, - 47907 - 44032: 0x91FA, - 47908 - 44032: 0x91FB, - 47909 - 44032: 0x91FC, - 47910 - 44032: 0x91FD, - 47911 - 44032: 0x91FE, - 47912 - 44032: 0x9241, - 47913 - 44032: 0xB9A9, - 47914 - 44032: 0x9242, - 47915 - 44032: 0xB9AA, - 47916 - 44032: 0x9243, - 47917 - 44032: 0x9244, - 47918 - 44032: 0x9245, - 47919 - 44032: 0x9246, - 47920 - 44032: 0x9247, - 47921 - 44032: 0x9248, - 47922 - 44032: 0x9249, - 47923 - 44032: 0x924A, - 47924 - 44032: 0xB9AB, - 47925 - 44032: 0xB9AC, - 47926 - 44032: 0xB9AD, - 47927 - 44032: 0x924B, - 47928 - 44032: 0xB9AE, - 47929 - 44032: 0x924C, - 47930 - 44032: 0x924D, - 47931 - 44032: 0xB9AF, - 47932 - 44032: 0xB9B0, - 47933 - 44032: 0xB9B1, - 47934 - 44032: 0xB9B2, - 47935 - 44032: 0x924E, - 47936 - 44032: 0x924F, - 47937 - 44032: 0x9250, - 47938 - 44032: 0x9251, - 47939 - 44032: 0x9252, - 47940 - 44032: 0xB9B3, - 47941 - 44032: 0xB9B4, - 47942 - 44032: 0x9253, - 47943 - 44032: 0xB9B5, - 47944 - 44032: 0x9254, - 47945 - 44032: 0xB9B6, - 47946 - 44032: 0x9255, - 47947 - 44032: 0x9256, - 47948 - 44032: 0x9257, - 47949 - 44032: 0xB9B7, - 47950 - 44032: 0x9258, - 47951 - 44032: 0xB9B8, - 47952 - 44032: 0xB9B9, - 47953 - 44032: 0x9259, - 47954 - 44032: 0x925A, - 47955 - 44032: 0x9261, - 47956 - 44032: 0xB9BA, - 47957 - 44032: 0x9262, - 47958 - 44032: 0x9263, - 47959 - 44032: 0x9264, - 47960 - 44032: 0xB9BB, - 47961 - 44032: 0x9265, - 47962 - 44032: 0x9266, - 47963 - 44032: 0x9267, - 47964 - 44032: 0x9268, - 47965 - 44032: 0x9269, - 47966 - 44032: 0x926A, - 47967 - 44032: 0x926B, - 47968 - 44032: 0x926C, - 47969 - 44032: 0xB9BC, - 47970 - 44032: 0x926D, - 47971 - 44032: 0xB9BD, - 47972 - 44032: 0x926E, - 47973 - 44032: 0x926F, - 47974 - 44032: 0x9270, - 47975 - 44032: 0x9271, - 47976 - 44032: 0x9272, - 47977 - 44032: 0x9273, - 47978 - 44032: 0x9274, - 47979 - 44032: 0x9275, - 47980 - 44032: 0xB9BE, - 47981 - 44032: 0x9276, - 47982 - 44032: 0x9277, - 47983 - 44032: 0x9278, - 47984 - 44032: 0x9279, - 47985 - 44032: 0x927A, - 47986 - 44032: 0x9281, - 47987 - 44032: 0x9282, - 47988 - 44032: 0x9283, - 47989 - 44032: 0x9284, - 47990 - 44032: 0x9285, - 47991 - 44032: 0x9286, - 47992 - 44032: 0x9287, - 47993 - 44032: 0x9288, - 47994 - 44032: 0x9289, - 47995 - 44032: 0x928A, - 47996 - 44032: 0x928B, - 47997 - 44032: 0x928C, - 47998 - 44032: 0x928D, - 47999 - 44032: 0x928E, - 48000 - 44032: 0x928F, - 48001 - 44032: 0x9290, - 48002 - 44032: 0x9291, - 48003 - 44032: 0x9292, - 48004 - 44032: 0x9293, - 48005 - 44032: 0x9294, - 48006 - 44032: 0x9295, - 48007 - 44032: 0x9296, - 48008 - 44032: 0xB9BF, - 48009 - 44032: 0x9297, - 48010 - 44032: 0x9298, - 48011 - 44032: 0x9299, - 48012 - 44032: 0xB9C0, - 48013 - 44032: 0x929A, - 48014 - 44032: 0x929B, - 48015 - 44032: 0x929C, - 48016 - 44032: 0xB9C1, - 48017 - 44032: 0x929D, - 48018 - 44032: 0x929E, - 48019 - 44032: 0x929F, - 48020 - 44032: 0x92A0, - 48021 - 44032: 0x92A1, - 48022 - 44032: 0x92A2, - 48023 - 44032: 0x92A3, - 48024 - 44032: 0x92A4, - 48025 - 44032: 0x92A5, - 48026 - 44032: 0x92A6, - 48027 - 44032: 0x92A7, - 48028 - 44032: 0x92A8, - 48029 - 44032: 0x92A9, - 48030 - 44032: 0x92AA, - 48031 - 44032: 0x92AB, - 48032 - 44032: 0x92AC, - 48033 - 44032: 0x92AD, - 48034 - 44032: 0x92AE, - 48035 - 44032: 0x92AF, - 48036 - 44032: 0xB9C2, - 48037 - 44032: 0x92B0, - 48038 - 44032: 0x92B1, - 48039 - 44032: 0x92B2, - 48040 - 44032: 0xB9C3, - 48041 - 44032: 0x92B3, - 48042 - 44032: 0x92B4, - 48043 - 44032: 0x92B5, - 48044 - 44032: 0xB9C4, - 48045 - 44032: 0x92B6, - 48046 - 44032: 0x92B7, - 48047 - 44032: 0x92B8, - 48048 - 44032: 0x92B9, - 48049 - 44032: 0x92BA, - 48050 - 44032: 0x92BB, - 48051 - 44032: 0x92BC, - 48052 - 44032: 0xB9C5, - 48053 - 44032: 0x92BD, - 48054 - 44032: 0x92BE, - 48055 - 44032: 0xB9C6, - 48056 - 44032: 0x92BF, - 48057 - 44032: 0x92C0, - 48058 - 44032: 0x92C1, - 48059 - 44032: 0x92C2, - 48060 - 44032: 0x92C3, - 48061 - 44032: 0x92C4, - 48062 - 44032: 0x92C5, - 48063 - 44032: 0x92C6, - 48064 - 44032: 0xB9C7, - 48065 - 44032: 0x92C7, - 48066 - 44032: 0x92C8, - 48067 - 44032: 0x92C9, - 48068 - 44032: 0xB9C8, - 48069 - 44032: 0x92CA, - 48070 - 44032: 0x92CB, - 48071 - 44032: 0x92CC, - 48072 - 44032: 0xB9C9, - 48073 - 44032: 0x92CD, - 48074 - 44032: 0x92CE, - 48075 - 44032: 0x92CF, - 48076 - 44032: 0x92D0, - 48077 - 44032: 0x92D1, - 48078 - 44032: 0x92D2, - 48079 - 44032: 0x92D3, - 48080 - 44032: 0xB9CA, - 48081 - 44032: 0x92D4, - 48082 - 44032: 0x92D5, - 48083 - 44032: 0xB9CB, - 48084 - 44032: 0x92D6, - 48085 - 44032: 0x92D7, - 48086 - 44032: 0x92D8, - 48087 - 44032: 0x92D9, - 48088 - 44032: 0x92DA, - 48089 - 44032: 0x92DB, - 48090 - 44032: 0x92DC, - 48091 - 44032: 0x92DD, - 48092 - 44032: 0x92DE, - 48093 - 44032: 0x92DF, - 48094 - 44032: 0x92E0, - 48095 - 44032: 0x92E1, - 48096 - 44032: 0x92E2, - 48097 - 44032: 0x92E3, - 48098 - 44032: 0x92E4, - 48099 - 44032: 0x92E5, - 48100 - 44032: 0x92E6, - 48101 - 44032: 0x92E7, - 48102 - 44032: 0x92E8, - 48103 - 44032: 0x92E9, - 48104 - 44032: 0x92EA, - 48105 - 44032: 0x92EB, - 48106 - 44032: 0x92EC, - 48107 - 44032: 0x92ED, - 48108 - 44032: 0x92EE, - 48109 - 44032: 0x92EF, - 48110 - 44032: 0x92F0, - 48111 - 44032: 0x92F1, - 48112 - 44032: 0x92F2, - 48113 - 44032: 0x92F3, - 48114 - 44032: 0x92F4, - 48115 - 44032: 0x92F5, - 48116 - 44032: 0x92F6, - 48117 - 44032: 0x92F7, - 48118 - 44032: 0x92F8, - 48119 - 44032: 0x92F9, - 48120 - 44032: 0xB9CC, - 48121 - 44032: 0xB9CD, - 48122 - 44032: 0x92FA, - 48123 - 44032: 0x92FB, - 48124 - 44032: 0xB9CE, - 48125 - 44032: 0x92FC, - 48126 - 44032: 0x92FD, - 48127 - 44032: 0xB9CF, - 48128 - 44032: 0xB9D0, - 48129 - 44032: 0x92FE, - 48130 - 44032: 0xB9D1, - 48131 - 44032: 0x9341, - 48132 - 44032: 0x9342, - 48133 - 44032: 0x9343, - 48134 - 44032: 0x9344, - 48135 - 44032: 0x9345, - 48136 - 44032: 0xB9D2, - 48137 - 44032: 0xB9D3, - 48138 - 44032: 0x9346, - 48139 - 44032: 0xB9D4, - 48140 - 44032: 0xB9D5, - 48141 - 44032: 0xB9D6, - 48142 - 44032: 0x9347, - 48143 - 44032: 0xB9D7, - 48144 - 44032: 0x9348, - 48145 - 44032: 0xB9D8, - 48146 - 44032: 0x9349, - 48147 - 44032: 0x934A, - 48148 - 44032: 0xB9D9, - 48149 - 44032: 0xB9DA, - 48150 - 44032: 0xB9DB, - 48151 - 44032: 0xB9DC, - 48152 - 44032: 0xB9DD, - 48153 - 44032: 0x934B, - 48154 - 44032: 0x934C, - 48155 - 44032: 0xB9DE, - 48156 - 44032: 0xB9DF, - 48157 - 44032: 0xB9E0, - 48158 - 44032: 0xB9E1, - 48159 - 44032: 0xB9E2, - 48160 - 44032: 0x934D, - 48161 - 44032: 0x934E, - 48162 - 44032: 0x934F, - 48163 - 44032: 0x9350, - 48164 - 44032: 0xB9E3, - 48165 - 44032: 0xB9E4, - 48166 - 44032: 0x9351, - 48167 - 44032: 0xB9E5, - 48168 - 44032: 0x9352, - 48169 - 44032: 0xB9E6, - 48170 - 44032: 0x9353, - 48171 - 44032: 0x9354, - 48172 - 44032: 0x9355, - 48173 - 44032: 0xB9E7, - 48174 - 44032: 0x9356, - 48175 - 44032: 0x9357, - 48176 - 44032: 0xB9E8, - 48177 - 44032: 0xB9E9, - 48178 - 44032: 0x9358, - 48179 - 44032: 0x9359, - 48180 - 44032: 0xB9EA, - 48181 - 44032: 0x935A, - 48182 - 44032: 0x9361, - 48183 - 44032: 0x9362, - 48184 - 44032: 0xB9EB, - 48185 - 44032: 0x9363, - 48186 - 44032: 0x9364, - 48187 - 44032: 0x9365, - 48188 - 44032: 0x9366, - 48189 - 44032: 0x9367, - 48190 - 44032: 0x9368, - 48191 - 44032: 0x9369, - 48192 - 44032: 0xB9EC, - 48193 - 44032: 0xB9ED, - 48194 - 44032: 0x936A, - 48195 - 44032: 0xB9EE, - 48196 - 44032: 0xB9EF, - 48197 - 44032: 0xB9F0, - 48198 - 44032: 0x936B, - 48199 - 44032: 0x936C, - 48200 - 44032: 0x936D, - 48201 - 44032: 0xB9F1, - 48202 - 44032: 0x936E, - 48203 - 44032: 0x936F, - 48204 - 44032: 0xB9F2, - 48205 - 44032: 0xB9F3, - 48206 - 44032: 0x9370, - 48207 - 44032: 0x9371, - 48208 - 44032: 0xB9F4, - 48209 - 44032: 0x9372, - 48210 - 44032: 0x9373, - 48211 - 44032: 0x9374, - 48212 - 44032: 0x9375, - 48213 - 44032: 0x9376, - 48214 - 44032: 0x9377, - 48215 - 44032: 0x9378, - 48216 - 44032: 0x9379, - 48217 - 44032: 0x937A, - 48218 - 44032: 0x9381, - 48219 - 44032: 0x9382, - 48220 - 44032: 0x9383, - 48221 - 44032: 0xB9F5, - 48222 - 44032: 0x9384, - 48223 - 44032: 0x9385, - 48224 - 44032: 0x9386, - 48225 - 44032: 0x9387, - 48226 - 44032: 0x9388, - 48227 - 44032: 0x9389, - 48228 - 44032: 0x938A, - 48229 - 44032: 0x938B, - 48230 - 44032: 0x938C, - 48231 - 44032: 0x938D, - 48232 - 44032: 0x938E, - 48233 - 44032: 0x938F, - 48234 - 44032: 0x9390, - 48235 - 44032: 0x9391, - 48236 - 44032: 0x9392, - 48237 - 44032: 0x9393, - 48238 - 44032: 0x9394, - 48239 - 44032: 0x9395, - 48240 - 44032: 0x9396, - 48241 - 44032: 0x9397, - 48242 - 44032: 0x9398, - 48243 - 44032: 0x9399, - 48244 - 44032: 0x939A, - 48245 - 44032: 0x939B, - 48246 - 44032: 0x939C, - 48247 - 44032: 0x939D, - 48248 - 44032: 0x939E, - 48249 - 44032: 0x939F, - 48250 - 44032: 0x93A0, - 48251 - 44032: 0x93A1, - 48252 - 44032: 0x93A2, - 48253 - 44032: 0x93A3, - 48254 - 44032: 0x93A4, - 48255 - 44032: 0x93A5, - 48256 - 44032: 0x93A6, - 48257 - 44032: 0x93A7, - 48258 - 44032: 0x93A8, - 48259 - 44032: 0x93A9, - 48260 - 44032: 0xB9F6, - 48261 - 44032: 0xB9F7, - 48262 - 44032: 0x93AA, - 48263 - 44032: 0x93AB, - 48264 - 44032: 0xB9F8, - 48265 - 44032: 0x93AC, - 48266 - 44032: 0x93AD, - 48267 - 44032: 0xB9F9, - 48268 - 44032: 0xB9FA, - 48269 - 44032: 0x93AE, - 48270 - 44032: 0xB9FB, - 48271 - 44032: 0x93AF, - 48272 - 44032: 0x93B0, - 48273 - 44032: 0x93B1, - 48274 - 44032: 0x93B2, - 48275 - 44032: 0x93B3, - 48276 - 44032: 0xB9FC, - 48277 - 44032: 0xB9FD, - 48278 - 44032: 0x93B4, - 48279 - 44032: 0xB9FE, - 48280 - 44032: 0x93B5, - 48281 - 44032: 0xBAA1, - 48282 - 44032: 0xBAA2, - 48283 - 44032: 0x93B6, - 48284 - 44032: 0x93B7, - 48285 - 44032: 0x93B8, - 48286 - 44032: 0x93B9, - 48287 - 44032: 0x93BA, - 48288 - 44032: 0xBAA3, - 48289 - 44032: 0xBAA4, - 48290 - 44032: 0x93BB, - 48291 - 44032: 0x93BC, - 48292 - 44032: 0xBAA5, - 48293 - 44032: 0x93BD, - 48294 - 44032: 0x93BE, - 48295 - 44032: 0xBAA6, - 48296 - 44032: 0xBAA7, - 48297 - 44032: 0x93BF, - 48298 - 44032: 0x93C0, - 48299 - 44032: 0x93C1, - 48300 - 44032: 0x93C2, - 48301 - 44032: 0x93C3, - 48302 - 44032: 0x93C4, - 48303 - 44032: 0x93C5, - 48304 - 44032: 0xBAA8, - 48305 - 44032: 0xBAA9, - 48306 - 44032: 0x93C6, - 48307 - 44032: 0xBAAA, - 48308 - 44032: 0xBAAB, - 48309 - 44032: 0xBAAC, - 48310 - 44032: 0x93C7, - 48311 - 44032: 0x93C8, - 48312 - 44032: 0x93C9, - 48313 - 44032: 0x93CA, - 48314 - 44032: 0x93CB, - 48315 - 44032: 0x93CC, - 48316 - 44032: 0xBAAD, - 48317 - 44032: 0xBAAE, - 48318 - 44032: 0x93CD, - 48319 - 44032: 0x93CE, - 48320 - 44032: 0xBAAF, - 48321 - 44032: 0x93CF, - 48322 - 44032: 0x93D0, - 48323 - 44032: 0x93D1, - 48324 - 44032: 0xBAB0, - 48325 - 44032: 0x93D2, - 48326 - 44032: 0x93D3, - 48327 - 44032: 0x93D4, - 48328 - 44032: 0x93D5, - 48329 - 44032: 0x93D6, - 48330 - 44032: 0x93D7, - 48331 - 44032: 0x93D8, - 48332 - 44032: 0x93D9, - 48333 - 44032: 0xBAB1, - 48334 - 44032: 0x93DA, - 48335 - 44032: 0xBAB2, - 48336 - 44032: 0xBAB3, - 48337 - 44032: 0xBAB4, - 48338 - 44032: 0x93DB, - 48339 - 44032: 0x93DC, - 48340 - 44032: 0x93DD, - 48341 - 44032: 0xBAB5, - 48342 - 44032: 0x93DE, - 48343 - 44032: 0x93DF, - 48344 - 44032: 0xBAB6, - 48345 - 44032: 0x93E0, - 48346 - 44032: 0x93E1, - 48347 - 44032: 0x93E2, - 48348 - 44032: 0xBAB7, - 48349 - 44032: 0x93E3, - 48350 - 44032: 0x93E4, - 48351 - 44032: 0x93E5, - 48352 - 44032: 0x93E6, - 48353 - 44032: 0x93E7, - 48354 - 44032: 0x93E8, - 48355 - 44032: 0x93E9, - 48356 - 44032: 0x93EA, - 48357 - 44032: 0x93EB, - 48358 - 44032: 0x93EC, - 48359 - 44032: 0x93ED, - 48360 - 44032: 0x93EE, - 48361 - 44032: 0x93EF, - 48362 - 44032: 0x93F0, - 48363 - 44032: 0x93F1, - 48364 - 44032: 0x93F2, - 48365 - 44032: 0x93F3, - 48366 - 44032: 0x93F4, - 48367 - 44032: 0x93F5, - 48368 - 44032: 0x93F6, - 48369 - 44032: 0x93F7, - 48370 - 44032: 0x93F8, - 48371 - 44032: 0x93F9, - 48372 - 44032: 0xBAB8, - 48373 - 44032: 0xBAB9, - 48374 - 44032: 0xBABA, - 48375 - 44032: 0x93FA, - 48376 - 44032: 0xBABB, - 48377 - 44032: 0x93FB, - 48378 - 44032: 0x93FC, - 48379 - 44032: 0x93FD, - 48380 - 44032: 0xBABC, - 48381 - 44032: 0x93FE, - 48382 - 44032: 0x9441, - 48383 - 44032: 0x9442, - 48384 - 44032: 0x9443, - 48385 - 44032: 0x9444, - 48386 - 44032: 0x9445, - 48387 - 44032: 0x9446, - 48388 - 44032: 0xBABD, - 48389 - 44032: 0xBABE, - 48390 - 44032: 0x9447, - 48391 - 44032: 0xBABF, - 48392 - 44032: 0x9448, - 48393 - 44032: 0xBAC0, - 48394 - 44032: 0x9449, - 48395 - 44032: 0x944A, - 48396 - 44032: 0x944B, - 48397 - 44032: 0x944C, - 48398 - 44032: 0x944D, - 48399 - 44032: 0x944E, - 48400 - 44032: 0xBAC1, - 48401 - 44032: 0x944F, - 48402 - 44032: 0x9450, - 48403 - 44032: 0x9451, - 48404 - 44032: 0xBAC2, - 48405 - 44032: 0x9452, - 48406 - 44032: 0x9453, - 48407 - 44032: 0x9454, - 48408 - 44032: 0x9455, - 48409 - 44032: 0x9456, - 48410 - 44032: 0x9457, - 48411 - 44032: 0x9458, - 48412 - 44032: 0x9459, - 48413 - 44032: 0x945A, - 48414 - 44032: 0x9461, - 48415 - 44032: 0x9462, - 48416 - 44032: 0x9463, - 48417 - 44032: 0x9464, - 48418 - 44032: 0x9465, - 48419 - 44032: 0x9466, - 48420 - 44032: 0xBAC3, - 48421 - 44032: 0x9467, - 48422 - 44032: 0x9468, - 48423 - 44032: 0x9469, - 48424 - 44032: 0x946A, - 48425 - 44032: 0x946B, - 48426 - 44032: 0x946C, - 48427 - 44032: 0x946D, - 48428 - 44032: 0xBAC4, - 48429 - 44032: 0x946E, - 48430 - 44032: 0x946F, - 48431 - 44032: 0x9470, - 48432 - 44032: 0x9471, - 48433 - 44032: 0x9472, - 48434 - 44032: 0x9473, - 48435 - 44032: 0x9474, - 48436 - 44032: 0x9475, - 48437 - 44032: 0x9476, - 48438 - 44032: 0x9477, - 48439 - 44032: 0x9478, - 48440 - 44032: 0x9479, - 48441 - 44032: 0x947A, - 48442 - 44032: 0x9481, - 48443 - 44032: 0x9482, - 48444 - 44032: 0x9483, - 48445 - 44032: 0x9484, - 48446 - 44032: 0x9485, - 48447 - 44032: 0x9486, - 48448 - 44032: 0xBAC5, - 48449 - 44032: 0x9487, - 48450 - 44032: 0x9488, - 48451 - 44032: 0x9489, - 48452 - 44032: 0x948A, - 48453 - 44032: 0x948B, - 48454 - 44032: 0x948C, - 48455 - 44032: 0x948D, - 48456 - 44032: 0xBAC6, - 48457 - 44032: 0xBAC7, - 48458 - 44032: 0x948E, - 48459 - 44032: 0x948F, - 48460 - 44032: 0xBAC8, - 48461 - 44032: 0x9490, - 48462 - 44032: 0x9491, - 48463 - 44032: 0x9492, - 48464 - 44032: 0xBAC9, - 48465 - 44032: 0x9493, - 48466 - 44032: 0x9494, - 48467 - 44032: 0x9495, - 48468 - 44032: 0x9496, - 48469 - 44032: 0x9497, - 48470 - 44032: 0x9498, - 48471 - 44032: 0x9499, - 48472 - 44032: 0xBACA, - 48473 - 44032: 0xBACB, - 48474 - 44032: 0x949A, - 48475 - 44032: 0x949B, - 48476 - 44032: 0x949C, - 48477 - 44032: 0x949D, - 48478 - 44032: 0x949E, - 48479 - 44032: 0x949F, - 48480 - 44032: 0x94A0, - 48481 - 44032: 0x94A1, - 48482 - 44032: 0x94A2, - 48483 - 44032: 0x94A3, - 48484 - 44032: 0xBACC, - 48485 - 44032: 0x94A4, - 48486 - 44032: 0x94A5, - 48487 - 44032: 0x94A6, - 48488 - 44032: 0xBACD, - 48489 - 44032: 0x94A7, - 48490 - 44032: 0x94A8, - 48491 - 44032: 0x94A9, - 48492 - 44032: 0x94AA, - 48493 - 44032: 0x94AB, - 48494 - 44032: 0x94AC, - 48495 - 44032: 0x94AD, - 48496 - 44032: 0x94AE, - 48497 - 44032: 0x94AF, - 48498 - 44032: 0x94B0, - 48499 - 44032: 0x94B1, - 48500 - 44032: 0x94B2, - 48501 - 44032: 0x94B3, - 48502 - 44032: 0x94B4, - 48503 - 44032: 0x94B5, - 48504 - 44032: 0x94B6, - 48505 - 44032: 0x94B7, - 48506 - 44032: 0x94B8, - 48507 - 44032: 0x94B9, - 48508 - 44032: 0x94BA, - 48509 - 44032: 0x94BB, - 48510 - 44032: 0x94BC, - 48511 - 44032: 0x94BD, - 48512 - 44032: 0xBACE, - 48513 - 44032: 0xBACF, - 48514 - 44032: 0x94BE, - 48515 - 44032: 0x94BF, - 48516 - 44032: 0xBAD0, - 48517 - 44032: 0x94C0, - 48518 - 44032: 0x94C1, - 48519 - 44032: 0xBAD1, - 48520 - 44032: 0xBAD2, - 48521 - 44032: 0xBAD3, - 48522 - 44032: 0xBAD4, - 48523 - 44032: 0x94C2, - 48524 - 44032: 0x94C3, - 48525 - 44032: 0x94C4, - 48526 - 44032: 0x94C5, - 48527 - 44032: 0x94C6, - 48528 - 44032: 0xBAD5, - 48529 - 44032: 0xBAD6, - 48530 - 44032: 0x94C7, - 48531 - 44032: 0xBAD7, - 48532 - 44032: 0x94C8, - 48533 - 44032: 0xBAD8, - 48534 - 44032: 0x94C9, - 48535 - 44032: 0x94CA, - 48536 - 44032: 0x94CB, - 48537 - 44032: 0xBAD9, - 48538 - 44032: 0xBADA, - 48539 - 44032: 0x94CC, - 48540 - 44032: 0xBADB, - 48541 - 44032: 0x94CD, - 48542 - 44032: 0x94CE, - 48543 - 44032: 0x94CF, - 48544 - 44032: 0x94D0, - 48545 - 44032: 0x94D1, - 48546 - 44032: 0x94D2, - 48547 - 44032: 0x94D3, - 48548 - 44032: 0xBADC, - 48549 - 44032: 0x94D4, - 48550 - 44032: 0x94D5, - 48551 - 44032: 0x94D6, - 48552 - 44032: 0x94D7, - 48553 - 44032: 0x94D8, - 48554 - 44032: 0x94D9, - 48555 - 44032: 0x94DA, - 48556 - 44032: 0x94DB, - 48557 - 44032: 0x94DC, - 48558 - 44032: 0x94DD, - 48559 - 44032: 0x94DE, - 48560 - 44032: 0xBADD, - 48561 - 44032: 0x94DF, - 48562 - 44032: 0x94E0, - 48563 - 44032: 0x94E1, - 48564 - 44032: 0x94E2, - 48565 - 44032: 0x94E3, - 48566 - 44032: 0x94E4, - 48567 - 44032: 0x94E5, - 48568 - 44032: 0xBADE, - 48569 - 44032: 0x94E6, - 48570 - 44032: 0x94E7, - 48571 - 44032: 0x94E8, - 48572 - 44032: 0x94E9, - 48573 - 44032: 0x94EA, - 48574 - 44032: 0x94EB, - 48575 - 44032: 0x94EC, - 48576 - 44032: 0x94ED, - 48577 - 44032: 0x94EE, - 48578 - 44032: 0x94EF, - 48579 - 44032: 0x94F0, - 48580 - 44032: 0x94F1, - 48581 - 44032: 0x94F2, - 48582 - 44032: 0x94F3, - 48583 - 44032: 0x94F4, - 48584 - 44032: 0x94F5, - 48585 - 44032: 0x94F6, - 48586 - 44032: 0x94F7, - 48587 - 44032: 0x94F8, - 48588 - 44032: 0x94F9, - 48589 - 44032: 0x94FA, - 48590 - 44032: 0x94FB, - 48591 - 44032: 0x94FC, - 48592 - 44032: 0x94FD, - 48593 - 44032: 0x94FE, - 48594 - 44032: 0x9541, - 48595 - 44032: 0x9542, - 48596 - 44032: 0xBADF, - 48597 - 44032: 0xBAE0, - 48598 - 44032: 0x9543, - 48599 - 44032: 0x9544, - 48600 - 44032: 0xBAE1, - 48601 - 44032: 0x9545, - 48602 - 44032: 0x9546, - 48603 - 44032: 0x9547, - 48604 - 44032: 0xBAE2, - 48605 - 44032: 0x9548, - 48606 - 44032: 0x9549, - 48607 - 44032: 0x954A, - 48608 - 44032: 0x954B, - 48609 - 44032: 0x954C, - 48610 - 44032: 0x954D, - 48611 - 44032: 0x954E, - 48612 - 44032: 0x954F, - 48613 - 44032: 0x9550, - 48614 - 44032: 0x9551, - 48615 - 44032: 0x9552, - 48616 - 44032: 0x9553, - 48617 - 44032: 0xBAE3, - 48618 - 44032: 0x9554, - 48619 - 44032: 0x9555, - 48620 - 44032: 0x9556, - 48621 - 44032: 0x9557, - 48622 - 44032: 0x9558, - 48623 - 44032: 0x9559, - 48624 - 44032: 0xBAE4, - 48625 - 44032: 0x955A, - 48626 - 44032: 0x9561, - 48627 - 44032: 0x9562, - 48628 - 44032: 0xBAE5, - 48629 - 44032: 0x9563, - 48630 - 44032: 0x9564, - 48631 - 44032: 0x9565, - 48632 - 44032: 0xBAE6, - 48633 - 44032: 0x9566, - 48634 - 44032: 0x9567, - 48635 - 44032: 0x9568, - 48636 - 44032: 0x9569, - 48637 - 44032: 0x956A, - 48638 - 44032: 0x956B, - 48639 - 44032: 0x956C, - 48640 - 44032: 0xBAE7, - 48641 - 44032: 0x956D, - 48642 - 44032: 0x956E, - 48643 - 44032: 0xBAE8, - 48644 - 44032: 0x956F, - 48645 - 44032: 0xBAE9, - 48646 - 44032: 0x9570, - 48647 - 44032: 0x9571, - 48648 - 44032: 0x9572, - 48649 - 44032: 0x9573, - 48650 - 44032: 0x9574, - 48651 - 44032: 0x9575, - 48652 - 44032: 0xBAEA, - 48653 - 44032: 0xBAEB, - 48654 - 44032: 0x9576, - 48655 - 44032: 0x9577, - 48656 - 44032: 0xBAEC, - 48657 - 44032: 0x9578, - 48658 - 44032: 0x9579, - 48659 - 44032: 0x957A, - 48660 - 44032: 0xBAED, - 48661 - 44032: 0x9581, - 48662 - 44032: 0x9582, - 48663 - 44032: 0x9583, - 48664 - 44032: 0x9584, - 48665 - 44032: 0x9585, - 48666 - 44032: 0x9586, - 48667 - 44032: 0x9587, - 48668 - 44032: 0xBAEE, - 48669 - 44032: 0xBAEF, - 48670 - 44032: 0x9588, - 48671 - 44032: 0xBAF0, - 48672 - 44032: 0x9589, - 48673 - 44032: 0x958A, - 48674 - 44032: 0x958B, - 48675 - 44032: 0x958C, - 48676 - 44032: 0x958D, - 48677 - 44032: 0x958E, - 48678 - 44032: 0x958F, - 48679 - 44032: 0x9590, - 48680 - 44032: 0x9591, - 48681 - 44032: 0x9592, - 48682 - 44032: 0x9593, - 48683 - 44032: 0x9594, - 48684 - 44032: 0x9595, - 48685 - 44032: 0x9596, - 48686 - 44032: 0x9597, - 48687 - 44032: 0x9598, - 48688 - 44032: 0x9599, - 48689 - 44032: 0x959A, - 48690 - 44032: 0x959B, - 48691 - 44032: 0x959C, - 48692 - 44032: 0x959D, - 48693 - 44032: 0x959E, - 48694 - 44032: 0x959F, - 48695 - 44032: 0x95A0, - 48696 - 44032: 0x95A1, - 48697 - 44032: 0x95A2, - 48698 - 44032: 0x95A3, - 48699 - 44032: 0x95A4, - 48700 - 44032: 0x95A5, - 48701 - 44032: 0x95A6, - 48702 - 44032: 0x95A7, - 48703 - 44032: 0x95A8, - 48704 - 44032: 0x95A9, - 48705 - 44032: 0x95AA, - 48706 - 44032: 0x95AB, - 48707 - 44032: 0x95AC, - 48708 - 44032: 0xBAF1, - 48709 - 44032: 0xBAF2, - 48710 - 44032: 0x95AD, - 48711 - 44032: 0x95AE, - 48712 - 44032: 0xBAF3, - 48713 - 44032: 0x95AF, - 48714 - 44032: 0x95B0, - 48715 - 44032: 0x95B1, - 48716 - 44032: 0xBAF4, - 48717 - 44032: 0x95B2, - 48718 - 44032: 0xBAF5, - 48719 - 44032: 0x95B3, - 48720 - 44032: 0x95B4, - 48721 - 44032: 0x95B5, - 48722 - 44032: 0x95B6, - 48723 - 44032: 0x95B7, - 48724 - 44032: 0xBAF6, - 48725 - 44032: 0xBAF7, - 48726 - 44032: 0x95B8, - 48727 - 44032: 0xBAF8, - 48728 - 44032: 0x95B9, - 48729 - 44032: 0xBAF9, - 48730 - 44032: 0xBAFA, - 48731 - 44032: 0xBAFB, - 48732 - 44032: 0x95BA, - 48733 - 44032: 0x95BB, - 48734 - 44032: 0x95BC, - 48735 - 44032: 0x95BD, - 48736 - 44032: 0xBAFC, - 48737 - 44032: 0xBAFD, - 48738 - 44032: 0x95BE, - 48739 - 44032: 0x95BF, - 48740 - 44032: 0xBAFE, - 48741 - 44032: 0x95C0, - 48742 - 44032: 0x95C1, - 48743 - 44032: 0x95C2, - 48744 - 44032: 0xBBA1, - 48745 - 44032: 0x95C3, - 48746 - 44032: 0xBBA2, - 48747 - 44032: 0x95C4, - 48748 - 44032: 0x95C5, - 48749 - 44032: 0x95C6, - 48750 - 44032: 0x95C7, - 48751 - 44032: 0x95C8, - 48752 - 44032: 0xBBA3, - 48753 - 44032: 0xBBA4, - 48754 - 44032: 0x95C9, - 48755 - 44032: 0xBBA5, - 48756 - 44032: 0xBBA6, - 48757 - 44032: 0xBBA7, - 48758 - 44032: 0x95CA, - 48759 - 44032: 0x95CB, - 48760 - 44032: 0x95CC, - 48761 - 44032: 0x95CD, - 48762 - 44032: 0x95CE, - 48763 - 44032: 0xBBA8, - 48764 - 44032: 0xBBA9, - 48765 - 44032: 0xBBAA, - 48766 - 44032: 0x95CF, - 48767 - 44032: 0x95D0, - 48768 - 44032: 0xBBAB, - 48769 - 44032: 0x95D1, - 48770 - 44032: 0x95D2, - 48771 - 44032: 0x95D3, - 48772 - 44032: 0xBBAC, - 48773 - 44032: 0x95D4, - 48774 - 44032: 0x95D5, - 48775 - 44032: 0x95D6, - 48776 - 44032: 0x95D7, - 48777 - 44032: 0x95D8, - 48778 - 44032: 0x95D9, - 48779 - 44032: 0x95DA, - 48780 - 44032: 0xBBAD, - 48781 - 44032: 0xBBAE, - 48782 - 44032: 0x95DB, - 48783 - 44032: 0xBBAF, - 48784 - 44032: 0xBBB0, - 48785 - 44032: 0xBBB1, - 48786 - 44032: 0x95DC, - 48787 - 44032: 0x95DD, - 48788 - 44032: 0x95DE, - 48789 - 44032: 0x95DF, - 48790 - 44032: 0x95E0, - 48791 - 44032: 0x95E1, - 48792 - 44032: 0xBBB2, - 48793 - 44032: 0xBBB3, - 48794 - 44032: 0x95E2, - 48795 - 44032: 0x95E3, - 48796 - 44032: 0x95E4, - 48797 - 44032: 0x95E5, - 48798 - 44032: 0x95E6, - 48799 - 44032: 0x95E7, - 48800 - 44032: 0x95E8, - 48801 - 44032: 0x95E9, - 48802 - 44032: 0x95EA, - 48803 - 44032: 0x95EB, - 48804 - 44032: 0x95EC, - 48805 - 44032: 0x95ED, - 48806 - 44032: 0x95EE, - 48807 - 44032: 0x95EF, - 48808 - 44032: 0xBBB4, - 48809 - 44032: 0x95F0, - 48810 - 44032: 0x95F1, - 48811 - 44032: 0x95F2, - 48812 - 44032: 0x95F3, - 48813 - 44032: 0x95F4, - 48814 - 44032: 0x95F5, - 48815 - 44032: 0x95F6, - 48816 - 44032: 0x95F7, - 48817 - 44032: 0x95F8, - 48818 - 44032: 0x95F9, - 48819 - 44032: 0x95FA, - 48820 - 44032: 0x95FB, - 48821 - 44032: 0x95FC, - 48822 - 44032: 0x95FD, - 48823 - 44032: 0x95FE, - 48824 - 44032: 0x9641, - 48825 - 44032: 0x9642, - 48826 - 44032: 0x9643, - 48827 - 44032: 0x9644, - 48828 - 44032: 0x9645, - 48829 - 44032: 0x9646, - 48830 - 44032: 0x9647, - 48831 - 44032: 0x9648, - 48832 - 44032: 0x9649, - 48833 - 44032: 0x964A, - 48834 - 44032: 0x964B, - 48835 - 44032: 0x964C, - 48836 - 44032: 0x964D, - 48837 - 44032: 0x964E, - 48838 - 44032: 0x964F, - 48839 - 44032: 0x9650, - 48840 - 44032: 0x9651, - 48841 - 44032: 0x9652, - 48842 - 44032: 0x9653, - 48843 - 44032: 0x9654, - 48844 - 44032: 0x9655, - 48845 - 44032: 0x9656, - 48846 - 44032: 0x9657, - 48847 - 44032: 0x9658, - 48848 - 44032: 0xBBB5, - 48849 - 44032: 0xBBB6, - 48850 - 44032: 0x9659, - 48851 - 44032: 0x965A, - 48852 - 44032: 0xBBB7, - 48853 - 44032: 0x9661, - 48854 - 44032: 0x9662, - 48855 - 44032: 0xBBB8, - 48856 - 44032: 0xBBB9, - 48857 - 44032: 0x9663, - 48858 - 44032: 0x9664, - 48859 - 44032: 0x9665, - 48860 - 44032: 0x9666, - 48861 - 44032: 0x9667, - 48862 - 44032: 0x9668, - 48863 - 44032: 0x9669, - 48864 - 44032: 0xBBBA, - 48865 - 44032: 0x966A, - 48866 - 44032: 0x966B, - 48867 - 44032: 0xBBBB, - 48868 - 44032: 0xBBBC, - 48869 - 44032: 0xBBBD, - 48870 - 44032: 0x966C, - 48871 - 44032: 0x966D, - 48872 - 44032: 0x966E, - 48873 - 44032: 0x966F, - 48874 - 44032: 0x9670, - 48875 - 44032: 0x9671, - 48876 - 44032: 0xBBBE, - 48877 - 44032: 0x9672, - 48878 - 44032: 0x9673, - 48879 - 44032: 0x9674, - 48880 - 44032: 0x9675, - 48881 - 44032: 0x9676, - 48882 - 44032: 0x9677, - 48883 - 44032: 0x9678, - 48884 - 44032: 0x9679, - 48885 - 44032: 0x967A, - 48886 - 44032: 0x9681, - 48887 - 44032: 0x9682, - 48888 - 44032: 0x9683, - 48889 - 44032: 0x9684, - 48890 - 44032: 0x9685, - 48891 - 44032: 0x9686, - 48892 - 44032: 0x9687, - 48893 - 44032: 0x9688, - 48894 - 44032: 0x9689, - 48895 - 44032: 0x968A, - 48896 - 44032: 0x968B, - 48897 - 44032: 0xBBBF, - 48898 - 44032: 0x968C, - 48899 - 44032: 0x968D, - 48900 - 44032: 0x968E, - 48901 - 44032: 0x968F, - 48902 - 44032: 0x9690, - 48903 - 44032: 0x9691, - 48904 - 44032: 0xBBC0, - 48905 - 44032: 0xBBC1, - 48906 - 44032: 0x9692, - 48907 - 44032: 0x9693, - 48908 - 44032: 0x9694, - 48909 - 44032: 0x9695, - 48910 - 44032: 0x9696, - 48911 - 44032: 0x9697, - 48912 - 44032: 0x9698, - 48913 - 44032: 0x9699, - 48914 - 44032: 0x969A, - 48915 - 44032: 0x969B, - 48916 - 44032: 0x969C, - 48917 - 44032: 0x969D, - 48918 - 44032: 0x969E, - 48919 - 44032: 0x969F, - 48920 - 44032: 0xBBC2, - 48921 - 44032: 0xBBC3, - 48922 - 44032: 0x96A0, - 48923 - 44032: 0xBBC4, - 48924 - 44032: 0xBBC5, - 48925 - 44032: 0xBBC6, - 48926 - 44032: 0x96A1, - 48927 - 44032: 0x96A2, - 48928 - 44032: 0x96A3, - 48929 - 44032: 0x96A4, - 48930 - 44032: 0x96A5, - 48931 - 44032: 0x96A6, - 48932 - 44032: 0x96A7, - 48933 - 44032: 0x96A8, - 48934 - 44032: 0x96A9, - 48935 - 44032: 0x96AA, - 48936 - 44032: 0x96AB, - 48937 - 44032: 0x96AC, - 48938 - 44032: 0x96AD, - 48939 - 44032: 0x96AE, - 48940 - 44032: 0x96AF, - 48941 - 44032: 0x96B0, - 48942 - 44032: 0x96B1, - 48943 - 44032: 0x96B2, - 48944 - 44032: 0x96B3, - 48945 - 44032: 0x96B4, - 48946 - 44032: 0x96B5, - 48947 - 44032: 0x96B6, - 48948 - 44032: 0x96B7, - 48949 - 44032: 0x96B8, - 48950 - 44032: 0x96B9, - 48951 - 44032: 0x96BA, - 48952 - 44032: 0x96BB, - 48953 - 44032: 0x96BC, - 48954 - 44032: 0x96BD, - 48955 - 44032: 0x96BE, - 48956 - 44032: 0x96BF, - 48957 - 44032: 0x96C0, - 48958 - 44032: 0x96C1, - 48959 - 44032: 0x96C2, - 48960 - 44032: 0xBBC7, - 48961 - 44032: 0xBBC8, - 48962 - 44032: 0x96C3, - 48963 - 44032: 0x96C4, - 48964 - 44032: 0xBBC9, - 48965 - 44032: 0x96C5, - 48966 - 44032: 0x96C6, - 48967 - 44032: 0x96C7, - 48968 - 44032: 0xBBCA, - 48969 - 44032: 0x96C8, - 48970 - 44032: 0x96C9, - 48971 - 44032: 0x96CA, - 48972 - 44032: 0x96CB, - 48973 - 44032: 0x96CC, - 48974 - 44032: 0x96CD, - 48975 - 44032: 0x96CE, - 48976 - 44032: 0xBBCB, - 48977 - 44032: 0xBBCC, - 48978 - 44032: 0x96CF, - 48979 - 44032: 0x96D0, - 48980 - 44032: 0x96D1, - 48981 - 44032: 0xBBCD, - 48982 - 44032: 0x96D2, - 48983 - 44032: 0x96D3, - 48984 - 44032: 0x96D4, - 48985 - 44032: 0x96D5, - 48986 - 44032: 0x96D6, - 48987 - 44032: 0x96D7, - 48988 - 44032: 0x96D8, - 48989 - 44032: 0x96D9, - 48990 - 44032: 0x96DA, - 48991 - 44032: 0x96DB, - 48992 - 44032: 0x96DC, - 48993 - 44032: 0x96DD, - 48994 - 44032: 0x96DE, - 48995 - 44032: 0x96DF, - 48996 - 44032: 0x96E0, - 48997 - 44032: 0x96E1, - 48998 - 44032: 0x96E2, - 48999 - 44032: 0x96E3, - 49000 - 44032: 0x96E4, - 49001 - 44032: 0x96E5, - 49002 - 44032: 0x96E6, - 49003 - 44032: 0x96E7, - 49004 - 44032: 0x96E8, - 49005 - 44032: 0x96E9, - 49006 - 44032: 0x96EA, - 49007 - 44032: 0x96EB, - 49008 - 44032: 0x96EC, - 49009 - 44032: 0x96ED, - 49010 - 44032: 0x96EE, - 49011 - 44032: 0x96EF, - 49012 - 44032: 0x96F0, - 49013 - 44032: 0x96F1, - 49014 - 44032: 0x96F2, - 49015 - 44032: 0x96F3, - 49016 - 44032: 0x96F4, - 49017 - 44032: 0x96F5, - 49018 - 44032: 0x96F6, - 49019 - 44032: 0x96F7, - 49020 - 44032: 0x96F8, - 49021 - 44032: 0x96F9, - 49022 - 44032: 0x96FA, - 49023 - 44032: 0x96FB, - 49024 - 44032: 0x96FC, - 49025 - 44032: 0x96FD, - 49026 - 44032: 0x96FE, - 49027 - 44032: 0x9741, - 49028 - 44032: 0x9742, - 49029 - 44032: 0x9743, - 49030 - 44032: 0x9744, - 49031 - 44032: 0x9745, - 49032 - 44032: 0x9746, - 49033 - 44032: 0x9747, - 49034 - 44032: 0x9748, - 49035 - 44032: 0x9749, - 49036 - 44032: 0x974A, - 49037 - 44032: 0x974B, - 49038 - 44032: 0x974C, - 49039 - 44032: 0x974D, - 49040 - 44032: 0x974E, - 49041 - 44032: 0x974F, - 49042 - 44032: 0x9750, - 49043 - 44032: 0x9751, - 49044 - 44032: 0xBBCE, - 49045 - 44032: 0x9752, - 49046 - 44032: 0x9753, - 49047 - 44032: 0x9754, - 49048 - 44032: 0x9755, - 49049 - 44032: 0x9756, - 49050 - 44032: 0x9757, - 49051 - 44032: 0x9758, - 49052 - 44032: 0x9759, - 49053 - 44032: 0x975A, - 49054 - 44032: 0x9761, - 49055 - 44032: 0x9762, - 49056 - 44032: 0x9763, - 49057 - 44032: 0x9764, - 49058 - 44032: 0x9765, - 49059 - 44032: 0x9766, - 49060 - 44032: 0x9767, - 49061 - 44032: 0x9768, - 49062 - 44032: 0x9769, - 49063 - 44032: 0x976A, - 49064 - 44032: 0x976B, - 49065 - 44032: 0x976C, - 49066 - 44032: 0x976D, - 49067 - 44032: 0x976E, - 49068 - 44032: 0x976F, - 49069 - 44032: 0x9770, - 49070 - 44032: 0x9771, - 49071 - 44032: 0x9772, - 49072 - 44032: 0xBBCF, - 49073 - 44032: 0x9773, - 49074 - 44032: 0x9774, - 49075 - 44032: 0x9775, - 49076 - 44032: 0x9776, - 49077 - 44032: 0x9777, - 49078 - 44032: 0x9778, - 49079 - 44032: 0x9779, - 49080 - 44032: 0x977A, - 49081 - 44032: 0x9781, - 49082 - 44032: 0x9782, - 49083 - 44032: 0x9783, - 49084 - 44032: 0x9784, - 49085 - 44032: 0x9785, - 49086 - 44032: 0x9786, - 49087 - 44032: 0x9787, - 49088 - 44032: 0x9788, - 49089 - 44032: 0x9789, - 49090 - 44032: 0x978A, - 49091 - 44032: 0x978B, - 49092 - 44032: 0x978C, - 49093 - 44032: 0xBBD0, - 49094 - 44032: 0x978D, - 49095 - 44032: 0x978E, - 49096 - 44032: 0x978F, - 49097 - 44032: 0x9790, - 49098 - 44032: 0x9791, - 49099 - 44032: 0x9792, - 49100 - 44032: 0xBBD1, - 49101 - 44032: 0xBBD2, - 49102 - 44032: 0x9793, - 49103 - 44032: 0x9794, - 49104 - 44032: 0xBBD3, - 49105 - 44032: 0x9795, - 49106 - 44032: 0x9796, - 49107 - 44032: 0x9797, - 49108 - 44032: 0xBBD4, - 49109 - 44032: 0x9798, - 49110 - 44032: 0x9799, - 49111 - 44032: 0x979A, - 49112 - 44032: 0x979B, - 49113 - 44032: 0x979C, - 49114 - 44032: 0x979D, - 49115 - 44032: 0x979E, - 49116 - 44032: 0xBBD5, - 49117 - 44032: 0x979F, - 49118 - 44032: 0x97A0, - 49119 - 44032: 0xBBD6, - 49120 - 44032: 0x97A1, - 49121 - 44032: 0xBBD7, - 49122 - 44032: 0x97A2, - 49123 - 44032: 0x97A3, - 49124 - 44032: 0x97A4, - 49125 - 44032: 0x97A5, - 49126 - 44032: 0x97A6, - 49127 - 44032: 0x97A7, - 49128 - 44032: 0x97A8, - 49129 - 44032: 0x97A9, - 49130 - 44032: 0x97AA, - 49131 - 44032: 0x97AB, - 49132 - 44032: 0x97AC, - 49133 - 44032: 0x97AD, - 49134 - 44032: 0x97AE, - 49135 - 44032: 0x97AF, - 49136 - 44032: 0x97B0, - 49137 - 44032: 0x97B1, - 49138 - 44032: 0x97B2, - 49139 - 44032: 0x97B3, - 49140 - 44032: 0x97B4, - 49141 - 44032: 0x97B5, - 49142 - 44032: 0x97B6, - 49143 - 44032: 0x97B7, - 49144 - 44032: 0x97B8, - 49145 - 44032: 0x97B9, - 49146 - 44032: 0x97BA, - 49147 - 44032: 0x97BB, - 49148 - 44032: 0x97BC, - 49149 - 44032: 0x97BD, - 49150 - 44032: 0x97BE, - 49151 - 44032: 0x97BF, - 49152 - 44032: 0x97C0, - 49153 - 44032: 0x97C1, - 49154 - 44032: 0x97C2, - 49155 - 44032: 0x97C3, - 49156 - 44032: 0x97C4, - 49157 - 44032: 0x97C5, - 49158 - 44032: 0x97C6, - 49159 - 44032: 0x97C7, - 49160 - 44032: 0x97C8, - 49161 - 44032: 0x97C9, - 49162 - 44032: 0x97CA, - 49163 - 44032: 0x97CB, - 49164 - 44032: 0x97CC, - 49165 - 44032: 0x97CD, - 49166 - 44032: 0x97CE, - 49167 - 44032: 0x97CF, - 49168 - 44032: 0x97D0, - 49169 - 44032: 0x97D1, - 49170 - 44032: 0x97D2, - 49171 - 44032: 0x97D3, - 49172 - 44032: 0x97D4, - 49173 - 44032: 0x97D5, - 49174 - 44032: 0x97D6, - 49175 - 44032: 0x97D7, - 49176 - 44032: 0x97D8, - 49177 - 44032: 0x97D9, - 49178 - 44032: 0x97DA, - 49179 - 44032: 0x97DB, - 49180 - 44032: 0x97DC, - 49181 - 44032: 0x97DD, - 49182 - 44032: 0x97DE, - 49183 - 44032: 0x97DF, - 49184 - 44032: 0x97E0, - 49185 - 44032: 0x97E1, - 49186 - 44032: 0x97E2, - 49187 - 44032: 0x97E3, - 49188 - 44032: 0x97E4, - 49189 - 44032: 0x97E5, - 49190 - 44032: 0x97E6, - 49191 - 44032: 0x97E7, - 49192 - 44032: 0x97E8, - 49193 - 44032: 0x97E9, - 49194 - 44032: 0x97EA, - 49195 - 44032: 0x97EB, - 49196 - 44032: 0x97EC, - 49197 - 44032: 0x97ED, - 49198 - 44032: 0x97EE, - 49199 - 44032: 0x97EF, - 49200 - 44032: 0x97F0, - 49201 - 44032: 0x97F1, - 49202 - 44032: 0x97F2, - 49203 - 44032: 0x97F3, - 49204 - 44032: 0x97F4, - 49205 - 44032: 0x97F5, - 49206 - 44032: 0x97F6, - 49207 - 44032: 0x97F7, - 49208 - 44032: 0x97F8, - 49209 - 44032: 0x97F9, - 49210 - 44032: 0x97FA, - 49211 - 44032: 0x97FB, - 49212 - 44032: 0xBBD8, - 49213 - 44032: 0x97FC, - 49214 - 44032: 0x97FD, - 49215 - 44032: 0x97FE, - 49216 - 44032: 0x9841, - 49217 - 44032: 0x9842, - 49218 - 44032: 0x9843, - 49219 - 44032: 0x9844, - 49220 - 44032: 0x9845, - 49221 - 44032: 0x9846, - 49222 - 44032: 0x9847, - 49223 - 44032: 0x9848, - 49224 - 44032: 0x9849, - 49225 - 44032: 0x984A, - 49226 - 44032: 0x984B, - 49227 - 44032: 0x984C, - 49228 - 44032: 0x984D, - 49229 - 44032: 0x984E, - 49230 - 44032: 0x984F, - 49231 - 44032: 0x9850, - 49232 - 44032: 0x9851, - 49233 - 44032: 0xBBD9, - 49234 - 44032: 0x9852, - 49235 - 44032: 0x9853, - 49236 - 44032: 0x9854, - 49237 - 44032: 0x9855, - 49238 - 44032: 0x9856, - 49239 - 44032: 0x9857, - 49240 - 44032: 0xBBDA, - 49241 - 44032: 0x9858, - 49242 - 44032: 0x9859, - 49243 - 44032: 0x985A, - 49244 - 44032: 0xBBDB, - 49245 - 44032: 0x9861, - 49246 - 44032: 0x9862, - 49247 - 44032: 0x9863, - 49248 - 44032: 0xBBDC, - 49249 - 44032: 0x9864, - 49250 - 44032: 0x9865, - 49251 - 44032: 0x9866, - 49252 - 44032: 0x9867, - 49253 - 44032: 0x9868, - 49254 - 44032: 0x9869, - 49255 - 44032: 0x986A, - 49256 - 44032: 0xBBDD, - 49257 - 44032: 0xBBDE, - 49258 - 44032: 0x986B, - 49259 - 44032: 0x986C, - 49260 - 44032: 0x986D, - 49261 - 44032: 0x986E, - 49262 - 44032: 0x986F, - 49263 - 44032: 0x9870, - 49264 - 44032: 0x9871, - 49265 - 44032: 0x9872, - 49266 - 44032: 0x9873, - 49267 - 44032: 0x9874, - 49268 - 44032: 0x9875, - 49269 - 44032: 0x9876, - 49270 - 44032: 0x9877, - 49271 - 44032: 0x9878, - 49272 - 44032: 0x9879, - 49273 - 44032: 0x987A, - 49274 - 44032: 0x9881, - 49275 - 44032: 0x9882, - 49276 - 44032: 0x9883, - 49277 - 44032: 0x9884, - 49278 - 44032: 0x9885, - 49279 - 44032: 0x9886, - 49280 - 44032: 0x9887, - 49281 - 44032: 0x9888, - 49282 - 44032: 0x9889, - 49283 - 44032: 0x988A, - 49284 - 44032: 0x988B, - 49285 - 44032: 0x988C, - 49286 - 44032: 0x988D, - 49287 - 44032: 0x988E, - 49288 - 44032: 0x988F, - 49289 - 44032: 0x9890, - 49290 - 44032: 0x9891, - 49291 - 44032: 0x9892, - 49292 - 44032: 0x9893, - 49293 - 44032: 0x9894, - 49294 - 44032: 0x9895, - 49295 - 44032: 0x9896, - 49296 - 44032: 0xBBDF, - 49297 - 44032: 0xBBE0, - 49298 - 44032: 0x9897, - 49299 - 44032: 0x9898, - 49300 - 44032: 0xBBE1, - 49301 - 44032: 0x9899, - 49302 - 44032: 0x989A, - 49303 - 44032: 0x989B, - 49304 - 44032: 0xBBE2, - 49305 - 44032: 0x989C, - 49306 - 44032: 0x989D, - 49307 - 44032: 0x989E, - 49308 - 44032: 0x989F, - 49309 - 44032: 0x98A0, - 49310 - 44032: 0x98A1, - 49311 - 44032: 0x98A2, - 49312 - 44032: 0xBBE3, - 49313 - 44032: 0xBBE4, - 49314 - 44032: 0x98A3, - 49315 - 44032: 0xBBE5, - 49316 - 44032: 0x98A4, - 49317 - 44032: 0xBBE6, - 49318 - 44032: 0x98A5, - 49319 - 44032: 0x98A6, - 49320 - 44032: 0x98A7, - 49321 - 44032: 0x98A8, - 49322 - 44032: 0x98A9, - 49323 - 44032: 0x98AA, - 49324 - 44032: 0xBBE7, - 49325 - 44032: 0xBBE8, - 49326 - 44032: 0x98AB, - 49327 - 44032: 0xBBE9, - 49328 - 44032: 0xBBEA, - 49329 - 44032: 0x98AC, - 49330 - 44032: 0x98AD, - 49331 - 44032: 0xBBEB, - 49332 - 44032: 0xBBEC, - 49333 - 44032: 0xBBED, - 49334 - 44032: 0xBBEE, - 49335 - 44032: 0x98AE, - 49336 - 44032: 0x98AF, - 49337 - 44032: 0x98B0, - 49338 - 44032: 0x98B1, - 49339 - 44032: 0x98B2, - 49340 - 44032: 0xBBEF, - 49341 - 44032: 0xBBF0, - 49342 - 44032: 0x98B3, - 49343 - 44032: 0xBBF1, - 49344 - 44032: 0xBBF2, - 49345 - 44032: 0xBBF3, - 49346 - 44032: 0x98B4, - 49347 - 44032: 0x98B5, - 49348 - 44032: 0x98B6, - 49349 - 44032: 0xBBF4, - 49350 - 44032: 0x98B7, - 49351 - 44032: 0x98B8, - 49352 - 44032: 0xBBF5, - 49353 - 44032: 0xBBF6, - 49354 - 44032: 0x98B9, - 49355 - 44032: 0x98BA, - 49356 - 44032: 0xBBF7, - 49357 - 44032: 0x98BB, - 49358 - 44032: 0x98BC, - 49359 - 44032: 0x98BD, - 49360 - 44032: 0xBBF8, - 49361 - 44032: 0x98BE, - 49362 - 44032: 0x98BF, - 49363 - 44032: 0x98C0, - 49364 - 44032: 0x98C1, - 49365 - 44032: 0x98C2, - 49366 - 44032: 0x98C3, - 49367 - 44032: 0x98C4, - 49368 - 44032: 0xBBF9, - 49369 - 44032: 0xBBFA, - 49370 - 44032: 0x98C5, - 49371 - 44032: 0xBBFB, - 49372 - 44032: 0xBBFC, - 49373 - 44032: 0xBBFD, - 49374 - 44032: 0x98C6, - 49375 - 44032: 0x98C7, - 49376 - 44032: 0x98C8, - 49377 - 44032: 0x98C9, - 49378 - 44032: 0x98CA, - 49379 - 44032: 0x98CB, - 49380 - 44032: 0xBBFE, - 49381 - 44032: 0xBCA1, - 49382 - 44032: 0x98CC, - 49383 - 44032: 0x98CD, - 49384 - 44032: 0xBCA2, - 49385 - 44032: 0x98CE, - 49386 - 44032: 0x98CF, - 49387 - 44032: 0x98D0, - 49388 - 44032: 0xBCA3, - 49389 - 44032: 0x98D1, - 49390 - 44032: 0x98D2, - 49391 - 44032: 0x98D3, - 49392 - 44032: 0x98D4, - 49393 - 44032: 0x98D5, - 49394 - 44032: 0x98D6, - 49395 - 44032: 0x98D7, - 49396 - 44032: 0xBCA4, - 49397 - 44032: 0xBCA5, - 49398 - 44032: 0x98D8, - 49399 - 44032: 0xBCA6, - 49400 - 44032: 0x98D9, - 49401 - 44032: 0xBCA7, - 49402 - 44032: 0x98DA, - 49403 - 44032: 0x98DB, - 49404 - 44032: 0x98DC, - 49405 - 44032: 0x98DD, - 49406 - 44032: 0x98DE, - 49407 - 44032: 0x98DF, - 49408 - 44032: 0xBCA8, - 49409 - 44032: 0x98E0, - 49410 - 44032: 0x98E1, - 49411 - 44032: 0x98E2, - 49412 - 44032: 0xBCA9, - 49413 - 44032: 0x98E3, - 49414 - 44032: 0x98E4, - 49415 - 44032: 0x98E5, - 49416 - 44032: 0xBCAA, - 49417 - 44032: 0x98E6, - 49418 - 44032: 0x98E7, - 49419 - 44032: 0x98E8, - 49420 - 44032: 0x98E9, - 49421 - 44032: 0x98EA, - 49422 - 44032: 0x98EB, - 49423 - 44032: 0x98EC, - 49424 - 44032: 0xBCAB, - 49425 - 44032: 0x98ED, - 49426 - 44032: 0x98EE, - 49427 - 44032: 0x98EF, - 49428 - 44032: 0x98F0, - 49429 - 44032: 0xBCAC, - 49430 - 44032: 0x98F1, - 49431 - 44032: 0x98F2, - 49432 - 44032: 0x98F3, - 49433 - 44032: 0x98F4, - 49434 - 44032: 0x98F5, - 49435 - 44032: 0x98F6, - 49436 - 44032: 0xBCAD, - 49437 - 44032: 0xBCAE, - 49438 - 44032: 0xBCAF, - 49439 - 44032: 0xBCB0, - 49440 - 44032: 0xBCB1, - 49441 - 44032: 0x98F7, - 49442 - 44032: 0x98F8, - 49443 - 44032: 0xBCB2, - 49444 - 44032: 0xBCB3, - 49445 - 44032: 0x98F9, - 49446 - 44032: 0xBCB4, - 49447 - 44032: 0xBCB5, - 49448 - 44032: 0x98FA, - 49449 - 44032: 0x98FB, - 49450 - 44032: 0x98FC, - 49451 - 44032: 0x98FD, - 49452 - 44032: 0xBCB6, - 49453 - 44032: 0xBCB7, - 49454 - 44032: 0x98FE, - 49455 - 44032: 0xBCB8, - 49456 - 44032: 0xBCB9, - 49457 - 44032: 0xBCBA, - 49458 - 44032: 0x9941, - 49459 - 44032: 0x9942, - 49460 - 44032: 0x9943, - 49461 - 44032: 0x9944, - 49462 - 44032: 0xBCBB, - 49463 - 44032: 0x9945, - 49464 - 44032: 0xBCBC, - 49465 - 44032: 0xBCBD, - 49466 - 44032: 0x9946, - 49467 - 44032: 0x9947, - 49468 - 44032: 0xBCBE, - 49469 - 44032: 0x9948, - 49470 - 44032: 0x9949, - 49471 - 44032: 0x994A, - 49472 - 44032: 0xBCBF, - 49473 - 44032: 0x994B, - 49474 - 44032: 0x994C, - 49475 - 44032: 0x994D, - 49476 - 44032: 0x994E, - 49477 - 44032: 0x994F, - 49478 - 44032: 0x9950, - 49479 - 44032: 0x9951, - 49480 - 44032: 0xBCC0, - 49481 - 44032: 0xBCC1, - 49482 - 44032: 0x9952, - 49483 - 44032: 0xBCC2, - 49484 - 44032: 0xBCC3, - 49485 - 44032: 0xBCC4, - 49486 - 44032: 0x9953, - 49487 - 44032: 0x9954, - 49488 - 44032: 0x9955, - 49489 - 44032: 0x9956, - 49490 - 44032: 0x9957, - 49491 - 44032: 0x9958, - 49492 - 44032: 0xBCC5, - 49493 - 44032: 0xBCC6, - 49494 - 44032: 0x9959, - 49495 - 44032: 0x995A, - 49496 - 44032: 0xBCC7, - 49497 - 44032: 0x9961, - 49498 - 44032: 0x9962, - 49499 - 44032: 0x9963, - 49500 - 44032: 0xBCC8, - 49501 - 44032: 0x9964, - 49502 - 44032: 0x9965, - 49503 - 44032: 0x9966, - 49504 - 44032: 0x9967, - 49505 - 44032: 0x9968, - 49506 - 44032: 0x9969, - 49507 - 44032: 0x996A, - 49508 - 44032: 0xBCC9, - 49509 - 44032: 0xBCCA, - 49510 - 44032: 0x996B, - 49511 - 44032: 0xBCCB, - 49512 - 44032: 0xBCCC, - 49513 - 44032: 0xBCCD, - 49514 - 44032: 0x996C, - 49515 - 44032: 0x996D, - 49516 - 44032: 0x996E, - 49517 - 44032: 0x996F, - 49518 - 44032: 0x9970, - 49519 - 44032: 0x9971, - 49520 - 44032: 0xBCCE, - 49521 - 44032: 0x9972, - 49522 - 44032: 0x9973, - 49523 - 44032: 0x9974, - 49524 - 44032: 0xBCCF, - 49525 - 44032: 0x9975, - 49526 - 44032: 0x9976, - 49527 - 44032: 0x9977, - 49528 - 44032: 0xBCD0, - 49529 - 44032: 0x9978, - 49530 - 44032: 0x9979, - 49531 - 44032: 0x997A, - 49532 - 44032: 0x9981, - 49533 - 44032: 0x9982, - 49534 - 44032: 0x9983, - 49535 - 44032: 0x9984, - 49536 - 44032: 0x9985, - 49537 - 44032: 0x9986, - 49538 - 44032: 0x9987, - 49539 - 44032: 0x9988, - 49540 - 44032: 0x9989, - 49541 - 44032: 0xBCD1, - 49542 - 44032: 0x998A, - 49543 - 44032: 0x998B, - 49544 - 44032: 0x998C, - 49545 - 44032: 0x998D, - 49546 - 44032: 0x998E, - 49547 - 44032: 0x998F, - 49548 - 44032: 0xBCD2, - 49549 - 44032: 0xBCD3, - 49550 - 44032: 0xBCD4, - 49551 - 44032: 0x9990, - 49552 - 44032: 0xBCD5, - 49553 - 44032: 0x9991, - 49554 - 44032: 0x9992, - 49555 - 44032: 0x9993, - 49556 - 44032: 0xBCD6, - 49557 - 44032: 0x9994, - 49558 - 44032: 0xBCD7, - 49559 - 44032: 0x9995, - 49560 - 44032: 0x9996, - 49561 - 44032: 0x9997, - 49562 - 44032: 0x9998, - 49563 - 44032: 0x9999, - 49564 - 44032: 0xBCD8, - 49565 - 44032: 0xBCD9, - 49566 - 44032: 0x999A, - 49567 - 44032: 0xBCDA, - 49568 - 44032: 0x999B, - 49569 - 44032: 0xBCDB, - 49570 - 44032: 0x999C, - 49571 - 44032: 0x999D, - 49572 - 44032: 0x999E, - 49573 - 44032: 0xBCDC, - 49574 - 44032: 0x999F, - 49575 - 44032: 0x99A0, - 49576 - 44032: 0xBCDD, - 49577 - 44032: 0xBCDE, - 49578 - 44032: 0x99A1, - 49579 - 44032: 0x99A2, - 49580 - 44032: 0xBCDF, - 49581 - 44032: 0x99A3, - 49582 - 44032: 0x99A4, - 49583 - 44032: 0x99A5, - 49584 - 44032: 0xBCE0, - 49585 - 44032: 0x99A6, - 49586 - 44032: 0x99A7, - 49587 - 44032: 0x99A8, - 49588 - 44032: 0x99A9, - 49589 - 44032: 0x99AA, - 49590 - 44032: 0x99AB, - 49591 - 44032: 0x99AC, - 49592 - 44032: 0x99AD, - 49593 - 44032: 0x99AE, - 49594 - 44032: 0x99AF, - 49595 - 44032: 0x99B0, - 49596 - 44032: 0x99B1, - 49597 - 44032: 0xBCE1, - 49598 - 44032: 0x99B2, - 49599 - 44032: 0x99B3, - 49600 - 44032: 0x99B4, - 49601 - 44032: 0x99B5, - 49602 - 44032: 0x99B6, - 49603 - 44032: 0x99B7, - 49604 - 44032: 0xBCE2, - 49605 - 44032: 0x99B8, - 49606 - 44032: 0x99B9, - 49607 - 44032: 0x99BA, - 49608 - 44032: 0xBCE3, - 49609 - 44032: 0x99BB, - 49610 - 44032: 0x99BC, - 49611 - 44032: 0x99BD, - 49612 - 44032: 0xBCE4, - 49613 - 44032: 0x99BE, - 49614 - 44032: 0x99BF, - 49615 - 44032: 0x99C0, - 49616 - 44032: 0x99C1, - 49617 - 44032: 0x99C2, - 49618 - 44032: 0x99C3, - 49619 - 44032: 0x99C4, - 49620 - 44032: 0xBCE5, - 49621 - 44032: 0x99C5, - 49622 - 44032: 0x99C6, - 49623 - 44032: 0xBCE6, - 49624 - 44032: 0xBCE7, - 49625 - 44032: 0x99C7, - 49626 - 44032: 0x99C8, - 49627 - 44032: 0x99C9, - 49628 - 44032: 0x99CA, - 49629 - 44032: 0x99CB, - 49630 - 44032: 0x99CC, - 49631 - 44032: 0x99CD, - 49632 - 44032: 0xBCE8, - 49633 - 44032: 0x99CE, - 49634 - 44032: 0x99CF, - 49635 - 44032: 0x99D0, - 49636 - 44032: 0xBCE9, - 49637 - 44032: 0x99D1, - 49638 - 44032: 0x99D2, - 49639 - 44032: 0x99D3, - 49640 - 44032: 0xBCEA, - 49641 - 44032: 0x99D4, - 49642 - 44032: 0x99D5, - 49643 - 44032: 0x99D6, - 49644 - 44032: 0x99D7, - 49645 - 44032: 0x99D8, - 49646 - 44032: 0x99D9, - 49647 - 44032: 0x99DA, - 49648 - 44032: 0xBCEB, - 49649 - 44032: 0xBCEC, - 49650 - 44032: 0x99DB, - 49651 - 44032: 0xBCED, - 49652 - 44032: 0x99DC, - 49653 - 44032: 0x99DD, - 49654 - 44032: 0x99DE, - 49655 - 44032: 0x99DF, - 49656 - 44032: 0x99E0, - 49657 - 44032: 0x99E1, - 49658 - 44032: 0x99E2, - 49659 - 44032: 0x99E3, - 49660 - 44032: 0xBCEE, - 49661 - 44032: 0xBCEF, - 49662 - 44032: 0x99E4, - 49663 - 44032: 0x99E5, - 49664 - 44032: 0xBCF0, - 49665 - 44032: 0x99E6, - 49666 - 44032: 0x99E7, - 49667 - 44032: 0x99E8, - 49668 - 44032: 0xBCF1, - 49669 - 44032: 0x99E9, - 49670 - 44032: 0x99EA, - 49671 - 44032: 0x99EB, - 49672 - 44032: 0x99EC, - 49673 - 44032: 0x99ED, - 49674 - 44032: 0x99EE, - 49675 - 44032: 0x99EF, - 49676 - 44032: 0xBCF2, - 49677 - 44032: 0xBCF3, - 49678 - 44032: 0x99F0, - 49679 - 44032: 0xBCF4, - 49680 - 44032: 0x99F1, - 49681 - 44032: 0xBCF5, - 49682 - 44032: 0x99F2, - 49683 - 44032: 0x99F3, - 49684 - 44032: 0x99F4, - 49685 - 44032: 0x99F5, - 49686 - 44032: 0x99F6, - 49687 - 44032: 0x99F7, - 49688 - 44032: 0xBCF6, - 49689 - 44032: 0xBCF7, - 49690 - 44032: 0x99F8, - 49691 - 44032: 0x99F9, - 49692 - 44032: 0xBCF8, - 49693 - 44032: 0x99FA, - 49694 - 44032: 0x99FB, - 49695 - 44032: 0xBCF9, - 49696 - 44032: 0xBCFA, - 49697 - 44032: 0x99FC, - 49698 - 44032: 0x99FD, - 49699 - 44032: 0x99FE, - 49700 - 44032: 0x9A41, - 49701 - 44032: 0x9A42, - 49702 - 44032: 0x9A43, - 49703 - 44032: 0x9A44, - 49704 - 44032: 0xBCFB, - 49705 - 44032: 0xBCFC, - 49706 - 44032: 0x9A45, - 49707 - 44032: 0xBCFD, - 49708 - 44032: 0x9A46, - 49709 - 44032: 0xBCFE, - 49710 - 44032: 0x9A47, - 49711 - 44032: 0xBDA1, - 49712 - 44032: 0x9A48, - 49713 - 44032: 0xBDA2, - 49714 - 44032: 0xBDA3, - 49715 - 44032: 0x9A49, - 49716 - 44032: 0xBDA4, - 49717 - 44032: 0x9A4A, - 49718 - 44032: 0x9A4B, - 49719 - 44032: 0x9A4C, - 49720 - 44032: 0x9A4D, - 49721 - 44032: 0x9A4E, - 49722 - 44032: 0x9A4F, - 49723 - 44032: 0x9A50, - 49724 - 44032: 0x9A51, - 49725 - 44032: 0x9A52, - 49726 - 44032: 0x9A53, - 49727 - 44032: 0x9A54, - 49728 - 44032: 0x9A55, - 49729 - 44032: 0x9A56, - 49730 - 44032: 0x9A57, - 49731 - 44032: 0x9A58, - 49732 - 44032: 0x9A59, - 49733 - 44032: 0x9A5A, - 49734 - 44032: 0x9A61, - 49735 - 44032: 0x9A62, - 49736 - 44032: 0xBDA5, - 49737 - 44032: 0x9A63, - 49738 - 44032: 0x9A64, - 49739 - 44032: 0x9A65, - 49740 - 44032: 0x9A66, - 49741 - 44032: 0x9A67, - 49742 - 44032: 0x9A68, - 49743 - 44032: 0x9A69, - 49744 - 44032: 0xBDA6, - 49745 - 44032: 0xBDA7, - 49746 - 44032: 0x9A6A, - 49747 - 44032: 0x9A6B, - 49748 - 44032: 0xBDA8, - 49749 - 44032: 0x9A6C, - 49750 - 44032: 0x9A6D, - 49751 - 44032: 0x9A6E, - 49752 - 44032: 0xBDA9, - 49753 - 44032: 0x9A6F, - 49754 - 44032: 0x9A70, - 49755 - 44032: 0x9A71, - 49756 - 44032: 0x9A72, - 49757 - 44032: 0x9A73, - 49758 - 44032: 0x9A74, - 49759 - 44032: 0x9A75, - 49760 - 44032: 0xBDAA, - 49761 - 44032: 0x9A76, - 49762 - 44032: 0x9A77, - 49763 - 44032: 0x9A78, - 49764 - 44032: 0x9A79, - 49765 - 44032: 0xBDAB, - 49766 - 44032: 0x9A7A, - 49767 - 44032: 0x9A81, - 49768 - 44032: 0x9A82, - 49769 - 44032: 0x9A83, - 49770 - 44032: 0x9A84, - 49771 - 44032: 0x9A85, - 49772 - 44032: 0xBDAC, - 49773 - 44032: 0xBDAD, - 49774 - 44032: 0x9A86, - 49775 - 44032: 0x9A87, - 49776 - 44032: 0xBDAE, - 49777 - 44032: 0x9A88, - 49778 - 44032: 0x9A89, - 49779 - 44032: 0x9A8A, - 49780 - 44032: 0xBDAF, - 49781 - 44032: 0x9A8B, - 49782 - 44032: 0x9A8C, - 49783 - 44032: 0x9A8D, - 49784 - 44032: 0x9A8E, - 49785 - 44032: 0x9A8F, - 49786 - 44032: 0x9A90, - 49787 - 44032: 0x9A91, - 49788 - 44032: 0xBDB0, - 49789 - 44032: 0xBDB1, - 49790 - 44032: 0x9A92, - 49791 - 44032: 0xBDB2, - 49792 - 44032: 0x9A93, - 49793 - 44032: 0xBDB3, - 49794 - 44032: 0x9A94, - 49795 - 44032: 0x9A95, - 49796 - 44032: 0x9A96, - 49797 - 44032: 0x9A97, - 49798 - 44032: 0x9A98, - 49799 - 44032: 0x9A99, - 49800 - 44032: 0xBDB4, - 49801 - 44032: 0xBDB5, - 49802 - 44032: 0x9A9A, - 49803 - 44032: 0x9A9B, - 49804 - 44032: 0x9A9C, - 49805 - 44032: 0x9A9D, - 49806 - 44032: 0x9A9E, - 49807 - 44032: 0x9A9F, - 49808 - 44032: 0xBDB6, - 49809 - 44032: 0x9AA0, - 49810 - 44032: 0x9AA1, - 49811 - 44032: 0x9AA2, - 49812 - 44032: 0x9AA3, - 49813 - 44032: 0x9AA4, - 49814 - 44032: 0x9AA5, - 49815 - 44032: 0x9AA6, - 49816 - 44032: 0xBDB7, - 49817 - 44032: 0x9AA7, - 49818 - 44032: 0x9AA8, - 49819 - 44032: 0xBDB8, - 49820 - 44032: 0x9AA9, - 49821 - 44032: 0xBDB9, - 49822 - 44032: 0x9AAA, - 49823 - 44032: 0x9AAB, - 49824 - 44032: 0x9AAC, - 49825 - 44032: 0x9AAD, - 49826 - 44032: 0x9AAE, - 49827 - 44032: 0x9AAF, - 49828 - 44032: 0xBDBA, - 49829 - 44032: 0xBDBB, - 49830 - 44032: 0x9AB0, - 49831 - 44032: 0x9AB1, - 49832 - 44032: 0xBDBC, - 49833 - 44032: 0x9AB2, - 49834 - 44032: 0x9AB3, - 49835 - 44032: 0x9AB4, - 49836 - 44032: 0xBDBD, - 49837 - 44032: 0xBDBE, - 49838 - 44032: 0x9AB5, - 49839 - 44032: 0x9AB6, - 49840 - 44032: 0x9AB7, - 49841 - 44032: 0x9AB8, - 49842 - 44032: 0x9AB9, - 49843 - 44032: 0x9ABA, - 49844 - 44032: 0xBDBF, - 49845 - 44032: 0xBDC0, - 49846 - 44032: 0x9ABB, - 49847 - 44032: 0xBDC1, - 49848 - 44032: 0x9ABC, - 49849 - 44032: 0xBDC2, - 49850 - 44032: 0x9ABD, - 49851 - 44032: 0x9ABE, - 49852 - 44032: 0x9ABF, - 49853 - 44032: 0x9AC0, - 49854 - 44032: 0x9AC1, - 49855 - 44032: 0x9AC2, - 49856 - 44032: 0x9AC3, - 49857 - 44032: 0x9AC4, - 49858 - 44032: 0x9AC5, - 49859 - 44032: 0x9AC6, - 49860 - 44032: 0x9AC7, - 49861 - 44032: 0x9AC8, - 49862 - 44032: 0x9AC9, - 49863 - 44032: 0x9ACA, - 49864 - 44032: 0x9ACB, - 49865 - 44032: 0x9ACC, - 49866 - 44032: 0x9ACD, - 49867 - 44032: 0x9ACE, - 49868 - 44032: 0x9ACF, - 49869 - 44032: 0x9AD0, - 49870 - 44032: 0x9AD1, - 49871 - 44032: 0x9AD2, - 49872 - 44032: 0x9AD3, - 49873 - 44032: 0x9AD4, - 49874 - 44032: 0x9AD5, - 49875 - 44032: 0x9AD6, - 49876 - 44032: 0x9AD7, - 49877 - 44032: 0x9AD8, - 49878 - 44032: 0x9AD9, - 49879 - 44032: 0x9ADA, - 49880 - 44032: 0x9ADB, - 49881 - 44032: 0x9ADC, - 49882 - 44032: 0x9ADD, - 49883 - 44032: 0x9ADE, - 49884 - 44032: 0xBDC3, - 49885 - 44032: 0xBDC4, - 49886 - 44032: 0x9ADF, - 49887 - 44032: 0x9AE0, - 49888 - 44032: 0xBDC5, - 49889 - 44032: 0x9AE1, - 49890 - 44032: 0x9AE2, - 49891 - 44032: 0xBDC6, - 49892 - 44032: 0xBDC7, - 49893 - 44032: 0x9AE3, - 49894 - 44032: 0x9AE4, - 49895 - 44032: 0x9AE5, - 49896 - 44032: 0x9AE6, - 49897 - 44032: 0x9AE7, - 49898 - 44032: 0x9AE8, - 49899 - 44032: 0xBDC8, - 49900 - 44032: 0xBDC9, - 49901 - 44032: 0xBDCA, - 49902 - 44032: 0x9AE9, - 49903 - 44032: 0xBDCB, - 49904 - 44032: 0x9AEA, - 49905 - 44032: 0xBDCC, - 49906 - 44032: 0x9AEB, - 49907 - 44032: 0x9AEC, - 49908 - 44032: 0x9AED, - 49909 - 44032: 0x9AEE, - 49910 - 44032: 0xBDCD, - 49911 - 44032: 0x9AEF, - 49912 - 44032: 0xBDCE, - 49913 - 44032: 0xBDCF, - 49914 - 44032: 0x9AF0, - 49915 - 44032: 0xBDD0, - 49916 - 44032: 0xBDD1, - 49917 - 44032: 0x9AF1, - 49918 - 44032: 0x9AF2, - 49919 - 44032: 0x9AF3, - 49920 - 44032: 0xBDD2, - 49921 - 44032: 0x9AF4, - 49922 - 44032: 0x9AF5, - 49923 - 44032: 0x9AF6, - 49924 - 44032: 0x9AF7, - 49925 - 44032: 0x9AF8, - 49926 - 44032: 0x9AF9, - 49927 - 44032: 0x9AFA, - 49928 - 44032: 0xBDD3, - 49929 - 44032: 0xBDD4, - 49930 - 44032: 0x9AFB, - 49931 - 44032: 0x9AFC, - 49932 - 44032: 0xBDD5, - 49933 - 44032: 0xBDD6, - 49934 - 44032: 0x9AFD, - 49935 - 44032: 0x9AFE, - 49936 - 44032: 0x9B41, - 49937 - 44032: 0x9B42, - 49938 - 44032: 0x9B43, - 49939 - 44032: 0xBDD7, - 49940 - 44032: 0xBDD8, - 49941 - 44032: 0xBDD9, - 49942 - 44032: 0x9B44, - 49943 - 44032: 0x9B45, - 49944 - 44032: 0xBDDA, - 49945 - 44032: 0x9B46, - 49946 - 44032: 0x9B47, - 49947 - 44032: 0x9B48, - 49948 - 44032: 0xBDDB, - 49949 - 44032: 0x9B49, - 49950 - 44032: 0x9B4A, - 49951 - 44032: 0x9B4B, - 49952 - 44032: 0x9B4C, - 49953 - 44032: 0x9B4D, - 49954 - 44032: 0x9B4E, - 49955 - 44032: 0x9B4F, - 49956 - 44032: 0xBDDC, - 49957 - 44032: 0xBDDD, - 49958 - 44032: 0x9B50, - 49959 - 44032: 0x9B51, - 49960 - 44032: 0xBDDE, - 49961 - 44032: 0xBDDF, - 49962 - 44032: 0x9B52, - 49963 - 44032: 0x9B53, - 49964 - 44032: 0x9B54, - 49965 - 44032: 0x9B55, - 49966 - 44032: 0x9B56, - 49967 - 44032: 0x9B57, - 49968 - 44032: 0x9B58, - 49969 - 44032: 0x9B59, - 49970 - 44032: 0x9B5A, - 49971 - 44032: 0x9B61, - 49972 - 44032: 0x9B62, - 49973 - 44032: 0x9B63, - 49974 - 44032: 0x9B64, - 49975 - 44032: 0x9B65, - 49976 - 44032: 0x9B66, - 49977 - 44032: 0x9B67, - 49978 - 44032: 0x9B68, - 49979 - 44032: 0x9B69, - 49980 - 44032: 0x9B6A, - 49981 - 44032: 0x9B6B, - 49982 - 44032: 0x9B6C, - 49983 - 44032: 0x9B6D, - 49984 - 44032: 0x9B6E, - 49985 - 44032: 0x9B6F, - 49986 - 44032: 0x9B70, - 49987 - 44032: 0x9B71, - 49988 - 44032: 0x9B72, - 49989 - 44032: 0xBDE0, - 49990 - 44032: 0x9B73, - 49991 - 44032: 0x9B74, - 49992 - 44032: 0x9B75, - 49993 - 44032: 0x9B76, - 49994 - 44032: 0x9B77, - 49995 - 44032: 0x9B78, - 49996 - 44032: 0x9B79, - 49997 - 44032: 0x9B7A, - 49998 - 44032: 0x9B81, - 49999 - 44032: 0x9B82, - 50000 - 44032: 0x9B83, - 50001 - 44032: 0x9B84, - 50002 - 44032: 0x9B85, - 50003 - 44032: 0x9B86, - 50004 - 44032: 0x9B87, - 50005 - 44032: 0x9B88, - 50006 - 44032: 0x9B89, - 50007 - 44032: 0x9B8A, - 50008 - 44032: 0x9B8B, - 50009 - 44032: 0x9B8C, - 50010 - 44032: 0x9B8D, - 50011 - 44032: 0x9B8E, - 50012 - 44032: 0x9B8F, - 50013 - 44032: 0x9B90, - 50014 - 44032: 0x9B91, - 50015 - 44032: 0x9B92, - 50016 - 44032: 0x9B93, - 50017 - 44032: 0x9B94, - 50018 - 44032: 0x9B95, - 50019 - 44032: 0x9B96, - 50020 - 44032: 0x9B97, - 50021 - 44032: 0x9B98, - 50022 - 44032: 0x9B99, - 50023 - 44032: 0x9B9A, - 50024 - 44032: 0xBDE1, - 50025 - 44032: 0xBDE2, - 50026 - 44032: 0x9B9B, - 50027 - 44032: 0x9B9C, - 50028 - 44032: 0xBDE3, - 50029 - 44032: 0x9B9D, - 50030 - 44032: 0x9B9E, - 50031 - 44032: 0x9B9F, - 50032 - 44032: 0xBDE4, - 50033 - 44032: 0x9BA0, - 50034 - 44032: 0xBDE5, - 50035 - 44032: 0x9BA1, - 50036 - 44032: 0x9BA2, - 50037 - 44032: 0x9BA3, - 50038 - 44032: 0x9BA4, - 50039 - 44032: 0x9BA5, - 50040 - 44032: 0xBDE6, - 50041 - 44032: 0xBDE7, - 50042 - 44032: 0x9BA6, - 50043 - 44032: 0x9BA7, - 50044 - 44032: 0xBDE8, - 50045 - 44032: 0xBDE9, - 50046 - 44032: 0x9BA8, - 50047 - 44032: 0x9BA9, - 50048 - 44032: 0x9BAA, - 50049 - 44032: 0x9BAB, - 50050 - 44032: 0x9BAC, - 50051 - 44032: 0x9BAD, - 50052 - 44032: 0xBDEA, - 50053 - 44032: 0x9BAE, - 50054 - 44032: 0x9BAF, - 50055 - 44032: 0x9BB0, - 50056 - 44032: 0xBDEB, - 50057 - 44032: 0x9BB1, - 50058 - 44032: 0x9BB2, - 50059 - 44032: 0x9BB3, - 50060 - 44032: 0xBDEC, - 50061 - 44032: 0x9BB4, - 50062 - 44032: 0x9BB5, - 50063 - 44032: 0x9BB6, - 50064 - 44032: 0x9BB7, - 50065 - 44032: 0x9BB8, - 50066 - 44032: 0x9BB9, - 50067 - 44032: 0x9BBA, - 50068 - 44032: 0x9BBB, - 50069 - 44032: 0x9BBC, - 50070 - 44032: 0x9BBD, - 50071 - 44032: 0x9BBE, - 50072 - 44032: 0x9BBF, - 50073 - 44032: 0x9BC0, - 50074 - 44032: 0x9BC1, - 50075 - 44032: 0x9BC2, - 50076 - 44032: 0x9BC3, - 50077 - 44032: 0x9BC4, - 50078 - 44032: 0x9BC5, - 50079 - 44032: 0x9BC6, - 50080 - 44032: 0x9BC7, - 50081 - 44032: 0x9BC8, - 50082 - 44032: 0x9BC9, - 50083 - 44032: 0x9BCA, - 50084 - 44032: 0x9BCB, - 50085 - 44032: 0x9BCC, - 50086 - 44032: 0x9BCD, - 50087 - 44032: 0x9BCE, - 50088 - 44032: 0x9BCF, - 50089 - 44032: 0x9BD0, - 50090 - 44032: 0x9BD1, - 50091 - 44032: 0x9BD2, - 50092 - 44032: 0x9BD3, - 50093 - 44032: 0x9BD4, - 50094 - 44032: 0x9BD5, - 50095 - 44032: 0x9BD6, - 50096 - 44032: 0x9BD7, - 50097 - 44032: 0x9BD8, - 50098 - 44032: 0x9BD9, - 50099 - 44032: 0x9BDA, - 50100 - 44032: 0x9BDB, - 50101 - 44032: 0x9BDC, - 50102 - 44032: 0x9BDD, - 50103 - 44032: 0x9BDE, - 50104 - 44032: 0x9BDF, - 50105 - 44032: 0x9BE0, - 50106 - 44032: 0x9BE1, - 50107 - 44032: 0x9BE2, - 50108 - 44032: 0x9BE3, - 50109 - 44032: 0x9BE4, - 50110 - 44032: 0x9BE5, - 50111 - 44032: 0x9BE6, - 50112 - 44032: 0xBDED, - 50113 - 44032: 0x9BE7, - 50114 - 44032: 0x9BE8, - 50115 - 44032: 0x9BE9, - 50116 - 44032: 0x9BEA, - 50117 - 44032: 0x9BEB, - 50118 - 44032: 0x9BEC, - 50119 - 44032: 0x9BED, - 50120 - 44032: 0x9BEE, - 50121 - 44032: 0x9BEF, - 50122 - 44032: 0x9BF0, - 50123 - 44032: 0x9BF1, - 50124 - 44032: 0x9BF2, - 50125 - 44032: 0x9BF3, - 50126 - 44032: 0x9BF4, - 50127 - 44032: 0x9BF5, - 50128 - 44032: 0x9BF6, - 50129 - 44032: 0x9BF7, - 50130 - 44032: 0x9BF8, - 50131 - 44032: 0x9BF9, - 50132 - 44032: 0x9BFA, - 50133 - 44032: 0x9BFB, - 50134 - 44032: 0x9BFC, - 50135 - 44032: 0x9BFD, - 50136 - 44032: 0xBDEE, - 50137 - 44032: 0xBDEF, - 50138 - 44032: 0x9BFE, - 50139 - 44032: 0x9C41, - 50140 - 44032: 0xBDF0, - 50141 - 44032: 0x9C42, - 50142 - 44032: 0x9C43, - 50143 - 44032: 0xBDF1, - 50144 - 44032: 0xBDF2, - 50145 - 44032: 0x9C44, - 50146 - 44032: 0xBDF3, - 50147 - 44032: 0x9C45, - 50148 - 44032: 0x9C46, - 50149 - 44032: 0x9C47, - 50150 - 44032: 0x9C48, - 50151 - 44032: 0x9C49, - 50152 - 44032: 0xBDF4, - 50153 - 44032: 0xBDF5, - 50154 - 44032: 0x9C4A, - 50155 - 44032: 0x9C4B, - 50156 - 44032: 0x9C4C, - 50157 - 44032: 0xBDF6, - 50158 - 44032: 0x9C4D, - 50159 - 44032: 0x9C4E, - 50160 - 44032: 0x9C4F, - 50161 - 44032: 0x9C50, - 50162 - 44032: 0x9C51, - 50163 - 44032: 0x9C52, - 50164 - 44032: 0xBDF7, - 50165 - 44032: 0xBDF8, - 50166 - 44032: 0x9C53, - 50167 - 44032: 0x9C54, - 50168 - 44032: 0xBDF9, - 50169 - 44032: 0x9C55, - 50170 - 44032: 0x9C56, - 50171 - 44032: 0x9C57, - 50172 - 44032: 0x9C58, - 50173 - 44032: 0x9C59, - 50174 - 44032: 0x9C5A, - 50175 - 44032: 0x9C61, - 50176 - 44032: 0x9C62, - 50177 - 44032: 0x9C63, - 50178 - 44032: 0x9C64, - 50179 - 44032: 0x9C65, - 50180 - 44032: 0x9C66, - 50181 - 44032: 0x9C67, - 50182 - 44032: 0x9C68, - 50183 - 44032: 0x9C69, - 50184 - 44032: 0xBDFA, - 50185 - 44032: 0x9C6A, - 50186 - 44032: 0x9C6B, - 50187 - 44032: 0x9C6C, - 50188 - 44032: 0x9C6D, - 50189 - 44032: 0x9C6E, - 50190 - 44032: 0x9C6F, - 50191 - 44032: 0x9C70, - 50192 - 44032: 0xBDFB, - 50193 - 44032: 0x9C71, - 50194 - 44032: 0x9C72, - 50195 - 44032: 0x9C73, - 50196 - 44032: 0x9C74, - 50197 - 44032: 0x9C75, - 50198 - 44032: 0x9C76, - 50199 - 44032: 0x9C77, - 50200 - 44032: 0x9C78, - 50201 - 44032: 0x9C79, - 50202 - 44032: 0x9C7A, - 50203 - 44032: 0x9C81, - 50204 - 44032: 0x9C82, - 50205 - 44032: 0x9C83, - 50206 - 44032: 0x9C84, - 50207 - 44032: 0x9C85, - 50208 - 44032: 0x9C86, - 50209 - 44032: 0x9C87, - 50210 - 44032: 0x9C88, - 50211 - 44032: 0x9C89, - 50212 - 44032: 0xBDFC, - 50213 - 44032: 0x9C8A, - 50214 - 44032: 0x9C8B, - 50215 - 44032: 0x9C8C, - 50216 - 44032: 0x9C8D, - 50217 - 44032: 0x9C8E, - 50218 - 44032: 0x9C8F, - 50219 - 44032: 0x9C90, - 50220 - 44032: 0xBDFD, - 50221 - 44032: 0x9C91, - 50222 - 44032: 0x9C92, - 50223 - 44032: 0x9C93, - 50224 - 44032: 0xBDFE, - 50225 - 44032: 0x9C94, - 50226 - 44032: 0x9C95, - 50227 - 44032: 0x9C96, - 50228 - 44032: 0xBEA1, - 50229 - 44032: 0x9C97, - 50230 - 44032: 0x9C98, - 50231 - 44032: 0x9C99, - 50232 - 44032: 0x9C9A, - 50233 - 44032: 0x9C9B, - 50234 - 44032: 0x9C9C, - 50235 - 44032: 0x9C9D, - 50236 - 44032: 0xBEA2, - 50237 - 44032: 0xBEA3, - 50238 - 44032: 0x9C9E, - 50239 - 44032: 0x9C9F, - 50240 - 44032: 0x9CA0, - 50241 - 44032: 0x9CA1, - 50242 - 44032: 0x9CA2, - 50243 - 44032: 0x9CA3, - 50244 - 44032: 0x9CA4, - 50245 - 44032: 0x9CA5, - 50246 - 44032: 0x9CA6, - 50247 - 44032: 0x9CA7, - 50248 - 44032: 0xBEA4, - 50249 - 44032: 0x9CA8, - 50250 - 44032: 0x9CA9, - 50251 - 44032: 0x9CAA, - 50252 - 44032: 0x9CAB, - 50253 - 44032: 0x9CAC, - 50254 - 44032: 0x9CAD, - 50255 - 44032: 0x9CAE, - 50256 - 44032: 0x9CAF, - 50257 - 44032: 0x9CB0, - 50258 - 44032: 0x9CB1, - 50259 - 44032: 0x9CB2, - 50260 - 44032: 0x9CB3, - 50261 - 44032: 0x9CB4, - 50262 - 44032: 0x9CB5, - 50263 - 44032: 0x9CB6, - 50264 - 44032: 0x9CB7, - 50265 - 44032: 0x9CB8, - 50266 - 44032: 0x9CB9, - 50267 - 44032: 0x9CBA, - 50268 - 44032: 0x9CBB, - 50269 - 44032: 0x9CBC, - 50270 - 44032: 0x9CBD, - 50271 - 44032: 0x9CBE, - 50272 - 44032: 0x9CBF, - 50273 - 44032: 0x9CC0, - 50274 - 44032: 0x9CC1, - 50275 - 44032: 0x9CC2, - 50276 - 44032: 0xBEA5, - 50277 - 44032: 0xBEA6, - 50278 - 44032: 0x9CC3, - 50279 - 44032: 0x9CC4, - 50280 - 44032: 0xBEA7, - 50281 - 44032: 0x9CC5, - 50282 - 44032: 0x9CC6, - 50283 - 44032: 0x9CC7, - 50284 - 44032: 0xBEA8, - 50285 - 44032: 0x9CC8, - 50286 - 44032: 0x9CC9, - 50287 - 44032: 0x9CCA, - 50288 - 44032: 0x9CCB, - 50289 - 44032: 0x9CCC, - 50290 - 44032: 0x9CCD, - 50291 - 44032: 0x9CCE, - 50292 - 44032: 0xBEA9, - 50293 - 44032: 0xBEAA, - 50294 - 44032: 0x9CCF, - 50295 - 44032: 0x9CD0, - 50296 - 44032: 0x9CD1, - 50297 - 44032: 0xBEAB, - 50298 - 44032: 0x9CD2, - 50299 - 44032: 0x9CD3, - 50300 - 44032: 0x9CD4, - 50301 - 44032: 0x9CD5, - 50302 - 44032: 0x9CD6, - 50303 - 44032: 0x9CD7, - 50304 - 44032: 0xBEAC, - 50305 - 44032: 0x9CD8, - 50306 - 44032: 0x9CD9, - 50307 - 44032: 0x9CDA, - 50308 - 44032: 0x9CDB, - 50309 - 44032: 0x9CDC, - 50310 - 44032: 0x9CDD, - 50311 - 44032: 0x9CDE, - 50312 - 44032: 0x9CDF, - 50313 - 44032: 0x9CE0, - 50314 - 44032: 0x9CE1, - 50315 - 44032: 0x9CE2, - 50316 - 44032: 0x9CE3, - 50317 - 44032: 0x9CE4, - 50318 - 44032: 0x9CE5, - 50319 - 44032: 0x9CE6, - 50320 - 44032: 0x9CE7, - 50321 - 44032: 0x9CE8, - 50322 - 44032: 0x9CE9, - 50323 - 44032: 0x9CEA, - 50324 - 44032: 0xBEAD, - 50325 - 44032: 0x9CEB, - 50326 - 44032: 0x9CEC, - 50327 - 44032: 0x9CED, - 50328 - 44032: 0x9CEE, - 50329 - 44032: 0x9CEF, - 50330 - 44032: 0x9CF0, - 50331 - 44032: 0x9CF1, - 50332 - 44032: 0xBEAE, - 50333 - 44032: 0x9CF2, - 50334 - 44032: 0x9CF3, - 50335 - 44032: 0x9CF4, - 50336 - 44032: 0x9CF5, - 50337 - 44032: 0x9CF6, - 50338 - 44032: 0x9CF7, - 50339 - 44032: 0x9CF8, - 50340 - 44032: 0x9CF9, - 50341 - 44032: 0x9CFA, - 50342 - 44032: 0x9CFB, - 50343 - 44032: 0x9CFC, - 50344 - 44032: 0x9CFD, - 50345 - 44032: 0x9CFE, - 50346 - 44032: 0x9D41, - 50347 - 44032: 0x9D42, - 50348 - 44032: 0x9D43, - 50349 - 44032: 0x9D44, - 50350 - 44032: 0x9D45, - 50351 - 44032: 0x9D46, - 50352 - 44032: 0x9D47, - 50353 - 44032: 0x9D48, - 50354 - 44032: 0x9D49, - 50355 - 44032: 0x9D4A, - 50356 - 44032: 0x9D4B, - 50357 - 44032: 0x9D4C, - 50358 - 44032: 0x9D4D, - 50359 - 44032: 0x9D4E, - 50360 - 44032: 0xBEAF, - 50361 - 44032: 0x9D4F, - 50362 - 44032: 0x9D50, - 50363 - 44032: 0x9D51, - 50364 - 44032: 0xBEB0, - 50365 - 44032: 0x9D52, - 50366 - 44032: 0x9D53, - 50367 - 44032: 0x9D54, - 50368 - 44032: 0x9D55, - 50369 - 44032: 0x9D56, - 50370 - 44032: 0x9D57, - 50371 - 44032: 0x9D58, - 50372 - 44032: 0x9D59, - 50373 - 44032: 0x9D5A, - 50374 - 44032: 0x9D61, - 50375 - 44032: 0x9D62, - 50376 - 44032: 0x9D63, - 50377 - 44032: 0x9D64, - 50378 - 44032: 0x9D65, - 50379 - 44032: 0x9D66, - 50380 - 44032: 0x9D67, - 50381 - 44032: 0x9D68, - 50382 - 44032: 0x9D69, - 50383 - 44032: 0x9D6A, - 50384 - 44032: 0x9D6B, - 50385 - 44032: 0x9D6C, - 50386 - 44032: 0x9D6D, - 50387 - 44032: 0x9D6E, - 50388 - 44032: 0x9D6F, - 50389 - 44032: 0x9D70, - 50390 - 44032: 0x9D71, - 50391 - 44032: 0x9D72, - 50392 - 44032: 0x9D73, - 50393 - 44032: 0x9D74, - 50394 - 44032: 0x9D75, - 50395 - 44032: 0x9D76, - 50396 - 44032: 0x9D77, - 50397 - 44032: 0x9D78, - 50398 - 44032: 0x9D79, - 50399 - 44032: 0x9D7A, - 50400 - 44032: 0x9D81, - 50401 - 44032: 0x9D82, - 50402 - 44032: 0x9D83, - 50403 - 44032: 0x9D84, - 50404 - 44032: 0x9D85, - 50405 - 44032: 0x9D86, - 50406 - 44032: 0x9D87, - 50407 - 44032: 0x9D88, - 50408 - 44032: 0x9D89, - 50409 - 44032: 0xBEB1, - 50410 - 44032: 0x9D8A, - 50411 - 44032: 0x9D8B, - 50412 - 44032: 0x9D8C, - 50413 - 44032: 0x9D8D, - 50414 - 44032: 0x9D8E, - 50415 - 44032: 0x9D8F, - 50416 - 44032: 0xBEB2, - 50417 - 44032: 0xBEB3, - 50418 - 44032: 0x9D90, - 50419 - 44032: 0x9D91, - 50420 - 44032: 0xBEB4, - 50421 - 44032: 0x9D92, - 50422 - 44032: 0x9D93, - 50423 - 44032: 0x9D94, - 50424 - 44032: 0xBEB5, - 50425 - 44032: 0x9D95, - 50426 - 44032: 0xBEB6, - 50427 - 44032: 0x9D96, - 50428 - 44032: 0x9D97, - 50429 - 44032: 0x9D98, - 50430 - 44032: 0x9D99, - 50431 - 44032: 0xBEB7, - 50432 - 44032: 0xBEB8, - 50433 - 44032: 0xBEB9, - 50434 - 44032: 0x9D9A, - 50435 - 44032: 0x9D9B, - 50436 - 44032: 0x9D9C, - 50437 - 44032: 0x9D9D, - 50438 - 44032: 0x9D9E, - 50439 - 44032: 0x9D9F, - 50440 - 44032: 0x9DA0, - 50441 - 44032: 0x9DA1, - 50442 - 44032: 0x9DA2, - 50443 - 44032: 0x9DA3, - 50444 - 44032: 0xBEBA, - 50445 - 44032: 0x9DA4, - 50446 - 44032: 0x9DA5, - 50447 - 44032: 0x9DA6, - 50448 - 44032: 0xBEBB, - 50449 - 44032: 0x9DA7, - 50450 - 44032: 0x9DA8, - 50451 - 44032: 0x9DA9, - 50452 - 44032: 0xBEBC, - 50453 - 44032: 0x9DAA, - 50454 - 44032: 0x9DAB, - 50455 - 44032: 0x9DAC, - 50456 - 44032: 0x9DAD, - 50457 - 44032: 0x9DAE, - 50458 - 44032: 0x9DAF, - 50459 - 44032: 0x9DB0, - 50460 - 44032: 0xBEBD, - 50461 - 44032: 0x9DB1, - 50462 - 44032: 0x9DB2, - 50463 - 44032: 0x9DB3, - 50464 - 44032: 0x9DB4, - 50465 - 44032: 0x9DB5, - 50466 - 44032: 0x9DB6, - 50467 - 44032: 0x9DB7, - 50468 - 44032: 0x9DB8, - 50469 - 44032: 0x9DB9, - 50470 - 44032: 0x9DBA, - 50471 - 44032: 0x9DBB, - 50472 - 44032: 0xBEBE, - 50473 - 44032: 0xBEBF, - 50474 - 44032: 0x9DBC, - 50475 - 44032: 0x9DBD, - 50476 - 44032: 0xBEC0, - 50477 - 44032: 0x9DBE, - 50478 - 44032: 0x9DBF, - 50479 - 44032: 0x9DC0, - 50480 - 44032: 0xBEC1, - 50481 - 44032: 0x9DC1, - 50482 - 44032: 0x9DC2, - 50483 - 44032: 0x9DC3, - 50484 - 44032: 0x9DC4, - 50485 - 44032: 0x9DC5, - 50486 - 44032: 0x9DC6, - 50487 - 44032: 0x9DC7, - 50488 - 44032: 0xBEC2, - 50489 - 44032: 0xBEC3, - 50490 - 44032: 0x9DC8, - 50491 - 44032: 0xBEC4, - 50492 - 44032: 0x9DC9, - 50493 - 44032: 0xBEC5, - 50494 - 44032: 0x9DCA, - 50495 - 44032: 0x9DCB, - 50496 - 44032: 0x9DCC, - 50497 - 44032: 0x9DCD, - 50498 - 44032: 0x9DCE, - 50499 - 44032: 0x9DCF, - 50500 - 44032: 0xBEC6, - 50501 - 44032: 0xBEC7, - 50502 - 44032: 0x9DD0, - 50503 - 44032: 0x9DD1, - 50504 - 44032: 0xBEC8, - 50505 - 44032: 0xBEC9, - 50506 - 44032: 0xBECA, - 50507 - 44032: 0x9DD2, - 50508 - 44032: 0xBECB, - 50509 - 44032: 0xBECC, - 50510 - 44032: 0xBECD, - 50511 - 44032: 0x9DD3, - 50512 - 44032: 0x9DD4, - 50513 - 44032: 0x9DD5, - 50514 - 44032: 0x9DD6, - 50515 - 44032: 0xBECE, - 50516 - 44032: 0xBECF, - 50517 - 44032: 0xBED0, - 50518 - 44032: 0x9DD7, - 50519 - 44032: 0xBED1, - 50520 - 44032: 0xBED2, - 50521 - 44032: 0xBED3, - 50522 - 44032: 0x9DD8, - 50523 - 44032: 0x9DD9, - 50524 - 44032: 0x9DDA, - 50525 - 44032: 0xBED4, - 50526 - 44032: 0xBED5, - 50527 - 44032: 0x9DDB, - 50528 - 44032: 0xBED6, - 50529 - 44032: 0xBED7, - 50530 - 44032: 0x9DDC, - 50531 - 44032: 0x9DDD, - 50532 - 44032: 0xBED8, - 50533 - 44032: 0x9DDE, - 50534 - 44032: 0x9DDF, - 50535 - 44032: 0x9DE0, - 50536 - 44032: 0xBED9, - 50537 - 44032: 0x9DE1, - 50538 - 44032: 0x9DE2, - 50539 - 44032: 0x9DE3, - 50540 - 44032: 0x9DE4, - 50541 - 44032: 0x9DE5, - 50542 - 44032: 0x9DE6, - 50543 - 44032: 0x9DE7, - 50544 - 44032: 0xBEDA, - 50545 - 44032: 0xBEDB, - 50546 - 44032: 0x9DE8, - 50547 - 44032: 0xBEDC, - 50548 - 44032: 0xBEDD, - 50549 - 44032: 0xBEDE, - 50550 - 44032: 0x9DE9, - 50551 - 44032: 0x9DEA, - 50552 - 44032: 0x9DEB, - 50553 - 44032: 0x9DEC, - 50554 - 44032: 0x9DED, - 50555 - 44032: 0x9DEE, - 50556 - 44032: 0xBEDF, - 50557 - 44032: 0xBEE0, - 50558 - 44032: 0x9DEF, - 50559 - 44032: 0x9DF0, - 50560 - 44032: 0xBEE1, - 50561 - 44032: 0x9DF1, - 50562 - 44032: 0x9DF2, - 50563 - 44032: 0x9DF3, - 50564 - 44032: 0xBEE2, - 50565 - 44032: 0x9DF4, - 50566 - 44032: 0x9DF5, - 50567 - 44032: 0xBEE3, - 50568 - 44032: 0x9DF6, - 50569 - 44032: 0x9DF7, - 50570 - 44032: 0x9DF8, - 50571 - 44032: 0x9DF9, - 50572 - 44032: 0xBEE4, - 50573 - 44032: 0xBEE5, - 50574 - 44032: 0x9DFA, - 50575 - 44032: 0xBEE6, - 50576 - 44032: 0x9DFB, - 50577 - 44032: 0xBEE7, - 50578 - 44032: 0x9DFC, - 50579 - 44032: 0x9DFD, - 50580 - 44032: 0x9DFE, - 50581 - 44032: 0xBEE8, - 50582 - 44032: 0x9E41, - 50583 - 44032: 0xBEE9, - 50584 - 44032: 0xBEEA, - 50585 - 44032: 0x9E42, - 50586 - 44032: 0x9E43, - 50587 - 44032: 0x9E44, - 50588 - 44032: 0xBEEB, - 50589 - 44032: 0x9E45, - 50590 - 44032: 0x9E46, - 50591 - 44032: 0x9E47, - 50592 - 44032: 0xBEEC, - 50593 - 44032: 0x9E48, - 50594 - 44032: 0x9E49, - 50595 - 44032: 0x9E4A, - 50596 - 44032: 0x9E4B, - 50597 - 44032: 0x9E4C, - 50598 - 44032: 0x9E4D, - 50599 - 44032: 0x9E4E, - 50600 - 44032: 0x9E4F, - 50601 - 44032: 0xBEED, - 50602 - 44032: 0x9E50, - 50603 - 44032: 0x9E51, - 50604 - 44032: 0x9E52, - 50605 - 44032: 0x9E53, - 50606 - 44032: 0x9E54, - 50607 - 44032: 0x9E55, - 50608 - 44032: 0x9E56, - 50609 - 44032: 0x9E57, - 50610 - 44032: 0x9E58, - 50611 - 44032: 0x9E59, - 50612 - 44032: 0xBEEE, - 50613 - 44032: 0xBEEF, - 50614 - 44032: 0x9E5A, - 50615 - 44032: 0x9E61, - 50616 - 44032: 0xBEF0, - 50617 - 44032: 0xBEF1, - 50618 - 44032: 0x9E62, - 50619 - 44032: 0xBEF2, - 50620 - 44032: 0xBEF3, - 50621 - 44032: 0xBEF4, - 50622 - 44032: 0xBEF5, - 50623 - 44032: 0x9E63, - 50624 - 44032: 0x9E64, - 50625 - 44032: 0x9E65, - 50626 - 44032: 0x9E66, - 50627 - 44032: 0x9E67, - 50628 - 44032: 0xBEF6, - 50629 - 44032: 0xBEF7, - 50630 - 44032: 0xBEF8, - 50631 - 44032: 0xBEF9, - 50632 - 44032: 0xBEFA, - 50633 - 44032: 0xBEFB, - 50634 - 44032: 0xBEFC, - 50635 - 44032: 0x9E68, - 50636 - 44032: 0xBEFD, - 50637 - 44032: 0x9E69, - 50638 - 44032: 0xBEFE, - 50639 - 44032: 0x9E6A, - 50640 - 44032: 0xBFA1, - 50641 - 44032: 0xBFA2, - 50642 - 44032: 0x9E6B, - 50643 - 44032: 0x9E6C, - 50644 - 44032: 0xBFA3, - 50645 - 44032: 0x9E6D, - 50646 - 44032: 0x9E6E, - 50647 - 44032: 0x9E6F, - 50648 - 44032: 0xBFA4, - 50649 - 44032: 0x9E70, - 50650 - 44032: 0x9E71, - 50651 - 44032: 0x9E72, - 50652 - 44032: 0x9E73, - 50653 - 44032: 0x9E74, - 50654 - 44032: 0x9E75, - 50655 - 44032: 0x9E76, - 50656 - 44032: 0xBFA5, - 50657 - 44032: 0xBFA6, - 50658 - 44032: 0x9E77, - 50659 - 44032: 0xBFA7, - 50660 - 44032: 0x9E78, - 50661 - 44032: 0xBFA8, - 50662 - 44032: 0x9E79, - 50663 - 44032: 0x9E7A, - 50664 - 44032: 0x9E81, - 50665 - 44032: 0x9E82, - 50666 - 44032: 0x9E83, - 50667 - 44032: 0x9E84, - 50668 - 44032: 0xBFA9, - 50669 - 44032: 0xBFAA, - 50670 - 44032: 0xBFAB, - 50671 - 44032: 0x9E85, - 50672 - 44032: 0xBFAC, - 50673 - 44032: 0x9E86, - 50674 - 44032: 0x9E87, - 50675 - 44032: 0x9E88, - 50676 - 44032: 0xBFAD, - 50677 - 44032: 0x9E89, - 50678 - 44032: 0xBFAE, - 50679 - 44032: 0xBFAF, - 50680 - 44032: 0x9E8A, - 50681 - 44032: 0x9E8B, - 50682 - 44032: 0x9E8C, - 50683 - 44032: 0x9E8D, - 50684 - 44032: 0xBFB0, - 50685 - 44032: 0xBFB1, - 50686 - 44032: 0xBFB2, - 50687 - 44032: 0xBFB3, - 50688 - 44032: 0xBFB4, - 50689 - 44032: 0xBFB5, - 50690 - 44032: 0x9E8E, - 50691 - 44032: 0x9E8F, - 50692 - 44032: 0x9E90, - 50693 - 44032: 0xBFB6, - 50694 - 44032: 0xBFB7, - 50695 - 44032: 0xBFB8, - 50696 - 44032: 0xBFB9, - 50697 - 44032: 0x9E91, - 50698 - 44032: 0x9E92, - 50699 - 44032: 0x9E93, - 50700 - 44032: 0xBFBA, - 50701 - 44032: 0x9E94, - 50702 - 44032: 0x9E95, - 50703 - 44032: 0x9E96, - 50704 - 44032: 0xBFBB, - 50705 - 44032: 0x9E97, - 50706 - 44032: 0x9E98, - 50707 - 44032: 0x9E99, - 50708 - 44032: 0x9E9A, - 50709 - 44032: 0x9E9B, - 50710 - 44032: 0x9E9C, - 50711 - 44032: 0x9E9D, - 50712 - 44032: 0xBFBC, - 50713 - 44032: 0xBFBD, - 50714 - 44032: 0x9E9E, - 50715 - 44032: 0xBFBE, - 50716 - 44032: 0xBFBF, - 50717 - 44032: 0x9E9F, - 50718 - 44032: 0x9EA0, - 50719 - 44032: 0x9EA1, - 50720 - 44032: 0x9EA2, - 50721 - 44032: 0x9EA3, - 50722 - 44032: 0x9EA4, - 50723 - 44032: 0x9EA5, - 50724 - 44032: 0xBFC0, - 50725 - 44032: 0xBFC1, - 50726 - 44032: 0x9EA6, - 50727 - 44032: 0x9EA7, - 50728 - 44032: 0xBFC2, - 50729 - 44032: 0x9EA8, - 50730 - 44032: 0x9EA9, - 50731 - 44032: 0x9EAA, - 50732 - 44032: 0xBFC3, - 50733 - 44032: 0xBFC4, - 50734 - 44032: 0xBFC5, - 50735 - 44032: 0x9EAB, - 50736 - 44032: 0xBFC6, - 50737 - 44032: 0x9EAC, - 50738 - 44032: 0x9EAD, - 50739 - 44032: 0xBFC7, - 50740 - 44032: 0xBFC8, - 50741 - 44032: 0xBFC9, - 50742 - 44032: 0x9EAE, - 50743 - 44032: 0xBFCA, - 50744 - 44032: 0x9EAF, - 50745 - 44032: 0xBFCB, - 50746 - 44032: 0x9EB0, - 50747 - 44032: 0xBFCC, - 50748 - 44032: 0x9EB1, - 50749 - 44032: 0x9EB2, - 50750 - 44032: 0x9EB3, - 50751 - 44032: 0x9EB4, - 50752 - 44032: 0xBFCD, - 50753 - 44032: 0xBFCE, - 50754 - 44032: 0x9EB5, - 50755 - 44032: 0x9EB6, - 50756 - 44032: 0xBFCF, - 50757 - 44032: 0x9EB7, - 50758 - 44032: 0x9EB8, - 50759 - 44032: 0x9EB9, - 50760 - 44032: 0xBFD0, - 50761 - 44032: 0x9EBA, - 50762 - 44032: 0x9EBB, - 50763 - 44032: 0x9EBC, - 50764 - 44032: 0x9EBD, - 50765 - 44032: 0x9EBE, - 50766 - 44032: 0x9EBF, - 50767 - 44032: 0x9EC0, - 50768 - 44032: 0xBFD1, - 50769 - 44032: 0xBFD2, - 50770 - 44032: 0x9EC1, - 50771 - 44032: 0xBFD3, - 50772 - 44032: 0xBFD4, - 50773 - 44032: 0xBFD5, - 50774 - 44032: 0x9EC2, - 50775 - 44032: 0x9EC3, - 50776 - 44032: 0x9EC4, - 50777 - 44032: 0x9EC5, - 50778 - 44032: 0x9EC6, - 50779 - 44032: 0x9EC7, - 50780 - 44032: 0xBFD6, - 50781 - 44032: 0xBFD7, - 50782 - 44032: 0x9EC8, - 50783 - 44032: 0x9EC9, - 50784 - 44032: 0xBFD8, - 50785 - 44032: 0x9ECA, - 50786 - 44032: 0x9ECB, - 50787 - 44032: 0x9ECC, - 50788 - 44032: 0x9ECD, - 50789 - 44032: 0x9ECE, - 50790 - 44032: 0x9ECF, - 50791 - 44032: 0x9ED0, - 50792 - 44032: 0x9ED1, - 50793 - 44032: 0x9ED2, - 50794 - 44032: 0x9ED3, - 50795 - 44032: 0x9ED4, - 50796 - 44032: 0xBFD9, - 50797 - 44032: 0x9ED5, - 50798 - 44032: 0x9ED6, - 50799 - 44032: 0xBFDA, - 50800 - 44032: 0x9ED7, - 50801 - 44032: 0xBFDB, - 50802 - 44032: 0x9ED8, - 50803 - 44032: 0x9ED9, - 50804 - 44032: 0x9EDA, - 50805 - 44032: 0x9EDB, - 50806 - 44032: 0x9EDC, - 50807 - 44032: 0x9EDD, - 50808 - 44032: 0xBFDC, - 50809 - 44032: 0xBFDD, - 50810 - 44032: 0x9EDE, - 50811 - 44032: 0x9EDF, - 50812 - 44032: 0xBFDE, - 50813 - 44032: 0x9EE0, - 50814 - 44032: 0x9EE1, - 50815 - 44032: 0x9EE2, - 50816 - 44032: 0xBFDF, - 50817 - 44032: 0x9EE3, - 50818 - 44032: 0x9EE4, - 50819 - 44032: 0x9EE5, - 50820 - 44032: 0x9EE6, - 50821 - 44032: 0x9EE7, - 50822 - 44032: 0x9EE8, - 50823 - 44032: 0x9EE9, - 50824 - 44032: 0xBFE0, - 50825 - 44032: 0xBFE1, - 50826 - 44032: 0x9EEA, - 50827 - 44032: 0xBFE2, - 50828 - 44032: 0x9EEB, - 50829 - 44032: 0xBFE3, - 50830 - 44032: 0x9EEC, - 50831 - 44032: 0x9EED, - 50832 - 44032: 0x9EEE, - 50833 - 44032: 0x9EEF, - 50834 - 44032: 0x9EF0, - 50835 - 44032: 0x9EF1, - 50836 - 44032: 0xBFE4, - 50837 - 44032: 0xBFE5, - 50838 - 44032: 0x9EF2, - 50839 - 44032: 0x9EF3, - 50840 - 44032: 0xBFE6, - 50841 - 44032: 0x9EF4, - 50842 - 44032: 0x9EF5, - 50843 - 44032: 0x9EF6, - 50844 - 44032: 0xBFE7, - 50845 - 44032: 0x9EF7, - 50846 - 44032: 0x9EF8, - 50847 - 44032: 0x9EF9, - 50848 - 44032: 0x9EFA, - 50849 - 44032: 0x9EFB, - 50850 - 44032: 0x9EFC, - 50851 - 44032: 0x9EFD, - 50852 - 44032: 0xBFE8, - 50853 - 44032: 0xBFE9, - 50854 - 44032: 0x9EFE, - 50855 - 44032: 0xBFEA, - 50856 - 44032: 0x9F41, - 50857 - 44032: 0xBFEB, - 50858 - 44032: 0x9F42, - 50859 - 44032: 0x9F43, - 50860 - 44032: 0x9F44, - 50861 - 44032: 0x9F45, - 50862 - 44032: 0x9F46, - 50863 - 44032: 0x9F47, - 50864 - 44032: 0xBFEC, - 50865 - 44032: 0xBFED, - 50866 - 44032: 0x9F48, - 50867 - 44032: 0x9F49, - 50868 - 44032: 0xBFEE, - 50869 - 44032: 0x9F4A, - 50870 - 44032: 0x9F4B, - 50871 - 44032: 0x9F4C, - 50872 - 44032: 0xBFEF, - 50873 - 44032: 0xBFF0, - 50874 - 44032: 0xBFF1, - 50875 - 44032: 0x9F4D, - 50876 - 44032: 0x9F4E, - 50877 - 44032: 0x9F4F, - 50878 - 44032: 0x9F50, - 50879 - 44032: 0x9F51, - 50880 - 44032: 0xBFF2, - 50881 - 44032: 0xBFF3, - 50882 - 44032: 0x9F52, - 50883 - 44032: 0xBFF4, - 50884 - 44032: 0x9F53, - 50885 - 44032: 0xBFF5, - 50886 - 44032: 0x9F54, - 50887 - 44032: 0x9F55, - 50888 - 44032: 0x9F56, - 50889 - 44032: 0x9F57, - 50890 - 44032: 0x9F58, - 50891 - 44032: 0x9F59, - 50892 - 44032: 0xBFF6, - 50893 - 44032: 0xBFF7, - 50894 - 44032: 0x9F5A, - 50895 - 44032: 0x9F61, - 50896 - 44032: 0xBFF8, - 50897 - 44032: 0x9F62, - 50898 - 44032: 0x9F63, - 50899 - 44032: 0x9F64, - 50900 - 44032: 0xBFF9, - 50901 - 44032: 0x9F65, - 50902 - 44032: 0x9F66, - 50903 - 44032: 0x9F67, - 50904 - 44032: 0x9F68, - 50905 - 44032: 0x9F69, - 50906 - 44032: 0x9F6A, - 50907 - 44032: 0x9F6B, - 50908 - 44032: 0xBFFA, - 50909 - 44032: 0xBFFB, - 50910 - 44032: 0x9F6C, - 50911 - 44032: 0x9F6D, - 50912 - 44032: 0xBFFC, - 50913 - 44032: 0xBFFD, - 50914 - 44032: 0x9F6E, - 50915 - 44032: 0x9F6F, - 50916 - 44032: 0x9F70, - 50917 - 44032: 0x9F71, - 50918 - 44032: 0x9F72, - 50919 - 44032: 0x9F73, - 50920 - 44032: 0xBFFE, - 50921 - 44032: 0xC0A1, - 50922 - 44032: 0x9F74, - 50923 - 44032: 0x9F75, - 50924 - 44032: 0xC0A2, - 50925 - 44032: 0x9F76, - 50926 - 44032: 0x9F77, - 50927 - 44032: 0x9F78, - 50928 - 44032: 0xC0A3, - 50929 - 44032: 0x9F79, - 50930 - 44032: 0x9F7A, - 50931 - 44032: 0x9F81, - 50932 - 44032: 0x9F82, - 50933 - 44032: 0x9F83, - 50934 - 44032: 0x9F84, - 50935 - 44032: 0x9F85, - 50936 - 44032: 0xC0A4, - 50937 - 44032: 0xC0A5, - 50938 - 44032: 0x9F86, - 50939 - 44032: 0x9F87, - 50940 - 44032: 0x9F88, - 50941 - 44032: 0xC0A6, - 50942 - 44032: 0x9F89, - 50943 - 44032: 0x9F8A, - 50944 - 44032: 0x9F8B, - 50945 - 44032: 0x9F8C, - 50946 - 44032: 0x9F8D, - 50947 - 44032: 0x9F8E, - 50948 - 44032: 0xC0A7, - 50949 - 44032: 0xC0A8, - 50950 - 44032: 0x9F8F, - 50951 - 44032: 0x9F90, - 50952 - 44032: 0xC0A9, - 50953 - 44032: 0x9F91, - 50954 - 44032: 0x9F92, - 50955 - 44032: 0x9F93, - 50956 - 44032: 0xC0AA, - 50957 - 44032: 0x9F94, - 50958 - 44032: 0x9F95, - 50959 - 44032: 0x9F96, - 50960 - 44032: 0x9F97, - 50961 - 44032: 0x9F98, - 50962 - 44032: 0x9F99, - 50963 - 44032: 0x9F9A, - 50964 - 44032: 0xC0AB, - 50965 - 44032: 0xC0AC, - 50966 - 44032: 0x9F9B, - 50967 - 44032: 0xC0AD, - 50968 - 44032: 0x9F9C, - 50969 - 44032: 0xC0AE, - 50970 - 44032: 0x9F9D, - 50971 - 44032: 0x9F9E, - 50972 - 44032: 0x9F9F, - 50973 - 44032: 0x9FA0, - 50974 - 44032: 0x9FA1, - 50975 - 44032: 0x9FA2, - 50976 - 44032: 0xC0AF, - 50977 - 44032: 0xC0B0, - 50978 - 44032: 0x9FA3, - 50979 - 44032: 0x9FA4, - 50980 - 44032: 0xC0B1, - 50981 - 44032: 0x9FA5, - 50982 - 44032: 0x9FA6, - 50983 - 44032: 0x9FA7, - 50984 - 44032: 0xC0B2, - 50985 - 44032: 0x9FA8, - 50986 - 44032: 0x9FA9, - 50987 - 44032: 0x9FAA, - 50988 - 44032: 0x9FAB, - 50989 - 44032: 0x9FAC, - 50990 - 44032: 0x9FAD, - 50991 - 44032: 0x9FAE, - 50992 - 44032: 0xC0B3, - 50993 - 44032: 0xC0B4, - 50994 - 44032: 0x9FAF, - 50995 - 44032: 0xC0B5, - 50996 - 44032: 0x9FB0, - 50997 - 44032: 0xC0B6, - 50998 - 44032: 0x9FB1, - 50999 - 44032: 0xC0B7, - 51000 - 44032: 0x9FB2, - 51001 - 44032: 0x9FB3, - 51002 - 44032: 0x9FB4, - 51003 - 44032: 0x9FB5, - 51004 - 44032: 0xC0B8, - 51005 - 44032: 0xC0B9, - 51006 - 44032: 0x9FB6, - 51007 - 44032: 0x9FB7, - 51008 - 44032: 0xC0BA, - 51009 - 44032: 0x9FB8, - 51010 - 44032: 0x9FB9, - 51011 - 44032: 0x9FBA, - 51012 - 44032: 0xC0BB, - 51013 - 44032: 0x9FBB, - 51014 - 44032: 0x9FBC, - 51015 - 44032: 0x9FBD, - 51016 - 44032: 0x9FBE, - 51017 - 44032: 0x9FBF, - 51018 - 44032: 0xC0BC, - 51019 - 44032: 0x9FC0, - 51020 - 44032: 0xC0BD, - 51021 - 44032: 0xC0BE, - 51022 - 44032: 0x9FC1, - 51023 - 44032: 0xC0BF, - 51024 - 44032: 0x9FC2, - 51025 - 44032: 0xC0C0, - 51026 - 44032: 0xC0C1, - 51027 - 44032: 0xC0C2, - 51028 - 44032: 0xC0C3, - 51029 - 44032: 0xC0C4, - 51030 - 44032: 0xC0C5, - 51031 - 44032: 0xC0C6, - 51032 - 44032: 0xC0C7, - 51033 - 44032: 0x9FC3, - 51034 - 44032: 0x9FC4, - 51035 - 44032: 0x9FC5, - 51036 - 44032: 0xC0C8, - 51037 - 44032: 0x9FC6, - 51038 - 44032: 0x9FC7, - 51039 - 44032: 0x9FC8, - 51040 - 44032: 0xC0C9, - 51041 - 44032: 0x9FC9, - 51042 - 44032: 0x9FCA, - 51043 - 44032: 0x9FCB, - 51044 - 44032: 0x9FCC, - 51045 - 44032: 0x9FCD, - 51046 - 44032: 0x9FCE, - 51047 - 44032: 0x9FCF, - 51048 - 44032: 0xC0CA, - 51049 - 44032: 0x9FD0, - 51050 - 44032: 0x9FD1, - 51051 - 44032: 0xC0CB, - 51052 - 44032: 0x9FD2, - 51053 - 44032: 0x9FD3, - 51054 - 44032: 0x9FD4, - 51055 - 44032: 0x9FD5, - 51056 - 44032: 0x9FD6, - 51057 - 44032: 0x9FD7, - 51058 - 44032: 0x9FD8, - 51059 - 44032: 0x9FD9, - 51060 - 44032: 0xC0CC, - 51061 - 44032: 0xC0CD, - 51062 - 44032: 0x9FDA, - 51063 - 44032: 0x9FDB, - 51064 - 44032: 0xC0CE, - 51065 - 44032: 0x9FDC, - 51066 - 44032: 0x9FDD, - 51067 - 44032: 0x9FDE, - 51068 - 44032: 0xC0CF, - 51069 - 44032: 0xC0D0, - 51070 - 44032: 0xC0D1, - 51071 - 44032: 0x9FDF, - 51072 - 44032: 0x9FE0, - 51073 - 44032: 0x9FE1, - 51074 - 44032: 0x9FE2, - 51075 - 44032: 0xC0D2, - 51076 - 44032: 0xC0D3, - 51077 - 44032: 0xC0D4, - 51078 - 44032: 0x9FE3, - 51079 - 44032: 0xC0D5, - 51080 - 44032: 0xC0D6, - 51081 - 44032: 0xC0D7, - 51082 - 44032: 0xC0D8, - 51083 - 44032: 0x9FE4, - 51084 - 44032: 0x9FE5, - 51085 - 44032: 0x9FE6, - 51086 - 44032: 0xC0D9, - 51087 - 44032: 0x9FE7, - 51088 - 44032: 0xC0DA, - 51089 - 44032: 0xC0DB, - 51090 - 44032: 0x9FE8, - 51091 - 44032: 0x9FE9, - 51092 - 44032: 0xC0DC, - 51093 - 44032: 0x9FEA, - 51094 - 44032: 0xC0DD, - 51095 - 44032: 0xC0DE, - 51096 - 44032: 0xC0DF, - 51097 - 44032: 0x9FEB, - 51098 - 44032: 0xC0E0, - 51099 - 44032: 0x9FEC, - 51100 - 44032: 0x9FED, - 51101 - 44032: 0x9FEE, - 51102 - 44032: 0x9FEF, - 51103 - 44032: 0x9FF0, - 51104 - 44032: 0xC0E1, - 51105 - 44032: 0xC0E2, - 51106 - 44032: 0x9FF1, - 51107 - 44032: 0xC0E3, - 51108 - 44032: 0xC0E4, - 51109 - 44032: 0xC0E5, - 51110 - 44032: 0xC0E6, - 51111 - 44032: 0x9FF2, - 51112 - 44032: 0x9FF3, - 51113 - 44032: 0x9FF4, - 51114 - 44032: 0x9FF5, - 51115 - 44032: 0x9FF6, - 51116 - 44032: 0xC0E7, - 51117 - 44032: 0xC0E8, - 51118 - 44032: 0x9FF7, - 51119 - 44032: 0x9FF8, - 51120 - 44032: 0xC0E9, - 51121 - 44032: 0x9FF9, - 51122 - 44032: 0x9FFA, - 51123 - 44032: 0x9FFB, - 51124 - 44032: 0xC0EA, - 51125 - 44032: 0x9FFC, - 51126 - 44032: 0x9FFD, - 51127 - 44032: 0x9FFE, - 51128 - 44032: 0xA041, - 51129 - 44032: 0xA042, - 51130 - 44032: 0xA043, - 51131 - 44032: 0xA044, - 51132 - 44032: 0xC0EB, - 51133 - 44032: 0xC0EC, - 51134 - 44032: 0xA045, - 51135 - 44032: 0xC0ED, - 51136 - 44032: 0xC0EE, - 51137 - 44032: 0xC0EF, - 51138 - 44032: 0xA046, - 51139 - 44032: 0xA047, - 51140 - 44032: 0xA048, - 51141 - 44032: 0xA049, - 51142 - 44032: 0xA04A, - 51143 - 44032: 0xA04B, - 51144 - 44032: 0xC0F0, - 51145 - 44032: 0xC0F1, - 51146 - 44032: 0xA04C, - 51147 - 44032: 0xA04D, - 51148 - 44032: 0xC0F2, - 51149 - 44032: 0xA04E, - 51150 - 44032: 0xC0F3, - 51151 - 44032: 0xA04F, - 51152 - 44032: 0xC0F4, - 51153 - 44032: 0xA050, - 51154 - 44032: 0xA051, - 51155 - 44032: 0xA052, - 51156 - 44032: 0xA053, - 51157 - 44032: 0xA054, - 51158 - 44032: 0xA055, - 51159 - 44032: 0xA056, - 51160 - 44032: 0xC0F5, - 51161 - 44032: 0xA057, - 51162 - 44032: 0xA058, - 51163 - 44032: 0xA059, - 51164 - 44032: 0xA05A, - 51165 - 44032: 0xC0F6, - 51166 - 44032: 0xA061, - 51167 - 44032: 0xA062, - 51168 - 44032: 0xA063, - 51169 - 44032: 0xA064, - 51170 - 44032: 0xA065, - 51171 - 44032: 0xA066, - 51172 - 44032: 0xC0F7, - 51173 - 44032: 0xA067, - 51174 - 44032: 0xA068, - 51175 - 44032: 0xA069, - 51176 - 44032: 0xC0F8, - 51177 - 44032: 0xA06A, - 51178 - 44032: 0xA06B, - 51179 - 44032: 0xA06C, - 51180 - 44032: 0xC0F9, - 51181 - 44032: 0xA06D, - 51182 - 44032: 0xA06E, - 51183 - 44032: 0xA06F, - 51184 - 44032: 0xA070, - 51185 - 44032: 0xA071, - 51186 - 44032: 0xA072, - 51187 - 44032: 0xA073, - 51188 - 44032: 0xA074, - 51189 - 44032: 0xA075, - 51190 - 44032: 0xA076, - 51191 - 44032: 0xA077, - 51192 - 44032: 0xA078, - 51193 - 44032: 0xA079, - 51194 - 44032: 0xA07A, - 51195 - 44032: 0xA081, - 51196 - 44032: 0xA082, - 51197 - 44032: 0xA083, - 51198 - 44032: 0xA084, - 51199 - 44032: 0xA085, - 51200 - 44032: 0xC0FA, - 51201 - 44032: 0xC0FB, - 51202 - 44032: 0xA086, - 51203 - 44032: 0xA087, - 51204 - 44032: 0xC0FC, - 51205 - 44032: 0xA088, - 51206 - 44032: 0xA089, - 51207 - 44032: 0xA08A, - 51208 - 44032: 0xC0FD, - 51209 - 44032: 0xA08B, - 51210 - 44032: 0xC0FE, - 51211 - 44032: 0xA08C, - 51212 - 44032: 0xA08D, - 51213 - 44032: 0xA08E, - 51214 - 44032: 0xA08F, - 51215 - 44032: 0xA090, - 51216 - 44032: 0xC1A1, - 51217 - 44032: 0xC1A2, - 51218 - 44032: 0xA091, - 51219 - 44032: 0xC1A3, - 51220 - 44032: 0xA092, - 51221 - 44032: 0xC1A4, - 51222 - 44032: 0xC1A5, - 51223 - 44032: 0xA093, - 51224 - 44032: 0xA094, - 51225 - 44032: 0xA095, - 51226 - 44032: 0xA096, - 51227 - 44032: 0xA097, - 51228 - 44032: 0xC1A6, - 51229 - 44032: 0xC1A7, - 51230 - 44032: 0xA098, - 51231 - 44032: 0xA099, - 51232 - 44032: 0xC1A8, - 51233 - 44032: 0xA09A, - 51234 - 44032: 0xA09B, - 51235 - 44032: 0xA09C, - 51236 - 44032: 0xC1A9, - 51237 - 44032: 0xA09D, - 51238 - 44032: 0xA09E, - 51239 - 44032: 0xA09F, - 51240 - 44032: 0xA0A0, - 51241 - 44032: 0xA0A1, - 51242 - 44032: 0xA0A2, - 51243 - 44032: 0xA0A3, - 51244 - 44032: 0xC1AA, - 51245 - 44032: 0xC1AB, - 51246 - 44032: 0xA0A4, - 51247 - 44032: 0xC1AC, - 51248 - 44032: 0xA0A5, - 51249 - 44032: 0xC1AD, - 51250 - 44032: 0xA0A6, - 51251 - 44032: 0xA0A7, - 51252 - 44032: 0xA0A8, - 51253 - 44032: 0xA0A9, - 51254 - 44032: 0xA0AA, - 51255 - 44032: 0xA0AB, - 51256 - 44032: 0xC1AE, - 51257 - 44032: 0xA0AC, - 51258 - 44032: 0xA0AD, - 51259 - 44032: 0xA0AE, - 51260 - 44032: 0xC1AF, - 51261 - 44032: 0xA0AF, - 51262 - 44032: 0xA0B0, - 51263 - 44032: 0xA0B1, - 51264 - 44032: 0xC1B0, - 51265 - 44032: 0xA0B2, - 51266 - 44032: 0xA0B3, - 51267 - 44032: 0xA0B4, - 51268 - 44032: 0xA0B5, - 51269 - 44032: 0xA0B6, - 51270 - 44032: 0xA0B7, - 51271 - 44032: 0xA0B8, - 51272 - 44032: 0xC1B1, - 51273 - 44032: 0xC1B2, - 51274 - 44032: 0xA0B9, - 51275 - 44032: 0xA0BA, - 51276 - 44032: 0xC1B3, - 51277 - 44032: 0xC1B4, - 51278 - 44032: 0xA0BB, - 51279 - 44032: 0xA0BC, - 51280 - 44032: 0xA0BD, - 51281 - 44032: 0xA0BE, - 51282 - 44032: 0xA0BF, - 51283 - 44032: 0xA0C0, - 51284 - 44032: 0xC1B5, - 51285 - 44032: 0xA0C1, - 51286 - 44032: 0xA0C2, - 51287 - 44032: 0xA0C3, - 51288 - 44032: 0xA0C4, - 51289 - 44032: 0xA0C5, - 51290 - 44032: 0xA0C6, - 51291 - 44032: 0xA0C7, - 51292 - 44032: 0xA0C8, - 51293 - 44032: 0xA0C9, - 51294 - 44032: 0xA0CA, - 51295 - 44032: 0xA0CB, - 51296 - 44032: 0xA0CC, - 51297 - 44032: 0xA0CD, - 51298 - 44032: 0xA0CE, - 51299 - 44032: 0xA0CF, - 51300 - 44032: 0xA0D0, - 51301 - 44032: 0xA0D1, - 51302 - 44032: 0xA0D2, - 51303 - 44032: 0xA0D3, - 51304 - 44032: 0xA0D4, - 51305 - 44032: 0xA0D5, - 51306 - 44032: 0xA0D6, - 51307 - 44032: 0xA0D7, - 51308 - 44032: 0xA0D8, - 51309 - 44032: 0xA0D9, - 51310 - 44032: 0xA0DA, - 51311 - 44032: 0xA0DB, - 51312 - 44032: 0xC1B6, - 51313 - 44032: 0xC1B7, - 51314 - 44032: 0xA0DC, - 51315 - 44032: 0xA0DD, - 51316 - 44032: 0xC1B8, - 51317 - 44032: 0xA0DE, - 51318 - 44032: 0xA0DF, - 51319 - 44032: 0xA0E0, - 51320 - 44032: 0xC1B9, - 51321 - 44032: 0xA0E1, - 51322 - 44032: 0xC1BA, - 51323 - 44032: 0xA0E2, - 51324 - 44032: 0xA0E3, - 51325 - 44032: 0xA0E4, - 51326 - 44032: 0xA0E5, - 51327 - 44032: 0xA0E6, - 51328 - 44032: 0xC1BB, - 51329 - 44032: 0xC1BC, - 51330 - 44032: 0xA0E7, - 51331 - 44032: 0xC1BD, - 51332 - 44032: 0xA0E8, - 51333 - 44032: 0xC1BE, - 51334 - 44032: 0xC1BF, - 51335 - 44032: 0xC1C0, - 51336 - 44032: 0xA0E9, - 51337 - 44032: 0xA0EA, - 51338 - 44032: 0xA0EB, - 51339 - 44032: 0xC1C1, - 51340 - 44032: 0xC1C2, - 51341 - 44032: 0xC1C3, - 51342 - 44032: 0xA0EC, - 51343 - 44032: 0xA0ED, - 51344 - 44032: 0xA0EE, - 51345 - 44032: 0xA0EF, - 51346 - 44032: 0xA0F0, - 51347 - 44032: 0xA0F1, - 51348 - 44032: 0xC1C4, - 51349 - 44032: 0xA0F2, - 51350 - 44032: 0xA0F3, - 51351 - 44032: 0xA0F4, - 51352 - 44032: 0xA0F5, - 51353 - 44032: 0xA0F6, - 51354 - 44032: 0xA0F7, - 51355 - 44032: 0xA0F8, - 51356 - 44032: 0xA0F9, - 51357 - 44032: 0xC1C5, - 51358 - 44032: 0xA0FA, - 51359 - 44032: 0xC1C6, - 51360 - 44032: 0xA0FB, - 51361 - 44032: 0xC1C7, - 51362 - 44032: 0xA0FC, - 51363 - 44032: 0xA0FD, - 51364 - 44032: 0xA0FE, - 51365 - 44032: 0xA141, - 51366 - 44032: 0xA142, - 51367 - 44032: 0xA143, - 51368 - 44032: 0xC1C8, - 51369 - 44032: 0xA144, - 51370 - 44032: 0xA145, - 51371 - 44032: 0xA146, - 51372 - 44032: 0xA147, - 51373 - 44032: 0xA148, - 51374 - 44032: 0xA149, - 51375 - 44032: 0xA14A, - 51376 - 44032: 0xA14B, - 51377 - 44032: 0xA14C, - 51378 - 44032: 0xA14D, - 51379 - 44032: 0xA14E, - 51380 - 44032: 0xA14F, - 51381 - 44032: 0xA150, - 51382 - 44032: 0xA151, - 51383 - 44032: 0xA152, - 51384 - 44032: 0xA153, - 51385 - 44032: 0xA154, - 51386 - 44032: 0xA155, - 51387 - 44032: 0xA156, - 51388 - 44032: 0xC1C9, - 51389 - 44032: 0xC1CA, - 51390 - 44032: 0xA157, - 51391 - 44032: 0xA158, - 51392 - 44032: 0xA159, - 51393 - 44032: 0xA15A, - 51394 - 44032: 0xA161, - 51395 - 44032: 0xA162, - 51396 - 44032: 0xC1CB, - 51397 - 44032: 0xA163, - 51398 - 44032: 0xA164, - 51399 - 44032: 0xA165, - 51400 - 44032: 0xC1CC, - 51401 - 44032: 0xA166, - 51402 - 44032: 0xA167, - 51403 - 44032: 0xA168, - 51404 - 44032: 0xC1CD, - 51405 - 44032: 0xA169, - 51406 - 44032: 0xA16A, - 51407 - 44032: 0xA16B, - 51408 - 44032: 0xA16C, - 51409 - 44032: 0xA16D, - 51410 - 44032: 0xA16E, - 51411 - 44032: 0xA16F, - 51412 - 44032: 0xC1CE, - 51413 - 44032: 0xC1CF, - 51414 - 44032: 0xA170, - 51415 - 44032: 0xC1D0, - 51416 - 44032: 0xA171, - 51417 - 44032: 0xC1D1, - 51418 - 44032: 0xA172, - 51419 - 44032: 0xA173, - 51420 - 44032: 0xA174, - 51421 - 44032: 0xA175, - 51422 - 44032: 0xA176, - 51423 - 44032: 0xA177, - 51424 - 44032: 0xC1D2, - 51425 - 44032: 0xC1D3, - 51426 - 44032: 0xA178, - 51427 - 44032: 0xA179, - 51428 - 44032: 0xC1D4, - 51429 - 44032: 0xA17A, - 51430 - 44032: 0xA181, - 51431 - 44032: 0xA182, - 51432 - 44032: 0xA183, - 51433 - 44032: 0xA184, - 51434 - 44032: 0xA185, - 51435 - 44032: 0xA186, - 51436 - 44032: 0xA187, - 51437 - 44032: 0xA188, - 51438 - 44032: 0xA189, - 51439 - 44032: 0xA18A, - 51440 - 44032: 0xA18B, - 51441 - 44032: 0xA18C, - 51442 - 44032: 0xA18D, - 51443 - 44032: 0xA18E, - 51444 - 44032: 0xA18F, - 51445 - 44032: 0xC1D5, - 51446 - 44032: 0xA190, - 51447 - 44032: 0xA191, - 51448 - 44032: 0xA192, - 51449 - 44032: 0xA193, - 51450 - 44032: 0xA194, - 51451 - 44032: 0xA195, - 51452 - 44032: 0xC1D6, - 51453 - 44032: 0xC1D7, - 51454 - 44032: 0xA196, - 51455 - 44032: 0xA197, - 51456 - 44032: 0xC1D8, - 51457 - 44032: 0xA198, - 51458 - 44032: 0xA199, - 51459 - 44032: 0xA19A, - 51460 - 44032: 0xC1D9, - 51461 - 44032: 0xC1DA, - 51462 - 44032: 0xC1DB, - 51463 - 44032: 0xA19B, - 51464 - 44032: 0xA19C, - 51465 - 44032: 0xA19D, - 51466 - 44032: 0xA19E, - 51467 - 44032: 0xA19F, - 51468 - 44032: 0xC1DC, - 51469 - 44032: 0xC1DD, - 51470 - 44032: 0xA1A0, - 51471 - 44032: 0xC1DE, - 51472 - 44032: 0xA241, - 51473 - 44032: 0xC1DF, - 51474 - 44032: 0xA242, - 51475 - 44032: 0xA243, - 51476 - 44032: 0xA244, - 51477 - 44032: 0xA245, - 51478 - 44032: 0xA246, - 51479 - 44032: 0xA247, - 51480 - 44032: 0xC1E0, - 51481 - 44032: 0xA248, - 51482 - 44032: 0xA249, - 51483 - 44032: 0xA24A, - 51484 - 44032: 0xA24B, - 51485 - 44032: 0xA24C, - 51486 - 44032: 0xA24D, - 51487 - 44032: 0xA24E, - 51488 - 44032: 0xA24F, - 51489 - 44032: 0xA250, - 51490 - 44032: 0xA251, - 51491 - 44032: 0xA252, - 51492 - 44032: 0xA253, - 51493 - 44032: 0xA254, - 51494 - 44032: 0xA255, - 51495 - 44032: 0xA256, - 51496 - 44032: 0xA257, - 51497 - 44032: 0xA258, - 51498 - 44032: 0xA259, - 51499 - 44032: 0xA25A, - 51500 - 44032: 0xC1E1, - 51501 - 44032: 0xA261, - 51502 - 44032: 0xA262, - 51503 - 44032: 0xA263, - 51504 - 44032: 0xA264, - 51505 - 44032: 0xA265, - 51506 - 44032: 0xA266, - 51507 - 44032: 0xA267, - 51508 - 44032: 0xC1E2, - 51509 - 44032: 0xA268, - 51510 - 44032: 0xA269, - 51511 - 44032: 0xA26A, - 51512 - 44032: 0xA26B, - 51513 - 44032: 0xA26C, - 51514 - 44032: 0xA26D, - 51515 - 44032: 0xA26E, - 51516 - 44032: 0xA26F, - 51517 - 44032: 0xA270, - 51518 - 44032: 0xA271, - 51519 - 44032: 0xA272, - 51520 - 44032: 0xA273, - 51521 - 44032: 0xA274, - 51522 - 44032: 0xA275, - 51523 - 44032: 0xA276, - 51524 - 44032: 0xA277, - 51525 - 44032: 0xA278, - 51526 - 44032: 0xA279, - 51527 - 44032: 0xA27A, - 51528 - 44032: 0xA281, - 51529 - 44032: 0xA282, - 51530 - 44032: 0xA283, - 51531 - 44032: 0xA284, - 51532 - 44032: 0xA285, - 51533 - 44032: 0xA286, - 51534 - 44032: 0xA287, - 51535 - 44032: 0xA288, - 51536 - 44032: 0xC1E3, - 51537 - 44032: 0xC1E4, - 51538 - 44032: 0xA289, - 51539 - 44032: 0xA28A, - 51540 - 44032: 0xC1E5, - 51541 - 44032: 0xA28B, - 51542 - 44032: 0xA28C, - 51543 - 44032: 0xA28D, - 51544 - 44032: 0xC1E6, - 51545 - 44032: 0xA28E, - 51546 - 44032: 0xA28F, - 51547 - 44032: 0xA290, - 51548 - 44032: 0xA291, - 51549 - 44032: 0xA292, - 51550 - 44032: 0xA293, - 51551 - 44032: 0xA294, - 51552 - 44032: 0xC1E7, - 51553 - 44032: 0xC1E8, - 51554 - 44032: 0xA295, - 51555 - 44032: 0xC1E9, - 51556 - 44032: 0xA296, - 51557 - 44032: 0xA297, - 51558 - 44032: 0xA298, - 51559 - 44032: 0xA299, - 51560 - 44032: 0xA29A, - 51561 - 44032: 0xA29B, - 51562 - 44032: 0xA29C, - 51563 - 44032: 0xA29D, - 51564 - 44032: 0xC1EA, - 51565 - 44032: 0xA29E, - 51566 - 44032: 0xA29F, - 51567 - 44032: 0xA2A0, - 51568 - 44032: 0xC1EB, - 51569 - 44032: 0xA341, - 51570 - 44032: 0xA342, - 51571 - 44032: 0xA343, - 51572 - 44032: 0xC1EC, - 51573 - 44032: 0xA344, - 51574 - 44032: 0xA345, - 51575 - 44032: 0xA346, - 51576 - 44032: 0xA347, - 51577 - 44032: 0xA348, - 51578 - 44032: 0xA349, - 51579 - 44032: 0xA34A, - 51580 - 44032: 0xC1ED, - 51581 - 44032: 0xA34B, - 51582 - 44032: 0xA34C, - 51583 - 44032: 0xA34D, - 51584 - 44032: 0xA34E, - 51585 - 44032: 0xA34F, - 51586 - 44032: 0xA350, - 51587 - 44032: 0xA351, - 51588 - 44032: 0xA352, - 51589 - 44032: 0xA353, - 51590 - 44032: 0xA354, - 51591 - 44032: 0xA355, - 51592 - 44032: 0xC1EE, - 51593 - 44032: 0xC1EF, - 51594 - 44032: 0xA356, - 51595 - 44032: 0xA357, - 51596 - 44032: 0xC1F0, - 51597 - 44032: 0xA358, - 51598 - 44032: 0xA359, - 51599 - 44032: 0xA35A, - 51600 - 44032: 0xC1F1, - 51601 - 44032: 0xA361, - 51602 - 44032: 0xA362, - 51603 - 44032: 0xA363, - 51604 - 44032: 0xA364, - 51605 - 44032: 0xA365, - 51606 - 44032: 0xA366, - 51607 - 44032: 0xA367, - 51608 - 44032: 0xC1F2, - 51609 - 44032: 0xC1F3, - 51610 - 44032: 0xA368, - 51611 - 44032: 0xC1F4, - 51612 - 44032: 0xA369, - 51613 - 44032: 0xC1F5, - 51614 - 44032: 0xA36A, - 51615 - 44032: 0xA36B, - 51616 - 44032: 0xA36C, - 51617 - 44032: 0xA36D, - 51618 - 44032: 0xA36E, - 51619 - 44032: 0xA36F, - 51620 - 44032: 0xA370, - 51621 - 44032: 0xA371, - 51622 - 44032: 0xA372, - 51623 - 44032: 0xA373, - 51624 - 44032: 0xA374, - 51625 - 44032: 0xA375, - 51626 - 44032: 0xA376, - 51627 - 44032: 0xA377, - 51628 - 44032: 0xA378, - 51629 - 44032: 0xA379, - 51630 - 44032: 0xA37A, - 51631 - 44032: 0xA381, - 51632 - 44032: 0xA382, - 51633 - 44032: 0xA383, - 51634 - 44032: 0xA384, - 51635 - 44032: 0xA385, - 51636 - 44032: 0xA386, - 51637 - 44032: 0xA387, - 51638 - 44032: 0xA388, - 51639 - 44032: 0xA389, - 51640 - 44032: 0xA38A, - 51641 - 44032: 0xA38B, - 51642 - 44032: 0xA38C, - 51643 - 44032: 0xA38D, - 51644 - 44032: 0xA38E, - 51645 - 44032: 0xA38F, - 51646 - 44032: 0xA390, - 51647 - 44032: 0xA391, - 51648 - 44032: 0xC1F6, - 51649 - 44032: 0xC1F7, - 51650 - 44032: 0xA392, - 51651 - 44032: 0xA393, - 51652 - 44032: 0xC1F8, - 51653 - 44032: 0xA394, - 51654 - 44032: 0xA395, - 51655 - 44032: 0xC1F9, - 51656 - 44032: 0xC1FA, - 51657 - 44032: 0xA396, - 51658 - 44032: 0xC1FB, - 51659 - 44032: 0xA397, - 51660 - 44032: 0xA398, - 51661 - 44032: 0xA399, - 51662 - 44032: 0xA39A, - 51663 - 44032: 0xA39B, - 51664 - 44032: 0xC1FC, - 51665 - 44032: 0xC1FD, - 51666 - 44032: 0xA39C, - 51667 - 44032: 0xC1FE, - 51668 - 44032: 0xA39D, - 51669 - 44032: 0xC2A1, - 51670 - 44032: 0xC2A2, - 51671 - 44032: 0xA39E, - 51672 - 44032: 0xA39F, - 51673 - 44032: 0xC2A3, - 51674 - 44032: 0xC2A4, - 51675 - 44032: 0xA3A0, - 51676 - 44032: 0xC2A5, - 51677 - 44032: 0xC2A6, - 51678 - 44032: 0xA441, - 51679 - 44032: 0xA442, - 51680 - 44032: 0xC2A7, - 51681 - 44032: 0xA443, - 51682 - 44032: 0xC2A8, - 51683 - 44032: 0xA444, - 51684 - 44032: 0xC2A9, - 51685 - 44032: 0xA445, - 51686 - 44032: 0xA446, - 51687 - 44032: 0xC2AA, - 51688 - 44032: 0xA447, - 51689 - 44032: 0xA448, - 51690 - 44032: 0xA449, - 51691 - 44032: 0xA44A, - 51692 - 44032: 0xC2AB, - 51693 - 44032: 0xC2AC, - 51694 - 44032: 0xA44B, - 51695 - 44032: 0xC2AD, - 51696 - 44032: 0xC2AE, - 51697 - 44032: 0xC2AF, - 51698 - 44032: 0xA44C, - 51699 - 44032: 0xA44D, - 51700 - 44032: 0xA44E, - 51701 - 44032: 0xA44F, - 51702 - 44032: 0xA450, - 51703 - 44032: 0xA451, - 51704 - 44032: 0xC2B0, - 51705 - 44032: 0xC2B1, - 51706 - 44032: 0xA452, - 51707 - 44032: 0xA453, - 51708 - 44032: 0xC2B2, - 51709 - 44032: 0xA454, - 51710 - 44032: 0xA455, - 51711 - 44032: 0xA456, - 51712 - 44032: 0xC2B3, - 51713 - 44032: 0xA457, - 51714 - 44032: 0xA458, - 51715 - 44032: 0xA459, - 51716 - 44032: 0xA45A, - 51717 - 44032: 0xA461, - 51718 - 44032: 0xA462, - 51719 - 44032: 0xA463, - 51720 - 44032: 0xC2B4, - 51721 - 44032: 0xC2B5, - 51722 - 44032: 0xA464, - 51723 - 44032: 0xC2B6, - 51724 - 44032: 0xC2B7, - 51725 - 44032: 0xC2B8, - 51726 - 44032: 0xA465, - 51727 - 44032: 0xA466, - 51728 - 44032: 0xA467, - 51729 - 44032: 0xA468, - 51730 - 44032: 0xA469, - 51731 - 44032: 0xA46A, - 51732 - 44032: 0xC2B9, - 51733 - 44032: 0xA46B, - 51734 - 44032: 0xA46C, - 51735 - 44032: 0xA46D, - 51736 - 44032: 0xC2BA, - 51737 - 44032: 0xA46E, - 51738 - 44032: 0xA46F, - 51739 - 44032: 0xA470, - 51740 - 44032: 0xA471, - 51741 - 44032: 0xA472, - 51742 - 44032: 0xA473, - 51743 - 44032: 0xA474, - 51744 - 44032: 0xA475, - 51745 - 44032: 0xA476, - 51746 - 44032: 0xA477, - 51747 - 44032: 0xA478, - 51748 - 44032: 0xA479, - 51749 - 44032: 0xA47A, - 51750 - 44032: 0xA481, - 51751 - 44032: 0xA482, - 51752 - 44032: 0xA483, - 51753 - 44032: 0xC2BB, - 51754 - 44032: 0xA484, - 51755 - 44032: 0xA485, - 51756 - 44032: 0xA486, - 51757 - 44032: 0xA487, - 51758 - 44032: 0xA488, - 51759 - 44032: 0xA489, - 51760 - 44032: 0xA48A, - 51761 - 44032: 0xA48B, - 51762 - 44032: 0xA48C, - 51763 - 44032: 0xA48D, - 51764 - 44032: 0xA48E, - 51765 - 44032: 0xA48F, - 51766 - 44032: 0xA490, - 51767 - 44032: 0xA491, - 51768 - 44032: 0xA492, - 51769 - 44032: 0xA493, - 51770 - 44032: 0xA494, - 51771 - 44032: 0xA495, - 51772 - 44032: 0xA496, - 51773 - 44032: 0xA497, - 51774 - 44032: 0xA498, - 51775 - 44032: 0xA499, - 51776 - 44032: 0xA49A, - 51777 - 44032: 0xA49B, - 51778 - 44032: 0xA49C, - 51779 - 44032: 0xA49D, - 51780 - 44032: 0xA49E, - 51781 - 44032: 0xA49F, - 51782 - 44032: 0xA4A0, - 51783 - 44032: 0xA541, - 51784 - 44032: 0xA542, - 51785 - 44032: 0xA543, - 51786 - 44032: 0xA544, - 51787 - 44032: 0xA545, - 51788 - 44032: 0xC2BC, - 51789 - 44032: 0xC2BD, - 51790 - 44032: 0xA546, - 51791 - 44032: 0xA547, - 51792 - 44032: 0xC2BE, - 51793 - 44032: 0xA548, - 51794 - 44032: 0xA549, - 51795 - 44032: 0xA54A, - 51796 - 44032: 0xC2BF, - 51797 - 44032: 0xA54B, - 51798 - 44032: 0xA54C, - 51799 - 44032: 0xA54D, - 51800 - 44032: 0xA54E, - 51801 - 44032: 0xA54F, - 51802 - 44032: 0xA550, - 51803 - 44032: 0xA551, - 51804 - 44032: 0xC2C0, - 51805 - 44032: 0xC2C1, - 51806 - 44032: 0xA552, - 51807 - 44032: 0xC2C2, - 51808 - 44032: 0xC2C3, - 51809 - 44032: 0xC2C4, - 51810 - 44032: 0xA553, - 51811 - 44032: 0xA554, - 51812 - 44032: 0xA555, - 51813 - 44032: 0xA556, - 51814 - 44032: 0xA557, - 51815 - 44032: 0xA558, - 51816 - 44032: 0xC2C5, - 51817 - 44032: 0xA559, - 51818 - 44032: 0xA55A, - 51819 - 44032: 0xA561, - 51820 - 44032: 0xA562, - 51821 - 44032: 0xA563, - 51822 - 44032: 0xA564, - 51823 - 44032: 0xA565, - 51824 - 44032: 0xA566, - 51825 - 44032: 0xA567, - 51826 - 44032: 0xA568, - 51827 - 44032: 0xA569, - 51828 - 44032: 0xA56A, - 51829 - 44032: 0xA56B, - 51830 - 44032: 0xA56C, - 51831 - 44032: 0xA56D, - 51832 - 44032: 0xA56E, - 51833 - 44032: 0xA56F, - 51834 - 44032: 0xA570, - 51835 - 44032: 0xA571, - 51836 - 44032: 0xA572, - 51837 - 44032: 0xC2C6, - 51838 - 44032: 0xA573, - 51839 - 44032: 0xA574, - 51840 - 44032: 0xA575, - 51841 - 44032: 0xA576, - 51842 - 44032: 0xA577, - 51843 - 44032: 0xA578, - 51844 - 44032: 0xC2C7, - 51845 - 44032: 0xA579, - 51846 - 44032: 0xA57A, - 51847 - 44032: 0xA581, - 51848 - 44032: 0xA582, - 51849 - 44032: 0xA583, - 51850 - 44032: 0xA584, - 51851 - 44032: 0xA585, - 51852 - 44032: 0xA586, - 51853 - 44032: 0xA587, - 51854 - 44032: 0xA588, - 51855 - 44032: 0xA589, - 51856 - 44032: 0xA58A, - 51857 - 44032: 0xA58B, - 51858 - 44032: 0xA58C, - 51859 - 44032: 0xA58D, - 51860 - 44032: 0xA58E, - 51861 - 44032: 0xA58F, - 51862 - 44032: 0xA590, - 51863 - 44032: 0xA591, - 51864 - 44032: 0xC2C8, - 51865 - 44032: 0xA592, - 51866 - 44032: 0xA593, - 51867 - 44032: 0xA594, - 51868 - 44032: 0xA595, - 51869 - 44032: 0xA596, - 51870 - 44032: 0xA597, - 51871 - 44032: 0xA598, - 51872 - 44032: 0xA599, - 51873 - 44032: 0xA59A, - 51874 - 44032: 0xA59B, - 51875 - 44032: 0xA59C, - 51876 - 44032: 0xA59D, - 51877 - 44032: 0xA59E, - 51878 - 44032: 0xA59F, - 51879 - 44032: 0xA5A0, - 51880 - 44032: 0xA641, - 51881 - 44032: 0xA642, - 51882 - 44032: 0xA643, - 51883 - 44032: 0xA644, - 51884 - 44032: 0xA645, - 51885 - 44032: 0xA646, - 51886 - 44032: 0xA647, - 51887 - 44032: 0xA648, - 51888 - 44032: 0xA649, - 51889 - 44032: 0xA64A, - 51890 - 44032: 0xA64B, - 51891 - 44032: 0xA64C, - 51892 - 44032: 0xA64D, - 51893 - 44032: 0xA64E, - 51894 - 44032: 0xA64F, - 51895 - 44032: 0xA650, - 51896 - 44032: 0xA651, - 51897 - 44032: 0xA652, - 51898 - 44032: 0xA653, - 51899 - 44032: 0xA654, - 51900 - 44032: 0xC2C9, - 51901 - 44032: 0xC2CA, - 51902 - 44032: 0xA655, - 51903 - 44032: 0xA656, - 51904 - 44032: 0xC2CB, - 51905 - 44032: 0xA657, - 51906 - 44032: 0xA658, - 51907 - 44032: 0xA659, - 51908 - 44032: 0xC2CC, - 51909 - 44032: 0xA65A, - 51910 - 44032: 0xA661, - 51911 - 44032: 0xA662, - 51912 - 44032: 0xA663, - 51913 - 44032: 0xA664, - 51914 - 44032: 0xA665, - 51915 - 44032: 0xA666, - 51916 - 44032: 0xC2CD, - 51917 - 44032: 0xC2CE, - 51918 - 44032: 0xA667, - 51919 - 44032: 0xC2CF, - 51920 - 44032: 0xA668, - 51921 - 44032: 0xC2D0, - 51922 - 44032: 0xA669, - 51923 - 44032: 0xC2D1, - 51924 - 44032: 0xA66A, - 51925 - 44032: 0xA66B, - 51926 - 44032: 0xA66C, - 51927 - 44032: 0xA66D, - 51928 - 44032: 0xC2D2, - 51929 - 44032: 0xC2D3, - 51930 - 44032: 0xA66E, - 51931 - 44032: 0xA66F, - 51932 - 44032: 0xA670, - 51933 - 44032: 0xA671, - 51934 - 44032: 0xA672, - 51935 - 44032: 0xA673, - 51936 - 44032: 0xC2D4, - 51937 - 44032: 0xA674, - 51938 - 44032: 0xA675, - 51939 - 44032: 0xA676, - 51940 - 44032: 0xA677, - 51941 - 44032: 0xA678, - 51942 - 44032: 0xA679, - 51943 - 44032: 0xA67A, - 51944 - 44032: 0xA681, - 51945 - 44032: 0xA682, - 51946 - 44032: 0xA683, - 51947 - 44032: 0xA684, - 51948 - 44032: 0xC2D5, - 51949 - 44032: 0xA685, - 51950 - 44032: 0xA686, - 51951 - 44032: 0xA687, - 51952 - 44032: 0xA688, - 51953 - 44032: 0xA689, - 51954 - 44032: 0xA68A, - 51955 - 44032: 0xA68B, - 51956 - 44032: 0xC2D6, - 51957 - 44032: 0xA68C, - 51958 - 44032: 0xA68D, - 51959 - 44032: 0xA68E, - 51960 - 44032: 0xA68F, - 51961 - 44032: 0xA690, - 51962 - 44032: 0xA691, - 51963 - 44032: 0xA692, - 51964 - 44032: 0xA693, - 51965 - 44032: 0xA694, - 51966 - 44032: 0xA695, - 51967 - 44032: 0xA696, - 51968 - 44032: 0xA697, - 51969 - 44032: 0xA698, - 51970 - 44032: 0xA699, - 51971 - 44032: 0xA69A, - 51972 - 44032: 0xA69B, - 51973 - 44032: 0xA69C, - 51974 - 44032: 0xA69D, - 51975 - 44032: 0xA69E, - 51976 - 44032: 0xC2D7, - 51977 - 44032: 0xA69F, - 51978 - 44032: 0xA6A0, - 51979 - 44032: 0xA741, - 51980 - 44032: 0xA742, - 51981 - 44032: 0xA743, - 51982 - 44032: 0xA744, - 51983 - 44032: 0xA745, - 51984 - 44032: 0xC2D8, - 51985 - 44032: 0xA746, - 51986 - 44032: 0xA747, - 51987 - 44032: 0xA748, - 51988 - 44032: 0xC2D9, - 51989 - 44032: 0xA749, - 51990 - 44032: 0xA74A, - 51991 - 44032: 0xA74B, - 51992 - 44032: 0xC2DA, - 51993 - 44032: 0xA74C, - 51994 - 44032: 0xA74D, - 51995 - 44032: 0xA74E, - 51996 - 44032: 0xA74F, - 51997 - 44032: 0xA750, - 51998 - 44032: 0xA751, - 51999 - 44032: 0xA752, - 52000 - 44032: 0xC2DB, - 52001 - 44032: 0xC2DC, - 52002 - 44032: 0xA753, - 52003 - 44032: 0xA754, - 52004 - 44032: 0xA755, - 52005 - 44032: 0xA756, - 52006 - 44032: 0xA757, - 52007 - 44032: 0xA758, - 52008 - 44032: 0xA759, - 52009 - 44032: 0xA75A, - 52010 - 44032: 0xA761, - 52011 - 44032: 0xA762, - 52012 - 44032: 0xA763, - 52013 - 44032: 0xA764, - 52014 - 44032: 0xA765, - 52015 - 44032: 0xA766, - 52016 - 44032: 0xA767, - 52017 - 44032: 0xA768, - 52018 - 44032: 0xA769, - 52019 - 44032: 0xA76A, - 52020 - 44032: 0xA76B, - 52021 - 44032: 0xA76C, - 52022 - 44032: 0xA76D, - 52023 - 44032: 0xA76E, - 52024 - 44032: 0xA76F, - 52025 - 44032: 0xA770, - 52026 - 44032: 0xA771, - 52027 - 44032: 0xA772, - 52028 - 44032: 0xA773, - 52029 - 44032: 0xA774, - 52030 - 44032: 0xA775, - 52031 - 44032: 0xA776, - 52032 - 44032: 0xA777, - 52033 - 44032: 0xC2DD, - 52034 - 44032: 0xA778, - 52035 - 44032: 0xA779, - 52036 - 44032: 0xA77A, - 52037 - 44032: 0xA781, - 52038 - 44032: 0xA782, - 52039 - 44032: 0xA783, - 52040 - 44032: 0xC2DE, - 52041 - 44032: 0xC2DF, - 52042 - 44032: 0xA784, - 52043 - 44032: 0xA785, - 52044 - 44032: 0xC2E0, - 52045 - 44032: 0xA786, - 52046 - 44032: 0xA787, - 52047 - 44032: 0xA788, - 52048 - 44032: 0xC2E1, - 52049 - 44032: 0xA789, - 52050 - 44032: 0xA78A, - 52051 - 44032: 0xA78B, - 52052 - 44032: 0xA78C, - 52053 - 44032: 0xA78D, - 52054 - 44032: 0xA78E, - 52055 - 44032: 0xA78F, - 52056 - 44032: 0xC2E2, - 52057 - 44032: 0xC2E3, - 52058 - 44032: 0xA790, - 52059 - 44032: 0xA791, - 52060 - 44032: 0xA792, - 52061 - 44032: 0xC2E4, - 52062 - 44032: 0xA793, - 52063 - 44032: 0xA794, - 52064 - 44032: 0xA795, - 52065 - 44032: 0xA796, - 52066 - 44032: 0xA797, - 52067 - 44032: 0xA798, - 52068 - 44032: 0xC2E5, - 52069 - 44032: 0xA799, - 52070 - 44032: 0xA79A, - 52071 - 44032: 0xA79B, - 52072 - 44032: 0xA79C, - 52073 - 44032: 0xA79D, - 52074 - 44032: 0xA79E, - 52075 - 44032: 0xA79F, - 52076 - 44032: 0xA7A0, - 52077 - 44032: 0xA841, - 52078 - 44032: 0xA842, - 52079 - 44032: 0xA843, - 52080 - 44032: 0xA844, - 52081 - 44032: 0xA845, - 52082 - 44032: 0xA846, - 52083 - 44032: 0xA847, - 52084 - 44032: 0xA848, - 52085 - 44032: 0xA849, - 52086 - 44032: 0xA84A, - 52087 - 44032: 0xA84B, - 52088 - 44032: 0xC2E6, - 52089 - 44032: 0xC2E7, - 52090 - 44032: 0xA84C, - 52091 - 44032: 0xA84D, - 52092 - 44032: 0xA84E, - 52093 - 44032: 0xA84F, - 52094 - 44032: 0xA850, - 52095 - 44032: 0xA851, - 52096 - 44032: 0xA852, - 52097 - 44032: 0xA853, - 52098 - 44032: 0xA854, - 52099 - 44032: 0xA855, - 52100 - 44032: 0xA856, - 52101 - 44032: 0xA857, - 52102 - 44032: 0xA858, - 52103 - 44032: 0xA859, - 52104 - 44032: 0xA85A, - 52105 - 44032: 0xA861, - 52106 - 44032: 0xA862, - 52107 - 44032: 0xA863, - 52108 - 44032: 0xA864, - 52109 - 44032: 0xA865, - 52110 - 44032: 0xA866, - 52111 - 44032: 0xA867, - 52112 - 44032: 0xA868, - 52113 - 44032: 0xA869, - 52114 - 44032: 0xA86A, - 52115 - 44032: 0xA86B, - 52116 - 44032: 0xA86C, - 52117 - 44032: 0xA86D, - 52118 - 44032: 0xA86E, - 52119 - 44032: 0xA86F, - 52120 - 44032: 0xA870, - 52121 - 44032: 0xA871, - 52122 - 44032: 0xA872, - 52123 - 44032: 0xA873, - 52124 - 44032: 0xC2E8, - 52125 - 44032: 0xA874, - 52126 - 44032: 0xA875, - 52127 - 44032: 0xA876, - 52128 - 44032: 0xA877, - 52129 - 44032: 0xA878, - 52130 - 44032: 0xA879, - 52131 - 44032: 0xA87A, - 52132 - 44032: 0xA881, - 52133 - 44032: 0xA882, - 52134 - 44032: 0xA883, - 52135 - 44032: 0xA884, - 52136 - 44032: 0xA885, - 52137 - 44032: 0xA886, - 52138 - 44032: 0xA887, - 52139 - 44032: 0xA888, - 52140 - 44032: 0xA889, - 52141 - 44032: 0xA88A, - 52142 - 44032: 0xA88B, - 52143 - 44032: 0xA88C, - 52144 - 44032: 0xA88D, - 52145 - 44032: 0xA88E, - 52146 - 44032: 0xA88F, - 52147 - 44032: 0xA890, - 52148 - 44032: 0xA891, - 52149 - 44032: 0xA892, - 52150 - 44032: 0xA893, - 52151 - 44032: 0xA894, - 52152 - 44032: 0xC2E9, - 52153 - 44032: 0xA895, - 52154 - 44032: 0xA896, - 52155 - 44032: 0xA897, - 52156 - 44032: 0xA898, - 52157 - 44032: 0xA899, - 52158 - 44032: 0xA89A, - 52159 - 44032: 0xA89B, - 52160 - 44032: 0xA89C, - 52161 - 44032: 0xA89D, - 52162 - 44032: 0xA89E, - 52163 - 44032: 0xA89F, - 52164 - 44032: 0xA8A0, - 52165 - 44032: 0xA941, - 52166 - 44032: 0xA942, - 52167 - 44032: 0xA943, - 52168 - 44032: 0xA944, - 52169 - 44032: 0xA945, - 52170 - 44032: 0xA946, - 52171 - 44032: 0xA947, - 52172 - 44032: 0xA948, - 52173 - 44032: 0xA949, - 52174 - 44032: 0xA94A, - 52175 - 44032: 0xA94B, - 52176 - 44032: 0xA94C, - 52177 - 44032: 0xA94D, - 52178 - 44032: 0xA94E, - 52179 - 44032: 0xA94F, - 52180 - 44032: 0xC2EA, - 52181 - 44032: 0xA950, - 52182 - 44032: 0xA951, - 52183 - 44032: 0xA952, - 52184 - 44032: 0xA953, - 52185 - 44032: 0xA954, - 52186 - 44032: 0xA955, - 52187 - 44032: 0xA956, - 52188 - 44032: 0xA957, - 52189 - 44032: 0xA958, - 52190 - 44032: 0xA959, - 52191 - 44032: 0xA95A, - 52192 - 44032: 0xA961, - 52193 - 44032: 0xA962, - 52194 - 44032: 0xA963, - 52195 - 44032: 0xA964, - 52196 - 44032: 0xC2EB, - 52197 - 44032: 0xA965, - 52198 - 44032: 0xA966, - 52199 - 44032: 0xC2EC, - 52200 - 44032: 0xA967, - 52201 - 44032: 0xC2ED, - 52202 - 44032: 0xA968, - 52203 - 44032: 0xA969, - 52204 - 44032: 0xA96A, - 52205 - 44032: 0xA96B, - 52206 - 44032: 0xA96C, - 52207 - 44032: 0xA96D, - 52208 - 44032: 0xA96E, - 52209 - 44032: 0xA96F, - 52210 - 44032: 0xA970, - 52211 - 44032: 0xA971, - 52212 - 44032: 0xA972, - 52213 - 44032: 0xA973, - 52214 - 44032: 0xA974, - 52215 - 44032: 0xA975, - 52216 - 44032: 0xA976, - 52217 - 44032: 0xA977, - 52218 - 44032: 0xA978, - 52219 - 44032: 0xA979, - 52220 - 44032: 0xA97A, - 52221 - 44032: 0xA981, - 52222 - 44032: 0xA982, - 52223 - 44032: 0xA983, - 52224 - 44032: 0xA984, - 52225 - 44032: 0xA985, - 52226 - 44032: 0xA986, - 52227 - 44032: 0xA987, - 52228 - 44032: 0xA988, - 52229 - 44032: 0xA989, - 52230 - 44032: 0xA98A, - 52231 - 44032: 0xA98B, - 52232 - 44032: 0xA98C, - 52233 - 44032: 0xA98D, - 52234 - 44032: 0xA98E, - 52235 - 44032: 0xA98F, - 52236 - 44032: 0xC2EE, - 52237 - 44032: 0xC2EF, - 52238 - 44032: 0xA990, - 52239 - 44032: 0xA991, - 52240 - 44032: 0xC2F0, - 52241 - 44032: 0xA992, - 52242 - 44032: 0xA993, - 52243 - 44032: 0xA994, - 52244 - 44032: 0xC2F1, - 52245 - 44032: 0xA995, - 52246 - 44032: 0xA996, - 52247 - 44032: 0xA997, - 52248 - 44032: 0xA998, - 52249 - 44032: 0xA999, - 52250 - 44032: 0xA99A, - 52251 - 44032: 0xA99B, - 52252 - 44032: 0xC2F2, - 52253 - 44032: 0xC2F3, - 52254 - 44032: 0xA99C, - 52255 - 44032: 0xA99D, - 52256 - 44032: 0xA99E, - 52257 - 44032: 0xC2F4, - 52258 - 44032: 0xC2F5, - 52259 - 44032: 0xA99F, - 52260 - 44032: 0xA9A0, - 52261 - 44032: 0xAA41, - 52262 - 44032: 0xAA42, - 52263 - 44032: 0xC2F6, - 52264 - 44032: 0xC2F7, - 52265 - 44032: 0xC2F8, - 52266 - 44032: 0xAA43, - 52267 - 44032: 0xAA44, - 52268 - 44032: 0xC2F9, - 52269 - 44032: 0xAA45, - 52270 - 44032: 0xC2FA, - 52271 - 44032: 0xAA46, - 52272 - 44032: 0xC2FB, - 52273 - 44032: 0xAA47, - 52274 - 44032: 0xAA48, - 52275 - 44032: 0xAA49, - 52276 - 44032: 0xAA4A, - 52277 - 44032: 0xAA4B, - 52278 - 44032: 0xAA4C, - 52279 - 44032: 0xAA4D, - 52280 - 44032: 0xC2FC, - 52281 - 44032: 0xC2FD, - 52282 - 44032: 0xAA4E, - 52283 - 44032: 0xC2FE, - 52284 - 44032: 0xC3A1, - 52285 - 44032: 0xC3A2, - 52286 - 44032: 0xC3A3, - 52287 - 44032: 0xAA4F, - 52288 - 44032: 0xAA50, - 52289 - 44032: 0xAA51, - 52290 - 44032: 0xAA52, - 52291 - 44032: 0xAA53, - 52292 - 44032: 0xC3A4, - 52293 - 44032: 0xC3A5, - 52294 - 44032: 0xAA54, - 52295 - 44032: 0xAA55, - 52296 - 44032: 0xC3A6, - 52297 - 44032: 0xAA56, - 52298 - 44032: 0xAA57, - 52299 - 44032: 0xAA58, - 52300 - 44032: 0xC3A7, - 52301 - 44032: 0xAA59, - 52302 - 44032: 0xAA5A, - 52303 - 44032: 0xAA61, - 52304 - 44032: 0xAA62, - 52305 - 44032: 0xAA63, - 52306 - 44032: 0xAA64, - 52307 - 44032: 0xAA65, - 52308 - 44032: 0xC3A8, - 52309 - 44032: 0xC3A9, - 52310 - 44032: 0xAA66, - 52311 - 44032: 0xC3AA, - 52312 - 44032: 0xC3AB, - 52313 - 44032: 0xC3AC, - 52314 - 44032: 0xAA67, - 52315 - 44032: 0xAA68, - 52316 - 44032: 0xAA69, - 52317 - 44032: 0xAA6A, - 52318 - 44032: 0xAA6B, - 52319 - 44032: 0xAA6C, - 52320 - 44032: 0xC3AD, - 52321 - 44032: 0xAA6D, - 52322 - 44032: 0xAA6E, - 52323 - 44032: 0xAA6F, - 52324 - 44032: 0xC3AE, - 52325 - 44032: 0xAA70, - 52326 - 44032: 0xC3AF, - 52327 - 44032: 0xAA71, - 52328 - 44032: 0xC3B0, - 52329 - 44032: 0xAA72, - 52330 - 44032: 0xAA73, - 52331 - 44032: 0xAA74, - 52332 - 44032: 0xAA75, - 52333 - 44032: 0xAA76, - 52334 - 44032: 0xAA77, - 52335 - 44032: 0xAA78, - 52336 - 44032: 0xC3B1, - 52337 - 44032: 0xAA79, - 52338 - 44032: 0xAA7A, - 52339 - 44032: 0xAA81, - 52340 - 44032: 0xAA82, - 52341 - 44032: 0xC3B2, - 52342 - 44032: 0xAA83, - 52343 - 44032: 0xAA84, - 52344 - 44032: 0xAA85, - 52345 - 44032: 0xAA86, - 52346 - 44032: 0xAA87, - 52347 - 44032: 0xAA88, - 52348 - 44032: 0xAA89, - 52349 - 44032: 0xAA8A, - 52350 - 44032: 0xAA8B, - 52351 - 44032: 0xAA8C, - 52352 - 44032: 0xAA8D, - 52353 - 44032: 0xAA8E, - 52354 - 44032: 0xAA8F, - 52355 - 44032: 0xAA90, - 52356 - 44032: 0xAA91, - 52357 - 44032: 0xAA92, - 52358 - 44032: 0xAA93, - 52359 - 44032: 0xAA94, - 52360 - 44032: 0xAA95, - 52361 - 44032: 0xAA96, - 52362 - 44032: 0xAA97, - 52363 - 44032: 0xAA98, - 52364 - 44032: 0xAA99, - 52365 - 44032: 0xAA9A, - 52366 - 44032: 0xAA9B, - 52367 - 44032: 0xAA9C, - 52368 - 44032: 0xAA9D, - 52369 - 44032: 0xAA9E, - 52370 - 44032: 0xAA9F, - 52371 - 44032: 0xAAA0, - 52372 - 44032: 0xAB41, - 52373 - 44032: 0xAB42, - 52374 - 44032: 0xAB43, - 52375 - 44032: 0xAB44, - 52376 - 44032: 0xC3B3, - 52377 - 44032: 0xC3B4, - 52378 - 44032: 0xAB45, - 52379 - 44032: 0xAB46, - 52380 - 44032: 0xC3B5, - 52381 - 44032: 0xAB47, - 52382 - 44032: 0xAB48, - 52383 - 44032: 0xAB49, - 52384 - 44032: 0xC3B6, - 52385 - 44032: 0xAB4A, - 52386 - 44032: 0xAB4B, - 52387 - 44032: 0xAB4C, - 52388 - 44032: 0xAB4D, - 52389 - 44032: 0xAB4E, - 52390 - 44032: 0xAB4F, - 52391 - 44032: 0xAB50, - 52392 - 44032: 0xC3B7, - 52393 - 44032: 0xC3B8, - 52394 - 44032: 0xAB51, - 52395 - 44032: 0xC3B9, - 52396 - 44032: 0xC3BA, - 52397 - 44032: 0xC3BB, - 52398 - 44032: 0xAB52, - 52399 - 44032: 0xAB53, - 52400 - 44032: 0xAB54, - 52401 - 44032: 0xAB55, - 52402 - 44032: 0xAB56, - 52403 - 44032: 0xAB57, - 52404 - 44032: 0xC3BC, - 52405 - 44032: 0xC3BD, - 52406 - 44032: 0xAB58, - 52407 - 44032: 0xAB59, - 52408 - 44032: 0xC3BE, - 52409 - 44032: 0xAB5A, - 52410 - 44032: 0xAB61, - 52411 - 44032: 0xAB62, - 52412 - 44032: 0xC3BF, - 52413 - 44032: 0xAB63, - 52414 - 44032: 0xAB64, - 52415 - 44032: 0xAB65, - 52416 - 44032: 0xAB66, - 52417 - 44032: 0xAB67, - 52418 - 44032: 0xAB68, - 52419 - 44032: 0xAB69, - 52420 - 44032: 0xC3C0, - 52421 - 44032: 0xC3C1, - 52422 - 44032: 0xAB6A, - 52423 - 44032: 0xC3C2, - 52424 - 44032: 0xAB6B, - 52425 - 44032: 0xC3C3, - 52426 - 44032: 0xAB6C, - 52427 - 44032: 0xAB6D, - 52428 - 44032: 0xAB6E, - 52429 - 44032: 0xAB6F, - 52430 - 44032: 0xAB70, - 52431 - 44032: 0xAB71, - 52432 - 44032: 0xC3C4, - 52433 - 44032: 0xAB72, - 52434 - 44032: 0xAB73, - 52435 - 44032: 0xAB74, - 52436 - 44032: 0xC3C5, - 52437 - 44032: 0xAB75, - 52438 - 44032: 0xAB76, - 52439 - 44032: 0xAB77, - 52440 - 44032: 0xAB78, - 52441 - 44032: 0xAB79, - 52442 - 44032: 0xAB7A, - 52443 - 44032: 0xAB81, - 52444 - 44032: 0xAB82, - 52445 - 44032: 0xAB83, - 52446 - 44032: 0xAB84, - 52447 - 44032: 0xAB85, - 52448 - 44032: 0xAB86, - 52449 - 44032: 0xAB87, - 52450 - 44032: 0xAB88, - 52451 - 44032: 0xAB89, - 52452 - 44032: 0xC3C6, - 52453 - 44032: 0xAB8A, - 52454 - 44032: 0xAB8B, - 52455 - 44032: 0xAB8C, - 52456 - 44032: 0xAB8D, - 52457 - 44032: 0xAB8E, - 52458 - 44032: 0xAB8F, - 52459 - 44032: 0xAB90, - 52460 - 44032: 0xC3C7, - 52461 - 44032: 0xAB91, - 52462 - 44032: 0xAB92, - 52463 - 44032: 0xAB93, - 52464 - 44032: 0xC3C8, - 52465 - 44032: 0xAB94, - 52466 - 44032: 0xAB95, - 52467 - 44032: 0xAB96, - 52468 - 44032: 0xAB97, - 52469 - 44032: 0xAB98, - 52470 - 44032: 0xAB99, - 52471 - 44032: 0xAB9A, - 52472 - 44032: 0xAB9B, - 52473 - 44032: 0xAB9C, - 52474 - 44032: 0xAB9D, - 52475 - 44032: 0xAB9E, - 52476 - 44032: 0xAB9F, - 52477 - 44032: 0xABA0, - 52478 - 44032: 0xAC41, - 52479 - 44032: 0xAC42, - 52480 - 44032: 0xAC43, - 52481 - 44032: 0xC3C9, - 52482 - 44032: 0xAC44, - 52483 - 44032: 0xAC45, - 52484 - 44032: 0xAC46, - 52485 - 44032: 0xAC47, - 52486 - 44032: 0xAC48, - 52487 - 44032: 0xAC49, - 52488 - 44032: 0xC3CA, - 52489 - 44032: 0xC3CB, - 52490 - 44032: 0xAC4A, - 52491 - 44032: 0xAC4B, - 52492 - 44032: 0xC3CC, - 52493 - 44032: 0xAC4C, - 52494 - 44032: 0xAC4D, - 52495 - 44032: 0xAC4E, - 52496 - 44032: 0xC3CD, - 52497 - 44032: 0xAC4F, - 52498 - 44032: 0xAC50, - 52499 - 44032: 0xAC51, - 52500 - 44032: 0xAC52, - 52501 - 44032: 0xAC53, - 52502 - 44032: 0xAC54, - 52503 - 44032: 0xAC55, - 52504 - 44032: 0xC3CE, - 52505 - 44032: 0xC3CF, - 52506 - 44032: 0xAC56, - 52507 - 44032: 0xC3D0, - 52508 - 44032: 0xAC57, - 52509 - 44032: 0xC3D1, - 52510 - 44032: 0xAC58, - 52511 - 44032: 0xAC59, - 52512 - 44032: 0xAC5A, - 52513 - 44032: 0xAC61, - 52514 - 44032: 0xAC62, - 52515 - 44032: 0xAC63, - 52516 - 44032: 0xC3D2, - 52517 - 44032: 0xAC64, - 52518 - 44032: 0xAC65, - 52519 - 44032: 0xAC66, - 52520 - 44032: 0xC3D3, - 52521 - 44032: 0xAC67, - 52522 - 44032: 0xAC68, - 52523 - 44032: 0xAC69, - 52524 - 44032: 0xC3D4, - 52525 - 44032: 0xAC6A, - 52526 - 44032: 0xAC6B, - 52527 - 44032: 0xAC6C, - 52528 - 44032: 0xAC6D, - 52529 - 44032: 0xAC6E, - 52530 - 44032: 0xAC6F, - 52531 - 44032: 0xAC70, - 52532 - 44032: 0xAC71, - 52533 - 44032: 0xAC72, - 52534 - 44032: 0xAC73, - 52535 - 44032: 0xAC74, - 52536 - 44032: 0xAC75, - 52537 - 44032: 0xC3D5, - 52538 - 44032: 0xAC76, - 52539 - 44032: 0xAC77, - 52540 - 44032: 0xAC78, - 52541 - 44032: 0xAC79, - 52542 - 44032: 0xAC7A, - 52543 - 44032: 0xAC81, - 52544 - 44032: 0xAC82, - 52545 - 44032: 0xAC83, - 52546 - 44032: 0xAC84, - 52547 - 44032: 0xAC85, - 52548 - 44032: 0xAC86, - 52549 - 44032: 0xAC87, - 52550 - 44032: 0xAC88, - 52551 - 44032: 0xAC89, - 52552 - 44032: 0xAC8A, - 52553 - 44032: 0xAC8B, - 52554 - 44032: 0xAC8C, - 52555 - 44032: 0xAC8D, - 52556 - 44032: 0xAC8E, - 52557 - 44032: 0xAC8F, - 52558 - 44032: 0xAC90, - 52559 - 44032: 0xAC91, - 52560 - 44032: 0xAC92, - 52561 - 44032: 0xAC93, - 52562 - 44032: 0xAC94, - 52563 - 44032: 0xAC95, - 52564 - 44032: 0xAC96, - 52565 - 44032: 0xAC97, - 52566 - 44032: 0xAC98, - 52567 - 44032: 0xAC99, - 52568 - 44032: 0xAC9A, - 52569 - 44032: 0xAC9B, - 52570 - 44032: 0xAC9C, - 52571 - 44032: 0xAC9D, - 52572 - 44032: 0xC3D6, - 52573 - 44032: 0xAC9E, - 52574 - 44032: 0xAC9F, - 52575 - 44032: 0xACA0, - 52576 - 44032: 0xC3D7, - 52577 - 44032: 0xAD41, - 52578 - 44032: 0xAD42, - 52579 - 44032: 0xAD43, - 52580 - 44032: 0xC3D8, - 52581 - 44032: 0xAD44, - 52582 - 44032: 0xAD45, - 52583 - 44032: 0xAD46, - 52584 - 44032: 0xAD47, - 52585 - 44032: 0xAD48, - 52586 - 44032: 0xAD49, - 52587 - 44032: 0xAD4A, - 52588 - 44032: 0xC3D9, - 52589 - 44032: 0xC3DA, - 52590 - 44032: 0xAD4B, - 52591 - 44032: 0xC3DB, - 52592 - 44032: 0xAD4C, - 52593 - 44032: 0xC3DC, - 52594 - 44032: 0xAD4D, - 52595 - 44032: 0xAD4E, - 52596 - 44032: 0xAD4F, - 52597 - 44032: 0xAD50, - 52598 - 44032: 0xAD51, - 52599 - 44032: 0xAD52, - 52600 - 44032: 0xC3DD, - 52601 - 44032: 0xAD53, - 52602 - 44032: 0xAD54, - 52603 - 44032: 0xAD55, - 52604 - 44032: 0xAD56, - 52605 - 44032: 0xAD57, - 52606 - 44032: 0xAD58, - 52607 - 44032: 0xAD59, - 52608 - 44032: 0xAD5A, - 52609 - 44032: 0xAD61, - 52610 - 44032: 0xAD62, - 52611 - 44032: 0xAD63, - 52612 - 44032: 0xAD64, - 52613 - 44032: 0xAD65, - 52614 - 44032: 0xAD66, - 52615 - 44032: 0xAD67, - 52616 - 44032: 0xC3DE, - 52617 - 44032: 0xAD68, - 52618 - 44032: 0xAD69, - 52619 - 44032: 0xAD6A, - 52620 - 44032: 0xAD6B, - 52621 - 44032: 0xAD6C, - 52622 - 44032: 0xAD6D, - 52623 - 44032: 0xAD6E, - 52624 - 44032: 0xAD6F, - 52625 - 44032: 0xAD70, - 52626 - 44032: 0xAD71, - 52627 - 44032: 0xAD72, - 52628 - 44032: 0xC3DF, - 52629 - 44032: 0xC3E0, - 52630 - 44032: 0xAD73, - 52631 - 44032: 0xAD74, - 52632 - 44032: 0xC3E1, - 52633 - 44032: 0xAD75, - 52634 - 44032: 0xAD76, - 52635 - 44032: 0xAD77, - 52636 - 44032: 0xC3E2, - 52637 - 44032: 0xAD78, - 52638 - 44032: 0xAD79, - 52639 - 44032: 0xAD7A, - 52640 - 44032: 0xAD81, - 52641 - 44032: 0xAD82, - 52642 - 44032: 0xAD83, - 52643 - 44032: 0xAD84, - 52644 - 44032: 0xC3E3, - 52645 - 44032: 0xC3E4, - 52646 - 44032: 0xAD85, - 52647 - 44032: 0xC3E5, - 52648 - 44032: 0xAD86, - 52649 - 44032: 0xC3E6, - 52650 - 44032: 0xAD87, - 52651 - 44032: 0xAD88, - 52652 - 44032: 0xAD89, - 52653 - 44032: 0xAD8A, - 52654 - 44032: 0xAD8B, - 52655 - 44032: 0xAD8C, - 52656 - 44032: 0xC3E7, - 52657 - 44032: 0xAD8D, - 52658 - 44032: 0xAD8E, - 52659 - 44032: 0xAD8F, - 52660 - 44032: 0xAD90, - 52661 - 44032: 0xAD91, - 52662 - 44032: 0xAD92, - 52663 - 44032: 0xAD93, - 52664 - 44032: 0xAD94, - 52665 - 44032: 0xAD95, - 52666 - 44032: 0xAD96, - 52667 - 44032: 0xAD97, - 52668 - 44032: 0xAD98, - 52669 - 44032: 0xAD99, - 52670 - 44032: 0xAD9A, - 52671 - 44032: 0xAD9B, - 52672 - 44032: 0xAD9C, - 52673 - 44032: 0xAD9D, - 52674 - 44032: 0xAD9E, - 52675 - 44032: 0xAD9F, - 52676 - 44032: 0xC3E8, - 52677 - 44032: 0xADA0, - 52678 - 44032: 0xAE41, - 52679 - 44032: 0xAE42, - 52680 - 44032: 0xAE43, - 52681 - 44032: 0xAE44, - 52682 - 44032: 0xAE45, - 52683 - 44032: 0xAE46, - 52684 - 44032: 0xC3E9, - 52685 - 44032: 0xAE47, - 52686 - 44032: 0xAE48, - 52687 - 44032: 0xAE49, - 52688 - 44032: 0xC3EA, - 52689 - 44032: 0xAE4A, - 52690 - 44032: 0xAE4B, - 52691 - 44032: 0xAE4C, - 52692 - 44032: 0xAE4D, - 52693 - 44032: 0xAE4E, - 52694 - 44032: 0xAE4F, - 52695 - 44032: 0xAE50, - 52696 - 44032: 0xAE51, - 52697 - 44032: 0xAE52, - 52698 - 44032: 0xAE53, - 52699 - 44032: 0xAE54, - 52700 - 44032: 0xAE55, - 52701 - 44032: 0xAE56, - 52702 - 44032: 0xAE57, - 52703 - 44032: 0xAE58, - 52704 - 44032: 0xAE59, - 52705 - 44032: 0xAE5A, - 52706 - 44032: 0xAE61, - 52707 - 44032: 0xAE62, - 52708 - 44032: 0xAE63, - 52709 - 44032: 0xAE64, - 52710 - 44032: 0xAE65, - 52711 - 44032: 0xAE66, - 52712 - 44032: 0xC3EB, - 52713 - 44032: 0xAE67, - 52714 - 44032: 0xAE68, - 52715 - 44032: 0xAE69, - 52716 - 44032: 0xC3EC, - 52717 - 44032: 0xAE6A, - 52718 - 44032: 0xAE6B, - 52719 - 44032: 0xAE6C, - 52720 - 44032: 0xC3ED, - 52721 - 44032: 0xAE6D, - 52722 - 44032: 0xAE6E, - 52723 - 44032: 0xAE6F, - 52724 - 44032: 0xAE70, - 52725 - 44032: 0xAE71, - 52726 - 44032: 0xAE72, - 52727 - 44032: 0xAE73, - 52728 - 44032: 0xC3EE, - 52729 - 44032: 0xC3EF, - 52730 - 44032: 0xAE74, - 52731 - 44032: 0xC3F0, - 52732 - 44032: 0xAE75, - 52733 - 44032: 0xC3F1, - 52734 - 44032: 0xAE76, - 52735 - 44032: 0xAE77, - 52736 - 44032: 0xAE78, - 52737 - 44032: 0xAE79, - 52738 - 44032: 0xAE7A, - 52739 - 44032: 0xAE81, - 52740 - 44032: 0xC3F2, - 52741 - 44032: 0xAE82, - 52742 - 44032: 0xAE83, - 52743 - 44032: 0xAE84, - 52744 - 44032: 0xC3F3, - 52745 - 44032: 0xAE85, - 52746 - 44032: 0xAE86, - 52747 - 44032: 0xAE87, - 52748 - 44032: 0xC3F4, - 52749 - 44032: 0xAE88, - 52750 - 44032: 0xAE89, - 52751 - 44032: 0xAE8A, - 52752 - 44032: 0xAE8B, - 52753 - 44032: 0xAE8C, - 52754 - 44032: 0xAE8D, - 52755 - 44032: 0xAE8E, - 52756 - 44032: 0xC3F5, - 52757 - 44032: 0xAE8F, - 52758 - 44032: 0xAE90, - 52759 - 44032: 0xAE91, - 52760 - 44032: 0xAE92, - 52761 - 44032: 0xC3F6, - 52762 - 44032: 0xAE93, - 52763 - 44032: 0xAE94, - 52764 - 44032: 0xAE95, - 52765 - 44032: 0xAE96, - 52766 - 44032: 0xAE97, - 52767 - 44032: 0xAE98, - 52768 - 44032: 0xC3F7, - 52769 - 44032: 0xC3F8, - 52770 - 44032: 0xAE99, - 52771 - 44032: 0xAE9A, - 52772 - 44032: 0xC3F9, - 52773 - 44032: 0xAE9B, - 52774 - 44032: 0xAE9C, - 52775 - 44032: 0xAE9D, - 52776 - 44032: 0xC3FA, - 52777 - 44032: 0xAE9E, - 52778 - 44032: 0xAE9F, - 52779 - 44032: 0xAEA0, - 52780 - 44032: 0xAF41, - 52781 - 44032: 0xAF42, - 52782 - 44032: 0xAF43, - 52783 - 44032: 0xAF44, - 52784 - 44032: 0xC3FB, - 52785 - 44032: 0xC3FC, - 52786 - 44032: 0xAF45, - 52787 - 44032: 0xC3FD, - 52788 - 44032: 0xAF46, - 52789 - 44032: 0xC3FE, - 52790 - 44032: 0xAF47, - 52791 - 44032: 0xAF48, - 52792 - 44032: 0xAF49, - 52793 - 44032: 0xAF4A, - 52794 - 44032: 0xAF4B, - 52795 - 44032: 0xAF4C, - 52796 - 44032: 0xAF4D, - 52797 - 44032: 0xAF4E, - 52798 - 44032: 0xAF4F, - 52799 - 44032: 0xAF50, - 52800 - 44032: 0xAF51, - 52801 - 44032: 0xAF52, - 52802 - 44032: 0xAF53, - 52803 - 44032: 0xAF54, - 52804 - 44032: 0xAF55, - 52805 - 44032: 0xAF56, - 52806 - 44032: 0xAF57, - 52807 - 44032: 0xAF58, - 52808 - 44032: 0xAF59, - 52809 - 44032: 0xAF5A, - 52810 - 44032: 0xAF61, - 52811 - 44032: 0xAF62, - 52812 - 44032: 0xAF63, - 52813 - 44032: 0xAF64, - 52814 - 44032: 0xAF65, - 52815 - 44032: 0xAF66, - 52816 - 44032: 0xAF67, - 52817 - 44032: 0xAF68, - 52818 - 44032: 0xAF69, - 52819 - 44032: 0xAF6A, - 52820 - 44032: 0xAF6B, - 52821 - 44032: 0xAF6C, - 52822 - 44032: 0xAF6D, - 52823 - 44032: 0xAF6E, - 52824 - 44032: 0xC4A1, - 52825 - 44032: 0xC4A2, - 52826 - 44032: 0xAF6F, - 52827 - 44032: 0xAF70, - 52828 - 44032: 0xC4A3, - 52829 - 44032: 0xAF71, - 52830 - 44032: 0xAF72, - 52831 - 44032: 0xC4A4, - 52832 - 44032: 0xC4A5, - 52833 - 44032: 0xC4A6, - 52834 - 44032: 0xAF73, - 52835 - 44032: 0xAF74, - 52836 - 44032: 0xAF75, - 52837 - 44032: 0xAF76, - 52838 - 44032: 0xAF77, - 52839 - 44032: 0xAF78, - 52840 - 44032: 0xC4A7, - 52841 - 44032: 0xC4A8, - 52842 - 44032: 0xAF79, - 52843 - 44032: 0xC4A9, - 52844 - 44032: 0xAF7A, - 52845 - 44032: 0xC4AA, - 52846 - 44032: 0xAF81, - 52847 - 44032: 0xAF82, - 52848 - 44032: 0xAF83, - 52849 - 44032: 0xAF84, - 52850 - 44032: 0xAF85, - 52851 - 44032: 0xAF86, - 52852 - 44032: 0xC4AB, - 52853 - 44032: 0xC4AC, - 52854 - 44032: 0xAF87, - 52855 - 44032: 0xAF88, - 52856 - 44032: 0xC4AD, - 52857 - 44032: 0xAF89, - 52858 - 44032: 0xAF8A, - 52859 - 44032: 0xAF8B, - 52860 - 44032: 0xC4AE, - 52861 - 44032: 0xAF8C, - 52862 - 44032: 0xAF8D, - 52863 - 44032: 0xAF8E, - 52864 - 44032: 0xAF8F, - 52865 - 44032: 0xAF90, - 52866 - 44032: 0xAF91, - 52867 - 44032: 0xAF92, - 52868 - 44032: 0xC4AF, - 52869 - 44032: 0xC4B0, - 52870 - 44032: 0xAF93, - 52871 - 44032: 0xC4B1, - 52872 - 44032: 0xAF94, - 52873 - 44032: 0xC4B2, - 52874 - 44032: 0xAF95, - 52875 - 44032: 0xAF96, - 52876 - 44032: 0xAF97, - 52877 - 44032: 0xAF98, - 52878 - 44032: 0xAF99, - 52879 - 44032: 0xAF9A, - 52880 - 44032: 0xC4B3, - 52881 - 44032: 0xC4B4, - 52882 - 44032: 0xAF9B, - 52883 - 44032: 0xAF9C, - 52884 - 44032: 0xC4B5, - 52885 - 44032: 0xAF9D, - 52886 - 44032: 0xAF9E, - 52887 - 44032: 0xAF9F, - 52888 - 44032: 0xC4B6, - 52889 - 44032: 0xAFA0, - 52890 - 44032: 0xB041, - 52891 - 44032: 0xB042, - 52892 - 44032: 0xB043, - 52893 - 44032: 0xB044, - 52894 - 44032: 0xB045, - 52895 - 44032: 0xB046, - 52896 - 44032: 0xC4B7, - 52897 - 44032: 0xC4B8, - 52898 - 44032: 0xB047, - 52899 - 44032: 0xC4B9, - 52900 - 44032: 0xC4BA, - 52901 - 44032: 0xC4BB, - 52902 - 44032: 0xB048, - 52903 - 44032: 0xB049, - 52904 - 44032: 0xB04A, - 52905 - 44032: 0xB04B, - 52906 - 44032: 0xB04C, - 52907 - 44032: 0xB04D, - 52908 - 44032: 0xC4BC, - 52909 - 44032: 0xC4BD, - 52910 - 44032: 0xB04E, - 52911 - 44032: 0xB04F, - 52912 - 44032: 0xB050, - 52913 - 44032: 0xB051, - 52914 - 44032: 0xB052, - 52915 - 44032: 0xB053, - 52916 - 44032: 0xB054, - 52917 - 44032: 0xB055, - 52918 - 44032: 0xB056, - 52919 - 44032: 0xB057, - 52920 - 44032: 0xB058, - 52921 - 44032: 0xB059, - 52922 - 44032: 0xB05A, - 52923 - 44032: 0xB061, - 52924 - 44032: 0xB062, - 52925 - 44032: 0xB063, - 52926 - 44032: 0xB064, - 52927 - 44032: 0xB065, - 52928 - 44032: 0xB066, - 52929 - 44032: 0xC4BE, - 52930 - 44032: 0xB067, - 52931 - 44032: 0xB068, - 52932 - 44032: 0xB069, - 52933 - 44032: 0xB06A, - 52934 - 44032: 0xB06B, - 52935 - 44032: 0xB06C, - 52936 - 44032: 0xB06D, - 52937 - 44032: 0xB06E, - 52938 - 44032: 0xB06F, - 52939 - 44032: 0xB070, - 52940 - 44032: 0xB071, - 52941 - 44032: 0xB072, - 52942 - 44032: 0xB073, - 52943 - 44032: 0xB074, - 52944 - 44032: 0xB075, - 52945 - 44032: 0xB076, - 52946 - 44032: 0xB077, - 52947 - 44032: 0xB078, - 52948 - 44032: 0xB079, - 52949 - 44032: 0xB07A, - 52950 - 44032: 0xB081, - 52951 - 44032: 0xB082, - 52952 - 44032: 0xB083, - 52953 - 44032: 0xB084, - 52954 - 44032: 0xB085, - 52955 - 44032: 0xB086, - 52956 - 44032: 0xB087, - 52957 - 44032: 0xB088, - 52958 - 44032: 0xB089, - 52959 - 44032: 0xB08A, - 52960 - 44032: 0xB08B, - 52961 - 44032: 0xB08C, - 52962 - 44032: 0xB08D, - 52963 - 44032: 0xB08E, - 52964 - 44032: 0xC4BF, - 52965 - 44032: 0xC4C0, - 52966 - 44032: 0xB08F, - 52967 - 44032: 0xB090, - 52968 - 44032: 0xC4C1, - 52969 - 44032: 0xB091, - 52970 - 44032: 0xB092, - 52971 - 44032: 0xC4C2, - 52972 - 44032: 0xC4C3, - 52973 - 44032: 0xB093, - 52974 - 44032: 0xB094, - 52975 - 44032: 0xB095, - 52976 - 44032: 0xB096, - 52977 - 44032: 0xB097, - 52978 - 44032: 0xB098, - 52979 - 44032: 0xB099, - 52980 - 44032: 0xC4C4, - 52981 - 44032: 0xC4C5, - 52982 - 44032: 0xB09A, - 52983 - 44032: 0xC4C6, - 52984 - 44032: 0xC4C7, - 52985 - 44032: 0xC4C8, - 52986 - 44032: 0xB09B, - 52987 - 44032: 0xB09C, - 52988 - 44032: 0xB09D, - 52989 - 44032: 0xB09E, - 52990 - 44032: 0xB09F, - 52991 - 44032: 0xB0A0, - 52992 - 44032: 0xC4C9, - 52993 - 44032: 0xC4CA, - 52994 - 44032: 0xB141, - 52995 - 44032: 0xB142, - 52996 - 44032: 0xC4CB, - 52997 - 44032: 0xB143, - 52998 - 44032: 0xB144, - 52999 - 44032: 0xB145, - 53000 - 44032: 0xC4CC, - 53001 - 44032: 0xB146, - 53002 - 44032: 0xB147, - 53003 - 44032: 0xB148, - 53004 - 44032: 0xB149, - 53005 - 44032: 0xB14A, - 53006 - 44032: 0xB14B, - 53007 - 44032: 0xB14C, - 53008 - 44032: 0xC4CD, - 53009 - 44032: 0xC4CE, - 53010 - 44032: 0xB14D, - 53011 - 44032: 0xC4CF, - 53012 - 44032: 0xB14E, - 53013 - 44032: 0xC4D0, - 53014 - 44032: 0xB14F, - 53015 - 44032: 0xB150, - 53016 - 44032: 0xB151, - 53017 - 44032: 0xB152, - 53018 - 44032: 0xB153, - 53019 - 44032: 0xB154, - 53020 - 44032: 0xC4D1, - 53021 - 44032: 0xB155, - 53022 - 44032: 0xB156, - 53023 - 44032: 0xB157, - 53024 - 44032: 0xC4D2, - 53025 - 44032: 0xB158, - 53026 - 44032: 0xB159, - 53027 - 44032: 0xB15A, - 53028 - 44032: 0xC4D3, - 53029 - 44032: 0xB161, - 53030 - 44032: 0xB162, - 53031 - 44032: 0xB163, - 53032 - 44032: 0xB164, - 53033 - 44032: 0xB165, - 53034 - 44032: 0xB166, - 53035 - 44032: 0xB167, - 53036 - 44032: 0xC4D4, - 53037 - 44032: 0xC4D5, - 53038 - 44032: 0xB168, - 53039 - 44032: 0xC4D6, - 53040 - 44032: 0xC4D7, - 53041 - 44032: 0xC4D8, - 53042 - 44032: 0xB169, - 53043 - 44032: 0xB16A, - 53044 - 44032: 0xB16B, - 53045 - 44032: 0xB16C, - 53046 - 44032: 0xB16D, - 53047 - 44032: 0xB16E, - 53048 - 44032: 0xC4D9, - 53049 - 44032: 0xB16F, - 53050 - 44032: 0xB170, - 53051 - 44032: 0xB171, - 53052 - 44032: 0xB172, - 53053 - 44032: 0xB173, - 53054 - 44032: 0xB174, - 53055 - 44032: 0xB175, - 53056 - 44032: 0xB176, - 53057 - 44032: 0xB177, - 53058 - 44032: 0xB178, - 53059 - 44032: 0xB179, - 53060 - 44032: 0xB17A, - 53061 - 44032: 0xB181, - 53062 - 44032: 0xB182, - 53063 - 44032: 0xB183, - 53064 - 44032: 0xB184, - 53065 - 44032: 0xB185, - 53066 - 44032: 0xB186, - 53067 - 44032: 0xB187, - 53068 - 44032: 0xB188, - 53069 - 44032: 0xB189, - 53070 - 44032: 0xB18A, - 53071 - 44032: 0xB18B, - 53072 - 44032: 0xB18C, - 53073 - 44032: 0xB18D, - 53074 - 44032: 0xB18E, - 53075 - 44032: 0xB18F, - 53076 - 44032: 0xC4DA, - 53077 - 44032: 0xC4DB, - 53078 - 44032: 0xB190, - 53079 - 44032: 0xB191, - 53080 - 44032: 0xC4DC, - 53081 - 44032: 0xB192, - 53082 - 44032: 0xB193, - 53083 - 44032: 0xB194, - 53084 - 44032: 0xC4DD, - 53085 - 44032: 0xB195, - 53086 - 44032: 0xB196, - 53087 - 44032: 0xB197, - 53088 - 44032: 0xB198, - 53089 - 44032: 0xB199, - 53090 - 44032: 0xB19A, - 53091 - 44032: 0xB19B, - 53092 - 44032: 0xC4DE, - 53093 - 44032: 0xC4DF, - 53094 - 44032: 0xB19C, - 53095 - 44032: 0xC4E0, - 53096 - 44032: 0xB19D, - 53097 - 44032: 0xC4E1, - 53098 - 44032: 0xB19E, - 53099 - 44032: 0xB19F, - 53100 - 44032: 0xB1A0, - 53101 - 44032: 0xB241, - 53102 - 44032: 0xB242, - 53103 - 44032: 0xB243, - 53104 - 44032: 0xC4E2, - 53105 - 44032: 0xC4E3, - 53106 - 44032: 0xB244, - 53107 - 44032: 0xB245, - 53108 - 44032: 0xC4E4, - 53109 - 44032: 0xB246, - 53110 - 44032: 0xB247, - 53111 - 44032: 0xB248, - 53112 - 44032: 0xC4E5, - 53113 - 44032: 0xB249, - 53114 - 44032: 0xB24A, - 53115 - 44032: 0xB24B, - 53116 - 44032: 0xB24C, - 53117 - 44032: 0xB24D, - 53118 - 44032: 0xB24E, - 53119 - 44032: 0xB24F, - 53120 - 44032: 0xC4E6, - 53121 - 44032: 0xB250, - 53122 - 44032: 0xB251, - 53123 - 44032: 0xB252, - 53124 - 44032: 0xB253, - 53125 - 44032: 0xC4E7, - 53126 - 44032: 0xB254, - 53127 - 44032: 0xB255, - 53128 - 44032: 0xB256, - 53129 - 44032: 0xB257, - 53130 - 44032: 0xB258, - 53131 - 44032: 0xB259, - 53132 - 44032: 0xC4E8, - 53133 - 44032: 0xB25A, - 53134 - 44032: 0xB261, - 53135 - 44032: 0xB262, - 53136 - 44032: 0xB263, - 53137 - 44032: 0xB264, - 53138 - 44032: 0xB265, - 53139 - 44032: 0xB266, - 53140 - 44032: 0xB267, - 53141 - 44032: 0xB268, - 53142 - 44032: 0xB269, - 53143 - 44032: 0xB26A, - 53144 - 44032: 0xB26B, - 53145 - 44032: 0xB26C, - 53146 - 44032: 0xB26D, - 53147 - 44032: 0xB26E, - 53148 - 44032: 0xB26F, - 53149 - 44032: 0xB270, - 53150 - 44032: 0xB271, - 53151 - 44032: 0xB272, - 53152 - 44032: 0xB273, - 53153 - 44032: 0xC4E9, - 53154 - 44032: 0xB274, - 53155 - 44032: 0xB275, - 53156 - 44032: 0xB276, - 53157 - 44032: 0xB277, - 53158 - 44032: 0xB278, - 53159 - 44032: 0xB279, - 53160 - 44032: 0xC4EA, - 53161 - 44032: 0xB27A, - 53162 - 44032: 0xB281, - 53163 - 44032: 0xB282, - 53164 - 44032: 0xB283, - 53165 - 44032: 0xB284, - 53166 - 44032: 0xB285, - 53167 - 44032: 0xB286, - 53168 - 44032: 0xC4EB, - 53169 - 44032: 0xB287, - 53170 - 44032: 0xB288, - 53171 - 44032: 0xB289, - 53172 - 44032: 0xB28A, - 53173 - 44032: 0xB28B, - 53174 - 44032: 0xB28C, - 53175 - 44032: 0xB28D, - 53176 - 44032: 0xB28E, - 53177 - 44032: 0xB28F, - 53178 - 44032: 0xB290, - 53179 - 44032: 0xB291, - 53180 - 44032: 0xB292, - 53181 - 44032: 0xB293, - 53182 - 44032: 0xB294, - 53183 - 44032: 0xB295, - 53184 - 44032: 0xB296, - 53185 - 44032: 0xB297, - 53186 - 44032: 0xB298, - 53187 - 44032: 0xB299, - 53188 - 44032: 0xC4EC, - 53189 - 44032: 0xB29A, - 53190 - 44032: 0xB29B, - 53191 - 44032: 0xB29C, - 53192 - 44032: 0xB29D, - 53193 - 44032: 0xB29E, - 53194 - 44032: 0xB29F, - 53195 - 44032: 0xB2A0, - 53196 - 44032: 0xB341, - 53197 - 44032: 0xB342, - 53198 - 44032: 0xB343, - 53199 - 44032: 0xB344, - 53200 - 44032: 0xB345, - 53201 - 44032: 0xB346, - 53202 - 44032: 0xB347, - 53203 - 44032: 0xB348, - 53204 - 44032: 0xB349, - 53205 - 44032: 0xB34A, - 53206 - 44032: 0xB34B, - 53207 - 44032: 0xB34C, - 53208 - 44032: 0xB34D, - 53209 - 44032: 0xB34E, - 53210 - 44032: 0xB34F, - 53211 - 44032: 0xB350, - 53212 - 44032: 0xB351, - 53213 - 44032: 0xB352, - 53214 - 44032: 0xB353, - 53215 - 44032: 0xB354, - 53216 - 44032: 0xC4ED, - 53217 - 44032: 0xC4EE, - 53218 - 44032: 0xB355, - 53219 - 44032: 0xB356, - 53220 - 44032: 0xC4EF, - 53221 - 44032: 0xB357, - 53222 - 44032: 0xB358, - 53223 - 44032: 0xB359, - 53224 - 44032: 0xC4F0, - 53225 - 44032: 0xB35A, - 53226 - 44032: 0xB361, - 53227 - 44032: 0xB362, - 53228 - 44032: 0xB363, - 53229 - 44032: 0xB364, - 53230 - 44032: 0xB365, - 53231 - 44032: 0xB366, - 53232 - 44032: 0xC4F1, - 53233 - 44032: 0xC4F2, - 53234 - 44032: 0xB367, - 53235 - 44032: 0xC4F3, - 53236 - 44032: 0xB368, - 53237 - 44032: 0xC4F4, - 53238 - 44032: 0xB369, - 53239 - 44032: 0xB36A, - 53240 - 44032: 0xB36B, - 53241 - 44032: 0xB36C, - 53242 - 44032: 0xB36D, - 53243 - 44032: 0xB36E, - 53244 - 44032: 0xC4F5, - 53245 - 44032: 0xB36F, - 53246 - 44032: 0xB370, - 53247 - 44032: 0xB371, - 53248 - 44032: 0xC4F6, - 53249 - 44032: 0xB372, - 53250 - 44032: 0xB373, - 53251 - 44032: 0xB374, - 53252 - 44032: 0xC4F7, - 53253 - 44032: 0xB375, - 53254 - 44032: 0xB376, - 53255 - 44032: 0xB377, - 53256 - 44032: 0xB378, - 53257 - 44032: 0xB379, - 53258 - 44032: 0xB37A, - 53259 - 44032: 0xB381, - 53260 - 44032: 0xB382, - 53261 - 44032: 0xB383, - 53262 - 44032: 0xB384, - 53263 - 44032: 0xB385, - 53264 - 44032: 0xB386, - 53265 - 44032: 0xC4F8, - 53266 - 44032: 0xB387, - 53267 - 44032: 0xB388, - 53268 - 44032: 0xB389, - 53269 - 44032: 0xB38A, - 53270 - 44032: 0xB38B, - 53271 - 44032: 0xB38C, - 53272 - 44032: 0xC4F9, - 53273 - 44032: 0xB38D, - 53274 - 44032: 0xB38E, - 53275 - 44032: 0xB38F, - 53276 - 44032: 0xB390, - 53277 - 44032: 0xB391, - 53278 - 44032: 0xB392, - 53279 - 44032: 0xB393, - 53280 - 44032: 0xB394, - 53281 - 44032: 0xB395, - 53282 - 44032: 0xB396, - 53283 - 44032: 0xB397, - 53284 - 44032: 0xB398, - 53285 - 44032: 0xB399, - 53286 - 44032: 0xB39A, - 53287 - 44032: 0xB39B, - 53288 - 44032: 0xB39C, - 53289 - 44032: 0xB39D, - 53290 - 44032: 0xB39E, - 53291 - 44032: 0xB39F, - 53292 - 44032: 0xB3A0, - 53293 - 44032: 0xC4FA, - 53294 - 44032: 0xB441, - 53295 - 44032: 0xB442, - 53296 - 44032: 0xB443, - 53297 - 44032: 0xB444, - 53298 - 44032: 0xB445, - 53299 - 44032: 0xB446, - 53300 - 44032: 0xC4FB, - 53301 - 44032: 0xC4FC, - 53302 - 44032: 0xB447, - 53303 - 44032: 0xB448, - 53304 - 44032: 0xC4FD, - 53305 - 44032: 0xB449, - 53306 - 44032: 0xB44A, - 53307 - 44032: 0xB44B, - 53308 - 44032: 0xC4FE, - 53309 - 44032: 0xB44C, - 53310 - 44032: 0xB44D, - 53311 - 44032: 0xB44E, - 53312 - 44032: 0xB44F, - 53313 - 44032: 0xB450, - 53314 - 44032: 0xB451, - 53315 - 44032: 0xB452, - 53316 - 44032: 0xC5A1, - 53317 - 44032: 0xC5A2, - 53318 - 44032: 0xB453, - 53319 - 44032: 0xC5A3, - 53320 - 44032: 0xB454, - 53321 - 44032: 0xC5A4, - 53322 - 44032: 0xB455, - 53323 - 44032: 0xB456, - 53324 - 44032: 0xB457, - 53325 - 44032: 0xB458, - 53326 - 44032: 0xB459, - 53327 - 44032: 0xB45A, - 53328 - 44032: 0xC5A5, - 53329 - 44032: 0xB461, - 53330 - 44032: 0xB462, - 53331 - 44032: 0xB463, - 53332 - 44032: 0xC5A6, - 53333 - 44032: 0xB464, - 53334 - 44032: 0xB465, - 53335 - 44032: 0xB466, - 53336 - 44032: 0xC5A7, - 53337 - 44032: 0xB467, - 53338 - 44032: 0xB468, - 53339 - 44032: 0xB469, - 53340 - 44032: 0xB46A, - 53341 - 44032: 0xB46B, - 53342 - 44032: 0xB46C, - 53343 - 44032: 0xB46D, - 53344 - 44032: 0xC5A8, - 53345 - 44032: 0xB46E, - 53346 - 44032: 0xB46F, - 53347 - 44032: 0xB470, - 53348 - 44032: 0xB471, - 53349 - 44032: 0xB472, - 53350 - 44032: 0xB473, - 53351 - 44032: 0xB474, - 53352 - 44032: 0xB475, - 53353 - 44032: 0xB476, - 53354 - 44032: 0xB477, - 53355 - 44032: 0xB478, - 53356 - 44032: 0xC5A9, - 53357 - 44032: 0xC5AA, - 53358 - 44032: 0xB479, - 53359 - 44032: 0xB47A, - 53360 - 44032: 0xC5AB, - 53361 - 44032: 0xB481, - 53362 - 44032: 0xB482, - 53363 - 44032: 0xB483, - 53364 - 44032: 0xC5AC, - 53365 - 44032: 0xB484, - 53366 - 44032: 0xB485, - 53367 - 44032: 0xB486, - 53368 - 44032: 0xB487, - 53369 - 44032: 0xB488, - 53370 - 44032: 0xB489, - 53371 - 44032: 0xB48A, - 53372 - 44032: 0xC5AD, - 53373 - 44032: 0xC5AE, - 53374 - 44032: 0xB48B, - 53375 - 44032: 0xB48C, - 53376 - 44032: 0xB48D, - 53377 - 44032: 0xC5AF, - 53378 - 44032: 0xB48E, - 53379 - 44032: 0xB48F, - 53380 - 44032: 0xB490, - 53381 - 44032: 0xB491, - 53382 - 44032: 0xB492, - 53383 - 44032: 0xB493, - 53384 - 44032: 0xB494, - 53385 - 44032: 0xB495, - 53386 - 44032: 0xB496, - 53387 - 44032: 0xB497, - 53388 - 44032: 0xB498, - 53389 - 44032: 0xB499, - 53390 - 44032: 0xB49A, - 53391 - 44032: 0xB49B, - 53392 - 44032: 0xB49C, - 53393 - 44032: 0xB49D, - 53394 - 44032: 0xB49E, - 53395 - 44032: 0xB49F, - 53396 - 44032: 0xB4A0, - 53397 - 44032: 0xB541, - 53398 - 44032: 0xB542, - 53399 - 44032: 0xB543, - 53400 - 44032: 0xB544, - 53401 - 44032: 0xB545, - 53402 - 44032: 0xB546, - 53403 - 44032: 0xB547, - 53404 - 44032: 0xB548, - 53405 - 44032: 0xB549, - 53406 - 44032: 0xB54A, - 53407 - 44032: 0xB54B, - 53408 - 44032: 0xB54C, - 53409 - 44032: 0xB54D, - 53410 - 44032: 0xB54E, - 53411 - 44032: 0xB54F, - 53412 - 44032: 0xC5B0, - 53413 - 44032: 0xC5B1, - 53414 - 44032: 0xB550, - 53415 - 44032: 0xB551, - 53416 - 44032: 0xC5B2, - 53417 - 44032: 0xB552, - 53418 - 44032: 0xB553, - 53419 - 44032: 0xB554, - 53420 - 44032: 0xC5B3, - 53421 - 44032: 0xB555, - 53422 - 44032: 0xB556, - 53423 - 44032: 0xB557, - 53424 - 44032: 0xB558, - 53425 - 44032: 0xB559, - 53426 - 44032: 0xB55A, - 53427 - 44032: 0xB561, - 53428 - 44032: 0xC5B4, - 53429 - 44032: 0xC5B5, - 53430 - 44032: 0xB562, - 53431 - 44032: 0xC5B6, - 53432 - 44032: 0xB563, - 53433 - 44032: 0xC5B7, - 53434 - 44032: 0xB564, - 53435 - 44032: 0xB565, - 53436 - 44032: 0xB566, - 53437 - 44032: 0xB567, - 53438 - 44032: 0xB568, - 53439 - 44032: 0xB569, - 53440 - 44032: 0xC5B8, - 53441 - 44032: 0xC5B9, - 53442 - 44032: 0xB56A, - 53443 - 44032: 0xB56B, - 53444 - 44032: 0xC5BA, - 53445 - 44032: 0xB56C, - 53446 - 44032: 0xB56D, - 53447 - 44032: 0xB56E, - 53448 - 44032: 0xC5BB, - 53449 - 44032: 0xC5BC, - 53450 - 44032: 0xB56F, - 53451 - 44032: 0xB570, - 53452 - 44032: 0xB571, - 53453 - 44032: 0xB572, - 53454 - 44032: 0xB573, - 53455 - 44032: 0xB574, - 53456 - 44032: 0xC5BD, - 53457 - 44032: 0xC5BE, - 53458 - 44032: 0xB575, - 53459 - 44032: 0xC5BF, - 53460 - 44032: 0xC5C0, - 53461 - 44032: 0xC5C1, - 53462 - 44032: 0xB576, - 53463 - 44032: 0xB577, - 53464 - 44032: 0xB578, - 53465 - 44032: 0xB579, - 53466 - 44032: 0xB57A, - 53467 - 44032: 0xB581, - 53468 - 44032: 0xC5C2, - 53469 - 44032: 0xC5C3, - 53470 - 44032: 0xB582, - 53471 - 44032: 0xB583, - 53472 - 44032: 0xC5C4, - 53473 - 44032: 0xB584, - 53474 - 44032: 0xB585, - 53475 - 44032: 0xB586, - 53476 - 44032: 0xC5C5, - 53477 - 44032: 0xB587, - 53478 - 44032: 0xB588, - 53479 - 44032: 0xB589, - 53480 - 44032: 0xB58A, - 53481 - 44032: 0xB58B, - 53482 - 44032: 0xB58C, - 53483 - 44032: 0xB58D, - 53484 - 44032: 0xC5C6, - 53485 - 44032: 0xC5C7, - 53486 - 44032: 0xB58E, - 53487 - 44032: 0xC5C8, - 53488 - 44032: 0xC5C9, - 53489 - 44032: 0xC5CA, - 53490 - 44032: 0xB58F, - 53491 - 44032: 0xB590, - 53492 - 44032: 0xB591, - 53493 - 44032: 0xB592, - 53494 - 44032: 0xB593, - 53495 - 44032: 0xB594, - 53496 - 44032: 0xC5CB, - 53497 - 44032: 0xB595, - 53498 - 44032: 0xB596, - 53499 - 44032: 0xB597, - 53500 - 44032: 0xB598, - 53501 - 44032: 0xB599, - 53502 - 44032: 0xB59A, - 53503 - 44032: 0xB59B, - 53504 - 44032: 0xB59C, - 53505 - 44032: 0xB59D, - 53506 - 44032: 0xB59E, - 53507 - 44032: 0xB59F, - 53508 - 44032: 0xB5A0, - 53509 - 44032: 0xB641, - 53510 - 44032: 0xB642, - 53511 - 44032: 0xB643, - 53512 - 44032: 0xB644, - 53513 - 44032: 0xB645, - 53514 - 44032: 0xB646, - 53515 - 44032: 0xB647, - 53516 - 44032: 0xB648, - 53517 - 44032: 0xC5CC, - 53518 - 44032: 0xB649, - 53519 - 44032: 0xB64A, - 53520 - 44032: 0xB64B, - 53521 - 44032: 0xB64C, - 53522 - 44032: 0xB64D, - 53523 - 44032: 0xB64E, - 53524 - 44032: 0xB64F, - 53525 - 44032: 0xB650, - 53526 - 44032: 0xB651, - 53527 - 44032: 0xB652, - 53528 - 44032: 0xB653, - 53529 - 44032: 0xB654, - 53530 - 44032: 0xB655, - 53531 - 44032: 0xB656, - 53532 - 44032: 0xB657, - 53533 - 44032: 0xB658, - 53534 - 44032: 0xB659, - 53535 - 44032: 0xB65A, - 53536 - 44032: 0xB661, - 53537 - 44032: 0xB662, - 53538 - 44032: 0xB663, - 53539 - 44032: 0xB664, - 53540 - 44032: 0xB665, - 53541 - 44032: 0xB666, - 53542 - 44032: 0xB667, - 53543 - 44032: 0xB668, - 53544 - 44032: 0xB669, - 53545 - 44032: 0xB66A, - 53546 - 44032: 0xB66B, - 53547 - 44032: 0xB66C, - 53548 - 44032: 0xB66D, - 53549 - 44032: 0xB66E, - 53550 - 44032: 0xB66F, - 53551 - 44032: 0xB670, - 53552 - 44032: 0xC5CD, - 53553 - 44032: 0xC5CE, - 53554 - 44032: 0xB671, - 53555 - 44032: 0xB672, - 53556 - 44032: 0xC5CF, - 53557 - 44032: 0xB673, - 53558 - 44032: 0xB674, - 53559 - 44032: 0xB675, - 53560 - 44032: 0xC5D0, - 53561 - 44032: 0xB676, - 53562 - 44032: 0xC5D1, - 53563 - 44032: 0xB677, - 53564 - 44032: 0xB678, - 53565 - 44032: 0xB679, - 53566 - 44032: 0xB67A, - 53567 - 44032: 0xB681, - 53568 - 44032: 0xC5D2, - 53569 - 44032: 0xC5D3, - 53570 - 44032: 0xB682, - 53571 - 44032: 0xC5D4, - 53572 - 44032: 0xC5D5, - 53573 - 44032: 0xC5D6, - 53574 - 44032: 0xB683, - 53575 - 44032: 0xB684, - 53576 - 44032: 0xB685, - 53577 - 44032: 0xB686, - 53578 - 44032: 0xB687, - 53579 - 44032: 0xB688, - 53580 - 44032: 0xC5D7, - 53581 - 44032: 0xC5D8, - 53582 - 44032: 0xB689, - 53583 - 44032: 0xB68A, - 53584 - 44032: 0xC5D9, - 53585 - 44032: 0xB68B, - 53586 - 44032: 0xB68C, - 53587 - 44032: 0xB68D, - 53588 - 44032: 0xC5DA, - 53589 - 44032: 0xB68E, - 53590 - 44032: 0xB68F, - 53591 - 44032: 0xB690, - 53592 - 44032: 0xB691, - 53593 - 44032: 0xB692, - 53594 - 44032: 0xB693, - 53595 - 44032: 0xB694, - 53596 - 44032: 0xC5DB, - 53597 - 44032: 0xC5DC, - 53598 - 44032: 0xB695, - 53599 - 44032: 0xC5DD, - 53600 - 44032: 0xB696, - 53601 - 44032: 0xC5DE, - 53602 - 44032: 0xB697, - 53603 - 44032: 0xB698, - 53604 - 44032: 0xB699, - 53605 - 44032: 0xB69A, - 53606 - 44032: 0xB69B, - 53607 - 44032: 0xB69C, - 53608 - 44032: 0xC5DF, - 53609 - 44032: 0xB69D, - 53610 - 44032: 0xB69E, - 53611 - 44032: 0xB69F, - 53612 - 44032: 0xC5E0, - 53613 - 44032: 0xB6A0, - 53614 - 44032: 0xB741, - 53615 - 44032: 0xB742, - 53616 - 44032: 0xB743, - 53617 - 44032: 0xB744, - 53618 - 44032: 0xB745, - 53619 - 44032: 0xB746, - 53620 - 44032: 0xB747, - 53621 - 44032: 0xB748, - 53622 - 44032: 0xB749, - 53623 - 44032: 0xB74A, - 53624 - 44032: 0xB74B, - 53625 - 44032: 0xB74C, - 53626 - 44032: 0xB74D, - 53627 - 44032: 0xB74E, - 53628 - 44032: 0xC5E1, - 53629 - 44032: 0xB74F, - 53630 - 44032: 0xB750, - 53631 - 44032: 0xB751, - 53632 - 44032: 0xB752, - 53633 - 44032: 0xB753, - 53634 - 44032: 0xB754, - 53635 - 44032: 0xB755, - 53636 - 44032: 0xC5E2, - 53637 - 44032: 0xB756, - 53638 - 44032: 0xB757, - 53639 - 44032: 0xB758, - 53640 - 44032: 0xC5E3, - 53641 - 44032: 0xB759, - 53642 - 44032: 0xB75A, - 53643 - 44032: 0xB761, - 53644 - 44032: 0xB762, - 53645 - 44032: 0xB763, - 53646 - 44032: 0xB764, - 53647 - 44032: 0xB765, - 53648 - 44032: 0xB766, - 53649 - 44032: 0xB767, - 53650 - 44032: 0xB768, - 53651 - 44032: 0xB769, - 53652 - 44032: 0xB76A, - 53653 - 44032: 0xB76B, - 53654 - 44032: 0xB76C, - 53655 - 44032: 0xB76D, - 53656 - 44032: 0xB76E, - 53657 - 44032: 0xB76F, - 53658 - 44032: 0xB770, - 53659 - 44032: 0xB771, - 53660 - 44032: 0xB772, - 53661 - 44032: 0xB773, - 53662 - 44032: 0xB774, - 53663 - 44032: 0xB775, - 53664 - 44032: 0xC5E4, - 53665 - 44032: 0xC5E5, - 53666 - 44032: 0xB776, - 53667 - 44032: 0xB777, - 53668 - 44032: 0xC5E6, - 53669 - 44032: 0xB778, - 53670 - 44032: 0xB779, - 53671 - 44032: 0xB77A, - 53672 - 44032: 0xC5E7, - 53673 - 44032: 0xB781, - 53674 - 44032: 0xB782, - 53675 - 44032: 0xB783, - 53676 - 44032: 0xB784, - 53677 - 44032: 0xB785, - 53678 - 44032: 0xB786, - 53679 - 44032: 0xB787, - 53680 - 44032: 0xC5E8, - 53681 - 44032: 0xC5E9, - 53682 - 44032: 0xB788, - 53683 - 44032: 0xC5EA, - 53684 - 44032: 0xB789, - 53685 - 44032: 0xC5EB, - 53686 - 44032: 0xB78A, - 53687 - 44032: 0xB78B, - 53688 - 44032: 0xB78C, - 53689 - 44032: 0xB78D, - 53690 - 44032: 0xC5EC, - 53691 - 44032: 0xB78E, - 53692 - 44032: 0xC5ED, - 53693 - 44032: 0xB78F, - 53694 - 44032: 0xB790, - 53695 - 44032: 0xB791, - 53696 - 44032: 0xC5EE, - 53697 - 44032: 0xB792, - 53698 - 44032: 0xB793, - 53699 - 44032: 0xB794, - 53700 - 44032: 0xB795, - 53701 - 44032: 0xB796, - 53702 - 44032: 0xB797, - 53703 - 44032: 0xB798, - 53704 - 44032: 0xB799, - 53705 - 44032: 0xB79A, - 53706 - 44032: 0xB79B, - 53707 - 44032: 0xB79C, - 53708 - 44032: 0xB79D, - 53709 - 44032: 0xB79E, - 53710 - 44032: 0xB79F, - 53711 - 44032: 0xB7A0, - 53712 - 44032: 0xB841, - 53713 - 44032: 0xB842, - 53714 - 44032: 0xB843, - 53715 - 44032: 0xB844, - 53716 - 44032: 0xB845, - 53717 - 44032: 0xB846, - 53718 - 44032: 0xB847, - 53719 - 44032: 0xB848, - 53720 - 44032: 0xC5EF, - 53721 - 44032: 0xB849, - 53722 - 44032: 0xB84A, - 53723 - 44032: 0xB84B, - 53724 - 44032: 0xB84C, - 53725 - 44032: 0xB84D, - 53726 - 44032: 0xB84E, - 53727 - 44032: 0xB84F, - 53728 - 44032: 0xB850, - 53729 - 44032: 0xB851, - 53730 - 44032: 0xB852, - 53731 - 44032: 0xB853, - 53732 - 44032: 0xB854, - 53733 - 44032: 0xB855, - 53734 - 44032: 0xB856, - 53735 - 44032: 0xB857, - 53736 - 44032: 0xB858, - 53737 - 44032: 0xB859, - 53738 - 44032: 0xB85A, - 53739 - 44032: 0xB861, - 53740 - 44032: 0xB862, - 53741 - 44032: 0xB863, - 53742 - 44032: 0xB864, - 53743 - 44032: 0xB865, - 53744 - 44032: 0xB866, - 53745 - 44032: 0xB867, - 53746 - 44032: 0xB868, - 53747 - 44032: 0xB869, - 53748 - 44032: 0xC5F0, - 53749 - 44032: 0xB86A, - 53750 - 44032: 0xB86B, - 53751 - 44032: 0xB86C, - 53752 - 44032: 0xC5F1, - 53753 - 44032: 0xB86D, - 53754 - 44032: 0xB86E, - 53755 - 44032: 0xB86F, - 53756 - 44032: 0xB870, - 53757 - 44032: 0xB871, - 53758 - 44032: 0xB872, - 53759 - 44032: 0xB873, - 53760 - 44032: 0xB874, - 53761 - 44032: 0xB875, - 53762 - 44032: 0xB876, - 53763 - 44032: 0xB877, - 53764 - 44032: 0xB878, - 53765 - 44032: 0xB879, - 53766 - 44032: 0xB87A, - 53767 - 44032: 0xC5F2, - 53768 - 44032: 0xB881, - 53769 - 44032: 0xC5F3, - 53770 - 44032: 0xB882, - 53771 - 44032: 0xB883, - 53772 - 44032: 0xB884, - 53773 - 44032: 0xB885, - 53774 - 44032: 0xB886, - 53775 - 44032: 0xB887, - 53776 - 44032: 0xC5F4, - 53777 - 44032: 0xB888, - 53778 - 44032: 0xB889, - 53779 - 44032: 0xB88A, - 53780 - 44032: 0xB88B, - 53781 - 44032: 0xB88C, - 53782 - 44032: 0xB88D, - 53783 - 44032: 0xB88E, - 53784 - 44032: 0xB88F, - 53785 - 44032: 0xB890, - 53786 - 44032: 0xB891, - 53787 - 44032: 0xB892, - 53788 - 44032: 0xB893, - 53789 - 44032: 0xB894, - 53790 - 44032: 0xB895, - 53791 - 44032: 0xB896, - 53792 - 44032: 0xB897, - 53793 - 44032: 0xB898, - 53794 - 44032: 0xB899, - 53795 - 44032: 0xB89A, - 53796 - 44032: 0xB89B, - 53797 - 44032: 0xB89C, - 53798 - 44032: 0xB89D, - 53799 - 44032: 0xB89E, - 53800 - 44032: 0xB89F, - 53801 - 44032: 0xB8A0, - 53802 - 44032: 0xB941, - 53803 - 44032: 0xB942, - 53804 - 44032: 0xC5F5, - 53805 - 44032: 0xC5F6, - 53806 - 44032: 0xB943, - 53807 - 44032: 0xB944, - 53808 - 44032: 0xC5F7, - 53809 - 44032: 0xB945, - 53810 - 44032: 0xB946, - 53811 - 44032: 0xB947, - 53812 - 44032: 0xC5F8, - 53813 - 44032: 0xB948, - 53814 - 44032: 0xB949, - 53815 - 44032: 0xB94A, - 53816 - 44032: 0xB94B, - 53817 - 44032: 0xB94C, - 53818 - 44032: 0xB94D, - 53819 - 44032: 0xB94E, - 53820 - 44032: 0xC5F9, - 53821 - 44032: 0xC5FA, - 53822 - 44032: 0xB94F, - 53823 - 44032: 0xC5FB, - 53824 - 44032: 0xB950, - 53825 - 44032: 0xC5FC, - 53826 - 44032: 0xB951, - 53827 - 44032: 0xB952, - 53828 - 44032: 0xB953, - 53829 - 44032: 0xB954, - 53830 - 44032: 0xB955, - 53831 - 44032: 0xB956, - 53832 - 44032: 0xC5FD, - 53833 - 44032: 0xB957, - 53834 - 44032: 0xB958, - 53835 - 44032: 0xB959, - 53836 - 44032: 0xB95A, - 53837 - 44032: 0xB961, - 53838 - 44032: 0xB962, - 53839 - 44032: 0xB963, - 53840 - 44032: 0xB964, - 53841 - 44032: 0xB965, - 53842 - 44032: 0xB966, - 53843 - 44032: 0xB967, - 53844 - 44032: 0xB968, - 53845 - 44032: 0xB969, - 53846 - 44032: 0xB96A, - 53847 - 44032: 0xB96B, - 53848 - 44032: 0xB96C, - 53849 - 44032: 0xB96D, - 53850 - 44032: 0xB96E, - 53851 - 44032: 0xB96F, - 53852 - 44032: 0xC5FE, - 53853 - 44032: 0xB970, - 53854 - 44032: 0xB971, - 53855 - 44032: 0xB972, - 53856 - 44032: 0xB973, - 53857 - 44032: 0xB974, - 53858 - 44032: 0xB975, - 53859 - 44032: 0xB976, - 53860 - 44032: 0xC6A1, - 53861 - 44032: 0xB977, - 53862 - 44032: 0xB978, - 53863 - 44032: 0xB979, - 53864 - 44032: 0xB97A, - 53865 - 44032: 0xB981, - 53866 - 44032: 0xB982, - 53867 - 44032: 0xB983, - 53868 - 44032: 0xB984, - 53869 - 44032: 0xB985, - 53870 - 44032: 0xB986, - 53871 - 44032: 0xB987, - 53872 - 44032: 0xB988, - 53873 - 44032: 0xB989, - 53874 - 44032: 0xB98A, - 53875 - 44032: 0xB98B, - 53876 - 44032: 0xB98C, - 53877 - 44032: 0xB98D, - 53878 - 44032: 0xB98E, - 53879 - 44032: 0xB98F, - 53880 - 44032: 0xB990, - 53881 - 44032: 0xB991, - 53882 - 44032: 0xB992, - 53883 - 44032: 0xB993, - 53884 - 44032: 0xB994, - 53885 - 44032: 0xB995, - 53886 - 44032: 0xB996, - 53887 - 44032: 0xB997, - 53888 - 44032: 0xC6A2, - 53889 - 44032: 0xC6A3, - 53890 - 44032: 0xB998, - 53891 - 44032: 0xB999, - 53892 - 44032: 0xC6A4, - 53893 - 44032: 0xB99A, - 53894 - 44032: 0xB99B, - 53895 - 44032: 0xB99C, - 53896 - 44032: 0xC6A5, - 53897 - 44032: 0xB99D, - 53898 - 44032: 0xB99E, - 53899 - 44032: 0xB99F, - 53900 - 44032: 0xB9A0, - 53901 - 44032: 0xBA41, - 53902 - 44032: 0xBA42, - 53903 - 44032: 0xBA43, - 53904 - 44032: 0xC6A6, - 53905 - 44032: 0xC6A7, - 53906 - 44032: 0xBA44, - 53907 - 44032: 0xBA45, - 53908 - 44032: 0xBA46, - 53909 - 44032: 0xC6A8, - 53910 - 44032: 0xBA47, - 53911 - 44032: 0xBA48, - 53912 - 44032: 0xBA49, - 53913 - 44032: 0xBA4A, - 53914 - 44032: 0xBA4B, - 53915 - 44032: 0xBA4C, - 53916 - 44032: 0xC6A9, - 53917 - 44032: 0xBA4D, - 53918 - 44032: 0xBA4E, - 53919 - 44032: 0xBA4F, - 53920 - 44032: 0xC6AA, - 53921 - 44032: 0xBA50, - 53922 - 44032: 0xBA51, - 53923 - 44032: 0xBA52, - 53924 - 44032: 0xC6AB, - 53925 - 44032: 0xBA53, - 53926 - 44032: 0xBA54, - 53927 - 44032: 0xBA55, - 53928 - 44032: 0xBA56, - 53929 - 44032: 0xBA57, - 53930 - 44032: 0xBA58, - 53931 - 44032: 0xBA59, - 53932 - 44032: 0xC6AC, - 53933 - 44032: 0xBA5A, - 53934 - 44032: 0xBA61, - 53935 - 44032: 0xBA62, - 53936 - 44032: 0xBA63, - 53937 - 44032: 0xC6AD, - 53938 - 44032: 0xBA64, - 53939 - 44032: 0xBA65, - 53940 - 44032: 0xBA66, - 53941 - 44032: 0xBA67, - 53942 - 44032: 0xBA68, - 53943 - 44032: 0xBA69, - 53944 - 44032: 0xC6AE, - 53945 - 44032: 0xC6AF, - 53946 - 44032: 0xBA6A, - 53947 - 44032: 0xBA6B, - 53948 - 44032: 0xC6B0, - 53949 - 44032: 0xBA6C, - 53950 - 44032: 0xBA6D, - 53951 - 44032: 0xC6B1, - 53952 - 44032: 0xC6B2, - 53953 - 44032: 0xBA6E, - 53954 - 44032: 0xC6B3, - 53955 - 44032: 0xBA6F, - 53956 - 44032: 0xBA70, - 53957 - 44032: 0xBA71, - 53958 - 44032: 0xBA72, - 53959 - 44032: 0xBA73, - 53960 - 44032: 0xC6B4, - 53961 - 44032: 0xC6B5, - 53962 - 44032: 0xBA74, - 53963 - 44032: 0xC6B6, - 53964 - 44032: 0xBA75, - 53965 - 44032: 0xBA76, - 53966 - 44032: 0xBA77, - 53967 - 44032: 0xBA78, - 53968 - 44032: 0xBA79, - 53969 - 44032: 0xBA7A, - 53970 - 44032: 0xBA81, - 53971 - 44032: 0xBA82, - 53972 - 44032: 0xC6B7, - 53973 - 44032: 0xBA83, - 53974 - 44032: 0xBA84, - 53975 - 44032: 0xBA85, - 53976 - 44032: 0xC6B8, - 53977 - 44032: 0xBA86, - 53978 - 44032: 0xBA87, - 53979 - 44032: 0xBA88, - 53980 - 44032: 0xC6B9, - 53981 - 44032: 0xBA89, - 53982 - 44032: 0xBA8A, - 53983 - 44032: 0xBA8B, - 53984 - 44032: 0xBA8C, - 53985 - 44032: 0xBA8D, - 53986 - 44032: 0xBA8E, - 53987 - 44032: 0xBA8F, - 53988 - 44032: 0xC6BA, - 53989 - 44032: 0xC6BB, - 53990 - 44032: 0xBA90, - 53991 - 44032: 0xBA91, - 53992 - 44032: 0xBA92, - 53993 - 44032: 0xBA93, - 53994 - 44032: 0xBA94, - 53995 - 44032: 0xBA95, - 53996 - 44032: 0xBA96, - 53997 - 44032: 0xBA97, - 53998 - 44032: 0xBA98, - 53999 - 44032: 0xBA99, - 54000 - 44032: 0xC6BC, - 54001 - 44032: 0xC6BD, - 54002 - 44032: 0xBA9A, - 54003 - 44032: 0xBA9B, - 54004 - 44032: 0xC6BE, - 54005 - 44032: 0xBA9C, - 54006 - 44032: 0xBA9D, - 54007 - 44032: 0xBA9E, - 54008 - 44032: 0xC6BF, - 54009 - 44032: 0xBA9F, - 54010 - 44032: 0xBAA0, - 54011 - 44032: 0xBB41, - 54012 - 44032: 0xBB42, - 54013 - 44032: 0xBB43, - 54014 - 44032: 0xBB44, - 54015 - 44032: 0xBB45, - 54016 - 44032: 0xC6C0, - 54017 - 44032: 0xC6C1, - 54018 - 44032: 0xBB46, - 54019 - 44032: 0xC6C2, - 54020 - 44032: 0xBB47, - 54021 - 44032: 0xC6C3, - 54022 - 44032: 0xBB48, - 54023 - 44032: 0xBB49, - 54024 - 44032: 0xBB4A, - 54025 - 44032: 0xBB4B, - 54026 - 44032: 0xBB4C, - 54027 - 44032: 0xBB4D, - 54028 - 44032: 0xC6C4, - 54029 - 44032: 0xC6C5, - 54030 - 44032: 0xC6C6, - 54031 - 44032: 0xBB4E, - 54032 - 44032: 0xC6C7, - 54033 - 44032: 0xBB4F, - 54034 - 44032: 0xBB50, - 54035 - 44032: 0xBB51, - 54036 - 44032: 0xC6C8, - 54037 - 44032: 0xBB52, - 54038 - 44032: 0xC6C9, - 54039 - 44032: 0xBB53, - 54040 - 44032: 0xBB54, - 54041 - 44032: 0xBB55, - 54042 - 44032: 0xBB56, - 54043 - 44032: 0xBB57, - 54044 - 44032: 0xC6CA, - 54045 - 44032: 0xC6CB, - 54046 - 44032: 0xBB58, - 54047 - 44032: 0xC6CC, - 54048 - 44032: 0xC6CD, - 54049 - 44032: 0xC6CE, - 54050 - 44032: 0xBB59, - 54051 - 44032: 0xBB5A, - 54052 - 44032: 0xBB61, - 54053 - 44032: 0xC6CF, - 54054 - 44032: 0xBB62, - 54055 - 44032: 0xBB63, - 54056 - 44032: 0xC6D0, - 54057 - 44032: 0xC6D1, - 54058 - 44032: 0xBB64, - 54059 - 44032: 0xBB65, - 54060 - 44032: 0xC6D2, - 54061 - 44032: 0xBB66, - 54062 - 44032: 0xBB67, - 54063 - 44032: 0xBB68, - 54064 - 44032: 0xC6D3, - 54065 - 44032: 0xBB69, - 54066 - 44032: 0xBB6A, - 54067 - 44032: 0xBB6B, - 54068 - 44032: 0xBB6C, - 54069 - 44032: 0xBB6D, - 54070 - 44032: 0xBB6E, - 54071 - 44032: 0xBB6F, - 54072 - 44032: 0xC6D4, - 54073 - 44032: 0xC6D5, - 54074 - 44032: 0xBB70, - 54075 - 44032: 0xC6D6, - 54076 - 44032: 0xC6D7, - 54077 - 44032: 0xC6D8, - 54078 - 44032: 0xBB71, - 54079 - 44032: 0xBB72, - 54080 - 44032: 0xBB73, - 54081 - 44032: 0xBB74, - 54082 - 44032: 0xBB75, - 54083 - 44032: 0xBB76, - 54084 - 44032: 0xC6D9, - 54085 - 44032: 0xC6DA, - 54086 - 44032: 0xBB77, - 54087 - 44032: 0xBB78, - 54088 - 44032: 0xBB79, - 54089 - 44032: 0xBB7A, - 54090 - 44032: 0xBB81, - 54091 - 44032: 0xBB82, - 54092 - 44032: 0xBB83, - 54093 - 44032: 0xBB84, - 54094 - 44032: 0xBB85, - 54095 - 44032: 0xBB86, - 54096 - 44032: 0xBB87, - 54097 - 44032: 0xBB88, - 54098 - 44032: 0xBB89, - 54099 - 44032: 0xBB8A, - 54100 - 44032: 0xBB8B, - 54101 - 44032: 0xBB8C, - 54102 - 44032: 0xBB8D, - 54103 - 44032: 0xBB8E, - 54104 - 44032: 0xBB8F, - 54105 - 44032: 0xBB90, - 54106 - 44032: 0xBB91, - 54107 - 44032: 0xBB92, - 54108 - 44032: 0xBB93, - 54109 - 44032: 0xBB94, - 54110 - 44032: 0xBB95, - 54111 - 44032: 0xBB96, - 54112 - 44032: 0xBB97, - 54113 - 44032: 0xBB98, - 54114 - 44032: 0xBB99, - 54115 - 44032: 0xBB9A, - 54116 - 44032: 0xBB9B, - 54117 - 44032: 0xBB9C, - 54118 - 44032: 0xBB9D, - 54119 - 44032: 0xBB9E, - 54120 - 44032: 0xBB9F, - 54121 - 44032: 0xBBA0, - 54122 - 44032: 0xBC41, - 54123 - 44032: 0xBC42, - 54124 - 44032: 0xBC43, - 54125 - 44032: 0xBC44, - 54126 - 44032: 0xBC45, - 54127 - 44032: 0xBC46, - 54128 - 44032: 0xBC47, - 54129 - 44032: 0xBC48, - 54130 - 44032: 0xBC49, - 54131 - 44032: 0xBC4A, - 54132 - 44032: 0xBC4B, - 54133 - 44032: 0xBC4C, - 54134 - 44032: 0xBC4D, - 54135 - 44032: 0xBC4E, - 54136 - 44032: 0xBC4F, - 54137 - 44032: 0xBC50, - 54138 - 44032: 0xBC51, - 54139 - 44032: 0xBC52, - 54140 - 44032: 0xC6DB, - 54141 - 44032: 0xC6DC, - 54142 - 44032: 0xBC53, - 54143 - 44032: 0xBC54, - 54144 - 44032: 0xC6DD, - 54145 - 44032: 0xBC55, - 54146 - 44032: 0xBC56, - 54147 - 44032: 0xBC57, - 54148 - 44032: 0xC6DE, - 54149 - 44032: 0xBC58, - 54150 - 44032: 0xBC59, - 54151 - 44032: 0xBC5A, - 54152 - 44032: 0xBC61, - 54153 - 44032: 0xBC62, - 54154 - 44032: 0xBC63, - 54155 - 44032: 0xBC64, - 54156 - 44032: 0xC6DF, - 54157 - 44032: 0xC6E0, - 54158 - 44032: 0xBC65, - 54159 - 44032: 0xC6E1, - 54160 - 44032: 0xC6E2, - 54161 - 44032: 0xC6E3, - 54162 - 44032: 0xBC66, - 54163 - 44032: 0xBC67, - 54164 - 44032: 0xBC68, - 54165 - 44032: 0xBC69, - 54166 - 44032: 0xBC6A, - 54167 - 44032: 0xBC6B, - 54168 - 44032: 0xC6E4, - 54169 - 44032: 0xC6E5, - 54170 - 44032: 0xBC6C, - 54171 - 44032: 0xBC6D, - 54172 - 44032: 0xC6E6, - 54173 - 44032: 0xBC6E, - 54174 - 44032: 0xBC6F, - 54175 - 44032: 0xBC70, - 54176 - 44032: 0xC6E7, - 54177 - 44032: 0xBC71, - 54178 - 44032: 0xBC72, - 54179 - 44032: 0xBC73, - 54180 - 44032: 0xBC74, - 54181 - 44032: 0xBC75, - 54182 - 44032: 0xBC76, - 54183 - 44032: 0xBC77, - 54184 - 44032: 0xC6E8, - 54185 - 44032: 0xC6E9, - 54186 - 44032: 0xBC78, - 54187 - 44032: 0xC6EA, - 54188 - 44032: 0xBC79, - 54189 - 44032: 0xC6EB, - 54190 - 44032: 0xBC7A, - 54191 - 44032: 0xBC81, - 54192 - 44032: 0xBC82, - 54193 - 44032: 0xBC83, - 54194 - 44032: 0xBC84, - 54195 - 44032: 0xBC85, - 54196 - 44032: 0xC6EC, - 54197 - 44032: 0xBC86, - 54198 - 44032: 0xBC87, - 54199 - 44032: 0xBC88, - 54200 - 44032: 0xC6ED, - 54201 - 44032: 0xBC89, - 54202 - 44032: 0xBC8A, - 54203 - 44032: 0xBC8B, - 54204 - 44032: 0xC6EE, - 54205 - 44032: 0xBC8C, - 54206 - 44032: 0xBC8D, - 54207 - 44032: 0xBC8E, - 54208 - 44032: 0xBC8F, - 54209 - 44032: 0xBC90, - 54210 - 44032: 0xBC91, - 54211 - 44032: 0xBC92, - 54212 - 44032: 0xC6EF, - 54213 - 44032: 0xC6F0, - 54214 - 44032: 0xBC93, - 54215 - 44032: 0xBC94, - 54216 - 44032: 0xC6F1, - 54217 - 44032: 0xC6F2, - 54218 - 44032: 0xBC95, - 54219 - 44032: 0xBC96, - 54220 - 44032: 0xBC97, - 54221 - 44032: 0xBC98, - 54222 - 44032: 0xBC99, - 54223 - 44032: 0xBC9A, - 54224 - 44032: 0xC6F3, - 54225 - 44032: 0xBC9B, - 54226 - 44032: 0xBC9C, - 54227 - 44032: 0xBC9D, - 54228 - 44032: 0xBC9E, - 54229 - 44032: 0xBC9F, - 54230 - 44032: 0xBCA0, - 54231 - 44032: 0xBD41, - 54232 - 44032: 0xC6F4, - 54233 - 44032: 0xBD42, - 54234 - 44032: 0xBD43, - 54235 - 44032: 0xBD44, - 54236 - 44032: 0xBD45, - 54237 - 44032: 0xBD46, - 54238 - 44032: 0xBD47, - 54239 - 44032: 0xBD48, - 54240 - 44032: 0xBD49, - 54241 - 44032: 0xC6F5, - 54242 - 44032: 0xBD4A, - 54243 - 44032: 0xC6F6, - 54244 - 44032: 0xBD4B, - 54245 - 44032: 0xBD4C, - 54246 - 44032: 0xBD4D, - 54247 - 44032: 0xBD4E, - 54248 - 44032: 0xBD4F, - 54249 - 44032: 0xBD50, - 54250 - 44032: 0xBD51, - 54251 - 44032: 0xBD52, - 54252 - 44032: 0xC6F7, - 54253 - 44032: 0xC6F8, - 54254 - 44032: 0xBD53, - 54255 - 44032: 0xBD54, - 54256 - 44032: 0xC6F9, - 54257 - 44032: 0xBD55, - 54258 - 44032: 0xBD56, - 54259 - 44032: 0xBD57, - 54260 - 44032: 0xC6FA, - 54261 - 44032: 0xBD58, - 54262 - 44032: 0xBD59, - 54263 - 44032: 0xBD5A, - 54264 - 44032: 0xBD61, - 54265 - 44032: 0xBD62, - 54266 - 44032: 0xBD63, - 54267 - 44032: 0xBD64, - 54268 - 44032: 0xC6FB, - 54269 - 44032: 0xC6FC, - 54270 - 44032: 0xBD65, - 54271 - 44032: 0xC6FD, - 54272 - 44032: 0xBD66, - 54273 - 44032: 0xC6FE, - 54274 - 44032: 0xBD67, - 54275 - 44032: 0xBD68, - 54276 - 44032: 0xBD69, - 54277 - 44032: 0xBD6A, - 54278 - 44032: 0xBD6B, - 54279 - 44032: 0xBD6C, - 54280 - 44032: 0xC7A1, - 54281 - 44032: 0xBD6D, - 54282 - 44032: 0xBD6E, - 54283 - 44032: 0xBD6F, - 54284 - 44032: 0xBD70, - 54285 - 44032: 0xBD71, - 54286 - 44032: 0xBD72, - 54287 - 44032: 0xBD73, - 54288 - 44032: 0xBD74, - 54289 - 44032: 0xBD75, - 54290 - 44032: 0xBD76, - 54291 - 44032: 0xBD77, - 54292 - 44032: 0xBD78, - 54293 - 44032: 0xBD79, - 54294 - 44032: 0xBD7A, - 54295 - 44032: 0xBD81, - 54296 - 44032: 0xBD82, - 54297 - 44032: 0xBD83, - 54298 - 44032: 0xBD84, - 54299 - 44032: 0xBD85, - 54300 - 44032: 0xBD86, - 54301 - 44032: 0xC7A2, - 54302 - 44032: 0xBD87, - 54303 - 44032: 0xBD88, - 54304 - 44032: 0xBD89, - 54305 - 44032: 0xBD8A, - 54306 - 44032: 0xBD8B, - 54307 - 44032: 0xBD8C, - 54308 - 44032: 0xBD8D, - 54309 - 44032: 0xBD8E, - 54310 - 44032: 0xBD8F, - 54311 - 44032: 0xBD90, - 54312 - 44032: 0xBD91, - 54313 - 44032: 0xBD92, - 54314 - 44032: 0xBD93, - 54315 - 44032: 0xBD94, - 54316 - 44032: 0xBD95, - 54317 - 44032: 0xBD96, - 54318 - 44032: 0xBD97, - 54319 - 44032: 0xBD98, - 54320 - 44032: 0xBD99, - 54321 - 44032: 0xBD9A, - 54322 - 44032: 0xBD9B, - 54323 - 44032: 0xBD9C, - 54324 - 44032: 0xBD9D, - 54325 - 44032: 0xBD9E, - 54326 - 44032: 0xBD9F, - 54327 - 44032: 0xBDA0, - 54328 - 44032: 0xBE41, - 54329 - 44032: 0xBE42, - 54330 - 44032: 0xBE43, - 54331 - 44032: 0xBE44, - 54332 - 44032: 0xBE45, - 54333 - 44032: 0xBE46, - 54334 - 44032: 0xBE47, - 54335 - 44032: 0xBE48, - 54336 - 44032: 0xC7A3, - 54337 - 44032: 0xBE49, - 54338 - 44032: 0xBE4A, - 54339 - 44032: 0xBE4B, - 54340 - 44032: 0xC7A4, - 54341 - 44032: 0xBE4C, - 54342 - 44032: 0xBE4D, - 54343 - 44032: 0xBE4E, - 54344 - 44032: 0xBE4F, - 54345 - 44032: 0xBE50, - 54346 - 44032: 0xBE51, - 54347 - 44032: 0xBE52, - 54348 - 44032: 0xBE53, - 54349 - 44032: 0xBE54, - 54350 - 44032: 0xBE55, - 54351 - 44032: 0xBE56, - 54352 - 44032: 0xBE57, - 54353 - 44032: 0xBE58, - 54354 - 44032: 0xBE59, - 54355 - 44032: 0xBE5A, - 54356 - 44032: 0xBE61, - 54357 - 44032: 0xBE62, - 54358 - 44032: 0xBE63, - 54359 - 44032: 0xBE64, - 54360 - 44032: 0xBE65, - 54361 - 44032: 0xBE66, - 54362 - 44032: 0xBE67, - 54363 - 44032: 0xBE68, - 54364 - 44032: 0xC7A5, - 54365 - 44032: 0xBE69, - 54366 - 44032: 0xBE6A, - 54367 - 44032: 0xBE6B, - 54368 - 44032: 0xC7A6, - 54369 - 44032: 0xBE6C, - 54370 - 44032: 0xBE6D, - 54371 - 44032: 0xBE6E, - 54372 - 44032: 0xC7A7, - 54373 - 44032: 0xBE6F, - 54374 - 44032: 0xBE70, - 54375 - 44032: 0xBE71, - 54376 - 44032: 0xBE72, - 54377 - 44032: 0xBE73, - 54378 - 44032: 0xBE74, - 54379 - 44032: 0xBE75, - 54380 - 44032: 0xBE76, - 54381 - 44032: 0xC7A8, - 54382 - 44032: 0xBE77, - 54383 - 44032: 0xC7A9, - 54384 - 44032: 0xBE78, - 54385 - 44032: 0xBE79, - 54386 - 44032: 0xBE7A, - 54387 - 44032: 0xBE81, - 54388 - 44032: 0xBE82, - 54389 - 44032: 0xBE83, - 54390 - 44032: 0xBE84, - 54391 - 44032: 0xBE85, - 54392 - 44032: 0xC7AA, - 54393 - 44032: 0xC7AB, - 54394 - 44032: 0xBE86, - 54395 - 44032: 0xBE87, - 54396 - 44032: 0xC7AC, - 54397 - 44032: 0xBE88, - 54398 - 44032: 0xBE89, - 54399 - 44032: 0xC7AD, - 54400 - 44032: 0xC7AE, - 54401 - 44032: 0xBE8A, - 54402 - 44032: 0xC7AF, - 54403 - 44032: 0xBE8B, - 54404 - 44032: 0xBE8C, - 54405 - 44032: 0xBE8D, - 54406 - 44032: 0xBE8E, - 54407 - 44032: 0xBE8F, - 54408 - 44032: 0xC7B0, - 54409 - 44032: 0xC7B1, - 54410 - 44032: 0xBE90, - 54411 - 44032: 0xC7B2, - 54412 - 44032: 0xBE91, - 54413 - 44032: 0xC7B3, - 54414 - 44032: 0xBE92, - 54415 - 44032: 0xBE93, - 54416 - 44032: 0xBE94, - 54417 - 44032: 0xBE95, - 54418 - 44032: 0xBE96, - 54419 - 44032: 0xBE97, - 54420 - 44032: 0xC7B4, - 54421 - 44032: 0xBE98, - 54422 - 44032: 0xBE99, - 54423 - 44032: 0xBE9A, - 54424 - 44032: 0xBE9B, - 54425 - 44032: 0xBE9C, - 54426 - 44032: 0xBE9D, - 54427 - 44032: 0xBE9E, - 54428 - 44032: 0xBE9F, - 54429 - 44032: 0xBEA0, - 54430 - 44032: 0xBF41, - 54431 - 44032: 0xBF42, - 54432 - 44032: 0xBF43, - 54433 - 44032: 0xBF44, - 54434 - 44032: 0xBF45, - 54435 - 44032: 0xBF46, - 54436 - 44032: 0xBF47, - 54437 - 44032: 0xBF48, - 54438 - 44032: 0xBF49, - 54439 - 44032: 0xBF4A, - 54440 - 44032: 0xBF4B, - 54441 - 44032: 0xC7B5, - 54442 - 44032: 0xBF4C, - 54443 - 44032: 0xBF4D, - 54444 - 44032: 0xBF4E, - 54445 - 44032: 0xBF4F, - 54446 - 44032: 0xBF50, - 54447 - 44032: 0xBF51, - 54448 - 44032: 0xBF52, - 54449 - 44032: 0xBF53, - 54450 - 44032: 0xBF54, - 54451 - 44032: 0xBF55, - 54452 - 44032: 0xBF56, - 54453 - 44032: 0xBF57, - 54454 - 44032: 0xBF58, - 54455 - 44032: 0xBF59, - 54456 - 44032: 0xBF5A, - 54457 - 44032: 0xBF61, - 54458 - 44032: 0xBF62, - 54459 - 44032: 0xBF63, - 54460 - 44032: 0xBF64, - 54461 - 44032: 0xBF65, - 54462 - 44032: 0xBF66, - 54463 - 44032: 0xBF67, - 54464 - 44032: 0xBF68, - 54465 - 44032: 0xBF69, - 54466 - 44032: 0xBF6A, - 54467 - 44032: 0xBF6B, - 54468 - 44032: 0xBF6C, - 54469 - 44032: 0xBF6D, - 54470 - 44032: 0xBF6E, - 54471 - 44032: 0xBF6F, - 54472 - 44032: 0xBF70, - 54473 - 44032: 0xBF71, - 54474 - 44032: 0xBF72, - 54475 - 44032: 0xBF73, - 54476 - 44032: 0xC7B6, - 54477 - 44032: 0xBF74, - 54478 - 44032: 0xBF75, - 54479 - 44032: 0xBF76, - 54480 - 44032: 0xC7B7, - 54481 - 44032: 0xBF77, - 54482 - 44032: 0xBF78, - 54483 - 44032: 0xBF79, - 54484 - 44032: 0xC7B8, - 54485 - 44032: 0xBF7A, - 54486 - 44032: 0xBF81, - 54487 - 44032: 0xBF82, - 54488 - 44032: 0xBF83, - 54489 - 44032: 0xBF84, - 54490 - 44032: 0xBF85, - 54491 - 44032: 0xBF86, - 54492 - 44032: 0xC7B9, - 54493 - 44032: 0xBF87, - 54494 - 44032: 0xBF88, - 54495 - 44032: 0xC7BA, - 54496 - 44032: 0xBF89, - 54497 - 44032: 0xBF8A, - 54498 - 44032: 0xBF8B, - 54499 - 44032: 0xBF8C, - 54500 - 44032: 0xBF8D, - 54501 - 44032: 0xBF8E, - 54502 - 44032: 0xBF8F, - 54503 - 44032: 0xBF90, - 54504 - 44032: 0xC7BB, - 54505 - 44032: 0xBF91, - 54506 - 44032: 0xBF92, - 54507 - 44032: 0xBF93, - 54508 - 44032: 0xC7BC, - 54509 - 44032: 0xBF94, - 54510 - 44032: 0xBF95, - 54511 - 44032: 0xBF96, - 54512 - 44032: 0xC7BD, - 54513 - 44032: 0xBF97, - 54514 - 44032: 0xBF98, - 54515 - 44032: 0xBF99, - 54516 - 44032: 0xBF9A, - 54517 - 44032: 0xBF9B, - 54518 - 44032: 0xBF9C, - 54519 - 44032: 0xBF9D, - 54520 - 44032: 0xC7BE, - 54521 - 44032: 0xBF9E, - 54522 - 44032: 0xBF9F, - 54523 - 44032: 0xC7BF, - 54524 - 44032: 0xBFA0, - 54525 - 44032: 0xC7C0, - 54526 - 44032: 0xC041, - 54527 - 44032: 0xC042, - 54528 - 44032: 0xC043, - 54529 - 44032: 0xC044, - 54530 - 44032: 0xC045, - 54531 - 44032: 0xC046, - 54532 - 44032: 0xC7C1, - 54533 - 44032: 0xC047, - 54534 - 44032: 0xC048, - 54535 - 44032: 0xC049, - 54536 - 44032: 0xC7C2, - 54537 - 44032: 0xC04A, - 54538 - 44032: 0xC04B, - 54539 - 44032: 0xC04C, - 54540 - 44032: 0xC7C3, - 54541 - 44032: 0xC04D, - 54542 - 44032: 0xC04E, - 54543 - 44032: 0xC04F, - 54544 - 44032: 0xC050, - 54545 - 44032: 0xC051, - 54546 - 44032: 0xC052, - 54547 - 44032: 0xC053, - 54548 - 44032: 0xC7C4, - 54549 - 44032: 0xC7C5, - 54550 - 44032: 0xC054, - 54551 - 44032: 0xC7C6, - 54552 - 44032: 0xC055, - 54553 - 44032: 0xC056, - 54554 - 44032: 0xC057, - 54555 - 44032: 0xC058, - 54556 - 44032: 0xC059, - 54557 - 44032: 0xC05A, - 54558 - 44032: 0xC061, - 54559 - 44032: 0xC062, - 54560 - 44032: 0xC063, - 54561 - 44032: 0xC064, - 54562 - 44032: 0xC065, - 54563 - 44032: 0xC066, - 54564 - 44032: 0xC067, - 54565 - 44032: 0xC068, - 54566 - 44032: 0xC069, - 54567 - 44032: 0xC06A, - 54568 - 44032: 0xC06B, - 54569 - 44032: 0xC06C, - 54570 - 44032: 0xC06D, - 54571 - 44032: 0xC06E, - 54572 - 44032: 0xC06F, - 54573 - 44032: 0xC070, - 54574 - 44032: 0xC071, - 54575 - 44032: 0xC072, - 54576 - 44032: 0xC073, - 54577 - 44032: 0xC074, - 54578 - 44032: 0xC075, - 54579 - 44032: 0xC076, - 54580 - 44032: 0xC077, - 54581 - 44032: 0xC078, - 54582 - 44032: 0xC079, - 54583 - 44032: 0xC07A, - 54584 - 44032: 0xC081, - 54585 - 44032: 0xC082, - 54586 - 44032: 0xC083, - 54587 - 44032: 0xC084, - 54588 - 44032: 0xC7C7, - 54589 - 44032: 0xC7C8, - 54590 - 44032: 0xC085, - 54591 - 44032: 0xC086, - 54592 - 44032: 0xC7C9, - 54593 - 44032: 0xC087, - 54594 - 44032: 0xC088, - 54595 - 44032: 0xC089, - 54596 - 44032: 0xC7CA, - 54597 - 44032: 0xC08A, - 54598 - 44032: 0xC08B, - 54599 - 44032: 0xC08C, - 54600 - 44032: 0xC08D, - 54601 - 44032: 0xC08E, - 54602 - 44032: 0xC08F, - 54603 - 44032: 0xC090, - 54604 - 44032: 0xC7CB, - 54605 - 44032: 0xC7CC, - 54606 - 44032: 0xC091, - 54607 - 44032: 0xC7CD, - 54608 - 44032: 0xC092, - 54609 - 44032: 0xC7CE, - 54610 - 44032: 0xC093, - 54611 - 44032: 0xC094, - 54612 - 44032: 0xC095, - 54613 - 44032: 0xC096, - 54614 - 44032: 0xC097, - 54615 - 44032: 0xC098, - 54616 - 44032: 0xC7CF, - 54617 - 44032: 0xC7D0, - 54618 - 44032: 0xC099, - 54619 - 44032: 0xC09A, - 54620 - 44032: 0xC7D1, - 54621 - 44032: 0xC09B, - 54622 - 44032: 0xC09C, - 54623 - 44032: 0xC09D, - 54624 - 44032: 0xC7D2, - 54625 - 44032: 0xC09E, - 54626 - 44032: 0xC09F, - 54627 - 44032: 0xC0A0, - 54628 - 44032: 0xC141, - 54629 - 44032: 0xC7D3, - 54630 - 44032: 0xC142, - 54631 - 44032: 0xC143, - 54632 - 44032: 0xC7D4, - 54633 - 44032: 0xC7D5, - 54634 - 44032: 0xC144, - 54635 - 44032: 0xC7D6, - 54636 - 44032: 0xC145, - 54637 - 44032: 0xC7D7, - 54638 - 44032: 0xC146, - 54639 - 44032: 0xC147, - 54640 - 44032: 0xC148, - 54641 - 44032: 0xC149, - 54642 - 44032: 0xC14A, - 54643 - 44032: 0xC14B, - 54644 - 44032: 0xC7D8, - 54645 - 44032: 0xC7D9, - 54646 - 44032: 0xC14C, - 54647 - 44032: 0xC14D, - 54648 - 44032: 0xC7DA, - 54649 - 44032: 0xC14E, - 54650 - 44032: 0xC14F, - 54651 - 44032: 0xC150, - 54652 - 44032: 0xC7DB, - 54653 - 44032: 0xC151, - 54654 - 44032: 0xC152, - 54655 - 44032: 0xC153, - 54656 - 44032: 0xC154, - 54657 - 44032: 0xC155, - 54658 - 44032: 0xC156, - 54659 - 44032: 0xC157, - 54660 - 44032: 0xC7DC, - 54661 - 44032: 0xC7DD, - 54662 - 44032: 0xC158, - 54663 - 44032: 0xC7DE, - 54664 - 44032: 0xC7DF, - 54665 - 44032: 0xC7E0, - 54666 - 44032: 0xC159, - 54667 - 44032: 0xC15A, - 54668 - 44032: 0xC161, - 54669 - 44032: 0xC162, - 54670 - 44032: 0xC163, - 54671 - 44032: 0xC164, - 54672 - 44032: 0xC7E1, - 54673 - 44032: 0xC165, - 54674 - 44032: 0xC166, - 54675 - 44032: 0xC167, - 54676 - 44032: 0xC168, - 54677 - 44032: 0xC169, - 54678 - 44032: 0xC16A, - 54679 - 44032: 0xC16B, - 54680 - 44032: 0xC16C, - 54681 - 44032: 0xC16D, - 54682 - 44032: 0xC16E, - 54683 - 44032: 0xC16F, - 54684 - 44032: 0xC170, - 54685 - 44032: 0xC171, - 54686 - 44032: 0xC172, - 54687 - 44032: 0xC173, - 54688 - 44032: 0xC174, - 54689 - 44032: 0xC175, - 54690 - 44032: 0xC176, - 54691 - 44032: 0xC177, - 54692 - 44032: 0xC178, - 54693 - 44032: 0xC7E2, - 54694 - 44032: 0xC179, - 54695 - 44032: 0xC17A, - 54696 - 44032: 0xC181, - 54697 - 44032: 0xC182, - 54698 - 44032: 0xC183, - 54699 - 44032: 0xC184, - 54700 - 44032: 0xC185, - 54701 - 44032: 0xC186, - 54702 - 44032: 0xC187, - 54703 - 44032: 0xC188, - 54704 - 44032: 0xC189, - 54705 - 44032: 0xC18A, - 54706 - 44032: 0xC18B, - 54707 - 44032: 0xC18C, - 54708 - 44032: 0xC18D, - 54709 - 44032: 0xC18E, - 54710 - 44032: 0xC18F, - 54711 - 44032: 0xC190, - 54712 - 44032: 0xC191, - 54713 - 44032: 0xC192, - 54714 - 44032: 0xC193, - 54715 - 44032: 0xC194, - 54716 - 44032: 0xC195, - 54717 - 44032: 0xC196, - 54718 - 44032: 0xC197, - 54719 - 44032: 0xC198, - 54720 - 44032: 0xC199, - 54721 - 44032: 0xC19A, - 54722 - 44032: 0xC19B, - 54723 - 44032: 0xC19C, - 54724 - 44032: 0xC19D, - 54725 - 44032: 0xC19E, - 54726 - 44032: 0xC19F, - 54727 - 44032: 0xC1A0, - 54728 - 44032: 0xC7E3, - 54729 - 44032: 0xC7E4, - 54730 - 44032: 0xC241, - 54731 - 44032: 0xC242, - 54732 - 44032: 0xC7E5, - 54733 - 44032: 0xC243, - 54734 - 44032: 0xC244, - 54735 - 44032: 0xC245, - 54736 - 44032: 0xC7E6, - 54737 - 44032: 0xC246, - 54738 - 44032: 0xC7E7, - 54739 - 44032: 0xC247, - 54740 - 44032: 0xC248, - 54741 - 44032: 0xC249, - 54742 - 44032: 0xC24A, - 54743 - 44032: 0xC24B, - 54744 - 44032: 0xC7E8, - 54745 - 44032: 0xC7E9, - 54746 - 44032: 0xC24C, - 54747 - 44032: 0xC7EA, - 54748 - 44032: 0xC24D, - 54749 - 44032: 0xC7EB, - 54750 - 44032: 0xC24E, - 54751 - 44032: 0xC24F, - 54752 - 44032: 0xC250, - 54753 - 44032: 0xC251, - 54754 - 44032: 0xC252, - 54755 - 44032: 0xC253, - 54756 - 44032: 0xC7EC, - 54757 - 44032: 0xC7ED, - 54758 - 44032: 0xC254, - 54759 - 44032: 0xC255, - 54760 - 44032: 0xC7EE, - 54761 - 44032: 0xC256, - 54762 - 44032: 0xC257, - 54763 - 44032: 0xC258, - 54764 - 44032: 0xC7EF, - 54765 - 44032: 0xC259, - 54766 - 44032: 0xC25A, - 54767 - 44032: 0xC261, - 54768 - 44032: 0xC262, - 54769 - 44032: 0xC263, - 54770 - 44032: 0xC264, - 54771 - 44032: 0xC265, - 54772 - 44032: 0xC7F0, - 54773 - 44032: 0xC7F1, - 54774 - 44032: 0xC266, - 54775 - 44032: 0xC7F2, - 54776 - 44032: 0xC267, - 54777 - 44032: 0xC7F3, - 54778 - 44032: 0xC268, - 54779 - 44032: 0xC269, - 54780 - 44032: 0xC26A, - 54781 - 44032: 0xC26B, - 54782 - 44032: 0xC26C, - 54783 - 44032: 0xC26D, - 54784 - 44032: 0xC7F4, - 54785 - 44032: 0xC7F5, - 54786 - 44032: 0xC26E, - 54787 - 44032: 0xC26F, - 54788 - 44032: 0xC7F6, - 54789 - 44032: 0xC270, - 54790 - 44032: 0xC271, - 54791 - 44032: 0xC272, - 54792 - 44032: 0xC7F7, - 54793 - 44032: 0xC273, - 54794 - 44032: 0xC274, - 54795 - 44032: 0xC275, - 54796 - 44032: 0xC276, - 54797 - 44032: 0xC277, - 54798 - 44032: 0xC278, - 54799 - 44032: 0xC279, - 54800 - 44032: 0xC7F8, - 54801 - 44032: 0xC7F9, - 54802 - 44032: 0xC27A, - 54803 - 44032: 0xC7FA, - 54804 - 44032: 0xC7FB, - 54805 - 44032: 0xC7FC, - 54806 - 44032: 0xC281, - 54807 - 44032: 0xC282, - 54808 - 44032: 0xC283, - 54809 - 44032: 0xC284, - 54810 - 44032: 0xC285, - 54811 - 44032: 0xC286, - 54812 - 44032: 0xC7FD, - 54813 - 44032: 0xC287, - 54814 - 44032: 0xC288, - 54815 - 44032: 0xC289, - 54816 - 44032: 0xC7FE, - 54817 - 44032: 0xC28A, - 54818 - 44032: 0xC28B, - 54819 - 44032: 0xC28C, - 54820 - 44032: 0xC8A1, - 54821 - 44032: 0xC28D, - 54822 - 44032: 0xC28E, - 54823 - 44032: 0xC28F, - 54824 - 44032: 0xC290, - 54825 - 44032: 0xC291, - 54826 - 44032: 0xC292, - 54827 - 44032: 0xC293, - 54828 - 44032: 0xC294, - 54829 - 44032: 0xC8A2, - 54830 - 44032: 0xC295, - 54831 - 44032: 0xC296, - 54832 - 44032: 0xC297, - 54833 - 44032: 0xC298, - 54834 - 44032: 0xC299, - 54835 - 44032: 0xC29A, - 54836 - 44032: 0xC29B, - 54837 - 44032: 0xC29C, - 54838 - 44032: 0xC29D, - 54839 - 44032: 0xC29E, - 54840 - 44032: 0xC8A3, - 54841 - 44032: 0xC8A4, - 54842 - 44032: 0xC29F, - 54843 - 44032: 0xC2A0, - 54844 - 44032: 0xC8A5, - 54845 - 44032: 0xC341, - 54846 - 44032: 0xC342, - 54847 - 44032: 0xC343, - 54848 - 44032: 0xC8A6, - 54849 - 44032: 0xC344, - 54850 - 44032: 0xC345, - 54851 - 44032: 0xC346, - 54852 - 44032: 0xC347, - 54853 - 44032: 0xC8A7, - 54854 - 44032: 0xC348, - 54855 - 44032: 0xC349, - 54856 - 44032: 0xC8A8, - 54857 - 44032: 0xC8A9, - 54858 - 44032: 0xC34A, - 54859 - 44032: 0xC8AA, - 54860 - 44032: 0xC34B, - 54861 - 44032: 0xC8AB, - 54862 - 44032: 0xC34C, - 54863 - 44032: 0xC34D, - 54864 - 44032: 0xC34E, - 54865 - 44032: 0xC8AC, - 54866 - 44032: 0xC34F, - 54867 - 44032: 0xC350, - 54868 - 44032: 0xC8AD, - 54869 - 44032: 0xC8AE, - 54870 - 44032: 0xC351, - 54871 - 44032: 0xC352, - 54872 - 44032: 0xC8AF, - 54873 - 44032: 0xC353, - 54874 - 44032: 0xC354, - 54875 - 44032: 0xC355, - 54876 - 44032: 0xC8B0, - 54877 - 44032: 0xC356, - 54878 - 44032: 0xC357, - 54879 - 44032: 0xC358, - 54880 - 44032: 0xC359, - 54881 - 44032: 0xC35A, - 54882 - 44032: 0xC361, - 54883 - 44032: 0xC362, - 54884 - 44032: 0xC363, - 54885 - 44032: 0xC364, - 54886 - 44032: 0xC365, - 54887 - 44032: 0xC8B1, - 54888 - 44032: 0xC366, - 54889 - 44032: 0xC8B2, - 54890 - 44032: 0xC367, - 54891 - 44032: 0xC368, - 54892 - 44032: 0xC369, - 54893 - 44032: 0xC36A, - 54894 - 44032: 0xC36B, - 54895 - 44032: 0xC36C, - 54896 - 44032: 0xC8B3, - 54897 - 44032: 0xC8B4, - 54898 - 44032: 0xC36D, - 54899 - 44032: 0xC36E, - 54900 - 44032: 0xC8B5, - 54901 - 44032: 0xC36F, - 54902 - 44032: 0xC370, - 54903 - 44032: 0xC371, - 54904 - 44032: 0xC372, - 54905 - 44032: 0xC373, - 54906 - 44032: 0xC374, - 54907 - 44032: 0xC375, - 54908 - 44032: 0xC376, - 54909 - 44032: 0xC377, - 54910 - 44032: 0xC378, - 54911 - 44032: 0xC379, - 54912 - 44032: 0xC37A, - 54913 - 44032: 0xC381, - 54914 - 44032: 0xC382, - 54915 - 44032: 0xC8B6, - 54916 - 44032: 0xC383, - 54917 - 44032: 0xC8B7, - 54918 - 44032: 0xC384, - 54919 - 44032: 0xC385, - 54920 - 44032: 0xC386, - 54921 - 44032: 0xC387, - 54922 - 44032: 0xC388, - 54923 - 44032: 0xC389, - 54924 - 44032: 0xC8B8, - 54925 - 44032: 0xC8B9, - 54926 - 44032: 0xC38A, - 54927 - 44032: 0xC38B, - 54928 - 44032: 0xC8BA, - 54929 - 44032: 0xC38C, - 54930 - 44032: 0xC38D, - 54931 - 44032: 0xC38E, - 54932 - 44032: 0xC8BB, - 54933 - 44032: 0xC38F, - 54934 - 44032: 0xC390, - 54935 - 44032: 0xC391, - 54936 - 44032: 0xC392, - 54937 - 44032: 0xC393, - 54938 - 44032: 0xC394, - 54939 - 44032: 0xC395, - 54940 - 44032: 0xC396, - 54941 - 44032: 0xC8BC, - 54942 - 44032: 0xC397, - 54943 - 44032: 0xC8BD, - 54944 - 44032: 0xC398, - 54945 - 44032: 0xC8BE, - 54946 - 44032: 0xC399, - 54947 - 44032: 0xC39A, - 54948 - 44032: 0xC39B, - 54949 - 44032: 0xC39C, - 54950 - 44032: 0xC39D, - 54951 - 44032: 0xC39E, - 54952 - 44032: 0xC8BF, - 54953 - 44032: 0xC39F, - 54954 - 44032: 0xC3A0, - 54955 - 44032: 0xC441, - 54956 - 44032: 0xC8C0, - 54957 - 44032: 0xC442, - 54958 - 44032: 0xC443, - 54959 - 44032: 0xC444, - 54960 - 44032: 0xC8C1, - 54961 - 44032: 0xC445, - 54962 - 44032: 0xC446, - 54963 - 44032: 0xC447, - 54964 - 44032: 0xC448, - 54965 - 44032: 0xC449, - 54966 - 44032: 0xC44A, - 54967 - 44032: 0xC44B, - 54968 - 44032: 0xC44C, - 54969 - 44032: 0xC8C2, - 54970 - 44032: 0xC44D, - 54971 - 44032: 0xC8C3, - 54972 - 44032: 0xC44E, - 54973 - 44032: 0xC44F, - 54974 - 44032: 0xC450, - 54975 - 44032: 0xC451, - 54976 - 44032: 0xC452, - 54977 - 44032: 0xC453, - 54978 - 44032: 0xC454, - 54979 - 44032: 0xC455, - 54980 - 44032: 0xC8C4, - 54981 - 44032: 0xC8C5, - 54982 - 44032: 0xC456, - 54983 - 44032: 0xC457, - 54984 - 44032: 0xC8C6, - 54985 - 44032: 0xC458, - 54986 - 44032: 0xC459, - 54987 - 44032: 0xC45A, - 54988 - 44032: 0xC8C7, - 54989 - 44032: 0xC461, - 54990 - 44032: 0xC462, - 54991 - 44032: 0xC463, - 54992 - 44032: 0xC464, - 54993 - 44032: 0xC8C8, - 54994 - 44032: 0xC465, - 54995 - 44032: 0xC466, - 54996 - 44032: 0xC8C9, - 54997 - 44032: 0xC467, - 54998 - 44032: 0xC468, - 54999 - 44032: 0xC8CA, - 55000 - 44032: 0xC469, - 55001 - 44032: 0xC8CB, - 55002 - 44032: 0xC46A, - 55003 - 44032: 0xC46B, - 55004 - 44032: 0xC46C, - 55005 - 44032: 0xC46D, - 55006 - 44032: 0xC46E, - 55007 - 44032: 0xC46F, - 55008 - 44032: 0xC8CC, - 55009 - 44032: 0xC470, - 55010 - 44032: 0xC471, - 55011 - 44032: 0xC472, - 55012 - 44032: 0xC8CD, - 55013 - 44032: 0xC473, - 55014 - 44032: 0xC474, - 55015 - 44032: 0xC475, - 55016 - 44032: 0xC8CE, - 55017 - 44032: 0xC476, - 55018 - 44032: 0xC477, - 55019 - 44032: 0xC478, - 55020 - 44032: 0xC479, - 55021 - 44032: 0xC47A, - 55022 - 44032: 0xC481, - 55023 - 44032: 0xC482, - 55024 - 44032: 0xC8CF, - 55025 - 44032: 0xC483, - 55026 - 44032: 0xC484, - 55027 - 44032: 0xC485, - 55028 - 44032: 0xC486, - 55029 - 44032: 0xC8D0, - 55030 - 44032: 0xC487, - 55031 - 44032: 0xC488, - 55032 - 44032: 0xC489, - 55033 - 44032: 0xC48A, - 55034 - 44032: 0xC48B, - 55035 - 44032: 0xC48C, - 55036 - 44032: 0xC8D1, - 55037 - 44032: 0xC8D2, - 55038 - 44032: 0xC48D, - 55039 - 44032: 0xC48E, - 55040 - 44032: 0xC8D3, - 55041 - 44032: 0xC48F, - 55042 - 44032: 0xC490, - 55043 - 44032: 0xC491, - 55044 - 44032: 0xC8D4, - 55045 - 44032: 0xC492, - 55046 - 44032: 0xC493, - 55047 - 44032: 0xC494, - 55048 - 44032: 0xC495, - 55049 - 44032: 0xC496, - 55050 - 44032: 0xC497, - 55051 - 44032: 0xC498, - 55052 - 44032: 0xC499, - 55053 - 44032: 0xC49A, - 55054 - 44032: 0xC49B, - 55055 - 44032: 0xC49C, - 55056 - 44032: 0xC49D, - 55057 - 44032: 0xC8D5, - 55058 - 44032: 0xC49E, - 55059 - 44032: 0xC49F, - 55060 - 44032: 0xC4A0, - 55061 - 44032: 0xC541, - 55062 - 44032: 0xC542, - 55063 - 44032: 0xC543, - 55064 - 44032: 0xC8D6, - 55065 - 44032: 0xC8D7, - 55066 - 44032: 0xC544, - 55067 - 44032: 0xC545, - 55068 - 44032: 0xC8D8, - 55069 - 44032: 0xC546, - 55070 - 44032: 0xC547, - 55071 - 44032: 0xC548, - 55072 - 44032: 0xC8D9, - 55073 - 44032: 0xC549, - 55074 - 44032: 0xC54A, - 55075 - 44032: 0xC54B, - 55076 - 44032: 0xC54C, - 55077 - 44032: 0xC54D, - 55078 - 44032: 0xC54E, - 55079 - 44032: 0xC54F, - 55080 - 44032: 0xC8DA, - 55081 - 44032: 0xC8DB, - 55082 - 44032: 0xC550, - 55083 - 44032: 0xC8DC, - 55084 - 44032: 0xC551, - 55085 - 44032: 0xC8DD, - 55086 - 44032: 0xC552, - 55087 - 44032: 0xC553, - 55088 - 44032: 0xC554, - 55089 - 44032: 0xC555, - 55090 - 44032: 0xC556, - 55091 - 44032: 0xC557, - 55092 - 44032: 0xC8DE, - 55093 - 44032: 0xC8DF, - 55094 - 44032: 0xC558, - 55095 - 44032: 0xC559, - 55096 - 44032: 0xC8E0, - 55097 - 44032: 0xC55A, - 55098 - 44032: 0xC561, - 55099 - 44032: 0xC562, - 55100 - 44032: 0xC8E1, - 55101 - 44032: 0xC563, - 55102 - 44032: 0xC564, - 55103 - 44032: 0xC565, - 55104 - 44032: 0xC566, - 55105 - 44032: 0xC567, - 55106 - 44032: 0xC568, - 55107 - 44032: 0xC569, - 55108 - 44032: 0xC8E2, - 55109 - 44032: 0xC56A, - 55110 - 44032: 0xC56B, - 55111 - 44032: 0xC8E3, - 55112 - 44032: 0xC56C, - 55113 - 44032: 0xC8E4, - 55114 - 44032: 0xC56D, - 55115 - 44032: 0xC56E, - 55116 - 44032: 0xC56F, - 55117 - 44032: 0xC570, - 55118 - 44032: 0xC571, - 55119 - 44032: 0xC572, - 55120 - 44032: 0xC8E5, - 55121 - 44032: 0xC8E6, - 55122 - 44032: 0xC573, - 55123 - 44032: 0xC574, - 55124 - 44032: 0xC8E7, - 55125 - 44032: 0xC575, - 55126 - 44032: 0xC8E8, - 55127 - 44032: 0xC8E9, - 55128 - 44032: 0xC8EA, - 55129 - 44032: 0xC8EB, - 55130 - 44032: 0xC576, - 55131 - 44032: 0xC577, - 55132 - 44032: 0xC578, - 55133 - 44032: 0xC579, - 55134 - 44032: 0xC57A, - 55135 - 44032: 0xC581, - 55136 - 44032: 0xC8EC, - 55137 - 44032: 0xC8ED, - 55138 - 44032: 0xC582, - 55139 - 44032: 0xC8EE, - 55140 - 44032: 0xC583, - 55141 - 44032: 0xC8EF, - 55142 - 44032: 0xC584, - 55143 - 44032: 0xC585, - 55144 - 44032: 0xC586, - 55145 - 44032: 0xC8F0, - 55146 - 44032: 0xC587, - 55147 - 44032: 0xC588, - 55148 - 44032: 0xC8F1, - 55149 - 44032: 0xC589, - 55150 - 44032: 0xC58A, - 55151 - 44032: 0xC58B, - 55152 - 44032: 0xC8F2, - 55153 - 44032: 0xC58C, - 55154 - 44032: 0xC58D, - 55155 - 44032: 0xC58E, - 55156 - 44032: 0xC8F3, - 55157 - 44032: 0xC58F, - 55158 - 44032: 0xC590, - 55159 - 44032: 0xC591, - 55160 - 44032: 0xC592, - 55161 - 44032: 0xC593, - 55162 - 44032: 0xC594, - 55163 - 44032: 0xC595, - 55164 - 44032: 0xC8F4, - 55165 - 44032: 0xC8F5, - 55166 - 44032: 0xC596, - 55167 - 44032: 0xC597, - 55168 - 44032: 0xC598, - 55169 - 44032: 0xC8F6, - 55170 - 44032: 0xC599, - 55171 - 44032: 0xC59A, - 55172 - 44032: 0xC59B, - 55173 - 44032: 0xC59C, - 55174 - 44032: 0xC59D, - 55175 - 44032: 0xC59E, - 55176 - 44032: 0xC8F7, - 55177 - 44032: 0xC8F8, - 55178 - 44032: 0xC59F, - 55179 - 44032: 0xC5A0, - 55180 - 44032: 0xC8F9, - 55181 - 44032: 0xC641, - 55182 - 44032: 0xC642, - 55183 - 44032: 0xC643, - 55184 - 44032: 0xC8FA, - 55185 - 44032: 0xC644, - 55186 - 44032: 0xC645, - 55187 - 44032: 0xC646, - 55188 - 44032: 0xC647, - 55189 - 44032: 0xC648, - 55190 - 44032: 0xC649, - 55191 - 44032: 0xC64A, - 55192 - 44032: 0xC8FB, - 55193 - 44032: 0xC8FC, - 55194 - 44032: 0xC64B, - 55195 - 44032: 0xC8FD, - 55196 - 44032: 0xC64C, - 55197 - 44032: 0xC8FE, - 55198 - 44032: 0xC64D, - 55199 - 44032: 0xC64E, - 55200 - 44032: 0xC64F, - 55201 - 44032: 0xC650, - 55202 - 44032: 0xC651, - 55203 - 44032: 0xC652, -} - -const encode2Low, encode2High = 8213, 9838 - -var encode2 = [...]uint16{ - 8213 - 8213: 0xA1AA, - 8216 - 8213: 0xA1AE, - 8217 - 8213: 0xA1AF, - 8220 - 8213: 0xA1B0, - 8221 - 8213: 0xA1B1, - 8224 - 8213: 0xA2D3, - 8225 - 8213: 0xA2D4, - 8229 - 8213: 0xA1A5, - 8230 - 8213: 0xA1A6, - 8240 - 8213: 0xA2B6, - 8242 - 8213: 0xA1C7, - 8243 - 8213: 0xA1C8, - 8251 - 8213: 0xA1D8, - 8308 - 8213: 0xA9F9, - 8319 - 8213: 0xA9FA, - 8321 - 8213: 0xA9FB, - 8322 - 8213: 0xA9FC, - 8323 - 8213: 0xA9FD, - 8324 - 8213: 0xA9FE, - 8364 - 8213: 0xA2E6, - 8451 - 8213: 0xA1C9, - 8457 - 8213: 0xA2B5, - 8467 - 8213: 0xA7A4, - 8470 - 8213: 0xA2E0, - 8481 - 8213: 0xA2E5, - 8482 - 8213: 0xA2E2, - 8486 - 8213: 0xA7D9, - 8491 - 8213: 0xA1CA, - 8531 - 8213: 0xA8F7, - 8532 - 8213: 0xA8F8, - 8539 - 8213: 0xA8FB, - 8540 - 8213: 0xA8FC, - 8541 - 8213: 0xA8FD, - 8542 - 8213: 0xA8FE, - 8544 - 8213: 0xA5B0, - 8545 - 8213: 0xA5B1, - 8546 - 8213: 0xA5B2, - 8547 - 8213: 0xA5B3, - 8548 - 8213: 0xA5B4, - 8549 - 8213: 0xA5B5, - 8550 - 8213: 0xA5B6, - 8551 - 8213: 0xA5B7, - 8552 - 8213: 0xA5B8, - 8553 - 8213: 0xA5B9, - 8560 - 8213: 0xA5A1, - 8561 - 8213: 0xA5A2, - 8562 - 8213: 0xA5A3, - 8563 - 8213: 0xA5A4, - 8564 - 8213: 0xA5A5, - 8565 - 8213: 0xA5A6, - 8566 - 8213: 0xA5A7, - 8567 - 8213: 0xA5A8, - 8568 - 8213: 0xA5A9, - 8569 - 8213: 0xA5AA, - 8592 - 8213: 0xA1E7, - 8593 - 8213: 0xA1E8, - 8594 - 8213: 0xA1E6, - 8595 - 8213: 0xA1E9, - 8596 - 8213: 0xA1EA, - 8597 - 8213: 0xA2D5, - 8598 - 8213: 0xA2D8, - 8599 - 8213: 0xA2D6, - 8600 - 8213: 0xA2D9, - 8601 - 8213: 0xA2D7, - 8658 - 8213: 0xA2A1, - 8660 - 8213: 0xA2A2, - 8704 - 8213: 0xA2A3, - 8706 - 8213: 0xA1D3, - 8707 - 8213: 0xA2A4, - 8711 - 8213: 0xA1D4, - 8712 - 8213: 0xA1F4, - 8715 - 8213: 0xA1F5, - 8719 - 8213: 0xA2B3, - 8721 - 8213: 0xA2B2, - 8730 - 8213: 0xA1EE, - 8733 - 8213: 0xA1F0, - 8734 - 8213: 0xA1C4, - 8736 - 8213: 0xA1D0, - 8741 - 8213: 0xA1AB, - 8743 - 8213: 0xA1FC, - 8744 - 8213: 0xA1FD, - 8745 - 8213: 0xA1FB, - 8746 - 8213: 0xA1FA, - 8747 - 8213: 0xA1F2, - 8748 - 8213: 0xA1F3, - 8750 - 8213: 0xA2B1, - 8756 - 8213: 0xA1C5, - 8757 - 8213: 0xA1F1, - 8764 - 8213: 0xA1AD, - 8765 - 8213: 0xA1EF, - 8786 - 8213: 0xA1D6, - 8800 - 8213: 0xA1C1, - 8801 - 8213: 0xA1D5, - 8804 - 8213: 0xA1C2, - 8805 - 8213: 0xA1C3, - 8810 - 8213: 0xA1EC, - 8811 - 8213: 0xA1ED, - 8834 - 8213: 0xA1F8, - 8835 - 8213: 0xA1F9, - 8838 - 8213: 0xA1F6, - 8839 - 8213: 0xA1F7, - 8857 - 8213: 0xA2C1, - 8869 - 8213: 0xA1D1, - 8978 - 8213: 0xA1D2, - 9312 - 8213: 0xA8E7, - 9313 - 8213: 0xA8E8, - 9314 - 8213: 0xA8E9, - 9315 - 8213: 0xA8EA, - 9316 - 8213: 0xA8EB, - 9317 - 8213: 0xA8EC, - 9318 - 8213: 0xA8ED, - 9319 - 8213: 0xA8EE, - 9320 - 8213: 0xA8EF, - 9321 - 8213: 0xA8F0, - 9322 - 8213: 0xA8F1, - 9323 - 8213: 0xA8F2, - 9324 - 8213: 0xA8F3, - 9325 - 8213: 0xA8F4, - 9326 - 8213: 0xA8F5, - 9332 - 8213: 0xA9E7, - 9333 - 8213: 0xA9E8, - 9334 - 8213: 0xA9E9, - 9335 - 8213: 0xA9EA, - 9336 - 8213: 0xA9EB, - 9337 - 8213: 0xA9EC, - 9338 - 8213: 0xA9ED, - 9339 - 8213: 0xA9EE, - 9340 - 8213: 0xA9EF, - 9341 - 8213: 0xA9F0, - 9342 - 8213: 0xA9F1, - 9343 - 8213: 0xA9F2, - 9344 - 8213: 0xA9F3, - 9345 - 8213: 0xA9F4, - 9346 - 8213: 0xA9F5, - 9372 - 8213: 0xA9CD, - 9373 - 8213: 0xA9CE, - 9374 - 8213: 0xA9CF, - 9375 - 8213: 0xA9D0, - 9376 - 8213: 0xA9D1, - 9377 - 8213: 0xA9D2, - 9378 - 8213: 0xA9D3, - 9379 - 8213: 0xA9D4, - 9380 - 8213: 0xA9D5, - 9381 - 8213: 0xA9D6, - 9382 - 8213: 0xA9D7, - 9383 - 8213: 0xA9D8, - 9384 - 8213: 0xA9D9, - 9385 - 8213: 0xA9DA, - 9386 - 8213: 0xA9DB, - 9387 - 8213: 0xA9DC, - 9388 - 8213: 0xA9DD, - 9389 - 8213: 0xA9DE, - 9390 - 8213: 0xA9DF, - 9391 - 8213: 0xA9E0, - 9392 - 8213: 0xA9E1, - 9393 - 8213: 0xA9E2, - 9394 - 8213: 0xA9E3, - 9395 - 8213: 0xA9E4, - 9396 - 8213: 0xA9E5, - 9397 - 8213: 0xA9E6, - 9424 - 8213: 0xA8CD, - 9425 - 8213: 0xA8CE, - 9426 - 8213: 0xA8CF, - 9427 - 8213: 0xA8D0, - 9428 - 8213: 0xA8D1, - 9429 - 8213: 0xA8D2, - 9430 - 8213: 0xA8D3, - 9431 - 8213: 0xA8D4, - 9432 - 8213: 0xA8D5, - 9433 - 8213: 0xA8D6, - 9434 - 8213: 0xA8D7, - 9435 - 8213: 0xA8D8, - 9436 - 8213: 0xA8D9, - 9437 - 8213: 0xA8DA, - 9438 - 8213: 0xA8DB, - 9439 - 8213: 0xA8DC, - 9440 - 8213: 0xA8DD, - 9441 - 8213: 0xA8DE, - 9442 - 8213: 0xA8DF, - 9443 - 8213: 0xA8E0, - 9444 - 8213: 0xA8E1, - 9445 - 8213: 0xA8E2, - 9446 - 8213: 0xA8E3, - 9447 - 8213: 0xA8E4, - 9448 - 8213: 0xA8E5, - 9449 - 8213: 0xA8E6, - 9472 - 8213: 0xA6A1, - 9473 - 8213: 0xA6AC, - 9474 - 8213: 0xA6A2, - 9475 - 8213: 0xA6AD, - 9484 - 8213: 0xA6A3, - 9485 - 8213: 0xA6C8, - 9486 - 8213: 0xA6C7, - 9487 - 8213: 0xA6AE, - 9488 - 8213: 0xA6A4, - 9489 - 8213: 0xA6C2, - 9490 - 8213: 0xA6C1, - 9491 - 8213: 0xA6AF, - 9492 - 8213: 0xA6A6, - 9493 - 8213: 0xA6C6, - 9494 - 8213: 0xA6C5, - 9495 - 8213: 0xA6B1, - 9496 - 8213: 0xA6A5, - 9497 - 8213: 0xA6C4, - 9498 - 8213: 0xA6C3, - 9499 - 8213: 0xA6B0, - 9500 - 8213: 0xA6A7, - 9501 - 8213: 0xA6BC, - 9502 - 8213: 0xA6C9, - 9503 - 8213: 0xA6CA, - 9504 - 8213: 0xA6B7, - 9505 - 8213: 0xA6CB, - 9506 - 8213: 0xA6CC, - 9507 - 8213: 0xA6B2, - 9508 - 8213: 0xA6A9, - 9509 - 8213: 0xA6BE, - 9510 - 8213: 0xA6CD, - 9511 - 8213: 0xA6CE, - 9512 - 8213: 0xA6B9, - 9513 - 8213: 0xA6CF, - 9514 - 8213: 0xA6D0, - 9515 - 8213: 0xA6B4, - 9516 - 8213: 0xA6A8, - 9517 - 8213: 0xA6D1, - 9518 - 8213: 0xA6D2, - 9519 - 8213: 0xA6B8, - 9520 - 8213: 0xA6BD, - 9521 - 8213: 0xA6D3, - 9522 - 8213: 0xA6D4, - 9523 - 8213: 0xA6B3, - 9524 - 8213: 0xA6AA, - 9525 - 8213: 0xA6D5, - 9526 - 8213: 0xA6D6, - 9527 - 8213: 0xA6BA, - 9528 - 8213: 0xA6BF, - 9529 - 8213: 0xA6D7, - 9530 - 8213: 0xA6D8, - 9531 - 8213: 0xA6B5, - 9532 - 8213: 0xA6AB, - 9533 - 8213: 0xA6D9, - 9534 - 8213: 0xA6DA, - 9535 - 8213: 0xA6BB, - 9536 - 8213: 0xA6DB, - 9537 - 8213: 0xA6DC, - 9538 - 8213: 0xA6C0, - 9539 - 8213: 0xA6DD, - 9540 - 8213: 0xA6DE, - 9541 - 8213: 0xA6DF, - 9542 - 8213: 0xA6E0, - 9543 - 8213: 0xA6E1, - 9544 - 8213: 0xA6E2, - 9545 - 8213: 0xA6E3, - 9546 - 8213: 0xA6E4, - 9547 - 8213: 0xA6B6, - 9618 - 8213: 0xA2C6, - 9632 - 8213: 0xA1E1, - 9633 - 8213: 0xA1E0, - 9635 - 8213: 0xA2C3, - 9636 - 8213: 0xA2C7, - 9637 - 8213: 0xA2C8, - 9638 - 8213: 0xA2CB, - 9639 - 8213: 0xA2CA, - 9640 - 8213: 0xA2C9, - 9641 - 8213: 0xA2CC, - 9650 - 8213: 0xA1E3, - 9651 - 8213: 0xA1E2, - 9654 - 8213: 0xA2BA, - 9655 - 8213: 0xA2B9, - 9660 - 8213: 0xA1E5, - 9661 - 8213: 0xA1E4, - 9664 - 8213: 0xA2B8, - 9665 - 8213: 0xA2B7, - 9670 - 8213: 0xA1DF, - 9671 - 8213: 0xA1DE, - 9672 - 8213: 0xA2C2, - 9675 - 8213: 0xA1DB, - 9678 - 8213: 0xA1DD, - 9679 - 8213: 0xA1DC, - 9680 - 8213: 0xA2C4, - 9681 - 8213: 0xA2C5, - 9733 - 8213: 0xA1DA, - 9734 - 8213: 0xA1D9, - 9742 - 8213: 0xA2CF, - 9743 - 8213: 0xA2CE, - 9756 - 8213: 0xA2D0, - 9758 - 8213: 0xA2D1, - 9792 - 8213: 0xA1CF, - 9794 - 8213: 0xA1CE, - 9824 - 8213: 0xA2BC, - 9825 - 8213: 0xA2BD, - 9827 - 8213: 0xA2C0, - 9828 - 8213: 0xA2BB, - 9829 - 8213: 0xA2BE, - 9831 - 8213: 0xA2BF, - 9832 - 8213: 0xA2CD, - 9833 - 8213: 0xA2DB, - 9834 - 8213: 0xA2DC, - 9836 - 8213: 0xA2DD, - 9837 - 8213: 0xA2DA, -} - -const encode3Low, encode3High = 12288, 13278 - -var encode3 = [...]uint16{ - 12288 - 12288: 0xA1A1, - 12289 - 12288: 0xA1A2, - 12290 - 12288: 0xA1A3, - 12291 - 12288: 0xA1A8, - 12296 - 12288: 0xA1B4, - 12297 - 12288: 0xA1B5, - 12298 - 12288: 0xA1B6, - 12299 - 12288: 0xA1B7, - 12300 - 12288: 0xA1B8, - 12301 - 12288: 0xA1B9, - 12302 - 12288: 0xA1BA, - 12303 - 12288: 0xA1BB, - 12304 - 12288: 0xA1BC, - 12305 - 12288: 0xA1BD, - 12307 - 12288: 0xA1EB, - 12308 - 12288: 0xA1B2, - 12309 - 12288: 0xA1B3, - 12353 - 12288: 0xAAA1, - 12354 - 12288: 0xAAA2, - 12355 - 12288: 0xAAA3, - 12356 - 12288: 0xAAA4, - 12357 - 12288: 0xAAA5, - 12358 - 12288: 0xAAA6, - 12359 - 12288: 0xAAA7, - 12360 - 12288: 0xAAA8, - 12361 - 12288: 0xAAA9, - 12362 - 12288: 0xAAAA, - 12363 - 12288: 0xAAAB, - 12364 - 12288: 0xAAAC, - 12365 - 12288: 0xAAAD, - 12366 - 12288: 0xAAAE, - 12367 - 12288: 0xAAAF, - 12368 - 12288: 0xAAB0, - 12369 - 12288: 0xAAB1, - 12370 - 12288: 0xAAB2, - 12371 - 12288: 0xAAB3, - 12372 - 12288: 0xAAB4, - 12373 - 12288: 0xAAB5, - 12374 - 12288: 0xAAB6, - 12375 - 12288: 0xAAB7, - 12376 - 12288: 0xAAB8, - 12377 - 12288: 0xAAB9, - 12378 - 12288: 0xAABA, - 12379 - 12288: 0xAABB, - 12380 - 12288: 0xAABC, - 12381 - 12288: 0xAABD, - 12382 - 12288: 0xAABE, - 12383 - 12288: 0xAABF, - 12384 - 12288: 0xAAC0, - 12385 - 12288: 0xAAC1, - 12386 - 12288: 0xAAC2, - 12387 - 12288: 0xAAC3, - 12388 - 12288: 0xAAC4, - 12389 - 12288: 0xAAC5, - 12390 - 12288: 0xAAC6, - 12391 - 12288: 0xAAC7, - 12392 - 12288: 0xAAC8, - 12393 - 12288: 0xAAC9, - 12394 - 12288: 0xAACA, - 12395 - 12288: 0xAACB, - 12396 - 12288: 0xAACC, - 12397 - 12288: 0xAACD, - 12398 - 12288: 0xAACE, - 12399 - 12288: 0xAACF, - 12400 - 12288: 0xAAD0, - 12401 - 12288: 0xAAD1, - 12402 - 12288: 0xAAD2, - 12403 - 12288: 0xAAD3, - 12404 - 12288: 0xAAD4, - 12405 - 12288: 0xAAD5, - 12406 - 12288: 0xAAD6, - 12407 - 12288: 0xAAD7, - 12408 - 12288: 0xAAD8, - 12409 - 12288: 0xAAD9, - 12410 - 12288: 0xAADA, - 12411 - 12288: 0xAADB, - 12412 - 12288: 0xAADC, - 12413 - 12288: 0xAADD, - 12414 - 12288: 0xAADE, - 12415 - 12288: 0xAADF, - 12416 - 12288: 0xAAE0, - 12417 - 12288: 0xAAE1, - 12418 - 12288: 0xAAE2, - 12419 - 12288: 0xAAE3, - 12420 - 12288: 0xAAE4, - 12421 - 12288: 0xAAE5, - 12422 - 12288: 0xAAE6, - 12423 - 12288: 0xAAE7, - 12424 - 12288: 0xAAE8, - 12425 - 12288: 0xAAE9, - 12426 - 12288: 0xAAEA, - 12427 - 12288: 0xAAEB, - 12428 - 12288: 0xAAEC, - 12429 - 12288: 0xAAED, - 12430 - 12288: 0xAAEE, - 12431 - 12288: 0xAAEF, - 12432 - 12288: 0xAAF0, - 12433 - 12288: 0xAAF1, - 12434 - 12288: 0xAAF2, - 12435 - 12288: 0xAAF3, - 12449 - 12288: 0xABA1, - 12450 - 12288: 0xABA2, - 12451 - 12288: 0xABA3, - 12452 - 12288: 0xABA4, - 12453 - 12288: 0xABA5, - 12454 - 12288: 0xABA6, - 12455 - 12288: 0xABA7, - 12456 - 12288: 0xABA8, - 12457 - 12288: 0xABA9, - 12458 - 12288: 0xABAA, - 12459 - 12288: 0xABAB, - 12460 - 12288: 0xABAC, - 12461 - 12288: 0xABAD, - 12462 - 12288: 0xABAE, - 12463 - 12288: 0xABAF, - 12464 - 12288: 0xABB0, - 12465 - 12288: 0xABB1, - 12466 - 12288: 0xABB2, - 12467 - 12288: 0xABB3, - 12468 - 12288: 0xABB4, - 12469 - 12288: 0xABB5, - 12470 - 12288: 0xABB6, - 12471 - 12288: 0xABB7, - 12472 - 12288: 0xABB8, - 12473 - 12288: 0xABB9, - 12474 - 12288: 0xABBA, - 12475 - 12288: 0xABBB, - 12476 - 12288: 0xABBC, - 12477 - 12288: 0xABBD, - 12478 - 12288: 0xABBE, - 12479 - 12288: 0xABBF, - 12480 - 12288: 0xABC0, - 12481 - 12288: 0xABC1, - 12482 - 12288: 0xABC2, - 12483 - 12288: 0xABC3, - 12484 - 12288: 0xABC4, - 12485 - 12288: 0xABC5, - 12486 - 12288: 0xABC6, - 12487 - 12288: 0xABC7, - 12488 - 12288: 0xABC8, - 12489 - 12288: 0xABC9, - 12490 - 12288: 0xABCA, - 12491 - 12288: 0xABCB, - 12492 - 12288: 0xABCC, - 12493 - 12288: 0xABCD, - 12494 - 12288: 0xABCE, - 12495 - 12288: 0xABCF, - 12496 - 12288: 0xABD0, - 12497 - 12288: 0xABD1, - 12498 - 12288: 0xABD2, - 12499 - 12288: 0xABD3, - 12500 - 12288: 0xABD4, - 12501 - 12288: 0xABD5, - 12502 - 12288: 0xABD6, - 12503 - 12288: 0xABD7, - 12504 - 12288: 0xABD8, - 12505 - 12288: 0xABD9, - 12506 - 12288: 0xABDA, - 12507 - 12288: 0xABDB, - 12508 - 12288: 0xABDC, - 12509 - 12288: 0xABDD, - 12510 - 12288: 0xABDE, - 12511 - 12288: 0xABDF, - 12512 - 12288: 0xABE0, - 12513 - 12288: 0xABE1, - 12514 - 12288: 0xABE2, - 12515 - 12288: 0xABE3, - 12516 - 12288: 0xABE4, - 12517 - 12288: 0xABE5, - 12518 - 12288: 0xABE6, - 12519 - 12288: 0xABE7, - 12520 - 12288: 0xABE8, - 12521 - 12288: 0xABE9, - 12522 - 12288: 0xABEA, - 12523 - 12288: 0xABEB, - 12524 - 12288: 0xABEC, - 12525 - 12288: 0xABED, - 12526 - 12288: 0xABEE, - 12527 - 12288: 0xABEF, - 12528 - 12288: 0xABF0, - 12529 - 12288: 0xABF1, - 12530 - 12288: 0xABF2, - 12531 - 12288: 0xABF3, - 12532 - 12288: 0xABF4, - 12533 - 12288: 0xABF5, - 12534 - 12288: 0xABF6, - 12593 - 12288: 0xA4A1, - 12594 - 12288: 0xA4A2, - 12595 - 12288: 0xA4A3, - 12596 - 12288: 0xA4A4, - 12597 - 12288: 0xA4A5, - 12598 - 12288: 0xA4A6, - 12599 - 12288: 0xA4A7, - 12600 - 12288: 0xA4A8, - 12601 - 12288: 0xA4A9, - 12602 - 12288: 0xA4AA, - 12603 - 12288: 0xA4AB, - 12604 - 12288: 0xA4AC, - 12605 - 12288: 0xA4AD, - 12606 - 12288: 0xA4AE, - 12607 - 12288: 0xA4AF, - 12608 - 12288: 0xA4B0, - 12609 - 12288: 0xA4B1, - 12610 - 12288: 0xA4B2, - 12611 - 12288: 0xA4B3, - 12612 - 12288: 0xA4B4, - 12613 - 12288: 0xA4B5, - 12614 - 12288: 0xA4B6, - 12615 - 12288: 0xA4B7, - 12616 - 12288: 0xA4B8, - 12617 - 12288: 0xA4B9, - 12618 - 12288: 0xA4BA, - 12619 - 12288: 0xA4BB, - 12620 - 12288: 0xA4BC, - 12621 - 12288: 0xA4BD, - 12622 - 12288: 0xA4BE, - 12623 - 12288: 0xA4BF, - 12624 - 12288: 0xA4C0, - 12625 - 12288: 0xA4C1, - 12626 - 12288: 0xA4C2, - 12627 - 12288: 0xA4C3, - 12628 - 12288: 0xA4C4, - 12629 - 12288: 0xA4C5, - 12630 - 12288: 0xA4C6, - 12631 - 12288: 0xA4C7, - 12632 - 12288: 0xA4C8, - 12633 - 12288: 0xA4C9, - 12634 - 12288: 0xA4CA, - 12635 - 12288: 0xA4CB, - 12636 - 12288: 0xA4CC, - 12637 - 12288: 0xA4CD, - 12638 - 12288: 0xA4CE, - 12639 - 12288: 0xA4CF, - 12640 - 12288: 0xA4D0, - 12641 - 12288: 0xA4D1, - 12642 - 12288: 0xA4D2, - 12643 - 12288: 0xA4D3, - 12644 - 12288: 0xA4D4, - 12645 - 12288: 0xA4D5, - 12646 - 12288: 0xA4D6, - 12647 - 12288: 0xA4D7, - 12648 - 12288: 0xA4D8, - 12649 - 12288: 0xA4D9, - 12650 - 12288: 0xA4DA, - 12651 - 12288: 0xA4DB, - 12652 - 12288: 0xA4DC, - 12653 - 12288: 0xA4DD, - 12654 - 12288: 0xA4DE, - 12655 - 12288: 0xA4DF, - 12656 - 12288: 0xA4E0, - 12657 - 12288: 0xA4E1, - 12658 - 12288: 0xA4E2, - 12659 - 12288: 0xA4E3, - 12660 - 12288: 0xA4E4, - 12661 - 12288: 0xA4E5, - 12662 - 12288: 0xA4E6, - 12663 - 12288: 0xA4E7, - 12664 - 12288: 0xA4E8, - 12665 - 12288: 0xA4E9, - 12666 - 12288: 0xA4EA, - 12667 - 12288: 0xA4EB, - 12668 - 12288: 0xA4EC, - 12669 - 12288: 0xA4ED, - 12670 - 12288: 0xA4EE, - 12671 - 12288: 0xA4EF, - 12672 - 12288: 0xA4F0, - 12673 - 12288: 0xA4F1, - 12674 - 12288: 0xA4F2, - 12675 - 12288: 0xA4F3, - 12676 - 12288: 0xA4F4, - 12677 - 12288: 0xA4F5, - 12678 - 12288: 0xA4F6, - 12679 - 12288: 0xA4F7, - 12680 - 12288: 0xA4F8, - 12681 - 12288: 0xA4F9, - 12682 - 12288: 0xA4FA, - 12683 - 12288: 0xA4FB, - 12684 - 12288: 0xA4FC, - 12685 - 12288: 0xA4FD, - 12686 - 12288: 0xA4FE, - 12800 - 12288: 0xA9B1, - 12801 - 12288: 0xA9B2, - 12802 - 12288: 0xA9B3, - 12803 - 12288: 0xA9B4, - 12804 - 12288: 0xA9B5, - 12805 - 12288: 0xA9B6, - 12806 - 12288: 0xA9B7, - 12807 - 12288: 0xA9B8, - 12808 - 12288: 0xA9B9, - 12809 - 12288: 0xA9BA, - 12810 - 12288: 0xA9BB, - 12811 - 12288: 0xA9BC, - 12812 - 12288: 0xA9BD, - 12813 - 12288: 0xA9BE, - 12814 - 12288: 0xA9BF, - 12815 - 12288: 0xA9C0, - 12816 - 12288: 0xA9C1, - 12817 - 12288: 0xA9C2, - 12818 - 12288: 0xA9C3, - 12819 - 12288: 0xA9C4, - 12820 - 12288: 0xA9C5, - 12821 - 12288: 0xA9C6, - 12822 - 12288: 0xA9C7, - 12823 - 12288: 0xA9C8, - 12824 - 12288: 0xA9C9, - 12825 - 12288: 0xA9CA, - 12826 - 12288: 0xA9CB, - 12827 - 12288: 0xA9CC, - 12828 - 12288: 0xA2DF, - 12896 - 12288: 0xA8B1, - 12897 - 12288: 0xA8B2, - 12898 - 12288: 0xA8B3, - 12899 - 12288: 0xA8B4, - 12900 - 12288: 0xA8B5, - 12901 - 12288: 0xA8B6, - 12902 - 12288: 0xA8B7, - 12903 - 12288: 0xA8B8, - 12904 - 12288: 0xA8B9, - 12905 - 12288: 0xA8BA, - 12906 - 12288: 0xA8BB, - 12907 - 12288: 0xA8BC, - 12908 - 12288: 0xA8BD, - 12909 - 12288: 0xA8BE, - 12910 - 12288: 0xA8BF, - 12911 - 12288: 0xA8C0, - 12912 - 12288: 0xA8C1, - 12913 - 12288: 0xA8C2, - 12914 - 12288: 0xA8C3, - 12915 - 12288: 0xA8C4, - 12916 - 12288: 0xA8C5, - 12917 - 12288: 0xA8C6, - 12918 - 12288: 0xA8C7, - 12919 - 12288: 0xA8C8, - 12920 - 12288: 0xA8C9, - 12921 - 12288: 0xA8CA, - 12922 - 12288: 0xA8CB, - 12923 - 12288: 0xA8CC, - 12927 - 12288: 0xA2DE, - 13184 - 12288: 0xA7C9, - 13185 - 12288: 0xA7CA, - 13186 - 12288: 0xA7CB, - 13187 - 12288: 0xA7CC, - 13188 - 12288: 0xA7CD, - 13192 - 12288: 0xA7BA, - 13193 - 12288: 0xA7BB, - 13194 - 12288: 0xA7DC, - 13195 - 12288: 0xA7DD, - 13196 - 12288: 0xA7DE, - 13197 - 12288: 0xA7B6, - 13198 - 12288: 0xA7B7, - 13199 - 12288: 0xA7B8, - 13200 - 12288: 0xA7D4, - 13201 - 12288: 0xA7D5, - 13202 - 12288: 0xA7D6, - 13203 - 12288: 0xA7D7, - 13204 - 12288: 0xA7D8, - 13205 - 12288: 0xA7A1, - 13206 - 12288: 0xA7A2, - 13207 - 12288: 0xA7A3, - 13208 - 12288: 0xA7A5, - 13209 - 12288: 0xA7AB, - 13210 - 12288: 0xA7AC, - 13211 - 12288: 0xA7AD, - 13212 - 12288: 0xA7AE, - 13213 - 12288: 0xA7AF, - 13214 - 12288: 0xA7B0, - 13215 - 12288: 0xA7B1, - 13216 - 12288: 0xA7B2, - 13217 - 12288: 0xA7B3, - 13218 - 12288: 0xA7B4, - 13219 - 12288: 0xA7A7, - 13220 - 12288: 0xA7A8, - 13221 - 12288: 0xA7A9, - 13222 - 12288: 0xA7AA, - 13223 - 12288: 0xA7BD, - 13224 - 12288: 0xA7BE, - 13225 - 12288: 0xA7E5, - 13226 - 12288: 0xA7E6, - 13227 - 12288: 0xA7E7, - 13228 - 12288: 0xA7E8, - 13229 - 12288: 0xA7E1, - 13230 - 12288: 0xA7E2, - 13231 - 12288: 0xA7E3, - 13232 - 12288: 0xA7BF, - 13233 - 12288: 0xA7C0, - 13234 - 12288: 0xA7C1, - 13235 - 12288: 0xA7C2, - 13236 - 12288: 0xA7C3, - 13237 - 12288: 0xA7C4, - 13238 - 12288: 0xA7C5, - 13239 - 12288: 0xA7C6, - 13240 - 12288: 0xA7C7, - 13241 - 12288: 0xA7C8, - 13242 - 12288: 0xA7CE, - 13243 - 12288: 0xA7CF, - 13244 - 12288: 0xA7D0, - 13245 - 12288: 0xA7D1, - 13246 - 12288: 0xA7D2, - 13247 - 12288: 0xA7D3, - 13248 - 12288: 0xA7DA, - 13249 - 12288: 0xA7DB, - 13250 - 12288: 0xA2E3, - 13251 - 12288: 0xA7EC, - 13252 - 12288: 0xA7A6, - 13253 - 12288: 0xA7E0, - 13254 - 12288: 0xA7EF, - 13255 - 12288: 0xA2E1, - 13256 - 12288: 0xA7BC, - 13257 - 12288: 0xA7ED, - 13258 - 12288: 0xA7B5, - 13263 - 12288: 0xA7B9, - 13264 - 12288: 0xA7EA, - 13267 - 12288: 0xA7EB, - 13270 - 12288: 0xA7DF, - 13272 - 12288: 0xA2E4, - 13275 - 12288: 0xA7E4, - 13276 - 12288: 0xA7EE, - 13277 - 12288: 0xA7E9, -} - -const encode4Low, encode4High = 161, 1106 - -var encode4 = [...]uint16{ - 161 - 161: 0xA2AE, - 164 - 161: 0xA2B4, - 167 - 161: 0xA1D7, - 168 - 161: 0xA1A7, - 170 - 161: 0xA8A3, - 173 - 161: 0xA1A9, - 174 - 161: 0xA2E7, - 176 - 161: 0xA1C6, - 177 - 161: 0xA1BE, - 178 - 161: 0xA9F7, - 179 - 161: 0xA9F8, - 180 - 161: 0xA2A5, - 182 - 161: 0xA2D2, - 183 - 161: 0xA1A4, - 184 - 161: 0xA2AC, - 185 - 161: 0xA9F6, - 186 - 161: 0xA8AC, - 188 - 161: 0xA8F9, - 189 - 161: 0xA8F6, - 190 - 161: 0xA8FA, - 191 - 161: 0xA2AF, - 198 - 161: 0xA8A1, - 208 - 161: 0xA8A2, - 215 - 161: 0xA1BF, - 216 - 161: 0xA8AA, - 222 - 161: 0xA8AD, - 223 - 161: 0xA9AC, - 230 - 161: 0xA9A1, - 240 - 161: 0xA9A3, - 247 - 161: 0xA1C0, - 248 - 161: 0xA9AA, - 254 - 161: 0xA9AD, - 273 - 161: 0xA9A2, - 294 - 161: 0xA8A4, - 295 - 161: 0xA9A4, - 305 - 161: 0xA9A5, - 306 - 161: 0xA8A6, - 307 - 161: 0xA9A6, - 312 - 161: 0xA9A7, - 319 - 161: 0xA8A8, - 320 - 161: 0xA9A8, - 321 - 161: 0xA8A9, - 322 - 161: 0xA9A9, - 329 - 161: 0xA9B0, - 330 - 161: 0xA8AF, - 331 - 161: 0xA9AF, - 338 - 161: 0xA8AB, - 339 - 161: 0xA9AB, - 358 - 161: 0xA8AE, - 359 - 161: 0xA9AE, - 711 - 161: 0xA2A7, - 720 - 161: 0xA2B0, - 728 - 161: 0xA2A8, - 729 - 161: 0xA2AB, - 730 - 161: 0xA2AA, - 731 - 161: 0xA2AD, - 733 - 161: 0xA2A9, - 913 - 161: 0xA5C1, - 914 - 161: 0xA5C2, - 915 - 161: 0xA5C3, - 916 - 161: 0xA5C4, - 917 - 161: 0xA5C5, - 918 - 161: 0xA5C6, - 919 - 161: 0xA5C7, - 920 - 161: 0xA5C8, - 921 - 161: 0xA5C9, - 922 - 161: 0xA5CA, - 923 - 161: 0xA5CB, - 924 - 161: 0xA5CC, - 925 - 161: 0xA5CD, - 926 - 161: 0xA5CE, - 927 - 161: 0xA5CF, - 928 - 161: 0xA5D0, - 929 - 161: 0xA5D1, - 931 - 161: 0xA5D2, - 932 - 161: 0xA5D3, - 933 - 161: 0xA5D4, - 934 - 161: 0xA5D5, - 935 - 161: 0xA5D6, - 936 - 161: 0xA5D7, - 937 - 161: 0xA5D8, - 945 - 161: 0xA5E1, - 946 - 161: 0xA5E2, - 947 - 161: 0xA5E3, - 948 - 161: 0xA5E4, - 949 - 161: 0xA5E5, - 950 - 161: 0xA5E6, - 951 - 161: 0xA5E7, - 952 - 161: 0xA5E8, - 953 - 161: 0xA5E9, - 954 - 161: 0xA5EA, - 955 - 161: 0xA5EB, - 956 - 161: 0xA5EC, - 957 - 161: 0xA5ED, - 958 - 161: 0xA5EE, - 959 - 161: 0xA5EF, - 960 - 161: 0xA5F0, - 961 - 161: 0xA5F1, - 963 - 161: 0xA5F2, - 964 - 161: 0xA5F3, - 965 - 161: 0xA5F4, - 966 - 161: 0xA5F5, - 967 - 161: 0xA5F6, - 968 - 161: 0xA5F7, - 969 - 161: 0xA5F8, - 1025 - 161: 0xACA7, - 1040 - 161: 0xACA1, - 1041 - 161: 0xACA2, - 1042 - 161: 0xACA3, - 1043 - 161: 0xACA4, - 1044 - 161: 0xACA5, - 1045 - 161: 0xACA6, - 1046 - 161: 0xACA8, - 1047 - 161: 0xACA9, - 1048 - 161: 0xACAA, - 1049 - 161: 0xACAB, - 1050 - 161: 0xACAC, - 1051 - 161: 0xACAD, - 1052 - 161: 0xACAE, - 1053 - 161: 0xACAF, - 1054 - 161: 0xACB0, - 1055 - 161: 0xACB1, - 1056 - 161: 0xACB2, - 1057 - 161: 0xACB3, - 1058 - 161: 0xACB4, - 1059 - 161: 0xACB5, - 1060 - 161: 0xACB6, - 1061 - 161: 0xACB7, - 1062 - 161: 0xACB8, - 1063 - 161: 0xACB9, - 1064 - 161: 0xACBA, - 1065 - 161: 0xACBB, - 1066 - 161: 0xACBC, - 1067 - 161: 0xACBD, - 1068 - 161: 0xACBE, - 1069 - 161: 0xACBF, - 1070 - 161: 0xACC0, - 1071 - 161: 0xACC1, - 1072 - 161: 0xACD1, - 1073 - 161: 0xACD2, - 1074 - 161: 0xACD3, - 1075 - 161: 0xACD4, - 1076 - 161: 0xACD5, - 1077 - 161: 0xACD6, - 1078 - 161: 0xACD8, - 1079 - 161: 0xACD9, - 1080 - 161: 0xACDA, - 1081 - 161: 0xACDB, - 1082 - 161: 0xACDC, - 1083 - 161: 0xACDD, - 1084 - 161: 0xACDE, - 1085 - 161: 0xACDF, - 1086 - 161: 0xACE0, - 1087 - 161: 0xACE1, - 1088 - 161: 0xACE2, - 1089 - 161: 0xACE3, - 1090 - 161: 0xACE4, - 1091 - 161: 0xACE5, - 1092 - 161: 0xACE6, - 1093 - 161: 0xACE7, - 1094 - 161: 0xACE8, - 1095 - 161: 0xACE9, - 1096 - 161: 0xACEA, - 1097 - 161: 0xACEB, - 1098 - 161: 0xACEC, - 1099 - 161: 0xACED, - 1100 - 161: 0xACEE, - 1101 - 161: 0xACEF, - 1102 - 161: 0xACF0, - 1103 - 161: 0xACF1, - 1105 - 161: 0xACD7, -} - -const encode5Low, encode5High = 63744, 64012 - -var encode5 = [...]uint16{ - 63744 - 63744: 0xCBD0, - 63745 - 63744: 0xCBD6, - 63746 - 63744: 0xCBE7, - 63747 - 63744: 0xCDCF, - 63748 - 63744: 0xCDE8, - 63749 - 63744: 0xCEAD, - 63750 - 63744: 0xCFFB, - 63751 - 63744: 0xD0A2, - 63752 - 63744: 0xD0B8, - 63753 - 63744: 0xD0D0, - 63754 - 63744: 0xD0DD, - 63755 - 63744: 0xD1D4, - 63756 - 63744: 0xD1D5, - 63757 - 63744: 0xD1D8, - 63758 - 63744: 0xD1DB, - 63759 - 63744: 0xD1DC, - 63760 - 63744: 0xD1DD, - 63761 - 63744: 0xD1DE, - 63762 - 63744: 0xD1DF, - 63763 - 63744: 0xD1E0, - 63764 - 63744: 0xD1E2, - 63765 - 63744: 0xD1E3, - 63766 - 63744: 0xD1E4, - 63767 - 63744: 0xD1E5, - 63768 - 63744: 0xD1E6, - 63769 - 63744: 0xD1E8, - 63770 - 63744: 0xD1E9, - 63771 - 63744: 0xD1EA, - 63772 - 63744: 0xD1EB, - 63773 - 63744: 0xD1ED, - 63774 - 63744: 0xD1EF, - 63775 - 63744: 0xD1F0, - 63776 - 63744: 0xD1F2, - 63777 - 63744: 0xD1F6, - 63778 - 63744: 0xD1FA, - 63779 - 63744: 0xD1FC, - 63780 - 63744: 0xD1FD, - 63781 - 63744: 0xD1FE, - 63782 - 63744: 0xD2A2, - 63783 - 63744: 0xD2A3, - 63784 - 63744: 0xD2A7, - 63785 - 63744: 0xD2A8, - 63786 - 63744: 0xD2A9, - 63787 - 63744: 0xD2AA, - 63788 - 63744: 0xD2AB, - 63789 - 63744: 0xD2AD, - 63790 - 63744: 0xD2B2, - 63791 - 63744: 0xD2BE, - 63792 - 63744: 0xD2C2, - 63793 - 63744: 0xD2C3, - 63794 - 63744: 0xD2C4, - 63795 - 63744: 0xD2C6, - 63796 - 63744: 0xD2C7, - 63797 - 63744: 0xD2C8, - 63798 - 63744: 0xD2C9, - 63799 - 63744: 0xD2CA, - 63800 - 63744: 0xD2CB, - 63801 - 63744: 0xD2CD, - 63802 - 63744: 0xD2CE, - 63803 - 63744: 0xD2CF, - 63804 - 63744: 0xD2D0, - 63805 - 63744: 0xD2D1, - 63806 - 63744: 0xD2D2, - 63807 - 63744: 0xD2D3, - 63808 - 63744: 0xD2D4, - 63809 - 63744: 0xD2D5, - 63810 - 63744: 0xD2D6, - 63811 - 63744: 0xD2D7, - 63812 - 63744: 0xD2D9, - 63813 - 63744: 0xD2DA, - 63814 - 63744: 0xD2DE, - 63815 - 63744: 0xD2DF, - 63816 - 63744: 0xD2E1, - 63817 - 63744: 0xD2E2, - 63818 - 63744: 0xD2E4, - 63819 - 63744: 0xD2E5, - 63820 - 63744: 0xD2E6, - 63821 - 63744: 0xD2E7, - 63822 - 63744: 0xD2E8, - 63823 - 63744: 0xD2E9, - 63824 - 63744: 0xD2EA, - 63825 - 63744: 0xD2EB, - 63826 - 63744: 0xD2F0, - 63827 - 63744: 0xD2F1, - 63828 - 63744: 0xD2F2, - 63829 - 63744: 0xD2F3, - 63830 - 63744: 0xD2F4, - 63831 - 63744: 0xD2F5, - 63832 - 63744: 0xD2F7, - 63833 - 63744: 0xD2F8, - 63834 - 63744: 0xD4E6, - 63835 - 63744: 0xD4FC, - 63836 - 63744: 0xD5A5, - 63837 - 63744: 0xD5AB, - 63838 - 63744: 0xD5AE, - 63839 - 63744: 0xD6B8, - 63840 - 63744: 0xD6CD, - 63841 - 63744: 0xD7CB, - 63842 - 63744: 0xD7E4, - 63843 - 63744: 0xDBC5, - 63844 - 63744: 0xDBE4, - 63845 - 63744: 0xDCA5, - 63846 - 63744: 0xDDA5, - 63847 - 63744: 0xDDD5, - 63848 - 63744: 0xDDF4, - 63849 - 63744: 0xDEFC, - 63850 - 63744: 0xDEFE, - 63851 - 63744: 0xDFB3, - 63852 - 63744: 0xDFE1, - 63853 - 63744: 0xDFE8, - 63854 - 63744: 0xE0F1, - 63855 - 63744: 0xE1AD, - 63856 - 63744: 0xE1ED, - 63857 - 63744: 0xE3F5, - 63858 - 63744: 0xE4A1, - 63859 - 63744: 0xE4A9, - 63860 - 63744: 0xE5AE, - 63861 - 63744: 0xE5B1, - 63862 - 63744: 0xE5B2, - 63863 - 63744: 0xE5B9, - 63864 - 63744: 0xE5BB, - 63865 - 63744: 0xE5BC, - 63866 - 63744: 0xE5C4, - 63867 - 63744: 0xE5CE, - 63868 - 63744: 0xE5D0, - 63869 - 63744: 0xE5D2, - 63870 - 63744: 0xE5D6, - 63871 - 63744: 0xE5FA, - 63872 - 63744: 0xE5FB, - 63873 - 63744: 0xE5FC, - 63874 - 63744: 0xE5FE, - 63875 - 63744: 0xE6A1, - 63876 - 63744: 0xE6A4, - 63877 - 63744: 0xE6A7, - 63878 - 63744: 0xE6AD, - 63879 - 63744: 0xE6AF, - 63880 - 63744: 0xE6B0, - 63881 - 63744: 0xE6B1, - 63882 - 63744: 0xE6B3, - 63883 - 63744: 0xE6B7, - 63884 - 63744: 0xE6B8, - 63885 - 63744: 0xE6BC, - 63886 - 63744: 0xE6C4, - 63887 - 63744: 0xE6C6, - 63888 - 63744: 0xE6C7, - 63889 - 63744: 0xE6CA, - 63890 - 63744: 0xE6D2, - 63891 - 63744: 0xE6D6, - 63892 - 63744: 0xE6D9, - 63893 - 63744: 0xE6DC, - 63894 - 63744: 0xE6DF, - 63895 - 63744: 0xE6E1, - 63896 - 63744: 0xE6E4, - 63897 - 63744: 0xE6E5, - 63898 - 63744: 0xE6E6, - 63899 - 63744: 0xE6E8, - 63900 - 63744: 0xE6EA, - 63901 - 63744: 0xE6EB, - 63902 - 63744: 0xE6EC, - 63903 - 63744: 0xE6EF, - 63904 - 63744: 0xE6F1, - 63905 - 63744: 0xE6F2, - 63906 - 63744: 0xE6F5, - 63907 - 63744: 0xE6F6, - 63908 - 63744: 0xE6F7, - 63909 - 63744: 0xE6F9, - 63910 - 63744: 0xE7A1, - 63911 - 63744: 0xE7A6, - 63912 - 63744: 0xE7A9, - 63913 - 63744: 0xE7AA, - 63914 - 63744: 0xE7AC, - 63915 - 63744: 0xE7AD, - 63916 - 63744: 0xE7B0, - 63917 - 63744: 0xE7BF, - 63918 - 63744: 0xE7C1, - 63919 - 63744: 0xE7C6, - 63920 - 63744: 0xE7C7, - 63921 - 63744: 0xE7CB, - 63922 - 63744: 0xE7CD, - 63923 - 63744: 0xE7CF, - 63924 - 63744: 0xE7D0, - 63925 - 63744: 0xE7D3, - 63926 - 63744: 0xE7DF, - 63927 - 63744: 0xE7E4, - 63928 - 63744: 0xE7E6, - 63929 - 63744: 0xE7F7, - 63930 - 63744: 0xE8E7, - 63931 - 63744: 0xE8E8, - 63932 - 63744: 0xE8F0, - 63933 - 63744: 0xE8F1, - 63934 - 63744: 0xE8F7, - 63935 - 63744: 0xE8F9, - 63936 - 63744: 0xE8FB, - 63937 - 63744: 0xE8FE, - 63938 - 63744: 0xE9A7, - 63939 - 63744: 0xE9AC, - 63940 - 63744: 0xE9CC, - 63941 - 63744: 0xE9F7, - 63942 - 63744: 0xEAC1, - 63943 - 63744: 0xEAE5, - 63944 - 63744: 0xEAF4, - 63945 - 63744: 0xEAF7, - 63946 - 63744: 0xEAFC, - 63947 - 63744: 0xEAFE, - 63948 - 63744: 0xEBA4, - 63949 - 63744: 0xEBA7, - 63950 - 63744: 0xEBA9, - 63951 - 63744: 0xEBAA, - 63952 - 63744: 0xEBBA, - 63953 - 63744: 0xEBBB, - 63954 - 63744: 0xEBBD, - 63955 - 63744: 0xEBC1, - 63956 - 63744: 0xEBC2, - 63957 - 63744: 0xEBC6, - 63958 - 63744: 0xEBC7, - 63959 - 63744: 0xEBCC, - 63960 - 63744: 0xEBCF, - 63961 - 63744: 0xEBD0, - 63962 - 63744: 0xEBD1, - 63963 - 63744: 0xEBD2, - 63964 - 63744: 0xEBD8, - 63965 - 63744: 0xECA6, - 63966 - 63744: 0xECA7, - 63967 - 63744: 0xECAA, - 63968 - 63744: 0xECAF, - 63969 - 63744: 0xECB0, - 63970 - 63744: 0xECB1, - 63971 - 63744: 0xECB2, - 63972 - 63744: 0xECB5, - 63973 - 63744: 0xECB8, - 63974 - 63744: 0xECBA, - 63975 - 63744: 0xECC0, - 63976 - 63744: 0xECC1, - 63977 - 63744: 0xECC5, - 63978 - 63744: 0xECC6, - 63979 - 63744: 0xECC9, - 63980 - 63744: 0xECCA, - 63981 - 63744: 0xECD5, - 63982 - 63744: 0xECDD, - 63983 - 63744: 0xECDE, - 63984 - 63744: 0xECE1, - 63985 - 63744: 0xECE4, - 63986 - 63744: 0xECE7, - 63987 - 63744: 0xECE8, - 63988 - 63744: 0xECF7, - 63989 - 63744: 0xECF8, - 63990 - 63744: 0xECFA, - 63991 - 63744: 0xEDA1, - 63992 - 63744: 0xEDA2, - 63993 - 63744: 0xEDA3, - 63994 - 63744: 0xEDEE, - 63995 - 63744: 0xEEDB, - 63996 - 63744: 0xF2BD, - 63997 - 63744: 0xF2FA, - 63998 - 63744: 0xF3B1, - 63999 - 63744: 0xF4A7, - 64000 - 63744: 0xF4EE, - 64001 - 63744: 0xF6F4, - 64002 - 63744: 0xF6F6, - 64003 - 63744: 0xF7B8, - 64004 - 63744: 0xF7C8, - 64005 - 63744: 0xF7D3, - 64006 - 63744: 0xF8DB, - 64007 - 63744: 0xF8F0, - 64008 - 63744: 0xFAA1, - 64009 - 63744: 0xFAA2, - 64010 - 63744: 0xFAE6, - 64011 - 63744: 0xFCA9, -} - -const encode6Low, encode6High = 65281, 65511 - -var encode6 = [...]uint16{ - 65281 - 65281: 0xA3A1, - 65282 - 65281: 0xA3A2, - 65283 - 65281: 0xA3A3, - 65284 - 65281: 0xA3A4, - 65285 - 65281: 0xA3A5, - 65286 - 65281: 0xA3A6, - 65287 - 65281: 0xA3A7, - 65288 - 65281: 0xA3A8, - 65289 - 65281: 0xA3A9, - 65290 - 65281: 0xA3AA, - 65291 - 65281: 0xA3AB, - 65292 - 65281: 0xA3AC, - 65293 - 65281: 0xA3AD, - 65294 - 65281: 0xA3AE, - 65295 - 65281: 0xA3AF, - 65296 - 65281: 0xA3B0, - 65297 - 65281: 0xA3B1, - 65298 - 65281: 0xA3B2, - 65299 - 65281: 0xA3B3, - 65300 - 65281: 0xA3B4, - 65301 - 65281: 0xA3B5, - 65302 - 65281: 0xA3B6, - 65303 - 65281: 0xA3B7, - 65304 - 65281: 0xA3B8, - 65305 - 65281: 0xA3B9, - 65306 - 65281: 0xA3BA, - 65307 - 65281: 0xA3BB, - 65308 - 65281: 0xA3BC, - 65309 - 65281: 0xA3BD, - 65310 - 65281: 0xA3BE, - 65311 - 65281: 0xA3BF, - 65312 - 65281: 0xA3C0, - 65313 - 65281: 0xA3C1, - 65314 - 65281: 0xA3C2, - 65315 - 65281: 0xA3C3, - 65316 - 65281: 0xA3C4, - 65317 - 65281: 0xA3C5, - 65318 - 65281: 0xA3C6, - 65319 - 65281: 0xA3C7, - 65320 - 65281: 0xA3C8, - 65321 - 65281: 0xA3C9, - 65322 - 65281: 0xA3CA, - 65323 - 65281: 0xA3CB, - 65324 - 65281: 0xA3CC, - 65325 - 65281: 0xA3CD, - 65326 - 65281: 0xA3CE, - 65327 - 65281: 0xA3CF, - 65328 - 65281: 0xA3D0, - 65329 - 65281: 0xA3D1, - 65330 - 65281: 0xA3D2, - 65331 - 65281: 0xA3D3, - 65332 - 65281: 0xA3D4, - 65333 - 65281: 0xA3D5, - 65334 - 65281: 0xA3D6, - 65335 - 65281: 0xA3D7, - 65336 - 65281: 0xA3D8, - 65337 - 65281: 0xA3D9, - 65338 - 65281: 0xA3DA, - 65339 - 65281: 0xA3DB, - 65340 - 65281: 0xA1AC, - 65341 - 65281: 0xA3DD, - 65342 - 65281: 0xA3DE, - 65343 - 65281: 0xA3DF, - 65344 - 65281: 0xA3E0, - 65345 - 65281: 0xA3E1, - 65346 - 65281: 0xA3E2, - 65347 - 65281: 0xA3E3, - 65348 - 65281: 0xA3E4, - 65349 - 65281: 0xA3E5, - 65350 - 65281: 0xA3E6, - 65351 - 65281: 0xA3E7, - 65352 - 65281: 0xA3E8, - 65353 - 65281: 0xA3E9, - 65354 - 65281: 0xA3EA, - 65355 - 65281: 0xA3EB, - 65356 - 65281: 0xA3EC, - 65357 - 65281: 0xA3ED, - 65358 - 65281: 0xA3EE, - 65359 - 65281: 0xA3EF, - 65360 - 65281: 0xA3F0, - 65361 - 65281: 0xA3F1, - 65362 - 65281: 0xA3F2, - 65363 - 65281: 0xA3F3, - 65364 - 65281: 0xA3F4, - 65365 - 65281: 0xA3F5, - 65366 - 65281: 0xA3F6, - 65367 - 65281: 0xA3F7, - 65368 - 65281: 0xA3F8, - 65369 - 65281: 0xA3F9, - 65370 - 65281: 0xA3FA, - 65371 - 65281: 0xA3FB, - 65372 - 65281: 0xA3FC, - 65373 - 65281: 0xA3FD, - 65374 - 65281: 0xA2A6, - 65504 - 65281: 0xA1CB, - 65505 - 65281: 0xA1CC, - 65506 - 65281: 0xA1FE, - 65507 - 65281: 0xA3FE, - 65509 - 65281: 0xA1CD, - 65510 - 65281: 0xA3DC, -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/all.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/all.go deleted file mode 100644 index bffd993a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/all.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package simplifiedchinese - -import ( - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{GB18030, GBK, HZGB2312} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/gbk.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/gbk.go deleted file mode 100644 index 4ffce4d6..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/gbk.go +++ /dev/null @@ -1,280 +0,0 @@ -// 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 simplifiedchinese - -import ( - "errors" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -var ( - // GB18030 is the GB18030 encoding. - GB18030 encoding.Encoding = &gbk18030 - // GBK is the GBK encoding. It encodes an extension of the GB2312 character set - // and is also known as Code Page 936. - GBK encoding.Encoding = &gbk -) - -var gbk = internal.Encoding{ - &internal.SimpleEncoding{ - gbkDecoder{gb18030: false}, - gbkEncoder{gb18030: false}, - }, - "GBK", - identifier.GBK, -} - -var gbk18030 = internal.Encoding{ - &internal.SimpleEncoding{ - gbkDecoder{gb18030: true}, - gbkEncoder{gb18030: true}, - }, - "GB18030", - identifier.GB18030, -} - -var ( - errInvalidGB18030 = errors.New("simplifiedchinese: invalid GB18030 encoding") - errInvalidGBK = errors.New("simplifiedchinese: invalid GBK encoding") -) - -type gbkDecoder struct { - transform.NopResetter - gb18030 bool -} - -func (d gbkDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - // Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC - // as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk - // says to treat "gbk" as Code Page 936. - case c0 == 0x80: - r, size = '€', 1 - - case c0 < 0xff: - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - switch { - case 0x40 <= c1 && c1 < 0x7f: - c1 -= 0x40 - case 0x80 <= c1 && c1 < 0xff: - c1 -= 0x41 - case d.gb18030 && 0x30 <= c1 && c1 < 0x40: - if nSrc+3 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c2 := src[nSrc+2] - if c2 < 0x81 || 0xff <= c2 { - err = errInvalidGB18030 - break loop - } - c3 := src[nSrc+3] - if c3 < 0x30 || 0x3a <= c3 { - err = errInvalidGB18030 - break loop - } - size = 4 - r = ((rune(c0-0x81)*10+rune(c1-0x30))*126+rune(c2-0x81))*10 + rune(c3-0x30) - if r < 39420 { - i, j := 0, len(gb18030) - for i < j { - h := i + (j-i)/2 - if r >= rune(gb18030[h][0]) { - i = h + 1 - } else { - j = h - } - } - dec := &gb18030[i-1] - r += rune(dec[1]) - rune(dec[0]) - goto write - } - r -= 189000 - if 0 <= r && r < 0x100000 { - r += 0x10000 - goto write - } - err = errInvalidGB18030 - break loop - default: - if d.gb18030 { - err = errInvalidGB18030 - } else { - err = errInvalidGBK - } - break loop - } - r, size = '\ufffd', 2 - if i := int(c0-0x81)*190 + int(c1); i < len(decode) { - r = rune(decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - default: - if d.gb18030 { - err = errInvalidGB18030 - } else { - err = errInvalidGBK - } - break loop - } - - write: - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - if atEOF && err == transform.ErrShortSrc { - if d.gb18030 { - err = errInvalidGB18030 - } else { - err = errInvalidGBK - } - } - return nDst, nSrc, err -} - -type gbkEncoder struct { - transform.NopResetter - gb18030 bool -} - -func (e gbkEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, r2, size := rune(0), rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r2 = rune(encode0[r-encode0Low]); r2 != 0 { - goto write2 - } - case encode1Low <= r && r < encode1High: - // Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC - // as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk - // says to treat "gbk" as Code Page 936. - if r == '€' { - r = 0x80 - goto write1 - } - if r2 = rune(encode1[r-encode1Low]); r2 != 0 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r2 = rune(encode2[r-encode2Low]); r2 != 0 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r2 = rune(encode3[r-encode3Low]); r2 != 0 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r2 = rune(encode4[r-encode4Low]); r2 != 0 { - goto write2 - } - } - - if e.gb18030 { - if r < 0x10000 { - i, j := 0, len(gb18030) - for i < j { - h := i + (j-i)/2 - if r >= rune(gb18030[h][1]) { - i = h + 1 - } else { - j = h - } - } - dec := &gb18030[i-1] - r += rune(dec[0]) - rune(dec[1]) - goto write4 - } else if r < 0x110000 { - r += 189000 - 0x10000 - goto write4 - } - } - r = encoding.ASCIISub - } - - write1: - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r2 >> 8) - dst[nDst+1] = uint8(r2) - nDst += 2 - continue - - write4: - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+3] = uint8(r%10 + 0x30) - r /= 10 - dst[nDst+2] = uint8(r%126 + 0x81) - r /= 126 - dst[nDst+1] = uint8(r%10 + 0x30) - r /= 10 - dst[nDst+0] = uint8(r + 0x81) - nDst += 4 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 5 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/hzgb2312.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/hzgb2312.go deleted file mode 100644 index 72fd8f42..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/hzgb2312.go +++ /dev/null @@ -1,228 +0,0 @@ -// 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 simplifiedchinese - -import ( - "errors" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// HZGB2312 is the HZ-GB2312 encoding. -var HZGB2312 encoding.Encoding = &hzGB2312 - -var hzGB2312 = internal.Encoding{ - internal.FuncEncoding{hzGB2312NewDecoder, hzGB2312NewEncoder}, - "HZ-GB2312", - identifier.HZGB2312, -} - -func hzGB2312NewDecoder() transform.Transformer { - return new(hzGB2312Decoder) -} - -func hzGB2312NewEncoder() transform.Transformer { - return new(hzGB2312Encoder) -} - -var errInvalidHZGB2312 = errors.New("simplifiedchinese: invalid HZ-GB2312 encoding") - -const ( - asciiState = iota - gbState -) - -type hzGB2312Decoder int - -func (d *hzGB2312Decoder) Reset() { - *d = asciiState -} - -func (d *hzGB2312Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - c0 := src[nSrc] - if c0 >= utf8.RuneSelf { - err = errInvalidHZGB2312 - break loop - } - - if c0 == '~' { - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - size = 2 - switch src[nSrc+1] { - case '{': - *d = gbState - continue - case '}': - *d = asciiState - continue - case '~': - if nDst >= len(dst) { - err = transform.ErrShortDst - break loop - } - dst[nDst] = '~' - nDst++ - continue - case '\n': - continue - default: - err = errInvalidHZGB2312 - break loop - } - } - - if *d == asciiState { - r, size = rune(c0), 1 - } else { - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - if c0 < 0x21 || 0x7e <= c0 || c1 < 0x21 || 0x7f <= c1 { - err = errInvalidHZGB2312 - break loop - } - - r, size = '\ufffd', 2 - if i := int(c0-0x01)*190 + int(c1+0x3f); i < len(decode) { - r = rune(decode[i]) - if r == 0 { - r = '\ufffd' - } - } - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - if atEOF && err == transform.ErrShortSrc { - err = errInvalidHZGB2312 - } - return nDst, nSrc, err -} - -type hzGB2312Encoder int - -func (d *hzGB2312Encoder) Reset() { - *d = asciiState -} - -func (e *hzGB2312Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - if r == '~' { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = '~' - dst[nDst+1] = '~' - nDst += 2 - continue - } - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto writeGB - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto writeGB - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto writeGB - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto writeGB - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto writeGB - } - } - r = encoding.ASCIISub - } - - writeASCII: - if *e != asciiState { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - *e = asciiState - dst[nDst+0] = '~' - dst[nDst+1] = '}' - nDst += 2 - } else if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - writeGB: - c0 := uint8(r>>8) - 0x80 - c1 := uint8(r) - 0x80 - if c0 < 0x21 || 0x7e <= c0 || c1 < 0x21 || 0x7f <= c1 { - r = encoding.ASCIISub - goto writeASCII - } - if *e == asciiState { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - *e = gbState - dst[nDst+0] = '~' - dst[nDst+1] = '{' - nDst += 2 - } else if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = c0 - dst[nDst+1] = c1 - nDst += 2 - continue - } - return nDst, nSrc, err -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/maketables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/maketables.go deleted file mode 100644 index 55016c78..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/maketables.go +++ /dev/null @@ -1,161 +0,0 @@ -// 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. - -// +build ignore - -package main - -// This program generates tables.go: -// go run maketables.go | gofmt > tables.go - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" -) - -func main() { - fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") - fmt.Printf("// Package simplifiedchinese provides Simplified Chinese encodings such as GBK.\n") - fmt.Printf(`package simplifiedchinese // import "golang.org/x/text/encoding/simplifiedchinese"` + "\n\n") - - printGB18030() - printGBK() -} - -func printGB18030() { - res, err := http.Get("http://encoding.spec.whatwg.org/index-gb18030.txt") - if err != nil { - log.Fatalf("Get: %v", err) - } - defer res.Body.Close() - - fmt.Printf("// gb18030 is the table from http://encoding.spec.whatwg.org/index-gb18030.txt\n") - fmt.Printf("var gb18030 = [...][2]uint16{\n") - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := uint32(0), uint32(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0x10000 && y < 0x10000 { - fmt.Printf("\t{0x%04x, 0x%04x},\n", x, y) - } - } - fmt.Printf("}\n\n") -} - -func printGBK() { - res, err := http.Get("http://encoding.spec.whatwg.org/index-gbk.txt") - if err != nil { - log.Fatalf("Get: %v", err) - } - defer res.Body.Close() - - mapping := [65536]uint16{} - reverse := [65536]uint16{} - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := uint16(0), uint16(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0 || 126*190 <= x { - log.Fatalf("GBK code %d is out of range", x) - } - mapping[x] = y - if reverse[y] == 0 { - c0, c1 := x/190, x%190 - if c1 >= 0x3f { - c1++ - } - reverse[y] = (0x81+c0)<<8 | (0x40 + c1) - } - } - if err := scanner.Err(); err != nil { - log.Fatalf("scanner error: %v", err) - } - - fmt.Printf("// decode is the decoding table from GBK code to Unicode.\n") - fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-gbk.txt\n") - fmt.Printf("var decode = [...]uint16{\n") - for i, v := range mapping { - if v != 0 { - fmt.Printf("\t%d: 0x%04X,\n", i, v) - } - } - fmt.Printf("}\n\n") - - // Any run of at least separation continuous zero entries in the reverse map will - // be a separate encode table. - const separation = 1024 - - intervals := []interval(nil) - low, high := -1, -1 - for i, v := range reverse { - if v == 0 { - continue - } - if low < 0 { - low = i - } else if i-high >= separation { - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - low = i - } - high = i + 1 - } - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - sort.Sort(byDecreasingLength(intervals)) - - fmt.Printf("const numEncodeTables = %d\n\n", len(intervals)) - fmt.Printf("// encodeX are the encoding tables from Unicode to GBK code,\n") - fmt.Printf("// sorted by decreasing length.\n") - for i, v := range intervals { - fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high) - } - fmt.Printf("\n") - - for i, v := range intervals { - fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high) - fmt.Printf("var encode%d = [...]uint16{\n", i) - for j := v.low; j < v.high; j++ { - x := reverse[j] - if x == 0 { - continue - } - fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x) - } - fmt.Printf("}\n\n") - } -} - -// interval is a half-open interval [low, high). -type interval struct { - low, high int -} - -func (i interval) len() int { return i.high - i.low } - -// byDecreasingLength sorts intervals by decreasing length. -type byDecreasingLength []interval - -func (b byDecreasingLength) Len() int { return len(b) } -func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() } -func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/tables.go deleted file mode 100644 index fac299d2..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese/tables.go +++ /dev/null @@ -1,43999 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package simplifiedchinese provides Simplified Chinese encodings such as GBK. -package simplifiedchinese - -// gb18030 is the table from http://encoding.spec.whatwg.org/index-gb18030.txt -var gb18030 = [...][2]uint16{ - {0x0000, 0x0080}, - {0x0024, 0x00a5}, - {0x0026, 0x00a9}, - {0x002d, 0x00b2}, - {0x0032, 0x00b8}, - {0x0051, 0x00d8}, - {0x0059, 0x00e2}, - {0x005f, 0x00eb}, - {0x0060, 0x00ee}, - {0x0064, 0x00f4}, - {0x0067, 0x00f8}, - {0x0068, 0x00fb}, - {0x0069, 0x00fd}, - {0x006d, 0x0102}, - {0x007e, 0x0114}, - {0x0085, 0x011c}, - {0x0094, 0x012c}, - {0x00ac, 0x0145}, - {0x00af, 0x0149}, - {0x00b3, 0x014e}, - {0x00d0, 0x016c}, - {0x0132, 0x01cf}, - {0x0133, 0x01d1}, - {0x0134, 0x01d3}, - {0x0135, 0x01d5}, - {0x0136, 0x01d7}, - {0x0137, 0x01d9}, - {0x0138, 0x01db}, - {0x0139, 0x01dd}, - {0x0155, 0x01fa}, - {0x01ac, 0x0252}, - {0x01bb, 0x0262}, - {0x0220, 0x02c8}, - {0x0221, 0x02cc}, - {0x022e, 0x02da}, - {0x02e5, 0x03a2}, - {0x02e6, 0x03aa}, - {0x02ed, 0x03c2}, - {0x02ee, 0x03ca}, - {0x0325, 0x0402}, - {0x0333, 0x0450}, - {0x0334, 0x0452}, - {0x1ef2, 0x2011}, - {0x1ef4, 0x2017}, - {0x1ef5, 0x201a}, - {0x1ef7, 0x201e}, - {0x1efe, 0x2027}, - {0x1f07, 0x2031}, - {0x1f08, 0x2034}, - {0x1f09, 0x2036}, - {0x1f0e, 0x203c}, - {0x1f7e, 0x20ad}, - {0x1fd4, 0x2104}, - {0x1fd5, 0x2106}, - {0x1fd8, 0x210a}, - {0x1fe4, 0x2117}, - {0x1fee, 0x2122}, - {0x202c, 0x216c}, - {0x2030, 0x217a}, - {0x2046, 0x2194}, - {0x2048, 0x219a}, - {0x20b6, 0x2209}, - {0x20bc, 0x2210}, - {0x20bd, 0x2212}, - {0x20c0, 0x2216}, - {0x20c4, 0x221b}, - {0x20c6, 0x2221}, - {0x20c8, 0x2224}, - {0x20c9, 0x2226}, - {0x20ca, 0x222c}, - {0x20cc, 0x222f}, - {0x20d1, 0x2238}, - {0x20d6, 0x223e}, - {0x20e0, 0x2249}, - {0x20e3, 0x224d}, - {0x20e8, 0x2253}, - {0x20f5, 0x2262}, - {0x20f7, 0x2268}, - {0x20fd, 0x2270}, - {0x2122, 0x2296}, - {0x2125, 0x229a}, - {0x2130, 0x22a6}, - {0x2149, 0x22c0}, - {0x219b, 0x2313}, - {0x22e8, 0x246a}, - {0x22f2, 0x249c}, - {0x2356, 0x254c}, - {0x235a, 0x2574}, - {0x2367, 0x2590}, - {0x236a, 0x2596}, - {0x2374, 0x25a2}, - {0x2384, 0x25b4}, - {0x238c, 0x25be}, - {0x2394, 0x25c8}, - {0x2397, 0x25cc}, - {0x2399, 0x25d0}, - {0x23ab, 0x25e6}, - {0x23ca, 0x2607}, - {0x23cc, 0x260a}, - {0x2402, 0x2641}, - {0x2403, 0x2643}, - {0x2c41, 0x2e82}, - {0x2c43, 0x2e85}, - {0x2c46, 0x2e89}, - {0x2c48, 0x2e8d}, - {0x2c52, 0x2e98}, - {0x2c61, 0x2ea8}, - {0x2c63, 0x2eab}, - {0x2c66, 0x2eaf}, - {0x2c6a, 0x2eb4}, - {0x2c6c, 0x2eb8}, - {0x2c6f, 0x2ebc}, - {0x2c7d, 0x2ecb}, - {0x2da2, 0x2ffc}, - {0x2da6, 0x3004}, - {0x2da7, 0x3018}, - {0x2dac, 0x301f}, - {0x2dae, 0x302a}, - {0x2dc2, 0x303f}, - {0x2dc4, 0x3094}, - {0x2dcb, 0x309f}, - {0x2dcd, 0x30f7}, - {0x2dd2, 0x30ff}, - {0x2dd8, 0x312a}, - {0x2ece, 0x322a}, - {0x2ed5, 0x3232}, - {0x2f46, 0x32a4}, - {0x3030, 0x3390}, - {0x303c, 0x339f}, - {0x303e, 0x33a2}, - {0x3060, 0x33c5}, - {0x3069, 0x33cf}, - {0x306b, 0x33d3}, - {0x306d, 0x33d6}, - {0x30de, 0x3448}, - {0x3109, 0x3474}, - {0x3233, 0x359f}, - {0x32a2, 0x360f}, - {0x32ad, 0x361b}, - {0x35aa, 0x3919}, - {0x35ff, 0x396f}, - {0x365f, 0x39d1}, - {0x366d, 0x39e0}, - {0x3700, 0x3a74}, - {0x37da, 0x3b4f}, - {0x38f9, 0x3c6f}, - {0x396a, 0x3ce1}, - {0x3cdf, 0x4057}, - {0x3de7, 0x4160}, - {0x3fbe, 0x4338}, - {0x4032, 0x43ad}, - {0x4036, 0x43b2}, - {0x4061, 0x43de}, - {0x4159, 0x44d7}, - {0x42ce, 0x464d}, - {0x42e2, 0x4662}, - {0x43a3, 0x4724}, - {0x43a8, 0x472a}, - {0x43fa, 0x477d}, - {0x440a, 0x478e}, - {0x45c3, 0x4948}, - {0x45f5, 0x497b}, - {0x45f7, 0x497e}, - {0x45fb, 0x4984}, - {0x45fc, 0x4987}, - {0x4610, 0x499c}, - {0x4613, 0x49a0}, - {0x4629, 0x49b8}, - {0x48e8, 0x4c78}, - {0x490f, 0x4ca4}, - {0x497e, 0x4d1a}, - {0x4a12, 0x4daf}, - {0x4a63, 0x9fa6}, - {0x82bd, 0xe76c}, - {0x82be, 0xe7c8}, - {0x82bf, 0xe7e7}, - {0x82cc, 0xe815}, - {0x82cd, 0xe819}, - {0x82d2, 0xe81f}, - {0x82d9, 0xe827}, - {0x82dd, 0xe82d}, - {0x82e1, 0xe833}, - {0x82e9, 0xe83c}, - {0x82f0, 0xe844}, - {0x8300, 0xe856}, - {0x830e, 0xe865}, - {0x93d5, 0xf92d}, - {0x9421, 0xf97a}, - {0x943c, 0xf996}, - {0x948d, 0xf9e8}, - {0x9496, 0xf9f2}, - {0x94b0, 0xfa10}, - {0x94b1, 0xfa12}, - {0x94b2, 0xfa15}, - {0x94b5, 0xfa19}, - {0x94bb, 0xfa22}, - {0x94bc, 0xfa25}, - {0x94be, 0xfa2a}, - {0x98c4, 0xfe32}, - {0x98c5, 0xfe45}, - {0x98c9, 0xfe53}, - {0x98ca, 0xfe58}, - {0x98cb, 0xfe67}, - {0x98cc, 0xfe6c}, - {0x9961, 0xff5f}, - {0x99e2, 0xffe6}, -} - -// decode is the decoding table from GBK code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-gbk.txt -var decode = [...]uint16{ - 0: 0x4E02, - 1: 0x4E04, - 2: 0x4E05, - 3: 0x4E06, - 4: 0x4E0F, - 5: 0x4E12, - 6: 0x4E17, - 7: 0x4E1F, - 8: 0x4E20, - 9: 0x4E21, - 10: 0x4E23, - 11: 0x4E26, - 12: 0x4E29, - 13: 0x4E2E, - 14: 0x4E2F, - 15: 0x4E31, - 16: 0x4E33, - 17: 0x4E35, - 18: 0x4E37, - 19: 0x4E3C, - 20: 0x4E40, - 21: 0x4E41, - 22: 0x4E42, - 23: 0x4E44, - 24: 0x4E46, - 25: 0x4E4A, - 26: 0x4E51, - 27: 0x4E55, - 28: 0x4E57, - 29: 0x4E5A, - 30: 0x4E5B, - 31: 0x4E62, - 32: 0x4E63, - 33: 0x4E64, - 34: 0x4E65, - 35: 0x4E67, - 36: 0x4E68, - 37: 0x4E6A, - 38: 0x4E6B, - 39: 0x4E6C, - 40: 0x4E6D, - 41: 0x4E6E, - 42: 0x4E6F, - 43: 0x4E72, - 44: 0x4E74, - 45: 0x4E75, - 46: 0x4E76, - 47: 0x4E77, - 48: 0x4E78, - 49: 0x4E79, - 50: 0x4E7A, - 51: 0x4E7B, - 52: 0x4E7C, - 53: 0x4E7D, - 54: 0x4E7F, - 55: 0x4E80, - 56: 0x4E81, - 57: 0x4E82, - 58: 0x4E83, - 59: 0x4E84, - 60: 0x4E85, - 61: 0x4E87, - 62: 0x4E8A, - 63: 0x4E90, - 64: 0x4E96, - 65: 0x4E97, - 66: 0x4E99, - 67: 0x4E9C, - 68: 0x4E9D, - 69: 0x4E9E, - 70: 0x4EA3, - 71: 0x4EAA, - 72: 0x4EAF, - 73: 0x4EB0, - 74: 0x4EB1, - 75: 0x4EB4, - 76: 0x4EB6, - 77: 0x4EB7, - 78: 0x4EB8, - 79: 0x4EB9, - 80: 0x4EBC, - 81: 0x4EBD, - 82: 0x4EBE, - 83: 0x4EC8, - 84: 0x4ECC, - 85: 0x4ECF, - 86: 0x4ED0, - 87: 0x4ED2, - 88: 0x4EDA, - 89: 0x4EDB, - 90: 0x4EDC, - 91: 0x4EE0, - 92: 0x4EE2, - 93: 0x4EE6, - 94: 0x4EE7, - 95: 0x4EE9, - 96: 0x4EED, - 97: 0x4EEE, - 98: 0x4EEF, - 99: 0x4EF1, - 100: 0x4EF4, - 101: 0x4EF8, - 102: 0x4EF9, - 103: 0x4EFA, - 104: 0x4EFC, - 105: 0x4EFE, - 106: 0x4F00, - 107: 0x4F02, - 108: 0x4F03, - 109: 0x4F04, - 110: 0x4F05, - 111: 0x4F06, - 112: 0x4F07, - 113: 0x4F08, - 114: 0x4F0B, - 115: 0x4F0C, - 116: 0x4F12, - 117: 0x4F13, - 118: 0x4F14, - 119: 0x4F15, - 120: 0x4F16, - 121: 0x4F1C, - 122: 0x4F1D, - 123: 0x4F21, - 124: 0x4F23, - 125: 0x4F28, - 126: 0x4F29, - 127: 0x4F2C, - 128: 0x4F2D, - 129: 0x4F2E, - 130: 0x4F31, - 131: 0x4F33, - 132: 0x4F35, - 133: 0x4F37, - 134: 0x4F39, - 135: 0x4F3B, - 136: 0x4F3E, - 137: 0x4F3F, - 138: 0x4F40, - 139: 0x4F41, - 140: 0x4F42, - 141: 0x4F44, - 142: 0x4F45, - 143: 0x4F47, - 144: 0x4F48, - 145: 0x4F49, - 146: 0x4F4A, - 147: 0x4F4B, - 148: 0x4F4C, - 149: 0x4F52, - 150: 0x4F54, - 151: 0x4F56, - 152: 0x4F61, - 153: 0x4F62, - 154: 0x4F66, - 155: 0x4F68, - 156: 0x4F6A, - 157: 0x4F6B, - 158: 0x4F6D, - 159: 0x4F6E, - 160: 0x4F71, - 161: 0x4F72, - 162: 0x4F75, - 163: 0x4F77, - 164: 0x4F78, - 165: 0x4F79, - 166: 0x4F7A, - 167: 0x4F7D, - 168: 0x4F80, - 169: 0x4F81, - 170: 0x4F82, - 171: 0x4F85, - 172: 0x4F86, - 173: 0x4F87, - 174: 0x4F8A, - 175: 0x4F8C, - 176: 0x4F8E, - 177: 0x4F90, - 178: 0x4F92, - 179: 0x4F93, - 180: 0x4F95, - 181: 0x4F96, - 182: 0x4F98, - 183: 0x4F99, - 184: 0x4F9A, - 185: 0x4F9C, - 186: 0x4F9E, - 187: 0x4F9F, - 188: 0x4FA1, - 189: 0x4FA2, - 190: 0x4FA4, - 191: 0x4FAB, - 192: 0x4FAD, - 193: 0x4FB0, - 194: 0x4FB1, - 195: 0x4FB2, - 196: 0x4FB3, - 197: 0x4FB4, - 198: 0x4FB6, - 199: 0x4FB7, - 200: 0x4FB8, - 201: 0x4FB9, - 202: 0x4FBA, - 203: 0x4FBB, - 204: 0x4FBC, - 205: 0x4FBD, - 206: 0x4FBE, - 207: 0x4FC0, - 208: 0x4FC1, - 209: 0x4FC2, - 210: 0x4FC6, - 211: 0x4FC7, - 212: 0x4FC8, - 213: 0x4FC9, - 214: 0x4FCB, - 215: 0x4FCC, - 216: 0x4FCD, - 217: 0x4FD2, - 218: 0x4FD3, - 219: 0x4FD4, - 220: 0x4FD5, - 221: 0x4FD6, - 222: 0x4FD9, - 223: 0x4FDB, - 224: 0x4FE0, - 225: 0x4FE2, - 226: 0x4FE4, - 227: 0x4FE5, - 228: 0x4FE7, - 229: 0x4FEB, - 230: 0x4FEC, - 231: 0x4FF0, - 232: 0x4FF2, - 233: 0x4FF4, - 234: 0x4FF5, - 235: 0x4FF6, - 236: 0x4FF7, - 237: 0x4FF9, - 238: 0x4FFB, - 239: 0x4FFC, - 240: 0x4FFD, - 241: 0x4FFF, - 242: 0x5000, - 243: 0x5001, - 244: 0x5002, - 245: 0x5003, - 246: 0x5004, - 247: 0x5005, - 248: 0x5006, - 249: 0x5007, - 250: 0x5008, - 251: 0x5009, - 252: 0x500A, - 253: 0x500B, - 254: 0x500E, - 255: 0x5010, - 256: 0x5011, - 257: 0x5013, - 258: 0x5015, - 259: 0x5016, - 260: 0x5017, - 261: 0x501B, - 262: 0x501D, - 263: 0x501E, - 264: 0x5020, - 265: 0x5022, - 266: 0x5023, - 267: 0x5024, - 268: 0x5027, - 269: 0x502B, - 270: 0x502F, - 271: 0x5030, - 272: 0x5031, - 273: 0x5032, - 274: 0x5033, - 275: 0x5034, - 276: 0x5035, - 277: 0x5036, - 278: 0x5037, - 279: 0x5038, - 280: 0x5039, - 281: 0x503B, - 282: 0x503D, - 283: 0x503F, - 284: 0x5040, - 285: 0x5041, - 286: 0x5042, - 287: 0x5044, - 288: 0x5045, - 289: 0x5046, - 290: 0x5049, - 291: 0x504A, - 292: 0x504B, - 293: 0x504D, - 294: 0x5050, - 295: 0x5051, - 296: 0x5052, - 297: 0x5053, - 298: 0x5054, - 299: 0x5056, - 300: 0x5057, - 301: 0x5058, - 302: 0x5059, - 303: 0x505B, - 304: 0x505D, - 305: 0x505E, - 306: 0x505F, - 307: 0x5060, - 308: 0x5061, - 309: 0x5062, - 310: 0x5063, - 311: 0x5064, - 312: 0x5066, - 313: 0x5067, - 314: 0x5068, - 315: 0x5069, - 316: 0x506A, - 317: 0x506B, - 318: 0x506D, - 319: 0x506E, - 320: 0x506F, - 321: 0x5070, - 322: 0x5071, - 323: 0x5072, - 324: 0x5073, - 325: 0x5074, - 326: 0x5075, - 327: 0x5078, - 328: 0x5079, - 329: 0x507A, - 330: 0x507C, - 331: 0x507D, - 332: 0x5081, - 333: 0x5082, - 334: 0x5083, - 335: 0x5084, - 336: 0x5086, - 337: 0x5087, - 338: 0x5089, - 339: 0x508A, - 340: 0x508B, - 341: 0x508C, - 342: 0x508E, - 343: 0x508F, - 344: 0x5090, - 345: 0x5091, - 346: 0x5092, - 347: 0x5093, - 348: 0x5094, - 349: 0x5095, - 350: 0x5096, - 351: 0x5097, - 352: 0x5098, - 353: 0x5099, - 354: 0x509A, - 355: 0x509B, - 356: 0x509C, - 357: 0x509D, - 358: 0x509E, - 359: 0x509F, - 360: 0x50A0, - 361: 0x50A1, - 362: 0x50A2, - 363: 0x50A4, - 364: 0x50A6, - 365: 0x50AA, - 366: 0x50AB, - 367: 0x50AD, - 368: 0x50AE, - 369: 0x50AF, - 370: 0x50B0, - 371: 0x50B1, - 372: 0x50B3, - 373: 0x50B4, - 374: 0x50B5, - 375: 0x50B6, - 376: 0x50B7, - 377: 0x50B8, - 378: 0x50B9, - 379: 0x50BC, - 380: 0x50BD, - 381: 0x50BE, - 382: 0x50BF, - 383: 0x50C0, - 384: 0x50C1, - 385: 0x50C2, - 386: 0x50C3, - 387: 0x50C4, - 388: 0x50C5, - 389: 0x50C6, - 390: 0x50C7, - 391: 0x50C8, - 392: 0x50C9, - 393: 0x50CA, - 394: 0x50CB, - 395: 0x50CC, - 396: 0x50CD, - 397: 0x50CE, - 398: 0x50D0, - 399: 0x50D1, - 400: 0x50D2, - 401: 0x50D3, - 402: 0x50D4, - 403: 0x50D5, - 404: 0x50D7, - 405: 0x50D8, - 406: 0x50D9, - 407: 0x50DB, - 408: 0x50DC, - 409: 0x50DD, - 410: 0x50DE, - 411: 0x50DF, - 412: 0x50E0, - 413: 0x50E1, - 414: 0x50E2, - 415: 0x50E3, - 416: 0x50E4, - 417: 0x50E5, - 418: 0x50E8, - 419: 0x50E9, - 420: 0x50EA, - 421: 0x50EB, - 422: 0x50EF, - 423: 0x50F0, - 424: 0x50F1, - 425: 0x50F2, - 426: 0x50F4, - 427: 0x50F6, - 428: 0x50F7, - 429: 0x50F8, - 430: 0x50F9, - 431: 0x50FA, - 432: 0x50FC, - 433: 0x50FD, - 434: 0x50FE, - 435: 0x50FF, - 436: 0x5100, - 437: 0x5101, - 438: 0x5102, - 439: 0x5103, - 440: 0x5104, - 441: 0x5105, - 442: 0x5108, - 443: 0x5109, - 444: 0x510A, - 445: 0x510C, - 446: 0x510D, - 447: 0x510E, - 448: 0x510F, - 449: 0x5110, - 450: 0x5111, - 451: 0x5113, - 452: 0x5114, - 453: 0x5115, - 454: 0x5116, - 455: 0x5117, - 456: 0x5118, - 457: 0x5119, - 458: 0x511A, - 459: 0x511B, - 460: 0x511C, - 461: 0x511D, - 462: 0x511E, - 463: 0x511F, - 464: 0x5120, - 465: 0x5122, - 466: 0x5123, - 467: 0x5124, - 468: 0x5125, - 469: 0x5126, - 470: 0x5127, - 471: 0x5128, - 472: 0x5129, - 473: 0x512A, - 474: 0x512B, - 475: 0x512C, - 476: 0x512D, - 477: 0x512E, - 478: 0x512F, - 479: 0x5130, - 480: 0x5131, - 481: 0x5132, - 482: 0x5133, - 483: 0x5134, - 484: 0x5135, - 485: 0x5136, - 486: 0x5137, - 487: 0x5138, - 488: 0x5139, - 489: 0x513A, - 490: 0x513B, - 491: 0x513C, - 492: 0x513D, - 493: 0x513E, - 494: 0x5142, - 495: 0x5147, - 496: 0x514A, - 497: 0x514C, - 498: 0x514E, - 499: 0x514F, - 500: 0x5150, - 501: 0x5152, - 502: 0x5153, - 503: 0x5157, - 504: 0x5158, - 505: 0x5159, - 506: 0x515B, - 507: 0x515D, - 508: 0x515E, - 509: 0x515F, - 510: 0x5160, - 511: 0x5161, - 512: 0x5163, - 513: 0x5164, - 514: 0x5166, - 515: 0x5167, - 516: 0x5169, - 517: 0x516A, - 518: 0x516F, - 519: 0x5172, - 520: 0x517A, - 521: 0x517E, - 522: 0x517F, - 523: 0x5183, - 524: 0x5184, - 525: 0x5186, - 526: 0x5187, - 527: 0x518A, - 528: 0x518B, - 529: 0x518E, - 530: 0x518F, - 531: 0x5190, - 532: 0x5191, - 533: 0x5193, - 534: 0x5194, - 535: 0x5198, - 536: 0x519A, - 537: 0x519D, - 538: 0x519E, - 539: 0x519F, - 540: 0x51A1, - 541: 0x51A3, - 542: 0x51A6, - 543: 0x51A7, - 544: 0x51A8, - 545: 0x51A9, - 546: 0x51AA, - 547: 0x51AD, - 548: 0x51AE, - 549: 0x51B4, - 550: 0x51B8, - 551: 0x51B9, - 552: 0x51BA, - 553: 0x51BE, - 554: 0x51BF, - 555: 0x51C1, - 556: 0x51C2, - 557: 0x51C3, - 558: 0x51C5, - 559: 0x51C8, - 560: 0x51CA, - 561: 0x51CD, - 562: 0x51CE, - 563: 0x51D0, - 564: 0x51D2, - 565: 0x51D3, - 566: 0x51D4, - 567: 0x51D5, - 568: 0x51D6, - 569: 0x51D7, - 570: 0x51D8, - 571: 0x51D9, - 572: 0x51DA, - 573: 0x51DC, - 574: 0x51DE, - 575: 0x51DF, - 576: 0x51E2, - 577: 0x51E3, - 578: 0x51E5, - 579: 0x51E6, - 580: 0x51E7, - 581: 0x51E8, - 582: 0x51E9, - 583: 0x51EA, - 584: 0x51EC, - 585: 0x51EE, - 586: 0x51F1, - 587: 0x51F2, - 588: 0x51F4, - 589: 0x51F7, - 590: 0x51FE, - 591: 0x5204, - 592: 0x5205, - 593: 0x5209, - 594: 0x520B, - 595: 0x520C, - 596: 0x520F, - 597: 0x5210, - 598: 0x5213, - 599: 0x5214, - 600: 0x5215, - 601: 0x521C, - 602: 0x521E, - 603: 0x521F, - 604: 0x5221, - 605: 0x5222, - 606: 0x5223, - 607: 0x5225, - 608: 0x5226, - 609: 0x5227, - 610: 0x522A, - 611: 0x522C, - 612: 0x522F, - 613: 0x5231, - 614: 0x5232, - 615: 0x5234, - 616: 0x5235, - 617: 0x523C, - 618: 0x523E, - 619: 0x5244, - 620: 0x5245, - 621: 0x5246, - 622: 0x5247, - 623: 0x5248, - 624: 0x5249, - 625: 0x524B, - 626: 0x524E, - 627: 0x524F, - 628: 0x5252, - 629: 0x5253, - 630: 0x5255, - 631: 0x5257, - 632: 0x5258, - 633: 0x5259, - 634: 0x525A, - 635: 0x525B, - 636: 0x525D, - 637: 0x525F, - 638: 0x5260, - 639: 0x5262, - 640: 0x5263, - 641: 0x5264, - 642: 0x5266, - 643: 0x5268, - 644: 0x526B, - 645: 0x526C, - 646: 0x526D, - 647: 0x526E, - 648: 0x5270, - 649: 0x5271, - 650: 0x5273, - 651: 0x5274, - 652: 0x5275, - 653: 0x5276, - 654: 0x5277, - 655: 0x5278, - 656: 0x5279, - 657: 0x527A, - 658: 0x527B, - 659: 0x527C, - 660: 0x527E, - 661: 0x5280, - 662: 0x5283, - 663: 0x5284, - 664: 0x5285, - 665: 0x5286, - 666: 0x5287, - 667: 0x5289, - 668: 0x528A, - 669: 0x528B, - 670: 0x528C, - 671: 0x528D, - 672: 0x528E, - 673: 0x528F, - 674: 0x5291, - 675: 0x5292, - 676: 0x5294, - 677: 0x5295, - 678: 0x5296, - 679: 0x5297, - 680: 0x5298, - 681: 0x5299, - 682: 0x529A, - 683: 0x529C, - 684: 0x52A4, - 685: 0x52A5, - 686: 0x52A6, - 687: 0x52A7, - 688: 0x52AE, - 689: 0x52AF, - 690: 0x52B0, - 691: 0x52B4, - 692: 0x52B5, - 693: 0x52B6, - 694: 0x52B7, - 695: 0x52B8, - 696: 0x52B9, - 697: 0x52BA, - 698: 0x52BB, - 699: 0x52BC, - 700: 0x52BD, - 701: 0x52C0, - 702: 0x52C1, - 703: 0x52C2, - 704: 0x52C4, - 705: 0x52C5, - 706: 0x52C6, - 707: 0x52C8, - 708: 0x52CA, - 709: 0x52CC, - 710: 0x52CD, - 711: 0x52CE, - 712: 0x52CF, - 713: 0x52D1, - 714: 0x52D3, - 715: 0x52D4, - 716: 0x52D5, - 717: 0x52D7, - 718: 0x52D9, - 719: 0x52DA, - 720: 0x52DB, - 721: 0x52DC, - 722: 0x52DD, - 723: 0x52DE, - 724: 0x52E0, - 725: 0x52E1, - 726: 0x52E2, - 727: 0x52E3, - 728: 0x52E5, - 729: 0x52E6, - 730: 0x52E7, - 731: 0x52E8, - 732: 0x52E9, - 733: 0x52EA, - 734: 0x52EB, - 735: 0x52EC, - 736: 0x52ED, - 737: 0x52EE, - 738: 0x52EF, - 739: 0x52F1, - 740: 0x52F2, - 741: 0x52F3, - 742: 0x52F4, - 743: 0x52F5, - 744: 0x52F6, - 745: 0x52F7, - 746: 0x52F8, - 747: 0x52FB, - 748: 0x52FC, - 749: 0x52FD, - 750: 0x5301, - 751: 0x5302, - 752: 0x5303, - 753: 0x5304, - 754: 0x5307, - 755: 0x5309, - 756: 0x530A, - 757: 0x530B, - 758: 0x530C, - 759: 0x530E, - 760: 0x5311, - 761: 0x5312, - 762: 0x5313, - 763: 0x5314, - 764: 0x5318, - 765: 0x531B, - 766: 0x531C, - 767: 0x531E, - 768: 0x531F, - 769: 0x5322, - 770: 0x5324, - 771: 0x5325, - 772: 0x5327, - 773: 0x5328, - 774: 0x5329, - 775: 0x532B, - 776: 0x532C, - 777: 0x532D, - 778: 0x532F, - 779: 0x5330, - 780: 0x5331, - 781: 0x5332, - 782: 0x5333, - 783: 0x5334, - 784: 0x5335, - 785: 0x5336, - 786: 0x5337, - 787: 0x5338, - 788: 0x533C, - 789: 0x533D, - 790: 0x5340, - 791: 0x5342, - 792: 0x5344, - 793: 0x5346, - 794: 0x534B, - 795: 0x534C, - 796: 0x534D, - 797: 0x5350, - 798: 0x5354, - 799: 0x5358, - 800: 0x5359, - 801: 0x535B, - 802: 0x535D, - 803: 0x5365, - 804: 0x5368, - 805: 0x536A, - 806: 0x536C, - 807: 0x536D, - 808: 0x5372, - 809: 0x5376, - 810: 0x5379, - 811: 0x537B, - 812: 0x537C, - 813: 0x537D, - 814: 0x537E, - 815: 0x5380, - 816: 0x5381, - 817: 0x5383, - 818: 0x5387, - 819: 0x5388, - 820: 0x538A, - 821: 0x538E, - 822: 0x538F, - 823: 0x5390, - 824: 0x5391, - 825: 0x5392, - 826: 0x5393, - 827: 0x5394, - 828: 0x5396, - 829: 0x5397, - 830: 0x5399, - 831: 0x539B, - 832: 0x539C, - 833: 0x539E, - 834: 0x53A0, - 835: 0x53A1, - 836: 0x53A4, - 837: 0x53A7, - 838: 0x53AA, - 839: 0x53AB, - 840: 0x53AC, - 841: 0x53AD, - 842: 0x53AF, - 843: 0x53B0, - 844: 0x53B1, - 845: 0x53B2, - 846: 0x53B3, - 847: 0x53B4, - 848: 0x53B5, - 849: 0x53B7, - 850: 0x53B8, - 851: 0x53B9, - 852: 0x53BA, - 853: 0x53BC, - 854: 0x53BD, - 855: 0x53BE, - 856: 0x53C0, - 857: 0x53C3, - 858: 0x53C4, - 859: 0x53C5, - 860: 0x53C6, - 861: 0x53C7, - 862: 0x53CE, - 863: 0x53CF, - 864: 0x53D0, - 865: 0x53D2, - 866: 0x53D3, - 867: 0x53D5, - 868: 0x53DA, - 869: 0x53DC, - 870: 0x53DD, - 871: 0x53DE, - 872: 0x53E1, - 873: 0x53E2, - 874: 0x53E7, - 875: 0x53F4, - 876: 0x53FA, - 877: 0x53FE, - 878: 0x53FF, - 879: 0x5400, - 880: 0x5402, - 881: 0x5405, - 882: 0x5407, - 883: 0x540B, - 884: 0x5414, - 885: 0x5418, - 886: 0x5419, - 887: 0x541A, - 888: 0x541C, - 889: 0x5422, - 890: 0x5424, - 891: 0x5425, - 892: 0x542A, - 893: 0x5430, - 894: 0x5433, - 895: 0x5436, - 896: 0x5437, - 897: 0x543A, - 898: 0x543D, - 899: 0x543F, - 900: 0x5441, - 901: 0x5442, - 902: 0x5444, - 903: 0x5445, - 904: 0x5447, - 905: 0x5449, - 906: 0x544C, - 907: 0x544D, - 908: 0x544E, - 909: 0x544F, - 910: 0x5451, - 911: 0x545A, - 912: 0x545D, - 913: 0x545E, - 914: 0x545F, - 915: 0x5460, - 916: 0x5461, - 917: 0x5463, - 918: 0x5465, - 919: 0x5467, - 920: 0x5469, - 921: 0x546A, - 922: 0x546B, - 923: 0x546C, - 924: 0x546D, - 925: 0x546E, - 926: 0x546F, - 927: 0x5470, - 928: 0x5474, - 929: 0x5479, - 930: 0x547A, - 931: 0x547E, - 932: 0x547F, - 933: 0x5481, - 934: 0x5483, - 935: 0x5485, - 936: 0x5487, - 937: 0x5488, - 938: 0x5489, - 939: 0x548A, - 940: 0x548D, - 941: 0x5491, - 942: 0x5493, - 943: 0x5497, - 944: 0x5498, - 945: 0x549C, - 946: 0x549E, - 947: 0x549F, - 948: 0x54A0, - 949: 0x54A1, - 950: 0x54A2, - 951: 0x54A5, - 952: 0x54AE, - 953: 0x54B0, - 954: 0x54B2, - 955: 0x54B5, - 956: 0x54B6, - 957: 0x54B7, - 958: 0x54B9, - 959: 0x54BA, - 960: 0x54BC, - 961: 0x54BE, - 962: 0x54C3, - 963: 0x54C5, - 964: 0x54CA, - 965: 0x54CB, - 966: 0x54D6, - 967: 0x54D8, - 968: 0x54DB, - 969: 0x54E0, - 970: 0x54E1, - 971: 0x54E2, - 972: 0x54E3, - 973: 0x54E4, - 974: 0x54EB, - 975: 0x54EC, - 976: 0x54EF, - 977: 0x54F0, - 978: 0x54F1, - 979: 0x54F4, - 980: 0x54F5, - 981: 0x54F6, - 982: 0x54F7, - 983: 0x54F8, - 984: 0x54F9, - 985: 0x54FB, - 986: 0x54FE, - 987: 0x5500, - 988: 0x5502, - 989: 0x5503, - 990: 0x5504, - 991: 0x5505, - 992: 0x5508, - 993: 0x550A, - 994: 0x550B, - 995: 0x550C, - 996: 0x550D, - 997: 0x550E, - 998: 0x5512, - 999: 0x5513, - 1000: 0x5515, - 1001: 0x5516, - 1002: 0x5517, - 1003: 0x5518, - 1004: 0x5519, - 1005: 0x551A, - 1006: 0x551C, - 1007: 0x551D, - 1008: 0x551E, - 1009: 0x551F, - 1010: 0x5521, - 1011: 0x5525, - 1012: 0x5526, - 1013: 0x5528, - 1014: 0x5529, - 1015: 0x552B, - 1016: 0x552D, - 1017: 0x5532, - 1018: 0x5534, - 1019: 0x5535, - 1020: 0x5536, - 1021: 0x5538, - 1022: 0x5539, - 1023: 0x553A, - 1024: 0x553B, - 1025: 0x553D, - 1026: 0x5540, - 1027: 0x5542, - 1028: 0x5545, - 1029: 0x5547, - 1030: 0x5548, - 1031: 0x554B, - 1032: 0x554C, - 1033: 0x554D, - 1034: 0x554E, - 1035: 0x554F, - 1036: 0x5551, - 1037: 0x5552, - 1038: 0x5553, - 1039: 0x5554, - 1040: 0x5557, - 1041: 0x5558, - 1042: 0x5559, - 1043: 0x555A, - 1044: 0x555B, - 1045: 0x555D, - 1046: 0x555E, - 1047: 0x555F, - 1048: 0x5560, - 1049: 0x5562, - 1050: 0x5563, - 1051: 0x5568, - 1052: 0x5569, - 1053: 0x556B, - 1054: 0x556F, - 1055: 0x5570, - 1056: 0x5571, - 1057: 0x5572, - 1058: 0x5573, - 1059: 0x5574, - 1060: 0x5579, - 1061: 0x557A, - 1062: 0x557D, - 1063: 0x557F, - 1064: 0x5585, - 1065: 0x5586, - 1066: 0x558C, - 1067: 0x558D, - 1068: 0x558E, - 1069: 0x5590, - 1070: 0x5592, - 1071: 0x5593, - 1072: 0x5595, - 1073: 0x5596, - 1074: 0x5597, - 1075: 0x559A, - 1076: 0x559B, - 1077: 0x559E, - 1078: 0x55A0, - 1079: 0x55A1, - 1080: 0x55A2, - 1081: 0x55A3, - 1082: 0x55A4, - 1083: 0x55A5, - 1084: 0x55A6, - 1085: 0x55A8, - 1086: 0x55A9, - 1087: 0x55AA, - 1088: 0x55AB, - 1089: 0x55AC, - 1090: 0x55AD, - 1091: 0x55AE, - 1092: 0x55AF, - 1093: 0x55B0, - 1094: 0x55B2, - 1095: 0x55B4, - 1096: 0x55B6, - 1097: 0x55B8, - 1098: 0x55BA, - 1099: 0x55BC, - 1100: 0x55BF, - 1101: 0x55C0, - 1102: 0x55C1, - 1103: 0x55C2, - 1104: 0x55C3, - 1105: 0x55C6, - 1106: 0x55C7, - 1107: 0x55C8, - 1108: 0x55CA, - 1109: 0x55CB, - 1110: 0x55CE, - 1111: 0x55CF, - 1112: 0x55D0, - 1113: 0x55D5, - 1114: 0x55D7, - 1115: 0x55D8, - 1116: 0x55D9, - 1117: 0x55DA, - 1118: 0x55DB, - 1119: 0x55DE, - 1120: 0x55E0, - 1121: 0x55E2, - 1122: 0x55E7, - 1123: 0x55E9, - 1124: 0x55ED, - 1125: 0x55EE, - 1126: 0x55F0, - 1127: 0x55F1, - 1128: 0x55F4, - 1129: 0x55F6, - 1130: 0x55F8, - 1131: 0x55F9, - 1132: 0x55FA, - 1133: 0x55FB, - 1134: 0x55FC, - 1135: 0x55FF, - 1136: 0x5602, - 1137: 0x5603, - 1138: 0x5604, - 1139: 0x5605, - 1140: 0x5606, - 1141: 0x5607, - 1142: 0x560A, - 1143: 0x560B, - 1144: 0x560D, - 1145: 0x5610, - 1146: 0x5611, - 1147: 0x5612, - 1148: 0x5613, - 1149: 0x5614, - 1150: 0x5615, - 1151: 0x5616, - 1152: 0x5617, - 1153: 0x5619, - 1154: 0x561A, - 1155: 0x561C, - 1156: 0x561D, - 1157: 0x5620, - 1158: 0x5621, - 1159: 0x5622, - 1160: 0x5625, - 1161: 0x5626, - 1162: 0x5628, - 1163: 0x5629, - 1164: 0x562A, - 1165: 0x562B, - 1166: 0x562E, - 1167: 0x562F, - 1168: 0x5630, - 1169: 0x5633, - 1170: 0x5635, - 1171: 0x5637, - 1172: 0x5638, - 1173: 0x563A, - 1174: 0x563C, - 1175: 0x563D, - 1176: 0x563E, - 1177: 0x5640, - 1178: 0x5641, - 1179: 0x5642, - 1180: 0x5643, - 1181: 0x5644, - 1182: 0x5645, - 1183: 0x5646, - 1184: 0x5647, - 1185: 0x5648, - 1186: 0x5649, - 1187: 0x564A, - 1188: 0x564B, - 1189: 0x564F, - 1190: 0x5650, - 1191: 0x5651, - 1192: 0x5652, - 1193: 0x5653, - 1194: 0x5655, - 1195: 0x5656, - 1196: 0x565A, - 1197: 0x565B, - 1198: 0x565D, - 1199: 0x565E, - 1200: 0x565F, - 1201: 0x5660, - 1202: 0x5661, - 1203: 0x5663, - 1204: 0x5665, - 1205: 0x5666, - 1206: 0x5667, - 1207: 0x566D, - 1208: 0x566E, - 1209: 0x566F, - 1210: 0x5670, - 1211: 0x5672, - 1212: 0x5673, - 1213: 0x5674, - 1214: 0x5675, - 1215: 0x5677, - 1216: 0x5678, - 1217: 0x5679, - 1218: 0x567A, - 1219: 0x567D, - 1220: 0x567E, - 1221: 0x567F, - 1222: 0x5680, - 1223: 0x5681, - 1224: 0x5682, - 1225: 0x5683, - 1226: 0x5684, - 1227: 0x5687, - 1228: 0x5688, - 1229: 0x5689, - 1230: 0x568A, - 1231: 0x568B, - 1232: 0x568C, - 1233: 0x568D, - 1234: 0x5690, - 1235: 0x5691, - 1236: 0x5692, - 1237: 0x5694, - 1238: 0x5695, - 1239: 0x5696, - 1240: 0x5697, - 1241: 0x5698, - 1242: 0x5699, - 1243: 0x569A, - 1244: 0x569B, - 1245: 0x569C, - 1246: 0x569D, - 1247: 0x569E, - 1248: 0x569F, - 1249: 0x56A0, - 1250: 0x56A1, - 1251: 0x56A2, - 1252: 0x56A4, - 1253: 0x56A5, - 1254: 0x56A6, - 1255: 0x56A7, - 1256: 0x56A8, - 1257: 0x56A9, - 1258: 0x56AA, - 1259: 0x56AB, - 1260: 0x56AC, - 1261: 0x56AD, - 1262: 0x56AE, - 1263: 0x56B0, - 1264: 0x56B1, - 1265: 0x56B2, - 1266: 0x56B3, - 1267: 0x56B4, - 1268: 0x56B5, - 1269: 0x56B6, - 1270: 0x56B8, - 1271: 0x56B9, - 1272: 0x56BA, - 1273: 0x56BB, - 1274: 0x56BD, - 1275: 0x56BE, - 1276: 0x56BF, - 1277: 0x56C0, - 1278: 0x56C1, - 1279: 0x56C2, - 1280: 0x56C3, - 1281: 0x56C4, - 1282: 0x56C5, - 1283: 0x56C6, - 1284: 0x56C7, - 1285: 0x56C8, - 1286: 0x56C9, - 1287: 0x56CB, - 1288: 0x56CC, - 1289: 0x56CD, - 1290: 0x56CE, - 1291: 0x56CF, - 1292: 0x56D0, - 1293: 0x56D1, - 1294: 0x56D2, - 1295: 0x56D3, - 1296: 0x56D5, - 1297: 0x56D6, - 1298: 0x56D8, - 1299: 0x56D9, - 1300: 0x56DC, - 1301: 0x56E3, - 1302: 0x56E5, - 1303: 0x56E6, - 1304: 0x56E7, - 1305: 0x56E8, - 1306: 0x56E9, - 1307: 0x56EA, - 1308: 0x56EC, - 1309: 0x56EE, - 1310: 0x56EF, - 1311: 0x56F2, - 1312: 0x56F3, - 1313: 0x56F6, - 1314: 0x56F7, - 1315: 0x56F8, - 1316: 0x56FB, - 1317: 0x56FC, - 1318: 0x5700, - 1319: 0x5701, - 1320: 0x5702, - 1321: 0x5705, - 1322: 0x5707, - 1323: 0x570B, - 1324: 0x570C, - 1325: 0x570D, - 1326: 0x570E, - 1327: 0x570F, - 1328: 0x5710, - 1329: 0x5711, - 1330: 0x5712, - 1331: 0x5713, - 1332: 0x5714, - 1333: 0x5715, - 1334: 0x5716, - 1335: 0x5717, - 1336: 0x5718, - 1337: 0x5719, - 1338: 0x571A, - 1339: 0x571B, - 1340: 0x571D, - 1341: 0x571E, - 1342: 0x5720, - 1343: 0x5721, - 1344: 0x5722, - 1345: 0x5724, - 1346: 0x5725, - 1347: 0x5726, - 1348: 0x5727, - 1349: 0x572B, - 1350: 0x5731, - 1351: 0x5732, - 1352: 0x5734, - 1353: 0x5735, - 1354: 0x5736, - 1355: 0x5737, - 1356: 0x5738, - 1357: 0x573C, - 1358: 0x573D, - 1359: 0x573F, - 1360: 0x5741, - 1361: 0x5743, - 1362: 0x5744, - 1363: 0x5745, - 1364: 0x5746, - 1365: 0x5748, - 1366: 0x5749, - 1367: 0x574B, - 1368: 0x5752, - 1369: 0x5753, - 1370: 0x5754, - 1371: 0x5755, - 1372: 0x5756, - 1373: 0x5758, - 1374: 0x5759, - 1375: 0x5762, - 1376: 0x5763, - 1377: 0x5765, - 1378: 0x5767, - 1379: 0x576C, - 1380: 0x576E, - 1381: 0x5770, - 1382: 0x5771, - 1383: 0x5772, - 1384: 0x5774, - 1385: 0x5775, - 1386: 0x5778, - 1387: 0x5779, - 1388: 0x577A, - 1389: 0x577D, - 1390: 0x577E, - 1391: 0x577F, - 1392: 0x5780, - 1393: 0x5781, - 1394: 0x5787, - 1395: 0x5788, - 1396: 0x5789, - 1397: 0x578A, - 1398: 0x578D, - 1399: 0x578E, - 1400: 0x578F, - 1401: 0x5790, - 1402: 0x5791, - 1403: 0x5794, - 1404: 0x5795, - 1405: 0x5796, - 1406: 0x5797, - 1407: 0x5798, - 1408: 0x5799, - 1409: 0x579A, - 1410: 0x579C, - 1411: 0x579D, - 1412: 0x579E, - 1413: 0x579F, - 1414: 0x57A5, - 1415: 0x57A8, - 1416: 0x57AA, - 1417: 0x57AC, - 1418: 0x57AF, - 1419: 0x57B0, - 1420: 0x57B1, - 1421: 0x57B3, - 1422: 0x57B5, - 1423: 0x57B6, - 1424: 0x57B7, - 1425: 0x57B9, - 1426: 0x57BA, - 1427: 0x57BB, - 1428: 0x57BC, - 1429: 0x57BD, - 1430: 0x57BE, - 1431: 0x57BF, - 1432: 0x57C0, - 1433: 0x57C1, - 1434: 0x57C4, - 1435: 0x57C5, - 1436: 0x57C6, - 1437: 0x57C7, - 1438: 0x57C8, - 1439: 0x57C9, - 1440: 0x57CA, - 1441: 0x57CC, - 1442: 0x57CD, - 1443: 0x57D0, - 1444: 0x57D1, - 1445: 0x57D3, - 1446: 0x57D6, - 1447: 0x57D7, - 1448: 0x57DB, - 1449: 0x57DC, - 1450: 0x57DE, - 1451: 0x57E1, - 1452: 0x57E2, - 1453: 0x57E3, - 1454: 0x57E5, - 1455: 0x57E6, - 1456: 0x57E7, - 1457: 0x57E8, - 1458: 0x57E9, - 1459: 0x57EA, - 1460: 0x57EB, - 1461: 0x57EC, - 1462: 0x57EE, - 1463: 0x57F0, - 1464: 0x57F1, - 1465: 0x57F2, - 1466: 0x57F3, - 1467: 0x57F5, - 1468: 0x57F6, - 1469: 0x57F7, - 1470: 0x57FB, - 1471: 0x57FC, - 1472: 0x57FE, - 1473: 0x57FF, - 1474: 0x5801, - 1475: 0x5803, - 1476: 0x5804, - 1477: 0x5805, - 1478: 0x5808, - 1479: 0x5809, - 1480: 0x580A, - 1481: 0x580C, - 1482: 0x580E, - 1483: 0x580F, - 1484: 0x5810, - 1485: 0x5812, - 1486: 0x5813, - 1487: 0x5814, - 1488: 0x5816, - 1489: 0x5817, - 1490: 0x5818, - 1491: 0x581A, - 1492: 0x581B, - 1493: 0x581C, - 1494: 0x581D, - 1495: 0x581F, - 1496: 0x5822, - 1497: 0x5823, - 1498: 0x5825, - 1499: 0x5826, - 1500: 0x5827, - 1501: 0x5828, - 1502: 0x5829, - 1503: 0x582B, - 1504: 0x582C, - 1505: 0x582D, - 1506: 0x582E, - 1507: 0x582F, - 1508: 0x5831, - 1509: 0x5832, - 1510: 0x5833, - 1511: 0x5834, - 1512: 0x5836, - 1513: 0x5837, - 1514: 0x5838, - 1515: 0x5839, - 1516: 0x583A, - 1517: 0x583B, - 1518: 0x583C, - 1519: 0x583D, - 1520: 0x583E, - 1521: 0x583F, - 1522: 0x5840, - 1523: 0x5841, - 1524: 0x5842, - 1525: 0x5843, - 1526: 0x5845, - 1527: 0x5846, - 1528: 0x5847, - 1529: 0x5848, - 1530: 0x5849, - 1531: 0x584A, - 1532: 0x584B, - 1533: 0x584E, - 1534: 0x584F, - 1535: 0x5850, - 1536: 0x5852, - 1537: 0x5853, - 1538: 0x5855, - 1539: 0x5856, - 1540: 0x5857, - 1541: 0x5859, - 1542: 0x585A, - 1543: 0x585B, - 1544: 0x585C, - 1545: 0x585D, - 1546: 0x585F, - 1547: 0x5860, - 1548: 0x5861, - 1549: 0x5862, - 1550: 0x5863, - 1551: 0x5864, - 1552: 0x5866, - 1553: 0x5867, - 1554: 0x5868, - 1555: 0x5869, - 1556: 0x586A, - 1557: 0x586D, - 1558: 0x586E, - 1559: 0x586F, - 1560: 0x5870, - 1561: 0x5871, - 1562: 0x5872, - 1563: 0x5873, - 1564: 0x5874, - 1565: 0x5875, - 1566: 0x5876, - 1567: 0x5877, - 1568: 0x5878, - 1569: 0x5879, - 1570: 0x587A, - 1571: 0x587B, - 1572: 0x587C, - 1573: 0x587D, - 1574: 0x587F, - 1575: 0x5882, - 1576: 0x5884, - 1577: 0x5886, - 1578: 0x5887, - 1579: 0x5888, - 1580: 0x588A, - 1581: 0x588B, - 1582: 0x588C, - 1583: 0x588D, - 1584: 0x588E, - 1585: 0x588F, - 1586: 0x5890, - 1587: 0x5891, - 1588: 0x5894, - 1589: 0x5895, - 1590: 0x5896, - 1591: 0x5897, - 1592: 0x5898, - 1593: 0x589B, - 1594: 0x589C, - 1595: 0x589D, - 1596: 0x58A0, - 1597: 0x58A1, - 1598: 0x58A2, - 1599: 0x58A3, - 1600: 0x58A4, - 1601: 0x58A5, - 1602: 0x58A6, - 1603: 0x58A7, - 1604: 0x58AA, - 1605: 0x58AB, - 1606: 0x58AC, - 1607: 0x58AD, - 1608: 0x58AE, - 1609: 0x58AF, - 1610: 0x58B0, - 1611: 0x58B1, - 1612: 0x58B2, - 1613: 0x58B3, - 1614: 0x58B4, - 1615: 0x58B5, - 1616: 0x58B6, - 1617: 0x58B7, - 1618: 0x58B8, - 1619: 0x58B9, - 1620: 0x58BA, - 1621: 0x58BB, - 1622: 0x58BD, - 1623: 0x58BE, - 1624: 0x58BF, - 1625: 0x58C0, - 1626: 0x58C2, - 1627: 0x58C3, - 1628: 0x58C4, - 1629: 0x58C6, - 1630: 0x58C7, - 1631: 0x58C8, - 1632: 0x58C9, - 1633: 0x58CA, - 1634: 0x58CB, - 1635: 0x58CC, - 1636: 0x58CD, - 1637: 0x58CE, - 1638: 0x58CF, - 1639: 0x58D0, - 1640: 0x58D2, - 1641: 0x58D3, - 1642: 0x58D4, - 1643: 0x58D6, - 1644: 0x58D7, - 1645: 0x58D8, - 1646: 0x58D9, - 1647: 0x58DA, - 1648: 0x58DB, - 1649: 0x58DC, - 1650: 0x58DD, - 1651: 0x58DE, - 1652: 0x58DF, - 1653: 0x58E0, - 1654: 0x58E1, - 1655: 0x58E2, - 1656: 0x58E3, - 1657: 0x58E5, - 1658: 0x58E6, - 1659: 0x58E7, - 1660: 0x58E8, - 1661: 0x58E9, - 1662: 0x58EA, - 1663: 0x58ED, - 1664: 0x58EF, - 1665: 0x58F1, - 1666: 0x58F2, - 1667: 0x58F4, - 1668: 0x58F5, - 1669: 0x58F7, - 1670: 0x58F8, - 1671: 0x58FA, - 1672: 0x58FB, - 1673: 0x58FC, - 1674: 0x58FD, - 1675: 0x58FE, - 1676: 0x58FF, - 1677: 0x5900, - 1678: 0x5901, - 1679: 0x5903, - 1680: 0x5905, - 1681: 0x5906, - 1682: 0x5908, - 1683: 0x5909, - 1684: 0x590A, - 1685: 0x590B, - 1686: 0x590C, - 1687: 0x590E, - 1688: 0x5910, - 1689: 0x5911, - 1690: 0x5912, - 1691: 0x5913, - 1692: 0x5917, - 1693: 0x5918, - 1694: 0x591B, - 1695: 0x591D, - 1696: 0x591E, - 1697: 0x5920, - 1698: 0x5921, - 1699: 0x5922, - 1700: 0x5923, - 1701: 0x5926, - 1702: 0x5928, - 1703: 0x592C, - 1704: 0x5930, - 1705: 0x5932, - 1706: 0x5933, - 1707: 0x5935, - 1708: 0x5936, - 1709: 0x593B, - 1710: 0x593D, - 1711: 0x593E, - 1712: 0x593F, - 1713: 0x5940, - 1714: 0x5943, - 1715: 0x5945, - 1716: 0x5946, - 1717: 0x594A, - 1718: 0x594C, - 1719: 0x594D, - 1720: 0x5950, - 1721: 0x5952, - 1722: 0x5953, - 1723: 0x5959, - 1724: 0x595B, - 1725: 0x595C, - 1726: 0x595D, - 1727: 0x595E, - 1728: 0x595F, - 1729: 0x5961, - 1730: 0x5963, - 1731: 0x5964, - 1732: 0x5966, - 1733: 0x5967, - 1734: 0x5968, - 1735: 0x5969, - 1736: 0x596A, - 1737: 0x596B, - 1738: 0x596C, - 1739: 0x596D, - 1740: 0x596E, - 1741: 0x596F, - 1742: 0x5970, - 1743: 0x5971, - 1744: 0x5972, - 1745: 0x5975, - 1746: 0x5977, - 1747: 0x597A, - 1748: 0x597B, - 1749: 0x597C, - 1750: 0x597E, - 1751: 0x597F, - 1752: 0x5980, - 1753: 0x5985, - 1754: 0x5989, - 1755: 0x598B, - 1756: 0x598C, - 1757: 0x598E, - 1758: 0x598F, - 1759: 0x5990, - 1760: 0x5991, - 1761: 0x5994, - 1762: 0x5995, - 1763: 0x5998, - 1764: 0x599A, - 1765: 0x599B, - 1766: 0x599C, - 1767: 0x599D, - 1768: 0x599F, - 1769: 0x59A0, - 1770: 0x59A1, - 1771: 0x59A2, - 1772: 0x59A6, - 1773: 0x59A7, - 1774: 0x59AC, - 1775: 0x59AD, - 1776: 0x59B0, - 1777: 0x59B1, - 1778: 0x59B3, - 1779: 0x59B4, - 1780: 0x59B5, - 1781: 0x59B6, - 1782: 0x59B7, - 1783: 0x59B8, - 1784: 0x59BA, - 1785: 0x59BC, - 1786: 0x59BD, - 1787: 0x59BF, - 1788: 0x59C0, - 1789: 0x59C1, - 1790: 0x59C2, - 1791: 0x59C3, - 1792: 0x59C4, - 1793: 0x59C5, - 1794: 0x59C7, - 1795: 0x59C8, - 1796: 0x59C9, - 1797: 0x59CC, - 1798: 0x59CD, - 1799: 0x59CE, - 1800: 0x59CF, - 1801: 0x59D5, - 1802: 0x59D6, - 1803: 0x59D9, - 1804: 0x59DB, - 1805: 0x59DE, - 1806: 0x59DF, - 1807: 0x59E0, - 1808: 0x59E1, - 1809: 0x59E2, - 1810: 0x59E4, - 1811: 0x59E6, - 1812: 0x59E7, - 1813: 0x59E9, - 1814: 0x59EA, - 1815: 0x59EB, - 1816: 0x59ED, - 1817: 0x59EE, - 1818: 0x59EF, - 1819: 0x59F0, - 1820: 0x59F1, - 1821: 0x59F2, - 1822: 0x59F3, - 1823: 0x59F4, - 1824: 0x59F5, - 1825: 0x59F6, - 1826: 0x59F7, - 1827: 0x59F8, - 1828: 0x59FA, - 1829: 0x59FC, - 1830: 0x59FD, - 1831: 0x59FE, - 1832: 0x5A00, - 1833: 0x5A02, - 1834: 0x5A0A, - 1835: 0x5A0B, - 1836: 0x5A0D, - 1837: 0x5A0E, - 1838: 0x5A0F, - 1839: 0x5A10, - 1840: 0x5A12, - 1841: 0x5A14, - 1842: 0x5A15, - 1843: 0x5A16, - 1844: 0x5A17, - 1845: 0x5A19, - 1846: 0x5A1A, - 1847: 0x5A1B, - 1848: 0x5A1D, - 1849: 0x5A1E, - 1850: 0x5A21, - 1851: 0x5A22, - 1852: 0x5A24, - 1853: 0x5A26, - 1854: 0x5A27, - 1855: 0x5A28, - 1856: 0x5A2A, - 1857: 0x5A2B, - 1858: 0x5A2C, - 1859: 0x5A2D, - 1860: 0x5A2E, - 1861: 0x5A2F, - 1862: 0x5A30, - 1863: 0x5A33, - 1864: 0x5A35, - 1865: 0x5A37, - 1866: 0x5A38, - 1867: 0x5A39, - 1868: 0x5A3A, - 1869: 0x5A3B, - 1870: 0x5A3D, - 1871: 0x5A3E, - 1872: 0x5A3F, - 1873: 0x5A41, - 1874: 0x5A42, - 1875: 0x5A43, - 1876: 0x5A44, - 1877: 0x5A45, - 1878: 0x5A47, - 1879: 0x5A48, - 1880: 0x5A4B, - 1881: 0x5A4C, - 1882: 0x5A4D, - 1883: 0x5A4E, - 1884: 0x5A4F, - 1885: 0x5A50, - 1886: 0x5A51, - 1887: 0x5A52, - 1888: 0x5A53, - 1889: 0x5A54, - 1890: 0x5A56, - 1891: 0x5A57, - 1892: 0x5A58, - 1893: 0x5A59, - 1894: 0x5A5B, - 1895: 0x5A5C, - 1896: 0x5A5D, - 1897: 0x5A5E, - 1898: 0x5A5F, - 1899: 0x5A60, - 1900: 0x5A61, - 1901: 0x5A63, - 1902: 0x5A64, - 1903: 0x5A65, - 1904: 0x5A66, - 1905: 0x5A68, - 1906: 0x5A69, - 1907: 0x5A6B, - 1908: 0x5A6C, - 1909: 0x5A6D, - 1910: 0x5A6E, - 1911: 0x5A6F, - 1912: 0x5A70, - 1913: 0x5A71, - 1914: 0x5A72, - 1915: 0x5A73, - 1916: 0x5A78, - 1917: 0x5A79, - 1918: 0x5A7B, - 1919: 0x5A7C, - 1920: 0x5A7D, - 1921: 0x5A7E, - 1922: 0x5A80, - 1923: 0x5A81, - 1924: 0x5A82, - 1925: 0x5A83, - 1926: 0x5A84, - 1927: 0x5A85, - 1928: 0x5A86, - 1929: 0x5A87, - 1930: 0x5A88, - 1931: 0x5A89, - 1932: 0x5A8A, - 1933: 0x5A8B, - 1934: 0x5A8C, - 1935: 0x5A8D, - 1936: 0x5A8E, - 1937: 0x5A8F, - 1938: 0x5A90, - 1939: 0x5A91, - 1940: 0x5A93, - 1941: 0x5A94, - 1942: 0x5A95, - 1943: 0x5A96, - 1944: 0x5A97, - 1945: 0x5A98, - 1946: 0x5A99, - 1947: 0x5A9C, - 1948: 0x5A9D, - 1949: 0x5A9E, - 1950: 0x5A9F, - 1951: 0x5AA0, - 1952: 0x5AA1, - 1953: 0x5AA2, - 1954: 0x5AA3, - 1955: 0x5AA4, - 1956: 0x5AA5, - 1957: 0x5AA6, - 1958: 0x5AA7, - 1959: 0x5AA8, - 1960: 0x5AA9, - 1961: 0x5AAB, - 1962: 0x5AAC, - 1963: 0x5AAD, - 1964: 0x5AAE, - 1965: 0x5AAF, - 1966: 0x5AB0, - 1967: 0x5AB1, - 1968: 0x5AB4, - 1969: 0x5AB6, - 1970: 0x5AB7, - 1971: 0x5AB9, - 1972: 0x5ABA, - 1973: 0x5ABB, - 1974: 0x5ABC, - 1975: 0x5ABD, - 1976: 0x5ABF, - 1977: 0x5AC0, - 1978: 0x5AC3, - 1979: 0x5AC4, - 1980: 0x5AC5, - 1981: 0x5AC6, - 1982: 0x5AC7, - 1983: 0x5AC8, - 1984: 0x5ACA, - 1985: 0x5ACB, - 1986: 0x5ACD, - 1987: 0x5ACE, - 1988: 0x5ACF, - 1989: 0x5AD0, - 1990: 0x5AD1, - 1991: 0x5AD3, - 1992: 0x5AD5, - 1993: 0x5AD7, - 1994: 0x5AD9, - 1995: 0x5ADA, - 1996: 0x5ADB, - 1997: 0x5ADD, - 1998: 0x5ADE, - 1999: 0x5ADF, - 2000: 0x5AE2, - 2001: 0x5AE4, - 2002: 0x5AE5, - 2003: 0x5AE7, - 2004: 0x5AE8, - 2005: 0x5AEA, - 2006: 0x5AEC, - 2007: 0x5AED, - 2008: 0x5AEE, - 2009: 0x5AEF, - 2010: 0x5AF0, - 2011: 0x5AF2, - 2012: 0x5AF3, - 2013: 0x5AF4, - 2014: 0x5AF5, - 2015: 0x5AF6, - 2016: 0x5AF7, - 2017: 0x5AF8, - 2018: 0x5AF9, - 2019: 0x5AFA, - 2020: 0x5AFB, - 2021: 0x5AFC, - 2022: 0x5AFD, - 2023: 0x5AFE, - 2024: 0x5AFF, - 2025: 0x5B00, - 2026: 0x5B01, - 2027: 0x5B02, - 2028: 0x5B03, - 2029: 0x5B04, - 2030: 0x5B05, - 2031: 0x5B06, - 2032: 0x5B07, - 2033: 0x5B08, - 2034: 0x5B0A, - 2035: 0x5B0B, - 2036: 0x5B0C, - 2037: 0x5B0D, - 2038: 0x5B0E, - 2039: 0x5B0F, - 2040: 0x5B10, - 2041: 0x5B11, - 2042: 0x5B12, - 2043: 0x5B13, - 2044: 0x5B14, - 2045: 0x5B15, - 2046: 0x5B18, - 2047: 0x5B19, - 2048: 0x5B1A, - 2049: 0x5B1B, - 2050: 0x5B1C, - 2051: 0x5B1D, - 2052: 0x5B1E, - 2053: 0x5B1F, - 2054: 0x5B20, - 2055: 0x5B21, - 2056: 0x5B22, - 2057: 0x5B23, - 2058: 0x5B24, - 2059: 0x5B25, - 2060: 0x5B26, - 2061: 0x5B27, - 2062: 0x5B28, - 2063: 0x5B29, - 2064: 0x5B2A, - 2065: 0x5B2B, - 2066: 0x5B2C, - 2067: 0x5B2D, - 2068: 0x5B2E, - 2069: 0x5B2F, - 2070: 0x5B30, - 2071: 0x5B31, - 2072: 0x5B33, - 2073: 0x5B35, - 2074: 0x5B36, - 2075: 0x5B38, - 2076: 0x5B39, - 2077: 0x5B3A, - 2078: 0x5B3B, - 2079: 0x5B3C, - 2080: 0x5B3D, - 2081: 0x5B3E, - 2082: 0x5B3F, - 2083: 0x5B41, - 2084: 0x5B42, - 2085: 0x5B43, - 2086: 0x5B44, - 2087: 0x5B45, - 2088: 0x5B46, - 2089: 0x5B47, - 2090: 0x5B48, - 2091: 0x5B49, - 2092: 0x5B4A, - 2093: 0x5B4B, - 2094: 0x5B4C, - 2095: 0x5B4D, - 2096: 0x5B4E, - 2097: 0x5B4F, - 2098: 0x5B52, - 2099: 0x5B56, - 2100: 0x5B5E, - 2101: 0x5B60, - 2102: 0x5B61, - 2103: 0x5B67, - 2104: 0x5B68, - 2105: 0x5B6B, - 2106: 0x5B6D, - 2107: 0x5B6E, - 2108: 0x5B6F, - 2109: 0x5B72, - 2110: 0x5B74, - 2111: 0x5B76, - 2112: 0x5B77, - 2113: 0x5B78, - 2114: 0x5B79, - 2115: 0x5B7B, - 2116: 0x5B7C, - 2117: 0x5B7E, - 2118: 0x5B7F, - 2119: 0x5B82, - 2120: 0x5B86, - 2121: 0x5B8A, - 2122: 0x5B8D, - 2123: 0x5B8E, - 2124: 0x5B90, - 2125: 0x5B91, - 2126: 0x5B92, - 2127: 0x5B94, - 2128: 0x5B96, - 2129: 0x5B9F, - 2130: 0x5BA7, - 2131: 0x5BA8, - 2132: 0x5BA9, - 2133: 0x5BAC, - 2134: 0x5BAD, - 2135: 0x5BAE, - 2136: 0x5BAF, - 2137: 0x5BB1, - 2138: 0x5BB2, - 2139: 0x5BB7, - 2140: 0x5BBA, - 2141: 0x5BBB, - 2142: 0x5BBC, - 2143: 0x5BC0, - 2144: 0x5BC1, - 2145: 0x5BC3, - 2146: 0x5BC8, - 2147: 0x5BC9, - 2148: 0x5BCA, - 2149: 0x5BCB, - 2150: 0x5BCD, - 2151: 0x5BCE, - 2152: 0x5BCF, - 2153: 0x5BD1, - 2154: 0x5BD4, - 2155: 0x5BD5, - 2156: 0x5BD6, - 2157: 0x5BD7, - 2158: 0x5BD8, - 2159: 0x5BD9, - 2160: 0x5BDA, - 2161: 0x5BDB, - 2162: 0x5BDC, - 2163: 0x5BE0, - 2164: 0x5BE2, - 2165: 0x5BE3, - 2166: 0x5BE6, - 2167: 0x5BE7, - 2168: 0x5BE9, - 2169: 0x5BEA, - 2170: 0x5BEB, - 2171: 0x5BEC, - 2172: 0x5BED, - 2173: 0x5BEF, - 2174: 0x5BF1, - 2175: 0x5BF2, - 2176: 0x5BF3, - 2177: 0x5BF4, - 2178: 0x5BF5, - 2179: 0x5BF6, - 2180: 0x5BF7, - 2181: 0x5BFD, - 2182: 0x5BFE, - 2183: 0x5C00, - 2184: 0x5C02, - 2185: 0x5C03, - 2186: 0x5C05, - 2187: 0x5C07, - 2188: 0x5C08, - 2189: 0x5C0B, - 2190: 0x5C0C, - 2191: 0x5C0D, - 2192: 0x5C0E, - 2193: 0x5C10, - 2194: 0x5C12, - 2195: 0x5C13, - 2196: 0x5C17, - 2197: 0x5C19, - 2198: 0x5C1B, - 2199: 0x5C1E, - 2200: 0x5C1F, - 2201: 0x5C20, - 2202: 0x5C21, - 2203: 0x5C23, - 2204: 0x5C26, - 2205: 0x5C28, - 2206: 0x5C29, - 2207: 0x5C2A, - 2208: 0x5C2B, - 2209: 0x5C2D, - 2210: 0x5C2E, - 2211: 0x5C2F, - 2212: 0x5C30, - 2213: 0x5C32, - 2214: 0x5C33, - 2215: 0x5C35, - 2216: 0x5C36, - 2217: 0x5C37, - 2218: 0x5C43, - 2219: 0x5C44, - 2220: 0x5C46, - 2221: 0x5C47, - 2222: 0x5C4C, - 2223: 0x5C4D, - 2224: 0x5C52, - 2225: 0x5C53, - 2226: 0x5C54, - 2227: 0x5C56, - 2228: 0x5C57, - 2229: 0x5C58, - 2230: 0x5C5A, - 2231: 0x5C5B, - 2232: 0x5C5C, - 2233: 0x5C5D, - 2234: 0x5C5F, - 2235: 0x5C62, - 2236: 0x5C64, - 2237: 0x5C67, - 2238: 0x5C68, - 2239: 0x5C69, - 2240: 0x5C6A, - 2241: 0x5C6B, - 2242: 0x5C6C, - 2243: 0x5C6D, - 2244: 0x5C70, - 2245: 0x5C72, - 2246: 0x5C73, - 2247: 0x5C74, - 2248: 0x5C75, - 2249: 0x5C76, - 2250: 0x5C77, - 2251: 0x5C78, - 2252: 0x5C7B, - 2253: 0x5C7C, - 2254: 0x5C7D, - 2255: 0x5C7E, - 2256: 0x5C80, - 2257: 0x5C83, - 2258: 0x5C84, - 2259: 0x5C85, - 2260: 0x5C86, - 2261: 0x5C87, - 2262: 0x5C89, - 2263: 0x5C8A, - 2264: 0x5C8B, - 2265: 0x5C8E, - 2266: 0x5C8F, - 2267: 0x5C92, - 2268: 0x5C93, - 2269: 0x5C95, - 2270: 0x5C9D, - 2271: 0x5C9E, - 2272: 0x5C9F, - 2273: 0x5CA0, - 2274: 0x5CA1, - 2275: 0x5CA4, - 2276: 0x5CA5, - 2277: 0x5CA6, - 2278: 0x5CA7, - 2279: 0x5CA8, - 2280: 0x5CAA, - 2281: 0x5CAE, - 2282: 0x5CAF, - 2283: 0x5CB0, - 2284: 0x5CB2, - 2285: 0x5CB4, - 2286: 0x5CB6, - 2287: 0x5CB9, - 2288: 0x5CBA, - 2289: 0x5CBB, - 2290: 0x5CBC, - 2291: 0x5CBE, - 2292: 0x5CC0, - 2293: 0x5CC2, - 2294: 0x5CC3, - 2295: 0x5CC5, - 2296: 0x5CC6, - 2297: 0x5CC7, - 2298: 0x5CC8, - 2299: 0x5CC9, - 2300: 0x5CCA, - 2301: 0x5CCC, - 2302: 0x5CCD, - 2303: 0x5CCE, - 2304: 0x5CCF, - 2305: 0x5CD0, - 2306: 0x5CD1, - 2307: 0x5CD3, - 2308: 0x5CD4, - 2309: 0x5CD5, - 2310: 0x5CD6, - 2311: 0x5CD7, - 2312: 0x5CD8, - 2313: 0x5CDA, - 2314: 0x5CDB, - 2315: 0x5CDC, - 2316: 0x5CDD, - 2317: 0x5CDE, - 2318: 0x5CDF, - 2319: 0x5CE0, - 2320: 0x5CE2, - 2321: 0x5CE3, - 2322: 0x5CE7, - 2323: 0x5CE9, - 2324: 0x5CEB, - 2325: 0x5CEC, - 2326: 0x5CEE, - 2327: 0x5CEF, - 2328: 0x5CF1, - 2329: 0x5CF2, - 2330: 0x5CF3, - 2331: 0x5CF4, - 2332: 0x5CF5, - 2333: 0x5CF6, - 2334: 0x5CF7, - 2335: 0x5CF8, - 2336: 0x5CF9, - 2337: 0x5CFA, - 2338: 0x5CFC, - 2339: 0x5CFD, - 2340: 0x5CFE, - 2341: 0x5CFF, - 2342: 0x5D00, - 2343: 0x5D01, - 2344: 0x5D04, - 2345: 0x5D05, - 2346: 0x5D08, - 2347: 0x5D09, - 2348: 0x5D0A, - 2349: 0x5D0B, - 2350: 0x5D0C, - 2351: 0x5D0D, - 2352: 0x5D0F, - 2353: 0x5D10, - 2354: 0x5D11, - 2355: 0x5D12, - 2356: 0x5D13, - 2357: 0x5D15, - 2358: 0x5D17, - 2359: 0x5D18, - 2360: 0x5D19, - 2361: 0x5D1A, - 2362: 0x5D1C, - 2363: 0x5D1D, - 2364: 0x5D1F, - 2365: 0x5D20, - 2366: 0x5D21, - 2367: 0x5D22, - 2368: 0x5D23, - 2369: 0x5D25, - 2370: 0x5D28, - 2371: 0x5D2A, - 2372: 0x5D2B, - 2373: 0x5D2C, - 2374: 0x5D2F, - 2375: 0x5D30, - 2376: 0x5D31, - 2377: 0x5D32, - 2378: 0x5D33, - 2379: 0x5D35, - 2380: 0x5D36, - 2381: 0x5D37, - 2382: 0x5D38, - 2383: 0x5D39, - 2384: 0x5D3A, - 2385: 0x5D3B, - 2386: 0x5D3C, - 2387: 0x5D3F, - 2388: 0x5D40, - 2389: 0x5D41, - 2390: 0x5D42, - 2391: 0x5D43, - 2392: 0x5D44, - 2393: 0x5D45, - 2394: 0x5D46, - 2395: 0x5D48, - 2396: 0x5D49, - 2397: 0x5D4D, - 2398: 0x5D4E, - 2399: 0x5D4F, - 2400: 0x5D50, - 2401: 0x5D51, - 2402: 0x5D52, - 2403: 0x5D53, - 2404: 0x5D54, - 2405: 0x5D55, - 2406: 0x5D56, - 2407: 0x5D57, - 2408: 0x5D59, - 2409: 0x5D5A, - 2410: 0x5D5C, - 2411: 0x5D5E, - 2412: 0x5D5F, - 2413: 0x5D60, - 2414: 0x5D61, - 2415: 0x5D62, - 2416: 0x5D63, - 2417: 0x5D64, - 2418: 0x5D65, - 2419: 0x5D66, - 2420: 0x5D67, - 2421: 0x5D68, - 2422: 0x5D6A, - 2423: 0x5D6D, - 2424: 0x5D6E, - 2425: 0x5D70, - 2426: 0x5D71, - 2427: 0x5D72, - 2428: 0x5D73, - 2429: 0x5D75, - 2430: 0x5D76, - 2431: 0x5D77, - 2432: 0x5D78, - 2433: 0x5D79, - 2434: 0x5D7A, - 2435: 0x5D7B, - 2436: 0x5D7C, - 2437: 0x5D7D, - 2438: 0x5D7E, - 2439: 0x5D7F, - 2440: 0x5D80, - 2441: 0x5D81, - 2442: 0x5D83, - 2443: 0x5D84, - 2444: 0x5D85, - 2445: 0x5D86, - 2446: 0x5D87, - 2447: 0x5D88, - 2448: 0x5D89, - 2449: 0x5D8A, - 2450: 0x5D8B, - 2451: 0x5D8C, - 2452: 0x5D8D, - 2453: 0x5D8E, - 2454: 0x5D8F, - 2455: 0x5D90, - 2456: 0x5D91, - 2457: 0x5D92, - 2458: 0x5D93, - 2459: 0x5D94, - 2460: 0x5D95, - 2461: 0x5D96, - 2462: 0x5D97, - 2463: 0x5D98, - 2464: 0x5D9A, - 2465: 0x5D9B, - 2466: 0x5D9C, - 2467: 0x5D9E, - 2468: 0x5D9F, - 2469: 0x5DA0, - 2470: 0x5DA1, - 2471: 0x5DA2, - 2472: 0x5DA3, - 2473: 0x5DA4, - 2474: 0x5DA5, - 2475: 0x5DA6, - 2476: 0x5DA7, - 2477: 0x5DA8, - 2478: 0x5DA9, - 2479: 0x5DAA, - 2480: 0x5DAB, - 2481: 0x5DAC, - 2482: 0x5DAD, - 2483: 0x5DAE, - 2484: 0x5DAF, - 2485: 0x5DB0, - 2486: 0x5DB1, - 2487: 0x5DB2, - 2488: 0x5DB3, - 2489: 0x5DB4, - 2490: 0x5DB5, - 2491: 0x5DB6, - 2492: 0x5DB8, - 2493: 0x5DB9, - 2494: 0x5DBA, - 2495: 0x5DBB, - 2496: 0x5DBC, - 2497: 0x5DBD, - 2498: 0x5DBE, - 2499: 0x5DBF, - 2500: 0x5DC0, - 2501: 0x5DC1, - 2502: 0x5DC2, - 2503: 0x5DC3, - 2504: 0x5DC4, - 2505: 0x5DC6, - 2506: 0x5DC7, - 2507: 0x5DC8, - 2508: 0x5DC9, - 2509: 0x5DCA, - 2510: 0x5DCB, - 2511: 0x5DCC, - 2512: 0x5DCE, - 2513: 0x5DCF, - 2514: 0x5DD0, - 2515: 0x5DD1, - 2516: 0x5DD2, - 2517: 0x5DD3, - 2518: 0x5DD4, - 2519: 0x5DD5, - 2520: 0x5DD6, - 2521: 0x5DD7, - 2522: 0x5DD8, - 2523: 0x5DD9, - 2524: 0x5DDA, - 2525: 0x5DDC, - 2526: 0x5DDF, - 2527: 0x5DE0, - 2528: 0x5DE3, - 2529: 0x5DE4, - 2530: 0x5DEA, - 2531: 0x5DEC, - 2532: 0x5DED, - 2533: 0x5DF0, - 2534: 0x5DF5, - 2535: 0x5DF6, - 2536: 0x5DF8, - 2537: 0x5DF9, - 2538: 0x5DFA, - 2539: 0x5DFB, - 2540: 0x5DFC, - 2541: 0x5DFF, - 2542: 0x5E00, - 2543: 0x5E04, - 2544: 0x5E07, - 2545: 0x5E09, - 2546: 0x5E0A, - 2547: 0x5E0B, - 2548: 0x5E0D, - 2549: 0x5E0E, - 2550: 0x5E12, - 2551: 0x5E13, - 2552: 0x5E17, - 2553: 0x5E1E, - 2554: 0x5E1F, - 2555: 0x5E20, - 2556: 0x5E21, - 2557: 0x5E22, - 2558: 0x5E23, - 2559: 0x5E24, - 2560: 0x5E25, - 2561: 0x5E28, - 2562: 0x5E29, - 2563: 0x5E2A, - 2564: 0x5E2B, - 2565: 0x5E2C, - 2566: 0x5E2F, - 2567: 0x5E30, - 2568: 0x5E32, - 2569: 0x5E33, - 2570: 0x5E34, - 2571: 0x5E35, - 2572: 0x5E36, - 2573: 0x5E39, - 2574: 0x5E3A, - 2575: 0x5E3E, - 2576: 0x5E3F, - 2577: 0x5E40, - 2578: 0x5E41, - 2579: 0x5E43, - 2580: 0x5E46, - 2581: 0x5E47, - 2582: 0x5E48, - 2583: 0x5E49, - 2584: 0x5E4A, - 2585: 0x5E4B, - 2586: 0x5E4D, - 2587: 0x5E4E, - 2588: 0x5E4F, - 2589: 0x5E50, - 2590: 0x5E51, - 2591: 0x5E52, - 2592: 0x5E53, - 2593: 0x5E56, - 2594: 0x5E57, - 2595: 0x5E58, - 2596: 0x5E59, - 2597: 0x5E5A, - 2598: 0x5E5C, - 2599: 0x5E5D, - 2600: 0x5E5F, - 2601: 0x5E60, - 2602: 0x5E63, - 2603: 0x5E64, - 2604: 0x5E65, - 2605: 0x5E66, - 2606: 0x5E67, - 2607: 0x5E68, - 2608: 0x5E69, - 2609: 0x5E6A, - 2610: 0x5E6B, - 2611: 0x5E6C, - 2612: 0x5E6D, - 2613: 0x5E6E, - 2614: 0x5E6F, - 2615: 0x5E70, - 2616: 0x5E71, - 2617: 0x5E75, - 2618: 0x5E77, - 2619: 0x5E79, - 2620: 0x5E7E, - 2621: 0x5E81, - 2622: 0x5E82, - 2623: 0x5E83, - 2624: 0x5E85, - 2625: 0x5E88, - 2626: 0x5E89, - 2627: 0x5E8C, - 2628: 0x5E8D, - 2629: 0x5E8E, - 2630: 0x5E92, - 2631: 0x5E98, - 2632: 0x5E9B, - 2633: 0x5E9D, - 2634: 0x5EA1, - 2635: 0x5EA2, - 2636: 0x5EA3, - 2637: 0x5EA4, - 2638: 0x5EA8, - 2639: 0x5EA9, - 2640: 0x5EAA, - 2641: 0x5EAB, - 2642: 0x5EAC, - 2643: 0x5EAE, - 2644: 0x5EAF, - 2645: 0x5EB0, - 2646: 0x5EB1, - 2647: 0x5EB2, - 2648: 0x5EB4, - 2649: 0x5EBA, - 2650: 0x5EBB, - 2651: 0x5EBC, - 2652: 0x5EBD, - 2653: 0x5EBF, - 2654: 0x5EC0, - 2655: 0x5EC1, - 2656: 0x5EC2, - 2657: 0x5EC3, - 2658: 0x5EC4, - 2659: 0x5EC5, - 2660: 0x5EC6, - 2661: 0x5EC7, - 2662: 0x5EC8, - 2663: 0x5ECB, - 2664: 0x5ECC, - 2665: 0x5ECD, - 2666: 0x5ECE, - 2667: 0x5ECF, - 2668: 0x5ED0, - 2669: 0x5ED4, - 2670: 0x5ED5, - 2671: 0x5ED7, - 2672: 0x5ED8, - 2673: 0x5ED9, - 2674: 0x5EDA, - 2675: 0x5EDC, - 2676: 0x5EDD, - 2677: 0x5EDE, - 2678: 0x5EDF, - 2679: 0x5EE0, - 2680: 0x5EE1, - 2681: 0x5EE2, - 2682: 0x5EE3, - 2683: 0x5EE4, - 2684: 0x5EE5, - 2685: 0x5EE6, - 2686: 0x5EE7, - 2687: 0x5EE9, - 2688: 0x5EEB, - 2689: 0x5EEC, - 2690: 0x5EED, - 2691: 0x5EEE, - 2692: 0x5EEF, - 2693: 0x5EF0, - 2694: 0x5EF1, - 2695: 0x5EF2, - 2696: 0x5EF3, - 2697: 0x5EF5, - 2698: 0x5EF8, - 2699: 0x5EF9, - 2700: 0x5EFB, - 2701: 0x5EFC, - 2702: 0x5EFD, - 2703: 0x5F05, - 2704: 0x5F06, - 2705: 0x5F07, - 2706: 0x5F09, - 2707: 0x5F0C, - 2708: 0x5F0D, - 2709: 0x5F0E, - 2710: 0x5F10, - 2711: 0x5F12, - 2712: 0x5F14, - 2713: 0x5F16, - 2714: 0x5F19, - 2715: 0x5F1A, - 2716: 0x5F1C, - 2717: 0x5F1D, - 2718: 0x5F1E, - 2719: 0x5F21, - 2720: 0x5F22, - 2721: 0x5F23, - 2722: 0x5F24, - 2723: 0x5F28, - 2724: 0x5F2B, - 2725: 0x5F2C, - 2726: 0x5F2E, - 2727: 0x5F30, - 2728: 0x5F32, - 2729: 0x5F33, - 2730: 0x5F34, - 2731: 0x5F35, - 2732: 0x5F36, - 2733: 0x5F37, - 2734: 0x5F38, - 2735: 0x5F3B, - 2736: 0x5F3D, - 2737: 0x5F3E, - 2738: 0x5F3F, - 2739: 0x5F41, - 2740: 0x5F42, - 2741: 0x5F43, - 2742: 0x5F44, - 2743: 0x5F45, - 2744: 0x5F46, - 2745: 0x5F47, - 2746: 0x5F48, - 2747: 0x5F49, - 2748: 0x5F4A, - 2749: 0x5F4B, - 2750: 0x5F4C, - 2751: 0x5F4D, - 2752: 0x5F4E, - 2753: 0x5F4F, - 2754: 0x5F51, - 2755: 0x5F54, - 2756: 0x5F59, - 2757: 0x5F5A, - 2758: 0x5F5B, - 2759: 0x5F5C, - 2760: 0x5F5E, - 2761: 0x5F5F, - 2762: 0x5F60, - 2763: 0x5F63, - 2764: 0x5F65, - 2765: 0x5F67, - 2766: 0x5F68, - 2767: 0x5F6B, - 2768: 0x5F6E, - 2769: 0x5F6F, - 2770: 0x5F72, - 2771: 0x5F74, - 2772: 0x5F75, - 2773: 0x5F76, - 2774: 0x5F78, - 2775: 0x5F7A, - 2776: 0x5F7D, - 2777: 0x5F7E, - 2778: 0x5F7F, - 2779: 0x5F83, - 2780: 0x5F86, - 2781: 0x5F8D, - 2782: 0x5F8E, - 2783: 0x5F8F, - 2784: 0x5F91, - 2785: 0x5F93, - 2786: 0x5F94, - 2787: 0x5F96, - 2788: 0x5F9A, - 2789: 0x5F9B, - 2790: 0x5F9D, - 2791: 0x5F9E, - 2792: 0x5F9F, - 2793: 0x5FA0, - 2794: 0x5FA2, - 2795: 0x5FA3, - 2796: 0x5FA4, - 2797: 0x5FA5, - 2798: 0x5FA6, - 2799: 0x5FA7, - 2800: 0x5FA9, - 2801: 0x5FAB, - 2802: 0x5FAC, - 2803: 0x5FAF, - 2804: 0x5FB0, - 2805: 0x5FB1, - 2806: 0x5FB2, - 2807: 0x5FB3, - 2808: 0x5FB4, - 2809: 0x5FB6, - 2810: 0x5FB8, - 2811: 0x5FB9, - 2812: 0x5FBA, - 2813: 0x5FBB, - 2814: 0x5FBE, - 2815: 0x5FBF, - 2816: 0x5FC0, - 2817: 0x5FC1, - 2818: 0x5FC2, - 2819: 0x5FC7, - 2820: 0x5FC8, - 2821: 0x5FCA, - 2822: 0x5FCB, - 2823: 0x5FCE, - 2824: 0x5FD3, - 2825: 0x5FD4, - 2826: 0x5FD5, - 2827: 0x5FDA, - 2828: 0x5FDB, - 2829: 0x5FDC, - 2830: 0x5FDE, - 2831: 0x5FDF, - 2832: 0x5FE2, - 2833: 0x5FE3, - 2834: 0x5FE5, - 2835: 0x5FE6, - 2836: 0x5FE8, - 2837: 0x5FE9, - 2838: 0x5FEC, - 2839: 0x5FEF, - 2840: 0x5FF0, - 2841: 0x5FF2, - 2842: 0x5FF3, - 2843: 0x5FF4, - 2844: 0x5FF6, - 2845: 0x5FF7, - 2846: 0x5FF9, - 2847: 0x5FFA, - 2848: 0x5FFC, - 2849: 0x6007, - 2850: 0x6008, - 2851: 0x6009, - 2852: 0x600B, - 2853: 0x600C, - 2854: 0x6010, - 2855: 0x6011, - 2856: 0x6013, - 2857: 0x6017, - 2858: 0x6018, - 2859: 0x601A, - 2860: 0x601E, - 2861: 0x601F, - 2862: 0x6022, - 2863: 0x6023, - 2864: 0x6024, - 2865: 0x602C, - 2866: 0x602D, - 2867: 0x602E, - 2868: 0x6030, - 2869: 0x6031, - 2870: 0x6032, - 2871: 0x6033, - 2872: 0x6034, - 2873: 0x6036, - 2874: 0x6037, - 2875: 0x6038, - 2876: 0x6039, - 2877: 0x603A, - 2878: 0x603D, - 2879: 0x603E, - 2880: 0x6040, - 2881: 0x6044, - 2882: 0x6045, - 2883: 0x6046, - 2884: 0x6047, - 2885: 0x6048, - 2886: 0x6049, - 2887: 0x604A, - 2888: 0x604C, - 2889: 0x604E, - 2890: 0x604F, - 2891: 0x6051, - 2892: 0x6053, - 2893: 0x6054, - 2894: 0x6056, - 2895: 0x6057, - 2896: 0x6058, - 2897: 0x605B, - 2898: 0x605C, - 2899: 0x605E, - 2900: 0x605F, - 2901: 0x6060, - 2902: 0x6061, - 2903: 0x6065, - 2904: 0x6066, - 2905: 0x606E, - 2906: 0x6071, - 2907: 0x6072, - 2908: 0x6074, - 2909: 0x6075, - 2910: 0x6077, - 2911: 0x607E, - 2912: 0x6080, - 2913: 0x6081, - 2914: 0x6082, - 2915: 0x6085, - 2916: 0x6086, - 2917: 0x6087, - 2918: 0x6088, - 2919: 0x608A, - 2920: 0x608B, - 2921: 0x608E, - 2922: 0x608F, - 2923: 0x6090, - 2924: 0x6091, - 2925: 0x6093, - 2926: 0x6095, - 2927: 0x6097, - 2928: 0x6098, - 2929: 0x6099, - 2930: 0x609C, - 2931: 0x609E, - 2932: 0x60A1, - 2933: 0x60A2, - 2934: 0x60A4, - 2935: 0x60A5, - 2936: 0x60A7, - 2937: 0x60A9, - 2938: 0x60AA, - 2939: 0x60AE, - 2940: 0x60B0, - 2941: 0x60B3, - 2942: 0x60B5, - 2943: 0x60B6, - 2944: 0x60B7, - 2945: 0x60B9, - 2946: 0x60BA, - 2947: 0x60BD, - 2948: 0x60BE, - 2949: 0x60BF, - 2950: 0x60C0, - 2951: 0x60C1, - 2952: 0x60C2, - 2953: 0x60C3, - 2954: 0x60C4, - 2955: 0x60C7, - 2956: 0x60C8, - 2957: 0x60C9, - 2958: 0x60CC, - 2959: 0x60CD, - 2960: 0x60CE, - 2961: 0x60CF, - 2962: 0x60D0, - 2963: 0x60D2, - 2964: 0x60D3, - 2965: 0x60D4, - 2966: 0x60D6, - 2967: 0x60D7, - 2968: 0x60D9, - 2969: 0x60DB, - 2970: 0x60DE, - 2971: 0x60E1, - 2972: 0x60E2, - 2973: 0x60E3, - 2974: 0x60E4, - 2975: 0x60E5, - 2976: 0x60EA, - 2977: 0x60F1, - 2978: 0x60F2, - 2979: 0x60F5, - 2980: 0x60F7, - 2981: 0x60F8, - 2982: 0x60FB, - 2983: 0x60FC, - 2984: 0x60FD, - 2985: 0x60FE, - 2986: 0x60FF, - 2987: 0x6102, - 2988: 0x6103, - 2989: 0x6104, - 2990: 0x6105, - 2991: 0x6107, - 2992: 0x610A, - 2993: 0x610B, - 2994: 0x610C, - 2995: 0x6110, - 2996: 0x6111, - 2997: 0x6112, - 2998: 0x6113, - 2999: 0x6114, - 3000: 0x6116, - 3001: 0x6117, - 3002: 0x6118, - 3003: 0x6119, - 3004: 0x611B, - 3005: 0x611C, - 3006: 0x611D, - 3007: 0x611E, - 3008: 0x6121, - 3009: 0x6122, - 3010: 0x6125, - 3011: 0x6128, - 3012: 0x6129, - 3013: 0x612A, - 3014: 0x612C, - 3015: 0x612D, - 3016: 0x612E, - 3017: 0x612F, - 3018: 0x6130, - 3019: 0x6131, - 3020: 0x6132, - 3021: 0x6133, - 3022: 0x6134, - 3023: 0x6135, - 3024: 0x6136, - 3025: 0x6137, - 3026: 0x6138, - 3027: 0x6139, - 3028: 0x613A, - 3029: 0x613B, - 3030: 0x613C, - 3031: 0x613D, - 3032: 0x613E, - 3033: 0x6140, - 3034: 0x6141, - 3035: 0x6142, - 3036: 0x6143, - 3037: 0x6144, - 3038: 0x6145, - 3039: 0x6146, - 3040: 0x6147, - 3041: 0x6149, - 3042: 0x614B, - 3043: 0x614D, - 3044: 0x614F, - 3045: 0x6150, - 3046: 0x6152, - 3047: 0x6153, - 3048: 0x6154, - 3049: 0x6156, - 3050: 0x6157, - 3051: 0x6158, - 3052: 0x6159, - 3053: 0x615A, - 3054: 0x615B, - 3055: 0x615C, - 3056: 0x615E, - 3057: 0x615F, - 3058: 0x6160, - 3059: 0x6161, - 3060: 0x6163, - 3061: 0x6164, - 3062: 0x6165, - 3063: 0x6166, - 3064: 0x6169, - 3065: 0x616A, - 3066: 0x616B, - 3067: 0x616C, - 3068: 0x616D, - 3069: 0x616E, - 3070: 0x616F, - 3071: 0x6171, - 3072: 0x6172, - 3073: 0x6173, - 3074: 0x6174, - 3075: 0x6176, - 3076: 0x6178, - 3077: 0x6179, - 3078: 0x617A, - 3079: 0x617B, - 3080: 0x617C, - 3081: 0x617D, - 3082: 0x617E, - 3083: 0x617F, - 3084: 0x6180, - 3085: 0x6181, - 3086: 0x6182, - 3087: 0x6183, - 3088: 0x6184, - 3089: 0x6185, - 3090: 0x6186, - 3091: 0x6187, - 3092: 0x6188, - 3093: 0x6189, - 3094: 0x618A, - 3095: 0x618C, - 3096: 0x618D, - 3097: 0x618F, - 3098: 0x6190, - 3099: 0x6191, - 3100: 0x6192, - 3101: 0x6193, - 3102: 0x6195, - 3103: 0x6196, - 3104: 0x6197, - 3105: 0x6198, - 3106: 0x6199, - 3107: 0x619A, - 3108: 0x619B, - 3109: 0x619C, - 3110: 0x619E, - 3111: 0x619F, - 3112: 0x61A0, - 3113: 0x61A1, - 3114: 0x61A2, - 3115: 0x61A3, - 3116: 0x61A4, - 3117: 0x61A5, - 3118: 0x61A6, - 3119: 0x61AA, - 3120: 0x61AB, - 3121: 0x61AD, - 3122: 0x61AE, - 3123: 0x61AF, - 3124: 0x61B0, - 3125: 0x61B1, - 3126: 0x61B2, - 3127: 0x61B3, - 3128: 0x61B4, - 3129: 0x61B5, - 3130: 0x61B6, - 3131: 0x61B8, - 3132: 0x61B9, - 3133: 0x61BA, - 3134: 0x61BB, - 3135: 0x61BC, - 3136: 0x61BD, - 3137: 0x61BF, - 3138: 0x61C0, - 3139: 0x61C1, - 3140: 0x61C3, - 3141: 0x61C4, - 3142: 0x61C5, - 3143: 0x61C6, - 3144: 0x61C7, - 3145: 0x61C9, - 3146: 0x61CC, - 3147: 0x61CD, - 3148: 0x61CE, - 3149: 0x61CF, - 3150: 0x61D0, - 3151: 0x61D3, - 3152: 0x61D5, - 3153: 0x61D6, - 3154: 0x61D7, - 3155: 0x61D8, - 3156: 0x61D9, - 3157: 0x61DA, - 3158: 0x61DB, - 3159: 0x61DC, - 3160: 0x61DD, - 3161: 0x61DE, - 3162: 0x61DF, - 3163: 0x61E0, - 3164: 0x61E1, - 3165: 0x61E2, - 3166: 0x61E3, - 3167: 0x61E4, - 3168: 0x61E5, - 3169: 0x61E7, - 3170: 0x61E8, - 3171: 0x61E9, - 3172: 0x61EA, - 3173: 0x61EB, - 3174: 0x61EC, - 3175: 0x61ED, - 3176: 0x61EE, - 3177: 0x61EF, - 3178: 0x61F0, - 3179: 0x61F1, - 3180: 0x61F2, - 3181: 0x61F3, - 3182: 0x61F4, - 3183: 0x61F6, - 3184: 0x61F7, - 3185: 0x61F8, - 3186: 0x61F9, - 3187: 0x61FA, - 3188: 0x61FB, - 3189: 0x61FC, - 3190: 0x61FD, - 3191: 0x61FE, - 3192: 0x6200, - 3193: 0x6201, - 3194: 0x6202, - 3195: 0x6203, - 3196: 0x6204, - 3197: 0x6205, - 3198: 0x6207, - 3199: 0x6209, - 3200: 0x6213, - 3201: 0x6214, - 3202: 0x6219, - 3203: 0x621C, - 3204: 0x621D, - 3205: 0x621E, - 3206: 0x6220, - 3207: 0x6223, - 3208: 0x6226, - 3209: 0x6227, - 3210: 0x6228, - 3211: 0x6229, - 3212: 0x622B, - 3213: 0x622D, - 3214: 0x622F, - 3215: 0x6230, - 3216: 0x6231, - 3217: 0x6232, - 3218: 0x6235, - 3219: 0x6236, - 3220: 0x6238, - 3221: 0x6239, - 3222: 0x623A, - 3223: 0x623B, - 3224: 0x623C, - 3225: 0x6242, - 3226: 0x6244, - 3227: 0x6245, - 3228: 0x6246, - 3229: 0x624A, - 3230: 0x624F, - 3231: 0x6250, - 3232: 0x6255, - 3233: 0x6256, - 3234: 0x6257, - 3235: 0x6259, - 3236: 0x625A, - 3237: 0x625C, - 3238: 0x625D, - 3239: 0x625E, - 3240: 0x625F, - 3241: 0x6260, - 3242: 0x6261, - 3243: 0x6262, - 3244: 0x6264, - 3245: 0x6265, - 3246: 0x6268, - 3247: 0x6271, - 3248: 0x6272, - 3249: 0x6274, - 3250: 0x6275, - 3251: 0x6277, - 3252: 0x6278, - 3253: 0x627A, - 3254: 0x627B, - 3255: 0x627D, - 3256: 0x6281, - 3257: 0x6282, - 3258: 0x6283, - 3259: 0x6285, - 3260: 0x6286, - 3261: 0x6287, - 3262: 0x6288, - 3263: 0x628B, - 3264: 0x628C, - 3265: 0x628D, - 3266: 0x628E, - 3267: 0x628F, - 3268: 0x6290, - 3269: 0x6294, - 3270: 0x6299, - 3271: 0x629C, - 3272: 0x629D, - 3273: 0x629E, - 3274: 0x62A3, - 3275: 0x62A6, - 3276: 0x62A7, - 3277: 0x62A9, - 3278: 0x62AA, - 3279: 0x62AD, - 3280: 0x62AE, - 3281: 0x62AF, - 3282: 0x62B0, - 3283: 0x62B2, - 3284: 0x62B3, - 3285: 0x62B4, - 3286: 0x62B6, - 3287: 0x62B7, - 3288: 0x62B8, - 3289: 0x62BA, - 3290: 0x62BE, - 3291: 0x62C0, - 3292: 0x62C1, - 3293: 0x62C3, - 3294: 0x62CB, - 3295: 0x62CF, - 3296: 0x62D1, - 3297: 0x62D5, - 3298: 0x62DD, - 3299: 0x62DE, - 3300: 0x62E0, - 3301: 0x62E1, - 3302: 0x62E4, - 3303: 0x62EA, - 3304: 0x62EB, - 3305: 0x62F0, - 3306: 0x62F2, - 3307: 0x62F5, - 3308: 0x62F8, - 3309: 0x62F9, - 3310: 0x62FA, - 3311: 0x62FB, - 3312: 0x6300, - 3313: 0x6303, - 3314: 0x6304, - 3315: 0x6305, - 3316: 0x6306, - 3317: 0x630A, - 3318: 0x630B, - 3319: 0x630C, - 3320: 0x630D, - 3321: 0x630F, - 3322: 0x6310, - 3323: 0x6312, - 3324: 0x6313, - 3325: 0x6314, - 3326: 0x6315, - 3327: 0x6317, - 3328: 0x6318, - 3329: 0x6319, - 3330: 0x631C, - 3331: 0x6326, - 3332: 0x6327, - 3333: 0x6329, - 3334: 0x632C, - 3335: 0x632D, - 3336: 0x632E, - 3337: 0x6330, - 3338: 0x6331, - 3339: 0x6333, - 3340: 0x6334, - 3341: 0x6335, - 3342: 0x6336, - 3343: 0x6337, - 3344: 0x6338, - 3345: 0x633B, - 3346: 0x633C, - 3347: 0x633E, - 3348: 0x633F, - 3349: 0x6340, - 3350: 0x6341, - 3351: 0x6344, - 3352: 0x6347, - 3353: 0x6348, - 3354: 0x634A, - 3355: 0x6351, - 3356: 0x6352, - 3357: 0x6353, - 3358: 0x6354, - 3359: 0x6356, - 3360: 0x6357, - 3361: 0x6358, - 3362: 0x6359, - 3363: 0x635A, - 3364: 0x635B, - 3365: 0x635C, - 3366: 0x635D, - 3367: 0x6360, - 3368: 0x6364, - 3369: 0x6365, - 3370: 0x6366, - 3371: 0x6368, - 3372: 0x636A, - 3373: 0x636B, - 3374: 0x636C, - 3375: 0x636F, - 3376: 0x6370, - 3377: 0x6372, - 3378: 0x6373, - 3379: 0x6374, - 3380: 0x6375, - 3381: 0x6378, - 3382: 0x6379, - 3383: 0x637C, - 3384: 0x637D, - 3385: 0x637E, - 3386: 0x637F, - 3387: 0x6381, - 3388: 0x6383, - 3389: 0x6384, - 3390: 0x6385, - 3391: 0x6386, - 3392: 0x638B, - 3393: 0x638D, - 3394: 0x6391, - 3395: 0x6393, - 3396: 0x6394, - 3397: 0x6395, - 3398: 0x6397, - 3399: 0x6399, - 3400: 0x639A, - 3401: 0x639B, - 3402: 0x639C, - 3403: 0x639D, - 3404: 0x639E, - 3405: 0x639F, - 3406: 0x63A1, - 3407: 0x63A4, - 3408: 0x63A6, - 3409: 0x63AB, - 3410: 0x63AF, - 3411: 0x63B1, - 3412: 0x63B2, - 3413: 0x63B5, - 3414: 0x63B6, - 3415: 0x63B9, - 3416: 0x63BB, - 3417: 0x63BD, - 3418: 0x63BF, - 3419: 0x63C0, - 3420: 0x63C1, - 3421: 0x63C2, - 3422: 0x63C3, - 3423: 0x63C5, - 3424: 0x63C7, - 3425: 0x63C8, - 3426: 0x63CA, - 3427: 0x63CB, - 3428: 0x63CC, - 3429: 0x63D1, - 3430: 0x63D3, - 3431: 0x63D4, - 3432: 0x63D5, - 3433: 0x63D7, - 3434: 0x63D8, - 3435: 0x63D9, - 3436: 0x63DA, - 3437: 0x63DB, - 3438: 0x63DC, - 3439: 0x63DD, - 3440: 0x63DF, - 3441: 0x63E2, - 3442: 0x63E4, - 3443: 0x63E5, - 3444: 0x63E6, - 3445: 0x63E7, - 3446: 0x63E8, - 3447: 0x63EB, - 3448: 0x63EC, - 3449: 0x63EE, - 3450: 0x63EF, - 3451: 0x63F0, - 3452: 0x63F1, - 3453: 0x63F3, - 3454: 0x63F5, - 3455: 0x63F7, - 3456: 0x63F9, - 3457: 0x63FA, - 3458: 0x63FB, - 3459: 0x63FC, - 3460: 0x63FE, - 3461: 0x6403, - 3462: 0x6404, - 3463: 0x6406, - 3464: 0x6407, - 3465: 0x6408, - 3466: 0x6409, - 3467: 0x640A, - 3468: 0x640D, - 3469: 0x640E, - 3470: 0x6411, - 3471: 0x6412, - 3472: 0x6415, - 3473: 0x6416, - 3474: 0x6417, - 3475: 0x6418, - 3476: 0x6419, - 3477: 0x641A, - 3478: 0x641D, - 3479: 0x641F, - 3480: 0x6422, - 3481: 0x6423, - 3482: 0x6424, - 3483: 0x6425, - 3484: 0x6427, - 3485: 0x6428, - 3486: 0x6429, - 3487: 0x642B, - 3488: 0x642E, - 3489: 0x642F, - 3490: 0x6430, - 3491: 0x6431, - 3492: 0x6432, - 3493: 0x6433, - 3494: 0x6435, - 3495: 0x6436, - 3496: 0x6437, - 3497: 0x6438, - 3498: 0x6439, - 3499: 0x643B, - 3500: 0x643C, - 3501: 0x643E, - 3502: 0x6440, - 3503: 0x6442, - 3504: 0x6443, - 3505: 0x6449, - 3506: 0x644B, - 3507: 0x644C, - 3508: 0x644D, - 3509: 0x644E, - 3510: 0x644F, - 3511: 0x6450, - 3512: 0x6451, - 3513: 0x6453, - 3514: 0x6455, - 3515: 0x6456, - 3516: 0x6457, - 3517: 0x6459, - 3518: 0x645A, - 3519: 0x645B, - 3520: 0x645C, - 3521: 0x645D, - 3522: 0x645F, - 3523: 0x6460, - 3524: 0x6461, - 3525: 0x6462, - 3526: 0x6463, - 3527: 0x6464, - 3528: 0x6465, - 3529: 0x6466, - 3530: 0x6468, - 3531: 0x646A, - 3532: 0x646B, - 3533: 0x646C, - 3534: 0x646E, - 3535: 0x646F, - 3536: 0x6470, - 3537: 0x6471, - 3538: 0x6472, - 3539: 0x6473, - 3540: 0x6474, - 3541: 0x6475, - 3542: 0x6476, - 3543: 0x6477, - 3544: 0x647B, - 3545: 0x647C, - 3546: 0x647D, - 3547: 0x647E, - 3548: 0x647F, - 3549: 0x6480, - 3550: 0x6481, - 3551: 0x6483, - 3552: 0x6486, - 3553: 0x6488, - 3554: 0x6489, - 3555: 0x648A, - 3556: 0x648B, - 3557: 0x648C, - 3558: 0x648D, - 3559: 0x648E, - 3560: 0x648F, - 3561: 0x6490, - 3562: 0x6493, - 3563: 0x6494, - 3564: 0x6497, - 3565: 0x6498, - 3566: 0x649A, - 3567: 0x649B, - 3568: 0x649C, - 3569: 0x649D, - 3570: 0x649F, - 3571: 0x64A0, - 3572: 0x64A1, - 3573: 0x64A2, - 3574: 0x64A3, - 3575: 0x64A5, - 3576: 0x64A6, - 3577: 0x64A7, - 3578: 0x64A8, - 3579: 0x64AA, - 3580: 0x64AB, - 3581: 0x64AF, - 3582: 0x64B1, - 3583: 0x64B2, - 3584: 0x64B3, - 3585: 0x64B4, - 3586: 0x64B6, - 3587: 0x64B9, - 3588: 0x64BB, - 3589: 0x64BD, - 3590: 0x64BE, - 3591: 0x64BF, - 3592: 0x64C1, - 3593: 0x64C3, - 3594: 0x64C4, - 3595: 0x64C6, - 3596: 0x64C7, - 3597: 0x64C8, - 3598: 0x64C9, - 3599: 0x64CA, - 3600: 0x64CB, - 3601: 0x64CC, - 3602: 0x64CF, - 3603: 0x64D1, - 3604: 0x64D3, - 3605: 0x64D4, - 3606: 0x64D5, - 3607: 0x64D6, - 3608: 0x64D9, - 3609: 0x64DA, - 3610: 0x64DB, - 3611: 0x64DC, - 3612: 0x64DD, - 3613: 0x64DF, - 3614: 0x64E0, - 3615: 0x64E1, - 3616: 0x64E3, - 3617: 0x64E5, - 3618: 0x64E7, - 3619: 0x64E8, - 3620: 0x64E9, - 3621: 0x64EA, - 3622: 0x64EB, - 3623: 0x64EC, - 3624: 0x64ED, - 3625: 0x64EE, - 3626: 0x64EF, - 3627: 0x64F0, - 3628: 0x64F1, - 3629: 0x64F2, - 3630: 0x64F3, - 3631: 0x64F4, - 3632: 0x64F5, - 3633: 0x64F6, - 3634: 0x64F7, - 3635: 0x64F8, - 3636: 0x64F9, - 3637: 0x64FA, - 3638: 0x64FB, - 3639: 0x64FC, - 3640: 0x64FD, - 3641: 0x64FE, - 3642: 0x64FF, - 3643: 0x6501, - 3644: 0x6502, - 3645: 0x6503, - 3646: 0x6504, - 3647: 0x6505, - 3648: 0x6506, - 3649: 0x6507, - 3650: 0x6508, - 3651: 0x650A, - 3652: 0x650B, - 3653: 0x650C, - 3654: 0x650D, - 3655: 0x650E, - 3656: 0x650F, - 3657: 0x6510, - 3658: 0x6511, - 3659: 0x6513, - 3660: 0x6514, - 3661: 0x6515, - 3662: 0x6516, - 3663: 0x6517, - 3664: 0x6519, - 3665: 0x651A, - 3666: 0x651B, - 3667: 0x651C, - 3668: 0x651D, - 3669: 0x651E, - 3670: 0x651F, - 3671: 0x6520, - 3672: 0x6521, - 3673: 0x6522, - 3674: 0x6523, - 3675: 0x6524, - 3676: 0x6526, - 3677: 0x6527, - 3678: 0x6528, - 3679: 0x6529, - 3680: 0x652A, - 3681: 0x652C, - 3682: 0x652D, - 3683: 0x6530, - 3684: 0x6531, - 3685: 0x6532, - 3686: 0x6533, - 3687: 0x6537, - 3688: 0x653A, - 3689: 0x653C, - 3690: 0x653D, - 3691: 0x6540, - 3692: 0x6541, - 3693: 0x6542, - 3694: 0x6543, - 3695: 0x6544, - 3696: 0x6546, - 3697: 0x6547, - 3698: 0x654A, - 3699: 0x654B, - 3700: 0x654D, - 3701: 0x654E, - 3702: 0x6550, - 3703: 0x6552, - 3704: 0x6553, - 3705: 0x6554, - 3706: 0x6557, - 3707: 0x6558, - 3708: 0x655A, - 3709: 0x655C, - 3710: 0x655F, - 3711: 0x6560, - 3712: 0x6561, - 3713: 0x6564, - 3714: 0x6565, - 3715: 0x6567, - 3716: 0x6568, - 3717: 0x6569, - 3718: 0x656A, - 3719: 0x656D, - 3720: 0x656E, - 3721: 0x656F, - 3722: 0x6571, - 3723: 0x6573, - 3724: 0x6575, - 3725: 0x6576, - 3726: 0x6578, - 3727: 0x6579, - 3728: 0x657A, - 3729: 0x657B, - 3730: 0x657C, - 3731: 0x657D, - 3732: 0x657E, - 3733: 0x657F, - 3734: 0x6580, - 3735: 0x6581, - 3736: 0x6582, - 3737: 0x6583, - 3738: 0x6584, - 3739: 0x6585, - 3740: 0x6586, - 3741: 0x6588, - 3742: 0x6589, - 3743: 0x658A, - 3744: 0x658D, - 3745: 0x658E, - 3746: 0x658F, - 3747: 0x6592, - 3748: 0x6594, - 3749: 0x6595, - 3750: 0x6596, - 3751: 0x6598, - 3752: 0x659A, - 3753: 0x659D, - 3754: 0x659E, - 3755: 0x65A0, - 3756: 0x65A2, - 3757: 0x65A3, - 3758: 0x65A6, - 3759: 0x65A8, - 3760: 0x65AA, - 3761: 0x65AC, - 3762: 0x65AE, - 3763: 0x65B1, - 3764: 0x65B2, - 3765: 0x65B3, - 3766: 0x65B4, - 3767: 0x65B5, - 3768: 0x65B6, - 3769: 0x65B7, - 3770: 0x65B8, - 3771: 0x65BA, - 3772: 0x65BB, - 3773: 0x65BE, - 3774: 0x65BF, - 3775: 0x65C0, - 3776: 0x65C2, - 3777: 0x65C7, - 3778: 0x65C8, - 3779: 0x65C9, - 3780: 0x65CA, - 3781: 0x65CD, - 3782: 0x65D0, - 3783: 0x65D1, - 3784: 0x65D3, - 3785: 0x65D4, - 3786: 0x65D5, - 3787: 0x65D8, - 3788: 0x65D9, - 3789: 0x65DA, - 3790: 0x65DB, - 3791: 0x65DC, - 3792: 0x65DD, - 3793: 0x65DE, - 3794: 0x65DF, - 3795: 0x65E1, - 3796: 0x65E3, - 3797: 0x65E4, - 3798: 0x65EA, - 3799: 0x65EB, - 3800: 0x65F2, - 3801: 0x65F3, - 3802: 0x65F4, - 3803: 0x65F5, - 3804: 0x65F8, - 3805: 0x65F9, - 3806: 0x65FB, - 3807: 0x65FC, - 3808: 0x65FD, - 3809: 0x65FE, - 3810: 0x65FF, - 3811: 0x6601, - 3812: 0x6604, - 3813: 0x6605, - 3814: 0x6607, - 3815: 0x6608, - 3816: 0x6609, - 3817: 0x660B, - 3818: 0x660D, - 3819: 0x6610, - 3820: 0x6611, - 3821: 0x6612, - 3822: 0x6616, - 3823: 0x6617, - 3824: 0x6618, - 3825: 0x661A, - 3826: 0x661B, - 3827: 0x661C, - 3828: 0x661E, - 3829: 0x6621, - 3830: 0x6622, - 3831: 0x6623, - 3832: 0x6624, - 3833: 0x6626, - 3834: 0x6629, - 3835: 0x662A, - 3836: 0x662B, - 3837: 0x662C, - 3838: 0x662E, - 3839: 0x6630, - 3840: 0x6632, - 3841: 0x6633, - 3842: 0x6637, - 3843: 0x6638, - 3844: 0x6639, - 3845: 0x663A, - 3846: 0x663B, - 3847: 0x663D, - 3848: 0x663F, - 3849: 0x6640, - 3850: 0x6642, - 3851: 0x6644, - 3852: 0x6645, - 3853: 0x6646, - 3854: 0x6647, - 3855: 0x6648, - 3856: 0x6649, - 3857: 0x664A, - 3858: 0x664D, - 3859: 0x664E, - 3860: 0x6650, - 3861: 0x6651, - 3862: 0x6658, - 3863: 0x6659, - 3864: 0x665B, - 3865: 0x665C, - 3866: 0x665D, - 3867: 0x665E, - 3868: 0x6660, - 3869: 0x6662, - 3870: 0x6663, - 3871: 0x6665, - 3872: 0x6667, - 3873: 0x6669, - 3874: 0x666A, - 3875: 0x666B, - 3876: 0x666C, - 3877: 0x666D, - 3878: 0x6671, - 3879: 0x6672, - 3880: 0x6673, - 3881: 0x6675, - 3882: 0x6678, - 3883: 0x6679, - 3884: 0x667B, - 3885: 0x667C, - 3886: 0x667D, - 3887: 0x667F, - 3888: 0x6680, - 3889: 0x6681, - 3890: 0x6683, - 3891: 0x6685, - 3892: 0x6686, - 3893: 0x6688, - 3894: 0x6689, - 3895: 0x668A, - 3896: 0x668B, - 3897: 0x668D, - 3898: 0x668E, - 3899: 0x668F, - 3900: 0x6690, - 3901: 0x6692, - 3902: 0x6693, - 3903: 0x6694, - 3904: 0x6695, - 3905: 0x6698, - 3906: 0x6699, - 3907: 0x669A, - 3908: 0x669B, - 3909: 0x669C, - 3910: 0x669E, - 3911: 0x669F, - 3912: 0x66A0, - 3913: 0x66A1, - 3914: 0x66A2, - 3915: 0x66A3, - 3916: 0x66A4, - 3917: 0x66A5, - 3918: 0x66A6, - 3919: 0x66A9, - 3920: 0x66AA, - 3921: 0x66AB, - 3922: 0x66AC, - 3923: 0x66AD, - 3924: 0x66AF, - 3925: 0x66B0, - 3926: 0x66B1, - 3927: 0x66B2, - 3928: 0x66B3, - 3929: 0x66B5, - 3930: 0x66B6, - 3931: 0x66B7, - 3932: 0x66B8, - 3933: 0x66BA, - 3934: 0x66BB, - 3935: 0x66BC, - 3936: 0x66BD, - 3937: 0x66BF, - 3938: 0x66C0, - 3939: 0x66C1, - 3940: 0x66C2, - 3941: 0x66C3, - 3942: 0x66C4, - 3943: 0x66C5, - 3944: 0x66C6, - 3945: 0x66C7, - 3946: 0x66C8, - 3947: 0x66C9, - 3948: 0x66CA, - 3949: 0x66CB, - 3950: 0x66CC, - 3951: 0x66CD, - 3952: 0x66CE, - 3953: 0x66CF, - 3954: 0x66D0, - 3955: 0x66D1, - 3956: 0x66D2, - 3957: 0x66D3, - 3958: 0x66D4, - 3959: 0x66D5, - 3960: 0x66D6, - 3961: 0x66D7, - 3962: 0x66D8, - 3963: 0x66DA, - 3964: 0x66DE, - 3965: 0x66DF, - 3966: 0x66E0, - 3967: 0x66E1, - 3968: 0x66E2, - 3969: 0x66E3, - 3970: 0x66E4, - 3971: 0x66E5, - 3972: 0x66E7, - 3973: 0x66E8, - 3974: 0x66EA, - 3975: 0x66EB, - 3976: 0x66EC, - 3977: 0x66ED, - 3978: 0x66EE, - 3979: 0x66EF, - 3980: 0x66F1, - 3981: 0x66F5, - 3982: 0x66F6, - 3983: 0x66F8, - 3984: 0x66FA, - 3985: 0x66FB, - 3986: 0x66FD, - 3987: 0x6701, - 3988: 0x6702, - 3989: 0x6703, - 3990: 0x6704, - 3991: 0x6705, - 3992: 0x6706, - 3993: 0x6707, - 3994: 0x670C, - 3995: 0x670E, - 3996: 0x670F, - 3997: 0x6711, - 3998: 0x6712, - 3999: 0x6713, - 4000: 0x6716, - 4001: 0x6718, - 4002: 0x6719, - 4003: 0x671A, - 4004: 0x671C, - 4005: 0x671E, - 4006: 0x6720, - 4007: 0x6721, - 4008: 0x6722, - 4009: 0x6723, - 4010: 0x6724, - 4011: 0x6725, - 4012: 0x6727, - 4013: 0x6729, - 4014: 0x672E, - 4015: 0x6730, - 4016: 0x6732, - 4017: 0x6733, - 4018: 0x6736, - 4019: 0x6737, - 4020: 0x6738, - 4021: 0x6739, - 4022: 0x673B, - 4023: 0x673C, - 4024: 0x673E, - 4025: 0x673F, - 4026: 0x6741, - 4027: 0x6744, - 4028: 0x6745, - 4029: 0x6747, - 4030: 0x674A, - 4031: 0x674B, - 4032: 0x674D, - 4033: 0x6752, - 4034: 0x6754, - 4035: 0x6755, - 4036: 0x6757, - 4037: 0x6758, - 4038: 0x6759, - 4039: 0x675A, - 4040: 0x675B, - 4041: 0x675D, - 4042: 0x6762, - 4043: 0x6763, - 4044: 0x6764, - 4045: 0x6766, - 4046: 0x6767, - 4047: 0x676B, - 4048: 0x676C, - 4049: 0x676E, - 4050: 0x6771, - 4051: 0x6774, - 4052: 0x6776, - 4053: 0x6778, - 4054: 0x6779, - 4055: 0x677A, - 4056: 0x677B, - 4057: 0x677D, - 4058: 0x6780, - 4059: 0x6782, - 4060: 0x6783, - 4061: 0x6785, - 4062: 0x6786, - 4063: 0x6788, - 4064: 0x678A, - 4065: 0x678C, - 4066: 0x678D, - 4067: 0x678E, - 4068: 0x678F, - 4069: 0x6791, - 4070: 0x6792, - 4071: 0x6793, - 4072: 0x6794, - 4073: 0x6796, - 4074: 0x6799, - 4075: 0x679B, - 4076: 0x679F, - 4077: 0x67A0, - 4078: 0x67A1, - 4079: 0x67A4, - 4080: 0x67A6, - 4081: 0x67A9, - 4082: 0x67AC, - 4083: 0x67AE, - 4084: 0x67B1, - 4085: 0x67B2, - 4086: 0x67B4, - 4087: 0x67B9, - 4088: 0x67BA, - 4089: 0x67BB, - 4090: 0x67BC, - 4091: 0x67BD, - 4092: 0x67BE, - 4093: 0x67BF, - 4094: 0x67C0, - 4095: 0x67C2, - 4096: 0x67C5, - 4097: 0x67C6, - 4098: 0x67C7, - 4099: 0x67C8, - 4100: 0x67C9, - 4101: 0x67CA, - 4102: 0x67CB, - 4103: 0x67CC, - 4104: 0x67CD, - 4105: 0x67CE, - 4106: 0x67D5, - 4107: 0x67D6, - 4108: 0x67D7, - 4109: 0x67DB, - 4110: 0x67DF, - 4111: 0x67E1, - 4112: 0x67E3, - 4113: 0x67E4, - 4114: 0x67E6, - 4115: 0x67E7, - 4116: 0x67E8, - 4117: 0x67EA, - 4118: 0x67EB, - 4119: 0x67ED, - 4120: 0x67EE, - 4121: 0x67F2, - 4122: 0x67F5, - 4123: 0x67F6, - 4124: 0x67F7, - 4125: 0x67F8, - 4126: 0x67F9, - 4127: 0x67FA, - 4128: 0x67FB, - 4129: 0x67FC, - 4130: 0x67FE, - 4131: 0x6801, - 4132: 0x6802, - 4133: 0x6803, - 4134: 0x6804, - 4135: 0x6806, - 4136: 0x680D, - 4137: 0x6810, - 4138: 0x6812, - 4139: 0x6814, - 4140: 0x6815, - 4141: 0x6818, - 4142: 0x6819, - 4143: 0x681A, - 4144: 0x681B, - 4145: 0x681C, - 4146: 0x681E, - 4147: 0x681F, - 4148: 0x6820, - 4149: 0x6822, - 4150: 0x6823, - 4151: 0x6824, - 4152: 0x6825, - 4153: 0x6826, - 4154: 0x6827, - 4155: 0x6828, - 4156: 0x682B, - 4157: 0x682C, - 4158: 0x682D, - 4159: 0x682E, - 4160: 0x682F, - 4161: 0x6830, - 4162: 0x6831, - 4163: 0x6834, - 4164: 0x6835, - 4165: 0x6836, - 4166: 0x683A, - 4167: 0x683B, - 4168: 0x683F, - 4169: 0x6847, - 4170: 0x684B, - 4171: 0x684D, - 4172: 0x684F, - 4173: 0x6852, - 4174: 0x6856, - 4175: 0x6857, - 4176: 0x6858, - 4177: 0x6859, - 4178: 0x685A, - 4179: 0x685B, - 4180: 0x685C, - 4181: 0x685D, - 4182: 0x685E, - 4183: 0x685F, - 4184: 0x686A, - 4185: 0x686C, - 4186: 0x686D, - 4187: 0x686E, - 4188: 0x686F, - 4189: 0x6870, - 4190: 0x6871, - 4191: 0x6872, - 4192: 0x6873, - 4193: 0x6875, - 4194: 0x6878, - 4195: 0x6879, - 4196: 0x687A, - 4197: 0x687B, - 4198: 0x687C, - 4199: 0x687D, - 4200: 0x687E, - 4201: 0x687F, - 4202: 0x6880, - 4203: 0x6882, - 4204: 0x6884, - 4205: 0x6887, - 4206: 0x6888, - 4207: 0x6889, - 4208: 0x688A, - 4209: 0x688B, - 4210: 0x688C, - 4211: 0x688D, - 4212: 0x688E, - 4213: 0x6890, - 4214: 0x6891, - 4215: 0x6892, - 4216: 0x6894, - 4217: 0x6895, - 4218: 0x6896, - 4219: 0x6898, - 4220: 0x6899, - 4221: 0x689A, - 4222: 0x689B, - 4223: 0x689C, - 4224: 0x689D, - 4225: 0x689E, - 4226: 0x689F, - 4227: 0x68A0, - 4228: 0x68A1, - 4229: 0x68A3, - 4230: 0x68A4, - 4231: 0x68A5, - 4232: 0x68A9, - 4233: 0x68AA, - 4234: 0x68AB, - 4235: 0x68AC, - 4236: 0x68AE, - 4237: 0x68B1, - 4238: 0x68B2, - 4239: 0x68B4, - 4240: 0x68B6, - 4241: 0x68B7, - 4242: 0x68B8, - 4243: 0x68B9, - 4244: 0x68BA, - 4245: 0x68BB, - 4246: 0x68BC, - 4247: 0x68BD, - 4248: 0x68BE, - 4249: 0x68BF, - 4250: 0x68C1, - 4251: 0x68C3, - 4252: 0x68C4, - 4253: 0x68C5, - 4254: 0x68C6, - 4255: 0x68C7, - 4256: 0x68C8, - 4257: 0x68CA, - 4258: 0x68CC, - 4259: 0x68CE, - 4260: 0x68CF, - 4261: 0x68D0, - 4262: 0x68D1, - 4263: 0x68D3, - 4264: 0x68D4, - 4265: 0x68D6, - 4266: 0x68D7, - 4267: 0x68D9, - 4268: 0x68DB, - 4269: 0x68DC, - 4270: 0x68DD, - 4271: 0x68DE, - 4272: 0x68DF, - 4273: 0x68E1, - 4274: 0x68E2, - 4275: 0x68E4, - 4276: 0x68E5, - 4277: 0x68E6, - 4278: 0x68E7, - 4279: 0x68E8, - 4280: 0x68E9, - 4281: 0x68EA, - 4282: 0x68EB, - 4283: 0x68EC, - 4284: 0x68ED, - 4285: 0x68EF, - 4286: 0x68F2, - 4287: 0x68F3, - 4288: 0x68F4, - 4289: 0x68F6, - 4290: 0x68F7, - 4291: 0x68F8, - 4292: 0x68FB, - 4293: 0x68FD, - 4294: 0x68FE, - 4295: 0x68FF, - 4296: 0x6900, - 4297: 0x6902, - 4298: 0x6903, - 4299: 0x6904, - 4300: 0x6906, - 4301: 0x6907, - 4302: 0x6908, - 4303: 0x6909, - 4304: 0x690A, - 4305: 0x690C, - 4306: 0x690F, - 4307: 0x6911, - 4308: 0x6913, - 4309: 0x6914, - 4310: 0x6915, - 4311: 0x6916, - 4312: 0x6917, - 4313: 0x6918, - 4314: 0x6919, - 4315: 0x691A, - 4316: 0x691B, - 4317: 0x691C, - 4318: 0x691D, - 4319: 0x691E, - 4320: 0x6921, - 4321: 0x6922, - 4322: 0x6923, - 4323: 0x6925, - 4324: 0x6926, - 4325: 0x6927, - 4326: 0x6928, - 4327: 0x6929, - 4328: 0x692A, - 4329: 0x692B, - 4330: 0x692C, - 4331: 0x692E, - 4332: 0x692F, - 4333: 0x6931, - 4334: 0x6932, - 4335: 0x6933, - 4336: 0x6935, - 4337: 0x6936, - 4338: 0x6937, - 4339: 0x6938, - 4340: 0x693A, - 4341: 0x693B, - 4342: 0x693C, - 4343: 0x693E, - 4344: 0x6940, - 4345: 0x6941, - 4346: 0x6943, - 4347: 0x6944, - 4348: 0x6945, - 4349: 0x6946, - 4350: 0x6947, - 4351: 0x6948, - 4352: 0x6949, - 4353: 0x694A, - 4354: 0x694B, - 4355: 0x694C, - 4356: 0x694D, - 4357: 0x694E, - 4358: 0x694F, - 4359: 0x6950, - 4360: 0x6951, - 4361: 0x6952, - 4362: 0x6953, - 4363: 0x6955, - 4364: 0x6956, - 4365: 0x6958, - 4366: 0x6959, - 4367: 0x695B, - 4368: 0x695C, - 4369: 0x695F, - 4370: 0x6961, - 4371: 0x6962, - 4372: 0x6964, - 4373: 0x6965, - 4374: 0x6967, - 4375: 0x6968, - 4376: 0x6969, - 4377: 0x696A, - 4378: 0x696C, - 4379: 0x696D, - 4380: 0x696F, - 4381: 0x6970, - 4382: 0x6972, - 4383: 0x6973, - 4384: 0x6974, - 4385: 0x6975, - 4386: 0x6976, - 4387: 0x697A, - 4388: 0x697B, - 4389: 0x697D, - 4390: 0x697E, - 4391: 0x697F, - 4392: 0x6981, - 4393: 0x6983, - 4394: 0x6985, - 4395: 0x698A, - 4396: 0x698B, - 4397: 0x698C, - 4398: 0x698E, - 4399: 0x698F, - 4400: 0x6990, - 4401: 0x6991, - 4402: 0x6992, - 4403: 0x6993, - 4404: 0x6996, - 4405: 0x6997, - 4406: 0x6999, - 4407: 0x699A, - 4408: 0x699D, - 4409: 0x699E, - 4410: 0x699F, - 4411: 0x69A0, - 4412: 0x69A1, - 4413: 0x69A2, - 4414: 0x69A3, - 4415: 0x69A4, - 4416: 0x69A5, - 4417: 0x69A6, - 4418: 0x69A9, - 4419: 0x69AA, - 4420: 0x69AC, - 4421: 0x69AE, - 4422: 0x69AF, - 4423: 0x69B0, - 4424: 0x69B2, - 4425: 0x69B3, - 4426: 0x69B5, - 4427: 0x69B6, - 4428: 0x69B8, - 4429: 0x69B9, - 4430: 0x69BA, - 4431: 0x69BC, - 4432: 0x69BD, - 4433: 0x69BE, - 4434: 0x69BF, - 4435: 0x69C0, - 4436: 0x69C2, - 4437: 0x69C3, - 4438: 0x69C4, - 4439: 0x69C5, - 4440: 0x69C6, - 4441: 0x69C7, - 4442: 0x69C8, - 4443: 0x69C9, - 4444: 0x69CB, - 4445: 0x69CD, - 4446: 0x69CF, - 4447: 0x69D1, - 4448: 0x69D2, - 4449: 0x69D3, - 4450: 0x69D5, - 4451: 0x69D6, - 4452: 0x69D7, - 4453: 0x69D8, - 4454: 0x69D9, - 4455: 0x69DA, - 4456: 0x69DC, - 4457: 0x69DD, - 4458: 0x69DE, - 4459: 0x69E1, - 4460: 0x69E2, - 4461: 0x69E3, - 4462: 0x69E4, - 4463: 0x69E5, - 4464: 0x69E6, - 4465: 0x69E7, - 4466: 0x69E8, - 4467: 0x69E9, - 4468: 0x69EA, - 4469: 0x69EB, - 4470: 0x69EC, - 4471: 0x69EE, - 4472: 0x69EF, - 4473: 0x69F0, - 4474: 0x69F1, - 4475: 0x69F3, - 4476: 0x69F4, - 4477: 0x69F5, - 4478: 0x69F6, - 4479: 0x69F7, - 4480: 0x69F8, - 4481: 0x69F9, - 4482: 0x69FA, - 4483: 0x69FB, - 4484: 0x69FC, - 4485: 0x69FE, - 4486: 0x6A00, - 4487: 0x6A01, - 4488: 0x6A02, - 4489: 0x6A03, - 4490: 0x6A04, - 4491: 0x6A05, - 4492: 0x6A06, - 4493: 0x6A07, - 4494: 0x6A08, - 4495: 0x6A09, - 4496: 0x6A0B, - 4497: 0x6A0C, - 4498: 0x6A0D, - 4499: 0x6A0E, - 4500: 0x6A0F, - 4501: 0x6A10, - 4502: 0x6A11, - 4503: 0x6A12, - 4504: 0x6A13, - 4505: 0x6A14, - 4506: 0x6A15, - 4507: 0x6A16, - 4508: 0x6A19, - 4509: 0x6A1A, - 4510: 0x6A1B, - 4511: 0x6A1C, - 4512: 0x6A1D, - 4513: 0x6A1E, - 4514: 0x6A20, - 4515: 0x6A22, - 4516: 0x6A23, - 4517: 0x6A24, - 4518: 0x6A25, - 4519: 0x6A26, - 4520: 0x6A27, - 4521: 0x6A29, - 4522: 0x6A2B, - 4523: 0x6A2C, - 4524: 0x6A2D, - 4525: 0x6A2E, - 4526: 0x6A30, - 4527: 0x6A32, - 4528: 0x6A33, - 4529: 0x6A34, - 4530: 0x6A36, - 4531: 0x6A37, - 4532: 0x6A38, - 4533: 0x6A39, - 4534: 0x6A3A, - 4535: 0x6A3B, - 4536: 0x6A3C, - 4537: 0x6A3F, - 4538: 0x6A40, - 4539: 0x6A41, - 4540: 0x6A42, - 4541: 0x6A43, - 4542: 0x6A45, - 4543: 0x6A46, - 4544: 0x6A48, - 4545: 0x6A49, - 4546: 0x6A4A, - 4547: 0x6A4B, - 4548: 0x6A4C, - 4549: 0x6A4D, - 4550: 0x6A4E, - 4551: 0x6A4F, - 4552: 0x6A51, - 4553: 0x6A52, - 4554: 0x6A53, - 4555: 0x6A54, - 4556: 0x6A55, - 4557: 0x6A56, - 4558: 0x6A57, - 4559: 0x6A5A, - 4560: 0x6A5C, - 4561: 0x6A5D, - 4562: 0x6A5E, - 4563: 0x6A5F, - 4564: 0x6A60, - 4565: 0x6A62, - 4566: 0x6A63, - 4567: 0x6A64, - 4568: 0x6A66, - 4569: 0x6A67, - 4570: 0x6A68, - 4571: 0x6A69, - 4572: 0x6A6A, - 4573: 0x6A6B, - 4574: 0x6A6C, - 4575: 0x6A6D, - 4576: 0x6A6E, - 4577: 0x6A6F, - 4578: 0x6A70, - 4579: 0x6A72, - 4580: 0x6A73, - 4581: 0x6A74, - 4582: 0x6A75, - 4583: 0x6A76, - 4584: 0x6A77, - 4585: 0x6A78, - 4586: 0x6A7A, - 4587: 0x6A7B, - 4588: 0x6A7D, - 4589: 0x6A7E, - 4590: 0x6A7F, - 4591: 0x6A81, - 4592: 0x6A82, - 4593: 0x6A83, - 4594: 0x6A85, - 4595: 0x6A86, - 4596: 0x6A87, - 4597: 0x6A88, - 4598: 0x6A89, - 4599: 0x6A8A, - 4600: 0x6A8B, - 4601: 0x6A8C, - 4602: 0x6A8D, - 4603: 0x6A8F, - 4604: 0x6A92, - 4605: 0x6A93, - 4606: 0x6A94, - 4607: 0x6A95, - 4608: 0x6A96, - 4609: 0x6A98, - 4610: 0x6A99, - 4611: 0x6A9A, - 4612: 0x6A9B, - 4613: 0x6A9C, - 4614: 0x6A9D, - 4615: 0x6A9E, - 4616: 0x6A9F, - 4617: 0x6AA1, - 4618: 0x6AA2, - 4619: 0x6AA3, - 4620: 0x6AA4, - 4621: 0x6AA5, - 4622: 0x6AA6, - 4623: 0x6AA7, - 4624: 0x6AA8, - 4625: 0x6AAA, - 4626: 0x6AAD, - 4627: 0x6AAE, - 4628: 0x6AAF, - 4629: 0x6AB0, - 4630: 0x6AB1, - 4631: 0x6AB2, - 4632: 0x6AB3, - 4633: 0x6AB4, - 4634: 0x6AB5, - 4635: 0x6AB6, - 4636: 0x6AB7, - 4637: 0x6AB8, - 4638: 0x6AB9, - 4639: 0x6ABA, - 4640: 0x6ABB, - 4641: 0x6ABC, - 4642: 0x6ABD, - 4643: 0x6ABE, - 4644: 0x6ABF, - 4645: 0x6AC0, - 4646: 0x6AC1, - 4647: 0x6AC2, - 4648: 0x6AC3, - 4649: 0x6AC4, - 4650: 0x6AC5, - 4651: 0x6AC6, - 4652: 0x6AC7, - 4653: 0x6AC8, - 4654: 0x6AC9, - 4655: 0x6ACA, - 4656: 0x6ACB, - 4657: 0x6ACC, - 4658: 0x6ACD, - 4659: 0x6ACE, - 4660: 0x6ACF, - 4661: 0x6AD0, - 4662: 0x6AD1, - 4663: 0x6AD2, - 4664: 0x6AD3, - 4665: 0x6AD4, - 4666: 0x6AD5, - 4667: 0x6AD6, - 4668: 0x6AD7, - 4669: 0x6AD8, - 4670: 0x6AD9, - 4671: 0x6ADA, - 4672: 0x6ADB, - 4673: 0x6ADC, - 4674: 0x6ADD, - 4675: 0x6ADE, - 4676: 0x6ADF, - 4677: 0x6AE0, - 4678: 0x6AE1, - 4679: 0x6AE2, - 4680: 0x6AE3, - 4681: 0x6AE4, - 4682: 0x6AE5, - 4683: 0x6AE6, - 4684: 0x6AE7, - 4685: 0x6AE8, - 4686: 0x6AE9, - 4687: 0x6AEA, - 4688: 0x6AEB, - 4689: 0x6AEC, - 4690: 0x6AED, - 4691: 0x6AEE, - 4692: 0x6AEF, - 4693: 0x6AF0, - 4694: 0x6AF1, - 4695: 0x6AF2, - 4696: 0x6AF3, - 4697: 0x6AF4, - 4698: 0x6AF5, - 4699: 0x6AF6, - 4700: 0x6AF7, - 4701: 0x6AF8, - 4702: 0x6AF9, - 4703: 0x6AFA, - 4704: 0x6AFB, - 4705: 0x6AFC, - 4706: 0x6AFD, - 4707: 0x6AFE, - 4708: 0x6AFF, - 4709: 0x6B00, - 4710: 0x6B01, - 4711: 0x6B02, - 4712: 0x6B03, - 4713: 0x6B04, - 4714: 0x6B05, - 4715: 0x6B06, - 4716: 0x6B07, - 4717: 0x6B08, - 4718: 0x6B09, - 4719: 0x6B0A, - 4720: 0x6B0B, - 4721: 0x6B0C, - 4722: 0x6B0D, - 4723: 0x6B0E, - 4724: 0x6B0F, - 4725: 0x6B10, - 4726: 0x6B11, - 4727: 0x6B12, - 4728: 0x6B13, - 4729: 0x6B14, - 4730: 0x6B15, - 4731: 0x6B16, - 4732: 0x6B17, - 4733: 0x6B18, - 4734: 0x6B19, - 4735: 0x6B1A, - 4736: 0x6B1B, - 4737: 0x6B1C, - 4738: 0x6B1D, - 4739: 0x6B1E, - 4740: 0x6B1F, - 4741: 0x6B25, - 4742: 0x6B26, - 4743: 0x6B28, - 4744: 0x6B29, - 4745: 0x6B2A, - 4746: 0x6B2B, - 4747: 0x6B2C, - 4748: 0x6B2D, - 4749: 0x6B2E, - 4750: 0x6B2F, - 4751: 0x6B30, - 4752: 0x6B31, - 4753: 0x6B33, - 4754: 0x6B34, - 4755: 0x6B35, - 4756: 0x6B36, - 4757: 0x6B38, - 4758: 0x6B3B, - 4759: 0x6B3C, - 4760: 0x6B3D, - 4761: 0x6B3F, - 4762: 0x6B40, - 4763: 0x6B41, - 4764: 0x6B42, - 4765: 0x6B44, - 4766: 0x6B45, - 4767: 0x6B48, - 4768: 0x6B4A, - 4769: 0x6B4B, - 4770: 0x6B4D, - 4771: 0x6B4E, - 4772: 0x6B4F, - 4773: 0x6B50, - 4774: 0x6B51, - 4775: 0x6B52, - 4776: 0x6B53, - 4777: 0x6B54, - 4778: 0x6B55, - 4779: 0x6B56, - 4780: 0x6B57, - 4781: 0x6B58, - 4782: 0x6B5A, - 4783: 0x6B5B, - 4784: 0x6B5C, - 4785: 0x6B5D, - 4786: 0x6B5E, - 4787: 0x6B5F, - 4788: 0x6B60, - 4789: 0x6B61, - 4790: 0x6B68, - 4791: 0x6B69, - 4792: 0x6B6B, - 4793: 0x6B6C, - 4794: 0x6B6D, - 4795: 0x6B6E, - 4796: 0x6B6F, - 4797: 0x6B70, - 4798: 0x6B71, - 4799: 0x6B72, - 4800: 0x6B73, - 4801: 0x6B74, - 4802: 0x6B75, - 4803: 0x6B76, - 4804: 0x6B77, - 4805: 0x6B78, - 4806: 0x6B7A, - 4807: 0x6B7D, - 4808: 0x6B7E, - 4809: 0x6B7F, - 4810: 0x6B80, - 4811: 0x6B85, - 4812: 0x6B88, - 4813: 0x6B8C, - 4814: 0x6B8E, - 4815: 0x6B8F, - 4816: 0x6B90, - 4817: 0x6B91, - 4818: 0x6B94, - 4819: 0x6B95, - 4820: 0x6B97, - 4821: 0x6B98, - 4822: 0x6B99, - 4823: 0x6B9C, - 4824: 0x6B9D, - 4825: 0x6B9E, - 4826: 0x6B9F, - 4827: 0x6BA0, - 4828: 0x6BA2, - 4829: 0x6BA3, - 4830: 0x6BA4, - 4831: 0x6BA5, - 4832: 0x6BA6, - 4833: 0x6BA7, - 4834: 0x6BA8, - 4835: 0x6BA9, - 4836: 0x6BAB, - 4837: 0x6BAC, - 4838: 0x6BAD, - 4839: 0x6BAE, - 4840: 0x6BAF, - 4841: 0x6BB0, - 4842: 0x6BB1, - 4843: 0x6BB2, - 4844: 0x6BB6, - 4845: 0x6BB8, - 4846: 0x6BB9, - 4847: 0x6BBA, - 4848: 0x6BBB, - 4849: 0x6BBC, - 4850: 0x6BBD, - 4851: 0x6BBE, - 4852: 0x6BC0, - 4853: 0x6BC3, - 4854: 0x6BC4, - 4855: 0x6BC6, - 4856: 0x6BC7, - 4857: 0x6BC8, - 4858: 0x6BC9, - 4859: 0x6BCA, - 4860: 0x6BCC, - 4861: 0x6BCE, - 4862: 0x6BD0, - 4863: 0x6BD1, - 4864: 0x6BD8, - 4865: 0x6BDA, - 4866: 0x6BDC, - 4867: 0x6BDD, - 4868: 0x6BDE, - 4869: 0x6BDF, - 4870: 0x6BE0, - 4871: 0x6BE2, - 4872: 0x6BE3, - 4873: 0x6BE4, - 4874: 0x6BE5, - 4875: 0x6BE6, - 4876: 0x6BE7, - 4877: 0x6BE8, - 4878: 0x6BE9, - 4879: 0x6BEC, - 4880: 0x6BED, - 4881: 0x6BEE, - 4882: 0x6BF0, - 4883: 0x6BF1, - 4884: 0x6BF2, - 4885: 0x6BF4, - 4886: 0x6BF6, - 4887: 0x6BF7, - 4888: 0x6BF8, - 4889: 0x6BFA, - 4890: 0x6BFB, - 4891: 0x6BFC, - 4892: 0x6BFE, - 4893: 0x6BFF, - 4894: 0x6C00, - 4895: 0x6C01, - 4896: 0x6C02, - 4897: 0x6C03, - 4898: 0x6C04, - 4899: 0x6C08, - 4900: 0x6C09, - 4901: 0x6C0A, - 4902: 0x6C0B, - 4903: 0x6C0C, - 4904: 0x6C0E, - 4905: 0x6C12, - 4906: 0x6C17, - 4907: 0x6C1C, - 4908: 0x6C1D, - 4909: 0x6C1E, - 4910: 0x6C20, - 4911: 0x6C23, - 4912: 0x6C25, - 4913: 0x6C2B, - 4914: 0x6C2C, - 4915: 0x6C2D, - 4916: 0x6C31, - 4917: 0x6C33, - 4918: 0x6C36, - 4919: 0x6C37, - 4920: 0x6C39, - 4921: 0x6C3A, - 4922: 0x6C3B, - 4923: 0x6C3C, - 4924: 0x6C3E, - 4925: 0x6C3F, - 4926: 0x6C43, - 4927: 0x6C44, - 4928: 0x6C45, - 4929: 0x6C48, - 4930: 0x6C4B, - 4931: 0x6C4C, - 4932: 0x6C4D, - 4933: 0x6C4E, - 4934: 0x6C4F, - 4935: 0x6C51, - 4936: 0x6C52, - 4937: 0x6C53, - 4938: 0x6C56, - 4939: 0x6C58, - 4940: 0x6C59, - 4941: 0x6C5A, - 4942: 0x6C62, - 4943: 0x6C63, - 4944: 0x6C65, - 4945: 0x6C66, - 4946: 0x6C67, - 4947: 0x6C6B, - 4948: 0x6C6C, - 4949: 0x6C6D, - 4950: 0x6C6E, - 4951: 0x6C6F, - 4952: 0x6C71, - 4953: 0x6C73, - 4954: 0x6C75, - 4955: 0x6C77, - 4956: 0x6C78, - 4957: 0x6C7A, - 4958: 0x6C7B, - 4959: 0x6C7C, - 4960: 0x6C7F, - 4961: 0x6C80, - 4962: 0x6C84, - 4963: 0x6C87, - 4964: 0x6C8A, - 4965: 0x6C8B, - 4966: 0x6C8D, - 4967: 0x6C8E, - 4968: 0x6C91, - 4969: 0x6C92, - 4970: 0x6C95, - 4971: 0x6C96, - 4972: 0x6C97, - 4973: 0x6C98, - 4974: 0x6C9A, - 4975: 0x6C9C, - 4976: 0x6C9D, - 4977: 0x6C9E, - 4978: 0x6CA0, - 4979: 0x6CA2, - 4980: 0x6CA8, - 4981: 0x6CAC, - 4982: 0x6CAF, - 4983: 0x6CB0, - 4984: 0x6CB4, - 4985: 0x6CB5, - 4986: 0x6CB6, - 4987: 0x6CB7, - 4988: 0x6CBA, - 4989: 0x6CC0, - 4990: 0x6CC1, - 4991: 0x6CC2, - 4992: 0x6CC3, - 4993: 0x6CC6, - 4994: 0x6CC7, - 4995: 0x6CC8, - 4996: 0x6CCB, - 4997: 0x6CCD, - 4998: 0x6CCE, - 4999: 0x6CCF, - 5000: 0x6CD1, - 5001: 0x6CD2, - 5002: 0x6CD8, - 5003: 0x6CD9, - 5004: 0x6CDA, - 5005: 0x6CDC, - 5006: 0x6CDD, - 5007: 0x6CDF, - 5008: 0x6CE4, - 5009: 0x6CE6, - 5010: 0x6CE7, - 5011: 0x6CE9, - 5012: 0x6CEC, - 5013: 0x6CED, - 5014: 0x6CF2, - 5015: 0x6CF4, - 5016: 0x6CF9, - 5017: 0x6CFF, - 5018: 0x6D00, - 5019: 0x6D02, - 5020: 0x6D03, - 5021: 0x6D05, - 5022: 0x6D06, - 5023: 0x6D08, - 5024: 0x6D09, - 5025: 0x6D0A, - 5026: 0x6D0D, - 5027: 0x6D0F, - 5028: 0x6D10, - 5029: 0x6D11, - 5030: 0x6D13, - 5031: 0x6D14, - 5032: 0x6D15, - 5033: 0x6D16, - 5034: 0x6D18, - 5035: 0x6D1C, - 5036: 0x6D1D, - 5037: 0x6D1F, - 5038: 0x6D20, - 5039: 0x6D21, - 5040: 0x6D22, - 5041: 0x6D23, - 5042: 0x6D24, - 5043: 0x6D26, - 5044: 0x6D28, - 5045: 0x6D29, - 5046: 0x6D2C, - 5047: 0x6D2D, - 5048: 0x6D2F, - 5049: 0x6D30, - 5050: 0x6D34, - 5051: 0x6D36, - 5052: 0x6D37, - 5053: 0x6D38, - 5054: 0x6D3A, - 5055: 0x6D3F, - 5056: 0x6D40, - 5057: 0x6D42, - 5058: 0x6D44, - 5059: 0x6D49, - 5060: 0x6D4C, - 5061: 0x6D50, - 5062: 0x6D55, - 5063: 0x6D56, - 5064: 0x6D57, - 5065: 0x6D58, - 5066: 0x6D5B, - 5067: 0x6D5D, - 5068: 0x6D5F, - 5069: 0x6D61, - 5070: 0x6D62, - 5071: 0x6D64, - 5072: 0x6D65, - 5073: 0x6D67, - 5074: 0x6D68, - 5075: 0x6D6B, - 5076: 0x6D6C, - 5077: 0x6D6D, - 5078: 0x6D70, - 5079: 0x6D71, - 5080: 0x6D72, - 5081: 0x6D73, - 5082: 0x6D75, - 5083: 0x6D76, - 5084: 0x6D79, - 5085: 0x6D7A, - 5086: 0x6D7B, - 5087: 0x6D7D, - 5088: 0x6D7E, - 5089: 0x6D7F, - 5090: 0x6D80, - 5091: 0x6D81, - 5092: 0x6D83, - 5093: 0x6D84, - 5094: 0x6D86, - 5095: 0x6D87, - 5096: 0x6D8A, - 5097: 0x6D8B, - 5098: 0x6D8D, - 5099: 0x6D8F, - 5100: 0x6D90, - 5101: 0x6D92, - 5102: 0x6D96, - 5103: 0x6D97, - 5104: 0x6D98, - 5105: 0x6D99, - 5106: 0x6D9A, - 5107: 0x6D9C, - 5108: 0x6DA2, - 5109: 0x6DA5, - 5110: 0x6DAC, - 5111: 0x6DAD, - 5112: 0x6DB0, - 5113: 0x6DB1, - 5114: 0x6DB3, - 5115: 0x6DB4, - 5116: 0x6DB6, - 5117: 0x6DB7, - 5118: 0x6DB9, - 5119: 0x6DBA, - 5120: 0x6DBB, - 5121: 0x6DBC, - 5122: 0x6DBD, - 5123: 0x6DBE, - 5124: 0x6DC1, - 5125: 0x6DC2, - 5126: 0x6DC3, - 5127: 0x6DC8, - 5128: 0x6DC9, - 5129: 0x6DCA, - 5130: 0x6DCD, - 5131: 0x6DCE, - 5132: 0x6DCF, - 5133: 0x6DD0, - 5134: 0x6DD2, - 5135: 0x6DD3, - 5136: 0x6DD4, - 5137: 0x6DD5, - 5138: 0x6DD7, - 5139: 0x6DDA, - 5140: 0x6DDB, - 5141: 0x6DDC, - 5142: 0x6DDF, - 5143: 0x6DE2, - 5144: 0x6DE3, - 5145: 0x6DE5, - 5146: 0x6DE7, - 5147: 0x6DE8, - 5148: 0x6DE9, - 5149: 0x6DEA, - 5150: 0x6DED, - 5151: 0x6DEF, - 5152: 0x6DF0, - 5153: 0x6DF2, - 5154: 0x6DF4, - 5155: 0x6DF5, - 5156: 0x6DF6, - 5157: 0x6DF8, - 5158: 0x6DFA, - 5159: 0x6DFD, - 5160: 0x6DFE, - 5161: 0x6DFF, - 5162: 0x6E00, - 5163: 0x6E01, - 5164: 0x6E02, - 5165: 0x6E03, - 5166: 0x6E04, - 5167: 0x6E06, - 5168: 0x6E07, - 5169: 0x6E08, - 5170: 0x6E09, - 5171: 0x6E0B, - 5172: 0x6E0F, - 5173: 0x6E12, - 5174: 0x6E13, - 5175: 0x6E15, - 5176: 0x6E18, - 5177: 0x6E19, - 5178: 0x6E1B, - 5179: 0x6E1C, - 5180: 0x6E1E, - 5181: 0x6E1F, - 5182: 0x6E22, - 5183: 0x6E26, - 5184: 0x6E27, - 5185: 0x6E28, - 5186: 0x6E2A, - 5187: 0x6E2C, - 5188: 0x6E2E, - 5189: 0x6E30, - 5190: 0x6E31, - 5191: 0x6E33, - 5192: 0x6E35, - 5193: 0x6E36, - 5194: 0x6E37, - 5195: 0x6E39, - 5196: 0x6E3B, - 5197: 0x6E3C, - 5198: 0x6E3D, - 5199: 0x6E3E, - 5200: 0x6E3F, - 5201: 0x6E40, - 5202: 0x6E41, - 5203: 0x6E42, - 5204: 0x6E45, - 5205: 0x6E46, - 5206: 0x6E47, - 5207: 0x6E48, - 5208: 0x6E49, - 5209: 0x6E4A, - 5210: 0x6E4B, - 5211: 0x6E4C, - 5212: 0x6E4F, - 5213: 0x6E50, - 5214: 0x6E51, - 5215: 0x6E52, - 5216: 0x6E55, - 5217: 0x6E57, - 5218: 0x6E59, - 5219: 0x6E5A, - 5220: 0x6E5C, - 5221: 0x6E5D, - 5222: 0x6E5E, - 5223: 0x6E60, - 5224: 0x6E61, - 5225: 0x6E62, - 5226: 0x6E63, - 5227: 0x6E64, - 5228: 0x6E65, - 5229: 0x6E66, - 5230: 0x6E67, - 5231: 0x6E68, - 5232: 0x6E69, - 5233: 0x6E6A, - 5234: 0x6E6C, - 5235: 0x6E6D, - 5236: 0x6E6F, - 5237: 0x6E70, - 5238: 0x6E71, - 5239: 0x6E72, - 5240: 0x6E73, - 5241: 0x6E74, - 5242: 0x6E75, - 5243: 0x6E76, - 5244: 0x6E77, - 5245: 0x6E78, - 5246: 0x6E79, - 5247: 0x6E7A, - 5248: 0x6E7B, - 5249: 0x6E7C, - 5250: 0x6E7D, - 5251: 0x6E80, - 5252: 0x6E81, - 5253: 0x6E82, - 5254: 0x6E84, - 5255: 0x6E87, - 5256: 0x6E88, - 5257: 0x6E8A, - 5258: 0x6E8B, - 5259: 0x6E8C, - 5260: 0x6E8D, - 5261: 0x6E8E, - 5262: 0x6E91, - 5263: 0x6E92, - 5264: 0x6E93, - 5265: 0x6E94, - 5266: 0x6E95, - 5267: 0x6E96, - 5268: 0x6E97, - 5269: 0x6E99, - 5270: 0x6E9A, - 5271: 0x6E9B, - 5272: 0x6E9D, - 5273: 0x6E9E, - 5274: 0x6EA0, - 5275: 0x6EA1, - 5276: 0x6EA3, - 5277: 0x6EA4, - 5278: 0x6EA6, - 5279: 0x6EA8, - 5280: 0x6EA9, - 5281: 0x6EAB, - 5282: 0x6EAC, - 5283: 0x6EAD, - 5284: 0x6EAE, - 5285: 0x6EB0, - 5286: 0x6EB3, - 5287: 0x6EB5, - 5288: 0x6EB8, - 5289: 0x6EB9, - 5290: 0x6EBC, - 5291: 0x6EBE, - 5292: 0x6EBF, - 5293: 0x6EC0, - 5294: 0x6EC3, - 5295: 0x6EC4, - 5296: 0x6EC5, - 5297: 0x6EC6, - 5298: 0x6EC8, - 5299: 0x6EC9, - 5300: 0x6ECA, - 5301: 0x6ECC, - 5302: 0x6ECD, - 5303: 0x6ECE, - 5304: 0x6ED0, - 5305: 0x6ED2, - 5306: 0x6ED6, - 5307: 0x6ED8, - 5308: 0x6ED9, - 5309: 0x6EDB, - 5310: 0x6EDC, - 5311: 0x6EDD, - 5312: 0x6EE3, - 5313: 0x6EE7, - 5314: 0x6EEA, - 5315: 0x6EEB, - 5316: 0x6EEC, - 5317: 0x6EED, - 5318: 0x6EEE, - 5319: 0x6EEF, - 5320: 0x6EF0, - 5321: 0x6EF1, - 5322: 0x6EF2, - 5323: 0x6EF3, - 5324: 0x6EF5, - 5325: 0x6EF6, - 5326: 0x6EF7, - 5327: 0x6EF8, - 5328: 0x6EFA, - 5329: 0x6EFB, - 5330: 0x6EFC, - 5331: 0x6EFD, - 5332: 0x6EFE, - 5333: 0x6EFF, - 5334: 0x6F00, - 5335: 0x6F01, - 5336: 0x6F03, - 5337: 0x6F04, - 5338: 0x6F05, - 5339: 0x6F07, - 5340: 0x6F08, - 5341: 0x6F0A, - 5342: 0x6F0B, - 5343: 0x6F0C, - 5344: 0x6F0D, - 5345: 0x6F0E, - 5346: 0x6F10, - 5347: 0x6F11, - 5348: 0x6F12, - 5349: 0x6F16, - 5350: 0x6F17, - 5351: 0x6F18, - 5352: 0x6F19, - 5353: 0x6F1A, - 5354: 0x6F1B, - 5355: 0x6F1C, - 5356: 0x6F1D, - 5357: 0x6F1E, - 5358: 0x6F1F, - 5359: 0x6F21, - 5360: 0x6F22, - 5361: 0x6F23, - 5362: 0x6F25, - 5363: 0x6F26, - 5364: 0x6F27, - 5365: 0x6F28, - 5366: 0x6F2C, - 5367: 0x6F2E, - 5368: 0x6F30, - 5369: 0x6F32, - 5370: 0x6F34, - 5371: 0x6F35, - 5372: 0x6F37, - 5373: 0x6F38, - 5374: 0x6F39, - 5375: 0x6F3A, - 5376: 0x6F3B, - 5377: 0x6F3C, - 5378: 0x6F3D, - 5379: 0x6F3F, - 5380: 0x6F40, - 5381: 0x6F41, - 5382: 0x6F42, - 5383: 0x6F43, - 5384: 0x6F44, - 5385: 0x6F45, - 5386: 0x6F48, - 5387: 0x6F49, - 5388: 0x6F4A, - 5389: 0x6F4C, - 5390: 0x6F4E, - 5391: 0x6F4F, - 5392: 0x6F50, - 5393: 0x6F51, - 5394: 0x6F52, - 5395: 0x6F53, - 5396: 0x6F54, - 5397: 0x6F55, - 5398: 0x6F56, - 5399: 0x6F57, - 5400: 0x6F59, - 5401: 0x6F5A, - 5402: 0x6F5B, - 5403: 0x6F5D, - 5404: 0x6F5F, - 5405: 0x6F60, - 5406: 0x6F61, - 5407: 0x6F63, - 5408: 0x6F64, - 5409: 0x6F65, - 5410: 0x6F67, - 5411: 0x6F68, - 5412: 0x6F69, - 5413: 0x6F6A, - 5414: 0x6F6B, - 5415: 0x6F6C, - 5416: 0x6F6F, - 5417: 0x6F70, - 5418: 0x6F71, - 5419: 0x6F73, - 5420: 0x6F75, - 5421: 0x6F76, - 5422: 0x6F77, - 5423: 0x6F79, - 5424: 0x6F7B, - 5425: 0x6F7D, - 5426: 0x6F7E, - 5427: 0x6F7F, - 5428: 0x6F80, - 5429: 0x6F81, - 5430: 0x6F82, - 5431: 0x6F83, - 5432: 0x6F85, - 5433: 0x6F86, - 5434: 0x6F87, - 5435: 0x6F8A, - 5436: 0x6F8B, - 5437: 0x6F8F, - 5438: 0x6F90, - 5439: 0x6F91, - 5440: 0x6F92, - 5441: 0x6F93, - 5442: 0x6F94, - 5443: 0x6F95, - 5444: 0x6F96, - 5445: 0x6F97, - 5446: 0x6F98, - 5447: 0x6F99, - 5448: 0x6F9A, - 5449: 0x6F9B, - 5450: 0x6F9D, - 5451: 0x6F9E, - 5452: 0x6F9F, - 5453: 0x6FA0, - 5454: 0x6FA2, - 5455: 0x6FA3, - 5456: 0x6FA4, - 5457: 0x6FA5, - 5458: 0x6FA6, - 5459: 0x6FA8, - 5460: 0x6FA9, - 5461: 0x6FAA, - 5462: 0x6FAB, - 5463: 0x6FAC, - 5464: 0x6FAD, - 5465: 0x6FAE, - 5466: 0x6FAF, - 5467: 0x6FB0, - 5468: 0x6FB1, - 5469: 0x6FB2, - 5470: 0x6FB4, - 5471: 0x6FB5, - 5472: 0x6FB7, - 5473: 0x6FB8, - 5474: 0x6FBA, - 5475: 0x6FBB, - 5476: 0x6FBC, - 5477: 0x6FBD, - 5478: 0x6FBE, - 5479: 0x6FBF, - 5480: 0x6FC1, - 5481: 0x6FC3, - 5482: 0x6FC4, - 5483: 0x6FC5, - 5484: 0x6FC6, - 5485: 0x6FC7, - 5486: 0x6FC8, - 5487: 0x6FCA, - 5488: 0x6FCB, - 5489: 0x6FCC, - 5490: 0x6FCD, - 5491: 0x6FCE, - 5492: 0x6FCF, - 5493: 0x6FD0, - 5494: 0x6FD3, - 5495: 0x6FD4, - 5496: 0x6FD5, - 5497: 0x6FD6, - 5498: 0x6FD7, - 5499: 0x6FD8, - 5500: 0x6FD9, - 5501: 0x6FDA, - 5502: 0x6FDB, - 5503: 0x6FDC, - 5504: 0x6FDD, - 5505: 0x6FDF, - 5506: 0x6FE2, - 5507: 0x6FE3, - 5508: 0x6FE4, - 5509: 0x6FE5, - 5510: 0x6FE6, - 5511: 0x6FE7, - 5512: 0x6FE8, - 5513: 0x6FE9, - 5514: 0x6FEA, - 5515: 0x6FEB, - 5516: 0x6FEC, - 5517: 0x6FED, - 5518: 0x6FF0, - 5519: 0x6FF1, - 5520: 0x6FF2, - 5521: 0x6FF3, - 5522: 0x6FF4, - 5523: 0x6FF5, - 5524: 0x6FF6, - 5525: 0x6FF7, - 5526: 0x6FF8, - 5527: 0x6FF9, - 5528: 0x6FFA, - 5529: 0x6FFB, - 5530: 0x6FFC, - 5531: 0x6FFD, - 5532: 0x6FFE, - 5533: 0x6FFF, - 5534: 0x7000, - 5535: 0x7001, - 5536: 0x7002, - 5537: 0x7003, - 5538: 0x7004, - 5539: 0x7005, - 5540: 0x7006, - 5541: 0x7007, - 5542: 0x7008, - 5543: 0x7009, - 5544: 0x700A, - 5545: 0x700B, - 5546: 0x700C, - 5547: 0x700D, - 5548: 0x700E, - 5549: 0x700F, - 5550: 0x7010, - 5551: 0x7012, - 5552: 0x7013, - 5553: 0x7014, - 5554: 0x7015, - 5555: 0x7016, - 5556: 0x7017, - 5557: 0x7018, - 5558: 0x7019, - 5559: 0x701C, - 5560: 0x701D, - 5561: 0x701E, - 5562: 0x701F, - 5563: 0x7020, - 5564: 0x7021, - 5565: 0x7022, - 5566: 0x7024, - 5567: 0x7025, - 5568: 0x7026, - 5569: 0x7027, - 5570: 0x7028, - 5571: 0x7029, - 5572: 0x702A, - 5573: 0x702B, - 5574: 0x702C, - 5575: 0x702D, - 5576: 0x702E, - 5577: 0x702F, - 5578: 0x7030, - 5579: 0x7031, - 5580: 0x7032, - 5581: 0x7033, - 5582: 0x7034, - 5583: 0x7036, - 5584: 0x7037, - 5585: 0x7038, - 5586: 0x703A, - 5587: 0x703B, - 5588: 0x703C, - 5589: 0x703D, - 5590: 0x703E, - 5591: 0x703F, - 5592: 0x7040, - 5593: 0x7041, - 5594: 0x7042, - 5595: 0x7043, - 5596: 0x7044, - 5597: 0x7045, - 5598: 0x7046, - 5599: 0x7047, - 5600: 0x7048, - 5601: 0x7049, - 5602: 0x704A, - 5603: 0x704B, - 5604: 0x704D, - 5605: 0x704E, - 5606: 0x7050, - 5607: 0x7051, - 5608: 0x7052, - 5609: 0x7053, - 5610: 0x7054, - 5611: 0x7055, - 5612: 0x7056, - 5613: 0x7057, - 5614: 0x7058, - 5615: 0x7059, - 5616: 0x705A, - 5617: 0x705B, - 5618: 0x705C, - 5619: 0x705D, - 5620: 0x705F, - 5621: 0x7060, - 5622: 0x7061, - 5623: 0x7062, - 5624: 0x7063, - 5625: 0x7064, - 5626: 0x7065, - 5627: 0x7066, - 5628: 0x7067, - 5629: 0x7068, - 5630: 0x7069, - 5631: 0x706A, - 5632: 0x706E, - 5633: 0x7071, - 5634: 0x7072, - 5635: 0x7073, - 5636: 0x7074, - 5637: 0x7077, - 5638: 0x7079, - 5639: 0x707A, - 5640: 0x707B, - 5641: 0x707D, - 5642: 0x7081, - 5643: 0x7082, - 5644: 0x7083, - 5645: 0x7084, - 5646: 0x7086, - 5647: 0x7087, - 5648: 0x7088, - 5649: 0x708B, - 5650: 0x708C, - 5651: 0x708D, - 5652: 0x708F, - 5653: 0x7090, - 5654: 0x7091, - 5655: 0x7093, - 5656: 0x7097, - 5657: 0x7098, - 5658: 0x709A, - 5659: 0x709B, - 5660: 0x709E, - 5661: 0x709F, - 5662: 0x70A0, - 5663: 0x70A1, - 5664: 0x70A2, - 5665: 0x70A3, - 5666: 0x70A4, - 5667: 0x70A5, - 5668: 0x70A6, - 5669: 0x70A7, - 5670: 0x70A8, - 5671: 0x70A9, - 5672: 0x70AA, - 5673: 0x70B0, - 5674: 0x70B2, - 5675: 0x70B4, - 5676: 0x70B5, - 5677: 0x70B6, - 5678: 0x70BA, - 5679: 0x70BE, - 5680: 0x70BF, - 5681: 0x70C4, - 5682: 0x70C5, - 5683: 0x70C6, - 5684: 0x70C7, - 5685: 0x70C9, - 5686: 0x70CB, - 5687: 0x70CC, - 5688: 0x70CD, - 5689: 0x70CE, - 5690: 0x70CF, - 5691: 0x70D0, - 5692: 0x70D1, - 5693: 0x70D2, - 5694: 0x70D3, - 5695: 0x70D4, - 5696: 0x70D5, - 5697: 0x70D6, - 5698: 0x70D7, - 5699: 0x70DA, - 5700: 0x70DC, - 5701: 0x70DD, - 5702: 0x70DE, - 5703: 0x70E0, - 5704: 0x70E1, - 5705: 0x70E2, - 5706: 0x70E3, - 5707: 0x70E5, - 5708: 0x70EA, - 5709: 0x70EE, - 5710: 0x70F0, - 5711: 0x70F1, - 5712: 0x70F2, - 5713: 0x70F3, - 5714: 0x70F4, - 5715: 0x70F5, - 5716: 0x70F6, - 5717: 0x70F8, - 5718: 0x70FA, - 5719: 0x70FB, - 5720: 0x70FC, - 5721: 0x70FE, - 5722: 0x70FF, - 5723: 0x7100, - 5724: 0x7101, - 5725: 0x7102, - 5726: 0x7103, - 5727: 0x7104, - 5728: 0x7105, - 5729: 0x7106, - 5730: 0x7107, - 5731: 0x7108, - 5732: 0x710B, - 5733: 0x710C, - 5734: 0x710D, - 5735: 0x710E, - 5736: 0x710F, - 5737: 0x7111, - 5738: 0x7112, - 5739: 0x7114, - 5740: 0x7117, - 5741: 0x711B, - 5742: 0x711C, - 5743: 0x711D, - 5744: 0x711E, - 5745: 0x711F, - 5746: 0x7120, - 5747: 0x7121, - 5748: 0x7122, - 5749: 0x7123, - 5750: 0x7124, - 5751: 0x7125, - 5752: 0x7127, - 5753: 0x7128, - 5754: 0x7129, - 5755: 0x712A, - 5756: 0x712B, - 5757: 0x712C, - 5758: 0x712D, - 5759: 0x712E, - 5760: 0x7132, - 5761: 0x7133, - 5762: 0x7134, - 5763: 0x7135, - 5764: 0x7137, - 5765: 0x7138, - 5766: 0x7139, - 5767: 0x713A, - 5768: 0x713B, - 5769: 0x713C, - 5770: 0x713D, - 5771: 0x713E, - 5772: 0x713F, - 5773: 0x7140, - 5774: 0x7141, - 5775: 0x7142, - 5776: 0x7143, - 5777: 0x7144, - 5778: 0x7146, - 5779: 0x7147, - 5780: 0x7148, - 5781: 0x7149, - 5782: 0x714B, - 5783: 0x714D, - 5784: 0x714F, - 5785: 0x7150, - 5786: 0x7151, - 5787: 0x7152, - 5788: 0x7153, - 5789: 0x7154, - 5790: 0x7155, - 5791: 0x7156, - 5792: 0x7157, - 5793: 0x7158, - 5794: 0x7159, - 5795: 0x715A, - 5796: 0x715B, - 5797: 0x715D, - 5798: 0x715F, - 5799: 0x7160, - 5800: 0x7161, - 5801: 0x7162, - 5802: 0x7163, - 5803: 0x7165, - 5804: 0x7169, - 5805: 0x716A, - 5806: 0x716B, - 5807: 0x716C, - 5808: 0x716D, - 5809: 0x716F, - 5810: 0x7170, - 5811: 0x7171, - 5812: 0x7174, - 5813: 0x7175, - 5814: 0x7176, - 5815: 0x7177, - 5816: 0x7179, - 5817: 0x717B, - 5818: 0x717C, - 5819: 0x717E, - 5820: 0x717F, - 5821: 0x7180, - 5822: 0x7181, - 5823: 0x7182, - 5824: 0x7183, - 5825: 0x7185, - 5826: 0x7186, - 5827: 0x7187, - 5828: 0x7188, - 5829: 0x7189, - 5830: 0x718B, - 5831: 0x718C, - 5832: 0x718D, - 5833: 0x718E, - 5834: 0x7190, - 5835: 0x7191, - 5836: 0x7192, - 5837: 0x7193, - 5838: 0x7195, - 5839: 0x7196, - 5840: 0x7197, - 5841: 0x719A, - 5842: 0x719B, - 5843: 0x719C, - 5844: 0x719D, - 5845: 0x719E, - 5846: 0x71A1, - 5847: 0x71A2, - 5848: 0x71A3, - 5849: 0x71A4, - 5850: 0x71A5, - 5851: 0x71A6, - 5852: 0x71A7, - 5853: 0x71A9, - 5854: 0x71AA, - 5855: 0x71AB, - 5856: 0x71AD, - 5857: 0x71AE, - 5858: 0x71AF, - 5859: 0x71B0, - 5860: 0x71B1, - 5861: 0x71B2, - 5862: 0x71B4, - 5863: 0x71B6, - 5864: 0x71B7, - 5865: 0x71B8, - 5866: 0x71BA, - 5867: 0x71BB, - 5868: 0x71BC, - 5869: 0x71BD, - 5870: 0x71BE, - 5871: 0x71BF, - 5872: 0x71C0, - 5873: 0x71C1, - 5874: 0x71C2, - 5875: 0x71C4, - 5876: 0x71C5, - 5877: 0x71C6, - 5878: 0x71C7, - 5879: 0x71C8, - 5880: 0x71C9, - 5881: 0x71CA, - 5882: 0x71CB, - 5883: 0x71CC, - 5884: 0x71CD, - 5885: 0x71CF, - 5886: 0x71D0, - 5887: 0x71D1, - 5888: 0x71D2, - 5889: 0x71D3, - 5890: 0x71D6, - 5891: 0x71D7, - 5892: 0x71D8, - 5893: 0x71D9, - 5894: 0x71DA, - 5895: 0x71DB, - 5896: 0x71DC, - 5897: 0x71DD, - 5898: 0x71DE, - 5899: 0x71DF, - 5900: 0x71E1, - 5901: 0x71E2, - 5902: 0x71E3, - 5903: 0x71E4, - 5904: 0x71E6, - 5905: 0x71E8, - 5906: 0x71E9, - 5907: 0x71EA, - 5908: 0x71EB, - 5909: 0x71EC, - 5910: 0x71ED, - 5911: 0x71EF, - 5912: 0x71F0, - 5913: 0x71F1, - 5914: 0x71F2, - 5915: 0x71F3, - 5916: 0x71F4, - 5917: 0x71F5, - 5918: 0x71F6, - 5919: 0x71F7, - 5920: 0x71F8, - 5921: 0x71FA, - 5922: 0x71FB, - 5923: 0x71FC, - 5924: 0x71FD, - 5925: 0x71FE, - 5926: 0x71FF, - 5927: 0x7200, - 5928: 0x7201, - 5929: 0x7202, - 5930: 0x7203, - 5931: 0x7204, - 5932: 0x7205, - 5933: 0x7207, - 5934: 0x7208, - 5935: 0x7209, - 5936: 0x720A, - 5937: 0x720B, - 5938: 0x720C, - 5939: 0x720D, - 5940: 0x720E, - 5941: 0x720F, - 5942: 0x7210, - 5943: 0x7211, - 5944: 0x7212, - 5945: 0x7213, - 5946: 0x7214, - 5947: 0x7215, - 5948: 0x7216, - 5949: 0x7217, - 5950: 0x7218, - 5951: 0x7219, - 5952: 0x721A, - 5953: 0x721B, - 5954: 0x721C, - 5955: 0x721E, - 5956: 0x721F, - 5957: 0x7220, - 5958: 0x7221, - 5959: 0x7222, - 5960: 0x7223, - 5961: 0x7224, - 5962: 0x7225, - 5963: 0x7226, - 5964: 0x7227, - 5965: 0x7229, - 5966: 0x722B, - 5967: 0x722D, - 5968: 0x722E, - 5969: 0x722F, - 5970: 0x7232, - 5971: 0x7233, - 5972: 0x7234, - 5973: 0x723A, - 5974: 0x723C, - 5975: 0x723E, - 5976: 0x7240, - 5977: 0x7241, - 5978: 0x7242, - 5979: 0x7243, - 5980: 0x7244, - 5981: 0x7245, - 5982: 0x7246, - 5983: 0x7249, - 5984: 0x724A, - 5985: 0x724B, - 5986: 0x724E, - 5987: 0x724F, - 5988: 0x7250, - 5989: 0x7251, - 5990: 0x7253, - 5991: 0x7254, - 5992: 0x7255, - 5993: 0x7257, - 5994: 0x7258, - 5995: 0x725A, - 5996: 0x725C, - 5997: 0x725E, - 5998: 0x7260, - 5999: 0x7263, - 6000: 0x7264, - 6001: 0x7265, - 6002: 0x7268, - 6003: 0x726A, - 6004: 0x726B, - 6005: 0x726C, - 6006: 0x726D, - 6007: 0x7270, - 6008: 0x7271, - 6009: 0x7273, - 6010: 0x7274, - 6011: 0x7276, - 6012: 0x7277, - 6013: 0x7278, - 6014: 0x727B, - 6015: 0x727C, - 6016: 0x727D, - 6017: 0x7282, - 6018: 0x7283, - 6019: 0x7285, - 6020: 0x7286, - 6021: 0x7287, - 6022: 0x7288, - 6023: 0x7289, - 6024: 0x728C, - 6025: 0x728E, - 6026: 0x7290, - 6027: 0x7291, - 6028: 0x7293, - 6029: 0x7294, - 6030: 0x7295, - 6031: 0x7296, - 6032: 0x7297, - 6033: 0x7298, - 6034: 0x7299, - 6035: 0x729A, - 6036: 0x729B, - 6037: 0x729C, - 6038: 0x729D, - 6039: 0x729E, - 6040: 0x72A0, - 6041: 0x72A1, - 6042: 0x72A2, - 6043: 0x72A3, - 6044: 0x72A4, - 6045: 0x72A5, - 6046: 0x72A6, - 6047: 0x72A7, - 6048: 0x72A8, - 6049: 0x72A9, - 6050: 0x72AA, - 6051: 0x72AB, - 6052: 0x72AE, - 6053: 0x72B1, - 6054: 0x72B2, - 6055: 0x72B3, - 6056: 0x72B5, - 6057: 0x72BA, - 6058: 0x72BB, - 6059: 0x72BC, - 6060: 0x72BD, - 6061: 0x72BE, - 6062: 0x72BF, - 6063: 0x72C0, - 6064: 0x72C5, - 6065: 0x72C6, - 6066: 0x72C7, - 6067: 0x72C9, - 6068: 0x72CA, - 6069: 0x72CB, - 6070: 0x72CC, - 6071: 0x72CF, - 6072: 0x72D1, - 6073: 0x72D3, - 6074: 0x72D4, - 6075: 0x72D5, - 6076: 0x72D6, - 6077: 0x72D8, - 6078: 0x72DA, - 6079: 0x72DB, - 6176: 0x3000, - 6177: 0x3001, - 6178: 0x3002, - 6179: 0x00B7, - 6180: 0x02C9, - 6181: 0x02C7, - 6182: 0x00A8, - 6183: 0x3003, - 6184: 0x3005, - 6185: 0x2014, - 6186: 0xFF5E, - 6187: 0x2016, - 6188: 0x2026, - 6189: 0x2018, - 6190: 0x2019, - 6191: 0x201C, - 6192: 0x201D, - 6193: 0x3014, - 6194: 0x3015, - 6195: 0x3008, - 6196: 0x3009, - 6197: 0x300A, - 6198: 0x300B, - 6199: 0x300C, - 6200: 0x300D, - 6201: 0x300E, - 6202: 0x300F, - 6203: 0x3016, - 6204: 0x3017, - 6205: 0x3010, - 6206: 0x3011, - 6207: 0x00B1, - 6208: 0x00D7, - 6209: 0x00F7, - 6210: 0x2236, - 6211: 0x2227, - 6212: 0x2228, - 6213: 0x2211, - 6214: 0x220F, - 6215: 0x222A, - 6216: 0x2229, - 6217: 0x2208, - 6218: 0x2237, - 6219: 0x221A, - 6220: 0x22A5, - 6221: 0x2225, - 6222: 0x2220, - 6223: 0x2312, - 6224: 0x2299, - 6225: 0x222B, - 6226: 0x222E, - 6227: 0x2261, - 6228: 0x224C, - 6229: 0x2248, - 6230: 0x223D, - 6231: 0x221D, - 6232: 0x2260, - 6233: 0x226E, - 6234: 0x226F, - 6235: 0x2264, - 6236: 0x2265, - 6237: 0x221E, - 6238: 0x2235, - 6239: 0x2234, - 6240: 0x2642, - 6241: 0x2640, - 6242: 0x00B0, - 6243: 0x2032, - 6244: 0x2033, - 6245: 0x2103, - 6246: 0xFF04, - 6247: 0x00A4, - 6248: 0xFFE0, - 6249: 0xFFE1, - 6250: 0x2030, - 6251: 0x00A7, - 6252: 0x2116, - 6253: 0x2606, - 6254: 0x2605, - 6255: 0x25CB, - 6256: 0x25CF, - 6257: 0x25CE, - 6258: 0x25C7, - 6259: 0x25C6, - 6260: 0x25A1, - 6261: 0x25A0, - 6262: 0x25B3, - 6263: 0x25B2, - 6264: 0x203B, - 6265: 0x2192, - 6266: 0x2190, - 6267: 0x2191, - 6268: 0x2193, - 6269: 0x3013, - 6366: 0x2170, - 6367: 0x2171, - 6368: 0x2172, - 6369: 0x2173, - 6370: 0x2174, - 6371: 0x2175, - 6372: 0x2176, - 6373: 0x2177, - 6374: 0x2178, - 6375: 0x2179, - 6382: 0x2488, - 6383: 0x2489, - 6384: 0x248A, - 6385: 0x248B, - 6386: 0x248C, - 6387: 0x248D, - 6388: 0x248E, - 6389: 0x248F, - 6390: 0x2490, - 6391: 0x2491, - 6392: 0x2492, - 6393: 0x2493, - 6394: 0x2494, - 6395: 0x2495, - 6396: 0x2496, - 6397: 0x2497, - 6398: 0x2498, - 6399: 0x2499, - 6400: 0x249A, - 6401: 0x249B, - 6402: 0x2474, - 6403: 0x2475, - 6404: 0x2476, - 6405: 0x2477, - 6406: 0x2478, - 6407: 0x2479, - 6408: 0x247A, - 6409: 0x247B, - 6410: 0x247C, - 6411: 0x247D, - 6412: 0x247E, - 6413: 0x247F, - 6414: 0x2480, - 6415: 0x2481, - 6416: 0x2482, - 6417: 0x2483, - 6418: 0x2484, - 6419: 0x2485, - 6420: 0x2486, - 6421: 0x2487, - 6422: 0x2460, - 6423: 0x2461, - 6424: 0x2462, - 6425: 0x2463, - 6426: 0x2464, - 6427: 0x2465, - 6428: 0x2466, - 6429: 0x2467, - 6430: 0x2468, - 6431: 0x2469, - 6432: 0x20AC, - 6434: 0x3220, - 6435: 0x3221, - 6436: 0x3222, - 6437: 0x3223, - 6438: 0x3224, - 6439: 0x3225, - 6440: 0x3226, - 6441: 0x3227, - 6442: 0x3228, - 6443: 0x3229, - 6446: 0x2160, - 6447: 0x2161, - 6448: 0x2162, - 6449: 0x2163, - 6450: 0x2164, - 6451: 0x2165, - 6452: 0x2166, - 6453: 0x2167, - 6454: 0x2168, - 6455: 0x2169, - 6456: 0x216A, - 6457: 0x216B, - 6555: 0x3000, - 6556: 0xFF01, - 6557: 0xFF02, - 6558: 0xFF03, - 6559: 0xFFE5, - 6560: 0xFF05, - 6561: 0xFF06, - 6562: 0xFF07, - 6563: 0xFF08, - 6564: 0xFF09, - 6565: 0xFF0A, - 6566: 0xFF0B, - 6567: 0xFF0C, - 6568: 0xFF0D, - 6569: 0xFF0E, - 6570: 0xFF0F, - 6571: 0xFF10, - 6572: 0xFF11, - 6573: 0xFF12, - 6574: 0xFF13, - 6575: 0xFF14, - 6576: 0xFF15, - 6577: 0xFF16, - 6578: 0xFF17, - 6579: 0xFF18, - 6580: 0xFF19, - 6581: 0xFF1A, - 6582: 0xFF1B, - 6583: 0xFF1C, - 6584: 0xFF1D, - 6585: 0xFF1E, - 6586: 0xFF1F, - 6587: 0xFF20, - 6588: 0xFF21, - 6589: 0xFF22, - 6590: 0xFF23, - 6591: 0xFF24, - 6592: 0xFF25, - 6593: 0xFF26, - 6594: 0xFF27, - 6595: 0xFF28, - 6596: 0xFF29, - 6597: 0xFF2A, - 6598: 0xFF2B, - 6599: 0xFF2C, - 6600: 0xFF2D, - 6601: 0xFF2E, - 6602: 0xFF2F, - 6603: 0xFF30, - 6604: 0xFF31, - 6605: 0xFF32, - 6606: 0xFF33, - 6607: 0xFF34, - 6608: 0xFF35, - 6609: 0xFF36, - 6610: 0xFF37, - 6611: 0xFF38, - 6612: 0xFF39, - 6613: 0xFF3A, - 6614: 0xFF3B, - 6615: 0xFF3C, - 6616: 0xFF3D, - 6617: 0xFF3E, - 6618: 0xFF3F, - 6619: 0xFF40, - 6620: 0xFF41, - 6621: 0xFF42, - 6622: 0xFF43, - 6623: 0xFF44, - 6624: 0xFF45, - 6625: 0xFF46, - 6626: 0xFF47, - 6627: 0xFF48, - 6628: 0xFF49, - 6629: 0xFF4A, - 6630: 0xFF4B, - 6631: 0xFF4C, - 6632: 0xFF4D, - 6633: 0xFF4E, - 6634: 0xFF4F, - 6635: 0xFF50, - 6636: 0xFF51, - 6637: 0xFF52, - 6638: 0xFF53, - 6639: 0xFF54, - 6640: 0xFF55, - 6641: 0xFF56, - 6642: 0xFF57, - 6643: 0xFF58, - 6644: 0xFF59, - 6645: 0xFF5A, - 6646: 0xFF5B, - 6647: 0xFF5C, - 6648: 0xFF5D, - 6649: 0xFFE3, - 6746: 0x3041, - 6747: 0x3042, - 6748: 0x3043, - 6749: 0x3044, - 6750: 0x3045, - 6751: 0x3046, - 6752: 0x3047, - 6753: 0x3048, - 6754: 0x3049, - 6755: 0x304A, - 6756: 0x304B, - 6757: 0x304C, - 6758: 0x304D, - 6759: 0x304E, - 6760: 0x304F, - 6761: 0x3050, - 6762: 0x3051, - 6763: 0x3052, - 6764: 0x3053, - 6765: 0x3054, - 6766: 0x3055, - 6767: 0x3056, - 6768: 0x3057, - 6769: 0x3058, - 6770: 0x3059, - 6771: 0x305A, - 6772: 0x305B, - 6773: 0x305C, - 6774: 0x305D, - 6775: 0x305E, - 6776: 0x305F, - 6777: 0x3060, - 6778: 0x3061, - 6779: 0x3062, - 6780: 0x3063, - 6781: 0x3064, - 6782: 0x3065, - 6783: 0x3066, - 6784: 0x3067, - 6785: 0x3068, - 6786: 0x3069, - 6787: 0x306A, - 6788: 0x306B, - 6789: 0x306C, - 6790: 0x306D, - 6791: 0x306E, - 6792: 0x306F, - 6793: 0x3070, - 6794: 0x3071, - 6795: 0x3072, - 6796: 0x3073, - 6797: 0x3074, - 6798: 0x3075, - 6799: 0x3076, - 6800: 0x3077, - 6801: 0x3078, - 6802: 0x3079, - 6803: 0x307A, - 6804: 0x307B, - 6805: 0x307C, - 6806: 0x307D, - 6807: 0x307E, - 6808: 0x307F, - 6809: 0x3080, - 6810: 0x3081, - 6811: 0x3082, - 6812: 0x3083, - 6813: 0x3084, - 6814: 0x3085, - 6815: 0x3086, - 6816: 0x3087, - 6817: 0x3088, - 6818: 0x3089, - 6819: 0x308A, - 6820: 0x308B, - 6821: 0x308C, - 6822: 0x308D, - 6823: 0x308E, - 6824: 0x308F, - 6825: 0x3090, - 6826: 0x3091, - 6827: 0x3092, - 6828: 0x3093, - 6936: 0x30A1, - 6937: 0x30A2, - 6938: 0x30A3, - 6939: 0x30A4, - 6940: 0x30A5, - 6941: 0x30A6, - 6942: 0x30A7, - 6943: 0x30A8, - 6944: 0x30A9, - 6945: 0x30AA, - 6946: 0x30AB, - 6947: 0x30AC, - 6948: 0x30AD, - 6949: 0x30AE, - 6950: 0x30AF, - 6951: 0x30B0, - 6952: 0x30B1, - 6953: 0x30B2, - 6954: 0x30B3, - 6955: 0x30B4, - 6956: 0x30B5, - 6957: 0x30B6, - 6958: 0x30B7, - 6959: 0x30B8, - 6960: 0x30B9, - 6961: 0x30BA, - 6962: 0x30BB, - 6963: 0x30BC, - 6964: 0x30BD, - 6965: 0x30BE, - 6966: 0x30BF, - 6967: 0x30C0, - 6968: 0x30C1, - 6969: 0x30C2, - 6970: 0x30C3, - 6971: 0x30C4, - 6972: 0x30C5, - 6973: 0x30C6, - 6974: 0x30C7, - 6975: 0x30C8, - 6976: 0x30C9, - 6977: 0x30CA, - 6978: 0x30CB, - 6979: 0x30CC, - 6980: 0x30CD, - 6981: 0x30CE, - 6982: 0x30CF, - 6983: 0x30D0, - 6984: 0x30D1, - 6985: 0x30D2, - 6986: 0x30D3, - 6987: 0x30D4, - 6988: 0x30D5, - 6989: 0x30D6, - 6990: 0x30D7, - 6991: 0x30D8, - 6992: 0x30D9, - 6993: 0x30DA, - 6994: 0x30DB, - 6995: 0x30DC, - 6996: 0x30DD, - 6997: 0x30DE, - 6998: 0x30DF, - 6999: 0x30E0, - 7000: 0x30E1, - 7001: 0x30E2, - 7002: 0x30E3, - 7003: 0x30E4, - 7004: 0x30E5, - 7005: 0x30E6, - 7006: 0x30E7, - 7007: 0x30E8, - 7008: 0x30E9, - 7009: 0x30EA, - 7010: 0x30EB, - 7011: 0x30EC, - 7012: 0x30ED, - 7013: 0x30EE, - 7014: 0x30EF, - 7015: 0x30F0, - 7016: 0x30F1, - 7017: 0x30F2, - 7018: 0x30F3, - 7019: 0x30F4, - 7020: 0x30F5, - 7021: 0x30F6, - 7126: 0x0391, - 7127: 0x0392, - 7128: 0x0393, - 7129: 0x0394, - 7130: 0x0395, - 7131: 0x0396, - 7132: 0x0397, - 7133: 0x0398, - 7134: 0x0399, - 7135: 0x039A, - 7136: 0x039B, - 7137: 0x039C, - 7138: 0x039D, - 7139: 0x039E, - 7140: 0x039F, - 7141: 0x03A0, - 7142: 0x03A1, - 7143: 0x03A3, - 7144: 0x03A4, - 7145: 0x03A5, - 7146: 0x03A6, - 7147: 0x03A7, - 7148: 0x03A8, - 7149: 0x03A9, - 7158: 0x03B1, - 7159: 0x03B2, - 7160: 0x03B3, - 7161: 0x03B4, - 7162: 0x03B5, - 7163: 0x03B6, - 7164: 0x03B7, - 7165: 0x03B8, - 7166: 0x03B9, - 7167: 0x03BA, - 7168: 0x03BB, - 7169: 0x03BC, - 7170: 0x03BD, - 7171: 0x03BE, - 7172: 0x03BF, - 7173: 0x03C0, - 7174: 0x03C1, - 7175: 0x03C3, - 7176: 0x03C4, - 7177: 0x03C5, - 7178: 0x03C6, - 7179: 0x03C7, - 7180: 0x03C8, - 7181: 0x03C9, - 7189: 0xFE35, - 7190: 0xFE36, - 7191: 0xFE39, - 7192: 0xFE3A, - 7193: 0xFE3F, - 7194: 0xFE40, - 7195: 0xFE3D, - 7196: 0xFE3E, - 7197: 0xFE41, - 7198: 0xFE42, - 7199: 0xFE43, - 7200: 0xFE44, - 7203: 0xFE3B, - 7204: 0xFE3C, - 7205: 0xFE37, - 7206: 0xFE38, - 7207: 0xFE31, - 7209: 0xFE33, - 7210: 0xFE34, - 7316: 0x0410, - 7317: 0x0411, - 7318: 0x0412, - 7319: 0x0413, - 7320: 0x0414, - 7321: 0x0415, - 7322: 0x0401, - 7323: 0x0416, - 7324: 0x0417, - 7325: 0x0418, - 7326: 0x0419, - 7327: 0x041A, - 7328: 0x041B, - 7329: 0x041C, - 7330: 0x041D, - 7331: 0x041E, - 7332: 0x041F, - 7333: 0x0420, - 7334: 0x0421, - 7335: 0x0422, - 7336: 0x0423, - 7337: 0x0424, - 7338: 0x0425, - 7339: 0x0426, - 7340: 0x0427, - 7341: 0x0428, - 7342: 0x0429, - 7343: 0x042A, - 7344: 0x042B, - 7345: 0x042C, - 7346: 0x042D, - 7347: 0x042E, - 7348: 0x042F, - 7364: 0x0430, - 7365: 0x0431, - 7366: 0x0432, - 7367: 0x0433, - 7368: 0x0434, - 7369: 0x0435, - 7370: 0x0451, - 7371: 0x0436, - 7372: 0x0437, - 7373: 0x0438, - 7374: 0x0439, - 7375: 0x043A, - 7376: 0x043B, - 7377: 0x043C, - 7378: 0x043D, - 7379: 0x043E, - 7380: 0x043F, - 7381: 0x0440, - 7382: 0x0441, - 7383: 0x0442, - 7384: 0x0443, - 7385: 0x0444, - 7386: 0x0445, - 7387: 0x0446, - 7388: 0x0447, - 7389: 0x0448, - 7390: 0x0449, - 7391: 0x044A, - 7392: 0x044B, - 7393: 0x044C, - 7394: 0x044D, - 7395: 0x044E, - 7396: 0x044F, - 7410: 0x02CA, - 7411: 0x02CB, - 7412: 0x02D9, - 7413: 0x2013, - 7414: 0x2015, - 7415: 0x2025, - 7416: 0x2035, - 7417: 0x2105, - 7418: 0x2109, - 7419: 0x2196, - 7420: 0x2197, - 7421: 0x2198, - 7422: 0x2199, - 7423: 0x2215, - 7424: 0x221F, - 7425: 0x2223, - 7426: 0x2252, - 7427: 0x2266, - 7428: 0x2267, - 7429: 0x22BF, - 7430: 0x2550, - 7431: 0x2551, - 7432: 0x2552, - 7433: 0x2553, - 7434: 0x2554, - 7435: 0x2555, - 7436: 0x2556, - 7437: 0x2557, - 7438: 0x2558, - 7439: 0x2559, - 7440: 0x255A, - 7441: 0x255B, - 7442: 0x255C, - 7443: 0x255D, - 7444: 0x255E, - 7445: 0x255F, - 7446: 0x2560, - 7447: 0x2561, - 7448: 0x2562, - 7449: 0x2563, - 7450: 0x2564, - 7451: 0x2565, - 7452: 0x2566, - 7453: 0x2567, - 7454: 0x2568, - 7455: 0x2569, - 7456: 0x256A, - 7457: 0x256B, - 7458: 0x256C, - 7459: 0x256D, - 7460: 0x256E, - 7461: 0x256F, - 7462: 0x2570, - 7463: 0x2571, - 7464: 0x2572, - 7465: 0x2573, - 7466: 0x2581, - 7467: 0x2582, - 7468: 0x2583, - 7469: 0x2584, - 7470: 0x2585, - 7471: 0x2586, - 7472: 0x2587, - 7473: 0x2588, - 7474: 0x2589, - 7475: 0x258A, - 7476: 0x258B, - 7477: 0x258C, - 7478: 0x258D, - 7479: 0x258E, - 7480: 0x258F, - 7481: 0x2593, - 7482: 0x2594, - 7483: 0x2595, - 7484: 0x25BC, - 7485: 0x25BD, - 7486: 0x25E2, - 7487: 0x25E3, - 7488: 0x25E4, - 7489: 0x25E5, - 7490: 0x2609, - 7491: 0x2295, - 7492: 0x3012, - 7493: 0x301D, - 7494: 0x301E, - 7506: 0x0101, - 7507: 0x00E1, - 7508: 0x01CE, - 7509: 0x00E0, - 7510: 0x0113, - 7511: 0x00E9, - 7512: 0x011B, - 7513: 0x00E8, - 7514: 0x012B, - 7515: 0x00ED, - 7516: 0x01D0, - 7517: 0x00EC, - 7518: 0x014D, - 7519: 0x00F3, - 7520: 0x01D2, - 7521: 0x00F2, - 7522: 0x016B, - 7523: 0x00FA, - 7524: 0x01D4, - 7525: 0x00F9, - 7526: 0x01D6, - 7527: 0x01D8, - 7528: 0x01DA, - 7529: 0x01DC, - 7530: 0x00FC, - 7531: 0x00EA, - 7532: 0x0251, - 7534: 0x0144, - 7535: 0x0148, - 7536: 0x01F9, - 7537: 0x0261, - 7542: 0x3105, - 7543: 0x3106, - 7544: 0x3107, - 7545: 0x3108, - 7546: 0x3109, - 7547: 0x310A, - 7548: 0x310B, - 7549: 0x310C, - 7550: 0x310D, - 7551: 0x310E, - 7552: 0x310F, - 7553: 0x3110, - 7554: 0x3111, - 7555: 0x3112, - 7556: 0x3113, - 7557: 0x3114, - 7558: 0x3115, - 7559: 0x3116, - 7560: 0x3117, - 7561: 0x3118, - 7562: 0x3119, - 7563: 0x311A, - 7564: 0x311B, - 7565: 0x311C, - 7566: 0x311D, - 7567: 0x311E, - 7568: 0x311F, - 7569: 0x3120, - 7570: 0x3121, - 7571: 0x3122, - 7572: 0x3123, - 7573: 0x3124, - 7574: 0x3125, - 7575: 0x3126, - 7576: 0x3127, - 7577: 0x3128, - 7578: 0x3129, - 7600: 0x3021, - 7601: 0x3022, - 7602: 0x3023, - 7603: 0x3024, - 7604: 0x3025, - 7605: 0x3026, - 7606: 0x3027, - 7607: 0x3028, - 7608: 0x3029, - 7609: 0x32A3, - 7610: 0x338E, - 7611: 0x338F, - 7612: 0x339C, - 7613: 0x339D, - 7614: 0x339E, - 7615: 0x33A1, - 7616: 0x33C4, - 7617: 0x33CE, - 7618: 0x33D1, - 7619: 0x33D2, - 7620: 0x33D5, - 7621: 0xFE30, - 7622: 0xFFE2, - 7623: 0xFFE4, - 7625: 0x2121, - 7626: 0x3231, - 7628: 0x2010, - 7632: 0x30FC, - 7633: 0x309B, - 7634: 0x309C, - 7635: 0x30FD, - 7636: 0x30FE, - 7637: 0x3006, - 7638: 0x309D, - 7639: 0x309E, - 7640: 0xFE49, - 7641: 0xFE4A, - 7642: 0xFE4B, - 7643: 0xFE4C, - 7644: 0xFE4D, - 7645: 0xFE4E, - 7646: 0xFE4F, - 7647: 0xFE50, - 7648: 0xFE51, - 7649: 0xFE52, - 7650: 0xFE54, - 7651: 0xFE55, - 7652: 0xFE56, - 7653: 0xFE57, - 7654: 0xFE59, - 7655: 0xFE5A, - 7656: 0xFE5B, - 7657: 0xFE5C, - 7658: 0xFE5D, - 7659: 0xFE5E, - 7660: 0xFE5F, - 7661: 0xFE60, - 7662: 0xFE61, - 7663: 0xFE62, - 7664: 0xFE63, - 7665: 0xFE64, - 7666: 0xFE65, - 7667: 0xFE66, - 7668: 0xFE68, - 7669: 0xFE69, - 7670: 0xFE6A, - 7671: 0xFE6B, - 7672: 0x303E, - 7673: 0x2FF0, - 7674: 0x2FF1, - 7675: 0x2FF2, - 7676: 0x2FF3, - 7677: 0x2FF4, - 7678: 0x2FF5, - 7679: 0x2FF6, - 7680: 0x2FF7, - 7681: 0x2FF8, - 7682: 0x2FF9, - 7683: 0x2FFA, - 7684: 0x2FFB, - 7685: 0x3007, - 7699: 0x2500, - 7700: 0x2501, - 7701: 0x2502, - 7702: 0x2503, - 7703: 0x2504, - 7704: 0x2505, - 7705: 0x2506, - 7706: 0x2507, - 7707: 0x2508, - 7708: 0x2509, - 7709: 0x250A, - 7710: 0x250B, - 7711: 0x250C, - 7712: 0x250D, - 7713: 0x250E, - 7714: 0x250F, - 7715: 0x2510, - 7716: 0x2511, - 7717: 0x2512, - 7718: 0x2513, - 7719: 0x2514, - 7720: 0x2515, - 7721: 0x2516, - 7722: 0x2517, - 7723: 0x2518, - 7724: 0x2519, - 7725: 0x251A, - 7726: 0x251B, - 7727: 0x251C, - 7728: 0x251D, - 7729: 0x251E, - 7730: 0x251F, - 7731: 0x2520, - 7732: 0x2521, - 7733: 0x2522, - 7734: 0x2523, - 7735: 0x2524, - 7736: 0x2525, - 7737: 0x2526, - 7738: 0x2527, - 7739: 0x2528, - 7740: 0x2529, - 7741: 0x252A, - 7742: 0x252B, - 7743: 0x252C, - 7744: 0x252D, - 7745: 0x252E, - 7746: 0x252F, - 7747: 0x2530, - 7748: 0x2531, - 7749: 0x2532, - 7750: 0x2533, - 7751: 0x2534, - 7752: 0x2535, - 7753: 0x2536, - 7754: 0x2537, - 7755: 0x2538, - 7756: 0x2539, - 7757: 0x253A, - 7758: 0x253B, - 7759: 0x253C, - 7760: 0x253D, - 7761: 0x253E, - 7762: 0x253F, - 7763: 0x2540, - 7764: 0x2541, - 7765: 0x2542, - 7766: 0x2543, - 7767: 0x2544, - 7768: 0x2545, - 7769: 0x2546, - 7770: 0x2547, - 7771: 0x2548, - 7772: 0x2549, - 7773: 0x254A, - 7774: 0x254B, - 7790: 0x72DC, - 7791: 0x72DD, - 7792: 0x72DF, - 7793: 0x72E2, - 7794: 0x72E3, - 7795: 0x72E4, - 7796: 0x72E5, - 7797: 0x72E6, - 7798: 0x72E7, - 7799: 0x72EA, - 7800: 0x72EB, - 7801: 0x72F5, - 7802: 0x72F6, - 7803: 0x72F9, - 7804: 0x72FD, - 7805: 0x72FE, - 7806: 0x72FF, - 7807: 0x7300, - 7808: 0x7302, - 7809: 0x7304, - 7810: 0x7305, - 7811: 0x7306, - 7812: 0x7307, - 7813: 0x7308, - 7814: 0x7309, - 7815: 0x730B, - 7816: 0x730C, - 7817: 0x730D, - 7818: 0x730F, - 7819: 0x7310, - 7820: 0x7311, - 7821: 0x7312, - 7822: 0x7314, - 7823: 0x7318, - 7824: 0x7319, - 7825: 0x731A, - 7826: 0x731F, - 7827: 0x7320, - 7828: 0x7323, - 7829: 0x7324, - 7830: 0x7326, - 7831: 0x7327, - 7832: 0x7328, - 7833: 0x732D, - 7834: 0x732F, - 7835: 0x7330, - 7836: 0x7332, - 7837: 0x7333, - 7838: 0x7335, - 7839: 0x7336, - 7840: 0x733A, - 7841: 0x733B, - 7842: 0x733C, - 7843: 0x733D, - 7844: 0x7340, - 7845: 0x7341, - 7846: 0x7342, - 7847: 0x7343, - 7848: 0x7344, - 7849: 0x7345, - 7850: 0x7346, - 7851: 0x7347, - 7852: 0x7348, - 7853: 0x7349, - 7854: 0x734A, - 7855: 0x734B, - 7856: 0x734C, - 7857: 0x734E, - 7858: 0x734F, - 7859: 0x7351, - 7860: 0x7353, - 7861: 0x7354, - 7862: 0x7355, - 7863: 0x7356, - 7864: 0x7358, - 7865: 0x7359, - 7866: 0x735A, - 7867: 0x735B, - 7868: 0x735C, - 7869: 0x735D, - 7870: 0x735E, - 7871: 0x735F, - 7872: 0x7361, - 7873: 0x7362, - 7874: 0x7363, - 7875: 0x7364, - 7876: 0x7365, - 7877: 0x7366, - 7878: 0x7367, - 7879: 0x7368, - 7880: 0x7369, - 7881: 0x736A, - 7882: 0x736B, - 7883: 0x736E, - 7884: 0x7370, - 7885: 0x7371, - 7980: 0x7372, - 7981: 0x7373, - 7982: 0x7374, - 7983: 0x7375, - 7984: 0x7376, - 7985: 0x7377, - 7986: 0x7378, - 7987: 0x7379, - 7988: 0x737A, - 7989: 0x737B, - 7990: 0x737C, - 7991: 0x737D, - 7992: 0x737F, - 7993: 0x7380, - 7994: 0x7381, - 7995: 0x7382, - 7996: 0x7383, - 7997: 0x7385, - 7998: 0x7386, - 7999: 0x7388, - 8000: 0x738A, - 8001: 0x738C, - 8002: 0x738D, - 8003: 0x738F, - 8004: 0x7390, - 8005: 0x7392, - 8006: 0x7393, - 8007: 0x7394, - 8008: 0x7395, - 8009: 0x7397, - 8010: 0x7398, - 8011: 0x7399, - 8012: 0x739A, - 8013: 0x739C, - 8014: 0x739D, - 8015: 0x739E, - 8016: 0x73A0, - 8017: 0x73A1, - 8018: 0x73A3, - 8019: 0x73A4, - 8020: 0x73A5, - 8021: 0x73A6, - 8022: 0x73A7, - 8023: 0x73A8, - 8024: 0x73AA, - 8025: 0x73AC, - 8026: 0x73AD, - 8027: 0x73B1, - 8028: 0x73B4, - 8029: 0x73B5, - 8030: 0x73B6, - 8031: 0x73B8, - 8032: 0x73B9, - 8033: 0x73BC, - 8034: 0x73BD, - 8035: 0x73BE, - 8036: 0x73BF, - 8037: 0x73C1, - 8038: 0x73C3, - 8039: 0x73C4, - 8040: 0x73C5, - 8041: 0x73C6, - 8042: 0x73C7, - 8043: 0x73CB, - 8044: 0x73CC, - 8045: 0x73CE, - 8046: 0x73D2, - 8047: 0x73D3, - 8048: 0x73D4, - 8049: 0x73D5, - 8050: 0x73D6, - 8051: 0x73D7, - 8052: 0x73D8, - 8053: 0x73DA, - 8054: 0x73DB, - 8055: 0x73DC, - 8056: 0x73DD, - 8057: 0x73DF, - 8058: 0x73E1, - 8059: 0x73E2, - 8060: 0x73E3, - 8061: 0x73E4, - 8062: 0x73E6, - 8063: 0x73E8, - 8064: 0x73EA, - 8065: 0x73EB, - 8066: 0x73EC, - 8067: 0x73EE, - 8068: 0x73EF, - 8069: 0x73F0, - 8070: 0x73F1, - 8071: 0x73F3, - 8072: 0x73F4, - 8073: 0x73F5, - 8074: 0x73F6, - 8075: 0x73F7, - 8170: 0x73F8, - 8171: 0x73F9, - 8172: 0x73FA, - 8173: 0x73FB, - 8174: 0x73FC, - 8175: 0x73FD, - 8176: 0x73FE, - 8177: 0x73FF, - 8178: 0x7400, - 8179: 0x7401, - 8180: 0x7402, - 8181: 0x7404, - 8182: 0x7407, - 8183: 0x7408, - 8184: 0x740B, - 8185: 0x740C, - 8186: 0x740D, - 8187: 0x740E, - 8188: 0x7411, - 8189: 0x7412, - 8190: 0x7413, - 8191: 0x7414, - 8192: 0x7415, - 8193: 0x7416, - 8194: 0x7417, - 8195: 0x7418, - 8196: 0x7419, - 8197: 0x741C, - 8198: 0x741D, - 8199: 0x741E, - 8200: 0x741F, - 8201: 0x7420, - 8202: 0x7421, - 8203: 0x7423, - 8204: 0x7424, - 8205: 0x7427, - 8206: 0x7429, - 8207: 0x742B, - 8208: 0x742D, - 8209: 0x742F, - 8210: 0x7431, - 8211: 0x7432, - 8212: 0x7437, - 8213: 0x7438, - 8214: 0x7439, - 8215: 0x743A, - 8216: 0x743B, - 8217: 0x743D, - 8218: 0x743E, - 8219: 0x743F, - 8220: 0x7440, - 8221: 0x7442, - 8222: 0x7443, - 8223: 0x7444, - 8224: 0x7445, - 8225: 0x7446, - 8226: 0x7447, - 8227: 0x7448, - 8228: 0x7449, - 8229: 0x744A, - 8230: 0x744B, - 8231: 0x744C, - 8232: 0x744D, - 8233: 0x744E, - 8234: 0x744F, - 8235: 0x7450, - 8236: 0x7451, - 8237: 0x7452, - 8238: 0x7453, - 8239: 0x7454, - 8240: 0x7456, - 8241: 0x7458, - 8242: 0x745D, - 8243: 0x7460, - 8244: 0x7461, - 8245: 0x7462, - 8246: 0x7463, - 8247: 0x7464, - 8248: 0x7465, - 8249: 0x7466, - 8250: 0x7467, - 8251: 0x7468, - 8252: 0x7469, - 8253: 0x746A, - 8254: 0x746B, - 8255: 0x746C, - 8256: 0x746E, - 8257: 0x746F, - 8258: 0x7471, - 8259: 0x7472, - 8260: 0x7473, - 8261: 0x7474, - 8262: 0x7475, - 8263: 0x7478, - 8264: 0x7479, - 8265: 0x747A, - 8360: 0x747B, - 8361: 0x747C, - 8362: 0x747D, - 8363: 0x747F, - 8364: 0x7482, - 8365: 0x7484, - 8366: 0x7485, - 8367: 0x7486, - 8368: 0x7488, - 8369: 0x7489, - 8370: 0x748A, - 8371: 0x748C, - 8372: 0x748D, - 8373: 0x748F, - 8374: 0x7491, - 8375: 0x7492, - 8376: 0x7493, - 8377: 0x7494, - 8378: 0x7495, - 8379: 0x7496, - 8380: 0x7497, - 8381: 0x7498, - 8382: 0x7499, - 8383: 0x749A, - 8384: 0x749B, - 8385: 0x749D, - 8386: 0x749F, - 8387: 0x74A0, - 8388: 0x74A1, - 8389: 0x74A2, - 8390: 0x74A3, - 8391: 0x74A4, - 8392: 0x74A5, - 8393: 0x74A6, - 8394: 0x74AA, - 8395: 0x74AB, - 8396: 0x74AC, - 8397: 0x74AD, - 8398: 0x74AE, - 8399: 0x74AF, - 8400: 0x74B0, - 8401: 0x74B1, - 8402: 0x74B2, - 8403: 0x74B3, - 8404: 0x74B4, - 8405: 0x74B5, - 8406: 0x74B6, - 8407: 0x74B7, - 8408: 0x74B8, - 8409: 0x74B9, - 8410: 0x74BB, - 8411: 0x74BC, - 8412: 0x74BD, - 8413: 0x74BE, - 8414: 0x74BF, - 8415: 0x74C0, - 8416: 0x74C1, - 8417: 0x74C2, - 8418: 0x74C3, - 8419: 0x74C4, - 8420: 0x74C5, - 8421: 0x74C6, - 8422: 0x74C7, - 8423: 0x74C8, - 8424: 0x74C9, - 8425: 0x74CA, - 8426: 0x74CB, - 8427: 0x74CC, - 8428: 0x74CD, - 8429: 0x74CE, - 8430: 0x74CF, - 8431: 0x74D0, - 8432: 0x74D1, - 8433: 0x74D3, - 8434: 0x74D4, - 8435: 0x74D5, - 8436: 0x74D6, - 8437: 0x74D7, - 8438: 0x74D8, - 8439: 0x74D9, - 8440: 0x74DA, - 8441: 0x74DB, - 8442: 0x74DD, - 8443: 0x74DF, - 8444: 0x74E1, - 8445: 0x74E5, - 8446: 0x74E7, - 8447: 0x74E8, - 8448: 0x74E9, - 8449: 0x74EA, - 8450: 0x74EB, - 8451: 0x74EC, - 8452: 0x74ED, - 8453: 0x74F0, - 8454: 0x74F1, - 8455: 0x74F2, - 8550: 0x74F3, - 8551: 0x74F5, - 8552: 0x74F8, - 8553: 0x74F9, - 8554: 0x74FA, - 8555: 0x74FB, - 8556: 0x74FC, - 8557: 0x74FD, - 8558: 0x74FE, - 8559: 0x7500, - 8560: 0x7501, - 8561: 0x7502, - 8562: 0x7503, - 8563: 0x7505, - 8564: 0x7506, - 8565: 0x7507, - 8566: 0x7508, - 8567: 0x7509, - 8568: 0x750A, - 8569: 0x750B, - 8570: 0x750C, - 8571: 0x750E, - 8572: 0x7510, - 8573: 0x7512, - 8574: 0x7514, - 8575: 0x7515, - 8576: 0x7516, - 8577: 0x7517, - 8578: 0x751B, - 8579: 0x751D, - 8580: 0x751E, - 8581: 0x7520, - 8582: 0x7521, - 8583: 0x7522, - 8584: 0x7523, - 8585: 0x7524, - 8586: 0x7526, - 8587: 0x7527, - 8588: 0x752A, - 8589: 0x752E, - 8590: 0x7534, - 8591: 0x7536, - 8592: 0x7539, - 8593: 0x753C, - 8594: 0x753D, - 8595: 0x753F, - 8596: 0x7541, - 8597: 0x7542, - 8598: 0x7543, - 8599: 0x7544, - 8600: 0x7546, - 8601: 0x7547, - 8602: 0x7549, - 8603: 0x754A, - 8604: 0x754D, - 8605: 0x7550, - 8606: 0x7551, - 8607: 0x7552, - 8608: 0x7553, - 8609: 0x7555, - 8610: 0x7556, - 8611: 0x7557, - 8612: 0x7558, - 8613: 0x755D, - 8614: 0x755E, - 8615: 0x755F, - 8616: 0x7560, - 8617: 0x7561, - 8618: 0x7562, - 8619: 0x7563, - 8620: 0x7564, - 8621: 0x7567, - 8622: 0x7568, - 8623: 0x7569, - 8624: 0x756B, - 8625: 0x756C, - 8626: 0x756D, - 8627: 0x756E, - 8628: 0x756F, - 8629: 0x7570, - 8630: 0x7571, - 8631: 0x7573, - 8632: 0x7575, - 8633: 0x7576, - 8634: 0x7577, - 8635: 0x757A, - 8636: 0x757B, - 8637: 0x757C, - 8638: 0x757D, - 8639: 0x757E, - 8640: 0x7580, - 8641: 0x7581, - 8642: 0x7582, - 8643: 0x7584, - 8644: 0x7585, - 8645: 0x7587, - 8740: 0x7588, - 8741: 0x7589, - 8742: 0x758A, - 8743: 0x758C, - 8744: 0x758D, - 8745: 0x758E, - 8746: 0x7590, - 8747: 0x7593, - 8748: 0x7595, - 8749: 0x7598, - 8750: 0x759B, - 8751: 0x759C, - 8752: 0x759E, - 8753: 0x75A2, - 8754: 0x75A6, - 8755: 0x75A7, - 8756: 0x75A8, - 8757: 0x75A9, - 8758: 0x75AA, - 8759: 0x75AD, - 8760: 0x75B6, - 8761: 0x75B7, - 8762: 0x75BA, - 8763: 0x75BB, - 8764: 0x75BF, - 8765: 0x75C0, - 8766: 0x75C1, - 8767: 0x75C6, - 8768: 0x75CB, - 8769: 0x75CC, - 8770: 0x75CE, - 8771: 0x75CF, - 8772: 0x75D0, - 8773: 0x75D1, - 8774: 0x75D3, - 8775: 0x75D7, - 8776: 0x75D9, - 8777: 0x75DA, - 8778: 0x75DC, - 8779: 0x75DD, - 8780: 0x75DF, - 8781: 0x75E0, - 8782: 0x75E1, - 8783: 0x75E5, - 8784: 0x75E9, - 8785: 0x75EC, - 8786: 0x75ED, - 8787: 0x75EE, - 8788: 0x75EF, - 8789: 0x75F2, - 8790: 0x75F3, - 8791: 0x75F5, - 8792: 0x75F6, - 8793: 0x75F7, - 8794: 0x75F8, - 8795: 0x75FA, - 8796: 0x75FB, - 8797: 0x75FD, - 8798: 0x75FE, - 8799: 0x7602, - 8800: 0x7604, - 8801: 0x7606, - 8802: 0x7607, - 8803: 0x7608, - 8804: 0x7609, - 8805: 0x760B, - 8806: 0x760D, - 8807: 0x760E, - 8808: 0x760F, - 8809: 0x7611, - 8810: 0x7612, - 8811: 0x7613, - 8812: 0x7614, - 8813: 0x7616, - 8814: 0x761A, - 8815: 0x761C, - 8816: 0x761D, - 8817: 0x761E, - 8818: 0x7621, - 8819: 0x7623, - 8820: 0x7627, - 8821: 0x7628, - 8822: 0x762C, - 8823: 0x762E, - 8824: 0x762F, - 8825: 0x7631, - 8826: 0x7632, - 8827: 0x7636, - 8828: 0x7637, - 8829: 0x7639, - 8830: 0x763A, - 8831: 0x763B, - 8832: 0x763D, - 8833: 0x7641, - 8834: 0x7642, - 8835: 0x7644, - 8930: 0x7645, - 8931: 0x7646, - 8932: 0x7647, - 8933: 0x7648, - 8934: 0x7649, - 8935: 0x764A, - 8936: 0x764B, - 8937: 0x764E, - 8938: 0x764F, - 8939: 0x7650, - 8940: 0x7651, - 8941: 0x7652, - 8942: 0x7653, - 8943: 0x7655, - 8944: 0x7657, - 8945: 0x7658, - 8946: 0x7659, - 8947: 0x765A, - 8948: 0x765B, - 8949: 0x765D, - 8950: 0x765F, - 8951: 0x7660, - 8952: 0x7661, - 8953: 0x7662, - 8954: 0x7664, - 8955: 0x7665, - 8956: 0x7666, - 8957: 0x7667, - 8958: 0x7668, - 8959: 0x7669, - 8960: 0x766A, - 8961: 0x766C, - 8962: 0x766D, - 8963: 0x766E, - 8964: 0x7670, - 8965: 0x7671, - 8966: 0x7672, - 8967: 0x7673, - 8968: 0x7674, - 8969: 0x7675, - 8970: 0x7676, - 8971: 0x7677, - 8972: 0x7679, - 8973: 0x767A, - 8974: 0x767C, - 8975: 0x767F, - 8976: 0x7680, - 8977: 0x7681, - 8978: 0x7683, - 8979: 0x7685, - 8980: 0x7689, - 8981: 0x768A, - 8982: 0x768C, - 8983: 0x768D, - 8984: 0x768F, - 8985: 0x7690, - 8986: 0x7692, - 8987: 0x7694, - 8988: 0x7695, - 8989: 0x7697, - 8990: 0x7698, - 8991: 0x769A, - 8992: 0x769B, - 8993: 0x769C, - 8994: 0x769D, - 8995: 0x769E, - 8996: 0x769F, - 8997: 0x76A0, - 8998: 0x76A1, - 8999: 0x76A2, - 9000: 0x76A3, - 9001: 0x76A5, - 9002: 0x76A6, - 9003: 0x76A7, - 9004: 0x76A8, - 9005: 0x76A9, - 9006: 0x76AA, - 9007: 0x76AB, - 9008: 0x76AC, - 9009: 0x76AD, - 9010: 0x76AF, - 9011: 0x76B0, - 9012: 0x76B3, - 9013: 0x76B5, - 9014: 0x76B6, - 9015: 0x76B7, - 9016: 0x76B8, - 9017: 0x76B9, - 9018: 0x76BA, - 9019: 0x76BB, - 9020: 0x76BC, - 9021: 0x76BD, - 9022: 0x76BE, - 9023: 0x76C0, - 9024: 0x76C1, - 9025: 0x76C3, - 9026: 0x554A, - 9027: 0x963F, - 9028: 0x57C3, - 9029: 0x6328, - 9030: 0x54CE, - 9031: 0x5509, - 9032: 0x54C0, - 9033: 0x7691, - 9034: 0x764C, - 9035: 0x853C, - 9036: 0x77EE, - 9037: 0x827E, - 9038: 0x788D, - 9039: 0x7231, - 9040: 0x9698, - 9041: 0x978D, - 9042: 0x6C28, - 9043: 0x5B89, - 9044: 0x4FFA, - 9045: 0x6309, - 9046: 0x6697, - 9047: 0x5CB8, - 9048: 0x80FA, - 9049: 0x6848, - 9050: 0x80AE, - 9051: 0x6602, - 9052: 0x76CE, - 9053: 0x51F9, - 9054: 0x6556, - 9055: 0x71AC, - 9056: 0x7FF1, - 9057: 0x8884, - 9058: 0x50B2, - 9059: 0x5965, - 9060: 0x61CA, - 9061: 0x6FB3, - 9062: 0x82AD, - 9063: 0x634C, - 9064: 0x6252, - 9065: 0x53ED, - 9066: 0x5427, - 9067: 0x7B06, - 9068: 0x516B, - 9069: 0x75A4, - 9070: 0x5DF4, - 9071: 0x62D4, - 9072: 0x8DCB, - 9073: 0x9776, - 9074: 0x628A, - 9075: 0x8019, - 9076: 0x575D, - 9077: 0x9738, - 9078: 0x7F62, - 9079: 0x7238, - 9080: 0x767D, - 9081: 0x67CF, - 9082: 0x767E, - 9083: 0x6446, - 9084: 0x4F70, - 9085: 0x8D25, - 9086: 0x62DC, - 9087: 0x7A17, - 9088: 0x6591, - 9089: 0x73ED, - 9090: 0x642C, - 9091: 0x6273, - 9092: 0x822C, - 9093: 0x9881, - 9094: 0x677F, - 9095: 0x7248, - 9096: 0x626E, - 9097: 0x62CC, - 9098: 0x4F34, - 9099: 0x74E3, - 9100: 0x534A, - 9101: 0x529E, - 9102: 0x7ECA, - 9103: 0x90A6, - 9104: 0x5E2E, - 9105: 0x6886, - 9106: 0x699C, - 9107: 0x8180, - 9108: 0x7ED1, - 9109: 0x68D2, - 9110: 0x78C5, - 9111: 0x868C, - 9112: 0x9551, - 9113: 0x508D, - 9114: 0x8C24, - 9115: 0x82DE, - 9116: 0x80DE, - 9117: 0x5305, - 9118: 0x8912, - 9119: 0x5265, - 9120: 0x76C4, - 9121: 0x76C7, - 9122: 0x76C9, - 9123: 0x76CB, - 9124: 0x76CC, - 9125: 0x76D3, - 9126: 0x76D5, - 9127: 0x76D9, - 9128: 0x76DA, - 9129: 0x76DC, - 9130: 0x76DD, - 9131: 0x76DE, - 9132: 0x76E0, - 9133: 0x76E1, - 9134: 0x76E2, - 9135: 0x76E3, - 9136: 0x76E4, - 9137: 0x76E6, - 9138: 0x76E7, - 9139: 0x76E8, - 9140: 0x76E9, - 9141: 0x76EA, - 9142: 0x76EB, - 9143: 0x76EC, - 9144: 0x76ED, - 9145: 0x76F0, - 9146: 0x76F3, - 9147: 0x76F5, - 9148: 0x76F6, - 9149: 0x76F7, - 9150: 0x76FA, - 9151: 0x76FB, - 9152: 0x76FD, - 9153: 0x76FF, - 9154: 0x7700, - 9155: 0x7702, - 9156: 0x7703, - 9157: 0x7705, - 9158: 0x7706, - 9159: 0x770A, - 9160: 0x770C, - 9161: 0x770E, - 9162: 0x770F, - 9163: 0x7710, - 9164: 0x7711, - 9165: 0x7712, - 9166: 0x7713, - 9167: 0x7714, - 9168: 0x7715, - 9169: 0x7716, - 9170: 0x7717, - 9171: 0x7718, - 9172: 0x771B, - 9173: 0x771C, - 9174: 0x771D, - 9175: 0x771E, - 9176: 0x7721, - 9177: 0x7723, - 9178: 0x7724, - 9179: 0x7725, - 9180: 0x7727, - 9181: 0x772A, - 9182: 0x772B, - 9183: 0x772C, - 9184: 0x772E, - 9185: 0x7730, - 9186: 0x7731, - 9187: 0x7732, - 9188: 0x7733, - 9189: 0x7734, - 9190: 0x7739, - 9191: 0x773B, - 9192: 0x773D, - 9193: 0x773E, - 9194: 0x773F, - 9195: 0x7742, - 9196: 0x7744, - 9197: 0x7745, - 9198: 0x7746, - 9199: 0x7748, - 9200: 0x7749, - 9201: 0x774A, - 9202: 0x774B, - 9203: 0x774C, - 9204: 0x774D, - 9205: 0x774E, - 9206: 0x774F, - 9207: 0x7752, - 9208: 0x7753, - 9209: 0x7754, - 9210: 0x7755, - 9211: 0x7756, - 9212: 0x7757, - 9213: 0x7758, - 9214: 0x7759, - 9215: 0x775C, - 9216: 0x8584, - 9217: 0x96F9, - 9218: 0x4FDD, - 9219: 0x5821, - 9220: 0x9971, - 9221: 0x5B9D, - 9222: 0x62B1, - 9223: 0x62A5, - 9224: 0x66B4, - 9225: 0x8C79, - 9226: 0x9C8D, - 9227: 0x7206, - 9228: 0x676F, - 9229: 0x7891, - 9230: 0x60B2, - 9231: 0x5351, - 9232: 0x5317, - 9233: 0x8F88, - 9234: 0x80CC, - 9235: 0x8D1D, - 9236: 0x94A1, - 9237: 0x500D, - 9238: 0x72C8, - 9239: 0x5907, - 9240: 0x60EB, - 9241: 0x7119, - 9242: 0x88AB, - 9243: 0x5954, - 9244: 0x82EF, - 9245: 0x672C, - 9246: 0x7B28, - 9247: 0x5D29, - 9248: 0x7EF7, - 9249: 0x752D, - 9250: 0x6CF5, - 9251: 0x8E66, - 9252: 0x8FF8, - 9253: 0x903C, - 9254: 0x9F3B, - 9255: 0x6BD4, - 9256: 0x9119, - 9257: 0x7B14, - 9258: 0x5F7C, - 9259: 0x78A7, - 9260: 0x84D6, - 9261: 0x853D, - 9262: 0x6BD5, - 9263: 0x6BD9, - 9264: 0x6BD6, - 9265: 0x5E01, - 9266: 0x5E87, - 9267: 0x75F9, - 9268: 0x95ED, - 9269: 0x655D, - 9270: 0x5F0A, - 9271: 0x5FC5, - 9272: 0x8F9F, - 9273: 0x58C1, - 9274: 0x81C2, - 9275: 0x907F, - 9276: 0x965B, - 9277: 0x97AD, - 9278: 0x8FB9, - 9279: 0x7F16, - 9280: 0x8D2C, - 9281: 0x6241, - 9282: 0x4FBF, - 9283: 0x53D8, - 9284: 0x535E, - 9285: 0x8FA8, - 9286: 0x8FA9, - 9287: 0x8FAB, - 9288: 0x904D, - 9289: 0x6807, - 9290: 0x5F6A, - 9291: 0x8198, - 9292: 0x8868, - 9293: 0x9CD6, - 9294: 0x618B, - 9295: 0x522B, - 9296: 0x762A, - 9297: 0x5F6C, - 9298: 0x658C, - 9299: 0x6FD2, - 9300: 0x6EE8, - 9301: 0x5BBE, - 9302: 0x6448, - 9303: 0x5175, - 9304: 0x51B0, - 9305: 0x67C4, - 9306: 0x4E19, - 9307: 0x79C9, - 9308: 0x997C, - 9309: 0x70B3, - 9310: 0x775D, - 9311: 0x775E, - 9312: 0x775F, - 9313: 0x7760, - 9314: 0x7764, - 9315: 0x7767, - 9316: 0x7769, - 9317: 0x776A, - 9318: 0x776D, - 9319: 0x776E, - 9320: 0x776F, - 9321: 0x7770, - 9322: 0x7771, - 9323: 0x7772, - 9324: 0x7773, - 9325: 0x7774, - 9326: 0x7775, - 9327: 0x7776, - 9328: 0x7777, - 9329: 0x7778, - 9330: 0x777A, - 9331: 0x777B, - 9332: 0x777C, - 9333: 0x7781, - 9334: 0x7782, - 9335: 0x7783, - 9336: 0x7786, - 9337: 0x7787, - 9338: 0x7788, - 9339: 0x7789, - 9340: 0x778A, - 9341: 0x778B, - 9342: 0x778F, - 9343: 0x7790, - 9344: 0x7793, - 9345: 0x7794, - 9346: 0x7795, - 9347: 0x7796, - 9348: 0x7797, - 9349: 0x7798, - 9350: 0x7799, - 9351: 0x779A, - 9352: 0x779B, - 9353: 0x779C, - 9354: 0x779D, - 9355: 0x779E, - 9356: 0x77A1, - 9357: 0x77A3, - 9358: 0x77A4, - 9359: 0x77A6, - 9360: 0x77A8, - 9361: 0x77AB, - 9362: 0x77AD, - 9363: 0x77AE, - 9364: 0x77AF, - 9365: 0x77B1, - 9366: 0x77B2, - 9367: 0x77B4, - 9368: 0x77B6, - 9369: 0x77B7, - 9370: 0x77B8, - 9371: 0x77B9, - 9372: 0x77BA, - 9373: 0x77BC, - 9374: 0x77BE, - 9375: 0x77C0, - 9376: 0x77C1, - 9377: 0x77C2, - 9378: 0x77C3, - 9379: 0x77C4, - 9380: 0x77C5, - 9381: 0x77C6, - 9382: 0x77C7, - 9383: 0x77C8, - 9384: 0x77C9, - 9385: 0x77CA, - 9386: 0x77CB, - 9387: 0x77CC, - 9388: 0x77CE, - 9389: 0x77CF, - 9390: 0x77D0, - 9391: 0x77D1, - 9392: 0x77D2, - 9393: 0x77D3, - 9394: 0x77D4, - 9395: 0x77D5, - 9396: 0x77D6, - 9397: 0x77D8, - 9398: 0x77D9, - 9399: 0x77DA, - 9400: 0x77DD, - 9401: 0x77DE, - 9402: 0x77DF, - 9403: 0x77E0, - 9404: 0x77E1, - 9405: 0x77E4, - 9406: 0x75C5, - 9407: 0x5E76, - 9408: 0x73BB, - 9409: 0x83E0, - 9410: 0x64AD, - 9411: 0x62E8, - 9412: 0x94B5, - 9413: 0x6CE2, - 9414: 0x535A, - 9415: 0x52C3, - 9416: 0x640F, - 9417: 0x94C2, - 9418: 0x7B94, - 9419: 0x4F2F, - 9420: 0x5E1B, - 9421: 0x8236, - 9422: 0x8116, - 9423: 0x818A, - 9424: 0x6E24, - 9425: 0x6CCA, - 9426: 0x9A73, - 9427: 0x6355, - 9428: 0x535C, - 9429: 0x54FA, - 9430: 0x8865, - 9431: 0x57E0, - 9432: 0x4E0D, - 9433: 0x5E03, - 9434: 0x6B65, - 9435: 0x7C3F, - 9436: 0x90E8, - 9437: 0x6016, - 9438: 0x64E6, - 9439: 0x731C, - 9440: 0x88C1, - 9441: 0x6750, - 9442: 0x624D, - 9443: 0x8D22, - 9444: 0x776C, - 9445: 0x8E29, - 9446: 0x91C7, - 9447: 0x5F69, - 9448: 0x83DC, - 9449: 0x8521, - 9450: 0x9910, - 9451: 0x53C2, - 9452: 0x8695, - 9453: 0x6B8B, - 9454: 0x60ED, - 9455: 0x60E8, - 9456: 0x707F, - 9457: 0x82CD, - 9458: 0x8231, - 9459: 0x4ED3, - 9460: 0x6CA7, - 9461: 0x85CF, - 9462: 0x64CD, - 9463: 0x7CD9, - 9464: 0x69FD, - 9465: 0x66F9, - 9466: 0x8349, - 9467: 0x5395, - 9468: 0x7B56, - 9469: 0x4FA7, - 9470: 0x518C, - 9471: 0x6D4B, - 9472: 0x5C42, - 9473: 0x8E6D, - 9474: 0x63D2, - 9475: 0x53C9, - 9476: 0x832C, - 9477: 0x8336, - 9478: 0x67E5, - 9479: 0x78B4, - 9480: 0x643D, - 9481: 0x5BDF, - 9482: 0x5C94, - 9483: 0x5DEE, - 9484: 0x8BE7, - 9485: 0x62C6, - 9486: 0x67F4, - 9487: 0x8C7A, - 9488: 0x6400, - 9489: 0x63BA, - 9490: 0x8749, - 9491: 0x998B, - 9492: 0x8C17, - 9493: 0x7F20, - 9494: 0x94F2, - 9495: 0x4EA7, - 9496: 0x9610, - 9497: 0x98A4, - 9498: 0x660C, - 9499: 0x7316, - 9500: 0x77E6, - 9501: 0x77E8, - 9502: 0x77EA, - 9503: 0x77EF, - 9504: 0x77F0, - 9505: 0x77F1, - 9506: 0x77F2, - 9507: 0x77F4, - 9508: 0x77F5, - 9509: 0x77F7, - 9510: 0x77F9, - 9511: 0x77FA, - 9512: 0x77FB, - 9513: 0x77FC, - 9514: 0x7803, - 9515: 0x7804, - 9516: 0x7805, - 9517: 0x7806, - 9518: 0x7807, - 9519: 0x7808, - 9520: 0x780A, - 9521: 0x780B, - 9522: 0x780E, - 9523: 0x780F, - 9524: 0x7810, - 9525: 0x7813, - 9526: 0x7815, - 9527: 0x7819, - 9528: 0x781B, - 9529: 0x781E, - 9530: 0x7820, - 9531: 0x7821, - 9532: 0x7822, - 9533: 0x7824, - 9534: 0x7828, - 9535: 0x782A, - 9536: 0x782B, - 9537: 0x782E, - 9538: 0x782F, - 9539: 0x7831, - 9540: 0x7832, - 9541: 0x7833, - 9542: 0x7835, - 9543: 0x7836, - 9544: 0x783D, - 9545: 0x783F, - 9546: 0x7841, - 9547: 0x7842, - 9548: 0x7843, - 9549: 0x7844, - 9550: 0x7846, - 9551: 0x7848, - 9552: 0x7849, - 9553: 0x784A, - 9554: 0x784B, - 9555: 0x784D, - 9556: 0x784F, - 9557: 0x7851, - 9558: 0x7853, - 9559: 0x7854, - 9560: 0x7858, - 9561: 0x7859, - 9562: 0x785A, - 9563: 0x785B, - 9564: 0x785C, - 9565: 0x785E, - 9566: 0x785F, - 9567: 0x7860, - 9568: 0x7861, - 9569: 0x7862, - 9570: 0x7863, - 9571: 0x7864, - 9572: 0x7865, - 9573: 0x7866, - 9574: 0x7867, - 9575: 0x7868, - 9576: 0x7869, - 9577: 0x786F, - 9578: 0x7870, - 9579: 0x7871, - 9580: 0x7872, - 9581: 0x7873, - 9582: 0x7874, - 9583: 0x7875, - 9584: 0x7876, - 9585: 0x7878, - 9586: 0x7879, - 9587: 0x787A, - 9588: 0x787B, - 9589: 0x787D, - 9590: 0x787E, - 9591: 0x787F, - 9592: 0x7880, - 9593: 0x7881, - 9594: 0x7882, - 9595: 0x7883, - 9596: 0x573A, - 9597: 0x5C1D, - 9598: 0x5E38, - 9599: 0x957F, - 9600: 0x507F, - 9601: 0x80A0, - 9602: 0x5382, - 9603: 0x655E, - 9604: 0x7545, - 9605: 0x5531, - 9606: 0x5021, - 9607: 0x8D85, - 9608: 0x6284, - 9609: 0x949E, - 9610: 0x671D, - 9611: 0x5632, - 9612: 0x6F6E, - 9613: 0x5DE2, - 9614: 0x5435, - 9615: 0x7092, - 9616: 0x8F66, - 9617: 0x626F, - 9618: 0x64A4, - 9619: 0x63A3, - 9620: 0x5F7B, - 9621: 0x6F88, - 9622: 0x90F4, - 9623: 0x81E3, - 9624: 0x8FB0, - 9625: 0x5C18, - 9626: 0x6668, - 9627: 0x5FF1, - 9628: 0x6C89, - 9629: 0x9648, - 9630: 0x8D81, - 9631: 0x886C, - 9632: 0x6491, - 9633: 0x79F0, - 9634: 0x57CE, - 9635: 0x6A59, - 9636: 0x6210, - 9637: 0x5448, - 9638: 0x4E58, - 9639: 0x7A0B, - 9640: 0x60E9, - 9641: 0x6F84, - 9642: 0x8BDA, - 9643: 0x627F, - 9644: 0x901E, - 9645: 0x9A8B, - 9646: 0x79E4, - 9647: 0x5403, - 9648: 0x75F4, - 9649: 0x6301, - 9650: 0x5319, - 9651: 0x6C60, - 9652: 0x8FDF, - 9653: 0x5F1B, - 9654: 0x9A70, - 9655: 0x803B, - 9656: 0x9F7F, - 9657: 0x4F88, - 9658: 0x5C3A, - 9659: 0x8D64, - 9660: 0x7FC5, - 9661: 0x65A5, - 9662: 0x70BD, - 9663: 0x5145, - 9664: 0x51B2, - 9665: 0x866B, - 9666: 0x5D07, - 9667: 0x5BA0, - 9668: 0x62BD, - 9669: 0x916C, - 9670: 0x7574, - 9671: 0x8E0C, - 9672: 0x7A20, - 9673: 0x6101, - 9674: 0x7B79, - 9675: 0x4EC7, - 9676: 0x7EF8, - 9677: 0x7785, - 9678: 0x4E11, - 9679: 0x81ED, - 9680: 0x521D, - 9681: 0x51FA, - 9682: 0x6A71, - 9683: 0x53A8, - 9684: 0x8E87, - 9685: 0x9504, - 9686: 0x96CF, - 9687: 0x6EC1, - 9688: 0x9664, - 9689: 0x695A, - 9690: 0x7884, - 9691: 0x7885, - 9692: 0x7886, - 9693: 0x7888, - 9694: 0x788A, - 9695: 0x788B, - 9696: 0x788F, - 9697: 0x7890, - 9698: 0x7892, - 9699: 0x7894, - 9700: 0x7895, - 9701: 0x7896, - 9702: 0x7899, - 9703: 0x789D, - 9704: 0x789E, - 9705: 0x78A0, - 9706: 0x78A2, - 9707: 0x78A4, - 9708: 0x78A6, - 9709: 0x78A8, - 9710: 0x78A9, - 9711: 0x78AA, - 9712: 0x78AB, - 9713: 0x78AC, - 9714: 0x78AD, - 9715: 0x78AE, - 9716: 0x78AF, - 9717: 0x78B5, - 9718: 0x78B6, - 9719: 0x78B7, - 9720: 0x78B8, - 9721: 0x78BA, - 9722: 0x78BB, - 9723: 0x78BC, - 9724: 0x78BD, - 9725: 0x78BF, - 9726: 0x78C0, - 9727: 0x78C2, - 9728: 0x78C3, - 9729: 0x78C4, - 9730: 0x78C6, - 9731: 0x78C7, - 9732: 0x78C8, - 9733: 0x78CC, - 9734: 0x78CD, - 9735: 0x78CE, - 9736: 0x78CF, - 9737: 0x78D1, - 9738: 0x78D2, - 9739: 0x78D3, - 9740: 0x78D6, - 9741: 0x78D7, - 9742: 0x78D8, - 9743: 0x78DA, - 9744: 0x78DB, - 9745: 0x78DC, - 9746: 0x78DD, - 9747: 0x78DE, - 9748: 0x78DF, - 9749: 0x78E0, - 9750: 0x78E1, - 9751: 0x78E2, - 9752: 0x78E3, - 9753: 0x78E4, - 9754: 0x78E5, - 9755: 0x78E6, - 9756: 0x78E7, - 9757: 0x78E9, - 9758: 0x78EA, - 9759: 0x78EB, - 9760: 0x78ED, - 9761: 0x78EE, - 9762: 0x78EF, - 9763: 0x78F0, - 9764: 0x78F1, - 9765: 0x78F3, - 9766: 0x78F5, - 9767: 0x78F6, - 9768: 0x78F8, - 9769: 0x78F9, - 9770: 0x78FB, - 9771: 0x78FC, - 9772: 0x78FD, - 9773: 0x78FE, - 9774: 0x78FF, - 9775: 0x7900, - 9776: 0x7902, - 9777: 0x7903, - 9778: 0x7904, - 9779: 0x7906, - 9780: 0x7907, - 9781: 0x7908, - 9782: 0x7909, - 9783: 0x790A, - 9784: 0x790B, - 9785: 0x790C, - 9786: 0x7840, - 9787: 0x50A8, - 9788: 0x77D7, - 9789: 0x6410, - 9790: 0x89E6, - 9791: 0x5904, - 9792: 0x63E3, - 9793: 0x5DDD, - 9794: 0x7A7F, - 9795: 0x693D, - 9796: 0x4F20, - 9797: 0x8239, - 9798: 0x5598, - 9799: 0x4E32, - 9800: 0x75AE, - 9801: 0x7A97, - 9802: 0x5E62, - 9803: 0x5E8A, - 9804: 0x95EF, - 9805: 0x521B, - 9806: 0x5439, - 9807: 0x708A, - 9808: 0x6376, - 9809: 0x9524, - 9810: 0x5782, - 9811: 0x6625, - 9812: 0x693F, - 9813: 0x9187, - 9814: 0x5507, - 9815: 0x6DF3, - 9816: 0x7EAF, - 9817: 0x8822, - 9818: 0x6233, - 9819: 0x7EF0, - 9820: 0x75B5, - 9821: 0x8328, - 9822: 0x78C1, - 9823: 0x96CC, - 9824: 0x8F9E, - 9825: 0x6148, - 9826: 0x74F7, - 9827: 0x8BCD, - 9828: 0x6B64, - 9829: 0x523A, - 9830: 0x8D50, - 9831: 0x6B21, - 9832: 0x806A, - 9833: 0x8471, - 9834: 0x56F1, - 9835: 0x5306, - 9836: 0x4ECE, - 9837: 0x4E1B, - 9838: 0x51D1, - 9839: 0x7C97, - 9840: 0x918B, - 9841: 0x7C07, - 9842: 0x4FC3, - 9843: 0x8E7F, - 9844: 0x7BE1, - 9845: 0x7A9C, - 9846: 0x6467, - 9847: 0x5D14, - 9848: 0x50AC, - 9849: 0x8106, - 9850: 0x7601, - 9851: 0x7CB9, - 9852: 0x6DEC, - 9853: 0x7FE0, - 9854: 0x6751, - 9855: 0x5B58, - 9856: 0x5BF8, - 9857: 0x78CB, - 9858: 0x64AE, - 9859: 0x6413, - 9860: 0x63AA, - 9861: 0x632B, - 9862: 0x9519, - 9863: 0x642D, - 9864: 0x8FBE, - 9865: 0x7B54, - 9866: 0x7629, - 9867: 0x6253, - 9868: 0x5927, - 9869: 0x5446, - 9870: 0x6B79, - 9871: 0x50A3, - 9872: 0x6234, - 9873: 0x5E26, - 9874: 0x6B86, - 9875: 0x4EE3, - 9876: 0x8D37, - 9877: 0x888B, - 9878: 0x5F85, - 9879: 0x902E, - 9880: 0x790D, - 9881: 0x790E, - 9882: 0x790F, - 9883: 0x7910, - 9884: 0x7911, - 9885: 0x7912, - 9886: 0x7914, - 9887: 0x7915, - 9888: 0x7916, - 9889: 0x7917, - 9890: 0x7918, - 9891: 0x7919, - 9892: 0x791A, - 9893: 0x791B, - 9894: 0x791C, - 9895: 0x791D, - 9896: 0x791F, - 9897: 0x7920, - 9898: 0x7921, - 9899: 0x7922, - 9900: 0x7923, - 9901: 0x7925, - 9902: 0x7926, - 9903: 0x7927, - 9904: 0x7928, - 9905: 0x7929, - 9906: 0x792A, - 9907: 0x792B, - 9908: 0x792C, - 9909: 0x792D, - 9910: 0x792E, - 9911: 0x792F, - 9912: 0x7930, - 9913: 0x7931, - 9914: 0x7932, - 9915: 0x7933, - 9916: 0x7935, - 9917: 0x7936, - 9918: 0x7937, - 9919: 0x7938, - 9920: 0x7939, - 9921: 0x793D, - 9922: 0x793F, - 9923: 0x7942, - 9924: 0x7943, - 9925: 0x7944, - 9926: 0x7945, - 9927: 0x7947, - 9928: 0x794A, - 9929: 0x794B, - 9930: 0x794C, - 9931: 0x794D, - 9932: 0x794E, - 9933: 0x794F, - 9934: 0x7950, - 9935: 0x7951, - 9936: 0x7952, - 9937: 0x7954, - 9938: 0x7955, - 9939: 0x7958, - 9940: 0x7959, - 9941: 0x7961, - 9942: 0x7963, - 9943: 0x7964, - 9944: 0x7966, - 9945: 0x7969, - 9946: 0x796A, - 9947: 0x796B, - 9948: 0x796C, - 9949: 0x796E, - 9950: 0x7970, - 9951: 0x7971, - 9952: 0x7972, - 9953: 0x7973, - 9954: 0x7974, - 9955: 0x7975, - 9956: 0x7976, - 9957: 0x7979, - 9958: 0x797B, - 9959: 0x797C, - 9960: 0x797D, - 9961: 0x797E, - 9962: 0x797F, - 9963: 0x7982, - 9964: 0x7983, - 9965: 0x7986, - 9966: 0x7987, - 9967: 0x7988, - 9968: 0x7989, - 9969: 0x798B, - 9970: 0x798C, - 9971: 0x798D, - 9972: 0x798E, - 9973: 0x7990, - 9974: 0x7991, - 9975: 0x7992, - 9976: 0x6020, - 9977: 0x803D, - 9978: 0x62C5, - 9979: 0x4E39, - 9980: 0x5355, - 9981: 0x90F8, - 9982: 0x63B8, - 9983: 0x80C6, - 9984: 0x65E6, - 9985: 0x6C2E, - 9986: 0x4F46, - 9987: 0x60EE, - 9988: 0x6DE1, - 9989: 0x8BDE, - 9990: 0x5F39, - 9991: 0x86CB, - 9992: 0x5F53, - 9993: 0x6321, - 9994: 0x515A, - 9995: 0x8361, - 9996: 0x6863, - 9997: 0x5200, - 9998: 0x6363, - 9999: 0x8E48, - 10000: 0x5012, - 10001: 0x5C9B, - 10002: 0x7977, - 10003: 0x5BFC, - 10004: 0x5230, - 10005: 0x7A3B, - 10006: 0x60BC, - 10007: 0x9053, - 10008: 0x76D7, - 10009: 0x5FB7, - 10010: 0x5F97, - 10011: 0x7684, - 10012: 0x8E6C, - 10013: 0x706F, - 10014: 0x767B, - 10015: 0x7B49, - 10016: 0x77AA, - 10017: 0x51F3, - 10018: 0x9093, - 10019: 0x5824, - 10020: 0x4F4E, - 10021: 0x6EF4, - 10022: 0x8FEA, - 10023: 0x654C, - 10024: 0x7B1B, - 10025: 0x72C4, - 10026: 0x6DA4, - 10027: 0x7FDF, - 10028: 0x5AE1, - 10029: 0x62B5, - 10030: 0x5E95, - 10031: 0x5730, - 10032: 0x8482, - 10033: 0x7B2C, - 10034: 0x5E1D, - 10035: 0x5F1F, - 10036: 0x9012, - 10037: 0x7F14, - 10038: 0x98A0, - 10039: 0x6382, - 10040: 0x6EC7, - 10041: 0x7898, - 10042: 0x70B9, - 10043: 0x5178, - 10044: 0x975B, - 10045: 0x57AB, - 10046: 0x7535, - 10047: 0x4F43, - 10048: 0x7538, - 10049: 0x5E97, - 10050: 0x60E6, - 10051: 0x5960, - 10052: 0x6DC0, - 10053: 0x6BBF, - 10054: 0x7889, - 10055: 0x53FC, - 10056: 0x96D5, - 10057: 0x51CB, - 10058: 0x5201, - 10059: 0x6389, - 10060: 0x540A, - 10061: 0x9493, - 10062: 0x8C03, - 10063: 0x8DCC, - 10064: 0x7239, - 10065: 0x789F, - 10066: 0x8776, - 10067: 0x8FED, - 10068: 0x8C0D, - 10069: 0x53E0, - 10070: 0x7993, - 10071: 0x7994, - 10072: 0x7995, - 10073: 0x7996, - 10074: 0x7997, - 10075: 0x7998, - 10076: 0x7999, - 10077: 0x799B, - 10078: 0x799C, - 10079: 0x799D, - 10080: 0x799E, - 10081: 0x799F, - 10082: 0x79A0, - 10083: 0x79A1, - 10084: 0x79A2, - 10085: 0x79A3, - 10086: 0x79A4, - 10087: 0x79A5, - 10088: 0x79A6, - 10089: 0x79A8, - 10090: 0x79A9, - 10091: 0x79AA, - 10092: 0x79AB, - 10093: 0x79AC, - 10094: 0x79AD, - 10095: 0x79AE, - 10096: 0x79AF, - 10097: 0x79B0, - 10098: 0x79B1, - 10099: 0x79B2, - 10100: 0x79B4, - 10101: 0x79B5, - 10102: 0x79B6, - 10103: 0x79B7, - 10104: 0x79B8, - 10105: 0x79BC, - 10106: 0x79BF, - 10107: 0x79C2, - 10108: 0x79C4, - 10109: 0x79C5, - 10110: 0x79C7, - 10111: 0x79C8, - 10112: 0x79CA, - 10113: 0x79CC, - 10114: 0x79CE, - 10115: 0x79CF, - 10116: 0x79D0, - 10117: 0x79D3, - 10118: 0x79D4, - 10119: 0x79D6, - 10120: 0x79D7, - 10121: 0x79D9, - 10122: 0x79DA, - 10123: 0x79DB, - 10124: 0x79DC, - 10125: 0x79DD, - 10126: 0x79DE, - 10127: 0x79E0, - 10128: 0x79E1, - 10129: 0x79E2, - 10130: 0x79E5, - 10131: 0x79E8, - 10132: 0x79EA, - 10133: 0x79EC, - 10134: 0x79EE, - 10135: 0x79F1, - 10136: 0x79F2, - 10137: 0x79F3, - 10138: 0x79F4, - 10139: 0x79F5, - 10140: 0x79F6, - 10141: 0x79F7, - 10142: 0x79F9, - 10143: 0x79FA, - 10144: 0x79FC, - 10145: 0x79FE, - 10146: 0x79FF, - 10147: 0x7A01, - 10148: 0x7A04, - 10149: 0x7A05, - 10150: 0x7A07, - 10151: 0x7A08, - 10152: 0x7A09, - 10153: 0x7A0A, - 10154: 0x7A0C, - 10155: 0x7A0F, - 10156: 0x7A10, - 10157: 0x7A11, - 10158: 0x7A12, - 10159: 0x7A13, - 10160: 0x7A15, - 10161: 0x7A16, - 10162: 0x7A18, - 10163: 0x7A19, - 10164: 0x7A1B, - 10165: 0x7A1C, - 10166: 0x4E01, - 10167: 0x76EF, - 10168: 0x53EE, - 10169: 0x9489, - 10170: 0x9876, - 10171: 0x9F0E, - 10172: 0x952D, - 10173: 0x5B9A, - 10174: 0x8BA2, - 10175: 0x4E22, - 10176: 0x4E1C, - 10177: 0x51AC, - 10178: 0x8463, - 10179: 0x61C2, - 10180: 0x52A8, - 10181: 0x680B, - 10182: 0x4F97, - 10183: 0x606B, - 10184: 0x51BB, - 10185: 0x6D1E, - 10186: 0x515C, - 10187: 0x6296, - 10188: 0x6597, - 10189: 0x9661, - 10190: 0x8C46, - 10191: 0x9017, - 10192: 0x75D8, - 10193: 0x90FD, - 10194: 0x7763, - 10195: 0x6BD2, - 10196: 0x728A, - 10197: 0x72EC, - 10198: 0x8BFB, - 10199: 0x5835, - 10200: 0x7779, - 10201: 0x8D4C, - 10202: 0x675C, - 10203: 0x9540, - 10204: 0x809A, - 10205: 0x5EA6, - 10206: 0x6E21, - 10207: 0x5992, - 10208: 0x7AEF, - 10209: 0x77ED, - 10210: 0x953B, - 10211: 0x6BB5, - 10212: 0x65AD, - 10213: 0x7F0E, - 10214: 0x5806, - 10215: 0x5151, - 10216: 0x961F, - 10217: 0x5BF9, - 10218: 0x58A9, - 10219: 0x5428, - 10220: 0x8E72, - 10221: 0x6566, - 10222: 0x987F, - 10223: 0x56E4, - 10224: 0x949D, - 10225: 0x76FE, - 10226: 0x9041, - 10227: 0x6387, - 10228: 0x54C6, - 10229: 0x591A, - 10230: 0x593A, - 10231: 0x579B, - 10232: 0x8EB2, - 10233: 0x6735, - 10234: 0x8DFA, - 10235: 0x8235, - 10236: 0x5241, - 10237: 0x60F0, - 10238: 0x5815, - 10239: 0x86FE, - 10240: 0x5CE8, - 10241: 0x9E45, - 10242: 0x4FC4, - 10243: 0x989D, - 10244: 0x8BB9, - 10245: 0x5A25, - 10246: 0x6076, - 10247: 0x5384, - 10248: 0x627C, - 10249: 0x904F, - 10250: 0x9102, - 10251: 0x997F, - 10252: 0x6069, - 10253: 0x800C, - 10254: 0x513F, - 10255: 0x8033, - 10256: 0x5C14, - 10257: 0x9975, - 10258: 0x6D31, - 10259: 0x4E8C, - 10260: 0x7A1D, - 10261: 0x7A1F, - 10262: 0x7A21, - 10263: 0x7A22, - 10264: 0x7A24, - 10265: 0x7A25, - 10266: 0x7A26, - 10267: 0x7A27, - 10268: 0x7A28, - 10269: 0x7A29, - 10270: 0x7A2A, - 10271: 0x7A2B, - 10272: 0x7A2C, - 10273: 0x7A2D, - 10274: 0x7A2E, - 10275: 0x7A2F, - 10276: 0x7A30, - 10277: 0x7A31, - 10278: 0x7A32, - 10279: 0x7A34, - 10280: 0x7A35, - 10281: 0x7A36, - 10282: 0x7A38, - 10283: 0x7A3A, - 10284: 0x7A3E, - 10285: 0x7A40, - 10286: 0x7A41, - 10287: 0x7A42, - 10288: 0x7A43, - 10289: 0x7A44, - 10290: 0x7A45, - 10291: 0x7A47, - 10292: 0x7A48, - 10293: 0x7A49, - 10294: 0x7A4A, - 10295: 0x7A4B, - 10296: 0x7A4C, - 10297: 0x7A4D, - 10298: 0x7A4E, - 10299: 0x7A4F, - 10300: 0x7A50, - 10301: 0x7A52, - 10302: 0x7A53, - 10303: 0x7A54, - 10304: 0x7A55, - 10305: 0x7A56, - 10306: 0x7A58, - 10307: 0x7A59, - 10308: 0x7A5A, - 10309: 0x7A5B, - 10310: 0x7A5C, - 10311: 0x7A5D, - 10312: 0x7A5E, - 10313: 0x7A5F, - 10314: 0x7A60, - 10315: 0x7A61, - 10316: 0x7A62, - 10317: 0x7A63, - 10318: 0x7A64, - 10319: 0x7A65, - 10320: 0x7A66, - 10321: 0x7A67, - 10322: 0x7A68, - 10323: 0x7A69, - 10324: 0x7A6A, - 10325: 0x7A6B, - 10326: 0x7A6C, - 10327: 0x7A6D, - 10328: 0x7A6E, - 10329: 0x7A6F, - 10330: 0x7A71, - 10331: 0x7A72, - 10332: 0x7A73, - 10333: 0x7A75, - 10334: 0x7A7B, - 10335: 0x7A7C, - 10336: 0x7A7D, - 10337: 0x7A7E, - 10338: 0x7A82, - 10339: 0x7A85, - 10340: 0x7A87, - 10341: 0x7A89, - 10342: 0x7A8A, - 10343: 0x7A8B, - 10344: 0x7A8C, - 10345: 0x7A8E, - 10346: 0x7A8F, - 10347: 0x7A90, - 10348: 0x7A93, - 10349: 0x7A94, - 10350: 0x7A99, - 10351: 0x7A9A, - 10352: 0x7A9B, - 10353: 0x7A9E, - 10354: 0x7AA1, - 10355: 0x7AA2, - 10356: 0x8D30, - 10357: 0x53D1, - 10358: 0x7F5A, - 10359: 0x7B4F, - 10360: 0x4F10, - 10361: 0x4E4F, - 10362: 0x9600, - 10363: 0x6CD5, - 10364: 0x73D0, - 10365: 0x85E9, - 10366: 0x5E06, - 10367: 0x756A, - 10368: 0x7FFB, - 10369: 0x6A0A, - 10370: 0x77FE, - 10371: 0x9492, - 10372: 0x7E41, - 10373: 0x51E1, - 10374: 0x70E6, - 10375: 0x53CD, - 10376: 0x8FD4, - 10377: 0x8303, - 10378: 0x8D29, - 10379: 0x72AF, - 10380: 0x996D, - 10381: 0x6CDB, - 10382: 0x574A, - 10383: 0x82B3, - 10384: 0x65B9, - 10385: 0x80AA, - 10386: 0x623F, - 10387: 0x9632, - 10388: 0x59A8, - 10389: 0x4EFF, - 10390: 0x8BBF, - 10391: 0x7EBA, - 10392: 0x653E, - 10393: 0x83F2, - 10394: 0x975E, - 10395: 0x5561, - 10396: 0x98DE, - 10397: 0x80A5, - 10398: 0x532A, - 10399: 0x8BFD, - 10400: 0x5420, - 10401: 0x80BA, - 10402: 0x5E9F, - 10403: 0x6CB8, - 10404: 0x8D39, - 10405: 0x82AC, - 10406: 0x915A, - 10407: 0x5429, - 10408: 0x6C1B, - 10409: 0x5206, - 10410: 0x7EB7, - 10411: 0x575F, - 10412: 0x711A, - 10413: 0x6C7E, - 10414: 0x7C89, - 10415: 0x594B, - 10416: 0x4EFD, - 10417: 0x5FFF, - 10418: 0x6124, - 10419: 0x7CAA, - 10420: 0x4E30, - 10421: 0x5C01, - 10422: 0x67AB, - 10423: 0x8702, - 10424: 0x5CF0, - 10425: 0x950B, - 10426: 0x98CE, - 10427: 0x75AF, - 10428: 0x70FD, - 10429: 0x9022, - 10430: 0x51AF, - 10431: 0x7F1D, - 10432: 0x8BBD, - 10433: 0x5949, - 10434: 0x51E4, - 10435: 0x4F5B, - 10436: 0x5426, - 10437: 0x592B, - 10438: 0x6577, - 10439: 0x80A4, - 10440: 0x5B75, - 10441: 0x6276, - 10442: 0x62C2, - 10443: 0x8F90, - 10444: 0x5E45, - 10445: 0x6C1F, - 10446: 0x7B26, - 10447: 0x4F0F, - 10448: 0x4FD8, - 10449: 0x670D, - 10450: 0x7AA3, - 10451: 0x7AA4, - 10452: 0x7AA7, - 10453: 0x7AA9, - 10454: 0x7AAA, - 10455: 0x7AAB, - 10456: 0x7AAE, - 10457: 0x7AAF, - 10458: 0x7AB0, - 10459: 0x7AB1, - 10460: 0x7AB2, - 10461: 0x7AB4, - 10462: 0x7AB5, - 10463: 0x7AB6, - 10464: 0x7AB7, - 10465: 0x7AB8, - 10466: 0x7AB9, - 10467: 0x7ABA, - 10468: 0x7ABB, - 10469: 0x7ABC, - 10470: 0x7ABD, - 10471: 0x7ABE, - 10472: 0x7AC0, - 10473: 0x7AC1, - 10474: 0x7AC2, - 10475: 0x7AC3, - 10476: 0x7AC4, - 10477: 0x7AC5, - 10478: 0x7AC6, - 10479: 0x7AC7, - 10480: 0x7AC8, - 10481: 0x7AC9, - 10482: 0x7ACA, - 10483: 0x7ACC, - 10484: 0x7ACD, - 10485: 0x7ACE, - 10486: 0x7ACF, - 10487: 0x7AD0, - 10488: 0x7AD1, - 10489: 0x7AD2, - 10490: 0x7AD3, - 10491: 0x7AD4, - 10492: 0x7AD5, - 10493: 0x7AD7, - 10494: 0x7AD8, - 10495: 0x7ADA, - 10496: 0x7ADB, - 10497: 0x7ADC, - 10498: 0x7ADD, - 10499: 0x7AE1, - 10500: 0x7AE2, - 10501: 0x7AE4, - 10502: 0x7AE7, - 10503: 0x7AE8, - 10504: 0x7AE9, - 10505: 0x7AEA, - 10506: 0x7AEB, - 10507: 0x7AEC, - 10508: 0x7AEE, - 10509: 0x7AF0, - 10510: 0x7AF1, - 10511: 0x7AF2, - 10512: 0x7AF3, - 10513: 0x7AF4, - 10514: 0x7AF5, - 10515: 0x7AF6, - 10516: 0x7AF7, - 10517: 0x7AF8, - 10518: 0x7AFB, - 10519: 0x7AFC, - 10520: 0x7AFE, - 10521: 0x7B00, - 10522: 0x7B01, - 10523: 0x7B02, - 10524: 0x7B05, - 10525: 0x7B07, - 10526: 0x7B09, - 10527: 0x7B0C, - 10528: 0x7B0D, - 10529: 0x7B0E, - 10530: 0x7B10, - 10531: 0x7B12, - 10532: 0x7B13, - 10533: 0x7B16, - 10534: 0x7B17, - 10535: 0x7B18, - 10536: 0x7B1A, - 10537: 0x7B1C, - 10538: 0x7B1D, - 10539: 0x7B1F, - 10540: 0x7B21, - 10541: 0x7B22, - 10542: 0x7B23, - 10543: 0x7B27, - 10544: 0x7B29, - 10545: 0x7B2D, - 10546: 0x6D6E, - 10547: 0x6DAA, - 10548: 0x798F, - 10549: 0x88B1, - 10550: 0x5F17, - 10551: 0x752B, - 10552: 0x629A, - 10553: 0x8F85, - 10554: 0x4FEF, - 10555: 0x91DC, - 10556: 0x65A7, - 10557: 0x812F, - 10558: 0x8151, - 10559: 0x5E9C, - 10560: 0x8150, - 10561: 0x8D74, - 10562: 0x526F, - 10563: 0x8986, - 10564: 0x8D4B, - 10565: 0x590D, - 10566: 0x5085, - 10567: 0x4ED8, - 10568: 0x961C, - 10569: 0x7236, - 10570: 0x8179, - 10571: 0x8D1F, - 10572: 0x5BCC, - 10573: 0x8BA3, - 10574: 0x9644, - 10575: 0x5987, - 10576: 0x7F1A, - 10577: 0x5490, - 10578: 0x5676, - 10579: 0x560E, - 10580: 0x8BE5, - 10581: 0x6539, - 10582: 0x6982, - 10583: 0x9499, - 10584: 0x76D6, - 10585: 0x6E89, - 10586: 0x5E72, - 10587: 0x7518, - 10588: 0x6746, - 10589: 0x67D1, - 10590: 0x7AFF, - 10591: 0x809D, - 10592: 0x8D76, - 10593: 0x611F, - 10594: 0x79C6, - 10595: 0x6562, - 10596: 0x8D63, - 10597: 0x5188, - 10598: 0x521A, - 10599: 0x94A2, - 10600: 0x7F38, - 10601: 0x809B, - 10602: 0x7EB2, - 10603: 0x5C97, - 10604: 0x6E2F, - 10605: 0x6760, - 10606: 0x7BD9, - 10607: 0x768B, - 10608: 0x9AD8, - 10609: 0x818F, - 10610: 0x7F94, - 10611: 0x7CD5, - 10612: 0x641E, - 10613: 0x9550, - 10614: 0x7A3F, - 10615: 0x544A, - 10616: 0x54E5, - 10617: 0x6B4C, - 10618: 0x6401, - 10619: 0x6208, - 10620: 0x9E3D, - 10621: 0x80F3, - 10622: 0x7599, - 10623: 0x5272, - 10624: 0x9769, - 10625: 0x845B, - 10626: 0x683C, - 10627: 0x86E4, - 10628: 0x9601, - 10629: 0x9694, - 10630: 0x94EC, - 10631: 0x4E2A, - 10632: 0x5404, - 10633: 0x7ED9, - 10634: 0x6839, - 10635: 0x8DDF, - 10636: 0x8015, - 10637: 0x66F4, - 10638: 0x5E9A, - 10639: 0x7FB9, - 10640: 0x7B2F, - 10641: 0x7B30, - 10642: 0x7B32, - 10643: 0x7B34, - 10644: 0x7B35, - 10645: 0x7B36, - 10646: 0x7B37, - 10647: 0x7B39, - 10648: 0x7B3B, - 10649: 0x7B3D, - 10650: 0x7B3F, - 10651: 0x7B40, - 10652: 0x7B41, - 10653: 0x7B42, - 10654: 0x7B43, - 10655: 0x7B44, - 10656: 0x7B46, - 10657: 0x7B48, - 10658: 0x7B4A, - 10659: 0x7B4D, - 10660: 0x7B4E, - 10661: 0x7B53, - 10662: 0x7B55, - 10663: 0x7B57, - 10664: 0x7B59, - 10665: 0x7B5C, - 10666: 0x7B5E, - 10667: 0x7B5F, - 10668: 0x7B61, - 10669: 0x7B63, - 10670: 0x7B64, - 10671: 0x7B65, - 10672: 0x7B66, - 10673: 0x7B67, - 10674: 0x7B68, - 10675: 0x7B69, - 10676: 0x7B6A, - 10677: 0x7B6B, - 10678: 0x7B6C, - 10679: 0x7B6D, - 10680: 0x7B6F, - 10681: 0x7B70, - 10682: 0x7B73, - 10683: 0x7B74, - 10684: 0x7B76, - 10685: 0x7B78, - 10686: 0x7B7A, - 10687: 0x7B7C, - 10688: 0x7B7D, - 10689: 0x7B7F, - 10690: 0x7B81, - 10691: 0x7B82, - 10692: 0x7B83, - 10693: 0x7B84, - 10694: 0x7B86, - 10695: 0x7B87, - 10696: 0x7B88, - 10697: 0x7B89, - 10698: 0x7B8A, - 10699: 0x7B8B, - 10700: 0x7B8C, - 10701: 0x7B8E, - 10702: 0x7B8F, - 10703: 0x7B91, - 10704: 0x7B92, - 10705: 0x7B93, - 10706: 0x7B96, - 10707: 0x7B98, - 10708: 0x7B99, - 10709: 0x7B9A, - 10710: 0x7B9B, - 10711: 0x7B9E, - 10712: 0x7B9F, - 10713: 0x7BA0, - 10714: 0x7BA3, - 10715: 0x7BA4, - 10716: 0x7BA5, - 10717: 0x7BAE, - 10718: 0x7BAF, - 10719: 0x7BB0, - 10720: 0x7BB2, - 10721: 0x7BB3, - 10722: 0x7BB5, - 10723: 0x7BB6, - 10724: 0x7BB7, - 10725: 0x7BB9, - 10726: 0x7BBA, - 10727: 0x7BBB, - 10728: 0x7BBC, - 10729: 0x7BBD, - 10730: 0x7BBE, - 10731: 0x7BBF, - 10732: 0x7BC0, - 10733: 0x7BC2, - 10734: 0x7BC3, - 10735: 0x7BC4, - 10736: 0x57C2, - 10737: 0x803F, - 10738: 0x6897, - 10739: 0x5DE5, - 10740: 0x653B, - 10741: 0x529F, - 10742: 0x606D, - 10743: 0x9F9A, - 10744: 0x4F9B, - 10745: 0x8EAC, - 10746: 0x516C, - 10747: 0x5BAB, - 10748: 0x5F13, - 10749: 0x5DE9, - 10750: 0x6C5E, - 10751: 0x62F1, - 10752: 0x8D21, - 10753: 0x5171, - 10754: 0x94A9, - 10755: 0x52FE, - 10756: 0x6C9F, - 10757: 0x82DF, - 10758: 0x72D7, - 10759: 0x57A2, - 10760: 0x6784, - 10761: 0x8D2D, - 10762: 0x591F, - 10763: 0x8F9C, - 10764: 0x83C7, - 10765: 0x5495, - 10766: 0x7B8D, - 10767: 0x4F30, - 10768: 0x6CBD, - 10769: 0x5B64, - 10770: 0x59D1, - 10771: 0x9F13, - 10772: 0x53E4, - 10773: 0x86CA, - 10774: 0x9AA8, - 10775: 0x8C37, - 10776: 0x80A1, - 10777: 0x6545, - 10778: 0x987E, - 10779: 0x56FA, - 10780: 0x96C7, - 10781: 0x522E, - 10782: 0x74DC, - 10783: 0x5250, - 10784: 0x5BE1, - 10785: 0x6302, - 10786: 0x8902, - 10787: 0x4E56, - 10788: 0x62D0, - 10789: 0x602A, - 10790: 0x68FA, - 10791: 0x5173, - 10792: 0x5B98, - 10793: 0x51A0, - 10794: 0x89C2, - 10795: 0x7BA1, - 10796: 0x9986, - 10797: 0x7F50, - 10798: 0x60EF, - 10799: 0x704C, - 10800: 0x8D2F, - 10801: 0x5149, - 10802: 0x5E7F, - 10803: 0x901B, - 10804: 0x7470, - 10805: 0x89C4, - 10806: 0x572D, - 10807: 0x7845, - 10808: 0x5F52, - 10809: 0x9F9F, - 10810: 0x95FA, - 10811: 0x8F68, - 10812: 0x9B3C, - 10813: 0x8BE1, - 10814: 0x7678, - 10815: 0x6842, - 10816: 0x67DC, - 10817: 0x8DEA, - 10818: 0x8D35, - 10819: 0x523D, - 10820: 0x8F8A, - 10821: 0x6EDA, - 10822: 0x68CD, - 10823: 0x9505, - 10824: 0x90ED, - 10825: 0x56FD, - 10826: 0x679C, - 10827: 0x88F9, - 10828: 0x8FC7, - 10829: 0x54C8, - 10830: 0x7BC5, - 10831: 0x7BC8, - 10832: 0x7BC9, - 10833: 0x7BCA, - 10834: 0x7BCB, - 10835: 0x7BCD, - 10836: 0x7BCE, - 10837: 0x7BCF, - 10838: 0x7BD0, - 10839: 0x7BD2, - 10840: 0x7BD4, - 10841: 0x7BD5, - 10842: 0x7BD6, - 10843: 0x7BD7, - 10844: 0x7BD8, - 10845: 0x7BDB, - 10846: 0x7BDC, - 10847: 0x7BDE, - 10848: 0x7BDF, - 10849: 0x7BE0, - 10850: 0x7BE2, - 10851: 0x7BE3, - 10852: 0x7BE4, - 10853: 0x7BE7, - 10854: 0x7BE8, - 10855: 0x7BE9, - 10856: 0x7BEB, - 10857: 0x7BEC, - 10858: 0x7BED, - 10859: 0x7BEF, - 10860: 0x7BF0, - 10861: 0x7BF2, - 10862: 0x7BF3, - 10863: 0x7BF4, - 10864: 0x7BF5, - 10865: 0x7BF6, - 10866: 0x7BF8, - 10867: 0x7BF9, - 10868: 0x7BFA, - 10869: 0x7BFB, - 10870: 0x7BFD, - 10871: 0x7BFF, - 10872: 0x7C00, - 10873: 0x7C01, - 10874: 0x7C02, - 10875: 0x7C03, - 10876: 0x7C04, - 10877: 0x7C05, - 10878: 0x7C06, - 10879: 0x7C08, - 10880: 0x7C09, - 10881: 0x7C0A, - 10882: 0x7C0D, - 10883: 0x7C0E, - 10884: 0x7C10, - 10885: 0x7C11, - 10886: 0x7C12, - 10887: 0x7C13, - 10888: 0x7C14, - 10889: 0x7C15, - 10890: 0x7C17, - 10891: 0x7C18, - 10892: 0x7C19, - 10893: 0x7C1A, - 10894: 0x7C1B, - 10895: 0x7C1C, - 10896: 0x7C1D, - 10897: 0x7C1E, - 10898: 0x7C20, - 10899: 0x7C21, - 10900: 0x7C22, - 10901: 0x7C23, - 10902: 0x7C24, - 10903: 0x7C25, - 10904: 0x7C28, - 10905: 0x7C29, - 10906: 0x7C2B, - 10907: 0x7C2C, - 10908: 0x7C2D, - 10909: 0x7C2E, - 10910: 0x7C2F, - 10911: 0x7C30, - 10912: 0x7C31, - 10913: 0x7C32, - 10914: 0x7C33, - 10915: 0x7C34, - 10916: 0x7C35, - 10917: 0x7C36, - 10918: 0x7C37, - 10919: 0x7C39, - 10920: 0x7C3A, - 10921: 0x7C3B, - 10922: 0x7C3C, - 10923: 0x7C3D, - 10924: 0x7C3E, - 10925: 0x7C42, - 10926: 0x9AB8, - 10927: 0x5B69, - 10928: 0x6D77, - 10929: 0x6C26, - 10930: 0x4EA5, - 10931: 0x5BB3, - 10932: 0x9A87, - 10933: 0x9163, - 10934: 0x61A8, - 10935: 0x90AF, - 10936: 0x97E9, - 10937: 0x542B, - 10938: 0x6DB5, - 10939: 0x5BD2, - 10940: 0x51FD, - 10941: 0x558A, - 10942: 0x7F55, - 10943: 0x7FF0, - 10944: 0x64BC, - 10945: 0x634D, - 10946: 0x65F1, - 10947: 0x61BE, - 10948: 0x608D, - 10949: 0x710A, - 10950: 0x6C57, - 10951: 0x6C49, - 10952: 0x592F, - 10953: 0x676D, - 10954: 0x822A, - 10955: 0x58D5, - 10956: 0x568E, - 10957: 0x8C6A, - 10958: 0x6BEB, - 10959: 0x90DD, - 10960: 0x597D, - 10961: 0x8017, - 10962: 0x53F7, - 10963: 0x6D69, - 10964: 0x5475, - 10965: 0x559D, - 10966: 0x8377, - 10967: 0x83CF, - 10968: 0x6838, - 10969: 0x79BE, - 10970: 0x548C, - 10971: 0x4F55, - 10972: 0x5408, - 10973: 0x76D2, - 10974: 0x8C89, - 10975: 0x9602, - 10976: 0x6CB3, - 10977: 0x6DB8, - 10978: 0x8D6B, - 10979: 0x8910, - 10980: 0x9E64, - 10981: 0x8D3A, - 10982: 0x563F, - 10983: 0x9ED1, - 10984: 0x75D5, - 10985: 0x5F88, - 10986: 0x72E0, - 10987: 0x6068, - 10988: 0x54FC, - 10989: 0x4EA8, - 10990: 0x6A2A, - 10991: 0x8861, - 10992: 0x6052, - 10993: 0x8F70, - 10994: 0x54C4, - 10995: 0x70D8, - 10996: 0x8679, - 10997: 0x9E3F, - 10998: 0x6D2A, - 10999: 0x5B8F, - 11000: 0x5F18, - 11001: 0x7EA2, - 11002: 0x5589, - 11003: 0x4FAF, - 11004: 0x7334, - 11005: 0x543C, - 11006: 0x539A, - 11007: 0x5019, - 11008: 0x540E, - 11009: 0x547C, - 11010: 0x4E4E, - 11011: 0x5FFD, - 11012: 0x745A, - 11013: 0x58F6, - 11014: 0x846B, - 11015: 0x80E1, - 11016: 0x8774, - 11017: 0x72D0, - 11018: 0x7CCA, - 11019: 0x6E56, - 11020: 0x7C43, - 11021: 0x7C44, - 11022: 0x7C45, - 11023: 0x7C46, - 11024: 0x7C47, - 11025: 0x7C48, - 11026: 0x7C49, - 11027: 0x7C4A, - 11028: 0x7C4B, - 11029: 0x7C4C, - 11030: 0x7C4E, - 11031: 0x7C4F, - 11032: 0x7C50, - 11033: 0x7C51, - 11034: 0x7C52, - 11035: 0x7C53, - 11036: 0x7C54, - 11037: 0x7C55, - 11038: 0x7C56, - 11039: 0x7C57, - 11040: 0x7C58, - 11041: 0x7C59, - 11042: 0x7C5A, - 11043: 0x7C5B, - 11044: 0x7C5C, - 11045: 0x7C5D, - 11046: 0x7C5E, - 11047: 0x7C5F, - 11048: 0x7C60, - 11049: 0x7C61, - 11050: 0x7C62, - 11051: 0x7C63, - 11052: 0x7C64, - 11053: 0x7C65, - 11054: 0x7C66, - 11055: 0x7C67, - 11056: 0x7C68, - 11057: 0x7C69, - 11058: 0x7C6A, - 11059: 0x7C6B, - 11060: 0x7C6C, - 11061: 0x7C6D, - 11062: 0x7C6E, - 11063: 0x7C6F, - 11064: 0x7C70, - 11065: 0x7C71, - 11066: 0x7C72, - 11067: 0x7C75, - 11068: 0x7C76, - 11069: 0x7C77, - 11070: 0x7C78, - 11071: 0x7C79, - 11072: 0x7C7A, - 11073: 0x7C7E, - 11074: 0x7C7F, - 11075: 0x7C80, - 11076: 0x7C81, - 11077: 0x7C82, - 11078: 0x7C83, - 11079: 0x7C84, - 11080: 0x7C85, - 11081: 0x7C86, - 11082: 0x7C87, - 11083: 0x7C88, - 11084: 0x7C8A, - 11085: 0x7C8B, - 11086: 0x7C8C, - 11087: 0x7C8D, - 11088: 0x7C8E, - 11089: 0x7C8F, - 11090: 0x7C90, - 11091: 0x7C93, - 11092: 0x7C94, - 11093: 0x7C96, - 11094: 0x7C99, - 11095: 0x7C9A, - 11096: 0x7C9B, - 11097: 0x7CA0, - 11098: 0x7CA1, - 11099: 0x7CA3, - 11100: 0x7CA6, - 11101: 0x7CA7, - 11102: 0x7CA8, - 11103: 0x7CA9, - 11104: 0x7CAB, - 11105: 0x7CAC, - 11106: 0x7CAD, - 11107: 0x7CAF, - 11108: 0x7CB0, - 11109: 0x7CB4, - 11110: 0x7CB5, - 11111: 0x7CB6, - 11112: 0x7CB7, - 11113: 0x7CB8, - 11114: 0x7CBA, - 11115: 0x7CBB, - 11116: 0x5F27, - 11117: 0x864E, - 11118: 0x552C, - 11119: 0x62A4, - 11120: 0x4E92, - 11121: 0x6CAA, - 11122: 0x6237, - 11123: 0x82B1, - 11124: 0x54D7, - 11125: 0x534E, - 11126: 0x733E, - 11127: 0x6ED1, - 11128: 0x753B, - 11129: 0x5212, - 11130: 0x5316, - 11131: 0x8BDD, - 11132: 0x69D0, - 11133: 0x5F8A, - 11134: 0x6000, - 11135: 0x6DEE, - 11136: 0x574F, - 11137: 0x6B22, - 11138: 0x73AF, - 11139: 0x6853, - 11140: 0x8FD8, - 11141: 0x7F13, - 11142: 0x6362, - 11143: 0x60A3, - 11144: 0x5524, - 11145: 0x75EA, - 11146: 0x8C62, - 11147: 0x7115, - 11148: 0x6DA3, - 11149: 0x5BA6, - 11150: 0x5E7B, - 11151: 0x8352, - 11152: 0x614C, - 11153: 0x9EC4, - 11154: 0x78FA, - 11155: 0x8757, - 11156: 0x7C27, - 11157: 0x7687, - 11158: 0x51F0, - 11159: 0x60F6, - 11160: 0x714C, - 11161: 0x6643, - 11162: 0x5E4C, - 11163: 0x604D, - 11164: 0x8C0E, - 11165: 0x7070, - 11166: 0x6325, - 11167: 0x8F89, - 11168: 0x5FBD, - 11169: 0x6062, - 11170: 0x86D4, - 11171: 0x56DE, - 11172: 0x6BC1, - 11173: 0x6094, - 11174: 0x6167, - 11175: 0x5349, - 11176: 0x60E0, - 11177: 0x6666, - 11178: 0x8D3F, - 11179: 0x79FD, - 11180: 0x4F1A, - 11181: 0x70E9, - 11182: 0x6C47, - 11183: 0x8BB3, - 11184: 0x8BF2, - 11185: 0x7ED8, - 11186: 0x8364, - 11187: 0x660F, - 11188: 0x5A5A, - 11189: 0x9B42, - 11190: 0x6D51, - 11191: 0x6DF7, - 11192: 0x8C41, - 11193: 0x6D3B, - 11194: 0x4F19, - 11195: 0x706B, - 11196: 0x83B7, - 11197: 0x6216, - 11198: 0x60D1, - 11199: 0x970D, - 11200: 0x8D27, - 11201: 0x7978, - 11202: 0x51FB, - 11203: 0x573E, - 11204: 0x57FA, - 11205: 0x673A, - 11206: 0x7578, - 11207: 0x7A3D, - 11208: 0x79EF, - 11209: 0x7B95, - 11210: 0x7CBF, - 11211: 0x7CC0, - 11212: 0x7CC2, - 11213: 0x7CC3, - 11214: 0x7CC4, - 11215: 0x7CC6, - 11216: 0x7CC9, - 11217: 0x7CCB, - 11218: 0x7CCE, - 11219: 0x7CCF, - 11220: 0x7CD0, - 11221: 0x7CD1, - 11222: 0x7CD2, - 11223: 0x7CD3, - 11224: 0x7CD4, - 11225: 0x7CD8, - 11226: 0x7CDA, - 11227: 0x7CDB, - 11228: 0x7CDD, - 11229: 0x7CDE, - 11230: 0x7CE1, - 11231: 0x7CE2, - 11232: 0x7CE3, - 11233: 0x7CE4, - 11234: 0x7CE5, - 11235: 0x7CE6, - 11236: 0x7CE7, - 11237: 0x7CE9, - 11238: 0x7CEA, - 11239: 0x7CEB, - 11240: 0x7CEC, - 11241: 0x7CED, - 11242: 0x7CEE, - 11243: 0x7CF0, - 11244: 0x7CF1, - 11245: 0x7CF2, - 11246: 0x7CF3, - 11247: 0x7CF4, - 11248: 0x7CF5, - 11249: 0x7CF6, - 11250: 0x7CF7, - 11251: 0x7CF9, - 11252: 0x7CFA, - 11253: 0x7CFC, - 11254: 0x7CFD, - 11255: 0x7CFE, - 11256: 0x7CFF, - 11257: 0x7D00, - 11258: 0x7D01, - 11259: 0x7D02, - 11260: 0x7D03, - 11261: 0x7D04, - 11262: 0x7D05, - 11263: 0x7D06, - 11264: 0x7D07, - 11265: 0x7D08, - 11266: 0x7D09, - 11267: 0x7D0B, - 11268: 0x7D0C, - 11269: 0x7D0D, - 11270: 0x7D0E, - 11271: 0x7D0F, - 11272: 0x7D10, - 11273: 0x7D11, - 11274: 0x7D12, - 11275: 0x7D13, - 11276: 0x7D14, - 11277: 0x7D15, - 11278: 0x7D16, - 11279: 0x7D17, - 11280: 0x7D18, - 11281: 0x7D19, - 11282: 0x7D1A, - 11283: 0x7D1B, - 11284: 0x7D1C, - 11285: 0x7D1D, - 11286: 0x7D1E, - 11287: 0x7D1F, - 11288: 0x7D21, - 11289: 0x7D23, - 11290: 0x7D24, - 11291: 0x7D25, - 11292: 0x7D26, - 11293: 0x7D28, - 11294: 0x7D29, - 11295: 0x7D2A, - 11296: 0x7D2C, - 11297: 0x7D2D, - 11298: 0x7D2E, - 11299: 0x7D30, - 11300: 0x7D31, - 11301: 0x7D32, - 11302: 0x7D33, - 11303: 0x7D34, - 11304: 0x7D35, - 11305: 0x7D36, - 11306: 0x808C, - 11307: 0x9965, - 11308: 0x8FF9, - 11309: 0x6FC0, - 11310: 0x8BA5, - 11311: 0x9E21, - 11312: 0x59EC, - 11313: 0x7EE9, - 11314: 0x7F09, - 11315: 0x5409, - 11316: 0x6781, - 11317: 0x68D8, - 11318: 0x8F91, - 11319: 0x7C4D, - 11320: 0x96C6, - 11321: 0x53CA, - 11322: 0x6025, - 11323: 0x75BE, - 11324: 0x6C72, - 11325: 0x5373, - 11326: 0x5AC9, - 11327: 0x7EA7, - 11328: 0x6324, - 11329: 0x51E0, - 11330: 0x810A, - 11331: 0x5DF1, - 11332: 0x84DF, - 11333: 0x6280, - 11334: 0x5180, - 11335: 0x5B63, - 11336: 0x4F0E, - 11337: 0x796D, - 11338: 0x5242, - 11339: 0x60B8, - 11340: 0x6D4E, - 11341: 0x5BC4, - 11342: 0x5BC2, - 11343: 0x8BA1, - 11344: 0x8BB0, - 11345: 0x65E2, - 11346: 0x5FCC, - 11347: 0x9645, - 11348: 0x5993, - 11349: 0x7EE7, - 11350: 0x7EAA, - 11351: 0x5609, - 11352: 0x67B7, - 11353: 0x5939, - 11354: 0x4F73, - 11355: 0x5BB6, - 11356: 0x52A0, - 11357: 0x835A, - 11358: 0x988A, - 11359: 0x8D3E, - 11360: 0x7532, - 11361: 0x94BE, - 11362: 0x5047, - 11363: 0x7A3C, - 11364: 0x4EF7, - 11365: 0x67B6, - 11366: 0x9A7E, - 11367: 0x5AC1, - 11368: 0x6B7C, - 11369: 0x76D1, - 11370: 0x575A, - 11371: 0x5C16, - 11372: 0x7B3A, - 11373: 0x95F4, - 11374: 0x714E, - 11375: 0x517C, - 11376: 0x80A9, - 11377: 0x8270, - 11378: 0x5978, - 11379: 0x7F04, - 11380: 0x8327, - 11381: 0x68C0, - 11382: 0x67EC, - 11383: 0x78B1, - 11384: 0x7877, - 11385: 0x62E3, - 11386: 0x6361, - 11387: 0x7B80, - 11388: 0x4FED, - 11389: 0x526A, - 11390: 0x51CF, - 11391: 0x8350, - 11392: 0x69DB, - 11393: 0x9274, - 11394: 0x8DF5, - 11395: 0x8D31, - 11396: 0x89C1, - 11397: 0x952E, - 11398: 0x7BAD, - 11399: 0x4EF6, - 11400: 0x7D37, - 11401: 0x7D38, - 11402: 0x7D39, - 11403: 0x7D3A, - 11404: 0x7D3B, - 11405: 0x7D3C, - 11406: 0x7D3D, - 11407: 0x7D3E, - 11408: 0x7D3F, - 11409: 0x7D40, - 11410: 0x7D41, - 11411: 0x7D42, - 11412: 0x7D43, - 11413: 0x7D44, - 11414: 0x7D45, - 11415: 0x7D46, - 11416: 0x7D47, - 11417: 0x7D48, - 11418: 0x7D49, - 11419: 0x7D4A, - 11420: 0x7D4B, - 11421: 0x7D4C, - 11422: 0x7D4D, - 11423: 0x7D4E, - 11424: 0x7D4F, - 11425: 0x7D50, - 11426: 0x7D51, - 11427: 0x7D52, - 11428: 0x7D53, - 11429: 0x7D54, - 11430: 0x7D55, - 11431: 0x7D56, - 11432: 0x7D57, - 11433: 0x7D58, - 11434: 0x7D59, - 11435: 0x7D5A, - 11436: 0x7D5B, - 11437: 0x7D5C, - 11438: 0x7D5D, - 11439: 0x7D5E, - 11440: 0x7D5F, - 11441: 0x7D60, - 11442: 0x7D61, - 11443: 0x7D62, - 11444: 0x7D63, - 11445: 0x7D64, - 11446: 0x7D65, - 11447: 0x7D66, - 11448: 0x7D67, - 11449: 0x7D68, - 11450: 0x7D69, - 11451: 0x7D6A, - 11452: 0x7D6B, - 11453: 0x7D6C, - 11454: 0x7D6D, - 11455: 0x7D6F, - 11456: 0x7D70, - 11457: 0x7D71, - 11458: 0x7D72, - 11459: 0x7D73, - 11460: 0x7D74, - 11461: 0x7D75, - 11462: 0x7D76, - 11463: 0x7D78, - 11464: 0x7D79, - 11465: 0x7D7A, - 11466: 0x7D7B, - 11467: 0x7D7C, - 11468: 0x7D7D, - 11469: 0x7D7E, - 11470: 0x7D7F, - 11471: 0x7D80, - 11472: 0x7D81, - 11473: 0x7D82, - 11474: 0x7D83, - 11475: 0x7D84, - 11476: 0x7D85, - 11477: 0x7D86, - 11478: 0x7D87, - 11479: 0x7D88, - 11480: 0x7D89, - 11481: 0x7D8A, - 11482: 0x7D8B, - 11483: 0x7D8C, - 11484: 0x7D8D, - 11485: 0x7D8E, - 11486: 0x7D8F, - 11487: 0x7D90, - 11488: 0x7D91, - 11489: 0x7D92, - 11490: 0x7D93, - 11491: 0x7D94, - 11492: 0x7D95, - 11493: 0x7D96, - 11494: 0x7D97, - 11495: 0x7D98, - 11496: 0x5065, - 11497: 0x8230, - 11498: 0x5251, - 11499: 0x996F, - 11500: 0x6E10, - 11501: 0x6E85, - 11502: 0x6DA7, - 11503: 0x5EFA, - 11504: 0x50F5, - 11505: 0x59DC, - 11506: 0x5C06, - 11507: 0x6D46, - 11508: 0x6C5F, - 11509: 0x7586, - 11510: 0x848B, - 11511: 0x6868, - 11512: 0x5956, - 11513: 0x8BB2, - 11514: 0x5320, - 11515: 0x9171, - 11516: 0x964D, - 11517: 0x8549, - 11518: 0x6912, - 11519: 0x7901, - 11520: 0x7126, - 11521: 0x80F6, - 11522: 0x4EA4, - 11523: 0x90CA, - 11524: 0x6D47, - 11525: 0x9A84, - 11526: 0x5A07, - 11527: 0x56BC, - 11528: 0x6405, - 11529: 0x94F0, - 11530: 0x77EB, - 11531: 0x4FA5, - 11532: 0x811A, - 11533: 0x72E1, - 11534: 0x89D2, - 11535: 0x997A, - 11536: 0x7F34, - 11537: 0x7EDE, - 11538: 0x527F, - 11539: 0x6559, - 11540: 0x9175, - 11541: 0x8F7F, - 11542: 0x8F83, - 11543: 0x53EB, - 11544: 0x7A96, - 11545: 0x63ED, - 11546: 0x63A5, - 11547: 0x7686, - 11548: 0x79F8, - 11549: 0x8857, - 11550: 0x9636, - 11551: 0x622A, - 11552: 0x52AB, - 11553: 0x8282, - 11554: 0x6854, - 11555: 0x6770, - 11556: 0x6377, - 11557: 0x776B, - 11558: 0x7AED, - 11559: 0x6D01, - 11560: 0x7ED3, - 11561: 0x89E3, - 11562: 0x59D0, - 11563: 0x6212, - 11564: 0x85C9, - 11565: 0x82A5, - 11566: 0x754C, - 11567: 0x501F, - 11568: 0x4ECB, - 11569: 0x75A5, - 11570: 0x8BEB, - 11571: 0x5C4A, - 11572: 0x5DFE, - 11573: 0x7B4B, - 11574: 0x65A4, - 11575: 0x91D1, - 11576: 0x4ECA, - 11577: 0x6D25, - 11578: 0x895F, - 11579: 0x7D27, - 11580: 0x9526, - 11581: 0x4EC5, - 11582: 0x8C28, - 11583: 0x8FDB, - 11584: 0x9773, - 11585: 0x664B, - 11586: 0x7981, - 11587: 0x8FD1, - 11588: 0x70EC, - 11589: 0x6D78, - 11590: 0x7D99, - 11591: 0x7D9A, - 11592: 0x7D9B, - 11593: 0x7D9C, - 11594: 0x7D9D, - 11595: 0x7D9E, - 11596: 0x7D9F, - 11597: 0x7DA0, - 11598: 0x7DA1, - 11599: 0x7DA2, - 11600: 0x7DA3, - 11601: 0x7DA4, - 11602: 0x7DA5, - 11603: 0x7DA7, - 11604: 0x7DA8, - 11605: 0x7DA9, - 11606: 0x7DAA, - 11607: 0x7DAB, - 11608: 0x7DAC, - 11609: 0x7DAD, - 11610: 0x7DAF, - 11611: 0x7DB0, - 11612: 0x7DB1, - 11613: 0x7DB2, - 11614: 0x7DB3, - 11615: 0x7DB4, - 11616: 0x7DB5, - 11617: 0x7DB6, - 11618: 0x7DB7, - 11619: 0x7DB8, - 11620: 0x7DB9, - 11621: 0x7DBA, - 11622: 0x7DBB, - 11623: 0x7DBC, - 11624: 0x7DBD, - 11625: 0x7DBE, - 11626: 0x7DBF, - 11627: 0x7DC0, - 11628: 0x7DC1, - 11629: 0x7DC2, - 11630: 0x7DC3, - 11631: 0x7DC4, - 11632: 0x7DC5, - 11633: 0x7DC6, - 11634: 0x7DC7, - 11635: 0x7DC8, - 11636: 0x7DC9, - 11637: 0x7DCA, - 11638: 0x7DCB, - 11639: 0x7DCC, - 11640: 0x7DCD, - 11641: 0x7DCE, - 11642: 0x7DCF, - 11643: 0x7DD0, - 11644: 0x7DD1, - 11645: 0x7DD2, - 11646: 0x7DD3, - 11647: 0x7DD4, - 11648: 0x7DD5, - 11649: 0x7DD6, - 11650: 0x7DD7, - 11651: 0x7DD8, - 11652: 0x7DD9, - 11653: 0x7DDA, - 11654: 0x7DDB, - 11655: 0x7DDC, - 11656: 0x7DDD, - 11657: 0x7DDE, - 11658: 0x7DDF, - 11659: 0x7DE0, - 11660: 0x7DE1, - 11661: 0x7DE2, - 11662: 0x7DE3, - 11663: 0x7DE4, - 11664: 0x7DE5, - 11665: 0x7DE6, - 11666: 0x7DE7, - 11667: 0x7DE8, - 11668: 0x7DE9, - 11669: 0x7DEA, - 11670: 0x7DEB, - 11671: 0x7DEC, - 11672: 0x7DED, - 11673: 0x7DEE, - 11674: 0x7DEF, - 11675: 0x7DF0, - 11676: 0x7DF1, - 11677: 0x7DF2, - 11678: 0x7DF3, - 11679: 0x7DF4, - 11680: 0x7DF5, - 11681: 0x7DF6, - 11682: 0x7DF7, - 11683: 0x7DF8, - 11684: 0x7DF9, - 11685: 0x7DFA, - 11686: 0x5C3D, - 11687: 0x52B2, - 11688: 0x8346, - 11689: 0x5162, - 11690: 0x830E, - 11691: 0x775B, - 11692: 0x6676, - 11693: 0x9CB8, - 11694: 0x4EAC, - 11695: 0x60CA, - 11696: 0x7CBE, - 11697: 0x7CB3, - 11698: 0x7ECF, - 11699: 0x4E95, - 11700: 0x8B66, - 11701: 0x666F, - 11702: 0x9888, - 11703: 0x9759, - 11704: 0x5883, - 11705: 0x656C, - 11706: 0x955C, - 11707: 0x5F84, - 11708: 0x75C9, - 11709: 0x9756, - 11710: 0x7ADF, - 11711: 0x7ADE, - 11712: 0x51C0, - 11713: 0x70AF, - 11714: 0x7A98, - 11715: 0x63EA, - 11716: 0x7A76, - 11717: 0x7EA0, - 11718: 0x7396, - 11719: 0x97ED, - 11720: 0x4E45, - 11721: 0x7078, - 11722: 0x4E5D, - 11723: 0x9152, - 11724: 0x53A9, - 11725: 0x6551, - 11726: 0x65E7, - 11727: 0x81FC, - 11728: 0x8205, - 11729: 0x548E, - 11730: 0x5C31, - 11731: 0x759A, - 11732: 0x97A0, - 11733: 0x62D8, - 11734: 0x72D9, - 11735: 0x75BD, - 11736: 0x5C45, - 11737: 0x9A79, - 11738: 0x83CA, - 11739: 0x5C40, - 11740: 0x5480, - 11741: 0x77E9, - 11742: 0x4E3E, - 11743: 0x6CAE, - 11744: 0x805A, - 11745: 0x62D2, - 11746: 0x636E, - 11747: 0x5DE8, - 11748: 0x5177, - 11749: 0x8DDD, - 11750: 0x8E1E, - 11751: 0x952F, - 11752: 0x4FF1, - 11753: 0x53E5, - 11754: 0x60E7, - 11755: 0x70AC, - 11756: 0x5267, - 11757: 0x6350, - 11758: 0x9E43, - 11759: 0x5A1F, - 11760: 0x5026, - 11761: 0x7737, - 11762: 0x5377, - 11763: 0x7EE2, - 11764: 0x6485, - 11765: 0x652B, - 11766: 0x6289, - 11767: 0x6398, - 11768: 0x5014, - 11769: 0x7235, - 11770: 0x89C9, - 11771: 0x51B3, - 11772: 0x8BC0, - 11773: 0x7EDD, - 11774: 0x5747, - 11775: 0x83CC, - 11776: 0x94A7, - 11777: 0x519B, - 11778: 0x541B, - 11779: 0x5CFB, - 11780: 0x7DFB, - 11781: 0x7DFC, - 11782: 0x7DFD, - 11783: 0x7DFE, - 11784: 0x7DFF, - 11785: 0x7E00, - 11786: 0x7E01, - 11787: 0x7E02, - 11788: 0x7E03, - 11789: 0x7E04, - 11790: 0x7E05, - 11791: 0x7E06, - 11792: 0x7E07, - 11793: 0x7E08, - 11794: 0x7E09, - 11795: 0x7E0A, - 11796: 0x7E0B, - 11797: 0x7E0C, - 11798: 0x7E0D, - 11799: 0x7E0E, - 11800: 0x7E0F, - 11801: 0x7E10, - 11802: 0x7E11, - 11803: 0x7E12, - 11804: 0x7E13, - 11805: 0x7E14, - 11806: 0x7E15, - 11807: 0x7E16, - 11808: 0x7E17, - 11809: 0x7E18, - 11810: 0x7E19, - 11811: 0x7E1A, - 11812: 0x7E1B, - 11813: 0x7E1C, - 11814: 0x7E1D, - 11815: 0x7E1E, - 11816: 0x7E1F, - 11817: 0x7E20, - 11818: 0x7E21, - 11819: 0x7E22, - 11820: 0x7E23, - 11821: 0x7E24, - 11822: 0x7E25, - 11823: 0x7E26, - 11824: 0x7E27, - 11825: 0x7E28, - 11826: 0x7E29, - 11827: 0x7E2A, - 11828: 0x7E2B, - 11829: 0x7E2C, - 11830: 0x7E2D, - 11831: 0x7E2E, - 11832: 0x7E2F, - 11833: 0x7E30, - 11834: 0x7E31, - 11835: 0x7E32, - 11836: 0x7E33, - 11837: 0x7E34, - 11838: 0x7E35, - 11839: 0x7E36, - 11840: 0x7E37, - 11841: 0x7E38, - 11842: 0x7E39, - 11843: 0x7E3A, - 11844: 0x7E3C, - 11845: 0x7E3D, - 11846: 0x7E3E, - 11847: 0x7E3F, - 11848: 0x7E40, - 11849: 0x7E42, - 11850: 0x7E43, - 11851: 0x7E44, - 11852: 0x7E45, - 11853: 0x7E46, - 11854: 0x7E48, - 11855: 0x7E49, - 11856: 0x7E4A, - 11857: 0x7E4B, - 11858: 0x7E4C, - 11859: 0x7E4D, - 11860: 0x7E4E, - 11861: 0x7E4F, - 11862: 0x7E50, - 11863: 0x7E51, - 11864: 0x7E52, - 11865: 0x7E53, - 11866: 0x7E54, - 11867: 0x7E55, - 11868: 0x7E56, - 11869: 0x7E57, - 11870: 0x7E58, - 11871: 0x7E59, - 11872: 0x7E5A, - 11873: 0x7E5B, - 11874: 0x7E5C, - 11875: 0x7E5D, - 11876: 0x4FCA, - 11877: 0x7AE3, - 11878: 0x6D5A, - 11879: 0x90E1, - 11880: 0x9A8F, - 11881: 0x5580, - 11882: 0x5496, - 11883: 0x5361, - 11884: 0x54AF, - 11885: 0x5F00, - 11886: 0x63E9, - 11887: 0x6977, - 11888: 0x51EF, - 11889: 0x6168, - 11890: 0x520A, - 11891: 0x582A, - 11892: 0x52D8, - 11893: 0x574E, - 11894: 0x780D, - 11895: 0x770B, - 11896: 0x5EB7, - 11897: 0x6177, - 11898: 0x7CE0, - 11899: 0x625B, - 11900: 0x6297, - 11901: 0x4EA2, - 11902: 0x7095, - 11903: 0x8003, - 11904: 0x62F7, - 11905: 0x70E4, - 11906: 0x9760, - 11907: 0x5777, - 11908: 0x82DB, - 11909: 0x67EF, - 11910: 0x68F5, - 11911: 0x78D5, - 11912: 0x9897, - 11913: 0x79D1, - 11914: 0x58F3, - 11915: 0x54B3, - 11916: 0x53EF, - 11917: 0x6E34, - 11918: 0x514B, - 11919: 0x523B, - 11920: 0x5BA2, - 11921: 0x8BFE, - 11922: 0x80AF, - 11923: 0x5543, - 11924: 0x57A6, - 11925: 0x6073, - 11926: 0x5751, - 11927: 0x542D, - 11928: 0x7A7A, - 11929: 0x6050, - 11930: 0x5B54, - 11931: 0x63A7, - 11932: 0x62A0, - 11933: 0x53E3, - 11934: 0x6263, - 11935: 0x5BC7, - 11936: 0x67AF, - 11937: 0x54ED, - 11938: 0x7A9F, - 11939: 0x82E6, - 11940: 0x9177, - 11941: 0x5E93, - 11942: 0x88E4, - 11943: 0x5938, - 11944: 0x57AE, - 11945: 0x630E, - 11946: 0x8DE8, - 11947: 0x80EF, - 11948: 0x5757, - 11949: 0x7B77, - 11950: 0x4FA9, - 11951: 0x5FEB, - 11952: 0x5BBD, - 11953: 0x6B3E, - 11954: 0x5321, - 11955: 0x7B50, - 11956: 0x72C2, - 11957: 0x6846, - 11958: 0x77FF, - 11959: 0x7736, - 11960: 0x65F7, - 11961: 0x51B5, - 11962: 0x4E8F, - 11963: 0x76D4, - 11964: 0x5CBF, - 11965: 0x7AA5, - 11966: 0x8475, - 11967: 0x594E, - 11968: 0x9B41, - 11969: 0x5080, - 11970: 0x7E5E, - 11971: 0x7E5F, - 11972: 0x7E60, - 11973: 0x7E61, - 11974: 0x7E62, - 11975: 0x7E63, - 11976: 0x7E64, - 11977: 0x7E65, - 11978: 0x7E66, - 11979: 0x7E67, - 11980: 0x7E68, - 11981: 0x7E69, - 11982: 0x7E6A, - 11983: 0x7E6B, - 11984: 0x7E6C, - 11985: 0x7E6D, - 11986: 0x7E6E, - 11987: 0x7E6F, - 11988: 0x7E70, - 11989: 0x7E71, - 11990: 0x7E72, - 11991: 0x7E73, - 11992: 0x7E74, - 11993: 0x7E75, - 11994: 0x7E76, - 11995: 0x7E77, - 11996: 0x7E78, - 11997: 0x7E79, - 11998: 0x7E7A, - 11999: 0x7E7B, - 12000: 0x7E7C, - 12001: 0x7E7D, - 12002: 0x7E7E, - 12003: 0x7E7F, - 12004: 0x7E80, - 12005: 0x7E81, - 12006: 0x7E83, - 12007: 0x7E84, - 12008: 0x7E85, - 12009: 0x7E86, - 12010: 0x7E87, - 12011: 0x7E88, - 12012: 0x7E89, - 12013: 0x7E8A, - 12014: 0x7E8B, - 12015: 0x7E8C, - 12016: 0x7E8D, - 12017: 0x7E8E, - 12018: 0x7E8F, - 12019: 0x7E90, - 12020: 0x7E91, - 12021: 0x7E92, - 12022: 0x7E93, - 12023: 0x7E94, - 12024: 0x7E95, - 12025: 0x7E96, - 12026: 0x7E97, - 12027: 0x7E98, - 12028: 0x7E99, - 12029: 0x7E9A, - 12030: 0x7E9C, - 12031: 0x7E9D, - 12032: 0x7E9E, - 12033: 0x7EAE, - 12034: 0x7EB4, - 12035: 0x7EBB, - 12036: 0x7EBC, - 12037: 0x7ED6, - 12038: 0x7EE4, - 12039: 0x7EEC, - 12040: 0x7EF9, - 12041: 0x7F0A, - 12042: 0x7F10, - 12043: 0x7F1E, - 12044: 0x7F37, - 12045: 0x7F39, - 12046: 0x7F3B, - 12047: 0x7F3C, - 12048: 0x7F3D, - 12049: 0x7F3E, - 12050: 0x7F3F, - 12051: 0x7F40, - 12052: 0x7F41, - 12053: 0x7F43, - 12054: 0x7F46, - 12055: 0x7F47, - 12056: 0x7F48, - 12057: 0x7F49, - 12058: 0x7F4A, - 12059: 0x7F4B, - 12060: 0x7F4C, - 12061: 0x7F4D, - 12062: 0x7F4E, - 12063: 0x7F4F, - 12064: 0x7F52, - 12065: 0x7F53, - 12066: 0x9988, - 12067: 0x6127, - 12068: 0x6E83, - 12069: 0x5764, - 12070: 0x6606, - 12071: 0x6346, - 12072: 0x56F0, - 12073: 0x62EC, - 12074: 0x6269, - 12075: 0x5ED3, - 12076: 0x9614, - 12077: 0x5783, - 12078: 0x62C9, - 12079: 0x5587, - 12080: 0x8721, - 12081: 0x814A, - 12082: 0x8FA3, - 12083: 0x5566, - 12084: 0x83B1, - 12085: 0x6765, - 12086: 0x8D56, - 12087: 0x84DD, - 12088: 0x5A6A, - 12089: 0x680F, - 12090: 0x62E6, - 12091: 0x7BEE, - 12092: 0x9611, - 12093: 0x5170, - 12094: 0x6F9C, - 12095: 0x8C30, - 12096: 0x63FD, - 12097: 0x89C8, - 12098: 0x61D2, - 12099: 0x7F06, - 12100: 0x70C2, - 12101: 0x6EE5, - 12102: 0x7405, - 12103: 0x6994, - 12104: 0x72FC, - 12105: 0x5ECA, - 12106: 0x90CE, - 12107: 0x6717, - 12108: 0x6D6A, - 12109: 0x635E, - 12110: 0x52B3, - 12111: 0x7262, - 12112: 0x8001, - 12113: 0x4F6C, - 12114: 0x59E5, - 12115: 0x916A, - 12116: 0x70D9, - 12117: 0x6D9D, - 12118: 0x52D2, - 12119: 0x4E50, - 12120: 0x96F7, - 12121: 0x956D, - 12122: 0x857E, - 12123: 0x78CA, - 12124: 0x7D2F, - 12125: 0x5121, - 12126: 0x5792, - 12127: 0x64C2, - 12128: 0x808B, - 12129: 0x7C7B, - 12130: 0x6CEA, - 12131: 0x68F1, - 12132: 0x695E, - 12133: 0x51B7, - 12134: 0x5398, - 12135: 0x68A8, - 12136: 0x7281, - 12137: 0x9ECE, - 12138: 0x7BF1, - 12139: 0x72F8, - 12140: 0x79BB, - 12141: 0x6F13, - 12142: 0x7406, - 12143: 0x674E, - 12144: 0x91CC, - 12145: 0x9CA4, - 12146: 0x793C, - 12147: 0x8389, - 12148: 0x8354, - 12149: 0x540F, - 12150: 0x6817, - 12151: 0x4E3D, - 12152: 0x5389, - 12153: 0x52B1, - 12154: 0x783E, - 12155: 0x5386, - 12156: 0x5229, - 12157: 0x5088, - 12158: 0x4F8B, - 12159: 0x4FD0, - 12160: 0x7F56, - 12161: 0x7F59, - 12162: 0x7F5B, - 12163: 0x7F5C, - 12164: 0x7F5D, - 12165: 0x7F5E, - 12166: 0x7F60, - 12167: 0x7F63, - 12168: 0x7F64, - 12169: 0x7F65, - 12170: 0x7F66, - 12171: 0x7F67, - 12172: 0x7F6B, - 12173: 0x7F6C, - 12174: 0x7F6D, - 12175: 0x7F6F, - 12176: 0x7F70, - 12177: 0x7F73, - 12178: 0x7F75, - 12179: 0x7F76, - 12180: 0x7F77, - 12181: 0x7F78, - 12182: 0x7F7A, - 12183: 0x7F7B, - 12184: 0x7F7C, - 12185: 0x7F7D, - 12186: 0x7F7F, - 12187: 0x7F80, - 12188: 0x7F82, - 12189: 0x7F83, - 12190: 0x7F84, - 12191: 0x7F85, - 12192: 0x7F86, - 12193: 0x7F87, - 12194: 0x7F88, - 12195: 0x7F89, - 12196: 0x7F8B, - 12197: 0x7F8D, - 12198: 0x7F8F, - 12199: 0x7F90, - 12200: 0x7F91, - 12201: 0x7F92, - 12202: 0x7F93, - 12203: 0x7F95, - 12204: 0x7F96, - 12205: 0x7F97, - 12206: 0x7F98, - 12207: 0x7F99, - 12208: 0x7F9B, - 12209: 0x7F9C, - 12210: 0x7FA0, - 12211: 0x7FA2, - 12212: 0x7FA3, - 12213: 0x7FA5, - 12214: 0x7FA6, - 12215: 0x7FA8, - 12216: 0x7FA9, - 12217: 0x7FAA, - 12218: 0x7FAB, - 12219: 0x7FAC, - 12220: 0x7FAD, - 12221: 0x7FAE, - 12222: 0x7FB1, - 12223: 0x7FB3, - 12224: 0x7FB4, - 12225: 0x7FB5, - 12226: 0x7FB6, - 12227: 0x7FB7, - 12228: 0x7FBA, - 12229: 0x7FBB, - 12230: 0x7FBE, - 12231: 0x7FC0, - 12232: 0x7FC2, - 12233: 0x7FC3, - 12234: 0x7FC4, - 12235: 0x7FC6, - 12236: 0x7FC7, - 12237: 0x7FC8, - 12238: 0x7FC9, - 12239: 0x7FCB, - 12240: 0x7FCD, - 12241: 0x7FCF, - 12242: 0x7FD0, - 12243: 0x7FD1, - 12244: 0x7FD2, - 12245: 0x7FD3, - 12246: 0x7FD6, - 12247: 0x7FD7, - 12248: 0x7FD9, - 12249: 0x7FDA, - 12250: 0x7FDB, - 12251: 0x7FDC, - 12252: 0x7FDD, - 12253: 0x7FDE, - 12254: 0x7FE2, - 12255: 0x7FE3, - 12256: 0x75E2, - 12257: 0x7ACB, - 12258: 0x7C92, - 12259: 0x6CA5, - 12260: 0x96B6, - 12261: 0x529B, - 12262: 0x7483, - 12263: 0x54E9, - 12264: 0x4FE9, - 12265: 0x8054, - 12266: 0x83B2, - 12267: 0x8FDE, - 12268: 0x9570, - 12269: 0x5EC9, - 12270: 0x601C, - 12271: 0x6D9F, - 12272: 0x5E18, - 12273: 0x655B, - 12274: 0x8138, - 12275: 0x94FE, - 12276: 0x604B, - 12277: 0x70BC, - 12278: 0x7EC3, - 12279: 0x7CAE, - 12280: 0x51C9, - 12281: 0x6881, - 12282: 0x7CB1, - 12283: 0x826F, - 12284: 0x4E24, - 12285: 0x8F86, - 12286: 0x91CF, - 12287: 0x667E, - 12288: 0x4EAE, - 12289: 0x8C05, - 12290: 0x64A9, - 12291: 0x804A, - 12292: 0x50DA, - 12293: 0x7597, - 12294: 0x71CE, - 12295: 0x5BE5, - 12296: 0x8FBD, - 12297: 0x6F66, - 12298: 0x4E86, - 12299: 0x6482, - 12300: 0x9563, - 12301: 0x5ED6, - 12302: 0x6599, - 12303: 0x5217, - 12304: 0x88C2, - 12305: 0x70C8, - 12306: 0x52A3, - 12307: 0x730E, - 12308: 0x7433, - 12309: 0x6797, - 12310: 0x78F7, - 12311: 0x9716, - 12312: 0x4E34, - 12313: 0x90BB, - 12314: 0x9CDE, - 12315: 0x6DCB, - 12316: 0x51DB, - 12317: 0x8D41, - 12318: 0x541D, - 12319: 0x62CE, - 12320: 0x73B2, - 12321: 0x83F1, - 12322: 0x96F6, - 12323: 0x9F84, - 12324: 0x94C3, - 12325: 0x4F36, - 12326: 0x7F9A, - 12327: 0x51CC, - 12328: 0x7075, - 12329: 0x9675, - 12330: 0x5CAD, - 12331: 0x9886, - 12332: 0x53E6, - 12333: 0x4EE4, - 12334: 0x6E9C, - 12335: 0x7409, - 12336: 0x69B4, - 12337: 0x786B, - 12338: 0x998F, - 12339: 0x7559, - 12340: 0x5218, - 12341: 0x7624, - 12342: 0x6D41, - 12343: 0x67F3, - 12344: 0x516D, - 12345: 0x9F99, - 12346: 0x804B, - 12347: 0x5499, - 12348: 0x7B3C, - 12349: 0x7ABF, - 12350: 0x7FE4, - 12351: 0x7FE7, - 12352: 0x7FE8, - 12353: 0x7FEA, - 12354: 0x7FEB, - 12355: 0x7FEC, - 12356: 0x7FED, - 12357: 0x7FEF, - 12358: 0x7FF2, - 12359: 0x7FF4, - 12360: 0x7FF5, - 12361: 0x7FF6, - 12362: 0x7FF7, - 12363: 0x7FF8, - 12364: 0x7FF9, - 12365: 0x7FFA, - 12366: 0x7FFD, - 12367: 0x7FFE, - 12368: 0x7FFF, - 12369: 0x8002, - 12370: 0x8007, - 12371: 0x8008, - 12372: 0x8009, - 12373: 0x800A, - 12374: 0x800E, - 12375: 0x800F, - 12376: 0x8011, - 12377: 0x8013, - 12378: 0x801A, - 12379: 0x801B, - 12380: 0x801D, - 12381: 0x801E, - 12382: 0x801F, - 12383: 0x8021, - 12384: 0x8023, - 12385: 0x8024, - 12386: 0x802B, - 12387: 0x802C, - 12388: 0x802D, - 12389: 0x802E, - 12390: 0x802F, - 12391: 0x8030, - 12392: 0x8032, - 12393: 0x8034, - 12394: 0x8039, - 12395: 0x803A, - 12396: 0x803C, - 12397: 0x803E, - 12398: 0x8040, - 12399: 0x8041, - 12400: 0x8044, - 12401: 0x8045, - 12402: 0x8047, - 12403: 0x8048, - 12404: 0x8049, - 12405: 0x804E, - 12406: 0x804F, - 12407: 0x8050, - 12408: 0x8051, - 12409: 0x8053, - 12410: 0x8055, - 12411: 0x8056, - 12412: 0x8057, - 12413: 0x8059, - 12414: 0x805B, - 12415: 0x805C, - 12416: 0x805D, - 12417: 0x805E, - 12418: 0x805F, - 12419: 0x8060, - 12420: 0x8061, - 12421: 0x8062, - 12422: 0x8063, - 12423: 0x8064, - 12424: 0x8065, - 12425: 0x8066, - 12426: 0x8067, - 12427: 0x8068, - 12428: 0x806B, - 12429: 0x806C, - 12430: 0x806D, - 12431: 0x806E, - 12432: 0x806F, - 12433: 0x8070, - 12434: 0x8072, - 12435: 0x8073, - 12436: 0x8074, - 12437: 0x8075, - 12438: 0x8076, - 12439: 0x8077, - 12440: 0x8078, - 12441: 0x8079, - 12442: 0x807A, - 12443: 0x807B, - 12444: 0x807C, - 12445: 0x807D, - 12446: 0x9686, - 12447: 0x5784, - 12448: 0x62E2, - 12449: 0x9647, - 12450: 0x697C, - 12451: 0x5A04, - 12452: 0x6402, - 12453: 0x7BD3, - 12454: 0x6F0F, - 12455: 0x964B, - 12456: 0x82A6, - 12457: 0x5362, - 12458: 0x9885, - 12459: 0x5E90, - 12460: 0x7089, - 12461: 0x63B3, - 12462: 0x5364, - 12463: 0x864F, - 12464: 0x9C81, - 12465: 0x9E93, - 12466: 0x788C, - 12467: 0x9732, - 12468: 0x8DEF, - 12469: 0x8D42, - 12470: 0x9E7F, - 12471: 0x6F5E, - 12472: 0x7984, - 12473: 0x5F55, - 12474: 0x9646, - 12475: 0x622E, - 12476: 0x9A74, - 12477: 0x5415, - 12478: 0x94DD, - 12479: 0x4FA3, - 12480: 0x65C5, - 12481: 0x5C65, - 12482: 0x5C61, - 12483: 0x7F15, - 12484: 0x8651, - 12485: 0x6C2F, - 12486: 0x5F8B, - 12487: 0x7387, - 12488: 0x6EE4, - 12489: 0x7EFF, - 12490: 0x5CE6, - 12491: 0x631B, - 12492: 0x5B6A, - 12493: 0x6EE6, - 12494: 0x5375, - 12495: 0x4E71, - 12496: 0x63A0, - 12497: 0x7565, - 12498: 0x62A1, - 12499: 0x8F6E, - 12500: 0x4F26, - 12501: 0x4ED1, - 12502: 0x6CA6, - 12503: 0x7EB6, - 12504: 0x8BBA, - 12505: 0x841D, - 12506: 0x87BA, - 12507: 0x7F57, - 12508: 0x903B, - 12509: 0x9523, - 12510: 0x7BA9, - 12511: 0x9AA1, - 12512: 0x88F8, - 12513: 0x843D, - 12514: 0x6D1B, - 12515: 0x9A86, - 12516: 0x7EDC, - 12517: 0x5988, - 12518: 0x9EBB, - 12519: 0x739B, - 12520: 0x7801, - 12521: 0x8682, - 12522: 0x9A6C, - 12523: 0x9A82, - 12524: 0x561B, - 12525: 0x5417, - 12526: 0x57CB, - 12527: 0x4E70, - 12528: 0x9EA6, - 12529: 0x5356, - 12530: 0x8FC8, - 12531: 0x8109, - 12532: 0x7792, - 12533: 0x9992, - 12534: 0x86EE, - 12535: 0x6EE1, - 12536: 0x8513, - 12537: 0x66FC, - 12538: 0x6162, - 12539: 0x6F2B, - 12540: 0x807E, - 12541: 0x8081, - 12542: 0x8082, - 12543: 0x8085, - 12544: 0x8088, - 12545: 0x808A, - 12546: 0x808D, - 12547: 0x808E, - 12548: 0x808F, - 12549: 0x8090, - 12550: 0x8091, - 12551: 0x8092, - 12552: 0x8094, - 12553: 0x8095, - 12554: 0x8097, - 12555: 0x8099, - 12556: 0x809E, - 12557: 0x80A3, - 12558: 0x80A6, - 12559: 0x80A7, - 12560: 0x80A8, - 12561: 0x80AC, - 12562: 0x80B0, - 12563: 0x80B3, - 12564: 0x80B5, - 12565: 0x80B6, - 12566: 0x80B8, - 12567: 0x80B9, - 12568: 0x80BB, - 12569: 0x80C5, - 12570: 0x80C7, - 12571: 0x80C8, - 12572: 0x80C9, - 12573: 0x80CA, - 12574: 0x80CB, - 12575: 0x80CF, - 12576: 0x80D0, - 12577: 0x80D1, - 12578: 0x80D2, - 12579: 0x80D3, - 12580: 0x80D4, - 12581: 0x80D5, - 12582: 0x80D8, - 12583: 0x80DF, - 12584: 0x80E0, - 12585: 0x80E2, - 12586: 0x80E3, - 12587: 0x80E6, - 12588: 0x80EE, - 12589: 0x80F5, - 12590: 0x80F7, - 12591: 0x80F9, - 12592: 0x80FB, - 12593: 0x80FE, - 12594: 0x80FF, - 12595: 0x8100, - 12596: 0x8101, - 12597: 0x8103, - 12598: 0x8104, - 12599: 0x8105, - 12600: 0x8107, - 12601: 0x8108, - 12602: 0x810B, - 12603: 0x810C, - 12604: 0x8115, - 12605: 0x8117, - 12606: 0x8119, - 12607: 0x811B, - 12608: 0x811C, - 12609: 0x811D, - 12610: 0x811F, - 12611: 0x8120, - 12612: 0x8121, - 12613: 0x8122, - 12614: 0x8123, - 12615: 0x8124, - 12616: 0x8125, - 12617: 0x8126, - 12618: 0x8127, - 12619: 0x8128, - 12620: 0x8129, - 12621: 0x812A, - 12622: 0x812B, - 12623: 0x812D, - 12624: 0x812E, - 12625: 0x8130, - 12626: 0x8133, - 12627: 0x8134, - 12628: 0x8135, - 12629: 0x8137, - 12630: 0x8139, - 12631: 0x813A, - 12632: 0x813B, - 12633: 0x813C, - 12634: 0x813D, - 12635: 0x813F, - 12636: 0x8C29, - 12637: 0x8292, - 12638: 0x832B, - 12639: 0x76F2, - 12640: 0x6C13, - 12641: 0x5FD9, - 12642: 0x83BD, - 12643: 0x732B, - 12644: 0x8305, - 12645: 0x951A, - 12646: 0x6BDB, - 12647: 0x77DB, - 12648: 0x94C6, - 12649: 0x536F, - 12650: 0x8302, - 12651: 0x5192, - 12652: 0x5E3D, - 12653: 0x8C8C, - 12654: 0x8D38, - 12655: 0x4E48, - 12656: 0x73AB, - 12657: 0x679A, - 12658: 0x6885, - 12659: 0x9176, - 12660: 0x9709, - 12661: 0x7164, - 12662: 0x6CA1, - 12663: 0x7709, - 12664: 0x5A92, - 12665: 0x9541, - 12666: 0x6BCF, - 12667: 0x7F8E, - 12668: 0x6627, - 12669: 0x5BD0, - 12670: 0x59B9, - 12671: 0x5A9A, - 12672: 0x95E8, - 12673: 0x95F7, - 12674: 0x4EEC, - 12675: 0x840C, - 12676: 0x8499, - 12677: 0x6AAC, - 12678: 0x76DF, - 12679: 0x9530, - 12680: 0x731B, - 12681: 0x68A6, - 12682: 0x5B5F, - 12683: 0x772F, - 12684: 0x919A, - 12685: 0x9761, - 12686: 0x7CDC, - 12687: 0x8FF7, - 12688: 0x8C1C, - 12689: 0x5F25, - 12690: 0x7C73, - 12691: 0x79D8, - 12692: 0x89C5, - 12693: 0x6CCC, - 12694: 0x871C, - 12695: 0x5BC6, - 12696: 0x5E42, - 12697: 0x68C9, - 12698: 0x7720, - 12699: 0x7EF5, - 12700: 0x5195, - 12701: 0x514D, - 12702: 0x52C9, - 12703: 0x5A29, - 12704: 0x7F05, - 12705: 0x9762, - 12706: 0x82D7, - 12707: 0x63CF, - 12708: 0x7784, - 12709: 0x85D0, - 12710: 0x79D2, - 12711: 0x6E3A, - 12712: 0x5E99, - 12713: 0x5999, - 12714: 0x8511, - 12715: 0x706D, - 12716: 0x6C11, - 12717: 0x62BF, - 12718: 0x76BF, - 12719: 0x654F, - 12720: 0x60AF, - 12721: 0x95FD, - 12722: 0x660E, - 12723: 0x879F, - 12724: 0x9E23, - 12725: 0x94ED, - 12726: 0x540D, - 12727: 0x547D, - 12728: 0x8C2C, - 12729: 0x6478, - 12730: 0x8140, - 12731: 0x8141, - 12732: 0x8142, - 12733: 0x8143, - 12734: 0x8144, - 12735: 0x8145, - 12736: 0x8147, - 12737: 0x8149, - 12738: 0x814D, - 12739: 0x814E, - 12740: 0x814F, - 12741: 0x8152, - 12742: 0x8156, - 12743: 0x8157, - 12744: 0x8158, - 12745: 0x815B, - 12746: 0x815C, - 12747: 0x815D, - 12748: 0x815E, - 12749: 0x815F, - 12750: 0x8161, - 12751: 0x8162, - 12752: 0x8163, - 12753: 0x8164, - 12754: 0x8166, - 12755: 0x8168, - 12756: 0x816A, - 12757: 0x816B, - 12758: 0x816C, - 12759: 0x816F, - 12760: 0x8172, - 12761: 0x8173, - 12762: 0x8175, - 12763: 0x8176, - 12764: 0x8177, - 12765: 0x8178, - 12766: 0x8181, - 12767: 0x8183, - 12768: 0x8184, - 12769: 0x8185, - 12770: 0x8186, - 12771: 0x8187, - 12772: 0x8189, - 12773: 0x818B, - 12774: 0x818C, - 12775: 0x818D, - 12776: 0x818E, - 12777: 0x8190, - 12778: 0x8192, - 12779: 0x8193, - 12780: 0x8194, - 12781: 0x8195, - 12782: 0x8196, - 12783: 0x8197, - 12784: 0x8199, - 12785: 0x819A, - 12786: 0x819E, - 12787: 0x819F, - 12788: 0x81A0, - 12789: 0x81A1, - 12790: 0x81A2, - 12791: 0x81A4, - 12792: 0x81A5, - 12793: 0x81A7, - 12794: 0x81A9, - 12795: 0x81AB, - 12796: 0x81AC, - 12797: 0x81AD, - 12798: 0x81AE, - 12799: 0x81AF, - 12800: 0x81B0, - 12801: 0x81B1, - 12802: 0x81B2, - 12803: 0x81B4, - 12804: 0x81B5, - 12805: 0x81B6, - 12806: 0x81B7, - 12807: 0x81B8, - 12808: 0x81B9, - 12809: 0x81BC, - 12810: 0x81BD, - 12811: 0x81BE, - 12812: 0x81BF, - 12813: 0x81C4, - 12814: 0x81C5, - 12815: 0x81C7, - 12816: 0x81C8, - 12817: 0x81C9, - 12818: 0x81CB, - 12819: 0x81CD, - 12820: 0x81CE, - 12821: 0x81CF, - 12822: 0x81D0, - 12823: 0x81D1, - 12824: 0x81D2, - 12825: 0x81D3, - 12826: 0x6479, - 12827: 0x8611, - 12828: 0x6A21, - 12829: 0x819C, - 12830: 0x78E8, - 12831: 0x6469, - 12832: 0x9B54, - 12833: 0x62B9, - 12834: 0x672B, - 12835: 0x83AB, - 12836: 0x58A8, - 12837: 0x9ED8, - 12838: 0x6CAB, - 12839: 0x6F20, - 12840: 0x5BDE, - 12841: 0x964C, - 12842: 0x8C0B, - 12843: 0x725F, - 12844: 0x67D0, - 12845: 0x62C7, - 12846: 0x7261, - 12847: 0x4EA9, - 12848: 0x59C6, - 12849: 0x6BCD, - 12850: 0x5893, - 12851: 0x66AE, - 12852: 0x5E55, - 12853: 0x52DF, - 12854: 0x6155, - 12855: 0x6728, - 12856: 0x76EE, - 12857: 0x7766, - 12858: 0x7267, - 12859: 0x7A46, - 12860: 0x62FF, - 12861: 0x54EA, - 12862: 0x5450, - 12863: 0x94A0, - 12864: 0x90A3, - 12865: 0x5A1C, - 12866: 0x7EB3, - 12867: 0x6C16, - 12868: 0x4E43, - 12869: 0x5976, - 12870: 0x8010, - 12871: 0x5948, - 12872: 0x5357, - 12873: 0x7537, - 12874: 0x96BE, - 12875: 0x56CA, - 12876: 0x6320, - 12877: 0x8111, - 12878: 0x607C, - 12879: 0x95F9, - 12880: 0x6DD6, - 12881: 0x5462, - 12882: 0x9981, - 12883: 0x5185, - 12884: 0x5AE9, - 12885: 0x80FD, - 12886: 0x59AE, - 12887: 0x9713, - 12888: 0x502A, - 12889: 0x6CE5, - 12890: 0x5C3C, - 12891: 0x62DF, - 12892: 0x4F60, - 12893: 0x533F, - 12894: 0x817B, - 12895: 0x9006, - 12896: 0x6EBA, - 12897: 0x852B, - 12898: 0x62C8, - 12899: 0x5E74, - 12900: 0x78BE, - 12901: 0x64B5, - 12902: 0x637B, - 12903: 0x5FF5, - 12904: 0x5A18, - 12905: 0x917F, - 12906: 0x9E1F, - 12907: 0x5C3F, - 12908: 0x634F, - 12909: 0x8042, - 12910: 0x5B7D, - 12911: 0x556E, - 12912: 0x954A, - 12913: 0x954D, - 12914: 0x6D85, - 12915: 0x60A8, - 12916: 0x67E0, - 12917: 0x72DE, - 12918: 0x51DD, - 12919: 0x5B81, - 12920: 0x81D4, - 12921: 0x81D5, - 12922: 0x81D6, - 12923: 0x81D7, - 12924: 0x81D8, - 12925: 0x81D9, - 12926: 0x81DA, - 12927: 0x81DB, - 12928: 0x81DC, - 12929: 0x81DD, - 12930: 0x81DE, - 12931: 0x81DF, - 12932: 0x81E0, - 12933: 0x81E1, - 12934: 0x81E2, - 12935: 0x81E4, - 12936: 0x81E5, - 12937: 0x81E6, - 12938: 0x81E8, - 12939: 0x81E9, - 12940: 0x81EB, - 12941: 0x81EE, - 12942: 0x81EF, - 12943: 0x81F0, - 12944: 0x81F1, - 12945: 0x81F2, - 12946: 0x81F5, - 12947: 0x81F6, - 12948: 0x81F7, - 12949: 0x81F8, - 12950: 0x81F9, - 12951: 0x81FA, - 12952: 0x81FD, - 12953: 0x81FF, - 12954: 0x8203, - 12955: 0x8207, - 12956: 0x8208, - 12957: 0x8209, - 12958: 0x820A, - 12959: 0x820B, - 12960: 0x820E, - 12961: 0x820F, - 12962: 0x8211, - 12963: 0x8213, - 12964: 0x8215, - 12965: 0x8216, - 12966: 0x8217, - 12967: 0x8218, - 12968: 0x8219, - 12969: 0x821A, - 12970: 0x821D, - 12971: 0x8220, - 12972: 0x8224, - 12973: 0x8225, - 12974: 0x8226, - 12975: 0x8227, - 12976: 0x8229, - 12977: 0x822E, - 12978: 0x8232, - 12979: 0x823A, - 12980: 0x823C, - 12981: 0x823D, - 12982: 0x823F, - 12983: 0x8240, - 12984: 0x8241, - 12985: 0x8242, - 12986: 0x8243, - 12987: 0x8245, - 12988: 0x8246, - 12989: 0x8248, - 12990: 0x824A, - 12991: 0x824C, - 12992: 0x824D, - 12993: 0x824E, - 12994: 0x8250, - 12995: 0x8251, - 12996: 0x8252, - 12997: 0x8253, - 12998: 0x8254, - 12999: 0x8255, - 13000: 0x8256, - 13001: 0x8257, - 13002: 0x8259, - 13003: 0x825B, - 13004: 0x825C, - 13005: 0x825D, - 13006: 0x825E, - 13007: 0x8260, - 13008: 0x8261, - 13009: 0x8262, - 13010: 0x8263, - 13011: 0x8264, - 13012: 0x8265, - 13013: 0x8266, - 13014: 0x8267, - 13015: 0x8269, - 13016: 0x62E7, - 13017: 0x6CDE, - 13018: 0x725B, - 13019: 0x626D, - 13020: 0x94AE, - 13021: 0x7EBD, - 13022: 0x8113, - 13023: 0x6D53, - 13024: 0x519C, - 13025: 0x5F04, - 13026: 0x5974, - 13027: 0x52AA, - 13028: 0x6012, - 13029: 0x5973, - 13030: 0x6696, - 13031: 0x8650, - 13032: 0x759F, - 13033: 0x632A, - 13034: 0x61E6, - 13035: 0x7CEF, - 13036: 0x8BFA, - 13037: 0x54E6, - 13038: 0x6B27, - 13039: 0x9E25, - 13040: 0x6BB4, - 13041: 0x85D5, - 13042: 0x5455, - 13043: 0x5076, - 13044: 0x6CA4, - 13045: 0x556A, - 13046: 0x8DB4, - 13047: 0x722C, - 13048: 0x5E15, - 13049: 0x6015, - 13050: 0x7436, - 13051: 0x62CD, - 13052: 0x6392, - 13053: 0x724C, - 13054: 0x5F98, - 13055: 0x6E43, - 13056: 0x6D3E, - 13057: 0x6500, - 13058: 0x6F58, - 13059: 0x76D8, - 13060: 0x78D0, - 13061: 0x76FC, - 13062: 0x7554, - 13063: 0x5224, - 13064: 0x53DB, - 13065: 0x4E53, - 13066: 0x5E9E, - 13067: 0x65C1, - 13068: 0x802A, - 13069: 0x80D6, - 13070: 0x629B, - 13071: 0x5486, - 13072: 0x5228, - 13073: 0x70AE, - 13074: 0x888D, - 13075: 0x8DD1, - 13076: 0x6CE1, - 13077: 0x5478, - 13078: 0x80DA, - 13079: 0x57F9, - 13080: 0x88F4, - 13081: 0x8D54, - 13082: 0x966A, - 13083: 0x914D, - 13084: 0x4F69, - 13085: 0x6C9B, - 13086: 0x55B7, - 13087: 0x76C6, - 13088: 0x7830, - 13089: 0x62A8, - 13090: 0x70F9, - 13091: 0x6F8E, - 13092: 0x5F6D, - 13093: 0x84EC, - 13094: 0x68DA, - 13095: 0x787C, - 13096: 0x7BF7, - 13097: 0x81A8, - 13098: 0x670B, - 13099: 0x9E4F, - 13100: 0x6367, - 13101: 0x78B0, - 13102: 0x576F, - 13103: 0x7812, - 13104: 0x9739, - 13105: 0x6279, - 13106: 0x62AB, - 13107: 0x5288, - 13108: 0x7435, - 13109: 0x6BD7, - 13110: 0x826A, - 13111: 0x826B, - 13112: 0x826C, - 13113: 0x826D, - 13114: 0x8271, - 13115: 0x8275, - 13116: 0x8276, - 13117: 0x8277, - 13118: 0x8278, - 13119: 0x827B, - 13120: 0x827C, - 13121: 0x8280, - 13122: 0x8281, - 13123: 0x8283, - 13124: 0x8285, - 13125: 0x8286, - 13126: 0x8287, - 13127: 0x8289, - 13128: 0x828C, - 13129: 0x8290, - 13130: 0x8293, - 13131: 0x8294, - 13132: 0x8295, - 13133: 0x8296, - 13134: 0x829A, - 13135: 0x829B, - 13136: 0x829E, - 13137: 0x82A0, - 13138: 0x82A2, - 13139: 0x82A3, - 13140: 0x82A7, - 13141: 0x82B2, - 13142: 0x82B5, - 13143: 0x82B6, - 13144: 0x82BA, - 13145: 0x82BB, - 13146: 0x82BC, - 13147: 0x82BF, - 13148: 0x82C0, - 13149: 0x82C2, - 13150: 0x82C3, - 13151: 0x82C5, - 13152: 0x82C6, - 13153: 0x82C9, - 13154: 0x82D0, - 13155: 0x82D6, - 13156: 0x82D9, - 13157: 0x82DA, - 13158: 0x82DD, - 13159: 0x82E2, - 13160: 0x82E7, - 13161: 0x82E8, - 13162: 0x82E9, - 13163: 0x82EA, - 13164: 0x82EC, - 13165: 0x82ED, - 13166: 0x82EE, - 13167: 0x82F0, - 13168: 0x82F2, - 13169: 0x82F3, - 13170: 0x82F5, - 13171: 0x82F6, - 13172: 0x82F8, - 13173: 0x82FA, - 13174: 0x82FC, - 13175: 0x82FD, - 13176: 0x82FE, - 13177: 0x82FF, - 13178: 0x8300, - 13179: 0x830A, - 13180: 0x830B, - 13181: 0x830D, - 13182: 0x8310, - 13183: 0x8312, - 13184: 0x8313, - 13185: 0x8316, - 13186: 0x8318, - 13187: 0x8319, - 13188: 0x831D, - 13189: 0x831E, - 13190: 0x831F, - 13191: 0x8320, - 13192: 0x8321, - 13193: 0x8322, - 13194: 0x8323, - 13195: 0x8324, - 13196: 0x8325, - 13197: 0x8326, - 13198: 0x8329, - 13199: 0x832A, - 13200: 0x832E, - 13201: 0x8330, - 13202: 0x8332, - 13203: 0x8337, - 13204: 0x833B, - 13205: 0x833D, - 13206: 0x5564, - 13207: 0x813E, - 13208: 0x75B2, - 13209: 0x76AE, - 13210: 0x5339, - 13211: 0x75DE, - 13212: 0x50FB, - 13213: 0x5C41, - 13214: 0x8B6C, - 13215: 0x7BC7, - 13216: 0x504F, - 13217: 0x7247, - 13218: 0x9A97, - 13219: 0x98D8, - 13220: 0x6F02, - 13221: 0x74E2, - 13222: 0x7968, - 13223: 0x6487, - 13224: 0x77A5, - 13225: 0x62FC, - 13226: 0x9891, - 13227: 0x8D2B, - 13228: 0x54C1, - 13229: 0x8058, - 13230: 0x4E52, - 13231: 0x576A, - 13232: 0x82F9, - 13233: 0x840D, - 13234: 0x5E73, - 13235: 0x51ED, - 13236: 0x74F6, - 13237: 0x8BC4, - 13238: 0x5C4F, - 13239: 0x5761, - 13240: 0x6CFC, - 13241: 0x9887, - 13242: 0x5A46, - 13243: 0x7834, - 13244: 0x9B44, - 13245: 0x8FEB, - 13246: 0x7C95, - 13247: 0x5256, - 13248: 0x6251, - 13249: 0x94FA, - 13250: 0x4EC6, - 13251: 0x8386, - 13252: 0x8461, - 13253: 0x83E9, - 13254: 0x84B2, - 13255: 0x57D4, - 13256: 0x6734, - 13257: 0x5703, - 13258: 0x666E, - 13259: 0x6D66, - 13260: 0x8C31, - 13261: 0x66DD, - 13262: 0x7011, - 13263: 0x671F, - 13264: 0x6B3A, - 13265: 0x6816, - 13266: 0x621A, - 13267: 0x59BB, - 13268: 0x4E03, - 13269: 0x51C4, - 13270: 0x6F06, - 13271: 0x67D2, - 13272: 0x6C8F, - 13273: 0x5176, - 13274: 0x68CB, - 13275: 0x5947, - 13276: 0x6B67, - 13277: 0x7566, - 13278: 0x5D0E, - 13279: 0x8110, - 13280: 0x9F50, - 13281: 0x65D7, - 13282: 0x7948, - 13283: 0x7941, - 13284: 0x9A91, - 13285: 0x8D77, - 13286: 0x5C82, - 13287: 0x4E5E, - 13288: 0x4F01, - 13289: 0x542F, - 13290: 0x5951, - 13291: 0x780C, - 13292: 0x5668, - 13293: 0x6C14, - 13294: 0x8FC4, - 13295: 0x5F03, - 13296: 0x6C7D, - 13297: 0x6CE3, - 13298: 0x8BAB, - 13299: 0x6390, - 13300: 0x833E, - 13301: 0x833F, - 13302: 0x8341, - 13303: 0x8342, - 13304: 0x8344, - 13305: 0x8345, - 13306: 0x8348, - 13307: 0x834A, - 13308: 0x834B, - 13309: 0x834C, - 13310: 0x834D, - 13311: 0x834E, - 13312: 0x8353, - 13313: 0x8355, - 13314: 0x8356, - 13315: 0x8357, - 13316: 0x8358, - 13317: 0x8359, - 13318: 0x835D, - 13319: 0x8362, - 13320: 0x8370, - 13321: 0x8371, - 13322: 0x8372, - 13323: 0x8373, - 13324: 0x8374, - 13325: 0x8375, - 13326: 0x8376, - 13327: 0x8379, - 13328: 0x837A, - 13329: 0x837E, - 13330: 0x837F, - 13331: 0x8380, - 13332: 0x8381, - 13333: 0x8382, - 13334: 0x8383, - 13335: 0x8384, - 13336: 0x8387, - 13337: 0x8388, - 13338: 0x838A, - 13339: 0x838B, - 13340: 0x838C, - 13341: 0x838D, - 13342: 0x838F, - 13343: 0x8390, - 13344: 0x8391, - 13345: 0x8394, - 13346: 0x8395, - 13347: 0x8396, - 13348: 0x8397, - 13349: 0x8399, - 13350: 0x839A, - 13351: 0x839D, - 13352: 0x839F, - 13353: 0x83A1, - 13354: 0x83A2, - 13355: 0x83A3, - 13356: 0x83A4, - 13357: 0x83A5, - 13358: 0x83A6, - 13359: 0x83A7, - 13360: 0x83AC, - 13361: 0x83AD, - 13362: 0x83AE, - 13363: 0x83AF, - 13364: 0x83B5, - 13365: 0x83BB, - 13366: 0x83BE, - 13367: 0x83BF, - 13368: 0x83C2, - 13369: 0x83C3, - 13370: 0x83C4, - 13371: 0x83C6, - 13372: 0x83C8, - 13373: 0x83C9, - 13374: 0x83CB, - 13375: 0x83CD, - 13376: 0x83CE, - 13377: 0x83D0, - 13378: 0x83D1, - 13379: 0x83D2, - 13380: 0x83D3, - 13381: 0x83D5, - 13382: 0x83D7, - 13383: 0x83D9, - 13384: 0x83DA, - 13385: 0x83DB, - 13386: 0x83DE, - 13387: 0x83E2, - 13388: 0x83E3, - 13389: 0x83E4, - 13390: 0x83E6, - 13391: 0x83E7, - 13392: 0x83E8, - 13393: 0x83EB, - 13394: 0x83EC, - 13395: 0x83ED, - 13396: 0x6070, - 13397: 0x6D3D, - 13398: 0x7275, - 13399: 0x6266, - 13400: 0x948E, - 13401: 0x94C5, - 13402: 0x5343, - 13403: 0x8FC1, - 13404: 0x7B7E, - 13405: 0x4EDF, - 13406: 0x8C26, - 13407: 0x4E7E, - 13408: 0x9ED4, - 13409: 0x94B1, - 13410: 0x94B3, - 13411: 0x524D, - 13412: 0x6F5C, - 13413: 0x9063, - 13414: 0x6D45, - 13415: 0x8C34, - 13416: 0x5811, - 13417: 0x5D4C, - 13418: 0x6B20, - 13419: 0x6B49, - 13420: 0x67AA, - 13421: 0x545B, - 13422: 0x8154, - 13423: 0x7F8C, - 13424: 0x5899, - 13425: 0x8537, - 13426: 0x5F3A, - 13427: 0x62A2, - 13428: 0x6A47, - 13429: 0x9539, - 13430: 0x6572, - 13431: 0x6084, - 13432: 0x6865, - 13433: 0x77A7, - 13434: 0x4E54, - 13435: 0x4FA8, - 13436: 0x5DE7, - 13437: 0x9798, - 13438: 0x64AC, - 13439: 0x7FD8, - 13440: 0x5CED, - 13441: 0x4FCF, - 13442: 0x7A8D, - 13443: 0x5207, - 13444: 0x8304, - 13445: 0x4E14, - 13446: 0x602F, - 13447: 0x7A83, - 13448: 0x94A6, - 13449: 0x4FB5, - 13450: 0x4EB2, - 13451: 0x79E6, - 13452: 0x7434, - 13453: 0x52E4, - 13454: 0x82B9, - 13455: 0x64D2, - 13456: 0x79BD, - 13457: 0x5BDD, - 13458: 0x6C81, - 13459: 0x9752, - 13460: 0x8F7B, - 13461: 0x6C22, - 13462: 0x503E, - 13463: 0x537F, - 13464: 0x6E05, - 13465: 0x64CE, - 13466: 0x6674, - 13467: 0x6C30, - 13468: 0x60C5, - 13469: 0x9877, - 13470: 0x8BF7, - 13471: 0x5E86, - 13472: 0x743C, - 13473: 0x7A77, - 13474: 0x79CB, - 13475: 0x4E18, - 13476: 0x90B1, - 13477: 0x7403, - 13478: 0x6C42, - 13479: 0x56DA, - 13480: 0x914B, - 13481: 0x6CC5, - 13482: 0x8D8B, - 13483: 0x533A, - 13484: 0x86C6, - 13485: 0x66F2, - 13486: 0x8EAF, - 13487: 0x5C48, - 13488: 0x9A71, - 13489: 0x6E20, - 13490: 0x83EE, - 13491: 0x83EF, - 13492: 0x83F3, - 13493: 0x83F4, - 13494: 0x83F5, - 13495: 0x83F6, - 13496: 0x83F7, - 13497: 0x83FA, - 13498: 0x83FB, - 13499: 0x83FC, - 13500: 0x83FE, - 13501: 0x83FF, - 13502: 0x8400, - 13503: 0x8402, - 13504: 0x8405, - 13505: 0x8407, - 13506: 0x8408, - 13507: 0x8409, - 13508: 0x840A, - 13509: 0x8410, - 13510: 0x8412, - 13511: 0x8413, - 13512: 0x8414, - 13513: 0x8415, - 13514: 0x8416, - 13515: 0x8417, - 13516: 0x8419, - 13517: 0x841A, - 13518: 0x841B, - 13519: 0x841E, - 13520: 0x841F, - 13521: 0x8420, - 13522: 0x8421, - 13523: 0x8422, - 13524: 0x8423, - 13525: 0x8429, - 13526: 0x842A, - 13527: 0x842B, - 13528: 0x842C, - 13529: 0x842D, - 13530: 0x842E, - 13531: 0x842F, - 13532: 0x8430, - 13533: 0x8432, - 13534: 0x8433, - 13535: 0x8434, - 13536: 0x8435, - 13537: 0x8436, - 13538: 0x8437, - 13539: 0x8439, - 13540: 0x843A, - 13541: 0x843B, - 13542: 0x843E, - 13543: 0x843F, - 13544: 0x8440, - 13545: 0x8441, - 13546: 0x8442, - 13547: 0x8443, - 13548: 0x8444, - 13549: 0x8445, - 13550: 0x8447, - 13551: 0x8448, - 13552: 0x8449, - 13553: 0x844A, - 13554: 0x844B, - 13555: 0x844C, - 13556: 0x844D, - 13557: 0x844E, - 13558: 0x844F, - 13559: 0x8450, - 13560: 0x8452, - 13561: 0x8453, - 13562: 0x8454, - 13563: 0x8455, - 13564: 0x8456, - 13565: 0x8458, - 13566: 0x845D, - 13567: 0x845E, - 13568: 0x845F, - 13569: 0x8460, - 13570: 0x8462, - 13571: 0x8464, - 13572: 0x8465, - 13573: 0x8466, - 13574: 0x8467, - 13575: 0x8468, - 13576: 0x846A, - 13577: 0x846E, - 13578: 0x846F, - 13579: 0x8470, - 13580: 0x8472, - 13581: 0x8474, - 13582: 0x8477, - 13583: 0x8479, - 13584: 0x847B, - 13585: 0x847C, - 13586: 0x53D6, - 13587: 0x5A36, - 13588: 0x9F8B, - 13589: 0x8DA3, - 13590: 0x53BB, - 13591: 0x5708, - 13592: 0x98A7, - 13593: 0x6743, - 13594: 0x919B, - 13595: 0x6CC9, - 13596: 0x5168, - 13597: 0x75CA, - 13598: 0x62F3, - 13599: 0x72AC, - 13600: 0x5238, - 13601: 0x529D, - 13602: 0x7F3A, - 13603: 0x7094, - 13604: 0x7638, - 13605: 0x5374, - 13606: 0x9E4A, - 13607: 0x69B7, - 13608: 0x786E, - 13609: 0x96C0, - 13610: 0x88D9, - 13611: 0x7FA4, - 13612: 0x7136, - 13613: 0x71C3, - 13614: 0x5189, - 13615: 0x67D3, - 13616: 0x74E4, - 13617: 0x58E4, - 13618: 0x6518, - 13619: 0x56B7, - 13620: 0x8BA9, - 13621: 0x9976, - 13622: 0x6270, - 13623: 0x7ED5, - 13624: 0x60F9, - 13625: 0x70ED, - 13626: 0x58EC, - 13627: 0x4EC1, - 13628: 0x4EBA, - 13629: 0x5FCD, - 13630: 0x97E7, - 13631: 0x4EFB, - 13632: 0x8BA4, - 13633: 0x5203, - 13634: 0x598A, - 13635: 0x7EAB, - 13636: 0x6254, - 13637: 0x4ECD, - 13638: 0x65E5, - 13639: 0x620E, - 13640: 0x8338, - 13641: 0x84C9, - 13642: 0x8363, - 13643: 0x878D, - 13644: 0x7194, - 13645: 0x6EB6, - 13646: 0x5BB9, - 13647: 0x7ED2, - 13648: 0x5197, - 13649: 0x63C9, - 13650: 0x67D4, - 13651: 0x8089, - 13652: 0x8339, - 13653: 0x8815, - 13654: 0x5112, - 13655: 0x5B7A, - 13656: 0x5982, - 13657: 0x8FB1, - 13658: 0x4E73, - 13659: 0x6C5D, - 13660: 0x5165, - 13661: 0x8925, - 13662: 0x8F6F, - 13663: 0x962E, - 13664: 0x854A, - 13665: 0x745E, - 13666: 0x9510, - 13667: 0x95F0, - 13668: 0x6DA6, - 13669: 0x82E5, - 13670: 0x5F31, - 13671: 0x6492, - 13672: 0x6D12, - 13673: 0x8428, - 13674: 0x816E, - 13675: 0x9CC3, - 13676: 0x585E, - 13677: 0x8D5B, - 13678: 0x4E09, - 13679: 0x53C1, - 13680: 0x847D, - 13681: 0x847E, - 13682: 0x847F, - 13683: 0x8480, - 13684: 0x8481, - 13685: 0x8483, - 13686: 0x8484, - 13687: 0x8485, - 13688: 0x8486, - 13689: 0x848A, - 13690: 0x848D, - 13691: 0x848F, - 13692: 0x8490, - 13693: 0x8491, - 13694: 0x8492, - 13695: 0x8493, - 13696: 0x8494, - 13697: 0x8495, - 13698: 0x8496, - 13699: 0x8498, - 13700: 0x849A, - 13701: 0x849B, - 13702: 0x849D, - 13703: 0x849E, - 13704: 0x849F, - 13705: 0x84A0, - 13706: 0x84A2, - 13707: 0x84A3, - 13708: 0x84A4, - 13709: 0x84A5, - 13710: 0x84A6, - 13711: 0x84A7, - 13712: 0x84A8, - 13713: 0x84A9, - 13714: 0x84AA, - 13715: 0x84AB, - 13716: 0x84AC, - 13717: 0x84AD, - 13718: 0x84AE, - 13719: 0x84B0, - 13720: 0x84B1, - 13721: 0x84B3, - 13722: 0x84B5, - 13723: 0x84B6, - 13724: 0x84B7, - 13725: 0x84BB, - 13726: 0x84BC, - 13727: 0x84BE, - 13728: 0x84C0, - 13729: 0x84C2, - 13730: 0x84C3, - 13731: 0x84C5, - 13732: 0x84C6, - 13733: 0x84C7, - 13734: 0x84C8, - 13735: 0x84CB, - 13736: 0x84CC, - 13737: 0x84CE, - 13738: 0x84CF, - 13739: 0x84D2, - 13740: 0x84D4, - 13741: 0x84D5, - 13742: 0x84D7, - 13743: 0x84D8, - 13744: 0x84D9, - 13745: 0x84DA, - 13746: 0x84DB, - 13747: 0x84DC, - 13748: 0x84DE, - 13749: 0x84E1, - 13750: 0x84E2, - 13751: 0x84E4, - 13752: 0x84E7, - 13753: 0x84E8, - 13754: 0x84E9, - 13755: 0x84EA, - 13756: 0x84EB, - 13757: 0x84ED, - 13758: 0x84EE, - 13759: 0x84EF, - 13760: 0x84F1, - 13761: 0x84F2, - 13762: 0x84F3, - 13763: 0x84F4, - 13764: 0x84F5, - 13765: 0x84F6, - 13766: 0x84F7, - 13767: 0x84F8, - 13768: 0x84F9, - 13769: 0x84FA, - 13770: 0x84FB, - 13771: 0x84FD, - 13772: 0x84FE, - 13773: 0x8500, - 13774: 0x8501, - 13775: 0x8502, - 13776: 0x4F1E, - 13777: 0x6563, - 13778: 0x6851, - 13779: 0x55D3, - 13780: 0x4E27, - 13781: 0x6414, - 13782: 0x9A9A, - 13783: 0x626B, - 13784: 0x5AC2, - 13785: 0x745F, - 13786: 0x8272, - 13787: 0x6DA9, - 13788: 0x68EE, - 13789: 0x50E7, - 13790: 0x838E, - 13791: 0x7802, - 13792: 0x6740, - 13793: 0x5239, - 13794: 0x6C99, - 13795: 0x7EB1, - 13796: 0x50BB, - 13797: 0x5565, - 13798: 0x715E, - 13799: 0x7B5B, - 13800: 0x6652, - 13801: 0x73CA, - 13802: 0x82EB, - 13803: 0x6749, - 13804: 0x5C71, - 13805: 0x5220, - 13806: 0x717D, - 13807: 0x886B, - 13808: 0x95EA, - 13809: 0x9655, - 13810: 0x64C5, - 13811: 0x8D61, - 13812: 0x81B3, - 13813: 0x5584, - 13814: 0x6C55, - 13815: 0x6247, - 13816: 0x7F2E, - 13817: 0x5892, - 13818: 0x4F24, - 13819: 0x5546, - 13820: 0x8D4F, - 13821: 0x664C, - 13822: 0x4E0A, - 13823: 0x5C1A, - 13824: 0x88F3, - 13825: 0x68A2, - 13826: 0x634E, - 13827: 0x7A0D, - 13828: 0x70E7, - 13829: 0x828D, - 13830: 0x52FA, - 13831: 0x97F6, - 13832: 0x5C11, - 13833: 0x54E8, - 13834: 0x90B5, - 13835: 0x7ECD, - 13836: 0x5962, - 13837: 0x8D4A, - 13838: 0x86C7, - 13839: 0x820C, - 13840: 0x820D, - 13841: 0x8D66, - 13842: 0x6444, - 13843: 0x5C04, - 13844: 0x6151, - 13845: 0x6D89, - 13846: 0x793E, - 13847: 0x8BBE, - 13848: 0x7837, - 13849: 0x7533, - 13850: 0x547B, - 13851: 0x4F38, - 13852: 0x8EAB, - 13853: 0x6DF1, - 13854: 0x5A20, - 13855: 0x7EC5, - 13856: 0x795E, - 13857: 0x6C88, - 13858: 0x5BA1, - 13859: 0x5A76, - 13860: 0x751A, - 13861: 0x80BE, - 13862: 0x614E, - 13863: 0x6E17, - 13864: 0x58F0, - 13865: 0x751F, - 13866: 0x7525, - 13867: 0x7272, - 13868: 0x5347, - 13869: 0x7EF3, - 13870: 0x8503, - 13871: 0x8504, - 13872: 0x8505, - 13873: 0x8506, - 13874: 0x8507, - 13875: 0x8508, - 13876: 0x8509, - 13877: 0x850A, - 13878: 0x850B, - 13879: 0x850D, - 13880: 0x850E, - 13881: 0x850F, - 13882: 0x8510, - 13883: 0x8512, - 13884: 0x8514, - 13885: 0x8515, - 13886: 0x8516, - 13887: 0x8518, - 13888: 0x8519, - 13889: 0x851B, - 13890: 0x851C, - 13891: 0x851D, - 13892: 0x851E, - 13893: 0x8520, - 13894: 0x8522, - 13895: 0x8523, - 13896: 0x8524, - 13897: 0x8525, - 13898: 0x8526, - 13899: 0x8527, - 13900: 0x8528, - 13901: 0x8529, - 13902: 0x852A, - 13903: 0x852D, - 13904: 0x852E, - 13905: 0x852F, - 13906: 0x8530, - 13907: 0x8531, - 13908: 0x8532, - 13909: 0x8533, - 13910: 0x8534, - 13911: 0x8535, - 13912: 0x8536, - 13913: 0x853E, - 13914: 0x853F, - 13915: 0x8540, - 13916: 0x8541, - 13917: 0x8542, - 13918: 0x8544, - 13919: 0x8545, - 13920: 0x8546, - 13921: 0x8547, - 13922: 0x854B, - 13923: 0x854C, - 13924: 0x854D, - 13925: 0x854E, - 13926: 0x854F, - 13927: 0x8550, - 13928: 0x8551, - 13929: 0x8552, - 13930: 0x8553, - 13931: 0x8554, - 13932: 0x8555, - 13933: 0x8557, - 13934: 0x8558, - 13935: 0x855A, - 13936: 0x855B, - 13937: 0x855C, - 13938: 0x855D, - 13939: 0x855F, - 13940: 0x8560, - 13941: 0x8561, - 13942: 0x8562, - 13943: 0x8563, - 13944: 0x8565, - 13945: 0x8566, - 13946: 0x8567, - 13947: 0x8569, - 13948: 0x856A, - 13949: 0x856B, - 13950: 0x856C, - 13951: 0x856D, - 13952: 0x856E, - 13953: 0x856F, - 13954: 0x8570, - 13955: 0x8571, - 13956: 0x8573, - 13957: 0x8575, - 13958: 0x8576, - 13959: 0x8577, - 13960: 0x8578, - 13961: 0x857C, - 13962: 0x857D, - 13963: 0x857F, - 13964: 0x8580, - 13965: 0x8581, - 13966: 0x7701, - 13967: 0x76DB, - 13968: 0x5269, - 13969: 0x80DC, - 13970: 0x5723, - 13971: 0x5E08, - 13972: 0x5931, - 13973: 0x72EE, - 13974: 0x65BD, - 13975: 0x6E7F, - 13976: 0x8BD7, - 13977: 0x5C38, - 13978: 0x8671, - 13979: 0x5341, - 13980: 0x77F3, - 13981: 0x62FE, - 13982: 0x65F6, - 13983: 0x4EC0, - 13984: 0x98DF, - 13985: 0x8680, - 13986: 0x5B9E, - 13987: 0x8BC6, - 13988: 0x53F2, - 13989: 0x77E2, - 13990: 0x4F7F, - 13991: 0x5C4E, - 13992: 0x9A76, - 13993: 0x59CB, - 13994: 0x5F0F, - 13995: 0x793A, - 13996: 0x58EB, - 13997: 0x4E16, - 13998: 0x67FF, - 13999: 0x4E8B, - 14000: 0x62ED, - 14001: 0x8A93, - 14002: 0x901D, - 14003: 0x52BF, - 14004: 0x662F, - 14005: 0x55DC, - 14006: 0x566C, - 14007: 0x9002, - 14008: 0x4ED5, - 14009: 0x4F8D, - 14010: 0x91CA, - 14011: 0x9970, - 14012: 0x6C0F, - 14013: 0x5E02, - 14014: 0x6043, - 14015: 0x5BA4, - 14016: 0x89C6, - 14017: 0x8BD5, - 14018: 0x6536, - 14019: 0x624B, - 14020: 0x9996, - 14021: 0x5B88, - 14022: 0x5BFF, - 14023: 0x6388, - 14024: 0x552E, - 14025: 0x53D7, - 14026: 0x7626, - 14027: 0x517D, - 14028: 0x852C, - 14029: 0x67A2, - 14030: 0x68B3, - 14031: 0x6B8A, - 14032: 0x6292, - 14033: 0x8F93, - 14034: 0x53D4, - 14035: 0x8212, - 14036: 0x6DD1, - 14037: 0x758F, - 14038: 0x4E66, - 14039: 0x8D4E, - 14040: 0x5B70, - 14041: 0x719F, - 14042: 0x85AF, - 14043: 0x6691, - 14044: 0x66D9, - 14045: 0x7F72, - 14046: 0x8700, - 14047: 0x9ECD, - 14048: 0x9F20, - 14049: 0x5C5E, - 14050: 0x672F, - 14051: 0x8FF0, - 14052: 0x6811, - 14053: 0x675F, - 14054: 0x620D, - 14055: 0x7AD6, - 14056: 0x5885, - 14057: 0x5EB6, - 14058: 0x6570, - 14059: 0x6F31, - 14060: 0x8582, - 14061: 0x8583, - 14062: 0x8586, - 14063: 0x8588, - 14064: 0x8589, - 14065: 0x858A, - 14066: 0x858B, - 14067: 0x858C, - 14068: 0x858D, - 14069: 0x858E, - 14070: 0x8590, - 14071: 0x8591, - 14072: 0x8592, - 14073: 0x8593, - 14074: 0x8594, - 14075: 0x8595, - 14076: 0x8596, - 14077: 0x8597, - 14078: 0x8598, - 14079: 0x8599, - 14080: 0x859A, - 14081: 0x859D, - 14082: 0x859E, - 14083: 0x859F, - 14084: 0x85A0, - 14085: 0x85A1, - 14086: 0x85A2, - 14087: 0x85A3, - 14088: 0x85A5, - 14089: 0x85A6, - 14090: 0x85A7, - 14091: 0x85A9, - 14092: 0x85AB, - 14093: 0x85AC, - 14094: 0x85AD, - 14095: 0x85B1, - 14096: 0x85B2, - 14097: 0x85B3, - 14098: 0x85B4, - 14099: 0x85B5, - 14100: 0x85B6, - 14101: 0x85B8, - 14102: 0x85BA, - 14103: 0x85BB, - 14104: 0x85BC, - 14105: 0x85BD, - 14106: 0x85BE, - 14107: 0x85BF, - 14108: 0x85C0, - 14109: 0x85C2, - 14110: 0x85C3, - 14111: 0x85C4, - 14112: 0x85C5, - 14113: 0x85C6, - 14114: 0x85C7, - 14115: 0x85C8, - 14116: 0x85CA, - 14117: 0x85CB, - 14118: 0x85CC, - 14119: 0x85CD, - 14120: 0x85CE, - 14121: 0x85D1, - 14122: 0x85D2, - 14123: 0x85D4, - 14124: 0x85D6, - 14125: 0x85D7, - 14126: 0x85D8, - 14127: 0x85D9, - 14128: 0x85DA, - 14129: 0x85DB, - 14130: 0x85DD, - 14131: 0x85DE, - 14132: 0x85DF, - 14133: 0x85E0, - 14134: 0x85E1, - 14135: 0x85E2, - 14136: 0x85E3, - 14137: 0x85E5, - 14138: 0x85E6, - 14139: 0x85E7, - 14140: 0x85E8, - 14141: 0x85EA, - 14142: 0x85EB, - 14143: 0x85EC, - 14144: 0x85ED, - 14145: 0x85EE, - 14146: 0x85EF, - 14147: 0x85F0, - 14148: 0x85F1, - 14149: 0x85F2, - 14150: 0x85F3, - 14151: 0x85F4, - 14152: 0x85F5, - 14153: 0x85F6, - 14154: 0x85F7, - 14155: 0x85F8, - 14156: 0x6055, - 14157: 0x5237, - 14158: 0x800D, - 14159: 0x6454, - 14160: 0x8870, - 14161: 0x7529, - 14162: 0x5E05, - 14163: 0x6813, - 14164: 0x62F4, - 14165: 0x971C, - 14166: 0x53CC, - 14167: 0x723D, - 14168: 0x8C01, - 14169: 0x6C34, - 14170: 0x7761, - 14171: 0x7A0E, - 14172: 0x542E, - 14173: 0x77AC, - 14174: 0x987A, - 14175: 0x821C, - 14176: 0x8BF4, - 14177: 0x7855, - 14178: 0x6714, - 14179: 0x70C1, - 14180: 0x65AF, - 14181: 0x6495, - 14182: 0x5636, - 14183: 0x601D, - 14184: 0x79C1, - 14185: 0x53F8, - 14186: 0x4E1D, - 14187: 0x6B7B, - 14188: 0x8086, - 14189: 0x5BFA, - 14190: 0x55E3, - 14191: 0x56DB, - 14192: 0x4F3A, - 14193: 0x4F3C, - 14194: 0x9972, - 14195: 0x5DF3, - 14196: 0x677E, - 14197: 0x8038, - 14198: 0x6002, - 14199: 0x9882, - 14200: 0x9001, - 14201: 0x5B8B, - 14202: 0x8BBC, - 14203: 0x8BF5, - 14204: 0x641C, - 14205: 0x8258, - 14206: 0x64DE, - 14207: 0x55FD, - 14208: 0x82CF, - 14209: 0x9165, - 14210: 0x4FD7, - 14211: 0x7D20, - 14212: 0x901F, - 14213: 0x7C9F, - 14214: 0x50F3, - 14215: 0x5851, - 14216: 0x6EAF, - 14217: 0x5BBF, - 14218: 0x8BC9, - 14219: 0x8083, - 14220: 0x9178, - 14221: 0x849C, - 14222: 0x7B97, - 14223: 0x867D, - 14224: 0x968B, - 14225: 0x968F, - 14226: 0x7EE5, - 14227: 0x9AD3, - 14228: 0x788E, - 14229: 0x5C81, - 14230: 0x7A57, - 14231: 0x9042, - 14232: 0x96A7, - 14233: 0x795F, - 14234: 0x5B59, - 14235: 0x635F, - 14236: 0x7B0B, - 14237: 0x84D1, - 14238: 0x68AD, - 14239: 0x5506, - 14240: 0x7F29, - 14241: 0x7410, - 14242: 0x7D22, - 14243: 0x9501, - 14244: 0x6240, - 14245: 0x584C, - 14246: 0x4ED6, - 14247: 0x5B83, - 14248: 0x5979, - 14249: 0x5854, - 14250: 0x85F9, - 14251: 0x85FA, - 14252: 0x85FC, - 14253: 0x85FD, - 14254: 0x85FE, - 14255: 0x8600, - 14256: 0x8601, - 14257: 0x8602, - 14258: 0x8603, - 14259: 0x8604, - 14260: 0x8606, - 14261: 0x8607, - 14262: 0x8608, - 14263: 0x8609, - 14264: 0x860A, - 14265: 0x860B, - 14266: 0x860C, - 14267: 0x860D, - 14268: 0x860E, - 14269: 0x860F, - 14270: 0x8610, - 14271: 0x8612, - 14272: 0x8613, - 14273: 0x8614, - 14274: 0x8615, - 14275: 0x8617, - 14276: 0x8618, - 14277: 0x8619, - 14278: 0x861A, - 14279: 0x861B, - 14280: 0x861C, - 14281: 0x861D, - 14282: 0x861E, - 14283: 0x861F, - 14284: 0x8620, - 14285: 0x8621, - 14286: 0x8622, - 14287: 0x8623, - 14288: 0x8624, - 14289: 0x8625, - 14290: 0x8626, - 14291: 0x8628, - 14292: 0x862A, - 14293: 0x862B, - 14294: 0x862C, - 14295: 0x862D, - 14296: 0x862E, - 14297: 0x862F, - 14298: 0x8630, - 14299: 0x8631, - 14300: 0x8632, - 14301: 0x8633, - 14302: 0x8634, - 14303: 0x8635, - 14304: 0x8636, - 14305: 0x8637, - 14306: 0x8639, - 14307: 0x863A, - 14308: 0x863B, - 14309: 0x863D, - 14310: 0x863E, - 14311: 0x863F, - 14312: 0x8640, - 14313: 0x8641, - 14314: 0x8642, - 14315: 0x8643, - 14316: 0x8644, - 14317: 0x8645, - 14318: 0x8646, - 14319: 0x8647, - 14320: 0x8648, - 14321: 0x8649, - 14322: 0x864A, - 14323: 0x864B, - 14324: 0x864C, - 14325: 0x8652, - 14326: 0x8653, - 14327: 0x8655, - 14328: 0x8656, - 14329: 0x8657, - 14330: 0x8658, - 14331: 0x8659, - 14332: 0x865B, - 14333: 0x865C, - 14334: 0x865D, - 14335: 0x865F, - 14336: 0x8660, - 14337: 0x8661, - 14338: 0x8663, - 14339: 0x8664, - 14340: 0x8665, - 14341: 0x8666, - 14342: 0x8667, - 14343: 0x8668, - 14344: 0x8669, - 14345: 0x866A, - 14346: 0x736D, - 14347: 0x631E, - 14348: 0x8E4B, - 14349: 0x8E0F, - 14350: 0x80CE, - 14351: 0x82D4, - 14352: 0x62AC, - 14353: 0x53F0, - 14354: 0x6CF0, - 14355: 0x915E, - 14356: 0x592A, - 14357: 0x6001, - 14358: 0x6C70, - 14359: 0x574D, - 14360: 0x644A, - 14361: 0x8D2A, - 14362: 0x762B, - 14363: 0x6EE9, - 14364: 0x575B, - 14365: 0x6A80, - 14366: 0x75F0, - 14367: 0x6F6D, - 14368: 0x8C2D, - 14369: 0x8C08, - 14370: 0x5766, - 14371: 0x6BEF, - 14372: 0x8892, - 14373: 0x78B3, - 14374: 0x63A2, - 14375: 0x53F9, - 14376: 0x70AD, - 14377: 0x6C64, - 14378: 0x5858, - 14379: 0x642A, - 14380: 0x5802, - 14381: 0x68E0, - 14382: 0x819B, - 14383: 0x5510, - 14384: 0x7CD6, - 14385: 0x5018, - 14386: 0x8EBA, - 14387: 0x6DCC, - 14388: 0x8D9F, - 14389: 0x70EB, - 14390: 0x638F, - 14391: 0x6D9B, - 14392: 0x6ED4, - 14393: 0x7EE6, - 14394: 0x8404, - 14395: 0x6843, - 14396: 0x9003, - 14397: 0x6DD8, - 14398: 0x9676, - 14399: 0x8BA8, - 14400: 0x5957, - 14401: 0x7279, - 14402: 0x85E4, - 14403: 0x817E, - 14404: 0x75BC, - 14405: 0x8A8A, - 14406: 0x68AF, - 14407: 0x5254, - 14408: 0x8E22, - 14409: 0x9511, - 14410: 0x63D0, - 14411: 0x9898, - 14412: 0x8E44, - 14413: 0x557C, - 14414: 0x4F53, - 14415: 0x66FF, - 14416: 0x568F, - 14417: 0x60D5, - 14418: 0x6D95, - 14419: 0x5243, - 14420: 0x5C49, - 14421: 0x5929, - 14422: 0x6DFB, - 14423: 0x586B, - 14424: 0x7530, - 14425: 0x751C, - 14426: 0x606C, - 14427: 0x8214, - 14428: 0x8146, - 14429: 0x6311, - 14430: 0x6761, - 14431: 0x8FE2, - 14432: 0x773A, - 14433: 0x8DF3, - 14434: 0x8D34, - 14435: 0x94C1, - 14436: 0x5E16, - 14437: 0x5385, - 14438: 0x542C, - 14439: 0x70C3, - 14440: 0x866D, - 14441: 0x866F, - 14442: 0x8670, - 14443: 0x8672, - 14444: 0x8673, - 14445: 0x8674, - 14446: 0x8675, - 14447: 0x8676, - 14448: 0x8677, - 14449: 0x8678, - 14450: 0x8683, - 14451: 0x8684, - 14452: 0x8685, - 14453: 0x8686, - 14454: 0x8687, - 14455: 0x8688, - 14456: 0x8689, - 14457: 0x868E, - 14458: 0x868F, - 14459: 0x8690, - 14460: 0x8691, - 14461: 0x8692, - 14462: 0x8694, - 14463: 0x8696, - 14464: 0x8697, - 14465: 0x8698, - 14466: 0x8699, - 14467: 0x869A, - 14468: 0x869B, - 14469: 0x869E, - 14470: 0x869F, - 14471: 0x86A0, - 14472: 0x86A1, - 14473: 0x86A2, - 14474: 0x86A5, - 14475: 0x86A6, - 14476: 0x86AB, - 14477: 0x86AD, - 14478: 0x86AE, - 14479: 0x86B2, - 14480: 0x86B3, - 14481: 0x86B7, - 14482: 0x86B8, - 14483: 0x86B9, - 14484: 0x86BB, - 14485: 0x86BC, - 14486: 0x86BD, - 14487: 0x86BE, - 14488: 0x86BF, - 14489: 0x86C1, - 14490: 0x86C2, - 14491: 0x86C3, - 14492: 0x86C5, - 14493: 0x86C8, - 14494: 0x86CC, - 14495: 0x86CD, - 14496: 0x86D2, - 14497: 0x86D3, - 14498: 0x86D5, - 14499: 0x86D6, - 14500: 0x86D7, - 14501: 0x86DA, - 14502: 0x86DC, - 14503: 0x86DD, - 14504: 0x86E0, - 14505: 0x86E1, - 14506: 0x86E2, - 14507: 0x86E3, - 14508: 0x86E5, - 14509: 0x86E6, - 14510: 0x86E7, - 14511: 0x86E8, - 14512: 0x86EA, - 14513: 0x86EB, - 14514: 0x86EC, - 14515: 0x86EF, - 14516: 0x86F5, - 14517: 0x86F6, - 14518: 0x86F7, - 14519: 0x86FA, - 14520: 0x86FB, - 14521: 0x86FC, - 14522: 0x86FD, - 14523: 0x86FF, - 14524: 0x8701, - 14525: 0x8704, - 14526: 0x8705, - 14527: 0x8706, - 14528: 0x870B, - 14529: 0x870C, - 14530: 0x870E, - 14531: 0x870F, - 14532: 0x8710, - 14533: 0x8711, - 14534: 0x8714, - 14535: 0x8716, - 14536: 0x6C40, - 14537: 0x5EF7, - 14538: 0x505C, - 14539: 0x4EAD, - 14540: 0x5EAD, - 14541: 0x633A, - 14542: 0x8247, - 14543: 0x901A, - 14544: 0x6850, - 14545: 0x916E, - 14546: 0x77B3, - 14547: 0x540C, - 14548: 0x94DC, - 14549: 0x5F64, - 14550: 0x7AE5, - 14551: 0x6876, - 14552: 0x6345, - 14553: 0x7B52, - 14554: 0x7EDF, - 14555: 0x75DB, - 14556: 0x5077, - 14557: 0x6295, - 14558: 0x5934, - 14559: 0x900F, - 14560: 0x51F8, - 14561: 0x79C3, - 14562: 0x7A81, - 14563: 0x56FE, - 14564: 0x5F92, - 14565: 0x9014, - 14566: 0x6D82, - 14567: 0x5C60, - 14568: 0x571F, - 14569: 0x5410, - 14570: 0x5154, - 14571: 0x6E4D, - 14572: 0x56E2, - 14573: 0x63A8, - 14574: 0x9893, - 14575: 0x817F, - 14576: 0x8715, - 14577: 0x892A, - 14578: 0x9000, - 14579: 0x541E, - 14580: 0x5C6F, - 14581: 0x81C0, - 14582: 0x62D6, - 14583: 0x6258, - 14584: 0x8131, - 14585: 0x9E35, - 14586: 0x9640, - 14587: 0x9A6E, - 14588: 0x9A7C, - 14589: 0x692D, - 14590: 0x59A5, - 14591: 0x62D3, - 14592: 0x553E, - 14593: 0x6316, - 14594: 0x54C7, - 14595: 0x86D9, - 14596: 0x6D3C, - 14597: 0x5A03, - 14598: 0x74E6, - 14599: 0x889C, - 14600: 0x6B6A, - 14601: 0x5916, - 14602: 0x8C4C, - 14603: 0x5F2F, - 14604: 0x6E7E, - 14605: 0x73A9, - 14606: 0x987D, - 14607: 0x4E38, - 14608: 0x70F7, - 14609: 0x5B8C, - 14610: 0x7897, - 14611: 0x633D, - 14612: 0x665A, - 14613: 0x7696, - 14614: 0x60CB, - 14615: 0x5B9B, - 14616: 0x5A49, - 14617: 0x4E07, - 14618: 0x8155, - 14619: 0x6C6A, - 14620: 0x738B, - 14621: 0x4EA1, - 14622: 0x6789, - 14623: 0x7F51, - 14624: 0x5F80, - 14625: 0x65FA, - 14626: 0x671B, - 14627: 0x5FD8, - 14628: 0x5984, - 14629: 0x5A01, - 14630: 0x8719, - 14631: 0x871B, - 14632: 0x871D, - 14633: 0x871F, - 14634: 0x8720, - 14635: 0x8724, - 14636: 0x8726, - 14637: 0x8727, - 14638: 0x8728, - 14639: 0x872A, - 14640: 0x872B, - 14641: 0x872C, - 14642: 0x872D, - 14643: 0x872F, - 14644: 0x8730, - 14645: 0x8732, - 14646: 0x8733, - 14647: 0x8735, - 14648: 0x8736, - 14649: 0x8738, - 14650: 0x8739, - 14651: 0x873A, - 14652: 0x873C, - 14653: 0x873D, - 14654: 0x8740, - 14655: 0x8741, - 14656: 0x8742, - 14657: 0x8743, - 14658: 0x8744, - 14659: 0x8745, - 14660: 0x8746, - 14661: 0x874A, - 14662: 0x874B, - 14663: 0x874D, - 14664: 0x874F, - 14665: 0x8750, - 14666: 0x8751, - 14667: 0x8752, - 14668: 0x8754, - 14669: 0x8755, - 14670: 0x8756, - 14671: 0x8758, - 14672: 0x875A, - 14673: 0x875B, - 14674: 0x875C, - 14675: 0x875D, - 14676: 0x875E, - 14677: 0x875F, - 14678: 0x8761, - 14679: 0x8762, - 14680: 0x8766, - 14681: 0x8767, - 14682: 0x8768, - 14683: 0x8769, - 14684: 0x876A, - 14685: 0x876B, - 14686: 0x876C, - 14687: 0x876D, - 14688: 0x876F, - 14689: 0x8771, - 14690: 0x8772, - 14691: 0x8773, - 14692: 0x8775, - 14693: 0x8777, - 14694: 0x8778, - 14695: 0x8779, - 14696: 0x877A, - 14697: 0x877F, - 14698: 0x8780, - 14699: 0x8781, - 14700: 0x8784, - 14701: 0x8786, - 14702: 0x8787, - 14703: 0x8789, - 14704: 0x878A, - 14705: 0x878C, - 14706: 0x878E, - 14707: 0x878F, - 14708: 0x8790, - 14709: 0x8791, - 14710: 0x8792, - 14711: 0x8794, - 14712: 0x8795, - 14713: 0x8796, - 14714: 0x8798, - 14715: 0x8799, - 14716: 0x879A, - 14717: 0x879B, - 14718: 0x879C, - 14719: 0x879D, - 14720: 0x879E, - 14721: 0x87A0, - 14722: 0x87A1, - 14723: 0x87A2, - 14724: 0x87A3, - 14725: 0x87A4, - 14726: 0x5DCD, - 14727: 0x5FAE, - 14728: 0x5371, - 14729: 0x97E6, - 14730: 0x8FDD, - 14731: 0x6845, - 14732: 0x56F4, - 14733: 0x552F, - 14734: 0x60DF, - 14735: 0x4E3A, - 14736: 0x6F4D, - 14737: 0x7EF4, - 14738: 0x82C7, - 14739: 0x840E, - 14740: 0x59D4, - 14741: 0x4F1F, - 14742: 0x4F2A, - 14743: 0x5C3E, - 14744: 0x7EAC, - 14745: 0x672A, - 14746: 0x851A, - 14747: 0x5473, - 14748: 0x754F, - 14749: 0x80C3, - 14750: 0x5582, - 14751: 0x9B4F, - 14752: 0x4F4D, - 14753: 0x6E2D, - 14754: 0x8C13, - 14755: 0x5C09, - 14756: 0x6170, - 14757: 0x536B, - 14758: 0x761F, - 14759: 0x6E29, - 14760: 0x868A, - 14761: 0x6587, - 14762: 0x95FB, - 14763: 0x7EB9, - 14764: 0x543B, - 14765: 0x7A33, - 14766: 0x7D0A, - 14767: 0x95EE, - 14768: 0x55E1, - 14769: 0x7FC1, - 14770: 0x74EE, - 14771: 0x631D, - 14772: 0x8717, - 14773: 0x6DA1, - 14774: 0x7A9D, - 14775: 0x6211, - 14776: 0x65A1, - 14777: 0x5367, - 14778: 0x63E1, - 14779: 0x6C83, - 14780: 0x5DEB, - 14781: 0x545C, - 14782: 0x94A8, - 14783: 0x4E4C, - 14784: 0x6C61, - 14785: 0x8BEC, - 14786: 0x5C4B, - 14787: 0x65E0, - 14788: 0x829C, - 14789: 0x68A7, - 14790: 0x543E, - 14791: 0x5434, - 14792: 0x6BCB, - 14793: 0x6B66, - 14794: 0x4E94, - 14795: 0x6342, - 14796: 0x5348, - 14797: 0x821E, - 14798: 0x4F0D, - 14799: 0x4FAE, - 14800: 0x575E, - 14801: 0x620A, - 14802: 0x96FE, - 14803: 0x6664, - 14804: 0x7269, - 14805: 0x52FF, - 14806: 0x52A1, - 14807: 0x609F, - 14808: 0x8BEF, - 14809: 0x6614, - 14810: 0x7199, - 14811: 0x6790, - 14812: 0x897F, - 14813: 0x7852, - 14814: 0x77FD, - 14815: 0x6670, - 14816: 0x563B, - 14817: 0x5438, - 14818: 0x9521, - 14819: 0x727A, - 14820: 0x87A5, - 14821: 0x87A6, - 14822: 0x87A7, - 14823: 0x87A9, - 14824: 0x87AA, - 14825: 0x87AE, - 14826: 0x87B0, - 14827: 0x87B1, - 14828: 0x87B2, - 14829: 0x87B4, - 14830: 0x87B6, - 14831: 0x87B7, - 14832: 0x87B8, - 14833: 0x87B9, - 14834: 0x87BB, - 14835: 0x87BC, - 14836: 0x87BE, - 14837: 0x87BF, - 14838: 0x87C1, - 14839: 0x87C2, - 14840: 0x87C3, - 14841: 0x87C4, - 14842: 0x87C5, - 14843: 0x87C7, - 14844: 0x87C8, - 14845: 0x87C9, - 14846: 0x87CC, - 14847: 0x87CD, - 14848: 0x87CE, - 14849: 0x87CF, - 14850: 0x87D0, - 14851: 0x87D4, - 14852: 0x87D5, - 14853: 0x87D6, - 14854: 0x87D7, - 14855: 0x87D8, - 14856: 0x87D9, - 14857: 0x87DA, - 14858: 0x87DC, - 14859: 0x87DD, - 14860: 0x87DE, - 14861: 0x87DF, - 14862: 0x87E1, - 14863: 0x87E2, - 14864: 0x87E3, - 14865: 0x87E4, - 14866: 0x87E6, - 14867: 0x87E7, - 14868: 0x87E8, - 14869: 0x87E9, - 14870: 0x87EB, - 14871: 0x87EC, - 14872: 0x87ED, - 14873: 0x87EF, - 14874: 0x87F0, - 14875: 0x87F1, - 14876: 0x87F2, - 14877: 0x87F3, - 14878: 0x87F4, - 14879: 0x87F5, - 14880: 0x87F6, - 14881: 0x87F7, - 14882: 0x87F8, - 14883: 0x87FA, - 14884: 0x87FB, - 14885: 0x87FC, - 14886: 0x87FD, - 14887: 0x87FF, - 14888: 0x8800, - 14889: 0x8801, - 14890: 0x8802, - 14891: 0x8804, - 14892: 0x8805, - 14893: 0x8806, - 14894: 0x8807, - 14895: 0x8808, - 14896: 0x8809, - 14897: 0x880B, - 14898: 0x880C, - 14899: 0x880D, - 14900: 0x880E, - 14901: 0x880F, - 14902: 0x8810, - 14903: 0x8811, - 14904: 0x8812, - 14905: 0x8814, - 14906: 0x8817, - 14907: 0x8818, - 14908: 0x8819, - 14909: 0x881A, - 14910: 0x881C, - 14911: 0x881D, - 14912: 0x881E, - 14913: 0x881F, - 14914: 0x8820, - 14915: 0x8823, - 14916: 0x7A00, - 14917: 0x606F, - 14918: 0x5E0C, - 14919: 0x6089, - 14920: 0x819D, - 14921: 0x5915, - 14922: 0x60DC, - 14923: 0x7184, - 14924: 0x70EF, - 14925: 0x6EAA, - 14926: 0x6C50, - 14927: 0x7280, - 14928: 0x6A84, - 14929: 0x88AD, - 14930: 0x5E2D, - 14931: 0x4E60, - 14932: 0x5AB3, - 14933: 0x559C, - 14934: 0x94E3, - 14935: 0x6D17, - 14936: 0x7CFB, - 14937: 0x9699, - 14938: 0x620F, - 14939: 0x7EC6, - 14940: 0x778E, - 14941: 0x867E, - 14942: 0x5323, - 14943: 0x971E, - 14944: 0x8F96, - 14945: 0x6687, - 14946: 0x5CE1, - 14947: 0x4FA0, - 14948: 0x72ED, - 14949: 0x4E0B, - 14950: 0x53A6, - 14951: 0x590F, - 14952: 0x5413, - 14953: 0x6380, - 14954: 0x9528, - 14955: 0x5148, - 14956: 0x4ED9, - 14957: 0x9C9C, - 14958: 0x7EA4, - 14959: 0x54B8, - 14960: 0x8D24, - 14961: 0x8854, - 14962: 0x8237, - 14963: 0x95F2, - 14964: 0x6D8E, - 14965: 0x5F26, - 14966: 0x5ACC, - 14967: 0x663E, - 14968: 0x9669, - 14969: 0x73B0, - 14970: 0x732E, - 14971: 0x53BF, - 14972: 0x817A, - 14973: 0x9985, - 14974: 0x7FA1, - 14975: 0x5BAA, - 14976: 0x9677, - 14977: 0x9650, - 14978: 0x7EBF, - 14979: 0x76F8, - 14980: 0x53A2, - 14981: 0x9576, - 14982: 0x9999, - 14983: 0x7BB1, - 14984: 0x8944, - 14985: 0x6E58, - 14986: 0x4E61, - 14987: 0x7FD4, - 14988: 0x7965, - 14989: 0x8BE6, - 14990: 0x60F3, - 14991: 0x54CD, - 14992: 0x4EAB, - 14993: 0x9879, - 14994: 0x5DF7, - 14995: 0x6A61, - 14996: 0x50CF, - 14997: 0x5411, - 14998: 0x8C61, - 14999: 0x8427, - 15000: 0x785D, - 15001: 0x9704, - 15002: 0x524A, - 15003: 0x54EE, - 15004: 0x56A3, - 15005: 0x9500, - 15006: 0x6D88, - 15007: 0x5BB5, - 15008: 0x6DC6, - 15009: 0x6653, - 15010: 0x8824, - 15011: 0x8825, - 15012: 0x8826, - 15013: 0x8827, - 15014: 0x8828, - 15015: 0x8829, - 15016: 0x882A, - 15017: 0x882B, - 15018: 0x882C, - 15019: 0x882D, - 15020: 0x882E, - 15021: 0x882F, - 15022: 0x8830, - 15023: 0x8831, - 15024: 0x8833, - 15025: 0x8834, - 15026: 0x8835, - 15027: 0x8836, - 15028: 0x8837, - 15029: 0x8838, - 15030: 0x883A, - 15031: 0x883B, - 15032: 0x883D, - 15033: 0x883E, - 15034: 0x883F, - 15035: 0x8841, - 15036: 0x8842, - 15037: 0x8843, - 15038: 0x8846, - 15039: 0x8847, - 15040: 0x8848, - 15041: 0x8849, - 15042: 0x884A, - 15043: 0x884B, - 15044: 0x884E, - 15045: 0x884F, - 15046: 0x8850, - 15047: 0x8851, - 15048: 0x8852, - 15049: 0x8853, - 15050: 0x8855, - 15051: 0x8856, - 15052: 0x8858, - 15053: 0x885A, - 15054: 0x885B, - 15055: 0x885C, - 15056: 0x885D, - 15057: 0x885E, - 15058: 0x885F, - 15059: 0x8860, - 15060: 0x8866, - 15061: 0x8867, - 15062: 0x886A, - 15063: 0x886D, - 15064: 0x886F, - 15065: 0x8871, - 15066: 0x8873, - 15067: 0x8874, - 15068: 0x8875, - 15069: 0x8876, - 15070: 0x8878, - 15071: 0x8879, - 15072: 0x887A, - 15073: 0x887B, - 15074: 0x887C, - 15075: 0x8880, - 15076: 0x8883, - 15077: 0x8886, - 15078: 0x8887, - 15079: 0x8889, - 15080: 0x888A, - 15081: 0x888C, - 15082: 0x888E, - 15083: 0x888F, - 15084: 0x8890, - 15085: 0x8891, - 15086: 0x8893, - 15087: 0x8894, - 15088: 0x8895, - 15089: 0x8897, - 15090: 0x8898, - 15091: 0x8899, - 15092: 0x889A, - 15093: 0x889B, - 15094: 0x889D, - 15095: 0x889E, - 15096: 0x889F, - 15097: 0x88A0, - 15098: 0x88A1, - 15099: 0x88A3, - 15100: 0x88A5, - 15101: 0x88A6, - 15102: 0x88A7, - 15103: 0x88A8, - 15104: 0x88A9, - 15105: 0x88AA, - 15106: 0x5C0F, - 15107: 0x5B5D, - 15108: 0x6821, - 15109: 0x8096, - 15110: 0x5578, - 15111: 0x7B11, - 15112: 0x6548, - 15113: 0x6954, - 15114: 0x4E9B, - 15115: 0x6B47, - 15116: 0x874E, - 15117: 0x978B, - 15118: 0x534F, - 15119: 0x631F, - 15120: 0x643A, - 15121: 0x90AA, - 15122: 0x659C, - 15123: 0x80C1, - 15124: 0x8C10, - 15125: 0x5199, - 15126: 0x68B0, - 15127: 0x5378, - 15128: 0x87F9, - 15129: 0x61C8, - 15130: 0x6CC4, - 15131: 0x6CFB, - 15132: 0x8C22, - 15133: 0x5C51, - 15134: 0x85AA, - 15135: 0x82AF, - 15136: 0x950C, - 15137: 0x6B23, - 15138: 0x8F9B, - 15139: 0x65B0, - 15140: 0x5FFB, - 15141: 0x5FC3, - 15142: 0x4FE1, - 15143: 0x8845, - 15144: 0x661F, - 15145: 0x8165, - 15146: 0x7329, - 15147: 0x60FA, - 15148: 0x5174, - 15149: 0x5211, - 15150: 0x578B, - 15151: 0x5F62, - 15152: 0x90A2, - 15153: 0x884C, - 15154: 0x9192, - 15155: 0x5E78, - 15156: 0x674F, - 15157: 0x6027, - 15158: 0x59D3, - 15159: 0x5144, - 15160: 0x51F6, - 15161: 0x80F8, - 15162: 0x5308, - 15163: 0x6C79, - 15164: 0x96C4, - 15165: 0x718A, - 15166: 0x4F11, - 15167: 0x4FEE, - 15168: 0x7F9E, - 15169: 0x673D, - 15170: 0x55C5, - 15171: 0x9508, - 15172: 0x79C0, - 15173: 0x8896, - 15174: 0x7EE3, - 15175: 0x589F, - 15176: 0x620C, - 15177: 0x9700, - 15178: 0x865A, - 15179: 0x5618, - 15180: 0x987B, - 15181: 0x5F90, - 15182: 0x8BB8, - 15183: 0x84C4, - 15184: 0x9157, - 15185: 0x53D9, - 15186: 0x65ED, - 15187: 0x5E8F, - 15188: 0x755C, - 15189: 0x6064, - 15190: 0x7D6E, - 15191: 0x5A7F, - 15192: 0x7EEA, - 15193: 0x7EED, - 15194: 0x8F69, - 15195: 0x55A7, - 15196: 0x5BA3, - 15197: 0x60AC, - 15198: 0x65CB, - 15199: 0x7384, - 15200: 0x88AC, - 15201: 0x88AE, - 15202: 0x88AF, - 15203: 0x88B0, - 15204: 0x88B2, - 15205: 0x88B3, - 15206: 0x88B4, - 15207: 0x88B5, - 15208: 0x88B6, - 15209: 0x88B8, - 15210: 0x88B9, - 15211: 0x88BA, - 15212: 0x88BB, - 15213: 0x88BD, - 15214: 0x88BE, - 15215: 0x88BF, - 15216: 0x88C0, - 15217: 0x88C3, - 15218: 0x88C4, - 15219: 0x88C7, - 15220: 0x88C8, - 15221: 0x88CA, - 15222: 0x88CB, - 15223: 0x88CC, - 15224: 0x88CD, - 15225: 0x88CF, - 15226: 0x88D0, - 15227: 0x88D1, - 15228: 0x88D3, - 15229: 0x88D6, - 15230: 0x88D7, - 15231: 0x88DA, - 15232: 0x88DB, - 15233: 0x88DC, - 15234: 0x88DD, - 15235: 0x88DE, - 15236: 0x88E0, - 15237: 0x88E1, - 15238: 0x88E6, - 15239: 0x88E7, - 15240: 0x88E9, - 15241: 0x88EA, - 15242: 0x88EB, - 15243: 0x88EC, - 15244: 0x88ED, - 15245: 0x88EE, - 15246: 0x88EF, - 15247: 0x88F2, - 15248: 0x88F5, - 15249: 0x88F6, - 15250: 0x88F7, - 15251: 0x88FA, - 15252: 0x88FB, - 15253: 0x88FD, - 15254: 0x88FF, - 15255: 0x8900, - 15256: 0x8901, - 15257: 0x8903, - 15258: 0x8904, - 15259: 0x8905, - 15260: 0x8906, - 15261: 0x8907, - 15262: 0x8908, - 15263: 0x8909, - 15264: 0x890B, - 15265: 0x890C, - 15266: 0x890D, - 15267: 0x890E, - 15268: 0x890F, - 15269: 0x8911, - 15270: 0x8914, - 15271: 0x8915, - 15272: 0x8916, - 15273: 0x8917, - 15274: 0x8918, - 15275: 0x891C, - 15276: 0x891D, - 15277: 0x891E, - 15278: 0x891F, - 15279: 0x8920, - 15280: 0x8922, - 15281: 0x8923, - 15282: 0x8924, - 15283: 0x8926, - 15284: 0x8927, - 15285: 0x8928, - 15286: 0x8929, - 15287: 0x892C, - 15288: 0x892D, - 15289: 0x892E, - 15290: 0x892F, - 15291: 0x8931, - 15292: 0x8932, - 15293: 0x8933, - 15294: 0x8935, - 15295: 0x8937, - 15296: 0x9009, - 15297: 0x7663, - 15298: 0x7729, - 15299: 0x7EDA, - 15300: 0x9774, - 15301: 0x859B, - 15302: 0x5B66, - 15303: 0x7A74, - 15304: 0x96EA, - 15305: 0x8840, - 15306: 0x52CB, - 15307: 0x718F, - 15308: 0x5FAA, - 15309: 0x65EC, - 15310: 0x8BE2, - 15311: 0x5BFB, - 15312: 0x9A6F, - 15313: 0x5DE1, - 15314: 0x6B89, - 15315: 0x6C5B, - 15316: 0x8BAD, - 15317: 0x8BAF, - 15318: 0x900A, - 15319: 0x8FC5, - 15320: 0x538B, - 15321: 0x62BC, - 15322: 0x9E26, - 15323: 0x9E2D, - 15324: 0x5440, - 15325: 0x4E2B, - 15326: 0x82BD, - 15327: 0x7259, - 15328: 0x869C, - 15329: 0x5D16, - 15330: 0x8859, - 15331: 0x6DAF, - 15332: 0x96C5, - 15333: 0x54D1, - 15334: 0x4E9A, - 15335: 0x8BB6, - 15336: 0x7109, - 15337: 0x54BD, - 15338: 0x9609, - 15339: 0x70DF, - 15340: 0x6DF9, - 15341: 0x76D0, - 15342: 0x4E25, - 15343: 0x7814, - 15344: 0x8712, - 15345: 0x5CA9, - 15346: 0x5EF6, - 15347: 0x8A00, - 15348: 0x989C, - 15349: 0x960E, - 15350: 0x708E, - 15351: 0x6CBF, - 15352: 0x5944, - 15353: 0x63A9, - 15354: 0x773C, - 15355: 0x884D, - 15356: 0x6F14, - 15357: 0x8273, - 15358: 0x5830, - 15359: 0x71D5, - 15360: 0x538C, - 15361: 0x781A, - 15362: 0x96C1, - 15363: 0x5501, - 15364: 0x5F66, - 15365: 0x7130, - 15366: 0x5BB4, - 15367: 0x8C1A, - 15368: 0x9A8C, - 15369: 0x6B83, - 15370: 0x592E, - 15371: 0x9E2F, - 15372: 0x79E7, - 15373: 0x6768, - 15374: 0x626C, - 15375: 0x4F6F, - 15376: 0x75A1, - 15377: 0x7F8A, - 15378: 0x6D0B, - 15379: 0x9633, - 15380: 0x6C27, - 15381: 0x4EF0, - 15382: 0x75D2, - 15383: 0x517B, - 15384: 0x6837, - 15385: 0x6F3E, - 15386: 0x9080, - 15387: 0x8170, - 15388: 0x5996, - 15389: 0x7476, - 15390: 0x8938, - 15391: 0x8939, - 15392: 0x893A, - 15393: 0x893B, - 15394: 0x893C, - 15395: 0x893D, - 15396: 0x893E, - 15397: 0x893F, - 15398: 0x8940, - 15399: 0x8942, - 15400: 0x8943, - 15401: 0x8945, - 15402: 0x8946, - 15403: 0x8947, - 15404: 0x8948, - 15405: 0x8949, - 15406: 0x894A, - 15407: 0x894B, - 15408: 0x894C, - 15409: 0x894D, - 15410: 0x894E, - 15411: 0x894F, - 15412: 0x8950, - 15413: 0x8951, - 15414: 0x8952, - 15415: 0x8953, - 15416: 0x8954, - 15417: 0x8955, - 15418: 0x8956, - 15419: 0x8957, - 15420: 0x8958, - 15421: 0x8959, - 15422: 0x895A, - 15423: 0x895B, - 15424: 0x895C, - 15425: 0x895D, - 15426: 0x8960, - 15427: 0x8961, - 15428: 0x8962, - 15429: 0x8963, - 15430: 0x8964, - 15431: 0x8965, - 15432: 0x8967, - 15433: 0x8968, - 15434: 0x8969, - 15435: 0x896A, - 15436: 0x896B, - 15437: 0x896C, - 15438: 0x896D, - 15439: 0x896E, - 15440: 0x896F, - 15441: 0x8970, - 15442: 0x8971, - 15443: 0x8972, - 15444: 0x8973, - 15445: 0x8974, - 15446: 0x8975, - 15447: 0x8976, - 15448: 0x8977, - 15449: 0x8978, - 15450: 0x8979, - 15451: 0x897A, - 15452: 0x897C, - 15453: 0x897D, - 15454: 0x897E, - 15455: 0x8980, - 15456: 0x8982, - 15457: 0x8984, - 15458: 0x8985, - 15459: 0x8987, - 15460: 0x8988, - 15461: 0x8989, - 15462: 0x898A, - 15463: 0x898B, - 15464: 0x898C, - 15465: 0x898D, - 15466: 0x898E, - 15467: 0x898F, - 15468: 0x8990, - 15469: 0x8991, - 15470: 0x8992, - 15471: 0x8993, - 15472: 0x8994, - 15473: 0x8995, - 15474: 0x8996, - 15475: 0x8997, - 15476: 0x8998, - 15477: 0x8999, - 15478: 0x899A, - 15479: 0x899B, - 15480: 0x899C, - 15481: 0x899D, - 15482: 0x899E, - 15483: 0x899F, - 15484: 0x89A0, - 15485: 0x89A1, - 15486: 0x6447, - 15487: 0x5C27, - 15488: 0x9065, - 15489: 0x7A91, - 15490: 0x8C23, - 15491: 0x59DA, - 15492: 0x54AC, - 15493: 0x8200, - 15494: 0x836F, - 15495: 0x8981, - 15496: 0x8000, - 15497: 0x6930, - 15498: 0x564E, - 15499: 0x8036, - 15500: 0x7237, - 15501: 0x91CE, - 15502: 0x51B6, - 15503: 0x4E5F, - 15504: 0x9875, - 15505: 0x6396, - 15506: 0x4E1A, - 15507: 0x53F6, - 15508: 0x66F3, - 15509: 0x814B, - 15510: 0x591C, - 15511: 0x6DB2, - 15512: 0x4E00, - 15513: 0x58F9, - 15514: 0x533B, - 15515: 0x63D6, - 15516: 0x94F1, - 15517: 0x4F9D, - 15518: 0x4F0A, - 15519: 0x8863, - 15520: 0x9890, - 15521: 0x5937, - 15522: 0x9057, - 15523: 0x79FB, - 15524: 0x4EEA, - 15525: 0x80F0, - 15526: 0x7591, - 15527: 0x6C82, - 15528: 0x5B9C, - 15529: 0x59E8, - 15530: 0x5F5D, - 15531: 0x6905, - 15532: 0x8681, - 15533: 0x501A, - 15534: 0x5DF2, - 15535: 0x4E59, - 15536: 0x77E3, - 15537: 0x4EE5, - 15538: 0x827A, - 15539: 0x6291, - 15540: 0x6613, - 15541: 0x9091, - 15542: 0x5C79, - 15543: 0x4EBF, - 15544: 0x5F79, - 15545: 0x81C6, - 15546: 0x9038, - 15547: 0x8084, - 15548: 0x75AB, - 15549: 0x4EA6, - 15550: 0x88D4, - 15551: 0x610F, - 15552: 0x6BC5, - 15553: 0x5FC6, - 15554: 0x4E49, - 15555: 0x76CA, - 15556: 0x6EA2, - 15557: 0x8BE3, - 15558: 0x8BAE, - 15559: 0x8C0A, - 15560: 0x8BD1, - 15561: 0x5F02, - 15562: 0x7FFC, - 15563: 0x7FCC, - 15564: 0x7ECE, - 15565: 0x8335, - 15566: 0x836B, - 15567: 0x56E0, - 15568: 0x6BB7, - 15569: 0x97F3, - 15570: 0x9634, - 15571: 0x59FB, - 15572: 0x541F, - 15573: 0x94F6, - 15574: 0x6DEB, - 15575: 0x5BC5, - 15576: 0x996E, - 15577: 0x5C39, - 15578: 0x5F15, - 15579: 0x9690, - 15580: 0x89A2, - 15581: 0x89A3, - 15582: 0x89A4, - 15583: 0x89A5, - 15584: 0x89A6, - 15585: 0x89A7, - 15586: 0x89A8, - 15587: 0x89A9, - 15588: 0x89AA, - 15589: 0x89AB, - 15590: 0x89AC, - 15591: 0x89AD, - 15592: 0x89AE, - 15593: 0x89AF, - 15594: 0x89B0, - 15595: 0x89B1, - 15596: 0x89B2, - 15597: 0x89B3, - 15598: 0x89B4, - 15599: 0x89B5, - 15600: 0x89B6, - 15601: 0x89B7, - 15602: 0x89B8, - 15603: 0x89B9, - 15604: 0x89BA, - 15605: 0x89BB, - 15606: 0x89BC, - 15607: 0x89BD, - 15608: 0x89BE, - 15609: 0x89BF, - 15610: 0x89C0, - 15611: 0x89C3, - 15612: 0x89CD, - 15613: 0x89D3, - 15614: 0x89D4, - 15615: 0x89D5, - 15616: 0x89D7, - 15617: 0x89D8, - 15618: 0x89D9, - 15619: 0x89DB, - 15620: 0x89DD, - 15621: 0x89DF, - 15622: 0x89E0, - 15623: 0x89E1, - 15624: 0x89E2, - 15625: 0x89E4, - 15626: 0x89E7, - 15627: 0x89E8, - 15628: 0x89E9, - 15629: 0x89EA, - 15630: 0x89EC, - 15631: 0x89ED, - 15632: 0x89EE, - 15633: 0x89F0, - 15634: 0x89F1, - 15635: 0x89F2, - 15636: 0x89F4, - 15637: 0x89F5, - 15638: 0x89F6, - 15639: 0x89F7, - 15640: 0x89F8, - 15641: 0x89F9, - 15642: 0x89FA, - 15643: 0x89FB, - 15644: 0x89FC, - 15645: 0x89FD, - 15646: 0x89FE, - 15647: 0x89FF, - 15648: 0x8A01, - 15649: 0x8A02, - 15650: 0x8A03, - 15651: 0x8A04, - 15652: 0x8A05, - 15653: 0x8A06, - 15654: 0x8A08, - 15655: 0x8A09, - 15656: 0x8A0A, - 15657: 0x8A0B, - 15658: 0x8A0C, - 15659: 0x8A0D, - 15660: 0x8A0E, - 15661: 0x8A0F, - 15662: 0x8A10, - 15663: 0x8A11, - 15664: 0x8A12, - 15665: 0x8A13, - 15666: 0x8A14, - 15667: 0x8A15, - 15668: 0x8A16, - 15669: 0x8A17, - 15670: 0x8A18, - 15671: 0x8A19, - 15672: 0x8A1A, - 15673: 0x8A1B, - 15674: 0x8A1C, - 15675: 0x8A1D, - 15676: 0x5370, - 15677: 0x82F1, - 15678: 0x6A31, - 15679: 0x5A74, - 15680: 0x9E70, - 15681: 0x5E94, - 15682: 0x7F28, - 15683: 0x83B9, - 15684: 0x8424, - 15685: 0x8425, - 15686: 0x8367, - 15687: 0x8747, - 15688: 0x8FCE, - 15689: 0x8D62, - 15690: 0x76C8, - 15691: 0x5F71, - 15692: 0x9896, - 15693: 0x786C, - 15694: 0x6620, - 15695: 0x54DF, - 15696: 0x62E5, - 15697: 0x4F63, - 15698: 0x81C3, - 15699: 0x75C8, - 15700: 0x5EB8, - 15701: 0x96CD, - 15702: 0x8E0A, - 15703: 0x86F9, - 15704: 0x548F, - 15705: 0x6CF3, - 15706: 0x6D8C, - 15707: 0x6C38, - 15708: 0x607F, - 15709: 0x52C7, - 15710: 0x7528, - 15711: 0x5E7D, - 15712: 0x4F18, - 15713: 0x60A0, - 15714: 0x5FE7, - 15715: 0x5C24, - 15716: 0x7531, - 15717: 0x90AE, - 15718: 0x94C0, - 15719: 0x72B9, - 15720: 0x6CB9, - 15721: 0x6E38, - 15722: 0x9149, - 15723: 0x6709, - 15724: 0x53CB, - 15725: 0x53F3, - 15726: 0x4F51, - 15727: 0x91C9, - 15728: 0x8BF1, - 15729: 0x53C8, - 15730: 0x5E7C, - 15731: 0x8FC2, - 15732: 0x6DE4, - 15733: 0x4E8E, - 15734: 0x76C2, - 15735: 0x6986, - 15736: 0x865E, - 15737: 0x611A, - 15738: 0x8206, - 15739: 0x4F59, - 15740: 0x4FDE, - 15741: 0x903E, - 15742: 0x9C7C, - 15743: 0x6109, - 15744: 0x6E1D, - 15745: 0x6E14, - 15746: 0x9685, - 15747: 0x4E88, - 15748: 0x5A31, - 15749: 0x96E8, - 15750: 0x4E0E, - 15751: 0x5C7F, - 15752: 0x79B9, - 15753: 0x5B87, - 15754: 0x8BED, - 15755: 0x7FBD, - 15756: 0x7389, - 15757: 0x57DF, - 15758: 0x828B, - 15759: 0x90C1, - 15760: 0x5401, - 15761: 0x9047, - 15762: 0x55BB, - 15763: 0x5CEA, - 15764: 0x5FA1, - 15765: 0x6108, - 15766: 0x6B32, - 15767: 0x72F1, - 15768: 0x80B2, - 15769: 0x8A89, - 15770: 0x8A1E, - 15771: 0x8A1F, - 15772: 0x8A20, - 15773: 0x8A21, - 15774: 0x8A22, - 15775: 0x8A23, - 15776: 0x8A24, - 15777: 0x8A25, - 15778: 0x8A26, - 15779: 0x8A27, - 15780: 0x8A28, - 15781: 0x8A29, - 15782: 0x8A2A, - 15783: 0x8A2B, - 15784: 0x8A2C, - 15785: 0x8A2D, - 15786: 0x8A2E, - 15787: 0x8A2F, - 15788: 0x8A30, - 15789: 0x8A31, - 15790: 0x8A32, - 15791: 0x8A33, - 15792: 0x8A34, - 15793: 0x8A35, - 15794: 0x8A36, - 15795: 0x8A37, - 15796: 0x8A38, - 15797: 0x8A39, - 15798: 0x8A3A, - 15799: 0x8A3B, - 15800: 0x8A3C, - 15801: 0x8A3D, - 15802: 0x8A3F, - 15803: 0x8A40, - 15804: 0x8A41, - 15805: 0x8A42, - 15806: 0x8A43, - 15807: 0x8A44, - 15808: 0x8A45, - 15809: 0x8A46, - 15810: 0x8A47, - 15811: 0x8A49, - 15812: 0x8A4A, - 15813: 0x8A4B, - 15814: 0x8A4C, - 15815: 0x8A4D, - 15816: 0x8A4E, - 15817: 0x8A4F, - 15818: 0x8A50, - 15819: 0x8A51, - 15820: 0x8A52, - 15821: 0x8A53, - 15822: 0x8A54, - 15823: 0x8A55, - 15824: 0x8A56, - 15825: 0x8A57, - 15826: 0x8A58, - 15827: 0x8A59, - 15828: 0x8A5A, - 15829: 0x8A5B, - 15830: 0x8A5C, - 15831: 0x8A5D, - 15832: 0x8A5E, - 15833: 0x8A5F, - 15834: 0x8A60, - 15835: 0x8A61, - 15836: 0x8A62, - 15837: 0x8A63, - 15838: 0x8A64, - 15839: 0x8A65, - 15840: 0x8A66, - 15841: 0x8A67, - 15842: 0x8A68, - 15843: 0x8A69, - 15844: 0x8A6A, - 15845: 0x8A6B, - 15846: 0x8A6C, - 15847: 0x8A6D, - 15848: 0x8A6E, - 15849: 0x8A6F, - 15850: 0x8A70, - 15851: 0x8A71, - 15852: 0x8A72, - 15853: 0x8A73, - 15854: 0x8A74, - 15855: 0x8A75, - 15856: 0x8A76, - 15857: 0x8A77, - 15858: 0x8A78, - 15859: 0x8A7A, - 15860: 0x8A7B, - 15861: 0x8A7C, - 15862: 0x8A7D, - 15863: 0x8A7E, - 15864: 0x8A7F, - 15865: 0x8A80, - 15866: 0x6D74, - 15867: 0x5BD3, - 15868: 0x88D5, - 15869: 0x9884, - 15870: 0x8C6B, - 15871: 0x9A6D, - 15872: 0x9E33, - 15873: 0x6E0A, - 15874: 0x51A4, - 15875: 0x5143, - 15876: 0x57A3, - 15877: 0x8881, - 15878: 0x539F, - 15879: 0x63F4, - 15880: 0x8F95, - 15881: 0x56ED, - 15882: 0x5458, - 15883: 0x5706, - 15884: 0x733F, - 15885: 0x6E90, - 15886: 0x7F18, - 15887: 0x8FDC, - 15888: 0x82D1, - 15889: 0x613F, - 15890: 0x6028, - 15891: 0x9662, - 15892: 0x66F0, - 15893: 0x7EA6, - 15894: 0x8D8A, - 15895: 0x8DC3, - 15896: 0x94A5, - 15897: 0x5CB3, - 15898: 0x7CA4, - 15899: 0x6708, - 15900: 0x60A6, - 15901: 0x9605, - 15902: 0x8018, - 15903: 0x4E91, - 15904: 0x90E7, - 15905: 0x5300, - 15906: 0x9668, - 15907: 0x5141, - 15908: 0x8FD0, - 15909: 0x8574, - 15910: 0x915D, - 15911: 0x6655, - 15912: 0x97F5, - 15913: 0x5B55, - 15914: 0x531D, - 15915: 0x7838, - 15916: 0x6742, - 15917: 0x683D, - 15918: 0x54C9, - 15919: 0x707E, - 15920: 0x5BB0, - 15921: 0x8F7D, - 15922: 0x518D, - 15923: 0x5728, - 15924: 0x54B1, - 15925: 0x6512, - 15926: 0x6682, - 15927: 0x8D5E, - 15928: 0x8D43, - 15929: 0x810F, - 15930: 0x846C, - 15931: 0x906D, - 15932: 0x7CDF, - 15933: 0x51FF, - 15934: 0x85FB, - 15935: 0x67A3, - 15936: 0x65E9, - 15937: 0x6FA1, - 15938: 0x86A4, - 15939: 0x8E81, - 15940: 0x566A, - 15941: 0x9020, - 15942: 0x7682, - 15943: 0x7076, - 15944: 0x71E5, - 15945: 0x8D23, - 15946: 0x62E9, - 15947: 0x5219, - 15948: 0x6CFD, - 15949: 0x8D3C, - 15950: 0x600E, - 15951: 0x589E, - 15952: 0x618E, - 15953: 0x66FE, - 15954: 0x8D60, - 15955: 0x624E, - 15956: 0x55B3, - 15957: 0x6E23, - 15958: 0x672D, - 15959: 0x8F67, - 15960: 0x8A81, - 15961: 0x8A82, - 15962: 0x8A83, - 15963: 0x8A84, - 15964: 0x8A85, - 15965: 0x8A86, - 15966: 0x8A87, - 15967: 0x8A88, - 15968: 0x8A8B, - 15969: 0x8A8C, - 15970: 0x8A8D, - 15971: 0x8A8E, - 15972: 0x8A8F, - 15973: 0x8A90, - 15974: 0x8A91, - 15975: 0x8A92, - 15976: 0x8A94, - 15977: 0x8A95, - 15978: 0x8A96, - 15979: 0x8A97, - 15980: 0x8A98, - 15981: 0x8A99, - 15982: 0x8A9A, - 15983: 0x8A9B, - 15984: 0x8A9C, - 15985: 0x8A9D, - 15986: 0x8A9E, - 15987: 0x8A9F, - 15988: 0x8AA0, - 15989: 0x8AA1, - 15990: 0x8AA2, - 15991: 0x8AA3, - 15992: 0x8AA4, - 15993: 0x8AA5, - 15994: 0x8AA6, - 15995: 0x8AA7, - 15996: 0x8AA8, - 15997: 0x8AA9, - 15998: 0x8AAA, - 15999: 0x8AAB, - 16000: 0x8AAC, - 16001: 0x8AAD, - 16002: 0x8AAE, - 16003: 0x8AAF, - 16004: 0x8AB0, - 16005: 0x8AB1, - 16006: 0x8AB2, - 16007: 0x8AB3, - 16008: 0x8AB4, - 16009: 0x8AB5, - 16010: 0x8AB6, - 16011: 0x8AB7, - 16012: 0x8AB8, - 16013: 0x8AB9, - 16014: 0x8ABA, - 16015: 0x8ABB, - 16016: 0x8ABC, - 16017: 0x8ABD, - 16018: 0x8ABE, - 16019: 0x8ABF, - 16020: 0x8AC0, - 16021: 0x8AC1, - 16022: 0x8AC2, - 16023: 0x8AC3, - 16024: 0x8AC4, - 16025: 0x8AC5, - 16026: 0x8AC6, - 16027: 0x8AC7, - 16028: 0x8AC8, - 16029: 0x8AC9, - 16030: 0x8ACA, - 16031: 0x8ACB, - 16032: 0x8ACC, - 16033: 0x8ACD, - 16034: 0x8ACE, - 16035: 0x8ACF, - 16036: 0x8AD0, - 16037: 0x8AD1, - 16038: 0x8AD2, - 16039: 0x8AD3, - 16040: 0x8AD4, - 16041: 0x8AD5, - 16042: 0x8AD6, - 16043: 0x8AD7, - 16044: 0x8AD8, - 16045: 0x8AD9, - 16046: 0x8ADA, - 16047: 0x8ADB, - 16048: 0x8ADC, - 16049: 0x8ADD, - 16050: 0x8ADE, - 16051: 0x8ADF, - 16052: 0x8AE0, - 16053: 0x8AE1, - 16054: 0x8AE2, - 16055: 0x8AE3, - 16056: 0x94E1, - 16057: 0x95F8, - 16058: 0x7728, - 16059: 0x6805, - 16060: 0x69A8, - 16061: 0x548B, - 16062: 0x4E4D, - 16063: 0x70B8, - 16064: 0x8BC8, - 16065: 0x6458, - 16066: 0x658B, - 16067: 0x5B85, - 16068: 0x7A84, - 16069: 0x503A, - 16070: 0x5BE8, - 16071: 0x77BB, - 16072: 0x6BE1, - 16073: 0x8A79, - 16074: 0x7C98, - 16075: 0x6CBE, - 16076: 0x76CF, - 16077: 0x65A9, - 16078: 0x8F97, - 16079: 0x5D2D, - 16080: 0x5C55, - 16081: 0x8638, - 16082: 0x6808, - 16083: 0x5360, - 16084: 0x6218, - 16085: 0x7AD9, - 16086: 0x6E5B, - 16087: 0x7EFD, - 16088: 0x6A1F, - 16089: 0x7AE0, - 16090: 0x5F70, - 16091: 0x6F33, - 16092: 0x5F20, - 16093: 0x638C, - 16094: 0x6DA8, - 16095: 0x6756, - 16096: 0x4E08, - 16097: 0x5E10, - 16098: 0x8D26, - 16099: 0x4ED7, - 16100: 0x80C0, - 16101: 0x7634, - 16102: 0x969C, - 16103: 0x62DB, - 16104: 0x662D, - 16105: 0x627E, - 16106: 0x6CBC, - 16107: 0x8D75, - 16108: 0x7167, - 16109: 0x7F69, - 16110: 0x5146, - 16111: 0x8087, - 16112: 0x53EC, - 16113: 0x906E, - 16114: 0x6298, - 16115: 0x54F2, - 16116: 0x86F0, - 16117: 0x8F99, - 16118: 0x8005, - 16119: 0x9517, - 16120: 0x8517, - 16121: 0x8FD9, - 16122: 0x6D59, - 16123: 0x73CD, - 16124: 0x659F, - 16125: 0x771F, - 16126: 0x7504, - 16127: 0x7827, - 16128: 0x81FB, - 16129: 0x8D1E, - 16130: 0x9488, - 16131: 0x4FA6, - 16132: 0x6795, - 16133: 0x75B9, - 16134: 0x8BCA, - 16135: 0x9707, - 16136: 0x632F, - 16137: 0x9547, - 16138: 0x9635, - 16139: 0x84B8, - 16140: 0x6323, - 16141: 0x7741, - 16142: 0x5F81, - 16143: 0x72F0, - 16144: 0x4E89, - 16145: 0x6014, - 16146: 0x6574, - 16147: 0x62EF, - 16148: 0x6B63, - 16149: 0x653F, - 16150: 0x8AE4, - 16151: 0x8AE5, - 16152: 0x8AE6, - 16153: 0x8AE7, - 16154: 0x8AE8, - 16155: 0x8AE9, - 16156: 0x8AEA, - 16157: 0x8AEB, - 16158: 0x8AEC, - 16159: 0x8AED, - 16160: 0x8AEE, - 16161: 0x8AEF, - 16162: 0x8AF0, - 16163: 0x8AF1, - 16164: 0x8AF2, - 16165: 0x8AF3, - 16166: 0x8AF4, - 16167: 0x8AF5, - 16168: 0x8AF6, - 16169: 0x8AF7, - 16170: 0x8AF8, - 16171: 0x8AF9, - 16172: 0x8AFA, - 16173: 0x8AFB, - 16174: 0x8AFC, - 16175: 0x8AFD, - 16176: 0x8AFE, - 16177: 0x8AFF, - 16178: 0x8B00, - 16179: 0x8B01, - 16180: 0x8B02, - 16181: 0x8B03, - 16182: 0x8B04, - 16183: 0x8B05, - 16184: 0x8B06, - 16185: 0x8B08, - 16186: 0x8B09, - 16187: 0x8B0A, - 16188: 0x8B0B, - 16189: 0x8B0C, - 16190: 0x8B0D, - 16191: 0x8B0E, - 16192: 0x8B0F, - 16193: 0x8B10, - 16194: 0x8B11, - 16195: 0x8B12, - 16196: 0x8B13, - 16197: 0x8B14, - 16198: 0x8B15, - 16199: 0x8B16, - 16200: 0x8B17, - 16201: 0x8B18, - 16202: 0x8B19, - 16203: 0x8B1A, - 16204: 0x8B1B, - 16205: 0x8B1C, - 16206: 0x8B1D, - 16207: 0x8B1E, - 16208: 0x8B1F, - 16209: 0x8B20, - 16210: 0x8B21, - 16211: 0x8B22, - 16212: 0x8B23, - 16213: 0x8B24, - 16214: 0x8B25, - 16215: 0x8B27, - 16216: 0x8B28, - 16217: 0x8B29, - 16218: 0x8B2A, - 16219: 0x8B2B, - 16220: 0x8B2C, - 16221: 0x8B2D, - 16222: 0x8B2E, - 16223: 0x8B2F, - 16224: 0x8B30, - 16225: 0x8B31, - 16226: 0x8B32, - 16227: 0x8B33, - 16228: 0x8B34, - 16229: 0x8B35, - 16230: 0x8B36, - 16231: 0x8B37, - 16232: 0x8B38, - 16233: 0x8B39, - 16234: 0x8B3A, - 16235: 0x8B3B, - 16236: 0x8B3C, - 16237: 0x8B3D, - 16238: 0x8B3E, - 16239: 0x8B3F, - 16240: 0x8B40, - 16241: 0x8B41, - 16242: 0x8B42, - 16243: 0x8B43, - 16244: 0x8B44, - 16245: 0x8B45, - 16246: 0x5E27, - 16247: 0x75C7, - 16248: 0x90D1, - 16249: 0x8BC1, - 16250: 0x829D, - 16251: 0x679D, - 16252: 0x652F, - 16253: 0x5431, - 16254: 0x8718, - 16255: 0x77E5, - 16256: 0x80A2, - 16257: 0x8102, - 16258: 0x6C41, - 16259: 0x4E4B, - 16260: 0x7EC7, - 16261: 0x804C, - 16262: 0x76F4, - 16263: 0x690D, - 16264: 0x6B96, - 16265: 0x6267, - 16266: 0x503C, - 16267: 0x4F84, - 16268: 0x5740, - 16269: 0x6307, - 16270: 0x6B62, - 16271: 0x8DBE, - 16272: 0x53EA, - 16273: 0x65E8, - 16274: 0x7EB8, - 16275: 0x5FD7, - 16276: 0x631A, - 16277: 0x63B7, - 16278: 0x81F3, - 16279: 0x81F4, - 16280: 0x7F6E, - 16281: 0x5E1C, - 16282: 0x5CD9, - 16283: 0x5236, - 16284: 0x667A, - 16285: 0x79E9, - 16286: 0x7A1A, - 16287: 0x8D28, - 16288: 0x7099, - 16289: 0x75D4, - 16290: 0x6EDE, - 16291: 0x6CBB, - 16292: 0x7A92, - 16293: 0x4E2D, - 16294: 0x76C5, - 16295: 0x5FE0, - 16296: 0x949F, - 16297: 0x8877, - 16298: 0x7EC8, - 16299: 0x79CD, - 16300: 0x80BF, - 16301: 0x91CD, - 16302: 0x4EF2, - 16303: 0x4F17, - 16304: 0x821F, - 16305: 0x5468, - 16306: 0x5DDE, - 16307: 0x6D32, - 16308: 0x8BCC, - 16309: 0x7CA5, - 16310: 0x8F74, - 16311: 0x8098, - 16312: 0x5E1A, - 16313: 0x5492, - 16314: 0x76B1, - 16315: 0x5B99, - 16316: 0x663C, - 16317: 0x9AA4, - 16318: 0x73E0, - 16319: 0x682A, - 16320: 0x86DB, - 16321: 0x6731, - 16322: 0x732A, - 16323: 0x8BF8, - 16324: 0x8BDB, - 16325: 0x9010, - 16326: 0x7AF9, - 16327: 0x70DB, - 16328: 0x716E, - 16329: 0x62C4, - 16330: 0x77A9, - 16331: 0x5631, - 16332: 0x4E3B, - 16333: 0x8457, - 16334: 0x67F1, - 16335: 0x52A9, - 16336: 0x86C0, - 16337: 0x8D2E, - 16338: 0x94F8, - 16339: 0x7B51, - 16340: 0x8B46, - 16341: 0x8B47, - 16342: 0x8B48, - 16343: 0x8B49, - 16344: 0x8B4A, - 16345: 0x8B4B, - 16346: 0x8B4C, - 16347: 0x8B4D, - 16348: 0x8B4E, - 16349: 0x8B4F, - 16350: 0x8B50, - 16351: 0x8B51, - 16352: 0x8B52, - 16353: 0x8B53, - 16354: 0x8B54, - 16355: 0x8B55, - 16356: 0x8B56, - 16357: 0x8B57, - 16358: 0x8B58, - 16359: 0x8B59, - 16360: 0x8B5A, - 16361: 0x8B5B, - 16362: 0x8B5C, - 16363: 0x8B5D, - 16364: 0x8B5E, - 16365: 0x8B5F, - 16366: 0x8B60, - 16367: 0x8B61, - 16368: 0x8B62, - 16369: 0x8B63, - 16370: 0x8B64, - 16371: 0x8B65, - 16372: 0x8B67, - 16373: 0x8B68, - 16374: 0x8B69, - 16375: 0x8B6A, - 16376: 0x8B6B, - 16377: 0x8B6D, - 16378: 0x8B6E, - 16379: 0x8B6F, - 16380: 0x8B70, - 16381: 0x8B71, - 16382: 0x8B72, - 16383: 0x8B73, - 16384: 0x8B74, - 16385: 0x8B75, - 16386: 0x8B76, - 16387: 0x8B77, - 16388: 0x8B78, - 16389: 0x8B79, - 16390: 0x8B7A, - 16391: 0x8B7B, - 16392: 0x8B7C, - 16393: 0x8B7D, - 16394: 0x8B7E, - 16395: 0x8B7F, - 16396: 0x8B80, - 16397: 0x8B81, - 16398: 0x8B82, - 16399: 0x8B83, - 16400: 0x8B84, - 16401: 0x8B85, - 16402: 0x8B86, - 16403: 0x8B87, - 16404: 0x8B88, - 16405: 0x8B89, - 16406: 0x8B8A, - 16407: 0x8B8B, - 16408: 0x8B8C, - 16409: 0x8B8D, - 16410: 0x8B8E, - 16411: 0x8B8F, - 16412: 0x8B90, - 16413: 0x8B91, - 16414: 0x8B92, - 16415: 0x8B93, - 16416: 0x8B94, - 16417: 0x8B95, - 16418: 0x8B96, - 16419: 0x8B97, - 16420: 0x8B98, - 16421: 0x8B99, - 16422: 0x8B9A, - 16423: 0x8B9B, - 16424: 0x8B9C, - 16425: 0x8B9D, - 16426: 0x8B9E, - 16427: 0x8B9F, - 16428: 0x8BAC, - 16429: 0x8BB1, - 16430: 0x8BBB, - 16431: 0x8BC7, - 16432: 0x8BD0, - 16433: 0x8BEA, - 16434: 0x8C09, - 16435: 0x8C1E, - 16436: 0x4F4F, - 16437: 0x6CE8, - 16438: 0x795D, - 16439: 0x9A7B, - 16440: 0x6293, - 16441: 0x722A, - 16442: 0x62FD, - 16443: 0x4E13, - 16444: 0x7816, - 16445: 0x8F6C, - 16446: 0x64B0, - 16447: 0x8D5A, - 16448: 0x7BC6, - 16449: 0x6869, - 16450: 0x5E84, - 16451: 0x88C5, - 16452: 0x5986, - 16453: 0x649E, - 16454: 0x58EE, - 16455: 0x72B6, - 16456: 0x690E, - 16457: 0x9525, - 16458: 0x8FFD, - 16459: 0x8D58, - 16460: 0x5760, - 16461: 0x7F00, - 16462: 0x8C06, - 16463: 0x51C6, - 16464: 0x6349, - 16465: 0x62D9, - 16466: 0x5353, - 16467: 0x684C, - 16468: 0x7422, - 16469: 0x8301, - 16470: 0x914C, - 16471: 0x5544, - 16472: 0x7740, - 16473: 0x707C, - 16474: 0x6D4A, - 16475: 0x5179, - 16476: 0x54A8, - 16477: 0x8D44, - 16478: 0x59FF, - 16479: 0x6ECB, - 16480: 0x6DC4, - 16481: 0x5B5C, - 16482: 0x7D2B, - 16483: 0x4ED4, - 16484: 0x7C7D, - 16485: 0x6ED3, - 16486: 0x5B50, - 16487: 0x81EA, - 16488: 0x6E0D, - 16489: 0x5B57, - 16490: 0x9B03, - 16491: 0x68D5, - 16492: 0x8E2A, - 16493: 0x5B97, - 16494: 0x7EFC, - 16495: 0x603B, - 16496: 0x7EB5, - 16497: 0x90B9, - 16498: 0x8D70, - 16499: 0x594F, - 16500: 0x63CD, - 16501: 0x79DF, - 16502: 0x8DB3, - 16503: 0x5352, - 16504: 0x65CF, - 16505: 0x7956, - 16506: 0x8BC5, - 16507: 0x963B, - 16508: 0x7EC4, - 16509: 0x94BB, - 16510: 0x7E82, - 16511: 0x5634, - 16512: 0x9189, - 16513: 0x6700, - 16514: 0x7F6A, - 16515: 0x5C0A, - 16516: 0x9075, - 16517: 0x6628, - 16518: 0x5DE6, - 16519: 0x4F50, - 16520: 0x67DE, - 16521: 0x505A, - 16522: 0x4F5C, - 16523: 0x5750, - 16524: 0x5EA7, - 16530: 0x8C38, - 16531: 0x8C39, - 16532: 0x8C3A, - 16533: 0x8C3B, - 16534: 0x8C3C, - 16535: 0x8C3D, - 16536: 0x8C3E, - 16537: 0x8C3F, - 16538: 0x8C40, - 16539: 0x8C42, - 16540: 0x8C43, - 16541: 0x8C44, - 16542: 0x8C45, - 16543: 0x8C48, - 16544: 0x8C4A, - 16545: 0x8C4B, - 16546: 0x8C4D, - 16547: 0x8C4E, - 16548: 0x8C4F, - 16549: 0x8C50, - 16550: 0x8C51, - 16551: 0x8C52, - 16552: 0x8C53, - 16553: 0x8C54, - 16554: 0x8C56, - 16555: 0x8C57, - 16556: 0x8C58, - 16557: 0x8C59, - 16558: 0x8C5B, - 16559: 0x8C5C, - 16560: 0x8C5D, - 16561: 0x8C5E, - 16562: 0x8C5F, - 16563: 0x8C60, - 16564: 0x8C63, - 16565: 0x8C64, - 16566: 0x8C65, - 16567: 0x8C66, - 16568: 0x8C67, - 16569: 0x8C68, - 16570: 0x8C69, - 16571: 0x8C6C, - 16572: 0x8C6D, - 16573: 0x8C6E, - 16574: 0x8C6F, - 16575: 0x8C70, - 16576: 0x8C71, - 16577: 0x8C72, - 16578: 0x8C74, - 16579: 0x8C75, - 16580: 0x8C76, - 16581: 0x8C77, - 16582: 0x8C7B, - 16583: 0x8C7C, - 16584: 0x8C7D, - 16585: 0x8C7E, - 16586: 0x8C7F, - 16587: 0x8C80, - 16588: 0x8C81, - 16589: 0x8C83, - 16590: 0x8C84, - 16591: 0x8C86, - 16592: 0x8C87, - 16593: 0x8C88, - 16594: 0x8C8B, - 16595: 0x8C8D, - 16596: 0x8C8E, - 16597: 0x8C8F, - 16598: 0x8C90, - 16599: 0x8C91, - 16600: 0x8C92, - 16601: 0x8C93, - 16602: 0x8C95, - 16603: 0x8C96, - 16604: 0x8C97, - 16605: 0x8C99, - 16606: 0x8C9A, - 16607: 0x8C9B, - 16608: 0x8C9C, - 16609: 0x8C9D, - 16610: 0x8C9E, - 16611: 0x8C9F, - 16612: 0x8CA0, - 16613: 0x8CA1, - 16614: 0x8CA2, - 16615: 0x8CA3, - 16616: 0x8CA4, - 16617: 0x8CA5, - 16618: 0x8CA6, - 16619: 0x8CA7, - 16620: 0x8CA8, - 16621: 0x8CA9, - 16622: 0x8CAA, - 16623: 0x8CAB, - 16624: 0x8CAC, - 16625: 0x8CAD, - 16626: 0x4E8D, - 16627: 0x4E0C, - 16628: 0x5140, - 16629: 0x4E10, - 16630: 0x5EFF, - 16631: 0x5345, - 16632: 0x4E15, - 16633: 0x4E98, - 16634: 0x4E1E, - 16635: 0x9B32, - 16636: 0x5B6C, - 16637: 0x5669, - 16638: 0x4E28, - 16639: 0x79BA, - 16640: 0x4E3F, - 16641: 0x5315, - 16642: 0x4E47, - 16643: 0x592D, - 16644: 0x723B, - 16645: 0x536E, - 16646: 0x6C10, - 16647: 0x56DF, - 16648: 0x80E4, - 16649: 0x9997, - 16650: 0x6BD3, - 16651: 0x777E, - 16652: 0x9F17, - 16653: 0x4E36, - 16654: 0x4E9F, - 16655: 0x9F10, - 16656: 0x4E5C, - 16657: 0x4E69, - 16658: 0x4E93, - 16659: 0x8288, - 16660: 0x5B5B, - 16661: 0x556C, - 16662: 0x560F, - 16663: 0x4EC4, - 16664: 0x538D, - 16665: 0x539D, - 16666: 0x53A3, - 16667: 0x53A5, - 16668: 0x53AE, - 16669: 0x9765, - 16670: 0x8D5D, - 16671: 0x531A, - 16672: 0x53F5, - 16673: 0x5326, - 16674: 0x532E, - 16675: 0x533E, - 16676: 0x8D5C, - 16677: 0x5366, - 16678: 0x5363, - 16679: 0x5202, - 16680: 0x5208, - 16681: 0x520E, - 16682: 0x522D, - 16683: 0x5233, - 16684: 0x523F, - 16685: 0x5240, - 16686: 0x524C, - 16687: 0x525E, - 16688: 0x5261, - 16689: 0x525C, - 16690: 0x84AF, - 16691: 0x527D, - 16692: 0x5282, - 16693: 0x5281, - 16694: 0x5290, - 16695: 0x5293, - 16696: 0x5182, - 16697: 0x7F54, - 16698: 0x4EBB, - 16699: 0x4EC3, - 16700: 0x4EC9, - 16701: 0x4EC2, - 16702: 0x4EE8, - 16703: 0x4EE1, - 16704: 0x4EEB, - 16705: 0x4EDE, - 16706: 0x4F1B, - 16707: 0x4EF3, - 16708: 0x4F22, - 16709: 0x4F64, - 16710: 0x4EF5, - 16711: 0x4F25, - 16712: 0x4F27, - 16713: 0x4F09, - 16714: 0x4F2B, - 16715: 0x4F5E, - 16716: 0x4F67, - 16717: 0x6538, - 16718: 0x4F5A, - 16719: 0x4F5D, - 16720: 0x8CAE, - 16721: 0x8CAF, - 16722: 0x8CB0, - 16723: 0x8CB1, - 16724: 0x8CB2, - 16725: 0x8CB3, - 16726: 0x8CB4, - 16727: 0x8CB5, - 16728: 0x8CB6, - 16729: 0x8CB7, - 16730: 0x8CB8, - 16731: 0x8CB9, - 16732: 0x8CBA, - 16733: 0x8CBB, - 16734: 0x8CBC, - 16735: 0x8CBD, - 16736: 0x8CBE, - 16737: 0x8CBF, - 16738: 0x8CC0, - 16739: 0x8CC1, - 16740: 0x8CC2, - 16741: 0x8CC3, - 16742: 0x8CC4, - 16743: 0x8CC5, - 16744: 0x8CC6, - 16745: 0x8CC7, - 16746: 0x8CC8, - 16747: 0x8CC9, - 16748: 0x8CCA, - 16749: 0x8CCB, - 16750: 0x8CCC, - 16751: 0x8CCD, - 16752: 0x8CCE, - 16753: 0x8CCF, - 16754: 0x8CD0, - 16755: 0x8CD1, - 16756: 0x8CD2, - 16757: 0x8CD3, - 16758: 0x8CD4, - 16759: 0x8CD5, - 16760: 0x8CD6, - 16761: 0x8CD7, - 16762: 0x8CD8, - 16763: 0x8CD9, - 16764: 0x8CDA, - 16765: 0x8CDB, - 16766: 0x8CDC, - 16767: 0x8CDD, - 16768: 0x8CDE, - 16769: 0x8CDF, - 16770: 0x8CE0, - 16771: 0x8CE1, - 16772: 0x8CE2, - 16773: 0x8CE3, - 16774: 0x8CE4, - 16775: 0x8CE5, - 16776: 0x8CE6, - 16777: 0x8CE7, - 16778: 0x8CE8, - 16779: 0x8CE9, - 16780: 0x8CEA, - 16781: 0x8CEB, - 16782: 0x8CEC, - 16783: 0x8CED, - 16784: 0x8CEE, - 16785: 0x8CEF, - 16786: 0x8CF0, - 16787: 0x8CF1, - 16788: 0x8CF2, - 16789: 0x8CF3, - 16790: 0x8CF4, - 16791: 0x8CF5, - 16792: 0x8CF6, - 16793: 0x8CF7, - 16794: 0x8CF8, - 16795: 0x8CF9, - 16796: 0x8CFA, - 16797: 0x8CFB, - 16798: 0x8CFC, - 16799: 0x8CFD, - 16800: 0x8CFE, - 16801: 0x8CFF, - 16802: 0x8D00, - 16803: 0x8D01, - 16804: 0x8D02, - 16805: 0x8D03, - 16806: 0x8D04, - 16807: 0x8D05, - 16808: 0x8D06, - 16809: 0x8D07, - 16810: 0x8D08, - 16811: 0x8D09, - 16812: 0x8D0A, - 16813: 0x8D0B, - 16814: 0x8D0C, - 16815: 0x8D0D, - 16816: 0x4F5F, - 16817: 0x4F57, - 16818: 0x4F32, - 16819: 0x4F3D, - 16820: 0x4F76, - 16821: 0x4F74, - 16822: 0x4F91, - 16823: 0x4F89, - 16824: 0x4F83, - 16825: 0x4F8F, - 16826: 0x4F7E, - 16827: 0x4F7B, - 16828: 0x4FAA, - 16829: 0x4F7C, - 16830: 0x4FAC, - 16831: 0x4F94, - 16832: 0x4FE6, - 16833: 0x4FE8, - 16834: 0x4FEA, - 16835: 0x4FC5, - 16836: 0x4FDA, - 16837: 0x4FE3, - 16838: 0x4FDC, - 16839: 0x4FD1, - 16840: 0x4FDF, - 16841: 0x4FF8, - 16842: 0x5029, - 16843: 0x504C, - 16844: 0x4FF3, - 16845: 0x502C, - 16846: 0x500F, - 16847: 0x502E, - 16848: 0x502D, - 16849: 0x4FFE, - 16850: 0x501C, - 16851: 0x500C, - 16852: 0x5025, - 16853: 0x5028, - 16854: 0x507E, - 16855: 0x5043, - 16856: 0x5055, - 16857: 0x5048, - 16858: 0x504E, - 16859: 0x506C, - 16860: 0x507B, - 16861: 0x50A5, - 16862: 0x50A7, - 16863: 0x50A9, - 16864: 0x50BA, - 16865: 0x50D6, - 16866: 0x5106, - 16867: 0x50ED, - 16868: 0x50EC, - 16869: 0x50E6, - 16870: 0x50EE, - 16871: 0x5107, - 16872: 0x510B, - 16873: 0x4EDD, - 16874: 0x6C3D, - 16875: 0x4F58, - 16876: 0x4F65, - 16877: 0x4FCE, - 16878: 0x9FA0, - 16879: 0x6C46, - 16880: 0x7C74, - 16881: 0x516E, - 16882: 0x5DFD, - 16883: 0x9EC9, - 16884: 0x9998, - 16885: 0x5181, - 16886: 0x5914, - 16887: 0x52F9, - 16888: 0x530D, - 16889: 0x8A07, - 16890: 0x5310, - 16891: 0x51EB, - 16892: 0x5919, - 16893: 0x5155, - 16894: 0x4EA0, - 16895: 0x5156, - 16896: 0x4EB3, - 16897: 0x886E, - 16898: 0x88A4, - 16899: 0x4EB5, - 16900: 0x8114, - 16901: 0x88D2, - 16902: 0x7980, - 16903: 0x5B34, - 16904: 0x8803, - 16905: 0x7FB8, - 16906: 0x51AB, - 16907: 0x51B1, - 16908: 0x51BD, - 16909: 0x51BC, - 16910: 0x8D0E, - 16911: 0x8D0F, - 16912: 0x8D10, - 16913: 0x8D11, - 16914: 0x8D12, - 16915: 0x8D13, - 16916: 0x8D14, - 16917: 0x8D15, - 16918: 0x8D16, - 16919: 0x8D17, - 16920: 0x8D18, - 16921: 0x8D19, - 16922: 0x8D1A, - 16923: 0x8D1B, - 16924: 0x8D1C, - 16925: 0x8D20, - 16926: 0x8D51, - 16927: 0x8D52, - 16928: 0x8D57, - 16929: 0x8D5F, - 16930: 0x8D65, - 16931: 0x8D68, - 16932: 0x8D69, - 16933: 0x8D6A, - 16934: 0x8D6C, - 16935: 0x8D6E, - 16936: 0x8D6F, - 16937: 0x8D71, - 16938: 0x8D72, - 16939: 0x8D78, - 16940: 0x8D79, - 16941: 0x8D7A, - 16942: 0x8D7B, - 16943: 0x8D7C, - 16944: 0x8D7D, - 16945: 0x8D7E, - 16946: 0x8D7F, - 16947: 0x8D80, - 16948: 0x8D82, - 16949: 0x8D83, - 16950: 0x8D86, - 16951: 0x8D87, - 16952: 0x8D88, - 16953: 0x8D89, - 16954: 0x8D8C, - 16955: 0x8D8D, - 16956: 0x8D8E, - 16957: 0x8D8F, - 16958: 0x8D90, - 16959: 0x8D92, - 16960: 0x8D93, - 16961: 0x8D95, - 16962: 0x8D96, - 16963: 0x8D97, - 16964: 0x8D98, - 16965: 0x8D99, - 16966: 0x8D9A, - 16967: 0x8D9B, - 16968: 0x8D9C, - 16969: 0x8D9D, - 16970: 0x8D9E, - 16971: 0x8DA0, - 16972: 0x8DA1, - 16973: 0x8DA2, - 16974: 0x8DA4, - 16975: 0x8DA5, - 16976: 0x8DA6, - 16977: 0x8DA7, - 16978: 0x8DA8, - 16979: 0x8DA9, - 16980: 0x8DAA, - 16981: 0x8DAB, - 16982: 0x8DAC, - 16983: 0x8DAD, - 16984: 0x8DAE, - 16985: 0x8DAF, - 16986: 0x8DB0, - 16987: 0x8DB2, - 16988: 0x8DB6, - 16989: 0x8DB7, - 16990: 0x8DB9, - 16991: 0x8DBB, - 16992: 0x8DBD, - 16993: 0x8DC0, - 16994: 0x8DC1, - 16995: 0x8DC2, - 16996: 0x8DC5, - 16997: 0x8DC7, - 16998: 0x8DC8, - 16999: 0x8DC9, - 17000: 0x8DCA, - 17001: 0x8DCD, - 17002: 0x8DD0, - 17003: 0x8DD2, - 17004: 0x8DD3, - 17005: 0x8DD4, - 17006: 0x51C7, - 17007: 0x5196, - 17008: 0x51A2, - 17009: 0x51A5, - 17010: 0x8BA0, - 17011: 0x8BA6, - 17012: 0x8BA7, - 17013: 0x8BAA, - 17014: 0x8BB4, - 17015: 0x8BB5, - 17016: 0x8BB7, - 17017: 0x8BC2, - 17018: 0x8BC3, - 17019: 0x8BCB, - 17020: 0x8BCF, - 17021: 0x8BCE, - 17022: 0x8BD2, - 17023: 0x8BD3, - 17024: 0x8BD4, - 17025: 0x8BD6, - 17026: 0x8BD8, - 17027: 0x8BD9, - 17028: 0x8BDC, - 17029: 0x8BDF, - 17030: 0x8BE0, - 17031: 0x8BE4, - 17032: 0x8BE8, - 17033: 0x8BE9, - 17034: 0x8BEE, - 17035: 0x8BF0, - 17036: 0x8BF3, - 17037: 0x8BF6, - 17038: 0x8BF9, - 17039: 0x8BFC, - 17040: 0x8BFF, - 17041: 0x8C00, - 17042: 0x8C02, - 17043: 0x8C04, - 17044: 0x8C07, - 17045: 0x8C0C, - 17046: 0x8C0F, - 17047: 0x8C11, - 17048: 0x8C12, - 17049: 0x8C14, - 17050: 0x8C15, - 17051: 0x8C16, - 17052: 0x8C19, - 17053: 0x8C1B, - 17054: 0x8C18, - 17055: 0x8C1D, - 17056: 0x8C1F, - 17057: 0x8C20, - 17058: 0x8C21, - 17059: 0x8C25, - 17060: 0x8C27, - 17061: 0x8C2A, - 17062: 0x8C2B, - 17063: 0x8C2E, - 17064: 0x8C2F, - 17065: 0x8C32, - 17066: 0x8C33, - 17067: 0x8C35, - 17068: 0x8C36, - 17069: 0x5369, - 17070: 0x537A, - 17071: 0x961D, - 17072: 0x9622, - 17073: 0x9621, - 17074: 0x9631, - 17075: 0x962A, - 17076: 0x963D, - 17077: 0x963C, - 17078: 0x9642, - 17079: 0x9649, - 17080: 0x9654, - 17081: 0x965F, - 17082: 0x9667, - 17083: 0x966C, - 17084: 0x9672, - 17085: 0x9674, - 17086: 0x9688, - 17087: 0x968D, - 17088: 0x9697, - 17089: 0x96B0, - 17090: 0x9097, - 17091: 0x909B, - 17092: 0x909D, - 17093: 0x9099, - 17094: 0x90AC, - 17095: 0x90A1, - 17096: 0x90B4, - 17097: 0x90B3, - 17098: 0x90B6, - 17099: 0x90BA, - 17100: 0x8DD5, - 17101: 0x8DD8, - 17102: 0x8DD9, - 17103: 0x8DDC, - 17104: 0x8DE0, - 17105: 0x8DE1, - 17106: 0x8DE2, - 17107: 0x8DE5, - 17108: 0x8DE6, - 17109: 0x8DE7, - 17110: 0x8DE9, - 17111: 0x8DED, - 17112: 0x8DEE, - 17113: 0x8DF0, - 17114: 0x8DF1, - 17115: 0x8DF2, - 17116: 0x8DF4, - 17117: 0x8DF6, - 17118: 0x8DFC, - 17119: 0x8DFE, - 17120: 0x8DFF, - 17121: 0x8E00, - 17122: 0x8E01, - 17123: 0x8E02, - 17124: 0x8E03, - 17125: 0x8E04, - 17126: 0x8E06, - 17127: 0x8E07, - 17128: 0x8E08, - 17129: 0x8E0B, - 17130: 0x8E0D, - 17131: 0x8E0E, - 17132: 0x8E10, - 17133: 0x8E11, - 17134: 0x8E12, - 17135: 0x8E13, - 17136: 0x8E15, - 17137: 0x8E16, - 17138: 0x8E17, - 17139: 0x8E18, - 17140: 0x8E19, - 17141: 0x8E1A, - 17142: 0x8E1B, - 17143: 0x8E1C, - 17144: 0x8E20, - 17145: 0x8E21, - 17146: 0x8E24, - 17147: 0x8E25, - 17148: 0x8E26, - 17149: 0x8E27, - 17150: 0x8E28, - 17151: 0x8E2B, - 17152: 0x8E2D, - 17153: 0x8E30, - 17154: 0x8E32, - 17155: 0x8E33, - 17156: 0x8E34, - 17157: 0x8E36, - 17158: 0x8E37, - 17159: 0x8E38, - 17160: 0x8E3B, - 17161: 0x8E3C, - 17162: 0x8E3E, - 17163: 0x8E3F, - 17164: 0x8E43, - 17165: 0x8E45, - 17166: 0x8E46, - 17167: 0x8E4C, - 17168: 0x8E4D, - 17169: 0x8E4E, - 17170: 0x8E4F, - 17171: 0x8E50, - 17172: 0x8E53, - 17173: 0x8E54, - 17174: 0x8E55, - 17175: 0x8E56, - 17176: 0x8E57, - 17177: 0x8E58, - 17178: 0x8E5A, - 17179: 0x8E5B, - 17180: 0x8E5C, - 17181: 0x8E5D, - 17182: 0x8E5E, - 17183: 0x8E5F, - 17184: 0x8E60, - 17185: 0x8E61, - 17186: 0x8E62, - 17187: 0x8E63, - 17188: 0x8E64, - 17189: 0x8E65, - 17190: 0x8E67, - 17191: 0x8E68, - 17192: 0x8E6A, - 17193: 0x8E6B, - 17194: 0x8E6E, - 17195: 0x8E71, - 17196: 0x90B8, - 17197: 0x90B0, - 17198: 0x90CF, - 17199: 0x90C5, - 17200: 0x90BE, - 17201: 0x90D0, - 17202: 0x90C4, - 17203: 0x90C7, - 17204: 0x90D3, - 17205: 0x90E6, - 17206: 0x90E2, - 17207: 0x90DC, - 17208: 0x90D7, - 17209: 0x90DB, - 17210: 0x90EB, - 17211: 0x90EF, - 17212: 0x90FE, - 17213: 0x9104, - 17214: 0x9122, - 17215: 0x911E, - 17216: 0x9123, - 17217: 0x9131, - 17218: 0x912F, - 17219: 0x9139, - 17220: 0x9143, - 17221: 0x9146, - 17222: 0x520D, - 17223: 0x5942, - 17224: 0x52A2, - 17225: 0x52AC, - 17226: 0x52AD, - 17227: 0x52BE, - 17228: 0x54FF, - 17229: 0x52D0, - 17230: 0x52D6, - 17231: 0x52F0, - 17232: 0x53DF, - 17233: 0x71EE, - 17234: 0x77CD, - 17235: 0x5EF4, - 17236: 0x51F5, - 17237: 0x51FC, - 17238: 0x9B2F, - 17239: 0x53B6, - 17240: 0x5F01, - 17241: 0x755A, - 17242: 0x5DEF, - 17243: 0x574C, - 17244: 0x57A9, - 17245: 0x57A1, - 17246: 0x587E, - 17247: 0x58BC, - 17248: 0x58C5, - 17249: 0x58D1, - 17250: 0x5729, - 17251: 0x572C, - 17252: 0x572A, - 17253: 0x5733, - 17254: 0x5739, - 17255: 0x572E, - 17256: 0x572F, - 17257: 0x575C, - 17258: 0x573B, - 17259: 0x5742, - 17260: 0x5769, - 17261: 0x5785, - 17262: 0x576B, - 17263: 0x5786, - 17264: 0x577C, - 17265: 0x577B, - 17266: 0x5768, - 17267: 0x576D, - 17268: 0x5776, - 17269: 0x5773, - 17270: 0x57AD, - 17271: 0x57A4, - 17272: 0x578C, - 17273: 0x57B2, - 17274: 0x57CF, - 17275: 0x57A7, - 17276: 0x57B4, - 17277: 0x5793, - 17278: 0x57A0, - 17279: 0x57D5, - 17280: 0x57D8, - 17281: 0x57DA, - 17282: 0x57D9, - 17283: 0x57D2, - 17284: 0x57B8, - 17285: 0x57F4, - 17286: 0x57EF, - 17287: 0x57F8, - 17288: 0x57E4, - 17289: 0x57DD, - 17290: 0x8E73, - 17291: 0x8E75, - 17292: 0x8E77, - 17293: 0x8E78, - 17294: 0x8E79, - 17295: 0x8E7A, - 17296: 0x8E7B, - 17297: 0x8E7D, - 17298: 0x8E7E, - 17299: 0x8E80, - 17300: 0x8E82, - 17301: 0x8E83, - 17302: 0x8E84, - 17303: 0x8E86, - 17304: 0x8E88, - 17305: 0x8E89, - 17306: 0x8E8A, - 17307: 0x8E8B, - 17308: 0x8E8C, - 17309: 0x8E8D, - 17310: 0x8E8E, - 17311: 0x8E91, - 17312: 0x8E92, - 17313: 0x8E93, - 17314: 0x8E95, - 17315: 0x8E96, - 17316: 0x8E97, - 17317: 0x8E98, - 17318: 0x8E99, - 17319: 0x8E9A, - 17320: 0x8E9B, - 17321: 0x8E9D, - 17322: 0x8E9F, - 17323: 0x8EA0, - 17324: 0x8EA1, - 17325: 0x8EA2, - 17326: 0x8EA3, - 17327: 0x8EA4, - 17328: 0x8EA5, - 17329: 0x8EA6, - 17330: 0x8EA7, - 17331: 0x8EA8, - 17332: 0x8EA9, - 17333: 0x8EAA, - 17334: 0x8EAD, - 17335: 0x8EAE, - 17336: 0x8EB0, - 17337: 0x8EB1, - 17338: 0x8EB3, - 17339: 0x8EB4, - 17340: 0x8EB5, - 17341: 0x8EB6, - 17342: 0x8EB7, - 17343: 0x8EB8, - 17344: 0x8EB9, - 17345: 0x8EBB, - 17346: 0x8EBC, - 17347: 0x8EBD, - 17348: 0x8EBE, - 17349: 0x8EBF, - 17350: 0x8EC0, - 17351: 0x8EC1, - 17352: 0x8EC2, - 17353: 0x8EC3, - 17354: 0x8EC4, - 17355: 0x8EC5, - 17356: 0x8EC6, - 17357: 0x8EC7, - 17358: 0x8EC8, - 17359: 0x8EC9, - 17360: 0x8ECA, - 17361: 0x8ECB, - 17362: 0x8ECC, - 17363: 0x8ECD, - 17364: 0x8ECF, - 17365: 0x8ED0, - 17366: 0x8ED1, - 17367: 0x8ED2, - 17368: 0x8ED3, - 17369: 0x8ED4, - 17370: 0x8ED5, - 17371: 0x8ED6, - 17372: 0x8ED7, - 17373: 0x8ED8, - 17374: 0x8ED9, - 17375: 0x8EDA, - 17376: 0x8EDB, - 17377: 0x8EDC, - 17378: 0x8EDD, - 17379: 0x8EDE, - 17380: 0x8EDF, - 17381: 0x8EE0, - 17382: 0x8EE1, - 17383: 0x8EE2, - 17384: 0x8EE3, - 17385: 0x8EE4, - 17386: 0x580B, - 17387: 0x580D, - 17388: 0x57FD, - 17389: 0x57ED, - 17390: 0x5800, - 17391: 0x581E, - 17392: 0x5819, - 17393: 0x5844, - 17394: 0x5820, - 17395: 0x5865, - 17396: 0x586C, - 17397: 0x5881, - 17398: 0x5889, - 17399: 0x589A, - 17400: 0x5880, - 17401: 0x99A8, - 17402: 0x9F19, - 17403: 0x61FF, - 17404: 0x8279, - 17405: 0x827D, - 17406: 0x827F, - 17407: 0x828F, - 17408: 0x828A, - 17409: 0x82A8, - 17410: 0x8284, - 17411: 0x828E, - 17412: 0x8291, - 17413: 0x8297, - 17414: 0x8299, - 17415: 0x82AB, - 17416: 0x82B8, - 17417: 0x82BE, - 17418: 0x82B0, - 17419: 0x82C8, - 17420: 0x82CA, - 17421: 0x82E3, - 17422: 0x8298, - 17423: 0x82B7, - 17424: 0x82AE, - 17425: 0x82CB, - 17426: 0x82CC, - 17427: 0x82C1, - 17428: 0x82A9, - 17429: 0x82B4, - 17430: 0x82A1, - 17431: 0x82AA, - 17432: 0x829F, - 17433: 0x82C4, - 17434: 0x82CE, - 17435: 0x82A4, - 17436: 0x82E1, - 17437: 0x8309, - 17438: 0x82F7, - 17439: 0x82E4, - 17440: 0x830F, - 17441: 0x8307, - 17442: 0x82DC, - 17443: 0x82F4, - 17444: 0x82D2, - 17445: 0x82D8, - 17446: 0x830C, - 17447: 0x82FB, - 17448: 0x82D3, - 17449: 0x8311, - 17450: 0x831A, - 17451: 0x8306, - 17452: 0x8314, - 17453: 0x8315, - 17454: 0x82E0, - 17455: 0x82D5, - 17456: 0x831C, - 17457: 0x8351, - 17458: 0x835B, - 17459: 0x835C, - 17460: 0x8308, - 17461: 0x8392, - 17462: 0x833C, - 17463: 0x8334, - 17464: 0x8331, - 17465: 0x839B, - 17466: 0x835E, - 17467: 0x832F, - 17468: 0x834F, - 17469: 0x8347, - 17470: 0x8343, - 17471: 0x835F, - 17472: 0x8340, - 17473: 0x8317, - 17474: 0x8360, - 17475: 0x832D, - 17476: 0x833A, - 17477: 0x8333, - 17478: 0x8366, - 17479: 0x8365, - 17480: 0x8EE5, - 17481: 0x8EE6, - 17482: 0x8EE7, - 17483: 0x8EE8, - 17484: 0x8EE9, - 17485: 0x8EEA, - 17486: 0x8EEB, - 17487: 0x8EEC, - 17488: 0x8EED, - 17489: 0x8EEE, - 17490: 0x8EEF, - 17491: 0x8EF0, - 17492: 0x8EF1, - 17493: 0x8EF2, - 17494: 0x8EF3, - 17495: 0x8EF4, - 17496: 0x8EF5, - 17497: 0x8EF6, - 17498: 0x8EF7, - 17499: 0x8EF8, - 17500: 0x8EF9, - 17501: 0x8EFA, - 17502: 0x8EFB, - 17503: 0x8EFC, - 17504: 0x8EFD, - 17505: 0x8EFE, - 17506: 0x8EFF, - 17507: 0x8F00, - 17508: 0x8F01, - 17509: 0x8F02, - 17510: 0x8F03, - 17511: 0x8F04, - 17512: 0x8F05, - 17513: 0x8F06, - 17514: 0x8F07, - 17515: 0x8F08, - 17516: 0x8F09, - 17517: 0x8F0A, - 17518: 0x8F0B, - 17519: 0x8F0C, - 17520: 0x8F0D, - 17521: 0x8F0E, - 17522: 0x8F0F, - 17523: 0x8F10, - 17524: 0x8F11, - 17525: 0x8F12, - 17526: 0x8F13, - 17527: 0x8F14, - 17528: 0x8F15, - 17529: 0x8F16, - 17530: 0x8F17, - 17531: 0x8F18, - 17532: 0x8F19, - 17533: 0x8F1A, - 17534: 0x8F1B, - 17535: 0x8F1C, - 17536: 0x8F1D, - 17537: 0x8F1E, - 17538: 0x8F1F, - 17539: 0x8F20, - 17540: 0x8F21, - 17541: 0x8F22, - 17542: 0x8F23, - 17543: 0x8F24, - 17544: 0x8F25, - 17545: 0x8F26, - 17546: 0x8F27, - 17547: 0x8F28, - 17548: 0x8F29, - 17549: 0x8F2A, - 17550: 0x8F2B, - 17551: 0x8F2C, - 17552: 0x8F2D, - 17553: 0x8F2E, - 17554: 0x8F2F, - 17555: 0x8F30, - 17556: 0x8F31, - 17557: 0x8F32, - 17558: 0x8F33, - 17559: 0x8F34, - 17560: 0x8F35, - 17561: 0x8F36, - 17562: 0x8F37, - 17563: 0x8F38, - 17564: 0x8F39, - 17565: 0x8F3A, - 17566: 0x8F3B, - 17567: 0x8F3C, - 17568: 0x8F3D, - 17569: 0x8F3E, - 17570: 0x8F3F, - 17571: 0x8F40, - 17572: 0x8F41, - 17573: 0x8F42, - 17574: 0x8F43, - 17575: 0x8F44, - 17576: 0x8368, - 17577: 0x831B, - 17578: 0x8369, - 17579: 0x836C, - 17580: 0x836A, - 17581: 0x836D, - 17582: 0x836E, - 17583: 0x83B0, - 17584: 0x8378, - 17585: 0x83B3, - 17586: 0x83B4, - 17587: 0x83A0, - 17588: 0x83AA, - 17589: 0x8393, - 17590: 0x839C, - 17591: 0x8385, - 17592: 0x837C, - 17593: 0x83B6, - 17594: 0x83A9, - 17595: 0x837D, - 17596: 0x83B8, - 17597: 0x837B, - 17598: 0x8398, - 17599: 0x839E, - 17600: 0x83A8, - 17601: 0x83BA, - 17602: 0x83BC, - 17603: 0x83C1, - 17604: 0x8401, - 17605: 0x83E5, - 17606: 0x83D8, - 17607: 0x5807, - 17608: 0x8418, - 17609: 0x840B, - 17610: 0x83DD, - 17611: 0x83FD, - 17612: 0x83D6, - 17613: 0x841C, - 17614: 0x8438, - 17615: 0x8411, - 17616: 0x8406, - 17617: 0x83D4, - 17618: 0x83DF, - 17619: 0x840F, - 17620: 0x8403, - 17621: 0x83F8, - 17622: 0x83F9, - 17623: 0x83EA, - 17624: 0x83C5, - 17625: 0x83C0, - 17626: 0x8426, - 17627: 0x83F0, - 17628: 0x83E1, - 17629: 0x845C, - 17630: 0x8451, - 17631: 0x845A, - 17632: 0x8459, - 17633: 0x8473, - 17634: 0x8487, - 17635: 0x8488, - 17636: 0x847A, - 17637: 0x8489, - 17638: 0x8478, - 17639: 0x843C, - 17640: 0x8446, - 17641: 0x8469, - 17642: 0x8476, - 17643: 0x848C, - 17644: 0x848E, - 17645: 0x8431, - 17646: 0x846D, - 17647: 0x84C1, - 17648: 0x84CD, - 17649: 0x84D0, - 17650: 0x84E6, - 17651: 0x84BD, - 17652: 0x84D3, - 17653: 0x84CA, - 17654: 0x84BF, - 17655: 0x84BA, - 17656: 0x84E0, - 17657: 0x84A1, - 17658: 0x84B9, - 17659: 0x84B4, - 17660: 0x8497, - 17661: 0x84E5, - 17662: 0x84E3, - 17663: 0x850C, - 17664: 0x750D, - 17665: 0x8538, - 17666: 0x84F0, - 17667: 0x8539, - 17668: 0x851F, - 17669: 0x853A, - 17670: 0x8F45, - 17671: 0x8F46, - 17672: 0x8F47, - 17673: 0x8F48, - 17674: 0x8F49, - 17675: 0x8F4A, - 17676: 0x8F4B, - 17677: 0x8F4C, - 17678: 0x8F4D, - 17679: 0x8F4E, - 17680: 0x8F4F, - 17681: 0x8F50, - 17682: 0x8F51, - 17683: 0x8F52, - 17684: 0x8F53, - 17685: 0x8F54, - 17686: 0x8F55, - 17687: 0x8F56, - 17688: 0x8F57, - 17689: 0x8F58, - 17690: 0x8F59, - 17691: 0x8F5A, - 17692: 0x8F5B, - 17693: 0x8F5C, - 17694: 0x8F5D, - 17695: 0x8F5E, - 17696: 0x8F5F, - 17697: 0x8F60, - 17698: 0x8F61, - 17699: 0x8F62, - 17700: 0x8F63, - 17701: 0x8F64, - 17702: 0x8F65, - 17703: 0x8F6A, - 17704: 0x8F80, - 17705: 0x8F8C, - 17706: 0x8F92, - 17707: 0x8F9D, - 17708: 0x8FA0, - 17709: 0x8FA1, - 17710: 0x8FA2, - 17711: 0x8FA4, - 17712: 0x8FA5, - 17713: 0x8FA6, - 17714: 0x8FA7, - 17715: 0x8FAA, - 17716: 0x8FAC, - 17717: 0x8FAD, - 17718: 0x8FAE, - 17719: 0x8FAF, - 17720: 0x8FB2, - 17721: 0x8FB3, - 17722: 0x8FB4, - 17723: 0x8FB5, - 17724: 0x8FB7, - 17725: 0x8FB8, - 17726: 0x8FBA, - 17727: 0x8FBB, - 17728: 0x8FBC, - 17729: 0x8FBF, - 17730: 0x8FC0, - 17731: 0x8FC3, - 17732: 0x8FC6, - 17733: 0x8FC9, - 17734: 0x8FCA, - 17735: 0x8FCB, - 17736: 0x8FCC, - 17737: 0x8FCD, - 17738: 0x8FCF, - 17739: 0x8FD2, - 17740: 0x8FD6, - 17741: 0x8FD7, - 17742: 0x8FDA, - 17743: 0x8FE0, - 17744: 0x8FE1, - 17745: 0x8FE3, - 17746: 0x8FE7, - 17747: 0x8FEC, - 17748: 0x8FEF, - 17749: 0x8FF1, - 17750: 0x8FF2, - 17751: 0x8FF4, - 17752: 0x8FF5, - 17753: 0x8FF6, - 17754: 0x8FFA, - 17755: 0x8FFB, - 17756: 0x8FFC, - 17757: 0x8FFE, - 17758: 0x8FFF, - 17759: 0x9007, - 17760: 0x9008, - 17761: 0x900C, - 17762: 0x900E, - 17763: 0x9013, - 17764: 0x9015, - 17765: 0x9018, - 17766: 0x8556, - 17767: 0x853B, - 17768: 0x84FF, - 17769: 0x84FC, - 17770: 0x8559, - 17771: 0x8548, - 17772: 0x8568, - 17773: 0x8564, - 17774: 0x855E, - 17775: 0x857A, - 17776: 0x77A2, - 17777: 0x8543, - 17778: 0x8572, - 17779: 0x857B, - 17780: 0x85A4, - 17781: 0x85A8, - 17782: 0x8587, - 17783: 0x858F, - 17784: 0x8579, - 17785: 0x85AE, - 17786: 0x859C, - 17787: 0x8585, - 17788: 0x85B9, - 17789: 0x85B7, - 17790: 0x85B0, - 17791: 0x85D3, - 17792: 0x85C1, - 17793: 0x85DC, - 17794: 0x85FF, - 17795: 0x8627, - 17796: 0x8605, - 17797: 0x8629, - 17798: 0x8616, - 17799: 0x863C, - 17800: 0x5EFE, - 17801: 0x5F08, - 17802: 0x593C, - 17803: 0x5941, - 17804: 0x8037, - 17805: 0x5955, - 17806: 0x595A, - 17807: 0x5958, - 17808: 0x530F, - 17809: 0x5C22, - 17810: 0x5C25, - 17811: 0x5C2C, - 17812: 0x5C34, - 17813: 0x624C, - 17814: 0x626A, - 17815: 0x629F, - 17816: 0x62BB, - 17817: 0x62CA, - 17818: 0x62DA, - 17819: 0x62D7, - 17820: 0x62EE, - 17821: 0x6322, - 17822: 0x62F6, - 17823: 0x6339, - 17824: 0x634B, - 17825: 0x6343, - 17826: 0x63AD, - 17827: 0x63F6, - 17828: 0x6371, - 17829: 0x637A, - 17830: 0x638E, - 17831: 0x63B4, - 17832: 0x636D, - 17833: 0x63AC, - 17834: 0x638A, - 17835: 0x6369, - 17836: 0x63AE, - 17837: 0x63BC, - 17838: 0x63F2, - 17839: 0x63F8, - 17840: 0x63E0, - 17841: 0x63FF, - 17842: 0x63C4, - 17843: 0x63DE, - 17844: 0x63CE, - 17845: 0x6452, - 17846: 0x63C6, - 17847: 0x63BE, - 17848: 0x6445, - 17849: 0x6441, - 17850: 0x640B, - 17851: 0x641B, - 17852: 0x6420, - 17853: 0x640C, - 17854: 0x6426, - 17855: 0x6421, - 17856: 0x645E, - 17857: 0x6484, - 17858: 0x646D, - 17859: 0x6496, - 17860: 0x9019, - 17861: 0x901C, - 17862: 0x9023, - 17863: 0x9024, - 17864: 0x9025, - 17865: 0x9027, - 17866: 0x9028, - 17867: 0x9029, - 17868: 0x902A, - 17869: 0x902B, - 17870: 0x902C, - 17871: 0x9030, - 17872: 0x9031, - 17873: 0x9032, - 17874: 0x9033, - 17875: 0x9034, - 17876: 0x9037, - 17877: 0x9039, - 17878: 0x903A, - 17879: 0x903D, - 17880: 0x903F, - 17881: 0x9040, - 17882: 0x9043, - 17883: 0x9045, - 17884: 0x9046, - 17885: 0x9048, - 17886: 0x9049, - 17887: 0x904A, - 17888: 0x904B, - 17889: 0x904C, - 17890: 0x904E, - 17891: 0x9054, - 17892: 0x9055, - 17893: 0x9056, - 17894: 0x9059, - 17895: 0x905A, - 17896: 0x905C, - 17897: 0x905D, - 17898: 0x905E, - 17899: 0x905F, - 17900: 0x9060, - 17901: 0x9061, - 17902: 0x9064, - 17903: 0x9066, - 17904: 0x9067, - 17905: 0x9069, - 17906: 0x906A, - 17907: 0x906B, - 17908: 0x906C, - 17909: 0x906F, - 17910: 0x9070, - 17911: 0x9071, - 17912: 0x9072, - 17913: 0x9073, - 17914: 0x9076, - 17915: 0x9077, - 17916: 0x9078, - 17917: 0x9079, - 17918: 0x907A, - 17919: 0x907B, - 17920: 0x907C, - 17921: 0x907E, - 17922: 0x9081, - 17923: 0x9084, - 17924: 0x9085, - 17925: 0x9086, - 17926: 0x9087, - 17927: 0x9089, - 17928: 0x908A, - 17929: 0x908C, - 17930: 0x908D, - 17931: 0x908E, - 17932: 0x908F, - 17933: 0x9090, - 17934: 0x9092, - 17935: 0x9094, - 17936: 0x9096, - 17937: 0x9098, - 17938: 0x909A, - 17939: 0x909C, - 17940: 0x909E, - 17941: 0x909F, - 17942: 0x90A0, - 17943: 0x90A4, - 17944: 0x90A5, - 17945: 0x90A7, - 17946: 0x90A8, - 17947: 0x90A9, - 17948: 0x90AB, - 17949: 0x90AD, - 17950: 0x90B2, - 17951: 0x90B7, - 17952: 0x90BC, - 17953: 0x90BD, - 17954: 0x90BF, - 17955: 0x90C0, - 17956: 0x647A, - 17957: 0x64B7, - 17958: 0x64B8, - 17959: 0x6499, - 17960: 0x64BA, - 17961: 0x64C0, - 17962: 0x64D0, - 17963: 0x64D7, - 17964: 0x64E4, - 17965: 0x64E2, - 17966: 0x6509, - 17967: 0x6525, - 17968: 0x652E, - 17969: 0x5F0B, - 17970: 0x5FD2, - 17971: 0x7519, - 17972: 0x5F11, - 17973: 0x535F, - 17974: 0x53F1, - 17975: 0x53FD, - 17976: 0x53E9, - 17977: 0x53E8, - 17978: 0x53FB, - 17979: 0x5412, - 17980: 0x5416, - 17981: 0x5406, - 17982: 0x544B, - 17983: 0x5452, - 17984: 0x5453, - 17985: 0x5454, - 17986: 0x5456, - 17987: 0x5443, - 17988: 0x5421, - 17989: 0x5457, - 17990: 0x5459, - 17991: 0x5423, - 17992: 0x5432, - 17993: 0x5482, - 17994: 0x5494, - 17995: 0x5477, - 17996: 0x5471, - 17997: 0x5464, - 17998: 0x549A, - 17999: 0x549B, - 18000: 0x5484, - 18001: 0x5476, - 18002: 0x5466, - 18003: 0x549D, - 18004: 0x54D0, - 18005: 0x54AD, - 18006: 0x54C2, - 18007: 0x54B4, - 18008: 0x54D2, - 18009: 0x54A7, - 18010: 0x54A6, - 18011: 0x54D3, - 18012: 0x54D4, - 18013: 0x5472, - 18014: 0x54A3, - 18015: 0x54D5, - 18016: 0x54BB, - 18017: 0x54BF, - 18018: 0x54CC, - 18019: 0x54D9, - 18020: 0x54DA, - 18021: 0x54DC, - 18022: 0x54A9, - 18023: 0x54AA, - 18024: 0x54A4, - 18025: 0x54DD, - 18026: 0x54CF, - 18027: 0x54DE, - 18028: 0x551B, - 18029: 0x54E7, - 18030: 0x5520, - 18031: 0x54FD, - 18032: 0x5514, - 18033: 0x54F3, - 18034: 0x5522, - 18035: 0x5523, - 18036: 0x550F, - 18037: 0x5511, - 18038: 0x5527, - 18039: 0x552A, - 18040: 0x5567, - 18041: 0x558F, - 18042: 0x55B5, - 18043: 0x5549, - 18044: 0x556D, - 18045: 0x5541, - 18046: 0x5555, - 18047: 0x553F, - 18048: 0x5550, - 18049: 0x553C, - 18050: 0x90C2, - 18051: 0x90C3, - 18052: 0x90C6, - 18053: 0x90C8, - 18054: 0x90C9, - 18055: 0x90CB, - 18056: 0x90CC, - 18057: 0x90CD, - 18058: 0x90D2, - 18059: 0x90D4, - 18060: 0x90D5, - 18061: 0x90D6, - 18062: 0x90D8, - 18063: 0x90D9, - 18064: 0x90DA, - 18065: 0x90DE, - 18066: 0x90DF, - 18067: 0x90E0, - 18068: 0x90E3, - 18069: 0x90E4, - 18070: 0x90E5, - 18071: 0x90E9, - 18072: 0x90EA, - 18073: 0x90EC, - 18074: 0x90EE, - 18075: 0x90F0, - 18076: 0x90F1, - 18077: 0x90F2, - 18078: 0x90F3, - 18079: 0x90F5, - 18080: 0x90F6, - 18081: 0x90F7, - 18082: 0x90F9, - 18083: 0x90FA, - 18084: 0x90FB, - 18085: 0x90FC, - 18086: 0x90FF, - 18087: 0x9100, - 18088: 0x9101, - 18089: 0x9103, - 18090: 0x9105, - 18091: 0x9106, - 18092: 0x9107, - 18093: 0x9108, - 18094: 0x9109, - 18095: 0x910A, - 18096: 0x910B, - 18097: 0x910C, - 18098: 0x910D, - 18099: 0x910E, - 18100: 0x910F, - 18101: 0x9110, - 18102: 0x9111, - 18103: 0x9112, - 18104: 0x9113, - 18105: 0x9114, - 18106: 0x9115, - 18107: 0x9116, - 18108: 0x9117, - 18109: 0x9118, - 18110: 0x911A, - 18111: 0x911B, - 18112: 0x911C, - 18113: 0x911D, - 18114: 0x911F, - 18115: 0x9120, - 18116: 0x9121, - 18117: 0x9124, - 18118: 0x9125, - 18119: 0x9126, - 18120: 0x9127, - 18121: 0x9128, - 18122: 0x9129, - 18123: 0x912A, - 18124: 0x912B, - 18125: 0x912C, - 18126: 0x912D, - 18127: 0x912E, - 18128: 0x9130, - 18129: 0x9132, - 18130: 0x9133, - 18131: 0x9134, - 18132: 0x9135, - 18133: 0x9136, - 18134: 0x9137, - 18135: 0x9138, - 18136: 0x913A, - 18137: 0x913B, - 18138: 0x913C, - 18139: 0x913D, - 18140: 0x913E, - 18141: 0x913F, - 18142: 0x9140, - 18143: 0x9141, - 18144: 0x9142, - 18145: 0x9144, - 18146: 0x5537, - 18147: 0x5556, - 18148: 0x5575, - 18149: 0x5576, - 18150: 0x5577, - 18151: 0x5533, - 18152: 0x5530, - 18153: 0x555C, - 18154: 0x558B, - 18155: 0x55D2, - 18156: 0x5583, - 18157: 0x55B1, - 18158: 0x55B9, - 18159: 0x5588, - 18160: 0x5581, - 18161: 0x559F, - 18162: 0x557E, - 18163: 0x55D6, - 18164: 0x5591, - 18165: 0x557B, - 18166: 0x55DF, - 18167: 0x55BD, - 18168: 0x55BE, - 18169: 0x5594, - 18170: 0x5599, - 18171: 0x55EA, - 18172: 0x55F7, - 18173: 0x55C9, - 18174: 0x561F, - 18175: 0x55D1, - 18176: 0x55EB, - 18177: 0x55EC, - 18178: 0x55D4, - 18179: 0x55E6, - 18180: 0x55DD, - 18181: 0x55C4, - 18182: 0x55EF, - 18183: 0x55E5, - 18184: 0x55F2, - 18185: 0x55F3, - 18186: 0x55CC, - 18187: 0x55CD, - 18188: 0x55E8, - 18189: 0x55F5, - 18190: 0x55E4, - 18191: 0x8F94, - 18192: 0x561E, - 18193: 0x5608, - 18194: 0x560C, - 18195: 0x5601, - 18196: 0x5624, - 18197: 0x5623, - 18198: 0x55FE, - 18199: 0x5600, - 18200: 0x5627, - 18201: 0x562D, - 18202: 0x5658, - 18203: 0x5639, - 18204: 0x5657, - 18205: 0x562C, - 18206: 0x564D, - 18207: 0x5662, - 18208: 0x5659, - 18209: 0x565C, - 18210: 0x564C, - 18211: 0x5654, - 18212: 0x5686, - 18213: 0x5664, - 18214: 0x5671, - 18215: 0x566B, - 18216: 0x567B, - 18217: 0x567C, - 18218: 0x5685, - 18219: 0x5693, - 18220: 0x56AF, - 18221: 0x56D4, - 18222: 0x56D7, - 18223: 0x56DD, - 18224: 0x56E1, - 18225: 0x56F5, - 18226: 0x56EB, - 18227: 0x56F9, - 18228: 0x56FF, - 18229: 0x5704, - 18230: 0x570A, - 18231: 0x5709, - 18232: 0x571C, - 18233: 0x5E0F, - 18234: 0x5E19, - 18235: 0x5E14, - 18236: 0x5E11, - 18237: 0x5E31, - 18238: 0x5E3B, - 18239: 0x5E3C, - 18240: 0x9145, - 18241: 0x9147, - 18242: 0x9148, - 18243: 0x9151, - 18244: 0x9153, - 18245: 0x9154, - 18246: 0x9155, - 18247: 0x9156, - 18248: 0x9158, - 18249: 0x9159, - 18250: 0x915B, - 18251: 0x915C, - 18252: 0x915F, - 18253: 0x9160, - 18254: 0x9166, - 18255: 0x9167, - 18256: 0x9168, - 18257: 0x916B, - 18258: 0x916D, - 18259: 0x9173, - 18260: 0x917A, - 18261: 0x917B, - 18262: 0x917C, - 18263: 0x9180, - 18264: 0x9181, - 18265: 0x9182, - 18266: 0x9183, - 18267: 0x9184, - 18268: 0x9186, - 18269: 0x9188, - 18270: 0x918A, - 18271: 0x918E, - 18272: 0x918F, - 18273: 0x9193, - 18274: 0x9194, - 18275: 0x9195, - 18276: 0x9196, - 18277: 0x9197, - 18278: 0x9198, - 18279: 0x9199, - 18280: 0x919C, - 18281: 0x919D, - 18282: 0x919E, - 18283: 0x919F, - 18284: 0x91A0, - 18285: 0x91A1, - 18286: 0x91A4, - 18287: 0x91A5, - 18288: 0x91A6, - 18289: 0x91A7, - 18290: 0x91A8, - 18291: 0x91A9, - 18292: 0x91AB, - 18293: 0x91AC, - 18294: 0x91B0, - 18295: 0x91B1, - 18296: 0x91B2, - 18297: 0x91B3, - 18298: 0x91B6, - 18299: 0x91B7, - 18300: 0x91B8, - 18301: 0x91B9, - 18302: 0x91BB, - 18303: 0x91BC, - 18304: 0x91BD, - 18305: 0x91BE, - 18306: 0x91BF, - 18307: 0x91C0, - 18308: 0x91C1, - 18309: 0x91C2, - 18310: 0x91C3, - 18311: 0x91C4, - 18312: 0x91C5, - 18313: 0x91C6, - 18314: 0x91C8, - 18315: 0x91CB, - 18316: 0x91D0, - 18317: 0x91D2, - 18318: 0x91D3, - 18319: 0x91D4, - 18320: 0x91D5, - 18321: 0x91D6, - 18322: 0x91D7, - 18323: 0x91D8, - 18324: 0x91D9, - 18325: 0x91DA, - 18326: 0x91DB, - 18327: 0x91DD, - 18328: 0x91DE, - 18329: 0x91DF, - 18330: 0x91E0, - 18331: 0x91E1, - 18332: 0x91E2, - 18333: 0x91E3, - 18334: 0x91E4, - 18335: 0x91E5, - 18336: 0x5E37, - 18337: 0x5E44, - 18338: 0x5E54, - 18339: 0x5E5B, - 18340: 0x5E5E, - 18341: 0x5E61, - 18342: 0x5C8C, - 18343: 0x5C7A, - 18344: 0x5C8D, - 18345: 0x5C90, - 18346: 0x5C96, - 18347: 0x5C88, - 18348: 0x5C98, - 18349: 0x5C99, - 18350: 0x5C91, - 18351: 0x5C9A, - 18352: 0x5C9C, - 18353: 0x5CB5, - 18354: 0x5CA2, - 18355: 0x5CBD, - 18356: 0x5CAC, - 18357: 0x5CAB, - 18358: 0x5CB1, - 18359: 0x5CA3, - 18360: 0x5CC1, - 18361: 0x5CB7, - 18362: 0x5CC4, - 18363: 0x5CD2, - 18364: 0x5CE4, - 18365: 0x5CCB, - 18366: 0x5CE5, - 18367: 0x5D02, - 18368: 0x5D03, - 18369: 0x5D27, - 18370: 0x5D26, - 18371: 0x5D2E, - 18372: 0x5D24, - 18373: 0x5D1E, - 18374: 0x5D06, - 18375: 0x5D1B, - 18376: 0x5D58, - 18377: 0x5D3E, - 18378: 0x5D34, - 18379: 0x5D3D, - 18380: 0x5D6C, - 18381: 0x5D5B, - 18382: 0x5D6F, - 18383: 0x5D5D, - 18384: 0x5D6B, - 18385: 0x5D4B, - 18386: 0x5D4A, - 18387: 0x5D69, - 18388: 0x5D74, - 18389: 0x5D82, - 18390: 0x5D99, - 18391: 0x5D9D, - 18392: 0x8C73, - 18393: 0x5DB7, - 18394: 0x5DC5, - 18395: 0x5F73, - 18396: 0x5F77, - 18397: 0x5F82, - 18398: 0x5F87, - 18399: 0x5F89, - 18400: 0x5F8C, - 18401: 0x5F95, - 18402: 0x5F99, - 18403: 0x5F9C, - 18404: 0x5FA8, - 18405: 0x5FAD, - 18406: 0x5FB5, - 18407: 0x5FBC, - 18408: 0x8862, - 18409: 0x5F61, - 18410: 0x72AD, - 18411: 0x72B0, - 18412: 0x72B4, - 18413: 0x72B7, - 18414: 0x72B8, - 18415: 0x72C3, - 18416: 0x72C1, - 18417: 0x72CE, - 18418: 0x72CD, - 18419: 0x72D2, - 18420: 0x72E8, - 18421: 0x72EF, - 18422: 0x72E9, - 18423: 0x72F2, - 18424: 0x72F4, - 18425: 0x72F7, - 18426: 0x7301, - 18427: 0x72F3, - 18428: 0x7303, - 18429: 0x72FA, - 18430: 0x91E6, - 18431: 0x91E7, - 18432: 0x91E8, - 18433: 0x91E9, - 18434: 0x91EA, - 18435: 0x91EB, - 18436: 0x91EC, - 18437: 0x91ED, - 18438: 0x91EE, - 18439: 0x91EF, - 18440: 0x91F0, - 18441: 0x91F1, - 18442: 0x91F2, - 18443: 0x91F3, - 18444: 0x91F4, - 18445: 0x91F5, - 18446: 0x91F6, - 18447: 0x91F7, - 18448: 0x91F8, - 18449: 0x91F9, - 18450: 0x91FA, - 18451: 0x91FB, - 18452: 0x91FC, - 18453: 0x91FD, - 18454: 0x91FE, - 18455: 0x91FF, - 18456: 0x9200, - 18457: 0x9201, - 18458: 0x9202, - 18459: 0x9203, - 18460: 0x9204, - 18461: 0x9205, - 18462: 0x9206, - 18463: 0x9207, - 18464: 0x9208, - 18465: 0x9209, - 18466: 0x920A, - 18467: 0x920B, - 18468: 0x920C, - 18469: 0x920D, - 18470: 0x920E, - 18471: 0x920F, - 18472: 0x9210, - 18473: 0x9211, - 18474: 0x9212, - 18475: 0x9213, - 18476: 0x9214, - 18477: 0x9215, - 18478: 0x9216, - 18479: 0x9217, - 18480: 0x9218, - 18481: 0x9219, - 18482: 0x921A, - 18483: 0x921B, - 18484: 0x921C, - 18485: 0x921D, - 18486: 0x921E, - 18487: 0x921F, - 18488: 0x9220, - 18489: 0x9221, - 18490: 0x9222, - 18491: 0x9223, - 18492: 0x9224, - 18493: 0x9225, - 18494: 0x9226, - 18495: 0x9227, - 18496: 0x9228, - 18497: 0x9229, - 18498: 0x922A, - 18499: 0x922B, - 18500: 0x922C, - 18501: 0x922D, - 18502: 0x922E, - 18503: 0x922F, - 18504: 0x9230, - 18505: 0x9231, - 18506: 0x9232, - 18507: 0x9233, - 18508: 0x9234, - 18509: 0x9235, - 18510: 0x9236, - 18511: 0x9237, - 18512: 0x9238, - 18513: 0x9239, - 18514: 0x923A, - 18515: 0x923B, - 18516: 0x923C, - 18517: 0x923D, - 18518: 0x923E, - 18519: 0x923F, - 18520: 0x9240, - 18521: 0x9241, - 18522: 0x9242, - 18523: 0x9243, - 18524: 0x9244, - 18525: 0x9245, - 18526: 0x72FB, - 18527: 0x7317, - 18528: 0x7313, - 18529: 0x7321, - 18530: 0x730A, - 18531: 0x731E, - 18532: 0x731D, - 18533: 0x7315, - 18534: 0x7322, - 18535: 0x7339, - 18536: 0x7325, - 18537: 0x732C, - 18538: 0x7338, - 18539: 0x7331, - 18540: 0x7350, - 18541: 0x734D, - 18542: 0x7357, - 18543: 0x7360, - 18544: 0x736C, - 18545: 0x736F, - 18546: 0x737E, - 18547: 0x821B, - 18548: 0x5925, - 18549: 0x98E7, - 18550: 0x5924, - 18551: 0x5902, - 18552: 0x9963, - 18553: 0x9967, - 18554: 0x9968, - 18555: 0x9969, - 18556: 0x996A, - 18557: 0x996B, - 18558: 0x996C, - 18559: 0x9974, - 18560: 0x9977, - 18561: 0x997D, - 18562: 0x9980, - 18563: 0x9984, - 18564: 0x9987, - 18565: 0x998A, - 18566: 0x998D, - 18567: 0x9990, - 18568: 0x9991, - 18569: 0x9993, - 18570: 0x9994, - 18571: 0x9995, - 18572: 0x5E80, - 18573: 0x5E91, - 18574: 0x5E8B, - 18575: 0x5E96, - 18576: 0x5EA5, - 18577: 0x5EA0, - 18578: 0x5EB9, - 18579: 0x5EB5, - 18580: 0x5EBE, - 18581: 0x5EB3, - 18582: 0x8D53, - 18583: 0x5ED2, - 18584: 0x5ED1, - 18585: 0x5EDB, - 18586: 0x5EE8, - 18587: 0x5EEA, - 18588: 0x81BA, - 18589: 0x5FC4, - 18590: 0x5FC9, - 18591: 0x5FD6, - 18592: 0x5FCF, - 18593: 0x6003, - 18594: 0x5FEE, - 18595: 0x6004, - 18596: 0x5FE1, - 18597: 0x5FE4, - 18598: 0x5FFE, - 18599: 0x6005, - 18600: 0x6006, - 18601: 0x5FEA, - 18602: 0x5FED, - 18603: 0x5FF8, - 18604: 0x6019, - 18605: 0x6035, - 18606: 0x6026, - 18607: 0x601B, - 18608: 0x600F, - 18609: 0x600D, - 18610: 0x6029, - 18611: 0x602B, - 18612: 0x600A, - 18613: 0x603F, - 18614: 0x6021, - 18615: 0x6078, - 18616: 0x6079, - 18617: 0x607B, - 18618: 0x607A, - 18619: 0x6042, - 18620: 0x9246, - 18621: 0x9247, - 18622: 0x9248, - 18623: 0x9249, - 18624: 0x924A, - 18625: 0x924B, - 18626: 0x924C, - 18627: 0x924D, - 18628: 0x924E, - 18629: 0x924F, - 18630: 0x9250, - 18631: 0x9251, - 18632: 0x9252, - 18633: 0x9253, - 18634: 0x9254, - 18635: 0x9255, - 18636: 0x9256, - 18637: 0x9257, - 18638: 0x9258, - 18639: 0x9259, - 18640: 0x925A, - 18641: 0x925B, - 18642: 0x925C, - 18643: 0x925D, - 18644: 0x925E, - 18645: 0x925F, - 18646: 0x9260, - 18647: 0x9261, - 18648: 0x9262, - 18649: 0x9263, - 18650: 0x9264, - 18651: 0x9265, - 18652: 0x9266, - 18653: 0x9267, - 18654: 0x9268, - 18655: 0x9269, - 18656: 0x926A, - 18657: 0x926B, - 18658: 0x926C, - 18659: 0x926D, - 18660: 0x926E, - 18661: 0x926F, - 18662: 0x9270, - 18663: 0x9271, - 18664: 0x9272, - 18665: 0x9273, - 18666: 0x9275, - 18667: 0x9276, - 18668: 0x9277, - 18669: 0x9278, - 18670: 0x9279, - 18671: 0x927A, - 18672: 0x927B, - 18673: 0x927C, - 18674: 0x927D, - 18675: 0x927E, - 18676: 0x927F, - 18677: 0x9280, - 18678: 0x9281, - 18679: 0x9282, - 18680: 0x9283, - 18681: 0x9284, - 18682: 0x9285, - 18683: 0x9286, - 18684: 0x9287, - 18685: 0x9288, - 18686: 0x9289, - 18687: 0x928A, - 18688: 0x928B, - 18689: 0x928C, - 18690: 0x928D, - 18691: 0x928F, - 18692: 0x9290, - 18693: 0x9291, - 18694: 0x9292, - 18695: 0x9293, - 18696: 0x9294, - 18697: 0x9295, - 18698: 0x9296, - 18699: 0x9297, - 18700: 0x9298, - 18701: 0x9299, - 18702: 0x929A, - 18703: 0x929B, - 18704: 0x929C, - 18705: 0x929D, - 18706: 0x929E, - 18707: 0x929F, - 18708: 0x92A0, - 18709: 0x92A1, - 18710: 0x92A2, - 18711: 0x92A3, - 18712: 0x92A4, - 18713: 0x92A5, - 18714: 0x92A6, - 18715: 0x92A7, - 18716: 0x606A, - 18717: 0x607D, - 18718: 0x6096, - 18719: 0x609A, - 18720: 0x60AD, - 18721: 0x609D, - 18722: 0x6083, - 18723: 0x6092, - 18724: 0x608C, - 18725: 0x609B, - 18726: 0x60EC, - 18727: 0x60BB, - 18728: 0x60B1, - 18729: 0x60DD, - 18730: 0x60D8, - 18731: 0x60C6, - 18732: 0x60DA, - 18733: 0x60B4, - 18734: 0x6120, - 18735: 0x6126, - 18736: 0x6115, - 18737: 0x6123, - 18738: 0x60F4, - 18739: 0x6100, - 18740: 0x610E, - 18741: 0x612B, - 18742: 0x614A, - 18743: 0x6175, - 18744: 0x61AC, - 18745: 0x6194, - 18746: 0x61A7, - 18747: 0x61B7, - 18748: 0x61D4, - 18749: 0x61F5, - 18750: 0x5FDD, - 18751: 0x96B3, - 18752: 0x95E9, - 18753: 0x95EB, - 18754: 0x95F1, - 18755: 0x95F3, - 18756: 0x95F5, - 18757: 0x95F6, - 18758: 0x95FC, - 18759: 0x95FE, - 18760: 0x9603, - 18761: 0x9604, - 18762: 0x9606, - 18763: 0x9608, - 18764: 0x960A, - 18765: 0x960B, - 18766: 0x960C, - 18767: 0x960D, - 18768: 0x960F, - 18769: 0x9612, - 18770: 0x9615, - 18771: 0x9616, - 18772: 0x9617, - 18773: 0x9619, - 18774: 0x961A, - 18775: 0x4E2C, - 18776: 0x723F, - 18777: 0x6215, - 18778: 0x6C35, - 18779: 0x6C54, - 18780: 0x6C5C, - 18781: 0x6C4A, - 18782: 0x6CA3, - 18783: 0x6C85, - 18784: 0x6C90, - 18785: 0x6C94, - 18786: 0x6C8C, - 18787: 0x6C68, - 18788: 0x6C69, - 18789: 0x6C74, - 18790: 0x6C76, - 18791: 0x6C86, - 18792: 0x6CA9, - 18793: 0x6CD0, - 18794: 0x6CD4, - 18795: 0x6CAD, - 18796: 0x6CF7, - 18797: 0x6CF8, - 18798: 0x6CF1, - 18799: 0x6CD7, - 18800: 0x6CB2, - 18801: 0x6CE0, - 18802: 0x6CD6, - 18803: 0x6CFA, - 18804: 0x6CEB, - 18805: 0x6CEE, - 18806: 0x6CB1, - 18807: 0x6CD3, - 18808: 0x6CEF, - 18809: 0x6CFE, - 18810: 0x92A8, - 18811: 0x92A9, - 18812: 0x92AA, - 18813: 0x92AB, - 18814: 0x92AC, - 18815: 0x92AD, - 18816: 0x92AF, - 18817: 0x92B0, - 18818: 0x92B1, - 18819: 0x92B2, - 18820: 0x92B3, - 18821: 0x92B4, - 18822: 0x92B5, - 18823: 0x92B6, - 18824: 0x92B7, - 18825: 0x92B8, - 18826: 0x92B9, - 18827: 0x92BA, - 18828: 0x92BB, - 18829: 0x92BC, - 18830: 0x92BD, - 18831: 0x92BE, - 18832: 0x92BF, - 18833: 0x92C0, - 18834: 0x92C1, - 18835: 0x92C2, - 18836: 0x92C3, - 18837: 0x92C4, - 18838: 0x92C5, - 18839: 0x92C6, - 18840: 0x92C7, - 18841: 0x92C9, - 18842: 0x92CA, - 18843: 0x92CB, - 18844: 0x92CC, - 18845: 0x92CD, - 18846: 0x92CE, - 18847: 0x92CF, - 18848: 0x92D0, - 18849: 0x92D1, - 18850: 0x92D2, - 18851: 0x92D3, - 18852: 0x92D4, - 18853: 0x92D5, - 18854: 0x92D6, - 18855: 0x92D7, - 18856: 0x92D8, - 18857: 0x92D9, - 18858: 0x92DA, - 18859: 0x92DB, - 18860: 0x92DC, - 18861: 0x92DD, - 18862: 0x92DE, - 18863: 0x92DF, - 18864: 0x92E0, - 18865: 0x92E1, - 18866: 0x92E2, - 18867: 0x92E3, - 18868: 0x92E4, - 18869: 0x92E5, - 18870: 0x92E6, - 18871: 0x92E7, - 18872: 0x92E8, - 18873: 0x92E9, - 18874: 0x92EA, - 18875: 0x92EB, - 18876: 0x92EC, - 18877: 0x92ED, - 18878: 0x92EE, - 18879: 0x92EF, - 18880: 0x92F0, - 18881: 0x92F1, - 18882: 0x92F2, - 18883: 0x92F3, - 18884: 0x92F4, - 18885: 0x92F5, - 18886: 0x92F6, - 18887: 0x92F7, - 18888: 0x92F8, - 18889: 0x92F9, - 18890: 0x92FA, - 18891: 0x92FB, - 18892: 0x92FC, - 18893: 0x92FD, - 18894: 0x92FE, - 18895: 0x92FF, - 18896: 0x9300, - 18897: 0x9301, - 18898: 0x9302, - 18899: 0x9303, - 18900: 0x9304, - 18901: 0x9305, - 18902: 0x9306, - 18903: 0x9307, - 18904: 0x9308, - 18905: 0x9309, - 18906: 0x6D39, - 18907: 0x6D27, - 18908: 0x6D0C, - 18909: 0x6D43, - 18910: 0x6D48, - 18911: 0x6D07, - 18912: 0x6D04, - 18913: 0x6D19, - 18914: 0x6D0E, - 18915: 0x6D2B, - 18916: 0x6D4D, - 18917: 0x6D2E, - 18918: 0x6D35, - 18919: 0x6D1A, - 18920: 0x6D4F, - 18921: 0x6D52, - 18922: 0x6D54, - 18923: 0x6D33, - 18924: 0x6D91, - 18925: 0x6D6F, - 18926: 0x6D9E, - 18927: 0x6DA0, - 18928: 0x6D5E, - 18929: 0x6D93, - 18930: 0x6D94, - 18931: 0x6D5C, - 18932: 0x6D60, - 18933: 0x6D7C, - 18934: 0x6D63, - 18935: 0x6E1A, - 18936: 0x6DC7, - 18937: 0x6DC5, - 18938: 0x6DDE, - 18939: 0x6E0E, - 18940: 0x6DBF, - 18941: 0x6DE0, - 18942: 0x6E11, - 18943: 0x6DE6, - 18944: 0x6DDD, - 18945: 0x6DD9, - 18946: 0x6E16, - 18947: 0x6DAB, - 18948: 0x6E0C, - 18949: 0x6DAE, - 18950: 0x6E2B, - 18951: 0x6E6E, - 18952: 0x6E4E, - 18953: 0x6E6B, - 18954: 0x6EB2, - 18955: 0x6E5F, - 18956: 0x6E86, - 18957: 0x6E53, - 18958: 0x6E54, - 18959: 0x6E32, - 18960: 0x6E25, - 18961: 0x6E44, - 18962: 0x6EDF, - 18963: 0x6EB1, - 18964: 0x6E98, - 18965: 0x6EE0, - 18966: 0x6F2D, - 18967: 0x6EE2, - 18968: 0x6EA5, - 18969: 0x6EA7, - 18970: 0x6EBD, - 18971: 0x6EBB, - 18972: 0x6EB7, - 18973: 0x6ED7, - 18974: 0x6EB4, - 18975: 0x6ECF, - 18976: 0x6E8F, - 18977: 0x6EC2, - 18978: 0x6E9F, - 18979: 0x6F62, - 18980: 0x6F46, - 18981: 0x6F47, - 18982: 0x6F24, - 18983: 0x6F15, - 18984: 0x6EF9, - 18985: 0x6F2F, - 18986: 0x6F36, - 18987: 0x6F4B, - 18988: 0x6F74, - 18989: 0x6F2A, - 18990: 0x6F09, - 18991: 0x6F29, - 18992: 0x6F89, - 18993: 0x6F8D, - 18994: 0x6F8C, - 18995: 0x6F78, - 18996: 0x6F72, - 18997: 0x6F7C, - 18998: 0x6F7A, - 18999: 0x6FD1, - 19000: 0x930A, - 19001: 0x930B, - 19002: 0x930C, - 19003: 0x930D, - 19004: 0x930E, - 19005: 0x930F, - 19006: 0x9310, - 19007: 0x9311, - 19008: 0x9312, - 19009: 0x9313, - 19010: 0x9314, - 19011: 0x9315, - 19012: 0x9316, - 19013: 0x9317, - 19014: 0x9318, - 19015: 0x9319, - 19016: 0x931A, - 19017: 0x931B, - 19018: 0x931C, - 19019: 0x931D, - 19020: 0x931E, - 19021: 0x931F, - 19022: 0x9320, - 19023: 0x9321, - 19024: 0x9322, - 19025: 0x9323, - 19026: 0x9324, - 19027: 0x9325, - 19028: 0x9326, - 19029: 0x9327, - 19030: 0x9328, - 19031: 0x9329, - 19032: 0x932A, - 19033: 0x932B, - 19034: 0x932C, - 19035: 0x932D, - 19036: 0x932E, - 19037: 0x932F, - 19038: 0x9330, - 19039: 0x9331, - 19040: 0x9332, - 19041: 0x9333, - 19042: 0x9334, - 19043: 0x9335, - 19044: 0x9336, - 19045: 0x9337, - 19046: 0x9338, - 19047: 0x9339, - 19048: 0x933A, - 19049: 0x933B, - 19050: 0x933C, - 19051: 0x933D, - 19052: 0x933F, - 19053: 0x9340, - 19054: 0x9341, - 19055: 0x9342, - 19056: 0x9343, - 19057: 0x9344, - 19058: 0x9345, - 19059: 0x9346, - 19060: 0x9347, - 19061: 0x9348, - 19062: 0x9349, - 19063: 0x934A, - 19064: 0x934B, - 19065: 0x934C, - 19066: 0x934D, - 19067: 0x934E, - 19068: 0x934F, - 19069: 0x9350, - 19070: 0x9351, - 19071: 0x9352, - 19072: 0x9353, - 19073: 0x9354, - 19074: 0x9355, - 19075: 0x9356, - 19076: 0x9357, - 19077: 0x9358, - 19078: 0x9359, - 19079: 0x935A, - 19080: 0x935B, - 19081: 0x935C, - 19082: 0x935D, - 19083: 0x935E, - 19084: 0x935F, - 19085: 0x9360, - 19086: 0x9361, - 19087: 0x9362, - 19088: 0x9363, - 19089: 0x9364, - 19090: 0x9365, - 19091: 0x9366, - 19092: 0x9367, - 19093: 0x9368, - 19094: 0x9369, - 19095: 0x936B, - 19096: 0x6FC9, - 19097: 0x6FA7, - 19098: 0x6FB9, - 19099: 0x6FB6, - 19100: 0x6FC2, - 19101: 0x6FE1, - 19102: 0x6FEE, - 19103: 0x6FDE, - 19104: 0x6FE0, - 19105: 0x6FEF, - 19106: 0x701A, - 19107: 0x7023, - 19108: 0x701B, - 19109: 0x7039, - 19110: 0x7035, - 19111: 0x704F, - 19112: 0x705E, - 19113: 0x5B80, - 19114: 0x5B84, - 19115: 0x5B95, - 19116: 0x5B93, - 19117: 0x5BA5, - 19118: 0x5BB8, - 19119: 0x752F, - 19120: 0x9A9E, - 19121: 0x6434, - 19122: 0x5BE4, - 19123: 0x5BEE, - 19124: 0x8930, - 19125: 0x5BF0, - 19126: 0x8E47, - 19127: 0x8B07, - 19128: 0x8FB6, - 19129: 0x8FD3, - 19130: 0x8FD5, - 19131: 0x8FE5, - 19132: 0x8FEE, - 19133: 0x8FE4, - 19134: 0x8FE9, - 19135: 0x8FE6, - 19136: 0x8FF3, - 19137: 0x8FE8, - 19138: 0x9005, - 19139: 0x9004, - 19140: 0x900B, - 19141: 0x9026, - 19142: 0x9011, - 19143: 0x900D, - 19144: 0x9016, - 19145: 0x9021, - 19146: 0x9035, - 19147: 0x9036, - 19148: 0x902D, - 19149: 0x902F, - 19150: 0x9044, - 19151: 0x9051, - 19152: 0x9052, - 19153: 0x9050, - 19154: 0x9068, - 19155: 0x9058, - 19156: 0x9062, - 19157: 0x905B, - 19158: 0x66B9, - 19159: 0x9074, - 19160: 0x907D, - 19161: 0x9082, - 19162: 0x9088, - 19163: 0x9083, - 19164: 0x908B, - 19165: 0x5F50, - 19166: 0x5F57, - 19167: 0x5F56, - 19168: 0x5F58, - 19169: 0x5C3B, - 19170: 0x54AB, - 19171: 0x5C50, - 19172: 0x5C59, - 19173: 0x5B71, - 19174: 0x5C63, - 19175: 0x5C66, - 19176: 0x7FBC, - 19177: 0x5F2A, - 19178: 0x5F29, - 19179: 0x5F2D, - 19180: 0x8274, - 19181: 0x5F3C, - 19182: 0x9B3B, - 19183: 0x5C6E, - 19184: 0x5981, - 19185: 0x5983, - 19186: 0x598D, - 19187: 0x59A9, - 19188: 0x59AA, - 19189: 0x59A3, - 19190: 0x936C, - 19191: 0x936D, - 19192: 0x936E, - 19193: 0x936F, - 19194: 0x9370, - 19195: 0x9371, - 19196: 0x9372, - 19197: 0x9373, - 19198: 0x9374, - 19199: 0x9375, - 19200: 0x9376, - 19201: 0x9377, - 19202: 0x9378, - 19203: 0x9379, - 19204: 0x937A, - 19205: 0x937B, - 19206: 0x937C, - 19207: 0x937D, - 19208: 0x937E, - 19209: 0x937F, - 19210: 0x9380, - 19211: 0x9381, - 19212: 0x9382, - 19213: 0x9383, - 19214: 0x9384, - 19215: 0x9385, - 19216: 0x9386, - 19217: 0x9387, - 19218: 0x9388, - 19219: 0x9389, - 19220: 0x938A, - 19221: 0x938B, - 19222: 0x938C, - 19223: 0x938D, - 19224: 0x938E, - 19225: 0x9390, - 19226: 0x9391, - 19227: 0x9392, - 19228: 0x9393, - 19229: 0x9394, - 19230: 0x9395, - 19231: 0x9396, - 19232: 0x9397, - 19233: 0x9398, - 19234: 0x9399, - 19235: 0x939A, - 19236: 0x939B, - 19237: 0x939C, - 19238: 0x939D, - 19239: 0x939E, - 19240: 0x939F, - 19241: 0x93A0, - 19242: 0x93A1, - 19243: 0x93A2, - 19244: 0x93A3, - 19245: 0x93A4, - 19246: 0x93A5, - 19247: 0x93A6, - 19248: 0x93A7, - 19249: 0x93A8, - 19250: 0x93A9, - 19251: 0x93AA, - 19252: 0x93AB, - 19253: 0x93AC, - 19254: 0x93AD, - 19255: 0x93AE, - 19256: 0x93AF, - 19257: 0x93B0, - 19258: 0x93B1, - 19259: 0x93B2, - 19260: 0x93B3, - 19261: 0x93B4, - 19262: 0x93B5, - 19263: 0x93B6, - 19264: 0x93B7, - 19265: 0x93B8, - 19266: 0x93B9, - 19267: 0x93BA, - 19268: 0x93BB, - 19269: 0x93BC, - 19270: 0x93BD, - 19271: 0x93BE, - 19272: 0x93BF, - 19273: 0x93C0, - 19274: 0x93C1, - 19275: 0x93C2, - 19276: 0x93C3, - 19277: 0x93C4, - 19278: 0x93C5, - 19279: 0x93C6, - 19280: 0x93C7, - 19281: 0x93C8, - 19282: 0x93C9, - 19283: 0x93CB, - 19284: 0x93CC, - 19285: 0x93CD, - 19286: 0x5997, - 19287: 0x59CA, - 19288: 0x59AB, - 19289: 0x599E, - 19290: 0x59A4, - 19291: 0x59D2, - 19292: 0x59B2, - 19293: 0x59AF, - 19294: 0x59D7, - 19295: 0x59BE, - 19296: 0x5A05, - 19297: 0x5A06, - 19298: 0x59DD, - 19299: 0x5A08, - 19300: 0x59E3, - 19301: 0x59D8, - 19302: 0x59F9, - 19303: 0x5A0C, - 19304: 0x5A09, - 19305: 0x5A32, - 19306: 0x5A34, - 19307: 0x5A11, - 19308: 0x5A23, - 19309: 0x5A13, - 19310: 0x5A40, - 19311: 0x5A67, - 19312: 0x5A4A, - 19313: 0x5A55, - 19314: 0x5A3C, - 19315: 0x5A62, - 19316: 0x5A75, - 19317: 0x80EC, - 19318: 0x5AAA, - 19319: 0x5A9B, - 19320: 0x5A77, - 19321: 0x5A7A, - 19322: 0x5ABE, - 19323: 0x5AEB, - 19324: 0x5AB2, - 19325: 0x5AD2, - 19326: 0x5AD4, - 19327: 0x5AB8, - 19328: 0x5AE0, - 19329: 0x5AE3, - 19330: 0x5AF1, - 19331: 0x5AD6, - 19332: 0x5AE6, - 19333: 0x5AD8, - 19334: 0x5ADC, - 19335: 0x5B09, - 19336: 0x5B17, - 19337: 0x5B16, - 19338: 0x5B32, - 19339: 0x5B37, - 19340: 0x5B40, - 19341: 0x5C15, - 19342: 0x5C1C, - 19343: 0x5B5A, - 19344: 0x5B65, - 19345: 0x5B73, - 19346: 0x5B51, - 19347: 0x5B53, - 19348: 0x5B62, - 19349: 0x9A75, - 19350: 0x9A77, - 19351: 0x9A78, - 19352: 0x9A7A, - 19353: 0x9A7F, - 19354: 0x9A7D, - 19355: 0x9A80, - 19356: 0x9A81, - 19357: 0x9A85, - 19358: 0x9A88, - 19359: 0x9A8A, - 19360: 0x9A90, - 19361: 0x9A92, - 19362: 0x9A93, - 19363: 0x9A96, - 19364: 0x9A98, - 19365: 0x9A9B, - 19366: 0x9A9C, - 19367: 0x9A9D, - 19368: 0x9A9F, - 19369: 0x9AA0, - 19370: 0x9AA2, - 19371: 0x9AA3, - 19372: 0x9AA5, - 19373: 0x9AA7, - 19374: 0x7E9F, - 19375: 0x7EA1, - 19376: 0x7EA3, - 19377: 0x7EA5, - 19378: 0x7EA8, - 19379: 0x7EA9, - 19380: 0x93CE, - 19381: 0x93CF, - 19382: 0x93D0, - 19383: 0x93D1, - 19384: 0x93D2, - 19385: 0x93D3, - 19386: 0x93D4, - 19387: 0x93D5, - 19388: 0x93D7, - 19389: 0x93D8, - 19390: 0x93D9, - 19391: 0x93DA, - 19392: 0x93DB, - 19393: 0x93DC, - 19394: 0x93DD, - 19395: 0x93DE, - 19396: 0x93DF, - 19397: 0x93E0, - 19398: 0x93E1, - 19399: 0x93E2, - 19400: 0x93E3, - 19401: 0x93E4, - 19402: 0x93E5, - 19403: 0x93E6, - 19404: 0x93E7, - 19405: 0x93E8, - 19406: 0x93E9, - 19407: 0x93EA, - 19408: 0x93EB, - 19409: 0x93EC, - 19410: 0x93ED, - 19411: 0x93EE, - 19412: 0x93EF, - 19413: 0x93F0, - 19414: 0x93F1, - 19415: 0x93F2, - 19416: 0x93F3, - 19417: 0x93F4, - 19418: 0x93F5, - 19419: 0x93F6, - 19420: 0x93F7, - 19421: 0x93F8, - 19422: 0x93F9, - 19423: 0x93FA, - 19424: 0x93FB, - 19425: 0x93FC, - 19426: 0x93FD, - 19427: 0x93FE, - 19428: 0x93FF, - 19429: 0x9400, - 19430: 0x9401, - 19431: 0x9402, - 19432: 0x9403, - 19433: 0x9404, - 19434: 0x9405, - 19435: 0x9406, - 19436: 0x9407, - 19437: 0x9408, - 19438: 0x9409, - 19439: 0x940A, - 19440: 0x940B, - 19441: 0x940C, - 19442: 0x940D, - 19443: 0x940E, - 19444: 0x940F, - 19445: 0x9410, - 19446: 0x9411, - 19447: 0x9412, - 19448: 0x9413, - 19449: 0x9414, - 19450: 0x9415, - 19451: 0x9416, - 19452: 0x9417, - 19453: 0x9418, - 19454: 0x9419, - 19455: 0x941A, - 19456: 0x941B, - 19457: 0x941C, - 19458: 0x941D, - 19459: 0x941E, - 19460: 0x941F, - 19461: 0x9420, - 19462: 0x9421, - 19463: 0x9422, - 19464: 0x9423, - 19465: 0x9424, - 19466: 0x9425, - 19467: 0x9426, - 19468: 0x9427, - 19469: 0x9428, - 19470: 0x9429, - 19471: 0x942A, - 19472: 0x942B, - 19473: 0x942C, - 19474: 0x942D, - 19475: 0x942E, - 19476: 0x7EAD, - 19477: 0x7EB0, - 19478: 0x7EBE, - 19479: 0x7EC0, - 19480: 0x7EC1, - 19481: 0x7EC2, - 19482: 0x7EC9, - 19483: 0x7ECB, - 19484: 0x7ECC, - 19485: 0x7ED0, - 19486: 0x7ED4, - 19487: 0x7ED7, - 19488: 0x7EDB, - 19489: 0x7EE0, - 19490: 0x7EE1, - 19491: 0x7EE8, - 19492: 0x7EEB, - 19493: 0x7EEE, - 19494: 0x7EEF, - 19495: 0x7EF1, - 19496: 0x7EF2, - 19497: 0x7F0D, - 19498: 0x7EF6, - 19499: 0x7EFA, - 19500: 0x7EFB, - 19501: 0x7EFE, - 19502: 0x7F01, - 19503: 0x7F02, - 19504: 0x7F03, - 19505: 0x7F07, - 19506: 0x7F08, - 19507: 0x7F0B, - 19508: 0x7F0C, - 19509: 0x7F0F, - 19510: 0x7F11, - 19511: 0x7F12, - 19512: 0x7F17, - 19513: 0x7F19, - 19514: 0x7F1C, - 19515: 0x7F1B, - 19516: 0x7F1F, - 19517: 0x7F21, - 19518: 0x7F22, - 19519: 0x7F23, - 19520: 0x7F24, - 19521: 0x7F25, - 19522: 0x7F26, - 19523: 0x7F27, - 19524: 0x7F2A, - 19525: 0x7F2B, - 19526: 0x7F2C, - 19527: 0x7F2D, - 19528: 0x7F2F, - 19529: 0x7F30, - 19530: 0x7F31, - 19531: 0x7F32, - 19532: 0x7F33, - 19533: 0x7F35, - 19534: 0x5E7A, - 19535: 0x757F, - 19536: 0x5DDB, - 19537: 0x753E, - 19538: 0x9095, - 19539: 0x738E, - 19540: 0x7391, - 19541: 0x73AE, - 19542: 0x73A2, - 19543: 0x739F, - 19544: 0x73CF, - 19545: 0x73C2, - 19546: 0x73D1, - 19547: 0x73B7, - 19548: 0x73B3, - 19549: 0x73C0, - 19550: 0x73C9, - 19551: 0x73C8, - 19552: 0x73E5, - 19553: 0x73D9, - 19554: 0x987C, - 19555: 0x740A, - 19556: 0x73E9, - 19557: 0x73E7, - 19558: 0x73DE, - 19559: 0x73BA, - 19560: 0x73F2, - 19561: 0x740F, - 19562: 0x742A, - 19563: 0x745B, - 19564: 0x7426, - 19565: 0x7425, - 19566: 0x7428, - 19567: 0x7430, - 19568: 0x742E, - 19569: 0x742C, - 19570: 0x942F, - 19571: 0x9430, - 19572: 0x9431, - 19573: 0x9432, - 19574: 0x9433, - 19575: 0x9434, - 19576: 0x9435, - 19577: 0x9436, - 19578: 0x9437, - 19579: 0x9438, - 19580: 0x9439, - 19581: 0x943A, - 19582: 0x943B, - 19583: 0x943C, - 19584: 0x943D, - 19585: 0x943F, - 19586: 0x9440, - 19587: 0x9441, - 19588: 0x9442, - 19589: 0x9443, - 19590: 0x9444, - 19591: 0x9445, - 19592: 0x9446, - 19593: 0x9447, - 19594: 0x9448, - 19595: 0x9449, - 19596: 0x944A, - 19597: 0x944B, - 19598: 0x944C, - 19599: 0x944D, - 19600: 0x944E, - 19601: 0x944F, - 19602: 0x9450, - 19603: 0x9451, - 19604: 0x9452, - 19605: 0x9453, - 19606: 0x9454, - 19607: 0x9455, - 19608: 0x9456, - 19609: 0x9457, - 19610: 0x9458, - 19611: 0x9459, - 19612: 0x945A, - 19613: 0x945B, - 19614: 0x945C, - 19615: 0x945D, - 19616: 0x945E, - 19617: 0x945F, - 19618: 0x9460, - 19619: 0x9461, - 19620: 0x9462, - 19621: 0x9463, - 19622: 0x9464, - 19623: 0x9465, - 19624: 0x9466, - 19625: 0x9467, - 19626: 0x9468, - 19627: 0x9469, - 19628: 0x946A, - 19629: 0x946C, - 19630: 0x946D, - 19631: 0x946E, - 19632: 0x946F, - 19633: 0x9470, - 19634: 0x9471, - 19635: 0x9472, - 19636: 0x9473, - 19637: 0x9474, - 19638: 0x9475, - 19639: 0x9476, - 19640: 0x9477, - 19641: 0x9478, - 19642: 0x9479, - 19643: 0x947A, - 19644: 0x947B, - 19645: 0x947C, - 19646: 0x947D, - 19647: 0x947E, - 19648: 0x947F, - 19649: 0x9480, - 19650: 0x9481, - 19651: 0x9482, - 19652: 0x9483, - 19653: 0x9484, - 19654: 0x9491, - 19655: 0x9496, - 19656: 0x9498, - 19657: 0x94C7, - 19658: 0x94CF, - 19659: 0x94D3, - 19660: 0x94D4, - 19661: 0x94DA, - 19662: 0x94E6, - 19663: 0x94FB, - 19664: 0x951C, - 19665: 0x9520, - 19666: 0x741B, - 19667: 0x741A, - 19668: 0x7441, - 19669: 0x745C, - 19670: 0x7457, - 19671: 0x7455, - 19672: 0x7459, - 19673: 0x7477, - 19674: 0x746D, - 19675: 0x747E, - 19676: 0x749C, - 19677: 0x748E, - 19678: 0x7480, - 19679: 0x7481, - 19680: 0x7487, - 19681: 0x748B, - 19682: 0x749E, - 19683: 0x74A8, - 19684: 0x74A9, - 19685: 0x7490, - 19686: 0x74A7, - 19687: 0x74D2, - 19688: 0x74BA, - 19689: 0x97EA, - 19690: 0x97EB, - 19691: 0x97EC, - 19692: 0x674C, - 19693: 0x6753, - 19694: 0x675E, - 19695: 0x6748, - 19696: 0x6769, - 19697: 0x67A5, - 19698: 0x6787, - 19699: 0x676A, - 19700: 0x6773, - 19701: 0x6798, - 19702: 0x67A7, - 19703: 0x6775, - 19704: 0x67A8, - 19705: 0x679E, - 19706: 0x67AD, - 19707: 0x678B, - 19708: 0x6777, - 19709: 0x677C, - 19710: 0x67F0, - 19711: 0x6809, - 19712: 0x67D8, - 19713: 0x680A, - 19714: 0x67E9, - 19715: 0x67B0, - 19716: 0x680C, - 19717: 0x67D9, - 19718: 0x67B5, - 19719: 0x67DA, - 19720: 0x67B3, - 19721: 0x67DD, - 19722: 0x6800, - 19723: 0x67C3, - 19724: 0x67B8, - 19725: 0x67E2, - 19726: 0x680E, - 19727: 0x67C1, - 19728: 0x67FD, - 19729: 0x6832, - 19730: 0x6833, - 19731: 0x6860, - 19732: 0x6861, - 19733: 0x684E, - 19734: 0x6862, - 19735: 0x6844, - 19736: 0x6864, - 19737: 0x6883, - 19738: 0x681D, - 19739: 0x6855, - 19740: 0x6866, - 19741: 0x6841, - 19742: 0x6867, - 19743: 0x6840, - 19744: 0x683E, - 19745: 0x684A, - 19746: 0x6849, - 19747: 0x6829, - 19748: 0x68B5, - 19749: 0x688F, - 19750: 0x6874, - 19751: 0x6877, - 19752: 0x6893, - 19753: 0x686B, - 19754: 0x68C2, - 19755: 0x696E, - 19756: 0x68FC, - 19757: 0x691F, - 19758: 0x6920, - 19759: 0x68F9, - 19760: 0x9527, - 19761: 0x9533, - 19762: 0x953D, - 19763: 0x9543, - 19764: 0x9548, - 19765: 0x954B, - 19766: 0x9555, - 19767: 0x955A, - 19768: 0x9560, - 19769: 0x956E, - 19770: 0x9574, - 19771: 0x9575, - 19772: 0x9577, - 19773: 0x9578, - 19774: 0x9579, - 19775: 0x957A, - 19776: 0x957B, - 19777: 0x957C, - 19778: 0x957D, - 19779: 0x957E, - 19780: 0x9580, - 19781: 0x9581, - 19782: 0x9582, - 19783: 0x9583, - 19784: 0x9584, - 19785: 0x9585, - 19786: 0x9586, - 19787: 0x9587, - 19788: 0x9588, - 19789: 0x9589, - 19790: 0x958A, - 19791: 0x958B, - 19792: 0x958C, - 19793: 0x958D, - 19794: 0x958E, - 19795: 0x958F, - 19796: 0x9590, - 19797: 0x9591, - 19798: 0x9592, - 19799: 0x9593, - 19800: 0x9594, - 19801: 0x9595, - 19802: 0x9596, - 19803: 0x9597, - 19804: 0x9598, - 19805: 0x9599, - 19806: 0x959A, - 19807: 0x959B, - 19808: 0x959C, - 19809: 0x959D, - 19810: 0x959E, - 19811: 0x959F, - 19812: 0x95A0, - 19813: 0x95A1, - 19814: 0x95A2, - 19815: 0x95A3, - 19816: 0x95A4, - 19817: 0x95A5, - 19818: 0x95A6, - 19819: 0x95A7, - 19820: 0x95A8, - 19821: 0x95A9, - 19822: 0x95AA, - 19823: 0x95AB, - 19824: 0x95AC, - 19825: 0x95AD, - 19826: 0x95AE, - 19827: 0x95AF, - 19828: 0x95B0, - 19829: 0x95B1, - 19830: 0x95B2, - 19831: 0x95B3, - 19832: 0x95B4, - 19833: 0x95B5, - 19834: 0x95B6, - 19835: 0x95B7, - 19836: 0x95B8, - 19837: 0x95B9, - 19838: 0x95BA, - 19839: 0x95BB, - 19840: 0x95BC, - 19841: 0x95BD, - 19842: 0x95BE, - 19843: 0x95BF, - 19844: 0x95C0, - 19845: 0x95C1, - 19846: 0x95C2, - 19847: 0x95C3, - 19848: 0x95C4, - 19849: 0x95C5, - 19850: 0x95C6, - 19851: 0x95C7, - 19852: 0x95C8, - 19853: 0x95C9, - 19854: 0x95CA, - 19855: 0x95CB, - 19856: 0x6924, - 19857: 0x68F0, - 19858: 0x690B, - 19859: 0x6901, - 19860: 0x6957, - 19861: 0x68E3, - 19862: 0x6910, - 19863: 0x6971, - 19864: 0x6939, - 19865: 0x6960, - 19866: 0x6942, - 19867: 0x695D, - 19868: 0x6984, - 19869: 0x696B, - 19870: 0x6980, - 19871: 0x6998, - 19872: 0x6978, - 19873: 0x6934, - 19874: 0x69CC, - 19875: 0x6987, - 19876: 0x6988, - 19877: 0x69CE, - 19878: 0x6989, - 19879: 0x6966, - 19880: 0x6963, - 19881: 0x6979, - 19882: 0x699B, - 19883: 0x69A7, - 19884: 0x69BB, - 19885: 0x69AB, - 19886: 0x69AD, - 19887: 0x69D4, - 19888: 0x69B1, - 19889: 0x69C1, - 19890: 0x69CA, - 19891: 0x69DF, - 19892: 0x6995, - 19893: 0x69E0, - 19894: 0x698D, - 19895: 0x69FF, - 19896: 0x6A2F, - 19897: 0x69ED, - 19898: 0x6A17, - 19899: 0x6A18, - 19900: 0x6A65, - 19901: 0x69F2, - 19902: 0x6A44, - 19903: 0x6A3E, - 19904: 0x6AA0, - 19905: 0x6A50, - 19906: 0x6A5B, - 19907: 0x6A35, - 19908: 0x6A8E, - 19909: 0x6A79, - 19910: 0x6A3D, - 19911: 0x6A28, - 19912: 0x6A58, - 19913: 0x6A7C, - 19914: 0x6A91, - 19915: 0x6A90, - 19916: 0x6AA9, - 19917: 0x6A97, - 19918: 0x6AAB, - 19919: 0x7337, - 19920: 0x7352, - 19921: 0x6B81, - 19922: 0x6B82, - 19923: 0x6B87, - 19924: 0x6B84, - 19925: 0x6B92, - 19926: 0x6B93, - 19927: 0x6B8D, - 19928: 0x6B9A, - 19929: 0x6B9B, - 19930: 0x6BA1, - 19931: 0x6BAA, - 19932: 0x8F6B, - 19933: 0x8F6D, - 19934: 0x8F71, - 19935: 0x8F72, - 19936: 0x8F73, - 19937: 0x8F75, - 19938: 0x8F76, - 19939: 0x8F78, - 19940: 0x8F77, - 19941: 0x8F79, - 19942: 0x8F7A, - 19943: 0x8F7C, - 19944: 0x8F7E, - 19945: 0x8F81, - 19946: 0x8F82, - 19947: 0x8F84, - 19948: 0x8F87, - 19949: 0x8F8B, - 19950: 0x95CC, - 19951: 0x95CD, - 19952: 0x95CE, - 19953: 0x95CF, - 19954: 0x95D0, - 19955: 0x95D1, - 19956: 0x95D2, - 19957: 0x95D3, - 19958: 0x95D4, - 19959: 0x95D5, - 19960: 0x95D6, - 19961: 0x95D7, - 19962: 0x95D8, - 19963: 0x95D9, - 19964: 0x95DA, - 19965: 0x95DB, - 19966: 0x95DC, - 19967: 0x95DD, - 19968: 0x95DE, - 19969: 0x95DF, - 19970: 0x95E0, - 19971: 0x95E1, - 19972: 0x95E2, - 19973: 0x95E3, - 19974: 0x95E4, - 19975: 0x95E5, - 19976: 0x95E6, - 19977: 0x95E7, - 19978: 0x95EC, - 19979: 0x95FF, - 19980: 0x9607, - 19981: 0x9613, - 19982: 0x9618, - 19983: 0x961B, - 19984: 0x961E, - 19985: 0x9620, - 19986: 0x9623, - 19987: 0x9624, - 19988: 0x9625, - 19989: 0x9626, - 19990: 0x9627, - 19991: 0x9628, - 19992: 0x9629, - 19993: 0x962B, - 19994: 0x962C, - 19995: 0x962D, - 19996: 0x962F, - 19997: 0x9630, - 19998: 0x9637, - 19999: 0x9638, - 20000: 0x9639, - 20001: 0x963A, - 20002: 0x963E, - 20003: 0x9641, - 20004: 0x9643, - 20005: 0x964A, - 20006: 0x964E, - 20007: 0x964F, - 20008: 0x9651, - 20009: 0x9652, - 20010: 0x9653, - 20011: 0x9656, - 20012: 0x9657, - 20013: 0x9658, - 20014: 0x9659, - 20015: 0x965A, - 20016: 0x965C, - 20017: 0x965D, - 20018: 0x965E, - 20019: 0x9660, - 20020: 0x9663, - 20021: 0x9665, - 20022: 0x9666, - 20023: 0x966B, - 20024: 0x966D, - 20025: 0x966E, - 20026: 0x966F, - 20027: 0x9670, - 20028: 0x9671, - 20029: 0x9673, - 20030: 0x9678, - 20031: 0x9679, - 20032: 0x967A, - 20033: 0x967B, - 20034: 0x967C, - 20035: 0x967D, - 20036: 0x967E, - 20037: 0x967F, - 20038: 0x9680, - 20039: 0x9681, - 20040: 0x9682, - 20041: 0x9683, - 20042: 0x9684, - 20043: 0x9687, - 20044: 0x9689, - 20045: 0x968A, - 20046: 0x8F8D, - 20047: 0x8F8E, - 20048: 0x8F8F, - 20049: 0x8F98, - 20050: 0x8F9A, - 20051: 0x8ECE, - 20052: 0x620B, - 20053: 0x6217, - 20054: 0x621B, - 20055: 0x621F, - 20056: 0x6222, - 20057: 0x6221, - 20058: 0x6225, - 20059: 0x6224, - 20060: 0x622C, - 20061: 0x81E7, - 20062: 0x74EF, - 20063: 0x74F4, - 20064: 0x74FF, - 20065: 0x750F, - 20066: 0x7511, - 20067: 0x7513, - 20068: 0x6534, - 20069: 0x65EE, - 20070: 0x65EF, - 20071: 0x65F0, - 20072: 0x660A, - 20073: 0x6619, - 20074: 0x6772, - 20075: 0x6603, - 20076: 0x6615, - 20077: 0x6600, - 20078: 0x7085, - 20079: 0x66F7, - 20080: 0x661D, - 20081: 0x6634, - 20082: 0x6631, - 20083: 0x6636, - 20084: 0x6635, - 20085: 0x8006, - 20086: 0x665F, - 20087: 0x6654, - 20088: 0x6641, - 20089: 0x664F, - 20090: 0x6656, - 20091: 0x6661, - 20092: 0x6657, - 20093: 0x6677, - 20094: 0x6684, - 20095: 0x668C, - 20096: 0x66A7, - 20097: 0x669D, - 20098: 0x66BE, - 20099: 0x66DB, - 20100: 0x66DC, - 20101: 0x66E6, - 20102: 0x66E9, - 20103: 0x8D32, - 20104: 0x8D33, - 20105: 0x8D36, - 20106: 0x8D3B, - 20107: 0x8D3D, - 20108: 0x8D40, - 20109: 0x8D45, - 20110: 0x8D46, - 20111: 0x8D48, - 20112: 0x8D49, - 20113: 0x8D47, - 20114: 0x8D4D, - 20115: 0x8D55, - 20116: 0x8D59, - 20117: 0x89C7, - 20118: 0x89CA, - 20119: 0x89CB, - 20120: 0x89CC, - 20121: 0x89CE, - 20122: 0x89CF, - 20123: 0x89D0, - 20124: 0x89D1, - 20125: 0x726E, - 20126: 0x729F, - 20127: 0x725D, - 20128: 0x7266, - 20129: 0x726F, - 20130: 0x727E, - 20131: 0x727F, - 20132: 0x7284, - 20133: 0x728B, - 20134: 0x728D, - 20135: 0x728F, - 20136: 0x7292, - 20137: 0x6308, - 20138: 0x6332, - 20139: 0x63B0, - 20140: 0x968C, - 20141: 0x968E, - 20142: 0x9691, - 20143: 0x9692, - 20144: 0x9693, - 20145: 0x9695, - 20146: 0x9696, - 20147: 0x969A, - 20148: 0x969B, - 20149: 0x969D, - 20150: 0x969E, - 20151: 0x969F, - 20152: 0x96A0, - 20153: 0x96A1, - 20154: 0x96A2, - 20155: 0x96A3, - 20156: 0x96A4, - 20157: 0x96A5, - 20158: 0x96A6, - 20159: 0x96A8, - 20160: 0x96A9, - 20161: 0x96AA, - 20162: 0x96AB, - 20163: 0x96AC, - 20164: 0x96AD, - 20165: 0x96AE, - 20166: 0x96AF, - 20167: 0x96B1, - 20168: 0x96B2, - 20169: 0x96B4, - 20170: 0x96B5, - 20171: 0x96B7, - 20172: 0x96B8, - 20173: 0x96BA, - 20174: 0x96BB, - 20175: 0x96BF, - 20176: 0x96C2, - 20177: 0x96C3, - 20178: 0x96C8, - 20179: 0x96CA, - 20180: 0x96CB, - 20181: 0x96D0, - 20182: 0x96D1, - 20183: 0x96D3, - 20184: 0x96D4, - 20185: 0x96D6, - 20186: 0x96D7, - 20187: 0x96D8, - 20188: 0x96D9, - 20189: 0x96DA, - 20190: 0x96DB, - 20191: 0x96DC, - 20192: 0x96DD, - 20193: 0x96DE, - 20194: 0x96DF, - 20195: 0x96E1, - 20196: 0x96E2, - 20197: 0x96E3, - 20198: 0x96E4, - 20199: 0x96E5, - 20200: 0x96E6, - 20201: 0x96E7, - 20202: 0x96EB, - 20203: 0x96EC, - 20204: 0x96ED, - 20205: 0x96EE, - 20206: 0x96F0, - 20207: 0x96F1, - 20208: 0x96F2, - 20209: 0x96F4, - 20210: 0x96F5, - 20211: 0x96F8, - 20212: 0x96FA, - 20213: 0x96FB, - 20214: 0x96FC, - 20215: 0x96FD, - 20216: 0x96FF, - 20217: 0x9702, - 20218: 0x9703, - 20219: 0x9705, - 20220: 0x970A, - 20221: 0x970B, - 20222: 0x970C, - 20223: 0x9710, - 20224: 0x9711, - 20225: 0x9712, - 20226: 0x9714, - 20227: 0x9715, - 20228: 0x9717, - 20229: 0x9718, - 20230: 0x9719, - 20231: 0x971A, - 20232: 0x971B, - 20233: 0x971D, - 20234: 0x971F, - 20235: 0x9720, - 20236: 0x643F, - 20237: 0x64D8, - 20238: 0x8004, - 20239: 0x6BEA, - 20240: 0x6BF3, - 20241: 0x6BFD, - 20242: 0x6BF5, - 20243: 0x6BF9, - 20244: 0x6C05, - 20245: 0x6C07, - 20246: 0x6C06, - 20247: 0x6C0D, - 20248: 0x6C15, - 20249: 0x6C18, - 20250: 0x6C19, - 20251: 0x6C1A, - 20252: 0x6C21, - 20253: 0x6C29, - 20254: 0x6C24, - 20255: 0x6C2A, - 20256: 0x6C32, - 20257: 0x6535, - 20258: 0x6555, - 20259: 0x656B, - 20260: 0x724D, - 20261: 0x7252, - 20262: 0x7256, - 20263: 0x7230, - 20264: 0x8662, - 20265: 0x5216, - 20266: 0x809F, - 20267: 0x809C, - 20268: 0x8093, - 20269: 0x80BC, - 20270: 0x670A, - 20271: 0x80BD, - 20272: 0x80B1, - 20273: 0x80AB, - 20274: 0x80AD, - 20275: 0x80B4, - 20276: 0x80B7, - 20277: 0x80E7, - 20278: 0x80E8, - 20279: 0x80E9, - 20280: 0x80EA, - 20281: 0x80DB, - 20282: 0x80C2, - 20283: 0x80C4, - 20284: 0x80D9, - 20285: 0x80CD, - 20286: 0x80D7, - 20287: 0x6710, - 20288: 0x80DD, - 20289: 0x80EB, - 20290: 0x80F1, - 20291: 0x80F4, - 20292: 0x80ED, - 20293: 0x810D, - 20294: 0x810E, - 20295: 0x80F2, - 20296: 0x80FC, - 20297: 0x6715, - 20298: 0x8112, - 20299: 0x8C5A, - 20300: 0x8136, - 20301: 0x811E, - 20302: 0x812C, - 20303: 0x8118, - 20304: 0x8132, - 20305: 0x8148, - 20306: 0x814C, - 20307: 0x8153, - 20308: 0x8174, - 20309: 0x8159, - 20310: 0x815A, - 20311: 0x8171, - 20312: 0x8160, - 20313: 0x8169, - 20314: 0x817C, - 20315: 0x817D, - 20316: 0x816D, - 20317: 0x8167, - 20318: 0x584D, - 20319: 0x5AB5, - 20320: 0x8188, - 20321: 0x8182, - 20322: 0x8191, - 20323: 0x6ED5, - 20324: 0x81A3, - 20325: 0x81AA, - 20326: 0x81CC, - 20327: 0x6726, - 20328: 0x81CA, - 20329: 0x81BB, - 20330: 0x9721, - 20331: 0x9722, - 20332: 0x9723, - 20333: 0x9724, - 20334: 0x9725, - 20335: 0x9726, - 20336: 0x9727, - 20337: 0x9728, - 20338: 0x9729, - 20339: 0x972B, - 20340: 0x972C, - 20341: 0x972E, - 20342: 0x972F, - 20343: 0x9731, - 20344: 0x9733, - 20345: 0x9734, - 20346: 0x9735, - 20347: 0x9736, - 20348: 0x9737, - 20349: 0x973A, - 20350: 0x973B, - 20351: 0x973C, - 20352: 0x973D, - 20353: 0x973F, - 20354: 0x9740, - 20355: 0x9741, - 20356: 0x9742, - 20357: 0x9743, - 20358: 0x9744, - 20359: 0x9745, - 20360: 0x9746, - 20361: 0x9747, - 20362: 0x9748, - 20363: 0x9749, - 20364: 0x974A, - 20365: 0x974B, - 20366: 0x974C, - 20367: 0x974D, - 20368: 0x974E, - 20369: 0x974F, - 20370: 0x9750, - 20371: 0x9751, - 20372: 0x9754, - 20373: 0x9755, - 20374: 0x9757, - 20375: 0x9758, - 20376: 0x975A, - 20377: 0x975C, - 20378: 0x975D, - 20379: 0x975F, - 20380: 0x9763, - 20381: 0x9764, - 20382: 0x9766, - 20383: 0x9767, - 20384: 0x9768, - 20385: 0x976A, - 20386: 0x976B, - 20387: 0x976C, - 20388: 0x976D, - 20389: 0x976E, - 20390: 0x976F, - 20391: 0x9770, - 20392: 0x9771, - 20393: 0x9772, - 20394: 0x9775, - 20395: 0x9777, - 20396: 0x9778, - 20397: 0x9779, - 20398: 0x977A, - 20399: 0x977B, - 20400: 0x977D, - 20401: 0x977E, - 20402: 0x977F, - 20403: 0x9780, - 20404: 0x9781, - 20405: 0x9782, - 20406: 0x9783, - 20407: 0x9784, - 20408: 0x9786, - 20409: 0x9787, - 20410: 0x9788, - 20411: 0x9789, - 20412: 0x978A, - 20413: 0x978C, - 20414: 0x978E, - 20415: 0x978F, - 20416: 0x9790, - 20417: 0x9793, - 20418: 0x9795, - 20419: 0x9796, - 20420: 0x9797, - 20421: 0x9799, - 20422: 0x979A, - 20423: 0x979B, - 20424: 0x979C, - 20425: 0x979D, - 20426: 0x81C1, - 20427: 0x81A6, - 20428: 0x6B24, - 20429: 0x6B37, - 20430: 0x6B39, - 20431: 0x6B43, - 20432: 0x6B46, - 20433: 0x6B59, - 20434: 0x98D1, - 20435: 0x98D2, - 20436: 0x98D3, - 20437: 0x98D5, - 20438: 0x98D9, - 20439: 0x98DA, - 20440: 0x6BB3, - 20441: 0x5F40, - 20442: 0x6BC2, - 20443: 0x89F3, - 20444: 0x6590, - 20445: 0x9F51, - 20446: 0x6593, - 20447: 0x65BC, - 20448: 0x65C6, - 20449: 0x65C4, - 20450: 0x65C3, - 20451: 0x65CC, - 20452: 0x65CE, - 20453: 0x65D2, - 20454: 0x65D6, - 20455: 0x7080, - 20456: 0x709C, - 20457: 0x7096, - 20458: 0x709D, - 20459: 0x70BB, - 20460: 0x70C0, - 20461: 0x70B7, - 20462: 0x70AB, - 20463: 0x70B1, - 20464: 0x70E8, - 20465: 0x70CA, - 20466: 0x7110, - 20467: 0x7113, - 20468: 0x7116, - 20469: 0x712F, - 20470: 0x7131, - 20471: 0x7173, - 20472: 0x715C, - 20473: 0x7168, - 20474: 0x7145, - 20475: 0x7172, - 20476: 0x714A, - 20477: 0x7178, - 20478: 0x717A, - 20479: 0x7198, - 20480: 0x71B3, - 20481: 0x71B5, - 20482: 0x71A8, - 20483: 0x71A0, - 20484: 0x71E0, - 20485: 0x71D4, - 20486: 0x71E7, - 20487: 0x71F9, - 20488: 0x721D, - 20489: 0x7228, - 20490: 0x706C, - 20491: 0x7118, - 20492: 0x7166, - 20493: 0x71B9, - 20494: 0x623E, - 20495: 0x623D, - 20496: 0x6243, - 20497: 0x6248, - 20498: 0x6249, - 20499: 0x793B, - 20500: 0x7940, - 20501: 0x7946, - 20502: 0x7949, - 20503: 0x795B, - 20504: 0x795C, - 20505: 0x7953, - 20506: 0x795A, - 20507: 0x7962, - 20508: 0x7957, - 20509: 0x7960, - 20510: 0x796F, - 20511: 0x7967, - 20512: 0x797A, - 20513: 0x7985, - 20514: 0x798A, - 20515: 0x799A, - 20516: 0x79A7, - 20517: 0x79B3, - 20518: 0x5FD1, - 20519: 0x5FD0, - 20520: 0x979E, - 20521: 0x979F, - 20522: 0x97A1, - 20523: 0x97A2, - 20524: 0x97A4, - 20525: 0x97A5, - 20526: 0x97A6, - 20527: 0x97A7, - 20528: 0x97A8, - 20529: 0x97A9, - 20530: 0x97AA, - 20531: 0x97AC, - 20532: 0x97AE, - 20533: 0x97B0, - 20534: 0x97B1, - 20535: 0x97B3, - 20536: 0x97B5, - 20537: 0x97B6, - 20538: 0x97B7, - 20539: 0x97B8, - 20540: 0x97B9, - 20541: 0x97BA, - 20542: 0x97BB, - 20543: 0x97BC, - 20544: 0x97BD, - 20545: 0x97BE, - 20546: 0x97BF, - 20547: 0x97C0, - 20548: 0x97C1, - 20549: 0x97C2, - 20550: 0x97C3, - 20551: 0x97C4, - 20552: 0x97C5, - 20553: 0x97C6, - 20554: 0x97C7, - 20555: 0x97C8, - 20556: 0x97C9, - 20557: 0x97CA, - 20558: 0x97CB, - 20559: 0x97CC, - 20560: 0x97CD, - 20561: 0x97CE, - 20562: 0x97CF, - 20563: 0x97D0, - 20564: 0x97D1, - 20565: 0x97D2, - 20566: 0x97D3, - 20567: 0x97D4, - 20568: 0x97D5, - 20569: 0x97D6, - 20570: 0x97D7, - 20571: 0x97D8, - 20572: 0x97D9, - 20573: 0x97DA, - 20574: 0x97DB, - 20575: 0x97DC, - 20576: 0x97DD, - 20577: 0x97DE, - 20578: 0x97DF, - 20579: 0x97E0, - 20580: 0x97E1, - 20581: 0x97E2, - 20582: 0x97E3, - 20583: 0x97E4, - 20584: 0x97E5, - 20585: 0x97E8, - 20586: 0x97EE, - 20587: 0x97EF, - 20588: 0x97F0, - 20589: 0x97F1, - 20590: 0x97F2, - 20591: 0x97F4, - 20592: 0x97F7, - 20593: 0x97F8, - 20594: 0x97F9, - 20595: 0x97FA, - 20596: 0x97FB, - 20597: 0x97FC, - 20598: 0x97FD, - 20599: 0x97FE, - 20600: 0x97FF, - 20601: 0x9800, - 20602: 0x9801, - 20603: 0x9802, - 20604: 0x9803, - 20605: 0x9804, - 20606: 0x9805, - 20607: 0x9806, - 20608: 0x9807, - 20609: 0x9808, - 20610: 0x9809, - 20611: 0x980A, - 20612: 0x980B, - 20613: 0x980C, - 20614: 0x980D, - 20615: 0x980E, - 20616: 0x603C, - 20617: 0x605D, - 20618: 0x605A, - 20619: 0x6067, - 20620: 0x6041, - 20621: 0x6059, - 20622: 0x6063, - 20623: 0x60AB, - 20624: 0x6106, - 20625: 0x610D, - 20626: 0x615D, - 20627: 0x61A9, - 20628: 0x619D, - 20629: 0x61CB, - 20630: 0x61D1, - 20631: 0x6206, - 20632: 0x8080, - 20633: 0x807F, - 20634: 0x6C93, - 20635: 0x6CF6, - 20636: 0x6DFC, - 20637: 0x77F6, - 20638: 0x77F8, - 20639: 0x7800, - 20640: 0x7809, - 20641: 0x7817, - 20642: 0x7818, - 20643: 0x7811, - 20644: 0x65AB, - 20645: 0x782D, - 20646: 0x781C, - 20647: 0x781D, - 20648: 0x7839, - 20649: 0x783A, - 20650: 0x783B, - 20651: 0x781F, - 20652: 0x783C, - 20653: 0x7825, - 20654: 0x782C, - 20655: 0x7823, - 20656: 0x7829, - 20657: 0x784E, - 20658: 0x786D, - 20659: 0x7856, - 20660: 0x7857, - 20661: 0x7826, - 20662: 0x7850, - 20663: 0x7847, - 20664: 0x784C, - 20665: 0x786A, - 20666: 0x789B, - 20667: 0x7893, - 20668: 0x789A, - 20669: 0x7887, - 20670: 0x789C, - 20671: 0x78A1, - 20672: 0x78A3, - 20673: 0x78B2, - 20674: 0x78B9, - 20675: 0x78A5, - 20676: 0x78D4, - 20677: 0x78D9, - 20678: 0x78C9, - 20679: 0x78EC, - 20680: 0x78F2, - 20681: 0x7905, - 20682: 0x78F4, - 20683: 0x7913, - 20684: 0x7924, - 20685: 0x791E, - 20686: 0x7934, - 20687: 0x9F9B, - 20688: 0x9EF9, - 20689: 0x9EFB, - 20690: 0x9EFC, - 20691: 0x76F1, - 20692: 0x7704, - 20693: 0x770D, - 20694: 0x76F9, - 20695: 0x7707, - 20696: 0x7708, - 20697: 0x771A, - 20698: 0x7722, - 20699: 0x7719, - 20700: 0x772D, - 20701: 0x7726, - 20702: 0x7735, - 20703: 0x7738, - 20704: 0x7750, - 20705: 0x7751, - 20706: 0x7747, - 20707: 0x7743, - 20708: 0x775A, - 20709: 0x7768, - 20710: 0x980F, - 20711: 0x9810, - 20712: 0x9811, - 20713: 0x9812, - 20714: 0x9813, - 20715: 0x9814, - 20716: 0x9815, - 20717: 0x9816, - 20718: 0x9817, - 20719: 0x9818, - 20720: 0x9819, - 20721: 0x981A, - 20722: 0x981B, - 20723: 0x981C, - 20724: 0x981D, - 20725: 0x981E, - 20726: 0x981F, - 20727: 0x9820, - 20728: 0x9821, - 20729: 0x9822, - 20730: 0x9823, - 20731: 0x9824, - 20732: 0x9825, - 20733: 0x9826, - 20734: 0x9827, - 20735: 0x9828, - 20736: 0x9829, - 20737: 0x982A, - 20738: 0x982B, - 20739: 0x982C, - 20740: 0x982D, - 20741: 0x982E, - 20742: 0x982F, - 20743: 0x9830, - 20744: 0x9831, - 20745: 0x9832, - 20746: 0x9833, - 20747: 0x9834, - 20748: 0x9835, - 20749: 0x9836, - 20750: 0x9837, - 20751: 0x9838, - 20752: 0x9839, - 20753: 0x983A, - 20754: 0x983B, - 20755: 0x983C, - 20756: 0x983D, - 20757: 0x983E, - 20758: 0x983F, - 20759: 0x9840, - 20760: 0x9841, - 20761: 0x9842, - 20762: 0x9843, - 20763: 0x9844, - 20764: 0x9845, - 20765: 0x9846, - 20766: 0x9847, - 20767: 0x9848, - 20768: 0x9849, - 20769: 0x984A, - 20770: 0x984B, - 20771: 0x984C, - 20772: 0x984D, - 20773: 0x984E, - 20774: 0x984F, - 20775: 0x9850, - 20776: 0x9851, - 20777: 0x9852, - 20778: 0x9853, - 20779: 0x9854, - 20780: 0x9855, - 20781: 0x9856, - 20782: 0x9857, - 20783: 0x9858, - 20784: 0x9859, - 20785: 0x985A, - 20786: 0x985B, - 20787: 0x985C, - 20788: 0x985D, - 20789: 0x985E, - 20790: 0x985F, - 20791: 0x9860, - 20792: 0x9861, - 20793: 0x9862, - 20794: 0x9863, - 20795: 0x9864, - 20796: 0x9865, - 20797: 0x9866, - 20798: 0x9867, - 20799: 0x9868, - 20800: 0x9869, - 20801: 0x986A, - 20802: 0x986B, - 20803: 0x986C, - 20804: 0x986D, - 20805: 0x986E, - 20806: 0x7762, - 20807: 0x7765, - 20808: 0x777F, - 20809: 0x778D, - 20810: 0x777D, - 20811: 0x7780, - 20812: 0x778C, - 20813: 0x7791, - 20814: 0x779F, - 20815: 0x77A0, - 20816: 0x77B0, - 20817: 0x77B5, - 20818: 0x77BD, - 20819: 0x753A, - 20820: 0x7540, - 20821: 0x754E, - 20822: 0x754B, - 20823: 0x7548, - 20824: 0x755B, - 20825: 0x7572, - 20826: 0x7579, - 20827: 0x7583, - 20828: 0x7F58, - 20829: 0x7F61, - 20830: 0x7F5F, - 20831: 0x8A48, - 20832: 0x7F68, - 20833: 0x7F74, - 20834: 0x7F71, - 20835: 0x7F79, - 20836: 0x7F81, - 20837: 0x7F7E, - 20838: 0x76CD, - 20839: 0x76E5, - 20840: 0x8832, - 20841: 0x9485, - 20842: 0x9486, - 20843: 0x9487, - 20844: 0x948B, - 20845: 0x948A, - 20846: 0x948C, - 20847: 0x948D, - 20848: 0x948F, - 20849: 0x9490, - 20850: 0x9494, - 20851: 0x9497, - 20852: 0x9495, - 20853: 0x949A, - 20854: 0x949B, - 20855: 0x949C, - 20856: 0x94A3, - 20857: 0x94A4, - 20858: 0x94AB, - 20859: 0x94AA, - 20860: 0x94AD, - 20861: 0x94AC, - 20862: 0x94AF, - 20863: 0x94B0, - 20864: 0x94B2, - 20865: 0x94B4, - 20866: 0x94B6, - 20867: 0x94B7, - 20868: 0x94B8, - 20869: 0x94B9, - 20870: 0x94BA, - 20871: 0x94BC, - 20872: 0x94BD, - 20873: 0x94BF, - 20874: 0x94C4, - 20875: 0x94C8, - 20876: 0x94C9, - 20877: 0x94CA, - 20878: 0x94CB, - 20879: 0x94CC, - 20880: 0x94CD, - 20881: 0x94CE, - 20882: 0x94D0, - 20883: 0x94D1, - 20884: 0x94D2, - 20885: 0x94D5, - 20886: 0x94D6, - 20887: 0x94D7, - 20888: 0x94D9, - 20889: 0x94D8, - 20890: 0x94DB, - 20891: 0x94DE, - 20892: 0x94DF, - 20893: 0x94E0, - 20894: 0x94E2, - 20895: 0x94E4, - 20896: 0x94E5, - 20897: 0x94E7, - 20898: 0x94E8, - 20899: 0x94EA, - 20900: 0x986F, - 20901: 0x9870, - 20902: 0x9871, - 20903: 0x9872, - 20904: 0x9873, - 20905: 0x9874, - 20906: 0x988B, - 20907: 0x988E, - 20908: 0x9892, - 20909: 0x9895, - 20910: 0x9899, - 20911: 0x98A3, - 20912: 0x98A8, - 20913: 0x98A9, - 20914: 0x98AA, - 20915: 0x98AB, - 20916: 0x98AC, - 20917: 0x98AD, - 20918: 0x98AE, - 20919: 0x98AF, - 20920: 0x98B0, - 20921: 0x98B1, - 20922: 0x98B2, - 20923: 0x98B3, - 20924: 0x98B4, - 20925: 0x98B5, - 20926: 0x98B6, - 20927: 0x98B7, - 20928: 0x98B8, - 20929: 0x98B9, - 20930: 0x98BA, - 20931: 0x98BB, - 20932: 0x98BC, - 20933: 0x98BD, - 20934: 0x98BE, - 20935: 0x98BF, - 20936: 0x98C0, - 20937: 0x98C1, - 20938: 0x98C2, - 20939: 0x98C3, - 20940: 0x98C4, - 20941: 0x98C5, - 20942: 0x98C6, - 20943: 0x98C7, - 20944: 0x98C8, - 20945: 0x98C9, - 20946: 0x98CA, - 20947: 0x98CB, - 20948: 0x98CC, - 20949: 0x98CD, - 20950: 0x98CF, - 20951: 0x98D0, - 20952: 0x98D4, - 20953: 0x98D6, - 20954: 0x98D7, - 20955: 0x98DB, - 20956: 0x98DC, - 20957: 0x98DD, - 20958: 0x98E0, - 20959: 0x98E1, - 20960: 0x98E2, - 20961: 0x98E3, - 20962: 0x98E4, - 20963: 0x98E5, - 20964: 0x98E6, - 20965: 0x98E9, - 20966: 0x98EA, - 20967: 0x98EB, - 20968: 0x98EC, - 20969: 0x98ED, - 20970: 0x98EE, - 20971: 0x98EF, - 20972: 0x98F0, - 20973: 0x98F1, - 20974: 0x98F2, - 20975: 0x98F3, - 20976: 0x98F4, - 20977: 0x98F5, - 20978: 0x98F6, - 20979: 0x98F7, - 20980: 0x98F8, - 20981: 0x98F9, - 20982: 0x98FA, - 20983: 0x98FB, - 20984: 0x98FC, - 20985: 0x98FD, - 20986: 0x98FE, - 20987: 0x98FF, - 20988: 0x9900, - 20989: 0x9901, - 20990: 0x9902, - 20991: 0x9903, - 20992: 0x9904, - 20993: 0x9905, - 20994: 0x9906, - 20995: 0x9907, - 20996: 0x94E9, - 20997: 0x94EB, - 20998: 0x94EE, - 20999: 0x94EF, - 21000: 0x94F3, - 21001: 0x94F4, - 21002: 0x94F5, - 21003: 0x94F7, - 21004: 0x94F9, - 21005: 0x94FC, - 21006: 0x94FD, - 21007: 0x94FF, - 21008: 0x9503, - 21009: 0x9502, - 21010: 0x9506, - 21011: 0x9507, - 21012: 0x9509, - 21013: 0x950A, - 21014: 0x950D, - 21015: 0x950E, - 21016: 0x950F, - 21017: 0x9512, - 21018: 0x9513, - 21019: 0x9514, - 21020: 0x9515, - 21021: 0x9516, - 21022: 0x9518, - 21023: 0x951B, - 21024: 0x951D, - 21025: 0x951E, - 21026: 0x951F, - 21027: 0x9522, - 21028: 0x952A, - 21029: 0x952B, - 21030: 0x9529, - 21031: 0x952C, - 21032: 0x9531, - 21033: 0x9532, - 21034: 0x9534, - 21035: 0x9536, - 21036: 0x9537, - 21037: 0x9538, - 21038: 0x953C, - 21039: 0x953E, - 21040: 0x953F, - 21041: 0x9542, - 21042: 0x9535, - 21043: 0x9544, - 21044: 0x9545, - 21045: 0x9546, - 21046: 0x9549, - 21047: 0x954C, - 21048: 0x954E, - 21049: 0x954F, - 21050: 0x9552, - 21051: 0x9553, - 21052: 0x9554, - 21053: 0x9556, - 21054: 0x9557, - 21055: 0x9558, - 21056: 0x9559, - 21057: 0x955B, - 21058: 0x955E, - 21059: 0x955F, - 21060: 0x955D, - 21061: 0x9561, - 21062: 0x9562, - 21063: 0x9564, - 21064: 0x9565, - 21065: 0x9566, - 21066: 0x9567, - 21067: 0x9568, - 21068: 0x9569, - 21069: 0x956A, - 21070: 0x956B, - 21071: 0x956C, - 21072: 0x956F, - 21073: 0x9571, - 21074: 0x9572, - 21075: 0x9573, - 21076: 0x953A, - 21077: 0x77E7, - 21078: 0x77EC, - 21079: 0x96C9, - 21080: 0x79D5, - 21081: 0x79ED, - 21082: 0x79E3, - 21083: 0x79EB, - 21084: 0x7A06, - 21085: 0x5D47, - 21086: 0x7A03, - 21087: 0x7A02, - 21088: 0x7A1E, - 21089: 0x7A14, - 21090: 0x9908, - 21091: 0x9909, - 21092: 0x990A, - 21093: 0x990B, - 21094: 0x990C, - 21095: 0x990E, - 21096: 0x990F, - 21097: 0x9911, - 21098: 0x9912, - 21099: 0x9913, - 21100: 0x9914, - 21101: 0x9915, - 21102: 0x9916, - 21103: 0x9917, - 21104: 0x9918, - 21105: 0x9919, - 21106: 0x991A, - 21107: 0x991B, - 21108: 0x991C, - 21109: 0x991D, - 21110: 0x991E, - 21111: 0x991F, - 21112: 0x9920, - 21113: 0x9921, - 21114: 0x9922, - 21115: 0x9923, - 21116: 0x9924, - 21117: 0x9925, - 21118: 0x9926, - 21119: 0x9927, - 21120: 0x9928, - 21121: 0x9929, - 21122: 0x992A, - 21123: 0x992B, - 21124: 0x992C, - 21125: 0x992D, - 21126: 0x992F, - 21127: 0x9930, - 21128: 0x9931, - 21129: 0x9932, - 21130: 0x9933, - 21131: 0x9934, - 21132: 0x9935, - 21133: 0x9936, - 21134: 0x9937, - 21135: 0x9938, - 21136: 0x9939, - 21137: 0x993A, - 21138: 0x993B, - 21139: 0x993C, - 21140: 0x993D, - 21141: 0x993E, - 21142: 0x993F, - 21143: 0x9940, - 21144: 0x9941, - 21145: 0x9942, - 21146: 0x9943, - 21147: 0x9944, - 21148: 0x9945, - 21149: 0x9946, - 21150: 0x9947, - 21151: 0x9948, - 21152: 0x9949, - 21153: 0x994A, - 21154: 0x994B, - 21155: 0x994C, - 21156: 0x994D, - 21157: 0x994E, - 21158: 0x994F, - 21159: 0x9950, - 21160: 0x9951, - 21161: 0x9952, - 21162: 0x9953, - 21163: 0x9956, - 21164: 0x9957, - 21165: 0x9958, - 21166: 0x9959, - 21167: 0x995A, - 21168: 0x995B, - 21169: 0x995C, - 21170: 0x995D, - 21171: 0x995E, - 21172: 0x995F, - 21173: 0x9960, - 21174: 0x9961, - 21175: 0x9962, - 21176: 0x9964, - 21177: 0x9966, - 21178: 0x9973, - 21179: 0x9978, - 21180: 0x9979, - 21181: 0x997B, - 21182: 0x997E, - 21183: 0x9982, - 21184: 0x9983, - 21185: 0x9989, - 21186: 0x7A39, - 21187: 0x7A37, - 21188: 0x7A51, - 21189: 0x9ECF, - 21190: 0x99A5, - 21191: 0x7A70, - 21192: 0x7688, - 21193: 0x768E, - 21194: 0x7693, - 21195: 0x7699, - 21196: 0x76A4, - 21197: 0x74DE, - 21198: 0x74E0, - 21199: 0x752C, - 21200: 0x9E20, - 21201: 0x9E22, - 21202: 0x9E28, - 21203: 0x9E29, - 21204: 0x9E2A, - 21205: 0x9E2B, - 21206: 0x9E2C, - 21207: 0x9E32, - 21208: 0x9E31, - 21209: 0x9E36, - 21210: 0x9E38, - 21211: 0x9E37, - 21212: 0x9E39, - 21213: 0x9E3A, - 21214: 0x9E3E, - 21215: 0x9E41, - 21216: 0x9E42, - 21217: 0x9E44, - 21218: 0x9E46, - 21219: 0x9E47, - 21220: 0x9E48, - 21221: 0x9E49, - 21222: 0x9E4B, - 21223: 0x9E4C, - 21224: 0x9E4E, - 21225: 0x9E51, - 21226: 0x9E55, - 21227: 0x9E57, - 21228: 0x9E5A, - 21229: 0x9E5B, - 21230: 0x9E5C, - 21231: 0x9E5E, - 21232: 0x9E63, - 21233: 0x9E66, - 21234: 0x9E67, - 21235: 0x9E68, - 21236: 0x9E69, - 21237: 0x9E6A, - 21238: 0x9E6B, - 21239: 0x9E6C, - 21240: 0x9E71, - 21241: 0x9E6D, - 21242: 0x9E73, - 21243: 0x7592, - 21244: 0x7594, - 21245: 0x7596, - 21246: 0x75A0, - 21247: 0x759D, - 21248: 0x75AC, - 21249: 0x75A3, - 21250: 0x75B3, - 21251: 0x75B4, - 21252: 0x75B8, - 21253: 0x75C4, - 21254: 0x75B1, - 21255: 0x75B0, - 21256: 0x75C3, - 21257: 0x75C2, - 21258: 0x75D6, - 21259: 0x75CD, - 21260: 0x75E3, - 21261: 0x75E8, - 21262: 0x75E6, - 21263: 0x75E4, - 21264: 0x75EB, - 21265: 0x75E7, - 21266: 0x7603, - 21267: 0x75F1, - 21268: 0x75FC, - 21269: 0x75FF, - 21270: 0x7610, - 21271: 0x7600, - 21272: 0x7605, - 21273: 0x760C, - 21274: 0x7617, - 21275: 0x760A, - 21276: 0x7625, - 21277: 0x7618, - 21278: 0x7615, - 21279: 0x7619, - 21280: 0x998C, - 21281: 0x998E, - 21282: 0x999A, - 21283: 0x999B, - 21284: 0x999C, - 21285: 0x999D, - 21286: 0x999E, - 21287: 0x999F, - 21288: 0x99A0, - 21289: 0x99A1, - 21290: 0x99A2, - 21291: 0x99A3, - 21292: 0x99A4, - 21293: 0x99A6, - 21294: 0x99A7, - 21295: 0x99A9, - 21296: 0x99AA, - 21297: 0x99AB, - 21298: 0x99AC, - 21299: 0x99AD, - 21300: 0x99AE, - 21301: 0x99AF, - 21302: 0x99B0, - 21303: 0x99B1, - 21304: 0x99B2, - 21305: 0x99B3, - 21306: 0x99B4, - 21307: 0x99B5, - 21308: 0x99B6, - 21309: 0x99B7, - 21310: 0x99B8, - 21311: 0x99B9, - 21312: 0x99BA, - 21313: 0x99BB, - 21314: 0x99BC, - 21315: 0x99BD, - 21316: 0x99BE, - 21317: 0x99BF, - 21318: 0x99C0, - 21319: 0x99C1, - 21320: 0x99C2, - 21321: 0x99C3, - 21322: 0x99C4, - 21323: 0x99C5, - 21324: 0x99C6, - 21325: 0x99C7, - 21326: 0x99C8, - 21327: 0x99C9, - 21328: 0x99CA, - 21329: 0x99CB, - 21330: 0x99CC, - 21331: 0x99CD, - 21332: 0x99CE, - 21333: 0x99CF, - 21334: 0x99D0, - 21335: 0x99D1, - 21336: 0x99D2, - 21337: 0x99D3, - 21338: 0x99D4, - 21339: 0x99D5, - 21340: 0x99D6, - 21341: 0x99D7, - 21342: 0x99D8, - 21343: 0x99D9, - 21344: 0x99DA, - 21345: 0x99DB, - 21346: 0x99DC, - 21347: 0x99DD, - 21348: 0x99DE, - 21349: 0x99DF, - 21350: 0x99E0, - 21351: 0x99E1, - 21352: 0x99E2, - 21353: 0x99E3, - 21354: 0x99E4, - 21355: 0x99E5, - 21356: 0x99E6, - 21357: 0x99E7, - 21358: 0x99E8, - 21359: 0x99E9, - 21360: 0x99EA, - 21361: 0x99EB, - 21362: 0x99EC, - 21363: 0x99ED, - 21364: 0x99EE, - 21365: 0x99EF, - 21366: 0x99F0, - 21367: 0x99F1, - 21368: 0x99F2, - 21369: 0x99F3, - 21370: 0x99F4, - 21371: 0x99F5, - 21372: 0x99F6, - 21373: 0x99F7, - 21374: 0x99F8, - 21375: 0x99F9, - 21376: 0x761B, - 21377: 0x763C, - 21378: 0x7622, - 21379: 0x7620, - 21380: 0x7640, - 21381: 0x762D, - 21382: 0x7630, - 21383: 0x763F, - 21384: 0x7635, - 21385: 0x7643, - 21386: 0x763E, - 21387: 0x7633, - 21388: 0x764D, - 21389: 0x765E, - 21390: 0x7654, - 21391: 0x765C, - 21392: 0x7656, - 21393: 0x766B, - 21394: 0x766F, - 21395: 0x7FCA, - 21396: 0x7AE6, - 21397: 0x7A78, - 21398: 0x7A79, - 21399: 0x7A80, - 21400: 0x7A86, - 21401: 0x7A88, - 21402: 0x7A95, - 21403: 0x7AA6, - 21404: 0x7AA0, - 21405: 0x7AAC, - 21406: 0x7AA8, - 21407: 0x7AAD, - 21408: 0x7AB3, - 21409: 0x8864, - 21410: 0x8869, - 21411: 0x8872, - 21412: 0x887D, - 21413: 0x887F, - 21414: 0x8882, - 21415: 0x88A2, - 21416: 0x88C6, - 21417: 0x88B7, - 21418: 0x88BC, - 21419: 0x88C9, - 21420: 0x88E2, - 21421: 0x88CE, - 21422: 0x88E3, - 21423: 0x88E5, - 21424: 0x88F1, - 21425: 0x891A, - 21426: 0x88FC, - 21427: 0x88E8, - 21428: 0x88FE, - 21429: 0x88F0, - 21430: 0x8921, - 21431: 0x8919, - 21432: 0x8913, - 21433: 0x891B, - 21434: 0x890A, - 21435: 0x8934, - 21436: 0x892B, - 21437: 0x8936, - 21438: 0x8941, - 21439: 0x8966, - 21440: 0x897B, - 21441: 0x758B, - 21442: 0x80E5, - 21443: 0x76B2, - 21444: 0x76B4, - 21445: 0x77DC, - 21446: 0x8012, - 21447: 0x8014, - 21448: 0x8016, - 21449: 0x801C, - 21450: 0x8020, - 21451: 0x8022, - 21452: 0x8025, - 21453: 0x8026, - 21454: 0x8027, - 21455: 0x8029, - 21456: 0x8028, - 21457: 0x8031, - 21458: 0x800B, - 21459: 0x8035, - 21460: 0x8043, - 21461: 0x8046, - 21462: 0x804D, - 21463: 0x8052, - 21464: 0x8069, - 21465: 0x8071, - 21466: 0x8983, - 21467: 0x9878, - 21468: 0x9880, - 21469: 0x9883, - 21470: 0x99FA, - 21471: 0x99FB, - 21472: 0x99FC, - 21473: 0x99FD, - 21474: 0x99FE, - 21475: 0x99FF, - 21476: 0x9A00, - 21477: 0x9A01, - 21478: 0x9A02, - 21479: 0x9A03, - 21480: 0x9A04, - 21481: 0x9A05, - 21482: 0x9A06, - 21483: 0x9A07, - 21484: 0x9A08, - 21485: 0x9A09, - 21486: 0x9A0A, - 21487: 0x9A0B, - 21488: 0x9A0C, - 21489: 0x9A0D, - 21490: 0x9A0E, - 21491: 0x9A0F, - 21492: 0x9A10, - 21493: 0x9A11, - 21494: 0x9A12, - 21495: 0x9A13, - 21496: 0x9A14, - 21497: 0x9A15, - 21498: 0x9A16, - 21499: 0x9A17, - 21500: 0x9A18, - 21501: 0x9A19, - 21502: 0x9A1A, - 21503: 0x9A1B, - 21504: 0x9A1C, - 21505: 0x9A1D, - 21506: 0x9A1E, - 21507: 0x9A1F, - 21508: 0x9A20, - 21509: 0x9A21, - 21510: 0x9A22, - 21511: 0x9A23, - 21512: 0x9A24, - 21513: 0x9A25, - 21514: 0x9A26, - 21515: 0x9A27, - 21516: 0x9A28, - 21517: 0x9A29, - 21518: 0x9A2A, - 21519: 0x9A2B, - 21520: 0x9A2C, - 21521: 0x9A2D, - 21522: 0x9A2E, - 21523: 0x9A2F, - 21524: 0x9A30, - 21525: 0x9A31, - 21526: 0x9A32, - 21527: 0x9A33, - 21528: 0x9A34, - 21529: 0x9A35, - 21530: 0x9A36, - 21531: 0x9A37, - 21532: 0x9A38, - 21533: 0x9A39, - 21534: 0x9A3A, - 21535: 0x9A3B, - 21536: 0x9A3C, - 21537: 0x9A3D, - 21538: 0x9A3E, - 21539: 0x9A3F, - 21540: 0x9A40, - 21541: 0x9A41, - 21542: 0x9A42, - 21543: 0x9A43, - 21544: 0x9A44, - 21545: 0x9A45, - 21546: 0x9A46, - 21547: 0x9A47, - 21548: 0x9A48, - 21549: 0x9A49, - 21550: 0x9A4A, - 21551: 0x9A4B, - 21552: 0x9A4C, - 21553: 0x9A4D, - 21554: 0x9A4E, - 21555: 0x9A4F, - 21556: 0x9A50, - 21557: 0x9A51, - 21558: 0x9A52, - 21559: 0x9A53, - 21560: 0x9A54, - 21561: 0x9A55, - 21562: 0x9A56, - 21563: 0x9A57, - 21564: 0x9A58, - 21565: 0x9A59, - 21566: 0x9889, - 21567: 0x988C, - 21568: 0x988D, - 21569: 0x988F, - 21570: 0x9894, - 21571: 0x989A, - 21572: 0x989B, - 21573: 0x989E, - 21574: 0x989F, - 21575: 0x98A1, - 21576: 0x98A2, - 21577: 0x98A5, - 21578: 0x98A6, - 21579: 0x864D, - 21580: 0x8654, - 21581: 0x866C, - 21582: 0x866E, - 21583: 0x867F, - 21584: 0x867A, - 21585: 0x867C, - 21586: 0x867B, - 21587: 0x86A8, - 21588: 0x868D, - 21589: 0x868B, - 21590: 0x86AC, - 21591: 0x869D, - 21592: 0x86A7, - 21593: 0x86A3, - 21594: 0x86AA, - 21595: 0x8693, - 21596: 0x86A9, - 21597: 0x86B6, - 21598: 0x86C4, - 21599: 0x86B5, - 21600: 0x86CE, - 21601: 0x86B0, - 21602: 0x86BA, - 21603: 0x86B1, - 21604: 0x86AF, - 21605: 0x86C9, - 21606: 0x86CF, - 21607: 0x86B4, - 21608: 0x86E9, - 21609: 0x86F1, - 21610: 0x86F2, - 21611: 0x86ED, - 21612: 0x86F3, - 21613: 0x86D0, - 21614: 0x8713, - 21615: 0x86DE, - 21616: 0x86F4, - 21617: 0x86DF, - 21618: 0x86D8, - 21619: 0x86D1, - 21620: 0x8703, - 21621: 0x8707, - 21622: 0x86F8, - 21623: 0x8708, - 21624: 0x870A, - 21625: 0x870D, - 21626: 0x8709, - 21627: 0x8723, - 21628: 0x873B, - 21629: 0x871E, - 21630: 0x8725, - 21631: 0x872E, - 21632: 0x871A, - 21633: 0x873E, - 21634: 0x8748, - 21635: 0x8734, - 21636: 0x8731, - 21637: 0x8729, - 21638: 0x8737, - 21639: 0x873F, - 21640: 0x8782, - 21641: 0x8722, - 21642: 0x877D, - 21643: 0x877E, - 21644: 0x877B, - 21645: 0x8760, - 21646: 0x8770, - 21647: 0x874C, - 21648: 0x876E, - 21649: 0x878B, - 21650: 0x8753, - 21651: 0x8763, - 21652: 0x877C, - 21653: 0x8764, - 21654: 0x8759, - 21655: 0x8765, - 21656: 0x8793, - 21657: 0x87AF, - 21658: 0x87A8, - 21659: 0x87D2, - 21660: 0x9A5A, - 21661: 0x9A5B, - 21662: 0x9A5C, - 21663: 0x9A5D, - 21664: 0x9A5E, - 21665: 0x9A5F, - 21666: 0x9A60, - 21667: 0x9A61, - 21668: 0x9A62, - 21669: 0x9A63, - 21670: 0x9A64, - 21671: 0x9A65, - 21672: 0x9A66, - 21673: 0x9A67, - 21674: 0x9A68, - 21675: 0x9A69, - 21676: 0x9A6A, - 21677: 0x9A6B, - 21678: 0x9A72, - 21679: 0x9A83, - 21680: 0x9A89, - 21681: 0x9A8D, - 21682: 0x9A8E, - 21683: 0x9A94, - 21684: 0x9A95, - 21685: 0x9A99, - 21686: 0x9AA6, - 21687: 0x9AA9, - 21688: 0x9AAA, - 21689: 0x9AAB, - 21690: 0x9AAC, - 21691: 0x9AAD, - 21692: 0x9AAE, - 21693: 0x9AAF, - 21694: 0x9AB2, - 21695: 0x9AB3, - 21696: 0x9AB4, - 21697: 0x9AB5, - 21698: 0x9AB9, - 21699: 0x9ABB, - 21700: 0x9ABD, - 21701: 0x9ABE, - 21702: 0x9ABF, - 21703: 0x9AC3, - 21704: 0x9AC4, - 21705: 0x9AC6, - 21706: 0x9AC7, - 21707: 0x9AC8, - 21708: 0x9AC9, - 21709: 0x9ACA, - 21710: 0x9ACD, - 21711: 0x9ACE, - 21712: 0x9ACF, - 21713: 0x9AD0, - 21714: 0x9AD2, - 21715: 0x9AD4, - 21716: 0x9AD5, - 21717: 0x9AD6, - 21718: 0x9AD7, - 21719: 0x9AD9, - 21720: 0x9ADA, - 21721: 0x9ADB, - 21722: 0x9ADC, - 21723: 0x9ADD, - 21724: 0x9ADE, - 21725: 0x9AE0, - 21726: 0x9AE2, - 21727: 0x9AE3, - 21728: 0x9AE4, - 21729: 0x9AE5, - 21730: 0x9AE7, - 21731: 0x9AE8, - 21732: 0x9AE9, - 21733: 0x9AEA, - 21734: 0x9AEC, - 21735: 0x9AEE, - 21736: 0x9AF0, - 21737: 0x9AF1, - 21738: 0x9AF2, - 21739: 0x9AF3, - 21740: 0x9AF4, - 21741: 0x9AF5, - 21742: 0x9AF6, - 21743: 0x9AF7, - 21744: 0x9AF8, - 21745: 0x9AFA, - 21746: 0x9AFC, - 21747: 0x9AFD, - 21748: 0x9AFE, - 21749: 0x9AFF, - 21750: 0x9B00, - 21751: 0x9B01, - 21752: 0x9B02, - 21753: 0x9B04, - 21754: 0x9B05, - 21755: 0x9B06, - 21756: 0x87C6, - 21757: 0x8788, - 21758: 0x8785, - 21759: 0x87AD, - 21760: 0x8797, - 21761: 0x8783, - 21762: 0x87AB, - 21763: 0x87E5, - 21764: 0x87AC, - 21765: 0x87B5, - 21766: 0x87B3, - 21767: 0x87CB, - 21768: 0x87D3, - 21769: 0x87BD, - 21770: 0x87D1, - 21771: 0x87C0, - 21772: 0x87CA, - 21773: 0x87DB, - 21774: 0x87EA, - 21775: 0x87E0, - 21776: 0x87EE, - 21777: 0x8816, - 21778: 0x8813, - 21779: 0x87FE, - 21780: 0x880A, - 21781: 0x881B, - 21782: 0x8821, - 21783: 0x8839, - 21784: 0x883C, - 21785: 0x7F36, - 21786: 0x7F42, - 21787: 0x7F44, - 21788: 0x7F45, - 21789: 0x8210, - 21790: 0x7AFA, - 21791: 0x7AFD, - 21792: 0x7B08, - 21793: 0x7B03, - 21794: 0x7B04, - 21795: 0x7B15, - 21796: 0x7B0A, - 21797: 0x7B2B, - 21798: 0x7B0F, - 21799: 0x7B47, - 21800: 0x7B38, - 21801: 0x7B2A, - 21802: 0x7B19, - 21803: 0x7B2E, - 21804: 0x7B31, - 21805: 0x7B20, - 21806: 0x7B25, - 21807: 0x7B24, - 21808: 0x7B33, - 21809: 0x7B3E, - 21810: 0x7B1E, - 21811: 0x7B58, - 21812: 0x7B5A, - 21813: 0x7B45, - 21814: 0x7B75, - 21815: 0x7B4C, - 21816: 0x7B5D, - 21817: 0x7B60, - 21818: 0x7B6E, - 21819: 0x7B7B, - 21820: 0x7B62, - 21821: 0x7B72, - 21822: 0x7B71, - 21823: 0x7B90, - 21824: 0x7BA6, - 21825: 0x7BA7, - 21826: 0x7BB8, - 21827: 0x7BAC, - 21828: 0x7B9D, - 21829: 0x7BA8, - 21830: 0x7B85, - 21831: 0x7BAA, - 21832: 0x7B9C, - 21833: 0x7BA2, - 21834: 0x7BAB, - 21835: 0x7BB4, - 21836: 0x7BD1, - 21837: 0x7BC1, - 21838: 0x7BCC, - 21839: 0x7BDD, - 21840: 0x7BDA, - 21841: 0x7BE5, - 21842: 0x7BE6, - 21843: 0x7BEA, - 21844: 0x7C0C, - 21845: 0x7BFE, - 21846: 0x7BFC, - 21847: 0x7C0F, - 21848: 0x7C16, - 21849: 0x7C0B, - 21850: 0x9B07, - 21851: 0x9B09, - 21852: 0x9B0A, - 21853: 0x9B0B, - 21854: 0x9B0C, - 21855: 0x9B0D, - 21856: 0x9B0E, - 21857: 0x9B10, - 21858: 0x9B11, - 21859: 0x9B12, - 21860: 0x9B14, - 21861: 0x9B15, - 21862: 0x9B16, - 21863: 0x9B17, - 21864: 0x9B18, - 21865: 0x9B19, - 21866: 0x9B1A, - 21867: 0x9B1B, - 21868: 0x9B1C, - 21869: 0x9B1D, - 21870: 0x9B1E, - 21871: 0x9B20, - 21872: 0x9B21, - 21873: 0x9B22, - 21874: 0x9B24, - 21875: 0x9B25, - 21876: 0x9B26, - 21877: 0x9B27, - 21878: 0x9B28, - 21879: 0x9B29, - 21880: 0x9B2A, - 21881: 0x9B2B, - 21882: 0x9B2C, - 21883: 0x9B2D, - 21884: 0x9B2E, - 21885: 0x9B30, - 21886: 0x9B31, - 21887: 0x9B33, - 21888: 0x9B34, - 21889: 0x9B35, - 21890: 0x9B36, - 21891: 0x9B37, - 21892: 0x9B38, - 21893: 0x9B39, - 21894: 0x9B3A, - 21895: 0x9B3D, - 21896: 0x9B3E, - 21897: 0x9B3F, - 21898: 0x9B40, - 21899: 0x9B46, - 21900: 0x9B4A, - 21901: 0x9B4B, - 21902: 0x9B4C, - 21903: 0x9B4E, - 21904: 0x9B50, - 21905: 0x9B52, - 21906: 0x9B53, - 21907: 0x9B55, - 21908: 0x9B56, - 21909: 0x9B57, - 21910: 0x9B58, - 21911: 0x9B59, - 21912: 0x9B5A, - 21913: 0x9B5B, - 21914: 0x9B5C, - 21915: 0x9B5D, - 21916: 0x9B5E, - 21917: 0x9B5F, - 21918: 0x9B60, - 21919: 0x9B61, - 21920: 0x9B62, - 21921: 0x9B63, - 21922: 0x9B64, - 21923: 0x9B65, - 21924: 0x9B66, - 21925: 0x9B67, - 21926: 0x9B68, - 21927: 0x9B69, - 21928: 0x9B6A, - 21929: 0x9B6B, - 21930: 0x9B6C, - 21931: 0x9B6D, - 21932: 0x9B6E, - 21933: 0x9B6F, - 21934: 0x9B70, - 21935: 0x9B71, - 21936: 0x9B72, - 21937: 0x9B73, - 21938: 0x9B74, - 21939: 0x9B75, - 21940: 0x9B76, - 21941: 0x9B77, - 21942: 0x9B78, - 21943: 0x9B79, - 21944: 0x9B7A, - 21945: 0x9B7B, - 21946: 0x7C1F, - 21947: 0x7C2A, - 21948: 0x7C26, - 21949: 0x7C38, - 21950: 0x7C41, - 21951: 0x7C40, - 21952: 0x81FE, - 21953: 0x8201, - 21954: 0x8202, - 21955: 0x8204, - 21956: 0x81EC, - 21957: 0x8844, - 21958: 0x8221, - 21959: 0x8222, - 21960: 0x8223, - 21961: 0x822D, - 21962: 0x822F, - 21963: 0x8228, - 21964: 0x822B, - 21965: 0x8238, - 21966: 0x823B, - 21967: 0x8233, - 21968: 0x8234, - 21969: 0x823E, - 21970: 0x8244, - 21971: 0x8249, - 21972: 0x824B, - 21973: 0x824F, - 21974: 0x825A, - 21975: 0x825F, - 21976: 0x8268, - 21977: 0x887E, - 21978: 0x8885, - 21979: 0x8888, - 21980: 0x88D8, - 21981: 0x88DF, - 21982: 0x895E, - 21983: 0x7F9D, - 21984: 0x7F9F, - 21985: 0x7FA7, - 21986: 0x7FAF, - 21987: 0x7FB0, - 21988: 0x7FB2, - 21989: 0x7C7C, - 21990: 0x6549, - 21991: 0x7C91, - 21992: 0x7C9D, - 21993: 0x7C9C, - 21994: 0x7C9E, - 21995: 0x7CA2, - 21996: 0x7CB2, - 21997: 0x7CBC, - 21998: 0x7CBD, - 21999: 0x7CC1, - 22000: 0x7CC7, - 22001: 0x7CCC, - 22002: 0x7CCD, - 22003: 0x7CC8, - 22004: 0x7CC5, - 22005: 0x7CD7, - 22006: 0x7CE8, - 22007: 0x826E, - 22008: 0x66A8, - 22009: 0x7FBF, - 22010: 0x7FCE, - 22011: 0x7FD5, - 22012: 0x7FE5, - 22013: 0x7FE1, - 22014: 0x7FE6, - 22015: 0x7FE9, - 22016: 0x7FEE, - 22017: 0x7FF3, - 22018: 0x7CF8, - 22019: 0x7D77, - 22020: 0x7DA6, - 22021: 0x7DAE, - 22022: 0x7E47, - 22023: 0x7E9B, - 22024: 0x9EB8, - 22025: 0x9EB4, - 22026: 0x8D73, - 22027: 0x8D84, - 22028: 0x8D94, - 22029: 0x8D91, - 22030: 0x8DB1, - 22031: 0x8D67, - 22032: 0x8D6D, - 22033: 0x8C47, - 22034: 0x8C49, - 22035: 0x914A, - 22036: 0x9150, - 22037: 0x914E, - 22038: 0x914F, - 22039: 0x9164, - 22040: 0x9B7C, - 22041: 0x9B7D, - 22042: 0x9B7E, - 22043: 0x9B7F, - 22044: 0x9B80, - 22045: 0x9B81, - 22046: 0x9B82, - 22047: 0x9B83, - 22048: 0x9B84, - 22049: 0x9B85, - 22050: 0x9B86, - 22051: 0x9B87, - 22052: 0x9B88, - 22053: 0x9B89, - 22054: 0x9B8A, - 22055: 0x9B8B, - 22056: 0x9B8C, - 22057: 0x9B8D, - 22058: 0x9B8E, - 22059: 0x9B8F, - 22060: 0x9B90, - 22061: 0x9B91, - 22062: 0x9B92, - 22063: 0x9B93, - 22064: 0x9B94, - 22065: 0x9B95, - 22066: 0x9B96, - 22067: 0x9B97, - 22068: 0x9B98, - 22069: 0x9B99, - 22070: 0x9B9A, - 22071: 0x9B9B, - 22072: 0x9B9C, - 22073: 0x9B9D, - 22074: 0x9B9E, - 22075: 0x9B9F, - 22076: 0x9BA0, - 22077: 0x9BA1, - 22078: 0x9BA2, - 22079: 0x9BA3, - 22080: 0x9BA4, - 22081: 0x9BA5, - 22082: 0x9BA6, - 22083: 0x9BA7, - 22084: 0x9BA8, - 22085: 0x9BA9, - 22086: 0x9BAA, - 22087: 0x9BAB, - 22088: 0x9BAC, - 22089: 0x9BAD, - 22090: 0x9BAE, - 22091: 0x9BAF, - 22092: 0x9BB0, - 22093: 0x9BB1, - 22094: 0x9BB2, - 22095: 0x9BB3, - 22096: 0x9BB4, - 22097: 0x9BB5, - 22098: 0x9BB6, - 22099: 0x9BB7, - 22100: 0x9BB8, - 22101: 0x9BB9, - 22102: 0x9BBA, - 22103: 0x9BBB, - 22104: 0x9BBC, - 22105: 0x9BBD, - 22106: 0x9BBE, - 22107: 0x9BBF, - 22108: 0x9BC0, - 22109: 0x9BC1, - 22110: 0x9BC2, - 22111: 0x9BC3, - 22112: 0x9BC4, - 22113: 0x9BC5, - 22114: 0x9BC6, - 22115: 0x9BC7, - 22116: 0x9BC8, - 22117: 0x9BC9, - 22118: 0x9BCA, - 22119: 0x9BCB, - 22120: 0x9BCC, - 22121: 0x9BCD, - 22122: 0x9BCE, - 22123: 0x9BCF, - 22124: 0x9BD0, - 22125: 0x9BD1, - 22126: 0x9BD2, - 22127: 0x9BD3, - 22128: 0x9BD4, - 22129: 0x9BD5, - 22130: 0x9BD6, - 22131: 0x9BD7, - 22132: 0x9BD8, - 22133: 0x9BD9, - 22134: 0x9BDA, - 22135: 0x9BDB, - 22136: 0x9162, - 22137: 0x9161, - 22138: 0x9170, - 22139: 0x9169, - 22140: 0x916F, - 22141: 0x917D, - 22142: 0x917E, - 22143: 0x9172, - 22144: 0x9174, - 22145: 0x9179, - 22146: 0x918C, - 22147: 0x9185, - 22148: 0x9190, - 22149: 0x918D, - 22150: 0x9191, - 22151: 0x91A2, - 22152: 0x91A3, - 22153: 0x91AA, - 22154: 0x91AD, - 22155: 0x91AE, - 22156: 0x91AF, - 22157: 0x91B5, - 22158: 0x91B4, - 22159: 0x91BA, - 22160: 0x8C55, - 22161: 0x9E7E, - 22162: 0x8DB8, - 22163: 0x8DEB, - 22164: 0x8E05, - 22165: 0x8E59, - 22166: 0x8E69, - 22167: 0x8DB5, - 22168: 0x8DBF, - 22169: 0x8DBC, - 22170: 0x8DBA, - 22171: 0x8DC4, - 22172: 0x8DD6, - 22173: 0x8DD7, - 22174: 0x8DDA, - 22175: 0x8DDE, - 22176: 0x8DCE, - 22177: 0x8DCF, - 22178: 0x8DDB, - 22179: 0x8DC6, - 22180: 0x8DEC, - 22181: 0x8DF7, - 22182: 0x8DF8, - 22183: 0x8DE3, - 22184: 0x8DF9, - 22185: 0x8DFB, - 22186: 0x8DE4, - 22187: 0x8E09, - 22188: 0x8DFD, - 22189: 0x8E14, - 22190: 0x8E1D, - 22191: 0x8E1F, - 22192: 0x8E2C, - 22193: 0x8E2E, - 22194: 0x8E23, - 22195: 0x8E2F, - 22196: 0x8E3A, - 22197: 0x8E40, - 22198: 0x8E39, - 22199: 0x8E35, - 22200: 0x8E3D, - 22201: 0x8E31, - 22202: 0x8E49, - 22203: 0x8E41, - 22204: 0x8E42, - 22205: 0x8E51, - 22206: 0x8E52, - 22207: 0x8E4A, - 22208: 0x8E70, - 22209: 0x8E76, - 22210: 0x8E7C, - 22211: 0x8E6F, - 22212: 0x8E74, - 22213: 0x8E85, - 22214: 0x8E8F, - 22215: 0x8E94, - 22216: 0x8E90, - 22217: 0x8E9C, - 22218: 0x8E9E, - 22219: 0x8C78, - 22220: 0x8C82, - 22221: 0x8C8A, - 22222: 0x8C85, - 22223: 0x8C98, - 22224: 0x8C94, - 22225: 0x659B, - 22226: 0x89D6, - 22227: 0x89DE, - 22228: 0x89DA, - 22229: 0x89DC, - 22230: 0x9BDC, - 22231: 0x9BDD, - 22232: 0x9BDE, - 22233: 0x9BDF, - 22234: 0x9BE0, - 22235: 0x9BE1, - 22236: 0x9BE2, - 22237: 0x9BE3, - 22238: 0x9BE4, - 22239: 0x9BE5, - 22240: 0x9BE6, - 22241: 0x9BE7, - 22242: 0x9BE8, - 22243: 0x9BE9, - 22244: 0x9BEA, - 22245: 0x9BEB, - 22246: 0x9BEC, - 22247: 0x9BED, - 22248: 0x9BEE, - 22249: 0x9BEF, - 22250: 0x9BF0, - 22251: 0x9BF1, - 22252: 0x9BF2, - 22253: 0x9BF3, - 22254: 0x9BF4, - 22255: 0x9BF5, - 22256: 0x9BF6, - 22257: 0x9BF7, - 22258: 0x9BF8, - 22259: 0x9BF9, - 22260: 0x9BFA, - 22261: 0x9BFB, - 22262: 0x9BFC, - 22263: 0x9BFD, - 22264: 0x9BFE, - 22265: 0x9BFF, - 22266: 0x9C00, - 22267: 0x9C01, - 22268: 0x9C02, - 22269: 0x9C03, - 22270: 0x9C04, - 22271: 0x9C05, - 22272: 0x9C06, - 22273: 0x9C07, - 22274: 0x9C08, - 22275: 0x9C09, - 22276: 0x9C0A, - 22277: 0x9C0B, - 22278: 0x9C0C, - 22279: 0x9C0D, - 22280: 0x9C0E, - 22281: 0x9C0F, - 22282: 0x9C10, - 22283: 0x9C11, - 22284: 0x9C12, - 22285: 0x9C13, - 22286: 0x9C14, - 22287: 0x9C15, - 22288: 0x9C16, - 22289: 0x9C17, - 22290: 0x9C18, - 22291: 0x9C19, - 22292: 0x9C1A, - 22293: 0x9C1B, - 22294: 0x9C1C, - 22295: 0x9C1D, - 22296: 0x9C1E, - 22297: 0x9C1F, - 22298: 0x9C20, - 22299: 0x9C21, - 22300: 0x9C22, - 22301: 0x9C23, - 22302: 0x9C24, - 22303: 0x9C25, - 22304: 0x9C26, - 22305: 0x9C27, - 22306: 0x9C28, - 22307: 0x9C29, - 22308: 0x9C2A, - 22309: 0x9C2B, - 22310: 0x9C2C, - 22311: 0x9C2D, - 22312: 0x9C2E, - 22313: 0x9C2F, - 22314: 0x9C30, - 22315: 0x9C31, - 22316: 0x9C32, - 22317: 0x9C33, - 22318: 0x9C34, - 22319: 0x9C35, - 22320: 0x9C36, - 22321: 0x9C37, - 22322: 0x9C38, - 22323: 0x9C39, - 22324: 0x9C3A, - 22325: 0x9C3B, - 22326: 0x89E5, - 22327: 0x89EB, - 22328: 0x89EF, - 22329: 0x8A3E, - 22330: 0x8B26, - 22331: 0x9753, - 22332: 0x96E9, - 22333: 0x96F3, - 22334: 0x96EF, - 22335: 0x9706, - 22336: 0x9701, - 22337: 0x9708, - 22338: 0x970F, - 22339: 0x970E, - 22340: 0x972A, - 22341: 0x972D, - 22342: 0x9730, - 22343: 0x973E, - 22344: 0x9F80, - 22345: 0x9F83, - 22346: 0x9F85, - 22347: 0x9F86, - 22348: 0x9F87, - 22349: 0x9F88, - 22350: 0x9F89, - 22351: 0x9F8A, - 22352: 0x9F8C, - 22353: 0x9EFE, - 22354: 0x9F0B, - 22355: 0x9F0D, - 22356: 0x96B9, - 22357: 0x96BC, - 22358: 0x96BD, - 22359: 0x96CE, - 22360: 0x96D2, - 22361: 0x77BF, - 22362: 0x96E0, - 22363: 0x928E, - 22364: 0x92AE, - 22365: 0x92C8, - 22366: 0x933E, - 22367: 0x936A, - 22368: 0x93CA, - 22369: 0x938F, - 22370: 0x943E, - 22371: 0x946B, - 22372: 0x9C7F, - 22373: 0x9C82, - 22374: 0x9C85, - 22375: 0x9C86, - 22376: 0x9C87, - 22377: 0x9C88, - 22378: 0x7A23, - 22379: 0x9C8B, - 22380: 0x9C8E, - 22381: 0x9C90, - 22382: 0x9C91, - 22383: 0x9C92, - 22384: 0x9C94, - 22385: 0x9C95, - 22386: 0x9C9A, - 22387: 0x9C9B, - 22388: 0x9C9E, - 22389: 0x9C9F, - 22390: 0x9CA0, - 22391: 0x9CA1, - 22392: 0x9CA2, - 22393: 0x9CA3, - 22394: 0x9CA5, - 22395: 0x9CA6, - 22396: 0x9CA7, - 22397: 0x9CA8, - 22398: 0x9CA9, - 22399: 0x9CAB, - 22400: 0x9CAD, - 22401: 0x9CAE, - 22402: 0x9CB0, - 22403: 0x9CB1, - 22404: 0x9CB2, - 22405: 0x9CB3, - 22406: 0x9CB4, - 22407: 0x9CB5, - 22408: 0x9CB6, - 22409: 0x9CB7, - 22410: 0x9CBA, - 22411: 0x9CBB, - 22412: 0x9CBC, - 22413: 0x9CBD, - 22414: 0x9CC4, - 22415: 0x9CC5, - 22416: 0x9CC6, - 22417: 0x9CC7, - 22418: 0x9CCA, - 22419: 0x9CCB, - 22420: 0x9C3C, - 22421: 0x9C3D, - 22422: 0x9C3E, - 22423: 0x9C3F, - 22424: 0x9C40, - 22425: 0x9C41, - 22426: 0x9C42, - 22427: 0x9C43, - 22428: 0x9C44, - 22429: 0x9C45, - 22430: 0x9C46, - 22431: 0x9C47, - 22432: 0x9C48, - 22433: 0x9C49, - 22434: 0x9C4A, - 22435: 0x9C4B, - 22436: 0x9C4C, - 22437: 0x9C4D, - 22438: 0x9C4E, - 22439: 0x9C4F, - 22440: 0x9C50, - 22441: 0x9C51, - 22442: 0x9C52, - 22443: 0x9C53, - 22444: 0x9C54, - 22445: 0x9C55, - 22446: 0x9C56, - 22447: 0x9C57, - 22448: 0x9C58, - 22449: 0x9C59, - 22450: 0x9C5A, - 22451: 0x9C5B, - 22452: 0x9C5C, - 22453: 0x9C5D, - 22454: 0x9C5E, - 22455: 0x9C5F, - 22456: 0x9C60, - 22457: 0x9C61, - 22458: 0x9C62, - 22459: 0x9C63, - 22460: 0x9C64, - 22461: 0x9C65, - 22462: 0x9C66, - 22463: 0x9C67, - 22464: 0x9C68, - 22465: 0x9C69, - 22466: 0x9C6A, - 22467: 0x9C6B, - 22468: 0x9C6C, - 22469: 0x9C6D, - 22470: 0x9C6E, - 22471: 0x9C6F, - 22472: 0x9C70, - 22473: 0x9C71, - 22474: 0x9C72, - 22475: 0x9C73, - 22476: 0x9C74, - 22477: 0x9C75, - 22478: 0x9C76, - 22479: 0x9C77, - 22480: 0x9C78, - 22481: 0x9C79, - 22482: 0x9C7A, - 22483: 0x9C7B, - 22484: 0x9C7D, - 22485: 0x9C7E, - 22486: 0x9C80, - 22487: 0x9C83, - 22488: 0x9C84, - 22489: 0x9C89, - 22490: 0x9C8A, - 22491: 0x9C8C, - 22492: 0x9C8F, - 22493: 0x9C93, - 22494: 0x9C96, - 22495: 0x9C97, - 22496: 0x9C98, - 22497: 0x9C99, - 22498: 0x9C9D, - 22499: 0x9CAA, - 22500: 0x9CAC, - 22501: 0x9CAF, - 22502: 0x9CB9, - 22503: 0x9CBE, - 22504: 0x9CBF, - 22505: 0x9CC0, - 22506: 0x9CC1, - 22507: 0x9CC2, - 22508: 0x9CC8, - 22509: 0x9CC9, - 22510: 0x9CD1, - 22511: 0x9CD2, - 22512: 0x9CDA, - 22513: 0x9CDB, - 22514: 0x9CE0, - 22515: 0x9CE1, - 22516: 0x9CCC, - 22517: 0x9CCD, - 22518: 0x9CCE, - 22519: 0x9CCF, - 22520: 0x9CD0, - 22521: 0x9CD3, - 22522: 0x9CD4, - 22523: 0x9CD5, - 22524: 0x9CD7, - 22525: 0x9CD8, - 22526: 0x9CD9, - 22527: 0x9CDC, - 22528: 0x9CDD, - 22529: 0x9CDF, - 22530: 0x9CE2, - 22531: 0x977C, - 22532: 0x9785, - 22533: 0x9791, - 22534: 0x9792, - 22535: 0x9794, - 22536: 0x97AF, - 22537: 0x97AB, - 22538: 0x97A3, - 22539: 0x97B2, - 22540: 0x97B4, - 22541: 0x9AB1, - 22542: 0x9AB0, - 22543: 0x9AB7, - 22544: 0x9E58, - 22545: 0x9AB6, - 22546: 0x9ABA, - 22547: 0x9ABC, - 22548: 0x9AC1, - 22549: 0x9AC0, - 22550: 0x9AC5, - 22551: 0x9AC2, - 22552: 0x9ACB, - 22553: 0x9ACC, - 22554: 0x9AD1, - 22555: 0x9B45, - 22556: 0x9B43, - 22557: 0x9B47, - 22558: 0x9B49, - 22559: 0x9B48, - 22560: 0x9B4D, - 22561: 0x9B51, - 22562: 0x98E8, - 22563: 0x990D, - 22564: 0x992E, - 22565: 0x9955, - 22566: 0x9954, - 22567: 0x9ADF, - 22568: 0x9AE1, - 22569: 0x9AE6, - 22570: 0x9AEF, - 22571: 0x9AEB, - 22572: 0x9AFB, - 22573: 0x9AED, - 22574: 0x9AF9, - 22575: 0x9B08, - 22576: 0x9B0F, - 22577: 0x9B13, - 22578: 0x9B1F, - 22579: 0x9B23, - 22580: 0x9EBD, - 22581: 0x9EBE, - 22582: 0x7E3B, - 22583: 0x9E82, - 22584: 0x9E87, - 22585: 0x9E88, - 22586: 0x9E8B, - 22587: 0x9E92, - 22588: 0x93D6, - 22589: 0x9E9D, - 22590: 0x9E9F, - 22591: 0x9EDB, - 22592: 0x9EDC, - 22593: 0x9EDD, - 22594: 0x9EE0, - 22595: 0x9EDF, - 22596: 0x9EE2, - 22597: 0x9EE9, - 22598: 0x9EE7, - 22599: 0x9EE5, - 22600: 0x9EEA, - 22601: 0x9EEF, - 22602: 0x9F22, - 22603: 0x9F2C, - 22604: 0x9F2F, - 22605: 0x9F39, - 22606: 0x9F37, - 22607: 0x9F3D, - 22608: 0x9F3E, - 22609: 0x9F44, - 22610: 0x9CE3, - 22611: 0x9CE4, - 22612: 0x9CE5, - 22613: 0x9CE6, - 22614: 0x9CE7, - 22615: 0x9CE8, - 22616: 0x9CE9, - 22617: 0x9CEA, - 22618: 0x9CEB, - 22619: 0x9CEC, - 22620: 0x9CED, - 22621: 0x9CEE, - 22622: 0x9CEF, - 22623: 0x9CF0, - 22624: 0x9CF1, - 22625: 0x9CF2, - 22626: 0x9CF3, - 22627: 0x9CF4, - 22628: 0x9CF5, - 22629: 0x9CF6, - 22630: 0x9CF7, - 22631: 0x9CF8, - 22632: 0x9CF9, - 22633: 0x9CFA, - 22634: 0x9CFB, - 22635: 0x9CFC, - 22636: 0x9CFD, - 22637: 0x9CFE, - 22638: 0x9CFF, - 22639: 0x9D00, - 22640: 0x9D01, - 22641: 0x9D02, - 22642: 0x9D03, - 22643: 0x9D04, - 22644: 0x9D05, - 22645: 0x9D06, - 22646: 0x9D07, - 22647: 0x9D08, - 22648: 0x9D09, - 22649: 0x9D0A, - 22650: 0x9D0B, - 22651: 0x9D0C, - 22652: 0x9D0D, - 22653: 0x9D0E, - 22654: 0x9D0F, - 22655: 0x9D10, - 22656: 0x9D11, - 22657: 0x9D12, - 22658: 0x9D13, - 22659: 0x9D14, - 22660: 0x9D15, - 22661: 0x9D16, - 22662: 0x9D17, - 22663: 0x9D18, - 22664: 0x9D19, - 22665: 0x9D1A, - 22666: 0x9D1B, - 22667: 0x9D1C, - 22668: 0x9D1D, - 22669: 0x9D1E, - 22670: 0x9D1F, - 22671: 0x9D20, - 22672: 0x9D21, - 22673: 0x9D22, - 22674: 0x9D23, - 22675: 0x9D24, - 22676: 0x9D25, - 22677: 0x9D26, - 22678: 0x9D27, - 22679: 0x9D28, - 22680: 0x9D29, - 22681: 0x9D2A, - 22682: 0x9D2B, - 22683: 0x9D2C, - 22684: 0x9D2D, - 22685: 0x9D2E, - 22686: 0x9D2F, - 22687: 0x9D30, - 22688: 0x9D31, - 22689: 0x9D32, - 22690: 0x9D33, - 22691: 0x9D34, - 22692: 0x9D35, - 22693: 0x9D36, - 22694: 0x9D37, - 22695: 0x9D38, - 22696: 0x9D39, - 22697: 0x9D3A, - 22698: 0x9D3B, - 22699: 0x9D3C, - 22700: 0x9D3D, - 22701: 0x9D3E, - 22702: 0x9D3F, - 22703: 0x9D40, - 22704: 0x9D41, - 22705: 0x9D42, - 22800: 0x9D43, - 22801: 0x9D44, - 22802: 0x9D45, - 22803: 0x9D46, - 22804: 0x9D47, - 22805: 0x9D48, - 22806: 0x9D49, - 22807: 0x9D4A, - 22808: 0x9D4B, - 22809: 0x9D4C, - 22810: 0x9D4D, - 22811: 0x9D4E, - 22812: 0x9D4F, - 22813: 0x9D50, - 22814: 0x9D51, - 22815: 0x9D52, - 22816: 0x9D53, - 22817: 0x9D54, - 22818: 0x9D55, - 22819: 0x9D56, - 22820: 0x9D57, - 22821: 0x9D58, - 22822: 0x9D59, - 22823: 0x9D5A, - 22824: 0x9D5B, - 22825: 0x9D5C, - 22826: 0x9D5D, - 22827: 0x9D5E, - 22828: 0x9D5F, - 22829: 0x9D60, - 22830: 0x9D61, - 22831: 0x9D62, - 22832: 0x9D63, - 22833: 0x9D64, - 22834: 0x9D65, - 22835: 0x9D66, - 22836: 0x9D67, - 22837: 0x9D68, - 22838: 0x9D69, - 22839: 0x9D6A, - 22840: 0x9D6B, - 22841: 0x9D6C, - 22842: 0x9D6D, - 22843: 0x9D6E, - 22844: 0x9D6F, - 22845: 0x9D70, - 22846: 0x9D71, - 22847: 0x9D72, - 22848: 0x9D73, - 22849: 0x9D74, - 22850: 0x9D75, - 22851: 0x9D76, - 22852: 0x9D77, - 22853: 0x9D78, - 22854: 0x9D79, - 22855: 0x9D7A, - 22856: 0x9D7B, - 22857: 0x9D7C, - 22858: 0x9D7D, - 22859: 0x9D7E, - 22860: 0x9D7F, - 22861: 0x9D80, - 22862: 0x9D81, - 22863: 0x9D82, - 22864: 0x9D83, - 22865: 0x9D84, - 22866: 0x9D85, - 22867: 0x9D86, - 22868: 0x9D87, - 22869: 0x9D88, - 22870: 0x9D89, - 22871: 0x9D8A, - 22872: 0x9D8B, - 22873: 0x9D8C, - 22874: 0x9D8D, - 22875: 0x9D8E, - 22876: 0x9D8F, - 22877: 0x9D90, - 22878: 0x9D91, - 22879: 0x9D92, - 22880: 0x9D93, - 22881: 0x9D94, - 22882: 0x9D95, - 22883: 0x9D96, - 22884: 0x9D97, - 22885: 0x9D98, - 22886: 0x9D99, - 22887: 0x9D9A, - 22888: 0x9D9B, - 22889: 0x9D9C, - 22890: 0x9D9D, - 22891: 0x9D9E, - 22892: 0x9D9F, - 22893: 0x9DA0, - 22894: 0x9DA1, - 22895: 0x9DA2, - 22990: 0x9DA3, - 22991: 0x9DA4, - 22992: 0x9DA5, - 22993: 0x9DA6, - 22994: 0x9DA7, - 22995: 0x9DA8, - 22996: 0x9DA9, - 22997: 0x9DAA, - 22998: 0x9DAB, - 22999: 0x9DAC, - 23000: 0x9DAD, - 23001: 0x9DAE, - 23002: 0x9DAF, - 23003: 0x9DB0, - 23004: 0x9DB1, - 23005: 0x9DB2, - 23006: 0x9DB3, - 23007: 0x9DB4, - 23008: 0x9DB5, - 23009: 0x9DB6, - 23010: 0x9DB7, - 23011: 0x9DB8, - 23012: 0x9DB9, - 23013: 0x9DBA, - 23014: 0x9DBB, - 23015: 0x9DBC, - 23016: 0x9DBD, - 23017: 0x9DBE, - 23018: 0x9DBF, - 23019: 0x9DC0, - 23020: 0x9DC1, - 23021: 0x9DC2, - 23022: 0x9DC3, - 23023: 0x9DC4, - 23024: 0x9DC5, - 23025: 0x9DC6, - 23026: 0x9DC7, - 23027: 0x9DC8, - 23028: 0x9DC9, - 23029: 0x9DCA, - 23030: 0x9DCB, - 23031: 0x9DCC, - 23032: 0x9DCD, - 23033: 0x9DCE, - 23034: 0x9DCF, - 23035: 0x9DD0, - 23036: 0x9DD1, - 23037: 0x9DD2, - 23038: 0x9DD3, - 23039: 0x9DD4, - 23040: 0x9DD5, - 23041: 0x9DD6, - 23042: 0x9DD7, - 23043: 0x9DD8, - 23044: 0x9DD9, - 23045: 0x9DDA, - 23046: 0x9DDB, - 23047: 0x9DDC, - 23048: 0x9DDD, - 23049: 0x9DDE, - 23050: 0x9DDF, - 23051: 0x9DE0, - 23052: 0x9DE1, - 23053: 0x9DE2, - 23054: 0x9DE3, - 23055: 0x9DE4, - 23056: 0x9DE5, - 23057: 0x9DE6, - 23058: 0x9DE7, - 23059: 0x9DE8, - 23060: 0x9DE9, - 23061: 0x9DEA, - 23062: 0x9DEB, - 23063: 0x9DEC, - 23064: 0x9DED, - 23065: 0x9DEE, - 23066: 0x9DEF, - 23067: 0x9DF0, - 23068: 0x9DF1, - 23069: 0x9DF2, - 23070: 0x9DF3, - 23071: 0x9DF4, - 23072: 0x9DF5, - 23073: 0x9DF6, - 23074: 0x9DF7, - 23075: 0x9DF8, - 23076: 0x9DF9, - 23077: 0x9DFA, - 23078: 0x9DFB, - 23079: 0x9DFC, - 23080: 0x9DFD, - 23081: 0x9DFE, - 23082: 0x9DFF, - 23083: 0x9E00, - 23084: 0x9E01, - 23085: 0x9E02, - 23180: 0x9E03, - 23181: 0x9E04, - 23182: 0x9E05, - 23183: 0x9E06, - 23184: 0x9E07, - 23185: 0x9E08, - 23186: 0x9E09, - 23187: 0x9E0A, - 23188: 0x9E0B, - 23189: 0x9E0C, - 23190: 0x9E0D, - 23191: 0x9E0E, - 23192: 0x9E0F, - 23193: 0x9E10, - 23194: 0x9E11, - 23195: 0x9E12, - 23196: 0x9E13, - 23197: 0x9E14, - 23198: 0x9E15, - 23199: 0x9E16, - 23200: 0x9E17, - 23201: 0x9E18, - 23202: 0x9E19, - 23203: 0x9E1A, - 23204: 0x9E1B, - 23205: 0x9E1C, - 23206: 0x9E1D, - 23207: 0x9E1E, - 23208: 0x9E24, - 23209: 0x9E27, - 23210: 0x9E2E, - 23211: 0x9E30, - 23212: 0x9E34, - 23213: 0x9E3B, - 23214: 0x9E3C, - 23215: 0x9E40, - 23216: 0x9E4D, - 23217: 0x9E50, - 23218: 0x9E52, - 23219: 0x9E53, - 23220: 0x9E54, - 23221: 0x9E56, - 23222: 0x9E59, - 23223: 0x9E5D, - 23224: 0x9E5F, - 23225: 0x9E60, - 23226: 0x9E61, - 23227: 0x9E62, - 23228: 0x9E65, - 23229: 0x9E6E, - 23230: 0x9E6F, - 23231: 0x9E72, - 23232: 0x9E74, - 23233: 0x9E75, - 23234: 0x9E76, - 23235: 0x9E77, - 23236: 0x9E78, - 23237: 0x9E79, - 23238: 0x9E7A, - 23239: 0x9E7B, - 23240: 0x9E7C, - 23241: 0x9E7D, - 23242: 0x9E80, - 23243: 0x9E81, - 23244: 0x9E83, - 23245: 0x9E84, - 23246: 0x9E85, - 23247: 0x9E86, - 23248: 0x9E89, - 23249: 0x9E8A, - 23250: 0x9E8C, - 23251: 0x9E8D, - 23252: 0x9E8E, - 23253: 0x9E8F, - 23254: 0x9E90, - 23255: 0x9E91, - 23256: 0x9E94, - 23257: 0x9E95, - 23258: 0x9E96, - 23259: 0x9E97, - 23260: 0x9E98, - 23261: 0x9E99, - 23262: 0x9E9A, - 23263: 0x9E9B, - 23264: 0x9E9C, - 23265: 0x9E9E, - 23266: 0x9EA0, - 23267: 0x9EA1, - 23268: 0x9EA2, - 23269: 0x9EA3, - 23270: 0x9EA4, - 23271: 0x9EA5, - 23272: 0x9EA7, - 23273: 0x9EA8, - 23274: 0x9EA9, - 23275: 0x9EAA, - 23370: 0x9EAB, - 23371: 0x9EAC, - 23372: 0x9EAD, - 23373: 0x9EAE, - 23374: 0x9EAF, - 23375: 0x9EB0, - 23376: 0x9EB1, - 23377: 0x9EB2, - 23378: 0x9EB3, - 23379: 0x9EB5, - 23380: 0x9EB6, - 23381: 0x9EB7, - 23382: 0x9EB9, - 23383: 0x9EBA, - 23384: 0x9EBC, - 23385: 0x9EBF, - 23386: 0x9EC0, - 23387: 0x9EC1, - 23388: 0x9EC2, - 23389: 0x9EC3, - 23390: 0x9EC5, - 23391: 0x9EC6, - 23392: 0x9EC7, - 23393: 0x9EC8, - 23394: 0x9ECA, - 23395: 0x9ECB, - 23396: 0x9ECC, - 23397: 0x9ED0, - 23398: 0x9ED2, - 23399: 0x9ED3, - 23400: 0x9ED5, - 23401: 0x9ED6, - 23402: 0x9ED7, - 23403: 0x9ED9, - 23404: 0x9EDA, - 23405: 0x9EDE, - 23406: 0x9EE1, - 23407: 0x9EE3, - 23408: 0x9EE4, - 23409: 0x9EE6, - 23410: 0x9EE8, - 23411: 0x9EEB, - 23412: 0x9EEC, - 23413: 0x9EED, - 23414: 0x9EEE, - 23415: 0x9EF0, - 23416: 0x9EF1, - 23417: 0x9EF2, - 23418: 0x9EF3, - 23419: 0x9EF4, - 23420: 0x9EF5, - 23421: 0x9EF6, - 23422: 0x9EF7, - 23423: 0x9EF8, - 23424: 0x9EFA, - 23425: 0x9EFD, - 23426: 0x9EFF, - 23427: 0x9F00, - 23428: 0x9F01, - 23429: 0x9F02, - 23430: 0x9F03, - 23431: 0x9F04, - 23432: 0x9F05, - 23433: 0x9F06, - 23434: 0x9F07, - 23435: 0x9F08, - 23436: 0x9F09, - 23437: 0x9F0A, - 23438: 0x9F0C, - 23439: 0x9F0F, - 23440: 0x9F11, - 23441: 0x9F12, - 23442: 0x9F14, - 23443: 0x9F15, - 23444: 0x9F16, - 23445: 0x9F18, - 23446: 0x9F1A, - 23447: 0x9F1B, - 23448: 0x9F1C, - 23449: 0x9F1D, - 23450: 0x9F1E, - 23451: 0x9F1F, - 23452: 0x9F21, - 23453: 0x9F23, - 23454: 0x9F24, - 23455: 0x9F25, - 23456: 0x9F26, - 23457: 0x9F27, - 23458: 0x9F28, - 23459: 0x9F29, - 23460: 0x9F2A, - 23461: 0x9F2B, - 23462: 0x9F2D, - 23463: 0x9F2E, - 23464: 0x9F30, - 23465: 0x9F31, - 23560: 0x9F32, - 23561: 0x9F33, - 23562: 0x9F34, - 23563: 0x9F35, - 23564: 0x9F36, - 23565: 0x9F38, - 23566: 0x9F3A, - 23567: 0x9F3C, - 23568: 0x9F3F, - 23569: 0x9F40, - 23570: 0x9F41, - 23571: 0x9F42, - 23572: 0x9F43, - 23573: 0x9F45, - 23574: 0x9F46, - 23575: 0x9F47, - 23576: 0x9F48, - 23577: 0x9F49, - 23578: 0x9F4A, - 23579: 0x9F4B, - 23580: 0x9F4C, - 23581: 0x9F4D, - 23582: 0x9F4E, - 23583: 0x9F4F, - 23584: 0x9F52, - 23585: 0x9F53, - 23586: 0x9F54, - 23587: 0x9F55, - 23588: 0x9F56, - 23589: 0x9F57, - 23590: 0x9F58, - 23591: 0x9F59, - 23592: 0x9F5A, - 23593: 0x9F5B, - 23594: 0x9F5C, - 23595: 0x9F5D, - 23596: 0x9F5E, - 23597: 0x9F5F, - 23598: 0x9F60, - 23599: 0x9F61, - 23600: 0x9F62, - 23601: 0x9F63, - 23602: 0x9F64, - 23603: 0x9F65, - 23604: 0x9F66, - 23605: 0x9F67, - 23606: 0x9F68, - 23607: 0x9F69, - 23608: 0x9F6A, - 23609: 0x9F6B, - 23610: 0x9F6C, - 23611: 0x9F6D, - 23612: 0x9F6E, - 23613: 0x9F6F, - 23614: 0x9F70, - 23615: 0x9F71, - 23616: 0x9F72, - 23617: 0x9F73, - 23618: 0x9F74, - 23619: 0x9F75, - 23620: 0x9F76, - 23621: 0x9F77, - 23622: 0x9F78, - 23623: 0x9F79, - 23624: 0x9F7A, - 23625: 0x9F7B, - 23626: 0x9F7C, - 23627: 0x9F7D, - 23628: 0x9F7E, - 23629: 0x9F81, - 23630: 0x9F82, - 23631: 0x9F8D, - 23632: 0x9F8E, - 23633: 0x9F8F, - 23634: 0x9F90, - 23635: 0x9F91, - 23636: 0x9F92, - 23637: 0x9F93, - 23638: 0x9F94, - 23639: 0x9F95, - 23640: 0x9F96, - 23641: 0x9F97, - 23642: 0x9F98, - 23643: 0x9F9C, - 23644: 0x9F9D, - 23645: 0x9F9E, - 23646: 0x9FA1, - 23647: 0x9FA2, - 23648: 0x9FA3, - 23649: 0x9FA4, - 23650: 0x9FA5, - 23651: 0xF92C, - 23652: 0xF979, - 23653: 0xF995, - 23654: 0xF9E7, - 23655: 0xF9F1, - 23750: 0xFA0C, - 23751: 0xFA0D, - 23752: 0xFA0E, - 23753: 0xFA0F, - 23754: 0xFA11, - 23755: 0xFA13, - 23756: 0xFA14, - 23757: 0xFA18, - 23758: 0xFA1F, - 23759: 0xFA20, - 23760: 0xFA21, - 23761: 0xFA23, - 23762: 0xFA24, - 23763: 0xFA27, - 23764: 0xFA28, - 23765: 0xFA29, - 23766: 0x2E81, - 23770: 0x2E84, - 23771: 0x3473, - 23772: 0x3447, - 23773: 0x2E88, - 23774: 0x2E8B, - 23776: 0x359E, - 23777: 0x361A, - 23778: 0x360E, - 23779: 0x2E8C, - 23780: 0x2E97, - 23781: 0x396E, - 23782: 0x3918, - 23784: 0x39CF, - 23785: 0x39DF, - 23786: 0x3A73, - 23787: 0x39D0, - 23790: 0x3B4E, - 23791: 0x3C6E, - 23792: 0x3CE0, - 23793: 0x2EA7, - 23796: 0x2EAA, - 23797: 0x4056, - 23798: 0x415F, - 23799: 0x2EAE, - 23800: 0x4337, - 23801: 0x2EB3, - 23802: 0x2EB6, - 23803: 0x2EB7, - 23805: 0x43B1, - 23806: 0x43AC, - 23807: 0x2EBB, - 23808: 0x43DD, - 23809: 0x44D6, - 23810: 0x4661, - 23811: 0x464C, - 23813: 0x4723, - 23814: 0x4729, - 23815: 0x477C, - 23816: 0x478D, - 23817: 0x2ECA, - 23818: 0x4947, - 23819: 0x497A, - 23820: 0x497D, - 23821: 0x4982, - 23822: 0x4983, - 23823: 0x4985, - 23824: 0x4986, - 23825: 0x499F, - 23826: 0x499B, - 23827: 0x49B7, - 23828: 0x49B6, - 23831: 0x4CA3, - 23832: 0x4C9F, - 23833: 0x4CA0, - 23834: 0x4CA1, - 23835: 0x4C77, - 23836: 0x4CA2, - 23837: 0x4D13, - 23838: 0x4D14, - 23839: 0x4D15, - 23840: 0x4D16, - 23841: 0x4D17, - 23842: 0x4D18, - 23843: 0x4D19, - 23844: 0x4DAE, -} - -const numEncodeTables = 5 - -// encodeX are the encoding tables from Unicode to GBK code, -// sorted by decreasing length. -// encode0: 28965 entries for runes in [11905, 40870). -// encode1: 1587 entries for runes in [ 8208, 9795). -// encode2: 942 entries for runes in [ 164, 1106). -// encode3: 438 entries for runes in [65072, 65510). -// encode4: 254 entries for runes in [63788, 64042). - -const encode0Low, encode0High = 11905, 40870 - -var encode0 = [...]uint16{ - 11905 - 11905: 0xFE50, - 11908 - 11905: 0xFE54, - 11912 - 11905: 0xFE57, - 11915 - 11905: 0xFE58, - 11916 - 11905: 0xFE5D, - 11927 - 11905: 0xFE5E, - 11943 - 11905: 0xFE6B, - 11946 - 11905: 0xFE6E, - 11950 - 11905: 0xFE71, - 11955 - 11905: 0xFE73, - 11958 - 11905: 0xFE74, - 11959 - 11905: 0xFE75, - 11963 - 11905: 0xFE79, - 11978 - 11905: 0xFE84, - 12272 - 11905: 0xA98A, - 12273 - 11905: 0xA98B, - 12274 - 11905: 0xA98C, - 12275 - 11905: 0xA98D, - 12276 - 11905: 0xA98E, - 12277 - 11905: 0xA98F, - 12278 - 11905: 0xA990, - 12279 - 11905: 0xA991, - 12280 - 11905: 0xA992, - 12281 - 11905: 0xA993, - 12282 - 11905: 0xA994, - 12283 - 11905: 0xA995, - 12288 - 11905: 0xA1A1, - 12289 - 11905: 0xA1A2, - 12290 - 11905: 0xA1A3, - 12291 - 11905: 0xA1A8, - 12293 - 11905: 0xA1A9, - 12294 - 11905: 0xA965, - 12295 - 11905: 0xA996, - 12296 - 11905: 0xA1B4, - 12297 - 11905: 0xA1B5, - 12298 - 11905: 0xA1B6, - 12299 - 11905: 0xA1B7, - 12300 - 11905: 0xA1B8, - 12301 - 11905: 0xA1B9, - 12302 - 11905: 0xA1BA, - 12303 - 11905: 0xA1BB, - 12304 - 11905: 0xA1BE, - 12305 - 11905: 0xA1BF, - 12306 - 11905: 0xA893, - 12307 - 11905: 0xA1FE, - 12308 - 11905: 0xA1B2, - 12309 - 11905: 0xA1B3, - 12310 - 11905: 0xA1BC, - 12311 - 11905: 0xA1BD, - 12317 - 11905: 0xA894, - 12318 - 11905: 0xA895, - 12321 - 11905: 0xA940, - 12322 - 11905: 0xA941, - 12323 - 11905: 0xA942, - 12324 - 11905: 0xA943, - 12325 - 11905: 0xA944, - 12326 - 11905: 0xA945, - 12327 - 11905: 0xA946, - 12328 - 11905: 0xA947, - 12329 - 11905: 0xA948, - 12350 - 11905: 0xA989, - 12353 - 11905: 0xA4A1, - 12354 - 11905: 0xA4A2, - 12355 - 11905: 0xA4A3, - 12356 - 11905: 0xA4A4, - 12357 - 11905: 0xA4A5, - 12358 - 11905: 0xA4A6, - 12359 - 11905: 0xA4A7, - 12360 - 11905: 0xA4A8, - 12361 - 11905: 0xA4A9, - 12362 - 11905: 0xA4AA, - 12363 - 11905: 0xA4AB, - 12364 - 11905: 0xA4AC, - 12365 - 11905: 0xA4AD, - 12366 - 11905: 0xA4AE, - 12367 - 11905: 0xA4AF, - 12368 - 11905: 0xA4B0, - 12369 - 11905: 0xA4B1, - 12370 - 11905: 0xA4B2, - 12371 - 11905: 0xA4B3, - 12372 - 11905: 0xA4B4, - 12373 - 11905: 0xA4B5, - 12374 - 11905: 0xA4B6, - 12375 - 11905: 0xA4B7, - 12376 - 11905: 0xA4B8, - 12377 - 11905: 0xA4B9, - 12378 - 11905: 0xA4BA, - 12379 - 11905: 0xA4BB, - 12380 - 11905: 0xA4BC, - 12381 - 11905: 0xA4BD, - 12382 - 11905: 0xA4BE, - 12383 - 11905: 0xA4BF, - 12384 - 11905: 0xA4C0, - 12385 - 11905: 0xA4C1, - 12386 - 11905: 0xA4C2, - 12387 - 11905: 0xA4C3, - 12388 - 11905: 0xA4C4, - 12389 - 11905: 0xA4C5, - 12390 - 11905: 0xA4C6, - 12391 - 11905: 0xA4C7, - 12392 - 11905: 0xA4C8, - 12393 - 11905: 0xA4C9, - 12394 - 11905: 0xA4CA, - 12395 - 11905: 0xA4CB, - 12396 - 11905: 0xA4CC, - 12397 - 11905: 0xA4CD, - 12398 - 11905: 0xA4CE, - 12399 - 11905: 0xA4CF, - 12400 - 11905: 0xA4D0, - 12401 - 11905: 0xA4D1, - 12402 - 11905: 0xA4D2, - 12403 - 11905: 0xA4D3, - 12404 - 11905: 0xA4D4, - 12405 - 11905: 0xA4D5, - 12406 - 11905: 0xA4D6, - 12407 - 11905: 0xA4D7, - 12408 - 11905: 0xA4D8, - 12409 - 11905: 0xA4D9, - 12410 - 11905: 0xA4DA, - 12411 - 11905: 0xA4DB, - 12412 - 11905: 0xA4DC, - 12413 - 11905: 0xA4DD, - 12414 - 11905: 0xA4DE, - 12415 - 11905: 0xA4DF, - 12416 - 11905: 0xA4E0, - 12417 - 11905: 0xA4E1, - 12418 - 11905: 0xA4E2, - 12419 - 11905: 0xA4E3, - 12420 - 11905: 0xA4E4, - 12421 - 11905: 0xA4E5, - 12422 - 11905: 0xA4E6, - 12423 - 11905: 0xA4E7, - 12424 - 11905: 0xA4E8, - 12425 - 11905: 0xA4E9, - 12426 - 11905: 0xA4EA, - 12427 - 11905: 0xA4EB, - 12428 - 11905: 0xA4EC, - 12429 - 11905: 0xA4ED, - 12430 - 11905: 0xA4EE, - 12431 - 11905: 0xA4EF, - 12432 - 11905: 0xA4F0, - 12433 - 11905: 0xA4F1, - 12434 - 11905: 0xA4F2, - 12435 - 11905: 0xA4F3, - 12443 - 11905: 0xA961, - 12444 - 11905: 0xA962, - 12445 - 11905: 0xA966, - 12446 - 11905: 0xA967, - 12449 - 11905: 0xA5A1, - 12450 - 11905: 0xA5A2, - 12451 - 11905: 0xA5A3, - 12452 - 11905: 0xA5A4, - 12453 - 11905: 0xA5A5, - 12454 - 11905: 0xA5A6, - 12455 - 11905: 0xA5A7, - 12456 - 11905: 0xA5A8, - 12457 - 11905: 0xA5A9, - 12458 - 11905: 0xA5AA, - 12459 - 11905: 0xA5AB, - 12460 - 11905: 0xA5AC, - 12461 - 11905: 0xA5AD, - 12462 - 11905: 0xA5AE, - 12463 - 11905: 0xA5AF, - 12464 - 11905: 0xA5B0, - 12465 - 11905: 0xA5B1, - 12466 - 11905: 0xA5B2, - 12467 - 11905: 0xA5B3, - 12468 - 11905: 0xA5B4, - 12469 - 11905: 0xA5B5, - 12470 - 11905: 0xA5B6, - 12471 - 11905: 0xA5B7, - 12472 - 11905: 0xA5B8, - 12473 - 11905: 0xA5B9, - 12474 - 11905: 0xA5BA, - 12475 - 11905: 0xA5BB, - 12476 - 11905: 0xA5BC, - 12477 - 11905: 0xA5BD, - 12478 - 11905: 0xA5BE, - 12479 - 11905: 0xA5BF, - 12480 - 11905: 0xA5C0, - 12481 - 11905: 0xA5C1, - 12482 - 11905: 0xA5C2, - 12483 - 11905: 0xA5C3, - 12484 - 11905: 0xA5C4, - 12485 - 11905: 0xA5C5, - 12486 - 11905: 0xA5C6, - 12487 - 11905: 0xA5C7, - 12488 - 11905: 0xA5C8, - 12489 - 11905: 0xA5C9, - 12490 - 11905: 0xA5CA, - 12491 - 11905: 0xA5CB, - 12492 - 11905: 0xA5CC, - 12493 - 11905: 0xA5CD, - 12494 - 11905: 0xA5CE, - 12495 - 11905: 0xA5CF, - 12496 - 11905: 0xA5D0, - 12497 - 11905: 0xA5D1, - 12498 - 11905: 0xA5D2, - 12499 - 11905: 0xA5D3, - 12500 - 11905: 0xA5D4, - 12501 - 11905: 0xA5D5, - 12502 - 11905: 0xA5D6, - 12503 - 11905: 0xA5D7, - 12504 - 11905: 0xA5D8, - 12505 - 11905: 0xA5D9, - 12506 - 11905: 0xA5DA, - 12507 - 11905: 0xA5DB, - 12508 - 11905: 0xA5DC, - 12509 - 11905: 0xA5DD, - 12510 - 11905: 0xA5DE, - 12511 - 11905: 0xA5DF, - 12512 - 11905: 0xA5E0, - 12513 - 11905: 0xA5E1, - 12514 - 11905: 0xA5E2, - 12515 - 11905: 0xA5E3, - 12516 - 11905: 0xA5E4, - 12517 - 11905: 0xA5E5, - 12518 - 11905: 0xA5E6, - 12519 - 11905: 0xA5E7, - 12520 - 11905: 0xA5E8, - 12521 - 11905: 0xA5E9, - 12522 - 11905: 0xA5EA, - 12523 - 11905: 0xA5EB, - 12524 - 11905: 0xA5EC, - 12525 - 11905: 0xA5ED, - 12526 - 11905: 0xA5EE, - 12527 - 11905: 0xA5EF, - 12528 - 11905: 0xA5F0, - 12529 - 11905: 0xA5F1, - 12530 - 11905: 0xA5F2, - 12531 - 11905: 0xA5F3, - 12532 - 11905: 0xA5F4, - 12533 - 11905: 0xA5F5, - 12534 - 11905: 0xA5F6, - 12540 - 11905: 0xA960, - 12541 - 11905: 0xA963, - 12542 - 11905: 0xA964, - 12549 - 11905: 0xA8C5, - 12550 - 11905: 0xA8C6, - 12551 - 11905: 0xA8C7, - 12552 - 11905: 0xA8C8, - 12553 - 11905: 0xA8C9, - 12554 - 11905: 0xA8CA, - 12555 - 11905: 0xA8CB, - 12556 - 11905: 0xA8CC, - 12557 - 11905: 0xA8CD, - 12558 - 11905: 0xA8CE, - 12559 - 11905: 0xA8CF, - 12560 - 11905: 0xA8D0, - 12561 - 11905: 0xA8D1, - 12562 - 11905: 0xA8D2, - 12563 - 11905: 0xA8D3, - 12564 - 11905: 0xA8D4, - 12565 - 11905: 0xA8D5, - 12566 - 11905: 0xA8D6, - 12567 - 11905: 0xA8D7, - 12568 - 11905: 0xA8D8, - 12569 - 11905: 0xA8D9, - 12570 - 11905: 0xA8DA, - 12571 - 11905: 0xA8DB, - 12572 - 11905: 0xA8DC, - 12573 - 11905: 0xA8DD, - 12574 - 11905: 0xA8DE, - 12575 - 11905: 0xA8DF, - 12576 - 11905: 0xA8E0, - 12577 - 11905: 0xA8E1, - 12578 - 11905: 0xA8E2, - 12579 - 11905: 0xA8E3, - 12580 - 11905: 0xA8E4, - 12581 - 11905: 0xA8E5, - 12582 - 11905: 0xA8E6, - 12583 - 11905: 0xA8E7, - 12584 - 11905: 0xA8E8, - 12585 - 11905: 0xA8E9, - 12832 - 11905: 0xA2E5, - 12833 - 11905: 0xA2E6, - 12834 - 11905: 0xA2E7, - 12835 - 11905: 0xA2E8, - 12836 - 11905: 0xA2E9, - 12837 - 11905: 0xA2EA, - 12838 - 11905: 0xA2EB, - 12839 - 11905: 0xA2EC, - 12840 - 11905: 0xA2ED, - 12841 - 11905: 0xA2EE, - 12849 - 11905: 0xA95A, - 12963 - 11905: 0xA949, - 13198 - 11905: 0xA94A, - 13199 - 11905: 0xA94B, - 13212 - 11905: 0xA94C, - 13213 - 11905: 0xA94D, - 13214 - 11905: 0xA94E, - 13217 - 11905: 0xA94F, - 13252 - 11905: 0xA950, - 13262 - 11905: 0xA951, - 13265 - 11905: 0xA952, - 13266 - 11905: 0xA953, - 13269 - 11905: 0xA954, - 13383 - 11905: 0xFE56, - 13427 - 11905: 0xFE55, - 13726 - 11905: 0xFE5A, - 13838 - 11905: 0xFE5C, - 13850 - 11905: 0xFE5B, - 14616 - 11905: 0xFE60, - 14702 - 11905: 0xFE5F, - 14799 - 11905: 0xFE62, - 14800 - 11905: 0xFE65, - 14815 - 11905: 0xFE63, - 14963 - 11905: 0xFE64, - 15182 - 11905: 0xFE68, - 15470 - 11905: 0xFE69, - 15584 - 11905: 0xFE6A, - 16470 - 11905: 0xFE6F, - 16735 - 11905: 0xFE70, - 17207 - 11905: 0xFE72, - 17324 - 11905: 0xFE78, - 17329 - 11905: 0xFE77, - 17373 - 11905: 0xFE7A, - 17622 - 11905: 0xFE7B, - 17996 - 11905: 0xFE7D, - 18017 - 11905: 0xFE7C, - 18211 - 11905: 0xFE80, - 18217 - 11905: 0xFE81, - 18300 - 11905: 0xFE82, - 18317 - 11905: 0xFE83, - 18759 - 11905: 0xFE85, - 18810 - 11905: 0xFE86, - 18813 - 11905: 0xFE87, - 18818 - 11905: 0xFE88, - 18819 - 11905: 0xFE89, - 18821 - 11905: 0xFE8A, - 18822 - 11905: 0xFE8B, - 18843 - 11905: 0xFE8D, - 18847 - 11905: 0xFE8C, - 18870 - 11905: 0xFE8F, - 18871 - 11905: 0xFE8E, - 19575 - 11905: 0xFE96, - 19615 - 11905: 0xFE93, - 19616 - 11905: 0xFE94, - 19617 - 11905: 0xFE95, - 19618 - 11905: 0xFE97, - 19619 - 11905: 0xFE92, - 19731 - 11905: 0xFE98, - 19732 - 11905: 0xFE99, - 19733 - 11905: 0xFE9A, - 19734 - 11905: 0xFE9B, - 19735 - 11905: 0xFE9C, - 19736 - 11905: 0xFE9D, - 19737 - 11905: 0xFE9E, - 19886 - 11905: 0xFE9F, - 19968 - 11905: 0xD2BB, - 19969 - 11905: 0xB6A1, - 19970 - 11905: 0x8140, - 19971 - 11905: 0xC6DF, - 19972 - 11905: 0x8141, - 19973 - 11905: 0x8142, - 19974 - 11905: 0x8143, - 19975 - 11905: 0xCDF2, - 19976 - 11905: 0xD5C9, - 19977 - 11905: 0xC8FD, - 19978 - 11905: 0xC9CF, - 19979 - 11905: 0xCFC2, - 19980 - 11905: 0xD8A2, - 19981 - 11905: 0xB2BB, - 19982 - 11905: 0xD3EB, - 19983 - 11905: 0x8144, - 19984 - 11905: 0xD8A4, - 19985 - 11905: 0xB3F3, - 19986 - 11905: 0x8145, - 19987 - 11905: 0xD7A8, - 19988 - 11905: 0xC7D2, - 19989 - 11905: 0xD8A7, - 19990 - 11905: 0xCAC0, - 19991 - 11905: 0x8146, - 19992 - 11905: 0xC7F0, - 19993 - 11905: 0xB1FB, - 19994 - 11905: 0xD2B5, - 19995 - 11905: 0xB4D4, - 19996 - 11905: 0xB6AB, - 19997 - 11905: 0xCBBF, - 19998 - 11905: 0xD8A9, - 19999 - 11905: 0x8147, - 20000 - 11905: 0x8148, - 20001 - 11905: 0x8149, - 20002 - 11905: 0xB6AA, - 20003 - 11905: 0x814A, - 20004 - 11905: 0xC1BD, - 20005 - 11905: 0xD1CF, - 20006 - 11905: 0x814B, - 20007 - 11905: 0xC9A5, - 20008 - 11905: 0xD8AD, - 20009 - 11905: 0x814C, - 20010 - 11905: 0xB8F6, - 20011 - 11905: 0xD1BE, - 20012 - 11905: 0xE3DC, - 20013 - 11905: 0xD6D0, - 20014 - 11905: 0x814D, - 20015 - 11905: 0x814E, - 20016 - 11905: 0xB7E1, - 20017 - 11905: 0x814F, - 20018 - 11905: 0xB4AE, - 20019 - 11905: 0x8150, - 20020 - 11905: 0xC1D9, - 20021 - 11905: 0x8151, - 20022 - 11905: 0xD8BC, - 20023 - 11905: 0x8152, - 20024 - 11905: 0xCDE8, - 20025 - 11905: 0xB5A4, - 20026 - 11905: 0xCEAA, - 20027 - 11905: 0xD6F7, - 20028 - 11905: 0x8153, - 20029 - 11905: 0xC0F6, - 20030 - 11905: 0xBED9, - 20031 - 11905: 0xD8AF, - 20032 - 11905: 0x8154, - 20033 - 11905: 0x8155, - 20034 - 11905: 0x8156, - 20035 - 11905: 0xC4CB, - 20036 - 11905: 0x8157, - 20037 - 11905: 0xBEC3, - 20038 - 11905: 0x8158, - 20039 - 11905: 0xD8B1, - 20040 - 11905: 0xC3B4, - 20041 - 11905: 0xD2E5, - 20042 - 11905: 0x8159, - 20043 - 11905: 0xD6AE, - 20044 - 11905: 0xCEDA, - 20045 - 11905: 0xD5A7, - 20046 - 11905: 0xBAF5, - 20047 - 11905: 0xB7A6, - 20048 - 11905: 0xC0D6, - 20049 - 11905: 0x815A, - 20050 - 11905: 0xC6B9, - 20051 - 11905: 0xC5D2, - 20052 - 11905: 0xC7C7, - 20053 - 11905: 0x815B, - 20054 - 11905: 0xB9D4, - 20055 - 11905: 0x815C, - 20056 - 11905: 0xB3CB, - 20057 - 11905: 0xD2D2, - 20058 - 11905: 0x815D, - 20059 - 11905: 0x815E, - 20060 - 11905: 0xD8BF, - 20061 - 11905: 0xBEC5, - 20062 - 11905: 0xC6F2, - 20063 - 11905: 0xD2B2, - 20064 - 11905: 0xCFB0, - 20065 - 11905: 0xCFE7, - 20066 - 11905: 0x815F, - 20067 - 11905: 0x8160, - 20068 - 11905: 0x8161, - 20069 - 11905: 0x8162, - 20070 - 11905: 0xCAE9, - 20071 - 11905: 0x8163, - 20072 - 11905: 0x8164, - 20073 - 11905: 0xD8C0, - 20074 - 11905: 0x8165, - 20075 - 11905: 0x8166, - 20076 - 11905: 0x8167, - 20077 - 11905: 0x8168, - 20078 - 11905: 0x8169, - 20079 - 11905: 0x816A, - 20080 - 11905: 0xC2F2, - 20081 - 11905: 0xC2D2, - 20082 - 11905: 0x816B, - 20083 - 11905: 0xC8E9, - 20084 - 11905: 0x816C, - 20085 - 11905: 0x816D, - 20086 - 11905: 0x816E, - 20087 - 11905: 0x816F, - 20088 - 11905: 0x8170, - 20089 - 11905: 0x8171, - 20090 - 11905: 0x8172, - 20091 - 11905: 0x8173, - 20092 - 11905: 0x8174, - 20093 - 11905: 0x8175, - 20094 - 11905: 0xC7AC, - 20095 - 11905: 0x8176, - 20096 - 11905: 0x8177, - 20097 - 11905: 0x8178, - 20098 - 11905: 0x8179, - 20099 - 11905: 0x817A, - 20100 - 11905: 0x817B, - 20101 - 11905: 0x817C, - 20102 - 11905: 0xC1CB, - 20103 - 11905: 0x817D, - 20104 - 11905: 0xD3E8, - 20105 - 11905: 0xD5F9, - 20106 - 11905: 0x817E, - 20107 - 11905: 0xCAC2, - 20108 - 11905: 0xB6FE, - 20109 - 11905: 0xD8A1, - 20110 - 11905: 0xD3DA, - 20111 - 11905: 0xBFF7, - 20112 - 11905: 0x8180, - 20113 - 11905: 0xD4C6, - 20114 - 11905: 0xBBA5, - 20115 - 11905: 0xD8C1, - 20116 - 11905: 0xCEE5, - 20117 - 11905: 0xBEAE, - 20118 - 11905: 0x8181, - 20119 - 11905: 0x8182, - 20120 - 11905: 0xD8A8, - 20121 - 11905: 0x8183, - 20122 - 11905: 0xD1C7, - 20123 - 11905: 0xD0A9, - 20124 - 11905: 0x8184, - 20125 - 11905: 0x8185, - 20126 - 11905: 0x8186, - 20127 - 11905: 0xD8BD, - 20128 - 11905: 0xD9EF, - 20129 - 11905: 0xCDF6, - 20130 - 11905: 0xBFBA, - 20131 - 11905: 0x8187, - 20132 - 11905: 0xBDBB, - 20133 - 11905: 0xBAA5, - 20134 - 11905: 0xD2E0, - 20135 - 11905: 0xB2FA, - 20136 - 11905: 0xBAE0, - 20137 - 11905: 0xC4B6, - 20138 - 11905: 0x8188, - 20139 - 11905: 0xCFED, - 20140 - 11905: 0xBEA9, - 20141 - 11905: 0xCDA4, - 20142 - 11905: 0xC1C1, - 20143 - 11905: 0x8189, - 20144 - 11905: 0x818A, - 20145 - 11905: 0x818B, - 20146 - 11905: 0xC7D7, - 20147 - 11905: 0xD9F1, - 20148 - 11905: 0x818C, - 20149 - 11905: 0xD9F4, - 20150 - 11905: 0x818D, - 20151 - 11905: 0x818E, - 20152 - 11905: 0x818F, - 20153 - 11905: 0x8190, - 20154 - 11905: 0xC8CB, - 20155 - 11905: 0xD8E9, - 20156 - 11905: 0x8191, - 20157 - 11905: 0x8192, - 20158 - 11905: 0x8193, - 20159 - 11905: 0xD2DA, - 20160 - 11905: 0xCAB2, - 20161 - 11905: 0xC8CA, - 20162 - 11905: 0xD8EC, - 20163 - 11905: 0xD8EA, - 20164 - 11905: 0xD8C6, - 20165 - 11905: 0xBDF6, - 20166 - 11905: 0xC6CD, - 20167 - 11905: 0xB3F0, - 20168 - 11905: 0x8194, - 20169 - 11905: 0xD8EB, - 20170 - 11905: 0xBDF1, - 20171 - 11905: 0xBDE9, - 20172 - 11905: 0x8195, - 20173 - 11905: 0xC8D4, - 20174 - 11905: 0xB4D3, - 20175 - 11905: 0x8196, - 20176 - 11905: 0x8197, - 20177 - 11905: 0xC2D8, - 20178 - 11905: 0x8198, - 20179 - 11905: 0xB2D6, - 20180 - 11905: 0xD7D0, - 20181 - 11905: 0xCACB, - 20182 - 11905: 0xCBFB, - 20183 - 11905: 0xD5CC, - 20184 - 11905: 0xB8B6, - 20185 - 11905: 0xCFC9, - 20186 - 11905: 0x8199, - 20187 - 11905: 0x819A, - 20188 - 11905: 0x819B, - 20189 - 11905: 0xD9DA, - 20190 - 11905: 0xD8F0, - 20191 - 11905: 0xC7AA, - 20192 - 11905: 0x819C, - 20193 - 11905: 0xD8EE, - 20194 - 11905: 0x819D, - 20195 - 11905: 0xB4FA, - 20196 - 11905: 0xC1EE, - 20197 - 11905: 0xD2D4, - 20198 - 11905: 0x819E, - 20199 - 11905: 0x819F, - 20200 - 11905: 0xD8ED, - 20201 - 11905: 0x81A0, - 20202 - 11905: 0xD2C7, - 20203 - 11905: 0xD8EF, - 20204 - 11905: 0xC3C7, - 20205 - 11905: 0x81A1, - 20206 - 11905: 0x81A2, - 20207 - 11905: 0x81A3, - 20208 - 11905: 0xD1F6, - 20209 - 11905: 0x81A4, - 20210 - 11905: 0xD6D9, - 20211 - 11905: 0xD8F2, - 20212 - 11905: 0x81A5, - 20213 - 11905: 0xD8F5, - 20214 - 11905: 0xBCFE, - 20215 - 11905: 0xBCDB, - 20216 - 11905: 0x81A6, - 20217 - 11905: 0x81A7, - 20218 - 11905: 0x81A8, - 20219 - 11905: 0xC8CE, - 20220 - 11905: 0x81A9, - 20221 - 11905: 0xB7DD, - 20222 - 11905: 0x81AA, - 20223 - 11905: 0xB7C2, - 20224 - 11905: 0x81AB, - 20225 - 11905: 0xC6F3, - 20226 - 11905: 0x81AC, - 20227 - 11905: 0x81AD, - 20228 - 11905: 0x81AE, - 20229 - 11905: 0x81AF, - 20230 - 11905: 0x81B0, - 20231 - 11905: 0x81B1, - 20232 - 11905: 0x81B2, - 20233 - 11905: 0xD8F8, - 20234 - 11905: 0xD2C1, - 20235 - 11905: 0x81B3, - 20236 - 11905: 0x81B4, - 20237 - 11905: 0xCEE9, - 20238 - 11905: 0xBCBF, - 20239 - 11905: 0xB7FC, - 20240 - 11905: 0xB7A5, - 20241 - 11905: 0xD0DD, - 20242 - 11905: 0x81B5, - 20243 - 11905: 0x81B6, - 20244 - 11905: 0x81B7, - 20245 - 11905: 0x81B8, - 20246 - 11905: 0x81B9, - 20247 - 11905: 0xD6DA, - 20248 - 11905: 0xD3C5, - 20249 - 11905: 0xBBEF, - 20250 - 11905: 0xBBE1, - 20251 - 11905: 0xD8F1, - 20252 - 11905: 0x81BA, - 20253 - 11905: 0x81BB, - 20254 - 11905: 0xC9A1, - 20255 - 11905: 0xCEB0, - 20256 - 11905: 0xB4AB, - 20257 - 11905: 0x81BC, - 20258 - 11905: 0xD8F3, - 20259 - 11905: 0x81BD, - 20260 - 11905: 0xC9CB, - 20261 - 11905: 0xD8F6, - 20262 - 11905: 0xC2D7, - 20263 - 11905: 0xD8F7, - 20264 - 11905: 0x81BE, - 20265 - 11905: 0x81BF, - 20266 - 11905: 0xCEB1, - 20267 - 11905: 0xD8F9, - 20268 - 11905: 0x81C0, - 20269 - 11905: 0x81C1, - 20270 - 11905: 0x81C2, - 20271 - 11905: 0xB2AE, - 20272 - 11905: 0xB9C0, - 20273 - 11905: 0x81C3, - 20274 - 11905: 0xD9A3, - 20275 - 11905: 0x81C4, - 20276 - 11905: 0xB0E9, - 20277 - 11905: 0x81C5, - 20278 - 11905: 0xC1E6, - 20279 - 11905: 0x81C6, - 20280 - 11905: 0xC9EC, - 20281 - 11905: 0x81C7, - 20282 - 11905: 0xCBC5, - 20283 - 11905: 0x81C8, - 20284 - 11905: 0xCBC6, - 20285 - 11905: 0xD9A4, - 20286 - 11905: 0x81C9, - 20287 - 11905: 0x81CA, - 20288 - 11905: 0x81CB, - 20289 - 11905: 0x81CC, - 20290 - 11905: 0x81CD, - 20291 - 11905: 0xB5E8, - 20292 - 11905: 0x81CE, - 20293 - 11905: 0x81CF, - 20294 - 11905: 0xB5AB, - 20295 - 11905: 0x81D0, - 20296 - 11905: 0x81D1, - 20297 - 11905: 0x81D2, - 20298 - 11905: 0x81D3, - 20299 - 11905: 0x81D4, - 20300 - 11905: 0x81D5, - 20301 - 11905: 0xCEBB, - 20302 - 11905: 0xB5CD, - 20303 - 11905: 0xD7A1, - 20304 - 11905: 0xD7F4, - 20305 - 11905: 0xD3D3, - 20306 - 11905: 0x81D6, - 20307 - 11905: 0xCCE5, - 20308 - 11905: 0x81D7, - 20309 - 11905: 0xBACE, - 20310 - 11905: 0x81D8, - 20311 - 11905: 0xD9A2, - 20312 - 11905: 0xD9DC, - 20313 - 11905: 0xD3E0, - 20314 - 11905: 0xD8FD, - 20315 - 11905: 0xB7F0, - 20316 - 11905: 0xD7F7, - 20317 - 11905: 0xD8FE, - 20318 - 11905: 0xD8FA, - 20319 - 11905: 0xD9A1, - 20320 - 11905: 0xC4E3, - 20321 - 11905: 0x81D9, - 20322 - 11905: 0x81DA, - 20323 - 11905: 0xD3B6, - 20324 - 11905: 0xD8F4, - 20325 - 11905: 0xD9DD, - 20326 - 11905: 0x81DB, - 20327 - 11905: 0xD8FB, - 20328 - 11905: 0x81DC, - 20329 - 11905: 0xC5E5, - 20330 - 11905: 0x81DD, - 20331 - 11905: 0x81DE, - 20332 - 11905: 0xC0D0, - 20333 - 11905: 0x81DF, - 20334 - 11905: 0x81E0, - 20335 - 11905: 0xD1F0, - 20336 - 11905: 0xB0DB, - 20337 - 11905: 0x81E1, - 20338 - 11905: 0x81E2, - 20339 - 11905: 0xBCD1, - 20340 - 11905: 0xD9A6, - 20341 - 11905: 0x81E3, - 20342 - 11905: 0xD9A5, - 20343 - 11905: 0x81E4, - 20344 - 11905: 0x81E5, - 20345 - 11905: 0x81E6, - 20346 - 11905: 0x81E7, - 20347 - 11905: 0xD9AC, - 20348 - 11905: 0xD9AE, - 20349 - 11905: 0x81E8, - 20350 - 11905: 0xD9AB, - 20351 - 11905: 0xCAB9, - 20352 - 11905: 0x81E9, - 20353 - 11905: 0x81EA, - 20354 - 11905: 0x81EB, - 20355 - 11905: 0xD9A9, - 20356 - 11905: 0xD6B6, - 20357 - 11905: 0x81EC, - 20358 - 11905: 0x81ED, - 20359 - 11905: 0x81EE, - 20360 - 11905: 0xB3DE, - 20361 - 11905: 0xD9A8, - 20362 - 11905: 0x81EF, - 20363 - 11905: 0xC0FD, - 20364 - 11905: 0x81F0, - 20365 - 11905: 0xCACC, - 20366 - 11905: 0x81F1, - 20367 - 11905: 0xD9AA, - 20368 - 11905: 0x81F2, - 20369 - 11905: 0xD9A7, - 20370 - 11905: 0x81F3, - 20371 - 11905: 0x81F4, - 20372 - 11905: 0xD9B0, - 20373 - 11905: 0x81F5, - 20374 - 11905: 0x81F6, - 20375 - 11905: 0xB6B1, - 20376 - 11905: 0x81F7, - 20377 - 11905: 0x81F8, - 20378 - 11905: 0x81F9, - 20379 - 11905: 0xB9A9, - 20380 - 11905: 0x81FA, - 20381 - 11905: 0xD2C0, - 20382 - 11905: 0x81FB, - 20383 - 11905: 0x81FC, - 20384 - 11905: 0xCFC0, - 20385 - 11905: 0x81FD, - 20386 - 11905: 0x81FE, - 20387 - 11905: 0xC2C2, - 20388 - 11905: 0x8240, - 20389 - 11905: 0xBDC4, - 20390 - 11905: 0xD5EC, - 20391 - 11905: 0xB2E0, - 20392 - 11905: 0xC7C8, - 20393 - 11905: 0xBFEB, - 20394 - 11905: 0xD9AD, - 20395 - 11905: 0x8241, - 20396 - 11905: 0xD9AF, - 20397 - 11905: 0x8242, - 20398 - 11905: 0xCEEA, - 20399 - 11905: 0xBAEE, - 20400 - 11905: 0x8243, - 20401 - 11905: 0x8244, - 20402 - 11905: 0x8245, - 20403 - 11905: 0x8246, - 20404 - 11905: 0x8247, - 20405 - 11905: 0xC7D6, - 20406 - 11905: 0x8248, - 20407 - 11905: 0x8249, - 20408 - 11905: 0x824A, - 20409 - 11905: 0x824B, - 20410 - 11905: 0x824C, - 20411 - 11905: 0x824D, - 20412 - 11905: 0x824E, - 20413 - 11905: 0x824F, - 20414 - 11905: 0x8250, - 20415 - 11905: 0xB1E3, - 20416 - 11905: 0x8251, - 20417 - 11905: 0x8252, - 20418 - 11905: 0x8253, - 20419 - 11905: 0xB4D9, - 20420 - 11905: 0xB6ED, - 20421 - 11905: 0xD9B4, - 20422 - 11905: 0x8254, - 20423 - 11905: 0x8255, - 20424 - 11905: 0x8256, - 20425 - 11905: 0x8257, - 20426 - 11905: 0xBFA1, - 20427 - 11905: 0x8258, - 20428 - 11905: 0x8259, - 20429 - 11905: 0x825A, - 20430 - 11905: 0xD9DE, - 20431 - 11905: 0xC7CE, - 20432 - 11905: 0xC0FE, - 20433 - 11905: 0xD9B8, - 20434 - 11905: 0x825B, - 20435 - 11905: 0x825C, - 20436 - 11905: 0x825D, - 20437 - 11905: 0x825E, - 20438 - 11905: 0x825F, - 20439 - 11905: 0xCBD7, - 20440 - 11905: 0xB7FD, - 20441 - 11905: 0x8260, - 20442 - 11905: 0xD9B5, - 20443 - 11905: 0x8261, - 20444 - 11905: 0xD9B7, - 20445 - 11905: 0xB1A3, - 20446 - 11905: 0xD3E1, - 20447 - 11905: 0xD9B9, - 20448 - 11905: 0x8262, - 20449 - 11905: 0xD0C5, - 20450 - 11905: 0x8263, - 20451 - 11905: 0xD9B6, - 20452 - 11905: 0x8264, - 20453 - 11905: 0x8265, - 20454 - 11905: 0xD9B1, - 20455 - 11905: 0x8266, - 20456 - 11905: 0xD9B2, - 20457 - 11905: 0xC1A9, - 20458 - 11905: 0xD9B3, - 20459 - 11905: 0x8267, - 20460 - 11905: 0x8268, - 20461 - 11905: 0xBCF3, - 20462 - 11905: 0xD0DE, - 20463 - 11905: 0xB8A9, - 20464 - 11905: 0x8269, - 20465 - 11905: 0xBEE3, - 20466 - 11905: 0x826A, - 20467 - 11905: 0xD9BD, - 20468 - 11905: 0x826B, - 20469 - 11905: 0x826C, - 20470 - 11905: 0x826D, - 20471 - 11905: 0x826E, - 20472 - 11905: 0xD9BA, - 20473 - 11905: 0x826F, - 20474 - 11905: 0xB0B3, - 20475 - 11905: 0x8270, - 20476 - 11905: 0x8271, - 20477 - 11905: 0x8272, - 20478 - 11905: 0xD9C2, - 20479 - 11905: 0x8273, - 20480 - 11905: 0x8274, - 20481 - 11905: 0x8275, - 20482 - 11905: 0x8276, - 20483 - 11905: 0x8277, - 20484 - 11905: 0x8278, - 20485 - 11905: 0x8279, - 20486 - 11905: 0x827A, - 20487 - 11905: 0x827B, - 20488 - 11905: 0x827C, - 20489 - 11905: 0x827D, - 20490 - 11905: 0x827E, - 20491 - 11905: 0x8280, - 20492 - 11905: 0xD9C4, - 20493 - 11905: 0xB1B6, - 20494 - 11905: 0x8281, - 20495 - 11905: 0xD9BF, - 20496 - 11905: 0x8282, - 20497 - 11905: 0x8283, - 20498 - 11905: 0xB5B9, - 20499 - 11905: 0x8284, - 20500 - 11905: 0xBEF3, - 20501 - 11905: 0x8285, - 20502 - 11905: 0x8286, - 20503 - 11905: 0x8287, - 20504 - 11905: 0xCCC8, - 20505 - 11905: 0xBAF2, - 20506 - 11905: 0xD2D0, - 20507 - 11905: 0x8288, - 20508 - 11905: 0xD9C3, - 20509 - 11905: 0x8289, - 20510 - 11905: 0x828A, - 20511 - 11905: 0xBDE8, - 20512 - 11905: 0x828B, - 20513 - 11905: 0xB3AB, - 20514 - 11905: 0x828C, - 20515 - 11905: 0x828D, - 20516 - 11905: 0x828E, - 20517 - 11905: 0xD9C5, - 20518 - 11905: 0xBEEB, - 20519 - 11905: 0x828F, - 20520 - 11905: 0xD9C6, - 20521 - 11905: 0xD9BB, - 20522 - 11905: 0xC4DF, - 20523 - 11905: 0x8290, - 20524 - 11905: 0xD9BE, - 20525 - 11905: 0xD9C1, - 20526 - 11905: 0xD9C0, - 20527 - 11905: 0x8291, - 20528 - 11905: 0x8292, - 20529 - 11905: 0x8293, - 20530 - 11905: 0x8294, - 20531 - 11905: 0x8295, - 20532 - 11905: 0x8296, - 20533 - 11905: 0x8297, - 20534 - 11905: 0x8298, - 20535 - 11905: 0x8299, - 20536 - 11905: 0x829A, - 20537 - 11905: 0x829B, - 20538 - 11905: 0xD5AE, - 20539 - 11905: 0x829C, - 20540 - 11905: 0xD6B5, - 20541 - 11905: 0x829D, - 20542 - 11905: 0xC7E3, - 20543 - 11905: 0x829E, - 20544 - 11905: 0x829F, - 20545 - 11905: 0x82A0, - 20546 - 11905: 0x82A1, - 20547 - 11905: 0xD9C8, - 20548 - 11905: 0x82A2, - 20549 - 11905: 0x82A3, - 20550 - 11905: 0x82A4, - 20551 - 11905: 0xBCD9, - 20552 - 11905: 0xD9CA, - 20553 - 11905: 0x82A5, - 20554 - 11905: 0x82A6, - 20555 - 11905: 0x82A7, - 20556 - 11905: 0xD9BC, - 20557 - 11905: 0x82A8, - 20558 - 11905: 0xD9CB, - 20559 - 11905: 0xC6AB, - 20560 - 11905: 0x82A9, - 20561 - 11905: 0x82AA, - 20562 - 11905: 0x82AB, - 20563 - 11905: 0x82AC, - 20564 - 11905: 0x82AD, - 20565 - 11905: 0xD9C9, - 20566 - 11905: 0x82AE, - 20567 - 11905: 0x82AF, - 20568 - 11905: 0x82B0, - 20569 - 11905: 0x82B1, - 20570 - 11905: 0xD7F6, - 20571 - 11905: 0x82B2, - 20572 - 11905: 0xCDA3, - 20573 - 11905: 0x82B3, - 20574 - 11905: 0x82B4, - 20575 - 11905: 0x82B5, - 20576 - 11905: 0x82B6, - 20577 - 11905: 0x82B7, - 20578 - 11905: 0x82B8, - 20579 - 11905: 0x82B9, - 20580 - 11905: 0x82BA, - 20581 - 11905: 0xBDA1, - 20582 - 11905: 0x82BB, - 20583 - 11905: 0x82BC, - 20584 - 11905: 0x82BD, - 20585 - 11905: 0x82BE, - 20586 - 11905: 0x82BF, - 20587 - 11905: 0x82C0, - 20588 - 11905: 0xD9CC, - 20589 - 11905: 0x82C1, - 20590 - 11905: 0x82C2, - 20591 - 11905: 0x82C3, - 20592 - 11905: 0x82C4, - 20593 - 11905: 0x82C5, - 20594 - 11905: 0x82C6, - 20595 - 11905: 0x82C7, - 20596 - 11905: 0x82C8, - 20597 - 11905: 0x82C9, - 20598 - 11905: 0xC5BC, - 20599 - 11905: 0xCDB5, - 20600 - 11905: 0x82CA, - 20601 - 11905: 0x82CB, - 20602 - 11905: 0x82CC, - 20603 - 11905: 0xD9CD, - 20604 - 11905: 0x82CD, - 20605 - 11905: 0x82CE, - 20606 - 11905: 0xD9C7, - 20607 - 11905: 0xB3A5, - 20608 - 11905: 0xBFFE, - 20609 - 11905: 0x82CF, - 20610 - 11905: 0x82D0, - 20611 - 11905: 0x82D1, - 20612 - 11905: 0x82D2, - 20613 - 11905: 0xB8B5, - 20614 - 11905: 0x82D3, - 20615 - 11905: 0x82D4, - 20616 - 11905: 0xC0FC, - 20617 - 11905: 0x82D5, - 20618 - 11905: 0x82D6, - 20619 - 11905: 0x82D7, - 20620 - 11905: 0x82D8, - 20621 - 11905: 0xB0F8, - 20622 - 11905: 0x82D9, - 20623 - 11905: 0x82DA, - 20624 - 11905: 0x82DB, - 20625 - 11905: 0x82DC, - 20626 - 11905: 0x82DD, - 20627 - 11905: 0x82DE, - 20628 - 11905: 0x82DF, - 20629 - 11905: 0x82E0, - 20630 - 11905: 0x82E1, - 20631 - 11905: 0x82E2, - 20632 - 11905: 0x82E3, - 20633 - 11905: 0x82E4, - 20634 - 11905: 0x82E5, - 20635 - 11905: 0x82E6, - 20636 - 11905: 0x82E7, - 20637 - 11905: 0x82E8, - 20638 - 11905: 0x82E9, - 20639 - 11905: 0x82EA, - 20640 - 11905: 0x82EB, - 20641 - 11905: 0x82EC, - 20642 - 11905: 0x82ED, - 20643 - 11905: 0xB4F6, - 20644 - 11905: 0x82EE, - 20645 - 11905: 0xD9CE, - 20646 - 11905: 0x82EF, - 20647 - 11905: 0xD9CF, - 20648 - 11905: 0xB4A2, - 20649 - 11905: 0xD9D0, - 20650 - 11905: 0x82F0, - 20651 - 11905: 0x82F1, - 20652 - 11905: 0xB4DF, - 20653 - 11905: 0x82F2, - 20654 - 11905: 0x82F3, - 20655 - 11905: 0x82F4, - 20656 - 11905: 0x82F5, - 20657 - 11905: 0x82F6, - 20658 - 11905: 0xB0C1, - 20659 - 11905: 0x82F7, - 20660 - 11905: 0x82F8, - 20661 - 11905: 0x82F9, - 20662 - 11905: 0x82FA, - 20663 - 11905: 0x82FB, - 20664 - 11905: 0x82FC, - 20665 - 11905: 0x82FD, - 20666 - 11905: 0xD9D1, - 20667 - 11905: 0xC9B5, - 20668 - 11905: 0x82FE, - 20669 - 11905: 0x8340, - 20670 - 11905: 0x8341, - 20671 - 11905: 0x8342, - 20672 - 11905: 0x8343, - 20673 - 11905: 0x8344, - 20674 - 11905: 0x8345, - 20675 - 11905: 0x8346, - 20676 - 11905: 0x8347, - 20677 - 11905: 0x8348, - 20678 - 11905: 0x8349, - 20679 - 11905: 0x834A, - 20680 - 11905: 0x834B, - 20681 - 11905: 0x834C, - 20682 - 11905: 0x834D, - 20683 - 11905: 0x834E, - 20684 - 11905: 0x834F, - 20685 - 11905: 0x8350, - 20686 - 11905: 0x8351, - 20687 - 11905: 0xCFF1, - 20688 - 11905: 0x8352, - 20689 - 11905: 0x8353, - 20690 - 11905: 0x8354, - 20691 - 11905: 0x8355, - 20692 - 11905: 0x8356, - 20693 - 11905: 0x8357, - 20694 - 11905: 0xD9D2, - 20695 - 11905: 0x8358, - 20696 - 11905: 0x8359, - 20697 - 11905: 0x835A, - 20698 - 11905: 0xC1C5, - 20699 - 11905: 0x835B, - 20700 - 11905: 0x835C, - 20701 - 11905: 0x835D, - 20702 - 11905: 0x835E, - 20703 - 11905: 0x835F, - 20704 - 11905: 0x8360, - 20705 - 11905: 0x8361, - 20706 - 11905: 0x8362, - 20707 - 11905: 0x8363, - 20708 - 11905: 0x8364, - 20709 - 11905: 0x8365, - 20710 - 11905: 0xD9D6, - 20711 - 11905: 0xC9AE, - 20712 - 11905: 0x8366, - 20713 - 11905: 0x8367, - 20714 - 11905: 0x8368, - 20715 - 11905: 0x8369, - 20716 - 11905: 0xD9D5, - 20717 - 11905: 0xD9D4, - 20718 - 11905: 0xD9D7, - 20719 - 11905: 0x836A, - 20720 - 11905: 0x836B, - 20721 - 11905: 0x836C, - 20722 - 11905: 0x836D, - 20723 - 11905: 0xCBDB, - 20724 - 11905: 0x836E, - 20725 - 11905: 0xBDA9, - 20726 - 11905: 0x836F, - 20727 - 11905: 0x8370, - 20728 - 11905: 0x8371, - 20729 - 11905: 0x8372, - 20730 - 11905: 0x8373, - 20731 - 11905: 0xC6A7, - 20732 - 11905: 0x8374, - 20733 - 11905: 0x8375, - 20734 - 11905: 0x8376, - 20735 - 11905: 0x8377, - 20736 - 11905: 0x8378, - 20737 - 11905: 0x8379, - 20738 - 11905: 0x837A, - 20739 - 11905: 0x837B, - 20740 - 11905: 0x837C, - 20741 - 11905: 0x837D, - 20742 - 11905: 0xD9D3, - 20743 - 11905: 0xD9D8, - 20744 - 11905: 0x837E, - 20745 - 11905: 0x8380, - 20746 - 11905: 0x8381, - 20747 - 11905: 0xD9D9, - 20748 - 11905: 0x8382, - 20749 - 11905: 0x8383, - 20750 - 11905: 0x8384, - 20751 - 11905: 0x8385, - 20752 - 11905: 0x8386, - 20753 - 11905: 0x8387, - 20754 - 11905: 0xC8E5, - 20755 - 11905: 0x8388, - 20756 - 11905: 0x8389, - 20757 - 11905: 0x838A, - 20758 - 11905: 0x838B, - 20759 - 11905: 0x838C, - 20760 - 11905: 0x838D, - 20761 - 11905: 0x838E, - 20762 - 11905: 0x838F, - 20763 - 11905: 0x8390, - 20764 - 11905: 0x8391, - 20765 - 11905: 0x8392, - 20766 - 11905: 0x8393, - 20767 - 11905: 0x8394, - 20768 - 11905: 0x8395, - 20769 - 11905: 0xC0DC, - 20770 - 11905: 0x8396, - 20771 - 11905: 0x8397, - 20772 - 11905: 0x8398, - 20773 - 11905: 0x8399, - 20774 - 11905: 0x839A, - 20775 - 11905: 0x839B, - 20776 - 11905: 0x839C, - 20777 - 11905: 0x839D, - 20778 - 11905: 0x839E, - 20779 - 11905: 0x839F, - 20780 - 11905: 0x83A0, - 20781 - 11905: 0x83A1, - 20782 - 11905: 0x83A2, - 20783 - 11905: 0x83A3, - 20784 - 11905: 0x83A4, - 20785 - 11905: 0x83A5, - 20786 - 11905: 0x83A6, - 20787 - 11905: 0x83A7, - 20788 - 11905: 0x83A8, - 20789 - 11905: 0x83A9, - 20790 - 11905: 0x83AA, - 20791 - 11905: 0x83AB, - 20792 - 11905: 0x83AC, - 20793 - 11905: 0x83AD, - 20794 - 11905: 0x83AE, - 20795 - 11905: 0x83AF, - 20796 - 11905: 0x83B0, - 20797 - 11905: 0x83B1, - 20798 - 11905: 0x83B2, - 20799 - 11905: 0xB6F9, - 20800 - 11905: 0xD8A3, - 20801 - 11905: 0xD4CA, - 20802 - 11905: 0x83B3, - 20803 - 11905: 0xD4AA, - 20804 - 11905: 0xD0D6, - 20805 - 11905: 0xB3E4, - 20806 - 11905: 0xD5D7, - 20807 - 11905: 0x83B4, - 20808 - 11905: 0xCFC8, - 20809 - 11905: 0xB9E2, - 20810 - 11905: 0x83B5, - 20811 - 11905: 0xBFCB, - 20812 - 11905: 0x83B6, - 20813 - 11905: 0xC3E2, - 20814 - 11905: 0x83B7, - 20815 - 11905: 0x83B8, - 20816 - 11905: 0x83B9, - 20817 - 11905: 0xB6D2, - 20818 - 11905: 0x83BA, - 20819 - 11905: 0x83BB, - 20820 - 11905: 0xCDC3, - 20821 - 11905: 0xD9EE, - 20822 - 11905: 0xD9F0, - 20823 - 11905: 0x83BC, - 20824 - 11905: 0x83BD, - 20825 - 11905: 0x83BE, - 20826 - 11905: 0xB5B3, - 20827 - 11905: 0x83BF, - 20828 - 11905: 0xB6B5, - 20829 - 11905: 0x83C0, - 20830 - 11905: 0x83C1, - 20831 - 11905: 0x83C2, - 20832 - 11905: 0x83C3, - 20833 - 11905: 0x83C4, - 20834 - 11905: 0xBEA4, - 20835 - 11905: 0x83C5, - 20836 - 11905: 0x83C6, - 20837 - 11905: 0xC8EB, - 20838 - 11905: 0x83C7, - 20839 - 11905: 0x83C8, - 20840 - 11905: 0xC8AB, - 20841 - 11905: 0x83C9, - 20842 - 11905: 0x83CA, - 20843 - 11905: 0xB0CB, - 20844 - 11905: 0xB9AB, - 20845 - 11905: 0xC1F9, - 20846 - 11905: 0xD9E2, - 20847 - 11905: 0x83CB, - 20848 - 11905: 0xC0BC, - 20849 - 11905: 0xB9B2, - 20850 - 11905: 0x83CC, - 20851 - 11905: 0xB9D8, - 20852 - 11905: 0xD0CB, - 20853 - 11905: 0xB1F8, - 20854 - 11905: 0xC6E4, - 20855 - 11905: 0xBEDF, - 20856 - 11905: 0xB5E4, - 20857 - 11905: 0xD7C8, - 20858 - 11905: 0x83CD, - 20859 - 11905: 0xD1F8, - 20860 - 11905: 0xBCE6, - 20861 - 11905: 0xCADE, - 20862 - 11905: 0x83CE, - 20863 - 11905: 0x83CF, - 20864 - 11905: 0xBCBD, - 20865 - 11905: 0xD9E6, - 20866 - 11905: 0xD8E7, - 20867 - 11905: 0x83D0, - 20868 - 11905: 0x83D1, - 20869 - 11905: 0xC4DA, - 20870 - 11905: 0x83D2, - 20871 - 11905: 0x83D3, - 20872 - 11905: 0xB8D4, - 20873 - 11905: 0xC8BD, - 20874 - 11905: 0x83D4, - 20875 - 11905: 0x83D5, - 20876 - 11905: 0xB2E1, - 20877 - 11905: 0xD4D9, - 20878 - 11905: 0x83D6, - 20879 - 11905: 0x83D7, - 20880 - 11905: 0x83D8, - 20881 - 11905: 0x83D9, - 20882 - 11905: 0xC3B0, - 20883 - 11905: 0x83DA, - 20884 - 11905: 0x83DB, - 20885 - 11905: 0xC3E1, - 20886 - 11905: 0xDAA2, - 20887 - 11905: 0xC8DF, - 20888 - 11905: 0x83DC, - 20889 - 11905: 0xD0B4, - 20890 - 11905: 0x83DD, - 20891 - 11905: 0xBEFC, - 20892 - 11905: 0xC5A9, - 20893 - 11905: 0x83DE, - 20894 - 11905: 0x83DF, - 20895 - 11905: 0x83E0, - 20896 - 11905: 0xB9DA, - 20897 - 11905: 0x83E1, - 20898 - 11905: 0xDAA3, - 20899 - 11905: 0x83E2, - 20900 - 11905: 0xD4A9, - 20901 - 11905: 0xDAA4, - 20902 - 11905: 0x83E3, - 20903 - 11905: 0x83E4, - 20904 - 11905: 0x83E5, - 20905 - 11905: 0x83E6, - 20906 - 11905: 0x83E7, - 20907 - 11905: 0xD9FB, - 20908 - 11905: 0xB6AC, - 20909 - 11905: 0x83E8, - 20910 - 11905: 0x83E9, - 20911 - 11905: 0xB7EB, - 20912 - 11905: 0xB1F9, - 20913 - 11905: 0xD9FC, - 20914 - 11905: 0xB3E5, - 20915 - 11905: 0xBEF6, - 20916 - 11905: 0x83EA, - 20917 - 11905: 0xBFF6, - 20918 - 11905: 0xD2B1, - 20919 - 11905: 0xC0E4, - 20920 - 11905: 0x83EB, - 20921 - 11905: 0x83EC, - 20922 - 11905: 0x83ED, - 20923 - 11905: 0xB6B3, - 20924 - 11905: 0xD9FE, - 20925 - 11905: 0xD9FD, - 20926 - 11905: 0x83EE, - 20927 - 11905: 0x83EF, - 20928 - 11905: 0xBEBB, - 20929 - 11905: 0x83F0, - 20930 - 11905: 0x83F1, - 20931 - 11905: 0x83F2, - 20932 - 11905: 0xC6E0, - 20933 - 11905: 0x83F3, - 20934 - 11905: 0xD7BC, - 20935 - 11905: 0xDAA1, - 20936 - 11905: 0x83F4, - 20937 - 11905: 0xC1B9, - 20938 - 11905: 0x83F5, - 20939 - 11905: 0xB5F2, - 20940 - 11905: 0xC1E8, - 20941 - 11905: 0x83F6, - 20942 - 11905: 0x83F7, - 20943 - 11905: 0xBCF5, - 20944 - 11905: 0x83F8, - 20945 - 11905: 0xB4D5, - 20946 - 11905: 0x83F9, - 20947 - 11905: 0x83FA, - 20948 - 11905: 0x83FB, - 20949 - 11905: 0x83FC, - 20950 - 11905: 0x83FD, - 20951 - 11905: 0x83FE, - 20952 - 11905: 0x8440, - 20953 - 11905: 0x8441, - 20954 - 11905: 0x8442, - 20955 - 11905: 0xC1DD, - 20956 - 11905: 0x8443, - 20957 - 11905: 0xC4FD, - 20958 - 11905: 0x8444, - 20959 - 11905: 0x8445, - 20960 - 11905: 0xBCB8, - 20961 - 11905: 0xB7B2, - 20962 - 11905: 0x8446, - 20963 - 11905: 0x8447, - 20964 - 11905: 0xB7EF, - 20965 - 11905: 0x8448, - 20966 - 11905: 0x8449, - 20967 - 11905: 0x844A, - 20968 - 11905: 0x844B, - 20969 - 11905: 0x844C, - 20970 - 11905: 0x844D, - 20971 - 11905: 0xD9EC, - 20972 - 11905: 0x844E, - 20973 - 11905: 0xC6BE, - 20974 - 11905: 0x844F, - 20975 - 11905: 0xBFAD, - 20976 - 11905: 0xBBCB, - 20977 - 11905: 0x8450, - 20978 - 11905: 0x8451, - 20979 - 11905: 0xB5CA, - 20980 - 11905: 0x8452, - 20981 - 11905: 0xDBC9, - 20982 - 11905: 0xD0D7, - 20983 - 11905: 0x8453, - 20984 - 11905: 0xCDB9, - 20985 - 11905: 0xB0BC, - 20986 - 11905: 0xB3F6, - 20987 - 11905: 0xBBF7, - 20988 - 11905: 0xDBCA, - 20989 - 11905: 0xBAAF, - 20990 - 11905: 0x8454, - 20991 - 11905: 0xD4E4, - 20992 - 11905: 0xB5B6, - 20993 - 11905: 0xB5F3, - 20994 - 11905: 0xD8D6, - 20995 - 11905: 0xC8D0, - 20996 - 11905: 0x8455, - 20997 - 11905: 0x8456, - 20998 - 11905: 0xB7D6, - 20999 - 11905: 0xC7D0, - 21000 - 11905: 0xD8D7, - 21001 - 11905: 0x8457, - 21002 - 11905: 0xBFAF, - 21003 - 11905: 0x8458, - 21004 - 11905: 0x8459, - 21005 - 11905: 0xDBBB, - 21006 - 11905: 0xD8D8, - 21007 - 11905: 0x845A, - 21008 - 11905: 0x845B, - 21009 - 11905: 0xD0CC, - 21010 - 11905: 0xBBAE, - 21011 - 11905: 0x845C, - 21012 - 11905: 0x845D, - 21013 - 11905: 0x845E, - 21014 - 11905: 0xEBBE, - 21015 - 11905: 0xC1D0, - 21016 - 11905: 0xC1F5, - 21017 - 11905: 0xD4F2, - 21018 - 11905: 0xB8D5, - 21019 - 11905: 0xB4B4, - 21020 - 11905: 0x845F, - 21021 - 11905: 0xB3F5, - 21022 - 11905: 0x8460, - 21023 - 11905: 0x8461, - 21024 - 11905: 0xC9BE, - 21025 - 11905: 0x8462, - 21026 - 11905: 0x8463, - 21027 - 11905: 0x8464, - 21028 - 11905: 0xC5D0, - 21029 - 11905: 0x8465, - 21030 - 11905: 0x8466, - 21031 - 11905: 0x8467, - 21032 - 11905: 0xC5D9, - 21033 - 11905: 0xC0FB, - 21034 - 11905: 0x8468, - 21035 - 11905: 0xB1F0, - 21036 - 11905: 0x8469, - 21037 - 11905: 0xD8D9, - 21038 - 11905: 0xB9CE, - 21039 - 11905: 0x846A, - 21040 - 11905: 0xB5BD, - 21041 - 11905: 0x846B, - 21042 - 11905: 0x846C, - 21043 - 11905: 0xD8DA, - 21044 - 11905: 0x846D, - 21045 - 11905: 0x846E, - 21046 - 11905: 0xD6C6, - 21047 - 11905: 0xCBA2, - 21048 - 11905: 0xC8AF, - 21049 - 11905: 0xC9B2, - 21050 - 11905: 0xB4CC, - 21051 - 11905: 0xBFCC, - 21052 - 11905: 0x846F, - 21053 - 11905: 0xB9F4, - 21054 - 11905: 0x8470, - 21055 - 11905: 0xD8DB, - 21056 - 11905: 0xD8DC, - 21057 - 11905: 0xB6E7, - 21058 - 11905: 0xBCC1, - 21059 - 11905: 0xCCEA, - 21060 - 11905: 0x8471, - 21061 - 11905: 0x8472, - 21062 - 11905: 0x8473, - 21063 - 11905: 0x8474, - 21064 - 11905: 0x8475, - 21065 - 11905: 0x8476, - 21066 - 11905: 0xCFF7, - 21067 - 11905: 0x8477, - 21068 - 11905: 0xD8DD, - 21069 - 11905: 0xC7B0, - 21070 - 11905: 0x8478, - 21071 - 11905: 0x8479, - 21072 - 11905: 0xB9D0, - 21073 - 11905: 0xBDA3, - 21074 - 11905: 0x847A, - 21075 - 11905: 0x847B, - 21076 - 11905: 0xCCDE, - 21077 - 11905: 0x847C, - 21078 - 11905: 0xC6CA, - 21079 - 11905: 0x847D, - 21080 - 11905: 0x847E, - 21081 - 11905: 0x8480, - 21082 - 11905: 0x8481, - 21083 - 11905: 0x8482, - 21084 - 11905: 0xD8E0, - 21085 - 11905: 0x8483, - 21086 - 11905: 0xD8DE, - 21087 - 11905: 0x8484, - 21088 - 11905: 0x8485, - 21089 - 11905: 0xD8DF, - 21090 - 11905: 0x8486, - 21091 - 11905: 0x8487, - 21092 - 11905: 0x8488, - 21093 - 11905: 0xB0FE, - 21094 - 11905: 0x8489, - 21095 - 11905: 0xBEE7, - 21096 - 11905: 0x848A, - 21097 - 11905: 0xCAA3, - 21098 - 11905: 0xBCF4, - 21099 - 11905: 0x848B, - 21100 - 11905: 0x848C, - 21101 - 11905: 0x848D, - 21102 - 11905: 0x848E, - 21103 - 11905: 0xB8B1, - 21104 - 11905: 0x848F, - 21105 - 11905: 0x8490, - 21106 - 11905: 0xB8EE, - 21107 - 11905: 0x8491, - 21108 - 11905: 0x8492, - 21109 - 11905: 0x8493, - 21110 - 11905: 0x8494, - 21111 - 11905: 0x8495, - 21112 - 11905: 0x8496, - 21113 - 11905: 0x8497, - 21114 - 11905: 0x8498, - 21115 - 11905: 0x8499, - 21116 - 11905: 0x849A, - 21117 - 11905: 0xD8E2, - 21118 - 11905: 0x849B, - 21119 - 11905: 0xBDCB, - 21120 - 11905: 0x849C, - 21121 - 11905: 0xD8E4, - 21122 - 11905: 0xD8E3, - 21123 - 11905: 0x849D, - 21124 - 11905: 0x849E, - 21125 - 11905: 0x849F, - 21126 - 11905: 0x84A0, - 21127 - 11905: 0x84A1, - 21128 - 11905: 0xC5FC, - 21129 - 11905: 0x84A2, - 21130 - 11905: 0x84A3, - 21131 - 11905: 0x84A4, - 21132 - 11905: 0x84A5, - 21133 - 11905: 0x84A6, - 21134 - 11905: 0x84A7, - 21135 - 11905: 0x84A8, - 21136 - 11905: 0xD8E5, - 21137 - 11905: 0x84A9, - 21138 - 11905: 0x84AA, - 21139 - 11905: 0xD8E6, - 21140 - 11905: 0x84AB, - 21141 - 11905: 0x84AC, - 21142 - 11905: 0x84AD, - 21143 - 11905: 0x84AE, - 21144 - 11905: 0x84AF, - 21145 - 11905: 0x84B0, - 21146 - 11905: 0x84B1, - 21147 - 11905: 0xC1A6, - 21148 - 11905: 0x84B2, - 21149 - 11905: 0xC8B0, - 21150 - 11905: 0xB0EC, - 21151 - 11905: 0xB9A6, - 21152 - 11905: 0xBCD3, - 21153 - 11905: 0xCEF1, - 21154 - 11905: 0xDBBD, - 21155 - 11905: 0xC1D3, - 21156 - 11905: 0x84B3, - 21157 - 11905: 0x84B4, - 21158 - 11905: 0x84B5, - 21159 - 11905: 0x84B6, - 21160 - 11905: 0xB6AF, - 21161 - 11905: 0xD6FA, - 21162 - 11905: 0xC5AC, - 21163 - 11905: 0xBDD9, - 21164 - 11905: 0xDBBE, - 21165 - 11905: 0xDBBF, - 21166 - 11905: 0x84B7, - 21167 - 11905: 0x84B8, - 21168 - 11905: 0x84B9, - 21169 - 11905: 0xC0F8, - 21170 - 11905: 0xBEA2, - 21171 - 11905: 0xC0CD, - 21172 - 11905: 0x84BA, - 21173 - 11905: 0x84BB, - 21174 - 11905: 0x84BC, - 21175 - 11905: 0x84BD, - 21176 - 11905: 0x84BE, - 21177 - 11905: 0x84BF, - 21178 - 11905: 0x84C0, - 21179 - 11905: 0x84C1, - 21180 - 11905: 0x84C2, - 21181 - 11905: 0x84C3, - 21182 - 11905: 0xDBC0, - 21183 - 11905: 0xCAC6, - 21184 - 11905: 0x84C4, - 21185 - 11905: 0x84C5, - 21186 - 11905: 0x84C6, - 21187 - 11905: 0xB2AA, - 21188 - 11905: 0x84C7, - 21189 - 11905: 0x84C8, - 21190 - 11905: 0x84C9, - 21191 - 11905: 0xD3C2, - 21192 - 11905: 0x84CA, - 21193 - 11905: 0xC3E3, - 21194 - 11905: 0x84CB, - 21195 - 11905: 0xD1AB, - 21196 - 11905: 0x84CC, - 21197 - 11905: 0x84CD, - 21198 - 11905: 0x84CE, - 21199 - 11905: 0x84CF, - 21200 - 11905: 0xDBC2, - 21201 - 11905: 0x84D0, - 21202 - 11905: 0xC0D5, - 21203 - 11905: 0x84D1, - 21204 - 11905: 0x84D2, - 21205 - 11905: 0x84D3, - 21206 - 11905: 0xDBC3, - 21207 - 11905: 0x84D4, - 21208 - 11905: 0xBFB1, - 21209 - 11905: 0x84D5, - 21210 - 11905: 0x84D6, - 21211 - 11905: 0x84D7, - 21212 - 11905: 0x84D8, - 21213 - 11905: 0x84D9, - 21214 - 11905: 0x84DA, - 21215 - 11905: 0xC4BC, - 21216 - 11905: 0x84DB, - 21217 - 11905: 0x84DC, - 21218 - 11905: 0x84DD, - 21219 - 11905: 0x84DE, - 21220 - 11905: 0xC7DA, - 21221 - 11905: 0x84DF, - 21222 - 11905: 0x84E0, - 21223 - 11905: 0x84E1, - 21224 - 11905: 0x84E2, - 21225 - 11905: 0x84E3, - 21226 - 11905: 0x84E4, - 21227 - 11905: 0x84E5, - 21228 - 11905: 0x84E6, - 21229 - 11905: 0x84E7, - 21230 - 11905: 0x84E8, - 21231 - 11905: 0x84E9, - 21232 - 11905: 0xDBC4, - 21233 - 11905: 0x84EA, - 21234 - 11905: 0x84EB, - 21235 - 11905: 0x84EC, - 21236 - 11905: 0x84ED, - 21237 - 11905: 0x84EE, - 21238 - 11905: 0x84EF, - 21239 - 11905: 0x84F0, - 21240 - 11905: 0x84F1, - 21241 - 11905: 0xD9E8, - 21242 - 11905: 0xC9D7, - 21243 - 11905: 0x84F2, - 21244 - 11905: 0x84F3, - 21245 - 11905: 0x84F4, - 21246 - 11905: 0xB9B4, - 21247 - 11905: 0xCEF0, - 21248 - 11905: 0xD4C8, - 21249 - 11905: 0x84F5, - 21250 - 11905: 0x84F6, - 21251 - 11905: 0x84F7, - 21252 - 11905: 0x84F8, - 21253 - 11905: 0xB0FC, - 21254 - 11905: 0xB4D2, - 21255 - 11905: 0x84F9, - 21256 - 11905: 0xD0D9, - 21257 - 11905: 0x84FA, - 21258 - 11905: 0x84FB, - 21259 - 11905: 0x84FC, - 21260 - 11905: 0x84FD, - 21261 - 11905: 0xD9E9, - 21262 - 11905: 0x84FE, - 21263 - 11905: 0xDECB, - 21264 - 11905: 0xD9EB, - 21265 - 11905: 0x8540, - 21266 - 11905: 0x8541, - 21267 - 11905: 0x8542, - 21268 - 11905: 0x8543, - 21269 - 11905: 0xD8B0, - 21270 - 11905: 0xBBAF, - 21271 - 11905: 0xB1B1, - 21272 - 11905: 0x8544, - 21273 - 11905: 0xB3D7, - 21274 - 11905: 0xD8CE, - 21275 - 11905: 0x8545, - 21276 - 11905: 0x8546, - 21277 - 11905: 0xD4D1, - 21278 - 11905: 0x8547, - 21279 - 11905: 0x8548, - 21280 - 11905: 0xBDB3, - 21281 - 11905: 0xBFEF, - 21282 - 11905: 0x8549, - 21283 - 11905: 0xCFBB, - 21284 - 11905: 0x854A, - 21285 - 11905: 0x854B, - 21286 - 11905: 0xD8D0, - 21287 - 11905: 0x854C, - 21288 - 11905: 0x854D, - 21289 - 11905: 0x854E, - 21290 - 11905: 0xB7CB, - 21291 - 11905: 0x854F, - 21292 - 11905: 0x8550, - 21293 - 11905: 0x8551, - 21294 - 11905: 0xD8D1, - 21295 - 11905: 0x8552, - 21296 - 11905: 0x8553, - 21297 - 11905: 0x8554, - 21298 - 11905: 0x8555, - 21299 - 11905: 0x8556, - 21300 - 11905: 0x8557, - 21301 - 11905: 0x8558, - 21302 - 11905: 0x8559, - 21303 - 11905: 0x855A, - 21304 - 11905: 0x855B, - 21305 - 11905: 0xC6A5, - 21306 - 11905: 0xC7F8, - 21307 - 11905: 0xD2BD, - 21308 - 11905: 0x855C, - 21309 - 11905: 0x855D, - 21310 - 11905: 0xD8D2, - 21311 - 11905: 0xC4E4, - 21312 - 11905: 0x855E, - 21313 - 11905: 0xCAAE, - 21314 - 11905: 0x855F, - 21315 - 11905: 0xC7A7, - 21316 - 11905: 0x8560, - 21317 - 11905: 0xD8A6, - 21318 - 11905: 0x8561, - 21319 - 11905: 0xC9FD, - 21320 - 11905: 0xCEE7, - 21321 - 11905: 0xBBDC, - 21322 - 11905: 0xB0EB, - 21323 - 11905: 0x8562, - 21324 - 11905: 0x8563, - 21325 - 11905: 0x8564, - 21326 - 11905: 0xBBAA, - 21327 - 11905: 0xD0AD, - 21328 - 11905: 0x8565, - 21329 - 11905: 0xB1B0, - 21330 - 11905: 0xD7E4, - 21331 - 11905: 0xD7BF, - 21332 - 11905: 0x8566, - 21333 - 11905: 0xB5A5, - 21334 - 11905: 0xC2F4, - 21335 - 11905: 0xC4CF, - 21336 - 11905: 0x8567, - 21337 - 11905: 0x8568, - 21338 - 11905: 0xB2A9, - 21339 - 11905: 0x8569, - 21340 - 11905: 0xB2B7, - 21341 - 11905: 0x856A, - 21342 - 11905: 0xB1E5, - 21343 - 11905: 0xDFB2, - 21344 - 11905: 0xD5BC, - 21345 - 11905: 0xBFA8, - 21346 - 11905: 0xC2AC, - 21347 - 11905: 0xD8D5, - 21348 - 11905: 0xC2B1, - 21349 - 11905: 0x856B, - 21350 - 11905: 0xD8D4, - 21351 - 11905: 0xCED4, - 21352 - 11905: 0x856C, - 21353 - 11905: 0xDAE0, - 21354 - 11905: 0x856D, - 21355 - 11905: 0xCEC0, - 21356 - 11905: 0x856E, - 21357 - 11905: 0x856F, - 21358 - 11905: 0xD8B4, - 21359 - 11905: 0xC3AE, - 21360 - 11905: 0xD3A1, - 21361 - 11905: 0xCEA3, - 21362 - 11905: 0x8570, - 21363 - 11905: 0xBCB4, - 21364 - 11905: 0xC8B4, - 21365 - 11905: 0xC2D1, - 21366 - 11905: 0x8571, - 21367 - 11905: 0xBEED, - 21368 - 11905: 0xD0B6, - 21369 - 11905: 0x8572, - 21370 - 11905: 0xDAE1, - 21371 - 11905: 0x8573, - 21372 - 11905: 0x8574, - 21373 - 11905: 0x8575, - 21374 - 11905: 0x8576, - 21375 - 11905: 0xC7E4, - 21376 - 11905: 0x8577, - 21377 - 11905: 0x8578, - 21378 - 11905: 0xB3A7, - 21379 - 11905: 0x8579, - 21380 - 11905: 0xB6F2, - 21381 - 11905: 0xCCFC, - 21382 - 11905: 0xC0FA, - 21383 - 11905: 0x857A, - 21384 - 11905: 0x857B, - 21385 - 11905: 0xC0F7, - 21386 - 11905: 0x857C, - 21387 - 11905: 0xD1B9, - 21388 - 11905: 0xD1E1, - 21389 - 11905: 0xD8C7, - 21390 - 11905: 0x857D, - 21391 - 11905: 0x857E, - 21392 - 11905: 0x8580, - 21393 - 11905: 0x8581, - 21394 - 11905: 0x8582, - 21395 - 11905: 0x8583, - 21396 - 11905: 0x8584, - 21397 - 11905: 0xB2DE, - 21398 - 11905: 0x8585, - 21399 - 11905: 0x8586, - 21400 - 11905: 0xC0E5, - 21401 - 11905: 0x8587, - 21402 - 11905: 0xBAF1, - 21403 - 11905: 0x8588, - 21404 - 11905: 0x8589, - 21405 - 11905: 0xD8C8, - 21406 - 11905: 0x858A, - 21407 - 11905: 0xD4AD, - 21408 - 11905: 0x858B, - 21409 - 11905: 0x858C, - 21410 - 11905: 0xCFE1, - 21411 - 11905: 0xD8C9, - 21412 - 11905: 0x858D, - 21413 - 11905: 0xD8CA, - 21414 - 11905: 0xCFC3, - 21415 - 11905: 0x858E, - 21416 - 11905: 0xB3F8, - 21417 - 11905: 0xBEC7, - 21418 - 11905: 0x858F, - 21419 - 11905: 0x8590, - 21420 - 11905: 0x8591, - 21421 - 11905: 0x8592, - 21422 - 11905: 0xD8CB, - 21423 - 11905: 0x8593, - 21424 - 11905: 0x8594, - 21425 - 11905: 0x8595, - 21426 - 11905: 0x8596, - 21427 - 11905: 0x8597, - 21428 - 11905: 0x8598, - 21429 - 11905: 0x8599, - 21430 - 11905: 0xDBCC, - 21431 - 11905: 0x859A, - 21432 - 11905: 0x859B, - 21433 - 11905: 0x859C, - 21434 - 11905: 0x859D, - 21435 - 11905: 0xC8A5, - 21436 - 11905: 0x859E, - 21437 - 11905: 0x859F, - 21438 - 11905: 0x85A0, - 21439 - 11905: 0xCFD8, - 21440 - 11905: 0x85A1, - 21441 - 11905: 0xC8FE, - 21442 - 11905: 0xB2CE, - 21443 - 11905: 0x85A2, - 21444 - 11905: 0x85A3, - 21445 - 11905: 0x85A4, - 21446 - 11905: 0x85A5, - 21447 - 11905: 0x85A6, - 21448 - 11905: 0xD3D6, - 21449 - 11905: 0xB2E6, - 21450 - 11905: 0xBCB0, - 21451 - 11905: 0xD3D1, - 21452 - 11905: 0xCBAB, - 21453 - 11905: 0xB7B4, - 21454 - 11905: 0x85A7, - 21455 - 11905: 0x85A8, - 21456 - 11905: 0x85A9, - 21457 - 11905: 0xB7A2, - 21458 - 11905: 0x85AA, - 21459 - 11905: 0x85AB, - 21460 - 11905: 0xCAE5, - 21461 - 11905: 0x85AC, - 21462 - 11905: 0xC8A1, - 21463 - 11905: 0xCADC, - 21464 - 11905: 0xB1E4, - 21465 - 11905: 0xD0F0, - 21466 - 11905: 0x85AD, - 21467 - 11905: 0xC5D1, - 21468 - 11905: 0x85AE, - 21469 - 11905: 0x85AF, - 21470 - 11905: 0x85B0, - 21471 - 11905: 0xDBC5, - 21472 - 11905: 0xB5FE, - 21473 - 11905: 0x85B1, - 21474 - 11905: 0x85B2, - 21475 - 11905: 0xBFDA, - 21476 - 11905: 0xB9C5, - 21477 - 11905: 0xBEE4, - 21478 - 11905: 0xC1ED, - 21479 - 11905: 0x85B3, - 21480 - 11905: 0xDFB6, - 21481 - 11905: 0xDFB5, - 21482 - 11905: 0xD6BB, - 21483 - 11905: 0xBDD0, - 21484 - 11905: 0xD5D9, - 21485 - 11905: 0xB0C8, - 21486 - 11905: 0xB6A3, - 21487 - 11905: 0xBFC9, - 21488 - 11905: 0xCCA8, - 21489 - 11905: 0xDFB3, - 21490 - 11905: 0xCAB7, - 21491 - 11905: 0xD3D2, - 21492 - 11905: 0x85B4, - 21493 - 11905: 0xD8CF, - 21494 - 11905: 0xD2B6, - 21495 - 11905: 0xBAC5, - 21496 - 11905: 0xCBBE, - 21497 - 11905: 0xCCBE, - 21498 - 11905: 0x85B5, - 21499 - 11905: 0xDFB7, - 21500 - 11905: 0xB5F0, - 21501 - 11905: 0xDFB4, - 21502 - 11905: 0x85B6, - 21503 - 11905: 0x85B7, - 21504 - 11905: 0x85B8, - 21505 - 11905: 0xD3F5, - 21506 - 11905: 0x85B9, - 21507 - 11905: 0xB3D4, - 21508 - 11905: 0xB8F7, - 21509 - 11905: 0x85BA, - 21510 - 11905: 0xDFBA, - 21511 - 11905: 0x85BB, - 21512 - 11905: 0xBACF, - 21513 - 11905: 0xBCAA, - 21514 - 11905: 0xB5F5, - 21515 - 11905: 0x85BC, - 21516 - 11905: 0xCDAC, - 21517 - 11905: 0xC3FB, - 21518 - 11905: 0xBAF3, - 21519 - 11905: 0xC0F4, - 21520 - 11905: 0xCDC2, - 21521 - 11905: 0xCFF2, - 21522 - 11905: 0xDFB8, - 21523 - 11905: 0xCFC5, - 21524 - 11905: 0x85BD, - 21525 - 11905: 0xC2C0, - 21526 - 11905: 0xDFB9, - 21527 - 11905: 0xC2F0, - 21528 - 11905: 0x85BE, - 21529 - 11905: 0x85BF, - 21530 - 11905: 0x85C0, - 21531 - 11905: 0xBEFD, - 21532 - 11905: 0x85C1, - 21533 - 11905: 0xC1DF, - 21534 - 11905: 0xCDCC, - 21535 - 11905: 0xD2F7, - 21536 - 11905: 0xB7CD, - 21537 - 11905: 0xDFC1, - 21538 - 11905: 0x85C2, - 21539 - 11905: 0xDFC4, - 21540 - 11905: 0x85C3, - 21541 - 11905: 0x85C4, - 21542 - 11905: 0xB7F1, - 21543 - 11905: 0xB0C9, - 21544 - 11905: 0xB6D6, - 21545 - 11905: 0xB7D4, - 21546 - 11905: 0x85C5, - 21547 - 11905: 0xBAAC, - 21548 - 11905: 0xCCFD, - 21549 - 11905: 0xBFD4, - 21550 - 11905: 0xCBB1, - 21551 - 11905: 0xC6F4, - 21552 - 11905: 0x85C6, - 21553 - 11905: 0xD6A8, - 21554 - 11905: 0xDFC5, - 21555 - 11905: 0x85C7, - 21556 - 11905: 0xCEE2, - 21557 - 11905: 0xB3B3, - 21558 - 11905: 0x85C8, - 21559 - 11905: 0x85C9, - 21560 - 11905: 0xCEFC, - 21561 - 11905: 0xB4B5, - 21562 - 11905: 0x85CA, - 21563 - 11905: 0xCEC7, - 21564 - 11905: 0xBAF0, - 21565 - 11905: 0x85CB, - 21566 - 11905: 0xCEE1, - 21567 - 11905: 0x85CC, - 21568 - 11905: 0xD1BD, - 21569 - 11905: 0x85CD, - 21570 - 11905: 0x85CE, - 21571 - 11905: 0xDFC0, - 21572 - 11905: 0x85CF, - 21573 - 11905: 0x85D0, - 21574 - 11905: 0xB4F4, - 21575 - 11905: 0x85D1, - 21576 - 11905: 0xB3CA, - 21577 - 11905: 0x85D2, - 21578 - 11905: 0xB8E6, - 21579 - 11905: 0xDFBB, - 21580 - 11905: 0x85D3, - 21581 - 11905: 0x85D4, - 21582 - 11905: 0x85D5, - 21583 - 11905: 0x85D6, - 21584 - 11905: 0xC4C5, - 21585 - 11905: 0x85D7, - 21586 - 11905: 0xDFBC, - 21587 - 11905: 0xDFBD, - 21588 - 11905: 0xDFBE, - 21589 - 11905: 0xC5BB, - 21590 - 11905: 0xDFBF, - 21591 - 11905: 0xDFC2, - 21592 - 11905: 0xD4B1, - 21593 - 11905: 0xDFC3, - 21594 - 11905: 0x85D8, - 21595 - 11905: 0xC7BA, - 21596 - 11905: 0xCED8, - 21597 - 11905: 0x85D9, - 21598 - 11905: 0x85DA, - 21599 - 11905: 0x85DB, - 21600 - 11905: 0x85DC, - 21601 - 11905: 0x85DD, - 21602 - 11905: 0xC4D8, - 21603 - 11905: 0x85DE, - 21604 - 11905: 0xDFCA, - 21605 - 11905: 0x85DF, - 21606 - 11905: 0xDFCF, - 21607 - 11905: 0x85E0, - 21608 - 11905: 0xD6DC, - 21609 - 11905: 0x85E1, - 21610 - 11905: 0x85E2, - 21611 - 11905: 0x85E3, - 21612 - 11905: 0x85E4, - 21613 - 11905: 0x85E5, - 21614 - 11905: 0x85E6, - 21615 - 11905: 0x85E7, - 21616 - 11905: 0x85E8, - 21617 - 11905: 0xDFC9, - 21618 - 11905: 0xDFDA, - 21619 - 11905: 0xCEB6, - 21620 - 11905: 0x85E9, - 21621 - 11905: 0xBAC7, - 21622 - 11905: 0xDFCE, - 21623 - 11905: 0xDFC8, - 21624 - 11905: 0xC5DE, - 21625 - 11905: 0x85EA, - 21626 - 11905: 0x85EB, - 21627 - 11905: 0xC9EB, - 21628 - 11905: 0xBAF4, - 21629 - 11905: 0xC3FC, - 21630 - 11905: 0x85EC, - 21631 - 11905: 0x85ED, - 21632 - 11905: 0xBED7, - 21633 - 11905: 0x85EE, - 21634 - 11905: 0xDFC6, - 21635 - 11905: 0x85EF, - 21636 - 11905: 0xDFCD, - 21637 - 11905: 0x85F0, - 21638 - 11905: 0xC5D8, - 21639 - 11905: 0x85F1, - 21640 - 11905: 0x85F2, - 21641 - 11905: 0x85F3, - 21642 - 11905: 0x85F4, - 21643 - 11905: 0xD5A6, - 21644 - 11905: 0xBACD, - 21645 - 11905: 0x85F5, - 21646 - 11905: 0xBECC, - 21647 - 11905: 0xD3BD, - 21648 - 11905: 0xB8C0, - 21649 - 11905: 0x85F6, - 21650 - 11905: 0xD6E4, - 21651 - 11905: 0x85F7, - 21652 - 11905: 0xDFC7, - 21653 - 11905: 0xB9BE, - 21654 - 11905: 0xBFA7, - 21655 - 11905: 0x85F8, - 21656 - 11905: 0x85F9, - 21657 - 11905: 0xC1FC, - 21658 - 11905: 0xDFCB, - 21659 - 11905: 0xDFCC, - 21660 - 11905: 0x85FA, - 21661 - 11905: 0xDFD0, - 21662 - 11905: 0x85FB, - 21663 - 11905: 0x85FC, - 21664 - 11905: 0x85FD, - 21665 - 11905: 0x85FE, - 21666 - 11905: 0x8640, - 21667 - 11905: 0xDFDB, - 21668 - 11905: 0xDFE5, - 21669 - 11905: 0x8641, - 21670 - 11905: 0xDFD7, - 21671 - 11905: 0xDFD6, - 21672 - 11905: 0xD7C9, - 21673 - 11905: 0xDFE3, - 21674 - 11905: 0xDFE4, - 21675 - 11905: 0xE5EB, - 21676 - 11905: 0xD2A7, - 21677 - 11905: 0xDFD2, - 21678 - 11905: 0x8642, - 21679 - 11905: 0xBFA9, - 21680 - 11905: 0x8643, - 21681 - 11905: 0xD4DB, - 21682 - 11905: 0x8644, - 21683 - 11905: 0xBFC8, - 21684 - 11905: 0xDFD4, - 21685 - 11905: 0x8645, - 21686 - 11905: 0x8646, - 21687 - 11905: 0x8647, - 21688 - 11905: 0xCFCC, - 21689 - 11905: 0x8648, - 21690 - 11905: 0x8649, - 21691 - 11905: 0xDFDD, - 21692 - 11905: 0x864A, - 21693 - 11905: 0xD1CA, - 21694 - 11905: 0x864B, - 21695 - 11905: 0xDFDE, - 21696 - 11905: 0xB0A7, - 21697 - 11905: 0xC6B7, - 21698 - 11905: 0xDFD3, - 21699 - 11905: 0x864C, - 21700 - 11905: 0xBAE5, - 21701 - 11905: 0x864D, - 21702 - 11905: 0xB6DF, - 21703 - 11905: 0xCDDB, - 21704 - 11905: 0xB9FE, - 21705 - 11905: 0xD4D5, - 21706 - 11905: 0x864E, - 21707 - 11905: 0x864F, - 21708 - 11905: 0xDFDF, - 21709 - 11905: 0xCFEC, - 21710 - 11905: 0xB0A5, - 21711 - 11905: 0xDFE7, - 21712 - 11905: 0xDFD1, - 21713 - 11905: 0xD1C6, - 21714 - 11905: 0xDFD5, - 21715 - 11905: 0xDFD8, - 21716 - 11905: 0xDFD9, - 21717 - 11905: 0xDFDC, - 21718 - 11905: 0x8650, - 21719 - 11905: 0xBBA9, - 21720 - 11905: 0x8651, - 21721 - 11905: 0xDFE0, - 21722 - 11905: 0xDFE1, - 21723 - 11905: 0x8652, - 21724 - 11905: 0xDFE2, - 21725 - 11905: 0xDFE6, - 21726 - 11905: 0xDFE8, - 21727 - 11905: 0xD3B4, - 21728 - 11905: 0x8653, - 21729 - 11905: 0x8654, - 21730 - 11905: 0x8655, - 21731 - 11905: 0x8656, - 21732 - 11905: 0x8657, - 21733 - 11905: 0xB8E7, - 21734 - 11905: 0xC5B6, - 21735 - 11905: 0xDFEA, - 21736 - 11905: 0xC9DA, - 21737 - 11905: 0xC1A8, - 21738 - 11905: 0xC4C4, - 21739 - 11905: 0x8658, - 21740 - 11905: 0x8659, - 21741 - 11905: 0xBFDE, - 21742 - 11905: 0xCFF8, - 21743 - 11905: 0x865A, - 21744 - 11905: 0x865B, - 21745 - 11905: 0x865C, - 21746 - 11905: 0xD5DC, - 21747 - 11905: 0xDFEE, - 21748 - 11905: 0x865D, - 21749 - 11905: 0x865E, - 21750 - 11905: 0x865F, - 21751 - 11905: 0x8660, - 21752 - 11905: 0x8661, - 21753 - 11905: 0x8662, - 21754 - 11905: 0xB2B8, - 21755 - 11905: 0x8663, - 21756 - 11905: 0xBADF, - 21757 - 11905: 0xDFEC, - 21758 - 11905: 0x8664, - 21759 - 11905: 0xDBC1, - 21760 - 11905: 0x8665, - 21761 - 11905: 0xD1E4, - 21762 - 11905: 0x8666, - 21763 - 11905: 0x8667, - 21764 - 11905: 0x8668, - 21765 - 11905: 0x8669, - 21766 - 11905: 0xCBF4, - 21767 - 11905: 0xB4BD, - 21768 - 11905: 0x866A, - 21769 - 11905: 0xB0A6, - 21770 - 11905: 0x866B, - 21771 - 11905: 0x866C, - 21772 - 11905: 0x866D, - 21773 - 11905: 0x866E, - 21774 - 11905: 0x866F, - 21775 - 11905: 0xDFF1, - 21776 - 11905: 0xCCC6, - 21777 - 11905: 0xDFF2, - 21778 - 11905: 0x8670, - 21779 - 11905: 0x8671, - 21780 - 11905: 0xDFED, - 21781 - 11905: 0x8672, - 21782 - 11905: 0x8673, - 21783 - 11905: 0x8674, - 21784 - 11905: 0x8675, - 21785 - 11905: 0x8676, - 21786 - 11905: 0x8677, - 21787 - 11905: 0xDFE9, - 21788 - 11905: 0x8678, - 21789 - 11905: 0x8679, - 21790 - 11905: 0x867A, - 21791 - 11905: 0x867B, - 21792 - 11905: 0xDFEB, - 21793 - 11905: 0x867C, - 21794 - 11905: 0xDFEF, - 21795 - 11905: 0xDFF0, - 21796 - 11905: 0xBBBD, - 21797 - 11905: 0x867D, - 21798 - 11905: 0x867E, - 21799 - 11905: 0xDFF3, - 21800 - 11905: 0x8680, - 21801 - 11905: 0x8681, - 21802 - 11905: 0xDFF4, - 21803 - 11905: 0x8682, - 21804 - 11905: 0xBBA3, - 21805 - 11905: 0x8683, - 21806 - 11905: 0xCADB, - 21807 - 11905: 0xCEA8, - 21808 - 11905: 0xE0A7, - 21809 - 11905: 0xB3AA, - 21810 - 11905: 0x8684, - 21811 - 11905: 0xE0A6, - 21812 - 11905: 0x8685, - 21813 - 11905: 0x8686, - 21814 - 11905: 0x8687, - 21815 - 11905: 0xE0A1, - 21816 - 11905: 0x8688, - 21817 - 11905: 0x8689, - 21818 - 11905: 0x868A, - 21819 - 11905: 0x868B, - 21820 - 11905: 0xDFFE, - 21821 - 11905: 0x868C, - 21822 - 11905: 0xCDD9, - 21823 - 11905: 0xDFFC, - 21824 - 11905: 0x868D, - 21825 - 11905: 0xDFFA, - 21826 - 11905: 0x868E, - 21827 - 11905: 0xBFD0, - 21828 - 11905: 0xD7C4, - 21829 - 11905: 0x868F, - 21830 - 11905: 0xC9CC, - 21831 - 11905: 0x8690, - 21832 - 11905: 0x8691, - 21833 - 11905: 0xDFF8, - 21834 - 11905: 0xB0A1, - 21835 - 11905: 0x8692, - 21836 - 11905: 0x8693, - 21837 - 11905: 0x8694, - 21838 - 11905: 0x8695, - 21839 - 11905: 0x8696, - 21840 - 11905: 0xDFFD, - 21841 - 11905: 0x8697, - 21842 - 11905: 0x8698, - 21843 - 11905: 0x8699, - 21844 - 11905: 0x869A, - 21845 - 11905: 0xDFFB, - 21846 - 11905: 0xE0A2, - 21847 - 11905: 0x869B, - 21848 - 11905: 0x869C, - 21849 - 11905: 0x869D, - 21850 - 11905: 0x869E, - 21851 - 11905: 0x869F, - 21852 - 11905: 0xE0A8, - 21853 - 11905: 0x86A0, - 21854 - 11905: 0x86A1, - 21855 - 11905: 0x86A2, - 21856 - 11905: 0x86A3, - 21857 - 11905: 0xB7C8, - 21858 - 11905: 0x86A4, - 21859 - 11905: 0x86A5, - 21860 - 11905: 0xC6A1, - 21861 - 11905: 0xC9B6, - 21862 - 11905: 0xC0B2, - 21863 - 11905: 0xDFF5, - 21864 - 11905: 0x86A6, - 21865 - 11905: 0x86A7, - 21866 - 11905: 0xC5BE, - 21867 - 11905: 0x86A8, - 21868 - 11905: 0xD8C4, - 21869 - 11905: 0xDFF9, - 21870 - 11905: 0xC4F6, - 21871 - 11905: 0x86A9, - 21872 - 11905: 0x86AA, - 21873 - 11905: 0x86AB, - 21874 - 11905: 0x86AC, - 21875 - 11905: 0x86AD, - 21876 - 11905: 0x86AE, - 21877 - 11905: 0xE0A3, - 21878 - 11905: 0xE0A4, - 21879 - 11905: 0xE0A5, - 21880 - 11905: 0xD0A5, - 21881 - 11905: 0x86AF, - 21882 - 11905: 0x86B0, - 21883 - 11905: 0xE0B4, - 21884 - 11905: 0xCCE4, - 21885 - 11905: 0x86B1, - 21886 - 11905: 0xE0B1, - 21887 - 11905: 0x86B2, - 21888 - 11905: 0xBFA6, - 21889 - 11905: 0xE0AF, - 21890 - 11905: 0xCEB9, - 21891 - 11905: 0xE0AB, - 21892 - 11905: 0xC9C6, - 21893 - 11905: 0x86B3, - 21894 - 11905: 0x86B4, - 21895 - 11905: 0xC0AE, - 21896 - 11905: 0xE0AE, - 21897 - 11905: 0xBAED, - 21898 - 11905: 0xBAB0, - 21899 - 11905: 0xE0A9, - 21900 - 11905: 0x86B5, - 21901 - 11905: 0x86B6, - 21902 - 11905: 0x86B7, - 21903 - 11905: 0xDFF6, - 21904 - 11905: 0x86B8, - 21905 - 11905: 0xE0B3, - 21906 - 11905: 0x86B9, - 21907 - 11905: 0x86BA, - 21908 - 11905: 0xE0B8, - 21909 - 11905: 0x86BB, - 21910 - 11905: 0x86BC, - 21911 - 11905: 0x86BD, - 21912 - 11905: 0xB4AD, - 21913 - 11905: 0xE0B9, - 21914 - 11905: 0x86BE, - 21915 - 11905: 0x86BF, - 21916 - 11905: 0xCFB2, - 21917 - 11905: 0xBAC8, - 21918 - 11905: 0x86C0, - 21919 - 11905: 0xE0B0, - 21920 - 11905: 0x86C1, - 21921 - 11905: 0x86C2, - 21922 - 11905: 0x86C3, - 21923 - 11905: 0x86C4, - 21924 - 11905: 0x86C5, - 21925 - 11905: 0x86C6, - 21926 - 11905: 0x86C7, - 21927 - 11905: 0xD0FA, - 21928 - 11905: 0x86C8, - 21929 - 11905: 0x86C9, - 21930 - 11905: 0x86CA, - 21931 - 11905: 0x86CB, - 21932 - 11905: 0x86CC, - 21933 - 11905: 0x86CD, - 21934 - 11905: 0x86CE, - 21935 - 11905: 0x86CF, - 21936 - 11905: 0x86D0, - 21937 - 11905: 0xE0AC, - 21938 - 11905: 0x86D1, - 21939 - 11905: 0xD4FB, - 21940 - 11905: 0x86D2, - 21941 - 11905: 0xDFF7, - 21942 - 11905: 0x86D3, - 21943 - 11905: 0xC5E7, - 21944 - 11905: 0x86D4, - 21945 - 11905: 0xE0AD, - 21946 - 11905: 0x86D5, - 21947 - 11905: 0xD3F7, - 21948 - 11905: 0x86D6, - 21949 - 11905: 0xE0B6, - 21950 - 11905: 0xE0B7, - 21951 - 11905: 0x86D7, - 21952 - 11905: 0x86D8, - 21953 - 11905: 0x86D9, - 21954 - 11905: 0x86DA, - 21955 - 11905: 0x86DB, - 21956 - 11905: 0xE0C4, - 21957 - 11905: 0xD0E1, - 21958 - 11905: 0x86DC, - 21959 - 11905: 0x86DD, - 21960 - 11905: 0x86DE, - 21961 - 11905: 0xE0BC, - 21962 - 11905: 0x86DF, - 21963 - 11905: 0x86E0, - 21964 - 11905: 0xE0C9, - 21965 - 11905: 0xE0CA, - 21966 - 11905: 0x86E1, - 21967 - 11905: 0x86E2, - 21968 - 11905: 0x86E3, - 21969 - 11905: 0xE0BE, - 21970 - 11905: 0xE0AA, - 21971 - 11905: 0xC9A4, - 21972 - 11905: 0xE0C1, - 21973 - 11905: 0x86E4, - 21974 - 11905: 0xE0B2, - 21975 - 11905: 0x86E5, - 21976 - 11905: 0x86E6, - 21977 - 11905: 0x86E7, - 21978 - 11905: 0x86E8, - 21979 - 11905: 0x86E9, - 21980 - 11905: 0xCAC8, - 21981 - 11905: 0xE0C3, - 21982 - 11905: 0x86EA, - 21983 - 11905: 0xE0B5, - 21984 - 11905: 0x86EB, - 21985 - 11905: 0xCECB, - 21986 - 11905: 0x86EC, - 21987 - 11905: 0xCBC3, - 21988 - 11905: 0xE0CD, - 21989 - 11905: 0xE0C6, - 21990 - 11905: 0xE0C2, - 21991 - 11905: 0x86ED, - 21992 - 11905: 0xE0CB, - 21993 - 11905: 0x86EE, - 21994 - 11905: 0xE0BA, - 21995 - 11905: 0xE0BF, - 21996 - 11905: 0xE0C0, - 21997 - 11905: 0x86EF, - 21998 - 11905: 0x86F0, - 21999 - 11905: 0xE0C5, - 22000 - 11905: 0x86F1, - 22001 - 11905: 0x86F2, - 22002 - 11905: 0xE0C7, - 22003 - 11905: 0xE0C8, - 22004 - 11905: 0x86F3, - 22005 - 11905: 0xE0CC, - 22006 - 11905: 0x86F4, - 22007 - 11905: 0xE0BB, - 22008 - 11905: 0x86F5, - 22009 - 11905: 0x86F6, - 22010 - 11905: 0x86F7, - 22011 - 11905: 0x86F8, - 22012 - 11905: 0x86F9, - 22013 - 11905: 0xCBD4, - 22014 - 11905: 0xE0D5, - 22015 - 11905: 0x86FA, - 22016 - 11905: 0xE0D6, - 22017 - 11905: 0xE0D2, - 22018 - 11905: 0x86FB, - 22019 - 11905: 0x86FC, - 22020 - 11905: 0x86FD, - 22021 - 11905: 0x86FE, - 22022 - 11905: 0x8740, - 22023 - 11905: 0x8741, - 22024 - 11905: 0xE0D0, - 22025 - 11905: 0xBCCE, - 22026 - 11905: 0x8742, - 22027 - 11905: 0x8743, - 22028 - 11905: 0xE0D1, - 22029 - 11905: 0x8744, - 22030 - 11905: 0xB8C2, - 22031 - 11905: 0xD8C5, - 22032 - 11905: 0x8745, - 22033 - 11905: 0x8746, - 22034 - 11905: 0x8747, - 22035 - 11905: 0x8748, - 22036 - 11905: 0x8749, - 22037 - 11905: 0x874A, - 22038 - 11905: 0x874B, - 22039 - 11905: 0x874C, - 22040 - 11905: 0xD0EA, - 22041 - 11905: 0x874D, - 22042 - 11905: 0x874E, - 22043 - 11905: 0xC2EF, - 22044 - 11905: 0x874F, - 22045 - 11905: 0x8750, - 22046 - 11905: 0xE0CF, - 22047 - 11905: 0xE0BD, - 22048 - 11905: 0x8751, - 22049 - 11905: 0x8752, - 22050 - 11905: 0x8753, - 22051 - 11905: 0xE0D4, - 22052 - 11905: 0xE0D3, - 22053 - 11905: 0x8754, - 22054 - 11905: 0x8755, - 22055 - 11905: 0xE0D7, - 22056 - 11905: 0x8756, - 22057 - 11905: 0x8757, - 22058 - 11905: 0x8758, - 22059 - 11905: 0x8759, - 22060 - 11905: 0xE0DC, - 22061 - 11905: 0xE0D8, - 22062 - 11905: 0x875A, - 22063 - 11905: 0x875B, - 22064 - 11905: 0x875C, - 22065 - 11905: 0xD6F6, - 22066 - 11905: 0xB3B0, - 22067 - 11905: 0x875D, - 22068 - 11905: 0xD7EC, - 22069 - 11905: 0x875E, - 22070 - 11905: 0xCBBB, - 22071 - 11905: 0x875F, - 22072 - 11905: 0x8760, - 22073 - 11905: 0xE0DA, - 22074 - 11905: 0x8761, - 22075 - 11905: 0xCEFB, - 22076 - 11905: 0x8762, - 22077 - 11905: 0x8763, - 22078 - 11905: 0x8764, - 22079 - 11905: 0xBAD9, - 22080 - 11905: 0x8765, - 22081 - 11905: 0x8766, - 22082 - 11905: 0x8767, - 22083 - 11905: 0x8768, - 22084 - 11905: 0x8769, - 22085 - 11905: 0x876A, - 22086 - 11905: 0x876B, - 22087 - 11905: 0x876C, - 22088 - 11905: 0x876D, - 22089 - 11905: 0x876E, - 22090 - 11905: 0x876F, - 22091 - 11905: 0x8770, - 22092 - 11905: 0xE0E1, - 22093 - 11905: 0xE0DD, - 22094 - 11905: 0xD2AD, - 22095 - 11905: 0x8771, - 22096 - 11905: 0x8772, - 22097 - 11905: 0x8773, - 22098 - 11905: 0x8774, - 22099 - 11905: 0x8775, - 22100 - 11905: 0xE0E2, - 22101 - 11905: 0x8776, - 22102 - 11905: 0x8777, - 22103 - 11905: 0xE0DB, - 22104 - 11905: 0xE0D9, - 22105 - 11905: 0xE0DF, - 22106 - 11905: 0x8778, - 22107 - 11905: 0x8779, - 22108 - 11905: 0xE0E0, - 22109 - 11905: 0x877A, - 22110 - 11905: 0x877B, - 22111 - 11905: 0x877C, - 22112 - 11905: 0x877D, - 22113 - 11905: 0x877E, - 22114 - 11905: 0xE0DE, - 22115 - 11905: 0x8780, - 22116 - 11905: 0xE0E4, - 22117 - 11905: 0x8781, - 22118 - 11905: 0x8782, - 22119 - 11905: 0x8783, - 22120 - 11905: 0xC6F7, - 22121 - 11905: 0xD8AC, - 22122 - 11905: 0xD4EB, - 22123 - 11905: 0xE0E6, - 22124 - 11905: 0xCAC9, - 22125 - 11905: 0x8784, - 22126 - 11905: 0x8785, - 22127 - 11905: 0x8786, - 22128 - 11905: 0x8787, - 22129 - 11905: 0xE0E5, - 22130 - 11905: 0x8788, - 22131 - 11905: 0x8789, - 22132 - 11905: 0x878A, - 22133 - 11905: 0x878B, - 22134 - 11905: 0xB8C1, - 22135 - 11905: 0x878C, - 22136 - 11905: 0x878D, - 22137 - 11905: 0x878E, - 22138 - 11905: 0x878F, - 22139 - 11905: 0xE0E7, - 22140 - 11905: 0xE0E8, - 22141 - 11905: 0x8790, - 22142 - 11905: 0x8791, - 22143 - 11905: 0x8792, - 22144 - 11905: 0x8793, - 22145 - 11905: 0x8794, - 22146 - 11905: 0x8795, - 22147 - 11905: 0x8796, - 22148 - 11905: 0x8797, - 22149 - 11905: 0xE0E9, - 22150 - 11905: 0xE0E3, - 22151 - 11905: 0x8798, - 22152 - 11905: 0x8799, - 22153 - 11905: 0x879A, - 22154 - 11905: 0x879B, - 22155 - 11905: 0x879C, - 22156 - 11905: 0x879D, - 22157 - 11905: 0x879E, - 22158 - 11905: 0xBABF, - 22159 - 11905: 0xCCE7, - 22160 - 11905: 0x879F, - 22161 - 11905: 0x87A0, - 22162 - 11905: 0x87A1, - 22163 - 11905: 0xE0EA, - 22164 - 11905: 0x87A2, - 22165 - 11905: 0x87A3, - 22166 - 11905: 0x87A4, - 22167 - 11905: 0x87A5, - 22168 - 11905: 0x87A6, - 22169 - 11905: 0x87A7, - 22170 - 11905: 0x87A8, - 22171 - 11905: 0x87A9, - 22172 - 11905: 0x87AA, - 22173 - 11905: 0x87AB, - 22174 - 11905: 0x87AC, - 22175 - 11905: 0x87AD, - 22176 - 11905: 0x87AE, - 22177 - 11905: 0x87AF, - 22178 - 11905: 0x87B0, - 22179 - 11905: 0xCFF9, - 22180 - 11905: 0x87B1, - 22181 - 11905: 0x87B2, - 22182 - 11905: 0x87B3, - 22183 - 11905: 0x87B4, - 22184 - 11905: 0x87B5, - 22185 - 11905: 0x87B6, - 22186 - 11905: 0x87B7, - 22187 - 11905: 0x87B8, - 22188 - 11905: 0x87B9, - 22189 - 11905: 0x87BA, - 22190 - 11905: 0x87BB, - 22191 - 11905: 0xE0EB, - 22192 - 11905: 0x87BC, - 22193 - 11905: 0x87BD, - 22194 - 11905: 0x87BE, - 22195 - 11905: 0x87BF, - 22196 - 11905: 0x87C0, - 22197 - 11905: 0x87C1, - 22198 - 11905: 0x87C2, - 22199 - 11905: 0xC8C2, - 22200 - 11905: 0x87C3, - 22201 - 11905: 0x87C4, - 22202 - 11905: 0x87C5, - 22203 - 11905: 0x87C6, - 22204 - 11905: 0xBDC0, - 22205 - 11905: 0x87C7, - 22206 - 11905: 0x87C8, - 22207 - 11905: 0x87C9, - 22208 - 11905: 0x87CA, - 22209 - 11905: 0x87CB, - 22210 - 11905: 0x87CC, - 22211 - 11905: 0x87CD, - 22212 - 11905: 0x87CE, - 22213 - 11905: 0x87CF, - 22214 - 11905: 0x87D0, - 22215 - 11905: 0x87D1, - 22216 - 11905: 0x87D2, - 22217 - 11905: 0x87D3, - 22218 - 11905: 0xC4D2, - 22219 - 11905: 0x87D4, - 22220 - 11905: 0x87D5, - 22221 - 11905: 0x87D6, - 22222 - 11905: 0x87D7, - 22223 - 11905: 0x87D8, - 22224 - 11905: 0x87D9, - 22225 - 11905: 0x87DA, - 22226 - 11905: 0x87DB, - 22227 - 11905: 0x87DC, - 22228 - 11905: 0xE0EC, - 22229 - 11905: 0x87DD, - 22230 - 11905: 0x87DE, - 22231 - 11905: 0xE0ED, - 22232 - 11905: 0x87DF, - 22233 - 11905: 0x87E0, - 22234 - 11905: 0xC7F4, - 22235 - 11905: 0xCBC4, - 22236 - 11905: 0x87E1, - 22237 - 11905: 0xE0EE, - 22238 - 11905: 0xBBD8, - 22239 - 11905: 0xD8B6, - 22240 - 11905: 0xD2F2, - 22241 - 11905: 0xE0EF, - 22242 - 11905: 0xCDC5, - 22243 - 11905: 0x87E2, - 22244 - 11905: 0xB6DA, - 22245 - 11905: 0x87E3, - 22246 - 11905: 0x87E4, - 22247 - 11905: 0x87E5, - 22248 - 11905: 0x87E6, - 22249 - 11905: 0x87E7, - 22250 - 11905: 0x87E8, - 22251 - 11905: 0xE0F1, - 22252 - 11905: 0x87E9, - 22253 - 11905: 0xD4B0, - 22254 - 11905: 0x87EA, - 22255 - 11905: 0x87EB, - 22256 - 11905: 0xC0A7, - 22257 - 11905: 0xB4D1, - 22258 - 11905: 0x87EC, - 22259 - 11905: 0x87ED, - 22260 - 11905: 0xCEA7, - 22261 - 11905: 0xE0F0, - 22262 - 11905: 0x87EE, - 22263 - 11905: 0x87EF, - 22264 - 11905: 0x87F0, - 22265 - 11905: 0xE0F2, - 22266 - 11905: 0xB9CC, - 22267 - 11905: 0x87F1, - 22268 - 11905: 0x87F2, - 22269 - 11905: 0xB9FA, - 22270 - 11905: 0xCDBC, - 22271 - 11905: 0xE0F3, - 22272 - 11905: 0x87F3, - 22273 - 11905: 0x87F4, - 22274 - 11905: 0x87F5, - 22275 - 11905: 0xC6D4, - 22276 - 11905: 0xE0F4, - 22277 - 11905: 0x87F6, - 22278 - 11905: 0xD4B2, - 22279 - 11905: 0x87F7, - 22280 - 11905: 0xC8A6, - 22281 - 11905: 0xE0F6, - 22282 - 11905: 0xE0F5, - 22283 - 11905: 0x87F8, - 22284 - 11905: 0x87F9, - 22285 - 11905: 0x87FA, - 22286 - 11905: 0x87FB, - 22287 - 11905: 0x87FC, - 22288 - 11905: 0x87FD, - 22289 - 11905: 0x87FE, - 22290 - 11905: 0x8840, - 22291 - 11905: 0x8841, - 22292 - 11905: 0x8842, - 22293 - 11905: 0x8843, - 22294 - 11905: 0x8844, - 22295 - 11905: 0x8845, - 22296 - 11905: 0x8846, - 22297 - 11905: 0x8847, - 22298 - 11905: 0x8848, - 22299 - 11905: 0x8849, - 22300 - 11905: 0xE0F7, - 22301 - 11905: 0x884A, - 22302 - 11905: 0x884B, - 22303 - 11905: 0xCDC1, - 22304 - 11905: 0x884C, - 22305 - 11905: 0x884D, - 22306 - 11905: 0x884E, - 22307 - 11905: 0xCAA5, - 22308 - 11905: 0x884F, - 22309 - 11905: 0x8850, - 22310 - 11905: 0x8851, - 22311 - 11905: 0x8852, - 22312 - 11905: 0xD4DA, - 22313 - 11905: 0xDBD7, - 22314 - 11905: 0xDBD9, - 22315 - 11905: 0x8853, - 22316 - 11905: 0xDBD8, - 22317 - 11905: 0xB9E7, - 22318 - 11905: 0xDBDC, - 22319 - 11905: 0xDBDD, - 22320 - 11905: 0xB5D8, - 22321 - 11905: 0x8854, - 22322 - 11905: 0x8855, - 22323 - 11905: 0xDBDA, - 22324 - 11905: 0x8856, - 22325 - 11905: 0x8857, - 22326 - 11905: 0x8858, - 22327 - 11905: 0x8859, - 22328 - 11905: 0x885A, - 22329 - 11905: 0xDBDB, - 22330 - 11905: 0xB3A1, - 22331 - 11905: 0xDBDF, - 22332 - 11905: 0x885B, - 22333 - 11905: 0x885C, - 22334 - 11905: 0xBBF8, - 22335 - 11905: 0x885D, - 22336 - 11905: 0xD6B7, - 22337 - 11905: 0x885E, - 22338 - 11905: 0xDBE0, - 22339 - 11905: 0x885F, - 22340 - 11905: 0x8860, - 22341 - 11905: 0x8861, - 22342 - 11905: 0x8862, - 22343 - 11905: 0xBEF9, - 22344 - 11905: 0x8863, - 22345 - 11905: 0x8864, - 22346 - 11905: 0xB7BB, - 22347 - 11905: 0x8865, - 22348 - 11905: 0xDBD0, - 22349 - 11905: 0xCCAE, - 22350 - 11905: 0xBFB2, - 22351 - 11905: 0xBBB5, - 22352 - 11905: 0xD7F8, - 22353 - 11905: 0xBFD3, - 22354 - 11905: 0x8866, - 22355 - 11905: 0x8867, - 22356 - 11905: 0x8868, - 22357 - 11905: 0x8869, - 22358 - 11905: 0x886A, - 22359 - 11905: 0xBFE9, - 22360 - 11905: 0x886B, - 22361 - 11905: 0x886C, - 22362 - 11905: 0xBCE1, - 22363 - 11905: 0xCCB3, - 22364 - 11905: 0xDBDE, - 22365 - 11905: 0xB0D3, - 22366 - 11905: 0xCEEB, - 22367 - 11905: 0xB7D8, - 22368 - 11905: 0xD7B9, - 22369 - 11905: 0xC6C2, - 22370 - 11905: 0x886D, - 22371 - 11905: 0x886E, - 22372 - 11905: 0xC0A4, - 22373 - 11905: 0x886F, - 22374 - 11905: 0xCCB9, - 22375 - 11905: 0x8870, - 22376 - 11905: 0xDBE7, - 22377 - 11905: 0xDBE1, - 22378 - 11905: 0xC6BA, - 22379 - 11905: 0xDBE3, - 22380 - 11905: 0x8871, - 22381 - 11905: 0xDBE8, - 22382 - 11905: 0x8872, - 22383 - 11905: 0xC5F7, - 22384 - 11905: 0x8873, - 22385 - 11905: 0x8874, - 22386 - 11905: 0x8875, - 22387 - 11905: 0xDBEA, - 22388 - 11905: 0x8876, - 22389 - 11905: 0x8877, - 22390 - 11905: 0xDBE9, - 22391 - 11905: 0xBFC0, - 22392 - 11905: 0x8878, - 22393 - 11905: 0x8879, - 22394 - 11905: 0x887A, - 22395 - 11905: 0xDBE6, - 22396 - 11905: 0xDBE5, - 22397 - 11905: 0x887B, - 22398 - 11905: 0x887C, - 22399 - 11905: 0x887D, - 22400 - 11905: 0x887E, - 22401 - 11905: 0x8880, - 22402 - 11905: 0xB4B9, - 22403 - 11905: 0xC0AC, - 22404 - 11905: 0xC2A2, - 22405 - 11905: 0xDBE2, - 22406 - 11905: 0xDBE4, - 22407 - 11905: 0x8881, - 22408 - 11905: 0x8882, - 22409 - 11905: 0x8883, - 22410 - 11905: 0x8884, - 22411 - 11905: 0xD0CD, - 22412 - 11905: 0xDBED, - 22413 - 11905: 0x8885, - 22414 - 11905: 0x8886, - 22415 - 11905: 0x8887, - 22416 - 11905: 0x8888, - 22417 - 11905: 0x8889, - 22418 - 11905: 0xC0DD, - 22419 - 11905: 0xDBF2, - 22420 - 11905: 0x888A, - 22421 - 11905: 0x888B, - 22422 - 11905: 0x888C, - 22423 - 11905: 0x888D, - 22424 - 11905: 0x888E, - 22425 - 11905: 0x888F, - 22426 - 11905: 0x8890, - 22427 - 11905: 0xB6E2, - 22428 - 11905: 0x8891, - 22429 - 11905: 0x8892, - 22430 - 11905: 0x8893, - 22431 - 11905: 0x8894, - 22432 - 11905: 0xDBF3, - 22433 - 11905: 0xDBD2, - 22434 - 11905: 0xB9B8, - 22435 - 11905: 0xD4AB, - 22436 - 11905: 0xDBEC, - 22437 - 11905: 0x8895, - 22438 - 11905: 0xBFD1, - 22439 - 11905: 0xDBF0, - 22440 - 11905: 0x8896, - 22441 - 11905: 0xDBD1, - 22442 - 11905: 0x8897, - 22443 - 11905: 0xB5E6, - 22444 - 11905: 0x8898, - 22445 - 11905: 0xDBEB, - 22446 - 11905: 0xBFE5, - 22447 - 11905: 0x8899, - 22448 - 11905: 0x889A, - 22449 - 11905: 0x889B, - 22450 - 11905: 0xDBEE, - 22451 - 11905: 0x889C, - 22452 - 11905: 0xDBF1, - 22453 - 11905: 0x889D, - 22454 - 11905: 0x889E, - 22455 - 11905: 0x889F, - 22456 - 11905: 0xDBF9, - 22457 - 11905: 0x88A0, - 22458 - 11905: 0x88A1, - 22459 - 11905: 0x88A2, - 22460 - 11905: 0x88A3, - 22461 - 11905: 0x88A4, - 22462 - 11905: 0x88A5, - 22463 - 11905: 0x88A6, - 22464 - 11905: 0x88A7, - 22465 - 11905: 0x88A8, - 22466 - 11905: 0xB9A1, - 22467 - 11905: 0xB0A3, - 22468 - 11905: 0x88A9, - 22469 - 11905: 0x88AA, - 22470 - 11905: 0x88AB, - 22471 - 11905: 0x88AC, - 22472 - 11905: 0x88AD, - 22473 - 11905: 0x88AE, - 22474 - 11905: 0x88AF, - 22475 - 11905: 0xC2F1, - 22476 - 11905: 0x88B0, - 22477 - 11905: 0x88B1, - 22478 - 11905: 0xB3C7, - 22479 - 11905: 0xDBEF, - 22480 - 11905: 0x88B2, - 22481 - 11905: 0x88B3, - 22482 - 11905: 0xDBF8, - 22483 - 11905: 0x88B4, - 22484 - 11905: 0xC6D2, - 22485 - 11905: 0xDBF4, - 22486 - 11905: 0x88B5, - 22487 - 11905: 0x88B6, - 22488 - 11905: 0xDBF5, - 22489 - 11905: 0xDBF7, - 22490 - 11905: 0xDBF6, - 22491 - 11905: 0x88B7, - 22492 - 11905: 0x88B8, - 22493 - 11905: 0xDBFE, - 22494 - 11905: 0x88B9, - 22495 - 11905: 0xD3F2, - 22496 - 11905: 0xB2BA, - 22497 - 11905: 0x88BA, - 22498 - 11905: 0x88BB, - 22499 - 11905: 0x88BC, - 22500 - 11905: 0xDBFD, - 22501 - 11905: 0x88BD, - 22502 - 11905: 0x88BE, - 22503 - 11905: 0x88BF, - 22504 - 11905: 0x88C0, - 22505 - 11905: 0x88C1, - 22506 - 11905: 0x88C2, - 22507 - 11905: 0x88C3, - 22508 - 11905: 0x88C4, - 22509 - 11905: 0xDCA4, - 22510 - 11905: 0x88C5, - 22511 - 11905: 0xDBFB, - 22512 - 11905: 0x88C6, - 22513 - 11905: 0x88C7, - 22514 - 11905: 0x88C8, - 22515 - 11905: 0x88C9, - 22516 - 11905: 0xDBFA, - 22517 - 11905: 0x88CA, - 22518 - 11905: 0x88CB, - 22519 - 11905: 0x88CC, - 22520 - 11905: 0xDBFC, - 22521 - 11905: 0xC5E0, - 22522 - 11905: 0xBBF9, - 22523 - 11905: 0x88CD, - 22524 - 11905: 0x88CE, - 22525 - 11905: 0xDCA3, - 22526 - 11905: 0x88CF, - 22527 - 11905: 0x88D0, - 22528 - 11905: 0xDCA5, - 22529 - 11905: 0x88D1, - 22530 - 11905: 0xCCC3, - 22531 - 11905: 0x88D2, - 22532 - 11905: 0x88D3, - 22533 - 11905: 0x88D4, - 22534 - 11905: 0xB6D1, - 22535 - 11905: 0xDDC0, - 22536 - 11905: 0x88D5, - 22537 - 11905: 0x88D6, - 22538 - 11905: 0x88D7, - 22539 - 11905: 0xDCA1, - 22540 - 11905: 0x88D8, - 22541 - 11905: 0xDCA2, - 22542 - 11905: 0x88D9, - 22543 - 11905: 0x88DA, - 22544 - 11905: 0x88DB, - 22545 - 11905: 0xC7B5, - 22546 - 11905: 0x88DC, - 22547 - 11905: 0x88DD, - 22548 - 11905: 0x88DE, - 22549 - 11905: 0xB6E9, - 22550 - 11905: 0x88DF, - 22551 - 11905: 0x88E0, - 22552 - 11905: 0x88E1, - 22553 - 11905: 0xDCA7, - 22554 - 11905: 0x88E2, - 22555 - 11905: 0x88E3, - 22556 - 11905: 0x88E4, - 22557 - 11905: 0x88E5, - 22558 - 11905: 0xDCA6, - 22559 - 11905: 0x88E6, - 22560 - 11905: 0xDCA9, - 22561 - 11905: 0xB1A4, - 22562 - 11905: 0x88E7, - 22563 - 11905: 0x88E8, - 22564 - 11905: 0xB5CC, - 22565 - 11905: 0x88E9, - 22566 - 11905: 0x88EA, - 22567 - 11905: 0x88EB, - 22568 - 11905: 0x88EC, - 22569 - 11905: 0x88ED, - 22570 - 11905: 0xBFB0, - 22571 - 11905: 0x88EE, - 22572 - 11905: 0x88EF, - 22573 - 11905: 0x88F0, - 22574 - 11905: 0x88F1, - 22575 - 11905: 0x88F2, - 22576 - 11905: 0xD1DF, - 22577 - 11905: 0x88F3, - 22578 - 11905: 0x88F4, - 22579 - 11905: 0x88F5, - 22580 - 11905: 0x88F6, - 22581 - 11905: 0xB6C2, - 22582 - 11905: 0x88F7, - 22583 - 11905: 0x88F8, - 22584 - 11905: 0x88F9, - 22585 - 11905: 0x88FA, - 22586 - 11905: 0x88FB, - 22587 - 11905: 0x88FC, - 22588 - 11905: 0x88FD, - 22589 - 11905: 0x88FE, - 22590 - 11905: 0x8940, - 22591 - 11905: 0x8941, - 22592 - 11905: 0x8942, - 22593 - 11905: 0x8943, - 22594 - 11905: 0x8944, - 22595 - 11905: 0x8945, - 22596 - 11905: 0xDCA8, - 22597 - 11905: 0x8946, - 22598 - 11905: 0x8947, - 22599 - 11905: 0x8948, - 22600 - 11905: 0x8949, - 22601 - 11905: 0x894A, - 22602 - 11905: 0x894B, - 22603 - 11905: 0x894C, - 22604 - 11905: 0xCBFA, - 22605 - 11905: 0xEBF3, - 22606 - 11905: 0x894D, - 22607 - 11905: 0x894E, - 22608 - 11905: 0x894F, - 22609 - 11905: 0xCBDC, - 22610 - 11905: 0x8950, - 22611 - 11905: 0x8951, - 22612 - 11905: 0xCBFE, - 22613 - 11905: 0x8952, - 22614 - 11905: 0x8953, - 22615 - 11905: 0x8954, - 22616 - 11905: 0xCCC1, - 22617 - 11905: 0x8955, - 22618 - 11905: 0x8956, - 22619 - 11905: 0x8957, - 22620 - 11905: 0x8958, - 22621 - 11905: 0x8959, - 22622 - 11905: 0xC8FB, - 22623 - 11905: 0x895A, - 22624 - 11905: 0x895B, - 22625 - 11905: 0x895C, - 22626 - 11905: 0x895D, - 22627 - 11905: 0x895E, - 22628 - 11905: 0x895F, - 22629 - 11905: 0xDCAA, - 22630 - 11905: 0x8960, - 22631 - 11905: 0x8961, - 22632 - 11905: 0x8962, - 22633 - 11905: 0x8963, - 22634 - 11905: 0x8964, - 22635 - 11905: 0xCCEE, - 22636 - 11905: 0xDCAB, - 22637 - 11905: 0x8965, - 22638 - 11905: 0x8966, - 22639 - 11905: 0x8967, - 22640 - 11905: 0x8968, - 22641 - 11905: 0x8969, - 22642 - 11905: 0x896A, - 22643 - 11905: 0x896B, - 22644 - 11905: 0x896C, - 22645 - 11905: 0x896D, - 22646 - 11905: 0x896E, - 22647 - 11905: 0x896F, - 22648 - 11905: 0x8970, - 22649 - 11905: 0x8971, - 22650 - 11905: 0x8972, - 22651 - 11905: 0x8973, - 22652 - 11905: 0x8974, - 22653 - 11905: 0x8975, - 22654 - 11905: 0xDBD3, - 22655 - 11905: 0x8976, - 22656 - 11905: 0xDCAF, - 22657 - 11905: 0xDCAC, - 22658 - 11905: 0x8977, - 22659 - 11905: 0xBEB3, - 22660 - 11905: 0x8978, - 22661 - 11905: 0xCAFB, - 22662 - 11905: 0x8979, - 22663 - 11905: 0x897A, - 22664 - 11905: 0x897B, - 22665 - 11905: 0xDCAD, - 22666 - 11905: 0x897C, - 22667 - 11905: 0x897D, - 22668 - 11905: 0x897E, - 22669 - 11905: 0x8980, - 22670 - 11905: 0x8981, - 22671 - 11905: 0x8982, - 22672 - 11905: 0x8983, - 22673 - 11905: 0x8984, - 22674 - 11905: 0xC9CA, - 22675 - 11905: 0xC4B9, - 22676 - 11905: 0x8985, - 22677 - 11905: 0x8986, - 22678 - 11905: 0x8987, - 22679 - 11905: 0x8988, - 22680 - 11905: 0x8989, - 22681 - 11905: 0xC7BD, - 22682 - 11905: 0xDCAE, - 22683 - 11905: 0x898A, - 22684 - 11905: 0x898B, - 22685 - 11905: 0x898C, - 22686 - 11905: 0xD4F6, - 22687 - 11905: 0xD0E6, - 22688 - 11905: 0x898D, - 22689 - 11905: 0x898E, - 22690 - 11905: 0x898F, - 22691 - 11905: 0x8990, - 22692 - 11905: 0x8991, - 22693 - 11905: 0x8992, - 22694 - 11905: 0x8993, - 22695 - 11905: 0x8994, - 22696 - 11905: 0xC4AB, - 22697 - 11905: 0xB6D5, - 22698 - 11905: 0x8995, - 22699 - 11905: 0x8996, - 22700 - 11905: 0x8997, - 22701 - 11905: 0x8998, - 22702 - 11905: 0x8999, - 22703 - 11905: 0x899A, - 22704 - 11905: 0x899B, - 22705 - 11905: 0x899C, - 22706 - 11905: 0x899D, - 22707 - 11905: 0x899E, - 22708 - 11905: 0x899F, - 22709 - 11905: 0x89A0, - 22710 - 11905: 0x89A1, - 22711 - 11905: 0x89A2, - 22712 - 11905: 0x89A3, - 22713 - 11905: 0x89A4, - 22714 - 11905: 0x89A5, - 22715 - 11905: 0x89A6, - 22716 - 11905: 0xDBD4, - 22717 - 11905: 0x89A7, - 22718 - 11905: 0x89A8, - 22719 - 11905: 0x89A9, - 22720 - 11905: 0x89AA, - 22721 - 11905: 0xB1DA, - 22722 - 11905: 0x89AB, - 22723 - 11905: 0x89AC, - 22724 - 11905: 0x89AD, - 22725 - 11905: 0xDBD5, - 22726 - 11905: 0x89AE, - 22727 - 11905: 0x89AF, - 22728 - 11905: 0x89B0, - 22729 - 11905: 0x89B1, - 22730 - 11905: 0x89B2, - 22731 - 11905: 0x89B3, - 22732 - 11905: 0x89B4, - 22733 - 11905: 0x89B5, - 22734 - 11905: 0x89B6, - 22735 - 11905: 0x89B7, - 22736 - 11905: 0x89B8, - 22737 - 11905: 0xDBD6, - 22738 - 11905: 0x89B9, - 22739 - 11905: 0x89BA, - 22740 - 11905: 0x89BB, - 22741 - 11905: 0xBABE, - 22742 - 11905: 0x89BC, - 22743 - 11905: 0x89BD, - 22744 - 11905: 0x89BE, - 22745 - 11905: 0x89BF, - 22746 - 11905: 0x89C0, - 22747 - 11905: 0x89C1, - 22748 - 11905: 0x89C2, - 22749 - 11905: 0x89C3, - 22750 - 11905: 0x89C4, - 22751 - 11905: 0x89C5, - 22752 - 11905: 0x89C6, - 22753 - 11905: 0x89C7, - 22754 - 11905: 0x89C8, - 22755 - 11905: 0x89C9, - 22756 - 11905: 0xC8C0, - 22757 - 11905: 0x89CA, - 22758 - 11905: 0x89CB, - 22759 - 11905: 0x89CC, - 22760 - 11905: 0x89CD, - 22761 - 11905: 0x89CE, - 22762 - 11905: 0x89CF, - 22763 - 11905: 0xCABF, - 22764 - 11905: 0xC8C9, - 22765 - 11905: 0x89D0, - 22766 - 11905: 0xD7B3, - 22767 - 11905: 0x89D1, - 22768 - 11905: 0xC9F9, - 22769 - 11905: 0x89D2, - 22770 - 11905: 0x89D3, - 22771 - 11905: 0xBFC7, - 22772 - 11905: 0x89D4, - 22773 - 11905: 0x89D5, - 22774 - 11905: 0xBAF8, - 22775 - 11905: 0x89D6, - 22776 - 11905: 0x89D7, - 22777 - 11905: 0xD2BC, - 22778 - 11905: 0x89D8, - 22779 - 11905: 0x89D9, - 22780 - 11905: 0x89DA, - 22781 - 11905: 0x89DB, - 22782 - 11905: 0x89DC, - 22783 - 11905: 0x89DD, - 22784 - 11905: 0x89DE, - 22785 - 11905: 0x89DF, - 22786 - 11905: 0xE2BA, - 22787 - 11905: 0x89E0, - 22788 - 11905: 0xB4A6, - 22789 - 11905: 0x89E1, - 22790 - 11905: 0x89E2, - 22791 - 11905: 0xB1B8, - 22792 - 11905: 0x89E3, - 22793 - 11905: 0x89E4, - 22794 - 11905: 0x89E5, - 22795 - 11905: 0x89E6, - 22796 - 11905: 0x89E7, - 22797 - 11905: 0xB8B4, - 22798 - 11905: 0x89E8, - 22799 - 11905: 0xCFC4, - 22800 - 11905: 0x89E9, - 22801 - 11905: 0x89EA, - 22802 - 11905: 0x89EB, - 22803 - 11905: 0x89EC, - 22804 - 11905: 0xD9E7, - 22805 - 11905: 0xCFA6, - 22806 - 11905: 0xCDE2, - 22807 - 11905: 0x89ED, - 22808 - 11905: 0x89EE, - 22809 - 11905: 0xD9ED, - 22810 - 11905: 0xB6E0, - 22811 - 11905: 0x89EF, - 22812 - 11905: 0xD2B9, - 22813 - 11905: 0x89F0, - 22814 - 11905: 0x89F1, - 22815 - 11905: 0xB9BB, - 22816 - 11905: 0x89F2, - 22817 - 11905: 0x89F3, - 22818 - 11905: 0x89F4, - 22819 - 11905: 0x89F5, - 22820 - 11905: 0xE2B9, - 22821 - 11905: 0xE2B7, - 22822 - 11905: 0x89F6, - 22823 - 11905: 0xB4F3, - 22824 - 11905: 0x89F7, - 22825 - 11905: 0xCCEC, - 22826 - 11905: 0xCCAB, - 22827 - 11905: 0xB7F2, - 22828 - 11905: 0x89F8, - 22829 - 11905: 0xD8B2, - 22830 - 11905: 0xD1EB, - 22831 - 11905: 0xBABB, - 22832 - 11905: 0x89F9, - 22833 - 11905: 0xCAA7, - 22834 - 11905: 0x89FA, - 22835 - 11905: 0x89FB, - 22836 - 11905: 0xCDB7, - 22837 - 11905: 0x89FC, - 22838 - 11905: 0x89FD, - 22839 - 11905: 0xD2C4, - 22840 - 11905: 0xBFE4, - 22841 - 11905: 0xBCD0, - 22842 - 11905: 0xB6E1, - 22843 - 11905: 0x89FE, - 22844 - 11905: 0xDEC5, - 22845 - 11905: 0x8A40, - 22846 - 11905: 0x8A41, - 22847 - 11905: 0x8A42, - 22848 - 11905: 0x8A43, - 22849 - 11905: 0xDEC6, - 22850 - 11905: 0xDBBC, - 22851 - 11905: 0x8A44, - 22852 - 11905: 0xD1D9, - 22853 - 11905: 0x8A45, - 22854 - 11905: 0x8A46, - 22855 - 11905: 0xC6E6, - 22856 - 11905: 0xC4CE, - 22857 - 11905: 0xB7EE, - 22858 - 11905: 0x8A47, - 22859 - 11905: 0xB7DC, - 22860 - 11905: 0x8A48, - 22861 - 11905: 0x8A49, - 22862 - 11905: 0xBFFC, - 22863 - 11905: 0xD7E0, - 22864 - 11905: 0x8A4A, - 22865 - 11905: 0xC6F5, - 22866 - 11905: 0x8A4B, - 22867 - 11905: 0x8A4C, - 22868 - 11905: 0xB1BC, - 22869 - 11905: 0xDEC8, - 22870 - 11905: 0xBDB1, - 22871 - 11905: 0xCCD7, - 22872 - 11905: 0xDECA, - 22873 - 11905: 0x8A4D, - 22874 - 11905: 0xDEC9, - 22875 - 11905: 0x8A4E, - 22876 - 11905: 0x8A4F, - 22877 - 11905: 0x8A50, - 22878 - 11905: 0x8A51, - 22879 - 11905: 0x8A52, - 22880 - 11905: 0xB5EC, - 22881 - 11905: 0x8A53, - 22882 - 11905: 0xC9DD, - 22883 - 11905: 0x8A54, - 22884 - 11905: 0x8A55, - 22885 - 11905: 0xB0C2, - 22886 - 11905: 0x8A56, - 22887 - 11905: 0x8A57, - 22888 - 11905: 0x8A58, - 22889 - 11905: 0x8A59, - 22890 - 11905: 0x8A5A, - 22891 - 11905: 0x8A5B, - 22892 - 11905: 0x8A5C, - 22893 - 11905: 0x8A5D, - 22894 - 11905: 0x8A5E, - 22895 - 11905: 0x8A5F, - 22896 - 11905: 0x8A60, - 22897 - 11905: 0x8A61, - 22898 - 11905: 0x8A62, - 22899 - 11905: 0xC5AE, - 22900 - 11905: 0xC5AB, - 22901 - 11905: 0x8A63, - 22902 - 11905: 0xC4CC, - 22903 - 11905: 0x8A64, - 22904 - 11905: 0xBCE9, - 22905 - 11905: 0xCBFD, - 22906 - 11905: 0x8A65, - 22907 - 11905: 0x8A66, - 22908 - 11905: 0x8A67, - 22909 - 11905: 0xBAC3, - 22910 - 11905: 0x8A68, - 22911 - 11905: 0x8A69, - 22912 - 11905: 0x8A6A, - 22913 - 11905: 0xE5F9, - 22914 - 11905: 0xC8E7, - 22915 - 11905: 0xE5FA, - 22916 - 11905: 0xCDFD, - 22917 - 11905: 0x8A6B, - 22918 - 11905: 0xD7B1, - 22919 - 11905: 0xB8BE, - 22920 - 11905: 0xC2E8, - 22921 - 11905: 0x8A6C, - 22922 - 11905: 0xC8D1, - 22923 - 11905: 0x8A6D, - 22924 - 11905: 0x8A6E, - 22925 - 11905: 0xE5FB, - 22926 - 11905: 0x8A6F, - 22927 - 11905: 0x8A70, - 22928 - 11905: 0x8A71, - 22929 - 11905: 0x8A72, - 22930 - 11905: 0xB6CA, - 22931 - 11905: 0xBCCB, - 22932 - 11905: 0x8A73, - 22933 - 11905: 0x8A74, - 22934 - 11905: 0xD1FD, - 22935 - 11905: 0xE6A1, - 22936 - 11905: 0x8A75, - 22937 - 11905: 0xC3EE, - 22938 - 11905: 0x8A76, - 22939 - 11905: 0x8A77, - 22940 - 11905: 0x8A78, - 22941 - 11905: 0x8A79, - 22942 - 11905: 0xE6A4, - 22943 - 11905: 0x8A7A, - 22944 - 11905: 0x8A7B, - 22945 - 11905: 0x8A7C, - 22946 - 11905: 0x8A7D, - 22947 - 11905: 0xE5FE, - 22948 - 11905: 0xE6A5, - 22949 - 11905: 0xCDD7, - 22950 - 11905: 0x8A7E, - 22951 - 11905: 0x8A80, - 22952 - 11905: 0xB7C1, - 22953 - 11905: 0xE5FC, - 22954 - 11905: 0xE5FD, - 22955 - 11905: 0xE6A3, - 22956 - 11905: 0x8A81, - 22957 - 11905: 0x8A82, - 22958 - 11905: 0xC4DD, - 22959 - 11905: 0xE6A8, - 22960 - 11905: 0x8A83, - 22961 - 11905: 0x8A84, - 22962 - 11905: 0xE6A7, - 22963 - 11905: 0x8A85, - 22964 - 11905: 0x8A86, - 22965 - 11905: 0x8A87, - 22966 - 11905: 0x8A88, - 22967 - 11905: 0x8A89, - 22968 - 11905: 0x8A8A, - 22969 - 11905: 0xC3C3, - 22970 - 11905: 0x8A8B, - 22971 - 11905: 0xC6DE, - 22972 - 11905: 0x8A8C, - 22973 - 11905: 0x8A8D, - 22974 - 11905: 0xE6AA, - 22975 - 11905: 0x8A8E, - 22976 - 11905: 0x8A8F, - 22977 - 11905: 0x8A90, - 22978 - 11905: 0x8A91, - 22979 - 11905: 0x8A92, - 22980 - 11905: 0x8A93, - 22981 - 11905: 0x8A94, - 22982 - 11905: 0xC4B7, - 22983 - 11905: 0x8A95, - 22984 - 11905: 0x8A96, - 22985 - 11905: 0x8A97, - 22986 - 11905: 0xE6A2, - 22987 - 11905: 0xCABC, - 22988 - 11905: 0x8A98, - 22989 - 11905: 0x8A99, - 22990 - 11905: 0x8A9A, - 22991 - 11905: 0x8A9B, - 22992 - 11905: 0xBDE3, - 22993 - 11905: 0xB9C3, - 22994 - 11905: 0xE6A6, - 22995 - 11905: 0xD0D5, - 22996 - 11905: 0xCEAF, - 22997 - 11905: 0x8A9C, - 22998 - 11905: 0x8A9D, - 22999 - 11905: 0xE6A9, - 23000 - 11905: 0xE6B0, - 23001 - 11905: 0x8A9E, - 23002 - 11905: 0xD2A6, - 23003 - 11905: 0x8A9F, - 23004 - 11905: 0xBDAA, - 23005 - 11905: 0xE6AD, - 23006 - 11905: 0x8AA0, - 23007 - 11905: 0x8AA1, - 23008 - 11905: 0x8AA2, - 23009 - 11905: 0x8AA3, - 23010 - 11905: 0x8AA4, - 23011 - 11905: 0xE6AF, - 23012 - 11905: 0x8AA5, - 23013 - 11905: 0xC0D1, - 23014 - 11905: 0x8AA6, - 23015 - 11905: 0x8AA7, - 23016 - 11905: 0xD2CC, - 23017 - 11905: 0x8AA8, - 23018 - 11905: 0x8AA9, - 23019 - 11905: 0x8AAA, - 23020 - 11905: 0xBCA7, - 23021 - 11905: 0x8AAB, - 23022 - 11905: 0x8AAC, - 23023 - 11905: 0x8AAD, - 23024 - 11905: 0x8AAE, - 23025 - 11905: 0x8AAF, - 23026 - 11905: 0x8AB0, - 23027 - 11905: 0x8AB1, - 23028 - 11905: 0x8AB2, - 23029 - 11905: 0x8AB3, - 23030 - 11905: 0x8AB4, - 23031 - 11905: 0x8AB5, - 23032 - 11905: 0x8AB6, - 23033 - 11905: 0xE6B1, - 23034 - 11905: 0x8AB7, - 23035 - 11905: 0xD2F6, - 23036 - 11905: 0x8AB8, - 23037 - 11905: 0x8AB9, - 23038 - 11905: 0x8ABA, - 23039 - 11905: 0xD7CB, - 23040 - 11905: 0x8ABB, - 23041 - 11905: 0xCDFE, - 23042 - 11905: 0x8ABC, - 23043 - 11905: 0xCDDE, - 23044 - 11905: 0xC2A6, - 23045 - 11905: 0xE6AB, - 23046 - 11905: 0xE6AC, - 23047 - 11905: 0xBDBF, - 23048 - 11905: 0xE6AE, - 23049 - 11905: 0xE6B3, - 23050 - 11905: 0x8ABD, - 23051 - 11905: 0x8ABE, - 23052 - 11905: 0xE6B2, - 23053 - 11905: 0x8ABF, - 23054 - 11905: 0x8AC0, - 23055 - 11905: 0x8AC1, - 23056 - 11905: 0x8AC2, - 23057 - 11905: 0xE6B6, - 23058 - 11905: 0x8AC3, - 23059 - 11905: 0xE6B8, - 23060 - 11905: 0x8AC4, - 23061 - 11905: 0x8AC5, - 23062 - 11905: 0x8AC6, - 23063 - 11905: 0x8AC7, - 23064 - 11905: 0xC4EF, - 23065 - 11905: 0x8AC8, - 23066 - 11905: 0x8AC9, - 23067 - 11905: 0x8ACA, - 23068 - 11905: 0xC4C8, - 23069 - 11905: 0x8ACB, - 23070 - 11905: 0x8ACC, - 23071 - 11905: 0xBEEA, - 23072 - 11905: 0xC9EF, - 23073 - 11905: 0x8ACD, - 23074 - 11905: 0x8ACE, - 23075 - 11905: 0xE6B7, - 23076 - 11905: 0x8ACF, - 23077 - 11905: 0xB6F0, - 23078 - 11905: 0x8AD0, - 23079 - 11905: 0x8AD1, - 23080 - 11905: 0x8AD2, - 23081 - 11905: 0xC3E4, - 23082 - 11905: 0x8AD3, - 23083 - 11905: 0x8AD4, - 23084 - 11905: 0x8AD5, - 23085 - 11905: 0x8AD6, - 23086 - 11905: 0x8AD7, - 23087 - 11905: 0x8AD8, - 23088 - 11905: 0x8AD9, - 23089 - 11905: 0xD3E9, - 23090 - 11905: 0xE6B4, - 23091 - 11905: 0x8ADA, - 23092 - 11905: 0xE6B5, - 23093 - 11905: 0x8ADB, - 23094 - 11905: 0xC8A2, - 23095 - 11905: 0x8ADC, - 23096 - 11905: 0x8ADD, - 23097 - 11905: 0x8ADE, - 23098 - 11905: 0x8ADF, - 23099 - 11905: 0x8AE0, - 23100 - 11905: 0xE6BD, - 23101 - 11905: 0x8AE1, - 23102 - 11905: 0x8AE2, - 23103 - 11905: 0x8AE3, - 23104 - 11905: 0xE6B9, - 23105 - 11905: 0x8AE4, - 23106 - 11905: 0x8AE5, - 23107 - 11905: 0x8AE6, - 23108 - 11905: 0x8AE7, - 23109 - 11905: 0x8AE8, - 23110 - 11905: 0xC6C5, - 23111 - 11905: 0x8AE9, - 23112 - 11905: 0x8AEA, - 23113 - 11905: 0xCDF1, - 23114 - 11905: 0xE6BB, - 23115 - 11905: 0x8AEB, - 23116 - 11905: 0x8AEC, - 23117 - 11905: 0x8AED, - 23118 - 11905: 0x8AEE, - 23119 - 11905: 0x8AEF, - 23120 - 11905: 0x8AF0, - 23121 - 11905: 0x8AF1, - 23122 - 11905: 0x8AF2, - 23123 - 11905: 0x8AF3, - 23124 - 11905: 0x8AF4, - 23125 - 11905: 0xE6BC, - 23126 - 11905: 0x8AF5, - 23127 - 11905: 0x8AF6, - 23128 - 11905: 0x8AF7, - 23129 - 11905: 0x8AF8, - 23130 - 11905: 0xBBE9, - 23131 - 11905: 0x8AF9, - 23132 - 11905: 0x8AFA, - 23133 - 11905: 0x8AFB, - 23134 - 11905: 0x8AFC, - 23135 - 11905: 0x8AFD, - 23136 - 11905: 0x8AFE, - 23137 - 11905: 0x8B40, - 23138 - 11905: 0xE6BE, - 23139 - 11905: 0x8B41, - 23140 - 11905: 0x8B42, - 23141 - 11905: 0x8B43, - 23142 - 11905: 0x8B44, - 23143 - 11905: 0xE6BA, - 23144 - 11905: 0x8B45, - 23145 - 11905: 0x8B46, - 23146 - 11905: 0xC0B7, - 23147 - 11905: 0x8B47, - 23148 - 11905: 0x8B48, - 23149 - 11905: 0x8B49, - 23150 - 11905: 0x8B4A, - 23151 - 11905: 0x8B4B, - 23152 - 11905: 0x8B4C, - 23153 - 11905: 0x8B4D, - 23154 - 11905: 0x8B4E, - 23155 - 11905: 0x8B4F, - 23156 - 11905: 0xD3A4, - 23157 - 11905: 0xE6BF, - 23158 - 11905: 0xC9F4, - 23159 - 11905: 0xE6C3, - 23160 - 11905: 0x8B50, - 23161 - 11905: 0x8B51, - 23162 - 11905: 0xE6C4, - 23163 - 11905: 0x8B52, - 23164 - 11905: 0x8B53, - 23165 - 11905: 0x8B54, - 23166 - 11905: 0x8B55, - 23167 - 11905: 0xD0F6, - 23168 - 11905: 0x8B56, - 23169 - 11905: 0x8B57, - 23170 - 11905: 0x8B58, - 23171 - 11905: 0x8B59, - 23172 - 11905: 0x8B5A, - 23173 - 11905: 0x8B5B, - 23174 - 11905: 0x8B5C, - 23175 - 11905: 0x8B5D, - 23176 - 11905: 0x8B5E, - 23177 - 11905: 0x8B5F, - 23178 - 11905: 0x8B60, - 23179 - 11905: 0x8B61, - 23180 - 11905: 0x8B62, - 23181 - 11905: 0x8B63, - 23182 - 11905: 0x8B64, - 23183 - 11905: 0x8B65, - 23184 - 11905: 0x8B66, - 23185 - 11905: 0x8B67, - 23186 - 11905: 0xC3BD, - 23187 - 11905: 0x8B68, - 23188 - 11905: 0x8B69, - 23189 - 11905: 0x8B6A, - 23190 - 11905: 0x8B6B, - 23191 - 11905: 0x8B6C, - 23192 - 11905: 0x8B6D, - 23193 - 11905: 0x8B6E, - 23194 - 11905: 0xC3C4, - 23195 - 11905: 0xE6C2, - 23196 - 11905: 0x8B6F, - 23197 - 11905: 0x8B70, - 23198 - 11905: 0x8B71, - 23199 - 11905: 0x8B72, - 23200 - 11905: 0x8B73, - 23201 - 11905: 0x8B74, - 23202 - 11905: 0x8B75, - 23203 - 11905: 0x8B76, - 23204 - 11905: 0x8B77, - 23205 - 11905: 0x8B78, - 23206 - 11905: 0x8B79, - 23207 - 11905: 0x8B7A, - 23208 - 11905: 0x8B7B, - 23209 - 11905: 0x8B7C, - 23210 - 11905: 0xE6C1, - 23211 - 11905: 0x8B7D, - 23212 - 11905: 0x8B7E, - 23213 - 11905: 0x8B80, - 23214 - 11905: 0x8B81, - 23215 - 11905: 0x8B82, - 23216 - 11905: 0x8B83, - 23217 - 11905: 0x8B84, - 23218 - 11905: 0xE6C7, - 23219 - 11905: 0xCFB1, - 23220 - 11905: 0x8B85, - 23221 - 11905: 0xEBF4, - 23222 - 11905: 0x8B86, - 23223 - 11905: 0x8B87, - 23224 - 11905: 0xE6CA, - 23225 - 11905: 0x8B88, - 23226 - 11905: 0x8B89, - 23227 - 11905: 0x8B8A, - 23228 - 11905: 0x8B8B, - 23229 - 11905: 0x8B8C, - 23230 - 11905: 0xE6C5, - 23231 - 11905: 0x8B8D, - 23232 - 11905: 0x8B8E, - 23233 - 11905: 0xBCDE, - 23234 - 11905: 0xC9A9, - 23235 - 11905: 0x8B8F, - 23236 - 11905: 0x8B90, - 23237 - 11905: 0x8B91, - 23238 - 11905: 0x8B92, - 23239 - 11905: 0x8B93, - 23240 - 11905: 0x8B94, - 23241 - 11905: 0xBCB5, - 23242 - 11905: 0x8B95, - 23243 - 11905: 0x8B96, - 23244 - 11905: 0xCFD3, - 23245 - 11905: 0x8B97, - 23246 - 11905: 0x8B98, - 23247 - 11905: 0x8B99, - 23248 - 11905: 0x8B9A, - 23249 - 11905: 0x8B9B, - 23250 - 11905: 0xE6C8, - 23251 - 11905: 0x8B9C, - 23252 - 11905: 0xE6C9, - 23253 - 11905: 0x8B9D, - 23254 - 11905: 0xE6CE, - 23255 - 11905: 0x8B9E, - 23256 - 11905: 0xE6D0, - 23257 - 11905: 0x8B9F, - 23258 - 11905: 0x8BA0, - 23259 - 11905: 0x8BA1, - 23260 - 11905: 0xE6D1, - 23261 - 11905: 0x8BA2, - 23262 - 11905: 0x8BA3, - 23263 - 11905: 0x8BA4, - 23264 - 11905: 0xE6CB, - 23265 - 11905: 0xB5D5, - 23266 - 11905: 0x8BA5, - 23267 - 11905: 0xE6CC, - 23268 - 11905: 0x8BA6, - 23269 - 11905: 0x8BA7, - 23270 - 11905: 0xE6CF, - 23271 - 11905: 0x8BA8, - 23272 - 11905: 0x8BA9, - 23273 - 11905: 0xC4DB, - 23274 - 11905: 0x8BAA, - 23275 - 11905: 0xE6C6, - 23276 - 11905: 0x8BAB, - 23277 - 11905: 0x8BAC, - 23278 - 11905: 0x8BAD, - 23279 - 11905: 0x8BAE, - 23280 - 11905: 0x8BAF, - 23281 - 11905: 0xE6CD, - 23282 - 11905: 0x8BB0, - 23283 - 11905: 0x8BB1, - 23284 - 11905: 0x8BB2, - 23285 - 11905: 0x8BB3, - 23286 - 11905: 0x8BB4, - 23287 - 11905: 0x8BB5, - 23288 - 11905: 0x8BB6, - 23289 - 11905: 0x8BB7, - 23290 - 11905: 0x8BB8, - 23291 - 11905: 0x8BB9, - 23292 - 11905: 0x8BBA, - 23293 - 11905: 0x8BBB, - 23294 - 11905: 0x8BBC, - 23295 - 11905: 0x8BBD, - 23296 - 11905: 0x8BBE, - 23297 - 11905: 0x8BBF, - 23298 - 11905: 0x8BC0, - 23299 - 11905: 0x8BC1, - 23300 - 11905: 0x8BC2, - 23301 - 11905: 0x8BC3, - 23302 - 11905: 0x8BC4, - 23303 - 11905: 0x8BC5, - 23304 - 11905: 0x8BC6, - 23305 - 11905: 0xE6D2, - 23306 - 11905: 0x8BC7, - 23307 - 11905: 0x8BC8, - 23308 - 11905: 0x8BC9, - 23309 - 11905: 0x8BCA, - 23310 - 11905: 0x8BCB, - 23311 - 11905: 0x8BCC, - 23312 - 11905: 0x8BCD, - 23313 - 11905: 0x8BCE, - 23314 - 11905: 0x8BCF, - 23315 - 11905: 0x8BD0, - 23316 - 11905: 0x8BD1, - 23317 - 11905: 0x8BD2, - 23318 - 11905: 0xE6D4, - 23319 - 11905: 0xE6D3, - 23320 - 11905: 0x8BD3, - 23321 - 11905: 0x8BD4, - 23322 - 11905: 0x8BD5, - 23323 - 11905: 0x8BD6, - 23324 - 11905: 0x8BD7, - 23325 - 11905: 0x8BD8, - 23326 - 11905: 0x8BD9, - 23327 - 11905: 0x8BDA, - 23328 - 11905: 0x8BDB, - 23329 - 11905: 0x8BDC, - 23330 - 11905: 0x8BDD, - 23331 - 11905: 0x8BDE, - 23332 - 11905: 0x8BDF, - 23333 - 11905: 0x8BE0, - 23334 - 11905: 0x8BE1, - 23335 - 11905: 0x8BE2, - 23336 - 11905: 0x8BE3, - 23337 - 11905: 0x8BE4, - 23338 - 11905: 0x8BE5, - 23339 - 11905: 0x8BE6, - 23340 - 11905: 0x8BE7, - 23341 - 11905: 0x8BE8, - 23342 - 11905: 0x8BE9, - 23343 - 11905: 0x8BEA, - 23344 - 11905: 0x8BEB, - 23345 - 11905: 0x8BEC, - 23346 - 11905: 0xE6D5, - 23347 - 11905: 0x8BED, - 23348 - 11905: 0xD9F8, - 23349 - 11905: 0x8BEE, - 23350 - 11905: 0x8BEF, - 23351 - 11905: 0xE6D6, - 23352 - 11905: 0x8BF0, - 23353 - 11905: 0x8BF1, - 23354 - 11905: 0x8BF2, - 23355 - 11905: 0x8BF3, - 23356 - 11905: 0x8BF4, - 23357 - 11905: 0x8BF5, - 23358 - 11905: 0x8BF6, - 23359 - 11905: 0x8BF7, - 23360 - 11905: 0xE6D7, - 23361 - 11905: 0x8BF8, - 23362 - 11905: 0x8BF9, - 23363 - 11905: 0x8BFA, - 23364 - 11905: 0x8BFB, - 23365 - 11905: 0x8BFC, - 23366 - 11905: 0x8BFD, - 23367 - 11905: 0x8BFE, - 23368 - 11905: 0x8C40, - 23369 - 11905: 0x8C41, - 23370 - 11905: 0x8C42, - 23371 - 11905: 0x8C43, - 23372 - 11905: 0x8C44, - 23373 - 11905: 0x8C45, - 23374 - 11905: 0x8C46, - 23375 - 11905: 0x8C47, - 23376 - 11905: 0xD7D3, - 23377 - 11905: 0xE6DD, - 23378 - 11905: 0x8C48, - 23379 - 11905: 0xE6DE, - 23380 - 11905: 0xBFD7, - 23381 - 11905: 0xD4D0, - 23382 - 11905: 0x8C49, - 23383 - 11905: 0xD7D6, - 23384 - 11905: 0xB4E6, - 23385 - 11905: 0xCBEF, - 23386 - 11905: 0xE6DA, - 23387 - 11905: 0xD8C3, - 23388 - 11905: 0xD7CE, - 23389 - 11905: 0xD0A2, - 23390 - 11905: 0x8C4A, - 23391 - 11905: 0xC3CF, - 23392 - 11905: 0x8C4B, - 23393 - 11905: 0x8C4C, - 23394 - 11905: 0xE6DF, - 23395 - 11905: 0xBCBE, - 23396 - 11905: 0xB9C2, - 23397 - 11905: 0xE6DB, - 23398 - 11905: 0xD1A7, - 23399 - 11905: 0x8C4D, - 23400 - 11905: 0x8C4E, - 23401 - 11905: 0xBAA2, - 23402 - 11905: 0xC2CF, - 23403 - 11905: 0x8C4F, - 23404 - 11905: 0xD8AB, - 23405 - 11905: 0x8C50, - 23406 - 11905: 0x8C51, - 23407 - 11905: 0x8C52, - 23408 - 11905: 0xCAEB, - 23409 - 11905: 0xE5EE, - 23410 - 11905: 0x8C53, - 23411 - 11905: 0xE6DC, - 23412 - 11905: 0x8C54, - 23413 - 11905: 0xB7F5, - 23414 - 11905: 0x8C55, - 23415 - 11905: 0x8C56, - 23416 - 11905: 0x8C57, - 23417 - 11905: 0x8C58, - 23418 - 11905: 0xC8E6, - 23419 - 11905: 0x8C59, - 23420 - 11905: 0x8C5A, - 23421 - 11905: 0xC4F5, - 23422 - 11905: 0x8C5B, - 23423 - 11905: 0x8C5C, - 23424 - 11905: 0xE5B2, - 23425 - 11905: 0xC4FE, - 23426 - 11905: 0x8C5D, - 23427 - 11905: 0xCBFC, - 23428 - 11905: 0xE5B3, - 23429 - 11905: 0xD5AC, - 23430 - 11905: 0x8C5E, - 23431 - 11905: 0xD3EE, - 23432 - 11905: 0xCAD8, - 23433 - 11905: 0xB0B2, - 23434 - 11905: 0x8C5F, - 23435 - 11905: 0xCBCE, - 23436 - 11905: 0xCDEA, - 23437 - 11905: 0x8C60, - 23438 - 11905: 0x8C61, - 23439 - 11905: 0xBAEA, - 23440 - 11905: 0x8C62, - 23441 - 11905: 0x8C63, - 23442 - 11905: 0x8C64, - 23443 - 11905: 0xE5B5, - 23444 - 11905: 0x8C65, - 23445 - 11905: 0xE5B4, - 23446 - 11905: 0x8C66, - 23447 - 11905: 0xD7DA, - 23448 - 11905: 0xB9D9, - 23449 - 11905: 0xD6E6, - 23450 - 11905: 0xB6A8, - 23451 - 11905: 0xCDF0, - 23452 - 11905: 0xD2CB, - 23453 - 11905: 0xB1A6, - 23454 - 11905: 0xCAB5, - 23455 - 11905: 0x8C67, - 23456 - 11905: 0xB3E8, - 23457 - 11905: 0xC9F3, - 23458 - 11905: 0xBFCD, - 23459 - 11905: 0xD0FB, - 23460 - 11905: 0xCAD2, - 23461 - 11905: 0xE5B6, - 23462 - 11905: 0xBBC2, - 23463 - 11905: 0x8C68, - 23464 - 11905: 0x8C69, - 23465 - 11905: 0x8C6A, - 23466 - 11905: 0xCFDC, - 23467 - 11905: 0xB9AC, - 23468 - 11905: 0x8C6B, - 23469 - 11905: 0x8C6C, - 23470 - 11905: 0x8C6D, - 23471 - 11905: 0x8C6E, - 23472 - 11905: 0xD4D7, - 23473 - 11905: 0x8C6F, - 23474 - 11905: 0x8C70, - 23475 - 11905: 0xBAA6, - 23476 - 11905: 0xD1E7, - 23477 - 11905: 0xCFFC, - 23478 - 11905: 0xBCD2, - 23479 - 11905: 0x8C71, - 23480 - 11905: 0xE5B7, - 23481 - 11905: 0xC8DD, - 23482 - 11905: 0x8C72, - 23483 - 11905: 0x8C73, - 23484 - 11905: 0x8C74, - 23485 - 11905: 0xBFED, - 23486 - 11905: 0xB1F6, - 23487 - 11905: 0xCBDE, - 23488 - 11905: 0x8C75, - 23489 - 11905: 0x8C76, - 23490 - 11905: 0xBCC5, - 23491 - 11905: 0x8C77, - 23492 - 11905: 0xBCC4, - 23493 - 11905: 0xD2FA, - 23494 - 11905: 0xC3DC, - 23495 - 11905: 0xBFDC, - 23496 - 11905: 0x8C78, - 23497 - 11905: 0x8C79, - 23498 - 11905: 0x8C7A, - 23499 - 11905: 0x8C7B, - 23500 - 11905: 0xB8BB, - 23501 - 11905: 0x8C7C, - 23502 - 11905: 0x8C7D, - 23503 - 11905: 0x8C7E, - 23504 - 11905: 0xC3C2, - 23505 - 11905: 0x8C80, - 23506 - 11905: 0xBAAE, - 23507 - 11905: 0xD4A2, - 23508 - 11905: 0x8C81, - 23509 - 11905: 0x8C82, - 23510 - 11905: 0x8C83, - 23511 - 11905: 0x8C84, - 23512 - 11905: 0x8C85, - 23513 - 11905: 0x8C86, - 23514 - 11905: 0x8C87, - 23515 - 11905: 0x8C88, - 23516 - 11905: 0x8C89, - 23517 - 11905: 0xC7DE, - 23518 - 11905: 0xC4AF, - 23519 - 11905: 0xB2EC, - 23520 - 11905: 0x8C8A, - 23521 - 11905: 0xB9D1, - 23522 - 11905: 0x8C8B, - 23523 - 11905: 0x8C8C, - 23524 - 11905: 0xE5BB, - 23525 - 11905: 0xC1C8, - 23526 - 11905: 0x8C8D, - 23527 - 11905: 0x8C8E, - 23528 - 11905: 0xD5AF, - 23529 - 11905: 0x8C8F, - 23530 - 11905: 0x8C90, - 23531 - 11905: 0x8C91, - 23532 - 11905: 0x8C92, - 23533 - 11905: 0x8C93, - 23534 - 11905: 0xE5BC, - 23535 - 11905: 0x8C94, - 23536 - 11905: 0xE5BE, - 23537 - 11905: 0x8C95, - 23538 - 11905: 0x8C96, - 23539 - 11905: 0x8C97, - 23540 - 11905: 0x8C98, - 23541 - 11905: 0x8C99, - 23542 - 11905: 0x8C9A, - 23543 - 11905: 0x8C9B, - 23544 - 11905: 0xB4E7, - 23545 - 11905: 0xB6D4, - 23546 - 11905: 0xCBC2, - 23547 - 11905: 0xD1B0, - 23548 - 11905: 0xB5BC, - 23549 - 11905: 0x8C9C, - 23550 - 11905: 0x8C9D, - 23551 - 11905: 0xCAD9, - 23552 - 11905: 0x8C9E, - 23553 - 11905: 0xB7E2, - 23554 - 11905: 0x8C9F, - 23555 - 11905: 0x8CA0, - 23556 - 11905: 0xC9E4, - 23557 - 11905: 0x8CA1, - 23558 - 11905: 0xBDAB, - 23559 - 11905: 0x8CA2, - 23560 - 11905: 0x8CA3, - 23561 - 11905: 0xCEBE, - 23562 - 11905: 0xD7F0, - 23563 - 11905: 0x8CA4, - 23564 - 11905: 0x8CA5, - 23565 - 11905: 0x8CA6, - 23566 - 11905: 0x8CA7, - 23567 - 11905: 0xD0A1, - 23568 - 11905: 0x8CA8, - 23569 - 11905: 0xC9D9, - 23570 - 11905: 0x8CA9, - 23571 - 11905: 0x8CAA, - 23572 - 11905: 0xB6FB, - 23573 - 11905: 0xE6D8, - 23574 - 11905: 0xBCE2, - 23575 - 11905: 0x8CAB, - 23576 - 11905: 0xB3BE, - 23577 - 11905: 0x8CAC, - 23578 - 11905: 0xC9D0, - 23579 - 11905: 0x8CAD, - 23580 - 11905: 0xE6D9, - 23581 - 11905: 0xB3A2, - 23582 - 11905: 0x8CAE, - 23583 - 11905: 0x8CAF, - 23584 - 11905: 0x8CB0, - 23585 - 11905: 0x8CB1, - 23586 - 11905: 0xDECC, - 23587 - 11905: 0x8CB2, - 23588 - 11905: 0xD3C8, - 23589 - 11905: 0xDECD, - 23590 - 11905: 0x8CB3, - 23591 - 11905: 0xD2A2, - 23592 - 11905: 0x8CB4, - 23593 - 11905: 0x8CB5, - 23594 - 11905: 0x8CB6, - 23595 - 11905: 0x8CB7, - 23596 - 11905: 0xDECE, - 23597 - 11905: 0x8CB8, - 23598 - 11905: 0x8CB9, - 23599 - 11905: 0x8CBA, - 23600 - 11905: 0x8CBB, - 23601 - 11905: 0xBECD, - 23602 - 11905: 0x8CBC, - 23603 - 11905: 0x8CBD, - 23604 - 11905: 0xDECF, - 23605 - 11905: 0x8CBE, - 23606 - 11905: 0x8CBF, - 23607 - 11905: 0x8CC0, - 23608 - 11905: 0xCAAC, - 23609 - 11905: 0xD2FC, - 23610 - 11905: 0xB3DF, - 23611 - 11905: 0xE5EA, - 23612 - 11905: 0xC4E1, - 23613 - 11905: 0xBEA1, - 23614 - 11905: 0xCEB2, - 23615 - 11905: 0xC4F2, - 23616 - 11905: 0xBED6, - 23617 - 11905: 0xC6A8, - 23618 - 11905: 0xB2E3, - 23619 - 11905: 0x8CC1, - 23620 - 11905: 0x8CC2, - 23621 - 11905: 0xBED3, - 23622 - 11905: 0x8CC3, - 23623 - 11905: 0x8CC4, - 23624 - 11905: 0xC7FC, - 23625 - 11905: 0xCCEB, - 23626 - 11905: 0xBDEC, - 23627 - 11905: 0xCEDD, - 23628 - 11905: 0x8CC5, - 23629 - 11905: 0x8CC6, - 23630 - 11905: 0xCABA, - 23631 - 11905: 0xC6C1, - 23632 - 11905: 0xE5EC, - 23633 - 11905: 0xD0BC, - 23634 - 11905: 0x8CC7, - 23635 - 11905: 0x8CC8, - 23636 - 11905: 0x8CC9, - 23637 - 11905: 0xD5B9, - 23638 - 11905: 0x8CCA, - 23639 - 11905: 0x8CCB, - 23640 - 11905: 0x8CCC, - 23641 - 11905: 0xE5ED, - 23642 - 11905: 0x8CCD, - 23643 - 11905: 0x8CCE, - 23644 - 11905: 0x8CCF, - 23645 - 11905: 0x8CD0, - 23646 - 11905: 0xCAF4, - 23647 - 11905: 0x8CD1, - 23648 - 11905: 0xCDC0, - 23649 - 11905: 0xC2C5, - 23650 - 11905: 0x8CD2, - 23651 - 11905: 0xE5EF, - 23652 - 11905: 0x8CD3, - 23653 - 11905: 0xC2C4, - 23654 - 11905: 0xE5F0, - 23655 - 11905: 0x8CD4, - 23656 - 11905: 0x8CD5, - 23657 - 11905: 0x8CD6, - 23658 - 11905: 0x8CD7, - 23659 - 11905: 0x8CD8, - 23660 - 11905: 0x8CD9, - 23661 - 11905: 0x8CDA, - 23662 - 11905: 0xE5F8, - 23663 - 11905: 0xCDCD, - 23664 - 11905: 0x8CDB, - 23665 - 11905: 0xC9BD, - 23666 - 11905: 0x8CDC, - 23667 - 11905: 0x8CDD, - 23668 - 11905: 0x8CDE, - 23669 - 11905: 0x8CDF, - 23670 - 11905: 0x8CE0, - 23671 - 11905: 0x8CE1, - 23672 - 11905: 0x8CE2, - 23673 - 11905: 0xD2D9, - 23674 - 11905: 0xE1A8, - 23675 - 11905: 0x8CE3, - 23676 - 11905: 0x8CE4, - 23677 - 11905: 0x8CE5, - 23678 - 11905: 0x8CE6, - 23679 - 11905: 0xD3EC, - 23680 - 11905: 0x8CE7, - 23681 - 11905: 0xCBEA, - 23682 - 11905: 0xC6F1, - 23683 - 11905: 0x8CE8, - 23684 - 11905: 0x8CE9, - 23685 - 11905: 0x8CEA, - 23686 - 11905: 0x8CEB, - 23687 - 11905: 0x8CEC, - 23688 - 11905: 0xE1AC, - 23689 - 11905: 0x8CED, - 23690 - 11905: 0x8CEE, - 23691 - 11905: 0x8CEF, - 23692 - 11905: 0xE1A7, - 23693 - 11905: 0xE1A9, - 23694 - 11905: 0x8CF0, - 23695 - 11905: 0x8CF1, - 23696 - 11905: 0xE1AA, - 23697 - 11905: 0xE1AF, - 23698 - 11905: 0x8CF2, - 23699 - 11905: 0x8CF3, - 23700 - 11905: 0xB2ED, - 23701 - 11905: 0x8CF4, - 23702 - 11905: 0xE1AB, - 23703 - 11905: 0xB8DA, - 23704 - 11905: 0xE1AD, - 23705 - 11905: 0xE1AE, - 23706 - 11905: 0xE1B0, - 23707 - 11905: 0xB5BA, - 23708 - 11905: 0xE1B1, - 23709 - 11905: 0x8CF5, - 23710 - 11905: 0x8CF6, - 23711 - 11905: 0x8CF7, - 23712 - 11905: 0x8CF8, - 23713 - 11905: 0x8CF9, - 23714 - 11905: 0xE1B3, - 23715 - 11905: 0xE1B8, - 23716 - 11905: 0x8CFA, - 23717 - 11905: 0x8CFB, - 23718 - 11905: 0x8CFC, - 23719 - 11905: 0x8CFD, - 23720 - 11905: 0x8CFE, - 23721 - 11905: 0xD1D2, - 23722 - 11905: 0x8D40, - 23723 - 11905: 0xE1B6, - 23724 - 11905: 0xE1B5, - 23725 - 11905: 0xC1EB, - 23726 - 11905: 0x8D41, - 23727 - 11905: 0x8D42, - 23728 - 11905: 0x8D43, - 23729 - 11905: 0xE1B7, - 23730 - 11905: 0x8D44, - 23731 - 11905: 0xD4C0, - 23732 - 11905: 0x8D45, - 23733 - 11905: 0xE1B2, - 23734 - 11905: 0x8D46, - 23735 - 11905: 0xE1BA, - 23736 - 11905: 0xB0B6, - 23737 - 11905: 0x8D47, - 23738 - 11905: 0x8D48, - 23739 - 11905: 0x8D49, - 23740 - 11905: 0x8D4A, - 23741 - 11905: 0xE1B4, - 23742 - 11905: 0x8D4B, - 23743 - 11905: 0xBFF9, - 23744 - 11905: 0x8D4C, - 23745 - 11905: 0xE1B9, - 23746 - 11905: 0x8D4D, - 23747 - 11905: 0x8D4E, - 23748 - 11905: 0xE1BB, - 23749 - 11905: 0x8D4F, - 23750 - 11905: 0x8D50, - 23751 - 11905: 0x8D51, - 23752 - 11905: 0x8D52, - 23753 - 11905: 0x8D53, - 23754 - 11905: 0x8D54, - 23755 - 11905: 0xE1BE, - 23756 - 11905: 0x8D55, - 23757 - 11905: 0x8D56, - 23758 - 11905: 0x8D57, - 23759 - 11905: 0x8D58, - 23760 - 11905: 0x8D59, - 23761 - 11905: 0x8D5A, - 23762 - 11905: 0xE1BC, - 23763 - 11905: 0x8D5B, - 23764 - 11905: 0x8D5C, - 23765 - 11905: 0x8D5D, - 23766 - 11905: 0x8D5E, - 23767 - 11905: 0x8D5F, - 23768 - 11905: 0x8D60, - 23769 - 11905: 0xD6C5, - 23770 - 11905: 0x8D61, - 23771 - 11905: 0x8D62, - 23772 - 11905: 0x8D63, - 23773 - 11905: 0x8D64, - 23774 - 11905: 0x8D65, - 23775 - 11905: 0x8D66, - 23776 - 11905: 0x8D67, - 23777 - 11905: 0xCFBF, - 23778 - 11905: 0x8D68, - 23779 - 11905: 0x8D69, - 23780 - 11905: 0xE1BD, - 23781 - 11905: 0xE1BF, - 23782 - 11905: 0xC2CD, - 23783 - 11905: 0x8D6A, - 23784 - 11905: 0xB6EB, - 23785 - 11905: 0x8D6B, - 23786 - 11905: 0xD3F8, - 23787 - 11905: 0x8D6C, - 23788 - 11905: 0x8D6D, - 23789 - 11905: 0xC7CD, - 23790 - 11905: 0x8D6E, - 23791 - 11905: 0x8D6F, - 23792 - 11905: 0xB7E5, - 23793 - 11905: 0x8D70, - 23794 - 11905: 0x8D71, - 23795 - 11905: 0x8D72, - 23796 - 11905: 0x8D73, - 23797 - 11905: 0x8D74, - 23798 - 11905: 0x8D75, - 23799 - 11905: 0x8D76, - 23800 - 11905: 0x8D77, - 23801 - 11905: 0x8D78, - 23802 - 11905: 0x8D79, - 23803 - 11905: 0xBEFE, - 23804 - 11905: 0x8D7A, - 23805 - 11905: 0x8D7B, - 23806 - 11905: 0x8D7C, - 23807 - 11905: 0x8D7D, - 23808 - 11905: 0x8D7E, - 23809 - 11905: 0x8D80, - 23810 - 11905: 0xE1C0, - 23811 - 11905: 0xE1C1, - 23812 - 11905: 0x8D81, - 23813 - 11905: 0x8D82, - 23814 - 11905: 0xE1C7, - 23815 - 11905: 0xB3E7, - 23816 - 11905: 0x8D83, - 23817 - 11905: 0x8D84, - 23818 - 11905: 0x8D85, - 23819 - 11905: 0x8D86, - 23820 - 11905: 0x8D87, - 23821 - 11905: 0x8D88, - 23822 - 11905: 0xC6E9, - 23823 - 11905: 0x8D89, - 23824 - 11905: 0x8D8A, - 23825 - 11905: 0x8D8B, - 23826 - 11905: 0x8D8C, - 23827 - 11905: 0x8D8D, - 23828 - 11905: 0xB4DE, - 23829 - 11905: 0x8D8E, - 23830 - 11905: 0xD1C2, - 23831 - 11905: 0x8D8F, - 23832 - 11905: 0x8D90, - 23833 - 11905: 0x8D91, - 23834 - 11905: 0x8D92, - 23835 - 11905: 0xE1C8, - 23836 - 11905: 0x8D93, - 23837 - 11905: 0x8D94, - 23838 - 11905: 0xE1C6, - 23839 - 11905: 0x8D95, - 23840 - 11905: 0x8D96, - 23841 - 11905: 0x8D97, - 23842 - 11905: 0x8D98, - 23843 - 11905: 0x8D99, - 23844 - 11905: 0xE1C5, - 23845 - 11905: 0x8D9A, - 23846 - 11905: 0xE1C3, - 23847 - 11905: 0xE1C2, - 23848 - 11905: 0x8D9B, - 23849 - 11905: 0xB1C0, - 23850 - 11905: 0x8D9C, - 23851 - 11905: 0x8D9D, - 23852 - 11905: 0x8D9E, - 23853 - 11905: 0xD5B8, - 23854 - 11905: 0xE1C4, - 23855 - 11905: 0x8D9F, - 23856 - 11905: 0x8DA0, - 23857 - 11905: 0x8DA1, - 23858 - 11905: 0x8DA2, - 23859 - 11905: 0x8DA3, - 23860 - 11905: 0xE1CB, - 23861 - 11905: 0x8DA4, - 23862 - 11905: 0x8DA5, - 23863 - 11905: 0x8DA6, - 23864 - 11905: 0x8DA7, - 23865 - 11905: 0x8DA8, - 23866 - 11905: 0x8DA9, - 23867 - 11905: 0x8DAA, - 23868 - 11905: 0x8DAB, - 23869 - 11905: 0xE1CC, - 23870 - 11905: 0xE1CA, - 23871 - 11905: 0x8DAC, - 23872 - 11905: 0x8DAD, - 23873 - 11905: 0x8DAE, - 23874 - 11905: 0x8DAF, - 23875 - 11905: 0x8DB0, - 23876 - 11905: 0x8DB1, - 23877 - 11905: 0x8DB2, - 23878 - 11905: 0x8DB3, - 23879 - 11905: 0xEFFA, - 23880 - 11905: 0x8DB4, - 23881 - 11905: 0x8DB5, - 23882 - 11905: 0xE1D3, - 23883 - 11905: 0xE1D2, - 23884 - 11905: 0xC7B6, - 23885 - 11905: 0x8DB6, - 23886 - 11905: 0x8DB7, - 23887 - 11905: 0x8DB8, - 23888 - 11905: 0x8DB9, - 23889 - 11905: 0x8DBA, - 23890 - 11905: 0x8DBB, - 23891 - 11905: 0x8DBC, - 23892 - 11905: 0x8DBD, - 23893 - 11905: 0x8DBE, - 23894 - 11905: 0x8DBF, - 23895 - 11905: 0x8DC0, - 23896 - 11905: 0xE1C9, - 23897 - 11905: 0x8DC1, - 23898 - 11905: 0x8DC2, - 23899 - 11905: 0xE1CE, - 23900 - 11905: 0x8DC3, - 23901 - 11905: 0xE1D0, - 23902 - 11905: 0x8DC4, - 23903 - 11905: 0x8DC5, - 23904 - 11905: 0x8DC6, - 23905 - 11905: 0x8DC7, - 23906 - 11905: 0x8DC8, - 23907 - 11905: 0x8DC9, - 23908 - 11905: 0x8DCA, - 23909 - 11905: 0x8DCB, - 23910 - 11905: 0x8DCC, - 23911 - 11905: 0x8DCD, - 23912 - 11905: 0x8DCE, - 23913 - 11905: 0xE1D4, - 23914 - 11905: 0x8DCF, - 23915 - 11905: 0xE1D1, - 23916 - 11905: 0xE1CD, - 23917 - 11905: 0x8DD0, - 23918 - 11905: 0x8DD1, - 23919 - 11905: 0xE1CF, - 23920 - 11905: 0x8DD2, - 23921 - 11905: 0x8DD3, - 23922 - 11905: 0x8DD4, - 23923 - 11905: 0x8DD5, - 23924 - 11905: 0xE1D5, - 23925 - 11905: 0x8DD6, - 23926 - 11905: 0x8DD7, - 23927 - 11905: 0x8DD8, - 23928 - 11905: 0x8DD9, - 23929 - 11905: 0x8DDA, - 23930 - 11905: 0x8DDB, - 23931 - 11905: 0x8DDC, - 23932 - 11905: 0x8DDD, - 23933 - 11905: 0x8DDE, - 23934 - 11905: 0x8DDF, - 23935 - 11905: 0x8DE0, - 23936 - 11905: 0x8DE1, - 23937 - 11905: 0x8DE2, - 23938 - 11905: 0xE1D6, - 23939 - 11905: 0x8DE3, - 23940 - 11905: 0x8DE4, - 23941 - 11905: 0x8DE5, - 23942 - 11905: 0x8DE6, - 23943 - 11905: 0x8DE7, - 23944 - 11905: 0x8DE8, - 23945 - 11905: 0x8DE9, - 23946 - 11905: 0x8DEA, - 23947 - 11905: 0x8DEB, - 23948 - 11905: 0x8DEC, - 23949 - 11905: 0x8DED, - 23950 - 11905: 0x8DEE, - 23951 - 11905: 0x8DEF, - 23952 - 11905: 0x8DF0, - 23953 - 11905: 0x8DF1, - 23954 - 11905: 0x8DF2, - 23955 - 11905: 0x8DF3, - 23956 - 11905: 0x8DF4, - 23957 - 11905: 0x8DF5, - 23958 - 11905: 0x8DF6, - 23959 - 11905: 0x8DF7, - 23960 - 11905: 0x8DF8, - 23961 - 11905: 0xE1D7, - 23962 - 11905: 0x8DF9, - 23963 - 11905: 0x8DFA, - 23964 - 11905: 0x8DFB, - 23965 - 11905: 0xE1D8, - 23966 - 11905: 0x8DFC, - 23967 - 11905: 0x8DFD, - 23968 - 11905: 0x8DFE, - 23969 - 11905: 0x8E40, - 23970 - 11905: 0x8E41, - 23971 - 11905: 0x8E42, - 23972 - 11905: 0x8E43, - 23973 - 11905: 0x8E44, - 23974 - 11905: 0x8E45, - 23975 - 11905: 0x8E46, - 23976 - 11905: 0x8E47, - 23977 - 11905: 0x8E48, - 23978 - 11905: 0x8E49, - 23979 - 11905: 0x8E4A, - 23980 - 11905: 0x8E4B, - 23981 - 11905: 0x8E4C, - 23982 - 11905: 0x8E4D, - 23983 - 11905: 0x8E4E, - 23984 - 11905: 0x8E4F, - 23985 - 11905: 0x8E50, - 23986 - 11905: 0x8E51, - 23987 - 11905: 0x8E52, - 23988 - 11905: 0x8E53, - 23989 - 11905: 0x8E54, - 23990 - 11905: 0x8E55, - 23991 - 11905: 0xE1DA, - 23992 - 11905: 0x8E56, - 23993 - 11905: 0x8E57, - 23994 - 11905: 0x8E58, - 23995 - 11905: 0x8E59, - 23996 - 11905: 0x8E5A, - 23997 - 11905: 0x8E5B, - 23998 - 11905: 0x8E5C, - 23999 - 11905: 0x8E5D, - 24000 - 11905: 0x8E5E, - 24001 - 11905: 0x8E5F, - 24002 - 11905: 0x8E60, - 24003 - 11905: 0x8E61, - 24004 - 11905: 0x8E62, - 24005 - 11905: 0xE1DB, - 24006 - 11905: 0x8E63, - 24007 - 11905: 0x8E64, - 24008 - 11905: 0x8E65, - 24009 - 11905: 0x8E66, - 24010 - 11905: 0x8E67, - 24011 - 11905: 0x8E68, - 24012 - 11905: 0x8E69, - 24013 - 11905: 0xCEA1, - 24014 - 11905: 0x8E6A, - 24015 - 11905: 0x8E6B, - 24016 - 11905: 0x8E6C, - 24017 - 11905: 0x8E6D, - 24018 - 11905: 0x8E6E, - 24019 - 11905: 0x8E6F, - 24020 - 11905: 0x8E70, - 24021 - 11905: 0x8E71, - 24022 - 11905: 0x8E72, - 24023 - 11905: 0x8E73, - 24024 - 11905: 0x8E74, - 24025 - 11905: 0x8E75, - 24026 - 11905: 0x8E76, - 24027 - 11905: 0xE7DD, - 24028 - 11905: 0x8E77, - 24029 - 11905: 0xB4A8, - 24030 - 11905: 0xD6DD, - 24031 - 11905: 0x8E78, - 24032 - 11905: 0x8E79, - 24033 - 11905: 0xD1B2, - 24034 - 11905: 0xB3B2, - 24035 - 11905: 0x8E7A, - 24036 - 11905: 0x8E7B, - 24037 - 11905: 0xB9A4, - 24038 - 11905: 0xD7F3, - 24039 - 11905: 0xC7C9, - 24040 - 11905: 0xBEDE, - 24041 - 11905: 0xB9AE, - 24042 - 11905: 0x8E7C, - 24043 - 11905: 0xCED7, - 24044 - 11905: 0x8E7D, - 24045 - 11905: 0x8E7E, - 24046 - 11905: 0xB2EE, - 24047 - 11905: 0xDBCF, - 24048 - 11905: 0x8E80, - 24049 - 11905: 0xBCBA, - 24050 - 11905: 0xD2D1, - 24051 - 11905: 0xCBC8, - 24052 - 11905: 0xB0CD, - 24053 - 11905: 0x8E81, - 24054 - 11905: 0x8E82, - 24055 - 11905: 0xCFEF, - 24056 - 11905: 0x8E83, - 24057 - 11905: 0x8E84, - 24058 - 11905: 0x8E85, - 24059 - 11905: 0x8E86, - 24060 - 11905: 0x8E87, - 24061 - 11905: 0xD9E3, - 24062 - 11905: 0xBDED, - 24063 - 11905: 0x8E88, - 24064 - 11905: 0x8E89, - 24065 - 11905: 0xB1D2, - 24066 - 11905: 0xCAD0, - 24067 - 11905: 0xB2BC, - 24068 - 11905: 0x8E8A, - 24069 - 11905: 0xCBA7, - 24070 - 11905: 0xB7AB, - 24071 - 11905: 0x8E8B, - 24072 - 11905: 0xCAA6, - 24073 - 11905: 0x8E8C, - 24074 - 11905: 0x8E8D, - 24075 - 11905: 0x8E8E, - 24076 - 11905: 0xCFA3, - 24077 - 11905: 0x8E8F, - 24078 - 11905: 0x8E90, - 24079 - 11905: 0xE0F8, - 24080 - 11905: 0xD5CA, - 24081 - 11905: 0xE0FB, - 24082 - 11905: 0x8E91, - 24083 - 11905: 0x8E92, - 24084 - 11905: 0xE0FA, - 24085 - 11905: 0xC5C1, - 24086 - 11905: 0xCCFB, - 24087 - 11905: 0x8E93, - 24088 - 11905: 0xC1B1, - 24089 - 11905: 0xE0F9, - 24090 - 11905: 0xD6E3, - 24091 - 11905: 0xB2AF, - 24092 - 11905: 0xD6C4, - 24093 - 11905: 0xB5DB, - 24094 - 11905: 0x8E94, - 24095 - 11905: 0x8E95, - 24096 - 11905: 0x8E96, - 24097 - 11905: 0x8E97, - 24098 - 11905: 0x8E98, - 24099 - 11905: 0x8E99, - 24100 - 11905: 0x8E9A, - 24101 - 11905: 0x8E9B, - 24102 - 11905: 0xB4F8, - 24103 - 11905: 0xD6A1, - 24104 - 11905: 0x8E9C, - 24105 - 11905: 0x8E9D, - 24106 - 11905: 0x8E9E, - 24107 - 11905: 0x8E9F, - 24108 - 11905: 0x8EA0, - 24109 - 11905: 0xCFAF, - 24110 - 11905: 0xB0EF, - 24111 - 11905: 0x8EA1, - 24112 - 11905: 0x8EA2, - 24113 - 11905: 0xE0FC, - 24114 - 11905: 0x8EA3, - 24115 - 11905: 0x8EA4, - 24116 - 11905: 0x8EA5, - 24117 - 11905: 0x8EA6, - 24118 - 11905: 0x8EA7, - 24119 - 11905: 0xE1A1, - 24120 - 11905: 0xB3A3, - 24121 - 11905: 0x8EA8, - 24122 - 11905: 0x8EA9, - 24123 - 11905: 0xE0FD, - 24124 - 11905: 0xE0FE, - 24125 - 11905: 0xC3B1, - 24126 - 11905: 0x8EAA, - 24127 - 11905: 0x8EAB, - 24128 - 11905: 0x8EAC, - 24129 - 11905: 0x8EAD, - 24130 - 11905: 0xC3DD, - 24131 - 11905: 0x8EAE, - 24132 - 11905: 0xE1A2, - 24133 - 11905: 0xB7F9, - 24134 - 11905: 0x8EAF, - 24135 - 11905: 0x8EB0, - 24136 - 11905: 0x8EB1, - 24137 - 11905: 0x8EB2, - 24138 - 11905: 0x8EB3, - 24139 - 11905: 0x8EB4, - 24140 - 11905: 0xBBCF, - 24141 - 11905: 0x8EB5, - 24142 - 11905: 0x8EB6, - 24143 - 11905: 0x8EB7, - 24144 - 11905: 0x8EB8, - 24145 - 11905: 0x8EB9, - 24146 - 11905: 0x8EBA, - 24147 - 11905: 0x8EBB, - 24148 - 11905: 0xE1A3, - 24149 - 11905: 0xC4BB, - 24150 - 11905: 0x8EBC, - 24151 - 11905: 0x8EBD, - 24152 - 11905: 0x8EBE, - 24153 - 11905: 0x8EBF, - 24154 - 11905: 0x8EC0, - 24155 - 11905: 0xE1A4, - 24156 - 11905: 0x8EC1, - 24157 - 11905: 0x8EC2, - 24158 - 11905: 0xE1A5, - 24159 - 11905: 0x8EC3, - 24160 - 11905: 0x8EC4, - 24161 - 11905: 0xE1A6, - 24162 - 11905: 0xB4B1, - 24163 - 11905: 0x8EC5, - 24164 - 11905: 0x8EC6, - 24165 - 11905: 0x8EC7, - 24166 - 11905: 0x8EC8, - 24167 - 11905: 0x8EC9, - 24168 - 11905: 0x8ECA, - 24169 - 11905: 0x8ECB, - 24170 - 11905: 0x8ECC, - 24171 - 11905: 0x8ECD, - 24172 - 11905: 0x8ECE, - 24173 - 11905: 0x8ECF, - 24174 - 11905: 0x8ED0, - 24175 - 11905: 0x8ED1, - 24176 - 11905: 0x8ED2, - 24177 - 11905: 0x8ED3, - 24178 - 11905: 0xB8C9, - 24179 - 11905: 0xC6BD, - 24180 - 11905: 0xC4EA, - 24181 - 11905: 0x8ED4, - 24182 - 11905: 0xB2A2, - 24183 - 11905: 0x8ED5, - 24184 - 11905: 0xD0D2, - 24185 - 11905: 0x8ED6, - 24186 - 11905: 0xE7DB, - 24187 - 11905: 0xBBC3, - 24188 - 11905: 0xD3D7, - 24189 - 11905: 0xD3C4, - 24190 - 11905: 0x8ED7, - 24191 - 11905: 0xB9E3, - 24192 - 11905: 0xE2CF, - 24193 - 11905: 0x8ED8, - 24194 - 11905: 0x8ED9, - 24195 - 11905: 0x8EDA, - 24196 - 11905: 0xD7AF, - 24197 - 11905: 0x8EDB, - 24198 - 11905: 0xC7EC, - 24199 - 11905: 0xB1D3, - 24200 - 11905: 0x8EDC, - 24201 - 11905: 0x8EDD, - 24202 - 11905: 0xB4B2, - 24203 - 11905: 0xE2D1, - 24204 - 11905: 0x8EDE, - 24205 - 11905: 0x8EDF, - 24206 - 11905: 0x8EE0, - 24207 - 11905: 0xD0F2, - 24208 - 11905: 0xC2AE, - 24209 - 11905: 0xE2D0, - 24210 - 11905: 0x8EE1, - 24211 - 11905: 0xBFE2, - 24212 - 11905: 0xD3A6, - 24213 - 11905: 0xB5D7, - 24214 - 11905: 0xE2D2, - 24215 - 11905: 0xB5EA, - 24216 - 11905: 0x8EE2, - 24217 - 11905: 0xC3ED, - 24218 - 11905: 0xB8FD, - 24219 - 11905: 0x8EE3, - 24220 - 11905: 0xB8AE, - 24221 - 11905: 0x8EE4, - 24222 - 11905: 0xC5D3, - 24223 - 11905: 0xB7CF, - 24224 - 11905: 0xE2D4, - 24225 - 11905: 0x8EE5, - 24226 - 11905: 0x8EE6, - 24227 - 11905: 0x8EE7, - 24228 - 11905: 0x8EE8, - 24229 - 11905: 0xE2D3, - 24230 - 11905: 0xB6C8, - 24231 - 11905: 0xD7F9, - 24232 - 11905: 0x8EE9, - 24233 - 11905: 0x8EEA, - 24234 - 11905: 0x8EEB, - 24235 - 11905: 0x8EEC, - 24236 - 11905: 0x8EED, - 24237 - 11905: 0xCDA5, - 24238 - 11905: 0x8EEE, - 24239 - 11905: 0x8EEF, - 24240 - 11905: 0x8EF0, - 24241 - 11905: 0x8EF1, - 24242 - 11905: 0x8EF2, - 24243 - 11905: 0xE2D8, - 24244 - 11905: 0x8EF3, - 24245 - 11905: 0xE2D6, - 24246 - 11905: 0xCAFC, - 24247 - 11905: 0xBFB5, - 24248 - 11905: 0xD3B9, - 24249 - 11905: 0xE2D5, - 24250 - 11905: 0x8EF4, - 24251 - 11905: 0x8EF5, - 24252 - 11905: 0x8EF6, - 24253 - 11905: 0x8EF7, - 24254 - 11905: 0xE2D7, - 24255 - 11905: 0x8EF8, - 24256 - 11905: 0x8EF9, - 24257 - 11905: 0x8EFA, - 24258 - 11905: 0x8EFB, - 24259 - 11905: 0x8EFC, - 24260 - 11905: 0x8EFD, - 24261 - 11905: 0x8EFE, - 24262 - 11905: 0x8F40, - 24263 - 11905: 0x8F41, - 24264 - 11905: 0x8F42, - 24265 - 11905: 0xC1AE, - 24266 - 11905: 0xC0C8, - 24267 - 11905: 0x8F43, - 24268 - 11905: 0x8F44, - 24269 - 11905: 0x8F45, - 24270 - 11905: 0x8F46, - 24271 - 11905: 0x8F47, - 24272 - 11905: 0x8F48, - 24273 - 11905: 0xE2DB, - 24274 - 11905: 0xE2DA, - 24275 - 11905: 0xC0AA, - 24276 - 11905: 0x8F49, - 24277 - 11905: 0x8F4A, - 24278 - 11905: 0xC1CE, - 24279 - 11905: 0x8F4B, - 24280 - 11905: 0x8F4C, - 24281 - 11905: 0x8F4D, - 24282 - 11905: 0x8F4E, - 24283 - 11905: 0xE2DC, - 24284 - 11905: 0x8F4F, - 24285 - 11905: 0x8F50, - 24286 - 11905: 0x8F51, - 24287 - 11905: 0x8F52, - 24288 - 11905: 0x8F53, - 24289 - 11905: 0x8F54, - 24290 - 11905: 0x8F55, - 24291 - 11905: 0x8F56, - 24292 - 11905: 0x8F57, - 24293 - 11905: 0x8F58, - 24294 - 11905: 0x8F59, - 24295 - 11905: 0x8F5A, - 24296 - 11905: 0xE2DD, - 24297 - 11905: 0x8F5B, - 24298 - 11905: 0xE2DE, - 24299 - 11905: 0x8F5C, - 24300 - 11905: 0x8F5D, - 24301 - 11905: 0x8F5E, - 24302 - 11905: 0x8F5F, - 24303 - 11905: 0x8F60, - 24304 - 11905: 0x8F61, - 24305 - 11905: 0x8F62, - 24306 - 11905: 0x8F63, - 24307 - 11905: 0x8F64, - 24308 - 11905: 0xDBC8, - 24309 - 11905: 0x8F65, - 24310 - 11905: 0xD1D3, - 24311 - 11905: 0xCDA2, - 24312 - 11905: 0x8F66, - 24313 - 11905: 0x8F67, - 24314 - 11905: 0xBDA8, - 24315 - 11905: 0x8F68, - 24316 - 11905: 0x8F69, - 24317 - 11905: 0x8F6A, - 24318 - 11905: 0xDEC3, - 24319 - 11905: 0xD8A5, - 24320 - 11905: 0xBFAA, - 24321 - 11905: 0xDBCD, - 24322 - 11905: 0xD2EC, - 24323 - 11905: 0xC6FA, - 24324 - 11905: 0xC5AA, - 24325 - 11905: 0x8F6B, - 24326 - 11905: 0x8F6C, - 24327 - 11905: 0x8F6D, - 24328 - 11905: 0xDEC4, - 24329 - 11905: 0x8F6E, - 24330 - 11905: 0xB1D7, - 24331 - 11905: 0xDFAE, - 24332 - 11905: 0x8F6F, - 24333 - 11905: 0x8F70, - 24334 - 11905: 0x8F71, - 24335 - 11905: 0xCABD, - 24336 - 11905: 0x8F72, - 24337 - 11905: 0xDFB1, - 24338 - 11905: 0x8F73, - 24339 - 11905: 0xB9AD, - 24340 - 11905: 0x8F74, - 24341 - 11905: 0xD2FD, - 24342 - 11905: 0x8F75, - 24343 - 11905: 0xB8A5, - 24344 - 11905: 0xBAEB, - 24345 - 11905: 0x8F76, - 24346 - 11905: 0x8F77, - 24347 - 11905: 0xB3DA, - 24348 - 11905: 0x8F78, - 24349 - 11905: 0x8F79, - 24350 - 11905: 0x8F7A, - 24351 - 11905: 0xB5DC, - 24352 - 11905: 0xD5C5, - 24353 - 11905: 0x8F7B, - 24354 - 11905: 0x8F7C, - 24355 - 11905: 0x8F7D, - 24356 - 11905: 0x8F7E, - 24357 - 11905: 0xC3D6, - 24358 - 11905: 0xCFD2, - 24359 - 11905: 0xBBA1, - 24360 - 11905: 0x8F80, - 24361 - 11905: 0xE5F3, - 24362 - 11905: 0xE5F2, - 24363 - 11905: 0x8F81, - 24364 - 11905: 0x8F82, - 24365 - 11905: 0xE5F4, - 24366 - 11905: 0x8F83, - 24367 - 11905: 0xCDE4, - 24368 - 11905: 0x8F84, - 24369 - 11905: 0xC8F5, - 24370 - 11905: 0x8F85, - 24371 - 11905: 0x8F86, - 24372 - 11905: 0x8F87, - 24373 - 11905: 0x8F88, - 24374 - 11905: 0x8F89, - 24375 - 11905: 0x8F8A, - 24376 - 11905: 0x8F8B, - 24377 - 11905: 0xB5AF, - 24378 - 11905: 0xC7BF, - 24379 - 11905: 0x8F8C, - 24380 - 11905: 0xE5F6, - 24381 - 11905: 0x8F8D, - 24382 - 11905: 0x8F8E, - 24383 - 11905: 0x8F8F, - 24384 - 11905: 0xECB0, - 24385 - 11905: 0x8F90, - 24386 - 11905: 0x8F91, - 24387 - 11905: 0x8F92, - 24388 - 11905: 0x8F93, - 24389 - 11905: 0x8F94, - 24390 - 11905: 0x8F95, - 24391 - 11905: 0x8F96, - 24392 - 11905: 0x8F97, - 24393 - 11905: 0x8F98, - 24394 - 11905: 0x8F99, - 24395 - 11905: 0x8F9A, - 24396 - 11905: 0x8F9B, - 24397 - 11905: 0x8F9C, - 24398 - 11905: 0x8F9D, - 24399 - 11905: 0x8F9E, - 24400 - 11905: 0xE5E6, - 24401 - 11905: 0x8F9F, - 24402 - 11905: 0xB9E9, - 24403 - 11905: 0xB5B1, - 24404 - 11905: 0x8FA0, - 24405 - 11905: 0xC2BC, - 24406 - 11905: 0xE5E8, - 24407 - 11905: 0xE5E7, - 24408 - 11905: 0xE5E9, - 24409 - 11905: 0x8FA1, - 24410 - 11905: 0x8FA2, - 24411 - 11905: 0x8FA3, - 24412 - 11905: 0x8FA4, - 24413 - 11905: 0xD2CD, - 24414 - 11905: 0x8FA5, - 24415 - 11905: 0x8FA6, - 24416 - 11905: 0x8FA7, - 24417 - 11905: 0xE1EA, - 24418 - 11905: 0xD0CE, - 24419 - 11905: 0x8FA8, - 24420 - 11905: 0xCDAE, - 24421 - 11905: 0x8FA9, - 24422 - 11905: 0xD1E5, - 24423 - 11905: 0x8FAA, - 24424 - 11905: 0x8FAB, - 24425 - 11905: 0xB2CA, - 24426 - 11905: 0xB1EB, - 24427 - 11905: 0x8FAC, - 24428 - 11905: 0xB1F2, - 24429 - 11905: 0xC5ED, - 24430 - 11905: 0x8FAD, - 24431 - 11905: 0x8FAE, - 24432 - 11905: 0xD5C3, - 24433 - 11905: 0xD3B0, - 24434 - 11905: 0x8FAF, - 24435 - 11905: 0xE1DC, - 24436 - 11905: 0x8FB0, - 24437 - 11905: 0x8FB1, - 24438 - 11905: 0x8FB2, - 24439 - 11905: 0xE1DD, - 24440 - 11905: 0x8FB3, - 24441 - 11905: 0xD2DB, - 24442 - 11905: 0x8FB4, - 24443 - 11905: 0xB3B9, - 24444 - 11905: 0xB1CB, - 24445 - 11905: 0x8FB5, - 24446 - 11905: 0x8FB6, - 24447 - 11905: 0x8FB7, - 24448 - 11905: 0xCDF9, - 24449 - 11905: 0xD5F7, - 24450 - 11905: 0xE1DE, - 24451 - 11905: 0x8FB8, - 24452 - 11905: 0xBEB6, - 24453 - 11905: 0xB4FD, - 24454 - 11905: 0x8FB9, - 24455 - 11905: 0xE1DF, - 24456 - 11905: 0xBADC, - 24457 - 11905: 0xE1E0, - 24458 - 11905: 0xBBB2, - 24459 - 11905: 0xC2C9, - 24460 - 11905: 0xE1E1, - 24461 - 11905: 0x8FBA, - 24462 - 11905: 0x8FBB, - 24463 - 11905: 0x8FBC, - 24464 - 11905: 0xD0EC, - 24465 - 11905: 0x8FBD, - 24466 - 11905: 0xCDBD, - 24467 - 11905: 0x8FBE, - 24468 - 11905: 0x8FBF, - 24469 - 11905: 0xE1E2, - 24470 - 11905: 0x8FC0, - 24471 - 11905: 0xB5C3, - 24472 - 11905: 0xC5C7, - 24473 - 11905: 0xE1E3, - 24474 - 11905: 0x8FC1, - 24475 - 11905: 0x8FC2, - 24476 - 11905: 0xE1E4, - 24477 - 11905: 0x8FC3, - 24478 - 11905: 0x8FC4, - 24479 - 11905: 0x8FC5, - 24480 - 11905: 0x8FC6, - 24481 - 11905: 0xD3F9, - 24482 - 11905: 0x8FC7, - 24483 - 11905: 0x8FC8, - 24484 - 11905: 0x8FC9, - 24485 - 11905: 0x8FCA, - 24486 - 11905: 0x8FCB, - 24487 - 11905: 0x8FCC, - 24488 - 11905: 0xE1E5, - 24489 - 11905: 0x8FCD, - 24490 - 11905: 0xD1AD, - 24491 - 11905: 0x8FCE, - 24492 - 11905: 0x8FCF, - 24493 - 11905: 0xE1E6, - 24494 - 11905: 0xCEA2, - 24495 - 11905: 0x8FD0, - 24496 - 11905: 0x8FD1, - 24497 - 11905: 0x8FD2, - 24498 - 11905: 0x8FD3, - 24499 - 11905: 0x8FD4, - 24500 - 11905: 0x8FD5, - 24501 - 11905: 0xE1E7, - 24502 - 11905: 0x8FD6, - 24503 - 11905: 0xB5C2, - 24504 - 11905: 0x8FD7, - 24505 - 11905: 0x8FD8, - 24506 - 11905: 0x8FD9, - 24507 - 11905: 0x8FDA, - 24508 - 11905: 0xE1E8, - 24509 - 11905: 0xBBD5, - 24510 - 11905: 0x8FDB, - 24511 - 11905: 0x8FDC, - 24512 - 11905: 0x8FDD, - 24513 - 11905: 0x8FDE, - 24514 - 11905: 0x8FDF, - 24515 - 11905: 0xD0C4, - 24516 - 11905: 0xE2E0, - 24517 - 11905: 0xB1D8, - 24518 - 11905: 0xD2E4, - 24519 - 11905: 0x8FE0, - 24520 - 11905: 0x8FE1, - 24521 - 11905: 0xE2E1, - 24522 - 11905: 0x8FE2, - 24523 - 11905: 0x8FE3, - 24524 - 11905: 0xBCC9, - 24525 - 11905: 0xC8CC, - 24526 - 11905: 0x8FE4, - 24527 - 11905: 0xE2E3, - 24528 - 11905: 0xECFE, - 24529 - 11905: 0xECFD, - 24530 - 11905: 0xDFAF, - 24531 - 11905: 0x8FE5, - 24532 - 11905: 0x8FE6, - 24533 - 11905: 0x8FE7, - 24534 - 11905: 0xE2E2, - 24535 - 11905: 0xD6BE, - 24536 - 11905: 0xCDFC, - 24537 - 11905: 0xC3A6, - 24538 - 11905: 0x8FE8, - 24539 - 11905: 0x8FE9, - 24540 - 11905: 0x8FEA, - 24541 - 11905: 0xE3C3, - 24542 - 11905: 0x8FEB, - 24543 - 11905: 0x8FEC, - 24544 - 11905: 0xD6D2, - 24545 - 11905: 0xE2E7, - 24546 - 11905: 0x8FED, - 24547 - 11905: 0x8FEE, - 24548 - 11905: 0xE2E8, - 24549 - 11905: 0x8FEF, - 24550 - 11905: 0x8FF0, - 24551 - 11905: 0xD3C7, - 24552 - 11905: 0x8FF1, - 24553 - 11905: 0x8FF2, - 24554 - 11905: 0xE2EC, - 24555 - 11905: 0xBFEC, - 24556 - 11905: 0x8FF3, - 24557 - 11905: 0xE2ED, - 24558 - 11905: 0xE2E5, - 24559 - 11905: 0x8FF4, - 24560 - 11905: 0x8FF5, - 24561 - 11905: 0xB3C0, - 24562 - 11905: 0x8FF6, - 24563 - 11905: 0x8FF7, - 24564 - 11905: 0x8FF8, - 24565 - 11905: 0xC4EE, - 24566 - 11905: 0x8FF9, - 24567 - 11905: 0x8FFA, - 24568 - 11905: 0xE2EE, - 24569 - 11905: 0x8FFB, - 24570 - 11905: 0x8FFC, - 24571 - 11905: 0xD0C3, - 24572 - 11905: 0x8FFD, - 24573 - 11905: 0xBAF6, - 24574 - 11905: 0xE2E9, - 24575 - 11905: 0xB7DE, - 24576 - 11905: 0xBBB3, - 24577 - 11905: 0xCCAC, - 24578 - 11905: 0xCBCB, - 24579 - 11905: 0xE2E4, - 24580 - 11905: 0xE2E6, - 24581 - 11905: 0xE2EA, - 24582 - 11905: 0xE2EB, - 24583 - 11905: 0x8FFE, - 24584 - 11905: 0x9040, - 24585 - 11905: 0x9041, - 24586 - 11905: 0xE2F7, - 24587 - 11905: 0x9042, - 24588 - 11905: 0x9043, - 24589 - 11905: 0xE2F4, - 24590 - 11905: 0xD4F5, - 24591 - 11905: 0xE2F3, - 24592 - 11905: 0x9044, - 24593 - 11905: 0x9045, - 24594 - 11905: 0xC5AD, - 24595 - 11905: 0x9046, - 24596 - 11905: 0xD5FA, - 24597 - 11905: 0xC5C2, - 24598 - 11905: 0xB2C0, - 24599 - 11905: 0x9047, - 24600 - 11905: 0x9048, - 24601 - 11905: 0xE2EF, - 24602 - 11905: 0x9049, - 24603 - 11905: 0xE2F2, - 24604 - 11905: 0xC1AF, - 24605 - 11905: 0xCBBC, - 24606 - 11905: 0x904A, - 24607 - 11905: 0x904B, - 24608 - 11905: 0xB5A1, - 24609 - 11905: 0xE2F9, - 24610 - 11905: 0x904C, - 24611 - 11905: 0x904D, - 24612 - 11905: 0x904E, - 24613 - 11905: 0xBCB1, - 24614 - 11905: 0xE2F1, - 24615 - 11905: 0xD0D4, - 24616 - 11905: 0xD4B9, - 24617 - 11905: 0xE2F5, - 24618 - 11905: 0xB9D6, - 24619 - 11905: 0xE2F6, - 24620 - 11905: 0x904F, - 24621 - 11905: 0x9050, - 24622 - 11905: 0x9051, - 24623 - 11905: 0xC7D3, - 24624 - 11905: 0x9052, - 24625 - 11905: 0x9053, - 24626 - 11905: 0x9054, - 24627 - 11905: 0x9055, - 24628 - 11905: 0x9056, - 24629 - 11905: 0xE2F0, - 24630 - 11905: 0x9057, - 24631 - 11905: 0x9058, - 24632 - 11905: 0x9059, - 24633 - 11905: 0x905A, - 24634 - 11905: 0x905B, - 24635 - 11905: 0xD7DC, - 24636 - 11905: 0xEDA1, - 24637 - 11905: 0x905C, - 24638 - 11905: 0x905D, - 24639 - 11905: 0xE2F8, - 24640 - 11905: 0x905E, - 24641 - 11905: 0xEDA5, - 24642 - 11905: 0xE2FE, - 24643 - 11905: 0xCAD1, - 24644 - 11905: 0x905F, - 24645 - 11905: 0x9060, - 24646 - 11905: 0x9061, - 24647 - 11905: 0x9062, - 24648 - 11905: 0x9063, - 24649 - 11905: 0x9064, - 24650 - 11905: 0x9065, - 24651 - 11905: 0xC1B5, - 24652 - 11905: 0x9066, - 24653 - 11905: 0xBBD0, - 24654 - 11905: 0x9067, - 24655 - 11905: 0x9068, - 24656 - 11905: 0xBFD6, - 24657 - 11905: 0x9069, - 24658 - 11905: 0xBAE3, - 24659 - 11905: 0x906A, - 24660 - 11905: 0x906B, - 24661 - 11905: 0xCBA1, - 24662 - 11905: 0x906C, - 24663 - 11905: 0x906D, - 24664 - 11905: 0x906E, - 24665 - 11905: 0xEDA6, - 24666 - 11905: 0xEDA3, - 24667 - 11905: 0x906F, - 24668 - 11905: 0x9070, - 24669 - 11905: 0xEDA2, - 24670 - 11905: 0x9071, - 24671 - 11905: 0x9072, - 24672 - 11905: 0x9073, - 24673 - 11905: 0x9074, - 24674 - 11905: 0xBBD6, - 24675 - 11905: 0xEDA7, - 24676 - 11905: 0xD0F4, - 24677 - 11905: 0x9075, - 24678 - 11905: 0x9076, - 24679 - 11905: 0xEDA4, - 24680 - 11905: 0xBADE, - 24681 - 11905: 0xB6F7, - 24682 - 11905: 0xE3A1, - 24683 - 11905: 0xB6B2, - 24684 - 11905: 0xCCF1, - 24685 - 11905: 0xB9A7, - 24686 - 11905: 0x9077, - 24687 - 11905: 0xCFA2, - 24688 - 11905: 0xC7A1, - 24689 - 11905: 0x9078, - 24690 - 11905: 0x9079, - 24691 - 11905: 0xBFD2, - 24692 - 11905: 0x907A, - 24693 - 11905: 0x907B, - 24694 - 11905: 0xB6F1, - 24695 - 11905: 0x907C, - 24696 - 11905: 0xE2FA, - 24697 - 11905: 0xE2FB, - 24698 - 11905: 0xE2FD, - 24699 - 11905: 0xE2FC, - 24700 - 11905: 0xC4D5, - 24701 - 11905: 0xE3A2, - 24702 - 11905: 0x907D, - 24703 - 11905: 0xD3C1, - 24704 - 11905: 0x907E, - 24705 - 11905: 0x9080, - 24706 - 11905: 0x9081, - 24707 - 11905: 0xE3A7, - 24708 - 11905: 0xC7C4, - 24709 - 11905: 0x9082, - 24710 - 11905: 0x9083, - 24711 - 11905: 0x9084, - 24712 - 11905: 0x9085, - 24713 - 11905: 0xCFA4, - 24714 - 11905: 0x9086, - 24715 - 11905: 0x9087, - 24716 - 11905: 0xE3A9, - 24717 - 11905: 0xBAB7, - 24718 - 11905: 0x9088, - 24719 - 11905: 0x9089, - 24720 - 11905: 0x908A, - 24721 - 11905: 0x908B, - 24722 - 11905: 0xE3A8, - 24723 - 11905: 0x908C, - 24724 - 11905: 0xBBDA, - 24725 - 11905: 0x908D, - 24726 - 11905: 0xE3A3, - 24727 - 11905: 0x908E, - 24728 - 11905: 0x908F, - 24729 - 11905: 0x9090, - 24730 - 11905: 0xE3A4, - 24731 - 11905: 0xE3AA, - 24732 - 11905: 0x9091, - 24733 - 11905: 0xE3A6, - 24734 - 11905: 0x9092, - 24735 - 11905: 0xCEF2, - 24736 - 11905: 0xD3C6, - 24737 - 11905: 0x9093, - 24738 - 11905: 0x9094, - 24739 - 11905: 0xBBBC, - 24740 - 11905: 0x9095, - 24741 - 11905: 0x9096, - 24742 - 11905: 0xD4C3, - 24743 - 11905: 0x9097, - 24744 - 11905: 0xC4FA, - 24745 - 11905: 0x9098, - 24746 - 11905: 0x9099, - 24747 - 11905: 0xEDA8, - 24748 - 11905: 0xD0FC, - 24749 - 11905: 0xE3A5, - 24750 - 11905: 0x909A, - 24751 - 11905: 0xC3F5, - 24752 - 11905: 0x909B, - 24753 - 11905: 0xE3AD, - 24754 - 11905: 0xB1AF, - 24755 - 11905: 0x909C, - 24756 - 11905: 0xE3B2, - 24757 - 11905: 0x909D, - 24758 - 11905: 0x909E, - 24759 - 11905: 0x909F, - 24760 - 11905: 0xBCC2, - 24761 - 11905: 0x90A0, - 24762 - 11905: 0x90A1, - 24763 - 11905: 0xE3AC, - 24764 - 11905: 0xB5BF, - 24765 - 11905: 0x90A2, - 24766 - 11905: 0x90A3, - 24767 - 11905: 0x90A4, - 24768 - 11905: 0x90A5, - 24769 - 11905: 0x90A6, - 24770 - 11905: 0x90A7, - 24771 - 11905: 0x90A8, - 24772 - 11905: 0x90A9, - 24773 - 11905: 0xC7E9, - 24774 - 11905: 0xE3B0, - 24775 - 11905: 0x90AA, - 24776 - 11905: 0x90AB, - 24777 - 11905: 0x90AC, - 24778 - 11905: 0xBEAA, - 24779 - 11905: 0xCDEF, - 24780 - 11905: 0x90AD, - 24781 - 11905: 0x90AE, - 24782 - 11905: 0x90AF, - 24783 - 11905: 0x90B0, - 24784 - 11905: 0x90B1, - 24785 - 11905: 0xBBF3, - 24786 - 11905: 0x90B2, - 24787 - 11905: 0x90B3, - 24788 - 11905: 0x90B4, - 24789 - 11905: 0xCCE8, - 24790 - 11905: 0x90B5, - 24791 - 11905: 0x90B6, - 24792 - 11905: 0xE3AF, - 24793 - 11905: 0x90B7, - 24794 - 11905: 0xE3B1, - 24795 - 11905: 0x90B8, - 24796 - 11905: 0xCFA7, - 24797 - 11905: 0xE3AE, - 24798 - 11905: 0x90B9, - 24799 - 11905: 0xCEA9, - 24800 - 11905: 0xBBDD, - 24801 - 11905: 0x90BA, - 24802 - 11905: 0x90BB, - 24803 - 11905: 0x90BC, - 24804 - 11905: 0x90BD, - 24805 - 11905: 0x90BE, - 24806 - 11905: 0xB5EB, - 24807 - 11905: 0xBEE5, - 24808 - 11905: 0xB2D2, - 24809 - 11905: 0xB3CD, - 24810 - 11905: 0x90BF, - 24811 - 11905: 0xB1B9, - 24812 - 11905: 0xE3AB, - 24813 - 11905: 0xB2D1, - 24814 - 11905: 0xB5AC, - 24815 - 11905: 0xB9DF, - 24816 - 11905: 0xB6E8, - 24817 - 11905: 0x90C0, - 24818 - 11905: 0x90C1, - 24819 - 11905: 0xCFEB, - 24820 - 11905: 0xE3B7, - 24821 - 11905: 0x90C2, - 24822 - 11905: 0xBBCC, - 24823 - 11905: 0x90C3, - 24824 - 11905: 0x90C4, - 24825 - 11905: 0xC8C7, - 24826 - 11905: 0xD0CA, - 24827 - 11905: 0x90C5, - 24828 - 11905: 0x90C6, - 24829 - 11905: 0x90C7, - 24830 - 11905: 0x90C8, - 24831 - 11905: 0x90C9, - 24832 - 11905: 0xE3B8, - 24833 - 11905: 0xB3EE, - 24834 - 11905: 0x90CA, - 24835 - 11905: 0x90CB, - 24836 - 11905: 0x90CC, - 24837 - 11905: 0x90CD, - 24838 - 11905: 0xEDA9, - 24839 - 11905: 0x90CE, - 24840 - 11905: 0xD3FA, - 24841 - 11905: 0xD3E4, - 24842 - 11905: 0x90CF, - 24843 - 11905: 0x90D0, - 24844 - 11905: 0x90D1, - 24845 - 11905: 0xEDAA, - 24846 - 11905: 0xE3B9, - 24847 - 11905: 0xD2E2, - 24848 - 11905: 0x90D2, - 24849 - 11905: 0x90D3, - 24850 - 11905: 0x90D4, - 24851 - 11905: 0x90D5, - 24852 - 11905: 0x90D6, - 24853 - 11905: 0xE3B5, - 24854 - 11905: 0x90D7, - 24855 - 11905: 0x90D8, - 24856 - 11905: 0x90D9, - 24857 - 11905: 0x90DA, - 24858 - 11905: 0xD3DE, - 24859 - 11905: 0x90DB, - 24860 - 11905: 0x90DC, - 24861 - 11905: 0x90DD, - 24862 - 11905: 0x90DE, - 24863 - 11905: 0xB8D0, - 24864 - 11905: 0xE3B3, - 24865 - 11905: 0x90DF, - 24866 - 11905: 0x90E0, - 24867 - 11905: 0xE3B6, - 24868 - 11905: 0xB7DF, - 24869 - 11905: 0x90E1, - 24870 - 11905: 0xE3B4, - 24871 - 11905: 0xC0A2, - 24872 - 11905: 0x90E2, - 24873 - 11905: 0x90E3, - 24874 - 11905: 0x90E4, - 24875 - 11905: 0xE3BA, - 24876 - 11905: 0x90E5, - 24877 - 11905: 0x90E6, - 24878 - 11905: 0x90E7, - 24879 - 11905: 0x90E8, - 24880 - 11905: 0x90E9, - 24881 - 11905: 0x90EA, - 24882 - 11905: 0x90EB, - 24883 - 11905: 0x90EC, - 24884 - 11905: 0x90ED, - 24885 - 11905: 0x90EE, - 24886 - 11905: 0x90EF, - 24887 - 11905: 0x90F0, - 24888 - 11905: 0x90F1, - 24889 - 11905: 0x90F2, - 24890 - 11905: 0x90F3, - 24891 - 11905: 0x90F4, - 24892 - 11905: 0x90F5, - 24893 - 11905: 0x90F6, - 24894 - 11905: 0x90F7, - 24895 - 11905: 0xD4B8, - 24896 - 11905: 0x90F8, - 24897 - 11905: 0x90F9, - 24898 - 11905: 0x90FA, - 24899 - 11905: 0x90FB, - 24900 - 11905: 0x90FC, - 24901 - 11905: 0x90FD, - 24902 - 11905: 0x90FE, - 24903 - 11905: 0x9140, - 24904 - 11905: 0xB4C8, - 24905 - 11905: 0x9141, - 24906 - 11905: 0xE3BB, - 24907 - 11905: 0x9142, - 24908 - 11905: 0xBBC5, - 24909 - 11905: 0x9143, - 24910 - 11905: 0xC9F7, - 24911 - 11905: 0x9144, - 24912 - 11905: 0x9145, - 24913 - 11905: 0xC9E5, - 24914 - 11905: 0x9146, - 24915 - 11905: 0x9147, - 24916 - 11905: 0x9148, - 24917 - 11905: 0xC4BD, - 24918 - 11905: 0x9149, - 24919 - 11905: 0x914A, - 24920 - 11905: 0x914B, - 24921 - 11905: 0x914C, - 24922 - 11905: 0x914D, - 24923 - 11905: 0x914E, - 24924 - 11905: 0x914F, - 24925 - 11905: 0xEDAB, - 24926 - 11905: 0x9150, - 24927 - 11905: 0x9151, - 24928 - 11905: 0x9152, - 24929 - 11905: 0x9153, - 24930 - 11905: 0xC2FD, - 24931 - 11905: 0x9154, - 24932 - 11905: 0x9155, - 24933 - 11905: 0x9156, - 24934 - 11905: 0x9157, - 24935 - 11905: 0xBBDB, - 24936 - 11905: 0xBFAE, - 24937 - 11905: 0x9158, - 24938 - 11905: 0x9159, - 24939 - 11905: 0x915A, - 24940 - 11905: 0x915B, - 24941 - 11905: 0x915C, - 24942 - 11905: 0x915D, - 24943 - 11905: 0x915E, - 24944 - 11905: 0xCEBF, - 24945 - 11905: 0x915F, - 24946 - 11905: 0x9160, - 24947 - 11905: 0x9161, - 24948 - 11905: 0x9162, - 24949 - 11905: 0xE3BC, - 24950 - 11905: 0x9163, - 24951 - 11905: 0xBFB6, - 24952 - 11905: 0x9164, - 24953 - 11905: 0x9165, - 24954 - 11905: 0x9166, - 24955 - 11905: 0x9167, - 24956 - 11905: 0x9168, - 24957 - 11905: 0x9169, - 24958 - 11905: 0x916A, - 24959 - 11905: 0x916B, - 24960 - 11905: 0x916C, - 24961 - 11905: 0x916D, - 24962 - 11905: 0x916E, - 24963 - 11905: 0x916F, - 24964 - 11905: 0x9170, - 24965 - 11905: 0x9171, - 24966 - 11905: 0x9172, - 24967 - 11905: 0x9173, - 24968 - 11905: 0x9174, - 24969 - 11905: 0x9175, - 24970 - 11905: 0x9176, - 24971 - 11905: 0xB1EF, - 24972 - 11905: 0x9177, - 24973 - 11905: 0x9178, - 24974 - 11905: 0xD4F7, - 24975 - 11905: 0x9179, - 24976 - 11905: 0x917A, - 24977 - 11905: 0x917B, - 24978 - 11905: 0x917C, - 24979 - 11905: 0x917D, - 24980 - 11905: 0xE3BE, - 24981 - 11905: 0x917E, - 24982 - 11905: 0x9180, - 24983 - 11905: 0x9181, - 24984 - 11905: 0x9182, - 24985 - 11905: 0x9183, - 24986 - 11905: 0x9184, - 24987 - 11905: 0x9185, - 24988 - 11905: 0x9186, - 24989 - 11905: 0xEDAD, - 24990 - 11905: 0x9187, - 24991 - 11905: 0x9188, - 24992 - 11905: 0x9189, - 24993 - 11905: 0x918A, - 24994 - 11905: 0x918B, - 24995 - 11905: 0x918C, - 24996 - 11905: 0x918D, - 24997 - 11905: 0x918E, - 24998 - 11905: 0x918F, - 24999 - 11905: 0xE3BF, - 25000 - 11905: 0xBAA9, - 25001 - 11905: 0xEDAC, - 25002 - 11905: 0x9190, - 25003 - 11905: 0x9191, - 25004 - 11905: 0xE3BD, - 25005 - 11905: 0x9192, - 25006 - 11905: 0x9193, - 25007 - 11905: 0x9194, - 25008 - 11905: 0x9195, - 25009 - 11905: 0x9196, - 25010 - 11905: 0x9197, - 25011 - 11905: 0x9198, - 25012 - 11905: 0x9199, - 25013 - 11905: 0x919A, - 25014 - 11905: 0x919B, - 25015 - 11905: 0xE3C0, - 25016 - 11905: 0x919C, - 25017 - 11905: 0x919D, - 25018 - 11905: 0x919E, - 25019 - 11905: 0x919F, - 25020 - 11905: 0x91A0, - 25021 - 11905: 0x91A1, - 25022 - 11905: 0xBAB6, - 25023 - 11905: 0x91A2, - 25024 - 11905: 0x91A3, - 25025 - 11905: 0x91A4, - 25026 - 11905: 0xB6AE, - 25027 - 11905: 0x91A5, - 25028 - 11905: 0x91A6, - 25029 - 11905: 0x91A7, - 25030 - 11905: 0x91A8, - 25031 - 11905: 0x91A9, - 25032 - 11905: 0xD0B8, - 25033 - 11905: 0x91AA, - 25034 - 11905: 0xB0C3, - 25035 - 11905: 0xEDAE, - 25036 - 11905: 0x91AB, - 25037 - 11905: 0x91AC, - 25038 - 11905: 0x91AD, - 25039 - 11905: 0x91AE, - 25040 - 11905: 0x91AF, - 25041 - 11905: 0xEDAF, - 25042 - 11905: 0xC0C1, - 25043 - 11905: 0x91B0, - 25044 - 11905: 0xE3C1, - 25045 - 11905: 0x91B1, - 25046 - 11905: 0x91B2, - 25047 - 11905: 0x91B3, - 25048 - 11905: 0x91B4, - 25049 - 11905: 0x91B5, - 25050 - 11905: 0x91B6, - 25051 - 11905: 0x91B7, - 25052 - 11905: 0x91B8, - 25053 - 11905: 0x91B9, - 25054 - 11905: 0x91BA, - 25055 - 11905: 0x91BB, - 25056 - 11905: 0x91BC, - 25057 - 11905: 0x91BD, - 25058 - 11905: 0x91BE, - 25059 - 11905: 0x91BF, - 25060 - 11905: 0x91C0, - 25061 - 11905: 0x91C1, - 25062 - 11905: 0xC5B3, - 25063 - 11905: 0x91C2, - 25064 - 11905: 0x91C3, - 25065 - 11905: 0x91C4, - 25066 - 11905: 0x91C5, - 25067 - 11905: 0x91C6, - 25068 - 11905: 0x91C7, - 25069 - 11905: 0x91C8, - 25070 - 11905: 0x91C9, - 25071 - 11905: 0x91CA, - 25072 - 11905: 0x91CB, - 25073 - 11905: 0x91CC, - 25074 - 11905: 0x91CD, - 25075 - 11905: 0x91CE, - 25076 - 11905: 0x91CF, - 25077 - 11905: 0xE3C2, - 25078 - 11905: 0x91D0, - 25079 - 11905: 0x91D1, - 25080 - 11905: 0x91D2, - 25081 - 11905: 0x91D3, - 25082 - 11905: 0x91D4, - 25083 - 11905: 0x91D5, - 25084 - 11905: 0x91D6, - 25085 - 11905: 0x91D7, - 25086 - 11905: 0x91D8, - 25087 - 11905: 0xDCB2, - 25088 - 11905: 0x91D9, - 25089 - 11905: 0x91DA, - 25090 - 11905: 0x91DB, - 25091 - 11905: 0x91DC, - 25092 - 11905: 0x91DD, - 25093 - 11905: 0x91DE, - 25094 - 11905: 0xEDB0, - 25095 - 11905: 0x91DF, - 25096 - 11905: 0xB8EA, - 25097 - 11905: 0x91E0, - 25098 - 11905: 0xCEEC, - 25099 - 11905: 0xEAA7, - 25100 - 11905: 0xD0E7, - 25101 - 11905: 0xCAF9, - 25102 - 11905: 0xC8D6, - 25103 - 11905: 0xCFB7, - 25104 - 11905: 0xB3C9, - 25105 - 11905: 0xCED2, - 25106 - 11905: 0xBDE4, - 25107 - 11905: 0x91E1, - 25108 - 11905: 0x91E2, - 25109 - 11905: 0xE3DE, - 25110 - 11905: 0xBBF2, - 25111 - 11905: 0xEAA8, - 25112 - 11905: 0xD5BD, - 25113 - 11905: 0x91E3, - 25114 - 11905: 0xC6DD, - 25115 - 11905: 0xEAA9, - 25116 - 11905: 0x91E4, - 25117 - 11905: 0x91E5, - 25118 - 11905: 0x91E6, - 25119 - 11905: 0xEAAA, - 25120 - 11905: 0x91E7, - 25121 - 11905: 0xEAAC, - 25122 - 11905: 0xEAAB, - 25123 - 11905: 0x91E8, - 25124 - 11905: 0xEAAE, - 25125 - 11905: 0xEAAD, - 25126 - 11905: 0x91E9, - 25127 - 11905: 0x91EA, - 25128 - 11905: 0x91EB, - 25129 - 11905: 0x91EC, - 25130 - 11905: 0xBDD8, - 25131 - 11905: 0x91ED, - 25132 - 11905: 0xEAAF, - 25133 - 11905: 0x91EE, - 25134 - 11905: 0xC2BE, - 25135 - 11905: 0x91EF, - 25136 - 11905: 0x91F0, - 25137 - 11905: 0x91F1, - 25138 - 11905: 0x91F2, - 25139 - 11905: 0xB4C1, - 25140 - 11905: 0xB4F7, - 25141 - 11905: 0x91F3, - 25142 - 11905: 0x91F4, - 25143 - 11905: 0xBBA7, - 25144 - 11905: 0x91F5, - 25145 - 11905: 0x91F6, - 25146 - 11905: 0x91F7, - 25147 - 11905: 0x91F8, - 25148 - 11905: 0x91F9, - 25149 - 11905: 0xECE6, - 25150 - 11905: 0xECE5, - 25151 - 11905: 0xB7BF, - 25152 - 11905: 0xCBF9, - 25153 - 11905: 0xB1E2, - 25154 - 11905: 0x91FA, - 25155 - 11905: 0xECE7, - 25156 - 11905: 0x91FB, - 25157 - 11905: 0x91FC, - 25158 - 11905: 0x91FD, - 25159 - 11905: 0xC9C8, - 25160 - 11905: 0xECE8, - 25161 - 11905: 0xECE9, - 25162 - 11905: 0x91FE, - 25163 - 11905: 0xCAD6, - 25164 - 11905: 0xDED0, - 25165 - 11905: 0xB2C5, - 25166 - 11905: 0xD4FA, - 25167 - 11905: 0x9240, - 25168 - 11905: 0x9241, - 25169 - 11905: 0xC6CB, - 25170 - 11905: 0xB0C7, - 25171 - 11905: 0xB4F2, - 25172 - 11905: 0xC8D3, - 25173 - 11905: 0x9242, - 25174 - 11905: 0x9243, - 25175 - 11905: 0x9244, - 25176 - 11905: 0xCDD0, - 25177 - 11905: 0x9245, - 25178 - 11905: 0x9246, - 25179 - 11905: 0xBFB8, - 25180 - 11905: 0x9247, - 25181 - 11905: 0x9248, - 25182 - 11905: 0x9249, - 25183 - 11905: 0x924A, - 25184 - 11905: 0x924B, - 25185 - 11905: 0x924C, - 25186 - 11905: 0x924D, - 25187 - 11905: 0xBFDB, - 25188 - 11905: 0x924E, - 25189 - 11905: 0x924F, - 25190 - 11905: 0xC7A4, - 25191 - 11905: 0xD6B4, - 25192 - 11905: 0x9250, - 25193 - 11905: 0xC0A9, - 25194 - 11905: 0xDED1, - 25195 - 11905: 0xC9A8, - 25196 - 11905: 0xD1EF, - 25197 - 11905: 0xC5A4, - 25198 - 11905: 0xB0E7, - 25199 - 11905: 0xB3B6, - 25200 - 11905: 0xC8C5, - 25201 - 11905: 0x9251, - 25202 - 11905: 0x9252, - 25203 - 11905: 0xB0E2, - 25204 - 11905: 0x9253, - 25205 - 11905: 0x9254, - 25206 - 11905: 0xB7F6, - 25207 - 11905: 0x9255, - 25208 - 11905: 0x9256, - 25209 - 11905: 0xC5FA, - 25210 - 11905: 0x9257, - 25211 - 11905: 0x9258, - 25212 - 11905: 0xB6F3, - 25213 - 11905: 0x9259, - 25214 - 11905: 0xD5D2, - 25215 - 11905: 0xB3D0, - 25216 - 11905: 0xBCBC, - 25217 - 11905: 0x925A, - 25218 - 11905: 0x925B, - 25219 - 11905: 0x925C, - 25220 - 11905: 0xB3AD, - 25221 - 11905: 0x925D, - 25222 - 11905: 0x925E, - 25223 - 11905: 0x925F, - 25224 - 11905: 0x9260, - 25225 - 11905: 0xBEF1, - 25226 - 11905: 0xB0D1, - 25227 - 11905: 0x9261, - 25228 - 11905: 0x9262, - 25229 - 11905: 0x9263, - 25230 - 11905: 0x9264, - 25231 - 11905: 0x9265, - 25232 - 11905: 0x9266, - 25233 - 11905: 0xD2D6, - 25234 - 11905: 0xCAE3, - 25235 - 11905: 0xD7A5, - 25236 - 11905: 0x9267, - 25237 - 11905: 0xCDB6, - 25238 - 11905: 0xB6B6, - 25239 - 11905: 0xBFB9, - 25240 - 11905: 0xD5DB, - 25241 - 11905: 0x9268, - 25242 - 11905: 0xB8A7, - 25243 - 11905: 0xC5D7, - 25244 - 11905: 0x9269, - 25245 - 11905: 0x926A, - 25246 - 11905: 0x926B, - 25247 - 11905: 0xDED2, - 25248 - 11905: 0xBFD9, - 25249 - 11905: 0xC2D5, - 25250 - 11905: 0xC7C0, - 25251 - 11905: 0x926C, - 25252 - 11905: 0xBBA4, - 25253 - 11905: 0xB1A8, - 25254 - 11905: 0x926D, - 25255 - 11905: 0x926E, - 25256 - 11905: 0xC5EA, - 25257 - 11905: 0x926F, - 25258 - 11905: 0x9270, - 25259 - 11905: 0xC5FB, - 25260 - 11905: 0xCCA7, - 25261 - 11905: 0x9271, - 25262 - 11905: 0x9272, - 25263 - 11905: 0x9273, - 25264 - 11905: 0x9274, - 25265 - 11905: 0xB1A7, - 25266 - 11905: 0x9275, - 25267 - 11905: 0x9276, - 25268 - 11905: 0x9277, - 25269 - 11905: 0xB5D6, - 25270 - 11905: 0x9278, - 25271 - 11905: 0x9279, - 25272 - 11905: 0x927A, - 25273 - 11905: 0xC4A8, - 25274 - 11905: 0x927B, - 25275 - 11905: 0xDED3, - 25276 - 11905: 0xD1BA, - 25277 - 11905: 0xB3E9, - 25278 - 11905: 0x927C, - 25279 - 11905: 0xC3F2, - 25280 - 11905: 0x927D, - 25281 - 11905: 0x927E, - 25282 - 11905: 0xB7F7, - 25283 - 11905: 0x9280, - 25284 - 11905: 0xD6F4, - 25285 - 11905: 0xB5A3, - 25286 - 11905: 0xB2F0, - 25287 - 11905: 0xC4B4, - 25288 - 11905: 0xC4E9, - 25289 - 11905: 0xC0AD, - 25290 - 11905: 0xDED4, - 25291 - 11905: 0x9281, - 25292 - 11905: 0xB0E8, - 25293 - 11905: 0xC5C4, - 25294 - 11905: 0xC1E0, - 25295 - 11905: 0x9282, - 25296 - 11905: 0xB9D5, - 25297 - 11905: 0x9283, - 25298 - 11905: 0xBEDC, - 25299 - 11905: 0xCDD8, - 25300 - 11905: 0xB0CE, - 25301 - 11905: 0x9284, - 25302 - 11905: 0xCDCF, - 25303 - 11905: 0xDED6, - 25304 - 11905: 0xBED0, - 25305 - 11905: 0xD7BE, - 25306 - 11905: 0xDED5, - 25307 - 11905: 0xD5D0, - 25308 - 11905: 0xB0DD, - 25309 - 11905: 0x9285, - 25310 - 11905: 0x9286, - 25311 - 11905: 0xC4E2, - 25312 - 11905: 0x9287, - 25313 - 11905: 0x9288, - 25314 - 11905: 0xC2A3, - 25315 - 11905: 0xBCF0, - 25316 - 11905: 0x9289, - 25317 - 11905: 0xD3B5, - 25318 - 11905: 0xC0B9, - 25319 - 11905: 0xC5A1, - 25320 - 11905: 0xB2A6, - 25321 - 11905: 0xD4F1, - 25322 - 11905: 0x928A, - 25323 - 11905: 0x928B, - 25324 - 11905: 0xC0A8, - 25325 - 11905: 0xCAC3, - 25326 - 11905: 0xDED7, - 25327 - 11905: 0xD5FC, - 25328 - 11905: 0x928C, - 25329 - 11905: 0xB9B0, - 25330 - 11905: 0x928D, - 25331 - 11905: 0xC8AD, - 25332 - 11905: 0xCBA9, - 25333 - 11905: 0x928E, - 25334 - 11905: 0xDED9, - 25335 - 11905: 0xBFBD, - 25336 - 11905: 0x928F, - 25337 - 11905: 0x9290, - 25338 - 11905: 0x9291, - 25339 - 11905: 0x9292, - 25340 - 11905: 0xC6B4, - 25341 - 11905: 0xD7A7, - 25342 - 11905: 0xCAB0, - 25343 - 11905: 0xC4C3, - 25344 - 11905: 0x9293, - 25345 - 11905: 0xB3D6, - 25346 - 11905: 0xB9D2, - 25347 - 11905: 0x9294, - 25348 - 11905: 0x9295, - 25349 - 11905: 0x9296, - 25350 - 11905: 0x9297, - 25351 - 11905: 0xD6B8, - 25352 - 11905: 0xEAFC, - 25353 - 11905: 0xB0B4, - 25354 - 11905: 0x9298, - 25355 - 11905: 0x9299, - 25356 - 11905: 0x929A, - 25357 - 11905: 0x929B, - 25358 - 11905: 0xBFE6, - 25359 - 11905: 0x929C, - 25360 - 11905: 0x929D, - 25361 - 11905: 0xCCF4, - 25362 - 11905: 0x929E, - 25363 - 11905: 0x929F, - 25364 - 11905: 0x92A0, - 25365 - 11905: 0x92A1, - 25366 - 11905: 0xCDDA, - 25367 - 11905: 0x92A2, - 25368 - 11905: 0x92A3, - 25369 - 11905: 0x92A4, - 25370 - 11905: 0xD6BF, - 25371 - 11905: 0xC2CE, - 25372 - 11905: 0x92A5, - 25373 - 11905: 0xCECE, - 25374 - 11905: 0xCCA2, - 25375 - 11905: 0xD0AE, - 25376 - 11905: 0xC4D3, - 25377 - 11905: 0xB5B2, - 25378 - 11905: 0xDED8, - 25379 - 11905: 0xD5F5, - 25380 - 11905: 0xBCB7, - 25381 - 11905: 0xBBD3, - 25382 - 11905: 0x92A6, - 25383 - 11905: 0x92A7, - 25384 - 11905: 0xB0A4, - 25385 - 11905: 0x92A8, - 25386 - 11905: 0xC5B2, - 25387 - 11905: 0xB4EC, - 25388 - 11905: 0x92A9, - 25389 - 11905: 0x92AA, - 25390 - 11905: 0x92AB, - 25391 - 11905: 0xD5F1, - 25392 - 11905: 0x92AC, - 25393 - 11905: 0x92AD, - 25394 - 11905: 0xEAFD, - 25395 - 11905: 0x92AE, - 25396 - 11905: 0x92AF, - 25397 - 11905: 0x92B0, - 25398 - 11905: 0x92B1, - 25399 - 11905: 0x92B2, - 25400 - 11905: 0x92B3, - 25401 - 11905: 0xDEDA, - 25402 - 11905: 0xCDA6, - 25403 - 11905: 0x92B4, - 25404 - 11905: 0x92B5, - 25405 - 11905: 0xCDEC, - 25406 - 11905: 0x92B6, - 25407 - 11905: 0x92B7, - 25408 - 11905: 0x92B8, - 25409 - 11905: 0x92B9, - 25410 - 11905: 0xCEE6, - 25411 - 11905: 0xDEDC, - 25412 - 11905: 0x92BA, - 25413 - 11905: 0xCDB1, - 25414 - 11905: 0xC0A6, - 25415 - 11905: 0x92BB, - 25416 - 11905: 0x92BC, - 25417 - 11905: 0xD7BD, - 25418 - 11905: 0x92BD, - 25419 - 11905: 0xDEDB, - 25420 - 11905: 0xB0C6, - 25421 - 11905: 0xBAB4, - 25422 - 11905: 0xC9D3, - 25423 - 11905: 0xC4F3, - 25424 - 11905: 0xBEE8, - 25425 - 11905: 0x92BE, - 25426 - 11905: 0x92BF, - 25427 - 11905: 0x92C0, - 25428 - 11905: 0x92C1, - 25429 - 11905: 0xB2B6, - 25430 - 11905: 0x92C2, - 25431 - 11905: 0x92C3, - 25432 - 11905: 0x92C4, - 25433 - 11905: 0x92C5, - 25434 - 11905: 0x92C6, - 25435 - 11905: 0x92C7, - 25436 - 11905: 0x92C8, - 25437 - 11905: 0x92C9, - 25438 - 11905: 0xC0CC, - 25439 - 11905: 0xCBF0, - 25440 - 11905: 0x92CA, - 25441 - 11905: 0xBCF1, - 25442 - 11905: 0xBBBB, - 25443 - 11905: 0xB5B7, - 25444 - 11905: 0x92CB, - 25445 - 11905: 0x92CC, - 25446 - 11905: 0x92CD, - 25447 - 11905: 0xC5F5, - 25448 - 11905: 0x92CE, - 25449 - 11905: 0xDEE6, - 25450 - 11905: 0x92CF, - 25451 - 11905: 0x92D0, - 25452 - 11905: 0x92D1, - 25453 - 11905: 0xDEE3, - 25454 - 11905: 0xBEDD, - 25455 - 11905: 0x92D2, - 25456 - 11905: 0x92D3, - 25457 - 11905: 0xDEDF, - 25458 - 11905: 0x92D4, - 25459 - 11905: 0x92D5, - 25460 - 11905: 0x92D6, - 25461 - 11905: 0x92D7, - 25462 - 11905: 0xB4B7, - 25463 - 11905: 0xBDDD, - 25464 - 11905: 0x92D8, - 25465 - 11905: 0x92D9, - 25466 - 11905: 0xDEE0, - 25467 - 11905: 0xC4ED, - 25468 - 11905: 0x92DA, - 25469 - 11905: 0x92DB, - 25470 - 11905: 0x92DC, - 25471 - 11905: 0x92DD, - 25472 - 11905: 0xCFC6, - 25473 - 11905: 0x92DE, - 25474 - 11905: 0xB5E0, - 25475 - 11905: 0x92DF, - 25476 - 11905: 0x92E0, - 25477 - 11905: 0x92E1, - 25478 - 11905: 0x92E2, - 25479 - 11905: 0xB6DE, - 25480 - 11905: 0xCADA, - 25481 - 11905: 0xB5F4, - 25482 - 11905: 0xDEE5, - 25483 - 11905: 0x92E3, - 25484 - 11905: 0xD5C6, - 25485 - 11905: 0x92E4, - 25486 - 11905: 0xDEE1, - 25487 - 11905: 0xCCCD, - 25488 - 11905: 0xC6FE, - 25489 - 11905: 0x92E5, - 25490 - 11905: 0xC5C5, - 25491 - 11905: 0x92E6, - 25492 - 11905: 0x92E7, - 25493 - 11905: 0x92E8, - 25494 - 11905: 0xD2B4, - 25495 - 11905: 0x92E9, - 25496 - 11905: 0xBEF2, - 25497 - 11905: 0x92EA, - 25498 - 11905: 0x92EB, - 25499 - 11905: 0x92EC, - 25500 - 11905: 0x92ED, - 25501 - 11905: 0x92EE, - 25502 - 11905: 0x92EF, - 25503 - 11905: 0x92F0, - 25504 - 11905: 0xC2D3, - 25505 - 11905: 0x92F1, - 25506 - 11905: 0xCCBD, - 25507 - 11905: 0xB3B8, - 25508 - 11905: 0x92F2, - 25509 - 11905: 0xBDD3, - 25510 - 11905: 0x92F3, - 25511 - 11905: 0xBFD8, - 25512 - 11905: 0xCDC6, - 25513 - 11905: 0xD1DA, - 25514 - 11905: 0xB4EB, - 25515 - 11905: 0x92F4, - 25516 - 11905: 0xDEE4, - 25517 - 11905: 0xDEDD, - 25518 - 11905: 0xDEE7, - 25519 - 11905: 0x92F5, - 25520 - 11905: 0xEAFE, - 25521 - 11905: 0x92F6, - 25522 - 11905: 0x92F7, - 25523 - 11905: 0xC2B0, - 25524 - 11905: 0xDEE2, - 25525 - 11905: 0x92F8, - 25526 - 11905: 0x92F9, - 25527 - 11905: 0xD6C0, - 25528 - 11905: 0xB5A7, - 25529 - 11905: 0x92FA, - 25530 - 11905: 0xB2F4, - 25531 - 11905: 0x92FB, - 25532 - 11905: 0xDEE8, - 25533 - 11905: 0x92FC, - 25534 - 11905: 0xDEF2, - 25535 - 11905: 0x92FD, - 25536 - 11905: 0x92FE, - 25537 - 11905: 0x9340, - 25538 - 11905: 0x9341, - 25539 - 11905: 0x9342, - 25540 - 11905: 0xDEED, - 25541 - 11905: 0x9343, - 25542 - 11905: 0xDEF1, - 25543 - 11905: 0x9344, - 25544 - 11905: 0x9345, - 25545 - 11905: 0xC8E0, - 25546 - 11905: 0x9346, - 25547 - 11905: 0x9347, - 25548 - 11905: 0x9348, - 25549 - 11905: 0xD7E1, - 25550 - 11905: 0xDEEF, - 25551 - 11905: 0xC3E8, - 25552 - 11905: 0xCCE1, - 25553 - 11905: 0x9349, - 25554 - 11905: 0xB2E5, - 25555 - 11905: 0x934A, - 25556 - 11905: 0x934B, - 25557 - 11905: 0x934C, - 25558 - 11905: 0xD2BE, - 25559 - 11905: 0x934D, - 25560 - 11905: 0x934E, - 25561 - 11905: 0x934F, - 25562 - 11905: 0x9350, - 25563 - 11905: 0x9351, - 25564 - 11905: 0x9352, - 25565 - 11905: 0x9353, - 25566 - 11905: 0xDEEE, - 25567 - 11905: 0x9354, - 25568 - 11905: 0xDEEB, - 25569 - 11905: 0xCED5, - 25570 - 11905: 0x9355, - 25571 - 11905: 0xB4A7, - 25572 - 11905: 0x9356, - 25573 - 11905: 0x9357, - 25574 - 11905: 0x9358, - 25575 - 11905: 0x9359, - 25576 - 11905: 0x935A, - 25577 - 11905: 0xBFAB, - 25578 - 11905: 0xBEBE, - 25579 - 11905: 0x935B, - 25580 - 11905: 0x935C, - 25581 - 11905: 0xBDD2, - 25582 - 11905: 0x935D, - 25583 - 11905: 0x935E, - 25584 - 11905: 0x935F, - 25585 - 11905: 0x9360, - 25586 - 11905: 0xDEE9, - 25587 - 11905: 0x9361, - 25588 - 11905: 0xD4AE, - 25589 - 11905: 0x9362, - 25590 - 11905: 0xDEDE, - 25591 - 11905: 0x9363, - 25592 - 11905: 0xDEEA, - 25593 - 11905: 0x9364, - 25594 - 11905: 0x9365, - 25595 - 11905: 0x9366, - 25596 - 11905: 0x9367, - 25597 - 11905: 0xC0BF, - 25598 - 11905: 0x9368, - 25599 - 11905: 0xDEEC, - 25600 - 11905: 0xB2F3, - 25601 - 11905: 0xB8E9, - 25602 - 11905: 0xC2A7, - 25603 - 11905: 0x9369, - 25604 - 11905: 0x936A, - 25605 - 11905: 0xBDC1, - 25606 - 11905: 0x936B, - 25607 - 11905: 0x936C, - 25608 - 11905: 0x936D, - 25609 - 11905: 0x936E, - 25610 - 11905: 0x936F, - 25611 - 11905: 0xDEF5, - 25612 - 11905: 0xDEF8, - 25613 - 11905: 0x9370, - 25614 - 11905: 0x9371, - 25615 - 11905: 0xB2AB, - 25616 - 11905: 0xB4A4, - 25617 - 11905: 0x9372, - 25618 - 11905: 0x9373, - 25619 - 11905: 0xB4EA, - 25620 - 11905: 0xC9A6, - 25621 - 11905: 0x9374, - 25622 - 11905: 0x9375, - 25623 - 11905: 0x9376, - 25624 - 11905: 0x9377, - 25625 - 11905: 0x9378, - 25626 - 11905: 0x9379, - 25627 - 11905: 0xDEF6, - 25628 - 11905: 0xCBD1, - 25629 - 11905: 0x937A, - 25630 - 11905: 0xB8E3, - 25631 - 11905: 0x937B, - 25632 - 11905: 0xDEF7, - 25633 - 11905: 0xDEFA, - 25634 - 11905: 0x937C, - 25635 - 11905: 0x937D, - 25636 - 11905: 0x937E, - 25637 - 11905: 0x9380, - 25638 - 11905: 0xDEF9, - 25639 - 11905: 0x9381, - 25640 - 11905: 0x9382, - 25641 - 11905: 0x9383, - 25642 - 11905: 0xCCC2, - 25643 - 11905: 0x9384, - 25644 - 11905: 0xB0E1, - 25645 - 11905: 0xB4EE, - 25646 - 11905: 0x9385, - 25647 - 11905: 0x9386, - 25648 - 11905: 0x9387, - 25649 - 11905: 0x9388, - 25650 - 11905: 0x9389, - 25651 - 11905: 0x938A, - 25652 - 11905: 0xE5BA, - 25653 - 11905: 0x938B, - 25654 - 11905: 0x938C, - 25655 - 11905: 0x938D, - 25656 - 11905: 0x938E, - 25657 - 11905: 0x938F, - 25658 - 11905: 0xD0AF, - 25659 - 11905: 0x9390, - 25660 - 11905: 0x9391, - 25661 - 11905: 0xB2EB, - 25662 - 11905: 0x9392, - 25663 - 11905: 0xEBA1, - 25664 - 11905: 0x9393, - 25665 - 11905: 0xDEF4, - 25666 - 11905: 0x9394, - 25667 - 11905: 0x9395, - 25668 - 11905: 0xC9E3, - 25669 - 11905: 0xDEF3, - 25670 - 11905: 0xB0DA, - 25671 - 11905: 0xD2A1, - 25672 - 11905: 0xB1F7, - 25673 - 11905: 0x9396, - 25674 - 11905: 0xCCAF, - 25675 - 11905: 0x9397, - 25676 - 11905: 0x9398, - 25677 - 11905: 0x9399, - 25678 - 11905: 0x939A, - 25679 - 11905: 0x939B, - 25680 - 11905: 0x939C, - 25681 - 11905: 0x939D, - 25682 - 11905: 0xDEF0, - 25683 - 11905: 0x939E, - 25684 - 11905: 0xCBA4, - 25685 - 11905: 0x939F, - 25686 - 11905: 0x93A0, - 25687 - 11905: 0x93A1, - 25688 - 11905: 0xD5AA, - 25689 - 11905: 0x93A2, - 25690 - 11905: 0x93A3, - 25691 - 11905: 0x93A4, - 25692 - 11905: 0x93A5, - 25693 - 11905: 0x93A6, - 25694 - 11905: 0xDEFB, - 25695 - 11905: 0x93A7, - 25696 - 11905: 0x93A8, - 25697 - 11905: 0x93A9, - 25698 - 11905: 0x93AA, - 25699 - 11905: 0x93AB, - 25700 - 11905: 0x93AC, - 25701 - 11905: 0x93AD, - 25702 - 11905: 0x93AE, - 25703 - 11905: 0xB4DD, - 25704 - 11905: 0x93AF, - 25705 - 11905: 0xC4A6, - 25706 - 11905: 0x93B0, - 25707 - 11905: 0x93B1, - 25708 - 11905: 0x93B2, - 25709 - 11905: 0xDEFD, - 25710 - 11905: 0x93B3, - 25711 - 11905: 0x93B4, - 25712 - 11905: 0x93B5, - 25713 - 11905: 0x93B6, - 25714 - 11905: 0x93B7, - 25715 - 11905: 0x93B8, - 25716 - 11905: 0x93B9, - 25717 - 11905: 0x93BA, - 25718 - 11905: 0x93BB, - 25719 - 11905: 0x93BC, - 25720 - 11905: 0xC3FE, - 25721 - 11905: 0xC4A1, - 25722 - 11905: 0xDFA1, - 25723 - 11905: 0x93BD, - 25724 - 11905: 0x93BE, - 25725 - 11905: 0x93BF, - 25726 - 11905: 0x93C0, - 25727 - 11905: 0x93C1, - 25728 - 11905: 0x93C2, - 25729 - 11905: 0x93C3, - 25730 - 11905: 0xC1CC, - 25731 - 11905: 0x93C4, - 25732 - 11905: 0xDEFC, - 25733 - 11905: 0xBEEF, - 25734 - 11905: 0x93C5, - 25735 - 11905: 0xC6B2, - 25736 - 11905: 0x93C6, - 25737 - 11905: 0x93C7, - 25738 - 11905: 0x93C8, - 25739 - 11905: 0x93C9, - 25740 - 11905: 0x93CA, - 25741 - 11905: 0x93CB, - 25742 - 11905: 0x93CC, - 25743 - 11905: 0x93CD, - 25744 - 11905: 0x93CE, - 25745 - 11905: 0xB3C5, - 25746 - 11905: 0xC8F6, - 25747 - 11905: 0x93CF, - 25748 - 11905: 0x93D0, - 25749 - 11905: 0xCBBA, - 25750 - 11905: 0xDEFE, - 25751 - 11905: 0x93D1, - 25752 - 11905: 0x93D2, - 25753 - 11905: 0xDFA4, - 25754 - 11905: 0x93D3, - 25755 - 11905: 0x93D4, - 25756 - 11905: 0x93D5, - 25757 - 11905: 0x93D6, - 25758 - 11905: 0xD7B2, - 25759 - 11905: 0x93D7, - 25760 - 11905: 0x93D8, - 25761 - 11905: 0x93D9, - 25762 - 11905: 0x93DA, - 25763 - 11905: 0x93DB, - 25764 - 11905: 0xB3B7, - 25765 - 11905: 0x93DC, - 25766 - 11905: 0x93DD, - 25767 - 11905: 0x93DE, - 25768 - 11905: 0x93DF, - 25769 - 11905: 0xC1C3, - 25770 - 11905: 0x93E0, - 25771 - 11905: 0x93E1, - 25772 - 11905: 0xC7CB, - 25773 - 11905: 0xB2A5, - 25774 - 11905: 0xB4E9, - 25775 - 11905: 0x93E2, - 25776 - 11905: 0xD7AB, - 25777 - 11905: 0x93E3, - 25778 - 11905: 0x93E4, - 25779 - 11905: 0x93E5, - 25780 - 11905: 0x93E6, - 25781 - 11905: 0xC4EC, - 25782 - 11905: 0x93E7, - 25783 - 11905: 0xDFA2, - 25784 - 11905: 0xDFA3, - 25785 - 11905: 0x93E8, - 25786 - 11905: 0xDFA5, - 25787 - 11905: 0x93E9, - 25788 - 11905: 0xBAB3, - 25789 - 11905: 0x93EA, - 25790 - 11905: 0x93EB, - 25791 - 11905: 0x93EC, - 25792 - 11905: 0xDFA6, - 25793 - 11905: 0x93ED, - 25794 - 11905: 0xC0DE, - 25795 - 11905: 0x93EE, - 25796 - 11905: 0x93EF, - 25797 - 11905: 0xC9C3, - 25798 - 11905: 0x93F0, - 25799 - 11905: 0x93F1, - 25800 - 11905: 0x93F2, - 25801 - 11905: 0x93F3, - 25802 - 11905: 0x93F4, - 25803 - 11905: 0x93F5, - 25804 - 11905: 0x93F6, - 25805 - 11905: 0xB2D9, - 25806 - 11905: 0xC7E6, - 25807 - 11905: 0x93F7, - 25808 - 11905: 0xDFA7, - 25809 - 11905: 0x93F8, - 25810 - 11905: 0xC7DC, - 25811 - 11905: 0x93F9, - 25812 - 11905: 0x93FA, - 25813 - 11905: 0x93FB, - 25814 - 11905: 0x93FC, - 25815 - 11905: 0xDFA8, - 25816 - 11905: 0xEBA2, - 25817 - 11905: 0x93FD, - 25818 - 11905: 0x93FE, - 25819 - 11905: 0x9440, - 25820 - 11905: 0x9441, - 25821 - 11905: 0x9442, - 25822 - 11905: 0xCBD3, - 25823 - 11905: 0x9443, - 25824 - 11905: 0x9444, - 25825 - 11905: 0x9445, - 25826 - 11905: 0xDFAA, - 25827 - 11905: 0x9446, - 25828 - 11905: 0xDFA9, - 25829 - 11905: 0x9447, - 25830 - 11905: 0xB2C1, - 25831 - 11905: 0x9448, - 25832 - 11905: 0x9449, - 25833 - 11905: 0x944A, - 25834 - 11905: 0x944B, - 25835 - 11905: 0x944C, - 25836 - 11905: 0x944D, - 25837 - 11905: 0x944E, - 25838 - 11905: 0x944F, - 25839 - 11905: 0x9450, - 25840 - 11905: 0x9451, - 25841 - 11905: 0x9452, - 25842 - 11905: 0x9453, - 25843 - 11905: 0x9454, - 25844 - 11905: 0x9455, - 25845 - 11905: 0x9456, - 25846 - 11905: 0x9457, - 25847 - 11905: 0x9458, - 25848 - 11905: 0x9459, - 25849 - 11905: 0x945A, - 25850 - 11905: 0x945B, - 25851 - 11905: 0x945C, - 25852 - 11905: 0x945D, - 25853 - 11905: 0x945E, - 25854 - 11905: 0x945F, - 25855 - 11905: 0x9460, - 25856 - 11905: 0xC5CA, - 25857 - 11905: 0x9461, - 25858 - 11905: 0x9462, - 25859 - 11905: 0x9463, - 25860 - 11905: 0x9464, - 25861 - 11905: 0x9465, - 25862 - 11905: 0x9466, - 25863 - 11905: 0x9467, - 25864 - 11905: 0x9468, - 25865 - 11905: 0xDFAB, - 25866 - 11905: 0x9469, - 25867 - 11905: 0x946A, - 25868 - 11905: 0x946B, - 25869 - 11905: 0x946C, - 25870 - 11905: 0x946D, - 25871 - 11905: 0x946E, - 25872 - 11905: 0x946F, - 25873 - 11905: 0x9470, - 25874 - 11905: 0xD4DC, - 25875 - 11905: 0x9471, - 25876 - 11905: 0x9472, - 25877 - 11905: 0x9473, - 25878 - 11905: 0x9474, - 25879 - 11905: 0x9475, - 25880 - 11905: 0xC8C1, - 25881 - 11905: 0x9476, - 25882 - 11905: 0x9477, - 25883 - 11905: 0x9478, - 25884 - 11905: 0x9479, - 25885 - 11905: 0x947A, - 25886 - 11905: 0x947B, - 25887 - 11905: 0x947C, - 25888 - 11905: 0x947D, - 25889 - 11905: 0x947E, - 25890 - 11905: 0x9480, - 25891 - 11905: 0x9481, - 25892 - 11905: 0x9482, - 25893 - 11905: 0xDFAC, - 25894 - 11905: 0x9483, - 25895 - 11905: 0x9484, - 25896 - 11905: 0x9485, - 25897 - 11905: 0x9486, - 25898 - 11905: 0x9487, - 25899 - 11905: 0xBEF0, - 25900 - 11905: 0x9488, - 25901 - 11905: 0x9489, - 25902 - 11905: 0xDFAD, - 25903 - 11905: 0xD6A7, - 25904 - 11905: 0x948A, - 25905 - 11905: 0x948B, - 25906 - 11905: 0x948C, - 25907 - 11905: 0x948D, - 25908 - 11905: 0xEAB7, - 25909 - 11905: 0xEBB6, - 25910 - 11905: 0xCAD5, - 25911 - 11905: 0x948E, - 25912 - 11905: 0xD8FC, - 25913 - 11905: 0xB8C4, - 25914 - 11905: 0x948F, - 25915 - 11905: 0xB9A5, - 25916 - 11905: 0x9490, - 25917 - 11905: 0x9491, - 25918 - 11905: 0xB7C5, - 25919 - 11905: 0xD5FE, - 25920 - 11905: 0x9492, - 25921 - 11905: 0x9493, - 25922 - 11905: 0x9494, - 25923 - 11905: 0x9495, - 25924 - 11905: 0x9496, - 25925 - 11905: 0xB9CA, - 25926 - 11905: 0x9497, - 25927 - 11905: 0x9498, - 25928 - 11905: 0xD0A7, - 25929 - 11905: 0xF4CD, - 25930 - 11905: 0x9499, - 25931 - 11905: 0x949A, - 25932 - 11905: 0xB5D0, - 25933 - 11905: 0x949B, - 25934 - 11905: 0x949C, - 25935 - 11905: 0xC3F4, - 25936 - 11905: 0x949D, - 25937 - 11905: 0xBEC8, - 25938 - 11905: 0x949E, - 25939 - 11905: 0x949F, - 25940 - 11905: 0x94A0, - 25941 - 11905: 0xEBB7, - 25942 - 11905: 0xB0BD, - 25943 - 11905: 0x94A1, - 25944 - 11905: 0x94A2, - 25945 - 11905: 0xBDCC, - 25946 - 11905: 0x94A3, - 25947 - 11905: 0xC1B2, - 25948 - 11905: 0x94A4, - 25949 - 11905: 0xB1D6, - 25950 - 11905: 0xB3A8, - 25951 - 11905: 0x94A5, - 25952 - 11905: 0x94A6, - 25953 - 11905: 0x94A7, - 25954 - 11905: 0xB8D2, - 25955 - 11905: 0xC9A2, - 25956 - 11905: 0x94A8, - 25957 - 11905: 0x94A9, - 25958 - 11905: 0xB6D8, - 25959 - 11905: 0x94AA, - 25960 - 11905: 0x94AB, - 25961 - 11905: 0x94AC, - 25962 - 11905: 0x94AD, - 25963 - 11905: 0xEBB8, - 25964 - 11905: 0xBEB4, - 25965 - 11905: 0x94AE, - 25966 - 11905: 0x94AF, - 25967 - 11905: 0x94B0, - 25968 - 11905: 0xCAFD, - 25969 - 11905: 0x94B1, - 25970 - 11905: 0xC7C3, - 25971 - 11905: 0x94B2, - 25972 - 11905: 0xD5FB, - 25973 - 11905: 0x94B3, - 25974 - 11905: 0x94B4, - 25975 - 11905: 0xB7F3, - 25976 - 11905: 0x94B5, - 25977 - 11905: 0x94B6, - 25978 - 11905: 0x94B7, - 25979 - 11905: 0x94B8, - 25980 - 11905: 0x94B9, - 25981 - 11905: 0x94BA, - 25982 - 11905: 0x94BB, - 25983 - 11905: 0x94BC, - 25984 - 11905: 0x94BD, - 25985 - 11905: 0x94BE, - 25986 - 11905: 0x94BF, - 25987 - 11905: 0x94C0, - 25988 - 11905: 0x94C1, - 25989 - 11905: 0x94C2, - 25990 - 11905: 0x94C3, - 25991 - 11905: 0xCEC4, - 25992 - 11905: 0x94C4, - 25993 - 11905: 0x94C5, - 25994 - 11905: 0x94C6, - 25995 - 11905: 0xD5AB, - 25996 - 11905: 0xB1F3, - 25997 - 11905: 0x94C7, - 25998 - 11905: 0x94C8, - 25999 - 11905: 0x94C9, - 26000 - 11905: 0xECB3, - 26001 - 11905: 0xB0DF, - 26002 - 11905: 0x94CA, - 26003 - 11905: 0xECB5, - 26004 - 11905: 0x94CB, - 26005 - 11905: 0x94CC, - 26006 - 11905: 0x94CD, - 26007 - 11905: 0xB6B7, - 26008 - 11905: 0x94CE, - 26009 - 11905: 0xC1CF, - 26010 - 11905: 0x94CF, - 26011 - 11905: 0xF5FA, - 26012 - 11905: 0xD0B1, - 26013 - 11905: 0x94D0, - 26014 - 11905: 0x94D1, - 26015 - 11905: 0xD5E5, - 26016 - 11905: 0x94D2, - 26017 - 11905: 0xCED3, - 26018 - 11905: 0x94D3, - 26019 - 11905: 0x94D4, - 26020 - 11905: 0xBDEF, - 26021 - 11905: 0xB3E2, - 26022 - 11905: 0x94D5, - 26023 - 11905: 0xB8AB, - 26024 - 11905: 0x94D6, - 26025 - 11905: 0xD5B6, - 26026 - 11905: 0x94D7, - 26027 - 11905: 0xEDBD, - 26028 - 11905: 0x94D8, - 26029 - 11905: 0xB6CF, - 26030 - 11905: 0x94D9, - 26031 - 11905: 0xCBB9, - 26032 - 11905: 0xD0C2, - 26033 - 11905: 0x94DA, - 26034 - 11905: 0x94DB, - 26035 - 11905: 0x94DC, - 26036 - 11905: 0x94DD, - 26037 - 11905: 0x94DE, - 26038 - 11905: 0x94DF, - 26039 - 11905: 0x94E0, - 26040 - 11905: 0x94E1, - 26041 - 11905: 0xB7BD, - 26042 - 11905: 0x94E2, - 26043 - 11905: 0x94E3, - 26044 - 11905: 0xECB6, - 26045 - 11905: 0xCAA9, - 26046 - 11905: 0x94E4, - 26047 - 11905: 0x94E5, - 26048 - 11905: 0x94E6, - 26049 - 11905: 0xC5D4, - 26050 - 11905: 0x94E7, - 26051 - 11905: 0xECB9, - 26052 - 11905: 0xECB8, - 26053 - 11905: 0xC2C3, - 26054 - 11905: 0xECB7, - 26055 - 11905: 0x94E8, - 26056 - 11905: 0x94E9, - 26057 - 11905: 0x94EA, - 26058 - 11905: 0x94EB, - 26059 - 11905: 0xD0FD, - 26060 - 11905: 0xECBA, - 26061 - 11905: 0x94EC, - 26062 - 11905: 0xECBB, - 26063 - 11905: 0xD7E5, - 26064 - 11905: 0x94ED, - 26065 - 11905: 0x94EE, - 26066 - 11905: 0xECBC, - 26067 - 11905: 0x94EF, - 26068 - 11905: 0x94F0, - 26069 - 11905: 0x94F1, - 26070 - 11905: 0xECBD, - 26071 - 11905: 0xC6EC, - 26072 - 11905: 0x94F2, - 26073 - 11905: 0x94F3, - 26074 - 11905: 0x94F4, - 26075 - 11905: 0x94F5, - 26076 - 11905: 0x94F6, - 26077 - 11905: 0x94F7, - 26078 - 11905: 0x94F8, - 26079 - 11905: 0x94F9, - 26080 - 11905: 0xCEDE, - 26081 - 11905: 0x94FA, - 26082 - 11905: 0xBCC8, - 26083 - 11905: 0x94FB, - 26084 - 11905: 0x94FC, - 26085 - 11905: 0xC8D5, - 26086 - 11905: 0xB5A9, - 26087 - 11905: 0xBEC9, - 26088 - 11905: 0xD6BC, - 26089 - 11905: 0xD4E7, - 26090 - 11905: 0x94FD, - 26091 - 11905: 0x94FE, - 26092 - 11905: 0xD1AE, - 26093 - 11905: 0xD0F1, - 26094 - 11905: 0xEAB8, - 26095 - 11905: 0xEAB9, - 26096 - 11905: 0xEABA, - 26097 - 11905: 0xBAB5, - 26098 - 11905: 0x9540, - 26099 - 11905: 0x9541, - 26100 - 11905: 0x9542, - 26101 - 11905: 0x9543, - 26102 - 11905: 0xCAB1, - 26103 - 11905: 0xBFF5, - 26104 - 11905: 0x9544, - 26105 - 11905: 0x9545, - 26106 - 11905: 0xCDFA, - 26107 - 11905: 0x9546, - 26108 - 11905: 0x9547, - 26109 - 11905: 0x9548, - 26110 - 11905: 0x9549, - 26111 - 11905: 0x954A, - 26112 - 11905: 0xEAC0, - 26113 - 11905: 0x954B, - 26114 - 11905: 0xB0BA, - 26115 - 11905: 0xEABE, - 26116 - 11905: 0x954C, - 26117 - 11905: 0x954D, - 26118 - 11905: 0xC0A5, - 26119 - 11905: 0x954E, - 26120 - 11905: 0x954F, - 26121 - 11905: 0x9550, - 26122 - 11905: 0xEABB, - 26123 - 11905: 0x9551, - 26124 - 11905: 0xB2FD, - 26125 - 11905: 0x9552, - 26126 - 11905: 0xC3F7, - 26127 - 11905: 0xBBE8, - 26128 - 11905: 0x9553, - 26129 - 11905: 0x9554, - 26130 - 11905: 0x9555, - 26131 - 11905: 0xD2D7, - 26132 - 11905: 0xCEF4, - 26133 - 11905: 0xEABF, - 26134 - 11905: 0x9556, - 26135 - 11905: 0x9557, - 26136 - 11905: 0x9558, - 26137 - 11905: 0xEABC, - 26138 - 11905: 0x9559, - 26139 - 11905: 0x955A, - 26140 - 11905: 0x955B, - 26141 - 11905: 0xEAC3, - 26142 - 11905: 0x955C, - 26143 - 11905: 0xD0C7, - 26144 - 11905: 0xD3B3, - 26145 - 11905: 0x955D, - 26146 - 11905: 0x955E, - 26147 - 11905: 0x955F, - 26148 - 11905: 0x9560, - 26149 - 11905: 0xB4BA, - 26150 - 11905: 0x9561, - 26151 - 11905: 0xC3C1, - 26152 - 11905: 0xD7F2, - 26153 - 11905: 0x9562, - 26154 - 11905: 0x9563, - 26155 - 11905: 0x9564, - 26156 - 11905: 0x9565, - 26157 - 11905: 0xD5D1, - 26158 - 11905: 0x9566, - 26159 - 11905: 0xCAC7, - 26160 - 11905: 0x9567, - 26161 - 11905: 0xEAC5, - 26162 - 11905: 0x9568, - 26163 - 11905: 0x9569, - 26164 - 11905: 0xEAC4, - 26165 - 11905: 0xEAC7, - 26166 - 11905: 0xEAC6, - 26167 - 11905: 0x956A, - 26168 - 11905: 0x956B, - 26169 - 11905: 0x956C, - 26170 - 11905: 0x956D, - 26171 - 11905: 0x956E, - 26172 - 11905: 0xD6E7, - 26173 - 11905: 0x956F, - 26174 - 11905: 0xCFD4, - 26175 - 11905: 0x9570, - 26176 - 11905: 0x9571, - 26177 - 11905: 0xEACB, - 26178 - 11905: 0x9572, - 26179 - 11905: 0xBBCE, - 26180 - 11905: 0x9573, - 26181 - 11905: 0x9574, - 26182 - 11905: 0x9575, - 26183 - 11905: 0x9576, - 26184 - 11905: 0x9577, - 26185 - 11905: 0x9578, - 26186 - 11905: 0x9579, - 26187 - 11905: 0xBDFA, - 26188 - 11905: 0xC9CE, - 26189 - 11905: 0x957A, - 26190 - 11905: 0x957B, - 26191 - 11905: 0xEACC, - 26192 - 11905: 0x957C, - 26193 - 11905: 0x957D, - 26194 - 11905: 0xC9B9, - 26195 - 11905: 0xCFFE, - 26196 - 11905: 0xEACA, - 26197 - 11905: 0xD4CE, - 26198 - 11905: 0xEACD, - 26199 - 11905: 0xEACF, - 26200 - 11905: 0x957E, - 26201 - 11905: 0x9580, - 26202 - 11905: 0xCDED, - 26203 - 11905: 0x9581, - 26204 - 11905: 0x9582, - 26205 - 11905: 0x9583, - 26206 - 11905: 0x9584, - 26207 - 11905: 0xEAC9, - 26208 - 11905: 0x9585, - 26209 - 11905: 0xEACE, - 26210 - 11905: 0x9586, - 26211 - 11905: 0x9587, - 26212 - 11905: 0xCEEE, - 26213 - 11905: 0x9588, - 26214 - 11905: 0xBBDE, - 26215 - 11905: 0x9589, - 26216 - 11905: 0xB3BF, - 26217 - 11905: 0x958A, - 26218 - 11905: 0x958B, - 26219 - 11905: 0x958C, - 26220 - 11905: 0x958D, - 26221 - 11905: 0x958E, - 26222 - 11905: 0xC6D5, - 26223 - 11905: 0xBEB0, - 26224 - 11905: 0xCEFA, - 26225 - 11905: 0x958F, - 26226 - 11905: 0x9590, - 26227 - 11905: 0x9591, - 26228 - 11905: 0xC7E7, - 26229 - 11905: 0x9592, - 26230 - 11905: 0xBEA7, - 26231 - 11905: 0xEAD0, - 26232 - 11905: 0x9593, - 26233 - 11905: 0x9594, - 26234 - 11905: 0xD6C7, - 26235 - 11905: 0x9595, - 26236 - 11905: 0x9596, - 26237 - 11905: 0x9597, - 26238 - 11905: 0xC1C0, - 26239 - 11905: 0x9598, - 26240 - 11905: 0x9599, - 26241 - 11905: 0x959A, - 26242 - 11905: 0xD4DD, - 26243 - 11905: 0x959B, - 26244 - 11905: 0xEAD1, - 26245 - 11905: 0x959C, - 26246 - 11905: 0x959D, - 26247 - 11905: 0xCFBE, - 26248 - 11905: 0x959E, - 26249 - 11905: 0x959F, - 26250 - 11905: 0x95A0, - 26251 - 11905: 0x95A1, - 26252 - 11905: 0xEAD2, - 26253 - 11905: 0x95A2, - 26254 - 11905: 0x95A3, - 26255 - 11905: 0x95A4, - 26256 - 11905: 0x95A5, - 26257 - 11905: 0xCAEE, - 26258 - 11905: 0x95A6, - 26259 - 11905: 0x95A7, - 26260 - 11905: 0x95A8, - 26261 - 11905: 0x95A9, - 26262 - 11905: 0xC5AF, - 26263 - 11905: 0xB0B5, - 26264 - 11905: 0x95AA, - 26265 - 11905: 0x95AB, - 26266 - 11905: 0x95AC, - 26267 - 11905: 0x95AD, - 26268 - 11905: 0x95AE, - 26269 - 11905: 0xEAD4, - 26270 - 11905: 0x95AF, - 26271 - 11905: 0x95B0, - 26272 - 11905: 0x95B1, - 26273 - 11905: 0x95B2, - 26274 - 11905: 0x95B3, - 26275 - 11905: 0x95B4, - 26276 - 11905: 0x95B5, - 26277 - 11905: 0x95B6, - 26278 - 11905: 0x95B7, - 26279 - 11905: 0xEAD3, - 26280 - 11905: 0xF4DF, - 26281 - 11905: 0x95B8, - 26282 - 11905: 0x95B9, - 26283 - 11905: 0x95BA, - 26284 - 11905: 0x95BB, - 26285 - 11905: 0x95BC, - 26286 - 11905: 0xC4BA, - 26287 - 11905: 0x95BD, - 26288 - 11905: 0x95BE, - 26289 - 11905: 0x95BF, - 26290 - 11905: 0x95C0, - 26291 - 11905: 0x95C1, - 26292 - 11905: 0xB1A9, - 26293 - 11905: 0x95C2, - 26294 - 11905: 0x95C3, - 26295 - 11905: 0x95C4, - 26296 - 11905: 0x95C5, - 26297 - 11905: 0xE5DF, - 26298 - 11905: 0x95C6, - 26299 - 11905: 0x95C7, - 26300 - 11905: 0x95C8, - 26301 - 11905: 0x95C9, - 26302 - 11905: 0xEAD5, - 26303 - 11905: 0x95CA, - 26304 - 11905: 0x95CB, - 26305 - 11905: 0x95CC, - 26306 - 11905: 0x95CD, - 26307 - 11905: 0x95CE, - 26308 - 11905: 0x95CF, - 26309 - 11905: 0x95D0, - 26310 - 11905: 0x95D1, - 26311 - 11905: 0x95D2, - 26312 - 11905: 0x95D3, - 26313 - 11905: 0x95D4, - 26314 - 11905: 0x95D5, - 26315 - 11905: 0x95D6, - 26316 - 11905: 0x95D7, - 26317 - 11905: 0x95D8, - 26318 - 11905: 0x95D9, - 26319 - 11905: 0x95DA, - 26320 - 11905: 0x95DB, - 26321 - 11905: 0x95DC, - 26322 - 11905: 0x95DD, - 26323 - 11905: 0x95DE, - 26324 - 11905: 0x95DF, - 26325 - 11905: 0x95E0, - 26326 - 11905: 0x95E1, - 26327 - 11905: 0x95E2, - 26328 - 11905: 0x95E3, - 26329 - 11905: 0xCAEF, - 26330 - 11905: 0x95E4, - 26331 - 11905: 0xEAD6, - 26332 - 11905: 0xEAD7, - 26333 - 11905: 0xC6D8, - 26334 - 11905: 0x95E5, - 26335 - 11905: 0x95E6, - 26336 - 11905: 0x95E7, - 26337 - 11905: 0x95E8, - 26338 - 11905: 0x95E9, - 26339 - 11905: 0x95EA, - 26340 - 11905: 0x95EB, - 26341 - 11905: 0x95EC, - 26342 - 11905: 0xEAD8, - 26343 - 11905: 0x95ED, - 26344 - 11905: 0x95EE, - 26345 - 11905: 0xEAD9, - 26346 - 11905: 0x95EF, - 26347 - 11905: 0x95F0, - 26348 - 11905: 0x95F1, - 26349 - 11905: 0x95F2, - 26350 - 11905: 0x95F3, - 26351 - 11905: 0x95F4, - 26352 - 11905: 0xD4BB, - 26353 - 11905: 0x95F5, - 26354 - 11905: 0xC7FA, - 26355 - 11905: 0xD2B7, - 26356 - 11905: 0xB8FC, - 26357 - 11905: 0x95F6, - 26358 - 11905: 0x95F7, - 26359 - 11905: 0xEAC2, - 26360 - 11905: 0x95F8, - 26361 - 11905: 0xB2DC, - 26362 - 11905: 0x95F9, - 26363 - 11905: 0x95FA, - 26364 - 11905: 0xC2FC, - 26365 - 11905: 0x95FB, - 26366 - 11905: 0xD4F8, - 26367 - 11905: 0xCCE6, - 26368 - 11905: 0xD7EE, - 26369 - 11905: 0x95FC, - 26370 - 11905: 0x95FD, - 26371 - 11905: 0x95FE, - 26372 - 11905: 0x9640, - 26373 - 11905: 0x9641, - 26374 - 11905: 0x9642, - 26375 - 11905: 0x9643, - 26376 - 11905: 0xD4C2, - 26377 - 11905: 0xD3D0, - 26378 - 11905: 0xEBC3, - 26379 - 11905: 0xC5F3, - 26380 - 11905: 0x9644, - 26381 - 11905: 0xB7FE, - 26382 - 11905: 0x9645, - 26383 - 11905: 0x9646, - 26384 - 11905: 0xEBD4, - 26385 - 11905: 0x9647, - 26386 - 11905: 0x9648, - 26387 - 11905: 0x9649, - 26388 - 11905: 0xCBB7, - 26389 - 11905: 0xEBDE, - 26390 - 11905: 0x964A, - 26391 - 11905: 0xC0CA, - 26392 - 11905: 0x964B, - 26393 - 11905: 0x964C, - 26394 - 11905: 0x964D, - 26395 - 11905: 0xCDFB, - 26396 - 11905: 0x964E, - 26397 - 11905: 0xB3AF, - 26398 - 11905: 0x964F, - 26399 - 11905: 0xC6DA, - 26400 - 11905: 0x9650, - 26401 - 11905: 0x9651, - 26402 - 11905: 0x9652, - 26403 - 11905: 0x9653, - 26404 - 11905: 0x9654, - 26405 - 11905: 0x9655, - 26406 - 11905: 0xEBFC, - 26407 - 11905: 0x9656, - 26408 - 11905: 0xC4BE, - 26409 - 11905: 0x9657, - 26410 - 11905: 0xCEB4, - 26411 - 11905: 0xC4A9, - 26412 - 11905: 0xB1BE, - 26413 - 11905: 0xD4FD, - 26414 - 11905: 0x9658, - 26415 - 11905: 0xCAF5, - 26416 - 11905: 0x9659, - 26417 - 11905: 0xD6EC, - 26418 - 11905: 0x965A, - 26419 - 11905: 0x965B, - 26420 - 11905: 0xC6D3, - 26421 - 11905: 0xB6E4, - 26422 - 11905: 0x965C, - 26423 - 11905: 0x965D, - 26424 - 11905: 0x965E, - 26425 - 11905: 0x965F, - 26426 - 11905: 0xBBFA, - 26427 - 11905: 0x9660, - 26428 - 11905: 0x9661, - 26429 - 11905: 0xD0E0, - 26430 - 11905: 0x9662, - 26431 - 11905: 0x9663, - 26432 - 11905: 0xC9B1, - 26433 - 11905: 0x9664, - 26434 - 11905: 0xD4D3, - 26435 - 11905: 0xC8A8, - 26436 - 11905: 0x9665, - 26437 - 11905: 0x9666, - 26438 - 11905: 0xB8CB, - 26439 - 11905: 0x9667, - 26440 - 11905: 0xE8BE, - 26441 - 11905: 0xC9BC, - 26442 - 11905: 0x9668, - 26443 - 11905: 0x9669, - 26444 - 11905: 0xE8BB, - 26445 - 11905: 0x966A, - 26446 - 11905: 0xC0EE, - 26447 - 11905: 0xD0D3, - 26448 - 11905: 0xB2C4, - 26449 - 11905: 0xB4E5, - 26450 - 11905: 0x966B, - 26451 - 11905: 0xE8BC, - 26452 - 11905: 0x966C, - 26453 - 11905: 0x966D, - 26454 - 11905: 0xD5C8, - 26455 - 11905: 0x966E, - 26456 - 11905: 0x966F, - 26457 - 11905: 0x9670, - 26458 - 11905: 0x9671, - 26459 - 11905: 0x9672, - 26460 - 11905: 0xB6C5, - 26461 - 11905: 0x9673, - 26462 - 11905: 0xE8BD, - 26463 - 11905: 0xCAF8, - 26464 - 11905: 0xB8DC, - 26465 - 11905: 0xCCF5, - 26466 - 11905: 0x9674, - 26467 - 11905: 0x9675, - 26468 - 11905: 0x9676, - 26469 - 11905: 0xC0B4, - 26470 - 11905: 0x9677, - 26471 - 11905: 0x9678, - 26472 - 11905: 0xD1EE, - 26473 - 11905: 0xE8BF, - 26474 - 11905: 0xE8C2, - 26475 - 11905: 0x9679, - 26476 - 11905: 0x967A, - 26477 - 11905: 0xBABC, - 26478 - 11905: 0x967B, - 26479 - 11905: 0xB1AD, - 26480 - 11905: 0xBDDC, - 26481 - 11905: 0x967C, - 26482 - 11905: 0xEABD, - 26483 - 11905: 0xE8C3, - 26484 - 11905: 0x967D, - 26485 - 11905: 0xE8C6, - 26486 - 11905: 0x967E, - 26487 - 11905: 0xE8CB, - 26488 - 11905: 0x9680, - 26489 - 11905: 0x9681, - 26490 - 11905: 0x9682, - 26491 - 11905: 0x9683, - 26492 - 11905: 0xE8CC, - 26493 - 11905: 0x9684, - 26494 - 11905: 0xCBC9, - 26495 - 11905: 0xB0E5, - 26496 - 11905: 0x9685, - 26497 - 11905: 0xBCAB, - 26498 - 11905: 0x9686, - 26499 - 11905: 0x9687, - 26500 - 11905: 0xB9B9, - 26501 - 11905: 0x9688, - 26502 - 11905: 0x9689, - 26503 - 11905: 0xE8C1, - 26504 - 11905: 0x968A, - 26505 - 11905: 0xCDF7, - 26506 - 11905: 0x968B, - 26507 - 11905: 0xE8CA, - 26508 - 11905: 0x968C, - 26509 - 11905: 0x968D, - 26510 - 11905: 0x968E, - 26511 - 11905: 0x968F, - 26512 - 11905: 0xCEF6, - 26513 - 11905: 0x9690, - 26514 - 11905: 0x9691, - 26515 - 11905: 0x9692, - 26516 - 11905: 0x9693, - 26517 - 11905: 0xD5ED, - 26518 - 11905: 0x9694, - 26519 - 11905: 0xC1D6, - 26520 - 11905: 0xE8C4, - 26521 - 11905: 0x9695, - 26522 - 11905: 0xC3B6, - 26523 - 11905: 0x9696, - 26524 - 11905: 0xB9FB, - 26525 - 11905: 0xD6A6, - 26526 - 11905: 0xE8C8, - 26527 - 11905: 0x9697, - 26528 - 11905: 0x9698, - 26529 - 11905: 0x9699, - 26530 - 11905: 0xCAE0, - 26531 - 11905: 0xD4E6, - 26532 - 11905: 0x969A, - 26533 - 11905: 0xE8C0, - 26534 - 11905: 0x969B, - 26535 - 11905: 0xE8C5, - 26536 - 11905: 0xE8C7, - 26537 - 11905: 0x969C, - 26538 - 11905: 0xC7B9, - 26539 - 11905: 0xB7E3, - 26540 - 11905: 0x969D, - 26541 - 11905: 0xE8C9, - 26542 - 11905: 0x969E, - 26543 - 11905: 0xBFDD, - 26544 - 11905: 0xE8D2, - 26545 - 11905: 0x969F, - 26546 - 11905: 0x96A0, - 26547 - 11905: 0xE8D7, - 26548 - 11905: 0x96A1, - 26549 - 11905: 0xE8D5, - 26550 - 11905: 0xBCDC, - 26551 - 11905: 0xBCCF, - 26552 - 11905: 0xE8DB, - 26553 - 11905: 0x96A2, - 26554 - 11905: 0x96A3, - 26555 - 11905: 0x96A4, - 26556 - 11905: 0x96A5, - 26557 - 11905: 0x96A6, - 26558 - 11905: 0x96A7, - 26559 - 11905: 0x96A8, - 26560 - 11905: 0x96A9, - 26561 - 11905: 0xE8DE, - 26562 - 11905: 0x96AA, - 26563 - 11905: 0xE8DA, - 26564 - 11905: 0xB1FA, - 26565 - 11905: 0x96AB, - 26566 - 11905: 0x96AC, - 26567 - 11905: 0x96AD, - 26568 - 11905: 0x96AE, - 26569 - 11905: 0x96AF, - 26570 - 11905: 0x96B0, - 26571 - 11905: 0x96B1, - 26572 - 11905: 0x96B2, - 26573 - 11905: 0x96B3, - 26574 - 11905: 0x96B4, - 26575 - 11905: 0xB0D8, - 26576 - 11905: 0xC4B3, - 26577 - 11905: 0xB8CC, - 26578 - 11905: 0xC6E2, - 26579 - 11905: 0xC8BE, - 26580 - 11905: 0xC8E1, - 26581 - 11905: 0x96B5, - 26582 - 11905: 0x96B6, - 26583 - 11905: 0x96B7, - 26584 - 11905: 0xE8CF, - 26585 - 11905: 0xE8D4, - 26586 - 11905: 0xE8D6, - 26587 - 11905: 0x96B8, - 26588 - 11905: 0xB9F1, - 26589 - 11905: 0xE8D8, - 26590 - 11905: 0xD7F5, - 26591 - 11905: 0x96B9, - 26592 - 11905: 0xC4FB, - 26593 - 11905: 0x96BA, - 26594 - 11905: 0xE8DC, - 26595 - 11905: 0x96BB, - 26596 - 11905: 0x96BC, - 26597 - 11905: 0xB2E9, - 26598 - 11905: 0x96BD, - 26599 - 11905: 0x96BE, - 26600 - 11905: 0x96BF, - 26601 - 11905: 0xE8D1, - 26602 - 11905: 0x96C0, - 26603 - 11905: 0x96C1, - 26604 - 11905: 0xBCED, - 26605 - 11905: 0x96C2, - 26606 - 11905: 0x96C3, - 26607 - 11905: 0xBFC2, - 26608 - 11905: 0xE8CD, - 26609 - 11905: 0xD6F9, - 26610 - 11905: 0x96C4, - 26611 - 11905: 0xC1F8, - 26612 - 11905: 0xB2F1, - 26613 - 11905: 0x96C5, - 26614 - 11905: 0x96C6, - 26615 - 11905: 0x96C7, - 26616 - 11905: 0x96C8, - 26617 - 11905: 0x96C9, - 26618 - 11905: 0x96CA, - 26619 - 11905: 0x96CB, - 26620 - 11905: 0x96CC, - 26621 - 11905: 0xE8DF, - 26622 - 11905: 0x96CD, - 26623 - 11905: 0xCAC1, - 26624 - 11905: 0xE8D9, - 26625 - 11905: 0x96CE, - 26626 - 11905: 0x96CF, - 26627 - 11905: 0x96D0, - 26628 - 11905: 0x96D1, - 26629 - 11905: 0xD5A4, - 26630 - 11905: 0x96D2, - 26631 - 11905: 0xB1EA, - 26632 - 11905: 0xD5BB, - 26633 - 11905: 0xE8CE, - 26634 - 11905: 0xE8D0, - 26635 - 11905: 0xB6B0, - 26636 - 11905: 0xE8D3, - 26637 - 11905: 0x96D3, - 26638 - 11905: 0xE8DD, - 26639 - 11905: 0xC0B8, - 26640 - 11905: 0x96D4, - 26641 - 11905: 0xCAF7, - 26642 - 11905: 0x96D5, - 26643 - 11905: 0xCBA8, - 26644 - 11905: 0x96D6, - 26645 - 11905: 0x96D7, - 26646 - 11905: 0xC6DC, - 26647 - 11905: 0xC0F5, - 26648 - 11905: 0x96D8, - 26649 - 11905: 0x96D9, - 26650 - 11905: 0x96DA, - 26651 - 11905: 0x96DB, - 26652 - 11905: 0x96DC, - 26653 - 11905: 0xE8E9, - 26654 - 11905: 0x96DD, - 26655 - 11905: 0x96DE, - 26656 - 11905: 0x96DF, - 26657 - 11905: 0xD0A3, - 26658 - 11905: 0x96E0, - 26659 - 11905: 0x96E1, - 26660 - 11905: 0x96E2, - 26661 - 11905: 0x96E3, - 26662 - 11905: 0x96E4, - 26663 - 11905: 0x96E5, - 26664 - 11905: 0x96E6, - 26665 - 11905: 0xE8F2, - 26666 - 11905: 0xD6EA, - 26667 - 11905: 0x96E7, - 26668 - 11905: 0x96E8, - 26669 - 11905: 0x96E9, - 26670 - 11905: 0x96EA, - 26671 - 11905: 0x96EB, - 26672 - 11905: 0x96EC, - 26673 - 11905: 0x96ED, - 26674 - 11905: 0xE8E0, - 26675 - 11905: 0xE8E1, - 26676 - 11905: 0x96EE, - 26677 - 11905: 0x96EF, - 26678 - 11905: 0x96F0, - 26679 - 11905: 0xD1F9, - 26680 - 11905: 0xBACB, - 26681 - 11905: 0xB8F9, - 26682 - 11905: 0x96F1, - 26683 - 11905: 0x96F2, - 26684 - 11905: 0xB8F1, - 26685 - 11905: 0xD4D4, - 26686 - 11905: 0xE8EF, - 26687 - 11905: 0x96F3, - 26688 - 11905: 0xE8EE, - 26689 - 11905: 0xE8EC, - 26690 - 11905: 0xB9F0, - 26691 - 11905: 0xCCD2, - 26692 - 11905: 0xE8E6, - 26693 - 11905: 0xCEA6, - 26694 - 11905: 0xBFF2, - 26695 - 11905: 0x96F4, - 26696 - 11905: 0xB0B8, - 26697 - 11905: 0xE8F1, - 26698 - 11905: 0xE8F0, - 26699 - 11905: 0x96F5, - 26700 - 11905: 0xD7C0, - 26701 - 11905: 0x96F6, - 26702 - 11905: 0xE8E4, - 26703 - 11905: 0x96F7, - 26704 - 11905: 0xCDA9, - 26705 - 11905: 0xC9A3, - 26706 - 11905: 0x96F8, - 26707 - 11905: 0xBBB8, - 26708 - 11905: 0xBDDB, - 26709 - 11905: 0xE8EA, - 26710 - 11905: 0x96F9, - 26711 - 11905: 0x96FA, - 26712 - 11905: 0x96FB, - 26713 - 11905: 0x96FC, - 26714 - 11905: 0x96FD, - 26715 - 11905: 0x96FE, - 26716 - 11905: 0x9740, - 26717 - 11905: 0x9741, - 26718 - 11905: 0x9742, - 26719 - 11905: 0x9743, - 26720 - 11905: 0xE8E2, - 26721 - 11905: 0xE8E3, - 26722 - 11905: 0xE8E5, - 26723 - 11905: 0xB5B5, - 26724 - 11905: 0xE8E7, - 26725 - 11905: 0xC7C5, - 26726 - 11905: 0xE8EB, - 26727 - 11905: 0xE8ED, - 26728 - 11905: 0xBDB0, - 26729 - 11905: 0xD7AE, - 26730 - 11905: 0x9744, - 26731 - 11905: 0xE8F8, - 26732 - 11905: 0x9745, - 26733 - 11905: 0x9746, - 26734 - 11905: 0x9747, - 26735 - 11905: 0x9748, - 26736 - 11905: 0x9749, - 26737 - 11905: 0x974A, - 26738 - 11905: 0x974B, - 26739 - 11905: 0x974C, - 26740 - 11905: 0xE8F5, - 26741 - 11905: 0x974D, - 26742 - 11905: 0xCDB0, - 26743 - 11905: 0xE8F6, - 26744 - 11905: 0x974E, - 26745 - 11905: 0x974F, - 26746 - 11905: 0x9750, - 26747 - 11905: 0x9751, - 26748 - 11905: 0x9752, - 26749 - 11905: 0x9753, - 26750 - 11905: 0x9754, - 26751 - 11905: 0x9755, - 26752 - 11905: 0x9756, - 26753 - 11905: 0xC1BA, - 26754 - 11905: 0x9757, - 26755 - 11905: 0xE8E8, - 26756 - 11905: 0x9758, - 26757 - 11905: 0xC3B7, - 26758 - 11905: 0xB0F0, - 26759 - 11905: 0x9759, - 26760 - 11905: 0x975A, - 26761 - 11905: 0x975B, - 26762 - 11905: 0x975C, - 26763 - 11905: 0x975D, - 26764 - 11905: 0x975E, - 26765 - 11905: 0x975F, - 26766 - 11905: 0x9760, - 26767 - 11905: 0xE8F4, - 26768 - 11905: 0x9761, - 26769 - 11905: 0x9762, - 26770 - 11905: 0x9763, - 26771 - 11905: 0xE8F7, - 26772 - 11905: 0x9764, - 26773 - 11905: 0x9765, - 26774 - 11905: 0x9766, - 26775 - 11905: 0xB9A3, - 26776 - 11905: 0x9767, - 26777 - 11905: 0x9768, - 26778 - 11905: 0x9769, - 26779 - 11905: 0x976A, - 26780 - 11905: 0x976B, - 26781 - 11905: 0x976C, - 26782 - 11905: 0x976D, - 26783 - 11905: 0x976E, - 26784 - 11905: 0x976F, - 26785 - 11905: 0x9770, - 26786 - 11905: 0xC9D2, - 26787 - 11905: 0x9771, - 26788 - 11905: 0x9772, - 26789 - 11905: 0x9773, - 26790 - 11905: 0xC3CE, - 26791 - 11905: 0xCEE0, - 26792 - 11905: 0xC0E6, - 26793 - 11905: 0x9774, - 26794 - 11905: 0x9775, - 26795 - 11905: 0x9776, - 26796 - 11905: 0x9777, - 26797 - 11905: 0xCBF3, - 26798 - 11905: 0x9778, - 26799 - 11905: 0xCCDD, - 26800 - 11905: 0xD0B5, - 26801 - 11905: 0x9779, - 26802 - 11905: 0x977A, - 26803 - 11905: 0xCAE1, - 26804 - 11905: 0x977B, - 26805 - 11905: 0xE8F3, - 26806 - 11905: 0x977C, - 26807 - 11905: 0x977D, - 26808 - 11905: 0x977E, - 26809 - 11905: 0x9780, - 26810 - 11905: 0x9781, - 26811 - 11905: 0x9782, - 26812 - 11905: 0x9783, - 26813 - 11905: 0x9784, - 26814 - 11905: 0x9785, - 26815 - 11905: 0x9786, - 26816 - 11905: 0xBCEC, - 26817 - 11905: 0x9787, - 26818 - 11905: 0xE8F9, - 26819 - 11905: 0x9788, - 26820 - 11905: 0x9789, - 26821 - 11905: 0x978A, - 26822 - 11905: 0x978B, - 26823 - 11905: 0x978C, - 26824 - 11905: 0x978D, - 26825 - 11905: 0xC3DE, - 26826 - 11905: 0x978E, - 26827 - 11905: 0xC6E5, - 26828 - 11905: 0x978F, - 26829 - 11905: 0xB9F7, - 26830 - 11905: 0x9790, - 26831 - 11905: 0x9791, - 26832 - 11905: 0x9792, - 26833 - 11905: 0x9793, - 26834 - 11905: 0xB0F4, - 26835 - 11905: 0x9794, - 26836 - 11905: 0x9795, - 26837 - 11905: 0xD7D8, - 26838 - 11905: 0x9796, - 26839 - 11905: 0x9797, - 26840 - 11905: 0xBCAC, - 26841 - 11905: 0x9798, - 26842 - 11905: 0xC5EF, - 26843 - 11905: 0x9799, - 26844 - 11905: 0x979A, - 26845 - 11905: 0x979B, - 26846 - 11905: 0x979C, - 26847 - 11905: 0x979D, - 26848 - 11905: 0xCCC4, - 26849 - 11905: 0x979E, - 26850 - 11905: 0x979F, - 26851 - 11905: 0xE9A6, - 26852 - 11905: 0x97A0, - 26853 - 11905: 0x97A1, - 26854 - 11905: 0x97A2, - 26855 - 11905: 0x97A3, - 26856 - 11905: 0x97A4, - 26857 - 11905: 0x97A5, - 26858 - 11905: 0x97A6, - 26859 - 11905: 0x97A7, - 26860 - 11905: 0x97A8, - 26861 - 11905: 0x97A9, - 26862 - 11905: 0xC9AD, - 26863 - 11905: 0x97AA, - 26864 - 11905: 0xE9A2, - 26865 - 11905: 0xC0E2, - 26866 - 11905: 0x97AB, - 26867 - 11905: 0x97AC, - 26868 - 11905: 0x97AD, - 26869 - 11905: 0xBFC3, - 26870 - 11905: 0x97AE, - 26871 - 11905: 0x97AF, - 26872 - 11905: 0x97B0, - 26873 - 11905: 0xE8FE, - 26874 - 11905: 0xB9D7, - 26875 - 11905: 0x97B1, - 26876 - 11905: 0xE8FB, - 26877 - 11905: 0x97B2, - 26878 - 11905: 0x97B3, - 26879 - 11905: 0x97B4, - 26880 - 11905: 0x97B5, - 26881 - 11905: 0xE9A4, - 26882 - 11905: 0x97B6, - 26883 - 11905: 0x97B7, - 26884 - 11905: 0x97B8, - 26885 - 11905: 0xD2CE, - 26886 - 11905: 0x97B9, - 26887 - 11905: 0x97BA, - 26888 - 11905: 0x97BB, - 26889 - 11905: 0x97BC, - 26890 - 11905: 0x97BD, - 26891 - 11905: 0xE9A3, - 26892 - 11905: 0x97BE, - 26893 - 11905: 0xD6B2, - 26894 - 11905: 0xD7B5, - 26895 - 11905: 0x97BF, - 26896 - 11905: 0xE9A7, - 26897 - 11905: 0x97C0, - 26898 - 11905: 0xBDB7, - 26899 - 11905: 0x97C1, - 26900 - 11905: 0x97C2, - 26901 - 11905: 0x97C3, - 26902 - 11905: 0x97C4, - 26903 - 11905: 0x97C5, - 26904 - 11905: 0x97C6, - 26905 - 11905: 0x97C7, - 26906 - 11905: 0x97C8, - 26907 - 11905: 0x97C9, - 26908 - 11905: 0x97CA, - 26909 - 11905: 0x97CB, - 26910 - 11905: 0x97CC, - 26911 - 11905: 0xE8FC, - 26912 - 11905: 0xE8FD, - 26913 - 11905: 0x97CD, - 26914 - 11905: 0x97CE, - 26915 - 11905: 0x97CF, - 26916 - 11905: 0xE9A1, - 26917 - 11905: 0x97D0, - 26918 - 11905: 0x97D1, - 26919 - 11905: 0x97D2, - 26920 - 11905: 0x97D3, - 26921 - 11905: 0x97D4, - 26922 - 11905: 0x97D5, - 26923 - 11905: 0x97D6, - 26924 - 11905: 0x97D7, - 26925 - 11905: 0xCDD6, - 26926 - 11905: 0x97D8, - 26927 - 11905: 0x97D9, - 26928 - 11905: 0xD2AC, - 26929 - 11905: 0x97DA, - 26930 - 11905: 0x97DB, - 26931 - 11905: 0x97DC, - 26932 - 11905: 0xE9B2, - 26933 - 11905: 0x97DD, - 26934 - 11905: 0x97DE, - 26935 - 11905: 0x97DF, - 26936 - 11905: 0x97E0, - 26937 - 11905: 0xE9A9, - 26938 - 11905: 0x97E1, - 26939 - 11905: 0x97E2, - 26940 - 11905: 0x97E3, - 26941 - 11905: 0xB4AA, - 26942 - 11905: 0x97E4, - 26943 - 11905: 0xB4BB, - 26944 - 11905: 0x97E5, - 26945 - 11905: 0x97E6, - 26946 - 11905: 0xE9AB, - 26947 - 11905: 0x97E7, - 26948 - 11905: 0x97E8, - 26949 - 11905: 0x97E9, - 26950 - 11905: 0x97EA, - 26951 - 11905: 0x97EB, - 26952 - 11905: 0x97EC, - 26953 - 11905: 0x97ED, - 26954 - 11905: 0x97EE, - 26955 - 11905: 0x97EF, - 26956 - 11905: 0x97F0, - 26957 - 11905: 0x97F1, - 26958 - 11905: 0x97F2, - 26959 - 11905: 0x97F3, - 26960 - 11905: 0x97F4, - 26961 - 11905: 0x97F5, - 26962 - 11905: 0x97F6, - 26963 - 11905: 0x97F7, - 26964 - 11905: 0xD0A8, - 26965 - 11905: 0x97F8, - 26966 - 11905: 0x97F9, - 26967 - 11905: 0xE9A5, - 26968 - 11905: 0x97FA, - 26969 - 11905: 0x97FB, - 26970 - 11905: 0xB3FE, - 26971 - 11905: 0x97FC, - 26972 - 11905: 0x97FD, - 26973 - 11905: 0xE9AC, - 26974 - 11905: 0xC0E3, - 26975 - 11905: 0x97FE, - 26976 - 11905: 0xE9AA, - 26977 - 11905: 0x9840, - 26978 - 11905: 0x9841, - 26979 - 11905: 0xE9B9, - 26980 - 11905: 0x9842, - 26981 - 11905: 0x9843, - 26982 - 11905: 0xE9B8, - 26983 - 11905: 0x9844, - 26984 - 11905: 0x9845, - 26985 - 11905: 0x9846, - 26986 - 11905: 0x9847, - 26987 - 11905: 0xE9AE, - 26988 - 11905: 0x9848, - 26989 - 11905: 0x9849, - 26990 - 11905: 0xE8FA, - 26991 - 11905: 0x984A, - 26992 - 11905: 0x984B, - 26993 - 11905: 0xE9A8, - 26994 - 11905: 0x984C, - 26995 - 11905: 0x984D, - 26996 - 11905: 0x984E, - 26997 - 11905: 0x984F, - 26998 - 11905: 0x9850, - 26999 - 11905: 0xBFAC, - 27000 - 11905: 0xE9B1, - 27001 - 11905: 0xE9BA, - 27002 - 11905: 0x9851, - 27003 - 11905: 0x9852, - 27004 - 11905: 0xC2A5, - 27005 - 11905: 0x9853, - 27006 - 11905: 0x9854, - 27007 - 11905: 0x9855, - 27008 - 11905: 0xE9AF, - 27009 - 11905: 0x9856, - 27010 - 11905: 0xB8C5, - 27011 - 11905: 0x9857, - 27012 - 11905: 0xE9AD, - 27013 - 11905: 0x9858, - 27014 - 11905: 0xD3DC, - 27015 - 11905: 0xE9B4, - 27016 - 11905: 0xE9B5, - 27017 - 11905: 0xE9B7, - 27018 - 11905: 0x9859, - 27019 - 11905: 0x985A, - 27020 - 11905: 0x985B, - 27021 - 11905: 0xE9C7, - 27022 - 11905: 0x985C, - 27023 - 11905: 0x985D, - 27024 - 11905: 0x985E, - 27025 - 11905: 0x985F, - 27026 - 11905: 0x9860, - 27027 - 11905: 0x9861, - 27028 - 11905: 0xC0C6, - 27029 - 11905: 0xE9C5, - 27030 - 11905: 0x9862, - 27031 - 11905: 0x9863, - 27032 - 11905: 0xE9B0, - 27033 - 11905: 0x9864, - 27034 - 11905: 0x9865, - 27035 - 11905: 0xE9BB, - 27036 - 11905: 0xB0F1, - 27037 - 11905: 0x9866, - 27038 - 11905: 0x9867, - 27039 - 11905: 0x9868, - 27040 - 11905: 0x9869, - 27041 - 11905: 0x986A, - 27042 - 11905: 0x986B, - 27043 - 11905: 0x986C, - 27044 - 11905: 0x986D, - 27045 - 11905: 0x986E, - 27046 - 11905: 0x986F, - 27047 - 11905: 0xE9BC, - 27048 - 11905: 0xD5A5, - 27049 - 11905: 0x9870, - 27050 - 11905: 0x9871, - 27051 - 11905: 0xE9BE, - 27052 - 11905: 0x9872, - 27053 - 11905: 0xE9BF, - 27054 - 11905: 0x9873, - 27055 - 11905: 0x9874, - 27056 - 11905: 0x9875, - 27057 - 11905: 0xE9C1, - 27058 - 11905: 0x9876, - 27059 - 11905: 0x9877, - 27060 - 11905: 0xC1F1, - 27061 - 11905: 0x9878, - 27062 - 11905: 0x9879, - 27063 - 11905: 0xC8B6, - 27064 - 11905: 0x987A, - 27065 - 11905: 0x987B, - 27066 - 11905: 0x987C, - 27067 - 11905: 0xE9BD, - 27068 - 11905: 0x987D, - 27069 - 11905: 0x987E, - 27070 - 11905: 0x9880, - 27071 - 11905: 0x9881, - 27072 - 11905: 0x9882, - 27073 - 11905: 0xE9C2, - 27074 - 11905: 0x9883, - 27075 - 11905: 0x9884, - 27076 - 11905: 0x9885, - 27077 - 11905: 0x9886, - 27078 - 11905: 0x9887, - 27079 - 11905: 0x9888, - 27080 - 11905: 0x9889, - 27081 - 11905: 0x988A, - 27082 - 11905: 0xE9C3, - 27083 - 11905: 0x988B, - 27084 - 11905: 0xE9B3, - 27085 - 11905: 0x988C, - 27086 - 11905: 0xE9B6, - 27087 - 11905: 0x988D, - 27088 - 11905: 0xBBB1, - 27089 - 11905: 0x988E, - 27090 - 11905: 0x988F, - 27091 - 11905: 0x9890, - 27092 - 11905: 0xE9C0, - 27093 - 11905: 0x9891, - 27094 - 11905: 0x9892, - 27095 - 11905: 0x9893, - 27096 - 11905: 0x9894, - 27097 - 11905: 0x9895, - 27098 - 11905: 0x9896, - 27099 - 11905: 0xBCF7, - 27100 - 11905: 0x9897, - 27101 - 11905: 0x9898, - 27102 - 11905: 0x9899, - 27103 - 11905: 0xE9C4, - 27104 - 11905: 0xE9C6, - 27105 - 11905: 0x989A, - 27106 - 11905: 0x989B, - 27107 - 11905: 0x989C, - 27108 - 11905: 0x989D, - 27109 - 11905: 0x989E, - 27110 - 11905: 0x989F, - 27111 - 11905: 0x98A0, - 27112 - 11905: 0x98A1, - 27113 - 11905: 0x98A2, - 27114 - 11905: 0x98A3, - 27115 - 11905: 0x98A4, - 27116 - 11905: 0x98A5, - 27117 - 11905: 0xE9CA, - 27118 - 11905: 0x98A6, - 27119 - 11905: 0x98A7, - 27120 - 11905: 0x98A8, - 27121 - 11905: 0x98A9, - 27122 - 11905: 0xE9CE, - 27123 - 11905: 0x98AA, - 27124 - 11905: 0x98AB, - 27125 - 11905: 0x98AC, - 27126 - 11905: 0x98AD, - 27127 - 11905: 0x98AE, - 27128 - 11905: 0x98AF, - 27129 - 11905: 0x98B0, - 27130 - 11905: 0x98B1, - 27131 - 11905: 0x98B2, - 27132 - 11905: 0x98B3, - 27133 - 11905: 0xB2DB, - 27134 - 11905: 0x98B4, - 27135 - 11905: 0xE9C8, - 27136 - 11905: 0x98B5, - 27137 - 11905: 0x98B6, - 27138 - 11905: 0x98B7, - 27139 - 11905: 0x98B8, - 27140 - 11905: 0x98B9, - 27141 - 11905: 0x98BA, - 27142 - 11905: 0x98BB, - 27143 - 11905: 0x98BC, - 27144 - 11905: 0x98BD, - 27145 - 11905: 0x98BE, - 27146 - 11905: 0xB7AE, - 27147 - 11905: 0x98BF, - 27148 - 11905: 0x98C0, - 27149 - 11905: 0x98C1, - 27150 - 11905: 0x98C2, - 27151 - 11905: 0x98C3, - 27152 - 11905: 0x98C4, - 27153 - 11905: 0x98C5, - 27154 - 11905: 0x98C6, - 27155 - 11905: 0x98C7, - 27156 - 11905: 0x98C8, - 27157 - 11905: 0x98C9, - 27158 - 11905: 0x98CA, - 27159 - 11905: 0xE9CB, - 27160 - 11905: 0xE9CC, - 27161 - 11905: 0x98CB, - 27162 - 11905: 0x98CC, - 27163 - 11905: 0x98CD, - 27164 - 11905: 0x98CE, - 27165 - 11905: 0x98CF, - 27166 - 11905: 0x98D0, - 27167 - 11905: 0xD5C1, - 27168 - 11905: 0x98D1, - 27169 - 11905: 0xC4A3, - 27170 - 11905: 0x98D2, - 27171 - 11905: 0x98D3, - 27172 - 11905: 0x98D4, - 27173 - 11905: 0x98D5, - 27174 - 11905: 0x98D6, - 27175 - 11905: 0x98D7, - 27176 - 11905: 0xE9D8, - 27177 - 11905: 0x98D8, - 27178 - 11905: 0xBAE1, - 27179 - 11905: 0x98D9, - 27180 - 11905: 0x98DA, - 27181 - 11905: 0x98DB, - 27182 - 11905: 0x98DC, - 27183 - 11905: 0xE9C9, - 27184 - 11905: 0x98DD, - 27185 - 11905: 0xD3A3, - 27186 - 11905: 0x98DE, - 27187 - 11905: 0x98DF, - 27188 - 11905: 0x98E0, - 27189 - 11905: 0xE9D4, - 27190 - 11905: 0x98E1, - 27191 - 11905: 0x98E2, - 27192 - 11905: 0x98E3, - 27193 - 11905: 0x98E4, - 27194 - 11905: 0x98E5, - 27195 - 11905: 0x98E6, - 27196 - 11905: 0x98E7, - 27197 - 11905: 0xE9D7, - 27198 - 11905: 0xE9D0, - 27199 - 11905: 0x98E8, - 27200 - 11905: 0x98E9, - 27201 - 11905: 0x98EA, - 27202 - 11905: 0x98EB, - 27203 - 11905: 0x98EC, - 27204 - 11905: 0xE9CF, - 27205 - 11905: 0x98ED, - 27206 - 11905: 0x98EE, - 27207 - 11905: 0xC7C1, - 27208 - 11905: 0x98EF, - 27209 - 11905: 0x98F0, - 27210 - 11905: 0x98F1, - 27211 - 11905: 0x98F2, - 27212 - 11905: 0x98F3, - 27213 - 11905: 0x98F4, - 27214 - 11905: 0x98F5, - 27215 - 11905: 0x98F6, - 27216 - 11905: 0xE9D2, - 27217 - 11905: 0x98F7, - 27218 - 11905: 0x98F8, - 27219 - 11905: 0x98F9, - 27220 - 11905: 0x98FA, - 27221 - 11905: 0x98FB, - 27222 - 11905: 0x98FC, - 27223 - 11905: 0x98FD, - 27224 - 11905: 0xE9D9, - 27225 - 11905: 0xB3C8, - 27226 - 11905: 0x98FE, - 27227 - 11905: 0xE9D3, - 27228 - 11905: 0x9940, - 27229 - 11905: 0x9941, - 27230 - 11905: 0x9942, - 27231 - 11905: 0x9943, - 27232 - 11905: 0x9944, - 27233 - 11905: 0xCFF0, - 27234 - 11905: 0x9945, - 27235 - 11905: 0x9946, - 27236 - 11905: 0x9947, - 27237 - 11905: 0xE9CD, - 27238 - 11905: 0x9948, - 27239 - 11905: 0x9949, - 27240 - 11905: 0x994A, - 27241 - 11905: 0x994B, - 27242 - 11905: 0x994C, - 27243 - 11905: 0x994D, - 27244 - 11905: 0x994E, - 27245 - 11905: 0x994F, - 27246 - 11905: 0x9950, - 27247 - 11905: 0x9951, - 27248 - 11905: 0x9952, - 27249 - 11905: 0xB3F7, - 27250 - 11905: 0x9953, - 27251 - 11905: 0x9954, - 27252 - 11905: 0x9955, - 27253 - 11905: 0x9956, - 27254 - 11905: 0x9957, - 27255 - 11905: 0x9958, - 27256 - 11905: 0x9959, - 27257 - 11905: 0xE9D6, - 27258 - 11905: 0x995A, - 27259 - 11905: 0x995B, - 27260 - 11905: 0xE9DA, - 27261 - 11905: 0x995C, - 27262 - 11905: 0x995D, - 27263 - 11905: 0x995E, - 27264 - 11905: 0xCCB4, - 27265 - 11905: 0x995F, - 27266 - 11905: 0x9960, - 27267 - 11905: 0x9961, - 27268 - 11905: 0xCFAD, - 27269 - 11905: 0x9962, - 27270 - 11905: 0x9963, - 27271 - 11905: 0x9964, - 27272 - 11905: 0x9965, - 27273 - 11905: 0x9966, - 27274 - 11905: 0x9967, - 27275 - 11905: 0x9968, - 27276 - 11905: 0x9969, - 27277 - 11905: 0x996A, - 27278 - 11905: 0xE9D5, - 27279 - 11905: 0x996B, - 27280 - 11905: 0xE9DC, - 27281 - 11905: 0xE9DB, - 27282 - 11905: 0x996C, - 27283 - 11905: 0x996D, - 27284 - 11905: 0x996E, - 27285 - 11905: 0x996F, - 27286 - 11905: 0x9970, - 27287 - 11905: 0xE9DE, - 27288 - 11905: 0x9971, - 27289 - 11905: 0x9972, - 27290 - 11905: 0x9973, - 27291 - 11905: 0x9974, - 27292 - 11905: 0x9975, - 27293 - 11905: 0x9976, - 27294 - 11905: 0x9977, - 27295 - 11905: 0x9978, - 27296 - 11905: 0xE9D1, - 27297 - 11905: 0x9979, - 27298 - 11905: 0x997A, - 27299 - 11905: 0x997B, - 27300 - 11905: 0x997C, - 27301 - 11905: 0x997D, - 27302 - 11905: 0x997E, - 27303 - 11905: 0x9980, - 27304 - 11905: 0x9981, - 27305 - 11905: 0xE9DD, - 27306 - 11905: 0x9982, - 27307 - 11905: 0xE9DF, - 27308 - 11905: 0xC3CA, - 27309 - 11905: 0x9983, - 27310 - 11905: 0x9984, - 27311 - 11905: 0x9985, - 27312 - 11905: 0x9986, - 27313 - 11905: 0x9987, - 27314 - 11905: 0x9988, - 27315 - 11905: 0x9989, - 27316 - 11905: 0x998A, - 27317 - 11905: 0x998B, - 27318 - 11905: 0x998C, - 27319 - 11905: 0x998D, - 27320 - 11905: 0x998E, - 27321 - 11905: 0x998F, - 27322 - 11905: 0x9990, - 27323 - 11905: 0x9991, - 27324 - 11905: 0x9992, - 27325 - 11905: 0x9993, - 27326 - 11905: 0x9994, - 27327 - 11905: 0x9995, - 27328 - 11905: 0x9996, - 27329 - 11905: 0x9997, - 27330 - 11905: 0x9998, - 27331 - 11905: 0x9999, - 27332 - 11905: 0x999A, - 27333 - 11905: 0x999B, - 27334 - 11905: 0x999C, - 27335 - 11905: 0x999D, - 27336 - 11905: 0x999E, - 27337 - 11905: 0x999F, - 27338 - 11905: 0x99A0, - 27339 - 11905: 0x99A1, - 27340 - 11905: 0x99A2, - 27341 - 11905: 0x99A3, - 27342 - 11905: 0x99A4, - 27343 - 11905: 0x99A5, - 27344 - 11905: 0x99A6, - 27345 - 11905: 0x99A7, - 27346 - 11905: 0x99A8, - 27347 - 11905: 0x99A9, - 27348 - 11905: 0x99AA, - 27349 - 11905: 0x99AB, - 27350 - 11905: 0x99AC, - 27351 - 11905: 0x99AD, - 27352 - 11905: 0x99AE, - 27353 - 11905: 0x99AF, - 27354 - 11905: 0x99B0, - 27355 - 11905: 0x99B1, - 27356 - 11905: 0x99B2, - 27357 - 11905: 0x99B3, - 27358 - 11905: 0x99B4, - 27359 - 11905: 0x99B5, - 27360 - 11905: 0x99B6, - 27361 - 11905: 0x99B7, - 27362 - 11905: 0x99B8, - 27363 - 11905: 0x99B9, - 27364 - 11905: 0x99BA, - 27365 - 11905: 0x99BB, - 27366 - 11905: 0x99BC, - 27367 - 11905: 0x99BD, - 27368 - 11905: 0x99BE, - 27369 - 11905: 0x99BF, - 27370 - 11905: 0x99C0, - 27371 - 11905: 0x99C1, - 27372 - 11905: 0x99C2, - 27373 - 11905: 0x99C3, - 27374 - 11905: 0x99C4, - 27375 - 11905: 0x99C5, - 27376 - 11905: 0x99C6, - 27377 - 11905: 0x99C7, - 27378 - 11905: 0x99C8, - 27379 - 11905: 0x99C9, - 27380 - 11905: 0x99CA, - 27381 - 11905: 0x99CB, - 27382 - 11905: 0x99CC, - 27383 - 11905: 0x99CD, - 27384 - 11905: 0x99CE, - 27385 - 11905: 0x99CF, - 27386 - 11905: 0x99D0, - 27387 - 11905: 0x99D1, - 27388 - 11905: 0x99D2, - 27389 - 11905: 0x99D3, - 27390 - 11905: 0x99D4, - 27391 - 11905: 0x99D5, - 27392 - 11905: 0x99D6, - 27393 - 11905: 0x99D7, - 27394 - 11905: 0x99D8, - 27395 - 11905: 0x99D9, - 27396 - 11905: 0x99DA, - 27397 - 11905: 0x99DB, - 27398 - 11905: 0x99DC, - 27399 - 11905: 0x99DD, - 27400 - 11905: 0x99DE, - 27401 - 11905: 0x99DF, - 27402 - 11905: 0x99E0, - 27403 - 11905: 0x99E1, - 27404 - 11905: 0x99E2, - 27405 - 11905: 0x99E3, - 27406 - 11905: 0x99E4, - 27407 - 11905: 0x99E5, - 27408 - 11905: 0x99E6, - 27409 - 11905: 0x99E7, - 27410 - 11905: 0x99E8, - 27411 - 11905: 0x99E9, - 27412 - 11905: 0x99EA, - 27413 - 11905: 0x99EB, - 27414 - 11905: 0x99EC, - 27415 - 11905: 0x99ED, - 27416 - 11905: 0x99EE, - 27417 - 11905: 0x99EF, - 27418 - 11905: 0x99F0, - 27419 - 11905: 0x99F1, - 27420 - 11905: 0x99F2, - 27421 - 11905: 0x99F3, - 27422 - 11905: 0x99F4, - 27423 - 11905: 0x99F5, - 27424 - 11905: 0xC7B7, - 27425 - 11905: 0xB4CE, - 27426 - 11905: 0xBBB6, - 27427 - 11905: 0xD0C0, - 27428 - 11905: 0xECA3, - 27429 - 11905: 0x99F6, - 27430 - 11905: 0x99F7, - 27431 - 11905: 0xC5B7, - 27432 - 11905: 0x99F8, - 27433 - 11905: 0x99F9, - 27434 - 11905: 0x99FA, - 27435 - 11905: 0x99FB, - 27436 - 11905: 0x99FC, - 27437 - 11905: 0x99FD, - 27438 - 11905: 0x99FE, - 27439 - 11905: 0x9A40, - 27440 - 11905: 0x9A41, - 27441 - 11905: 0x9A42, - 27442 - 11905: 0xD3FB, - 27443 - 11905: 0x9A43, - 27444 - 11905: 0x9A44, - 27445 - 11905: 0x9A45, - 27446 - 11905: 0x9A46, - 27447 - 11905: 0xECA4, - 27448 - 11905: 0x9A47, - 27449 - 11905: 0xECA5, - 27450 - 11905: 0xC6DB, - 27451 - 11905: 0x9A48, - 27452 - 11905: 0x9A49, - 27453 - 11905: 0x9A4A, - 27454 - 11905: 0xBFEE, - 27455 - 11905: 0x9A4B, - 27456 - 11905: 0x9A4C, - 27457 - 11905: 0x9A4D, - 27458 - 11905: 0x9A4E, - 27459 - 11905: 0xECA6, - 27460 - 11905: 0x9A4F, - 27461 - 11905: 0x9A50, - 27462 - 11905: 0xECA7, - 27463 - 11905: 0xD0AA, - 27464 - 11905: 0x9A51, - 27465 - 11905: 0xC7B8, - 27466 - 11905: 0x9A52, - 27467 - 11905: 0x9A53, - 27468 - 11905: 0xB8E8, - 27469 - 11905: 0x9A54, - 27470 - 11905: 0x9A55, - 27471 - 11905: 0x9A56, - 27472 - 11905: 0x9A57, - 27473 - 11905: 0x9A58, - 27474 - 11905: 0x9A59, - 27475 - 11905: 0x9A5A, - 27476 - 11905: 0x9A5B, - 27477 - 11905: 0x9A5C, - 27478 - 11905: 0x9A5D, - 27479 - 11905: 0x9A5E, - 27480 - 11905: 0x9A5F, - 27481 - 11905: 0xECA8, - 27482 - 11905: 0x9A60, - 27483 - 11905: 0x9A61, - 27484 - 11905: 0x9A62, - 27485 - 11905: 0x9A63, - 27486 - 11905: 0x9A64, - 27487 - 11905: 0x9A65, - 27488 - 11905: 0x9A66, - 27489 - 11905: 0x9A67, - 27490 - 11905: 0xD6B9, - 27491 - 11905: 0xD5FD, - 27492 - 11905: 0xB4CB, - 27493 - 11905: 0xB2BD, - 27494 - 11905: 0xCEE4, - 27495 - 11905: 0xC6E7, - 27496 - 11905: 0x9A68, - 27497 - 11905: 0x9A69, - 27498 - 11905: 0xCDE1, - 27499 - 11905: 0x9A6A, - 27500 - 11905: 0x9A6B, - 27501 - 11905: 0x9A6C, - 27502 - 11905: 0x9A6D, - 27503 - 11905: 0x9A6E, - 27504 - 11905: 0x9A6F, - 27505 - 11905: 0x9A70, - 27506 - 11905: 0x9A71, - 27507 - 11905: 0x9A72, - 27508 - 11905: 0x9A73, - 27509 - 11905: 0x9A74, - 27510 - 11905: 0x9A75, - 27511 - 11905: 0x9A76, - 27512 - 11905: 0x9A77, - 27513 - 11905: 0xB4F5, - 27514 - 11905: 0x9A78, - 27515 - 11905: 0xCBC0, - 27516 - 11905: 0xBCDF, - 27517 - 11905: 0x9A79, - 27518 - 11905: 0x9A7A, - 27519 - 11905: 0x9A7B, - 27520 - 11905: 0x9A7C, - 27521 - 11905: 0xE9E2, - 27522 - 11905: 0xE9E3, - 27523 - 11905: 0xD1EA, - 27524 - 11905: 0xE9E5, - 27525 - 11905: 0x9A7D, - 27526 - 11905: 0xB4F9, - 27527 - 11905: 0xE9E4, - 27528 - 11905: 0x9A7E, - 27529 - 11905: 0xD1B3, - 27530 - 11905: 0xCAE2, - 27531 - 11905: 0xB2D0, - 27532 - 11905: 0x9A80, - 27533 - 11905: 0xE9E8, - 27534 - 11905: 0x9A81, - 27535 - 11905: 0x9A82, - 27536 - 11905: 0x9A83, - 27537 - 11905: 0x9A84, - 27538 - 11905: 0xE9E6, - 27539 - 11905: 0xE9E7, - 27540 - 11905: 0x9A85, - 27541 - 11905: 0x9A86, - 27542 - 11905: 0xD6B3, - 27543 - 11905: 0x9A87, - 27544 - 11905: 0x9A88, - 27545 - 11905: 0x9A89, - 27546 - 11905: 0xE9E9, - 27547 - 11905: 0xE9EA, - 27548 - 11905: 0x9A8A, - 27549 - 11905: 0x9A8B, - 27550 - 11905: 0x9A8C, - 27551 - 11905: 0x9A8D, - 27552 - 11905: 0x9A8E, - 27553 - 11905: 0xE9EB, - 27554 - 11905: 0x9A8F, - 27555 - 11905: 0x9A90, - 27556 - 11905: 0x9A91, - 27557 - 11905: 0x9A92, - 27558 - 11905: 0x9A93, - 27559 - 11905: 0x9A94, - 27560 - 11905: 0x9A95, - 27561 - 11905: 0x9A96, - 27562 - 11905: 0xE9EC, - 27563 - 11905: 0x9A97, - 27564 - 11905: 0x9A98, - 27565 - 11905: 0x9A99, - 27566 - 11905: 0x9A9A, - 27567 - 11905: 0x9A9B, - 27568 - 11905: 0x9A9C, - 27569 - 11905: 0x9A9D, - 27570 - 11905: 0x9A9E, - 27571 - 11905: 0xECAF, - 27572 - 11905: 0xC5B9, - 27573 - 11905: 0xB6CE, - 27574 - 11905: 0x9A9F, - 27575 - 11905: 0xD2F3, - 27576 - 11905: 0x9AA0, - 27577 - 11905: 0x9AA1, - 27578 - 11905: 0x9AA2, - 27579 - 11905: 0x9AA3, - 27580 - 11905: 0x9AA4, - 27581 - 11905: 0x9AA5, - 27582 - 11905: 0x9AA6, - 27583 - 11905: 0xB5EE, - 27584 - 11905: 0x9AA7, - 27585 - 11905: 0xBBD9, - 27586 - 11905: 0xECB1, - 27587 - 11905: 0x9AA8, - 27588 - 11905: 0x9AA9, - 27589 - 11905: 0xD2E3, - 27590 - 11905: 0x9AAA, - 27591 - 11905: 0x9AAB, - 27592 - 11905: 0x9AAC, - 27593 - 11905: 0x9AAD, - 27594 - 11905: 0x9AAE, - 27595 - 11905: 0xCEE3, - 27596 - 11905: 0x9AAF, - 27597 - 11905: 0xC4B8, - 27598 - 11905: 0x9AB0, - 27599 - 11905: 0xC3BF, - 27600 - 11905: 0x9AB1, - 27601 - 11905: 0x9AB2, - 27602 - 11905: 0xB6BE, - 27603 - 11905: 0xD8B9, - 27604 - 11905: 0xB1C8, - 27605 - 11905: 0xB1CF, - 27606 - 11905: 0xB1D1, - 27607 - 11905: 0xC5FE, - 27608 - 11905: 0x9AB3, - 27609 - 11905: 0xB1D0, - 27610 - 11905: 0x9AB4, - 27611 - 11905: 0xC3AB, - 27612 - 11905: 0x9AB5, - 27613 - 11905: 0x9AB6, - 27614 - 11905: 0x9AB7, - 27615 - 11905: 0x9AB8, - 27616 - 11905: 0x9AB9, - 27617 - 11905: 0xD5B1, - 27618 - 11905: 0x9ABA, - 27619 - 11905: 0x9ABB, - 27620 - 11905: 0x9ABC, - 27621 - 11905: 0x9ABD, - 27622 - 11905: 0x9ABE, - 27623 - 11905: 0x9ABF, - 27624 - 11905: 0x9AC0, - 27625 - 11905: 0x9AC1, - 27626 - 11905: 0xEBA4, - 27627 - 11905: 0xBAC1, - 27628 - 11905: 0x9AC2, - 27629 - 11905: 0x9AC3, - 27630 - 11905: 0x9AC4, - 27631 - 11905: 0xCCBA, - 27632 - 11905: 0x9AC5, - 27633 - 11905: 0x9AC6, - 27634 - 11905: 0x9AC7, - 27635 - 11905: 0xEBA5, - 27636 - 11905: 0x9AC8, - 27637 - 11905: 0xEBA7, - 27638 - 11905: 0x9AC9, - 27639 - 11905: 0x9ACA, - 27640 - 11905: 0x9ACB, - 27641 - 11905: 0xEBA8, - 27642 - 11905: 0x9ACC, - 27643 - 11905: 0x9ACD, - 27644 - 11905: 0x9ACE, - 27645 - 11905: 0xEBA6, - 27646 - 11905: 0x9ACF, - 27647 - 11905: 0x9AD0, - 27648 - 11905: 0x9AD1, - 27649 - 11905: 0x9AD2, - 27650 - 11905: 0x9AD3, - 27651 - 11905: 0x9AD4, - 27652 - 11905: 0x9AD5, - 27653 - 11905: 0xEBA9, - 27654 - 11905: 0xEBAB, - 27655 - 11905: 0xEBAA, - 27656 - 11905: 0x9AD6, - 27657 - 11905: 0x9AD7, - 27658 - 11905: 0x9AD8, - 27659 - 11905: 0x9AD9, - 27660 - 11905: 0x9ADA, - 27661 - 11905: 0xEBAC, - 27662 - 11905: 0x9ADB, - 27663 - 11905: 0xCACF, - 27664 - 11905: 0xD8B5, - 27665 - 11905: 0xC3F1, - 27666 - 11905: 0x9ADC, - 27667 - 11905: 0xC3A5, - 27668 - 11905: 0xC6F8, - 27669 - 11905: 0xEBAD, - 27670 - 11905: 0xC4CA, - 27671 - 11905: 0x9ADD, - 27672 - 11905: 0xEBAE, - 27673 - 11905: 0xEBAF, - 27674 - 11905: 0xEBB0, - 27675 - 11905: 0xB7D5, - 27676 - 11905: 0x9ADE, - 27677 - 11905: 0x9ADF, - 27678 - 11905: 0x9AE0, - 27679 - 11905: 0xB7FA, - 27680 - 11905: 0x9AE1, - 27681 - 11905: 0xEBB1, - 27682 - 11905: 0xC7E2, - 27683 - 11905: 0x9AE2, - 27684 - 11905: 0xEBB3, - 27685 - 11905: 0x9AE3, - 27686 - 11905: 0xBAA4, - 27687 - 11905: 0xD1F5, - 27688 - 11905: 0xB0B1, - 27689 - 11905: 0xEBB2, - 27690 - 11905: 0xEBB4, - 27691 - 11905: 0x9AE4, - 27692 - 11905: 0x9AE5, - 27693 - 11905: 0x9AE6, - 27694 - 11905: 0xB5AA, - 27695 - 11905: 0xC2C8, - 27696 - 11905: 0xC7E8, - 27697 - 11905: 0x9AE7, - 27698 - 11905: 0xEBB5, - 27699 - 11905: 0x9AE8, - 27700 - 11905: 0xCBAE, - 27701 - 11905: 0xE3DF, - 27702 - 11905: 0x9AE9, - 27703 - 11905: 0x9AEA, - 27704 - 11905: 0xD3C0, - 27705 - 11905: 0x9AEB, - 27706 - 11905: 0x9AEC, - 27707 - 11905: 0x9AED, - 27708 - 11905: 0x9AEE, - 27709 - 11905: 0xD9DB, - 27710 - 11905: 0x9AEF, - 27711 - 11905: 0x9AF0, - 27712 - 11905: 0xCDA1, - 27713 - 11905: 0xD6AD, - 27714 - 11905: 0xC7F3, - 27715 - 11905: 0x9AF1, - 27716 - 11905: 0x9AF2, - 27717 - 11905: 0x9AF3, - 27718 - 11905: 0xD9E0, - 27719 - 11905: 0xBBE3, - 27720 - 11905: 0x9AF4, - 27721 - 11905: 0xBABA, - 27722 - 11905: 0xE3E2, - 27723 - 11905: 0x9AF5, - 27724 - 11905: 0x9AF6, - 27725 - 11905: 0x9AF7, - 27726 - 11905: 0x9AF8, - 27727 - 11905: 0x9AF9, - 27728 - 11905: 0xCFAB, - 27729 - 11905: 0x9AFA, - 27730 - 11905: 0x9AFB, - 27731 - 11905: 0x9AFC, - 27732 - 11905: 0xE3E0, - 27733 - 11905: 0xC9C7, - 27734 - 11905: 0x9AFD, - 27735 - 11905: 0xBAB9, - 27736 - 11905: 0x9AFE, - 27737 - 11905: 0x9B40, - 27738 - 11905: 0x9B41, - 27739 - 11905: 0xD1B4, - 27740 - 11905: 0xE3E1, - 27741 - 11905: 0xC8EA, - 27742 - 11905: 0xB9AF, - 27743 - 11905: 0xBDAD, - 27744 - 11905: 0xB3D8, - 27745 - 11905: 0xCEDB, - 27746 - 11905: 0x9B42, - 27747 - 11905: 0x9B43, - 27748 - 11905: 0xCCC0, - 27749 - 11905: 0x9B44, - 27750 - 11905: 0x9B45, - 27751 - 11905: 0x9B46, - 27752 - 11905: 0xE3E8, - 27753 - 11905: 0xE3E9, - 27754 - 11905: 0xCDF4, - 27755 - 11905: 0x9B47, - 27756 - 11905: 0x9B48, - 27757 - 11905: 0x9B49, - 27758 - 11905: 0x9B4A, - 27759 - 11905: 0x9B4B, - 27760 - 11905: 0xCCAD, - 27761 - 11905: 0x9B4C, - 27762 - 11905: 0xBCB3, - 27763 - 11905: 0x9B4D, - 27764 - 11905: 0xE3EA, - 27765 - 11905: 0x9B4E, - 27766 - 11905: 0xE3EB, - 27767 - 11905: 0x9B4F, - 27768 - 11905: 0x9B50, - 27769 - 11905: 0xD0DA, - 27770 - 11905: 0x9B51, - 27771 - 11905: 0x9B52, - 27772 - 11905: 0x9B53, - 27773 - 11905: 0xC6FB, - 27774 - 11905: 0xB7DA, - 27775 - 11905: 0x9B54, - 27776 - 11905: 0x9B55, - 27777 - 11905: 0xC7DF, - 27778 - 11905: 0xD2CA, - 27779 - 11905: 0xCED6, - 27780 - 11905: 0x9B56, - 27781 - 11905: 0xE3E4, - 27782 - 11905: 0xE3EC, - 27783 - 11905: 0x9B57, - 27784 - 11905: 0xC9F2, - 27785 - 11905: 0xB3C1, - 27786 - 11905: 0x9B58, - 27787 - 11905: 0x9B59, - 27788 - 11905: 0xE3E7, - 27789 - 11905: 0x9B5A, - 27790 - 11905: 0x9B5B, - 27791 - 11905: 0xC6E3, - 27792 - 11905: 0xE3E5, - 27793 - 11905: 0x9B5C, - 27794 - 11905: 0x9B5D, - 27795 - 11905: 0xEDB3, - 27796 - 11905: 0xE3E6, - 27797 - 11905: 0x9B5E, - 27798 - 11905: 0x9B5F, - 27799 - 11905: 0x9B60, - 27800 - 11905: 0x9B61, - 27801 - 11905: 0xC9B3, - 27802 - 11905: 0x9B62, - 27803 - 11905: 0xC5E6, - 27804 - 11905: 0x9B63, - 27805 - 11905: 0x9B64, - 27806 - 11905: 0x9B65, - 27807 - 11905: 0xB9B5, - 27808 - 11905: 0x9B66, - 27809 - 11905: 0xC3BB, - 27810 - 11905: 0x9B67, - 27811 - 11905: 0xE3E3, - 27812 - 11905: 0xC5BD, - 27813 - 11905: 0xC1A4, - 27814 - 11905: 0xC2D9, - 27815 - 11905: 0xB2D7, - 27816 - 11905: 0x9B68, - 27817 - 11905: 0xE3ED, - 27818 - 11905: 0xBBA6, - 27819 - 11905: 0xC4AD, - 27820 - 11905: 0x9B69, - 27821 - 11905: 0xE3F0, - 27822 - 11905: 0xBEDA, - 27823 - 11905: 0x9B6A, - 27824 - 11905: 0x9B6B, - 27825 - 11905: 0xE3FB, - 27826 - 11905: 0xE3F5, - 27827 - 11905: 0xBAD3, - 27828 - 11905: 0x9B6C, - 27829 - 11905: 0x9B6D, - 27830 - 11905: 0x9B6E, - 27831 - 11905: 0x9B6F, - 27832 - 11905: 0xB7D0, - 27833 - 11905: 0xD3CD, - 27834 - 11905: 0x9B70, - 27835 - 11905: 0xD6CE, - 27836 - 11905: 0xD5D3, - 27837 - 11905: 0xB9C1, - 27838 - 11905: 0xD5B4, - 27839 - 11905: 0xD1D8, - 27840 - 11905: 0x9B71, - 27841 - 11905: 0x9B72, - 27842 - 11905: 0x9B73, - 27843 - 11905: 0x9B74, - 27844 - 11905: 0xD0B9, - 27845 - 11905: 0xC7F6, - 27846 - 11905: 0x9B75, - 27847 - 11905: 0x9B76, - 27848 - 11905: 0x9B77, - 27849 - 11905: 0xC8AA, - 27850 - 11905: 0xB2B4, - 27851 - 11905: 0x9B78, - 27852 - 11905: 0xC3DA, - 27853 - 11905: 0x9B79, - 27854 - 11905: 0x9B7A, - 27855 - 11905: 0x9B7B, - 27856 - 11905: 0xE3EE, - 27857 - 11905: 0x9B7C, - 27858 - 11905: 0x9B7D, - 27859 - 11905: 0xE3FC, - 27860 - 11905: 0xE3EF, - 27861 - 11905: 0xB7A8, - 27862 - 11905: 0xE3F7, - 27863 - 11905: 0xE3F4, - 27864 - 11905: 0x9B7E, - 27865 - 11905: 0x9B80, - 27866 - 11905: 0x9B81, - 27867 - 11905: 0xB7BA, - 27868 - 11905: 0x9B82, - 27869 - 11905: 0x9B83, - 27870 - 11905: 0xC5A2, - 27871 - 11905: 0x9B84, - 27872 - 11905: 0xE3F6, - 27873 - 11905: 0xC5DD, - 27874 - 11905: 0xB2A8, - 27875 - 11905: 0xC6FC, - 27876 - 11905: 0x9B85, - 27877 - 11905: 0xC4E0, - 27878 - 11905: 0x9B86, - 27879 - 11905: 0x9B87, - 27880 - 11905: 0xD7A2, - 27881 - 11905: 0x9B88, - 27882 - 11905: 0xC0E1, - 27883 - 11905: 0xE3F9, - 27884 - 11905: 0x9B89, - 27885 - 11905: 0x9B8A, - 27886 - 11905: 0xE3FA, - 27887 - 11905: 0xE3FD, - 27888 - 11905: 0xCCA9, - 27889 - 11905: 0xE3F3, - 27890 - 11905: 0x9B8B, - 27891 - 11905: 0xD3BE, - 27892 - 11905: 0x9B8C, - 27893 - 11905: 0xB1C3, - 27894 - 11905: 0xEDB4, - 27895 - 11905: 0xE3F1, - 27896 - 11905: 0xE3F2, - 27897 - 11905: 0x9B8D, - 27898 - 11905: 0xE3F8, - 27899 - 11905: 0xD0BA, - 27900 - 11905: 0xC6C3, - 27901 - 11905: 0xD4F3, - 27902 - 11905: 0xE3FE, - 27903 - 11905: 0x9B8E, - 27904 - 11905: 0x9B8F, - 27905 - 11905: 0xBDE0, - 27906 - 11905: 0x9B90, - 27907 - 11905: 0x9B91, - 27908 - 11905: 0xE4A7, - 27909 - 11905: 0x9B92, - 27910 - 11905: 0x9B93, - 27911 - 11905: 0xE4A6, - 27912 - 11905: 0x9B94, - 27913 - 11905: 0x9B95, - 27914 - 11905: 0x9B96, - 27915 - 11905: 0xD1F3, - 27916 - 11905: 0xE4A3, - 27917 - 11905: 0x9B97, - 27918 - 11905: 0xE4A9, - 27919 - 11905: 0x9B98, - 27920 - 11905: 0x9B99, - 27921 - 11905: 0x9B9A, - 27922 - 11905: 0xC8F7, - 27923 - 11905: 0x9B9B, - 27924 - 11905: 0x9B9C, - 27925 - 11905: 0x9B9D, - 27926 - 11905: 0x9B9E, - 27927 - 11905: 0xCFB4, - 27928 - 11905: 0x9B9F, - 27929 - 11905: 0xE4A8, - 27930 - 11905: 0xE4AE, - 27931 - 11905: 0xC2E5, - 27932 - 11905: 0x9BA0, - 27933 - 11905: 0x9BA1, - 27934 - 11905: 0xB6B4, - 27935 - 11905: 0x9BA2, - 27936 - 11905: 0x9BA3, - 27937 - 11905: 0x9BA4, - 27938 - 11905: 0x9BA5, - 27939 - 11905: 0x9BA6, - 27940 - 11905: 0x9BA7, - 27941 - 11905: 0xBDF2, - 27942 - 11905: 0x9BA8, - 27943 - 11905: 0xE4A2, - 27944 - 11905: 0x9BA9, - 27945 - 11905: 0x9BAA, - 27946 - 11905: 0xBAE9, - 27947 - 11905: 0xE4AA, - 27948 - 11905: 0x9BAB, - 27949 - 11905: 0x9BAC, - 27950 - 11905: 0xE4AC, - 27951 - 11905: 0x9BAD, - 27952 - 11905: 0x9BAE, - 27953 - 11905: 0xB6FD, - 27954 - 11905: 0xD6DE, - 27955 - 11905: 0xE4B2, - 27956 - 11905: 0x9BAF, - 27957 - 11905: 0xE4AD, - 27958 - 11905: 0x9BB0, - 27959 - 11905: 0x9BB1, - 27960 - 11905: 0x9BB2, - 27961 - 11905: 0xE4A1, - 27962 - 11905: 0x9BB3, - 27963 - 11905: 0xBBEE, - 27964 - 11905: 0xCDDD, - 27965 - 11905: 0xC7A2, - 27966 - 11905: 0xC5C9, - 27967 - 11905: 0x9BB4, - 27968 - 11905: 0x9BB5, - 27969 - 11905: 0xC1F7, - 27970 - 11905: 0x9BB6, - 27971 - 11905: 0xE4A4, - 27972 - 11905: 0x9BB7, - 27973 - 11905: 0xC7B3, - 27974 - 11905: 0xBDAC, - 27975 - 11905: 0xBDBD, - 27976 - 11905: 0xE4A5, - 27977 - 11905: 0x9BB8, - 27978 - 11905: 0xD7C7, - 27979 - 11905: 0xB2E2, - 27980 - 11905: 0x9BB9, - 27981 - 11905: 0xE4AB, - 27982 - 11905: 0xBCC3, - 27983 - 11905: 0xE4AF, - 27984 - 11905: 0x9BBA, - 27985 - 11905: 0xBBEB, - 27986 - 11905: 0xE4B0, - 27987 - 11905: 0xC5A8, - 27988 - 11905: 0xE4B1, - 27989 - 11905: 0x9BBB, - 27990 - 11905: 0x9BBC, - 27991 - 11905: 0x9BBD, - 27992 - 11905: 0x9BBE, - 27993 - 11905: 0xD5E3, - 27994 - 11905: 0xBFA3, - 27995 - 11905: 0x9BBF, - 27996 - 11905: 0xE4BA, - 27997 - 11905: 0x9BC0, - 27998 - 11905: 0xE4B7, - 27999 - 11905: 0x9BC1, - 28000 - 11905: 0xE4BB, - 28001 - 11905: 0x9BC2, - 28002 - 11905: 0x9BC3, - 28003 - 11905: 0xE4BD, - 28004 - 11905: 0x9BC4, - 28005 - 11905: 0x9BC5, - 28006 - 11905: 0xC6D6, - 28007 - 11905: 0x9BC6, - 28008 - 11905: 0x9BC7, - 28009 - 11905: 0xBAC6, - 28010 - 11905: 0xC0CB, - 28011 - 11905: 0x9BC8, - 28012 - 11905: 0x9BC9, - 28013 - 11905: 0x9BCA, - 28014 - 11905: 0xB8A1, - 28015 - 11905: 0xE4B4, - 28016 - 11905: 0x9BCB, - 28017 - 11905: 0x9BCC, - 28018 - 11905: 0x9BCD, - 28019 - 11905: 0x9BCE, - 28020 - 11905: 0xD4A1, - 28021 - 11905: 0x9BCF, - 28022 - 11905: 0x9BD0, - 28023 - 11905: 0xBAA3, - 28024 - 11905: 0xBDFE, - 28025 - 11905: 0x9BD1, - 28026 - 11905: 0x9BD2, - 28027 - 11905: 0x9BD3, - 28028 - 11905: 0xE4BC, - 28029 - 11905: 0x9BD4, - 28030 - 11905: 0x9BD5, - 28031 - 11905: 0x9BD6, - 28032 - 11905: 0x9BD7, - 28033 - 11905: 0x9BD8, - 28034 - 11905: 0xCDBF, - 28035 - 11905: 0x9BD9, - 28036 - 11905: 0x9BDA, - 28037 - 11905: 0xC4F9, - 28038 - 11905: 0x9BDB, - 28039 - 11905: 0x9BDC, - 28040 - 11905: 0xCFFB, - 28041 - 11905: 0xC9E6, - 28042 - 11905: 0x9BDD, - 28043 - 11905: 0x9BDE, - 28044 - 11905: 0xD3BF, - 28045 - 11905: 0x9BDF, - 28046 - 11905: 0xCFD1, - 28047 - 11905: 0x9BE0, - 28048 - 11905: 0x9BE1, - 28049 - 11905: 0xE4B3, - 28050 - 11905: 0x9BE2, - 28051 - 11905: 0xE4B8, - 28052 - 11905: 0xE4B9, - 28053 - 11905: 0xCCE9, - 28054 - 11905: 0x9BE3, - 28055 - 11905: 0x9BE4, - 28056 - 11905: 0x9BE5, - 28057 - 11905: 0x9BE6, - 28058 - 11905: 0x9BE7, - 28059 - 11905: 0xCCCE, - 28060 - 11905: 0x9BE8, - 28061 - 11905: 0xC0D4, - 28062 - 11905: 0xE4B5, - 28063 - 11905: 0xC1B0, - 28064 - 11905: 0xE4B6, - 28065 - 11905: 0xCED0, - 28066 - 11905: 0x9BE9, - 28067 - 11905: 0xBBC1, - 28068 - 11905: 0xB5D3, - 28069 - 11905: 0x9BEA, - 28070 - 11905: 0xC8F3, - 28071 - 11905: 0xBDA7, - 28072 - 11905: 0xD5C7, - 28073 - 11905: 0xC9AC, - 28074 - 11905: 0xB8A2, - 28075 - 11905: 0xE4CA, - 28076 - 11905: 0x9BEB, - 28077 - 11905: 0x9BEC, - 28078 - 11905: 0xE4CC, - 28079 - 11905: 0xD1C4, - 28080 - 11905: 0x9BED, - 28081 - 11905: 0x9BEE, - 28082 - 11905: 0xD2BA, - 28083 - 11905: 0x9BEF, - 28084 - 11905: 0x9BF0, - 28085 - 11905: 0xBAAD, - 28086 - 11905: 0x9BF1, - 28087 - 11905: 0x9BF2, - 28088 - 11905: 0xBAD4, - 28089 - 11905: 0x9BF3, - 28090 - 11905: 0x9BF4, - 28091 - 11905: 0x9BF5, - 28092 - 11905: 0x9BF6, - 28093 - 11905: 0x9BF7, - 28094 - 11905: 0x9BF8, - 28095 - 11905: 0xE4C3, - 28096 - 11905: 0xB5ED, - 28097 - 11905: 0x9BF9, - 28098 - 11905: 0x9BFA, - 28099 - 11905: 0x9BFB, - 28100 - 11905: 0xD7CD, - 28101 - 11905: 0xE4C0, - 28102 - 11905: 0xCFFD, - 28103 - 11905: 0xE4BF, - 28104 - 11905: 0x9BFC, - 28105 - 11905: 0x9BFD, - 28106 - 11905: 0x9BFE, - 28107 - 11905: 0xC1DC, - 28108 - 11905: 0xCCCA, - 28109 - 11905: 0x9C40, - 28110 - 11905: 0x9C41, - 28111 - 11905: 0x9C42, - 28112 - 11905: 0x9C43, - 28113 - 11905: 0xCAE7, - 28114 - 11905: 0x9C44, - 28115 - 11905: 0x9C45, - 28116 - 11905: 0x9C46, - 28117 - 11905: 0x9C47, - 28118 - 11905: 0xC4D7, - 28119 - 11905: 0x9C48, - 28120 - 11905: 0xCCD4, - 28121 - 11905: 0xE4C8, - 28122 - 11905: 0x9C49, - 28123 - 11905: 0x9C4A, - 28124 - 11905: 0x9C4B, - 28125 - 11905: 0xE4C7, - 28126 - 11905: 0xE4C1, - 28127 - 11905: 0x9C4C, - 28128 - 11905: 0xE4C4, - 28129 - 11905: 0xB5AD, - 28130 - 11905: 0x9C4D, - 28131 - 11905: 0x9C4E, - 28132 - 11905: 0xD3D9, - 28133 - 11905: 0x9C4F, - 28134 - 11905: 0xE4C6, - 28135 - 11905: 0x9C50, - 28136 - 11905: 0x9C51, - 28137 - 11905: 0x9C52, - 28138 - 11905: 0x9C53, - 28139 - 11905: 0xD2F9, - 28140 - 11905: 0xB4E3, - 28141 - 11905: 0x9C54, - 28142 - 11905: 0xBBB4, - 28143 - 11905: 0x9C55, - 28144 - 11905: 0x9C56, - 28145 - 11905: 0xC9EE, - 28146 - 11905: 0x9C57, - 28147 - 11905: 0xB4BE, - 28148 - 11905: 0x9C58, - 28149 - 11905: 0x9C59, - 28150 - 11905: 0x9C5A, - 28151 - 11905: 0xBBEC, - 28152 - 11905: 0x9C5B, - 28153 - 11905: 0xD1CD, - 28154 - 11905: 0x9C5C, - 28155 - 11905: 0xCCED, - 28156 - 11905: 0xEDB5, - 28157 - 11905: 0x9C5D, - 28158 - 11905: 0x9C5E, - 28159 - 11905: 0x9C5F, - 28160 - 11905: 0x9C60, - 28161 - 11905: 0x9C61, - 28162 - 11905: 0x9C62, - 28163 - 11905: 0x9C63, - 28164 - 11905: 0x9C64, - 28165 - 11905: 0xC7E5, - 28166 - 11905: 0x9C65, - 28167 - 11905: 0x9C66, - 28168 - 11905: 0x9C67, - 28169 - 11905: 0x9C68, - 28170 - 11905: 0xD4A8, - 28171 - 11905: 0x9C69, - 28172 - 11905: 0xE4CB, - 28173 - 11905: 0xD7D5, - 28174 - 11905: 0xE4C2, - 28175 - 11905: 0x9C6A, - 28176 - 11905: 0xBDA5, - 28177 - 11905: 0xE4C5, - 28178 - 11905: 0x9C6B, - 28179 - 11905: 0x9C6C, - 28180 - 11905: 0xD3E6, - 28181 - 11905: 0x9C6D, - 28182 - 11905: 0xE4C9, - 28183 - 11905: 0xC9F8, - 28184 - 11905: 0x9C6E, - 28185 - 11905: 0x9C6F, - 28186 - 11905: 0xE4BE, - 28187 - 11905: 0x9C70, - 28188 - 11905: 0x9C71, - 28189 - 11905: 0xD3E5, - 28190 - 11905: 0x9C72, - 28191 - 11905: 0x9C73, - 28192 - 11905: 0xC7FE, - 28193 - 11905: 0xB6C9, - 28194 - 11905: 0x9C74, - 28195 - 11905: 0xD4FC, - 28196 - 11905: 0xB2B3, - 28197 - 11905: 0xE4D7, - 28198 - 11905: 0x9C75, - 28199 - 11905: 0x9C76, - 28200 - 11905: 0x9C77, - 28201 - 11905: 0xCEC2, - 28202 - 11905: 0x9C78, - 28203 - 11905: 0xE4CD, - 28204 - 11905: 0x9C79, - 28205 - 11905: 0xCEBC, - 28206 - 11905: 0x9C7A, - 28207 - 11905: 0xB8DB, - 28208 - 11905: 0x9C7B, - 28209 - 11905: 0x9C7C, - 28210 - 11905: 0xE4D6, - 28211 - 11905: 0x9C7D, - 28212 - 11905: 0xBFCA, - 28213 - 11905: 0x9C7E, - 28214 - 11905: 0x9C80, - 28215 - 11905: 0x9C81, - 28216 - 11905: 0xD3CE, - 28217 - 11905: 0x9C82, - 28218 - 11905: 0xC3EC, - 28219 - 11905: 0x9C83, - 28220 - 11905: 0x9C84, - 28221 - 11905: 0x9C85, - 28222 - 11905: 0x9C86, - 28223 - 11905: 0x9C87, - 28224 - 11905: 0x9C88, - 28225 - 11905: 0x9C89, - 28226 - 11905: 0x9C8A, - 28227 - 11905: 0xC5C8, - 28228 - 11905: 0xE4D8, - 28229 - 11905: 0x9C8B, - 28230 - 11905: 0x9C8C, - 28231 - 11905: 0x9C8D, - 28232 - 11905: 0x9C8E, - 28233 - 11905: 0x9C8F, - 28234 - 11905: 0x9C90, - 28235 - 11905: 0x9C91, - 28236 - 11905: 0x9C92, - 28237 - 11905: 0xCDC4, - 28238 - 11905: 0xE4CF, - 28239 - 11905: 0x9C93, - 28240 - 11905: 0x9C94, - 28241 - 11905: 0x9C95, - 28242 - 11905: 0x9C96, - 28243 - 11905: 0xE4D4, - 28244 - 11905: 0xE4D5, - 28245 - 11905: 0x9C97, - 28246 - 11905: 0xBAFE, - 28247 - 11905: 0x9C98, - 28248 - 11905: 0xCFE6, - 28249 - 11905: 0x9C99, - 28250 - 11905: 0x9C9A, - 28251 - 11905: 0xD5BF, - 28252 - 11905: 0x9C9B, - 28253 - 11905: 0x9C9C, - 28254 - 11905: 0x9C9D, - 28255 - 11905: 0xE4D2, - 28256 - 11905: 0x9C9E, - 28257 - 11905: 0x9C9F, - 28258 - 11905: 0x9CA0, - 28259 - 11905: 0x9CA1, - 28260 - 11905: 0x9CA2, - 28261 - 11905: 0x9CA3, - 28262 - 11905: 0x9CA4, - 28263 - 11905: 0x9CA5, - 28264 - 11905: 0x9CA6, - 28265 - 11905: 0x9CA7, - 28266 - 11905: 0x9CA8, - 28267 - 11905: 0xE4D0, - 28268 - 11905: 0x9CA9, - 28269 - 11905: 0x9CAA, - 28270 - 11905: 0xE4CE, - 28271 - 11905: 0x9CAB, - 28272 - 11905: 0x9CAC, - 28273 - 11905: 0x9CAD, - 28274 - 11905: 0x9CAE, - 28275 - 11905: 0x9CAF, - 28276 - 11905: 0x9CB0, - 28277 - 11905: 0x9CB1, - 28278 - 11905: 0x9CB2, - 28279 - 11905: 0x9CB3, - 28280 - 11905: 0x9CB4, - 28281 - 11905: 0x9CB5, - 28282 - 11905: 0x9CB6, - 28283 - 11905: 0x9CB7, - 28284 - 11905: 0x9CB8, - 28285 - 11905: 0x9CB9, - 28286 - 11905: 0xCDE5, - 28287 - 11905: 0xCAAA, - 28288 - 11905: 0x9CBA, - 28289 - 11905: 0x9CBB, - 28290 - 11905: 0x9CBC, - 28291 - 11905: 0xC0A3, - 28292 - 11905: 0x9CBD, - 28293 - 11905: 0xBDA6, - 28294 - 11905: 0xE4D3, - 28295 - 11905: 0x9CBE, - 28296 - 11905: 0x9CBF, - 28297 - 11905: 0xB8C8, - 28298 - 11905: 0x9CC0, - 28299 - 11905: 0x9CC1, - 28300 - 11905: 0x9CC2, - 28301 - 11905: 0x9CC3, - 28302 - 11905: 0x9CC4, - 28303 - 11905: 0xE4E7, - 28304 - 11905: 0xD4B4, - 28305 - 11905: 0x9CC5, - 28306 - 11905: 0x9CC6, - 28307 - 11905: 0x9CC7, - 28308 - 11905: 0x9CC8, - 28309 - 11905: 0x9CC9, - 28310 - 11905: 0x9CCA, - 28311 - 11905: 0x9CCB, - 28312 - 11905: 0xE4DB, - 28313 - 11905: 0x9CCC, - 28314 - 11905: 0x9CCD, - 28315 - 11905: 0x9CCE, - 28316 - 11905: 0xC1EF, - 28317 - 11905: 0x9CCF, - 28318 - 11905: 0x9CD0, - 28319 - 11905: 0xE4E9, - 28320 - 11905: 0x9CD1, - 28321 - 11905: 0x9CD2, - 28322 - 11905: 0xD2E7, - 28323 - 11905: 0x9CD3, - 28324 - 11905: 0x9CD4, - 28325 - 11905: 0xE4DF, - 28326 - 11905: 0x9CD5, - 28327 - 11905: 0xE4E0, - 28328 - 11905: 0x9CD6, - 28329 - 11905: 0x9CD7, - 28330 - 11905: 0xCFAA, - 28331 - 11905: 0x9CD8, - 28332 - 11905: 0x9CD9, - 28333 - 11905: 0x9CDA, - 28334 - 11905: 0x9CDB, - 28335 - 11905: 0xCBDD, - 28336 - 11905: 0x9CDC, - 28337 - 11905: 0xE4DA, - 28338 - 11905: 0xE4D1, - 28339 - 11905: 0x9CDD, - 28340 - 11905: 0xE4E5, - 28341 - 11905: 0x9CDE, - 28342 - 11905: 0xC8DC, - 28343 - 11905: 0xE4E3, - 28344 - 11905: 0x9CDF, - 28345 - 11905: 0x9CE0, - 28346 - 11905: 0xC4E7, - 28347 - 11905: 0xE4E2, - 28348 - 11905: 0x9CE1, - 28349 - 11905: 0xE4E1, - 28350 - 11905: 0x9CE2, - 28351 - 11905: 0x9CE3, - 28352 - 11905: 0x9CE4, - 28353 - 11905: 0xB3FC, - 28354 - 11905: 0xE4E8, - 28355 - 11905: 0x9CE5, - 28356 - 11905: 0x9CE6, - 28357 - 11905: 0x9CE7, - 28358 - 11905: 0x9CE8, - 28359 - 11905: 0xB5E1, - 28360 - 11905: 0x9CE9, - 28361 - 11905: 0x9CEA, - 28362 - 11905: 0x9CEB, - 28363 - 11905: 0xD7CC, - 28364 - 11905: 0x9CEC, - 28365 - 11905: 0x9CED, - 28366 - 11905: 0x9CEE, - 28367 - 11905: 0xE4E6, - 28368 - 11905: 0x9CEF, - 28369 - 11905: 0xBBAC, - 28370 - 11905: 0x9CF0, - 28371 - 11905: 0xD7D2, - 28372 - 11905: 0xCCCF, - 28373 - 11905: 0xEBF8, - 28374 - 11905: 0x9CF1, - 28375 - 11905: 0xE4E4, - 28376 - 11905: 0x9CF2, - 28377 - 11905: 0x9CF3, - 28378 - 11905: 0xB9F6, - 28379 - 11905: 0x9CF4, - 28380 - 11905: 0x9CF5, - 28381 - 11905: 0x9CF6, - 28382 - 11905: 0xD6CD, - 28383 - 11905: 0xE4D9, - 28384 - 11905: 0xE4DC, - 28385 - 11905: 0xC2FA, - 28386 - 11905: 0xE4DE, - 28387 - 11905: 0x9CF7, - 28388 - 11905: 0xC2CB, - 28389 - 11905: 0xC0C4, - 28390 - 11905: 0xC2D0, - 28391 - 11905: 0x9CF8, - 28392 - 11905: 0xB1F5, - 28393 - 11905: 0xCCB2, - 28394 - 11905: 0x9CF9, - 28395 - 11905: 0x9CFA, - 28396 - 11905: 0x9CFB, - 28397 - 11905: 0x9CFC, - 28398 - 11905: 0x9CFD, - 28399 - 11905: 0x9CFE, - 28400 - 11905: 0x9D40, - 28401 - 11905: 0x9D41, - 28402 - 11905: 0x9D42, - 28403 - 11905: 0x9D43, - 28404 - 11905: 0xB5CE, - 28405 - 11905: 0x9D44, - 28406 - 11905: 0x9D45, - 28407 - 11905: 0x9D46, - 28408 - 11905: 0x9D47, - 28409 - 11905: 0xE4EF, - 28410 - 11905: 0x9D48, - 28411 - 11905: 0x9D49, - 28412 - 11905: 0x9D4A, - 28413 - 11905: 0x9D4B, - 28414 - 11905: 0x9D4C, - 28415 - 11905: 0x9D4D, - 28416 - 11905: 0x9D4E, - 28417 - 11905: 0x9D4F, - 28418 - 11905: 0xC6AF, - 28419 - 11905: 0x9D50, - 28420 - 11905: 0x9D51, - 28421 - 11905: 0x9D52, - 28422 - 11905: 0xC6E1, - 28423 - 11905: 0x9D53, - 28424 - 11905: 0x9D54, - 28425 - 11905: 0xE4F5, - 28426 - 11905: 0x9D55, - 28427 - 11905: 0x9D56, - 28428 - 11905: 0x9D57, - 28429 - 11905: 0x9D58, - 28430 - 11905: 0x9D59, - 28431 - 11905: 0xC2A9, - 28432 - 11905: 0x9D5A, - 28433 - 11905: 0x9D5B, - 28434 - 11905: 0x9D5C, - 28435 - 11905: 0xC0EC, - 28436 - 11905: 0xD1DD, - 28437 - 11905: 0xE4EE, - 28438 - 11905: 0x9D5D, - 28439 - 11905: 0x9D5E, - 28440 - 11905: 0x9D5F, - 28441 - 11905: 0x9D60, - 28442 - 11905: 0x9D61, - 28443 - 11905: 0x9D62, - 28444 - 11905: 0x9D63, - 28445 - 11905: 0x9D64, - 28446 - 11905: 0x9D65, - 28447 - 11905: 0x9D66, - 28448 - 11905: 0xC4AE, - 28449 - 11905: 0x9D67, - 28450 - 11905: 0x9D68, - 28451 - 11905: 0x9D69, - 28452 - 11905: 0xE4ED, - 28453 - 11905: 0x9D6A, - 28454 - 11905: 0x9D6B, - 28455 - 11905: 0x9D6C, - 28456 - 11905: 0x9D6D, - 28457 - 11905: 0xE4F6, - 28458 - 11905: 0xE4F4, - 28459 - 11905: 0xC2FE, - 28460 - 11905: 0x9D6E, - 28461 - 11905: 0xE4DD, - 28462 - 11905: 0x9D6F, - 28463 - 11905: 0xE4F0, - 28464 - 11905: 0x9D70, - 28465 - 11905: 0xCAFE, - 28466 - 11905: 0x9D71, - 28467 - 11905: 0xD5C4, - 28468 - 11905: 0x9D72, - 28469 - 11905: 0x9D73, - 28470 - 11905: 0xE4F1, - 28471 - 11905: 0x9D74, - 28472 - 11905: 0x9D75, - 28473 - 11905: 0x9D76, - 28474 - 11905: 0x9D77, - 28475 - 11905: 0x9D78, - 28476 - 11905: 0x9D79, - 28477 - 11905: 0x9D7A, - 28478 - 11905: 0xD1FA, - 28479 - 11905: 0x9D7B, - 28480 - 11905: 0x9D7C, - 28481 - 11905: 0x9D7D, - 28482 - 11905: 0x9D7E, - 28483 - 11905: 0x9D80, - 28484 - 11905: 0x9D81, - 28485 - 11905: 0x9D82, - 28486 - 11905: 0xE4EB, - 28487 - 11905: 0xE4EC, - 28488 - 11905: 0x9D83, - 28489 - 11905: 0x9D84, - 28490 - 11905: 0x9D85, - 28491 - 11905: 0xE4F2, - 28492 - 11905: 0x9D86, - 28493 - 11905: 0xCEAB, - 28494 - 11905: 0x9D87, - 28495 - 11905: 0x9D88, - 28496 - 11905: 0x9D89, - 28497 - 11905: 0x9D8A, - 28498 - 11905: 0x9D8B, - 28499 - 11905: 0x9D8C, - 28500 - 11905: 0x9D8D, - 28501 - 11905: 0x9D8E, - 28502 - 11905: 0x9D8F, - 28503 - 11905: 0x9D90, - 28504 - 11905: 0xC5CB, - 28505 - 11905: 0x9D91, - 28506 - 11905: 0x9D92, - 28507 - 11905: 0x9D93, - 28508 - 11905: 0xC7B1, - 28509 - 11905: 0x9D94, - 28510 - 11905: 0xC2BA, - 28511 - 11905: 0x9D95, - 28512 - 11905: 0x9D96, - 28513 - 11905: 0x9D97, - 28514 - 11905: 0xE4EA, - 28515 - 11905: 0x9D98, - 28516 - 11905: 0x9D99, - 28517 - 11905: 0x9D9A, - 28518 - 11905: 0xC1CA, - 28519 - 11905: 0x9D9B, - 28520 - 11905: 0x9D9C, - 28521 - 11905: 0x9D9D, - 28522 - 11905: 0x9D9E, - 28523 - 11905: 0x9D9F, - 28524 - 11905: 0x9DA0, - 28525 - 11905: 0xCCB6, - 28526 - 11905: 0xB3B1, - 28527 - 11905: 0x9DA1, - 28528 - 11905: 0x9DA2, - 28529 - 11905: 0x9DA3, - 28530 - 11905: 0xE4FB, - 28531 - 11905: 0x9DA4, - 28532 - 11905: 0xE4F3, - 28533 - 11905: 0x9DA5, - 28534 - 11905: 0x9DA6, - 28535 - 11905: 0x9DA7, - 28536 - 11905: 0xE4FA, - 28537 - 11905: 0x9DA8, - 28538 - 11905: 0xE4FD, - 28539 - 11905: 0x9DA9, - 28540 - 11905: 0xE4FC, - 28541 - 11905: 0x9DAA, - 28542 - 11905: 0x9DAB, - 28543 - 11905: 0x9DAC, - 28544 - 11905: 0x9DAD, - 28545 - 11905: 0x9DAE, - 28546 - 11905: 0x9DAF, - 28547 - 11905: 0x9DB0, - 28548 - 11905: 0xB3CE, - 28549 - 11905: 0x9DB1, - 28550 - 11905: 0x9DB2, - 28551 - 11905: 0x9DB3, - 28552 - 11905: 0xB3BA, - 28553 - 11905: 0xE4F7, - 28554 - 11905: 0x9DB4, - 28555 - 11905: 0x9DB5, - 28556 - 11905: 0xE4F9, - 28557 - 11905: 0xE4F8, - 28558 - 11905: 0xC5EC, - 28559 - 11905: 0x9DB6, - 28560 - 11905: 0x9DB7, - 28561 - 11905: 0x9DB8, - 28562 - 11905: 0x9DB9, - 28563 - 11905: 0x9DBA, - 28564 - 11905: 0x9DBB, - 28565 - 11905: 0x9DBC, - 28566 - 11905: 0x9DBD, - 28567 - 11905: 0x9DBE, - 28568 - 11905: 0x9DBF, - 28569 - 11905: 0x9DC0, - 28570 - 11905: 0x9DC1, - 28571 - 11905: 0x9DC2, - 28572 - 11905: 0xC0BD, - 28573 - 11905: 0x9DC3, - 28574 - 11905: 0x9DC4, - 28575 - 11905: 0x9DC5, - 28576 - 11905: 0x9DC6, - 28577 - 11905: 0xD4E8, - 28578 - 11905: 0x9DC7, - 28579 - 11905: 0x9DC8, - 28580 - 11905: 0x9DC9, - 28581 - 11905: 0x9DCA, - 28582 - 11905: 0x9DCB, - 28583 - 11905: 0xE5A2, - 28584 - 11905: 0x9DCC, - 28585 - 11905: 0x9DCD, - 28586 - 11905: 0x9DCE, - 28587 - 11905: 0x9DCF, - 28588 - 11905: 0x9DD0, - 28589 - 11905: 0x9DD1, - 28590 - 11905: 0x9DD2, - 28591 - 11905: 0x9DD3, - 28592 - 11905: 0x9DD4, - 28593 - 11905: 0x9DD5, - 28594 - 11905: 0x9DD6, - 28595 - 11905: 0xB0C4, - 28596 - 11905: 0x9DD7, - 28597 - 11905: 0x9DD8, - 28598 - 11905: 0xE5A4, - 28599 - 11905: 0x9DD9, - 28600 - 11905: 0x9DDA, - 28601 - 11905: 0xE5A3, - 28602 - 11905: 0x9DDB, - 28603 - 11905: 0x9DDC, - 28604 - 11905: 0x9DDD, - 28605 - 11905: 0x9DDE, - 28606 - 11905: 0x9DDF, - 28607 - 11905: 0x9DE0, - 28608 - 11905: 0xBCA4, - 28609 - 11905: 0x9DE1, - 28610 - 11905: 0xE5A5, - 28611 - 11905: 0x9DE2, - 28612 - 11905: 0x9DE3, - 28613 - 11905: 0x9DE4, - 28614 - 11905: 0x9DE5, - 28615 - 11905: 0x9DE6, - 28616 - 11905: 0x9DE7, - 28617 - 11905: 0xE5A1, - 28618 - 11905: 0x9DE8, - 28619 - 11905: 0x9DE9, - 28620 - 11905: 0x9DEA, - 28621 - 11905: 0x9DEB, - 28622 - 11905: 0x9DEC, - 28623 - 11905: 0x9DED, - 28624 - 11905: 0x9DEE, - 28625 - 11905: 0xE4FE, - 28626 - 11905: 0xB1F4, - 28627 - 11905: 0x9DEF, - 28628 - 11905: 0x9DF0, - 28629 - 11905: 0x9DF1, - 28630 - 11905: 0x9DF2, - 28631 - 11905: 0x9DF3, - 28632 - 11905: 0x9DF4, - 28633 - 11905: 0x9DF5, - 28634 - 11905: 0x9DF6, - 28635 - 11905: 0x9DF7, - 28636 - 11905: 0x9DF8, - 28637 - 11905: 0x9DF9, - 28638 - 11905: 0xE5A8, - 28639 - 11905: 0x9DFA, - 28640 - 11905: 0xE5A9, - 28641 - 11905: 0xE5A6, - 28642 - 11905: 0x9DFB, - 28643 - 11905: 0x9DFC, - 28644 - 11905: 0x9DFD, - 28645 - 11905: 0x9DFE, - 28646 - 11905: 0x9E40, - 28647 - 11905: 0x9E41, - 28648 - 11905: 0x9E42, - 28649 - 11905: 0x9E43, - 28650 - 11905: 0x9E44, - 28651 - 11905: 0x9E45, - 28652 - 11905: 0x9E46, - 28653 - 11905: 0x9E47, - 28654 - 11905: 0xE5A7, - 28655 - 11905: 0xE5AA, - 28656 - 11905: 0x9E48, - 28657 - 11905: 0x9E49, - 28658 - 11905: 0x9E4A, - 28659 - 11905: 0x9E4B, - 28660 - 11905: 0x9E4C, - 28661 - 11905: 0x9E4D, - 28662 - 11905: 0x9E4E, - 28663 - 11905: 0x9E4F, - 28664 - 11905: 0x9E50, - 28665 - 11905: 0x9E51, - 28666 - 11905: 0x9E52, - 28667 - 11905: 0x9E53, - 28668 - 11905: 0x9E54, - 28669 - 11905: 0x9E55, - 28670 - 11905: 0x9E56, - 28671 - 11905: 0x9E57, - 28672 - 11905: 0x9E58, - 28673 - 11905: 0x9E59, - 28674 - 11905: 0x9E5A, - 28675 - 11905: 0x9E5B, - 28676 - 11905: 0x9E5C, - 28677 - 11905: 0x9E5D, - 28678 - 11905: 0x9E5E, - 28679 - 11905: 0x9E5F, - 28680 - 11905: 0x9E60, - 28681 - 11905: 0x9E61, - 28682 - 11905: 0x9E62, - 28683 - 11905: 0x9E63, - 28684 - 11905: 0x9E64, - 28685 - 11905: 0x9E65, - 28686 - 11905: 0x9E66, - 28687 - 11905: 0x9E67, - 28688 - 11905: 0x9E68, - 28689 - 11905: 0xC6D9, - 28690 - 11905: 0x9E69, - 28691 - 11905: 0x9E6A, - 28692 - 11905: 0x9E6B, - 28693 - 11905: 0x9E6C, - 28694 - 11905: 0x9E6D, - 28695 - 11905: 0x9E6E, - 28696 - 11905: 0x9E6F, - 28697 - 11905: 0x9E70, - 28698 - 11905: 0xE5AB, - 28699 - 11905: 0xE5AD, - 28700 - 11905: 0x9E71, - 28701 - 11905: 0x9E72, - 28702 - 11905: 0x9E73, - 28703 - 11905: 0x9E74, - 28704 - 11905: 0x9E75, - 28705 - 11905: 0x9E76, - 28706 - 11905: 0x9E77, - 28707 - 11905: 0xE5AC, - 28708 - 11905: 0x9E78, - 28709 - 11905: 0x9E79, - 28710 - 11905: 0x9E7A, - 28711 - 11905: 0x9E7B, - 28712 - 11905: 0x9E7C, - 28713 - 11905: 0x9E7D, - 28714 - 11905: 0x9E7E, - 28715 - 11905: 0x9E80, - 28716 - 11905: 0x9E81, - 28717 - 11905: 0x9E82, - 28718 - 11905: 0x9E83, - 28719 - 11905: 0x9E84, - 28720 - 11905: 0x9E85, - 28721 - 11905: 0x9E86, - 28722 - 11905: 0x9E87, - 28723 - 11905: 0x9E88, - 28724 - 11905: 0x9E89, - 28725 - 11905: 0xE5AF, - 28726 - 11905: 0x9E8A, - 28727 - 11905: 0x9E8B, - 28728 - 11905: 0x9E8C, - 28729 - 11905: 0xE5AE, - 28730 - 11905: 0x9E8D, - 28731 - 11905: 0x9E8E, - 28732 - 11905: 0x9E8F, - 28733 - 11905: 0x9E90, - 28734 - 11905: 0x9E91, - 28735 - 11905: 0x9E92, - 28736 - 11905: 0x9E93, - 28737 - 11905: 0x9E94, - 28738 - 11905: 0x9E95, - 28739 - 11905: 0x9E96, - 28740 - 11905: 0x9E97, - 28741 - 11905: 0x9E98, - 28742 - 11905: 0x9E99, - 28743 - 11905: 0x9E9A, - 28744 - 11905: 0x9E9B, - 28745 - 11905: 0x9E9C, - 28746 - 11905: 0x9E9D, - 28747 - 11905: 0x9E9E, - 28748 - 11905: 0xB9E0, - 28749 - 11905: 0x9E9F, - 28750 - 11905: 0x9EA0, - 28751 - 11905: 0xE5B0, - 28752 - 11905: 0x9EA1, - 28753 - 11905: 0x9EA2, - 28754 - 11905: 0x9EA3, - 28755 - 11905: 0x9EA4, - 28756 - 11905: 0x9EA5, - 28757 - 11905: 0x9EA6, - 28758 - 11905: 0x9EA7, - 28759 - 11905: 0x9EA8, - 28760 - 11905: 0x9EA9, - 28761 - 11905: 0x9EAA, - 28762 - 11905: 0x9EAB, - 28763 - 11905: 0x9EAC, - 28764 - 11905: 0x9EAD, - 28765 - 11905: 0x9EAE, - 28766 - 11905: 0xE5B1, - 28767 - 11905: 0x9EAF, - 28768 - 11905: 0x9EB0, - 28769 - 11905: 0x9EB1, - 28770 - 11905: 0x9EB2, - 28771 - 11905: 0x9EB3, - 28772 - 11905: 0x9EB4, - 28773 - 11905: 0x9EB5, - 28774 - 11905: 0x9EB6, - 28775 - 11905: 0x9EB7, - 28776 - 11905: 0x9EB8, - 28777 - 11905: 0x9EB9, - 28778 - 11905: 0x9EBA, - 28779 - 11905: 0xBBF0, - 28780 - 11905: 0xECE1, - 28781 - 11905: 0xC3F0, - 28782 - 11905: 0x9EBB, - 28783 - 11905: 0xB5C6, - 28784 - 11905: 0xBBD2, - 28785 - 11905: 0x9EBC, - 28786 - 11905: 0x9EBD, - 28787 - 11905: 0x9EBE, - 28788 - 11905: 0x9EBF, - 28789 - 11905: 0xC1E9, - 28790 - 11905: 0xD4EE, - 28791 - 11905: 0x9EC0, - 28792 - 11905: 0xBEC4, - 28793 - 11905: 0x9EC1, - 28794 - 11905: 0x9EC2, - 28795 - 11905: 0x9EC3, - 28796 - 11905: 0xD7C6, - 28797 - 11905: 0x9EC4, - 28798 - 11905: 0xD4D6, - 28799 - 11905: 0xB2D3, - 28800 - 11905: 0xECBE, - 28801 - 11905: 0x9EC5, - 28802 - 11905: 0x9EC6, - 28803 - 11905: 0x9EC7, - 28804 - 11905: 0x9EC8, - 28805 - 11905: 0xEAC1, - 28806 - 11905: 0x9EC9, - 28807 - 11905: 0x9ECA, - 28808 - 11905: 0x9ECB, - 28809 - 11905: 0xC2AF, - 28810 - 11905: 0xB4B6, - 28811 - 11905: 0x9ECC, - 28812 - 11905: 0x9ECD, - 28813 - 11905: 0x9ECE, - 28814 - 11905: 0xD1D7, - 28815 - 11905: 0x9ECF, - 28816 - 11905: 0x9ED0, - 28817 - 11905: 0x9ED1, - 28818 - 11905: 0xB3B4, - 28819 - 11905: 0x9ED2, - 28820 - 11905: 0xC8B2, - 28821 - 11905: 0xBFBB, - 28822 - 11905: 0xECC0, - 28823 - 11905: 0x9ED3, - 28824 - 11905: 0x9ED4, - 28825 - 11905: 0xD6CB, - 28826 - 11905: 0x9ED5, - 28827 - 11905: 0x9ED6, - 28828 - 11905: 0xECBF, - 28829 - 11905: 0xECC1, - 28830 - 11905: 0x9ED7, - 28831 - 11905: 0x9ED8, - 28832 - 11905: 0x9ED9, - 28833 - 11905: 0x9EDA, - 28834 - 11905: 0x9EDB, - 28835 - 11905: 0x9EDC, - 28836 - 11905: 0x9EDD, - 28837 - 11905: 0x9EDE, - 28838 - 11905: 0x9EDF, - 28839 - 11905: 0x9EE0, - 28840 - 11905: 0x9EE1, - 28841 - 11905: 0x9EE2, - 28842 - 11905: 0x9EE3, - 28843 - 11905: 0xECC5, - 28844 - 11905: 0xBEE6, - 28845 - 11905: 0xCCBF, - 28846 - 11905: 0xC5DA, - 28847 - 11905: 0xBEBC, - 28848 - 11905: 0x9EE4, - 28849 - 11905: 0xECC6, - 28850 - 11905: 0x9EE5, - 28851 - 11905: 0xB1FE, - 28852 - 11905: 0x9EE6, - 28853 - 11905: 0x9EE7, - 28854 - 11905: 0x9EE8, - 28855 - 11905: 0xECC4, - 28856 - 11905: 0xD5A8, - 28857 - 11905: 0xB5E3, - 28858 - 11905: 0x9EE9, - 28859 - 11905: 0xECC2, - 28860 - 11905: 0xC1B6, - 28861 - 11905: 0xB3E3, - 28862 - 11905: 0x9EEA, - 28863 - 11905: 0x9EEB, - 28864 - 11905: 0xECC3, - 28865 - 11905: 0xCBB8, - 28866 - 11905: 0xC0C3, - 28867 - 11905: 0xCCFE, - 28868 - 11905: 0x9EEC, - 28869 - 11905: 0x9EED, - 28870 - 11905: 0x9EEE, - 28871 - 11905: 0x9EEF, - 28872 - 11905: 0xC1D2, - 28873 - 11905: 0x9EF0, - 28874 - 11905: 0xECC8, - 28875 - 11905: 0x9EF1, - 28876 - 11905: 0x9EF2, - 28877 - 11905: 0x9EF3, - 28878 - 11905: 0x9EF4, - 28879 - 11905: 0x9EF5, - 28880 - 11905: 0x9EF6, - 28881 - 11905: 0x9EF7, - 28882 - 11905: 0x9EF8, - 28883 - 11905: 0x9EF9, - 28884 - 11905: 0x9EFA, - 28885 - 11905: 0x9EFB, - 28886 - 11905: 0x9EFC, - 28887 - 11905: 0x9EFD, - 28888 - 11905: 0xBAE6, - 28889 - 11905: 0xC0D3, - 28890 - 11905: 0x9EFE, - 28891 - 11905: 0xD6F2, - 28892 - 11905: 0x9F40, - 28893 - 11905: 0x9F41, - 28894 - 11905: 0x9F42, - 28895 - 11905: 0xD1CC, - 28896 - 11905: 0x9F43, - 28897 - 11905: 0x9F44, - 28898 - 11905: 0x9F45, - 28899 - 11905: 0x9F46, - 28900 - 11905: 0xBFBE, - 28901 - 11905: 0x9F47, - 28902 - 11905: 0xB7B3, - 28903 - 11905: 0xC9D5, - 28904 - 11905: 0xECC7, - 28905 - 11905: 0xBBE2, - 28906 - 11905: 0x9F48, - 28907 - 11905: 0xCCCC, - 28908 - 11905: 0xBDFD, - 28909 - 11905: 0xC8C8, - 28910 - 11905: 0x9F49, - 28911 - 11905: 0xCFA9, - 28912 - 11905: 0x9F4A, - 28913 - 11905: 0x9F4B, - 28914 - 11905: 0x9F4C, - 28915 - 11905: 0x9F4D, - 28916 - 11905: 0x9F4E, - 28917 - 11905: 0x9F4F, - 28918 - 11905: 0x9F50, - 28919 - 11905: 0xCDE9, - 28920 - 11905: 0x9F51, - 28921 - 11905: 0xC5EB, - 28922 - 11905: 0x9F52, - 28923 - 11905: 0x9F53, - 28924 - 11905: 0x9F54, - 28925 - 11905: 0xB7E9, - 28926 - 11905: 0x9F55, - 28927 - 11905: 0x9F56, - 28928 - 11905: 0x9F57, - 28929 - 11905: 0x9F58, - 28930 - 11905: 0x9F59, - 28931 - 11905: 0x9F5A, - 28932 - 11905: 0x9F5B, - 28933 - 11905: 0x9F5C, - 28934 - 11905: 0x9F5D, - 28935 - 11905: 0x9F5E, - 28936 - 11905: 0x9F5F, - 28937 - 11905: 0xD1C9, - 28938 - 11905: 0xBAB8, - 28939 - 11905: 0x9F60, - 28940 - 11905: 0x9F61, - 28941 - 11905: 0x9F62, - 28942 - 11905: 0x9F63, - 28943 - 11905: 0x9F64, - 28944 - 11905: 0xECC9, - 28945 - 11905: 0x9F65, - 28946 - 11905: 0x9F66, - 28947 - 11905: 0xECCA, - 28948 - 11905: 0x9F67, - 28949 - 11905: 0xBBC0, - 28950 - 11905: 0xECCB, - 28951 - 11905: 0x9F68, - 28952 - 11905: 0xECE2, - 28953 - 11905: 0xB1BA, - 28954 - 11905: 0xB7D9, - 28955 - 11905: 0x9F69, - 28956 - 11905: 0x9F6A, - 28957 - 11905: 0x9F6B, - 28958 - 11905: 0x9F6C, - 28959 - 11905: 0x9F6D, - 28960 - 11905: 0x9F6E, - 28961 - 11905: 0x9F6F, - 28962 - 11905: 0x9F70, - 28963 - 11905: 0x9F71, - 28964 - 11905: 0x9F72, - 28965 - 11905: 0x9F73, - 28966 - 11905: 0xBDB9, - 28967 - 11905: 0x9F74, - 28968 - 11905: 0x9F75, - 28969 - 11905: 0x9F76, - 28970 - 11905: 0x9F77, - 28971 - 11905: 0x9F78, - 28972 - 11905: 0x9F79, - 28973 - 11905: 0x9F7A, - 28974 - 11905: 0x9F7B, - 28975 - 11905: 0xECCC, - 28976 - 11905: 0xD1E6, - 28977 - 11905: 0xECCD, - 28978 - 11905: 0x9F7C, - 28979 - 11905: 0x9F7D, - 28980 - 11905: 0x9F7E, - 28981 - 11905: 0x9F80, - 28982 - 11905: 0xC8BB, - 28983 - 11905: 0x9F81, - 28984 - 11905: 0x9F82, - 28985 - 11905: 0x9F83, - 28986 - 11905: 0x9F84, - 28987 - 11905: 0x9F85, - 28988 - 11905: 0x9F86, - 28989 - 11905: 0x9F87, - 28990 - 11905: 0x9F88, - 28991 - 11905: 0x9F89, - 28992 - 11905: 0x9F8A, - 28993 - 11905: 0x9F8B, - 28994 - 11905: 0x9F8C, - 28995 - 11905: 0x9F8D, - 28996 - 11905: 0x9F8E, - 28997 - 11905: 0xECD1, - 28998 - 11905: 0x9F8F, - 28999 - 11905: 0x9F90, - 29000 - 11905: 0x9F91, - 29001 - 11905: 0x9F92, - 29002 - 11905: 0xECD3, - 29003 - 11905: 0x9F93, - 29004 - 11905: 0xBBCD, - 29005 - 11905: 0x9F94, - 29006 - 11905: 0xBCE5, - 29007 - 11905: 0x9F95, - 29008 - 11905: 0x9F96, - 29009 - 11905: 0x9F97, - 29010 - 11905: 0x9F98, - 29011 - 11905: 0x9F99, - 29012 - 11905: 0x9F9A, - 29013 - 11905: 0x9F9B, - 29014 - 11905: 0x9F9C, - 29015 - 11905: 0x9F9D, - 29016 - 11905: 0x9F9E, - 29017 - 11905: 0x9F9F, - 29018 - 11905: 0x9FA0, - 29019 - 11905: 0x9FA1, - 29020 - 11905: 0xECCF, - 29021 - 11905: 0x9FA2, - 29022 - 11905: 0xC9B7, - 29023 - 11905: 0x9FA3, - 29024 - 11905: 0x9FA4, - 29025 - 11905: 0x9FA5, - 29026 - 11905: 0x9FA6, - 29027 - 11905: 0x9FA7, - 29028 - 11905: 0xC3BA, - 29029 - 11905: 0x9FA8, - 29030 - 11905: 0xECE3, - 29031 - 11905: 0xD5D5, - 29032 - 11905: 0xECD0, - 29033 - 11905: 0x9FA9, - 29034 - 11905: 0x9FAA, - 29035 - 11905: 0x9FAB, - 29036 - 11905: 0x9FAC, - 29037 - 11905: 0x9FAD, - 29038 - 11905: 0xD6F3, - 29039 - 11905: 0x9FAE, - 29040 - 11905: 0x9FAF, - 29041 - 11905: 0x9FB0, - 29042 - 11905: 0xECD2, - 29043 - 11905: 0xECCE, - 29044 - 11905: 0x9FB1, - 29045 - 11905: 0x9FB2, - 29046 - 11905: 0x9FB3, - 29047 - 11905: 0x9FB4, - 29048 - 11905: 0xECD4, - 29049 - 11905: 0x9FB5, - 29050 - 11905: 0xECD5, - 29051 - 11905: 0x9FB6, - 29052 - 11905: 0x9FB7, - 29053 - 11905: 0xC9BF, - 29054 - 11905: 0x9FB8, - 29055 - 11905: 0x9FB9, - 29056 - 11905: 0x9FBA, - 29057 - 11905: 0x9FBB, - 29058 - 11905: 0x9FBC, - 29059 - 11905: 0x9FBD, - 29060 - 11905: 0xCFA8, - 29061 - 11905: 0x9FBE, - 29062 - 11905: 0x9FBF, - 29063 - 11905: 0x9FC0, - 29064 - 11905: 0x9FC1, - 29065 - 11905: 0x9FC2, - 29066 - 11905: 0xD0DC, - 29067 - 11905: 0x9FC3, - 29068 - 11905: 0x9FC4, - 29069 - 11905: 0x9FC5, - 29070 - 11905: 0x9FC6, - 29071 - 11905: 0xD1AC, - 29072 - 11905: 0x9FC7, - 29073 - 11905: 0x9FC8, - 29074 - 11905: 0x9FC9, - 29075 - 11905: 0x9FCA, - 29076 - 11905: 0xC8DB, - 29077 - 11905: 0x9FCB, - 29078 - 11905: 0x9FCC, - 29079 - 11905: 0x9FCD, - 29080 - 11905: 0xECD6, - 29081 - 11905: 0xCEF5, - 29082 - 11905: 0x9FCE, - 29083 - 11905: 0x9FCF, - 29084 - 11905: 0x9FD0, - 29085 - 11905: 0x9FD1, - 29086 - 11905: 0x9FD2, - 29087 - 11905: 0xCAEC, - 29088 - 11905: 0xECDA, - 29089 - 11905: 0x9FD3, - 29090 - 11905: 0x9FD4, - 29091 - 11905: 0x9FD5, - 29092 - 11905: 0x9FD6, - 29093 - 11905: 0x9FD7, - 29094 - 11905: 0x9FD8, - 29095 - 11905: 0x9FD9, - 29096 - 11905: 0xECD9, - 29097 - 11905: 0x9FDA, - 29098 - 11905: 0x9FDB, - 29099 - 11905: 0x9FDC, - 29100 - 11905: 0xB0BE, - 29101 - 11905: 0x9FDD, - 29102 - 11905: 0x9FDE, - 29103 - 11905: 0x9FDF, - 29104 - 11905: 0x9FE0, - 29105 - 11905: 0x9FE1, - 29106 - 11905: 0x9FE2, - 29107 - 11905: 0xECD7, - 29108 - 11905: 0x9FE3, - 29109 - 11905: 0xECD8, - 29110 - 11905: 0x9FE4, - 29111 - 11905: 0x9FE5, - 29112 - 11905: 0x9FE6, - 29113 - 11905: 0xECE4, - 29114 - 11905: 0x9FE7, - 29115 - 11905: 0x9FE8, - 29116 - 11905: 0x9FE9, - 29117 - 11905: 0x9FEA, - 29118 - 11905: 0x9FEB, - 29119 - 11905: 0x9FEC, - 29120 - 11905: 0x9FED, - 29121 - 11905: 0x9FEE, - 29122 - 11905: 0x9FEF, - 29123 - 11905: 0xC8BC, - 29124 - 11905: 0x9FF0, - 29125 - 11905: 0x9FF1, - 29126 - 11905: 0x9FF2, - 29127 - 11905: 0x9FF3, - 29128 - 11905: 0x9FF4, - 29129 - 11905: 0x9FF5, - 29130 - 11905: 0x9FF6, - 29131 - 11905: 0x9FF7, - 29132 - 11905: 0x9FF8, - 29133 - 11905: 0x9FF9, - 29134 - 11905: 0xC1C7, - 29135 - 11905: 0x9FFA, - 29136 - 11905: 0x9FFB, - 29137 - 11905: 0x9FFC, - 29138 - 11905: 0x9FFD, - 29139 - 11905: 0x9FFE, - 29140 - 11905: 0xECDC, - 29141 - 11905: 0xD1E0, - 29142 - 11905: 0xA040, - 29143 - 11905: 0xA041, - 29144 - 11905: 0xA042, - 29145 - 11905: 0xA043, - 29146 - 11905: 0xA044, - 29147 - 11905: 0xA045, - 29148 - 11905: 0xA046, - 29149 - 11905: 0xA047, - 29150 - 11905: 0xA048, - 29151 - 11905: 0xA049, - 29152 - 11905: 0xECDB, - 29153 - 11905: 0xA04A, - 29154 - 11905: 0xA04B, - 29155 - 11905: 0xA04C, - 29156 - 11905: 0xA04D, - 29157 - 11905: 0xD4EF, - 29158 - 11905: 0xA04E, - 29159 - 11905: 0xECDD, - 29160 - 11905: 0xA04F, - 29161 - 11905: 0xA050, - 29162 - 11905: 0xA051, - 29163 - 11905: 0xA052, - 29164 - 11905: 0xA053, - 29165 - 11905: 0xA054, - 29166 - 11905: 0xDBC6, - 29167 - 11905: 0xA055, - 29168 - 11905: 0xA056, - 29169 - 11905: 0xA057, - 29170 - 11905: 0xA058, - 29171 - 11905: 0xA059, - 29172 - 11905: 0xA05A, - 29173 - 11905: 0xA05B, - 29174 - 11905: 0xA05C, - 29175 - 11905: 0xA05D, - 29176 - 11905: 0xA05E, - 29177 - 11905: 0xECDE, - 29178 - 11905: 0xA05F, - 29179 - 11905: 0xA060, - 29180 - 11905: 0xA061, - 29181 - 11905: 0xA062, - 29182 - 11905: 0xA063, - 29183 - 11905: 0xA064, - 29184 - 11905: 0xA065, - 29185 - 11905: 0xA066, - 29186 - 11905: 0xA067, - 29187 - 11905: 0xA068, - 29188 - 11905: 0xA069, - 29189 - 11905: 0xA06A, - 29190 - 11905: 0xB1AC, - 29191 - 11905: 0xA06B, - 29192 - 11905: 0xA06C, - 29193 - 11905: 0xA06D, - 29194 - 11905: 0xA06E, - 29195 - 11905: 0xA06F, - 29196 - 11905: 0xA070, - 29197 - 11905: 0xA071, - 29198 - 11905: 0xA072, - 29199 - 11905: 0xA073, - 29200 - 11905: 0xA074, - 29201 - 11905: 0xA075, - 29202 - 11905: 0xA076, - 29203 - 11905: 0xA077, - 29204 - 11905: 0xA078, - 29205 - 11905: 0xA079, - 29206 - 11905: 0xA07A, - 29207 - 11905: 0xA07B, - 29208 - 11905: 0xA07C, - 29209 - 11905: 0xA07D, - 29210 - 11905: 0xA07E, - 29211 - 11905: 0xA080, - 29212 - 11905: 0xA081, - 29213 - 11905: 0xECDF, - 29214 - 11905: 0xA082, - 29215 - 11905: 0xA083, - 29216 - 11905: 0xA084, - 29217 - 11905: 0xA085, - 29218 - 11905: 0xA086, - 29219 - 11905: 0xA087, - 29220 - 11905: 0xA088, - 29221 - 11905: 0xA089, - 29222 - 11905: 0xA08A, - 29223 - 11905: 0xA08B, - 29224 - 11905: 0xECE0, - 29225 - 11905: 0xA08C, - 29226 - 11905: 0xD7A6, - 29227 - 11905: 0xA08D, - 29228 - 11905: 0xC5C0, - 29229 - 11905: 0xA08E, - 29230 - 11905: 0xA08F, - 29231 - 11905: 0xA090, - 29232 - 11905: 0xEBBC, - 29233 - 11905: 0xB0AE, - 29234 - 11905: 0xA091, - 29235 - 11905: 0xA092, - 29236 - 11905: 0xA093, - 29237 - 11905: 0xBEF4, - 29238 - 11905: 0xB8B8, - 29239 - 11905: 0xD2AF, - 29240 - 11905: 0xB0D6, - 29241 - 11905: 0xB5F9, - 29242 - 11905: 0xA094, - 29243 - 11905: 0xD8B3, - 29244 - 11905: 0xA095, - 29245 - 11905: 0xCBAC, - 29246 - 11905: 0xA096, - 29247 - 11905: 0xE3DD, - 29248 - 11905: 0xA097, - 29249 - 11905: 0xA098, - 29250 - 11905: 0xA099, - 29251 - 11905: 0xA09A, - 29252 - 11905: 0xA09B, - 29253 - 11905: 0xA09C, - 29254 - 11905: 0xA09D, - 29255 - 11905: 0xC6AC, - 29256 - 11905: 0xB0E6, - 29257 - 11905: 0xA09E, - 29258 - 11905: 0xA09F, - 29259 - 11905: 0xA0A0, - 29260 - 11905: 0xC5C6, - 29261 - 11905: 0xEBB9, - 29262 - 11905: 0xA0A1, - 29263 - 11905: 0xA0A2, - 29264 - 11905: 0xA0A3, - 29265 - 11905: 0xA0A4, - 29266 - 11905: 0xEBBA, - 29267 - 11905: 0xA0A5, - 29268 - 11905: 0xA0A6, - 29269 - 11905: 0xA0A7, - 29270 - 11905: 0xEBBB, - 29271 - 11905: 0xA0A8, - 29272 - 11905: 0xA0A9, - 29273 - 11905: 0xD1C0, - 29274 - 11905: 0xA0AA, - 29275 - 11905: 0xC5A3, - 29276 - 11905: 0xA0AB, - 29277 - 11905: 0xEAF2, - 29278 - 11905: 0xA0AC, - 29279 - 11905: 0xC4B2, - 29280 - 11905: 0xA0AD, - 29281 - 11905: 0xC4B5, - 29282 - 11905: 0xC0CE, - 29283 - 11905: 0xA0AE, - 29284 - 11905: 0xA0AF, - 29285 - 11905: 0xA0B0, - 29286 - 11905: 0xEAF3, - 29287 - 11905: 0xC4C1, - 29288 - 11905: 0xA0B1, - 29289 - 11905: 0xCEEF, - 29290 - 11905: 0xA0B2, - 29291 - 11905: 0xA0B3, - 29292 - 11905: 0xA0B4, - 29293 - 11905: 0xA0B5, - 29294 - 11905: 0xEAF0, - 29295 - 11905: 0xEAF4, - 29296 - 11905: 0xA0B6, - 29297 - 11905: 0xA0B7, - 29298 - 11905: 0xC9FC, - 29299 - 11905: 0xA0B8, - 29300 - 11905: 0xA0B9, - 29301 - 11905: 0xC7A3, - 29302 - 11905: 0xA0BA, - 29303 - 11905: 0xA0BB, - 29304 - 11905: 0xA0BC, - 29305 - 11905: 0xCCD8, - 29306 - 11905: 0xCEFE, - 29307 - 11905: 0xA0BD, - 29308 - 11905: 0xA0BE, - 29309 - 11905: 0xA0BF, - 29310 - 11905: 0xEAF5, - 29311 - 11905: 0xEAF6, - 29312 - 11905: 0xCFAC, - 29313 - 11905: 0xC0E7, - 29314 - 11905: 0xA0C0, - 29315 - 11905: 0xA0C1, - 29316 - 11905: 0xEAF7, - 29317 - 11905: 0xA0C2, - 29318 - 11905: 0xA0C3, - 29319 - 11905: 0xA0C4, - 29320 - 11905: 0xA0C5, - 29321 - 11905: 0xA0C6, - 29322 - 11905: 0xB6BF, - 29323 - 11905: 0xEAF8, - 29324 - 11905: 0xA0C7, - 29325 - 11905: 0xEAF9, - 29326 - 11905: 0xA0C8, - 29327 - 11905: 0xEAFA, - 29328 - 11905: 0xA0C9, - 29329 - 11905: 0xA0CA, - 29330 - 11905: 0xEAFB, - 29331 - 11905: 0xA0CB, - 29332 - 11905: 0xA0CC, - 29333 - 11905: 0xA0CD, - 29334 - 11905: 0xA0CE, - 29335 - 11905: 0xA0CF, - 29336 - 11905: 0xA0D0, - 29337 - 11905: 0xA0D1, - 29338 - 11905: 0xA0D2, - 29339 - 11905: 0xA0D3, - 29340 - 11905: 0xA0D4, - 29341 - 11905: 0xA0D5, - 29342 - 11905: 0xA0D6, - 29343 - 11905: 0xEAF1, - 29344 - 11905: 0xA0D7, - 29345 - 11905: 0xA0D8, - 29346 - 11905: 0xA0D9, - 29347 - 11905: 0xA0DA, - 29348 - 11905: 0xA0DB, - 29349 - 11905: 0xA0DC, - 29350 - 11905: 0xA0DD, - 29351 - 11905: 0xA0DE, - 29352 - 11905: 0xA0DF, - 29353 - 11905: 0xA0E0, - 29354 - 11905: 0xA0E1, - 29355 - 11905: 0xA0E2, - 29356 - 11905: 0xC8AE, - 29357 - 11905: 0xE1EB, - 29358 - 11905: 0xA0E3, - 29359 - 11905: 0xB7B8, - 29360 - 11905: 0xE1EC, - 29361 - 11905: 0xA0E4, - 29362 - 11905: 0xA0E5, - 29363 - 11905: 0xA0E6, - 29364 - 11905: 0xE1ED, - 29365 - 11905: 0xA0E7, - 29366 - 11905: 0xD7B4, - 29367 - 11905: 0xE1EE, - 29368 - 11905: 0xE1EF, - 29369 - 11905: 0xD3CC, - 29370 - 11905: 0xA0E8, - 29371 - 11905: 0xA0E9, - 29372 - 11905: 0xA0EA, - 29373 - 11905: 0xA0EB, - 29374 - 11905: 0xA0EC, - 29375 - 11905: 0xA0ED, - 29376 - 11905: 0xA0EE, - 29377 - 11905: 0xE1F1, - 29378 - 11905: 0xBFF1, - 29379 - 11905: 0xE1F0, - 29380 - 11905: 0xB5D2, - 29381 - 11905: 0xA0EF, - 29382 - 11905: 0xA0F0, - 29383 - 11905: 0xA0F1, - 29384 - 11905: 0xB1B7, - 29385 - 11905: 0xA0F2, - 29386 - 11905: 0xA0F3, - 29387 - 11905: 0xA0F4, - 29388 - 11905: 0xA0F5, - 29389 - 11905: 0xE1F3, - 29390 - 11905: 0xE1F2, - 29391 - 11905: 0xA0F6, - 29392 - 11905: 0xBAFC, - 29393 - 11905: 0xA0F7, - 29394 - 11905: 0xE1F4, - 29395 - 11905: 0xA0F8, - 29396 - 11905: 0xA0F9, - 29397 - 11905: 0xA0FA, - 29398 - 11905: 0xA0FB, - 29399 - 11905: 0xB9B7, - 29400 - 11905: 0xA0FC, - 29401 - 11905: 0xBED1, - 29402 - 11905: 0xA0FD, - 29403 - 11905: 0xA0FE, - 29404 - 11905: 0xAA40, - 29405 - 11905: 0xAA41, - 29406 - 11905: 0xC4FC, - 29407 - 11905: 0xAA42, - 29408 - 11905: 0xBADD, - 29409 - 11905: 0xBDC6, - 29410 - 11905: 0xAA43, - 29411 - 11905: 0xAA44, - 29412 - 11905: 0xAA45, - 29413 - 11905: 0xAA46, - 29414 - 11905: 0xAA47, - 29415 - 11905: 0xAA48, - 29416 - 11905: 0xE1F5, - 29417 - 11905: 0xE1F7, - 29418 - 11905: 0xAA49, - 29419 - 11905: 0xAA4A, - 29420 - 11905: 0xB6C0, - 29421 - 11905: 0xCFC1, - 29422 - 11905: 0xCAA8, - 29423 - 11905: 0xE1F6, - 29424 - 11905: 0xD5F8, - 29425 - 11905: 0xD3FC, - 29426 - 11905: 0xE1F8, - 29427 - 11905: 0xE1FC, - 29428 - 11905: 0xE1F9, - 29429 - 11905: 0xAA4B, - 29430 - 11905: 0xAA4C, - 29431 - 11905: 0xE1FA, - 29432 - 11905: 0xC0EA, - 29433 - 11905: 0xAA4D, - 29434 - 11905: 0xE1FE, - 29435 - 11905: 0xE2A1, - 29436 - 11905: 0xC0C7, - 29437 - 11905: 0xAA4E, - 29438 - 11905: 0xAA4F, - 29439 - 11905: 0xAA50, - 29440 - 11905: 0xAA51, - 29441 - 11905: 0xE1FB, - 29442 - 11905: 0xAA52, - 29443 - 11905: 0xE1FD, - 29444 - 11905: 0xAA53, - 29445 - 11905: 0xAA54, - 29446 - 11905: 0xAA55, - 29447 - 11905: 0xAA56, - 29448 - 11905: 0xAA57, - 29449 - 11905: 0xAA58, - 29450 - 11905: 0xE2A5, - 29451 - 11905: 0xAA59, - 29452 - 11905: 0xAA5A, - 29453 - 11905: 0xAA5B, - 29454 - 11905: 0xC1D4, - 29455 - 11905: 0xAA5C, - 29456 - 11905: 0xAA5D, - 29457 - 11905: 0xAA5E, - 29458 - 11905: 0xAA5F, - 29459 - 11905: 0xE2A3, - 29460 - 11905: 0xAA60, - 29461 - 11905: 0xE2A8, - 29462 - 11905: 0xB2FE, - 29463 - 11905: 0xE2A2, - 29464 - 11905: 0xAA61, - 29465 - 11905: 0xAA62, - 29466 - 11905: 0xAA63, - 29467 - 11905: 0xC3CD, - 29468 - 11905: 0xB2C2, - 29469 - 11905: 0xE2A7, - 29470 - 11905: 0xE2A6, - 29471 - 11905: 0xAA64, - 29472 - 11905: 0xAA65, - 29473 - 11905: 0xE2A4, - 29474 - 11905: 0xE2A9, - 29475 - 11905: 0xAA66, - 29476 - 11905: 0xAA67, - 29477 - 11905: 0xE2AB, - 29478 - 11905: 0xAA68, - 29479 - 11905: 0xAA69, - 29480 - 11905: 0xAA6A, - 29481 - 11905: 0xD0C9, - 29482 - 11905: 0xD6ED, - 29483 - 11905: 0xC3A8, - 29484 - 11905: 0xE2AC, - 29485 - 11905: 0xAA6B, - 29486 - 11905: 0xCFD7, - 29487 - 11905: 0xAA6C, - 29488 - 11905: 0xAA6D, - 29489 - 11905: 0xE2AE, - 29490 - 11905: 0xAA6E, - 29491 - 11905: 0xAA6F, - 29492 - 11905: 0xBAEF, - 29493 - 11905: 0xAA70, - 29494 - 11905: 0xAA71, - 29495 - 11905: 0xE9E0, - 29496 - 11905: 0xE2AD, - 29497 - 11905: 0xE2AA, - 29498 - 11905: 0xAA72, - 29499 - 11905: 0xAA73, - 29500 - 11905: 0xAA74, - 29501 - 11905: 0xAA75, - 29502 - 11905: 0xBBAB, - 29503 - 11905: 0xD4B3, - 29504 - 11905: 0xAA76, - 29505 - 11905: 0xAA77, - 29506 - 11905: 0xAA78, - 29507 - 11905: 0xAA79, - 29508 - 11905: 0xAA7A, - 29509 - 11905: 0xAA7B, - 29510 - 11905: 0xAA7C, - 29511 - 11905: 0xAA7D, - 29512 - 11905: 0xAA7E, - 29513 - 11905: 0xAA80, - 29514 - 11905: 0xAA81, - 29515 - 11905: 0xAA82, - 29516 - 11905: 0xAA83, - 29517 - 11905: 0xE2B0, - 29518 - 11905: 0xAA84, - 29519 - 11905: 0xAA85, - 29520 - 11905: 0xE2AF, - 29521 - 11905: 0xAA86, - 29522 - 11905: 0xE9E1, - 29523 - 11905: 0xAA87, - 29524 - 11905: 0xAA88, - 29525 - 11905: 0xAA89, - 29526 - 11905: 0xAA8A, - 29527 - 11905: 0xE2B1, - 29528 - 11905: 0xAA8B, - 29529 - 11905: 0xAA8C, - 29530 - 11905: 0xAA8D, - 29531 - 11905: 0xAA8E, - 29532 - 11905: 0xAA8F, - 29533 - 11905: 0xAA90, - 29534 - 11905: 0xAA91, - 29535 - 11905: 0xAA92, - 29536 - 11905: 0xE2B2, - 29537 - 11905: 0xAA93, - 29538 - 11905: 0xAA94, - 29539 - 11905: 0xAA95, - 29540 - 11905: 0xAA96, - 29541 - 11905: 0xAA97, - 29542 - 11905: 0xAA98, - 29543 - 11905: 0xAA99, - 29544 - 11905: 0xAA9A, - 29545 - 11905: 0xAA9B, - 29546 - 11905: 0xAA9C, - 29547 - 11905: 0xAA9D, - 29548 - 11905: 0xE2B3, - 29549 - 11905: 0xCCA1, - 29550 - 11905: 0xAA9E, - 29551 - 11905: 0xE2B4, - 29552 - 11905: 0xAA9F, - 29553 - 11905: 0xAAA0, - 29554 - 11905: 0xAB40, - 29555 - 11905: 0xAB41, - 29556 - 11905: 0xAB42, - 29557 - 11905: 0xAB43, - 29558 - 11905: 0xAB44, - 29559 - 11905: 0xAB45, - 29560 - 11905: 0xAB46, - 29561 - 11905: 0xAB47, - 29562 - 11905: 0xAB48, - 29563 - 11905: 0xAB49, - 29564 - 11905: 0xAB4A, - 29565 - 11905: 0xAB4B, - 29566 - 11905: 0xE2B5, - 29567 - 11905: 0xAB4C, - 29568 - 11905: 0xAB4D, - 29569 - 11905: 0xAB4E, - 29570 - 11905: 0xAB4F, - 29571 - 11905: 0xAB50, - 29572 - 11905: 0xD0FE, - 29573 - 11905: 0xAB51, - 29574 - 11905: 0xAB52, - 29575 - 11905: 0xC2CA, - 29576 - 11905: 0xAB53, - 29577 - 11905: 0xD3F1, - 29578 - 11905: 0xAB54, - 29579 - 11905: 0xCDF5, - 29580 - 11905: 0xAB55, - 29581 - 11905: 0xAB56, - 29582 - 11905: 0xE7E0, - 29583 - 11905: 0xAB57, - 29584 - 11905: 0xAB58, - 29585 - 11905: 0xE7E1, - 29586 - 11905: 0xAB59, - 29587 - 11905: 0xAB5A, - 29588 - 11905: 0xAB5B, - 29589 - 11905: 0xAB5C, - 29590 - 11905: 0xBEC1, - 29591 - 11905: 0xAB5D, - 29592 - 11905: 0xAB5E, - 29593 - 11905: 0xAB5F, - 29594 - 11905: 0xAB60, - 29595 - 11905: 0xC2EA, - 29596 - 11905: 0xAB61, - 29597 - 11905: 0xAB62, - 29598 - 11905: 0xAB63, - 29599 - 11905: 0xE7E4, - 29600 - 11905: 0xAB64, - 29601 - 11905: 0xAB65, - 29602 - 11905: 0xE7E3, - 29603 - 11905: 0xAB66, - 29604 - 11905: 0xAB67, - 29605 - 11905: 0xAB68, - 29606 - 11905: 0xAB69, - 29607 - 11905: 0xAB6A, - 29608 - 11905: 0xAB6B, - 29609 - 11905: 0xCDE6, - 29610 - 11905: 0xAB6C, - 29611 - 11905: 0xC3B5, - 29612 - 11905: 0xAB6D, - 29613 - 11905: 0xAB6E, - 29614 - 11905: 0xE7E2, - 29615 - 11905: 0xBBB7, - 29616 - 11905: 0xCFD6, - 29617 - 11905: 0xAB6F, - 29618 - 11905: 0xC1E1, - 29619 - 11905: 0xE7E9, - 29620 - 11905: 0xAB70, - 29621 - 11905: 0xAB71, - 29622 - 11905: 0xAB72, - 29623 - 11905: 0xE7E8, - 29624 - 11905: 0xAB73, - 29625 - 11905: 0xAB74, - 29626 - 11905: 0xE7F4, - 29627 - 11905: 0xB2A3, - 29628 - 11905: 0xAB75, - 29629 - 11905: 0xAB76, - 29630 - 11905: 0xAB77, - 29631 - 11905: 0xAB78, - 29632 - 11905: 0xE7EA, - 29633 - 11905: 0xAB79, - 29634 - 11905: 0xE7E6, - 29635 - 11905: 0xAB7A, - 29636 - 11905: 0xAB7B, - 29637 - 11905: 0xAB7C, - 29638 - 11905: 0xAB7D, - 29639 - 11905: 0xAB7E, - 29640 - 11905: 0xE7EC, - 29641 - 11905: 0xE7EB, - 29642 - 11905: 0xC9BA, - 29643 - 11905: 0xAB80, - 29644 - 11905: 0xAB81, - 29645 - 11905: 0xD5E4, - 29646 - 11905: 0xAB82, - 29647 - 11905: 0xE7E5, - 29648 - 11905: 0xB7A9, - 29649 - 11905: 0xE7E7, - 29650 - 11905: 0xAB83, - 29651 - 11905: 0xAB84, - 29652 - 11905: 0xAB85, - 29653 - 11905: 0xAB86, - 29654 - 11905: 0xAB87, - 29655 - 11905: 0xAB88, - 29656 - 11905: 0xAB89, - 29657 - 11905: 0xE7EE, - 29658 - 11905: 0xAB8A, - 29659 - 11905: 0xAB8B, - 29660 - 11905: 0xAB8C, - 29661 - 11905: 0xAB8D, - 29662 - 11905: 0xE7F3, - 29663 - 11905: 0xAB8E, - 29664 - 11905: 0xD6E9, - 29665 - 11905: 0xAB8F, - 29666 - 11905: 0xAB90, - 29667 - 11905: 0xAB91, - 29668 - 11905: 0xAB92, - 29669 - 11905: 0xE7ED, - 29670 - 11905: 0xAB93, - 29671 - 11905: 0xE7F2, - 29672 - 11905: 0xAB94, - 29673 - 11905: 0xE7F1, - 29674 - 11905: 0xAB95, - 29675 - 11905: 0xAB96, - 29676 - 11905: 0xAB97, - 29677 - 11905: 0xB0E0, - 29678 - 11905: 0xAB98, - 29679 - 11905: 0xAB99, - 29680 - 11905: 0xAB9A, - 29681 - 11905: 0xAB9B, - 29682 - 11905: 0xE7F5, - 29683 - 11905: 0xAB9C, - 29684 - 11905: 0xAB9D, - 29685 - 11905: 0xAB9E, - 29686 - 11905: 0xAB9F, - 29687 - 11905: 0xABA0, - 29688 - 11905: 0xAC40, - 29689 - 11905: 0xAC41, - 29690 - 11905: 0xAC42, - 29691 - 11905: 0xAC43, - 29692 - 11905: 0xAC44, - 29693 - 11905: 0xAC45, - 29694 - 11905: 0xAC46, - 29695 - 11905: 0xAC47, - 29696 - 11905: 0xAC48, - 29697 - 11905: 0xAC49, - 29698 - 11905: 0xAC4A, - 29699 - 11905: 0xC7F2, - 29700 - 11905: 0xAC4B, - 29701 - 11905: 0xC0C5, - 29702 - 11905: 0xC0ED, - 29703 - 11905: 0xAC4C, - 29704 - 11905: 0xAC4D, - 29705 - 11905: 0xC1F0, - 29706 - 11905: 0xE7F0, - 29707 - 11905: 0xAC4E, - 29708 - 11905: 0xAC4F, - 29709 - 11905: 0xAC50, - 29710 - 11905: 0xAC51, - 29711 - 11905: 0xE7F6, - 29712 - 11905: 0xCBF6, - 29713 - 11905: 0xAC52, - 29714 - 11905: 0xAC53, - 29715 - 11905: 0xAC54, - 29716 - 11905: 0xAC55, - 29717 - 11905: 0xAC56, - 29718 - 11905: 0xAC57, - 29719 - 11905: 0xAC58, - 29720 - 11905: 0xAC59, - 29721 - 11905: 0xAC5A, - 29722 - 11905: 0xE8A2, - 29723 - 11905: 0xE8A1, - 29724 - 11905: 0xAC5B, - 29725 - 11905: 0xAC5C, - 29726 - 11905: 0xAC5D, - 29727 - 11905: 0xAC5E, - 29728 - 11905: 0xAC5F, - 29729 - 11905: 0xAC60, - 29730 - 11905: 0xD7C1, - 29731 - 11905: 0xAC61, - 29732 - 11905: 0xAC62, - 29733 - 11905: 0xE7FA, - 29734 - 11905: 0xE7F9, - 29735 - 11905: 0xAC63, - 29736 - 11905: 0xE7FB, - 29737 - 11905: 0xAC64, - 29738 - 11905: 0xE7F7, - 29739 - 11905: 0xAC65, - 29740 - 11905: 0xE7FE, - 29741 - 11905: 0xAC66, - 29742 - 11905: 0xE7FD, - 29743 - 11905: 0xAC67, - 29744 - 11905: 0xE7FC, - 29745 - 11905: 0xAC68, - 29746 - 11905: 0xAC69, - 29747 - 11905: 0xC1D5, - 29748 - 11905: 0xC7D9, - 29749 - 11905: 0xC5FD, - 29750 - 11905: 0xC5C3, - 29751 - 11905: 0xAC6A, - 29752 - 11905: 0xAC6B, - 29753 - 11905: 0xAC6C, - 29754 - 11905: 0xAC6D, - 29755 - 11905: 0xAC6E, - 29756 - 11905: 0xC7ED, - 29757 - 11905: 0xAC6F, - 29758 - 11905: 0xAC70, - 29759 - 11905: 0xAC71, - 29760 - 11905: 0xAC72, - 29761 - 11905: 0xE8A3, - 29762 - 11905: 0xAC73, - 29763 - 11905: 0xAC74, - 29764 - 11905: 0xAC75, - 29765 - 11905: 0xAC76, - 29766 - 11905: 0xAC77, - 29767 - 11905: 0xAC78, - 29768 - 11905: 0xAC79, - 29769 - 11905: 0xAC7A, - 29770 - 11905: 0xAC7B, - 29771 - 11905: 0xAC7C, - 29772 - 11905: 0xAC7D, - 29773 - 11905: 0xAC7E, - 29774 - 11905: 0xAC80, - 29775 - 11905: 0xAC81, - 29776 - 11905: 0xAC82, - 29777 - 11905: 0xAC83, - 29778 - 11905: 0xAC84, - 29779 - 11905: 0xAC85, - 29780 - 11905: 0xAC86, - 29781 - 11905: 0xE8A6, - 29782 - 11905: 0xAC87, - 29783 - 11905: 0xE8A5, - 29784 - 11905: 0xAC88, - 29785 - 11905: 0xE8A7, - 29786 - 11905: 0xBAF7, - 29787 - 11905: 0xE7F8, - 29788 - 11905: 0xE8A4, - 29789 - 11905: 0xAC89, - 29790 - 11905: 0xC8F0, - 29791 - 11905: 0xC9AA, - 29792 - 11905: 0xAC8A, - 29793 - 11905: 0xAC8B, - 29794 - 11905: 0xAC8C, - 29795 - 11905: 0xAC8D, - 29796 - 11905: 0xAC8E, - 29797 - 11905: 0xAC8F, - 29798 - 11905: 0xAC90, - 29799 - 11905: 0xAC91, - 29800 - 11905: 0xAC92, - 29801 - 11905: 0xAC93, - 29802 - 11905: 0xAC94, - 29803 - 11905: 0xAC95, - 29804 - 11905: 0xAC96, - 29805 - 11905: 0xE8A9, - 29806 - 11905: 0xAC97, - 29807 - 11905: 0xAC98, - 29808 - 11905: 0xB9E5, - 29809 - 11905: 0xAC99, - 29810 - 11905: 0xAC9A, - 29811 - 11905: 0xAC9B, - 29812 - 11905: 0xAC9C, - 29813 - 11905: 0xAC9D, - 29814 - 11905: 0xD1FE, - 29815 - 11905: 0xE8A8, - 29816 - 11905: 0xAC9E, - 29817 - 11905: 0xAC9F, - 29818 - 11905: 0xACA0, - 29819 - 11905: 0xAD40, - 29820 - 11905: 0xAD41, - 29821 - 11905: 0xAD42, - 29822 - 11905: 0xE8AA, - 29823 - 11905: 0xAD43, - 29824 - 11905: 0xE8AD, - 29825 - 11905: 0xE8AE, - 29826 - 11905: 0xAD44, - 29827 - 11905: 0xC1A7, - 29828 - 11905: 0xAD45, - 29829 - 11905: 0xAD46, - 29830 - 11905: 0xAD47, - 29831 - 11905: 0xE8AF, - 29832 - 11905: 0xAD48, - 29833 - 11905: 0xAD49, - 29834 - 11905: 0xAD4A, - 29835 - 11905: 0xE8B0, - 29836 - 11905: 0xAD4B, - 29837 - 11905: 0xAD4C, - 29838 - 11905: 0xE8AC, - 29839 - 11905: 0xAD4D, - 29840 - 11905: 0xE8B4, - 29841 - 11905: 0xAD4E, - 29842 - 11905: 0xAD4F, - 29843 - 11905: 0xAD50, - 29844 - 11905: 0xAD51, - 29845 - 11905: 0xAD52, - 29846 - 11905: 0xAD53, - 29847 - 11905: 0xAD54, - 29848 - 11905: 0xAD55, - 29849 - 11905: 0xAD56, - 29850 - 11905: 0xAD57, - 29851 - 11905: 0xAD58, - 29852 - 11905: 0xE8AB, - 29853 - 11905: 0xAD59, - 29854 - 11905: 0xE8B1, - 29855 - 11905: 0xAD5A, - 29856 - 11905: 0xAD5B, - 29857 - 11905: 0xAD5C, - 29858 - 11905: 0xAD5D, - 29859 - 11905: 0xAD5E, - 29860 - 11905: 0xAD5F, - 29861 - 11905: 0xAD60, - 29862 - 11905: 0xAD61, - 29863 - 11905: 0xE8B5, - 29864 - 11905: 0xE8B2, - 29865 - 11905: 0xE8B3, - 29866 - 11905: 0xAD62, - 29867 - 11905: 0xAD63, - 29868 - 11905: 0xAD64, - 29869 - 11905: 0xAD65, - 29870 - 11905: 0xAD66, - 29871 - 11905: 0xAD67, - 29872 - 11905: 0xAD68, - 29873 - 11905: 0xAD69, - 29874 - 11905: 0xAD6A, - 29875 - 11905: 0xAD6B, - 29876 - 11905: 0xAD6C, - 29877 - 11905: 0xAD6D, - 29878 - 11905: 0xAD6E, - 29879 - 11905: 0xAD6F, - 29880 - 11905: 0xAD70, - 29881 - 11905: 0xAD71, - 29882 - 11905: 0xE8B7, - 29883 - 11905: 0xAD72, - 29884 - 11905: 0xAD73, - 29885 - 11905: 0xAD74, - 29886 - 11905: 0xAD75, - 29887 - 11905: 0xAD76, - 29888 - 11905: 0xAD77, - 29889 - 11905: 0xAD78, - 29890 - 11905: 0xAD79, - 29891 - 11905: 0xAD7A, - 29892 - 11905: 0xAD7B, - 29893 - 11905: 0xAD7C, - 29894 - 11905: 0xAD7D, - 29895 - 11905: 0xAD7E, - 29896 - 11905: 0xAD80, - 29897 - 11905: 0xAD81, - 29898 - 11905: 0xAD82, - 29899 - 11905: 0xAD83, - 29900 - 11905: 0xAD84, - 29901 - 11905: 0xAD85, - 29902 - 11905: 0xAD86, - 29903 - 11905: 0xAD87, - 29904 - 11905: 0xAD88, - 29905 - 11905: 0xAD89, - 29906 - 11905: 0xE8B6, - 29907 - 11905: 0xAD8A, - 29908 - 11905: 0xAD8B, - 29909 - 11905: 0xAD8C, - 29910 - 11905: 0xAD8D, - 29911 - 11905: 0xAD8E, - 29912 - 11905: 0xAD8F, - 29913 - 11905: 0xAD90, - 29914 - 11905: 0xAD91, - 29915 - 11905: 0xAD92, - 29916 - 11905: 0xB9CF, - 29917 - 11905: 0xAD93, - 29918 - 11905: 0xF0AC, - 29919 - 11905: 0xAD94, - 29920 - 11905: 0xF0AD, - 29921 - 11905: 0xAD95, - 29922 - 11905: 0xC6B0, - 29923 - 11905: 0xB0EA, - 29924 - 11905: 0xC8BF, - 29925 - 11905: 0xAD96, - 29926 - 11905: 0xCDDF, - 29927 - 11905: 0xAD97, - 29928 - 11905: 0xAD98, - 29929 - 11905: 0xAD99, - 29930 - 11905: 0xAD9A, - 29931 - 11905: 0xAD9B, - 29932 - 11905: 0xAD9C, - 29933 - 11905: 0xAD9D, - 29934 - 11905: 0xCECD, - 29935 - 11905: 0xEAB1, - 29936 - 11905: 0xAD9E, - 29937 - 11905: 0xAD9F, - 29938 - 11905: 0xADA0, - 29939 - 11905: 0xAE40, - 29940 - 11905: 0xEAB2, - 29941 - 11905: 0xAE41, - 29942 - 11905: 0xC6BF, - 29943 - 11905: 0xB4C9, - 29944 - 11905: 0xAE42, - 29945 - 11905: 0xAE43, - 29946 - 11905: 0xAE44, - 29947 - 11905: 0xAE45, - 29948 - 11905: 0xAE46, - 29949 - 11905: 0xAE47, - 29950 - 11905: 0xAE48, - 29951 - 11905: 0xEAB3, - 29952 - 11905: 0xAE49, - 29953 - 11905: 0xAE4A, - 29954 - 11905: 0xAE4B, - 29955 - 11905: 0xAE4C, - 29956 - 11905: 0xD5E7, - 29957 - 11905: 0xAE4D, - 29958 - 11905: 0xAE4E, - 29959 - 11905: 0xAE4F, - 29960 - 11905: 0xAE50, - 29961 - 11905: 0xAE51, - 29962 - 11905: 0xAE52, - 29963 - 11905: 0xAE53, - 29964 - 11905: 0xAE54, - 29965 - 11905: 0xDDF9, - 29966 - 11905: 0xAE55, - 29967 - 11905: 0xEAB4, - 29968 - 11905: 0xAE56, - 29969 - 11905: 0xEAB5, - 29970 - 11905: 0xAE57, - 29971 - 11905: 0xEAB6, - 29972 - 11905: 0xAE58, - 29973 - 11905: 0xAE59, - 29974 - 11905: 0xAE5A, - 29975 - 11905: 0xAE5B, - 29976 - 11905: 0xB8CA, - 29977 - 11905: 0xDFB0, - 29978 - 11905: 0xC9F5, - 29979 - 11905: 0xAE5C, - 29980 - 11905: 0xCCF0, - 29981 - 11905: 0xAE5D, - 29982 - 11905: 0xAE5E, - 29983 - 11905: 0xC9FA, - 29984 - 11905: 0xAE5F, - 29985 - 11905: 0xAE60, - 29986 - 11905: 0xAE61, - 29987 - 11905: 0xAE62, - 29988 - 11905: 0xAE63, - 29989 - 11905: 0xC9FB, - 29990 - 11905: 0xAE64, - 29991 - 11905: 0xAE65, - 29992 - 11905: 0xD3C3, - 29993 - 11905: 0xCBA6, - 29994 - 11905: 0xAE66, - 29995 - 11905: 0xB8A6, - 29996 - 11905: 0xF0AE, - 29997 - 11905: 0xB1C2, - 29998 - 11905: 0xAE67, - 29999 - 11905: 0xE5B8, - 30000 - 11905: 0xCCEF, - 30001 - 11905: 0xD3C9, - 30002 - 11905: 0xBCD7, - 30003 - 11905: 0xC9EA, - 30004 - 11905: 0xAE68, - 30005 - 11905: 0xB5E7, - 30006 - 11905: 0xAE69, - 30007 - 11905: 0xC4D0, - 30008 - 11905: 0xB5E9, - 30009 - 11905: 0xAE6A, - 30010 - 11905: 0xEEAE, - 30011 - 11905: 0xBBAD, - 30012 - 11905: 0xAE6B, - 30013 - 11905: 0xAE6C, - 30014 - 11905: 0xE7DE, - 30015 - 11905: 0xAE6D, - 30016 - 11905: 0xEEAF, - 30017 - 11905: 0xAE6E, - 30018 - 11905: 0xAE6F, - 30019 - 11905: 0xAE70, - 30020 - 11905: 0xAE71, - 30021 - 11905: 0xB3A9, - 30022 - 11905: 0xAE72, - 30023 - 11905: 0xAE73, - 30024 - 11905: 0xEEB2, - 30025 - 11905: 0xAE74, - 30026 - 11905: 0xAE75, - 30027 - 11905: 0xEEB1, - 30028 - 11905: 0xBDE7, - 30029 - 11905: 0xAE76, - 30030 - 11905: 0xEEB0, - 30031 - 11905: 0xCEB7, - 30032 - 11905: 0xAE77, - 30033 - 11905: 0xAE78, - 30034 - 11905: 0xAE79, - 30035 - 11905: 0xAE7A, - 30036 - 11905: 0xC5CF, - 30037 - 11905: 0xAE7B, - 30038 - 11905: 0xAE7C, - 30039 - 11905: 0xAE7D, - 30040 - 11905: 0xAE7E, - 30041 - 11905: 0xC1F4, - 30042 - 11905: 0xDBCE, - 30043 - 11905: 0xEEB3, - 30044 - 11905: 0xD0F3, - 30045 - 11905: 0xAE80, - 30046 - 11905: 0xAE81, - 30047 - 11905: 0xAE82, - 30048 - 11905: 0xAE83, - 30049 - 11905: 0xAE84, - 30050 - 11905: 0xAE85, - 30051 - 11905: 0xAE86, - 30052 - 11905: 0xAE87, - 30053 - 11905: 0xC2D4, - 30054 - 11905: 0xC6E8, - 30055 - 11905: 0xAE88, - 30056 - 11905: 0xAE89, - 30057 - 11905: 0xAE8A, - 30058 - 11905: 0xB7AC, - 30059 - 11905: 0xAE8B, - 30060 - 11905: 0xAE8C, - 30061 - 11905: 0xAE8D, - 30062 - 11905: 0xAE8E, - 30063 - 11905: 0xAE8F, - 30064 - 11905: 0xAE90, - 30065 - 11905: 0xAE91, - 30066 - 11905: 0xEEB4, - 30067 - 11905: 0xAE92, - 30068 - 11905: 0xB3EB, - 30069 - 11905: 0xAE93, - 30070 - 11905: 0xAE94, - 30071 - 11905: 0xAE95, - 30072 - 11905: 0xBBFB, - 30073 - 11905: 0xEEB5, - 30074 - 11905: 0xAE96, - 30075 - 11905: 0xAE97, - 30076 - 11905: 0xAE98, - 30077 - 11905: 0xAE99, - 30078 - 11905: 0xAE9A, - 30079 - 11905: 0xE7DC, - 30080 - 11905: 0xAE9B, - 30081 - 11905: 0xAE9C, - 30082 - 11905: 0xAE9D, - 30083 - 11905: 0xEEB6, - 30084 - 11905: 0xAE9E, - 30085 - 11905: 0xAE9F, - 30086 - 11905: 0xBDAE, - 30087 - 11905: 0xAEA0, - 30088 - 11905: 0xAF40, - 30089 - 11905: 0xAF41, - 30090 - 11905: 0xAF42, - 30091 - 11905: 0xF1E2, - 30092 - 11905: 0xAF43, - 30093 - 11905: 0xAF44, - 30094 - 11905: 0xAF45, - 30095 - 11905: 0xCAE8, - 30096 - 11905: 0xAF46, - 30097 - 11905: 0xD2C9, - 30098 - 11905: 0xF0DA, - 30099 - 11905: 0xAF47, - 30100 - 11905: 0xF0DB, - 30101 - 11905: 0xAF48, - 30102 - 11905: 0xF0DC, - 30103 - 11905: 0xC1C6, - 30104 - 11905: 0xAF49, - 30105 - 11905: 0xB8ED, - 30106 - 11905: 0xBECE, - 30107 - 11905: 0xAF4A, - 30108 - 11905: 0xAF4B, - 30109 - 11905: 0xF0DE, - 30110 - 11905: 0xAF4C, - 30111 - 11905: 0xC5B1, - 30112 - 11905: 0xF0DD, - 30113 - 11905: 0xD1F1, - 30114 - 11905: 0xAF4D, - 30115 - 11905: 0xF0E0, - 30116 - 11905: 0xB0CC, - 30117 - 11905: 0xBDEA, - 30118 - 11905: 0xAF4E, - 30119 - 11905: 0xAF4F, - 30120 - 11905: 0xAF50, - 30121 - 11905: 0xAF51, - 30122 - 11905: 0xAF52, - 30123 - 11905: 0xD2DF, - 30124 - 11905: 0xF0DF, - 30125 - 11905: 0xAF53, - 30126 - 11905: 0xB4AF, - 30127 - 11905: 0xB7E8, - 30128 - 11905: 0xF0E6, - 30129 - 11905: 0xF0E5, - 30130 - 11905: 0xC6A3, - 30131 - 11905: 0xF0E1, - 30132 - 11905: 0xF0E2, - 30133 - 11905: 0xB4C3, - 30134 - 11905: 0xAF54, - 30135 - 11905: 0xAF55, - 30136 - 11905: 0xF0E3, - 30137 - 11905: 0xD5EE, - 30138 - 11905: 0xAF56, - 30139 - 11905: 0xAF57, - 30140 - 11905: 0xCCDB, - 30141 - 11905: 0xBED2, - 30142 - 11905: 0xBCB2, - 30143 - 11905: 0xAF58, - 30144 - 11905: 0xAF59, - 30145 - 11905: 0xAF5A, - 30146 - 11905: 0xF0E8, - 30147 - 11905: 0xF0E7, - 30148 - 11905: 0xF0E4, - 30149 - 11905: 0xB2A1, - 30150 - 11905: 0xAF5B, - 30151 - 11905: 0xD6A2, - 30152 - 11905: 0xD3B8, - 30153 - 11905: 0xBEB7, - 30154 - 11905: 0xC8AC, - 30155 - 11905: 0xAF5C, - 30156 - 11905: 0xAF5D, - 30157 - 11905: 0xF0EA, - 30158 - 11905: 0xAF5E, - 30159 - 11905: 0xAF5F, - 30160 - 11905: 0xAF60, - 30161 - 11905: 0xAF61, - 30162 - 11905: 0xD1F7, - 30163 - 11905: 0xAF62, - 30164 - 11905: 0xD6CC, - 30165 - 11905: 0xBADB, - 30166 - 11905: 0xF0E9, - 30167 - 11905: 0xAF63, - 30168 - 11905: 0xB6BB, - 30169 - 11905: 0xAF64, - 30170 - 11905: 0xAF65, - 30171 - 11905: 0xCDB4, - 30172 - 11905: 0xAF66, - 30173 - 11905: 0xAF67, - 30174 - 11905: 0xC6A6, - 30175 - 11905: 0xAF68, - 30176 - 11905: 0xAF69, - 30177 - 11905: 0xAF6A, - 30178 - 11905: 0xC1A1, - 30179 - 11905: 0xF0EB, - 30180 - 11905: 0xF0EE, - 30181 - 11905: 0xAF6B, - 30182 - 11905: 0xF0ED, - 30183 - 11905: 0xF0F0, - 30184 - 11905: 0xF0EC, - 30185 - 11905: 0xAF6C, - 30186 - 11905: 0xBBBE, - 30187 - 11905: 0xF0EF, - 30188 - 11905: 0xAF6D, - 30189 - 11905: 0xAF6E, - 30190 - 11905: 0xAF6F, - 30191 - 11905: 0xAF70, - 30192 - 11905: 0xCCB5, - 30193 - 11905: 0xF0F2, - 30194 - 11905: 0xAF71, - 30195 - 11905: 0xAF72, - 30196 - 11905: 0xB3D5, - 30197 - 11905: 0xAF73, - 30198 - 11905: 0xAF74, - 30199 - 11905: 0xAF75, - 30200 - 11905: 0xAF76, - 30201 - 11905: 0xB1D4, - 30202 - 11905: 0xAF77, - 30203 - 11905: 0xAF78, - 30204 - 11905: 0xF0F3, - 30205 - 11905: 0xAF79, - 30206 - 11905: 0xAF7A, - 30207 - 11905: 0xF0F4, - 30208 - 11905: 0xF0F6, - 30209 - 11905: 0xB4E1, - 30210 - 11905: 0xAF7B, - 30211 - 11905: 0xF0F1, - 30212 - 11905: 0xAF7C, - 30213 - 11905: 0xF0F7, - 30214 - 11905: 0xAF7D, - 30215 - 11905: 0xAF7E, - 30216 - 11905: 0xAF80, - 30217 - 11905: 0xAF81, - 30218 - 11905: 0xF0FA, - 30219 - 11905: 0xAF82, - 30220 - 11905: 0xF0F8, - 30221 - 11905: 0xAF83, - 30222 - 11905: 0xAF84, - 30223 - 11905: 0xAF85, - 30224 - 11905: 0xF0F5, - 30225 - 11905: 0xAF86, - 30226 - 11905: 0xAF87, - 30227 - 11905: 0xAF88, - 30228 - 11905: 0xAF89, - 30229 - 11905: 0xF0FD, - 30230 - 11905: 0xAF8A, - 30231 - 11905: 0xF0F9, - 30232 - 11905: 0xF0FC, - 30233 - 11905: 0xF0FE, - 30234 - 11905: 0xAF8B, - 30235 - 11905: 0xF1A1, - 30236 - 11905: 0xAF8C, - 30237 - 11905: 0xAF8D, - 30238 - 11905: 0xAF8E, - 30239 - 11905: 0xCEC1, - 30240 - 11905: 0xF1A4, - 30241 - 11905: 0xAF8F, - 30242 - 11905: 0xF1A3, - 30243 - 11905: 0xAF90, - 30244 - 11905: 0xC1F6, - 30245 - 11905: 0xF0FB, - 30246 - 11905: 0xCADD, - 30247 - 11905: 0xAF91, - 30248 - 11905: 0xAF92, - 30249 - 11905: 0xB4F1, - 30250 - 11905: 0xB1F1, - 30251 - 11905: 0xCCB1, - 30252 - 11905: 0xAF93, - 30253 - 11905: 0xF1A6, - 30254 - 11905: 0xAF94, - 30255 - 11905: 0xAF95, - 30256 - 11905: 0xF1A7, - 30257 - 11905: 0xAF96, - 30258 - 11905: 0xAF97, - 30259 - 11905: 0xF1AC, - 30260 - 11905: 0xD5CE, - 30261 - 11905: 0xF1A9, - 30262 - 11905: 0xAF98, - 30263 - 11905: 0xAF99, - 30264 - 11905: 0xC8B3, - 30265 - 11905: 0xAF9A, - 30266 - 11905: 0xAF9B, - 30267 - 11905: 0xAF9C, - 30268 - 11905: 0xF1A2, - 30269 - 11905: 0xAF9D, - 30270 - 11905: 0xF1AB, - 30271 - 11905: 0xF1A8, - 30272 - 11905: 0xF1A5, - 30273 - 11905: 0xAF9E, - 30274 - 11905: 0xAF9F, - 30275 - 11905: 0xF1AA, - 30276 - 11905: 0xAFA0, - 30277 - 11905: 0xB040, - 30278 - 11905: 0xB041, - 30279 - 11905: 0xB042, - 30280 - 11905: 0xB043, - 30281 - 11905: 0xB044, - 30282 - 11905: 0xB045, - 30283 - 11905: 0xB046, - 30284 - 11905: 0xB0A9, - 30285 - 11905: 0xF1AD, - 30286 - 11905: 0xB047, - 30287 - 11905: 0xB048, - 30288 - 11905: 0xB049, - 30289 - 11905: 0xB04A, - 30290 - 11905: 0xB04B, - 30291 - 11905: 0xB04C, - 30292 - 11905: 0xF1AF, - 30293 - 11905: 0xB04D, - 30294 - 11905: 0xF1B1, - 30295 - 11905: 0xB04E, - 30296 - 11905: 0xB04F, - 30297 - 11905: 0xB050, - 30298 - 11905: 0xB051, - 30299 - 11905: 0xB052, - 30300 - 11905: 0xF1B0, - 30301 - 11905: 0xB053, - 30302 - 11905: 0xF1AE, - 30303 - 11905: 0xB054, - 30304 - 11905: 0xB055, - 30305 - 11905: 0xB056, - 30306 - 11905: 0xB057, - 30307 - 11905: 0xD1A2, - 30308 - 11905: 0xB058, - 30309 - 11905: 0xB059, - 30310 - 11905: 0xB05A, - 30311 - 11905: 0xB05B, - 30312 - 11905: 0xB05C, - 30313 - 11905: 0xB05D, - 30314 - 11905: 0xB05E, - 30315 - 11905: 0xF1B2, - 30316 - 11905: 0xB05F, - 30317 - 11905: 0xB060, - 30318 - 11905: 0xB061, - 30319 - 11905: 0xF1B3, - 30320 - 11905: 0xB062, - 30321 - 11905: 0xB063, - 30322 - 11905: 0xB064, - 30323 - 11905: 0xB065, - 30324 - 11905: 0xB066, - 30325 - 11905: 0xB067, - 30326 - 11905: 0xB068, - 30327 - 11905: 0xB069, - 30328 - 11905: 0xB9EF, - 30329 - 11905: 0xB06A, - 30330 - 11905: 0xB06B, - 30331 - 11905: 0xB5C7, - 30332 - 11905: 0xB06C, - 30333 - 11905: 0xB0D7, - 30334 - 11905: 0xB0D9, - 30335 - 11905: 0xB06D, - 30336 - 11905: 0xB06E, - 30337 - 11905: 0xB06F, - 30338 - 11905: 0xD4ED, - 30339 - 11905: 0xB070, - 30340 - 11905: 0xB5C4, - 30341 - 11905: 0xB071, - 30342 - 11905: 0xBDD4, - 30343 - 11905: 0xBBCA, - 30344 - 11905: 0xF0A7, - 30345 - 11905: 0xB072, - 30346 - 11905: 0xB073, - 30347 - 11905: 0xB8DE, - 30348 - 11905: 0xB074, - 30349 - 11905: 0xB075, - 30350 - 11905: 0xF0A8, - 30351 - 11905: 0xB076, - 30352 - 11905: 0xB077, - 30353 - 11905: 0xB0A8, - 30354 - 11905: 0xB078, - 30355 - 11905: 0xF0A9, - 30356 - 11905: 0xB079, - 30357 - 11905: 0xB07A, - 30358 - 11905: 0xCDEE, - 30359 - 11905: 0xB07B, - 30360 - 11905: 0xB07C, - 30361 - 11905: 0xF0AA, - 30362 - 11905: 0xB07D, - 30363 - 11905: 0xB07E, - 30364 - 11905: 0xB080, - 30365 - 11905: 0xB081, - 30366 - 11905: 0xB082, - 30367 - 11905: 0xB083, - 30368 - 11905: 0xB084, - 30369 - 11905: 0xB085, - 30370 - 11905: 0xB086, - 30371 - 11905: 0xB087, - 30372 - 11905: 0xF0AB, - 30373 - 11905: 0xB088, - 30374 - 11905: 0xB089, - 30375 - 11905: 0xB08A, - 30376 - 11905: 0xB08B, - 30377 - 11905: 0xB08C, - 30378 - 11905: 0xB08D, - 30379 - 11905: 0xB08E, - 30380 - 11905: 0xB08F, - 30381 - 11905: 0xB090, - 30382 - 11905: 0xC6A4, - 30383 - 11905: 0xB091, - 30384 - 11905: 0xB092, - 30385 - 11905: 0xD6E5, - 30386 - 11905: 0xF1E4, - 30387 - 11905: 0xB093, - 30388 - 11905: 0xF1E5, - 30389 - 11905: 0xB094, - 30390 - 11905: 0xB095, - 30391 - 11905: 0xB096, - 30392 - 11905: 0xB097, - 30393 - 11905: 0xB098, - 30394 - 11905: 0xB099, - 30395 - 11905: 0xB09A, - 30396 - 11905: 0xB09B, - 30397 - 11905: 0xB09C, - 30398 - 11905: 0xB09D, - 30399 - 11905: 0xC3F3, - 30400 - 11905: 0xB09E, - 30401 - 11905: 0xB09F, - 30402 - 11905: 0xD3DB, - 30403 - 11905: 0xB0A0, - 30404 - 11905: 0xB140, - 30405 - 11905: 0xD6D1, - 30406 - 11905: 0xC5E8, - 30407 - 11905: 0xB141, - 30408 - 11905: 0xD3AF, - 30409 - 11905: 0xB142, - 30410 - 11905: 0xD2E6, - 30411 - 11905: 0xB143, - 30412 - 11905: 0xB144, - 30413 - 11905: 0xEEC1, - 30414 - 11905: 0xB0BB, - 30415 - 11905: 0xD5B5, - 30416 - 11905: 0xD1CE, - 30417 - 11905: 0xBCE0, - 30418 - 11905: 0xBAD0, - 30419 - 11905: 0xB145, - 30420 - 11905: 0xBFF8, - 30421 - 11905: 0xB146, - 30422 - 11905: 0xB8C7, - 30423 - 11905: 0xB5C1, - 30424 - 11905: 0xC5CC, - 30425 - 11905: 0xB147, - 30426 - 11905: 0xB148, - 30427 - 11905: 0xCAA2, - 30428 - 11905: 0xB149, - 30429 - 11905: 0xB14A, - 30430 - 11905: 0xB14B, - 30431 - 11905: 0xC3CB, - 30432 - 11905: 0xB14C, - 30433 - 11905: 0xB14D, - 30434 - 11905: 0xB14E, - 30435 - 11905: 0xB14F, - 30436 - 11905: 0xB150, - 30437 - 11905: 0xEEC2, - 30438 - 11905: 0xB151, - 30439 - 11905: 0xB152, - 30440 - 11905: 0xB153, - 30441 - 11905: 0xB154, - 30442 - 11905: 0xB155, - 30443 - 11905: 0xB156, - 30444 - 11905: 0xB157, - 30445 - 11905: 0xB158, - 30446 - 11905: 0xC4BF, - 30447 - 11905: 0xB6A2, - 30448 - 11905: 0xB159, - 30449 - 11905: 0xEDEC, - 30450 - 11905: 0xC3A4, - 30451 - 11905: 0xB15A, - 30452 - 11905: 0xD6B1, - 30453 - 11905: 0xB15B, - 30454 - 11905: 0xB15C, - 30455 - 11905: 0xB15D, - 30456 - 11905: 0xCFE0, - 30457 - 11905: 0xEDEF, - 30458 - 11905: 0xB15E, - 30459 - 11905: 0xB15F, - 30460 - 11905: 0xC5CE, - 30461 - 11905: 0xB160, - 30462 - 11905: 0xB6DC, - 30463 - 11905: 0xB161, - 30464 - 11905: 0xB162, - 30465 - 11905: 0xCAA1, - 30466 - 11905: 0xB163, - 30467 - 11905: 0xB164, - 30468 - 11905: 0xEDED, - 30469 - 11905: 0xB165, - 30470 - 11905: 0xB166, - 30471 - 11905: 0xEDF0, - 30472 - 11905: 0xEDF1, - 30473 - 11905: 0xC3BC, - 30474 - 11905: 0xB167, - 30475 - 11905: 0xBFB4, - 30476 - 11905: 0xB168, - 30477 - 11905: 0xEDEE, - 30478 - 11905: 0xB169, - 30479 - 11905: 0xB16A, - 30480 - 11905: 0xB16B, - 30481 - 11905: 0xB16C, - 30482 - 11905: 0xB16D, - 30483 - 11905: 0xB16E, - 30484 - 11905: 0xB16F, - 30485 - 11905: 0xB170, - 30486 - 11905: 0xB171, - 30487 - 11905: 0xB172, - 30488 - 11905: 0xB173, - 30489 - 11905: 0xEDF4, - 30490 - 11905: 0xEDF2, - 30491 - 11905: 0xB174, - 30492 - 11905: 0xB175, - 30493 - 11905: 0xB176, - 30494 - 11905: 0xB177, - 30495 - 11905: 0xD5E6, - 30496 - 11905: 0xC3DF, - 30497 - 11905: 0xB178, - 30498 - 11905: 0xEDF3, - 30499 - 11905: 0xB179, - 30500 - 11905: 0xB17A, - 30501 - 11905: 0xB17B, - 30502 - 11905: 0xEDF6, - 30503 - 11905: 0xB17C, - 30504 - 11905: 0xD5A3, - 30505 - 11905: 0xD1A3, - 30506 - 11905: 0xB17D, - 30507 - 11905: 0xB17E, - 30508 - 11905: 0xB180, - 30509 - 11905: 0xEDF5, - 30510 - 11905: 0xB181, - 30511 - 11905: 0xC3D0, - 30512 - 11905: 0xB182, - 30513 - 11905: 0xB183, - 30514 - 11905: 0xB184, - 30515 - 11905: 0xB185, - 30516 - 11905: 0xB186, - 30517 - 11905: 0xEDF7, - 30518 - 11905: 0xBFF4, - 30519 - 11905: 0xBEEC, - 30520 - 11905: 0xEDF8, - 30521 - 11905: 0xB187, - 30522 - 11905: 0xCCF7, - 30523 - 11905: 0xB188, - 30524 - 11905: 0xD1DB, - 30525 - 11905: 0xB189, - 30526 - 11905: 0xB18A, - 30527 - 11905: 0xB18B, - 30528 - 11905: 0xD7C5, - 30529 - 11905: 0xD5F6, - 30530 - 11905: 0xB18C, - 30531 - 11905: 0xEDFC, - 30532 - 11905: 0xB18D, - 30533 - 11905: 0xB18E, - 30534 - 11905: 0xB18F, - 30535 - 11905: 0xEDFB, - 30536 - 11905: 0xB190, - 30537 - 11905: 0xB191, - 30538 - 11905: 0xB192, - 30539 - 11905: 0xB193, - 30540 - 11905: 0xB194, - 30541 - 11905: 0xB195, - 30542 - 11905: 0xB196, - 30543 - 11905: 0xB197, - 30544 - 11905: 0xEDF9, - 30545 - 11905: 0xEDFA, - 30546 - 11905: 0xB198, - 30547 - 11905: 0xB199, - 30548 - 11905: 0xB19A, - 30549 - 11905: 0xB19B, - 30550 - 11905: 0xB19C, - 30551 - 11905: 0xB19D, - 30552 - 11905: 0xB19E, - 30553 - 11905: 0xB19F, - 30554 - 11905: 0xEDFD, - 30555 - 11905: 0xBEA6, - 30556 - 11905: 0xB1A0, - 30557 - 11905: 0xB240, - 30558 - 11905: 0xB241, - 30559 - 11905: 0xB242, - 30560 - 11905: 0xB243, - 30561 - 11905: 0xCBAF, - 30562 - 11905: 0xEEA1, - 30563 - 11905: 0xB6BD, - 30564 - 11905: 0xB244, - 30565 - 11905: 0xEEA2, - 30566 - 11905: 0xC4C0, - 30567 - 11905: 0xB245, - 30568 - 11905: 0xEDFE, - 30569 - 11905: 0xB246, - 30570 - 11905: 0xB247, - 30571 - 11905: 0xBDDE, - 30572 - 11905: 0xB2C7, - 30573 - 11905: 0xB248, - 30574 - 11905: 0xB249, - 30575 - 11905: 0xB24A, - 30576 - 11905: 0xB24B, - 30577 - 11905: 0xB24C, - 30578 - 11905: 0xB24D, - 30579 - 11905: 0xB24E, - 30580 - 11905: 0xB24F, - 30581 - 11905: 0xB250, - 30582 - 11905: 0xB251, - 30583 - 11905: 0xB252, - 30584 - 11905: 0xB253, - 30585 - 11905: 0xB6C3, - 30586 - 11905: 0xB254, - 30587 - 11905: 0xB255, - 30588 - 11905: 0xB256, - 30589 - 11905: 0xEEA5, - 30590 - 11905: 0xD8BA, - 30591 - 11905: 0xEEA3, - 30592 - 11905: 0xEEA6, - 30593 - 11905: 0xB257, - 30594 - 11905: 0xB258, - 30595 - 11905: 0xB259, - 30596 - 11905: 0xC3E9, - 30597 - 11905: 0xB3F2, - 30598 - 11905: 0xB25A, - 30599 - 11905: 0xB25B, - 30600 - 11905: 0xB25C, - 30601 - 11905: 0xB25D, - 30602 - 11905: 0xB25E, - 30603 - 11905: 0xB25F, - 30604 - 11905: 0xEEA7, - 30605 - 11905: 0xEEA4, - 30606 - 11905: 0xCFB9, - 30607 - 11905: 0xB260, - 30608 - 11905: 0xB261, - 30609 - 11905: 0xEEA8, - 30610 - 11905: 0xC2F7, - 30611 - 11905: 0xB262, - 30612 - 11905: 0xB263, - 30613 - 11905: 0xB264, - 30614 - 11905: 0xB265, - 30615 - 11905: 0xB266, - 30616 - 11905: 0xB267, - 30617 - 11905: 0xB268, - 30618 - 11905: 0xB269, - 30619 - 11905: 0xB26A, - 30620 - 11905: 0xB26B, - 30621 - 11905: 0xB26C, - 30622 - 11905: 0xB26D, - 30623 - 11905: 0xEEA9, - 30624 - 11905: 0xEEAA, - 30625 - 11905: 0xB26E, - 30626 - 11905: 0xDEAB, - 30627 - 11905: 0xB26F, - 30628 - 11905: 0xB270, - 30629 - 11905: 0xC6B3, - 30630 - 11905: 0xB271, - 30631 - 11905: 0xC7C6, - 30632 - 11905: 0xB272, - 30633 - 11905: 0xD6F5, - 30634 - 11905: 0xB5C9, - 30635 - 11905: 0xB273, - 30636 - 11905: 0xCBB2, - 30637 - 11905: 0xB274, - 30638 - 11905: 0xB275, - 30639 - 11905: 0xB276, - 30640 - 11905: 0xEEAB, - 30641 - 11905: 0xB277, - 30642 - 11905: 0xB278, - 30643 - 11905: 0xCDAB, - 30644 - 11905: 0xB279, - 30645 - 11905: 0xEEAC, - 30646 - 11905: 0xB27A, - 30647 - 11905: 0xB27B, - 30648 - 11905: 0xB27C, - 30649 - 11905: 0xB27D, - 30650 - 11905: 0xB27E, - 30651 - 11905: 0xD5B0, - 30652 - 11905: 0xB280, - 30653 - 11905: 0xEEAD, - 30654 - 11905: 0xB281, - 30655 - 11905: 0xF6C4, - 30656 - 11905: 0xB282, - 30657 - 11905: 0xB283, - 30658 - 11905: 0xB284, - 30659 - 11905: 0xB285, - 30660 - 11905: 0xB286, - 30661 - 11905: 0xB287, - 30662 - 11905: 0xB288, - 30663 - 11905: 0xB289, - 30664 - 11905: 0xB28A, - 30665 - 11905: 0xB28B, - 30666 - 11905: 0xB28C, - 30667 - 11905: 0xB28D, - 30668 - 11905: 0xB28E, - 30669 - 11905: 0xDBC7, - 30670 - 11905: 0xB28F, - 30671 - 11905: 0xB290, - 30672 - 11905: 0xB291, - 30673 - 11905: 0xB292, - 30674 - 11905: 0xB293, - 30675 - 11905: 0xB294, - 30676 - 11905: 0xB295, - 30677 - 11905: 0xB296, - 30678 - 11905: 0xB297, - 30679 - 11905: 0xB4A3, - 30680 - 11905: 0xB298, - 30681 - 11905: 0xB299, - 30682 - 11905: 0xB29A, - 30683 - 11905: 0xC3AC, - 30684 - 11905: 0xF1E6, - 30685 - 11905: 0xB29B, - 30686 - 11905: 0xB29C, - 30687 - 11905: 0xB29D, - 30688 - 11905: 0xB29E, - 30689 - 11905: 0xB29F, - 30690 - 11905: 0xCAB8, - 30691 - 11905: 0xD2D3, - 30692 - 11905: 0xB2A0, - 30693 - 11905: 0xD6AA, - 30694 - 11905: 0xB340, - 30695 - 11905: 0xEFF2, - 30696 - 11905: 0xB341, - 30697 - 11905: 0xBED8, - 30698 - 11905: 0xB342, - 30699 - 11905: 0xBDC3, - 30700 - 11905: 0xEFF3, - 30701 - 11905: 0xB6CC, - 30702 - 11905: 0xB0AB, - 30703 - 11905: 0xB343, - 30704 - 11905: 0xB344, - 30705 - 11905: 0xB345, - 30706 - 11905: 0xB346, - 30707 - 11905: 0xCAAF, - 30708 - 11905: 0xB347, - 30709 - 11905: 0xB348, - 30710 - 11905: 0xEDB6, - 30711 - 11905: 0xB349, - 30712 - 11905: 0xEDB7, - 30713 - 11905: 0xB34A, - 30714 - 11905: 0xB34B, - 30715 - 11905: 0xB34C, - 30716 - 11905: 0xB34D, - 30717 - 11905: 0xCEF9, - 30718 - 11905: 0xB7AF, - 30719 - 11905: 0xBFF3, - 30720 - 11905: 0xEDB8, - 30721 - 11905: 0xC2EB, - 30722 - 11905: 0xC9B0, - 30723 - 11905: 0xB34E, - 30724 - 11905: 0xB34F, - 30725 - 11905: 0xB350, - 30726 - 11905: 0xB351, - 30727 - 11905: 0xB352, - 30728 - 11905: 0xB353, - 30729 - 11905: 0xEDB9, - 30730 - 11905: 0xB354, - 30731 - 11905: 0xB355, - 30732 - 11905: 0xC6F6, - 30733 - 11905: 0xBFB3, - 30734 - 11905: 0xB356, - 30735 - 11905: 0xB357, - 30736 - 11905: 0xB358, - 30737 - 11905: 0xEDBC, - 30738 - 11905: 0xC5F8, - 30739 - 11905: 0xB359, - 30740 - 11905: 0xD1D0, - 30741 - 11905: 0xB35A, - 30742 - 11905: 0xD7A9, - 30743 - 11905: 0xEDBA, - 30744 - 11905: 0xEDBB, - 30745 - 11905: 0xB35B, - 30746 - 11905: 0xD1E2, - 30747 - 11905: 0xB35C, - 30748 - 11905: 0xEDBF, - 30749 - 11905: 0xEDC0, - 30750 - 11905: 0xB35D, - 30751 - 11905: 0xEDC4, - 30752 - 11905: 0xB35E, - 30753 - 11905: 0xB35F, - 30754 - 11905: 0xB360, - 30755 - 11905: 0xEDC8, - 30756 - 11905: 0xB361, - 30757 - 11905: 0xEDC6, - 30758 - 11905: 0xEDCE, - 30759 - 11905: 0xD5E8, - 30760 - 11905: 0xB362, - 30761 - 11905: 0xEDC9, - 30762 - 11905: 0xB363, - 30763 - 11905: 0xB364, - 30764 - 11905: 0xEDC7, - 30765 - 11905: 0xEDBE, - 30766 - 11905: 0xB365, - 30767 - 11905: 0xB366, - 30768 - 11905: 0xC5E9, - 30769 - 11905: 0xB367, - 30770 - 11905: 0xB368, - 30771 - 11905: 0xB369, - 30772 - 11905: 0xC6C6, - 30773 - 11905: 0xB36A, - 30774 - 11905: 0xB36B, - 30775 - 11905: 0xC9E9, - 30776 - 11905: 0xD4D2, - 30777 - 11905: 0xEDC1, - 30778 - 11905: 0xEDC2, - 30779 - 11905: 0xEDC3, - 30780 - 11905: 0xEDC5, - 30781 - 11905: 0xB36C, - 30782 - 11905: 0xC0F9, - 30783 - 11905: 0xB36D, - 30784 - 11905: 0xB4A1, - 30785 - 11905: 0xB36E, - 30786 - 11905: 0xB36F, - 30787 - 11905: 0xB370, - 30788 - 11905: 0xB371, - 30789 - 11905: 0xB9E8, - 30790 - 11905: 0xB372, - 30791 - 11905: 0xEDD0, - 30792 - 11905: 0xB373, - 30793 - 11905: 0xB374, - 30794 - 11905: 0xB375, - 30795 - 11905: 0xB376, - 30796 - 11905: 0xEDD1, - 30797 - 11905: 0xB377, - 30798 - 11905: 0xEDCA, - 30799 - 11905: 0xB378, - 30800 - 11905: 0xEDCF, - 30801 - 11905: 0xB379, - 30802 - 11905: 0xCEF8, - 30803 - 11905: 0xB37A, - 30804 - 11905: 0xB37B, - 30805 - 11905: 0xCBB6, - 30806 - 11905: 0xEDCC, - 30807 - 11905: 0xEDCD, - 30808 - 11905: 0xB37C, - 30809 - 11905: 0xB37D, - 30810 - 11905: 0xB37E, - 30811 - 11905: 0xB380, - 30812 - 11905: 0xB381, - 30813 - 11905: 0xCFF5, - 30814 - 11905: 0xB382, - 30815 - 11905: 0xB383, - 30816 - 11905: 0xB384, - 30817 - 11905: 0xB385, - 30818 - 11905: 0xB386, - 30819 - 11905: 0xB387, - 30820 - 11905: 0xB388, - 30821 - 11905: 0xB389, - 30822 - 11905: 0xB38A, - 30823 - 11905: 0xB38B, - 30824 - 11905: 0xB38C, - 30825 - 11905: 0xB38D, - 30826 - 11905: 0xEDD2, - 30827 - 11905: 0xC1F2, - 30828 - 11905: 0xD3B2, - 30829 - 11905: 0xEDCB, - 30830 - 11905: 0xC8B7, - 30831 - 11905: 0xB38E, - 30832 - 11905: 0xB38F, - 30833 - 11905: 0xB390, - 30834 - 11905: 0xB391, - 30835 - 11905: 0xB392, - 30836 - 11905: 0xB393, - 30837 - 11905: 0xB394, - 30838 - 11905: 0xB395, - 30839 - 11905: 0xBCEF, - 30840 - 11905: 0xB396, - 30841 - 11905: 0xB397, - 30842 - 11905: 0xB398, - 30843 - 11905: 0xB399, - 30844 - 11905: 0xC5F0, - 30845 - 11905: 0xB39A, - 30846 - 11905: 0xB39B, - 30847 - 11905: 0xB39C, - 30848 - 11905: 0xB39D, - 30849 - 11905: 0xB39E, - 30850 - 11905: 0xB39F, - 30851 - 11905: 0xB3A0, - 30852 - 11905: 0xB440, - 30853 - 11905: 0xB441, - 30854 - 11905: 0xB442, - 30855 - 11905: 0xEDD6, - 30856 - 11905: 0xB443, - 30857 - 11905: 0xB5EF, - 30858 - 11905: 0xB444, - 30859 - 11905: 0xB445, - 30860 - 11905: 0xC2B5, - 30861 - 11905: 0xB0AD, - 30862 - 11905: 0xCBE9, - 30863 - 11905: 0xB446, - 30864 - 11905: 0xB447, - 30865 - 11905: 0xB1AE, - 30866 - 11905: 0xB448, - 30867 - 11905: 0xEDD4, - 30868 - 11905: 0xB449, - 30869 - 11905: 0xB44A, - 30870 - 11905: 0xB44B, - 30871 - 11905: 0xCDEB, - 30872 - 11905: 0xB5E2, - 30873 - 11905: 0xB44C, - 30874 - 11905: 0xEDD5, - 30875 - 11905: 0xEDD3, - 30876 - 11905: 0xEDD7, - 30877 - 11905: 0xB44D, - 30878 - 11905: 0xB44E, - 30879 - 11905: 0xB5FA, - 30880 - 11905: 0xB44F, - 30881 - 11905: 0xEDD8, - 30882 - 11905: 0xB450, - 30883 - 11905: 0xEDD9, - 30884 - 11905: 0xB451, - 30885 - 11905: 0xEDDC, - 30886 - 11905: 0xB452, - 30887 - 11905: 0xB1CC, - 30888 - 11905: 0xB453, - 30889 - 11905: 0xB454, - 30890 - 11905: 0xB455, - 30891 - 11905: 0xB456, - 30892 - 11905: 0xB457, - 30893 - 11905: 0xB458, - 30894 - 11905: 0xB459, - 30895 - 11905: 0xB45A, - 30896 - 11905: 0xC5F6, - 30897 - 11905: 0xBCEE, - 30898 - 11905: 0xEDDA, - 30899 - 11905: 0xCCBC, - 30900 - 11905: 0xB2EA, - 30901 - 11905: 0xB45B, - 30902 - 11905: 0xB45C, - 30903 - 11905: 0xB45D, - 30904 - 11905: 0xB45E, - 30905 - 11905: 0xEDDB, - 30906 - 11905: 0xB45F, - 30907 - 11905: 0xB460, - 30908 - 11905: 0xB461, - 30909 - 11905: 0xB462, - 30910 - 11905: 0xC4EB, - 30911 - 11905: 0xB463, - 30912 - 11905: 0xB464, - 30913 - 11905: 0xB4C5, - 30914 - 11905: 0xB465, - 30915 - 11905: 0xB466, - 30916 - 11905: 0xB467, - 30917 - 11905: 0xB0F5, - 30918 - 11905: 0xB468, - 30919 - 11905: 0xB469, - 30920 - 11905: 0xB46A, - 30921 - 11905: 0xEDDF, - 30922 - 11905: 0xC0DA, - 30923 - 11905: 0xB4E8, - 30924 - 11905: 0xB46B, - 30925 - 11905: 0xB46C, - 30926 - 11905: 0xB46D, - 30927 - 11905: 0xB46E, - 30928 - 11905: 0xC5CD, - 30929 - 11905: 0xB46F, - 30930 - 11905: 0xB470, - 30931 - 11905: 0xB471, - 30932 - 11905: 0xEDDD, - 30933 - 11905: 0xBFC4, - 30934 - 11905: 0xB472, - 30935 - 11905: 0xB473, - 30936 - 11905: 0xB474, - 30937 - 11905: 0xEDDE, - 30938 - 11905: 0xB475, - 30939 - 11905: 0xB476, - 30940 - 11905: 0xB477, - 30941 - 11905: 0xB478, - 30942 - 11905: 0xB479, - 30943 - 11905: 0xB47A, - 30944 - 11905: 0xB47B, - 30945 - 11905: 0xB47C, - 30946 - 11905: 0xB47D, - 30947 - 11905: 0xB47E, - 30948 - 11905: 0xB480, - 30949 - 11905: 0xB481, - 30950 - 11905: 0xB482, - 30951 - 11905: 0xB483, - 30952 - 11905: 0xC4A5, - 30953 - 11905: 0xB484, - 30954 - 11905: 0xB485, - 30955 - 11905: 0xB486, - 30956 - 11905: 0xEDE0, - 30957 - 11905: 0xB487, - 30958 - 11905: 0xB488, - 30959 - 11905: 0xB489, - 30960 - 11905: 0xB48A, - 30961 - 11905: 0xB48B, - 30962 - 11905: 0xEDE1, - 30963 - 11905: 0xB48C, - 30964 - 11905: 0xEDE3, - 30965 - 11905: 0xB48D, - 30966 - 11905: 0xB48E, - 30967 - 11905: 0xC1D7, - 30968 - 11905: 0xB48F, - 30969 - 11905: 0xB490, - 30970 - 11905: 0xBBC7, - 30971 - 11905: 0xB491, - 30972 - 11905: 0xB492, - 30973 - 11905: 0xB493, - 30974 - 11905: 0xB494, - 30975 - 11905: 0xB495, - 30976 - 11905: 0xB496, - 30977 - 11905: 0xBDB8, - 30978 - 11905: 0xB497, - 30979 - 11905: 0xB498, - 30980 - 11905: 0xB499, - 30981 - 11905: 0xEDE2, - 30982 - 11905: 0xB49A, - 30983 - 11905: 0xB49B, - 30984 - 11905: 0xB49C, - 30985 - 11905: 0xB49D, - 30986 - 11905: 0xB49E, - 30987 - 11905: 0xB49F, - 30988 - 11905: 0xB4A0, - 30989 - 11905: 0xB540, - 30990 - 11905: 0xB541, - 30991 - 11905: 0xB542, - 30992 - 11905: 0xB543, - 30993 - 11905: 0xB544, - 30994 - 11905: 0xB545, - 30995 - 11905: 0xEDE4, - 30996 - 11905: 0xB546, - 30997 - 11905: 0xB547, - 30998 - 11905: 0xB548, - 30999 - 11905: 0xB549, - 31000 - 11905: 0xB54A, - 31001 - 11905: 0xB54B, - 31002 - 11905: 0xB54C, - 31003 - 11905: 0xB54D, - 31004 - 11905: 0xB54E, - 31005 - 11905: 0xB54F, - 31006 - 11905: 0xEDE6, - 31007 - 11905: 0xB550, - 31008 - 11905: 0xB551, - 31009 - 11905: 0xB552, - 31010 - 11905: 0xB553, - 31011 - 11905: 0xB554, - 31012 - 11905: 0xEDE5, - 31013 - 11905: 0xB555, - 31014 - 11905: 0xB556, - 31015 - 11905: 0xB557, - 31016 - 11905: 0xB558, - 31017 - 11905: 0xB559, - 31018 - 11905: 0xB55A, - 31019 - 11905: 0xB55B, - 31020 - 11905: 0xB55C, - 31021 - 11905: 0xB55D, - 31022 - 11905: 0xB55E, - 31023 - 11905: 0xB55F, - 31024 - 11905: 0xB560, - 31025 - 11905: 0xB561, - 31026 - 11905: 0xB562, - 31027 - 11905: 0xB563, - 31028 - 11905: 0xEDE7, - 31029 - 11905: 0xB564, - 31030 - 11905: 0xB565, - 31031 - 11905: 0xB566, - 31032 - 11905: 0xB567, - 31033 - 11905: 0xB568, - 31034 - 11905: 0xCABE, - 31035 - 11905: 0xECEA, - 31036 - 11905: 0xC0F1, - 31037 - 11905: 0xB569, - 31038 - 11905: 0xC9E7, - 31039 - 11905: 0xB56A, - 31040 - 11905: 0xECEB, - 31041 - 11905: 0xC6EE, - 31042 - 11905: 0xB56B, - 31043 - 11905: 0xB56C, - 31044 - 11905: 0xB56D, - 31045 - 11905: 0xB56E, - 31046 - 11905: 0xECEC, - 31047 - 11905: 0xB56F, - 31048 - 11905: 0xC6ED, - 31049 - 11905: 0xECED, - 31050 - 11905: 0xB570, - 31051 - 11905: 0xB571, - 31052 - 11905: 0xB572, - 31053 - 11905: 0xB573, - 31054 - 11905: 0xB574, - 31055 - 11905: 0xB575, - 31056 - 11905: 0xB576, - 31057 - 11905: 0xB577, - 31058 - 11905: 0xB578, - 31059 - 11905: 0xECF0, - 31060 - 11905: 0xB579, - 31061 - 11905: 0xB57A, - 31062 - 11905: 0xD7E6, - 31063 - 11905: 0xECF3, - 31064 - 11905: 0xB57B, - 31065 - 11905: 0xB57C, - 31066 - 11905: 0xECF1, - 31067 - 11905: 0xECEE, - 31068 - 11905: 0xECEF, - 31069 - 11905: 0xD7A3, - 31070 - 11905: 0xC9F1, - 31071 - 11905: 0xCBEE, - 31072 - 11905: 0xECF4, - 31073 - 11905: 0xB57D, - 31074 - 11905: 0xECF2, - 31075 - 11905: 0xB57E, - 31076 - 11905: 0xB580, - 31077 - 11905: 0xCFE9, - 31078 - 11905: 0xB581, - 31079 - 11905: 0xECF6, - 31080 - 11905: 0xC6B1, - 31081 - 11905: 0xB582, - 31082 - 11905: 0xB583, - 31083 - 11905: 0xB584, - 31084 - 11905: 0xB585, - 31085 - 11905: 0xBCC0, - 31086 - 11905: 0xB586, - 31087 - 11905: 0xECF5, - 31088 - 11905: 0xB587, - 31089 - 11905: 0xB588, - 31090 - 11905: 0xB589, - 31091 - 11905: 0xB58A, - 31092 - 11905: 0xB58B, - 31093 - 11905: 0xB58C, - 31094 - 11905: 0xB58D, - 31095 - 11905: 0xB5BB, - 31096 - 11905: 0xBBF6, - 31097 - 11905: 0xB58E, - 31098 - 11905: 0xECF7, - 31099 - 11905: 0xB58F, - 31100 - 11905: 0xB590, - 31101 - 11905: 0xB591, - 31102 - 11905: 0xB592, - 31103 - 11905: 0xB593, - 31104 - 11905: 0xD9F7, - 31105 - 11905: 0xBDFB, - 31106 - 11905: 0xB594, - 31107 - 11905: 0xB595, - 31108 - 11905: 0xC2BB, - 31109 - 11905: 0xECF8, - 31110 - 11905: 0xB596, - 31111 - 11905: 0xB597, - 31112 - 11905: 0xB598, - 31113 - 11905: 0xB599, - 31114 - 11905: 0xECF9, - 31115 - 11905: 0xB59A, - 31116 - 11905: 0xB59B, - 31117 - 11905: 0xB59C, - 31118 - 11905: 0xB59D, - 31119 - 11905: 0xB8A3, - 31120 - 11905: 0xB59E, - 31121 - 11905: 0xB59F, - 31122 - 11905: 0xB5A0, - 31123 - 11905: 0xB640, - 31124 - 11905: 0xB641, - 31125 - 11905: 0xB642, - 31126 - 11905: 0xB643, - 31127 - 11905: 0xB644, - 31128 - 11905: 0xB645, - 31129 - 11905: 0xB646, - 31130 - 11905: 0xECFA, - 31131 - 11905: 0xB647, - 31132 - 11905: 0xB648, - 31133 - 11905: 0xB649, - 31134 - 11905: 0xB64A, - 31135 - 11905: 0xB64B, - 31136 - 11905: 0xB64C, - 31137 - 11905: 0xB64D, - 31138 - 11905: 0xB64E, - 31139 - 11905: 0xB64F, - 31140 - 11905: 0xB650, - 31141 - 11905: 0xB651, - 31142 - 11905: 0xB652, - 31143 - 11905: 0xECFB, - 31144 - 11905: 0xB653, - 31145 - 11905: 0xB654, - 31146 - 11905: 0xB655, - 31147 - 11905: 0xB656, - 31148 - 11905: 0xB657, - 31149 - 11905: 0xB658, - 31150 - 11905: 0xB659, - 31151 - 11905: 0xB65A, - 31152 - 11905: 0xB65B, - 31153 - 11905: 0xB65C, - 31154 - 11905: 0xB65D, - 31155 - 11905: 0xECFC, - 31156 - 11905: 0xB65E, - 31157 - 11905: 0xB65F, - 31158 - 11905: 0xB660, - 31159 - 11905: 0xB661, - 31160 - 11905: 0xB662, - 31161 - 11905: 0xD3ED, - 31162 - 11905: 0xD8AE, - 31163 - 11905: 0xC0EB, - 31164 - 11905: 0xB663, - 31165 - 11905: 0xC7DD, - 31166 - 11905: 0xBACC, - 31167 - 11905: 0xB664, - 31168 - 11905: 0xD0E3, - 31169 - 11905: 0xCBBD, - 31170 - 11905: 0xB665, - 31171 - 11905: 0xCDBA, - 31172 - 11905: 0xB666, - 31173 - 11905: 0xB667, - 31174 - 11905: 0xB8D1, - 31175 - 11905: 0xB668, - 31176 - 11905: 0xB669, - 31177 - 11905: 0xB1FC, - 31178 - 11905: 0xB66A, - 31179 - 11905: 0xC7EF, - 31180 - 11905: 0xB66B, - 31181 - 11905: 0xD6D6, - 31182 - 11905: 0xB66C, - 31183 - 11905: 0xB66D, - 31184 - 11905: 0xB66E, - 31185 - 11905: 0xBFC6, - 31186 - 11905: 0xC3EB, - 31187 - 11905: 0xB66F, - 31188 - 11905: 0xB670, - 31189 - 11905: 0xEFF5, - 31190 - 11905: 0xB671, - 31191 - 11905: 0xB672, - 31192 - 11905: 0xC3D8, - 31193 - 11905: 0xB673, - 31194 - 11905: 0xB674, - 31195 - 11905: 0xB675, - 31196 - 11905: 0xB676, - 31197 - 11905: 0xB677, - 31198 - 11905: 0xB678, - 31199 - 11905: 0xD7E2, - 31200 - 11905: 0xB679, - 31201 - 11905: 0xB67A, - 31202 - 11905: 0xB67B, - 31203 - 11905: 0xEFF7, - 31204 - 11905: 0xB3D3, - 31205 - 11905: 0xB67C, - 31206 - 11905: 0xC7D8, - 31207 - 11905: 0xD1ED, - 31208 - 11905: 0xB67D, - 31209 - 11905: 0xD6C8, - 31210 - 11905: 0xB67E, - 31211 - 11905: 0xEFF8, - 31212 - 11905: 0xB680, - 31213 - 11905: 0xEFF6, - 31214 - 11905: 0xB681, - 31215 - 11905: 0xBBFD, - 31216 - 11905: 0xB3C6, - 31217 - 11905: 0xB682, - 31218 - 11905: 0xB683, - 31219 - 11905: 0xB684, - 31220 - 11905: 0xB685, - 31221 - 11905: 0xB686, - 31222 - 11905: 0xB687, - 31223 - 11905: 0xB688, - 31224 - 11905: 0xBDD5, - 31225 - 11905: 0xB689, - 31226 - 11905: 0xB68A, - 31227 - 11905: 0xD2C6, - 31228 - 11905: 0xB68B, - 31229 - 11905: 0xBBE0, - 31230 - 11905: 0xB68C, - 31231 - 11905: 0xB68D, - 31232 - 11905: 0xCFA1, - 31233 - 11905: 0xB68E, - 31234 - 11905: 0xEFFC, - 31235 - 11905: 0xEFFB, - 31236 - 11905: 0xB68F, - 31237 - 11905: 0xB690, - 31238 - 11905: 0xEFF9, - 31239 - 11905: 0xB691, - 31240 - 11905: 0xB692, - 31241 - 11905: 0xB693, - 31242 - 11905: 0xB694, - 31243 - 11905: 0xB3CC, - 31244 - 11905: 0xB695, - 31245 - 11905: 0xC9D4, - 31246 - 11905: 0xCBB0, - 31247 - 11905: 0xB696, - 31248 - 11905: 0xB697, - 31249 - 11905: 0xB698, - 31250 - 11905: 0xB699, - 31251 - 11905: 0xB69A, - 31252 - 11905: 0xEFFE, - 31253 - 11905: 0xB69B, - 31254 - 11905: 0xB69C, - 31255 - 11905: 0xB0DE, - 31256 - 11905: 0xB69D, - 31257 - 11905: 0xB69E, - 31258 - 11905: 0xD6C9, - 31259 - 11905: 0xB69F, - 31260 - 11905: 0xB6A0, - 31261 - 11905: 0xB740, - 31262 - 11905: 0xEFFD, - 31263 - 11905: 0xB741, - 31264 - 11905: 0xB3ED, - 31265 - 11905: 0xB742, - 31266 - 11905: 0xB743, - 31267 - 11905: 0xF6D5, - 31268 - 11905: 0xB744, - 31269 - 11905: 0xB745, - 31270 - 11905: 0xB746, - 31271 - 11905: 0xB747, - 31272 - 11905: 0xB748, - 31273 - 11905: 0xB749, - 31274 - 11905: 0xB74A, - 31275 - 11905: 0xB74B, - 31276 - 11905: 0xB74C, - 31277 - 11905: 0xB74D, - 31278 - 11905: 0xB74E, - 31279 - 11905: 0xB74F, - 31280 - 11905: 0xB750, - 31281 - 11905: 0xB751, - 31282 - 11905: 0xB752, - 31283 - 11905: 0xCEC8, - 31284 - 11905: 0xB753, - 31285 - 11905: 0xB754, - 31286 - 11905: 0xB755, - 31287 - 11905: 0xF0A2, - 31288 - 11905: 0xB756, - 31289 - 11905: 0xF0A1, - 31290 - 11905: 0xB757, - 31291 - 11905: 0xB5BE, - 31292 - 11905: 0xBCDA, - 31293 - 11905: 0xBBFC, - 31294 - 11905: 0xB758, - 31295 - 11905: 0xB8E5, - 31296 - 11905: 0xB759, - 31297 - 11905: 0xB75A, - 31298 - 11905: 0xB75B, - 31299 - 11905: 0xB75C, - 31300 - 11905: 0xB75D, - 31301 - 11905: 0xB75E, - 31302 - 11905: 0xC4C2, - 31303 - 11905: 0xB75F, - 31304 - 11905: 0xB760, - 31305 - 11905: 0xB761, - 31306 - 11905: 0xB762, - 31307 - 11905: 0xB763, - 31308 - 11905: 0xB764, - 31309 - 11905: 0xB765, - 31310 - 11905: 0xB766, - 31311 - 11905: 0xB767, - 31312 - 11905: 0xB768, - 31313 - 11905: 0xF0A3, - 31314 - 11905: 0xB769, - 31315 - 11905: 0xB76A, - 31316 - 11905: 0xB76B, - 31317 - 11905: 0xB76C, - 31318 - 11905: 0xB76D, - 31319 - 11905: 0xCBEB, - 31320 - 11905: 0xB76E, - 31321 - 11905: 0xB76F, - 31322 - 11905: 0xB770, - 31323 - 11905: 0xB771, - 31324 - 11905: 0xB772, - 31325 - 11905: 0xB773, - 31326 - 11905: 0xB774, - 31327 - 11905: 0xB775, - 31328 - 11905: 0xB776, - 31329 - 11905: 0xB777, - 31330 - 11905: 0xB778, - 31331 - 11905: 0xB779, - 31332 - 11905: 0xB77A, - 31333 - 11905: 0xB77B, - 31334 - 11905: 0xB77C, - 31335 - 11905: 0xB77D, - 31336 - 11905: 0xB77E, - 31337 - 11905: 0xB780, - 31338 - 11905: 0xB781, - 31339 - 11905: 0xB782, - 31340 - 11905: 0xB783, - 31341 - 11905: 0xB784, - 31342 - 11905: 0xB785, - 31343 - 11905: 0xB786, - 31344 - 11905: 0xF0A6, - 31345 - 11905: 0xB787, - 31346 - 11905: 0xB788, - 31347 - 11905: 0xB789, - 31348 - 11905: 0xD1A8, - 31349 - 11905: 0xB78A, - 31350 - 11905: 0xBEBF, - 31351 - 11905: 0xC7EE, - 31352 - 11905: 0xF1B6, - 31353 - 11905: 0xF1B7, - 31354 - 11905: 0xBFD5, - 31355 - 11905: 0xB78B, - 31356 - 11905: 0xB78C, - 31357 - 11905: 0xB78D, - 31358 - 11905: 0xB78E, - 31359 - 11905: 0xB4A9, - 31360 - 11905: 0xF1B8, - 31361 - 11905: 0xCDBB, - 31362 - 11905: 0xB78F, - 31363 - 11905: 0xC7D4, - 31364 - 11905: 0xD5AD, - 31365 - 11905: 0xB790, - 31366 - 11905: 0xF1B9, - 31367 - 11905: 0xB791, - 31368 - 11905: 0xF1BA, - 31369 - 11905: 0xB792, - 31370 - 11905: 0xB793, - 31371 - 11905: 0xB794, - 31372 - 11905: 0xB795, - 31373 - 11905: 0xC7CF, - 31374 - 11905: 0xB796, - 31375 - 11905: 0xB797, - 31376 - 11905: 0xB798, - 31377 - 11905: 0xD2A4, - 31378 - 11905: 0xD6CF, - 31379 - 11905: 0xB799, - 31380 - 11905: 0xB79A, - 31381 - 11905: 0xF1BB, - 31382 - 11905: 0xBDD1, - 31383 - 11905: 0xB4B0, - 31384 - 11905: 0xBEBD, - 31385 - 11905: 0xB79B, - 31386 - 11905: 0xB79C, - 31387 - 11905: 0xB79D, - 31388 - 11905: 0xB4DC, - 31389 - 11905: 0xCED1, - 31390 - 11905: 0xB79E, - 31391 - 11905: 0xBFDF, - 31392 - 11905: 0xF1BD, - 31393 - 11905: 0xB79F, - 31394 - 11905: 0xB7A0, - 31395 - 11905: 0xB840, - 31396 - 11905: 0xB841, - 31397 - 11905: 0xBFFA, - 31398 - 11905: 0xF1BC, - 31399 - 11905: 0xB842, - 31400 - 11905: 0xF1BF, - 31401 - 11905: 0xB843, - 31402 - 11905: 0xB844, - 31403 - 11905: 0xB845, - 31404 - 11905: 0xF1BE, - 31405 - 11905: 0xF1C0, - 31406 - 11905: 0xB846, - 31407 - 11905: 0xB847, - 31408 - 11905: 0xB848, - 31409 - 11905: 0xB849, - 31410 - 11905: 0xB84A, - 31411 - 11905: 0xF1C1, - 31412 - 11905: 0xB84B, - 31413 - 11905: 0xB84C, - 31414 - 11905: 0xB84D, - 31415 - 11905: 0xB84E, - 31416 - 11905: 0xB84F, - 31417 - 11905: 0xB850, - 31418 - 11905: 0xB851, - 31419 - 11905: 0xB852, - 31420 - 11905: 0xB853, - 31421 - 11905: 0xB854, - 31422 - 11905: 0xB855, - 31423 - 11905: 0xC1FE, - 31424 - 11905: 0xB856, - 31425 - 11905: 0xB857, - 31426 - 11905: 0xB858, - 31427 - 11905: 0xB859, - 31428 - 11905: 0xB85A, - 31429 - 11905: 0xB85B, - 31430 - 11905: 0xB85C, - 31431 - 11905: 0xB85D, - 31432 - 11905: 0xB85E, - 31433 - 11905: 0xB85F, - 31434 - 11905: 0xB860, - 31435 - 11905: 0xC1A2, - 31436 - 11905: 0xB861, - 31437 - 11905: 0xB862, - 31438 - 11905: 0xB863, - 31439 - 11905: 0xB864, - 31440 - 11905: 0xB865, - 31441 - 11905: 0xB866, - 31442 - 11905: 0xB867, - 31443 - 11905: 0xB868, - 31444 - 11905: 0xB869, - 31445 - 11905: 0xB86A, - 31446 - 11905: 0xCAFA, - 31447 - 11905: 0xB86B, - 31448 - 11905: 0xB86C, - 31449 - 11905: 0xD5BE, - 31450 - 11905: 0xB86D, - 31451 - 11905: 0xB86E, - 31452 - 11905: 0xB86F, - 31453 - 11905: 0xB870, - 31454 - 11905: 0xBEBA, - 31455 - 11905: 0xBEB9, - 31456 - 11905: 0xD5C2, - 31457 - 11905: 0xB871, - 31458 - 11905: 0xB872, - 31459 - 11905: 0xBFA2, - 31460 - 11905: 0xB873, - 31461 - 11905: 0xCDAF, - 31462 - 11905: 0xF1B5, - 31463 - 11905: 0xB874, - 31464 - 11905: 0xB875, - 31465 - 11905: 0xB876, - 31466 - 11905: 0xB877, - 31467 - 11905: 0xB878, - 31468 - 11905: 0xB879, - 31469 - 11905: 0xBDDF, - 31470 - 11905: 0xB87A, - 31471 - 11905: 0xB6CB, - 31472 - 11905: 0xB87B, - 31473 - 11905: 0xB87C, - 31474 - 11905: 0xB87D, - 31475 - 11905: 0xB87E, - 31476 - 11905: 0xB880, - 31477 - 11905: 0xB881, - 31478 - 11905: 0xB882, - 31479 - 11905: 0xB883, - 31480 - 11905: 0xB884, - 31481 - 11905: 0xD6F1, - 31482 - 11905: 0xF3C3, - 31483 - 11905: 0xB885, - 31484 - 11905: 0xB886, - 31485 - 11905: 0xF3C4, - 31486 - 11905: 0xB887, - 31487 - 11905: 0xB8CD, - 31488 - 11905: 0xB888, - 31489 - 11905: 0xB889, - 31490 - 11905: 0xB88A, - 31491 - 11905: 0xF3C6, - 31492 - 11905: 0xF3C7, - 31493 - 11905: 0xB88B, - 31494 - 11905: 0xB0CA, - 31495 - 11905: 0xB88C, - 31496 - 11905: 0xF3C5, - 31497 - 11905: 0xB88D, - 31498 - 11905: 0xF3C9, - 31499 - 11905: 0xCBF1, - 31500 - 11905: 0xB88E, - 31501 - 11905: 0xB88F, - 31502 - 11905: 0xB890, - 31503 - 11905: 0xF3CB, - 31504 - 11905: 0xB891, - 31505 - 11905: 0xD0A6, - 31506 - 11905: 0xB892, - 31507 - 11905: 0xB893, - 31508 - 11905: 0xB1CA, - 31509 - 11905: 0xF3C8, - 31510 - 11905: 0xB894, - 31511 - 11905: 0xB895, - 31512 - 11905: 0xB896, - 31513 - 11905: 0xF3CF, - 31514 - 11905: 0xB897, - 31515 - 11905: 0xB5D1, - 31516 - 11905: 0xB898, - 31517 - 11905: 0xB899, - 31518 - 11905: 0xF3D7, - 31519 - 11905: 0xB89A, - 31520 - 11905: 0xF3D2, - 31521 - 11905: 0xB89B, - 31522 - 11905: 0xB89C, - 31523 - 11905: 0xB89D, - 31524 - 11905: 0xF3D4, - 31525 - 11905: 0xF3D3, - 31526 - 11905: 0xB7FB, - 31527 - 11905: 0xB89E, - 31528 - 11905: 0xB1BF, - 31529 - 11905: 0xB89F, - 31530 - 11905: 0xF3CE, - 31531 - 11905: 0xF3CA, - 31532 - 11905: 0xB5DA, - 31533 - 11905: 0xB8A0, - 31534 - 11905: 0xF3D0, - 31535 - 11905: 0xB940, - 31536 - 11905: 0xB941, - 31537 - 11905: 0xF3D1, - 31538 - 11905: 0xB942, - 31539 - 11905: 0xF3D5, - 31540 - 11905: 0xB943, - 31541 - 11905: 0xB944, - 31542 - 11905: 0xB945, - 31543 - 11905: 0xB946, - 31544 - 11905: 0xF3CD, - 31545 - 11905: 0xB947, - 31546 - 11905: 0xBCE3, - 31547 - 11905: 0xB948, - 31548 - 11905: 0xC1FD, - 31549 - 11905: 0xB949, - 31550 - 11905: 0xF3D6, - 31551 - 11905: 0xB94A, - 31552 - 11905: 0xB94B, - 31553 - 11905: 0xB94C, - 31554 - 11905: 0xB94D, - 31555 - 11905: 0xB94E, - 31556 - 11905: 0xB94F, - 31557 - 11905: 0xF3DA, - 31558 - 11905: 0xB950, - 31559 - 11905: 0xF3CC, - 31560 - 11905: 0xB951, - 31561 - 11905: 0xB5C8, - 31562 - 11905: 0xB952, - 31563 - 11905: 0xBDEE, - 31564 - 11905: 0xF3DC, - 31565 - 11905: 0xB953, - 31566 - 11905: 0xB954, - 31567 - 11905: 0xB7A4, - 31568 - 11905: 0xBFF0, - 31569 - 11905: 0xD6FE, - 31570 - 11905: 0xCDB2, - 31571 - 11905: 0xB955, - 31572 - 11905: 0xB4F0, - 31573 - 11905: 0xB956, - 31574 - 11905: 0xB2DF, - 31575 - 11905: 0xB957, - 31576 - 11905: 0xF3D8, - 31577 - 11905: 0xB958, - 31578 - 11905: 0xF3D9, - 31579 - 11905: 0xC9B8, - 31580 - 11905: 0xB959, - 31581 - 11905: 0xF3DD, - 31582 - 11905: 0xB95A, - 31583 - 11905: 0xB95B, - 31584 - 11905: 0xF3DE, - 31585 - 11905: 0xB95C, - 31586 - 11905: 0xF3E1, - 31587 - 11905: 0xB95D, - 31588 - 11905: 0xB95E, - 31589 - 11905: 0xB95F, - 31590 - 11905: 0xB960, - 31591 - 11905: 0xB961, - 31592 - 11905: 0xB962, - 31593 - 11905: 0xB963, - 31594 - 11905: 0xB964, - 31595 - 11905: 0xB965, - 31596 - 11905: 0xB966, - 31597 - 11905: 0xB967, - 31598 - 11905: 0xF3DF, - 31599 - 11905: 0xB968, - 31600 - 11905: 0xB969, - 31601 - 11905: 0xF3E3, - 31602 - 11905: 0xF3E2, - 31603 - 11905: 0xB96A, - 31604 - 11905: 0xB96B, - 31605 - 11905: 0xF3DB, - 31606 - 11905: 0xB96C, - 31607 - 11905: 0xBFEA, - 31608 - 11905: 0xB96D, - 31609 - 11905: 0xB3EF, - 31610 - 11905: 0xB96E, - 31611 - 11905: 0xF3E0, - 31612 - 11905: 0xB96F, - 31613 - 11905: 0xB970, - 31614 - 11905: 0xC7A9, - 31615 - 11905: 0xB971, - 31616 - 11905: 0xBCF2, - 31617 - 11905: 0xB972, - 31618 - 11905: 0xB973, - 31619 - 11905: 0xB974, - 31620 - 11905: 0xB975, - 31621 - 11905: 0xF3EB, - 31622 - 11905: 0xB976, - 31623 - 11905: 0xB977, - 31624 - 11905: 0xB978, - 31625 - 11905: 0xB979, - 31626 - 11905: 0xB97A, - 31627 - 11905: 0xB97B, - 31628 - 11905: 0xB97C, - 31629 - 11905: 0xB9BF, - 31630 - 11905: 0xB97D, - 31631 - 11905: 0xB97E, - 31632 - 11905: 0xF3E4, - 31633 - 11905: 0xB980, - 31634 - 11905: 0xB981, - 31635 - 11905: 0xB982, - 31636 - 11905: 0xB2AD, - 31637 - 11905: 0xBBFE, - 31638 - 11905: 0xB983, - 31639 - 11905: 0xCBE3, - 31640 - 11905: 0xB984, - 31641 - 11905: 0xB985, - 31642 - 11905: 0xB986, - 31643 - 11905: 0xB987, - 31644 - 11905: 0xF3ED, - 31645 - 11905: 0xF3E9, - 31646 - 11905: 0xB988, - 31647 - 11905: 0xB989, - 31648 - 11905: 0xB98A, - 31649 - 11905: 0xB9DC, - 31650 - 11905: 0xF3EE, - 31651 - 11905: 0xB98B, - 31652 - 11905: 0xB98C, - 31653 - 11905: 0xB98D, - 31654 - 11905: 0xF3E5, - 31655 - 11905: 0xF3E6, - 31656 - 11905: 0xF3EA, - 31657 - 11905: 0xC2E1, - 31658 - 11905: 0xF3EC, - 31659 - 11905: 0xF3EF, - 31660 - 11905: 0xF3E8, - 31661 - 11905: 0xBCFD, - 31662 - 11905: 0xB98E, - 31663 - 11905: 0xB98F, - 31664 - 11905: 0xB990, - 31665 - 11905: 0xCFE4, - 31666 - 11905: 0xB991, - 31667 - 11905: 0xB992, - 31668 - 11905: 0xF3F0, - 31669 - 11905: 0xB993, - 31670 - 11905: 0xB994, - 31671 - 11905: 0xB995, - 31672 - 11905: 0xF3E7, - 31673 - 11905: 0xB996, - 31674 - 11905: 0xB997, - 31675 - 11905: 0xB998, - 31676 - 11905: 0xB999, - 31677 - 11905: 0xB99A, - 31678 - 11905: 0xB99B, - 31679 - 11905: 0xB99C, - 31680 - 11905: 0xB99D, - 31681 - 11905: 0xF3F2, - 31682 - 11905: 0xB99E, - 31683 - 11905: 0xB99F, - 31684 - 11905: 0xB9A0, - 31685 - 11905: 0xBA40, - 31686 - 11905: 0xD7AD, - 31687 - 11905: 0xC6AA, - 31688 - 11905: 0xBA41, - 31689 - 11905: 0xBA42, - 31690 - 11905: 0xBA43, - 31691 - 11905: 0xBA44, - 31692 - 11905: 0xF3F3, - 31693 - 11905: 0xBA45, - 31694 - 11905: 0xBA46, - 31695 - 11905: 0xBA47, - 31696 - 11905: 0xBA48, - 31697 - 11905: 0xF3F1, - 31698 - 11905: 0xBA49, - 31699 - 11905: 0xC2A8, - 31700 - 11905: 0xBA4A, - 31701 - 11905: 0xBA4B, - 31702 - 11905: 0xBA4C, - 31703 - 11905: 0xBA4D, - 31704 - 11905: 0xBA4E, - 31705 - 11905: 0xB8DD, - 31706 - 11905: 0xF3F5, - 31707 - 11905: 0xBA4F, - 31708 - 11905: 0xBA50, - 31709 - 11905: 0xF3F4, - 31710 - 11905: 0xBA51, - 31711 - 11905: 0xBA52, - 31712 - 11905: 0xBA53, - 31713 - 11905: 0xB4DB, - 31714 - 11905: 0xBA54, - 31715 - 11905: 0xBA55, - 31716 - 11905: 0xBA56, - 31717 - 11905: 0xF3F6, - 31718 - 11905: 0xF3F7, - 31719 - 11905: 0xBA57, - 31720 - 11905: 0xBA58, - 31721 - 11905: 0xBA59, - 31722 - 11905: 0xF3F8, - 31723 - 11905: 0xBA5A, - 31724 - 11905: 0xBA5B, - 31725 - 11905: 0xBA5C, - 31726 - 11905: 0xC0BA, - 31727 - 11905: 0xBA5D, - 31728 - 11905: 0xBA5E, - 31729 - 11905: 0xC0E9, - 31730 - 11905: 0xBA5F, - 31731 - 11905: 0xBA60, - 31732 - 11905: 0xBA61, - 31733 - 11905: 0xBA62, - 31734 - 11905: 0xBA63, - 31735 - 11905: 0xC5F1, - 31736 - 11905: 0xBA64, - 31737 - 11905: 0xBA65, - 31738 - 11905: 0xBA66, - 31739 - 11905: 0xBA67, - 31740 - 11905: 0xF3FB, - 31741 - 11905: 0xBA68, - 31742 - 11905: 0xF3FA, - 31743 - 11905: 0xBA69, - 31744 - 11905: 0xBA6A, - 31745 - 11905: 0xBA6B, - 31746 - 11905: 0xBA6C, - 31747 - 11905: 0xBA6D, - 31748 - 11905: 0xBA6E, - 31749 - 11905: 0xBA6F, - 31750 - 11905: 0xBA70, - 31751 - 11905: 0xB4D8, - 31752 - 11905: 0xBA71, - 31753 - 11905: 0xBA72, - 31754 - 11905: 0xBA73, - 31755 - 11905: 0xF3FE, - 31756 - 11905: 0xF3F9, - 31757 - 11905: 0xBA74, - 31758 - 11905: 0xBA75, - 31759 - 11905: 0xF3FC, - 31760 - 11905: 0xBA76, - 31761 - 11905: 0xBA77, - 31762 - 11905: 0xBA78, - 31763 - 11905: 0xBA79, - 31764 - 11905: 0xBA7A, - 31765 - 11905: 0xBA7B, - 31766 - 11905: 0xF3FD, - 31767 - 11905: 0xBA7C, - 31768 - 11905: 0xBA7D, - 31769 - 11905: 0xBA7E, - 31770 - 11905: 0xBA80, - 31771 - 11905: 0xBA81, - 31772 - 11905: 0xBA82, - 31773 - 11905: 0xBA83, - 31774 - 11905: 0xBA84, - 31775 - 11905: 0xF4A1, - 31776 - 11905: 0xBA85, - 31777 - 11905: 0xBA86, - 31778 - 11905: 0xBA87, - 31779 - 11905: 0xBA88, - 31780 - 11905: 0xBA89, - 31781 - 11905: 0xBA8A, - 31782 - 11905: 0xF4A3, - 31783 - 11905: 0xBBC9, - 31784 - 11905: 0xBA8B, - 31785 - 11905: 0xBA8C, - 31786 - 11905: 0xF4A2, - 31787 - 11905: 0xBA8D, - 31788 - 11905: 0xBA8E, - 31789 - 11905: 0xBA8F, - 31790 - 11905: 0xBA90, - 31791 - 11905: 0xBA91, - 31792 - 11905: 0xBA92, - 31793 - 11905: 0xBA93, - 31794 - 11905: 0xBA94, - 31795 - 11905: 0xBA95, - 31796 - 11905: 0xBA96, - 31797 - 11905: 0xBA97, - 31798 - 11905: 0xBA98, - 31799 - 11905: 0xBA99, - 31800 - 11905: 0xF4A4, - 31801 - 11905: 0xBA9A, - 31802 - 11905: 0xBA9B, - 31803 - 11905: 0xBA9C, - 31804 - 11905: 0xBA9D, - 31805 - 11905: 0xBA9E, - 31806 - 11905: 0xBA9F, - 31807 - 11905: 0xB2BE, - 31808 - 11905: 0xF4A6, - 31809 - 11905: 0xF4A5, - 31810 - 11905: 0xBAA0, - 31811 - 11905: 0xBB40, - 31812 - 11905: 0xBB41, - 31813 - 11905: 0xBB42, - 31814 - 11905: 0xBB43, - 31815 - 11905: 0xBB44, - 31816 - 11905: 0xBB45, - 31817 - 11905: 0xBB46, - 31818 - 11905: 0xBB47, - 31819 - 11905: 0xBB48, - 31820 - 11905: 0xBB49, - 31821 - 11905: 0xBCAE, - 31822 - 11905: 0xBB4A, - 31823 - 11905: 0xBB4B, - 31824 - 11905: 0xBB4C, - 31825 - 11905: 0xBB4D, - 31826 - 11905: 0xBB4E, - 31827 - 11905: 0xBB4F, - 31828 - 11905: 0xBB50, - 31829 - 11905: 0xBB51, - 31830 - 11905: 0xBB52, - 31831 - 11905: 0xBB53, - 31832 - 11905: 0xBB54, - 31833 - 11905: 0xBB55, - 31834 - 11905: 0xBB56, - 31835 - 11905: 0xBB57, - 31836 - 11905: 0xBB58, - 31837 - 11905: 0xBB59, - 31838 - 11905: 0xBB5A, - 31839 - 11905: 0xBB5B, - 31840 - 11905: 0xBB5C, - 31841 - 11905: 0xBB5D, - 31842 - 11905: 0xBB5E, - 31843 - 11905: 0xBB5F, - 31844 - 11905: 0xBB60, - 31845 - 11905: 0xBB61, - 31846 - 11905: 0xBB62, - 31847 - 11905: 0xBB63, - 31848 - 11905: 0xBB64, - 31849 - 11905: 0xBB65, - 31850 - 11905: 0xBB66, - 31851 - 11905: 0xBB67, - 31852 - 11905: 0xBB68, - 31853 - 11905: 0xBB69, - 31854 - 11905: 0xBB6A, - 31855 - 11905: 0xBB6B, - 31856 - 11905: 0xBB6C, - 31857 - 11905: 0xBB6D, - 31858 - 11905: 0xBB6E, - 31859 - 11905: 0xC3D7, - 31860 - 11905: 0xD9E1, - 31861 - 11905: 0xBB6F, - 31862 - 11905: 0xBB70, - 31863 - 11905: 0xBB71, - 31864 - 11905: 0xBB72, - 31865 - 11905: 0xBB73, - 31866 - 11905: 0xBB74, - 31867 - 11905: 0xC0E0, - 31868 - 11905: 0xF4CC, - 31869 - 11905: 0xD7D1, - 31870 - 11905: 0xBB75, - 31871 - 11905: 0xBB76, - 31872 - 11905: 0xBB77, - 31873 - 11905: 0xBB78, - 31874 - 11905: 0xBB79, - 31875 - 11905: 0xBB7A, - 31876 - 11905: 0xBB7B, - 31877 - 11905: 0xBB7C, - 31878 - 11905: 0xBB7D, - 31879 - 11905: 0xBB7E, - 31880 - 11905: 0xBB80, - 31881 - 11905: 0xB7DB, - 31882 - 11905: 0xBB81, - 31883 - 11905: 0xBB82, - 31884 - 11905: 0xBB83, - 31885 - 11905: 0xBB84, - 31886 - 11905: 0xBB85, - 31887 - 11905: 0xBB86, - 31888 - 11905: 0xBB87, - 31889 - 11905: 0xF4CE, - 31890 - 11905: 0xC1A3, - 31891 - 11905: 0xBB88, - 31892 - 11905: 0xBB89, - 31893 - 11905: 0xC6C9, - 31894 - 11905: 0xBB8A, - 31895 - 11905: 0xB4D6, - 31896 - 11905: 0xD5B3, - 31897 - 11905: 0xBB8B, - 31898 - 11905: 0xBB8C, - 31899 - 11905: 0xBB8D, - 31900 - 11905: 0xF4D0, - 31901 - 11905: 0xF4CF, - 31902 - 11905: 0xF4D1, - 31903 - 11905: 0xCBDA, - 31904 - 11905: 0xBB8E, - 31905 - 11905: 0xBB8F, - 31906 - 11905: 0xF4D2, - 31907 - 11905: 0xBB90, - 31908 - 11905: 0xD4C1, - 31909 - 11905: 0xD6E0, - 31910 - 11905: 0xBB91, - 31911 - 11905: 0xBB92, - 31912 - 11905: 0xBB93, - 31913 - 11905: 0xBB94, - 31914 - 11905: 0xB7E0, - 31915 - 11905: 0xBB95, - 31916 - 11905: 0xBB96, - 31917 - 11905: 0xBB97, - 31918 - 11905: 0xC1B8, - 31919 - 11905: 0xBB98, - 31920 - 11905: 0xBB99, - 31921 - 11905: 0xC1BB, - 31922 - 11905: 0xF4D3, - 31923 - 11905: 0xBEAC, - 31924 - 11905: 0xBB9A, - 31925 - 11905: 0xBB9B, - 31926 - 11905: 0xBB9C, - 31927 - 11905: 0xBB9D, - 31928 - 11905: 0xBB9E, - 31929 - 11905: 0xB4E2, - 31930 - 11905: 0xBB9F, - 31931 - 11905: 0xBBA0, - 31932 - 11905: 0xF4D4, - 31933 - 11905: 0xF4D5, - 31934 - 11905: 0xBEAB, - 31935 - 11905: 0xBC40, - 31936 - 11905: 0xBC41, - 31937 - 11905: 0xF4D6, - 31938 - 11905: 0xBC42, - 31939 - 11905: 0xBC43, - 31940 - 11905: 0xBC44, - 31941 - 11905: 0xF4DB, - 31942 - 11905: 0xBC45, - 31943 - 11905: 0xF4D7, - 31944 - 11905: 0xF4DA, - 31945 - 11905: 0xBC46, - 31946 - 11905: 0xBAFD, - 31947 - 11905: 0xBC47, - 31948 - 11905: 0xF4D8, - 31949 - 11905: 0xF4D9, - 31950 - 11905: 0xBC48, - 31951 - 11905: 0xBC49, - 31952 - 11905: 0xBC4A, - 31953 - 11905: 0xBC4B, - 31954 - 11905: 0xBC4C, - 31955 - 11905: 0xBC4D, - 31956 - 11905: 0xBC4E, - 31957 - 11905: 0xB8E2, - 31958 - 11905: 0xCCC7, - 31959 - 11905: 0xF4DC, - 31960 - 11905: 0xBC4F, - 31961 - 11905: 0xB2DA, - 31962 - 11905: 0xBC50, - 31963 - 11905: 0xBC51, - 31964 - 11905: 0xC3D3, - 31965 - 11905: 0xBC52, - 31966 - 11905: 0xBC53, - 31967 - 11905: 0xD4E3, - 31968 - 11905: 0xBFB7, - 31969 - 11905: 0xBC54, - 31970 - 11905: 0xBC55, - 31971 - 11905: 0xBC56, - 31972 - 11905: 0xBC57, - 31973 - 11905: 0xBC58, - 31974 - 11905: 0xBC59, - 31975 - 11905: 0xBC5A, - 31976 - 11905: 0xF4DD, - 31977 - 11905: 0xBC5B, - 31978 - 11905: 0xBC5C, - 31979 - 11905: 0xBC5D, - 31980 - 11905: 0xBC5E, - 31981 - 11905: 0xBC5F, - 31982 - 11905: 0xBC60, - 31983 - 11905: 0xC5B4, - 31984 - 11905: 0xBC61, - 31985 - 11905: 0xBC62, - 31986 - 11905: 0xBC63, - 31987 - 11905: 0xBC64, - 31988 - 11905: 0xBC65, - 31989 - 11905: 0xBC66, - 31990 - 11905: 0xBC67, - 31991 - 11905: 0xBC68, - 31992 - 11905: 0xF4E9, - 31993 - 11905: 0xBC69, - 31994 - 11905: 0xBC6A, - 31995 - 11905: 0xCFB5, - 31996 - 11905: 0xBC6B, - 31997 - 11905: 0xBC6C, - 31998 - 11905: 0xBC6D, - 31999 - 11905: 0xBC6E, - 32000 - 11905: 0xBC6F, - 32001 - 11905: 0xBC70, - 32002 - 11905: 0xBC71, - 32003 - 11905: 0xBC72, - 32004 - 11905: 0xBC73, - 32005 - 11905: 0xBC74, - 32006 - 11905: 0xBC75, - 32007 - 11905: 0xBC76, - 32008 - 11905: 0xBC77, - 32009 - 11905: 0xBC78, - 32010 - 11905: 0xCEC9, - 32011 - 11905: 0xBC79, - 32012 - 11905: 0xBC7A, - 32013 - 11905: 0xBC7B, - 32014 - 11905: 0xBC7C, - 32015 - 11905: 0xBC7D, - 32016 - 11905: 0xBC7E, - 32017 - 11905: 0xBC80, - 32018 - 11905: 0xBC81, - 32019 - 11905: 0xBC82, - 32020 - 11905: 0xBC83, - 32021 - 11905: 0xBC84, - 32022 - 11905: 0xBC85, - 32023 - 11905: 0xBC86, - 32024 - 11905: 0xBC87, - 32025 - 11905: 0xBC88, - 32026 - 11905: 0xBC89, - 32027 - 11905: 0xBC8A, - 32028 - 11905: 0xBC8B, - 32029 - 11905: 0xBC8C, - 32030 - 11905: 0xBC8D, - 32031 - 11905: 0xBC8E, - 32032 - 11905: 0xCBD8, - 32033 - 11905: 0xBC8F, - 32034 - 11905: 0xCBF7, - 32035 - 11905: 0xBC90, - 32036 - 11905: 0xBC91, - 32037 - 11905: 0xBC92, - 32038 - 11905: 0xBC93, - 32039 - 11905: 0xBDF4, - 32040 - 11905: 0xBC94, - 32041 - 11905: 0xBC95, - 32042 - 11905: 0xBC96, - 32043 - 11905: 0xD7CF, - 32044 - 11905: 0xBC97, - 32045 - 11905: 0xBC98, - 32046 - 11905: 0xBC99, - 32047 - 11905: 0xC0DB, - 32048 - 11905: 0xBC9A, - 32049 - 11905: 0xBC9B, - 32050 - 11905: 0xBC9C, - 32051 - 11905: 0xBC9D, - 32052 - 11905: 0xBC9E, - 32053 - 11905: 0xBC9F, - 32054 - 11905: 0xBCA0, - 32055 - 11905: 0xBD40, - 32056 - 11905: 0xBD41, - 32057 - 11905: 0xBD42, - 32058 - 11905: 0xBD43, - 32059 - 11905: 0xBD44, - 32060 - 11905: 0xBD45, - 32061 - 11905: 0xBD46, - 32062 - 11905: 0xBD47, - 32063 - 11905: 0xBD48, - 32064 - 11905: 0xBD49, - 32065 - 11905: 0xBD4A, - 32066 - 11905: 0xBD4B, - 32067 - 11905: 0xBD4C, - 32068 - 11905: 0xBD4D, - 32069 - 11905: 0xBD4E, - 32070 - 11905: 0xBD4F, - 32071 - 11905: 0xBD50, - 32072 - 11905: 0xBD51, - 32073 - 11905: 0xBD52, - 32074 - 11905: 0xBD53, - 32075 - 11905: 0xBD54, - 32076 - 11905: 0xBD55, - 32077 - 11905: 0xBD56, - 32078 - 11905: 0xBD57, - 32079 - 11905: 0xBD58, - 32080 - 11905: 0xBD59, - 32081 - 11905: 0xBD5A, - 32082 - 11905: 0xBD5B, - 32083 - 11905: 0xBD5C, - 32084 - 11905: 0xBD5D, - 32085 - 11905: 0xBD5E, - 32086 - 11905: 0xBD5F, - 32087 - 11905: 0xBD60, - 32088 - 11905: 0xBD61, - 32089 - 11905: 0xBD62, - 32090 - 11905: 0xBD63, - 32091 - 11905: 0xBD64, - 32092 - 11905: 0xBD65, - 32093 - 11905: 0xBD66, - 32094 - 11905: 0xBD67, - 32095 - 11905: 0xBD68, - 32096 - 11905: 0xBD69, - 32097 - 11905: 0xBD6A, - 32098 - 11905: 0xBD6B, - 32099 - 11905: 0xBD6C, - 32100 - 11905: 0xBD6D, - 32101 - 11905: 0xBD6E, - 32102 - 11905: 0xBD6F, - 32103 - 11905: 0xBD70, - 32104 - 11905: 0xBD71, - 32105 - 11905: 0xBD72, - 32106 - 11905: 0xBD73, - 32107 - 11905: 0xBD74, - 32108 - 11905: 0xBD75, - 32109 - 11905: 0xBD76, - 32110 - 11905: 0xD0F5, - 32111 - 11905: 0xBD77, - 32112 - 11905: 0xBD78, - 32113 - 11905: 0xBD79, - 32114 - 11905: 0xBD7A, - 32115 - 11905: 0xBD7B, - 32116 - 11905: 0xBD7C, - 32117 - 11905: 0xBD7D, - 32118 - 11905: 0xBD7E, - 32119 - 11905: 0xF4EA, - 32120 - 11905: 0xBD80, - 32121 - 11905: 0xBD81, - 32122 - 11905: 0xBD82, - 32123 - 11905: 0xBD83, - 32124 - 11905: 0xBD84, - 32125 - 11905: 0xBD85, - 32126 - 11905: 0xBD86, - 32127 - 11905: 0xBD87, - 32128 - 11905: 0xBD88, - 32129 - 11905: 0xBD89, - 32130 - 11905: 0xBD8A, - 32131 - 11905: 0xBD8B, - 32132 - 11905: 0xBD8C, - 32133 - 11905: 0xBD8D, - 32134 - 11905: 0xBD8E, - 32135 - 11905: 0xBD8F, - 32136 - 11905: 0xBD90, - 32137 - 11905: 0xBD91, - 32138 - 11905: 0xBD92, - 32139 - 11905: 0xBD93, - 32140 - 11905: 0xBD94, - 32141 - 11905: 0xBD95, - 32142 - 11905: 0xBD96, - 32143 - 11905: 0xBD97, - 32144 - 11905: 0xBD98, - 32145 - 11905: 0xBD99, - 32146 - 11905: 0xBD9A, - 32147 - 11905: 0xBD9B, - 32148 - 11905: 0xBD9C, - 32149 - 11905: 0xBD9D, - 32150 - 11905: 0xBD9E, - 32151 - 11905: 0xBD9F, - 32152 - 11905: 0xBDA0, - 32153 - 11905: 0xBE40, - 32154 - 11905: 0xBE41, - 32155 - 11905: 0xBE42, - 32156 - 11905: 0xBE43, - 32157 - 11905: 0xBE44, - 32158 - 11905: 0xBE45, - 32159 - 11905: 0xBE46, - 32160 - 11905: 0xBE47, - 32161 - 11905: 0xBE48, - 32162 - 11905: 0xBE49, - 32163 - 11905: 0xBE4A, - 32164 - 11905: 0xBE4B, - 32165 - 11905: 0xBE4C, - 32166 - 11905: 0xF4EB, - 32167 - 11905: 0xBE4D, - 32168 - 11905: 0xBE4E, - 32169 - 11905: 0xBE4F, - 32170 - 11905: 0xBE50, - 32171 - 11905: 0xBE51, - 32172 - 11905: 0xBE52, - 32173 - 11905: 0xBE53, - 32174 - 11905: 0xF4EC, - 32175 - 11905: 0xBE54, - 32176 - 11905: 0xBE55, - 32177 - 11905: 0xBE56, - 32178 - 11905: 0xBE57, - 32179 - 11905: 0xBE58, - 32180 - 11905: 0xBE59, - 32181 - 11905: 0xBE5A, - 32182 - 11905: 0xBE5B, - 32183 - 11905: 0xBE5C, - 32184 - 11905: 0xBE5D, - 32185 - 11905: 0xBE5E, - 32186 - 11905: 0xBE5F, - 32187 - 11905: 0xBE60, - 32188 - 11905: 0xBE61, - 32189 - 11905: 0xBE62, - 32190 - 11905: 0xBE63, - 32191 - 11905: 0xBE64, - 32192 - 11905: 0xBE65, - 32193 - 11905: 0xBE66, - 32194 - 11905: 0xBE67, - 32195 - 11905: 0xBE68, - 32196 - 11905: 0xBE69, - 32197 - 11905: 0xBE6A, - 32198 - 11905: 0xBE6B, - 32199 - 11905: 0xBE6C, - 32200 - 11905: 0xBE6D, - 32201 - 11905: 0xBE6E, - 32202 - 11905: 0xBE6F, - 32203 - 11905: 0xBE70, - 32204 - 11905: 0xBE71, - 32205 - 11905: 0xBE72, - 32206 - 11905: 0xBE73, - 32207 - 11905: 0xBE74, - 32208 - 11905: 0xBE75, - 32209 - 11905: 0xBE76, - 32210 - 11905: 0xBE77, - 32211 - 11905: 0xBE78, - 32212 - 11905: 0xBE79, - 32213 - 11905: 0xBE7A, - 32214 - 11905: 0xBE7B, - 32215 - 11905: 0xBE7C, - 32216 - 11905: 0xBE7D, - 32217 - 11905: 0xBE7E, - 32218 - 11905: 0xBE80, - 32219 - 11905: 0xBE81, - 32220 - 11905: 0xBE82, - 32221 - 11905: 0xBE83, - 32222 - 11905: 0xBE84, - 32223 - 11905: 0xBE85, - 32224 - 11905: 0xBE86, - 32225 - 11905: 0xBE87, - 32226 - 11905: 0xBE88, - 32227 - 11905: 0xBE89, - 32228 - 11905: 0xBE8A, - 32229 - 11905: 0xBE8B, - 32230 - 11905: 0xBE8C, - 32231 - 11905: 0xBE8D, - 32232 - 11905: 0xBE8E, - 32233 - 11905: 0xBE8F, - 32234 - 11905: 0xBE90, - 32235 - 11905: 0xBE91, - 32236 - 11905: 0xBE92, - 32237 - 11905: 0xBE93, - 32238 - 11905: 0xBE94, - 32239 - 11905: 0xBE95, - 32240 - 11905: 0xBE96, - 32241 - 11905: 0xBE97, - 32242 - 11905: 0xBE98, - 32243 - 11905: 0xBE99, - 32244 - 11905: 0xBE9A, - 32245 - 11905: 0xBE9B, - 32246 - 11905: 0xBE9C, - 32247 - 11905: 0xBE9D, - 32248 - 11905: 0xBE9E, - 32249 - 11905: 0xBE9F, - 32250 - 11905: 0xBEA0, - 32251 - 11905: 0xBF40, - 32252 - 11905: 0xBF41, - 32253 - 11905: 0xBF42, - 32254 - 11905: 0xBF43, - 32255 - 11905: 0xBF44, - 32256 - 11905: 0xBF45, - 32257 - 11905: 0xBF46, - 32258 - 11905: 0xBF47, - 32259 - 11905: 0xBF48, - 32260 - 11905: 0xBF49, - 32261 - 11905: 0xBF4A, - 32262 - 11905: 0xBF4B, - 32263 - 11905: 0xBF4C, - 32264 - 11905: 0xBF4D, - 32265 - 11905: 0xBF4E, - 32266 - 11905: 0xBF4F, - 32267 - 11905: 0xBF50, - 32268 - 11905: 0xBF51, - 32269 - 11905: 0xBF52, - 32270 - 11905: 0xBF53, - 32271 - 11905: 0xBF54, - 32272 - 11905: 0xBF55, - 32273 - 11905: 0xBF56, - 32274 - 11905: 0xBF57, - 32275 - 11905: 0xBF58, - 32276 - 11905: 0xBF59, - 32277 - 11905: 0xBF5A, - 32278 - 11905: 0xBF5B, - 32279 - 11905: 0xBF5C, - 32280 - 11905: 0xBF5D, - 32281 - 11905: 0xBF5E, - 32282 - 11905: 0xBF5F, - 32283 - 11905: 0xBF60, - 32284 - 11905: 0xBF61, - 32285 - 11905: 0xBF62, - 32286 - 11905: 0xBF63, - 32287 - 11905: 0xBF64, - 32288 - 11905: 0xBF65, - 32289 - 11905: 0xBF66, - 32290 - 11905: 0xBF67, - 32291 - 11905: 0xBF68, - 32292 - 11905: 0xBF69, - 32293 - 11905: 0xBF6A, - 32294 - 11905: 0xBF6B, - 32295 - 11905: 0xBF6C, - 32296 - 11905: 0xBF6D, - 32297 - 11905: 0xBF6E, - 32298 - 11905: 0xBF6F, - 32299 - 11905: 0xBF70, - 32300 - 11905: 0xBF71, - 32301 - 11905: 0xBF72, - 32302 - 11905: 0xBF73, - 32303 - 11905: 0xBF74, - 32304 - 11905: 0xBF75, - 32305 - 11905: 0xBF76, - 32306 - 11905: 0xBF77, - 32307 - 11905: 0xBF78, - 32308 - 11905: 0xBF79, - 32309 - 11905: 0xBF7A, - 32310 - 11905: 0xBF7B, - 32311 - 11905: 0xBF7C, - 32312 - 11905: 0xBF7D, - 32313 - 11905: 0xBF7E, - 32314 - 11905: 0xBF80, - 32315 - 11905: 0xF7E3, - 32316 - 11905: 0xBF81, - 32317 - 11905: 0xBF82, - 32318 - 11905: 0xBF83, - 32319 - 11905: 0xBF84, - 32320 - 11905: 0xBF85, - 32321 - 11905: 0xB7B1, - 32322 - 11905: 0xBF86, - 32323 - 11905: 0xBF87, - 32324 - 11905: 0xBF88, - 32325 - 11905: 0xBF89, - 32326 - 11905: 0xBF8A, - 32327 - 11905: 0xF4ED, - 32328 - 11905: 0xBF8B, - 32329 - 11905: 0xBF8C, - 32330 - 11905: 0xBF8D, - 32331 - 11905: 0xBF8E, - 32332 - 11905: 0xBF8F, - 32333 - 11905: 0xBF90, - 32334 - 11905: 0xBF91, - 32335 - 11905: 0xBF92, - 32336 - 11905: 0xBF93, - 32337 - 11905: 0xBF94, - 32338 - 11905: 0xBF95, - 32339 - 11905: 0xBF96, - 32340 - 11905: 0xBF97, - 32341 - 11905: 0xBF98, - 32342 - 11905: 0xBF99, - 32343 - 11905: 0xBF9A, - 32344 - 11905: 0xBF9B, - 32345 - 11905: 0xBF9C, - 32346 - 11905: 0xBF9D, - 32347 - 11905: 0xBF9E, - 32348 - 11905: 0xBF9F, - 32349 - 11905: 0xBFA0, - 32350 - 11905: 0xC040, - 32351 - 11905: 0xC041, - 32352 - 11905: 0xC042, - 32353 - 11905: 0xC043, - 32354 - 11905: 0xC044, - 32355 - 11905: 0xC045, - 32356 - 11905: 0xC046, - 32357 - 11905: 0xC047, - 32358 - 11905: 0xC048, - 32359 - 11905: 0xC049, - 32360 - 11905: 0xC04A, - 32361 - 11905: 0xC04B, - 32362 - 11905: 0xC04C, - 32363 - 11905: 0xC04D, - 32364 - 11905: 0xC04E, - 32365 - 11905: 0xC04F, - 32366 - 11905: 0xC050, - 32367 - 11905: 0xC051, - 32368 - 11905: 0xC052, - 32369 - 11905: 0xC053, - 32370 - 11905: 0xC054, - 32371 - 11905: 0xC055, - 32372 - 11905: 0xC056, - 32373 - 11905: 0xC057, - 32374 - 11905: 0xC058, - 32375 - 11905: 0xC059, - 32376 - 11905: 0xC05A, - 32377 - 11905: 0xC05B, - 32378 - 11905: 0xC05C, - 32379 - 11905: 0xC05D, - 32380 - 11905: 0xC05E, - 32381 - 11905: 0xC05F, - 32382 - 11905: 0xC060, - 32383 - 11905: 0xC061, - 32384 - 11905: 0xC062, - 32385 - 11905: 0xC063, - 32386 - 11905: 0xD7EB, - 32387 - 11905: 0xC064, - 32388 - 11905: 0xC065, - 32389 - 11905: 0xC066, - 32390 - 11905: 0xC067, - 32391 - 11905: 0xC068, - 32392 - 11905: 0xC069, - 32393 - 11905: 0xC06A, - 32394 - 11905: 0xC06B, - 32395 - 11905: 0xC06C, - 32396 - 11905: 0xC06D, - 32397 - 11905: 0xC06E, - 32398 - 11905: 0xC06F, - 32399 - 11905: 0xC070, - 32400 - 11905: 0xC071, - 32401 - 11905: 0xC072, - 32402 - 11905: 0xC073, - 32403 - 11905: 0xC074, - 32404 - 11905: 0xC075, - 32405 - 11905: 0xC076, - 32406 - 11905: 0xC077, - 32407 - 11905: 0xC078, - 32408 - 11905: 0xC079, - 32409 - 11905: 0xC07A, - 32410 - 11905: 0xC07B, - 32411 - 11905: 0xF4EE, - 32412 - 11905: 0xC07C, - 32413 - 11905: 0xC07D, - 32414 - 11905: 0xC07E, - 32415 - 11905: 0xE6F9, - 32416 - 11905: 0xBEC0, - 32417 - 11905: 0xE6FA, - 32418 - 11905: 0xBAEC, - 32419 - 11905: 0xE6FB, - 32420 - 11905: 0xCFCB, - 32421 - 11905: 0xE6FC, - 32422 - 11905: 0xD4BC, - 32423 - 11905: 0xBCB6, - 32424 - 11905: 0xE6FD, - 32425 - 11905: 0xE6FE, - 32426 - 11905: 0xBCCD, - 32427 - 11905: 0xC8D2, - 32428 - 11905: 0xCEB3, - 32429 - 11905: 0xE7A1, - 32430 - 11905: 0xC080, - 32431 - 11905: 0xB4BF, - 32432 - 11905: 0xE7A2, - 32433 - 11905: 0xC9B4, - 32434 - 11905: 0xB8D9, - 32435 - 11905: 0xC4C9, - 32436 - 11905: 0xC081, - 32437 - 11905: 0xD7DD, - 32438 - 11905: 0xC2DA, - 32439 - 11905: 0xB7D7, - 32440 - 11905: 0xD6BD, - 32441 - 11905: 0xCEC6, - 32442 - 11905: 0xB7C4, - 32443 - 11905: 0xC082, - 32444 - 11905: 0xC083, - 32445 - 11905: 0xC5A6, - 32446 - 11905: 0xE7A3, - 32447 - 11905: 0xCFDF, - 32448 - 11905: 0xE7A4, - 32449 - 11905: 0xE7A5, - 32450 - 11905: 0xE7A6, - 32451 - 11905: 0xC1B7, - 32452 - 11905: 0xD7E9, - 32453 - 11905: 0xC9F0, - 32454 - 11905: 0xCFB8, - 32455 - 11905: 0xD6AF, - 32456 - 11905: 0xD6D5, - 32457 - 11905: 0xE7A7, - 32458 - 11905: 0xB0ED, - 32459 - 11905: 0xE7A8, - 32460 - 11905: 0xE7A9, - 32461 - 11905: 0xC9DC, - 32462 - 11905: 0xD2EF, - 32463 - 11905: 0xBEAD, - 32464 - 11905: 0xE7AA, - 32465 - 11905: 0xB0F3, - 32466 - 11905: 0xC8DE, - 32467 - 11905: 0xBDE1, - 32468 - 11905: 0xE7AB, - 32469 - 11905: 0xC8C6, - 32470 - 11905: 0xC084, - 32471 - 11905: 0xE7AC, - 32472 - 11905: 0xBBE6, - 32473 - 11905: 0xB8F8, - 32474 - 11905: 0xD1A4, - 32475 - 11905: 0xE7AD, - 32476 - 11905: 0xC2E7, - 32477 - 11905: 0xBEF8, - 32478 - 11905: 0xBDCA, - 32479 - 11905: 0xCDB3, - 32480 - 11905: 0xE7AE, - 32481 - 11905: 0xE7AF, - 32482 - 11905: 0xBEEE, - 32483 - 11905: 0xD0E5, - 32484 - 11905: 0xC085, - 32485 - 11905: 0xCBE7, - 32486 - 11905: 0xCCD0, - 32487 - 11905: 0xBCCC, - 32488 - 11905: 0xE7B0, - 32489 - 11905: 0xBCA8, - 32490 - 11905: 0xD0F7, - 32491 - 11905: 0xE7B1, - 32492 - 11905: 0xC086, - 32493 - 11905: 0xD0F8, - 32494 - 11905: 0xE7B2, - 32495 - 11905: 0xE7B3, - 32496 - 11905: 0xB4C2, - 32497 - 11905: 0xE7B4, - 32498 - 11905: 0xE7B5, - 32499 - 11905: 0xC9FE, - 32500 - 11905: 0xCEAC, - 32501 - 11905: 0xC3E0, - 32502 - 11905: 0xE7B7, - 32503 - 11905: 0xB1C1, - 32504 - 11905: 0xB3F1, - 32505 - 11905: 0xC087, - 32506 - 11905: 0xE7B8, - 32507 - 11905: 0xE7B9, - 32508 - 11905: 0xD7DB, - 32509 - 11905: 0xD5C0, - 32510 - 11905: 0xE7BA, - 32511 - 11905: 0xC2CC, - 32512 - 11905: 0xD7BA, - 32513 - 11905: 0xE7BB, - 32514 - 11905: 0xE7BC, - 32515 - 11905: 0xE7BD, - 32516 - 11905: 0xBCEA, - 32517 - 11905: 0xC3E5, - 32518 - 11905: 0xC0C2, - 32519 - 11905: 0xE7BE, - 32520 - 11905: 0xE7BF, - 32521 - 11905: 0xBCA9, - 32522 - 11905: 0xC088, - 32523 - 11905: 0xE7C0, - 32524 - 11905: 0xE7C1, - 32525 - 11905: 0xE7B6, - 32526 - 11905: 0xB6D0, - 32527 - 11905: 0xE7C2, - 32528 - 11905: 0xC089, - 32529 - 11905: 0xE7C3, - 32530 - 11905: 0xE7C4, - 32531 - 11905: 0xBBBA, - 32532 - 11905: 0xB5DE, - 32533 - 11905: 0xC2C6, - 32534 - 11905: 0xB1E0, - 32535 - 11905: 0xE7C5, - 32536 - 11905: 0xD4B5, - 32537 - 11905: 0xE7C6, - 32538 - 11905: 0xB8BF, - 32539 - 11905: 0xE7C8, - 32540 - 11905: 0xE7C7, - 32541 - 11905: 0xB7EC, - 32542 - 11905: 0xC08A, - 32543 - 11905: 0xE7C9, - 32544 - 11905: 0xB2F8, - 32545 - 11905: 0xE7CA, - 32546 - 11905: 0xE7CB, - 32547 - 11905: 0xE7CC, - 32548 - 11905: 0xE7CD, - 32549 - 11905: 0xE7CE, - 32550 - 11905: 0xE7CF, - 32551 - 11905: 0xE7D0, - 32552 - 11905: 0xD3A7, - 32553 - 11905: 0xCBF5, - 32554 - 11905: 0xE7D1, - 32555 - 11905: 0xE7D2, - 32556 - 11905: 0xE7D3, - 32557 - 11905: 0xE7D4, - 32558 - 11905: 0xC9C9, - 32559 - 11905: 0xE7D5, - 32560 - 11905: 0xE7D6, - 32561 - 11905: 0xE7D7, - 32562 - 11905: 0xE7D8, - 32563 - 11905: 0xE7D9, - 32564 - 11905: 0xBDC9, - 32565 - 11905: 0xE7DA, - 32566 - 11905: 0xF3BE, - 32567 - 11905: 0xC08B, - 32568 - 11905: 0xB8D7, - 32569 - 11905: 0xC08C, - 32570 - 11905: 0xC8B1, - 32571 - 11905: 0xC08D, - 32572 - 11905: 0xC08E, - 32573 - 11905: 0xC08F, - 32574 - 11905: 0xC090, - 32575 - 11905: 0xC091, - 32576 - 11905: 0xC092, - 32577 - 11905: 0xC093, - 32578 - 11905: 0xF3BF, - 32579 - 11905: 0xC094, - 32580 - 11905: 0xF3C0, - 32581 - 11905: 0xF3C1, - 32582 - 11905: 0xC095, - 32583 - 11905: 0xC096, - 32584 - 11905: 0xC097, - 32585 - 11905: 0xC098, - 32586 - 11905: 0xC099, - 32587 - 11905: 0xC09A, - 32588 - 11905: 0xC09B, - 32589 - 11905: 0xC09C, - 32590 - 11905: 0xC09D, - 32591 - 11905: 0xC09E, - 32592 - 11905: 0xB9DE, - 32593 - 11905: 0xCDF8, - 32594 - 11905: 0xC09F, - 32595 - 11905: 0xC0A0, - 32596 - 11905: 0xD8E8, - 32597 - 11905: 0xBAB1, - 32598 - 11905: 0xC140, - 32599 - 11905: 0xC2DE, - 32600 - 11905: 0xEEB7, - 32601 - 11905: 0xC141, - 32602 - 11905: 0xB7A3, - 32603 - 11905: 0xC142, - 32604 - 11905: 0xC143, - 32605 - 11905: 0xC144, - 32606 - 11905: 0xC145, - 32607 - 11905: 0xEEB9, - 32608 - 11905: 0xC146, - 32609 - 11905: 0xEEB8, - 32610 - 11905: 0xB0D5, - 32611 - 11905: 0xC147, - 32612 - 11905: 0xC148, - 32613 - 11905: 0xC149, - 32614 - 11905: 0xC14A, - 32615 - 11905: 0xC14B, - 32616 - 11905: 0xEEBB, - 32617 - 11905: 0xD5D6, - 32618 - 11905: 0xD7EF, - 32619 - 11905: 0xC14C, - 32620 - 11905: 0xC14D, - 32621 - 11905: 0xC14E, - 32622 - 11905: 0xD6C3, - 32623 - 11905: 0xC14F, - 32624 - 11905: 0xC150, - 32625 - 11905: 0xEEBD, - 32626 - 11905: 0xCAF0, - 32627 - 11905: 0xC151, - 32628 - 11905: 0xEEBC, - 32629 - 11905: 0xC152, - 32630 - 11905: 0xC153, - 32631 - 11905: 0xC154, - 32632 - 11905: 0xC155, - 32633 - 11905: 0xEEBE, - 32634 - 11905: 0xC156, - 32635 - 11905: 0xC157, - 32636 - 11905: 0xC158, - 32637 - 11905: 0xC159, - 32638 - 11905: 0xEEC0, - 32639 - 11905: 0xC15A, - 32640 - 11905: 0xC15B, - 32641 - 11905: 0xEEBF, - 32642 - 11905: 0xC15C, - 32643 - 11905: 0xC15D, - 32644 - 11905: 0xC15E, - 32645 - 11905: 0xC15F, - 32646 - 11905: 0xC160, - 32647 - 11905: 0xC161, - 32648 - 11905: 0xC162, - 32649 - 11905: 0xC163, - 32650 - 11905: 0xD1F2, - 32651 - 11905: 0xC164, - 32652 - 11905: 0xC7BC, - 32653 - 11905: 0xC165, - 32654 - 11905: 0xC3C0, - 32655 - 11905: 0xC166, - 32656 - 11905: 0xC167, - 32657 - 11905: 0xC168, - 32658 - 11905: 0xC169, - 32659 - 11905: 0xC16A, - 32660 - 11905: 0xB8E1, - 32661 - 11905: 0xC16B, - 32662 - 11905: 0xC16C, - 32663 - 11905: 0xC16D, - 32664 - 11905: 0xC16E, - 32665 - 11905: 0xC16F, - 32666 - 11905: 0xC1E7, - 32667 - 11905: 0xC170, - 32668 - 11905: 0xC171, - 32669 - 11905: 0xF4C6, - 32670 - 11905: 0xD0DF, - 32671 - 11905: 0xF4C7, - 32672 - 11905: 0xC172, - 32673 - 11905: 0xCFDB, - 32674 - 11905: 0xC173, - 32675 - 11905: 0xC174, - 32676 - 11905: 0xC8BA, - 32677 - 11905: 0xC175, - 32678 - 11905: 0xC176, - 32679 - 11905: 0xF4C8, - 32680 - 11905: 0xC177, - 32681 - 11905: 0xC178, - 32682 - 11905: 0xC179, - 32683 - 11905: 0xC17A, - 32684 - 11905: 0xC17B, - 32685 - 11905: 0xC17C, - 32686 - 11905: 0xC17D, - 32687 - 11905: 0xF4C9, - 32688 - 11905: 0xF4CA, - 32689 - 11905: 0xC17E, - 32690 - 11905: 0xF4CB, - 32691 - 11905: 0xC180, - 32692 - 11905: 0xC181, - 32693 - 11905: 0xC182, - 32694 - 11905: 0xC183, - 32695 - 11905: 0xC184, - 32696 - 11905: 0xD9FA, - 32697 - 11905: 0xB8FE, - 32698 - 11905: 0xC185, - 32699 - 11905: 0xC186, - 32700 - 11905: 0xE5F1, - 32701 - 11905: 0xD3F0, - 32702 - 11905: 0xC187, - 32703 - 11905: 0xF4E0, - 32704 - 11905: 0xC188, - 32705 - 11905: 0xCECC, - 32706 - 11905: 0xC189, - 32707 - 11905: 0xC18A, - 32708 - 11905: 0xC18B, - 32709 - 11905: 0xB3E1, - 32710 - 11905: 0xC18C, - 32711 - 11905: 0xC18D, - 32712 - 11905: 0xC18E, - 32713 - 11905: 0xC18F, - 32714 - 11905: 0xF1B4, - 32715 - 11905: 0xC190, - 32716 - 11905: 0xD2EE, - 32717 - 11905: 0xC191, - 32718 - 11905: 0xF4E1, - 32719 - 11905: 0xC192, - 32720 - 11905: 0xC193, - 32721 - 11905: 0xC194, - 32722 - 11905: 0xC195, - 32723 - 11905: 0xC196, - 32724 - 11905: 0xCFE8, - 32725 - 11905: 0xF4E2, - 32726 - 11905: 0xC197, - 32727 - 11905: 0xC198, - 32728 - 11905: 0xC7CC, - 32729 - 11905: 0xC199, - 32730 - 11905: 0xC19A, - 32731 - 11905: 0xC19B, - 32732 - 11905: 0xC19C, - 32733 - 11905: 0xC19D, - 32734 - 11905: 0xC19E, - 32735 - 11905: 0xB5D4, - 32736 - 11905: 0xB4E4, - 32737 - 11905: 0xF4E4, - 32738 - 11905: 0xC19F, - 32739 - 11905: 0xC1A0, - 32740 - 11905: 0xC240, - 32741 - 11905: 0xF4E3, - 32742 - 11905: 0xF4E5, - 32743 - 11905: 0xC241, - 32744 - 11905: 0xC242, - 32745 - 11905: 0xF4E6, - 32746 - 11905: 0xC243, - 32747 - 11905: 0xC244, - 32748 - 11905: 0xC245, - 32749 - 11905: 0xC246, - 32750 - 11905: 0xF4E7, - 32751 - 11905: 0xC247, - 32752 - 11905: 0xBAB2, - 32753 - 11905: 0xB0BF, - 32754 - 11905: 0xC248, - 32755 - 11905: 0xF4E8, - 32756 - 11905: 0xC249, - 32757 - 11905: 0xC24A, - 32758 - 11905: 0xC24B, - 32759 - 11905: 0xC24C, - 32760 - 11905: 0xC24D, - 32761 - 11905: 0xC24E, - 32762 - 11905: 0xC24F, - 32763 - 11905: 0xB7AD, - 32764 - 11905: 0xD2ED, - 32765 - 11905: 0xC250, - 32766 - 11905: 0xC251, - 32767 - 11905: 0xC252, - 32768 - 11905: 0xD2AB, - 32769 - 11905: 0xC0CF, - 32770 - 11905: 0xC253, - 32771 - 11905: 0xBFBC, - 32772 - 11905: 0xEBA3, - 32773 - 11905: 0xD5DF, - 32774 - 11905: 0xEAC8, - 32775 - 11905: 0xC254, - 32776 - 11905: 0xC255, - 32777 - 11905: 0xC256, - 32778 - 11905: 0xC257, - 32779 - 11905: 0xF1F3, - 32780 - 11905: 0xB6F8, - 32781 - 11905: 0xCBA3, - 32782 - 11905: 0xC258, - 32783 - 11905: 0xC259, - 32784 - 11905: 0xC4CD, - 32785 - 11905: 0xC25A, - 32786 - 11905: 0xF1E7, - 32787 - 11905: 0xC25B, - 32788 - 11905: 0xF1E8, - 32789 - 11905: 0xB8FB, - 32790 - 11905: 0xF1E9, - 32791 - 11905: 0xBAC4, - 32792 - 11905: 0xD4C5, - 32793 - 11905: 0xB0D2, - 32794 - 11905: 0xC25C, - 32795 - 11905: 0xC25D, - 32796 - 11905: 0xF1EA, - 32797 - 11905: 0xC25E, - 32798 - 11905: 0xC25F, - 32799 - 11905: 0xC260, - 32800 - 11905: 0xF1EB, - 32801 - 11905: 0xC261, - 32802 - 11905: 0xF1EC, - 32803 - 11905: 0xC262, - 32804 - 11905: 0xC263, - 32805 - 11905: 0xF1ED, - 32806 - 11905: 0xF1EE, - 32807 - 11905: 0xF1EF, - 32808 - 11905: 0xF1F1, - 32809 - 11905: 0xF1F0, - 32810 - 11905: 0xC5D5, - 32811 - 11905: 0xC264, - 32812 - 11905: 0xC265, - 32813 - 11905: 0xC266, - 32814 - 11905: 0xC267, - 32815 - 11905: 0xC268, - 32816 - 11905: 0xC269, - 32817 - 11905: 0xF1F2, - 32818 - 11905: 0xC26A, - 32819 - 11905: 0xB6FA, - 32820 - 11905: 0xC26B, - 32821 - 11905: 0xF1F4, - 32822 - 11905: 0xD2AE, - 32823 - 11905: 0xDEC7, - 32824 - 11905: 0xCBCA, - 32825 - 11905: 0xC26C, - 32826 - 11905: 0xC26D, - 32827 - 11905: 0xB3DC, - 32828 - 11905: 0xC26E, - 32829 - 11905: 0xB5A2, - 32830 - 11905: 0xC26F, - 32831 - 11905: 0xB9A2, - 32832 - 11905: 0xC270, - 32833 - 11905: 0xC271, - 32834 - 11905: 0xC4F4, - 32835 - 11905: 0xF1F5, - 32836 - 11905: 0xC272, - 32837 - 11905: 0xC273, - 32838 - 11905: 0xF1F6, - 32839 - 11905: 0xC274, - 32840 - 11905: 0xC275, - 32841 - 11905: 0xC276, - 32842 - 11905: 0xC1C4, - 32843 - 11905: 0xC1FB, - 32844 - 11905: 0xD6B0, - 32845 - 11905: 0xF1F7, - 32846 - 11905: 0xC277, - 32847 - 11905: 0xC278, - 32848 - 11905: 0xC279, - 32849 - 11905: 0xC27A, - 32850 - 11905: 0xF1F8, - 32851 - 11905: 0xC27B, - 32852 - 11905: 0xC1AA, - 32853 - 11905: 0xC27C, - 32854 - 11905: 0xC27D, - 32855 - 11905: 0xC27E, - 32856 - 11905: 0xC6B8, - 32857 - 11905: 0xC280, - 32858 - 11905: 0xBEDB, - 32859 - 11905: 0xC281, - 32860 - 11905: 0xC282, - 32861 - 11905: 0xC283, - 32862 - 11905: 0xC284, - 32863 - 11905: 0xC285, - 32864 - 11905: 0xC286, - 32865 - 11905: 0xC287, - 32866 - 11905: 0xC288, - 32867 - 11905: 0xC289, - 32868 - 11905: 0xC28A, - 32869 - 11905: 0xC28B, - 32870 - 11905: 0xC28C, - 32871 - 11905: 0xC28D, - 32872 - 11905: 0xC28E, - 32873 - 11905: 0xF1F9, - 32874 - 11905: 0xB4CF, - 32875 - 11905: 0xC28F, - 32876 - 11905: 0xC290, - 32877 - 11905: 0xC291, - 32878 - 11905: 0xC292, - 32879 - 11905: 0xC293, - 32880 - 11905: 0xC294, - 32881 - 11905: 0xF1FA, - 32882 - 11905: 0xC295, - 32883 - 11905: 0xC296, - 32884 - 11905: 0xC297, - 32885 - 11905: 0xC298, - 32886 - 11905: 0xC299, - 32887 - 11905: 0xC29A, - 32888 - 11905: 0xC29B, - 32889 - 11905: 0xC29C, - 32890 - 11905: 0xC29D, - 32891 - 11905: 0xC29E, - 32892 - 11905: 0xC29F, - 32893 - 11905: 0xC2A0, - 32894 - 11905: 0xC340, - 32895 - 11905: 0xEDB2, - 32896 - 11905: 0xEDB1, - 32897 - 11905: 0xC341, - 32898 - 11905: 0xC342, - 32899 - 11905: 0xCBE0, - 32900 - 11905: 0xD2DE, - 32901 - 11905: 0xC343, - 32902 - 11905: 0xCBC1, - 32903 - 11905: 0xD5D8, - 32904 - 11905: 0xC344, - 32905 - 11905: 0xC8E2, - 32906 - 11905: 0xC345, - 32907 - 11905: 0xC0DF, - 32908 - 11905: 0xBCA1, - 32909 - 11905: 0xC346, - 32910 - 11905: 0xC347, - 32911 - 11905: 0xC348, - 32912 - 11905: 0xC349, - 32913 - 11905: 0xC34A, - 32914 - 11905: 0xC34B, - 32915 - 11905: 0xEBC1, - 32916 - 11905: 0xC34C, - 32917 - 11905: 0xC34D, - 32918 - 11905: 0xD0A4, - 32919 - 11905: 0xC34E, - 32920 - 11905: 0xD6E2, - 32921 - 11905: 0xC34F, - 32922 - 11905: 0xB6C7, - 32923 - 11905: 0xB8D8, - 32924 - 11905: 0xEBC0, - 32925 - 11905: 0xB8CE, - 32926 - 11905: 0xC350, - 32927 - 11905: 0xEBBF, - 32928 - 11905: 0xB3A6, - 32929 - 11905: 0xB9C9, - 32930 - 11905: 0xD6AB, - 32931 - 11905: 0xC351, - 32932 - 11905: 0xB7F4, - 32933 - 11905: 0xB7CA, - 32934 - 11905: 0xC352, - 32935 - 11905: 0xC353, - 32936 - 11905: 0xC354, - 32937 - 11905: 0xBCE7, - 32938 - 11905: 0xB7BE, - 32939 - 11905: 0xEBC6, - 32940 - 11905: 0xC355, - 32941 - 11905: 0xEBC7, - 32942 - 11905: 0xB0B9, - 32943 - 11905: 0xBFCF, - 32944 - 11905: 0xC356, - 32945 - 11905: 0xEBC5, - 32946 - 11905: 0xD3FD, - 32947 - 11905: 0xC357, - 32948 - 11905: 0xEBC8, - 32949 - 11905: 0xC358, - 32950 - 11905: 0xC359, - 32951 - 11905: 0xEBC9, - 32952 - 11905: 0xC35A, - 32953 - 11905: 0xC35B, - 32954 - 11905: 0xB7CE, - 32955 - 11905: 0xC35C, - 32956 - 11905: 0xEBC2, - 32957 - 11905: 0xEBC4, - 32958 - 11905: 0xC9F6, - 32959 - 11905: 0xD6D7, - 32960 - 11905: 0xD5CD, - 32961 - 11905: 0xD0B2, - 32962 - 11905: 0xEBCF, - 32963 - 11905: 0xCEB8, - 32964 - 11905: 0xEBD0, - 32965 - 11905: 0xC35D, - 32966 - 11905: 0xB5A8, - 32967 - 11905: 0xC35E, - 32968 - 11905: 0xC35F, - 32969 - 11905: 0xC360, - 32970 - 11905: 0xC361, - 32971 - 11905: 0xC362, - 32972 - 11905: 0xB1B3, - 32973 - 11905: 0xEBD2, - 32974 - 11905: 0xCCA5, - 32975 - 11905: 0xC363, - 32976 - 11905: 0xC364, - 32977 - 11905: 0xC365, - 32978 - 11905: 0xC366, - 32979 - 11905: 0xC367, - 32980 - 11905: 0xC368, - 32981 - 11905: 0xC369, - 32982 - 11905: 0xC5D6, - 32983 - 11905: 0xEBD3, - 32984 - 11905: 0xC36A, - 32985 - 11905: 0xEBD1, - 32986 - 11905: 0xC5DF, - 32987 - 11905: 0xEBCE, - 32988 - 11905: 0xCAA4, - 32989 - 11905: 0xEBD5, - 32990 - 11905: 0xB0FB, - 32991 - 11905: 0xC36B, - 32992 - 11905: 0xC36C, - 32993 - 11905: 0xBAFA, - 32994 - 11905: 0xC36D, - 32995 - 11905: 0xC36E, - 32996 - 11905: 0xD8B7, - 32997 - 11905: 0xF1E3, - 32998 - 11905: 0xC36F, - 32999 - 11905: 0xEBCA, - 33000 - 11905: 0xEBCB, - 33001 - 11905: 0xEBCC, - 33002 - 11905: 0xEBCD, - 33003 - 11905: 0xEBD6, - 33004 - 11905: 0xE6C0, - 33005 - 11905: 0xEBD9, - 33006 - 11905: 0xC370, - 33007 - 11905: 0xBFE8, - 33008 - 11905: 0xD2C8, - 33009 - 11905: 0xEBD7, - 33010 - 11905: 0xEBDC, - 33011 - 11905: 0xB8EC, - 33012 - 11905: 0xEBD8, - 33013 - 11905: 0xC371, - 33014 - 11905: 0xBDBA, - 33015 - 11905: 0xC372, - 33016 - 11905: 0xD0D8, - 33017 - 11905: 0xC373, - 33018 - 11905: 0xB0B7, - 33019 - 11905: 0xC374, - 33020 - 11905: 0xEBDD, - 33021 - 11905: 0xC4DC, - 33022 - 11905: 0xC375, - 33023 - 11905: 0xC376, - 33024 - 11905: 0xC377, - 33025 - 11905: 0xC378, - 33026 - 11905: 0xD6AC, - 33027 - 11905: 0xC379, - 33028 - 11905: 0xC37A, - 33029 - 11905: 0xC37B, - 33030 - 11905: 0xB4E0, - 33031 - 11905: 0xC37C, - 33032 - 11905: 0xC37D, - 33033 - 11905: 0xC2F6, - 33034 - 11905: 0xBCB9, - 33035 - 11905: 0xC37E, - 33036 - 11905: 0xC380, - 33037 - 11905: 0xEBDA, - 33038 - 11905: 0xEBDB, - 33039 - 11905: 0xD4E0, - 33040 - 11905: 0xC6EA, - 33041 - 11905: 0xC4D4, - 33042 - 11905: 0xEBDF, - 33043 - 11905: 0xC5A7, - 33044 - 11905: 0xD9F5, - 33045 - 11905: 0xC381, - 33046 - 11905: 0xB2B1, - 33047 - 11905: 0xC382, - 33048 - 11905: 0xEBE4, - 33049 - 11905: 0xC383, - 33050 - 11905: 0xBDC5, - 33051 - 11905: 0xC384, - 33052 - 11905: 0xC385, - 33053 - 11905: 0xC386, - 33054 - 11905: 0xEBE2, - 33055 - 11905: 0xC387, - 33056 - 11905: 0xC388, - 33057 - 11905: 0xC389, - 33058 - 11905: 0xC38A, - 33059 - 11905: 0xC38B, - 33060 - 11905: 0xC38C, - 33061 - 11905: 0xC38D, - 33062 - 11905: 0xC38E, - 33063 - 11905: 0xC38F, - 33064 - 11905: 0xC390, - 33065 - 11905: 0xC391, - 33066 - 11905: 0xC392, - 33067 - 11905: 0xC393, - 33068 - 11905: 0xEBE3, - 33069 - 11905: 0xC394, - 33070 - 11905: 0xC395, - 33071 - 11905: 0xB8AC, - 33072 - 11905: 0xC396, - 33073 - 11905: 0xCDD1, - 33074 - 11905: 0xEBE5, - 33075 - 11905: 0xC397, - 33076 - 11905: 0xC398, - 33077 - 11905: 0xC399, - 33078 - 11905: 0xEBE1, - 33079 - 11905: 0xC39A, - 33080 - 11905: 0xC1B3, - 33081 - 11905: 0xC39B, - 33082 - 11905: 0xC39C, - 33083 - 11905: 0xC39D, - 33084 - 11905: 0xC39E, - 33085 - 11905: 0xC39F, - 33086 - 11905: 0xC6A2, - 33087 - 11905: 0xC3A0, - 33088 - 11905: 0xC440, - 33089 - 11905: 0xC441, - 33090 - 11905: 0xC442, - 33091 - 11905: 0xC443, - 33092 - 11905: 0xC444, - 33093 - 11905: 0xC445, - 33094 - 11905: 0xCCF3, - 33095 - 11905: 0xC446, - 33096 - 11905: 0xEBE6, - 33097 - 11905: 0xC447, - 33098 - 11905: 0xC0B0, - 33099 - 11905: 0xD2B8, - 33100 - 11905: 0xEBE7, - 33101 - 11905: 0xC448, - 33102 - 11905: 0xC449, - 33103 - 11905: 0xC44A, - 33104 - 11905: 0xB8AF, - 33105 - 11905: 0xB8AD, - 33106 - 11905: 0xC44B, - 33107 - 11905: 0xEBE8, - 33108 - 11905: 0xC7BB, - 33109 - 11905: 0xCDF3, - 33110 - 11905: 0xC44C, - 33111 - 11905: 0xC44D, - 33112 - 11905: 0xC44E, - 33113 - 11905: 0xEBEA, - 33114 - 11905: 0xEBEB, - 33115 - 11905: 0xC44F, - 33116 - 11905: 0xC450, - 33117 - 11905: 0xC451, - 33118 - 11905: 0xC452, - 33119 - 11905: 0xC453, - 33120 - 11905: 0xEBED, - 33121 - 11905: 0xC454, - 33122 - 11905: 0xC455, - 33123 - 11905: 0xC456, - 33124 - 11905: 0xC457, - 33125 - 11905: 0xD0C8, - 33126 - 11905: 0xC458, - 33127 - 11905: 0xEBF2, - 33128 - 11905: 0xC459, - 33129 - 11905: 0xEBEE, - 33130 - 11905: 0xC45A, - 33131 - 11905: 0xC45B, - 33132 - 11905: 0xC45C, - 33133 - 11905: 0xEBF1, - 33134 - 11905: 0xC8F9, - 33135 - 11905: 0xC45D, - 33136 - 11905: 0xD1FC, - 33137 - 11905: 0xEBEC, - 33138 - 11905: 0xC45E, - 33139 - 11905: 0xC45F, - 33140 - 11905: 0xEBE9, - 33141 - 11905: 0xC460, - 33142 - 11905: 0xC461, - 33143 - 11905: 0xC462, - 33144 - 11905: 0xC463, - 33145 - 11905: 0xB8B9, - 33146 - 11905: 0xCFD9, - 33147 - 11905: 0xC4E5, - 33148 - 11905: 0xEBEF, - 33149 - 11905: 0xEBF0, - 33150 - 11905: 0xCCDA, - 33151 - 11905: 0xCDC8, - 33152 - 11905: 0xB0F2, - 33153 - 11905: 0xC464, - 33154 - 11905: 0xEBF6, - 33155 - 11905: 0xC465, - 33156 - 11905: 0xC466, - 33157 - 11905: 0xC467, - 33158 - 11905: 0xC468, - 33159 - 11905: 0xC469, - 33160 - 11905: 0xEBF5, - 33161 - 11905: 0xC46A, - 33162 - 11905: 0xB2B2, - 33163 - 11905: 0xC46B, - 33164 - 11905: 0xC46C, - 33165 - 11905: 0xC46D, - 33166 - 11905: 0xC46E, - 33167 - 11905: 0xB8E0, - 33168 - 11905: 0xC46F, - 33169 - 11905: 0xEBF7, - 33170 - 11905: 0xC470, - 33171 - 11905: 0xC471, - 33172 - 11905: 0xC472, - 33173 - 11905: 0xC473, - 33174 - 11905: 0xC474, - 33175 - 11905: 0xC475, - 33176 - 11905: 0xB1EC, - 33177 - 11905: 0xC476, - 33178 - 11905: 0xC477, - 33179 - 11905: 0xCCC5, - 33180 - 11905: 0xC4A4, - 33181 - 11905: 0xCFA5, - 33182 - 11905: 0xC478, - 33183 - 11905: 0xC479, - 33184 - 11905: 0xC47A, - 33185 - 11905: 0xC47B, - 33186 - 11905: 0xC47C, - 33187 - 11905: 0xEBF9, - 33188 - 11905: 0xC47D, - 33189 - 11905: 0xC47E, - 33190 - 11905: 0xECA2, - 33191 - 11905: 0xC480, - 33192 - 11905: 0xC5F2, - 33193 - 11905: 0xC481, - 33194 - 11905: 0xEBFA, - 33195 - 11905: 0xC482, - 33196 - 11905: 0xC483, - 33197 - 11905: 0xC484, - 33198 - 11905: 0xC485, - 33199 - 11905: 0xC486, - 33200 - 11905: 0xC487, - 33201 - 11905: 0xC488, - 33202 - 11905: 0xC489, - 33203 - 11905: 0xC9C5, - 33204 - 11905: 0xC48A, - 33205 - 11905: 0xC48B, - 33206 - 11905: 0xC48C, - 33207 - 11905: 0xC48D, - 33208 - 11905: 0xC48E, - 33209 - 11905: 0xC48F, - 33210 - 11905: 0xE2DF, - 33211 - 11905: 0xEBFE, - 33212 - 11905: 0xC490, - 33213 - 11905: 0xC491, - 33214 - 11905: 0xC492, - 33215 - 11905: 0xC493, - 33216 - 11905: 0xCDCE, - 33217 - 11905: 0xECA1, - 33218 - 11905: 0xB1DB, - 33219 - 11905: 0xD3B7, - 33220 - 11905: 0xC494, - 33221 - 11905: 0xC495, - 33222 - 11905: 0xD2DC, - 33223 - 11905: 0xC496, - 33224 - 11905: 0xC497, - 33225 - 11905: 0xC498, - 33226 - 11905: 0xEBFD, - 33227 - 11905: 0xC499, - 33228 - 11905: 0xEBFB, - 33229 - 11905: 0xC49A, - 33230 - 11905: 0xC49B, - 33231 - 11905: 0xC49C, - 33232 - 11905: 0xC49D, - 33233 - 11905: 0xC49E, - 33234 - 11905: 0xC49F, - 33235 - 11905: 0xC4A0, - 33236 - 11905: 0xC540, - 33237 - 11905: 0xC541, - 33238 - 11905: 0xC542, - 33239 - 11905: 0xC543, - 33240 - 11905: 0xC544, - 33241 - 11905: 0xC545, - 33242 - 11905: 0xC546, - 33243 - 11905: 0xC547, - 33244 - 11905: 0xC548, - 33245 - 11905: 0xC549, - 33246 - 11905: 0xC54A, - 33247 - 11905: 0xC54B, - 33248 - 11905: 0xC54C, - 33249 - 11905: 0xC54D, - 33250 - 11905: 0xC54E, - 33251 - 11905: 0xB3BC, - 33252 - 11905: 0xC54F, - 33253 - 11905: 0xC550, - 33254 - 11905: 0xC551, - 33255 - 11905: 0xEAB0, - 33256 - 11905: 0xC552, - 33257 - 11905: 0xC553, - 33258 - 11905: 0xD7D4, - 33259 - 11905: 0xC554, - 33260 - 11905: 0xF4AB, - 33261 - 11905: 0xB3F4, - 33262 - 11905: 0xC555, - 33263 - 11905: 0xC556, - 33264 - 11905: 0xC557, - 33265 - 11905: 0xC558, - 33266 - 11905: 0xC559, - 33267 - 11905: 0xD6C1, - 33268 - 11905: 0xD6C2, - 33269 - 11905: 0xC55A, - 33270 - 11905: 0xC55B, - 33271 - 11905: 0xC55C, - 33272 - 11905: 0xC55D, - 33273 - 11905: 0xC55E, - 33274 - 11905: 0xC55F, - 33275 - 11905: 0xD5E9, - 33276 - 11905: 0xBECA, - 33277 - 11905: 0xC560, - 33278 - 11905: 0xF4A7, - 33279 - 11905: 0xC561, - 33280 - 11905: 0xD2A8, - 33281 - 11905: 0xF4A8, - 33282 - 11905: 0xF4A9, - 33283 - 11905: 0xC562, - 33284 - 11905: 0xF4AA, - 33285 - 11905: 0xBECB, - 33286 - 11905: 0xD3DF, - 33287 - 11905: 0xC563, - 33288 - 11905: 0xC564, - 33289 - 11905: 0xC565, - 33290 - 11905: 0xC566, - 33291 - 11905: 0xC567, - 33292 - 11905: 0xC9E0, - 33293 - 11905: 0xC9E1, - 33294 - 11905: 0xC568, - 33295 - 11905: 0xC569, - 33296 - 11905: 0xF3C2, - 33297 - 11905: 0xC56A, - 33298 - 11905: 0xCAE6, - 33299 - 11905: 0xC56B, - 33300 - 11905: 0xCCF2, - 33301 - 11905: 0xC56C, - 33302 - 11905: 0xC56D, - 33303 - 11905: 0xC56E, - 33304 - 11905: 0xC56F, - 33305 - 11905: 0xC570, - 33306 - 11905: 0xC571, - 33307 - 11905: 0xE2B6, - 33308 - 11905: 0xCBB4, - 33309 - 11905: 0xC572, - 33310 - 11905: 0xCEE8, - 33311 - 11905: 0xD6DB, - 33312 - 11905: 0xC573, - 33313 - 11905: 0xF4AD, - 33314 - 11905: 0xF4AE, - 33315 - 11905: 0xF4AF, - 33316 - 11905: 0xC574, - 33317 - 11905: 0xC575, - 33318 - 11905: 0xC576, - 33319 - 11905: 0xC577, - 33320 - 11905: 0xF4B2, - 33321 - 11905: 0xC578, - 33322 - 11905: 0xBABD, - 33323 - 11905: 0xF4B3, - 33324 - 11905: 0xB0E3, - 33325 - 11905: 0xF4B0, - 33326 - 11905: 0xC579, - 33327 - 11905: 0xF4B1, - 33328 - 11905: 0xBDA2, - 33329 - 11905: 0xB2D5, - 33330 - 11905: 0xC57A, - 33331 - 11905: 0xF4B6, - 33332 - 11905: 0xF4B7, - 33333 - 11905: 0xB6E6, - 33334 - 11905: 0xB2B0, - 33335 - 11905: 0xCFCF, - 33336 - 11905: 0xF4B4, - 33337 - 11905: 0xB4AC, - 33338 - 11905: 0xC57B, - 33339 - 11905: 0xF4B5, - 33340 - 11905: 0xC57C, - 33341 - 11905: 0xC57D, - 33342 - 11905: 0xF4B8, - 33343 - 11905: 0xC57E, - 33344 - 11905: 0xC580, - 33345 - 11905: 0xC581, - 33346 - 11905: 0xC582, - 33347 - 11905: 0xC583, - 33348 - 11905: 0xF4B9, - 33349 - 11905: 0xC584, - 33350 - 11905: 0xC585, - 33351 - 11905: 0xCDA7, - 33352 - 11905: 0xC586, - 33353 - 11905: 0xF4BA, - 33354 - 11905: 0xC587, - 33355 - 11905: 0xF4BB, - 33356 - 11905: 0xC588, - 33357 - 11905: 0xC589, - 33358 - 11905: 0xC58A, - 33359 - 11905: 0xF4BC, - 33360 - 11905: 0xC58B, - 33361 - 11905: 0xC58C, - 33362 - 11905: 0xC58D, - 33363 - 11905: 0xC58E, - 33364 - 11905: 0xC58F, - 33365 - 11905: 0xC590, - 33366 - 11905: 0xC591, - 33367 - 11905: 0xC592, - 33368 - 11905: 0xCBD2, - 33369 - 11905: 0xC593, - 33370 - 11905: 0xF4BD, - 33371 - 11905: 0xC594, - 33372 - 11905: 0xC595, - 33373 - 11905: 0xC596, - 33374 - 11905: 0xC597, - 33375 - 11905: 0xF4BE, - 33376 - 11905: 0xC598, - 33377 - 11905: 0xC599, - 33378 - 11905: 0xC59A, - 33379 - 11905: 0xC59B, - 33380 - 11905: 0xC59C, - 33381 - 11905: 0xC59D, - 33382 - 11905: 0xC59E, - 33383 - 11905: 0xC59F, - 33384 - 11905: 0xF4BF, - 33385 - 11905: 0xC5A0, - 33386 - 11905: 0xC640, - 33387 - 11905: 0xC641, - 33388 - 11905: 0xC642, - 33389 - 11905: 0xC643, - 33390 - 11905: 0xF4DE, - 33391 - 11905: 0xC1BC, - 33392 - 11905: 0xBCE8, - 33393 - 11905: 0xC644, - 33394 - 11905: 0xC9AB, - 33395 - 11905: 0xD1DE, - 33396 - 11905: 0xE5F5, - 33397 - 11905: 0xC645, - 33398 - 11905: 0xC646, - 33399 - 11905: 0xC647, - 33400 - 11905: 0xC648, - 33401 - 11905: 0xDCB3, - 33402 - 11905: 0xD2D5, - 33403 - 11905: 0xC649, - 33404 - 11905: 0xC64A, - 33405 - 11905: 0xDCB4, - 33406 - 11905: 0xB0AC, - 33407 - 11905: 0xDCB5, - 33408 - 11905: 0xC64B, - 33409 - 11905: 0xC64C, - 33410 - 11905: 0xBDDA, - 33411 - 11905: 0xC64D, - 33412 - 11905: 0xDCB9, - 33413 - 11905: 0xC64E, - 33414 - 11905: 0xC64F, - 33415 - 11905: 0xC650, - 33416 - 11905: 0xD8C2, - 33417 - 11905: 0xC651, - 33418 - 11905: 0xDCB7, - 33419 - 11905: 0xD3F3, - 33420 - 11905: 0xC652, - 33421 - 11905: 0xC9D6, - 33422 - 11905: 0xDCBA, - 33423 - 11905: 0xDCB6, - 33424 - 11905: 0xC653, - 33425 - 11905: 0xDCBB, - 33426 - 11905: 0xC3A2, - 33427 - 11905: 0xC654, - 33428 - 11905: 0xC655, - 33429 - 11905: 0xC656, - 33430 - 11905: 0xC657, - 33431 - 11905: 0xDCBC, - 33432 - 11905: 0xDCC5, - 33433 - 11905: 0xDCBD, - 33434 - 11905: 0xC658, - 33435 - 11905: 0xC659, - 33436 - 11905: 0xCEDF, - 33437 - 11905: 0xD6A5, - 33438 - 11905: 0xC65A, - 33439 - 11905: 0xDCCF, - 33440 - 11905: 0xC65B, - 33441 - 11905: 0xDCCD, - 33442 - 11905: 0xC65C, - 33443 - 11905: 0xC65D, - 33444 - 11905: 0xDCD2, - 33445 - 11905: 0xBDE6, - 33446 - 11905: 0xC2AB, - 33447 - 11905: 0xC65E, - 33448 - 11905: 0xDCB8, - 33449 - 11905: 0xDCCB, - 33450 - 11905: 0xDCCE, - 33451 - 11905: 0xDCBE, - 33452 - 11905: 0xB7D2, - 33453 - 11905: 0xB0C5, - 33454 - 11905: 0xDCC7, - 33455 - 11905: 0xD0BE, - 33456 - 11905: 0xDCC1, - 33457 - 11905: 0xBBA8, - 33458 - 11905: 0xC65F, - 33459 - 11905: 0xB7BC, - 33460 - 11905: 0xDCCC, - 33461 - 11905: 0xC660, - 33462 - 11905: 0xC661, - 33463 - 11905: 0xDCC6, - 33464 - 11905: 0xDCBF, - 33465 - 11905: 0xC7DB, - 33466 - 11905: 0xC662, - 33467 - 11905: 0xC663, - 33468 - 11905: 0xC664, - 33469 - 11905: 0xD1BF, - 33470 - 11905: 0xDCC0, - 33471 - 11905: 0xC665, - 33472 - 11905: 0xC666, - 33473 - 11905: 0xDCCA, - 33474 - 11905: 0xC667, - 33475 - 11905: 0xC668, - 33476 - 11905: 0xDCD0, - 33477 - 11905: 0xC669, - 33478 - 11905: 0xC66A, - 33479 - 11905: 0xCEAD, - 33480 - 11905: 0xDCC2, - 33481 - 11905: 0xC66B, - 33482 - 11905: 0xDCC3, - 33483 - 11905: 0xDCC8, - 33484 - 11905: 0xDCC9, - 33485 - 11905: 0xB2D4, - 33486 - 11905: 0xDCD1, - 33487 - 11905: 0xCBD5, - 33488 - 11905: 0xC66C, - 33489 - 11905: 0xD4B7, - 33490 - 11905: 0xDCDB, - 33491 - 11905: 0xDCDF, - 33492 - 11905: 0xCCA6, - 33493 - 11905: 0xDCE6, - 33494 - 11905: 0xC66D, - 33495 - 11905: 0xC3E7, - 33496 - 11905: 0xDCDC, - 33497 - 11905: 0xC66E, - 33498 - 11905: 0xC66F, - 33499 - 11905: 0xBFC1, - 33500 - 11905: 0xDCD9, - 33501 - 11905: 0xC670, - 33502 - 11905: 0xB0FA, - 33503 - 11905: 0xB9B6, - 33504 - 11905: 0xDCE5, - 33505 - 11905: 0xDCD3, - 33506 - 11905: 0xC671, - 33507 - 11905: 0xDCC4, - 33508 - 11905: 0xDCD6, - 33509 - 11905: 0xC8F4, - 33510 - 11905: 0xBFE0, - 33511 - 11905: 0xC672, - 33512 - 11905: 0xC673, - 33513 - 11905: 0xC674, - 33514 - 11905: 0xC675, - 33515 - 11905: 0xC9BB, - 33516 - 11905: 0xC676, - 33517 - 11905: 0xC677, - 33518 - 11905: 0xC678, - 33519 - 11905: 0xB1BD, - 33520 - 11905: 0xC679, - 33521 - 11905: 0xD3A2, - 33522 - 11905: 0xC67A, - 33523 - 11905: 0xC67B, - 33524 - 11905: 0xDCDA, - 33525 - 11905: 0xC67C, - 33526 - 11905: 0xC67D, - 33527 - 11905: 0xDCD5, - 33528 - 11905: 0xC67E, - 33529 - 11905: 0xC6BB, - 33530 - 11905: 0xC680, - 33531 - 11905: 0xDCDE, - 33532 - 11905: 0xC681, - 33533 - 11905: 0xC682, - 33534 - 11905: 0xC683, - 33535 - 11905: 0xC684, - 33536 - 11905: 0xC685, - 33537 - 11905: 0xD7C2, - 33538 - 11905: 0xC3AF, - 33539 - 11905: 0xB7B6, - 33540 - 11905: 0xC7D1, - 33541 - 11905: 0xC3A9, - 33542 - 11905: 0xDCE2, - 33543 - 11905: 0xDCD8, - 33544 - 11905: 0xDCEB, - 33545 - 11905: 0xDCD4, - 33546 - 11905: 0xC686, - 33547 - 11905: 0xC687, - 33548 - 11905: 0xDCDD, - 33549 - 11905: 0xC688, - 33550 - 11905: 0xBEA5, - 33551 - 11905: 0xDCD7, - 33552 - 11905: 0xC689, - 33553 - 11905: 0xDCE0, - 33554 - 11905: 0xC68A, - 33555 - 11905: 0xC68B, - 33556 - 11905: 0xDCE3, - 33557 - 11905: 0xDCE4, - 33558 - 11905: 0xC68C, - 33559 - 11905: 0xDCF8, - 33560 - 11905: 0xC68D, - 33561 - 11905: 0xC68E, - 33562 - 11905: 0xDCE1, - 33563 - 11905: 0xDDA2, - 33564 - 11905: 0xDCE7, - 33565 - 11905: 0xC68F, - 33566 - 11905: 0xC690, - 33567 - 11905: 0xC691, - 33568 - 11905: 0xC692, - 33569 - 11905: 0xC693, - 33570 - 11905: 0xC694, - 33571 - 11905: 0xC695, - 33572 - 11905: 0xC696, - 33573 - 11905: 0xC697, - 33574 - 11905: 0xC698, - 33575 - 11905: 0xBCEB, - 33576 - 11905: 0xB4C4, - 33577 - 11905: 0xC699, - 33578 - 11905: 0xC69A, - 33579 - 11905: 0xC3A3, - 33580 - 11905: 0xB2E7, - 33581 - 11905: 0xDCFA, - 33582 - 11905: 0xC69B, - 33583 - 11905: 0xDCF2, - 33584 - 11905: 0xC69C, - 33585 - 11905: 0xDCEF, - 33586 - 11905: 0xC69D, - 33587 - 11905: 0xDCFC, - 33588 - 11905: 0xDCEE, - 33589 - 11905: 0xD2F0, - 33590 - 11905: 0xB2E8, - 33591 - 11905: 0xC69E, - 33592 - 11905: 0xC8D7, - 33593 - 11905: 0xC8E3, - 33594 - 11905: 0xDCFB, - 33595 - 11905: 0xC69F, - 33596 - 11905: 0xDCED, - 33597 - 11905: 0xC6A0, - 33598 - 11905: 0xC740, - 33599 - 11905: 0xC741, - 33600 - 11905: 0xDCF7, - 33601 - 11905: 0xC742, - 33602 - 11905: 0xC743, - 33603 - 11905: 0xDCF5, - 33604 - 11905: 0xC744, - 33605 - 11905: 0xC745, - 33606 - 11905: 0xBEA3, - 33607 - 11905: 0xDCF4, - 33608 - 11905: 0xC746, - 33609 - 11905: 0xB2DD, - 33610 - 11905: 0xC747, - 33611 - 11905: 0xC748, - 33612 - 11905: 0xC749, - 33613 - 11905: 0xC74A, - 33614 - 11905: 0xC74B, - 33615 - 11905: 0xDCF3, - 33616 - 11905: 0xBCF6, - 33617 - 11905: 0xDCE8, - 33618 - 11905: 0xBBC4, - 33619 - 11905: 0xC74C, - 33620 - 11905: 0xC0F3, - 33621 - 11905: 0xC74D, - 33622 - 11905: 0xC74E, - 33623 - 11905: 0xC74F, - 33624 - 11905: 0xC750, - 33625 - 11905: 0xC751, - 33626 - 11905: 0xBCD4, - 33627 - 11905: 0xDCE9, - 33628 - 11905: 0xDCEA, - 33629 - 11905: 0xC752, - 33630 - 11905: 0xDCF1, - 33631 - 11905: 0xDCF6, - 33632 - 11905: 0xDCF9, - 33633 - 11905: 0xB5B4, - 33634 - 11905: 0xC753, - 33635 - 11905: 0xC8D9, - 33636 - 11905: 0xBBE7, - 33637 - 11905: 0xDCFE, - 33638 - 11905: 0xDCFD, - 33639 - 11905: 0xD3AB, - 33640 - 11905: 0xDDA1, - 33641 - 11905: 0xDDA3, - 33642 - 11905: 0xDDA5, - 33643 - 11905: 0xD2F1, - 33644 - 11905: 0xDDA4, - 33645 - 11905: 0xDDA6, - 33646 - 11905: 0xDDA7, - 33647 - 11905: 0xD2A9, - 33648 - 11905: 0xC754, - 33649 - 11905: 0xC755, - 33650 - 11905: 0xC756, - 33651 - 11905: 0xC757, - 33652 - 11905: 0xC758, - 33653 - 11905: 0xC759, - 33654 - 11905: 0xC75A, - 33655 - 11905: 0xBAC9, - 33656 - 11905: 0xDDA9, - 33657 - 11905: 0xC75B, - 33658 - 11905: 0xC75C, - 33659 - 11905: 0xDDB6, - 33660 - 11905: 0xDDB1, - 33661 - 11905: 0xDDB4, - 33662 - 11905: 0xC75D, - 33663 - 11905: 0xC75E, - 33664 - 11905: 0xC75F, - 33665 - 11905: 0xC760, - 33666 - 11905: 0xC761, - 33667 - 11905: 0xC762, - 33668 - 11905: 0xC763, - 33669 - 11905: 0xDDB0, - 33670 - 11905: 0xC6CE, - 33671 - 11905: 0xC764, - 33672 - 11905: 0xC765, - 33673 - 11905: 0xC0F2, - 33674 - 11905: 0xC766, - 33675 - 11905: 0xC767, - 33676 - 11905: 0xC768, - 33677 - 11905: 0xC769, - 33678 - 11905: 0xC9AF, - 33679 - 11905: 0xC76A, - 33680 - 11905: 0xC76B, - 33681 - 11905: 0xC76C, - 33682 - 11905: 0xDCEC, - 33683 - 11905: 0xDDAE, - 33684 - 11905: 0xC76D, - 33685 - 11905: 0xC76E, - 33686 - 11905: 0xC76F, - 33687 - 11905: 0xC770, - 33688 - 11905: 0xDDB7, - 33689 - 11905: 0xC771, - 33690 - 11905: 0xC772, - 33691 - 11905: 0xDCF0, - 33692 - 11905: 0xDDAF, - 33693 - 11905: 0xC773, - 33694 - 11905: 0xDDB8, - 33695 - 11905: 0xC774, - 33696 - 11905: 0xDDAC, - 33697 - 11905: 0xC775, - 33698 - 11905: 0xC776, - 33699 - 11905: 0xC777, - 33700 - 11905: 0xC778, - 33701 - 11905: 0xC779, - 33702 - 11905: 0xC77A, - 33703 - 11905: 0xC77B, - 33704 - 11905: 0xDDB9, - 33705 - 11905: 0xDDB3, - 33706 - 11905: 0xDDAD, - 33707 - 11905: 0xC4AA, - 33708 - 11905: 0xC77C, - 33709 - 11905: 0xC77D, - 33710 - 11905: 0xC77E, - 33711 - 11905: 0xC780, - 33712 - 11905: 0xDDA8, - 33713 - 11905: 0xC0B3, - 33714 - 11905: 0xC1AB, - 33715 - 11905: 0xDDAA, - 33716 - 11905: 0xDDAB, - 33717 - 11905: 0xC781, - 33718 - 11905: 0xDDB2, - 33719 - 11905: 0xBBF1, - 33720 - 11905: 0xDDB5, - 33721 - 11905: 0xD3A8, - 33722 - 11905: 0xDDBA, - 33723 - 11905: 0xC782, - 33724 - 11905: 0xDDBB, - 33725 - 11905: 0xC3A7, - 33726 - 11905: 0xC783, - 33727 - 11905: 0xC784, - 33728 - 11905: 0xDDD2, - 33729 - 11905: 0xDDBC, - 33730 - 11905: 0xC785, - 33731 - 11905: 0xC786, - 33732 - 11905: 0xC787, - 33733 - 11905: 0xDDD1, - 33734 - 11905: 0xC788, - 33735 - 11905: 0xB9BD, - 33736 - 11905: 0xC789, - 33737 - 11905: 0xC78A, - 33738 - 11905: 0xBED5, - 33739 - 11905: 0xC78B, - 33740 - 11905: 0xBEFA, - 33741 - 11905: 0xC78C, - 33742 - 11905: 0xC78D, - 33743 - 11905: 0xBACA, - 33744 - 11905: 0xC78E, - 33745 - 11905: 0xC78F, - 33746 - 11905: 0xC790, - 33747 - 11905: 0xC791, - 33748 - 11905: 0xDDCA, - 33749 - 11905: 0xC792, - 33750 - 11905: 0xDDC5, - 33751 - 11905: 0xC793, - 33752 - 11905: 0xDDBF, - 33753 - 11905: 0xC794, - 33754 - 11905: 0xC795, - 33755 - 11905: 0xC796, - 33756 - 11905: 0xB2CB, - 33757 - 11905: 0xDDC3, - 33758 - 11905: 0xC797, - 33759 - 11905: 0xDDCB, - 33760 - 11905: 0xB2A4, - 33761 - 11905: 0xDDD5, - 33762 - 11905: 0xC798, - 33763 - 11905: 0xC799, - 33764 - 11905: 0xC79A, - 33765 - 11905: 0xDDBE, - 33766 - 11905: 0xC79B, - 33767 - 11905: 0xC79C, - 33768 - 11905: 0xC79D, - 33769 - 11905: 0xC6D0, - 33770 - 11905: 0xDDD0, - 33771 - 11905: 0xC79E, - 33772 - 11905: 0xC79F, - 33773 - 11905: 0xC7A0, - 33774 - 11905: 0xC840, - 33775 - 11905: 0xC841, - 33776 - 11905: 0xDDD4, - 33777 - 11905: 0xC1E2, - 33778 - 11905: 0xB7C6, - 33779 - 11905: 0xC842, - 33780 - 11905: 0xC843, - 33781 - 11905: 0xC844, - 33782 - 11905: 0xC845, - 33783 - 11905: 0xC846, - 33784 - 11905: 0xDDCE, - 33785 - 11905: 0xDDCF, - 33786 - 11905: 0xC847, - 33787 - 11905: 0xC848, - 33788 - 11905: 0xC849, - 33789 - 11905: 0xDDC4, - 33790 - 11905: 0xC84A, - 33791 - 11905: 0xC84B, - 33792 - 11905: 0xC84C, - 33793 - 11905: 0xDDBD, - 33794 - 11905: 0xC84D, - 33795 - 11905: 0xDDCD, - 33796 - 11905: 0xCCD1, - 33797 - 11905: 0xC84E, - 33798 - 11905: 0xDDC9, - 33799 - 11905: 0xC84F, - 33800 - 11905: 0xC850, - 33801 - 11905: 0xC851, - 33802 - 11905: 0xC852, - 33803 - 11905: 0xDDC2, - 33804 - 11905: 0xC3C8, - 33805 - 11905: 0xC6BC, - 33806 - 11905: 0xCEAE, - 33807 - 11905: 0xDDCC, - 33808 - 11905: 0xC853, - 33809 - 11905: 0xDDC8, - 33810 - 11905: 0xC854, - 33811 - 11905: 0xC855, - 33812 - 11905: 0xC856, - 33813 - 11905: 0xC857, - 33814 - 11905: 0xC858, - 33815 - 11905: 0xC859, - 33816 - 11905: 0xDDC1, - 33817 - 11905: 0xC85A, - 33818 - 11905: 0xC85B, - 33819 - 11905: 0xC85C, - 33820 - 11905: 0xDDC6, - 33821 - 11905: 0xC2DC, - 33822 - 11905: 0xC85D, - 33823 - 11905: 0xC85E, - 33824 - 11905: 0xC85F, - 33825 - 11905: 0xC860, - 33826 - 11905: 0xC861, - 33827 - 11905: 0xC862, - 33828 - 11905: 0xD3A9, - 33829 - 11905: 0xD3AA, - 33830 - 11905: 0xDDD3, - 33831 - 11905: 0xCFF4, - 33832 - 11905: 0xC8F8, - 33833 - 11905: 0xC863, - 33834 - 11905: 0xC864, - 33835 - 11905: 0xC865, - 33836 - 11905: 0xC866, - 33837 - 11905: 0xC867, - 33838 - 11905: 0xC868, - 33839 - 11905: 0xC869, - 33840 - 11905: 0xC86A, - 33841 - 11905: 0xDDE6, - 33842 - 11905: 0xC86B, - 33843 - 11905: 0xC86C, - 33844 - 11905: 0xC86D, - 33845 - 11905: 0xC86E, - 33846 - 11905: 0xC86F, - 33847 - 11905: 0xC870, - 33848 - 11905: 0xDDC7, - 33849 - 11905: 0xC871, - 33850 - 11905: 0xC872, - 33851 - 11905: 0xC873, - 33852 - 11905: 0xDDE0, - 33853 - 11905: 0xC2E4, - 33854 - 11905: 0xC874, - 33855 - 11905: 0xC875, - 33856 - 11905: 0xC876, - 33857 - 11905: 0xC877, - 33858 - 11905: 0xC878, - 33859 - 11905: 0xC879, - 33860 - 11905: 0xC87A, - 33861 - 11905: 0xC87B, - 33862 - 11905: 0xDDE1, - 33863 - 11905: 0xC87C, - 33864 - 11905: 0xC87D, - 33865 - 11905: 0xC87E, - 33866 - 11905: 0xC880, - 33867 - 11905: 0xC881, - 33868 - 11905: 0xC882, - 33869 - 11905: 0xC883, - 33870 - 11905: 0xC884, - 33871 - 11905: 0xC885, - 33872 - 11905: 0xC886, - 33873 - 11905: 0xDDD7, - 33874 - 11905: 0xC887, - 33875 - 11905: 0xC888, - 33876 - 11905: 0xC889, - 33877 - 11905: 0xC88A, - 33878 - 11905: 0xC88B, - 33879 - 11905: 0xD6F8, - 33880 - 11905: 0xC88C, - 33881 - 11905: 0xDDD9, - 33882 - 11905: 0xDDD8, - 33883 - 11905: 0xB8F0, - 33884 - 11905: 0xDDD6, - 33885 - 11905: 0xC88D, - 33886 - 11905: 0xC88E, - 33887 - 11905: 0xC88F, - 33888 - 11905: 0xC890, - 33889 - 11905: 0xC6CF, - 33890 - 11905: 0xC891, - 33891 - 11905: 0xB6AD, - 33892 - 11905: 0xC892, - 33893 - 11905: 0xC893, - 33894 - 11905: 0xC894, - 33895 - 11905: 0xC895, - 33896 - 11905: 0xC896, - 33897 - 11905: 0xDDE2, - 33898 - 11905: 0xC897, - 33899 - 11905: 0xBAF9, - 33900 - 11905: 0xD4E1, - 33901 - 11905: 0xDDE7, - 33902 - 11905: 0xC898, - 33903 - 11905: 0xC899, - 33904 - 11905: 0xC89A, - 33905 - 11905: 0xB4D0, - 33906 - 11905: 0xC89B, - 33907 - 11905: 0xDDDA, - 33908 - 11905: 0xC89C, - 33909 - 11905: 0xBFFB, - 33910 - 11905: 0xDDE3, - 33911 - 11905: 0xC89D, - 33912 - 11905: 0xDDDF, - 33913 - 11905: 0xC89E, - 33914 - 11905: 0xDDDD, - 33915 - 11905: 0xC89F, - 33916 - 11905: 0xC8A0, - 33917 - 11905: 0xC940, - 33918 - 11905: 0xC941, - 33919 - 11905: 0xC942, - 33920 - 11905: 0xC943, - 33921 - 11905: 0xC944, - 33922 - 11905: 0xB5D9, - 33923 - 11905: 0xC945, - 33924 - 11905: 0xC946, - 33925 - 11905: 0xC947, - 33926 - 11905: 0xC948, - 33927 - 11905: 0xDDDB, - 33928 - 11905: 0xDDDC, - 33929 - 11905: 0xDDDE, - 33930 - 11905: 0xC949, - 33931 - 11905: 0xBDAF, - 33932 - 11905: 0xDDE4, - 33933 - 11905: 0xC94A, - 33934 - 11905: 0xDDE5, - 33935 - 11905: 0xC94B, - 33936 - 11905: 0xC94C, - 33937 - 11905: 0xC94D, - 33938 - 11905: 0xC94E, - 33939 - 11905: 0xC94F, - 33940 - 11905: 0xC950, - 33941 - 11905: 0xC951, - 33942 - 11905: 0xC952, - 33943 - 11905: 0xDDF5, - 33944 - 11905: 0xC953, - 33945 - 11905: 0xC3C9, - 33946 - 11905: 0xC954, - 33947 - 11905: 0xC955, - 33948 - 11905: 0xCBE2, - 33949 - 11905: 0xC956, - 33950 - 11905: 0xC957, - 33951 - 11905: 0xC958, - 33952 - 11905: 0xC959, - 33953 - 11905: 0xDDF2, - 33954 - 11905: 0xC95A, - 33955 - 11905: 0xC95B, - 33956 - 11905: 0xC95C, - 33957 - 11905: 0xC95D, - 33958 - 11905: 0xC95E, - 33959 - 11905: 0xC95F, - 33960 - 11905: 0xC960, - 33961 - 11905: 0xC961, - 33962 - 11905: 0xC962, - 33963 - 11905: 0xC963, - 33964 - 11905: 0xC964, - 33965 - 11905: 0xC965, - 33966 - 11905: 0xC966, - 33967 - 11905: 0xD8E1, - 33968 - 11905: 0xC967, - 33969 - 11905: 0xC968, - 33970 - 11905: 0xC6D1, - 33971 - 11905: 0xC969, - 33972 - 11905: 0xDDF4, - 33973 - 11905: 0xC96A, - 33974 - 11905: 0xC96B, - 33975 - 11905: 0xC96C, - 33976 - 11905: 0xD5F4, - 33977 - 11905: 0xDDF3, - 33978 - 11905: 0xDDF0, - 33979 - 11905: 0xC96D, - 33980 - 11905: 0xC96E, - 33981 - 11905: 0xDDEC, - 33982 - 11905: 0xC96F, - 33983 - 11905: 0xDDEF, - 33984 - 11905: 0xC970, - 33985 - 11905: 0xDDE8, - 33986 - 11905: 0xC971, - 33987 - 11905: 0xC972, - 33988 - 11905: 0xD0EE, - 33989 - 11905: 0xC973, - 33990 - 11905: 0xC974, - 33991 - 11905: 0xC975, - 33992 - 11905: 0xC976, - 33993 - 11905: 0xC8D8, - 33994 - 11905: 0xDDEE, - 33995 - 11905: 0xC977, - 33996 - 11905: 0xC978, - 33997 - 11905: 0xDDE9, - 33998 - 11905: 0xC979, - 33999 - 11905: 0xC97A, - 34000 - 11905: 0xDDEA, - 34001 - 11905: 0xCBF2, - 34002 - 11905: 0xC97B, - 34003 - 11905: 0xDDED, - 34004 - 11905: 0xC97C, - 34005 - 11905: 0xC97D, - 34006 - 11905: 0xB1CD, - 34007 - 11905: 0xC97E, - 34008 - 11905: 0xC980, - 34009 - 11905: 0xC981, - 34010 - 11905: 0xC982, - 34011 - 11905: 0xC983, - 34012 - 11905: 0xC984, - 34013 - 11905: 0xC0B6, - 34014 - 11905: 0xC985, - 34015 - 11905: 0xBCBB, - 34016 - 11905: 0xDDF1, - 34017 - 11905: 0xC986, - 34018 - 11905: 0xC987, - 34019 - 11905: 0xDDF7, - 34020 - 11905: 0xC988, - 34021 - 11905: 0xDDF6, - 34022 - 11905: 0xDDEB, - 34023 - 11905: 0xC989, - 34024 - 11905: 0xC98A, - 34025 - 11905: 0xC98B, - 34026 - 11905: 0xC98C, - 34027 - 11905: 0xC98D, - 34028 - 11905: 0xC5EE, - 34029 - 11905: 0xC98E, - 34030 - 11905: 0xC98F, - 34031 - 11905: 0xC990, - 34032 - 11905: 0xDDFB, - 34033 - 11905: 0xC991, - 34034 - 11905: 0xC992, - 34035 - 11905: 0xC993, - 34036 - 11905: 0xC994, - 34037 - 11905: 0xC995, - 34038 - 11905: 0xC996, - 34039 - 11905: 0xC997, - 34040 - 11905: 0xC998, - 34041 - 11905: 0xC999, - 34042 - 11905: 0xC99A, - 34043 - 11905: 0xC99B, - 34044 - 11905: 0xDEA4, - 34045 - 11905: 0xC99C, - 34046 - 11905: 0xC99D, - 34047 - 11905: 0xDEA3, - 34048 - 11905: 0xC99E, - 34049 - 11905: 0xC99F, - 34050 - 11905: 0xC9A0, - 34051 - 11905: 0xCA40, - 34052 - 11905: 0xCA41, - 34053 - 11905: 0xCA42, - 34054 - 11905: 0xCA43, - 34055 - 11905: 0xCA44, - 34056 - 11905: 0xCA45, - 34057 - 11905: 0xCA46, - 34058 - 11905: 0xCA47, - 34059 - 11905: 0xCA48, - 34060 - 11905: 0xDDF8, - 34061 - 11905: 0xCA49, - 34062 - 11905: 0xCA4A, - 34063 - 11905: 0xCA4B, - 34064 - 11905: 0xCA4C, - 34065 - 11905: 0xC3EF, - 34066 - 11905: 0xCA4D, - 34067 - 11905: 0xC2FB, - 34068 - 11905: 0xCA4E, - 34069 - 11905: 0xCA4F, - 34070 - 11905: 0xCA50, - 34071 - 11905: 0xD5E1, - 34072 - 11905: 0xCA51, - 34073 - 11905: 0xCA52, - 34074 - 11905: 0xCEB5, - 34075 - 11905: 0xCA53, - 34076 - 11905: 0xCA54, - 34077 - 11905: 0xCA55, - 34078 - 11905: 0xCA56, - 34079 - 11905: 0xDDFD, - 34080 - 11905: 0xCA57, - 34081 - 11905: 0xB2CC, - 34082 - 11905: 0xCA58, - 34083 - 11905: 0xCA59, - 34084 - 11905: 0xCA5A, - 34085 - 11905: 0xCA5B, - 34086 - 11905: 0xCA5C, - 34087 - 11905: 0xCA5D, - 34088 - 11905: 0xCA5E, - 34089 - 11905: 0xCA5F, - 34090 - 11905: 0xCA60, - 34091 - 11905: 0xC4E8, - 34092 - 11905: 0xCADF, - 34093 - 11905: 0xCA61, - 34094 - 11905: 0xCA62, - 34095 - 11905: 0xCA63, - 34096 - 11905: 0xCA64, - 34097 - 11905: 0xCA65, - 34098 - 11905: 0xCA66, - 34099 - 11905: 0xCA67, - 34100 - 11905: 0xCA68, - 34101 - 11905: 0xCA69, - 34102 - 11905: 0xCA6A, - 34103 - 11905: 0xC7BE, - 34104 - 11905: 0xDDFA, - 34105 - 11905: 0xDDFC, - 34106 - 11905: 0xDDFE, - 34107 - 11905: 0xDEA2, - 34108 - 11905: 0xB0AA, - 34109 - 11905: 0xB1CE, - 34110 - 11905: 0xCA6B, - 34111 - 11905: 0xCA6C, - 34112 - 11905: 0xCA6D, - 34113 - 11905: 0xCA6E, - 34114 - 11905: 0xCA6F, - 34115 - 11905: 0xDEAC, - 34116 - 11905: 0xCA70, - 34117 - 11905: 0xCA71, - 34118 - 11905: 0xCA72, - 34119 - 11905: 0xCA73, - 34120 - 11905: 0xDEA6, - 34121 - 11905: 0xBDB6, - 34122 - 11905: 0xC8EF, - 34123 - 11905: 0xCA74, - 34124 - 11905: 0xCA75, - 34125 - 11905: 0xCA76, - 34126 - 11905: 0xCA77, - 34127 - 11905: 0xCA78, - 34128 - 11905: 0xCA79, - 34129 - 11905: 0xCA7A, - 34130 - 11905: 0xCA7B, - 34131 - 11905: 0xCA7C, - 34132 - 11905: 0xCA7D, - 34133 - 11905: 0xCA7E, - 34134 - 11905: 0xDEA1, - 34135 - 11905: 0xCA80, - 34136 - 11905: 0xCA81, - 34137 - 11905: 0xDEA5, - 34138 - 11905: 0xCA82, - 34139 - 11905: 0xCA83, - 34140 - 11905: 0xCA84, - 34141 - 11905: 0xCA85, - 34142 - 11905: 0xDEA9, - 34143 - 11905: 0xCA86, - 34144 - 11905: 0xCA87, - 34145 - 11905: 0xCA88, - 34146 - 11905: 0xCA89, - 34147 - 11905: 0xCA8A, - 34148 - 11905: 0xDEA8, - 34149 - 11905: 0xCA8B, - 34150 - 11905: 0xCA8C, - 34151 - 11905: 0xCA8D, - 34152 - 11905: 0xDEA7, - 34153 - 11905: 0xCA8E, - 34154 - 11905: 0xCA8F, - 34155 - 11905: 0xCA90, - 34156 - 11905: 0xCA91, - 34157 - 11905: 0xCA92, - 34158 - 11905: 0xCA93, - 34159 - 11905: 0xCA94, - 34160 - 11905: 0xCA95, - 34161 - 11905: 0xCA96, - 34162 - 11905: 0xDEAD, - 34163 - 11905: 0xCA97, - 34164 - 11905: 0xD4CC, - 34165 - 11905: 0xCA98, - 34166 - 11905: 0xCA99, - 34167 - 11905: 0xCA9A, - 34168 - 11905: 0xCA9B, - 34169 - 11905: 0xDEB3, - 34170 - 11905: 0xDEAA, - 34171 - 11905: 0xDEAE, - 34172 - 11905: 0xCA9C, - 34173 - 11905: 0xCA9D, - 34174 - 11905: 0xC0D9, - 34175 - 11905: 0xCA9E, - 34176 - 11905: 0xCA9F, - 34177 - 11905: 0xCAA0, - 34178 - 11905: 0xCB40, - 34179 - 11905: 0xCB41, - 34180 - 11905: 0xB1A1, - 34181 - 11905: 0xDEB6, - 34182 - 11905: 0xCB42, - 34183 - 11905: 0xDEB1, - 34184 - 11905: 0xCB43, - 34185 - 11905: 0xCB44, - 34186 - 11905: 0xCB45, - 34187 - 11905: 0xCB46, - 34188 - 11905: 0xCB47, - 34189 - 11905: 0xCB48, - 34190 - 11905: 0xCB49, - 34191 - 11905: 0xDEB2, - 34192 - 11905: 0xCB4A, - 34193 - 11905: 0xCB4B, - 34194 - 11905: 0xCB4C, - 34195 - 11905: 0xCB4D, - 34196 - 11905: 0xCB4E, - 34197 - 11905: 0xCB4F, - 34198 - 11905: 0xCB50, - 34199 - 11905: 0xCB51, - 34200 - 11905: 0xCB52, - 34201 - 11905: 0xCB53, - 34202 - 11905: 0xCB54, - 34203 - 11905: 0xD1A6, - 34204 - 11905: 0xDEB5, - 34205 - 11905: 0xCB55, - 34206 - 11905: 0xCB56, - 34207 - 11905: 0xCB57, - 34208 - 11905: 0xCB58, - 34209 - 11905: 0xCB59, - 34210 - 11905: 0xCB5A, - 34211 - 11905: 0xCB5B, - 34212 - 11905: 0xDEAF, - 34213 - 11905: 0xCB5C, - 34214 - 11905: 0xCB5D, - 34215 - 11905: 0xCB5E, - 34216 - 11905: 0xDEB0, - 34217 - 11905: 0xCB5F, - 34218 - 11905: 0xD0BD, - 34219 - 11905: 0xCB60, - 34220 - 11905: 0xCB61, - 34221 - 11905: 0xCB62, - 34222 - 11905: 0xDEB4, - 34223 - 11905: 0xCAED, - 34224 - 11905: 0xDEB9, - 34225 - 11905: 0xCB63, - 34226 - 11905: 0xCB64, - 34227 - 11905: 0xCB65, - 34228 - 11905: 0xCB66, - 34229 - 11905: 0xCB67, - 34230 - 11905: 0xCB68, - 34231 - 11905: 0xDEB8, - 34232 - 11905: 0xCB69, - 34233 - 11905: 0xDEB7, - 34234 - 11905: 0xCB6A, - 34235 - 11905: 0xCB6B, - 34236 - 11905: 0xCB6C, - 34237 - 11905: 0xCB6D, - 34238 - 11905: 0xCB6E, - 34239 - 11905: 0xCB6F, - 34240 - 11905: 0xCB70, - 34241 - 11905: 0xDEBB, - 34242 - 11905: 0xCB71, - 34243 - 11905: 0xCB72, - 34244 - 11905: 0xCB73, - 34245 - 11905: 0xCB74, - 34246 - 11905: 0xCB75, - 34247 - 11905: 0xCB76, - 34248 - 11905: 0xCB77, - 34249 - 11905: 0xBDE5, - 34250 - 11905: 0xCB78, - 34251 - 11905: 0xCB79, - 34252 - 11905: 0xCB7A, - 34253 - 11905: 0xCB7B, - 34254 - 11905: 0xCB7C, - 34255 - 11905: 0xB2D8, - 34256 - 11905: 0xC3EA, - 34257 - 11905: 0xCB7D, - 34258 - 11905: 0xCB7E, - 34259 - 11905: 0xDEBA, - 34260 - 11905: 0xCB80, - 34261 - 11905: 0xC5BA, - 34262 - 11905: 0xCB81, - 34263 - 11905: 0xCB82, - 34264 - 11905: 0xCB83, - 34265 - 11905: 0xCB84, - 34266 - 11905: 0xCB85, - 34267 - 11905: 0xCB86, - 34268 - 11905: 0xDEBC, - 34269 - 11905: 0xCB87, - 34270 - 11905: 0xCB88, - 34271 - 11905: 0xCB89, - 34272 - 11905: 0xCB8A, - 34273 - 11905: 0xCB8B, - 34274 - 11905: 0xCB8C, - 34275 - 11905: 0xCB8D, - 34276 - 11905: 0xCCD9, - 34277 - 11905: 0xCB8E, - 34278 - 11905: 0xCB8F, - 34279 - 11905: 0xCB90, - 34280 - 11905: 0xCB91, - 34281 - 11905: 0xB7AA, - 34282 - 11905: 0xCB92, - 34283 - 11905: 0xCB93, - 34284 - 11905: 0xCB94, - 34285 - 11905: 0xCB95, - 34286 - 11905: 0xCB96, - 34287 - 11905: 0xCB97, - 34288 - 11905: 0xCB98, - 34289 - 11905: 0xCB99, - 34290 - 11905: 0xCB9A, - 34291 - 11905: 0xCB9B, - 34292 - 11905: 0xCB9C, - 34293 - 11905: 0xCB9D, - 34294 - 11905: 0xCB9E, - 34295 - 11905: 0xCB9F, - 34296 - 11905: 0xCBA0, - 34297 - 11905: 0xCC40, - 34298 - 11905: 0xCC41, - 34299 - 11905: 0xD4E5, - 34300 - 11905: 0xCC42, - 34301 - 11905: 0xCC43, - 34302 - 11905: 0xCC44, - 34303 - 11905: 0xDEBD, - 34304 - 11905: 0xCC45, - 34305 - 11905: 0xCC46, - 34306 - 11905: 0xCC47, - 34307 - 11905: 0xCC48, - 34308 - 11905: 0xCC49, - 34309 - 11905: 0xDEBF, - 34310 - 11905: 0xCC4A, - 34311 - 11905: 0xCC4B, - 34312 - 11905: 0xCC4C, - 34313 - 11905: 0xCC4D, - 34314 - 11905: 0xCC4E, - 34315 - 11905: 0xCC4F, - 34316 - 11905: 0xCC50, - 34317 - 11905: 0xCC51, - 34318 - 11905: 0xCC52, - 34319 - 11905: 0xCC53, - 34320 - 11905: 0xCC54, - 34321 - 11905: 0xC4A2, - 34322 - 11905: 0xCC55, - 34323 - 11905: 0xCC56, - 34324 - 11905: 0xCC57, - 34325 - 11905: 0xCC58, - 34326 - 11905: 0xDEC1, - 34327 - 11905: 0xCC59, - 34328 - 11905: 0xCC5A, - 34329 - 11905: 0xCC5B, - 34330 - 11905: 0xCC5C, - 34331 - 11905: 0xCC5D, - 34332 - 11905: 0xCC5E, - 34333 - 11905: 0xCC5F, - 34334 - 11905: 0xCC60, - 34335 - 11905: 0xCC61, - 34336 - 11905: 0xCC62, - 34337 - 11905: 0xCC63, - 34338 - 11905: 0xCC64, - 34339 - 11905: 0xCC65, - 34340 - 11905: 0xCC66, - 34341 - 11905: 0xCC67, - 34342 - 11905: 0xCC68, - 34343 - 11905: 0xDEBE, - 34344 - 11905: 0xCC69, - 34345 - 11905: 0xDEC0, - 34346 - 11905: 0xCC6A, - 34347 - 11905: 0xCC6B, - 34348 - 11905: 0xCC6C, - 34349 - 11905: 0xCC6D, - 34350 - 11905: 0xCC6E, - 34351 - 11905: 0xCC6F, - 34352 - 11905: 0xCC70, - 34353 - 11905: 0xCC71, - 34354 - 11905: 0xCC72, - 34355 - 11905: 0xCC73, - 34356 - 11905: 0xCC74, - 34357 - 11905: 0xCC75, - 34358 - 11905: 0xCC76, - 34359 - 11905: 0xCC77, - 34360 - 11905: 0xD5BA, - 34361 - 11905: 0xCC78, - 34362 - 11905: 0xCC79, - 34363 - 11905: 0xCC7A, - 34364 - 11905: 0xDEC2, - 34365 - 11905: 0xCC7B, - 34366 - 11905: 0xCC7C, - 34367 - 11905: 0xCC7D, - 34368 - 11905: 0xCC7E, - 34369 - 11905: 0xCC80, - 34370 - 11905: 0xCC81, - 34371 - 11905: 0xCC82, - 34372 - 11905: 0xCC83, - 34373 - 11905: 0xCC84, - 34374 - 11905: 0xCC85, - 34375 - 11905: 0xCC86, - 34376 - 11905: 0xCC87, - 34377 - 11905: 0xCC88, - 34378 - 11905: 0xCC89, - 34379 - 11905: 0xCC8A, - 34380 - 11905: 0xCC8B, - 34381 - 11905: 0xF2AE, - 34382 - 11905: 0xBBA2, - 34383 - 11905: 0xC2B2, - 34384 - 11905: 0xC5B0, - 34385 - 11905: 0xC2C7, - 34386 - 11905: 0xCC8C, - 34387 - 11905: 0xCC8D, - 34388 - 11905: 0xF2AF, - 34389 - 11905: 0xCC8E, - 34390 - 11905: 0xCC8F, - 34391 - 11905: 0xCC90, - 34392 - 11905: 0xCC91, - 34393 - 11905: 0xCC92, - 34394 - 11905: 0xD0E9, - 34395 - 11905: 0xCC93, - 34396 - 11905: 0xCC94, - 34397 - 11905: 0xCC95, - 34398 - 11905: 0xD3DD, - 34399 - 11905: 0xCC96, - 34400 - 11905: 0xCC97, - 34401 - 11905: 0xCC98, - 34402 - 11905: 0xEBBD, - 34403 - 11905: 0xCC99, - 34404 - 11905: 0xCC9A, - 34405 - 11905: 0xCC9B, - 34406 - 11905: 0xCC9C, - 34407 - 11905: 0xCC9D, - 34408 - 11905: 0xCC9E, - 34409 - 11905: 0xCC9F, - 34410 - 11905: 0xCCA0, - 34411 - 11905: 0xB3E6, - 34412 - 11905: 0xF2B0, - 34413 - 11905: 0xCD40, - 34414 - 11905: 0xF2B1, - 34415 - 11905: 0xCD41, - 34416 - 11905: 0xCD42, - 34417 - 11905: 0xCAAD, - 34418 - 11905: 0xCD43, - 34419 - 11905: 0xCD44, - 34420 - 11905: 0xCD45, - 34421 - 11905: 0xCD46, - 34422 - 11905: 0xCD47, - 34423 - 11905: 0xCD48, - 34424 - 11905: 0xCD49, - 34425 - 11905: 0xBAE7, - 34426 - 11905: 0xF2B3, - 34427 - 11905: 0xF2B5, - 34428 - 11905: 0xF2B4, - 34429 - 11905: 0xCBE4, - 34430 - 11905: 0xCFBA, - 34431 - 11905: 0xF2B2, - 34432 - 11905: 0xCAB4, - 34433 - 11905: 0xD2CF, - 34434 - 11905: 0xC2EC, - 34435 - 11905: 0xCD4A, - 34436 - 11905: 0xCD4B, - 34437 - 11905: 0xCD4C, - 34438 - 11905: 0xCD4D, - 34439 - 11905: 0xCD4E, - 34440 - 11905: 0xCD4F, - 34441 - 11905: 0xCD50, - 34442 - 11905: 0xCEC3, - 34443 - 11905: 0xF2B8, - 34444 - 11905: 0xB0F6, - 34445 - 11905: 0xF2B7, - 34446 - 11905: 0xCD51, - 34447 - 11905: 0xCD52, - 34448 - 11905: 0xCD53, - 34449 - 11905: 0xCD54, - 34450 - 11905: 0xCD55, - 34451 - 11905: 0xF2BE, - 34452 - 11905: 0xCD56, - 34453 - 11905: 0xB2CF, - 34454 - 11905: 0xCD57, - 34455 - 11905: 0xCD58, - 34456 - 11905: 0xCD59, - 34457 - 11905: 0xCD5A, - 34458 - 11905: 0xCD5B, - 34459 - 11905: 0xCD5C, - 34460 - 11905: 0xD1C1, - 34461 - 11905: 0xF2BA, - 34462 - 11905: 0xCD5D, - 34463 - 11905: 0xCD5E, - 34464 - 11905: 0xCD5F, - 34465 - 11905: 0xCD60, - 34466 - 11905: 0xCD61, - 34467 - 11905: 0xF2BC, - 34468 - 11905: 0xD4E9, - 34469 - 11905: 0xCD62, - 34470 - 11905: 0xCD63, - 34471 - 11905: 0xF2BB, - 34472 - 11905: 0xF2B6, - 34473 - 11905: 0xF2BF, - 34474 - 11905: 0xF2BD, - 34475 - 11905: 0xCD64, - 34476 - 11905: 0xF2B9, - 34477 - 11905: 0xCD65, - 34478 - 11905: 0xCD66, - 34479 - 11905: 0xF2C7, - 34480 - 11905: 0xF2C4, - 34481 - 11905: 0xF2C6, - 34482 - 11905: 0xCD67, - 34483 - 11905: 0xCD68, - 34484 - 11905: 0xF2CA, - 34485 - 11905: 0xF2C2, - 34486 - 11905: 0xF2C0, - 34487 - 11905: 0xCD69, - 34488 - 11905: 0xCD6A, - 34489 - 11905: 0xCD6B, - 34490 - 11905: 0xF2C5, - 34491 - 11905: 0xCD6C, - 34492 - 11905: 0xCD6D, - 34493 - 11905: 0xCD6E, - 34494 - 11905: 0xCD6F, - 34495 - 11905: 0xCD70, - 34496 - 11905: 0xD6FB, - 34497 - 11905: 0xCD71, - 34498 - 11905: 0xCD72, - 34499 - 11905: 0xCD73, - 34500 - 11905: 0xF2C1, - 34501 - 11905: 0xCD74, - 34502 - 11905: 0xC7F9, - 34503 - 11905: 0xC9DF, - 34504 - 11905: 0xCD75, - 34505 - 11905: 0xF2C8, - 34506 - 11905: 0xB9C6, - 34507 - 11905: 0xB5B0, - 34508 - 11905: 0xCD76, - 34509 - 11905: 0xCD77, - 34510 - 11905: 0xF2C3, - 34511 - 11905: 0xF2C9, - 34512 - 11905: 0xF2D0, - 34513 - 11905: 0xF2D6, - 34514 - 11905: 0xCD78, - 34515 - 11905: 0xCD79, - 34516 - 11905: 0xBBD7, - 34517 - 11905: 0xCD7A, - 34518 - 11905: 0xCD7B, - 34519 - 11905: 0xCD7C, - 34520 - 11905: 0xF2D5, - 34521 - 11905: 0xCDDC, - 34522 - 11905: 0xCD7D, - 34523 - 11905: 0xD6EB, - 34524 - 11905: 0xCD7E, - 34525 - 11905: 0xCD80, - 34526 - 11905: 0xF2D2, - 34527 - 11905: 0xF2D4, - 34528 - 11905: 0xCD81, - 34529 - 11905: 0xCD82, - 34530 - 11905: 0xCD83, - 34531 - 11905: 0xCD84, - 34532 - 11905: 0xB8F2, - 34533 - 11905: 0xCD85, - 34534 - 11905: 0xCD86, - 34535 - 11905: 0xCD87, - 34536 - 11905: 0xCD88, - 34537 - 11905: 0xF2CB, - 34538 - 11905: 0xCD89, - 34539 - 11905: 0xCD8A, - 34540 - 11905: 0xCD8B, - 34541 - 11905: 0xF2CE, - 34542 - 11905: 0xC2F9, - 34543 - 11905: 0xCD8C, - 34544 - 11905: 0xD5DD, - 34545 - 11905: 0xF2CC, - 34546 - 11905: 0xF2CD, - 34547 - 11905: 0xF2CF, - 34548 - 11905: 0xF2D3, - 34549 - 11905: 0xCD8D, - 34550 - 11905: 0xCD8E, - 34551 - 11905: 0xCD8F, - 34552 - 11905: 0xF2D9, - 34553 - 11905: 0xD3BC, - 34554 - 11905: 0xCD90, - 34555 - 11905: 0xCD91, - 34556 - 11905: 0xCD92, - 34557 - 11905: 0xCD93, - 34558 - 11905: 0xB6EA, - 34559 - 11905: 0xCD94, - 34560 - 11905: 0xCAF1, - 34561 - 11905: 0xCD95, - 34562 - 11905: 0xB7E4, - 34563 - 11905: 0xF2D7, - 34564 - 11905: 0xCD96, - 34565 - 11905: 0xCD97, - 34566 - 11905: 0xCD98, - 34567 - 11905: 0xF2D8, - 34568 - 11905: 0xF2DA, - 34569 - 11905: 0xF2DD, - 34570 - 11905: 0xF2DB, - 34571 - 11905: 0xCD99, - 34572 - 11905: 0xCD9A, - 34573 - 11905: 0xF2DC, - 34574 - 11905: 0xCD9B, - 34575 - 11905: 0xCD9C, - 34576 - 11905: 0xCD9D, - 34577 - 11905: 0xCD9E, - 34578 - 11905: 0xD1D1, - 34579 - 11905: 0xF2D1, - 34580 - 11905: 0xCD9F, - 34581 - 11905: 0xCDC9, - 34582 - 11905: 0xCDA0, - 34583 - 11905: 0xCECF, - 34584 - 11905: 0xD6A9, - 34585 - 11905: 0xCE40, - 34586 - 11905: 0xF2E3, - 34587 - 11905: 0xCE41, - 34588 - 11905: 0xC3DB, - 34589 - 11905: 0xCE42, - 34590 - 11905: 0xF2E0, - 34591 - 11905: 0xCE43, - 34592 - 11905: 0xCE44, - 34593 - 11905: 0xC0AF, - 34594 - 11905: 0xF2EC, - 34595 - 11905: 0xF2DE, - 34596 - 11905: 0xCE45, - 34597 - 11905: 0xF2E1, - 34598 - 11905: 0xCE46, - 34599 - 11905: 0xCE47, - 34600 - 11905: 0xCE48, - 34601 - 11905: 0xF2E8, - 34602 - 11905: 0xCE49, - 34603 - 11905: 0xCE4A, - 34604 - 11905: 0xCE4B, - 34605 - 11905: 0xCE4C, - 34606 - 11905: 0xF2E2, - 34607 - 11905: 0xCE4D, - 34608 - 11905: 0xCE4E, - 34609 - 11905: 0xF2E7, - 34610 - 11905: 0xCE4F, - 34611 - 11905: 0xCE50, - 34612 - 11905: 0xF2E6, - 34613 - 11905: 0xCE51, - 34614 - 11905: 0xCE52, - 34615 - 11905: 0xF2E9, - 34616 - 11905: 0xCE53, - 34617 - 11905: 0xCE54, - 34618 - 11905: 0xCE55, - 34619 - 11905: 0xF2DF, - 34620 - 11905: 0xCE56, - 34621 - 11905: 0xCE57, - 34622 - 11905: 0xF2E4, - 34623 - 11905: 0xF2EA, - 34624 - 11905: 0xCE58, - 34625 - 11905: 0xCE59, - 34626 - 11905: 0xCE5A, - 34627 - 11905: 0xCE5B, - 34628 - 11905: 0xCE5C, - 34629 - 11905: 0xCE5D, - 34630 - 11905: 0xCE5E, - 34631 - 11905: 0xD3AC, - 34632 - 11905: 0xF2E5, - 34633 - 11905: 0xB2F5, - 34634 - 11905: 0xCE5F, - 34635 - 11905: 0xCE60, - 34636 - 11905: 0xF2F2, - 34637 - 11905: 0xCE61, - 34638 - 11905: 0xD0AB, - 34639 - 11905: 0xCE62, - 34640 - 11905: 0xCE63, - 34641 - 11905: 0xCE64, - 34642 - 11905: 0xCE65, - 34643 - 11905: 0xF2F5, - 34644 - 11905: 0xCE66, - 34645 - 11905: 0xCE67, - 34646 - 11905: 0xCE68, - 34647 - 11905: 0xBBC8, - 34648 - 11905: 0xCE69, - 34649 - 11905: 0xF2F9, - 34650 - 11905: 0xCE6A, - 34651 - 11905: 0xCE6B, - 34652 - 11905: 0xCE6C, - 34653 - 11905: 0xCE6D, - 34654 - 11905: 0xCE6E, - 34655 - 11905: 0xCE6F, - 34656 - 11905: 0xF2F0, - 34657 - 11905: 0xCE70, - 34658 - 11905: 0xCE71, - 34659 - 11905: 0xF2F6, - 34660 - 11905: 0xF2F8, - 34661 - 11905: 0xF2FA, - 34662 - 11905: 0xCE72, - 34663 - 11905: 0xCE73, - 34664 - 11905: 0xCE74, - 34665 - 11905: 0xCE75, - 34666 - 11905: 0xCE76, - 34667 - 11905: 0xCE77, - 34668 - 11905: 0xCE78, - 34669 - 11905: 0xCE79, - 34670 - 11905: 0xF2F3, - 34671 - 11905: 0xCE7A, - 34672 - 11905: 0xF2F1, - 34673 - 11905: 0xCE7B, - 34674 - 11905: 0xCE7C, - 34675 - 11905: 0xCE7D, - 34676 - 11905: 0xBAFB, - 34677 - 11905: 0xCE7E, - 34678 - 11905: 0xB5FB, - 34679 - 11905: 0xCE80, - 34680 - 11905: 0xCE81, - 34681 - 11905: 0xCE82, - 34682 - 11905: 0xCE83, - 34683 - 11905: 0xF2EF, - 34684 - 11905: 0xF2F7, - 34685 - 11905: 0xF2ED, - 34686 - 11905: 0xF2EE, - 34687 - 11905: 0xCE84, - 34688 - 11905: 0xCE85, - 34689 - 11905: 0xCE86, - 34690 - 11905: 0xF2EB, - 34691 - 11905: 0xF3A6, - 34692 - 11905: 0xCE87, - 34693 - 11905: 0xF3A3, - 34694 - 11905: 0xCE88, - 34695 - 11905: 0xCE89, - 34696 - 11905: 0xF3A2, - 34697 - 11905: 0xCE8A, - 34698 - 11905: 0xCE8B, - 34699 - 11905: 0xF2F4, - 34700 - 11905: 0xCE8C, - 34701 - 11905: 0xC8DA, - 34702 - 11905: 0xCE8D, - 34703 - 11905: 0xCE8E, - 34704 - 11905: 0xCE8F, - 34705 - 11905: 0xCE90, - 34706 - 11905: 0xCE91, - 34707 - 11905: 0xF2FB, - 34708 - 11905: 0xCE92, - 34709 - 11905: 0xCE93, - 34710 - 11905: 0xCE94, - 34711 - 11905: 0xF3A5, - 34712 - 11905: 0xCE95, - 34713 - 11905: 0xCE96, - 34714 - 11905: 0xCE97, - 34715 - 11905: 0xCE98, - 34716 - 11905: 0xCE99, - 34717 - 11905: 0xCE9A, - 34718 - 11905: 0xCE9B, - 34719 - 11905: 0xC3F8, - 34720 - 11905: 0xCE9C, - 34721 - 11905: 0xCE9D, - 34722 - 11905: 0xCE9E, - 34723 - 11905: 0xCE9F, - 34724 - 11905: 0xCEA0, - 34725 - 11905: 0xCF40, - 34726 - 11905: 0xCF41, - 34727 - 11905: 0xCF42, - 34728 - 11905: 0xF2FD, - 34729 - 11905: 0xCF43, - 34730 - 11905: 0xCF44, - 34731 - 11905: 0xF3A7, - 34732 - 11905: 0xF3A9, - 34733 - 11905: 0xF3A4, - 34734 - 11905: 0xCF45, - 34735 - 11905: 0xF2FC, - 34736 - 11905: 0xCF46, - 34737 - 11905: 0xCF47, - 34738 - 11905: 0xCF48, - 34739 - 11905: 0xF3AB, - 34740 - 11905: 0xCF49, - 34741 - 11905: 0xF3AA, - 34742 - 11905: 0xCF4A, - 34743 - 11905: 0xCF4B, - 34744 - 11905: 0xCF4C, - 34745 - 11905: 0xCF4D, - 34746 - 11905: 0xC2DD, - 34747 - 11905: 0xCF4E, - 34748 - 11905: 0xCF4F, - 34749 - 11905: 0xF3AE, - 34750 - 11905: 0xCF50, - 34751 - 11905: 0xCF51, - 34752 - 11905: 0xF3B0, - 34753 - 11905: 0xCF52, - 34754 - 11905: 0xCF53, - 34755 - 11905: 0xCF54, - 34756 - 11905: 0xCF55, - 34757 - 11905: 0xCF56, - 34758 - 11905: 0xF3A1, - 34759 - 11905: 0xCF57, - 34760 - 11905: 0xCF58, - 34761 - 11905: 0xCF59, - 34762 - 11905: 0xF3B1, - 34763 - 11905: 0xF3AC, - 34764 - 11905: 0xCF5A, - 34765 - 11905: 0xCF5B, - 34766 - 11905: 0xCF5C, - 34767 - 11905: 0xCF5D, - 34768 - 11905: 0xCF5E, - 34769 - 11905: 0xF3AF, - 34770 - 11905: 0xF2FE, - 34771 - 11905: 0xF3AD, - 34772 - 11905: 0xCF5F, - 34773 - 11905: 0xCF60, - 34774 - 11905: 0xCF61, - 34775 - 11905: 0xCF62, - 34776 - 11905: 0xCF63, - 34777 - 11905: 0xCF64, - 34778 - 11905: 0xCF65, - 34779 - 11905: 0xF3B2, - 34780 - 11905: 0xCF66, - 34781 - 11905: 0xCF67, - 34782 - 11905: 0xCF68, - 34783 - 11905: 0xCF69, - 34784 - 11905: 0xF3B4, - 34785 - 11905: 0xCF6A, - 34786 - 11905: 0xCF6B, - 34787 - 11905: 0xCF6C, - 34788 - 11905: 0xCF6D, - 34789 - 11905: 0xF3A8, - 34790 - 11905: 0xCF6E, - 34791 - 11905: 0xCF6F, - 34792 - 11905: 0xCF70, - 34793 - 11905: 0xCF71, - 34794 - 11905: 0xF3B3, - 34795 - 11905: 0xCF72, - 34796 - 11905: 0xCF73, - 34797 - 11905: 0xCF74, - 34798 - 11905: 0xF3B5, - 34799 - 11905: 0xCF75, - 34800 - 11905: 0xCF76, - 34801 - 11905: 0xCF77, - 34802 - 11905: 0xCF78, - 34803 - 11905: 0xCF79, - 34804 - 11905: 0xCF7A, - 34805 - 11905: 0xCF7B, - 34806 - 11905: 0xCF7C, - 34807 - 11905: 0xCF7D, - 34808 - 11905: 0xCF7E, - 34809 - 11905: 0xD0B7, - 34810 - 11905: 0xCF80, - 34811 - 11905: 0xCF81, - 34812 - 11905: 0xCF82, - 34813 - 11905: 0xCF83, - 34814 - 11905: 0xF3B8, - 34815 - 11905: 0xCF84, - 34816 - 11905: 0xCF85, - 34817 - 11905: 0xCF86, - 34818 - 11905: 0xCF87, - 34819 - 11905: 0xD9F9, - 34820 - 11905: 0xCF88, - 34821 - 11905: 0xCF89, - 34822 - 11905: 0xCF8A, - 34823 - 11905: 0xCF8B, - 34824 - 11905: 0xCF8C, - 34825 - 11905: 0xCF8D, - 34826 - 11905: 0xF3B9, - 34827 - 11905: 0xCF8E, - 34828 - 11905: 0xCF8F, - 34829 - 11905: 0xCF90, - 34830 - 11905: 0xCF91, - 34831 - 11905: 0xCF92, - 34832 - 11905: 0xCF93, - 34833 - 11905: 0xCF94, - 34834 - 11905: 0xCF95, - 34835 - 11905: 0xF3B7, - 34836 - 11905: 0xCF96, - 34837 - 11905: 0xC8E4, - 34838 - 11905: 0xF3B6, - 34839 - 11905: 0xCF97, - 34840 - 11905: 0xCF98, - 34841 - 11905: 0xCF99, - 34842 - 11905: 0xCF9A, - 34843 - 11905: 0xF3BA, - 34844 - 11905: 0xCF9B, - 34845 - 11905: 0xCF9C, - 34846 - 11905: 0xCF9D, - 34847 - 11905: 0xCF9E, - 34848 - 11905: 0xCF9F, - 34849 - 11905: 0xF3BB, - 34850 - 11905: 0xB4C0, - 34851 - 11905: 0xCFA0, - 34852 - 11905: 0xD040, - 34853 - 11905: 0xD041, - 34854 - 11905: 0xD042, - 34855 - 11905: 0xD043, - 34856 - 11905: 0xD044, - 34857 - 11905: 0xD045, - 34858 - 11905: 0xD046, - 34859 - 11905: 0xD047, - 34860 - 11905: 0xD048, - 34861 - 11905: 0xD049, - 34862 - 11905: 0xD04A, - 34863 - 11905: 0xD04B, - 34864 - 11905: 0xD04C, - 34865 - 11905: 0xD04D, - 34866 - 11905: 0xEEC3, - 34867 - 11905: 0xD04E, - 34868 - 11905: 0xD04F, - 34869 - 11905: 0xD050, - 34870 - 11905: 0xD051, - 34871 - 11905: 0xD052, - 34872 - 11905: 0xD053, - 34873 - 11905: 0xF3BC, - 34874 - 11905: 0xD054, - 34875 - 11905: 0xD055, - 34876 - 11905: 0xF3BD, - 34877 - 11905: 0xD056, - 34878 - 11905: 0xD057, - 34879 - 11905: 0xD058, - 34880 - 11905: 0xD1AA, - 34881 - 11905: 0xD059, - 34882 - 11905: 0xD05A, - 34883 - 11905: 0xD05B, - 34884 - 11905: 0xF4AC, - 34885 - 11905: 0xD0C6, - 34886 - 11905: 0xD05C, - 34887 - 11905: 0xD05D, - 34888 - 11905: 0xD05E, - 34889 - 11905: 0xD05F, - 34890 - 11905: 0xD060, - 34891 - 11905: 0xD061, - 34892 - 11905: 0xD0D0, - 34893 - 11905: 0xD1DC, - 34894 - 11905: 0xD062, - 34895 - 11905: 0xD063, - 34896 - 11905: 0xD064, - 34897 - 11905: 0xD065, - 34898 - 11905: 0xD066, - 34899 - 11905: 0xD067, - 34900 - 11905: 0xCFCE, - 34901 - 11905: 0xD068, - 34902 - 11905: 0xD069, - 34903 - 11905: 0xBDD6, - 34904 - 11905: 0xD06A, - 34905 - 11905: 0xD1C3, - 34906 - 11905: 0xD06B, - 34907 - 11905: 0xD06C, - 34908 - 11905: 0xD06D, - 34909 - 11905: 0xD06E, - 34910 - 11905: 0xD06F, - 34911 - 11905: 0xD070, - 34912 - 11905: 0xD071, - 34913 - 11905: 0xBAE2, - 34914 - 11905: 0xE1E9, - 34915 - 11905: 0xD2C2, - 34916 - 11905: 0xF1C2, - 34917 - 11905: 0xB2B9, - 34918 - 11905: 0xD072, - 34919 - 11905: 0xD073, - 34920 - 11905: 0xB1ED, - 34921 - 11905: 0xF1C3, - 34922 - 11905: 0xD074, - 34923 - 11905: 0xC9C0, - 34924 - 11905: 0xB3C4, - 34925 - 11905: 0xD075, - 34926 - 11905: 0xD9F2, - 34927 - 11905: 0xD076, - 34928 - 11905: 0xCBA5, - 34929 - 11905: 0xD077, - 34930 - 11905: 0xF1C4, - 34931 - 11905: 0xD078, - 34932 - 11905: 0xD079, - 34933 - 11905: 0xD07A, - 34934 - 11905: 0xD07B, - 34935 - 11905: 0xD6D4, - 34936 - 11905: 0xD07C, - 34937 - 11905: 0xD07D, - 34938 - 11905: 0xD07E, - 34939 - 11905: 0xD080, - 34940 - 11905: 0xD081, - 34941 - 11905: 0xF1C5, - 34942 - 11905: 0xF4C0, - 34943 - 11905: 0xF1C6, - 34944 - 11905: 0xD082, - 34945 - 11905: 0xD4AC, - 34946 - 11905: 0xF1C7, - 34947 - 11905: 0xD083, - 34948 - 11905: 0xB0C0, - 34949 - 11905: 0xF4C1, - 34950 - 11905: 0xD084, - 34951 - 11905: 0xD085, - 34952 - 11905: 0xF4C2, - 34953 - 11905: 0xD086, - 34954 - 11905: 0xD087, - 34955 - 11905: 0xB4FC, - 34956 - 11905: 0xD088, - 34957 - 11905: 0xC5DB, - 34958 - 11905: 0xD089, - 34959 - 11905: 0xD08A, - 34960 - 11905: 0xD08B, - 34961 - 11905: 0xD08C, - 34962 - 11905: 0xCCBB, - 34963 - 11905: 0xD08D, - 34964 - 11905: 0xD08E, - 34965 - 11905: 0xD08F, - 34966 - 11905: 0xD0E4, - 34967 - 11905: 0xD090, - 34968 - 11905: 0xD091, - 34969 - 11905: 0xD092, - 34970 - 11905: 0xD093, - 34971 - 11905: 0xD094, - 34972 - 11905: 0xCDE0, - 34973 - 11905: 0xD095, - 34974 - 11905: 0xD096, - 34975 - 11905: 0xD097, - 34976 - 11905: 0xD098, - 34977 - 11905: 0xD099, - 34978 - 11905: 0xF1C8, - 34979 - 11905: 0xD09A, - 34980 - 11905: 0xD9F3, - 34981 - 11905: 0xD09B, - 34982 - 11905: 0xD09C, - 34983 - 11905: 0xD09D, - 34984 - 11905: 0xD09E, - 34985 - 11905: 0xD09F, - 34986 - 11905: 0xD0A0, - 34987 - 11905: 0xB1BB, - 34988 - 11905: 0xD140, - 34989 - 11905: 0xCFAE, - 34990 - 11905: 0xD141, - 34991 - 11905: 0xD142, - 34992 - 11905: 0xD143, - 34993 - 11905: 0xB8A4, - 34994 - 11905: 0xD144, - 34995 - 11905: 0xD145, - 34996 - 11905: 0xD146, - 34997 - 11905: 0xD147, - 34998 - 11905: 0xD148, - 34999 - 11905: 0xF1CA, - 35000 - 11905: 0xD149, - 35001 - 11905: 0xD14A, - 35002 - 11905: 0xD14B, - 35003 - 11905: 0xD14C, - 35004 - 11905: 0xF1CB, - 35005 - 11905: 0xD14D, - 35006 - 11905: 0xD14E, - 35007 - 11905: 0xD14F, - 35008 - 11905: 0xD150, - 35009 - 11905: 0xB2C3, - 35010 - 11905: 0xC1D1, - 35011 - 11905: 0xD151, - 35012 - 11905: 0xD152, - 35013 - 11905: 0xD7B0, - 35014 - 11905: 0xF1C9, - 35015 - 11905: 0xD153, - 35016 - 11905: 0xD154, - 35017 - 11905: 0xF1CC, - 35018 - 11905: 0xD155, - 35019 - 11905: 0xD156, - 35020 - 11905: 0xD157, - 35021 - 11905: 0xD158, - 35022 - 11905: 0xF1CE, - 35023 - 11905: 0xD159, - 35024 - 11905: 0xD15A, - 35025 - 11905: 0xD15B, - 35026 - 11905: 0xD9F6, - 35027 - 11905: 0xD15C, - 35028 - 11905: 0xD2E1, - 35029 - 11905: 0xD4A3, - 35030 - 11905: 0xD15D, - 35031 - 11905: 0xD15E, - 35032 - 11905: 0xF4C3, - 35033 - 11905: 0xC8B9, - 35034 - 11905: 0xD15F, - 35035 - 11905: 0xD160, - 35036 - 11905: 0xD161, - 35037 - 11905: 0xD162, - 35038 - 11905: 0xD163, - 35039 - 11905: 0xF4C4, - 35040 - 11905: 0xD164, - 35041 - 11905: 0xD165, - 35042 - 11905: 0xF1CD, - 35043 - 11905: 0xF1CF, - 35044 - 11905: 0xBFE3, - 35045 - 11905: 0xF1D0, - 35046 - 11905: 0xD166, - 35047 - 11905: 0xD167, - 35048 - 11905: 0xF1D4, - 35049 - 11905: 0xD168, - 35050 - 11905: 0xD169, - 35051 - 11905: 0xD16A, - 35052 - 11905: 0xD16B, - 35053 - 11905: 0xD16C, - 35054 - 11905: 0xD16D, - 35055 - 11905: 0xD16E, - 35056 - 11905: 0xF1D6, - 35057 - 11905: 0xF1D1, - 35058 - 11905: 0xD16F, - 35059 - 11905: 0xC9D1, - 35060 - 11905: 0xC5E1, - 35061 - 11905: 0xD170, - 35062 - 11905: 0xD171, - 35063 - 11905: 0xD172, - 35064 - 11905: 0xC2E3, - 35065 - 11905: 0xB9FC, - 35066 - 11905: 0xD173, - 35067 - 11905: 0xD174, - 35068 - 11905: 0xF1D3, - 35069 - 11905: 0xD175, - 35070 - 11905: 0xF1D5, - 35071 - 11905: 0xD176, - 35072 - 11905: 0xD177, - 35073 - 11905: 0xD178, - 35074 - 11905: 0xB9D3, - 35075 - 11905: 0xD179, - 35076 - 11905: 0xD17A, - 35077 - 11905: 0xD17B, - 35078 - 11905: 0xD17C, - 35079 - 11905: 0xD17D, - 35080 - 11905: 0xD17E, - 35081 - 11905: 0xD180, - 35082 - 11905: 0xF1DB, - 35083 - 11905: 0xD181, - 35084 - 11905: 0xD182, - 35085 - 11905: 0xD183, - 35086 - 11905: 0xD184, - 35087 - 11905: 0xD185, - 35088 - 11905: 0xBAD6, - 35089 - 11905: 0xD186, - 35090 - 11905: 0xB0FD, - 35091 - 11905: 0xF1D9, - 35092 - 11905: 0xD187, - 35093 - 11905: 0xD188, - 35094 - 11905: 0xD189, - 35095 - 11905: 0xD18A, - 35096 - 11905: 0xD18B, - 35097 - 11905: 0xF1D8, - 35098 - 11905: 0xF1D2, - 35099 - 11905: 0xF1DA, - 35100 - 11905: 0xD18C, - 35101 - 11905: 0xD18D, - 35102 - 11905: 0xD18E, - 35103 - 11905: 0xD18F, - 35104 - 11905: 0xD190, - 35105 - 11905: 0xF1D7, - 35106 - 11905: 0xD191, - 35107 - 11905: 0xD192, - 35108 - 11905: 0xD193, - 35109 - 11905: 0xC8EC, - 35110 - 11905: 0xD194, - 35111 - 11905: 0xD195, - 35112 - 11905: 0xD196, - 35113 - 11905: 0xD197, - 35114 - 11905: 0xCDCA, - 35115 - 11905: 0xF1DD, - 35116 - 11905: 0xD198, - 35117 - 11905: 0xD199, - 35118 - 11905: 0xD19A, - 35119 - 11905: 0xD19B, - 35120 - 11905: 0xE5BD, - 35121 - 11905: 0xD19C, - 35122 - 11905: 0xD19D, - 35123 - 11905: 0xD19E, - 35124 - 11905: 0xF1DC, - 35125 - 11905: 0xD19F, - 35126 - 11905: 0xF1DE, - 35127 - 11905: 0xD1A0, - 35128 - 11905: 0xD240, - 35129 - 11905: 0xD241, - 35130 - 11905: 0xD242, - 35131 - 11905: 0xD243, - 35132 - 11905: 0xD244, - 35133 - 11905: 0xD245, - 35134 - 11905: 0xD246, - 35135 - 11905: 0xD247, - 35136 - 11905: 0xD248, - 35137 - 11905: 0xF1DF, - 35138 - 11905: 0xD249, - 35139 - 11905: 0xD24A, - 35140 - 11905: 0xCFE5, - 35141 - 11905: 0xD24B, - 35142 - 11905: 0xD24C, - 35143 - 11905: 0xD24D, - 35144 - 11905: 0xD24E, - 35145 - 11905: 0xD24F, - 35146 - 11905: 0xD250, - 35147 - 11905: 0xD251, - 35148 - 11905: 0xD252, - 35149 - 11905: 0xD253, - 35150 - 11905: 0xD254, - 35151 - 11905: 0xD255, - 35152 - 11905: 0xD256, - 35153 - 11905: 0xD257, - 35154 - 11905: 0xD258, - 35155 - 11905: 0xD259, - 35156 - 11905: 0xD25A, - 35157 - 11905: 0xD25B, - 35158 - 11905: 0xD25C, - 35159 - 11905: 0xD25D, - 35160 - 11905: 0xD25E, - 35161 - 11905: 0xD25F, - 35162 - 11905: 0xD260, - 35163 - 11905: 0xD261, - 35164 - 11905: 0xD262, - 35165 - 11905: 0xD263, - 35166 - 11905: 0xF4C5, - 35167 - 11905: 0xBDF3, - 35168 - 11905: 0xD264, - 35169 - 11905: 0xD265, - 35170 - 11905: 0xD266, - 35171 - 11905: 0xD267, - 35172 - 11905: 0xD268, - 35173 - 11905: 0xD269, - 35174 - 11905: 0xF1E0, - 35175 - 11905: 0xD26A, - 35176 - 11905: 0xD26B, - 35177 - 11905: 0xD26C, - 35178 - 11905: 0xD26D, - 35179 - 11905: 0xD26E, - 35180 - 11905: 0xD26F, - 35181 - 11905: 0xD270, - 35182 - 11905: 0xD271, - 35183 - 11905: 0xD272, - 35184 - 11905: 0xD273, - 35185 - 11905: 0xD274, - 35186 - 11905: 0xD275, - 35187 - 11905: 0xD276, - 35188 - 11905: 0xD277, - 35189 - 11905: 0xD278, - 35190 - 11905: 0xD279, - 35191 - 11905: 0xD27A, - 35192 - 11905: 0xD27B, - 35193 - 11905: 0xD27C, - 35194 - 11905: 0xD27D, - 35195 - 11905: 0xF1E1, - 35196 - 11905: 0xD27E, - 35197 - 11905: 0xD280, - 35198 - 11905: 0xD281, - 35199 - 11905: 0xCEF7, - 35200 - 11905: 0xD282, - 35201 - 11905: 0xD2AA, - 35202 - 11905: 0xD283, - 35203 - 11905: 0xF1FB, - 35204 - 11905: 0xD284, - 35205 - 11905: 0xD285, - 35206 - 11905: 0xB8B2, - 35207 - 11905: 0xD286, - 35208 - 11905: 0xD287, - 35209 - 11905: 0xD288, - 35210 - 11905: 0xD289, - 35211 - 11905: 0xD28A, - 35212 - 11905: 0xD28B, - 35213 - 11905: 0xD28C, - 35214 - 11905: 0xD28D, - 35215 - 11905: 0xD28E, - 35216 - 11905: 0xD28F, - 35217 - 11905: 0xD290, - 35218 - 11905: 0xD291, - 35219 - 11905: 0xD292, - 35220 - 11905: 0xD293, - 35221 - 11905: 0xD294, - 35222 - 11905: 0xD295, - 35223 - 11905: 0xD296, - 35224 - 11905: 0xD297, - 35225 - 11905: 0xD298, - 35226 - 11905: 0xD299, - 35227 - 11905: 0xD29A, - 35228 - 11905: 0xD29B, - 35229 - 11905: 0xD29C, - 35230 - 11905: 0xD29D, - 35231 - 11905: 0xD29E, - 35232 - 11905: 0xD29F, - 35233 - 11905: 0xD2A0, - 35234 - 11905: 0xD340, - 35235 - 11905: 0xD341, - 35236 - 11905: 0xD342, - 35237 - 11905: 0xD343, - 35238 - 11905: 0xD344, - 35239 - 11905: 0xD345, - 35240 - 11905: 0xD346, - 35241 - 11905: 0xD347, - 35242 - 11905: 0xD348, - 35243 - 11905: 0xD349, - 35244 - 11905: 0xD34A, - 35245 - 11905: 0xD34B, - 35246 - 11905: 0xD34C, - 35247 - 11905: 0xD34D, - 35248 - 11905: 0xD34E, - 35249 - 11905: 0xD34F, - 35250 - 11905: 0xD350, - 35251 - 11905: 0xD351, - 35252 - 11905: 0xD352, - 35253 - 11905: 0xD353, - 35254 - 11905: 0xD354, - 35255 - 11905: 0xD355, - 35256 - 11905: 0xD356, - 35257 - 11905: 0xD357, - 35258 - 11905: 0xD358, - 35259 - 11905: 0xD359, - 35260 - 11905: 0xD35A, - 35261 - 11905: 0xD35B, - 35262 - 11905: 0xD35C, - 35263 - 11905: 0xD35D, - 35264 - 11905: 0xD35E, - 35265 - 11905: 0xBCFB, - 35266 - 11905: 0xB9DB, - 35267 - 11905: 0xD35F, - 35268 - 11905: 0xB9E6, - 35269 - 11905: 0xC3D9, - 35270 - 11905: 0xCAD3, - 35271 - 11905: 0xEAE8, - 35272 - 11905: 0xC0C0, - 35273 - 11905: 0xBEF5, - 35274 - 11905: 0xEAE9, - 35275 - 11905: 0xEAEA, - 35276 - 11905: 0xEAEB, - 35277 - 11905: 0xD360, - 35278 - 11905: 0xEAEC, - 35279 - 11905: 0xEAED, - 35280 - 11905: 0xEAEE, - 35281 - 11905: 0xEAEF, - 35282 - 11905: 0xBDC7, - 35283 - 11905: 0xD361, - 35284 - 11905: 0xD362, - 35285 - 11905: 0xD363, - 35286 - 11905: 0xF5FB, - 35287 - 11905: 0xD364, - 35288 - 11905: 0xD365, - 35289 - 11905: 0xD366, - 35290 - 11905: 0xF5FD, - 35291 - 11905: 0xD367, - 35292 - 11905: 0xF5FE, - 35293 - 11905: 0xD368, - 35294 - 11905: 0xF5FC, - 35295 - 11905: 0xD369, - 35296 - 11905: 0xD36A, - 35297 - 11905: 0xD36B, - 35298 - 11905: 0xD36C, - 35299 - 11905: 0xBDE2, - 35300 - 11905: 0xD36D, - 35301 - 11905: 0xF6A1, - 35302 - 11905: 0xB4A5, - 35303 - 11905: 0xD36E, - 35304 - 11905: 0xD36F, - 35305 - 11905: 0xD370, - 35306 - 11905: 0xD371, - 35307 - 11905: 0xF6A2, - 35308 - 11905: 0xD372, - 35309 - 11905: 0xD373, - 35310 - 11905: 0xD374, - 35311 - 11905: 0xF6A3, - 35312 - 11905: 0xD375, - 35313 - 11905: 0xD376, - 35314 - 11905: 0xD377, - 35315 - 11905: 0xECB2, - 35316 - 11905: 0xD378, - 35317 - 11905: 0xD379, - 35318 - 11905: 0xD37A, - 35319 - 11905: 0xD37B, - 35320 - 11905: 0xD37C, - 35321 - 11905: 0xD37D, - 35322 - 11905: 0xD37E, - 35323 - 11905: 0xD380, - 35324 - 11905: 0xD381, - 35325 - 11905: 0xD382, - 35326 - 11905: 0xD383, - 35327 - 11905: 0xD384, - 35328 - 11905: 0xD1D4, - 35329 - 11905: 0xD385, - 35330 - 11905: 0xD386, - 35331 - 11905: 0xD387, - 35332 - 11905: 0xD388, - 35333 - 11905: 0xD389, - 35334 - 11905: 0xD38A, - 35335 - 11905: 0xD9EA, - 35336 - 11905: 0xD38B, - 35337 - 11905: 0xD38C, - 35338 - 11905: 0xD38D, - 35339 - 11905: 0xD38E, - 35340 - 11905: 0xD38F, - 35341 - 11905: 0xD390, - 35342 - 11905: 0xD391, - 35343 - 11905: 0xD392, - 35344 - 11905: 0xD393, - 35345 - 11905: 0xD394, - 35346 - 11905: 0xD395, - 35347 - 11905: 0xD396, - 35348 - 11905: 0xD397, - 35349 - 11905: 0xD398, - 35350 - 11905: 0xD399, - 35351 - 11905: 0xD39A, - 35352 - 11905: 0xD39B, - 35353 - 11905: 0xD39C, - 35354 - 11905: 0xD39D, - 35355 - 11905: 0xD39E, - 35356 - 11905: 0xD39F, - 35357 - 11905: 0xD3A0, - 35358 - 11905: 0xD440, - 35359 - 11905: 0xD441, - 35360 - 11905: 0xD442, - 35361 - 11905: 0xD443, - 35362 - 11905: 0xD444, - 35363 - 11905: 0xD445, - 35364 - 11905: 0xD446, - 35365 - 11905: 0xD447, - 35366 - 11905: 0xD448, - 35367 - 11905: 0xD449, - 35368 - 11905: 0xD44A, - 35369 - 11905: 0xD44B, - 35370 - 11905: 0xD44C, - 35371 - 11905: 0xD44D, - 35372 - 11905: 0xD44E, - 35373 - 11905: 0xD44F, - 35374 - 11905: 0xD450, - 35375 - 11905: 0xD451, - 35376 - 11905: 0xD452, - 35377 - 11905: 0xD453, - 35378 - 11905: 0xD454, - 35379 - 11905: 0xD455, - 35380 - 11905: 0xD456, - 35381 - 11905: 0xD457, - 35382 - 11905: 0xD458, - 35383 - 11905: 0xD459, - 35384 - 11905: 0xD45A, - 35385 - 11905: 0xD45B, - 35386 - 11905: 0xD45C, - 35387 - 11905: 0xD45D, - 35388 - 11905: 0xD45E, - 35389 - 11905: 0xD45F, - 35390 - 11905: 0xF6A4, - 35391 - 11905: 0xD460, - 35392 - 11905: 0xD461, - 35393 - 11905: 0xD462, - 35394 - 11905: 0xD463, - 35395 - 11905: 0xD464, - 35396 - 11905: 0xD465, - 35397 - 11905: 0xD466, - 35398 - 11905: 0xD467, - 35399 - 11905: 0xD468, - 35400 - 11905: 0xEEBA, - 35401 - 11905: 0xD469, - 35402 - 11905: 0xD46A, - 35403 - 11905: 0xD46B, - 35404 - 11905: 0xD46C, - 35405 - 11905: 0xD46D, - 35406 - 11905: 0xD46E, - 35407 - 11905: 0xD46F, - 35408 - 11905: 0xD470, - 35409 - 11905: 0xD471, - 35410 - 11905: 0xD472, - 35411 - 11905: 0xD473, - 35412 - 11905: 0xD474, - 35413 - 11905: 0xD475, - 35414 - 11905: 0xD476, - 35415 - 11905: 0xD477, - 35416 - 11905: 0xD478, - 35417 - 11905: 0xD479, - 35418 - 11905: 0xD47A, - 35419 - 11905: 0xD47B, - 35420 - 11905: 0xD47C, - 35421 - 11905: 0xD47D, - 35422 - 11905: 0xD47E, - 35423 - 11905: 0xD480, - 35424 - 11905: 0xD481, - 35425 - 11905: 0xD482, - 35426 - 11905: 0xD483, - 35427 - 11905: 0xD484, - 35428 - 11905: 0xD485, - 35429 - 11905: 0xD486, - 35430 - 11905: 0xD487, - 35431 - 11905: 0xD488, - 35432 - 11905: 0xD489, - 35433 - 11905: 0xD48A, - 35434 - 11905: 0xD48B, - 35435 - 11905: 0xD48C, - 35436 - 11905: 0xD48D, - 35437 - 11905: 0xD48E, - 35438 - 11905: 0xD48F, - 35439 - 11905: 0xD490, - 35440 - 11905: 0xD491, - 35441 - 11905: 0xD492, - 35442 - 11905: 0xD493, - 35443 - 11905: 0xD494, - 35444 - 11905: 0xD495, - 35445 - 11905: 0xD496, - 35446 - 11905: 0xD497, - 35447 - 11905: 0xD498, - 35448 - 11905: 0xD499, - 35449 - 11905: 0xD5B2, - 35450 - 11905: 0xD49A, - 35451 - 11905: 0xD49B, - 35452 - 11905: 0xD49C, - 35453 - 11905: 0xD49D, - 35454 - 11905: 0xD49E, - 35455 - 11905: 0xD49F, - 35456 - 11905: 0xD4A0, - 35457 - 11905: 0xD540, - 35458 - 11905: 0xD541, - 35459 - 11905: 0xD542, - 35460 - 11905: 0xD543, - 35461 - 11905: 0xD544, - 35462 - 11905: 0xD545, - 35463 - 11905: 0xD546, - 35464 - 11905: 0xD547, - 35465 - 11905: 0xD3FE, - 35466 - 11905: 0xCCDC, - 35467 - 11905: 0xD548, - 35468 - 11905: 0xD549, - 35469 - 11905: 0xD54A, - 35470 - 11905: 0xD54B, - 35471 - 11905: 0xD54C, - 35472 - 11905: 0xD54D, - 35473 - 11905: 0xD54E, - 35474 - 11905: 0xD54F, - 35475 - 11905: 0xCAC4, - 35476 - 11905: 0xD550, - 35477 - 11905: 0xD551, - 35478 - 11905: 0xD552, - 35479 - 11905: 0xD553, - 35480 - 11905: 0xD554, - 35481 - 11905: 0xD555, - 35482 - 11905: 0xD556, - 35483 - 11905: 0xD557, - 35484 - 11905: 0xD558, - 35485 - 11905: 0xD559, - 35486 - 11905: 0xD55A, - 35487 - 11905: 0xD55B, - 35488 - 11905: 0xD55C, - 35489 - 11905: 0xD55D, - 35490 - 11905: 0xD55E, - 35491 - 11905: 0xD55F, - 35492 - 11905: 0xD560, - 35493 - 11905: 0xD561, - 35494 - 11905: 0xD562, - 35495 - 11905: 0xD563, - 35496 - 11905: 0xD564, - 35497 - 11905: 0xD565, - 35498 - 11905: 0xD566, - 35499 - 11905: 0xD567, - 35500 - 11905: 0xD568, - 35501 - 11905: 0xD569, - 35502 - 11905: 0xD56A, - 35503 - 11905: 0xD56B, - 35504 - 11905: 0xD56C, - 35505 - 11905: 0xD56D, - 35506 - 11905: 0xD56E, - 35507 - 11905: 0xD56F, - 35508 - 11905: 0xD570, - 35509 - 11905: 0xD571, - 35510 - 11905: 0xD572, - 35511 - 11905: 0xD573, - 35512 - 11905: 0xD574, - 35513 - 11905: 0xD575, - 35514 - 11905: 0xD576, - 35515 - 11905: 0xD577, - 35516 - 11905: 0xD578, - 35517 - 11905: 0xD579, - 35518 - 11905: 0xD57A, - 35519 - 11905: 0xD57B, - 35520 - 11905: 0xD57C, - 35521 - 11905: 0xD57D, - 35522 - 11905: 0xD57E, - 35523 - 11905: 0xD580, - 35524 - 11905: 0xD581, - 35525 - 11905: 0xD582, - 35526 - 11905: 0xD583, - 35527 - 11905: 0xD584, - 35528 - 11905: 0xD585, - 35529 - 11905: 0xD586, - 35530 - 11905: 0xD587, - 35531 - 11905: 0xD588, - 35532 - 11905: 0xD589, - 35533 - 11905: 0xD58A, - 35534 - 11905: 0xD58B, - 35535 - 11905: 0xD58C, - 35536 - 11905: 0xD58D, - 35537 - 11905: 0xD58E, - 35538 - 11905: 0xD58F, - 35539 - 11905: 0xD590, - 35540 - 11905: 0xD591, - 35541 - 11905: 0xD592, - 35542 - 11905: 0xD593, - 35543 - 11905: 0xD594, - 35544 - 11905: 0xD595, - 35545 - 11905: 0xD596, - 35546 - 11905: 0xD597, - 35547 - 11905: 0xD598, - 35548 - 11905: 0xD599, - 35549 - 11905: 0xD59A, - 35550 - 11905: 0xD59B, - 35551 - 11905: 0xD59C, - 35552 - 11905: 0xD59D, - 35553 - 11905: 0xD59E, - 35554 - 11905: 0xD59F, - 35555 - 11905: 0xD5A0, - 35556 - 11905: 0xD640, - 35557 - 11905: 0xD641, - 35558 - 11905: 0xD642, - 35559 - 11905: 0xD643, - 35560 - 11905: 0xD644, - 35561 - 11905: 0xD645, - 35562 - 11905: 0xD646, - 35563 - 11905: 0xD647, - 35564 - 11905: 0xD648, - 35565 - 11905: 0xD649, - 35566 - 11905: 0xD64A, - 35567 - 11905: 0xD64B, - 35568 - 11905: 0xD64C, - 35569 - 11905: 0xD64D, - 35570 - 11905: 0xD64E, - 35571 - 11905: 0xD64F, - 35572 - 11905: 0xD650, - 35573 - 11905: 0xD651, - 35574 - 11905: 0xD652, - 35575 - 11905: 0xD653, - 35576 - 11905: 0xD654, - 35577 - 11905: 0xD655, - 35578 - 11905: 0xD656, - 35579 - 11905: 0xD657, - 35580 - 11905: 0xD658, - 35581 - 11905: 0xD659, - 35582 - 11905: 0xD65A, - 35583 - 11905: 0xD65B, - 35584 - 11905: 0xD65C, - 35585 - 11905: 0xD65D, - 35586 - 11905: 0xD65E, - 35587 - 11905: 0xD65F, - 35588 - 11905: 0xD660, - 35589 - 11905: 0xD661, - 35590 - 11905: 0xD662, - 35591 - 11905: 0xE5C0, - 35592 - 11905: 0xD663, - 35593 - 11905: 0xD664, - 35594 - 11905: 0xD665, - 35595 - 11905: 0xD666, - 35596 - 11905: 0xD667, - 35597 - 11905: 0xD668, - 35598 - 11905: 0xD669, - 35599 - 11905: 0xD66A, - 35600 - 11905: 0xD66B, - 35601 - 11905: 0xD66C, - 35602 - 11905: 0xD66D, - 35603 - 11905: 0xD66E, - 35604 - 11905: 0xD66F, - 35605 - 11905: 0xD670, - 35606 - 11905: 0xD671, - 35607 - 11905: 0xD672, - 35608 - 11905: 0xD673, - 35609 - 11905: 0xD674, - 35610 - 11905: 0xD675, - 35611 - 11905: 0xD676, - 35612 - 11905: 0xD677, - 35613 - 11905: 0xD678, - 35614 - 11905: 0xD679, - 35615 - 11905: 0xD67A, - 35616 - 11905: 0xD67B, - 35617 - 11905: 0xD67C, - 35618 - 11905: 0xD67D, - 35619 - 11905: 0xD67E, - 35620 - 11905: 0xD680, - 35621 - 11905: 0xD681, - 35622 - 11905: 0xF6A5, - 35623 - 11905: 0xD682, - 35624 - 11905: 0xD683, - 35625 - 11905: 0xD684, - 35626 - 11905: 0xD685, - 35627 - 11905: 0xD686, - 35628 - 11905: 0xD687, - 35629 - 11905: 0xD688, - 35630 - 11905: 0xD689, - 35631 - 11905: 0xD68A, - 35632 - 11905: 0xD68B, - 35633 - 11905: 0xD68C, - 35634 - 11905: 0xD68D, - 35635 - 11905: 0xD68E, - 35636 - 11905: 0xD68F, - 35637 - 11905: 0xD690, - 35638 - 11905: 0xD691, - 35639 - 11905: 0xD692, - 35640 - 11905: 0xD693, - 35641 - 11905: 0xD694, - 35642 - 11905: 0xD695, - 35643 - 11905: 0xD696, - 35644 - 11905: 0xD697, - 35645 - 11905: 0xD698, - 35646 - 11905: 0xD699, - 35647 - 11905: 0xD69A, - 35648 - 11905: 0xD69B, - 35649 - 11905: 0xD69C, - 35650 - 11905: 0xD69D, - 35651 - 11905: 0xD69E, - 35652 - 11905: 0xD69F, - 35653 - 11905: 0xD6A0, - 35654 - 11905: 0xD740, - 35655 - 11905: 0xD741, - 35656 - 11905: 0xD742, - 35657 - 11905: 0xD743, - 35658 - 11905: 0xD744, - 35659 - 11905: 0xD745, - 35660 - 11905: 0xD746, - 35661 - 11905: 0xD747, - 35662 - 11905: 0xD748, - 35663 - 11905: 0xD749, - 35664 - 11905: 0xD74A, - 35665 - 11905: 0xD74B, - 35666 - 11905: 0xD74C, - 35667 - 11905: 0xD74D, - 35668 - 11905: 0xD74E, - 35669 - 11905: 0xD74F, - 35670 - 11905: 0xD750, - 35671 - 11905: 0xD751, - 35672 - 11905: 0xD752, - 35673 - 11905: 0xD753, - 35674 - 11905: 0xD754, - 35675 - 11905: 0xD755, - 35676 - 11905: 0xD756, - 35677 - 11905: 0xD757, - 35678 - 11905: 0xD758, - 35679 - 11905: 0xD759, - 35680 - 11905: 0xD75A, - 35681 - 11905: 0xD75B, - 35682 - 11905: 0xD75C, - 35683 - 11905: 0xD75D, - 35684 - 11905: 0xD75E, - 35685 - 11905: 0xD75F, - 35686 - 11905: 0xBEAF, - 35687 - 11905: 0xD760, - 35688 - 11905: 0xD761, - 35689 - 11905: 0xD762, - 35690 - 11905: 0xD763, - 35691 - 11905: 0xD764, - 35692 - 11905: 0xC6A9, - 35693 - 11905: 0xD765, - 35694 - 11905: 0xD766, - 35695 - 11905: 0xD767, - 35696 - 11905: 0xD768, - 35697 - 11905: 0xD769, - 35698 - 11905: 0xD76A, - 35699 - 11905: 0xD76B, - 35700 - 11905: 0xD76C, - 35701 - 11905: 0xD76D, - 35702 - 11905: 0xD76E, - 35703 - 11905: 0xD76F, - 35704 - 11905: 0xD770, - 35705 - 11905: 0xD771, - 35706 - 11905: 0xD772, - 35707 - 11905: 0xD773, - 35708 - 11905: 0xD774, - 35709 - 11905: 0xD775, - 35710 - 11905: 0xD776, - 35711 - 11905: 0xD777, - 35712 - 11905: 0xD778, - 35713 - 11905: 0xD779, - 35714 - 11905: 0xD77A, - 35715 - 11905: 0xD77B, - 35716 - 11905: 0xD77C, - 35717 - 11905: 0xD77D, - 35718 - 11905: 0xD77E, - 35719 - 11905: 0xD780, - 35720 - 11905: 0xD781, - 35721 - 11905: 0xD782, - 35722 - 11905: 0xD783, - 35723 - 11905: 0xD784, - 35724 - 11905: 0xD785, - 35725 - 11905: 0xD786, - 35726 - 11905: 0xD787, - 35727 - 11905: 0xD788, - 35728 - 11905: 0xD789, - 35729 - 11905: 0xD78A, - 35730 - 11905: 0xD78B, - 35731 - 11905: 0xD78C, - 35732 - 11905: 0xD78D, - 35733 - 11905: 0xD78E, - 35734 - 11905: 0xD78F, - 35735 - 11905: 0xD790, - 35736 - 11905: 0xD791, - 35737 - 11905: 0xD792, - 35738 - 11905: 0xD793, - 35739 - 11905: 0xD794, - 35740 - 11905: 0xD795, - 35741 - 11905: 0xD796, - 35742 - 11905: 0xD797, - 35743 - 11905: 0xD798, - 35744 - 11905: 0xDAA5, - 35745 - 11905: 0xBCC6, - 35746 - 11905: 0xB6A9, - 35747 - 11905: 0xB8BC, - 35748 - 11905: 0xC8CF, - 35749 - 11905: 0xBCA5, - 35750 - 11905: 0xDAA6, - 35751 - 11905: 0xDAA7, - 35752 - 11905: 0xCCD6, - 35753 - 11905: 0xC8C3, - 35754 - 11905: 0xDAA8, - 35755 - 11905: 0xC6FD, - 35756 - 11905: 0xD799, - 35757 - 11905: 0xD1B5, - 35758 - 11905: 0xD2E9, - 35759 - 11905: 0xD1B6, - 35760 - 11905: 0xBCC7, - 35761 - 11905: 0xD79A, - 35762 - 11905: 0xBDB2, - 35763 - 11905: 0xBBE4, - 35764 - 11905: 0xDAA9, - 35765 - 11905: 0xDAAA, - 35766 - 11905: 0xD1C8, - 35767 - 11905: 0xDAAB, - 35768 - 11905: 0xD0ED, - 35769 - 11905: 0xB6EF, - 35770 - 11905: 0xC2DB, - 35771 - 11905: 0xD79B, - 35772 - 11905: 0xCBCF, - 35773 - 11905: 0xB7ED, - 35774 - 11905: 0xC9E8, - 35775 - 11905: 0xB7C3, - 35776 - 11905: 0xBEF7, - 35777 - 11905: 0xD6A4, - 35778 - 11905: 0xDAAC, - 35779 - 11905: 0xDAAD, - 35780 - 11905: 0xC6C0, - 35781 - 11905: 0xD7E7, - 35782 - 11905: 0xCAB6, - 35783 - 11905: 0xD79C, - 35784 - 11905: 0xD5A9, - 35785 - 11905: 0xCBDF, - 35786 - 11905: 0xD5EF, - 35787 - 11905: 0xDAAE, - 35788 - 11905: 0xD6DF, - 35789 - 11905: 0xB4CA, - 35790 - 11905: 0xDAB0, - 35791 - 11905: 0xDAAF, - 35792 - 11905: 0xD79D, - 35793 - 11905: 0xD2EB, - 35794 - 11905: 0xDAB1, - 35795 - 11905: 0xDAB2, - 35796 - 11905: 0xDAB3, - 35797 - 11905: 0xCAD4, - 35798 - 11905: 0xDAB4, - 35799 - 11905: 0xCAAB, - 35800 - 11905: 0xDAB5, - 35801 - 11905: 0xDAB6, - 35802 - 11905: 0xB3CF, - 35803 - 11905: 0xD6EF, - 35804 - 11905: 0xDAB7, - 35805 - 11905: 0xBBB0, - 35806 - 11905: 0xB5AE, - 35807 - 11905: 0xDAB8, - 35808 - 11905: 0xDAB9, - 35809 - 11905: 0xB9EE, - 35810 - 11905: 0xD1AF, - 35811 - 11905: 0xD2E8, - 35812 - 11905: 0xDABA, - 35813 - 11905: 0xB8C3, - 35814 - 11905: 0xCFEA, - 35815 - 11905: 0xB2EF, - 35816 - 11905: 0xDABB, - 35817 - 11905: 0xDABC, - 35818 - 11905: 0xD79E, - 35819 - 11905: 0xBDEB, - 35820 - 11905: 0xCEDC, - 35821 - 11905: 0xD3EF, - 35822 - 11905: 0xDABD, - 35823 - 11905: 0xCEF3, - 35824 - 11905: 0xDABE, - 35825 - 11905: 0xD3D5, - 35826 - 11905: 0xBBE5, - 35827 - 11905: 0xDABF, - 35828 - 11905: 0xCBB5, - 35829 - 11905: 0xCBD0, - 35830 - 11905: 0xDAC0, - 35831 - 11905: 0xC7EB, - 35832 - 11905: 0xD6EE, - 35833 - 11905: 0xDAC1, - 35834 - 11905: 0xC5B5, - 35835 - 11905: 0xB6C1, - 35836 - 11905: 0xDAC2, - 35837 - 11905: 0xB7CC, - 35838 - 11905: 0xBFCE, - 35839 - 11905: 0xDAC3, - 35840 - 11905: 0xDAC4, - 35841 - 11905: 0xCBAD, - 35842 - 11905: 0xDAC5, - 35843 - 11905: 0xB5F7, - 35844 - 11905: 0xDAC6, - 35845 - 11905: 0xC1C2, - 35846 - 11905: 0xD7BB, - 35847 - 11905: 0xDAC7, - 35848 - 11905: 0xCCB8, - 35849 - 11905: 0xD79F, - 35850 - 11905: 0xD2EA, - 35851 - 11905: 0xC4B1, - 35852 - 11905: 0xDAC8, - 35853 - 11905: 0xB5FD, - 35854 - 11905: 0xBBD1, - 35855 - 11905: 0xDAC9, - 35856 - 11905: 0xD0B3, - 35857 - 11905: 0xDACA, - 35858 - 11905: 0xDACB, - 35859 - 11905: 0xCEBD, - 35860 - 11905: 0xDACC, - 35861 - 11905: 0xDACD, - 35862 - 11905: 0xDACE, - 35863 - 11905: 0xB2F7, - 35864 - 11905: 0xDAD1, - 35865 - 11905: 0xDACF, - 35866 - 11905: 0xD1E8, - 35867 - 11905: 0xDAD0, - 35868 - 11905: 0xC3D5, - 35869 - 11905: 0xDAD2, - 35870 - 11905: 0xD7A0, - 35871 - 11905: 0xDAD3, - 35872 - 11905: 0xDAD4, - 35873 - 11905: 0xDAD5, - 35874 - 11905: 0xD0BB, - 35875 - 11905: 0xD2A5, - 35876 - 11905: 0xB0F9, - 35877 - 11905: 0xDAD6, - 35878 - 11905: 0xC7AB, - 35879 - 11905: 0xDAD7, - 35880 - 11905: 0xBDF7, - 35881 - 11905: 0xC3A1, - 35882 - 11905: 0xDAD8, - 35883 - 11905: 0xDAD9, - 35884 - 11905: 0xC3FD, - 35885 - 11905: 0xCCB7, - 35886 - 11905: 0xDADA, - 35887 - 11905: 0xDADB, - 35888 - 11905: 0xC0BE, - 35889 - 11905: 0xC6D7, - 35890 - 11905: 0xDADC, - 35891 - 11905: 0xDADD, - 35892 - 11905: 0xC7B4, - 35893 - 11905: 0xDADE, - 35894 - 11905: 0xDADF, - 35895 - 11905: 0xB9C8, - 35896 - 11905: 0xD840, - 35897 - 11905: 0xD841, - 35898 - 11905: 0xD842, - 35899 - 11905: 0xD843, - 35900 - 11905: 0xD844, - 35901 - 11905: 0xD845, - 35902 - 11905: 0xD846, - 35903 - 11905: 0xD847, - 35904 - 11905: 0xD848, - 35905 - 11905: 0xBBED, - 35906 - 11905: 0xD849, - 35907 - 11905: 0xD84A, - 35908 - 11905: 0xD84B, - 35909 - 11905: 0xD84C, - 35910 - 11905: 0xB6B9, - 35911 - 11905: 0xF4F8, - 35912 - 11905: 0xD84D, - 35913 - 11905: 0xF4F9, - 35914 - 11905: 0xD84E, - 35915 - 11905: 0xD84F, - 35916 - 11905: 0xCDE3, - 35917 - 11905: 0xD850, - 35918 - 11905: 0xD851, - 35919 - 11905: 0xD852, - 35920 - 11905: 0xD853, - 35921 - 11905: 0xD854, - 35922 - 11905: 0xD855, - 35923 - 11905: 0xD856, - 35924 - 11905: 0xD857, - 35925 - 11905: 0xF5B9, - 35926 - 11905: 0xD858, - 35927 - 11905: 0xD859, - 35928 - 11905: 0xD85A, - 35929 - 11905: 0xD85B, - 35930 - 11905: 0xEBE0, - 35931 - 11905: 0xD85C, - 35932 - 11905: 0xD85D, - 35933 - 11905: 0xD85E, - 35934 - 11905: 0xD85F, - 35935 - 11905: 0xD860, - 35936 - 11905: 0xD861, - 35937 - 11905: 0xCFF3, - 35938 - 11905: 0xBBBF, - 35939 - 11905: 0xD862, - 35940 - 11905: 0xD863, - 35941 - 11905: 0xD864, - 35942 - 11905: 0xD865, - 35943 - 11905: 0xD866, - 35944 - 11905: 0xD867, - 35945 - 11905: 0xD868, - 35946 - 11905: 0xBAC0, - 35947 - 11905: 0xD4A5, - 35948 - 11905: 0xD869, - 35949 - 11905: 0xD86A, - 35950 - 11905: 0xD86B, - 35951 - 11905: 0xD86C, - 35952 - 11905: 0xD86D, - 35953 - 11905: 0xD86E, - 35954 - 11905: 0xD86F, - 35955 - 11905: 0xE1D9, - 35956 - 11905: 0xD870, - 35957 - 11905: 0xD871, - 35958 - 11905: 0xD872, - 35959 - 11905: 0xD873, - 35960 - 11905: 0xF5F4, - 35961 - 11905: 0xB1AA, - 35962 - 11905: 0xB2F2, - 35963 - 11905: 0xD874, - 35964 - 11905: 0xD875, - 35965 - 11905: 0xD876, - 35966 - 11905: 0xD877, - 35967 - 11905: 0xD878, - 35968 - 11905: 0xD879, - 35969 - 11905: 0xD87A, - 35970 - 11905: 0xF5F5, - 35971 - 11905: 0xD87B, - 35972 - 11905: 0xD87C, - 35973 - 11905: 0xF5F7, - 35974 - 11905: 0xD87D, - 35975 - 11905: 0xD87E, - 35976 - 11905: 0xD880, - 35977 - 11905: 0xBAD1, - 35978 - 11905: 0xF5F6, - 35979 - 11905: 0xD881, - 35980 - 11905: 0xC3B2, - 35981 - 11905: 0xD882, - 35982 - 11905: 0xD883, - 35983 - 11905: 0xD884, - 35984 - 11905: 0xD885, - 35985 - 11905: 0xD886, - 35986 - 11905: 0xD887, - 35987 - 11905: 0xD888, - 35988 - 11905: 0xF5F9, - 35989 - 11905: 0xD889, - 35990 - 11905: 0xD88A, - 35991 - 11905: 0xD88B, - 35992 - 11905: 0xF5F8, - 35993 - 11905: 0xD88C, - 35994 - 11905: 0xD88D, - 35995 - 11905: 0xD88E, - 35996 - 11905: 0xD88F, - 35997 - 11905: 0xD890, - 35998 - 11905: 0xD891, - 35999 - 11905: 0xD892, - 36000 - 11905: 0xD893, - 36001 - 11905: 0xD894, - 36002 - 11905: 0xD895, - 36003 - 11905: 0xD896, - 36004 - 11905: 0xD897, - 36005 - 11905: 0xD898, - 36006 - 11905: 0xD899, - 36007 - 11905: 0xD89A, - 36008 - 11905: 0xD89B, - 36009 - 11905: 0xD89C, - 36010 - 11905: 0xD89D, - 36011 - 11905: 0xD89E, - 36012 - 11905: 0xD89F, - 36013 - 11905: 0xD8A0, - 36014 - 11905: 0xD940, - 36015 - 11905: 0xD941, - 36016 - 11905: 0xD942, - 36017 - 11905: 0xD943, - 36018 - 11905: 0xD944, - 36019 - 11905: 0xD945, - 36020 - 11905: 0xD946, - 36021 - 11905: 0xD947, - 36022 - 11905: 0xD948, - 36023 - 11905: 0xD949, - 36024 - 11905: 0xD94A, - 36025 - 11905: 0xD94B, - 36026 - 11905: 0xD94C, - 36027 - 11905: 0xD94D, - 36028 - 11905: 0xD94E, - 36029 - 11905: 0xD94F, - 36030 - 11905: 0xD950, - 36031 - 11905: 0xD951, - 36032 - 11905: 0xD952, - 36033 - 11905: 0xD953, - 36034 - 11905: 0xD954, - 36035 - 11905: 0xD955, - 36036 - 11905: 0xD956, - 36037 - 11905: 0xD957, - 36038 - 11905: 0xD958, - 36039 - 11905: 0xD959, - 36040 - 11905: 0xD95A, - 36041 - 11905: 0xD95B, - 36042 - 11905: 0xD95C, - 36043 - 11905: 0xD95D, - 36044 - 11905: 0xD95E, - 36045 - 11905: 0xD95F, - 36046 - 11905: 0xD960, - 36047 - 11905: 0xD961, - 36048 - 11905: 0xD962, - 36049 - 11905: 0xD963, - 36050 - 11905: 0xD964, - 36051 - 11905: 0xD965, - 36052 - 11905: 0xD966, - 36053 - 11905: 0xD967, - 36054 - 11905: 0xD968, - 36055 - 11905: 0xD969, - 36056 - 11905: 0xD96A, - 36057 - 11905: 0xD96B, - 36058 - 11905: 0xD96C, - 36059 - 11905: 0xD96D, - 36060 - 11905: 0xD96E, - 36061 - 11905: 0xD96F, - 36062 - 11905: 0xD970, - 36063 - 11905: 0xD971, - 36064 - 11905: 0xD972, - 36065 - 11905: 0xD973, - 36066 - 11905: 0xD974, - 36067 - 11905: 0xD975, - 36068 - 11905: 0xD976, - 36069 - 11905: 0xD977, - 36070 - 11905: 0xD978, - 36071 - 11905: 0xD979, - 36072 - 11905: 0xD97A, - 36073 - 11905: 0xD97B, - 36074 - 11905: 0xD97C, - 36075 - 11905: 0xD97D, - 36076 - 11905: 0xD97E, - 36077 - 11905: 0xD980, - 36078 - 11905: 0xD981, - 36079 - 11905: 0xD982, - 36080 - 11905: 0xD983, - 36081 - 11905: 0xD984, - 36082 - 11905: 0xD985, - 36083 - 11905: 0xD986, - 36084 - 11905: 0xD987, - 36085 - 11905: 0xD988, - 36086 - 11905: 0xD989, - 36087 - 11905: 0xD98A, - 36088 - 11905: 0xD98B, - 36089 - 11905: 0xD98C, - 36090 - 11905: 0xD98D, - 36091 - 11905: 0xD98E, - 36092 - 11905: 0xD98F, - 36093 - 11905: 0xD990, - 36094 - 11905: 0xD991, - 36095 - 11905: 0xD992, - 36096 - 11905: 0xD993, - 36097 - 11905: 0xD994, - 36098 - 11905: 0xD995, - 36099 - 11905: 0xD996, - 36100 - 11905: 0xD997, - 36101 - 11905: 0xD998, - 36102 - 11905: 0xD999, - 36103 - 11905: 0xD99A, - 36104 - 11905: 0xD99B, - 36105 - 11905: 0xD99C, - 36106 - 11905: 0xD99D, - 36107 - 11905: 0xD99E, - 36108 - 11905: 0xD99F, - 36109 - 11905: 0xD9A0, - 36110 - 11905: 0xDA40, - 36111 - 11905: 0xDA41, - 36112 - 11905: 0xDA42, - 36113 - 11905: 0xDA43, - 36114 - 11905: 0xDA44, - 36115 - 11905: 0xDA45, - 36116 - 11905: 0xDA46, - 36117 - 11905: 0xDA47, - 36118 - 11905: 0xDA48, - 36119 - 11905: 0xDA49, - 36120 - 11905: 0xDA4A, - 36121 - 11905: 0xDA4B, - 36122 - 11905: 0xDA4C, - 36123 - 11905: 0xDA4D, - 36124 - 11905: 0xDA4E, - 36125 - 11905: 0xB1B4, - 36126 - 11905: 0xD5EA, - 36127 - 11905: 0xB8BA, - 36128 - 11905: 0xDA4F, - 36129 - 11905: 0xB9B1, - 36130 - 11905: 0xB2C6, - 36131 - 11905: 0xD4F0, - 36132 - 11905: 0xCFCD, - 36133 - 11905: 0xB0DC, - 36134 - 11905: 0xD5CB, - 36135 - 11905: 0xBBF5, - 36136 - 11905: 0xD6CA, - 36137 - 11905: 0xB7B7, - 36138 - 11905: 0xCCB0, - 36139 - 11905: 0xC6B6, - 36140 - 11905: 0xB1E1, - 36141 - 11905: 0xB9BA, - 36142 - 11905: 0xD6FC, - 36143 - 11905: 0xB9E1, - 36144 - 11905: 0xB7A1, - 36145 - 11905: 0xBCFA, - 36146 - 11905: 0xEADA, - 36147 - 11905: 0xEADB, - 36148 - 11905: 0xCCF9, - 36149 - 11905: 0xB9F3, - 36150 - 11905: 0xEADC, - 36151 - 11905: 0xB4FB, - 36152 - 11905: 0xC3B3, - 36153 - 11905: 0xB7D1, - 36154 - 11905: 0xBAD8, - 36155 - 11905: 0xEADD, - 36156 - 11905: 0xD4F4, - 36157 - 11905: 0xEADE, - 36158 - 11905: 0xBCD6, - 36159 - 11905: 0xBBDF, - 36160 - 11905: 0xEADF, - 36161 - 11905: 0xC1DE, - 36162 - 11905: 0xC2B8, - 36163 - 11905: 0xD4DF, - 36164 - 11905: 0xD7CA, - 36165 - 11905: 0xEAE0, - 36166 - 11905: 0xEAE1, - 36167 - 11905: 0xEAE4, - 36168 - 11905: 0xEAE2, - 36169 - 11905: 0xEAE3, - 36170 - 11905: 0xC9DE, - 36171 - 11905: 0xB8B3, - 36172 - 11905: 0xB6C4, - 36173 - 11905: 0xEAE5, - 36174 - 11905: 0xCAEA, - 36175 - 11905: 0xC9CD, - 36176 - 11905: 0xB4CD, - 36177 - 11905: 0xDA50, - 36178 - 11905: 0xDA51, - 36179 - 11905: 0xE2D9, - 36180 - 11905: 0xC5E2, - 36181 - 11905: 0xEAE6, - 36182 - 11905: 0xC0B5, - 36183 - 11905: 0xDA52, - 36184 - 11905: 0xD7B8, - 36185 - 11905: 0xEAE7, - 36186 - 11905: 0xD7AC, - 36187 - 11905: 0xC8FC, - 36188 - 11905: 0xD8D3, - 36189 - 11905: 0xD8CD, - 36190 - 11905: 0xD4DE, - 36191 - 11905: 0xDA53, - 36192 - 11905: 0xD4F9, - 36193 - 11905: 0xC9C4, - 36194 - 11905: 0xD3AE, - 36195 - 11905: 0xB8D3, - 36196 - 11905: 0xB3E0, - 36197 - 11905: 0xDA54, - 36198 - 11905: 0xC9E2, - 36199 - 11905: 0xF4F6, - 36200 - 11905: 0xDA55, - 36201 - 11905: 0xDA56, - 36202 - 11905: 0xDA57, - 36203 - 11905: 0xBAD5, - 36204 - 11905: 0xDA58, - 36205 - 11905: 0xF4F7, - 36206 - 11905: 0xDA59, - 36207 - 11905: 0xDA5A, - 36208 - 11905: 0xD7DF, - 36209 - 11905: 0xDA5B, - 36210 - 11905: 0xDA5C, - 36211 - 11905: 0xF4F1, - 36212 - 11905: 0xB8B0, - 36213 - 11905: 0xD5D4, - 36214 - 11905: 0xB8CF, - 36215 - 11905: 0xC6F0, - 36216 - 11905: 0xDA5D, - 36217 - 11905: 0xDA5E, - 36218 - 11905: 0xDA5F, - 36219 - 11905: 0xDA60, - 36220 - 11905: 0xDA61, - 36221 - 11905: 0xDA62, - 36222 - 11905: 0xDA63, - 36223 - 11905: 0xDA64, - 36224 - 11905: 0xDA65, - 36225 - 11905: 0xB3C3, - 36226 - 11905: 0xDA66, - 36227 - 11905: 0xDA67, - 36228 - 11905: 0xF4F2, - 36229 - 11905: 0xB3AC, - 36230 - 11905: 0xDA68, - 36231 - 11905: 0xDA69, - 36232 - 11905: 0xDA6A, - 36233 - 11905: 0xDA6B, - 36234 - 11905: 0xD4BD, - 36235 - 11905: 0xC7F7, - 36236 - 11905: 0xDA6C, - 36237 - 11905: 0xDA6D, - 36238 - 11905: 0xDA6E, - 36239 - 11905: 0xDA6F, - 36240 - 11905: 0xDA70, - 36241 - 11905: 0xF4F4, - 36242 - 11905: 0xDA71, - 36243 - 11905: 0xDA72, - 36244 - 11905: 0xF4F3, - 36245 - 11905: 0xDA73, - 36246 - 11905: 0xDA74, - 36247 - 11905: 0xDA75, - 36248 - 11905: 0xDA76, - 36249 - 11905: 0xDA77, - 36250 - 11905: 0xDA78, - 36251 - 11905: 0xDA79, - 36252 - 11905: 0xDA7A, - 36253 - 11905: 0xDA7B, - 36254 - 11905: 0xDA7C, - 36255 - 11905: 0xCCCB, - 36256 - 11905: 0xDA7D, - 36257 - 11905: 0xDA7E, - 36258 - 11905: 0xDA80, - 36259 - 11905: 0xC8A4, - 36260 - 11905: 0xDA81, - 36261 - 11905: 0xDA82, - 36262 - 11905: 0xDA83, - 36263 - 11905: 0xDA84, - 36264 - 11905: 0xDA85, - 36265 - 11905: 0xDA86, - 36266 - 11905: 0xDA87, - 36267 - 11905: 0xDA88, - 36268 - 11905: 0xDA89, - 36269 - 11905: 0xDA8A, - 36270 - 11905: 0xDA8B, - 36271 - 11905: 0xDA8C, - 36272 - 11905: 0xDA8D, - 36273 - 11905: 0xF4F5, - 36274 - 11905: 0xDA8E, - 36275 - 11905: 0xD7E3, - 36276 - 11905: 0xC5BF, - 36277 - 11905: 0xF5C0, - 36278 - 11905: 0xDA8F, - 36279 - 11905: 0xDA90, - 36280 - 11905: 0xF5BB, - 36281 - 11905: 0xDA91, - 36282 - 11905: 0xF5C3, - 36283 - 11905: 0xDA92, - 36284 - 11905: 0xF5C2, - 36285 - 11905: 0xDA93, - 36286 - 11905: 0xD6BA, - 36287 - 11905: 0xF5C1, - 36288 - 11905: 0xDA94, - 36289 - 11905: 0xDA95, - 36290 - 11905: 0xDA96, - 36291 - 11905: 0xD4BE, - 36292 - 11905: 0xF5C4, - 36293 - 11905: 0xDA97, - 36294 - 11905: 0xF5CC, - 36295 - 11905: 0xDA98, - 36296 - 11905: 0xDA99, - 36297 - 11905: 0xDA9A, - 36298 - 11905: 0xDA9B, - 36299 - 11905: 0xB0CF, - 36300 - 11905: 0xB5F8, - 36301 - 11905: 0xDA9C, - 36302 - 11905: 0xF5C9, - 36303 - 11905: 0xF5CA, - 36304 - 11905: 0xDA9D, - 36305 - 11905: 0xC5DC, - 36306 - 11905: 0xDA9E, - 36307 - 11905: 0xDA9F, - 36308 - 11905: 0xDAA0, - 36309 - 11905: 0xDB40, - 36310 - 11905: 0xF5C5, - 36311 - 11905: 0xF5C6, - 36312 - 11905: 0xDB41, - 36313 - 11905: 0xDB42, - 36314 - 11905: 0xF5C7, - 36315 - 11905: 0xF5CB, - 36316 - 11905: 0xDB43, - 36317 - 11905: 0xBEE0, - 36318 - 11905: 0xF5C8, - 36319 - 11905: 0xB8FA, - 36320 - 11905: 0xDB44, - 36321 - 11905: 0xDB45, - 36322 - 11905: 0xDB46, - 36323 - 11905: 0xF5D0, - 36324 - 11905: 0xF5D3, - 36325 - 11905: 0xDB47, - 36326 - 11905: 0xDB48, - 36327 - 11905: 0xDB49, - 36328 - 11905: 0xBFE7, - 36329 - 11905: 0xDB4A, - 36330 - 11905: 0xB9F2, - 36331 - 11905: 0xF5BC, - 36332 - 11905: 0xF5CD, - 36333 - 11905: 0xDB4B, - 36334 - 11905: 0xDB4C, - 36335 - 11905: 0xC2B7, - 36336 - 11905: 0xDB4D, - 36337 - 11905: 0xDB4E, - 36338 - 11905: 0xDB4F, - 36339 - 11905: 0xCCF8, - 36340 - 11905: 0xDB50, - 36341 - 11905: 0xBCF9, - 36342 - 11905: 0xDB51, - 36343 - 11905: 0xF5CE, - 36344 - 11905: 0xF5CF, - 36345 - 11905: 0xF5D1, - 36346 - 11905: 0xB6E5, - 36347 - 11905: 0xF5D2, - 36348 - 11905: 0xDB52, - 36349 - 11905: 0xF5D5, - 36350 - 11905: 0xDB53, - 36351 - 11905: 0xDB54, - 36352 - 11905: 0xDB55, - 36353 - 11905: 0xDB56, - 36354 - 11905: 0xDB57, - 36355 - 11905: 0xDB58, - 36356 - 11905: 0xDB59, - 36357 - 11905: 0xF5BD, - 36358 - 11905: 0xDB5A, - 36359 - 11905: 0xDB5B, - 36360 - 11905: 0xDB5C, - 36361 - 11905: 0xF5D4, - 36362 - 11905: 0xD3BB, - 36363 - 11905: 0xDB5D, - 36364 - 11905: 0xB3EC, - 36365 - 11905: 0xDB5E, - 36366 - 11905: 0xDB5F, - 36367 - 11905: 0xCCA4, - 36368 - 11905: 0xDB60, - 36369 - 11905: 0xDB61, - 36370 - 11905: 0xDB62, - 36371 - 11905: 0xDB63, - 36372 - 11905: 0xF5D6, - 36373 - 11905: 0xDB64, - 36374 - 11905: 0xDB65, - 36375 - 11905: 0xDB66, - 36376 - 11905: 0xDB67, - 36377 - 11905: 0xDB68, - 36378 - 11905: 0xDB69, - 36379 - 11905: 0xDB6A, - 36380 - 11905: 0xDB6B, - 36381 - 11905: 0xF5D7, - 36382 - 11905: 0xBEE1, - 36383 - 11905: 0xF5D8, - 36384 - 11905: 0xDB6C, - 36385 - 11905: 0xDB6D, - 36386 - 11905: 0xCCDF, - 36387 - 11905: 0xF5DB, - 36388 - 11905: 0xDB6E, - 36389 - 11905: 0xDB6F, - 36390 - 11905: 0xDB70, - 36391 - 11905: 0xDB71, - 36392 - 11905: 0xDB72, - 36393 - 11905: 0xB2C8, - 36394 - 11905: 0xD7D9, - 36395 - 11905: 0xDB73, - 36396 - 11905: 0xF5D9, - 36397 - 11905: 0xDB74, - 36398 - 11905: 0xF5DA, - 36399 - 11905: 0xF5DC, - 36400 - 11905: 0xDB75, - 36401 - 11905: 0xF5E2, - 36402 - 11905: 0xDB76, - 36403 - 11905: 0xDB77, - 36404 - 11905: 0xDB78, - 36405 - 11905: 0xF5E0, - 36406 - 11905: 0xDB79, - 36407 - 11905: 0xDB7A, - 36408 - 11905: 0xDB7B, - 36409 - 11905: 0xF5DF, - 36410 - 11905: 0xF5DD, - 36411 - 11905: 0xDB7C, - 36412 - 11905: 0xDB7D, - 36413 - 11905: 0xF5E1, - 36414 - 11905: 0xDB7E, - 36415 - 11905: 0xDB80, - 36416 - 11905: 0xF5DE, - 36417 - 11905: 0xF5E4, - 36418 - 11905: 0xF5E5, - 36419 - 11905: 0xDB81, - 36420 - 11905: 0xCCE3, - 36421 - 11905: 0xDB82, - 36422 - 11905: 0xDB83, - 36423 - 11905: 0xE5BF, - 36424 - 11905: 0xB5B8, - 36425 - 11905: 0xF5E3, - 36426 - 11905: 0xF5E8, - 36427 - 11905: 0xCCA3, - 36428 - 11905: 0xDB84, - 36429 - 11905: 0xDB85, - 36430 - 11905: 0xDB86, - 36431 - 11905: 0xDB87, - 36432 - 11905: 0xDB88, - 36433 - 11905: 0xF5E6, - 36434 - 11905: 0xF5E7, - 36435 - 11905: 0xDB89, - 36436 - 11905: 0xDB8A, - 36437 - 11905: 0xDB8B, - 36438 - 11905: 0xDB8C, - 36439 - 11905: 0xDB8D, - 36440 - 11905: 0xDB8E, - 36441 - 11905: 0xF5BE, - 36442 - 11905: 0xDB8F, - 36443 - 11905: 0xDB90, - 36444 - 11905: 0xDB91, - 36445 - 11905: 0xDB92, - 36446 - 11905: 0xDB93, - 36447 - 11905: 0xDB94, - 36448 - 11905: 0xDB95, - 36449 - 11905: 0xDB96, - 36450 - 11905: 0xDB97, - 36451 - 11905: 0xDB98, - 36452 - 11905: 0xDB99, - 36453 - 11905: 0xDB9A, - 36454 - 11905: 0xB1C4, - 36455 - 11905: 0xDB9B, - 36456 - 11905: 0xDB9C, - 36457 - 11905: 0xF5BF, - 36458 - 11905: 0xDB9D, - 36459 - 11905: 0xDB9E, - 36460 - 11905: 0xB5C5, - 36461 - 11905: 0xB2E4, - 36462 - 11905: 0xDB9F, - 36463 - 11905: 0xF5EC, - 36464 - 11905: 0xF5E9, - 36465 - 11905: 0xDBA0, - 36466 - 11905: 0xB6D7, - 36467 - 11905: 0xDC40, - 36468 - 11905: 0xF5ED, - 36469 - 11905: 0xDC41, - 36470 - 11905: 0xF5EA, - 36471 - 11905: 0xDC42, - 36472 - 11905: 0xDC43, - 36473 - 11905: 0xDC44, - 36474 - 11905: 0xDC45, - 36475 - 11905: 0xDC46, - 36476 - 11905: 0xF5EB, - 36477 - 11905: 0xDC47, - 36478 - 11905: 0xDC48, - 36479 - 11905: 0xB4DA, - 36480 - 11905: 0xDC49, - 36481 - 11905: 0xD4EA, - 36482 - 11905: 0xDC4A, - 36483 - 11905: 0xDC4B, - 36484 - 11905: 0xDC4C, - 36485 - 11905: 0xF5EE, - 36486 - 11905: 0xDC4D, - 36487 - 11905: 0xB3F9, - 36488 - 11905: 0xDC4E, - 36489 - 11905: 0xDC4F, - 36490 - 11905: 0xDC50, - 36491 - 11905: 0xDC51, - 36492 - 11905: 0xDC52, - 36493 - 11905: 0xDC53, - 36494 - 11905: 0xDC54, - 36495 - 11905: 0xF5EF, - 36496 - 11905: 0xF5F1, - 36497 - 11905: 0xDC55, - 36498 - 11905: 0xDC56, - 36499 - 11905: 0xDC57, - 36500 - 11905: 0xF5F0, - 36501 - 11905: 0xDC58, - 36502 - 11905: 0xDC59, - 36503 - 11905: 0xDC5A, - 36504 - 11905: 0xDC5B, - 36505 - 11905: 0xDC5C, - 36506 - 11905: 0xDC5D, - 36507 - 11905: 0xDC5E, - 36508 - 11905: 0xF5F2, - 36509 - 11905: 0xDC5F, - 36510 - 11905: 0xF5F3, - 36511 - 11905: 0xDC60, - 36512 - 11905: 0xDC61, - 36513 - 11905: 0xDC62, - 36514 - 11905: 0xDC63, - 36515 - 11905: 0xDC64, - 36516 - 11905: 0xDC65, - 36517 - 11905: 0xDC66, - 36518 - 11905: 0xDC67, - 36519 - 11905: 0xDC68, - 36520 - 11905: 0xDC69, - 36521 - 11905: 0xDC6A, - 36522 - 11905: 0xDC6B, - 36523 - 11905: 0xC9ED, - 36524 - 11905: 0xB9AA, - 36525 - 11905: 0xDC6C, - 36526 - 11905: 0xDC6D, - 36527 - 11905: 0xC7FB, - 36528 - 11905: 0xDC6E, - 36529 - 11905: 0xDC6F, - 36530 - 11905: 0xB6E3, - 36531 - 11905: 0xDC70, - 36532 - 11905: 0xDC71, - 36533 - 11905: 0xDC72, - 36534 - 11905: 0xDC73, - 36535 - 11905: 0xDC74, - 36536 - 11905: 0xDC75, - 36537 - 11905: 0xDC76, - 36538 - 11905: 0xCCC9, - 36539 - 11905: 0xDC77, - 36540 - 11905: 0xDC78, - 36541 - 11905: 0xDC79, - 36542 - 11905: 0xDC7A, - 36543 - 11905: 0xDC7B, - 36544 - 11905: 0xDC7C, - 36545 - 11905: 0xDC7D, - 36546 - 11905: 0xDC7E, - 36547 - 11905: 0xDC80, - 36548 - 11905: 0xDC81, - 36549 - 11905: 0xDC82, - 36550 - 11905: 0xDC83, - 36551 - 11905: 0xDC84, - 36552 - 11905: 0xDC85, - 36553 - 11905: 0xDC86, - 36554 - 11905: 0xDC87, - 36555 - 11905: 0xDC88, - 36556 - 11905: 0xDC89, - 36557 - 11905: 0xDC8A, - 36558 - 11905: 0xEAA6, - 36559 - 11905: 0xDC8B, - 36560 - 11905: 0xDC8C, - 36561 - 11905: 0xDC8D, - 36562 - 11905: 0xDC8E, - 36563 - 11905: 0xDC8F, - 36564 - 11905: 0xDC90, - 36565 - 11905: 0xDC91, - 36566 - 11905: 0xDC92, - 36567 - 11905: 0xDC93, - 36568 - 11905: 0xDC94, - 36569 - 11905: 0xDC95, - 36570 - 11905: 0xDC96, - 36571 - 11905: 0xDC97, - 36572 - 11905: 0xDC98, - 36573 - 11905: 0xDC99, - 36574 - 11905: 0xDC9A, - 36575 - 11905: 0xDC9B, - 36576 - 11905: 0xDC9C, - 36577 - 11905: 0xDC9D, - 36578 - 11905: 0xDC9E, - 36579 - 11905: 0xDC9F, - 36580 - 11905: 0xDCA0, - 36581 - 11905: 0xDD40, - 36582 - 11905: 0xDD41, - 36583 - 11905: 0xDD42, - 36584 - 11905: 0xDD43, - 36585 - 11905: 0xDD44, - 36586 - 11905: 0xDD45, - 36587 - 11905: 0xDD46, - 36588 - 11905: 0xDD47, - 36589 - 11905: 0xDD48, - 36590 - 11905: 0xDD49, - 36591 - 11905: 0xDD4A, - 36592 - 11905: 0xDD4B, - 36593 - 11905: 0xDD4C, - 36594 - 11905: 0xDD4D, - 36595 - 11905: 0xDD4E, - 36596 - 11905: 0xDD4F, - 36597 - 11905: 0xDD50, - 36598 - 11905: 0xDD51, - 36599 - 11905: 0xDD52, - 36600 - 11905: 0xDD53, - 36601 - 11905: 0xDD54, - 36602 - 11905: 0xDD55, - 36603 - 11905: 0xDD56, - 36604 - 11905: 0xDD57, - 36605 - 11905: 0xDD58, - 36606 - 11905: 0xDD59, - 36607 - 11905: 0xDD5A, - 36608 - 11905: 0xDD5B, - 36609 - 11905: 0xDD5C, - 36610 - 11905: 0xDD5D, - 36611 - 11905: 0xDD5E, - 36612 - 11905: 0xDD5F, - 36613 - 11905: 0xDD60, - 36614 - 11905: 0xDD61, - 36615 - 11905: 0xDD62, - 36616 - 11905: 0xDD63, - 36617 - 11905: 0xDD64, - 36618 - 11905: 0xDD65, - 36619 - 11905: 0xDD66, - 36620 - 11905: 0xDD67, - 36621 - 11905: 0xDD68, - 36622 - 11905: 0xDD69, - 36623 - 11905: 0xDD6A, - 36624 - 11905: 0xDD6B, - 36625 - 11905: 0xDD6C, - 36626 - 11905: 0xDD6D, - 36627 - 11905: 0xDD6E, - 36628 - 11905: 0xDD6F, - 36629 - 11905: 0xDD70, - 36630 - 11905: 0xDD71, - 36631 - 11905: 0xDD72, - 36632 - 11905: 0xDD73, - 36633 - 11905: 0xDD74, - 36634 - 11905: 0xDD75, - 36635 - 11905: 0xDD76, - 36636 - 11905: 0xDD77, - 36637 - 11905: 0xDD78, - 36638 - 11905: 0xDD79, - 36639 - 11905: 0xDD7A, - 36640 - 11905: 0xDD7B, - 36641 - 11905: 0xDD7C, - 36642 - 11905: 0xDD7D, - 36643 - 11905: 0xDD7E, - 36644 - 11905: 0xDD80, - 36645 - 11905: 0xDD81, - 36646 - 11905: 0xDD82, - 36647 - 11905: 0xDD83, - 36648 - 11905: 0xDD84, - 36649 - 11905: 0xDD85, - 36650 - 11905: 0xDD86, - 36651 - 11905: 0xDD87, - 36652 - 11905: 0xDD88, - 36653 - 11905: 0xDD89, - 36654 - 11905: 0xDD8A, - 36655 - 11905: 0xDD8B, - 36656 - 11905: 0xDD8C, - 36657 - 11905: 0xDD8D, - 36658 - 11905: 0xDD8E, - 36659 - 11905: 0xDD8F, - 36660 - 11905: 0xDD90, - 36661 - 11905: 0xDD91, - 36662 - 11905: 0xDD92, - 36663 - 11905: 0xDD93, - 36664 - 11905: 0xDD94, - 36665 - 11905: 0xDD95, - 36666 - 11905: 0xDD96, - 36667 - 11905: 0xDD97, - 36668 - 11905: 0xDD98, - 36669 - 11905: 0xDD99, - 36670 - 11905: 0xDD9A, - 36671 - 11905: 0xDD9B, - 36672 - 11905: 0xDD9C, - 36673 - 11905: 0xDD9D, - 36674 - 11905: 0xDD9E, - 36675 - 11905: 0xDD9F, - 36676 - 11905: 0xDDA0, - 36677 - 11905: 0xDE40, - 36678 - 11905: 0xDE41, - 36679 - 11905: 0xDE42, - 36680 - 11905: 0xDE43, - 36681 - 11905: 0xDE44, - 36682 - 11905: 0xDE45, - 36683 - 11905: 0xDE46, - 36684 - 11905: 0xDE47, - 36685 - 11905: 0xDE48, - 36686 - 11905: 0xDE49, - 36687 - 11905: 0xDE4A, - 36688 - 11905: 0xDE4B, - 36689 - 11905: 0xDE4C, - 36690 - 11905: 0xDE4D, - 36691 - 11905: 0xDE4E, - 36692 - 11905: 0xDE4F, - 36693 - 11905: 0xDE50, - 36694 - 11905: 0xDE51, - 36695 - 11905: 0xDE52, - 36696 - 11905: 0xDE53, - 36697 - 11905: 0xDE54, - 36698 - 11905: 0xDE55, - 36699 - 11905: 0xDE56, - 36700 - 11905: 0xDE57, - 36701 - 11905: 0xDE58, - 36702 - 11905: 0xDE59, - 36703 - 11905: 0xDE5A, - 36704 - 11905: 0xDE5B, - 36705 - 11905: 0xDE5C, - 36706 - 11905: 0xDE5D, - 36707 - 11905: 0xDE5E, - 36708 - 11905: 0xDE5F, - 36709 - 11905: 0xDE60, - 36710 - 11905: 0xB3B5, - 36711 - 11905: 0xD4FE, - 36712 - 11905: 0xB9EC, - 36713 - 11905: 0xD0F9, - 36714 - 11905: 0xDE61, - 36715 - 11905: 0xE9ED, - 36716 - 11905: 0xD7AA, - 36717 - 11905: 0xE9EE, - 36718 - 11905: 0xC2D6, - 36719 - 11905: 0xC8ED, - 36720 - 11905: 0xBAE4, - 36721 - 11905: 0xE9EF, - 36722 - 11905: 0xE9F0, - 36723 - 11905: 0xE9F1, - 36724 - 11905: 0xD6E1, - 36725 - 11905: 0xE9F2, - 36726 - 11905: 0xE9F3, - 36727 - 11905: 0xE9F5, - 36728 - 11905: 0xE9F4, - 36729 - 11905: 0xE9F6, - 36730 - 11905: 0xE9F7, - 36731 - 11905: 0xC7E1, - 36732 - 11905: 0xE9F8, - 36733 - 11905: 0xD4D8, - 36734 - 11905: 0xE9F9, - 36735 - 11905: 0xBDCE, - 36736 - 11905: 0xDE62, - 36737 - 11905: 0xE9FA, - 36738 - 11905: 0xE9FB, - 36739 - 11905: 0xBDCF, - 36740 - 11905: 0xE9FC, - 36741 - 11905: 0xB8A8, - 36742 - 11905: 0xC1BE, - 36743 - 11905: 0xE9FD, - 36744 - 11905: 0xB1B2, - 36745 - 11905: 0xBBD4, - 36746 - 11905: 0xB9F5, - 36747 - 11905: 0xE9FE, - 36748 - 11905: 0xDE63, - 36749 - 11905: 0xEAA1, - 36750 - 11905: 0xEAA2, - 36751 - 11905: 0xEAA3, - 36752 - 11905: 0xB7F8, - 36753 - 11905: 0xBCAD, - 36754 - 11905: 0xDE64, - 36755 - 11905: 0xCAE4, - 36756 - 11905: 0xE0CE, - 36757 - 11905: 0xD4AF, - 36758 - 11905: 0xCFBD, - 36759 - 11905: 0xD5B7, - 36760 - 11905: 0xEAA4, - 36761 - 11905: 0xD5DE, - 36762 - 11905: 0xEAA5, - 36763 - 11905: 0xD0C1, - 36764 - 11905: 0xB9BC, - 36765 - 11905: 0xDE65, - 36766 - 11905: 0xB4C7, - 36767 - 11905: 0xB1D9, - 36768 - 11905: 0xDE66, - 36769 - 11905: 0xDE67, - 36770 - 11905: 0xDE68, - 36771 - 11905: 0xC0B1, - 36772 - 11905: 0xDE69, - 36773 - 11905: 0xDE6A, - 36774 - 11905: 0xDE6B, - 36775 - 11905: 0xDE6C, - 36776 - 11905: 0xB1E6, - 36777 - 11905: 0xB1E7, - 36778 - 11905: 0xDE6D, - 36779 - 11905: 0xB1E8, - 36780 - 11905: 0xDE6E, - 36781 - 11905: 0xDE6F, - 36782 - 11905: 0xDE70, - 36783 - 11905: 0xDE71, - 36784 - 11905: 0xB3BD, - 36785 - 11905: 0xC8E8, - 36786 - 11905: 0xDE72, - 36787 - 11905: 0xDE73, - 36788 - 11905: 0xDE74, - 36789 - 11905: 0xDE75, - 36790 - 11905: 0xE5C1, - 36791 - 11905: 0xDE76, - 36792 - 11905: 0xDE77, - 36793 - 11905: 0xB1DF, - 36794 - 11905: 0xDE78, - 36795 - 11905: 0xDE79, - 36796 - 11905: 0xDE7A, - 36797 - 11905: 0xC1C9, - 36798 - 11905: 0xB4EF, - 36799 - 11905: 0xDE7B, - 36800 - 11905: 0xDE7C, - 36801 - 11905: 0xC7A8, - 36802 - 11905: 0xD3D8, - 36803 - 11905: 0xDE7D, - 36804 - 11905: 0xC6F9, - 36805 - 11905: 0xD1B8, - 36806 - 11905: 0xDE7E, - 36807 - 11905: 0xB9FD, - 36808 - 11905: 0xC2F5, - 36809 - 11905: 0xDE80, - 36810 - 11905: 0xDE81, - 36811 - 11905: 0xDE82, - 36812 - 11905: 0xDE83, - 36813 - 11905: 0xDE84, - 36814 - 11905: 0xD3AD, - 36815 - 11905: 0xDE85, - 36816 - 11905: 0xD4CB, - 36817 - 11905: 0xBDFC, - 36818 - 11905: 0xDE86, - 36819 - 11905: 0xE5C2, - 36820 - 11905: 0xB7B5, - 36821 - 11905: 0xE5C3, - 36822 - 11905: 0xDE87, - 36823 - 11905: 0xDE88, - 36824 - 11905: 0xBBB9, - 36825 - 11905: 0xD5E2, - 36826 - 11905: 0xDE89, - 36827 - 11905: 0xBDF8, - 36828 - 11905: 0xD4B6, - 36829 - 11905: 0xCEA5, - 36830 - 11905: 0xC1AC, - 36831 - 11905: 0xB3D9, - 36832 - 11905: 0xDE8A, - 36833 - 11905: 0xDE8B, - 36834 - 11905: 0xCCF6, - 36835 - 11905: 0xDE8C, - 36836 - 11905: 0xE5C6, - 36837 - 11905: 0xE5C4, - 36838 - 11905: 0xE5C8, - 36839 - 11905: 0xDE8D, - 36840 - 11905: 0xE5CA, - 36841 - 11905: 0xE5C7, - 36842 - 11905: 0xB5CF, - 36843 - 11905: 0xC6C8, - 36844 - 11905: 0xDE8E, - 36845 - 11905: 0xB5FC, - 36846 - 11905: 0xE5C5, - 36847 - 11905: 0xDE8F, - 36848 - 11905: 0xCAF6, - 36849 - 11905: 0xDE90, - 36850 - 11905: 0xDE91, - 36851 - 11905: 0xE5C9, - 36852 - 11905: 0xDE92, - 36853 - 11905: 0xDE93, - 36854 - 11905: 0xDE94, - 36855 - 11905: 0xC3D4, - 36856 - 11905: 0xB1C5, - 36857 - 11905: 0xBCA3, - 36858 - 11905: 0xDE95, - 36859 - 11905: 0xDE96, - 36860 - 11905: 0xDE97, - 36861 - 11905: 0xD7B7, - 36862 - 11905: 0xDE98, - 36863 - 11905: 0xDE99, - 36864 - 11905: 0xCDCB, - 36865 - 11905: 0xCBCD, - 36866 - 11905: 0xCACA, - 36867 - 11905: 0xCCD3, - 36868 - 11905: 0xE5CC, - 36869 - 11905: 0xE5CB, - 36870 - 11905: 0xC4E6, - 36871 - 11905: 0xDE9A, - 36872 - 11905: 0xDE9B, - 36873 - 11905: 0xD1A1, - 36874 - 11905: 0xD1B7, - 36875 - 11905: 0xE5CD, - 36876 - 11905: 0xDE9C, - 36877 - 11905: 0xE5D0, - 36878 - 11905: 0xDE9D, - 36879 - 11905: 0xCDB8, - 36880 - 11905: 0xD6F0, - 36881 - 11905: 0xE5CF, - 36882 - 11905: 0xB5DD, - 36883 - 11905: 0xDE9E, - 36884 - 11905: 0xCDBE, - 36885 - 11905: 0xDE9F, - 36886 - 11905: 0xE5D1, - 36887 - 11905: 0xB6BA, - 36888 - 11905: 0xDEA0, - 36889 - 11905: 0xDF40, - 36890 - 11905: 0xCDA8, - 36891 - 11905: 0xB9E4, - 36892 - 11905: 0xDF41, - 36893 - 11905: 0xCAC5, - 36894 - 11905: 0xB3D1, - 36895 - 11905: 0xCBD9, - 36896 - 11905: 0xD4EC, - 36897 - 11905: 0xE5D2, - 36898 - 11905: 0xB7EA, - 36899 - 11905: 0xDF42, - 36900 - 11905: 0xDF43, - 36901 - 11905: 0xDF44, - 36902 - 11905: 0xE5CE, - 36903 - 11905: 0xDF45, - 36904 - 11905: 0xDF46, - 36905 - 11905: 0xDF47, - 36906 - 11905: 0xDF48, - 36907 - 11905: 0xDF49, - 36908 - 11905: 0xDF4A, - 36909 - 11905: 0xE5D5, - 36910 - 11905: 0xB4FE, - 36911 - 11905: 0xE5D6, - 36912 - 11905: 0xDF4B, - 36913 - 11905: 0xDF4C, - 36914 - 11905: 0xDF4D, - 36915 - 11905: 0xDF4E, - 36916 - 11905: 0xDF4F, - 36917 - 11905: 0xE5D3, - 36918 - 11905: 0xE5D4, - 36919 - 11905: 0xDF50, - 36920 - 11905: 0xD2DD, - 36921 - 11905: 0xDF51, - 36922 - 11905: 0xDF52, - 36923 - 11905: 0xC2DF, - 36924 - 11905: 0xB1C6, - 36925 - 11905: 0xDF53, - 36926 - 11905: 0xD3E2, - 36927 - 11905: 0xDF54, - 36928 - 11905: 0xDF55, - 36929 - 11905: 0xB6DD, - 36930 - 11905: 0xCBEC, - 36931 - 11905: 0xDF56, - 36932 - 11905: 0xE5D7, - 36933 - 11905: 0xDF57, - 36934 - 11905: 0xDF58, - 36935 - 11905: 0xD3F6, - 36936 - 11905: 0xDF59, - 36937 - 11905: 0xDF5A, - 36938 - 11905: 0xDF5B, - 36939 - 11905: 0xDF5C, - 36940 - 11905: 0xDF5D, - 36941 - 11905: 0xB1E9, - 36942 - 11905: 0xDF5E, - 36943 - 11905: 0xB6F4, - 36944 - 11905: 0xE5DA, - 36945 - 11905: 0xE5D8, - 36946 - 11905: 0xE5D9, - 36947 - 11905: 0xB5C0, - 36948 - 11905: 0xDF5F, - 36949 - 11905: 0xDF60, - 36950 - 11905: 0xDF61, - 36951 - 11905: 0xD2C5, - 36952 - 11905: 0xE5DC, - 36953 - 11905: 0xDF62, - 36954 - 11905: 0xDF63, - 36955 - 11905: 0xE5DE, - 36956 - 11905: 0xDF64, - 36957 - 11905: 0xDF65, - 36958 - 11905: 0xDF66, - 36959 - 11905: 0xDF67, - 36960 - 11905: 0xDF68, - 36961 - 11905: 0xDF69, - 36962 - 11905: 0xE5DD, - 36963 - 11905: 0xC7B2, - 36964 - 11905: 0xDF6A, - 36965 - 11905: 0xD2A3, - 36966 - 11905: 0xDF6B, - 36967 - 11905: 0xDF6C, - 36968 - 11905: 0xE5DB, - 36969 - 11905: 0xDF6D, - 36970 - 11905: 0xDF6E, - 36971 - 11905: 0xDF6F, - 36972 - 11905: 0xDF70, - 36973 - 11905: 0xD4E2, - 36974 - 11905: 0xD5DA, - 36975 - 11905: 0xDF71, - 36976 - 11905: 0xDF72, - 36977 - 11905: 0xDF73, - 36978 - 11905: 0xDF74, - 36979 - 11905: 0xDF75, - 36980 - 11905: 0xE5E0, - 36981 - 11905: 0xD7F1, - 36982 - 11905: 0xDF76, - 36983 - 11905: 0xDF77, - 36984 - 11905: 0xDF78, - 36985 - 11905: 0xDF79, - 36986 - 11905: 0xDF7A, - 36987 - 11905: 0xDF7B, - 36988 - 11905: 0xDF7C, - 36989 - 11905: 0xE5E1, - 36990 - 11905: 0xDF7D, - 36991 - 11905: 0xB1DC, - 36992 - 11905: 0xD1FB, - 36993 - 11905: 0xDF7E, - 36994 - 11905: 0xE5E2, - 36995 - 11905: 0xE5E4, - 36996 - 11905: 0xDF80, - 36997 - 11905: 0xDF81, - 36998 - 11905: 0xDF82, - 36999 - 11905: 0xDF83, - 37000 - 11905: 0xE5E3, - 37001 - 11905: 0xDF84, - 37002 - 11905: 0xDF85, - 37003 - 11905: 0xE5E5, - 37004 - 11905: 0xDF86, - 37005 - 11905: 0xDF87, - 37006 - 11905: 0xDF88, - 37007 - 11905: 0xDF89, - 37008 - 11905: 0xDF8A, - 37009 - 11905: 0xD2D8, - 37010 - 11905: 0xDF8B, - 37011 - 11905: 0xB5CB, - 37012 - 11905: 0xDF8C, - 37013 - 11905: 0xE7DF, - 37014 - 11905: 0xDF8D, - 37015 - 11905: 0xDAF5, - 37016 - 11905: 0xDF8E, - 37017 - 11905: 0xDAF8, - 37018 - 11905: 0xDF8F, - 37019 - 11905: 0xDAF6, - 37020 - 11905: 0xDF90, - 37021 - 11905: 0xDAF7, - 37022 - 11905: 0xDF91, - 37023 - 11905: 0xDF92, - 37024 - 11905: 0xDF93, - 37025 - 11905: 0xDAFA, - 37026 - 11905: 0xD0CF, - 37027 - 11905: 0xC4C7, - 37028 - 11905: 0xDF94, - 37029 - 11905: 0xDF95, - 37030 - 11905: 0xB0EE, - 37031 - 11905: 0xDF96, - 37032 - 11905: 0xDF97, - 37033 - 11905: 0xDF98, - 37034 - 11905: 0xD0B0, - 37035 - 11905: 0xDF99, - 37036 - 11905: 0xDAF9, - 37037 - 11905: 0xDF9A, - 37038 - 11905: 0xD3CA, - 37039 - 11905: 0xBAAA, - 37040 - 11905: 0xDBA2, - 37041 - 11905: 0xC7F1, - 37042 - 11905: 0xDF9B, - 37043 - 11905: 0xDAFC, - 37044 - 11905: 0xDAFB, - 37045 - 11905: 0xC9DB, - 37046 - 11905: 0xDAFD, - 37047 - 11905: 0xDF9C, - 37048 - 11905: 0xDBA1, - 37049 - 11905: 0xD7DE, - 37050 - 11905: 0xDAFE, - 37051 - 11905: 0xC1DA, - 37052 - 11905: 0xDF9D, - 37053 - 11905: 0xDF9E, - 37054 - 11905: 0xDBA5, - 37055 - 11905: 0xDF9F, - 37056 - 11905: 0xDFA0, - 37057 - 11905: 0xD3F4, - 37058 - 11905: 0xE040, - 37059 - 11905: 0xE041, - 37060 - 11905: 0xDBA7, - 37061 - 11905: 0xDBA4, - 37062 - 11905: 0xE042, - 37063 - 11905: 0xDBA8, - 37064 - 11905: 0xE043, - 37065 - 11905: 0xE044, - 37066 - 11905: 0xBDBC, - 37067 - 11905: 0xE045, - 37068 - 11905: 0xE046, - 37069 - 11905: 0xE047, - 37070 - 11905: 0xC0C9, - 37071 - 11905: 0xDBA3, - 37072 - 11905: 0xDBA6, - 37073 - 11905: 0xD6A3, - 37074 - 11905: 0xE048, - 37075 - 11905: 0xDBA9, - 37076 - 11905: 0xE049, - 37077 - 11905: 0xE04A, - 37078 - 11905: 0xE04B, - 37079 - 11905: 0xDBAD, - 37080 - 11905: 0xE04C, - 37081 - 11905: 0xE04D, - 37082 - 11905: 0xE04E, - 37083 - 11905: 0xDBAE, - 37084 - 11905: 0xDBAC, - 37085 - 11905: 0xBAC2, - 37086 - 11905: 0xE04F, - 37087 - 11905: 0xE050, - 37088 - 11905: 0xE051, - 37089 - 11905: 0xBFA4, - 37090 - 11905: 0xDBAB, - 37091 - 11905: 0xE052, - 37092 - 11905: 0xE053, - 37093 - 11905: 0xE054, - 37094 - 11905: 0xDBAA, - 37095 - 11905: 0xD4C7, - 37096 - 11905: 0xB2BF, - 37097 - 11905: 0xE055, - 37098 - 11905: 0xE056, - 37099 - 11905: 0xDBAF, - 37100 - 11905: 0xE057, - 37101 - 11905: 0xB9F9, - 37102 - 11905: 0xE058, - 37103 - 11905: 0xDBB0, - 37104 - 11905: 0xE059, - 37105 - 11905: 0xE05A, - 37106 - 11905: 0xE05B, - 37107 - 11905: 0xE05C, - 37108 - 11905: 0xB3BB, - 37109 - 11905: 0xE05D, - 37110 - 11905: 0xE05E, - 37111 - 11905: 0xE05F, - 37112 - 11905: 0xB5A6, - 37113 - 11905: 0xE060, - 37114 - 11905: 0xE061, - 37115 - 11905: 0xE062, - 37116 - 11905: 0xE063, - 37117 - 11905: 0xB6BC, - 37118 - 11905: 0xDBB1, - 37119 - 11905: 0xE064, - 37120 - 11905: 0xE065, - 37121 - 11905: 0xE066, - 37122 - 11905: 0xB6F5, - 37123 - 11905: 0xE067, - 37124 - 11905: 0xDBB2, - 37125 - 11905: 0xE068, - 37126 - 11905: 0xE069, - 37127 - 11905: 0xE06A, - 37128 - 11905: 0xE06B, - 37129 - 11905: 0xE06C, - 37130 - 11905: 0xE06D, - 37131 - 11905: 0xE06E, - 37132 - 11905: 0xE06F, - 37133 - 11905: 0xE070, - 37134 - 11905: 0xE071, - 37135 - 11905: 0xE072, - 37136 - 11905: 0xE073, - 37137 - 11905: 0xE074, - 37138 - 11905: 0xE075, - 37139 - 11905: 0xE076, - 37140 - 11905: 0xE077, - 37141 - 11905: 0xE078, - 37142 - 11905: 0xE079, - 37143 - 11905: 0xE07A, - 37144 - 11905: 0xE07B, - 37145 - 11905: 0xB1C9, - 37146 - 11905: 0xE07C, - 37147 - 11905: 0xE07D, - 37148 - 11905: 0xE07E, - 37149 - 11905: 0xE080, - 37150 - 11905: 0xDBB4, - 37151 - 11905: 0xE081, - 37152 - 11905: 0xE082, - 37153 - 11905: 0xE083, - 37154 - 11905: 0xDBB3, - 37155 - 11905: 0xDBB5, - 37156 - 11905: 0xE084, - 37157 - 11905: 0xE085, - 37158 - 11905: 0xE086, - 37159 - 11905: 0xE087, - 37160 - 11905: 0xE088, - 37161 - 11905: 0xE089, - 37162 - 11905: 0xE08A, - 37163 - 11905: 0xE08B, - 37164 - 11905: 0xE08C, - 37165 - 11905: 0xE08D, - 37166 - 11905: 0xE08E, - 37167 - 11905: 0xDBB7, - 37168 - 11905: 0xE08F, - 37169 - 11905: 0xDBB6, - 37170 - 11905: 0xE090, - 37171 - 11905: 0xE091, - 37172 - 11905: 0xE092, - 37173 - 11905: 0xE093, - 37174 - 11905: 0xE094, - 37175 - 11905: 0xE095, - 37176 - 11905: 0xE096, - 37177 - 11905: 0xDBB8, - 37178 - 11905: 0xE097, - 37179 - 11905: 0xE098, - 37180 - 11905: 0xE099, - 37181 - 11905: 0xE09A, - 37182 - 11905: 0xE09B, - 37183 - 11905: 0xE09C, - 37184 - 11905: 0xE09D, - 37185 - 11905: 0xE09E, - 37186 - 11905: 0xE09F, - 37187 - 11905: 0xDBB9, - 37188 - 11905: 0xE0A0, - 37189 - 11905: 0xE140, - 37190 - 11905: 0xDBBA, - 37191 - 11905: 0xE141, - 37192 - 11905: 0xE142, - 37193 - 11905: 0xD3CF, - 37194 - 11905: 0xF4FA, - 37195 - 11905: 0xC7F5, - 37196 - 11905: 0xD7C3, - 37197 - 11905: 0xC5E4, - 37198 - 11905: 0xF4FC, - 37199 - 11905: 0xF4FD, - 37200 - 11905: 0xF4FB, - 37201 - 11905: 0xE143, - 37202 - 11905: 0xBEC6, - 37203 - 11905: 0xE144, - 37204 - 11905: 0xE145, - 37205 - 11905: 0xE146, - 37206 - 11905: 0xE147, - 37207 - 11905: 0xD0EF, - 37208 - 11905: 0xE148, - 37209 - 11905: 0xE149, - 37210 - 11905: 0xB7D3, - 37211 - 11905: 0xE14A, - 37212 - 11905: 0xE14B, - 37213 - 11905: 0xD4CD, - 37214 - 11905: 0xCCAA, - 37215 - 11905: 0xE14C, - 37216 - 11905: 0xE14D, - 37217 - 11905: 0xF5A2, - 37218 - 11905: 0xF5A1, - 37219 - 11905: 0xBAA8, - 37220 - 11905: 0xF4FE, - 37221 - 11905: 0xCBD6, - 37222 - 11905: 0xE14E, - 37223 - 11905: 0xE14F, - 37224 - 11905: 0xE150, - 37225 - 11905: 0xF5A4, - 37226 - 11905: 0xC0D2, - 37227 - 11905: 0xE151, - 37228 - 11905: 0xB3EA, - 37229 - 11905: 0xE152, - 37230 - 11905: 0xCDAA, - 37231 - 11905: 0xF5A5, - 37232 - 11905: 0xF5A3, - 37233 - 11905: 0xBDB4, - 37234 - 11905: 0xF5A8, - 37235 - 11905: 0xE153, - 37236 - 11905: 0xF5A9, - 37237 - 11905: 0xBDCD, - 37238 - 11905: 0xC3B8, - 37239 - 11905: 0xBFE1, - 37240 - 11905: 0xCBE1, - 37241 - 11905: 0xF5AA, - 37242 - 11905: 0xE154, - 37243 - 11905: 0xE155, - 37244 - 11905: 0xE156, - 37245 - 11905: 0xF5A6, - 37246 - 11905: 0xF5A7, - 37247 - 11905: 0xC4F0, - 37248 - 11905: 0xE157, - 37249 - 11905: 0xE158, - 37250 - 11905: 0xE159, - 37251 - 11905: 0xE15A, - 37252 - 11905: 0xE15B, - 37253 - 11905: 0xF5AC, - 37254 - 11905: 0xE15C, - 37255 - 11905: 0xB4BC, - 37256 - 11905: 0xE15D, - 37257 - 11905: 0xD7ED, - 37258 - 11905: 0xE15E, - 37259 - 11905: 0xB4D7, - 37260 - 11905: 0xF5AB, - 37261 - 11905: 0xF5AE, - 37262 - 11905: 0xE15F, - 37263 - 11905: 0xE160, - 37264 - 11905: 0xF5AD, - 37265 - 11905: 0xF5AF, - 37266 - 11905: 0xD0D1, - 37267 - 11905: 0xE161, - 37268 - 11905: 0xE162, - 37269 - 11905: 0xE163, - 37270 - 11905: 0xE164, - 37271 - 11905: 0xE165, - 37272 - 11905: 0xE166, - 37273 - 11905: 0xE167, - 37274 - 11905: 0xC3D1, - 37275 - 11905: 0xC8A9, - 37276 - 11905: 0xE168, - 37277 - 11905: 0xE169, - 37278 - 11905: 0xE16A, - 37279 - 11905: 0xE16B, - 37280 - 11905: 0xE16C, - 37281 - 11905: 0xE16D, - 37282 - 11905: 0xF5B0, - 37283 - 11905: 0xF5B1, - 37284 - 11905: 0xE16E, - 37285 - 11905: 0xE16F, - 37286 - 11905: 0xE170, - 37287 - 11905: 0xE171, - 37288 - 11905: 0xE172, - 37289 - 11905: 0xE173, - 37290 - 11905: 0xF5B2, - 37291 - 11905: 0xE174, - 37292 - 11905: 0xE175, - 37293 - 11905: 0xF5B3, - 37294 - 11905: 0xF5B4, - 37295 - 11905: 0xF5B5, - 37296 - 11905: 0xE176, - 37297 - 11905: 0xE177, - 37298 - 11905: 0xE178, - 37299 - 11905: 0xE179, - 37300 - 11905: 0xF5B7, - 37301 - 11905: 0xF5B6, - 37302 - 11905: 0xE17A, - 37303 - 11905: 0xE17B, - 37304 - 11905: 0xE17C, - 37305 - 11905: 0xE17D, - 37306 - 11905: 0xF5B8, - 37307 - 11905: 0xE17E, - 37308 - 11905: 0xE180, - 37309 - 11905: 0xE181, - 37310 - 11905: 0xE182, - 37311 - 11905: 0xE183, - 37312 - 11905: 0xE184, - 37313 - 11905: 0xE185, - 37314 - 11905: 0xE186, - 37315 - 11905: 0xE187, - 37316 - 11905: 0xE188, - 37317 - 11905: 0xE189, - 37318 - 11905: 0xE18A, - 37319 - 11905: 0xB2C9, - 37320 - 11905: 0xE18B, - 37321 - 11905: 0xD3D4, - 37322 - 11905: 0xCACD, - 37323 - 11905: 0xE18C, - 37324 - 11905: 0xC0EF, - 37325 - 11905: 0xD6D8, - 37326 - 11905: 0xD2B0, - 37327 - 11905: 0xC1BF, - 37328 - 11905: 0xE18D, - 37329 - 11905: 0xBDF0, - 37330 - 11905: 0xE18E, - 37331 - 11905: 0xE18F, - 37332 - 11905: 0xE190, - 37333 - 11905: 0xE191, - 37334 - 11905: 0xE192, - 37335 - 11905: 0xE193, - 37336 - 11905: 0xE194, - 37337 - 11905: 0xE195, - 37338 - 11905: 0xE196, - 37339 - 11905: 0xE197, - 37340 - 11905: 0xB8AA, - 37341 - 11905: 0xE198, - 37342 - 11905: 0xE199, - 37343 - 11905: 0xE19A, - 37344 - 11905: 0xE19B, - 37345 - 11905: 0xE19C, - 37346 - 11905: 0xE19D, - 37347 - 11905: 0xE19E, - 37348 - 11905: 0xE19F, - 37349 - 11905: 0xE1A0, - 37350 - 11905: 0xE240, - 37351 - 11905: 0xE241, - 37352 - 11905: 0xE242, - 37353 - 11905: 0xE243, - 37354 - 11905: 0xE244, - 37355 - 11905: 0xE245, - 37356 - 11905: 0xE246, - 37357 - 11905: 0xE247, - 37358 - 11905: 0xE248, - 37359 - 11905: 0xE249, - 37360 - 11905: 0xE24A, - 37361 - 11905: 0xE24B, - 37362 - 11905: 0xE24C, - 37363 - 11905: 0xE24D, - 37364 - 11905: 0xE24E, - 37365 - 11905: 0xE24F, - 37366 - 11905: 0xE250, - 37367 - 11905: 0xE251, - 37368 - 11905: 0xE252, - 37369 - 11905: 0xE253, - 37370 - 11905: 0xE254, - 37371 - 11905: 0xE255, - 37372 - 11905: 0xE256, - 37373 - 11905: 0xE257, - 37374 - 11905: 0xE258, - 37375 - 11905: 0xE259, - 37376 - 11905: 0xE25A, - 37377 - 11905: 0xE25B, - 37378 - 11905: 0xE25C, - 37379 - 11905: 0xE25D, - 37380 - 11905: 0xE25E, - 37381 - 11905: 0xE25F, - 37382 - 11905: 0xE260, - 37383 - 11905: 0xE261, - 37384 - 11905: 0xE262, - 37385 - 11905: 0xE263, - 37386 - 11905: 0xE264, - 37387 - 11905: 0xE265, - 37388 - 11905: 0xE266, - 37389 - 11905: 0xE267, - 37390 - 11905: 0xE268, - 37391 - 11905: 0xE269, - 37392 - 11905: 0xE26A, - 37393 - 11905: 0xE26B, - 37394 - 11905: 0xE26C, - 37395 - 11905: 0xE26D, - 37396 - 11905: 0xE26E, - 37397 - 11905: 0xE26F, - 37398 - 11905: 0xE270, - 37399 - 11905: 0xE271, - 37400 - 11905: 0xE272, - 37401 - 11905: 0xE273, - 37402 - 11905: 0xE274, - 37403 - 11905: 0xE275, - 37404 - 11905: 0xE276, - 37405 - 11905: 0xE277, - 37406 - 11905: 0xE278, - 37407 - 11905: 0xE279, - 37408 - 11905: 0xE27A, - 37409 - 11905: 0xE27B, - 37410 - 11905: 0xE27C, - 37411 - 11905: 0xE27D, - 37412 - 11905: 0xE27E, - 37413 - 11905: 0xE280, - 37414 - 11905: 0xE281, - 37415 - 11905: 0xE282, - 37416 - 11905: 0xE283, - 37417 - 11905: 0xE284, - 37418 - 11905: 0xE285, - 37419 - 11905: 0xE286, - 37420 - 11905: 0xE287, - 37421 - 11905: 0xE288, - 37422 - 11905: 0xE289, - 37423 - 11905: 0xE28A, - 37424 - 11905: 0xE28B, - 37425 - 11905: 0xE28C, - 37426 - 11905: 0xE28D, - 37427 - 11905: 0xE28E, - 37428 - 11905: 0xE28F, - 37429 - 11905: 0xE290, - 37430 - 11905: 0xE291, - 37431 - 11905: 0xE292, - 37432 - 11905: 0xE293, - 37433 - 11905: 0xE294, - 37434 - 11905: 0xE295, - 37435 - 11905: 0xE296, - 37436 - 11905: 0xE297, - 37437 - 11905: 0xE298, - 37438 - 11905: 0xE299, - 37439 - 11905: 0xE29A, - 37440 - 11905: 0xE29B, - 37441 - 11905: 0xE29C, - 37442 - 11905: 0xE29D, - 37443 - 11905: 0xE29E, - 37444 - 11905: 0xE29F, - 37445 - 11905: 0xE2A0, - 37446 - 11905: 0xE340, - 37447 - 11905: 0xE341, - 37448 - 11905: 0xE342, - 37449 - 11905: 0xE343, - 37450 - 11905: 0xE344, - 37451 - 11905: 0xE345, - 37452 - 11905: 0xE346, - 37453 - 11905: 0xE347, - 37454 - 11905: 0xE348, - 37455 - 11905: 0xE349, - 37456 - 11905: 0xE34A, - 37457 - 11905: 0xE34B, - 37458 - 11905: 0xE34C, - 37459 - 11905: 0xE34D, - 37460 - 11905: 0xE34E, - 37461 - 11905: 0xE34F, - 37462 - 11905: 0xE350, - 37463 - 11905: 0xE351, - 37464 - 11905: 0xE352, - 37465 - 11905: 0xE353, - 37466 - 11905: 0xE354, - 37467 - 11905: 0xE355, - 37468 - 11905: 0xE356, - 37469 - 11905: 0xE357, - 37470 - 11905: 0xE358, - 37471 - 11905: 0xE359, - 37472 - 11905: 0xE35A, - 37473 - 11905: 0xE35B, - 37474 - 11905: 0xE35C, - 37475 - 11905: 0xE35D, - 37476 - 11905: 0xE35E, - 37477 - 11905: 0xE35F, - 37478 - 11905: 0xE360, - 37479 - 11905: 0xE361, - 37480 - 11905: 0xE362, - 37481 - 11905: 0xE363, - 37482 - 11905: 0xE364, - 37483 - 11905: 0xE365, - 37484 - 11905: 0xE366, - 37485 - 11905: 0xE367, - 37486 - 11905: 0xE368, - 37487 - 11905: 0xE369, - 37488 - 11905: 0xE36A, - 37489 - 11905: 0xE36B, - 37490 - 11905: 0xE36C, - 37491 - 11905: 0xE36D, - 37492 - 11905: 0xBCF8, - 37493 - 11905: 0xE36E, - 37494 - 11905: 0xE36F, - 37495 - 11905: 0xE370, - 37496 - 11905: 0xE371, - 37497 - 11905: 0xE372, - 37498 - 11905: 0xE373, - 37499 - 11905: 0xE374, - 37500 - 11905: 0xE375, - 37501 - 11905: 0xE376, - 37502 - 11905: 0xE377, - 37503 - 11905: 0xE378, - 37504 - 11905: 0xE379, - 37505 - 11905: 0xE37A, - 37506 - 11905: 0xE37B, - 37507 - 11905: 0xE37C, - 37508 - 11905: 0xE37D, - 37509 - 11905: 0xE37E, - 37510 - 11905: 0xE380, - 37511 - 11905: 0xE381, - 37512 - 11905: 0xE382, - 37513 - 11905: 0xE383, - 37514 - 11905: 0xE384, - 37515 - 11905: 0xE385, - 37516 - 11905: 0xE386, - 37517 - 11905: 0xE387, - 37518 - 11905: 0xF6C6, - 37519 - 11905: 0xE388, - 37520 - 11905: 0xE389, - 37521 - 11905: 0xE38A, - 37522 - 11905: 0xE38B, - 37523 - 11905: 0xE38C, - 37524 - 11905: 0xE38D, - 37525 - 11905: 0xE38E, - 37526 - 11905: 0xE38F, - 37527 - 11905: 0xE390, - 37528 - 11905: 0xE391, - 37529 - 11905: 0xE392, - 37530 - 11905: 0xE393, - 37531 - 11905: 0xE394, - 37532 - 11905: 0xE395, - 37533 - 11905: 0xE396, - 37534 - 11905: 0xE397, - 37535 - 11905: 0xE398, - 37536 - 11905: 0xE399, - 37537 - 11905: 0xE39A, - 37538 - 11905: 0xE39B, - 37539 - 11905: 0xE39C, - 37540 - 11905: 0xE39D, - 37541 - 11905: 0xE39E, - 37542 - 11905: 0xE39F, - 37543 - 11905: 0xE3A0, - 37544 - 11905: 0xE440, - 37545 - 11905: 0xE441, - 37546 - 11905: 0xE442, - 37547 - 11905: 0xE443, - 37548 - 11905: 0xE444, - 37549 - 11905: 0xE445, - 37550 - 11905: 0xF6C7, - 37551 - 11905: 0xE446, - 37552 - 11905: 0xE447, - 37553 - 11905: 0xE448, - 37554 - 11905: 0xE449, - 37555 - 11905: 0xE44A, - 37556 - 11905: 0xE44B, - 37557 - 11905: 0xE44C, - 37558 - 11905: 0xE44D, - 37559 - 11905: 0xE44E, - 37560 - 11905: 0xE44F, - 37561 - 11905: 0xE450, - 37562 - 11905: 0xE451, - 37563 - 11905: 0xE452, - 37564 - 11905: 0xE453, - 37565 - 11905: 0xE454, - 37566 - 11905: 0xE455, - 37567 - 11905: 0xE456, - 37568 - 11905: 0xE457, - 37569 - 11905: 0xE458, - 37570 - 11905: 0xE459, - 37571 - 11905: 0xE45A, - 37572 - 11905: 0xE45B, - 37573 - 11905: 0xE45C, - 37574 - 11905: 0xE45D, - 37575 - 11905: 0xE45E, - 37576 - 11905: 0xF6C8, - 37577 - 11905: 0xE45F, - 37578 - 11905: 0xE460, - 37579 - 11905: 0xE461, - 37580 - 11905: 0xE462, - 37581 - 11905: 0xE463, - 37582 - 11905: 0xE464, - 37583 - 11905: 0xE465, - 37584 - 11905: 0xE466, - 37585 - 11905: 0xE467, - 37586 - 11905: 0xE468, - 37587 - 11905: 0xE469, - 37588 - 11905: 0xE46A, - 37589 - 11905: 0xE46B, - 37590 - 11905: 0xE46C, - 37591 - 11905: 0xE46D, - 37592 - 11905: 0xE46E, - 37593 - 11905: 0xE46F, - 37594 - 11905: 0xE470, - 37595 - 11905: 0xE471, - 37596 - 11905: 0xE472, - 37597 - 11905: 0xE473, - 37598 - 11905: 0xE474, - 37599 - 11905: 0xE475, - 37600 - 11905: 0xE476, - 37601 - 11905: 0xE477, - 37602 - 11905: 0xE478, - 37603 - 11905: 0xE479, - 37604 - 11905: 0xE47A, - 37605 - 11905: 0xE47B, - 37606 - 11905: 0xE47C, - 37607 - 11905: 0xE47D, - 37608 - 11905: 0xE47E, - 37609 - 11905: 0xE480, - 37610 - 11905: 0xE481, - 37611 - 11905: 0xE482, - 37612 - 11905: 0xE483, - 37613 - 11905: 0xE484, - 37614 - 11905: 0xE485, - 37615 - 11905: 0xE486, - 37616 - 11905: 0xE487, - 37617 - 11905: 0xE488, - 37618 - 11905: 0xE489, - 37619 - 11905: 0xE48A, - 37620 - 11905: 0xE48B, - 37621 - 11905: 0xE48C, - 37622 - 11905: 0xE48D, - 37623 - 11905: 0xE48E, - 37624 - 11905: 0xE48F, - 37625 - 11905: 0xE490, - 37626 - 11905: 0xE491, - 37627 - 11905: 0xE492, - 37628 - 11905: 0xE493, - 37629 - 11905: 0xE494, - 37630 - 11905: 0xE495, - 37631 - 11905: 0xE496, - 37632 - 11905: 0xE497, - 37633 - 11905: 0xE498, - 37634 - 11905: 0xE499, - 37635 - 11905: 0xE49A, - 37636 - 11905: 0xE49B, - 37637 - 11905: 0xE49C, - 37638 - 11905: 0xE49D, - 37639 - 11905: 0xE49E, - 37640 - 11905: 0xE49F, - 37641 - 11905: 0xE4A0, - 37642 - 11905: 0xE540, - 37643 - 11905: 0xE541, - 37644 - 11905: 0xE542, - 37645 - 11905: 0xE543, - 37646 - 11905: 0xE544, - 37647 - 11905: 0xE545, - 37648 - 11905: 0xE546, - 37649 - 11905: 0xE547, - 37650 - 11905: 0xE548, - 37651 - 11905: 0xE549, - 37652 - 11905: 0xE54A, - 37653 - 11905: 0xE54B, - 37654 - 11905: 0xE54C, - 37655 - 11905: 0xE54D, - 37656 - 11905: 0xE54E, - 37657 - 11905: 0xE54F, - 37658 - 11905: 0xE550, - 37659 - 11905: 0xE551, - 37660 - 11905: 0xE552, - 37661 - 11905: 0xE553, - 37662 - 11905: 0xE554, - 37663 - 11905: 0xE555, - 37664 - 11905: 0xE556, - 37665 - 11905: 0xE557, - 37666 - 11905: 0xE558, - 37667 - 11905: 0xE559, - 37668 - 11905: 0xE55A, - 37669 - 11905: 0xE55B, - 37670 - 11905: 0xE55C, - 37671 - 11905: 0xE55D, - 37672 - 11905: 0xE55E, - 37673 - 11905: 0xE55F, - 37674 - 11905: 0xE560, - 37675 - 11905: 0xE561, - 37676 - 11905: 0xE562, - 37677 - 11905: 0xE563, - 37678 - 11905: 0xE564, - 37679 - 11905: 0xE565, - 37680 - 11905: 0xE566, - 37681 - 11905: 0xE567, - 37682 - 11905: 0xE568, - 37683 - 11905: 0xE569, - 37684 - 11905: 0xE56A, - 37685 - 11905: 0xE56B, - 37686 - 11905: 0xE56C, - 37687 - 11905: 0xE56D, - 37688 - 11905: 0xE56E, - 37689 - 11905: 0xE56F, - 37690 - 11905: 0xE570, - 37691 - 11905: 0xE571, - 37692 - 11905: 0xE572, - 37693 - 11905: 0xE573, - 37694 - 11905: 0xF6C9, - 37695 - 11905: 0xE574, - 37696 - 11905: 0xE575, - 37697 - 11905: 0xE576, - 37698 - 11905: 0xE577, - 37699 - 11905: 0xE578, - 37700 - 11905: 0xE579, - 37701 - 11905: 0xE57A, - 37702 - 11905: 0xE57B, - 37703 - 11905: 0xE57C, - 37704 - 11905: 0xE57D, - 37705 - 11905: 0xE57E, - 37706 - 11905: 0xE580, - 37707 - 11905: 0xE581, - 37708 - 11905: 0xE582, - 37709 - 11905: 0xE583, - 37710 - 11905: 0xE584, - 37711 - 11905: 0xE585, - 37712 - 11905: 0xE586, - 37713 - 11905: 0xE587, - 37714 - 11905: 0xE588, - 37715 - 11905: 0xE589, - 37716 - 11905: 0xE58A, - 37717 - 11905: 0xE58B, - 37718 - 11905: 0xE58C, - 37719 - 11905: 0xE58D, - 37720 - 11905: 0xE58E, - 37721 - 11905: 0xE58F, - 37722 - 11905: 0xE590, - 37723 - 11905: 0xE591, - 37724 - 11905: 0xE592, - 37725 - 11905: 0xE593, - 37726 - 11905: 0xE594, - 37727 - 11905: 0xE595, - 37728 - 11905: 0xE596, - 37729 - 11905: 0xE597, - 37730 - 11905: 0xE598, - 37731 - 11905: 0xE599, - 37732 - 11905: 0xE59A, - 37733 - 11905: 0xE59B, - 37734 - 11905: 0xE59C, - 37735 - 11905: 0xE59D, - 37736 - 11905: 0xE59E, - 37737 - 11905: 0xE59F, - 37738 - 11905: 0xF6CA, - 37739 - 11905: 0xE5A0, - 37740 - 11905: 0xE640, - 37741 - 11905: 0xE641, - 37742 - 11905: 0xE642, - 37743 - 11905: 0xE643, - 37744 - 11905: 0xE644, - 37745 - 11905: 0xE645, - 37746 - 11905: 0xE646, - 37747 - 11905: 0xE647, - 37748 - 11905: 0xE648, - 37749 - 11905: 0xE649, - 37750 - 11905: 0xE64A, - 37751 - 11905: 0xE64B, - 37752 - 11905: 0xE64C, - 37753 - 11905: 0xE64D, - 37754 - 11905: 0xE64E, - 37755 - 11905: 0xE64F, - 37756 - 11905: 0xE650, - 37757 - 11905: 0xE651, - 37758 - 11905: 0xE652, - 37759 - 11905: 0xE653, - 37760 - 11905: 0xE654, - 37761 - 11905: 0xE655, - 37762 - 11905: 0xE656, - 37763 - 11905: 0xE657, - 37764 - 11905: 0xE658, - 37765 - 11905: 0xE659, - 37766 - 11905: 0xE65A, - 37767 - 11905: 0xE65B, - 37768 - 11905: 0xE65C, - 37769 - 11905: 0xE65D, - 37770 - 11905: 0xE65E, - 37771 - 11905: 0xE65F, - 37772 - 11905: 0xE660, - 37773 - 11905: 0xE661, - 37774 - 11905: 0xE662, - 37775 - 11905: 0xF6CC, - 37776 - 11905: 0xE663, - 37777 - 11905: 0xE664, - 37778 - 11905: 0xE665, - 37779 - 11905: 0xE666, - 37780 - 11905: 0xE667, - 37781 - 11905: 0xE668, - 37782 - 11905: 0xE669, - 37783 - 11905: 0xE66A, - 37784 - 11905: 0xE66B, - 37785 - 11905: 0xE66C, - 37786 - 11905: 0xE66D, - 37787 - 11905: 0xE66E, - 37788 - 11905: 0xE66F, - 37789 - 11905: 0xE670, - 37790 - 11905: 0xE671, - 37791 - 11905: 0xE672, - 37792 - 11905: 0xE673, - 37793 - 11905: 0xE674, - 37794 - 11905: 0xE675, - 37795 - 11905: 0xE676, - 37796 - 11905: 0xE677, - 37797 - 11905: 0xE678, - 37798 - 11905: 0xE679, - 37799 - 11905: 0xE67A, - 37800 - 11905: 0xE67B, - 37801 - 11905: 0xE67C, - 37802 - 11905: 0xE67D, - 37803 - 11905: 0xE67E, - 37804 - 11905: 0xE680, - 37805 - 11905: 0xE681, - 37806 - 11905: 0xE682, - 37807 - 11905: 0xE683, - 37808 - 11905: 0xE684, - 37809 - 11905: 0xE685, - 37810 - 11905: 0xE686, - 37811 - 11905: 0xE687, - 37812 - 11905: 0xE688, - 37813 - 11905: 0xE689, - 37814 - 11905: 0xE68A, - 37815 - 11905: 0xE68B, - 37816 - 11905: 0xE68C, - 37817 - 11905: 0xE68D, - 37818 - 11905: 0xE68E, - 37819 - 11905: 0xE68F, - 37820 - 11905: 0xE690, - 37821 - 11905: 0xE691, - 37822 - 11905: 0xE692, - 37823 - 11905: 0xE693, - 37824 - 11905: 0xE694, - 37825 - 11905: 0xE695, - 37826 - 11905: 0xE696, - 37827 - 11905: 0xE697, - 37828 - 11905: 0xE698, - 37829 - 11905: 0xE699, - 37830 - 11905: 0xE69A, - 37831 - 11905: 0xE69B, - 37832 - 11905: 0xE69C, - 37833 - 11905: 0xE69D, - 37834 - 11905: 0xF6CB, - 37835 - 11905: 0xE69E, - 37836 - 11905: 0xE69F, - 37837 - 11905: 0xE6A0, - 37838 - 11905: 0xE740, - 37839 - 11905: 0xE741, - 37840 - 11905: 0xE742, - 37841 - 11905: 0xE743, - 37842 - 11905: 0xE744, - 37843 - 11905: 0xE745, - 37844 - 11905: 0xE746, - 37845 - 11905: 0xE747, - 37846 - 11905: 0xF7E9, - 37847 - 11905: 0xE748, - 37848 - 11905: 0xE749, - 37849 - 11905: 0xE74A, - 37850 - 11905: 0xE74B, - 37851 - 11905: 0xE74C, - 37852 - 11905: 0xE74D, - 37853 - 11905: 0xE74E, - 37854 - 11905: 0xE74F, - 37855 - 11905: 0xE750, - 37856 - 11905: 0xE751, - 37857 - 11905: 0xE752, - 37858 - 11905: 0xE753, - 37859 - 11905: 0xE754, - 37860 - 11905: 0xE755, - 37861 - 11905: 0xE756, - 37862 - 11905: 0xE757, - 37863 - 11905: 0xE758, - 37864 - 11905: 0xE759, - 37865 - 11905: 0xE75A, - 37866 - 11905: 0xE75B, - 37867 - 11905: 0xE75C, - 37868 - 11905: 0xE75D, - 37869 - 11905: 0xE75E, - 37870 - 11905: 0xE75F, - 37871 - 11905: 0xE760, - 37872 - 11905: 0xE761, - 37873 - 11905: 0xE762, - 37874 - 11905: 0xE763, - 37875 - 11905: 0xE764, - 37876 - 11905: 0xE765, - 37877 - 11905: 0xE766, - 37878 - 11905: 0xE767, - 37879 - 11905: 0xE768, - 37880 - 11905: 0xE769, - 37881 - 11905: 0xE76A, - 37882 - 11905: 0xE76B, - 37883 - 11905: 0xE76C, - 37884 - 11905: 0xE76D, - 37885 - 11905: 0xE76E, - 37886 - 11905: 0xE76F, - 37887 - 11905: 0xE770, - 37888 - 11905: 0xE771, - 37889 - 11905: 0xE772, - 37890 - 11905: 0xE773, - 37891 - 11905: 0xE774, - 37892 - 11905: 0xE775, - 37893 - 11905: 0xE776, - 37894 - 11905: 0xE777, - 37895 - 11905: 0xE778, - 37896 - 11905: 0xE779, - 37897 - 11905: 0xE77A, - 37898 - 11905: 0xE77B, - 37899 - 11905: 0xE77C, - 37900 - 11905: 0xE77D, - 37901 - 11905: 0xE77E, - 37902 - 11905: 0xE780, - 37903 - 11905: 0xE781, - 37904 - 11905: 0xE782, - 37905 - 11905: 0xE783, - 37906 - 11905: 0xE784, - 37907 - 11905: 0xE785, - 37908 - 11905: 0xE786, - 37909 - 11905: 0xE787, - 37910 - 11905: 0xE788, - 37911 - 11905: 0xE789, - 37912 - 11905: 0xE78A, - 37913 - 11905: 0xE78B, - 37914 - 11905: 0xE78C, - 37915 - 11905: 0xE78D, - 37916 - 11905: 0xE78E, - 37917 - 11905: 0xE78F, - 37918 - 11905: 0xE790, - 37919 - 11905: 0xE791, - 37920 - 11905: 0xE792, - 37921 - 11905: 0xE793, - 37922 - 11905: 0xE794, - 37923 - 11905: 0xE795, - 37924 - 11905: 0xE796, - 37925 - 11905: 0xE797, - 37926 - 11905: 0xE798, - 37927 - 11905: 0xE799, - 37928 - 11905: 0xE79A, - 37929 - 11905: 0xE79B, - 37930 - 11905: 0xE79C, - 37931 - 11905: 0xE79D, - 37932 - 11905: 0xE79E, - 37933 - 11905: 0xE79F, - 37934 - 11905: 0xE7A0, - 37935 - 11905: 0xE840, - 37936 - 11905: 0xE841, - 37937 - 11905: 0xE842, - 37938 - 11905: 0xE843, - 37939 - 11905: 0xE844, - 37940 - 11905: 0xE845, - 37941 - 11905: 0xE846, - 37942 - 11905: 0xE847, - 37943 - 11905: 0xE848, - 37944 - 11905: 0xE849, - 37945 - 11905: 0xE84A, - 37946 - 11905: 0xE84B, - 37947 - 11905: 0xE84C, - 37948 - 11905: 0xE84D, - 37949 - 11905: 0xE84E, - 37950 - 11905: 0xF6CD, - 37951 - 11905: 0xE84F, - 37952 - 11905: 0xE850, - 37953 - 11905: 0xE851, - 37954 - 11905: 0xE852, - 37955 - 11905: 0xE853, - 37956 - 11905: 0xE854, - 37957 - 11905: 0xE855, - 37958 - 11905: 0xE856, - 37959 - 11905: 0xE857, - 37960 - 11905: 0xE858, - 37961 - 11905: 0xE859, - 37962 - 11905: 0xE85A, - 37963 - 11905: 0xE85B, - 37964 - 11905: 0xE85C, - 37965 - 11905: 0xE85D, - 37966 - 11905: 0xE85E, - 37967 - 11905: 0xE85F, - 37968 - 11905: 0xE860, - 37969 - 11905: 0xE861, - 37970 - 11905: 0xE862, - 37971 - 11905: 0xE863, - 37972 - 11905: 0xE864, - 37973 - 11905: 0xE865, - 37974 - 11905: 0xE866, - 37975 - 11905: 0xE867, - 37976 - 11905: 0xE868, - 37977 - 11905: 0xE869, - 37978 - 11905: 0xE86A, - 37979 - 11905: 0xE86B, - 37980 - 11905: 0xE86C, - 37981 - 11905: 0xE86D, - 37982 - 11905: 0xE86E, - 37983 - 11905: 0xE86F, - 37984 - 11905: 0xE870, - 37985 - 11905: 0xE871, - 37986 - 11905: 0xE872, - 37987 - 11905: 0xE873, - 37988 - 11905: 0xE874, - 37989 - 11905: 0xE875, - 37990 - 11905: 0xE876, - 37991 - 11905: 0xE877, - 37992 - 11905: 0xE878, - 37993 - 11905: 0xE879, - 37994 - 11905: 0xE87A, - 37995 - 11905: 0xF6CE, - 37996 - 11905: 0xE87B, - 37997 - 11905: 0xE87C, - 37998 - 11905: 0xE87D, - 37999 - 11905: 0xE87E, - 38000 - 11905: 0xE880, - 38001 - 11905: 0xE881, - 38002 - 11905: 0xE882, - 38003 - 11905: 0xE883, - 38004 - 11905: 0xE884, - 38005 - 11905: 0xE885, - 38006 - 11905: 0xE886, - 38007 - 11905: 0xE887, - 38008 - 11905: 0xE888, - 38009 - 11905: 0xE889, - 38010 - 11905: 0xE88A, - 38011 - 11905: 0xE88B, - 38012 - 11905: 0xE88C, - 38013 - 11905: 0xE88D, - 38014 - 11905: 0xE88E, - 38015 - 11905: 0xE88F, - 38016 - 11905: 0xE890, - 38017 - 11905: 0xE891, - 38018 - 11905: 0xE892, - 38019 - 11905: 0xE893, - 38020 - 11905: 0xE894, - 38021 - 11905: 0xEEC4, - 38022 - 11905: 0xEEC5, - 38023 - 11905: 0xEEC6, - 38024 - 11905: 0xD5EB, - 38025 - 11905: 0xB6A4, - 38026 - 11905: 0xEEC8, - 38027 - 11905: 0xEEC7, - 38028 - 11905: 0xEEC9, - 38029 - 11905: 0xEECA, - 38030 - 11905: 0xC7A5, - 38031 - 11905: 0xEECB, - 38032 - 11905: 0xEECC, - 38033 - 11905: 0xE895, - 38034 - 11905: 0xB7B0, - 38035 - 11905: 0xB5F6, - 38036 - 11905: 0xEECD, - 38037 - 11905: 0xEECF, - 38038 - 11905: 0xE896, - 38039 - 11905: 0xEECE, - 38040 - 11905: 0xE897, - 38041 - 11905: 0xB8C6, - 38042 - 11905: 0xEED0, - 38043 - 11905: 0xEED1, - 38044 - 11905: 0xEED2, - 38045 - 11905: 0xB6DB, - 38046 - 11905: 0xB3AE, - 38047 - 11905: 0xD6D3, - 38048 - 11905: 0xC4C6, - 38049 - 11905: 0xB1B5, - 38050 - 11905: 0xB8D6, - 38051 - 11905: 0xEED3, - 38052 - 11905: 0xEED4, - 38053 - 11905: 0xD4BF, - 38054 - 11905: 0xC7D5, - 38055 - 11905: 0xBEFB, - 38056 - 11905: 0xCED9, - 38057 - 11905: 0xB9B3, - 38058 - 11905: 0xEED6, - 38059 - 11905: 0xEED5, - 38060 - 11905: 0xEED8, - 38061 - 11905: 0xEED7, - 38062 - 11905: 0xC5A5, - 38063 - 11905: 0xEED9, - 38064 - 11905: 0xEEDA, - 38065 - 11905: 0xC7AE, - 38066 - 11905: 0xEEDB, - 38067 - 11905: 0xC7AF, - 38068 - 11905: 0xEEDC, - 38069 - 11905: 0xB2A7, - 38070 - 11905: 0xEEDD, - 38071 - 11905: 0xEEDE, - 38072 - 11905: 0xEEDF, - 38073 - 11905: 0xEEE0, - 38074 - 11905: 0xEEE1, - 38075 - 11905: 0xD7EA, - 38076 - 11905: 0xEEE2, - 38077 - 11905: 0xEEE3, - 38078 - 11905: 0xBCD8, - 38079 - 11905: 0xEEE4, - 38080 - 11905: 0xD3CB, - 38081 - 11905: 0xCCFA, - 38082 - 11905: 0xB2AC, - 38083 - 11905: 0xC1E5, - 38084 - 11905: 0xEEE5, - 38085 - 11905: 0xC7A6, - 38086 - 11905: 0xC3AD, - 38087 - 11905: 0xE898, - 38088 - 11905: 0xEEE6, - 38089 - 11905: 0xEEE7, - 38090 - 11905: 0xEEE8, - 38091 - 11905: 0xEEE9, - 38092 - 11905: 0xEEEA, - 38093 - 11905: 0xEEEB, - 38094 - 11905: 0xEEEC, - 38095 - 11905: 0xE899, - 38096 - 11905: 0xEEED, - 38097 - 11905: 0xEEEE, - 38098 - 11905: 0xEEEF, - 38099 - 11905: 0xE89A, - 38100 - 11905: 0xE89B, - 38101 - 11905: 0xEEF0, - 38102 - 11905: 0xEEF1, - 38103 - 11905: 0xEEF2, - 38104 - 11905: 0xEEF4, - 38105 - 11905: 0xEEF3, - 38106 - 11905: 0xE89C, - 38107 - 11905: 0xEEF5, - 38108 - 11905: 0xCDAD, - 38109 - 11905: 0xC2C1, - 38110 - 11905: 0xEEF6, - 38111 - 11905: 0xEEF7, - 38112 - 11905: 0xEEF8, - 38113 - 11905: 0xD5A1, - 38114 - 11905: 0xEEF9, - 38115 - 11905: 0xCFB3, - 38116 - 11905: 0xEEFA, - 38117 - 11905: 0xEEFB, - 38118 - 11905: 0xE89D, - 38119 - 11905: 0xEEFC, - 38120 - 11905: 0xEEFD, - 38121 - 11905: 0xEFA1, - 38122 - 11905: 0xEEFE, - 38123 - 11905: 0xEFA2, - 38124 - 11905: 0xB8F5, - 38125 - 11905: 0xC3FA, - 38126 - 11905: 0xEFA3, - 38127 - 11905: 0xEFA4, - 38128 - 11905: 0xBDC2, - 38129 - 11905: 0xD2BF, - 38130 - 11905: 0xB2F9, - 38131 - 11905: 0xEFA5, - 38132 - 11905: 0xEFA6, - 38133 - 11905: 0xEFA7, - 38134 - 11905: 0xD2F8, - 38135 - 11905: 0xEFA8, - 38136 - 11905: 0xD6FD, - 38137 - 11905: 0xEFA9, - 38138 - 11905: 0xC6CC, - 38139 - 11905: 0xE89E, - 38140 - 11905: 0xEFAA, - 38141 - 11905: 0xEFAB, - 38142 - 11905: 0xC1B4, - 38143 - 11905: 0xEFAC, - 38144 - 11905: 0xCFFA, - 38145 - 11905: 0xCBF8, - 38146 - 11905: 0xEFAE, - 38147 - 11905: 0xEFAD, - 38148 - 11905: 0xB3FA, - 38149 - 11905: 0xB9F8, - 38150 - 11905: 0xEFAF, - 38151 - 11905: 0xEFB0, - 38152 - 11905: 0xD0E2, - 38153 - 11905: 0xEFB1, - 38154 - 11905: 0xEFB2, - 38155 - 11905: 0xB7E6, - 38156 - 11905: 0xD0BF, - 38157 - 11905: 0xEFB3, - 38158 - 11905: 0xEFB4, - 38159 - 11905: 0xEFB5, - 38160 - 11905: 0xC8F1, - 38161 - 11905: 0xCCE0, - 38162 - 11905: 0xEFB6, - 38163 - 11905: 0xEFB7, - 38164 - 11905: 0xEFB8, - 38165 - 11905: 0xEFB9, - 38166 - 11905: 0xEFBA, - 38167 - 11905: 0xD5E0, - 38168 - 11905: 0xEFBB, - 38169 - 11905: 0xB4ED, - 38170 - 11905: 0xC3AA, - 38171 - 11905: 0xEFBC, - 38172 - 11905: 0xE89F, - 38173 - 11905: 0xEFBD, - 38174 - 11905: 0xEFBE, - 38175 - 11905: 0xEFBF, - 38176 - 11905: 0xE8A0, - 38177 - 11905: 0xCEFD, - 38178 - 11905: 0xEFC0, - 38179 - 11905: 0xC2E0, - 38180 - 11905: 0xB4B8, - 38181 - 11905: 0xD7B6, - 38182 - 11905: 0xBDF5, - 38183 - 11905: 0xE940, - 38184 - 11905: 0xCFC7, - 38185 - 11905: 0xEFC3, - 38186 - 11905: 0xEFC1, - 38187 - 11905: 0xEFC2, - 38188 - 11905: 0xEFC4, - 38189 - 11905: 0xB6A7, - 38190 - 11905: 0xBCFC, - 38191 - 11905: 0xBEE2, - 38192 - 11905: 0xC3CC, - 38193 - 11905: 0xEFC5, - 38194 - 11905: 0xEFC6, - 38195 - 11905: 0xE941, - 38196 - 11905: 0xEFC7, - 38197 - 11905: 0xEFCF, - 38198 - 11905: 0xEFC8, - 38199 - 11905: 0xEFC9, - 38200 - 11905: 0xEFCA, - 38201 - 11905: 0xC7C2, - 38202 - 11905: 0xEFF1, - 38203 - 11905: 0xB6CD, - 38204 - 11905: 0xEFCB, - 38205 - 11905: 0xE942, - 38206 - 11905: 0xEFCC, - 38207 - 11905: 0xEFCD, - 38208 - 11905: 0xB6C6, - 38209 - 11905: 0xC3BE, - 38210 - 11905: 0xEFCE, - 38211 - 11905: 0xE943, - 38212 - 11905: 0xEFD0, - 38213 - 11905: 0xEFD1, - 38214 - 11905: 0xEFD2, - 38215 - 11905: 0xD5F2, - 38216 - 11905: 0xE944, - 38217 - 11905: 0xEFD3, - 38218 - 11905: 0xC4F7, - 38219 - 11905: 0xE945, - 38220 - 11905: 0xEFD4, - 38221 - 11905: 0xC4F8, - 38222 - 11905: 0xEFD5, - 38223 - 11905: 0xEFD6, - 38224 - 11905: 0xB8E4, - 38225 - 11905: 0xB0F7, - 38226 - 11905: 0xEFD7, - 38227 - 11905: 0xEFD8, - 38228 - 11905: 0xEFD9, - 38229 - 11905: 0xE946, - 38230 - 11905: 0xEFDA, - 38231 - 11905: 0xEFDB, - 38232 - 11905: 0xEFDC, - 38233 - 11905: 0xEFDD, - 38234 - 11905: 0xE947, - 38235 - 11905: 0xEFDE, - 38236 - 11905: 0xBEB5, - 38237 - 11905: 0xEFE1, - 38238 - 11905: 0xEFDF, - 38239 - 11905: 0xEFE0, - 38240 - 11905: 0xE948, - 38241 - 11905: 0xEFE2, - 38242 - 11905: 0xEFE3, - 38243 - 11905: 0xC1CD, - 38244 - 11905: 0xEFE4, - 38245 - 11905: 0xEFE5, - 38246 - 11905: 0xEFE6, - 38247 - 11905: 0xEFE7, - 38248 - 11905: 0xEFE8, - 38249 - 11905: 0xEFE9, - 38250 - 11905: 0xEFEA, - 38251 - 11905: 0xEFEB, - 38252 - 11905: 0xEFEC, - 38253 - 11905: 0xC0D8, - 38254 - 11905: 0xE949, - 38255 - 11905: 0xEFED, - 38256 - 11905: 0xC1AD, - 38257 - 11905: 0xEFEE, - 38258 - 11905: 0xEFEF, - 38259 - 11905: 0xEFF0, - 38260 - 11905: 0xE94A, - 38261 - 11905: 0xE94B, - 38262 - 11905: 0xCFE2, - 38263 - 11905: 0xE94C, - 38264 - 11905: 0xE94D, - 38265 - 11905: 0xE94E, - 38266 - 11905: 0xE94F, - 38267 - 11905: 0xE950, - 38268 - 11905: 0xE951, - 38269 - 11905: 0xE952, - 38270 - 11905: 0xE953, - 38271 - 11905: 0xB3A4, - 38272 - 11905: 0xE954, - 38273 - 11905: 0xE955, - 38274 - 11905: 0xE956, - 38275 - 11905: 0xE957, - 38276 - 11905: 0xE958, - 38277 - 11905: 0xE959, - 38278 - 11905: 0xE95A, - 38279 - 11905: 0xE95B, - 38280 - 11905: 0xE95C, - 38281 - 11905: 0xE95D, - 38282 - 11905: 0xE95E, - 38283 - 11905: 0xE95F, - 38284 - 11905: 0xE960, - 38285 - 11905: 0xE961, - 38286 - 11905: 0xE962, - 38287 - 11905: 0xE963, - 38288 - 11905: 0xE964, - 38289 - 11905: 0xE965, - 38290 - 11905: 0xE966, - 38291 - 11905: 0xE967, - 38292 - 11905: 0xE968, - 38293 - 11905: 0xE969, - 38294 - 11905: 0xE96A, - 38295 - 11905: 0xE96B, - 38296 - 11905: 0xE96C, - 38297 - 11905: 0xE96D, - 38298 - 11905: 0xE96E, - 38299 - 11905: 0xE96F, - 38300 - 11905: 0xE970, - 38301 - 11905: 0xE971, - 38302 - 11905: 0xE972, - 38303 - 11905: 0xE973, - 38304 - 11905: 0xE974, - 38305 - 11905: 0xE975, - 38306 - 11905: 0xE976, - 38307 - 11905: 0xE977, - 38308 - 11905: 0xE978, - 38309 - 11905: 0xE979, - 38310 - 11905: 0xE97A, - 38311 - 11905: 0xE97B, - 38312 - 11905: 0xE97C, - 38313 - 11905: 0xE97D, - 38314 - 11905: 0xE97E, - 38315 - 11905: 0xE980, - 38316 - 11905: 0xE981, - 38317 - 11905: 0xE982, - 38318 - 11905: 0xE983, - 38319 - 11905: 0xE984, - 38320 - 11905: 0xE985, - 38321 - 11905: 0xE986, - 38322 - 11905: 0xE987, - 38323 - 11905: 0xE988, - 38324 - 11905: 0xE989, - 38325 - 11905: 0xE98A, - 38326 - 11905: 0xE98B, - 38327 - 11905: 0xE98C, - 38328 - 11905: 0xE98D, - 38329 - 11905: 0xE98E, - 38330 - 11905: 0xE98F, - 38331 - 11905: 0xE990, - 38332 - 11905: 0xE991, - 38333 - 11905: 0xE992, - 38334 - 11905: 0xE993, - 38335 - 11905: 0xE994, - 38336 - 11905: 0xE995, - 38337 - 11905: 0xE996, - 38338 - 11905: 0xE997, - 38339 - 11905: 0xE998, - 38340 - 11905: 0xE999, - 38341 - 11905: 0xE99A, - 38342 - 11905: 0xE99B, - 38343 - 11905: 0xE99C, - 38344 - 11905: 0xE99D, - 38345 - 11905: 0xE99E, - 38346 - 11905: 0xE99F, - 38347 - 11905: 0xE9A0, - 38348 - 11905: 0xEA40, - 38349 - 11905: 0xEA41, - 38350 - 11905: 0xEA42, - 38351 - 11905: 0xEA43, - 38352 - 11905: 0xEA44, - 38353 - 11905: 0xEA45, - 38354 - 11905: 0xEA46, - 38355 - 11905: 0xEA47, - 38356 - 11905: 0xEA48, - 38357 - 11905: 0xEA49, - 38358 - 11905: 0xEA4A, - 38359 - 11905: 0xEA4B, - 38360 - 11905: 0xEA4C, - 38361 - 11905: 0xEA4D, - 38362 - 11905: 0xEA4E, - 38363 - 11905: 0xEA4F, - 38364 - 11905: 0xEA50, - 38365 - 11905: 0xEA51, - 38366 - 11905: 0xEA52, - 38367 - 11905: 0xEA53, - 38368 - 11905: 0xEA54, - 38369 - 11905: 0xEA55, - 38370 - 11905: 0xEA56, - 38371 - 11905: 0xEA57, - 38372 - 11905: 0xEA58, - 38373 - 11905: 0xEA59, - 38374 - 11905: 0xEA5A, - 38375 - 11905: 0xEA5B, - 38376 - 11905: 0xC3C5, - 38377 - 11905: 0xE3C5, - 38378 - 11905: 0xC9C1, - 38379 - 11905: 0xE3C6, - 38380 - 11905: 0xEA5C, - 38381 - 11905: 0xB1D5, - 38382 - 11905: 0xCECA, - 38383 - 11905: 0xB4B3, - 38384 - 11905: 0xC8F2, - 38385 - 11905: 0xE3C7, - 38386 - 11905: 0xCFD0, - 38387 - 11905: 0xE3C8, - 38388 - 11905: 0xBCE4, - 38389 - 11905: 0xE3C9, - 38390 - 11905: 0xE3CA, - 38391 - 11905: 0xC3C6, - 38392 - 11905: 0xD5A2, - 38393 - 11905: 0xC4D6, - 38394 - 11905: 0xB9EB, - 38395 - 11905: 0xCEC5, - 38396 - 11905: 0xE3CB, - 38397 - 11905: 0xC3F6, - 38398 - 11905: 0xE3CC, - 38399 - 11905: 0xEA5D, - 38400 - 11905: 0xB7A7, - 38401 - 11905: 0xB8F3, - 38402 - 11905: 0xBAD2, - 38403 - 11905: 0xE3CD, - 38404 - 11905: 0xE3CE, - 38405 - 11905: 0xD4C4, - 38406 - 11905: 0xE3CF, - 38407 - 11905: 0xEA5E, - 38408 - 11905: 0xE3D0, - 38409 - 11905: 0xD1CB, - 38410 - 11905: 0xE3D1, - 38411 - 11905: 0xE3D2, - 38412 - 11905: 0xE3D3, - 38413 - 11905: 0xE3D4, - 38414 - 11905: 0xD1D6, - 38415 - 11905: 0xE3D5, - 38416 - 11905: 0xB2FB, - 38417 - 11905: 0xC0BB, - 38418 - 11905: 0xE3D6, - 38419 - 11905: 0xEA5F, - 38420 - 11905: 0xC0AB, - 38421 - 11905: 0xE3D7, - 38422 - 11905: 0xE3D8, - 38423 - 11905: 0xE3D9, - 38424 - 11905: 0xEA60, - 38425 - 11905: 0xE3DA, - 38426 - 11905: 0xE3DB, - 38427 - 11905: 0xEA61, - 38428 - 11905: 0xB8B7, - 38429 - 11905: 0xDAE2, - 38430 - 11905: 0xEA62, - 38431 - 11905: 0xB6D3, - 38432 - 11905: 0xEA63, - 38433 - 11905: 0xDAE4, - 38434 - 11905: 0xDAE3, - 38435 - 11905: 0xEA64, - 38436 - 11905: 0xEA65, - 38437 - 11905: 0xEA66, - 38438 - 11905: 0xEA67, - 38439 - 11905: 0xEA68, - 38440 - 11905: 0xEA69, - 38441 - 11905: 0xEA6A, - 38442 - 11905: 0xDAE6, - 38443 - 11905: 0xEA6B, - 38444 - 11905: 0xEA6C, - 38445 - 11905: 0xEA6D, - 38446 - 11905: 0xC8EE, - 38447 - 11905: 0xEA6E, - 38448 - 11905: 0xEA6F, - 38449 - 11905: 0xDAE5, - 38450 - 11905: 0xB7C0, - 38451 - 11905: 0xD1F4, - 38452 - 11905: 0xD2F5, - 38453 - 11905: 0xD5F3, - 38454 - 11905: 0xBDD7, - 38455 - 11905: 0xEA70, - 38456 - 11905: 0xEA71, - 38457 - 11905: 0xEA72, - 38458 - 11905: 0xEA73, - 38459 - 11905: 0xD7E8, - 38460 - 11905: 0xDAE8, - 38461 - 11905: 0xDAE7, - 38462 - 11905: 0xEA74, - 38463 - 11905: 0xB0A2, - 38464 - 11905: 0xCDD3, - 38465 - 11905: 0xEA75, - 38466 - 11905: 0xDAE9, - 38467 - 11905: 0xEA76, - 38468 - 11905: 0xB8BD, - 38469 - 11905: 0xBCCA, - 38470 - 11905: 0xC2BD, - 38471 - 11905: 0xC2A4, - 38472 - 11905: 0xB3C2, - 38473 - 11905: 0xDAEA, - 38474 - 11905: 0xEA77, - 38475 - 11905: 0xC2AA, - 38476 - 11905: 0xC4B0, - 38477 - 11905: 0xBDB5, - 38478 - 11905: 0xEA78, - 38479 - 11905: 0xEA79, - 38480 - 11905: 0xCFDE, - 38481 - 11905: 0xEA7A, - 38482 - 11905: 0xEA7B, - 38483 - 11905: 0xEA7C, - 38484 - 11905: 0xDAEB, - 38485 - 11905: 0xC9C2, - 38486 - 11905: 0xEA7D, - 38487 - 11905: 0xEA7E, - 38488 - 11905: 0xEA80, - 38489 - 11905: 0xEA81, - 38490 - 11905: 0xEA82, - 38491 - 11905: 0xB1DD, - 38492 - 11905: 0xEA83, - 38493 - 11905: 0xEA84, - 38494 - 11905: 0xEA85, - 38495 - 11905: 0xDAEC, - 38496 - 11905: 0xEA86, - 38497 - 11905: 0xB6B8, - 38498 - 11905: 0xD4BA, - 38499 - 11905: 0xEA87, - 38500 - 11905: 0xB3FD, - 38501 - 11905: 0xEA88, - 38502 - 11905: 0xEA89, - 38503 - 11905: 0xDAED, - 38504 - 11905: 0xD4C9, - 38505 - 11905: 0xCFD5, - 38506 - 11905: 0xC5E3, - 38507 - 11905: 0xEA8A, - 38508 - 11905: 0xDAEE, - 38509 - 11905: 0xEA8B, - 38510 - 11905: 0xEA8C, - 38511 - 11905: 0xEA8D, - 38512 - 11905: 0xEA8E, - 38513 - 11905: 0xEA8F, - 38514 - 11905: 0xDAEF, - 38515 - 11905: 0xEA90, - 38516 - 11905: 0xDAF0, - 38517 - 11905: 0xC1EA, - 38518 - 11905: 0xCCD5, - 38519 - 11905: 0xCFDD, - 38520 - 11905: 0xEA91, - 38521 - 11905: 0xEA92, - 38522 - 11905: 0xEA93, - 38523 - 11905: 0xEA94, - 38524 - 11905: 0xEA95, - 38525 - 11905: 0xEA96, - 38526 - 11905: 0xEA97, - 38527 - 11905: 0xEA98, - 38528 - 11905: 0xEA99, - 38529 - 11905: 0xEA9A, - 38530 - 11905: 0xEA9B, - 38531 - 11905: 0xEA9C, - 38532 - 11905: 0xEA9D, - 38533 - 11905: 0xD3E7, - 38534 - 11905: 0xC2A1, - 38535 - 11905: 0xEA9E, - 38536 - 11905: 0xDAF1, - 38537 - 11905: 0xEA9F, - 38538 - 11905: 0xEAA0, - 38539 - 11905: 0xCBE5, - 38540 - 11905: 0xEB40, - 38541 - 11905: 0xDAF2, - 38542 - 11905: 0xEB41, - 38543 - 11905: 0xCBE6, - 38544 - 11905: 0xD2FE, - 38545 - 11905: 0xEB42, - 38546 - 11905: 0xEB43, - 38547 - 11905: 0xEB44, - 38548 - 11905: 0xB8F4, - 38549 - 11905: 0xEB45, - 38550 - 11905: 0xEB46, - 38551 - 11905: 0xDAF3, - 38552 - 11905: 0xB0AF, - 38553 - 11905: 0xCFB6, - 38554 - 11905: 0xEB47, - 38555 - 11905: 0xEB48, - 38556 - 11905: 0xD5CF, - 38557 - 11905: 0xEB49, - 38558 - 11905: 0xEB4A, - 38559 - 11905: 0xEB4B, - 38560 - 11905: 0xEB4C, - 38561 - 11905: 0xEB4D, - 38562 - 11905: 0xEB4E, - 38563 - 11905: 0xEB4F, - 38564 - 11905: 0xEB50, - 38565 - 11905: 0xEB51, - 38566 - 11905: 0xEB52, - 38567 - 11905: 0xCBED, - 38568 - 11905: 0xEB53, - 38569 - 11905: 0xEB54, - 38570 - 11905: 0xEB55, - 38571 - 11905: 0xEB56, - 38572 - 11905: 0xEB57, - 38573 - 11905: 0xEB58, - 38574 - 11905: 0xEB59, - 38575 - 11905: 0xEB5A, - 38576 - 11905: 0xDAF4, - 38577 - 11905: 0xEB5B, - 38578 - 11905: 0xEB5C, - 38579 - 11905: 0xE3C4, - 38580 - 11905: 0xEB5D, - 38581 - 11905: 0xEB5E, - 38582 - 11905: 0xC1A5, - 38583 - 11905: 0xEB5F, - 38584 - 11905: 0xEB60, - 38585 - 11905: 0xF6BF, - 38586 - 11905: 0xEB61, - 38587 - 11905: 0xEB62, - 38588 - 11905: 0xF6C0, - 38589 - 11905: 0xF6C1, - 38590 - 11905: 0xC4D1, - 38591 - 11905: 0xEB63, - 38592 - 11905: 0xC8B8, - 38593 - 11905: 0xD1E3, - 38594 - 11905: 0xEB64, - 38595 - 11905: 0xEB65, - 38596 - 11905: 0xD0DB, - 38597 - 11905: 0xD1C5, - 38598 - 11905: 0xBCAF, - 38599 - 11905: 0xB9CD, - 38600 - 11905: 0xEB66, - 38601 - 11905: 0xEFF4, - 38602 - 11905: 0xEB67, - 38603 - 11905: 0xEB68, - 38604 - 11905: 0xB4C6, - 38605 - 11905: 0xD3BA, - 38606 - 11905: 0xF6C2, - 38607 - 11905: 0xB3FB, - 38608 - 11905: 0xEB69, - 38609 - 11905: 0xEB6A, - 38610 - 11905: 0xF6C3, - 38611 - 11905: 0xEB6B, - 38612 - 11905: 0xEB6C, - 38613 - 11905: 0xB5F1, - 38614 - 11905: 0xEB6D, - 38615 - 11905: 0xEB6E, - 38616 - 11905: 0xEB6F, - 38617 - 11905: 0xEB70, - 38618 - 11905: 0xEB71, - 38619 - 11905: 0xEB72, - 38620 - 11905: 0xEB73, - 38621 - 11905: 0xEB74, - 38622 - 11905: 0xEB75, - 38623 - 11905: 0xEB76, - 38624 - 11905: 0xF6C5, - 38625 - 11905: 0xEB77, - 38626 - 11905: 0xEB78, - 38627 - 11905: 0xEB79, - 38628 - 11905: 0xEB7A, - 38629 - 11905: 0xEB7B, - 38630 - 11905: 0xEB7C, - 38631 - 11905: 0xEB7D, - 38632 - 11905: 0xD3EA, - 38633 - 11905: 0xF6A7, - 38634 - 11905: 0xD1A9, - 38635 - 11905: 0xEB7E, - 38636 - 11905: 0xEB80, - 38637 - 11905: 0xEB81, - 38638 - 11905: 0xEB82, - 38639 - 11905: 0xF6A9, - 38640 - 11905: 0xEB83, - 38641 - 11905: 0xEB84, - 38642 - 11905: 0xEB85, - 38643 - 11905: 0xF6A8, - 38644 - 11905: 0xEB86, - 38645 - 11905: 0xEB87, - 38646 - 11905: 0xC1E3, - 38647 - 11905: 0xC0D7, - 38648 - 11905: 0xEB88, - 38649 - 11905: 0xB1A2, - 38650 - 11905: 0xEB89, - 38651 - 11905: 0xEB8A, - 38652 - 11905: 0xEB8B, - 38653 - 11905: 0xEB8C, - 38654 - 11905: 0xCEED, - 38655 - 11905: 0xEB8D, - 38656 - 11905: 0xD0E8, - 38657 - 11905: 0xF6AB, - 38658 - 11905: 0xEB8E, - 38659 - 11905: 0xEB8F, - 38660 - 11905: 0xCFF6, - 38661 - 11905: 0xEB90, - 38662 - 11905: 0xF6AA, - 38663 - 11905: 0xD5F0, - 38664 - 11905: 0xF6AC, - 38665 - 11905: 0xC3B9, - 38666 - 11905: 0xEB91, - 38667 - 11905: 0xEB92, - 38668 - 11905: 0xEB93, - 38669 - 11905: 0xBBF4, - 38670 - 11905: 0xF6AE, - 38671 - 11905: 0xF6AD, - 38672 - 11905: 0xEB94, - 38673 - 11905: 0xEB95, - 38674 - 11905: 0xEB96, - 38675 - 11905: 0xC4DE, - 38676 - 11905: 0xEB97, - 38677 - 11905: 0xEB98, - 38678 - 11905: 0xC1D8, - 38679 - 11905: 0xEB99, - 38680 - 11905: 0xEB9A, - 38681 - 11905: 0xEB9B, - 38682 - 11905: 0xEB9C, - 38683 - 11905: 0xEB9D, - 38684 - 11905: 0xCBAA, - 38685 - 11905: 0xEB9E, - 38686 - 11905: 0xCFBC, - 38687 - 11905: 0xEB9F, - 38688 - 11905: 0xEBA0, - 38689 - 11905: 0xEC40, - 38690 - 11905: 0xEC41, - 38691 - 11905: 0xEC42, - 38692 - 11905: 0xEC43, - 38693 - 11905: 0xEC44, - 38694 - 11905: 0xEC45, - 38695 - 11905: 0xEC46, - 38696 - 11905: 0xEC47, - 38697 - 11905: 0xEC48, - 38698 - 11905: 0xF6AF, - 38699 - 11905: 0xEC49, - 38700 - 11905: 0xEC4A, - 38701 - 11905: 0xF6B0, - 38702 - 11905: 0xEC4B, - 38703 - 11905: 0xEC4C, - 38704 - 11905: 0xF6B1, - 38705 - 11905: 0xEC4D, - 38706 - 11905: 0xC2B6, - 38707 - 11905: 0xEC4E, - 38708 - 11905: 0xEC4F, - 38709 - 11905: 0xEC50, - 38710 - 11905: 0xEC51, - 38711 - 11905: 0xEC52, - 38712 - 11905: 0xB0D4, - 38713 - 11905: 0xC5F9, - 38714 - 11905: 0xEC53, - 38715 - 11905: 0xEC54, - 38716 - 11905: 0xEC55, - 38717 - 11905: 0xEC56, - 38718 - 11905: 0xF6B2, - 38719 - 11905: 0xEC57, - 38720 - 11905: 0xEC58, - 38721 - 11905: 0xEC59, - 38722 - 11905: 0xEC5A, - 38723 - 11905: 0xEC5B, - 38724 - 11905: 0xEC5C, - 38725 - 11905: 0xEC5D, - 38726 - 11905: 0xEC5E, - 38727 - 11905: 0xEC5F, - 38728 - 11905: 0xEC60, - 38729 - 11905: 0xEC61, - 38730 - 11905: 0xEC62, - 38731 - 11905: 0xEC63, - 38732 - 11905: 0xEC64, - 38733 - 11905: 0xEC65, - 38734 - 11905: 0xEC66, - 38735 - 11905: 0xEC67, - 38736 - 11905: 0xEC68, - 38737 - 11905: 0xEC69, - 38738 - 11905: 0xC7E0, - 38739 - 11905: 0xF6A6, - 38740 - 11905: 0xEC6A, - 38741 - 11905: 0xEC6B, - 38742 - 11905: 0xBEB8, - 38743 - 11905: 0xEC6C, - 38744 - 11905: 0xEC6D, - 38745 - 11905: 0xBEB2, - 38746 - 11905: 0xEC6E, - 38747 - 11905: 0xB5E5, - 38748 - 11905: 0xEC6F, - 38749 - 11905: 0xEC70, - 38750 - 11905: 0xB7C7, - 38751 - 11905: 0xEC71, - 38752 - 11905: 0xBFBF, - 38753 - 11905: 0xC3D2, - 38754 - 11905: 0xC3E6, - 38755 - 11905: 0xEC72, - 38756 - 11905: 0xEC73, - 38757 - 11905: 0xD8CC, - 38758 - 11905: 0xEC74, - 38759 - 11905: 0xEC75, - 38760 - 11905: 0xEC76, - 38761 - 11905: 0xB8EF, - 38762 - 11905: 0xEC77, - 38763 - 11905: 0xEC78, - 38764 - 11905: 0xEC79, - 38765 - 11905: 0xEC7A, - 38766 - 11905: 0xEC7B, - 38767 - 11905: 0xEC7C, - 38768 - 11905: 0xEC7D, - 38769 - 11905: 0xEC7E, - 38770 - 11905: 0xEC80, - 38771 - 11905: 0xBDF9, - 38772 - 11905: 0xD1A5, - 38773 - 11905: 0xEC81, - 38774 - 11905: 0xB0D0, - 38775 - 11905: 0xEC82, - 38776 - 11905: 0xEC83, - 38777 - 11905: 0xEC84, - 38778 - 11905: 0xEC85, - 38779 - 11905: 0xEC86, - 38780 - 11905: 0xF7B0, - 38781 - 11905: 0xEC87, - 38782 - 11905: 0xEC88, - 38783 - 11905: 0xEC89, - 38784 - 11905: 0xEC8A, - 38785 - 11905: 0xEC8B, - 38786 - 11905: 0xEC8C, - 38787 - 11905: 0xEC8D, - 38788 - 11905: 0xEC8E, - 38789 - 11905: 0xF7B1, - 38790 - 11905: 0xEC8F, - 38791 - 11905: 0xEC90, - 38792 - 11905: 0xEC91, - 38793 - 11905: 0xEC92, - 38794 - 11905: 0xEC93, - 38795 - 11905: 0xD0AC, - 38796 - 11905: 0xEC94, - 38797 - 11905: 0xB0B0, - 38798 - 11905: 0xEC95, - 38799 - 11905: 0xEC96, - 38800 - 11905: 0xEC97, - 38801 - 11905: 0xF7B2, - 38802 - 11905: 0xF7B3, - 38803 - 11905: 0xEC98, - 38804 - 11905: 0xF7B4, - 38805 - 11905: 0xEC99, - 38806 - 11905: 0xEC9A, - 38807 - 11905: 0xEC9B, - 38808 - 11905: 0xC7CA, - 38809 - 11905: 0xEC9C, - 38810 - 11905: 0xEC9D, - 38811 - 11905: 0xEC9E, - 38812 - 11905: 0xEC9F, - 38813 - 11905: 0xECA0, - 38814 - 11905: 0xED40, - 38815 - 11905: 0xED41, - 38816 - 11905: 0xBECF, - 38817 - 11905: 0xED42, - 38818 - 11905: 0xED43, - 38819 - 11905: 0xF7B7, - 38820 - 11905: 0xED44, - 38821 - 11905: 0xED45, - 38822 - 11905: 0xED46, - 38823 - 11905: 0xED47, - 38824 - 11905: 0xED48, - 38825 - 11905: 0xED49, - 38826 - 11905: 0xED4A, - 38827 - 11905: 0xF7B6, - 38828 - 11905: 0xED4B, - 38829 - 11905: 0xB1DE, - 38830 - 11905: 0xED4C, - 38831 - 11905: 0xF7B5, - 38832 - 11905: 0xED4D, - 38833 - 11905: 0xED4E, - 38834 - 11905: 0xF7B8, - 38835 - 11905: 0xED4F, - 38836 - 11905: 0xF7B9, - 38837 - 11905: 0xED50, - 38838 - 11905: 0xED51, - 38839 - 11905: 0xED52, - 38840 - 11905: 0xED53, - 38841 - 11905: 0xED54, - 38842 - 11905: 0xED55, - 38843 - 11905: 0xED56, - 38844 - 11905: 0xED57, - 38845 - 11905: 0xED58, - 38846 - 11905: 0xED59, - 38847 - 11905: 0xED5A, - 38848 - 11905: 0xED5B, - 38849 - 11905: 0xED5C, - 38850 - 11905: 0xED5D, - 38851 - 11905: 0xED5E, - 38852 - 11905: 0xED5F, - 38853 - 11905: 0xED60, - 38854 - 11905: 0xED61, - 38855 - 11905: 0xED62, - 38856 - 11905: 0xED63, - 38857 - 11905: 0xED64, - 38858 - 11905: 0xED65, - 38859 - 11905: 0xED66, - 38860 - 11905: 0xED67, - 38861 - 11905: 0xED68, - 38862 - 11905: 0xED69, - 38863 - 11905: 0xED6A, - 38864 - 11905: 0xED6B, - 38865 - 11905: 0xED6C, - 38866 - 11905: 0xED6D, - 38867 - 11905: 0xED6E, - 38868 - 11905: 0xED6F, - 38869 - 11905: 0xED70, - 38870 - 11905: 0xED71, - 38871 - 11905: 0xED72, - 38872 - 11905: 0xED73, - 38873 - 11905: 0xED74, - 38874 - 11905: 0xED75, - 38875 - 11905: 0xED76, - 38876 - 11905: 0xED77, - 38877 - 11905: 0xED78, - 38878 - 11905: 0xED79, - 38879 - 11905: 0xED7A, - 38880 - 11905: 0xED7B, - 38881 - 11905: 0xED7C, - 38882 - 11905: 0xED7D, - 38883 - 11905: 0xED7E, - 38884 - 11905: 0xED80, - 38885 - 11905: 0xED81, - 38886 - 11905: 0xCEA4, - 38887 - 11905: 0xC8CD, - 38888 - 11905: 0xED82, - 38889 - 11905: 0xBAAB, - 38890 - 11905: 0xE8B8, - 38891 - 11905: 0xE8B9, - 38892 - 11905: 0xE8BA, - 38893 - 11905: 0xBEC2, - 38894 - 11905: 0xED83, - 38895 - 11905: 0xED84, - 38896 - 11905: 0xED85, - 38897 - 11905: 0xED86, - 38898 - 11905: 0xED87, - 38899 - 11905: 0xD2F4, - 38900 - 11905: 0xED88, - 38901 - 11905: 0xD4CF, - 38902 - 11905: 0xC9D8, - 38903 - 11905: 0xED89, - 38904 - 11905: 0xED8A, - 38905 - 11905: 0xED8B, - 38906 - 11905: 0xED8C, - 38907 - 11905: 0xED8D, - 38908 - 11905: 0xED8E, - 38909 - 11905: 0xED8F, - 38910 - 11905: 0xED90, - 38911 - 11905: 0xED91, - 38912 - 11905: 0xED92, - 38913 - 11905: 0xED93, - 38914 - 11905: 0xED94, - 38915 - 11905: 0xED95, - 38916 - 11905: 0xED96, - 38917 - 11905: 0xED97, - 38918 - 11905: 0xED98, - 38919 - 11905: 0xED99, - 38920 - 11905: 0xED9A, - 38921 - 11905: 0xED9B, - 38922 - 11905: 0xED9C, - 38923 - 11905: 0xED9D, - 38924 - 11905: 0xED9E, - 38925 - 11905: 0xED9F, - 38926 - 11905: 0xEDA0, - 38927 - 11905: 0xEE40, - 38928 - 11905: 0xEE41, - 38929 - 11905: 0xEE42, - 38930 - 11905: 0xEE43, - 38931 - 11905: 0xEE44, - 38932 - 11905: 0xEE45, - 38933 - 11905: 0xEE46, - 38934 - 11905: 0xEE47, - 38935 - 11905: 0xEE48, - 38936 - 11905: 0xEE49, - 38937 - 11905: 0xEE4A, - 38938 - 11905: 0xEE4B, - 38939 - 11905: 0xEE4C, - 38940 - 11905: 0xEE4D, - 38941 - 11905: 0xEE4E, - 38942 - 11905: 0xEE4F, - 38943 - 11905: 0xEE50, - 38944 - 11905: 0xEE51, - 38945 - 11905: 0xEE52, - 38946 - 11905: 0xEE53, - 38947 - 11905: 0xEE54, - 38948 - 11905: 0xEE55, - 38949 - 11905: 0xEE56, - 38950 - 11905: 0xEE57, - 38951 - 11905: 0xEE58, - 38952 - 11905: 0xEE59, - 38953 - 11905: 0xEE5A, - 38954 - 11905: 0xEE5B, - 38955 - 11905: 0xEE5C, - 38956 - 11905: 0xEE5D, - 38957 - 11905: 0xEE5E, - 38958 - 11905: 0xEE5F, - 38959 - 11905: 0xEE60, - 38960 - 11905: 0xEE61, - 38961 - 11905: 0xEE62, - 38962 - 11905: 0xEE63, - 38963 - 11905: 0xEE64, - 38964 - 11905: 0xEE65, - 38965 - 11905: 0xEE66, - 38966 - 11905: 0xEE67, - 38967 - 11905: 0xEE68, - 38968 - 11905: 0xEE69, - 38969 - 11905: 0xEE6A, - 38970 - 11905: 0xEE6B, - 38971 - 11905: 0xEE6C, - 38972 - 11905: 0xEE6D, - 38973 - 11905: 0xEE6E, - 38974 - 11905: 0xEE6F, - 38975 - 11905: 0xEE70, - 38976 - 11905: 0xEE71, - 38977 - 11905: 0xEE72, - 38978 - 11905: 0xEE73, - 38979 - 11905: 0xEE74, - 38980 - 11905: 0xEE75, - 38981 - 11905: 0xEE76, - 38982 - 11905: 0xEE77, - 38983 - 11905: 0xEE78, - 38984 - 11905: 0xEE79, - 38985 - 11905: 0xEE7A, - 38986 - 11905: 0xEE7B, - 38987 - 11905: 0xEE7C, - 38988 - 11905: 0xEE7D, - 38989 - 11905: 0xEE7E, - 38990 - 11905: 0xEE80, - 38991 - 11905: 0xEE81, - 38992 - 11905: 0xEE82, - 38993 - 11905: 0xEE83, - 38994 - 11905: 0xEE84, - 38995 - 11905: 0xEE85, - 38996 - 11905: 0xEE86, - 38997 - 11905: 0xEE87, - 38998 - 11905: 0xEE88, - 38999 - 11905: 0xEE89, - 39000 - 11905: 0xEE8A, - 39001 - 11905: 0xEE8B, - 39002 - 11905: 0xEE8C, - 39003 - 11905: 0xEE8D, - 39004 - 11905: 0xEE8E, - 39005 - 11905: 0xEE8F, - 39006 - 11905: 0xEE90, - 39007 - 11905: 0xEE91, - 39008 - 11905: 0xEE92, - 39009 - 11905: 0xEE93, - 39010 - 11905: 0xEE94, - 39011 - 11905: 0xEE95, - 39012 - 11905: 0xEE96, - 39013 - 11905: 0xEE97, - 39014 - 11905: 0xEE98, - 39015 - 11905: 0xEE99, - 39016 - 11905: 0xEE9A, - 39017 - 11905: 0xEE9B, - 39018 - 11905: 0xEE9C, - 39019 - 11905: 0xEE9D, - 39020 - 11905: 0xEE9E, - 39021 - 11905: 0xEE9F, - 39022 - 11905: 0xEEA0, - 39023 - 11905: 0xEF40, - 39024 - 11905: 0xEF41, - 39025 - 11905: 0xEF42, - 39026 - 11905: 0xEF43, - 39027 - 11905: 0xEF44, - 39028 - 11905: 0xEF45, - 39029 - 11905: 0xD2B3, - 39030 - 11905: 0xB6A5, - 39031 - 11905: 0xC7EA, - 39032 - 11905: 0xF1FC, - 39033 - 11905: 0xCFEE, - 39034 - 11905: 0xCBB3, - 39035 - 11905: 0xD0EB, - 39036 - 11905: 0xE7EF, - 39037 - 11905: 0xCDE7, - 39038 - 11905: 0xB9CB, - 39039 - 11905: 0xB6D9, - 39040 - 11905: 0xF1FD, - 39041 - 11905: 0xB0E4, - 39042 - 11905: 0xCBCC, - 39043 - 11905: 0xF1FE, - 39044 - 11905: 0xD4A4, - 39045 - 11905: 0xC2AD, - 39046 - 11905: 0xC1EC, - 39047 - 11905: 0xC6C4, - 39048 - 11905: 0xBEB1, - 39049 - 11905: 0xF2A1, - 39050 - 11905: 0xBCD5, - 39051 - 11905: 0xEF46, - 39052 - 11905: 0xF2A2, - 39053 - 11905: 0xF2A3, - 39054 - 11905: 0xEF47, - 39055 - 11905: 0xF2A4, - 39056 - 11905: 0xD2C3, - 39057 - 11905: 0xC6B5, - 39058 - 11905: 0xEF48, - 39059 - 11905: 0xCDC7, - 39060 - 11905: 0xF2A5, - 39061 - 11905: 0xEF49, - 39062 - 11905: 0xD3B1, - 39063 - 11905: 0xBFC5, - 39064 - 11905: 0xCCE2, - 39065 - 11905: 0xEF4A, - 39066 - 11905: 0xF2A6, - 39067 - 11905: 0xF2A7, - 39068 - 11905: 0xD1D5, - 39069 - 11905: 0xB6EE, - 39070 - 11905: 0xF2A8, - 39071 - 11905: 0xF2A9, - 39072 - 11905: 0xB5DF, - 39073 - 11905: 0xF2AA, - 39074 - 11905: 0xF2AB, - 39075 - 11905: 0xEF4B, - 39076 - 11905: 0xB2FC, - 39077 - 11905: 0xF2AC, - 39078 - 11905: 0xF2AD, - 39079 - 11905: 0xC8A7, - 39080 - 11905: 0xEF4C, - 39081 - 11905: 0xEF4D, - 39082 - 11905: 0xEF4E, - 39083 - 11905: 0xEF4F, - 39084 - 11905: 0xEF50, - 39085 - 11905: 0xEF51, - 39086 - 11905: 0xEF52, - 39087 - 11905: 0xEF53, - 39088 - 11905: 0xEF54, - 39089 - 11905: 0xEF55, - 39090 - 11905: 0xEF56, - 39091 - 11905: 0xEF57, - 39092 - 11905: 0xEF58, - 39093 - 11905: 0xEF59, - 39094 - 11905: 0xEF5A, - 39095 - 11905: 0xEF5B, - 39096 - 11905: 0xEF5C, - 39097 - 11905: 0xEF5D, - 39098 - 11905: 0xEF5E, - 39099 - 11905: 0xEF5F, - 39100 - 11905: 0xEF60, - 39101 - 11905: 0xEF61, - 39102 - 11905: 0xEF62, - 39103 - 11905: 0xEF63, - 39104 - 11905: 0xEF64, - 39105 - 11905: 0xEF65, - 39106 - 11905: 0xEF66, - 39107 - 11905: 0xEF67, - 39108 - 11905: 0xEF68, - 39109 - 11905: 0xEF69, - 39110 - 11905: 0xEF6A, - 39111 - 11905: 0xEF6B, - 39112 - 11905: 0xEF6C, - 39113 - 11905: 0xEF6D, - 39114 - 11905: 0xEF6E, - 39115 - 11905: 0xEF6F, - 39116 - 11905: 0xEF70, - 39117 - 11905: 0xEF71, - 39118 - 11905: 0xB7E7, - 39119 - 11905: 0xEF72, - 39120 - 11905: 0xEF73, - 39121 - 11905: 0xECA9, - 39122 - 11905: 0xECAA, - 39123 - 11905: 0xECAB, - 39124 - 11905: 0xEF74, - 39125 - 11905: 0xECAC, - 39126 - 11905: 0xEF75, - 39127 - 11905: 0xEF76, - 39128 - 11905: 0xC6AE, - 39129 - 11905: 0xECAD, - 39130 - 11905: 0xECAE, - 39131 - 11905: 0xEF77, - 39132 - 11905: 0xEF78, - 39133 - 11905: 0xEF79, - 39134 - 11905: 0xB7C9, - 39135 - 11905: 0xCAB3, - 39136 - 11905: 0xEF7A, - 39137 - 11905: 0xEF7B, - 39138 - 11905: 0xEF7C, - 39139 - 11905: 0xEF7D, - 39140 - 11905: 0xEF7E, - 39141 - 11905: 0xEF80, - 39142 - 11905: 0xEF81, - 39143 - 11905: 0xE2B8, - 39144 - 11905: 0xF7CF, - 39145 - 11905: 0xEF82, - 39146 - 11905: 0xEF83, - 39147 - 11905: 0xEF84, - 39148 - 11905: 0xEF85, - 39149 - 11905: 0xEF86, - 39150 - 11905: 0xEF87, - 39151 - 11905: 0xEF88, - 39152 - 11905: 0xEF89, - 39153 - 11905: 0xEF8A, - 39154 - 11905: 0xEF8B, - 39155 - 11905: 0xEF8C, - 39156 - 11905: 0xEF8D, - 39157 - 11905: 0xEF8E, - 39158 - 11905: 0xEF8F, - 39159 - 11905: 0xEF90, - 39160 - 11905: 0xEF91, - 39161 - 11905: 0xEF92, - 39162 - 11905: 0xEF93, - 39163 - 11905: 0xEF94, - 39164 - 11905: 0xEF95, - 39165 - 11905: 0xEF96, - 39166 - 11905: 0xEF97, - 39167 - 11905: 0xEF98, - 39168 - 11905: 0xEF99, - 39169 - 11905: 0xEF9A, - 39170 - 11905: 0xEF9B, - 39171 - 11905: 0xEF9C, - 39172 - 11905: 0xEF9D, - 39173 - 11905: 0xEF9E, - 39174 - 11905: 0xEF9F, - 39175 - 11905: 0xEFA0, - 39176 - 11905: 0xF040, - 39177 - 11905: 0xF041, - 39178 - 11905: 0xF042, - 39179 - 11905: 0xF043, - 39180 - 11905: 0xF044, - 39181 - 11905: 0xF7D0, - 39182 - 11905: 0xF045, - 39183 - 11905: 0xF046, - 39184 - 11905: 0xB2CD, - 39185 - 11905: 0xF047, - 39186 - 11905: 0xF048, - 39187 - 11905: 0xF049, - 39188 - 11905: 0xF04A, - 39189 - 11905: 0xF04B, - 39190 - 11905: 0xF04C, - 39191 - 11905: 0xF04D, - 39192 - 11905: 0xF04E, - 39193 - 11905: 0xF04F, - 39194 - 11905: 0xF050, - 39195 - 11905: 0xF051, - 39196 - 11905: 0xF052, - 39197 - 11905: 0xF053, - 39198 - 11905: 0xF054, - 39199 - 11905: 0xF055, - 39200 - 11905: 0xF056, - 39201 - 11905: 0xF057, - 39202 - 11905: 0xF058, - 39203 - 11905: 0xF059, - 39204 - 11905: 0xF05A, - 39205 - 11905: 0xF05B, - 39206 - 11905: 0xF05C, - 39207 - 11905: 0xF05D, - 39208 - 11905: 0xF05E, - 39209 - 11905: 0xF05F, - 39210 - 11905: 0xF060, - 39211 - 11905: 0xF061, - 39212 - 11905: 0xF062, - 39213 - 11905: 0xF063, - 39214 - 11905: 0xF7D1, - 39215 - 11905: 0xF064, - 39216 - 11905: 0xF065, - 39217 - 11905: 0xF066, - 39218 - 11905: 0xF067, - 39219 - 11905: 0xF068, - 39220 - 11905: 0xF069, - 39221 - 11905: 0xF06A, - 39222 - 11905: 0xF06B, - 39223 - 11905: 0xF06C, - 39224 - 11905: 0xF06D, - 39225 - 11905: 0xF06E, - 39226 - 11905: 0xF06F, - 39227 - 11905: 0xF070, - 39228 - 11905: 0xF071, - 39229 - 11905: 0xF072, - 39230 - 11905: 0xF073, - 39231 - 11905: 0xF074, - 39232 - 11905: 0xF075, - 39233 - 11905: 0xF076, - 39234 - 11905: 0xF077, - 39235 - 11905: 0xF078, - 39236 - 11905: 0xF079, - 39237 - 11905: 0xF07A, - 39238 - 11905: 0xF07B, - 39239 - 11905: 0xF07C, - 39240 - 11905: 0xF07D, - 39241 - 11905: 0xF07E, - 39242 - 11905: 0xF080, - 39243 - 11905: 0xF081, - 39244 - 11905: 0xF082, - 39245 - 11905: 0xF083, - 39246 - 11905: 0xF084, - 39247 - 11905: 0xF085, - 39248 - 11905: 0xF086, - 39249 - 11905: 0xF087, - 39250 - 11905: 0xF088, - 39251 - 11905: 0xF089, - 39252 - 11905: 0xF7D3, - 39253 - 11905: 0xF7D2, - 39254 - 11905: 0xF08A, - 39255 - 11905: 0xF08B, - 39256 - 11905: 0xF08C, - 39257 - 11905: 0xF08D, - 39258 - 11905: 0xF08E, - 39259 - 11905: 0xF08F, - 39260 - 11905: 0xF090, - 39261 - 11905: 0xF091, - 39262 - 11905: 0xF092, - 39263 - 11905: 0xF093, - 39264 - 11905: 0xF094, - 39265 - 11905: 0xF095, - 39266 - 11905: 0xF096, - 39267 - 11905: 0xE2BB, - 39268 - 11905: 0xF097, - 39269 - 11905: 0xBCA2, - 39270 - 11905: 0xF098, - 39271 - 11905: 0xE2BC, - 39272 - 11905: 0xE2BD, - 39273 - 11905: 0xE2BE, - 39274 - 11905: 0xE2BF, - 39275 - 11905: 0xE2C0, - 39276 - 11905: 0xE2C1, - 39277 - 11905: 0xB7B9, - 39278 - 11905: 0xD2FB, - 39279 - 11905: 0xBDA4, - 39280 - 11905: 0xCACE, - 39281 - 11905: 0xB1A5, - 39282 - 11905: 0xCBC7, - 39283 - 11905: 0xF099, - 39284 - 11905: 0xE2C2, - 39285 - 11905: 0xB6FC, - 39286 - 11905: 0xC8C4, - 39287 - 11905: 0xE2C3, - 39288 - 11905: 0xF09A, - 39289 - 11905: 0xF09B, - 39290 - 11905: 0xBDC8, - 39291 - 11905: 0xF09C, - 39292 - 11905: 0xB1FD, - 39293 - 11905: 0xE2C4, - 39294 - 11905: 0xF09D, - 39295 - 11905: 0xB6F6, - 39296 - 11905: 0xE2C5, - 39297 - 11905: 0xC4D9, - 39298 - 11905: 0xF09E, - 39299 - 11905: 0xF09F, - 39300 - 11905: 0xE2C6, - 39301 - 11905: 0xCFDA, - 39302 - 11905: 0xB9DD, - 39303 - 11905: 0xE2C7, - 39304 - 11905: 0xC0A1, - 39305 - 11905: 0xF0A0, - 39306 - 11905: 0xE2C8, - 39307 - 11905: 0xB2F6, - 39308 - 11905: 0xF140, - 39309 - 11905: 0xE2C9, - 39310 - 11905: 0xF141, - 39311 - 11905: 0xC1F3, - 39312 - 11905: 0xE2CA, - 39313 - 11905: 0xE2CB, - 39314 - 11905: 0xC2F8, - 39315 - 11905: 0xE2CC, - 39316 - 11905: 0xE2CD, - 39317 - 11905: 0xE2CE, - 39318 - 11905: 0xCAD7, - 39319 - 11905: 0xD8B8, - 39320 - 11905: 0xD9E5, - 39321 - 11905: 0xCFE3, - 39322 - 11905: 0xF142, - 39323 - 11905: 0xF143, - 39324 - 11905: 0xF144, - 39325 - 11905: 0xF145, - 39326 - 11905: 0xF146, - 39327 - 11905: 0xF147, - 39328 - 11905: 0xF148, - 39329 - 11905: 0xF149, - 39330 - 11905: 0xF14A, - 39331 - 11905: 0xF14B, - 39332 - 11905: 0xF14C, - 39333 - 11905: 0xF0A5, - 39334 - 11905: 0xF14D, - 39335 - 11905: 0xF14E, - 39336 - 11905: 0xDCB0, - 39337 - 11905: 0xF14F, - 39338 - 11905: 0xF150, - 39339 - 11905: 0xF151, - 39340 - 11905: 0xF152, - 39341 - 11905: 0xF153, - 39342 - 11905: 0xF154, - 39343 - 11905: 0xF155, - 39344 - 11905: 0xF156, - 39345 - 11905: 0xF157, - 39346 - 11905: 0xF158, - 39347 - 11905: 0xF159, - 39348 - 11905: 0xF15A, - 39349 - 11905: 0xF15B, - 39350 - 11905: 0xF15C, - 39351 - 11905: 0xF15D, - 39352 - 11905: 0xF15E, - 39353 - 11905: 0xF15F, - 39354 - 11905: 0xF160, - 39355 - 11905: 0xF161, - 39356 - 11905: 0xF162, - 39357 - 11905: 0xF163, - 39358 - 11905: 0xF164, - 39359 - 11905: 0xF165, - 39360 - 11905: 0xF166, - 39361 - 11905: 0xF167, - 39362 - 11905: 0xF168, - 39363 - 11905: 0xF169, - 39364 - 11905: 0xF16A, - 39365 - 11905: 0xF16B, - 39366 - 11905: 0xF16C, - 39367 - 11905: 0xF16D, - 39368 - 11905: 0xF16E, - 39369 - 11905: 0xF16F, - 39370 - 11905: 0xF170, - 39371 - 11905: 0xF171, - 39372 - 11905: 0xF172, - 39373 - 11905: 0xF173, - 39374 - 11905: 0xF174, - 39375 - 11905: 0xF175, - 39376 - 11905: 0xF176, - 39377 - 11905: 0xF177, - 39378 - 11905: 0xF178, - 39379 - 11905: 0xF179, - 39380 - 11905: 0xF17A, - 39381 - 11905: 0xF17B, - 39382 - 11905: 0xF17C, - 39383 - 11905: 0xF17D, - 39384 - 11905: 0xF17E, - 39385 - 11905: 0xF180, - 39386 - 11905: 0xF181, - 39387 - 11905: 0xF182, - 39388 - 11905: 0xF183, - 39389 - 11905: 0xF184, - 39390 - 11905: 0xF185, - 39391 - 11905: 0xF186, - 39392 - 11905: 0xF187, - 39393 - 11905: 0xF188, - 39394 - 11905: 0xF189, - 39395 - 11905: 0xF18A, - 39396 - 11905: 0xF18B, - 39397 - 11905: 0xF18C, - 39398 - 11905: 0xF18D, - 39399 - 11905: 0xF18E, - 39400 - 11905: 0xF18F, - 39401 - 11905: 0xF190, - 39402 - 11905: 0xF191, - 39403 - 11905: 0xF192, - 39404 - 11905: 0xF193, - 39405 - 11905: 0xF194, - 39406 - 11905: 0xF195, - 39407 - 11905: 0xF196, - 39408 - 11905: 0xF197, - 39409 - 11905: 0xF198, - 39410 - 11905: 0xF199, - 39411 - 11905: 0xF19A, - 39412 - 11905: 0xF19B, - 39413 - 11905: 0xF19C, - 39414 - 11905: 0xF19D, - 39415 - 11905: 0xF19E, - 39416 - 11905: 0xF19F, - 39417 - 11905: 0xF1A0, - 39418 - 11905: 0xF240, - 39419 - 11905: 0xF241, - 39420 - 11905: 0xF242, - 39421 - 11905: 0xF243, - 39422 - 11905: 0xF244, - 39423 - 11905: 0xF245, - 39424 - 11905: 0xF246, - 39425 - 11905: 0xF247, - 39426 - 11905: 0xF248, - 39427 - 11905: 0xF249, - 39428 - 11905: 0xF24A, - 39429 - 11905: 0xF24B, - 39430 - 11905: 0xF24C, - 39431 - 11905: 0xF24D, - 39432 - 11905: 0xF24E, - 39433 - 11905: 0xF24F, - 39434 - 11905: 0xF250, - 39435 - 11905: 0xF251, - 39436 - 11905: 0xF252, - 39437 - 11905: 0xF253, - 39438 - 11905: 0xF254, - 39439 - 11905: 0xF255, - 39440 - 11905: 0xF256, - 39441 - 11905: 0xF257, - 39442 - 11905: 0xF258, - 39443 - 11905: 0xF259, - 39444 - 11905: 0xF25A, - 39445 - 11905: 0xF25B, - 39446 - 11905: 0xF25C, - 39447 - 11905: 0xF25D, - 39448 - 11905: 0xF25E, - 39449 - 11905: 0xF25F, - 39450 - 11905: 0xF260, - 39451 - 11905: 0xF261, - 39452 - 11905: 0xF262, - 39453 - 11905: 0xF263, - 39454 - 11905: 0xF264, - 39455 - 11905: 0xF265, - 39456 - 11905: 0xF266, - 39457 - 11905: 0xF267, - 39458 - 11905: 0xF268, - 39459 - 11905: 0xF269, - 39460 - 11905: 0xF26A, - 39461 - 11905: 0xF26B, - 39462 - 11905: 0xF26C, - 39463 - 11905: 0xF26D, - 39464 - 11905: 0xF26E, - 39465 - 11905: 0xF26F, - 39466 - 11905: 0xF270, - 39467 - 11905: 0xF271, - 39468 - 11905: 0xF272, - 39469 - 11905: 0xF273, - 39470 - 11905: 0xF274, - 39471 - 11905: 0xF275, - 39472 - 11905: 0xF276, - 39473 - 11905: 0xF277, - 39474 - 11905: 0xF278, - 39475 - 11905: 0xF279, - 39476 - 11905: 0xF27A, - 39477 - 11905: 0xF27B, - 39478 - 11905: 0xF27C, - 39479 - 11905: 0xF27D, - 39480 - 11905: 0xF27E, - 39481 - 11905: 0xF280, - 39482 - 11905: 0xF281, - 39483 - 11905: 0xF282, - 39484 - 11905: 0xF283, - 39485 - 11905: 0xF284, - 39486 - 11905: 0xF285, - 39487 - 11905: 0xF286, - 39488 - 11905: 0xF287, - 39489 - 11905: 0xF288, - 39490 - 11905: 0xF289, - 39491 - 11905: 0xF28A, - 39492 - 11905: 0xF28B, - 39493 - 11905: 0xF28C, - 39494 - 11905: 0xF28D, - 39495 - 11905: 0xF28E, - 39496 - 11905: 0xF28F, - 39497 - 11905: 0xF290, - 39498 - 11905: 0xF291, - 39499 - 11905: 0xF292, - 39500 - 11905: 0xF293, - 39501 - 11905: 0xF294, - 39502 - 11905: 0xF295, - 39503 - 11905: 0xF296, - 39504 - 11905: 0xF297, - 39505 - 11905: 0xF298, - 39506 - 11905: 0xF299, - 39507 - 11905: 0xF29A, - 39508 - 11905: 0xF29B, - 39509 - 11905: 0xF29C, - 39510 - 11905: 0xF29D, - 39511 - 11905: 0xF29E, - 39512 - 11905: 0xF29F, - 39513 - 11905: 0xF2A0, - 39514 - 11905: 0xF340, - 39515 - 11905: 0xF341, - 39516 - 11905: 0xF342, - 39517 - 11905: 0xF343, - 39518 - 11905: 0xF344, - 39519 - 11905: 0xF345, - 39520 - 11905: 0xF346, - 39521 - 11905: 0xF347, - 39522 - 11905: 0xF348, - 39523 - 11905: 0xF349, - 39524 - 11905: 0xF34A, - 39525 - 11905: 0xF34B, - 39526 - 11905: 0xF34C, - 39527 - 11905: 0xF34D, - 39528 - 11905: 0xF34E, - 39529 - 11905: 0xF34F, - 39530 - 11905: 0xF350, - 39531 - 11905: 0xF351, - 39532 - 11905: 0xC2ED, - 39533 - 11905: 0xD4A6, - 39534 - 11905: 0xCDD4, - 39535 - 11905: 0xD1B1, - 39536 - 11905: 0xB3DB, - 39537 - 11905: 0xC7FD, - 39538 - 11905: 0xF352, - 39539 - 11905: 0xB2B5, - 39540 - 11905: 0xC2BF, - 39541 - 11905: 0xE6E0, - 39542 - 11905: 0xCABB, - 39543 - 11905: 0xE6E1, - 39544 - 11905: 0xE6E2, - 39545 - 11905: 0xBED4, - 39546 - 11905: 0xE6E3, - 39547 - 11905: 0xD7A4, - 39548 - 11905: 0xCDD5, - 39549 - 11905: 0xE6E5, - 39550 - 11905: 0xBCDD, - 39551 - 11905: 0xE6E4, - 39552 - 11905: 0xE6E6, - 39553 - 11905: 0xE6E7, - 39554 - 11905: 0xC2EE, - 39555 - 11905: 0xF353, - 39556 - 11905: 0xBDBE, - 39557 - 11905: 0xE6E8, - 39558 - 11905: 0xC2E6, - 39559 - 11905: 0xBAA7, - 39560 - 11905: 0xE6E9, - 39561 - 11905: 0xF354, - 39562 - 11905: 0xE6EA, - 39563 - 11905: 0xB3D2, - 39564 - 11905: 0xD1E9, - 39565 - 11905: 0xF355, - 39566 - 11905: 0xF356, - 39567 - 11905: 0xBFA5, - 39568 - 11905: 0xE6EB, - 39569 - 11905: 0xC6EF, - 39570 - 11905: 0xE6EC, - 39571 - 11905: 0xE6ED, - 39572 - 11905: 0xF357, - 39573 - 11905: 0xF358, - 39574 - 11905: 0xE6EE, - 39575 - 11905: 0xC6AD, - 39576 - 11905: 0xE6EF, - 39577 - 11905: 0xF359, - 39578 - 11905: 0xC9A7, - 39579 - 11905: 0xE6F0, - 39580 - 11905: 0xE6F1, - 39581 - 11905: 0xE6F2, - 39582 - 11905: 0xE5B9, - 39583 - 11905: 0xE6F3, - 39584 - 11905: 0xE6F4, - 39585 - 11905: 0xC2E2, - 39586 - 11905: 0xE6F5, - 39587 - 11905: 0xE6F6, - 39588 - 11905: 0xD6E8, - 39589 - 11905: 0xE6F7, - 39590 - 11905: 0xF35A, - 39591 - 11905: 0xE6F8, - 39592 - 11905: 0xB9C7, - 39593 - 11905: 0xF35B, - 39594 - 11905: 0xF35C, - 39595 - 11905: 0xF35D, - 39596 - 11905: 0xF35E, - 39597 - 11905: 0xF35F, - 39598 - 11905: 0xF360, - 39599 - 11905: 0xF361, - 39600 - 11905: 0xF7BB, - 39601 - 11905: 0xF7BA, - 39602 - 11905: 0xF362, - 39603 - 11905: 0xF363, - 39604 - 11905: 0xF364, - 39605 - 11905: 0xF365, - 39606 - 11905: 0xF7BE, - 39607 - 11905: 0xF7BC, - 39608 - 11905: 0xBAA1, - 39609 - 11905: 0xF366, - 39610 - 11905: 0xF7BF, - 39611 - 11905: 0xF367, - 39612 - 11905: 0xF7C0, - 39613 - 11905: 0xF368, - 39614 - 11905: 0xF369, - 39615 - 11905: 0xF36A, - 39616 - 11905: 0xF7C2, - 39617 - 11905: 0xF7C1, - 39618 - 11905: 0xF7C4, - 39619 - 11905: 0xF36B, - 39620 - 11905: 0xF36C, - 39621 - 11905: 0xF7C3, - 39622 - 11905: 0xF36D, - 39623 - 11905: 0xF36E, - 39624 - 11905: 0xF36F, - 39625 - 11905: 0xF370, - 39626 - 11905: 0xF371, - 39627 - 11905: 0xF7C5, - 39628 - 11905: 0xF7C6, - 39629 - 11905: 0xF372, - 39630 - 11905: 0xF373, - 39631 - 11905: 0xF374, - 39632 - 11905: 0xF375, - 39633 - 11905: 0xF7C7, - 39634 - 11905: 0xF376, - 39635 - 11905: 0xCBE8, - 39636 - 11905: 0xF377, - 39637 - 11905: 0xF378, - 39638 - 11905: 0xF379, - 39639 - 11905: 0xF37A, - 39640 - 11905: 0xB8DF, - 39641 - 11905: 0xF37B, - 39642 - 11905: 0xF37C, - 39643 - 11905: 0xF37D, - 39644 - 11905: 0xF37E, - 39645 - 11905: 0xF380, - 39646 - 11905: 0xF381, - 39647 - 11905: 0xF7D4, - 39648 - 11905: 0xF382, - 39649 - 11905: 0xF7D5, - 39650 - 11905: 0xF383, - 39651 - 11905: 0xF384, - 39652 - 11905: 0xF385, - 39653 - 11905: 0xF386, - 39654 - 11905: 0xF7D6, - 39655 - 11905: 0xF387, - 39656 - 11905: 0xF388, - 39657 - 11905: 0xF389, - 39658 - 11905: 0xF38A, - 39659 - 11905: 0xF7D8, - 39660 - 11905: 0xF38B, - 39661 - 11905: 0xF7DA, - 39662 - 11905: 0xF38C, - 39663 - 11905: 0xF7D7, - 39664 - 11905: 0xF38D, - 39665 - 11905: 0xF38E, - 39666 - 11905: 0xF38F, - 39667 - 11905: 0xF390, - 39668 - 11905: 0xF391, - 39669 - 11905: 0xF392, - 39670 - 11905: 0xF393, - 39671 - 11905: 0xF394, - 39672 - 11905: 0xF395, - 39673 - 11905: 0xF7DB, - 39674 - 11905: 0xF396, - 39675 - 11905: 0xF7D9, - 39676 - 11905: 0xF397, - 39677 - 11905: 0xF398, - 39678 - 11905: 0xF399, - 39679 - 11905: 0xF39A, - 39680 - 11905: 0xF39B, - 39681 - 11905: 0xF39C, - 39682 - 11905: 0xF39D, - 39683 - 11905: 0xD7D7, - 39684 - 11905: 0xF39E, - 39685 - 11905: 0xF39F, - 39686 - 11905: 0xF3A0, - 39687 - 11905: 0xF440, - 39688 - 11905: 0xF7DC, - 39689 - 11905: 0xF441, - 39690 - 11905: 0xF442, - 39691 - 11905: 0xF443, - 39692 - 11905: 0xF444, - 39693 - 11905: 0xF445, - 39694 - 11905: 0xF446, - 39695 - 11905: 0xF7DD, - 39696 - 11905: 0xF447, - 39697 - 11905: 0xF448, - 39698 - 11905: 0xF449, - 39699 - 11905: 0xF7DE, - 39700 - 11905: 0xF44A, - 39701 - 11905: 0xF44B, - 39702 - 11905: 0xF44C, - 39703 - 11905: 0xF44D, - 39704 - 11905: 0xF44E, - 39705 - 11905: 0xF44F, - 39706 - 11905: 0xF450, - 39707 - 11905: 0xF451, - 39708 - 11905: 0xF452, - 39709 - 11905: 0xF453, - 39710 - 11905: 0xF454, - 39711 - 11905: 0xF7DF, - 39712 - 11905: 0xF455, - 39713 - 11905: 0xF456, - 39714 - 11905: 0xF457, - 39715 - 11905: 0xF7E0, - 39716 - 11905: 0xF458, - 39717 - 11905: 0xF459, - 39718 - 11905: 0xF45A, - 39719 - 11905: 0xF45B, - 39720 - 11905: 0xF45C, - 39721 - 11905: 0xF45D, - 39722 - 11905: 0xF45E, - 39723 - 11905: 0xF45F, - 39724 - 11905: 0xF460, - 39725 - 11905: 0xF461, - 39726 - 11905: 0xF462, - 39727 - 11905: 0xDBCB, - 39728 - 11905: 0xF463, - 39729 - 11905: 0xF464, - 39730 - 11905: 0xD8AA, - 39731 - 11905: 0xF465, - 39732 - 11905: 0xF466, - 39733 - 11905: 0xF467, - 39734 - 11905: 0xF468, - 39735 - 11905: 0xF469, - 39736 - 11905: 0xF46A, - 39737 - 11905: 0xF46B, - 39738 - 11905: 0xF46C, - 39739 - 11905: 0xE5F7, - 39740 - 11905: 0xB9ED, - 39741 - 11905: 0xF46D, - 39742 - 11905: 0xF46E, - 39743 - 11905: 0xF46F, - 39744 - 11905: 0xF470, - 39745 - 11905: 0xBFFD, - 39746 - 11905: 0xBBEA, - 39747 - 11905: 0xF7C9, - 39748 - 11905: 0xC6C7, - 39749 - 11905: 0xF7C8, - 39750 - 11905: 0xF471, - 39751 - 11905: 0xF7CA, - 39752 - 11905: 0xF7CC, - 39753 - 11905: 0xF7CB, - 39754 - 11905: 0xF472, - 39755 - 11905: 0xF473, - 39756 - 11905: 0xF474, - 39757 - 11905: 0xF7CD, - 39758 - 11905: 0xF475, - 39759 - 11905: 0xCEBA, - 39760 - 11905: 0xF476, - 39761 - 11905: 0xF7CE, - 39762 - 11905: 0xF477, - 39763 - 11905: 0xF478, - 39764 - 11905: 0xC4A7, - 39765 - 11905: 0xF479, - 39766 - 11905: 0xF47A, - 39767 - 11905: 0xF47B, - 39768 - 11905: 0xF47C, - 39769 - 11905: 0xF47D, - 39770 - 11905: 0xF47E, - 39771 - 11905: 0xF480, - 39772 - 11905: 0xF481, - 39773 - 11905: 0xF482, - 39774 - 11905: 0xF483, - 39775 - 11905: 0xF484, - 39776 - 11905: 0xF485, - 39777 - 11905: 0xF486, - 39778 - 11905: 0xF487, - 39779 - 11905: 0xF488, - 39780 - 11905: 0xF489, - 39781 - 11905: 0xF48A, - 39782 - 11905: 0xF48B, - 39783 - 11905: 0xF48C, - 39784 - 11905: 0xF48D, - 39785 - 11905: 0xF48E, - 39786 - 11905: 0xF48F, - 39787 - 11905: 0xF490, - 39788 - 11905: 0xF491, - 39789 - 11905: 0xF492, - 39790 - 11905: 0xF493, - 39791 - 11905: 0xF494, - 39792 - 11905: 0xF495, - 39793 - 11905: 0xF496, - 39794 - 11905: 0xF497, - 39795 - 11905: 0xF498, - 39796 - 11905: 0xF499, - 39797 - 11905: 0xF49A, - 39798 - 11905: 0xF49B, - 39799 - 11905: 0xF49C, - 39800 - 11905: 0xF49D, - 39801 - 11905: 0xF49E, - 39802 - 11905: 0xF49F, - 39803 - 11905: 0xF4A0, - 39804 - 11905: 0xF540, - 39805 - 11905: 0xF541, - 39806 - 11905: 0xF542, - 39807 - 11905: 0xF543, - 39808 - 11905: 0xF544, - 39809 - 11905: 0xF545, - 39810 - 11905: 0xF546, - 39811 - 11905: 0xF547, - 39812 - 11905: 0xF548, - 39813 - 11905: 0xF549, - 39814 - 11905: 0xF54A, - 39815 - 11905: 0xF54B, - 39816 - 11905: 0xF54C, - 39817 - 11905: 0xF54D, - 39818 - 11905: 0xF54E, - 39819 - 11905: 0xF54F, - 39820 - 11905: 0xF550, - 39821 - 11905: 0xF551, - 39822 - 11905: 0xF552, - 39823 - 11905: 0xF553, - 39824 - 11905: 0xF554, - 39825 - 11905: 0xF555, - 39826 - 11905: 0xF556, - 39827 - 11905: 0xF557, - 39828 - 11905: 0xF558, - 39829 - 11905: 0xF559, - 39830 - 11905: 0xF55A, - 39831 - 11905: 0xF55B, - 39832 - 11905: 0xF55C, - 39833 - 11905: 0xF55D, - 39834 - 11905: 0xF55E, - 39835 - 11905: 0xF55F, - 39836 - 11905: 0xF560, - 39837 - 11905: 0xF561, - 39838 - 11905: 0xF562, - 39839 - 11905: 0xF563, - 39840 - 11905: 0xF564, - 39841 - 11905: 0xF565, - 39842 - 11905: 0xF566, - 39843 - 11905: 0xF567, - 39844 - 11905: 0xF568, - 39845 - 11905: 0xF569, - 39846 - 11905: 0xF56A, - 39847 - 11905: 0xF56B, - 39848 - 11905: 0xF56C, - 39849 - 11905: 0xF56D, - 39850 - 11905: 0xF56E, - 39851 - 11905: 0xF56F, - 39852 - 11905: 0xF570, - 39853 - 11905: 0xF571, - 39854 - 11905: 0xF572, - 39855 - 11905: 0xF573, - 39856 - 11905: 0xF574, - 39857 - 11905: 0xF575, - 39858 - 11905: 0xF576, - 39859 - 11905: 0xF577, - 39860 - 11905: 0xF578, - 39861 - 11905: 0xF579, - 39862 - 11905: 0xF57A, - 39863 - 11905: 0xF57B, - 39864 - 11905: 0xF57C, - 39865 - 11905: 0xF57D, - 39866 - 11905: 0xF57E, - 39867 - 11905: 0xF580, - 39868 - 11905: 0xF581, - 39869 - 11905: 0xF582, - 39870 - 11905: 0xF583, - 39871 - 11905: 0xF584, - 39872 - 11905: 0xF585, - 39873 - 11905: 0xF586, - 39874 - 11905: 0xF587, - 39875 - 11905: 0xF588, - 39876 - 11905: 0xF589, - 39877 - 11905: 0xF58A, - 39878 - 11905: 0xF58B, - 39879 - 11905: 0xF58C, - 39880 - 11905: 0xF58D, - 39881 - 11905: 0xF58E, - 39882 - 11905: 0xF58F, - 39883 - 11905: 0xF590, - 39884 - 11905: 0xF591, - 39885 - 11905: 0xF592, - 39886 - 11905: 0xF593, - 39887 - 11905: 0xF594, - 39888 - 11905: 0xF595, - 39889 - 11905: 0xF596, - 39890 - 11905: 0xF597, - 39891 - 11905: 0xF598, - 39892 - 11905: 0xF599, - 39893 - 11905: 0xF59A, - 39894 - 11905: 0xF59B, - 39895 - 11905: 0xF59C, - 39896 - 11905: 0xF59D, - 39897 - 11905: 0xF59E, - 39898 - 11905: 0xF59F, - 39899 - 11905: 0xF5A0, - 39900 - 11905: 0xF640, - 39901 - 11905: 0xF641, - 39902 - 11905: 0xF642, - 39903 - 11905: 0xF643, - 39904 - 11905: 0xF644, - 39905 - 11905: 0xF645, - 39906 - 11905: 0xF646, - 39907 - 11905: 0xF647, - 39908 - 11905: 0xF648, - 39909 - 11905: 0xF649, - 39910 - 11905: 0xF64A, - 39911 - 11905: 0xF64B, - 39912 - 11905: 0xF64C, - 39913 - 11905: 0xF64D, - 39914 - 11905: 0xF64E, - 39915 - 11905: 0xF64F, - 39916 - 11905: 0xF650, - 39917 - 11905: 0xF651, - 39918 - 11905: 0xF652, - 39919 - 11905: 0xF653, - 39920 - 11905: 0xF654, - 39921 - 11905: 0xF655, - 39922 - 11905: 0xF656, - 39923 - 11905: 0xF657, - 39924 - 11905: 0xF658, - 39925 - 11905: 0xF659, - 39926 - 11905: 0xF65A, - 39927 - 11905: 0xF65B, - 39928 - 11905: 0xF65C, - 39929 - 11905: 0xF65D, - 39930 - 11905: 0xF65E, - 39931 - 11905: 0xF65F, - 39932 - 11905: 0xF660, - 39933 - 11905: 0xF661, - 39934 - 11905: 0xF662, - 39935 - 11905: 0xF663, - 39936 - 11905: 0xF664, - 39937 - 11905: 0xF665, - 39938 - 11905: 0xF666, - 39939 - 11905: 0xF667, - 39940 - 11905: 0xF668, - 39941 - 11905: 0xF669, - 39942 - 11905: 0xF66A, - 39943 - 11905: 0xF66B, - 39944 - 11905: 0xF66C, - 39945 - 11905: 0xF66D, - 39946 - 11905: 0xF66E, - 39947 - 11905: 0xF66F, - 39948 - 11905: 0xF670, - 39949 - 11905: 0xF671, - 39950 - 11905: 0xF672, - 39951 - 11905: 0xF673, - 39952 - 11905: 0xF674, - 39953 - 11905: 0xF675, - 39954 - 11905: 0xF676, - 39955 - 11905: 0xF677, - 39956 - 11905: 0xF678, - 39957 - 11905: 0xF679, - 39958 - 11905: 0xF67A, - 39959 - 11905: 0xF67B, - 39960 - 11905: 0xF67C, - 39961 - 11905: 0xF67D, - 39962 - 11905: 0xF67E, - 39963 - 11905: 0xF680, - 39964 - 11905: 0xF681, - 39965 - 11905: 0xF682, - 39966 - 11905: 0xF683, - 39967 - 11905: 0xF684, - 39968 - 11905: 0xF685, - 39969 - 11905: 0xF686, - 39970 - 11905: 0xF687, - 39971 - 11905: 0xF688, - 39972 - 11905: 0xF689, - 39973 - 11905: 0xF68A, - 39974 - 11905: 0xF68B, - 39975 - 11905: 0xF68C, - 39976 - 11905: 0xF68D, - 39977 - 11905: 0xF68E, - 39978 - 11905: 0xF68F, - 39979 - 11905: 0xF690, - 39980 - 11905: 0xF691, - 39981 - 11905: 0xF692, - 39982 - 11905: 0xF693, - 39983 - 11905: 0xF694, - 39984 - 11905: 0xF695, - 39985 - 11905: 0xF696, - 39986 - 11905: 0xF697, - 39987 - 11905: 0xF698, - 39988 - 11905: 0xF699, - 39989 - 11905: 0xF69A, - 39990 - 11905: 0xF69B, - 39991 - 11905: 0xF69C, - 39992 - 11905: 0xF69D, - 39993 - 11905: 0xF69E, - 39994 - 11905: 0xF69F, - 39995 - 11905: 0xF6A0, - 39996 - 11905: 0xF740, - 39997 - 11905: 0xF741, - 39998 - 11905: 0xF742, - 39999 - 11905: 0xF743, - 40000 - 11905: 0xF744, - 40001 - 11905: 0xF745, - 40002 - 11905: 0xF746, - 40003 - 11905: 0xF747, - 40004 - 11905: 0xF748, - 40005 - 11905: 0xF749, - 40006 - 11905: 0xF74A, - 40007 - 11905: 0xF74B, - 40008 - 11905: 0xF74C, - 40009 - 11905: 0xF74D, - 40010 - 11905: 0xF74E, - 40011 - 11905: 0xF74F, - 40012 - 11905: 0xF750, - 40013 - 11905: 0xF751, - 40014 - 11905: 0xF752, - 40015 - 11905: 0xF753, - 40016 - 11905: 0xF754, - 40017 - 11905: 0xF755, - 40018 - 11905: 0xF756, - 40019 - 11905: 0xF757, - 40020 - 11905: 0xF758, - 40021 - 11905: 0xF759, - 40022 - 11905: 0xF75A, - 40023 - 11905: 0xF75B, - 40024 - 11905: 0xF75C, - 40025 - 11905: 0xF75D, - 40026 - 11905: 0xF75E, - 40027 - 11905: 0xF75F, - 40028 - 11905: 0xF760, - 40029 - 11905: 0xF761, - 40030 - 11905: 0xF762, - 40031 - 11905: 0xF763, - 40032 - 11905: 0xF764, - 40033 - 11905: 0xF765, - 40034 - 11905: 0xF766, - 40035 - 11905: 0xF767, - 40036 - 11905: 0xF768, - 40037 - 11905: 0xF769, - 40038 - 11905: 0xF76A, - 40039 - 11905: 0xF76B, - 40040 - 11905: 0xF76C, - 40041 - 11905: 0xF76D, - 40042 - 11905: 0xF76E, - 40043 - 11905: 0xF76F, - 40044 - 11905: 0xF770, - 40045 - 11905: 0xF771, - 40046 - 11905: 0xF772, - 40047 - 11905: 0xF773, - 40048 - 11905: 0xF774, - 40049 - 11905: 0xF775, - 40050 - 11905: 0xF776, - 40051 - 11905: 0xF777, - 40052 - 11905: 0xF778, - 40053 - 11905: 0xF779, - 40054 - 11905: 0xF77A, - 40055 - 11905: 0xF77B, - 40056 - 11905: 0xF77C, - 40057 - 11905: 0xF77D, - 40058 - 11905: 0xF77E, - 40059 - 11905: 0xF780, - 40060 - 11905: 0xD3E3, - 40061 - 11905: 0xF781, - 40062 - 11905: 0xF782, - 40063 - 11905: 0xF6CF, - 40064 - 11905: 0xF783, - 40065 - 11905: 0xC2B3, - 40066 - 11905: 0xF6D0, - 40067 - 11905: 0xF784, - 40068 - 11905: 0xF785, - 40069 - 11905: 0xF6D1, - 40070 - 11905: 0xF6D2, - 40071 - 11905: 0xF6D3, - 40072 - 11905: 0xF6D4, - 40073 - 11905: 0xF786, - 40074 - 11905: 0xF787, - 40075 - 11905: 0xF6D6, - 40076 - 11905: 0xF788, - 40077 - 11905: 0xB1AB, - 40078 - 11905: 0xF6D7, - 40079 - 11905: 0xF789, - 40080 - 11905: 0xF6D8, - 40081 - 11905: 0xF6D9, - 40082 - 11905: 0xF6DA, - 40083 - 11905: 0xF78A, - 40084 - 11905: 0xF6DB, - 40085 - 11905: 0xF6DC, - 40086 - 11905: 0xF78B, - 40087 - 11905: 0xF78C, - 40088 - 11905: 0xF78D, - 40089 - 11905: 0xF78E, - 40090 - 11905: 0xF6DD, - 40091 - 11905: 0xF6DE, - 40092 - 11905: 0xCFCA, - 40093 - 11905: 0xF78F, - 40094 - 11905: 0xF6DF, - 40095 - 11905: 0xF6E0, - 40096 - 11905: 0xF6E1, - 40097 - 11905: 0xF6E2, - 40098 - 11905: 0xF6E3, - 40099 - 11905: 0xF6E4, - 40100 - 11905: 0xC0F0, - 40101 - 11905: 0xF6E5, - 40102 - 11905: 0xF6E6, - 40103 - 11905: 0xF6E7, - 40104 - 11905: 0xF6E8, - 40105 - 11905: 0xF6E9, - 40106 - 11905: 0xF790, - 40107 - 11905: 0xF6EA, - 40108 - 11905: 0xF791, - 40109 - 11905: 0xF6EB, - 40110 - 11905: 0xF6EC, - 40111 - 11905: 0xF792, - 40112 - 11905: 0xF6ED, - 40113 - 11905: 0xF6EE, - 40114 - 11905: 0xF6EF, - 40115 - 11905: 0xF6F0, - 40116 - 11905: 0xF6F1, - 40117 - 11905: 0xF6F2, - 40118 - 11905: 0xF6F3, - 40119 - 11905: 0xF6F4, - 40120 - 11905: 0xBEA8, - 40121 - 11905: 0xF793, - 40122 - 11905: 0xF6F5, - 40123 - 11905: 0xF6F6, - 40124 - 11905: 0xF6F7, - 40125 - 11905: 0xF6F8, - 40126 - 11905: 0xF794, - 40127 - 11905: 0xF795, - 40128 - 11905: 0xF796, - 40129 - 11905: 0xF797, - 40130 - 11905: 0xF798, - 40131 - 11905: 0xC8FA, - 40132 - 11905: 0xF6F9, - 40133 - 11905: 0xF6FA, - 40134 - 11905: 0xF6FB, - 40135 - 11905: 0xF6FC, - 40136 - 11905: 0xF799, - 40137 - 11905: 0xF79A, - 40138 - 11905: 0xF6FD, - 40139 - 11905: 0xF6FE, - 40140 - 11905: 0xF7A1, - 40141 - 11905: 0xF7A2, - 40142 - 11905: 0xF7A3, - 40143 - 11905: 0xF7A4, - 40144 - 11905: 0xF7A5, - 40145 - 11905: 0xF79B, - 40146 - 11905: 0xF79C, - 40147 - 11905: 0xF7A6, - 40148 - 11905: 0xF7A7, - 40149 - 11905: 0xF7A8, - 40150 - 11905: 0xB1EE, - 40151 - 11905: 0xF7A9, - 40152 - 11905: 0xF7AA, - 40153 - 11905: 0xF7AB, - 40154 - 11905: 0xF79D, - 40155 - 11905: 0xF79E, - 40156 - 11905: 0xF7AC, - 40157 - 11905: 0xF7AD, - 40158 - 11905: 0xC1DB, - 40159 - 11905: 0xF7AE, - 40160 - 11905: 0xF79F, - 40161 - 11905: 0xF7A0, - 40162 - 11905: 0xF7AF, - 40163 - 11905: 0xF840, - 40164 - 11905: 0xF841, - 40165 - 11905: 0xF842, - 40166 - 11905: 0xF843, - 40167 - 11905: 0xF844, - 40168 - 11905: 0xF845, - 40169 - 11905: 0xF846, - 40170 - 11905: 0xF847, - 40171 - 11905: 0xF848, - 40172 - 11905: 0xF849, - 40173 - 11905: 0xF84A, - 40174 - 11905: 0xF84B, - 40175 - 11905: 0xF84C, - 40176 - 11905: 0xF84D, - 40177 - 11905: 0xF84E, - 40178 - 11905: 0xF84F, - 40179 - 11905: 0xF850, - 40180 - 11905: 0xF851, - 40181 - 11905: 0xF852, - 40182 - 11905: 0xF853, - 40183 - 11905: 0xF854, - 40184 - 11905: 0xF855, - 40185 - 11905: 0xF856, - 40186 - 11905: 0xF857, - 40187 - 11905: 0xF858, - 40188 - 11905: 0xF859, - 40189 - 11905: 0xF85A, - 40190 - 11905: 0xF85B, - 40191 - 11905: 0xF85C, - 40192 - 11905: 0xF85D, - 40193 - 11905: 0xF85E, - 40194 - 11905: 0xF85F, - 40195 - 11905: 0xF860, - 40196 - 11905: 0xF861, - 40197 - 11905: 0xF862, - 40198 - 11905: 0xF863, - 40199 - 11905: 0xF864, - 40200 - 11905: 0xF865, - 40201 - 11905: 0xF866, - 40202 - 11905: 0xF867, - 40203 - 11905: 0xF868, - 40204 - 11905: 0xF869, - 40205 - 11905: 0xF86A, - 40206 - 11905: 0xF86B, - 40207 - 11905: 0xF86C, - 40208 - 11905: 0xF86D, - 40209 - 11905: 0xF86E, - 40210 - 11905: 0xF86F, - 40211 - 11905: 0xF870, - 40212 - 11905: 0xF871, - 40213 - 11905: 0xF872, - 40214 - 11905: 0xF873, - 40215 - 11905: 0xF874, - 40216 - 11905: 0xF875, - 40217 - 11905: 0xF876, - 40218 - 11905: 0xF877, - 40219 - 11905: 0xF878, - 40220 - 11905: 0xF879, - 40221 - 11905: 0xF87A, - 40222 - 11905: 0xF87B, - 40223 - 11905: 0xF87C, - 40224 - 11905: 0xF87D, - 40225 - 11905: 0xF87E, - 40226 - 11905: 0xF880, - 40227 - 11905: 0xF881, - 40228 - 11905: 0xF882, - 40229 - 11905: 0xF883, - 40230 - 11905: 0xF884, - 40231 - 11905: 0xF885, - 40232 - 11905: 0xF886, - 40233 - 11905: 0xF887, - 40234 - 11905: 0xF888, - 40235 - 11905: 0xF889, - 40236 - 11905: 0xF88A, - 40237 - 11905: 0xF88B, - 40238 - 11905: 0xF88C, - 40239 - 11905: 0xF88D, - 40240 - 11905: 0xF88E, - 40241 - 11905: 0xF88F, - 40242 - 11905: 0xF890, - 40243 - 11905: 0xF891, - 40244 - 11905: 0xF892, - 40245 - 11905: 0xF893, - 40246 - 11905: 0xF894, - 40247 - 11905: 0xF895, - 40248 - 11905: 0xF896, - 40249 - 11905: 0xF897, - 40250 - 11905: 0xF898, - 40251 - 11905: 0xF899, - 40252 - 11905: 0xF89A, - 40253 - 11905: 0xF89B, - 40254 - 11905: 0xF89C, - 40255 - 11905: 0xF89D, - 40256 - 11905: 0xF89E, - 40257 - 11905: 0xF89F, - 40258 - 11905: 0xF8A0, - 40259 - 11905: 0xF940, - 40260 - 11905: 0xF941, - 40261 - 11905: 0xF942, - 40262 - 11905: 0xF943, - 40263 - 11905: 0xF944, - 40264 - 11905: 0xF945, - 40265 - 11905: 0xF946, - 40266 - 11905: 0xF947, - 40267 - 11905: 0xF948, - 40268 - 11905: 0xF949, - 40269 - 11905: 0xF94A, - 40270 - 11905: 0xF94B, - 40271 - 11905: 0xF94C, - 40272 - 11905: 0xF94D, - 40273 - 11905: 0xF94E, - 40274 - 11905: 0xF94F, - 40275 - 11905: 0xF950, - 40276 - 11905: 0xF951, - 40277 - 11905: 0xF952, - 40278 - 11905: 0xF953, - 40279 - 11905: 0xF954, - 40280 - 11905: 0xF955, - 40281 - 11905: 0xF956, - 40282 - 11905: 0xF957, - 40283 - 11905: 0xF958, - 40284 - 11905: 0xF959, - 40285 - 11905: 0xF95A, - 40286 - 11905: 0xF95B, - 40287 - 11905: 0xF95C, - 40288 - 11905: 0xF95D, - 40289 - 11905: 0xF95E, - 40290 - 11905: 0xF95F, - 40291 - 11905: 0xF960, - 40292 - 11905: 0xF961, - 40293 - 11905: 0xF962, - 40294 - 11905: 0xF963, - 40295 - 11905: 0xF964, - 40296 - 11905: 0xF965, - 40297 - 11905: 0xF966, - 40298 - 11905: 0xF967, - 40299 - 11905: 0xF968, - 40300 - 11905: 0xF969, - 40301 - 11905: 0xF96A, - 40302 - 11905: 0xF96B, - 40303 - 11905: 0xF96C, - 40304 - 11905: 0xF96D, - 40305 - 11905: 0xF96E, - 40306 - 11905: 0xF96F, - 40307 - 11905: 0xF970, - 40308 - 11905: 0xF971, - 40309 - 11905: 0xF972, - 40310 - 11905: 0xF973, - 40311 - 11905: 0xF974, - 40312 - 11905: 0xF975, - 40313 - 11905: 0xF976, - 40314 - 11905: 0xF977, - 40315 - 11905: 0xF978, - 40316 - 11905: 0xF979, - 40317 - 11905: 0xF97A, - 40318 - 11905: 0xF97B, - 40319 - 11905: 0xF97C, - 40320 - 11905: 0xF97D, - 40321 - 11905: 0xF97E, - 40322 - 11905: 0xF980, - 40323 - 11905: 0xF981, - 40324 - 11905: 0xF982, - 40325 - 11905: 0xF983, - 40326 - 11905: 0xF984, - 40327 - 11905: 0xF985, - 40328 - 11905: 0xF986, - 40329 - 11905: 0xF987, - 40330 - 11905: 0xF988, - 40331 - 11905: 0xF989, - 40332 - 11905: 0xF98A, - 40333 - 11905: 0xF98B, - 40334 - 11905: 0xF98C, - 40335 - 11905: 0xF98D, - 40336 - 11905: 0xF98E, - 40337 - 11905: 0xF98F, - 40338 - 11905: 0xF990, - 40339 - 11905: 0xF991, - 40340 - 11905: 0xF992, - 40341 - 11905: 0xF993, - 40342 - 11905: 0xF994, - 40343 - 11905: 0xF995, - 40344 - 11905: 0xF996, - 40345 - 11905: 0xF997, - 40346 - 11905: 0xF998, - 40347 - 11905: 0xF999, - 40348 - 11905: 0xF99A, - 40349 - 11905: 0xF99B, - 40350 - 11905: 0xF99C, - 40351 - 11905: 0xF99D, - 40352 - 11905: 0xF99E, - 40353 - 11905: 0xF99F, - 40354 - 11905: 0xF9A0, - 40355 - 11905: 0xFA40, - 40356 - 11905: 0xFA41, - 40357 - 11905: 0xFA42, - 40358 - 11905: 0xFA43, - 40359 - 11905: 0xFA44, - 40360 - 11905: 0xFA45, - 40361 - 11905: 0xFA46, - 40362 - 11905: 0xFA47, - 40363 - 11905: 0xFA48, - 40364 - 11905: 0xFA49, - 40365 - 11905: 0xFA4A, - 40366 - 11905: 0xFA4B, - 40367 - 11905: 0xFA4C, - 40368 - 11905: 0xFA4D, - 40369 - 11905: 0xFA4E, - 40370 - 11905: 0xFA4F, - 40371 - 11905: 0xFA50, - 40372 - 11905: 0xFA51, - 40373 - 11905: 0xFA52, - 40374 - 11905: 0xFA53, - 40375 - 11905: 0xFA54, - 40376 - 11905: 0xFA55, - 40377 - 11905: 0xFA56, - 40378 - 11905: 0xFA57, - 40379 - 11905: 0xFA58, - 40380 - 11905: 0xFA59, - 40381 - 11905: 0xFA5A, - 40382 - 11905: 0xFA5B, - 40383 - 11905: 0xFA5C, - 40384 - 11905: 0xFA5D, - 40385 - 11905: 0xFA5E, - 40386 - 11905: 0xFA5F, - 40387 - 11905: 0xFA60, - 40388 - 11905: 0xFA61, - 40389 - 11905: 0xFA62, - 40390 - 11905: 0xFA63, - 40391 - 11905: 0xFA64, - 40392 - 11905: 0xFA65, - 40393 - 11905: 0xFA66, - 40394 - 11905: 0xFA67, - 40395 - 11905: 0xFA68, - 40396 - 11905: 0xFA69, - 40397 - 11905: 0xFA6A, - 40398 - 11905: 0xFA6B, - 40399 - 11905: 0xFA6C, - 40400 - 11905: 0xFA6D, - 40401 - 11905: 0xFA6E, - 40402 - 11905: 0xFA6F, - 40403 - 11905: 0xFA70, - 40404 - 11905: 0xFA71, - 40405 - 11905: 0xFA72, - 40406 - 11905: 0xFA73, - 40407 - 11905: 0xFA74, - 40408 - 11905: 0xFA75, - 40409 - 11905: 0xFA76, - 40410 - 11905: 0xFA77, - 40411 - 11905: 0xFA78, - 40412 - 11905: 0xFA79, - 40413 - 11905: 0xFA7A, - 40414 - 11905: 0xFA7B, - 40415 - 11905: 0xFA7C, - 40416 - 11905: 0xFA7D, - 40417 - 11905: 0xFA7E, - 40418 - 11905: 0xFA80, - 40419 - 11905: 0xFA81, - 40420 - 11905: 0xFA82, - 40421 - 11905: 0xFA83, - 40422 - 11905: 0xFA84, - 40423 - 11905: 0xFA85, - 40424 - 11905: 0xFA86, - 40425 - 11905: 0xFA87, - 40426 - 11905: 0xFA88, - 40427 - 11905: 0xFA89, - 40428 - 11905: 0xFA8A, - 40429 - 11905: 0xFA8B, - 40430 - 11905: 0xFA8C, - 40431 - 11905: 0xFA8D, - 40432 - 11905: 0xFA8E, - 40433 - 11905: 0xFA8F, - 40434 - 11905: 0xFA90, - 40435 - 11905: 0xFA91, - 40436 - 11905: 0xFA92, - 40437 - 11905: 0xFA93, - 40438 - 11905: 0xFA94, - 40439 - 11905: 0xFA95, - 40440 - 11905: 0xFA96, - 40441 - 11905: 0xFA97, - 40442 - 11905: 0xFA98, - 40443 - 11905: 0xFA99, - 40444 - 11905: 0xFA9A, - 40445 - 11905: 0xFA9B, - 40446 - 11905: 0xFA9C, - 40447 - 11905: 0xFA9D, - 40448 - 11905: 0xFA9E, - 40449 - 11905: 0xFA9F, - 40450 - 11905: 0xFAA0, - 40451 - 11905: 0xFB40, - 40452 - 11905: 0xFB41, - 40453 - 11905: 0xFB42, - 40454 - 11905: 0xFB43, - 40455 - 11905: 0xFB44, - 40456 - 11905: 0xFB45, - 40457 - 11905: 0xFB46, - 40458 - 11905: 0xFB47, - 40459 - 11905: 0xFB48, - 40460 - 11905: 0xFB49, - 40461 - 11905: 0xFB4A, - 40462 - 11905: 0xFB4B, - 40463 - 11905: 0xFB4C, - 40464 - 11905: 0xFB4D, - 40465 - 11905: 0xFB4E, - 40466 - 11905: 0xFB4F, - 40467 - 11905: 0xFB50, - 40468 - 11905: 0xFB51, - 40469 - 11905: 0xFB52, - 40470 - 11905: 0xFB53, - 40471 - 11905: 0xFB54, - 40472 - 11905: 0xFB55, - 40473 - 11905: 0xFB56, - 40474 - 11905: 0xFB57, - 40475 - 11905: 0xFB58, - 40476 - 11905: 0xFB59, - 40477 - 11905: 0xFB5A, - 40478 - 11905: 0xFB5B, - 40479 - 11905: 0xC4F1, - 40480 - 11905: 0xF0AF, - 40481 - 11905: 0xBCA6, - 40482 - 11905: 0xF0B0, - 40483 - 11905: 0xC3F9, - 40484 - 11905: 0xFB5C, - 40485 - 11905: 0xC5B8, - 40486 - 11905: 0xD1BB, - 40487 - 11905: 0xFB5D, - 40488 - 11905: 0xF0B1, - 40489 - 11905: 0xF0B2, - 40490 - 11905: 0xF0B3, - 40491 - 11905: 0xF0B4, - 40492 - 11905: 0xF0B5, - 40493 - 11905: 0xD1BC, - 40494 - 11905: 0xFB5E, - 40495 - 11905: 0xD1EC, - 40496 - 11905: 0xFB5F, - 40497 - 11905: 0xF0B7, - 40498 - 11905: 0xF0B6, - 40499 - 11905: 0xD4A7, - 40500 - 11905: 0xFB60, - 40501 - 11905: 0xCDD2, - 40502 - 11905: 0xF0B8, - 40503 - 11905: 0xF0BA, - 40504 - 11905: 0xF0B9, - 40505 - 11905: 0xF0BB, - 40506 - 11905: 0xF0BC, - 40507 - 11905: 0xFB61, - 40508 - 11905: 0xFB62, - 40509 - 11905: 0xB8EB, - 40510 - 11905: 0xF0BD, - 40511 - 11905: 0xBAE8, - 40512 - 11905: 0xFB63, - 40513 - 11905: 0xF0BE, - 40514 - 11905: 0xF0BF, - 40515 - 11905: 0xBEE9, - 40516 - 11905: 0xF0C0, - 40517 - 11905: 0xB6EC, - 40518 - 11905: 0xF0C1, - 40519 - 11905: 0xF0C2, - 40520 - 11905: 0xF0C3, - 40521 - 11905: 0xF0C4, - 40522 - 11905: 0xC8B5, - 40523 - 11905: 0xF0C5, - 40524 - 11905: 0xF0C6, - 40525 - 11905: 0xFB64, - 40526 - 11905: 0xF0C7, - 40527 - 11905: 0xC5F4, - 40528 - 11905: 0xFB65, - 40529 - 11905: 0xF0C8, - 40530 - 11905: 0xFB66, - 40531 - 11905: 0xFB67, - 40532 - 11905: 0xFB68, - 40533 - 11905: 0xF0C9, - 40534 - 11905: 0xFB69, - 40535 - 11905: 0xF0CA, - 40536 - 11905: 0xF7BD, - 40537 - 11905: 0xFB6A, - 40538 - 11905: 0xF0CB, - 40539 - 11905: 0xF0CC, - 40540 - 11905: 0xF0CD, - 40541 - 11905: 0xFB6B, - 40542 - 11905: 0xF0CE, - 40543 - 11905: 0xFB6C, - 40544 - 11905: 0xFB6D, - 40545 - 11905: 0xFB6E, - 40546 - 11905: 0xFB6F, - 40547 - 11905: 0xF0CF, - 40548 - 11905: 0xBAD7, - 40549 - 11905: 0xFB70, - 40550 - 11905: 0xF0D0, - 40551 - 11905: 0xF0D1, - 40552 - 11905: 0xF0D2, - 40553 - 11905: 0xF0D3, - 40554 - 11905: 0xF0D4, - 40555 - 11905: 0xF0D5, - 40556 - 11905: 0xF0D6, - 40557 - 11905: 0xF0D8, - 40558 - 11905: 0xFB71, - 40559 - 11905: 0xFB72, - 40560 - 11905: 0xD3A5, - 40561 - 11905: 0xF0D7, - 40562 - 11905: 0xFB73, - 40563 - 11905: 0xF0D9, - 40564 - 11905: 0xFB74, - 40565 - 11905: 0xFB75, - 40566 - 11905: 0xFB76, - 40567 - 11905: 0xFB77, - 40568 - 11905: 0xFB78, - 40569 - 11905: 0xFB79, - 40570 - 11905: 0xFB7A, - 40571 - 11905: 0xFB7B, - 40572 - 11905: 0xFB7C, - 40573 - 11905: 0xFB7D, - 40574 - 11905: 0xF5BA, - 40575 - 11905: 0xC2B9, - 40576 - 11905: 0xFB7E, - 40577 - 11905: 0xFB80, - 40578 - 11905: 0xF7E4, - 40579 - 11905: 0xFB81, - 40580 - 11905: 0xFB82, - 40581 - 11905: 0xFB83, - 40582 - 11905: 0xFB84, - 40583 - 11905: 0xF7E5, - 40584 - 11905: 0xF7E6, - 40585 - 11905: 0xFB85, - 40586 - 11905: 0xFB86, - 40587 - 11905: 0xF7E7, - 40588 - 11905: 0xFB87, - 40589 - 11905: 0xFB88, - 40590 - 11905: 0xFB89, - 40591 - 11905: 0xFB8A, - 40592 - 11905: 0xFB8B, - 40593 - 11905: 0xFB8C, - 40594 - 11905: 0xF7E8, - 40595 - 11905: 0xC2B4, - 40596 - 11905: 0xFB8D, - 40597 - 11905: 0xFB8E, - 40598 - 11905: 0xFB8F, - 40599 - 11905: 0xFB90, - 40600 - 11905: 0xFB91, - 40601 - 11905: 0xFB92, - 40602 - 11905: 0xFB93, - 40603 - 11905: 0xFB94, - 40604 - 11905: 0xFB95, - 40605 - 11905: 0xF7EA, - 40606 - 11905: 0xFB96, - 40607 - 11905: 0xF7EB, - 40608 - 11905: 0xFB97, - 40609 - 11905: 0xFB98, - 40610 - 11905: 0xFB99, - 40611 - 11905: 0xFB9A, - 40612 - 11905: 0xFB9B, - 40613 - 11905: 0xFB9C, - 40614 - 11905: 0xC2F3, - 40615 - 11905: 0xFB9D, - 40616 - 11905: 0xFB9E, - 40617 - 11905: 0xFB9F, - 40618 - 11905: 0xFBA0, - 40619 - 11905: 0xFC40, - 40620 - 11905: 0xFC41, - 40621 - 11905: 0xFC42, - 40622 - 11905: 0xFC43, - 40623 - 11905: 0xFC44, - 40624 - 11905: 0xFC45, - 40625 - 11905: 0xFC46, - 40626 - 11905: 0xFC47, - 40627 - 11905: 0xFC48, - 40628 - 11905: 0xF4F0, - 40629 - 11905: 0xFC49, - 40630 - 11905: 0xFC4A, - 40631 - 11905: 0xFC4B, - 40632 - 11905: 0xF4EF, - 40633 - 11905: 0xFC4C, - 40634 - 11905: 0xFC4D, - 40635 - 11905: 0xC2E9, - 40636 - 11905: 0xFC4E, - 40637 - 11905: 0xF7E1, - 40638 - 11905: 0xF7E2, - 40639 - 11905: 0xFC4F, - 40640 - 11905: 0xFC50, - 40641 - 11905: 0xFC51, - 40642 - 11905: 0xFC52, - 40643 - 11905: 0xFC53, - 40644 - 11905: 0xBBC6, - 40645 - 11905: 0xFC54, - 40646 - 11905: 0xFC55, - 40647 - 11905: 0xFC56, - 40648 - 11905: 0xFC57, - 40649 - 11905: 0xD9E4, - 40650 - 11905: 0xFC58, - 40651 - 11905: 0xFC59, - 40652 - 11905: 0xFC5A, - 40653 - 11905: 0xCAF2, - 40654 - 11905: 0xC0E8, - 40655 - 11905: 0xF0A4, - 40656 - 11905: 0xFC5B, - 40657 - 11905: 0xBADA, - 40658 - 11905: 0xFC5C, - 40659 - 11905: 0xFC5D, - 40660 - 11905: 0xC7AD, - 40661 - 11905: 0xFC5E, - 40662 - 11905: 0xFC5F, - 40663 - 11905: 0xFC60, - 40664 - 11905: 0xC4AC, - 40665 - 11905: 0xFC61, - 40666 - 11905: 0xFC62, - 40667 - 11905: 0xF7EC, - 40668 - 11905: 0xF7ED, - 40669 - 11905: 0xF7EE, - 40670 - 11905: 0xFC63, - 40671 - 11905: 0xF7F0, - 40672 - 11905: 0xF7EF, - 40673 - 11905: 0xFC64, - 40674 - 11905: 0xF7F1, - 40675 - 11905: 0xFC65, - 40676 - 11905: 0xFC66, - 40677 - 11905: 0xF7F4, - 40678 - 11905: 0xFC67, - 40679 - 11905: 0xF7F3, - 40680 - 11905: 0xFC68, - 40681 - 11905: 0xF7F2, - 40682 - 11905: 0xF7F5, - 40683 - 11905: 0xFC69, - 40684 - 11905: 0xFC6A, - 40685 - 11905: 0xFC6B, - 40686 - 11905: 0xFC6C, - 40687 - 11905: 0xF7F6, - 40688 - 11905: 0xFC6D, - 40689 - 11905: 0xFC6E, - 40690 - 11905: 0xFC6F, - 40691 - 11905: 0xFC70, - 40692 - 11905: 0xFC71, - 40693 - 11905: 0xFC72, - 40694 - 11905: 0xFC73, - 40695 - 11905: 0xFC74, - 40696 - 11905: 0xFC75, - 40697 - 11905: 0xEDE9, - 40698 - 11905: 0xFC76, - 40699 - 11905: 0xEDEA, - 40700 - 11905: 0xEDEB, - 40701 - 11905: 0xFC77, - 40702 - 11905: 0xF6BC, - 40703 - 11905: 0xFC78, - 40704 - 11905: 0xFC79, - 40705 - 11905: 0xFC7A, - 40706 - 11905: 0xFC7B, - 40707 - 11905: 0xFC7C, - 40708 - 11905: 0xFC7D, - 40709 - 11905: 0xFC7E, - 40710 - 11905: 0xFC80, - 40711 - 11905: 0xFC81, - 40712 - 11905: 0xFC82, - 40713 - 11905: 0xFC83, - 40714 - 11905: 0xFC84, - 40715 - 11905: 0xF6BD, - 40716 - 11905: 0xFC85, - 40717 - 11905: 0xF6BE, - 40718 - 11905: 0xB6A6, - 40719 - 11905: 0xFC86, - 40720 - 11905: 0xD8BE, - 40721 - 11905: 0xFC87, - 40722 - 11905: 0xFC88, - 40723 - 11905: 0xB9C4, - 40724 - 11905: 0xFC89, - 40725 - 11905: 0xFC8A, - 40726 - 11905: 0xFC8B, - 40727 - 11905: 0xD8BB, - 40728 - 11905: 0xFC8C, - 40729 - 11905: 0xDCB1, - 40730 - 11905: 0xFC8D, - 40731 - 11905: 0xFC8E, - 40732 - 11905: 0xFC8F, - 40733 - 11905: 0xFC90, - 40734 - 11905: 0xFC91, - 40735 - 11905: 0xFC92, - 40736 - 11905: 0xCAF3, - 40737 - 11905: 0xFC93, - 40738 - 11905: 0xF7F7, - 40739 - 11905: 0xFC94, - 40740 - 11905: 0xFC95, - 40741 - 11905: 0xFC96, - 40742 - 11905: 0xFC97, - 40743 - 11905: 0xFC98, - 40744 - 11905: 0xFC99, - 40745 - 11905: 0xFC9A, - 40746 - 11905: 0xFC9B, - 40747 - 11905: 0xFC9C, - 40748 - 11905: 0xF7F8, - 40749 - 11905: 0xFC9D, - 40750 - 11905: 0xFC9E, - 40751 - 11905: 0xF7F9, - 40752 - 11905: 0xFC9F, - 40753 - 11905: 0xFCA0, - 40754 - 11905: 0xFD40, - 40755 - 11905: 0xFD41, - 40756 - 11905: 0xFD42, - 40757 - 11905: 0xFD43, - 40758 - 11905: 0xFD44, - 40759 - 11905: 0xF7FB, - 40760 - 11905: 0xFD45, - 40761 - 11905: 0xF7FA, - 40762 - 11905: 0xFD46, - 40763 - 11905: 0xB1C7, - 40764 - 11905: 0xFD47, - 40765 - 11905: 0xF7FC, - 40766 - 11905: 0xF7FD, - 40767 - 11905: 0xFD48, - 40768 - 11905: 0xFD49, - 40769 - 11905: 0xFD4A, - 40770 - 11905: 0xFD4B, - 40771 - 11905: 0xFD4C, - 40772 - 11905: 0xF7FE, - 40773 - 11905: 0xFD4D, - 40774 - 11905: 0xFD4E, - 40775 - 11905: 0xFD4F, - 40776 - 11905: 0xFD50, - 40777 - 11905: 0xFD51, - 40778 - 11905: 0xFD52, - 40779 - 11905: 0xFD53, - 40780 - 11905: 0xFD54, - 40781 - 11905: 0xFD55, - 40782 - 11905: 0xFD56, - 40783 - 11905: 0xFD57, - 40784 - 11905: 0xC6EB, - 40785 - 11905: 0xECB4, - 40786 - 11905: 0xFD58, - 40787 - 11905: 0xFD59, - 40788 - 11905: 0xFD5A, - 40789 - 11905: 0xFD5B, - 40790 - 11905: 0xFD5C, - 40791 - 11905: 0xFD5D, - 40792 - 11905: 0xFD5E, - 40793 - 11905: 0xFD5F, - 40794 - 11905: 0xFD60, - 40795 - 11905: 0xFD61, - 40796 - 11905: 0xFD62, - 40797 - 11905: 0xFD63, - 40798 - 11905: 0xFD64, - 40799 - 11905: 0xFD65, - 40800 - 11905: 0xFD66, - 40801 - 11905: 0xFD67, - 40802 - 11905: 0xFD68, - 40803 - 11905: 0xFD69, - 40804 - 11905: 0xFD6A, - 40805 - 11905: 0xFD6B, - 40806 - 11905: 0xFD6C, - 40807 - 11905: 0xFD6D, - 40808 - 11905: 0xFD6E, - 40809 - 11905: 0xFD6F, - 40810 - 11905: 0xFD70, - 40811 - 11905: 0xFD71, - 40812 - 11905: 0xFD72, - 40813 - 11905: 0xFD73, - 40814 - 11905: 0xFD74, - 40815 - 11905: 0xFD75, - 40816 - 11905: 0xFD76, - 40817 - 11905: 0xFD77, - 40818 - 11905: 0xFD78, - 40819 - 11905: 0xFD79, - 40820 - 11905: 0xFD7A, - 40821 - 11905: 0xFD7B, - 40822 - 11905: 0xFD7C, - 40823 - 11905: 0xFD7D, - 40824 - 11905: 0xFD7E, - 40825 - 11905: 0xFD80, - 40826 - 11905: 0xFD81, - 40827 - 11905: 0xFD82, - 40828 - 11905: 0xFD83, - 40829 - 11905: 0xFD84, - 40830 - 11905: 0xFD85, - 40831 - 11905: 0xB3DD, - 40832 - 11905: 0xF6B3, - 40833 - 11905: 0xFD86, - 40834 - 11905: 0xFD87, - 40835 - 11905: 0xF6B4, - 40836 - 11905: 0xC1E4, - 40837 - 11905: 0xF6B5, - 40838 - 11905: 0xF6B6, - 40839 - 11905: 0xF6B7, - 40840 - 11905: 0xF6B8, - 40841 - 11905: 0xF6B9, - 40842 - 11905: 0xF6BA, - 40843 - 11905: 0xC8A3, - 40844 - 11905: 0xF6BB, - 40845 - 11905: 0xFD88, - 40846 - 11905: 0xFD89, - 40847 - 11905: 0xFD8A, - 40848 - 11905: 0xFD8B, - 40849 - 11905: 0xFD8C, - 40850 - 11905: 0xFD8D, - 40851 - 11905: 0xFD8E, - 40852 - 11905: 0xFD8F, - 40853 - 11905: 0xFD90, - 40854 - 11905: 0xFD91, - 40855 - 11905: 0xFD92, - 40856 - 11905: 0xFD93, - 40857 - 11905: 0xC1FA, - 40858 - 11905: 0xB9A8, - 40859 - 11905: 0xEDE8, - 40860 - 11905: 0xFD94, - 40861 - 11905: 0xFD95, - 40862 - 11905: 0xFD96, - 40863 - 11905: 0xB9EA, - 40864 - 11905: 0xD9DF, - 40865 - 11905: 0xFD97, - 40866 - 11905: 0xFD98, - 40867 - 11905: 0xFD99, - 40868 - 11905: 0xFD9A, - 40869 - 11905: 0xFD9B, -} - -const encode1Low, encode1High = 8208, 9795 - -var encode1 = [...]uint16{ - 8208 - 8208: 0xA95C, - 8211 - 8208: 0xA843, - 8212 - 8208: 0xA1AA, - 8213 - 8208: 0xA844, - 8214 - 8208: 0xA1AC, - 8216 - 8208: 0xA1AE, - 8217 - 8208: 0xA1AF, - 8220 - 8208: 0xA1B0, - 8221 - 8208: 0xA1B1, - 8229 - 8208: 0xA845, - 8230 - 8208: 0xA1AD, - 8240 - 8208: 0xA1EB, - 8242 - 8208: 0xA1E4, - 8243 - 8208: 0xA1E5, - 8245 - 8208: 0xA846, - 8251 - 8208: 0xA1F9, - 8364 - 8208: 0xA2E3, - 8451 - 8208: 0xA1E6, - 8453 - 8208: 0xA847, - 8457 - 8208: 0xA848, - 8470 - 8208: 0xA1ED, - 8481 - 8208: 0xA959, - 8544 - 8208: 0xA2F1, - 8545 - 8208: 0xA2F2, - 8546 - 8208: 0xA2F3, - 8547 - 8208: 0xA2F4, - 8548 - 8208: 0xA2F5, - 8549 - 8208: 0xA2F6, - 8550 - 8208: 0xA2F7, - 8551 - 8208: 0xA2F8, - 8552 - 8208: 0xA2F9, - 8553 - 8208: 0xA2FA, - 8554 - 8208: 0xA2FB, - 8555 - 8208: 0xA2FC, - 8560 - 8208: 0xA2A1, - 8561 - 8208: 0xA2A2, - 8562 - 8208: 0xA2A3, - 8563 - 8208: 0xA2A4, - 8564 - 8208: 0xA2A5, - 8565 - 8208: 0xA2A6, - 8566 - 8208: 0xA2A7, - 8567 - 8208: 0xA2A8, - 8568 - 8208: 0xA2A9, - 8569 - 8208: 0xA2AA, - 8592 - 8208: 0xA1FB, - 8593 - 8208: 0xA1FC, - 8594 - 8208: 0xA1FA, - 8595 - 8208: 0xA1FD, - 8598 - 8208: 0xA849, - 8599 - 8208: 0xA84A, - 8600 - 8208: 0xA84B, - 8601 - 8208: 0xA84C, - 8712 - 8208: 0xA1CA, - 8719 - 8208: 0xA1C7, - 8721 - 8208: 0xA1C6, - 8725 - 8208: 0xA84D, - 8730 - 8208: 0xA1CC, - 8733 - 8208: 0xA1D8, - 8734 - 8208: 0xA1DE, - 8735 - 8208: 0xA84E, - 8736 - 8208: 0xA1CF, - 8739 - 8208: 0xA84F, - 8741 - 8208: 0xA1CE, - 8743 - 8208: 0xA1C4, - 8744 - 8208: 0xA1C5, - 8745 - 8208: 0xA1C9, - 8746 - 8208: 0xA1C8, - 8747 - 8208: 0xA1D2, - 8750 - 8208: 0xA1D3, - 8756 - 8208: 0xA1E0, - 8757 - 8208: 0xA1DF, - 8758 - 8208: 0xA1C3, - 8759 - 8208: 0xA1CB, - 8765 - 8208: 0xA1D7, - 8776 - 8208: 0xA1D6, - 8780 - 8208: 0xA1D5, - 8786 - 8208: 0xA850, - 8800 - 8208: 0xA1D9, - 8801 - 8208: 0xA1D4, - 8804 - 8208: 0xA1DC, - 8805 - 8208: 0xA1DD, - 8806 - 8208: 0xA851, - 8807 - 8208: 0xA852, - 8814 - 8208: 0xA1DA, - 8815 - 8208: 0xA1DB, - 8853 - 8208: 0xA892, - 8857 - 8208: 0xA1D1, - 8869 - 8208: 0xA1CD, - 8895 - 8208: 0xA853, - 8978 - 8208: 0xA1D0, - 9312 - 8208: 0xA2D9, - 9313 - 8208: 0xA2DA, - 9314 - 8208: 0xA2DB, - 9315 - 8208: 0xA2DC, - 9316 - 8208: 0xA2DD, - 9317 - 8208: 0xA2DE, - 9318 - 8208: 0xA2DF, - 9319 - 8208: 0xA2E0, - 9320 - 8208: 0xA2E1, - 9321 - 8208: 0xA2E2, - 9332 - 8208: 0xA2C5, - 9333 - 8208: 0xA2C6, - 9334 - 8208: 0xA2C7, - 9335 - 8208: 0xA2C8, - 9336 - 8208: 0xA2C9, - 9337 - 8208: 0xA2CA, - 9338 - 8208: 0xA2CB, - 9339 - 8208: 0xA2CC, - 9340 - 8208: 0xA2CD, - 9341 - 8208: 0xA2CE, - 9342 - 8208: 0xA2CF, - 9343 - 8208: 0xA2D0, - 9344 - 8208: 0xA2D1, - 9345 - 8208: 0xA2D2, - 9346 - 8208: 0xA2D3, - 9347 - 8208: 0xA2D4, - 9348 - 8208: 0xA2D5, - 9349 - 8208: 0xA2D6, - 9350 - 8208: 0xA2D7, - 9351 - 8208: 0xA2D8, - 9352 - 8208: 0xA2B1, - 9353 - 8208: 0xA2B2, - 9354 - 8208: 0xA2B3, - 9355 - 8208: 0xA2B4, - 9356 - 8208: 0xA2B5, - 9357 - 8208: 0xA2B6, - 9358 - 8208: 0xA2B7, - 9359 - 8208: 0xA2B8, - 9360 - 8208: 0xA2B9, - 9361 - 8208: 0xA2BA, - 9362 - 8208: 0xA2BB, - 9363 - 8208: 0xA2BC, - 9364 - 8208: 0xA2BD, - 9365 - 8208: 0xA2BE, - 9366 - 8208: 0xA2BF, - 9367 - 8208: 0xA2C0, - 9368 - 8208: 0xA2C1, - 9369 - 8208: 0xA2C2, - 9370 - 8208: 0xA2C3, - 9371 - 8208: 0xA2C4, - 9472 - 8208: 0xA9A4, - 9473 - 8208: 0xA9A5, - 9474 - 8208: 0xA9A6, - 9475 - 8208: 0xA9A7, - 9476 - 8208: 0xA9A8, - 9477 - 8208: 0xA9A9, - 9478 - 8208: 0xA9AA, - 9479 - 8208: 0xA9AB, - 9480 - 8208: 0xA9AC, - 9481 - 8208: 0xA9AD, - 9482 - 8208: 0xA9AE, - 9483 - 8208: 0xA9AF, - 9484 - 8208: 0xA9B0, - 9485 - 8208: 0xA9B1, - 9486 - 8208: 0xA9B2, - 9487 - 8208: 0xA9B3, - 9488 - 8208: 0xA9B4, - 9489 - 8208: 0xA9B5, - 9490 - 8208: 0xA9B6, - 9491 - 8208: 0xA9B7, - 9492 - 8208: 0xA9B8, - 9493 - 8208: 0xA9B9, - 9494 - 8208: 0xA9BA, - 9495 - 8208: 0xA9BB, - 9496 - 8208: 0xA9BC, - 9497 - 8208: 0xA9BD, - 9498 - 8208: 0xA9BE, - 9499 - 8208: 0xA9BF, - 9500 - 8208: 0xA9C0, - 9501 - 8208: 0xA9C1, - 9502 - 8208: 0xA9C2, - 9503 - 8208: 0xA9C3, - 9504 - 8208: 0xA9C4, - 9505 - 8208: 0xA9C5, - 9506 - 8208: 0xA9C6, - 9507 - 8208: 0xA9C7, - 9508 - 8208: 0xA9C8, - 9509 - 8208: 0xA9C9, - 9510 - 8208: 0xA9CA, - 9511 - 8208: 0xA9CB, - 9512 - 8208: 0xA9CC, - 9513 - 8208: 0xA9CD, - 9514 - 8208: 0xA9CE, - 9515 - 8208: 0xA9CF, - 9516 - 8208: 0xA9D0, - 9517 - 8208: 0xA9D1, - 9518 - 8208: 0xA9D2, - 9519 - 8208: 0xA9D3, - 9520 - 8208: 0xA9D4, - 9521 - 8208: 0xA9D5, - 9522 - 8208: 0xA9D6, - 9523 - 8208: 0xA9D7, - 9524 - 8208: 0xA9D8, - 9525 - 8208: 0xA9D9, - 9526 - 8208: 0xA9DA, - 9527 - 8208: 0xA9DB, - 9528 - 8208: 0xA9DC, - 9529 - 8208: 0xA9DD, - 9530 - 8208: 0xA9DE, - 9531 - 8208: 0xA9DF, - 9532 - 8208: 0xA9E0, - 9533 - 8208: 0xA9E1, - 9534 - 8208: 0xA9E2, - 9535 - 8208: 0xA9E3, - 9536 - 8208: 0xA9E4, - 9537 - 8208: 0xA9E5, - 9538 - 8208: 0xA9E6, - 9539 - 8208: 0xA9E7, - 9540 - 8208: 0xA9E8, - 9541 - 8208: 0xA9E9, - 9542 - 8208: 0xA9EA, - 9543 - 8208: 0xA9EB, - 9544 - 8208: 0xA9EC, - 9545 - 8208: 0xA9ED, - 9546 - 8208: 0xA9EE, - 9547 - 8208: 0xA9EF, - 9552 - 8208: 0xA854, - 9553 - 8208: 0xA855, - 9554 - 8208: 0xA856, - 9555 - 8208: 0xA857, - 9556 - 8208: 0xA858, - 9557 - 8208: 0xA859, - 9558 - 8208: 0xA85A, - 9559 - 8208: 0xA85B, - 9560 - 8208: 0xA85C, - 9561 - 8208: 0xA85D, - 9562 - 8208: 0xA85E, - 9563 - 8208: 0xA85F, - 9564 - 8208: 0xA860, - 9565 - 8208: 0xA861, - 9566 - 8208: 0xA862, - 9567 - 8208: 0xA863, - 9568 - 8208: 0xA864, - 9569 - 8208: 0xA865, - 9570 - 8208: 0xA866, - 9571 - 8208: 0xA867, - 9572 - 8208: 0xA868, - 9573 - 8208: 0xA869, - 9574 - 8208: 0xA86A, - 9575 - 8208: 0xA86B, - 9576 - 8208: 0xA86C, - 9577 - 8208: 0xA86D, - 9578 - 8208: 0xA86E, - 9579 - 8208: 0xA86F, - 9580 - 8208: 0xA870, - 9581 - 8208: 0xA871, - 9582 - 8208: 0xA872, - 9583 - 8208: 0xA873, - 9584 - 8208: 0xA874, - 9585 - 8208: 0xA875, - 9586 - 8208: 0xA876, - 9587 - 8208: 0xA877, - 9601 - 8208: 0xA878, - 9602 - 8208: 0xA879, - 9603 - 8208: 0xA87A, - 9604 - 8208: 0xA87B, - 9605 - 8208: 0xA87C, - 9606 - 8208: 0xA87D, - 9607 - 8208: 0xA87E, - 9608 - 8208: 0xA880, - 9609 - 8208: 0xA881, - 9610 - 8208: 0xA882, - 9611 - 8208: 0xA883, - 9612 - 8208: 0xA884, - 9613 - 8208: 0xA885, - 9614 - 8208: 0xA886, - 9615 - 8208: 0xA887, - 9619 - 8208: 0xA888, - 9620 - 8208: 0xA889, - 9621 - 8208: 0xA88A, - 9632 - 8208: 0xA1F6, - 9633 - 8208: 0xA1F5, - 9650 - 8208: 0xA1F8, - 9651 - 8208: 0xA1F7, - 9660 - 8208: 0xA88B, - 9661 - 8208: 0xA88C, - 9670 - 8208: 0xA1F4, - 9671 - 8208: 0xA1F3, - 9675 - 8208: 0xA1F0, - 9678 - 8208: 0xA1F2, - 9679 - 8208: 0xA1F1, - 9698 - 8208: 0xA88D, - 9699 - 8208: 0xA88E, - 9700 - 8208: 0xA88F, - 9701 - 8208: 0xA890, - 9733 - 8208: 0xA1EF, - 9734 - 8208: 0xA1EE, - 9737 - 8208: 0xA891, - 9792 - 8208: 0xA1E2, - 9794 - 8208: 0xA1E1, -} - -const encode2Low, encode2High = 164, 1106 - -var encode2 = [...]uint16{ - 164 - 164: 0xA1E8, - 167 - 164: 0xA1EC, - 168 - 164: 0xA1A7, - 176 - 164: 0xA1E3, - 177 - 164: 0xA1C0, - 183 - 164: 0xA1A4, - 215 - 164: 0xA1C1, - 224 - 164: 0xA8A4, - 225 - 164: 0xA8A2, - 232 - 164: 0xA8A8, - 233 - 164: 0xA8A6, - 234 - 164: 0xA8BA, - 236 - 164: 0xA8AC, - 237 - 164: 0xA8AA, - 242 - 164: 0xA8B0, - 243 - 164: 0xA8AE, - 247 - 164: 0xA1C2, - 249 - 164: 0xA8B4, - 250 - 164: 0xA8B2, - 252 - 164: 0xA8B9, - 257 - 164: 0xA8A1, - 275 - 164: 0xA8A5, - 283 - 164: 0xA8A7, - 299 - 164: 0xA8A9, - 324 - 164: 0xA8BD, - 328 - 164: 0xA8BE, - 333 - 164: 0xA8AD, - 363 - 164: 0xA8B1, - 462 - 164: 0xA8A3, - 464 - 164: 0xA8AB, - 466 - 164: 0xA8AF, - 468 - 164: 0xA8B3, - 470 - 164: 0xA8B5, - 472 - 164: 0xA8B6, - 474 - 164: 0xA8B7, - 476 - 164: 0xA8B8, - 505 - 164: 0xA8BF, - 593 - 164: 0xA8BB, - 609 - 164: 0xA8C0, - 711 - 164: 0xA1A6, - 713 - 164: 0xA1A5, - 714 - 164: 0xA840, - 715 - 164: 0xA841, - 729 - 164: 0xA842, - 913 - 164: 0xA6A1, - 914 - 164: 0xA6A2, - 915 - 164: 0xA6A3, - 916 - 164: 0xA6A4, - 917 - 164: 0xA6A5, - 918 - 164: 0xA6A6, - 919 - 164: 0xA6A7, - 920 - 164: 0xA6A8, - 921 - 164: 0xA6A9, - 922 - 164: 0xA6AA, - 923 - 164: 0xA6AB, - 924 - 164: 0xA6AC, - 925 - 164: 0xA6AD, - 926 - 164: 0xA6AE, - 927 - 164: 0xA6AF, - 928 - 164: 0xA6B0, - 929 - 164: 0xA6B1, - 931 - 164: 0xA6B2, - 932 - 164: 0xA6B3, - 933 - 164: 0xA6B4, - 934 - 164: 0xA6B5, - 935 - 164: 0xA6B6, - 936 - 164: 0xA6B7, - 937 - 164: 0xA6B8, - 945 - 164: 0xA6C1, - 946 - 164: 0xA6C2, - 947 - 164: 0xA6C3, - 948 - 164: 0xA6C4, - 949 - 164: 0xA6C5, - 950 - 164: 0xA6C6, - 951 - 164: 0xA6C7, - 952 - 164: 0xA6C8, - 953 - 164: 0xA6C9, - 954 - 164: 0xA6CA, - 955 - 164: 0xA6CB, - 956 - 164: 0xA6CC, - 957 - 164: 0xA6CD, - 958 - 164: 0xA6CE, - 959 - 164: 0xA6CF, - 960 - 164: 0xA6D0, - 961 - 164: 0xA6D1, - 963 - 164: 0xA6D2, - 964 - 164: 0xA6D3, - 965 - 164: 0xA6D4, - 966 - 164: 0xA6D5, - 967 - 164: 0xA6D6, - 968 - 164: 0xA6D7, - 969 - 164: 0xA6D8, - 1025 - 164: 0xA7A7, - 1040 - 164: 0xA7A1, - 1041 - 164: 0xA7A2, - 1042 - 164: 0xA7A3, - 1043 - 164: 0xA7A4, - 1044 - 164: 0xA7A5, - 1045 - 164: 0xA7A6, - 1046 - 164: 0xA7A8, - 1047 - 164: 0xA7A9, - 1048 - 164: 0xA7AA, - 1049 - 164: 0xA7AB, - 1050 - 164: 0xA7AC, - 1051 - 164: 0xA7AD, - 1052 - 164: 0xA7AE, - 1053 - 164: 0xA7AF, - 1054 - 164: 0xA7B0, - 1055 - 164: 0xA7B1, - 1056 - 164: 0xA7B2, - 1057 - 164: 0xA7B3, - 1058 - 164: 0xA7B4, - 1059 - 164: 0xA7B5, - 1060 - 164: 0xA7B6, - 1061 - 164: 0xA7B7, - 1062 - 164: 0xA7B8, - 1063 - 164: 0xA7B9, - 1064 - 164: 0xA7BA, - 1065 - 164: 0xA7BB, - 1066 - 164: 0xA7BC, - 1067 - 164: 0xA7BD, - 1068 - 164: 0xA7BE, - 1069 - 164: 0xA7BF, - 1070 - 164: 0xA7C0, - 1071 - 164: 0xA7C1, - 1072 - 164: 0xA7D1, - 1073 - 164: 0xA7D2, - 1074 - 164: 0xA7D3, - 1075 - 164: 0xA7D4, - 1076 - 164: 0xA7D5, - 1077 - 164: 0xA7D6, - 1078 - 164: 0xA7D8, - 1079 - 164: 0xA7D9, - 1080 - 164: 0xA7DA, - 1081 - 164: 0xA7DB, - 1082 - 164: 0xA7DC, - 1083 - 164: 0xA7DD, - 1084 - 164: 0xA7DE, - 1085 - 164: 0xA7DF, - 1086 - 164: 0xA7E0, - 1087 - 164: 0xA7E1, - 1088 - 164: 0xA7E2, - 1089 - 164: 0xA7E3, - 1090 - 164: 0xA7E4, - 1091 - 164: 0xA7E5, - 1092 - 164: 0xA7E6, - 1093 - 164: 0xA7E7, - 1094 - 164: 0xA7E8, - 1095 - 164: 0xA7E9, - 1096 - 164: 0xA7EA, - 1097 - 164: 0xA7EB, - 1098 - 164: 0xA7EC, - 1099 - 164: 0xA7ED, - 1100 - 164: 0xA7EE, - 1101 - 164: 0xA7EF, - 1102 - 164: 0xA7F0, - 1103 - 164: 0xA7F1, - 1105 - 164: 0xA7D7, -} - -const encode3Low, encode3High = 65072, 65510 - -var encode3 = [...]uint16{ - 65072 - 65072: 0xA955, - 65073 - 65072: 0xA6F2, - 65075 - 65072: 0xA6F4, - 65076 - 65072: 0xA6F5, - 65077 - 65072: 0xA6E0, - 65078 - 65072: 0xA6E1, - 65079 - 65072: 0xA6F0, - 65080 - 65072: 0xA6F1, - 65081 - 65072: 0xA6E2, - 65082 - 65072: 0xA6E3, - 65083 - 65072: 0xA6EE, - 65084 - 65072: 0xA6EF, - 65085 - 65072: 0xA6E6, - 65086 - 65072: 0xA6E7, - 65087 - 65072: 0xA6E4, - 65088 - 65072: 0xA6E5, - 65089 - 65072: 0xA6E8, - 65090 - 65072: 0xA6E9, - 65091 - 65072: 0xA6EA, - 65092 - 65072: 0xA6EB, - 65097 - 65072: 0xA968, - 65098 - 65072: 0xA969, - 65099 - 65072: 0xA96A, - 65100 - 65072: 0xA96B, - 65101 - 65072: 0xA96C, - 65102 - 65072: 0xA96D, - 65103 - 65072: 0xA96E, - 65104 - 65072: 0xA96F, - 65105 - 65072: 0xA970, - 65106 - 65072: 0xA971, - 65108 - 65072: 0xA972, - 65109 - 65072: 0xA973, - 65110 - 65072: 0xA974, - 65111 - 65072: 0xA975, - 65113 - 65072: 0xA976, - 65114 - 65072: 0xA977, - 65115 - 65072: 0xA978, - 65116 - 65072: 0xA979, - 65117 - 65072: 0xA97A, - 65118 - 65072: 0xA97B, - 65119 - 65072: 0xA97C, - 65120 - 65072: 0xA97D, - 65121 - 65072: 0xA97E, - 65122 - 65072: 0xA980, - 65123 - 65072: 0xA981, - 65124 - 65072: 0xA982, - 65125 - 65072: 0xA983, - 65126 - 65072: 0xA984, - 65128 - 65072: 0xA985, - 65129 - 65072: 0xA986, - 65130 - 65072: 0xA987, - 65131 - 65072: 0xA988, - 65281 - 65072: 0xA3A1, - 65282 - 65072: 0xA3A2, - 65283 - 65072: 0xA3A3, - 65284 - 65072: 0xA1E7, - 65285 - 65072: 0xA3A5, - 65286 - 65072: 0xA3A6, - 65287 - 65072: 0xA3A7, - 65288 - 65072: 0xA3A8, - 65289 - 65072: 0xA3A9, - 65290 - 65072: 0xA3AA, - 65291 - 65072: 0xA3AB, - 65292 - 65072: 0xA3AC, - 65293 - 65072: 0xA3AD, - 65294 - 65072: 0xA3AE, - 65295 - 65072: 0xA3AF, - 65296 - 65072: 0xA3B0, - 65297 - 65072: 0xA3B1, - 65298 - 65072: 0xA3B2, - 65299 - 65072: 0xA3B3, - 65300 - 65072: 0xA3B4, - 65301 - 65072: 0xA3B5, - 65302 - 65072: 0xA3B6, - 65303 - 65072: 0xA3B7, - 65304 - 65072: 0xA3B8, - 65305 - 65072: 0xA3B9, - 65306 - 65072: 0xA3BA, - 65307 - 65072: 0xA3BB, - 65308 - 65072: 0xA3BC, - 65309 - 65072: 0xA3BD, - 65310 - 65072: 0xA3BE, - 65311 - 65072: 0xA3BF, - 65312 - 65072: 0xA3C0, - 65313 - 65072: 0xA3C1, - 65314 - 65072: 0xA3C2, - 65315 - 65072: 0xA3C3, - 65316 - 65072: 0xA3C4, - 65317 - 65072: 0xA3C5, - 65318 - 65072: 0xA3C6, - 65319 - 65072: 0xA3C7, - 65320 - 65072: 0xA3C8, - 65321 - 65072: 0xA3C9, - 65322 - 65072: 0xA3CA, - 65323 - 65072: 0xA3CB, - 65324 - 65072: 0xA3CC, - 65325 - 65072: 0xA3CD, - 65326 - 65072: 0xA3CE, - 65327 - 65072: 0xA3CF, - 65328 - 65072: 0xA3D0, - 65329 - 65072: 0xA3D1, - 65330 - 65072: 0xA3D2, - 65331 - 65072: 0xA3D3, - 65332 - 65072: 0xA3D4, - 65333 - 65072: 0xA3D5, - 65334 - 65072: 0xA3D6, - 65335 - 65072: 0xA3D7, - 65336 - 65072: 0xA3D8, - 65337 - 65072: 0xA3D9, - 65338 - 65072: 0xA3DA, - 65339 - 65072: 0xA3DB, - 65340 - 65072: 0xA3DC, - 65341 - 65072: 0xA3DD, - 65342 - 65072: 0xA3DE, - 65343 - 65072: 0xA3DF, - 65344 - 65072: 0xA3E0, - 65345 - 65072: 0xA3E1, - 65346 - 65072: 0xA3E2, - 65347 - 65072: 0xA3E3, - 65348 - 65072: 0xA3E4, - 65349 - 65072: 0xA3E5, - 65350 - 65072: 0xA3E6, - 65351 - 65072: 0xA3E7, - 65352 - 65072: 0xA3E8, - 65353 - 65072: 0xA3E9, - 65354 - 65072: 0xA3EA, - 65355 - 65072: 0xA3EB, - 65356 - 65072: 0xA3EC, - 65357 - 65072: 0xA3ED, - 65358 - 65072: 0xA3EE, - 65359 - 65072: 0xA3EF, - 65360 - 65072: 0xA3F0, - 65361 - 65072: 0xA3F1, - 65362 - 65072: 0xA3F2, - 65363 - 65072: 0xA3F3, - 65364 - 65072: 0xA3F4, - 65365 - 65072: 0xA3F5, - 65366 - 65072: 0xA3F6, - 65367 - 65072: 0xA3F7, - 65368 - 65072: 0xA3F8, - 65369 - 65072: 0xA3F9, - 65370 - 65072: 0xA3FA, - 65371 - 65072: 0xA3FB, - 65372 - 65072: 0xA3FC, - 65373 - 65072: 0xA3FD, - 65374 - 65072: 0xA1AB, - 65504 - 65072: 0xA1E9, - 65505 - 65072: 0xA1EA, - 65506 - 65072: 0xA956, - 65507 - 65072: 0xA3FE, - 65508 - 65072: 0xA957, - 65509 - 65072: 0xA3A4, -} - -const encode4Low, encode4High = 63788, 64042 - -var encode4 = [...]uint16{ - 63788 - 63788: 0xFD9C, - 63865 - 63788: 0xFD9D, - 63893 - 63788: 0xFD9E, - 63975 - 63788: 0xFD9F, - 63985 - 63788: 0xFDA0, - 64012 - 63788: 0xFE40, - 64013 - 63788: 0xFE41, - 64014 - 63788: 0xFE42, - 64015 - 63788: 0xFE43, - 64017 - 63788: 0xFE44, - 64019 - 63788: 0xFE45, - 64020 - 63788: 0xFE46, - 64024 - 63788: 0xFE47, - 64031 - 63788: 0xFE48, - 64032 - 63788: 0xFE49, - 64033 - 63788: 0xFE4A, - 64035 - 63788: 0xFE4B, - 64036 - 63788: 0xFE4C, - 64039 - 63788: 0xFE4D, - 64040 - 63788: 0xFE4E, - 64041 - 63788: 0xFE4F, -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-gb18030.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-gb18030.txt deleted file mode 100644 index bd7a5722..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-gb18030.txt +++ /dev/null @@ -1,510 +0,0 @@ -This file was derived from -http://www.gutenberg.org/cache/epub/4650/pg4650.txt --------- - - CANDIDE, - - ou - - L'OPTIMISME, - - TRADUIT DE L'ALLEMAND - - DE M. LE DOCTEUR RALPH, - - AVEC LES ADDITIONS - - QU'ON A TROUV0‡7ES DANS LA POCHE DU DOCTEUR, LORSQU'IL MOURUT - - 0†8 MINDEN, L'AN DE GR0‡0CE 1759 - - 1759 - - - -CHAPITRE I. - -Comment Candide fut ¨¦lev¨¦ dans un beau ch0‰9teau, et comment il fut -chass¨¦ d'icelui. - -Il y avait en Vestphalie, dans le ch0‰9teau de M. le baron de -Thunder-ten-tronckh, un jeune gar0Š4on ¨¤ qui la nature avait donn¨¦ -les moeurs les plus douces. Sa physionomie annon0Š4ait son 0‰9me. -Il avait le jugement assez droit, avec l'esprit le plus simple; -c'est, je crois, pour cette raison qu'on le nommait Candide. Les -anciens domestiques de la maison soup0Š4onnaient qu'il ¨¦tait fils -de la soeur de monsieur le baron et d'un bon et honn¨ºte -gentilhomme du voisinage, que cette demoiselle ne voulut jamais -¨¦pouser parce qu'il n'avait pu prouver que soixante et onze -quartiers, et que le reste de son arbre g¨¦n¨¦alogique avait ¨¦t¨¦ -perdu par l'injure du temps. - -Monsieur le baron ¨¦tait un des plus puissants seigneurs de la -Westphalie, car son ch0‰9teau avait une porte et des fen¨ºtres. Sa -grande salle m¨ºme ¨¦tait orn¨¦e d'une tapisserie. Tous les chiens -de ses basses-cours composaient une meute dans le besoin; ses -palefreniers ¨¦taient ses piqueurs; le vicaire du village ¨¦tait -son grand-aum0‹0nier. Ils l'appelaient tous monseigneur, et ils -riaient quand il fesait des contes. - -Madame la baronne, qui pesait environ trois cent cinquante -livres, s'attirait par l¨¤ une tr¨¨s grande consid¨¦ration, et -fesait les honneurs de la maison avec une dignit¨¦ qui la rendait -encore plus respectable. Sa fille Cun¨¦gonde, 0‰9g¨¦e de dix-sept -ans, ¨¦tait haute en couleur, fra0Š6che, grasse, app¨¦tissante. Le -fils du baron paraissait en tout digne de son p¨¨re. Le -pr¨¦cepteur Pangloss[1] ¨¦tait l'oracle de la maison, et le petit -Candide ¨¦coutait ses le0Š4ons avec toute la bonne foi de son 0‰9ge et -de son caract¨¨re. - - [1] De _pan_, tout, et _glossa_, langue. B. - - -Pangloss enseignait la m¨¦taphysico-th¨¦ologo-cosmolonigologie. Il -prouvait admirablement qu'il n'y a point d'effet sans cause, et -que, dans ce meilleur des mondes possibles, le ch0‰9teau de -monseigneur le baron ¨¦tait le plus beau des ch0‰9teaux, et madame -la meilleure des baronnes possibles. - -Il est d¨¦montr¨¦, disait-il, que les choses ne peuvent ¨ºtre -autrement; car tout ¨¦tant fait pour une fin, tout est -n¨¦cessairement pour la meilleure fin. Remarquez bien que les nez -ont ¨¦t¨¦ faits pour porter des lunettes; aussi avons-nous des -lunettes[2]. Les jambes sont visiblement institu¨¦es pour ¨ºtre -chauss¨¦es, et nous avons des chausses. Les pierres ont ¨¦t¨¦ -form¨¦es pour ¨ºtre taill¨¦es et pour en faire des ch0‰9teaux; aussi -monseigneur a un tr¨¨s beau ch0‰9teau: le plus grand baron de la -province doit ¨ºtre le mieux log¨¦; et les cochons ¨¦tant faits pour -¨ºtre mang¨¦s, nous mangeons du porc toute l'ann¨¦e: par cons¨¦quent, -ceux qui ont avanc¨¦ que tout est bien ont dit une sottise; il -fallait dire que tout est au mieux. - - [2] Voyez tome XXVII, page 528; et dans les _M¨¦langes_, ann¨¦e - 1738, le chapitre XI de la troisi¨¨me partie des _0‡7l¨¦ments de la - philosophie de Newton_; et ann¨¦e 1768, le chapitre X des - _Singularit¨¦s de la nature_. B. - - -Candide ¨¦coutait attentivement, et croyait innocemment; car il -trouvait mademoiselle Cun¨¦gonde extr¨ºmement belle, quoiqu'il ne -pr0Š6t jamais la hardiesse de le lui dire. Il concluait qu'apr¨¨s -le bonheur d'¨ºtre n¨¦ baron de Thunder-ten-tronckh, le second -degr¨¦ de bonheur ¨¦tait d'¨ºtre mademoiselle Cun¨¦gonde; le -troisi¨¨me, de la voir tous les jours; et le quatri¨¨me, d'entendre -ma0Š6tre Pangloss, le plus grand philosophe de la province, et par -cons¨¦quent de toute la terre. - -Un jour Cun¨¦gonde, en se promenant aupr¨¨s du ch0‰9teau, dans le -petit bois qu'on appelait parc, vit entre des broussailles le -docteur Pangloss qui donnait une le0Š4on de physique exp¨¦rimentale -¨¤ la femme de chambre de sa m¨¨re, petite brune tr¨¨s jolie et tr¨¨s -docile. Comme mademoiselle Cun¨¦gonde avait beaucoup de -disposition pour les sciences, elle observa, sans souffler, les -exp¨¦riences r¨¦it¨¦r¨¦es dont elle fut t¨¦moin; elle vit clairement -la raison suffisante du docteur, les effets et les causes, et -s'en retourna tout agit¨¦e, toute pensive, toute remplie du d¨¦sir -d'¨ºtre savante, songeant qu'elle pourrait bien ¨ºtre la raison -suffisante du jeune Candide, qui pouvait aussi ¨ºtre la sienne. - -Elle rencontra Candide en revenant au ch0‰9teau, et rougit: Candide -rougit aussi . Elle lui dit bonjour d'une voix entrecoup¨¦e; et -Candide lui parla sans savoir ce qu'il disait. Le lendemain, -apr¨¨s le d0Š6ner, comme on sortait de table, Cun¨¦gonde et Candide -se trouv¨¨rent derri¨¨re un paravent; Cun¨¦gonde laissa tomber son -mouchoir, Candide le ramassa; elle lui prit innocemment la main; -le jeune homme baisa innocemment la main de la jeune demoiselle -avec une vivacit¨¦, une sensibilit¨¦, une gr0‰9ce toute particuli¨¨re; -leurs bouches se rencontr¨¨rent, leurs yeux s'enflamm¨¨rent, leurs -genoux trembl¨¨rent, leurs mains s'¨¦gar¨¨rent. M. le baron de -Thunder-ten-tronckh passa aupr¨¨s du paravent, et voyant cette -cause et cet effet, chassa Candide du ch0‰9teau ¨¤ grands coups de -pied dans le derri¨¨re. Cun¨¦gonde s'¨¦vanouit: elle fut soufflet¨¦e -par madame la baronne d¨¨s qu'elle fut revenue ¨¤ elle-m¨ºme; et -tout fut constern¨¦ dans le plus beau et le plus agr¨¦able des -ch0‰9teaux possibles. - - - -CHAPITRE II - -Ce que devint Candide parmi les Bulgares. - - -Candide, chass¨¦ du paradis terrestre, marcha longtemps sans -savoir o¨´, pleurant, levant les yeux au ciel, les tournant -souvent vers le plus beau des ch0‰9teaux qui renfermait la plus -belle des baronnettes; il se coucha sans souper au milieu des -champs entre deux sillons; la neige tombait ¨¤ gros flocons. -Candide, tout transi, se tra0Š6na le lendemain vers la ville -voisine, qui s'appelle _Valdberghoff-trarbk-dikdorff_, n'ayant -point d'argent, mourant de faim et de lassitude. Il s'arr¨ºta -tristement ¨¤ la porte d'un cabaret. Deux hommes habill¨¦s de bleu -le remarqu¨¨rent: Camarade, dit l'un, voil¨¤ un jeune homme tr¨¨s -bien fait, et qui a la taille requise; ils s'avanc¨¨rent vers -Candide et le pri¨¨rent ¨¤ d0Š6ner tr¨¨s civilement.--Messieurs, leur -dit Candide avec une modestie charmante, vous me faites beaucoup -d'honneur, mais je n'ai pas de quoi payer mon ¨¦cot.--Ah! -monsieur, lui dit un des bleus, les personnes de votre figure et -de votre m¨¦rite ne paient jamais rien: n'avez-vous pas cinq pieds -cinq pouces de haut?--Oui, messieurs, c'est ma taille, dit-il en -fesant la r¨¦v¨¦rence.--Ah! monsieur, mettez-vous ¨¤ table; non -seulement nous vous d¨¦fraierons, mais nous ne souffrirons jamais -qu'un homme comme vous manque d'argent; les hommes ne sont faits -que pour se secourir les uns les autres.--Vous avez raison, dit -Candide; c'est ce que M. Pangloss m'a toujours dit, et je vois -bien que tout est au mieux. On le prie d'accepter quelques ¨¦cus, -il les prend et veut faire son billet; on n'en veut point, on se -met ¨¤ table. N'aimez-vous pas tendrement?....--Oh! oui, -r¨¦pond-il, j'aime tendrement mademoiselle Cun¨¦gonde.--Non, dit -l'un de ces messieurs, nous vous demandons si vous n'aimez pas -tendrement le roi des Bulgares?--Point du tout, dit-il, car je ne -l'ai jamais vu.--Comment! c'est le plus charmant des rois, et il -faut boire ¨¤ sa sant¨¦.--Oh! tr¨¨s volontiers, messieurs. Et il -boit. C'en est assez, lui dit-on, vous voil¨¤ l'appui, le -soutien, le d¨¦fenseur, le h¨¦ros des Bulgares; votre fortune est -faite, et votre gloire est assur¨¦e. On lui met sur-le-champ les -fers aux pieds, et on le m¨¨ne au r¨¦giment. On le fait tourner ¨¤ -droite, ¨¤ gauche, hausser la baguette, remettre la baguette, -coucher en joue, tirer, doubler le pas, et on lui donne trente -coups de b0‰9ton; le lendemain, il fait l'exercice un peu moins -mal, et il ne re0Š4oit que vingt coups; le surlendemain, on ne lui -en donne que dix, et il est regard¨¦ par ses camarades comme un -prodige. - -Candide, tout stup¨¦fait, ne d¨¦m¨ºlait pas encore trop bien comment -il ¨¦tait un h¨¦ros. Il s'avisa un beau jour de printemps de -s'aller promener, marchant tout droit devant lui, croyant que -c'¨¦tait un privil¨¨ge de l'esp¨¨ce humaine, comme de l'esp¨¨ce -animale, de se servir de ses jambes ¨¤ son plaisir. Il n'eut pas -fait deux lieues que voil¨¤ quatre autres h¨¦ros de six pieds qui -l'atteignent, qui le lient, qui le m¨¨nent dans un cachot. On lui -demanda juridiquement ce qu'il aimait le mieux d'¨ºtre fustig¨¦ -trente-six fois par tout le r¨¦giment, ou de recevoir ¨¤-la-fois -douze balles de plomb dans la cervelle. Il eut beau dire que les -volont¨¦s sont libres, et qu'il ne voulait ni l'un ni l'autre, il -fallut faire un choix; il se d¨¦termina, en vertu du don de Dieu -qu'on nomme _libert¨¦_, ¨¤ passer trente-six fois par les -baguettes; il essuya deux promenades. Le r¨¦giment ¨¦tait compos¨¦ -de deux mille hommes; cela lui composa quatre mille coups de -baguette, qui, depuis la nuque du cou jusqu'au cul, lui -d¨¦couvrirent les muscles et les nerfs. Comme on allait proc¨¦der -¨¤ la troisi¨¨me course, Candide, n'en pouvant plus, demanda en -gr0‰9ce qu'on voul0‹4t bien avoir la bont¨¦ de lui casser la t¨ºte; il -obtint cette faveur; on lui bande les yeux; on le fait mettre ¨¤ -genoux. Le roi des Bulgares passe dans ce moment, s'informe du -crime du patient; et comme ce roi avait un grand g¨¦nie, il -comprit, par tout ce qu'il apprit de Candide, que c'¨¦tait un -jeune m¨¦taphysicien fort ignorant des choses de ce monde, et il -lui accorda sa gr0‰9ce avec une cl¨¦mence qui sera lou¨¦e dans tous -les journaux et dans tous les si¨¨cles. Un brave chirurgien -gu¨¦rit Candide en trois semaines avec les ¨¦mollients enseign¨¦s -par Dioscoride. Il avait d¨¦j¨¤ un peu de peau et pouvait marcher, -quand le roi des Bulgares livra bataille au roi des Abares. - - - -CHAPITRE III. - -Comment Candide se sauva d'entre les Bulgares, et ce qu'il -devint. - - -Rien n'¨¦tait si beau, si leste, si brillant, si bien ordonn¨¦ que -les deux arm¨¦es. Les trompettes, les fifres, les hautbois, les -tambours, les canons; formaient une harmonie telle qu'il n'y en -eut jamais en enfer. Les canons renvers¨¨rent d'abord ¨¤ peu pr¨¨s -six mille hommes de chaque c0‹0t¨¦; ensuite la mousqueterie 0‹0ta du -meilleur des mondes environ neuf ¨¤ dix mille coquins qui en -infectaient la surface. La ba0Š7onnette fut aussi la raison -suffisante de la mort de quelques milliers d'hommes. Le tout -pouvait bien se monter ¨¤ une trentaine de mille 0‰9mes. Candide, -qui tremblait comme un philosophe, se cacha du mieux qu'il put -pendant cette boucherie h¨¦ro0Š7que. - -Enfin, tandis que les deux rois fesaient chanter des _Te Deum_, -chacun dans son camp, il prit le parti d'aller raisonner ailleurs -des effets et des causes. Il passa par-dessus des tas de morts -et de mourants, et gagna d'abord un village voisin; il ¨¦tait en -cendres: c'¨¦tait un village abare que les Bulgares avaient br0‹4l¨¦, -selon les lois du droit public. Ici des vieillards cribl¨¦s de -coups regardaient mourir leurs femmes ¨¦gorg¨¦es, qui tenaient -leurs enfants ¨¤ leurs mamelles sanglantes; l¨¤ des filles -¨¦ventr¨¦es apr¨¨s avoir assouvi les besoins naturels de quelques -h¨¦ros, rendaient les derniers soupirs; d'autres ¨¤ demi br0‹4l¨¦es -criaient qu'on achev0‰9t de leur donner la mort. Des cervelles -¨¦taient r¨¦pandues sur la terre ¨¤ c0‹0t¨¦ de bras et de jambes -coup¨¦s. - -Candide s'enfuit au plus vite dans un autre village: il -appartenait ¨¤ des Bulgares, et les h¨¦ros abares l'avaient trait¨¦ -de m¨ºme. Candide, toujours marchant sur des membres palpitants -ou ¨¤ travers des ruines, arriva enfin hors du th¨¦0‰9tre de la -guerre, portant quelques petites provisions dans son bissac, et -n'oubliant jamais mademoiselle Cun¨¦gonde. Ses provisions lui -manqu¨¨rent quand il fut en Hollande; mais ayant entendu dire que -tout le monde ¨¦tait riche dans ce pays-l¨¤, et qu'on y ¨¦tait -chr¨¦tien, il ne douta pas qu'on ne le trait0‰9t aussi bien qu'il -l'avait ¨¦t¨¦ dans le ch0‰9teau de M. le baron, avant qu'il en e0‹4t -¨¦t¨¦ chass¨¦ pour les beaux yeux de mademoiselle Cun¨¦gonde. - -Il demanda l'aum0‹0ne ¨¤ plusieurs graves personnages, qui lui -r¨¦pondirent tous que, s'il continuait ¨¤ faire ce m¨¦tier, on -l'enfermerait dans une maison de correction pour lui apprendre ¨¤ -vivre. - -Il s'adressa ensuite ¨¤ un homme qui venait de parler tout seul -une heure de suite sur la charit¨¦ dans une grande assembl¨¦e. Cet -orateur le regardant de travers lui dit: Que venez-vous faire -ici? y ¨ºtes-vous pour la bonne cause? Il n'y a point d'effet sans -cause, r¨¦pondit modestement Candide; tout est encha0Š6n¨¦ -n¨¦cessairement et arrang¨¦ pour le mieux. Il a fallu que je fusse -chass¨¦ d'aupr¨¨s de mademoiselle Cun¨¦gonde, que j'aie pass¨¦ par -les baguettes, et il faut que je demande mon pain, jusqu'¨¤ ce que -je puisse en gagner; tout cela ne pouvait ¨ºtre autrement. Mon -ami, lui dit l'orateur, croyez-vous que le pape soit -l'antechrist? Je ne l'avais pas encore entendu dire, r¨¦pondit -Candide: mais qu'il le soit, ou qu'il ne le soit pas, je manque -de pain. Tu ne m¨¦rites pas d'en manger, dit l'autre: va, coquin, -va, mis¨¦rable, ne m'approche de ta vie. La femme de l'orateur -ayant mis la t¨ºte ¨¤ la fen¨ºtre, et avisant un homme qui doutait -que le pape f0‹4t antechrist, lui r¨¦pandit sur le chef un -plein..... O ciel! ¨¤ quel exc¨¨s se porte le z¨¨le de la religion -dans les dames! - -Un homme qui n'avait point ¨¦t¨¦ baptis¨¦, un bon anabaptiste, nomm¨¦ -Jacques, vit la mani¨¨re cruelle et ignominieuse dont on traitait -ainsi un de ses fr¨¨res, un ¨ºtre ¨¤ deux pieds sans plumes, qui -avait une 0‰9me; il l'amena chez lui, le nettoya, lui donna du pain -et de la bi¨¨re, lui fit pr¨¦sent de deux florins, et voulut m¨ºme -lui apprendre ¨¤ travailler dans ses manufactures aux ¨¦toffes de -Perse qu'on fabrique en Hollande. Candide se prosternant presque -devant lui, s'¨¦criait: Ma0Š6tre Pangloss me l'avait bien dit que -tout est au mieux dans ce monde, car je suis infiniment plus -touch¨¦ de votre extr¨ºme g¨¦n¨¦rosit¨¦ que de la duret¨¦ de ce -monsieur ¨¤ manteau noir, et de madame son ¨¦pouse. - -Le lendemain, en se promenant, il rencontra un gueux tout couvert -de pustules, les yeux morts, le bout du nez rong¨¦, la bouche de -travers, les dents noires, et parlant de la gorge, tourment¨¦ -d'une toux violente, et crachant une dent ¨¤ chaque effort. - - - -CHAPITRE IV. - -Comment Candide rencontra son ancien ma0Š6tre de philosophie, le -docteur Pangloss, et ce qui en advint. - - -Candide, plus ¨¦mu encore de compassion que d'horreur, donna ¨¤ cet -¨¦pouvantable gueux les deux florins qu'il avait re0Š4us de son -honn¨ºte anabaptiste Jacques. Le fant0‹0me le regarda fixement, -versa des larmes, et sauta ¨¤ son cou. Candide effray¨¦ recule. -H¨¦las! dit le mis¨¦rable ¨¤ l'autre mis¨¦rable, ne reconnaissez-vous -plus votre cher Pangloss? Qu'entends-je? vous, mon cher ma0Š6tre! -vous, dans cet ¨¦tat horrible! quel malheur vous est-il donc -arriv¨¦? pourquoi n'¨ºtes-vous plus dans le plus beau des ch0‰9teaux? -qu'est devenue mademoiselle Cun¨¦gonde, la perle des filles, le -chef-d'oeuvre de la nature? Je n'en peux plus, dit Pangloss. -Aussit0‹0t Candide le mena dans l'¨¦table de l'anabaptiste, o¨´ il -lui fit manger un peu de pain; et quand Pangloss fut refait: Eh -bien! lui dit-il, Cun¨¦gonde? Elle est morte, reprit l'autre. -Candide s'¨¦vanouit ¨¤ ce mot: son ami rappela ses sens avec un peu -de mauvais vinaigre qui se trouva par hasard dans l'¨¦table. -Candide rouvre les yeux. Cun¨¦gonde est morte! Ah! meilleur des -mondes, o¨´ ¨ºtes-vous? Mais de quelle maladie est-elle morte? ne -serait-ce point de m'avoir vu chasser du beau ch0‰9teau de monsieur -son p¨¨re ¨¤ grands coups de pied? Non, dit Pangloss, elle a ¨¦t¨¦ -¨¦ventr¨¦e par des soldats bulgares, apr¨¨s avoir ¨¦t¨¦ viol¨¦e autant -qu'on peut l'¨ºtre; ils ont cass¨¦ la t¨ºte ¨¤ monsieur le baron qui -voulait la d¨¦fendre; madame la baronne a ¨¦t¨¦ coup¨¦e en morceaux; -mon pauvre pupille trait¨¦ pr¨¦cis¨¦ment comme sa soeur; et quant au -ch0‰9teau, il n'est pas rest¨¦ pierre sur pierre, pas une grange, -pas un mouton, pas un canard, pas un arbre; mais nous avons ¨¦t¨¦ -bien veng¨¦s, car les Abares en ont fait autant dans une baronnie -voisine qui appartenait ¨¤ un seigneur bulgare. - -A ce discours, Candide s'¨¦vanouit encore; mais revenu ¨¤ soi, et -ayant dit tout ce qu'il devait dire, il s'enquit de la cause et -de l'effet, et de la raison suffisante qui avait mis Pangloss -dans un si piteux ¨¦tat. H¨¦las! dit l'autre, c'est l'amour: -l'amour, le consolateur du genre humain, le conservateur de -l'univers, l'0‰9me de tous les ¨ºtres sensibles, le tendre amour. -H¨¦las! dit Candide, je l'ai connu cet amour, ce souverain des -coeurs, cette 0‰9me de notre 0‰9me; il ne m'a jamais valu qu'un -baiser et vingt coups de pied au cul. Comment cette belle cause -a-t-elle pu produire en vous un effet si abominable? - -Pangloss r¨¦pondit en ces termes: O mon cher Candide! vous avez -connu Paquette, cette jolie suivante de notre auguste baronne: -j'ai go0‹4t¨¦ dans ses bras les d¨¦lices du paradis, qui ont produit -ces tourments d'enfer dont vous me voyez d¨¦vor¨¦; elle en ¨¦tait -infect¨¦e, elle en est peut-¨ºtre morte. Paquette tenait ce -pr¨¦sent d'un cordelier tr¨¨s savant qui avait remont¨¦ ¨¤ la source, -car il l'avait eu d'une vieille comtesse, qui l'avait re0Š4u d'un -capitaine de cavalerie, qui le devait ¨¤ une marquise, qui le -tenait d'un page, qui l'avait re0Š4u d'un j¨¦suite, qui, ¨¦tant -novice, l'avait eu en droite ligne d'un des compagnons de -Christophe Colomb. Pour moi, je ne le donnerai ¨¤ personne, car -je me meurs. - -O Pangloss! s'¨¦cria Candide, voil¨¤ une ¨¦trange g¨¦n¨¦alogie! -n'est-ce pas le diable qui en fut la souche? Point du tout, -r¨¦pliqua ce grand homme; c'¨¦tait une chose indispensable dans le -meilleur des mondes, un ingr¨¦dient n¨¦cessaire; car si Colomb -n'avait pas attrap¨¦ dans une 0Š6le de l'Am¨¦rique cette maladie[1] -qui empoisonne la source de la g¨¦n¨¦ration, qui souvent m¨ºme -emp¨ºche la g¨¦n¨¦ration, et qui est ¨¦videmment l'oppos¨¦ du grand -but de la nature, nous n'aurions ni le chocolat ni la cochenille; -il faut encore observer que jusqu'aujourd'hui, dans notre -continent, cette maladie nous est particuli¨¨re, comme la -controverse. Les Turcs, les Indiens, les Persans, les Chinois, -les Siamois, les Japonais, ne la connaissent pas encore; mais il -y a une raison suffisante pour qu'ils la connaissent ¨¤ leur tour -dans quelques si¨¨cles. En attendant elle a fait un merveilleux -progr¨¨s parmi nous, et surtout dans ces grandes arm¨¦es compos¨¦es -d'honn¨ºtes stipendiaires bien ¨¦lev¨¦s, qui d¨¦cident du destin des -¨¦tats; on peut assurer que, quand trente mille hommes combattent -en bataille rang¨¦e contre des troupes ¨¦gales en nombre, il y a -environ vingt mille v¨¦rol¨¦s de chaque c0‹0t¨¦. - - [1] Voyez tome XXXI, page 7. B. - - -Voil¨¤ qui est admirable, dit Candide; mais il faut vous faire -gu¨¦rir. Et comment le puis-je? dit Pangloss; je n'ai pas le sou, -mon ami, et dans toute l'¨¦tendue de ce globe on ne peut ni se -faire saigner, ni prendre un lavement sans payer, ou sans qu'il y -ait quelqu'un qui paie pour nous. - -Ce dernier discours d¨¦termina Candide; il alla se jeter aux pieds -de son charitable anabaptiste Jacques, et lui fit une peinture si -touchante de l'¨¦tat o¨´ son ami ¨¦tait r¨¦duit, que le bon-homme -n'h¨¦sita pas ¨¤ recueillir le docteur Pangloss; il le fit gu¨¦rir ¨¤ -ses d¨¦pens. Pangloss, dans la cure, ne perdit qu'un oeil et une -oreille. Il ¨¦crivait bien, et savait parfaitement -l'arithm¨¦tique. L'anabaptiste Jacques en fit son teneur de -livres. Au bout de deux mois, ¨¦tant oblig¨¦ d'aller ¨¤ Lisbonne -pour les affaires de son commerce, il mena dans son vaisseau ses -deux philosophes. Pangloss lui expliqua comment tout ¨¦tait on ne -peut mieux. Jacques n'¨¦tait pas de cet avis. Il faut bien, -disait-il, que les hommes aient un peu corrompu la nature, car -ils ne sont point n¨¦s loups, et ils sont devenus loups. Dieu ne -leur a donn¨¦ ni canons de vingt-quatre, ni ba0Š7onnettes, et ils se -sont fait des ba0Š7onnettes et des canons pour se d¨¦truire. Je -pourrais mettre en ligne de compte les banqueroutes, et la -justice qui s'empare des biens des banqueroutiers pour en -frustrer les cr¨¦anciers. Tout cela ¨¦tait indispensable, -r¨¦pliquait le docteur borgne, et les malheurs particuliers font -le bien g¨¦n¨¦ral; de sorte que plus il y a de malheurs -particuliers, et plus tout est bien. Tandis qu'il raisonnait, -l'air s'obscurcit, les vents souffl¨¨rent des quatre coins du -monde, et le vaisseau fut assailli de la plus horrible temp¨ºte, ¨¤ -la vue du port de Lisbonne. - - -CHAPITRE V. - -Temp¨ºte, naufrage, tremblement de terre, et ce qui advint du -docteur Pangloss, de Candide, et de l'anabaptiste Jacques. - -La moiti¨¦ des passagers affaiblis, expirants de ces angoisses -inconcevables que le roulis d'un vaisseau porte dans les nerfs et -dans toutes les humeurs du corps agit¨¦es en sens contraires, -n'avait pas m¨ºme la force de s'inqui¨¦ter du danger. L'autre -moiti¨¦ jetait des cris et fesait des pri¨¨res; les voiles ¨¦taient -d¨¦chir¨¦es, les m0‰9ts bris¨¦s, le vaisseau entr'ouvert. Travaillait -qui pouvait, personne ne s'entendait, personne ne commandait. -L'anabaptiste aidait un peu ¨¤ la manoeuvre; il ¨¦tait sur le -tillac; un matelot furieux le frappe rudement et l'¨¦tend sur les -planches; mais du coup qu'il lui donna, il eut lui-m¨ºme une si -violente secousse, qu'il tomba hors du vaisseau, la t¨ºte la -premi¨¨re. Il restait suspendu et accroch¨¦ ¨¤ une partie de m0‰9t -rompu. Le bon Jacques court ¨¤ son secours, l'aide ¨¤ remonter, et -de l'effort qu'il fait, il est pr¨¦cipit¨¦ dans la mer ¨¤ la vue du -matelot, qui le laissa p¨¦rir sans daigner seulement le regarder. -Candide approche, voit son bienfaiteur qui repara0Š6t un moment, et -qui est englouti pour jamais. Il veut se jeter apr¨¨s lui dans la -mer: le philosophe Pangloss l'en emp¨ºche, en lui prouvant que la -rade de Lisbonne avait ¨¦t¨¦ form¨¦e expr¨¨s pour que cet anabaptiste -s'y noy0‰9t. Tandis qu'il le prouvait _¨¤ priori_, le vaisseau -s'entr'ouvre, tout p¨¦rit ¨¤ la r¨¦serve de Pangloss, de Candide, et -de ce brutal de matelot qui avait noy¨¦ le vertueux anabaptiste; -le coquin nagea heureusement jusqu'au rivage, o¨´ Pangloss et -Candide furent port¨¦s sur une planche. - -Quand ils furent revenus un peu ¨¤ eux, ils march¨¨rent vers -Lisbonne; il leur restait quelque argent, avec lequel ils -esp¨¦raient se sauver de la faim apr¨¨s avoir ¨¦chapp¨¦ ¨¤ la temp¨ºte. - -A peine ont-ils mis le pied dans la ville, en pleurant la mort de -leur bienfaiteur, qu'ils sentent la terre trembler sous leurs -pas[1]; la mer s'¨¦l¨¨ve en bouillonnant dans le port, et brise les -vaisseaux qui sont ¨¤ l'ancre. Des tourbillons de flammes et de -cendres couvrent les rues et les places publiques; les maisons -s'¨¦croulent, les toits sont renvers¨¦s sur les fondements, et les -fondements se dispersent; trente mille habitants de tout 0‰9ge et -de tout sexe sont ¨¦cras¨¦s sous des ruines. Le matelot disait en -sifflant et en jurant: il y aura quelque chose ¨¤ gagner ici. -Quelle peut ¨ºtre la raison suffisante de ce ph¨¦nom¨¨ne? disait -Pangloss. Voici le dernier jour du monde! s'¨¦criait Candide. -Le matelot court incontinent au milieu des d¨¦bris, affronte la -mort pour trouver de l'argent, en trouve, s'en empare, s'enivre, -et ayant cuv¨¦ son vin, ach¨¨te les faveurs de la premi¨¨re fille de -bonne volont¨¦ qu'il rencontre sur les ruines des maisons -d¨¦truites, et au milieu des mourants et des morts. Pangloss le -tirait cependant par la manche: Mon ami, lui disait-il, cela -n'est pas bien, vous manquez ¨¤ la raison universelle, vous prenez -mal votre temps. T¨ºte et sang, r¨¦pondit l'autre, je suis matelot -et n¨¦ ¨¤ Batavia; j'ai march¨¦ quatre fois sur le crucifix dans -quatre voyages au Japon[2]; tu as bien trouv¨¦ ton homme avec ta -raison universelle! - - - [1] Le tremblement de terre de Lisbonne est du 1er novembre 1755. - B. - - [2] Voyez tome XVIII, page 470. B. - - -Quelques ¨¦clats de pierre avaient bless¨¦ Candide; il ¨¦tait ¨¦tendu -dans la rue et couvert de d¨¦bris. Il disait ¨¤ Pangloss: H¨¦las! -procure-moi un peu de vin et d'huile; je me meurs. Ce -tremblement de terre n'est pas une chose nouvelle, r¨¦pondit -Pangloss; la ville de Lima ¨¦prouva les m¨ºmes secousses en -Am¨¦rique l'ann¨¦e pass¨¦e; m¨ºmes causes, m¨ºmes effets; il y a -certainement une tra0Š6n¨¦e de soufre sous terre depuis Lima jusqu'¨¤ -Lisbonne. Rien n'est plus probable, dit Candide; mais, pour -Dieu, un peu d'huile et de vin. Comment probable? r¨¦pliqua le -philosophe, je soutiens que la chose est d¨¦montr¨¦e. Candide -perdit connaissance, et Pangloss lui apporta un peu d'eau d'une -fontaine voisine. - -Le lendemain, ayant trouv¨¦ quelques provisions de bouche en se -glissant ¨¤ travers des d¨¦combres, ils r¨¦par¨¨rent un peu leurs -forces. Ensuite ils travaill¨¨rent comme les autres ¨¤ soulager -les habitants ¨¦chapp¨¦s ¨¤ la mort. Quelques citoyens, secourus -par eux, leur donn¨¨rent un aussi bon d0Š6ner qu'on le pouvait dans -un tel d¨¦sastre: il est vrai que le repas ¨¦tait triste; les -convives arrosaient leur pain de leurs larmes; mais Pangloss les -consola, en les assurant que les choses ne pouvaient ¨ºtre -autrement: Car, dit-il, tout ceci est ce qu'il y a de mieux; car -s'il y a un volcan ¨¤ Lisbonne, il ne pouvait ¨ºtre ailleurs; car -il est impossible que les choses ne soient pas o¨´ elles sont, car -tout est bien. - -Un petit homme noir, familier de l'inquisition, lequel ¨¦tait ¨¤ -c0‹0t¨¦ de lui, prit poliment la parole et dit: Apparemment que -monsieur ne croit pas au p¨¦ch¨¦ originel; car si tout est au -mieux, il n'y a donc eu ni chute ni punition. - -Je demande tr¨¨s humblement pardon ¨¤ votre excellence, r¨¦pondit -Pangloss encore plus poliment, car la chute de l'homme et la -mal¨¦diction entraient n¨¦cessairement dans le meilleur des mondes -possibles. Monsieur ne croit donc pas ¨¤ la libert¨¦? dit le -familier. Votre excellence m'excusera, dit Pangloss; la libert¨¦ -peut subsister avec la n¨¦cessit¨¦ absolue; car il ¨¦tait n¨¦cessaire -que nous fussions libres; car enfin la volont¨¦ d¨¦termin¨¦e...... -Pangloss ¨¦tait au milieu de sa phrase, quand Je familier fit un -signe de t¨ºte ¨¤ son estafier qui lui servait ¨¤ boire du vin de -Porto ou d'Oporto. diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-utf-16le.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-utf-16le.txt deleted file mode 100644 index 820608bf134d0a5a027252eb8436b33f2a71b402..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51932 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 diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-utf-8.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-utf-8.txt deleted file mode 100644 index a4fd6299..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-utf-8.txt +++ /dev/null @@ -1,510 +0,0 @@ -This file was derived from -http://www.gutenberg.org/cache/epub/4650/pg4650.txt --------- - - CANDIDE, - - ou - - L'OPTIMISME, - - TRADUIT DE L'ALLEMAND - - DE M. LE DOCTEUR RALPH, - - AVEC LES ADDITIONS - - QU'ON A TROUVÉES DANS LA POCHE DU DOCTEUR, LORSQU'IL MOURUT - - À MINDEN, L'AN DE GRÂCE 1759 - - 1759 - - - -CHAPITRE I. - -Comment Candide fut élevé dans un beau château, et comment il fut -chassé d'icelui. - -Il y avait en Vestphalie, dans le château de M. le baron de -Thunder-ten-tronckh, un jeune garçon à qui la nature avait donné -les moeurs les plus douces. Sa physionomie annonçait son âme. -Il avait le jugement assez droit, avec l'esprit le plus simple; -c'est, je crois, pour cette raison qu'on le nommait Candide. Les -anciens domestiques de la maison soupçonnaient qu'il était fils -de la soeur de monsieur le baron et d'un bon et honnête -gentilhomme du voisinage, que cette demoiselle ne voulut jamais -épouser parce qu'il n'avait pu prouver que soixante et onze -quartiers, et que le reste de son arbre généalogique avait été -perdu par l'injure du temps. - -Monsieur le baron était un des plus puissants seigneurs de la -Westphalie, car son château avait une porte et des fenêtres. Sa -grande salle même était ornée d'une tapisserie. Tous les chiens -de ses basses-cours composaient une meute dans le besoin; ses -palefreniers étaient ses piqueurs; le vicaire du village était -son grand-aumônier. Ils l'appelaient tous monseigneur, et ils -riaient quand il fesait des contes. - -Madame la baronne, qui pesait environ trois cent cinquante -livres, s'attirait par là une très grande considération, et -fesait les honneurs de la maison avec une dignité qui la rendait -encore plus respectable. Sa fille Cunégonde, âgée de dix-sept -ans, était haute en couleur, fraîche, grasse, appétissante. Le -fils du baron paraissait en tout digne de son père. Le -précepteur Pangloss[1] était l'oracle de la maison, et le petit -Candide écoutait ses leçons avec toute la bonne foi de son âge et -de son caractère. - - [1] De _pan_, tout, et _glossa_, langue. B. - - -Pangloss enseignait la métaphysico-théologo-cosmolonigologie. Il -prouvait admirablement qu'il n'y a point d'effet sans cause, et -que, dans ce meilleur des mondes possibles, le château de -monseigneur le baron était le plus beau des châteaux, et madame -la meilleure des baronnes possibles. - -Il est démontré, disait-il, que les choses ne peuvent être -autrement; car tout étant fait pour une fin, tout est -nécessairement pour la meilleure fin. Remarquez bien que les nez -ont été faits pour porter des lunettes; aussi avons-nous des -lunettes[2]. Les jambes sont visiblement instituées pour être -chaussées, et nous avons des chausses. Les pierres ont été -formées pour être taillées et pour en faire des châteaux; aussi -monseigneur a un très beau château: le plus grand baron de la -province doit être le mieux logé; et les cochons étant faits pour -être mangés, nous mangeons du porc toute l'année: par conséquent, -ceux qui ont avancé que tout est bien ont dit une sottise; il -fallait dire que tout est au mieux. - - [2] Voyez tome XXVII, page 528; et dans les _Mélanges_, année - 1738, le chapitre XI de la troisième partie des _Éléments de la - philosophie de Newton_; et année 1768, le chapitre X des - _Singularités de la nature_. B. - - -Candide écoutait attentivement, et croyait innocemment; car il -trouvait mademoiselle Cunégonde extrêmement belle, quoiqu'il ne -prît jamais la hardiesse de le lui dire. Il concluait qu'après -le bonheur d'être né baron de Thunder-ten-tronckh, le second -degré de bonheur était d'être mademoiselle Cunégonde; le -troisième, de la voir tous les jours; et le quatrième, d'entendre -maître Pangloss, le plus grand philosophe de la province, et par -conséquent de toute la terre. - -Un jour Cunégonde, en se promenant auprès du château, dans le -petit bois qu'on appelait parc, vit entre des broussailles le -docteur Pangloss qui donnait une leçon de physique expérimentale -à la femme de chambre de sa mère, petite brune très jolie et très -docile. Comme mademoiselle Cunégonde avait beaucoup de -disposition pour les sciences, elle observa, sans souffler, les -expériences réitérées dont elle fut témoin; elle vit clairement -la raison suffisante du docteur, les effets et les causes, et -s'en retourna tout agitée, toute pensive, toute remplie du désir -d'être savante, songeant qu'elle pourrait bien être la raison -suffisante du jeune Candide, qui pouvait aussi être la sienne. - -Elle rencontra Candide en revenant au château, et rougit: Candide -rougit aussi . Elle lui dit bonjour d'une voix entrecoupée; et -Candide lui parla sans savoir ce qu'il disait. Le lendemain, -après le dîner, comme on sortait de table, Cunégonde et Candide -se trouvèrent derrière un paravent; Cunégonde laissa tomber son -mouchoir, Candide le ramassa; elle lui prit innocemment la main; -le jeune homme baisa innocemment la main de la jeune demoiselle -avec une vivacité, une sensibilité, une grâce toute particulière; -leurs bouches se rencontrèrent, leurs yeux s'enflammèrent, leurs -genoux tremblèrent, leurs mains s'égarèrent. M. le baron de -Thunder-ten-tronckh passa auprès du paravent, et voyant cette -cause et cet effet, chassa Candide du château à grands coups de -pied dans le derrière. Cunégonde s'évanouit: elle fut souffletée -par madame la baronne dès qu'elle fut revenue à elle-même; et -tout fut consterné dans le plus beau et le plus agréable des -châteaux possibles. - - - -CHAPITRE II - -Ce que devint Candide parmi les Bulgares. - - -Candide, chassé du paradis terrestre, marcha longtemps sans -savoir où, pleurant, levant les yeux au ciel, les tournant -souvent vers le plus beau des châteaux qui renfermait la plus -belle des baronnettes; il se coucha sans souper au milieu des -champs entre deux sillons; la neige tombait à gros flocons. -Candide, tout transi, se traîna le lendemain vers la ville -voisine, qui s'appelle _Valdberghoff-trarbk-dikdorff_, n'ayant -point d'argent, mourant de faim et de lassitude. Il s'arrêta -tristement à la porte d'un cabaret. Deux hommes habillés de bleu -le remarquèrent: Camarade, dit l'un, voilà un jeune homme très -bien fait, et qui a la taille requise; ils s'avancèrent vers -Candide et le prièrent à dîner très civilement.--Messieurs, leur -dit Candide avec une modestie charmante, vous me faites beaucoup -d'honneur, mais je n'ai pas de quoi payer mon écot.--Ah! -monsieur, lui dit un des bleus, les personnes de votre figure et -de votre mérite ne paient jamais rien: n'avez-vous pas cinq pieds -cinq pouces de haut?--Oui, messieurs, c'est ma taille, dit-il en -fesant la révérence.--Ah! monsieur, mettez-vous à table; non -seulement nous vous défraierons, mais nous ne souffrirons jamais -qu'un homme comme vous manque d'argent; les hommes ne sont faits -que pour se secourir les uns les autres.--Vous avez raison, dit -Candide; c'est ce que M. Pangloss m'a toujours dit, et je vois -bien que tout est au mieux. On le prie d'accepter quelques écus, -il les prend et veut faire son billet; on n'en veut point, on se -met à table. N'aimez-vous pas tendrement?....--Oh! oui, -répond-il, j'aime tendrement mademoiselle Cunégonde.--Non, dit -l'un de ces messieurs, nous vous demandons si vous n'aimez pas -tendrement le roi des Bulgares?--Point du tout, dit-il, car je ne -l'ai jamais vu.--Comment! c'est le plus charmant des rois, et il -faut boire à sa santé.--Oh! très volontiers, messieurs. Et il -boit. C'en est assez, lui dit-on, vous voilà l'appui, le -soutien, le défenseur, le héros des Bulgares; votre fortune est -faite, et votre gloire est assurée. On lui met sur-le-champ les -fers aux pieds, et on le mène au régiment. On le fait tourner à -droite, à gauche, hausser la baguette, remettre la baguette, -coucher en joue, tirer, doubler le pas, et on lui donne trente -coups de bâton; le lendemain, il fait l'exercice un peu moins -mal, et il ne reçoit que vingt coups; le surlendemain, on ne lui -en donne que dix, et il est regardé par ses camarades comme un -prodige. - -Candide, tout stupéfait, ne démêlait pas encore trop bien comment -il était un héros. Il s'avisa un beau jour de printemps de -s'aller promener, marchant tout droit devant lui, croyant que -c'était un privilège de l'espèce humaine, comme de l'espèce -animale, de se servir de ses jambes à son plaisir. Il n'eut pas -fait deux lieues que voilà quatre autres héros de six pieds qui -l'atteignent, qui le lient, qui le mènent dans un cachot. On lui -demanda juridiquement ce qu'il aimait le mieux d'être fustigé -trente-six fois par tout le régiment, ou de recevoir à-la-fois -douze balles de plomb dans la cervelle. Il eut beau dire que les -volontés sont libres, et qu'il ne voulait ni l'un ni l'autre, il -fallut faire un choix; il se détermina, en vertu du don de Dieu -qu'on nomme _liberté_, à passer trente-six fois par les -baguettes; il essuya deux promenades. Le régiment était composé -de deux mille hommes; cela lui composa quatre mille coups de -baguette, qui, depuis la nuque du cou jusqu'au cul, lui -découvrirent les muscles et les nerfs. Comme on allait procéder -à la troisième course, Candide, n'en pouvant plus, demanda en -grâce qu'on voulût bien avoir la bonté de lui casser la tête; il -obtint cette faveur; on lui bande les yeux; on le fait mettre à -genoux. Le roi des Bulgares passe dans ce moment, s'informe du -crime du patient; et comme ce roi avait un grand génie, il -comprit, par tout ce qu'il apprit de Candide, que c'était un -jeune métaphysicien fort ignorant des choses de ce monde, et il -lui accorda sa grâce avec une clémence qui sera louée dans tous -les journaux et dans tous les siècles. Un brave chirurgien -guérit Candide en trois semaines avec les émollients enseignés -par Dioscoride. Il avait déjà un peu de peau et pouvait marcher, -quand le roi des Bulgares livra bataille au roi des Abares. - - - -CHAPITRE III. - -Comment Candide se sauva d'entre les Bulgares, et ce qu'il -devint. - - -Rien n'était si beau, si leste, si brillant, si bien ordonné que -les deux armées. Les trompettes, les fifres, les hautbois, les -tambours, les canons; formaient une harmonie telle qu'il n'y en -eut jamais en enfer. Les canons renversèrent d'abord à peu près -six mille hommes de chaque côté; ensuite la mousqueterie ôta du -meilleur des mondes environ neuf à dix mille coquins qui en -infectaient la surface. La baïonnette fut aussi la raison -suffisante de la mort de quelques milliers d'hommes. Le tout -pouvait bien se monter à une trentaine de mille âmes. Candide, -qui tremblait comme un philosophe, se cacha du mieux qu'il put -pendant cette boucherie héroïque. - -Enfin, tandis que les deux rois fesaient chanter des _Te Deum_, -chacun dans son camp, il prit le parti d'aller raisonner ailleurs -des effets et des causes. Il passa par-dessus des tas de morts -et de mourants, et gagna d'abord un village voisin; il était en -cendres: c'était un village abare que les Bulgares avaient brûlé, -selon les lois du droit public. Ici des vieillards criblés de -coups regardaient mourir leurs femmes égorgées, qui tenaient -leurs enfants à leurs mamelles sanglantes; là des filles -éventrées après avoir assouvi les besoins naturels de quelques -héros, rendaient les derniers soupirs; d'autres à demi brûlées -criaient qu'on achevât de leur donner la mort. Des cervelles -étaient répandues sur la terre à côté de bras et de jambes -coupés. - -Candide s'enfuit au plus vite dans un autre village: il -appartenait à des Bulgares, et les héros abares l'avaient traité -de même. Candide, toujours marchant sur des membres palpitants -ou à travers des ruines, arriva enfin hors du théâtre de la -guerre, portant quelques petites provisions dans son bissac, et -n'oubliant jamais mademoiselle Cunégonde. Ses provisions lui -manquèrent quand il fut en Hollande; mais ayant entendu dire que -tout le monde était riche dans ce pays-là, et qu'on y était -chrétien, il ne douta pas qu'on ne le traitât aussi bien qu'il -l'avait été dans le château de M. le baron, avant qu'il en eût -été chassé pour les beaux yeux de mademoiselle Cunégonde. - -Il demanda l'aumône à plusieurs graves personnages, qui lui -répondirent tous que, s'il continuait à faire ce métier, on -l'enfermerait dans une maison de correction pour lui apprendre à -vivre. - -Il s'adressa ensuite à un homme qui venait de parler tout seul -une heure de suite sur la charité dans une grande assemblée. Cet -orateur le regardant de travers lui dit: Que venez-vous faire -ici? y êtes-vous pour la bonne cause? Il n'y a point d'effet sans -cause, répondit modestement Candide; tout est enchaîné -nécessairement et arrangé pour le mieux. Il a fallu que je fusse -chassé d'auprès de mademoiselle Cunégonde, que j'aie passé par -les baguettes, et il faut que je demande mon pain, jusqu'à ce que -je puisse en gagner; tout cela ne pouvait être autrement. Mon -ami, lui dit l'orateur, croyez-vous que le pape soit -l'antechrist? Je ne l'avais pas encore entendu dire, répondit -Candide: mais qu'il le soit, ou qu'il ne le soit pas, je manque -de pain. Tu ne mérites pas d'en manger, dit l'autre: va, coquin, -va, misérable, ne m'approche de ta vie. La femme de l'orateur -ayant mis la tête à la fenêtre, et avisant un homme qui doutait -que le pape fût antechrist, lui répandit sur le chef un -plein..... O ciel! à quel excès se porte le zèle de la religion -dans les dames! - -Un homme qui n'avait point été baptisé, un bon anabaptiste, nommé -Jacques, vit la manière cruelle et ignominieuse dont on traitait -ainsi un de ses frères, un être à deux pieds sans plumes, qui -avait une âme; il l'amena chez lui, le nettoya, lui donna du pain -et de la bière, lui fit présent de deux florins, et voulut même -lui apprendre à travailler dans ses manufactures aux étoffes de -Perse qu'on fabrique en Hollande. Candide se prosternant presque -devant lui, s'écriait: Maître Pangloss me l'avait bien dit que -tout est au mieux dans ce monde, car je suis infiniment plus -touché de votre extrême générosité que de la dureté de ce -monsieur à manteau noir, et de madame son épouse. - -Le lendemain, en se promenant, il rencontra un gueux tout couvert -de pustules, les yeux morts, le bout du nez rongé, la bouche de -travers, les dents noires, et parlant de la gorge, tourmenté -d'une toux violente, et crachant une dent à chaque effort. - - - -CHAPITRE IV. - -Comment Candide rencontra son ancien maître de philosophie, le -docteur Pangloss, et ce qui en advint. - - -Candide, plus ému encore de compassion que d'horreur, donna à cet -épouvantable gueux les deux florins qu'il avait reçus de son -honnête anabaptiste Jacques. Le fantôme le regarda fixement, -versa des larmes, et sauta à son cou. Candide effrayé recule. -Hélas! dit le misérable à l'autre misérable, ne reconnaissez-vous -plus votre cher Pangloss? Qu'entends-je? vous, mon cher maître! -vous, dans cet état horrible! quel malheur vous est-il donc -arrivé? pourquoi n'êtes-vous plus dans le plus beau des châteaux? -qu'est devenue mademoiselle Cunégonde, la perle des filles, le -chef-d'oeuvre de la nature? Je n'en peux plus, dit Pangloss. -Aussitôt Candide le mena dans l'étable de l'anabaptiste, où il -lui fit manger un peu de pain; et quand Pangloss fut refait: Eh -bien! lui dit-il, Cunégonde? Elle est morte, reprit l'autre. -Candide s'évanouit à ce mot: son ami rappela ses sens avec un peu -de mauvais vinaigre qui se trouva par hasard dans l'étable. -Candide rouvre les yeux. Cunégonde est morte! Ah! meilleur des -mondes, où êtes-vous? Mais de quelle maladie est-elle morte? ne -serait-ce point de m'avoir vu chasser du beau château de monsieur -son père à grands coups de pied? Non, dit Pangloss, elle a été -éventrée par des soldats bulgares, après avoir été violée autant -qu'on peut l'être; ils ont cassé la tête à monsieur le baron qui -voulait la défendre; madame la baronne a été coupée en morceaux; -mon pauvre pupille traité précisément comme sa soeur; et quant au -château, il n'est pas resté pierre sur pierre, pas une grange, -pas un mouton, pas un canard, pas un arbre; mais nous avons été -bien vengés, car les Abares en ont fait autant dans une baronnie -voisine qui appartenait à un seigneur bulgare. - -A ce discours, Candide s'évanouit encore; mais revenu à soi, et -ayant dit tout ce qu'il devait dire, il s'enquit de la cause et -de l'effet, et de la raison suffisante qui avait mis Pangloss -dans un si piteux état. Hélas! dit l'autre, c'est l'amour: -l'amour, le consolateur du genre humain, le conservateur de -l'univers, l'âme de tous les êtres sensibles, le tendre amour. -Hélas! dit Candide, je l'ai connu cet amour, ce souverain des -coeurs, cette âme de notre âme; il ne m'a jamais valu qu'un -baiser et vingt coups de pied au cul. Comment cette belle cause -a-t-elle pu produire en vous un effet si abominable? - -Pangloss répondit en ces termes: O mon cher Candide! vous avez -connu Paquette, cette jolie suivante de notre auguste baronne: -j'ai goûté dans ses bras les délices du paradis, qui ont produit -ces tourments d'enfer dont vous me voyez dévoré; elle en était -infectée, elle en est peut-être morte. Paquette tenait ce -présent d'un cordelier très savant qui avait remonté à la source, -car il l'avait eu d'une vieille comtesse, qui l'avait reçu d'un -capitaine de cavalerie, qui le devait à une marquise, qui le -tenait d'un page, qui l'avait reçu d'un jésuite, qui, étant -novice, l'avait eu en droite ligne d'un des compagnons de -Christophe Colomb. Pour moi, je ne le donnerai à personne, car -je me meurs. - -O Pangloss! s'écria Candide, voilà une étrange généalogie! -n'est-ce pas le diable qui en fut la souche? Point du tout, -répliqua ce grand homme; c'était une chose indispensable dans le -meilleur des mondes, un ingrédient nécessaire; car si Colomb -n'avait pas attrapé dans une île de l'Amérique cette maladie[1] -qui empoisonne la source de la génération, qui souvent même -empêche la génération, et qui est évidemment l'opposé du grand -but de la nature, nous n'aurions ni le chocolat ni la cochenille; -il faut encore observer que jusqu'aujourd'hui, dans notre -continent, cette maladie nous est particulière, comme la -controverse. Les Turcs, les Indiens, les Persans, les Chinois, -les Siamois, les Japonais, ne la connaissent pas encore; mais il -y a une raison suffisante pour qu'ils la connaissent à leur tour -dans quelques siècles. En attendant elle a fait un merveilleux -progrès parmi nous, et surtout dans ces grandes armées composées -d'honnêtes stipendiaires bien élevés, qui décident du destin des -états; on peut assurer que, quand trente mille hommes combattent -en bataille rangée contre des troupes égales en nombre, il y a -environ vingt mille vérolés de chaque côté. - - [1] Voyez tome XXXI, page 7. B. - - -Voilà qui est admirable, dit Candide; mais il faut vous faire -guérir. Et comment le puis-je? dit Pangloss; je n'ai pas le sou, -mon ami, et dans toute l'étendue de ce globe on ne peut ni se -faire saigner, ni prendre un lavement sans payer, ou sans qu'il y -ait quelqu'un qui paie pour nous. - -Ce dernier discours détermina Candide; il alla se jeter aux pieds -de son charitable anabaptiste Jacques, et lui fit une peinture si -touchante de l'état où son ami était réduit, que le bon-homme -n'hésita pas à recueillir le docteur Pangloss; il le fit guérir à -ses dépens. Pangloss, dans la cure, ne perdit qu'un oeil et une -oreille. Il écrivait bien, et savait parfaitement -l'arithmétique. L'anabaptiste Jacques en fit son teneur de -livres. Au bout de deux mois, étant obligé d'aller à Lisbonne -pour les affaires de son commerce, il mena dans son vaisseau ses -deux philosophes. Pangloss lui expliqua comment tout était on ne -peut mieux. Jacques n'était pas de cet avis. Il faut bien, -disait-il, que les hommes aient un peu corrompu la nature, car -ils ne sont point nés loups, et ils sont devenus loups. Dieu ne -leur a donné ni canons de vingt-quatre, ni baïonnettes, et ils se -sont fait des baïonnettes et des canons pour se détruire. Je -pourrais mettre en ligne de compte les banqueroutes, et la -justice qui s'empare des biens des banqueroutiers pour en -frustrer les créanciers. Tout cela était indispensable, -répliquait le docteur borgne, et les malheurs particuliers font -le bien général; de sorte que plus il y a de malheurs -particuliers, et plus tout est bien. Tandis qu'il raisonnait, -l'air s'obscurcit, les vents soufflèrent des quatre coins du -monde, et le vaisseau fut assailli de la plus horrible tempête, à -la vue du port de Lisbonne. - - -CHAPITRE V. - -Tempête, naufrage, tremblement de terre, et ce qui advint du -docteur Pangloss, de Candide, et de l'anabaptiste Jacques. - -La moitié des passagers affaiblis, expirants de ces angoisses -inconcevables que le roulis d'un vaisseau porte dans les nerfs et -dans toutes les humeurs du corps agitées en sens contraires, -n'avait pas même la force de s'inquiéter du danger. L'autre -moitié jetait des cris et fesait des prières; les voiles étaient -déchirées, les mâts brisés, le vaisseau entr'ouvert. Travaillait -qui pouvait, personne ne s'entendait, personne ne commandait. -L'anabaptiste aidait un peu à la manoeuvre; il était sur le -tillac; un matelot furieux le frappe rudement et l'étend sur les -planches; mais du coup qu'il lui donna, il eut lui-même une si -violente secousse, qu'il tomba hors du vaisseau, la tête la -première. Il restait suspendu et accroché à une partie de mât -rompu. Le bon Jacques court à son secours, l'aide à remonter, et -de l'effort qu'il fait, il est précipité dans la mer à la vue du -matelot, qui le laissa périr sans daigner seulement le regarder. -Candide approche, voit son bienfaiteur qui reparaît un moment, et -qui est englouti pour jamais. Il veut se jeter après lui dans la -mer: le philosophe Pangloss l'en empêche, en lui prouvant que la -rade de Lisbonne avait été formée exprès pour que cet anabaptiste -s'y noyât. Tandis qu'il le prouvait _à priori_, le vaisseau -s'entr'ouvre, tout périt à la réserve de Pangloss, de Candide, et -de ce brutal de matelot qui avait noyé le vertueux anabaptiste; -le coquin nagea heureusement jusqu'au rivage, où Pangloss et -Candide furent portés sur une planche. - -Quand ils furent revenus un peu à eux, ils marchèrent vers -Lisbonne; il leur restait quelque argent, avec lequel ils -espéraient se sauver de la faim après avoir échappé à la tempête. - -A peine ont-ils mis le pied dans la ville, en pleurant la mort de -leur bienfaiteur, qu'ils sentent la terre trembler sous leurs -pas[1]; la mer s'élève en bouillonnant dans le port, et brise les -vaisseaux qui sont à l'ancre. Des tourbillons de flammes et de -cendres couvrent les rues et les places publiques; les maisons -s'écroulent, les toits sont renversés sur les fondements, et les -fondements se dispersent; trente mille habitants de tout âge et -de tout sexe sont écrasés sous des ruines. Le matelot disait en -sifflant et en jurant: il y aura quelque chose à gagner ici. -Quelle peut être la raison suffisante de ce phénomène? disait -Pangloss. Voici le dernier jour du monde! s'écriait Candide. -Le matelot court incontinent au milieu des débris, affronte la -mort pour trouver de l'argent, en trouve, s'en empare, s'enivre, -et ayant cuvé son vin, achète les faveurs de la première fille de -bonne volonté qu'il rencontre sur les ruines des maisons -détruites, et au milieu des mourants et des morts. Pangloss le -tirait cependant par la manche: Mon ami, lui disait-il, cela -n'est pas bien, vous manquez à la raison universelle, vous prenez -mal votre temps. Tête et sang, répondit l'autre, je suis matelot -et né à Batavia; j'ai marché quatre fois sur le crucifix dans -quatre voyages au Japon[2]; tu as bien trouvé ton homme avec ta -raison universelle! - - - [1] Le tremblement de terre de Lisbonne est du 1er novembre 1755. - B. - - [2] Voyez tome XVIII, page 470. B. - - -Quelques éclats de pierre avaient blessé Candide; il était étendu -dans la rue et couvert de débris. Il disait à Pangloss: Hélas! -procure-moi un peu de vin et d'huile; je me meurs. Ce -tremblement de terre n'est pas une chose nouvelle, répondit -Pangloss; la ville de Lima éprouva les mêmes secousses en -Amérique l'année passée; mêmes causes, mêmes effets; il y a -certainement une traînée de soufre sous terre depuis Lima jusqu'à -Lisbonne. Rien n'est plus probable, dit Candide; mais, pour -Dieu, un peu d'huile et de vin. Comment probable? répliqua le -philosophe, je soutiens que la chose est démontrée. Candide -perdit connaissance, et Pangloss lui apporta un peu d'eau d'une -fontaine voisine. - -Le lendemain, ayant trouvé quelques provisions de bouche en se -glissant à travers des décombres, ils réparèrent un peu leurs -forces. Ensuite ils travaillèrent comme les autres à soulager -les habitants échappés à la mort. Quelques citoyens, secourus -par eux, leur donnèrent un aussi bon dîner qu'on le pouvait dans -un tel désastre: il est vrai que le repas était triste; les -convives arrosaient leur pain de leurs larmes; mais Pangloss les -consola, en les assurant que les choses ne pouvaient être -autrement: Car, dit-il, tout ceci est ce qu'il y a de mieux; car -s'il y a un volcan à Lisbonne, il ne pouvait être ailleurs; car -il est impossible que les choses ne soient pas où elles sont, car -tout est bien. - -Un petit homme noir, familier de l'inquisition, lequel était à -côté de lui, prit poliment la parole et dit: Apparemment que -monsieur ne croit pas au péché originel; car si tout est au -mieux, il n'y a donc eu ni chute ni punition. - -Je demande très humblement pardon à votre excellence, répondit -Pangloss encore plus poliment, car la chute de l'homme et la -malédiction entraient nécessairement dans le meilleur des mondes -possibles. Monsieur ne croit donc pas à la liberté? dit le -familier. Votre excellence m'excusera, dit Pangloss; la liberté -peut subsister avec la nécessité absolue; car il était nécessaire -que nous fussions libres; car enfin la volonté déterminée...... -Pangloss était au milieu de sa phrase, quand Je familier fit un -signe de tête à son estafier qui lui servait à boire du vin de -Porto ou d'Oporto. diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-windows-1252.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-windows-1252.txt deleted file mode 100644 index 1f8f9eaa..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/candide-windows-1252.txt +++ /dev/null @@ -1,510 +0,0 @@ -This file was derived from -http://www.gutenberg.org/cache/epub/4650/pg4650.txt --------- - - CANDIDE, - - ou - - L'OPTIMISME, - - TRADUIT DE L'ALLEMAND - - DE M. LE DOCTEUR RALPH, - - AVEC LES ADDITIONS - - QU'ON A TROUVÉES DANS LA POCHE DU DOCTEUR, LORSQU'IL MOURUT - - À MINDEN, L'AN DE GRÂCE 1759 - - 1759 - - - -CHAPITRE I. - -Comment Candide fut élevé dans un beau château, et comment il fut -chassé d'icelui. - -Il y avait en Vestphalie, dans le château de M. le baron de -Thunder-ten-tronckh, un jeune garçon à qui la nature avait donné -les moeurs les plus douces. Sa physionomie annonçait son âme. -Il avait le jugement assez droit, avec l'esprit le plus simple; -c'est, je crois, pour cette raison qu'on le nommait Candide. Les -anciens domestiques de la maison soupçonnaient qu'il était fils -de la soeur de monsieur le baron et d'un bon et honnête -gentilhomme du voisinage, que cette demoiselle ne voulut jamais -épouser parce qu'il n'avait pu prouver que soixante et onze -quartiers, et que le reste de son arbre généalogique avait été -perdu par l'injure du temps. - -Monsieur le baron était un des plus puissants seigneurs de la -Westphalie, car son château avait une porte et des fenêtres. Sa -grande salle même était ornée d'une tapisserie. Tous les chiens -de ses basses-cours composaient une meute dans le besoin; ses -palefreniers étaient ses piqueurs; le vicaire du village était -son grand-aumônier. Ils l'appelaient tous monseigneur, et ils -riaient quand il fesait des contes. - -Madame la baronne, qui pesait environ trois cent cinquante -livres, s'attirait par là une très grande considération, et -fesait les honneurs de la maison avec une dignité qui la rendait -encore plus respectable. Sa fille Cunégonde, âgée de dix-sept -ans, était haute en couleur, fraîche, grasse, appétissante. Le -fils du baron paraissait en tout digne de son père. Le -précepteur Pangloss[1] était l'oracle de la maison, et le petit -Candide écoutait ses leçons avec toute la bonne foi de son âge et -de son caractère. - - [1] De _pan_, tout, et _glossa_, langue. B. - - -Pangloss enseignait la métaphysico-théologo-cosmolonigologie. Il -prouvait admirablement qu'il n'y a point d'effet sans cause, et -que, dans ce meilleur des mondes possibles, le château de -monseigneur le baron était le plus beau des châteaux, et madame -la meilleure des baronnes possibles. - -Il est démontré, disait-il, que les choses ne peuvent être -autrement; car tout étant fait pour une fin, tout est -nécessairement pour la meilleure fin. Remarquez bien que les nez -ont été faits pour porter des lunettes; aussi avons-nous des -lunettes[2]. Les jambes sont visiblement instituées pour être -chaussées, et nous avons des chausses. Les pierres ont été -formées pour être taillées et pour en faire des châteaux; aussi -monseigneur a un très beau château: le plus grand baron de la -province doit être le mieux logé; et les cochons étant faits pour -être mangés, nous mangeons du porc toute l'année: par conséquent, -ceux qui ont avancé que tout est bien ont dit une sottise; il -fallait dire que tout est au mieux. - - [2] Voyez tome XXVII, page 528; et dans les _Mélanges_, année - 1738, le chapitre XI de la troisième partie des _Éléments de la - philosophie de Newton_; et année 1768, le chapitre X des - _Singularités de la nature_. B. - - -Candide écoutait attentivement, et croyait innocemment; car il -trouvait mademoiselle Cunégonde extrêmement belle, quoiqu'il ne -prît jamais la hardiesse de le lui dire. Il concluait qu'après -le bonheur d'être né baron de Thunder-ten-tronckh, le second -degré de bonheur était d'être mademoiselle Cunégonde; le -troisième, de la voir tous les jours; et le quatrième, d'entendre -maître Pangloss, le plus grand philosophe de la province, et par -conséquent de toute la terre. - -Un jour Cunégonde, en se promenant auprès du château, dans le -petit bois qu'on appelait parc, vit entre des broussailles le -docteur Pangloss qui donnait une leçon de physique expérimentale -à la femme de chambre de sa mère, petite brune très jolie et très -docile. Comme mademoiselle Cunégonde avait beaucoup de -disposition pour les sciences, elle observa, sans souffler, les -expériences réitérées dont elle fut témoin; elle vit clairement -la raison suffisante du docteur, les effets et les causes, et -s'en retourna tout agitée, toute pensive, toute remplie du désir -d'être savante, songeant qu'elle pourrait bien être la raison -suffisante du jeune Candide, qui pouvait aussi être la sienne. - -Elle rencontra Candide en revenant au château, et rougit: Candide -rougit aussi . Elle lui dit bonjour d'une voix entrecoupée; et -Candide lui parla sans savoir ce qu'il disait. Le lendemain, -après le dîner, comme on sortait de table, Cunégonde et Candide -se trouvèrent derrière un paravent; Cunégonde laissa tomber son -mouchoir, Candide le ramassa; elle lui prit innocemment la main; -le jeune homme baisa innocemment la main de la jeune demoiselle -avec une vivacité, une sensibilité, une grâce toute particulière; -leurs bouches se rencontrèrent, leurs yeux s'enflammèrent, leurs -genoux tremblèrent, leurs mains s'égarèrent. M. le baron de -Thunder-ten-tronckh passa auprès du paravent, et voyant cette -cause et cet effet, chassa Candide du château à grands coups de -pied dans le derrière. Cunégonde s'évanouit: elle fut souffletée -par madame la baronne dès qu'elle fut revenue à elle-même; et -tout fut consterné dans le plus beau et le plus agréable des -châteaux possibles. - - - -CHAPITRE II - -Ce que devint Candide parmi les Bulgares. - - -Candide, chassé du paradis terrestre, marcha longtemps sans -savoir où, pleurant, levant les yeux au ciel, les tournant -souvent vers le plus beau des châteaux qui renfermait la plus -belle des baronnettes; il se coucha sans souper au milieu des -champs entre deux sillons; la neige tombait à gros flocons. -Candide, tout transi, se traîna le lendemain vers la ville -voisine, qui s'appelle _Valdberghoff-trarbk-dikdorff_, n'ayant -point d'argent, mourant de faim et de lassitude. Il s'arrêta -tristement à la porte d'un cabaret. Deux hommes habillés de bleu -le remarquèrent: Camarade, dit l'un, voilà un jeune homme très -bien fait, et qui a la taille requise; ils s'avancèrent vers -Candide et le prièrent à dîner très civilement.--Messieurs, leur -dit Candide avec une modestie charmante, vous me faites beaucoup -d'honneur, mais je n'ai pas de quoi payer mon écot.--Ah! -monsieur, lui dit un des bleus, les personnes de votre figure et -de votre mérite ne paient jamais rien: n'avez-vous pas cinq pieds -cinq pouces de haut?--Oui, messieurs, c'est ma taille, dit-il en -fesant la révérence.--Ah! monsieur, mettez-vous à table; non -seulement nous vous défraierons, mais nous ne souffrirons jamais -qu'un homme comme vous manque d'argent; les hommes ne sont faits -que pour se secourir les uns les autres.--Vous avez raison, dit -Candide; c'est ce que M. Pangloss m'a toujours dit, et je vois -bien que tout est au mieux. On le prie d'accepter quelques écus, -il les prend et veut faire son billet; on n'en veut point, on se -met à table. N'aimez-vous pas tendrement?....--Oh! oui, -répond-il, j'aime tendrement mademoiselle Cunégonde.--Non, dit -l'un de ces messieurs, nous vous demandons si vous n'aimez pas -tendrement le roi des Bulgares?--Point du tout, dit-il, car je ne -l'ai jamais vu.--Comment! c'est le plus charmant des rois, et il -faut boire à sa santé.--Oh! très volontiers, messieurs. Et il -boit. C'en est assez, lui dit-on, vous voilà l'appui, le -soutien, le défenseur, le héros des Bulgares; votre fortune est -faite, et votre gloire est assurée. On lui met sur-le-champ les -fers aux pieds, et on le mène au régiment. On le fait tourner à -droite, à gauche, hausser la baguette, remettre la baguette, -coucher en joue, tirer, doubler le pas, et on lui donne trente -coups de bâton; le lendemain, il fait l'exercice un peu moins -mal, et il ne reçoit que vingt coups; le surlendemain, on ne lui -en donne que dix, et il est regardé par ses camarades comme un -prodige. - -Candide, tout stupéfait, ne démêlait pas encore trop bien comment -il était un héros. Il s'avisa un beau jour de printemps de -s'aller promener, marchant tout droit devant lui, croyant que -c'était un privilège de l'espèce humaine, comme de l'espèce -animale, de se servir de ses jambes à son plaisir. Il n'eut pas -fait deux lieues que voilà quatre autres héros de six pieds qui -l'atteignent, qui le lient, qui le mènent dans un cachot. On lui -demanda juridiquement ce qu'il aimait le mieux d'être fustigé -trente-six fois par tout le régiment, ou de recevoir à-la-fois -douze balles de plomb dans la cervelle. Il eut beau dire que les -volontés sont libres, et qu'il ne voulait ni l'un ni l'autre, il -fallut faire un choix; il se détermina, en vertu du don de Dieu -qu'on nomme _liberté_, à passer trente-six fois par les -baguettes; il essuya deux promenades. Le régiment était composé -de deux mille hommes; cela lui composa quatre mille coups de -baguette, qui, depuis la nuque du cou jusqu'au cul, lui -découvrirent les muscles et les nerfs. Comme on allait procéder -à la troisième course, Candide, n'en pouvant plus, demanda en -grâce qu'on voulût bien avoir la bonté de lui casser la tête; il -obtint cette faveur; on lui bande les yeux; on le fait mettre à -genoux. Le roi des Bulgares passe dans ce moment, s'informe du -crime du patient; et comme ce roi avait un grand génie, il -comprit, par tout ce qu'il apprit de Candide, que c'était un -jeune métaphysicien fort ignorant des choses de ce monde, et il -lui accorda sa grâce avec une clémence qui sera louée dans tous -les journaux et dans tous les siècles. Un brave chirurgien -guérit Candide en trois semaines avec les émollients enseignés -par Dioscoride. Il avait déjà un peu de peau et pouvait marcher, -quand le roi des Bulgares livra bataille au roi des Abares. - - - -CHAPITRE III. - -Comment Candide se sauva d'entre les Bulgares, et ce qu'il -devint. - - -Rien n'était si beau, si leste, si brillant, si bien ordonné que -les deux armées. Les trompettes, les fifres, les hautbois, les -tambours, les canons; formaient une harmonie telle qu'il n'y en -eut jamais en enfer. Les canons renversèrent d'abord à peu près -six mille hommes de chaque côté; ensuite la mousqueterie ôta du -meilleur des mondes environ neuf à dix mille coquins qui en -infectaient la surface. La baïonnette fut aussi la raison -suffisante de la mort de quelques milliers d'hommes. Le tout -pouvait bien se monter à une trentaine de mille âmes. Candide, -qui tremblait comme un philosophe, se cacha du mieux qu'il put -pendant cette boucherie héroïque. - -Enfin, tandis que les deux rois fesaient chanter des _Te Deum_, -chacun dans son camp, il prit le parti d'aller raisonner ailleurs -des effets et des causes. Il passa par-dessus des tas de morts -et de mourants, et gagna d'abord un village voisin; il était en -cendres: c'était un village abare que les Bulgares avaient brûlé, -selon les lois du droit public. Ici des vieillards criblés de -coups regardaient mourir leurs femmes égorgées, qui tenaient -leurs enfants à leurs mamelles sanglantes; là des filles -éventrées après avoir assouvi les besoins naturels de quelques -héros, rendaient les derniers soupirs; d'autres à demi brûlées -criaient qu'on achevât de leur donner la mort. Des cervelles -étaient répandues sur la terre à côté de bras et de jambes -coupés. - -Candide s'enfuit au plus vite dans un autre village: il -appartenait à des Bulgares, et les héros abares l'avaient traité -de même. Candide, toujours marchant sur des membres palpitants -ou à travers des ruines, arriva enfin hors du théâtre de la -guerre, portant quelques petites provisions dans son bissac, et -n'oubliant jamais mademoiselle Cunégonde. Ses provisions lui -manquèrent quand il fut en Hollande; mais ayant entendu dire que -tout le monde était riche dans ce pays-là, et qu'on y était -chrétien, il ne douta pas qu'on ne le traitât aussi bien qu'il -l'avait été dans le château de M. le baron, avant qu'il en eût -été chassé pour les beaux yeux de mademoiselle Cunégonde. - -Il demanda l'aumône à plusieurs graves personnages, qui lui -répondirent tous que, s'il continuait à faire ce métier, on -l'enfermerait dans une maison de correction pour lui apprendre à -vivre. - -Il s'adressa ensuite à un homme qui venait de parler tout seul -une heure de suite sur la charité dans une grande assemblée. Cet -orateur le regardant de travers lui dit: Que venez-vous faire -ici? y êtes-vous pour la bonne cause? Il n'y a point d'effet sans -cause, répondit modestement Candide; tout est enchaîné -nécessairement et arrangé pour le mieux. Il a fallu que je fusse -chassé d'auprès de mademoiselle Cunégonde, que j'aie passé par -les baguettes, et il faut que je demande mon pain, jusqu'à ce que -je puisse en gagner; tout cela ne pouvait être autrement. Mon -ami, lui dit l'orateur, croyez-vous que le pape soit -l'antechrist? Je ne l'avais pas encore entendu dire, répondit -Candide: mais qu'il le soit, ou qu'il ne le soit pas, je manque -de pain. Tu ne mérites pas d'en manger, dit l'autre: va, coquin, -va, misérable, ne m'approche de ta vie. La femme de l'orateur -ayant mis la tête à la fenêtre, et avisant un homme qui doutait -que le pape fût antechrist, lui répandit sur le chef un -plein..... O ciel! à quel excès se porte le zèle de la religion -dans les dames! - -Un homme qui n'avait point été baptisé, un bon anabaptiste, nommé -Jacques, vit la manière cruelle et ignominieuse dont on traitait -ainsi un de ses frères, un être à deux pieds sans plumes, qui -avait une âme; il l'amena chez lui, le nettoya, lui donna du pain -et de la bière, lui fit présent de deux florins, et voulut même -lui apprendre à travailler dans ses manufactures aux étoffes de -Perse qu'on fabrique en Hollande. Candide se prosternant presque -devant lui, s'écriait: Maître Pangloss me l'avait bien dit que -tout est au mieux dans ce monde, car je suis infiniment plus -touché de votre extrême générosité que de la dureté de ce -monsieur à manteau noir, et de madame son épouse. - -Le lendemain, en se promenant, il rencontra un gueux tout couvert -de pustules, les yeux morts, le bout du nez rongé, la bouche de -travers, les dents noires, et parlant de la gorge, tourmenté -d'une toux violente, et crachant une dent à chaque effort. - - - -CHAPITRE IV. - -Comment Candide rencontra son ancien maître de philosophie, le -docteur Pangloss, et ce qui en advint. - - -Candide, plus ému encore de compassion que d'horreur, donna à cet -épouvantable gueux les deux florins qu'il avait reçus de son -honnête anabaptiste Jacques. Le fantôme le regarda fixement, -versa des larmes, et sauta à son cou. Candide effrayé recule. -Hélas! dit le misérable à l'autre misérable, ne reconnaissez-vous -plus votre cher Pangloss? Qu'entends-je? vous, mon cher maître! -vous, dans cet état horrible! quel malheur vous est-il donc -arrivé? pourquoi n'êtes-vous plus dans le plus beau des châteaux? -qu'est devenue mademoiselle Cunégonde, la perle des filles, le -chef-d'oeuvre de la nature? Je n'en peux plus, dit Pangloss. -Aussitôt Candide le mena dans l'étable de l'anabaptiste, où il -lui fit manger un peu de pain; et quand Pangloss fut refait: Eh -bien! lui dit-il, Cunégonde? Elle est morte, reprit l'autre. -Candide s'évanouit à ce mot: son ami rappela ses sens avec un peu -de mauvais vinaigre qui se trouva par hasard dans l'étable. -Candide rouvre les yeux. Cunégonde est morte! Ah! meilleur des -mondes, où êtes-vous? Mais de quelle maladie est-elle morte? ne -serait-ce point de m'avoir vu chasser du beau château de monsieur -son père à grands coups de pied? Non, dit Pangloss, elle a été -éventrée par des soldats bulgares, après avoir été violée autant -qu'on peut l'être; ils ont cassé la tête à monsieur le baron qui -voulait la défendre; madame la baronne a été coupée en morceaux; -mon pauvre pupille traité précisément comme sa soeur; et quant au -château, il n'est pas resté pierre sur pierre, pas une grange, -pas un mouton, pas un canard, pas un arbre; mais nous avons été -bien vengés, car les Abares en ont fait autant dans une baronnie -voisine qui appartenait à un seigneur bulgare. - -A ce discours, Candide s'évanouit encore; mais revenu à soi, et -ayant dit tout ce qu'il devait dire, il s'enquit de la cause et -de l'effet, et de la raison suffisante qui avait mis Pangloss -dans un si piteux état. Hélas! dit l'autre, c'est l'amour: -l'amour, le consolateur du genre humain, le conservateur de -l'univers, l'âme de tous les êtres sensibles, le tendre amour. -Hélas! dit Candide, je l'ai connu cet amour, ce souverain des -coeurs, cette âme de notre âme; il ne m'a jamais valu qu'un -baiser et vingt coups de pied au cul. Comment cette belle cause -a-t-elle pu produire en vous un effet si abominable? - -Pangloss répondit en ces termes: O mon cher Candide! vous avez -connu Paquette, cette jolie suivante de notre auguste baronne: -j'ai goûté dans ses bras les délices du paradis, qui ont produit -ces tourments d'enfer dont vous me voyez dévoré; elle en était -infectée, elle en est peut-être morte. Paquette tenait ce -présent d'un cordelier très savant qui avait remonté à la source, -car il l'avait eu d'une vieille comtesse, qui l'avait reçu d'un -capitaine de cavalerie, qui le devait à une marquise, qui le -tenait d'un page, qui l'avait reçu d'un jésuite, qui, étant -novice, l'avait eu en droite ligne d'un des compagnons de -Christophe Colomb. Pour moi, je ne le donnerai à personne, car -je me meurs. - -O Pangloss! s'écria Candide, voilà une étrange généalogie! -n'est-ce pas le diable qui en fut la souche? Point du tout, -répliqua ce grand homme; c'était une chose indispensable dans le -meilleur des mondes, un ingrédient nécessaire; car si Colomb -n'avait pas attrapé dans une île de l'Amérique cette maladie[1] -qui empoisonne la source de la génération, qui souvent même -empêche la génération, et qui est évidemment l'opposé du grand -but de la nature, nous n'aurions ni le chocolat ni la cochenille; -il faut encore observer que jusqu'aujourd'hui, dans notre -continent, cette maladie nous est particulière, comme la -controverse. Les Turcs, les Indiens, les Persans, les Chinois, -les Siamois, les Japonais, ne la connaissent pas encore; mais il -y a une raison suffisante pour qu'ils la connaissent à leur tour -dans quelques siècles. En attendant elle a fait un merveilleux -progrès parmi nous, et surtout dans ces grandes armées composées -d'honnêtes stipendiaires bien élevés, qui décident du destin des -états; on peut assurer que, quand trente mille hommes combattent -en bataille rangée contre des troupes égales en nombre, il y a -environ vingt mille vérolés de chaque côté. - - [1] Voyez tome XXXI, page 7. B. - - -Voilà qui est admirable, dit Candide; mais il faut vous faire -guérir. Et comment le puis-je? dit Pangloss; je n'ai pas le sou, -mon ami, et dans toute l'étendue de ce globe on ne peut ni se -faire saigner, ni prendre un lavement sans payer, ou sans qu'il y -ait quelqu'un qui paie pour nous. - -Ce dernier discours détermina Candide; il alla se jeter aux pieds -de son charitable anabaptiste Jacques, et lui fit une peinture si -touchante de l'état où son ami était réduit, que le bon-homme -n'hésita pas à recueillir le docteur Pangloss; il le fit guérir à -ses dépens. Pangloss, dans la cure, ne perdit qu'un oeil et une -oreille. Il écrivait bien, et savait parfaitement -l'arithmétique. L'anabaptiste Jacques en fit son teneur de -livres. Au bout de deux mois, étant obligé d'aller à Lisbonne -pour les affaires de son commerce, il mena dans son vaisseau ses -deux philosophes. Pangloss lui expliqua comment tout était on ne -peut mieux. Jacques n'était pas de cet avis. Il faut bien, -disait-il, que les hommes aient un peu corrompu la nature, car -ils ne sont point nés loups, et ils sont devenus loups. Dieu ne -leur a donné ni canons de vingt-quatre, ni baïonnettes, et ils se -sont fait des baïonnettes et des canons pour se détruire. Je -pourrais mettre en ligne de compte les banqueroutes, et la -justice qui s'empare des biens des banqueroutiers pour en -frustrer les créanciers. Tout cela était indispensable, -répliquait le docteur borgne, et les malheurs particuliers font -le bien général; de sorte que plus il y a de malheurs -particuliers, et plus tout est bien. Tandis qu'il raisonnait, -l'air s'obscurcit, les vents soufflèrent des quatre coins du -monde, et le vaisseau fut assailli de la plus horrible tempête, à -la vue du port de Lisbonne. - - -CHAPITRE V. - -Tempête, naufrage, tremblement de terre, et ce qui advint du -docteur Pangloss, de Candide, et de l'anabaptiste Jacques. - -La moitié des passagers affaiblis, expirants de ces angoisses -inconcevables que le roulis d'un vaisseau porte dans les nerfs et -dans toutes les humeurs du corps agitées en sens contraires, -n'avait pas même la force de s'inquiéter du danger. L'autre -moitié jetait des cris et fesait des prières; les voiles étaient -déchirées, les mâts brisés, le vaisseau entr'ouvert. Travaillait -qui pouvait, personne ne s'entendait, personne ne commandait. -L'anabaptiste aidait un peu à la manoeuvre; il était sur le -tillac; un matelot furieux le frappe rudement et l'étend sur les -planches; mais du coup qu'il lui donna, il eut lui-même une si -violente secousse, qu'il tomba hors du vaisseau, la tête la -première. Il restait suspendu et accroché à une partie de mât -rompu. Le bon Jacques court à son secours, l'aide à remonter, et -de l'effort qu'il fait, il est précipité dans la mer à la vue du -matelot, qui le laissa périr sans daigner seulement le regarder. -Candide approche, voit son bienfaiteur qui reparaît un moment, et -qui est englouti pour jamais. Il veut se jeter après lui dans la -mer: le philosophe Pangloss l'en empêche, en lui prouvant que la -rade de Lisbonne avait été formée exprès pour que cet anabaptiste -s'y noyât. Tandis qu'il le prouvait _à priori_, le vaisseau -s'entr'ouvre, tout périt à la réserve de Pangloss, de Candide, et -de ce brutal de matelot qui avait noyé le vertueux anabaptiste; -le coquin nagea heureusement jusqu'au rivage, où Pangloss et -Candide furent portés sur une planche. - -Quand ils furent revenus un peu à eux, ils marchèrent vers -Lisbonne; il leur restait quelque argent, avec lequel ils -espéraient se sauver de la faim après avoir échappé à la tempête. - -A peine ont-ils mis le pied dans la ville, en pleurant la mort de -leur bienfaiteur, qu'ils sentent la terre trembler sous leurs -pas[1]; la mer s'élève en bouillonnant dans le port, et brise les -vaisseaux qui sont à l'ancre. Des tourbillons de flammes et de -cendres couvrent les rues et les places publiques; les maisons -s'écroulent, les toits sont renversés sur les fondements, et les -fondements se dispersent; trente mille habitants de tout âge et -de tout sexe sont écrasés sous des ruines. Le matelot disait en -sifflant et en jurant: il y aura quelque chose à gagner ici. -Quelle peut être la raison suffisante de ce phénomène? disait -Pangloss. Voici le dernier jour du monde! s'écriait Candide. -Le matelot court incontinent au milieu des débris, affronte la -mort pour trouver de l'argent, en trouve, s'en empare, s'enivre, -et ayant cuvé son vin, achète les faveurs de la première fille de -bonne volonté qu'il rencontre sur les ruines des maisons -détruites, et au milieu des mourants et des morts. Pangloss le -tirait cependant par la manche: Mon ami, lui disait-il, cela -n'est pas bien, vous manquez à la raison universelle, vous prenez -mal votre temps. Tête et sang, répondit l'autre, je suis matelot -et né à Batavia; j'ai marché quatre fois sur le crucifix dans -quatre voyages au Japon[2]; tu as bien trouvé ton homme avec ta -raison universelle! - - - [1] Le tremblement de terre de Lisbonne est du 1er novembre 1755. - B. - - [2] Voyez tome XVIII, page 470. B. - - -Quelques éclats de pierre avaient blessé Candide; il était étendu -dans la rue et couvert de débris. Il disait à Pangloss: Hélas! -procure-moi un peu de vin et d'huile; je me meurs. Ce -tremblement de terre n'est pas une chose nouvelle, répondit -Pangloss; la ville de Lima éprouva les mêmes secousses en -Amérique l'année passée; mêmes causes, mêmes effets; il y a -certainement une traînée de soufre sous terre depuis Lima jusqu'à -Lisbonne. Rien n'est plus probable, dit Candide; mais, pour -Dieu, un peu d'huile et de vin. Comment probable? répliqua le -philosophe, je soutiens que la chose est démontrée. Candide -perdit connaissance, et Pangloss lui apporta un peu d'eau d'une -fontaine voisine. - -Le lendemain, ayant trouvé quelques provisions de bouche en se -glissant à travers des décombres, ils réparèrent un peu leurs -forces. Ensuite ils travaillèrent comme les autres à soulager -les habitants échappés à la mort. Quelques citoyens, secourus -par eux, leur donnèrent un aussi bon dîner qu'on le pouvait dans -un tel désastre: il est vrai que le repas était triste; les -convives arrosaient leur pain de leurs larmes; mais Pangloss les -consola, en les assurant que les choses ne pouvaient être -autrement: Car, dit-il, tout ceci est ce qu'il y a de mieux; car -s'il y a un volcan à Lisbonne, il ne pouvait être ailleurs; car -il est impossible que les choses ne soient pas où elles sont, car -tout est bien. - -Un petit homme noir, familier de l'inquisition, lequel était à -côté de lui, prit poliment la parole et dit: Apparemment que -monsieur ne croit pas au péché originel; car si tout est au -mieux, il n'y a donc eu ni chute ni punition. - -Je demande très humblement pardon à votre excellence, répondit -Pangloss encore plus poliment, car la chute de l'homme et la -malédiction entraient nécessairement dans le meilleur des mondes -possibles. Monsieur ne croit donc pas à la liberté? dit le -familier. Votre excellence m'excusera, dit Pangloss; la liberté -peut subsister avec la nécessité absolue; car il était nécessaire -que nous fussions libres; car enfin la volonté déterminée...... -Pangloss était au milieu de sa phrase, quand Je familier fit un -signe de tête à son estafier qui lui servait à boire du vin de -Porto ou d'Oporto. diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-euc-jp.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-euc-jp.txt deleted file mode 100644 index 7b03a990..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-euc-jp.txt +++ /dev/null @@ -1,178 +0,0 @@ -This file was derived from -http://www.gutenberg.org/cache/epub/1982/pg1982.txt --------- -ÍåÀ¸Ìç - -³©ÀîζǷ²ð - -¡¡°¿Æü¤ÎÊëÊý¤Î»ö¤Ç¤¢¤ë¡£°ì¿Í¤Î²¼¿Í¤¬¡¢ÍåÀ¸Ìç¤Î²¼¤Ç±«¤ä¤ß¤òÂԤäƤ¤¤¿¡£¡¡¹­¤¤Ìç -¤Î²¼¤Ë¤Ï¡¢¤³¤ÎÃˤγ°¤Ëï¤â¤¤¤Ê¤¤¡£¤¿¤À¡¢½ê¡¹Ã°ÅɤÎÇí¤²¤¿¡¢Â礭¤Ê±ßÃì¤Ë¡¢¤­¤ê¤® -¤ê¤¹¤¬°ìɤ¤È¤Þ¤Ã¤Æ¤¤¤ë¡£ÍåÀ¸Ì礬¡¢¼ë¿ýÂçÏ©¤Ë¤¢¤ë°Ê¾å¤Ï¡¢¤³¤ÎÃˤγ°¤Ë¤â¡¢±«¤ä¤ß -¤ò¤¹¤ë»Ô½÷³Þ¤äÙ汨˹»Ò¤¬¡¢¤â¤¦Æ󻰿ͤϤ¢¤ê¤½¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£¤½¤ì¤¬¡¢¤³¤ÎÃˤγ° -¤Ëï¤â¤¤¤Ê¤¤¡£ -¡¡²¿¸Î¤«¤È±¾¤¦¤È¡¢¤³¤ÎÆó»°Ç¯¡¢µþÅԤˤϡ¢ÃϿ̤Ȥ«ÄÔÉ÷¤È¤«²Ð»ö¤È¤«ñÀñ¼¤È¤«±¾¤¦ºÒ -¤¤¤¬¤Ä¤Å¤¤¤Æµ¯¤³¤Ã¤¿¡£¤½¤³¤ÇÍìÃæ¤Î¤µ¤Ó¤ìÊý¤Ï°ìÄ̤ê¤Ç¤Ê¤¤¡£µìµ­¤Ë¤è¤ë¤È¡¢Ê©Áü¤ä -Ê©¶ñ¤òÂǺդ¤¤Æ¡¢¤½¤Î𤬤Ĥ¤¤¿¤ê¡¢¶â¶ä¤ÎÇó¡Ê¤Ï¤¯¡Ë¤¬¤Ä¤¤¤¿¤ê¤·¤¿ÌÚ¤ò¡¢Ï©¤Ð¤¿¤Ë -¤Ä¤ß½Å¤Í¤Æ¿Å¤ÎÎÁ¡Ê¤·¤í¡Ë¤ËÇä¤Ã¤Æ¤¤¤¿¤È±¾¤¦¤³¤È¤Ç¤¢¤ë¡£ÍìÃ椬¤½¤Î»ÏËö¤Ç¤¢¤ë¤«¤é¡¢ -ÍåÀ¸Ìç¤Î½¤Íý¤Ê¤É¤Ï¡¢¸µ¤è¤êï¤â¼Î¤Æ¤Æ¸Ü¤ß¤ë¼Ô¤¬¤Ê¤«¤Ã¤¿¡£¤¹¤ë¤È¤½¤Î¹Ó¤ì²Ì¤Æ¤¿¤Î -¤ò¤è¤¤»ö¤Ë¤·¤Æ¡¢¸Ñì¡Ê¤³¤ê¡Ë¤¬À³¤à¡£Åð¿Í¤¬À³¤à¡£¤È¤¦¤È¤¦¤·¤Þ¤¤¤Ë¤Ï¡¢°ú¼è¤ê¼ê¤Î -¤Ê¤¤»à¿Í¤ò¡¢¤³¤ÎÌç¤Ø»ý¤Ã¤ÆÍè¤Æ¡¢¼Î¤Æ¤Æ¹Ô¤¯¤È±¾¤¦½¬´·¤µ¤¨½ÐÍ褿¡£¤½¤³¤Ç¡¢Æü¤ÎÌÜ -¤¬¸«¤¨¤Ê¤¯¤Ê¤ë¤È¡¢Ã¯¤Ç¤âµ¤Ì£¤ò°­¤¬¤Ã¤Æ¡¢¤³¤ÎÌç¤Î¶á½ê¤Ø¤Ï­¤Ö¤ß¤ò¤·¤Ê¤¤»ö¤Ë¤Ê¤Ã -¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¤¢¤ë¡£ -¡¡¤½¤ÎÂå¤êËôòí¤¬²¿½è¤«¤é¤«¡¢¤¿¤¯¤µ¤ó½¸¤Þ¤Ã¤ÆÍ褿¡£Ãë´Ö¸«¤ë¤È¡¢¤½¤Îòí¤¬²¿±©¤È¤Ê -¤¯ÎؤòÉÁ¤¤¤Æ¡¢¹â¤¤òöÈø¡Ê¤·¤Ó¡Ë¤Î¤Þ¤ï¤ê¤òÓƤ­¤Ê¤¬¤é¡¢Èô¤Ó¤Þ¤ï¤Ã¤Æ¤¤¤ë¡£¼ì¤ËÌç¤Î -¾å¤Î¶õ¤¬¡¢Í¼¾Æ¤±¤Ç¤¢¤«¤¯¤Ê¤ë»þ¤Ë¤Ï¡¢¤½¤ì¤¬¸ÕËã¤ò¤Þ¤¤¤¿¤è¤¦¤Ë¤Ï¤Ã¤­¤ê¸«¤¨¤¿¡£òí -¤Ï¡¢ÌÞÏÀ¡¢Ìç¤Î¾å¤Ë¤¢¤ë»à¿Í¤ÎÆù¤ò¡¢Âï¤ß¤ËÍè¤ë¤Î¤Ç¤¢¤ë¡£¡¼¡¼Ìà¤âº£Æü¤Ï¡¢¹ï¸Â¤¬ÃÙ -¤¤¤»¤¤¤«¡¢°ì±©¤â¸«¤¨¤Ê¤¤¡£Í£¡¢½ê¡¹¡¢Êø¤ì¤«¤«¤Ã¤¿¡¢¤½¤¦¤·¤Æ¤½¤ÎÊø¤ìÌܤËŤ¤Áð¤Î -¤Ï¤¨¤¿ÀÐÃʤξå¤Ë¡¢òí¤Îʵ¡Ê¤¯¤½¡Ë¤¬¡¢ÅÀ¡¹¤ÈÇò¤¯¤³¤Ó¤ê¤Ä¤¤¤Æ¤¤¤ë¤Î¤¬¸«¤¨¤ë¡£²¼¿Í -¤Ï¼·Ãʤ¢¤ëÀÐÃʤΰìÈÖ¾å¤ÎÃʤËÀö¤¤¤¶¤é¤·¤¿º°¤Î²¨¡Ê¤¢¤ª¡Ë¤Î¿¬¤ò¿ø¤¨¤Æ¡¢±¦¤ÎËˤ˽Р-Í褿¡¢Â礭¤ÊÌÌ⮡ʤˤ­¤Ó¡Ë¤òµ¤¤Ë¤·¤Ê¤¬¤é¡¢¤Ü¤ó¤ä¤ê¡¢±«¤Î¤Õ¤ë¤Î¤òį¤á¤Æ¤¤¤ë¤Î¤Ç -¤¢¤ë¡£ -¡¡ºî¼Ô¤Ï¤µ¤Ã¤­¡¢¡Ö²¼¿Í¤¬±«¤ä¤ß¤òÂԤäƤ¤¤¿¡×¤È½ñ¤¤¤¿¡£¤·¤«¤·¡¢²¼¿Í¤Ï¡¢±«¤¬¤ä¤ó -¤Ç¤â³ÊÊ̤ɤ¦¤·¤è¤¦¤È±¾¤¦Åö¤Æ¤Ï¤Ê¤¤¡£¤Õ¤À¤ó¤Ê¤é¡¢ÌÞÏÀ¡¢¼ç¿Í¤Î²È¤Øµ¢¤ë²Ä¤­È¦¤Ç¤¢ -¤ë¡£½ê¤¬¤½¤Î¼ç¿Í¤«¤é¤Ï¡¢»Í¸ÞÆüÁ°¤Ë²Ë¤ò½Ð¤µ¤ì¤¿¡£Á°¤Ë¤â½ñ¤¤¤¿¤è¤¦¤Ë¡¢Åö»þµþÅԤΠ-Ä®¤Ï°ìÄ̤ê¤Ê¤é¤º¿êÈù¤·¤Æ¤¤¤¿¡£º£¤³¤Î²¼¿Í¤¬¡¢±Êǯ¡¢»È¤ï¤ì¤Æ¤¤¤¿¼ç¿Í¤«¤é²Ë¤ò½Ð¤µ -¤ì¤¿¤Î¤â¡¢¤³¤Î¿êÈù¤Î¾®¤µ¤Ê;ÇȤ˳°¤Ê¤é¤Ê¤¤¡£¤À¤«¤é¡¢¡Ö²¼¿Í¤¬±«¤ä¤ß¤òÂԤäƤ¤¤¿¡× -¤È±¾¤¦¤è¤ê¤â¡¢¡Ö±«¤Ë¤Õ¤ê¤³¤á¤é¤ì¤¿²¼¿Í¤¬¡¢¹Ô¤­½ê¤¬¤Ê¤¯¤Æ¡¢ÅÓÊý¤Ë¤¯¤ì¤Æ¤¤¤¿¡×¤È -±¾¤¦Êý¤¬¡¢Å¬Åö¤Ç¤¢¤ë¡£¤½¤Î¾å¡¢º£Æü¤Î¶õÌÏÍͤ⾯¤Ê¤«¤é¤º¤³¤ÎÊ¿°ÂÄ«¤Î²¼¿Í¤Î -Sentimentalisme¤Ë±Æ¶Á¤·¤¿¡£¿½¡Ê¤µ¤ë¡Ë¤Î¹ï²¼¤¬¤ê¤«¤é¤Õ¤ê½Ð¤·¤¿±«¤Ï¡¢Ì¤¤À¤Ë¾å -¤¬¤ë¤±¤·¤­¤¬¤Ê¤¤¡£¤½¤³¤Ç¡¢²¼¿Í¤Ï¡¢²¿¤òÁ¼¤¤¤Æ¤âº¹Åö¤¿¤êÌÀÆü¤ÎÊ뤷¤ò¤É¤¦¤Ë¤«¤·¤è -¤¦¤È¤·¤Æ¡¼¡¼±¾¤ï¤Ð¤É¤¦¤Ë¤â¤Ê¤é¤Ê¤¤»ö¤ò¡¢¤É¤¦¤Ë¤«¤·¤è¤¦¤È¤·¤Æ¡¢¤È¤ê¤È¤á¤â¤Ê¤¤¹Í -¤¨¤ò¤¿¤É¤ê¤Ê¤¬¤é¡¢¤µ¤Ã¤­¤«¤é¼ë¿ýÂçÏ©¤Ë¤Õ¤ë±«¤Î²»¤òʹ¤¯¤È¤â¤Ê¤¯Ê¹¤¤¤Æ¤¤¤¿¡£ -¡¡±«¤ÏÍåÀ¸Ìç¤ò¤Ä¤Ä¤ó¤Ç¡¢±ó¤¯¤«¤é¡¢¤¶¤¢¤Ã¤È±¾¤¦²»¤ò¤¢¤Ä¤á¤Æ¤¯¤ë¡£Í¼°Ç¤Ï¼¡Âè¤Ë¶õ -¤òÄ㤯¤·¤Æ¡¢¸«¾å¤²¤ë¤È¡¢Ìç¤Î²°º¬¤¬¡¢¼Ð¤á¤Ë¤Ä¤­½Ð¤·¤¿á°¡Ê¤¤¤é¤«¡Ë¤ÎÀè¤Ë¡¢½Å¤¿¤¯ -¤¦¤¹°Å¤¤±À¤ò»Ù¤¨¤Æ¤¤¤ë¡£ -¡¡¤É¤¦¤Ë¤â¤Ê¤é¤Ê¤¤»ö¤ò¡¢¤É¤¦¤Ë¤«¤¹¤ë°Ù¤Ë¤Ï¡¢¼êÃʤòÁª¤ó¤Ç¤¤¤ëʤ¤¤È¤Þ¡Ë¤Ï¤Ê¤¤¡£ -Áª¤ó¤Ç¤¤¤ì¤Ð¡¢ÃÛÃϡʤĤ¤¤¸¡Ë¤Î²¼¤«¡¢Æ»¤Ð¤¿¤ÎÅڤξå¤Ç¡¢ñÀ»à¡Ê¤¦¤¨¤¸¤Ë¡Ë¤ò¤¹¤ë¤Ð -¤«¤ê¤Ç¤¢¤ë¡£¤½¤¦¤·¤Æ¡¢¤³¤ÎÌç¤Î¾å¤Ø»ý¤Ã¤ÆÍè¤Æ¡¢¸¤¤Î¤è¤¦¤Ë¼Î¤Æ¤é¤ì¤Æ¤·¤Þ¤¦¤Ð¤«¤ê -¤Ç¤¢¤ë¡£Áª¤Ð¤Ê¤¤¤È¤¹¤ì¤Ð¡¼¡¼²¼¿Í¤Î¹Í¤¨¤Ï¡¢²¿ÅÙ¤âƱ¤¸Æ»¤òÄã×ˤ·¤¿Íȶç¤Ë¡¢¤ä¤Ã¤È -¤³¤Î¶É½ê¤Ø°©Ã夷¤¿¡£¤·¤«¤·¤³¤Î¡Ö¤¹¤ì¤Ð¡×¤Ï¡¢¤¤¤Ä¤â¤Ç¤¿¤Ã¤Æ¤â¡¢·ë¶É¡Ö¤¹¤ì¤Ð¡×¤Ç -¤¢¤Ã¤¿¡£²¼¿Í¤Ï¡¢¼êÃʤòÁª¤Ð¤Ê¤¤¤È¤¤¤¦»ö¤ò¹ÎÄꤷ¤Ê¤¬¤é¤â¡¢¤³¤Î¡Ö¤¹¤ì¤Ð¡×¤Î¤«¤¿¤ò -¤Ä¤±¤ë°Ù¤Ë¡¢ÅöÁ³¡¢¤³¤Î¸å¤ËÍè¤ë²Ä¤­¡ÖÅð¿Í¤Ë¤Ê¤ë¤è¤ê³°¤Ë»ÅÊý¤¬¤Ê¤¤¡×¤È±¾¤¦»ö¤ò¡¢ -ÀѶËŪ¤Ë¹ÎÄꤹ¤ë¤À¤±¤Î¡¢Í¦µ¤¤¬½Ð¤º¤Ë¤¤¤¿¤Î¤Ç¤¢¤ë¡£ -¡¡²¼¿Í¤ÏÂ礭¤ÊÓê¡Ê¤¯¤µ¤á¡Ë¤ò¤·¤Æ¡¢¤½¤ì¤«¤é¡¢Âçµ·¤½¤¦¤ËΩ¾å¤¬¤Ã¤¿¡£Í¼Î䤨¤Î¤¹¤ë -µþÅԤϡ¢¤â¤¦²Ð²³¤¬Íߤ·¤¤Äø¤Î´¨¤µ¤Ç¤¢¤ë¡£É÷¤ÏÌç¤ÎÃì¤ÈÃì¤È¤Î´Ö¤ò¡¢Í¼°Ç¤È¶¦¤Ë±óθ -¤Ê¤¯¡¢¿á¤­¤Ì¤±¤ë¡£Ã°ÅɤÎÃì¤Ë¤È¤Þ¤Ã¤Æ¤¤¤¿¤­¤ê¤®¤ê¤¹¤â¡¢¤â¤¦¤É¤³¤«¤Ø¹Ô¤Ã¤Æ¤·¤Þ¤Ã -¤¿¡£ -¡¡²¼¿Í¤Ï¡¢ðô¤ò¤Á¤Â¤á¤Ê¤¬¤é¡¢»³¿á¤Î´ÀêΡʤ«¤¶¤ß¡Ë¤Ë½Å¤Í¤¿¡¢º°¤Î²¨¤Î¸ª¤ò¹â¤¯¤·¤Æ -Ìç¤Î¤Þ¤ï¤ê¤ò¸«¤Þ¤ï¤·¤¿¡£±«É÷¤Î´µ¤Î¤Ê¤¤¡¢¿ÍÌܤˤ«¤«¤ë×ü¤Î¤Ê¤¤¡¢°ìÈճڤˤͤé¤ì¤½ -¤¦¤Ê½ê¤¬¤¢¤ì¤Ð¡¢¤½¤³¤Ç¤È¤â¤«¤¯¤â¡¢Ìë¤òÌÀ¤«¤½¤¦¤È»×¤Ã¤¿¤«¤é¤Ç¤¢¤ë¡£¤¹¤ë¤È¡¢¹¬Ìç -¤Î¾å¤ÎÏ°¤Ø¾å¤ë¡¢Éý¤Î¹­¤¤¡¢Ç·¤âð¤òÅɤä¿Äô»Ò¤¬´ã¤Ë¤Ä¤¤¤¿¡£¾å¤Ê¤é¡¢¿Í¤¬¤¤¤¿¤Ë¤· -¤Æ¤â¡¢¤É¤¦¤»»à¿Í¤Ð¤«¤ê¤Ç¤¢¤ë¡£²¼¿Í¤Ï¡¢¤½¤³¤Ç¹ø¤Ë¤µ¤²¤¿À»ÊÁ¡Ê¤Ò¤¸¤ê¤Å¤«¡Ë¤ÎÂÀÅá -¤¬¾äÁö¤é¤Ê¤¤¤è¤¦¤Ëµ¤¤ò¤Ä¤±¤Ê¤¬¤é¡¢ÏÎÁðÍú¤ò¤Ï¤¤¤¿Â­¤ò¡¢¤½¤ÎÄô»Ò¤Î°ìÈÖ²¼¤ÎÃÊ¤Ø¤Õ -¤ß¤«¤±¤¿¡£ -¡¡¤½¤ì¤«¤é¡¢²¿Ê¬¤«¤Î¸å¤Ç¤¢¤ë¡£ÍåÀ¸Ìç¤ÎÏ°¤Î¾å¤Ø½Ð¤ë¡¢Éý¤Î¹­¤¤Äô»Ò¤ÎÃæÃʤˡ¢°ì¿Í -¤ÎÃˤ¬¡¢Ç­¤Î¤è¤¦¤Ë¿È¤ò¤Á¤Â¤á¤Æ¡¢Â©¤ò»¦¤·¤Ê¤¬¤é¡¢¾å¤ÎÍƻҤò±®¤Ã¤Æ¤¤¤¿¡£Ï°¤Î¾å¤« -¤é¤µ¤¹²Ð¤Î¸÷¤¬¡¢¤«¤¹¤«¤Ë¡¢¤½¤ÎÃˤᦤÎËˤò¤Ì¤é¤·¤Æ¤¤¤ë¡£Ã»¤¤ò¤¡Ê¤Ò¤²¡Ë¤ÎÃæ¤Ë¡¢ -ÀÖ¤¯Ç¿¤ò»ý¤Ã¤¿ÌÌ⮤Τ¢¤ëËˤǤ¢¤ë¡£²¼¿Í¤Ï¡¢»Ï¤á¤«¤é¡¢¤³¤Î¾å¤Ë¤¤¤ë¼Ô¤Ï¡¢»à¿Í¤Ð¤« -¤ê¤À¤È¹â¤ò³ç¤Ã¤Æ¤¤¤¿¡£¤½¤ì¤¬¡¢Äô»Ò¤òÆó»°Ãʾå¤Ã¤Æ¸«¤ë¤È¡¢¾å¤Ç¤Ï狼²Ð¤ò¤È¤Ü¤·¤Æ¡¢ -¤·¤«¤â¤½¤Î²Ð¤ò¶½èº¡½è¤ÈÆ°¤«¤·¤Æ¤¤¤ë¤é¤·¤¤¡£¤³¤ì¤Ï¡¢¤½¤ÎÂù¤Ã¤¿¡¢²«¤¤¤í¤¤¸÷¤¬¡¢ -¶ù¡¹¤ËÃØéá¤ÎÁã¤ò¤«¤±¤¿Å·°æ΢¤Ë¡¢¤æ¤ì¤Ê¤¬¤é±Ç¤Ã¤¿¤Î¤Ç¡¢¤¹¤°¤Ë¤½¤ì¤ÈÃΤ줿¤Î¤Ç¤¢ -¤ë¡£¤³¤Î±«¤ÎÌë¤Ë¡¢¤³¤ÎÍåÀ¸Ìç¤Î¾å¤Ç¡¢²Ð¤ò¤È¤â¤·¤Æ¤¤¤ë¤«¤é¤Ï¡¢¤É¤¦¤»Í£¤Î¼Ô¤Ç¤Ï¤Ê -¤¤¡£ -¡¡²¼¿Í¤Ï¡¢µÜ¼é¡Ê¤ä¤â¤ê¡Ë¤Î¤è¤¦¤Ë­²»¤ò¤Ì¤¹¤ó¤Ç¡¢¤ä¤Ã¤ÈµÞ¤ÊÄô»Ò¤ò¡¢°ìÈÖ¾å¤ÎÃÊ¤Þ -¤ÇÇ礦¤è¤¦¤Ë¤·¤Æ¾å¤ê¤Ä¤á¤¿¡£¤½¤¦¤·¤ÆÂΤò½ÐÍè¤ë¤À¤±¡¢Ê¿¤Ë¤·¤Ê¤¬¤é¡¢ðô¤ò½ÐÍè¤ë¤À -¤±¡¢Á°¤Ø½Ð¤·¤Æ¡¢¶²¤ë¶²¤ë¡¢Ï°¤ÎÆâ¤òÇÁ¤¤¤Æ¸«¤¿¡£ -¡¡¸«¤ë¤È¡¢Ï°¤ÎÆâ¤Ë¤Ï¡¢±½¤Ëʹ¤¤¤¿Ä̤ꡢ´ö¤Ä¤«¤Î»Ó³¼¡Ê¤·¤¬¤¤¡Ë¤¬¡¢ÌµÂ¤ºî¤Ë´þ¤Æ¤Æ -¤¢¤ë¤¬¡¢²Ð¤Î¸÷¤ÎµÚ¤ÖÈϰϤ¬¡¢»×¤Ã¤¿¤è¤ê¶¹¤¤¤Î¤Ç¡¢¿ô¤Ï´ö¤Ä¤È¤â¤ï¤«¤é¤Ê¤¤¡£Í£¡¢¤ª -¤Ü¤í¤²¤Ê¤¬¤é¡¢ÃΤì¤ë¤Î¤Ï¡¢¤½¤ÎÃæ¤ËÍç¤Î»Ó³¼¤È¡¢Ãåʪ¤òÃ夿»Ó³¼¤È¤¬¤¢¤ë¤È±¾¤¦»ö¤Ç -¤¢¤ë¡£ÌÞÏÀ¡¢Ãæ¤Ë¤Ï½÷¤âÃˤâ¤Þ¤¸¤Ã¤Æ¤¤¤ë¤é¤·¤¤¡£¤½¤¦¤·¤Æ¡¢¤½¤Î»Ó³¼¤Ï³§¡¢¤½¤ì¤¬¡¢ -¾¨¡Ê¤«¤Ä¤Æ¡Ë¡¢À¸¤­¤Æ¤¤¤¿¿Í´Ö¤À¤È±¾¤¦»ö¼Â¤µ¤¨µ¿¤ï¤ì¤ëÄø¡¢ÅÚ¤òÙԤͤƤ¤Ã¤¿¿Í·Á¤Î -¤è¤¦¤Ë¡¢¸ý¤ò³«¤¤¤¿¤ê¡¢¼ê¤ò±ä¤Ð¤·¤¿¤ê¤·¤Æ¡¢¤´¤í¤´¤í¾²¤Î¾å¤Ë¤³¤í¤¬¤Ã¤Æ¤¤¤¿¡£¤·¤« -¤â¡¢¸ª¤È¤«¶»¤È¤«¤Î¹â¤¯¤Ê¤Ã¤Æ¤¤¤ëÉôʬ¤Ë¡¢¤Ü¤ó¤ä¤ê¤·¤¿²Ð¤Î¸÷¤ò¤¦¤±¤Æ¡¢Ä㤯¤Ê¤Ã¤Æ -¤¤¤ëÉôʬ¤Î±Æ¤ò°ìÁذŤ¯¤·¤Ê¤¬¤é¡¢±Êµ×¤Ë°¢¡Ê¤ª¤·¡Ë¤ÎÇ¡¤¯ÌۤäƤ¤¤¿¡£ -¡¡²¼¿Í¤Ï¡¢¤½¤ì¤é¤Î»Ó³¼¤ÎÉå।·¤¿½­µ¤¤Ë»×¤ï¤º¡¢É¡¤ò±æ¤Ã¤¿¡Ê¤ª¤ª¤Ã¤¿¡Ë¡£¤·¤«¤·¡¢ -¤½¤Î¼ê¤Ï¡¢¼¡¤Î½Ö´Ö¤Ë¤Ï¡¢¤â¤¦É¡¤ò±æ¤¦»ö¤ò˺¤ì¤Æ¤¤¤¿¡£°¿¤ë¶¯¤¤´¶¾ð¤¬Ëؼ½¡Ê¤Û¤È¤ó -¤É¤³¤È¤´¤È¤¯¡Ë¤³¤ÎÃˤÎÓ̳ФòÃ¥¤Ã¤Æ¤·¤Þ¤Ã¤¿¤«¤é¤Ç¤¢¤ë¡£ -¡¡²¼¿Í¤Î´ã¤Ï¡¢¤½¤Î»þ¡¢¤Ï¤¸¤á¤Æ¡¢Â¶»Ó³¼¤ÎÃæ¤Ëí­¤Ã¤Æ¤¤¤ë¡Ê¤¦¤º¤¯¤Þ¤Ã¤Æ¤¤¤ë¡Ë¿Í´Ö -¤ò¸«¤¿¡£ÛØÈ©¿§¡Ê¤Ò¤Ï¤À¤¤¤í¡Ë¤ÎÃåʪ¤òÃø¤¿¡¢ÇؤÎÄ㤤¡¢Á餻¤¿¡¢ÇòȱƬ¤Î¡¢±î¤Î¤è¤¦ -¤ÊÏ·Ç̤Ǥ¢¤ë¡£¤½¤ÎÏ·Ç̤ϡ¢±¦¤Î¼ê¤Ë²Ð¤ò¤È¤â¤·¤¿¾¾¤ÎÌÚÊÒ¤ò»ý¤Ã¤Æ¡¢¤½¤Î»Ó³¼¤Î°ì¤Ä -¤Î´é¤òÇÁ¤­¤³¤à¤è¤¦¤Ëį¤á¤Æ¤¤¤¿¡£È±¤ÎÌӤ΍¤½ê¤ò¸«¤ë¤È¡¢Â¿Ê¬½÷¤Î»Ó³¼¤Ç¤¢¤í¤¦¡£ -¡¡²¼¿Í¤Ï¡¢Ï»Ê¬¤Î¶²ÉݤȻÍʬ¤Î¹¥´ñ¿´¤È¤ËÆ°¤«¤µ¤ì¤Æ¡¢»Ã»þ¤Ï¸ÆµÛ¡Ê¤¤¤­¡Ë¤ò¤¹¤ë¤Î¤µ -¤¨Ëº¤ì¤Æ¤¤¤¿¡£µìµ­¤Îµ­¼Ô¤Î¸ì¤ò¼Ú¤ê¤ì¤Ð¡¢¡ÖƬ¿È¡Ê¤È¤¦¤·¤ó¡Ë¤ÎÌÓ¤âÂÀ¤ë¡×¤è¤¦¤Ë´¶ -¤¸¤¿¤Î¤Ç¤¢¤ë¡£¤¹¤ë¤È¡¢Ï·Ç̤ϡ¢¾¾¤ÎÌÚÊÒ¤ò¡¢¾²ÈĤδ֤ËÁÞ¤·¤Æ¡¢¤½¤ì¤«¤é¡¢º£¤Þ¤Çį -¤á¤Æ¤¤¤¿»Ó³¼¤Î¼ó¤Ëξ¼ê¤ò¤«¤±¤ë¤È¡¢ÃúÅÙ¡¢±î¤Î¿Æ¤¬±î¤Î»Ò¤Îé͡ʤ·¤é¤ß¡Ë¤ò¤È¤ë¤è¤¦ -¤Ë¡¢¤½¤ÎŤ¤È±¤ÎÌÓ¤ò°ìËܤº¤ÄÈ´¤­¤Ï¤¸¤á¤¿¡£È±¤Ï¼ê¤Ë½¾¤Ã¤ÆÈ´¤±¤ë¤é¤·¤¤¡£ -¡¡¤½¤Îȱ¤ÎÌÓ¤¬¡¢°ìËܤº¤ÄÈ´¤±¤ë¤Î¤Ë½¾¤Ã¤Æ²¼¿Í¤Î¿´¤«¤é¤Ï¡¢¶²Éݤ¬¾¯¤·¤º¤Ä¾Ã¤¨¤Æ¹Ô¤Ã -¤¿¡£¤½¤¦¤·¤Æ¡¢¤½¤ì¤ÈƱ»þ¤Ë¡¢¤½¤ÎÏ·Ç̤ËÂФ¹¤ë¤Ï¤²¤·¤¤Áþ°­¤¬¡¢¾¯¤·¤º¤ÄÆ°¤¤¤ÆÍ褿¡£ -¤¤¤ä¡¢¤³¤ÎÏ·Ç̤ËÂФ¹¤ë¤È±¾¤Ã¤Æ¤Ï¡¢¸ìÊÀ¤¬¤¢¤ë¤«¤âÃΤì¤Ê¤¤¡£Ç«¡Ê¤à¤·¤í¡Ë¡¢¤¢¤é¤æ -¤ë°­¤ËÂФ¹¤ëÈ¿´¶¤¬¡¢°ìʬËè¤Ë¶¯¤µ¤òÁý¤·¤ÆÍ褿¤Î¤Ç¤¢¤ë¡£¤³¤Î»þ¡¢Ã¯¤«¤¬¤³¤Î²¼¿Í¤Ë¡¢ -¤µ¤Ã¤­Ìç¤Î²¼¤Ç¤³¤ÎÃˤ¬¹Í¤¨¤Æ¤¤¤¿¡¢ñÀ»à¡Ê¤¦¤¨¤¸¤Ë¡Ë¤ò¤¹¤ë¤«Åð¿Í¤Ë¤Ê¤ë¤«¤È±¾¤¦Ìä -Âê¤ò¡¢²þ¤á¤Æ»ý½Ð¤·¤¿¤é¡¢¶²¤é¤¯²¼¿Í¤Ï¡¢²¿¤Î̤Îý¤â¤Ê¤¯¡¢ñÀ»à¤òÁª¤ó¤À»ö¤Ç¤¢¤í¤¦¡£ -¤½¤ì¤Û¤É¡¢¤³¤ÎÃˤΰ­¤òÁþ¤à¿´¤Ï¡¢Ï·Ç̤ËÁÞ¤·¤¿¾¾¤ÎÌÚÊҤΤ褦¤Ë¡¢Àª¤è¤¯Ç³¤¨¾å -¤¬¤ê¤À¤·¤Æ¤¤¤¿¤Î¤Ç¤¢¤ë¡£ -¡¡²¼¿Í¤Ë¤Ï¡¢ÌÞÏÀ¡¢²¿¸ÎÏ·Ç̤¬»à¿Í¤Îȱ¤ÎÌÓ¤òÈ´¤¯¤«¤ï¤«¤é¤Ê¤«¤Ã¤¿¡£½¾¤Ã¤Æ¡¢¹çÍýŪ -¤Ë¤Ï¡¢¤½¤ì¤òÁ±°­¤Î²¿¤ì¤ËÊҤŤ±¤Æ¤è¤¤¤«ÃΤé¤Ê¤«¤Ã¤¿¡£¤·¤«¤·²¼¿Í¤Ë¤È¤Ã¤Æ¤Ï¡¢¤³¤Î -±«¤ÎÌë¤Ë¡¢¤³¤ÎÍåÀ¸Ìç¤Î¾å¤Ç¡¢»à¿Í¤Îȱ¤ÎÌÓ¤òÈ´¤¯¤È±¾¤¦»ö¤¬¡¢¤½¤ì¤À¤±¤Ç´û¤Ëµö¤¹²Ä -¤é¤¶¤ë°­¤Ç¤¢¤Ã¤¿¡£ÌÞÏÀ¡¡²¼¿Í¤Ï¡¡¤µ¤Ã¤­Ëø¼«Ê¬¤¬¡¢Åð¿Í¤Ë¤Ê¤ëµ¤¤Ç¤¤¤¿»ö¤Ê¤¾¤Ï¡¡¤È -¤¦¤Ë˺¤ì¤Æ¤¤¤ë¤Î¤Ç¤¢¤ë¡£ -¡¡¤½¤³¤Ç¡¢²¼¿Í¤Ï¡¢Î¾Â­¤ËÎϤòÆþ¤ì¤Æ¡¢¤¤¤«¤Ê¤ê¡¢Äô»Ò¤«¤é¾å¤ØÈô¤Ó¾å¤¬¤Ã¤¿¡¡¤½¤¦¤· -¤ÆÀ»ÊÁ¡Ê¤Ò¤¸¤ê¤Å¤«¡Ë¤ÎÂÀÅá¤Ë¼ê¤ò¤«¤±¤Ê¤¬¤é¡¢Âç¸Ô¤ËÏ·Ç̤ÎÁ°¤ØÊâ¤ß¤è¤Ã¤¿¡£Ï·Ç̤¬ -¶Ã¤¤¤¿¤Î¤Ï¡¡±¾¤¦Ëø¤â¤Ê¤¤¡£ -¡¡Ï·Ç̤ϡ¢°ìÌܲ¼¿Í¤ò¸«¤ë¤È¡¢¤Þ¤ë¤Ç׸¡Ê¤¤¤·¤æ¤ß¡Ë¤Ë¤Ç¤âÃƤ«¤ì¤¿¤è¤¦¤Ë¡¡Èô¤Ó¾å¤¬¤Ã -¤¿¡£ -¡¡¡Ö¤ª¤Î¤ì¡¢¤É¤³¤Ø¹Ô¤¯¡£¡× -¡¡²¼¿Í¤Ï¡¢Ï·Ç̤¬»Ó³¼¤Ë¤Ä¤Þ¤Å¤­¤Ê¤¬¤é¡¢¹²¤Æ¤Õ¤¿¤á¤¤¤Æƨ¤²¤è¤¦¤È¤¹¤ë¹Ô¼ê¤òºÉ¤¤¤Ç¡¢ -¤³¤¦Çͤä¿¡£Ï·Ç̤ϡ¢¤½¤ì¤Ç¤â²¼¿Í¤ò¤Ä¤­¤Î¤±¤Æ¹Ô¤³¤¦¤È¤¹¤ë¡£²¼¿Í¤ÏËô¡¢¤½¤ì¤ò¹Ô¤« -¤¹¤Þ¤¤¤È¤·¤Æ¡¢²¡¤·¤â¤É¤¹¡£Æó¿Í¤Ï»Ó³¼¤ÎÃæ¤Ç¡¢»Ã¡¢Ìµ¸À¤Î¤Þ¤Þ¡¢¤Ä¤«¤ß¹ç¤Ã¤¿¡£¤·¤« -¤·¾¡Éé¤Ï¡¢¤Ï¤¸¤á¤«¤é¡¢¤ï¤«¤Ã¤Æ¤¤¤ë¡£²¼¿Í¤Ï¤È¤¦¤È¤¦¡¢Ï·Ç̤ÎÏÓ¤ò¤Ä¤«¤ó¤Ç¡¢ÌµÍý¤Ë -¤½¤³¤Ø¤Í¤¸Åݤ·¤¿¡£ÃúÅÙ¡¢·Ü¡Ê¤È¤ê¡Ë¤ÎµÓ¤Î¤è¤¦¤Ê¡¢¹ü¤ÈÈé¤Ð¤«¤ê¤ÎÏӤǤ¢¤ë¡£ -¡¡¡Ö²¿¤ò¤·¤Æ¤¤¤¿¡£¤µ¤¢²¿¤ò¤·¤Æ¤¤¤¿¡£±¾¤¨¡£±¾¤ï¤Ì¤È¡¡¤³¤ì¤À¤¾¤è¡£¡× -¡¡²¼¿Í¤Ï¡¢Ï·Ç̤ò¤Ä¤­Êü¤¹¤È¡¢¤¤¤­¤Ê¤ê¡¢ÂÀÅá¤Î¾ä¤òʧ¤Ã¤Æ¡¢Çò¤¤¹Ý¡Ê¤Ï¤¬¤Í¡Ë¤Î¿§¤ò -¤½¤Î´ã¤ÎÁ°¤Ø¤Ä¤­¤Ä¤±¤¿¡£¤±¤ì¤É¤â¡¢Ï·Ç̤ÏÌۤäƤ¤¤ë¡£Î¾¼ê¤ò¤ï¤Ê¤ï¤Ê¤Õ¤ë¤ï¤»¤Æ¡¢ -¸ª¤Ç©¤òÀÚ¤ê¤Ê¤¬¤é¡¢´ã¤ò¡¢´ãµå¤¬¤Þ¤Ö¤¿¤Î³°¤Ø½Ð¤½¤¦¤Ë¤Ê¤ëÄø¡¢¸«³«¤¤¤Æ¡¢°¢¤Î¤è¤¦ -¤Ë¼¹Ù¹¡Ê¤·¤å¤¦¤Í¡Ë¤¯ÌۤäƤ¤¤ë¡£¤³¤ì¤ò¸«¤ë¤È¡¢²¼¿Í¤Ï»Ï¤á¤ÆÌÀÇò¤Ë¤³¤ÎÏ·Ç̤ÎÀ¸»à -¤¬¡¢Á´Á³¡¢¼«Ê¬¤Î°Õ»Ö¤Ë»ÙÇÛ¤µ¤ì¤Æ¤¤¤ë¤È±¾¤¦»ö¤ò°Õ¼±¤·¤¿¡£¤½¤¦¤·¤Æ¡¢¤³¤Î°Õ¼±¤Ï¡¢ -º£¤Þ¤Ç¤Ï¤²¤·¤¯Ç³¤¨¤Æ¤¤¤¿Áþ°­¤Î¿´¤ò²¿»þ¡Ê¤¤¤Ä¡Ë¤Î´Ö¤Ë¤«Îä¤Þ¤·¤Æ¤·¤Þ¤Ã¤¿¡£¸å¤Ë»Ä¤Ã -¤¿¤Î¤Ï¡¢Í£¡¢°¿»Å»ö¤ò¤·¤Æ¡¢¤½¤ì¤¬±ßËþ¤ËÀ®½¢¤·¤¿»þ¤Î¡¢°Â¤é¤«¤ÊÆÀ°Õ¤ÈËþ­¤È¤¬¤¢¤ë -¤Ð¤«¤ê¤Ç¤¢¤ë¡£¤½¤³¤Ç¡¢²¼¿Í¤Ï¡¢Ï·Ç̤ò¡¢¸«²¼¤²¤Ê¤¬¤é¡¢¾¯¤·À¼¤ò½À¤²¤Æ¤³¤¦±¾¤Ã¤¿¡£ -¡¡¡Ö¸Ê¤Ï¸¡Èó°ã»È¡Ê¤±¤Ó¤¤¤·¡Ë¤ÎÄ£¤ÎÌò¿Í¤Ê¤É¤Ç¤Ï¤Ê¤¤¡£º£¤·Êý¤³¤ÎÌç¤Î²¼¤òÄ̤꤫¤«¤Ã -¤¿Î¹¤Î¼Ô¤À¡£¤À¤«¤é¤ªÁ°¤ËÆì¤ò¤«¤±¤Æ¡¢¤É¤¦¤·¤è¤¦¤È±¾¤¦¤è¤¦¤Ê»ö¤Ï¤Ê¤¤¡£Í£º£»þʬ¡¢ -¤³¤ÎÌç¤Î¾å¤Ç¡¢²¿¤ò¤·¤Æ¤¤¤¿¤Î¤À¤«¡¢¤½¤ì¤ò¸Ê¤ËÏ䵤¨¤¹¤ì¤Ð¤¤¤¤¤Î¤À¡£¡× -¡¡¤¹¤ë¤È¡¢Ï·Ç̤ϡ¢¸«³«¤¤¤¿´ã¤ò¡¢°ìÁØÂ礭¤¯¤·¤Æ¡¢¤¸¤Ã¤È¤½¤Î²¼¿Í¤Î´é¤ò¸«¼é¤Ã¤¿¡£ -¤Þ¤Ö¤¿¤ÎÀÖ¤¯¤Ê¤Ã¤¿¡¢Æù¿©Ä»¤Î¤è¤¦¤Ê¡¢±Ô¤¤´ã¤Ç¸«¤¿¤Î¤Ç¤¢¤ë¡£¤½¤ì¤«¤é¡¢â²¤Ç¡¢ËØ¡¢ -É¡¤È°ì¤Ä¤Ë¤Ê¤Ã¤¿¿°¤ò²¿¤«Êª¤Ç¤â³ú¤ó¤Ç¤¤¤ë¤è¤¦¤ËÆ°¤«¤·¤¿¡£ºÙ¤¤¹¢¤Ç¡¢Àí¤Ã¤¿¹¢Ê©¤Î -Æ°¤¤¤Æ¤¤¤ë¤Î¤¬¸«¤¨¤ë¡£¤½¤Î»þ¡¢¤½¤Î¹¢¤«¤é¡¢òí¡Ê¤«¤é¤¹¡Ë¤ÎÓƤ¯¤è¤¦¤ÊÀ¼¤¬¡¢Óä®Óà -¤®¡¢²¼¿Í¤Î¼ª¤ØÅÁ¤ï¤Ã¤ÆÍ褿¡£ -¡¡¡Ö¤³¤Îȱ¤òÈ´¤¤¤Æ¤Ê¡¢¤³¤Î½÷¤Îȱ¤òÈ´¤¤¤Æ¤Ê¡¢ò£¡Ê¤«¤Ä¤é¡Ë¤Ë¤·¤è¤¦¤È»×¤¦¤¿¤Î -¤¸¤ã¡£¡× -¡¡²¼¿Í¤Ï¡¢Ï·Ç̤ÎÅú¤¬Â¸³°¡¢Ê¿ËޤʤΤ˼ºË¾¤·¤¿¡£¤½¤¦¤·¤Æ¼ºË¾¤¹¤ë¤ÈƱ»þ¤Ë¡¢ËôÁ°¤Î -Áþ°­¤¬¡¢Îä¤ÊÉîÊΤȰ줷¤ç¤Ë¡¢¿´¤ÎÃæ¤Ø¤Ï¤¤¤Ã¤ÆÍ褿¡£¤¹¤ë¤È¡¡¤½¤Îµ¤¿§¡Ê¤±¤·¤­¡Ë¤¬¡¢ -ÀèÊý¤Ø¤âÄ̤¸¤¿¤Î¤Ç¤¢¤í¤¦¡£Ï·Ç̤ϡ¢ÊÒ¼ê¤Ë¡¢¤Þ¤À»Ó³¼¤ÎƬ¤«¤éÃ¥¡Ê¤È¡Ë¤Ã¤¿Ä¹¤¤È´¤± -ÌÓ¤ò»ý¤Ã¤¿¤Ê¤ê¡¢ê±¡Ê¤Ò¤­¡Ë¤Î¤Ä¤Ö¤ä¤¯¤è¤¦¤ÊÀ¼¤Ç¡¢¸ý¤´¤â¤ê¤Ê¤¬¤é¡¢¤³¤ó¤Ê»ö¤ò±¾¤Ã -¤¿¡£ -¡¡À®Äø¡¢»à¿Í¤Îȱ¤ÎÌÓ¤òÈ´¤¯¤È±¾¤¦»ö¤Ï¡¢°­¤¤»ö¤«¤ÍÃΤì¤Ì¡£¤·¤«¤·¡¢¤³¤¦±¾¤¦»à¿Í¤Î -¿¤¯¤Ï¡¢³§¡¡¤½¤Î°Ì¤Ê»ö¤ò¡¢¤µ¤ì¤Æ¤â¤¤¤¤¿Í´Ö¤Ð¤«¤ê¤Ç¤¢¤ë¡£¸½¤Ë¡¢¼«Ê¬¤¬º£¡¢È±¤òÈ´ -¤¤¤¿½÷¤Ê¤É¤Ï¡¢¼Ø¤ò»ÍÀ£¤Ð¤«¤ê¤º¤Ä¤ËÀڤäƴ³¤·¤¿¤Î¤ò¡¢´³µû¡Ê¤Û¤·¤¦¤ª¡Ë¤À¤È±¾¤Ã¤Æ¡¢ -ÂÀÅáÂӡʤ¿¤Á¤Ï¤­¡Ë¤Î¿Ø¤ØÇä¤ê¤Ë¹Ô¤Ã¤¿¡£±Öɤˤ«¤«¤Ã¤Æ»à¤Ê¤Ê¤«¤Ã¤¿¤Ê¤é¡¢º£¤Ç¤âÇä -¤ê¤Ë¹Ô¤Ã¤Æ¤¤¤¿¤«¤â¤·¤ì¤Ê¤¤¡£¤·¤«¤â¡¢¤³¤Î½÷¤ÎÇä¤ë´³µû¤Ï¡¢Ì£¤¬¤è¤¤¤È±¾¤¦¤Î¤Ç¡¢ÂÀ -ÅáÂÓ¤¿¤Á¤¬¡¢·ç¤«¤µ¤ººÚÎÁ¤ËÇã¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¢¤ë¡£¼«Ê¬¤Ï¡¢¤³¤Î½÷¤Î¤·¤¿»ö¤¬°­¤¤¤È¤Ï -»×¤ï¤Ê¤¤¡£¤·¤Ê¤±¤ì¤Ð¡¢ñÀ»à¡Ê¤¨¤¦¤¸¤Ë¡Ë¤ò¤¹¤ë¤Î¤Ç¡¢»ÅÊý¤¬¤Ê¤¯¤·¤¿»ö¤À¤«¤é¤Ç¤¢¤ë¡£ -¤À¤«¤é¡¢Ëôº£¡¢¼«Ê¬¤Î¤·¤Æ¤¤¤¿»ö¤â°­¤¤»ö¤È¤Ï»×¤ï¤Ê¤¤¡£¤³¤ì¤â¤ä¤Ï¤ê¤·¤Ê¤±¤ì¤Ð¡¢ñÀ -»à¤ò¤¹¤ë¤Î¤Ç¡¢»ÅÊý¤¬¤Ê¤¯¤¹¤ë»ö¤À¤«¤é¤Ç¤¢¤ë¡£¤½¤¦¤·¤Æ¡¢¤½¤Î»ÅÊý¤¬¤Ê¤¤»ö¤ò¡¢¤è¤¯ -ÃΤäƤ¤¤¿¤³¤Î½÷¤Ï¡¢¼«Ê¬¤Î¤¹¤ë»ö¤òµö¤·¤Æ¤¯¤ì¤ë¤Î¤Ë¤Á¤¬¤¤¤Ê¤¤¤È»×¤¦¤«¤é¤Ç¤¢ -¤ë¡£¡¼¡¼Ï·Ç̤ϡ¢ÂçÂΤ³¤ó¤Ê°ÕÌ£¤Î»ö¤ò±¾¤Ã¤¿¡£ -¡¡²¼¿Í¤Ï¡¢ÂÀÅá¤ò¾ä¤Ë¤ª¤µ¤á¤Æ¡¢¤½¤ÎÂÀÅá¤ÎÊÁ¤òº¸¤Î¼ê¤Ç¤ª¤µ¤¨¤Ê¤¬¤é¡¢ÎäÁ³¤È¤·¤Æ¡¢ -¤³¤ÎÏäòʹ¤¤¤Æ¤¤¤¿¡£ÌÞÏÀ¡¢¡¡±¦¤Î¼ê¤Ç¤Ï¡¢ÀÖ¤¯ËˤËÇ¿¤ò»ý¤¿Â礭¤ÊÌÌ⮡ʤˤ­¤Ó¡Ë¤ò -µ¤¤Ë¤·¤Ê¤¬¤é¡¢Ê¹¤¤¤Æ¤¤¤ë¤Î¤Ç¤¢¤ë¡£¤·¤«¤·¡¢Ç·¤òʹ¤¤¤Æ¤¤¤ëÃæ¤Ë¡¢²¼¿Í¤Î¿´¤Ë¤Ï¡¢°¿ -ͦµ¤¤¬À¸¤Þ¤ì¤ÆÍ褿¡£¤½¤ì¤Ï¡¡¤µ¤Ã¤­¡¢Ìç¤Î²¼¤Ç¤³¤ÎÃˤ˷礱¤Æ¤¤¤¿Í¦µ¤¤Ç¤¢¤ë¡£¤½¤¦ -¤·¤Æ¡¢Ëô¤µ¤Ã¤­¡¢¤³¤ÎÌç¤Î¾å¤Ø¾å¡Ê¤¢¤¬¡Ë¤Ã¤Æ¡¢¤½¤ÎÏ·Ç̤òÊᤨ¤¿»þ¤Îͦµ¤¤È¤Ï¡¢Á´Á³¡¢ -È¿ÂФÊÊý¸þ¤ËÆ°¤³¤¦¤È¤¹¤ëͦµ¤¤Ç¤¢¤ë¡£²¼¿Í¤Ï¡¢ñÀ»à¤ò¤¹¤ë¤«Åð¿Í¤Ë¤Ê¤ë¤«¤Ë̤ï¤Ê¤«¤Ã -¤¿¤Ð¤«¤ê¤Ç¤Ï¤Ê¤¤¡£¤½¤Î»þ¤Î¤³¤ÎÃˤο´¤â¤Á¤«¤é±¾¤¨¤Ð¡¢ñÀ»à¤Ê¤É¤È±¾¤¦»ö¤Ï¡¢ËØ¡¢¹Í -¤¨¤ë»ö¤µ¤¨½ÐÍè¤Ê¤¤Äø¡¢°Õ¼±¤Î³°¤ËÄɤ¤½Ð¤µ¤ì¤Æ¤¤¤¿¡£ -¡¡¡Ö¤­¤Ã¤È¡¢¤½¤¦¤«¡£¡× -¡¡Ï·Ç̤ÎÏ䬴°¤ë¤È¡¢²¼¿Í¤ÏÓޡʤ¢¤¶¤±¡Ë¤ë¤è¤¦¤ÊÀ¼¤ÇÇ°¤ò²¡¤·¤¿¡£¤½¤¦¤·¤Æ¡¢°ì­Á° -¤Ø½Ð¤ë¤È¡¢É԰դˡ¢±¦¤Î¼ê¤òÌÌ⮤«¤éÎ¥¤·¤Æ¡¢Ï·Ç̤ζ߾å¡Ê¤¨¤ê¤¬¤ß¡Ë¤ò¤Ä¤«¤ß¤Ê¤¬¤é¡¢ -¤³¤¦±¾¤Ã¤¿¡£ -¡¡¡Ö¤Ç¤Ï¡¢¸Ê¤¬°úÇí¡Ê¤Ò¤Ï¤®¡Ë¤ò¤·¤è¤¦¤Èº¨¤à¤Þ¤¤¤Ê¡£¸Ê¤â¤½¤¦¤·¤Ê¤±¤ì¤Ð¡¢ñÀ»à¤ò¤¹ -¤ëÂΤʤΤÀ¡£¡× -¡¡²¼¿Í¤Ï¡¢¤¹¤Ð¤ä¤¯¡¢Ï·Ç̤ÎÃåʪ¤òÇí¤®¤È¤Ã¤¿¡£¤½¤ì¤«¤é¡¢Â­¤Ë¤·¤¬¤ß¤Ä¤³¤¦¤È¤¹¤ëÏ· -Ç̤ò¡¢¼ê¹Ó¤¯»Ó³¼¤Î¾å¤Ø½³Åݤ·¤¿¡£Äô»Ò¤Î¸ý¤Þ¤Ç¤Ï¡¢¶Ï¤Ë¸ÞÊâ¤ò¿ô¤¨¤ë¤Ð¤«¤ê¤Ç¤¢¤ë¡£ -²¼¿Í¤Ï¡¢Çí¤®¤È¤Ã¤¿É°È©¿§¤ÎÃåʪ¤ò¤ï¤­¤Ë¤«¤«¤¨¤Æ¡¢¤Þ¤¿¤¿¤¯´Ö¤ËµÞ¤ÊÄô»Ò¤òÌë¤ÎÄì¤Ø -¤«¤±²¼¤ê¤¿¡£ -¡¡»Ã¡¢»à¤ó¤À¤è¤¦¤ËÅݤì¤Æ¤¤¤¿Ï·Ç̤¬¡¢»Ó³¼¤ÎÃ椫¤é¡¢¤½¤ÎÍç¤ÎÂΤòµ¯¤³¤·¤¿¤Î¤Ï¡¢¤½ -¤ì¤«¤é´Ö¤â¤Ê¤¯¤Î»ö¤Ç¤¢¤ë¡£Ï·Ç̤ϡ¢¤Ä¤Ö¤ä¤¯¤è¤¦¤Ê¡¢¤¦¤á¤¯¤è¤¦¤ÊÀ¼¤òΩ¤Æ¤Ê¤¬¤é¡¢ -¤Þ¤Àdz¤¨¤Æ¤¤¤ë²Ð¤Î¸÷¤ò¤¿¤è¤ê¤Ë¡¢Äô»Ò¤Î¸ý¤Þ¤Ç¡¢Çç¤Ã¤Æ¹Ô¤Ã¤¿¡£¤½¤¦¤·¤Æ¡¢¤½¤³¤«¤é¡¢ -û¤¤Çòȱ¤òÅݡʤµ¤«¤µ¤Þ¡Ë¤Ë¤·¤Æ¡¢Ìç¤Î²¼¤òÇÁ¤­¤³¤ó¤À¡£³°¤Ë¤Ï¡¢Í£¡¢¹õƶ¡¹¡Ê¤³¤¯¤È -¤¦¤È¤¦¡Ë¤¿¤ëÌ뤬¤¢¤ë¤Ð¤«¤ê¤Ç¤¢¤ë¡£ -¡¡²¼¿Í¤Ï¡¢´û¤Ë¡¢±«¤òËÁ¤·¤Æ¡¢µþÅÔ¤ÎÄ®¤Ø¶¯Åð¤òƯ¤­¤ËµÞ¤¤¤Ç¤¤¤¿¡£ diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-iso-2022-jp.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-iso-2022-jp.txt deleted file mode 100644 index 0bc24bc1..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-iso-2022-jp.txt +++ /dev/null @@ -1,178 +0,0 @@ -This file was derived from -http://www.gutenberg.org/cache/epub/1982/pg1982.txt --------- -$BMe@8Lg(B - -$B3)@nN6G72p(B - -$B!!0?F|$NJkJ}$N;v$G$"$k!#0l?M$N2<?M$,!"Me@8Lg$N2<$G1+$d$_$rBT$C$F$$$?!#!!9-$$Lg(B -$B$N2<$K$O!"$3$NCK$N30$KC/$b$$$J$$!#$?$@!"=j!9C0EI$NGm$2$?!"Bg$-$J1_Cl$K!"$-$j$.(B -$B$j$9$,0lI$$H$^$C$F$$$k!#Me@8Lg$,!"<k?}BgO)$K$"$k0J>e$O!"$3$NCK$N30$K$b!"1+$d$_(B -$B$r$9$k;T=w3^$dYf1(K9;R$,!"$b$&Fs;0?M$O$"$j$=$&$J$b$N$G$"$k!#$=$l$,!"$3$NCK$N30(B -$B$KC/$b$$$J$$!#(B -$B!!2?8N$+$H1>$&$H!"$3$NFs;0G/!"5~ET$K$O!"CO?L$H$+DTIw$H$+2P;v$H$+q@q<$H$+1>$&:R(B -$B$$$,$D$E$$$F5/$3$C$?!#$=$3$GMlCf$N$5$S$lJ}$O0lDL$j$G$J$$!#5l5-$K$h$k$H!"J)A|$d(B -$BJ)6q$rBG:U$$$F!"$=$NC0$,$D$$$?$j!"6b6d$NGs!J$O$/!K$,$D$$$?$j$7$?LZ$r!"O)$P$?$K(B -$B$D$_=E$M$F?E$NNA!J$7$m!K$KGd$C$F$$$?$H1>$&$3$H$G$"$k!#MlCf$,$=$N;OKv$G$"$k$+$i!"(B -$BMe@8Lg$N=$M}$J$I$O!"85$h$jC/$b<N$F$F8\$_$k<T$,$J$+$C$?!#$9$k$H$=$N9S$l2L$F$?$N(B -$B$r$h$$;v$K$7$F!"8QC,!J$3$j!K$,@3$`!#Ep?M$,@3$`!#$H$&$H$&$7$^$$$K$O!"0z<h$j<j$N(B -$B$J$$;`?M$r!"$3$NLg$X;}$C$FMh$F!"<N$F$F9T$/$H1>$&=,47$5$(=PMh$?!#$=$3$G!"F|$NL\(B -$B$,8+$($J$/$J$k$H!"C/$G$b5$L#$r0-$,$C$F!"$3$NLg$N6a=j$X$OB-$V$_$r$7$J$$;v$K$J$C(B -$B$F$7$^$C$?$N$G$"$k!#(B -$B!!$=$NBe$jKtrm$,2?=h$+$i$+!"$?$/$5$s=8$^$C$FMh$?!#Ck4V8+$k$H!"$=$Nrm$,2?1)$H$J(B -$B$/NX$rIA$$$F!"9b$$rvHx!J$7$S!K$N$^$o$j$rSF$-$J$,$i!"Ht$S$^$o$C$F$$$k!#<l$KLg$N(B -$B>e$N6u$,!"M<>F$1$G$"$+$/$J$k;~$K$O!"$=$l$,8UKc$r$^$$$?$h$&$K$O$C$-$j8+$($?!#rm(B -$B$O!"L^O@!"Lg$N>e$K$"$k;`?M$NFy$r!"Bo$_$KMh$k$N$G$"$k!#!<!<L`$b:#F|$O!"9o8B$,CY(B -$B$$$;$$$+!"0l1)$b8+$($J$$!#M#!"=j!9!"Jx$l$+$+$C$?!"$=$&$7$F$=$NJx$lL\$KD9$$Ap$N(B -$B$O$($?@PCJ$N>e$K!"rm$NJ5!J$/$=!K$,!"E@!9$HGr$/$3$S$j$D$$$F$$$k$N$,8+$($k!#2<?M(B -$B$O<7CJ$"$k@PCJ$N0lHV>e$NCJ$K@v$$$6$i$7$?:0$N2(!J$"$*!K$N?,$r?x$($F!"1&$NKK$K=P(B -$BMh$?!"Bg$-$JLLb.!J$K$-$S!K$r5$$K$7$J$,$i!"$\$s$d$j!"1+$N$U$k$N$rD/$a$F$$$k$N$G(B -$B$"$k!#(B -$B!!:n<T$O$5$C$-!"!V2<?M$,1+$d$_$rBT$C$F$$$?!W$H=q$$$?!#$7$+$7!"2<?M$O!"1+$,$d$s(B -$B$G$b3JJL$I$&$7$h$&$H1>$&Ev$F$O$J$$!#$U$@$s$J$i!"L^O@!"<g?M$N2H$X5"$k2D$-H&$G$"(B -$B$k!#=j$,$=$N<g?M$+$i$O!";M8^F|A0$K2K$r=P$5$l$?!#A0$K$b=q$$$?$h$&$K!"Ev;~5~ET$N(B -$BD.$O0lDL$j$J$i$:?jHy$7$F$$$?!#:#$3$N2<?M$,!"1JG/!";H$o$l$F$$$?<g?M$+$i2K$r=P$5(B -$B$l$?$N$b!"$3$N?jHy$N>.$5$JM>GH$K30$J$i$J$$!#$@$+$i!"!V2<?M$,1+$d$_$rBT$C$F$$$?!W(B -$B$H1>$&$h$j$b!"!V1+$K$U$j$3$a$i$l$?2<?M$,!"9T$-=j$,$J$/$F!"ESJ}$K$/$l$F$$$?!W$H(B -$B1>$&J}$,!"E,Ev$G$"$k!#$=$N>e!":#F|$N6uLOMM$b>/$J$+$i$:$3$NJ?0BD+$N2<?M$N(B -Sentimentalisme$B$K1F6A$7$?!#?=!J$5$k!K$N9o2<$,$j$+$i$U$j=P$7$?1+$O!"L$$@$K>e(B -$B$,$k$1$7$-$,$J$$!#$=$3$G!"2<?M$O!"2?$rA<$$$F$b:9Ev$?$jL@F|$NJk$7$r$I$&$K$+$7$h(B -$B$&$H$7$F!<!<1>$o$P$I$&$K$b$J$i$J$$;v$r!"$I$&$K$+$7$h$&$H$7$F!"$H$j$H$a$b$J$$9M(B -$B$($r$?$I$j$J$,$i!"$5$C$-$+$i<k?}BgO)$K$U$k1+$N2;$rJ9$/$H$b$J$/J9$$$F$$$?!#(B -$B!!1+$OMe@8Lg$r$D$D$s$G!"1s$/$+$i!"$6$"$C$H1>$&2;$r$"$D$a$F$/$k!#M<0G$O<!Bh$K6u(B -$B$rDc$/$7$F!"8+>e$2$k$H!"Lg$N20:,$,!"<P$a$K$D$-=P$7$?a0!J$$$i$+!K$N@h$K!"=E$?$/(B -$B$&$90E$$1@$r;Y$($F$$$k!#(B -$B!!$I$&$K$b$J$i$J$$;v$r!"$I$&$K$+$9$k0Y$K$O!"<jCJ$rA*$s$G$$$kn#!J$$$H$^!K$O$J$$!#(B -$BA*$s$G$$$l$P!"C[CO!J$D$$$8!K$N2<$+!"F;$P$?$NEZ$N>e$G!"q@;`!J$&$($8$K!K$r$9$k$P(B -$B$+$j$G$"$k!#$=$&$7$F!"$3$NLg$N>e$X;}$C$FMh$F!"8$$N$h$&$K<N$F$i$l$F$7$^$&$P$+$j(B -$B$G$"$k!#A*$P$J$$$H$9$l$P!<!<2<?M$N9M$($O!"2?EY$bF1$8F;$rDcWK$7$?MH6g$K!"$d$C$H(B -$B$3$N6I=j$X0)Ce$7$?!#$7$+$7$3$N!V$9$l$P!W$O!"$$$D$b$G$?$C$F$b!"7k6I!V$9$l$P!W$G(B -$B$"$C$?!#2<?M$O!"<jCJ$rA*$P$J$$$H$$$&;v$r9NDj$7$J$,$i$b!"$3$N!V$9$l$P!W$N$+$?$r(B -$B$D$1$k0Y$K!"EvA3!"$3$N8e$KMh$k2D$-!VEp?M$K$J$k$h$j30$K;EJ}$,$J$$!W$H1>$&;v$r!"(B -$B@Q6KE*$K9NDj$9$k$@$1$N!"M&5$$,=P$:$K$$$?$N$G$"$k!#(B -$B!!2<?M$OBg$-$JSj!J$/$5$a!K$r$7$F!"$=$l$+$i!"Bg57$=$&$KN)>e$,$C$?!#M<Nd$($N$9$k(B -$B5~ET$O!"$b$&2P23$,M_$7$$Dx$N4($5$G$"$k!#Iw$OLg$NCl$HCl$H$N4V$r!"M<0G$H6&$K1sN8(B -$B$J$/!"?a$-$L$1$k!#C0EI$NCl$K$H$^$C$F$$$?$-$j$.$j$9$b!"$b$&$I$3$+$X9T$C$F$7$^$C(B -$B$?!#(B -$B!!2<?M$O!"pt$r$A$B$a$J$,$i!";3?a$N4@jN!J$+$6$_!K$K=E$M$?!":0$N2($N8*$r9b$/$7$F(B -$BLg$N$^$o$j$r8+$^$o$7$?!#1+Iw$N45$N$J$$!"?ML\$K$+$+$kW|$N$J$$!"0lHU3Z$K$M$i$l$=(B -$B$&$J=j$,$"$l$P!"$=$3$G$H$b$+$/$b!"Lk$rL@$+$=$&$H;W$C$?$+$i$G$"$k!#$9$k$H!"9,Lg(B -$B$N>e$NO0$X>e$k!"I}$N9-$$!"G7$bC0$rEI$C$?Dt;R$,4c$K$D$$$?!#>e$J$i!"?M$,$$$?$K$7(B -$B$F$b!"$I$&$;;`?M$P$+$j$G$"$k!#2<?M$O!"$=$3$G9x$K$5$2$?@;JA!J$R$8$j$E$+!K$NB@Ea(B -$B$,>dAv$i$J$$$h$&$K5$$r$D$1$J$,$i!"ONApMz$r$O$$$?B-$r!"$=$NDt;R$N0lHV2<$NCJ$X$U(B -$B$_$+$1$?!#(B -$B!!$=$l$+$i!"2?J,$+$N8e$G$"$k!#Me@8Lg$NO0$N>e$X=P$k!"I}$N9-$$Dt;R$NCfCJ$K!"0l?M(B -$B$NCK$,!"G-$N$h$&$K?H$r$A$B$a$F!"B)$r;&$7$J$,$i!">e$NMF;R$r1.$C$F$$$?!#O0$N>e$+(B -$B$i$5$92P$N8w$,!"$+$9$+$K!"$=$NCK$N1&$NKK$r$L$i$7$F$$$k!#C;$$r$!J$R$2!K$NCf$K!"(B -$B@V$/G?$r;}$C$?LLb.$N$"$kKK$G$"$k!#2<?M$O!";O$a$+$i!"$3$N>e$K$$$k<T$O!";`?M$P$+(B -$B$j$@$H9b$r3g$C$F$$$?!#$=$l$,!"Dt;R$rFs;0CJ>e$C$F8+$k$H!">e$G$OC/$+2P$r$H$\$7$F!"(B -$B$7$+$b$=$N2P$rB6=h:!=h$HF0$+$7$F$$$k$i$7$$!#$3$l$O!"$=$NBy$C$?!"2+$$$m$$8w$,!"(B -$B6y!9$KCXia$NAc$r$+$1$?E70fN"$K!"$f$l$J$,$i1G$C$?$N$G!"$9$0$K$=$l$HCN$l$?$N$G$"(B -$B$k!#$3$N1+$NLk$K!"$3$NMe@8Lg$N>e$G!"2P$r$H$b$7$F$$$k$+$i$O!"$I$&$;M#$N<T$G$O$J(B -$B$$!#(B -$B!!2<?M$O!"5\<i!J$d$b$j!K$N$h$&$KB-2;$r$L$9$s$G!"$d$C$H5^$JDt;R$r!"0lHV>e$NCJ$^(B -$B$GGg$&$h$&$K$7$F>e$j$D$a$?!#$=$&$7$FBN$r=PMh$k$@$1!"J?$K$7$J$,$i!"pt$r=PMh$k$@(B -$B$1!"A0$X=P$7$F!"62$k62$k!"O0$NFb$rGA$$$F8+$?!#(B -$B!!8+$k$H!"O0$NFb$K$O!"1=$KJ9$$$?DL$j!"4v$D$+$N;S3<!J$7$,$$!K$,!"L5B$:n$K4~$F$F(B -$B$"$k$,!"2P$N8w$N5Z$VHO0O$,!";W$C$?$h$j69$$$N$G!"?t$O4v$D$H$b$o$+$i$J$$!#M#!"$*(B -$B$\$m$2$J$,$i!"CN$l$k$N$O!"$=$NCf$KMg$N;S3<$H!"CeJ*$rCe$?;S3<$H$,$"$k$H1>$&;v$G(B -$B$"$k!#L^O@!"Cf$K$O=w$bCK$b$^$8$C$F$$$k$i$7$$!#$=$&$7$F!"$=$N;S3<$O3'!"$=$l$,!"(B -$B>(!J$+$D$F!K!"@8$-$F$$$??M4V$@$H1>$&;v<B$5$(5?$o$l$kDx!"EZ$rYT$M$FB$$C$??M7A$N(B -$B$h$&$K!"8}$r3+$$$?$j!"<j$r1d$P$7$?$j$7$F!"$4$m$4$m>2$N>e$K$3$m$,$C$F$$$?!#$7$+(B -$B$b!"8*$H$+6;$H$+$N9b$/$J$C$F$$$kItJ,$K!"$\$s$d$j$7$?2P$N8w$r$&$1$F!"Dc$/$J$C$F(B -$B$$$kItJ,$N1F$r0lAX0E$/$7$J$,$i!"1J5W$K0"!J$*$7!K$NG!$/L[$C$F$$$?!#(B -$B!!2<?M$O!"$=$l$i$N;S3<$NIe`%$7$?=-5$$K;W$o$:!"I!$r1f$C$?!J$*$*$C$?!K!#$7$+$7!"(B -$B$=$N<j$O!"<!$N=V4V$K$O!"$b$&I!$r1f$&;v$rK:$l$F$$$?!#0?$k6/$$46>p$,KX<=!J$[$H$s(B -$B$I$3$H$4$H$/!K$3$NCK$NSL3P$rC%$C$F$7$^$C$?$+$i$G$"$k!#(B -$B!!2<?M$N4c$O!"$=$N;~!"$O$8$a$F!"B6;S3<$NCf$Km-$C$F$$$k!J$&$:$/$^$C$F$$$k!K?M4V(B -$B$r8+$?!#[XH)?'!J$R$O$@$$$m!K$NCeJ*$rCx$?!"GX$NDc$$!"Ai$;$?!"GrH1F,$N!"1n$N$h$&(B -$B$JO7GL$G$"$k!#$=$NO7GL$O!"1&$N<j$K2P$r$H$b$7$?>>$NLZJR$r;}$C$F!"$=$N;S3<$N0l$D(B -$B$N4i$rGA$-$3$`$h$&$KD/$a$F$$$?!#H1$NLS$ND9$$=j$r8+$k$H!"B?J,=w$N;S3<$G$"$m$&!#(B -$B!!2<?M$O!"O;J,$N62I]$H;MJ,$N9%4q?4$H$KF0$+$5$l$F!";C;~$O8F5[!J$$$-!K$r$9$k$N$5(B -$B$(K:$l$F$$$?!#5l5-$N5-<T$N8l$r<Z$j$l$P!"!VF,?H!J$H$&$7$s!K$NLS$bB@$k!W$h$&$K46(B -$B$8$?$N$G$"$k!#$9$k$H!"O7GL$O!">>$NLZJR$r!">2HD$N4V$KA^$7$F!"$=$l$+$i!":#$^$GD/(B -$B$a$F$$$?;S3<$N<s$KN><j$r$+$1$k$H!"CzEY!"1n$N?F$,1n$N;R$NiM!J$7$i$_!K$r$H$k$h$&(B -$B$K!"$=$ND9$$H1$NLS$r0lK\$:$DH4$-$O$8$a$?!#H1$O<j$K=>$C$FH4$1$k$i$7$$!#(B -$B!!$=$NH1$NLS$,!"0lK\$:$DH4$1$k$N$K=>$C$F2<?M$N?4$+$i$O!"62I]$,>/$7$:$D>C$($F9T$C(B -$B$?!#$=$&$7$F!"$=$l$HF1;~$K!"$=$NO7GL$KBP$9$k$O$2$7$$A~0-$,!">/$7$:$DF0$$$FMh$?!#(B -$B$$$d!"$3$NO7GL$KBP$9$k$H1>$C$F$O!"8lJ@$,$"$k$+$bCN$l$J$$!#G+!J$`$7$m!K!"$"$i$f(B -$B$k0-$KBP$9$kH?46$,!"0lJ,Kh$K6/$5$rA}$7$FMh$?$N$G$"$k!#$3$N;~!"C/$+$,$3$N2<?M$K!"(B -$B$5$C$-Lg$N2<$G$3$NCK$,9M$($F$$$?!"q@;`!J$&$($8$K!K$r$9$k$+Ep?M$K$J$k$+$H1>$&Ld(B -$BBj$r!"2~$a$F;}=P$7$?$i!"62$i$/2<?M$O!"2?$NL$N}$b$J$/!"q@;`$rA*$s$@;v$G$"$m$&!#(B -$B$=$l$[$I!"$3$NCK$N0-$rA~$`?4$O!"O7GL$N>2$KA^$7$?>>$NLZJR$N$h$&$K!"@*$h$/G3$(>e(B -$B$,$j$@$7$F$$$?$N$G$"$k!#(B -$B!!2<?M$K$O!"L^O@!"2?8NO7GL$,;`?M$NH1$NLS$rH4$/$+$o$+$i$J$+$C$?!#=>$C$F!"9gM}E*(B -$B$K$O!"$=$l$rA10-$N2?$l$KJR$E$1$F$h$$$+CN$i$J$+$C$?!#$7$+$72<?M$K$H$C$F$O!"$3$N(B -$B1+$NLk$K!"$3$NMe@8Lg$N>e$G!";`?M$NH1$NLS$rH4$/$H1>$&;v$,!"$=$l$@$1$G4{$K5v$92D(B -$B$i$6$k0-$G$"$C$?!#L^O@!!2<?M$O!!$5$C$-Kx<+J,$,!"Ep?M$K$J$k5$$G$$$?;v$J$>$O!!$H(B -$B$&$KK:$l$F$$$k$N$G$"$k!#(B -$B!!$=$3$G!"2<?M$O!"N>B-$KNO$rF~$l$F!"$$$+$J$j!"Dt;R$+$i>e$XHt$S>e$,$C$?!!$=$&$7(B -$B$F@;JA!J$R$8$j$E$+!K$NB@Ea$K<j$r$+$1$J$,$i!"Bg8T$KO7GL$NA0$XJb$_$h$C$?!#O7GL$,(B -$B6C$$$?$N$O!!1>$&Kx$b$J$$!#(B -$B!!O7GL$O!"0lL\2<?M$r8+$k$H!"$^$k$GW8!J$$$7$f$_!K$K$G$bCF$+$l$?$h$&$K!!Ht$S>e$,$C(B -$B$?!#(B -$B!!!V$*$N$l!"$I$3$X9T$/!#!W(B -$B!!2<?M$O!"O7GL$,;S3<$K$D$^$E$-$J$,$i!"92$F$U$?$a$$$FF($2$h$&$H$9$k9T<j$r:I$$$G!"(B -$B$3$&GM$C$?!#O7GL$O!"$=$l$G$b2<?M$r$D$-$N$1$F9T$3$&$H$9$k!#2<?M$OKt!"$=$l$r9T$+(B -$B$9$^$$$H$7$F!"2!$7$b$I$9!#Fs?M$O;S3<$NCf$G!";C!"L58@$N$^$^!"$D$+$_9g$C$?!#$7$+(B -$B$7>!Ii$O!"$O$8$a$+$i!"$o$+$C$F$$$k!#2<?M$O$H$&$H$&!"O7GL$NOS$r$D$+$s$G!"L5M}$K(B -$B$=$3$X$M$8E]$7$?!#CzEY!"7\!J$H$j!K$N5S$N$h$&$J!"9|$HHi$P$+$j$NOS$G$"$k!#(B -$B!!!V2?$r$7$F$$$?!#$5$"2?$r$7$F$$$?!#1>$(!#1>$o$L$H!!$3$l$@$>$h!#!W(B -$B!!2<?M$O!"O7GL$r$D$-J|$9$H!"$$$-$J$j!"B@Ea$N>d$rJ'$C$F!"Gr$$9]!J$O$,$M!K$N?'$r(B -$B$=$N4c$NA0$X$D$-$D$1$?!#$1$l$I$b!"O7GL$OL[$C$F$$$k!#N><j$r$o$J$o$J$U$k$o$;$F!"(B -$B8*$GB)$r@Z$j$J$,$i!"4c$r!"4c5e$,$^$V$?$N30$X=P$=$&$K$J$kDx!"8+3+$$$F!"0"$N$h$&(B -$B$K<9Y9!J$7$e$&$M!K$/L[$C$F$$$k!#$3$l$r8+$k$H!"2<?M$O;O$a$FL@Gr$K$3$NO7GL$N@8;`(B -$B$,!"A4A3!"<+J,$N0U;V$K;YG[$5$l$F$$$k$H1>$&;v$r0U<1$7$?!#$=$&$7$F!"$3$N0U<1$O!"(B -$B:#$^$G$O$2$7$/G3$($F$$$?A~0-$N?4$r2?;~!J$$$D!K$N4V$K$+Nd$^$7$F$7$^$C$?!#8e$K;D$C(B -$B$?$N$O!"M#!"0?;E;v$r$7$F!"$=$l$,1_K~$K@.="$7$?;~$N!"0B$i$+$JF@0U$HK~B-$H$,$"$k(B -$B$P$+$j$G$"$k!#$=$3$G!"2<?M$O!"O7GL$r!"8+2<$2$J$,$i!">/$7@<$r=@$2$F$3$&1>$C$?!#(B -$B!!!V8J$O8!Hs0c;H!J$1$S$$$7!K$ND#$NLr?M$J$I$G$O$J$$!#:#$7J}$3$NLg$N2<$rDL$j$+$+$C(B -$B$?N9$N<T$@!#$@$+$i$*A0$KFl$r$+$1$F!"$I$&$7$h$&$H1>$&$h$&$J;v$O$J$$!#M#:#;~J,!"(B -$B$3$NLg$N>e$G!"2?$r$7$F$$$?$N$@$+!"$=$l$r8J$KOC$5$($9$l$P$$$$$N$@!#!W(B -$B!!$9$k$H!"O7GL$O!"8+3+$$$?4c$r!"0lAXBg$-$/$7$F!"$8$C$H$=$N2<?M$N4i$r8+<i$C$?!#(B -$B$^$V$?$N@V$/$J$C$?!"Fy?)D;$N$h$&$J!"1T$$4c$G8+$?$N$G$"$k!#$=$l$+$i!"b2$G!"KX!"(B -$BI!$H0l$D$K$J$C$??0$r2?$+J*$G$b3z$s$G$$$k$h$&$KF0$+$7$?!#:Y$$9"$G!"@m$C$?9"J)$N(B -$BF0$$$F$$$k$N$,8+$($k!#$=$N;~!"$=$N9"$+$i!"rm!J$+$i$9!K$NSF$/$h$&$J@<$,!"SC$.SC(B -$B$.!"2<?M$N<*$XEA$o$C$FMh$?!#(B -$B!!!V$3$NH1$rH4$$$F$J!"$3$N=w$NH1$rH4$$$F$J!"r#!J$+$D$i!K$K$7$h$&$H;W$&$?$N(B -$B$8$c!#!W(B -$B!!2<?M$O!"O7GL$NEz$,B830!"J?K^$J$N$K<:K>$7$?!#$=$&$7$F<:K>$9$k$HF1;~$K!"KtA0$N(B -$BA~0-$,!"Nd$JInJN$H0l$7$g$K!"?4$NCf$X$O$$$C$FMh$?!#$9$k$H!!$=$N5$?'!J$1$7$-!K$,!"(B -$B@hJ}$X$bDL$8$?$N$G$"$m$&!#O7GL$O!"JR<j$K!"$^$@;S3<$NF,$+$iC%!J$H!K$C$?D9$$H4$1(B -$BLS$r;}$C$?$J$j!"j1!J$R$-!K$N$D$V$d$/$h$&$J@<$G!"8}$4$b$j$J$,$i!"$3$s$J;v$r1>$C(B -$B$?!#(B -$B!!@.Dx!";`?M$NH1$NLS$rH4$/$H1>$&;v$O!"0-$$;v$+$MCN$l$L!#$7$+$7!"$3$&1>$&;`?M$N(B -$BB?$/$O!"3'!!$=$N0L$J;v$r!"$5$l$F$b$$$$?M4V$P$+$j$G$"$k!#8=$K!"<+J,$,:#!"H1$rH4(B -$B$$$?=w$J$I$O!"<X$r;M@#$P$+$j$:$D$K@Z$C$F43$7$?$N$r!"435{!J$[$7$&$*!K$@$H1>$C$F!"(B -$BB@EaBS!J$?$A$O$-!K$N?X$XGd$j$K9T$C$?!#1VIB$K$+$+$C$F;`$J$J$+$C$?$J$i!":#$G$bGd(B -$B$j$K9T$C$F$$$?$+$b$7$l$J$$!#$7$+$b!"$3$N=w$NGd$k435{$O!"L#$,$h$$$H1>$&$N$G!"B@(B -$BEaBS$?$A$,!"7g$+$5$::ZNA$KGc$C$F$$$?$N$G$"$k!#<+J,$O!"$3$N=w$N$7$?;v$,0-$$$H$O(B -$B;W$o$J$$!#$7$J$1$l$P!"q@;`!J$($&$8$K!K$r$9$k$N$G!";EJ}$,$J$/$7$?;v$@$+$i$G$"$k!#(B -$B$@$+$i!"Kt:#!"<+J,$N$7$F$$$?;v$b0-$$;v$H$O;W$o$J$$!#$3$l$b$d$O$j$7$J$1$l$P!"q@(B -$B;`$r$9$k$N$G!";EJ}$,$J$/$9$k;v$@$+$i$G$"$k!#$=$&$7$F!"$=$N;EJ}$,$J$$;v$r!"$h$/(B -$BCN$C$F$$$?$3$N=w$O!"<+J,$N$9$k;v$r5v$7$F$/$l$k$N$K$A$,$$$J$$$H;W$&$+$i$G$"(B -$B$k!#!<!<O7GL$O!"BgBN$3$s$J0UL#$N;v$r1>$C$?!#(B -$B!!2<?M$O!"B@Ea$r>d$K$*$5$a$F!"$=$NB@Ea$NJA$r:8$N<j$G$*$5$($J$,$i!"NdA3$H$7$F!"(B -$B$3$NOC$rJ9$$$F$$$?!#L^O@!"!!1&$N<j$G$O!"@V$/KK$KG?$r;}$?Bg$-$JLLb.!J$K$-$S!K$r(B -$B5$$K$7$J$,$i!"J9$$$F$$$k$N$G$"$k!#$7$+$7!"G7$rJ9$$$F$$$kCf$K!"2<?M$N?4$K$O!"0?(B -$BM&5$$,@8$^$l$FMh$?!#$=$l$O!!$5$C$-!"Lg$N2<$G$3$NCK$K7g$1$F$$$?M&5$$G$"$k!#$=$&(B -$B$7$F!"Kt$5$C$-!"$3$NLg$N>e$X>e!J$"$,!K$C$F!"$=$NO7GL$rJa$($?;~$NM&5$$H$O!"A4A3!"(B -$BH?BP$JJ}8~$KF0$3$&$H$9$kM&5$$G$"$k!#2<?M$O!"q@;`$r$9$k$+Ep?M$K$J$k$+$KLB$o$J$+$C(B -$B$?$P$+$j$G$O$J$$!#$=$N;~$N$3$NCK$N?4$b$A$+$i1>$($P!"q@;`$J$I$H1>$&;v$O!"KX!"9M(B -$B$($k;v$5$(=PMh$J$$Dx!"0U<1$N30$KDI$$=P$5$l$F$$$?!#(B -$B!!!V$-$C$H!"$=$&$+!#!W(B -$B!!O7GL$NOC$,40$k$H!"2<?M$OS^!J$"$6$1!K$k$h$&$J@<$GG0$r2!$7$?!#$=$&$7$F!"0lB-A0(B -$B$X=P$k$H!"IT0U$K!"1&$N<j$rLLb.$+$iN%$7$F!"O7GL$N6_>e!J$($j$,$_!K$r$D$+$_$J$,$i!"(B -$B$3$&1>$C$?!#(B -$B!!!V$G$O!"8J$,0zGm!J$R$O$.!K$r$7$h$&$H:($`$^$$$J!#8J$b$=$&$7$J$1$l$P!"q@;`$r$9(B -$B$kBN$J$N$@!#!W(B -$B!!2<?M$O!"$9$P$d$/!"O7GL$NCeJ*$rGm$.$H$C$?!#$=$l$+$i!"B-$K$7$,$_$D$3$&$H$9$kO7(B -$BGL$r!"<j9S$/;S3<$N>e$X=3E]$7$?!#Dt;R$N8}$^$G$O!"6O$K8^Jb$r?t$($k$P$+$j$G$"$k!#(B -$B2<?M$O!"Gm$.$H$C$?I0H)?'$NCeJ*$r$o$-$K$+$+$($F!"$^$?$?$/4V$K5^$JDt;R$rLk$NDl$X(B -$B$+$12<$j$?!#(B -$B!!;C!";`$s$@$h$&$KE]$l$F$$$?O7GL$,!";S3<$NCf$+$i!"$=$NMg$NBN$r5/$3$7$?$N$O!"$=(B -$B$l$+$i4V$b$J$/$N;v$G$"$k!#O7GL$O!"$D$V$d$/$h$&$J!"$&$a$/$h$&$J@<$rN)$F$J$,$i!"(B -$B$^$@G3$($F$$$k2P$N8w$r$?$h$j$K!"Dt;R$N8}$^$G!"Gg$C$F9T$C$?!#$=$&$7$F!"$=$3$+$i!"(B -$BC;$$GrH1$rE]!J$5$+$5$^!K$K$7$F!"Lg$N2<$rGA$-$3$s$@!#30$K$O!"M#!"9uF6!9!J$3$/$H(B -$B$&$H$&!K$?$kLk$,$"$k$P$+$j$G$"$k!#(B -$B!!2<?M$O!"4{$K!"1+$rKA$7$F!"5~ET$ND.$X6/Ep$rF/$-$K5^$$$G$$$?!#(B diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-shift-jis.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-shift-jis.txt deleted file mode 100644 index 7a54b957..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-shift-jis.txt +++ /dev/null @@ -1,178 +0,0 @@ -This file was derived from -http://www.gutenberg.org/cache/epub/1982/pg1982.txt --------- -—…¶–å - -ŠHì—´”V‰î - -@ˆ½“ú‚Ì•é•û‚ÌŽ–‚Å‚ ‚éBˆêl‚̉ºl‚ªA—…¶–å‚̉º‚ʼnJ‚â‚Ý‚ð‘Ò‚Á‚Ä‚¢‚½B@L‚¢–å -‚̉º‚É‚ÍA‚±‚Ì’j‚ÌŠO‚É’N‚à‚¢‚È‚¢B‚½‚¾AŠX’O“h‚Ì”‚°‚½A‘å‚«‚ȉ~’Œ‚ÉA‚«‚肬 -‚è‚·‚ªˆê•C‚Æ‚Ü‚Á‚Ä‚¢‚éB—…¶–傪AŽé‘å˜H‚É‚ ‚éˆÈã‚ÍA‚±‚Ì’j‚ÌŠO‚É‚àA‰J‚â‚Ý -‚ð‚·‚éŽs—Š}‚↉G–XŽq‚ªA‚à‚¤“ñŽOl‚Í‚ ‚è‚»‚¤‚È‚à‚Ì‚Å‚ ‚éB‚»‚ꂪA‚±‚Ì’j‚ÌŠO -‚É’N‚à‚¢‚È‚¢B -@‰½ŒÌ‚©‚Ɖ]‚¤‚ÆA‚±‚Ì“ñŽO”NA‹ž“s‚É‚ÍA’nk‚Æ‚©’Ò•—‚Æ‚©‰ÎŽ–‚Æ‚©é_é[‚Æ‚©‰]‚¤Ð -‚¢‚ª‚‚¢‚Ä‹N‚±‚Á‚½B‚»‚±‚Å—Œ’†‚Ì‚³‚Ñ‚ê•û‚͈ê’Ê‚è‚Å‚È‚¢B‹Œ‹L‚É‚æ‚é‚ÆA•§‘œ‚â -•§‹ï‚ð‘ÅÓ‚¢‚ÄA‚»‚Ì’O‚ª‚‚¢‚½‚èA‹à‹â‚Ì”“i‚Í‚­j‚ª‚‚¢‚½‚肵‚½–Ø‚ðA˜H‚΂½‚É -‚‚Ýd‚Ë‚Äd‚Ì—¿i‚µ‚ëj‚É”„‚Á‚Ä‚¢‚½‚Ɖ]‚¤‚±‚Æ‚Å‚ ‚éB—Œ’†‚ª‚»‚ÌŽn––‚Å‚ ‚é‚©‚çA -—…¶–å‚ÌC—‚È‚Ç‚ÍAŒ³‚æ‚è’N‚àŽÌ‚ĂČڂ݂éŽÒ‚ª‚È‚©‚Á‚½B‚·‚é‚Æ‚»‚Ìr‚ê‰Ê‚Ä‚½‚Ì -‚ð‚æ‚¢Ž–‚É‚µ‚ÄAŒÏ’Ki‚±‚èj‚ª±‚ÞB“l‚ª±‚ÞB‚Æ‚¤‚Æ‚¤‚µ‚Ü‚¢‚É‚ÍAˆøŽæ‚èŽè‚Ì -‚È‚¢Ž€l‚ðA‚±‚Ì–å‚ÖŽ‚Á‚Ä—ˆ‚ÄAŽÌ‚Ä‚Äs‚­‚Ɖ]‚¤KŠµ‚³‚¦o—ˆ‚½B‚»‚±‚ÅA“ú‚Ì–Ú -‚ªŒ©‚¦‚È‚­‚È‚é‚ÆA’N‚Å‚à‹C–¡‚ðˆ«‚ª‚Á‚ÄA‚±‚Ì–å‚̋ߊ‚Ö‚Í‘«‚Ô‚Ý‚ð‚µ‚È‚¢Ž–‚É‚È‚Á -‚Ä‚µ‚Ü‚Á‚½‚Ì‚Å‚ ‚éB -@‚»‚Ì‘ã‚è–”é낪‰½ˆ‚©‚ç‚©A‚½‚­‚³‚ñW‚Ü‚Á‚Ä—ˆ‚½B’‹ŠÔŒ©‚é‚ÆA‚»‚Ìé낪‰½‰H‚Æ‚È -‚­—Ö‚ð•`‚¢‚ÄA‚‚¢éô”öi‚µ‚Ñj‚Ì‚Ü‚í‚è‚ðše‚«‚È‚ª‚çA”ò‚Ñ‚Ü‚í‚Á‚Ä‚¢‚éBŽê‚É–å‚Ì -ã‚Ì‹ó‚ªA—[Ä‚¯‚Å‚ ‚©‚­‚Ȃ鎞‚É‚ÍA‚»‚ꂪŒÓ–ƒ‚ð‚Ü‚¢‚½‚悤‚É‚Í‚Á‚«‚茩‚¦‚½Béë -‚ÍA–ܘ_A–å‚Ìã‚É‚ ‚鎀l‚Ì“÷‚ðA‘í‚Ý‚É—ˆ‚é‚Ì‚Å‚ ‚éB[[–Þ‚à¡“ú‚ÍAŒÀ‚ª’x -‚¢‚¹‚¢‚©Aˆê‰H‚àŒ©‚¦‚È‚¢B—BAŠXA•ö‚ê‚©‚©‚Á‚½A‚»‚¤‚µ‚Ä‚»‚Ì•ö‚ê–Ú‚É’·‚¢‘‚Ì -‚Í‚¦‚½Î’i‚Ìã‚ÉAéë‚Ì•³i‚­‚»j‚ªA“_X‚Æ”’‚­‚±‚Ñ‚è‚‚¢‚Ä‚¢‚é‚Ì‚ªŒ©‚¦‚éB‰ºl -‚ÍŽµ’i‚ ‚éÎ’i‚̈ê”Ôã‚Ì’i‚Éô‚¢‚´‚炵‚½®‚̉¦i‚ ‚¨j‚ÌK‚𘂦‚ÄA‰E‚Ì–j‚Éo -—ˆ‚½A‘å‚«‚È–Êá¬i‚É‚«‚Ñj‚ð‹C‚É‚µ‚È‚ª‚çA‚Ú‚ñ‚â‚èA‰J‚Ì‚Ó‚é‚Ì‚ð’­‚ß‚Ä‚¢‚é‚Ì‚Å -‚ ‚éB -@ìŽÒ‚Í‚³‚Á‚«Au‰ºl‚ª‰J‚â‚Ý‚ð‘Ò‚Á‚Ä‚¢‚½v‚Æ‘‚¢‚½B‚µ‚©‚µA‰ºl‚ÍA‰J‚ª‚â‚ñ -‚Å‚àŠi•Ê‚Ç‚¤‚µ‚悤‚Ɖ]‚¤“–‚Ä‚Í‚È‚¢B‚Ó‚¾‚ñ‚È‚çA–ܘ_AŽål‚̉Ƃ֋A‚é‰Â‚«”¤‚Å‚  -‚éBŠ‚ª‚»‚ÌŽål‚©‚ç‚ÍAŽlŒÜ“ú‘O‚ɉɂðo‚³‚ꂽB‘O‚É‚à‘‚¢‚½‚悤‚ÉA“–Žž‹ž“s‚Ì -’¬‚͈ê’Ê‚è‚Ȃ炸Š”÷‚µ‚Ä‚¢‚½B¡‚±‚̉ºl‚ªA‰i”NAŽg‚í‚ê‚Ä‚¢‚½Žål‚©‚ç‰É‚ðo‚³ -‚ꂽ‚Ì‚àA‚±‚ÌŠ”÷‚̬‚³‚È—]”g‚ÉŠO‚È‚ç‚È‚¢B‚¾‚©‚çAu‰ºl‚ª‰J‚â‚Ý‚ð‘Ò‚Á‚Ä‚¢‚½v -‚Ɖ]‚¤‚æ‚è‚àAu‰J‚ɂӂ肱‚ß‚ç‚ꂽ‰ºl‚ªAs‚«Š‚ª‚È‚­‚ÄA“r•û‚É‚­‚ê‚Ä‚¢‚½v‚Æ -‰]‚¤•û‚ªA“K“–‚Å‚ ‚éB‚»‚ÌãA¡“ú‚Ì‹ó–Í—l‚à­‚È‚©‚炸‚±‚Ì•½ˆÀ’©‚̉ºl‚Ì -Sentimentalisme‚ɉe‹¿‚µ‚½B\i‚³‚éj‚̉º‚ª‚è‚©‚ç‚Ó‚èo‚µ‚½‰J‚ÍA–¢‚¾‚Éã -‚ª‚邯‚µ‚«‚ª‚È‚¢B‚»‚±‚ÅA‰ºl‚ÍA‰½‚ð‘[‚¢‚Ä‚à·“–‚½‚è–¾“ú‚̕邵‚ð‚Ç‚¤‚É‚©‚µ‚æ -‚¤‚Æ‚µ‚Ä[[‰]‚í‚΂ǂ¤‚É‚à‚È‚ç‚È‚¢Ž–‚ðA‚Ç‚¤‚É‚©‚µ‚悤‚Æ‚µ‚ÄA‚Æ‚è‚Æ‚ß‚à‚È‚¢l -‚¦‚ð‚½‚Ç‚è‚È‚ª‚çA‚³‚Á‚«‚©‚çŽé‘å˜H‚É‚Ó‚é‰J‚̉¹‚ð•·‚­‚Æ‚à‚È‚­•·‚¢‚Ä‚¢‚½B -@‰J‚Í—…¶–å‚ð‚‚‚ñ‚ÅA‰“‚­‚©‚çA‚´‚ ‚Á‚Ɖ]‚¤‰¹‚ð‚ ‚Â‚ß‚Ä‚­‚éB—[ˆÅ‚ÍŽŸ‘æ‚É‹ó -‚ð’á‚­‚µ‚ÄAŒ©ã‚°‚é‚ÆA–å‚̉®ª‚ªAŽÎ‚߂ɂ‚«o‚µ‚½áOi‚¢‚ç‚©j‚Ìæ‚ÉAd‚½‚­ -‚¤‚·ˆÃ‚¢‰_‚ðŽx‚¦‚Ä‚¢‚éB -@‚Ç‚¤‚É‚à‚È‚ç‚È‚¢Ž–‚ðA‚Ç‚¤‚É‚©‚·‚éˆ×‚É‚ÍAŽè’i‚ð‘I‚ñ‚Å‚¢‚éç¡i‚¢‚Æ‚Üj‚Í‚È‚¢B -‘I‚ñ‚Å‚¢‚ê‚ÎA’z’ni‚‚¢‚¶j‚̉º‚©A“¹‚΂½‚Ì“y‚Ìã‚ÅAé_Ž€i‚¤‚¦‚¶‚Éj‚ð‚·‚é‚Î -‚©‚è‚Å‚ ‚éB‚»‚¤‚µ‚ÄA‚±‚Ì–å‚Ìã‚ÖŽ‚Á‚Ä—ˆ‚ÄAŒ¢‚̂悤‚ÉŽÌ‚Ä‚ç‚ê‚Ä‚µ‚Ü‚¤‚΂©‚è -‚Å‚ ‚éB‘I‚΂Ȃ¢‚Æ‚·‚ê‚Î[[‰ºl‚Ìl‚¦‚ÍA‰½“x‚à“¯‚¶“¹‚ð’áœj‚µ‚½—g‹å‚ÉA‚â‚Á‚Æ -‚±‚Ì‹ÇŠ‚Öˆ§’…‚µ‚½B‚µ‚©‚µ‚±‚Ìu‚·‚ê‚Îv‚ÍA‚¢‚‚à‚Å‚½‚Á‚Ä‚àAŒ‹‹Çu‚·‚ê‚Îv‚Å -‚ ‚Á‚½B‰ºl‚ÍAŽè’i‚ð‘I‚΂Ȃ¢‚Æ‚¢‚¤Ž–‚ðm’肵‚È‚ª‚ç‚àA‚±‚Ìu‚·‚ê‚Îv‚Ì‚©‚½‚ð -‚‚¯‚éˆ×‚ÉA“–‘RA‚±‚ÌŒã‚É—ˆ‚é‰Â‚«u“l‚É‚È‚é‚æ‚èŠO‚ÉŽd•û‚ª‚È‚¢v‚Ɖ]‚¤Ž–‚ðA -Ï‹É“I‚Ém’è‚·‚邾‚¯‚ÌA—E‹C‚ªo‚¸‚É‚¢‚½‚Ì‚Å‚ ‚éB -@‰ºl‚Í‘å‚«‚ÈšŠi‚­‚³‚ßj‚ð‚µ‚ÄA‚»‚ê‚©‚çA‘å‹V‚»‚¤‚É—§ã‚ª‚Á‚½B—[—₦‚Ì‚·‚é -‹ž“s‚ÍA‚à‚¤‰Î‰±‚ª—~‚µ‚¢’ö‚ÌŠ¦‚³‚Å‚ ‚éB•—‚Í–å‚Ì’Œ‚Æ’Œ‚Æ‚ÌŠÔ‚ðA—[ˆÅ‚Æ‹¤‚ɉ“—¶ -‚È‚­A‚«‚Ê‚¯‚éB’O“h‚Ì’Œ‚É‚Æ‚Ü‚Á‚Ä‚¢‚½‚«‚肬‚è‚·‚àA‚à‚¤‚Ç‚±‚©‚Ös‚Á‚Ä‚µ‚Ü‚Á -‚½B -@‰ºl‚ÍAèò‚ð‚¿‚À‚ß‚È‚ª‚çAŽR‚ÌŠ¾åÌi‚©‚´‚Ýj‚Éd‚Ë‚½A®‚̉¦‚ÌŒ¨‚ð‚‚­‚µ‚Ä -–å‚Ì‚Ü‚í‚è‚ðŒ©‚Ü‚í‚µ‚½B‰J•—‚ÌŠ³‚Ì‚È‚¢Al–Ú‚É‚©‚©‚霜‚Ì‚È‚¢Aˆê”ÓŠy‚É‚Ë‚ç‚ê‚» -‚¤‚ÈŠ‚ª‚ ‚ê‚ÎA‚»‚±‚Å‚Æ‚à‚©‚­‚àA–é‚𖾂©‚»‚¤‚ÆŽv‚Á‚½‚©‚ç‚Å‚ ‚éB‚·‚é‚ÆAK–å -‚Ìã‚̘O‚Öã‚éA•‚ÌL‚¢A”V‚à’O‚ð“h‚Á‚½’òŽq‚ªŠá‚ɂ‚¢‚½Bã‚È‚çAl‚ª‚¢‚½‚É‚µ -‚Ä‚àA‚Ç‚¤‚¹Ž€l‚΂©‚è‚Å‚ ‚éB‰ºl‚ÍA‚»‚±‚Ř‚É‚³‚°‚½¹•¿i‚Ђ¶‚è‚©j‚Ì‘¾“ -‚ªâ‘–‚ç‚È‚¢‚悤‚É‹C‚ð‚‚¯‚È‚ª‚çA˜m‘—š‚ð‚Í‚¢‚½‘«‚ðA‚»‚Ì’òŽq‚̈ê”Ô‰º‚Ì’i‚Ö‚Ó -‚Ý‚©‚¯‚½B -@‚»‚ê‚©‚çA‰½•ª‚©‚ÌŒã‚Å‚ ‚éB—…¶–å‚̘O‚Ìã‚Öo‚éA•‚ÌL‚¢’òŽq‚Ì’†’i‚ÉAˆêl -‚Ì’j‚ªA”L‚̂悤‚Ég‚ð‚¿‚À‚ß‚ÄA‘§‚ðŽE‚µ‚È‚ª‚çAã‚Ì—eŽq‚ð‰M‚Á‚Ä‚¢‚½B˜O‚Ìã‚© -‚炳‚·‰Î‚ÌŒõ‚ªA‚©‚·‚©‚ÉA‚»‚Ì’j‚̉E‚Ì–j‚ð‚ʂ炵‚Ä‚¢‚éB’Z‚¢é¢i‚Ђ°j‚Ì’†‚ÉA -Ô‚­”^‚ðŽ‚Á‚½–Êᬂ̂ ‚é–j‚Å‚ ‚éB‰ºl‚ÍAŽn‚ß‚©‚çA‚±‚Ìã‚É‚¢‚éŽÒ‚ÍAŽ€l‚΂© -‚肾‚Æ‚‚ðŠ‡‚Á‚Ä‚¢‚½B‚»‚ꂪA’òŽq‚ð“ñŽO’iã‚Á‚ÄŒ©‚é‚ÆAã‚Å‚Í’N‚©‰Î‚ð‚Æ‚Ú‚µ‚ÄA -‚µ‚©‚à‚»‚̉΂𑴈Ÿˆ‚Æ“®‚©‚µ‚Ä‚¢‚é‚炵‚¢B‚±‚ê‚ÍA‚»‚Ì‘÷‚Á‚½A‰©‚¢‚ë‚¢Œõ‚ªA -‹÷X‚É’wå‚Ì‘ƒ‚ð‚©‚¯‚½“Vˆä— ‚ÉA‚ä‚ê‚È‚ª‚ç‰f‚Á‚½‚Ì‚ÅA‚·‚®‚É‚»‚ê‚Æ’m‚ꂽ‚Ì‚Å‚  -‚éB‚±‚̉J‚Ì–é‚ÉA‚±‚Ì—…¶–å‚Ìã‚ÅA‰Î‚ð‚Æ‚à‚µ‚Ä‚¢‚é‚©‚ç‚ÍA‚Ç‚¤‚¹—B‚ÌŽÒ‚Å‚Í‚È -‚¢B -@‰ºl‚ÍA‹{Žçi‚â‚à‚èj‚̂悤‚É‘«‰¹‚ð‚Ê‚·‚ñ‚ÅA‚â‚Á‚Æ‹}‚È’òŽq‚ðAˆê”Ôã‚Ì’i‚Ü -‚Å”‡‚¤‚悤‚É‚µ‚Äã‚è‚‚߂½B‚»‚¤‚µ‚Ä‘Ì‚ðo—ˆ‚邾‚¯A•½‚É‚µ‚È‚ª‚çAèò‚ðo—ˆ‚邾 -‚¯A‘O‚Öo‚µ‚ÄA‹°‚é‹°‚éA˜O‚Ì“à‚ð”`‚¢‚ÄŒ©‚½B -@Œ©‚é‚ÆA˜O‚Ì“à‚É‚ÍA‰\‚É•·‚¢‚½’Ê‚èAŠô‚‚©‚ÌŽrŠ[i‚µ‚ª‚¢j‚ªA–³‘¢ì‚ÉŠü‚Ä‚Ä -‚ ‚邪A‰Î‚ÌŒõ‚Ì‹y‚Ԕ͈͂ªAŽv‚Á‚½‚æ‚è‹·‚¢‚Ì‚ÅA”‚ÍŠô‚‚Ƃà‚í‚©‚ç‚È‚¢B—BA‚¨ -‚Ú‚ë‚°‚È‚ª‚çA’m‚ê‚é‚Ì‚ÍA‚»‚Ì’†‚É—‡‚ÌŽrŠ[‚ÆA’…•¨‚ð’…‚½ŽrŠ[‚Æ‚ª‚ ‚é‚Ɖ]‚¤Ž–‚Å -‚ ‚éB–ܘ_A’†‚É‚Í—‚à’j‚à‚Ü‚¶‚Á‚Ä‚¢‚é‚炵‚¢B‚»‚¤‚µ‚ÄA‚»‚ÌŽrŠ[‚ÍŠFA‚»‚ꂪA -¦i‚©‚‚ÄjA¶‚«‚Ä‚¢‚½lŠÔ‚¾‚Ɖ]‚¤Ž–ŽÀ‚³‚¦‹^‚í‚ê‚é’öA“y‚ðs‚Ë‚Ä‘¢‚Á‚½lŒ`‚Ì -‚悤‚ÉAŒû‚ðŠJ‚¢‚½‚èAŽè‚ð‰„‚Î‚µ‚½‚肵‚ÄA‚²‚낲‚ë°‚Ìã‚É‚±‚낪‚Á‚Ä‚¢‚½B‚µ‚© -‚àAŒ¨‚Æ‚©‹¹‚Æ‚©‚Ì‚‚­‚È‚Á‚Ä‚¢‚é•”•ª‚ÉA‚Ú‚ñ‚â‚肵‚½‰Î‚ÌŒõ‚ð‚¤‚¯‚ÄA’á‚­‚È‚Á‚Ä -‚¢‚é•”•ª‚̉e‚ðˆê‘wˆÃ‚­‚µ‚È‚ª‚çA‰i‹v‚Ɉ i‚¨‚µj‚Ì”@‚­–Ù‚Á‚Ä‚¢‚½B -@‰ºl‚ÍA‚»‚ê‚ç‚ÌŽrŠ[‚Ì•…ࣂµ‚½L‹C‚ÉŽv‚킸A•@‚ð‰†‚Á‚½i‚¨‚¨‚Á‚½jB‚µ‚©‚µA -‚»‚ÌŽè‚ÍAŽŸ‚ÌuŠÔ‚É‚ÍA‚à‚¤•@‚ð‰†‚¤Ž–‚ð–Y‚ê‚Ä‚¢‚½Bˆ½‚é‹­‚¢Š´î‚ª–wŽ»i‚Ù‚Æ‚ñ -‚Ç‚±‚Æ‚²‚Æ‚­j‚±‚Ì’j‚ÌškŠo‚ð’D‚Á‚Ä‚µ‚Ü‚Á‚½‚©‚ç‚Å‚ ‚éB -@‰ºl‚ÌŠá‚ÍA‚»‚ÌŽžA‚Í‚¶‚ß‚ÄA‘´ŽrŠ[‚Ì’†‚ÉçL‚Á‚Ä‚¢‚éi‚¤‚¸‚­‚Ü‚Á‚Ä‚¢‚éjlŠÔ -‚ðŒ©‚½Bžw”§Fi‚Ђ͂¾‚¢‚ëj‚Ì’…•¨‚𒘂½A”w‚Ì’á‚¢A‘‰‚¹‚½A”’”¯“ª‚ÌA‰Ž‚̂悤 -‚ȘV”k‚Å‚ ‚éB‚»‚̘V”k‚ÍA‰E‚ÌŽè‚ɉ΂ð‚Æ‚à‚µ‚½¼‚̖ؕЂðŽ‚Á‚ÄA‚»‚ÌŽrŠ[‚̈ê‚ -‚ÌŠç‚ð”`‚«‚±‚ނ悤‚É’­‚ß‚Ä‚¢‚½B”¯‚Ì–Ñ‚Ì’·‚¢Š‚ðŒ©‚é‚ÆA‘½•ª—‚ÌŽrŠ[‚Å‚ ‚낤B -@‰ºl‚ÍA˜Z•ª‚Ì‹°•|‚ÆŽl•ª‚ÌDŠïS‚Æ‚É“®‚©‚³‚ê‚ÄAŽbŽž‚͌ċzi‚¢‚«j‚ð‚·‚é‚Ì‚³ -‚¦–Y‚ê‚Ä‚¢‚½B‹Œ‹L‚Ì‹LŽÒ‚ÌŒê‚ðŽØ‚è‚ê‚ÎAu“ªgi‚Æ‚¤‚µ‚ñj‚Ì–Ñ‚à‘¾‚év‚悤‚ÉŠ´ -‚¶‚½‚Ì‚Å‚ ‚éB‚·‚é‚ÆA˜V”k‚ÍA¼‚̖ؕЂðA°”‚̊Ԃɑ}‚µ‚ÄA‚»‚ê‚©‚çA¡‚Ü‚Å’­ -‚ß‚Ä‚¢‚½ŽrŠ[‚ÌŽñ‚É—¼Žè‚ð‚©‚¯‚é‚ÆA’š“xA‰Ž‚Ìe‚ª‰Ž‚ÌŽq‚Ìåli‚µ‚ç‚Ýj‚ð‚Æ‚é‚悤 -‚ÉA‚»‚Ì’·‚¢”¯‚Ì–Ñ‚ðˆê–{‚¸‚”²‚«‚Í‚¶‚ß‚½B”¯‚ÍŽè‚É]‚Á‚Ä”²‚¯‚é‚炵‚¢B -@‚»‚Ì”¯‚Ì–Ñ‚ªAˆê–{‚¸‚”²‚¯‚é‚Ì‚É]‚Á‚ĉºl‚ÌS‚©‚ç‚ÍA‹°•|‚ª­‚µ‚¸‚ÂÁ‚¦‚Äs‚Á -‚½B‚»‚¤‚µ‚ÄA‚»‚ê‚Æ“¯Žž‚ÉA‚»‚̘V”k‚ɑ΂·‚é‚Í‚°‚µ‚¢‘žˆ«‚ªA­‚µ‚¸‚“®‚¢‚Ä—ˆ‚½B -‚¢‚âA‚±‚̘V”k‚ɑ΂·‚é‚Ɖ]‚Á‚Ä‚ÍAŒê•¾‚ª‚ ‚é‚©‚à’m‚ê‚È‚¢B”Ji‚Þ‚µ‚ëjA‚ ‚ç‚ä -‚鈫‚ɑ΂·‚锽Š´‚ªAˆê•ª–ˆ‚É‹­‚³‚ð‘‚µ‚Ä—ˆ‚½‚Ì‚Å‚ ‚éB‚±‚ÌŽžA’N‚©‚ª‚±‚̉ºl‚ÉA -‚³‚Á‚«–å‚̉º‚Å‚±‚Ì’j‚ªl‚¦‚Ä‚¢‚½Aé_Ž€i‚¤‚¦‚¶‚Éj‚ð‚·‚é‚©“l‚É‚È‚é‚©‚Ɖ]‚¤–â -‘è‚ðA‰ü‚ß‚ÄŽo‚µ‚½‚çA‹°‚ç‚­‰ºl‚ÍA‰½‚Ì–¢—û‚à‚È‚­Aé_Ž€‚ð‘I‚ñ‚¾Ž–‚Å‚ ‚낤B -‚»‚ê‚Ù‚ÇA‚±‚Ì’j‚̈«‚ð‘ž‚ÞS‚ÍA˜V”k‚Ì°‚É‘}‚µ‚½¼‚̖ؕЂ̂悤‚ÉA¨‚æ‚­”R‚¦ã -‚ª‚肾‚µ‚Ä‚¢‚½‚Ì‚Å‚ ‚éB -@‰ºl‚É‚ÍA–ܘ_A‰½ŒÌ˜V”k‚ªŽ€l‚Ì”¯‚̖т𔲂­‚©‚í‚©‚ç‚È‚©‚Á‚½B]‚Á‚ÄA‡—“I -‚É‚ÍA‚»‚ê‚ð‘Pˆ«‚̉½‚ê‚ɕЂÂ¯‚Ä‚æ‚¢‚©’m‚ç‚È‚©‚Á‚½B‚µ‚©‚µ‰ºl‚É‚Æ‚Á‚Ä‚ÍA‚±‚Ì -‰J‚Ì–é‚ÉA‚±‚Ì—…¶–å‚Ìã‚ÅAŽ€l‚Ì”¯‚̖т𔲂­‚Ɖ]‚¤Ž–‚ªA‚»‚ꂾ‚¯‚ÅŠù‚É‹–‚·‰Â -‚ç‚´‚鈫‚Å‚ ‚Á‚½B–ܘ_@‰ºl‚Í@‚³‚Á‚«–˜Ž©•ª‚ªA“l‚É‚È‚é‹C‚Å‚¢‚½Ž–‚È‚¼‚Í@‚Æ -‚¤‚É–Y‚ê‚Ä‚¢‚é‚Ì‚Å‚ ‚éB -@‚»‚±‚ÅA‰ºl‚ÍA—¼‘«‚É—Í‚ð“ü‚ê‚ÄA‚¢‚©‚È‚èA’òŽq‚©‚çã‚Ö”ò‚Ñオ‚Á‚½@‚»‚¤‚µ -‚Ĺ•¿i‚Ђ¶‚è‚©j‚Ì‘¾“‚ÉŽè‚ð‚©‚¯‚È‚ª‚çA‘åŒÒ‚ɘV”k‚Ì‘O‚Ö•à‚Ý‚æ‚Á‚½B˜V”k‚ª -‹Á‚¢‚½‚Ì‚Í@‰]‚¤–˜‚à‚È‚¢B -@˜V”k‚ÍAˆê–Ú‰ºl‚ðŒ©‚é‚ÆA‚Ü‚é‚ÅœWi‚¢‚µ‚ä‚Ýj‚É‚Å‚à’e‚©‚ꂽ‚悤‚É@”ò‚Ñオ‚Á -‚½B -@u‚¨‚Ì‚êA‚Ç‚±‚Ös‚­Bv -@‰ºl‚ÍA˜V”k‚ªŽrŠ[‚ɂ‚܂«‚È‚ª‚çAQ‚Ä‚Ó‚½‚ß‚¢‚Ä“¦‚°‚悤‚Æ‚·‚ésŽè‚ðÇ‚¢‚ÅA -‚±‚¤”l‚Á‚½B˜V”k‚ÍA‚»‚ê‚Å‚à‰ºl‚ð‚‚«‚Ì‚¯‚Äs‚±‚¤‚Æ‚·‚éB‰ºl‚Í–”A‚»‚ê‚ðs‚© -‚·‚Ü‚¢‚Æ‚µ‚ÄA‰Ÿ‚µ‚à‚Ç‚·B“ñl‚ÍŽrŠ[‚Ì’†‚ÅAŽbA–³Œ¾‚Ì‚Ü‚ÜA‚‚©‚݇‚Á‚½B‚µ‚© -‚µŸ•‰‚ÍA‚Í‚¶‚ß‚©‚çA‚í‚©‚Á‚Ä‚¢‚éB‰ºl‚Í‚Æ‚¤‚Æ‚¤A˜V”k‚̘r‚ð‚‚©‚ñ‚ÅA–³—‚É -‚»‚±‚Ö‚Ë‚¶“|‚µ‚½B’š“xAŒ{i‚Æ‚èj‚Ì‹r‚̂悤‚ÈAœ‚Æ”ç‚΂©‚è‚̘r‚Å‚ ‚éB -@u‰½‚ð‚µ‚Ä‚¢‚½B‚³‚ ‰½‚ð‚µ‚Ä‚¢‚½B‰]‚¦B‰]‚í‚Ê‚Æ@‚±‚ꂾ‚¼‚æBv -@‰ºl‚ÍA˜V”k‚ð‚‚«•ú‚·‚ÆA‚¢‚«‚È‚èA‘¾“‚Ìâ‚𕥂Á‚ÄA”’‚¢|i‚Í‚ª‚Ëj‚ÌF‚ð -‚»‚ÌŠá‚Ì‘O‚ւ‚«‚‚¯‚½B‚¯‚ê‚Ç‚àA˜V”k‚Í–Ù‚Á‚Ä‚¢‚éB—¼Žè‚ð‚í‚È‚í‚È‚Ó‚é‚킹‚ÄA -Œ¨‚Å‘§‚ðØ‚è‚È‚ª‚çAŠá‚ðAŠá‹…‚ª‚Ü‚Ô‚½‚ÌŠO‚Öo‚»‚¤‚É‚È‚é’öAŒ©ŠJ‚¢‚ÄAˆ ‚̂悤 -‚ÉŽ·Xi‚µ‚イ‚Ëj‚­–Ù‚Á‚Ä‚¢‚éB‚±‚ê‚ðŒ©‚é‚ÆA‰ºl‚ÍŽn‚ß‚Ä–¾”’‚É‚±‚̘V”k‚̶Ž€ -‚ªA‘S‘RAŽ©•ª‚̈ӎu‚ÉŽx”z‚³‚ê‚Ä‚¢‚é‚Ɖ]‚¤Ž–‚ðˆÓŽ¯‚µ‚½B‚»‚¤‚µ‚ÄA‚±‚̈ӎ¯‚ÍA -¡‚Ü‚Å‚Í‚°‚µ‚­”R‚¦‚Ä‚¢‚½‘žˆ«‚ÌS‚ð‰½Žži‚¢‚Âj‚ÌŠÔ‚É‚©—â‚Ü‚µ‚Ä‚µ‚Ü‚Á‚½BŒã‚ÉŽc‚Á -‚½‚Ì‚ÍA—BAˆ½ŽdŽ–‚ð‚µ‚ÄA‚»‚ꂪ‰~–ž‚ɬA‚µ‚½Žž‚ÌAˆÀ‚ç‚©‚È“¾ˆÓ‚Æ–ž‘«‚Æ‚ª‚ ‚é -‚΂©‚è‚Å‚ ‚éB‚»‚±‚ÅA‰ºl‚ÍA˜V”k‚ðAŒ©‰º‚°‚È‚ª‚çA­‚µº‚ð_‚°‚Ä‚±‚¤‰]‚Á‚½B -@uŒÈ‚ÍŒŸ”ñˆáŽgi‚¯‚Ñ‚¢‚µj‚Ì’¡‚Ì–ðl‚È‚Ç‚Å‚Í‚È‚¢B¡‚µ•û‚±‚Ì–å‚̉º‚ð’Ê‚è‚©‚©‚Á -‚½—·‚ÌŽÒ‚¾B‚¾‚©‚炨‘O‚É“ê‚ð‚©‚¯‚ÄA‚Ç‚¤‚µ‚悤‚Ɖ]‚¤‚悤‚ÈŽ–‚Í‚È‚¢B—B¡Žž•ªA -‚±‚Ì–å‚Ìã‚ÅA‰½‚ð‚µ‚Ä‚¢‚½‚Ì‚¾‚©A‚»‚ê‚ðŒÈ‚ɘb‚³‚¦‚·‚ê‚΂¢‚¢‚Ì‚¾Bv -@‚·‚é‚ÆA˜V”k‚ÍAŒ©ŠJ‚¢‚½Šá‚ðAˆê‘w‘å‚«‚­‚µ‚ÄA‚¶‚Á‚Æ‚»‚̉ºl‚ÌŠç‚ðŒ©Žç‚Á‚½B -‚Ü‚Ô‚½‚ÌÔ‚­‚È‚Á‚½A“÷H’¹‚̂悤‚ÈA‰s‚¢Šá‚ÅŒ©‚½‚Ì‚Å‚ ‚éB‚»‚ê‚©‚çAá°‚ÅA–wA -•@‚ƈê‚‚ɂȂÁ‚½O‚ð‰½‚©•¨‚Å‚àŠš‚ñ‚Å‚¢‚é‚悤‚É“®‚©‚µ‚½Bׂ¢A‚ÅAë‚Á‚½A•§‚Ì -“®‚¢‚Ä‚¢‚é‚Ì‚ªŒ©‚¦‚éB‚»‚ÌŽžA‚»‚ÌA‚©‚çAéëi‚©‚ç‚·j‚Ìše‚­‚悤‚Ⱥ‚ªAšb‚¬šb -‚¬A‰ºl‚ÌŽ¨‚Ö“`‚í‚Á‚Ä—ˆ‚½B -@u‚±‚Ì”¯‚𔲂¢‚Ä‚ÈA‚±‚Ì—‚Ì”¯‚𔲂¢‚Ä‚ÈAé¡i‚©‚‚çj‚É‚µ‚悤‚ÆŽv‚¤‚½‚Ì -‚¶‚áBv -@‰ºl‚ÍA˜V”k‚Ì“š‚ª‘¶ŠOA•½–}‚È‚Ì‚ÉŽ¸–]‚µ‚½B‚»‚¤‚µ‚ÄŽ¸–]‚·‚é‚Æ“¯Žž‚ÉA–”‘O‚Ì -‘žˆ«‚ªA—â‚È•Ž•Ì‚ƈꂵ‚å‚ÉAS‚Ì’†‚Ö‚Í‚¢‚Á‚Ä—ˆ‚½B‚·‚é‚Æ@‚»‚Ì‹CFi‚¯‚µ‚«j‚ªA -æ•û‚Ö‚à’Ê‚¶‚½‚Ì‚Å‚ ‚낤B˜V”k‚ÍA•ÐŽè‚ÉA‚Ü‚¾ŽrŠ[‚Ì“ª‚©‚ç’Di‚Æj‚Á‚½’·‚¢”²‚¯ -–Ñ‚ðŽ‚Á‚½‚È‚èAå¯i‚Ђ«j‚̂‚Ԃ₭‚悤‚Ⱥ‚ÅAŒû‚²‚à‚è‚È‚ª‚çA‚±‚ñ‚ÈŽ–‚ð‰]‚Á -‚½B -@¬’öAŽ€l‚Ì”¯‚̖т𔲂­‚Ɖ]‚¤Ž–‚ÍAˆ«‚¢Ž–‚©‚Ë’m‚ê‚ÊB‚µ‚©‚µA‚±‚¤‰]‚¤Ž€l‚Ì -‘½‚­‚ÍAŠF@‚»‚̈ʂȎ–‚ðA‚³‚ê‚Ä‚à‚¢‚¢lŠÔ‚΂©‚è‚Å‚ ‚éBŒ»‚ÉAŽ©•ª‚ª¡A”¯‚𔲠-‚¢‚½—‚È‚Ç‚ÍAŽÖ‚ðŽl¡‚΂©‚肸‚‚ÉØ‚Á‚ÄŠ±‚µ‚½‚Ì‚ðAŠ±‹›i‚Ù‚µ‚¤‚¨j‚¾‚Ɖ]‚Á‚ÄA -‘¾“‘Ñi‚½‚¿‚Í‚«j‚Ìw‚Ö”„‚è‚És‚Á‚½B‰u•a‚É‚©‚©‚Á‚ÄŽ€‚È‚È‚©‚Á‚½‚È‚çA¡‚Å‚à”„ -‚è‚És‚Á‚Ä‚¢‚½‚©‚à‚µ‚ê‚È‚¢B‚µ‚©‚àA‚±‚Ì—‚Ì”„‚銱‹›‚ÍA–¡‚ª‚æ‚¢‚Ɖ]‚¤‚Ì‚ÅA‘¾ -“‘Ñ‚½‚¿‚ªAŒ‡‚©‚³‚¸Ø—¿‚É”ƒ‚Á‚Ä‚¢‚½‚Ì‚Å‚ ‚éBŽ©•ª‚ÍA‚±‚Ì—‚Ì‚µ‚½Ž–‚ªˆ«‚¢‚Æ‚Í -Žv‚í‚È‚¢B‚µ‚È‚¯‚ê‚ÎAé_Ž€i‚¦‚¤‚¶‚Éj‚ð‚·‚é‚Ì‚ÅAŽd•û‚ª‚È‚­‚µ‚½Ž–‚¾‚©‚ç‚Å‚ ‚éB -‚¾‚©‚çA–”¡AŽ©•ª‚Ì‚µ‚Ä‚¢‚½Ž–‚àˆ«‚¢Ž–‚Æ‚ÍŽv‚í‚È‚¢B‚±‚ê‚à‚â‚͂肵‚È‚¯‚ê‚ÎAé_ -Ž€‚ð‚·‚é‚Ì‚ÅAŽd•û‚ª‚È‚­‚·‚鎖‚¾‚©‚ç‚Å‚ ‚éB‚»‚¤‚µ‚ÄA‚»‚ÌŽd•û‚ª‚È‚¢Ž–‚ðA‚æ‚­ -’m‚Á‚Ä‚¢‚½‚±‚Ì—‚ÍAŽ©•ª‚Ì‚·‚鎖‚ð‹–‚µ‚Ä‚­‚ê‚é‚Ì‚É‚¿‚ª‚¢‚È‚¢‚ÆŽv‚¤‚©‚ç‚Å‚  -‚éB[[˜V”k‚ÍA‘å‘Ì‚±‚ñ‚ȈӖ¡‚ÌŽ–‚ð‰]‚Á‚½B -@‰ºl‚ÍA‘¾“‚ðâ‚É‚¨‚³‚ß‚ÄA‚»‚Ì‘¾“‚Ì•¿‚ð¶‚ÌŽè‚Å‚¨‚³‚¦‚È‚ª‚çA—â‘R‚Æ‚µ‚ÄA -‚±‚̘b‚ð•·‚¢‚Ä‚¢‚½B–ܘ_A@‰E‚ÌŽè‚Å‚ÍAÔ‚­–j‚É”^‚ðŽ‚½‘å‚«‚È–Êá¬i‚É‚«‚Ñj‚ð -‹C‚É‚µ‚È‚ª‚çA•·‚¢‚Ä‚¢‚é‚Ì‚Å‚ ‚éB‚µ‚©‚µA”V‚ð•·‚¢‚Ä‚¢‚é’†‚ÉA‰ºl‚ÌS‚É‚ÍAˆ½ -—E‹C‚ª¶‚Ü‚ê‚Ä—ˆ‚½B‚»‚ê‚Í@‚³‚Á‚«A–å‚̉º‚Å‚±‚Ì’j‚ÉŒ‡‚¯‚Ä‚¢‚½—E‹C‚Å‚ ‚éB‚»‚¤ -‚µ‚ÄA–”‚³‚Á‚«A‚±‚Ì–å‚Ìã‚Öãi‚ ‚ªj‚Á‚ÄA‚»‚̘V”k‚ð•ß‚¦‚½Žž‚Ì—E‹C‚Æ‚ÍA‘S‘RA -”½‘΂ȕûŒü‚É“®‚±‚¤‚Æ‚·‚é—E‹C‚Å‚ ‚éB‰ºl‚ÍAé_Ž€‚ð‚·‚é‚©“l‚É‚È‚é‚©‚É–À‚í‚È‚©‚Á -‚½‚΂©‚è‚Å‚Í‚È‚¢B‚»‚ÌŽž‚Ì‚±‚Ì’j‚ÌS‚à‚¿‚©‚ç‰]‚¦‚ÎAé_Ž€‚ȂǂƉ]‚¤Ž–‚ÍA–wAl -‚¦‚鎖‚³‚¦o—ˆ‚È‚¢’öAˆÓŽ¯‚ÌŠO‚É’Ç‚¢o‚³‚ê‚Ä‚¢‚½B -@u‚«‚Á‚ÆA‚»‚¤‚©Bv -@˜V”k‚̘b‚ªŠ®‚é‚ÆA‰ºl‚Íš}i‚ ‚´‚¯j‚é‚悤‚Ⱥ‚Å”O‚ð‰Ÿ‚µ‚½B‚»‚¤‚µ‚ÄAˆê‘«‘O -‚Öo‚é‚ÆA•sˆÓ‚ÉA‰E‚ÌŽè‚ð–Êᬂ©‚ç—£‚µ‚ÄA˜V”k‚Ì‹Ýãi‚¦‚肪‚Ýj‚ð‚‚©‚Ý‚È‚ª‚çA -‚±‚¤‰]‚Á‚½B -@u‚Å‚ÍAŒÈ‚ªˆø”i‚Ђ͂¬j‚ð‚µ‚æ‚¤‚Ʀ‚Þ‚Ü‚¢‚ÈBŒÈ‚à‚»‚¤‚µ‚È‚¯‚ê‚ÎAé_Ž€‚ð‚· -‚é‘Ì‚È‚Ì‚¾Bv -@‰ºl‚ÍA‚·‚΂₭A˜V”k‚Ì’…•¨‚𔂬‚Æ‚Á‚½B‚»‚ê‚©‚çA‘«‚É‚µ‚ª‚݂‚±‚¤‚Æ‚·‚é˜V -”k‚ðAŽèr‚­ŽrŠ[‚Ìã‚ÖR“|‚µ‚½B’òŽq‚ÌŒû‚Ü‚Å‚ÍA‹Í‚Ɍܕà‚𔂦‚é‚΂©‚è‚Å‚ ‚éB -‰ºl‚ÍA”‚¬‚Æ‚Á‚½•O”§F‚Ì’…•¨‚ð‚í‚«‚É‚©‚©‚¦‚ÄA‚Ü‚½‚½‚­ŠÔ‚É‹}‚È’òŽq‚ð–é‚Ì’ê‚Ö -‚©‚¯‰º‚肽B -@ŽbAŽ€‚ñ‚¾‚悤‚É“|‚ê‚Ä‚¢‚½˜V”k‚ªAŽrŠ[‚Ì’†‚©‚çA‚»‚Ì—‡‚Ì‘Ì‚ð‹N‚±‚µ‚½‚Ì‚ÍA‚» -‚ê‚©‚çŠÔ‚à‚È‚­‚ÌŽ–‚Å‚ ‚éB˜V”k‚ÍA‚‚Ԃ₭‚悤‚ÈA‚¤‚ß‚­‚悤‚Ⱥ‚𗧂ĂȂª‚çA -‚Ü‚¾”R‚¦‚Ä‚¢‚é‰Î‚ÌŒõ‚ð‚½‚æ‚è‚ÉA’òŽq‚ÌŒû‚Ü‚ÅA”‡‚Á‚Äs‚Á‚½B‚»‚¤‚µ‚ÄA‚»‚±‚©‚çA -’Z‚¢”’”¯‚ð“|i‚³‚©‚³‚Üj‚É‚µ‚ÄA–å‚̉º‚ð”`‚«‚±‚ñ‚¾BŠO‚É‚ÍA—BA•“´Xi‚±‚­‚Æ -‚¤‚Æ‚¤j‚½‚é–邪‚ ‚é‚΂©‚è‚Å‚ ‚éB -@‰ºl‚ÍAŠù‚ÉA‰J‚ð–`‚µ‚ÄA‹ž“s‚Ì’¬‚Ö‹­“‚ð“­‚«‚É‹}‚¢‚Å‚¢‚½B diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-utf-8.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-utf-8.txt deleted file mode 100644 index a8903283..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/rashomon-utf-8.txt +++ /dev/null @@ -1,178 +0,0 @@ -This file was derived from -http://www.gutenberg.org/cache/epub/1982/pg1982.txt --------- -羅生門 - -芥å·é¾ä¹‹ä»‹ - - 或日ã®æš®æ–¹ã®äº‹ã§ã‚る。一人ã®ä¸‹äººãŒã€ç¾…生門ã®ä¸‹ã§é›¨ã‚„ã¿ã‚’å¾…ã£ã¦ã„ãŸã€‚ 広ã„é–€ -ã®ä¸‹ã«ã¯ã€ã“ã®ç”·ã®å¤–ã«èª°ã‚‚ã„ãªã„。ãŸã ã€æ‰€ã€…丹塗ã®å‰¥ã’ãŸã€å¤§ããªå††æŸ±ã«ã€ãり㎠-ã‚Šã™ãŒä¸€åŒ¹ã¨ã¾ã£ã¦ã„る。羅生門ãŒã€æœ±é›€å¤§è·¯ã«ã‚る以上ã¯ã€ã“ã®ç”·ã®å¤–ã«ã‚‚ã€é›¨ã‚„ã¿ -ã‚’ã™ã‚‹å¸‚女笠やæ‰çƒå¸½å­ãŒã€ã‚‚ã†äºŒä¸‰äººã¯ã‚ã‚Šãã†ãªã‚‚ã®ã§ã‚る。ãã‚ŒãŒã€ã“ã®ç”·ã®å¤– -ã«èª°ã‚‚ã„ãªã„。 - 何故ã‹ã¨äº‘ã†ã¨ã€ã“ã®äºŒä¸‰å¹´ã€äº¬éƒ½ã«ã¯ã€åœ°éœ‡ã¨ã‹è¾»é¢¨ã¨ã‹ç«äº‹ã¨ã‹é¥‘饉ã¨ã‹äº‘ã†ç½ -ã„ãŒã¤ã¥ã„ã¦èµ·ã“ã£ãŸã€‚ãã“ã§æ´›ä¸­ã®ã•ã³ã‚Œæ–¹ã¯ä¸€é€šã‚Šã§ãªã„。旧記ã«ã‚ˆã‚‹ã¨ã€ä»åƒã‚„ -ä»å…·ã‚’打砕ã„ã¦ã€ãã®ä¸¹ãŒã¤ã„ãŸã‚Šã€é‡‘銀ã®ç®”(ã¯ã)ãŒã¤ã„ãŸã‚Šã—ãŸæœ¨ã‚’ã€è·¯ã°ãŸã« -ã¤ã¿é‡ã­ã¦è–ªã®æ–™ï¼ˆã—ã‚)ã«å£²ã£ã¦ã„ãŸã¨äº‘ã†ã“ã¨ã§ã‚る。洛中ãŒãã®å§‹æœ«ã§ã‚ã‚‹ã‹ã‚‰ã€ -羅生門ã®ä¿®ç†ãªã©ã¯ã€å…ƒã‚ˆã‚Šèª°ã‚‚æ¨ã¦ã¦é¡§ã¿ã‚‹è€…ãŒãªã‹ã£ãŸã€‚ã™ã‚‹ã¨ãã®è’れ果ã¦ãŸã® -をよã„事ã«ã—ã¦ã€ç‹ç‹¸ï¼ˆã“り)ãŒæ£²ã‚€ã€‚盗人ãŒæ£²ã‚€ã€‚ã¨ã†ã¨ã†ã—ã¾ã„ã«ã¯ã€å¼•å–り手㮠-ãªã„死人をã€ã“ã®é–€ã¸æŒã£ã¦æ¥ã¦ã€æ¨ã¦ã¦è¡Œãã¨äº‘ã†ç¿’æ…£ã•ãˆå‡ºæ¥ãŸã€‚ãã“ã§ã€æ—¥ã®ç›® -ãŒè¦‹ãˆãªããªã‚‹ã¨ã€èª°ã§ã‚‚気味を悪ãŒã£ã¦ã€ã“ã®é–€ã®è¿‘所ã¸ã¯è¶³ã¶ã¿ã‚’ã—ãªã„事ã«ãªã£ -ã¦ã—ã¾ã£ãŸã®ã§ã‚る。 - ãã®ä»£ã‚Šåˆé´‰ãŒä½•å‡¦ã‹ã‚‰ã‹ã€ãŸãã•ã‚“集ã¾ã£ã¦æ¥ãŸã€‚昼間見るã¨ã€ãã®é´‰ãŒä½•ç¾½ã¨ãª -ã輪をæã„ã¦ã€é«˜ã„鴟尾(ã—ã³ï¼‰ã®ã¾ã‚りを啼ããªãŒã‚‰ã€é£›ã³ã¾ã‚ã£ã¦ã„る。殊ã«é–€ã® -上ã®ç©ºãŒã€å¤•ç„¼ã‘ã§ã‚ã‹ããªã‚‹æ™‚ã«ã¯ã€ãã‚ŒãŒèƒ¡éº»ã‚’ã¾ã„ãŸã‚ˆã†ã«ã¯ã£ãり見ãˆãŸã€‚é´‰ -ã¯ã€å‹¿è«–ã€é–€ã®ä¸Šã«ã‚る死人ã®è‚‰ã‚’ã€å•„ã¿ã«æ¥ã‚‹ã®ã§ã‚る。ーー尤も今日ã¯ã€åˆ»é™ãŒé… -ã„ã›ã„ã‹ã€ä¸€ç¾½ã‚‚見ãˆãªã„。唯ã€æ‰€ã€…ã€å´©ã‚Œã‹ã‹ã£ãŸã€ãã†ã—ã¦ãã®å´©ã‚Œç›®ã«é•·ã„è‰ã® -ã¯ãˆãŸçŸ³æ®µã®ä¸Šã«ã€é´‰ã®ç³žï¼ˆãã)ãŒã€ç‚¹ã€…ã¨ç™½ãã“ã³ã‚Šã¤ã„ã¦ã„ã‚‹ã®ãŒè¦‹ãˆã‚‹ã€‚下人 -ã¯ä¸ƒæ®µã‚る石段ã®ä¸€ç•ªä¸Šã®æ®µã«æ´—ã„ã–らã—ãŸç´ºã®è¥–(ã‚ãŠï¼‰ã®å°»ã‚’æ®ãˆã¦ã€å³ã®é ¬ã«å‡º -æ¥ãŸã€å¤§ããªé¢çš°ï¼ˆã«ãã³ï¼‰ã‚’æ°—ã«ã—ãªãŒã‚‰ã€ã¼ã‚“ã‚„ã‚Šã€é›¨ã®ãµã‚‹ã®ã‚’眺ã‚ã¦ã„ã‚‹ã®ã§ -ã‚る。 - 作者ã¯ã•ã£ãã€ã€Œä¸‹äººãŒé›¨ã‚„ã¿ã‚’å¾…ã£ã¦ã„ãŸã€ã¨æ›¸ã„ãŸã€‚ã—ã‹ã—ã€ä¸‹äººã¯ã€é›¨ãŒã‚„ã‚“ -ã§ã‚‚格別ã©ã†ã—よã†ã¨äº‘ã†å½“ã¦ã¯ãªã„。ãµã ã‚“ãªã‚‰ã€å‹¿è«–ã€ä¸»äººã®å®¶ã¸å¸°ã‚‹å¯ãç­ˆã§ã‚ -る。所ãŒãã®ä¸»äººã‹ã‚‰ã¯ã€å››äº”æ—¥å‰ã«æš‡ã‚’出ã•ã‚ŒãŸã€‚å‰ã«ã‚‚書ã„ãŸã‚ˆã†ã«ã€å½“時京都㮠-町ã¯ä¸€é€šã‚Šãªã‚‰ãšè¡°å¾®ã—ã¦ã„ãŸã€‚今ã“ã®ä¸‹äººãŒã€æ°¸å¹´ã€ä½¿ã‚ã‚Œã¦ã„ãŸä¸»äººã‹ã‚‰æš‡ã‚’出㕠-ã‚ŒãŸã®ã‚‚ã€ã“ã®è¡°å¾®ã®å°ã•ãªä½™æ³¢ã«å¤–ãªã‚‰ãªã„。ã ã‹ã‚‰ã€ã€Œä¸‹äººãŒé›¨ã‚„ã¿ã‚’å¾…ã£ã¦ã„ãŸã€ -ã¨äº‘ã†ã‚ˆã‚Šã‚‚ã€ã€Œé›¨ã«ãµã‚Šã“ã‚られãŸä¸‹äººãŒã€è¡Œã所ãŒãªãã¦ã€é€”æ–¹ã«ãã‚Œã¦ã„ãŸã€ã¨ -云ã†æ–¹ãŒã€é©å½“ã§ã‚る。ãã®ä¸Šã€ä»Šæ—¥ã®ç©ºæ¨¡æ§˜ã‚‚å°‘ãªã‹ã‚‰ãšã“ã®å¹³å®‰æœã®ä¸‹äººã® -Sentimentalismeã«å½±éŸ¿ã—ãŸã€‚申(ã•ã‚‹ï¼‰ã®åˆ»ä¸‹ãŒã‚Šã‹ã‚‰ãµã‚Šå‡ºã—ãŸé›¨ã¯ã€æœªã ã«ä¸Š -ãŒã‚‹ã‘ã—ããŒãªã„。ãã“ã§ã€ä¸‹äººã¯ã€ä½•ã‚’措ã„ã¦ã‚‚差当ãŸã‚Šæ˜Žæ—¥ã®æš®ã—ã‚’ã©ã†ã«ã‹ã—よ -ã†ã¨ã—ã¦ãƒ¼ãƒ¼äº‘ã‚ã°ã©ã†ã«ã‚‚ãªã‚‰ãªã„事をã€ã©ã†ã«ã‹ã—よã†ã¨ã—ã¦ã€ã¨ã‚Šã¨ã‚ã‚‚ãªã„考 -ãˆã‚’ãŸã©ã‚ŠãªãŒã‚‰ã€ã•ã£ãã‹ã‚‰æœ±é›€å¤§è·¯ã«ãµã‚‹é›¨ã®éŸ³ã‚’èžãã¨ã‚‚ãªãèžã„ã¦ã„ãŸã€‚ - 雨ã¯ç¾…生門をã¤ã¤ã‚“ã§ã€é ãã‹ã‚‰ã€ã–ã‚ã£ã¨äº‘ã†éŸ³ã‚’ã‚ã¤ã‚ã¦ãる。夕闇ã¯æ¬¡ç¬¬ã«ç©º -を低ãã—ã¦ã€è¦‹ä¸Šã’ã‚‹ã¨ã€é–€ã®å±‹æ ¹ãŒã€æ–œã‚ã«ã¤ã出ã—ãŸç”(ã„らã‹ï¼‰ã®å…ˆã«ã€é‡ãŸã -ã†ã™æš—ã„雲を支ãˆã¦ã„る。 - ã©ã†ã«ã‚‚ãªã‚‰ãªã„事をã€ã©ã†ã«ã‹ã™ã‚‹ç‚ºã«ã¯ã€æ‰‹æ®µã‚’é¸ã‚“ã§ã„ã‚‹é‘(ã„ã¨ã¾ï¼‰ã¯ãªã„。 -é¸ã‚“ã§ã„ã‚Œã°ã€ç¯‰åœ°ï¼ˆã¤ã„ã˜ï¼‰ã®ä¸‹ã‹ã€é“ã°ãŸã®åœŸã®ä¸Šã§ã€é¥‘死(ã†ãˆã˜ã«ï¼‰ã‚’ã™ã‚‹ã° -ã‹ã‚Šã§ã‚る。ãã†ã—ã¦ã€ã“ã®é–€ã®ä¸Šã¸æŒã£ã¦æ¥ã¦ã€çŠ¬ã®ã‚ˆã†ã«æ¨ã¦ã‚‰ã‚Œã¦ã—ã¾ã†ã°ã‹ã‚Š -ã§ã‚る。é¸ã°ãªã„ã¨ã™ã‚Œã°ãƒ¼ãƒ¼ä¸‹äººã®è€ƒãˆã¯ã€ä½•åº¦ã‚‚åŒã˜é“を低徊ã—ãŸæšå¥ã«ã€ã‚„ã£ã¨ -ã“ã®å±€æ‰€ã¸é€¢ç€ã—ãŸã€‚ã—ã‹ã—ã“ã®ã€Œã™ã‚Œã°ã€ã¯ã€ã„ã¤ã‚‚ã§ãŸã£ã¦ã‚‚ã€çµå±€ã€Œã™ã‚Œã°ã€ã§ -ã‚ã£ãŸã€‚下人ã¯ã€æ‰‹æ®µã‚’é¸ã°ãªã„ã¨ã„ã†äº‹ã‚’肯定ã—ãªãŒã‚‰ã‚‚ã€ã“ã®ã€Œã™ã‚Œã°ã€ã®ã‹ãŸã‚’ -ã¤ã‘る為ã«ã€å½“然ã€ã“ã®å¾Œã«æ¥ã‚‹å¯ã「盗人ã«ãªã‚‹ã‚ˆã‚Šå¤–ã«ä»•æ–¹ãŒãªã„ã€ã¨äº‘ã†äº‹ã‚’〠-ç©æ¥µçš„ã«è‚¯å®šã™ã‚‹ã ã‘ã®ã€å‹‡æ°—ãŒå‡ºãšã«ã„ãŸã®ã§ã‚る。 - 下人ã¯å¤§ããªåšï¼ˆãã•ã‚)をã—ã¦ã€ãã‚Œã‹ã‚‰ã€å¤§å„€ãã†ã«ç«‹ä¸ŠãŒã£ãŸã€‚夕冷ãˆã®ã™ã‚‹ -京都ã¯ã€ã‚‚ã†ç«æ¡¶ãŒæ¬²ã—ã„程ã®å¯’ã•ã§ã‚る。風ã¯é–€ã®æŸ±ã¨æŸ±ã¨ã®é–“ã‚’ã€å¤•é—‡ã¨å…±ã«é æ…® -ãªãã€å¹ãã¬ã‘る。丹塗ã®æŸ±ã«ã¨ã¾ã£ã¦ã„ãŸãã‚ŠãŽã‚Šã™ã‚‚ã€ã‚‚ã†ã©ã“ã‹ã¸è¡Œã£ã¦ã—ã¾ã£ -ãŸã€‚ - 下人ã¯ã€é ¸ã‚’ã¡ã¢ã‚ãªãŒã‚‰ã€å±±å¹ã®æ±—衫(ã‹ã–ã¿ï¼‰ã«é‡ã­ãŸã€ç´ºã®è¥–ã®è‚©ã‚’高ãã—㦠-é–€ã®ã¾ã‚りを見ã¾ã‚ã—ãŸã€‚雨風ã®æ‚£ã®ãªã„ã€äººç›®ã«ã‹ã‹ã‚‹æƒ§ã®ãªã„ã€ä¸€æ™©æ¥½ã«ã­ã‚‰ã‚Œã -ã†ãªæ‰€ãŒã‚ã‚Œã°ã€ãã“ã§ã¨ã‚‚ã‹ãã‚‚ã€å¤œã‚’明ã‹ãã†ã¨æ€ã£ãŸã‹ã‚‰ã§ã‚る。ã™ã‚‹ã¨ã€å¹¸é–€ -ã®ä¸Šã®æ¥¼ã¸ä¸Šã‚‹ã€å¹…ã®åºƒã„ã€ä¹‹ã‚‚丹を塗ã£ãŸæ¢¯å­ãŒçœ¼ã«ã¤ã„ãŸã€‚上ãªã‚‰ã€äººãŒã„ãŸã«ã— -ã¦ã‚‚ã€ã©ã†ã›æ­»äººã°ã‹ã‚Šã§ã‚る。下人ã¯ã€ãã“ã§è…°ã«ã•ã’ãŸè–柄(ã²ã˜ã‚Šã¥ã‹ï¼‰ã®å¤ªåˆ€ -ãŒéž˜èµ°ã‚‰ãªã„よã†ã«æ°—ã‚’ã¤ã‘ãªãŒã‚‰ã€è—è‰å±¥ã‚’ã¯ã„ãŸè¶³ã‚’ã€ãã®æ¢¯å­ã®ä¸€ç•ªä¸‹ã®æ®µã¸ãµ -ã¿ã‹ã‘ãŸã€‚ - ãã‚Œã‹ã‚‰ã€ä½•åˆ†ã‹ã®å¾Œã§ã‚る。羅生門ã®æ¥¼ã®ä¸Šã¸å‡ºã‚‹ã€å¹…ã®åºƒã„梯å­ã®ä¸­æ®µã«ã€ä¸€äºº -ã®ç”·ãŒã€çŒ«ã®ã‚ˆã†ã«èº«ã‚’ã¡ã¢ã‚ã¦ã€æ¯ã‚’殺ã—ãªãŒã‚‰ã€ä¸Šã®å®¹å­ã‚’窺ã£ã¦ã„ãŸã€‚楼ã®ä¸Šã‹ -らã•ã™ç«ã®å…‰ãŒã€ã‹ã™ã‹ã«ã€ãã®ç”·ã®å³ã®é ¬ã‚’ã¬ã‚‰ã—ã¦ã„る。短ã„鬚(ã²ã’)ã®ä¸­ã«ã€ -赤ã膿をæŒã£ãŸé¢çš°ã®ã‚ã‚‹é ¬ã§ã‚る。下人ã¯ã€å§‹ã‚ã‹ã‚‰ã€ã“ã®ä¸Šã«ã„る者ã¯ã€æ­»äººã°ã‹ -ã‚Šã ã¨é«˜ã‚’括ã£ã¦ã„ãŸã€‚ãã‚ŒãŒã€æ¢¯å­ã‚’二三段上ã£ã¦è¦‹ã‚‹ã¨ã€ä¸Šã§ã¯èª°ã‹ç«ã‚’ã¨ã¼ã—ã¦ã€ -ã—ã‹ã‚‚ãã®ç«ã‚’其処此処ã¨å‹•ã‹ã—ã¦ã„るらã—ã„。ã“ã‚Œã¯ã€ãã®æ¿ã£ãŸã€é»„ã„ã‚ã„å…‰ãŒã€ -隅々ã«èœ˜è››ã®å·£ã‚’ã‹ã‘ãŸå¤©äº•è£ã«ã€ã‚†ã‚ŒãªãŒã‚‰æ˜ ã£ãŸã®ã§ã€ã™ãã«ãã‚Œã¨çŸ¥ã‚ŒãŸã®ã§ã‚ -る。ã“ã®é›¨ã®å¤œã«ã€ã“ã®ç¾…生門ã®ä¸Šã§ã€ç«ã‚’ã¨ã‚‚ã—ã¦ã„ã‚‹ã‹ã‚‰ã¯ã€ã©ã†ã›å”¯ã®è€…ã§ã¯ãª -ã„。 - 下人ã¯ã€å®®å®ˆï¼ˆã‚„もり)ã®ã‚ˆã†ã«è¶³éŸ³ã‚’ã¬ã™ã‚“ã§ã€ã‚„ã£ã¨æ€¥ãªæ¢¯å­ã‚’ã€ä¸€ç•ªä¸Šã®æ®µã¾ -ã§é€™ã†ã‚ˆã†ã«ã—ã¦ä¸Šã‚Šã¤ã‚ãŸã€‚ãã†ã—ã¦ä½“を出æ¥ã‚‹ã ã‘ã€å¹³ã«ã—ãªãŒã‚‰ã€é ¸ã‚’出æ¥ã‚‹ã  -ã‘ã€å‰ã¸å‡ºã—ã¦ã€æã‚‹æã‚‹ã€æ¥¼ã®å†…を覗ã„ã¦è¦‹ãŸã€‚ - 見るã¨ã€æ¥¼ã®å†…ã«ã¯ã€å™‚ã«èžã„ãŸé€šã‚Šã€å¹¾ã¤ã‹ã®å±éª¸ï¼ˆã—ãŒã„)ãŒã€ç„¡é€ ä½œã«æ£„ã¦ã¦ -ã‚ã‚‹ãŒã€ç«ã®å…‰ã®åŠã¶ç¯„囲ãŒã€æ€ã£ãŸã‚ˆã‚Šç‹­ã„ã®ã§ã€æ•°ã¯å¹¾ã¤ã¨ã‚‚ã‚ã‹ã‚‰ãªã„。唯ã€ãŠ -ã¼ã‚ã’ãªãŒã‚‰ã€çŸ¥ã‚Œã‚‹ã®ã¯ã€ãã®ä¸­ã«è£¸ã®å±éª¸ã¨ã€ç€ç‰©ã‚’ç€ãŸå±éª¸ã¨ãŒã‚ã‚‹ã¨äº‘ã†äº‹ã§ -ã‚る。勿論ã€ä¸­ã«ã¯å¥³ã‚‚ç”·ã‚‚ã¾ã˜ã£ã¦ã„るらã—ã„。ãã†ã—ã¦ã€ãã®å±éª¸ã¯çš†ã€ãã‚ŒãŒã€ -嘗(ã‹ã¤ã¦ï¼‰ã€ç”Ÿãã¦ã„ãŸäººé–“ã ã¨äº‘ã†äº‹å®Ÿã•ãˆç–‘ã‚れる程ã€åœŸã‚’æã­ã¦é€ ã£ãŸäººå½¢ã® -よã†ã«ã€å£ã‚’é–‹ã„ãŸã‚Šã€æ‰‹ã‚’延ã°ã—ãŸã‚Šã—ã¦ã€ã”ã‚ã”ã‚床ã®ä¸Šã«ã“ã‚ãŒã£ã¦ã„ãŸã€‚ã—ã‹ -ã‚‚ã€è‚©ã¨ã‹èƒ¸ã¨ã‹ã®é«˜ããªã£ã¦ã„る部分ã«ã€ã¼ã‚“ã‚„ã‚Šã—ãŸç«ã®å…‰ã‚’ã†ã‘ã¦ã€ä½Žããªã£ã¦ -ã„る部分ã®å½±ã‚’一層暗ãã—ãªãŒã‚‰ã€æ°¸ä¹…ã«å”–(ãŠã—)ã®å¦‚ãé»™ã£ã¦ã„ãŸã€‚ - 下人ã¯ã€ãれらã®å±éª¸ã®è…爛ã—ãŸè‡­æ°—ã«æ€ã‚ãšã€é¼»ã‚’掩ã£ãŸï¼ˆãŠãŠã£ãŸï¼‰ã€‚ã—ã‹ã—〠-ãã®æ‰‹ã¯ã€æ¬¡ã®çž¬é–“ã«ã¯ã€ã‚‚ã†é¼»ã‚’掩ã†äº‹ã‚’忘れã¦ã„ãŸã€‚或る強ã„感情ãŒæ®†æ‚‰ï¼ˆã»ã¨ã‚“ -ã©ã“ã¨ã”ã¨ã)ã“ã®ç”·ã®å—…覚を奪ã£ã¦ã—ã¾ã£ãŸã‹ã‚‰ã§ã‚る。 - 下人ã®çœ¼ã¯ã€ãã®æ™‚ã€ã¯ã˜ã‚ã¦ã€å…¶å±éª¸ã®ä¸­ã«è¹²ã£ã¦ã„る(ã†ãšãã¾ã£ã¦ã„る)人間 -を見ãŸã€‚檜肌色(ã²ã¯ã ã„ã‚)ã®ç€ç‰©ã‚’è‘—ãŸã€èƒŒã®ä½Žã„ã€ç—©ã›ãŸã€ç™½é«ªé ­ã®ã€çŒ¿ã®ã‚ˆã† -ãªè€å©†ã§ã‚る。ãã®è€å©†ã¯ã€å³ã®æ‰‹ã«ç«ã‚’ã¨ã‚‚ã—ãŸæ¾ã®æœ¨ç‰‡ã‚’æŒã£ã¦ã€ãã®å±éª¸ã®ä¸€ã¤ -ã®é¡”を覗ãã“むよã†ã«çœºã‚ã¦ã„ãŸã€‚髪ã®æ¯›ã®é•·ã„所を見るã¨ã€å¤šåˆ†å¥³ã®å±éª¸ã§ã‚ã‚ã†ã€‚ - 下人ã¯ã€å…­åˆ†ã®æ怖ã¨å››åˆ†ã®å¥½å¥‡å¿ƒã¨ã«å‹•ã‹ã•ã‚Œã¦ã€æš«æ™‚ã¯å‘¼å¸ï¼ˆã„ã)をã™ã‚‹ã®ã• -ãˆå¿˜ã‚Œã¦ã„ãŸã€‚旧記ã®è¨˜è€…ã®èªžã‚’借りれã°ã€ã€Œé ­èº«ï¼ˆã¨ã†ã—ん)ã®æ¯›ã‚‚太るã€ã‚ˆã†ã«æ„Ÿ -ã˜ãŸã®ã§ã‚る。ã™ã‚‹ã¨ã€è€å©†ã¯ã€æ¾ã®æœ¨ç‰‡ã‚’ã€åºŠæ¿ã®é–“ã«æŒ¿ã—ã¦ã€ãã‚Œã‹ã‚‰ã€ä»Šã¾ã§çœº -ã‚ã¦ã„ãŸå±éª¸ã®é¦–ã«ä¸¡æ‰‹ã‚’ã‹ã‘ã‚‹ã¨ã€ä¸åº¦ã€çŒ¿ã®è¦ªãŒçŒ¿ã®å­ã®è™±ï¼ˆã—らã¿ï¼‰ã‚’ã¨ã‚‹ã‚ˆã† -ã«ã€ãã®é•·ã„髪ã®æ¯›ã‚’一本ãšã¤æŠœãã¯ã˜ã‚ãŸã€‚髪ã¯æ‰‹ã«å¾“ã£ã¦æŠœã‘るらã—ã„。 - ãã®é«ªã®æ¯›ãŒã€ä¸€æœ¬ãšã¤æŠœã‘ã‚‹ã®ã«å¾“ã£ã¦ä¸‹äººã®å¿ƒã‹ã‚‰ã¯ã€æ怖ãŒå°‘ã—ãšã¤æ¶ˆãˆã¦è¡Œã£ -ãŸã€‚ãã†ã—ã¦ã€ãã‚Œã¨åŒæ™‚ã«ã€ãã®è€å©†ã«å¯¾ã™ã‚‹ã¯ã’ã—ã„憎悪ãŒã€å°‘ã—ãšã¤å‹•ã„ã¦æ¥ãŸã€‚ -ã„ã‚„ã€ã“ã®è€å©†ã«å¯¾ã™ã‚‹ã¨äº‘ã£ã¦ã¯ã€èªžå¼ŠãŒã‚ã‚‹ã‹ã‚‚知れãªã„。寧(むã—ã‚)ã€ã‚らゆ -る悪ã«å¯¾ã™ã‚‹åæ„ŸãŒã€ä¸€åˆ†æ¯Žã«å¼·ã•ã‚’増ã—ã¦æ¥ãŸã®ã§ã‚る。ã“ã®æ™‚ã€èª°ã‹ãŒã“ã®ä¸‹äººã«ã€ -ã•ã£ãé–€ã®ä¸‹ã§ã“ã®ç”·ãŒè€ƒãˆã¦ã„ãŸã€é¥‘死(ã†ãˆã˜ã«ï¼‰ã‚’ã™ã‚‹ã‹ç›—人ã«ãªã‚‹ã‹ã¨äº‘ã†å• -題をã€æ”¹ã‚ã¦æŒå‡ºã—ãŸã‚‰ã€æらã下人ã¯ã€ä½•ã®æœªç·´ã‚‚ãªãã€é¥‘死をé¸ã‚“ã äº‹ã§ã‚ã‚ã†ã€‚ -ãã‚Œã»ã©ã€ã“ã®ç”·ã®æ‚ªã‚’憎む心ã¯ã€è€å©†ã®åºŠã«æŒ¿ã—ãŸæ¾ã®æœ¨ç‰‡ã®ã‚ˆã†ã«ã€å‹¢ã‚ˆã燃ãˆä¸Š -ãŒã‚Šã ã—ã¦ã„ãŸã®ã§ã‚る。 - 下人ã«ã¯ã€å‹¿è«–ã€ä½•æ•…è€å©†ãŒæ­»äººã®é«ªã®æ¯›ã‚’抜ãã‹ã‚ã‹ã‚‰ãªã‹ã£ãŸã€‚従ã£ã¦ã€åˆç†çš„ -ã«ã¯ã€ãれを善悪ã®ä½•ã‚Œã«ç‰‡ã¥ã‘ã¦ã‚ˆã„ã‹çŸ¥ã‚‰ãªã‹ã£ãŸã€‚ã—ã‹ã—下人ã«ã¨ã£ã¦ã¯ã€ã“ã® -雨ã®å¤œã«ã€ã“ã®ç¾…生門ã®ä¸Šã§ã€æ­»äººã®é«ªã®æ¯›ã‚’抜ãã¨äº‘ã†äº‹ãŒã€ãã‚Œã ã‘ã§æ—¢ã«è¨±ã™å¯ -らã–る悪ã§ã‚ã£ãŸã€‚勿論 下人ã¯ã€€ã•ã£ã迄自分ãŒã€ç›—人ã«ãªã‚‹æ°—ã§ã„ãŸäº‹ãªãžã¯ã€€ã¨ -ã†ã«å¿˜ã‚Œã¦ã„ã‚‹ã®ã§ã‚る。 - ãã“ã§ã€ä¸‹äººã¯ã€ä¸¡è¶³ã«åŠ›ã‚’入れã¦ã€ã„ã‹ãªã‚Šã€æ¢¯å­ã‹ã‚‰ä¸Šã¸é£›ã³ä¸ŠãŒã£ãŸã€€ãã†ã— -ã¦è–柄(ã²ã˜ã‚Šã¥ã‹ï¼‰ã®å¤ªåˆ€ã«æ‰‹ã‚’ã‹ã‘ãªãŒã‚‰ã€å¤§è‚¡ã«è€å©†ã®å‰ã¸æ­©ã¿ã‚ˆã£ãŸã€‚è€å©†ãŒ -é©šã„ãŸã®ã¯ã€€äº‘ã†è¿„ã‚‚ãªã„。 - è€å©†ã¯ã€ä¸€ç›®ä¸‹äººã‚’見るã¨ã€ã¾ã‚‹ã§å¼©ï¼ˆã„ã—ゆã¿ï¼‰ã«ã§ã‚‚å¼¾ã‹ã‚ŒãŸã‚ˆã†ã«ã€€é£›ã³ä¸ŠãŒã£ -ãŸã€‚ - 「ãŠã®ã‚Œã€ã©ã“ã¸è¡Œã。〠- 下人ã¯ã€è€å©†ãŒå±éª¸ã«ã¤ã¾ã¥ããªãŒã‚‰ã€æ…Œã¦ãµãŸã‚ã„ã¦é€ƒã’よã†ã¨ã™ã‚‹è¡Œæ‰‹ã‚’å¡žã„ã§ã€ -ã“ã†ç½µã£ãŸã€‚è€å©†ã¯ã€ãã‚Œã§ã‚‚下人をã¤ãã®ã‘ã¦è¡Œã“ã†ã¨ã™ã‚‹ã€‚下人ã¯åˆã€ãれを行㋠-ã™ã¾ã„ã¨ã—ã¦ã€æŠ¼ã—ã‚‚ã©ã™ã€‚二人ã¯å±éª¸ã®ä¸­ã§ã€æš«ã€ç„¡è¨€ã®ã¾ã¾ã€ã¤ã‹ã¿åˆã£ãŸã€‚ã—ã‹ -ã—å‹è² ã¯ã€ã¯ã˜ã‚ã‹ã‚‰ã€ã‚ã‹ã£ã¦ã„る。下人ã¯ã¨ã†ã¨ã†ã€è€å©†ã®è…•ã‚’ã¤ã‹ã‚“ã§ã€ç„¡ç†ã« -ãã“ã¸ã­ã˜å€’ã—ãŸã€‚ä¸åº¦ã€é¶ï¼ˆã¨ã‚Šï¼‰ã®è„šã®ã‚ˆã†ãªã€éª¨ã¨çš®ã°ã‹ã‚Šã®è…•ã§ã‚る。 - 「何をã—ã¦ã„ãŸã€‚ã•ã‚何をã—ã¦ã„ãŸã€‚云ãˆã€‚云ã‚ã¬ã¨ã€€ã“ã‚Œã ãžã‚ˆã€‚〠- 下人ã¯ã€è€å©†ã‚’ã¤ã放ã™ã¨ã€ã„ããªã‚Šã€å¤ªåˆ€ã®éž˜ã‚’払ã£ã¦ã€ç™½ã„鋼(ã¯ãŒã­ï¼‰ã®è‰²ã‚’ -ãã®çœ¼ã®å‰ã¸ã¤ãã¤ã‘ãŸã€‚ã‘ã‚Œã©ã‚‚ã€è€å©†ã¯é»™ã£ã¦ã„る。両手をã‚ãªã‚ãªãµã‚‹ã‚ã›ã¦ã€ -è‚©ã§æ¯ã‚’切りãªãŒã‚‰ã€çœ¼ã‚’ã€çœ¼çƒãŒã¾ã¶ãŸã®å¤–ã¸å‡ºãã†ã«ãªã‚‹ç¨‹ã€è¦‹é–‹ã„ã¦ã€å”–ã®ã‚ˆã† -ã«åŸ·æ‹—(ã—ã‚…ã†ã­ï¼‰ãé»™ã£ã¦ã„る。ã“れを見るã¨ã€ä¸‹äººã¯å§‹ã‚ã¦æ˜Žç™½ã«ã“ã®è€å©†ã®ç”Ÿæ­» -ãŒã€å…¨ç„¶ã€è‡ªåˆ†ã®æ„å¿—ã«æ”¯é…ã•ã‚Œã¦ã„ã‚‹ã¨äº‘ã†äº‹ã‚’æ„è­˜ã—ãŸã€‚ãã†ã—ã¦ã€ã“ã®æ„è­˜ã¯ã€ -今ã¾ã§ã¯ã’ã—ã燃ãˆã¦ã„ãŸæ†Žæ‚ªã®å¿ƒã‚’何時(ã„ã¤ï¼‰ã®é–“ã«ã‹å†·ã¾ã—ã¦ã—ã¾ã£ãŸã€‚後ã«æ®‹ã£ -ãŸã®ã¯ã€å”¯ã€æˆ–仕事をã—ã¦ã€ãã‚ŒãŒå††æº€ã«æˆå°±ã—ãŸæ™‚ã®ã€å®‰ã‚‰ã‹ãªå¾—æ„ã¨æº€è¶³ã¨ãŒã‚ã‚‹ -ã°ã‹ã‚Šã§ã‚る。ãã“ã§ã€ä¸‹äººã¯ã€è€å©†ã‚’ã€è¦‹ä¸‹ã’ãªãŒã‚‰ã€å°‘ã—声を柔ã’ã¦ã“ã†äº‘ã£ãŸã€‚ - 「己ã¯æ¤œéžé•ä½¿ï¼ˆã‘ã³ã„ã—)ã®åºã®å½¹äººãªã©ã§ã¯ãªã„。今ã—æ–¹ã“ã®é–€ã®ä¸‹ã‚’通りã‹ã‹ã£ -ãŸæ—…ã®è€…ã ã€‚ã ã‹ã‚‰ãŠå‰ã«ç¸„ã‚’ã‹ã‘ã¦ã€ã©ã†ã—よã†ã¨äº‘ã†ã‚ˆã†ãªäº‹ã¯ãªã„。唯今時分〠-ã“ã®é–€ã®ä¸Šã§ã€ä½•ã‚’ã—ã¦ã„ãŸã®ã ã‹ã€ãれを己ã«è©±ã•ãˆã™ã‚Œã°ã„ã„ã®ã ã€‚〠- ã™ã‚‹ã¨ã€è€å©†ã¯ã€è¦‹é–‹ã„ãŸçœ¼ã‚’ã€ä¸€å±¤å¤§ããã—ã¦ã€ã˜ã£ã¨ãã®ä¸‹äººã®é¡”を見守ã£ãŸã€‚ -ã¾ã¶ãŸã®èµ¤ããªã£ãŸã€è‚‰é£Ÿé³¥ã®ã‚ˆã†ãªã€é‹­ã„眼ã§è¦‹ãŸã®ã§ã‚る。ãã‚Œã‹ã‚‰ã€çšºã§ã€æ®†ã€ -é¼»ã¨ä¸€ã¤ã«ãªã£ãŸå”‡ã‚’何ã‹ç‰©ã§ã‚‚噛んã§ã„るよã†ã«å‹•ã‹ã—ãŸã€‚ç´°ã„å–‰ã§ã€å°–ã£ãŸå–‰ä»ã® -å‹•ã„ã¦ã„ã‚‹ã®ãŒè¦‹ãˆã‚‹ã€‚ãã®æ™‚ã€ãã®å–‰ã‹ã‚‰ã€é´‰ï¼ˆã‹ã‚‰ã™ï¼‰ã®å•¼ãよã†ãªå£°ãŒã€å–˜ãŽå–˜ -ãŽã€ä¸‹äººã®è€³ã¸ä¼ã‚ã£ã¦æ¥ãŸã€‚ - 「ã“ã®é«ªã‚’抜ã„ã¦ãªã€ã“ã®å¥³ã®é«ªã‚’抜ã„ã¦ãªã€é¬˜ï¼ˆã‹ã¤ã‚‰ï¼‰ã«ã—よã†ã¨æ€ã†ãŸã® -ã˜ã‚ƒã€‚〠- 下人ã¯ã€è€å©†ã®ç­”ãŒå­˜å¤–ã€å¹³å‡¡ãªã®ã«å¤±æœ›ã—ãŸã€‚ãã†ã—ã¦å¤±æœ›ã™ã‚‹ã¨åŒæ™‚ã«ã€åˆå‰ã® -憎悪ãŒã€å†·ãªä¾®è”‘ã¨ä¸€ã—ょã«ã€å¿ƒã®ä¸­ã¸ã¯ã„ã£ã¦æ¥ãŸã€‚ã™ã‚‹ã¨ã€€ãã®æ°—色(ã‘ã—ã)ãŒã€ -先方ã¸ã‚‚通ã˜ãŸã®ã§ã‚ã‚ã†ã€‚è€å©†ã¯ã€ç‰‡æ‰‹ã«ã€ã¾ã å±éª¸ã®é ­ã‹ã‚‰å¥ªï¼ˆã¨ï¼‰ã£ãŸé•·ã„抜㑠-毛をæŒã£ãŸãªã‚Šã€èŸ‡ï¼ˆã²ã)ã®ã¤ã¶ã‚„ãよã†ãªå£°ã§ã€å£ã”ã‚‚ã‚ŠãªãŒã‚‰ã€ã“ã‚“ãªäº‹ã‚’云㣠-ãŸã€‚ - æˆç¨‹ã€æ­»äººã®é«ªã®æ¯›ã‚’抜ãã¨äº‘ã†äº‹ã¯ã€æ‚ªã„事ã‹ã­çŸ¥ã‚Œã¬ã€‚ã—ã‹ã—ã€ã“ã†äº‘ã†æ­»äººã® -多ãã¯ã€çš†ã€€ãã®ä½ãªäº‹ã‚’ã€ã•ã‚Œã¦ã‚‚ã„ã„人間ã°ã‹ã‚Šã§ã‚る。ç¾ã«ã€è‡ªåˆ†ãŒä»Šã€é«ªã‚’抜 -ã„ãŸå¥³ãªã©ã¯ã€è›‡ã‚’四寸ã°ã‹ã‚Šãšã¤ã«åˆ‡ã£ã¦å¹²ã—ãŸã®ã‚’ã€å¹²é­šï¼ˆã»ã—ã†ãŠï¼‰ã ã¨äº‘ã£ã¦ã€ -太刀帯(ãŸã¡ã¯ã)ã®é™£ã¸å£²ã‚Šã«è¡Œã£ãŸã€‚ç–«ç—…ã«ã‹ã‹ã£ã¦æ­»ãªãªã‹ã£ãŸãªã‚‰ã€ä»Šã§ã‚‚売 -ã‚Šã«è¡Œã£ã¦ã„ãŸã‹ã‚‚ã—ã‚Œãªã„。ã—ã‹ã‚‚ã€ã“ã®å¥³ã®å£²ã‚‹å¹²é­šã¯ã€å‘³ãŒã‚ˆã„ã¨äº‘ã†ã®ã§ã€å¤ª -刀帯ãŸã¡ãŒã€æ¬ ã‹ã•ãšèœæ–™ã«è²·ã£ã¦ã„ãŸã®ã§ã‚る。自分ã¯ã€ã“ã®å¥³ã®ã—ãŸäº‹ãŒæ‚ªã„ã¨ã¯ -æ€ã‚ãªã„。ã—ãªã‘ã‚Œã°ã€é¥‘死(ãˆã†ã˜ã«ï¼‰ã‚’ã™ã‚‹ã®ã§ã€ä»•æ–¹ãŒãªãã—ãŸäº‹ã ã‹ã‚‰ã§ã‚る。 -ã ã‹ã‚‰ã€åˆä»Šã€è‡ªåˆ†ã®ã—ã¦ã„ãŸäº‹ã‚‚悪ã„事ã¨ã¯æ€ã‚ãªã„。ã“れもやã¯ã‚Šã—ãªã‘ã‚Œã°ã€é¥‘ -死をã™ã‚‹ã®ã§ã€ä»•æ–¹ãŒãªãã™ã‚‹äº‹ã ã‹ã‚‰ã§ã‚る。ãã†ã—ã¦ã€ãã®ä»•æ–¹ãŒãªã„事をã€ã‚ˆã -知ã£ã¦ã„ãŸã“ã®å¥³ã¯ã€è‡ªåˆ†ã®ã™ã‚‹äº‹ã‚’許ã—ã¦ãれるã®ã«ã¡ãŒã„ãªã„ã¨æ€ã†ã‹ã‚‰ã§ã‚ -る。ーーè€å©†ã¯ã€å¤§ä½“ã“ã‚“ãªæ„味ã®äº‹ã‚’云ã£ãŸã€‚ - 下人ã¯ã€å¤ªåˆ€ã‚’鞘ã«ãŠã•ã‚ã¦ã€ãã®å¤ªåˆ€ã®æŸ„ã‚’å·¦ã®æ‰‹ã§ãŠã•ãˆãªãŒã‚‰ã€å†·ç„¶ã¨ã—ã¦ã€ -ã“ã®è©±ã‚’èžã„ã¦ã„ãŸã€‚å‹¿è«–ã€ã€€å³ã®æ‰‹ã§ã¯ã€èµ¤ãé ¬ã«è†¿ã‚’æŒãŸå¤§ããªé¢çš°ï¼ˆã«ãã³ï¼‰ã‚’ -æ°—ã«ã—ãªãŒã‚‰ã€èžã„ã¦ã„ã‚‹ã®ã§ã‚る。ã—ã‹ã—ã€ä¹‹ã‚’èžã„ã¦ã„る中ã«ã€ä¸‹äººã®å¿ƒã«ã¯ã€æˆ– -勇気ãŒç”Ÿã¾ã‚Œã¦æ¥ãŸã€‚ãã‚Œã¯ã€€ã•ã£ãã€é–€ã®ä¸‹ã§ã“ã®ç”·ã«æ¬ ã‘ã¦ã„ãŸå‹‡æ°—ã§ã‚る。ãㆠ-ã—ã¦ã€åˆã•ã£ãã€ã“ã®é–€ã®ä¸Šã¸ä¸Šï¼ˆã‚ãŒï¼‰ã£ã¦ã€ãã®è€å©†ã‚’æ•ãˆãŸæ™‚ã®å‹‡æ°—ã¨ã¯ã€å…¨ç„¶ã€ -å対ãªæ–¹å‘ã«å‹•ã“ã†ã¨ã™ã‚‹å‹‡æ°—ã§ã‚る。下人ã¯ã€é¥‘死をã™ã‚‹ã‹ç›—人ã«ãªã‚‹ã‹ã«è¿·ã‚ãªã‹ã£ -ãŸã°ã‹ã‚Šã§ã¯ãªã„。ãã®æ™‚ã®ã“ã®ç”·ã®å¿ƒã‚‚ã¡ã‹ã‚‰äº‘ãˆã°ã€é¥‘æ­»ãªã©ã¨äº‘ã†äº‹ã¯ã€æ®†ã€è€ƒ -ãˆã‚‹äº‹ã•ãˆå‡ºæ¥ãªã„程ã€æ„è­˜ã®å¤–ã«è¿½ã„出ã•ã‚Œã¦ã„ãŸã€‚ - 「ãã£ã¨ã€ãã†ã‹ã€‚〠- è€å©†ã®è©±ãŒå®Œã‚‹ã¨ã€ä¸‹äººã¯å˜²ï¼ˆã‚ã–ã‘)るよã†ãªå£°ã§å¿µã‚’押ã—ãŸã€‚ãã†ã—ã¦ã€ä¸€è¶³å‰ -ã¸å‡ºã‚‹ã¨ã€ä¸æ„ã«ã€å³ã®æ‰‹ã‚’é¢çš°ã‹ã‚‰é›¢ã—ã¦ã€è€å©†ã®è¥Ÿä¸Šï¼ˆãˆã‚ŠãŒã¿ï¼‰ã‚’ã¤ã‹ã¿ãªãŒã‚‰ã€ -ã“ã†äº‘ã£ãŸã€‚ - 「ã§ã¯ã€å·±ãŒå¼•å‰¥ï¼ˆã²ã¯ãŽï¼‰ã‚’ã—よã†ã¨æ¨ã‚€ã¾ã„ãªã€‚己もãã†ã—ãªã‘ã‚Œã°ã€é¥‘死を㙠-る体ãªã®ã ã€‚〠- 下人ã¯ã€ã™ã°ã‚„ãã€è€å©†ã®ç€ç‰©ã‚’剥ãŽã¨ã£ãŸã€‚ãã‚Œã‹ã‚‰ã€è¶³ã«ã—ãŒã¿ã¤ã“ã†ã¨ã™ã‚‹è€ -婆をã€æ‰‹è’ãå±éª¸ã®ä¸Šã¸è¹´å€’ã—ãŸã€‚梯å­ã®å£ã¾ã§ã¯ã€åƒ…ã«äº”æ­©ã‚’æ•°ãˆã‚‹ã°ã‹ã‚Šã§ã‚る。 -下人ã¯ã€å‰¥ãŽã¨ã£ãŸæ¡§è‚Œè‰²ã®ç€ç‰©ã‚’ã‚ãã«ã‹ã‹ãˆã¦ã€ã¾ãŸãŸãé–“ã«æ€¥ãªæ¢¯å­ã‚’夜ã®åº•ã¸ -ã‹ã‘下りãŸã€‚ - 暫ã€æ­»ã‚“ã ã‚ˆã†ã«å€’ã‚Œã¦ã„ãŸè€å©†ãŒã€å±éª¸ã®ä¸­ã‹ã‚‰ã€ãã®è£¸ã®ä½“ã‚’èµ·ã“ã—ãŸã®ã¯ã€ã -ã‚Œã‹ã‚‰é–“ã‚‚ãªãã®äº‹ã§ã‚る。è€å©†ã¯ã€ã¤ã¶ã‚„ãよã†ãªã€ã†ã‚ãよã†ãªå£°ã‚’ç«‹ã¦ãªãŒã‚‰ã€ -ã¾ã ç‡ƒãˆã¦ã„ã‚‹ç«ã®å…‰ã‚’ãŸã‚ˆã‚Šã«ã€æ¢¯å­ã®å£ã¾ã§ã€é€™ã£ã¦è¡Œã£ãŸã€‚ãã†ã—ã¦ã€ãã“ã‹ã‚‰ã€ -短ã„白髪を倒(ã•ã‹ã•ã¾ï¼‰ã«ã—ã¦ã€é–€ã®ä¸‹ã‚’覗ãã“ã‚“ã ã€‚外ã«ã¯ã€å”¯ã€é»’洞々(ã“ã㨠-ã†ã¨ã†ï¼‰ãŸã‚‹å¤œãŒã‚ã‚‹ã°ã‹ã‚Šã§ã‚る。 - 下人ã¯ã€æ—¢ã«ã€é›¨ã‚’冒ã—ã¦ã€äº¬éƒ½ã®ç”ºã¸å¼·ç›—ã‚’åƒãã«æ€¥ã„ã§ã„ãŸã€‚ diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-hz-gb2312.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-hz-gb2312.txt deleted file mode 100644 index 5a142ce3..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-hz-gb2312.txt +++ /dev/null @@ -1,107 +0,0 @@ -This file was derived from -http://www.gutenberg.org/files/23864/23864-0.txt -after converting from Traditional Chinese to Simplified Chinese. --------- -~{J<<F5ZR;~} - -~{KoWST;#:1xU_#,9zV.4sJB#,K@IzV.5X#,4fMvV.5@#,2;?I2;2lR2!#~} - -~{9J>-V.RTNeJB#,P#V.RT<F#,6xKwFdGi#:R;T;5@#,6~T;Ll#,H}T;5X#,KDT;=+#,NeT;7(!#~} - -~{5@U_#,AnCqSkIOM,Rb#,?ISkV.K@#,?ISkV.Iz#,6x2;N7N#R2#;LlU_#,RuQt!":.Jn!"J1VFR2#;5XU_#,T6=|!"OURW!"9cOA!"K@IzR2#;=+U_#,VG!"PE!"HJ!"SB!"QOR2#;7(U_#,GzVF!"9Y5@!"VwSCR2!#724KNeU_#,=+D*2;NE#,V*V.U_J$#,2;V*U_2;J$!#~} - -~{9JP#V.RT<F#,6xKwFdGi#,T;#:VwJkSP5@#?=+JkSPD\#?Ll5XJk5C#?7(AnJkPP#?1x~}?~{JkG?#?J?WdJkA7#?IM7#JkCw#?NaRT4KV*J$8:RS!#~} - -~{=+L}Na<F#,SCV.1XJ$#,AtV.#;=+2;L}Na<F#,SCV.1X0\#,H%V.!#~} - -~{<F@{RTL}#,DK~}?~{V.JF#,RTWtFdMb!#JFU_#,Rr@{6xVFH(R2!#~} - -~{1xU_#,9n5@R2!#9JD\6xJ>V.2;D\#,SC6xJ>V.2;SC#,=|6xJ>V.T6#,T66xJ>V.=|!#@{6xSUV.#,BR6xH!V.#,J56x18V.#,G?6x1\V.#,E-6xDSV.#,106x=>V.#,X}6x@MV.#,GW6x@kV.#,9%FdN^18#,3vFd2;Rb!#4K1x<RV.J$#,2;?IOH4+R2!#~} - -~{7rN4U=6xCmKcJ$U_#,5CKc6`R2#;N4U=6xCmKc2;J$U_#,5CKcIYR2!#6`KcJ$#,IYKc2;J$#,6x?vN^Kc:u#!NaRT4K9[V.#,J$8:<{RS!#~} - -~{WwU=5Z6~~} - -~{KoWST;#:72SC1xV.7(#,3[35G'~}?~{#,8o35G'3K#,4x<WJ.Mr#,G'@o@!A8!#TrDZMbV.7Q#,1v?MV.SC#,=:FaV.2D#,35<WV.7n#,HU7QG'=p#,H;:sJ.MrV.J&>YRS!#~} - -~{FdSCU=R2#,9sJ$#,>CTr6[1x4lHq#,9%3GTrA&G|#,>C1)J&Tr9zSC2;Wc!#7r6[1x4lHq#,G|A&~}?~{;u#,TrVn:n3KFd1W6xFp#,KdSPVGU_#,2;D\IFFd:sRS!#9J1xNEW>KY#,N46CGIV.>CR2!#7r1x>C6x9z@{U_#,N4V.SPR2!#9J2;>!V*SC1xV.:&U_#,Tr2;D\>!V*SC1xV.@{R2!#~} - -~{IFSC1xU_#,R[2;TY<.#,A82;H}TX#,H!SCl69z#,RrA8l65P#,9J>|J3?IWcR2!#9zV.F6l6J&U_T6Jd#,T6JdTr0YPUF6#;=|l6J&U_9sBt#,9sBtTr0YPU=_#,2F=_Tr<1l6GpR[!#A&G|2F~}?~{#,VPT-DZPil6<R#,0YPUV.7Q#,J.H%FdF_#;9+<RV.7Q#,FF>|0UBm#,<WkPJ8es#,j*~}?~{C,~}?~{#,GpE#4s35#,J.H%FdAy!#~} - -~{9JVG=+NqJ3l65P#,J35PR;VS#,51Na6~J.VS#;]=8QR;J/#,51Na6~J.J/!#9JI15PU_#,E-R2#;H!5PV.@{U_#,;uR2!#9J35U=#,5C35J.3KRTIO#,IMFdOH5CU_#,6x8|Fdl:Fl!#35TS6x3KV.#,WdIF6xQxV.#,JGN=J$5P6xRfG?!#~} - -~{9J1x9sJ$#,2;9s>C!#9JV*1xV.=+#,CqV.K>C|!#9z<R02N#V.VwR2!#~} - -~{D19%5ZH}~} - -~{KoWST;#:72SC1xV.7(#,H+9z~}?~{IO#,FF9z4NV.#;H+>|~}?~{IO#,FF>|4NV.#;H+BC~}?~{IO#,FFBC4NV.#;H+Wd~}?~{IO#,FFWd4NV.#;H+Ni~}?~{IO#,FFNi4NV.!#JG9J0YU=0YJ$#,7GIFV.IFU_R2#;2;U=6xG|HKV.1x#,IFV.IFU_R2!#~} - -~{9JIO1x7%D1#,Fd4N7%=;#,Fd4N7%1x#,FdOB9%3G!#9%3GV.7(#,~}?~{2;5CRQ!#P^~}???~{#,>_FwP5#,H}TB6x:s3I#;>`~}?~{#,SVH}TB6x:sRQ!#=+2;J$Fd7^#,6xRO8=V.#,I1J?H}7VV.R;#,6x3G2;0NU_#,4K9%V.TVR2!#~} - -~{9JIFSC1xU_#,G|HKV.1x#,6x7GU=R2#,0NHKV.3G6x7G9%R2#,;YHKV.9z6x7G>CR2#,1XRTH+Uyl6LlOB#,9J1x2;6Y6x@{?IH+#,4KD19%V.7(R2!#~} - -~{9JSC1xV.7(#,J.TrN'V.#,NeTr9%V.#,16Tr7VV.#,5PTrD\U=V.#,IYTrD\LSV.#,2;HtTrD\1\V.!#9JP!5PV.<a#,4s5PV.G\R2!#~} - -~{7r=+U_#,9zV.8(R2!#8(V\Tr9z1XG?#,8(O6Tr9z1XHu!#9J>}V.KyRT;<l6>|U_H}#:2;V*>|V.2;?IRT=x6xN=V.=x#,2;V*>|V.2;?IRTMK6xN=V.MK#,JGN=wc>|#;2;V*H}>|V.JB#,6xM,H}>|V.U~#,Tr>|J?;sRS#;2;V*H}>|V.H(#,6xM,H}>|V.HN#,Tr>|J?RIRS!#H}>|<H;sGRRI#,TrVn:nV.DQVARS!#JGN=BR>|R}J$!#~} - -~{9JV*J$SPNe#:V*?IRTU=Sk2;?IRTU=U_#,J$!#J6~}?~{9QV.SCU_#,J$!#IOOBM,S{U_#,J$!#RTS]4}2;S]U_#,J$!#=+D\6x>}2;SyU_#,J$!#4KNeU_#,V*J$V.5@R2!#~} - -~{9JT;#:V*<:V*1K#,0YU=2;~}?~{#;2;V*1K6xV*<:#,R;J$R;8:#;2;V*1K2;V*<:#,C?U=1X0\!#~} - -~{>|PN5ZKD~} - -~{KoWST;#:NtV.IFU=U_#,OH~}?~{2;?IJ$#,RT4}5PV.?IJ$!#2;?IJ$TZ<:#,?IJ$TZ5P!#9JIFU=U_#,D\~}?~{2;?IJ$#,2;D\J95P1X?IJ$!#9JT;#:J$?IV*#,6x2;?I~}?~{!#~} - -~{2;?IJ$U_#,JXR2#;?IJ$U_#,9%R2!#JXTr2;Wc#,9%TrSP~}?~{!#IFJXU_#,2Xl6>E5XV.OB#,IF9%U_#,6/l6>ELlV.IO#,9JD\WT1#6xH+J$R2!#~} - -~{<{J$2;9}~}?~{HKV.KyV*#,7GIFV.IFU_R2#;U=J$6xLlOBT;IF#,7GIFV.IFU_R2!#9J>YGo:A2;~}?~{6`A&#,<{HUTB2;~}?~{CwD?#,NE@Wv*2;~}?~{4O6z!#9EV.IFU=U_#,J$l6RWJ$U_R2!#9JIFU=U_V.J$R2#,N^VGC{#,N^SB9&#,9JFdU=J$2;_/!#2;_/U_#,FdKy4k1XJ$#,J$RQ0\U_R2!#9JIFU=U_#,OHA"l62;0\V.5X#,6x2;J'5PV.0\R2!#JG9JJ$1xOHJ$#,6x:sGsU=#,0\1xOHU=6x:sGsJ$!#IFSC1xU_#,P^5@6x1#7(#,9JD\~}?~{J$0\V.U~!#~} - -~{1x7(#:R;T;6H#,6~T;A?#,H}T;J}#,KDT;3F#,NeT;J$!#5XIz6H#,6HIzA?#,A?IzJ}#,J}Iz3F#,3FIzJ$!#9JJ$1xHtRT~}?~{3F~}?~{#,0\1xHtRT~}?~{3F~}?~{!#J$U_V.U=#,Ht>v;}K.l6G'XpV.~}?~{U_#,PNR2!#~} - -~{1xJF5ZNe~} - -~{KoWST;#:72VN~}?~{HgVN9Q#,7VJ}JGR2#;67~}?~{Hg679Q#,PNC{JGR2#;H}>|V.~}?~{#,?IJ91XJ\5P6xN^0\U_#,FfU}JGR2#;1xV.Ky<S#,HgRT~}?~{M6BQU_#,PiJ5JGR2!#~} - -~{72U=U_#,RTU}:O#,RTFfJ$!#9JIF3vFfU_#,N^GnHgLl5X#,2;=_Hg=-:#!#VU6x84J<#,HUTBJGR2!#K@6x~}?~{Iz#,KDJ1JGR2!#Iy2;9}Ne#,NeIyV.1d#,2;?IJ$L}R2#;I+2;9}Ne#,NeI+V.1d#,2;?IJ$9[R2#;N62;9}Ne#,NeN6V.1d#,2;?IJ$3"R2#;U=JF#,2;9}FfU}#,FfU}V.1d#,2;?IJ$GnR2!#FfU}O`Iz#,HgQ-;7V.N^6K#,JlD\GnV.TU#?~} - -~{<$K.V.<2#,VAl6F/J/U_#,JFR2#;~}?~{DqV.<2#,VAl6;YU[U_#,=ZR2!#JG9JIFU=U_#,FdJFOU#,Fd=Z6L!#JFHgUEes#,=ZHg7";z!#~} - -~{7W7W~}??~{#,67BR6x2;?IBRR2#;;k;kcgcg#,PNT26x2;?I0\R2!#BRIzl6VN#,GSIzl6SB#,HuIzl6G?!#VNBR#,J}R2#;SBGS#,JFR2#;G?Hu#,PNR2!#9JIF6/5PU_#,PNV.#,5P1X4SV.#;ShV.#,5P1XH!V.!#RT@{6/V.#,RTWd4}V.!#~} - -~{9JIFU=U_#,GsV.l6JF#,2;Tpl6HK#;9JD\TqHK6xHNJF!#HNJFU_#,FdU=HKR2#,HgW*D>J/!#D>J/V.PT#,02Tr>2#,N#Tr6/#,7=TrV9#,T2TrPP!#9JIFU=HKV.JF#,HgW*T2J/l6G'XpV.I=U_#,JFR2!#~} - -~{PiJ55ZAy~} - -~{KoWST;#:72OH4&U=5X6x4}5PU_X}#,:s4&U=5X6xGwU=U_@M!#~} - -~{9JIFU=U_#,VBHK6x2;VBl6HK!#D\J95PHKWTVAU_#,@{V.R2#;D\J95PHK2;5CVAU_#,:&V.R2!#9J5PX}D\@MV.#,1%D\<"V.#,02D\6/V.!#3vFdKy1XGw#,GwFdKy2;Rb!#PPG'@o6x2;@MU_#,PPl6N^HKV.5XR2#;9%6x1XH!U_#,9%FdKy2;JXR2!#JX6x1X9LU_#,JXFdKy2;9%R2!#~} - -~{9JIF9%U_#,5P2;V*FdKyJX#;IFJXU_#,5P2;V*FdKy9%!#N":uN":u#,VAl6N^PN#;Iq:uIq:u#,VAl6N^Iy#,9JD\~}?~{5PV.K>C|!#=x6x2;?ISyU_#,3eFdPiR2#;MK6x2;?IW7U_#,KY6x2;?I<0R2!#9JNRS{U=#,5PKd8_@]In95#,2;5C2;SkNRU=U_#,9%FdKy1X>HR2#;NR2;S{U=#,Kd;-5X6xJXV.#,5P2;5CSkNRU=U_#,9TFdKyV.R2!#9JPNHK6xNRN^PN#,TrNRW(6x5P7V!#NRW(~}?~{R;#,5P7V~}?~{J.#,JGRTJ.9%FdR;R2!#TrNR~}?~{5P9Q#,D\RT~}?~{;w9QU_#,TrNaV.KySkU=U_T<RS!#NaKySkU=V.5X2;?IV*#,2;?IV*Tr5PKy18U_6`#,5PKy18U_6`#,TrNaKySkU=U_9QRS!#9J18G0Tr:s9Q#,18:sTrG09Q#,18WsTrSR9Q#,18SRTrWs9Q#,N^Ky2;18#,TrN^Ky2;9Q!#9QU_#,18HKU_R2#;~}?~{U_#,J9HK18<:U_R2!#9JV*U=V.5X#,V*U=V.HU#,Tr?IG'@o6x;aU=#;2;V*U=V.5X#,2;V*U=HU#,TrWs2;D\>HSR#,SR2;D\>HWs#,G02;D\>H:s#,:s2;D\>HG0#,6x?vT6U_J}J.@o#,=|U_J}@o:u#!RTNa6HV.#,T=HKV.1xKd6`#,R`^IRfl6J$TU#!9JT;#:J$?I~}?~{R2!#5PKd~}?~{#,?IJ9N^67!#9J2_V.6xV*5CJ'V.<F#,:rV.6xV*6/>2V.@m#,PNV.6xV*K@IzV.5X#,=GV.6xV*SP~}?~{2;WcV.4&!#9JPN1xV.<+#,VAl6N^PN!#N^PNTrIn<d2;D\?z#,VGU_2;D\D1!#RrPN6x4kJ$l6~}?~{#,~}?~{2;D\V*!#HK=TV*NRKyRTJ$V.PN#,6xD*V*NaKyRTVFJ$V.PN!#9JFdU=J$2;~}?~{#,6xS&PNl6N^Gn!#7r1xPNOsK.#,K.V.PP1\8_6xGwOB#,1xV.PN1\J56x;wPi#;K.Rr5X6xVFAw#,1xRr5P6xVFJ$!#9J1xN^3#JF#,K.N^3#PN!#D\Rr5P1d;/6xH!J$U_#,N=V.Iq!#9JNePPN^3#J$#,KDJ1N^3#N;#,HUSP6L3$#,TBSPK@Iz!#~} - -~{>|Uy5ZF_~} - -~{KoWST;#:~} ~{72SC1xV.7(#,=+J\C|l6>}#,:O>|>[~}?~{#,=;:M6xIa#,D*DQl6>|Uy!#>|UyV.DQU_#,RTSX~}?~{V1#,RT;<~}?~{@{!#9JSXFdM>#,6xSUV.RT@{#,:sHK7"#,OHHKVA#,4KV*SXV1V.<FU_R2!#>|Uy~}?~{@{#,>|Uy~}?~{N#!#>Y>|6xUy@{Tr2;<0#,N/>|6xUy@{Tr~}?~{VX>h!#JG9J~}?~{<W6xGw#,HUR92;4&#,165@<fPP#,0Y~}?~{6xUy@{#,TrG\H}=+>|#,>"U_OH#,F#U_:s#,Fd7(J.R;6xVA#;NeJ.@o6xUy@{#,TrujIO=+>|#,Fd7(0kVA#;H}J.@o6xUy@{#,TrH}7VV.6~VA!#JG9J>|N^~}?~{VXTrMv#,N^A8J3TrMv#,N^N/;}TrMv!#9J2;V*Vn:nV.D1U_#,2;D\T%=;#;2;V*I=AV!"OUWh!">ZTsV.PNU_#,2;D\PP>|#;2;SCOg5<U_#,2;D\5C5X@{!#9J1xRTU)A"#,RT@{6/#,RT7V:M~}?~{1dU_R2!#9JFd<2Hg7g#,FdPlHgAV#,GVBSHg;p#,2;6/HgI=#,DQV*HgRu#,6/Hg@WUp!#BSOg7V~}?~{#,@*5X7V@{#,P|H(6x6/!#OHV*SXV1V.<FU_J$#,4K>|UyV.7(R2!#!6>|U~!7T;#:!0QT2;O`NE#,9J~}?~{V.=p9D#;JS2;O`<{#,9J~}?~{V.l:Fl!#!17r=p9Dl:FlU_#,KyRTR;CqV.6zD?R2!#Cq<HW(R;#,TrSBU_2;5C6@=x#,GSU_2;5C6@MK#,4KSC~}?~{V.7(R2!#9JR9U=6`=p9D#,VgU=6`l:Fl#,KyRT1dHKV.6zD?R2!#H}>|?I6aFx#,=+>|?I6aPD!#JG9J3/FxHq#,VgFx6h#,D:Fx9i!#IFSC1xU_#,1\FdHqFx#,;wFd6h9i#,4KVNFxU_R2!#RTVN4}BR#,RT>24};)#,4KVNPDU_R2!#RT=|4}T6#,RTX}4}@M#,RT1%4}<"#,4KVNA&U_R2!#N^Q{U}U}V.Fl#,N^;wLCLCV.3B#,4KVN1dU_R2!#9JSC1xV.7(#,8_AjNpOr#,13GpNpDf#,Qp11Np4S#,HqWdNp9%#,6|1xNpJ3#,9iJ&Np6t#,N'J&RE~}?~{#,Gn?\NpFH#,4KSC1xV.7(R2!#~} - -~{>E1d5Z0K~} - -~{KoWST;#:~} ~{72SC1xV.7(#,=+J\C|l6>}#,:O>|>[:O!#7:5XN^Ia#,ai5X:O=;#,>x5XN^At#,N'5XTrD1#,K@5XTrU=#,M>SPKy2;SI#,>|SPKy2;;w#,3GSPKy2;9%#,5XSPKy2;Uy#,>}C|SPKy2;J\!#9J=+M(l6>E1dV.@{U_#,V*SC1xRS#;=+2;M(>E1dV.@{#,KdV*5XPN#,2;D\5C5XV.@{RS#;VN1x2;V*>E1dV.Ju#,KdV*Ne@{#,2;D\5CHKV.SCRS!#JG9JVGU_V.BG#,1XTSl6@{:&#,TSl6@{6xNq?IPER2#,TSl6:&6x;<?I=bR2!#JG9JG|Vn:nU_RT:&#,R[Vn:nU_RTR5#,GwVn:nU_RT@{!#9JSC1xV.7(#,N^JQFd2;@4#,JQNaSPRT4}V.#;N^JQFd2;9%#,JQNaSPKy2;?I9%R2!#9J=+SPNeN##,1XK@?II1#,1XIz?IB2#,7^KY?INj#,A.=`?IHh#,0.Cq?I73!#724KNeU_#,=+V.9}R2#,SC1xV.TVR2!#82>|I1=+#,1XRTNeN##,2;?I2;2lR2!#~} - -~{PP>|5Z>E~} - -~{KoWST;#:724&>|O`5P#,>xI=R@~}?~{#,JSIz4&8_#,U=B!N^5G#,4K4&I=V.>|R2!#>xK.1XT6K.#,?M>xK.6x@4#,NpS-V.l6K.DZ#,An0k6I6x;wV.@{#,S{U=U_#,N^8=l6K.6xS-?M#,JSIz4&8_#,N^S-K.Aw#,4K4&K.IOV.>|R2!#>x3bTs#,N(X=H%N^At#,Ht=;>|l63bTsV.VP#,1XR@K.2]6x13~}?~{Jw#,4K4&3bTsV.>|R2!#F=B=4&RW#,SR138_#,G0K@:sIz#,4K4&F=B=V.>|R2!#724KKD>|V.@{#,;F5[V.KyRTJ$KD5[R2!#72>|:C8_6x6qOB#,9sQt6x<zRu#,QxIz6x4&J5#,>|N^0Y<2#,JGN=1XJ$!#GpAj5L7@#,1X4&FdQt6xSR13V.#,4K1xV.@{#,5XV.VzR2!#IOSjK.AwVA#,S{IfU_#,4}Fd6(R2!#725XSP>x='!"Ll>.!"Ll@N!"LlB^!"LlO]!"LlO6#,1XX=H%V.#,Np=|R2!#NaT6V.#,5P=|V.#;NaS-V.#,5P13V.!#>|ETSPOUWh!"dj>.!"]s]g!"P!AV!"~}??~{U_#,1X=w82KwV.#,4K7|~}?~{V.Ky4&R2!#5P=|6x>2U_#,JQFdOUR2#;T66xLtU=U_#,S{HKV.=xR2#;FdKy>SRWU_#,@{R2#;~}?~{Jw6/U_#,@4R2#;~}?~{2]6`UOU_#,RIR2#;DqFpU_#,7|R2#;J^:'U_#,82R2#;3>8_6xHqU_#,35@4R2#;106x9cU_#,M=@4R2#;I"6xLu4oU_#,iT~}?~{R2#;IY6xMy@4U_#,S*>|R2#;4G106x18U_#,=xR2#;4GG?6x=xG}U_#,MKR2#;Ga35OH3v>SFd2`U_#,3BR2#;N^T<6xGk:MU_#,D1R2#;1<W_6x3B1xU_#,FZR2#;0k=x0kMKU_#,SUR2#;UH6xA"U_#,<"R2#;<36xOHR{U_#,?JR2#;<{@{6x2;=xU_#,@MR2#;Dq</U_#,PiR2#;R9:tU_#,?VR2#;>|HEU_#,=+2;VXR2#;l:Fl6/U_#,BRR2#;@tE-U_#,>kR2#;I1BmHbJ3U_#,>|N^A8R2#;P|~}?~{2;75FdIaU_#,Gn?\R2#;W;W;tbtb#,PlSkHKQTU_#,J'~}?~{R2#;J}IMU_#,>=R2#;J}7#U_#,@'R2#;OH1)6x:sN7Fd~}?~{U_#,2;>+V.VAR2#;@4N/P;U_#,S{P]O"R2!#1xE-6xO`S-#,>C6x2;:O#,SV2;O`H%#,1X=w2lV.!#1x7G9sRf6`R2#,N)N^Nd=x#,WcRT2"A&AO5PH!HK6xRQ!#7rN)N^BG6xRW5PU_#,1XG\l6HK!#WdN4GW6x7#V.#,Tr2;7~#,2;7~TrDQSC!#WdRQGW8=6x7#2;PP#,Tr2;?ISC!#9J:OV.RTND#,FkV.RTNd#,JGN=1XH!!#AnKXPPRT=LFdCq#,TrCq7~#;AnKX2;PPRT=LFdCq#,TrCq2;7~!#AnKXPPU_#,Sk~}?~{O`5CR2!#~} - -~{5XPN5ZJ.~} - -~{KoWST;#:5XPNSPM(U_!"SP~}?~{U_!"SPV'U_!"SP0/U_!"SPOUU_!"SPT6U_!#NR?IRTMy#,1K?IRT@4#,T;M(!#M(PNU_#,OH>S8_Qt#,@{A85@#,RTU=Tr@{!#?IRTMy#,DQRT75#,T;~}?~{!#~}?~{PNU_#,5PN^18#,3v6xJ$V.#,5PHtSP18#,3v6x2;J$#,DQRT75#,2;@{!#NR3v6x2;@{#,1K3v6x2;@{#,T;V'!#V'PNU_#,5PKd@{NR#,NRN^3vR2#,R}6xH%V.#,An5P0k3v6x;wV.@{!#0/PNU_#,NROH>SV.#,1XS/V.RT4}5P!#Ht5POH>SV.#,S/6xNp4S#,2;S/6x4SV.!#OUPNU_#,NROH>SV.#,1X>S8_QtRT4}5P#;Ht5POH>SV.#,R}6xH%V.#,Np4SR2!#T6PNU_#,JF>yDQRTLtU=#,U=6x2;@{!#724KAyU_#,5XV.5@R2#,=+V.VAHN#,2;?I2;2lR2!#721xSPW_U_!"SP3[U_!"SPO]U_!"SP1@U_!"SPBRU_!"SP11U_!#724KAyU_#,7GLl5XV.TV#,=+V.9}R2!#7rJF>y#,RTR;;wJ.#,T;W_#;WdG?@tHu#,T;3[#;@tG?WdHu#,T;O]#;4s@tE-6x2;7~#,Sv5P~}?~{6xWTU=#,=+2;V*FdD\#,T;1@#;=+Hu2;QO#,=L5@2;Cw#,@tWdN^3##,3B1xW]:a#,T;BR#;=+2;D\AO5P#,RTIY:O~}?~{#,RTHu;wG?#,1xN^Q!7f#,T;11!#724KAyU_#,0\V.5@R2#,=+V.VAHN#,2;?I2;2lR2!#7r5XPNU_#,1xV.VzR2!#AO5PVFJ$#,<FOU0/T6=|#,IO=+V.5@R2!#V*4K6xSCU=U_1XJ$#,2;V*4K6xSCU=U_1X0\!#9JU=5@1XJ$#,VwT;N^U=#,1XU=?IR2#;U=5@2;J$#,VwT;1XU=#,N^U=?IR2!#9J=x2;GsC{#,MK2;1\Wo#,N(CqJG1##,6x@{l6Vw#,9zV.1&R2!#JSWdHgS$6y#,9J?IRTSkV.80InO*#;JSWdHg0.WS#,9J?ISkV.>cK@!#:q6x2;D\J9#,0.6x2;D\An#,BR6x2;D\VN#,F)Ht=>WS#,2;?ISCR2!#V*NaWdV.?IRT;w#,6x2;V*5PV.2;?I;w#,J$V.0kR2#;V*5PV.?I;w#,6x2;V*NaWdV.2;?IRT;w#,J$V.0kR2#;V*5PV.?I;w#,V*NaWdV.?IRT;w#,6x2;V*5XPNV.2;?IRTU=#,J$V.0kR2!#9JV*1xU_#,6/6x2;CT#,>Y6x2;Gn!#9JT;#:V*1KV*<:#,J$DK2;4y#;V*LlV*5X#,J$DK?IH+!#~} - -~{>E5X5ZJ.R;~} - -~{KoWST;#:SC1xV.7(#,SPI"5X#,SPGa5X#,SPUy5X#,SP=;5X#,SPai5X#,SPVX5X#,SP7:5X#,SPN'5X#,SPK@5X!#Vn:nWTU=Fd5XU_#,~}?~{I"5X#;HkHKV.5X2;InU_#,~}?~{Ga5X#;NR5CR`@{#,1K5CR`@{U_#,~}?~{Uy5X#;NR?IRTMy#,1K?IRT@4U_#,~}?~{=;5X#;Vn:nV.5XH}Jt#,OHVA6x5CLlOB~}?~{U_#,~}?~{ai5X#;HkHKV.5XIn#,133GRX6`U_#,~}?~{VX5X#;I=AV!"OUWh!">ZTs#,72DQPPV.5@U_#,~}?~{7:5X#;KySIHkU_0/#,Ky4S9iU_SX#,1K9Q?IRT;wNaV.~}?~{U_#,~}?~{N'5X#;<2U=Tr4f#,2;<2U=TrMvU_#,~}?~{K@5X!#JG9JI"5XTrN^U=#,Ga5XTrN^V9#,Uy5XTrN^9%#,=;5XTrN^>x#,ai5XTr:O=;#,VX5XTrBS#,7:5XTrPP#,N'5XTrD1#,K@5XTrU=!#9EV.IFSC1xU_#,D\J95PHKG0:s2;O`<0#,~}?~{9Q2;O`JQ#,9s<z2;O`>H#,IOOB2;O`JU#,Wd@k6x2;</#,1x:O6x2;Fk!#:Ol6@{6x6/#,2;:Ol6@{6xV9!#8RNJ5P~}?~{6xU{=+@4#,4}V.Ht:NT;#:OH6aFdKy0.TrL}RS!#1xV.GiVwKY#,3KHKV.2;<0!#SI2;S]V.5@#,9%FdKy2;=dR2!#72~}?~{?MV.5@#,InHkTrW(!#VwHK2;?K#,BSl6HDR0#,H}>|WcJ3!#=wQx6xNp@M#,2"Fx;}A&#,TK1x<FD1#,~}?~{2;?I2b!#M6V.N^KyMy#,K@GR2;11!#K@QI2;5C#,J?HK>!A&!#1xJ?IuO]Tr2;>e#,N^KyMyTr9L#,InHkTr>P#,2;5CRQTr67!#JG9JFd1x2;P^6x=d#,2;Gs6x5C#,2;T<6xGW#,2;An6xPE#,={OiH%RI#,VAK@N^KyV.!#NaJ?N^~}?~{2F#,7G6q;uR2#;N^~}?~{C|#,7G6qJYR2!#An7"V.HU#,J?WdWxU_LiU4=s#,YHNTU_Li=;RC#,M6V.N^KyMy#,Vn!"~}?~{V.SBR2!#9JIFSC1xU_#,F)HgBJH;!#BJH;U_#,3#I=V.I_R2!#;wFdJWTrN2VA#,;wFdN2TrJWVA#,;wFdVPTrJWN2>cVA!#8RNJ1x?IJ9HgBJH;:u#?T;?I!#7rNbHKSkT=HKO`6qR2#,51FdM,V[6x<C6xSv7g#,FdO`>HR2HgWsSRJV!#JG9J7=BmBqBV#,N4WcJQR2#;FkSBHgR;#,U~V.5@R2#;8UHa=T5C#,5XV.@mR2!#9JIFSC1xU_#,P/JVHtJ9R;HK#,2;5CRQR2!#=+>|V.JB#,>2RTSD#,U}RTVN#,D\S^J?WdV.6zD?#,J9V.N^V*#;RWFdJB#,8oFdD1#,J9HKN^J6#;RWFd>S#,SXFdM>#,J9Cq2;5CBG!#K'SkV.FZ#,Hg5G8_6xH%FdL]#;K'SkV.InHkVn:nV.5X#,6x7"Fd;z!#HtG}H:Qr#,G}6xMy#,G}6x@4#,D*V*KyV.!#>[H}>|V.~}?~{#,M6V.l6OU#,4KN==+>|V.JBR2!#>E5XV.1d#,G|IlV.A&#,HKGiV.@m#,2;?I2;2lR2!#72~}?~{?MV.5@#,InTrW(#,G3TrI"!#H%9zT=>36xJ&U_#,>x5XR2#;KD39U_#,ai5XR2#;HkInU_#,VX5XR2#;HkG3U_#,Ga5XR2#;139LG00/U_#,N'5XR2#;N^KyMyU_#,K@5XR2!#JG9JI"5XNa=+R;FdV>#,Ga5XNa=+J9V.Jt#,Uy5XNa=+GwFd:s#,=;5XNa=+=wFdJX#,=;5XNa=+9LFd=a#,ai5XNa=+=wFdJQ#,VX5XNa=+<LFdJ3#,7:5XNa=+=xFdM>#,N'5XNa=+H{Fd~}?~{#,K@5XNa=+J>V.RT2;;n!#9J1xV.Gi#:N'TrSy#,2;5CRQTr67#,9}Tr4S!#JG9J2;V*Vn:nV.D1U_#,2;D\T$=;#;2;V*I=AV!"OUWh!">ZTsV.PNU_#,2;D\PP>|#;2;SCOg5<#,2;D\5C5X@{!#KDNeU_#,R;2;V*#,7G0TMuV.1xR2!#7r0TMuV.1x#,7%4s9z#,TrFd~}?~{2;5C>[#;M~<Sl65P#,TrFd=;2;5C:O!#JG9J2;UyLlOBV.=;#,2;QxLlOBV.H(#,PE<:V.K=#,M~<Sl65P#,TrFd3G?I0N#,Fd9z?IcD!#J)N^7(V.IM#,P|N^U~V.An!#78H}>|V.~}?~{#,HtJ9R;HK!#78V.RTJB#,Np8fRTQT#;78V.RT:&#,Np8fRT@{!#M6V.Mv5XH;:s4f#,O]V.K@5XH;:sIz!#7r~}?~{O]l6:&#,H;:sD\~}?~{J$0\!#9J~}?~{1xV.JB#,TZK3Oj5PV.Rb#,2"5PR;Or#,G'@oI1=+#,JGN=GID\3IJB!#JG9JU~>YV.HU#,RD9XU[7{#,N^M(FdJ9#,@wl6@HCmV.IO#,RTVoFdJB!#5PHK?*~}?~{#,1XX=HkV.#,OHFdKy0.#,N"SkV.FZ#,<yD+Kf5P#,RT>vU=JB!#JG9JJ<Hg4&E.#,5PHK?*;'#;:sHgMQMC#,5P2;<0>\!#~} - -~{;p9%5ZJ.6~~} - -~{KoWST;#:72;p9%SPNe#:R;T;;pHK#,6~T;;p;}#,H}T;;p~}?~{#,KDT;;p?b#,NeT;;p6S!#PP;p1XSPRr#,Rr1XKX>_!#7";pSPJ1#,Fp;pSPHU!#J1U_#,LlV.ToR2!#HUU_#,TBTZ;~!"1Z!"Rm!"~}?~{R2!#724KKDK^U_#,7gFpV.HUR2!#72;p9%#,1XRrNe;pV.1d6xS&V.#:;p7"l6DZ#,TrTgS&V.l6Mb#;;p7"6xFd1x>2U_#,4}6xNp9%#,<+Fd;pA&#,?I4S6x4SV.#,2;?I4STrIO!#;p?I7"l6Mb#,N^4}l6DZ#,RTJ17"V.#,;p7"IO7g#,N^9%OB7g#,Vg7g>C#,R97gV9!#72>|1XV*Ne;pV.1d#,RTJ}JXV.!#9JRT;pWt9%U_Cw#,RTK.Wt9%U_G?!#K.?IRT>x#,2;?IRT6a!#7rU=J$9%H!6x2;6hFd9&U_PW#,C|T;!07QAt!1!#9JT;#:CwVwBGV.#,A<=+6hV.#,7G@{2;6/#,7G5C2;SC#,7GN#2;U=!#Vw2;?IRTE-6xPKJ&#,=+2;?IRT~}?~{6x9%U=!#:Ol6@{6x6/#,2;:Ol6@{6xIO!#E-?IRT84O2#,~}?~{?IRT84K5#,Mv9z2;?IRT844f#,K@U_2;?IRT84Iz!#9JCwVwIwV.#,A<=+>/V.!#4K029zH+>|V.5@R2!#~} - -~{SC<d5ZJ.H}~} - -~{KoWST;#:~} ~{72PKJ&J.Mr#,3vUwG'@o#,0YPUV.7Q#,9+<RV.7n#,HU7QG'=p#,DZMbI'6/#,5!l65@B7#,2;5C2YJBU_#,F_J.Mr<R!#O`JXJ}Dj#,RTUyR;HUV.J$#,6x0.>tB;0Y=p#,2;V*5PV.GiU_#,2;HJV.VAR2#,7GCqV.=+R2#,7GVwV.WtR2#,7GJ$V.VwR2!#9JCw>}OM=+KyRT6/6xJ$HK#,3I9&3vl6~}?~{U_#,OHV*R2!#OHV*U_#,2;?IH!l69mIq#,2;?IOsl6JB#,2;?IQil66H#,1XH!l6HK#,V*5PV.GiU_R2!#9JSC<dSPNe#:SPRr<d#,SPDZ<d#,SP74<d#,SPK@<d#,SPIz<d!#Ne<d>cFp#,D*V*Fd5@#,JGN=Iq<M#,HK>}V.1&R2!#Og<dU_#,RrFdOgHK6xSCV.#;DZ<dU_#,RrFd9YHK6xSCV.#;74<dU_#,RrFd5P<d6xSCV.#;K@<dU_#,~}??~{JBl6Mb#,AnNaNEV*V.6x4+l65P<dR2#;Iz<dU_#,741(R2!#9JH}>|V.JB#,D*GWl6<d#,IMD*:ql6<d#,JBD*C\l6<d#,7GJ%OM2;D\SC<d#,7GHJRe2;D\J9<d#,7GN"Cn2;D\5C<dV.J5!#N"TUN"TU#!N^Ky2;SC<dR2!#<dJBN47"6xOHNEU_#,<dSkKy8fU_<fK@!#72>|V.KyS{;w#,3GV.KyS{9%#,HKV.KyS{I1#,1XOHV*FdJX=+!"WsSR!"~}?~{U_!"CEU_!"IaHKV.PUC{#,AnNa<d1XKwV*V.!#5P<dV.@4<dNRU_#,Rr6x@{V.#,5<6xIaV.#,9J74<d?I5C6xSCR2#;RrJG6xV*V.#,9JOg<d!"DZ<d?I5C6xJ9R2#;RrJG6xV*V.#,9JK@<d~}??~{JB#,?IJ98f5P#;RrJG6xV*V.#,9JIz<d?IJ9HgFZ!#Ne<dV.JB#,Vw1XV*V.#,V*V.1XTZl674<d#,9J74<d2;?I2;:qR2!#NtRsV.PKR2#,RAV?TZOD#;V\V.PKR2#,B@Q@TZRs!#9JCw>}OM=+#,D\RTIOVG~}?~{<dU_#,1X3I4s9&!#4K1xV.R*#,H}>|V.KyJQ6x6/R2!#~} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-utf-8.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-utf-8.txt deleted file mode 100644 index e15fe5c1..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-utf-8.txt +++ /dev/null @@ -1,107 +0,0 @@ -This file was derived from -http://www.gutenberg.org/files/23864/23864-0.txt -after converting from Traditional Chinese to Simplified Chinese. --------- -始计第一 - -å­™å­æ›°ï¼šå…µè€…,国之大事,死生之地,存亡之é“,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚ - -æ•…ç»ä¹‹ä»¥äº”事,校之以计,而索其情:一曰é“,二曰天,三曰地,四曰将,五曰法。 - -é“者,令民与上åŒæ„,å¯ä¸Žä¹‹æ­»ï¼Œå¯ä¸Žä¹‹ç”Ÿï¼Œè€Œä¸ç•å±ä¹Ÿï¼›å¤©è€…,阴阳ã€å¯’æš‘ã€æ—¶åˆ¶ä¹Ÿï¼›åœ°è€…,远近ã€é™©æ˜“ã€å¹¿ç‹­ã€æ­»ç”Ÿä¹Ÿï¼›å°†è€…,智ã€ä¿¡ã€ä»ã€å‹‡ã€ä¸¥ä¹Ÿï¼›æ³•è€…,曲制ã€å®˜é“ã€ä¸»ç”¨ä¹Ÿã€‚凡此五者,将莫ä¸é—»ï¼ŒçŸ¥ä¹‹è€…胜,ä¸çŸ¥è€…ä¸èƒœã€‚ - -故校之以计,而索其情,曰:主孰有é“?将孰有能?天地孰得?法令孰行?兵?孰强?士å’孰练?èµç½šå­°æ˜Žï¼Ÿå¾ä»¥æ­¤çŸ¥èƒœè´ŸçŸ£ã€‚ - -å°†å¬å¾è®¡ï¼Œç”¨ä¹‹å¿…胜,留之;将ä¸å¬å¾è®¡ï¼Œç”¨ä¹‹å¿…败,去之。 - -计利以å¬ï¼Œä¹ƒ?之势,以ä½å…¶å¤–。势者,因利而制æƒä¹Ÿã€‚ - -兵者,诡é“也。故能而示之ä¸èƒ½ï¼Œç”¨è€Œç¤ºä¹‹ä¸ç”¨ï¼Œè¿‘而示之远,远而示之近。利而诱之,乱而å–之,实而备之,强而é¿ä¹‹ï¼Œæ€’而挠之,å‘而骄之,佚而劳之,亲而离之,攻其无备,出其ä¸æ„。此兵家之胜,ä¸å¯å…ˆä¼ ä¹Ÿã€‚ - -夫未战而庙算胜者,得算多也;未战而庙算ä¸èƒœè€…,得算少也。多算胜,少算ä¸èƒœï¼Œè€Œå†µæ— ç®—乎ï¼å¾ä»¥æ­¤è§‚之,胜负è§çŸ£ã€‚ - -作战第二 - -å­™å­æ›°ï¼šå‡¡ç”¨å…µä¹‹æ³•ï¼Œé©°è½¦åƒ?,é©è½¦åƒä¹˜ï¼Œå¸¦ç”²å万,åƒé‡Œé¦ˆç²®ã€‚则内外之费,宾客之用,胶漆之æ,车甲之奉,日费åƒé‡‘,然åŽå万之师举矣。 - -其用战也,贵胜,久则é’兵挫é”,攻城则力屈,久暴师则国用ä¸è¶³ã€‚夫é’兵挫é”,屈力?货,则诸侯乘其弊而起,虽有智者,ä¸èƒ½å–„å…¶åŽçŸ£ã€‚故兵闻拙速,未ç¹å·§ä¹‹ä¹…也。夫兵久而国利者,未之有也。故ä¸å°½çŸ¥ç”¨å…µä¹‹å®³è€…,则ä¸èƒ½å°½çŸ¥ç”¨å…µä¹‹åˆ©ä¹Ÿã€‚ - -善用兵者,役ä¸å†ç±ï¼Œç²®ä¸ä¸‰è½½ï¼Œå–用於国,因粮於敌,故军食å¯è¶³ä¹Ÿã€‚国之贫於师者远输,远输则百姓贫;近於师者贵å–,贵å–则百姓竭,财竭则急於丘役。力屈财?,中原内虚於家,百姓之费,å去其七;公家之费,破军罢马,甲胄矢弩,戟?矛?,丘牛大车,å去其六。 - -故智将务食於敌,食敌一钟,当å¾äºŒåé’Ÿï¼›è秆一石,当å¾äºŒå石。故æ€æ•Œè€…,怒也;å–敌之利者,货也。故车战,得车å乘以上,èµå…¶å…ˆå¾—者,而更其旌旗。车æ‚而乘之,å’善而养之,是谓胜敌而益强。 - -故兵贵胜,ä¸è´µä¹…。故知兵之将,民之å¸å‘½ã€‚国家安å±ä¹‹ä¸»ä¹Ÿã€‚ - -谋攻第三 - -å­™å­æ›°ï¼šå‡¡ç”¨å…µä¹‹æ³•ï¼Œå…¨å›½?上,破国次之;全军?上,破军次之;全旅?上,破旅次之;全å’?上,破å’次之;全ä¼?上,破ä¼æ¬¡ä¹‹ã€‚是故百战百胜,éžå–„之善者也;ä¸æˆ˜è€Œå±ˆäººä¹‹å…µï¼Œå–„之善者也。 - -故上兵ä¼è°‹ï¼Œå…¶æ¬¡ä¼äº¤ï¼Œå…¶æ¬¡ä¼å…µï¼Œå…¶ä¸‹æ”»åŸŽã€‚攻城之法,?ä¸å¾—已。修???,具器械,三月而åŽæˆï¼›è·?,åˆä¸‰æœˆè€ŒåŽå·²ã€‚å°†ä¸èƒœå…¶å¿¿ï¼Œè€Œèšé™„之,æ€å£«ä¸‰åˆ†ä¹‹ä¸€ï¼Œè€ŒåŸŽä¸æ‹”者,此攻之ç¾ä¹Ÿã€‚ - -故善用兵者,屈人之兵,而éžæˆ˜ä¹Ÿï¼Œæ‹”人之城而éžæ”»ä¹Ÿï¼Œæ¯äººä¹‹å›½è€Œéžä¹…也,必以全争於天下,故兵ä¸é¡¿è€Œåˆ©å¯å…¨ï¼Œæ­¤è°‹æ”»ä¹‹æ³•ä¹Ÿã€‚ - -故用兵之法,å则围之,五则攻之,å€åˆ™åˆ†ä¹‹ï¼Œæ•Œåˆ™èƒ½æˆ˜ä¹‹ï¼Œå°‘则能逃之,ä¸è‹¥åˆ™èƒ½é¿ä¹‹ã€‚æ•…å°æ•Œä¹‹åšï¼Œå¤§æ•Œä¹‹æ“’也。 - -夫将者,国之辅也。辅周则国必强,辅隙则国必弱。故å›ä¹‹æ‰€ä»¥æ‚£æ–¼å†›è€…三:ä¸çŸ¥å†›ä¹‹ä¸å¯ä»¥è¿›è€Œè°“之进,ä¸çŸ¥å†›ä¹‹ä¸å¯ä»¥é€€è€Œè°“之退,是谓縻军;ä¸çŸ¥ä¸‰å†›ä¹‹äº‹ï¼Œè€ŒåŒä¸‰å†›ä¹‹æ”¿ï¼Œåˆ™å†›å£«æƒ‘矣;ä¸çŸ¥ä¸‰å†›ä¹‹æƒï¼Œè€ŒåŒä¸‰å†›ä¹‹ä»»ï¼Œåˆ™å†›å£«ç–‘矣。三军既惑且疑,则诸侯之难至矣。是谓乱军引胜。 - -故知胜有五:知å¯ä»¥æˆ˜ä¸Žä¸å¯ä»¥æˆ˜è€…,胜。识?寡之用者,胜。上下åŒæ¬²è€…,胜。以虞待ä¸è™žè€…,胜。将能而å›ä¸å¾¡è€…,胜。此五者,知胜之é“也。 - -故曰:知己知彼,百战ä¸?ï¼›ä¸çŸ¥å½¼è€ŒçŸ¥å·±ï¼Œä¸€èƒœä¸€è´Ÿï¼›ä¸çŸ¥å½¼ä¸çŸ¥å·±ï¼Œæ¯æˆ˜å¿…败。 - -军形第四 - -å­™å­æ›°ï¼šæ˜”之善战者,先?ä¸å¯èƒœï¼Œä»¥å¾…敌之å¯èƒœã€‚ä¸å¯èƒœåœ¨å·±ï¼Œå¯èƒœåœ¨æ•Œã€‚故善战者,能?ä¸å¯èƒœï¼Œä¸èƒ½ä½¿æ•Œå¿…å¯èƒœã€‚故曰:胜å¯çŸ¥ï¼Œè€Œä¸å¯?。 - -ä¸å¯èƒœè€…,守也;å¯èƒœè€…,攻也。守则ä¸è¶³ï¼Œæ”»åˆ™æœ‰?。善守者,è—æ–¼ä¹åœ°ä¹‹ä¸‹ï¼Œå–„攻者,动於ä¹å¤©ä¹‹ä¸Šï¼Œæ•…能自ä¿è€Œå…¨èƒœä¹Ÿã€‚ - -è§èƒœä¸è¿‡?人之所知,éžå–„之善者也;战胜而天下曰善,éžå–„之善者也。故举秋毫ä¸?多力,è§æ—¥æœˆä¸?明目,闻雷霆ä¸?èªè€³ã€‚å¤ä¹‹å–„战者,胜於易胜者也。故善战者之胜也,无智å,无勇功,故其战胜ä¸å¿’。ä¸å¿’者,其所措必胜,胜已败者也。故善战者,先立於ä¸è´¥ä¹‹åœ°ï¼Œè€Œä¸å¤±æ•Œä¹‹è´¥ä¹Ÿã€‚是故胜兵先胜,而åŽæ±‚战,败兵先战而åŽæ±‚胜。善用兵者,修é“而ä¿æ³•ï¼Œæ•…能?胜败之政。 - -兵法:一曰度,二曰é‡ï¼Œä¸‰æ›°æ•°ï¼Œå››æ›°ç§°ï¼Œäº”曰胜。地生度,度生é‡ï¼Œé‡ç”Ÿæ•°ï¼Œæ•°ç”Ÿç§°ï¼Œç§°ç”Ÿèƒœã€‚故胜兵若以?称?,败兵若以?称?。胜者之战,若决积水於åƒä»žä¹‹?者,形也。 - -兵势第五 - -å­™å­æ›°ï¼šå‡¡æ²»?如治寡,分数是也;斗?如斗寡,形å是也;三军之?,å¯ä½¿å¿…å—敌而无败者,奇正是也;兵之所加,如以?投åµè€…,虚实是也。 - -凡战者,以正åˆï¼Œä»¥å¥‡èƒœã€‚故善出奇者,无穷如天地,ä¸ç«­å¦‚江海。终而å¤å§‹ï¼Œæ—¥æœˆæ˜¯ä¹Ÿã€‚死而?生,四时是也。声ä¸è¿‡äº”,五声之å˜ï¼Œä¸å¯èƒœå¬ä¹Ÿï¼›è‰²ä¸è¿‡äº”,五色之å˜ï¼Œä¸å¯èƒœè§‚也;味ä¸è¿‡äº”,五味之å˜ï¼Œä¸å¯èƒœå°ä¹Ÿï¼›æˆ˜åŠ¿ï¼Œä¸è¿‡å¥‡æ­£ï¼Œå¥‡æ­£ä¹‹å˜ï¼Œä¸å¯èƒœç©·ä¹Ÿã€‚奇正相生,如循环之无端,熟能穷之哉? - -激水之疾,至於漂石者,势也;?鸟之疾,至於æ¯æŠ˜è€…,节也。是故善战者,其势险,其节短。势如张弩,节如å‘机。 - -纷纷??,斗乱而ä¸å¯ä¹±ä¹Ÿï¼›æµ‘浑沌沌,形圆而ä¸å¯è´¥ä¹Ÿã€‚乱生於治,怯生於勇,弱生於强。治乱,数也;勇怯,势也;强弱,形也。故善动敌者,形之,敌必从之;予之,敌必å–之。以利动之,以å’待之。 - -故善战者,求之於势,ä¸è´£æ–¼äººï¼›æ•…能择人而任势。任势者,其战人也,如转木石。木石之性,安则é™ï¼Œå±åˆ™åŠ¨ï¼Œæ–¹åˆ™æ­¢ï¼Œåœ†åˆ™è¡Œã€‚故善战人之势,如转圆石於åƒä»žä¹‹å±±è€…,势也。 - -虚实第六 - -å­™å­æ›°ï¼šå‡¡å…ˆå¤„战地而待敌者佚,åŽå¤„战地而趋战者劳。 - -故善战者,致人而ä¸è‡´æ–¼äººã€‚能使敌人自至者,利之也;能使敌人ä¸å¾—至者,害之也。故敌佚能劳之,饱能饥之,安能动之。出其所必趋,趋其所ä¸æ„。行åƒé‡Œè€Œä¸åŠ³è€…,行於无人之地也;攻而必å–者,攻其所ä¸å®ˆä¹Ÿã€‚守而必固者,守其所ä¸æ”»ä¹Ÿã€‚ - -故善攻者,敌ä¸çŸ¥å…¶æ‰€å®ˆï¼›å–„守者,敌ä¸çŸ¥å…¶æ‰€æ”»ã€‚微乎微乎,至於无形;神乎神乎,至於无声,故能?敌之å¸å‘½ã€‚进而ä¸å¯å¾¡è€…,冲其虚也;退而ä¸å¯è¿½è€…,速而ä¸å¯åŠä¹Ÿã€‚故我欲战,敌虽高垒深沟,ä¸å¾—ä¸ä¸Žæˆ‘战者,攻其所必救也;我ä¸æ¬²æˆ˜ï¼Œè™½ç”»åœ°è€Œå®ˆä¹‹ï¼Œæ•Œä¸å¾—与我战者,乖其所之也。故形人而我无形,则我专而敌分。我专?一,敌分?å,是以å攻其一也。则我?敌寡,能以?击寡者,则å¾ä¹‹æ‰€ä¸Žæˆ˜è€…约矣。å¾æ‰€ä¸Žæˆ˜ä¹‹åœ°ä¸å¯çŸ¥ï¼Œä¸å¯çŸ¥åˆ™æ•Œæ‰€å¤‡è€…多,敌所备者多,则å¾æ‰€ä¸Žæˆ˜è€…寡矣。故备å‰åˆ™åŽå¯¡ï¼Œå¤‡åŽåˆ™å‰å¯¡ï¼Œå¤‡å·¦åˆ™å³å¯¡ï¼Œå¤‡å³åˆ™å·¦å¯¡ï¼Œæ— æ‰€ä¸å¤‡ï¼Œåˆ™æ— æ‰€ä¸å¯¡ã€‚寡者,备人者也;?者,使人备己者也。故知战之地,知战之日,则å¯åƒé‡Œè€Œä¼šæˆ˜ï¼›ä¸çŸ¥æˆ˜ä¹‹åœ°ï¼Œä¸çŸ¥æˆ˜æ—¥ï¼Œåˆ™å·¦ä¸èƒ½æ•‘å³ï¼Œå³ä¸èƒ½æ•‘左,å‰ä¸èƒ½æ•‘åŽï¼ŒåŽä¸èƒ½æ•‘å‰ï¼Œè€Œå†µè¿œè€…æ•°å里,近者数里乎ï¼ä»¥å¾åº¦ä¹‹ï¼Œè¶Šäººä¹‹å…µè™½å¤šï¼Œäº¦å¥šç›Šæ–¼èƒœå“‰ï¼æ•…曰:胜å¯?也。敌虽?,å¯ä½¿æ— æ–—。故策之而知得失之计,候之而知动é™ä¹‹ç†ï¼Œå½¢ä¹‹è€ŒçŸ¥æ­»ç”Ÿä¹‹åœ°ï¼Œè§’之而知有?ä¸è¶³ä¹‹å¤„。故形兵之æžï¼Œè‡³æ–¼æ— å½¢ã€‚无形则深间ä¸èƒ½çª¥ï¼Œæ™ºè€…ä¸èƒ½è°‹ã€‚因形而措胜於?,?ä¸èƒ½çŸ¥ã€‚人皆知我所以胜之形,而莫知å¾æ‰€ä»¥åˆ¶èƒœä¹‹å½¢ã€‚故其战胜ä¸?,而应形於无穷。夫兵形象水,水之行é¿é«˜è€Œè¶‹ä¸‹ï¼Œå…µä¹‹å½¢é¿å®žè€Œå‡»è™šï¼›æ°´å› åœ°è€Œåˆ¶æµï¼Œå…µå› æ•Œè€Œåˆ¶èƒœã€‚故兵无常势,水无常形。能因敌å˜åŒ–而å–胜者,谓之神。故五行无常胜,四时无常ä½ï¼Œæ—¥æœ‰çŸ­é•¿ï¼Œæœˆæœ‰æ­»ç”Ÿã€‚ - -军争第七 - -å­™å­æ›°ï¼š 凡用兵之法,将å—命於å›ï¼Œåˆå†›èš?,交和而èˆï¼ŒèŽ«éš¾æ–¼å†›äº‰ã€‚军争之难者,以迂?直,以患?利。故迂其途,而诱之以利,åŽäººå‘,先人至,此知迂直之计者也。军争?利,军争?å±ã€‚举军而争利则ä¸åŠï¼Œå§”军而争利则?é‡æ。是故?甲而趋,日夜ä¸å¤„,å€é“兼行,百?而争利,则擒三将军,劲者先,疲者åŽï¼Œå…¶æ³•å一而至;五å里而争利,则蹶上将军,其法åŠè‡³ï¼›ä¸‰å里而争利,则三分之二至。是故军无?é‡åˆ™äº¡ï¼Œæ— ç²®é£Ÿåˆ™äº¡ï¼Œæ— å§”积则亡。故ä¸çŸ¥è¯¸ä¾¯ä¹‹è°‹è€…,ä¸èƒ½è±«äº¤ï¼›ä¸çŸ¥å±±æž—ã€é™©é˜»ã€æ²®æ³½ä¹‹å½¢è€…,ä¸èƒ½è¡Œå†›ï¼›ä¸ç”¨ä¹¡å¯¼è€…,ä¸èƒ½å¾—地利。故兵以诈立,以利动,以分和?å˜è€…也。故其疾如风,其å¾å¦‚林,侵掠如ç«ï¼Œä¸åŠ¨å¦‚山,难知如阴,动如雷震。掠乡分?,廓地分利,悬æƒè€ŒåŠ¨ã€‚先知迂直之计者胜,此军争之法也。《军政》曰:“言ä¸ç›¸é—»ï¼Œæ•…?之金鼓;视ä¸ç›¸è§ï¼Œæ•…?之旌旗。â€å¤«é‡‘鼓旌旗者,所以一民之耳目也。民既专一,则勇者ä¸å¾—独进,怯者ä¸å¾—独退,此用?之法也。故夜战多金鼓,昼战多旌旗,所以å˜äººä¹‹è€³ç›®ä¹Ÿã€‚三军å¯å¤ºæ°”,将军å¯å¤ºå¿ƒã€‚是故æœæ°”é”,昼气惰,暮气归。善用兵者,é¿å…¶é”气,击其惰归,此治气者也。以治待乱,以é™å¾…哗,此治心者也。以近待远,以佚待劳,以饱待饥,此治力者也。无邀正正之旗,无击堂堂之陈,此治å˜è€…也。故用兵之法,高陵勿å‘,背丘勿逆,佯北勿从,é”å’勿攻,饵兵勿食,归师勿é,围师é—?,穷寇勿迫,此用兵之法也。 - -ä¹å˜ç¬¬å…« - -å­™å­æ›°ï¼š 凡用兵之法,将å—命於å›ï¼Œåˆå†›èšåˆã€‚泛地无èˆï¼Œè¡¢åœ°åˆäº¤ï¼Œç»åœ°æ— ç•™ï¼Œå›´åœ°åˆ™è°‹ï¼Œæ­»åœ°åˆ™æˆ˜ï¼Œé€”有所ä¸ç”±ï¼Œå†›æœ‰æ‰€ä¸å‡»ï¼ŒåŸŽæœ‰æ‰€ä¸æ”»ï¼Œåœ°æœ‰æ‰€ä¸äº‰ï¼Œå›å‘½æœ‰æ‰€ä¸å—。故将通於ä¹å˜ä¹‹åˆ©è€…,知用兵矣;将ä¸é€šä¹å˜ä¹‹åˆ©ï¼Œè™½çŸ¥åœ°å½¢ï¼Œä¸èƒ½å¾—地之利矣;治兵ä¸çŸ¥ä¹å˜ä¹‹æœ¯ï¼Œè™½çŸ¥äº”利,ä¸èƒ½å¾—人之用矣。是故智者之虑,必æ‚於利害,æ‚於利而务å¯ä¿¡ä¹Ÿï¼Œæ‚於害而患å¯è§£ä¹Ÿã€‚是故屈诸侯者以害,役诸侯者以业,趋诸侯者以利。故用兵之法,无æƒå…¶ä¸æ¥ï¼Œæƒå¾æœ‰ä»¥å¾…之;无æƒå…¶ä¸æ”»ï¼Œæƒå¾æœ‰æ‰€ä¸å¯æ”»ä¹Ÿã€‚故将有五å±ï¼Œå¿…æ­»å¯æ€ï¼Œå¿…生å¯è™ï¼Œå¿¿é€Ÿå¯ä¾®ï¼Œå»‰æ´å¯è¾±ï¼Œçˆ±æ°‘å¯çƒ¦ã€‚凡此五者,将之过也,用兵之ç¾ä¹Ÿã€‚覆军æ€å°†ï¼Œå¿…以五å±ï¼Œä¸å¯ä¸å¯Ÿä¹Ÿã€‚ - -è¡Œå†›ç¬¬ä¹ - -å­™å­æ›°ï¼šå‡¡å¤„军相敌,ç»å±±ä¾?,视生处高,战隆无登,此处山之军也。ç»æ°´å¿…远水,客ç»æ°´è€Œæ¥ï¼Œå‹¿è¿Žä¹‹æ–¼æ°´å†…,令åŠæ¸¡è€Œå‡»ä¹‹åˆ©ï¼Œæ¬²æˆ˜è€…,无附於水而迎客,视生处高,无迎水æµï¼Œæ­¤å¤„水上之军也。ç»æ–¥æ³½ï¼Œå”¯äºŸåŽ»æ— ç•™ï¼Œè‹¥äº¤å†›æ–¼æ–¥æ³½ä¹‹ä¸­ï¼Œå¿…ä¾æ°´è‰è€ŒèƒŒ?树,此处斥泽之军也。平陆处易,å³èƒŒé«˜ï¼Œå‰æ­»åŽç”Ÿï¼Œæ­¤å¤„平陆之军也。凡此四军之利,黄å¸ä¹‹æ‰€ä»¥èƒœå››å¸ä¹Ÿã€‚凡军好高而æ¶ä¸‹ï¼Œè´µé˜³è€Œè´±é˜´ï¼Œå…»ç”Ÿè€Œå¤„实,军无百疾,是谓必胜。丘陵堤防,必处其阳而å³èƒŒä¹‹ï¼Œæ­¤å…µä¹‹åˆ©ï¼Œåœ°ä¹‹åŠ©ä¹Ÿã€‚上雨水æµè‡³ï¼Œæ¬²æ¶‰è€…,待其定也。凡地有ç»æ¶§ã€å¤©äº•ã€å¤©ç‰¢ã€å¤©ç½—ã€å¤©é™·ã€å¤©éš™ï¼Œå¿…亟去之,勿近也。å¾è¿œä¹‹ï¼Œæ•Œè¿‘之;å¾è¿Žä¹‹ï¼Œæ•ŒèƒŒä¹‹ã€‚军æ—有险阻ã€æ½¢äº•ã€è’¹è‘­ã€å°æž—ã€??者,必谨覆索之,此ä¼?之所处也。敌近而é™è€…,æƒå…¶é™©ä¹Ÿï¼›è¿œè€ŒæŒ‘战者,欲人之进也;其所居易者,利也;?树动者,æ¥ä¹Ÿï¼›?è‰å¤šéšœè€…,疑也;鸟起者,ä¼ä¹Ÿï¼›å…½éª‡è€…,覆也;尘高而é”者,车æ¥ä¹Ÿï¼›å‘而广者,徒æ¥ä¹Ÿï¼›æ•£è€Œæ¡è¾¾è€…,樵?也;少而往æ¥è€…,è¥å†›ä¹Ÿï¼›è¾žå‘而备者,进也;辞强而进驱者,退也;轻车先出居其侧者,陈也;无约而请和者,谋也;奔走而陈兵者,期也;åŠè¿›åŠé€€è€…,诱也;æ–而立者,饥也;汲而先饮者,渴也;è§åˆ©è€Œä¸è¿›è€…,劳也;鸟集者,虚也;夜呼者,æ也;军扰者,将ä¸é‡ä¹Ÿï¼›æ—Œæ——动者,乱也;å怒者,倦也;æ€é©¬è‚‰é£Ÿè€…,军无粮也;悬?ä¸è¿”å…¶èˆè€…,穷寇也;谆谆翕翕,å¾ä¸Žäººè¨€è€…,失?也;数èµè€…,窘也;数罚者,困也;先暴而åŽç•å…¶?者,ä¸ç²¾ä¹‹è‡³ä¹Ÿï¼›æ¥å§”谢者,欲休æ¯ä¹Ÿã€‚兵怒而相迎,久而ä¸åˆï¼Œåˆä¸ç›¸åŽ»ï¼Œå¿…谨察之。兵éžè´µç›Šå¤šä¹Ÿï¼ŒæƒŸæ— æ­¦è¿›ï¼Œè¶³ä»¥å¹¶åŠ›æ–™æ•Œå–人而已。夫惟无虑而易敌者,必擒於人。å’未亲而罚之,则ä¸æœï¼Œä¸æœåˆ™éš¾ç”¨ã€‚å’已亲附而罚ä¸è¡Œï¼Œåˆ™ä¸å¯ç”¨ã€‚æ•…åˆä¹‹ä»¥æ–‡ï¼Œé½ä¹‹ä»¥æ­¦ï¼Œæ˜¯è°“å¿…å–。令素行以教其民,则民æœï¼›ä»¤ç´ ä¸è¡Œä»¥æ•™å…¶æ°‘,则民ä¸æœã€‚令素行者,与?相得也。 - -地形第å - -å­™å­æ›°ï¼šåœ°å½¢æœ‰é€šè€…ã€æœ‰?者ã€æœ‰æ”¯è€…ã€æœ‰éš˜è€…ã€æœ‰é™©è€…ã€æœ‰è¿œè€…。我å¯ä»¥å¾€ï¼Œå½¼å¯ä»¥æ¥ï¼Œæ›°é€šã€‚通形者,先居高阳,利粮é“,以战则利。å¯ä»¥å¾€ï¼Œéš¾ä»¥è¿”,曰?。?形者,敌无备,出而胜之,敌若有备,出而ä¸èƒœï¼Œéš¾ä»¥è¿”,ä¸åˆ©ã€‚我出而ä¸åˆ©ï¼Œå½¼å‡ºè€Œä¸åˆ©ï¼Œæ›°æ”¯ã€‚支形者,敌虽利我,我无出也,引而去之,令敌åŠå‡ºè€Œå‡»ä¹‹åˆ©ã€‚隘形者,我先居之,必盈之以待敌。若敌先居之,盈而勿从,ä¸ç›ˆè€Œä»Žä¹‹ã€‚险形者,我先居之,必居高阳以待敌;若敌先居之,引而去之,勿从也。远形者,势å‡éš¾ä»¥æŒ‘战,战而ä¸åˆ©ã€‚凡此六者,地之é“也,将之至任,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚凡兵有走者ã€æœ‰é©°è€…ã€æœ‰é™·è€…ã€æœ‰å´©è€…ã€æœ‰ä¹±è€…ã€æœ‰åŒ—者。凡此六者,éžå¤©åœ°ä¹‹ç¾ï¼Œå°†ä¹‹è¿‡ä¹Ÿã€‚夫势å‡ï¼Œä»¥ä¸€å‡»å,曰走;å’强å弱,曰驰;å强å’弱,曰陷;大å怒而ä¸æœï¼Œé‡æ•Œ?而自战,将ä¸çŸ¥å…¶èƒ½ï¼Œæ›°å´©ï¼›å°†å¼±ä¸ä¸¥ï¼Œæ•™é“ä¸æ˜Žï¼Œåå’无常,陈兵纵横,曰乱;将ä¸èƒ½æ–™æ•Œï¼Œä»¥å°‘åˆ?,以弱击强,兵无选锋,曰北。凡此六者,败之é“也,将之至任,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚夫地形者,兵之助也。料敌制胜,计险隘远近,上将之é“也。知此而用战者必胜,ä¸çŸ¥æ­¤è€Œç”¨æˆ˜è€…必败。故战é“必胜,主曰无战,必战å¯ä¹Ÿï¼›æˆ˜é“ä¸èƒœï¼Œä¸»æ›°å¿…战,无战å¯ä¹Ÿã€‚æ•…è¿›ä¸æ±‚å,退ä¸é¿ç½ªï¼Œå”¯æ°‘是ä¿ï¼Œè€Œåˆ©æ–¼ä¸»ï¼Œå›½ä¹‹å®ä¹Ÿã€‚视å’如婴儿,故å¯ä»¥ä¸Žä¹‹èµ´æ·±æºªï¼›è§†å’如爱å­ï¼Œæ•…å¯ä¸Žä¹‹ä¿±æ­»ã€‚厚而ä¸èƒ½ä½¿ï¼Œçˆ±è€Œä¸èƒ½ä»¤ï¼Œä¹±è€Œä¸èƒ½æ²»ï¼Œè­¬è‹¥éª„å­ï¼Œä¸å¯ç”¨ä¹Ÿã€‚知å¾å’之å¯ä»¥å‡»ï¼Œè€Œä¸çŸ¥æ•Œä¹‹ä¸å¯å‡»ï¼Œèƒœä¹‹åŠä¹Ÿï¼›çŸ¥æ•Œä¹‹å¯å‡»ï¼Œè€Œä¸çŸ¥å¾å’之ä¸å¯ä»¥å‡»ï¼Œèƒœä¹‹åŠä¹Ÿï¼›çŸ¥æ•Œä¹‹å¯å‡»ï¼ŒçŸ¥å¾å’之å¯ä»¥å‡»ï¼Œè€Œä¸çŸ¥åœ°å½¢ä¹‹ä¸å¯ä»¥æˆ˜ï¼Œèƒœä¹‹åŠä¹Ÿã€‚故知兵者,动而ä¸è¿·ï¼Œä¸¾è€Œä¸ç©·ã€‚故曰:知彼知己,胜乃ä¸æ®†ï¼›çŸ¥å¤©çŸ¥åœ°ï¼Œèƒœä¹ƒå¯å…¨ã€‚ - -ä¹åœ°ç¬¬å一 - -å­™å­æ›°ï¼šç”¨å…µä¹‹æ³•ï¼Œæœ‰æ•£åœ°ï¼Œæœ‰è½»åœ°ï¼Œæœ‰äº‰åœ°ï¼Œæœ‰äº¤åœ°ï¼Œæœ‰è¡¢åœ°ï¼Œæœ‰é‡åœ°ï¼Œæœ‰æ³›åœ°ï¼Œæœ‰å›´åœ°ï¼Œæœ‰æ­»åœ°ã€‚诸侯自战其地者,?散地;入人之地ä¸æ·±è€…,?轻地;我得亦利,彼得亦利者,?争地;我å¯ä»¥å¾€ï¼Œå½¼å¯ä»¥æ¥è€…,?交地;诸侯之地三属,先至而得天下?者,?衢地;入人之地深,背城邑多者,?é‡åœ°ï¼›å±±æž—ã€é™©é˜»ã€æ²®æ³½ï¼Œå‡¡éš¾è¡Œä¹‹é“者,?泛地;所由入者隘,所从归者迂,彼寡å¯ä»¥å‡»å¾ä¹‹?者,?围地;疾战则存,ä¸ç–¾æˆ˜åˆ™äº¡è€…,?死地。是故散地则无战,轻地则无止,争地则无攻,交地则无ç»ï¼Œè¡¢åœ°åˆ™åˆäº¤ï¼Œé‡åœ°åˆ™æŽ ï¼Œæ³›åœ°åˆ™è¡Œï¼Œå›´åœ°åˆ™è°‹ï¼Œæ­»åœ°åˆ™æˆ˜ã€‚å¤ä¹‹å–„用兵者,能使敌人å‰åŽä¸ç›¸åŠï¼Œ?寡ä¸ç›¸æƒï¼Œè´µè´±ä¸ç›¸æ•‘,上下ä¸ç›¸æ”¶ï¼Œå’离而ä¸é›†ï¼Œå…µåˆè€Œä¸é½ã€‚åˆæ–¼åˆ©è€ŒåŠ¨ï¼Œä¸åˆæ–¼åˆ©è€Œæ­¢ã€‚敢问敌?而整将æ¥ï¼Œå¾…之若何曰:先夺其所爱则å¬çŸ£ã€‚兵之情主速,乘人之ä¸åŠã€‚ç”±ä¸è™žä¹‹é“,攻其所ä¸æˆ’也。凡?客之é“,深入则专。主人ä¸å…‹ï¼ŒæŽ æ–¼é¥¶é‡Žï¼Œä¸‰å†›è¶³é£Ÿã€‚谨养而勿劳,并气积力,è¿å…µè®¡è°‹ï¼Œ?ä¸å¯æµ‹ã€‚投之无所往,死且ä¸åŒ—。死焉ä¸å¾—,士人尽力。兵士甚陷则ä¸æƒ§ï¼Œæ— æ‰€å¾€åˆ™å›ºï¼Œæ·±å…¥åˆ™æ‹˜ï¼Œä¸å¾—已则斗。是故其兵ä¸ä¿®è€Œæˆ’,ä¸æ±‚而得,ä¸çº¦è€Œäº²ï¼Œä¸ä»¤è€Œä¿¡ï¼Œç¦ç¥¥åŽ»ç–‘,至死无所之。å¾å£«æ— ?财,éžæ¶è´§ä¹Ÿï¼›æ— ?命,éžæ¶å¯¿ä¹Ÿã€‚令å‘之日,士å’å者涕沾襟,åƒå§è€…涕交é¢ï¼ŒæŠ•ä¹‹æ— æ‰€å¾€ï¼Œè¯¸ã€?之勇也。故善用兵者,譬如率然。率然者,常山之蛇也。击其首则尾至,击其尾则首至,击其中则首尾俱至。敢问兵å¯ä½¿å¦‚率然乎?曰å¯ã€‚夫å´äººä¸Žè¶Šäººç›¸æ¶ä¹Ÿï¼Œå½“å…¶åŒèˆŸè€ŒæµŽè€Œé‡é£Žï¼Œå…¶ç›¸æ•‘也如左å³æ‰‹ã€‚是故方马埋轮,未足æƒä¹Ÿï¼›é½å‹‡å¦‚一,政之é“也;刚柔皆得,地之ç†ä¹Ÿã€‚故善用兵者,æºæ‰‹è‹¥ä½¿ä¸€äººï¼Œä¸å¾—已也。将军之事,é™ä»¥å¹½ï¼Œæ­£ä»¥æ²»ï¼Œèƒ½æ„šå£«å’之耳目,使之无知;易其事,é©å…¶è°‹ï¼Œä½¿äººæ— è¯†ï¼›æ˜“其居,迂其途,使民ä¸å¾—虑。帅与之期,如登高而去其梯;帅与之深入诸侯之地,而å‘其机。若驱群羊,驱而往,驱而æ¥ï¼ŒèŽ«çŸ¥æ‰€ä¹‹ã€‚èšä¸‰å†›ä¹‹?,投之於险,此谓将军之事也。ä¹åœ°ä¹‹å˜ï¼Œå±ˆä¼¸ä¹‹åŠ›ï¼Œäººæƒ…之ç†ï¼Œä¸å¯ä¸å¯Ÿä¹Ÿã€‚凡?客之é“,深则专,浅则散。去国越境而师者,ç»åœ°ä¹Ÿï¼›å››å½»è€…,衢地也;入深者,é‡åœ°ä¹Ÿï¼›å…¥æµ…者,轻地也;背固å‰éš˜è€…,围地也;无所往者,死地也。是故散地å¾å°†ä¸€å…¶å¿—,轻地å¾å°†ä½¿ä¹‹å±žï¼Œäº‰åœ°å¾å°†è¶‹å…¶åŽï¼Œäº¤åœ°å¾å°†è°¨å…¶å®ˆï¼Œäº¤åœ°å¾å°†å›ºå…¶ç»“,衢地å¾å°†è°¨å…¶æƒï¼Œé‡åœ°å¾å°†ç»§å…¶é£Ÿï¼Œæ³›åœ°å¾å°†è¿›å…¶é€”,围地å¾å°†å¡žå…¶?,死地å¾å°†ç¤ºä¹‹ä»¥ä¸æ´»ã€‚故兵之情:围则御,ä¸å¾—已则斗,过则从。是故ä¸çŸ¥è¯¸ä¾¯ä¹‹è°‹è€…,ä¸èƒ½é¢„交;ä¸çŸ¥å±±æž—ã€é™©é˜»ã€æ²®æ³½ä¹‹å½¢è€…,ä¸èƒ½è¡Œå†›ï¼›ä¸ç”¨ä¹¡å¯¼ï¼Œä¸èƒ½å¾—地利。四五者,一ä¸çŸ¥ï¼Œéžéœ¸çŽ‹ä¹‹å…µä¹Ÿã€‚夫霸王之兵,ä¼å¤§å›½ï¼Œåˆ™å…¶?ä¸å¾—èšï¼›å¨åŠ æ–¼æ•Œï¼Œåˆ™å…¶äº¤ä¸å¾—åˆã€‚是故ä¸äº‰å¤©ä¸‹ä¹‹äº¤ï¼Œä¸å…»å¤©ä¸‹ä¹‹æƒï¼Œä¿¡å·±ä¹‹ç§ï¼Œå¨åŠ æ–¼æ•Œï¼Œåˆ™å…¶åŸŽå¯æ‹”,其国å¯éš³ã€‚施无法之èµï¼Œæ‚¬æ— æ”¿ä¹‹ä»¤ã€‚犯三军之?,若使一人。犯之以事,勿告以言;犯之以害,勿告以利。投之亡地然åŽå­˜ï¼Œé™·ä¹‹æ­»åœ°ç„¶åŽç”Ÿã€‚夫?陷於害,然åŽèƒ½?胜败。故?兵之事,在顺详敌之æ„,并敌一å‘,åƒé‡Œæ€å°†ï¼Œæ˜¯è°“巧能æˆäº‹ã€‚是故政举之日,夷关折符,无通其使,厉於廊庙之上,以诛其事。敌人开?,必亟入之,先其所爱,微与之期,践墨éšæ•Œï¼Œä»¥å†³æˆ˜äº‹ã€‚是故始如处女,敌人开户;åŽå¦‚脱兔,敌ä¸åŠæ‹’。 - -ç«æ”»ç¬¬å二 - -å­™å­æ›°ï¼šå‡¡ç«æ”»æœ‰äº”:一曰ç«äººï¼ŒäºŒæ›°ç«ç§¯ï¼Œä¸‰æ›°ç«?,四曰ç«åº“,五曰ç«é˜Ÿã€‚è¡Œç«å¿…有因,因必素具。å‘ç«æœ‰æ—¶ï¼Œèµ·ç«æœ‰æ—¥ã€‚时者,天之燥也。日者,月在箕ã€å£ã€ç¿¼ã€?也。凡此四宿者,风起之日也。凡ç«æ”»ï¼Œå¿…因五ç«ä¹‹å˜è€Œåº”之:ç«å‘於内,则早应之於外;ç«å‘而其兵é™è€…,待而勿攻,æžå…¶ç«åŠ›ï¼Œå¯ä»Žè€Œä»Žä¹‹ï¼Œä¸å¯ä»Žåˆ™ä¸Šã€‚ç«å¯å‘於外,无待於内,以时å‘之,ç«å‘上风,无攻下风,昼风久,夜风止。凡军必知五ç«ä¹‹å˜ï¼Œä»¥æ•°å®ˆä¹‹ã€‚故以ç«ä½æ”»è€…明,以水ä½æ”»è€…强。水å¯ä»¥ç»ï¼Œä¸å¯ä»¥å¤ºã€‚夫战胜攻å–而ä¸æƒ°å…¶åŠŸè€…凶,命曰“费留â€ã€‚故曰:明主虑之,良将惰之,éžåˆ©ä¸åŠ¨ï¼Œéžå¾—ä¸ç”¨ï¼Œéžå±ä¸æˆ˜ã€‚主ä¸å¯ä»¥æ€’而兴师,将ä¸å¯ä»¥?而攻战。åˆæ–¼åˆ©è€ŒåŠ¨ï¼Œä¸åˆæ–¼åˆ©è€Œä¸Šã€‚怒å¯ä»¥å¤å–œï¼Œ?å¯ä»¥å¤è¯´ï¼Œäº¡å›½ä¸å¯ä»¥å¤å­˜ï¼Œæ­»è€…ä¸å¯ä»¥å¤ç”Ÿã€‚故明主慎之,良将警之。此安国全军之é“也。 - -用间第å三 - -å­™å­æ›°ï¼š 凡兴师å万,出å¾åƒé‡Œï¼Œç™¾å§“之费,公家之奉,日费åƒé‡‘,内外骚动,怠於é“路,ä¸å¾—æ“事者,七å万家。相守数年,以争一日之胜,而爱爵禄百金,ä¸çŸ¥æ•Œä¹‹æƒ…者,ä¸ä»ä¹‹è‡³ä¹Ÿï¼Œéžæ°‘之将也,éžä¸»ä¹‹ä½ä¹Ÿï¼Œéžèƒœä¹‹ä¸»ä¹Ÿã€‚故明å›è´¤å°†æ‰€ä»¥åŠ¨è€Œèƒœäººï¼ŒæˆåŠŸå‡ºæ–¼?者,先知也。先知者,ä¸å¯å–於鬼神,ä¸å¯è±¡æ–¼äº‹ï¼Œä¸å¯éªŒæ–¼åº¦ï¼Œå¿…å–於人,知敌之情者也。故用间有五:有因间,有内间,有å间,有死间,有生间。五间俱起,莫知其é“,是谓神纪,人å›ä¹‹å®ä¹Ÿã€‚乡间者,因其乡人而用之;内间者,因其官人而用之;å间者,因其敌间而用之;死间者,??事於外,令å¾é—»çŸ¥ä¹‹è€Œä¼ æ–¼æ•Œé—´ä¹Ÿï¼›ç”Ÿé—´è€…,å报也。故三军之事,莫亲於间,èµèŽ«åŽšæ–¼é—´ï¼Œäº‹èŽ«å¯†æ–¼é—´ï¼Œéžåœ£è´¤ä¸èƒ½ç”¨é—´ï¼Œéžä»ä¹‰ä¸èƒ½ä½¿é—´ï¼Œéžå¾®å¦™ä¸èƒ½å¾—间之实。微哉微哉ï¼æ— æ‰€ä¸ç”¨é—´ä¹Ÿã€‚间事未å‘而先闻者,间与所告者兼死。凡军之所欲击,城之所欲攻,人之所欲æ€ï¼Œå¿…先知其守将ã€å·¦å³ã€?者ã€é—¨è€…ã€èˆäººä¹‹å§“å,令å¾é—´å¿…索知之。敌间之æ¥é—´æˆ‘者,因而利之,导而èˆä¹‹ï¼Œæ•…åé—´å¯å¾—而用也;因是而知之,故乡间ã€å†…é—´å¯å¾—而使也;因是而知之,故死间??事,å¯ä½¿å‘Šæ•Œï¼›å› æ˜¯è€ŒçŸ¥ä¹‹ï¼Œæ•…生间å¯ä½¿å¦‚期。五间之事,主必知之,知之必在於å间,故åé—´ä¸å¯ä¸åŽšä¹Ÿã€‚昔殷之兴也,伊挚在å¤ï¼›å‘¨ä¹‹å…´ä¹Ÿï¼Œå•ç‰™åœ¨æ®·ã€‚故明å›è´¤å°†ï¼Œèƒ½ä»¥ä¸Šæ™º?间者,必æˆå¤§åŠŸã€‚此兵之è¦ï¼Œä¸‰å†›ä¹‹æ‰€æƒè€ŒåŠ¨ä¹Ÿã€‚ diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-simplified-gbk.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-simplified-gbk.txt deleted file mode 100644 index ef38e4b6..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-simplified-gbk.txt +++ /dev/null @@ -1,107 +0,0 @@ -This file was derived from -http://www.gutenberg.org/files/23864/23864-0.txt -after converting from Traditional Chinese to Simplified Chinese. --------- -ʼ¼ÆµÚÒ» - -Ëï×ÓÔ»£º±øÕߣ¬¹úÖ®´óÊ£¬ËÀÉúÖ®µØ£¬´æÍöÖ®µÀ£¬²»¿É²»²ìÒ²¡£ - -¹Ê¾­Ö®ÒÔÎåÊ£¬Ð£Ö®ÒԼƣ¬¶øË÷ÆäÇ飺һԻµÀ£¬¶þÔ»Ì죬ÈýÔ»µØ£¬ËÄÔ»½«£¬ÎåÔ»·¨¡£ - -µÀÕߣ¬ÁîÃñÓëÉÏͬÒ⣬¿ÉÓëÖ®ËÀ£¬¿ÉÓëÖ®Éú£¬¶ø²»Î·Î£Ò²£»ÌìÕߣ¬ÒõÑô¡¢º®ÊʱÖÆÒ²£»µØÕߣ¬Ô¶½ü¡¢ÏÕÒס¢¹ãÏÁ¡¢ËÀÉúÒ²£»½«Õߣ¬ÖÇ¡¢ÐÅ¡¢ÈÊ¡¢Ó¡¢ÑÏÒ²£»·¨Õߣ¬ÇúÖÆ¡¢¹ÙµÀ¡¢Ö÷ÓÃÒ²¡£·²´ËÎåÕߣ¬½«Äª²»ÎÅ£¬ÖªÖ®Õßʤ£¬²»ÖªÕß²»Ê¤¡£ - -¹ÊУ֮ÒԼƣ¬¶øË÷ÆäÇ飬Ի£ºÖ÷ÊëÓеÀ£¿½«ÊëÓÐÄÜ£¿ÌìµØÊëµÃ£¿·¨ÁîÊëÐУ¿±ø±ŠÊëÇ¿£¿Ê¿×äÊëÁ·£¿ÉÍ·£ÊëÃ÷£¿ÎáÒÔ´Ë֪ʤ¸ºÒÓ¡£ - -½«ÌýÎá¼Æ£¬ÓÃÖ®±Øʤ£¬ÁôÖ®£»½«²»ÌýÎá¼Æ£¬ÓÃÖ®±Ø°Ü£¬È¥Ö®¡£ - -¼ÆÀûÒÔÌý£¬ÄËžéÖ®ÊÆ£¬ÒÔ×ôÆäÍâ¡£ÊÆÕߣ¬ÒòÀû¶øÖÆȨҲ¡£ - -±øÕߣ¬¹îµÀÒ²¡£¹ÊÄܶøʾ֮²»ÄÜ£¬Óöøʾ֮²»Ó㬽ü¶øʾ֮Զ£¬Ô¶¶øʾ֮½ü¡£Àû¶øÓÕÖ®£¬ÂÒ¶øÈ¡Ö®£¬Êµ¶ø±¸Ö®£¬Ç¿¶ø±ÜÖ®£¬Å­¶øÄÓÖ®£¬±°¶ø½¾Ö®£¬Øý¶øÀÍÖ®£¬Ç׶øÀëÖ®£¬¹¥ÆäÎÞ±¸£¬³öÆä²»Òâ¡£´Ë±ø¼Ò֮ʤ£¬²»¿ÉÏÈ´«Ò²¡£ - -·òδս¶øÃíËãʤÕߣ¬µÃËã¶àÒ²£»Î´Õ½¶øÃíË㲻ʤÕߣ¬µÃËãÉÙÒ²¡£¶àËãʤ£¬ÉÙË㲻ʤ£¬¶ø¿öÎÞËãºõ£¡ÎáÒԴ˹ÛÖ®£¬Ê¤¸º¼ûÒÓ¡£ - -×÷Õ½µÚ¶þ - -Ëï×ÓÔ»£º·²ÓñøÖ®·¨£¬³Û³µÇ§ñ†£¬¸ï³µÇ§³Ë£¬´ø¼×Ê®Íò£¬Ç§ÀïÀ¡Á¸¡£ÔòÄÚÍâÖ®·Ñ£¬±ö¿ÍÖ®Ó㬽ºÆáÖ®²Ä£¬³µ¼×Ö®·î£¬ÈÕ·Ñǧ½ð£¬È»ºóÊ®Íò֮ʦ¾ÙÒÓ¡£ - -ÆäÓÃÕ½Ò²£¬¹óʤ£¬¾ÃÔò¶Û±ø´ìÈñ£¬¹¥³ÇÔòÁ¦Çü£¬¾Ã±©Ê¦Ôò¹úÓò»×ã¡£·ò¶Û±ø´ìÈñ£¬ÇüÁ¦š—»õ£¬ÔòÖîºî³ËÆä±×¶øÆð£¬ËäÓÐÖÇÕߣ¬²»ÄÜÉÆÆäºóÒÓ¡£¹Ê±øÎÅ×¾ËÙ£¬Î´¶ÃÇÉÖ®¾ÃÒ²¡£·ò±ø¾Ã¶ø¹úÀûÕߣ¬Î´Ö®ÓÐÒ²¡£¹Ê²»¾¡ÖªÓñøÖ®º¦Õߣ¬Ôò²»Äܾ¡ÖªÓñøÖ®ÀûÒ²¡£ - -ÉÆÓñøÕߣ¬ÒÛ²»ÔÙ¼®£¬Á¸²»ÈýÔØ£¬È¡ÓÃ춹ú£¬ÒòÁ¸ì¶µÐ£¬¹Ê¾üʳ¿É×ãÒ²¡£¹ú֮ƶì¶Ê¦ÕßÔ¶Ê䣬ԶÊäÔò°ÙÐÕƶ£»½üì¶Ê¦Õß¹óÂô£¬¹óÂôÔò°ÙÐսߣ¬²Æ½ßÔò¼±ì¶ÇðÒÛ¡£Á¦Çü²Æš—£¬ÖÐÔ­ÄÚÐé춼ң¬°ÙÐÕÖ®·Ñ£¬Ê®È¥ÆäÆߣ»¹«¼ÒÖ®·Ñ£¬Æƾü°ÕÂí£¬¼×ëÐʸåó£¬êª˜J왩£¬ÇðÅ£´ó³µ£¬Ê®È¥ÆäÁù¡£ - -¹ÊÖǽ«Îñʳ춵У¬Ê³µÐÒ»ÖÓ£¬µ±Îá¶þÊ®ÖÓ£»Ý½¸Ñһʯ£¬µ±Îá¶þʮʯ¡£¹ÊɱµÐÕߣ¬Å­Ò²£»È¡µÐÖ®ÀûÕߣ¬»õÒ²¡£¹Ê³µÕ½£¬µÃ³µÊ®³ËÒÔÉÏ£¬ÉÍÆäÏȵÃÕߣ¬¶ø¸üÆäìºÆì¡£³µÔÓ¶ø³ËÖ®£¬×äÉƶøÑøÖ®£¬ÊÇνʤµÐ¶øÒæÇ¿¡£ - -¹Ê±ø¹óʤ£¬²»¹ó¾Ã¡£¹ÊÖª±øÖ®½«£¬Ãñ֮˾Ãü¡£¹ú¼Ò°²Î£Ö®Ö÷Ò²¡£ - -ı¹¥µÚÈý - -Ëï×ÓÔ»£º·²ÓñøÖ®·¨£¬È«¹úžéÉÏ£¬Æƹú´ÎÖ®£»È«¾üžéÉÏ£¬Æƾü´ÎÖ®£»È«ÂÞéÉÏ£¬ÆÆÂôÎÖ®£»È«×äžéÉÏ£¬ÆÆ×ä´ÎÖ®£»È«ÎéžéÉÏ£¬ÆÆÎé´ÎÖ®¡£ÊǹʰÙÕ½°Ùʤ£¬·ÇÉÆÖ®ÉÆÕßÒ²£»²»Õ½¶øÇüÈËÖ®±ø£¬ÉÆÖ®ÉÆÕßÒ²¡£ - -¹ÊÉϱø·¥Ä±£¬Æä´Î·¥½»£¬Æä´Î·¥±ø£¬ÆäϹ¥³Ç¡£¹¥³ÇÖ®·¨£¬žé²»µÃÒÑ¡£ÐÞ™©ÞMÝœ£¬¾ßÆ÷е£¬ÈýÔ¶øºó³É£»¾à鞣¬ÓÖÈýÔ¶øºóÒÑ¡£½«²»Ê¤Æä·Þ£¬¶øÒϸ½Ö®£¬É±Ê¿Èý·ÖÖ®Ò»£¬¶ø³Ç²»°ÎÕߣ¬´Ë¹¥Ö®ÔÖÒ²¡£ - -¹ÊÉÆÓñøÕߣ¬ÇüÈËÖ®±ø£¬¶ø·ÇÕ½Ò²£¬°ÎÈËÖ®³Ç¶ø·Ç¹¥Ò²£¬»ÙÈËÖ®¹ú¶ø·Ç¾ÃÒ²£¬±ØÒÔÈ«Õùì¶ÌìÏ£¬¹Ê±ø²»¶Ù¶øÀû¿ÉÈ«£¬´Ëı¹¥Ö®·¨Ò²¡£ - -¹ÊÓñøÖ®·¨£¬Ê®ÔòΧ֮£¬ÎåÔò¹¥Ö®£¬±¶Ôò·ÖÖ®£¬µÐÔòÄÜÕ½Ö®£¬ÉÙÔòÄÜÌÓÖ®£¬²»ÈôÔòÄܱÜÖ®¡£¹ÊСµÐÖ®¼á£¬´óµÐÖ®ÇÜÒ²¡£ - -·ò½«Õߣ¬¹úÖ®¸¨Ò²¡£¸¨ÖÜÔò¹ú±ØÇ¿£¬¸¨Ï¶Ôò¹ú±ØÈõ¡£¹Ê¾ýÖ®ËùÒÔ»¼ì¶¾üÕßÈý£º²»Öª¾üÖ®²»¿ÉÒÔ½ø¶øν֮½ø£¬²»Öª¾üÖ®²»¿ÉÒÔÍ˶øν֮ÍË£¬ÊÇν÷ã¾ü£»²»ÖªÈý¾ü֮ʣ¬¶øͬÈý¾üÖ®Õþ£¬Ôò¾üÊ¿»óÒÓ£»²»ÖªÈý¾ü֮Ȩ£¬¶øͬÈý¾üÖ®ÈΣ¬Ôò¾üÊ¿ÒÉÒÓ¡£Èý¾ü¼È»óÇÒÒÉ£¬ÔòÖîºîÖ®ÄÑÖÁÒÓ¡£ÊÇνÂÒ¾üÒýʤ¡£ - -¹Ê֪ʤÓÐÎ壺֪¿ÉÒÔÕ½Óë²»¿ÉÒÔÕ½Õߣ¬Ê¤¡£Ê¶±Š¹ÑÖ®ÓÃÕߣ¬Ê¤¡£ÉÏÏÂͬÓûÕߣ¬Ê¤¡£ÒÔÓÝ´ý²»ÓÝÕߣ¬Ê¤¡£½«Äܶø¾ý²»ÓùÕߣ¬Ê¤¡£´ËÎåÕߣ¬ÖªÊ¤Ö®µÀÒ²¡£ - -¹ÊÔ»£ºÖª¼ºÖª±Ë£¬°ÙÕ½²»ÙO£»²»Öª±Ë¶øÖª¼º£¬Ò»Ê¤Ò»¸º£»²»Öª±Ë²»Öª¼º£¬Ã¿Õ½±Ø°Ü¡£ - -¾üÐεÚËÄ - -Ëï×ÓÔ»£ºÎôÖ®ÉÆÕ½Õߣ¬ÏÈžé²»¿Éʤ£¬ÒÔ´ýµÐÖ®¿Éʤ¡£²»¿ÉʤÔÚ¼º£¬¿ÉʤÔڵС£¹ÊÉÆÕ½Õߣ¬ÄÜžé²»¿Éʤ£¬²»ÄÜʹµÐ±Ø¿Éʤ¡£¹ÊÔ»£ºÊ¤¿ÉÖª£¬¶ø²»¿Éžé¡£ - -²»¿ÉʤÕߣ¬ÊØÒ²£»¿ÉʤÕߣ¬¹¥Ò²¡£ÊØÔò²»×㣬¹¥ÔòÓÐðN¡£ÉÆÊØÕߣ¬²Ø춾ŵØ֮ϣ¬Éƹ¥Õߣ¬¶¯ì¶¾ÅÌìÖ®ÉÏ£¬¹ÊÄÜ×Ô±£¶øȫʤҲ¡£ - -¼ûʤ²»¹ý±ŠÈËÖ®ËùÖª£¬·ÇÉÆÖ®ÉÆÕßÒ²£»Õ½Ê¤¶øÌìÏÂÔ»ÉÆ£¬·ÇÉÆÖ®ÉÆÕßÒ²¡£¹Ê¾ÙÇïºÁ²»žé¶àÁ¦£¬¼ûÈÕÔ²»žéÃ÷Ä¿£¬ÎÅÀ×öª²»žé´Ï¶ú¡£¹ÅÖ®ÉÆÕ½Õߣ¬Ê¤ì¶Ò×ʤÕßÒ²¡£¹ÊÉÆÕ½Õß֮ʤҲ£¬ÎÞÖÇÃû£¬ÎÞÓ¹¦£¬¹ÊÆäսʤ²»ß¯¡£²»ß¯Õߣ¬ÆäËù´ë±Øʤ£¬Ê¤ÒÑ°ÜÕßÒ²¡£¹ÊÉÆÕ½Õߣ¬ÏÈÁ¢ì¶²»°ÜÖ®µØ£¬¶ø²»Ê§µÐÖ®°ÜÒ²¡£ÊǹÊʤ±øÏÈʤ£¬¶øºóÇóÕ½£¬°Ü±øÏÈÕ½¶øºóÇóʤ¡£ÉÆÓñøÕߣ¬ÐÞµÀ¶ø±£·¨£¬¹ÊÄÜžéʤ°ÜÖ®Õþ¡£ - -±ø·¨£ºÒ»Ô»¶È£¬¶þÔ»Á¿£¬ÈýÔ»Êý£¬ËÄÔ»³Æ£¬ÎåԻʤ¡£µØÉú¶È£¬¶ÈÉúÁ¿£¬Á¿ÉúÊý£¬ÊýÉú³Æ£¬³ÆÉúʤ¡£¹Êʤ±øÈôÒÔ愳Æ㣬°Ü±øÈôÒÔã³Ææ„¡£Ê¤ÕßÖ®Õ½£¬Èô¾ö»ýË®ì¶Ç§ØðÖ®ØGÕߣ¬ÐÎÒ²¡£ - -±øÊƵÚÎå - -Ëï×ÓÔ»£º·²ÖαŠÈçÖιѣ¬·ÖÊýÊÇÒ²£»¶·±ŠÈ綷¹Ñ£¬ÐÎÃûÊÇÒ²£»Èý¾üÖ®±Š£¬¿Éʹ±ØÊܵжøÎÞ°ÜÕߣ¬ÆæÕýÊÇÒ²£»±øÖ®Ëù¼Ó£¬ÈçÒÔ´VͶÂÑÕߣ¬ÐéʵÊÇÒ²¡£ - -·²Õ½Õߣ¬ÒÔÕýºÏ£¬ÒÔÆæʤ¡£¹ÊÉƳöÆæÕߣ¬ÎÞÇîÈçÌìµØ£¬²»½ßÈç½­º£¡£ÖÕ¶ø¸´Ê¼£¬ÈÕÔÂÊÇÒ²¡£ËÀ¶øÍÉú£¬ËÄʱÊÇÒ²¡£Éù²»¹ýÎ壬ÎåÉùÖ®±ä£¬²»¿ÉʤÌýÒ²£»É«²»¹ýÎ壬ÎåÉ«Ö®±ä£¬²»¿Éʤ¹ÛÒ²£»Î¶²»¹ýÎ壬Îåζ֮±ä£¬²»¿Éʤ³¢Ò²£»Õ½ÊÆ£¬²»¹ýÆæÕý£¬ÆæÕýÖ®±ä£¬²»¿ÉʤÇîÒ²¡£ÆæÕýÏàÉú£¬ÈçÑ­»·Ö®Î޶ˣ¬ÊìÄÜÇîÖ®ÔÕ£¿ - -¼¤Ë®Ö®¼²£¬ÖÁì¶Æ¯Ê¯Õߣ¬ÊÆÒ²£»úvÄñÖ®¼²£¬ÖÁ춻ÙÕÛÕߣ¬½ÚÒ²¡£ÊǹÊÉÆÕ½Õߣ¬ÆäÊÆÏÕ£¬Æä½Ú¶Ì¡£ÊÆÈçÕÅå󣬽ÚÈç·¢»ú¡£ - -·×·×¼‹¼‹£¬¶·ÂÒ¶ø²»¿ÉÂÒÒ²£»»ë»ëãçã磬ÐÎÔ²¶ø²»¿É°ÜÒ²¡£ÂÒÉúì¶ÖΣ¬ÇÓÉúì¶Ó£¬ÈõÉúì¶Ç¿¡£ÖÎÂÒ£¬ÊýÒ²£»ÓÂÇÓ£¬ÊÆÒ²£»Ç¿Èõ£¬ÐÎÒ²¡£¹ÊÉƶ¯µÐÕߣ¬ÐÎÖ®£¬µÐ±Ø´ÓÖ®£»ÓèÖ®£¬µÐ±ØÈ¡Ö®¡£ÒÔÀû¶¯Ö®£¬ÒÔ×ä´ýÖ®¡£ - -¹ÊÉÆÕ½Õߣ¬ÇóÖ®ì¶ÊÆ£¬²»Ôðì¶ÈË£»¹ÊÄÜÔñÈ˶øÈÎÊÆ¡£ÈÎÊÆÕߣ¬ÆäÕ½ÈËÒ²£¬Èçתľʯ¡£Ä¾Ê¯Ö®ÐÔ£¬°²Ôò¾²£¬Î£Ôò¶¯£¬·½ÔòÖ¹£¬Ô²ÔòÐС£¹ÊÉÆÕ½ÈËÖ®ÊÆ£¬ÈçתԲʯì¶Ç§Øð֮ɽÕߣ¬ÊÆÒ²¡£ - -ÐéʵµÚÁù - -Ëï×ÓÔ»£º·²ÏÈ´¦Õ½µØ¶ø´ýµÐÕßØý£¬ºó´¦Õ½µØ¶øÇ÷Õ½ÕßÀÍ¡£ - -¹ÊÉÆÕ½Õߣ¬ÖÂÈ˶ø²»ÖÂì¶ÈË¡£ÄÜʹµÐÈË×ÔÖÁÕߣ¬ÀûÖ®Ò²£»ÄÜʹµÐÈ˲»µÃÖÁÕߣ¬º¦Ö®Ò²¡£¹ÊµÐØýÄÜÀÍÖ®£¬±¥Äܼ¢Ö®£¬°²Äܶ¯Ö®¡£³öÆäËù±ØÇ÷£¬Ç÷ÆäËù²»Òâ¡£ÐÐǧÀï¶ø²»ÀÍÕߣ¬ÐÐì¶ÎÞÈËÖ®µØÒ²£»¹¥¶ø±ØÈ¡Õߣ¬¹¥ÆäËù²»ÊØÒ²¡£Êضø±Ø¹ÌÕߣ¬ÊØÆäËù²»¹¥Ò²¡£ - -¹ÊÉƹ¥Õߣ¬µÐ²»ÖªÆäËùÊØ£»ÉÆÊØÕߣ¬µÐ²»ÖªÆäËù¹¥¡£Î¢ºõ΢ºõ£¬ÖÁì¶ÎÞÐΣ»ÉñºõÉñºõ£¬ÖÁì¶ÎÞÉù£¬¹ÊÄÜžéµÐ֮˾Ãü¡£½ø¶ø²»¿ÉÓùÕߣ¬³åÆäÐéÒ²£»Í˶ø²»¿É×·Õߣ¬ËÙ¶ø²»¿É¼°Ò²¡£¹ÊÎÒÓûÕ½£¬µÐËä¸ßÀÝÉî¹µ£¬²»µÃ²»ÓëÎÒÕ½Õߣ¬¹¥ÆäËù±Ø¾ÈÒ²£»ÎÒ²»ÓûÕ½£¬Ëä»­µØ¶øÊØÖ®£¬µÐ²»µÃÓëÎÒÕ½Õߣ¬¹ÔÆäËùÖ®Ò²¡£¹ÊÐÎÈ˶øÎÒÎÞÐΣ¬ÔòÎÒר¶øµÐ·Ö¡£ÎÒרžéÒ»£¬µÐ·ÖžéÊ®£¬ÊÇÒÔÊ®¹¥ÆäÒ»Ò²¡£ÔòÎÒ±ŠµÐ¹Ñ£¬ÄÜÒÔ±Š»÷¹ÑÕߣ¬ÔòÎáÖ®ËùÓëÕ½ÕßÔ¼ÒÓ¡£ÎáËùÓëÕ½Ö®µØ²»¿ÉÖª£¬²»¿ÉÖªÔòµÐËù±¸Õ߶࣬µÐËù±¸Õ߶࣬ÔòÎáËùÓëÕ½Õß¹ÑÒÓ¡£¹Ê±¸Ç°Ôòºó¹Ñ£¬±¸ºóÔòÇ°¹Ñ£¬±¸×óÔòÓҹѣ¬±¸ÓÒÔò×ó¹Ñ£¬ÎÞËù²»±¸£¬ÔòÎÞËù²»¹Ñ¡£¹ÑÕߣ¬±¸ÈËÕßÒ²£»±ŠÕߣ¬Ê¹È˱¸¼ºÕßÒ²¡£¹ÊÖªÕ½Ö®µØ£¬ÖªÕ½Ö®ÈÕ£¬Ôò¿ÉǧÀï¶ø»áÕ½£»²»ÖªÕ½Ö®µØ£¬²»ÖªÕ½ÈÕ£¬Ôò×ó²»ÄܾÈÓÒ£¬ÓÒ²»ÄܾÈ×ó£¬Ç°²»ÄܾȺ󣬺ó²»ÄܾÈÇ°£¬¶ø¿öÔ¶ÕßÊýÊ®À½üÕßÊýÀïºõ£¡ÒÔÎá¶ÈÖ®£¬Ô½ÈËÖ®±øËä¶à£¬ÒàÞÉÒæì¶Ê¤ÔÕ£¡¹ÊÔ»£ºÊ¤¿ÉžéÒ²¡£µÐË䱊£¬¿ÉʹÎÞ¶·¡£¹Ê²ßÖ®¶øÖªµÃʧ֮¼Æ£¬ºòÖ®¶øÖª¶¯¾²Ö®Àí£¬ÐÎÖ®¶øÖªËÀÉúÖ®µØ£¬½ÇÖ®¶øÖªÓÐðN²»×ãÖ®´¦¡£¹ÊÐαøÖ®¼«£¬ÖÁì¶ÎÞÐΡ£ÎÞÐÎÔòÉî¼ä²»ÄÜ¿ú£¬ÖÇÕß²»ÄÜı¡£ÒòÐζø´ëʤ춱Š£¬±Š²»ÄÜÖª¡£È˽ÔÖªÎÒËùÒÔʤ֮ÐΣ¬¶øĪ֪ÎáËùÒÔÖÆʤ֮ÐΡ£¹ÊÆäսʤ²»Í£¬¶øÓ¦ÐÎì¶ÎÞÇî¡£·ò±øÐÎÏóË®£¬Ë®Ö®Ðбܸ߶øÇ÷Ï£¬±øÖ®ÐαÜʵ¶ø»÷Ð飻ˮÒòµØ¶øÖÆÁ÷£¬±øÒòµÐ¶øÖÆʤ¡£¹Ê±øÎÞ³£ÊÆ£¬Ë®ÎÞ³£ÐΡ£ÄÜÒòµÐ±ä»¯¶øȡʤÕߣ¬Î½Ö®Éñ¡£¹ÊÎåÐÐÎÞ³£Ê¤£¬ËÄʱÎÞ³£Î»£¬ÈÕÓж̳¤£¬ÔÂÓÐËÀÉú¡£ - -¾üÕùµÚÆß - -Ëï×ÓÔ»£º ·²ÓñøÖ®·¨£¬½«ÊÜÃü춾ý£¬ºÏ¾ü¾Û±Š£¬½»ºÍ¶øÉᣬĪÄÑ춾üÕù¡£¾üÕùÖ®ÄÑÕߣ¬ÒÔÓØžéÖ±£¬ÒÔ»¼žéÀû¡£¹ÊÓØÆä;£¬¶øÓÕÖ®ÒÔÀû£¬ºóÈË·¢£¬ÏÈÈËÖÁ£¬´ËÖªÓØÖ±Ö®¼ÆÕßÒ²¡£¾üÕùžéÀû£¬¾üÕùžéΣ¡£¾Ù¾ü¶øÕùÀûÔò²»¼°£¬Î¯¾ü¶øÕùÀûÔòÝwÖؾ衣ÊǹʒԼ׶øÇ÷£¬ÈÕÒ¹²»´¦£¬±¶µÀ¼æÐУ¬°ÙÑe¶øÕùÀû£¬ÔòÇÜÈý½«¾ü£¬¾¢ÕßÏÈ£¬Æ£Õߺó£¬Æ䷨ʮһ¶øÖÁ£»ÎåÊ®Àï¶øÕùÀû£¬ÔòõêÉϽ«¾ü£¬Æä·¨°ëÖÁ£»ÈýÊ®Àï¶øÕùÀû£¬ÔòÈý·ÖÖ®¶þÖÁ¡£ÊǹʾüÎÞÝwÖØÔòÍö£¬ÎÞÁ¸Ê³ÔòÍö£¬ÎÞί»ýÔòÍö¡£¹Ê²»ÖªÖîºî֮ıÕߣ¬²»ÄÜÔ¥½»£»²»ÖªÉ½ÁÖ¡¢ÏÕ×è¡¢¾ÚÔóÖ®ÐÎÕߣ¬²»ÄÜÐоü£»²»ÓÃÏçµ¼Õߣ¬²»ÄܵõØÀû¡£¹Ê±øÒÔÕ©Á¢£¬ÒÔÀû¶¯£¬ÒԷֺ͞é±äÕßÒ²¡£¹ÊÆä¼²Èç·ç£¬ÆäÐìÈçÁÖ£¬ÇÖÂÓÈç»ð£¬²»¶¯Èçɽ£¬ÄÑÖªÈçÒõ£¬¶¯ÈçÀ×Õð¡£ÂÓÏç·Ö±Š£¬ÀªµØ·ÖÀû£¬ÐüȨ¶ø¶¯¡£ÏÈÖªÓØÖ±Ö®¼ÆÕßʤ£¬´Ë¾üÕùÖ®·¨Ò²¡£¡¶¾üÕþ¡·Ô»£º¡°ÑÔ²»ÏàÎÅ£¬¹ÊžéÖ®½ð¹Ä£»ÊÓ²»Ïà¼û£¬¹ÊžéÖ®ìºÆì¡£¡±·ò½ð¹ÄìºÆìÕߣ¬ËùÒÔÒ»ÃñÖ®¶úÄ¿Ò²¡£Ãñ¼Èרһ£¬ÔòÓÂÕß²»µÃ¶À½ø£¬ÇÓÕß²»µÃ¶ÀÍË£¬´ËÓñŠÖ®·¨Ò²¡£¹ÊÒ¹Õ½¶à½ð¹Ä£¬ÖçÕ½¶àìºÆ죬ËùÒÔ±äÈËÖ®¶úÄ¿Ò²¡£Èý¾ü¿É¶áÆø£¬½«¾ü¿É¶áÐÄ¡£Êǹʳ¯ÆøÈñ£¬ÖçÆø¶è£¬ÄºÆø¹é¡£ÉÆÓñøÕߣ¬±ÜÆäÈñÆø£¬»÷Æä¶è¹é£¬´ËÖÎÆøÕßÒ²¡£ÒÔÖδýÂÒ£¬ÒÔ¾²´ý»©£¬´ËÖÎÐÄÕßÒ²¡£ÒÔ½ü´ýÔ¶£¬ÒÔØý´ýÀÍ£¬ÒÔ±¥´ý¼¢£¬´ËÖÎÁ¦ÕßÒ²¡£ÎÞÑûÕýÕýÖ®Æ죬ÎÞ»÷ÌÃÌÃÖ®³Â£¬´ËÖαäÕßÒ²¡£¹ÊÓñøÖ®·¨£¬¸ßÁêÎðÏò£¬±³ÇðÎðÄ棬Ñð±±Îð´Ó£¬Èñ×äÎð¹¥£¬¶ü±øÎðʳ£¬¹éʦÎð¶ô£¬Î§Ê¦ÒÅêI£¬Çî¿ÜÎðÆÈ£¬´ËÓñøÖ®·¨Ò²¡£ - -¾Å±äµÚ°Ë - -Ëï×ÓÔ»£º ·²ÓñøÖ®·¨£¬½«ÊÜÃü춾ý£¬ºÏ¾ü¾ÛºÏ¡£·ºµØÎÞÉᣬáéµØºÏ½»£¬¾øµØÎÞÁô£¬Î§µØÔòı£¬ËÀµØÔòÕ½£¬Í¾ÓÐËù²»ÓÉ£¬¾üÓÐËù²»»÷£¬³ÇÓÐËù²»¹¥£¬µØÓÐËù²»Õù£¬¾ýÃüÓÐËù²»ÊÜ¡£¹Ê½«Í¨ì¶¾Å±äÖ®ÀûÕߣ¬ÖªÓñøÒÓ£»½«²»Í¨¾Å±äÖ®Àû£¬ËäÖªµØÐΣ¬²»ÄܵõØÖ®ÀûÒÓ£»Öαø²»Öª¾Å±äÖ®Êõ£¬ËäÖªÎåÀû£¬²»ÄܵÃÈËÖ®ÓÃÒÓ¡£ÊǹÊÖÇÕßÖ®ÂÇ£¬±ØÔÓì¶Àûº¦£¬ÔÓì¶Àû¶øÎñ¿ÉÐÅÒ²£¬ÔÓ춺¦¶ø»¼¿É½âÒ²¡£ÊǹÊÇüÖîºîÕßÒÔº¦£¬ÒÛÖîºîÕßÒÔÒµ£¬Ç÷ÖîºîÕßÒÔÀû¡£¹ÊÓñøÖ®·¨£¬ÎÞÊÑÆä²»À´£¬ÊÑÎáÓÐÒÔ´ýÖ®£»ÎÞÊÑÆä²»¹¥£¬ÊÑÎáÓÐËù²»¿É¹¥Ò²¡£¹Ê½«ÓÐÎåΣ£¬±ØËÀ¿Éɱ£¬±ØÉú¿É²£¬·ÞËÙ¿ÉÎ꣬Á®½à¿ÉÈ裬°®Ãñ¿É·³¡£·²´ËÎåÕߣ¬½«Ö®¹ýÒ²£¬ÓñøÖ®ÔÖÒ²¡£¸²¾üɱ½«£¬±ØÒÔÎåΣ£¬²»¿É²»²ìÒ²¡£ - -ÐоüµÚ¾Å - -Ëï×ÓÔ»£º·²´¦¾üÏàµÐ£¬¾øɽÒÀ·Y£¬ÊÓÉú´¦¸ß£¬Õ½Â¡Î޵ǣ¬´Ë´¦É½Ö®¾üÒ²¡£¾øË®±ØԶˮ£¬¿Í¾øË®¶øÀ´£¬ÎðÓ­Ö®ì¶Ë®ÄÚ£¬Áî°ë¶É¶ø»÷Ö®Àû£¬ÓûÕ½Õߣ¬ÎÞ¸½ì¶Ë®¶øÓ­¿Í£¬ÊÓÉú´¦¸ß£¬ÎÞÓ­Ë®Á÷£¬´Ë´¦Ë®ÉÏÖ®¾üÒ²¡£¾ø³âÔó£¬Î¨Ø½È¥ÎÞÁô£¬Èô½»¾ü춳âÔóÖ®ÖУ¬±ØÒÀË®²Ý¶ø±³±ŠÊ÷£¬´Ë´¦³âÔóÖ®¾üÒ²¡£Æ½Â½´¦Ò×£¬ÓÒ±³¸ß£¬Ç°ËÀºóÉú£¬´Ë´¦Æ½Â½Ö®¾üÒ²¡£·²´ËËľüÖ®Àû£¬»ÆµÛÖ®ËùÒÔʤËĵÛÒ²¡£·²¾üºÃ¸ß¶ø¶ñÏ£¬¹óÑô¶ø¼úÒõ£¬ÑøÉú¶ø´¦Êµ£¬¾üÎÞ°Ù¼²£¬ÊÇν±Øʤ¡£ÇðÁêµÌ·À£¬±Ø´¦ÆäÑô¶øÓÒ±³Ö®£¬´Ë±øÖ®Àû£¬µØÖ®ÖúÒ²¡£ÉÏÓêË®Á÷ÖÁ£¬ÓûÉæÕߣ¬´ýÆ䶨Ҳ¡£·²µØÓоø½§¡¢Ìì¾®¡¢ÌìÀΡ¢ÌìÂÞ¡¢ÌìÏÝ¡¢Ìì϶£¬±Øؽȥ֮£¬Îð½üÒ²¡£ÎáÔ¶Ö®£¬µÐ½üÖ®£»ÎáÓ­Ö®£¬µÐ±³Ö®¡£¾üÅÔÓÐÏÕ×è¡¢äê¾®¡¢ÝóÝ硢СÁÖ¡¢Ì[ËCÕߣ¬±Ø½÷¸²Ë÷Ö®£¬´Ë·üŠ¦Ö®Ëù´¦Ò²¡£µÐ½ü¶ø¾²Õߣ¬ÊÑÆäÏÕÒ²£»Ô¶¶øÌôÕ½Õߣ¬ÓûÈËÖ®½øÒ²£»ÆäËù¾ÓÒ×Õߣ¬ÀûÒ²£»±ŠÊ÷¶¯Õߣ¬À´Ò²£»±Š²Ý¶àÕÏÕߣ¬ÒÉÒ²£»ÄñÆðÕߣ¬·üÒ²£»ÊÞº§Õߣ¬¸²Ò²£»³¾¸ß¶øÈñÕߣ¬³µÀ´Ò²£»±°¶ø¹ãÕߣ¬Í½À´Ò²£»É¢¶øÌõ´ïÕߣ¬éÔ’ñÒ²£»ÉÙ¶øÍùÀ´Õߣ¬Óª¾üÒ²£»´Ç±°¶ø±¸Õߣ¬½øÒ²£»´ÇÇ¿¶ø½øÇýÕߣ¬ÍËÒ²£»Çá³µÏȳö¾ÓÆä²àÕߣ¬³ÂÒ²£»ÎÞÔ¼¶øÇëºÍÕߣ¬Ä±Ò²£»±¼×߶ø³Â±øÕߣ¬ÆÚÒ²£»°ë½ø°ëÍËÕߣ¬ÓÕÒ²£»ÕȶøÁ¢Õߣ¬¼¢Ò²£»¼³¶øÏÈÒûÕߣ¬¿ÊÒ²£»¼ûÀû¶ø²»½øÕߣ¬ÀÍÒ²£»Äñ¼¯Õߣ¬ÐéÒ²£»Ò¹ºôÕߣ¬¿ÖÒ²£»¾üÈÅÕߣ¬½«²»ÖØÒ²£»ìºÆ춯Õߣ¬ÂÒÒ²£»ÀôÅ­Õߣ¬¾ëÒ²£»É±ÂíÈâʳÕߣ¬¾üÎÞÁ¸Ò²£»Ðü®I²»·µÆäÉáÕߣ¬Çî¿ÜÒ²£»×»×»ôâô⣬ÐìÓëÈËÑÔÕߣ¬Ê§±ŠÒ²£»ÊýÉÍÕߣ¬¾½Ò²£»Êý·£Õߣ¬À§Ò²£»Ïȱ©¶øºóηÆ䱊Õߣ¬²»¾«Ö®ÖÁÒ²£»À´Î¯Ð»Õߣ¬ÓûÐÝÏ¢Ò²¡£±øÅ­¶øÏàÓ­£¬¾Ã¶ø²»ºÏ£¬ÓÖ²»ÏàÈ¥£¬±Ø½÷²ìÖ®¡£±ø·Ç¹óÒæ¶àÒ²£¬Î©ÎÞÎä½ø£¬×ãÒÔ²¢Á¦ÁϵÐÈ¡È˶øÒÑ¡£·òΩÎÞÂǶøÒ×µÐÕߣ¬±ØÇÜì¶ÈË¡£×äδÇ׶ø·£Ö®£¬Ôò²»·þ£¬²»·þÔòÄÑÓá£×äÒÑÇ׸½¶ø·£²»ÐУ¬Ôò²»¿ÉÓ᣹ʺÏÖ®ÒÔÎÄ£¬ÆëÖ®ÒÔÎ䣬ÊÇν±ØÈ¡¡£ÁîËØÐÐÒÔ½ÌÆäÃñ£¬ÔòÃñ·þ£»ÁîËز»ÐÐÒÔ½ÌÆäÃñ£¬ÔòÃñ²»·þ¡£ÁîËØÐÐÕߣ¬Ó뱊ÏàµÃÒ²¡£ - -µØÐεÚÊ® - -Ëï×ÓÔ»£ºµØÐÎÓÐͨÕß¡¢ÓÐ’ìÕß¡¢ÓÐÖ§Õß¡¢Óа¯Õß¡¢ÓÐÏÕÕß¡¢ÓÐÔ¶Õß¡£ÎÒ¿ÉÒÔÍù£¬±Ë¿ÉÒÔÀ´£¬Ô»Í¨¡£Í¨ÐÎÕߣ¬ÏȾӸßÑô£¬ÀûÁ¸µÀ£¬ÒÔÕ½ÔòÀû¡£¿ÉÒÔÍù£¬ÄÑÒÔ·µ£¬Ô»’ì¡£’ìÐÎÕߣ¬µÐÎÞ±¸£¬³ö¶øʤ֮£¬µÐÈôÓб¸£¬³ö¶ø²»Ê¤£¬ÄÑÒÔ·µ£¬²»Àû¡£ÎÒ³ö¶ø²»Àû£¬±Ë³ö¶ø²»Àû£¬Ô»Ö§¡£Ö§ÐÎÕߣ¬µÐËäÀûÎÒ£¬ÎÒÎÞ³öÒ²£¬Òý¶øÈ¥Ö®£¬ÁîµÐ°ë³ö¶ø»÷Ö®Àû¡£°¯ÐÎÕߣ¬ÎÒÏȾÓÖ®£¬±ØÓ¯Ö®ÒÔ´ýµÐ¡£ÈôµÐÏȾÓÖ®£¬Ó¯¶øÎð´Ó£¬²»Ó¯¶ø´ÓÖ®¡£ÏÕÐÎÕߣ¬ÎÒÏȾÓÖ®£¬±Ø¾Ó¸ßÑôÒÔ´ýµÐ£»ÈôµÐÏȾÓÖ®£¬Òý¶øÈ¥Ö®£¬Îð´ÓÒ²¡£Ô¶ÐÎÕߣ¬ÊƾùÄÑÒÔÌôÕ½£¬Õ½¶ø²»Àû¡£·²´ËÁùÕߣ¬µØÖ®µÀÒ²£¬½«Ö®ÖÁÈΣ¬²»¿É²»²ìÒ²¡£·²±øÓÐ×ßÕß¡¢ÓгÛÕß¡¢ÓÐÏÝÕß¡¢ÓбÀÕß¡¢ÓÐÂÒÕß¡¢Óб±Õß¡£·²´ËÁùÕߣ¬·ÇÌìµØÖ®ÔÖ£¬½«Ö®¹ýÒ²¡£·òÊƾù£¬ÒÔÒ»»÷Ê®£¬Ô»×ߣ»×äÇ¿ÀôÈõ£¬Ô»³Û£»ÀôÇ¿×äÈõ£¬Ô»ÏÝ£»´óÀôÅ­¶ø²»·þ£¬ÓöµÐ‘»¶ø×ÔÕ½£¬½«²»ÖªÆäÄÜ£¬Ô»±À£»½«Èõ²»ÑÏ£¬½ÌµÀ²»Ã÷£¬Àô×äÎÞ³££¬³Â±ø×ݺᣬԻÂÒ£»½«²»ÄÜÁϵУ¬ÒÔÉٺϱŠ£¬ÒÔÈõ»÷Ç¿£¬±øÎÞÑ¡·æ£¬Ô»±±¡£·²´ËÁùÕߣ¬°ÜÖ®µÀÒ²£¬½«Ö®ÖÁÈΣ¬²»¿É²»²ìÒ²¡£·òµØÐÎÕߣ¬±øÖ®ÖúÒ²¡£ÁϵÐÖÆʤ£¬¼ÆÏÕ°¯Ô¶½ü£¬ÉϽ«Ö®µÀÒ²¡£Öª´Ë¶øÓÃÕ½Õß±Øʤ£¬²»Öª´Ë¶øÓÃÕ½Õ߱ذܡ£¹ÊÕ½µÀ±Øʤ£¬Ö÷Ô»ÎÞÕ½£¬±ØÕ½¿ÉÒ²£»Õ½µÀ²»Ê¤£¬Ö÷Ô»±ØÕ½£¬ÎÞÕ½¿ÉÒ²¡£¹Ê½ø²»ÇóÃû£¬Í˲»±Ü×ΨÃñÊDZ££¬¶øÀûì¶Ö÷£¬¹úÖ®±¦Ò²¡£ÊÓ×äÈçÓ¤¶ù£¬¹Ê¿ÉÒÔÓëÖ®¸°ÉîϪ£»ÊÓ×äÈç°®×Ó£¬¹Ê¿ÉÓëÖ®¾ãËÀ¡£ºñ¶ø²»ÄÜʹ£¬°®¶ø²»ÄÜÁÂÒ¶ø²»ÄÜÖΣ¬Æ©Èô½¾×Ó£¬²»¿ÉÓÃÒ²¡£ÖªÎá×äÖ®¿ÉÒÔ»÷£¬¶ø²»ÖªµÐÖ®²»¿É»÷£¬Ê¤Ö®°ëÒ²£»ÖªµÐÖ®¿É»÷£¬¶ø²»ÖªÎá×äÖ®²»¿ÉÒÔ»÷£¬Ê¤Ö®°ëÒ²£»ÖªµÐÖ®¿É»÷£¬ÖªÎá×äÖ®¿ÉÒÔ»÷£¬¶ø²»ÖªµØÐÎÖ®²»¿ÉÒÔÕ½£¬Ê¤Ö®°ëÒ²¡£¹ÊÖª±øÕߣ¬¶¯¶ø²»ÃÔ£¬¾Ù¶ø²»Çî¡£¹ÊÔ»£ºÖª±ËÖª¼º£¬Ê¤Ä˲»´ù£»ÖªÌìÖªµØ£¬Ê¤ÄË¿ÉÈ«¡£ - -¾ÅµØµÚʮһ - -Ëï×ÓÔ»£ºÓñøÖ®·¨£¬ÓÐÉ¢µØ£¬ÓÐÇáµØ£¬ÓÐÕùµØ£¬Óн»µØ£¬ÓÐáéµØ£¬ÓÐÖصأ¬ÓзºµØ£¬ÓÐΧµØ£¬ÓÐËÀµØ¡£Öîºî×ÔÕ½ÆäµØÕߣ¬žéÉ¢µØ£»ÈëÈËÖ®µØ²»ÉîÕߣ¬žéÇáµØ£»ÎÒµÃÒàÀû£¬±ËµÃÒàÀûÕߣ¬žéÕùµØ£»ÎÒ¿ÉÒÔÍù£¬±Ë¿ÉÒÔÀ´Õߣ¬žé½»µØ£»ÖîºîÖ®µØÈýÊô£¬ÏÈÖÁ¶øµÃÌìϱŠÕߣ¬žéáéµØ£»ÈëÈËÖ®µØÉ±³³ÇÒضàÕߣ¬žéÖصأ»É½ÁÖ¡¢ÏÕ×è¡¢¾ÚÔ󣬷²ÄÑÐÐÖ®µÀÕߣ¬žé·ºµØ£»ËùÓÉÈëÕß°¯£¬Ëù´Ó¹éÕßÓØ£¬±Ë¹Ñ¿ÉÒÔ»÷ÎáÖ®±ŠÕߣ¬žéΧµØ£»¼²Õ½Ôò´æ£¬²»¼²Õ½ÔòÍöÕߣ¬žéËÀµØ¡£ÊǹÊÉ¢µØÔòÎÞÕ½£¬ÇáµØÔòÎÞÖ¹£¬ÕùµØÔòÎÞ¹¥£¬½»µØÔòÎÞ¾ø£¬áéµØÔòºÏ½»£¬ÖصØÔòÂÓ£¬·ºµØÔòÐУ¬Î§µØÔòı£¬ËÀµØÔòÕ½¡£¹ÅÖ®ÉÆÓñøÕߣ¬ÄÜʹµÐÈËÇ°ºó²»Ï༰£¬±Š¹Ñ²»ÏàÊÑ£¬¹ó¼ú²»Ïà¾È£¬ÉÏϲ»ÏàÊÕ£¬×äÀë¶ø²»¼¯£¬±øºÏ¶ø²»Æë¡£ºÏì¶Àû¶ø¶¯£¬²»ºÏì¶Àû¶øÖ¹¡£¸ÒÎʵбŠ¶øÕû½«À´£¬´ýÖ®ÈôºÎÔ»£ºÏȶáÆäËù°®ÔòÌýÒÓ¡£±øÖ®ÇéÖ÷ËÙ£¬³ËÈËÖ®²»¼°¡£Óɲ»ÓÝÖ®µÀ£¬¹¥ÆäËù²»½äÒ²¡£·²žé¿ÍÖ®µÀ£¬ÉîÈëÔòר¡£Ö÷È˲»¿Ë£¬ÂÓì¶ÈÄÒ°£¬Èý¾ü×ãʳ¡£½÷Ñø¶øÎðÀÍ£¬²¢Æø»ýÁ¦£¬Ô˱ø¼Æı£¬žé²»¿É²â¡£Í¶Ö®ÎÞËùÍù£¬ËÀÇÒ²»±±¡£ËÀÑɲ»µÃ£¬Ê¿È˾¡Á¦¡£±øÊ¿ÉõÏÝÔò²»¾å£¬ÎÞËùÍùÔò¹Ì£¬ÉîÈëÔò¾Ð£¬²»µÃÒÑÔò¶·¡£ÊǹÊÆä±ø²»ÐÞ¶ø½ä£¬²»Çó¶øµÃ£¬²»Ô¼¶øÇ×£¬²»Áî¶øÐÅ£¬½ûÏéÈ¥ÒÉ£¬ÖÁËÀÎÞËùÖ®¡£ÎáÊ¿ÎÞðN²Æ£¬·Ç¶ñ»õÒ²£»ÎÞðNÃü£¬·Ç¶ñÊÙÒ²¡£Áî·¢Ö®ÈÕ£¬Ê¿×ä×øÕßÌéÕ´½ó£¬ÙÈÎÔÕßÌé½»Òã¬Í¶Ö®ÎÞËùÍù£¬Öî¡¢„¥Ö®ÓÂÒ²¡£¹ÊÉÆÓñøÕߣ¬Æ©ÈçÂÊÈ»¡£ÂÊÈ»Õߣ¬³£É½Ö®ÉßÒ²¡£»÷ÆäÊ×ÔòβÖÁ£¬»÷ÆäβÔòÊ×ÖÁ£¬»÷ÆäÖÐÔòÊ×β¾ãÖÁ¡£¸ÒÎʱø¿ÉʹÈçÂÊÈ»ºõ£¿Ô»¿É¡£·òÎâÈËÓëÔ½ÈËÏà¶ñÒ²£¬µ±ÆäͬÖÛ¶ø¼Ã¶øÓö·ç£¬ÆäÏà¾ÈÒ²Èç×óÓÒÊÖ¡£Êǹʷ½ÂíÂñÂÖ£¬Î´×ãÊÑÒ²£»ÆëÓÂÈçÒ»£¬ÕþÖ®µÀÒ²£»¸ÕÈá½ÔµÃ£¬µØÖ®ÀíÒ²¡£¹ÊÉÆÓñøÕߣ¬Ð¯ÊÖÈôʹһÈË£¬²»µÃÒÑÒ²¡£½«¾ü֮ʣ¬¾²ÒÔÓÄ£¬ÕýÒÔÖΣ¬ÄÜÓÞÊ¿×äÖ®¶úÄ¿£¬Ê¹Ö®ÎÞÖª£»Ò×ÆäÊ£¬¸ïÆäı£¬Ê¹ÈËÎÞʶ£»Ò×Æä¾Ó£¬ÓØÆä;£¬Ê¹Ãñ²»µÃÂÇ¡£Ë§ÓëÖ®ÆÚ£¬ÈçµÇ¸ß¶øÈ¥ÆäÌÝ£»Ë§ÓëÖ®ÉîÈëÖîºîÖ®µØ£¬¶ø·¢Æä»ú¡£ÈôÇýȺÑò£¬Çý¶øÍù£¬Çý¶øÀ´£¬ÄªÖªËùÖ®¡£¾ÛÈý¾üÖ®±Š£¬Í¶Ö®ì¶ÏÕ£¬´Ëν½«¾üÖ®ÊÂÒ²¡£¾ÅµØÖ®±ä£¬ÇüÉìÖ®Á¦£¬ÈËÇéÖ®Àí£¬²»¿É²»²ìÒ²¡£·²žé¿ÍÖ®µÀ£¬ÉîÔòר£¬Ç³ÔòÉ¢¡£È¥¹úÔ½¾³¶øʦÕߣ¬¾øµØÒ²£»Ëij¹Õߣ¬áéµØÒ²£»ÈëÉîÕߣ¬ÖصØÒ²£»ÈëdzÕߣ¬ÇáµØÒ²£»±³¹ÌÇ°°¯Õߣ¬Î§µØÒ²£»ÎÞËùÍùÕߣ¬ËÀµØÒ²¡£ÊǹÊÉ¢µØÎὫһÆäÖ¾£¬ÇáµØÎὫʹ֮Êô£¬ÕùµØÎὫÇ÷Æäºó£¬½»µØÎὫ½÷ÆäÊØ£¬½»µØÎὫ¹ÌÆä½á£¬áéµØÎὫ½÷ÆäÊÑ£¬ÖصØÎὫ¼ÌÆäʳ£¬·ºµØÎὫ½øÆä;£¬Î§µØÎὫÈûÆäêI£¬ËÀµØÎὫʾ֮ÒÔ²»»î¡£¹Ê±øÖ®Ç飺ΧÔòÓù£¬²»µÃÒÑÔò¶·£¬¹ýÔò´Ó¡£Êǹʲ»ÖªÖîºî֮ıÕߣ¬²»ÄÜÔ¤½»£»²»ÖªÉ½ÁÖ¡¢ÏÕ×è¡¢¾ÚÔóÖ®ÐÎÕߣ¬²»ÄÜÐоü£»²»ÓÃÏçµ¼£¬²»ÄܵõØÀû¡£ËÄÎåÕߣ¬Ò»²»Öª£¬·Ç°ÔÍõÖ®±øÒ²¡£·ò°ÔÍõÖ®±ø£¬·¥´ó¹ú£¬ÔòÆ䱊²»µÃ¾Û£»Íþ¼Ó춵У¬ÔòÆä½»²»µÃºÏ¡£Êǹʲ»ÕùÌìÏÂÖ®½»£¬²»ÑøÌìÏÂ֮Ȩ£¬ÐżºÖ®Ë½£¬Íþ¼Ó춵У¬ÔòÆä³Ç¿É°Î£¬Æä¹ú¿ÉãÄ¡£Ê©ÎÞ·¨Ö®ÉÍ£¬ÐüÎÞÕþÖ®Áî¡£·¸Èý¾üÖ®±Š£¬ÈôʹһÈË¡£·¸Ö®ÒÔÊ£¬Îð¸æÒÔÑÔ£»·¸Ö®ÒÔº¦£¬Îð¸æÒÔÀû¡£Í¶Ö®ÍöµØÈ»ºó´æ£¬ÏÝÖ®ËÀµØÈ»ºóÉú¡£·ò±ŠÏÝ춺¦£¬È»ºóÄÜžéʤ°Ü¡£¹Êžé±ø֮ʣ¬ÔÚ˳ÏêµÐÖ®Ò⣬²¢µÐÒ»Ïò£¬Ç§Àïɱ½«£¬ÊÇνÇÉÄܳÉÊ¡£ÊǹÊÕþ¾ÙÖ®ÈÕ£¬ÒĹØÕÛ·û£¬ÎÞͨÆäʹ£¬À÷ì¶ÀÈÃíÖ®ÉÏ£¬ÒÔÖïÆäÊ¡£µÐÈË¿ªêH£¬±ØؽÈëÖ®£¬ÏÈÆäËù°®£¬Î¢ÓëÖ®ÆÚ£¬¼ùÄ«ËæµÐ£¬ÒÔ¾öսʡ£ÊǹÊʼÈ紦Ů£¬µÐÈË¿ª»§£»ºóÈçÍÑÍ㬵в»¼°¾Ü¡£ - -»ð¹¥µÚÊ®¶þ - -Ëï×ÓÔ»£º·²»ð¹¥ÓÐÎ壺һԻ»ðÈË£¬¶þÔ»»ð»ý£¬ÈýÔ»»ðÝw£¬ËÄÔ»»ð¿â£¬ÎåÔ»»ð¶Ó¡£Ðлð±ØÓÐÒò£¬Òò±ØËؾߡ£·¢»ðÓÐʱ£¬Æð»ðÓÐÈÕ¡£Ê±Õߣ¬ÌìÖ®ÔïÒ²¡£ÈÕÕߣ¬ÔÂÔÚ»þ¡¢±Ú¡¢Òí¡¢ÝFÒ²¡£·²´ËËÄËÞÕߣ¬·çÆðÖ®ÈÕÒ²¡£·²»ð¹¥£¬±ØÒòÎå»ðÖ®±ä¶øÓ¦Ö®£º»ð·¢ì¶ÄÚ£¬ÔòÔçÓ¦Ö®ì¶Í⣻»ð·¢¶øÆä±ø¾²Õߣ¬´ý¶øÎð¹¥£¬¼«Æä»ðÁ¦£¬¿É´Ó¶ø´ÓÖ®£¬²»¿É´ÓÔòÉÏ¡£»ð¿É·¢ì¶Í⣬ÎÞ´ýì¶ÄÚ£¬ÒÔʱ·¢Ö®£¬»ð·¢ÉϷ磬ÎÞ¹¥Ï·磬Öç·ç¾Ã£¬Ò¹·çÖ¹¡£·²¾ü±ØÖªÎå»ðÖ®±ä£¬ÒÔÊýÊØÖ®¡£¹ÊÒÔ»ð×ô¹¥ÕßÃ÷£¬ÒÔË®×ô¹¥ÕßÇ¿¡£Ë®¿ÉÒÔ¾ø£¬²»¿ÉÒԶᡣ·òսʤ¹¥È¡¶ø²»¶èÆ书ÕßÐ×£¬ÃüÔ»¡°·ÑÁô¡±¡£¹ÊÔ»£ºÃ÷Ö÷ÂÇÖ®£¬Á¼½«¶èÖ®£¬·ÇÀû²»¶¯£¬·ÇµÃ²»Ó㬷ÇΣ²»Õ½¡£Ö÷²»¿ÉÒÔÅ­¶øÐËʦ£¬½«²»¿ÉÒÔ‘C¶ø¹¥Õ½¡£ºÏì¶Àû¶ø¶¯£¬²»ºÏì¶Àû¶øÉÏ¡£Å­¿ÉÒÔ¸´Ï²£¬‘C¿ÉÒÔ¸´Ëµ£¬Íö¹ú²»¿ÉÒÔ¸´´æ£¬ËÀÕß²»¿ÉÒÔ¸´Éú¡£¹ÊÃ÷Ö÷É÷Ö®£¬Á¼½«¾¯Ö®¡£´Ë°²¹úÈ«¾üÖ®µÀÒ²¡£ - -ÓüäµÚÊ®Èý - -Ëï×ÓÔ»£º ·²ÐËʦʮÍò£¬³öÕ÷ǧÀ°ÙÐÕÖ®·Ñ£¬¹«¼ÒÖ®·î£¬ÈÕ·Ñǧ½ð£¬ÄÚÍâɧ¶¯£¬µ¡ì¶µÀ·£¬²»µÃ²ÙÊÂÕߣ¬ÆßÊ®Íò¼Ò¡£ÏàÊØÊýÄ꣬ÒÔÕùÒ»ÈÕ֮ʤ£¬¶ø°®¾ô»°Ù½ð£¬²»ÖªµÐÖ®ÇéÕߣ¬²»ÈÊÖ®ÖÁÒ²£¬·ÇÃñÖ®½«Ò²£¬·ÇÖ÷Ö®×ôÒ²£¬·Çʤ֮Ö÷Ò²¡£¹ÊÃ÷¾ýÏͽ«ËùÒÔ¶¯¶øʤÈË£¬³É¹¦³ö춱ŠÕߣ¬ÏÈÖªÒ²¡£ÏÈÖªÕߣ¬²»¿Éȡ춹íÉñ£¬²»¿ÉÏóì¶Ê£¬²»¿ÉÑé춶ȣ¬±ØÈ¡ì¶ÈË£¬ÖªµÐÖ®ÇéÕßÒ²¡£¹ÊÓüäÓÐÎ壺ÓÐÒò¼ä£¬ÓÐÄڼ䣬Óз´¼ä£¬ÓÐËÀ¼ä£¬ÓÐÉú¼ä¡£Îå¼ä¾ãÆð£¬ÄªÖªÆäµÀ£¬ÊÇνÉñ¼Í£¬È˾ýÖ®±¦Ò²¡£Ïç¼äÕߣ¬ÒòÆäÏçÈ˶øÓÃÖ®£»ÄÚ¼äÕߣ¬ÒòÆä¹ÙÈ˶øÓÃÖ®£»·´¼äÕߣ¬ÒòÆäµÐ¼ä¶øÓÃÖ®£»ËÀ¼äÕߣ¬žéÕNÊÂì¶Í⣬ÁîÎáÎÅÖªÖ®¶ø´«ì¶µÐ¼äÒ²£»Éú¼äÕߣ¬·´±¨Ò²¡£¹ÊÈý¾ü֮ʣ¬ÄªÇ×춼䣬ÉÍĪºñ춼䣬ÊÂĪÃÜ춼䣬·ÇÊ¥ÏͲ»ÄÜÓü䣬·ÇÈÊÒå²»ÄÜʹ¼ä£¬·Ç΢Ãî²»Äܵüä֮ʵ¡£Î¢ÔÕ΢ÔÕ£¡ÎÞËù²»ÓüäÒ²¡£¼äÊÂδ·¢¶øÏÈÎÅÕߣ¬¼äÓëËù¸æÕß¼æËÀ¡£·²¾üÖ®ËùÓû»÷£¬³ÇÖ®ËùÓû¹¥£¬ÈËÖ®ËùÓûɱ£¬±ØÏÈÖªÆäÊؽ«¡¢×óÓÒ¡¢Ö]Õß¡¢ÃÅÕß¡¢ÉáÈËÖ®ÐÕÃû£¬ÁîÎá¼ä±ØË÷ÖªÖ®¡£µÐ¼äÖ®À´¼äÎÒÕߣ¬Òò¶øÀûÖ®£¬µ¼¶øÉáÖ®£¬¹Ê·´¼ä¿ÉµÃ¶øÓÃÒ²£»ÒòÊǶøÖªÖ®£¬¹ÊÏç¼ä¡¢ÄÚ¼ä¿ÉµÃ¶øʹҲ£»ÒòÊǶøÖªÖ®£¬¹ÊËÀ¼äžéÕNÊ£¬¿Éʹ¸æµÐ£»ÒòÊǶøÖªÖ®£¬¹ÊÉú¼ä¿ÉʹÈçÆÚ¡£Îå¼ä֮ʣ¬Ö÷±ØÖªÖ®£¬ÖªÖ®±ØÔÚ춷´¼ä£¬¹Ê·´¼ä²»¿É²»ºñÒ²¡£ÎôÒóÖ®ÐËÒ²£¬ÒÁÖ¿ÔÚÏÄ£»ÖÜÖ®ÐËÒ²£¬ÂÀÑÀÔÚÒó¡£¹ÊÃ÷¾ýÏͽ«£¬ÄÜÒÔÉÏÖÇžé¼äÕߣ¬±Ø³É´ó¹¦¡£´Ë±øÖ®Òª£¬Èý¾üÖ®ËùÊѶø¶¯Ò²¡£ diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt deleted file mode 100644 index 375e1adb..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt +++ /dev/null @@ -1,107 +0,0 @@ -This file was derived from -http://www.gutenberg.org/files/23864/23864-0.txt -after converting from Traditional Chinese to Simplified Chinese. --------- -始计第一 - -å­™å­æ›°ï¼šå…µè€…,国之大事,死生之地,存亡之é“,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚ - -æ•…ç»ä¹‹ä»¥äº”事,校之以计,而索其情:一曰é“,二曰天,三曰地,四曰将,五曰法。 - -é“者,令民与上åŒæ„,å¯ä¸Žä¹‹æ­»ï¼Œå¯ä¸Žä¹‹ç”Ÿï¼Œè€Œä¸ç•å±ä¹Ÿï¼›å¤©è€…,阴阳ã€å¯’æš‘ã€æ—¶åˆ¶ä¹Ÿï¼›åœ°è€…,远近ã€é™©æ˜“ã€å¹¿ç‹­ã€æ­»ç”Ÿä¹Ÿï¼›å°†è€…,智ã€ä¿¡ã€ä»ã€å‹‡ã€ä¸¥ä¹Ÿï¼›æ³•è€…,曲制ã€å®˜é“ã€ä¸»ç”¨ä¹Ÿã€‚凡此五者,将莫ä¸é—»ï¼ŒçŸ¥ä¹‹è€…胜,ä¸çŸ¥è€…ä¸èƒœã€‚ - -故校之以计,而索其情,曰:主孰有é“?将孰有能?天地孰得?法令孰行?兵眾孰强?士å’孰练?èµç½šå­°æ˜Žï¼Ÿå¾ä»¥æ­¤çŸ¥èƒœè´ŸçŸ£ã€‚ - -å°†å¬å¾è®¡ï¼Œç”¨ä¹‹å¿…胜,留之;将ä¸å¬å¾è®¡ï¼Œç”¨ä¹‹å¿…败,去之。 - -计利以å¬ï¼Œä¹ƒç‚ºä¹‹åŠ¿ï¼Œä»¥ä½å…¶å¤–。势者,因利而制æƒä¹Ÿã€‚ - -兵者,诡é“也。故能而示之ä¸èƒ½ï¼Œç”¨è€Œç¤ºä¹‹ä¸ç”¨ï¼Œè¿‘而示之远,远而示之近。利而诱之,乱而å–之,实而备之,强而é¿ä¹‹ï¼Œæ€’而挠之,å‘而骄之,佚而劳之,亲而离之,攻其无备,出其ä¸æ„。此兵家之胜,ä¸å¯å…ˆä¼ ä¹Ÿã€‚ - -夫未战而庙算胜者,得算多也;未战而庙算ä¸èƒœè€…,得算少也。多算胜,少算ä¸èƒœï¼Œè€Œå†µæ— ç®—乎ï¼å¾ä»¥æ­¤è§‚之,胜负è§çŸ£ã€‚ - -作战第二 - -å­™å­æ›°ï¼šå‡¡ç”¨å…µä¹‹æ³•ï¼Œé©°è½¦åƒé§Ÿï¼Œé©è½¦åƒä¹˜ï¼Œå¸¦ç”²å万,åƒé‡Œé¦ˆç²®ã€‚则内外之费,宾客之用,胶漆之æ,车甲之奉,日费åƒé‡‘,然åŽå万之师举矣。 - -其用战也,贵胜,久则é’兵挫é”,攻城则力屈,久暴师则国用ä¸è¶³ã€‚夫é’兵挫é”,屈力殫货,则诸侯乘其弊而起,虽有智者,ä¸èƒ½å–„å…¶åŽçŸ£ã€‚故兵闻拙速,未ç¹å·§ä¹‹ä¹…也。夫兵久而国利者,未之有也。故ä¸å°½çŸ¥ç”¨å…µä¹‹å®³è€…,则ä¸èƒ½å°½çŸ¥ç”¨å…µä¹‹åˆ©ä¹Ÿã€‚ - -善用兵者,役ä¸å†ç±ï¼Œç²®ä¸ä¸‰è½½ï¼Œå–用於国,因粮於敌,故军食å¯è¶³ä¹Ÿã€‚国之贫於师者远输,远输则百姓贫;近於师者贵å–,贵å–则百姓竭,财竭则急於丘役。力屈财殫,中原内虚於家,百姓之费,å去其七;公家之费,破军罢马,甲胄矢弩,戟楯矛櫓,丘牛大车,å去其六。 - -故智将务食於敌,食敌一钟,当å¾äºŒåé’Ÿï¼›è秆一石,当å¾äºŒå石。故æ€æ•Œè€…,怒也;å–敌之利者,货也。故车战,得车å乘以上,èµå…¶å…ˆå¾—者,而更其旌旗。车æ‚而乘之,å’善而养之,是谓胜敌而益强。 - -故兵贵胜,ä¸è´µä¹…。故知兵之将,民之å¸å‘½ã€‚国家安å±ä¹‹ä¸»ä¹Ÿã€‚ - -谋攻第三 - -å­™å­æ›°ï¼šå‡¡ç”¨å…µä¹‹æ³•ï¼Œå…¨å›½ç‚ºä¸Šï¼Œç ´å›½æ¬¡ä¹‹ï¼›å…¨å†›ç‚ºä¸Šï¼Œç ´å†›æ¬¡ä¹‹ï¼›å…¨æ—…為上,破旅次之;全å’為上,破å’次之;全ä¼ç‚ºä¸Šï¼Œç ´ä¼æ¬¡ä¹‹ã€‚是故百战百胜,éžå–„之善者也;ä¸æˆ˜è€Œå±ˆäººä¹‹å…µï¼Œå–„之善者也。 - -故上兵ä¼è°‹ï¼Œå…¶æ¬¡ä¼äº¤ï¼Œå…¶æ¬¡ä¼å…µï¼Œå…¶ä¸‹æ”»åŸŽã€‚攻城之法,為ä¸å¾—已。修櫓轒轀,具器械,三月而åŽæˆï¼›è·é—‰ï¼Œåˆä¸‰æœˆè€ŒåŽå·²ã€‚å°†ä¸èƒœå…¶å¿¿ï¼Œè€Œèšé™„之,æ€å£«ä¸‰åˆ†ä¹‹ä¸€ï¼Œè€ŒåŸŽä¸æ‹”者,此攻之ç¾ä¹Ÿã€‚ - -故善用兵者,屈人之兵,而éžæˆ˜ä¹Ÿï¼Œæ‹”人之城而éžæ”»ä¹Ÿï¼Œæ¯äººä¹‹å›½è€Œéžä¹…也,必以全争於天下,故兵ä¸é¡¿è€Œåˆ©å¯å…¨ï¼Œæ­¤è°‹æ”»ä¹‹æ³•ä¹Ÿã€‚ - -故用兵之法,å则围之,五则攻之,å€åˆ™åˆ†ä¹‹ï¼Œæ•Œåˆ™èƒ½æˆ˜ä¹‹ï¼Œå°‘则能逃之,ä¸è‹¥åˆ™èƒ½é¿ä¹‹ã€‚æ•…å°æ•Œä¹‹åšï¼Œå¤§æ•Œä¹‹æ“’也。 - -夫将者,国之辅也。辅周则国必强,辅隙则国必弱。故å›ä¹‹æ‰€ä»¥æ‚£æ–¼å†›è€…三:ä¸çŸ¥å†›ä¹‹ä¸å¯ä»¥è¿›è€Œè°“之进,ä¸çŸ¥å†›ä¹‹ä¸å¯ä»¥é€€è€Œè°“之退,是谓縻军;ä¸çŸ¥ä¸‰å†›ä¹‹äº‹ï¼Œè€ŒåŒä¸‰å†›ä¹‹æ”¿ï¼Œåˆ™å†›å£«æƒ‘矣;ä¸çŸ¥ä¸‰å†›ä¹‹æƒï¼Œè€ŒåŒä¸‰å†›ä¹‹ä»»ï¼Œåˆ™å†›å£«ç–‘矣。三军既惑且疑,则诸侯之难至矣。是谓乱军引胜。 - -故知胜有五:知å¯ä»¥æˆ˜ä¸Žä¸å¯ä»¥æˆ˜è€…,胜。识眾寡之用者,胜。上下åŒæ¬²è€…,胜。以虞待ä¸è™žè€…,胜。将能而å›ä¸å¾¡è€…,胜。此五者,知胜之é“也。 - -故曰:知己知彼,百战ä¸è²½ï¼›ä¸çŸ¥å½¼è€ŒçŸ¥å·±ï¼Œä¸€èƒœä¸€è´Ÿï¼›ä¸çŸ¥å½¼ä¸çŸ¥å·±ï¼Œæ¯æˆ˜å¿…败。 - -军形第四 - -å­™å­æ›°ï¼šæ˜”之善战者,先為ä¸å¯èƒœï¼Œä»¥å¾…敌之å¯èƒœã€‚ä¸å¯èƒœåœ¨å·±ï¼Œå¯èƒœåœ¨æ•Œã€‚故善战者,能為ä¸å¯èƒœï¼Œä¸èƒ½ä½¿æ•Œå¿…å¯èƒœã€‚故曰:胜å¯çŸ¥ï¼Œè€Œä¸å¯ç‚ºã€‚ - -ä¸å¯èƒœè€…,守也;å¯èƒœè€…,攻也。守则ä¸è¶³ï¼Œæ”»åˆ™æœ‰é¤˜ã€‚善守者,è—æ–¼ä¹åœ°ä¹‹ä¸‹ï¼Œå–„攻者,动於ä¹å¤©ä¹‹ä¸Šï¼Œæ•…能自ä¿è€Œå…¨èƒœä¹Ÿã€‚ - -è§èƒœä¸è¿‡çœ¾äººä¹‹æ‰€çŸ¥ï¼Œéžå–„之善者也;战胜而天下曰善,éžå–„之善者也。故举秋毫ä¸ç‚ºå¤šåŠ›ï¼Œè§æ—¥æœˆä¸ç‚ºæ˜Žç›®ï¼Œé—»é›·éœ†ä¸ç‚ºèªè€³ã€‚å¤ä¹‹å–„战者,胜於易胜者也。故善战者之胜也,无智å,无勇功,故其战胜ä¸å¿’。ä¸å¿’者,其所措必胜,胜已败者也。故善战者,先立於ä¸è´¥ä¹‹åœ°ï¼Œè€Œä¸å¤±æ•Œä¹‹è´¥ä¹Ÿã€‚是故胜兵先胜,而åŽæ±‚战,败兵先战而åŽæ±‚胜。善用兵者,修é“而ä¿æ³•ï¼Œæ•…能為胜败之政。 - -兵法:一曰度,二曰é‡ï¼Œä¸‰æ›°æ•°ï¼Œå››æ›°ç§°ï¼Œäº”曰胜。地生度,度生é‡ï¼Œé‡ç”Ÿæ•°ï¼Œæ•°ç”Ÿç§°ï¼Œç§°ç”Ÿèƒœã€‚故胜兵若以鎰称銖,败兵若以銖称鎰。胜者之战,若决积水於åƒä»žä¹‹è°¿è€…,形也。 - -兵势第五 - -å­™å­æ›°ï¼šå‡¡æ²»çœ¾å¦‚治寡,分数是也;斗眾如斗寡,形å是也;三军之眾,å¯ä½¿å¿…å—敌而无败者,奇正是也;兵之所加,如以碫投åµè€…,虚实是也。 - -凡战者,以正åˆï¼Œä»¥å¥‡èƒœã€‚故善出奇者,无穷如天地,ä¸ç«­å¦‚江海。终而å¤å§‹ï¼Œæ—¥æœˆæ˜¯ä¹Ÿã€‚死而復生,四时是也。声ä¸è¿‡äº”,五声之å˜ï¼Œä¸å¯èƒœå¬ä¹Ÿï¼›è‰²ä¸è¿‡äº”,五色之å˜ï¼Œä¸å¯èƒœè§‚也;味ä¸è¿‡äº”,五味之å˜ï¼Œä¸å¯èƒœå°ä¹Ÿï¼›æˆ˜åŠ¿ï¼Œä¸è¿‡å¥‡æ­£ï¼Œå¥‡æ­£ä¹‹å˜ï¼Œä¸å¯èƒœç©·ä¹Ÿã€‚奇正相生,如循环之无端,熟能穷之哉? - -激水之疾,至於漂石者,势也;鷙鸟之疾,至於æ¯æŠ˜è€…,节也。是故善战者,其势险,其节短。势如张弩,节如å‘机。 - -纷纷紜紜,斗乱而ä¸å¯ä¹±ä¹Ÿï¼›æµ‘浑沌沌,形圆而ä¸å¯è´¥ä¹Ÿã€‚乱生於治,怯生於勇,弱生於强。治乱,数也;勇怯,势也;强弱,形也。故善动敌者,形之,敌必从之;予之,敌必å–之。以利动之,以å’待之。 - -故善战者,求之於势,ä¸è´£æ–¼äººï¼›æ•…能择人而任势。任势者,其战人也,如转木石。木石之性,安则é™ï¼Œå±åˆ™åŠ¨ï¼Œæ–¹åˆ™æ­¢ï¼Œåœ†åˆ™è¡Œã€‚故善战人之势,如转圆石於åƒä»žä¹‹å±±è€…,势也。 - -虚实第六 - -å­™å­æ›°ï¼šå‡¡å…ˆå¤„战地而待敌者佚,åŽå¤„战地而趋战者劳。 - -故善战者,致人而ä¸è‡´æ–¼äººã€‚能使敌人自至者,利之也;能使敌人ä¸å¾—至者,害之也。故敌佚能劳之,饱能饥之,安能动之。出其所必趋,趋其所ä¸æ„。行åƒé‡Œè€Œä¸åŠ³è€…,行於无人之地也;攻而必å–者,攻其所ä¸å®ˆä¹Ÿã€‚守而必固者,守其所ä¸æ”»ä¹Ÿã€‚ - -故善攻者,敌ä¸çŸ¥å…¶æ‰€å®ˆï¼›å–„守者,敌ä¸çŸ¥å…¶æ‰€æ”»ã€‚微乎微乎,至於无形;神乎神乎,至於无声,故能為敌之å¸å‘½ã€‚进而ä¸å¯å¾¡è€…,冲其虚也;退而ä¸å¯è¿½è€…,速而ä¸å¯åŠä¹Ÿã€‚故我欲战,敌虽高垒深沟,ä¸å¾—ä¸ä¸Žæˆ‘战者,攻其所必救也;我ä¸æ¬²æˆ˜ï¼Œè™½ç”»åœ°è€Œå®ˆä¹‹ï¼Œæ•Œä¸å¾—与我战者,乖其所之也。故形人而我无形,则我专而敌分。我专為一,敌分為å,是以å攻其一也。则我眾敌寡,能以眾击寡者,则å¾ä¹‹æ‰€ä¸Žæˆ˜è€…约矣。å¾æ‰€ä¸Žæˆ˜ä¹‹åœ°ä¸å¯çŸ¥ï¼Œä¸å¯çŸ¥åˆ™æ•Œæ‰€å¤‡è€…多,敌所备者多,则å¾æ‰€ä¸Žæˆ˜è€…寡矣。故备å‰åˆ™åŽå¯¡ï¼Œå¤‡åŽåˆ™å‰å¯¡ï¼Œå¤‡å·¦åˆ™å³å¯¡ï¼Œå¤‡å³åˆ™å·¦å¯¡ï¼Œæ— æ‰€ä¸å¤‡ï¼Œåˆ™æ— æ‰€ä¸å¯¡ã€‚寡者,备人者也;眾者,使人备己者也。故知战之地,知战之日,则å¯åƒé‡Œè€Œä¼šæˆ˜ï¼›ä¸çŸ¥æˆ˜ä¹‹åœ°ï¼Œä¸çŸ¥æˆ˜æ—¥ï¼Œåˆ™å·¦ä¸èƒ½æ•‘å³ï¼Œå³ä¸èƒ½æ•‘左,å‰ä¸èƒ½æ•‘åŽï¼ŒåŽä¸èƒ½æ•‘å‰ï¼Œè€Œå†µè¿œè€…æ•°å里,近者数里乎ï¼ä»¥å¾åº¦ä¹‹ï¼Œè¶Šäººä¹‹å…µè™½å¤šï¼Œäº¦å¥šç›Šæ–¼èƒœå“‰ï¼æ•…曰:胜å¯ç‚ºä¹Ÿã€‚敌虽眾,å¯ä½¿æ— æ–—。故策之而知得失之计,候之而知动é™ä¹‹ç†ï¼Œå½¢ä¹‹è€ŒçŸ¥æ­»ç”Ÿä¹‹åœ°ï¼Œè§’之而知有餘ä¸è¶³ä¹‹å¤„。故形兵之æžï¼Œè‡³æ–¼æ— å½¢ã€‚无形则深间ä¸èƒ½çª¥ï¼Œæ™ºè€…ä¸èƒ½è°‹ã€‚因形而措胜於眾,眾ä¸èƒ½çŸ¥ã€‚人皆知我所以胜之形,而莫知å¾æ‰€ä»¥åˆ¶èƒœä¹‹å½¢ã€‚故其战胜ä¸å¾©ï¼Œè€Œåº”形於无穷。夫兵形象水,水之行é¿é«˜è€Œè¶‹ä¸‹ï¼Œå…µä¹‹å½¢é¿å®žè€Œå‡»è™šï¼›æ°´å› åœ°è€Œåˆ¶æµï¼Œå…µå› æ•Œè€Œåˆ¶èƒœã€‚故兵无常势,水无常形。能因敌å˜åŒ–而å–胜者,谓之神。故五行无常胜,四时无常ä½ï¼Œæ—¥æœ‰çŸ­é•¿ï¼Œæœˆæœ‰æ­»ç”Ÿã€‚ - -军争第七 - -å­™å­æ›°ï¼š 凡用兵之法,将å—命於å›ï¼Œåˆå†›èšçœ¾ï¼Œäº¤å’Œè€Œèˆï¼ŒèŽ«éš¾æ–¼å†›äº‰ã€‚军争之难者,以迂為直,以患為利。故迂其途,而诱之以利,åŽäººå‘,先人至,此知迂直之计者也。军争為利,军争為å±ã€‚举军而争利则ä¸åŠï¼Œå§”军而争利则輜é‡æ。是故æ²ç”²è€Œè¶‹ï¼Œæ—¥å¤œä¸å¤„,å€é“兼行,百裡而争利,则擒三将军,劲者先,疲者åŽï¼Œå…¶æ³•å一而至;五å里而争利,则蹶上将军,其法åŠè‡³ï¼›ä¸‰å里而争利,则三分之二至。是故军无輜é‡åˆ™äº¡ï¼Œæ— ç²®é£Ÿåˆ™äº¡ï¼Œæ— å§”积则亡。故ä¸çŸ¥è¯¸ä¾¯ä¹‹è°‹è€…,ä¸èƒ½è±«äº¤ï¼›ä¸çŸ¥å±±æž—ã€é™©é˜»ã€æ²®æ³½ä¹‹å½¢è€…,ä¸èƒ½è¡Œå†›ï¼›ä¸ç”¨ä¹¡å¯¼è€…,ä¸èƒ½å¾—地利。故兵以诈立,以利动,以分和為å˜è€…也。故其疾如风,其å¾å¦‚林,侵掠如ç«ï¼Œä¸åŠ¨å¦‚山,难知如阴,动如雷震。掠乡分眾,廓地分利,悬æƒè€ŒåŠ¨ã€‚先知迂直之计者胜,此军争之法也。《军政》曰:“言ä¸ç›¸é—»ï¼Œæ•…為之金鼓;视ä¸ç›¸è§ï¼Œæ•…為之旌旗。â€å¤«é‡‘鼓旌旗者,所以一民之耳目也。民既专一,则勇者ä¸å¾—独进,怯者ä¸å¾—独退,此用眾之法也。故夜战多金鼓,昼战多旌旗,所以å˜äººä¹‹è€³ç›®ä¹Ÿã€‚三军å¯å¤ºæ°”,将军å¯å¤ºå¿ƒã€‚是故æœæ°”é”,昼气惰,暮气归。善用兵者,é¿å…¶é”气,击其惰归,此治气者也。以治待乱,以é™å¾…哗,此治心者也。以近待远,以佚待劳,以饱待饥,此治力者也。无邀正正之旗,无击堂堂之陈,此治å˜è€…也。故用兵之法,高陵勿å‘,背丘勿逆,佯北勿从,é”å’勿攻,饵兵勿食,归师勿é,围师é—闕,穷寇勿迫,此用兵之法也。 - -ä¹å˜ç¬¬å…« - -å­™å­æ›°ï¼š 凡用兵之法,将å—命於å›ï¼Œåˆå†›èšåˆã€‚泛地无èˆï¼Œè¡¢åœ°åˆäº¤ï¼Œç»åœ°æ— ç•™ï¼Œå›´åœ°åˆ™è°‹ï¼Œæ­»åœ°åˆ™æˆ˜ï¼Œé€”有所ä¸ç”±ï¼Œå†›æœ‰æ‰€ä¸å‡»ï¼ŒåŸŽæœ‰æ‰€ä¸æ”»ï¼Œåœ°æœ‰æ‰€ä¸äº‰ï¼Œå›å‘½æœ‰æ‰€ä¸å—。故将通於ä¹å˜ä¹‹åˆ©è€…,知用兵矣;将ä¸é€šä¹å˜ä¹‹åˆ©ï¼Œè™½çŸ¥åœ°å½¢ï¼Œä¸èƒ½å¾—地之利矣;治兵ä¸çŸ¥ä¹å˜ä¹‹æœ¯ï¼Œè™½çŸ¥äº”利,ä¸èƒ½å¾—人之用矣。是故智者之虑,必æ‚於利害,æ‚於利而务å¯ä¿¡ä¹Ÿï¼Œæ‚於害而患å¯è§£ä¹Ÿã€‚是故屈诸侯者以害,役诸侯者以业,趋诸侯者以利。故用兵之法,无æƒå…¶ä¸æ¥ï¼Œæƒå¾æœ‰ä»¥å¾…之;无æƒå…¶ä¸æ”»ï¼Œæƒå¾æœ‰æ‰€ä¸å¯æ”»ä¹Ÿã€‚故将有五å±ï¼Œå¿…æ­»å¯æ€ï¼Œå¿…生å¯è™ï¼Œå¿¿é€Ÿå¯ä¾®ï¼Œå»‰æ´å¯è¾±ï¼Œçˆ±æ°‘å¯çƒ¦ã€‚凡此五者,将之过也,用兵之ç¾ä¹Ÿã€‚覆军æ€å°†ï¼Œå¿…以五å±ï¼Œä¸å¯ä¸å¯Ÿä¹Ÿã€‚ - -è¡Œå†›ç¬¬ä¹ - -å­™å­æ›°ï¼šå‡¡å¤„军相敌,ç»å±±ä¾ç©€ï¼Œè§†ç”Ÿå¤„高,战隆无登,此处山之军也。ç»æ°´å¿…远水,客ç»æ°´è€Œæ¥ï¼Œå‹¿è¿Žä¹‹æ–¼æ°´å†…,令åŠæ¸¡è€Œå‡»ä¹‹åˆ©ï¼Œæ¬²æˆ˜è€…,无附於水而迎客,视生处高,无迎水æµï¼Œæ­¤å¤„水上之军也。ç»æ–¥æ³½ï¼Œå”¯äºŸåŽ»æ— ç•™ï¼Œè‹¥äº¤å†›æ–¼æ–¥æ³½ä¹‹ä¸­ï¼Œå¿…ä¾æ°´è‰è€ŒèƒŒçœ¾æ ‘,此处斥泽之军也。平陆处易,å³èƒŒé«˜ï¼Œå‰æ­»åŽç”Ÿï¼Œæ­¤å¤„平陆之军也。凡此四军之利,黄å¸ä¹‹æ‰€ä»¥èƒœå››å¸ä¹Ÿã€‚凡军好高而æ¶ä¸‹ï¼Œè´µé˜³è€Œè´±é˜´ï¼Œå…»ç”Ÿè€Œå¤„实,军无百疾,是谓必胜。丘陵堤防,必处其阳而å³èƒŒä¹‹ï¼Œæ­¤å…µä¹‹åˆ©ï¼Œåœ°ä¹‹åŠ©ä¹Ÿã€‚上雨水æµè‡³ï¼Œæ¬²æ¶‰è€…,待其定也。凡地有ç»æ¶§ã€å¤©äº•ã€å¤©ç‰¢ã€å¤©ç½—ã€å¤©é™·ã€å¤©éš™ï¼Œå¿…亟去之,勿近也。å¾è¿œä¹‹ï¼Œæ•Œè¿‘之;å¾è¿Žä¹‹ï¼Œæ•ŒèƒŒä¹‹ã€‚军æ—有险阻ã€æ½¢äº•ã€è’¹è‘­ã€å°æž—ã€è˜™è–ˆè€…,必谨覆索之,此ä¼å§¦ä¹‹æ‰€å¤„也。敌近而é™è€…,æƒå…¶é™©ä¹Ÿï¼›è¿œè€ŒæŒ‘战者,欲人之进也;其所居易者,利也;眾树动者,æ¥ä¹Ÿï¼›çœ¾è‰å¤šéšœè€…,疑也;鸟起者,ä¼ä¹Ÿï¼›å…½éª‡è€…,覆也;尘高而é”者,车æ¥ä¹Ÿï¼›å‘而广者,徒æ¥ä¹Ÿï¼›æ•£è€Œæ¡è¾¾è€…,樵採也;少而往æ¥è€…,è¥å†›ä¹Ÿï¼›è¾žå‘而备者,进也;辞强而进驱者,退也;轻车先出居其侧者,陈也;无约而请和者,谋也;奔走而陈兵者,期也;åŠè¿›åŠé€€è€…,诱也;æ–而立者,饥也;汲而先饮者,渴也;è§åˆ©è€Œä¸è¿›è€…,劳也;鸟集者,虚也;夜呼者,æ也;军扰者,将ä¸é‡ä¹Ÿï¼›æ—Œæ——动者,乱也;å怒者,倦也;æ€é©¬è‚‰é£Ÿè€…,军无粮也;悬甀ä¸è¿”å…¶èˆè€…,穷寇也;谆谆翕翕,å¾ä¸Žäººè¨€è€…,失眾也;数èµè€…,窘也;数罚者,困也;先暴而åŽç•å…¶çœ¾è€…,ä¸ç²¾ä¹‹è‡³ä¹Ÿï¼›æ¥å§”谢者,欲休æ¯ä¹Ÿã€‚兵怒而相迎,久而ä¸åˆï¼Œåˆä¸ç›¸åŽ»ï¼Œå¿…谨察之。兵éžè´µç›Šå¤šä¹Ÿï¼ŒæƒŸæ— æ­¦è¿›ï¼Œè¶³ä»¥å¹¶åŠ›æ–™æ•Œå–人而已。夫惟无虑而易敌者,必擒於人。å’未亲而罚之,则ä¸æœï¼Œä¸æœåˆ™éš¾ç”¨ã€‚å’已亲附而罚ä¸è¡Œï¼Œåˆ™ä¸å¯ç”¨ã€‚æ•…åˆä¹‹ä»¥æ–‡ï¼Œé½ä¹‹ä»¥æ­¦ï¼Œæ˜¯è°“å¿…å–。令素行以教其民,则民æœï¼›ä»¤ç´ ä¸è¡Œä»¥æ•™å…¶æ°‘,则民ä¸æœã€‚令素行者,与眾相得也。 - -地形第å - -å­™å­æ›°ï¼šåœ°å½¢æœ‰é€šè€…ã€æœ‰æŽ›è€…ã€æœ‰æ”¯è€…ã€æœ‰éš˜è€…ã€æœ‰é™©è€…ã€æœ‰è¿œè€…。我å¯ä»¥å¾€ï¼Œå½¼å¯ä»¥æ¥ï¼Œæ›°é€šã€‚通形者,先居高阳,利粮é“,以战则利。å¯ä»¥å¾€ï¼Œéš¾ä»¥è¿”,曰掛。掛形者,敌无备,出而胜之,敌若有备,出而ä¸èƒœï¼Œéš¾ä»¥è¿”,ä¸åˆ©ã€‚我出而ä¸åˆ©ï¼Œå½¼å‡ºè€Œä¸åˆ©ï¼Œæ›°æ”¯ã€‚支形者,敌虽利我,我无出也,引而去之,令敌åŠå‡ºè€Œå‡»ä¹‹åˆ©ã€‚隘形者,我先居之,必盈之以待敌。若敌先居之,盈而勿从,ä¸ç›ˆè€Œä»Žä¹‹ã€‚险形者,我先居之,必居高阳以待敌;若敌先居之,引而去之,勿从也。远形者,势å‡éš¾ä»¥æŒ‘战,战而ä¸åˆ©ã€‚凡此六者,地之é“也,将之至任,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚凡兵有走者ã€æœ‰é©°è€…ã€æœ‰é™·è€…ã€æœ‰å´©è€…ã€æœ‰ä¹±è€…ã€æœ‰åŒ—者。凡此六者,éžå¤©åœ°ä¹‹ç¾ï¼Œå°†ä¹‹è¿‡ä¹Ÿã€‚夫势å‡ï¼Œä»¥ä¸€å‡»å,曰走;å’强å弱,曰驰;å强å’弱,曰陷;大å怒而ä¸æœï¼Œé‡æ•Œæ‡Ÿè€Œè‡ªæˆ˜ï¼Œå°†ä¸çŸ¥å…¶èƒ½ï¼Œæ›°å´©ï¼›å°†å¼±ä¸ä¸¥ï¼Œæ•™é“ä¸æ˜Žï¼Œåå’无常,陈兵纵横,曰乱;将ä¸èƒ½æ–™æ•Œï¼Œä»¥å°‘åˆçœ¾ï¼Œä»¥å¼±å‡»å¼ºï¼Œå…µæ— é€‰é”‹ï¼Œæ›°åŒ—。凡此六者,败之é“也,将之至任,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚夫地形者,兵之助也。料敌制胜,计险隘远近,上将之é“也。知此而用战者必胜,ä¸çŸ¥æ­¤è€Œç”¨æˆ˜è€…必败。故战é“必胜,主曰无战,必战å¯ä¹Ÿï¼›æˆ˜é“ä¸èƒœï¼Œä¸»æ›°å¿…战,无战å¯ä¹Ÿã€‚æ•…è¿›ä¸æ±‚å,退ä¸é¿ç½ªï¼Œå”¯æ°‘是ä¿ï¼Œè€Œåˆ©æ–¼ä¸»ï¼Œå›½ä¹‹å®ä¹Ÿã€‚视å’如婴儿,故å¯ä»¥ä¸Žä¹‹èµ´æ·±æºªï¼›è§†å’如爱å­ï¼Œæ•…å¯ä¸Žä¹‹ä¿±æ­»ã€‚厚而ä¸èƒ½ä½¿ï¼Œçˆ±è€Œä¸èƒ½ä»¤ï¼Œä¹±è€Œä¸èƒ½æ²»ï¼Œè­¬è‹¥éª„å­ï¼Œä¸å¯ç”¨ä¹Ÿã€‚知å¾å’之å¯ä»¥å‡»ï¼Œè€Œä¸çŸ¥æ•Œä¹‹ä¸å¯å‡»ï¼Œèƒœä¹‹åŠä¹Ÿï¼›çŸ¥æ•Œä¹‹å¯å‡»ï¼Œè€Œä¸çŸ¥å¾å’之ä¸å¯ä»¥å‡»ï¼Œèƒœä¹‹åŠä¹Ÿï¼›çŸ¥æ•Œä¹‹å¯å‡»ï¼ŒçŸ¥å¾å’之å¯ä»¥å‡»ï¼Œè€Œä¸çŸ¥åœ°å½¢ä¹‹ä¸å¯ä»¥æˆ˜ï¼Œèƒœä¹‹åŠä¹Ÿã€‚故知兵者,动而ä¸è¿·ï¼Œä¸¾è€Œä¸ç©·ã€‚故曰:知彼知己,胜乃ä¸æ®†ï¼›çŸ¥å¤©çŸ¥åœ°ï¼Œèƒœä¹ƒå¯å…¨ã€‚ - -ä¹åœ°ç¬¬å一 - -å­™å­æ›°ï¼šç”¨å…µä¹‹æ³•ï¼Œæœ‰æ•£åœ°ï¼Œæœ‰è½»åœ°ï¼Œæœ‰äº‰åœ°ï¼Œæœ‰äº¤åœ°ï¼Œæœ‰è¡¢åœ°ï¼Œæœ‰é‡åœ°ï¼Œæœ‰æ³›åœ°ï¼Œæœ‰å›´åœ°ï¼Œæœ‰æ­»åœ°ã€‚诸侯自战其地者,為散地;入人之地ä¸æ·±è€…,為轻地;我得亦利,彼得亦利者,為争地;我å¯ä»¥å¾€ï¼Œå½¼å¯ä»¥æ¥è€…,為交地;诸侯之地三属,先至而得天下眾者,為衢地;入人之地深,背城邑多者,為é‡åœ°ï¼›å±±æž—ã€é™©é˜»ã€æ²®æ³½ï¼Œå‡¡éš¾è¡Œä¹‹é“者,為泛地;所由入者隘,所从归者迂,彼寡å¯ä»¥å‡»å¾ä¹‹çœ¾è€…,為围地;疾战则存,ä¸ç–¾æˆ˜åˆ™äº¡è€…,為死地。是故散地则无战,轻地则无止,争地则无攻,交地则无ç»ï¼Œè¡¢åœ°åˆ™åˆäº¤ï¼Œé‡åœ°åˆ™æŽ ï¼Œæ³›åœ°åˆ™è¡Œï¼Œå›´åœ°åˆ™è°‹ï¼Œæ­»åœ°åˆ™æˆ˜ã€‚å¤ä¹‹å–„用兵者,能使敌人å‰åŽä¸ç›¸åŠï¼Œçœ¾å¯¡ä¸ç›¸æƒï¼Œè´µè´±ä¸ç›¸æ•‘,上下ä¸ç›¸æ”¶ï¼Œå’离而ä¸é›†ï¼Œå…µåˆè€Œä¸é½ã€‚åˆæ–¼åˆ©è€ŒåŠ¨ï¼Œä¸åˆæ–¼åˆ©è€Œæ­¢ã€‚敢问敌眾而整将æ¥ï¼Œå¾…之若何曰:先夺其所爱则å¬çŸ£ã€‚兵之情主速,乘人之ä¸åŠã€‚ç”±ä¸è™žä¹‹é“,攻其所ä¸æˆ’也。凡為客之é“,深入则专。主人ä¸å…‹ï¼ŒæŽ æ–¼é¥¶é‡Žï¼Œä¸‰å†›è¶³é£Ÿã€‚谨养而勿劳,并气积力,è¿å…µè®¡è°‹ï¼Œç‚ºä¸å¯æµ‹ã€‚投之无所往,死且ä¸åŒ—。死焉ä¸å¾—,士人尽力。兵士甚陷则ä¸æƒ§ï¼Œæ— æ‰€å¾€åˆ™å›ºï¼Œæ·±å…¥åˆ™æ‹˜ï¼Œä¸å¾—已则斗。是故其兵ä¸ä¿®è€Œæˆ’,ä¸æ±‚而得,ä¸çº¦è€Œäº²ï¼Œä¸ä»¤è€Œä¿¡ï¼Œç¦ç¥¥åŽ»ç–‘,至死无所之。å¾å£«æ— é¤˜è´¢ï¼Œéžæ¶è´§ä¹Ÿï¼›æ— é¤˜å‘½ï¼Œéžæ¶å¯¿ä¹Ÿã€‚令å‘之日,士å’å者涕沾襟,åƒå§è€…涕交é¢ï¼ŒæŠ•ä¹‹æ— æ‰€å¾€ï¼Œè¯¸ã€åŠŒä¹‹å‹‡ä¹Ÿã€‚故善用兵者,譬如率然。率然者,常山之蛇也。击其首则尾至,击其尾则首至,击其中则首尾俱至。敢问兵å¯ä½¿å¦‚率然乎?曰å¯ã€‚夫å´äººä¸Žè¶Šäººç›¸æ¶ä¹Ÿï¼Œå½“å…¶åŒèˆŸè€ŒæµŽè€Œé‡é£Žï¼Œå…¶ç›¸æ•‘也如左å³æ‰‹ã€‚是故方马埋轮,未足æƒä¹Ÿï¼›é½å‹‡å¦‚一,政之é“也;刚柔皆得,地之ç†ä¹Ÿã€‚故善用兵者,æºæ‰‹è‹¥ä½¿ä¸€äººï¼Œä¸å¾—已也。将军之事,é™ä»¥å¹½ï¼Œæ­£ä»¥æ²»ï¼Œèƒ½æ„šå£«å’之耳目,使之无知;易其事,é©å…¶è°‹ï¼Œä½¿äººæ— è¯†ï¼›æ˜“其居,迂其途,使民ä¸å¾—虑。帅与之期,如登高而去其梯;帅与之深入诸侯之地,而å‘其机。若驱群羊,驱而往,驱而æ¥ï¼ŒèŽ«çŸ¥æ‰€ä¹‹ã€‚èšä¸‰å†›ä¹‹çœ¾ï¼ŒæŠ•ä¹‹æ–¼é™©ï¼Œæ­¤è°“将军之事也。ä¹åœ°ä¹‹å˜ï¼Œå±ˆä¼¸ä¹‹åŠ›ï¼Œäººæƒ…之ç†ï¼Œä¸å¯ä¸å¯Ÿä¹Ÿã€‚凡為客之é“,深则专,浅则散。去国越境而师者,ç»åœ°ä¹Ÿï¼›å››å½»è€…,衢地也;入深者,é‡åœ°ä¹Ÿï¼›å…¥æµ…者,轻地也;背固å‰éš˜è€…,围地也;无所往者,死地也。是故散地å¾å°†ä¸€å…¶å¿—,轻地å¾å°†ä½¿ä¹‹å±žï¼Œäº‰åœ°å¾å°†è¶‹å…¶åŽï¼Œäº¤åœ°å¾å°†è°¨å…¶å®ˆï¼Œäº¤åœ°å¾å°†å›ºå…¶ç»“,衢地å¾å°†è°¨å…¶æƒï¼Œé‡åœ°å¾å°†ç»§å…¶é£Ÿï¼Œæ³›åœ°å¾å°†è¿›å…¶é€”,围地å¾å°†å¡žå…¶é—•ï¼Œæ­»åœ°å¾å°†ç¤ºä¹‹ä»¥ä¸æ´»ã€‚故兵之情:围则御,ä¸å¾—已则斗,过则从。是故ä¸çŸ¥è¯¸ä¾¯ä¹‹è°‹è€…,ä¸èƒ½é¢„交;ä¸çŸ¥å±±æž—ã€é™©é˜»ã€æ²®æ³½ä¹‹å½¢è€…,ä¸èƒ½è¡Œå†›ï¼›ä¸ç”¨ä¹¡å¯¼ï¼Œä¸èƒ½å¾—地利。四五者,一ä¸çŸ¥ï¼Œéžéœ¸çŽ‹ä¹‹å…µä¹Ÿã€‚夫霸王之兵,ä¼å¤§å›½ï¼Œåˆ™å…¶çœ¾ä¸å¾—èšï¼›å¨åŠ æ–¼æ•Œï¼Œåˆ™å…¶äº¤ä¸å¾—åˆã€‚是故ä¸äº‰å¤©ä¸‹ä¹‹äº¤ï¼Œä¸å…»å¤©ä¸‹ä¹‹æƒï¼Œä¿¡å·±ä¹‹ç§ï¼Œå¨åŠ æ–¼æ•Œï¼Œåˆ™å…¶åŸŽå¯æ‹”,其国å¯éš³ã€‚施无法之èµï¼Œæ‚¬æ— æ”¿ä¹‹ä»¤ã€‚犯三军之眾,若使一人。犯之以事,勿告以言;犯之以害,勿告以利。投之亡地然åŽå­˜ï¼Œé™·ä¹‹æ­»åœ°ç„¶åŽç”Ÿã€‚夫眾陷於害,然åŽèƒ½ç‚ºèƒœè´¥ã€‚故為兵之事,在顺详敌之æ„,并敌一å‘,åƒé‡Œæ€å°†ï¼Œæ˜¯è°“巧能æˆäº‹ã€‚是故政举之日,夷关折符,无通其使,厉於廊庙之上,以诛其事。敌人开闔,必亟入之,先其所爱,微与之期,践墨éšæ•Œï¼Œä»¥å†³æˆ˜äº‹ã€‚是故始如处女,敌人开户;åŽå¦‚脱兔,敌ä¸åŠæ‹’。 - -ç«æ”»ç¬¬å二 - -å­™å­æ›°ï¼šå‡¡ç«æ”»æœ‰äº”:一曰ç«äººï¼ŒäºŒæ›°ç«ç§¯ï¼Œä¸‰æ›°ç«è¼œï¼Œå››æ›°ç«åº“,五曰ç«é˜Ÿã€‚è¡Œç«å¿…有因,因必素具。å‘ç«æœ‰æ—¶ï¼Œèµ·ç«æœ‰æ—¥ã€‚时者,天之燥也。日者,月在箕ã€å£ã€ç¿¼ã€è»«ä¹Ÿã€‚凡此四宿者,风起之日也。凡ç«æ”»ï¼Œå¿…因五ç«ä¹‹å˜è€Œåº”之:ç«å‘於内,则早应之於外;ç«å‘而其兵é™è€…,待而勿攻,æžå…¶ç«åŠ›ï¼Œå¯ä»Žè€Œä»Žä¹‹ï¼Œä¸å¯ä»Žåˆ™ä¸Šã€‚ç«å¯å‘於外,无待於内,以时å‘之,ç«å‘上风,无攻下风,昼风久,夜风止。凡军必知五ç«ä¹‹å˜ï¼Œä»¥æ•°å®ˆä¹‹ã€‚故以ç«ä½æ”»è€…明,以水ä½æ”»è€…强。水å¯ä»¥ç»ï¼Œä¸å¯ä»¥å¤ºã€‚夫战胜攻å–而ä¸æƒ°å…¶åŠŸè€…凶,命曰“费留â€ã€‚故曰:明主虑之,良将惰之,éžåˆ©ä¸åŠ¨ï¼Œéžå¾—ä¸ç”¨ï¼Œéžå±ä¸æˆ˜ã€‚主ä¸å¯ä»¥æ€’而兴师,将ä¸å¯ä»¥æ…而攻战。åˆæ–¼åˆ©è€ŒåŠ¨ï¼Œä¸åˆæ–¼åˆ©è€Œä¸Šã€‚怒å¯ä»¥å¤å–œï¼Œæ…å¯ä»¥å¤è¯´ï¼Œäº¡å›½ä¸å¯ä»¥å¤å­˜ï¼Œæ­»è€…ä¸å¯ä»¥å¤ç”Ÿã€‚故明主慎之,良将警之。此安国全军之é“也。 - -用间第å三 - -å­™å­æ›°ï¼š 凡兴师å万,出å¾åƒé‡Œï¼Œç™¾å§“之费,公家之奉,日费åƒé‡‘,内外骚动,怠於é“路,ä¸å¾—æ“事者,七å万家。相守数年,以争一日之胜,而爱爵禄百金,ä¸çŸ¥æ•Œä¹‹æƒ…者,ä¸ä»ä¹‹è‡³ä¹Ÿï¼Œéžæ°‘之将也,éžä¸»ä¹‹ä½ä¹Ÿï¼Œéžèƒœä¹‹ä¸»ä¹Ÿã€‚故明å›è´¤å°†æ‰€ä»¥åŠ¨è€Œèƒœäººï¼ŒæˆåŠŸå‡ºæ–¼çœ¾è€…,先知也。先知者,ä¸å¯å–於鬼神,ä¸å¯è±¡æ–¼äº‹ï¼Œä¸å¯éªŒæ–¼åº¦ï¼Œå¿…å–於人,知敌之情者也。故用间有五:有因间,有内间,有å间,有死间,有生间。五间俱起,莫知其é“,是谓神纪,人å›ä¹‹å®ä¹Ÿã€‚乡间者,因其乡人而用之;内间者,因其官人而用之;å间者,因其敌间而用之;死间者,為誑事於外,令å¾é—»çŸ¥ä¹‹è€Œä¼ æ–¼æ•Œé—´ä¹Ÿï¼›ç”Ÿé—´è€…,å报也。故三军之事,莫亲於间,èµèŽ«åŽšæ–¼é—´ï¼Œäº‹èŽ«å¯†æ–¼é—´ï¼Œéžåœ£è´¤ä¸èƒ½ç”¨é—´ï¼Œéžä»ä¹‰ä¸èƒ½ä½¿é—´ï¼Œéžå¾®å¦™ä¸èƒ½å¾—间之实。微哉微哉ï¼æ— æ‰€ä¸ç”¨é—´ä¹Ÿã€‚间事未å‘而先闻者,间与所告者兼死。凡军之所欲击,城之所欲攻,人之所欲æ€ï¼Œå¿…先知其守将ã€å·¦å³ã€è¬è€…ã€é—¨è€…ã€èˆäººä¹‹å§“å,令å¾é—´å¿…索知之。敌间之æ¥é—´æˆ‘者,因而利之,导而èˆä¹‹ï¼Œæ•…åé—´å¯å¾—而用也;因是而知之,故乡间ã€å†…é—´å¯å¾—而使也;因是而知之,故死间為誑事,å¯ä½¿å‘Šæ•Œï¼›å› æ˜¯è€ŒçŸ¥ä¹‹ï¼Œæ•…生间å¯ä½¿å¦‚期。五间之事,主必知之,知之必在於å间,故åé—´ä¸å¯ä¸åŽšä¹Ÿã€‚昔殷之兴也,伊挚在å¤ï¼›å‘¨ä¹‹å…´ä¹Ÿï¼Œå•ç‰™åœ¨æ®·ã€‚故明å›è´¤å°†ï¼Œèƒ½ä»¥ä¸Šæ™ºç‚ºé—´è€…,必æˆå¤§åŠŸã€‚此兵之è¦ï¼Œä¸‰å†›ä¹‹æ‰€æƒè€ŒåŠ¨ä¹Ÿã€‚ diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-traditional-big5.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-traditional-big5.txt deleted file mode 100644 index 1918c8fa..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-traditional-big5.txt +++ /dev/null @@ -1,106 +0,0 @@ -This file was derived from -http://www.gutenberg.org/files/23864/23864-0.txt --------- -©l­p²Ä¤@ - -®]¤l¤ê¡G§LªÌ¡A°ê¤§¤j¨Æ¡A¦º¥Í¤§¦a¡A¦s¤`¤§¹D¡A¤£¥i¤£¹î¤]¡C - -¬G¸g¤§¥H¤­¨Æ¡A®Õ¤§¥H­p¡A¦Ó¯Á¨ä±¡¡G¤@¤ê¹D¡A¤G¤ê¤Ñ¡A¤T¤ê¦a¡A¥|¤ê±N¡A¤­¤êªk¡C - -¹DªÌ¡A¥O¥Á»P¤W¦P·N¡A¥i»P¤§¦º¡A¥i»P¤§¥Í¡A¦Ó¤£¬È¦M¤]¡F¤ÑªÌ¡A³±¶§¡B´H´»¡B®É¨î¤]¡F¦aªÌ¡A»·ªñ¡BÀI©ö¡B¼s¯U¡B¦º¥Í¤]¡F±NªÌ¡A´¼¡B«H¡B¤¯¡B«i¡BÄY¤]¡FªkªÌ¡A¦±¨î¡B©x¹D¡B¥D¥Î¤]¡C¤Z¦¹¤­ªÌ¡A±N²ö¤£»D¡Aª¾¤§ªÌ³Ó¡A¤£ª¾ªÌ¤£³Ó¡C - -¬G®Õ¤§¥H­p¡A¦Ó¯Á¨ä±¡¡A¤ê¡G¥D±E¦³¹D¡H±N±E¦³¯à¡H¤Ñ¦a±E±o¡Hªk¥O±E¦æ¡H§L²³±E±j¡H¤h¨ò±E½m¡H½à»@±E©ú¡H§^¥H¦¹ª¾³Ó­t¨o¡C - -±NÅ¥§^­p¡A¥Î¤§¥²³Ó¡A¯d¤§¡F±N¤£Å¥§^­p¡A¥Î¤§¥²±Ñ¡A¥h¤§¡C - -­p§Q¥HÅ¥¡A¤D¬°¤§¶Õ¡A¥H¦õ¨ä¥~¡C¶ÕªÌ¡A¦]§Q¦Ó¨îÅv¤]¡C - -§LªÌ¡A¸Þ¹D¤]¡C¬G¯à¦Ó¥Ü¤§¤£¯à¡A¥Î¦Ó¥Ü¤§¤£¥Î¡Aªñ¦Ó¥Ü¤§»·¡A»·¦Ó¥Ü¤§ªñ¡C§Q¦Ó»¤¤§¡A¶Ã¦Ó¨ú¤§¡A¹ê¦Ó³Æ¤§¡A±j¦ÓÁפ§¡A«ã¦Ó¼¸¤§¡A¨õ¦Óź¤§¡A§H¦Ó³Ò¤§¡A¿Ë¦ÓÂ÷¤§¡A§ð¨äµL³Æ¡A¥X¨ä¤£·N¡C¦¹§L®a¤§³Ó¡A¤£¥i¥ý¶Ç¤]¡C - -¤Ò¥¼¾Ô¦Ó¼qºâ³ÓªÌ¡A±oºâ¦h¤]¡F¥¼¾Ô¦Ó¼qºâ¤£³ÓªÌ¡A±oºâ¤Ö¤]¡C¦hºâ³Ó¡A¤Öºâ¤£³Ó¡A¦ÓªpµLºâ¥G¡I§^¥H¦¹Æ[¤§¡A³Ó­t¨£¨o¡C - -§@¾Ô²Ä¤G - -®]¤l¤ê¡G¤Z¥Î§L¤§ªk¡A¹£¨®¤d¾o¡A­²¨®¤d­¼¡A±a¥Ò¤Q¸U¡A¤d¨½õX³¡C«h¤º¥~¤§¶O¡A»««È¤§¥Î¡A½¦º£¤§§÷¡A¨®¥Ò¤§©^¡A¤é¶O¤dª÷¡AµM«á¤Q¸U¤§®vÁ|¨o¡C - -¨ä¥Î¾Ô¤]¡A¶Q³Ó¡A¤[«h¶w§L®À¾U¡A§ð«°«h¤O©}¡A¤[¼É®v«h°ê¥Î¤£¨¬¡C¤Ò¶w§L®À¾U¡A©}¤Oéã³f¡A«h½Ñ«J­¼¨ä¹ú¦Ó°_¡AÁö¦³´¼ªÌ¡A¤£¯àµ½¨ä«á¨o¡C¬G§L»D©å³t¡A¥¼¸@¥©¤§¤[¤]¡C¤Ò§L¤[¦Ó°ê§QªÌ¡A¥¼¤§¦³¤]¡C¬G¤£ºÉª¾¥Î§L¤§®`ªÌ¡A«h¤£¯àºÉª¾¥Î§L¤§§Q¤]¡C - -µ½¥Î§LªÌ¡A§Ð¤£¦AÄy¡A³¤£¤T¸ü¡A¨ú¥Î©ó°ê¡A¦]³©ó¼Ä¡A¬G­x­¹¥i¨¬¤]¡C°ê¤§³h©ó®vªÌ»·¿é¡A»·¿é«h¦Ê©m³h¡Fªñ©ó®vªÌ¶Q½æ¡A¶Q½æ«h¦Ê©mºÜ¡A°]ºÜ«h«æ©ó¥C§Ð¡C¤O©}°]éã¡A¤¤­ì¤ºµê©ó®a¡A¦Ê©m¤§¶O¡A¤Q¥h¨ä¤C¡F¤½®a¤§¶O¡A¯}­x½}°¨¡A¥Ò­H¥Ú©¸¡A´uÝã¥ÙÃr¡A¥C¤û¤j¨®¡A¤Q¥h¨ä¤»¡C - -¬G´¼±N°È­¹©ó¼Ä¡A­¹¼Ä¤@Áé¡A·í§^¤G¤QÁé¡FÛmµz¤@¥Û¡A·í§^¤G¤Q¥Û¡C¬G±þ¼ÄªÌ¡A«ã¤]¡F¨ú¼Ä¤§§QªÌ¡A³f¤]¡C¬G¨®¾Ô¡A±o¨®¤Q­¼¥H¤W¡A½à¨ä¥ý±oªÌ¡A¦Ó§ó¨ä±ÜºX¡C¨®Âø¦Ó­¼¤§¡A¨òµ½¦Ó¾i¤§¡A¬O¿×³Ó¼Ä¦Ó¯q±j¡C - -¬G§L¶Q³Ó¡A¤£¶Q¤[¡C¬Gª¾§L¤§±N¡A¥Á¤§¥q©R¡C°ê®a¦w¦M¤§¥D¤]¡C - -¿Ñ§ð²Ä¤T - -®]¤l¤ê¡G¤Z¥Î§L¤§ªk¡A¥þ°ê¬°¤W¡A¯}°ê¦¸¤§¡F¥þ­x¬°¤W¡A¯}­x¦¸¤§¡F¥þ®È¬°¤W¡A¯}®È¦¸¤§¡F¥þ¨ò¬°¤W¡A¯}¨ò¦¸¤§¡F¥þ¥î¬°¤W¡A¯}¥î¦¸¤§¡C¬O¬G¦Ê¾Ô¦Ê³Ó¡A«Dµ½¤§µ½ªÌ¤]¡F¤£¾Ô¦Ó©}¤H¤§§L¡Aµ½¤§µ½ªÌ¤]¡C - -¬G¤W§L¥ï¿Ñ¡A¨ä¦¸¥ï¥æ¡A¨ä¦¸¥ï§L¡A¨ä¤U§ð«°¡C§ð«°¤§ªk¡A¬°¤£±o¤w¡C­×ÃróVîÁ¡A¨ã¾¹±ñ¡A¤T¤ë¦Ó«á¦¨¡F¶Zîð¡A¤S¤T¤ë¦Ó«á¤w¡C±N¤£³Ó¨ä©Á¡A¦ÓÃƪþ¤§¡A±þ¤h¤T¤À¤§¤@¡A¦Ó«°¤£©ÞªÌ¡A¦¹§ð¤§¨a¤]¡C - -¬Gµ½¥Î§LªÌ¡A©}¤H¤§§L¡A¦Ó«D¾Ô¤]¡A©Þ¤H¤§«°¦Ó«D§ð¤]¡A·´¤H¤§°ê¦Ó«D¤[¤]¡A¥²¥H¥þª§©ó¤Ñ¤U¡A¬G§L¤£¹y¦Ó§Q¥i¥þ¡A¦¹¿Ñ§ð¤§ªk¤]¡C - -¬G¥Î§L¤§ªk¡A¤Q«h³ò¤§¡A¤­«h§ð¤§¡A­¿«h¤À¤§¡A¼Ä«h¯à¾Ô¤§¡A¤Ö«h¯à°k¤§¡A¤£­Y«h¯àÁפ§¡C¬G¤p¼Ä¤§°í¡A¤j¼Ä¤§¾à¤]¡C - -¤Ò±NªÌ¡A°ê¤§»²¤]¡C»²©P«h°ê¥²±j¡A»²»Ø«h°ê¥²®z¡C¬G§g¤§©Ò¥H±w©ó­xªÌ¤T¡G¤£ª¾­x¤§¤£¥i¥H¶i¦Ó¿×¤§¶i¡A¤£ª¾­x¤§¤£¥i¥H°h¦Ó¿×¤§°h¡A¬O¿×íÝ­x¡F¤£ª¾¤T­x¤§¨Æ¡A¦Ó¦P¤T­x¤§¬F¡A«h­x¤h´b¨o¡F¤£ª¾¤T­x¤§Åv¡A¦Ó¦P¤T­x¤§¥ô¡A«h­x¤hºÃ¨o¡C¤T­x¬J´b¥BºÃ¡A«h½Ñ«J¤§Ãø¦Ü¨o¡C¬O¿×¶Ã­x¤Þ³Ó¡C - -¬Gª¾³Ó¦³¤­¡Gª¾¥i¥H¾Ô»P¤£¥i¥H¾ÔªÌ¡A³Ó¡CÃѲ³¹è¤§¥ÎªÌ¡A³Ó¡C¤W¤U¦P±ýªÌ¡A³Ó¡C¥H¸·«Ý¤£¸·ªÌ¡A³Ó¡C±N¯à¦Ó§g¤£±sªÌ¡A³Ó¡C¦¹¤­ªÌ¡Aª¾³Ó¤§¹D¤]¡C - -¬G¤ê¡Gª¾¤vª¾©¼¡A¦Ê¾Ô¤£¶M¡F¤£ª¾©¼¦Óª¾¤v¡A¤@³Ó¤@­t¡F¤£ª¾©¼¤£ª¾¤v¡A¨C¾Ô¥²±Ñ¡C - -­x§Î²Ä¥| - -®]¤l¤ê¡G©õ¤§µ½¾ÔªÌ¡A¥ý¬°¤£¥i³Ó¡A¥H«Ý¼Ä¤§¥i³Ó¡C¤£¥i³Ó¦b¤v¡A¥i³Ó¦b¼Ä¡C¬Gµ½¾ÔªÌ¡A¯à¬°¤£¥i³Ó¡A¤£¯à¨Ï¼Ä¥²¥i³Ó¡C¬G¤ê¡G³Ó¥iª¾¡A¦Ó¤£¥i¬°¡C - -¤£¥i³ÓªÌ¡A¦u¤]¡F¥i³ÓªÌ¡A§ð¤]¡C¦u«h¤£¨¬¡A§ð«h¦³¾l¡Cµ½¦uªÌ¡AÂéó¤E¦a¤§¤U¡Aµ½§ðªÌ¡A°Ê©ó¤E¤Ñ¤§¤W¡A¬G¯à¦Û«O¦Ó¥þ³Ó¤]¡C - -¨£³Ó¤£¹L²³¤H¤§©Òª¾¡A«Dµ½¤§µ½ªÌ¤]¡F¾Ô³Ó¦Ó¤Ñ¤U¤êµ½¡A«Dµ½¤§µ½ªÌ¤]¡C¬GÁ|¬î²@¤£¬°¦h¤O¡A¨£¤é¤ë¤£¬°©ú¥Ø¡A»D¹p¾^¤£¬°Áo¦Õ¡C¥j¤§µ½¾ÔªÌ¡A³Ó©ó©ö³ÓªÌ¤]¡C¬Gµ½¾ÔªÌ¤§³Ó¤]¡AµL´¼¦W¡AµL«i¥\¡A¬G¨ä¾Ô³Ó¤£ÊÖ¡C¤£Ê̡֪A¨ä©Ò±¹¥²³Ó¡A³Ó¤w±ÑªÌ¤]¡C¬Gµ½¾ÔªÌ¡A¥ý¥ß©ó¤£±Ñ¤§¦a¡A¦Ó¤£¥¢¼Ä¤§±Ñ¤]¡C¬O¬G³Ó§L¥ý³Ó¡A¦Ó«á¨D¾Ô¡A±Ñ§L¥ý¾Ô¦Ó«á¨D³Ó¡Cµ½¥Î§LªÌ¡A­×¹D¦Ó«Oªk¡A¬G¯à¬°³Ó±Ñ¤§¬F¡C - -§Lªk¡G¤@¤ê«×¡A¤G¤ê¶q¡A¤T¤ê¼Æ¡A¥|¤êºÙ¡A¤­¤ê³Ó¡C¦a¥Í«×¡A«×¥Í¶q¡A¶q¥Í¼Æ¡A¼Æ¥ÍºÙ¡AºÙ¥Í³Ó¡C¬G³Ó§L­Y¥HÂïºÙ»Ë¡A±Ñ§L­Y¥H»ËºÙÂï¡C³ÓªÌ¤§¾Ô¡A­Y¨M¿n¤ô©ó¤d¥Q¤§Áƪ̡A§Î¤]¡C - -§L¶Õ²Ä¤­ - -®]¤l¤ê¡G¤Zªv²³¦pªv¹è¡A¤À¼Æ¬O¤]¡F°«²³¦p°«¹è¡A§Î¦W¬O¤]¡F¤T­x¤§²³¡A¥i¨Ï¥²¨ü¼Ä¦ÓµL±ÑªÌ¡A©_¥¿¬O¤]¡F§L¤§©Ò¥[¡A¦p¥Hâñ§ë§ZªÌ¡Aµê¹ê¬O¤]¡C - -¤Z¾ÔªÌ¡A¥H¥¿¦X¡A¥H©_³Ó¡C¬Gµ½¥X©_ªÌ¡AµL½a¦p¤Ñ¦a¡A¤£ºÜ¦p¦¿®ü¡C²×¦Ó½Æ©l¡A¤é¤ë¬O¤]¡C¦º¦Ó´_¥Í¡A¥|®É¬O¤]¡CÁn¤£¹L¤­¡A¤­Án¤§ÅÜ¡A¤£¥i³ÓÅ¥¤]¡F¦â¤£¹L¤­¡A¤­¦â¤§ÅÜ¡A¤£¥i³ÓÆ[¤]¡F¨ý¤£¹L¤­¡A¤­¨ý¤§ÅÜ¡A¤£¥i³Ó¹Á¤]¡F¾Ô¶Õ¡A¤£¹L©_¥¿¡A©_¥¿¤§ÅÜ¡A¤£¥i³Ó½a¤]¡C©_¥¿¬Û¥Í¡A¦p´`Àô¤§µLºÝ¡A¼ô¯à½a¤§«v¡H - -¿E¤ô¤§¯e¡A¦Ü©óº}¥ÛªÌ¡A¶Õ¤]¡F÷Á³¾¤§¯e¡A¦Ü©ó·´§éªÌ¡A¸`¤]¡C¬O¬Gµ½¾ÔªÌ¡A¨ä¶ÕÀI¡A¨ä¸`µu¡C¶Õ¦p±i©¸¡A¸`¦pµo¾÷¡C - -¯É¯É¯Æ¯Æ¡A°«¶Ã¦Ó¤£¥i¶Ã¤]¡F´ý´ý¨P¨P¡A§Î¶ê¦Ó¤£¥i±Ñ¤]¡C¶Ã¥Í©óªv¡A©Ä¥Í©ó«i¡A®z¥Í©ó±j¡Cªv¶Ã¡A¼Æ¤]¡F«i©Ä¡A¶Õ¤]¡F±j®z¡A§Î¤]¡C¬Gµ½°Ê¼ÄªÌ¡A§Î¤§¡A¼Ä¥²±q¤§¡F¤©¤§¡A¼Ä¥²¨ú¤§¡C¥H§Q°Ê¤§¡A¥H¨ò«Ý¤§¡C - -¬Gµ½¾ÔªÌ¡A¨D¤§©ó¶Õ¡A¤£³d©ó¤H¡F¬G¯à¾Ü¤H¦Ó¥ô¶Õ¡C¥ô¶ÕªÌ¡A¨ä¾Ô¤H¤]¡A¦pÂà¤ì¥Û¡C¤ì¥Û¤§©Ê¡A¦w«hÀR¡A¦M«h°Ê¡A¤è«h¤î¡A¶ê«h¦æ¡C¬Gµ½¾Ô¤H¤§¶Õ¡A¦pÂà¶ê¥Û©ó¤d¥Q¤§¤sªÌ¡A¶Õ¤]¡C - -µê¹ê²Ä¤» - -®]¤l¤ê¡G¤Z¥ý³B¾Ô¦a¦Ó«Ý¼ÄªÌ§H¡A«á³B¾Ô¦a¦ÓÁ;Ԫ̳ҡC - -¬Gµ½¾ÔªÌ¡A­P¤H¦Ó¤£­P©ó¤H¡C¯à¨Ï¼Ä¤H¦Û¦ÜªÌ¡A§Q¤§¤]¡F¯à¨Ï¼Ä¤H¤£±o¦ÜªÌ¡A®`¤§¤]¡C¬G¼Ä§H¯à³Ò¤§¡A¹¡¯àÄȤ§¡A¦w¯à°Ê¤§¡C¥X¨ä©Ò¥²ÁÍ¡AÁͨä©Ò¤£·N¡C¦æ¤d¨½¦Ó¤£³ÒªÌ¡A¦æ©óµL¤H¤§¦a¤]¡F§ð¦Ó¥²¨úªÌ¡A§ð¨ä©Ò¤£¦u¤]¡C¦u¦Ó¥²©TªÌ¡A¦u¨ä©Ò¤£§ð¤]¡C - -¬Gµ½§ðªÌ¡A¼Ä¤£ª¾¨ä©Ò¦u¡Fµ½¦uªÌ¡A¼Ä¤£ª¾¨ä©Ò§ð¡C·L¥G·L¥G¡A¦Ü©óµL§Î¡F¯«¥G¯«¥G¡A¦Ü©óµLÁn¡A¬G¯à¬°¼Ä¤§¥q©R¡C¶i¦Ó¤£¥i¿mªÌ¡A¨R¨äµê¤]¡F°h¦Ó¤£¥i°lªÌ¡A³t¦Ó¤£¥i¤Î¤]¡C¬G§Ú±ý¾Ô¡A¼ÄÁö°ªÂS²`·¾¡A¤£±o¤£»P§Ú¾ÔªÌ¡A§ð¨ä©Ò¥²±Ï¤]¡F§Ú¤£±ý¾Ô¡AÁöµe¦a¦Ó¦u¤§¡A¼Ä¤£±o»P§Ú¾ÔªÌ¡A¨Ä¨ä©Ò¤§¤]¡C¬G§Î¤H¦Ó§ÚµL§Î¡A«h§Ú±M¦Ó¼Ä¤À¡C§Ú±M¬°¤@¡A¼Ä¤À¬°¤Q¡A¬O¥H¤Q§ð¨ä¤@¤]¡C«h§Ú²³¼Ä¹è¡A¯à¥H²³À»¹èªÌ¡A«h§^¤§©Ò»P¾ÔªÌ¬ù¨o¡C§^©Ò»P¾Ô¤§¦a¤£¥iª¾¡A¤£¥iª¾«h¼Ä©Ò³ÆªÌ¦h¡A¼Ä©Ò³ÆªÌ¦h¡A«h§^©Ò»P¾ÔªÌ¹è¨o¡C¬G³Æ«e«h«á¹è¡A³Æ«á«h«e¹è¡A³Æ¥ª«h¥k¹è¡A³Æ¥k«h¥ª¹è¡AµL©Ò¤£³Æ¡A«hµL©Ò¤£¹è¡C¹èªÌ¡A³Æ¤HªÌ¤]¡F²³ªÌ¡A¨Ï¤H³Æ¤vªÌ¤]¡C¬Gª¾¾Ô¤§¦a¡Aª¾¾Ô¤§¤é¡A«h¥i¤d¨½¦Ó·|¾Ô¡F¤£ª¾¾Ô¤§¦a¡A¤£ª¾¾Ô¤é¡A«h¥ª¤£¯à±Ï¥k¡A¥k¤£¯à±Ï¥ª¡A«e¤£¯à±Ï«á¡A«á¤£¯à±Ï«e¡A¦Óªp»·ªÌ¼Æ¤QùØ¡AªñªÌ¼ÆùØ¥G¡I¥H§^«×¤§¡A¶V¤H¤§§LÁö¦h¡A¥ç®O¯q©ó³Ó«v¡I¬G¤ê¡G³Ó¥i¬°¤]¡C¼ÄÁö²³¡A¥i¨ÏµL°«¡C¬Gµ¦¤§¦Óª¾±o¥¢¤§­p¡A­Ô¤§¦Óª¾°ÊÀR¤§²z¡A§Î¤§¦Óª¾¦º¥Í¤§¦a¡A¨¤¤§¦Óª¾¦³¾l¤£¨¬¤§³B¡C¬G§Î§L¤§·¥¡A¦Ü©óµL§Î¡CµL§Î«h²`¶¡¤£¯à¿s¡A´¼ªÌ¤£¯à¿Ñ¡C¦]§Î¦Ó±¹³Ó©ó²³¡A²³¤£¯àª¾¡C¤H¬Òª¾§Ú©Ò¥H³Ó¤§§Î¡A¦Ó²öª¾§^©Ò¥H¨î³Ó¤§§Î¡C¬G¨ä¾Ô³Ó¤£´_¡A¦ÓÀ³§Î©óµL½a¡C¤Ò§L§Î¶H¤ô¡A¤ô¤§¦æÁ×°ª¦ÓÁͤU¡A§L¤§§ÎÁ×¹ê¦ÓÀ»µê¡F¤ô¦]¦a¦Ó¨î¬y¡A§L¦]¼Ä¦Ó¨î³Ó¡C¬G§LµL±`¶Õ¡A¤ôµL±`§Î¡C¯à¦]¼ÄÅܤƦӨú³ÓªÌ¡A¿×¤§¯«¡C¬G¤­¦æµL±`³Ó¡A¥|®ÉµL±`¦ì¡A¤é¦³µuªø¡A¤ë¦³¦º¥Í¡C - -­xª§²Ä¤C - -®]¤l¤ê¡G ¤Z¥Î§L¤§ªk¡A±N¨ü©R©ó§g¡A¦X­x»E²³¡A¥æ©M¦ÓªÙ¡A²öÃø©ó­xª§¡C­xª§¤§ÃøªÌ¡A¥H¨±¬°ª½¡A¥H±w¬°§Q¡C¬G¨±¨ä³~¡A¦Ó»¤¤§¥H§Q¡A«á¤Hµo¡A¥ý¤H¦Ü¡A¦¹ª¾¨±ª½¤§­pªÌ¤]¡C­xª§¬°§Q¡A­xª§¬°¦M¡CÁ|­x¦Óª§§Q«h¤£¤Î¡A©e­x¦Óª§§Q«h½ý­«®½¡C¬O¬G±²¥Ò¦ÓÁÍ¡A¤é©]¤£³B¡A­¿¹D­Ý¦æ¡A¦Ê¸Ì¦Óª§§Q¡A«h¾à¤T±N­x¡A«lªÌ¥ý¡A¯hªÌ«á¡A¨äªk¤Q¤@¦Ó¦Ü¡F¤­¤QùئӪ§§Q¡A«hÃݤW±N­x¡A¨äªk¥b¦Ü¡F¤T¤QùئӪ§§Q¡A«h¤T¤À¤§¤G¦Ü¡C¬O¬G­xµL½ý­««h¤`¡AµL³­¹«h¤`¡AµL©e¿n«h¤`¡C¬G¤£ª¾½Ñ«J¤§¿ÑªÌ¡A¤£¯à¿Ý¥æ¡F¤£ª¾¤sªL¡BÀIªý¡Bªq¿A¤§§ÎªÌ¡A¤£¯à¦æ­x¡F¤£¥Î¶m¾ÉªÌ¡A¤£¯à±o¦a§Q¡C¬G§L¥H¶B¥ß¡A¥H§Q°Ê¡A¥H¤À©M¬°Åܪ̤]¡C¬G¨ä¯e¦p­·¡A¨ä®}¦pªL¡A«I±°¦p¤õ¡A¤£°Ê¦p¤s¡AÃøª¾¦p³±¡A°Ê¦p¹p¾_¡C±°¶m¤À²³¡A¹ø¦a¤À§Q¡AÄaÅv¦Ó°Ê¡C¥ýª¾¨±ª½¤§­pªÌ³Ó¡A¦¹­xª§¤§ªk¤]¡C¡m­x¬F¡n¤ê¡G¡§¨¥¤£¬Û»D¡A¬G¬°¤§ª÷¹ª¡Fµø¤£¬Û¨£¡A¬G¬°¤§±ÜºX¡C¡¨¤Òª÷¹ª±ÜºXªÌ¡A©Ò¥H¤@¥Á¤§¦Õ¥Ø¤]¡C¥Á¬J±M¤@¡A«h«iªÌ¤£±o¿W¶i¡A©ÄªÌ¤£±o¿W°h¡A¦¹¥Î²³¤§ªk¤]¡C¬G©]¾Ô¦hª÷¹ª¡A±Þ¾Ô¦h±ÜºX¡A©Ò¥HÅܤH¤§¦Õ¥Ø¤]¡C¤T­x¥i¹Ü®ð¡A±N­x¥i¹Ü¤ß¡C¬O¬G´Â®ð¾U¡A±Þ®ð´k¡A¼Ç®ðÂk¡Cµ½¥Î§LªÌ¡AÁרä¾U®ð¡AÀ»¨ä´kÂk¡A¦¹ªv®ðªÌ¤]¡C¥Hªv«Ý¶Ã¡A¥HÀR«Ý¼M¡A¦¹ªv¤ßªÌ¤]¡C¥Hªñ«Ý»·¡A¥H§H«Ý³Ò¡A¥H¹¡«ÝÄÈ¡A¦¹ªv¤OªÌ¤]¡CµLÁÜ¥¿¥¿¤§ºX¡AµLÀ»°ó°ó¤§³¯¡A¦¹ªvÅܪ̤]¡C¬G¥Î§L¤§ªk¡A°ª³®¤Å¦V¡A­I¥C¤Å°f¡A¨Ë¥_¤Å±q¡A¾U¨ò¤Å§ð¡A»ç§L¤Å­¹¡AÂk®v¤Å¹K¡A³ò®v¿òÂö¡A½a±F¤Å­¢¡A¦¹¥Î§L¤§ªk¤]¡C - -¤EÅܲĤK - -®]¤l¤ê¡G ¤Z¥Î§L¤§ªk¡A±N¨ü©R©ó§g¡A¦X­x»E¦X¡Cªx¦aµLªÙ¡AÅü¦a¦X¥æ¡Aµ´¦aµL¯d¡A³ò¦a«h¿Ñ¡A¦º¦a«h¾Ô¡A³~¦³©Ò¤£¥Ñ¡A­x¦³©Ò¤£À»¡A«°¦³©Ò¤£§ð¡A¦a¦³©Ò¤£ª§¡A§g©R¦³©Ò¤£¨ü¡C¬G±N³q©ó¤EÅܤ§§QªÌ¡Aª¾¥Î§L¨o¡F±N¤£³q¤EÅܤ§§Q¡AÁöª¾¦a§Î¡A¤£¯à±o¦a¤§§Q¨o¡Fªv§L¤£ª¾¤EÅܤ§³N¡AÁöª¾¤­§Q¡A¤£¯à±o¤H¤§¥Î¨o¡C¬O¬G´¼ªÌ¤§¼{¡A¥²Âø©ó§Q®`¡AÂø©ó§Q¦Ó°È¥i«H¤]¡AÂø©ó®`¦Ó±w¥i¸Ñ¤]¡C¬O¬G©}½Ñ«JªÌ¥H®`¡A§Ð½Ñ«JªÌ¥H·~¡AÁͽѫJªÌ¥H§Q¡C¬G¥Î§L¤§ªk¡AµL«î¨ä¤£¨Ó¡A«î§^¦³¥H«Ý¤§¡FµL«î¨ä¤£§ð¡A«î§^¦³©Ò¤£¥i§ð¤]¡C¬G±N¦³¤­¦M¡A¥²¦º¥i±þ¡A¥²¥Í¥i¸¸¡A©Á³t¥i«V¡A·G¼ä¥i°d¡A·R¥Á¥i·Ð¡C¤Z¦¹¤­ªÌ¡A±N¤§¹L¤]¡A¥Î§L¤§¨a¤]¡CÂЭx±þ±N¡A¥²¥H¤­¦M¡A¤£¥i¤£¹î¤]¡C - -¦æ­x²Ä¤E - -®]¤l¤ê¡G¤Z³B­x¬Û¼Ä¡Aµ´¤s¨Ì½\¡Aµø¥Í³B°ª¡A¾Ô¶©µLµn¡A¦¹³B¤s¤§­x¤]¡Cµ´¤ô¥²»·¤ô¡A«Èµ´¤ô¦Ó¨Ó¡A¤Åªï¤§©ó¤ô¤º¡A¥O¥b´ç¦ÓÀ»¤§§Q¡A±ý¾ÔªÌ¡AµLªþ©ó¤ô¦Óªï«È¡Aµø¥Í³B°ª¡AµLªï¤ô¬y¡A¦¹³B¤ô¤W¤§­x¤]¡Cµ´¥¸¿A¡A°ß«E¥hµL¯d¡A­Y¥æ­x©ó¥¸¿A¤§¤¤¡A¥²¨Ì¤ô¯ó¦Ó­I²³¾ð¡A¦¹³B¥¸¿A¤§­x¤]¡C¥­³°³B©ö¡A¥k­I°ª¡A«e¦º«á¥Í¡A¦¹³B¥­³°¤§­x¤]¡C¤Z¦¹¥|­x¤§§Q¡A¶À«Ò¤§©Ò¥H³Ó¥|«Ò¤]¡C¤Z­x¦n°ª¦Ó´c¤U¡A¶Q¶§¦Ó½â³±¡A¾i¥Í¦Ó³B¹ê¡A­xµL¦Ê¯e¡A¬O¿×¥²³Ó¡C¥C³®³ö¨¾¡A¥²³B¨ä¶§¦Ó¥k­I¤§¡A¦¹§L¤§§Q¡A¦a¤§§U¤]¡C¤W«B¤ô¬y¦Ü¡A±ý¯AªÌ¡A«Ý¨ä©w¤]¡C¤Z¦a¦³µ´¼î¡B¤Ñ¤«¡B¤Ñ¨c¡B¤Ñù¡B¤Ñ³´¡B¤Ñ»Ø¡A¥²«E¥h¤§¡A¤Åªñ¤]¡C§^»·¤§¡A¼Äªñ¤§¡F§^ªï¤§¡A¼Ä­I¤§¡C­x®Ç¦³ÀIªý¡BæC¤«¡B㶸µ¡B¤pªL¡Bõ÷îPªÌ¡A¥²ÂÔÂЯÁ¤§¡A¦¹¥ñ«Á¤§©Ò³B¤]¡C¼Äªñ¦ÓÀRªÌ¡A«î¨äÀI¤]¡F»·¦Ó¬D¾ÔªÌ¡A±ý¤H¤§¶i¤]¡F¨ä©Ò©~©öªÌ¡A§Q¤]¡F²³¾ð°ÊªÌ¡A¨Ó¤]¡F²³¯ó¦h»ÙªÌ¡AºÃ¤]¡F³¾°_ªÌ¡A¥ñ¤]¡FÃ~ÀbªÌ¡AÂФ]¡F¹Ð°ª¦Ó¾UªÌ¡A¨®¨Ó¤]¡F¨õ¦Ó¼sªÌ¡A®{¨Ó¤]¡F´²¦Ó±ø¹FªÌ¡A¾ö±Ä¤]¡F¤Ö¦Ó©¹¨ÓªÌ¡AÀç­x¤]¡FÃã¨õ¦Ó³ÆªÌ¡A¶i¤]¡FÃã±j¦Ó¶iÅXªÌ¡A°h¤]¡F»´¨®¥ý¥X©~¨ä°¼ªÌ¡A³¯¤]¡FµL¬ù¦Ó½Ð©MªÌ¡A¿Ñ¤]¡F©b¨«¦Ó³¯§LªÌ¡A´Á¤]¡F¥b¶i¥b°hªÌ¡A»¤¤]¡F§ú¦Ó¥ßªÌ¡AÄȤ]¡F¨V¦Ó¥ý¶¼ªÌ¡A´÷¤]¡F¨£§Q¦Ó¤£¶iªÌ¡A³Ò¤]¡F³¾¶°ªÌ¡Aµê¤]¡F©]©IªÌ¡A®£¤]¡F­xÂZªÌ¡A±N¤£­«¤]¡F±ÜºX°ÊªÌ¡A¶Ã¤]¡F¦O«ãªÌ¡A­Â¤]¡F±þ°¨¦×­¹ªÌ¡A­xµL³¤]¡FÄaâÕ¤£ªð¨äªÙªÌ¡A½a±F¤]¡F½Î½Îµ¿µ¿¡A®}»P¤H¨¥ªÌ¡A¥¢²³¤]¡F¼Æ½àªÌ¡Aµ~¤]¡F¼Æ»@ªÌ¡A§x¤]¡F¥ý¼É¦Ó«á¬È¨ä²³ªÌ¡A¤£ºë¤§¦Ü¤]¡F¨Ó©eÁª̡A±ý¥ð®§¤]¡C§L«ã¦Ó¬Ûªï¡A¤[¦Ó¤£¦X¡A¤S¤£¬Û¥h¡A¥²ÂԹ¡C§L«D¶Q¯q¦h¤]¡A±©µLªZ¶i¡A¨¬¥H¨Ã¤O®Æ¼Ä¨ú¤H¦Ó¤w¡C¤Ò±©µL¼{¦Ó©ö¼ÄªÌ¡A¥²¾à©ó¤H¡C¨ò¥¼¿Ë¦Ó»@¤§¡A«h¤£ªA¡A¤£ªA«hÃø¥Î¡C¨ò¤w¿Ëªþ¦Ó»@¤£¦æ¡A«h¤£¥i¥Î¡C¬G¦X¤§¥H¤å¡A»ô¤§¥HªZ¡A¬O¿×¥²¨ú¡C¥O¯À¦æ¥H±Ð¨ä¥Á¡A«h¥ÁªA¡F¥O¯À¤£¦æ¥H±Ð¨ä¥Á¡A«h¥Á¤£ªA¡C¥O¯À¦æªÌ¡A»P²³¬Û±o¤]¡C - -¦a§Î²Ä¤Q - -®]¤l¤ê¡G¦a§Î¦³³qªÌ¡B¦³±¾ªÌ¡B¦³¤äªÌ¡B¦³¹iªÌ¡B¦³ÀIªÌ¡B¦³»·ªÌ¡C§Ú¥i¥H©¹¡A©¼¥i¥H¨Ó¡A¤ê³q¡C³q§ÎªÌ¡A¥ý©~°ª¶§¡A§Q³¹D¡A¥H¾Ô«h§Q¡C¥i¥H©¹¡AÃø¥Hªð¡A¤ê±¾¡C±¾§ÎªÌ¡A¼ÄµL³Æ¡A¥X¦Ó³Ó¤§¡A¼Ä­Y¦³³Æ¡A¥X¦Ó¤£³Ó¡AÃø¥Hªð¡A¤£§Q¡C§Ú¥X¦Ó¤£§Q¡A©¼¥X¦Ó¤£§Q¡A¤ê¤ä¡C¤ä§ÎªÌ¡A¼ÄÁö§Q§Ú¡A§ÚµL¥X¤]¡A¤Þ¦Ó¥h¤§¡A¥O¼Ä¥b¥X¦ÓÀ»¤§§Q¡C¹i§ÎªÌ¡A§Ú¥ý©~¤§¡A¥²¬Õ¤§¥H«Ý¼Ä¡C­Y¼Ä¥ý©~¤§¡A¬Õ¦Ó¤Å±q¡A¤£¬Õ¦Ó±q¤§¡CÀI§ÎªÌ¡A§Ú¥ý©~¤§¡A¥²©~°ª¶§¥H«Ý¼Ä¡F­Y¼Ä¥ý©~¤§¡A¤Þ¦Ó¥h¤§¡A¤Å±q¤]¡C»·§ÎªÌ¡A¶Õ§¡Ãø¥H¬D¾Ô¡A¾Ô¦Ó¤£§Q¡C¤Z¦¹¤»ªÌ¡A¦a¤§¹D¤]¡A±N¤§¦Ü¥ô¡A¤£¥i¤£¹î¤]¡C¤Z§L¦³¨«ªÌ¡B¦³¹£ªÌ¡B¦³³´ªÌ¡B¦³±YªÌ¡B¦³¶ÃªÌ¡B¦³¥_ªÌ¡C¤Z¦¹¤»ªÌ¡A«D¤Ñ¦a¤§¨a¡A±N¤§¹L¤]¡C¤Ò¶Õ§¡¡A¥H¤@À»¤Q¡A¤ê¨«¡F¨ò±j¦O®z¡A¤ê¹£¡F¦O±j¨ò®z¡A¤ê³´¡F¤j¦O«ã¦Ó¤£ªA¡A¹J¼ÄïȦӦ۾ԡA±N¤£ª¾¨ä¯à¡A¤ê±Y¡F±N®z¤£ÄY¡A±Ð¹D¤£©ú¡A¦O¨òµL±`¡A³¯§LÁa¾î¡A¤ê¶Ã¡F±N¤£¯à®Æ¼Ä¡A¥H¤Ö¦X²³¡A¥H®zÀ»±j¡A§LµL¿ï¾W¡A¤ê¥_¡C¤Z¦¹¤»ªÌ¡A±Ñ¤§¹D¤]¡A±N¤§¦Ü¥ô¡A¤£¥i¤£¹î¤]¡C¤Ò¦a§ÎªÌ¡A§L¤§§U¤]¡C®Æ¼Ä¨î³Ó¡A­pÀI¹i»·ªñ¡A¤W±N¤§¹D¤]¡Cª¾¦¹¦Ó¥Î¾ÔªÌ¥²³Ó¡A¤£ª¾¦¹¦Ó¥Î¾ÔªÌ¥²±Ñ¡C¬G¾Ô¹D¥²³Ó¡A¥D¤êµL¾Ô¡A¥²¾Ô¥i¤]¡F¾Ô¹D¤£³Ó¡A¥D¤ê¥²¾Ô¡AµL¾Ô¥i¤]¡C¬G¶i¤£¨D¦W¡A°h¤£Á׸o¡A°ß¥Á¬O«O¡A¦Ó§Q©ó¥D¡A°ê¤§Ä_¤]¡Cµø¨ò¦pÀ¦¨à¡A¬G¥i¥H»P¤§­u²`·Ë¡Fµø¨ò¦p·R¤l¡A¬G¥i»P¤§­Ñ¦º¡C«p¦Ó¤£¯à¨Ï¡A·R¦Ó¤£¯à¥O¡A¶Ã¦Ó¤£¯àªv¡AÄ´­Yź¤l¡A¤£¥i¥Î¤]¡Cª¾§^¨ò¤§¥i¥HÀ»¡A¦Ó¤£ª¾¼Ä¤§¤£¥iÀ»¡A³Ó¤§¥b¤]¡Fª¾¼Ä¤§¥iÀ»¡A¦Ó¤£ª¾§^¨ò¤§¤£¥i¥HÀ»¡A³Ó¤§¥b¤]¡Fª¾¼Ä¤§¥iÀ»¡Aª¾§^¨ò¤§¥i¥HÀ»¡A¦Ó¤£ª¾¦a§Î¤§¤£¥i¥H¾Ô¡A³Ó¤§¥b¤]¡C¬Gª¾§LªÌ¡A°Ê¦Ó¤£°g¡AÁ|¦Ó¤£½a¡C¬G¤ê¡Gª¾©¼ª¾¤v¡A³Ó¤D¤£¬p¡Fª¾¤Ñª¾¦a¡A³Ó¤D¥i¥þ¡C - -¤E¦a²Ä¤Q¤@ - -®]¤l¤ê¡G¥Î§L¤§ªk¡A¦³´²¦a¡A¦³»´¦a¡A¦³ª§¦a¡A¦³¥æ¦a¡A¦³Åü¦a¡A¦³­«¦a¡A¦³ªx¦a¡A¦³³ò¦a¡A¦³¦º¦a¡C½Ñ«J¦Û¾Ô¨ä¦aªÌ¡A¬°´²¦a¡F¤J¤H¤§¦a¤£²`ªÌ¡A¬°»´¦a¡F§Ú±o¥ç§Q¡A©¼±o¥ç§QªÌ¡A¬°ª§¦a¡F§Ú¥i¥H©¹¡A©¼¥i¥H¨ÓªÌ¡A¬°¥æ¦a¡F½Ñ«J¤§¦a¤TÄÝ¡A¥ý¦Ü¦Ó±o¤Ñ¤U²³ªÌ¡A¬°Åü¦a¡F¤J¤H¤§¦a²`¡A­I«°¨¶¦hªÌ¡A¬°­«¦a¡F¤sªL¡BÀIªý¡Bªq¿A¡A¤ZÃø¦æ¤§¹DªÌ¡A¬°ªx¦a¡F©Ò¥Ñ¤JªÌ¹i¡A©Ò±qÂkªÌ¨±¡A©¼¹è¥i¥HÀ»§^¤§²³ªÌ¡A¬°³ò¦a¡F¯e¾Ô«h¦s¡A¤£¯e¾Ô«h¤`ªÌ¡A¬°¦º¦a¡C¬O¬G´²¦a«hµL¾Ô¡A»´¦a«hµL¤î¡Aª§¦a«hµL§ð¡A¥æ¦a«hµLµ´¡AÅü¦a«h¦X¥æ¡A­«¦a«h±°¡Aªx¦a«h¦æ¡A³ò¦a«h¿Ñ¡A¦º¦a«h¾Ô¡C¥j¤§µ½¥Î§LªÌ¡A¯à¨Ï¼Ä¤H«e«á¤£¬Û¤Î¡A²³¹è¤£¬Û«î¡A¶Q½â¤£¬Û±Ï¡A¤W¤U¤£¬Û¦¬¡A¨òÂ÷¦Ó¤£¶°¡A§L¦X¦Ó¤£»ô¡C¦X©ó§Q¦Ó°Ê¡A¤£¦X©ó§Q¦Ó¤î¡C´±°Ý¼Ä²³¦Ó¾ã±N¨Ó¡A«Ý¤§­Y¦ó¤ê¡G¥ý¹Ü¨ä©Ò·R«hÅ¥¨o¡C§L¤§±¡¥D³t¡A­¼¤H¤§¤£¤Î¡C¥Ñ¤£¸·¤§¹D¡A§ð¨ä©Ò¤£§Ù¤]¡C¤Z¬°«È¤§¹D¡A²`¤J«h±M¡C¥D¤H¤£§J¡A±°©óÄdz¥¡A¤T­x¨¬­¹¡CÂÔ¾i¦Ó¤Å³Ò¡A¨Ã®ð¿n¤O¡A¹B§L­p¿Ñ¡A¬°¤£¥i´ú¡C§ë¤§µL©Ò©¹¡A¦º¥B¤£¥_¡C¦º²j¤£±o¡A¤h¤HºÉ¤O¡C§L¤h¬Æ³´«h¤£Äß¡AµL©Ò©¹«h©T¡A²`¤J«h©ë¡A¤£±o¤w«h°«¡C¬O¬G¨ä§L¤£­×¦Ó§Ù¡A¤£¨D¦Ó±o¡A¤£¬ù¦Ó¿Ë¡A¤£¥O¦Ó«H¡A¸T²»¥hºÃ¡A¦Ü¦ºµL©Ò¤§¡C§^¤hµL¾l°]¡A«D´c³f¤]¡FµL¾l©R¡A«D´c¹Ø¤]¡C¥Oµo¤§¤é¡A¤h¨ò§¤ªÌ®÷ªgÃÌ¡A°³ª×ªÌ®÷¥æÀ[¡A§ë¤§µL©Ò©¹¡A½Ñ¡Bä󤧫i¤]¡C¬Gµ½¥Î§LªÌ¡AÄ´¦p²vµM¡C²vµMªÌ¡A±`¤s¤§³D¤]¡CÀ»¨ä­º«h§À¦Ü¡AÀ»¨ä§À«h­º¦Ü¡AÀ»¨ä¤¤«h­º§À­Ñ¦Ü¡C´±°Ý§L¥i¨Ï¦p²vµM¥G¡H¤ê¥i¡C¤Ò§d¤H»P¶V¤H¬Û´c¤]¡A·í¨ä¦P¦à¦ÓÀÙ¦Ó¹J­·¡A¨ä¬Û±Ï¤]¦p¥ª¥k¤â¡C¬O¬G¤è°¨®I½ü¡A¥¼¨¬«î¤]¡F»ô«i¦p¤@¡A¬F¤§¹D¤]¡F­è¬X¬Ò±o¡A¦a¤§²z¤]¡C¬Gµ½¥Î§LªÌ¡AÄâ¤â­Y¨Ï¤@¤H¡A¤£±o¤w¤]¡C±N­x¤§¨Æ¡AÀR¥H«Õ¡A¥¿¥Hªv¡A¯à·M¤h¨ò¤§¦Õ¥Ø¡A¨Ï¤§µLª¾¡F©ö¨ä¨Æ¡A­²¨ä¿Ñ¡A¨Ï¤HµLÃÑ¡F©ö¨ä©~¡A¨±¨ä³~¡A¨Ï¥Á¤£±o¼{¡C«Ó»P¤§´Á¡A¦pµn°ª¦Ó¥h¨ä±è¡F«Ó»P¤§²`¤J½Ñ«J¤§¦a¡A¦Óµo¨ä¾÷¡C­YÅX¸s¦Ï¡AÅX¦Ó©¹¡AÅX¦Ó¨Ó¡A²öª¾©Ò¤§¡C»E¤T­x¤§²³¡A§ë¤§©óÀI¡A¦¹¿×±N­x¤§¨Æ¤]¡C¤E¦a¤§ÅÜ¡A©}¦ù¤§¤O¡A¤H±¡¤§²z¡A¤£¥i¤£¹î¤]¡C¤Z¬°«È¤§¹D¡A²`«h±M¡A²L«h´²¡C¥h°ê¶V¹Ò¦Ó®vªÌ¡Aµ´¦a¤]¡F¥|¹ýªÌ¡AÅü¦a¤]¡F¤J²`ªÌ¡A­«¦a¤]¡F¤J²LªÌ¡A»´¦a¤]¡F­I©T«e¹iªÌ¡A³ò¦a¤]¡FµL©Ò©¹ªÌ¡A¦º¦a¤]¡C¬O¬G´²¦a§^±N¤@¨ä§Ó¡A»´¦a§^±N¨Ï¤§ÄÝ¡Aª§¦a§^±NÁͨä«á¡A¥æ¦a§^±NÂÔ¨ä¦u¡A¥æ¦a§^±N©T¨äµ²¡AÅü¦a§^±NÂÔ¨ä«î¡A­«¦a§^±NÄ~¨ä­¹¡Aªx¦a§^±N¶i¨ä³~¡A³ò¦a§^±N¶ë¨äÂö¡A¦º¦a§^±N¥Ü¤§¥H¤£¬¡¡C¬G§L¤§±¡¡G³ò«h¿m¡A¤£±o¤w«h°«¡A¹L«h±q¡C¬O¬G¤£ª¾½Ñ«J¤§¿ÑªÌ¡A¤£¯à¹w¥æ¡F¤£ª¾¤sªL¡BÀIªý¡Bªq¿A¤§§ÎªÌ¡A¤£¯à¦æ­x¡F¤£¥Î¶m¾É¡A¤£¯à±o¦a§Q¡C¥|¤­ªÌ¡A¤@¤£ª¾¡A«DÅQ¤ý¤§§L¤]¡C¤ÒÅQ¤ý¤§§L¡A¥ï¤j°ê¡A«h¨ä²³¤£±o»E¡F«Â¥[©ó¼Ä¡A«h¨ä¥æ¤£±o¦X¡C¬O¬G¤£ª§¤Ñ¤U¤§¥æ¡A¤£¾i¤Ñ¤U¤§Åv¡A«H¤v¤§¨p¡A«Â¥[©ó¼Ä¡A«h¨ä«°¥i©Þ¡A¨ä°ê¥iño¡C¬IµLªk¤§½à¡AÄaµL¬F¤§¥O¡C¥Ç¤T­x¤§²³¡A­Y¨Ï¤@¤H¡C¥Ç¤§¥H¨Æ¡A¤Å§i¥H¨¥¡F¥Ç¤§¥H®`¡A¤Å§i¥H§Q¡C§ë¤§¤`¦aµM«á¦s¡A³´¤§¦º¦aµM«á¥Í¡C¤Ò²³³´©ó®`¡AµM«á¯à¬°³Ó±Ñ¡C¬G¬°§L¤§¨Æ¡A¦b¶¶¸Ô¼Ä¤§·N¡A¨Ã¼Ä¤@¦V¡A¤d¨½±þ±N¡A¬O¿×¥©¯à¦¨¨Æ¡C¬O¬G¬FÁ|¤§¤é¡A¦iÃö§é²Å¡AµL³q¨ä¨Ï¡A¼F©ó´Y¼q¤§¤W¡A¥H¸Ý¨ä¨Æ¡C¼Ä¤H¶}Âó¡A¥²«E¤J¤§¡A¥ý¨ä©Ò·R¡A·L»P¤§´Á¡A½î¾¥ÀH¼Ä¡A¥H¨M¾Ô¨Æ¡C¬O¬G©l¦p³B¤k¡A¼Ä¤H¶}¤á¡F«á¦p²æ¨ß¡A¼Ä¤£¤Î©Ú¡C - -¤õ§ð²Ä¤Q¤G - -®]¤l¤ê¡G¤Z¤õ§ð¦³¤­¡G¤@¤ê¤õ¤H¡A¤G¤ê¤õ¿n¡A¤T¤ê¤õ½ý¡A¥|¤ê¤õ®w¡A¤­¤ê¤õ¶¤¡C¦æ¤õ¥²¦³¦]¡A¦]¥²¯À¨ã¡Cµo¤õ¦³®É¡A°_¤õ¦³¤é¡C®ÉªÌ¡A¤Ñ¤§Àê¤]¡C¤éªÌ¡A¤ë¦bºß¡B¾À¡BÁl¡BÜH¤]¡C¤Z¦¹¥|±JªÌ¡A­·°_¤§¤é¤]¡C¤Z¤õ§ð¡A¥²¦]¤­¤õ¤§ÅܦÓÀ³¤§¡G¤õµo©ó¤º¡A«h¦­À³¤§©ó¥~¡F¤õµo¦Ó¨ä§LÀRªÌ¡A«Ý¦Ó¤Å§ð¡A·¥¨ä¤õ¤O¡A¥i±q¦Ó±q¤§¡A¤£¥i±q«h¤W¡C¤õ¥iµo©ó¥~¡AµL«Ý©ó¤º¡A¥H®Éµo¤§¡A¤õµo¤W­·¡AµL§ð¤U­·¡A±Þ­·¤[¡A©]­·¤î¡C¤Z­x¥²ª¾¤­¤õ¤§ÅÜ¡A¥H¼Æ¦u¤§¡C¬G¥H¤õ¦õ§ðªÌ©ú¡A¥H¤ô¦õ§ðªÌ±j¡C¤ô¥i¥Hµ´¡A¤£¥i¥H¹Ü¡C¤Ò¾Ô³Ó§ð¨ú¦Ó¤£´k¨ä¥\ªÌ¤¿¡A©R¤ê¡§¶O¯d¡¨¡C¬G¤ê¡G©ú¥D¼{¤§¡A¨}±N´k¤§¡A«D§Q¤£°Ê¡A«D±o¤£¥Î¡A«D¦M¤£¾Ô¡C¥D¤£¥i¥H«ã¦Ó¿³®v¡A±N¤£¥i¥H·Y¦Ó§ð¾Ô¡C¦X©ó§Q¦Ó°Ê¡A¤£¦X©ó§Q¦Ó¤W¡C«ã¥i¥H½Æ³ß¡A·Y¥i¥H½Æ»¡¡A¤`°ê¤£¥i¥H½Æ¦s¡A¦ºªÌ¤£¥i¥H½Æ¥Í¡C¬G©ú¥D·V¤§¡A¨}±Nĵ¤§¡C¦¹¦w°ê¥þ­x¤§¹D¤]¡C - -¥Î¶¡²Ä¤Q¤T - -®]¤l¤ê¡G ¤Z¿³®v¤Q¸U¡A¥X©º¤d¨½¡A¦Ê©m¤§¶O¡A¤½®a¤§©^¡A¤é¶O¤dª÷¡A¤º¥~ÄÌ°Ê¡A«å©ó¹D¸ô¡A¤£±o¾Þ¨ÆªÌ¡A¤C¤Q¸U®a¡C¬Û¦u¼Æ¦~¡A¥Hª§¤@¤é¤§³Ó¡A¦Ó·RÀï¸S¦Êª÷¡A¤£ª¾¼Ä¤§±¡ªÌ¡A¤£¤¯¤§¦Ü¤]¡A«D¥Á¤§±N¤]¡A«D¥D¤§¦õ¤]¡A«D³Ó¤§¥D¤]¡C¬G©ú§g½å±N©Ò¥H°Ê¦Ó³Ó¤H¡A¦¨¥\¥X©ó²³ªÌ¡A¥ýª¾¤]¡C¥ýª¾ªÌ¡A¤£¥i¨ú©ó°­¯«¡A¤£¥i¶H©ó¨Æ¡A¤£¥iÅç©ó«×¡A¥²¨ú©ó¤H¡Aª¾¼Ä¤§±¡ªÌ¤]¡C¬G¥Î¶¡¦³¤­¡G¦³¦]¶¡¡A¦³¤º¶¡¡A¦³¤Ï¶¡¡A¦³¦º¶¡¡A¦³¥Í¶¡¡C¤­¶¡­Ñ°_¡A²öª¾¨ä¹D¡A¬O¿×¯«¬ö¡A¤H§g¤§Ä_¤]¡C¶m¶¡ªÌ¡A¦]¨ä¶m¤H¦Ó¥Î¤§¡F¤º¶¡ªÌ¡A¦]¨ä©x¤H¦Ó¥Î¤§¡F¤Ï¶¡ªÌ¡A¦]¨ä¼Ä¶¡¦Ó¥Î¤§¡F¦º¶¡ªÌ¡A¬°»¥¨Æ©ó¥~¡A¥O§^»Dª¾¤§¦Ó¶Ç©ó¼Ä¶¡¤]¡F¥Í¶¡ªÌ¡A¤Ï³ø¤]¡C¬G¤T­x¤§¨Æ¡A²ö¿Ë©ó¶¡¡A½à²ö«p©ó¶¡¡A¨Æ²ö±K©ó¶¡¡A«D¸t½å¤£¯à¥Î¶¡¡A«D¤¯¸q¤£¯à¨Ï¶¡¡A«D·L§®¤£¯à±o¶¡¤§¹ê¡C·L«v·L«v¡IµL©Ò¤£¥Î¶¡¤]¡C¶¡¨Æ¥¼µo¦Ó¥ý»DªÌ¡A¶¡»P©Ò§iªÌ­Ý¦º¡C¤Z­x¤§©Ò±ýÀ»¡A«°¤§©Ò±ý§ð¡A¤H¤§©Ò±ý±þ¡A¥²¥ýª¾¨ä¦u±N¡B¥ª¥k¡B¿ÖªÌ¡BªùªÌ¡BªÙ¤H¤§©m¦W¡A¥O§^¶¡¥²¯Áª¾¤§¡C¼Ä¶¡¤§¨Ó¶¡§ÚªÌ¡A¦]¦Ó§Q¤§¡A¾É¦ÓªÙ¤§¡A¬G¤Ï¶¡¥i±o¦Ó¥Î¤]¡F¦]¬O¦Óª¾¤§¡A¬G¶m¶¡¡B¤º¶¡¥i±o¦Ó¨Ï¤]¡F¦]¬O¦Óª¾¤§¡A¬G¦º¶¡¬°»¥¨Æ¡A¥i¨Ï§i¼Ä¡F¦]¬O¦Óª¾¤§¡A¬G¥Í¶¡¥i¨Ï¦p´Á¡C¤­¶¡¤§¨Æ¡A¥D¥²ª¾¤§¡Aª¾¤§¥²¦b©ó¤Ï¶¡¡A¬G¤Ï¶¡¤£¥i¤£«p¤]¡C©õ®ï¤§¿³¤]¡A¥ì¼°¦b®L¡F©P¤§¿³¤]¡A§f¤ú¦b®ï¡C¬G©ú§g½å±N¡A¯à¥H¤W´¼¬°¶¡ªÌ¡A¥²¦¨¤j¥\¡C¦¹§L¤§­n¡A¤T­x¤§©Ò«î¦Ó°Ê¤]¡C diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt deleted file mode 100644 index 5797b374..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt +++ /dev/null @@ -1,106 +0,0 @@ -This file was derived from -http://www.gutenberg.org/files/23864/23864-0.txt --------- -始計第一 - -å­«å­æ›°ï¼šå…µè€…,國之大事,死生之地,存亡之é“,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚ - -故經之以五事,校之以計,而索其情:一曰é“,二曰天,三曰地,四曰將,五曰法。 - -é“者,令民與上åŒæ„,å¯èˆ‡ä¹‹æ­»ï¼Œå¯èˆ‡ä¹‹ç”Ÿï¼Œè€Œä¸ç•å±ä¹Ÿï¼›å¤©è€…,陰陽ã€å¯’æš‘ã€æ™‚制也;地者,é è¿‘ã€éšªæ˜“ã€å»£ç‹¹ã€æ­»ç”Ÿä¹Ÿï¼›å°‡è€…,智ã€ä¿¡ã€ä»ã€å‹‡ã€åš´ä¹Ÿï¼›æ³•è€…,曲制ã€å®˜é“ã€ä¸»ç”¨ä¹Ÿã€‚凡此五者,將莫ä¸èžï¼ŒçŸ¥ä¹‹è€…å‹ï¼Œä¸çŸ¥è€…ä¸å‹ã€‚ - -故校之以計,而索其情,曰:主孰有é“?將孰有能?天地孰得?法令孰行?兵眾孰強?士å’孰練?賞罰孰明?å¾ä»¥æ­¤çŸ¥å‹è² çŸ£ã€‚ - -å°‡è½å¾è¨ˆï¼Œç”¨ä¹‹å¿…å‹ï¼Œç•™ä¹‹ï¼›å°‡ä¸è½å¾è¨ˆï¼Œç”¨ä¹‹å¿…敗,去之。 - -計利以è½ï¼Œä¹ƒç‚ºä¹‹å‹¢ï¼Œä»¥ä½å…¶å¤–。勢者,因利而制權也。 - -兵者,詭é“也。故能而示之ä¸èƒ½ï¼Œç”¨è€Œç¤ºä¹‹ä¸ç”¨ï¼Œè¿‘而示之é ï¼Œé è€Œç¤ºä¹‹è¿‘。利而誘之,亂而å–之,實而備之,強而é¿ä¹‹ï¼Œæ€’而撓之,å‘而驕之,佚而勞之,親而離之,攻其無備,出其ä¸æ„。此兵家之å‹ï¼Œä¸å¯å…ˆå‚³ä¹Ÿã€‚ - -夫未戰而廟算å‹è€…,得算多也;未戰而廟算ä¸å‹è€…,得算少也。多算å‹ï¼Œå°‘ç®—ä¸å‹ï¼Œè€Œæ³ç„¡ç®—乎ï¼å¾ä»¥æ­¤è§€ä¹‹ï¼Œå‹è² è¦‹çŸ£ã€‚ - -作戰第二 - -å­«å­æ›°ï¼šå‡¡ç”¨å…µä¹‹æ³•ï¼Œé¦³è»Šåƒé§Ÿï¼Œé©è»Šåƒä¹˜ï¼Œå¸¶ç”²åè¬ï¼Œåƒé‡Œé¥‹ç³§ã€‚則內外之費,賓客之用,膠漆之æ,車甲之奉,日費åƒé‡‘,然後åè¬ä¹‹å¸«èˆ‰çŸ£ã€‚ - -其用戰也,貴å‹ï¼Œä¹…則éˆå…µæŒ«éŠ³ï¼Œæ”»åŸŽå‰‡åŠ›å±ˆï¼Œä¹…暴師則國用ä¸è¶³ã€‚夫éˆå…µæŒ«éŠ³ï¼Œå±ˆåŠ›æ®«è²¨ï¼Œå‰‡è«¸ä¾¯ä¹˜å…¶å¼Šè€Œèµ·ï¼Œé›–有智者,ä¸èƒ½å–„其後矣。故兵èžæ‹™é€Ÿï¼Œæœªç¹å·§ä¹‹ä¹…也。夫兵久而國利者,未之有也。故ä¸ç›¡çŸ¥ç”¨å…µä¹‹å®³è€…,則ä¸èƒ½ç›¡çŸ¥ç”¨å…µä¹‹åˆ©ä¹Ÿã€‚ - -善用兵者,役ä¸å†ç±ï¼Œç³§ä¸ä¸‰è¼‰ï¼Œå–用於國,因糧於敵,故è»é£Ÿå¯è¶³ä¹Ÿã€‚國之貧於師者é è¼¸ï¼Œé è¼¸å‰‡ç™¾å§“貧;近於師者貴賣,貴賣則百姓竭,財竭則急於丘役。力屈財殫,中原內虛於家,百姓之費,å去其七;公家之費,破è»ç½·é¦¬ï¼Œç”²èƒ„矢弩,戟楯矛櫓,丘牛大車,å去其六。 - -故智將務食於敵,食敵一é¾ï¼Œç•¶å¾äºŒåé¾ï¼›è稈一石,當å¾äºŒå石。故殺敵者,怒也;å–敵之利者,貨也。故車戰,得車å乘以上,賞其先得者,而更其旌旗。車雜而乘之,å’善而養之,是謂å‹æ•µè€Œç›Šå¼·ã€‚ - -故兵貴å‹ï¼Œä¸è²´ä¹…。故知兵之將,民之å¸å‘½ã€‚國家安å±ä¹‹ä¸»ä¹Ÿã€‚ - -謀攻第三 - -å­«å­æ›°ï¼šå‡¡ç”¨å…µä¹‹æ³•ï¼Œå…¨åœ‹ç‚ºä¸Šï¼Œç ´åœ‹æ¬¡ä¹‹ï¼›å…¨è»ç‚ºä¸Šï¼Œç ´è»æ¬¡ä¹‹ï¼›å…¨æ—…為上,破旅次之;全å’為上,破å’次之;全ä¼ç‚ºä¸Šï¼Œç ´ä¼æ¬¡ä¹‹ã€‚是故百戰百å‹ï¼Œéžå–„之善者也;ä¸æˆ°è€Œå±ˆäººä¹‹å…µï¼Œå–„之善者也。 - -故上兵ä¼è¬€ï¼Œå…¶æ¬¡ä¼äº¤ï¼Œå…¶æ¬¡ä¼å…µï¼Œå…¶ä¸‹æ”»åŸŽã€‚攻城之法,為ä¸å¾—已。修櫓轒轀,具器械,三月而後æˆï¼›è·é—‰ï¼Œåˆä¸‰æœˆè€Œå¾Œå·²ã€‚å°‡ä¸å‹å…¶å¿¿ï¼Œè€ŒèŸ»é™„之,殺士三分之一,而城ä¸æ‹”者,此攻之ç½ä¹Ÿã€‚ - -故善用兵者,屈人之兵,而éžæˆ°ä¹Ÿï¼Œæ‹”人之城而éžæ”»ä¹Ÿï¼Œæ¯€äººä¹‹åœ‹è€Œéžä¹…也,必以全爭於天下,故兵ä¸é “而利å¯å…¨ï¼Œæ­¤è¬€æ”»ä¹‹æ³•ä¹Ÿã€‚ - -故用兵之法,å則åœä¹‹ï¼Œäº”則攻之,å€å‰‡åˆ†ä¹‹ï¼Œæ•µå‰‡èƒ½æˆ°ä¹‹ï¼Œå°‘則能逃之,ä¸è‹¥å‰‡èƒ½é¿ä¹‹ã€‚æ•…å°æ•µä¹‹å …,大敵之擒也。 - -夫將者,國之輔也。輔周則國必強,輔隙則國必弱。故å›ä¹‹æ‰€ä»¥æ‚£æ–¼è»è€…三:ä¸çŸ¥è»ä¹‹ä¸å¯ä»¥é€²è€Œè¬‚之進,ä¸çŸ¥è»ä¹‹ä¸å¯ä»¥é€€è€Œè¬‚之退,是謂縻è»ï¼›ä¸çŸ¥ä¸‰è»ä¹‹äº‹ï¼Œè€ŒåŒä¸‰è»ä¹‹æ”¿ï¼Œå‰‡è»å£«æƒ‘矣;ä¸çŸ¥ä¸‰è»ä¹‹æ¬Šï¼Œè€ŒåŒä¸‰è»ä¹‹ä»»ï¼Œå‰‡è»å£«ç–‘矣。三è»æ—¢æƒ‘且疑,則諸侯之難至矣。是謂亂è»å¼•å‹ã€‚ - -故知å‹æœ‰äº”:知å¯ä»¥æˆ°èˆ‡ä¸å¯ä»¥æˆ°è€…,å‹ã€‚識眾寡之用者,å‹ã€‚上下åŒæ¬²è€…,å‹ã€‚以虞待ä¸è™žè€…,å‹ã€‚將能而å›ä¸å¾¡è€…,å‹ã€‚此五者,知å‹ä¹‹é“也。 - -故曰:知己知彼,百戰ä¸è²½ï¼›ä¸çŸ¥å½¼è€ŒçŸ¥å·±ï¼Œä¸€å‹ä¸€è² ï¼›ä¸çŸ¥å½¼ä¸çŸ¥å·±ï¼Œæ¯æˆ°å¿…敗。 - -è»å½¢ç¬¬å›› - -å­«å­æ›°ï¼šæ˜”之善戰者,先為ä¸å¯å‹ï¼Œä»¥å¾…敵之å¯å‹ã€‚ä¸å¯å‹åœ¨å·±ï¼Œå¯å‹åœ¨æ•µã€‚故善戰者,能為ä¸å¯å‹ï¼Œä¸èƒ½ä½¿æ•µå¿…å¯å‹ã€‚故曰:å‹å¯çŸ¥ï¼Œè€Œä¸å¯ç‚ºã€‚ - -ä¸å¯å‹è€…,守也;å¯å‹è€…,攻也。守則ä¸è¶³ï¼Œæ”»å‰‡æœ‰é¤˜ã€‚善守者,è—æ–¼ä¹åœ°ä¹‹ä¸‹ï¼Œå–„攻者,動於ä¹å¤©ä¹‹ä¸Šï¼Œæ•…能自ä¿è€Œå…¨å‹ä¹Ÿã€‚ - -見å‹ä¸éŽçœ¾äººä¹‹æ‰€çŸ¥ï¼Œéžå–„之善者也;戰å‹è€Œå¤©ä¸‹æ›°å–„,éžå–„之善者也。故舉秋毫ä¸ç‚ºå¤šåŠ›ï¼Œè¦‹æ—¥æœˆä¸ç‚ºæ˜Žç›®ï¼Œèžé›·éœ†ä¸ç‚ºè°è€³ã€‚å¤ä¹‹å–„戰者,å‹æ–¼æ˜“å‹è€…也。故善戰者之å‹ä¹Ÿï¼Œç„¡æ™ºå,無勇功,故其戰å‹ä¸å¿’。ä¸å¿’者,其所措必å‹ï¼Œå‹å·²æ•—者也。故善戰者,先立於ä¸æ•—之地,而ä¸å¤±æ•µä¹‹æ•—也。是故å‹å…µå…ˆå‹ï¼Œè€Œå¾Œæ±‚戰,敗兵先戰而後求å‹ã€‚善用兵者,修é“而ä¿æ³•ï¼Œæ•…能為å‹æ•—之政。 - -兵法:一曰度,二曰é‡ï¼Œä¸‰æ›°æ•¸ï¼Œå››æ›°ç¨±ï¼Œäº”æ›°å‹ã€‚地生度,度生é‡ï¼Œé‡ç”Ÿæ•¸ï¼Œæ•¸ç”Ÿç¨±ï¼Œç¨±ç”Ÿå‹ã€‚æ•…å‹å…µè‹¥ä»¥éŽ°ç¨±éŠ–,敗兵若以銖稱鎰。å‹è€…之戰,若決ç©æ°´æ–¼åƒä»žä¹‹è°¿è€…,形也。 - -兵勢第五 - -å­«å­æ›°ï¼šå‡¡æ²»çœ¾å¦‚治寡,分數是也;鬥眾如鬥寡,形å是也;三è»ä¹‹çœ¾ï¼Œå¯ä½¿å¿…å—敵而無敗者,奇正是也;兵之所加,如以碫投åµè€…,虛實是也。 - -凡戰者,以正åˆï¼Œä»¥å¥‡å‹ã€‚故善出奇者,無窮如天地,ä¸ç«­å¦‚江海。終而複始,日月是也。死而復生,四時是也。è²ä¸éŽäº”,五è²ä¹‹è®Šï¼Œä¸å¯å‹è½ä¹Ÿï¼›è‰²ä¸éŽäº”,五色之變,ä¸å¯å‹è§€ä¹Ÿï¼›å‘³ä¸éŽäº”,五味之變,ä¸å¯å‹å˜—也;戰勢,ä¸éŽå¥‡æ­£ï¼Œå¥‡æ­£ä¹‹è®Šï¼Œä¸å¯å‹çª®ä¹Ÿã€‚奇正相生,如循環之無端,熟能窮之哉? - -激水之疾,至於漂石者,勢也;鷙鳥之疾,至於毀折者,節也。是故善戰者,其勢險,其節短。勢如張弩,節如發機。 - -紛紛紜紜,鬥亂而ä¸å¯äº‚也;渾渾沌沌,形圓而ä¸å¯æ•—也。亂生於治,怯生於勇,弱生於強。治亂,數也;勇怯,勢也;強弱,形也。故善動敵者,形之,敵必從之;予之,敵必å–之。以利動之,以å’待之。 - -故善戰者,求之於勢,ä¸è²¬æ–¼äººï¼›æ•…能擇人而任勢。任勢者,其戰人也,如轉木石。木石之性,安則éœï¼Œå±å‰‡å‹•ï¼Œæ–¹å‰‡æ­¢ï¼Œåœ“則行。故善戰人之勢,如轉圓石於åƒä»žä¹‹å±±è€…,勢也。 - -虛實第六 - -å­«å­æ›°ï¼šå‡¡å…ˆè™•æˆ°åœ°è€Œå¾…敵者佚,後處戰地而趨戰者勞。 - -故善戰者,致人而ä¸è‡´æ–¼äººã€‚能使敵人自至者,利之也;能使敵人ä¸å¾—至者,害之也。故敵佚能勞之,飽能饑之,安能動之。出其所必趨,趨其所ä¸æ„。行åƒé‡Œè€Œä¸å‹žè€…,行於無人之地也;攻而必å–者,攻其所ä¸å®ˆä¹Ÿã€‚守而必固者,守其所ä¸æ”»ä¹Ÿã€‚ - -故善攻者,敵ä¸çŸ¥å…¶æ‰€å®ˆï¼›å–„守者,敵ä¸çŸ¥å…¶æ‰€æ”»ã€‚微乎微乎,至於無形;神乎神乎,至於無è²ï¼Œæ•…能為敵之å¸å‘½ã€‚進而ä¸å¯ç¦¦è€…,沖其虛也;退而ä¸å¯è¿½è€…,速而ä¸å¯åŠä¹Ÿã€‚故我欲戰,敵雖高壘深æºï¼Œä¸å¾—ä¸èˆ‡æˆ‘戰者,攻其所必救也;我ä¸æ¬²æˆ°ï¼Œé›–畫地而守之,敵ä¸å¾—與我戰者,乖其所之也。故形人而我無形,則我專而敵分。我專為一,敵分為å,是以å攻其一也。則我眾敵寡,能以眾擊寡者,則å¾ä¹‹æ‰€èˆ‡æˆ°è€…約矣。å¾æ‰€èˆ‡æˆ°ä¹‹åœ°ä¸å¯çŸ¥ï¼Œä¸å¯çŸ¥å‰‡æ•µæ‰€å‚™è€…多,敵所備者多,則å¾æ‰€èˆ‡æˆ°è€…寡矣。故備å‰å‰‡å¾Œå¯¡ï¼Œå‚™å¾Œå‰‡å‰å¯¡ï¼Œå‚™å·¦å‰‡å³å¯¡ï¼Œå‚™å³å‰‡å·¦å¯¡ï¼Œç„¡æ‰€ä¸å‚™ï¼Œå‰‡ç„¡æ‰€ä¸å¯¡ã€‚寡者,備人者也;眾者,使人備己者也。故知戰之地,知戰之日,則å¯åƒé‡Œè€Œæœƒæˆ°ï¼›ä¸çŸ¥æˆ°ä¹‹åœ°ï¼Œä¸çŸ¥æˆ°æ—¥ï¼Œå‰‡å·¦ä¸èƒ½æ•‘å³ï¼Œå³ä¸èƒ½æ•‘左,å‰ä¸èƒ½æ•‘後,後ä¸èƒ½æ•‘å‰ï¼Œè€Œæ³é è€…數åè£ï¼Œè¿‘者數è£ä¹Žï¼ä»¥å¾åº¦ä¹‹ï¼Œè¶Šäººä¹‹å…µé›–多,亦奚益於å‹å“‰ï¼æ•…曰:å‹å¯ç‚ºä¹Ÿã€‚敵雖眾,å¯ä½¿ç„¡é¬¥ã€‚故策之而知得失之計,候之而知動éœä¹‹ç†ï¼Œå½¢ä¹‹è€ŒçŸ¥æ­»ç”Ÿä¹‹åœ°ï¼Œè§’之而知有餘ä¸è¶³ä¹‹è™•ã€‚故形兵之極,至於無形。無形則深間ä¸èƒ½çªºï¼Œæ™ºè€…ä¸èƒ½è¬€ã€‚因形而措å‹æ–¼çœ¾ï¼Œçœ¾ä¸èƒ½çŸ¥ã€‚人皆知我所以å‹ä¹‹å½¢ï¼Œè€ŒèŽ«çŸ¥å¾æ‰€ä»¥åˆ¶å‹ä¹‹å½¢ã€‚故其戰å‹ä¸å¾©ï¼Œè€Œæ‡‰å½¢æ–¼ç„¡çª®ã€‚夫兵形象水,水之行é¿é«˜è€Œè¶¨ä¸‹ï¼Œå…µä¹‹å½¢é¿å¯¦è€Œæ“Šè™›ï¼›æ°´å› åœ°è€Œåˆ¶æµï¼Œå…µå› æ•µè€Œåˆ¶å‹ã€‚故兵無常勢,水無常形。能因敵變化而å–å‹è€…,謂之神。故五行無常å‹ï¼Œå››æ™‚無常ä½ï¼Œæ—¥æœ‰çŸ­é•·ï¼Œæœˆæœ‰æ­»ç”Ÿã€‚ - -è»çˆ­ç¬¬ä¸ƒ - -å­«å­æ›°ï¼š 凡用兵之法,將å—命於å›ï¼Œåˆè»èšçœ¾ï¼Œäº¤å’Œè€Œèˆï¼ŒèŽ«é›£æ–¼è»çˆ­ã€‚è»çˆ­ä¹‹é›£è€…,以迂為直,以患為利。故迂其途,而誘之以利,後人發,先人至,此知迂直之計者也。è»çˆ­ç‚ºåˆ©ï¼Œè»çˆ­ç‚ºå±ã€‚舉è»è€Œçˆ­åˆ©å‰‡ä¸åŠï¼Œå§”è»è€Œçˆ­åˆ©å‰‡è¼œé‡æ。是故æ²ç”²è€Œè¶¨ï¼Œæ—¥å¤œä¸è™•ï¼Œå€é“兼行,百裡而爭利,則擒三將è»ï¼Œå‹è€…先,疲者後,其法å一而至;五åè£è€Œçˆ­åˆ©ï¼Œå‰‡è¹¶ä¸Šå°‡è»ï¼Œå…¶æ³•åŠè‡³ï¼›ä¸‰åè£è€Œçˆ­åˆ©ï¼Œå‰‡ä¸‰åˆ†ä¹‹äºŒè‡³ã€‚是故è»ç„¡è¼œé‡å‰‡äº¡ï¼Œç„¡ç³§é£Ÿå‰‡äº¡ï¼Œç„¡å§”ç©å‰‡äº¡ã€‚æ•…ä¸çŸ¥è«¸ä¾¯ä¹‹è¬€è€…,ä¸èƒ½è±«äº¤ï¼›ä¸çŸ¥å±±æž—ã€éšªé˜»ã€æ²®æ¾¤ä¹‹å½¢è€…,ä¸èƒ½è¡Œè»ï¼›ä¸ç”¨é„‰å°Žè€…,ä¸èƒ½å¾—地利。故兵以è©ç«‹ï¼Œä»¥åˆ©å‹•ï¼Œä»¥åˆ†å’Œç‚ºè®Šè€…也。故其疾如風,其å¾å¦‚林,侵掠如ç«ï¼Œä¸å‹•å¦‚山,難知如陰,動如雷震。掠鄉分眾,廓地分利,懸權而動。先知迂直之計者å‹ï¼Œæ­¤è»çˆ­ä¹‹æ³•ä¹Ÿã€‚《è»æ”¿ã€‹æ›°ï¼šâ€œè¨€ä¸ç›¸èžï¼Œæ•…為之金鼓;視ä¸ç›¸è¦‹ï¼Œæ•…為之旌旗。â€å¤«é‡‘鼓旌旗者,所以一民之耳目也。民既專一,則勇者ä¸å¾—ç¨é€²ï¼Œæ€¯è€…ä¸å¾—ç¨é€€ï¼Œæ­¤ç”¨çœ¾ä¹‹æ³•ä¹Ÿã€‚故夜戰多金鼓,æ™æˆ°å¤šæ—Œæ——,所以變人之耳目也。三è»å¯å¥ªæ°£ï¼Œå°‡è»å¯å¥ªå¿ƒã€‚是故æœæ°£éŠ³ï¼Œæ™æ°£æƒ°ï¼Œæš®æ°£æ­¸ã€‚善用兵者,é¿å…¶éŠ³æ°£ï¼Œæ“Šå…¶æƒ°æ­¸ï¼Œæ­¤æ²»æ°£è€…也。以治待亂,以éœå¾…嘩,此治心者也。以近待é ï¼Œä»¥ä½šå¾…勞,以飽待饑,此治力者也。無邀正正之旗,無擊堂堂之陳,此治變者也。故用兵之法,高陵勿å‘,背丘勿逆,佯北勿從,銳å’勿攻,餌兵勿食,歸師勿é,åœå¸«éºé—•ï¼Œçª®å¯‡å‹¿è¿«ï¼Œæ­¤ç”¨å…µä¹‹æ³•ä¹Ÿã€‚ - -ä¹è®Šç¬¬å…« - -å­«å­æ›°ï¼š 凡用兵之法,將å—命於å›ï¼Œåˆè»èšåˆã€‚泛地無èˆï¼Œè¡¢åœ°åˆäº¤ï¼Œçµ•åœ°ç„¡ç•™ï¼Œåœåœ°å‰‡è¬€ï¼Œæ­»åœ°å‰‡æˆ°ï¼Œé€”有所ä¸ç”±ï¼Œè»æœ‰æ‰€ä¸æ“Šï¼ŒåŸŽæœ‰æ‰€ä¸æ”»ï¼Œåœ°æœ‰æ‰€ä¸çˆ­ï¼Œå›å‘½æœ‰æ‰€ä¸å—。故將通於ä¹è®Šä¹‹åˆ©è€…,知用兵矣;將ä¸é€šä¹è®Šä¹‹åˆ©ï¼Œé›–知地形,ä¸èƒ½å¾—地之利矣;治兵ä¸çŸ¥ä¹è®Šä¹‹è¡“,雖知五利,ä¸èƒ½å¾—人之用矣。是故智者之慮,必雜於利害,雜於利而務å¯ä¿¡ä¹Ÿï¼Œé›œæ–¼å®³è€Œæ‚£å¯è§£ä¹Ÿã€‚是故屈諸侯者以害,役諸侯者以業,趨諸侯者以利。故用兵之法,無æƒå…¶ä¸ä¾†ï¼Œæƒå¾æœ‰ä»¥å¾…之;無æƒå…¶ä¸æ”»ï¼Œæƒå¾æœ‰æ‰€ä¸å¯æ”»ä¹Ÿã€‚故將有五å±ï¼Œå¿…æ­»å¯æ®ºï¼Œå¿…生å¯è™œï¼Œå¿¿é€Ÿå¯ä¾®ï¼Œå»‰æ½”å¯è¾±ï¼Œæ„›æ°‘å¯ç…©ã€‚凡此五者,將之éŽä¹Ÿï¼Œç”¨å…µä¹‹ç½ä¹Ÿã€‚覆è»æ®ºå°‡ï¼Œå¿…以五å±ï¼Œä¸å¯ä¸å¯Ÿä¹Ÿã€‚ - -è¡Œè»ç¬¬ä¹ - -å­«å­æ›°ï¼šå‡¡è™•è»ç›¸æ•µï¼Œçµ•å±±ä¾ç©€ï¼Œè¦–生處高,戰隆無登,此處山之è»ä¹Ÿã€‚絕水必é æ°´ï¼Œå®¢çµ•æ°´è€Œä¾†ï¼Œå‹¿è¿Žä¹‹æ–¼æ°´å…§ï¼Œä»¤åŠæ¸¡è€Œæ“Šä¹‹åˆ©ï¼Œæ¬²æˆ°è€…,無附於水而迎客,視生處高,無迎水æµï¼Œæ­¤è™•æ°´ä¸Šä¹‹è»ä¹Ÿã€‚絕斥澤,唯亟去無留,若交è»æ–¼æ–¥æ¾¤ä¹‹ä¸­ï¼Œå¿…ä¾æ°´è‰è€ŒèƒŒçœ¾æ¨¹ï¼Œæ­¤è™•æ–¥æ¾¤ä¹‹è»ä¹Ÿã€‚平陸處易,å³èƒŒé«˜ï¼Œå‰æ­»å¾Œç”Ÿï¼Œæ­¤è™•å¹³é™¸ä¹‹è»ä¹Ÿã€‚凡此四è»ä¹‹åˆ©ï¼Œé»ƒå¸ä¹‹æ‰€ä»¥å‹å››å¸ä¹Ÿã€‚凡è»å¥½é«˜è€Œæƒ¡ä¸‹ï¼Œè²´é™½è€Œè³¤é™°ï¼Œé¤Šç”Ÿè€Œè™•å¯¦ï¼Œè»ç„¡ç™¾ç–¾ï¼Œæ˜¯è¬‚å¿…å‹ã€‚丘陵堤防,必處其陽而å³èƒŒä¹‹ï¼Œæ­¤å…µä¹‹åˆ©ï¼Œåœ°ä¹‹åŠ©ä¹Ÿã€‚上雨水æµè‡³ï¼Œæ¬²æ¶‰è€…,待其定也。凡地有絕澗ã€å¤©äº•ã€å¤©ç‰¢ã€å¤©ç¾…ã€å¤©é™·ã€å¤©éš™ï¼Œå¿…亟去之,勿近也。å¾é ä¹‹ï¼Œæ•µè¿‘之;å¾è¿Žä¹‹ï¼Œæ•µèƒŒä¹‹ã€‚è»æ—有險阻ã€æ½¢äº•ã€è’¹è‘­ã€å°æž—ã€è˜™è–ˆè€…,必謹覆索之,此ä¼å§¦ä¹‹æ‰€è™•ä¹Ÿã€‚敵近而éœè€…,æƒå…¶éšªä¹Ÿï¼›é è€ŒæŒ‘戰者,欲人之進也;其所居易者,利也;眾樹動者,來也;眾è‰å¤šéšœè€…,疑也;鳥起者,ä¼ä¹Ÿï¼›ç¸é§­è€…,覆也;塵高而銳者,車來也;å‘而廣者,徒來也;散而æ¢é”者,樵採也;少而往來者,營è»ä¹Ÿï¼›è¾­å‘而備者,進也;辭強而進驅者,退也;輕車先出居其å´è€…,陳也;無約而請和者,謀也;奔走而陳兵者,期也;åŠé€²åŠé€€è€…,誘也;æ–而立者,饑也;汲而先飲者,渴也;見利而ä¸é€²è€…,勞也;鳥集者,虛也;夜呼者,æ也;è»æ“¾è€…,將ä¸é‡ä¹Ÿï¼›æ—Œæ——動者,亂也;å怒者,倦也;殺馬肉食者,è»ç„¡ç³§ä¹Ÿï¼›æ‡¸ç”€ä¸è¿”å…¶èˆè€…,窮寇也;諄諄翕翕,å¾èˆ‡äººè¨€è€…,失眾也;數賞者,窘也;數罰者,困也;先暴而後ç•å…¶çœ¾è€…,ä¸ç²¾ä¹‹è‡³ä¹Ÿï¼›ä¾†å§”è¬è€…,欲休æ¯ä¹Ÿã€‚兵怒而相迎,久而ä¸åˆï¼Œåˆä¸ç›¸åŽ»ï¼Œå¿…謹察之。兵éžè²´ç›Šå¤šä¹Ÿï¼ŒæƒŸç„¡æ­¦é€²ï¼Œè¶³ä»¥ä¸¦åŠ›æ–™æ•µå–人而已。夫惟無慮而易敵者,必擒於人。å’未親而罰之,則ä¸æœï¼Œä¸æœå‰‡é›£ç”¨ã€‚å’已親附而罰ä¸è¡Œï¼Œå‰‡ä¸å¯ç”¨ã€‚æ•…åˆä¹‹ä»¥æ–‡ï¼Œé½Šä¹‹ä»¥æ­¦ï¼Œæ˜¯è¬‚å¿…å–。令素行以教其民,則民æœï¼›ä»¤ç´ ä¸è¡Œä»¥æ•™å…¶æ°‘,則民ä¸æœã€‚令素行者,與眾相得也。 - -地形第å - -å­«å­æ›°ï¼šåœ°å½¢æœ‰é€šè€…ã€æœ‰æŽ›è€…ã€æœ‰æ”¯è€…ã€æœ‰éš˜è€…ã€æœ‰éšªè€…ã€æœ‰é è€…。我å¯ä»¥å¾€ï¼Œå½¼å¯ä»¥ä¾†ï¼Œæ›°é€šã€‚通形者,先居高陽,利糧é“,以戰則利。å¯ä»¥å¾€ï¼Œé›£ä»¥è¿”,曰掛。掛形者,敵無備,出而å‹ä¹‹ï¼Œæ•µè‹¥æœ‰å‚™ï¼Œå‡ºè€Œä¸å‹ï¼Œé›£ä»¥è¿”,ä¸åˆ©ã€‚我出而ä¸åˆ©ï¼Œå½¼å‡ºè€Œä¸åˆ©ï¼Œæ›°æ”¯ã€‚支形者,敵雖利我,我無出也,引而去之,令敵åŠå‡ºè€Œæ“Šä¹‹åˆ©ã€‚隘形者,我先居之,必盈之以待敵。若敵先居之,盈而勿從,ä¸ç›ˆè€Œå¾žä¹‹ã€‚險形者,我先居之,必居高陽以待敵;若敵先居之,引而去之,勿從也。é å½¢è€…,勢å‡é›£ä»¥æŒ‘戰,戰而ä¸åˆ©ã€‚凡此六者,地之é“也,將之至任,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚凡兵有走者ã€æœ‰é¦³è€…ã€æœ‰é™·è€…ã€æœ‰å´©è€…ã€æœ‰äº‚者ã€æœ‰åŒ—者。凡此六者,éžå¤©åœ°ä¹‹ç½ï¼Œå°‡ä¹‹éŽä¹Ÿã€‚夫勢å‡ï¼Œä»¥ä¸€æ“Šå,曰走;å’å¼·å弱,曰馳;åå¼·å’弱,曰陷;大å怒而ä¸æœï¼Œé‡æ•µæ‡Ÿè€Œè‡ªæˆ°ï¼Œå°‡ä¸çŸ¥å…¶èƒ½ï¼Œæ›°å´©ï¼›å°‡å¼±ä¸åš´ï¼Œæ•™é“ä¸æ˜Žï¼Œåå’無常,陳兵縱橫,曰亂;將ä¸èƒ½æ–™æ•µï¼Œä»¥å°‘åˆçœ¾ï¼Œä»¥å¼±æ“Šå¼·ï¼Œå…µç„¡é¸é‹’,曰北。凡此六者,敗之é“也,將之至任,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚夫地形者,兵之助也。料敵制å‹ï¼Œè¨ˆéšªéš˜é è¿‘,上將之é“也。知此而用戰者必å‹ï¼Œä¸çŸ¥æ­¤è€Œç”¨æˆ°è€…必敗。故戰é“å¿…å‹ï¼Œä¸»æ›°ç„¡æˆ°ï¼Œå¿…戰å¯ä¹Ÿï¼›æˆ°é“ä¸å‹ï¼Œä¸»æ›°å¿…戰,無戰å¯ä¹Ÿã€‚故進ä¸æ±‚å,退ä¸é¿ç½ªï¼Œå”¯æ°‘是ä¿ï¼Œè€Œåˆ©æ–¼ä¸»ï¼Œåœ‹ä¹‹å¯¶ä¹Ÿã€‚視å’如嬰兒,故å¯ä»¥èˆ‡ä¹‹èµ´æ·±æºªï¼›è¦–å’如愛å­ï¼Œæ•…å¯èˆ‡ä¹‹ä¿±æ­»ã€‚厚而ä¸èƒ½ä½¿ï¼Œæ„›è€Œä¸èƒ½ä»¤ï¼Œäº‚而ä¸èƒ½æ²»ï¼Œè­¬è‹¥é©•å­ï¼Œä¸å¯ç”¨ä¹Ÿã€‚知å¾å’之å¯ä»¥æ“Šï¼Œè€Œä¸çŸ¥æ•µä¹‹ä¸å¯æ“Šï¼Œå‹ä¹‹åŠä¹Ÿï¼›çŸ¥æ•µä¹‹å¯æ“Šï¼Œè€Œä¸çŸ¥å¾å’之ä¸å¯ä»¥æ“Šï¼Œå‹ä¹‹åŠä¹Ÿï¼›çŸ¥æ•µä¹‹å¯æ“Šï¼ŒçŸ¥å¾å’之å¯ä»¥æ“Šï¼Œè€Œä¸çŸ¥åœ°å½¢ä¹‹ä¸å¯ä»¥æˆ°ï¼Œå‹ä¹‹åŠä¹Ÿã€‚故知兵者,動而ä¸è¿·ï¼Œèˆ‰è€Œä¸çª®ã€‚故曰:知彼知己,å‹ä¹ƒä¸æ®†ï¼›çŸ¥å¤©çŸ¥åœ°ï¼Œå‹ä¹ƒå¯å…¨ã€‚ - -ä¹åœ°ç¬¬å一 - -å­«å­æ›°ï¼šç”¨å…µä¹‹æ³•ï¼Œæœ‰æ•£åœ°ï¼Œæœ‰è¼•åœ°ï¼Œæœ‰çˆ­åœ°ï¼Œæœ‰äº¤åœ°ï¼Œæœ‰è¡¢åœ°ï¼Œæœ‰é‡åœ°ï¼Œæœ‰æ³›åœ°ï¼Œæœ‰åœåœ°ï¼Œæœ‰æ­»åœ°ã€‚諸侯自戰其地者,為散地;入人之地ä¸æ·±è€…,為輕地;我得亦利,彼得亦利者,為爭地;我å¯ä»¥å¾€ï¼Œå½¼å¯ä»¥ä¾†è€…,為交地;諸侯之地三屬,先至而得天下眾者,為衢地;入人之地深,背城邑多者,為é‡åœ°ï¼›å±±æž—ã€éšªé˜»ã€æ²®æ¾¤ï¼Œå‡¡é›£è¡Œä¹‹é“者,為泛地;所由入者隘,所從歸者迂,彼寡å¯ä»¥æ“Šå¾ä¹‹çœ¾è€…,為åœåœ°ï¼›ç–¾æˆ°å‰‡å­˜ï¼Œä¸ç–¾æˆ°å‰‡äº¡è€…,為死地。是故散地則無戰,輕地則無止,爭地則無攻,交地則無絕,衢地則åˆäº¤ï¼Œé‡åœ°å‰‡æŽ ï¼Œæ³›åœ°å‰‡è¡Œï¼Œåœåœ°å‰‡è¬€ï¼Œæ­»åœ°å‰‡æˆ°ã€‚å¤ä¹‹å–„用兵者,能使敵人å‰å¾Œä¸ç›¸åŠï¼Œçœ¾å¯¡ä¸ç›¸æƒï¼Œè²´è³¤ä¸ç›¸æ•‘,上下ä¸ç›¸æ”¶ï¼Œå’離而ä¸é›†ï¼Œå…µåˆè€Œä¸é½Šã€‚åˆæ–¼åˆ©è€Œå‹•ï¼Œä¸åˆæ–¼åˆ©è€Œæ­¢ã€‚æ•¢å•æ•µçœ¾è€Œæ•´å°‡ä¾†ï¼Œå¾…之若何曰:先奪其所愛則è½çŸ£ã€‚兵之情主速,乘人之ä¸åŠã€‚ç”±ä¸è™žä¹‹é“,攻其所ä¸æˆ’也。凡為客之é“,深入則專。主人ä¸å…‹ï¼ŒæŽ æ–¼é¥’野,三è»è¶³é£Ÿã€‚謹養而勿勞,並氣ç©åŠ›ï¼Œé‹å…µè¨ˆè¬€ï¼Œç‚ºä¸å¯æ¸¬ã€‚投之無所往,死且ä¸åŒ—。死焉ä¸å¾—,士人盡力。兵士甚陷則ä¸æ‡¼ï¼Œç„¡æ‰€å¾€å‰‡å›ºï¼Œæ·±å…¥å‰‡æ‹˜ï¼Œä¸å¾—已則鬥。是故其兵ä¸ä¿®è€Œæˆ’,ä¸æ±‚而得,ä¸ç´„而親,ä¸ä»¤è€Œä¿¡ï¼Œç¦ç¥¥åŽ»ç–‘,至死無所之。å¾å£«ç„¡é¤˜è²¡ï¼Œéžæƒ¡è²¨ä¹Ÿï¼›ç„¡é¤˜å‘½ï¼Œéžæƒ¡å£½ä¹Ÿã€‚令發之日,士å’å者涕沾襟,åƒè‡¥è€…涕交頤,投之無所往,諸ã€åŠŒä¹‹å‹‡ä¹Ÿã€‚故善用兵者,譬如率然。率然者,常山之蛇也。擊其首則尾至,擊其尾則首至,擊其中則首尾俱至。敢å•å…µå¯ä½¿å¦‚率然乎?曰å¯ã€‚夫å³äººèˆ‡è¶Šäººç›¸æƒ¡ä¹Ÿï¼Œç•¶å…¶åŒèˆŸè€Œæ¿Ÿè€Œé‡é¢¨ï¼Œå…¶ç›¸æ•‘也如左å³æ‰‹ã€‚是故方馬埋輪,未足æƒä¹Ÿï¼›é½Šå‹‡å¦‚一,政之é“也;剛柔皆得,地之ç†ä¹Ÿã€‚故善用兵者,攜手若使一人,ä¸å¾—已也。將è»ä¹‹äº‹ï¼Œéœä»¥å¹½ï¼Œæ­£ä»¥æ²»ï¼Œèƒ½æ„šå£«å’之耳目,使之無知;易其事,é©å…¶è¬€ï¼Œä½¿äººç„¡è­˜ï¼›æ˜“其居,迂其途,使民ä¸å¾—慮。帥與之期,如登高而去其梯;帥與之深入諸侯之地,而發其機。若驅群羊,驅而往,驅而來,莫知所之。èšä¸‰è»ä¹‹çœ¾ï¼ŒæŠ•ä¹‹æ–¼éšªï¼Œæ­¤è¬‚å°‡è»ä¹‹äº‹ä¹Ÿã€‚ä¹åœ°ä¹‹è®Šï¼Œå±ˆä¼¸ä¹‹åŠ›ï¼Œäººæƒ…之ç†ï¼Œä¸å¯ä¸å¯Ÿä¹Ÿã€‚凡為客之é“,深則專,淺則散。去國越境而師者,絕地也;四徹者,衢地也;入深者,é‡åœ°ä¹Ÿï¼›å…¥æ·ºè€…,輕地也;背固å‰éš˜è€…,åœåœ°ä¹Ÿï¼›ç„¡æ‰€å¾€è€…,死地也。是故散地å¾å°‡ä¸€å…¶å¿—,輕地å¾å°‡ä½¿ä¹‹å±¬ï¼Œçˆ­åœ°å¾å°‡è¶¨å…¶å¾Œï¼Œäº¤åœ°å¾å°‡è¬¹å…¶å®ˆï¼Œäº¤åœ°å¾å°‡å›ºå…¶çµï¼Œè¡¢åœ°å¾å°‡è¬¹å…¶æƒï¼Œé‡åœ°å¾å°‡ç¹¼å…¶é£Ÿï¼Œæ³›åœ°å¾å°‡é€²å…¶é€”,åœåœ°å¾å°‡å¡žå…¶é—•ï¼Œæ­»åœ°å¾å°‡ç¤ºä¹‹ä»¥ä¸æ´»ã€‚故兵之情:åœå‰‡ç¦¦ï¼Œä¸å¾—已則鬥,éŽå‰‡å¾žã€‚是故ä¸çŸ¥è«¸ä¾¯ä¹‹è¬€è€…,ä¸èƒ½é äº¤ï¼›ä¸çŸ¥å±±æž—ã€éšªé˜»ã€æ²®æ¾¤ä¹‹å½¢è€…,ä¸èƒ½è¡Œè»ï¼›ä¸ç”¨é„‰å°Žï¼Œä¸èƒ½å¾—地利。四五者,一ä¸çŸ¥ï¼Œéžéœ¸çŽ‹ä¹‹å…µä¹Ÿã€‚夫霸王之兵,ä¼å¤§åœ‹ï¼Œå‰‡å…¶çœ¾ä¸å¾—èšï¼›å¨åŠ æ–¼æ•µï¼Œå‰‡å…¶äº¤ä¸å¾—åˆã€‚是故ä¸çˆ­å¤©ä¸‹ä¹‹äº¤ï¼Œä¸é¤Šå¤©ä¸‹ä¹‹æ¬Šï¼Œä¿¡å·±ä¹‹ç§ï¼Œå¨åŠ æ–¼æ•µï¼Œå‰‡å…¶åŸŽå¯æ‹”,其國å¯éš³ã€‚施無法之賞,懸無政之令。犯三è»ä¹‹çœ¾ï¼Œè‹¥ä½¿ä¸€äººã€‚犯之以事,勿告以言;犯之以害,勿告以利。投之亡地然後存,陷之死地然後生。夫眾陷於害,然後能為å‹æ•—。故為兵之事,在順詳敵之æ„,並敵一å‘,åƒé‡Œæ®ºå°‡ï¼Œæ˜¯è¬‚巧能æˆäº‹ã€‚是故政舉之日,夷關折符,無通其使,厲於廊廟之上,以誅其事。敵人開闔,必亟入之,先其所愛,微與之期,è¸å¢¨éš¨æ•µï¼Œä»¥æ±ºæˆ°äº‹ã€‚是故始如處女,敵人開戶;後如脫兔,敵ä¸åŠæ‹’。 - -ç«æ”»ç¬¬å二 - -å­«å­æ›°ï¼šå‡¡ç«æ”»æœ‰äº”:一曰ç«äººï¼ŒäºŒæ›°ç«ç©ï¼Œä¸‰æ›°ç«è¼œï¼Œå››æ›°ç«åº«ï¼Œäº”æ›°ç«éšŠã€‚è¡Œç«å¿…有因,因必素具。發ç«æœ‰æ™‚,起ç«æœ‰æ—¥ã€‚時者,天之燥也。日者,月在箕ã€å£ã€ç¿¼ã€è»«ä¹Ÿã€‚凡此四宿者,風起之日也。凡ç«æ”»ï¼Œå¿…因五ç«ä¹‹è®Šè€Œæ‡‰ä¹‹ï¼šç«ç™¼æ–¼å…§ï¼Œå‰‡æ—©æ‡‰ä¹‹æ–¼å¤–ï¼›ç«ç™¼è€Œå…¶å…µéœè€…,待而勿攻,極其ç«åŠ›ï¼Œå¯å¾žè€Œå¾žä¹‹ï¼Œä¸å¯å¾žå‰‡ä¸Šã€‚ç«å¯ç™¼æ–¼å¤–,無待於內,以時發之,ç«ç™¼ä¸Šé¢¨ï¼Œç„¡æ”»ä¸‹é¢¨ï¼Œæ™é¢¨ä¹…,夜風止。凡è»å¿…知五ç«ä¹‹è®Šï¼Œä»¥æ•¸å®ˆä¹‹ã€‚故以ç«ä½æ”»è€…明,以水ä½æ”»è€…強。水å¯ä»¥çµ•ï¼Œä¸å¯ä»¥å¥ªã€‚夫戰å‹æ”»å–而ä¸æƒ°å…¶åŠŸè€…凶,命曰“費留â€ã€‚故曰:明主慮之,良將惰之,éžåˆ©ä¸å‹•ï¼Œéžå¾—ä¸ç”¨ï¼Œéžå±ä¸æˆ°ã€‚主ä¸å¯ä»¥æ€’而興師,將ä¸å¯ä»¥æ…而攻戰。åˆæ–¼åˆ©è€Œå‹•ï¼Œä¸åˆæ–¼åˆ©è€Œä¸Šã€‚怒å¯ä»¥è¤‡å–œï¼Œæ…å¯ä»¥è¤‡èªªï¼Œäº¡åœ‹ä¸å¯ä»¥è¤‡å­˜ï¼Œæ­»è€…ä¸å¯ä»¥è¤‡ç”Ÿã€‚故明主慎之,良將警之。此安國全è»ä¹‹é“也。 - -用間第å三 - -å­«å­æ›°ï¼š 凡興師åè¬ï¼Œå‡ºå¾åƒé‡Œï¼Œç™¾å§“之費,公家之奉,日費åƒé‡‘,內外騷動,怠於é“路,ä¸å¾—æ“事者,七åè¬å®¶ã€‚相守數年,以爭一日之å‹ï¼Œè€Œæ„›çˆµç¥¿ç™¾é‡‘,ä¸çŸ¥æ•µä¹‹æƒ…者,ä¸ä»ä¹‹è‡³ä¹Ÿï¼Œéžæ°‘之將也,éžä¸»ä¹‹ä½ä¹Ÿï¼Œéžå‹ä¹‹ä¸»ä¹Ÿã€‚故明å›è³¢å°‡æ‰€ä»¥å‹•è€Œå‹äººï¼ŒæˆåŠŸå‡ºæ–¼çœ¾è€…,先知也。先知者,ä¸å¯å–於鬼神,ä¸å¯è±¡æ–¼äº‹ï¼Œä¸å¯é©—於度,必å–於人,知敵之情者也。故用間有五:有因間,有內間,有å間,有死間,有生間。五間俱起,莫知其é“,是謂神紀,人å›ä¹‹å¯¶ä¹Ÿã€‚鄉間者,因其鄉人而用之;內間者,因其官人而用之;å間者,因其敵間而用之;死間者,為誑事於外,令å¾èžçŸ¥ä¹‹è€Œå‚³æ–¼æ•µé–“也;生間者,å報也。故三è»ä¹‹äº‹ï¼ŒèŽ«è¦ªæ–¼é–“,賞莫厚於間,事莫密於間,éžè–è³¢ä¸èƒ½ç”¨é–“,éžä»ç¾©ä¸èƒ½ä½¿é–“,éžå¾®å¦™ä¸èƒ½å¾—間之實。微哉微哉ï¼ç„¡æ‰€ä¸ç”¨é–“也。間事未發而先èžè€…,間與所告者兼死。凡è»ä¹‹æ‰€æ¬²æ“Šï¼ŒåŸŽä¹‹æ‰€æ¬²æ”»ï¼Œäººä¹‹æ‰€æ¬²æ®ºï¼Œå¿…先知其守將ã€å·¦å³ã€è¬è€…ã€é–€è€…ã€èˆäººä¹‹å§“å,令å¾é–“必索知之。敵間之來間我者,因而利之,導而èˆä¹‹ï¼Œæ•…åé–“å¯å¾—而用也;因是而知之,故鄉間ã€å…§é–“å¯å¾—而使也;因是而知之,故死間為誑事,å¯ä½¿å‘Šæ•µï¼›å› æ˜¯è€ŒçŸ¥ä¹‹ï¼Œæ•…生間å¯ä½¿å¦‚期。五間之事,主必知之,知之必在於å間,故åé–“ä¸å¯ä¸åŽšä¹Ÿã€‚昔殷之興也,伊摯在å¤ï¼›å‘¨ä¹‹èˆˆä¹Ÿï¼Œå‘‚牙在殷。故明å›è³¢å°‡ï¼Œèƒ½ä»¥ä¸Šæ™ºç‚ºé–“者,必æˆå¤§åŠŸã€‚此兵之è¦ï¼Œä¸‰è»ä¹‹æ‰€æƒè€Œå‹•ä¹Ÿã€‚ diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt deleted file mode 100644 index c9ba04c4..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt +++ /dev/null @@ -1,175 +0,0 @@ -This file was derived from -http://www.ibrary.co.kr/index.php/book-list/short-stories/34-short-stories-korean/150-2008-04-20-13-22-32 --------- -[¼Ò°³] -ÀÜÀÎÇÑ ¿î¸íÀº ÀÌ·¸°Ô Àΰ£À» Á¶·ÕÇÏ°ï ÇÑ´Ù. ¿ì¸®°¡ Æò¼Ò ¸¶À½ ¼Ó Àú ±íÀº °÷¿¡ ¿òÄÑÁã°í ÀÖ´ø ÀÚÁ¸½É µûÀ§´Â ¾î´À ÇÑ ¼ø°£ ÀüÇô ¹«¿ëÁö¹°À̶õ °ÍÀÌ µå·¯³ª°í ¸¸´Ù. Çϱâ¾ß ÀÌ·¸°Ô »îÀÇ ÇÑ ¼ø°£, ´« ±ô¦ÇÒ »õ¿¡ ¿ì¸®¸¦ ÈÄ·Á °¥±â°í Áö³ª°¡´Â ±× Áø½ÇÀÌ ¹Ì·¡ÀÇ ¾î´À³¯¿¡´Â ¶Ç ³²±è¾øÀÌ ¿ì¸® ´« ¾Õ¿¡ ÆîÃÄÁúÁöµµ ¸ð¸¥´Ù. Á×À½À» ¾ÕµÐ »ç¶÷µé¿¡°Ô´Â ÀÚ½ÅÀÇ »î Àüü°¡ ÇÑ ¼ø°£¿¡ ´Ù½Ã º¸Àδٴ ±×·± ¾ê±âµµ ÀÖ´øµ¥... - -´Ù½Ã Àо´Ï ²ûÂïÇÑ »ý°¢µµ µç´Ù. ½Ä¹ÎÁö ½Ã´ëÀÇ ¾Ï¿ïÇÑ »î, ±× ²ö²öÇÑ ³¿»õ¸¦ ÇÇÇÒ ¼ö ¾ø´Ù. 21¼¼±â¸¦ »ç´Â ¿ì¸®µé¿¡°Õ ±×·± ³¿»õ´Â ¾Æ¿¹ Àο¬ÀÌ ¾ø´Â °Íó·³ ´À²¸Áú ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª °ú¿¬ ±×·²±î? ÀÌ·± ³¿»õ¸¦ ¸ð¸£°í Æò»ý »ç´Â »ç¶÷µµ ÀÖ°ÚÁö¸¸, ÀüÇô °ü·ÃÀÌ ¾ø´Â °ÍÀº ¾Æ´Ò °ÍÀÌ´Ù. ±×Àú ¿ì¿¬ÀÏ »ÓÀÌ´Ù. ¾Æ³»¸¦ ¹Ú´ëÇÏ´Â ±è ÷ÁöÀÇ ¸ð½À... ¿ä»õ °°À¸¸é °£ÀÌ ¹è ¹ÛÀ¸·Î Æ¢¾î³ª¿Â ³²ÀÚ°ÚÁö¸¸, ±×·¡µµ ±× ¾ÖÁ¤Àº ´õ ÁøÇÑ °ÍÀÏ ¼öµµ ÀÖ´Ù. - -[ÀÛ°¡ ¼Ò°³] -Çö Áø °Ç(úÜòåËí, 1900-1943) : ¼Ò¼³°¡. Çѱ¹ »ç½ÇÁÖÀÇ ´ÜÆí¼Ò¼³ÀÇ ±âƲÀ» ´ÙÁø ÀÛ°¡ÀÌ´Ù. º»°üÀº ¿¬ÁÖ(æÅñ¶). ¾ÆÈ£´Â ºùÇã(Þ»úÈ). 1920³â´ë Àü¹Ý±â¿¡´Â ÀÚÀüÀû ¿ä¼Ò°¡ °­ÇÑ °³ÀÎÀû üÇè¼Ò¼³ÀÎ <ºóó> <¼ú ±ÇÇÏ´Â »çȸ>, ¼º(àõ)ÀÇ ¹®Á¦¿Í ¾ÖÁ¤¹®Á¦¸¦ ´Ù·é <B»ç°¨°ú ·¯ºê·¹ÅÍ> <»õ»¡°£ ¿ôÀ½> µîÀÌ ÀÖÀ¸¸ç 1920³â´ë Áß¹Ý ÀÌÈÄ¿¡´Â <ÇǾƳë> <¿ìÆí±¹¿¡¼­> <ºÒ> <°íÇâ> µî ¼¼Å¿¡ÀÇ °ü½É°ú ½Ä¹ÎÁö »óȲÇÏÀÇ Çö½ÇÀνÄÀÌ µÎµå·¯Áø ÀÛÇ°À» ¸¹ÀÌ ¹ßÇ¥Çß´Ù. <¿î¼ö ÁÁÀº ³¯>µµ ÀÌ·¯ÇÑ °è¿­¿¡ ¼ÓÇÏ´Â ÀÛÇ°ÀÌ´Ù. 1930³â´ë ÀÌÈÄ¿¡´Â ¿ª»çÀǽİú ¿¹¾ðÁÖÀÇÀû ¹®Çаü¿¡ ±Ù°ÅÇÑ ¿ª»ç¼Ò¼³ Áß½ÉÀÇ <¹«¿µÅ¾> <ÈæÄ¡»óÁö(ýÙöÍßÈñý)> <¼±È­°øÁÖ> µî ÀåÆí¼Ò¼³À» ¹ßÇ¥Çß´Ù. - -»õħÇÏ°Ô È帰 Ç°ÀÌ ´«ÀÌ ¿Ã µíÇÏ´õ´Ï ´«Àº ¾Æ´Ï ¿À°í ¾ó´Ù°¡ ¸¸ ºñ°¡ ÃßÀûÃßÀû ³»¸®¾ú´Ù. - -À̳¯À̾߸»·Î µ¿¼Ò¹® ¾È¿¡¼­ ÀÎ·Â°Å²Û ³ë¸©À» ÇÏ´Â ±è ÷Áö¿¡°Ô´Â ¿À·¡°£¸¸¿¡µµ ´ÚÄ£ ¿î¼ö ÁÁÀº ³¯À̾ú´Ù. ¹®¾È¿¡(°Å±âµµ ¹®¹ÛÀº ¾Æ´ÏÁö¸¸) µé¾î°£´ä½Ã´Â ¾ÕÁý ¸¶³ª´ÔÀ» ÀüÂþ±æ±îÁö ¸ð¼Å´Ù µå¸° °ÍÀ» ºñ·ÔÀ¸·Î Çà¿©³ª ¼Õ´ÔÀÌ ÀÖÀ»±î ÇÏ°í Á¤·ùÀå¿¡¼­ ¾îÁ¤¾îÁ¤ÇÏ¸ç ³»¸®´Â »ç¶÷ ÇϳªÇϳª¿¡°Ô °ÅÀÇ ºñ´Â µíÇÑ ´«°áÀ» º¸³»°í ÀÖ´Ù°¡ ¸¶Ä§³» ±³¿øÀÎ µíÇÑ ¾çº¹ÀåÀ̸¦ µ¿±¤Çб³(ÔÔÎÃùÊÎè)±îÁö Å¿ö´Ù ÁÖ±â·Î µÇ¾ú´Ù. - -ù¹ø¿¡ »ï½Ê Àü, µÑ° ¹ø¿¡ ¿À½Ê Àü - ¾Æħ ´ñ¹Ù¶÷¿¡ ±×¸® ÈçÄ¡ ¾ÊÀº ÀÏÀ̾ú´Ù. ±×¾ß¸»·Î Àç¼ö°¡ ¿ÈºÙ¾î¼­ ±Ù ¿­Èê µ¿¾È µ· ±¸°æµµ ¸øÇÑ ±è ÷Áö´Â ½Ê ÀüÂ¥¸® ¹éÅëÈ­ ¼­ Ǭ, ¶Ç´Â ´Ù¼¸ ǬÀÌ Âû±ïÇÏ°í ¼Õ¹Ù´Ú¿¡ ¶³¾îÁú Á¦ °ÅÀÇ ´«¹°À» È긱 ¸¸Å­ ±â»¼¾ú´Ù. ´õ±¸³ª À̳¯ À̶§¿¡ ÀÌ ÆÈ½Ê ÀüÀ̶ó´Â µ·ÀÌ ±×¿¡°Ô ¾ó¸¶³ª À¯¿ëÇÑÁö ¸ô¶ú´Ù. ÄÃÄÃÇÑ ¸ñ¿¡ ¸ðÁÖ ÇÑ Àܵµ Àû½Ç ¼ö ÀÖ°Å´Ï¿Í ±×º¸´Ùµµ ¾Î´Â ¾Æ³»¿¡°Ô ¼³··ÅÁ ÇÑ ±×¸©µµ »ç´ÙÁÙ ¼ö ÀÖÀ½ÀÌ´Ù. - -±×ÀÇ ¾Æ³»°¡ ±âħÀ¸·Î Ä𷰰Ÿ®±â´Â ¹ú½á ´ÞÆ÷°¡ ³Ñ¾ú´Ù. Á¶¹äµµ ±¾±â¸¦ ¸Ô´Ù½ÃÇÇ ÇÏ´Â ÇüÆíÀÌ´Ï ¹°·Ð ¾à ÇÑ Ã¸ ½á º» ÀÏÀÌ ¾ø´Ù. ±¸Å¿© ¾²·Á¸é ¸ø ¾µ ¹Ùµµ ¾Æ´Ï·ÎµÇ ±×´Â º´À̶õ ³ð¿¡°Ô ¾àÀ» ÁÖ¾î º¸³»¸é Àç¹Ì¸¦ ºÙ¿©¼­ ÀÚ²Ù ¿Â´Ù´Â ÀÚ±âÀÇ ½ÅÁ¶(ãáðÉ)¿¡ ¾îµð±îÁö Ãæ½ÇÇÏ¿´´Ù. µû¶ó¼­ Àǻ翡°Ô º¸ÀÎ ÀûÀÌ ¾øÀ¸´Ï ¹«½¼ º´ÀÎÁö´Â ¾Ë ¼ö ¾øÀ¸µÇ ¹ÝµíÀÌ ´©¿ö °¡Áö°í, ÀϾ±â´Â »õ·Î ¸ð·Îµµ ¸ø ´¯´Â°É º¸¸é ÁßÁõÀº ÁßÁõÀÎ µí. º´ÀÌ ÀÌ´ëµµ·Ï ½ÉÇØÁö±â´Â ¿­Èê Àü¿¡ Á¶¹äÀ» ¸Ô°í üÇÑ ¶§¹®ÀÌ´Ù. - -±×¶§µµ ±è ÷Áö°¡ ¿À·¡°£¸¸¿¡ µ·À» ¾ò¾î¼­ Á¼½Ò ÇÑ µÇ¿Í ½Ê ÀüÂ¥¸® ³ª¹« ÇÑ ´ÜÀ» »ç´Ù ÁÖ¾ú´õ´Ï ±è ÷ÁöÀÇ ¸»¿¡ ÀÇÁöÇÏ¸é ±× ¿À¶óÁú ³âÀÌ Ãµ¹æÁöÃà(ô¸Û°ò¢õî)À¸·Î ³²ºñ¿¡ ´ë°í ²ú¿´´Ù. ¸¶À½Àº ±ÞÇÏ°í ºÒ±æÀº ´ÞÁö ¾Ê¾Æ ä ÀÍÁöµµ ¾ÊÀº °ÍÀ» ±× ¿À¶óÁú ³âÀÌ ¼ù°¡¶ôÀº °í¸¸µÎ°í ¼ÕÀ¸·Î ¿òÄѼ­ µÎ »´¿¡ ÁÖ¸Ôµ¢ÀÌ °°Àº ȤÀÌ ºÒ°ÅÁöµµ·Ï ´©°¡ »©¾ÑÀ» µíÀÌ Ã³¹ÚÁú ÇÏ´õ´Ï¸¸ ±×³¯ Àú³áºÎÅÍ °¡½¿ÀÌ ¶¥±ä´Ù, ¹è°¡ Äбä´Ù°í ´«À» È©¶ß°í Áö¶öº´À» ÇÏ¿´´Ù. ±×¶§ ±è ÷Áö´Â ¿­È­¿Í °°ÀÌ ¼ºÀ» ³»¸ç, - -¡°¿¡ÀÌ, ¿À¶óÁú ³â, Á¶·Õº¹Àº ÇÒ ¼ö°¡ ¾ø¾î, ¸ø ¸Ô¾î º´, ¸Ô¾î¼­ º´, ¾î¼¶õ ¸»À̾ß! ¿Ö ´«À» ¹Ù·ç ¶ßÁö ¸øÇØ!¡±ÇÏ°í ±è ÷Áö´Â ¾Î´Â ÀÌÀÇ »´À» ÇÑ ¹ø ÈÄ·Á°¥°å´Ù. È©¶á ´«Àº Á¶±Ý ¹Ù·ç¾îÁ³°Ç¸¸ À̽½ÀÌ ¸ÎÈ÷¾ú´Ù. ±è ÷ÁöÀÇ ´«½Ã¿ïµµ ¶ß²ö¶ß²öÇÏ¿´´Ù. - -ÀÌ È¯ÀÚ°¡ ±×·¯°íµµ ¸Ô´Â µ¥´Â ¹°¸®Áö ¾Ê¾Ò´Ù. »çÈê ÀüºÎÅÍ ¼³··ÅÁ ±¹¹°ÀÌ ¸¶½Ã°í ½Í´Ù°í ³²ÆíÀ» Á¹¶ú´Ù. - -¡°ÀÌ·± ¿À¶óÁú ³â! Á¶¹äµµ ¸ø ¸Ô´Â ³âÀÌ ¼³··ÅÁÀº, ¶Ç ó¸Ô°í Áö¶öº´À» ÇÏ°Ô.¡±¶ó°í, ¾ß´ÜÀ» Ãĺ¸¾Ò°Ç¸¸, ¸ø »çÁÖ´Â ¸¶À½ÀÌ ½Ã¿øÄ¡´Â ¾Ê¾Ò´Ù. - -ÀÎÁ¦ ¼³··ÅÁÀ» »çÁÙ ¼öµµ ÀÖ´Ù. ¾Î´Â ¾î¹Ì °ç¿¡¼­ ¹è°íÆÄ º¸Ã¤´Â °³¶ËÀÌ(¼¼ »ì¸ÔÀÌ)¿¡°Ô Á×À» »çÁÙ ¼öµµ ÀÖ´Ù. - ÆÈ½Ê ÀüÀ» ¼Õ¿¡ Áå ±è ÷ÁöÀÇ ¸¶À½Àº ǬǬÇÏ¿´´Ù. ±×·¯³ª ±×ÀÇ Çà¿îÀº ±×°É·Î ±×Ä¡Áö ¾Ê¾Ò´Ù. ¶¡°ú ºø¹°ÀÌ ¼¯¿© È帣´Â ¸ñ´ú¹Ì¸¦ ±â¸§ÁÖ¸Ó´Ï°¡ ´Ù µÈ ¿Ö¸ñ ¼ö°ÇÀ¸·Î ´ÛÀ¸¸ç, ±× Çб³ ¹®À» µ¹¾Æ³ª¿Ã ¶§¿´´Ù. µÚ¿¡¼­ <Àη°Å!> ÇÏ°í ºÎ¸£´Â ¼Ò¸®°¡ ³­´Ù. Àڱ⸦ ºÒ·¯ ¸ØÃá »ç¶÷ÀÌ ±× Çб³ ÇлýÀÎ ÁÙ ±è ÷Áö´Â ÇÑ ¹ø º¸°í ÁüÀÛÇÒ ¼ö ÀÖ¾ú´Ù. ±× ÇлýÀº ´ÙÂ¥°íÂ¥·Î, ¡°³²´ë¹® Á¤°ÅÀå±îÁö ¾ó¸¶¿ä?¡±¶ó°í, ¹°¾ú´Ù. - -¾Æ¸¶µµ ±× Çб³ ±â¼÷»ç¿¡ ÀÖ´Â ÀÌ·Î µ¿±â¹æÇÐÀ» ÀÌ¿ëÇÏ¿© ±ÍÇâÇÏ·Á ÇÔÀ̸®¶ó. ¿À´Ã °¡±â·Î ÀÛÁ¤Àº ÇÏ¿´°Ç¸¸ ºñ´Â ¿À°í, ÁüÀº ÀÖ°í Çؼ­ ¾îÂîÇÒ ÁÙ ¸ð¸£´Ù°¡ ¸¶Ä§ ±è ÷Áö¸¦ º¸°í ¶Ù¾î³ª¿ÔÀ½À̸®¶ó. ±×·¸Áö ¾ÊÀ¸¸é ¿Ö ±¸µÎ¸¦ ä ½ÅÁö ¸øÇؼ­ ÁúÁú ²ø°í, ºñ·Ï <°í±¸¶ó> ¾çº¹ÀϸÁÁ¤ ³ë¹ÚÀÌ·Î ºñ¸¦ ¸ÂÀ¸¸ç ±è÷Áö¸¦ µÚÂÑ¾Æ ³ª¿ÔÀ¸·ª. - -¡°³²´ë¹® Á¤°ÅÀå±îÁö ¸»¾¸ÀԴϱî.¡±ÇÏ°í ±è ÷Áö´Â Àá±ñ ÁÖÀúÇÏ¿´´Ù. ±×´Â ÀÌ ¿ìÁß¿¡ ¿ìÀåµµ ¾øÀÌ ±× ¸Õ °÷À» ö¹÷°Å¸®°í °¡±â°¡ ½È¾úÀ½Àϱî? óÀ½ °Í, µÑ° °ÍÀ¸·Î ±×¸¸ ¸¸Á·ÇÏ¿´À½Àϱî? ¾Æ´Ï´Ù, °áÄÚ ¾Æ´Ï´Ù. ÀÌ»óÇÏ°Ôµµ ²¿¸®¸¦ ¸Â¹°°í ´ýºñ´Â ÀÌ Çà¿î ¾Õ¿¡ Á¶±Ý °ÌÀÌ ³µÀ½ÀÌ´Ù.±×¸®°í ÁýÀ» ³ª¿Ã Á¦ ¾Æ³»ÀÇ ºÎŹÀÌ ¸¶À½¿¡ Äбâ¾ú´Ù. - ¾ÕÁý ¸¶³ª´ÔÇÑÅ×¼­ ºÎ¸£·¯ ¿ÔÀ» Á¦ º´ÀÎÀº ±× »À¸¸ ³²Àº ¾ó±¼¿¡ À¯ÀÏÀÇ »ý¹° °°Àº À¯´Þ¸® Å©°í ¿òÆøÇÑ ´«¿¡ ¾Ö°ÉÇÏ´Â ºûÀ» ¶ì¿ì¸ç, ¡°¿À´ÃÀº ³ª°¡Áö ¸»¾Æ¿ä. Á¦¹ß ´öºÐ¿¡ Áý¿¡ ºÙ¾îÀÖ¾î¿ä. ³»°¡ ÀÌ·¸°Ô ¾Æǵ¥¡¦¡¦¡±¶ó°í, ¸ð±â ¼Ò¸®°°ÀÌ Áß¾ó°Å¸®°í ¼ûÀ» °É±×··°É±×·· ÇÏ¿´´Ù. - -±×¶§¿¡ ±è ÷Áö´Â ´ë¼ö·ÓÁö ¾ÊÀº µíÀÌ, ¡°¾Ð´Ù, Á¨Àå¸ÂÀ» ³â, º° ºô¾î¸ÔÀ» ¼Ò¸®¸¦ ´Ù Çϳ×. ¸ÂºÙµé°í ¾É¾ÒÀ¸¸é ´©°¡ ¸Ô¿© »ì¸± ÁÙ ¾Ë¾Æ.¡±ÇÏ°í, Èǽ ¶Ù¾î³ª¿À·Á´Ï±î ȯÀÚ´Â ºÙÀâÀ» µíÀÌ ÆÈÀ» ³»ÀúÀ¸¸ç, ¡°³ª°¡Áö ¸»¶óµµ ±×·¡, ±×·¯¸é ÀÏÂî±â µé¾î¿Í¿ä.¡±ÇÏ°í, ¸ñ¸ÞÀÎ ¼Ò¸®°¡ µÚ¸¦ µû¶ú´Ù. - -Á¤°ÅÀå±îÁö °¡ÀÜ ¸»À» µéÀº ¼ø°£¿¡ °æ·ÃÀûÀ¸·Î ¶°´Â ¼Õ, À¯´Þ¸® Å­Á÷ÇÑ ´«, ¿ï µíÇÑ ¾Æ³»ÀÇ ¾ó±¼ÀÌ ±è ÷ÁöÀÇ ´«¾Õ¿¡ ¾î¸¥¾î¸¥ÇÏ¿´´Ù. ¡°±×·¡ ³²´ë¹® Á¤°ÅÀå±îÁö ¾ó¸¶¶õ ¸»ÀÌ¿ä?¡±ÇÏ°í ÇлýÀº ÃÊÁ¶ÇÑ µíÀÌ Àη°ŲÛÀÇ ¾ó±¼À» ¹Ù¶óº¸¸ç È¥À㸻°°ÀÌ, ¡°ÀÎõ Â÷°¡ ¿­ ÇÑ Á¡¿¡ ÀÖ°í, ±× ´ÙÀ½¿¡´Â »õ·Î µÎ Á¡À̵簡.¡±¶ó°í, Áß¾ó°Å¸°´Ù. - -¡°ÀÏ ¿ø ¿À½Ê Àü¸¸ Áݽÿä.¡± ÀÌ ¸»ÀÌ Àúµµ ¸ð¸¦ »çÀÌ¿¡ ºÒ¾¦ ±è ÷ÁöÀÇ ÀÔ¿¡¼­ ¶³¾îÁ³´Ù. Á¦ ÀÔÀ¸·Î ºÎ¸£°íµµ ½º½º·Î ±× ¾öû³­ µ· ¾×¼ö¿¡ ³î·¡¾ú´Ù. ÇѲ¨¹ø¿¡ ÀÌ·± ±Ý¾×À» ºÒ·¯¶óµµ º» Áö°¡ ±× ¾ó¸¶¸¸Àΰ¡! ±×·¯ÀÚ ±× µ· ¹ú ¿ë±â°¡ º´ÀÚ¿¡ ´ëÇÑ ¿°·Á¸¦ »ç¸£°í ¸»¾Ò´Ù. ¼³¸¶ ¿À´Ã ³»·Î ¾î¶°·ª ½Í¾ú´Ù. ¹«½¼ ÀÏÀÌ ÀÖ´õ¶óµµ Á¦ÀÏ Á¦ÀÌÀÇ Çà¿îÀ» °öÄ£ °Íº¸´Ùµµ ¿ÀÈ÷·Á °©ÀýÀÌ ¸¹Àº ÀÌ Çà¿îÀ» ³õÄ¥ ¼ö ¾ø´Ù ÇÏ¿´´Ù. - -¡°ÀÏ ¿ø ¿À½Ê ÀüÀº ³Ê¹« °úÇѵ¥.¡± ÀÌ·± ¸»À» Çϸç ÇлýÀº °í°³¸¦ ±â¿ôÇÏ¿´´Ù. - -¡°¾Æ´Ï¿Ã½Ã´Ù. ÀÕ¼ö·Î Ä¡¸é ¿©±â¼­ °Å±â°¡ ½Ã¿À¸®°¡ ³Ñ´Â´ä´Ï´Ù. ¶Ç ÀÌ·± Áø ³¯¿¡ Á»´õ ÁּžßÁö¿ä.¡±ÇÏ°í ºù±Ûºù±Û ¿ô´Â Â÷ºÎÀÇ ¾ó±¼¿¡´Â ¼û±æ ¼ö ¾ø´Â ±â»ÝÀÌ ³ÑÃÄ Èê·¶´Ù. - -¡°±×·¯¸é ´Þ¶ó´Â ´ë·Î ÁÙ ÅÍÀÌ´Ï »¡¸® °¡¿ä.¡± °ü´ëÇÑ ¾î¸° ¼Õ´ÔÀº ±×·± ¸»À» ³²±â°í ÃÑÃÑÈ÷ ¿Êµµ ÀÔ°í Áüµµ ì±â·¯ °¥ µ¥·Î °¬´Ù. - -±× ÇлýÀ» Å¿ì°í ³ª¼± ±è ÷ÁöÀÇ ´Ù¸®´Â ÀÌ»óÇÏ°Ô °Å»ÓÇÏ¿´´Ù. ´ÞÀ½ÁúÀ» ÇÑ´Ù´À´Ïº¸´Ù °ÅÀÇ ³ª´Â µíÇÏ¿´´Ù. ¹ÙÄûµµ ¾î¶»°Ô ¼ÓÈ÷ µµ´ÂÁö ±º´Ù´À´Ïº¸´Ù ¸¶Ä¡ ¾óÀ½À» ÁöÃijª°¡´Â <½ºÄÉÀÌÆ®> ¸ð¾çÀ¸·Î ¹Ì²ô·¯Á® °¡´Â µíÇÏ¿´´Ù. ¾óÀº ¶¥¿¡ ºñ°¡ ³»·Á ¹Ì²ô·´±âµµ ÇÏ¿´Áö¸¸. - -ÀÌÀ¹°í ²ô´Â ÀÌÀÇ ´Ù¸®´Â ¹«°Å¿öÁ³´Ù. ÀÚ±â Áý °¡±îÀÌ ´Ù´Ù¸¥ ±î´ßÀÌ´Ù. »õ»ï½º·¯¿î ¿°·Á°¡ ±×ÀÇ °¡½¿À» ´­·¶´Ù. <¿À´ÃÀº ³ª°¡Áö ¸»¾Æ¿ä. ³»°¡ ÀÌ·¸°Ô ¾Æǵ¥!> ÀÌ·± ¸»ÀÌ À×À× ±×ÀÇ ±Í¿¡ ¿ï·È´Ù. ±×¸®°í º´ÀÚÀÇ ¿ò¾¦ µé¾î°£ ´«ÀÌ ¿ø¸ÁÇÏ´Â µíÀÌ Àڱ⸦ ³ë¸®´Â µíÇÏ¿´´Ù. ±×·¯ÀÚ ¾û¾ûÇÏ°í ¿ì´Â °³¶ËÀÌÀÇ °î¼ºÀ» µéÀº µí½Í´Ù. µþ±¹µþ±¹ ÇÏ°í ¼û ¸ðÀ¸´Â ¼Ò¸®µµ ³ª´Â µí½Í´Ù.¡°¿Ö À̸®¿ì, ±âÂ÷ ³õÄ¡°Ú±¸¸Õ.¡±ÇÏ°í ź ÀÌÀÇ ÃÊÁ¶ÇÑ ºÎ¸£Â¢À½ÀÌ °£½ÅÈ÷ ±×ÀÇ ±Í¿¡ µé¾î¿Ô´Ù. ¾ð¶æ ±ú´ÞÀ¸´Ï ±è ÷Áö´Â Àη°Ÿ¦ Áå ä ±æ ÇѺ¹ÆÇ¿¡ ¾û°ÅÁÖÃã ¸ØÃçÀÖÁö ¾ÊÀº°¡. - -¡°¿¹, ¿¹.¡±ÇÏ°í, ±è ÷Áö´Â ¶Ç´Ù½Ã ´ÞÀ½ÁúÇÏ¿´´Ù. ÁýÀÌ Â÷Â÷ ¸Ö¾î°¥¼ö·Ï ±è ÷ÁöÀÇ °ÉÀ½¿¡´Â ´Ù½Ã±Ý ½ÅÀÌ ³ª±â ½ÃÀÛÇÏ¿´´Ù. ´Ù¸®¸¦ Àç°Ô ³î·Á¾ß¸¸ ½¯»õ¾øÀÌ ÀÚ±âÀÇ ¸Ó¸®¿¡ ¶°¿À¸£´Â ¸ðµç ±Ù½É°ú °ÆÁ¤À» ÀØÀ» µíÀÌ. - -Á¤°ÅÀå±îÁö ²ø¾î´ÙÁÖ°í ±× ±ô¦ ³î¶õ ÀÏ ¿ø ¿À½Ê ÀüÀ» Á¤¸» Á¦ ¼Õ¿¡ Áç¿¡, Á¦ ¸»¸¶µû³ª ½Ê ¸®³ª µÇ´Â ±æÀ» ºñ¸¦ ¸Â¾Æ °¡¸ç ÁúÆܰŸ®°í ¿Â »ý°¢Àº ¾Æ´ÏÇÏ°í, °ÅÀú³ª ¾òÀº µíÀÌ °í¸¶¿Ô´Ù. Á¹ºÎ³ª µÈ µíÀÌ ±â»¼´Ù. Á¦ÀÚ½Ä »¹¹Û¿¡ ¾ÈµÇ´Â ¾î¸° ¼Õ´Ô¿¡°Ô ¸î ¹ø Ç㸮¸¦ ±ÁÈ÷¸ç, ¡°¾È³çÈ÷ ´Ù³à¿É½Ã¿ä.¡±¶ó°í ±ïµíÀÌ Àç¿ìÃÆ´Ù. - -±×·¯³ª ºó Àη°Ÿ¦ ÅÐÅаŸ®¸ç ÀÌ ¿ìÁß¿¡ µ¹¾Æ°¥ ÀÏÀÌ ²Þ¹ÛÀ̾ú´Ù. ³ëµ¿À¸·Î ÇÏ¿© È帥 ¶¡ÀÌ ½Ä¾îÁöÀÚ ±¾ÁÖ¸° âÀÚ¿¡¼­, ¹° È帣´Â ¿Ê¿¡¼­ ¾î½½¾î½½ ÇѱⰡ ¼Ú¾Æ³ª±â ºñ·ÔÇϸŠÀÏ ¿ø ¿À½Ê ÀüÀ̶õ µ·ÀÌ ¾ó¸¶³ª ±¦Âú°í ±«·Î¿î °ÍÀÎ ÁÙ ÀýÀýÈ÷ ´À³¢¾ú´Ù. Á¤°ÅÀåÀ» ¶°³ª´Â ±×ÀÇ ¹ß±æÀº Èû Çϳª ¾ø¾ú´Ù. ¿Â¸öÀÌ ¿Ë¼Û±×·ÁÁö¸ç ´çÀå ±× ÀÚ¸®¿¡ ¾þ¾îÁ® ¸ø ÀϾ °Í °°¾Ò´Ù. - -¡°Á¨Àå¸ÂÀ» °Í! ÀÌ ºñ¸¦ ¸ÂÀ¸¸ç ºó Àη°Ÿ¦ ÅÐÅаŸ®°í µ¹¾Æ¸¦ °£´ã. ÀÌ·± ºô¾î¸ÔÀ», Á¦ Çҹ̸¦ ºÙÀ» ºñ°¡ ¿Ö ³²ÀÇ »óÆÇÀ» µüµü ¶§·Á!¡± - -±×´Â ¸÷½Ã ȱÁõÀ» ³»¸ç ´©±¸¿¡°Ô ¹ÝÇ×À̳ª ÇÏ´Â µíÀÌ °Ô°É°Å·È´Ù. ±×·² ÁîÀ½¿¡ ±×ÀÇ ¸Ó¸®¿£ ¶Ç »õ·Î¿î ±¤¸íÀÌ ºñÃƳª´Ï ±×°ÍÀº <ÀÌ·¯±¸ °¥ °Ô ¾Æ´Ï¶ó ÀÌ ±Ùó¸¦ ºùºù µ¹¸ç Â÷ ¿À±â¸¦ ±â´Ù¸®¸é ¶Ç ¼Õ´ÔÀ» Å¿ì°Ô µÉ´ÂÁöµµ ¸ô¶ó>¶õ »ý°¢À̾ú´Ù. ¿À´Ã ¿î¼ö°¡ ±«»óÇÏ°Ôµµ ÁÁÀ¸´Ï±î ±×·± ¿äÇàÀÌ ¶ÇÇѹø ¾øÀ¸¸®¶ó°í ´©°¡ º¸ÁõÇÏ·ª. ²¿¸®¸¦ ±¼¸®´Â Çà¿îÀÌ ²À Àڱ⸦ ±â´Ù¸®°í ÀÖ´Ù°í ³»±â¸¦ Çصµ ÁÁÀ» ¸¸ÇÑ ¹ÏÀ½À» ¾ò°Ô µÇ¾ú´Ù. ±×·¸´Ù°í Á¤°ÅÀå Àη°ŲÛÀÇ µî»ìÀÌ ¹«¼­¿ì´Ï Á¤°ÅÀå ¾Õ¿¡ ¼¹À» ¼ö´Â ¾ø¾ú´Ù. - -±×·¡ ±×´Â ÀÌÀü¿¡µµ ¿©·¯ ¹ø Çغ» ÀÏÀ̶ó ¹Ù·Î Á¤°ÅÀå ¾Õ ÀüÂ÷ Á¤·ùÀå¿¡¼­ Á¶±Ý ¶³¾îÁö°Ô, »ç¶÷ ´Ù´Ï´Â ±æ°ú ÀüÂþ±æ Æ´¿¡ Àη°Ÿ¦ ¼¼¿ö³õ°í ÀÚ±â´Â ±× ±Ùó¸¦ ºùºù µ¹¸ç Çü¼¼¸¦ °ü¸ÁÇϱâ·Î ÇÏ¿´´Ù. ¾ó¸¶¸¸¿¡ ±âÂ÷´Â ¿Ô°í, ¼ö½Ê ¸íÀ̳ª µÇ´Â ¼ÕÀÌ Á¤·ùÀåÀ¸·Î ½ñ¾ÆÁ® ³ª¿Ô´Ù. ±× Áß¿¡¼­ ¼Õ´ÔÀ» ¹°»öÇÏ´Â ±è ÷ÁöÀÇ ´«¿£ ¾ç¸Ó¸®¿¡ µÚÃà ³ôÀº ±¸µÎ¸¦ ½Å°í <¸ÁÅä>±îÁö µÎ¸¥ ±â»ý Åð¹°ÀÎ µí, ³­ºÀ ¿©ÇлýÀÎ µíÇÑ ¿©Æí³×ÀÇ ¸ð¾çÀÌ ¶ç¾ú´Ù. ±×´Â ½½±Ù½½±Ù ±× ¿©ÀÚÀÇ °çÀ¸·Î ´Ù°¡µé¾ú´Ù. - -¡°¾Æ¾¾, Àη°Š¾Æ´Ï Ÿ½Ã¶ø½Ã¿ä?¡± - -±× ¿©ÇлýÀÎÁö ¹ºÁö°¡ ÇÑÂüÀº ¸Å¿ì ÅÈ°¥À» »©¸ç ÀÔ¼úÀ» ²À ´Ù¹® ä ±è ÷Áö¸¦ °Åµé¶°º¸Áöµµ ¾Ê¾Ò´Ù. ±è ÷Áö´Â ±¸°ÉÇÏ´Â °ÅÁö³ª ¹«¾ù°°ÀÌ ¿¬ÇØ¿¬¹æ ±×ÀÇ ±â»öÀ» »ìÇǸç, ¡°¾Æ¾¾, Á¤°ÅÀå ¾Öµéº¸´ã ¾ÆÁÖ ½Î°Ô ¸ð¼Å´Ù µå¸®°ÚÀ¾´Ï´Ù. ´ìÀÌ ¾îµð½Å°¡¿ä.¡±ÇÏ°í, Ãß±ÙÃß±ÙÇÏ°Ôµµ ±× ¿©ÀÚÀÇ µé°í ÀÖ´Â ÀϺ»½Ä ¹öµé°í¸®Â¦¿¡ Á¦ ¼ÕÀ» ´ë¾ú´Ù. - -¡°¿Ö ÀÌ·¡, ³² ±ÍÄ¡¾Ê°Ô.¡± ¼Ò¸®¸¦ º®·Â°°ÀÌ Áö¸£°í´Â µ¹¾Æ¼±´Ù. ±è ÷Áö´Â ¾î¶ø½Ã¿ä ÇÏ°í ¹°·¯¼¹´Ù. - -ÀüÂ÷´Â ¿Ô´Ù. ±è ÷Áö´Â ¿ø¸Á½º·´°Ô ÀüÂ÷ Ÿ´Â À̸¦ ³ë¸®°í ÀÖ¾ú´Ù. ±×·¯³ª ±×ÀÇ ¿¹°¨(çãÊï)Àº Ʋ¸®Áö ¾Ê¾Ò´Ù. ÀüÂ÷°¡ ºýºýÇÏ°Ô »ç¶÷À» ½Æ°í ¿òÁ÷À̱⠽ÃÀÛÇÏ¿´À» ¶§ Ÿ°í ³²Àº ¼Õ ÇϳªÀÌ ÀÖ¾ú´Ù. ±²ÀåÇÏ°Ô Å« °¡¹æÀ» µé°í ÀÖ´Â°É º¸¸é ¾Æ¸¶ ºÕºñ´Â Â÷ ¾È¿¡ ÁüÀÌ Å©´Ù ÇÏ¿© Â÷Àå¿¡°Ô ¹Ð·Á³»·Á¿Â ´«Ä¡¿´´Ù. ±è ÷Áö´Â ´ë¾î¼¹´Ù. - -¡°Àη°Ÿ¦ Ÿ½Ã¶ø½Ã¿ä.¡± - -Çѵ¿¾È °ªÀ¸·Î ½Â°­À̸¦ ÇÏ´Ù°¡ À°½Ê Àü¿¡ Àλ絿±îÁö Å¿ö´ÙÁÖ±â·Î ÇÏ¿´´Ù. Àη°Ű¡ ¹«°Å¿öÁö¸Å ±×ÀÇ ¸öÀº ÀÌ»óÇÏ°Ôµµ °¡º­¿öÁ³°í ±×¸®°í ¶Ç Àη°Ű¡ °¡º­¿öÁö´Ï ¸öÀº ´Ù½Ã±Ý ¹«°Å¿öÁ³°Ç¸¸ À̹ø¿¡´Â ¸¶À½Á¶Â÷ ÃÊÁ¶ÇØ ¿Â´Ù. ÁýÀÇ ±¤°æÀÌ ÀÚ²Ù ´«¾Õ¿¡ ¾î¸¥°Å¸®¾î ÀÎÁ¦ ¿äÇàÀ» ¹Ù¶ö ¿©À¯µµ ¾ø¾ú´Ù. ³ª¹« µî°ÉÀ̳ª ¹«¾ù °°°í Á¦ °Í °°Áöµµ ¾ÊÀº ´Ù¸®¸¦ ¿¬ÇØ ²Ù¢À¸¸ç °¥ÆÎÁúÆÎ ¶Ù´Â ¼ö¹Û¿¡ ¾ø¾ú´Ù. - -Àú³ðÀÇ Àη°űºÀÌ Àú·¸°Ô ¼úÀÌ ÃëÇØ°¡Áö°í ÀÌ Áø ¶¥¿¡ ¾îÂî °¡³ë, ¶ó°í ±æ °¡´Â »ç¶÷ÀÌ °ÆÁ¤À» Çϸ®¸¸Å­ ±×ÀÇ °ÉÀ½Àº Ȳ±ÞÇÏ¿´´Ù. È帮°í ºñ¿À´Â ÇÏ´ÃÀº ¾îµÒħħÇÏ°Ô ¹ú½á Ȳȥ¿¡ °¡±î¿î µíÇÏ´Ù. â°æ¿ø ¾Õ±îÁö ´Ù´Þ¾Æ¼­¾ß ±×´Â Åο¡ ´êÀº ¼ûÀ» µ¹¸®°í °ÉÀ½µµ ´ÊÃßÀâ¾Ò´Ù. ÇÑ °ÉÀ½ µÎ °ÉÀ½ ÁýÀÌ °¡±î¿Í¿Ã¼ö·Ï ±×ÀÇ ¸¶À½Á¶Â÷ ±«»óÇÏ°Ô ´©±×·¯¿ü´Ù. ±×·±µ¥ ÀÌ ´©±×·¯¿òÀº ¾È½É¿¡¼­ ¿À´Â °Ô ¾Æ´Ï¿ä, Àڱ⸦ µ¤Ä£ ¹«¼­¿î ºÒÇàÀ» ºóÆ´¾øÀÌ ¾Ë°Ô µÉ ¶§°¡ ¹ÚµÎÇÑ °ÍÀ» µÎ·Á¿öÇÏ´Â ¸¶À½¿¡¼­ ¿À´Â °ÍÀÌ´Ù. - -±×´Â ºÒÇà¿¡ ´Ù´ÚÄ¡±â Àü ½Ã°£À» ¾ó¸¶ÂëÀÌ¶óµµ ´Ã¸®·Á°í ¹ö¸£Àû°Å·È´Ù. ±âÀû(Ðôîç)¿¡ °¡±î¿î ¹úÀ̸¦ ÇÏ¿´´Ù´Â ±â»ÝÀ» ÇÒ ¼ö ÀÖÀ¸¸é ¿À·¡ Áö´Ï°í ½Í¾ú´Ù. ±×´Â µÎ¸®¹øµÎ¸®¹ø »ç¸éÀ» »ìÇǾú´Ù. ±× ¸ð¾çÀº ¸¶Ä¡ ÀÚ±â Áý - °ð ºÒÇàÀ» ÇâÇÏ°í ´Þ·Á°¡´Â Á¦ ´Ù¸®¸¦ Á¦ ÈûÀ¸·Î´Â µµÀúÈ÷ ¾îÂîÇÒ ¼ö ¾øÀ¸´Ï ´©±¸µçÁö ³ª¸¦ Á» Àâ¾Æ ´Ù°í, ±¸ÇØ ´Ù°í ÇÏ´Â µíÇÏ¿´´Ù. - -±×·² ÁîÀ½¿¡ ¸¶Ä§ ±æ°¡ ¼±¼úÁý¿¡¼­ ±×ÀÇ Ä£±¸ Ä¡»ïÀÌ°¡ ³ª¿Â´Ù. ±×ÀÇ ¿ì±Û¿ì±Û »ìÂð ¾ó±¼¿¡ ÁÖÈ«ÀÌ µ¸´Â µí, ¿Â Åΰú »´À» ½ÃÄ¿¸Ý°Ô ±¸·¹³ª·íÀÌ µ¤¿´°Å´Ã, ³ë¸£ÅÊÅÊÇÑ ¾ó±¼ÀÌ ¹Ù¦ ¸»¶ó¼­ ¿©±âÀú±â °í¶ûÀÌ Æаí, ¼ö¿°µµ ÀÖ´ë¾ß Åιؿ¡¸¸ ¸¶Ä¡ ¼ÖÀÙ ¼ÛÀ̸¦ °Å²Ù·Î ºÙ¿©³õÀº µíÇÑ ±è ÷ÁöÀÇ Ç³Ã¤ÇÏ°í´Â ±âÀÌÇÑ ´ë»óÀ» Áþ°í ÀÖ¾ú´Ù. - -¡°¿©º¸°Ô ±è ÷Áö, ÀÚ³× ¹®¾È µé¾î°¬´Ù ¿À´Â ¸ð¾çÀϼ¼±×·Á. µ· ¸¹ÀÌ ¹ú¾úÀ» Å×´Ï ÇÑ ÀÜ »¡¸®°Ô.¡± - -¶×¶×º¸´Â ¸»¶ó²¤À̸¦ º¸µç ¸Ã¿¡ ºÎ¸£Â¢¾ú´Ù. ±× ¸ñ¼Ò¸®´Â ¸öÁþ°ú µýÆÇÀ¸·Î ¿¬ÇÏ°í ½Ï½ÏÇÏ¿´´Ù. ±è ÷Áö´Â ÀÌ Ä£±¸¸¦ ¸¸³­ °Ô ¾î¶»°Ô ¹Ý°¡¿îÁö ¸ô¶ú´Ù. Àڱ⸦ »ì·ÁÁØ ÀºÀÎÀ̳ª ¹«¾ù°°ÀÌ °í¸¿±âµµ ÇÏ¿´´Ù. - -¡°ÀÚ³×´Â ¹ú½á ÇÑÀÜ ÇÑ ¸ð¾çÀϼ¼±×·Á. ÀÚ³×µµ ¿À´Ã Àç¹Ì°¡ ÁÁ¾Æº¸ÀÌ.¡±ÇÏ°í, ±è ÷Áö´Â ¾ó±¼À» Æì¼­ ¿ô¾ú´Ù. - -¡°¾Ð´Ù, Àç¹Ì ¾È ÁÁ´Ù°í ¼ú ¸ø ¸ÔÀ» ³½°¡. ±×·±µ¥ ¿©º¸°Ô, ÀÚ³× ¿Þ¸öÀÌ ¾î° ¹°µ¶¿¡ ºüÁø »õ¾ÓÁã °°Àº°¡? ¾î¼­ À̸® µé¾î¿Í ¸»¸®°Ô.¡± - -¼±¼úÁýÀº ÈÆÈÆÇÏ°í ¶ß¶æÇÏ¿´´Ù. Ãß¾îÅÁÀ» ²úÀÌ´Â ¼Ü¶Ñ²±À» ¿­ Àû¸¶´Ù ¹¶°Ô¹¶°Ô ¶°¿À¸£´Â Èò ±è, ¼®¼è¿¡¼­ »µÁöÁþ»µÁöÁþ ±¸¿öÁö´Â ³Êºñ¾Æ´Ï ±¸À̸ç Á¦À°ÀÌ¸ç °£À̸ç ÄáÆÏÀÌ¸ç ºÏ¾î¸ç ºó´ë¶±¡¦¡¦ÀÌ ³ÊÀúºÐÇÏ°Ô ´Ã¾î³õÀÎ ¾ÈÁÖ Å¹ÀÚ¿¡ ±è ÷Áö´Â °©Àڱ⠼ÓÀÌ ¾²·Á¼­ °ßµô ¼ö ¾ø¾ú´Ù. ¸¶À½´ë·Î ÇÒ ¾çÀÌ¸é °Å±â ÀÖ´Â ¸ðµç ¸ÔÀ½ ¸ÔÀ̸¦ ¸ðÁ¶¸® ±ø±×¸® Áý¾î»ïÄѵµ ½Ã¿øÄ¡ ¾Ê¾Ò´Ù. Ç쵂 ¹è°íÇ ÀÌ´Â À§¼± ºÐ·® ¸¹Àº ºó´ë¶± µÎ °³¸¦ ÂÉÀ̱⵵ ÇÏ°í Ãß¾îÅÁÀ» ÇÑ ±×¸© ûÇÏ¿´´Ù. - -ÁÖ¸° âÀÚ´Â À½½Ä¸ÀÀ» º¸´õ´Ï ´õ¿í´õ¿í ºñ¾îÁö¸ç ÀÚ²ÙÀÚ²Ù µéÀ̶óµéÀ̶ó ÇÏ¿´´Ù. ¼ø½Ä°£¿¡ µÎºÎ¿Í ¹Ì²Ù¸® µç ±¹ ÇÑ ±×¸©À» ±×³É ¹°°°ÀÌ µéÀÌÅ°°í ¸»¾Ò´Ù. ¼¼Â° ±×¸©À» ¹Þ¾Æµé¾úÀ» Á¦ µ¥¿ì´ø ¸·°ÉÀÌ °ö¹è±â µÎ ÀÜÀÌ ´õ¿ü´Ù. Ä¡»ïÀÌ¿Í °°ÀÌ ¸¶½ÃÀÚ ¿ø¿øÈ÷ ºñ¾ú´ø ¼ÓÀ̶ó Â¸£ÇÏ°í âÀÚ¿¡ ÆÛÁö¸ç ¾ó±¼ÀÌ È­²öÇÏ¿´´Ù. ´­·¯ °ö¹è±â ÇÑ ÀÜÀ» ¶Ç ¸¶¼Ì´Ù. - -±è ÷ÁöÀÇ ´«Àº ¹ú½á °³°³ Ç®¸®±â ½ÃÀÛÇÏ¿´´Ù. ¼®¼è¿¡ ¾ñÈù ¶± µÎ °³¸¦ ¼þµ¢¼þµ¢ ½ä¾î¼­ º¼À» ºÒ·è°Å¸®¸ç ¶Ç °ö¹è±â µÎ ÀÜÀ» ºÎ¾î¶ó ÇÏ¿´´Ù. - -Ä¡»ïÀº ÀǾÆÇÑ µíÀÌ ±è ÷Áö¸¦ º¸¸ç, ¡°¿©º¸°Ô ¶Ç º×´Ù´Ï, ¹ú½á ¿ì¸®°¡ ³Ë Àܾ¿ ¸Ô¾ú³×, µ·ÀÌ »ç½Ê ÀüÀϼ¼.¡±¶ó°í ÁÖÀǽÃÄ×´Ù. - -¡°¾Æµû À̳ð¾Æ, »ç½Ê ÀüÀÌ ±×¸® ²ûÂïÇϳÄ. ¿À´Ã ³»°¡ µ·À» ¸· ¹ú¾ú¾î. Âü ¿À´Ã ¿î¼ö°¡ ÁÁ¾Ò´À´Ï.¡± - -¡°±×·¡ ¾ó¸¶¸¦ ¹ú¾ú´Ü ¸»Àΰ¡?¡± - -¡°»ï½Ê ¿øÀ» ¹ú¾ú¾î, »ï½Ê ¿øÀ»! ÀÌ·± Á¨Àå¸ÂÀ» ¼úÀ» ¿Ö ¾ÈºÎ¾î¡¦¡¦±¦Âú´Ù ±¦Âú´Ù, ¸· ¸Ô¾îµµ »ó°üÀÌ ¾ø¾î. ¿À´Ã µ· »ê´õ¹Ì°°ÀÌ ¹ú¾ú´Âµ¥.¡± - -¡°¾î, ÀÌ »ç¶÷ ÃëÇß±º, ±×¸¸µÎ¼¼.¡± - -¡°À̳ð¾Æ, ÀÌ°É ¸Ô°í ÃëÇÒ ³»³Ä, ¾î¼­ ´õ ¸Ô¾î.¡±ÇÏ°í´Â Ä¡»ïÀÇ ±Í¸¦ Àâ¾Æä¸ç ÃëÇÑ ÀÌ´Â ºÎ¸£Â¢¾ú´Ù. ±×¸®°í ¼úÀ» º×´Â ¿­ ´Ù¼¸ »ì µÊÁ÷ÇÑ Áß´ë°¡¸®¿¡°Ô·Î ´Þ·Áµé¸ç, ¡°À̳ð, ¿À¶óÁú ³ð, ¿Ö ¼úÀ» º×Áö ¾Ê¾î.¡±¶ó°í ¾ß´ÜÀ» ÃÆ´Ù. Áß´ë°¡¸®´Â È÷È÷ ¿ô°í Ä¡»ïÀ» º¸¸ç ¹®ÀÇÇÏ´Â µíÀÌ ´«ÁþÀ» ÇÏ¿´´Ù. ÁÖÁ¤²ÛÀÌ ´«Ä¡¸¦ ¾Ë¾Æº¸°í È­¸¦ ¹ö·°³»¸ç, ¡°¿¡¹Ì¸¦ ºÙÀ» ÀÌ ¿À¶óÁú ³ðµé °°À¸´Ï, À̳𠳻°¡ µ·ÀÌ ¾øÀ» ÁÙ ¾Ë°í.¡±ÇÏÀÚ¸¶ÀÚ Ç㸮ÃãÀ» ÈÉÄ©ÈÉÄ© ÇÏ´õ´Ï ÀÏ ¿øÂ¥¸® ÇÑ ÀåÀ» ²¨³»¾î Áß´ë°¡¸® ¾Õ¿¡ ÆÞ½ Áý¾î´øÁ³´Ù. ±× »çÇ°¿¡ ¸î Ǭ ÀºÀüÀÌ À߱׶û ÇÏ¸ç ¶³¾îÁø´Ù. - -¡°¿©º¸°Ô µ· ¶³¾îÁ³³×, ¿Ö µ·À» ¸· ³¢¾ñ³ª.¡± ÀÌ·± ¸»À» Çϸç ÀϺ¯ µ·À» Áݴ´Ù. ±è ÷Áö´Â ÃëÇÑ Áß¿¡µµ µ·ÀÇ °Åó¸¦ »ìÇÇ´Â µíÀÌ ´«À» Å©°Ô ¶°¼­ ¶¥À» ³»·Á´Ùº¸´Ù°¡ ºÒ½Ã¿¡ Á¦ ÇÏ´Â ÁþÀÌ ³Ê¹« ´õ·´´Ù´Â µíÀÌ °í°³¸¦ ¼Ò½º¶óÄ¡ÀÚ ´õ¿í ¼ºÀ» ³»¸ç, ¡°ºÁ¶ó ºÁ! ÀÌ ´õ·¯¿î ³ðµé¾Æ, ³»°¡ µ·ÀÌ ¾ø³ª, ´Ù¸®»Á´Ù±¸¸¦ ²ª¾î³õÀ» ³ðµé °°À¸´Ï.¡±ÇÏ°í Ä¡»ïÀÇ ÁÖ¿öÁÖ´Â µ·À» ¹Þ¾Æ, ¡°ÀÌ ¿ø¼ö¿§ µ·! ÀÌ À°½Ã¸¦ ÇÒ µ·!¡±Çϸ鼭, Ç®¸ÅÁúÀ» Ä£´Ù. º®¿¡ ¸Â¾Æ ¶³¾îÁø µ·Àº ´Ù½Ã ¼ú ²úÀÌ´Â ¾çǬ¿¡ ¶³¾îÁö¸ç Á¤´çÇÑ ¸Å¸¦ ¸Â´Â´Ù´Â µíÀÌ Â¸ÇÏ°í ¿ï¾ú´Ù. - -°ö¹è±â µÎ ÀÜÀº ¶Ç ºÎ¾îÁú °Ü¸¦µµ ¾øÀÌ ¸»·Á°¡°í ¸»¾Ò´Ù. ±è ÷Áö´Â ÀÔ¼ú°ú ¼ö¿°¿¡ ºÙÀº ¼úÀ» »¡¾ÆµéÀÌ°í ³ª¼­ ¸Å¿ì ¸¸Á·ÇÑ µíÀÌ ±× ¼ÖÀÙ ¼ÛÀÌ ¼ö¿°À» ¾²´ÙµëÀ¸¸ç, ¡°¶Ç ºÎ¾î, ¶Ç ºÎ¾î.¡±¶ó°í, ¿ÜÃÆ´Ù. - -¶Ç ÇÑ ÀÜ ¸Ô°í ³ª¼­ ±è ÷Áö´Â Ä¡»ïÀÇ ¾î±ú¸¦ Ä¡¸ç ¹®µæ ²¬²¬ ¿ô´Â´Ù. ±× ¿ôÀ½ ¼Ò¸®°¡ ¾î¶»°Ô ÄÇ´ÂÁö ¼úÁý¿¡ ÀÖ´Â ÀÌÀÇ ´«Àº ¸ðµÎ ±è ÷Áö¿¡°Ô·Î ¸ô¸®¾ú´Ù. ¿ô´Â ÀÌ´Â ´õ¿í ¿ôÀ¸¸ç, ¡°¿©º¸°Ô Ä¡»ïÀÌ, ³» ¿ì½º¿î À̾߱â Çϳª ÇÒ±î. ¿À´Ã ¼ÕÀ» Å°í Á¤°ÅÀå¿¡±îÁö °¡Áö ¾Ê¾Ò°Ú³ª.¡± - -¡°±×·¡¼­.¡± - -¡°°¬´Ù°¡ ±×Àú ¿À±â°¡ ¾È µÆµ¥±×·Á. ±×·¡ ÀüÂ÷ Á¤·ùÀå¿¡¼­ ¾î¸§¾î¸§ÇÏ¸ç ¼Õ´Ô Çϳª¸¦ ÅÂ¿ï ±Ã¸®¸¦ ÇÏÁö ¾Ê¾Ò³ª. °Å±â ¸¶Ä§ ¸¶³ª´ÔÀ̽ÅÁö ¿©Çлý´ÔÀ̽ÅÁö - ¿ä»õ¾ß ¾îµð ³í´Ù´Ï¿Í ¾Æ°¡¾¾¸¦ ±¸º°ÇÒ ¼ö°¡ ÀÖ´ø°¡ - <¸ÁÅä>¸¦ µÎ¸£°í ºñ¸¦ ¸Â°í ¼­ ÀÖ°ÚÁö. ½½±Ù½½±Ù °¡±îÀÌ °¡¼­ Àη°ŠŸ½Ã¶ø½Ã¿ä ÇÏ°í ¼Õ°¡¹æÀ» ¹ÞÀ¸·ª´Ï±î ³» ¼ÕÀ» Ź »Ñ¸®Ä¡°í È´ µ¹¾Æ¼­´õ´Ï¸¸ <¿Ö ³²À» ÀÌ·¸°Ô ±ÍÂú°Ô ±¼¾î!> ±× ¼Ò¸®¾ß¸»·Î ²Ò²¿¸® ¼Ò¸®Áö, ÇãÇã!¡± - -±è ÷Áö´Â ±³¹¦ÇÏ°Ôµµ Á¤¸» ²Ò²¿¸® °°Àº ¼Ò¸®¸¦ ³»¾ú´Ù. ¸ðµç »ç¶÷Àº ÀϽÿ¡ ¿ô¾ú´Ù. - -¡°ºô¾î¸ÔÀ» ±ïÀïÀÌ °°Àº ³â, ´©°¡ Àú¸¦ ¾î¼³ª, <¿Ö ³²À» ±ÍÂú°Ô ±¼¾î!> ¾îÀ̱¸ ¼Ò¸®°¡ ó½Åµµ ¾øÁö, ÇãÇã.¡± - -¿ôÀ½ ¼Ò¸®µéÀº ³ô¾ÆÁ³´Ù. ±×·¯³ª ±× ¿ôÀ½ ¼Ò¸®µéÀÌ »ç¶óÁö±â Àü¿¡ ±è ÷Áö´Â ÈǽÈǽ ¿ï±â ½ÃÀÛÇÏ¿´´Ù. - -Ä¡»ïÀº ¾îÀ̾øÀÌ ÁÖÁ¤¹ðÀ̸¦ ¹Ù¶óº¸¸ç, ¡°±Ý¹æ ¿ô°í Áö¶öÀ» ÇÏ´õ´Ï ¿ì´Â °Ç ¶Ç ¹«½¼ ÀÏÀΰ¡.¡± - -±è ÷Áö´Â ¿¬ÇØ ÄÚ¸¦ µé¿©¸¶½Ã¸ç, ¡°¿ì¸® ¸¶´©¶ó°¡ Á×¾ú´Ù³×.¡± - -¡°¹¹, ¸¶´©¶ó°¡ Á×´Ù´Ï, ¾ðÁ¦?¡± - -¡°À̳ð¾Æ ¾ðÁ¦´Â. ¿À´ÃÀÌÁö.¡± - -¡°¿¢±â ¹ÌÄ£ ³ð, °ÅÁþ¸» ¸»¾Æ.¡± - -¡°°ÅÁþ¸»Àº ¿Ö, Âü¸»·Î Á×¾ú¾î, Âü¸»·Î... ¸¶´©¶ó ½Ãü¸¦ Áý¾î »µµéÃijõ°í ³»°¡ ¼úÀ» ¸Ô´Ù´Ï, ³»°¡ Á×ÀÏ ³ðÀ̾ß, Á×ÀÏ ³ðÀ̾ß.¡±ÇÏ°í ±è ÷Áö´Â ¾û¾û ¼Ò¸®¸¦ ³»¾î ¿î´Ù. - -Ä¡»ïÀº ÈïÀÌ Á¶±Ý ±ú¾îÁö´Â ¾ó±¼·Î, ¡°¿ø ÀÌ »ç¶÷ÀÌ, Âü¸»À» Çϳª °ÅÁþ¸»À» Çϳª. ±×·¯¸é ÁýÀ¸·Î °¡¼¼, °¡.¡±ÇÏ°í ¿ì´Â ÀÌÀÇ ÆÈÀ» Àâ¾Æ´ç±â¾ú´Ù. - -Ä¡»ïÀÇ ²ô´Â ¼ÕÀ» »Ñ¸®Ä¡´õ´Ï ±è ÷Áö´Â ´«¹°ÀÌ ±Û½é±Û½éÇÑ ´«À¸·Î ½Ì±×·¹ ¿ô´Â´Ù. - -¡°Á×±â´Â ´©°¡ Á×¾î.¡±ÇÏ°í µæÀÇ°¡ ¾ç¾ç. - -¡°Á×±â´Â ¿Ö Á×¾î, »ý¶§°°ÀÌ »ì¾Æ¸¸ ÀÖ´Ü´Ù. ±× ¿À¶óÁú ³âÀÌ ¹äÀ» Á×ÀÌÁö. ÀÎÁ¦ ³ªÇÑÅ× ¼Ó¾Ò´Ù.¡±ÇÏ°í ¾î¸°¾Ö ¸ð¾çÀ¸·Î ¼Õ»ÁÀ» Ä¡¸ç ¿ô´Â´Ù. - -¡°ÀÌ »ç¶÷ÀÌ Á¤¸» ¹ÌÃÆ´Ü ¸»Àΰ¡. ³ªµµ ¾ÆÁÖ¸Õ³×°¡ ¾Î´Â´Ü ¸»Àº µé¾ú´Âµ¥.¡±ÇÏ°í, Ä¡»ïÀ̵µ ¾î´À ºÒ¾ÈÀ» ´À³¢´Â µíÀÌ ±è ÷Áö¿¡°Ô ¶Ç µ¹¾Æ°¡¶ó°í ±ÇÇÏ¿´´Ù. - -¡°¾È Á×¾ú¾î, ¾È Á×¾ú´ëµµ±×·¡.¡± - -±è ÷Áö´Â ȱÁõÀ» ³»¸ç È®½ÅÀÖ°Ô ¼Ò¸®¸¦ Áú·¶À¸µÇ ±× ¼Ò¸®¿£ ¾È Á×Àº °ÍÀ» ¹ÏÀ¸·Á°í ¾Ö¾²´Â °¡¶ôÀÌ ÀÖ¾ú´Ù. ±â¾îÀÌ ÀÏ ¿ø¾îÄ¡¸¦ ä¿ö¼­ °ö¹è±â ÇÑ Àܾ¿ ´õ ¸Ô°í ³ª¿Ô´Ù. ±ÄÀº ºñ´Â ÀÇ¿¬È÷ ÃßÀûÃßÀû ³»¸°´Ù. - -±è ÷Áö´Â ÃëÁß¿¡µµ ¼³··ÅÁÀ» »ç°¡Áö°í Áý¿¡ ´Ù´Þ¾Ò´Ù. ÁýÀ̶ó Çصµ ¹°·Ð ¼ÂÁýÀÌ¿ä, ¶Ç Áý Àüü¸¦ ¼¼µç °Ô ¾Æ´Ï¶ó ¾È°ú ¶Ò¶³¾îÁø Çà¶û¹æ ÇÑ °£À» ºô·Á µç °ÍÀε¥ ¹°À» ±æ¾î´ë°í ÇÑ ´Þ¿¡ ÀÏ ¿ø¾¿ ³»´Â ÅÍÀÌ´Ù. ¸¸ÀÏ ±è ÷Áö°¡ Áֱ⸦ ¶ìÁö ¾Ê¾Ò´øµé ÇÑ ¹ßÀ» ´ë¹®¿¡ µé¿©³õ¾ÒÀ» Á¦ ±×°÷À» Áö¹èÇÏ´Â ¹«½Ã¹«½ÃÇÑ Á¤Àû(ð¡îÖ) - Æødz¿ì°¡ Áö³ª°£ µÚÀÇ ¹Ù´Ù °°Àº Á¤Àû¿¡ ´Ù¸®°¡ ¶³·ÈÀ¸¸®¶ó. - -Äð·è°Å¸®´Â ±âħ ¼Ò¸®µµ µéÀ» ¼ö ¾ø´Ù. ±×¸£··°Å¸®´Â ¼û¼Ò¸®Á¶Â÷ µéÀ» ¼ö ¾ø´Ù. ´Ù¸¸ ÀÌ ¹«´ý°°Àº ħ¹¬À» ±ú¶ß¸®´Â - ±ú¶ß¸°´Ù´À´Ïº¸´Ù ÇÑÃþ ´õ ħ¹¬À» ±í°Ô ÇÏ°í ºÒ±æÇÏ°Ô ÇÏ´Â ºýºýÇÏ´Â ±×À¹ÇÑ ¼Ò¸®, ¾î¸°¾ÖÀÇ Á¥ ºü´Â ¼Ò¸®°¡ ³¯ »ÓÀÌ´Ù. ¸¸ÀÏ Ã»°¢(ôéÊÆ)ÀÌ ¿¹¹ÎÇÑ ÀÌ °°À¸¸é ±× ºýºý ¼Ò¸®´Â »¡ µû¸§ÀÌ¿ä, ²Ü¶±²Ü¶± ÇÏ°í Á¥ ³Ñ¾î°¡´Â ¼Ò¸®°¡ ¾øÀ¸´Ï ºó Á¥À» ºþ´Ù´Â °Íµµ ÁüÀÛÇÒ´ÂÁö ¸ð¸£¸®¶ó. - -ȤÀº ±è ÷Áöµµ ÀÌ ºÒ±æÇÑ Ä§¹¬À» ÁüÀÛÇß´ÂÁöµµ ¸ð¸¥´Ù. ±×·¸Áö ¾ÊÀ¸¸é ´ë¹®¿¡ µé¾î¼­ÀÚ¸¶ÀÚ Àü¿¡ ¾øÀÌ, ¡°ÀÌ ³­Àå ¸ÂÀ» ³â, ³²ÆíÀÌ µé¾î¿À´Âµ¥ ³ª¿Íº¸Áöµµ ¾Ê¾Æ, ÀÌ ¿À¶óÁú ³â.¡±À̶ó°í °íÇÔÀ» Ä£ °Ô ¼ö»óÇÏ´Ù. ÀÌ °íÇÔÀ̾߸»·Î Á¦ ¸öÀ» ¾ö½ÀÇØ¿À´Â ¹«½Ã¹«½ÃÇÑ ÁõÀ» ÂѾƹö¸®·Á´Â ÇãÀ强¼¼(úÈíåá¢á§)ÀÎ ±î´ßÀÌ´Ù. - -ÇÏ¿©°£ ±è ÷Áö´Â ¹æ¹®À» ¿ÐĬ ¿­¾ú´Ù. ±¸¿ªÀ» ³ª°Ô ÇÏ´Â Ãß±â - ¶³¾îÁø »ñÀÚ¸® ¹Ø¿¡¼­ ³ª¿Â ¸ÕÁö³», »¡Áö ¾ÊÀº ±âÀú±Í¿¡¼­ ³ª´Â ¶Ë³»¿Í ¿ÀÁܳ», °¡Áö°¢»ö ¶§°¡ ÄÉÄÉÈ÷ ¾ÉÀº ¿Ê³», º´ÀÎÀÇ ¶¡ ½âÀº ³»°¡ ¼¯ÀÎ Ã߱Ⱑ ¹«µò ±è ÷ÁöÀÇ ÄÚ¸¦ Âñ·¶´Ù. - -¹æ¾È¿¡ µé¾î¼­¸ç ¼³··ÅÁÀ» Çѱ¸¼®¿¡ ³õÀ» »çÀ̵µ ¾øÀÌ ÁÖÁ¤±ºÀº ¸ñûÀ» ÀÖ´Â ´ë·Î ´Ù ³»¾î È£ÅëÀ» ÃÆ´Ù. - -¡°ÀÌ·± ¿À¶óÁú ³â, ÁÖ¾ßÀåõ(ñ¸å¨íþô¹) ´©¿ö¸¸ ÀÖÀ¸¸é Á¦ÀÏÀ̾ß! ³²ÆíÀÌ ¿Íµµ ÀϾÁö¸¦ ¸øÇØ.¡±¶ó´Â ¼Ò¸®¿Í ÇÔ²² ¹ß±æ·Î ´©¿î ÀÌÀÇ ´Ù¸®¸¦ ¸÷½Ã á´Ù. ±×·¯³ª ¹ß±æ¿¡ äÀÌ´Â °Ç »ç¶÷ÀÇ »ìÀÌ ¾Æ´Ï°í ³ª¹«µî°É°ú °°Àº ´À³¦ÀÌ ÀÖ¾ú´Ù. À̶§¿¡ »ª»ª ¼Ò¸®°¡ ÀÀ¾Æ ¼Ò¸®·Î º¯ÇÏ¿´´Ù. °³¶ËÀÌ°¡ ¹°¾ú´ø Á¥À» »©¾î³õ°í ¿î´Ù. ¿î´ëµµ ¿Â ¾ó±¼À» Âô±×·Á ºÙ¿©¼­, ¿î´Ù´Â Ç¥Á¤À» ÇÒ »ÓÀÌ´Ù. ÀÀ¾Æ ¼Ò¸®µµ ÀÔ¿¡¼­ ³ª´Â °Ô ¾Æ´Ï°í ¸¶Ä¡ ¹î¼Ó¿¡¼­ ³ª´Â µíÇÏ¿´´Ù. ¿ï´Ù°¡ ¿ï´Ù°¡ ¸ñµµ Àá°å°í ¶Ç ¿ï ±â¿îÁ¶Â÷ ½ÃÁøÇÑ °Í °°´Ù. - -¹ß·Î Â÷µµ ±× º¸¶÷ÀÌ ¾ø´Â °É º¸ÀÚ ³²ÆíÀº ¾Æ³»ÀÇ ¸Ó¸®¸ÃÀ¸·Î ´Þ·Áµé¾î ±×¾ß¸»·Î ±îÄ¡Áý °°Àº ȯÀÚÀÇ ¸Ó¸®¸¦ ²¨µé¾î Èçµé¸ç, ¡°ÀÌ ³â¾Æ, ¸»À» ÇØ, ¸»À»! ÀÔÀÌ ºÙ¾ú¾î, ÀÌ ¿À¶óÁú ³â!¡± - -¡°¡¦¡± - -¡°À¸ÀÀ, ÀÌ°Í ºÁ, ¾Æ¹« ¸»ÀÌ ¾ø³×.¡± -¡°¡¦¡± - -¡°À̳â¾Æ, Á×¾ú´Ü ¸»À̳Ä, ¿Ö ¸»ÀÌ ¾ø¾î.¡± - -¡°¡¦¡± - -¡°À¸ÀÀ. ¶Ç ´ë´äÀÌ ¾ø³×, Á¤¸» Á×¾ú³ª¹öÀÌ.¡± - -ÀÌ·¯´Ù°¡ ´©¿î ÀÌÀÇ Èò âÀ» µ¤Àº, À§·Î Ä¡¶á ´«À» ¾Ë¾Æº¸ÀÚ¸¶ÀÚ, ¡°ÀÌ ´«±ò! ÀÌ ´«±ò! ¿Ö ³ª¸¦ ¹Ù¶óº¸Áö ¸øÇÏ°í õÁ¤¸¸ º¸´À³Ä, ÀÀ.¡±ÇÏ´Â ¸» ³¡¿£ ¸ñÀÌ ¸Þ¾ú´Ù. ±×·¯ÀÚ »ê »ç¶÷ÀÇ ´«¿¡¼­ ¶³¾îÁø ´ßÀÇ ¶Ë °°Àº ´«¹°ÀÌ Á×Àº ÀÌÀÇ »»»»ÇÑ ¾ó±¼À» ¾î·î¾î·î Àû½Ã¾ú´Ù. ¹®µæ ±è ÷Áö´Â ¹ÌÄ¥ µíÀÌ Á¦ ¾ó±¼À» Á×Àº ÀÌÀÇ ¾ó±¼¿¡ ÇÑÅ× ºñºñ´ë¸ç Áß¾ó°Å·È´Ù. - -¡°¼³··ÅÁÀ» »ç´Ù³õ¾Ò´Âµ¥ ¿Ö ¸ÔÁö¸¦ ¸øÇÏ´Ï, ¿Ö ¸ÔÁö¸¦ ¸øÇÏ´Ï... ±«»óÇÏ°Ôµµ ¿À´ÃÀº! ¿î¼ö°¡ ÁÁ´õ´Ï¸¸... ¡± diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt deleted file mode 100644 index e10a3d46..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt +++ /dev/null @@ -1,175 +0,0 @@ -This file was derived from -http://www.ibrary.co.kr/index.php/book-list/short-stories/34-short-stories-korean/150-2008-04-20-13-22-32 --------- -[소개] -ìž”ì¸í•œ ìš´ëª…ì€ ì´ë ‡ê²Œ ì¸ê°„ì„ ì¡°ë¡±í•˜ê³¤ 한다. 우리가 í‰ì†Œ ë§ˆìŒ ì† ì € ê¹Šì€ ê³³ì— ì›€ì¼œì¥ê³  ìžˆë˜ ìžì¡´ì‹¬ 따위는 ì–´ëŠ í•œ 순간 전혀 무용지물ì´ëž€ ê²ƒì´ ë“œëŸ¬ë‚˜ê³  만다. 하기야 ì´ë ‡ê²Œ ì‚¶ì˜ í•œ 순간, 눈 깜ì§í•  ìƒˆì— ìš°ë¦¬ë¥¼ 후려 갈기고 지나가는 ê·¸ ì§„ì‹¤ì´ ë¯¸ëž˜ì˜ ì–´ëŠë‚ ì—는 ë˜ ë‚¨ê¹€ì—†ì´ ìš°ë¦¬ 눈 ì•žì— íŽ¼ì³ì§ˆì§€ë„ 모른다. 죽ìŒì„ ì•žë‘” 사람들ì—게는 ìžì‹ ì˜ 삶 ì „ì²´ê°€ í•œ ìˆœê°„ì— ë‹¤ì‹œ ë³´ì¸ë‹¤ëŠ” 그런 ì–˜ê¸°ë„ ìžˆë˜ë°... - -다시 ì½ì–´ë³´ë‹ˆ ë”ì°í•œ ìƒê°ë„ 든다. ì‹ë¯¼ì§€ ì‹œëŒ€ì˜ ì•”ìš¸í•œ 삶, ê·¸ ëˆëˆí•œ 냄새를 피할 수 없다. 21세기를 사는 우리들ì—ê² ê·¸ëŸ° 냄새는 아예 ì¸ì—°ì´ 없는 것처럼 ëŠê»´ì§ˆ ìˆ˜ë„ ìžˆì„ ê²ƒì´ë‹¤. 그러나 과연 그럴까? ì´ëŸ° 냄새를 모르고 í‰ìƒ 사는 ì‚¬ëžŒë„ ìžˆê² ì§€ë§Œ, 전혀 ê´€ë ¨ì´ ì—†ëŠ” ê²ƒì€ ì•„ë‹ ê²ƒì´ë‹¤. 그저 ìš°ì—°ì¼ ë¿ì´ë‹¤. 아내를 박대하는 ê¹€ ì²¨ì§€ì˜ ëª¨ìŠµ... 요새 같으면 ê°„ì´ ë°° 밖으로 튀어나온 남ìžê² ì§€ë§Œ, ê·¸ëž˜ë„ ê·¸ ì• ì •ì€ ë” ì§„í•œ ê²ƒì¼ ìˆ˜ë„ ìžˆë‹¤. - -[ìž‘ê°€ 소개] -현 진 ê±´(玄鎭å¥, 1900-1943) : 소설가. 한국 ì‚¬ì‹¤ì£¼ì˜ ë‹¨íŽ¸ì†Œì„¤ì˜ ê¸°í‹€ì„ ë‹¤ì§„ ìž‘ê°€ì´ë‹¤. ë³¸ê´€ì€ ì—°ì£¼(延州). 아호는 빙허(憑虛). 1920년대 전반기ì—는 ìžì „ì  ìš”ì†Œê°€ ê°•í•œ ê°œì¸ì  ì²´í—˜ì†Œì„¤ì¸ <빈처> <술 권하는 사회>, 성(性)ì˜ ë¬¸ì œì™€ 애정문제를 다룬 <B사ê°ê³¼ 러브레터> <새빨간 웃ìŒ> ë“±ì´ ìžˆìœ¼ë©° 1920년대 중반 ì´í›„ì—는 <피아노> <우편국ì—ì„œ> <불> <ê³ í–¥> 등 세태ì—ì˜ ê´€ì‹¬ê³¼ ì‹ë¯¼ì§€ ìƒí™©í•˜ì˜ 현실ì¸ì‹ì´ ë‘드러진 ìž‘í’ˆì„ ë§Žì´ ë°œí‘œí–ˆë‹¤. <운수 ì¢‹ì€ ë‚ >ë„ ì´ëŸ¬í•œ ê³„ì—´ì— ì†í•˜ëŠ” ìž‘í’ˆì´ë‹¤. 1930년대 ì´í›„ì—는 역사ì˜ì‹ê³¼ 예언주ì˜ì  ë¬¸í•™ê´€ì— ê·¼ê±°í•œ 역사소설 ì¤‘ì‹¬ì˜ <무ì˜íƒ‘> <í‘치ìƒì§€(黑齒常之)> <선화공주> 등 ìž¥íŽ¸ì†Œì„¤ì„ ë°œí‘œí–ˆë‹¤. - -새침하게 í린 í’ˆì´ ëˆˆì´ ì˜¬ 듯하ë”니 ëˆˆì€ ì•„ë‹ˆ 오고 얼다가 만 비가 추ì ì¶”ì  ë‚´ë¦¬ì—ˆë‹¤. - -ì´ë‚ ì´ì•¼ë§ë¡œ ë™ì†Œë¬¸ 안ì—ì„œ ì¸ë ¥ê±°ê¾¼ ë…¸ë¦‡ì„ í•˜ëŠ” ê¹€ 첨지ì—게는 오래간만ì—ë„ ë‹¥ì¹œ 운수 ì¢‹ì€ ë‚ ì´ì—ˆë‹¤. 문안ì—(ê±°ê¸°ë„ ë¬¸ë°–ì€ ì•„ë‹ˆì§€ë§Œ) 들어간답시는 앞집 ë§ˆë‚˜ë‹˜ì„ ì „ì°»ê¸¸ê¹Œì§€ 모셔다 드린 ê²ƒì„ ë¹„ë¡¯ìœ¼ë¡œ 행여나 ì†ë‹˜ì´ 있ì„까 하고 정류장ì—ì„œ 어정어정하며 내리는 사람 하나하나ì—게 ê±°ì˜ ë¹„ëŠ” 듯한 ëˆˆê²°ì„ ë³´ë‚´ê³  있다가 마침내 êµì›ì¸ 듯한 양복장ì´ë¥¼ ë™ê´‘í•™êµ(æ±å…‰å­¸æ ¡)까지 태워다 주기로 ë˜ì—ˆë‹¤. - -ì²«ë²ˆì— ì‚¼ì‹­ ì „, 둘째 ë²ˆì— ì˜¤ì‹­ ì „ - 아침 ëŒ“ë°”ëžŒì— ê·¸ë¦¬ í”치 ì•Šì€ ì¼ì´ì—ˆë‹¤. 그야ë§ë¡œ 재수가 옴붙어서 ê·¼ ì—´í˜ ë™ì•ˆ ëˆ êµ¬ê²½ë„ ëª»í•œ ê¹€ 첨지는 ì‹­ 전짜리 백통화 ì„œ 푼, ë˜ëŠ” 다섯 í‘¼ì´ ì°°ê¹í•˜ê³  ì†ë°”ë‹¥ì— ë–¨ì–´ì§ˆ ì œ ê±°ì˜ ëˆˆë¬¼ì„ í˜ë¦´ ë§Œí¼ ê¸°ë»¤ì—ˆë‹¤. ë”구나 ì´ë‚  ì´ë•Œì— ì´ íŒ”ì‹­ ì „ì´ë¼ëŠ” ëˆì´ ê·¸ì—게 얼마나 유용한지 몰ëžë‹¤. 컬컬한 ëª©ì— ëª¨ì£¼ í•œ ìž”ë„ ì ì‹¤ 수 있거니와 ê·¸ë³´ë‹¤ë„ ì•“ëŠ” ì•„ë‚´ì—게 설ë íƒ• í•œ ê·¸ë¦‡ë„ ì‚¬ë‹¤ì¤„ 수 있ìŒì´ë‹¤. - -ê·¸ì˜ ì•„ë‚´ê°€ 기침으로 쿨럭거리기는 ë²Œì¨ ë‹¬í¬ê°€ 넘었다. ì¡°ë°¥ë„ êµ¶ê¸°ë¥¼ 먹다시피 하는 형편ì´ë‹ˆ 물론 약 í•œ 첩 ì¨ ë³¸ ì¼ì´ 없다. 구태여 쓰려면 못 쓸 ë°”ë„ ì•„ë‹ˆë¡œë˜ ê·¸ëŠ” 병ì´ëž€ 놈ì—게 ì•½ì„ ì£¼ì–´ ë³´ë‚´ë©´ 재미를 붙여서 ìžê¾¸ 온다는 ìžê¸°ì˜ ì‹ ì¡°(ä¿¡æ¢)ì— ì–´ë””ê¹Œì§€ 충실하였다. ë”°ë¼ì„œ ì˜ì‚¬ì—게 ë³´ì¸ ì ì´ 없으니 무슨 병ì¸ì§€ëŠ” ì•Œ 수 ì—†ìœ¼ë˜ ë°˜ë“¯ì´ ëˆ„ì›Œ 가지고, ì¼ì–´ë‚˜ê¸°ëŠ” 새로 ëª¨ë¡œë„ ëª» 눕는걸 ë³´ë©´ 중ì¦ì€ 중ì¦ì¸ 듯. ë³‘ì´ ì´ëŒ€ë„ë¡ ì‹¬í•´ì§€ê¸°ëŠ” ì—´í˜ ì „ì— ì¡°ë°¥ì„ ë¨¹ê³  ì²´í•œ 때문ì´ë‹¤. - -ê·¸ë•Œë„ ê¹€ 첨지가 ì˜¤ëž˜ê°„ë§Œì— ëˆì„ 얻어서 ì¢ìŒ€ í•œ ë˜ì™€ ì‹­ 전짜리 나무 í•œ ë‹¨ì„ ì‚¬ë‹¤ 주었ë”니 ê¹€ ì²¨ì§€ì˜ ë§ì— ì˜ì§€í•˜ë©´ ê·¸ 오ë¼ì§ˆ ë…„ì´ ì²œë°©ì§€ì¶•(天方地軸)으로 ë‚¨ë¹„ì— ëŒ€ê³  ë“였다. 마ìŒì€ 급하고 ë¶ˆê¸¸ì€ ë‹¬ì§€ ì•Šì•„ 채 ìµì§€ë„ ì•Šì€ ê²ƒì„ ê·¸ 오ë¼ì§ˆ ë…„ì´ ìˆŸê°€ë½ì€ 고만ë‘ê³  ì†ìœ¼ë¡œ 움켜서 ë‘ ëº¨ì— ì£¼ë¨¹ë©ì´ ê°™ì€ í˜¹ì´ ë¶ˆê±°ì§€ë„ë¡ ëˆ„ê°€ ë¹¼ì•—ì„ ë“¯ì´ ì²˜ë°•ì§ˆ 하ë”니만 그날 ì €ë…부터 ê°€ìŠ´ì´ ë•…ê¸´ë‹¤, ë°°ê°€ 켕긴다고 ëˆˆì„ í™‰ëœ¨ê³  ì§€ëž„ë³‘ì„ í•˜ì˜€ë‹¤. 그때 ê¹€ 첨지는 열화와 ê°™ì´ ì„±ì„ ë‚´ë©°, - -“ì—ì´, 오ë¼ì§ˆ ë…„, ì¡°ë¡±ë³µì€ í•  수가 없어, 못 먹어 병, 먹어서 병, 어쩌란 ë§ì´ì•¼! 왜 ëˆˆì„ ë°”ë£¨ 뜨지 못해!â€í•˜ê³  ê¹€ 첨지는 앓는 ì´ì˜ ëº¨ì„ í•œ 번 후려갈겼다. 홉뜬 ëˆˆì€ ì¡°ê¸ˆ 바루어졌건만 ì´ìŠ¬ì´ 맺히었다. ê¹€ ì²¨ì§€ì˜ ëˆˆì‹œìš¸ë„ ëœ¨ëˆëœ¨ëˆí•˜ì˜€ë‹¤. - -ì´ í™˜ìžê°€ ê·¸ëŸ¬ê³ ë„ ë¨¹ëŠ” ë°ëŠ” 물리지 않았다. ì‚¬í˜ ì „ë¶€í„° 설ë íƒ• êµ­ë¬¼ì´ ë§ˆì‹œê³  싶다고 ë‚¨íŽ¸ì„ ì¡¸ëžë‹¤. - -“ì´ëŸ° 오ë¼ì§ˆ ë…„! ì¡°ë°¥ë„ ëª» 먹는 ë…„ì´ ì„¤ë íƒ•ì€, ë˜ ì²˜ë¨¹ê³  ì§€ëž„ë³‘ì„ í•˜ê²Œ.â€ë¼ê³ , ì•¼ë‹¨ì„ ì³ë³´ì•˜ê±´ë§Œ, 못 사주는 마ìŒì´ ì‹œì›ì¹˜ëŠ” 않았다. - -ì¸ì œ 설ë íƒ•ì„ 사줄 ìˆ˜ë„ ìžˆë‹¤. 앓는 어미 ê³ì—ì„œ 배고파 보채는 개똥ì´(세 살먹ì´)ì—게 ì£½ì„ ì‚¬ì¤„ ìˆ˜ë„ ìžˆë‹¤. - 팔십 ì „ì„ ì†ì— 쥔 ê¹€ ì²¨ì§€ì˜ ë§ˆìŒì€ 푼푼하였다. 그러나 ê·¸ì˜ í–‰ìš´ì€ ê·¸ê±¸ë¡œ 그치지 않았다. 땀과 ë¹—ë¬¼ì´ ì„žì—¬ í르는 목ëœë¯¸ë¥¼ 기름주머니가 다 ëœ ì™œëª© 수건으로 닦으며, ê·¸ í•™êµ ë¬¸ì„ ëŒì•„나올 때였다. ë’¤ì—ì„œ <ì¸ë ¥ê±°!> 하고 부르는 소리가 난다. ìžê¸°ë¥¼ 불러 멈춘 ì‚¬ëžŒì´ ê·¸ í•™êµ í•™ìƒì¸ 줄 ê¹€ 첨지는 í•œ 번 ë³´ê³  ì§ìž‘í•  수 있었다. ê·¸ í•™ìƒì€ 다짜고짜로, “남대문 정거장까지 얼마요?â€ë¼ê³ , 물었다. - -ì•„ë§ˆë„ ê·¸ í•™êµ ê¸°ìˆ™ì‚¬ì— ìžˆëŠ” ì´ë¡œ ë™ê¸°ë°©í•™ì„ ì´ìš©í•˜ì—¬ 귀향하려 함ì´ë¦¬ë¼. 오늘 가기로 ìž‘ì •ì€ í•˜ì˜€ê±´ë§Œ 비는 오고, ì§ì€ 있고 í•´ì„œ 어찌할 줄 모르다가 마침 ê¹€ 첨지를 ë³´ê³  뛰어나왔ìŒì´ë¦¬ë¼. 그렇지 않으면 왜 구ë‘를 채 신지 못해서 질질 ëŒê³ , ë¹„ë¡ <고구ë¼> ì–‘ë³µì¼ë§ì • 노박ì´ë¡œ 비를 맞으며 김첨지를 뒤쫓아 나왔으랴. - -“남대문 정거장까지 ë§ì”€ìž…니까.â€í•˜ê³  ê¹€ 첨지는 ìž ê¹ ì£¼ì €í•˜ì˜€ë‹¤. 그는 ì´ ìš°ì¤‘ì— ìš°ìž¥ë„ ì—†ì´ ê·¸ 먼 ê³³ì„ ì² ë²…ê±°ë¦¬ê³  가기가 ì‹«ì—ˆìŒì¼ê¹Œ? ì²˜ìŒ ê²ƒ, 둘째 것으로 그만 만족하였ìŒì¼ê¹Œ? 아니다, ê²°ì½” 아니다. ì´ìƒí•˜ê²Œë„ 꼬리를 맞물고 ë¤ë¹„는 ì´ í–‰ìš´ ì•žì— ì¡°ê¸ˆ ê²ì´ 났ìŒì´ë‹¤.그리고 ì§‘ì„ ë‚˜ì˜¬ ì œ ì•„ë‚´ì˜ ë¶€íƒì´ 마ìŒì— 켕기었다. - 앞집 마나님한테서 부르러 ì™”ì„ ì œ 병ì¸ì€ ê·¸ 뼈만 ë‚¨ì€ ì–¼êµ´ì— ìœ ì¼ì˜ ìƒë¬¼ ê°™ì€ ìœ ë‹¬ë¦¬ í¬ê³  움í­í•œ ëˆˆì— ì• ê±¸í•˜ëŠ” ë¹›ì„ ë ìš°ë©°, â€œì˜¤ëŠ˜ì€ ë‚˜ê°€ì§€ ë§ì•„ìš”. 제발 ë•ë¶„ì— ì§‘ì— ë¶™ì–´ìžˆì–´ìš”. ë‚´ê°€ ì´ë ‡ê²Œ 아픈ë°â€¦â€¦â€ë¼ê³ , 모기 ì†Œë¦¬ê°™ì´ ì¤‘ì–¼ê±°ë¦¬ê³  ìˆ¨ì„ ê±¸ê·¸ë ê±¸ê·¸ë  하였다. - -ê·¸ë•Œì— ê¹€ 첨지는 대수롭지 ì•Šì€ ë“¯ì´, “압다, ì  ìž¥ë§žì„ ë…„, 별 ë¹Œì–´ë¨¹ì„ ì†Œë¦¬ë¥¼ 다 하네. 맞붙들고 앉았으면 누가 먹여 살릴 줄 알아.â€í•˜ê³ , í›Œì© ë›°ì–´ë‚˜ì˜¤ë ¤ë‹ˆê¹Œ 환ìžëŠ” ë¶™ìž¡ì„ ë“¯ì´ íŒ”ì„ ë‚´ì €ìœ¼ë©°, “나가지 ë§ë¼ë„ 그래, 그러면 ì¼ì°Œê¸° 들어와요.â€í•˜ê³ , ëª©ë©”ì¸ ì†Œë¦¬ê°€ 뒤를 ë”°ëžë‹¤. - -정거장까지 가잔 ë§ì„ ë“¤ì€ ìˆœê°„ì— ê²½ë ¨ì ìœ¼ë¡œ 떠는 ì†, 유달리 í¼ì§í•œ 눈, 울 듯한 ì•„ë‚´ì˜ ì–¼êµ´ì´ ê¹€ ì²¨ì§€ì˜ ëˆˆì•žì— ì–´ë¥¸ì–´ë¥¸í•˜ì˜€ë‹¤. “그래 남대문 정거장까지 얼마란 ë§ì´ìš”?â€í•˜ê³  í•™ìƒì€ 초조한 ë“¯ì´ ì¸ë ¥ê±°ê¾¼ì˜ ì–¼êµ´ì„ ë°”ë¼ë³´ë©° 혼잣ë§ê°™ì´, “ì¸ì²œ 차가 ì—´ í•œ ì ì— 있고, ê·¸ 다ìŒì—는 새로 ë‘ ì ì´ë“ ê°€.â€ë¼ê³ , 중얼거린다. - -â€œì¼ ì› ì˜¤ì‹­ 전만 ì¤ì‹œìš”.â€ ì´ ë§ì´ ì €ë„ ëª¨ë¥¼ 사ì´ì— 불쑥 ê¹€ ì²¨ì§€ì˜ ìž…ì—ì„œ 떨어졌다. ì œ 입으로 ë¶€ë¥´ê³ ë„ ìŠ¤ìŠ¤ë¡œ ê·¸ ì—„ì²­ë‚œ ëˆ ì•¡ìˆ˜ì— ë†€ëž˜ì—ˆë‹¤. í•œêº¼ë²ˆì— ì´ëŸ° ê¸ˆì•¡ì„ ë¶ˆëŸ¬ë¼ë„ 본 지가 ê·¸ 얼마만ì¸ê°€! ê·¸ëŸ¬ìž ê·¸ ëˆ ë²Œ 용기가 병ìžì— 대한 염려를 사르고 ë§ì•˜ë‹¤. 설마 오늘 ë‚´ë¡œ ì–´ë– ëž´ 싶었다. 무슨 ì¼ì´ 있ë”ë¼ë„ ì œì¼ ì œì´ì˜ í–‰ìš´ì„ ê³±ì¹œ ê²ƒë³´ë‹¤ë„ ì˜¤ížˆë ¤ ê°‘ì ˆì´ ë§Žì€ ì´ í–‰ìš´ì„ ë†“ì¹  수 없다 하였다. - -â€œì¼ ì› ì˜¤ì‹­ ì „ì€ ë„ˆë¬´ 과한ë°.†ì´ëŸ° ë§ì„ 하며 í•™ìƒì€ 고개를 기웃하였다. - -“아니올시다. 잇수로 치면 여기서 거기가 시오리가 넘는답니다. ë˜ ì´ëŸ° 진 ë‚ ì— ì¢€ë” ì£¼ì…”ì•¼ì§€ìš”.â€í•˜ê³  빙글빙글 웃는 ì°¨ë¶€ì˜ ì–¼êµ´ì—는 숨길 수 없는 기ì¨ì´ ë„˜ì³ í˜ë €ë‹¤. - -“그러면 달ë¼ëŠ” 대로 줄 í„°ì´ë‹ˆ 빨리 가요.†관대한 어린 ì†ë‹˜ì€ 그런 ë§ì„ 남기고 ì´ì´ížˆ ì˜·ë„ ìž…ê³  ì§ë„ 챙기러 ê°ˆ ë°ë¡œ 갔다. - -ê·¸ í•™ìƒì„ 태우고 나선 ê¹€ ì²¨ì§€ì˜ ë‹¤ë¦¬ëŠ” ì´ìƒí•˜ê²Œ ê±°ë¿í•˜ì˜€ë‹¤. 달ìŒì§ˆì„ 한다ëŠë‹ˆë³´ë‹¤ ê±°ì˜ ë‚˜ëŠ” 듯하였다. ë°”í€´ë„ ì–´ë–»ê²Œ ì†ížˆ ë„는지 군다ëŠë‹ˆë³´ë‹¤ 마치 ì–¼ìŒì„ 지ì³ë‚˜ê°€ëŠ” <스케ì´íŠ¸> 모양으로 미ë„러져 가는 듯하였다. ì–¼ì€ ë•…ì— ë¹„ê°€ ë‚´ë ¤ 미ë„ëŸ½ê¸°ë„ í•˜ì˜€ì§€ë§Œ. - -ì´ìœ½ê³  ë„는 ì´ì˜ 다리는 무거워졌다. ìžê¸° 집 ê°€ê¹Œì´ ë‹¤ë‹¤ë¥¸ 까닭ì´ë‹¤. 새삼스러운 염려가 ê·¸ì˜ ê°€ìŠ´ì„ ëˆŒë €ë‹¤. <ì˜¤ëŠ˜ì€ ë‚˜ê°€ì§€ ë§ì•„ìš”. ë‚´ê°€ ì´ë ‡ê²Œ 아픈ë°!> ì´ëŸ° ë§ì´ 잉잉 ê·¸ì˜ ê·€ì— ìš¸ë ¸ë‹¤. 그리고 병ìžì˜ 움쑥 들어간 ëˆˆì´ ì›ë§í•˜ëŠ” ë“¯ì´ ìžê¸°ë¥¼ 노리는 듯하였다. ê·¸ëŸ¬ìž ì—‰ì—‰í•˜ê³  우는 개똥ì´ì˜ ê³¡ì„±ì„ ë“¤ì€ ë“¯ì‹¶ë‹¤. 딸국딸국 하고 숨 모으는 ì†Œë¦¬ë„ ë‚˜ëŠ” 듯싶다.“왜 ì´ë¦¬ìš°, 기차 놓치겠구먼.â€í•˜ê³  탄 ì´ì˜ 초조한 부르짖ìŒì´ 간신히 ê·¸ì˜ ê·€ì— ë“¤ì–´ì™”ë‹¤. 언뜻 깨달으니 ê¹€ 첨지는 ì¸ë ¥ê±°ë¥¼ 쥔 채 길 한복íŒì— 엉거주춤 멈춰있지 ì•Šì€ê°€. - -“예, 예.â€í•˜ê³ , ê¹€ 첨지는 ë˜ë‹¤ì‹œ 달ìŒì§ˆí•˜ì˜€ë‹¤. ì§‘ì´ ì°¨ì°¨ ë©€ì–´ê°ˆìˆ˜ë¡ ê¹€ ì²¨ì§€ì˜ ê±¸ìŒì—는 다시금 ì‹ ì´ ë‚˜ê¸° 시작하였다. 다리를 재게 놀려야만 ì‰´ìƒˆì—†ì´ ìžê¸°ì˜ ë¨¸ë¦¬ì— ë– ì˜¤ë¥´ëŠ” 모든 근심과 ê±±ì •ì„ ìžŠì„ ë“¯ì´. - -정거장까지 ëŒì–´ë‹¤ì£¼ê³  ê·¸ ê¹œì§ ë†€ëž€ ì¼ ì› ì˜¤ì‹­ ì „ì„ ì •ë§ ì œ ì†ì— 쥠ì—, ì œ ë§ë§ˆë”°ë‚˜ ì‹­ 리나 ë˜ëŠ” ê¸¸ì„ ë¹„ë¥¼ 맞아 가며 질í½ê±°ë¦¬ê³  온 ìƒê°ì€ 아니하고, 거저나 ì–»ì€ ë“¯ì´ ê³ ë§ˆì™”ë‹¤. 졸부나 ëœ ë“¯ì´ ê¸°ë»¤ë‹¤. ì œìžì‹ ë»˜ë°–ì— ì•ˆë˜ëŠ” 어린 ì†ë‹˜ì—게 몇 번 허리를 굽히며, “안녕히 다녀옵시요.â€ë¼ê³  ê¹ë“¯ì´ 재우쳤다. - -그러나 빈 ì¸ë ¥ê±°ë¥¼ 털털거리며 ì´ ìš°ì¤‘ì— ëŒì•„ê°ˆ ì¼ì´ 꿈밖ì´ì—ˆë‹¤. ë…¸ë™ìœ¼ë¡œ 하여 í른 ë•€ì´ ì‹ì–´ì§€ìž 굶주린 ì°½ìžì—ì„œ, 물 í르는 옷ì—ì„œ 어슬어슬 한기가 솟아나기 비롯하매 ì¼ ì› ì˜¤ì‹­ ì „ì´ëž€ ëˆì´ 얼마나 괜찮고 괴로운 ê²ƒì¸ ì¤„ 절절히 ëŠë¼ì—ˆë‹¤. ì •ê±°ìž¥ì„ ë– ë‚˜ëŠ” ê·¸ì˜ ë°œê¸¸ì€ íž˜ 하나 없었다. ì˜¨ëª¸ì´ ì˜¹ì†¡ê·¸ë ¤ì§€ë©° 당장 ê·¸ ìžë¦¬ì— ì—Žì–´ì ¸ 못 ì¼ì–´ë‚  것 같았다. - -â€œì  ìž¥ë§žì„ ê²ƒ! ì´ ë¹„ë¥¼ 맞으며 빈 ì¸ë ¥ê±°ë¥¼ 털털거리고 ëŒì•„를 ê°„ë‹´. ì´ëŸ° 빌어먹ì„, ì œ 할미를 ë¶™ì„ ë¹„ê°€ 왜 ë‚¨ì˜ ìƒíŒì„ 딱딱 때려!†- -그는 몹시 홧ì¦ì„ ë‚´ë©° 누구ì—게 반항ì´ë‚˜ 하는 ë“¯ì´ ê²Œê±¸ê±°ë ¸ë‹¤. 그럴 즈ìŒì— ê·¸ì˜ ë¨¸ë¦¬ì—” ë˜ ìƒˆë¡œìš´ ê´‘ëª…ì´ ë¹„ì³¤ë‚˜ë‹ˆ ê·¸ê²ƒì€ <ì´ëŸ¬êµ¬ ê°ˆ 게 ì•„ë‹ˆë¼ ì´ ê·¼ì²˜ë¥¼ 빙빙 ëŒë©° ì°¨ 오기를 기다리면 ë˜ ì†ë‹˜ì„ 태우게 ë ëŠ”ì§€ë„ ëª°ë¼>란 ìƒê°ì´ì—ˆë‹¤. 오늘 운수가 ê´´ìƒí•˜ê²Œë„ 좋으니까 그런 ìš”í–‰ì´ ë˜í•œë²ˆ 없으리ë¼ê³  누가 ë³´ì¦í•˜ëž´. 꼬리를 굴리는 í–‰ìš´ì´ ê¼­ ìžê¸°ë¥¼ 기다리고 있다고 내기를 í•´ë„ ì¢‹ì„ ë§Œí•œ 믿ìŒì„ 얻게 ë˜ì—ˆë‹¤. 그렇다고 정거장 ì¸ë ¥ê±°ê¾¼ì˜ ë“±ì‚´ì´ ë¬´ì„œìš°ë‹ˆ 정거장 ì•žì— ì„°ì„ ìˆ˜ëŠ” 없었다. - -그래 그는 ì´ì „ì—ë„ ì—¬ëŸ¬ 번 해본 ì¼ì´ë¼ 바로 정거장 ì•ž ì „ì°¨ 정류장ì—ì„œ 조금 떨어지게, 사람 다니는 길과 전찻길 í‹ˆì— ì¸ë ¥ê±°ë¥¼ 세워놓고 ìžê¸°ëŠ” ê·¸ 근처를 빙빙 ëŒë©° 형세를 ê´€ë§í•˜ê¸°ë¡œ 하였다. ì–¼ë§ˆë§Œì— ê¸°ì°¨ëŠ” 왔고, 수십 명ì´ë‚˜ ë˜ëŠ” ì†ì´ 정류장으로 ìŸì•„ì ¸ 나왔다. ê·¸ 중ì—ì„œ ì†ë‹˜ì„ 물색하는 ê¹€ ì²¨ì§€ì˜ ëˆˆì—” ì–‘ë¨¸ë¦¬ì— ë’¤ì¶• ë†’ì€ êµ¬ë‘를 ì‹ ê³  <ë§í† >까지 ë‘른 ê¸°ìƒ í‡´ë¬¼ì¸ ë“¯, 난봉 여학ìƒì¸ 듯한 ì—¬íŽ¸ë„¤ì˜ ëª¨ì–‘ì´ ë„었다. 그는 슬근슬근 ê·¸ ì—¬ìžì˜ ê³ìœ¼ë¡œ 다가들었다. - -“아씨, ì¸ë ¥ê±° 아니 타시ëžì‹œìš”?†- -ê·¸ 여학ìƒì¸ì§€ 뭔지가 í•œì°¸ì€ ë§¤ìš° íƒ¯ê°ˆì„ ë¹¼ë©° ìž…ìˆ ì„ ê¼­ 다문 채 ê¹€ 첨지를 ê±°ë“¤ë– ë³´ì§€ë„ ì•Šì•˜ë‹¤. ê¹€ 첨지는 구걸하는 거지나 ë¬´ì—‡ê°™ì´ ì—°í•´ì—°ë°© ê·¸ì˜ ê¸°ìƒ‰ì„ ì‚´í”¼ë©°, “아씨, 정거장 애들보담 아주 싸게 모셔다 드리겠ì니다. ëŒì´ 어디신가요.â€í•˜ê³ , ì¶”ê·¼ì¶”ê·¼í•˜ê²Œë„ ê·¸ ì—¬ìžì˜ 들고 있는 ì¼ë³¸ì‹ 버들고리ì§ì— ì œ ì†ì„ 대었다. - -“왜 ì´ëž˜, 남 귀치않게.†소리를 ë²½ë ¥ê°™ì´ ì§€ë¥´ê³ ëŠ” ëŒì•„선다. ê¹€ 첨지는 ì–´ëžì‹œìš” 하고 물러섰다. - -전차는 왔다. ê¹€ 첨지는 ì›ë§ìŠ¤ëŸ½ê²Œ ì „ì°¨ 타는 ì´ë¥¼ 노리고 있었다. 그러나 ê·¸ì˜ ì˜ˆê°(豫感)ì€ í‹€ë¦¬ì§€ 않았다. 전차가 빡빡하게 ì‚¬ëžŒì„ ì‹£ê³  움ì§ì´ê¸° ì‹œìž‘í•˜ì˜€ì„ ë•Œ 타고 ë‚¨ì€ ì† í•˜ë‚˜ì´ ìžˆì—ˆë‹¤. 굉장하게 í° ê°€ë°©ì„ ë“¤ê³  있는걸 ë³´ë©´ 아마 ë¶ë¹„는 ì°¨ ì•ˆì— ì§ì´ í¬ë‹¤ 하여 차장ì—게 밀려내려온 눈치였다. ê¹€ 첨지는 대어섰다. - -“ì¸ë ¥ê±°ë¥¼ 타시ëžì‹œìš”.†- -í•œë™ì•ˆ 값으로 승강ì´ë¥¼ 하다가 육십 ì „ì— ì¸ì‚¬ë™ê¹Œì§€ 태워다주기로 하였다. ì¸ë ¥ê±°ê°€ 무거워지매 ê·¸ì˜ ëª¸ì€ ì´ìƒí•˜ê²Œë„ 가벼워졌고 그리고 ë˜ ì¸ë ¥ê±°ê°€ 가벼워지니 ëª¸ì€ ë‹¤ì‹œê¸ˆ 무거워졌건만 ì´ë²ˆì—는 마ìŒì¡°ì°¨ 초조해 온다. ì§‘ì˜ ê´‘ê²½ì´ ìžê¾¸ ëˆˆì•žì— ì–´ë¥¸ê±°ë¦¬ì–´ ì¸ì œ ìš”í–‰ì„ ë°”ëž„ ì—¬ìœ ë„ ì—†ì—ˆë‹¤. 나무 등걸ì´ë‚˜ 무엇 같고 ì œ 것 ê°™ì§€ë„ ì•Šì€ ë‹¤ë¦¬ë¥¼ ì—°í•´ 꾸짖으며 갈팡질팡 뛰는 ìˆ˜ë°–ì— ì—†ì—ˆë‹¤. - -ì €ë†ˆì˜ ì¸ë ¥ê±°êµ°ì´ 저렇게 ìˆ ì´ ì·¨í•´ê°€ì§€ê³  ì´ ì§„ ë•…ì— ì–´ì°Œ 가노, ë¼ê³  길 가는 ì‚¬ëžŒì´ ê±±ì •ì„ í•˜ë¦¬ë§Œí¼ ê·¸ì˜ ê±¸ìŒì€ 황급하였다. í리고 비오는 í•˜ëŠ˜ì€ ì–´ë‘ ì¹¨ì¹¨í•˜ê²Œ ë²Œì¨ í™©í˜¼ì— ê°€ê¹Œìš´ 듯하다. ì°½ê²½ì› ì•žê¹Œì§€ 다달아서야 그는 í„±ì— ë‹¿ì€ ìˆ¨ì„ ëŒë¦¬ê³  걸ìŒë„ 늦추잡았다. í•œ ê±¸ìŒ ë‘ ê±¸ìŒ ì§‘ì´ ê°€ê¹Œì™€ì˜¬ìˆ˜ë¡ ê·¸ì˜ ë§ˆìŒì¡°ì°¨ ê´´ìƒí•˜ê²Œ 누그러웠다. ê·¸ëŸ°ë° ì´ ëˆ„ê·¸ëŸ¬ì›€ì€ ì•ˆì‹¬ì—ì„œ 오는 게 아니요, ìžê¸°ë¥¼ ë®ì¹œ 무서운 ë¶ˆí–‰ì„ ë¹ˆí‹ˆì—†ì´ ì•Œê²Œ ë  ë•Œê°€ ë°•ë‘í•œ ê²ƒì„ ë‘려워하는 마ìŒì—ì„œ 오는 것ì´ë‹¤. - -그는 ë¶ˆí–‰ì— ë‹¤ë‹¥ì¹˜ê¸° ì „ ì‹œê°„ì„ ì–¼ë§ˆì¯¤ì´ë¼ë„ 늘리려고 버르ì ê±°ë ¸ë‹¤. 기ì (奇蹟)ì— ê°€ê¹Œìš´ 벌ì´ë¥¼ 하였다는 기ì¨ì„ í•  수 있으면 오래 지니고 싶었다. 그는 ë‘리번ë‘리번 ì‚¬ë©´ì„ ì‚´í”¼ì—ˆë‹¤. ê·¸ ëª¨ì–‘ì€ ë§ˆì¹˜ ìžê¸° 집 - 곧 ë¶ˆí–‰ì„ í–¥í•˜ê³  달려가는 ì œ 다리를 ì œ 힘으로는 ë„저히 어찌할 수 없으니 누구든지 나를 좀 ìž¡ì•„ 다고, 구해 다고 하는 듯하였다. - -그럴 즈ìŒì— 마침 길가 선술집ì—ì„œ ê·¸ì˜ ì¹œêµ¬ 치삼ì´ê°€ 나온다. ê·¸ì˜ ìš°ê¸€ìš°ê¸€ ì‚´ì° ì–¼êµ´ì— ì£¼í™ì´ ë‹ëŠ” 듯, 온 턱과 ëº¨ì„ ì‹œì»¤ë©“ê²Œ êµ¬ë ˆë‚˜ë£»ì´ ë®ì˜€ê±°ëŠ˜, 노르탱탱한 ì–¼êµ´ì´ ë°”ì§ ë§ë¼ì„œ 여기저기 ê³ ëž‘ì´ íŒ¨ê³ , ìˆ˜ì—¼ë„ ìžˆëŒ€ì•¼ 턱밑ì—만 마치 솔잎 송ì´ë¥¼ 거꾸로 ë¶™ì—¬ë†“ì€ ë“¯í•œ ê¹€ ì²¨ì§€ì˜ í’채하고는 기ì´í•œ 대ìƒì„ 짓고 있었다. - -“여보게 ê¹€ 첨지, ìžë„¤ 문안 들어갔다 오는 모양ì¼ì„¸ê·¸ë ¤. ëˆ ë§Žì´ ë²Œì—ˆì„ í…Œë‹ˆ í•œ ìž” 빨리게.†- -뚱뚱보는 ë§ë¼ê¹½ì´ë¥¼ ë³´ë“  ë§¡ì— ë¶€ë¥´ì§–ì—ˆë‹¤. ê·¸ 목소리는 몸짓과 ë”´íŒìœ¼ë¡œ 연하고 싹싹하였다. ê¹€ 첨지는 ì´ ì¹œêµ¬ë¥¼ 만난 게 어떻게 반가운지 몰ëžë‹¤. ìžê¸°ë¥¼ 살려준 ì€ì¸ì´ë‚˜ ë¬´ì—‡ê°™ì´ ê³ ë§™ê¸°ë„ í•˜ì˜€ë‹¤. - -“ìžë„¤ëŠ” ë²Œì¨ í•œìž” í•œ 모양ì¼ì„¸ê·¸ë ¤. ìžë„¤ë„ 오늘 재미가 좋아보ì´.â€í•˜ê³ , ê¹€ 첨지는 ì–¼êµ´ì„ íŽ´ì„œ 웃었다. - -“압다, 재미 안 좋다고 술 못 ë¨¹ì„ ë‚¸ê°€. ê·¸ëŸ°ë° ì—¬ë³´ê²Œ, ìžë„¤ ì™¼ëª¸ì´ ì–´ì§¸ 물ë…ì— ë¹ ì§„ ìƒˆì•™ì¥ ê°™ì€ê°€? ì–´ì„œ ì´ë¦¬ 들어와 ë§ë¦¬ê²Œ.†- -ì„ ìˆ ì§‘ì€ í›ˆí›ˆí•˜ê³  뜨뜻하였다. ì¶”ì–´íƒ•ì„ ë“ì´ëŠ” ì†¥ëšœê»‘ì„ ì—´ ì ë§ˆë‹¤ 뭉게뭉게 떠오르는 í° ê¹€, ì„쇠ì—ì„œ ë»ì§€ì§“ë»ì§€ì§“ 구워지는 너비아니 구ì´ë©° 제육ì´ë©° ê°„ì´ë©° 콩팥ì´ë©° ë¶ì–´ë©° ë¹ˆëŒ€ë–¡â€¦â€¦ì´ ë„ˆì €ë¶„í•˜ê²Œ ëŠ˜ì–´ë†“ì¸ ì•ˆì£¼ íƒìžì— ê¹€ 첨지는 ê°‘ìžê¸° ì†ì´ 쓰려서 견딜 수 없었다. 마ìŒëŒ€ë¡œ í•  ì–‘ì´ë©´ 거기 있는 모든 ë¨¹ìŒ ë¨¹ì´ë¥¼ 모조리 깡그리 ì§‘ì–´ì‚¼ì¼œë„ ì‹œì›ì¹˜ 않았다. í•˜ë˜ ë°°ê³ í”ˆ ì´ëŠ” 위선 분량 ë§Žì€ ë¹ˆëŒ€ë–¡ ë‘ ê°œë¥¼ 쪼ì´ê¸°ë„ 하고 ì¶”ì–´íƒ•ì„ í•œ 그릇 청하였다. - -주린 ì°½ìžëŠ” ìŒì‹ë§›ì„ ë³´ë”니 ë”ìš±ë”ìš± 비어지며 ìžê¾¸ìžê¾¸ 들ì´ë¼ë“¤ì´ë¼ 하였다. 순ì‹ê°„ì— ë‘부와 미꾸리 ë“  êµ­ í•œ ê·¸ë¦‡ì„ ê·¸ëƒ¥ ë¬¼ê°™ì´ ë“¤ì´í‚¤ê³  ë§ì•˜ë‹¤. 세째 ê·¸ë¦‡ì„ ë°›ì•„ë“¤ì—ˆì„ ì œ ë°ìš°ë˜ ë§‰ê±¸ì´ ê³±ë°°ê¸° ë‘ ìž”ì´ ë”웠다. 치삼ì´ì™€ ê°™ì´ ë§ˆì‹œìž ì›ì›ížˆ ë¹„ì—ˆë˜ ì†ì´ë¼ 찌르르하고 ì°½ìžì— í¼ì§€ë©° ì–¼êµ´ì´ í™”ëˆí•˜ì˜€ë‹¤. 눌러 곱배기 í•œ ìž”ì„ ë˜ ë§ˆì…¨ë‹¤. - -ê¹€ ì²¨ì§€ì˜ ëˆˆì€ ë²Œì¨ ê°œê°œ 풀리기 시작하였다. ì„ì‡ ì— ì–¹ížŒ ë–¡ ë‘ ê°œë¥¼ 숭ë©ìˆ­ë© ì°ì–´ì„œ ë³¼ì„ ë¶ˆë£©ê±°ë¦¬ë©° ë˜ ê³±ë°°ê¸° ë‘ ìž”ì„ ë¶€ì–´ë¼ í•˜ì˜€ë‹¤. - -ì¹˜ì‚¼ì€ ì˜ì•„í•œ ë“¯ì´ ê¹€ 첨지를 ë³´ë©°, “여보게 ë˜ ë¶“ë‹¤ë‹ˆ, ë²Œì¨ ìš°ë¦¬ê°€ 넉 잔씩 먹었네, ëˆì´ 사십 ì „ì¼ì„¸.â€ë¼ê³  주ì˜ì‹œì¼°ë‹¤. - -“아따 ì´ë†ˆì•„, 사십 ì „ì´ ê·¸ë¦¬ ë”ì°í•˜ëƒ. 오늘 ë‚´ê°€ ëˆì„ 막 벌었어. ì°¸ 오늘 운수가 좋았ëŠë‹ˆ.†- -“그래 얼마를 벌었단 ë§ì¸ê°€?†- -“삼십 ì›ì„ 벌었어, 삼십 ì›ì„! ì´ëŸ° ì  ìž¥ë§žì„ ìˆ ì„ ì™œ 안부어……괜찮다 괜찮다, 막 ë¨¹ì–´ë„ ìƒê´€ì´ 없어. 오늘 ëˆ ì‚°ë”ë¯¸ê°™ì´ ë²Œì—ˆëŠ”ë°.†- -“어, ì´ ì‚¬ëžŒ 취했군, 그만ë‘세.†- -“ì´ë†ˆì•„, ì´ê±¸ 먹고 취할 ë‚´ëƒ, ì–´ì„œ ë” ë¨¹ì–´.â€í•˜ê³ ëŠ” ì¹˜ì‚¼ì˜ ê·€ë¥¼ 잡아채며 취한 ì´ëŠ” 부르짖었다. 그리고 ìˆ ì„ ë¶“ëŠ” ì—´ 다섯 ì‚´ ë¨ì§í•œ 중대가리ì—게로 달려들며, “ì´ë†ˆ, 오ë¼ì§ˆ 놈, 왜 ìˆ ì„ ë¶“ì§€ ì•Šì–´.â€ë¼ê³  ì•¼ë‹¨ì„ ì³¤ë‹¤. 중대가리는 히히 웃고 ì¹˜ì‚¼ì„ ë³´ë©° 문ì˜í•˜ëŠ” ë“¯ì´ ëˆˆì§“ì„ í•˜ì˜€ë‹¤. ì£¼ì •ê¾¼ì´ ëˆˆì¹˜ë¥¼ 알아보고 화를 버럭내며, “ì—미를 ë¶™ì„ ì´ ì˜¤ë¼ì§ˆ 놈들 같으니, ì´ë†ˆ ë‚´ê°€ ëˆì´ ì—†ì„ ì¤„ 알고.â€í•˜ìžë§ˆìž í—ˆë¦¬ì¶¤ì„ í›”ì¹«í›”ì¹« 하ë”니 ì¼ ì›ì§œë¦¬ í•œ ìž¥ì„ êº¼ë‚´ì–´ 중대가리 ì•žì— íŽ„ì© ì§‘ì–´ë˜ì¡Œë‹¤. ê·¸ ì‚¬í’ˆì— ëª‡ 푼 ì€ì „ì´ ìž˜ê·¸ëž‘ 하며 떨어진다. - -“여보게 ëˆ ë–¨ì–´ì¡Œë„¤, 왜 ëˆì„ 막 ë¼ì–¹ë‚˜.†ì´ëŸ° ë§ì„ 하며 ì¼ë³€ ëˆì„ ì¤ëŠ”다. ê¹€ 첨지는 취한 중ì—ë„ ëˆì˜ 거처를 살피는 ë“¯ì´ ëˆˆì„ í¬ê²Œ ë– ì„œ ë•…ì„ ë‚´ë ¤ë‹¤ë³´ë‹¤ê°€ ë¶ˆì‹œì— ì œ 하는 ì§“ì´ ë„ˆë¬´ ë”럽다는 ë“¯ì´ ê³ ê°œë¥¼ 소스ë¼ì¹˜ìž ë”ìš± ì„±ì„ ë‚´ë©°, “ë´ë¼ ë´! ì´ ë”러운 놈들아, ë‚´ê°€ ëˆì´ 없나, 다리뼉다구를 êº¾ì–´ë†“ì„ ë†ˆë“¤ 같으니.â€í•˜ê³  ì¹˜ì‚¼ì˜ ì£¼ì›Œì£¼ëŠ” ëˆì„ 받아, â€œì´ ì›ìˆ˜ì—£ ëˆ! ì´ ìœ¡ì‹œë¥¼ í•  ëˆ!â€í•˜ë©´ì„œ, í’€ë§¤ì§ˆì„ ì¹œë‹¤. ë²½ì— ë§žì•„ 떨어진 ëˆì€ 다시 술 ë“ì´ëŠ” ì–‘í‘¼ì— ë–¨ì–´ì§€ë©° 정당한 매를 맞는다는 ë“¯ì´ ì¨í•˜ê³  울었다. - -곱배기 ë‘ ìž”ì€ ë˜ ë¶€ì–´ì§ˆ ê²¨ë¥¼ë„ ì—†ì´ ë§ë ¤ê°€ê³  ë§ì•˜ë‹¤. ê¹€ 첨지는 입술과 ìˆ˜ì—¼ì— ë¶™ì€ ìˆ ì„ ë¹¨ì•„ë“¤ì´ê³  나서 매우 만족한 ë“¯ì´ ê·¸ 솔잎 ì†¡ì´ ìˆ˜ì—¼ì„ ì“°ë‹¤ë“¬ìœ¼ë©°, â€œë˜ ë¶€ì–´, ë˜ ë¶€ì–´.â€ë¼ê³ , 외쳤다. - -ë˜ í•œ ìž” 먹고 나서 ê¹€ 첨지는 ì¹˜ì‚¼ì˜ ì–´ê¹¨ë¥¼ 치며 ë¬¸ë“ ê»„ê»„ 웃는다. ê·¸ ì›ƒìŒ ì†Œë¦¬ê°€ 어떻게 컸는지 ìˆ ì§‘ì— ìžˆëŠ” ì´ì˜ ëˆˆì€ ëª¨ë‘ ê¹€ 첨지ì—게로 몰리었다. 웃는 ì´ëŠ” ë”ìš± 웃으며, “여보게 치삼ì´, ë‚´ 우스운 ì´ì•¼ê¸° 하나 할까. 오늘 ì†ì„ 태고 정거장ì—까지 가지 않았겠나.†- -“그래서.†- -“갔다가 그저 오기가 안 ëë°ê·¸ë ¤. 그래 ì „ì°¨ 정류장ì—ì„œ 어름어름하며 ì†ë‹˜ 하나를 태울 ê¶ë¦¬ë¥¼ 하지 않았나. 거기 마침 마나님ì´ì‹ ì§€ 여학ìƒë‹˜ì´ì‹ ì§€ - 요새야 ì–´ë”” 논다니와 아가씨를 구별할 수가 있ë˜ê°€ - <ë§í† >를 ë‘르고 비를 맞고 ì„œ 있겠지. 슬근슬근 ê°€ê¹Œì´ ê°€ì„œ ì¸ë ¥ê±° 타시ëžì‹œìš” 하고 ì†ê°€ë°©ì„ 받으랴니까 ë‚´ ì†ì„ íƒ ë¿Œë¦¬ì¹˜ê³  í™± ëŒì•„ì„œë”니만 <왜 ë‚¨ì„ ì´ë ‡ê²Œ 귀찮게 êµ´ì–´!> ê·¸ 소리야ë§ë¡œ 꾀꼬리 소리지, 허허!†- -ê¹€ 첨지는 êµë¬˜í•˜ê²Œë„ ì •ë§ ê¾€ê¼¬ë¦¬ ê°™ì€ ì†Œë¦¬ë¥¼ 내었다. 모든 ì‚¬ëžŒì€ ì¼ì‹œì— 웃었다. - -â€œë¹Œì–´ë¨¹ì„ ê¹ìŸì´ ê°™ì€ ë…„, 누가 저를 어쩌나, <왜 ë‚¨ì„ ê·€ì°®ê²Œ êµ´ì–´!> ì–´ì´êµ¬ 소리가 ì²˜ì‹ ë„ ì—†ì§€, 허허.†- -ì›ƒìŒ ì†Œë¦¬ë“¤ì€ ë†’ì•„ì¡Œë‹¤. 그러나 ê·¸ ì›ƒìŒ ì†Œë¦¬ë“¤ì´ ì‚¬ë¼ì§€ê¸° ì „ì— ê¹€ 첨지는 훌ì©í›Œì© 울기 시작하였다. - -ì¹˜ì‚¼ì€ ì–´ì´ì—†ì´ 주정뱅ì´ë¥¼ ë°”ë¼ë³´ë©°, “금방 웃고 ì§€ëž„ì„ í•˜ë”니 우는 ê±´ ë˜ ë¬´ìŠ¨ ì¼ì¸ê°€.†- -ê¹€ 첨지는 ì—°í•´ 코를 들여마시며, “우리 마누ë¼ê°€ 죽었다네.†- -“ë­, 마누ë¼ê°€ 죽다니, 언제?†- -“ì´ë†ˆì•„ 언제는. 오늘ì´ì§€.†- -“엑기 미친 놈, ê±°ì§“ë§ ë§ì•„.†- -“거짓ë§ì€ 왜, ì°¸ë§ë¡œ 죽었어, ì°¸ë§ë¡œ... ë§ˆëˆ„ë¼ ì‹œì²´ë¥¼ 집어 ë»ë“¤ì³ë†“ê³  ë‚´ê°€ ìˆ ì„ ë¨¹ë‹¤ë‹ˆ, ë‚´ê°€ ì£½ì¼ ë†ˆì´ì•¼, ì£½ì¼ ë†ˆì´ì•¼.â€í•˜ê³  ê¹€ 첨지는 엉엉 소리를 ë‚´ì–´ 운다. - -ì¹˜ì‚¼ì€ í¥ì´ 조금 깨어지는 얼굴로, â€œì› ì´ ì‚¬ëžŒì´, ì°¸ë§ì„ 하나 거짓ë§ì„ 하나. 그러면 집으로 가세, ê°€.â€í•˜ê³  우는 ì´ì˜ íŒ”ì„ ìž¡ì•„ë‹¹ê¸°ì—ˆë‹¤. - -ì¹˜ì‚¼ì˜ ë„는 ì†ì„ 뿌리치ë”니 ê¹€ 첨지는 ëˆˆë¬¼ì´ ê¸€ì½ê¸€ì½í•œ 눈으로 싱그레 웃는다. - -“죽기는 누가 죽어.â€í•˜ê³  ë“ì˜ê°€ ì–‘ì–‘. - -“죽기는 왜 죽어, ìƒë•Œê°™ì´ 살아만 있단다. ê·¸ 오ë¼ì§ˆ ë…„ì´ ë°¥ì„ ì£½ì´ì§€. ì¸ì œ 나한테 ì†ì•˜ë‹¤.â€í•˜ê³  어린애 모양으로 ì†ë¼‰ì„ 치며 웃는다. - -â€œì´ ì‚¬ëžŒì´ ì •ë§ ë¯¸ì³¤ë‹¨ ë§ì¸ê°€. ë‚˜ë„ ì•„ì£¼ë¨¼ë„¤ê°€ 앓는단 ë§ì€ 들었는ë°.â€í•˜ê³ , 치삼ì´ë„ ì–´ëŠ ë¶ˆì•ˆì„ ëŠë¼ëŠ” ë“¯ì´ ê¹€ 첨지ì—게 ë˜ ëŒì•„ê°€ë¼ê³  권하였다. - -“안 죽었어, 안 죽었대ë„그래.†- -ê¹€ 첨지는 홧ì¦ì„ ë‚´ë©° 확신있게 소리를 ì§ˆë €ìœ¼ë˜ ê·¸ 소리엔 안 ì£½ì€ ê²ƒì„ ë¯¿ìœ¼ë ¤ê³  애쓰는 ê°€ë½ì´ 있었다. ê¸°ì–´ì´ ì¼ ì›ì–´ì¹˜ë¥¼ 채워서 곱배기 í•œ 잔씩 ë” ë¨¹ê³  나왔다. ê¶‚ì€ ë¹„ëŠ” ì˜ì—°ížˆ 추ì ì¶”ì  ë‚´ë¦°ë‹¤. - -ê¹€ 첨지는 취중ì—ë„ ì„¤ë íƒ•ì„ 사가지고 ì§‘ì— ë‹¤ë‹¬ì•˜ë‹¤. 집ì´ë¼ í•´ë„ ë¬¼ë¡  셋집ì´ìš”, ë˜ ì§‘ 전체를 세든 게 ì•„ë‹ˆë¼ ì•ˆê³¼ ëšë–¨ì–´ì§„ 행랑방 í•œ ê°„ì„ ë¹Œë ¤ ë“  것ì¸ë° ë¬¼ì„ ê¸¸ì–´ëŒ€ê³  í•œ ë‹¬ì— ì¼ ì›ì”© 내는 í„°ì´ë‹¤. ë§Œì¼ ê¹€ 첨지가 주기를 ë ì§€ 않았ë˜ë“¤ í•œ ë°œì„ ëŒ€ë¬¸ì— ë“¤ì—¬ë†“ì•˜ì„ ì œ ê·¸ê³³ì„ ì§€ë°°í•˜ëŠ” 무시무시한 ì •ì (éœå¯‚) - í­í’ìš°ê°€ 지나간 ë’¤ì˜ ë°”ë‹¤ ê°™ì€ ì •ì ì— 다리가 떨렸으리ë¼. - -쿨룩거리는 기침 ì†Œë¦¬ë„ ë“¤ì„ ìˆ˜ 없다. 그르ë ê±°ë¦¬ëŠ” 숨소리조차 ë“¤ì„ ìˆ˜ 없다. 다만 ì´ ë¬´ë¤ê°™ì€ ì¹¨ë¬µì„ ê¹¨ëœ¨ë¦¬ëŠ” - 깨뜨린다ëŠë‹ˆë³´ë‹¤ 한층 ë” ì¹¨ë¬µì„ ê¹Šê²Œ 하고 불길하게 하는 빡빡하는 그윽한 소리, ì–´ë¦°ì• ì˜ ì – 빠는 소리가 ë‚  ë¿ì´ë‹¤. ë§Œì¼ ì²­ê°(è½è¦º)ì´ ì˜ˆë¯¼í•œ ì´ ê°™ìœ¼ë©´ ê·¸ 빡빡 소리는 빨 따름ì´ìš”, 꿀떡꿀떡 하고 ì – 넘어가는 소리가 없으니 빈 ì –ì„ ë¹¤ë‹¤ëŠ” ê²ƒë„ ì§ìž‘할는지 모르리ë¼. - -í˜¹ì€ ê¹€ ì²¨ì§€ë„ ì´ ë¶ˆê¸¸í•œ ì¹¨ë¬µì„ ì§ìž‘í–ˆëŠ”ì§€ë„ ëª¨ë¥¸ë‹¤. 그렇지 않으면 ëŒ€ë¬¸ì— ë“¤ì–´ì„œìžë§ˆìž ì „ì— ì—†ì´, â€œì´ ë‚œìž¥ ë§žì„ ë…„, ë‚¨íŽ¸ì´ ë“¤ì–´ì˜¤ëŠ”ë° ë‚˜ì™€ë³´ì§€ë„ ì•Šì•„, ì´ ì˜¤ë¼ì§ˆ ë…„.â€ì´ë¼ê³  ê³ í•¨ì„ ì¹œ 게 수ìƒí•˜ë‹¤. ì´ ê³ í•¨ì´ì•¼ë§ë¡œ ì œ ëª¸ì„ ì—„ìŠµí•´ì˜¤ëŠ” 무시무시한 ì¦ì„ 쫓아버리려는 허장성세(虛張è²å‹¢)ì¸ ê¹Œë‹­ì´ë‹¤. - -하여간 ê¹€ 첨지는 ë°©ë¬¸ì„ ì™ˆì¹µ 열었다. êµ¬ì—­ì„ ë‚˜ê²Œ 하는 추기 - 떨어진 ì‚¿ìžë¦¬ ë°‘ì—ì„œ 나온 먼지내, 빨지 ì•Šì€ ê¸°ì €ê·€ì—ì„œ 나는 똥내와 오줌내, 가지ê°ìƒ‰ 때가 케케히 ì•‰ì€ ì˜·ë‚´, 병ì¸ì˜ ë•€ ì©ì€ ë‚´ê°€ ì„žì¸ ì¶”ê¸°ê°€ 무딘 ê¹€ ì²¨ì§€ì˜ ì½”ë¥¼ 찔렀다. - -ë°©ì•ˆì— ë“¤ì–´ì„œë©° 설ë íƒ•ì„ 한구ì„ì— ë†“ì„ ì‚¬ì´ë„ ì—†ì´ ì£¼ì •êµ°ì€ ëª©ì²­ì„ ìžˆëŠ” 대로 다 ë‚´ì–´ í˜¸í†µì„ ì³¤ë‹¤. - -“ì´ëŸ° 오ë¼ì§ˆ ë…„, 주야장천(æ™å¤œé•·å·) 누워만 있으면 ì œì¼ì´ì•¼! ë‚¨íŽ¸ì´ ì™€ë„ ì¼ì–´ë‚˜ì§€ë¥¼ 못해.â€ë¼ëŠ” 소리와 함께 발길로 누운 ì´ì˜ 다리를 몹시 찼다. 그러나 ë°œê¸¸ì— ì±„ì´ëŠ” ê±´ ì‚¬ëžŒì˜ ì‚´ì´ ì•„ë‹ˆê³  나무등걸과 ê°™ì€ ëŠë‚Œì´ 있었다. ì´ë•Œì— 빽빽 소리가 ì‘ì•„ 소리로 변하였다. 개똥ì´ê°€ ë¬¼ì—ˆë˜ ì –ì„ ë¹¼ì–´ë†“ê³  운다. ìš´ëŒ€ë„ ì˜¨ ì–¼êµ´ì„ ì°¡ê·¸ë ¤ 붙여서, 운다는 í‘œì •ì„ í•  ë¿ì´ë‹¤. ì‘ì•„ ì†Œë¦¬ë„ ìž…ì—ì„œ 나는 게 아니고 마치 뱃ì†ì—ì„œ 나는 듯하였다. 울다가 울다가 ëª©ë„ ìž ê²¼ê³  ë˜ ìš¸ 기운조차 시진한 것 같다. - -발로 ì°¨ë„ ê·¸ ë³´ëžŒì´ ì—†ëŠ” 걸 ë³´ìž ë‚¨íŽ¸ì€ ì•„ë‚´ì˜ ë¨¸ë¦¬ë§¡ìœ¼ë¡œ 달려들어 그야ë§ë¡œ 까치집 ê°™ì€ í™˜ìžì˜ 머리를 꺼들어 í”들며, â€œì´ ë…„ì•„, ë§ì„ í•´, ë§ì„! ìž…ì´ ë¶™ì—ˆì–´, ì´ ì˜¤ë¼ì§ˆ ë…„!†- -“…†- -“으ì‘, ì´ê²ƒ ë´, 아무 ë§ì´ 없네.†-“…†- -“ì´ë…„ì•„, 죽었단 ë§ì´ëƒ, 왜 ë§ì´ 없어.†- -“…†- -“으ì‘. ë˜ ëŒ€ë‹µì´ ì—†ë„¤, ì •ë§ ì£½ì—ˆë‚˜ë²„ì´.†- -ì´ëŸ¬ë‹¤ê°€ 누운 ì´ì˜ í° ì°½ì„ ë®ì€, 위로 치뜬 ëˆˆì„ ì•Œì•„ë³´ìžë§ˆìž, â€œì´ ëˆˆê¹”! ì´ ëˆˆê¹”! 왜 나를 ë°”ë¼ë³´ì§€ 못하고 천정만 ë³´ëŠëƒ, ì‘.â€í•˜ëŠ” ë§ ëì—” ëª©ì´ ë©”ì—ˆë‹¤. ê·¸ëŸ¬ìž ì‚° ì‚¬ëžŒì˜ ëˆˆì—ì„œ 떨어진 ë‹­ì˜ ë˜¥ ê°™ì€ ëˆˆë¬¼ì´ ì£½ì€ ì´ì˜ 뻣뻣한 ì–¼êµ´ì„ ì–´ë£½ì–´ë£½ ì ì‹œì—ˆë‹¤. ë¬¸ë“ ê¹€ 첨지는 미칠 ë“¯ì´ ì œ ì–¼êµ´ì„ ì£½ì€ ì´ì˜ ì–¼êµ´ì— í•œí…Œ 비비대며 중얼거렸다. - -“설ë íƒ•ì„ ì‚¬ë‹¤ë†“ì•˜ëŠ”ë° ì™œ 먹지를 못하니, 왜 먹지를 못하니... ê´´ìƒí•˜ê²Œë„ 오늘ì€! 운수가 좋ë”니만... †diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese/big5.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese/big5.go deleted file mode 100644 index cf4b945e..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese/big5.go +++ /dev/null @@ -1,198 +0,0 @@ -// 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 traditionalchinese - -import ( - "errors" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{Big5} - -// Big5 is the Big5 encoding, also known as Code Page 950. -var Big5 encoding.Encoding = &big5 - -var big5 = internal.Encoding{ - &internal.SimpleEncoding{big5Decoder{}, big5Encoder{}}, - "Big5", - identifier.Big5, -} - -var errInvalidBig5 = errors.New("traditionalchinese: invalid Big5 encoding") - -type big5Decoder struct{ transform.NopResetter } - -func (big5Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size, s := rune(0), 0, "" -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case 0x81 <= c0 && c0 < 0xff: - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - switch { - case 0x40 <= c1 && c1 < 0x7f: - c1 -= 0x40 - case 0xa1 <= c1 && c1 < 0xff: - c1 -= 0x62 - default: - err = errInvalidBig5 - break loop - } - r, size = '\ufffd', 2 - if i := int(c0-0x81)*157 + int(c1); i < len(decode) { - if 1133 <= i && i < 1167 { - // The two-rune special cases for LATIN CAPITAL / SMALL E WITH CIRCUMFLEX - // AND MACRON / CARON are from http://encoding.spec.whatwg.org/#big5 - switch i { - case 1133: - s = "\u00CA\u0304" - goto writeStr - case 1135: - s = "\u00CA\u030C" - goto writeStr - case 1164: - s = "\u00EA\u0304" - goto writeStr - case 1166: - s = "\u00EA\u030C" - goto writeStr - } - } - r = rune(decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - default: - err = errInvalidBig5 - break loop - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - continue loop - - writeStr: - if nDst+len(s) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += copy(dst[nDst:], s) - continue loop - } - if atEOF && err == transform.ErrShortSrc { - err = errInvalidBig5 - } - return nDst, nSrc, err -} - -type big5Encoder struct{ transform.NopResetter } - -func (big5Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - } - - if r >= utf8.RuneSelf { - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto write2 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto write2 - } - case encode5Low <= r && r < encode5High: - if r = rune(encode5[r-encode5Low]); r != 0 { - goto write2 - } - case encode6Low <= r && r < encode6High: - if r = rune(encode6[r-encode6Low]); r != 0 { - goto write2 - } - case encode7Low <= r && r < encode7High: - if r = rune(encode7[r-encode7Low]); r != 0 { - goto write2 - } - } - r = encoding.ASCIISub - } - - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r >> 8) - dst[nDst+1] = uint8(r) - nDst += 2 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 8 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese/maketables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese/maketables.go deleted file mode 100644 index cf7fdb31..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese/maketables.go +++ /dev/null @@ -1,140 +0,0 @@ -// 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. - -// +build ignore - -package main - -// This program generates tables.go: -// go run maketables.go | gofmt > tables.go - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" -) - -func main() { - fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") - fmt.Printf("// Package traditionalchinese provides Traditional Chinese encodings such as Big5.\n") - fmt.Printf(`package traditionalchinese // import "golang.org/x/text/encoding/traditionalchinese"` + "\n\n") - - res, err := http.Get("http://encoding.spec.whatwg.org/index-big5.txt") - if err != nil { - log.Fatalf("Get: %v", err) - } - defer res.Body.Close() - - mapping := [65536]uint32{} - reverse := [65536 * 4]uint16{} - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := uint16(0), uint32(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0 || 126*157 <= x { - log.Fatalf("Big5 code %d is out of range", x) - } - mapping[x] = y - - // The WHATWG spec http://encoding.spec.whatwg.org/#indexes says that - // "The index pointer for code point in index is the first pointer - // corresponding to code point in index", which would normally mean - // that the code below should be guarded by "if reverse[y] == 0", but - // last instead of first seems to match the behavior of - // "iconv -f UTF-8 -t BIG5". For example, U+8005 者 occurs twice in - // http://encoding.spec.whatwg.org/index-big5.txt, as index 2148 - // (encoded as "\x8e\xcd") and index 6543 (encoded as "\xaa\xcc") - // and "echo 者 | iconv -f UTF-8 -t BIG5 | xxd" gives "\xaa\xcc". - c0, c1 := x/157, x%157 - if c1 < 0x3f { - c1 += 0x40 - } else { - c1 += 0x62 - } - reverse[y] = (0x81+c0)<<8 | c1 - } - if err := scanner.Err(); err != nil { - log.Fatalf("scanner error: %v", err) - } - - fmt.Printf("// decode is the decoding table from Big5 code to Unicode.\n") - fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-big5.txt\n") - fmt.Printf("var decode = [...]uint32{\n") - for i, v := range mapping { - if v != 0 { - fmt.Printf("\t%d: 0x%08X,\n", i, v) - } - } - fmt.Printf("}\n\n") - - // Any run of at least separation continuous zero entries in the reverse map will - // be a separate encode table. - const separation = 1024 - - intervals := []interval(nil) - low, high := -1, -1 - for i, v := range reverse { - if v == 0 { - continue - } - if low < 0 { - low = i - } else if i-high >= separation { - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - low = i - } - high = i + 1 - } - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - sort.Sort(byDecreasingLength(intervals)) - - fmt.Printf("const numEncodeTables = %d\n\n", len(intervals)) - fmt.Printf("// encodeX are the encoding tables from Unicode to Big5 code,\n") - fmt.Printf("// sorted by decreasing length.\n") - for i, v := range intervals { - fmt.Printf("// encode%d: %5d entries for runes in [%6d, %6d).\n", i, v.len(), v.low, v.high) - } - fmt.Printf("\n") - - for i, v := range intervals { - fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high) - fmt.Printf("var encode%d = [...]uint16{\n", i) - for j := v.low; j < v.high; j++ { - x := reverse[j] - if x == 0 { - continue - } - fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x) - } - fmt.Printf("}\n\n") - } -} - -// interval is a half-open interval [low, high). -type interval struct { - low, high int -} - -func (i interval) len() int { return i.high - i.low } - -// byDecreasingLength sorts intervals by decreasing length. -type byDecreasingLength []interval - -func (b byDecreasingLength) Len() int { return len(b) } -func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() } -func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese/tables.go deleted file mode 100644 index b0d23c7d..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese/tables.go +++ /dev/null @@ -1,37142 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package traditionalchinese provides Traditional Chinese encodings such as Big5. -package traditionalchinese - -// decode is the decoding table from Big5 code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-big5.txt -var decode = [...]uint32{ - 942: 0x000043F0, - 943: 0x00004C32, - 944: 0x00004603, - 945: 0x000045A6, - 946: 0x00004578, - 947: 0x00027267, - 948: 0x00004D77, - 949: 0x000045B3, - 950: 0x00027CB1, - 951: 0x00004CE2, - 952: 0x00027CC5, - 953: 0x00003B95, - 954: 0x00004736, - 955: 0x00004744, - 956: 0x00004C47, - 957: 0x00004C40, - 958: 0x000242BF, - 959: 0x00023617, - 960: 0x00027352, - 961: 0x00026E8B, - 962: 0x000270D2, - 963: 0x00004C57, - 964: 0x0002A351, - 965: 0x0000474F, - 966: 0x000045DA, - 967: 0x00004C85, - 968: 0x00027C6C, - 969: 0x00004D07, - 970: 0x00004AA4, - 971: 0x000046A1, - 972: 0x00026B23, - 973: 0x00007225, - 974: 0x00025A54, - 975: 0x00021A63, - 976: 0x00023E06, - 977: 0x00023F61, - 978: 0x0000664D, - 979: 0x000056FB, - 981: 0x00007D95, - 982: 0x0000591D, - 983: 0x00028BB9, - 984: 0x00003DF4, - 985: 0x00009734, - 986: 0x00027BEF, - 987: 0x00005BDB, - 988: 0x00021D5E, - 989: 0x00005AA4, - 990: 0x00003625, - 991: 0x00029EB0, - 992: 0x00005AD1, - 993: 0x00005BB7, - 994: 0x00005CFC, - 995: 0x0000676E, - 996: 0x00008593, - 997: 0x00029945, - 998: 0x00007461, - 999: 0x0000749D, - 1000: 0x00003875, - 1001: 0x00021D53, - 1002: 0x0002369E, - 1003: 0x00026021, - 1004: 0x00003EEC, - 1005: 0x000258DE, - 1006: 0x00003AF5, - 1007: 0x00007AFC, - 1008: 0x00009F97, - 1009: 0x00024161, - 1010: 0x0002890D, - 1011: 0x000231EA, - 1012: 0x00020A8A, - 1013: 0x0002325E, - 1014: 0x0000430A, - 1015: 0x00008484, - 1016: 0x00009F96, - 1017: 0x0000942F, - 1018: 0x00004930, - 1019: 0x00008613, - 1020: 0x00005896, - 1021: 0x0000974A, - 1022: 0x00009218, - 1023: 0x000079D0, - 1024: 0x00007A32, - 1025: 0x00006660, - 1026: 0x00006A29, - 1027: 0x0000889D, - 1028: 0x0000744C, - 1029: 0x00007BC5, - 1030: 0x00006782, - 1031: 0x00007A2C, - 1032: 0x0000524F, - 1033: 0x00009046, - 1034: 0x000034E6, - 1035: 0x000073C4, - 1036: 0x00025DB9, - 1037: 0x000074C6, - 1038: 0x00009FC7, - 1039: 0x000057B3, - 1040: 0x0000492F, - 1041: 0x0000544C, - 1042: 0x00004131, - 1043: 0x0002368E, - 1044: 0x00005818, - 1045: 0x00007A72, - 1046: 0x00027B65, - 1047: 0x00008B8F, - 1048: 0x000046AE, - 1049: 0x00026E88, - 1050: 0x00004181, - 1051: 0x00025D99, - 1052: 0x00007BAE, - 1053: 0x000224BC, - 1054: 0x00009FC8, - 1055: 0x000224C1, - 1056: 0x000224C9, - 1057: 0x000224CC, - 1058: 0x00009FC9, - 1059: 0x00008504, - 1060: 0x000235BB, - 1061: 0x000040B4, - 1062: 0x00009FCA, - 1063: 0x000044E1, - 1064: 0x0002ADFF, - 1065: 0x000062C1, - 1066: 0x0000706E, - 1067: 0x00009FCB, - 1099: 0x000031C0, - 1100: 0x000031C1, - 1101: 0x000031C2, - 1102: 0x000031C3, - 1103: 0x000031C4, - 1104: 0x0002010C, - 1105: 0x000031C5, - 1106: 0x000200D1, - 1107: 0x000200CD, - 1108: 0x000031C6, - 1109: 0x000031C7, - 1110: 0x000200CB, - 1111: 0x00021FE8, - 1112: 0x000031C8, - 1113: 0x000200CA, - 1114: 0x000031C9, - 1115: 0x000031CA, - 1116: 0x000031CB, - 1117: 0x000031CC, - 1118: 0x0002010E, - 1119: 0x000031CD, - 1120: 0x000031CE, - 1121: 0x00000100, - 1122: 0x000000C1, - 1123: 0x000001CD, - 1124: 0x000000C0, - 1125: 0x00000112, - 1126: 0x000000C9, - 1127: 0x0000011A, - 1128: 0x000000C8, - 1129: 0x0000014C, - 1130: 0x000000D3, - 1131: 0x000001D1, - 1132: 0x000000D2, - 1134: 0x00001EBE, - 1136: 0x00001EC0, - 1137: 0x000000CA, - 1138: 0x00000101, - 1139: 0x000000E1, - 1140: 0x000001CE, - 1141: 0x000000E0, - 1142: 0x00000251, - 1143: 0x00000113, - 1144: 0x000000E9, - 1145: 0x0000011B, - 1146: 0x000000E8, - 1147: 0x0000012B, - 1148: 0x000000ED, - 1149: 0x000001D0, - 1150: 0x000000EC, - 1151: 0x0000014D, - 1152: 0x000000F3, - 1153: 0x000001D2, - 1154: 0x000000F2, - 1155: 0x0000016B, - 1156: 0x000000FA, - 1157: 0x000001D4, - 1158: 0x000000F9, - 1159: 0x000001D6, - 1160: 0x000001D8, - 1161: 0x000001DA, - 1162: 0x000001DC, - 1163: 0x000000FC, - 1165: 0x00001EBF, - 1167: 0x00001EC1, - 1168: 0x000000EA, - 1169: 0x00000261, - 1170: 0x000023DA, - 1171: 0x000023DB, - 1256: 0x0002A3A9, - 1257: 0x00021145, - 1259: 0x0000650A, - 1262: 0x00004E3D, - 1263: 0x00006EDD, - 1264: 0x00009D4E, - 1265: 0x000091DF, - 1268: 0x00027735, - 1269: 0x00006491, - 1270: 0x00004F1A, - 1271: 0x00004F28, - 1272: 0x00004FA8, - 1273: 0x00005156, - 1274: 0x00005174, - 1275: 0x0000519C, - 1276: 0x000051E4, - 1277: 0x000052A1, - 1278: 0x000052A8, - 1279: 0x0000533B, - 1280: 0x0000534E, - 1281: 0x000053D1, - 1282: 0x000053D8, - 1283: 0x000056E2, - 1284: 0x000058F0, - 1285: 0x00005904, - 1286: 0x00005907, - 1287: 0x00005932, - 1288: 0x00005934, - 1289: 0x00005B66, - 1290: 0x00005B9E, - 1291: 0x00005B9F, - 1292: 0x00005C9A, - 1293: 0x00005E86, - 1294: 0x0000603B, - 1295: 0x00006589, - 1296: 0x000067FE, - 1297: 0x00006804, - 1298: 0x00006865, - 1299: 0x00006D4E, - 1300: 0x000070BC, - 1301: 0x00007535, - 1302: 0x00007EA4, - 1303: 0x00007EAC, - 1304: 0x00007EBA, - 1305: 0x00007EC7, - 1306: 0x00007ECF, - 1307: 0x00007EDF, - 1308: 0x00007F06, - 1309: 0x00007F37, - 1310: 0x0000827A, - 1311: 0x000082CF, - 1312: 0x0000836F, - 1313: 0x000089C6, - 1314: 0x00008BBE, - 1315: 0x00008BE2, - 1316: 0x00008F66, - 1317: 0x00008F67, - 1318: 0x00008F6E, - 1319: 0x00007411, - 1320: 0x00007CFC, - 1321: 0x00007DCD, - 1322: 0x00006946, - 1323: 0x00007AC9, - 1324: 0x00005227, - 1329: 0x0000918C, - 1330: 0x000078B8, - 1331: 0x0000915E, - 1332: 0x000080BC, - 1334: 0x00008D0B, - 1335: 0x000080F6, - 1336: 0x000209E7, - 1339: 0x0000809F, - 1340: 0x00009EC7, - 1341: 0x00004CCD, - 1342: 0x00009DC9, - 1343: 0x00009E0C, - 1344: 0x00004C3E, - 1345: 0x00029DF6, - 1346: 0x0002700E, - 1347: 0x00009E0A, - 1348: 0x0002A133, - 1349: 0x000035C1, - 1351: 0x00006E9A, - 1352: 0x0000823E, - 1353: 0x00007519, - 1355: 0x00004911, - 1356: 0x00009A6C, - 1357: 0x00009A8F, - 1358: 0x00009F99, - 1359: 0x00007987, - 1360: 0x0002846C, - 1361: 0x00021DCA, - 1362: 0x000205D0, - 1363: 0x00022AE6, - 1364: 0x00004E24, - 1365: 0x00004E81, - 1366: 0x00004E80, - 1367: 0x00004E87, - 1368: 0x00004EBF, - 1369: 0x00004EEB, - 1370: 0x00004F37, - 1371: 0x0000344C, - 1372: 0x00004FBD, - 1373: 0x00003E48, - 1374: 0x00005003, - 1375: 0x00005088, - 1376: 0x0000347D, - 1377: 0x00003493, - 1378: 0x000034A5, - 1379: 0x00005186, - 1380: 0x00005905, - 1381: 0x000051DB, - 1382: 0x000051FC, - 1383: 0x00005205, - 1384: 0x00004E89, - 1385: 0x00005279, - 1386: 0x00005290, - 1387: 0x00005327, - 1388: 0x000035C7, - 1389: 0x000053A9, - 1390: 0x00003551, - 1391: 0x000053B0, - 1392: 0x00003553, - 1393: 0x000053C2, - 1394: 0x00005423, - 1395: 0x0000356D, - 1396: 0x00003572, - 1397: 0x00003681, - 1398: 0x00005493, - 1399: 0x000054A3, - 1400: 0x000054B4, - 1401: 0x000054B9, - 1402: 0x000054D0, - 1403: 0x000054EF, - 1404: 0x00005518, - 1405: 0x00005523, - 1406: 0x00005528, - 1407: 0x00003598, - 1408: 0x0000553F, - 1409: 0x000035A5, - 1410: 0x000035BF, - 1411: 0x000055D7, - 1412: 0x000035C5, - 1413: 0x00027D84, - 1414: 0x00005525, - 1416: 0x00020C42, - 1417: 0x00020D15, - 1418: 0x0002512B, - 1419: 0x00005590, - 1420: 0x00022CC6, - 1421: 0x000039EC, - 1422: 0x00020341, - 1423: 0x00008E46, - 1424: 0x00024DB8, - 1425: 0x000294E5, - 1426: 0x00004053, - 1427: 0x000280BE, - 1428: 0x0000777A, - 1429: 0x00022C38, - 1430: 0x00003A34, - 1431: 0x000047D5, - 1432: 0x0002815D, - 1433: 0x000269F2, - 1434: 0x00024DEA, - 1435: 0x000064DD, - 1436: 0x00020D7C, - 1437: 0x00020FB4, - 1438: 0x00020CD5, - 1439: 0x000210F4, - 1440: 0x0000648D, - 1441: 0x00008E7E, - 1442: 0x00020E96, - 1443: 0x00020C0B, - 1444: 0x00020F64, - 1445: 0x00022CA9, - 1446: 0x00028256, - 1447: 0x000244D3, - 1449: 0x00020D46, - 1450: 0x00029A4D, - 1451: 0x000280E9, - 1452: 0x000047F4, - 1453: 0x00024EA7, - 1454: 0x00022CC2, - 1455: 0x00009AB2, - 1456: 0x00003A67, - 1457: 0x000295F4, - 1458: 0x00003FED, - 1459: 0x00003506, - 1460: 0x000252C7, - 1461: 0x000297D4, - 1462: 0x000278C8, - 1463: 0x00022D44, - 1464: 0x00009D6E, - 1465: 0x00009815, - 1467: 0x000043D9, - 1468: 0x000260A5, - 1469: 0x000064B4, - 1470: 0x000054E3, - 1471: 0x00022D4C, - 1472: 0x00022BCA, - 1473: 0x00021077, - 1474: 0x000039FB, - 1475: 0x0002106F, - 1476: 0x000266DA, - 1477: 0x00026716, - 1478: 0x000279A0, - 1479: 0x000064EA, - 1480: 0x00025052, - 1481: 0x00020C43, - 1482: 0x00008E68, - 1483: 0x000221A1, - 1484: 0x00028B4C, - 1485: 0x00020731, - 1487: 0x0000480B, - 1488: 0x000201A9, - 1489: 0x00003FFA, - 1490: 0x00005873, - 1491: 0x00022D8D, - 1493: 0x000245C8, - 1494: 0x000204FC, - 1495: 0x00026097, - 1496: 0x00020F4C, - 1497: 0x00020D96, - 1498: 0x00005579, - 1499: 0x000040BB, - 1500: 0x000043BA, - 1502: 0x00004AB4, - 1503: 0x00022A66, - 1504: 0x0002109D, - 1505: 0x000081AA, - 1506: 0x000098F5, - 1507: 0x00020D9C, - 1508: 0x00006379, - 1509: 0x000039FE, - 1510: 0x00022775, - 1511: 0x00008DC0, - 1512: 0x000056A1, - 1513: 0x0000647C, - 1514: 0x00003E43, - 1516: 0x0002A601, - 1517: 0x00020E09, - 1518: 0x00022ACF, - 1519: 0x00022CC9, - 1521: 0x000210C8, - 1522: 0x000239C2, - 1523: 0x00003992, - 1524: 0x00003A06, - 1525: 0x0002829B, - 1526: 0x00003578, - 1527: 0x00025E49, - 1528: 0x000220C7, - 1529: 0x00005652, - 1530: 0x00020F31, - 1531: 0x00022CB2, - 1532: 0x00029720, - 1533: 0x000034BC, - 1534: 0x00006C3D, - 1535: 0x00024E3B, - 1538: 0x00027574, - 1539: 0x00022E8B, - 1540: 0x00022208, - 1541: 0x0002A65B, - 1542: 0x00028CCD, - 1543: 0x00020E7A, - 1544: 0x00020C34, - 1545: 0x0002681C, - 1546: 0x00007F93, - 1547: 0x000210CF, - 1548: 0x00022803, - 1549: 0x00022939, - 1550: 0x000035FB, - 1551: 0x000251E3, - 1552: 0x00020E8C, - 1553: 0x00020F8D, - 1554: 0x00020EAA, - 1555: 0x00003F93, - 1556: 0x00020F30, - 1557: 0x00020D47, - 1558: 0x0002114F, - 1559: 0x00020E4C, - 1561: 0x00020EAB, - 1562: 0x00020BA9, - 1563: 0x00020D48, - 1564: 0x000210C0, - 1565: 0x0002113D, - 1566: 0x00003FF9, - 1567: 0x00022696, - 1568: 0x00006432, - 1569: 0x00020FAD, - 1570: 0x000233F4, - 1571: 0x00027639, - 1572: 0x00022BCE, - 1573: 0x00020D7E, - 1574: 0x00020D7F, - 1575: 0x00022C51, - 1576: 0x00022C55, - 1577: 0x00003A18, - 1578: 0x00020E98, - 1579: 0x000210C7, - 1580: 0x00020F2E, - 1581: 0x0002A632, - 1582: 0x00026B50, - 1583: 0x00028CD2, - 1584: 0x00028D99, - 1585: 0x00028CCA, - 1586: 0x000095AA, - 1587: 0x000054CC, - 1588: 0x000082C4, - 1589: 0x000055B9, - 1591: 0x00029EC3, - 1592: 0x00009C26, - 1593: 0x00009AB6, - 1594: 0x0002775E, - 1595: 0x00022DEE, - 1596: 0x00007140, - 1597: 0x0000816D, - 1598: 0x000080EC, - 1599: 0x00005C1C, - 1600: 0x00026572, - 1601: 0x00008134, - 1602: 0x00003797, - 1603: 0x0000535F, - 1604: 0x000280BD, - 1605: 0x000091B6, - 1606: 0x00020EFA, - 1607: 0x00020E0F, - 1608: 0x00020E77, - 1609: 0x00020EFB, - 1610: 0x000035DD, - 1611: 0x00024DEB, - 1612: 0x00003609, - 1613: 0x00020CD6, - 1614: 0x000056AF, - 1615: 0x000227B5, - 1616: 0x000210C9, - 1617: 0x00020E10, - 1618: 0x00020E78, - 1619: 0x00021078, - 1620: 0x00021148, - 1621: 0x00028207, - 1622: 0x00021455, - 1623: 0x00020E79, - 1624: 0x00024E50, - 1625: 0x00022DA4, - 1626: 0x00005A54, - 1627: 0x0002101D, - 1628: 0x0002101E, - 1629: 0x000210F5, - 1630: 0x000210F6, - 1631: 0x0000579C, - 1632: 0x00020E11, - 1633: 0x00027694, - 1634: 0x000282CD, - 1635: 0x00020FB5, - 1636: 0x00020E7B, - 1637: 0x0002517E, - 1638: 0x00003703, - 1639: 0x00020FB6, - 1640: 0x00021180, - 1641: 0x000252D8, - 1642: 0x0002A2BD, - 1643: 0x000249DA, - 1644: 0x0002183A, - 1645: 0x00024177, - 1646: 0x0002827C, - 1647: 0x00005899, - 1648: 0x00005268, - 1649: 0x0000361A, - 1650: 0x0002573D, - 1651: 0x00007BB2, - 1652: 0x00005B68, - 1653: 0x00004800, - 1654: 0x00004B2C, - 1655: 0x00009F27, - 1656: 0x000049E7, - 1657: 0x00009C1F, - 1658: 0x00009B8D, - 1659: 0x00025B74, - 1660: 0x0002313D, - 1661: 0x000055FB, - 1662: 0x000035F2, - 1663: 0x00005689, - 1664: 0x00004E28, - 1665: 0x00005902, - 1666: 0x00021BC1, - 1667: 0x0002F878, - 1668: 0x00009751, - 1669: 0x00020086, - 1670: 0x00004E5B, - 1671: 0x00004EBB, - 1672: 0x0000353E, - 1673: 0x00005C23, - 1674: 0x00005F51, - 1675: 0x00005FC4, - 1676: 0x000038FA, - 1677: 0x0000624C, - 1678: 0x00006535, - 1679: 0x00006B7A, - 1680: 0x00006C35, - 1681: 0x00006C3A, - 1682: 0x0000706C, - 1683: 0x0000722B, - 1684: 0x00004E2C, - 1685: 0x000072AD, - 1686: 0x000248E9, - 1687: 0x00007F52, - 1688: 0x0000793B, - 1689: 0x00007CF9, - 1690: 0x00007F53, - 1691: 0x0002626A, - 1692: 0x000034C1, - 1694: 0x0002634B, - 1695: 0x00008002, - 1696: 0x00008080, - 1697: 0x00026612, - 1698: 0x00026951, - 1699: 0x0000535D, - 1700: 0x00008864, - 1701: 0x000089C1, - 1702: 0x000278B2, - 1703: 0x00008BA0, - 1704: 0x00008D1D, - 1705: 0x00009485, - 1706: 0x00009578, - 1707: 0x0000957F, - 1708: 0x000095E8, - 1709: 0x00028E0F, - 1710: 0x000097E6, - 1711: 0x00009875, - 1712: 0x000098CE, - 1713: 0x000098DE, - 1714: 0x00009963, - 1715: 0x00029810, - 1716: 0x00009C7C, - 1717: 0x00009E1F, - 1718: 0x00009EC4, - 1719: 0x00006B6F, - 1720: 0x0000F907, - 1721: 0x00004E37, - 1722: 0x00020087, - 1723: 0x0000961D, - 1724: 0x00006237, - 1725: 0x000094A2, - 1727: 0x0000503B, - 1728: 0x00006DFE, - 1729: 0x00029C73, - 1730: 0x00009FA6, - 1731: 0x00003DC9, - 1732: 0x0000888F, - 1733: 0x0002414E, - 1734: 0x00007077, - 1735: 0x00005CF5, - 1736: 0x00004B20, - 1737: 0x000251CD, - 1738: 0x00003559, - 1739: 0x00025D30, - 1740: 0x00006122, - 1741: 0x00028A32, - 1742: 0x00008FA7, - 1743: 0x000091F6, - 1744: 0x00007191, - 1745: 0x00006719, - 1746: 0x000073BA, - 1747: 0x00023281, - 1748: 0x0002A107, - 1749: 0x00003C8B, - 1750: 0x00021980, - 1751: 0x00004B10, - 1752: 0x000078E4, - 1753: 0x00007402, - 1754: 0x000051AE, - 1755: 0x0002870F, - 1756: 0x00004009, - 1757: 0x00006A63, - 1758: 0x0002A2BA, - 1759: 0x00004223, - 1760: 0x0000860F, - 1761: 0x00020A6F, - 1762: 0x00007A2A, - 1763: 0x00029947, - 1764: 0x00028AEA, - 1765: 0x00009755, - 1766: 0x0000704D, - 1767: 0x00005324, - 1768: 0x0002207E, - 1769: 0x000093F4, - 1770: 0x000076D9, - 1771: 0x000289E3, - 1772: 0x00009FA7, - 1773: 0x000077DD, - 1774: 0x00004EA3, - 1775: 0x00004FF0, - 1776: 0x000050BC, - 1777: 0x00004E2F, - 1778: 0x00004F17, - 1779: 0x00009FA8, - 1780: 0x00005434, - 1781: 0x00007D8B, - 1782: 0x00005892, - 1783: 0x000058D0, - 1784: 0x00021DB6, - 1785: 0x00005E92, - 1786: 0x00005E99, - 1787: 0x00005FC2, - 1788: 0x00022712, - 1789: 0x0000658B, - 1790: 0x000233F9, - 1791: 0x00006919, - 1792: 0x00006A43, - 1793: 0x00023C63, - 1794: 0x00006CFF, - 1796: 0x00007200, - 1797: 0x00024505, - 1798: 0x0000738C, - 1799: 0x00003EDB, - 1800: 0x00024A13, - 1801: 0x00005B15, - 1802: 0x000074B9, - 1803: 0x00008B83, - 1804: 0x00025CA4, - 1805: 0x00025695, - 1806: 0x00007A93, - 1807: 0x00007BEC, - 1808: 0x00007CC3, - 1809: 0x00007E6C, - 1810: 0x000082F8, - 1811: 0x00008597, - 1812: 0x00009FA9, - 1813: 0x00008890, - 1814: 0x00009FAA, - 1815: 0x00008EB9, - 1816: 0x00009FAB, - 1817: 0x00008FCF, - 1818: 0x0000855F, - 1819: 0x000099E0, - 1820: 0x00009221, - 1821: 0x00009FAC, - 1822: 0x00028DB9, - 1823: 0x0002143F, - 1824: 0x00004071, - 1825: 0x000042A2, - 1826: 0x00005A1A, - 1830: 0x00009868, - 1831: 0x0000676B, - 1832: 0x00004276, - 1833: 0x0000573D, - 1835: 0x000085D6, - 1836: 0x0002497B, - 1837: 0x000082BF, - 1838: 0x0002710D, - 1839: 0x00004C81, - 1840: 0x00026D74, - 1841: 0x00005D7B, - 1842: 0x00026B15, - 1843: 0x00026FBE, - 1844: 0x00009FAD, - 1845: 0x00009FAE, - 1846: 0x00005B96, - 1847: 0x00009FAF, - 1848: 0x000066E7, - 1849: 0x00007E5B, - 1850: 0x00006E57, - 1851: 0x000079CA, - 1852: 0x00003D88, - 1853: 0x000044C3, - 1854: 0x00023256, - 1855: 0x00022796, - 1856: 0x0000439A, - 1857: 0x00004536, - 1859: 0x00005CD5, - 1860: 0x00023B1A, - 1861: 0x00008AF9, - 1862: 0x00005C78, - 1863: 0x00003D12, - 1864: 0x00023551, - 1865: 0x00005D78, - 1866: 0x00009FB2, - 1867: 0x00007157, - 1868: 0x00004558, - 1869: 0x000240EC, - 1870: 0x00021E23, - 1871: 0x00004C77, - 1872: 0x00003978, - 1873: 0x0000344A, - 1874: 0x000201A4, - 1875: 0x00026C41, - 1876: 0x00008ACC, - 1877: 0x00004FB4, - 1878: 0x00020239, - 1879: 0x000059BF, - 1880: 0x0000816C, - 1881: 0x00009856, - 1882: 0x000298FA, - 1883: 0x00005F3B, - 1884: 0x00020B9F, - 1886: 0x000221C1, - 1887: 0x0002896D, - 1888: 0x00004102, - 1889: 0x000046BB, - 1890: 0x00029079, - 1891: 0x00003F07, - 1892: 0x00009FB3, - 1893: 0x0002A1B5, - 1894: 0x000040F8, - 1895: 0x000037D6, - 1896: 0x000046F7, - 1897: 0x00026C46, - 1898: 0x0000417C, - 1899: 0x000286B2, - 1900: 0x000273FF, - 1901: 0x0000456D, - 1902: 0x000038D4, - 1903: 0x0002549A, - 1904: 0x00004561, - 1905: 0x0000451B, - 1906: 0x00004D89, - 1907: 0x00004C7B, - 1908: 0x00004D76, - 1909: 0x000045EA, - 1910: 0x00003FC8, - 1911: 0x00024B0F, - 1912: 0x00003661, - 1913: 0x000044DE, - 1914: 0x000044BD, - 1915: 0x000041ED, - 1916: 0x00005D3E, - 1917: 0x00005D48, - 1918: 0x00005D56, - 1919: 0x00003DFC, - 1920: 0x0000380F, - 1921: 0x00005DA4, - 1922: 0x00005DB9, - 1923: 0x00003820, - 1924: 0x00003838, - 1925: 0x00005E42, - 1926: 0x00005EBD, - 1927: 0x00005F25, - 1928: 0x00005F83, - 1929: 0x00003908, - 1930: 0x00003914, - 1931: 0x0000393F, - 1932: 0x0000394D, - 1933: 0x000060D7, - 1934: 0x0000613D, - 1935: 0x00005CE5, - 1936: 0x00003989, - 1937: 0x000061B7, - 1938: 0x000061B9, - 1939: 0x000061CF, - 1940: 0x000039B8, - 1941: 0x0000622C, - 1942: 0x00006290, - 1943: 0x000062E5, - 1944: 0x00006318, - 1945: 0x000039F8, - 1946: 0x000056B1, - 1947: 0x00003A03, - 1948: 0x000063E2, - 1949: 0x000063FB, - 1950: 0x00006407, - 1951: 0x0000645A, - 1952: 0x00003A4B, - 1953: 0x000064C0, - 1954: 0x00005D15, - 1955: 0x00005621, - 1956: 0x00009F9F, - 1957: 0x00003A97, - 1958: 0x00006586, - 1959: 0x00003ABD, - 1960: 0x000065FF, - 1961: 0x00006653, - 1962: 0x00003AF2, - 1963: 0x00006692, - 1964: 0x00003B22, - 1965: 0x00006716, - 1966: 0x00003B42, - 1967: 0x000067A4, - 1968: 0x00006800, - 1969: 0x00003B58, - 1970: 0x0000684A, - 1971: 0x00006884, - 1972: 0x00003B72, - 1973: 0x00003B71, - 1974: 0x00003B7B, - 1975: 0x00006909, - 1976: 0x00006943, - 1977: 0x0000725C, - 1978: 0x00006964, - 1979: 0x0000699F, - 1980: 0x00006985, - 1981: 0x00003BBC, - 1982: 0x000069D6, - 1983: 0x00003BDD, - 1984: 0x00006A65, - 1985: 0x00006A74, - 1986: 0x00006A71, - 1987: 0x00006A82, - 1988: 0x00003BEC, - 1989: 0x00006A99, - 1990: 0x00003BF2, - 1991: 0x00006AAB, - 1992: 0x00006AB5, - 1993: 0x00006AD4, - 1994: 0x00006AF6, - 1995: 0x00006B81, - 1996: 0x00006BC1, - 1997: 0x00006BEA, - 1998: 0x00006C75, - 1999: 0x00006CAA, - 2000: 0x00003CCB, - 2001: 0x00006D02, - 2002: 0x00006D06, - 2003: 0x00006D26, - 2004: 0x00006D81, - 2005: 0x00003CEF, - 2006: 0x00006DA4, - 2007: 0x00006DB1, - 2008: 0x00006E15, - 2009: 0x00006E18, - 2010: 0x00006E29, - 2011: 0x00006E86, - 2012: 0x000289C0, - 2013: 0x00006EBB, - 2014: 0x00006EE2, - 2015: 0x00006EDA, - 2016: 0x00009F7F, - 2017: 0x00006EE8, - 2018: 0x00006EE9, - 2019: 0x00006F24, - 2020: 0x00006F34, - 2021: 0x00003D46, - 2022: 0x00023F41, - 2023: 0x00006F81, - 2024: 0x00006FBE, - 2025: 0x00003D6A, - 2026: 0x00003D75, - 2027: 0x000071B7, - 2028: 0x00005C99, - 2029: 0x00003D8A, - 2030: 0x0000702C, - 2031: 0x00003D91, - 2032: 0x00007050, - 2033: 0x00007054, - 2034: 0x0000706F, - 2035: 0x0000707F, - 2036: 0x00007089, - 2037: 0x00020325, - 2038: 0x000043C1, - 2039: 0x000035F1, - 2040: 0x00020ED8, - 2041: 0x00023ED7, - 2042: 0x000057BE, - 2043: 0x00026ED3, - 2044: 0x0000713E, - 2045: 0x000257E0, - 2046: 0x0000364E, - 2047: 0x000069A2, - 2048: 0x00028BE9, - 2049: 0x00005B74, - 2050: 0x00007A49, - 2051: 0x000258E1, - 2052: 0x000294D9, - 2053: 0x00007A65, - 2054: 0x00007A7D, - 2055: 0x000259AC, - 2056: 0x00007ABB, - 2057: 0x00007AB0, - 2058: 0x00007AC2, - 2059: 0x00007AC3, - 2060: 0x000071D1, - 2061: 0x0002648D, - 2062: 0x000041CA, - 2063: 0x00007ADA, - 2064: 0x00007ADD, - 2065: 0x00007AEA, - 2066: 0x000041EF, - 2067: 0x000054B2, - 2068: 0x00025C01, - 2069: 0x00007B0B, - 2070: 0x00007B55, - 2071: 0x00007B29, - 2072: 0x0002530E, - 2073: 0x00025CFE, - 2074: 0x00007BA2, - 2075: 0x00007B6F, - 2076: 0x0000839C, - 2077: 0x00025BB4, - 2078: 0x00026C7F, - 2079: 0x00007BD0, - 2080: 0x00008421, - 2081: 0x00007B92, - 2082: 0x00007BB8, - 2083: 0x00025D20, - 2084: 0x00003DAD, - 2085: 0x00025C65, - 2086: 0x00008492, - 2087: 0x00007BFA, - 2088: 0x00007C06, - 2089: 0x00007C35, - 2090: 0x00025CC1, - 2091: 0x00007C44, - 2092: 0x00007C83, - 2093: 0x00024882, - 2094: 0x00007CA6, - 2095: 0x0000667D, - 2096: 0x00024578, - 2097: 0x00007CC9, - 2098: 0x00007CC7, - 2099: 0x00007CE6, - 2100: 0x00007C74, - 2101: 0x00007CF3, - 2102: 0x00007CF5, - 2103: 0x00007CCE, - 2104: 0x00007E67, - 2105: 0x0000451D, - 2106: 0x00026E44, - 2107: 0x00007D5D, - 2108: 0x00026ED6, - 2109: 0x0000748D, - 2110: 0x00007D89, - 2111: 0x00007DAB, - 2112: 0x00007135, - 2113: 0x00007DB3, - 2114: 0x00007DD2, - 2115: 0x00024057, - 2116: 0x00026029, - 2117: 0x00007DE4, - 2118: 0x00003D13, - 2119: 0x00007DF5, - 2120: 0x000217F9, - 2121: 0x00007DE5, - 2122: 0x0002836D, - 2123: 0x00007E1D, - 2124: 0x00026121, - 2125: 0x0002615A, - 2126: 0x00007E6E, - 2127: 0x00007E92, - 2128: 0x0000432B, - 2129: 0x0000946C, - 2130: 0x00007E27, - 2131: 0x00007F40, - 2132: 0x00007F41, - 2133: 0x00007F47, - 2134: 0x00007936, - 2135: 0x000262D0, - 2136: 0x000099E1, - 2137: 0x00007F97, - 2138: 0x00026351, - 2139: 0x00007FA3, - 2140: 0x00021661, - 2141: 0x00020068, - 2142: 0x0000455C, - 2143: 0x00023766, - 2144: 0x00004503, - 2145: 0x0002833A, - 2146: 0x00007FFA, - 2147: 0x00026489, - 2148: 0x00008005, - 2149: 0x00008008, - 2150: 0x0000801D, - 2151: 0x00008028, - 2152: 0x0000802F, - 2153: 0x0002A087, - 2154: 0x00026CC3, - 2155: 0x0000803B, - 2156: 0x0000803C, - 2157: 0x00008061, - 2158: 0x00022714, - 2159: 0x00004989, - 2160: 0x00026626, - 2161: 0x00023DE3, - 2162: 0x000266E8, - 2163: 0x00006725, - 2164: 0x000080A7, - 2165: 0x00028A48, - 2166: 0x00008107, - 2167: 0x0000811A, - 2168: 0x000058B0, - 2169: 0x000226F6, - 2170: 0x00006C7F, - 2171: 0x00026498, - 2172: 0x00024FB8, - 2173: 0x000064E7, - 2174: 0x0002148A, - 2175: 0x00008218, - 2176: 0x0002185E, - 2177: 0x00006A53, - 2178: 0x00024A65, - 2179: 0x00024A95, - 2180: 0x0000447A, - 2181: 0x00008229, - 2182: 0x00020B0D, - 2183: 0x00026A52, - 2184: 0x00023D7E, - 2185: 0x00004FF9, - 2186: 0x000214FD, - 2187: 0x000084E2, - 2188: 0x00008362, - 2189: 0x00026B0A, - 2190: 0x000249A7, - 2191: 0x00023530, - 2192: 0x00021773, - 2193: 0x00023DF8, - 2194: 0x000082AA, - 2195: 0x0000691B, - 2196: 0x0002F994, - 2197: 0x000041DB, - 2198: 0x0000854B, - 2199: 0x000082D0, - 2200: 0x0000831A, - 2201: 0x00020E16, - 2202: 0x000217B4, - 2203: 0x000036C1, - 2204: 0x0002317D, - 2205: 0x0002355A, - 2206: 0x0000827B, - 2207: 0x000082E2, - 2208: 0x00008318, - 2209: 0x00023E8B, - 2210: 0x00026DA3, - 2211: 0x00026B05, - 2212: 0x00026B97, - 2213: 0x000235CE, - 2214: 0x00003DBF, - 2215: 0x0000831D, - 2216: 0x000055EC, - 2217: 0x00008385, - 2218: 0x0000450B, - 2219: 0x00026DA5, - 2220: 0x000083AC, - 2221: 0x000083C1, - 2222: 0x000083D3, - 2223: 0x0000347E, - 2224: 0x00026ED4, - 2225: 0x00006A57, - 2226: 0x0000855A, - 2227: 0x00003496, - 2228: 0x00026E42, - 2229: 0x00022EEF, - 2230: 0x00008458, - 2231: 0x00025BE4, - 2232: 0x00008471, - 2233: 0x00003DD3, - 2234: 0x000044E4, - 2235: 0x00006AA7, - 2236: 0x0000844A, - 2237: 0x00023CB5, - 2238: 0x00007958, - 2239: 0x000084A8, - 2240: 0x00026B96, - 2241: 0x00026E77, - 2242: 0x00026E43, - 2243: 0x000084DE, - 2244: 0x0000840F, - 2245: 0x00008391, - 2246: 0x000044A0, - 2247: 0x00008493, - 2248: 0x000084E4, - 2249: 0x00025C91, - 2250: 0x00004240, - 2251: 0x00025CC0, - 2252: 0x00004543, - 2253: 0x00008534, - 2254: 0x00005AF2, - 2255: 0x00026E99, - 2256: 0x00004527, - 2257: 0x00008573, - 2258: 0x00004516, - 2259: 0x000067BF, - 2260: 0x00008616, - 2261: 0x00028625, - 2262: 0x0002863B, - 2263: 0x000085C1, - 2264: 0x00027088, - 2265: 0x00008602, - 2266: 0x00021582, - 2267: 0x000270CD, - 2268: 0x0002F9B2, - 2269: 0x0000456A, - 2270: 0x00008628, - 2271: 0x00003648, - 2272: 0x000218A2, - 2273: 0x000053F7, - 2274: 0x0002739A, - 2275: 0x0000867E, - 2276: 0x00008771, - 2277: 0x0002A0F8, - 2278: 0x000087EE, - 2279: 0x00022C27, - 2280: 0x000087B1, - 2281: 0x000087DA, - 2282: 0x0000880F, - 2283: 0x00005661, - 2284: 0x0000866C, - 2285: 0x00006856, - 2286: 0x0000460F, - 2287: 0x00008845, - 2288: 0x00008846, - 2289: 0x000275E0, - 2290: 0x00023DB9, - 2291: 0x000275E4, - 2292: 0x0000885E, - 2293: 0x0000889C, - 2294: 0x0000465B, - 2295: 0x000088B4, - 2296: 0x000088B5, - 2297: 0x000063C1, - 2298: 0x000088C5, - 2299: 0x00007777, - 2300: 0x0002770F, - 2301: 0x00008987, - 2302: 0x0000898A, - 2303: 0x000089A6, - 2304: 0x000089A9, - 2305: 0x000089A7, - 2306: 0x000089BC, - 2307: 0x00028A25, - 2308: 0x000089E7, - 2309: 0x00027924, - 2310: 0x00027ABD, - 2311: 0x00008A9C, - 2312: 0x00007793, - 2313: 0x000091FE, - 2314: 0x00008A90, - 2315: 0x00027A59, - 2316: 0x00007AE9, - 2317: 0x00027B3A, - 2318: 0x00023F8F, - 2319: 0x00004713, - 2320: 0x00027B38, - 2321: 0x0000717C, - 2322: 0x00008B0C, - 2323: 0x00008B1F, - 2324: 0x00025430, - 2325: 0x00025565, - 2326: 0x00008B3F, - 2327: 0x00008B4C, - 2328: 0x00008B4D, - 2329: 0x00008AA9, - 2330: 0x00024A7A, - 2331: 0x00008B90, - 2332: 0x00008B9B, - 2333: 0x00008AAF, - 2334: 0x000216DF, - 2335: 0x00004615, - 2336: 0x0000884F, - 2337: 0x00008C9B, - 2338: 0x00027D54, - 2339: 0x00027D8F, - 2340: 0x0002F9D4, - 2341: 0x00003725, - 2342: 0x00027D53, - 2343: 0x00008CD6, - 2344: 0x00027D98, - 2345: 0x00027DBD, - 2346: 0x00008D12, - 2347: 0x00008D03, - 2348: 0x00021910, - 2349: 0x00008CDB, - 2350: 0x0000705C, - 2351: 0x00008D11, - 2352: 0x00024CC9, - 2353: 0x00003ED0, - 2354: 0x00008D77, - 2355: 0x00008DA9, - 2356: 0x00028002, - 2357: 0x00021014, - 2358: 0x0002498A, - 2359: 0x00003B7C, - 2360: 0x000281BC, - 2361: 0x0002710C, - 2362: 0x00007AE7, - 2363: 0x00008EAD, - 2364: 0x00008EB6, - 2365: 0x00008EC3, - 2366: 0x000092D4, - 2367: 0x00008F19, - 2368: 0x00008F2D, - 2369: 0x00028365, - 2370: 0x00028412, - 2371: 0x00008FA5, - 2372: 0x00009303, - 2373: 0x0002A29F, - 2374: 0x00020A50, - 2375: 0x00008FB3, - 2376: 0x0000492A, - 2377: 0x000289DE, - 2378: 0x0002853D, - 2379: 0x00023DBB, - 2380: 0x00005EF8, - 2381: 0x00023262, - 2382: 0x00008FF9, - 2383: 0x0002A014, - 2384: 0x000286BC, - 2385: 0x00028501, - 2386: 0x00022325, - 2387: 0x00003980, - 2388: 0x00026ED7, - 2389: 0x00009037, - 2390: 0x0002853C, - 2391: 0x00027ABE, - 2392: 0x00009061, - 2393: 0x0002856C, - 2394: 0x0002860B, - 2395: 0x000090A8, - 2396: 0x00028713, - 2397: 0x000090C4, - 2398: 0x000286E6, - 2399: 0x000090AE, - 2400: 0x000090FD, - 2401: 0x00009167, - 2402: 0x00003AF0, - 2403: 0x000091A9, - 2404: 0x000091C4, - 2405: 0x00007CAC, - 2406: 0x00028933, - 2407: 0x00021E89, - 2408: 0x0000920E, - 2409: 0x00006C9F, - 2410: 0x00009241, - 2411: 0x00009262, - 2412: 0x000255B9, - 2413: 0x000092B9, - 2414: 0x00028AC6, - 2415: 0x00023C9B, - 2416: 0x00028B0C, - 2417: 0x000255DB, - 2418: 0x00020D31, - 2419: 0x0000932C, - 2420: 0x0000936B, - 2421: 0x00028AE1, - 2422: 0x00028BEB, - 2423: 0x0000708F, - 2424: 0x00005AC3, - 2425: 0x00028AE2, - 2426: 0x00028AE5, - 2427: 0x00004965, - 2428: 0x00009244, - 2429: 0x00028BEC, - 2430: 0x00028C39, - 2431: 0x00028BFF, - 2432: 0x00009373, - 2433: 0x0000945B, - 2434: 0x00008EBC, - 2435: 0x00009585, - 2436: 0x000095A6, - 2437: 0x00009426, - 2438: 0x000095A0, - 2439: 0x00006FF6, - 2440: 0x000042B9, - 2441: 0x0002267A, - 2442: 0x000286D8, - 2443: 0x0002127C, - 2444: 0x00023E2E, - 2445: 0x000049DF, - 2446: 0x00006C1C, - 2447: 0x0000967B, - 2448: 0x00009696, - 2449: 0x0000416C, - 2450: 0x000096A3, - 2451: 0x00026ED5, - 2452: 0x000061DA, - 2453: 0x000096B6, - 2454: 0x000078F5, - 2455: 0x00028AE0, - 2456: 0x000096BD, - 2457: 0x000053CC, - 2458: 0x000049A1, - 2459: 0x00026CB8, - 2460: 0x00020274, - 2461: 0x00026410, - 2462: 0x000290AF, - 2463: 0x000290E5, - 2464: 0x00024AD1, - 2465: 0x00021915, - 2466: 0x0002330A, - 2467: 0x00009731, - 2468: 0x00008642, - 2469: 0x00009736, - 2470: 0x00004A0F, - 2471: 0x0000453D, - 2472: 0x00004585, - 2473: 0x00024AE9, - 2474: 0x00007075, - 2475: 0x00005B41, - 2476: 0x0000971B, - 2477: 0x0000975C, - 2478: 0x000291D5, - 2479: 0x00009757, - 2480: 0x00005B4A, - 2481: 0x000291EB, - 2482: 0x0000975F, - 2483: 0x00009425, - 2484: 0x000050D0, - 2485: 0x000230B7, - 2486: 0x000230BC, - 2487: 0x00009789, - 2488: 0x0000979F, - 2489: 0x000097B1, - 2490: 0x000097BE, - 2491: 0x000097C0, - 2492: 0x000097D2, - 2493: 0x000097E0, - 2494: 0x0002546C, - 2495: 0x000097EE, - 2496: 0x0000741C, - 2497: 0x00029433, - 2498: 0x000097FF, - 2499: 0x000097F5, - 2500: 0x0002941D, - 2501: 0x0002797A, - 2502: 0x00004AD1, - 2503: 0x00009834, - 2504: 0x00009833, - 2505: 0x0000984B, - 2506: 0x00009866, - 2507: 0x00003B0E, - 2508: 0x00027175, - 2509: 0x00003D51, - 2510: 0x00020630, - 2511: 0x0002415C, - 2512: 0x00025706, - 2513: 0x000098CA, - 2514: 0x000098B7, - 2515: 0x000098C8, - 2516: 0x000098C7, - 2517: 0x00004AFF, - 2518: 0x00026D27, - 2519: 0x000216D3, - 2520: 0x000055B0, - 2521: 0x000098E1, - 2522: 0x000098E6, - 2523: 0x000098EC, - 2524: 0x00009378, - 2525: 0x00009939, - 2526: 0x00024A29, - 2527: 0x00004B72, - 2528: 0x00029857, - 2529: 0x00029905, - 2530: 0x000099F5, - 2531: 0x00009A0C, - 2532: 0x00009A3B, - 2533: 0x00009A10, - 2534: 0x00009A58, - 2535: 0x00025725, - 2536: 0x000036C4, - 2537: 0x000290B1, - 2538: 0x00029BD5, - 2539: 0x00009AE0, - 2540: 0x00009AE2, - 2541: 0x00029B05, - 2542: 0x00009AF4, - 2543: 0x00004C0E, - 2544: 0x00009B14, - 2545: 0x00009B2D, - 2546: 0x00028600, - 2547: 0x00005034, - 2548: 0x00009B34, - 2549: 0x000269A8, - 2550: 0x000038C3, - 2551: 0x0002307D, - 2552: 0x00009B50, - 2553: 0x00009B40, - 2554: 0x00029D3E, - 2555: 0x00005A45, - 2556: 0x00021863, - 2557: 0x00009B8E, - 2558: 0x0002424B, - 2559: 0x00009C02, - 2560: 0x00009BFF, - 2561: 0x00009C0C, - 2562: 0x00029E68, - 2563: 0x00009DD4, - 2564: 0x00029FB7, - 2565: 0x0002A192, - 2566: 0x0002A1AB, - 2567: 0x0002A0E1, - 2568: 0x0002A123, - 2569: 0x0002A1DF, - 2570: 0x00009D7E, - 2571: 0x00009D83, - 2572: 0x0002A134, - 2573: 0x00009E0E, - 2574: 0x00006888, - 2575: 0x00009DC4, - 2576: 0x0002215B, - 2577: 0x0002A193, - 2578: 0x0002A220, - 2579: 0x0002193B, - 2580: 0x0002A233, - 2581: 0x00009D39, - 2582: 0x0002A0B9, - 2583: 0x0002A2B4, - 2584: 0x00009E90, - 2585: 0x00009E95, - 2586: 0x00009E9E, - 2587: 0x00009EA2, - 2588: 0x00004D34, - 2589: 0x00009EAA, - 2590: 0x00009EAF, - 2591: 0x00024364, - 2592: 0x00009EC1, - 2593: 0x00003B60, - 2594: 0x000039E5, - 2595: 0x00003D1D, - 2596: 0x00004F32, - 2597: 0x000037BE, - 2598: 0x00028C2B, - 2599: 0x00009F02, - 2600: 0x00009F08, - 2601: 0x00004B96, - 2602: 0x00009424, - 2603: 0x00026DA2, - 2604: 0x00009F17, - 2605: 0x00009F16, - 2606: 0x00009F39, - 2607: 0x0000569F, - 2608: 0x0000568A, - 2609: 0x00009F45, - 2610: 0x000099B8, - 2611: 0x0002908B, - 2612: 0x000097F2, - 2613: 0x0000847F, - 2614: 0x00009F62, - 2615: 0x00009F69, - 2616: 0x00007ADC, - 2617: 0x00009F8E, - 2618: 0x00007216, - 2619: 0x00004BBE, - 2620: 0x00024975, - 2621: 0x000249BB, - 2622: 0x00007177, - 2623: 0x000249F8, - 2624: 0x00024348, - 2625: 0x00024A51, - 2626: 0x0000739E, - 2627: 0x00028BDA, - 2628: 0x000218FA, - 2629: 0x0000799F, - 2630: 0x0002897E, - 2631: 0x00028E36, - 2632: 0x00009369, - 2633: 0x000093F3, - 2634: 0x00028A44, - 2635: 0x000092EC, - 2636: 0x00009381, - 2637: 0x000093CB, - 2638: 0x0002896C, - 2639: 0x000244B9, - 2640: 0x00007217, - 2641: 0x00003EEB, - 2642: 0x00007772, - 2643: 0x00007A43, - 2644: 0x000070D0, - 2645: 0x00024473, - 2646: 0x000243F8, - 2647: 0x0000717E, - 2648: 0x000217EF, - 2649: 0x000070A3, - 2650: 0x000218BE, - 2651: 0x00023599, - 2652: 0x00003EC7, - 2653: 0x00021885, - 2654: 0x0002542F, - 2655: 0x000217F8, - 2656: 0x00003722, - 2657: 0x000216FB, - 2658: 0x00021839, - 2659: 0x000036E1, - 2660: 0x00021774, - 2661: 0x000218D1, - 2662: 0x00025F4B, - 2663: 0x00003723, - 2664: 0x000216C0, - 2665: 0x0000575B, - 2666: 0x00024A25, - 2667: 0x000213FE, - 2668: 0x000212A8, - 2669: 0x000213C6, - 2670: 0x000214B6, - 2671: 0x00008503, - 2672: 0x000236A6, - 2673: 0x00008503, - 2674: 0x00008455, - 2675: 0x00024994, - 2676: 0x00027165, - 2677: 0x00023E31, - 2678: 0x0002555C, - 2679: 0x00023EFB, - 2680: 0x00027052, - 2681: 0x000044F4, - 2682: 0x000236EE, - 2683: 0x0002999D, - 2684: 0x00026F26, - 2685: 0x000067F9, - 2686: 0x00003733, - 2687: 0x00003C15, - 2688: 0x00003DE7, - 2689: 0x0000586C, - 2690: 0x00021922, - 2691: 0x00006810, - 2692: 0x00004057, - 2693: 0x0002373F, - 2694: 0x000240E1, - 2695: 0x0002408B, - 2696: 0x0002410F, - 2697: 0x00026C21, - 2698: 0x000054CB, - 2699: 0x0000569E, - 2700: 0x000266B1, - 2701: 0x00005692, - 2702: 0x00020FDF, - 2703: 0x00020BA8, - 2704: 0x00020E0D, - 2705: 0x000093C6, - 2706: 0x00028B13, - 2707: 0x0000939C, - 2708: 0x00004EF8, - 2709: 0x0000512B, - 2710: 0x00003819, - 2711: 0x00024436, - 2712: 0x00004EBC, - 2713: 0x00020465, - 2714: 0x0002037F, - 2715: 0x00004F4B, - 2716: 0x00004F8A, - 2717: 0x00025651, - 2718: 0x00005A68, - 2719: 0x000201AB, - 2720: 0x000203CB, - 2721: 0x00003999, - 2722: 0x0002030A, - 2723: 0x00020414, - 2724: 0x00003435, - 2725: 0x00004F29, - 2726: 0x000202C0, - 2727: 0x00028EB3, - 2728: 0x00020275, - 2729: 0x00008ADA, - 2730: 0x0002020C, - 2731: 0x00004E98, - 2732: 0x000050CD, - 2733: 0x0000510D, - 2734: 0x00004FA2, - 2735: 0x00004F03, - 2736: 0x00024A0E, - 2737: 0x00023E8A, - 2738: 0x00004F42, - 2739: 0x0000502E, - 2740: 0x0000506C, - 2741: 0x00005081, - 2742: 0x00004FCC, - 2743: 0x00004FE5, - 2744: 0x00005058, - 2745: 0x000050FC, - 2746: 0x00005159, - 2747: 0x0000515B, - 2748: 0x0000515D, - 2749: 0x0000515E, - 2750: 0x00006E76, - 2751: 0x00023595, - 2752: 0x00023E39, - 2753: 0x00023EBF, - 2754: 0x00006D72, - 2755: 0x00021884, - 2756: 0x00023E89, - 2757: 0x000051A8, - 2758: 0x000051C3, - 2759: 0x000205E0, - 2760: 0x000044DD, - 2761: 0x000204A3, - 2762: 0x00020492, - 2763: 0x00020491, - 2764: 0x00008D7A, - 2765: 0x00028A9C, - 2766: 0x0002070E, - 2767: 0x00005259, - 2768: 0x000052A4, - 2769: 0x00020873, - 2770: 0x000052E1, - 2771: 0x0000936E, - 2772: 0x0000467A, - 2773: 0x0000718C, - 2774: 0x0002438C, - 2775: 0x00020C20, - 2776: 0x000249AC, - 2777: 0x000210E4, - 2778: 0x000069D1, - 2779: 0x00020E1D, - 2780: 0x00007479, - 2781: 0x00003EDE, - 2782: 0x00007499, - 2783: 0x00007414, - 2784: 0x00007456, - 2785: 0x00007398, - 2786: 0x00004B8E, - 2787: 0x00024ABC, - 2788: 0x0002408D, - 2789: 0x000053D0, - 2790: 0x00003584, - 2791: 0x0000720F, - 2792: 0x000240C9, - 2793: 0x000055B4, - 2794: 0x00020345, - 2795: 0x000054CD, - 2796: 0x00020BC6, - 2797: 0x0000571D, - 2798: 0x0000925D, - 2799: 0x000096F4, - 2800: 0x00009366, - 2801: 0x000057DD, - 2802: 0x0000578D, - 2803: 0x0000577F, - 2804: 0x0000363E, - 2805: 0x000058CB, - 2806: 0x00005A99, - 2807: 0x00028A46, - 2808: 0x000216FA, - 2809: 0x0002176F, - 2810: 0x00021710, - 2811: 0x00005A2C, - 2812: 0x000059B8, - 2813: 0x0000928F, - 2814: 0x00005A7E, - 2815: 0x00005ACF, - 2816: 0x00005A12, - 2817: 0x00025946, - 2818: 0x000219F3, - 2819: 0x00021861, - 2820: 0x00024295, - 2821: 0x000036F5, - 2822: 0x00006D05, - 2823: 0x00007443, - 2824: 0x00005A21, - 2825: 0x00025E83, - 2826: 0x00005A81, - 2827: 0x00028BD7, - 2828: 0x00020413, - 2829: 0x000093E0, - 2830: 0x0000748C, - 2831: 0x00021303, - 2832: 0x00007105, - 2833: 0x00004972, - 2834: 0x00009408, - 2835: 0x000289FB, - 2836: 0x000093BD, - 2837: 0x000037A0, - 2838: 0x00005C1E, - 2839: 0x00005C9E, - 2840: 0x00005E5E, - 2841: 0x00005E48, - 2842: 0x00021996, - 2843: 0x0002197C, - 2844: 0x00023AEE, - 2845: 0x00005ECD, - 2846: 0x00005B4F, - 2847: 0x00021903, - 2848: 0x00021904, - 2849: 0x00003701, - 2850: 0x000218A0, - 2851: 0x000036DD, - 2852: 0x000216FE, - 2853: 0x000036D3, - 2854: 0x0000812A, - 2855: 0x00028A47, - 2856: 0x00021DBA, - 2857: 0x00023472, - 2858: 0x000289A8, - 2859: 0x00005F0C, - 2860: 0x00005F0E, - 2861: 0x00021927, - 2862: 0x000217AB, - 2863: 0x00005A6B, - 2864: 0x0002173B, - 2865: 0x00005B44, - 2866: 0x00008614, - 2867: 0x000275FD, - 2868: 0x00008860, - 2869: 0x0000607E, - 2870: 0x00022860, - 2871: 0x0002262B, - 2872: 0x00005FDB, - 2873: 0x00003EB8, - 2874: 0x000225AF, - 2875: 0x000225BE, - 2876: 0x00029088, - 2877: 0x00026F73, - 2878: 0x000061C0, - 2879: 0x0002003E, - 2880: 0x00020046, - 2881: 0x0002261B, - 2882: 0x00006199, - 2883: 0x00006198, - 2884: 0x00006075, - 2885: 0x00022C9B, - 2886: 0x00022D07, - 2887: 0x000246D4, - 2888: 0x0002914D, - 2889: 0x00006471, - 2890: 0x00024665, - 2891: 0x00022B6A, - 2892: 0x00003A29, - 2893: 0x00022B22, - 2894: 0x00023450, - 2895: 0x000298EA, - 2896: 0x00022E78, - 2897: 0x00006337, - 2898: 0x0002A45B, - 2899: 0x000064B6, - 2900: 0x00006331, - 2901: 0x000063D1, - 2902: 0x000249E3, - 2903: 0x00022D67, - 2904: 0x000062A4, - 2905: 0x00022CA1, - 2906: 0x0000643B, - 2907: 0x0000656B, - 2908: 0x00006972, - 2909: 0x00003BF4, - 2910: 0x0002308E, - 2911: 0x000232AD, - 2912: 0x00024989, - 2913: 0x000232AB, - 2914: 0x0000550D, - 2915: 0x000232E0, - 2916: 0x000218D9, - 2917: 0x0002943F, - 2918: 0x000066CE, - 2919: 0x00023289, - 2920: 0x000231B3, - 2921: 0x00003AE0, - 2922: 0x00004190, - 2923: 0x00025584, - 2924: 0x00028B22, - 2925: 0x0002558F, - 2926: 0x000216FC, - 2927: 0x0002555B, - 2928: 0x00025425, - 2929: 0x000078EE, - 2930: 0x00023103, - 2931: 0x0002182A, - 2932: 0x00023234, - 2933: 0x00003464, - 2934: 0x0002320F, - 2935: 0x00023182, - 2936: 0x000242C9, - 2937: 0x0000668E, - 2938: 0x00026D24, - 2939: 0x0000666B, - 2940: 0x00004B93, - 2941: 0x00006630, - 2942: 0x00027870, - 2943: 0x00021DEB, - 2944: 0x00006663, - 2945: 0x000232D2, - 2946: 0x000232E1, - 2947: 0x0000661E, - 2948: 0x00025872, - 2949: 0x000038D1, - 2950: 0x0002383A, - 2951: 0x000237BC, - 2952: 0x00003B99, - 2953: 0x000237A2, - 2954: 0x000233FE, - 2955: 0x000074D0, - 2956: 0x00003B96, - 2957: 0x0000678F, - 2958: 0x0002462A, - 2959: 0x000068B6, - 2960: 0x0000681E, - 2961: 0x00003BC4, - 2962: 0x00006ABE, - 2963: 0x00003863, - 2964: 0x000237D5, - 2965: 0x00024487, - 2966: 0x00006A33, - 2967: 0x00006A52, - 2968: 0x00006AC9, - 2969: 0x00006B05, - 2970: 0x00021912, - 2971: 0x00006511, - 2972: 0x00006898, - 2973: 0x00006A4C, - 2974: 0x00003BD7, - 2975: 0x00006A7A, - 2976: 0x00006B57, - 2977: 0x00023FC0, - 2978: 0x00023C9A, - 2979: 0x000093A0, - 2980: 0x000092F2, - 2981: 0x00028BEA, - 2982: 0x00028ACB, - 2983: 0x00009289, - 2984: 0x0002801E, - 2985: 0x000289DC, - 2986: 0x00009467, - 2987: 0x00006DA5, - 2988: 0x00006F0B, - 2989: 0x000249EC, - 2990: 0x00006D67, - 2991: 0x00023F7F, - 2992: 0x00003D8F, - 2993: 0x00006E04, - 2994: 0x0002403C, - 2995: 0x00005A3D, - 2996: 0x00006E0A, - 2997: 0x00005847, - 2998: 0x00006D24, - 2999: 0x00007842, - 3000: 0x0000713B, - 3001: 0x0002431A, - 3002: 0x00024276, - 3003: 0x000070F1, - 3004: 0x00007250, - 3005: 0x00007287, - 3006: 0x00007294, - 3007: 0x0002478F, - 3008: 0x00024725, - 3009: 0x00005179, - 3010: 0x00024AA4, - 3011: 0x000205EB, - 3012: 0x0000747A, - 3013: 0x00023EF8, - 3014: 0x0002365F, - 3015: 0x00024A4A, - 3016: 0x00024917, - 3017: 0x00025FE1, - 3018: 0x00003F06, - 3019: 0x00003EB1, - 3020: 0x00024ADF, - 3021: 0x00028C23, - 3022: 0x00023F35, - 3023: 0x000060A7, - 3024: 0x00003EF3, - 3025: 0x000074CC, - 3026: 0x0000743C, - 3027: 0x00009387, - 3028: 0x00007437, - 3029: 0x0000449F, - 3030: 0x00026DEA, - 3031: 0x00004551, - 3032: 0x00007583, - 3033: 0x00003F63, - 3034: 0x00024CD9, - 3035: 0x00024D06, - 3036: 0x00003F58, - 3037: 0x00007555, - 3038: 0x00007673, - 3039: 0x0002A5C6, - 3040: 0x00003B19, - 3041: 0x00007468, - 3042: 0x00028ACC, - 3043: 0x000249AB, - 3044: 0x0002498E, - 3045: 0x00003AFB, - 3046: 0x00003DCD, - 3047: 0x00024A4E, - 3048: 0x00003EFF, - 3049: 0x000249C5, - 3050: 0x000248F3, - 3051: 0x000091FA, - 3052: 0x00005732, - 3053: 0x00009342, - 3054: 0x00028AE3, - 3055: 0x00021864, - 3056: 0x000050DF, - 3057: 0x00025221, - 3058: 0x000251E7, - 3059: 0x00007778, - 3060: 0x00023232, - 3061: 0x0000770E, - 3062: 0x0000770F, - 3063: 0x0000777B, - 3064: 0x00024697, - 3065: 0x00023781, - 3066: 0x00003A5E, - 3067: 0x000248F0, - 3068: 0x00007438, - 3069: 0x0000749B, - 3070: 0x00003EBF, - 3071: 0x00024ABA, - 3072: 0x00024AC7, - 3073: 0x000040C8, - 3074: 0x00024A96, - 3075: 0x000261AE, - 3076: 0x00009307, - 3077: 0x00025581, - 3078: 0x0000781E, - 3079: 0x0000788D, - 3080: 0x00007888, - 3081: 0x000078D2, - 3082: 0x000073D0, - 3083: 0x00007959, - 3084: 0x00027741, - 3085: 0x000256E3, - 3086: 0x0000410E, - 3087: 0x0000799B, - 3088: 0x00008496, - 3089: 0x000079A5, - 3090: 0x00006A2D, - 3091: 0x00023EFA, - 3092: 0x00007A3A, - 3093: 0x000079F4, - 3094: 0x0000416E, - 3095: 0x000216E6, - 3096: 0x00004132, - 3097: 0x00009235, - 3098: 0x000079F1, - 3099: 0x00020D4C, - 3100: 0x0002498C, - 3101: 0x00020299, - 3102: 0x00023DBA, - 3103: 0x0002176E, - 3104: 0x00003597, - 3105: 0x0000556B, - 3106: 0x00003570, - 3107: 0x000036AA, - 3108: 0x000201D4, - 3109: 0x00020C0D, - 3110: 0x00007AE2, - 3111: 0x00005A59, - 3112: 0x000226F5, - 3113: 0x00025AAF, - 3114: 0x00025A9C, - 3115: 0x00005A0D, - 3116: 0x0002025B, - 3117: 0x000078F0, - 3118: 0x00005A2A, - 3119: 0x00025BC6, - 3120: 0x00007AFE, - 3121: 0x000041F9, - 3122: 0x00007C5D, - 3123: 0x00007C6D, - 3124: 0x00004211, - 3125: 0x00025BB3, - 3126: 0x00025EBC, - 3127: 0x00025EA6, - 3128: 0x00007CCD, - 3129: 0x000249F9, - 3130: 0x000217B0, - 3131: 0x00007C8E, - 3132: 0x00007C7C, - 3133: 0x00007CAE, - 3134: 0x00006AB2, - 3135: 0x00007DDC, - 3136: 0x00007E07, - 3137: 0x00007DD3, - 3138: 0x00007F4E, - 3139: 0x00026261, - 3140: 0x0002615C, - 3141: 0x00027B48, - 3142: 0x00007D97, - 3143: 0x00025E82, - 3144: 0x0000426A, - 3145: 0x00026B75, - 3146: 0x00020916, - 3147: 0x000067D6, - 3148: 0x0002004E, - 3149: 0x000235CF, - 3150: 0x000057C4, - 3151: 0x00026412, - 3152: 0x000263F8, - 3153: 0x00024962, - 3154: 0x00007FDD, - 3155: 0x00007B27, - 3156: 0x0002082C, - 3157: 0x00025AE9, - 3158: 0x00025D43, - 3159: 0x00007B0C, - 3160: 0x00025E0E, - 3161: 0x000099E6, - 3162: 0x00008645, - 3163: 0x00009A63, - 3164: 0x00006A1C, - 3165: 0x0002343F, - 3166: 0x000039E2, - 3167: 0x000249F7, - 3168: 0x000265AD, - 3169: 0x00009A1F, - 3170: 0x000265A0, - 3171: 0x00008480, - 3172: 0x00027127, - 3173: 0x00026CD1, - 3174: 0x000044EA, - 3175: 0x00008137, - 3176: 0x00004402, - 3177: 0x000080C6, - 3178: 0x00008109, - 3179: 0x00008142, - 3180: 0x000267B4, - 3181: 0x000098C3, - 3182: 0x00026A42, - 3183: 0x00008262, - 3184: 0x00008265, - 3185: 0x00026A51, - 3186: 0x00008453, - 3187: 0x00026DA7, - 3188: 0x00008610, - 3189: 0x0002721B, - 3190: 0x00005A86, - 3191: 0x0000417F, - 3192: 0x00021840, - 3193: 0x00005B2B, - 3194: 0x000218A1, - 3195: 0x00005AE4, - 3196: 0x000218D8, - 3197: 0x000086A0, - 3198: 0x0002F9BC, - 3199: 0x00023D8F, - 3200: 0x0000882D, - 3201: 0x00027422, - 3202: 0x00005A02, - 3203: 0x0000886E, - 3204: 0x00004F45, - 3205: 0x00008887, - 3206: 0x000088BF, - 3207: 0x000088E6, - 3208: 0x00008965, - 3209: 0x0000894D, - 3210: 0x00025683, - 3211: 0x00008954, - 3212: 0x00027785, - 3213: 0x00027784, - 3214: 0x00028BF5, - 3215: 0x00028BD9, - 3216: 0x00028B9C, - 3217: 0x000289F9, - 3218: 0x00003EAD, - 3219: 0x000084A3, - 3220: 0x000046F5, - 3221: 0x000046CF, - 3222: 0x000037F2, - 3223: 0x00008A3D, - 3224: 0x00008A1C, - 3225: 0x00029448, - 3226: 0x00005F4D, - 3227: 0x0000922B, - 3228: 0x00024284, - 3229: 0x000065D4, - 3230: 0x00007129, - 3231: 0x000070C4, - 3232: 0x00021845, - 3233: 0x00009D6D, - 3234: 0x00008C9F, - 3235: 0x00008CE9, - 3236: 0x00027DDC, - 3237: 0x0000599A, - 3238: 0x000077C3, - 3239: 0x000059F0, - 3240: 0x0000436E, - 3241: 0x000036D4, - 3242: 0x00008E2A, - 3243: 0x00008EA7, - 3244: 0x00024C09, - 3245: 0x00008F30, - 3246: 0x00008F4A, - 3247: 0x000042F4, - 3248: 0x00006C58, - 3249: 0x00006FBB, - 3250: 0x00022321, - 3251: 0x0000489B, - 3252: 0x00006F79, - 3253: 0x00006E8B, - 3254: 0x000217DA, - 3255: 0x00009BE9, - 3256: 0x000036B5, - 3257: 0x0002492F, - 3258: 0x000090BB, - 3259: 0x00009097, - 3260: 0x00005571, - 3261: 0x00004906, - 3262: 0x000091BB, - 3263: 0x00009404, - 3264: 0x00028A4B, - 3265: 0x00004062, - 3266: 0x00028AFC, - 3267: 0x00009427, - 3268: 0x00028C1D, - 3269: 0x00028C3B, - 3270: 0x000084E5, - 3271: 0x00008A2B, - 3272: 0x00009599, - 3273: 0x000095A7, - 3274: 0x00009597, - 3275: 0x00009596, - 3276: 0x00028D34, - 3277: 0x00007445, - 3278: 0x00003EC2, - 3279: 0x000248FF, - 3280: 0x00024A42, - 3281: 0x000243EA, - 3282: 0x00003EE7, - 3283: 0x00023225, - 3284: 0x0000968F, - 3285: 0x00028EE7, - 3286: 0x00028E66, - 3287: 0x00028E65, - 3288: 0x00003ECC, - 3289: 0x000249ED, - 3290: 0x00024A78, - 3291: 0x00023FEE, - 3292: 0x00007412, - 3293: 0x0000746B, - 3294: 0x00003EFC, - 3295: 0x00009741, - 3296: 0x000290B0, - 3297: 0x00006847, - 3298: 0x00004A1D, - 3299: 0x00029093, - 3300: 0x000257DF, - 3301: 0x0000975D, - 3302: 0x00009368, - 3303: 0x00028989, - 3304: 0x00028C26, - 3305: 0x00028B2F, - 3306: 0x000263BE, - 3307: 0x000092BA, - 3308: 0x00005B11, - 3309: 0x00008B69, - 3310: 0x0000493C, - 3311: 0x000073F9, - 3312: 0x0002421B, - 3313: 0x0000979B, - 3314: 0x00009771, - 3315: 0x00009938, - 3316: 0x00020F26, - 3317: 0x00005DC1, - 3318: 0x00028BC5, - 3319: 0x00024AB2, - 3320: 0x0000981F, - 3321: 0x000294DA, - 3322: 0x000092F6, - 3323: 0x000295D7, - 3324: 0x000091E5, - 3325: 0x000044C0, - 3326: 0x00028B50, - 3327: 0x00024A67, - 3328: 0x00028B64, - 3329: 0x000098DC, - 3330: 0x00028A45, - 3331: 0x00003F00, - 3332: 0x0000922A, - 3333: 0x00004925, - 3334: 0x00008414, - 3335: 0x0000993B, - 3336: 0x0000994D, - 3337: 0x00027B06, - 3338: 0x00003DFD, - 3339: 0x0000999B, - 3340: 0x00004B6F, - 3341: 0x000099AA, - 3342: 0x00009A5C, - 3343: 0x00028B65, - 3344: 0x000258C8, - 3345: 0x00006A8F, - 3346: 0x00009A21, - 3347: 0x00005AFE, - 3348: 0x00009A2F, - 3349: 0x000298F1, - 3350: 0x00004B90, - 3351: 0x00029948, - 3352: 0x000099BC, - 3353: 0x00004BBD, - 3354: 0x00004B97, - 3355: 0x0000937D, - 3356: 0x00005872, - 3357: 0x00021302, - 3358: 0x00005822, - 3359: 0x000249B8, - 3360: 0x000214E8, - 3361: 0x00007844, - 3362: 0x0002271F, - 3363: 0x00023DB8, - 3364: 0x000068C5, - 3365: 0x00003D7D, - 3366: 0x00009458, - 3367: 0x00003927, - 3368: 0x00006150, - 3369: 0x00022781, - 3370: 0x0002296B, - 3371: 0x00006107, - 3372: 0x00009C4F, - 3373: 0x00009C53, - 3374: 0x00009C7B, - 3375: 0x00009C35, - 3376: 0x00009C10, - 3377: 0x00009B7F, - 3378: 0x00009BCF, - 3379: 0x00029E2D, - 3380: 0x00009B9F, - 3381: 0x0002A1F5, - 3382: 0x0002A0FE, - 3383: 0x00009D21, - 3384: 0x00004CAE, - 3385: 0x00024104, - 3386: 0x00009E18, - 3387: 0x00004CB0, - 3388: 0x00009D0C, - 3389: 0x0002A1B4, - 3390: 0x0002A0ED, - 3391: 0x0002A0F3, - 3392: 0x0002992F, - 3393: 0x00009DA5, - 3394: 0x000084BD, - 3395: 0x00026E12, - 3396: 0x00026FDF, - 3397: 0x00026B82, - 3398: 0x000085FC, - 3399: 0x00004533, - 3400: 0x00026DA4, - 3401: 0x00026E84, - 3402: 0x00026DF0, - 3403: 0x00008420, - 3404: 0x000085EE, - 3405: 0x00026E00, - 3406: 0x000237D7, - 3407: 0x00026064, - 3408: 0x000079E2, - 3409: 0x0002359C, - 3410: 0x00023640, - 3411: 0x0000492D, - 3412: 0x000249DE, - 3413: 0x00003D62, - 3414: 0x000093DB, - 3415: 0x000092BE, - 3416: 0x00009348, - 3417: 0x000202BF, - 3418: 0x000078B9, - 3419: 0x00009277, - 3420: 0x0000944D, - 3421: 0x00004FE4, - 3422: 0x00003440, - 3423: 0x00009064, - 3424: 0x0002555D, - 3425: 0x0000783D, - 3426: 0x00007854, - 3427: 0x000078B6, - 3428: 0x0000784B, - 3429: 0x00021757, - 3430: 0x000231C9, - 3431: 0x00024941, - 3432: 0x0000369A, - 3433: 0x00004F72, - 3434: 0x00006FDA, - 3435: 0x00006FD9, - 3436: 0x0000701E, - 3437: 0x0000701E, - 3438: 0x00005414, - 3439: 0x000241B5, - 3440: 0x000057BB, - 3441: 0x000058F3, - 3442: 0x0000578A, - 3443: 0x00009D16, - 3444: 0x000057D7, - 3445: 0x00007134, - 3446: 0x000034AF, - 3447: 0x000241AC, - 3448: 0x000071EB, - 3449: 0x00026C40, - 3450: 0x00024F97, - 3451: 0x00005B28, - 3452: 0x000217B5, - 3453: 0x00028A49, - 3454: 0x0000610C, - 3455: 0x00005ACE, - 3456: 0x00005A0B, - 3457: 0x000042BC, - 3458: 0x00024488, - 3459: 0x0000372C, - 3460: 0x00004B7B, - 3461: 0x000289FC, - 3462: 0x000093BB, - 3463: 0x000093B8, - 3464: 0x000218D6, - 3465: 0x00020F1D, - 3466: 0x00008472, - 3467: 0x00026CC0, - 3468: 0x00021413, - 3469: 0x000242FA, - 3470: 0x00022C26, - 3471: 0x000243C1, - 3472: 0x00005994, - 3473: 0x00023DB7, - 3474: 0x00026741, - 3475: 0x00007DA8, - 3476: 0x0002615B, - 3477: 0x000260A4, - 3478: 0x000249B9, - 3479: 0x0002498B, - 3480: 0x000289FA, - 3481: 0x000092E5, - 3482: 0x000073E2, - 3483: 0x00003EE9, - 3484: 0x000074B4, - 3485: 0x00028B63, - 3486: 0x0002189F, - 3487: 0x00003EE1, - 3488: 0x00024AB3, - 3489: 0x00006AD8, - 3490: 0x000073F3, - 3491: 0x000073FB, - 3492: 0x00003ED6, - 3493: 0x00024A3E, - 3494: 0x00024A94, - 3495: 0x000217D9, - 3496: 0x00024A66, - 3497: 0x000203A7, - 3498: 0x00021424, - 3499: 0x000249E5, - 3500: 0x00007448, - 3501: 0x00024916, - 3502: 0x000070A5, - 3503: 0x00024976, - 3504: 0x00009284, - 3505: 0x000073E6, - 3506: 0x0000935F, - 3507: 0x000204FE, - 3508: 0x00009331, - 3509: 0x00028ACE, - 3510: 0x00028A16, - 3511: 0x00009386, - 3512: 0x00028BE7, - 3513: 0x000255D5, - 3514: 0x00004935, - 3515: 0x00028A82, - 3516: 0x0000716B, - 3517: 0x00024943, - 3518: 0x00020CFF, - 3519: 0x000056A4, - 3520: 0x0002061A, - 3521: 0x00020BEB, - 3522: 0x00020CB8, - 3523: 0x00005502, - 3524: 0x000079C4, - 3525: 0x000217FA, - 3526: 0x00007DFE, - 3527: 0x000216C2, - 3528: 0x00024A50, - 3529: 0x00021852, - 3530: 0x0000452E, - 3531: 0x00009401, - 3532: 0x0000370A, - 3533: 0x00028AC0, - 3534: 0x000249AD, - 3535: 0x000059B0, - 3536: 0x000218BF, - 3537: 0x00021883, - 3538: 0x00027484, - 3539: 0x00005AA1, - 3540: 0x000036E2, - 3541: 0x00023D5B, - 3542: 0x000036B0, - 3543: 0x0000925F, - 3544: 0x00005A79, - 3545: 0x00028A81, - 3546: 0x00021862, - 3547: 0x00009374, - 3548: 0x00003CCD, - 3549: 0x00020AB4, - 3550: 0x00004A96, - 3551: 0x0000398A, - 3552: 0x000050F4, - 3553: 0x00003D69, - 3554: 0x00003D4C, - 3555: 0x0002139C, - 3556: 0x00007175, - 3557: 0x000042FB, - 3558: 0x00028218, - 3559: 0x00006E0F, - 3560: 0x000290E4, - 3561: 0x000044EB, - 3562: 0x00006D57, - 3563: 0x00027E4F, - 3564: 0x00007067, - 3565: 0x00006CAF, - 3566: 0x00003CD6, - 3567: 0x00023FED, - 3568: 0x00023E2D, - 3569: 0x00006E02, - 3570: 0x00006F0C, - 3571: 0x00003D6F, - 3572: 0x000203F5, - 3573: 0x00007551, - 3574: 0x000036BC, - 3575: 0x000034C8, - 3576: 0x00004680, - 3577: 0x00003EDA, - 3578: 0x00004871, - 3579: 0x000059C4, - 3580: 0x0000926E, - 3581: 0x0000493E, - 3582: 0x00008F41, - 3583: 0x00028C1C, - 3584: 0x00026BC0, - 3585: 0x00005812, - 3586: 0x000057C8, - 3587: 0x000036D6, - 3588: 0x00021452, - 3589: 0x000070FE, - 3590: 0x00024362, - 3591: 0x00024A71, - 3592: 0x00022FE3, - 3593: 0x000212B0, - 3594: 0x000223BD, - 3595: 0x000068B9, - 3596: 0x00006967, - 3597: 0x00021398, - 3598: 0x000234E5, - 3599: 0x00027BF4, - 3600: 0x000236DF, - 3601: 0x00028A83, - 3602: 0x000237D6, - 3603: 0x000233FA, - 3604: 0x00024C9F, - 3605: 0x00006A1A, - 3606: 0x000236AD, - 3607: 0x00026CB7, - 3608: 0x0000843E, - 3609: 0x000044DF, - 3610: 0x000044CE, - 3611: 0x00026D26, - 3612: 0x00026D51, - 3613: 0x00026C82, - 3614: 0x00026FDE, - 3615: 0x00006F17, - 3616: 0x00027109, - 3617: 0x0000833D, - 3618: 0x0002173A, - 3619: 0x000083ED, - 3620: 0x00026C80, - 3621: 0x00027053, - 3622: 0x000217DB, - 3623: 0x00005989, - 3624: 0x00005A82, - 3625: 0x000217B3, - 3626: 0x00005A61, - 3627: 0x00005A71, - 3628: 0x00021905, - 3629: 0x000241FC, - 3630: 0x0000372D, - 3631: 0x000059EF, - 3632: 0x0002173C, - 3633: 0x000036C7, - 3634: 0x0000718E, - 3635: 0x00009390, - 3636: 0x0000669A, - 3637: 0x000242A5, - 3638: 0x00005A6E, - 3639: 0x00005A2B, - 3640: 0x00024293, - 3641: 0x00006A2B, - 3642: 0x00023EF9, - 3643: 0x00027736, - 3644: 0x0002445B, - 3645: 0x000242CA, - 3646: 0x0000711D, - 3647: 0x00024259, - 3648: 0x000289E1, - 3649: 0x00004FB0, - 3650: 0x00026D28, - 3651: 0x00005CC2, - 3652: 0x000244CE, - 3653: 0x00027E4D, - 3654: 0x000243BD, - 3655: 0x00006A0C, - 3656: 0x00024256, - 3657: 0x00021304, - 3658: 0x000070A6, - 3659: 0x00007133, - 3660: 0x000243E9, - 3661: 0x00003DA5, - 3662: 0x00006CDF, - 3663: 0x0002F825, - 3664: 0x00024A4F, - 3665: 0x00007E65, - 3666: 0x000059EB, - 3667: 0x00005D2F, - 3668: 0x00003DF3, - 3669: 0x00005F5C, - 3670: 0x00024A5D, - 3671: 0x000217DF, - 3672: 0x00007DA4, - 3673: 0x00008426, - 3674: 0x00005485, - 3675: 0x00023AFA, - 3676: 0x00023300, - 3677: 0x00020214, - 3678: 0x0000577E, - 3679: 0x000208D5, - 3680: 0x00020619, - 3681: 0x00003FE5, - 3682: 0x00021F9E, - 3683: 0x0002A2B6, - 3684: 0x00007003, - 3685: 0x0002915B, - 3686: 0x00005D70, - 3687: 0x0000738F, - 3688: 0x00007CD3, - 3689: 0x00028A59, - 3690: 0x00029420, - 3691: 0x00004FC8, - 3692: 0x00007FE7, - 3693: 0x000072CD, - 3694: 0x00007310, - 3695: 0x00027AF4, - 3696: 0x00007338, - 3697: 0x00007339, - 3698: 0x000256F6, - 3699: 0x00007341, - 3700: 0x00007348, - 3701: 0x00003EA9, - 3702: 0x00027B18, - 3703: 0x0000906C, - 3704: 0x000071F5, - 3705: 0x000248F2, - 3706: 0x000073E1, - 3707: 0x000081F6, - 3708: 0x00003ECA, - 3709: 0x0000770C, - 3710: 0x00003ED1, - 3711: 0x00006CA2, - 3712: 0x000056FD, - 3713: 0x00007419, - 3714: 0x0000741E, - 3715: 0x0000741F, - 3716: 0x00003EE2, - 3717: 0x00003EF0, - 3718: 0x00003EF4, - 3719: 0x00003EFA, - 3720: 0x000074D3, - 3721: 0x00003F0E, - 3722: 0x00003F53, - 3723: 0x00007542, - 3724: 0x0000756D, - 3725: 0x00007572, - 3726: 0x0000758D, - 3727: 0x00003F7C, - 3728: 0x000075C8, - 3729: 0x000075DC, - 3730: 0x00003FC0, - 3731: 0x0000764D, - 3732: 0x00003FD7, - 3733: 0x00007674, - 3734: 0x00003FDC, - 3735: 0x0000767A, - 3736: 0x00024F5C, - 3737: 0x00007188, - 3738: 0x00005623, - 3739: 0x00008980, - 3740: 0x00005869, - 3741: 0x0000401D, - 3742: 0x00007743, - 3743: 0x00004039, - 3744: 0x00006761, - 3745: 0x00004045, - 3746: 0x000035DB, - 3747: 0x00007798, - 3748: 0x0000406A, - 3749: 0x0000406F, - 3750: 0x00005C5E, - 3751: 0x000077BE, - 3752: 0x000077CB, - 3753: 0x000058F2, - 3754: 0x00007818, - 3755: 0x000070B9, - 3756: 0x0000781C, - 3757: 0x000040A8, - 3758: 0x00007839, - 3759: 0x00007847, - 3760: 0x00007851, - 3761: 0x00007866, - 3762: 0x00008448, - 3763: 0x00025535, - 3764: 0x00007933, - 3765: 0x00006803, - 3766: 0x00007932, - 3767: 0x00004103, - 3768: 0x00004109, - 3769: 0x00007991, - 3770: 0x00007999, - 3771: 0x00008FBB, - 3772: 0x00007A06, - 3773: 0x00008FBC, - 3774: 0x00004167, - 3775: 0x00007A91, - 3776: 0x000041B2, - 3777: 0x00007ABC, - 3778: 0x00008279, - 3779: 0x000041C4, - 3780: 0x00007ACF, - 3781: 0x00007ADB, - 3782: 0x000041CF, - 3783: 0x00004E21, - 3784: 0x00007B62, - 3785: 0x00007B6C, - 3786: 0x00007B7B, - 3787: 0x00007C12, - 3788: 0x00007C1B, - 3789: 0x00004260, - 3790: 0x0000427A, - 3791: 0x00007C7B, - 3792: 0x00007C9C, - 3793: 0x0000428C, - 3794: 0x00007CB8, - 3795: 0x00004294, - 3796: 0x00007CED, - 3797: 0x00008F93, - 3798: 0x000070C0, - 3799: 0x00020CCF, - 3800: 0x00007DCF, - 3801: 0x00007DD4, - 3802: 0x00007DD0, - 3803: 0x00007DFD, - 3804: 0x00007FAE, - 3805: 0x00007FB4, - 3806: 0x0000729F, - 3807: 0x00004397, - 3808: 0x00008020, - 3809: 0x00008025, - 3810: 0x00007B39, - 3811: 0x0000802E, - 3812: 0x00008031, - 3813: 0x00008054, - 3814: 0x00003DCC, - 3815: 0x000057B4, - 3816: 0x000070A0, - 3817: 0x000080B7, - 3818: 0x000080E9, - 3819: 0x000043ED, - 3820: 0x0000810C, - 3821: 0x0000732A, - 3822: 0x0000810E, - 3823: 0x00008112, - 3824: 0x00007560, - 3825: 0x00008114, - 3826: 0x00004401, - 3827: 0x00003B39, - 3828: 0x00008156, - 3829: 0x00008159, - 3830: 0x0000815A, - 3831: 0x00004413, - 3832: 0x0000583A, - 3833: 0x0000817C, - 3834: 0x00008184, - 3835: 0x00004425, - 3836: 0x00008193, - 3837: 0x0000442D, - 3838: 0x000081A5, - 3839: 0x000057EF, - 3840: 0x000081C1, - 3841: 0x000081E4, - 3842: 0x00008254, - 3843: 0x0000448F, - 3844: 0x000082A6, - 3845: 0x00008276, - 3846: 0x000082CA, - 3847: 0x000082D8, - 3848: 0x000082FF, - 3849: 0x000044B0, - 3850: 0x00008357, - 3851: 0x00009669, - 3852: 0x0000698A, - 3853: 0x00008405, - 3854: 0x000070F5, - 3855: 0x00008464, - 3856: 0x000060E3, - 3857: 0x00008488, - 3858: 0x00004504, - 3859: 0x000084BE, - 3860: 0x000084E1, - 3861: 0x000084F8, - 3862: 0x00008510, - 3863: 0x00008538, - 3864: 0x00008552, - 3865: 0x0000453B, - 3866: 0x0000856F, - 3867: 0x00008570, - 3868: 0x000085E0, - 3869: 0x00004577, - 3870: 0x00008672, - 3871: 0x00008692, - 3872: 0x000086B2, - 3873: 0x000086EF, - 3874: 0x00009645, - 3875: 0x0000878B, - 3876: 0x00004606, - 3877: 0x00004617, - 3878: 0x000088AE, - 3879: 0x000088FF, - 3880: 0x00008924, - 3881: 0x00008947, - 3882: 0x00008991, - 3883: 0x00027967, - 3884: 0x00008A29, - 3885: 0x00008A38, - 3886: 0x00008A94, - 3887: 0x00008AB4, - 3888: 0x00008C51, - 3889: 0x00008CD4, - 3890: 0x00008CF2, - 3891: 0x00008D1C, - 3892: 0x00004798, - 3893: 0x0000585F, - 3894: 0x00008DC3, - 3895: 0x000047ED, - 3896: 0x00004EEE, - 3897: 0x00008E3A, - 3898: 0x000055D8, - 3899: 0x00005754, - 3900: 0x00008E71, - 3901: 0x000055F5, - 3902: 0x00008EB0, - 3903: 0x00004837, - 3904: 0x00008ECE, - 3905: 0x00008EE2, - 3906: 0x00008EE4, - 3907: 0x00008EED, - 3908: 0x00008EF2, - 3909: 0x00008FB7, - 3910: 0x00008FC1, - 3911: 0x00008FCA, - 3912: 0x00008FCC, - 3913: 0x00009033, - 3914: 0x000099C4, - 3915: 0x000048AD, - 3916: 0x000098E0, - 3917: 0x00009213, - 3918: 0x0000491E, - 3919: 0x00009228, - 3920: 0x00009258, - 3921: 0x0000926B, - 3922: 0x000092B1, - 3923: 0x000092AE, - 3924: 0x000092BF, - 3925: 0x000092E3, - 3926: 0x000092EB, - 3927: 0x000092F3, - 3928: 0x000092F4, - 3929: 0x000092FD, - 3930: 0x00009343, - 3931: 0x00009384, - 3932: 0x000093AD, - 3933: 0x00004945, - 3934: 0x00004951, - 3935: 0x00009EBF, - 3936: 0x00009417, - 3937: 0x00005301, - 3938: 0x0000941D, - 3939: 0x0000942D, - 3940: 0x0000943E, - 3941: 0x0000496A, - 3942: 0x00009454, - 3943: 0x00009479, - 3944: 0x0000952D, - 3945: 0x000095A2, - 3946: 0x000049A7, - 3947: 0x000095F4, - 3948: 0x00009633, - 3949: 0x000049E5, - 3950: 0x000067A0, - 3951: 0x00004A24, - 3952: 0x00009740, - 3953: 0x00004A35, - 3954: 0x000097B2, - 3955: 0x000097C2, - 3956: 0x00005654, - 3957: 0x00004AE4, - 3958: 0x000060E8, - 3959: 0x000098B9, - 3960: 0x00004B19, - 3961: 0x000098F1, - 3962: 0x00005844, - 3963: 0x0000990E, - 3964: 0x00009919, - 3965: 0x000051B4, - 3966: 0x0000991C, - 3967: 0x00009937, - 3968: 0x00009942, - 3969: 0x0000995D, - 3970: 0x00009962, - 3971: 0x00004B70, - 3972: 0x000099C5, - 3973: 0x00004B9D, - 3974: 0x00009A3C, - 3975: 0x00009B0F, - 3976: 0x00007A83, - 3977: 0x00009B69, - 3978: 0x00009B81, - 3979: 0x00009BDD, - 3980: 0x00009BF1, - 3981: 0x00009BF4, - 3982: 0x00004C6D, - 3983: 0x00009C20, - 3984: 0x0000376F, - 3985: 0x00021BC2, - 3986: 0x00009D49, - 3987: 0x00009C3A, - 3988: 0x00009EFE, - 3989: 0x00005650, - 3990: 0x00009D93, - 3991: 0x00009DBD, - 3992: 0x00009DC0, - 3993: 0x00009DFC, - 3994: 0x000094F6, - 3995: 0x00008FB6, - 3996: 0x00009E7B, - 3997: 0x00009EAC, - 3998: 0x00009EB1, - 3999: 0x00009EBD, - 4000: 0x00009EC6, - 4001: 0x000094DC, - 4002: 0x00009EE2, - 4003: 0x00009EF1, - 4004: 0x00009EF8, - 4005: 0x00007AC8, - 4006: 0x00009F44, - 4007: 0x00020094, - 4008: 0x000202B7, - 4009: 0x000203A0, - 4010: 0x0000691A, - 4011: 0x000094C3, - 4012: 0x000059AC, - 4013: 0x000204D7, - 4014: 0x00005840, - 4015: 0x000094C1, - 4016: 0x000037B9, - 4017: 0x000205D5, - 4018: 0x00020615, - 4019: 0x00020676, - 4020: 0x000216BA, - 4021: 0x00005757, - 4022: 0x00007173, - 4023: 0x00020AC2, - 4024: 0x00020ACD, - 4025: 0x00020BBF, - 4026: 0x0000546A, - 4027: 0x0002F83B, - 4028: 0x00020BCB, - 4029: 0x0000549E, - 4030: 0x00020BFB, - 4031: 0x00020C3B, - 4032: 0x00020C53, - 4033: 0x00020C65, - 4034: 0x00020C7C, - 4035: 0x000060E7, - 4036: 0x00020C8D, - 4037: 0x0000567A, - 4038: 0x00020CB5, - 4039: 0x00020CDD, - 4040: 0x00020CED, - 4041: 0x00020D6F, - 4042: 0x00020DB2, - 4043: 0x00020DC8, - 4044: 0x00006955, - 4045: 0x00009C2F, - 4046: 0x000087A5, - 4047: 0x00020E04, - 4048: 0x00020E0E, - 4049: 0x00020ED7, - 4050: 0x00020F90, - 4051: 0x00020F2D, - 4052: 0x00020E73, - 4053: 0x00005C20, - 4054: 0x00020FBC, - 4055: 0x00005E0B, - 4056: 0x0002105C, - 4057: 0x0002104F, - 4058: 0x00021076, - 4059: 0x0000671E, - 4060: 0x0002107B, - 4061: 0x00021088, - 4062: 0x00021096, - 4063: 0x00003647, - 4064: 0x000210BF, - 4065: 0x000210D3, - 4066: 0x0002112F, - 4067: 0x0002113B, - 4068: 0x00005364, - 4069: 0x000084AD, - 4070: 0x000212E3, - 4071: 0x00021375, - 4072: 0x00021336, - 4073: 0x00008B81, - 4074: 0x00021577, - 4075: 0x00021619, - 4076: 0x000217C3, - 4077: 0x000217C7, - 4078: 0x00004E78, - 4079: 0x000070BB, - 4080: 0x0002182D, - 4081: 0x0002196A, - 4082: 0x00021A2D, - 4083: 0x00021A45, - 4084: 0x00021C2A, - 4085: 0x00021C70, - 4086: 0x00021CAC, - 4087: 0x00021EC8, - 4088: 0x000062C3, - 4089: 0x00021ED5, - 4090: 0x00021F15, - 4091: 0x00007198, - 4092: 0x00006855, - 4093: 0x00022045, - 4094: 0x000069E9, - 4095: 0x000036C8, - 4096: 0x0002227C, - 4097: 0x000223D7, - 4098: 0x000223FA, - 4099: 0x0002272A, - 4100: 0x00022871, - 4101: 0x0002294F, - 4102: 0x000082FD, - 4103: 0x00022967, - 4104: 0x00022993, - 4105: 0x00022AD5, - 4106: 0x000089A5, - 4107: 0x00022AE8, - 4108: 0x00008FA0, - 4109: 0x00022B0E, - 4110: 0x000097B8, - 4111: 0x00022B3F, - 4112: 0x00009847, - 4113: 0x00009ABD, - 4114: 0x00022C4C, - 4116: 0x00022C88, - 4117: 0x00022CB7, - 4118: 0x00025BE8, - 4119: 0x00022D08, - 4120: 0x00022D12, - 4121: 0x00022DB7, - 4122: 0x00022D95, - 4123: 0x00022E42, - 4124: 0x00022F74, - 4125: 0x00022FCC, - 4126: 0x00023033, - 4127: 0x00023066, - 4128: 0x0002331F, - 4129: 0x000233DE, - 4130: 0x00005FB1, - 4131: 0x00006648, - 4132: 0x000066BF, - 4133: 0x00027A79, - 4134: 0x00023567, - 4135: 0x000235F3, - 4136: 0x00007201, - 4137: 0x000249BA, - 4138: 0x000077D7, - 4139: 0x0002361A, - 4140: 0x00023716, - 4141: 0x00007E87, - 4142: 0x00020346, - 4143: 0x000058B5, - 4144: 0x0000670E, - 4145: 0x00006918, - 4146: 0x00023AA7, - 4147: 0x00027657, - 4148: 0x00025FE2, - 4149: 0x00023E11, - 4150: 0x00023EB9, - 4151: 0x000275FE, - 4152: 0x0002209A, - 4153: 0x000048D0, - 4154: 0x00004AB8, - 4155: 0x00024119, - 4156: 0x00028A9A, - 4157: 0x000242EE, - 4158: 0x0002430D, - 4159: 0x0002403B, - 4160: 0x00024334, - 4161: 0x00024396, - 4162: 0x00024A45, - 4163: 0x000205CA, - 4164: 0x000051D2, - 4165: 0x00020611, - 4166: 0x0000599F, - 4167: 0x00021EA8, - 4168: 0x00003BBE, - 4169: 0x00023CFF, - 4170: 0x00024404, - 4171: 0x000244D6, - 4172: 0x00005788, - 4173: 0x00024674, - 4174: 0x0000399B, - 4175: 0x0002472F, - 4176: 0x000285E8, - 4177: 0x000299C9, - 4178: 0x00003762, - 4179: 0x000221C3, - 4180: 0x00008B5E, - 4181: 0x00028B4E, - 4182: 0x000099D6, - 4183: 0x00024812, - 4184: 0x000248FB, - 4185: 0x00024A15, - 4186: 0x00007209, - 4187: 0x00024AC0, - 4188: 0x00020C78, - 4189: 0x00005965, - 4190: 0x00024EA5, - 4191: 0x00024F86, - 4192: 0x00020779, - 4193: 0x00008EDA, - 4194: 0x0002502C, - 4195: 0x0000528F, - 4196: 0x0000573F, - 4197: 0x00007171, - 4198: 0x00025299, - 4199: 0x00025419, - 4200: 0x00023F4A, - 4201: 0x00024AA7, - 4202: 0x000055BC, - 4203: 0x00025446, - 4204: 0x0002546E, - 4205: 0x00026B52, - 4206: 0x000091D4, - 4207: 0x00003473, - 4208: 0x0002553F, - 4209: 0x00027632, - 4210: 0x0002555E, - 4211: 0x00004718, - 4212: 0x00025562, - 4213: 0x00025566, - 4214: 0x000257C7, - 4215: 0x0002493F, - 4216: 0x0002585D, - 4217: 0x00005066, - 4218: 0x000034FB, - 4219: 0x000233CC, - 4220: 0x000060DE, - 4221: 0x00025903, - 4222: 0x0000477C, - 4223: 0x00028948, - 4224: 0x00025AAE, - 4225: 0x00025B89, - 4226: 0x00025C06, - 4227: 0x00021D90, - 4228: 0x000057A1, - 4229: 0x00007151, - 4230: 0x00006FB6, - 4231: 0x00026102, - 4232: 0x00027C12, - 4233: 0x00009056, - 4234: 0x000261B2, - 4235: 0x00024F9A, - 4236: 0x00008B62, - 4237: 0x00026402, - 4238: 0x0002644A, - 4239: 0x00005D5B, - 4240: 0x00026BF7, - 4241: 0x00008F36, - 4242: 0x00026484, - 4243: 0x0002191C, - 4244: 0x00008AEA, - 4245: 0x000249F6, - 4246: 0x00026488, - 4247: 0x00023FEF, - 4248: 0x00026512, - 4249: 0x00004BC0, - 4250: 0x000265BF, - 4251: 0x000266B5, - 4252: 0x0002271B, - 4253: 0x00009465, - 4254: 0x000257E1, - 4255: 0x00006195, - 4256: 0x00005A27, - 4257: 0x0002F8CD, - 4258: 0x00004FBB, - 4259: 0x000056B9, - 4260: 0x00024521, - 4261: 0x000266FC, - 4262: 0x00004E6A, - 4263: 0x00024934, - 4264: 0x00009656, - 4265: 0x00006D8F, - 4266: 0x00026CBD, - 4267: 0x00003618, - 4268: 0x00008977, - 4269: 0x00026799, - 4270: 0x0002686E, - 4271: 0x00026411, - 4272: 0x0002685E, - 4273: 0x000071DF, - 4274: 0x000268C7, - 4275: 0x00007B42, - 4276: 0x000290C0, - 4277: 0x00020A11, - 4278: 0x00026926, - 4279: 0x00009104, - 4280: 0x00026939, - 4281: 0x00007A45, - 4282: 0x00009DF0, - 4283: 0x000269FA, - 4284: 0x00009A26, - 4285: 0x00026A2D, - 4286: 0x0000365F, - 4287: 0x00026469, - 4288: 0x00020021, - 4289: 0x00007983, - 4290: 0x00026A34, - 4291: 0x00026B5B, - 4292: 0x00005D2C, - 4293: 0x00023519, - 4294: 0x000083CF, - 4295: 0x00026B9D, - 4296: 0x000046D0, - 4297: 0x00026CA4, - 4298: 0x0000753B, - 4299: 0x00008865, - 4300: 0x00026DAE, - 4301: 0x000058B6, - 4302: 0x0000371C, - 4303: 0x0002258D, - 4304: 0x0002704B, - 4305: 0x000271CD, - 4306: 0x00003C54, - 4307: 0x00027280, - 4308: 0x00027285, - 4309: 0x00009281, - 4310: 0x0002217A, - 4311: 0x0002728B, - 4312: 0x00009330, - 4313: 0x000272E6, - 4314: 0x000249D0, - 4315: 0x00006C39, - 4316: 0x0000949F, - 4317: 0x00027450, - 4318: 0x00020EF8, - 4319: 0x00008827, - 4320: 0x000088F5, - 4321: 0x00022926, - 4322: 0x00028473, - 4323: 0x000217B1, - 4324: 0x00006EB8, - 4325: 0x00024A2A, - 4326: 0x00021820, - 4327: 0x000039A4, - 4328: 0x000036B9, - 4329: 0x00005C10, - 4330: 0x000079E3, - 4331: 0x0000453F, - 4332: 0x000066B6, - 4333: 0x00029CAD, - 4334: 0x000298A4, - 4335: 0x00008943, - 4336: 0x000277CC, - 4337: 0x00027858, - 4338: 0x000056D6, - 4339: 0x000040DF, - 4340: 0x0002160A, - 4341: 0x000039A1, - 4342: 0x0002372F, - 4343: 0x000280E8, - 4344: 0x000213C5, - 4345: 0x000071AD, - 4346: 0x00008366, - 4347: 0x000279DD, - 4348: 0x000291A8, - 4349: 0x00005A67, - 4350: 0x00004CB7, - 4351: 0x000270AF, - 4352: 0x000289AB, - 4353: 0x000279FD, - 4354: 0x00027A0A, - 4355: 0x00027B0B, - 4356: 0x00027D66, - 4357: 0x0002417A, - 4358: 0x00007B43, - 4359: 0x0000797E, - 4360: 0x00028009, - 4361: 0x00006FB5, - 4362: 0x0002A2DF, - 4363: 0x00006A03, - 4364: 0x00028318, - 4365: 0x000053A2, - 4366: 0x00026E07, - 4367: 0x000093BF, - 4368: 0x00006836, - 4369: 0x0000975D, - 4370: 0x0002816F, - 4371: 0x00028023, - 4372: 0x000269B5, - 4373: 0x000213ED, - 4374: 0x0002322F, - 4375: 0x00028048, - 4376: 0x00005D85, - 4377: 0x00028C30, - 4378: 0x00028083, - 4379: 0x00005715, - 4380: 0x00009823, - 4381: 0x00028949, - 4382: 0x00005DAB, - 4383: 0x00024988, - 4384: 0x000065BE, - 4385: 0x000069D5, - 4386: 0x000053D2, - 4387: 0x00024AA5, - 4388: 0x00023F81, - 4389: 0x00003C11, - 4390: 0x00006736, - 4391: 0x00028090, - 4392: 0x000280F4, - 4393: 0x0002812E, - 4394: 0x00021FA1, - 4395: 0x0002814F, - 4396: 0x00028189, - 4397: 0x000281AF, - 4398: 0x0002821A, - 4399: 0x00028306, - 4400: 0x0002832F, - 4401: 0x0002838A, - 4402: 0x000035CA, - 4403: 0x00028468, - 4404: 0x000286AA, - 4405: 0x000048FA, - 4406: 0x000063E6, - 4407: 0x00028956, - 4408: 0x00007808, - 4409: 0x00009255, - 4410: 0x000289B8, - 4411: 0x000043F2, - 4412: 0x000289E7, - 4413: 0x000043DF, - 4414: 0x000289E8, - 4415: 0x00028B46, - 4416: 0x00028BD4, - 4417: 0x000059F8, - 4418: 0x00028C09, - 4419: 0x00008F0B, - 4420: 0x00028FC5, - 4421: 0x000290EC, - 4422: 0x00007B51, - 4423: 0x00029110, - 4424: 0x0002913C, - 4425: 0x00003DF7, - 4426: 0x0002915E, - 4427: 0x00024ACA, - 4428: 0x00008FD0, - 4429: 0x0000728F, - 4430: 0x0000568B, - 4431: 0x000294E7, - 4432: 0x000295E9, - 4433: 0x000295B0, - 4434: 0x000295B8, - 4435: 0x00029732, - 4436: 0x000298D1, - 4437: 0x00029949, - 4438: 0x0002996A, - 4439: 0x000299C3, - 4440: 0x00029A28, - 4441: 0x00029B0E, - 4442: 0x00029D5A, - 4443: 0x00029D9B, - 4444: 0x00007E9F, - 4445: 0x00029EF8, - 4446: 0x00029F23, - 4447: 0x00004CA4, - 4448: 0x00009547, - 4449: 0x0002A293, - 4450: 0x000071A2, - 4451: 0x0002A2FF, - 4452: 0x00004D91, - 4453: 0x00009012, - 4454: 0x0002A5CB, - 4455: 0x00004D9C, - 4456: 0x00020C9C, - 4457: 0x00008FBE, - 4458: 0x000055C1, - 4459: 0x00008FBA, - 4460: 0x000224B0, - 4461: 0x00008FB9, - 4462: 0x00024A93, - 4463: 0x00004509, - 4464: 0x00007E7F, - 4465: 0x00006F56, - 4466: 0x00006AB1, - 4467: 0x00004EEA, - 4468: 0x000034E4, - 4469: 0x00028B2C, - 4470: 0x0002789D, - 4471: 0x0000373A, - 4472: 0x00008E80, - 4473: 0x000217F5, - 4474: 0x00028024, - 4475: 0x00028B6C, - 4476: 0x00028B99, - 4477: 0x00027A3E, - 4478: 0x000266AF, - 4479: 0x00003DEB, - 4480: 0x00027655, - 4481: 0x00023CB7, - 4482: 0x00025635, - 4483: 0x00025956, - 4484: 0x00004E9A, - 4485: 0x00025E81, - 4486: 0x00026258, - 4487: 0x000056BF, - 4488: 0x00020E6D, - 4489: 0x00008E0E, - 4490: 0x00005B6D, - 4491: 0x00023E88, - 4492: 0x00024C9E, - 4493: 0x000063DE, - 4494: 0x000062D0, - 4495: 0x000217F6, - 4496: 0x0002187B, - 4497: 0x00006530, - 4498: 0x0000562D, - 4499: 0x00025C4A, - 4500: 0x0000541A, - 4501: 0x00025311, - 4502: 0x00003DC6, - 4503: 0x00029D98, - 4504: 0x00004C7D, - 4505: 0x00005622, - 4506: 0x0000561E, - 4507: 0x00007F49, - 4508: 0x00025ED8, - 4509: 0x00005975, - 4510: 0x00023D40, - 4511: 0x00008770, - 4512: 0x00004E1C, - 4513: 0x00020FEA, - 4514: 0x00020D49, - 4515: 0x000236BA, - 4516: 0x00008117, - 4517: 0x00009D5E, - 4518: 0x00008D18, - 4519: 0x0000763B, - 4520: 0x00009C45, - 4521: 0x0000764E, - 4522: 0x000077B9, - 4523: 0x00009345, - 4524: 0x00005432, - 4525: 0x00008148, - 4526: 0x000082F7, - 4527: 0x00005625, - 4528: 0x00008132, - 4529: 0x00008418, - 4530: 0x000080BD, - 4531: 0x000055EA, - 4532: 0x00007962, - 4533: 0x00005643, - 4534: 0x00005416, - 4535: 0x00020E9D, - 4536: 0x000035CE, - 4537: 0x00005605, - 4538: 0x000055F1, - 4539: 0x000066F1, - 4540: 0x000282E2, - 4541: 0x0000362D, - 4542: 0x00007534, - 4543: 0x000055F0, - 4544: 0x000055BA, - 4545: 0x00005497, - 4546: 0x00005572, - 4547: 0x00020C41, - 4548: 0x00020C96, - 4549: 0x00005ED0, - 4550: 0x00025148, - 4551: 0x00020E76, - 4552: 0x00022C62, - 4553: 0x00020EA2, - 4554: 0x00009EAB, - 4555: 0x00007D5A, - 4556: 0x000055DE, - 4557: 0x00021075, - 4558: 0x0000629D, - 4559: 0x0000976D, - 4560: 0x00005494, - 4561: 0x00008CCD, - 4562: 0x000071F6, - 4563: 0x00009176, - 4564: 0x000063FC, - 4565: 0x000063B9, - 4566: 0x000063FE, - 4567: 0x00005569, - 4568: 0x00022B43, - 4569: 0x00009C72, - 4570: 0x00022EB3, - 4571: 0x0000519A, - 4572: 0x000034DF, - 4573: 0x00020DA7, - 4574: 0x000051A7, - 4575: 0x0000544D, - 4576: 0x0000551E, - 4577: 0x00005513, - 4578: 0x00007666, - 4579: 0x00008E2D, - 4580: 0x0002688A, - 4581: 0x000075B1, - 4582: 0x000080B6, - 4583: 0x00008804, - 4584: 0x00008786, - 4585: 0x000088C7, - 4586: 0x000081B6, - 4587: 0x0000841C, - 4588: 0x000210C1, - 4589: 0x000044EC, - 4590: 0x00007304, - 4591: 0x00024706, - 4592: 0x00005B90, - 4593: 0x0000830B, - 4594: 0x00026893, - 4595: 0x0000567B, - 4596: 0x000226F4, - 4597: 0x00027D2F, - 4598: 0x000241A3, - 4599: 0x00027D73, - 4600: 0x00026ED0, - 4601: 0x000272B6, - 4602: 0x00009170, - 4603: 0x000211D9, - 4604: 0x00009208, - 4605: 0x00023CFC, - 4606: 0x0002A6A9, - 4607: 0x00020EAC, - 4608: 0x00020EF9, - 4609: 0x00007266, - 4610: 0x00021CA2, - 4611: 0x0000474E, - 4612: 0x00024FC2, - 4613: 0x00027FF9, - 4614: 0x00020FEB, - 4615: 0x000040FA, - 4616: 0x00009C5D, - 4617: 0x0000651F, - 4618: 0x00022DA0, - 4619: 0x000048F3, - 4620: 0x000247E0, - 4621: 0x00029D7C, - 4622: 0x00020FEC, - 4623: 0x00020E0A, - 4624: 0x00006062, - 4625: 0x000275A3, - 4626: 0x00020FED, - 4628: 0x00026048, - 4629: 0x00021187, - 4630: 0x000071A3, - 4631: 0x00007E8E, - 4632: 0x00009D50, - 4633: 0x00004E1A, - 4634: 0x00004E04, - 4635: 0x00003577, - 4636: 0x00005B0D, - 4637: 0x00006CB2, - 4638: 0x00005367, - 4639: 0x000036AC, - 4640: 0x000039DC, - 4641: 0x0000537D, - 4642: 0x000036A5, - 4643: 0x00024618, - 4644: 0x0000589A, - 4645: 0x00024B6E, - 4646: 0x0000822D, - 4647: 0x0000544B, - 4648: 0x000057AA, - 4649: 0x00025A95, - 4650: 0x00020979, - 4652: 0x00003A52, - 4653: 0x00022465, - 4654: 0x00007374, - 4655: 0x00029EAC, - 4656: 0x00004D09, - 4657: 0x00009BED, - 4658: 0x00023CFE, - 4659: 0x00029F30, - 4660: 0x00004C5B, - 4661: 0x00024FA9, - 4662: 0x0002959E, - 4663: 0x00029FDE, - 4664: 0x0000845C, - 4665: 0x00023DB6, - 4666: 0x000272B2, - 4667: 0x000267B3, - 4668: 0x00023720, - 4669: 0x0000632E, - 4670: 0x00007D25, - 4671: 0x00023EF7, - 4672: 0x00023E2C, - 4673: 0x00003A2A, - 4674: 0x00009008, - 4675: 0x000052CC, - 4676: 0x00003E74, - 4677: 0x0000367A, - 4678: 0x000045E9, - 4679: 0x0002048E, - 4680: 0x00007640, - 4681: 0x00005AF0, - 4682: 0x00020EB6, - 4683: 0x0000787A, - 4684: 0x00027F2E, - 4685: 0x000058A7, - 4686: 0x000040BF, - 4687: 0x0000567C, - 4688: 0x00009B8B, - 4689: 0x00005D74, - 4690: 0x00007654, - 4691: 0x0002A434, - 4692: 0x00009E85, - 4693: 0x00004CE1, - 4694: 0x000075F9, - 4695: 0x000037FB, - 4696: 0x00006119, - 4697: 0x000230DA, - 4698: 0x000243F2, - 4700: 0x0000565D, - 4701: 0x000212A9, - 4702: 0x000057A7, - 4703: 0x00024963, - 4704: 0x00029E06, - 4705: 0x00005234, - 4706: 0x000270AE, - 4707: 0x000035AD, - 4708: 0x00006C4A, - 4709: 0x00009D7C, - 4710: 0x00007C56, - 4711: 0x00009B39, - 4712: 0x000057DE, - 4713: 0x0002176C, - 4714: 0x00005C53, - 4715: 0x000064D3, - 4716: 0x000294D0, - 4717: 0x00026335, - 4718: 0x00027164, - 4719: 0x000086AD, - 4720: 0x00020D28, - 4721: 0x00026D22, - 4722: 0x00024AE2, - 4723: 0x00020D71, - 4725: 0x000051FE, - 4726: 0x00021F0F, - 4727: 0x00005D8E, - 4728: 0x00009703, - 4729: 0x00021DD1, - 4730: 0x00009E81, - 4731: 0x0000904C, - 4732: 0x00007B1F, - 4733: 0x00009B02, - 4734: 0x00005CD1, - 4735: 0x00007BA3, - 4736: 0x00006268, - 4737: 0x00006335, - 4738: 0x00009AFF, - 4739: 0x00007BCF, - 4740: 0x00009B2A, - 4741: 0x00007C7E, - 4742: 0x00009B2E, - 4743: 0x00007C42, - 4744: 0x00007C86, - 4745: 0x00009C15, - 4746: 0x00007BFC, - 4747: 0x00009B09, - 4748: 0x00009F17, - 4749: 0x00009C1B, - 4750: 0x0002493E, - 4751: 0x00009F5A, - 4752: 0x00005573, - 4753: 0x00005BC3, - 4754: 0x00004FFD, - 4755: 0x00009E98, - 4756: 0x00004FF2, - 4757: 0x00005260, - 4758: 0x00003E06, - 4759: 0x000052D1, - 4760: 0x00005767, - 4761: 0x00005056, - 4762: 0x000059B7, - 4763: 0x00005E12, - 4764: 0x000097C8, - 4765: 0x00009DAB, - 4766: 0x00008F5C, - 4767: 0x00005469, - 4768: 0x000097B4, - 4769: 0x00009940, - 4770: 0x000097BA, - 4771: 0x0000532C, - 4772: 0x00006130, - 4773: 0x0000692C, - 4774: 0x000053DA, - 4775: 0x00009C0A, - 4776: 0x00009D02, - 4777: 0x00004C3B, - 4778: 0x00009641, - 4779: 0x00006980, - 4780: 0x000050A6, - 4781: 0x00007546, - 4782: 0x0002176D, - 4783: 0x000099DA, - 4784: 0x00005273, - 4786: 0x00009159, - 4787: 0x00009681, - 4788: 0x0000915C, - 4790: 0x00009151, - 4791: 0x00028E97, - 4792: 0x0000637F, - 4793: 0x00026D23, - 4794: 0x00006ACA, - 4795: 0x00005611, - 4796: 0x0000918E, - 4797: 0x0000757A, - 4798: 0x00006285, - 4799: 0x000203FC, - 4800: 0x0000734F, - 4801: 0x00007C70, - 4802: 0x00025C21, - 4803: 0x00023CFD, - 4805: 0x00024919, - 4806: 0x000076D6, - 4807: 0x00009B9D, - 4808: 0x00004E2A, - 4809: 0x00020CD4, - 4810: 0x000083BE, - 4811: 0x00008842, - 4813: 0x00005C4A, - 4814: 0x000069C0, - 4815: 0x000050ED, - 4816: 0x0000577A, - 4817: 0x0000521F, - 4818: 0x00005DF5, - 4819: 0x00004ECE, - 4820: 0x00006C31, - 4821: 0x000201F2, - 4822: 0x00004F39, - 4823: 0x0000549C, - 4824: 0x000054DA, - 4825: 0x0000529A, - 4826: 0x00008D82, - 4827: 0x000035FE, - 4828: 0x00005F0C, - 4829: 0x000035F3, - 4831: 0x00006B52, - 4832: 0x0000917C, - 4833: 0x00009FA5, - 4834: 0x00009B97, - 4835: 0x0000982E, - 4836: 0x000098B4, - 4837: 0x00009ABA, - 4838: 0x00009EA8, - 4839: 0x00009E84, - 4840: 0x0000717A, - 4841: 0x00007B14, - 4843: 0x00006BFA, - 4844: 0x00008818, - 4845: 0x00007F78, - 4847: 0x00005620, - 4848: 0x0002A64A, - 4849: 0x00008E77, - 4850: 0x00009F53, - 4852: 0x00008DD4, - 4853: 0x00008E4F, - 4854: 0x00009E1C, - 4855: 0x00008E01, - 4856: 0x00006282, - 4857: 0x0002837D, - 4858: 0x00008E28, - 4859: 0x00008E75, - 4860: 0x00007AD3, - 4861: 0x00024A77, - 4862: 0x00007A3E, - 4863: 0x000078D8, - 4864: 0x00006CEA, - 4865: 0x00008A67, - 4866: 0x00007607, - 4867: 0x00028A5A, - 4868: 0x00009F26, - 4869: 0x00006CCE, - 4870: 0x000087D6, - 4871: 0x000075C3, - 4872: 0x0002A2B2, - 4873: 0x00007853, - 4874: 0x0002F840, - 4875: 0x00008D0C, - 4876: 0x000072E2, - 4877: 0x00007371, - 4878: 0x00008B2D, - 4879: 0x00007302, - 4880: 0x000074F1, - 4881: 0x00008CEB, - 4882: 0x00024ABB, - 4883: 0x0000862F, - 4884: 0x00005FBA, - 4885: 0x000088A0, - 4886: 0x000044B7, - 4888: 0x0002183B, - 4889: 0x00026E05, - 4891: 0x00008A7E, - 4892: 0x0002251B, - 4894: 0x000060FD, - 4895: 0x00007667, - 4896: 0x00009AD7, - 4897: 0x00009D44, - 4898: 0x0000936E, - 4899: 0x00009B8F, - 4900: 0x000087F5, - 4902: 0x0000880F, - 4903: 0x00008CF7, - 4904: 0x0000732C, - 4905: 0x00009721, - 4906: 0x00009BB0, - 4907: 0x000035D6, - 4908: 0x000072B2, - 4909: 0x00004C07, - 4910: 0x00007C51, - 4911: 0x0000994A, - 4912: 0x00026159, - 4913: 0x00006159, - 4914: 0x00004C04, - 4915: 0x00009E96, - 4916: 0x0000617D, - 4918: 0x0000575F, - 4919: 0x0000616F, - 4920: 0x000062A6, - 4921: 0x00006239, - 4922: 0x000062CE, - 4923: 0x00003A5C, - 4924: 0x000061E2, - 4925: 0x000053AA, - 4926: 0x000233F5, - 4927: 0x00006364, - 4928: 0x00006802, - 4929: 0x000035D2, - 4930: 0x00005D57, - 4931: 0x00028BC2, - 4932: 0x00008FDA, - 4933: 0x00028E39, - 4935: 0x000050D9, - 4936: 0x00021D46, - 4937: 0x00007906, - 4938: 0x00005332, - 4939: 0x00009638, - 4940: 0x00020F3B, - 4941: 0x00004065, - 4943: 0x000077FE, - 4945: 0x00007CC2, - 4946: 0x00025F1A, - 4947: 0x00007CDA, - 4948: 0x00007A2D, - 4949: 0x00008066, - 4950: 0x00008063, - 4951: 0x00007D4D, - 4952: 0x00007505, - 4953: 0x000074F2, - 4954: 0x00008994, - 4955: 0x0000821A, - 4956: 0x0000670C, - 4957: 0x00008062, - 4958: 0x00027486, - 4959: 0x0000805B, - 4960: 0x000074F0, - 4961: 0x00008103, - 4962: 0x00007724, - 4963: 0x00008989, - 4964: 0x000267CC, - 4965: 0x00007553, - 4966: 0x00026ED1, - 4967: 0x000087A9, - 4968: 0x000087CE, - 4969: 0x000081C8, - 4970: 0x0000878C, - 4971: 0x00008A49, - 4972: 0x00008CAD, - 4973: 0x00008B43, - 4974: 0x0000772B, - 4975: 0x000074F8, - 4976: 0x000084DA, - 4977: 0x00003635, - 4978: 0x000069B2, - 4979: 0x00008DA6, - 4981: 0x000089A9, - 4982: 0x00007468, - 4983: 0x00006DB9, - 4984: 0x000087C1, - 4985: 0x00024011, - 4986: 0x000074E7, - 4987: 0x00003DDB, - 4988: 0x00007176, - 4989: 0x000060A4, - 4990: 0x0000619C, - 4991: 0x00003CD1, - 4992: 0x00007162, - 4993: 0x00006077, - 4995: 0x00007F71, - 4996: 0x00028B2D, - 4997: 0x00007250, - 4998: 0x000060E9, - 4999: 0x00004B7E, - 5000: 0x00005220, - 5001: 0x00003C18, - 5002: 0x00023CC7, - 5003: 0x00025ED7, - 5004: 0x00027656, - 5005: 0x00025531, - 5006: 0x00021944, - 5007: 0x000212FE, - 5008: 0x00029903, - 5009: 0x00026DDC, - 5010: 0x000270AD, - 5011: 0x00005CC1, - 5012: 0x000261AD, - 5013: 0x00028A0F, - 5014: 0x00023677, - 5015: 0x000200EE, - 5016: 0x00026846, - 5017: 0x00024F0E, - 5018: 0x00004562, - 5019: 0x00005B1F, - 5020: 0x0002634C, - 5021: 0x00009F50, - 5022: 0x00009EA6, - 5023: 0x0002626B, - 5024: 0x00003000, - 5025: 0x0000FF0C, - 5026: 0x00003001, - 5027: 0x00003002, - 5028: 0x0000FF0E, - 5029: 0x00002027, - 5030: 0x0000FF1B, - 5031: 0x0000FF1A, - 5032: 0x0000FF1F, - 5033: 0x0000FF01, - 5034: 0x0000FE30, - 5035: 0x00002026, - 5036: 0x00002025, - 5037: 0x0000FE50, - 5038: 0x0000FE51, - 5039: 0x0000FE52, - 5040: 0x000000B7, - 5041: 0x0000FE54, - 5042: 0x0000FE55, - 5043: 0x0000FE56, - 5044: 0x0000FE57, - 5045: 0x0000FF5C, - 5046: 0x00002013, - 5047: 0x0000FE31, - 5048: 0x00002014, - 5049: 0x0000FE33, - 5050: 0x00002574, - 5051: 0x0000FE34, - 5052: 0x0000FE4F, - 5053: 0x0000FF08, - 5054: 0x0000FF09, - 5055: 0x0000FE35, - 5056: 0x0000FE36, - 5057: 0x0000FF5B, - 5058: 0x0000FF5D, - 5059: 0x0000FE37, - 5060: 0x0000FE38, - 5061: 0x00003014, - 5062: 0x00003015, - 5063: 0x0000FE39, - 5064: 0x0000FE3A, - 5065: 0x00003010, - 5066: 0x00003011, - 5067: 0x0000FE3B, - 5068: 0x0000FE3C, - 5069: 0x0000300A, - 5070: 0x0000300B, - 5071: 0x0000FE3D, - 5072: 0x0000FE3E, - 5073: 0x00003008, - 5074: 0x00003009, - 5075: 0x0000FE3F, - 5076: 0x0000FE40, - 5077: 0x0000300C, - 5078: 0x0000300D, - 5079: 0x0000FE41, - 5080: 0x0000FE42, - 5081: 0x0000300E, - 5082: 0x0000300F, - 5083: 0x0000FE43, - 5084: 0x0000FE44, - 5085: 0x0000FE59, - 5086: 0x0000FE5A, - 5087: 0x0000FE5B, - 5088: 0x0000FE5C, - 5089: 0x0000FE5D, - 5090: 0x0000FE5E, - 5091: 0x00002018, - 5092: 0x00002019, - 5093: 0x0000201C, - 5094: 0x0000201D, - 5095: 0x0000301D, - 5096: 0x0000301E, - 5097: 0x00002035, - 5098: 0x00002032, - 5099: 0x0000FF03, - 5100: 0x0000FF06, - 5101: 0x0000FF0A, - 5102: 0x0000203B, - 5103: 0x000000A7, - 5104: 0x00003003, - 5105: 0x000025CB, - 5106: 0x000025CF, - 5107: 0x000025B3, - 5108: 0x000025B2, - 5109: 0x000025CE, - 5110: 0x00002606, - 5111: 0x00002605, - 5112: 0x000025C7, - 5113: 0x000025C6, - 5114: 0x000025A1, - 5115: 0x000025A0, - 5116: 0x000025BD, - 5117: 0x000025BC, - 5118: 0x000032A3, - 5119: 0x00002105, - 5120: 0x000000AF, - 5121: 0x0000FFE3, - 5122: 0x0000FF3F, - 5123: 0x000002CD, - 5124: 0x0000FE49, - 5125: 0x0000FE4A, - 5126: 0x0000FE4D, - 5127: 0x0000FE4E, - 5128: 0x0000FE4B, - 5129: 0x0000FE4C, - 5130: 0x0000FE5F, - 5131: 0x0000FE60, - 5132: 0x0000FE61, - 5133: 0x0000FF0B, - 5134: 0x0000FF0D, - 5135: 0x000000D7, - 5136: 0x000000F7, - 5137: 0x000000B1, - 5138: 0x0000221A, - 5139: 0x0000FF1C, - 5140: 0x0000FF1E, - 5141: 0x0000FF1D, - 5142: 0x00002266, - 5143: 0x00002267, - 5144: 0x00002260, - 5145: 0x0000221E, - 5146: 0x00002252, - 5147: 0x00002261, - 5148: 0x0000FE62, - 5149: 0x0000FE63, - 5150: 0x0000FE64, - 5151: 0x0000FE65, - 5152: 0x0000FE66, - 5153: 0x0000FF5E, - 5154: 0x00002229, - 5155: 0x0000222A, - 5156: 0x000022A5, - 5157: 0x00002220, - 5158: 0x0000221F, - 5159: 0x000022BF, - 5160: 0x000033D2, - 5161: 0x000033D1, - 5162: 0x0000222B, - 5163: 0x0000222E, - 5164: 0x00002235, - 5165: 0x00002234, - 5166: 0x00002640, - 5167: 0x00002642, - 5168: 0x00002295, - 5169: 0x00002299, - 5170: 0x00002191, - 5171: 0x00002193, - 5172: 0x00002190, - 5173: 0x00002192, - 5174: 0x00002196, - 5175: 0x00002197, - 5176: 0x00002199, - 5177: 0x00002198, - 5178: 0x00002225, - 5179: 0x00002223, - 5180: 0x0000FF0F, - 5181: 0x0000FF3C, - 5182: 0x00002215, - 5183: 0x0000FE68, - 5184: 0x0000FF04, - 5185: 0x0000FFE5, - 5186: 0x00003012, - 5187: 0x0000FFE0, - 5188: 0x0000FFE1, - 5189: 0x0000FF05, - 5190: 0x0000FF20, - 5191: 0x00002103, - 5192: 0x00002109, - 5193: 0x0000FE69, - 5194: 0x0000FE6A, - 5195: 0x0000FE6B, - 5196: 0x000033D5, - 5197: 0x0000339C, - 5198: 0x0000339D, - 5199: 0x0000339E, - 5200: 0x000033CE, - 5201: 0x000033A1, - 5202: 0x0000338E, - 5203: 0x0000338F, - 5204: 0x000033C4, - 5205: 0x000000B0, - 5206: 0x00005159, - 5207: 0x0000515B, - 5208: 0x0000515E, - 5209: 0x0000515D, - 5210: 0x00005161, - 5211: 0x00005163, - 5212: 0x000055E7, - 5213: 0x000074E9, - 5214: 0x00007CCE, - 5215: 0x00002581, - 5216: 0x00002582, - 5217: 0x00002583, - 5218: 0x00002584, - 5219: 0x00002585, - 5220: 0x00002586, - 5221: 0x00002587, - 5222: 0x00002588, - 5223: 0x0000258F, - 5224: 0x0000258E, - 5225: 0x0000258D, - 5226: 0x0000258C, - 5227: 0x0000258B, - 5228: 0x0000258A, - 5229: 0x00002589, - 5230: 0x0000253C, - 5231: 0x00002534, - 5232: 0x0000252C, - 5233: 0x00002524, - 5234: 0x0000251C, - 5235: 0x00002594, - 5236: 0x00002500, - 5237: 0x00002502, - 5238: 0x00002595, - 5239: 0x0000250C, - 5240: 0x00002510, - 5241: 0x00002514, - 5242: 0x00002518, - 5243: 0x0000256D, - 5244: 0x0000256E, - 5245: 0x00002570, - 5246: 0x0000256F, - 5247: 0x00002550, - 5248: 0x0000255E, - 5249: 0x0000256A, - 5250: 0x00002561, - 5251: 0x000025E2, - 5252: 0x000025E3, - 5253: 0x000025E5, - 5254: 0x000025E4, - 5255: 0x00002571, - 5256: 0x00002572, - 5257: 0x00002573, - 5258: 0x0000FF10, - 5259: 0x0000FF11, - 5260: 0x0000FF12, - 5261: 0x0000FF13, - 5262: 0x0000FF14, - 5263: 0x0000FF15, - 5264: 0x0000FF16, - 5265: 0x0000FF17, - 5266: 0x0000FF18, - 5267: 0x0000FF19, - 5268: 0x00002160, - 5269: 0x00002161, - 5270: 0x00002162, - 5271: 0x00002163, - 5272: 0x00002164, - 5273: 0x00002165, - 5274: 0x00002166, - 5275: 0x00002167, - 5276: 0x00002168, - 5277: 0x00002169, - 5278: 0x00003021, - 5279: 0x00003022, - 5280: 0x00003023, - 5281: 0x00003024, - 5282: 0x00003025, - 5283: 0x00003026, - 5284: 0x00003027, - 5285: 0x00003028, - 5286: 0x00003029, - 5287: 0x00005341, - 5288: 0x00005344, - 5289: 0x00005345, - 5290: 0x0000FF21, - 5291: 0x0000FF22, - 5292: 0x0000FF23, - 5293: 0x0000FF24, - 5294: 0x0000FF25, - 5295: 0x0000FF26, - 5296: 0x0000FF27, - 5297: 0x0000FF28, - 5298: 0x0000FF29, - 5299: 0x0000FF2A, - 5300: 0x0000FF2B, - 5301: 0x0000FF2C, - 5302: 0x0000FF2D, - 5303: 0x0000FF2E, - 5304: 0x0000FF2F, - 5305: 0x0000FF30, - 5306: 0x0000FF31, - 5307: 0x0000FF32, - 5308: 0x0000FF33, - 5309: 0x0000FF34, - 5310: 0x0000FF35, - 5311: 0x0000FF36, - 5312: 0x0000FF37, - 5313: 0x0000FF38, - 5314: 0x0000FF39, - 5315: 0x0000FF3A, - 5316: 0x0000FF41, - 5317: 0x0000FF42, - 5318: 0x0000FF43, - 5319: 0x0000FF44, - 5320: 0x0000FF45, - 5321: 0x0000FF46, - 5322: 0x0000FF47, - 5323: 0x0000FF48, - 5324: 0x0000FF49, - 5325: 0x0000FF4A, - 5326: 0x0000FF4B, - 5327: 0x0000FF4C, - 5328: 0x0000FF4D, - 5329: 0x0000FF4E, - 5330: 0x0000FF4F, - 5331: 0x0000FF50, - 5332: 0x0000FF51, - 5333: 0x0000FF52, - 5334: 0x0000FF53, - 5335: 0x0000FF54, - 5336: 0x0000FF55, - 5337: 0x0000FF56, - 5338: 0x0000FF57, - 5339: 0x0000FF58, - 5340: 0x0000FF59, - 5341: 0x0000FF5A, - 5342: 0x00000391, - 5343: 0x00000392, - 5344: 0x00000393, - 5345: 0x00000394, - 5346: 0x00000395, - 5347: 0x00000396, - 5348: 0x00000397, - 5349: 0x00000398, - 5350: 0x00000399, - 5351: 0x0000039A, - 5352: 0x0000039B, - 5353: 0x0000039C, - 5354: 0x0000039D, - 5355: 0x0000039E, - 5356: 0x0000039F, - 5357: 0x000003A0, - 5358: 0x000003A1, - 5359: 0x000003A3, - 5360: 0x000003A4, - 5361: 0x000003A5, - 5362: 0x000003A6, - 5363: 0x000003A7, - 5364: 0x000003A8, - 5365: 0x000003A9, - 5366: 0x000003B1, - 5367: 0x000003B2, - 5368: 0x000003B3, - 5369: 0x000003B4, - 5370: 0x000003B5, - 5371: 0x000003B6, - 5372: 0x000003B7, - 5373: 0x000003B8, - 5374: 0x000003B9, - 5375: 0x000003BA, - 5376: 0x000003BB, - 5377: 0x000003BC, - 5378: 0x000003BD, - 5379: 0x000003BE, - 5380: 0x000003BF, - 5381: 0x000003C0, - 5382: 0x000003C1, - 5383: 0x000003C3, - 5384: 0x000003C4, - 5385: 0x000003C5, - 5386: 0x000003C6, - 5387: 0x000003C7, - 5388: 0x000003C8, - 5389: 0x000003C9, - 5390: 0x00003105, - 5391: 0x00003106, - 5392: 0x00003107, - 5393: 0x00003108, - 5394: 0x00003109, - 5395: 0x0000310A, - 5396: 0x0000310B, - 5397: 0x0000310C, - 5398: 0x0000310D, - 5399: 0x0000310E, - 5400: 0x0000310F, - 5401: 0x00003110, - 5402: 0x00003111, - 5403: 0x00003112, - 5404: 0x00003113, - 5405: 0x00003114, - 5406: 0x00003115, - 5407: 0x00003116, - 5408: 0x00003117, - 5409: 0x00003118, - 5410: 0x00003119, - 5411: 0x0000311A, - 5412: 0x0000311B, - 5413: 0x0000311C, - 5414: 0x0000311D, - 5415: 0x0000311E, - 5416: 0x0000311F, - 5417: 0x00003120, - 5418: 0x00003121, - 5419: 0x00003122, - 5420: 0x00003123, - 5421: 0x00003124, - 5422: 0x00003125, - 5423: 0x00003126, - 5424: 0x00003127, - 5425: 0x00003128, - 5426: 0x00003129, - 5427: 0x000002D9, - 5428: 0x000002C9, - 5429: 0x000002CA, - 5430: 0x000002C7, - 5431: 0x000002CB, - 5432: 0x00002400, - 5433: 0x00002401, - 5434: 0x00002402, - 5435: 0x00002403, - 5436: 0x00002404, - 5437: 0x00002405, - 5438: 0x00002406, - 5439: 0x00002407, - 5440: 0x00002408, - 5441: 0x00002409, - 5442: 0x0000240A, - 5443: 0x0000240B, - 5444: 0x0000240C, - 5445: 0x0000240D, - 5446: 0x0000240E, - 5447: 0x0000240F, - 5448: 0x00002410, - 5449: 0x00002411, - 5450: 0x00002412, - 5451: 0x00002413, - 5452: 0x00002414, - 5453: 0x00002415, - 5454: 0x00002416, - 5455: 0x00002417, - 5456: 0x00002418, - 5457: 0x00002419, - 5458: 0x0000241A, - 5459: 0x0000241B, - 5460: 0x0000241C, - 5461: 0x0000241D, - 5462: 0x0000241E, - 5463: 0x0000241F, - 5464: 0x00002421, - 5465: 0x000020AC, - 5495: 0x00004E00, - 5496: 0x00004E59, - 5497: 0x00004E01, - 5498: 0x00004E03, - 5499: 0x00004E43, - 5500: 0x00004E5D, - 5501: 0x00004E86, - 5502: 0x00004E8C, - 5503: 0x00004EBA, - 5504: 0x0000513F, - 5505: 0x00005165, - 5506: 0x0000516B, - 5507: 0x000051E0, - 5508: 0x00005200, - 5509: 0x00005201, - 5510: 0x0000529B, - 5511: 0x00005315, - 5512: 0x00005341, - 5513: 0x0000535C, - 5514: 0x000053C8, - 5515: 0x00004E09, - 5516: 0x00004E0B, - 5517: 0x00004E08, - 5518: 0x00004E0A, - 5519: 0x00004E2B, - 5520: 0x00004E38, - 5521: 0x000051E1, - 5522: 0x00004E45, - 5523: 0x00004E48, - 5524: 0x00004E5F, - 5525: 0x00004E5E, - 5526: 0x00004E8E, - 5527: 0x00004EA1, - 5528: 0x00005140, - 5529: 0x00005203, - 5530: 0x000052FA, - 5531: 0x00005343, - 5532: 0x000053C9, - 5533: 0x000053E3, - 5534: 0x0000571F, - 5535: 0x000058EB, - 5536: 0x00005915, - 5537: 0x00005927, - 5538: 0x00005973, - 5539: 0x00005B50, - 5540: 0x00005B51, - 5541: 0x00005B53, - 5542: 0x00005BF8, - 5543: 0x00005C0F, - 5544: 0x00005C22, - 5545: 0x00005C38, - 5546: 0x00005C71, - 5547: 0x00005DDD, - 5548: 0x00005DE5, - 5549: 0x00005DF1, - 5550: 0x00005DF2, - 5551: 0x00005DF3, - 5552: 0x00005DFE, - 5553: 0x00005E72, - 5554: 0x00005EFE, - 5555: 0x00005F0B, - 5556: 0x00005F13, - 5557: 0x0000624D, - 5558: 0x00004E11, - 5559: 0x00004E10, - 5560: 0x00004E0D, - 5561: 0x00004E2D, - 5562: 0x00004E30, - 5563: 0x00004E39, - 5564: 0x00004E4B, - 5565: 0x00005C39, - 5566: 0x00004E88, - 5567: 0x00004E91, - 5568: 0x00004E95, - 5569: 0x00004E92, - 5570: 0x00004E94, - 5571: 0x00004EA2, - 5572: 0x00004EC1, - 5573: 0x00004EC0, - 5574: 0x00004EC3, - 5575: 0x00004EC6, - 5576: 0x00004EC7, - 5577: 0x00004ECD, - 5578: 0x00004ECA, - 5579: 0x00004ECB, - 5580: 0x00004EC4, - 5581: 0x00005143, - 5582: 0x00005141, - 5583: 0x00005167, - 5584: 0x0000516D, - 5585: 0x0000516E, - 5586: 0x0000516C, - 5587: 0x00005197, - 5588: 0x000051F6, - 5589: 0x00005206, - 5590: 0x00005207, - 5591: 0x00005208, - 5592: 0x000052FB, - 5593: 0x000052FE, - 5594: 0x000052FF, - 5595: 0x00005316, - 5596: 0x00005339, - 5597: 0x00005348, - 5598: 0x00005347, - 5599: 0x00005345, - 5600: 0x0000535E, - 5601: 0x00005384, - 5602: 0x000053CB, - 5603: 0x000053CA, - 5604: 0x000053CD, - 5605: 0x000058EC, - 5606: 0x00005929, - 5607: 0x0000592B, - 5608: 0x0000592A, - 5609: 0x0000592D, - 5610: 0x00005B54, - 5611: 0x00005C11, - 5612: 0x00005C24, - 5613: 0x00005C3A, - 5614: 0x00005C6F, - 5615: 0x00005DF4, - 5616: 0x00005E7B, - 5617: 0x00005EFF, - 5618: 0x00005F14, - 5619: 0x00005F15, - 5620: 0x00005FC3, - 5621: 0x00006208, - 5622: 0x00006236, - 5623: 0x0000624B, - 5624: 0x0000624E, - 5625: 0x0000652F, - 5626: 0x00006587, - 5627: 0x00006597, - 5628: 0x000065A4, - 5629: 0x000065B9, - 5630: 0x000065E5, - 5631: 0x000066F0, - 5632: 0x00006708, - 5633: 0x00006728, - 5634: 0x00006B20, - 5635: 0x00006B62, - 5636: 0x00006B79, - 5637: 0x00006BCB, - 5638: 0x00006BD4, - 5639: 0x00006BDB, - 5640: 0x00006C0F, - 5641: 0x00006C34, - 5642: 0x0000706B, - 5643: 0x0000722A, - 5644: 0x00007236, - 5645: 0x0000723B, - 5646: 0x00007247, - 5647: 0x00007259, - 5648: 0x0000725B, - 5649: 0x000072AC, - 5650: 0x0000738B, - 5651: 0x00004E19, - 5652: 0x00004E16, - 5653: 0x00004E15, - 5654: 0x00004E14, - 5655: 0x00004E18, - 5656: 0x00004E3B, - 5657: 0x00004E4D, - 5658: 0x00004E4F, - 5659: 0x00004E4E, - 5660: 0x00004EE5, - 5661: 0x00004ED8, - 5662: 0x00004ED4, - 5663: 0x00004ED5, - 5664: 0x00004ED6, - 5665: 0x00004ED7, - 5666: 0x00004EE3, - 5667: 0x00004EE4, - 5668: 0x00004ED9, - 5669: 0x00004EDE, - 5670: 0x00005145, - 5671: 0x00005144, - 5672: 0x00005189, - 5673: 0x0000518A, - 5674: 0x000051AC, - 5675: 0x000051F9, - 5676: 0x000051FA, - 5677: 0x000051F8, - 5678: 0x0000520A, - 5679: 0x000052A0, - 5680: 0x0000529F, - 5681: 0x00005305, - 5682: 0x00005306, - 5683: 0x00005317, - 5684: 0x0000531D, - 5685: 0x00004EDF, - 5686: 0x0000534A, - 5687: 0x00005349, - 5688: 0x00005361, - 5689: 0x00005360, - 5690: 0x0000536F, - 5691: 0x0000536E, - 5692: 0x000053BB, - 5693: 0x000053EF, - 5694: 0x000053E4, - 5695: 0x000053F3, - 5696: 0x000053EC, - 5697: 0x000053EE, - 5698: 0x000053E9, - 5699: 0x000053E8, - 5700: 0x000053FC, - 5701: 0x000053F8, - 5702: 0x000053F5, - 5703: 0x000053EB, - 5704: 0x000053E6, - 5705: 0x000053EA, - 5706: 0x000053F2, - 5707: 0x000053F1, - 5708: 0x000053F0, - 5709: 0x000053E5, - 5710: 0x000053ED, - 5711: 0x000053FB, - 5712: 0x000056DB, - 5713: 0x000056DA, - 5714: 0x00005916, - 5715: 0x0000592E, - 5716: 0x00005931, - 5717: 0x00005974, - 5718: 0x00005976, - 5719: 0x00005B55, - 5720: 0x00005B83, - 5721: 0x00005C3C, - 5722: 0x00005DE8, - 5723: 0x00005DE7, - 5724: 0x00005DE6, - 5725: 0x00005E02, - 5726: 0x00005E03, - 5727: 0x00005E73, - 5728: 0x00005E7C, - 5729: 0x00005F01, - 5730: 0x00005F18, - 5731: 0x00005F17, - 5732: 0x00005FC5, - 5733: 0x0000620A, - 5734: 0x00006253, - 5735: 0x00006254, - 5736: 0x00006252, - 5737: 0x00006251, - 5738: 0x000065A5, - 5739: 0x000065E6, - 5740: 0x0000672E, - 5741: 0x0000672C, - 5742: 0x0000672A, - 5743: 0x0000672B, - 5744: 0x0000672D, - 5745: 0x00006B63, - 5746: 0x00006BCD, - 5747: 0x00006C11, - 5748: 0x00006C10, - 5749: 0x00006C38, - 5750: 0x00006C41, - 5751: 0x00006C40, - 5752: 0x00006C3E, - 5753: 0x000072AF, - 5754: 0x00007384, - 5755: 0x00007389, - 5756: 0x000074DC, - 5757: 0x000074E6, - 5758: 0x00007518, - 5759: 0x0000751F, - 5760: 0x00007528, - 5761: 0x00007529, - 5762: 0x00007530, - 5763: 0x00007531, - 5764: 0x00007532, - 5765: 0x00007533, - 5766: 0x0000758B, - 5767: 0x0000767D, - 5768: 0x000076AE, - 5769: 0x000076BF, - 5770: 0x000076EE, - 5771: 0x000077DB, - 5772: 0x000077E2, - 5773: 0x000077F3, - 5774: 0x0000793A, - 5775: 0x000079BE, - 5776: 0x00007A74, - 5777: 0x00007ACB, - 5778: 0x00004E1E, - 5779: 0x00004E1F, - 5780: 0x00004E52, - 5781: 0x00004E53, - 5782: 0x00004E69, - 5783: 0x00004E99, - 5784: 0x00004EA4, - 5785: 0x00004EA6, - 5786: 0x00004EA5, - 5787: 0x00004EFF, - 5788: 0x00004F09, - 5789: 0x00004F19, - 5790: 0x00004F0A, - 5791: 0x00004F15, - 5792: 0x00004F0D, - 5793: 0x00004F10, - 5794: 0x00004F11, - 5795: 0x00004F0F, - 5796: 0x00004EF2, - 5797: 0x00004EF6, - 5798: 0x00004EFB, - 5799: 0x00004EF0, - 5800: 0x00004EF3, - 5801: 0x00004EFD, - 5802: 0x00004F01, - 5803: 0x00004F0B, - 5804: 0x00005149, - 5805: 0x00005147, - 5806: 0x00005146, - 5807: 0x00005148, - 5808: 0x00005168, - 5809: 0x00005171, - 5810: 0x0000518D, - 5811: 0x000051B0, - 5812: 0x00005217, - 5813: 0x00005211, - 5814: 0x00005212, - 5815: 0x0000520E, - 5816: 0x00005216, - 5817: 0x000052A3, - 5818: 0x00005308, - 5819: 0x00005321, - 5820: 0x00005320, - 5821: 0x00005370, - 5822: 0x00005371, - 5823: 0x00005409, - 5824: 0x0000540F, - 5825: 0x0000540C, - 5826: 0x0000540A, - 5827: 0x00005410, - 5828: 0x00005401, - 5829: 0x0000540B, - 5830: 0x00005404, - 5831: 0x00005411, - 5832: 0x0000540D, - 5833: 0x00005408, - 5834: 0x00005403, - 5835: 0x0000540E, - 5836: 0x00005406, - 5837: 0x00005412, - 5838: 0x000056E0, - 5839: 0x000056DE, - 5840: 0x000056DD, - 5841: 0x00005733, - 5842: 0x00005730, - 5843: 0x00005728, - 5844: 0x0000572D, - 5845: 0x0000572C, - 5846: 0x0000572F, - 5847: 0x00005729, - 5848: 0x00005919, - 5849: 0x0000591A, - 5850: 0x00005937, - 5851: 0x00005938, - 5852: 0x00005984, - 5853: 0x00005978, - 5854: 0x00005983, - 5855: 0x0000597D, - 5856: 0x00005979, - 5857: 0x00005982, - 5858: 0x00005981, - 5859: 0x00005B57, - 5860: 0x00005B58, - 5861: 0x00005B87, - 5862: 0x00005B88, - 5863: 0x00005B85, - 5864: 0x00005B89, - 5865: 0x00005BFA, - 5866: 0x00005C16, - 5867: 0x00005C79, - 5868: 0x00005DDE, - 5869: 0x00005E06, - 5870: 0x00005E76, - 5871: 0x00005E74, - 5872: 0x00005F0F, - 5873: 0x00005F1B, - 5874: 0x00005FD9, - 5875: 0x00005FD6, - 5876: 0x0000620E, - 5877: 0x0000620C, - 5878: 0x0000620D, - 5879: 0x00006210, - 5880: 0x00006263, - 5881: 0x0000625B, - 5882: 0x00006258, - 5883: 0x00006536, - 5884: 0x000065E9, - 5885: 0x000065E8, - 5886: 0x000065EC, - 5887: 0x000065ED, - 5888: 0x000066F2, - 5889: 0x000066F3, - 5890: 0x00006709, - 5891: 0x0000673D, - 5892: 0x00006734, - 5893: 0x00006731, - 5894: 0x00006735, - 5895: 0x00006B21, - 5896: 0x00006B64, - 5897: 0x00006B7B, - 5898: 0x00006C16, - 5899: 0x00006C5D, - 5900: 0x00006C57, - 5901: 0x00006C59, - 5902: 0x00006C5F, - 5903: 0x00006C60, - 5904: 0x00006C50, - 5905: 0x00006C55, - 5906: 0x00006C61, - 5907: 0x00006C5B, - 5908: 0x00006C4D, - 5909: 0x00006C4E, - 5910: 0x00007070, - 5911: 0x0000725F, - 5912: 0x0000725D, - 5913: 0x0000767E, - 5914: 0x00007AF9, - 5915: 0x00007C73, - 5916: 0x00007CF8, - 5917: 0x00007F36, - 5918: 0x00007F8A, - 5919: 0x00007FBD, - 5920: 0x00008001, - 5921: 0x00008003, - 5922: 0x0000800C, - 5923: 0x00008012, - 5924: 0x00008033, - 5925: 0x0000807F, - 5926: 0x00008089, - 5927: 0x0000808B, - 5928: 0x0000808C, - 5929: 0x000081E3, - 5930: 0x000081EA, - 5931: 0x000081F3, - 5932: 0x000081FC, - 5933: 0x0000820C, - 5934: 0x0000821B, - 5935: 0x0000821F, - 5936: 0x0000826E, - 5937: 0x00008272, - 5938: 0x0000827E, - 5939: 0x0000866B, - 5940: 0x00008840, - 5941: 0x0000884C, - 5942: 0x00008863, - 5943: 0x0000897F, - 5944: 0x00009621, - 5945: 0x00004E32, - 5946: 0x00004EA8, - 5947: 0x00004F4D, - 5948: 0x00004F4F, - 5949: 0x00004F47, - 5950: 0x00004F57, - 5951: 0x00004F5E, - 5952: 0x00004F34, - 5953: 0x00004F5B, - 5954: 0x00004F55, - 5955: 0x00004F30, - 5956: 0x00004F50, - 5957: 0x00004F51, - 5958: 0x00004F3D, - 5959: 0x00004F3A, - 5960: 0x00004F38, - 5961: 0x00004F43, - 5962: 0x00004F54, - 5963: 0x00004F3C, - 5964: 0x00004F46, - 5965: 0x00004F63, - 5966: 0x00004F5C, - 5967: 0x00004F60, - 5968: 0x00004F2F, - 5969: 0x00004F4E, - 5970: 0x00004F36, - 5971: 0x00004F59, - 5972: 0x00004F5D, - 5973: 0x00004F48, - 5974: 0x00004F5A, - 5975: 0x0000514C, - 5976: 0x0000514B, - 5977: 0x0000514D, - 5978: 0x00005175, - 5979: 0x000051B6, - 5980: 0x000051B7, - 5981: 0x00005225, - 5982: 0x00005224, - 5983: 0x00005229, - 5984: 0x0000522A, - 5985: 0x00005228, - 5986: 0x000052AB, - 5987: 0x000052A9, - 5988: 0x000052AA, - 5989: 0x000052AC, - 5990: 0x00005323, - 5991: 0x00005373, - 5992: 0x00005375, - 5993: 0x0000541D, - 5994: 0x0000542D, - 5995: 0x0000541E, - 5996: 0x0000543E, - 5997: 0x00005426, - 5998: 0x0000544E, - 5999: 0x00005427, - 6000: 0x00005446, - 6001: 0x00005443, - 6002: 0x00005433, - 6003: 0x00005448, - 6004: 0x00005442, - 6005: 0x0000541B, - 6006: 0x00005429, - 6007: 0x0000544A, - 6008: 0x00005439, - 6009: 0x0000543B, - 6010: 0x00005438, - 6011: 0x0000542E, - 6012: 0x00005435, - 6013: 0x00005436, - 6014: 0x00005420, - 6015: 0x0000543C, - 6016: 0x00005440, - 6017: 0x00005431, - 6018: 0x0000542B, - 6019: 0x0000541F, - 6020: 0x0000542C, - 6021: 0x000056EA, - 6022: 0x000056F0, - 6023: 0x000056E4, - 6024: 0x000056EB, - 6025: 0x0000574A, - 6026: 0x00005751, - 6027: 0x00005740, - 6028: 0x0000574D, - 6029: 0x00005747, - 6030: 0x0000574E, - 6031: 0x0000573E, - 6032: 0x00005750, - 6033: 0x0000574F, - 6034: 0x0000573B, - 6035: 0x000058EF, - 6036: 0x0000593E, - 6037: 0x0000599D, - 6038: 0x00005992, - 6039: 0x000059A8, - 6040: 0x0000599E, - 6041: 0x000059A3, - 6042: 0x00005999, - 6043: 0x00005996, - 6044: 0x0000598D, - 6045: 0x000059A4, - 6046: 0x00005993, - 6047: 0x0000598A, - 6048: 0x000059A5, - 6049: 0x00005B5D, - 6050: 0x00005B5C, - 6051: 0x00005B5A, - 6052: 0x00005B5B, - 6053: 0x00005B8C, - 6054: 0x00005B8B, - 6055: 0x00005B8F, - 6056: 0x00005C2C, - 6057: 0x00005C40, - 6058: 0x00005C41, - 6059: 0x00005C3F, - 6060: 0x00005C3E, - 6061: 0x00005C90, - 6062: 0x00005C91, - 6063: 0x00005C94, - 6064: 0x00005C8C, - 6065: 0x00005DEB, - 6066: 0x00005E0C, - 6067: 0x00005E8F, - 6068: 0x00005E87, - 6069: 0x00005E8A, - 6070: 0x00005EF7, - 6071: 0x00005F04, - 6072: 0x00005F1F, - 6073: 0x00005F64, - 6074: 0x00005F62, - 6075: 0x00005F77, - 6076: 0x00005F79, - 6077: 0x00005FD8, - 6078: 0x00005FCC, - 6079: 0x00005FD7, - 6080: 0x00005FCD, - 6081: 0x00005FF1, - 6082: 0x00005FEB, - 6083: 0x00005FF8, - 6084: 0x00005FEA, - 6085: 0x00006212, - 6086: 0x00006211, - 6087: 0x00006284, - 6088: 0x00006297, - 6089: 0x00006296, - 6090: 0x00006280, - 6091: 0x00006276, - 6092: 0x00006289, - 6093: 0x0000626D, - 6094: 0x0000628A, - 6095: 0x0000627C, - 6096: 0x0000627E, - 6097: 0x00006279, - 6098: 0x00006273, - 6099: 0x00006292, - 6100: 0x0000626F, - 6101: 0x00006298, - 6102: 0x0000626E, - 6103: 0x00006295, - 6104: 0x00006293, - 6105: 0x00006291, - 6106: 0x00006286, - 6107: 0x00006539, - 6108: 0x0000653B, - 6109: 0x00006538, - 6110: 0x000065F1, - 6111: 0x000066F4, - 6112: 0x0000675F, - 6113: 0x0000674E, - 6114: 0x0000674F, - 6115: 0x00006750, - 6116: 0x00006751, - 6117: 0x0000675C, - 6118: 0x00006756, - 6119: 0x0000675E, - 6120: 0x00006749, - 6121: 0x00006746, - 6122: 0x00006760, - 6123: 0x00006753, - 6124: 0x00006757, - 6125: 0x00006B65, - 6126: 0x00006BCF, - 6127: 0x00006C42, - 6128: 0x00006C5E, - 6129: 0x00006C99, - 6130: 0x00006C81, - 6131: 0x00006C88, - 6132: 0x00006C89, - 6133: 0x00006C85, - 6134: 0x00006C9B, - 6135: 0x00006C6A, - 6136: 0x00006C7A, - 6137: 0x00006C90, - 6138: 0x00006C70, - 6139: 0x00006C8C, - 6140: 0x00006C68, - 6141: 0x00006C96, - 6142: 0x00006C92, - 6143: 0x00006C7D, - 6144: 0x00006C83, - 6145: 0x00006C72, - 6146: 0x00006C7E, - 6147: 0x00006C74, - 6148: 0x00006C86, - 6149: 0x00006C76, - 6150: 0x00006C8D, - 6151: 0x00006C94, - 6152: 0x00006C98, - 6153: 0x00006C82, - 6154: 0x00007076, - 6155: 0x0000707C, - 6156: 0x0000707D, - 6157: 0x00007078, - 6158: 0x00007262, - 6159: 0x00007261, - 6160: 0x00007260, - 6161: 0x000072C4, - 6162: 0x000072C2, - 6163: 0x00007396, - 6164: 0x0000752C, - 6165: 0x0000752B, - 6166: 0x00007537, - 6167: 0x00007538, - 6168: 0x00007682, - 6169: 0x000076EF, - 6170: 0x000077E3, - 6171: 0x000079C1, - 6172: 0x000079C0, - 6173: 0x000079BF, - 6174: 0x00007A76, - 6175: 0x00007CFB, - 6176: 0x00007F55, - 6177: 0x00008096, - 6178: 0x00008093, - 6179: 0x0000809D, - 6180: 0x00008098, - 6181: 0x0000809B, - 6182: 0x0000809A, - 6183: 0x000080B2, - 6184: 0x0000826F, - 6185: 0x00008292, - 6186: 0x0000828B, - 6187: 0x0000828D, - 6188: 0x0000898B, - 6189: 0x000089D2, - 6190: 0x00008A00, - 6191: 0x00008C37, - 6192: 0x00008C46, - 6193: 0x00008C55, - 6194: 0x00008C9D, - 6195: 0x00008D64, - 6196: 0x00008D70, - 6197: 0x00008DB3, - 6198: 0x00008EAB, - 6199: 0x00008ECA, - 6200: 0x00008F9B, - 6201: 0x00008FB0, - 6202: 0x00008FC2, - 6203: 0x00008FC6, - 6204: 0x00008FC5, - 6205: 0x00008FC4, - 6206: 0x00005DE1, - 6207: 0x00009091, - 6208: 0x000090A2, - 6209: 0x000090AA, - 6210: 0x000090A6, - 6211: 0x000090A3, - 6212: 0x00009149, - 6213: 0x000091C6, - 6214: 0x000091CC, - 6215: 0x00009632, - 6216: 0x0000962E, - 6217: 0x00009631, - 6218: 0x0000962A, - 6219: 0x0000962C, - 6220: 0x00004E26, - 6221: 0x00004E56, - 6222: 0x00004E73, - 6223: 0x00004E8B, - 6224: 0x00004E9B, - 6225: 0x00004E9E, - 6226: 0x00004EAB, - 6227: 0x00004EAC, - 6228: 0x00004F6F, - 6229: 0x00004F9D, - 6230: 0x00004F8D, - 6231: 0x00004F73, - 6232: 0x00004F7F, - 6233: 0x00004F6C, - 6234: 0x00004F9B, - 6235: 0x00004F8B, - 6236: 0x00004F86, - 6237: 0x00004F83, - 6238: 0x00004F70, - 6239: 0x00004F75, - 6240: 0x00004F88, - 6241: 0x00004F69, - 6242: 0x00004F7B, - 6243: 0x00004F96, - 6244: 0x00004F7E, - 6245: 0x00004F8F, - 6246: 0x00004F91, - 6247: 0x00004F7A, - 6248: 0x00005154, - 6249: 0x00005152, - 6250: 0x00005155, - 6251: 0x00005169, - 6252: 0x00005177, - 6253: 0x00005176, - 6254: 0x00005178, - 6255: 0x000051BD, - 6256: 0x000051FD, - 6257: 0x0000523B, - 6258: 0x00005238, - 6259: 0x00005237, - 6260: 0x0000523A, - 6261: 0x00005230, - 6262: 0x0000522E, - 6263: 0x00005236, - 6264: 0x00005241, - 6265: 0x000052BE, - 6266: 0x000052BB, - 6267: 0x00005352, - 6268: 0x00005354, - 6269: 0x00005353, - 6270: 0x00005351, - 6271: 0x00005366, - 6272: 0x00005377, - 6273: 0x00005378, - 6274: 0x00005379, - 6275: 0x000053D6, - 6276: 0x000053D4, - 6277: 0x000053D7, - 6278: 0x00005473, - 6279: 0x00005475, - 6280: 0x00005496, - 6281: 0x00005478, - 6282: 0x00005495, - 6283: 0x00005480, - 6284: 0x0000547B, - 6285: 0x00005477, - 6286: 0x00005484, - 6287: 0x00005492, - 6288: 0x00005486, - 6289: 0x0000547C, - 6290: 0x00005490, - 6291: 0x00005471, - 6292: 0x00005476, - 6293: 0x0000548C, - 6294: 0x0000549A, - 6295: 0x00005462, - 6296: 0x00005468, - 6297: 0x0000548B, - 6298: 0x0000547D, - 6299: 0x0000548E, - 6300: 0x000056FA, - 6301: 0x00005783, - 6302: 0x00005777, - 6303: 0x0000576A, - 6304: 0x00005769, - 6305: 0x00005761, - 6306: 0x00005766, - 6307: 0x00005764, - 6308: 0x0000577C, - 6309: 0x0000591C, - 6310: 0x00005949, - 6311: 0x00005947, - 6312: 0x00005948, - 6313: 0x00005944, - 6314: 0x00005954, - 6315: 0x000059BE, - 6316: 0x000059BB, - 6317: 0x000059D4, - 6318: 0x000059B9, - 6319: 0x000059AE, - 6320: 0x000059D1, - 6321: 0x000059C6, - 6322: 0x000059D0, - 6323: 0x000059CD, - 6324: 0x000059CB, - 6325: 0x000059D3, - 6326: 0x000059CA, - 6327: 0x000059AF, - 6328: 0x000059B3, - 6329: 0x000059D2, - 6330: 0x000059C5, - 6331: 0x00005B5F, - 6332: 0x00005B64, - 6333: 0x00005B63, - 6334: 0x00005B97, - 6335: 0x00005B9A, - 6336: 0x00005B98, - 6337: 0x00005B9C, - 6338: 0x00005B99, - 6339: 0x00005B9B, - 6340: 0x00005C1A, - 6341: 0x00005C48, - 6342: 0x00005C45, - 6343: 0x00005C46, - 6344: 0x00005CB7, - 6345: 0x00005CA1, - 6346: 0x00005CB8, - 6347: 0x00005CA9, - 6348: 0x00005CAB, - 6349: 0x00005CB1, - 6350: 0x00005CB3, - 6351: 0x00005E18, - 6352: 0x00005E1A, - 6353: 0x00005E16, - 6354: 0x00005E15, - 6355: 0x00005E1B, - 6356: 0x00005E11, - 6357: 0x00005E78, - 6358: 0x00005E9A, - 6359: 0x00005E97, - 6360: 0x00005E9C, - 6361: 0x00005E95, - 6362: 0x00005E96, - 6363: 0x00005EF6, - 6364: 0x00005F26, - 6365: 0x00005F27, - 6366: 0x00005F29, - 6367: 0x00005F80, - 6368: 0x00005F81, - 6369: 0x00005F7F, - 6370: 0x00005F7C, - 6371: 0x00005FDD, - 6372: 0x00005FE0, - 6373: 0x00005FFD, - 6374: 0x00005FF5, - 6375: 0x00005FFF, - 6376: 0x0000600F, - 6377: 0x00006014, - 6378: 0x0000602F, - 6379: 0x00006035, - 6380: 0x00006016, - 6381: 0x0000602A, - 6382: 0x00006015, - 6383: 0x00006021, - 6384: 0x00006027, - 6385: 0x00006029, - 6386: 0x0000602B, - 6387: 0x0000601B, - 6388: 0x00006216, - 6389: 0x00006215, - 6390: 0x0000623F, - 6391: 0x0000623E, - 6392: 0x00006240, - 6393: 0x0000627F, - 6394: 0x000062C9, - 6395: 0x000062CC, - 6396: 0x000062C4, - 6397: 0x000062BF, - 6398: 0x000062C2, - 6399: 0x000062B9, - 6400: 0x000062D2, - 6401: 0x000062DB, - 6402: 0x000062AB, - 6403: 0x000062D3, - 6404: 0x000062D4, - 6405: 0x000062CB, - 6406: 0x000062C8, - 6407: 0x000062A8, - 6408: 0x000062BD, - 6409: 0x000062BC, - 6410: 0x000062D0, - 6411: 0x000062D9, - 6412: 0x000062C7, - 6413: 0x000062CD, - 6414: 0x000062B5, - 6415: 0x000062DA, - 6416: 0x000062B1, - 6417: 0x000062D8, - 6418: 0x000062D6, - 6419: 0x000062D7, - 6420: 0x000062C6, - 6421: 0x000062AC, - 6422: 0x000062CE, - 6423: 0x0000653E, - 6424: 0x000065A7, - 6425: 0x000065BC, - 6426: 0x000065FA, - 6427: 0x00006614, - 6428: 0x00006613, - 6429: 0x0000660C, - 6430: 0x00006606, - 6431: 0x00006602, - 6432: 0x0000660E, - 6433: 0x00006600, - 6434: 0x0000660F, - 6435: 0x00006615, - 6436: 0x0000660A, - 6437: 0x00006607, - 6438: 0x0000670D, - 6439: 0x0000670B, - 6440: 0x0000676D, - 6441: 0x0000678B, - 6442: 0x00006795, - 6443: 0x00006771, - 6444: 0x0000679C, - 6445: 0x00006773, - 6446: 0x00006777, - 6447: 0x00006787, - 6448: 0x0000679D, - 6449: 0x00006797, - 6450: 0x0000676F, - 6451: 0x00006770, - 6452: 0x0000677F, - 6453: 0x00006789, - 6454: 0x0000677E, - 6455: 0x00006790, - 6456: 0x00006775, - 6457: 0x0000679A, - 6458: 0x00006793, - 6459: 0x0000677C, - 6460: 0x0000676A, - 6461: 0x00006772, - 6462: 0x00006B23, - 6463: 0x00006B66, - 6464: 0x00006B67, - 6465: 0x00006B7F, - 6466: 0x00006C13, - 6467: 0x00006C1B, - 6468: 0x00006CE3, - 6469: 0x00006CE8, - 6470: 0x00006CF3, - 6471: 0x00006CB1, - 6472: 0x00006CCC, - 6473: 0x00006CE5, - 6474: 0x00006CB3, - 6475: 0x00006CBD, - 6476: 0x00006CBE, - 6477: 0x00006CBC, - 6478: 0x00006CE2, - 6479: 0x00006CAB, - 6480: 0x00006CD5, - 6481: 0x00006CD3, - 6482: 0x00006CB8, - 6483: 0x00006CC4, - 6484: 0x00006CB9, - 6485: 0x00006CC1, - 6486: 0x00006CAE, - 6487: 0x00006CD7, - 6488: 0x00006CC5, - 6489: 0x00006CF1, - 6490: 0x00006CBF, - 6491: 0x00006CBB, - 6492: 0x00006CE1, - 6493: 0x00006CDB, - 6494: 0x00006CCA, - 6495: 0x00006CAC, - 6496: 0x00006CEF, - 6497: 0x00006CDC, - 6498: 0x00006CD6, - 6499: 0x00006CE0, - 6500: 0x00007095, - 6501: 0x0000708E, - 6502: 0x00007092, - 6503: 0x0000708A, - 6504: 0x00007099, - 6505: 0x0000722C, - 6506: 0x0000722D, - 6507: 0x00007238, - 6508: 0x00007248, - 6509: 0x00007267, - 6510: 0x00007269, - 6511: 0x000072C0, - 6512: 0x000072CE, - 6513: 0x000072D9, - 6514: 0x000072D7, - 6515: 0x000072D0, - 6516: 0x000073A9, - 6517: 0x000073A8, - 6518: 0x0000739F, - 6519: 0x000073AB, - 6520: 0x000073A5, - 6521: 0x0000753D, - 6522: 0x0000759D, - 6523: 0x00007599, - 6524: 0x0000759A, - 6525: 0x00007684, - 6526: 0x000076C2, - 6527: 0x000076F2, - 6528: 0x000076F4, - 6529: 0x000077E5, - 6530: 0x000077FD, - 6531: 0x0000793E, - 6532: 0x00007940, - 6533: 0x00007941, - 6534: 0x000079C9, - 6535: 0x000079C8, - 6536: 0x00007A7A, - 6537: 0x00007A79, - 6538: 0x00007AFA, - 6539: 0x00007CFE, - 6540: 0x00007F54, - 6541: 0x00007F8C, - 6542: 0x00007F8B, - 6543: 0x00008005, - 6544: 0x000080BA, - 6545: 0x000080A5, - 6546: 0x000080A2, - 6547: 0x000080B1, - 6548: 0x000080A1, - 6549: 0x000080AB, - 6550: 0x000080A9, - 6551: 0x000080B4, - 6552: 0x000080AA, - 6553: 0x000080AF, - 6554: 0x000081E5, - 6555: 0x000081FE, - 6556: 0x0000820D, - 6557: 0x000082B3, - 6558: 0x0000829D, - 6559: 0x00008299, - 6560: 0x000082AD, - 6561: 0x000082BD, - 6562: 0x0000829F, - 6563: 0x000082B9, - 6564: 0x000082B1, - 6565: 0x000082AC, - 6566: 0x000082A5, - 6567: 0x000082AF, - 6568: 0x000082B8, - 6569: 0x000082A3, - 6570: 0x000082B0, - 6571: 0x000082BE, - 6572: 0x000082B7, - 6573: 0x0000864E, - 6574: 0x00008671, - 6575: 0x0000521D, - 6576: 0x00008868, - 6577: 0x00008ECB, - 6578: 0x00008FCE, - 6579: 0x00008FD4, - 6580: 0x00008FD1, - 6581: 0x000090B5, - 6582: 0x000090B8, - 6583: 0x000090B1, - 6584: 0x000090B6, - 6585: 0x000091C7, - 6586: 0x000091D1, - 6587: 0x00009577, - 6588: 0x00009580, - 6589: 0x0000961C, - 6590: 0x00009640, - 6591: 0x0000963F, - 6592: 0x0000963B, - 6593: 0x00009644, - 6594: 0x00009642, - 6595: 0x000096B9, - 6596: 0x000096E8, - 6597: 0x00009752, - 6598: 0x0000975E, - 6599: 0x00004E9F, - 6600: 0x00004EAD, - 6601: 0x00004EAE, - 6602: 0x00004FE1, - 6603: 0x00004FB5, - 6604: 0x00004FAF, - 6605: 0x00004FBF, - 6606: 0x00004FE0, - 6607: 0x00004FD1, - 6608: 0x00004FCF, - 6609: 0x00004FDD, - 6610: 0x00004FC3, - 6611: 0x00004FB6, - 6612: 0x00004FD8, - 6613: 0x00004FDF, - 6614: 0x00004FCA, - 6615: 0x00004FD7, - 6616: 0x00004FAE, - 6617: 0x00004FD0, - 6618: 0x00004FC4, - 6619: 0x00004FC2, - 6620: 0x00004FDA, - 6621: 0x00004FCE, - 6622: 0x00004FDE, - 6623: 0x00004FB7, - 6624: 0x00005157, - 6625: 0x00005192, - 6626: 0x00005191, - 6627: 0x000051A0, - 6628: 0x0000524E, - 6629: 0x00005243, - 6630: 0x0000524A, - 6631: 0x0000524D, - 6632: 0x0000524C, - 6633: 0x0000524B, - 6634: 0x00005247, - 6635: 0x000052C7, - 6636: 0x000052C9, - 6637: 0x000052C3, - 6638: 0x000052C1, - 6639: 0x0000530D, - 6640: 0x00005357, - 6641: 0x0000537B, - 6642: 0x0000539A, - 6643: 0x000053DB, - 6644: 0x000054AC, - 6645: 0x000054C0, - 6646: 0x000054A8, - 6647: 0x000054CE, - 6648: 0x000054C9, - 6649: 0x000054B8, - 6650: 0x000054A6, - 6651: 0x000054B3, - 6652: 0x000054C7, - 6653: 0x000054C2, - 6654: 0x000054BD, - 6655: 0x000054AA, - 6656: 0x000054C1, - 6657: 0x000054C4, - 6658: 0x000054C8, - 6659: 0x000054AF, - 6660: 0x000054AB, - 6661: 0x000054B1, - 6662: 0x000054BB, - 6663: 0x000054A9, - 6664: 0x000054A7, - 6665: 0x000054BF, - 6666: 0x000056FF, - 6667: 0x00005782, - 6668: 0x0000578B, - 6669: 0x000057A0, - 6670: 0x000057A3, - 6671: 0x000057A2, - 6672: 0x000057CE, - 6673: 0x000057AE, - 6674: 0x00005793, - 6675: 0x00005955, - 6676: 0x00005951, - 6677: 0x0000594F, - 6678: 0x0000594E, - 6679: 0x00005950, - 6680: 0x000059DC, - 6681: 0x000059D8, - 6682: 0x000059FF, - 6683: 0x000059E3, - 6684: 0x000059E8, - 6685: 0x00005A03, - 6686: 0x000059E5, - 6687: 0x000059EA, - 6688: 0x000059DA, - 6689: 0x000059E6, - 6690: 0x00005A01, - 6691: 0x000059FB, - 6692: 0x00005B69, - 6693: 0x00005BA3, - 6694: 0x00005BA6, - 6695: 0x00005BA4, - 6696: 0x00005BA2, - 6697: 0x00005BA5, - 6698: 0x00005C01, - 6699: 0x00005C4E, - 6700: 0x00005C4F, - 6701: 0x00005C4D, - 6702: 0x00005C4B, - 6703: 0x00005CD9, - 6704: 0x00005CD2, - 6705: 0x00005DF7, - 6706: 0x00005E1D, - 6707: 0x00005E25, - 6708: 0x00005E1F, - 6709: 0x00005E7D, - 6710: 0x00005EA0, - 6711: 0x00005EA6, - 6712: 0x00005EFA, - 6713: 0x00005F08, - 6714: 0x00005F2D, - 6715: 0x00005F65, - 6716: 0x00005F88, - 6717: 0x00005F85, - 6718: 0x00005F8A, - 6719: 0x00005F8B, - 6720: 0x00005F87, - 6721: 0x00005F8C, - 6722: 0x00005F89, - 6723: 0x00006012, - 6724: 0x0000601D, - 6725: 0x00006020, - 6726: 0x00006025, - 6727: 0x0000600E, - 6728: 0x00006028, - 6729: 0x0000604D, - 6730: 0x00006070, - 6731: 0x00006068, - 6732: 0x00006062, - 6733: 0x00006046, - 6734: 0x00006043, - 6735: 0x0000606C, - 6736: 0x0000606B, - 6737: 0x0000606A, - 6738: 0x00006064, - 6739: 0x00006241, - 6740: 0x000062DC, - 6741: 0x00006316, - 6742: 0x00006309, - 6743: 0x000062FC, - 6744: 0x000062ED, - 6745: 0x00006301, - 6746: 0x000062EE, - 6747: 0x000062FD, - 6748: 0x00006307, - 6749: 0x000062F1, - 6750: 0x000062F7, - 6751: 0x000062EF, - 6752: 0x000062EC, - 6753: 0x000062FE, - 6754: 0x000062F4, - 6755: 0x00006311, - 6756: 0x00006302, - 6757: 0x0000653F, - 6758: 0x00006545, - 6759: 0x000065AB, - 6760: 0x000065BD, - 6761: 0x000065E2, - 6762: 0x00006625, - 6763: 0x0000662D, - 6764: 0x00006620, - 6765: 0x00006627, - 6766: 0x0000662F, - 6767: 0x0000661F, - 6768: 0x00006628, - 6769: 0x00006631, - 6770: 0x00006624, - 6771: 0x000066F7, - 6772: 0x000067FF, - 6773: 0x000067D3, - 6774: 0x000067F1, - 6775: 0x000067D4, - 6776: 0x000067D0, - 6777: 0x000067EC, - 6778: 0x000067B6, - 6779: 0x000067AF, - 6780: 0x000067F5, - 6781: 0x000067E9, - 6782: 0x000067EF, - 6783: 0x000067C4, - 6784: 0x000067D1, - 6785: 0x000067B4, - 6786: 0x000067DA, - 6787: 0x000067E5, - 6788: 0x000067B8, - 6789: 0x000067CF, - 6790: 0x000067DE, - 6791: 0x000067F3, - 6792: 0x000067B0, - 6793: 0x000067D9, - 6794: 0x000067E2, - 6795: 0x000067DD, - 6796: 0x000067D2, - 6797: 0x00006B6A, - 6798: 0x00006B83, - 6799: 0x00006B86, - 6800: 0x00006BB5, - 6801: 0x00006BD2, - 6802: 0x00006BD7, - 6803: 0x00006C1F, - 6804: 0x00006CC9, - 6805: 0x00006D0B, - 6806: 0x00006D32, - 6807: 0x00006D2A, - 6808: 0x00006D41, - 6809: 0x00006D25, - 6810: 0x00006D0C, - 6811: 0x00006D31, - 6812: 0x00006D1E, - 6813: 0x00006D17, - 6814: 0x00006D3B, - 6815: 0x00006D3D, - 6816: 0x00006D3E, - 6817: 0x00006D36, - 6818: 0x00006D1B, - 6819: 0x00006CF5, - 6820: 0x00006D39, - 6821: 0x00006D27, - 6822: 0x00006D38, - 6823: 0x00006D29, - 6824: 0x00006D2E, - 6825: 0x00006D35, - 6826: 0x00006D0E, - 6827: 0x00006D2B, - 6828: 0x000070AB, - 6829: 0x000070BA, - 6830: 0x000070B3, - 6831: 0x000070AC, - 6832: 0x000070AF, - 6833: 0x000070AD, - 6834: 0x000070B8, - 6835: 0x000070AE, - 6836: 0x000070A4, - 6837: 0x00007230, - 6838: 0x00007272, - 6839: 0x0000726F, - 6840: 0x00007274, - 6841: 0x000072E9, - 6842: 0x000072E0, - 6843: 0x000072E1, - 6844: 0x000073B7, - 6845: 0x000073CA, - 6846: 0x000073BB, - 6847: 0x000073B2, - 6848: 0x000073CD, - 6849: 0x000073C0, - 6850: 0x000073B3, - 6851: 0x0000751A, - 6852: 0x0000752D, - 6853: 0x0000754F, - 6854: 0x0000754C, - 6855: 0x0000754E, - 6856: 0x0000754B, - 6857: 0x000075AB, - 6858: 0x000075A4, - 6859: 0x000075A5, - 6860: 0x000075A2, - 6861: 0x000075A3, - 6862: 0x00007678, - 6863: 0x00007686, - 6864: 0x00007687, - 6865: 0x00007688, - 6866: 0x000076C8, - 6867: 0x000076C6, - 6868: 0x000076C3, - 6869: 0x000076C5, - 6870: 0x00007701, - 6871: 0x000076F9, - 6872: 0x000076F8, - 6873: 0x00007709, - 6874: 0x0000770B, - 6875: 0x000076FE, - 6876: 0x000076FC, - 6877: 0x00007707, - 6878: 0x000077DC, - 6879: 0x00007802, - 6880: 0x00007814, - 6881: 0x0000780C, - 6882: 0x0000780D, - 6883: 0x00007946, - 6884: 0x00007949, - 6885: 0x00007948, - 6886: 0x00007947, - 6887: 0x000079B9, - 6888: 0x000079BA, - 6889: 0x000079D1, - 6890: 0x000079D2, - 6891: 0x000079CB, - 6892: 0x00007A7F, - 6893: 0x00007A81, - 6894: 0x00007AFF, - 6895: 0x00007AFD, - 6896: 0x00007C7D, - 6897: 0x00007D02, - 6898: 0x00007D05, - 6899: 0x00007D00, - 6900: 0x00007D09, - 6901: 0x00007D07, - 6902: 0x00007D04, - 6903: 0x00007D06, - 6904: 0x00007F38, - 6905: 0x00007F8E, - 6906: 0x00007FBF, - 6907: 0x00008004, - 6908: 0x00008010, - 6909: 0x0000800D, - 6910: 0x00008011, - 6911: 0x00008036, - 6912: 0x000080D6, - 6913: 0x000080E5, - 6914: 0x000080DA, - 6915: 0x000080C3, - 6916: 0x000080C4, - 6917: 0x000080CC, - 6918: 0x000080E1, - 6919: 0x000080DB, - 6920: 0x000080CE, - 6921: 0x000080DE, - 6922: 0x000080E4, - 6923: 0x000080DD, - 6924: 0x000081F4, - 6925: 0x00008222, - 6926: 0x000082E7, - 6927: 0x00008303, - 6928: 0x00008305, - 6929: 0x000082E3, - 6930: 0x000082DB, - 6931: 0x000082E6, - 6932: 0x00008304, - 6933: 0x000082E5, - 6934: 0x00008302, - 6935: 0x00008309, - 6936: 0x000082D2, - 6937: 0x000082D7, - 6938: 0x000082F1, - 6939: 0x00008301, - 6940: 0x000082DC, - 6941: 0x000082D4, - 6942: 0x000082D1, - 6943: 0x000082DE, - 6944: 0x000082D3, - 6945: 0x000082DF, - 6946: 0x000082EF, - 6947: 0x00008306, - 6948: 0x00008650, - 6949: 0x00008679, - 6950: 0x0000867B, - 6951: 0x0000867A, - 6952: 0x0000884D, - 6953: 0x0000886B, - 6954: 0x00008981, - 6955: 0x000089D4, - 6956: 0x00008A08, - 6957: 0x00008A02, - 6958: 0x00008A03, - 6959: 0x00008C9E, - 6960: 0x00008CA0, - 6961: 0x00008D74, - 6962: 0x00008D73, - 6963: 0x00008DB4, - 6964: 0x00008ECD, - 6965: 0x00008ECC, - 6966: 0x00008FF0, - 6967: 0x00008FE6, - 6968: 0x00008FE2, - 6969: 0x00008FEA, - 6970: 0x00008FE5, - 6971: 0x00008FED, - 6972: 0x00008FEB, - 6973: 0x00008FE4, - 6974: 0x00008FE8, - 6975: 0x000090CA, - 6976: 0x000090CE, - 6977: 0x000090C1, - 6978: 0x000090C3, - 6979: 0x0000914B, - 6980: 0x0000914A, - 6981: 0x000091CD, - 6982: 0x00009582, - 6983: 0x00009650, - 6984: 0x0000964B, - 6985: 0x0000964C, - 6986: 0x0000964D, - 6987: 0x00009762, - 6988: 0x00009769, - 6989: 0x000097CB, - 6990: 0x000097ED, - 6991: 0x000097F3, - 6992: 0x00009801, - 6993: 0x000098A8, - 6994: 0x000098DB, - 6995: 0x000098DF, - 6996: 0x00009996, - 6997: 0x00009999, - 6998: 0x00004E58, - 6999: 0x00004EB3, - 7000: 0x0000500C, - 7001: 0x0000500D, - 7002: 0x00005023, - 7003: 0x00004FEF, - 7004: 0x00005026, - 7005: 0x00005025, - 7006: 0x00004FF8, - 7007: 0x00005029, - 7008: 0x00005016, - 7009: 0x00005006, - 7010: 0x0000503C, - 7011: 0x0000501F, - 7012: 0x0000501A, - 7013: 0x00005012, - 7014: 0x00005011, - 7015: 0x00004FFA, - 7016: 0x00005000, - 7017: 0x00005014, - 7018: 0x00005028, - 7019: 0x00004FF1, - 7020: 0x00005021, - 7021: 0x0000500B, - 7022: 0x00005019, - 7023: 0x00005018, - 7024: 0x00004FF3, - 7025: 0x00004FEE, - 7026: 0x0000502D, - 7027: 0x0000502A, - 7028: 0x00004FFE, - 7029: 0x0000502B, - 7030: 0x00005009, - 7031: 0x0000517C, - 7032: 0x000051A4, - 7033: 0x000051A5, - 7034: 0x000051A2, - 7035: 0x000051CD, - 7036: 0x000051CC, - 7037: 0x000051C6, - 7038: 0x000051CB, - 7039: 0x00005256, - 7040: 0x0000525C, - 7041: 0x00005254, - 7042: 0x0000525B, - 7043: 0x0000525D, - 7044: 0x0000532A, - 7045: 0x0000537F, - 7046: 0x0000539F, - 7047: 0x0000539D, - 7048: 0x000053DF, - 7049: 0x000054E8, - 7050: 0x00005510, - 7051: 0x00005501, - 7052: 0x00005537, - 7053: 0x000054FC, - 7054: 0x000054E5, - 7055: 0x000054F2, - 7056: 0x00005506, - 7057: 0x000054FA, - 7058: 0x00005514, - 7059: 0x000054E9, - 7060: 0x000054ED, - 7061: 0x000054E1, - 7062: 0x00005509, - 7063: 0x000054EE, - 7064: 0x000054EA, - 7065: 0x000054E6, - 7066: 0x00005527, - 7067: 0x00005507, - 7068: 0x000054FD, - 7069: 0x0000550F, - 7070: 0x00005703, - 7071: 0x00005704, - 7072: 0x000057C2, - 7073: 0x000057D4, - 7074: 0x000057CB, - 7075: 0x000057C3, - 7076: 0x00005809, - 7077: 0x0000590F, - 7078: 0x00005957, - 7079: 0x00005958, - 7080: 0x0000595A, - 7081: 0x00005A11, - 7082: 0x00005A18, - 7083: 0x00005A1C, - 7084: 0x00005A1F, - 7085: 0x00005A1B, - 7086: 0x00005A13, - 7087: 0x000059EC, - 7088: 0x00005A20, - 7089: 0x00005A23, - 7090: 0x00005A29, - 7091: 0x00005A25, - 7092: 0x00005A0C, - 7093: 0x00005A09, - 7094: 0x00005B6B, - 7095: 0x00005C58, - 7096: 0x00005BB0, - 7097: 0x00005BB3, - 7098: 0x00005BB6, - 7099: 0x00005BB4, - 7100: 0x00005BAE, - 7101: 0x00005BB5, - 7102: 0x00005BB9, - 7103: 0x00005BB8, - 7104: 0x00005C04, - 7105: 0x00005C51, - 7106: 0x00005C55, - 7107: 0x00005C50, - 7108: 0x00005CED, - 7109: 0x00005CFD, - 7110: 0x00005CFB, - 7111: 0x00005CEA, - 7112: 0x00005CE8, - 7113: 0x00005CF0, - 7114: 0x00005CF6, - 7115: 0x00005D01, - 7116: 0x00005CF4, - 7117: 0x00005DEE, - 7118: 0x00005E2D, - 7119: 0x00005E2B, - 7120: 0x00005EAB, - 7121: 0x00005EAD, - 7122: 0x00005EA7, - 7123: 0x00005F31, - 7124: 0x00005F92, - 7125: 0x00005F91, - 7126: 0x00005F90, - 7127: 0x00006059, - 7128: 0x00006063, - 7129: 0x00006065, - 7130: 0x00006050, - 7131: 0x00006055, - 7132: 0x0000606D, - 7133: 0x00006069, - 7134: 0x0000606F, - 7135: 0x00006084, - 7136: 0x0000609F, - 7137: 0x0000609A, - 7138: 0x0000608D, - 7139: 0x00006094, - 7140: 0x0000608C, - 7141: 0x00006085, - 7142: 0x00006096, - 7143: 0x00006247, - 7144: 0x000062F3, - 7145: 0x00006308, - 7146: 0x000062FF, - 7147: 0x0000634E, - 7148: 0x0000633E, - 7149: 0x0000632F, - 7150: 0x00006355, - 7151: 0x00006342, - 7152: 0x00006346, - 7153: 0x0000634F, - 7154: 0x00006349, - 7155: 0x0000633A, - 7156: 0x00006350, - 7157: 0x0000633D, - 7158: 0x0000632A, - 7159: 0x0000632B, - 7160: 0x00006328, - 7161: 0x0000634D, - 7162: 0x0000634C, - 7163: 0x00006548, - 7164: 0x00006549, - 7165: 0x00006599, - 7166: 0x000065C1, - 7167: 0x000065C5, - 7168: 0x00006642, - 7169: 0x00006649, - 7170: 0x0000664F, - 7171: 0x00006643, - 7172: 0x00006652, - 7173: 0x0000664C, - 7174: 0x00006645, - 7175: 0x00006641, - 7176: 0x000066F8, - 7177: 0x00006714, - 7178: 0x00006715, - 7179: 0x00006717, - 7180: 0x00006821, - 7181: 0x00006838, - 7182: 0x00006848, - 7183: 0x00006846, - 7184: 0x00006853, - 7185: 0x00006839, - 7186: 0x00006842, - 7187: 0x00006854, - 7188: 0x00006829, - 7189: 0x000068B3, - 7190: 0x00006817, - 7191: 0x0000684C, - 7192: 0x00006851, - 7193: 0x0000683D, - 7194: 0x000067F4, - 7195: 0x00006850, - 7196: 0x00006840, - 7197: 0x0000683C, - 7198: 0x00006843, - 7199: 0x0000682A, - 7200: 0x00006845, - 7201: 0x00006813, - 7202: 0x00006818, - 7203: 0x00006841, - 7204: 0x00006B8A, - 7205: 0x00006B89, - 7206: 0x00006BB7, - 7207: 0x00006C23, - 7208: 0x00006C27, - 7209: 0x00006C28, - 7210: 0x00006C26, - 7211: 0x00006C24, - 7212: 0x00006CF0, - 7213: 0x00006D6A, - 7214: 0x00006D95, - 7215: 0x00006D88, - 7216: 0x00006D87, - 7217: 0x00006D66, - 7218: 0x00006D78, - 7219: 0x00006D77, - 7220: 0x00006D59, - 7221: 0x00006D93, - 7222: 0x00006D6C, - 7223: 0x00006D89, - 7224: 0x00006D6E, - 7225: 0x00006D5A, - 7226: 0x00006D74, - 7227: 0x00006D69, - 7228: 0x00006D8C, - 7229: 0x00006D8A, - 7230: 0x00006D79, - 7231: 0x00006D85, - 7232: 0x00006D65, - 7233: 0x00006D94, - 7234: 0x000070CA, - 7235: 0x000070D8, - 7236: 0x000070E4, - 7237: 0x000070D9, - 7238: 0x000070C8, - 7239: 0x000070CF, - 7240: 0x00007239, - 7241: 0x00007279, - 7242: 0x000072FC, - 7243: 0x000072F9, - 7244: 0x000072FD, - 7245: 0x000072F8, - 7246: 0x000072F7, - 7247: 0x00007386, - 7248: 0x000073ED, - 7249: 0x00007409, - 7250: 0x000073EE, - 7251: 0x000073E0, - 7252: 0x000073EA, - 7253: 0x000073DE, - 7254: 0x00007554, - 7255: 0x0000755D, - 7256: 0x0000755C, - 7257: 0x0000755A, - 7258: 0x00007559, - 7259: 0x000075BE, - 7260: 0x000075C5, - 7261: 0x000075C7, - 7262: 0x000075B2, - 7263: 0x000075B3, - 7264: 0x000075BD, - 7265: 0x000075BC, - 7266: 0x000075B9, - 7267: 0x000075C2, - 7268: 0x000075B8, - 7269: 0x0000768B, - 7270: 0x000076B0, - 7271: 0x000076CA, - 7272: 0x000076CD, - 7273: 0x000076CE, - 7274: 0x00007729, - 7275: 0x0000771F, - 7276: 0x00007720, - 7277: 0x00007728, - 7278: 0x000077E9, - 7279: 0x00007830, - 7280: 0x00007827, - 7281: 0x00007838, - 7282: 0x0000781D, - 7283: 0x00007834, - 7284: 0x00007837, - 7285: 0x00007825, - 7286: 0x0000782D, - 7287: 0x00007820, - 7288: 0x0000781F, - 7289: 0x00007832, - 7290: 0x00007955, - 7291: 0x00007950, - 7292: 0x00007960, - 7293: 0x0000795F, - 7294: 0x00007956, - 7295: 0x0000795E, - 7296: 0x0000795D, - 7297: 0x00007957, - 7298: 0x0000795A, - 7299: 0x000079E4, - 7300: 0x000079E3, - 7301: 0x000079E7, - 7302: 0x000079DF, - 7303: 0x000079E6, - 7304: 0x000079E9, - 7305: 0x000079D8, - 7306: 0x00007A84, - 7307: 0x00007A88, - 7308: 0x00007AD9, - 7309: 0x00007B06, - 7310: 0x00007B11, - 7311: 0x00007C89, - 7312: 0x00007D21, - 7313: 0x00007D17, - 7314: 0x00007D0B, - 7315: 0x00007D0A, - 7316: 0x00007D20, - 7317: 0x00007D22, - 7318: 0x00007D14, - 7319: 0x00007D10, - 7320: 0x00007D15, - 7321: 0x00007D1A, - 7322: 0x00007D1C, - 7323: 0x00007D0D, - 7324: 0x00007D19, - 7325: 0x00007D1B, - 7326: 0x00007F3A, - 7327: 0x00007F5F, - 7328: 0x00007F94, - 7329: 0x00007FC5, - 7330: 0x00007FC1, - 7331: 0x00008006, - 7332: 0x00008018, - 7333: 0x00008015, - 7334: 0x00008019, - 7335: 0x00008017, - 7336: 0x0000803D, - 7337: 0x0000803F, - 7338: 0x000080F1, - 7339: 0x00008102, - 7340: 0x000080F0, - 7341: 0x00008105, - 7342: 0x000080ED, - 7343: 0x000080F4, - 7344: 0x00008106, - 7345: 0x000080F8, - 7346: 0x000080F3, - 7347: 0x00008108, - 7348: 0x000080FD, - 7349: 0x0000810A, - 7350: 0x000080FC, - 7351: 0x000080EF, - 7352: 0x000081ED, - 7353: 0x000081EC, - 7354: 0x00008200, - 7355: 0x00008210, - 7356: 0x0000822A, - 7357: 0x0000822B, - 7358: 0x00008228, - 7359: 0x0000822C, - 7360: 0x000082BB, - 7361: 0x0000832B, - 7362: 0x00008352, - 7363: 0x00008354, - 7364: 0x0000834A, - 7365: 0x00008338, - 7366: 0x00008350, - 7367: 0x00008349, - 7368: 0x00008335, - 7369: 0x00008334, - 7370: 0x0000834F, - 7371: 0x00008332, - 7372: 0x00008339, - 7373: 0x00008336, - 7374: 0x00008317, - 7375: 0x00008340, - 7376: 0x00008331, - 7377: 0x00008328, - 7378: 0x00008343, - 7379: 0x00008654, - 7380: 0x0000868A, - 7381: 0x000086AA, - 7382: 0x00008693, - 7383: 0x000086A4, - 7384: 0x000086A9, - 7385: 0x0000868C, - 7386: 0x000086A3, - 7387: 0x0000869C, - 7388: 0x00008870, - 7389: 0x00008877, - 7390: 0x00008881, - 7391: 0x00008882, - 7392: 0x0000887D, - 7393: 0x00008879, - 7394: 0x00008A18, - 7395: 0x00008A10, - 7396: 0x00008A0E, - 7397: 0x00008A0C, - 7398: 0x00008A15, - 7399: 0x00008A0A, - 7400: 0x00008A17, - 7401: 0x00008A13, - 7402: 0x00008A16, - 7403: 0x00008A0F, - 7404: 0x00008A11, - 7405: 0x00008C48, - 7406: 0x00008C7A, - 7407: 0x00008C79, - 7408: 0x00008CA1, - 7409: 0x00008CA2, - 7410: 0x00008D77, - 7411: 0x00008EAC, - 7412: 0x00008ED2, - 7413: 0x00008ED4, - 7414: 0x00008ECF, - 7415: 0x00008FB1, - 7416: 0x00009001, - 7417: 0x00009006, - 7418: 0x00008FF7, - 7419: 0x00009000, - 7420: 0x00008FFA, - 7421: 0x00008FF4, - 7422: 0x00009003, - 7423: 0x00008FFD, - 7424: 0x00009005, - 7425: 0x00008FF8, - 7426: 0x00009095, - 7427: 0x000090E1, - 7428: 0x000090DD, - 7429: 0x000090E2, - 7430: 0x00009152, - 7431: 0x0000914D, - 7432: 0x0000914C, - 7433: 0x000091D8, - 7434: 0x000091DD, - 7435: 0x000091D7, - 7436: 0x000091DC, - 7437: 0x000091D9, - 7438: 0x00009583, - 7439: 0x00009662, - 7440: 0x00009663, - 7441: 0x00009661, - 7442: 0x0000965B, - 7443: 0x0000965D, - 7444: 0x00009664, - 7445: 0x00009658, - 7446: 0x0000965E, - 7447: 0x000096BB, - 7448: 0x000098E2, - 7449: 0x000099AC, - 7450: 0x00009AA8, - 7451: 0x00009AD8, - 7452: 0x00009B25, - 7453: 0x00009B32, - 7454: 0x00009B3C, - 7455: 0x00004E7E, - 7456: 0x0000507A, - 7457: 0x0000507D, - 7458: 0x0000505C, - 7459: 0x00005047, - 7460: 0x00005043, - 7461: 0x0000504C, - 7462: 0x0000505A, - 7463: 0x00005049, - 7464: 0x00005065, - 7465: 0x00005076, - 7466: 0x0000504E, - 7467: 0x00005055, - 7468: 0x00005075, - 7469: 0x00005074, - 7470: 0x00005077, - 7471: 0x0000504F, - 7472: 0x0000500F, - 7473: 0x0000506F, - 7474: 0x0000506D, - 7475: 0x0000515C, - 7476: 0x00005195, - 7477: 0x000051F0, - 7478: 0x0000526A, - 7479: 0x0000526F, - 7480: 0x000052D2, - 7481: 0x000052D9, - 7482: 0x000052D8, - 7483: 0x000052D5, - 7484: 0x00005310, - 7485: 0x0000530F, - 7486: 0x00005319, - 7487: 0x0000533F, - 7488: 0x00005340, - 7489: 0x0000533E, - 7490: 0x000053C3, - 7491: 0x000066FC, - 7492: 0x00005546, - 7493: 0x0000556A, - 7494: 0x00005566, - 7495: 0x00005544, - 7496: 0x0000555E, - 7497: 0x00005561, - 7498: 0x00005543, - 7499: 0x0000554A, - 7500: 0x00005531, - 7501: 0x00005556, - 7502: 0x0000554F, - 7503: 0x00005555, - 7504: 0x0000552F, - 7505: 0x00005564, - 7506: 0x00005538, - 7507: 0x0000552E, - 7508: 0x0000555C, - 7509: 0x0000552C, - 7510: 0x00005563, - 7511: 0x00005533, - 7512: 0x00005541, - 7513: 0x00005557, - 7514: 0x00005708, - 7515: 0x0000570B, - 7516: 0x00005709, - 7517: 0x000057DF, - 7518: 0x00005805, - 7519: 0x0000580A, - 7520: 0x00005806, - 7521: 0x000057E0, - 7522: 0x000057E4, - 7523: 0x000057FA, - 7524: 0x00005802, - 7525: 0x00005835, - 7526: 0x000057F7, - 7527: 0x000057F9, - 7528: 0x00005920, - 7529: 0x00005962, - 7530: 0x00005A36, - 7531: 0x00005A41, - 7532: 0x00005A49, - 7533: 0x00005A66, - 7534: 0x00005A6A, - 7535: 0x00005A40, - 7536: 0x00005A3C, - 7537: 0x00005A62, - 7538: 0x00005A5A, - 7539: 0x00005A46, - 7540: 0x00005A4A, - 7541: 0x00005B70, - 7542: 0x00005BC7, - 7543: 0x00005BC5, - 7544: 0x00005BC4, - 7545: 0x00005BC2, - 7546: 0x00005BBF, - 7547: 0x00005BC6, - 7548: 0x00005C09, - 7549: 0x00005C08, - 7550: 0x00005C07, - 7551: 0x00005C60, - 7552: 0x00005C5C, - 7553: 0x00005C5D, - 7554: 0x00005D07, - 7555: 0x00005D06, - 7556: 0x00005D0E, - 7557: 0x00005D1B, - 7558: 0x00005D16, - 7559: 0x00005D22, - 7560: 0x00005D11, - 7561: 0x00005D29, - 7562: 0x00005D14, - 7563: 0x00005D19, - 7564: 0x00005D24, - 7565: 0x00005D27, - 7566: 0x00005D17, - 7567: 0x00005DE2, - 7568: 0x00005E38, - 7569: 0x00005E36, - 7570: 0x00005E33, - 7571: 0x00005E37, - 7572: 0x00005EB7, - 7573: 0x00005EB8, - 7574: 0x00005EB6, - 7575: 0x00005EB5, - 7576: 0x00005EBE, - 7577: 0x00005F35, - 7578: 0x00005F37, - 7579: 0x00005F57, - 7580: 0x00005F6C, - 7581: 0x00005F69, - 7582: 0x00005F6B, - 7583: 0x00005F97, - 7584: 0x00005F99, - 7585: 0x00005F9E, - 7586: 0x00005F98, - 7587: 0x00005FA1, - 7588: 0x00005FA0, - 7589: 0x00005F9C, - 7590: 0x0000607F, - 7591: 0x000060A3, - 7592: 0x00006089, - 7593: 0x000060A0, - 7594: 0x000060A8, - 7595: 0x000060CB, - 7596: 0x000060B4, - 7597: 0x000060E6, - 7598: 0x000060BD, - 7599: 0x000060C5, - 7600: 0x000060BB, - 7601: 0x000060B5, - 7602: 0x000060DC, - 7603: 0x000060BC, - 7604: 0x000060D8, - 7605: 0x000060D5, - 7606: 0x000060C6, - 7607: 0x000060DF, - 7608: 0x000060B8, - 7609: 0x000060DA, - 7610: 0x000060C7, - 7611: 0x0000621A, - 7612: 0x0000621B, - 7613: 0x00006248, - 7614: 0x000063A0, - 7615: 0x000063A7, - 7616: 0x00006372, - 7617: 0x00006396, - 7618: 0x000063A2, - 7619: 0x000063A5, - 7620: 0x00006377, - 7621: 0x00006367, - 7622: 0x00006398, - 7623: 0x000063AA, - 7624: 0x00006371, - 7625: 0x000063A9, - 7626: 0x00006389, - 7627: 0x00006383, - 7628: 0x0000639B, - 7629: 0x0000636B, - 7630: 0x000063A8, - 7631: 0x00006384, - 7632: 0x00006388, - 7633: 0x00006399, - 7634: 0x000063A1, - 7635: 0x000063AC, - 7636: 0x00006392, - 7637: 0x0000638F, - 7638: 0x00006380, - 7639: 0x0000637B, - 7640: 0x00006369, - 7641: 0x00006368, - 7642: 0x0000637A, - 7643: 0x0000655D, - 7644: 0x00006556, - 7645: 0x00006551, - 7646: 0x00006559, - 7647: 0x00006557, - 7648: 0x0000555F, - 7649: 0x0000654F, - 7650: 0x00006558, - 7651: 0x00006555, - 7652: 0x00006554, - 7653: 0x0000659C, - 7654: 0x0000659B, - 7655: 0x000065AC, - 7656: 0x000065CF, - 7657: 0x000065CB, - 7658: 0x000065CC, - 7659: 0x000065CE, - 7660: 0x0000665D, - 7661: 0x0000665A, - 7662: 0x00006664, - 7663: 0x00006668, - 7664: 0x00006666, - 7665: 0x0000665E, - 7666: 0x000066F9, - 7667: 0x000052D7, - 7668: 0x0000671B, - 7669: 0x00006881, - 7670: 0x000068AF, - 7671: 0x000068A2, - 7672: 0x00006893, - 7673: 0x000068B5, - 7674: 0x0000687F, - 7675: 0x00006876, - 7676: 0x000068B1, - 7677: 0x000068A7, - 7678: 0x00006897, - 7679: 0x000068B0, - 7680: 0x00006883, - 7681: 0x000068C4, - 7682: 0x000068AD, - 7683: 0x00006886, - 7684: 0x00006885, - 7685: 0x00006894, - 7686: 0x0000689D, - 7687: 0x000068A8, - 7688: 0x0000689F, - 7689: 0x000068A1, - 7690: 0x00006882, - 7691: 0x00006B32, - 7692: 0x00006BBA, - 7693: 0x00006BEB, - 7694: 0x00006BEC, - 7695: 0x00006C2B, - 7696: 0x00006D8E, - 7697: 0x00006DBC, - 7698: 0x00006DF3, - 7699: 0x00006DD9, - 7700: 0x00006DB2, - 7701: 0x00006DE1, - 7702: 0x00006DCC, - 7703: 0x00006DE4, - 7704: 0x00006DFB, - 7705: 0x00006DFA, - 7706: 0x00006E05, - 7707: 0x00006DC7, - 7708: 0x00006DCB, - 7709: 0x00006DAF, - 7710: 0x00006DD1, - 7711: 0x00006DAE, - 7712: 0x00006DDE, - 7713: 0x00006DF9, - 7714: 0x00006DB8, - 7715: 0x00006DF7, - 7716: 0x00006DF5, - 7717: 0x00006DC5, - 7718: 0x00006DD2, - 7719: 0x00006E1A, - 7720: 0x00006DB5, - 7721: 0x00006DDA, - 7722: 0x00006DEB, - 7723: 0x00006DD8, - 7724: 0x00006DEA, - 7725: 0x00006DF1, - 7726: 0x00006DEE, - 7727: 0x00006DE8, - 7728: 0x00006DC6, - 7729: 0x00006DC4, - 7730: 0x00006DAA, - 7731: 0x00006DEC, - 7732: 0x00006DBF, - 7733: 0x00006DE6, - 7734: 0x000070F9, - 7735: 0x00007109, - 7736: 0x0000710A, - 7737: 0x000070FD, - 7738: 0x000070EF, - 7739: 0x0000723D, - 7740: 0x0000727D, - 7741: 0x00007281, - 7742: 0x0000731C, - 7743: 0x0000731B, - 7744: 0x00007316, - 7745: 0x00007313, - 7746: 0x00007319, - 7747: 0x00007387, - 7748: 0x00007405, - 7749: 0x0000740A, - 7750: 0x00007403, - 7751: 0x00007406, - 7752: 0x000073FE, - 7753: 0x0000740D, - 7754: 0x000074E0, - 7755: 0x000074F6, - 7756: 0x000074F7, - 7757: 0x0000751C, - 7758: 0x00007522, - 7759: 0x00007565, - 7760: 0x00007566, - 7761: 0x00007562, - 7762: 0x00007570, - 7763: 0x0000758F, - 7764: 0x000075D4, - 7765: 0x000075D5, - 7766: 0x000075B5, - 7767: 0x000075CA, - 7768: 0x000075CD, - 7769: 0x0000768E, - 7770: 0x000076D4, - 7771: 0x000076D2, - 7772: 0x000076DB, - 7773: 0x00007737, - 7774: 0x0000773E, - 7775: 0x0000773C, - 7776: 0x00007736, - 7777: 0x00007738, - 7778: 0x0000773A, - 7779: 0x0000786B, - 7780: 0x00007843, - 7781: 0x0000784E, - 7782: 0x00007965, - 7783: 0x00007968, - 7784: 0x0000796D, - 7785: 0x000079FB, - 7786: 0x00007A92, - 7787: 0x00007A95, - 7788: 0x00007B20, - 7789: 0x00007B28, - 7790: 0x00007B1B, - 7791: 0x00007B2C, - 7792: 0x00007B26, - 7793: 0x00007B19, - 7794: 0x00007B1E, - 7795: 0x00007B2E, - 7796: 0x00007C92, - 7797: 0x00007C97, - 7798: 0x00007C95, - 7799: 0x00007D46, - 7800: 0x00007D43, - 7801: 0x00007D71, - 7802: 0x00007D2E, - 7803: 0x00007D39, - 7804: 0x00007D3C, - 7805: 0x00007D40, - 7806: 0x00007D30, - 7807: 0x00007D33, - 7808: 0x00007D44, - 7809: 0x00007D2F, - 7810: 0x00007D42, - 7811: 0x00007D32, - 7812: 0x00007D31, - 7813: 0x00007F3D, - 7814: 0x00007F9E, - 7815: 0x00007F9A, - 7816: 0x00007FCC, - 7817: 0x00007FCE, - 7818: 0x00007FD2, - 7819: 0x0000801C, - 7820: 0x0000804A, - 7821: 0x00008046, - 7822: 0x0000812F, - 7823: 0x00008116, - 7824: 0x00008123, - 7825: 0x0000812B, - 7826: 0x00008129, - 7827: 0x00008130, - 7828: 0x00008124, - 7829: 0x00008202, - 7830: 0x00008235, - 7831: 0x00008237, - 7832: 0x00008236, - 7833: 0x00008239, - 7834: 0x0000838E, - 7835: 0x0000839E, - 7836: 0x00008398, - 7837: 0x00008378, - 7838: 0x000083A2, - 7839: 0x00008396, - 7840: 0x000083BD, - 7841: 0x000083AB, - 7842: 0x00008392, - 7843: 0x0000838A, - 7844: 0x00008393, - 7845: 0x00008389, - 7846: 0x000083A0, - 7847: 0x00008377, - 7848: 0x0000837B, - 7849: 0x0000837C, - 7850: 0x00008386, - 7851: 0x000083A7, - 7852: 0x00008655, - 7853: 0x00005F6A, - 7854: 0x000086C7, - 7855: 0x000086C0, - 7856: 0x000086B6, - 7857: 0x000086C4, - 7858: 0x000086B5, - 7859: 0x000086C6, - 7860: 0x000086CB, - 7861: 0x000086B1, - 7862: 0x000086AF, - 7863: 0x000086C9, - 7864: 0x00008853, - 7865: 0x0000889E, - 7866: 0x00008888, - 7867: 0x000088AB, - 7868: 0x00008892, - 7869: 0x00008896, - 7870: 0x0000888D, - 7871: 0x0000888B, - 7872: 0x00008993, - 7873: 0x0000898F, - 7874: 0x00008A2A, - 7875: 0x00008A1D, - 7876: 0x00008A23, - 7877: 0x00008A25, - 7878: 0x00008A31, - 7879: 0x00008A2D, - 7880: 0x00008A1F, - 7881: 0x00008A1B, - 7882: 0x00008A22, - 7883: 0x00008C49, - 7884: 0x00008C5A, - 7885: 0x00008CA9, - 7886: 0x00008CAC, - 7887: 0x00008CAB, - 7888: 0x00008CA8, - 7889: 0x00008CAA, - 7890: 0x00008CA7, - 7891: 0x00008D67, - 7892: 0x00008D66, - 7893: 0x00008DBE, - 7894: 0x00008DBA, - 7895: 0x00008EDB, - 7896: 0x00008EDF, - 7897: 0x00009019, - 7898: 0x0000900D, - 7899: 0x0000901A, - 7900: 0x00009017, - 7901: 0x00009023, - 7902: 0x0000901F, - 7903: 0x0000901D, - 7904: 0x00009010, - 7905: 0x00009015, - 7906: 0x0000901E, - 7907: 0x00009020, - 7908: 0x0000900F, - 7909: 0x00009022, - 7910: 0x00009016, - 7911: 0x0000901B, - 7912: 0x00009014, - 7913: 0x000090E8, - 7914: 0x000090ED, - 7915: 0x000090FD, - 7916: 0x00009157, - 7917: 0x000091CE, - 7918: 0x000091F5, - 7919: 0x000091E6, - 7920: 0x000091E3, - 7921: 0x000091E7, - 7922: 0x000091ED, - 7923: 0x000091E9, - 7924: 0x00009589, - 7925: 0x0000966A, - 7926: 0x00009675, - 7927: 0x00009673, - 7928: 0x00009678, - 7929: 0x00009670, - 7930: 0x00009674, - 7931: 0x00009676, - 7932: 0x00009677, - 7933: 0x0000966C, - 7934: 0x000096C0, - 7935: 0x000096EA, - 7936: 0x000096E9, - 7937: 0x00007AE0, - 7938: 0x00007ADF, - 7939: 0x00009802, - 7940: 0x00009803, - 7941: 0x00009B5A, - 7942: 0x00009CE5, - 7943: 0x00009E75, - 7944: 0x00009E7F, - 7945: 0x00009EA5, - 7946: 0x00009EBB, - 7947: 0x000050A2, - 7948: 0x0000508D, - 7949: 0x00005085, - 7950: 0x00005099, - 7951: 0x00005091, - 7952: 0x00005080, - 7953: 0x00005096, - 7954: 0x00005098, - 7955: 0x0000509A, - 7956: 0x00006700, - 7957: 0x000051F1, - 7958: 0x00005272, - 7959: 0x00005274, - 7960: 0x00005275, - 7961: 0x00005269, - 7962: 0x000052DE, - 7963: 0x000052DD, - 7964: 0x000052DB, - 7965: 0x0000535A, - 7966: 0x000053A5, - 7967: 0x0000557B, - 7968: 0x00005580, - 7969: 0x000055A7, - 7970: 0x0000557C, - 7971: 0x0000558A, - 7972: 0x0000559D, - 7973: 0x00005598, - 7974: 0x00005582, - 7975: 0x0000559C, - 7976: 0x000055AA, - 7977: 0x00005594, - 7978: 0x00005587, - 7979: 0x0000558B, - 7980: 0x00005583, - 7981: 0x000055B3, - 7982: 0x000055AE, - 7983: 0x0000559F, - 7984: 0x0000553E, - 7985: 0x000055B2, - 7986: 0x0000559A, - 7987: 0x000055BB, - 7988: 0x000055AC, - 7989: 0x000055B1, - 7990: 0x0000557E, - 7991: 0x00005589, - 7992: 0x000055AB, - 7993: 0x00005599, - 7994: 0x0000570D, - 7995: 0x0000582F, - 7996: 0x0000582A, - 7997: 0x00005834, - 7998: 0x00005824, - 7999: 0x00005830, - 8000: 0x00005831, - 8001: 0x00005821, - 8002: 0x0000581D, - 8003: 0x00005820, - 8004: 0x000058F9, - 8005: 0x000058FA, - 8006: 0x00005960, - 8007: 0x00005A77, - 8008: 0x00005A9A, - 8009: 0x00005A7F, - 8010: 0x00005A92, - 8011: 0x00005A9B, - 8012: 0x00005AA7, - 8013: 0x00005B73, - 8014: 0x00005B71, - 8015: 0x00005BD2, - 8016: 0x00005BCC, - 8017: 0x00005BD3, - 8018: 0x00005BD0, - 8019: 0x00005C0A, - 8020: 0x00005C0B, - 8021: 0x00005C31, - 8022: 0x00005D4C, - 8023: 0x00005D50, - 8024: 0x00005D34, - 8025: 0x00005D47, - 8026: 0x00005DFD, - 8027: 0x00005E45, - 8028: 0x00005E3D, - 8029: 0x00005E40, - 8030: 0x00005E43, - 8031: 0x00005E7E, - 8032: 0x00005ECA, - 8033: 0x00005EC1, - 8034: 0x00005EC2, - 8035: 0x00005EC4, - 8036: 0x00005F3C, - 8037: 0x00005F6D, - 8038: 0x00005FA9, - 8039: 0x00005FAA, - 8040: 0x00005FA8, - 8041: 0x000060D1, - 8042: 0x000060E1, - 8043: 0x000060B2, - 8044: 0x000060B6, - 8045: 0x000060E0, - 8046: 0x0000611C, - 8047: 0x00006123, - 8048: 0x000060FA, - 8049: 0x00006115, - 8050: 0x000060F0, - 8051: 0x000060FB, - 8052: 0x000060F4, - 8053: 0x00006168, - 8054: 0x000060F1, - 8055: 0x0000610E, - 8056: 0x000060F6, - 8057: 0x00006109, - 8058: 0x00006100, - 8059: 0x00006112, - 8060: 0x0000621F, - 8061: 0x00006249, - 8062: 0x000063A3, - 8063: 0x0000638C, - 8064: 0x000063CF, - 8065: 0x000063C0, - 8066: 0x000063E9, - 8067: 0x000063C9, - 8068: 0x000063C6, - 8069: 0x000063CD, - 8070: 0x000063D2, - 8071: 0x000063E3, - 8072: 0x000063D0, - 8073: 0x000063E1, - 8074: 0x000063D6, - 8075: 0x000063ED, - 8076: 0x000063EE, - 8077: 0x00006376, - 8078: 0x000063F4, - 8079: 0x000063EA, - 8080: 0x000063DB, - 8081: 0x00006452, - 8082: 0x000063DA, - 8083: 0x000063F9, - 8084: 0x0000655E, - 8085: 0x00006566, - 8086: 0x00006562, - 8087: 0x00006563, - 8088: 0x00006591, - 8089: 0x00006590, - 8090: 0x000065AF, - 8091: 0x0000666E, - 8092: 0x00006670, - 8093: 0x00006674, - 8094: 0x00006676, - 8095: 0x0000666F, - 8096: 0x00006691, - 8097: 0x0000667A, - 8098: 0x0000667E, - 8099: 0x00006677, - 8100: 0x000066FE, - 8101: 0x000066FF, - 8102: 0x0000671F, - 8103: 0x0000671D, - 8104: 0x000068FA, - 8105: 0x000068D5, - 8106: 0x000068E0, - 8107: 0x000068D8, - 8108: 0x000068D7, - 8109: 0x00006905, - 8110: 0x000068DF, - 8111: 0x000068F5, - 8112: 0x000068EE, - 8113: 0x000068E7, - 8114: 0x000068F9, - 8115: 0x000068D2, - 8116: 0x000068F2, - 8117: 0x000068E3, - 8118: 0x000068CB, - 8119: 0x000068CD, - 8120: 0x0000690D, - 8121: 0x00006912, - 8122: 0x0000690E, - 8123: 0x000068C9, - 8124: 0x000068DA, - 8125: 0x0000696E, - 8126: 0x000068FB, - 8127: 0x00006B3E, - 8128: 0x00006B3A, - 8129: 0x00006B3D, - 8130: 0x00006B98, - 8131: 0x00006B96, - 8132: 0x00006BBC, - 8133: 0x00006BEF, - 8134: 0x00006C2E, - 8135: 0x00006C2F, - 8136: 0x00006C2C, - 8137: 0x00006E2F, - 8138: 0x00006E38, - 8139: 0x00006E54, - 8140: 0x00006E21, - 8141: 0x00006E32, - 8142: 0x00006E67, - 8143: 0x00006E4A, - 8144: 0x00006E20, - 8145: 0x00006E25, - 8146: 0x00006E23, - 8147: 0x00006E1B, - 8148: 0x00006E5B, - 8149: 0x00006E58, - 8150: 0x00006E24, - 8151: 0x00006E56, - 8152: 0x00006E6E, - 8153: 0x00006E2D, - 8154: 0x00006E26, - 8155: 0x00006E6F, - 8156: 0x00006E34, - 8157: 0x00006E4D, - 8158: 0x00006E3A, - 8159: 0x00006E2C, - 8160: 0x00006E43, - 8161: 0x00006E1D, - 8162: 0x00006E3E, - 8163: 0x00006ECB, - 8164: 0x00006E89, - 8165: 0x00006E19, - 8166: 0x00006E4E, - 8167: 0x00006E63, - 8168: 0x00006E44, - 8169: 0x00006E72, - 8170: 0x00006E69, - 8171: 0x00006E5F, - 8172: 0x00007119, - 8173: 0x0000711A, - 8174: 0x00007126, - 8175: 0x00007130, - 8176: 0x00007121, - 8177: 0x00007136, - 8178: 0x0000716E, - 8179: 0x0000711C, - 8180: 0x0000724C, - 8181: 0x00007284, - 8182: 0x00007280, - 8183: 0x00007336, - 8184: 0x00007325, - 8185: 0x00007334, - 8186: 0x00007329, - 8187: 0x0000743A, - 8188: 0x0000742A, - 8189: 0x00007433, - 8190: 0x00007422, - 8191: 0x00007425, - 8192: 0x00007435, - 8193: 0x00007436, - 8194: 0x00007434, - 8195: 0x0000742F, - 8196: 0x0000741B, - 8197: 0x00007426, - 8198: 0x00007428, - 8199: 0x00007525, - 8200: 0x00007526, - 8201: 0x0000756B, - 8202: 0x0000756A, - 8203: 0x000075E2, - 8204: 0x000075DB, - 8205: 0x000075E3, - 8206: 0x000075D9, - 8207: 0x000075D8, - 8208: 0x000075DE, - 8209: 0x000075E0, - 8210: 0x0000767B, - 8211: 0x0000767C, - 8212: 0x00007696, - 8213: 0x00007693, - 8214: 0x000076B4, - 8215: 0x000076DC, - 8216: 0x0000774F, - 8217: 0x000077ED, - 8218: 0x0000785D, - 8219: 0x0000786C, - 8220: 0x0000786F, - 8221: 0x00007A0D, - 8222: 0x00007A08, - 8223: 0x00007A0B, - 8224: 0x00007A05, - 8225: 0x00007A00, - 8226: 0x00007A98, - 8227: 0x00007A97, - 8228: 0x00007A96, - 8229: 0x00007AE5, - 8230: 0x00007AE3, - 8231: 0x00007B49, - 8232: 0x00007B56, - 8233: 0x00007B46, - 8234: 0x00007B50, - 8235: 0x00007B52, - 8236: 0x00007B54, - 8237: 0x00007B4D, - 8238: 0x00007B4B, - 8239: 0x00007B4F, - 8240: 0x00007B51, - 8241: 0x00007C9F, - 8242: 0x00007CA5, - 8243: 0x00007D5E, - 8244: 0x00007D50, - 8245: 0x00007D68, - 8246: 0x00007D55, - 8247: 0x00007D2B, - 8248: 0x00007D6E, - 8249: 0x00007D72, - 8250: 0x00007D61, - 8251: 0x00007D66, - 8252: 0x00007D62, - 8253: 0x00007D70, - 8254: 0x00007D73, - 8255: 0x00005584, - 8256: 0x00007FD4, - 8257: 0x00007FD5, - 8258: 0x0000800B, - 8259: 0x00008052, - 8260: 0x00008085, - 8261: 0x00008155, - 8262: 0x00008154, - 8263: 0x0000814B, - 8264: 0x00008151, - 8265: 0x0000814E, - 8266: 0x00008139, - 8267: 0x00008146, - 8268: 0x0000813E, - 8269: 0x0000814C, - 8270: 0x00008153, - 8271: 0x00008174, - 8272: 0x00008212, - 8273: 0x0000821C, - 8274: 0x000083E9, - 8275: 0x00008403, - 8276: 0x000083F8, - 8277: 0x0000840D, - 8278: 0x000083E0, - 8279: 0x000083C5, - 8280: 0x0000840B, - 8281: 0x000083C1, - 8282: 0x000083EF, - 8283: 0x000083F1, - 8284: 0x000083F4, - 8285: 0x00008457, - 8286: 0x0000840A, - 8287: 0x000083F0, - 8288: 0x0000840C, - 8289: 0x000083CC, - 8290: 0x000083FD, - 8291: 0x000083F2, - 8292: 0x000083CA, - 8293: 0x00008438, - 8294: 0x0000840E, - 8295: 0x00008404, - 8296: 0x000083DC, - 8297: 0x00008407, - 8298: 0x000083D4, - 8299: 0x000083DF, - 8300: 0x0000865B, - 8301: 0x000086DF, - 8302: 0x000086D9, - 8303: 0x000086ED, - 8304: 0x000086D4, - 8305: 0x000086DB, - 8306: 0x000086E4, - 8307: 0x000086D0, - 8308: 0x000086DE, - 8309: 0x00008857, - 8310: 0x000088C1, - 8311: 0x000088C2, - 8312: 0x000088B1, - 8313: 0x00008983, - 8314: 0x00008996, - 8315: 0x00008A3B, - 8316: 0x00008A60, - 8317: 0x00008A55, - 8318: 0x00008A5E, - 8319: 0x00008A3C, - 8320: 0x00008A41, - 8321: 0x00008A54, - 8322: 0x00008A5B, - 8323: 0x00008A50, - 8324: 0x00008A46, - 8325: 0x00008A34, - 8326: 0x00008A3A, - 8327: 0x00008A36, - 8328: 0x00008A56, - 8329: 0x00008C61, - 8330: 0x00008C82, - 8331: 0x00008CAF, - 8332: 0x00008CBC, - 8333: 0x00008CB3, - 8334: 0x00008CBD, - 8335: 0x00008CC1, - 8336: 0x00008CBB, - 8337: 0x00008CC0, - 8338: 0x00008CB4, - 8339: 0x00008CB7, - 8340: 0x00008CB6, - 8341: 0x00008CBF, - 8342: 0x00008CB8, - 8343: 0x00008D8A, - 8344: 0x00008D85, - 8345: 0x00008D81, - 8346: 0x00008DCE, - 8347: 0x00008DDD, - 8348: 0x00008DCB, - 8349: 0x00008DDA, - 8350: 0x00008DD1, - 8351: 0x00008DCC, - 8352: 0x00008DDB, - 8353: 0x00008DC6, - 8354: 0x00008EFB, - 8355: 0x00008EF8, - 8356: 0x00008EFC, - 8357: 0x00008F9C, - 8358: 0x0000902E, - 8359: 0x00009035, - 8360: 0x00009031, - 8361: 0x00009038, - 8362: 0x00009032, - 8363: 0x00009036, - 8364: 0x00009102, - 8365: 0x000090F5, - 8366: 0x00009109, - 8367: 0x000090FE, - 8368: 0x00009163, - 8369: 0x00009165, - 8370: 0x000091CF, - 8371: 0x00009214, - 8372: 0x00009215, - 8373: 0x00009223, - 8374: 0x00009209, - 8375: 0x0000921E, - 8376: 0x0000920D, - 8377: 0x00009210, - 8378: 0x00009207, - 8379: 0x00009211, - 8380: 0x00009594, - 8381: 0x0000958F, - 8382: 0x0000958B, - 8383: 0x00009591, - 8384: 0x00009593, - 8385: 0x00009592, - 8386: 0x0000958E, - 8387: 0x0000968A, - 8388: 0x0000968E, - 8389: 0x0000968B, - 8390: 0x0000967D, - 8391: 0x00009685, - 8392: 0x00009686, - 8393: 0x0000968D, - 8394: 0x00009672, - 8395: 0x00009684, - 8396: 0x000096C1, - 8397: 0x000096C5, - 8398: 0x000096C4, - 8399: 0x000096C6, - 8400: 0x000096C7, - 8401: 0x000096EF, - 8402: 0x000096F2, - 8403: 0x000097CC, - 8404: 0x00009805, - 8405: 0x00009806, - 8406: 0x00009808, - 8407: 0x000098E7, - 8408: 0x000098EA, - 8409: 0x000098EF, - 8410: 0x000098E9, - 8411: 0x000098F2, - 8412: 0x000098ED, - 8413: 0x000099AE, - 8414: 0x000099AD, - 8415: 0x00009EC3, - 8416: 0x00009ECD, - 8417: 0x00009ED1, - 8418: 0x00004E82, - 8419: 0x000050AD, - 8420: 0x000050B5, - 8421: 0x000050B2, - 8422: 0x000050B3, - 8423: 0x000050C5, - 8424: 0x000050BE, - 8425: 0x000050AC, - 8426: 0x000050B7, - 8427: 0x000050BB, - 8428: 0x000050AF, - 8429: 0x000050C7, - 8430: 0x0000527F, - 8431: 0x00005277, - 8432: 0x0000527D, - 8433: 0x000052DF, - 8434: 0x000052E6, - 8435: 0x000052E4, - 8436: 0x000052E2, - 8437: 0x000052E3, - 8438: 0x0000532F, - 8439: 0x000055DF, - 8440: 0x000055E8, - 8441: 0x000055D3, - 8442: 0x000055E6, - 8443: 0x000055CE, - 8444: 0x000055DC, - 8445: 0x000055C7, - 8446: 0x000055D1, - 8447: 0x000055E3, - 8448: 0x000055E4, - 8449: 0x000055EF, - 8450: 0x000055DA, - 8451: 0x000055E1, - 8452: 0x000055C5, - 8453: 0x000055C6, - 8454: 0x000055E5, - 8455: 0x000055C9, - 8456: 0x00005712, - 8457: 0x00005713, - 8458: 0x0000585E, - 8459: 0x00005851, - 8460: 0x00005858, - 8461: 0x00005857, - 8462: 0x0000585A, - 8463: 0x00005854, - 8464: 0x0000586B, - 8465: 0x0000584C, - 8466: 0x0000586D, - 8467: 0x0000584A, - 8468: 0x00005862, - 8469: 0x00005852, - 8470: 0x0000584B, - 8471: 0x00005967, - 8472: 0x00005AC1, - 8473: 0x00005AC9, - 8474: 0x00005ACC, - 8475: 0x00005ABE, - 8476: 0x00005ABD, - 8477: 0x00005ABC, - 8478: 0x00005AB3, - 8479: 0x00005AC2, - 8480: 0x00005AB2, - 8481: 0x00005D69, - 8482: 0x00005D6F, - 8483: 0x00005E4C, - 8484: 0x00005E79, - 8485: 0x00005EC9, - 8486: 0x00005EC8, - 8487: 0x00005F12, - 8488: 0x00005F59, - 8489: 0x00005FAC, - 8490: 0x00005FAE, - 8491: 0x0000611A, - 8492: 0x0000610F, - 8493: 0x00006148, - 8494: 0x0000611F, - 8495: 0x000060F3, - 8496: 0x0000611B, - 8497: 0x000060F9, - 8498: 0x00006101, - 8499: 0x00006108, - 8500: 0x0000614E, - 8501: 0x0000614C, - 8502: 0x00006144, - 8503: 0x0000614D, - 8504: 0x0000613E, - 8505: 0x00006134, - 8506: 0x00006127, - 8507: 0x0000610D, - 8508: 0x00006106, - 8509: 0x00006137, - 8510: 0x00006221, - 8511: 0x00006222, - 8512: 0x00006413, - 8513: 0x0000643E, - 8514: 0x0000641E, - 8515: 0x0000642A, - 8516: 0x0000642D, - 8517: 0x0000643D, - 8518: 0x0000642C, - 8519: 0x0000640F, - 8520: 0x0000641C, - 8521: 0x00006414, - 8522: 0x0000640D, - 8523: 0x00006436, - 8524: 0x00006416, - 8525: 0x00006417, - 8526: 0x00006406, - 8527: 0x0000656C, - 8528: 0x0000659F, - 8529: 0x000065B0, - 8530: 0x00006697, - 8531: 0x00006689, - 8532: 0x00006687, - 8533: 0x00006688, - 8534: 0x00006696, - 8535: 0x00006684, - 8536: 0x00006698, - 8537: 0x0000668D, - 8538: 0x00006703, - 8539: 0x00006994, - 8540: 0x0000696D, - 8541: 0x0000695A, - 8542: 0x00006977, - 8543: 0x00006960, - 8544: 0x00006954, - 8545: 0x00006975, - 8546: 0x00006930, - 8547: 0x00006982, - 8548: 0x0000694A, - 8549: 0x00006968, - 8550: 0x0000696B, - 8551: 0x0000695E, - 8552: 0x00006953, - 8553: 0x00006979, - 8554: 0x00006986, - 8555: 0x0000695D, - 8556: 0x00006963, - 8557: 0x0000695B, - 8558: 0x00006B47, - 8559: 0x00006B72, - 8560: 0x00006BC0, - 8561: 0x00006BBF, - 8562: 0x00006BD3, - 8563: 0x00006BFD, - 8564: 0x00006EA2, - 8565: 0x00006EAF, - 8566: 0x00006ED3, - 8567: 0x00006EB6, - 8568: 0x00006EC2, - 8569: 0x00006E90, - 8570: 0x00006E9D, - 8571: 0x00006EC7, - 8572: 0x00006EC5, - 8573: 0x00006EA5, - 8574: 0x00006E98, - 8575: 0x00006EBC, - 8576: 0x00006EBA, - 8577: 0x00006EAB, - 8578: 0x00006ED1, - 8579: 0x00006E96, - 8580: 0x00006E9C, - 8581: 0x00006EC4, - 8582: 0x00006ED4, - 8583: 0x00006EAA, - 8584: 0x00006EA7, - 8585: 0x00006EB4, - 8586: 0x0000714E, - 8587: 0x00007159, - 8588: 0x00007169, - 8589: 0x00007164, - 8590: 0x00007149, - 8591: 0x00007167, - 8592: 0x0000715C, - 8593: 0x0000716C, - 8594: 0x00007166, - 8595: 0x0000714C, - 8596: 0x00007165, - 8597: 0x0000715E, - 8598: 0x00007146, - 8599: 0x00007168, - 8600: 0x00007156, - 8601: 0x0000723A, - 8602: 0x00007252, - 8603: 0x00007337, - 8604: 0x00007345, - 8605: 0x0000733F, - 8606: 0x0000733E, - 8607: 0x0000746F, - 8608: 0x0000745A, - 8609: 0x00007455, - 8610: 0x0000745F, - 8611: 0x0000745E, - 8612: 0x00007441, - 8613: 0x0000743F, - 8614: 0x00007459, - 8615: 0x0000745B, - 8616: 0x0000745C, - 8617: 0x00007576, - 8618: 0x00007578, - 8619: 0x00007600, - 8620: 0x000075F0, - 8621: 0x00007601, - 8622: 0x000075F2, - 8623: 0x000075F1, - 8624: 0x000075FA, - 8625: 0x000075FF, - 8626: 0x000075F4, - 8627: 0x000075F3, - 8628: 0x000076DE, - 8629: 0x000076DF, - 8630: 0x0000775B, - 8631: 0x0000776B, - 8632: 0x00007766, - 8633: 0x0000775E, - 8634: 0x00007763, - 8635: 0x00007779, - 8636: 0x0000776A, - 8637: 0x0000776C, - 8638: 0x0000775C, - 8639: 0x00007765, - 8640: 0x00007768, - 8641: 0x00007762, - 8642: 0x000077EE, - 8643: 0x0000788E, - 8644: 0x000078B0, - 8645: 0x00007897, - 8646: 0x00007898, - 8647: 0x0000788C, - 8648: 0x00007889, - 8649: 0x0000787C, - 8650: 0x00007891, - 8651: 0x00007893, - 8652: 0x0000787F, - 8653: 0x0000797A, - 8654: 0x0000797F, - 8655: 0x00007981, - 8656: 0x0000842C, - 8657: 0x000079BD, - 8658: 0x00007A1C, - 8659: 0x00007A1A, - 8660: 0x00007A20, - 8661: 0x00007A14, - 8662: 0x00007A1F, - 8663: 0x00007A1E, - 8664: 0x00007A9F, - 8665: 0x00007AA0, - 8666: 0x00007B77, - 8667: 0x00007BC0, - 8668: 0x00007B60, - 8669: 0x00007B6E, - 8670: 0x00007B67, - 8671: 0x00007CB1, - 8672: 0x00007CB3, - 8673: 0x00007CB5, - 8674: 0x00007D93, - 8675: 0x00007D79, - 8676: 0x00007D91, - 8677: 0x00007D81, - 8678: 0x00007D8F, - 8679: 0x00007D5B, - 8680: 0x00007F6E, - 8681: 0x00007F69, - 8682: 0x00007F6A, - 8683: 0x00007F72, - 8684: 0x00007FA9, - 8685: 0x00007FA8, - 8686: 0x00007FA4, - 8687: 0x00008056, - 8688: 0x00008058, - 8689: 0x00008086, - 8690: 0x00008084, - 8691: 0x00008171, - 8692: 0x00008170, - 8693: 0x00008178, - 8694: 0x00008165, - 8695: 0x0000816E, - 8696: 0x00008173, - 8697: 0x0000816B, - 8698: 0x00008179, - 8699: 0x0000817A, - 8700: 0x00008166, - 8701: 0x00008205, - 8702: 0x00008247, - 8703: 0x00008482, - 8704: 0x00008477, - 8705: 0x0000843D, - 8706: 0x00008431, - 8707: 0x00008475, - 8708: 0x00008466, - 8709: 0x0000846B, - 8710: 0x00008449, - 8711: 0x0000846C, - 8712: 0x0000845B, - 8713: 0x0000843C, - 8714: 0x00008435, - 8715: 0x00008461, - 8716: 0x00008463, - 8717: 0x00008469, - 8718: 0x0000846D, - 8719: 0x00008446, - 8720: 0x0000865E, - 8721: 0x0000865C, - 8722: 0x0000865F, - 8723: 0x000086F9, - 8724: 0x00008713, - 8725: 0x00008708, - 8726: 0x00008707, - 8727: 0x00008700, - 8728: 0x000086FE, - 8729: 0x000086FB, - 8730: 0x00008702, - 8731: 0x00008703, - 8732: 0x00008706, - 8733: 0x0000870A, - 8734: 0x00008859, - 8735: 0x000088DF, - 8736: 0x000088D4, - 8737: 0x000088D9, - 8738: 0x000088DC, - 8739: 0x000088D8, - 8740: 0x000088DD, - 8741: 0x000088E1, - 8742: 0x000088CA, - 8743: 0x000088D5, - 8744: 0x000088D2, - 8745: 0x0000899C, - 8746: 0x000089E3, - 8747: 0x00008A6B, - 8748: 0x00008A72, - 8749: 0x00008A73, - 8750: 0x00008A66, - 8751: 0x00008A69, - 8752: 0x00008A70, - 8753: 0x00008A87, - 8754: 0x00008A7C, - 8755: 0x00008A63, - 8756: 0x00008AA0, - 8757: 0x00008A71, - 8758: 0x00008A85, - 8759: 0x00008A6D, - 8760: 0x00008A62, - 8761: 0x00008A6E, - 8762: 0x00008A6C, - 8763: 0x00008A79, - 8764: 0x00008A7B, - 8765: 0x00008A3E, - 8766: 0x00008A68, - 8767: 0x00008C62, - 8768: 0x00008C8A, - 8769: 0x00008C89, - 8770: 0x00008CCA, - 8771: 0x00008CC7, - 8772: 0x00008CC8, - 8773: 0x00008CC4, - 8774: 0x00008CB2, - 8775: 0x00008CC3, - 8776: 0x00008CC2, - 8777: 0x00008CC5, - 8778: 0x00008DE1, - 8779: 0x00008DDF, - 8780: 0x00008DE8, - 8781: 0x00008DEF, - 8782: 0x00008DF3, - 8783: 0x00008DFA, - 8784: 0x00008DEA, - 8785: 0x00008DE4, - 8786: 0x00008DE6, - 8787: 0x00008EB2, - 8788: 0x00008F03, - 8789: 0x00008F09, - 8790: 0x00008EFE, - 8791: 0x00008F0A, - 8792: 0x00008F9F, - 8793: 0x00008FB2, - 8794: 0x0000904B, - 8795: 0x0000904A, - 8796: 0x00009053, - 8797: 0x00009042, - 8798: 0x00009054, - 8799: 0x0000903C, - 8800: 0x00009055, - 8801: 0x00009050, - 8802: 0x00009047, - 8803: 0x0000904F, - 8804: 0x0000904E, - 8805: 0x0000904D, - 8806: 0x00009051, - 8807: 0x0000903E, - 8808: 0x00009041, - 8809: 0x00009112, - 8810: 0x00009117, - 8811: 0x0000916C, - 8812: 0x0000916A, - 8813: 0x00009169, - 8814: 0x000091C9, - 8815: 0x00009237, - 8816: 0x00009257, - 8817: 0x00009238, - 8818: 0x0000923D, - 8819: 0x00009240, - 8820: 0x0000923E, - 8821: 0x0000925B, - 8822: 0x0000924B, - 8823: 0x00009264, - 8824: 0x00009251, - 8825: 0x00009234, - 8826: 0x00009249, - 8827: 0x0000924D, - 8828: 0x00009245, - 8829: 0x00009239, - 8830: 0x0000923F, - 8831: 0x0000925A, - 8832: 0x00009598, - 8833: 0x00009698, - 8834: 0x00009694, - 8835: 0x00009695, - 8836: 0x000096CD, - 8837: 0x000096CB, - 8838: 0x000096C9, - 8839: 0x000096CA, - 8840: 0x000096F7, - 8841: 0x000096FB, - 8842: 0x000096F9, - 8843: 0x000096F6, - 8844: 0x00009756, - 8845: 0x00009774, - 8846: 0x00009776, - 8847: 0x00009810, - 8848: 0x00009811, - 8849: 0x00009813, - 8850: 0x0000980A, - 8851: 0x00009812, - 8852: 0x0000980C, - 8853: 0x000098FC, - 8854: 0x000098F4, - 8855: 0x000098FD, - 8856: 0x000098FE, - 8857: 0x000099B3, - 8858: 0x000099B1, - 8859: 0x000099B4, - 8860: 0x00009AE1, - 8861: 0x00009CE9, - 8862: 0x00009E82, - 8863: 0x00009F0E, - 8864: 0x00009F13, - 8865: 0x00009F20, - 8866: 0x000050E7, - 8867: 0x000050EE, - 8868: 0x000050E5, - 8869: 0x000050D6, - 8870: 0x000050ED, - 8871: 0x000050DA, - 8872: 0x000050D5, - 8873: 0x000050CF, - 8874: 0x000050D1, - 8875: 0x000050F1, - 8876: 0x000050CE, - 8877: 0x000050E9, - 8878: 0x00005162, - 8879: 0x000051F3, - 8880: 0x00005283, - 8881: 0x00005282, - 8882: 0x00005331, - 8883: 0x000053AD, - 8884: 0x000055FE, - 8885: 0x00005600, - 8886: 0x0000561B, - 8887: 0x00005617, - 8888: 0x000055FD, - 8889: 0x00005614, - 8890: 0x00005606, - 8891: 0x00005609, - 8892: 0x0000560D, - 8893: 0x0000560E, - 8894: 0x000055F7, - 8895: 0x00005616, - 8896: 0x0000561F, - 8897: 0x00005608, - 8898: 0x00005610, - 8899: 0x000055F6, - 8900: 0x00005718, - 8901: 0x00005716, - 8902: 0x00005875, - 8903: 0x0000587E, - 8904: 0x00005883, - 8905: 0x00005893, - 8906: 0x0000588A, - 8907: 0x00005879, - 8908: 0x00005885, - 8909: 0x0000587D, - 8910: 0x000058FD, - 8911: 0x00005925, - 8912: 0x00005922, - 8913: 0x00005924, - 8914: 0x0000596A, - 8915: 0x00005969, - 8916: 0x00005AE1, - 8917: 0x00005AE6, - 8918: 0x00005AE9, - 8919: 0x00005AD7, - 8920: 0x00005AD6, - 8921: 0x00005AD8, - 8922: 0x00005AE3, - 8923: 0x00005B75, - 8924: 0x00005BDE, - 8925: 0x00005BE7, - 8926: 0x00005BE1, - 8927: 0x00005BE5, - 8928: 0x00005BE6, - 8929: 0x00005BE8, - 8930: 0x00005BE2, - 8931: 0x00005BE4, - 8932: 0x00005BDF, - 8933: 0x00005C0D, - 8934: 0x00005C62, - 8935: 0x00005D84, - 8936: 0x00005D87, - 8937: 0x00005E5B, - 8938: 0x00005E63, - 8939: 0x00005E55, - 8940: 0x00005E57, - 8941: 0x00005E54, - 8942: 0x00005ED3, - 8943: 0x00005ED6, - 8944: 0x00005F0A, - 8945: 0x00005F46, - 8946: 0x00005F70, - 8947: 0x00005FB9, - 8948: 0x00006147, - 8949: 0x0000613F, - 8950: 0x0000614B, - 8951: 0x00006177, - 8952: 0x00006162, - 8953: 0x00006163, - 8954: 0x0000615F, - 8955: 0x0000615A, - 8956: 0x00006158, - 8957: 0x00006175, - 8958: 0x0000622A, - 8959: 0x00006487, - 8960: 0x00006458, - 8961: 0x00006454, - 8962: 0x000064A4, - 8963: 0x00006478, - 8964: 0x0000645F, - 8965: 0x0000647A, - 8966: 0x00006451, - 8967: 0x00006467, - 8968: 0x00006434, - 8969: 0x0000646D, - 8970: 0x0000647B, - 8971: 0x00006572, - 8972: 0x000065A1, - 8973: 0x000065D7, - 8974: 0x000065D6, - 8975: 0x000066A2, - 8976: 0x000066A8, - 8977: 0x0000669D, - 8978: 0x0000699C, - 8979: 0x000069A8, - 8980: 0x00006995, - 8981: 0x000069C1, - 8982: 0x000069AE, - 8983: 0x000069D3, - 8984: 0x000069CB, - 8985: 0x0000699B, - 8986: 0x000069B7, - 8987: 0x000069BB, - 8988: 0x000069AB, - 8989: 0x000069B4, - 8990: 0x000069D0, - 8991: 0x000069CD, - 8992: 0x000069AD, - 8993: 0x000069CC, - 8994: 0x000069A6, - 8995: 0x000069C3, - 8996: 0x000069A3, - 8997: 0x00006B49, - 8998: 0x00006B4C, - 8999: 0x00006C33, - 9000: 0x00006F33, - 9001: 0x00006F14, - 9002: 0x00006EFE, - 9003: 0x00006F13, - 9004: 0x00006EF4, - 9005: 0x00006F29, - 9006: 0x00006F3E, - 9007: 0x00006F20, - 9008: 0x00006F2C, - 9009: 0x00006F0F, - 9010: 0x00006F02, - 9011: 0x00006F22, - 9012: 0x00006EFF, - 9013: 0x00006EEF, - 9014: 0x00006F06, - 9015: 0x00006F31, - 9016: 0x00006F38, - 9017: 0x00006F32, - 9018: 0x00006F23, - 9019: 0x00006F15, - 9020: 0x00006F2B, - 9021: 0x00006F2F, - 9022: 0x00006F88, - 9023: 0x00006F2A, - 9024: 0x00006EEC, - 9025: 0x00006F01, - 9026: 0x00006EF2, - 9027: 0x00006ECC, - 9028: 0x00006EF7, - 9029: 0x00007194, - 9030: 0x00007199, - 9031: 0x0000717D, - 9032: 0x0000718A, - 9033: 0x00007184, - 9034: 0x00007192, - 9035: 0x0000723E, - 9036: 0x00007292, - 9037: 0x00007296, - 9038: 0x00007344, - 9039: 0x00007350, - 9040: 0x00007464, - 9041: 0x00007463, - 9042: 0x0000746A, - 9043: 0x00007470, - 9044: 0x0000746D, - 9045: 0x00007504, - 9046: 0x00007591, - 9047: 0x00007627, - 9048: 0x0000760D, - 9049: 0x0000760B, - 9050: 0x00007609, - 9051: 0x00007613, - 9052: 0x000076E1, - 9053: 0x000076E3, - 9054: 0x00007784, - 9055: 0x0000777D, - 9056: 0x0000777F, - 9057: 0x00007761, - 9058: 0x000078C1, - 9059: 0x0000789F, - 9060: 0x000078A7, - 9061: 0x000078B3, - 9062: 0x000078A9, - 9063: 0x000078A3, - 9064: 0x0000798E, - 9065: 0x0000798F, - 9066: 0x0000798D, - 9067: 0x00007A2E, - 9068: 0x00007A31, - 9069: 0x00007AAA, - 9070: 0x00007AA9, - 9071: 0x00007AED, - 9072: 0x00007AEF, - 9073: 0x00007BA1, - 9074: 0x00007B95, - 9075: 0x00007B8B, - 9076: 0x00007B75, - 9077: 0x00007B97, - 9078: 0x00007B9D, - 9079: 0x00007B94, - 9080: 0x00007B8F, - 9081: 0x00007BB8, - 9082: 0x00007B87, - 9083: 0x00007B84, - 9084: 0x00007CB9, - 9085: 0x00007CBD, - 9086: 0x00007CBE, - 9087: 0x00007DBB, - 9088: 0x00007DB0, - 9089: 0x00007D9C, - 9090: 0x00007DBD, - 9091: 0x00007DBE, - 9092: 0x00007DA0, - 9093: 0x00007DCA, - 9094: 0x00007DB4, - 9095: 0x00007DB2, - 9096: 0x00007DB1, - 9097: 0x00007DBA, - 9098: 0x00007DA2, - 9099: 0x00007DBF, - 9100: 0x00007DB5, - 9101: 0x00007DB8, - 9102: 0x00007DAD, - 9103: 0x00007DD2, - 9104: 0x00007DC7, - 9105: 0x00007DAC, - 9106: 0x00007F70, - 9107: 0x00007FE0, - 9108: 0x00007FE1, - 9109: 0x00007FDF, - 9110: 0x0000805E, - 9111: 0x0000805A, - 9112: 0x00008087, - 9113: 0x00008150, - 9114: 0x00008180, - 9115: 0x0000818F, - 9116: 0x00008188, - 9117: 0x0000818A, - 9118: 0x0000817F, - 9119: 0x00008182, - 9120: 0x000081E7, - 9121: 0x000081FA, - 9122: 0x00008207, - 9123: 0x00008214, - 9124: 0x0000821E, - 9125: 0x0000824B, - 9126: 0x000084C9, - 9127: 0x000084BF, - 9128: 0x000084C6, - 9129: 0x000084C4, - 9130: 0x00008499, - 9131: 0x0000849E, - 9132: 0x000084B2, - 9133: 0x0000849C, - 9134: 0x000084CB, - 9135: 0x000084B8, - 9136: 0x000084C0, - 9137: 0x000084D3, - 9138: 0x00008490, - 9139: 0x000084BC, - 9140: 0x000084D1, - 9141: 0x000084CA, - 9142: 0x0000873F, - 9143: 0x0000871C, - 9144: 0x0000873B, - 9145: 0x00008722, - 9146: 0x00008725, - 9147: 0x00008734, - 9148: 0x00008718, - 9149: 0x00008755, - 9150: 0x00008737, - 9151: 0x00008729, - 9152: 0x000088F3, - 9153: 0x00008902, - 9154: 0x000088F4, - 9155: 0x000088F9, - 9156: 0x000088F8, - 9157: 0x000088FD, - 9158: 0x000088E8, - 9159: 0x0000891A, - 9160: 0x000088EF, - 9161: 0x00008AA6, - 9162: 0x00008A8C, - 9163: 0x00008A9E, - 9164: 0x00008AA3, - 9165: 0x00008A8D, - 9166: 0x00008AA1, - 9167: 0x00008A93, - 9168: 0x00008AA4, - 9169: 0x00008AAA, - 9170: 0x00008AA5, - 9171: 0x00008AA8, - 9172: 0x00008A98, - 9173: 0x00008A91, - 9174: 0x00008A9A, - 9175: 0x00008AA7, - 9176: 0x00008C6A, - 9177: 0x00008C8D, - 9178: 0x00008C8C, - 9179: 0x00008CD3, - 9180: 0x00008CD1, - 9181: 0x00008CD2, - 9182: 0x00008D6B, - 9183: 0x00008D99, - 9184: 0x00008D95, - 9185: 0x00008DFC, - 9186: 0x00008F14, - 9187: 0x00008F12, - 9188: 0x00008F15, - 9189: 0x00008F13, - 9190: 0x00008FA3, - 9191: 0x00009060, - 9192: 0x00009058, - 9193: 0x0000905C, - 9194: 0x00009063, - 9195: 0x00009059, - 9196: 0x0000905E, - 9197: 0x00009062, - 9198: 0x0000905D, - 9199: 0x0000905B, - 9200: 0x00009119, - 9201: 0x00009118, - 9202: 0x0000911E, - 9203: 0x00009175, - 9204: 0x00009178, - 9205: 0x00009177, - 9206: 0x00009174, - 9207: 0x00009278, - 9208: 0x00009280, - 9209: 0x00009285, - 9210: 0x00009298, - 9211: 0x00009296, - 9212: 0x0000927B, - 9213: 0x00009293, - 9214: 0x0000929C, - 9215: 0x000092A8, - 9216: 0x0000927C, - 9217: 0x00009291, - 9218: 0x000095A1, - 9219: 0x000095A8, - 9220: 0x000095A9, - 9221: 0x000095A3, - 9222: 0x000095A5, - 9223: 0x000095A4, - 9224: 0x00009699, - 9225: 0x0000969C, - 9226: 0x0000969B, - 9227: 0x000096CC, - 9228: 0x000096D2, - 9229: 0x00009700, - 9230: 0x0000977C, - 9231: 0x00009785, - 9232: 0x000097F6, - 9233: 0x00009817, - 9234: 0x00009818, - 9235: 0x000098AF, - 9236: 0x000098B1, - 9237: 0x00009903, - 9238: 0x00009905, - 9239: 0x0000990C, - 9240: 0x00009909, - 9241: 0x000099C1, - 9242: 0x00009AAF, - 9243: 0x00009AB0, - 9244: 0x00009AE6, - 9245: 0x00009B41, - 9246: 0x00009B42, - 9247: 0x00009CF4, - 9248: 0x00009CF6, - 9249: 0x00009CF3, - 9250: 0x00009EBC, - 9251: 0x00009F3B, - 9252: 0x00009F4A, - 9253: 0x00005104, - 9254: 0x00005100, - 9255: 0x000050FB, - 9256: 0x000050F5, - 9257: 0x000050F9, - 9258: 0x00005102, - 9259: 0x00005108, - 9260: 0x00005109, - 9261: 0x00005105, - 9262: 0x000051DC, - 9263: 0x00005287, - 9264: 0x00005288, - 9265: 0x00005289, - 9266: 0x0000528D, - 9267: 0x0000528A, - 9268: 0x000052F0, - 9269: 0x000053B2, - 9270: 0x0000562E, - 9271: 0x0000563B, - 9272: 0x00005639, - 9273: 0x00005632, - 9274: 0x0000563F, - 9275: 0x00005634, - 9276: 0x00005629, - 9277: 0x00005653, - 9278: 0x0000564E, - 9279: 0x00005657, - 9280: 0x00005674, - 9281: 0x00005636, - 9282: 0x0000562F, - 9283: 0x00005630, - 9284: 0x00005880, - 9285: 0x0000589F, - 9286: 0x0000589E, - 9287: 0x000058B3, - 9288: 0x0000589C, - 9289: 0x000058AE, - 9290: 0x000058A9, - 9291: 0x000058A6, - 9292: 0x0000596D, - 9293: 0x00005B09, - 9294: 0x00005AFB, - 9295: 0x00005B0B, - 9296: 0x00005AF5, - 9297: 0x00005B0C, - 9298: 0x00005B08, - 9299: 0x00005BEE, - 9300: 0x00005BEC, - 9301: 0x00005BE9, - 9302: 0x00005BEB, - 9303: 0x00005C64, - 9304: 0x00005C65, - 9305: 0x00005D9D, - 9306: 0x00005D94, - 9307: 0x00005E62, - 9308: 0x00005E5F, - 9309: 0x00005E61, - 9310: 0x00005EE2, - 9311: 0x00005EDA, - 9312: 0x00005EDF, - 9313: 0x00005EDD, - 9314: 0x00005EE3, - 9315: 0x00005EE0, - 9316: 0x00005F48, - 9317: 0x00005F71, - 9318: 0x00005FB7, - 9319: 0x00005FB5, - 9320: 0x00006176, - 9321: 0x00006167, - 9322: 0x0000616E, - 9323: 0x0000615D, - 9324: 0x00006155, - 9325: 0x00006182, - 9326: 0x0000617C, - 9327: 0x00006170, - 9328: 0x0000616B, - 9329: 0x0000617E, - 9330: 0x000061A7, - 9331: 0x00006190, - 9332: 0x000061AB, - 9333: 0x0000618E, - 9334: 0x000061AC, - 9335: 0x0000619A, - 9336: 0x000061A4, - 9337: 0x00006194, - 9338: 0x000061AE, - 9339: 0x0000622E, - 9340: 0x00006469, - 9341: 0x0000646F, - 9342: 0x00006479, - 9343: 0x0000649E, - 9344: 0x000064B2, - 9345: 0x00006488, - 9346: 0x00006490, - 9347: 0x000064B0, - 9348: 0x000064A5, - 9349: 0x00006493, - 9350: 0x00006495, - 9351: 0x000064A9, - 9352: 0x00006492, - 9353: 0x000064AE, - 9354: 0x000064AD, - 9355: 0x000064AB, - 9356: 0x0000649A, - 9357: 0x000064AC, - 9358: 0x00006499, - 9359: 0x000064A2, - 9360: 0x000064B3, - 9361: 0x00006575, - 9362: 0x00006577, - 9363: 0x00006578, - 9364: 0x000066AE, - 9365: 0x000066AB, - 9366: 0x000066B4, - 9367: 0x000066B1, - 9368: 0x00006A23, - 9369: 0x00006A1F, - 9370: 0x000069E8, - 9371: 0x00006A01, - 9372: 0x00006A1E, - 9373: 0x00006A19, - 9374: 0x000069FD, - 9375: 0x00006A21, - 9376: 0x00006A13, - 9377: 0x00006A0A, - 9378: 0x000069F3, - 9379: 0x00006A02, - 9380: 0x00006A05, - 9381: 0x000069ED, - 9382: 0x00006A11, - 9383: 0x00006B50, - 9384: 0x00006B4E, - 9385: 0x00006BA4, - 9386: 0x00006BC5, - 9387: 0x00006BC6, - 9388: 0x00006F3F, - 9389: 0x00006F7C, - 9390: 0x00006F84, - 9391: 0x00006F51, - 9392: 0x00006F66, - 9393: 0x00006F54, - 9394: 0x00006F86, - 9395: 0x00006F6D, - 9396: 0x00006F5B, - 9397: 0x00006F78, - 9398: 0x00006F6E, - 9399: 0x00006F8E, - 9400: 0x00006F7A, - 9401: 0x00006F70, - 9402: 0x00006F64, - 9403: 0x00006F97, - 9404: 0x00006F58, - 9405: 0x00006ED5, - 9406: 0x00006F6F, - 9407: 0x00006F60, - 9408: 0x00006F5F, - 9409: 0x0000719F, - 9410: 0x000071AC, - 9411: 0x000071B1, - 9412: 0x000071A8, - 9413: 0x00007256, - 9414: 0x0000729B, - 9415: 0x0000734E, - 9416: 0x00007357, - 9417: 0x00007469, - 9418: 0x0000748B, - 9419: 0x00007483, - 9420: 0x0000747E, - 9421: 0x00007480, - 9422: 0x0000757F, - 9423: 0x00007620, - 9424: 0x00007629, - 9425: 0x0000761F, - 9426: 0x00007624, - 9427: 0x00007626, - 9428: 0x00007621, - 9429: 0x00007622, - 9430: 0x0000769A, - 9431: 0x000076BA, - 9432: 0x000076E4, - 9433: 0x0000778E, - 9434: 0x00007787, - 9435: 0x0000778C, - 9436: 0x00007791, - 9437: 0x0000778B, - 9438: 0x000078CB, - 9439: 0x000078C5, - 9440: 0x000078BA, - 9441: 0x000078CA, - 9442: 0x000078BE, - 9443: 0x000078D5, - 9444: 0x000078BC, - 9445: 0x000078D0, - 9446: 0x00007A3F, - 9447: 0x00007A3C, - 9448: 0x00007A40, - 9449: 0x00007A3D, - 9450: 0x00007A37, - 9451: 0x00007A3B, - 9452: 0x00007AAF, - 9453: 0x00007AAE, - 9454: 0x00007BAD, - 9455: 0x00007BB1, - 9456: 0x00007BC4, - 9457: 0x00007BB4, - 9458: 0x00007BC6, - 9459: 0x00007BC7, - 9460: 0x00007BC1, - 9461: 0x00007BA0, - 9462: 0x00007BCC, - 9463: 0x00007CCA, - 9464: 0x00007DE0, - 9465: 0x00007DF4, - 9466: 0x00007DEF, - 9467: 0x00007DFB, - 9468: 0x00007DD8, - 9469: 0x00007DEC, - 9470: 0x00007DDD, - 9471: 0x00007DE8, - 9472: 0x00007DE3, - 9473: 0x00007DDA, - 9474: 0x00007DDE, - 9475: 0x00007DE9, - 9476: 0x00007D9E, - 9477: 0x00007DD9, - 9478: 0x00007DF2, - 9479: 0x00007DF9, - 9480: 0x00007F75, - 9481: 0x00007F77, - 9482: 0x00007FAF, - 9483: 0x00007FE9, - 9484: 0x00008026, - 9485: 0x0000819B, - 9486: 0x0000819C, - 9487: 0x0000819D, - 9488: 0x000081A0, - 9489: 0x0000819A, - 9490: 0x00008198, - 9491: 0x00008517, - 9492: 0x0000853D, - 9493: 0x0000851A, - 9494: 0x000084EE, - 9495: 0x0000852C, - 9496: 0x0000852D, - 9497: 0x00008513, - 9498: 0x00008511, - 9499: 0x00008523, - 9500: 0x00008521, - 9501: 0x00008514, - 9502: 0x000084EC, - 9503: 0x00008525, - 9504: 0x000084FF, - 9505: 0x00008506, - 9506: 0x00008782, - 9507: 0x00008774, - 9508: 0x00008776, - 9509: 0x00008760, - 9510: 0x00008766, - 9511: 0x00008778, - 9512: 0x00008768, - 9513: 0x00008759, - 9514: 0x00008757, - 9515: 0x0000874C, - 9516: 0x00008753, - 9517: 0x0000885B, - 9518: 0x0000885D, - 9519: 0x00008910, - 9520: 0x00008907, - 9521: 0x00008912, - 9522: 0x00008913, - 9523: 0x00008915, - 9524: 0x0000890A, - 9525: 0x00008ABC, - 9526: 0x00008AD2, - 9527: 0x00008AC7, - 9528: 0x00008AC4, - 9529: 0x00008A95, - 9530: 0x00008ACB, - 9531: 0x00008AF8, - 9532: 0x00008AB2, - 9533: 0x00008AC9, - 9534: 0x00008AC2, - 9535: 0x00008ABF, - 9536: 0x00008AB0, - 9537: 0x00008AD6, - 9538: 0x00008ACD, - 9539: 0x00008AB6, - 9540: 0x00008AB9, - 9541: 0x00008ADB, - 9542: 0x00008C4C, - 9543: 0x00008C4E, - 9544: 0x00008C6C, - 9545: 0x00008CE0, - 9546: 0x00008CDE, - 9547: 0x00008CE6, - 9548: 0x00008CE4, - 9549: 0x00008CEC, - 9550: 0x00008CED, - 9551: 0x00008CE2, - 9552: 0x00008CE3, - 9553: 0x00008CDC, - 9554: 0x00008CEA, - 9555: 0x00008CE1, - 9556: 0x00008D6D, - 9557: 0x00008D9F, - 9558: 0x00008DA3, - 9559: 0x00008E2B, - 9560: 0x00008E10, - 9561: 0x00008E1D, - 9562: 0x00008E22, - 9563: 0x00008E0F, - 9564: 0x00008E29, - 9565: 0x00008E1F, - 9566: 0x00008E21, - 9567: 0x00008E1E, - 9568: 0x00008EBA, - 9569: 0x00008F1D, - 9570: 0x00008F1B, - 9571: 0x00008F1F, - 9572: 0x00008F29, - 9573: 0x00008F26, - 9574: 0x00008F2A, - 9575: 0x00008F1C, - 9576: 0x00008F1E, - 9577: 0x00008F25, - 9578: 0x00009069, - 9579: 0x0000906E, - 9580: 0x00009068, - 9581: 0x0000906D, - 9582: 0x00009077, - 9583: 0x00009130, - 9584: 0x0000912D, - 9585: 0x00009127, - 9586: 0x00009131, - 9587: 0x00009187, - 9588: 0x00009189, - 9589: 0x0000918B, - 9590: 0x00009183, - 9591: 0x000092C5, - 9592: 0x000092BB, - 9593: 0x000092B7, - 9594: 0x000092EA, - 9595: 0x000092AC, - 9596: 0x000092E4, - 9597: 0x000092C1, - 9598: 0x000092B3, - 9599: 0x000092BC, - 9600: 0x000092D2, - 9601: 0x000092C7, - 9602: 0x000092F0, - 9603: 0x000092B2, - 9604: 0x000095AD, - 9605: 0x000095B1, - 9606: 0x00009704, - 9607: 0x00009706, - 9608: 0x00009707, - 9609: 0x00009709, - 9610: 0x00009760, - 9611: 0x0000978D, - 9612: 0x0000978B, - 9613: 0x0000978F, - 9614: 0x00009821, - 9615: 0x0000982B, - 9616: 0x0000981C, - 9617: 0x000098B3, - 9618: 0x0000990A, - 9619: 0x00009913, - 9620: 0x00009912, - 9621: 0x00009918, - 9622: 0x000099DD, - 9623: 0x000099D0, - 9624: 0x000099DF, - 9625: 0x000099DB, - 9626: 0x000099D1, - 9627: 0x000099D5, - 9628: 0x000099D2, - 9629: 0x000099D9, - 9630: 0x00009AB7, - 9631: 0x00009AEE, - 9632: 0x00009AEF, - 9633: 0x00009B27, - 9634: 0x00009B45, - 9635: 0x00009B44, - 9636: 0x00009B77, - 9637: 0x00009B6F, - 9638: 0x00009D06, - 9639: 0x00009D09, - 9640: 0x00009D03, - 9641: 0x00009EA9, - 9642: 0x00009EBE, - 9643: 0x00009ECE, - 9644: 0x000058A8, - 9645: 0x00009F52, - 9646: 0x00005112, - 9647: 0x00005118, - 9648: 0x00005114, - 9649: 0x00005110, - 9650: 0x00005115, - 9651: 0x00005180, - 9652: 0x000051AA, - 9653: 0x000051DD, - 9654: 0x00005291, - 9655: 0x00005293, - 9656: 0x000052F3, - 9657: 0x00005659, - 9658: 0x0000566B, - 9659: 0x00005679, - 9660: 0x00005669, - 9661: 0x00005664, - 9662: 0x00005678, - 9663: 0x0000566A, - 9664: 0x00005668, - 9665: 0x00005665, - 9666: 0x00005671, - 9667: 0x0000566F, - 9668: 0x0000566C, - 9669: 0x00005662, - 9670: 0x00005676, - 9671: 0x000058C1, - 9672: 0x000058BE, - 9673: 0x000058C7, - 9674: 0x000058C5, - 9675: 0x0000596E, - 9676: 0x00005B1D, - 9677: 0x00005B34, - 9678: 0x00005B78, - 9679: 0x00005BF0, - 9680: 0x00005C0E, - 9681: 0x00005F4A, - 9682: 0x000061B2, - 9683: 0x00006191, - 9684: 0x000061A9, - 9685: 0x0000618A, - 9686: 0x000061CD, - 9687: 0x000061B6, - 9688: 0x000061BE, - 9689: 0x000061CA, - 9690: 0x000061C8, - 9691: 0x00006230, - 9692: 0x000064C5, - 9693: 0x000064C1, - 9694: 0x000064CB, - 9695: 0x000064BB, - 9696: 0x000064BC, - 9697: 0x000064DA, - 9698: 0x000064C4, - 9699: 0x000064C7, - 9700: 0x000064C2, - 9701: 0x000064CD, - 9702: 0x000064BF, - 9703: 0x000064D2, - 9704: 0x000064D4, - 9705: 0x000064BE, - 9706: 0x00006574, - 9707: 0x000066C6, - 9708: 0x000066C9, - 9709: 0x000066B9, - 9710: 0x000066C4, - 9711: 0x000066C7, - 9712: 0x000066B8, - 9713: 0x00006A3D, - 9714: 0x00006A38, - 9715: 0x00006A3A, - 9716: 0x00006A59, - 9717: 0x00006A6B, - 9718: 0x00006A58, - 9719: 0x00006A39, - 9720: 0x00006A44, - 9721: 0x00006A62, - 9722: 0x00006A61, - 9723: 0x00006A4B, - 9724: 0x00006A47, - 9725: 0x00006A35, - 9726: 0x00006A5F, - 9727: 0x00006A48, - 9728: 0x00006B59, - 9729: 0x00006B77, - 9730: 0x00006C05, - 9731: 0x00006FC2, - 9732: 0x00006FB1, - 9733: 0x00006FA1, - 9734: 0x00006FC3, - 9735: 0x00006FA4, - 9736: 0x00006FC1, - 9737: 0x00006FA7, - 9738: 0x00006FB3, - 9739: 0x00006FC0, - 9740: 0x00006FB9, - 9741: 0x00006FB6, - 9742: 0x00006FA6, - 9743: 0x00006FA0, - 9744: 0x00006FB4, - 9745: 0x000071BE, - 9746: 0x000071C9, - 9747: 0x000071D0, - 9748: 0x000071D2, - 9749: 0x000071C8, - 9750: 0x000071D5, - 9751: 0x000071B9, - 9752: 0x000071CE, - 9753: 0x000071D9, - 9754: 0x000071DC, - 9755: 0x000071C3, - 9756: 0x000071C4, - 9757: 0x00007368, - 9758: 0x0000749C, - 9759: 0x000074A3, - 9760: 0x00007498, - 9761: 0x0000749F, - 9762: 0x0000749E, - 9763: 0x000074E2, - 9764: 0x0000750C, - 9765: 0x0000750D, - 9766: 0x00007634, - 9767: 0x00007638, - 9768: 0x0000763A, - 9769: 0x000076E7, - 9770: 0x000076E5, - 9771: 0x000077A0, - 9772: 0x0000779E, - 9773: 0x0000779F, - 9774: 0x000077A5, - 9775: 0x000078E8, - 9776: 0x000078DA, - 9777: 0x000078EC, - 9778: 0x000078E7, - 9779: 0x000079A6, - 9780: 0x00007A4D, - 9781: 0x00007A4E, - 9782: 0x00007A46, - 9783: 0x00007A4C, - 9784: 0x00007A4B, - 9785: 0x00007ABA, - 9786: 0x00007BD9, - 9787: 0x00007C11, - 9788: 0x00007BC9, - 9789: 0x00007BE4, - 9790: 0x00007BDB, - 9791: 0x00007BE1, - 9792: 0x00007BE9, - 9793: 0x00007BE6, - 9794: 0x00007CD5, - 9795: 0x00007CD6, - 9796: 0x00007E0A, - 9797: 0x00007E11, - 9798: 0x00007E08, - 9799: 0x00007E1B, - 9800: 0x00007E23, - 9801: 0x00007E1E, - 9802: 0x00007E1D, - 9803: 0x00007E09, - 9804: 0x00007E10, - 9805: 0x00007F79, - 9806: 0x00007FB2, - 9807: 0x00007FF0, - 9808: 0x00007FF1, - 9809: 0x00007FEE, - 9810: 0x00008028, - 9811: 0x000081B3, - 9812: 0x000081A9, - 9813: 0x000081A8, - 9814: 0x000081FB, - 9815: 0x00008208, - 9816: 0x00008258, - 9817: 0x00008259, - 9818: 0x0000854A, - 9819: 0x00008559, - 9820: 0x00008548, - 9821: 0x00008568, - 9822: 0x00008569, - 9823: 0x00008543, - 9824: 0x00008549, - 9825: 0x0000856D, - 9826: 0x0000856A, - 9827: 0x0000855E, - 9828: 0x00008783, - 9829: 0x0000879F, - 9830: 0x0000879E, - 9831: 0x000087A2, - 9832: 0x0000878D, - 9833: 0x00008861, - 9834: 0x0000892A, - 9835: 0x00008932, - 9836: 0x00008925, - 9837: 0x0000892B, - 9838: 0x00008921, - 9839: 0x000089AA, - 9840: 0x000089A6, - 9841: 0x00008AE6, - 9842: 0x00008AFA, - 9843: 0x00008AEB, - 9844: 0x00008AF1, - 9845: 0x00008B00, - 9846: 0x00008ADC, - 9847: 0x00008AE7, - 9848: 0x00008AEE, - 9849: 0x00008AFE, - 9850: 0x00008B01, - 9851: 0x00008B02, - 9852: 0x00008AF7, - 9853: 0x00008AED, - 9854: 0x00008AF3, - 9855: 0x00008AF6, - 9856: 0x00008AFC, - 9857: 0x00008C6B, - 9858: 0x00008C6D, - 9859: 0x00008C93, - 9860: 0x00008CF4, - 9861: 0x00008E44, - 9862: 0x00008E31, - 9863: 0x00008E34, - 9864: 0x00008E42, - 9865: 0x00008E39, - 9866: 0x00008E35, - 9867: 0x00008F3B, - 9868: 0x00008F2F, - 9869: 0x00008F38, - 9870: 0x00008F33, - 9871: 0x00008FA8, - 9872: 0x00008FA6, - 9873: 0x00009075, - 9874: 0x00009074, - 9875: 0x00009078, - 9876: 0x00009072, - 9877: 0x0000907C, - 9878: 0x0000907A, - 9879: 0x00009134, - 9880: 0x00009192, - 9881: 0x00009320, - 9882: 0x00009336, - 9883: 0x000092F8, - 9884: 0x00009333, - 9885: 0x0000932F, - 9886: 0x00009322, - 9887: 0x000092FC, - 9888: 0x0000932B, - 9889: 0x00009304, - 9890: 0x0000931A, - 9891: 0x00009310, - 9892: 0x00009326, - 9893: 0x00009321, - 9894: 0x00009315, - 9895: 0x0000932E, - 9896: 0x00009319, - 9897: 0x000095BB, - 9898: 0x000096A7, - 9899: 0x000096A8, - 9900: 0x000096AA, - 9901: 0x000096D5, - 9902: 0x0000970E, - 9903: 0x00009711, - 9904: 0x00009716, - 9905: 0x0000970D, - 9906: 0x00009713, - 9907: 0x0000970F, - 9908: 0x0000975B, - 9909: 0x0000975C, - 9910: 0x00009766, - 9911: 0x00009798, - 9912: 0x00009830, - 9913: 0x00009838, - 9914: 0x0000983B, - 9915: 0x00009837, - 9916: 0x0000982D, - 9917: 0x00009839, - 9918: 0x00009824, - 9919: 0x00009910, - 9920: 0x00009928, - 9921: 0x0000991E, - 9922: 0x0000991B, - 9923: 0x00009921, - 9924: 0x0000991A, - 9925: 0x000099ED, - 9926: 0x000099E2, - 9927: 0x000099F1, - 9928: 0x00009AB8, - 9929: 0x00009ABC, - 9930: 0x00009AFB, - 9931: 0x00009AED, - 9932: 0x00009B28, - 9933: 0x00009B91, - 9934: 0x00009D15, - 9935: 0x00009D23, - 9936: 0x00009D26, - 9937: 0x00009D28, - 9938: 0x00009D12, - 9939: 0x00009D1B, - 9940: 0x00009ED8, - 9941: 0x00009ED4, - 9942: 0x00009F8D, - 9943: 0x00009F9C, - 9944: 0x0000512A, - 9945: 0x0000511F, - 9946: 0x00005121, - 9947: 0x00005132, - 9948: 0x000052F5, - 9949: 0x0000568E, - 9950: 0x00005680, - 9951: 0x00005690, - 9952: 0x00005685, - 9953: 0x00005687, - 9954: 0x0000568F, - 9955: 0x000058D5, - 9956: 0x000058D3, - 9957: 0x000058D1, - 9958: 0x000058CE, - 9959: 0x00005B30, - 9960: 0x00005B2A, - 9961: 0x00005B24, - 9962: 0x00005B7A, - 9963: 0x00005C37, - 9964: 0x00005C68, - 9965: 0x00005DBC, - 9966: 0x00005DBA, - 9967: 0x00005DBD, - 9968: 0x00005DB8, - 9969: 0x00005E6B, - 9970: 0x00005F4C, - 9971: 0x00005FBD, - 9972: 0x000061C9, - 9973: 0x000061C2, - 9974: 0x000061C7, - 9975: 0x000061E6, - 9976: 0x000061CB, - 9977: 0x00006232, - 9978: 0x00006234, - 9979: 0x000064CE, - 9980: 0x000064CA, - 9981: 0x000064D8, - 9982: 0x000064E0, - 9983: 0x000064F0, - 9984: 0x000064E6, - 9985: 0x000064EC, - 9986: 0x000064F1, - 9987: 0x000064E2, - 9988: 0x000064ED, - 9989: 0x00006582, - 9990: 0x00006583, - 9991: 0x000066D9, - 9992: 0x000066D6, - 9993: 0x00006A80, - 9994: 0x00006A94, - 9995: 0x00006A84, - 9996: 0x00006AA2, - 9997: 0x00006A9C, - 9998: 0x00006ADB, - 9999: 0x00006AA3, - 10000: 0x00006A7E, - 10001: 0x00006A97, - 10002: 0x00006A90, - 10003: 0x00006AA0, - 10004: 0x00006B5C, - 10005: 0x00006BAE, - 10006: 0x00006BDA, - 10007: 0x00006C08, - 10008: 0x00006FD8, - 10009: 0x00006FF1, - 10010: 0x00006FDF, - 10011: 0x00006FE0, - 10012: 0x00006FDB, - 10013: 0x00006FE4, - 10014: 0x00006FEB, - 10015: 0x00006FEF, - 10016: 0x00006F80, - 10017: 0x00006FEC, - 10018: 0x00006FE1, - 10019: 0x00006FE9, - 10020: 0x00006FD5, - 10021: 0x00006FEE, - 10022: 0x00006FF0, - 10023: 0x000071E7, - 10024: 0x000071DF, - 10025: 0x000071EE, - 10026: 0x000071E6, - 10027: 0x000071E5, - 10028: 0x000071ED, - 10029: 0x000071EC, - 10030: 0x000071F4, - 10031: 0x000071E0, - 10032: 0x00007235, - 10033: 0x00007246, - 10034: 0x00007370, - 10035: 0x00007372, - 10036: 0x000074A9, - 10037: 0x000074B0, - 10038: 0x000074A6, - 10039: 0x000074A8, - 10040: 0x00007646, - 10041: 0x00007642, - 10042: 0x0000764C, - 10043: 0x000076EA, - 10044: 0x000077B3, - 10045: 0x000077AA, - 10046: 0x000077B0, - 10047: 0x000077AC, - 10048: 0x000077A7, - 10049: 0x000077AD, - 10050: 0x000077EF, - 10051: 0x000078F7, - 10052: 0x000078FA, - 10053: 0x000078F4, - 10054: 0x000078EF, - 10055: 0x00007901, - 10056: 0x000079A7, - 10057: 0x000079AA, - 10058: 0x00007A57, - 10059: 0x00007ABF, - 10060: 0x00007C07, - 10061: 0x00007C0D, - 10062: 0x00007BFE, - 10063: 0x00007BF7, - 10064: 0x00007C0C, - 10065: 0x00007BE0, - 10066: 0x00007CE0, - 10067: 0x00007CDC, - 10068: 0x00007CDE, - 10069: 0x00007CE2, - 10070: 0x00007CDF, - 10071: 0x00007CD9, - 10072: 0x00007CDD, - 10073: 0x00007E2E, - 10074: 0x00007E3E, - 10075: 0x00007E46, - 10076: 0x00007E37, - 10077: 0x00007E32, - 10078: 0x00007E43, - 10079: 0x00007E2B, - 10080: 0x00007E3D, - 10081: 0x00007E31, - 10082: 0x00007E45, - 10083: 0x00007E41, - 10084: 0x00007E34, - 10085: 0x00007E39, - 10086: 0x00007E48, - 10087: 0x00007E35, - 10088: 0x00007E3F, - 10089: 0x00007E2F, - 10090: 0x00007F44, - 10091: 0x00007FF3, - 10092: 0x00007FFC, - 10093: 0x00008071, - 10094: 0x00008072, - 10095: 0x00008070, - 10096: 0x0000806F, - 10097: 0x00008073, - 10098: 0x000081C6, - 10099: 0x000081C3, - 10100: 0x000081BA, - 10101: 0x000081C2, - 10102: 0x000081C0, - 10103: 0x000081BF, - 10104: 0x000081BD, - 10105: 0x000081C9, - 10106: 0x000081BE, - 10107: 0x000081E8, - 10108: 0x00008209, - 10109: 0x00008271, - 10110: 0x000085AA, - 10111: 0x00008584, - 10112: 0x0000857E, - 10113: 0x0000859C, - 10114: 0x00008591, - 10115: 0x00008594, - 10116: 0x000085AF, - 10117: 0x0000859B, - 10118: 0x00008587, - 10119: 0x000085A8, - 10120: 0x0000858A, - 10121: 0x00008667, - 10122: 0x000087C0, - 10123: 0x000087D1, - 10124: 0x000087B3, - 10125: 0x000087D2, - 10126: 0x000087C6, - 10127: 0x000087AB, - 10128: 0x000087BB, - 10129: 0x000087BA, - 10130: 0x000087C8, - 10131: 0x000087CB, - 10132: 0x0000893B, - 10133: 0x00008936, - 10134: 0x00008944, - 10135: 0x00008938, - 10136: 0x0000893D, - 10137: 0x000089AC, - 10138: 0x00008B0E, - 10139: 0x00008B17, - 10140: 0x00008B19, - 10141: 0x00008B1B, - 10142: 0x00008B0A, - 10143: 0x00008B20, - 10144: 0x00008B1D, - 10145: 0x00008B04, - 10146: 0x00008B10, - 10147: 0x00008C41, - 10148: 0x00008C3F, - 10149: 0x00008C73, - 10150: 0x00008CFA, - 10151: 0x00008CFD, - 10152: 0x00008CFC, - 10153: 0x00008CF8, - 10154: 0x00008CFB, - 10155: 0x00008DA8, - 10156: 0x00008E49, - 10157: 0x00008E4B, - 10158: 0x00008E48, - 10159: 0x00008E4A, - 10160: 0x00008F44, - 10161: 0x00008F3E, - 10162: 0x00008F42, - 10163: 0x00008F45, - 10164: 0x00008F3F, - 10165: 0x0000907F, - 10166: 0x0000907D, - 10167: 0x00009084, - 10168: 0x00009081, - 10169: 0x00009082, - 10170: 0x00009080, - 10171: 0x00009139, - 10172: 0x000091A3, - 10173: 0x0000919E, - 10174: 0x0000919C, - 10175: 0x0000934D, - 10176: 0x00009382, - 10177: 0x00009328, - 10178: 0x00009375, - 10179: 0x0000934A, - 10180: 0x00009365, - 10181: 0x0000934B, - 10182: 0x00009318, - 10183: 0x0000937E, - 10184: 0x0000936C, - 10185: 0x0000935B, - 10186: 0x00009370, - 10187: 0x0000935A, - 10188: 0x00009354, - 10189: 0x000095CA, - 10190: 0x000095CB, - 10191: 0x000095CC, - 10192: 0x000095C8, - 10193: 0x000095C6, - 10194: 0x000096B1, - 10195: 0x000096B8, - 10196: 0x000096D6, - 10197: 0x0000971C, - 10198: 0x0000971E, - 10199: 0x000097A0, - 10200: 0x000097D3, - 10201: 0x00009846, - 10202: 0x000098B6, - 10203: 0x00009935, - 10204: 0x00009A01, - 10205: 0x000099FF, - 10206: 0x00009BAE, - 10207: 0x00009BAB, - 10208: 0x00009BAA, - 10209: 0x00009BAD, - 10210: 0x00009D3B, - 10211: 0x00009D3F, - 10212: 0x00009E8B, - 10213: 0x00009ECF, - 10214: 0x00009EDE, - 10215: 0x00009EDC, - 10216: 0x00009EDD, - 10217: 0x00009EDB, - 10218: 0x00009F3E, - 10219: 0x00009F4B, - 10220: 0x000053E2, - 10221: 0x00005695, - 10222: 0x000056AE, - 10223: 0x000058D9, - 10224: 0x000058D8, - 10225: 0x00005B38, - 10226: 0x00005F5D, - 10227: 0x000061E3, - 10228: 0x00006233, - 10229: 0x000064F4, - 10230: 0x000064F2, - 10231: 0x000064FE, - 10232: 0x00006506, - 10233: 0x000064FA, - 10234: 0x000064FB, - 10235: 0x000064F7, - 10236: 0x000065B7, - 10237: 0x000066DC, - 10238: 0x00006726, - 10239: 0x00006AB3, - 10240: 0x00006AAC, - 10241: 0x00006AC3, - 10242: 0x00006ABB, - 10243: 0x00006AB8, - 10244: 0x00006AC2, - 10245: 0x00006AAE, - 10246: 0x00006AAF, - 10247: 0x00006B5F, - 10248: 0x00006B78, - 10249: 0x00006BAF, - 10250: 0x00007009, - 10251: 0x0000700B, - 10252: 0x00006FFE, - 10253: 0x00007006, - 10254: 0x00006FFA, - 10255: 0x00007011, - 10256: 0x0000700F, - 10257: 0x000071FB, - 10258: 0x000071FC, - 10259: 0x000071FE, - 10260: 0x000071F8, - 10261: 0x00007377, - 10262: 0x00007375, - 10263: 0x000074A7, - 10264: 0x000074BF, - 10265: 0x00007515, - 10266: 0x00007656, - 10267: 0x00007658, - 10268: 0x00007652, - 10269: 0x000077BD, - 10270: 0x000077BF, - 10271: 0x000077BB, - 10272: 0x000077BC, - 10273: 0x0000790E, - 10274: 0x000079AE, - 10275: 0x00007A61, - 10276: 0x00007A62, - 10277: 0x00007A60, - 10278: 0x00007AC4, - 10279: 0x00007AC5, - 10280: 0x00007C2B, - 10281: 0x00007C27, - 10282: 0x00007C2A, - 10283: 0x00007C1E, - 10284: 0x00007C23, - 10285: 0x00007C21, - 10286: 0x00007CE7, - 10287: 0x00007E54, - 10288: 0x00007E55, - 10289: 0x00007E5E, - 10290: 0x00007E5A, - 10291: 0x00007E61, - 10292: 0x00007E52, - 10293: 0x00007E59, - 10294: 0x00007F48, - 10295: 0x00007FF9, - 10296: 0x00007FFB, - 10297: 0x00008077, - 10298: 0x00008076, - 10299: 0x000081CD, - 10300: 0x000081CF, - 10301: 0x0000820A, - 10302: 0x000085CF, - 10303: 0x000085A9, - 10304: 0x000085CD, - 10305: 0x000085D0, - 10306: 0x000085C9, - 10307: 0x000085B0, - 10308: 0x000085BA, - 10309: 0x000085B9, - 10310: 0x000085A6, - 10311: 0x000087EF, - 10312: 0x000087EC, - 10313: 0x000087F2, - 10314: 0x000087E0, - 10315: 0x00008986, - 10316: 0x000089B2, - 10317: 0x000089F4, - 10318: 0x00008B28, - 10319: 0x00008B39, - 10320: 0x00008B2C, - 10321: 0x00008B2B, - 10322: 0x00008C50, - 10323: 0x00008D05, - 10324: 0x00008E59, - 10325: 0x00008E63, - 10326: 0x00008E66, - 10327: 0x00008E64, - 10328: 0x00008E5F, - 10329: 0x00008E55, - 10330: 0x00008EC0, - 10331: 0x00008F49, - 10332: 0x00008F4D, - 10333: 0x00009087, - 10334: 0x00009083, - 10335: 0x00009088, - 10336: 0x000091AB, - 10337: 0x000091AC, - 10338: 0x000091D0, - 10339: 0x00009394, - 10340: 0x0000938A, - 10341: 0x00009396, - 10342: 0x000093A2, - 10343: 0x000093B3, - 10344: 0x000093AE, - 10345: 0x000093AC, - 10346: 0x000093B0, - 10347: 0x00009398, - 10348: 0x0000939A, - 10349: 0x00009397, - 10350: 0x000095D4, - 10351: 0x000095D6, - 10352: 0x000095D0, - 10353: 0x000095D5, - 10354: 0x000096E2, - 10355: 0x000096DC, - 10356: 0x000096D9, - 10357: 0x000096DB, - 10358: 0x000096DE, - 10359: 0x00009724, - 10360: 0x000097A3, - 10361: 0x000097A6, - 10362: 0x000097AD, - 10363: 0x000097F9, - 10364: 0x0000984D, - 10365: 0x0000984F, - 10366: 0x0000984C, - 10367: 0x0000984E, - 10368: 0x00009853, - 10369: 0x000098BA, - 10370: 0x0000993E, - 10371: 0x0000993F, - 10372: 0x0000993D, - 10373: 0x0000992E, - 10374: 0x000099A5, - 10375: 0x00009A0E, - 10376: 0x00009AC1, - 10377: 0x00009B03, - 10378: 0x00009B06, - 10379: 0x00009B4F, - 10380: 0x00009B4E, - 10381: 0x00009B4D, - 10382: 0x00009BCA, - 10383: 0x00009BC9, - 10384: 0x00009BFD, - 10385: 0x00009BC8, - 10386: 0x00009BC0, - 10387: 0x00009D51, - 10388: 0x00009D5D, - 10389: 0x00009D60, - 10390: 0x00009EE0, - 10391: 0x00009F15, - 10392: 0x00009F2C, - 10393: 0x00005133, - 10394: 0x000056A5, - 10395: 0x000058DE, - 10396: 0x000058DF, - 10397: 0x000058E2, - 10398: 0x00005BF5, - 10399: 0x00009F90, - 10400: 0x00005EEC, - 10401: 0x000061F2, - 10402: 0x000061F7, - 10403: 0x000061F6, - 10404: 0x000061F5, - 10405: 0x00006500, - 10406: 0x0000650F, - 10407: 0x000066E0, - 10408: 0x000066DD, - 10409: 0x00006AE5, - 10410: 0x00006ADD, - 10411: 0x00006ADA, - 10412: 0x00006AD3, - 10413: 0x0000701B, - 10414: 0x0000701F, - 10415: 0x00007028, - 10416: 0x0000701A, - 10417: 0x0000701D, - 10418: 0x00007015, - 10419: 0x00007018, - 10420: 0x00007206, - 10421: 0x0000720D, - 10422: 0x00007258, - 10423: 0x000072A2, - 10424: 0x00007378, - 10425: 0x0000737A, - 10426: 0x000074BD, - 10427: 0x000074CA, - 10428: 0x000074E3, - 10429: 0x00007587, - 10430: 0x00007586, - 10431: 0x0000765F, - 10432: 0x00007661, - 10433: 0x000077C7, - 10434: 0x00007919, - 10435: 0x000079B1, - 10436: 0x00007A6B, - 10437: 0x00007A69, - 10438: 0x00007C3E, - 10439: 0x00007C3F, - 10440: 0x00007C38, - 10441: 0x00007C3D, - 10442: 0x00007C37, - 10443: 0x00007C40, - 10444: 0x00007E6B, - 10445: 0x00007E6D, - 10446: 0x00007E79, - 10447: 0x00007E69, - 10448: 0x00007E6A, - 10449: 0x00007F85, - 10450: 0x00007E73, - 10451: 0x00007FB6, - 10452: 0x00007FB9, - 10453: 0x00007FB8, - 10454: 0x000081D8, - 10455: 0x000085E9, - 10456: 0x000085DD, - 10457: 0x000085EA, - 10458: 0x000085D5, - 10459: 0x000085E4, - 10460: 0x000085E5, - 10461: 0x000085F7, - 10462: 0x000087FB, - 10463: 0x00008805, - 10464: 0x0000880D, - 10465: 0x000087F9, - 10466: 0x000087FE, - 10467: 0x00008960, - 10468: 0x0000895F, - 10469: 0x00008956, - 10470: 0x0000895E, - 10471: 0x00008B41, - 10472: 0x00008B5C, - 10473: 0x00008B58, - 10474: 0x00008B49, - 10475: 0x00008B5A, - 10476: 0x00008B4E, - 10477: 0x00008B4F, - 10478: 0x00008B46, - 10479: 0x00008B59, - 10480: 0x00008D08, - 10481: 0x00008D0A, - 10482: 0x00008E7C, - 10483: 0x00008E72, - 10484: 0x00008E87, - 10485: 0x00008E76, - 10486: 0x00008E6C, - 10487: 0x00008E7A, - 10488: 0x00008E74, - 10489: 0x00008F54, - 10490: 0x00008F4E, - 10491: 0x00008FAD, - 10492: 0x0000908A, - 10493: 0x0000908B, - 10494: 0x000091B1, - 10495: 0x000091AE, - 10496: 0x000093E1, - 10497: 0x000093D1, - 10498: 0x000093DF, - 10499: 0x000093C3, - 10500: 0x000093C8, - 10501: 0x000093DC, - 10502: 0x000093DD, - 10503: 0x000093D6, - 10504: 0x000093E2, - 10505: 0x000093CD, - 10506: 0x000093D8, - 10507: 0x000093E4, - 10508: 0x000093D7, - 10509: 0x000093E8, - 10510: 0x000095DC, - 10511: 0x000096B4, - 10512: 0x000096E3, - 10513: 0x0000972A, - 10514: 0x00009727, - 10515: 0x00009761, - 10516: 0x000097DC, - 10517: 0x000097FB, - 10518: 0x0000985E, - 10519: 0x00009858, - 10520: 0x0000985B, - 10521: 0x000098BC, - 10522: 0x00009945, - 10523: 0x00009949, - 10524: 0x00009A16, - 10525: 0x00009A19, - 10526: 0x00009B0D, - 10527: 0x00009BE8, - 10528: 0x00009BE7, - 10529: 0x00009BD6, - 10530: 0x00009BDB, - 10531: 0x00009D89, - 10532: 0x00009D61, - 10533: 0x00009D72, - 10534: 0x00009D6A, - 10535: 0x00009D6C, - 10536: 0x00009E92, - 10537: 0x00009E97, - 10538: 0x00009E93, - 10539: 0x00009EB4, - 10540: 0x000052F8, - 10541: 0x000056A8, - 10542: 0x000056B7, - 10543: 0x000056B6, - 10544: 0x000056B4, - 10545: 0x000056BC, - 10546: 0x000058E4, - 10547: 0x00005B40, - 10548: 0x00005B43, - 10549: 0x00005B7D, - 10550: 0x00005BF6, - 10551: 0x00005DC9, - 10552: 0x000061F8, - 10553: 0x000061FA, - 10554: 0x00006518, - 10555: 0x00006514, - 10556: 0x00006519, - 10557: 0x000066E6, - 10558: 0x00006727, - 10559: 0x00006AEC, - 10560: 0x0000703E, - 10561: 0x00007030, - 10562: 0x00007032, - 10563: 0x00007210, - 10564: 0x0000737B, - 10565: 0x000074CF, - 10566: 0x00007662, - 10567: 0x00007665, - 10568: 0x00007926, - 10569: 0x0000792A, - 10570: 0x0000792C, - 10571: 0x0000792B, - 10572: 0x00007AC7, - 10573: 0x00007AF6, - 10574: 0x00007C4C, - 10575: 0x00007C43, - 10576: 0x00007C4D, - 10577: 0x00007CEF, - 10578: 0x00007CF0, - 10579: 0x00008FAE, - 10580: 0x00007E7D, - 10581: 0x00007E7C, - 10582: 0x00007E82, - 10583: 0x00007F4C, - 10584: 0x00008000, - 10585: 0x000081DA, - 10586: 0x00008266, - 10587: 0x000085FB, - 10588: 0x000085F9, - 10589: 0x00008611, - 10590: 0x000085FA, - 10591: 0x00008606, - 10592: 0x0000860B, - 10593: 0x00008607, - 10594: 0x0000860A, - 10595: 0x00008814, - 10596: 0x00008815, - 10597: 0x00008964, - 10598: 0x000089BA, - 10599: 0x000089F8, - 10600: 0x00008B70, - 10601: 0x00008B6C, - 10602: 0x00008B66, - 10603: 0x00008B6F, - 10604: 0x00008B5F, - 10605: 0x00008B6B, - 10606: 0x00008D0F, - 10607: 0x00008D0D, - 10608: 0x00008E89, - 10609: 0x00008E81, - 10610: 0x00008E85, - 10611: 0x00008E82, - 10612: 0x000091B4, - 10613: 0x000091CB, - 10614: 0x00009418, - 10615: 0x00009403, - 10616: 0x000093FD, - 10617: 0x000095E1, - 10618: 0x00009730, - 10619: 0x000098C4, - 10620: 0x00009952, - 10621: 0x00009951, - 10622: 0x000099A8, - 10623: 0x00009A2B, - 10624: 0x00009A30, - 10625: 0x00009A37, - 10626: 0x00009A35, - 10627: 0x00009C13, - 10628: 0x00009C0D, - 10629: 0x00009E79, - 10630: 0x00009EB5, - 10631: 0x00009EE8, - 10632: 0x00009F2F, - 10633: 0x00009F5F, - 10634: 0x00009F63, - 10635: 0x00009F61, - 10636: 0x00005137, - 10637: 0x00005138, - 10638: 0x000056C1, - 10639: 0x000056C0, - 10640: 0x000056C2, - 10641: 0x00005914, - 10642: 0x00005C6C, - 10643: 0x00005DCD, - 10644: 0x000061FC, - 10645: 0x000061FE, - 10646: 0x0000651D, - 10647: 0x0000651C, - 10648: 0x00006595, - 10649: 0x000066E9, - 10650: 0x00006AFB, - 10651: 0x00006B04, - 10652: 0x00006AFA, - 10653: 0x00006BB2, - 10654: 0x0000704C, - 10655: 0x0000721B, - 10656: 0x000072A7, - 10657: 0x000074D6, - 10658: 0x000074D4, - 10659: 0x00007669, - 10660: 0x000077D3, - 10661: 0x00007C50, - 10662: 0x00007E8F, - 10663: 0x00007E8C, - 10664: 0x00007FBC, - 10665: 0x00008617, - 10666: 0x0000862D, - 10667: 0x0000861A, - 10668: 0x00008823, - 10669: 0x00008822, - 10670: 0x00008821, - 10671: 0x0000881F, - 10672: 0x0000896A, - 10673: 0x0000896C, - 10674: 0x000089BD, - 10675: 0x00008B74, - 10676: 0x00008B77, - 10677: 0x00008B7D, - 10678: 0x00008D13, - 10679: 0x00008E8A, - 10680: 0x00008E8D, - 10681: 0x00008E8B, - 10682: 0x00008F5F, - 10683: 0x00008FAF, - 10684: 0x000091BA, - 10685: 0x0000942E, - 10686: 0x00009433, - 10687: 0x00009435, - 10688: 0x0000943A, - 10689: 0x00009438, - 10690: 0x00009432, - 10691: 0x0000942B, - 10692: 0x000095E2, - 10693: 0x00009738, - 10694: 0x00009739, - 10695: 0x00009732, - 10696: 0x000097FF, - 10697: 0x00009867, - 10698: 0x00009865, - 10699: 0x00009957, - 10700: 0x00009A45, - 10701: 0x00009A43, - 10702: 0x00009A40, - 10703: 0x00009A3E, - 10704: 0x00009ACF, - 10705: 0x00009B54, - 10706: 0x00009B51, - 10707: 0x00009C2D, - 10708: 0x00009C25, - 10709: 0x00009DAF, - 10710: 0x00009DB4, - 10711: 0x00009DC2, - 10712: 0x00009DB8, - 10713: 0x00009E9D, - 10714: 0x00009EEF, - 10715: 0x00009F19, - 10716: 0x00009F5C, - 10717: 0x00009F66, - 10718: 0x00009F67, - 10719: 0x0000513C, - 10720: 0x0000513B, - 10721: 0x000056C8, - 10722: 0x000056CA, - 10723: 0x000056C9, - 10724: 0x00005B7F, - 10725: 0x00005DD4, - 10726: 0x00005DD2, - 10727: 0x00005F4E, - 10728: 0x000061FF, - 10729: 0x00006524, - 10730: 0x00006B0A, - 10731: 0x00006B61, - 10732: 0x00007051, - 10733: 0x00007058, - 10734: 0x00007380, - 10735: 0x000074E4, - 10736: 0x0000758A, - 10737: 0x0000766E, - 10738: 0x0000766C, - 10739: 0x000079B3, - 10740: 0x00007C60, - 10741: 0x00007C5F, - 10742: 0x0000807E, - 10743: 0x0000807D, - 10744: 0x000081DF, - 10745: 0x00008972, - 10746: 0x0000896F, - 10747: 0x000089FC, - 10748: 0x00008B80, - 10749: 0x00008D16, - 10750: 0x00008D17, - 10751: 0x00008E91, - 10752: 0x00008E93, - 10753: 0x00008F61, - 10754: 0x00009148, - 10755: 0x00009444, - 10756: 0x00009451, - 10757: 0x00009452, - 10758: 0x0000973D, - 10759: 0x0000973E, - 10760: 0x000097C3, - 10761: 0x000097C1, - 10762: 0x0000986B, - 10763: 0x00009955, - 10764: 0x00009A55, - 10765: 0x00009A4D, - 10766: 0x00009AD2, - 10767: 0x00009B1A, - 10768: 0x00009C49, - 10769: 0x00009C31, - 10770: 0x00009C3E, - 10771: 0x00009C3B, - 10772: 0x00009DD3, - 10773: 0x00009DD7, - 10774: 0x00009F34, - 10775: 0x00009F6C, - 10776: 0x00009F6A, - 10777: 0x00009F94, - 10778: 0x000056CC, - 10779: 0x00005DD6, - 10780: 0x00006200, - 10781: 0x00006523, - 10782: 0x0000652B, - 10783: 0x0000652A, - 10784: 0x000066EC, - 10785: 0x00006B10, - 10786: 0x000074DA, - 10787: 0x00007ACA, - 10788: 0x00007C64, - 10789: 0x00007C63, - 10790: 0x00007C65, - 10791: 0x00007E93, - 10792: 0x00007E96, - 10793: 0x00007E94, - 10794: 0x000081E2, - 10795: 0x00008638, - 10796: 0x0000863F, - 10797: 0x00008831, - 10798: 0x00008B8A, - 10799: 0x00009090, - 10800: 0x0000908F, - 10801: 0x00009463, - 10802: 0x00009460, - 10803: 0x00009464, - 10804: 0x00009768, - 10805: 0x0000986F, - 10806: 0x0000995C, - 10807: 0x00009A5A, - 10808: 0x00009A5B, - 10809: 0x00009A57, - 10810: 0x00009AD3, - 10811: 0x00009AD4, - 10812: 0x00009AD1, - 10813: 0x00009C54, - 10814: 0x00009C57, - 10815: 0x00009C56, - 10816: 0x00009DE5, - 10817: 0x00009E9F, - 10818: 0x00009EF4, - 10819: 0x000056D1, - 10820: 0x000058E9, - 10821: 0x0000652C, - 10822: 0x0000705E, - 10823: 0x00007671, - 10824: 0x00007672, - 10825: 0x000077D7, - 10826: 0x00007F50, - 10827: 0x00007F88, - 10828: 0x00008836, - 10829: 0x00008839, - 10830: 0x00008862, - 10831: 0x00008B93, - 10832: 0x00008B92, - 10833: 0x00008B96, - 10834: 0x00008277, - 10835: 0x00008D1B, - 10836: 0x000091C0, - 10837: 0x0000946A, - 10838: 0x00009742, - 10839: 0x00009748, - 10840: 0x00009744, - 10841: 0x000097C6, - 10842: 0x00009870, - 10843: 0x00009A5F, - 10844: 0x00009B22, - 10845: 0x00009B58, - 10846: 0x00009C5F, - 10847: 0x00009DF9, - 10848: 0x00009DFA, - 10849: 0x00009E7C, - 10850: 0x00009E7D, - 10851: 0x00009F07, - 10852: 0x00009F77, - 10853: 0x00009F72, - 10854: 0x00005EF3, - 10855: 0x00006B16, - 10856: 0x00007063, - 10857: 0x00007C6C, - 10858: 0x00007C6E, - 10859: 0x0000883B, - 10860: 0x000089C0, - 10861: 0x00008EA1, - 10862: 0x000091C1, - 10863: 0x00009472, - 10864: 0x00009470, - 10865: 0x00009871, - 10866: 0x0000995E, - 10867: 0x00009AD6, - 10868: 0x00009B23, - 10869: 0x00009ECC, - 10870: 0x00007064, - 10871: 0x000077DA, - 10872: 0x00008B9A, - 10873: 0x00009477, - 10874: 0x000097C9, - 10875: 0x00009A62, - 10876: 0x00009A65, - 10877: 0x00007E9C, - 10878: 0x00008B9C, - 10879: 0x00008EAA, - 10880: 0x000091C5, - 10881: 0x0000947D, - 10882: 0x0000947E, - 10883: 0x0000947C, - 10884: 0x00009C77, - 10885: 0x00009C78, - 10886: 0x00009EF7, - 10887: 0x00008C54, - 10888: 0x0000947F, - 10889: 0x00009E1A, - 10890: 0x00007228, - 10891: 0x00009A6A, - 10892: 0x00009B31, - 10893: 0x00009E1B, - 10894: 0x00009E1E, - 10895: 0x00007C72, - 10896: 0x00002460, - 10897: 0x00002461, - 10898: 0x00002462, - 10899: 0x00002463, - 10900: 0x00002464, - 10901: 0x00002465, - 10902: 0x00002466, - 10903: 0x00002467, - 10904: 0x00002468, - 10905: 0x00002469, - 10906: 0x00002474, - 10907: 0x00002475, - 10908: 0x00002476, - 10909: 0x00002477, - 10910: 0x00002478, - 10911: 0x00002479, - 10912: 0x0000247A, - 10913: 0x0000247B, - 10914: 0x0000247C, - 10915: 0x0000247D, - 10916: 0x00002170, - 10917: 0x00002171, - 10918: 0x00002172, - 10919: 0x00002173, - 10920: 0x00002174, - 10921: 0x00002175, - 10922: 0x00002176, - 10923: 0x00002177, - 10924: 0x00002178, - 10925: 0x00002179, - 10926: 0x00004E36, - 10927: 0x00004E3F, - 10928: 0x00004E85, - 10929: 0x00004EA0, - 10930: 0x00005182, - 10931: 0x00005196, - 10932: 0x000051AB, - 10933: 0x000052F9, - 10934: 0x00005338, - 10935: 0x00005369, - 10936: 0x000053B6, - 10937: 0x0000590A, - 10938: 0x00005B80, - 10939: 0x00005DDB, - 10940: 0x00002F33, - 10941: 0x00005E7F, - 10942: 0x00005EF4, - 10943: 0x00005F50, - 10944: 0x00005F61, - 10945: 0x00006534, - 10946: 0x000065E0, - 10947: 0x00007592, - 10948: 0x00007676, - 10949: 0x00008FB5, - 10950: 0x000096B6, - 10951: 0x000000A8, - 10952: 0x000002C6, - 10953: 0x000030FD, - 10954: 0x000030FE, - 10955: 0x0000309D, - 10956: 0x0000309E, - 10957: 0x00003003, - 10958: 0x00004EDD, - 10959: 0x00003005, - 10960: 0x00003006, - 10961: 0x00003007, - 10962: 0x000030FC, - 10963: 0x0000FF3B, - 10964: 0x0000FF3D, - 10965: 0x0000273D, - 10966: 0x00003041, - 10967: 0x00003042, - 10968: 0x00003043, - 10969: 0x00003044, - 10970: 0x00003045, - 10971: 0x00003046, - 10972: 0x00003047, - 10973: 0x00003048, - 10974: 0x00003049, - 10975: 0x0000304A, - 10976: 0x0000304B, - 10977: 0x0000304C, - 10978: 0x0000304D, - 10979: 0x0000304E, - 10980: 0x0000304F, - 10981: 0x00003050, - 10982: 0x00003051, - 10983: 0x00003052, - 10984: 0x00003053, - 10985: 0x00003054, - 10986: 0x00003055, - 10987: 0x00003056, - 10988: 0x00003057, - 10989: 0x00003058, - 10990: 0x00003059, - 10991: 0x0000305A, - 10992: 0x0000305B, - 10993: 0x0000305C, - 10994: 0x0000305D, - 10995: 0x0000305E, - 10996: 0x0000305F, - 10997: 0x00003060, - 10998: 0x00003061, - 10999: 0x00003062, - 11000: 0x00003063, - 11001: 0x00003064, - 11002: 0x00003065, - 11003: 0x00003066, - 11004: 0x00003067, - 11005: 0x00003068, - 11006: 0x00003069, - 11007: 0x0000306A, - 11008: 0x0000306B, - 11009: 0x0000306C, - 11010: 0x0000306D, - 11011: 0x0000306E, - 11012: 0x0000306F, - 11013: 0x00003070, - 11014: 0x00003071, - 11015: 0x00003072, - 11016: 0x00003073, - 11017: 0x00003074, - 11018: 0x00003075, - 11019: 0x00003076, - 11020: 0x00003077, - 11021: 0x00003078, - 11022: 0x00003079, - 11023: 0x0000307A, - 11024: 0x0000307B, - 11025: 0x0000307C, - 11026: 0x0000307D, - 11027: 0x0000307E, - 11028: 0x0000307F, - 11029: 0x00003080, - 11030: 0x00003081, - 11031: 0x00003082, - 11032: 0x00003083, - 11033: 0x00003084, - 11034: 0x00003085, - 11035: 0x00003086, - 11036: 0x00003087, - 11037: 0x00003088, - 11038: 0x00003089, - 11039: 0x0000308A, - 11040: 0x0000308B, - 11041: 0x0000308C, - 11042: 0x0000308D, - 11043: 0x0000308E, - 11044: 0x0000308F, - 11045: 0x00003090, - 11046: 0x00003091, - 11047: 0x00003092, - 11048: 0x00003093, - 11049: 0x000030A1, - 11050: 0x000030A2, - 11051: 0x000030A3, - 11052: 0x000030A4, - 11053: 0x000030A5, - 11054: 0x000030A6, - 11055: 0x000030A7, - 11056: 0x000030A8, - 11057: 0x000030A9, - 11058: 0x000030AA, - 11059: 0x000030AB, - 11060: 0x000030AC, - 11061: 0x000030AD, - 11062: 0x000030AE, - 11063: 0x000030AF, - 11064: 0x000030B0, - 11065: 0x000030B1, - 11066: 0x000030B2, - 11067: 0x000030B3, - 11068: 0x000030B4, - 11069: 0x000030B5, - 11070: 0x000030B6, - 11071: 0x000030B7, - 11072: 0x000030B8, - 11073: 0x000030B9, - 11074: 0x000030BA, - 11075: 0x000030BB, - 11076: 0x000030BC, - 11077: 0x000030BD, - 11078: 0x000030BE, - 11079: 0x000030BF, - 11080: 0x000030C0, - 11081: 0x000030C1, - 11082: 0x000030C2, - 11083: 0x000030C3, - 11084: 0x000030C4, - 11085: 0x000030C5, - 11086: 0x000030C6, - 11087: 0x000030C7, - 11088: 0x000030C8, - 11089: 0x000030C9, - 11090: 0x000030CA, - 11091: 0x000030CB, - 11092: 0x000030CC, - 11093: 0x000030CD, - 11094: 0x000030CE, - 11095: 0x000030CF, - 11096: 0x000030D0, - 11097: 0x000030D1, - 11098: 0x000030D2, - 11099: 0x000030D3, - 11100: 0x000030D4, - 11101: 0x000030D5, - 11102: 0x000030D6, - 11103: 0x000030D7, - 11104: 0x000030D8, - 11105: 0x000030D9, - 11106: 0x000030DA, - 11107: 0x000030DB, - 11108: 0x000030DC, - 11109: 0x000030DD, - 11110: 0x000030DE, - 11111: 0x000030DF, - 11112: 0x000030E0, - 11113: 0x000030E1, - 11114: 0x000030E2, - 11115: 0x000030E3, - 11116: 0x000030E4, - 11117: 0x000030E5, - 11118: 0x000030E6, - 11119: 0x000030E7, - 11120: 0x000030E8, - 11121: 0x000030E9, - 11122: 0x000030EA, - 11123: 0x000030EB, - 11124: 0x000030EC, - 11125: 0x000030ED, - 11126: 0x000030EE, - 11127: 0x000030EF, - 11128: 0x000030F0, - 11129: 0x000030F1, - 11130: 0x000030F2, - 11131: 0x000030F3, - 11132: 0x000030F4, - 11133: 0x000030F5, - 11134: 0x000030F6, - 11135: 0x00000410, - 11136: 0x00000411, - 11137: 0x00000412, - 11138: 0x00000413, - 11139: 0x00000414, - 11140: 0x00000415, - 11141: 0x00000401, - 11142: 0x00000416, - 11143: 0x00000417, - 11144: 0x00000418, - 11145: 0x00000419, - 11146: 0x0000041A, - 11147: 0x0000041B, - 11148: 0x0000041C, - 11149: 0x0000041D, - 11150: 0x0000041E, - 11151: 0x0000041F, - 11152: 0x00000420, - 11153: 0x00000421, - 11154: 0x00000422, - 11155: 0x00000423, - 11156: 0x00000424, - 11157: 0x00000425, - 11158: 0x00000426, - 11159: 0x00000427, - 11160: 0x00000428, - 11161: 0x00000429, - 11162: 0x0000042A, - 11163: 0x0000042B, - 11164: 0x0000042C, - 11165: 0x0000042D, - 11166: 0x0000042E, - 11167: 0x0000042F, - 11168: 0x00000430, - 11169: 0x00000431, - 11170: 0x00000432, - 11171: 0x00000433, - 11172: 0x00000434, - 11173: 0x00000435, - 11174: 0x00000451, - 11175: 0x00000436, - 11176: 0x00000437, - 11177: 0x00000438, - 11178: 0x00000439, - 11179: 0x0000043A, - 11180: 0x0000043B, - 11181: 0x0000043C, - 11182: 0x0000043D, - 11183: 0x0000043E, - 11184: 0x0000043F, - 11185: 0x00000440, - 11186: 0x00000441, - 11187: 0x00000442, - 11188: 0x00000443, - 11189: 0x00000444, - 11190: 0x00000445, - 11191: 0x00000446, - 11192: 0x00000447, - 11193: 0x00000448, - 11194: 0x00000449, - 11195: 0x0000044A, - 11196: 0x0000044B, - 11197: 0x0000044C, - 11198: 0x0000044D, - 11199: 0x0000044E, - 11200: 0x0000044F, - 11201: 0x000021E7, - 11202: 0x000021B8, - 11203: 0x000021B9, - 11204: 0x000031CF, - 11205: 0x000200CC, - 11206: 0x00004E5A, - 11207: 0x0002008A, - 11208: 0x00005202, - 11209: 0x00004491, - 11210: 0x00009FB0, - 11211: 0x00005188, - 11212: 0x00009FB1, - 11213: 0x00027607, - 11254: 0x0000FFE2, - 11255: 0x0000FFE4, - 11256: 0x0000FF07, - 11257: 0x0000FF02, - 11258: 0x00003231, - 11259: 0x00002116, - 11260: 0x00002121, - 11261: 0x0000309B, - 11262: 0x0000309C, - 11263: 0x00002E80, - 11264: 0x00002E84, - 11265: 0x00002E86, - 11266: 0x00002E87, - 11267: 0x00002E88, - 11268: 0x00002E8A, - 11269: 0x00002E8C, - 11270: 0x00002E8D, - 11271: 0x00002E95, - 11272: 0x00002E9C, - 11273: 0x00002E9D, - 11274: 0x00002EA5, - 11275: 0x00002EA7, - 11276: 0x00002EAA, - 11277: 0x00002EAC, - 11278: 0x00002EAE, - 11279: 0x00002EB6, - 11280: 0x00002EBC, - 11281: 0x00002EBE, - 11282: 0x00002EC6, - 11283: 0x00002ECA, - 11284: 0x00002ECC, - 11285: 0x00002ECD, - 11286: 0x00002ECF, - 11287: 0x00002ED6, - 11288: 0x00002ED7, - 11289: 0x00002EDE, - 11290: 0x00002EE3, - 11294: 0x00000283, - 11295: 0x00000250, - 11296: 0x0000025B, - 11297: 0x00000254, - 11298: 0x00000275, - 11299: 0x00000153, - 11300: 0x000000F8, - 11301: 0x0000014B, - 11302: 0x0000028A, - 11303: 0x0000026A, - 11304: 0x00004E42, - 11305: 0x00004E5C, - 11306: 0x000051F5, - 11307: 0x0000531A, - 11308: 0x00005382, - 11309: 0x00004E07, - 11310: 0x00004E0C, - 11311: 0x00004E47, - 11312: 0x00004E8D, - 11313: 0x000056D7, - 11314: 0x0000FA0C, - 11315: 0x00005C6E, - 11316: 0x00005F73, - 11317: 0x00004E0F, - 11318: 0x00005187, - 11319: 0x00004E0E, - 11320: 0x00004E2E, - 11321: 0x00004E93, - 11322: 0x00004EC2, - 11323: 0x00004EC9, - 11324: 0x00004EC8, - 11325: 0x00005198, - 11326: 0x000052FC, - 11327: 0x0000536C, - 11328: 0x000053B9, - 11329: 0x00005720, - 11330: 0x00005903, - 11331: 0x0000592C, - 11332: 0x00005C10, - 11333: 0x00005DFF, - 11334: 0x000065E1, - 11335: 0x00006BB3, - 11336: 0x00006BCC, - 11337: 0x00006C14, - 11338: 0x0000723F, - 11339: 0x00004E31, - 11340: 0x00004E3C, - 11341: 0x00004EE8, - 11342: 0x00004EDC, - 11343: 0x00004EE9, - 11344: 0x00004EE1, - 11345: 0x00004EDD, - 11346: 0x00004EDA, - 11347: 0x0000520C, - 11348: 0x0000531C, - 11349: 0x0000534C, - 11350: 0x00005722, - 11351: 0x00005723, - 11352: 0x00005917, - 11353: 0x0000592F, - 11354: 0x00005B81, - 11355: 0x00005B84, - 11356: 0x00005C12, - 11357: 0x00005C3B, - 11358: 0x00005C74, - 11359: 0x00005C73, - 11360: 0x00005E04, - 11361: 0x00005E80, - 11362: 0x00005E82, - 11363: 0x00005FC9, - 11364: 0x00006209, - 11365: 0x00006250, - 11366: 0x00006C15, - 11367: 0x00006C36, - 11368: 0x00006C43, - 11369: 0x00006C3F, - 11370: 0x00006C3B, - 11371: 0x000072AE, - 11372: 0x000072B0, - 11373: 0x0000738A, - 11374: 0x000079B8, - 11375: 0x0000808A, - 11376: 0x0000961E, - 11377: 0x00004F0E, - 11378: 0x00004F18, - 11379: 0x00004F2C, - 11380: 0x00004EF5, - 11381: 0x00004F14, - 11382: 0x00004EF1, - 11383: 0x00004F00, - 11384: 0x00004EF7, - 11385: 0x00004F08, - 11386: 0x00004F1D, - 11387: 0x00004F02, - 11388: 0x00004F05, - 11389: 0x00004F22, - 11390: 0x00004F13, - 11391: 0x00004F04, - 11392: 0x00004EF4, - 11393: 0x00004F12, - 11394: 0x000051B1, - 11395: 0x00005213, - 11396: 0x00005209, - 11397: 0x00005210, - 11398: 0x000052A6, - 11399: 0x00005322, - 11400: 0x0000531F, - 11401: 0x0000534D, - 11402: 0x0000538A, - 11403: 0x00005407, - 11404: 0x000056E1, - 11405: 0x000056DF, - 11406: 0x0000572E, - 11407: 0x0000572A, - 11408: 0x00005734, - 11409: 0x0000593C, - 11410: 0x00005980, - 11411: 0x0000597C, - 11412: 0x00005985, - 11413: 0x0000597B, - 11414: 0x0000597E, - 11415: 0x00005977, - 11416: 0x0000597F, - 11417: 0x00005B56, - 11418: 0x00005C15, - 11419: 0x00005C25, - 11420: 0x00005C7C, - 11421: 0x00005C7A, - 11422: 0x00005C7B, - 11423: 0x00005C7E, - 11424: 0x00005DDF, - 11425: 0x00005E75, - 11426: 0x00005E84, - 11427: 0x00005F02, - 11428: 0x00005F1A, - 11429: 0x00005F74, - 11430: 0x00005FD5, - 11431: 0x00005FD4, - 11432: 0x00005FCF, - 11433: 0x0000625C, - 11434: 0x0000625E, - 11435: 0x00006264, - 11436: 0x00006261, - 11437: 0x00006266, - 11438: 0x00006262, - 11439: 0x00006259, - 11440: 0x00006260, - 11441: 0x0000625A, - 11442: 0x00006265, - 11443: 0x000065EF, - 11444: 0x000065EE, - 11445: 0x0000673E, - 11446: 0x00006739, - 11447: 0x00006738, - 11448: 0x0000673B, - 11449: 0x0000673A, - 11450: 0x0000673F, - 11451: 0x0000673C, - 11452: 0x00006733, - 11453: 0x00006C18, - 11454: 0x00006C46, - 11455: 0x00006C52, - 11456: 0x00006C5C, - 11457: 0x00006C4F, - 11458: 0x00006C4A, - 11459: 0x00006C54, - 11460: 0x00006C4B, - 11461: 0x00006C4C, - 11462: 0x00007071, - 11463: 0x0000725E, - 11464: 0x000072B4, - 11465: 0x000072B5, - 11466: 0x0000738E, - 11467: 0x0000752A, - 11468: 0x0000767F, - 11469: 0x00007A75, - 11470: 0x00007F51, - 11471: 0x00008278, - 11472: 0x0000827C, - 11473: 0x00008280, - 11474: 0x0000827D, - 11475: 0x0000827F, - 11476: 0x0000864D, - 11477: 0x0000897E, - 11478: 0x00009099, - 11479: 0x00009097, - 11480: 0x00009098, - 11481: 0x0000909B, - 11482: 0x00009094, - 11483: 0x00009622, - 11484: 0x00009624, - 11485: 0x00009620, - 11486: 0x00009623, - 11487: 0x00004F56, - 11488: 0x00004F3B, - 11489: 0x00004F62, - 11490: 0x00004F49, - 11491: 0x00004F53, - 11492: 0x00004F64, - 11493: 0x00004F3E, - 11494: 0x00004F67, - 11495: 0x00004F52, - 11496: 0x00004F5F, - 11497: 0x00004F41, - 11498: 0x00004F58, - 11499: 0x00004F2D, - 11500: 0x00004F33, - 11501: 0x00004F3F, - 11502: 0x00004F61, - 11503: 0x0000518F, - 11504: 0x000051B9, - 11505: 0x0000521C, - 11506: 0x0000521E, - 11507: 0x00005221, - 11508: 0x000052AD, - 11509: 0x000052AE, - 11510: 0x00005309, - 11511: 0x00005363, - 11512: 0x00005372, - 11513: 0x0000538E, - 11514: 0x0000538F, - 11515: 0x00005430, - 11516: 0x00005437, - 11517: 0x0000542A, - 11518: 0x00005454, - 11519: 0x00005445, - 11520: 0x00005419, - 11521: 0x0000541C, - 11522: 0x00005425, - 11523: 0x00005418, - 11524: 0x0000543D, - 11525: 0x0000544F, - 11526: 0x00005441, - 11527: 0x00005428, - 11528: 0x00005424, - 11529: 0x00005447, - 11530: 0x000056EE, - 11531: 0x000056E7, - 11532: 0x000056E5, - 11533: 0x00005741, - 11534: 0x00005745, - 11535: 0x0000574C, - 11536: 0x00005749, - 11537: 0x0000574B, - 11538: 0x00005752, - 11539: 0x00005906, - 11540: 0x00005940, - 11541: 0x000059A6, - 11542: 0x00005998, - 11543: 0x000059A0, - 11544: 0x00005997, - 11545: 0x0000598E, - 11546: 0x000059A2, - 11547: 0x00005990, - 11548: 0x0000598F, - 11549: 0x000059A7, - 11550: 0x000059A1, - 11551: 0x00005B8E, - 11552: 0x00005B92, - 11553: 0x00005C28, - 11554: 0x00005C2A, - 11555: 0x00005C8D, - 11556: 0x00005C8F, - 11557: 0x00005C88, - 11558: 0x00005C8B, - 11559: 0x00005C89, - 11560: 0x00005C92, - 11561: 0x00005C8A, - 11562: 0x00005C86, - 11563: 0x00005C93, - 11564: 0x00005C95, - 11565: 0x00005DE0, - 11566: 0x00005E0A, - 11567: 0x00005E0E, - 11568: 0x00005E8B, - 11569: 0x00005E89, - 11570: 0x00005E8C, - 11571: 0x00005E88, - 11572: 0x00005E8D, - 11573: 0x00005F05, - 11574: 0x00005F1D, - 11575: 0x00005F78, - 11576: 0x00005F76, - 11577: 0x00005FD2, - 11578: 0x00005FD1, - 11579: 0x00005FD0, - 11580: 0x00005FED, - 11581: 0x00005FE8, - 11582: 0x00005FEE, - 11583: 0x00005FF3, - 11584: 0x00005FE1, - 11585: 0x00005FE4, - 11586: 0x00005FE3, - 11587: 0x00005FFA, - 11588: 0x00005FEF, - 11589: 0x00005FF7, - 11590: 0x00005FFB, - 11591: 0x00006000, - 11592: 0x00005FF4, - 11593: 0x0000623A, - 11594: 0x00006283, - 11595: 0x0000628C, - 11596: 0x0000628E, - 11597: 0x0000628F, - 11598: 0x00006294, - 11599: 0x00006287, - 11600: 0x00006271, - 11601: 0x0000627B, - 11602: 0x0000627A, - 11603: 0x00006270, - 11604: 0x00006281, - 11605: 0x00006288, - 11606: 0x00006277, - 11607: 0x0000627D, - 11608: 0x00006272, - 11609: 0x00006274, - 11610: 0x00006537, - 11611: 0x000065F0, - 11612: 0x000065F4, - 11613: 0x000065F3, - 11614: 0x000065F2, - 11615: 0x000065F5, - 11616: 0x00006745, - 11617: 0x00006747, - 11618: 0x00006759, - 11619: 0x00006755, - 11620: 0x0000674C, - 11621: 0x00006748, - 11622: 0x0000675D, - 11623: 0x0000674D, - 11624: 0x0000675A, - 11625: 0x0000674B, - 11626: 0x00006BD0, - 11627: 0x00006C19, - 11628: 0x00006C1A, - 11629: 0x00006C78, - 11630: 0x00006C67, - 11631: 0x00006C6B, - 11632: 0x00006C84, - 11633: 0x00006C8B, - 11634: 0x00006C8F, - 11635: 0x00006C71, - 11636: 0x00006C6F, - 11637: 0x00006C69, - 11638: 0x00006C9A, - 11639: 0x00006C6D, - 11640: 0x00006C87, - 11641: 0x00006C95, - 11642: 0x00006C9C, - 11643: 0x00006C66, - 11644: 0x00006C73, - 11645: 0x00006C65, - 11646: 0x00006C7B, - 11647: 0x00006C8E, - 11648: 0x00007074, - 11649: 0x0000707A, - 11650: 0x00007263, - 11651: 0x000072BF, - 11652: 0x000072BD, - 11653: 0x000072C3, - 11654: 0x000072C6, - 11655: 0x000072C1, - 11656: 0x000072BA, - 11657: 0x000072C5, - 11658: 0x00007395, - 11659: 0x00007397, - 11660: 0x00007393, - 11661: 0x00007394, - 11662: 0x00007392, - 11663: 0x0000753A, - 11664: 0x00007539, - 11665: 0x00007594, - 11666: 0x00007595, - 11667: 0x00007681, - 11668: 0x0000793D, - 11669: 0x00008034, - 11670: 0x00008095, - 11671: 0x00008099, - 11672: 0x00008090, - 11673: 0x00008092, - 11674: 0x0000809C, - 11675: 0x00008290, - 11676: 0x0000828F, - 11677: 0x00008285, - 11678: 0x0000828E, - 11679: 0x00008291, - 11680: 0x00008293, - 11681: 0x0000828A, - 11682: 0x00008283, - 11683: 0x00008284, - 11684: 0x00008C78, - 11685: 0x00008FC9, - 11686: 0x00008FBF, - 11687: 0x0000909F, - 11688: 0x000090A1, - 11689: 0x000090A5, - 11690: 0x0000909E, - 11691: 0x000090A7, - 11692: 0x000090A0, - 11693: 0x00009630, - 11694: 0x00009628, - 11695: 0x0000962F, - 11696: 0x0000962D, - 11697: 0x00004E33, - 11698: 0x00004F98, - 11699: 0x00004F7C, - 11700: 0x00004F85, - 11701: 0x00004F7D, - 11702: 0x00004F80, - 11703: 0x00004F87, - 11704: 0x00004F76, - 11705: 0x00004F74, - 11706: 0x00004F89, - 11707: 0x00004F84, - 11708: 0x00004F77, - 11709: 0x00004F4C, - 11710: 0x00004F97, - 11711: 0x00004F6A, - 11712: 0x00004F9A, - 11713: 0x00004F79, - 11714: 0x00004F81, - 11715: 0x00004F78, - 11716: 0x00004F90, - 11717: 0x00004F9C, - 11718: 0x00004F94, - 11719: 0x00004F9E, - 11720: 0x00004F92, - 11721: 0x00004F82, - 11722: 0x00004F95, - 11723: 0x00004F6B, - 11724: 0x00004F6E, - 11725: 0x0000519E, - 11726: 0x000051BC, - 11727: 0x000051BE, - 11728: 0x00005235, - 11729: 0x00005232, - 11730: 0x00005233, - 11731: 0x00005246, - 11732: 0x00005231, - 11733: 0x000052BC, - 11734: 0x0000530A, - 11735: 0x0000530B, - 11736: 0x0000533C, - 11737: 0x00005392, - 11738: 0x00005394, - 11739: 0x00005487, - 11740: 0x0000547F, - 11741: 0x00005481, - 11742: 0x00005491, - 11743: 0x00005482, - 11744: 0x00005488, - 11745: 0x0000546B, - 11746: 0x0000547A, - 11747: 0x0000547E, - 11748: 0x00005465, - 11749: 0x0000546C, - 11750: 0x00005474, - 11751: 0x00005466, - 11752: 0x0000548D, - 11753: 0x0000546F, - 11754: 0x00005461, - 11755: 0x00005460, - 11756: 0x00005498, - 11757: 0x00005463, - 11758: 0x00005467, - 11759: 0x00005464, - 11760: 0x000056F7, - 11761: 0x000056F9, - 11762: 0x0000576F, - 11763: 0x00005772, - 11764: 0x0000576D, - 11765: 0x0000576B, - 11766: 0x00005771, - 11767: 0x00005770, - 11768: 0x00005776, - 11769: 0x00005780, - 11770: 0x00005775, - 11771: 0x0000577B, - 11772: 0x00005773, - 11773: 0x00005774, - 11774: 0x00005762, - 11775: 0x00005768, - 11776: 0x0000577D, - 11777: 0x0000590C, - 11778: 0x00005945, - 11779: 0x000059B5, - 11780: 0x000059BA, - 11781: 0x000059CF, - 11782: 0x000059CE, - 11783: 0x000059B2, - 11784: 0x000059CC, - 11785: 0x000059C1, - 11786: 0x000059B6, - 11787: 0x000059BC, - 11788: 0x000059C3, - 11789: 0x000059D6, - 11790: 0x000059B1, - 11791: 0x000059BD, - 11792: 0x000059C0, - 11793: 0x000059C8, - 11794: 0x000059B4, - 11795: 0x000059C7, - 11796: 0x00005B62, - 11797: 0x00005B65, - 11798: 0x00005B93, - 11799: 0x00005B95, - 11800: 0x00005C44, - 11801: 0x00005C47, - 11802: 0x00005CAE, - 11803: 0x00005CA4, - 11804: 0x00005CA0, - 11805: 0x00005CB5, - 11806: 0x00005CAF, - 11807: 0x00005CA8, - 11808: 0x00005CAC, - 11809: 0x00005C9F, - 11810: 0x00005CA3, - 11811: 0x00005CAD, - 11812: 0x00005CA2, - 11813: 0x00005CAA, - 11814: 0x00005CA7, - 11815: 0x00005C9D, - 11816: 0x00005CA5, - 11817: 0x00005CB6, - 11818: 0x00005CB0, - 11819: 0x00005CA6, - 11820: 0x00005E17, - 11821: 0x00005E14, - 11822: 0x00005E19, - 11823: 0x00005F28, - 11824: 0x00005F22, - 11825: 0x00005F23, - 11826: 0x00005F24, - 11827: 0x00005F54, - 11828: 0x00005F82, - 11829: 0x00005F7E, - 11830: 0x00005F7D, - 11831: 0x00005FDE, - 11832: 0x00005FE5, - 11833: 0x0000602D, - 11834: 0x00006026, - 11835: 0x00006019, - 11836: 0x00006032, - 11837: 0x0000600B, - 11838: 0x00006034, - 11839: 0x0000600A, - 11840: 0x00006017, - 11841: 0x00006033, - 11842: 0x0000601A, - 11843: 0x0000601E, - 11844: 0x0000602C, - 11845: 0x00006022, - 11846: 0x0000600D, - 11847: 0x00006010, - 11848: 0x0000602E, - 11849: 0x00006013, - 11850: 0x00006011, - 11851: 0x0000600C, - 11852: 0x00006009, - 11853: 0x0000601C, - 11854: 0x00006214, - 11855: 0x0000623D, - 11856: 0x000062AD, - 11857: 0x000062B4, - 11858: 0x000062D1, - 11859: 0x000062BE, - 11860: 0x000062AA, - 11861: 0x000062B6, - 11862: 0x000062CA, - 11863: 0x000062AE, - 11864: 0x000062B3, - 11865: 0x000062AF, - 11866: 0x000062BB, - 11867: 0x000062A9, - 11868: 0x000062B0, - 11869: 0x000062B8, - 11870: 0x0000653D, - 11871: 0x000065A8, - 11872: 0x000065BB, - 11873: 0x00006609, - 11874: 0x000065FC, - 11875: 0x00006604, - 11876: 0x00006612, - 11877: 0x00006608, - 11878: 0x000065FB, - 11879: 0x00006603, - 11880: 0x0000660B, - 11881: 0x0000660D, - 11882: 0x00006605, - 11883: 0x000065FD, - 11884: 0x00006611, - 11885: 0x00006610, - 11886: 0x000066F6, - 11887: 0x0000670A, - 11888: 0x00006785, - 11889: 0x0000676C, - 11890: 0x0000678E, - 11891: 0x00006792, - 11892: 0x00006776, - 11893: 0x0000677B, - 11894: 0x00006798, - 11895: 0x00006786, - 11896: 0x00006784, - 11897: 0x00006774, - 11898: 0x0000678D, - 11899: 0x0000678C, - 11900: 0x0000677A, - 11901: 0x0000679F, - 11902: 0x00006791, - 11903: 0x00006799, - 11904: 0x00006783, - 11905: 0x0000677D, - 11906: 0x00006781, - 11907: 0x00006778, - 11908: 0x00006779, - 11909: 0x00006794, - 11910: 0x00006B25, - 11911: 0x00006B80, - 11912: 0x00006B7E, - 11913: 0x00006BDE, - 11914: 0x00006C1D, - 11915: 0x00006C93, - 11916: 0x00006CEC, - 11917: 0x00006CEB, - 11918: 0x00006CEE, - 11919: 0x00006CD9, - 11920: 0x00006CB6, - 11921: 0x00006CD4, - 11922: 0x00006CAD, - 11923: 0x00006CE7, - 11924: 0x00006CB7, - 11925: 0x00006CD0, - 11926: 0x00006CC2, - 11927: 0x00006CBA, - 11928: 0x00006CC3, - 11929: 0x00006CC6, - 11930: 0x00006CED, - 11931: 0x00006CF2, - 11932: 0x00006CD2, - 11933: 0x00006CDD, - 11934: 0x00006CB4, - 11935: 0x00006C8A, - 11936: 0x00006C9D, - 11937: 0x00006C80, - 11938: 0x00006CDE, - 11939: 0x00006CC0, - 11940: 0x00006D30, - 11941: 0x00006CCD, - 11942: 0x00006CC7, - 11943: 0x00006CB0, - 11944: 0x00006CF9, - 11945: 0x00006CCF, - 11946: 0x00006CE9, - 11947: 0x00006CD1, - 11948: 0x00007094, - 11949: 0x00007098, - 11950: 0x00007085, - 11951: 0x00007093, - 11952: 0x00007086, - 11953: 0x00007084, - 11954: 0x00007091, - 11955: 0x00007096, - 11956: 0x00007082, - 11957: 0x0000709A, - 11958: 0x00007083, - 11959: 0x0000726A, - 11960: 0x000072D6, - 11961: 0x000072CB, - 11962: 0x000072D8, - 11963: 0x000072C9, - 11964: 0x000072DC, - 11965: 0x000072D2, - 11966: 0x000072D4, - 11967: 0x000072DA, - 11968: 0x000072CC, - 11969: 0x000072D1, - 11970: 0x000073A4, - 11971: 0x000073A1, - 11972: 0x000073AD, - 11973: 0x000073A6, - 11974: 0x000073A2, - 11975: 0x000073A0, - 11976: 0x000073AC, - 11977: 0x0000739D, - 11978: 0x000074DD, - 11979: 0x000074E8, - 11980: 0x0000753F, - 11981: 0x00007540, - 11982: 0x0000753E, - 11983: 0x0000758C, - 11984: 0x00007598, - 11985: 0x000076AF, - 11986: 0x000076F3, - 11987: 0x000076F1, - 11988: 0x000076F0, - 11989: 0x000076F5, - 11990: 0x000077F8, - 11991: 0x000077FC, - 11992: 0x000077F9, - 11993: 0x000077FB, - 11994: 0x000077FA, - 11995: 0x000077F7, - 11996: 0x00007942, - 11997: 0x0000793F, - 11998: 0x000079C5, - 11999: 0x00007A78, - 12000: 0x00007A7B, - 12001: 0x00007AFB, - 12002: 0x00007C75, - 12003: 0x00007CFD, - 12004: 0x00008035, - 12005: 0x0000808F, - 12006: 0x000080AE, - 12007: 0x000080A3, - 12008: 0x000080B8, - 12009: 0x000080B5, - 12010: 0x000080AD, - 12011: 0x00008220, - 12012: 0x000082A0, - 12013: 0x000082C0, - 12014: 0x000082AB, - 12015: 0x0000829A, - 12016: 0x00008298, - 12017: 0x0000829B, - 12018: 0x000082B5, - 12019: 0x000082A7, - 12020: 0x000082AE, - 12021: 0x000082BC, - 12022: 0x0000829E, - 12023: 0x000082BA, - 12024: 0x000082B4, - 12025: 0x000082A8, - 12026: 0x000082A1, - 12027: 0x000082A9, - 12028: 0x000082C2, - 12029: 0x000082A4, - 12030: 0x000082C3, - 12031: 0x000082B6, - 12032: 0x000082A2, - 12033: 0x00008670, - 12034: 0x0000866F, - 12035: 0x0000866D, - 12036: 0x0000866E, - 12037: 0x00008C56, - 12038: 0x00008FD2, - 12039: 0x00008FCB, - 12040: 0x00008FD3, - 12041: 0x00008FCD, - 12042: 0x00008FD6, - 12043: 0x00008FD5, - 12044: 0x00008FD7, - 12045: 0x000090B2, - 12046: 0x000090B4, - 12047: 0x000090AF, - 12048: 0x000090B3, - 12049: 0x000090B0, - 12050: 0x00009639, - 12051: 0x0000963D, - 12052: 0x0000963C, - 12053: 0x0000963A, - 12054: 0x00009643, - 12055: 0x00004FCD, - 12056: 0x00004FC5, - 12057: 0x00004FD3, - 12058: 0x00004FB2, - 12059: 0x00004FC9, - 12060: 0x00004FCB, - 12061: 0x00004FC1, - 12062: 0x00004FD4, - 12063: 0x00004FDC, - 12064: 0x00004FD9, - 12065: 0x00004FBB, - 12066: 0x00004FB3, - 12067: 0x00004FDB, - 12068: 0x00004FC7, - 12069: 0x00004FD6, - 12070: 0x00004FBA, - 12071: 0x00004FC0, - 12072: 0x00004FB9, - 12073: 0x00004FEC, - 12074: 0x00005244, - 12075: 0x00005249, - 12076: 0x000052C0, - 12077: 0x000052C2, - 12078: 0x0000533D, - 12079: 0x0000537C, - 12080: 0x00005397, - 12081: 0x00005396, - 12082: 0x00005399, - 12083: 0x00005398, - 12084: 0x000054BA, - 12085: 0x000054A1, - 12086: 0x000054AD, - 12087: 0x000054A5, - 12088: 0x000054CF, - 12089: 0x000054C3, - 12090: 0x0000830D, - 12091: 0x000054B7, - 12092: 0x000054AE, - 12093: 0x000054D6, - 12094: 0x000054B6, - 12095: 0x000054C5, - 12096: 0x000054C6, - 12097: 0x000054A0, - 12098: 0x00005470, - 12099: 0x000054BC, - 12100: 0x000054A2, - 12101: 0x000054BE, - 12102: 0x00005472, - 12103: 0x000054DE, - 12104: 0x000054B0, - 12105: 0x000057B5, - 12106: 0x0000579E, - 12107: 0x0000579F, - 12108: 0x000057A4, - 12109: 0x0000578C, - 12110: 0x00005797, - 12111: 0x0000579D, - 12112: 0x0000579B, - 12113: 0x00005794, - 12114: 0x00005798, - 12115: 0x0000578F, - 12116: 0x00005799, - 12117: 0x000057A5, - 12118: 0x0000579A, - 12119: 0x00005795, - 12120: 0x000058F4, - 12121: 0x0000590D, - 12122: 0x00005953, - 12123: 0x000059E1, - 12124: 0x000059DE, - 12125: 0x000059EE, - 12126: 0x00005A00, - 12127: 0x000059F1, - 12128: 0x000059DD, - 12129: 0x000059FA, - 12130: 0x000059FD, - 12131: 0x000059FC, - 12132: 0x000059F6, - 12133: 0x000059E4, - 12134: 0x000059F2, - 12135: 0x000059F7, - 12136: 0x000059DB, - 12137: 0x000059E9, - 12138: 0x000059F3, - 12139: 0x000059F5, - 12140: 0x000059E0, - 12141: 0x000059FE, - 12142: 0x000059F4, - 12143: 0x000059ED, - 12144: 0x00005BA8, - 12145: 0x00005C4C, - 12146: 0x00005CD0, - 12147: 0x00005CD8, - 12148: 0x00005CCC, - 12149: 0x00005CD7, - 12150: 0x00005CCB, - 12151: 0x00005CDB, - 12152: 0x00005CDE, - 12153: 0x00005CDA, - 12154: 0x00005CC9, - 12155: 0x00005CC7, - 12156: 0x00005CCA, - 12157: 0x00005CD6, - 12158: 0x00005CD3, - 12159: 0x00005CD4, - 12160: 0x00005CCF, - 12161: 0x00005CC8, - 12162: 0x00005CC6, - 12163: 0x00005CCE, - 12164: 0x00005CDF, - 12165: 0x00005CF8, - 12166: 0x00005DF9, - 12167: 0x00005E21, - 12168: 0x00005E22, - 12169: 0x00005E23, - 12170: 0x00005E20, - 12171: 0x00005E24, - 12172: 0x00005EB0, - 12173: 0x00005EA4, - 12174: 0x00005EA2, - 12175: 0x00005E9B, - 12176: 0x00005EA3, - 12177: 0x00005EA5, - 12178: 0x00005F07, - 12179: 0x00005F2E, - 12180: 0x00005F56, - 12181: 0x00005F86, - 12182: 0x00006037, - 12183: 0x00006039, - 12184: 0x00006054, - 12185: 0x00006072, - 12186: 0x0000605E, - 12187: 0x00006045, - 12188: 0x00006053, - 12189: 0x00006047, - 12190: 0x00006049, - 12191: 0x0000605B, - 12192: 0x0000604C, - 12193: 0x00006040, - 12194: 0x00006042, - 12195: 0x0000605F, - 12196: 0x00006024, - 12197: 0x00006044, - 12198: 0x00006058, - 12199: 0x00006066, - 12200: 0x0000606E, - 12201: 0x00006242, - 12202: 0x00006243, - 12203: 0x000062CF, - 12204: 0x0000630D, - 12205: 0x0000630B, - 12206: 0x000062F5, - 12207: 0x0000630E, - 12208: 0x00006303, - 12209: 0x000062EB, - 12210: 0x000062F9, - 12211: 0x0000630F, - 12212: 0x0000630C, - 12213: 0x000062F8, - 12214: 0x000062F6, - 12215: 0x00006300, - 12216: 0x00006313, - 12217: 0x00006314, - 12218: 0x000062FA, - 12219: 0x00006315, - 12220: 0x000062FB, - 12221: 0x000062F0, - 12222: 0x00006541, - 12223: 0x00006543, - 12224: 0x000065AA, - 12225: 0x000065BF, - 12226: 0x00006636, - 12227: 0x00006621, - 12228: 0x00006632, - 12229: 0x00006635, - 12230: 0x0000661C, - 12231: 0x00006626, - 12232: 0x00006622, - 12233: 0x00006633, - 12234: 0x0000662B, - 12235: 0x0000663A, - 12236: 0x0000661D, - 12237: 0x00006634, - 12238: 0x00006639, - 12239: 0x0000662E, - 12240: 0x0000670F, - 12241: 0x00006710, - 12242: 0x000067C1, - 12243: 0x000067F2, - 12244: 0x000067C8, - 12245: 0x000067BA, - 12246: 0x000067DC, - 12247: 0x000067BB, - 12248: 0x000067F8, - 12249: 0x000067D8, - 12250: 0x000067C0, - 12251: 0x000067B7, - 12252: 0x000067C5, - 12253: 0x000067EB, - 12254: 0x000067E4, - 12255: 0x000067DF, - 12256: 0x000067B5, - 12257: 0x000067CD, - 12258: 0x000067B3, - 12259: 0x000067F7, - 12260: 0x000067F6, - 12261: 0x000067EE, - 12262: 0x000067E3, - 12263: 0x000067C2, - 12264: 0x000067B9, - 12265: 0x000067CE, - 12266: 0x000067E7, - 12267: 0x000067F0, - 12268: 0x000067B2, - 12269: 0x000067FC, - 12270: 0x000067C6, - 12271: 0x000067ED, - 12272: 0x000067CC, - 12273: 0x000067AE, - 12274: 0x000067E6, - 12275: 0x000067DB, - 12276: 0x000067FA, - 12277: 0x000067C9, - 12278: 0x000067CA, - 12279: 0x000067C3, - 12280: 0x000067EA, - 12281: 0x000067CB, - 12282: 0x00006B28, - 12283: 0x00006B82, - 12284: 0x00006B84, - 12285: 0x00006BB6, - 12286: 0x00006BD6, - 12287: 0x00006BD8, - 12288: 0x00006BE0, - 12289: 0x00006C20, - 12290: 0x00006C21, - 12291: 0x00006D28, - 12292: 0x00006D34, - 12293: 0x00006D2D, - 12294: 0x00006D1F, - 12295: 0x00006D3C, - 12296: 0x00006D3F, - 12297: 0x00006D12, - 12298: 0x00006D0A, - 12299: 0x00006CDA, - 12300: 0x00006D33, - 12301: 0x00006D04, - 12302: 0x00006D19, - 12303: 0x00006D3A, - 12304: 0x00006D1A, - 12305: 0x00006D11, - 12306: 0x00006D00, - 12307: 0x00006D1D, - 12308: 0x00006D42, - 12309: 0x00006D01, - 12310: 0x00006D18, - 12311: 0x00006D37, - 12312: 0x00006D03, - 12313: 0x00006D0F, - 12314: 0x00006D40, - 12315: 0x00006D07, - 12316: 0x00006D20, - 12317: 0x00006D2C, - 12318: 0x00006D08, - 12319: 0x00006D22, - 12320: 0x00006D09, - 12321: 0x00006D10, - 12322: 0x000070B7, - 12323: 0x0000709F, - 12324: 0x000070BE, - 12325: 0x000070B1, - 12326: 0x000070B0, - 12327: 0x000070A1, - 12328: 0x000070B4, - 12329: 0x000070B5, - 12330: 0x000070A9, - 12331: 0x00007241, - 12332: 0x00007249, - 12333: 0x0000724A, - 12334: 0x0000726C, - 12335: 0x00007270, - 12336: 0x00007273, - 12337: 0x0000726E, - 12338: 0x000072CA, - 12339: 0x000072E4, - 12340: 0x000072E8, - 12341: 0x000072EB, - 12342: 0x000072DF, - 12343: 0x000072EA, - 12344: 0x000072E6, - 12345: 0x000072E3, - 12346: 0x00007385, - 12347: 0x000073CC, - 12348: 0x000073C2, - 12349: 0x000073C8, - 12350: 0x000073C5, - 12351: 0x000073B9, - 12352: 0x000073B6, - 12353: 0x000073B5, - 12354: 0x000073B4, - 12355: 0x000073EB, - 12356: 0x000073BF, - 12357: 0x000073C7, - 12358: 0x000073BE, - 12359: 0x000073C3, - 12360: 0x000073C6, - 12361: 0x000073B8, - 12362: 0x000073CB, - 12363: 0x000074EC, - 12364: 0x000074EE, - 12365: 0x0000752E, - 12366: 0x00007547, - 12367: 0x00007548, - 12368: 0x000075A7, - 12369: 0x000075AA, - 12370: 0x00007679, - 12371: 0x000076C4, - 12372: 0x00007708, - 12373: 0x00007703, - 12374: 0x00007704, - 12375: 0x00007705, - 12376: 0x0000770A, - 12377: 0x000076F7, - 12378: 0x000076FB, - 12379: 0x000076FA, - 12380: 0x000077E7, - 12381: 0x000077E8, - 12382: 0x00007806, - 12383: 0x00007811, - 12384: 0x00007812, - 12385: 0x00007805, - 12386: 0x00007810, - 12387: 0x0000780F, - 12388: 0x0000780E, - 12389: 0x00007809, - 12390: 0x00007803, - 12391: 0x00007813, - 12392: 0x0000794A, - 12393: 0x0000794C, - 12394: 0x0000794B, - 12395: 0x00007945, - 12396: 0x00007944, - 12397: 0x000079D5, - 12398: 0x000079CD, - 12399: 0x000079CF, - 12400: 0x000079D6, - 12401: 0x000079CE, - 12402: 0x00007A80, - 12403: 0x00007A7E, - 12404: 0x00007AD1, - 12405: 0x00007B00, - 12406: 0x00007B01, - 12407: 0x00007C7A, - 12408: 0x00007C78, - 12409: 0x00007C79, - 12410: 0x00007C7F, - 12411: 0x00007C80, - 12412: 0x00007C81, - 12413: 0x00007D03, - 12414: 0x00007D08, - 12415: 0x00007D01, - 12416: 0x00007F58, - 12417: 0x00007F91, - 12418: 0x00007F8D, - 12419: 0x00007FBE, - 12420: 0x00008007, - 12421: 0x0000800E, - 12422: 0x0000800F, - 12423: 0x00008014, - 12424: 0x00008037, - 12425: 0x000080D8, - 12426: 0x000080C7, - 12427: 0x000080E0, - 12428: 0x000080D1, - 12429: 0x000080C8, - 12430: 0x000080C2, - 12431: 0x000080D0, - 12432: 0x000080C5, - 12433: 0x000080E3, - 12434: 0x000080D9, - 12435: 0x000080DC, - 12436: 0x000080CA, - 12437: 0x000080D5, - 12438: 0x000080C9, - 12439: 0x000080CF, - 12440: 0x000080D7, - 12441: 0x000080E6, - 12442: 0x000080CD, - 12443: 0x000081FF, - 12444: 0x00008221, - 12445: 0x00008294, - 12446: 0x000082D9, - 12447: 0x000082FE, - 12448: 0x000082F9, - 12449: 0x00008307, - 12450: 0x000082E8, - 12451: 0x00008300, - 12452: 0x000082D5, - 12453: 0x0000833A, - 12454: 0x000082EB, - 12455: 0x000082D6, - 12456: 0x000082F4, - 12457: 0x000082EC, - 12458: 0x000082E1, - 12459: 0x000082F2, - 12460: 0x000082F5, - 12461: 0x0000830C, - 12462: 0x000082FB, - 12463: 0x000082F6, - 12464: 0x000082F0, - 12465: 0x000082EA, - 12466: 0x000082E4, - 12467: 0x000082E0, - 12468: 0x000082FA, - 12469: 0x000082F3, - 12470: 0x000082ED, - 12471: 0x00008677, - 12472: 0x00008674, - 12473: 0x0000867C, - 12474: 0x00008673, - 12475: 0x00008841, - 12476: 0x0000884E, - 12477: 0x00008867, - 12478: 0x0000886A, - 12479: 0x00008869, - 12480: 0x000089D3, - 12481: 0x00008A04, - 12482: 0x00008A07, - 12483: 0x00008D72, - 12484: 0x00008FE3, - 12485: 0x00008FE1, - 12486: 0x00008FEE, - 12487: 0x00008FE0, - 12488: 0x000090F1, - 12489: 0x000090BD, - 12490: 0x000090BF, - 12491: 0x000090D5, - 12492: 0x000090C5, - 12493: 0x000090BE, - 12494: 0x000090C7, - 12495: 0x000090CB, - 12496: 0x000090C8, - 12497: 0x000091D4, - 12498: 0x000091D3, - 12499: 0x00009654, - 12500: 0x0000964F, - 12501: 0x00009651, - 12502: 0x00009653, - 12503: 0x0000964A, - 12504: 0x0000964E, - 12505: 0x0000501E, - 12506: 0x00005005, - 12507: 0x00005007, - 12508: 0x00005013, - 12509: 0x00005022, - 12510: 0x00005030, - 12511: 0x0000501B, - 12512: 0x00004FF5, - 12513: 0x00004FF4, - 12514: 0x00005033, - 12515: 0x00005037, - 12516: 0x0000502C, - 12517: 0x00004FF6, - 12518: 0x00004FF7, - 12519: 0x00005017, - 12520: 0x0000501C, - 12521: 0x00005020, - 12522: 0x00005027, - 12523: 0x00005035, - 12524: 0x0000502F, - 12525: 0x00005031, - 12526: 0x0000500E, - 12527: 0x0000515A, - 12528: 0x00005194, - 12529: 0x00005193, - 12530: 0x000051CA, - 12531: 0x000051C4, - 12532: 0x000051C5, - 12533: 0x000051C8, - 12534: 0x000051CE, - 12535: 0x00005261, - 12536: 0x0000525A, - 12537: 0x00005252, - 12538: 0x0000525E, - 12539: 0x0000525F, - 12540: 0x00005255, - 12541: 0x00005262, - 12542: 0x000052CD, - 12543: 0x0000530E, - 12544: 0x0000539E, - 12545: 0x00005526, - 12546: 0x000054E2, - 12547: 0x00005517, - 12548: 0x00005512, - 12549: 0x000054E7, - 12550: 0x000054F3, - 12551: 0x000054E4, - 12552: 0x0000551A, - 12553: 0x000054FF, - 12554: 0x00005504, - 12555: 0x00005508, - 12556: 0x000054EB, - 12557: 0x00005511, - 12558: 0x00005505, - 12559: 0x000054F1, - 12560: 0x0000550A, - 12561: 0x000054FB, - 12562: 0x000054F7, - 12563: 0x000054F8, - 12564: 0x000054E0, - 12565: 0x0000550E, - 12566: 0x00005503, - 12567: 0x0000550B, - 12568: 0x00005701, - 12569: 0x00005702, - 12570: 0x000057CC, - 12571: 0x00005832, - 12572: 0x000057D5, - 12573: 0x000057D2, - 12574: 0x000057BA, - 12575: 0x000057C6, - 12576: 0x000057BD, - 12577: 0x000057BC, - 12578: 0x000057B8, - 12579: 0x000057B6, - 12580: 0x000057BF, - 12581: 0x000057C7, - 12582: 0x000057D0, - 12583: 0x000057B9, - 12584: 0x000057C1, - 12585: 0x0000590E, - 12586: 0x0000594A, - 12587: 0x00005A19, - 12588: 0x00005A16, - 12589: 0x00005A2D, - 12590: 0x00005A2E, - 12591: 0x00005A15, - 12592: 0x00005A0F, - 12593: 0x00005A17, - 12594: 0x00005A0A, - 12595: 0x00005A1E, - 12596: 0x00005A33, - 12597: 0x00005B6C, - 12598: 0x00005BA7, - 12599: 0x00005BAD, - 12600: 0x00005BAC, - 12601: 0x00005C03, - 12602: 0x00005C56, - 12603: 0x00005C54, - 12604: 0x00005CEC, - 12605: 0x00005CFF, - 12606: 0x00005CEE, - 12607: 0x00005CF1, - 12608: 0x00005CF7, - 12609: 0x00005D00, - 12610: 0x00005CF9, - 12611: 0x00005E29, - 12612: 0x00005E28, - 12613: 0x00005EA8, - 12614: 0x00005EAE, - 12615: 0x00005EAA, - 12616: 0x00005EAC, - 12617: 0x00005F33, - 12618: 0x00005F30, - 12619: 0x00005F67, - 12620: 0x0000605D, - 12621: 0x0000605A, - 12622: 0x00006067, - 12623: 0x00006041, - 12624: 0x000060A2, - 12625: 0x00006088, - 12626: 0x00006080, - 12627: 0x00006092, - 12628: 0x00006081, - 12629: 0x0000609D, - 12630: 0x00006083, - 12631: 0x00006095, - 12632: 0x0000609B, - 12633: 0x00006097, - 12634: 0x00006087, - 12635: 0x0000609C, - 12636: 0x0000608E, - 12637: 0x00006219, - 12638: 0x00006246, - 12639: 0x000062F2, - 12640: 0x00006310, - 12641: 0x00006356, - 12642: 0x0000632C, - 12643: 0x00006344, - 12644: 0x00006345, - 12645: 0x00006336, - 12646: 0x00006343, - 12647: 0x000063E4, - 12648: 0x00006339, - 12649: 0x0000634B, - 12650: 0x0000634A, - 12651: 0x0000633C, - 12652: 0x00006329, - 12653: 0x00006341, - 12654: 0x00006334, - 12655: 0x00006358, - 12656: 0x00006354, - 12657: 0x00006359, - 12658: 0x0000632D, - 12659: 0x00006347, - 12660: 0x00006333, - 12661: 0x0000635A, - 12662: 0x00006351, - 12663: 0x00006338, - 12664: 0x00006357, - 12665: 0x00006340, - 12666: 0x00006348, - 12667: 0x0000654A, - 12668: 0x00006546, - 12669: 0x000065C6, - 12670: 0x000065C3, - 12671: 0x000065C4, - 12672: 0x000065C2, - 12673: 0x0000664A, - 12674: 0x0000665F, - 12675: 0x00006647, - 12676: 0x00006651, - 12677: 0x00006712, - 12678: 0x00006713, - 12679: 0x0000681F, - 12680: 0x0000681A, - 12681: 0x00006849, - 12682: 0x00006832, - 12683: 0x00006833, - 12684: 0x0000683B, - 12685: 0x0000684B, - 12686: 0x0000684F, - 12687: 0x00006816, - 12688: 0x00006831, - 12689: 0x0000681C, - 12690: 0x00006835, - 12691: 0x0000682B, - 12692: 0x0000682D, - 12693: 0x0000682F, - 12694: 0x0000684E, - 12695: 0x00006844, - 12696: 0x00006834, - 12697: 0x0000681D, - 12698: 0x00006812, - 12699: 0x00006814, - 12700: 0x00006826, - 12701: 0x00006828, - 12702: 0x0000682E, - 12703: 0x0000684D, - 12704: 0x0000683A, - 12705: 0x00006825, - 12706: 0x00006820, - 12707: 0x00006B2C, - 12708: 0x00006B2F, - 12709: 0x00006B2D, - 12710: 0x00006B31, - 12711: 0x00006B34, - 12712: 0x00006B6D, - 12713: 0x00008082, - 12714: 0x00006B88, - 12715: 0x00006BE6, - 12716: 0x00006BE4, - 12717: 0x00006BE8, - 12718: 0x00006BE3, - 12719: 0x00006BE2, - 12720: 0x00006BE7, - 12721: 0x00006C25, - 12722: 0x00006D7A, - 12723: 0x00006D63, - 12724: 0x00006D64, - 12725: 0x00006D76, - 12726: 0x00006D0D, - 12727: 0x00006D61, - 12728: 0x00006D92, - 12729: 0x00006D58, - 12730: 0x00006D62, - 12731: 0x00006D6D, - 12732: 0x00006D6F, - 12733: 0x00006D91, - 12734: 0x00006D8D, - 12735: 0x00006DEF, - 12736: 0x00006D7F, - 12737: 0x00006D86, - 12738: 0x00006D5E, - 12739: 0x00006D67, - 12740: 0x00006D60, - 12741: 0x00006D97, - 12742: 0x00006D70, - 12743: 0x00006D7C, - 12744: 0x00006D5F, - 12745: 0x00006D82, - 12746: 0x00006D98, - 12747: 0x00006D2F, - 12748: 0x00006D68, - 12749: 0x00006D8B, - 12750: 0x00006D7E, - 12751: 0x00006D80, - 12752: 0x00006D84, - 12753: 0x00006D16, - 12754: 0x00006D83, - 12755: 0x00006D7B, - 12756: 0x00006D7D, - 12757: 0x00006D75, - 12758: 0x00006D90, - 12759: 0x000070DC, - 12760: 0x000070D3, - 12761: 0x000070D1, - 12762: 0x000070DD, - 12763: 0x000070CB, - 12764: 0x00007F39, - 12765: 0x000070E2, - 12766: 0x000070D7, - 12767: 0x000070D2, - 12768: 0x000070DE, - 12769: 0x000070E0, - 12770: 0x000070D4, - 12771: 0x000070CD, - 12772: 0x000070C5, - 12773: 0x000070C6, - 12774: 0x000070C7, - 12775: 0x000070DA, - 12776: 0x000070CE, - 12777: 0x000070E1, - 12778: 0x00007242, - 12779: 0x00007278, - 12780: 0x00007277, - 12781: 0x00007276, - 12782: 0x00007300, - 12783: 0x000072FA, - 12784: 0x000072F4, - 12785: 0x000072FE, - 12786: 0x000072F6, - 12787: 0x000072F3, - 12788: 0x000072FB, - 12789: 0x00007301, - 12790: 0x000073D3, - 12791: 0x000073D9, - 12792: 0x000073E5, - 12793: 0x000073D6, - 12794: 0x000073BC, - 12795: 0x000073E7, - 12796: 0x000073E3, - 12797: 0x000073E9, - 12798: 0x000073DC, - 12799: 0x000073D2, - 12800: 0x000073DB, - 12801: 0x000073D4, - 12802: 0x000073DD, - 12803: 0x000073DA, - 12804: 0x000073D7, - 12805: 0x000073D8, - 12806: 0x000073E8, - 12807: 0x000074DE, - 12808: 0x000074DF, - 12809: 0x000074F4, - 12810: 0x000074F5, - 12811: 0x00007521, - 12812: 0x0000755B, - 12813: 0x0000755F, - 12814: 0x000075B0, - 12815: 0x000075C1, - 12816: 0x000075BB, - 12817: 0x000075C4, - 12818: 0x000075C0, - 12819: 0x000075BF, - 12820: 0x000075B6, - 12821: 0x000075BA, - 12822: 0x0000768A, - 12823: 0x000076C9, - 12824: 0x0000771D, - 12825: 0x0000771B, - 12826: 0x00007710, - 12827: 0x00007713, - 12828: 0x00007712, - 12829: 0x00007723, - 12830: 0x00007711, - 12831: 0x00007715, - 12832: 0x00007719, - 12833: 0x0000771A, - 12834: 0x00007722, - 12835: 0x00007727, - 12836: 0x00007823, - 12837: 0x0000782C, - 12838: 0x00007822, - 12839: 0x00007835, - 12840: 0x0000782F, - 12841: 0x00007828, - 12842: 0x0000782E, - 12843: 0x0000782B, - 12844: 0x00007821, - 12845: 0x00007829, - 12846: 0x00007833, - 12847: 0x0000782A, - 12848: 0x00007831, - 12849: 0x00007954, - 12850: 0x0000795B, - 12851: 0x0000794F, - 12852: 0x0000795C, - 12853: 0x00007953, - 12854: 0x00007952, - 12855: 0x00007951, - 12856: 0x000079EB, - 12857: 0x000079EC, - 12858: 0x000079E0, - 12859: 0x000079EE, - 12860: 0x000079ED, - 12861: 0x000079EA, - 12862: 0x000079DC, - 12863: 0x000079DE, - 12864: 0x000079DD, - 12865: 0x00007A86, - 12866: 0x00007A89, - 12867: 0x00007A85, - 12868: 0x00007A8B, - 12869: 0x00007A8C, - 12870: 0x00007A8A, - 12871: 0x00007A87, - 12872: 0x00007AD8, - 12873: 0x00007B10, - 12874: 0x00007B04, - 12875: 0x00007B13, - 12876: 0x00007B05, - 12877: 0x00007B0F, - 12878: 0x00007B08, - 12879: 0x00007B0A, - 12880: 0x00007B0E, - 12881: 0x00007B09, - 12882: 0x00007B12, - 12883: 0x00007C84, - 12884: 0x00007C91, - 12885: 0x00007C8A, - 12886: 0x00007C8C, - 12887: 0x00007C88, - 12888: 0x00007C8D, - 12889: 0x00007C85, - 12890: 0x00007D1E, - 12891: 0x00007D1D, - 12892: 0x00007D11, - 12893: 0x00007D0E, - 12894: 0x00007D18, - 12895: 0x00007D16, - 12896: 0x00007D13, - 12897: 0x00007D1F, - 12898: 0x00007D12, - 12899: 0x00007D0F, - 12900: 0x00007D0C, - 12901: 0x00007F5C, - 12902: 0x00007F61, - 12903: 0x00007F5E, - 12904: 0x00007F60, - 12905: 0x00007F5D, - 12906: 0x00007F5B, - 12907: 0x00007F96, - 12908: 0x00007F92, - 12909: 0x00007FC3, - 12910: 0x00007FC2, - 12911: 0x00007FC0, - 12912: 0x00008016, - 12913: 0x0000803E, - 12914: 0x00008039, - 12915: 0x000080FA, - 12916: 0x000080F2, - 12917: 0x000080F9, - 12918: 0x000080F5, - 12919: 0x00008101, - 12920: 0x000080FB, - 12921: 0x00008100, - 12922: 0x00008201, - 12923: 0x0000822F, - 12924: 0x00008225, - 12925: 0x00008333, - 12926: 0x0000832D, - 12927: 0x00008344, - 12928: 0x00008319, - 12929: 0x00008351, - 12930: 0x00008325, - 12931: 0x00008356, - 12932: 0x0000833F, - 12933: 0x00008341, - 12934: 0x00008326, - 12935: 0x0000831C, - 12936: 0x00008322, - 12937: 0x00008342, - 12938: 0x0000834E, - 12939: 0x0000831B, - 12940: 0x0000832A, - 12941: 0x00008308, - 12942: 0x0000833C, - 12943: 0x0000834D, - 12944: 0x00008316, - 12945: 0x00008324, - 12946: 0x00008320, - 12947: 0x00008337, - 12948: 0x0000832F, - 12949: 0x00008329, - 12950: 0x00008347, - 12951: 0x00008345, - 12952: 0x0000834C, - 12953: 0x00008353, - 12954: 0x0000831E, - 12955: 0x0000832C, - 12956: 0x0000834B, - 12957: 0x00008327, - 12958: 0x00008348, - 12959: 0x00008653, - 12960: 0x00008652, - 12961: 0x000086A2, - 12962: 0x000086A8, - 12963: 0x00008696, - 12964: 0x0000868D, - 12965: 0x00008691, - 12966: 0x0000869E, - 12967: 0x00008687, - 12968: 0x00008697, - 12969: 0x00008686, - 12970: 0x0000868B, - 12971: 0x0000869A, - 12972: 0x00008685, - 12973: 0x000086A5, - 12974: 0x00008699, - 12975: 0x000086A1, - 12976: 0x000086A7, - 12977: 0x00008695, - 12978: 0x00008698, - 12979: 0x0000868E, - 12980: 0x0000869D, - 12981: 0x00008690, - 12982: 0x00008694, - 12983: 0x00008843, - 12984: 0x00008844, - 12985: 0x0000886D, - 12986: 0x00008875, - 12987: 0x00008876, - 12988: 0x00008872, - 12989: 0x00008880, - 12990: 0x00008871, - 12991: 0x0000887F, - 12992: 0x0000886F, - 12993: 0x00008883, - 12994: 0x0000887E, - 12995: 0x00008874, - 12996: 0x0000887C, - 12997: 0x00008A12, - 12998: 0x00008C47, - 12999: 0x00008C57, - 13000: 0x00008C7B, - 13001: 0x00008CA4, - 13002: 0x00008CA3, - 13003: 0x00008D76, - 13004: 0x00008D78, - 13005: 0x00008DB5, - 13006: 0x00008DB7, - 13007: 0x00008DB6, - 13008: 0x00008ED1, - 13009: 0x00008ED3, - 13010: 0x00008FFE, - 13011: 0x00008FF5, - 13012: 0x00009002, - 13013: 0x00008FFF, - 13014: 0x00008FFB, - 13015: 0x00009004, - 13016: 0x00008FFC, - 13017: 0x00008FF6, - 13018: 0x000090D6, - 13019: 0x000090E0, - 13020: 0x000090D9, - 13021: 0x000090DA, - 13022: 0x000090E3, - 13023: 0x000090DF, - 13024: 0x000090E5, - 13025: 0x000090D8, - 13026: 0x000090DB, - 13027: 0x000090D7, - 13028: 0x000090DC, - 13029: 0x000090E4, - 13030: 0x00009150, - 13031: 0x0000914E, - 13032: 0x0000914F, - 13033: 0x000091D5, - 13034: 0x000091E2, - 13035: 0x000091DA, - 13036: 0x0000965C, - 13037: 0x0000965F, - 13038: 0x000096BC, - 13039: 0x000098E3, - 13040: 0x00009ADF, - 13041: 0x00009B2F, - 13042: 0x00004E7F, - 13043: 0x00005070, - 13044: 0x0000506A, - 13045: 0x00005061, - 13046: 0x0000505E, - 13047: 0x00005060, - 13048: 0x00005053, - 13049: 0x0000504B, - 13050: 0x0000505D, - 13051: 0x00005072, - 13052: 0x00005048, - 13053: 0x0000504D, - 13054: 0x00005041, - 13055: 0x0000505B, - 13056: 0x0000504A, - 13057: 0x00005062, - 13058: 0x00005015, - 13059: 0x00005045, - 13060: 0x0000505F, - 13061: 0x00005069, - 13062: 0x0000506B, - 13063: 0x00005063, - 13064: 0x00005064, - 13065: 0x00005046, - 13066: 0x00005040, - 13067: 0x0000506E, - 13068: 0x00005073, - 13069: 0x00005057, - 13070: 0x00005051, - 13071: 0x000051D0, - 13072: 0x0000526B, - 13073: 0x0000526D, - 13074: 0x0000526C, - 13075: 0x0000526E, - 13076: 0x000052D6, - 13077: 0x000052D3, - 13078: 0x0000532D, - 13079: 0x0000539C, - 13080: 0x00005575, - 13081: 0x00005576, - 13082: 0x0000553C, - 13083: 0x0000554D, - 13084: 0x00005550, - 13085: 0x00005534, - 13086: 0x0000552A, - 13087: 0x00005551, - 13088: 0x00005562, - 13089: 0x00005536, - 13090: 0x00005535, - 13091: 0x00005530, - 13092: 0x00005552, - 13093: 0x00005545, - 13094: 0x0000550C, - 13095: 0x00005532, - 13096: 0x00005565, - 13097: 0x0000554E, - 13098: 0x00005539, - 13099: 0x00005548, - 13100: 0x0000552D, - 13101: 0x0000553B, - 13102: 0x00005540, - 13103: 0x0000554B, - 13104: 0x0000570A, - 13105: 0x00005707, - 13106: 0x000057FB, - 13107: 0x00005814, - 13108: 0x000057E2, - 13109: 0x000057F6, - 13110: 0x000057DC, - 13111: 0x000057F4, - 13112: 0x00005800, - 13113: 0x000057ED, - 13114: 0x000057FD, - 13115: 0x00005808, - 13116: 0x000057F8, - 13117: 0x0000580B, - 13118: 0x000057F3, - 13119: 0x000057CF, - 13120: 0x00005807, - 13121: 0x000057EE, - 13122: 0x000057E3, - 13123: 0x000057F2, - 13124: 0x000057E5, - 13125: 0x000057EC, - 13126: 0x000057E1, - 13127: 0x0000580E, - 13128: 0x000057FC, - 13129: 0x00005810, - 13130: 0x000057E7, - 13131: 0x00005801, - 13132: 0x0000580C, - 13133: 0x000057F1, - 13134: 0x000057E9, - 13135: 0x000057F0, - 13136: 0x0000580D, - 13137: 0x00005804, - 13138: 0x0000595C, - 13139: 0x00005A60, - 13140: 0x00005A58, - 13141: 0x00005A55, - 13142: 0x00005A67, - 13143: 0x00005A5E, - 13144: 0x00005A38, - 13145: 0x00005A35, - 13146: 0x00005A6D, - 13147: 0x00005A50, - 13148: 0x00005A5F, - 13149: 0x00005A65, - 13150: 0x00005A6C, - 13151: 0x00005A53, - 13152: 0x00005A64, - 13153: 0x00005A57, - 13154: 0x00005A43, - 13155: 0x00005A5D, - 13156: 0x00005A52, - 13157: 0x00005A44, - 13158: 0x00005A5B, - 13159: 0x00005A48, - 13160: 0x00005A8E, - 13161: 0x00005A3E, - 13162: 0x00005A4D, - 13163: 0x00005A39, - 13164: 0x00005A4C, - 13165: 0x00005A70, - 13166: 0x00005A69, - 13167: 0x00005A47, - 13168: 0x00005A51, - 13169: 0x00005A56, - 13170: 0x00005A42, - 13171: 0x00005A5C, - 13172: 0x00005B72, - 13173: 0x00005B6E, - 13174: 0x00005BC1, - 13175: 0x00005BC0, - 13176: 0x00005C59, - 13177: 0x00005D1E, - 13178: 0x00005D0B, - 13179: 0x00005D1D, - 13180: 0x00005D1A, - 13181: 0x00005D20, - 13182: 0x00005D0C, - 13183: 0x00005D28, - 13184: 0x00005D0D, - 13185: 0x00005D26, - 13186: 0x00005D25, - 13187: 0x00005D0F, - 13188: 0x00005D30, - 13189: 0x00005D12, - 13190: 0x00005D23, - 13191: 0x00005D1F, - 13192: 0x00005D2E, - 13193: 0x00005E3E, - 13194: 0x00005E34, - 13195: 0x00005EB1, - 13196: 0x00005EB4, - 13197: 0x00005EB9, - 13198: 0x00005EB2, - 13199: 0x00005EB3, - 13200: 0x00005F36, - 13201: 0x00005F38, - 13202: 0x00005F9B, - 13203: 0x00005F96, - 13204: 0x00005F9F, - 13205: 0x0000608A, - 13206: 0x00006090, - 13207: 0x00006086, - 13208: 0x000060BE, - 13209: 0x000060B0, - 13210: 0x000060BA, - 13211: 0x000060D3, - 13212: 0x000060D4, - 13213: 0x000060CF, - 13214: 0x000060E4, - 13215: 0x000060D9, - 13216: 0x000060DD, - 13217: 0x000060C8, - 13218: 0x000060B1, - 13219: 0x000060DB, - 13220: 0x000060B7, - 13221: 0x000060CA, - 13222: 0x000060BF, - 13223: 0x000060C3, - 13224: 0x000060CD, - 13225: 0x000060C0, - 13226: 0x00006332, - 13227: 0x00006365, - 13228: 0x0000638A, - 13229: 0x00006382, - 13230: 0x0000637D, - 13231: 0x000063BD, - 13232: 0x0000639E, - 13233: 0x000063AD, - 13234: 0x0000639D, - 13235: 0x00006397, - 13236: 0x000063AB, - 13237: 0x0000638E, - 13238: 0x0000636F, - 13239: 0x00006387, - 13240: 0x00006390, - 13241: 0x0000636E, - 13242: 0x000063AF, - 13243: 0x00006375, - 13244: 0x0000639C, - 13245: 0x0000636D, - 13246: 0x000063AE, - 13247: 0x0000637C, - 13248: 0x000063A4, - 13249: 0x0000633B, - 13250: 0x0000639F, - 13251: 0x00006378, - 13252: 0x00006385, - 13253: 0x00006381, - 13254: 0x00006391, - 13255: 0x0000638D, - 13256: 0x00006370, - 13257: 0x00006553, - 13258: 0x000065CD, - 13259: 0x00006665, - 13260: 0x00006661, - 13261: 0x0000665B, - 13262: 0x00006659, - 13263: 0x0000665C, - 13264: 0x00006662, - 13265: 0x00006718, - 13266: 0x00006879, - 13267: 0x00006887, - 13268: 0x00006890, - 13269: 0x0000689C, - 13270: 0x0000686D, - 13271: 0x0000686E, - 13272: 0x000068AE, - 13273: 0x000068AB, - 13274: 0x00006956, - 13275: 0x0000686F, - 13276: 0x000068A3, - 13277: 0x000068AC, - 13278: 0x000068A9, - 13279: 0x00006875, - 13280: 0x00006874, - 13281: 0x000068B2, - 13282: 0x0000688F, - 13283: 0x00006877, - 13284: 0x00006892, - 13285: 0x0000687C, - 13286: 0x0000686B, - 13287: 0x00006872, - 13288: 0x000068AA, - 13289: 0x00006880, - 13290: 0x00006871, - 13291: 0x0000687E, - 13292: 0x0000689B, - 13293: 0x00006896, - 13294: 0x0000688B, - 13295: 0x000068A0, - 13296: 0x00006889, - 13297: 0x000068A4, - 13298: 0x00006878, - 13299: 0x0000687B, - 13300: 0x00006891, - 13301: 0x0000688C, - 13302: 0x0000688A, - 13303: 0x0000687D, - 13304: 0x00006B36, - 13305: 0x00006B33, - 13306: 0x00006B37, - 13307: 0x00006B38, - 13308: 0x00006B91, - 13309: 0x00006B8F, - 13310: 0x00006B8D, - 13311: 0x00006B8E, - 13312: 0x00006B8C, - 13313: 0x00006C2A, - 13314: 0x00006DC0, - 13315: 0x00006DAB, - 13316: 0x00006DB4, - 13317: 0x00006DB3, - 13318: 0x00006E74, - 13319: 0x00006DAC, - 13320: 0x00006DE9, - 13321: 0x00006DE2, - 13322: 0x00006DB7, - 13323: 0x00006DF6, - 13324: 0x00006DD4, - 13325: 0x00006E00, - 13326: 0x00006DC8, - 13327: 0x00006DE0, - 13328: 0x00006DDF, - 13329: 0x00006DD6, - 13330: 0x00006DBE, - 13331: 0x00006DE5, - 13332: 0x00006DDC, - 13333: 0x00006DDD, - 13334: 0x00006DDB, - 13335: 0x00006DF4, - 13336: 0x00006DCA, - 13337: 0x00006DBD, - 13338: 0x00006DED, - 13339: 0x00006DF0, - 13340: 0x00006DBA, - 13341: 0x00006DD5, - 13342: 0x00006DC2, - 13343: 0x00006DCF, - 13344: 0x00006DC9, - 13345: 0x00006DD0, - 13346: 0x00006DF2, - 13347: 0x00006DD3, - 13348: 0x00006DFD, - 13349: 0x00006DD7, - 13350: 0x00006DCD, - 13351: 0x00006DE3, - 13352: 0x00006DBB, - 13353: 0x000070FA, - 13354: 0x0000710D, - 13355: 0x000070F7, - 13356: 0x00007117, - 13357: 0x000070F4, - 13358: 0x0000710C, - 13359: 0x000070F0, - 13360: 0x00007104, - 13361: 0x000070F3, - 13362: 0x00007110, - 13363: 0x000070FC, - 13364: 0x000070FF, - 13365: 0x00007106, - 13366: 0x00007113, - 13367: 0x00007100, - 13368: 0x000070F8, - 13369: 0x000070F6, - 13370: 0x0000710B, - 13371: 0x00007102, - 13372: 0x0000710E, - 13373: 0x0000727E, - 13374: 0x0000727B, - 13375: 0x0000727C, - 13376: 0x0000727F, - 13377: 0x0000731D, - 13378: 0x00007317, - 13379: 0x00007307, - 13380: 0x00007311, - 13381: 0x00007318, - 13382: 0x0000730A, - 13383: 0x00007308, - 13384: 0x000072FF, - 13385: 0x0000730F, - 13386: 0x0000731E, - 13387: 0x00007388, - 13388: 0x000073F6, - 13389: 0x000073F8, - 13390: 0x000073F5, - 13391: 0x00007404, - 13392: 0x00007401, - 13393: 0x000073FD, - 13394: 0x00007407, - 13395: 0x00007400, - 13396: 0x000073FA, - 13397: 0x000073FC, - 13398: 0x000073FF, - 13399: 0x0000740C, - 13400: 0x0000740B, - 13401: 0x000073F4, - 13402: 0x00007408, - 13403: 0x00007564, - 13404: 0x00007563, - 13405: 0x000075CE, - 13406: 0x000075D2, - 13407: 0x000075CF, - 13408: 0x000075CB, - 13409: 0x000075CC, - 13410: 0x000075D1, - 13411: 0x000075D0, - 13412: 0x0000768F, - 13413: 0x00007689, - 13414: 0x000076D3, - 13415: 0x00007739, - 13416: 0x0000772F, - 13417: 0x0000772D, - 13418: 0x00007731, - 13419: 0x00007732, - 13420: 0x00007734, - 13421: 0x00007733, - 13422: 0x0000773D, - 13423: 0x00007725, - 13424: 0x0000773B, - 13425: 0x00007735, - 13426: 0x00007848, - 13427: 0x00007852, - 13428: 0x00007849, - 13429: 0x0000784D, - 13430: 0x0000784A, - 13431: 0x0000784C, - 13432: 0x00007826, - 13433: 0x00007845, - 13434: 0x00007850, - 13435: 0x00007964, - 13436: 0x00007967, - 13437: 0x00007969, - 13438: 0x0000796A, - 13439: 0x00007963, - 13440: 0x0000796B, - 13441: 0x00007961, - 13442: 0x000079BB, - 13443: 0x000079FA, - 13444: 0x000079F8, - 13445: 0x000079F6, - 13446: 0x000079F7, - 13447: 0x00007A8F, - 13448: 0x00007A94, - 13449: 0x00007A90, - 13450: 0x00007B35, - 13451: 0x00007B47, - 13452: 0x00007B34, - 13453: 0x00007B25, - 13454: 0x00007B30, - 13455: 0x00007B22, - 13456: 0x00007B24, - 13457: 0x00007B33, - 13458: 0x00007B18, - 13459: 0x00007B2A, - 13460: 0x00007B1D, - 13461: 0x00007B31, - 13462: 0x00007B2B, - 13463: 0x00007B2D, - 13464: 0x00007B2F, - 13465: 0x00007B32, - 13466: 0x00007B38, - 13467: 0x00007B1A, - 13468: 0x00007B23, - 13469: 0x00007C94, - 13470: 0x00007C98, - 13471: 0x00007C96, - 13472: 0x00007CA3, - 13473: 0x00007D35, - 13474: 0x00007D3D, - 13475: 0x00007D38, - 13476: 0x00007D36, - 13477: 0x00007D3A, - 13478: 0x00007D45, - 13479: 0x00007D2C, - 13480: 0x00007D29, - 13481: 0x00007D41, - 13482: 0x00007D47, - 13483: 0x00007D3E, - 13484: 0x00007D3F, - 13485: 0x00007D4A, - 13486: 0x00007D3B, - 13487: 0x00007D28, - 13488: 0x00007F63, - 13489: 0x00007F95, - 13490: 0x00007F9C, - 13491: 0x00007F9D, - 13492: 0x00007F9B, - 13493: 0x00007FCA, - 13494: 0x00007FCB, - 13495: 0x00007FCD, - 13496: 0x00007FD0, - 13497: 0x00007FD1, - 13498: 0x00007FC7, - 13499: 0x00007FCF, - 13500: 0x00007FC9, - 13501: 0x0000801F, - 13502: 0x0000801E, - 13503: 0x0000801B, - 13504: 0x00008047, - 13505: 0x00008043, - 13506: 0x00008048, - 13507: 0x00008118, - 13508: 0x00008125, - 13509: 0x00008119, - 13510: 0x0000811B, - 13511: 0x0000812D, - 13512: 0x0000811F, - 13513: 0x0000812C, - 13514: 0x0000811E, - 13515: 0x00008121, - 13516: 0x00008115, - 13517: 0x00008127, - 13518: 0x0000811D, - 13519: 0x00008122, - 13520: 0x00008211, - 13521: 0x00008238, - 13522: 0x00008233, - 13523: 0x0000823A, - 13524: 0x00008234, - 13525: 0x00008232, - 13526: 0x00008274, - 13527: 0x00008390, - 13528: 0x000083A3, - 13529: 0x000083A8, - 13530: 0x0000838D, - 13531: 0x0000837A, - 13532: 0x00008373, - 13533: 0x000083A4, - 13534: 0x00008374, - 13535: 0x0000838F, - 13536: 0x00008381, - 13537: 0x00008395, - 13538: 0x00008399, - 13539: 0x00008375, - 13540: 0x00008394, - 13541: 0x000083A9, - 13542: 0x0000837D, - 13543: 0x00008383, - 13544: 0x0000838C, - 13545: 0x0000839D, - 13546: 0x0000839B, - 13547: 0x000083AA, - 13548: 0x0000838B, - 13549: 0x0000837E, - 13550: 0x000083A5, - 13551: 0x000083AF, - 13552: 0x00008388, - 13553: 0x00008397, - 13554: 0x000083B0, - 13555: 0x0000837F, - 13556: 0x000083A6, - 13557: 0x00008387, - 13558: 0x000083AE, - 13559: 0x00008376, - 13560: 0x0000839A, - 13561: 0x00008659, - 13562: 0x00008656, - 13563: 0x000086BF, - 13564: 0x000086B7, - 13565: 0x000086C2, - 13566: 0x000086C1, - 13567: 0x000086C5, - 13568: 0x000086BA, - 13569: 0x000086B0, - 13570: 0x000086C8, - 13571: 0x000086B9, - 13572: 0x000086B3, - 13573: 0x000086B8, - 13574: 0x000086CC, - 13575: 0x000086B4, - 13576: 0x000086BB, - 13577: 0x000086BC, - 13578: 0x000086C3, - 13579: 0x000086BD, - 13580: 0x000086BE, - 13581: 0x00008852, - 13582: 0x00008889, - 13583: 0x00008895, - 13584: 0x000088A8, - 13585: 0x000088A2, - 13586: 0x000088AA, - 13587: 0x0000889A, - 13588: 0x00008891, - 13589: 0x000088A1, - 13590: 0x0000889F, - 13591: 0x00008898, - 13592: 0x000088A7, - 13593: 0x00008899, - 13594: 0x0000889B, - 13595: 0x00008897, - 13596: 0x000088A4, - 13597: 0x000088AC, - 13598: 0x0000888C, - 13599: 0x00008893, - 13600: 0x0000888E, - 13601: 0x00008982, - 13602: 0x000089D6, - 13603: 0x000089D9, - 13604: 0x000089D5, - 13605: 0x00008A30, - 13606: 0x00008A27, - 13607: 0x00008A2C, - 13608: 0x00008A1E, - 13609: 0x00008C39, - 13610: 0x00008C3B, - 13611: 0x00008C5C, - 13612: 0x00008C5D, - 13613: 0x00008C7D, - 13614: 0x00008CA5, - 13615: 0x00008D7D, - 13616: 0x00008D7B, - 13617: 0x00008D79, - 13618: 0x00008DBC, - 13619: 0x00008DC2, - 13620: 0x00008DB9, - 13621: 0x00008DBF, - 13622: 0x00008DC1, - 13623: 0x00008ED8, - 13624: 0x00008EDE, - 13625: 0x00008EDD, - 13626: 0x00008EDC, - 13627: 0x00008ED7, - 13628: 0x00008EE0, - 13629: 0x00008EE1, - 13630: 0x00009024, - 13631: 0x0000900B, - 13632: 0x00009011, - 13633: 0x0000901C, - 13634: 0x0000900C, - 13635: 0x00009021, - 13636: 0x000090EF, - 13637: 0x000090EA, - 13638: 0x000090F0, - 13639: 0x000090F4, - 13640: 0x000090F2, - 13641: 0x000090F3, - 13642: 0x000090D4, - 13643: 0x000090EB, - 13644: 0x000090EC, - 13645: 0x000090E9, - 13646: 0x00009156, - 13647: 0x00009158, - 13648: 0x0000915A, - 13649: 0x00009153, - 13650: 0x00009155, - 13651: 0x000091EC, - 13652: 0x000091F4, - 13653: 0x000091F1, - 13654: 0x000091F3, - 13655: 0x000091F8, - 13656: 0x000091E4, - 13657: 0x000091F9, - 13658: 0x000091EA, - 13659: 0x000091EB, - 13660: 0x000091F7, - 13661: 0x000091E8, - 13662: 0x000091EE, - 13663: 0x0000957A, - 13664: 0x00009586, - 13665: 0x00009588, - 13666: 0x0000967C, - 13667: 0x0000966D, - 13668: 0x0000966B, - 13669: 0x00009671, - 13670: 0x0000966F, - 13671: 0x000096BF, - 13672: 0x0000976A, - 13673: 0x00009804, - 13674: 0x000098E5, - 13675: 0x00009997, - 13676: 0x0000509B, - 13677: 0x00005095, - 13678: 0x00005094, - 13679: 0x0000509E, - 13680: 0x0000508B, - 13681: 0x000050A3, - 13682: 0x00005083, - 13683: 0x0000508C, - 13684: 0x0000508E, - 13685: 0x0000509D, - 13686: 0x00005068, - 13687: 0x0000509C, - 13688: 0x00005092, - 13689: 0x00005082, - 13690: 0x00005087, - 13691: 0x0000515F, - 13692: 0x000051D4, - 13693: 0x00005312, - 13694: 0x00005311, - 13695: 0x000053A4, - 13696: 0x000053A7, - 13697: 0x00005591, - 13698: 0x000055A8, - 13699: 0x000055A5, - 13700: 0x000055AD, - 13701: 0x00005577, - 13702: 0x00005645, - 13703: 0x000055A2, - 13704: 0x00005593, - 13705: 0x00005588, - 13706: 0x0000558F, - 13707: 0x000055B5, - 13708: 0x00005581, - 13709: 0x000055A3, - 13710: 0x00005592, - 13711: 0x000055A4, - 13712: 0x0000557D, - 13713: 0x0000558C, - 13714: 0x000055A6, - 13715: 0x0000557F, - 13716: 0x00005595, - 13717: 0x000055A1, - 13718: 0x0000558E, - 13719: 0x0000570C, - 13720: 0x00005829, - 13721: 0x00005837, - 13722: 0x00005819, - 13723: 0x0000581E, - 13724: 0x00005827, - 13725: 0x00005823, - 13726: 0x00005828, - 13727: 0x000057F5, - 13728: 0x00005848, - 13729: 0x00005825, - 13730: 0x0000581C, - 13731: 0x0000581B, - 13732: 0x00005833, - 13733: 0x0000583F, - 13734: 0x00005836, - 13735: 0x0000582E, - 13736: 0x00005839, - 13737: 0x00005838, - 13738: 0x0000582D, - 13739: 0x0000582C, - 13740: 0x0000583B, - 13741: 0x00005961, - 13742: 0x00005AAF, - 13743: 0x00005A94, - 13744: 0x00005A9F, - 13745: 0x00005A7A, - 13746: 0x00005AA2, - 13747: 0x00005A9E, - 13748: 0x00005A78, - 13749: 0x00005AA6, - 13750: 0x00005A7C, - 13751: 0x00005AA5, - 13752: 0x00005AAC, - 13753: 0x00005A95, - 13754: 0x00005AAE, - 13755: 0x00005A37, - 13756: 0x00005A84, - 13757: 0x00005A8A, - 13758: 0x00005A97, - 13759: 0x00005A83, - 13760: 0x00005A8B, - 13761: 0x00005AA9, - 13762: 0x00005A7B, - 13763: 0x00005A7D, - 13764: 0x00005A8C, - 13765: 0x00005A9C, - 13766: 0x00005A8F, - 13767: 0x00005A93, - 13768: 0x00005A9D, - 13769: 0x00005BEA, - 13770: 0x00005BCD, - 13771: 0x00005BCB, - 13772: 0x00005BD4, - 13773: 0x00005BD1, - 13774: 0x00005BCA, - 13775: 0x00005BCE, - 13776: 0x00005C0C, - 13777: 0x00005C30, - 13778: 0x00005D37, - 13779: 0x00005D43, - 13780: 0x00005D6B, - 13781: 0x00005D41, - 13782: 0x00005D4B, - 13783: 0x00005D3F, - 13784: 0x00005D35, - 13785: 0x00005D51, - 13786: 0x00005D4E, - 13787: 0x00005D55, - 13788: 0x00005D33, - 13789: 0x00005D3A, - 13790: 0x00005D52, - 13791: 0x00005D3D, - 13792: 0x00005D31, - 13793: 0x00005D59, - 13794: 0x00005D42, - 13795: 0x00005D39, - 13796: 0x00005D49, - 13797: 0x00005D38, - 13798: 0x00005D3C, - 13799: 0x00005D32, - 13800: 0x00005D36, - 13801: 0x00005D40, - 13802: 0x00005D45, - 13803: 0x00005E44, - 13804: 0x00005E41, - 13805: 0x00005F58, - 13806: 0x00005FA6, - 13807: 0x00005FA5, - 13808: 0x00005FAB, - 13809: 0x000060C9, - 13810: 0x000060B9, - 13811: 0x000060CC, - 13812: 0x000060E2, - 13813: 0x000060CE, - 13814: 0x000060C4, - 13815: 0x00006114, - 13816: 0x000060F2, - 13817: 0x0000610A, - 13818: 0x00006116, - 13819: 0x00006105, - 13820: 0x000060F5, - 13821: 0x00006113, - 13822: 0x000060F8, - 13823: 0x000060FC, - 13824: 0x000060FE, - 13825: 0x000060C1, - 13826: 0x00006103, - 13827: 0x00006118, - 13828: 0x0000611D, - 13829: 0x00006110, - 13830: 0x000060FF, - 13831: 0x00006104, - 13832: 0x0000610B, - 13833: 0x0000624A, - 13834: 0x00006394, - 13835: 0x000063B1, - 13836: 0x000063B0, - 13837: 0x000063CE, - 13838: 0x000063E5, - 13839: 0x000063E8, - 13840: 0x000063EF, - 13841: 0x000063C3, - 13842: 0x0000649D, - 13843: 0x000063F3, - 13844: 0x000063CA, - 13845: 0x000063E0, - 13846: 0x000063F6, - 13847: 0x000063D5, - 13848: 0x000063F2, - 13849: 0x000063F5, - 13850: 0x00006461, - 13851: 0x000063DF, - 13852: 0x000063BE, - 13853: 0x000063DD, - 13854: 0x000063DC, - 13855: 0x000063C4, - 13856: 0x000063D8, - 13857: 0x000063D3, - 13858: 0x000063C2, - 13859: 0x000063C7, - 13860: 0x000063CC, - 13861: 0x000063CB, - 13862: 0x000063C8, - 13863: 0x000063F0, - 13864: 0x000063D7, - 13865: 0x000063D9, - 13866: 0x00006532, - 13867: 0x00006567, - 13868: 0x0000656A, - 13869: 0x00006564, - 13870: 0x0000655C, - 13871: 0x00006568, - 13872: 0x00006565, - 13873: 0x0000658C, - 13874: 0x0000659D, - 13875: 0x0000659E, - 13876: 0x000065AE, - 13877: 0x000065D0, - 13878: 0x000065D2, - 13879: 0x0000667C, - 13880: 0x0000666C, - 13881: 0x0000667B, - 13882: 0x00006680, - 13883: 0x00006671, - 13884: 0x00006679, - 13885: 0x0000666A, - 13886: 0x00006672, - 13887: 0x00006701, - 13888: 0x0000690C, - 13889: 0x000068D3, - 13890: 0x00006904, - 13891: 0x000068DC, - 13892: 0x0000692A, - 13893: 0x000068EC, - 13894: 0x000068EA, - 13895: 0x000068F1, - 13896: 0x0000690F, - 13897: 0x000068D6, - 13898: 0x000068F7, - 13899: 0x000068EB, - 13900: 0x000068E4, - 13901: 0x000068F6, - 13902: 0x00006913, - 13903: 0x00006910, - 13904: 0x000068F3, - 13905: 0x000068E1, - 13906: 0x00006907, - 13907: 0x000068CC, - 13908: 0x00006908, - 13909: 0x00006970, - 13910: 0x000068B4, - 13911: 0x00006911, - 13912: 0x000068EF, - 13913: 0x000068C6, - 13914: 0x00006914, - 13915: 0x000068F8, - 13916: 0x000068D0, - 13917: 0x000068FD, - 13918: 0x000068FC, - 13919: 0x000068E8, - 13920: 0x0000690B, - 13921: 0x0000690A, - 13922: 0x00006917, - 13923: 0x000068CE, - 13924: 0x000068C8, - 13925: 0x000068DD, - 13926: 0x000068DE, - 13927: 0x000068E6, - 13928: 0x000068F4, - 13929: 0x000068D1, - 13930: 0x00006906, - 13931: 0x000068D4, - 13932: 0x000068E9, - 13933: 0x00006915, - 13934: 0x00006925, - 13935: 0x000068C7, - 13936: 0x00006B39, - 13937: 0x00006B3B, - 13938: 0x00006B3F, - 13939: 0x00006B3C, - 13940: 0x00006B94, - 13941: 0x00006B97, - 13942: 0x00006B99, - 13943: 0x00006B95, - 13944: 0x00006BBD, - 13945: 0x00006BF0, - 13946: 0x00006BF2, - 13947: 0x00006BF3, - 13948: 0x00006C30, - 13949: 0x00006DFC, - 13950: 0x00006E46, - 13951: 0x00006E47, - 13952: 0x00006E1F, - 13953: 0x00006E49, - 13954: 0x00006E88, - 13955: 0x00006E3C, - 13956: 0x00006E3D, - 13957: 0x00006E45, - 13958: 0x00006E62, - 13959: 0x00006E2B, - 13960: 0x00006E3F, - 13961: 0x00006E41, - 13962: 0x00006E5D, - 13963: 0x00006E73, - 13964: 0x00006E1C, - 13965: 0x00006E33, - 13966: 0x00006E4B, - 13967: 0x00006E40, - 13968: 0x00006E51, - 13969: 0x00006E3B, - 13970: 0x00006E03, - 13971: 0x00006E2E, - 13972: 0x00006E5E, - 13973: 0x00006E68, - 13974: 0x00006E5C, - 13975: 0x00006E61, - 13976: 0x00006E31, - 13977: 0x00006E28, - 13978: 0x00006E60, - 13979: 0x00006E71, - 13980: 0x00006E6B, - 13981: 0x00006E39, - 13982: 0x00006E22, - 13983: 0x00006E30, - 13984: 0x00006E53, - 13985: 0x00006E65, - 13986: 0x00006E27, - 13987: 0x00006E78, - 13988: 0x00006E64, - 13989: 0x00006E77, - 13990: 0x00006E55, - 13991: 0x00006E79, - 13992: 0x00006E52, - 13993: 0x00006E66, - 13994: 0x00006E35, - 13995: 0x00006E36, - 13996: 0x00006E5A, - 13997: 0x00007120, - 13998: 0x0000711E, - 13999: 0x0000712F, - 14000: 0x000070FB, - 14001: 0x0000712E, - 14002: 0x00007131, - 14003: 0x00007123, - 14004: 0x00007125, - 14005: 0x00007122, - 14006: 0x00007132, - 14007: 0x0000711F, - 14008: 0x00007128, - 14009: 0x0000713A, - 14010: 0x0000711B, - 14011: 0x0000724B, - 14012: 0x0000725A, - 14013: 0x00007288, - 14014: 0x00007289, - 14015: 0x00007286, - 14016: 0x00007285, - 14017: 0x0000728B, - 14018: 0x00007312, - 14019: 0x0000730B, - 14020: 0x00007330, - 14021: 0x00007322, - 14022: 0x00007331, - 14023: 0x00007333, - 14024: 0x00007327, - 14025: 0x00007332, - 14026: 0x0000732D, - 14027: 0x00007326, - 14028: 0x00007323, - 14029: 0x00007335, - 14030: 0x0000730C, - 14031: 0x0000742E, - 14032: 0x0000742C, - 14033: 0x00007430, - 14034: 0x0000742B, - 14035: 0x00007416, - 14036: 0x0000741A, - 14037: 0x00007421, - 14038: 0x0000742D, - 14039: 0x00007431, - 14040: 0x00007424, - 14041: 0x00007423, - 14042: 0x0000741D, - 14043: 0x00007429, - 14044: 0x00007420, - 14045: 0x00007432, - 14046: 0x000074FB, - 14047: 0x0000752F, - 14048: 0x0000756F, - 14049: 0x0000756C, - 14050: 0x000075E7, - 14051: 0x000075DA, - 14052: 0x000075E1, - 14053: 0x000075E6, - 14054: 0x000075DD, - 14055: 0x000075DF, - 14056: 0x000075E4, - 14057: 0x000075D7, - 14058: 0x00007695, - 14059: 0x00007692, - 14060: 0x000076DA, - 14061: 0x00007746, - 14062: 0x00007747, - 14063: 0x00007744, - 14064: 0x0000774D, - 14065: 0x00007745, - 14066: 0x0000774A, - 14067: 0x0000774E, - 14068: 0x0000774B, - 14069: 0x0000774C, - 14070: 0x000077DE, - 14071: 0x000077EC, - 14072: 0x00007860, - 14073: 0x00007864, - 14074: 0x00007865, - 14075: 0x0000785C, - 14076: 0x0000786D, - 14077: 0x00007871, - 14078: 0x0000786A, - 14079: 0x0000786E, - 14080: 0x00007870, - 14081: 0x00007869, - 14082: 0x00007868, - 14083: 0x0000785E, - 14084: 0x00007862, - 14085: 0x00007974, - 14086: 0x00007973, - 14087: 0x00007972, - 14088: 0x00007970, - 14089: 0x00007A02, - 14090: 0x00007A0A, - 14091: 0x00007A03, - 14092: 0x00007A0C, - 14093: 0x00007A04, - 14094: 0x00007A99, - 14095: 0x00007AE6, - 14096: 0x00007AE4, - 14097: 0x00007B4A, - 14098: 0x00007B3B, - 14099: 0x00007B44, - 14100: 0x00007B48, - 14101: 0x00007B4C, - 14102: 0x00007B4E, - 14103: 0x00007B40, - 14104: 0x00007B58, - 14105: 0x00007B45, - 14106: 0x00007CA2, - 14107: 0x00007C9E, - 14108: 0x00007CA8, - 14109: 0x00007CA1, - 14110: 0x00007D58, - 14111: 0x00007D6F, - 14112: 0x00007D63, - 14113: 0x00007D53, - 14114: 0x00007D56, - 14115: 0x00007D67, - 14116: 0x00007D6A, - 14117: 0x00007D4F, - 14118: 0x00007D6D, - 14119: 0x00007D5C, - 14120: 0x00007D6B, - 14121: 0x00007D52, - 14122: 0x00007D54, - 14123: 0x00007D69, - 14124: 0x00007D51, - 14125: 0x00007D5F, - 14126: 0x00007D4E, - 14127: 0x00007F3E, - 14128: 0x00007F3F, - 14129: 0x00007F65, - 14130: 0x00007F66, - 14131: 0x00007FA2, - 14132: 0x00007FA0, - 14133: 0x00007FA1, - 14134: 0x00007FD7, - 14135: 0x00008051, - 14136: 0x0000804F, - 14137: 0x00008050, - 14138: 0x000080FE, - 14139: 0x000080D4, - 14140: 0x00008143, - 14141: 0x0000814A, - 14142: 0x00008152, - 14143: 0x0000814F, - 14144: 0x00008147, - 14145: 0x0000813D, - 14146: 0x0000814D, - 14147: 0x0000813A, - 14148: 0x000081E6, - 14149: 0x000081EE, - 14150: 0x000081F7, - 14151: 0x000081F8, - 14152: 0x000081F9, - 14153: 0x00008204, - 14154: 0x0000823C, - 14155: 0x0000823D, - 14156: 0x0000823F, - 14157: 0x00008275, - 14158: 0x0000833B, - 14159: 0x000083CF, - 14160: 0x000083F9, - 14161: 0x00008423, - 14162: 0x000083C0, - 14163: 0x000083E8, - 14164: 0x00008412, - 14165: 0x000083E7, - 14166: 0x000083E4, - 14167: 0x000083FC, - 14168: 0x000083F6, - 14169: 0x00008410, - 14170: 0x000083C6, - 14171: 0x000083C8, - 14172: 0x000083EB, - 14173: 0x000083E3, - 14174: 0x000083BF, - 14175: 0x00008401, - 14176: 0x000083DD, - 14177: 0x000083E5, - 14178: 0x000083D8, - 14179: 0x000083FF, - 14180: 0x000083E1, - 14181: 0x000083CB, - 14182: 0x000083CE, - 14183: 0x000083D6, - 14184: 0x000083F5, - 14185: 0x000083C9, - 14186: 0x00008409, - 14187: 0x0000840F, - 14188: 0x000083DE, - 14189: 0x00008411, - 14190: 0x00008406, - 14191: 0x000083C2, - 14192: 0x000083F3, - 14193: 0x000083D5, - 14194: 0x000083FA, - 14195: 0x000083C7, - 14196: 0x000083D1, - 14197: 0x000083EA, - 14198: 0x00008413, - 14199: 0x000083C3, - 14200: 0x000083EC, - 14201: 0x000083EE, - 14202: 0x000083C4, - 14203: 0x000083FB, - 14204: 0x000083D7, - 14205: 0x000083E2, - 14206: 0x0000841B, - 14207: 0x000083DB, - 14208: 0x000083FE, - 14209: 0x000086D8, - 14210: 0x000086E2, - 14211: 0x000086E6, - 14212: 0x000086D3, - 14213: 0x000086E3, - 14214: 0x000086DA, - 14215: 0x000086EA, - 14216: 0x000086DD, - 14217: 0x000086EB, - 14218: 0x000086DC, - 14219: 0x000086EC, - 14220: 0x000086E9, - 14221: 0x000086D7, - 14222: 0x000086E8, - 14223: 0x000086D1, - 14224: 0x00008848, - 14225: 0x00008856, - 14226: 0x00008855, - 14227: 0x000088BA, - 14228: 0x000088D7, - 14229: 0x000088B9, - 14230: 0x000088B8, - 14231: 0x000088C0, - 14232: 0x000088BE, - 14233: 0x000088B6, - 14234: 0x000088BC, - 14235: 0x000088B7, - 14236: 0x000088BD, - 14237: 0x000088B2, - 14238: 0x00008901, - 14239: 0x000088C9, - 14240: 0x00008995, - 14241: 0x00008998, - 14242: 0x00008997, - 14243: 0x000089DD, - 14244: 0x000089DA, - 14245: 0x000089DB, - 14246: 0x00008A4E, - 14247: 0x00008A4D, - 14248: 0x00008A39, - 14249: 0x00008A59, - 14250: 0x00008A40, - 14251: 0x00008A57, - 14252: 0x00008A58, - 14253: 0x00008A44, - 14254: 0x00008A45, - 14255: 0x00008A52, - 14256: 0x00008A48, - 14257: 0x00008A51, - 14258: 0x00008A4A, - 14259: 0x00008A4C, - 14260: 0x00008A4F, - 14261: 0x00008C5F, - 14262: 0x00008C81, - 14263: 0x00008C80, - 14264: 0x00008CBA, - 14265: 0x00008CBE, - 14266: 0x00008CB0, - 14267: 0x00008CB9, - 14268: 0x00008CB5, - 14269: 0x00008D84, - 14270: 0x00008D80, - 14271: 0x00008D89, - 14272: 0x00008DD8, - 14273: 0x00008DD3, - 14274: 0x00008DCD, - 14275: 0x00008DC7, - 14276: 0x00008DD6, - 14277: 0x00008DDC, - 14278: 0x00008DCF, - 14279: 0x00008DD5, - 14280: 0x00008DD9, - 14281: 0x00008DC8, - 14282: 0x00008DD7, - 14283: 0x00008DC5, - 14284: 0x00008EEF, - 14285: 0x00008EF7, - 14286: 0x00008EFA, - 14287: 0x00008EF9, - 14288: 0x00008EE6, - 14289: 0x00008EEE, - 14290: 0x00008EE5, - 14291: 0x00008EF5, - 14292: 0x00008EE7, - 14293: 0x00008EE8, - 14294: 0x00008EF6, - 14295: 0x00008EEB, - 14296: 0x00008EF1, - 14297: 0x00008EEC, - 14298: 0x00008EF4, - 14299: 0x00008EE9, - 14300: 0x0000902D, - 14301: 0x00009034, - 14302: 0x0000902F, - 14303: 0x00009106, - 14304: 0x0000912C, - 14305: 0x00009104, - 14306: 0x000090FF, - 14307: 0x000090FC, - 14308: 0x00009108, - 14309: 0x000090F9, - 14310: 0x000090FB, - 14311: 0x00009101, - 14312: 0x00009100, - 14313: 0x00009107, - 14314: 0x00009105, - 14315: 0x00009103, - 14316: 0x00009161, - 14317: 0x00009164, - 14318: 0x0000915F, - 14319: 0x00009162, - 14320: 0x00009160, - 14321: 0x00009201, - 14322: 0x0000920A, - 14323: 0x00009225, - 14324: 0x00009203, - 14325: 0x0000921A, - 14326: 0x00009226, - 14327: 0x0000920F, - 14328: 0x0000920C, - 14329: 0x00009200, - 14330: 0x00009212, - 14331: 0x000091FF, - 14332: 0x000091FD, - 14333: 0x00009206, - 14334: 0x00009204, - 14335: 0x00009227, - 14336: 0x00009202, - 14337: 0x0000921C, - 14338: 0x00009224, - 14339: 0x00009219, - 14340: 0x00009217, - 14341: 0x00009205, - 14342: 0x00009216, - 14343: 0x0000957B, - 14344: 0x0000958D, - 14345: 0x0000958C, - 14346: 0x00009590, - 14347: 0x00009687, - 14348: 0x0000967E, - 14349: 0x00009688, - 14350: 0x00009689, - 14351: 0x00009683, - 14352: 0x00009680, - 14353: 0x000096C2, - 14354: 0x000096C8, - 14355: 0x000096C3, - 14356: 0x000096F1, - 14357: 0x000096F0, - 14358: 0x0000976C, - 14359: 0x00009770, - 14360: 0x0000976E, - 14361: 0x00009807, - 14362: 0x000098A9, - 14363: 0x000098EB, - 14364: 0x00009CE6, - 14365: 0x00009EF9, - 14366: 0x00004E83, - 14367: 0x00004E84, - 14368: 0x00004EB6, - 14369: 0x000050BD, - 14370: 0x000050BF, - 14371: 0x000050C6, - 14372: 0x000050AE, - 14373: 0x000050C4, - 14374: 0x000050CA, - 14375: 0x000050B4, - 14376: 0x000050C8, - 14377: 0x000050C2, - 14378: 0x000050B0, - 14379: 0x000050C1, - 14380: 0x000050BA, - 14381: 0x000050B1, - 14382: 0x000050CB, - 14383: 0x000050C9, - 14384: 0x000050B6, - 14385: 0x000050B8, - 14386: 0x000051D7, - 14387: 0x0000527A, - 14388: 0x00005278, - 14389: 0x0000527B, - 14390: 0x0000527C, - 14391: 0x000055C3, - 14392: 0x000055DB, - 14393: 0x000055CC, - 14394: 0x000055D0, - 14395: 0x000055CB, - 14396: 0x000055CA, - 14397: 0x000055DD, - 14398: 0x000055C0, - 14399: 0x000055D4, - 14400: 0x000055C4, - 14401: 0x000055E9, - 14402: 0x000055BF, - 14403: 0x000055D2, - 14404: 0x0000558D, - 14405: 0x000055CF, - 14406: 0x000055D5, - 14407: 0x000055E2, - 14408: 0x000055D6, - 14409: 0x000055C8, - 14410: 0x000055F2, - 14411: 0x000055CD, - 14412: 0x000055D9, - 14413: 0x000055C2, - 14414: 0x00005714, - 14415: 0x00005853, - 14416: 0x00005868, - 14417: 0x00005864, - 14418: 0x0000584F, - 14419: 0x0000584D, - 14420: 0x00005849, - 14421: 0x0000586F, - 14422: 0x00005855, - 14423: 0x0000584E, - 14424: 0x0000585D, - 14425: 0x00005859, - 14426: 0x00005865, - 14427: 0x0000585B, - 14428: 0x0000583D, - 14429: 0x00005863, - 14430: 0x00005871, - 14431: 0x000058FC, - 14432: 0x00005AC7, - 14433: 0x00005AC4, - 14434: 0x00005ACB, - 14435: 0x00005ABA, - 14436: 0x00005AB8, - 14437: 0x00005AB1, - 14438: 0x00005AB5, - 14439: 0x00005AB0, - 14440: 0x00005ABF, - 14441: 0x00005AC8, - 14442: 0x00005ABB, - 14443: 0x00005AC6, - 14444: 0x00005AB7, - 14445: 0x00005AC0, - 14446: 0x00005ACA, - 14447: 0x00005AB4, - 14448: 0x00005AB6, - 14449: 0x00005ACD, - 14450: 0x00005AB9, - 14451: 0x00005A90, - 14452: 0x00005BD6, - 14453: 0x00005BD8, - 14454: 0x00005BD9, - 14455: 0x00005C1F, - 14456: 0x00005C33, - 14457: 0x00005D71, - 14458: 0x00005D63, - 14459: 0x00005D4A, - 14460: 0x00005D65, - 14461: 0x00005D72, - 14462: 0x00005D6C, - 14463: 0x00005D5E, - 14464: 0x00005D68, - 14465: 0x00005D67, - 14466: 0x00005D62, - 14467: 0x00005DF0, - 14468: 0x00005E4F, - 14469: 0x00005E4E, - 14470: 0x00005E4A, - 14471: 0x00005E4D, - 14472: 0x00005E4B, - 14473: 0x00005EC5, - 14474: 0x00005ECC, - 14475: 0x00005EC6, - 14476: 0x00005ECB, - 14477: 0x00005EC7, - 14478: 0x00005F40, - 14479: 0x00005FAF, - 14480: 0x00005FAD, - 14481: 0x000060F7, - 14482: 0x00006149, - 14483: 0x0000614A, - 14484: 0x0000612B, - 14485: 0x00006145, - 14486: 0x00006136, - 14487: 0x00006132, - 14488: 0x0000612E, - 14489: 0x00006146, - 14490: 0x0000612F, - 14491: 0x0000614F, - 14492: 0x00006129, - 14493: 0x00006140, - 14494: 0x00006220, - 14495: 0x00009168, - 14496: 0x00006223, - 14497: 0x00006225, - 14498: 0x00006224, - 14499: 0x000063C5, - 14500: 0x000063F1, - 14501: 0x000063EB, - 14502: 0x00006410, - 14503: 0x00006412, - 14504: 0x00006409, - 14505: 0x00006420, - 14506: 0x00006424, - 14507: 0x00006433, - 14508: 0x00006443, - 14509: 0x0000641F, - 14510: 0x00006415, - 14511: 0x00006418, - 14512: 0x00006439, - 14513: 0x00006437, - 14514: 0x00006422, - 14515: 0x00006423, - 14516: 0x0000640C, - 14517: 0x00006426, - 14518: 0x00006430, - 14519: 0x00006428, - 14520: 0x00006441, - 14521: 0x00006435, - 14522: 0x0000642F, - 14523: 0x0000640A, - 14524: 0x0000641A, - 14525: 0x00006440, - 14526: 0x00006425, - 14527: 0x00006427, - 14528: 0x0000640B, - 14529: 0x000063E7, - 14530: 0x0000641B, - 14531: 0x0000642E, - 14532: 0x00006421, - 14533: 0x0000640E, - 14534: 0x0000656F, - 14535: 0x00006592, - 14536: 0x000065D3, - 14537: 0x00006686, - 14538: 0x0000668C, - 14539: 0x00006695, - 14540: 0x00006690, - 14541: 0x0000668B, - 14542: 0x0000668A, - 14543: 0x00006699, - 14544: 0x00006694, - 14545: 0x00006678, - 14546: 0x00006720, - 14547: 0x00006966, - 14548: 0x0000695F, - 14549: 0x00006938, - 14550: 0x0000694E, - 14551: 0x00006962, - 14552: 0x00006971, - 14553: 0x0000693F, - 14554: 0x00006945, - 14555: 0x0000696A, - 14556: 0x00006939, - 14557: 0x00006942, - 14558: 0x00006957, - 14559: 0x00006959, - 14560: 0x0000697A, - 14561: 0x00006948, - 14562: 0x00006949, - 14563: 0x00006935, - 14564: 0x0000696C, - 14565: 0x00006933, - 14566: 0x0000693D, - 14567: 0x00006965, - 14568: 0x000068F0, - 14569: 0x00006978, - 14570: 0x00006934, - 14571: 0x00006969, - 14572: 0x00006940, - 14573: 0x0000696F, - 14574: 0x00006944, - 14575: 0x00006976, - 14576: 0x00006958, - 14577: 0x00006941, - 14578: 0x00006974, - 14579: 0x0000694C, - 14580: 0x0000693B, - 14581: 0x0000694B, - 14582: 0x00006937, - 14583: 0x0000695C, - 14584: 0x0000694F, - 14585: 0x00006951, - 14586: 0x00006932, - 14587: 0x00006952, - 14588: 0x0000692F, - 14589: 0x0000697B, - 14590: 0x0000693C, - 14591: 0x00006B46, - 14592: 0x00006B45, - 14593: 0x00006B43, - 14594: 0x00006B42, - 14595: 0x00006B48, - 14596: 0x00006B41, - 14597: 0x00006B9B, - 14598: 0x0000FA0D, - 14599: 0x00006BFB, - 14600: 0x00006BFC, - 14601: 0x00006BF9, - 14602: 0x00006BF7, - 14603: 0x00006BF8, - 14604: 0x00006E9B, - 14605: 0x00006ED6, - 14606: 0x00006EC8, - 14607: 0x00006E8F, - 14608: 0x00006EC0, - 14609: 0x00006E9F, - 14610: 0x00006E93, - 14611: 0x00006E94, - 14612: 0x00006EA0, - 14613: 0x00006EB1, - 14614: 0x00006EB9, - 14615: 0x00006EC6, - 14616: 0x00006ED2, - 14617: 0x00006EBD, - 14618: 0x00006EC1, - 14619: 0x00006E9E, - 14620: 0x00006EC9, - 14621: 0x00006EB7, - 14622: 0x00006EB0, - 14623: 0x00006ECD, - 14624: 0x00006EA6, - 14625: 0x00006ECF, - 14626: 0x00006EB2, - 14627: 0x00006EBE, - 14628: 0x00006EC3, - 14629: 0x00006EDC, - 14630: 0x00006ED8, - 14631: 0x00006E99, - 14632: 0x00006E92, - 14633: 0x00006E8E, - 14634: 0x00006E8D, - 14635: 0x00006EA4, - 14636: 0x00006EA1, - 14637: 0x00006EBF, - 14638: 0x00006EB3, - 14639: 0x00006ED0, - 14640: 0x00006ECA, - 14641: 0x00006E97, - 14642: 0x00006EAE, - 14643: 0x00006EA3, - 14644: 0x00007147, - 14645: 0x00007154, - 14646: 0x00007152, - 14647: 0x00007163, - 14648: 0x00007160, - 14649: 0x00007141, - 14650: 0x0000715D, - 14651: 0x00007162, - 14652: 0x00007172, - 14653: 0x00007178, - 14654: 0x0000716A, - 14655: 0x00007161, - 14656: 0x00007142, - 14657: 0x00007158, - 14658: 0x00007143, - 14659: 0x0000714B, - 14660: 0x00007170, - 14661: 0x0000715F, - 14662: 0x00007150, - 14663: 0x00007153, - 14664: 0x00007144, - 14665: 0x0000714D, - 14666: 0x0000715A, - 14667: 0x0000724F, - 14668: 0x0000728D, - 14669: 0x0000728C, - 14670: 0x00007291, - 14671: 0x00007290, - 14672: 0x0000728E, - 14673: 0x0000733C, - 14674: 0x00007342, - 14675: 0x0000733B, - 14676: 0x0000733A, - 14677: 0x00007340, - 14678: 0x0000734A, - 14679: 0x00007349, - 14680: 0x00007444, - 14681: 0x0000744A, - 14682: 0x0000744B, - 14683: 0x00007452, - 14684: 0x00007451, - 14685: 0x00007457, - 14686: 0x00007440, - 14687: 0x0000744F, - 14688: 0x00007450, - 14689: 0x0000744E, - 14690: 0x00007442, - 14691: 0x00007446, - 14692: 0x0000744D, - 14693: 0x00007454, - 14694: 0x000074E1, - 14695: 0x000074FF, - 14696: 0x000074FE, - 14697: 0x000074FD, - 14698: 0x0000751D, - 14699: 0x00007579, - 14700: 0x00007577, - 14701: 0x00006983, - 14702: 0x000075EF, - 14703: 0x0000760F, - 14704: 0x00007603, - 14705: 0x000075F7, - 14706: 0x000075FE, - 14707: 0x000075FC, - 14708: 0x000075F9, - 14709: 0x000075F8, - 14710: 0x00007610, - 14711: 0x000075FB, - 14712: 0x000075F6, - 14713: 0x000075ED, - 14714: 0x000075F5, - 14715: 0x000075FD, - 14716: 0x00007699, - 14717: 0x000076B5, - 14718: 0x000076DD, - 14719: 0x00007755, - 14720: 0x0000775F, - 14721: 0x00007760, - 14722: 0x00007752, - 14723: 0x00007756, - 14724: 0x0000775A, - 14725: 0x00007769, - 14726: 0x00007767, - 14727: 0x00007754, - 14728: 0x00007759, - 14729: 0x0000776D, - 14730: 0x000077E0, - 14731: 0x00007887, - 14732: 0x0000789A, - 14733: 0x00007894, - 14734: 0x0000788F, - 14735: 0x00007884, - 14736: 0x00007895, - 14737: 0x00007885, - 14738: 0x00007886, - 14739: 0x000078A1, - 14740: 0x00007883, - 14741: 0x00007879, - 14742: 0x00007899, - 14743: 0x00007880, - 14744: 0x00007896, - 14745: 0x0000787B, - 14746: 0x0000797C, - 14747: 0x00007982, - 14748: 0x0000797D, - 14749: 0x00007979, - 14750: 0x00007A11, - 14751: 0x00007A18, - 14752: 0x00007A19, - 14753: 0x00007A12, - 14754: 0x00007A17, - 14755: 0x00007A15, - 14756: 0x00007A22, - 14757: 0x00007A13, - 14758: 0x00007A1B, - 14759: 0x00007A10, - 14760: 0x00007AA3, - 14761: 0x00007AA2, - 14762: 0x00007A9E, - 14763: 0x00007AEB, - 14764: 0x00007B66, - 14765: 0x00007B64, - 14766: 0x00007B6D, - 14767: 0x00007B74, - 14768: 0x00007B69, - 14769: 0x00007B72, - 14770: 0x00007B65, - 14771: 0x00007B73, - 14772: 0x00007B71, - 14773: 0x00007B70, - 14774: 0x00007B61, - 14775: 0x00007B78, - 14776: 0x00007B76, - 14777: 0x00007B63, - 14778: 0x00007CB2, - 14779: 0x00007CB4, - 14780: 0x00007CAF, - 14781: 0x00007D88, - 14782: 0x00007D86, - 14783: 0x00007D80, - 14784: 0x00007D8D, - 14785: 0x00007D7F, - 14786: 0x00007D85, - 14787: 0x00007D7A, - 14788: 0x00007D8E, - 14789: 0x00007D7B, - 14790: 0x00007D83, - 14791: 0x00007D7C, - 14792: 0x00007D8C, - 14793: 0x00007D94, - 14794: 0x00007D84, - 14795: 0x00007D7D, - 14796: 0x00007D92, - 14797: 0x00007F6D, - 14798: 0x00007F6B, - 14799: 0x00007F67, - 14800: 0x00007F68, - 14801: 0x00007F6C, - 14802: 0x00007FA6, - 14803: 0x00007FA5, - 14804: 0x00007FA7, - 14805: 0x00007FDB, - 14806: 0x00007FDC, - 14807: 0x00008021, - 14808: 0x00008164, - 14809: 0x00008160, - 14810: 0x00008177, - 14811: 0x0000815C, - 14812: 0x00008169, - 14813: 0x0000815B, - 14814: 0x00008162, - 14815: 0x00008172, - 14816: 0x00006721, - 14817: 0x0000815E, - 14818: 0x00008176, - 14819: 0x00008167, - 14820: 0x0000816F, - 14821: 0x00008144, - 14822: 0x00008161, - 14823: 0x0000821D, - 14824: 0x00008249, - 14825: 0x00008244, - 14826: 0x00008240, - 14827: 0x00008242, - 14828: 0x00008245, - 14829: 0x000084F1, - 14830: 0x0000843F, - 14831: 0x00008456, - 14832: 0x00008476, - 14833: 0x00008479, - 14834: 0x0000848F, - 14835: 0x0000848D, - 14836: 0x00008465, - 14837: 0x00008451, - 14838: 0x00008440, - 14839: 0x00008486, - 14840: 0x00008467, - 14841: 0x00008430, - 14842: 0x0000844D, - 14843: 0x0000847D, - 14844: 0x0000845A, - 14845: 0x00008459, - 14846: 0x00008474, - 14847: 0x00008473, - 14848: 0x0000845D, - 14849: 0x00008507, - 14850: 0x0000845E, - 14851: 0x00008437, - 14852: 0x0000843A, - 14853: 0x00008434, - 14854: 0x0000847A, - 14855: 0x00008443, - 14856: 0x00008478, - 14857: 0x00008432, - 14858: 0x00008445, - 14859: 0x00008429, - 14860: 0x000083D9, - 14861: 0x0000844B, - 14862: 0x0000842F, - 14863: 0x00008442, - 14864: 0x0000842D, - 14865: 0x0000845F, - 14866: 0x00008470, - 14867: 0x00008439, - 14868: 0x0000844E, - 14869: 0x0000844C, - 14870: 0x00008452, - 14871: 0x0000846F, - 14872: 0x000084C5, - 14873: 0x0000848E, - 14874: 0x0000843B, - 14875: 0x00008447, - 14876: 0x00008436, - 14877: 0x00008433, - 14878: 0x00008468, - 14879: 0x0000847E, - 14880: 0x00008444, - 14881: 0x0000842B, - 14882: 0x00008460, - 14883: 0x00008454, - 14884: 0x0000846E, - 14885: 0x00008450, - 14886: 0x0000870B, - 14887: 0x00008704, - 14888: 0x000086F7, - 14889: 0x0000870C, - 14890: 0x000086FA, - 14891: 0x000086D6, - 14892: 0x000086F5, - 14893: 0x0000874D, - 14894: 0x000086F8, - 14895: 0x0000870E, - 14896: 0x00008709, - 14897: 0x00008701, - 14898: 0x000086F6, - 14899: 0x0000870D, - 14900: 0x00008705, - 14901: 0x000088D6, - 14902: 0x000088CB, - 14903: 0x000088CD, - 14904: 0x000088CE, - 14905: 0x000088DE, - 14906: 0x000088DB, - 14907: 0x000088DA, - 14908: 0x000088CC, - 14909: 0x000088D0, - 14910: 0x00008985, - 14911: 0x0000899B, - 14912: 0x000089DF, - 14913: 0x000089E5, - 14914: 0x000089E4, - 14915: 0x000089E1, - 14916: 0x000089E0, - 14917: 0x000089E2, - 14918: 0x000089DC, - 14919: 0x000089E6, - 14920: 0x00008A76, - 14921: 0x00008A86, - 14922: 0x00008A7F, - 14923: 0x00008A61, - 14924: 0x00008A3F, - 14925: 0x00008A77, - 14926: 0x00008A82, - 14927: 0x00008A84, - 14928: 0x00008A75, - 14929: 0x00008A83, - 14930: 0x00008A81, - 14931: 0x00008A74, - 14932: 0x00008A7A, - 14933: 0x00008C3C, - 14934: 0x00008C4B, - 14935: 0x00008C4A, - 14936: 0x00008C65, - 14937: 0x00008C64, - 14938: 0x00008C66, - 14939: 0x00008C86, - 14940: 0x00008C84, - 14941: 0x00008C85, - 14942: 0x00008CCC, - 14943: 0x00008D68, - 14944: 0x00008D69, - 14945: 0x00008D91, - 14946: 0x00008D8C, - 14947: 0x00008D8E, - 14948: 0x00008D8F, - 14949: 0x00008D8D, - 14950: 0x00008D93, - 14951: 0x00008D94, - 14952: 0x00008D90, - 14953: 0x00008D92, - 14954: 0x00008DF0, - 14955: 0x00008DE0, - 14956: 0x00008DEC, - 14957: 0x00008DF1, - 14958: 0x00008DEE, - 14959: 0x00008DD0, - 14960: 0x00008DE9, - 14961: 0x00008DE3, - 14962: 0x00008DE2, - 14963: 0x00008DE7, - 14964: 0x00008DF2, - 14965: 0x00008DEB, - 14966: 0x00008DF4, - 14967: 0x00008F06, - 14968: 0x00008EFF, - 14969: 0x00008F01, - 14970: 0x00008F00, - 14971: 0x00008F05, - 14972: 0x00008F07, - 14973: 0x00008F08, - 14974: 0x00008F02, - 14975: 0x00008F0B, - 14976: 0x00009052, - 14977: 0x0000903F, - 14978: 0x00009044, - 14979: 0x00009049, - 14980: 0x0000903D, - 14981: 0x00009110, - 14982: 0x0000910D, - 14983: 0x0000910F, - 14984: 0x00009111, - 14985: 0x00009116, - 14986: 0x00009114, - 14987: 0x0000910B, - 14988: 0x0000910E, - 14989: 0x0000916E, - 14990: 0x0000916F, - 14991: 0x00009248, - 14992: 0x00009252, - 14993: 0x00009230, - 14994: 0x0000923A, - 14995: 0x00009266, - 14996: 0x00009233, - 14997: 0x00009265, - 14998: 0x0000925E, - 14999: 0x00009283, - 15000: 0x0000922E, - 15001: 0x0000924A, - 15002: 0x00009246, - 15003: 0x0000926D, - 15004: 0x0000926C, - 15005: 0x0000924F, - 15006: 0x00009260, - 15007: 0x00009267, - 15008: 0x0000926F, - 15009: 0x00009236, - 15010: 0x00009261, - 15011: 0x00009270, - 15012: 0x00009231, - 15013: 0x00009254, - 15014: 0x00009263, - 15015: 0x00009250, - 15016: 0x00009272, - 15017: 0x0000924E, - 15018: 0x00009253, - 15019: 0x0000924C, - 15020: 0x00009256, - 15021: 0x00009232, - 15022: 0x0000959F, - 15023: 0x0000959C, - 15024: 0x0000959E, - 15025: 0x0000959B, - 15026: 0x00009692, - 15027: 0x00009693, - 15028: 0x00009691, - 15029: 0x00009697, - 15030: 0x000096CE, - 15031: 0x000096FA, - 15032: 0x000096FD, - 15033: 0x000096F8, - 15034: 0x000096F5, - 15035: 0x00009773, - 15036: 0x00009777, - 15037: 0x00009778, - 15038: 0x00009772, - 15039: 0x0000980F, - 15040: 0x0000980D, - 15041: 0x0000980E, - 15042: 0x000098AC, - 15043: 0x000098F6, - 15044: 0x000098F9, - 15045: 0x000099AF, - 15046: 0x000099B2, - 15047: 0x000099B0, - 15048: 0x000099B5, - 15049: 0x00009AAD, - 15050: 0x00009AAB, - 15051: 0x00009B5B, - 15052: 0x00009CEA, - 15053: 0x00009CED, - 15054: 0x00009CE7, - 15055: 0x00009E80, - 15056: 0x00009EFD, - 15057: 0x000050E6, - 15058: 0x000050D4, - 15059: 0x000050D7, - 15060: 0x000050E8, - 15061: 0x000050F3, - 15062: 0x000050DB, - 15063: 0x000050EA, - 15064: 0x000050DD, - 15065: 0x000050E4, - 15066: 0x000050D3, - 15067: 0x000050EC, - 15068: 0x000050F0, - 15069: 0x000050EF, - 15070: 0x000050E3, - 15071: 0x000050E0, - 15072: 0x000051D8, - 15073: 0x00005280, - 15074: 0x00005281, - 15075: 0x000052E9, - 15076: 0x000052EB, - 15077: 0x00005330, - 15078: 0x000053AC, - 15079: 0x00005627, - 15080: 0x00005615, - 15081: 0x0000560C, - 15082: 0x00005612, - 15083: 0x000055FC, - 15084: 0x0000560F, - 15085: 0x0000561C, - 15086: 0x00005601, - 15087: 0x00005613, - 15088: 0x00005602, - 15089: 0x000055FA, - 15090: 0x0000561D, - 15091: 0x00005604, - 15092: 0x000055FF, - 15093: 0x000055F9, - 15094: 0x00005889, - 15095: 0x0000587C, - 15096: 0x00005890, - 15097: 0x00005898, - 15098: 0x00005886, - 15099: 0x00005881, - 15100: 0x0000587F, - 15101: 0x00005874, - 15102: 0x0000588B, - 15103: 0x0000587A, - 15104: 0x00005887, - 15105: 0x00005891, - 15106: 0x0000588E, - 15107: 0x00005876, - 15108: 0x00005882, - 15109: 0x00005888, - 15110: 0x0000587B, - 15111: 0x00005894, - 15112: 0x0000588F, - 15113: 0x000058FE, - 15114: 0x0000596B, - 15115: 0x00005ADC, - 15116: 0x00005AEE, - 15117: 0x00005AE5, - 15118: 0x00005AD5, - 15119: 0x00005AEA, - 15120: 0x00005ADA, - 15121: 0x00005AED, - 15122: 0x00005AEB, - 15123: 0x00005AF3, - 15124: 0x00005AE2, - 15125: 0x00005AE0, - 15126: 0x00005ADB, - 15127: 0x00005AEC, - 15128: 0x00005ADE, - 15129: 0x00005ADD, - 15130: 0x00005AD9, - 15131: 0x00005AE8, - 15132: 0x00005ADF, - 15133: 0x00005B77, - 15134: 0x00005BE0, - 15135: 0x00005BE3, - 15136: 0x00005C63, - 15137: 0x00005D82, - 15138: 0x00005D80, - 15139: 0x00005D7D, - 15140: 0x00005D86, - 15141: 0x00005D7A, - 15142: 0x00005D81, - 15143: 0x00005D77, - 15144: 0x00005D8A, - 15145: 0x00005D89, - 15146: 0x00005D88, - 15147: 0x00005D7E, - 15148: 0x00005D7C, - 15149: 0x00005D8D, - 15150: 0x00005D79, - 15151: 0x00005D7F, - 15152: 0x00005E58, - 15153: 0x00005E59, - 15154: 0x00005E53, - 15155: 0x00005ED8, - 15156: 0x00005ED1, - 15157: 0x00005ED7, - 15158: 0x00005ECE, - 15159: 0x00005EDC, - 15160: 0x00005ED5, - 15161: 0x00005ED9, - 15162: 0x00005ED2, - 15163: 0x00005ED4, - 15164: 0x00005F44, - 15165: 0x00005F43, - 15166: 0x00005F6F, - 15167: 0x00005FB6, - 15168: 0x0000612C, - 15169: 0x00006128, - 15170: 0x00006141, - 15171: 0x0000615E, - 15172: 0x00006171, - 15173: 0x00006173, - 15174: 0x00006152, - 15175: 0x00006153, - 15176: 0x00006172, - 15177: 0x0000616C, - 15178: 0x00006180, - 15179: 0x00006174, - 15180: 0x00006154, - 15181: 0x0000617A, - 15182: 0x0000615B, - 15183: 0x00006165, - 15184: 0x0000613B, - 15185: 0x0000616A, - 15186: 0x00006161, - 15187: 0x00006156, - 15188: 0x00006229, - 15189: 0x00006227, - 15190: 0x0000622B, - 15191: 0x0000642B, - 15192: 0x0000644D, - 15193: 0x0000645B, - 15194: 0x0000645D, - 15195: 0x00006474, - 15196: 0x00006476, - 15197: 0x00006472, - 15198: 0x00006473, - 15199: 0x0000647D, - 15200: 0x00006475, - 15201: 0x00006466, - 15202: 0x000064A6, - 15203: 0x0000644E, - 15204: 0x00006482, - 15205: 0x0000645E, - 15206: 0x0000645C, - 15207: 0x0000644B, - 15208: 0x00006453, - 15209: 0x00006460, - 15210: 0x00006450, - 15211: 0x0000647F, - 15212: 0x0000643F, - 15213: 0x0000646C, - 15214: 0x0000646B, - 15215: 0x00006459, - 15216: 0x00006465, - 15217: 0x00006477, - 15218: 0x00006573, - 15219: 0x000065A0, - 15220: 0x000066A1, - 15221: 0x000066A0, - 15222: 0x0000669F, - 15223: 0x00006705, - 15224: 0x00006704, - 15225: 0x00006722, - 15226: 0x000069B1, - 15227: 0x000069B6, - 15228: 0x000069C9, - 15229: 0x000069A0, - 15230: 0x000069CE, - 15231: 0x00006996, - 15232: 0x000069B0, - 15233: 0x000069AC, - 15234: 0x000069BC, - 15235: 0x00006991, - 15236: 0x00006999, - 15237: 0x0000698E, - 15238: 0x000069A7, - 15239: 0x0000698D, - 15240: 0x000069A9, - 15241: 0x000069BE, - 15242: 0x000069AF, - 15243: 0x000069BF, - 15244: 0x000069C4, - 15245: 0x000069BD, - 15246: 0x000069A4, - 15247: 0x000069D4, - 15248: 0x000069B9, - 15249: 0x000069CA, - 15250: 0x0000699A, - 15251: 0x000069CF, - 15252: 0x000069B3, - 15253: 0x00006993, - 15254: 0x000069AA, - 15255: 0x000069A1, - 15256: 0x0000699E, - 15257: 0x000069D9, - 15258: 0x00006997, - 15259: 0x00006990, - 15260: 0x000069C2, - 15261: 0x000069B5, - 15262: 0x000069A5, - 15263: 0x000069C6, - 15264: 0x00006B4A, - 15265: 0x00006B4D, - 15266: 0x00006B4B, - 15267: 0x00006B9E, - 15268: 0x00006B9F, - 15269: 0x00006BA0, - 15270: 0x00006BC3, - 15271: 0x00006BC4, - 15272: 0x00006BFE, - 15273: 0x00006ECE, - 15274: 0x00006EF5, - 15275: 0x00006EF1, - 15276: 0x00006F03, - 15277: 0x00006F25, - 15278: 0x00006EF8, - 15279: 0x00006F37, - 15280: 0x00006EFB, - 15281: 0x00006F2E, - 15282: 0x00006F09, - 15283: 0x00006F4E, - 15284: 0x00006F19, - 15285: 0x00006F1A, - 15286: 0x00006F27, - 15287: 0x00006F18, - 15288: 0x00006F3B, - 15289: 0x00006F12, - 15290: 0x00006EED, - 15291: 0x00006F0A, - 15292: 0x00006F36, - 15293: 0x00006F73, - 15294: 0x00006EF9, - 15295: 0x00006EEE, - 15296: 0x00006F2D, - 15297: 0x00006F40, - 15298: 0x00006F30, - 15299: 0x00006F3C, - 15300: 0x00006F35, - 15301: 0x00006EEB, - 15302: 0x00006F07, - 15303: 0x00006F0E, - 15304: 0x00006F43, - 15305: 0x00006F05, - 15306: 0x00006EFD, - 15307: 0x00006EF6, - 15308: 0x00006F39, - 15309: 0x00006F1C, - 15310: 0x00006EFC, - 15311: 0x00006F3A, - 15312: 0x00006F1F, - 15313: 0x00006F0D, - 15314: 0x00006F1E, - 15315: 0x00006F08, - 15316: 0x00006F21, - 15317: 0x00007187, - 15318: 0x00007190, - 15319: 0x00007189, - 15320: 0x00007180, - 15321: 0x00007185, - 15322: 0x00007182, - 15323: 0x0000718F, - 15324: 0x0000717B, - 15325: 0x00007186, - 15326: 0x00007181, - 15327: 0x00007197, - 15328: 0x00007244, - 15329: 0x00007253, - 15330: 0x00007297, - 15331: 0x00007295, - 15332: 0x00007293, - 15333: 0x00007343, - 15334: 0x0000734D, - 15335: 0x00007351, - 15336: 0x0000734C, - 15337: 0x00007462, - 15338: 0x00007473, - 15339: 0x00007471, - 15340: 0x00007475, - 15341: 0x00007472, - 15342: 0x00007467, - 15343: 0x0000746E, - 15344: 0x00007500, - 15345: 0x00007502, - 15346: 0x00007503, - 15347: 0x0000757D, - 15348: 0x00007590, - 15349: 0x00007616, - 15350: 0x00007608, - 15351: 0x0000760C, - 15352: 0x00007615, - 15353: 0x00007611, - 15354: 0x0000760A, - 15355: 0x00007614, - 15356: 0x000076B8, - 15357: 0x00007781, - 15358: 0x0000777C, - 15359: 0x00007785, - 15360: 0x00007782, - 15361: 0x0000776E, - 15362: 0x00007780, - 15363: 0x0000776F, - 15364: 0x0000777E, - 15365: 0x00007783, - 15366: 0x000078B2, - 15367: 0x000078AA, - 15368: 0x000078B4, - 15369: 0x000078AD, - 15370: 0x000078A8, - 15371: 0x0000787E, - 15372: 0x000078AB, - 15373: 0x0000789E, - 15374: 0x000078A5, - 15375: 0x000078A0, - 15376: 0x000078AC, - 15377: 0x000078A2, - 15378: 0x000078A4, - 15379: 0x00007998, - 15380: 0x0000798A, - 15381: 0x0000798B, - 15382: 0x00007996, - 15383: 0x00007995, - 15384: 0x00007994, - 15385: 0x00007993, - 15386: 0x00007997, - 15387: 0x00007988, - 15388: 0x00007992, - 15389: 0x00007990, - 15390: 0x00007A2B, - 15391: 0x00007A4A, - 15392: 0x00007A30, - 15393: 0x00007A2F, - 15394: 0x00007A28, - 15395: 0x00007A26, - 15396: 0x00007AA8, - 15397: 0x00007AAB, - 15398: 0x00007AAC, - 15399: 0x00007AEE, - 15400: 0x00007B88, - 15401: 0x00007B9C, - 15402: 0x00007B8A, - 15403: 0x00007B91, - 15404: 0x00007B90, - 15405: 0x00007B96, - 15406: 0x00007B8D, - 15407: 0x00007B8C, - 15408: 0x00007B9B, - 15409: 0x00007B8E, - 15410: 0x00007B85, - 15411: 0x00007B98, - 15412: 0x00005284, - 15413: 0x00007B99, - 15414: 0x00007BA4, - 15415: 0x00007B82, - 15416: 0x00007CBB, - 15417: 0x00007CBF, - 15418: 0x00007CBC, - 15419: 0x00007CBA, - 15420: 0x00007DA7, - 15421: 0x00007DB7, - 15422: 0x00007DC2, - 15423: 0x00007DA3, - 15424: 0x00007DAA, - 15425: 0x00007DC1, - 15426: 0x00007DC0, - 15427: 0x00007DC5, - 15428: 0x00007D9D, - 15429: 0x00007DCE, - 15430: 0x00007DC4, - 15431: 0x00007DC6, - 15432: 0x00007DCB, - 15433: 0x00007DCC, - 15434: 0x00007DAF, - 15435: 0x00007DB9, - 15436: 0x00007D96, - 15437: 0x00007DBC, - 15438: 0x00007D9F, - 15439: 0x00007DA6, - 15440: 0x00007DAE, - 15441: 0x00007DA9, - 15442: 0x00007DA1, - 15443: 0x00007DC9, - 15444: 0x00007F73, - 15445: 0x00007FE2, - 15446: 0x00007FE3, - 15447: 0x00007FE5, - 15448: 0x00007FDE, - 15449: 0x00008024, - 15450: 0x0000805D, - 15451: 0x0000805C, - 15452: 0x00008189, - 15453: 0x00008186, - 15454: 0x00008183, - 15455: 0x00008187, - 15456: 0x0000818D, - 15457: 0x0000818C, - 15458: 0x0000818B, - 15459: 0x00008215, - 15460: 0x00008497, - 15461: 0x000084A4, - 15462: 0x000084A1, - 15463: 0x0000849F, - 15464: 0x000084BA, - 15465: 0x000084CE, - 15466: 0x000084C2, - 15467: 0x000084AC, - 15468: 0x000084AE, - 15469: 0x000084AB, - 15470: 0x000084B9, - 15471: 0x000084B4, - 15472: 0x000084C1, - 15473: 0x000084CD, - 15474: 0x000084AA, - 15475: 0x0000849A, - 15476: 0x000084B1, - 15477: 0x000084D0, - 15478: 0x0000849D, - 15479: 0x000084A7, - 15480: 0x000084BB, - 15481: 0x000084A2, - 15482: 0x00008494, - 15483: 0x000084C7, - 15484: 0x000084CC, - 15485: 0x0000849B, - 15486: 0x000084A9, - 15487: 0x000084AF, - 15488: 0x000084A8, - 15489: 0x000084D6, - 15490: 0x00008498, - 15491: 0x000084B6, - 15492: 0x000084CF, - 15493: 0x000084A0, - 15494: 0x000084D7, - 15495: 0x000084D4, - 15496: 0x000084D2, - 15497: 0x000084DB, - 15498: 0x000084B0, - 15499: 0x00008491, - 15500: 0x00008661, - 15501: 0x00008733, - 15502: 0x00008723, - 15503: 0x00008728, - 15504: 0x0000876B, - 15505: 0x00008740, - 15506: 0x0000872E, - 15507: 0x0000871E, - 15508: 0x00008721, - 15509: 0x00008719, - 15510: 0x0000871B, - 15511: 0x00008743, - 15512: 0x0000872C, - 15513: 0x00008741, - 15514: 0x0000873E, - 15515: 0x00008746, - 15516: 0x00008720, - 15517: 0x00008732, - 15518: 0x0000872A, - 15519: 0x0000872D, - 15520: 0x0000873C, - 15521: 0x00008712, - 15522: 0x0000873A, - 15523: 0x00008731, - 15524: 0x00008735, - 15525: 0x00008742, - 15526: 0x00008726, - 15527: 0x00008727, - 15528: 0x00008738, - 15529: 0x00008724, - 15530: 0x0000871A, - 15531: 0x00008730, - 15532: 0x00008711, - 15533: 0x000088F7, - 15534: 0x000088E7, - 15535: 0x000088F1, - 15536: 0x000088F2, - 15537: 0x000088FA, - 15538: 0x000088FE, - 15539: 0x000088EE, - 15540: 0x000088FC, - 15541: 0x000088F6, - 15542: 0x000088FB, - 15543: 0x000088F0, - 15544: 0x000088EC, - 15545: 0x000088EB, - 15546: 0x0000899D, - 15547: 0x000089A1, - 15548: 0x0000899F, - 15549: 0x0000899E, - 15550: 0x000089E9, - 15551: 0x000089EB, - 15552: 0x000089E8, - 15553: 0x00008AAB, - 15554: 0x00008A99, - 15555: 0x00008A8B, - 15556: 0x00008A92, - 15557: 0x00008A8F, - 15558: 0x00008A96, - 15559: 0x00008C3D, - 15560: 0x00008C68, - 15561: 0x00008C69, - 15562: 0x00008CD5, - 15563: 0x00008CCF, - 15564: 0x00008CD7, - 15565: 0x00008D96, - 15566: 0x00008E09, - 15567: 0x00008E02, - 15568: 0x00008DFF, - 15569: 0x00008E0D, - 15570: 0x00008DFD, - 15571: 0x00008E0A, - 15572: 0x00008E03, - 15573: 0x00008E07, - 15574: 0x00008E06, - 15575: 0x00008E05, - 15576: 0x00008DFE, - 15577: 0x00008E00, - 15578: 0x00008E04, - 15579: 0x00008F10, - 15580: 0x00008F11, - 15581: 0x00008F0E, - 15582: 0x00008F0D, - 15583: 0x00009123, - 15584: 0x0000911C, - 15585: 0x00009120, - 15586: 0x00009122, - 15587: 0x0000911F, - 15588: 0x0000911D, - 15589: 0x0000911A, - 15590: 0x00009124, - 15591: 0x00009121, - 15592: 0x0000911B, - 15593: 0x0000917A, - 15594: 0x00009172, - 15595: 0x00009179, - 15596: 0x00009173, - 15597: 0x000092A5, - 15598: 0x000092A4, - 15599: 0x00009276, - 15600: 0x0000929B, - 15601: 0x0000927A, - 15602: 0x000092A0, - 15603: 0x00009294, - 15604: 0x000092AA, - 15605: 0x0000928D, - 15606: 0x000092A6, - 15607: 0x0000929A, - 15608: 0x000092AB, - 15609: 0x00009279, - 15610: 0x00009297, - 15611: 0x0000927F, - 15612: 0x000092A3, - 15613: 0x000092EE, - 15614: 0x0000928E, - 15615: 0x00009282, - 15616: 0x00009295, - 15617: 0x000092A2, - 15618: 0x0000927D, - 15619: 0x00009288, - 15620: 0x000092A1, - 15621: 0x0000928A, - 15622: 0x00009286, - 15623: 0x0000928C, - 15624: 0x00009299, - 15625: 0x000092A7, - 15626: 0x0000927E, - 15627: 0x00009287, - 15628: 0x000092A9, - 15629: 0x0000929D, - 15630: 0x0000928B, - 15631: 0x0000922D, - 15632: 0x0000969E, - 15633: 0x000096A1, - 15634: 0x000096FF, - 15635: 0x00009758, - 15636: 0x0000977D, - 15637: 0x0000977A, - 15638: 0x0000977E, - 15639: 0x00009783, - 15640: 0x00009780, - 15641: 0x00009782, - 15642: 0x0000977B, - 15643: 0x00009784, - 15644: 0x00009781, - 15645: 0x0000977F, - 15646: 0x000097CE, - 15647: 0x000097CD, - 15648: 0x00009816, - 15649: 0x000098AD, - 15650: 0x000098AE, - 15651: 0x00009902, - 15652: 0x00009900, - 15653: 0x00009907, - 15654: 0x0000999D, - 15655: 0x0000999C, - 15656: 0x000099C3, - 15657: 0x000099B9, - 15658: 0x000099BB, - 15659: 0x000099BA, - 15660: 0x000099C2, - 15661: 0x000099BD, - 15662: 0x000099C7, - 15663: 0x00009AB1, - 15664: 0x00009AE3, - 15665: 0x00009AE7, - 15666: 0x00009B3E, - 15667: 0x00009B3F, - 15668: 0x00009B60, - 15669: 0x00009B61, - 15670: 0x00009B5F, - 15671: 0x00009CF1, - 15672: 0x00009CF2, - 15673: 0x00009CF5, - 15674: 0x00009EA7, - 15675: 0x000050FF, - 15676: 0x00005103, - 15677: 0x00005130, - 15678: 0x000050F8, - 15679: 0x00005106, - 15680: 0x00005107, - 15681: 0x000050F6, - 15682: 0x000050FE, - 15683: 0x0000510B, - 15684: 0x0000510C, - 15685: 0x000050FD, - 15686: 0x0000510A, - 15687: 0x0000528B, - 15688: 0x0000528C, - 15689: 0x000052F1, - 15690: 0x000052EF, - 15691: 0x00005648, - 15692: 0x00005642, - 15693: 0x0000564C, - 15694: 0x00005635, - 15695: 0x00005641, - 15696: 0x0000564A, - 15697: 0x00005649, - 15698: 0x00005646, - 15699: 0x00005658, - 15700: 0x0000565A, - 15701: 0x00005640, - 15702: 0x00005633, - 15703: 0x0000563D, - 15704: 0x0000562C, - 15705: 0x0000563E, - 15706: 0x00005638, - 15707: 0x0000562A, - 15708: 0x0000563A, - 15709: 0x0000571A, - 15710: 0x000058AB, - 15711: 0x0000589D, - 15712: 0x000058B1, - 15713: 0x000058A0, - 15714: 0x000058A3, - 15715: 0x000058AF, - 15716: 0x000058AC, - 15717: 0x000058A5, - 15718: 0x000058A1, - 15719: 0x000058FF, - 15720: 0x00005AFF, - 15721: 0x00005AF4, - 15722: 0x00005AFD, - 15723: 0x00005AF7, - 15724: 0x00005AF6, - 15725: 0x00005B03, - 15726: 0x00005AF8, - 15727: 0x00005B02, - 15728: 0x00005AF9, - 15729: 0x00005B01, - 15730: 0x00005B07, - 15731: 0x00005B05, - 15732: 0x00005B0F, - 15733: 0x00005C67, - 15734: 0x00005D99, - 15735: 0x00005D97, - 15736: 0x00005D9F, - 15737: 0x00005D92, - 15738: 0x00005DA2, - 15739: 0x00005D93, - 15740: 0x00005D95, - 15741: 0x00005DA0, - 15742: 0x00005D9C, - 15743: 0x00005DA1, - 15744: 0x00005D9A, - 15745: 0x00005D9E, - 15746: 0x00005E69, - 15747: 0x00005E5D, - 15748: 0x00005E60, - 15749: 0x00005E5C, - 15750: 0x00007DF3, - 15751: 0x00005EDB, - 15752: 0x00005EDE, - 15753: 0x00005EE1, - 15754: 0x00005F49, - 15755: 0x00005FB2, - 15756: 0x0000618B, - 15757: 0x00006183, - 15758: 0x00006179, - 15759: 0x000061B1, - 15760: 0x000061B0, - 15761: 0x000061A2, - 15762: 0x00006189, - 15763: 0x0000619B, - 15764: 0x00006193, - 15765: 0x000061AF, - 15766: 0x000061AD, - 15767: 0x0000619F, - 15768: 0x00006192, - 15769: 0x000061AA, - 15770: 0x000061A1, - 15771: 0x0000618D, - 15772: 0x00006166, - 15773: 0x000061B3, - 15774: 0x0000622D, - 15775: 0x0000646E, - 15776: 0x00006470, - 15777: 0x00006496, - 15778: 0x000064A0, - 15779: 0x00006485, - 15780: 0x00006497, - 15781: 0x0000649C, - 15782: 0x0000648F, - 15783: 0x0000648B, - 15784: 0x0000648A, - 15785: 0x0000648C, - 15786: 0x000064A3, - 15787: 0x0000649F, - 15788: 0x00006468, - 15789: 0x000064B1, - 15790: 0x00006498, - 15791: 0x00006576, - 15792: 0x0000657A, - 15793: 0x00006579, - 15794: 0x0000657B, - 15795: 0x000065B2, - 15796: 0x000065B3, - 15797: 0x000066B5, - 15798: 0x000066B0, - 15799: 0x000066A9, - 15800: 0x000066B2, - 15801: 0x000066B7, - 15802: 0x000066AA, - 15803: 0x000066AF, - 15804: 0x00006A00, - 15805: 0x00006A06, - 15806: 0x00006A17, - 15807: 0x000069E5, - 15808: 0x000069F8, - 15809: 0x00006A15, - 15810: 0x000069F1, - 15811: 0x000069E4, - 15812: 0x00006A20, - 15813: 0x000069FF, - 15814: 0x000069EC, - 15815: 0x000069E2, - 15816: 0x00006A1B, - 15817: 0x00006A1D, - 15818: 0x000069FE, - 15819: 0x00006A27, - 15820: 0x000069F2, - 15821: 0x000069EE, - 15822: 0x00006A14, - 15823: 0x000069F7, - 15824: 0x000069E7, - 15825: 0x00006A40, - 15826: 0x00006A08, - 15827: 0x000069E6, - 15828: 0x000069FB, - 15829: 0x00006A0D, - 15830: 0x000069FC, - 15831: 0x000069EB, - 15832: 0x00006A09, - 15833: 0x00006A04, - 15834: 0x00006A18, - 15835: 0x00006A25, - 15836: 0x00006A0F, - 15837: 0x000069F6, - 15838: 0x00006A26, - 15839: 0x00006A07, - 15840: 0x000069F4, - 15841: 0x00006A16, - 15842: 0x00006B51, - 15843: 0x00006BA5, - 15844: 0x00006BA3, - 15845: 0x00006BA2, - 15846: 0x00006BA6, - 15847: 0x00006C01, - 15848: 0x00006C00, - 15849: 0x00006BFF, - 15850: 0x00006C02, - 15851: 0x00006F41, - 15852: 0x00006F26, - 15853: 0x00006F7E, - 15854: 0x00006F87, - 15855: 0x00006FC6, - 15856: 0x00006F92, - 15857: 0x00006F8D, - 15858: 0x00006F89, - 15859: 0x00006F8C, - 15860: 0x00006F62, - 15861: 0x00006F4F, - 15862: 0x00006F85, - 15863: 0x00006F5A, - 15864: 0x00006F96, - 15865: 0x00006F76, - 15866: 0x00006F6C, - 15867: 0x00006F82, - 15868: 0x00006F55, - 15869: 0x00006F72, - 15870: 0x00006F52, - 15871: 0x00006F50, - 15872: 0x00006F57, - 15873: 0x00006F94, - 15874: 0x00006F93, - 15875: 0x00006F5D, - 15876: 0x00006F00, - 15877: 0x00006F61, - 15878: 0x00006F6B, - 15879: 0x00006F7D, - 15880: 0x00006F67, - 15881: 0x00006F90, - 15882: 0x00006F53, - 15883: 0x00006F8B, - 15884: 0x00006F69, - 15885: 0x00006F7F, - 15886: 0x00006F95, - 15887: 0x00006F63, - 15888: 0x00006F77, - 15889: 0x00006F6A, - 15890: 0x00006F7B, - 15891: 0x000071B2, - 15892: 0x000071AF, - 15893: 0x0000719B, - 15894: 0x000071B0, - 15895: 0x000071A0, - 15896: 0x0000719A, - 15897: 0x000071A9, - 15898: 0x000071B5, - 15899: 0x0000719D, - 15900: 0x000071A5, - 15901: 0x0000719E, - 15902: 0x000071A4, - 15903: 0x000071A1, - 15904: 0x000071AA, - 15905: 0x0000719C, - 15906: 0x000071A7, - 15907: 0x000071B3, - 15908: 0x00007298, - 15909: 0x0000729A, - 15910: 0x00007358, - 15911: 0x00007352, - 15912: 0x0000735E, - 15913: 0x0000735F, - 15914: 0x00007360, - 15915: 0x0000735D, - 15916: 0x0000735B, - 15917: 0x00007361, - 15918: 0x0000735A, - 15919: 0x00007359, - 15920: 0x00007362, - 15921: 0x00007487, - 15922: 0x00007489, - 15923: 0x0000748A, - 15924: 0x00007486, - 15925: 0x00007481, - 15926: 0x0000747D, - 15927: 0x00007485, - 15928: 0x00007488, - 15929: 0x0000747C, - 15930: 0x00007479, - 15931: 0x00007508, - 15932: 0x00007507, - 15933: 0x0000757E, - 15934: 0x00007625, - 15935: 0x0000761E, - 15936: 0x00007619, - 15937: 0x0000761D, - 15938: 0x0000761C, - 15939: 0x00007623, - 15940: 0x0000761A, - 15941: 0x00007628, - 15942: 0x0000761B, - 15943: 0x0000769C, - 15944: 0x0000769D, - 15945: 0x0000769E, - 15946: 0x0000769B, - 15947: 0x0000778D, - 15948: 0x0000778F, - 15949: 0x00007789, - 15950: 0x00007788, - 15951: 0x000078CD, - 15952: 0x000078BB, - 15953: 0x000078CF, - 15954: 0x000078CC, - 15955: 0x000078D1, - 15956: 0x000078CE, - 15957: 0x000078D4, - 15958: 0x000078C8, - 15959: 0x000078C3, - 15960: 0x000078C4, - 15961: 0x000078C9, - 15962: 0x0000799A, - 15963: 0x000079A1, - 15964: 0x000079A0, - 15965: 0x0000799C, - 15966: 0x000079A2, - 15967: 0x0000799B, - 15968: 0x00006B76, - 15969: 0x00007A39, - 15970: 0x00007AB2, - 15971: 0x00007AB4, - 15972: 0x00007AB3, - 15973: 0x00007BB7, - 15974: 0x00007BCB, - 15975: 0x00007BBE, - 15976: 0x00007BAC, - 15977: 0x00007BCE, - 15978: 0x00007BAF, - 15979: 0x00007BB9, - 15980: 0x00007BCA, - 15981: 0x00007BB5, - 15982: 0x00007CC5, - 15983: 0x00007CC8, - 15984: 0x00007CCC, - 15985: 0x00007CCB, - 15986: 0x00007DF7, - 15987: 0x00007DDB, - 15988: 0x00007DEA, - 15989: 0x00007DE7, - 15990: 0x00007DD7, - 15991: 0x00007DE1, - 15992: 0x00007E03, - 15993: 0x00007DFA, - 15994: 0x00007DE6, - 15995: 0x00007DF6, - 15996: 0x00007DF1, - 15997: 0x00007DF0, - 15998: 0x00007DEE, - 15999: 0x00007DDF, - 16000: 0x00007F76, - 16001: 0x00007FAC, - 16002: 0x00007FB0, - 16003: 0x00007FAD, - 16004: 0x00007FED, - 16005: 0x00007FEB, - 16006: 0x00007FEA, - 16007: 0x00007FEC, - 16008: 0x00007FE6, - 16009: 0x00007FE8, - 16010: 0x00008064, - 16011: 0x00008067, - 16012: 0x000081A3, - 16013: 0x0000819F, - 16014: 0x0000819E, - 16015: 0x00008195, - 16016: 0x000081A2, - 16017: 0x00008199, - 16018: 0x00008197, - 16019: 0x00008216, - 16020: 0x0000824F, - 16021: 0x00008253, - 16022: 0x00008252, - 16023: 0x00008250, - 16024: 0x0000824E, - 16025: 0x00008251, - 16026: 0x00008524, - 16027: 0x0000853B, - 16028: 0x0000850F, - 16029: 0x00008500, - 16030: 0x00008529, - 16031: 0x0000850E, - 16032: 0x00008509, - 16033: 0x0000850D, - 16034: 0x0000851F, - 16035: 0x0000850A, - 16036: 0x00008527, - 16037: 0x0000851C, - 16038: 0x000084FB, - 16039: 0x0000852B, - 16040: 0x000084FA, - 16041: 0x00008508, - 16042: 0x0000850C, - 16043: 0x000084F4, - 16044: 0x0000852A, - 16045: 0x000084F2, - 16046: 0x00008515, - 16047: 0x000084F7, - 16048: 0x000084EB, - 16049: 0x000084F3, - 16050: 0x000084FC, - 16051: 0x00008512, - 16052: 0x000084EA, - 16053: 0x000084E9, - 16054: 0x00008516, - 16055: 0x000084FE, - 16056: 0x00008528, - 16057: 0x0000851D, - 16058: 0x0000852E, - 16059: 0x00008502, - 16060: 0x000084FD, - 16061: 0x0000851E, - 16062: 0x000084F6, - 16063: 0x00008531, - 16064: 0x00008526, - 16065: 0x000084E7, - 16066: 0x000084E8, - 16067: 0x000084F0, - 16068: 0x000084EF, - 16069: 0x000084F9, - 16070: 0x00008518, - 16071: 0x00008520, - 16072: 0x00008530, - 16073: 0x0000850B, - 16074: 0x00008519, - 16075: 0x0000852F, - 16076: 0x00008662, - 16077: 0x00008756, - 16078: 0x00008763, - 16079: 0x00008764, - 16080: 0x00008777, - 16081: 0x000087E1, - 16082: 0x00008773, - 16083: 0x00008758, - 16084: 0x00008754, - 16085: 0x0000875B, - 16086: 0x00008752, - 16087: 0x00008761, - 16088: 0x0000875A, - 16089: 0x00008751, - 16090: 0x0000875E, - 16091: 0x0000876D, - 16092: 0x0000876A, - 16093: 0x00008750, - 16094: 0x0000874E, - 16095: 0x0000875F, - 16096: 0x0000875D, - 16097: 0x0000876F, - 16098: 0x0000876C, - 16099: 0x0000877A, - 16100: 0x0000876E, - 16101: 0x0000875C, - 16102: 0x00008765, - 16103: 0x0000874F, - 16104: 0x0000877B, - 16105: 0x00008775, - 16106: 0x00008762, - 16107: 0x00008767, - 16108: 0x00008769, - 16109: 0x0000885A, - 16110: 0x00008905, - 16111: 0x0000890C, - 16112: 0x00008914, - 16113: 0x0000890B, - 16114: 0x00008917, - 16115: 0x00008918, - 16116: 0x00008919, - 16117: 0x00008906, - 16118: 0x00008916, - 16119: 0x00008911, - 16120: 0x0000890E, - 16121: 0x00008909, - 16122: 0x000089A2, - 16123: 0x000089A4, - 16124: 0x000089A3, - 16125: 0x000089ED, - 16126: 0x000089F0, - 16127: 0x000089EC, - 16128: 0x00008ACF, - 16129: 0x00008AC6, - 16130: 0x00008AB8, - 16131: 0x00008AD3, - 16132: 0x00008AD1, - 16133: 0x00008AD4, - 16134: 0x00008AD5, - 16135: 0x00008ABB, - 16136: 0x00008AD7, - 16137: 0x00008ABE, - 16138: 0x00008AC0, - 16139: 0x00008AC5, - 16140: 0x00008AD8, - 16141: 0x00008AC3, - 16142: 0x00008ABA, - 16143: 0x00008ABD, - 16144: 0x00008AD9, - 16145: 0x00008C3E, - 16146: 0x00008C4D, - 16147: 0x00008C8F, - 16148: 0x00008CE5, - 16149: 0x00008CDF, - 16150: 0x00008CD9, - 16151: 0x00008CE8, - 16152: 0x00008CDA, - 16153: 0x00008CDD, - 16154: 0x00008CE7, - 16155: 0x00008DA0, - 16156: 0x00008D9C, - 16157: 0x00008DA1, - 16158: 0x00008D9B, - 16159: 0x00008E20, - 16160: 0x00008E23, - 16161: 0x00008E25, - 16162: 0x00008E24, - 16163: 0x00008E2E, - 16164: 0x00008E15, - 16165: 0x00008E1B, - 16166: 0x00008E16, - 16167: 0x00008E11, - 16168: 0x00008E19, - 16169: 0x00008E26, - 16170: 0x00008E27, - 16171: 0x00008E14, - 16172: 0x00008E12, - 16173: 0x00008E18, - 16174: 0x00008E13, - 16175: 0x00008E1C, - 16176: 0x00008E17, - 16177: 0x00008E1A, - 16178: 0x00008F2C, - 16179: 0x00008F24, - 16180: 0x00008F18, - 16181: 0x00008F1A, - 16182: 0x00008F20, - 16183: 0x00008F23, - 16184: 0x00008F16, - 16185: 0x00008F17, - 16186: 0x00009073, - 16187: 0x00009070, - 16188: 0x0000906F, - 16189: 0x00009067, - 16190: 0x0000906B, - 16191: 0x0000912F, - 16192: 0x0000912B, - 16193: 0x00009129, - 16194: 0x0000912A, - 16195: 0x00009132, - 16196: 0x00009126, - 16197: 0x0000912E, - 16198: 0x00009185, - 16199: 0x00009186, - 16200: 0x0000918A, - 16201: 0x00009181, - 16202: 0x00009182, - 16203: 0x00009184, - 16204: 0x00009180, - 16205: 0x000092D0, - 16206: 0x000092C3, - 16207: 0x000092C4, - 16208: 0x000092C0, - 16209: 0x000092D9, - 16210: 0x000092B6, - 16211: 0x000092CF, - 16212: 0x000092F1, - 16213: 0x000092DF, - 16214: 0x000092D8, - 16215: 0x000092E9, - 16216: 0x000092D7, - 16217: 0x000092DD, - 16218: 0x000092CC, - 16219: 0x000092EF, - 16220: 0x000092C2, - 16221: 0x000092E8, - 16222: 0x000092CA, - 16223: 0x000092C8, - 16224: 0x000092CE, - 16225: 0x000092E6, - 16226: 0x000092CD, - 16227: 0x000092D5, - 16228: 0x000092C9, - 16229: 0x000092E0, - 16230: 0x000092DE, - 16231: 0x000092E7, - 16232: 0x000092D1, - 16233: 0x000092D3, - 16234: 0x000092B5, - 16235: 0x000092E1, - 16236: 0x000092C6, - 16237: 0x000092B4, - 16238: 0x0000957C, - 16239: 0x000095AC, - 16240: 0x000095AB, - 16241: 0x000095AE, - 16242: 0x000095B0, - 16243: 0x000096A4, - 16244: 0x000096A2, - 16245: 0x000096D3, - 16246: 0x00009705, - 16247: 0x00009708, - 16248: 0x00009702, - 16249: 0x0000975A, - 16250: 0x0000978A, - 16251: 0x0000978E, - 16252: 0x00009788, - 16253: 0x000097D0, - 16254: 0x000097CF, - 16255: 0x0000981E, - 16256: 0x0000981D, - 16257: 0x00009826, - 16258: 0x00009829, - 16259: 0x00009828, - 16260: 0x00009820, - 16261: 0x0000981B, - 16262: 0x00009827, - 16263: 0x000098B2, - 16264: 0x00009908, - 16265: 0x000098FA, - 16266: 0x00009911, - 16267: 0x00009914, - 16268: 0x00009916, - 16269: 0x00009917, - 16270: 0x00009915, - 16271: 0x000099DC, - 16272: 0x000099CD, - 16273: 0x000099CF, - 16274: 0x000099D3, - 16275: 0x000099D4, - 16276: 0x000099CE, - 16277: 0x000099C9, - 16278: 0x000099D6, - 16279: 0x000099D8, - 16280: 0x000099CB, - 16281: 0x000099D7, - 16282: 0x000099CC, - 16283: 0x00009AB3, - 16284: 0x00009AEC, - 16285: 0x00009AEB, - 16286: 0x00009AF3, - 16287: 0x00009AF2, - 16288: 0x00009AF1, - 16289: 0x00009B46, - 16290: 0x00009B43, - 16291: 0x00009B67, - 16292: 0x00009B74, - 16293: 0x00009B71, - 16294: 0x00009B66, - 16295: 0x00009B76, - 16296: 0x00009B75, - 16297: 0x00009B70, - 16298: 0x00009B68, - 16299: 0x00009B64, - 16300: 0x00009B6C, - 16301: 0x00009CFC, - 16302: 0x00009CFA, - 16303: 0x00009CFD, - 16304: 0x00009CFF, - 16305: 0x00009CF7, - 16306: 0x00009D07, - 16307: 0x00009D00, - 16308: 0x00009CF9, - 16309: 0x00009CFB, - 16310: 0x00009D08, - 16311: 0x00009D05, - 16312: 0x00009D04, - 16313: 0x00009E83, - 16314: 0x00009ED3, - 16315: 0x00009F0F, - 16316: 0x00009F10, - 16317: 0x0000511C, - 16318: 0x00005113, - 16319: 0x00005117, - 16320: 0x0000511A, - 16321: 0x00005111, - 16322: 0x000051DE, - 16323: 0x00005334, - 16324: 0x000053E1, - 16325: 0x00005670, - 16326: 0x00005660, - 16327: 0x0000566E, - 16328: 0x00005673, - 16329: 0x00005666, - 16330: 0x00005663, - 16331: 0x0000566D, - 16332: 0x00005672, - 16333: 0x0000565E, - 16334: 0x00005677, - 16335: 0x0000571C, - 16336: 0x0000571B, - 16337: 0x000058C8, - 16338: 0x000058BD, - 16339: 0x000058C9, - 16340: 0x000058BF, - 16341: 0x000058BA, - 16342: 0x000058C2, - 16343: 0x000058BC, - 16344: 0x000058C6, - 16345: 0x00005B17, - 16346: 0x00005B19, - 16347: 0x00005B1B, - 16348: 0x00005B21, - 16349: 0x00005B14, - 16350: 0x00005B13, - 16351: 0x00005B10, - 16352: 0x00005B16, - 16353: 0x00005B28, - 16354: 0x00005B1A, - 16355: 0x00005B20, - 16356: 0x00005B1E, - 16357: 0x00005BEF, - 16358: 0x00005DAC, - 16359: 0x00005DB1, - 16360: 0x00005DA9, - 16361: 0x00005DA7, - 16362: 0x00005DB5, - 16363: 0x00005DB0, - 16364: 0x00005DAE, - 16365: 0x00005DAA, - 16366: 0x00005DA8, - 16367: 0x00005DB2, - 16368: 0x00005DAD, - 16369: 0x00005DAF, - 16370: 0x00005DB4, - 16371: 0x00005E67, - 16372: 0x00005E68, - 16373: 0x00005E66, - 16374: 0x00005E6F, - 16375: 0x00005EE9, - 16376: 0x00005EE7, - 16377: 0x00005EE6, - 16378: 0x00005EE8, - 16379: 0x00005EE5, - 16380: 0x00005F4B, - 16381: 0x00005FBC, - 16382: 0x0000619D, - 16383: 0x000061A8, - 16384: 0x00006196, - 16385: 0x000061C5, - 16386: 0x000061B4, - 16387: 0x000061C6, - 16388: 0x000061C1, - 16389: 0x000061CC, - 16390: 0x000061BA, - 16391: 0x000061BF, - 16392: 0x000061B8, - 16393: 0x0000618C, - 16394: 0x000064D7, - 16395: 0x000064D6, - 16396: 0x000064D0, - 16397: 0x000064CF, - 16398: 0x000064C9, - 16399: 0x000064BD, - 16400: 0x00006489, - 16401: 0x000064C3, - 16402: 0x000064DB, - 16403: 0x000064F3, - 16404: 0x000064D9, - 16405: 0x00006533, - 16406: 0x0000657F, - 16407: 0x0000657C, - 16408: 0x000065A2, - 16409: 0x000066C8, - 16410: 0x000066BE, - 16411: 0x000066C0, - 16412: 0x000066CA, - 16413: 0x000066CB, - 16414: 0x000066CF, - 16415: 0x000066BD, - 16416: 0x000066BB, - 16417: 0x000066BA, - 16418: 0x000066CC, - 16419: 0x00006723, - 16420: 0x00006A34, - 16421: 0x00006A66, - 16422: 0x00006A49, - 16423: 0x00006A67, - 16424: 0x00006A32, - 16425: 0x00006A68, - 16426: 0x00006A3E, - 16427: 0x00006A5D, - 16428: 0x00006A6D, - 16429: 0x00006A76, - 16430: 0x00006A5B, - 16431: 0x00006A51, - 16432: 0x00006A28, - 16433: 0x00006A5A, - 16434: 0x00006A3B, - 16435: 0x00006A3F, - 16436: 0x00006A41, - 16437: 0x00006A6A, - 16438: 0x00006A64, - 16439: 0x00006A50, - 16440: 0x00006A4F, - 16441: 0x00006A54, - 16442: 0x00006A6F, - 16443: 0x00006A69, - 16444: 0x00006A60, - 16445: 0x00006A3C, - 16446: 0x00006A5E, - 16447: 0x00006A56, - 16448: 0x00006A55, - 16449: 0x00006A4D, - 16450: 0x00006A4E, - 16451: 0x00006A46, - 16452: 0x00006B55, - 16453: 0x00006B54, - 16454: 0x00006B56, - 16455: 0x00006BA7, - 16456: 0x00006BAA, - 16457: 0x00006BAB, - 16458: 0x00006BC8, - 16459: 0x00006BC7, - 16460: 0x00006C04, - 16461: 0x00006C03, - 16462: 0x00006C06, - 16463: 0x00006FAD, - 16464: 0x00006FCB, - 16465: 0x00006FA3, - 16466: 0x00006FC7, - 16467: 0x00006FBC, - 16468: 0x00006FCE, - 16469: 0x00006FC8, - 16470: 0x00006F5E, - 16471: 0x00006FC4, - 16472: 0x00006FBD, - 16473: 0x00006F9E, - 16474: 0x00006FCA, - 16475: 0x00006FA8, - 16476: 0x00007004, - 16477: 0x00006FA5, - 16478: 0x00006FAE, - 16479: 0x00006FBA, - 16480: 0x00006FAC, - 16481: 0x00006FAA, - 16482: 0x00006FCF, - 16483: 0x00006FBF, - 16484: 0x00006FB8, - 16485: 0x00006FA2, - 16486: 0x00006FC9, - 16487: 0x00006FAB, - 16488: 0x00006FCD, - 16489: 0x00006FAF, - 16490: 0x00006FB2, - 16491: 0x00006FB0, - 16492: 0x000071C5, - 16493: 0x000071C2, - 16494: 0x000071BF, - 16495: 0x000071B8, - 16496: 0x000071D6, - 16497: 0x000071C0, - 16498: 0x000071C1, - 16499: 0x000071CB, - 16500: 0x000071D4, - 16501: 0x000071CA, - 16502: 0x000071C7, - 16503: 0x000071CF, - 16504: 0x000071BD, - 16505: 0x000071D8, - 16506: 0x000071BC, - 16507: 0x000071C6, - 16508: 0x000071DA, - 16509: 0x000071DB, - 16510: 0x0000729D, - 16511: 0x0000729E, - 16512: 0x00007369, - 16513: 0x00007366, - 16514: 0x00007367, - 16515: 0x0000736C, - 16516: 0x00007365, - 16517: 0x0000736B, - 16518: 0x0000736A, - 16519: 0x0000747F, - 16520: 0x0000749A, - 16521: 0x000074A0, - 16522: 0x00007494, - 16523: 0x00007492, - 16524: 0x00007495, - 16525: 0x000074A1, - 16526: 0x0000750B, - 16527: 0x00007580, - 16528: 0x0000762F, - 16529: 0x0000762D, - 16530: 0x00007631, - 16531: 0x0000763D, - 16532: 0x00007633, - 16533: 0x0000763C, - 16534: 0x00007635, - 16535: 0x00007632, - 16536: 0x00007630, - 16537: 0x000076BB, - 16538: 0x000076E6, - 16539: 0x0000779A, - 16540: 0x0000779D, - 16541: 0x000077A1, - 16542: 0x0000779C, - 16543: 0x0000779B, - 16544: 0x000077A2, - 16545: 0x000077A3, - 16546: 0x00007795, - 16547: 0x00007799, - 16548: 0x00007797, - 16549: 0x000078DD, - 16550: 0x000078E9, - 16551: 0x000078E5, - 16552: 0x000078EA, - 16553: 0x000078DE, - 16554: 0x000078E3, - 16555: 0x000078DB, - 16556: 0x000078E1, - 16557: 0x000078E2, - 16558: 0x000078ED, - 16559: 0x000078DF, - 16560: 0x000078E0, - 16561: 0x000079A4, - 16562: 0x00007A44, - 16563: 0x00007A48, - 16564: 0x00007A47, - 16565: 0x00007AB6, - 16566: 0x00007AB8, - 16567: 0x00007AB5, - 16568: 0x00007AB1, - 16569: 0x00007AB7, - 16570: 0x00007BDE, - 16571: 0x00007BE3, - 16572: 0x00007BE7, - 16573: 0x00007BDD, - 16574: 0x00007BD5, - 16575: 0x00007BE5, - 16576: 0x00007BDA, - 16577: 0x00007BE8, - 16578: 0x00007BF9, - 16579: 0x00007BD4, - 16580: 0x00007BEA, - 16581: 0x00007BE2, - 16582: 0x00007BDC, - 16583: 0x00007BEB, - 16584: 0x00007BD8, - 16585: 0x00007BDF, - 16586: 0x00007CD2, - 16587: 0x00007CD4, - 16588: 0x00007CD7, - 16589: 0x00007CD0, - 16590: 0x00007CD1, - 16591: 0x00007E12, - 16592: 0x00007E21, - 16593: 0x00007E17, - 16594: 0x00007E0C, - 16595: 0x00007E1F, - 16596: 0x00007E20, - 16597: 0x00007E13, - 16598: 0x00007E0E, - 16599: 0x00007E1C, - 16600: 0x00007E15, - 16601: 0x00007E1A, - 16602: 0x00007E22, - 16603: 0x00007E0B, - 16604: 0x00007E0F, - 16605: 0x00007E16, - 16606: 0x00007E0D, - 16607: 0x00007E14, - 16608: 0x00007E25, - 16609: 0x00007E24, - 16610: 0x00007F43, - 16611: 0x00007F7B, - 16612: 0x00007F7C, - 16613: 0x00007F7A, - 16614: 0x00007FB1, - 16615: 0x00007FEF, - 16616: 0x0000802A, - 16617: 0x00008029, - 16618: 0x0000806C, - 16619: 0x000081B1, - 16620: 0x000081A6, - 16621: 0x000081AE, - 16622: 0x000081B9, - 16623: 0x000081B5, - 16624: 0x000081AB, - 16625: 0x000081B0, - 16626: 0x000081AC, - 16627: 0x000081B4, - 16628: 0x000081B2, - 16629: 0x000081B7, - 16630: 0x000081A7, - 16631: 0x000081F2, - 16632: 0x00008255, - 16633: 0x00008256, - 16634: 0x00008257, - 16635: 0x00008556, - 16636: 0x00008545, - 16637: 0x0000856B, - 16638: 0x0000854D, - 16639: 0x00008553, - 16640: 0x00008561, - 16641: 0x00008558, - 16642: 0x00008540, - 16643: 0x00008546, - 16644: 0x00008564, - 16645: 0x00008541, - 16646: 0x00008562, - 16647: 0x00008544, - 16648: 0x00008551, - 16649: 0x00008547, - 16650: 0x00008563, - 16651: 0x0000853E, - 16652: 0x0000855B, - 16653: 0x00008571, - 16654: 0x0000854E, - 16655: 0x0000856E, - 16656: 0x00008575, - 16657: 0x00008555, - 16658: 0x00008567, - 16659: 0x00008560, - 16660: 0x0000858C, - 16661: 0x00008566, - 16662: 0x0000855D, - 16663: 0x00008554, - 16664: 0x00008565, - 16665: 0x0000856C, - 16666: 0x00008663, - 16667: 0x00008665, - 16668: 0x00008664, - 16669: 0x0000879B, - 16670: 0x0000878F, - 16671: 0x00008797, - 16672: 0x00008793, - 16673: 0x00008792, - 16674: 0x00008788, - 16675: 0x00008781, - 16676: 0x00008796, - 16677: 0x00008798, - 16678: 0x00008779, - 16679: 0x00008787, - 16680: 0x000087A3, - 16681: 0x00008785, - 16682: 0x00008790, - 16683: 0x00008791, - 16684: 0x0000879D, - 16685: 0x00008784, - 16686: 0x00008794, - 16687: 0x0000879C, - 16688: 0x0000879A, - 16689: 0x00008789, - 16690: 0x0000891E, - 16691: 0x00008926, - 16692: 0x00008930, - 16693: 0x0000892D, - 16694: 0x0000892E, - 16695: 0x00008927, - 16696: 0x00008931, - 16697: 0x00008922, - 16698: 0x00008929, - 16699: 0x00008923, - 16700: 0x0000892F, - 16701: 0x0000892C, - 16702: 0x0000891F, - 16703: 0x000089F1, - 16704: 0x00008AE0, - 16705: 0x00008AE2, - 16706: 0x00008AF2, - 16707: 0x00008AF4, - 16708: 0x00008AF5, - 16709: 0x00008ADD, - 16710: 0x00008B14, - 16711: 0x00008AE4, - 16712: 0x00008ADF, - 16713: 0x00008AF0, - 16714: 0x00008AC8, - 16715: 0x00008ADE, - 16716: 0x00008AE1, - 16717: 0x00008AE8, - 16718: 0x00008AFF, - 16719: 0x00008AEF, - 16720: 0x00008AFB, - 16721: 0x00008C91, - 16722: 0x00008C92, - 16723: 0x00008C90, - 16724: 0x00008CF5, - 16725: 0x00008CEE, - 16726: 0x00008CF1, - 16727: 0x00008CF0, - 16728: 0x00008CF3, - 16729: 0x00008D6C, - 16730: 0x00008D6E, - 16731: 0x00008DA5, - 16732: 0x00008DA7, - 16733: 0x00008E33, - 16734: 0x00008E3E, - 16735: 0x00008E38, - 16736: 0x00008E40, - 16737: 0x00008E45, - 16738: 0x00008E36, - 16739: 0x00008E3C, - 16740: 0x00008E3D, - 16741: 0x00008E41, - 16742: 0x00008E30, - 16743: 0x00008E3F, - 16744: 0x00008EBD, - 16745: 0x00008F36, - 16746: 0x00008F2E, - 16747: 0x00008F35, - 16748: 0x00008F32, - 16749: 0x00008F39, - 16750: 0x00008F37, - 16751: 0x00008F34, - 16752: 0x00009076, - 16753: 0x00009079, - 16754: 0x0000907B, - 16755: 0x00009086, - 16756: 0x000090FA, - 16757: 0x00009133, - 16758: 0x00009135, - 16759: 0x00009136, - 16760: 0x00009193, - 16761: 0x00009190, - 16762: 0x00009191, - 16763: 0x0000918D, - 16764: 0x0000918F, - 16765: 0x00009327, - 16766: 0x0000931E, - 16767: 0x00009308, - 16768: 0x0000931F, - 16769: 0x00009306, - 16770: 0x0000930F, - 16771: 0x0000937A, - 16772: 0x00009338, - 16773: 0x0000933C, - 16774: 0x0000931B, - 16775: 0x00009323, - 16776: 0x00009312, - 16777: 0x00009301, - 16778: 0x00009346, - 16779: 0x0000932D, - 16780: 0x0000930E, - 16781: 0x0000930D, - 16782: 0x000092CB, - 16783: 0x0000931D, - 16784: 0x000092FA, - 16785: 0x00009325, - 16786: 0x00009313, - 16787: 0x000092F9, - 16788: 0x000092F7, - 16789: 0x00009334, - 16790: 0x00009302, - 16791: 0x00009324, - 16792: 0x000092FF, - 16793: 0x00009329, - 16794: 0x00009339, - 16795: 0x00009335, - 16796: 0x0000932A, - 16797: 0x00009314, - 16798: 0x0000930C, - 16799: 0x0000930B, - 16800: 0x000092FE, - 16801: 0x00009309, - 16802: 0x00009300, - 16803: 0x000092FB, - 16804: 0x00009316, - 16805: 0x000095BC, - 16806: 0x000095CD, - 16807: 0x000095BE, - 16808: 0x000095B9, - 16809: 0x000095BA, - 16810: 0x000095B6, - 16811: 0x000095BF, - 16812: 0x000095B5, - 16813: 0x000095BD, - 16814: 0x000096A9, - 16815: 0x000096D4, - 16816: 0x0000970B, - 16817: 0x00009712, - 16818: 0x00009710, - 16819: 0x00009799, - 16820: 0x00009797, - 16821: 0x00009794, - 16822: 0x000097F0, - 16823: 0x000097F8, - 16824: 0x00009835, - 16825: 0x0000982F, - 16826: 0x00009832, - 16827: 0x00009924, - 16828: 0x0000991F, - 16829: 0x00009927, - 16830: 0x00009929, - 16831: 0x0000999E, - 16832: 0x000099EE, - 16833: 0x000099EC, - 16834: 0x000099E5, - 16835: 0x000099E4, - 16836: 0x000099F0, - 16837: 0x000099E3, - 16838: 0x000099EA, - 16839: 0x000099E9, - 16840: 0x000099E7, - 16841: 0x00009AB9, - 16842: 0x00009ABF, - 16843: 0x00009AB4, - 16844: 0x00009ABB, - 16845: 0x00009AF6, - 16846: 0x00009AFA, - 16847: 0x00009AF9, - 16848: 0x00009AF7, - 16849: 0x00009B33, - 16850: 0x00009B80, - 16851: 0x00009B85, - 16852: 0x00009B87, - 16853: 0x00009B7C, - 16854: 0x00009B7E, - 16855: 0x00009B7B, - 16856: 0x00009B82, - 16857: 0x00009B93, - 16858: 0x00009B92, - 16859: 0x00009B90, - 16860: 0x00009B7A, - 16861: 0x00009B95, - 16862: 0x00009B7D, - 16863: 0x00009B88, - 16864: 0x00009D25, - 16865: 0x00009D17, - 16866: 0x00009D20, - 16867: 0x00009D1E, - 16868: 0x00009D14, - 16869: 0x00009D29, - 16870: 0x00009D1D, - 16871: 0x00009D18, - 16872: 0x00009D22, - 16873: 0x00009D10, - 16874: 0x00009D19, - 16875: 0x00009D1F, - 16876: 0x00009E88, - 16877: 0x00009E86, - 16878: 0x00009E87, - 16879: 0x00009EAE, - 16880: 0x00009EAD, - 16881: 0x00009ED5, - 16882: 0x00009ED6, - 16883: 0x00009EFA, - 16884: 0x00009F12, - 16885: 0x00009F3D, - 16886: 0x00005126, - 16887: 0x00005125, - 16888: 0x00005122, - 16889: 0x00005124, - 16890: 0x00005120, - 16891: 0x00005129, - 16892: 0x000052F4, - 16893: 0x00005693, - 16894: 0x0000568C, - 16895: 0x0000568D, - 16896: 0x00005686, - 16897: 0x00005684, - 16898: 0x00005683, - 16899: 0x0000567E, - 16900: 0x00005682, - 16901: 0x0000567F, - 16902: 0x00005681, - 16903: 0x000058D6, - 16904: 0x000058D4, - 16905: 0x000058CF, - 16906: 0x000058D2, - 16907: 0x00005B2D, - 16908: 0x00005B25, - 16909: 0x00005B32, - 16910: 0x00005B23, - 16911: 0x00005B2C, - 16912: 0x00005B27, - 16913: 0x00005B26, - 16914: 0x00005B2F, - 16915: 0x00005B2E, - 16916: 0x00005B7B, - 16917: 0x00005BF1, - 16918: 0x00005BF2, - 16919: 0x00005DB7, - 16920: 0x00005E6C, - 16921: 0x00005E6A, - 16922: 0x00005FBE, - 16923: 0x00005FBB, - 16924: 0x000061C3, - 16925: 0x000061B5, - 16926: 0x000061BC, - 16927: 0x000061E7, - 16928: 0x000061E0, - 16929: 0x000061E5, - 16930: 0x000061E4, - 16931: 0x000061E8, - 16932: 0x000061DE, - 16933: 0x000064EF, - 16934: 0x000064E9, - 16935: 0x000064E3, - 16936: 0x000064EB, - 16937: 0x000064E4, - 16938: 0x000064E8, - 16939: 0x00006581, - 16940: 0x00006580, - 16941: 0x000065B6, - 16942: 0x000065DA, - 16943: 0x000066D2, - 16944: 0x00006A8D, - 16945: 0x00006A96, - 16946: 0x00006A81, - 16947: 0x00006AA5, - 16948: 0x00006A89, - 16949: 0x00006A9F, - 16950: 0x00006A9B, - 16951: 0x00006AA1, - 16952: 0x00006A9E, - 16953: 0x00006A87, - 16954: 0x00006A93, - 16955: 0x00006A8E, - 16956: 0x00006A95, - 16957: 0x00006A83, - 16958: 0x00006AA8, - 16959: 0x00006AA4, - 16960: 0x00006A91, - 16961: 0x00006A7F, - 16962: 0x00006AA6, - 16963: 0x00006A9A, - 16964: 0x00006A85, - 16965: 0x00006A8C, - 16966: 0x00006A92, - 16967: 0x00006B5B, - 16968: 0x00006BAD, - 16969: 0x00006C09, - 16970: 0x00006FCC, - 16971: 0x00006FA9, - 16972: 0x00006FF4, - 16973: 0x00006FD4, - 16974: 0x00006FE3, - 16975: 0x00006FDC, - 16976: 0x00006FED, - 16977: 0x00006FE7, - 16978: 0x00006FE6, - 16979: 0x00006FDE, - 16980: 0x00006FF2, - 16981: 0x00006FDD, - 16982: 0x00006FE2, - 16983: 0x00006FE8, - 16984: 0x000071E1, - 16985: 0x000071F1, - 16986: 0x000071E8, - 16987: 0x000071F2, - 16988: 0x000071E4, - 16989: 0x000071F0, - 16990: 0x000071E2, - 16991: 0x00007373, - 16992: 0x0000736E, - 16993: 0x0000736F, - 16994: 0x00007497, - 16995: 0x000074B2, - 16996: 0x000074AB, - 16997: 0x00007490, - 16998: 0x000074AA, - 16999: 0x000074AD, - 17000: 0x000074B1, - 17001: 0x000074A5, - 17002: 0x000074AF, - 17003: 0x00007510, - 17004: 0x00007511, - 17005: 0x00007512, - 17006: 0x0000750F, - 17007: 0x00007584, - 17008: 0x00007643, - 17009: 0x00007648, - 17010: 0x00007649, - 17011: 0x00007647, - 17012: 0x000076A4, - 17013: 0x000076E9, - 17014: 0x000077B5, - 17015: 0x000077AB, - 17016: 0x000077B2, - 17017: 0x000077B7, - 17018: 0x000077B6, - 17019: 0x000077B4, - 17020: 0x000077B1, - 17021: 0x000077A8, - 17022: 0x000077F0, - 17023: 0x000078F3, - 17024: 0x000078FD, - 17025: 0x00007902, - 17026: 0x000078FB, - 17027: 0x000078FC, - 17028: 0x000078F2, - 17029: 0x00007905, - 17030: 0x000078F9, - 17031: 0x000078FE, - 17032: 0x00007904, - 17033: 0x000079AB, - 17034: 0x000079A8, - 17035: 0x00007A5C, - 17036: 0x00007A5B, - 17037: 0x00007A56, - 17038: 0x00007A58, - 17039: 0x00007A54, - 17040: 0x00007A5A, - 17041: 0x00007ABE, - 17042: 0x00007AC0, - 17043: 0x00007AC1, - 17044: 0x00007C05, - 17045: 0x00007C0F, - 17046: 0x00007BF2, - 17047: 0x00007C00, - 17048: 0x00007BFF, - 17049: 0x00007BFB, - 17050: 0x00007C0E, - 17051: 0x00007BF4, - 17052: 0x00007C0B, - 17053: 0x00007BF3, - 17054: 0x00007C02, - 17055: 0x00007C09, - 17056: 0x00007C03, - 17057: 0x00007C01, - 17058: 0x00007BF8, - 17059: 0x00007BFD, - 17060: 0x00007C06, - 17061: 0x00007BF0, - 17062: 0x00007BF1, - 17063: 0x00007C10, - 17064: 0x00007C0A, - 17065: 0x00007CE8, - 17066: 0x00007E2D, - 17067: 0x00007E3C, - 17068: 0x00007E42, - 17069: 0x00007E33, - 17070: 0x00009848, - 17071: 0x00007E38, - 17072: 0x00007E2A, - 17073: 0x00007E49, - 17074: 0x00007E40, - 17075: 0x00007E47, - 17076: 0x00007E29, - 17077: 0x00007E4C, - 17078: 0x00007E30, - 17079: 0x00007E3B, - 17080: 0x00007E36, - 17081: 0x00007E44, - 17082: 0x00007E3A, - 17083: 0x00007F45, - 17084: 0x00007F7F, - 17085: 0x00007F7E, - 17086: 0x00007F7D, - 17087: 0x00007FF4, - 17088: 0x00007FF2, - 17089: 0x0000802C, - 17090: 0x000081BB, - 17091: 0x000081C4, - 17092: 0x000081CC, - 17093: 0x000081CA, - 17094: 0x000081C5, - 17095: 0x000081C7, - 17096: 0x000081BC, - 17097: 0x000081E9, - 17098: 0x0000825B, - 17099: 0x0000825A, - 17100: 0x0000825C, - 17101: 0x00008583, - 17102: 0x00008580, - 17103: 0x0000858F, - 17104: 0x000085A7, - 17105: 0x00008595, - 17106: 0x000085A0, - 17107: 0x0000858B, - 17108: 0x000085A3, - 17109: 0x0000857B, - 17110: 0x000085A4, - 17111: 0x0000859A, - 17112: 0x0000859E, - 17113: 0x00008577, - 17114: 0x0000857C, - 17115: 0x00008589, - 17116: 0x000085A1, - 17117: 0x0000857A, - 17118: 0x00008578, - 17119: 0x00008557, - 17120: 0x0000858E, - 17121: 0x00008596, - 17122: 0x00008586, - 17123: 0x0000858D, - 17124: 0x00008599, - 17125: 0x0000859D, - 17126: 0x00008581, - 17127: 0x000085A2, - 17128: 0x00008582, - 17129: 0x00008588, - 17130: 0x00008585, - 17131: 0x00008579, - 17132: 0x00008576, - 17133: 0x00008598, - 17134: 0x00008590, - 17135: 0x0000859F, - 17136: 0x00008668, - 17137: 0x000087BE, - 17138: 0x000087AA, - 17139: 0x000087AD, - 17140: 0x000087C5, - 17141: 0x000087B0, - 17142: 0x000087AC, - 17143: 0x000087B9, - 17144: 0x000087B5, - 17145: 0x000087BC, - 17146: 0x000087AE, - 17147: 0x000087C9, - 17148: 0x000087C3, - 17149: 0x000087C2, - 17150: 0x000087CC, - 17151: 0x000087B7, - 17152: 0x000087AF, - 17153: 0x000087C4, - 17154: 0x000087CA, - 17155: 0x000087B4, - 17156: 0x000087B6, - 17157: 0x000087BF, - 17158: 0x000087B8, - 17159: 0x000087BD, - 17160: 0x000087DE, - 17161: 0x000087B2, - 17162: 0x00008935, - 17163: 0x00008933, - 17164: 0x0000893C, - 17165: 0x0000893E, - 17166: 0x00008941, - 17167: 0x00008952, - 17168: 0x00008937, - 17169: 0x00008942, - 17170: 0x000089AD, - 17171: 0x000089AF, - 17172: 0x000089AE, - 17173: 0x000089F2, - 17174: 0x000089F3, - 17175: 0x00008B1E, - 17176: 0x00008B18, - 17177: 0x00008B16, - 17178: 0x00008B11, - 17179: 0x00008B05, - 17180: 0x00008B0B, - 17181: 0x00008B22, - 17182: 0x00008B0F, - 17183: 0x00008B12, - 17184: 0x00008B15, - 17185: 0x00008B07, - 17186: 0x00008B0D, - 17187: 0x00008B08, - 17188: 0x00008B06, - 17189: 0x00008B1C, - 17190: 0x00008B13, - 17191: 0x00008B1A, - 17192: 0x00008C4F, - 17193: 0x00008C70, - 17194: 0x00008C72, - 17195: 0x00008C71, - 17196: 0x00008C6F, - 17197: 0x00008C95, - 17198: 0x00008C94, - 17199: 0x00008CF9, - 17200: 0x00008D6F, - 17201: 0x00008E4E, - 17202: 0x00008E4D, - 17203: 0x00008E53, - 17204: 0x00008E50, - 17205: 0x00008E4C, - 17206: 0x00008E47, - 17207: 0x00008F43, - 17208: 0x00008F40, - 17209: 0x00009085, - 17210: 0x0000907E, - 17211: 0x00009138, - 17212: 0x0000919A, - 17213: 0x000091A2, - 17214: 0x0000919B, - 17215: 0x00009199, - 17216: 0x0000919F, - 17217: 0x000091A1, - 17218: 0x0000919D, - 17219: 0x000091A0, - 17220: 0x000093A1, - 17221: 0x00009383, - 17222: 0x000093AF, - 17223: 0x00009364, - 17224: 0x00009356, - 17225: 0x00009347, - 17226: 0x0000937C, - 17227: 0x00009358, - 17228: 0x0000935C, - 17229: 0x00009376, - 17230: 0x00009349, - 17231: 0x00009350, - 17232: 0x00009351, - 17233: 0x00009360, - 17234: 0x0000936D, - 17235: 0x0000938F, - 17236: 0x0000934C, - 17237: 0x0000936A, - 17238: 0x00009379, - 17239: 0x00009357, - 17240: 0x00009355, - 17241: 0x00009352, - 17242: 0x0000934F, - 17243: 0x00009371, - 17244: 0x00009377, - 17245: 0x0000937B, - 17246: 0x00009361, - 17247: 0x0000935E, - 17248: 0x00009363, - 17249: 0x00009367, - 17250: 0x00009380, - 17251: 0x0000934E, - 17252: 0x00009359, - 17253: 0x000095C7, - 17254: 0x000095C0, - 17255: 0x000095C9, - 17256: 0x000095C3, - 17257: 0x000095C5, - 17258: 0x000095B7, - 17259: 0x000096AE, - 17260: 0x000096B0, - 17261: 0x000096AC, - 17262: 0x00009720, - 17263: 0x0000971F, - 17264: 0x00009718, - 17265: 0x0000971D, - 17266: 0x00009719, - 17267: 0x0000979A, - 17268: 0x000097A1, - 17269: 0x0000979C, - 17270: 0x0000979E, - 17271: 0x0000979D, - 17272: 0x000097D5, - 17273: 0x000097D4, - 17274: 0x000097F1, - 17275: 0x00009841, - 17276: 0x00009844, - 17277: 0x0000984A, - 17278: 0x00009849, - 17279: 0x00009845, - 17280: 0x00009843, - 17281: 0x00009925, - 17282: 0x0000992B, - 17283: 0x0000992C, - 17284: 0x0000992A, - 17285: 0x00009933, - 17286: 0x00009932, - 17287: 0x0000992F, - 17288: 0x0000992D, - 17289: 0x00009931, - 17290: 0x00009930, - 17291: 0x00009998, - 17292: 0x000099A3, - 17293: 0x000099A1, - 17294: 0x00009A02, - 17295: 0x000099FA, - 17296: 0x000099F4, - 17297: 0x000099F7, - 17298: 0x000099F9, - 17299: 0x000099F8, - 17300: 0x000099F6, - 17301: 0x000099FB, - 17302: 0x000099FD, - 17303: 0x000099FE, - 17304: 0x000099FC, - 17305: 0x00009A03, - 17306: 0x00009ABE, - 17307: 0x00009AFE, - 17308: 0x00009AFD, - 17309: 0x00009B01, - 17310: 0x00009AFC, - 17311: 0x00009B48, - 17312: 0x00009B9A, - 17313: 0x00009BA8, - 17314: 0x00009B9E, - 17315: 0x00009B9B, - 17316: 0x00009BA6, - 17317: 0x00009BA1, - 17318: 0x00009BA5, - 17319: 0x00009BA4, - 17320: 0x00009B86, - 17321: 0x00009BA2, - 17322: 0x00009BA0, - 17323: 0x00009BAF, - 17324: 0x00009D33, - 17325: 0x00009D41, - 17326: 0x00009D67, - 17327: 0x00009D36, - 17328: 0x00009D2E, - 17329: 0x00009D2F, - 17330: 0x00009D31, - 17331: 0x00009D38, - 17332: 0x00009D30, - 17333: 0x00009D45, - 17334: 0x00009D42, - 17335: 0x00009D43, - 17336: 0x00009D3E, - 17337: 0x00009D37, - 17338: 0x00009D40, - 17339: 0x00009D3D, - 17340: 0x00007FF5, - 17341: 0x00009D2D, - 17342: 0x00009E8A, - 17343: 0x00009E89, - 17344: 0x00009E8D, - 17345: 0x00009EB0, - 17346: 0x00009EC8, - 17347: 0x00009EDA, - 17348: 0x00009EFB, - 17349: 0x00009EFF, - 17350: 0x00009F24, - 17351: 0x00009F23, - 17352: 0x00009F22, - 17353: 0x00009F54, - 17354: 0x00009FA0, - 17355: 0x00005131, - 17356: 0x0000512D, - 17357: 0x0000512E, - 17358: 0x00005698, - 17359: 0x0000569C, - 17360: 0x00005697, - 17361: 0x0000569A, - 17362: 0x0000569D, - 17363: 0x00005699, - 17364: 0x00005970, - 17365: 0x00005B3C, - 17366: 0x00005C69, - 17367: 0x00005C6A, - 17368: 0x00005DC0, - 17369: 0x00005E6D, - 17370: 0x00005E6E, - 17371: 0x000061D8, - 17372: 0x000061DF, - 17373: 0x000061ED, - 17374: 0x000061EE, - 17375: 0x000061F1, - 17376: 0x000061EA, - 17377: 0x000061F0, - 17378: 0x000061EB, - 17379: 0x000061D6, - 17380: 0x000061E9, - 17381: 0x000064FF, - 17382: 0x00006504, - 17383: 0x000064FD, - 17384: 0x000064F8, - 17385: 0x00006501, - 17386: 0x00006503, - 17387: 0x000064FC, - 17388: 0x00006594, - 17389: 0x000065DB, - 17390: 0x000066DA, - 17391: 0x000066DB, - 17392: 0x000066D8, - 17393: 0x00006AC5, - 17394: 0x00006AB9, - 17395: 0x00006ABD, - 17396: 0x00006AE1, - 17397: 0x00006AC6, - 17398: 0x00006ABA, - 17399: 0x00006AB6, - 17400: 0x00006AB7, - 17401: 0x00006AC7, - 17402: 0x00006AB4, - 17403: 0x00006AAD, - 17404: 0x00006B5E, - 17405: 0x00006BC9, - 17406: 0x00006C0B, - 17407: 0x00007007, - 17408: 0x0000700C, - 17409: 0x0000700D, - 17410: 0x00007001, - 17411: 0x00007005, - 17412: 0x00007014, - 17413: 0x0000700E, - 17414: 0x00006FFF, - 17415: 0x00007000, - 17416: 0x00006FFB, - 17417: 0x00007026, - 17418: 0x00006FFC, - 17419: 0x00006FF7, - 17420: 0x0000700A, - 17421: 0x00007201, - 17422: 0x000071FF, - 17423: 0x000071F9, - 17424: 0x00007203, - 17425: 0x000071FD, - 17426: 0x00007376, - 17427: 0x000074B8, - 17428: 0x000074C0, - 17429: 0x000074B5, - 17430: 0x000074C1, - 17431: 0x000074BE, - 17432: 0x000074B6, - 17433: 0x000074BB, - 17434: 0x000074C2, - 17435: 0x00007514, - 17436: 0x00007513, - 17437: 0x0000765C, - 17438: 0x00007664, - 17439: 0x00007659, - 17440: 0x00007650, - 17441: 0x00007653, - 17442: 0x00007657, - 17443: 0x0000765A, - 17444: 0x000076A6, - 17445: 0x000076BD, - 17446: 0x000076EC, - 17447: 0x000077C2, - 17448: 0x000077BA, - 17449: 0x000078FF, - 17450: 0x0000790C, - 17451: 0x00007913, - 17452: 0x00007914, - 17453: 0x00007909, - 17454: 0x00007910, - 17455: 0x00007912, - 17456: 0x00007911, - 17457: 0x000079AD, - 17458: 0x000079AC, - 17459: 0x00007A5F, - 17460: 0x00007C1C, - 17461: 0x00007C29, - 17462: 0x00007C19, - 17463: 0x00007C20, - 17464: 0x00007C1F, - 17465: 0x00007C2D, - 17466: 0x00007C1D, - 17467: 0x00007C26, - 17468: 0x00007C28, - 17469: 0x00007C22, - 17470: 0x00007C25, - 17471: 0x00007C30, - 17472: 0x00007E5C, - 17473: 0x00007E50, - 17474: 0x00007E56, - 17475: 0x00007E63, - 17476: 0x00007E58, - 17477: 0x00007E62, - 17478: 0x00007E5F, - 17479: 0x00007E51, - 17480: 0x00007E60, - 17481: 0x00007E57, - 17482: 0x00007E53, - 17483: 0x00007FB5, - 17484: 0x00007FB3, - 17485: 0x00007FF7, - 17486: 0x00007FF8, - 17487: 0x00008075, - 17488: 0x000081D1, - 17489: 0x000081D2, - 17490: 0x000081D0, - 17491: 0x0000825F, - 17492: 0x0000825E, - 17493: 0x000085B4, - 17494: 0x000085C6, - 17495: 0x000085C0, - 17496: 0x000085C3, - 17497: 0x000085C2, - 17498: 0x000085B3, - 17499: 0x000085B5, - 17500: 0x000085BD, - 17501: 0x000085C7, - 17502: 0x000085C4, - 17503: 0x000085BF, - 17504: 0x000085CB, - 17505: 0x000085CE, - 17506: 0x000085C8, - 17507: 0x000085C5, - 17508: 0x000085B1, - 17509: 0x000085B6, - 17510: 0x000085D2, - 17511: 0x00008624, - 17512: 0x000085B8, - 17513: 0x000085B7, - 17514: 0x000085BE, - 17515: 0x00008669, - 17516: 0x000087E7, - 17517: 0x000087E6, - 17518: 0x000087E2, - 17519: 0x000087DB, - 17520: 0x000087EB, - 17521: 0x000087EA, - 17522: 0x000087E5, - 17523: 0x000087DF, - 17524: 0x000087F3, - 17525: 0x000087E4, - 17526: 0x000087D4, - 17527: 0x000087DC, - 17528: 0x000087D3, - 17529: 0x000087ED, - 17530: 0x000087D8, - 17531: 0x000087E3, - 17532: 0x000087A4, - 17533: 0x000087D7, - 17534: 0x000087D9, - 17535: 0x00008801, - 17536: 0x000087F4, - 17537: 0x000087E8, - 17538: 0x000087DD, - 17539: 0x00008953, - 17540: 0x0000894B, - 17541: 0x0000894F, - 17542: 0x0000894C, - 17543: 0x00008946, - 17544: 0x00008950, - 17545: 0x00008951, - 17546: 0x00008949, - 17547: 0x00008B2A, - 17548: 0x00008B27, - 17549: 0x00008B23, - 17550: 0x00008B33, - 17551: 0x00008B30, - 17552: 0x00008B35, - 17553: 0x00008B47, - 17554: 0x00008B2F, - 17555: 0x00008B3C, - 17556: 0x00008B3E, - 17557: 0x00008B31, - 17558: 0x00008B25, - 17559: 0x00008B37, - 17560: 0x00008B26, - 17561: 0x00008B36, - 17562: 0x00008B2E, - 17563: 0x00008B24, - 17564: 0x00008B3B, - 17565: 0x00008B3D, - 17566: 0x00008B3A, - 17567: 0x00008C42, - 17568: 0x00008C75, - 17569: 0x00008C99, - 17570: 0x00008C98, - 17571: 0x00008C97, - 17572: 0x00008CFE, - 17573: 0x00008D04, - 17574: 0x00008D02, - 17575: 0x00008D00, - 17576: 0x00008E5C, - 17577: 0x00008E62, - 17578: 0x00008E60, - 17579: 0x00008E57, - 17580: 0x00008E56, - 17581: 0x00008E5E, - 17582: 0x00008E65, - 17583: 0x00008E67, - 17584: 0x00008E5B, - 17585: 0x00008E5A, - 17586: 0x00008E61, - 17587: 0x00008E5D, - 17588: 0x00008E69, - 17589: 0x00008E54, - 17590: 0x00008F46, - 17591: 0x00008F47, - 17592: 0x00008F48, - 17593: 0x00008F4B, - 17594: 0x00009128, - 17595: 0x0000913A, - 17596: 0x0000913B, - 17597: 0x0000913E, - 17598: 0x000091A8, - 17599: 0x000091A5, - 17600: 0x000091A7, - 17601: 0x000091AF, - 17602: 0x000091AA, - 17603: 0x000093B5, - 17604: 0x0000938C, - 17605: 0x00009392, - 17606: 0x000093B7, - 17607: 0x0000939B, - 17608: 0x0000939D, - 17609: 0x00009389, - 17610: 0x000093A7, - 17611: 0x0000938E, - 17612: 0x000093AA, - 17613: 0x0000939E, - 17614: 0x000093A6, - 17615: 0x00009395, - 17616: 0x00009388, - 17617: 0x00009399, - 17618: 0x0000939F, - 17619: 0x0000938D, - 17620: 0x000093B1, - 17621: 0x00009391, - 17622: 0x000093B2, - 17623: 0x000093A4, - 17624: 0x000093A8, - 17625: 0x000093B4, - 17626: 0x000093A3, - 17627: 0x000093A5, - 17628: 0x000095D2, - 17629: 0x000095D3, - 17630: 0x000095D1, - 17631: 0x000096B3, - 17632: 0x000096D7, - 17633: 0x000096DA, - 17634: 0x00005DC2, - 17635: 0x000096DF, - 17636: 0x000096D8, - 17637: 0x000096DD, - 17638: 0x00009723, - 17639: 0x00009722, - 17640: 0x00009725, - 17641: 0x000097AC, - 17642: 0x000097AE, - 17643: 0x000097A8, - 17644: 0x000097AB, - 17645: 0x000097A4, - 17646: 0x000097AA, - 17647: 0x000097A2, - 17648: 0x000097A5, - 17649: 0x000097D7, - 17650: 0x000097D9, - 17651: 0x000097D6, - 17652: 0x000097D8, - 17653: 0x000097FA, - 17654: 0x00009850, - 17655: 0x00009851, - 17656: 0x00009852, - 17657: 0x000098B8, - 17658: 0x00009941, - 17659: 0x0000993C, - 17660: 0x0000993A, - 17661: 0x00009A0F, - 17662: 0x00009A0B, - 17663: 0x00009A09, - 17664: 0x00009A0D, - 17665: 0x00009A04, - 17666: 0x00009A11, - 17667: 0x00009A0A, - 17668: 0x00009A05, - 17669: 0x00009A07, - 17670: 0x00009A06, - 17671: 0x00009AC0, - 17672: 0x00009ADC, - 17673: 0x00009B08, - 17674: 0x00009B04, - 17675: 0x00009B05, - 17676: 0x00009B29, - 17677: 0x00009B35, - 17678: 0x00009B4A, - 17679: 0x00009B4C, - 17680: 0x00009B4B, - 17681: 0x00009BC7, - 17682: 0x00009BC6, - 17683: 0x00009BC3, - 17684: 0x00009BBF, - 17685: 0x00009BC1, - 17686: 0x00009BB5, - 17687: 0x00009BB8, - 17688: 0x00009BD3, - 17689: 0x00009BB6, - 17690: 0x00009BC4, - 17691: 0x00009BB9, - 17692: 0x00009BBD, - 17693: 0x00009D5C, - 17694: 0x00009D53, - 17695: 0x00009D4F, - 17696: 0x00009D4A, - 17697: 0x00009D5B, - 17698: 0x00009D4B, - 17699: 0x00009D59, - 17700: 0x00009D56, - 17701: 0x00009D4C, - 17702: 0x00009D57, - 17703: 0x00009D52, - 17704: 0x00009D54, - 17705: 0x00009D5F, - 17706: 0x00009D58, - 17707: 0x00009D5A, - 17708: 0x00009E8E, - 17709: 0x00009E8C, - 17710: 0x00009EDF, - 17711: 0x00009F01, - 17712: 0x00009F00, - 17713: 0x00009F16, - 17714: 0x00009F25, - 17715: 0x00009F2B, - 17716: 0x00009F2A, - 17717: 0x00009F29, - 17718: 0x00009F28, - 17719: 0x00009F4C, - 17720: 0x00009F55, - 17721: 0x00005134, - 17722: 0x00005135, - 17723: 0x00005296, - 17724: 0x000052F7, - 17725: 0x000053B4, - 17726: 0x000056AB, - 17727: 0x000056AD, - 17728: 0x000056A6, - 17729: 0x000056A7, - 17730: 0x000056AA, - 17731: 0x000056AC, - 17732: 0x000058DA, - 17733: 0x000058DD, - 17734: 0x000058DB, - 17735: 0x00005912, - 17736: 0x00005B3D, - 17737: 0x00005B3E, - 17738: 0x00005B3F, - 17739: 0x00005DC3, - 17740: 0x00005E70, - 17741: 0x00005FBF, - 17742: 0x000061FB, - 17743: 0x00006507, - 17744: 0x00006510, - 17745: 0x0000650D, - 17746: 0x00006509, - 17747: 0x0000650C, - 17748: 0x0000650E, - 17749: 0x00006584, - 17750: 0x000065DE, - 17751: 0x000065DD, - 17752: 0x000066DE, - 17753: 0x00006AE7, - 17754: 0x00006AE0, - 17755: 0x00006ACC, - 17756: 0x00006AD1, - 17757: 0x00006AD9, - 17758: 0x00006ACB, - 17759: 0x00006ADF, - 17760: 0x00006ADC, - 17761: 0x00006AD0, - 17762: 0x00006AEB, - 17763: 0x00006ACF, - 17764: 0x00006ACD, - 17765: 0x00006ADE, - 17766: 0x00006B60, - 17767: 0x00006BB0, - 17768: 0x00006C0C, - 17769: 0x00007019, - 17770: 0x00007027, - 17771: 0x00007020, - 17772: 0x00007016, - 17773: 0x0000702B, - 17774: 0x00007021, - 17775: 0x00007022, - 17776: 0x00007023, - 17777: 0x00007029, - 17778: 0x00007017, - 17779: 0x00007024, - 17780: 0x0000701C, - 17781: 0x0000702A, - 17782: 0x0000720C, - 17783: 0x0000720A, - 17784: 0x00007207, - 17785: 0x00007202, - 17786: 0x00007205, - 17787: 0x000072A5, - 17788: 0x000072A6, - 17789: 0x000072A4, - 17790: 0x000072A3, - 17791: 0x000072A1, - 17792: 0x000074CB, - 17793: 0x000074C5, - 17794: 0x000074B7, - 17795: 0x000074C3, - 17796: 0x00007516, - 17797: 0x00007660, - 17798: 0x000077C9, - 17799: 0x000077CA, - 17800: 0x000077C4, - 17801: 0x000077F1, - 17802: 0x0000791D, - 17803: 0x0000791B, - 17804: 0x00007921, - 17805: 0x0000791C, - 17806: 0x00007917, - 17807: 0x0000791E, - 17808: 0x000079B0, - 17809: 0x00007A67, - 17810: 0x00007A68, - 17811: 0x00007C33, - 17812: 0x00007C3C, - 17813: 0x00007C39, - 17814: 0x00007C2C, - 17815: 0x00007C3B, - 17816: 0x00007CEC, - 17817: 0x00007CEA, - 17818: 0x00007E76, - 17819: 0x00007E75, - 17820: 0x00007E78, - 17821: 0x00007E70, - 17822: 0x00007E77, - 17823: 0x00007E6F, - 17824: 0x00007E7A, - 17825: 0x00007E72, - 17826: 0x00007E74, - 17827: 0x00007E68, - 17828: 0x00007F4B, - 17829: 0x00007F4A, - 17830: 0x00007F83, - 17831: 0x00007F86, - 17832: 0x00007FB7, - 17833: 0x00007FFD, - 17834: 0x00007FFE, - 17835: 0x00008078, - 17836: 0x000081D7, - 17837: 0x000081D5, - 17838: 0x00008264, - 17839: 0x00008261, - 17840: 0x00008263, - 17841: 0x000085EB, - 17842: 0x000085F1, - 17843: 0x000085ED, - 17844: 0x000085D9, - 17845: 0x000085E1, - 17846: 0x000085E8, - 17847: 0x000085DA, - 17848: 0x000085D7, - 17849: 0x000085EC, - 17850: 0x000085F2, - 17851: 0x000085F8, - 17852: 0x000085D8, - 17853: 0x000085DF, - 17854: 0x000085E3, - 17855: 0x000085DC, - 17856: 0x000085D1, - 17857: 0x000085F0, - 17858: 0x000085E6, - 17859: 0x000085EF, - 17860: 0x000085DE, - 17861: 0x000085E2, - 17862: 0x00008800, - 17863: 0x000087FA, - 17864: 0x00008803, - 17865: 0x000087F6, - 17866: 0x000087F7, - 17867: 0x00008809, - 17868: 0x0000880C, - 17869: 0x0000880B, - 17870: 0x00008806, - 17871: 0x000087FC, - 17872: 0x00008808, - 17873: 0x000087FF, - 17874: 0x0000880A, - 17875: 0x00008802, - 17876: 0x00008962, - 17877: 0x0000895A, - 17878: 0x0000895B, - 17879: 0x00008957, - 17880: 0x00008961, - 17881: 0x0000895C, - 17882: 0x00008958, - 17883: 0x0000895D, - 17884: 0x00008959, - 17885: 0x00008988, - 17886: 0x000089B7, - 17887: 0x000089B6, - 17888: 0x000089F6, - 17889: 0x00008B50, - 17890: 0x00008B48, - 17891: 0x00008B4A, - 17892: 0x00008B40, - 17893: 0x00008B53, - 17894: 0x00008B56, - 17895: 0x00008B54, - 17896: 0x00008B4B, - 17897: 0x00008B55, - 17898: 0x00008B51, - 17899: 0x00008B42, - 17900: 0x00008B52, - 17901: 0x00008B57, - 17902: 0x00008C43, - 17903: 0x00008C77, - 17904: 0x00008C76, - 17905: 0x00008C9A, - 17906: 0x00008D06, - 17907: 0x00008D07, - 17908: 0x00008D09, - 17909: 0x00008DAC, - 17910: 0x00008DAA, - 17911: 0x00008DAD, - 17912: 0x00008DAB, - 17913: 0x00008E6D, - 17914: 0x00008E78, - 17915: 0x00008E73, - 17916: 0x00008E6A, - 17917: 0x00008E6F, - 17918: 0x00008E7B, - 17919: 0x00008EC2, - 17920: 0x00008F52, - 17921: 0x00008F51, - 17922: 0x00008F4F, - 17923: 0x00008F50, - 17924: 0x00008F53, - 17925: 0x00008FB4, - 17926: 0x00009140, - 17927: 0x0000913F, - 17928: 0x000091B0, - 17929: 0x000091AD, - 17930: 0x000093DE, - 17931: 0x000093C7, - 17932: 0x000093CF, - 17933: 0x000093C2, - 17934: 0x000093DA, - 17935: 0x000093D0, - 17936: 0x000093F9, - 17937: 0x000093EC, - 17938: 0x000093CC, - 17939: 0x000093D9, - 17940: 0x000093A9, - 17941: 0x000093E6, - 17942: 0x000093CA, - 17943: 0x000093D4, - 17944: 0x000093EE, - 17945: 0x000093E3, - 17946: 0x000093D5, - 17947: 0x000093C4, - 17948: 0x000093CE, - 17949: 0x000093C0, - 17950: 0x000093D2, - 17951: 0x000093E7, - 17952: 0x0000957D, - 17953: 0x000095DA, - 17954: 0x000095DB, - 17955: 0x000096E1, - 17956: 0x00009729, - 17957: 0x0000972B, - 17958: 0x0000972C, - 17959: 0x00009728, - 17960: 0x00009726, - 17961: 0x000097B3, - 17962: 0x000097B7, - 17963: 0x000097B6, - 17964: 0x000097DD, - 17965: 0x000097DE, - 17966: 0x000097DF, - 17967: 0x0000985C, - 17968: 0x00009859, - 17969: 0x0000985D, - 17970: 0x00009857, - 17971: 0x000098BF, - 17972: 0x000098BD, - 17973: 0x000098BB, - 17974: 0x000098BE, - 17975: 0x00009948, - 17976: 0x00009947, - 17977: 0x00009943, - 17978: 0x000099A6, - 17979: 0x000099A7, - 17980: 0x00009A1A, - 17981: 0x00009A15, - 17982: 0x00009A25, - 17983: 0x00009A1D, - 17984: 0x00009A24, - 17985: 0x00009A1B, - 17986: 0x00009A22, - 17987: 0x00009A20, - 17988: 0x00009A27, - 17989: 0x00009A23, - 17990: 0x00009A1E, - 17991: 0x00009A1C, - 17992: 0x00009A14, - 17993: 0x00009AC2, - 17994: 0x00009B0B, - 17995: 0x00009B0A, - 17996: 0x00009B0E, - 17997: 0x00009B0C, - 17998: 0x00009B37, - 17999: 0x00009BEA, - 18000: 0x00009BEB, - 18001: 0x00009BE0, - 18002: 0x00009BDE, - 18003: 0x00009BE4, - 18004: 0x00009BE6, - 18005: 0x00009BE2, - 18006: 0x00009BF0, - 18007: 0x00009BD4, - 18008: 0x00009BD7, - 18009: 0x00009BEC, - 18010: 0x00009BDC, - 18011: 0x00009BD9, - 18012: 0x00009BE5, - 18013: 0x00009BD5, - 18014: 0x00009BE1, - 18015: 0x00009BDA, - 18016: 0x00009D77, - 18017: 0x00009D81, - 18018: 0x00009D8A, - 18019: 0x00009D84, - 18020: 0x00009D88, - 18021: 0x00009D71, - 18022: 0x00009D80, - 18023: 0x00009D78, - 18024: 0x00009D86, - 18025: 0x00009D8B, - 18026: 0x00009D8C, - 18027: 0x00009D7D, - 18028: 0x00009D6B, - 18029: 0x00009D74, - 18030: 0x00009D75, - 18031: 0x00009D70, - 18032: 0x00009D69, - 18033: 0x00009D85, - 18034: 0x00009D73, - 18035: 0x00009D7B, - 18036: 0x00009D82, - 18037: 0x00009D6F, - 18038: 0x00009D79, - 18039: 0x00009D7F, - 18040: 0x00009D87, - 18041: 0x00009D68, - 18042: 0x00009E94, - 18043: 0x00009E91, - 18044: 0x00009EC0, - 18045: 0x00009EFC, - 18046: 0x00009F2D, - 18047: 0x00009F40, - 18048: 0x00009F41, - 18049: 0x00009F4D, - 18050: 0x00009F56, - 18051: 0x00009F57, - 18052: 0x00009F58, - 18053: 0x00005337, - 18054: 0x000056B2, - 18055: 0x000056B5, - 18056: 0x000056B3, - 18057: 0x000058E3, - 18058: 0x00005B45, - 18059: 0x00005DC6, - 18060: 0x00005DC7, - 18061: 0x00005EEE, - 18062: 0x00005EEF, - 18063: 0x00005FC0, - 18064: 0x00005FC1, - 18065: 0x000061F9, - 18066: 0x00006517, - 18067: 0x00006516, - 18068: 0x00006515, - 18069: 0x00006513, - 18070: 0x000065DF, - 18071: 0x000066E8, - 18072: 0x000066E3, - 18073: 0x000066E4, - 18074: 0x00006AF3, - 18075: 0x00006AF0, - 18076: 0x00006AEA, - 18077: 0x00006AE8, - 18078: 0x00006AF9, - 18079: 0x00006AF1, - 18080: 0x00006AEE, - 18081: 0x00006AEF, - 18082: 0x0000703C, - 18083: 0x00007035, - 18084: 0x0000702F, - 18085: 0x00007037, - 18086: 0x00007034, - 18087: 0x00007031, - 18088: 0x00007042, - 18089: 0x00007038, - 18090: 0x0000703F, - 18091: 0x0000703A, - 18092: 0x00007039, - 18093: 0x00007040, - 18094: 0x0000703B, - 18095: 0x00007033, - 18096: 0x00007041, - 18097: 0x00007213, - 18098: 0x00007214, - 18099: 0x000072A8, - 18100: 0x0000737D, - 18101: 0x0000737C, - 18102: 0x000074BA, - 18103: 0x000076AB, - 18104: 0x000076AA, - 18105: 0x000076BE, - 18106: 0x000076ED, - 18107: 0x000077CC, - 18108: 0x000077CE, - 18109: 0x000077CF, - 18110: 0x000077CD, - 18111: 0x000077F2, - 18112: 0x00007925, - 18113: 0x00007923, - 18114: 0x00007927, - 18115: 0x00007928, - 18116: 0x00007924, - 18117: 0x00007929, - 18118: 0x000079B2, - 18119: 0x00007A6E, - 18120: 0x00007A6C, - 18121: 0x00007A6D, - 18122: 0x00007AF7, - 18123: 0x00007C49, - 18124: 0x00007C48, - 18125: 0x00007C4A, - 18126: 0x00007C47, - 18127: 0x00007C45, - 18128: 0x00007CEE, - 18129: 0x00007E7B, - 18130: 0x00007E7E, - 18131: 0x00007E81, - 18132: 0x00007E80, - 18133: 0x00007FBA, - 18134: 0x00007FFF, - 18135: 0x00008079, - 18136: 0x000081DB, - 18137: 0x000081D9, - 18138: 0x0000820B, - 18139: 0x00008268, - 18140: 0x00008269, - 18141: 0x00008622, - 18142: 0x000085FF, - 18143: 0x00008601, - 18144: 0x000085FE, - 18145: 0x0000861B, - 18146: 0x00008600, - 18147: 0x000085F6, - 18148: 0x00008604, - 18149: 0x00008609, - 18150: 0x00008605, - 18151: 0x0000860C, - 18152: 0x000085FD, - 18153: 0x00008819, - 18154: 0x00008810, - 18155: 0x00008811, - 18156: 0x00008817, - 18157: 0x00008813, - 18158: 0x00008816, - 18159: 0x00008963, - 18160: 0x00008966, - 18161: 0x000089B9, - 18162: 0x000089F7, - 18163: 0x00008B60, - 18164: 0x00008B6A, - 18165: 0x00008B5D, - 18166: 0x00008B68, - 18167: 0x00008B63, - 18168: 0x00008B65, - 18169: 0x00008B67, - 18170: 0x00008B6D, - 18171: 0x00008DAE, - 18172: 0x00008E86, - 18173: 0x00008E88, - 18174: 0x00008E84, - 18175: 0x00008F59, - 18176: 0x00008F56, - 18177: 0x00008F57, - 18178: 0x00008F55, - 18179: 0x00008F58, - 18180: 0x00008F5A, - 18181: 0x0000908D, - 18182: 0x00009143, - 18183: 0x00009141, - 18184: 0x000091B7, - 18185: 0x000091B5, - 18186: 0x000091B2, - 18187: 0x000091B3, - 18188: 0x0000940B, - 18189: 0x00009413, - 18190: 0x000093FB, - 18191: 0x00009420, - 18192: 0x0000940F, - 18193: 0x00009414, - 18194: 0x000093FE, - 18195: 0x00009415, - 18196: 0x00009410, - 18197: 0x00009428, - 18198: 0x00009419, - 18199: 0x0000940D, - 18200: 0x000093F5, - 18201: 0x00009400, - 18202: 0x000093F7, - 18203: 0x00009407, - 18204: 0x0000940E, - 18205: 0x00009416, - 18206: 0x00009412, - 18207: 0x000093FA, - 18208: 0x00009409, - 18209: 0x000093F8, - 18210: 0x0000940A, - 18211: 0x000093FF, - 18212: 0x000093FC, - 18213: 0x0000940C, - 18214: 0x000093F6, - 18215: 0x00009411, - 18216: 0x00009406, - 18217: 0x000095DE, - 18218: 0x000095E0, - 18219: 0x000095DF, - 18220: 0x0000972E, - 18221: 0x0000972F, - 18222: 0x000097B9, - 18223: 0x000097BB, - 18224: 0x000097FD, - 18225: 0x000097FE, - 18226: 0x00009860, - 18227: 0x00009862, - 18228: 0x00009863, - 18229: 0x0000985F, - 18230: 0x000098C1, - 18231: 0x000098C2, - 18232: 0x00009950, - 18233: 0x0000994E, - 18234: 0x00009959, - 18235: 0x0000994C, - 18236: 0x0000994B, - 18237: 0x00009953, - 18238: 0x00009A32, - 18239: 0x00009A34, - 18240: 0x00009A31, - 18241: 0x00009A2C, - 18242: 0x00009A2A, - 18243: 0x00009A36, - 18244: 0x00009A29, - 18245: 0x00009A2E, - 18246: 0x00009A38, - 18247: 0x00009A2D, - 18248: 0x00009AC7, - 18249: 0x00009ACA, - 18250: 0x00009AC6, - 18251: 0x00009B10, - 18252: 0x00009B12, - 18253: 0x00009B11, - 18254: 0x00009C0B, - 18255: 0x00009C08, - 18256: 0x00009BF7, - 18257: 0x00009C05, - 18258: 0x00009C12, - 18259: 0x00009BF8, - 18260: 0x00009C40, - 18261: 0x00009C07, - 18262: 0x00009C0E, - 18263: 0x00009C06, - 18264: 0x00009C17, - 18265: 0x00009C14, - 18266: 0x00009C09, - 18267: 0x00009D9F, - 18268: 0x00009D99, - 18269: 0x00009DA4, - 18270: 0x00009D9D, - 18271: 0x00009D92, - 18272: 0x00009D98, - 18273: 0x00009D90, - 18274: 0x00009D9B, - 18275: 0x00009DA0, - 18276: 0x00009D94, - 18277: 0x00009D9C, - 18278: 0x00009DAA, - 18279: 0x00009D97, - 18280: 0x00009DA1, - 18281: 0x00009D9A, - 18282: 0x00009DA2, - 18283: 0x00009DA8, - 18284: 0x00009D9E, - 18285: 0x00009DA3, - 18286: 0x00009DBF, - 18287: 0x00009DA9, - 18288: 0x00009D96, - 18289: 0x00009DA6, - 18290: 0x00009DA7, - 18291: 0x00009E99, - 18292: 0x00009E9B, - 18293: 0x00009E9A, - 18294: 0x00009EE5, - 18295: 0x00009EE4, - 18296: 0x00009EE7, - 18297: 0x00009EE6, - 18298: 0x00009F30, - 18299: 0x00009F2E, - 18300: 0x00009F5B, - 18301: 0x00009F60, - 18302: 0x00009F5E, - 18303: 0x00009F5D, - 18304: 0x00009F59, - 18305: 0x00009F91, - 18306: 0x0000513A, - 18307: 0x00005139, - 18308: 0x00005298, - 18309: 0x00005297, - 18310: 0x000056C3, - 18311: 0x000056BD, - 18312: 0x000056BE, - 18313: 0x00005B48, - 18314: 0x00005B47, - 18315: 0x00005DCB, - 18316: 0x00005DCF, - 18317: 0x00005EF1, - 18318: 0x000061FD, - 18319: 0x0000651B, - 18320: 0x00006B02, - 18321: 0x00006AFC, - 18322: 0x00006B03, - 18323: 0x00006AF8, - 18324: 0x00006B00, - 18325: 0x00007043, - 18326: 0x00007044, - 18327: 0x0000704A, - 18328: 0x00007048, - 18329: 0x00007049, - 18330: 0x00007045, - 18331: 0x00007046, - 18332: 0x0000721D, - 18333: 0x0000721A, - 18334: 0x00007219, - 18335: 0x0000737E, - 18336: 0x00007517, - 18337: 0x0000766A, - 18338: 0x000077D0, - 18339: 0x0000792D, - 18340: 0x00007931, - 18341: 0x0000792F, - 18342: 0x00007C54, - 18343: 0x00007C53, - 18344: 0x00007CF2, - 18345: 0x00007E8A, - 18346: 0x00007E87, - 18347: 0x00007E88, - 18348: 0x00007E8B, - 18349: 0x00007E86, - 18350: 0x00007E8D, - 18351: 0x00007F4D, - 18352: 0x00007FBB, - 18353: 0x00008030, - 18354: 0x000081DD, - 18355: 0x00008618, - 18356: 0x0000862A, - 18357: 0x00008626, - 18358: 0x0000861F, - 18359: 0x00008623, - 18360: 0x0000861C, - 18361: 0x00008619, - 18362: 0x00008627, - 18363: 0x0000862E, - 18364: 0x00008621, - 18365: 0x00008620, - 18366: 0x00008629, - 18367: 0x0000861E, - 18368: 0x00008625, - 18369: 0x00008829, - 18370: 0x0000881D, - 18371: 0x0000881B, - 18372: 0x00008820, - 18373: 0x00008824, - 18374: 0x0000881C, - 18375: 0x0000882B, - 18376: 0x0000884A, - 18377: 0x0000896D, - 18378: 0x00008969, - 18379: 0x0000896E, - 18380: 0x0000896B, - 18381: 0x000089FA, - 18382: 0x00008B79, - 18383: 0x00008B78, - 18384: 0x00008B45, - 18385: 0x00008B7A, - 18386: 0x00008B7B, - 18387: 0x00008D10, - 18388: 0x00008D14, - 18389: 0x00008DAF, - 18390: 0x00008E8E, - 18391: 0x00008E8C, - 18392: 0x00008F5E, - 18393: 0x00008F5B, - 18394: 0x00008F5D, - 18395: 0x00009146, - 18396: 0x00009144, - 18397: 0x00009145, - 18398: 0x000091B9, - 18399: 0x0000943F, - 18400: 0x0000943B, - 18401: 0x00009436, - 18402: 0x00009429, - 18403: 0x0000943D, - 18404: 0x0000943C, - 18405: 0x00009430, - 18406: 0x00009439, - 18407: 0x0000942A, - 18408: 0x00009437, - 18409: 0x0000942C, - 18410: 0x00009440, - 18411: 0x00009431, - 18412: 0x000095E5, - 18413: 0x000095E4, - 18414: 0x000095E3, - 18415: 0x00009735, - 18416: 0x0000973A, - 18417: 0x000097BF, - 18418: 0x000097E1, - 18419: 0x00009864, - 18420: 0x000098C9, - 18421: 0x000098C6, - 18422: 0x000098C0, - 18423: 0x00009958, - 18424: 0x00009956, - 18425: 0x00009A39, - 18426: 0x00009A3D, - 18427: 0x00009A46, - 18428: 0x00009A44, - 18429: 0x00009A42, - 18430: 0x00009A41, - 18431: 0x00009A3A, - 18432: 0x00009A3F, - 18433: 0x00009ACD, - 18434: 0x00009B15, - 18435: 0x00009B17, - 18436: 0x00009B18, - 18437: 0x00009B16, - 18438: 0x00009B3A, - 18439: 0x00009B52, - 18440: 0x00009C2B, - 18441: 0x00009C1D, - 18442: 0x00009C1C, - 18443: 0x00009C2C, - 18444: 0x00009C23, - 18445: 0x00009C28, - 18446: 0x00009C29, - 18447: 0x00009C24, - 18448: 0x00009C21, - 18449: 0x00009DB7, - 18450: 0x00009DB6, - 18451: 0x00009DBC, - 18452: 0x00009DC1, - 18453: 0x00009DC7, - 18454: 0x00009DCA, - 18455: 0x00009DCF, - 18456: 0x00009DBE, - 18457: 0x00009DC5, - 18458: 0x00009DC3, - 18459: 0x00009DBB, - 18460: 0x00009DB5, - 18461: 0x00009DCE, - 18462: 0x00009DB9, - 18463: 0x00009DBA, - 18464: 0x00009DAC, - 18465: 0x00009DC8, - 18466: 0x00009DB1, - 18467: 0x00009DAD, - 18468: 0x00009DCC, - 18469: 0x00009DB3, - 18470: 0x00009DCD, - 18471: 0x00009DB2, - 18472: 0x00009E7A, - 18473: 0x00009E9C, - 18474: 0x00009EEB, - 18475: 0x00009EEE, - 18476: 0x00009EED, - 18477: 0x00009F1B, - 18478: 0x00009F18, - 18479: 0x00009F1A, - 18480: 0x00009F31, - 18481: 0x00009F4E, - 18482: 0x00009F65, - 18483: 0x00009F64, - 18484: 0x00009F92, - 18485: 0x00004EB9, - 18486: 0x000056C6, - 18487: 0x000056C5, - 18488: 0x000056CB, - 18489: 0x00005971, - 18490: 0x00005B4B, - 18491: 0x00005B4C, - 18492: 0x00005DD5, - 18493: 0x00005DD1, - 18494: 0x00005EF2, - 18495: 0x00006521, - 18496: 0x00006520, - 18497: 0x00006526, - 18498: 0x00006522, - 18499: 0x00006B0B, - 18500: 0x00006B08, - 18501: 0x00006B09, - 18502: 0x00006C0D, - 18503: 0x00007055, - 18504: 0x00007056, - 18505: 0x00007057, - 18506: 0x00007052, - 18507: 0x0000721E, - 18508: 0x0000721F, - 18509: 0x000072A9, - 18510: 0x0000737F, - 18511: 0x000074D8, - 18512: 0x000074D5, - 18513: 0x000074D9, - 18514: 0x000074D7, - 18515: 0x0000766D, - 18516: 0x000076AD, - 18517: 0x00007935, - 18518: 0x000079B4, - 18519: 0x00007A70, - 18520: 0x00007A71, - 18521: 0x00007C57, - 18522: 0x00007C5C, - 18523: 0x00007C59, - 18524: 0x00007C5B, - 18525: 0x00007C5A, - 18526: 0x00007CF4, - 18527: 0x00007CF1, - 18528: 0x00007E91, - 18529: 0x00007F4F, - 18530: 0x00007F87, - 18531: 0x000081DE, - 18532: 0x0000826B, - 18533: 0x00008634, - 18534: 0x00008635, - 18535: 0x00008633, - 18536: 0x0000862C, - 18537: 0x00008632, - 18538: 0x00008636, - 18539: 0x0000882C, - 18540: 0x00008828, - 18541: 0x00008826, - 18542: 0x0000882A, - 18543: 0x00008825, - 18544: 0x00008971, - 18545: 0x000089BF, - 18546: 0x000089BE, - 18547: 0x000089FB, - 18548: 0x00008B7E, - 18549: 0x00008B84, - 18550: 0x00008B82, - 18551: 0x00008B86, - 18552: 0x00008B85, - 18553: 0x00008B7F, - 18554: 0x00008D15, - 18555: 0x00008E95, - 18556: 0x00008E94, - 18557: 0x00008E9A, - 18558: 0x00008E92, - 18559: 0x00008E90, - 18560: 0x00008E96, - 18561: 0x00008E97, - 18562: 0x00008F60, - 18563: 0x00008F62, - 18564: 0x00009147, - 18565: 0x0000944C, - 18566: 0x00009450, - 18567: 0x0000944A, - 18568: 0x0000944B, - 18569: 0x0000944F, - 18570: 0x00009447, - 18571: 0x00009445, - 18572: 0x00009448, - 18573: 0x00009449, - 18574: 0x00009446, - 18575: 0x0000973F, - 18576: 0x000097E3, - 18577: 0x0000986A, - 18578: 0x00009869, - 18579: 0x000098CB, - 18580: 0x00009954, - 18581: 0x0000995B, - 18582: 0x00009A4E, - 18583: 0x00009A53, - 18584: 0x00009A54, - 18585: 0x00009A4C, - 18586: 0x00009A4F, - 18587: 0x00009A48, - 18588: 0x00009A4A, - 18589: 0x00009A49, - 18590: 0x00009A52, - 18591: 0x00009A50, - 18592: 0x00009AD0, - 18593: 0x00009B19, - 18594: 0x00009B2B, - 18595: 0x00009B3B, - 18596: 0x00009B56, - 18597: 0x00009B55, - 18598: 0x00009C46, - 18599: 0x00009C48, - 18600: 0x00009C3F, - 18601: 0x00009C44, - 18602: 0x00009C39, - 18603: 0x00009C33, - 18604: 0x00009C41, - 18605: 0x00009C3C, - 18606: 0x00009C37, - 18607: 0x00009C34, - 18608: 0x00009C32, - 18609: 0x00009C3D, - 18610: 0x00009C36, - 18611: 0x00009DDB, - 18612: 0x00009DD2, - 18613: 0x00009DDE, - 18614: 0x00009DDA, - 18615: 0x00009DCB, - 18616: 0x00009DD0, - 18617: 0x00009DDC, - 18618: 0x00009DD1, - 18619: 0x00009DDF, - 18620: 0x00009DE9, - 18621: 0x00009DD9, - 18622: 0x00009DD8, - 18623: 0x00009DD6, - 18624: 0x00009DF5, - 18625: 0x00009DD5, - 18626: 0x00009DDD, - 18627: 0x00009EB6, - 18628: 0x00009EF0, - 18629: 0x00009F35, - 18630: 0x00009F33, - 18631: 0x00009F32, - 18632: 0x00009F42, - 18633: 0x00009F6B, - 18634: 0x00009F95, - 18635: 0x00009FA2, - 18636: 0x0000513D, - 18637: 0x00005299, - 18638: 0x000058E8, - 18639: 0x000058E7, - 18640: 0x00005972, - 18641: 0x00005B4D, - 18642: 0x00005DD8, - 18643: 0x0000882F, - 18644: 0x00005F4F, - 18645: 0x00006201, - 18646: 0x00006203, - 18647: 0x00006204, - 18648: 0x00006529, - 18649: 0x00006525, - 18650: 0x00006596, - 18651: 0x000066EB, - 18652: 0x00006B11, - 18653: 0x00006B12, - 18654: 0x00006B0F, - 18655: 0x00006BCA, - 18656: 0x0000705B, - 18657: 0x0000705A, - 18658: 0x00007222, - 18659: 0x00007382, - 18660: 0x00007381, - 18661: 0x00007383, - 18662: 0x00007670, - 18663: 0x000077D4, - 18664: 0x00007C67, - 18665: 0x00007C66, - 18666: 0x00007E95, - 18667: 0x0000826C, - 18668: 0x0000863A, - 18669: 0x00008640, - 18670: 0x00008639, - 18671: 0x0000863C, - 18672: 0x00008631, - 18673: 0x0000863B, - 18674: 0x0000863E, - 18675: 0x00008830, - 18676: 0x00008832, - 18677: 0x0000882E, - 18678: 0x00008833, - 18679: 0x00008976, - 18680: 0x00008974, - 18681: 0x00008973, - 18682: 0x000089FE, - 18683: 0x00008B8C, - 18684: 0x00008B8E, - 18685: 0x00008B8B, - 18686: 0x00008B88, - 18687: 0x00008C45, - 18688: 0x00008D19, - 18689: 0x00008E98, - 18690: 0x00008F64, - 18691: 0x00008F63, - 18692: 0x000091BC, - 18693: 0x00009462, - 18694: 0x00009455, - 18695: 0x0000945D, - 18696: 0x00009457, - 18697: 0x0000945E, - 18698: 0x000097C4, - 18699: 0x000097C5, - 18700: 0x00009800, - 18701: 0x00009A56, - 18702: 0x00009A59, - 18703: 0x00009B1E, - 18704: 0x00009B1F, - 18705: 0x00009B20, - 18706: 0x00009C52, - 18707: 0x00009C58, - 18708: 0x00009C50, - 18709: 0x00009C4A, - 18710: 0x00009C4D, - 18711: 0x00009C4B, - 18712: 0x00009C55, - 18713: 0x00009C59, - 18714: 0x00009C4C, - 18715: 0x00009C4E, - 18716: 0x00009DFB, - 18717: 0x00009DF7, - 18718: 0x00009DEF, - 18719: 0x00009DE3, - 18720: 0x00009DEB, - 18721: 0x00009DF8, - 18722: 0x00009DE4, - 18723: 0x00009DF6, - 18724: 0x00009DE1, - 18725: 0x00009DEE, - 18726: 0x00009DE6, - 18727: 0x00009DF2, - 18728: 0x00009DF0, - 18729: 0x00009DE2, - 18730: 0x00009DEC, - 18731: 0x00009DF4, - 18732: 0x00009DF3, - 18733: 0x00009DE8, - 18734: 0x00009DED, - 18735: 0x00009EC2, - 18736: 0x00009ED0, - 18737: 0x00009EF2, - 18738: 0x00009EF3, - 18739: 0x00009F06, - 18740: 0x00009F1C, - 18741: 0x00009F38, - 18742: 0x00009F37, - 18743: 0x00009F36, - 18744: 0x00009F43, - 18745: 0x00009F4F, - 18746: 0x00009F71, - 18747: 0x00009F70, - 18748: 0x00009F6E, - 18749: 0x00009F6F, - 18750: 0x000056D3, - 18751: 0x000056CD, - 18752: 0x00005B4E, - 18753: 0x00005C6D, - 18754: 0x0000652D, - 18755: 0x000066ED, - 18756: 0x000066EE, - 18757: 0x00006B13, - 18758: 0x0000705F, - 18759: 0x00007061, - 18760: 0x0000705D, - 18761: 0x00007060, - 18762: 0x00007223, - 18763: 0x000074DB, - 18764: 0x000074E5, - 18765: 0x000077D5, - 18766: 0x00007938, - 18767: 0x000079B7, - 18768: 0x000079B6, - 18769: 0x00007C6A, - 18770: 0x00007E97, - 18771: 0x00007F89, - 18772: 0x0000826D, - 18773: 0x00008643, - 18774: 0x00008838, - 18775: 0x00008837, - 18776: 0x00008835, - 18777: 0x0000884B, - 18778: 0x00008B94, - 18779: 0x00008B95, - 18780: 0x00008E9E, - 18781: 0x00008E9F, - 18782: 0x00008EA0, - 18783: 0x00008E9D, - 18784: 0x000091BE, - 18785: 0x000091BD, - 18786: 0x000091C2, - 18787: 0x0000946B, - 18788: 0x00009468, - 18789: 0x00009469, - 18790: 0x000096E5, - 18791: 0x00009746, - 18792: 0x00009743, - 18793: 0x00009747, - 18794: 0x000097C7, - 18795: 0x000097E5, - 18796: 0x00009A5E, - 18797: 0x00009AD5, - 18798: 0x00009B59, - 18799: 0x00009C63, - 18800: 0x00009C67, - 18801: 0x00009C66, - 18802: 0x00009C62, - 18803: 0x00009C5E, - 18804: 0x00009C60, - 18805: 0x00009E02, - 18806: 0x00009DFE, - 18807: 0x00009E07, - 18808: 0x00009E03, - 18809: 0x00009E06, - 18810: 0x00009E05, - 18811: 0x00009E00, - 18812: 0x00009E01, - 18813: 0x00009E09, - 18814: 0x00009DFF, - 18815: 0x00009DFD, - 18816: 0x00009E04, - 18817: 0x00009EA0, - 18818: 0x00009F1E, - 18819: 0x00009F46, - 18820: 0x00009F74, - 18821: 0x00009F75, - 18822: 0x00009F76, - 18823: 0x000056D4, - 18824: 0x0000652E, - 18825: 0x000065B8, - 18826: 0x00006B18, - 18827: 0x00006B19, - 18828: 0x00006B17, - 18829: 0x00006B1A, - 18830: 0x00007062, - 18831: 0x00007226, - 18832: 0x000072AA, - 18833: 0x000077D8, - 18834: 0x000077D9, - 18835: 0x00007939, - 18836: 0x00007C69, - 18837: 0x00007C6B, - 18838: 0x00007CF6, - 18839: 0x00007E9A, - 18840: 0x00007E98, - 18841: 0x00007E9B, - 18842: 0x00007E99, - 18843: 0x000081E0, - 18844: 0x000081E1, - 18845: 0x00008646, - 18846: 0x00008647, - 18847: 0x00008648, - 18848: 0x00008979, - 18849: 0x0000897A, - 18850: 0x0000897C, - 18851: 0x0000897B, - 18852: 0x000089FF, - 18853: 0x00008B98, - 18854: 0x00008B99, - 18855: 0x00008EA5, - 18856: 0x00008EA4, - 18857: 0x00008EA3, - 18858: 0x0000946E, - 18859: 0x0000946D, - 18860: 0x0000946F, - 18861: 0x00009471, - 18862: 0x00009473, - 18863: 0x00009749, - 18864: 0x00009872, - 18865: 0x0000995F, - 18866: 0x00009C68, - 18867: 0x00009C6E, - 18868: 0x00009C6D, - 18869: 0x00009E0B, - 18870: 0x00009E0D, - 18871: 0x00009E10, - 18872: 0x00009E0F, - 18873: 0x00009E12, - 18874: 0x00009E11, - 18875: 0x00009EA1, - 18876: 0x00009EF5, - 18877: 0x00009F09, - 18878: 0x00009F47, - 18879: 0x00009F78, - 18880: 0x00009F7B, - 18881: 0x00009F7A, - 18882: 0x00009F79, - 18883: 0x0000571E, - 18884: 0x00007066, - 18885: 0x00007C6F, - 18886: 0x0000883C, - 18887: 0x00008DB2, - 18888: 0x00008EA6, - 18889: 0x000091C3, - 18890: 0x00009474, - 18891: 0x00009478, - 18892: 0x00009476, - 18893: 0x00009475, - 18894: 0x00009A60, - 18895: 0x00009C74, - 18896: 0x00009C73, - 18897: 0x00009C71, - 18898: 0x00009C75, - 18899: 0x00009E14, - 18900: 0x00009E13, - 18901: 0x00009EF6, - 18902: 0x00009F0A, - 18903: 0x00009FA4, - 18904: 0x00007068, - 18905: 0x00007065, - 18906: 0x00007CF7, - 18907: 0x0000866A, - 18908: 0x0000883E, - 18909: 0x0000883D, - 18910: 0x0000883F, - 18911: 0x00008B9E, - 18912: 0x00008C9C, - 18913: 0x00008EA9, - 18914: 0x00008EC9, - 18915: 0x0000974B, - 18916: 0x00009873, - 18917: 0x00009874, - 18918: 0x000098CC, - 18919: 0x00009961, - 18920: 0x000099AB, - 18921: 0x00009A64, - 18922: 0x00009A66, - 18923: 0x00009A67, - 18924: 0x00009B24, - 18925: 0x00009E15, - 18926: 0x00009E17, - 18927: 0x00009F48, - 18928: 0x00006207, - 18929: 0x00006B1E, - 18930: 0x00007227, - 18931: 0x0000864C, - 18932: 0x00008EA8, - 18933: 0x00009482, - 18934: 0x00009480, - 18935: 0x00009481, - 18936: 0x00009A69, - 18937: 0x00009A68, - 18938: 0x00009B2E, - 18939: 0x00009E19, - 18940: 0x00007229, - 18941: 0x0000864B, - 18942: 0x00008B9F, - 18943: 0x00009483, - 18944: 0x00009C79, - 18945: 0x00009EB7, - 18946: 0x00007675, - 18947: 0x00009A6B, - 18948: 0x00009C7A, - 18949: 0x00009E1D, - 18950: 0x00007069, - 18951: 0x0000706A, - 18952: 0x00009EA4, - 18953: 0x00009F7E, - 18954: 0x00009F49, - 18955: 0x00009F98, - 18956: 0x00007881, - 18957: 0x000092B9, - 18958: 0x000088CF, - 18959: 0x000058BB, - 18960: 0x00006052, - 18961: 0x00007CA7, - 18962: 0x00005AFA, - 18963: 0x00002554, - 18964: 0x00002566, - 18965: 0x00002557, - 18966: 0x00002560, - 18967: 0x0000256C, - 18968: 0x00002563, - 18969: 0x0000255A, - 18970: 0x00002569, - 18971: 0x0000255D, - 18972: 0x00002552, - 18973: 0x00002564, - 18974: 0x00002555, - 18975: 0x0000255E, - 18976: 0x0000256A, - 18977: 0x00002561, - 18978: 0x00002558, - 18979: 0x00002567, - 18980: 0x0000255B, - 18981: 0x00002553, - 18982: 0x00002565, - 18983: 0x00002556, - 18984: 0x0000255F, - 18985: 0x0000256B, - 18986: 0x00002562, - 18987: 0x00002559, - 18988: 0x00002568, - 18989: 0x0000255C, - 18990: 0x00002551, - 18991: 0x00002550, - 18992: 0x0000256D, - 18993: 0x0000256E, - 18994: 0x00002570, - 18995: 0x0000256F, - 18996: 0x0000FFED, - 18997: 0x00020547, - 18998: 0x000092DB, - 18999: 0x000205DF, - 19000: 0x00023FC5, - 19001: 0x0000854C, - 19002: 0x000042B5, - 19003: 0x000073EF, - 19004: 0x000051B5, - 19005: 0x00003649, - 19006: 0x00024942, - 19007: 0x000289E4, - 19008: 0x00009344, - 19009: 0x000219DB, - 19010: 0x000082EE, - 19011: 0x00023CC8, - 19012: 0x0000783C, - 19013: 0x00006744, - 19014: 0x000062DF, - 19015: 0x00024933, - 19016: 0x000289AA, - 19017: 0x000202A0, - 19018: 0x00026BB3, - 19019: 0x00021305, - 19020: 0x00004FAB, - 19021: 0x000224ED, - 19022: 0x00005008, - 19023: 0x00026D29, - 19024: 0x00027A84, - 19025: 0x00023600, - 19026: 0x00024AB1, - 19027: 0x00022513, - 19028: 0x00005029, - 19029: 0x0002037E, - 19030: 0x00005FA4, - 19031: 0x00020380, - 19032: 0x00020347, - 19033: 0x00006EDB, - 19034: 0x0002041F, - 19035: 0x0000507D, - 19036: 0x00005101, - 19037: 0x0000347A, - 19038: 0x0000510E, - 19039: 0x0000986C, - 19040: 0x00003743, - 19041: 0x00008416, - 19042: 0x000249A4, - 19043: 0x00020487, - 19044: 0x00005160, - 19045: 0x000233B4, - 19046: 0x0000516A, - 19047: 0x00020BFF, - 19048: 0x000220FC, - 19049: 0x000202E5, - 19050: 0x00022530, - 19051: 0x0002058E, - 19052: 0x00023233, - 19053: 0x00021983, - 19054: 0x00005B82, - 19055: 0x0000877D, - 19056: 0x000205B3, - 19057: 0x00023C99, - 19058: 0x000051B2, - 19059: 0x000051B8, - 19060: 0x00009D34, - 19061: 0x000051C9, - 19062: 0x000051CF, - 19063: 0x000051D1, - 19064: 0x00003CDC, - 19065: 0x000051D3, - 19066: 0x00024AA6, - 19067: 0x000051B3, - 19068: 0x000051E2, - 19069: 0x00005342, - 19070: 0x000051ED, - 19071: 0x000083CD, - 19072: 0x0000693E, - 19073: 0x0002372D, - 19074: 0x00005F7B, - 19075: 0x0000520B, - 19076: 0x00005226, - 19077: 0x0000523C, - 19078: 0x000052B5, - 19079: 0x00005257, - 19080: 0x00005294, - 19081: 0x000052B9, - 19082: 0x000052C5, - 19083: 0x00007C15, - 19084: 0x00008542, - 19085: 0x000052E0, - 19086: 0x0000860D, - 19087: 0x00026B13, - 19088: 0x00005305, - 19089: 0x00028ADE, - 19090: 0x00005549, - 19091: 0x00006ED9, - 19092: 0x00023F80, - 19093: 0x00020954, - 19094: 0x00023FEC, - 19095: 0x00005333, - 19096: 0x00005344, - 19097: 0x00020BE2, - 19098: 0x00006CCB, - 19099: 0x00021726, - 19100: 0x0000681B, - 19101: 0x000073D5, - 19102: 0x0000604A, - 19103: 0x00003EAA, - 19104: 0x000038CC, - 19105: 0x000216E8, - 19106: 0x000071DD, - 19107: 0x000044A2, - 19108: 0x0000536D, - 19109: 0x00005374, - 19110: 0x000286AB, - 19111: 0x0000537E, - 19112: 0x0000537F, - 19113: 0x00021596, - 19114: 0x00021613, - 19115: 0x000077E6, - 19116: 0x00005393, - 19117: 0x00028A9B, - 19118: 0x000053A0, - 19119: 0x000053AB, - 19120: 0x000053AE, - 19121: 0x000073A7, - 19122: 0x00025772, - 19123: 0x00003F59, - 19124: 0x0000739C, - 19125: 0x000053C1, - 19126: 0x000053C5, - 19127: 0x00006C49, - 19128: 0x00004E49, - 19129: 0x000057FE, - 19130: 0x000053D9, - 19131: 0x00003AAB, - 19132: 0x00020B8F, - 19133: 0x000053E0, - 19134: 0x00023FEB, - 19135: 0x00022DA3, - 19136: 0x000053F6, - 19137: 0x00020C77, - 19138: 0x00005413, - 19139: 0x00007079, - 19140: 0x0000552B, - 19141: 0x00006657, - 19142: 0x00006D5B, - 19143: 0x0000546D, - 19144: 0x00026B53, - 19145: 0x00020D74, - 19146: 0x0000555D, - 19147: 0x0000548F, - 19148: 0x000054A4, - 19149: 0x000047A6, - 19150: 0x0002170D, - 19151: 0x00020EDD, - 19152: 0x00003DB4, - 19153: 0x00020D4D, - 19154: 0x000289BC, - 19155: 0x00022698, - 19156: 0x00005547, - 19157: 0x00004CED, - 19158: 0x0000542F, - 19159: 0x00007417, - 19160: 0x00005586, - 19161: 0x000055A9, - 19162: 0x00005605, - 19163: 0x000218D7, - 19164: 0x0002403A, - 19165: 0x00004552, - 19166: 0x00024435, - 19167: 0x000066B3, - 19168: 0x000210B4, - 19169: 0x00005637, - 19170: 0x000066CD, - 19171: 0x0002328A, - 19172: 0x000066A4, - 19173: 0x000066AD, - 19174: 0x0000564D, - 19175: 0x0000564F, - 19176: 0x000078F1, - 19177: 0x000056F1, - 19178: 0x00009787, - 19179: 0x000053FE, - 19180: 0x00005700, - 19181: 0x000056EF, - 19182: 0x000056ED, - 19183: 0x00028B66, - 19184: 0x00003623, - 19185: 0x0002124F, - 19186: 0x00005746, - 19187: 0x000241A5, - 19188: 0x00006C6E, - 19189: 0x0000708B, - 19190: 0x00005742, - 19191: 0x000036B1, - 19192: 0x00026C7E, - 19193: 0x000057E6, - 19194: 0x00021416, - 19195: 0x00005803, - 19196: 0x00021454, - 19197: 0x00024363, - 19198: 0x00005826, - 19199: 0x00024BF5, - 19200: 0x0000585C, - 19201: 0x000058AA, - 19202: 0x00003561, - 19203: 0x000058E0, - 19204: 0x000058DC, - 19205: 0x0002123C, - 19206: 0x000058FB, - 19207: 0x00005BFF, - 19208: 0x00005743, - 19209: 0x0002A150, - 19210: 0x00024278, - 19211: 0x000093D3, - 19212: 0x000035A1, - 19213: 0x0000591F, - 19214: 0x000068A6, - 19215: 0x000036C3, - 19216: 0x00006E59, - 19217: 0x0002163E, - 19218: 0x00005A24, - 19219: 0x00005553, - 19220: 0x00021692, - 19221: 0x00008505, - 19222: 0x000059C9, - 19223: 0x00020D4E, - 19224: 0x00026C81, - 19225: 0x00026D2A, - 19226: 0x000217DC, - 19227: 0x000059D9, - 19228: 0x000217FB, - 19229: 0x000217B2, - 19230: 0x00026DA6, - 19231: 0x00006D71, - 19232: 0x00021828, - 19233: 0x000216D5, - 19234: 0x000059F9, - 19235: 0x00026E45, - 19236: 0x00005AAB, - 19237: 0x00005A63, - 19238: 0x000036E6, - 19239: 0x000249A9, - 19240: 0x00005A77, - 19241: 0x00003708, - 19242: 0x00005A96, - 19243: 0x00007465, - 19244: 0x00005AD3, - 19245: 0x00026FA1, - 19246: 0x00022554, - 19247: 0x00003D85, - 19248: 0x00021911, - 19249: 0x00003732, - 19250: 0x000216B8, - 19251: 0x00005E83, - 19252: 0x000052D0, - 19253: 0x00005B76, - 19254: 0x00006588, - 19255: 0x00005B7C, - 19256: 0x00027A0E, - 19257: 0x00004004, - 19258: 0x0000485D, - 19259: 0x00020204, - 19260: 0x00005BD5, - 19261: 0x00006160, - 19262: 0x00021A34, - 19263: 0x000259CC, - 19264: 0x000205A5, - 19265: 0x00005BF3, - 19266: 0x00005B9D, - 19267: 0x00004D10, - 19268: 0x00005C05, - 19269: 0x00021B44, - 19270: 0x00005C13, - 19271: 0x000073CE, - 19272: 0x00005C14, - 19273: 0x00021CA5, - 19274: 0x00026B28, - 19275: 0x00005C49, - 19276: 0x000048DD, - 19277: 0x00005C85, - 19278: 0x00005CE9, - 19279: 0x00005CEF, - 19280: 0x00005D8B, - 19281: 0x00021DF9, - 19282: 0x00021E37, - 19283: 0x00005D10, - 19284: 0x00005D18, - 19285: 0x00005D46, - 19286: 0x00021EA4, - 19287: 0x00005CBA, - 19288: 0x00005DD7, - 19289: 0x000082FC, - 19290: 0x0000382D, - 19291: 0x00024901, - 19292: 0x00022049, - 19293: 0x00022173, - 19294: 0x00008287, - 19295: 0x00003836, - 19296: 0x00003BC2, - 19297: 0x00005E2E, - 19298: 0x00006A8A, - 19299: 0x00005E75, - 19300: 0x00005E7A, - 19301: 0x000244BC, - 19302: 0x00020CD3, - 19303: 0x000053A6, - 19304: 0x00004EB7, - 19305: 0x00005ED0, - 19306: 0x000053A8, - 19307: 0x00021771, - 19308: 0x00005E09, - 19309: 0x00005EF4, - 19310: 0x00028482, - 19311: 0x00005EF9, - 19312: 0x00005EFB, - 19313: 0x000038A0, - 19314: 0x00005EFC, - 19315: 0x0000683E, - 19316: 0x0000941B, - 19317: 0x00005F0D, - 19318: 0x000201C1, - 19319: 0x0002F894, - 19320: 0x00003ADE, - 19321: 0x000048AE, - 19322: 0x0002133A, - 19323: 0x00005F3A, - 19324: 0x00026888, - 19325: 0x000223D0, - 19326: 0x00005F58, - 19327: 0x00022471, - 19328: 0x00005F63, - 19329: 0x000097BD, - 19330: 0x00026E6E, - 19331: 0x00005F72, - 19332: 0x00009340, - 19333: 0x00028A36, - 19334: 0x00005FA7, - 19335: 0x00005DB6, - 19336: 0x00003D5F, - 19337: 0x00025250, - 19338: 0x00021F6A, - 19339: 0x000270F8, - 19340: 0x00022668, - 19341: 0x000091D6, - 19342: 0x0002029E, - 19343: 0x00028A29, - 19344: 0x00006031, - 19345: 0x00006685, - 19346: 0x00021877, - 19347: 0x00003963, - 19348: 0x00003DC7, - 19349: 0x00003639, - 19350: 0x00005790, - 19351: 0x000227B4, - 19352: 0x00007971, - 19353: 0x00003E40, - 19354: 0x0000609E, - 19355: 0x000060A4, - 19356: 0x000060B3, - 19357: 0x00024982, - 19358: 0x0002498F, - 19359: 0x00027A53, - 19360: 0x000074A4, - 19361: 0x000050E1, - 19362: 0x00005AA0, - 19363: 0x00006164, - 19364: 0x00008424, - 19365: 0x00006142, - 19366: 0x0002F8A6, - 19367: 0x00026ED2, - 19368: 0x00006181, - 19369: 0x000051F4, - 19370: 0x00020656, - 19371: 0x00006187, - 19372: 0x00005BAA, - 19373: 0x00023FB7, - 19374: 0x0002285F, - 19375: 0x000061D3, - 19376: 0x00028B9D, - 19377: 0x0002995D, - 19378: 0x000061D0, - 19379: 0x00003932, - 19380: 0x00022980, - 19381: 0x000228C1, - 19382: 0x00006023, - 19383: 0x0000615C, - 19384: 0x0000651E, - 19385: 0x0000638B, - 19386: 0x00020118, - 19387: 0x000062C5, - 19388: 0x00021770, - 19389: 0x000062D5, - 19390: 0x00022E0D, - 19391: 0x0000636C, - 19392: 0x000249DF, - 19393: 0x00003A17, - 19394: 0x00006438, - 19395: 0x000063F8, - 19396: 0x0002138E, - 19397: 0x000217FC, - 19398: 0x00006490, - 19399: 0x00006F8A, - 19400: 0x00022E36, - 19401: 0x00009814, - 19402: 0x0002408C, - 19403: 0x0002571D, - 19404: 0x000064E1, - 19405: 0x000064E5, - 19406: 0x0000947B, - 19407: 0x00003A66, - 19408: 0x0000643A, - 19409: 0x00003A57, - 19410: 0x0000654D, - 19411: 0x00006F16, - 19412: 0x00024A28, - 19413: 0x00024A23, - 19414: 0x00006585, - 19415: 0x0000656D, - 19416: 0x0000655F, - 19417: 0x0002307E, - 19418: 0x000065B5, - 19419: 0x00024940, - 19420: 0x00004B37, - 19421: 0x000065D1, - 19422: 0x000040D8, - 19423: 0x00021829, - 19424: 0x000065E0, - 19425: 0x000065E3, - 19426: 0x00005FDF, - 19427: 0x00023400, - 19428: 0x00006618, - 19429: 0x000231F7, - 19430: 0x000231F8, - 19431: 0x00006644, - 19432: 0x000231A4, - 19433: 0x000231A5, - 19434: 0x0000664B, - 19435: 0x00020E75, - 19436: 0x00006667, - 19437: 0x000251E6, - 19438: 0x00006673, - 19439: 0x00006674, - 19440: 0x00021E3D, - 19441: 0x00023231, - 19442: 0x000285F4, - 19443: 0x000231C8, - 19444: 0x00025313, - 19445: 0x000077C5, - 19446: 0x000228F7, - 19447: 0x000099A4, - 19448: 0x00006702, - 19449: 0x0002439C, - 19450: 0x00024A21, - 19451: 0x00003B2B, - 19452: 0x000069FA, - 19453: 0x000237C2, - 19454: 0x0000675E, - 19455: 0x00006767, - 19456: 0x00006762, - 19457: 0x000241CD, - 19458: 0x000290ED, - 19459: 0x000067D7, - 19460: 0x000044E9, - 19461: 0x00006822, - 19462: 0x00006E50, - 19463: 0x0000923C, - 19464: 0x00006801, - 19465: 0x000233E6, - 19466: 0x00026DA0, - 19467: 0x0000685D, - 19468: 0x0002346F, - 19469: 0x000069E1, - 19470: 0x00006A0B, - 19471: 0x00028ADF, - 19472: 0x00006973, - 19473: 0x000068C3, - 19474: 0x000235CD, - 19475: 0x00006901, - 19476: 0x00006900, - 19477: 0x00003D32, - 19478: 0x00003A01, - 19479: 0x0002363C, - 19480: 0x00003B80, - 19481: 0x000067AC, - 19482: 0x00006961, - 19483: 0x00028A4A, - 19484: 0x000042FC, - 19485: 0x00006936, - 19486: 0x00006998, - 19487: 0x00003BA1, - 19488: 0x000203C9, - 19489: 0x00008363, - 19490: 0x00005090, - 19491: 0x000069F9, - 19492: 0x00023659, - 19493: 0x0002212A, - 19494: 0x00006A45, - 19495: 0x00023703, - 19496: 0x00006A9D, - 19497: 0x00003BF3, - 19498: 0x000067B1, - 19499: 0x00006AC8, - 19500: 0x0002919C, - 19501: 0x00003C0D, - 19502: 0x00006B1D, - 19503: 0x00020923, - 19504: 0x000060DE, - 19505: 0x00006B35, - 19506: 0x00006B74, - 19507: 0x000227CD, - 19508: 0x00006EB5, - 19509: 0x00023ADB, - 19510: 0x000203B5, - 19511: 0x00021958, - 19512: 0x00003740, - 19513: 0x00005421, - 19514: 0x00023B5A, - 19515: 0x00006BE1, - 19516: 0x00023EFC, - 19517: 0x00006BDC, - 19518: 0x00006C37, - 19519: 0x0002248B, - 19520: 0x000248F1, - 19521: 0x00026B51, - 19522: 0x00006C5A, - 19523: 0x00008226, - 19524: 0x00006C79, - 19525: 0x00023DBC, - 19526: 0x000044C5, - 19527: 0x00023DBD, - 19528: 0x000241A4, - 19529: 0x0002490C, - 19530: 0x00024900, - 19531: 0x00023CC9, - 19532: 0x000036E5, - 19533: 0x00003CEB, - 19534: 0x00020D32, - 19535: 0x00009B83, - 19536: 0x000231F9, - 19537: 0x00022491, - 19538: 0x00007F8F, - 19539: 0x00006837, - 19540: 0x00026D25, - 19541: 0x00026DA1, - 19542: 0x00026DEB, - 19543: 0x00006D96, - 19544: 0x00006D5C, - 19545: 0x00006E7C, - 19546: 0x00006F04, - 19547: 0x0002497F, - 19548: 0x00024085, - 19549: 0x00026E72, - 19550: 0x00008533, - 19551: 0x00026F74, - 19552: 0x000051C7, - 19553: 0x00006C9C, - 19554: 0x00006E1D, - 19555: 0x0000842E, - 19556: 0x00028B21, - 19557: 0x00006E2F, - 19558: 0x00023E2F, - 19559: 0x00007453, - 19560: 0x00023F82, - 19561: 0x000079CC, - 19562: 0x00006E4F, - 19563: 0x00005A91, - 19564: 0x0002304B, - 19565: 0x00006FF8, - 19566: 0x0000370D, - 19567: 0x00006F9D, - 19568: 0x00023E30, - 19569: 0x00006EFA, - 19570: 0x00021497, - 19571: 0x0002403D, - 19572: 0x00004555, - 19573: 0x000093F0, - 19574: 0x00006F44, - 19575: 0x00006F5C, - 19576: 0x00003D4E, - 19577: 0x00006F74, - 19578: 0x00029170, - 19579: 0x00003D3B, - 19580: 0x00006F9F, - 19581: 0x00024144, - 19582: 0x00006FD3, - 19583: 0x00024091, - 19584: 0x00024155, - 19585: 0x00024039, - 19586: 0x00023FF0, - 19587: 0x00023FB4, - 19588: 0x0002413F, - 19589: 0x000051DF, - 19590: 0x00024156, - 19591: 0x00024157, - 19592: 0x00024140, - 19593: 0x000261DD, - 19594: 0x0000704B, - 19595: 0x0000707E, - 19596: 0x000070A7, - 19597: 0x00007081, - 19598: 0x000070CC, - 19599: 0x000070D5, - 19600: 0x000070D6, - 19601: 0x000070DF, - 19602: 0x00004104, - 19603: 0x00003DE8, - 19604: 0x000071B4, - 19605: 0x00007196, - 19606: 0x00024277, - 19607: 0x0000712B, - 19608: 0x00007145, - 19609: 0x00005A88, - 19610: 0x0000714A, - 19611: 0x0000716E, - 19612: 0x00005C9C, - 19613: 0x00024365, - 19614: 0x0000714F, - 19615: 0x00009362, - 19616: 0x000242C1, - 19617: 0x0000712C, - 19618: 0x0002445A, - 19619: 0x00024A27, - 19620: 0x00024A22, - 19621: 0x000071BA, - 19622: 0x00028BE8, - 19623: 0x000070BD, - 19624: 0x0000720E, - 19625: 0x00009442, - 19626: 0x00007215, - 19627: 0x00005911, - 19628: 0x00009443, - 19629: 0x00007224, - 19630: 0x00009341, - 19631: 0x00025605, - 19632: 0x0000722E, - 19633: 0x00007240, - 19634: 0x00024974, - 19635: 0x000068BD, - 19636: 0x00007255, - 19637: 0x00007257, - 19638: 0x00003E55, - 19639: 0x00023044, - 19640: 0x0000680D, - 19641: 0x00006F3D, - 19642: 0x00007282, - 19643: 0x0000732A, - 19644: 0x0000732B, - 19645: 0x00024823, - 19646: 0x0002882B, - 19647: 0x000048ED, - 19648: 0x00028804, - 19649: 0x00007328, - 19650: 0x0000732E, - 19651: 0x000073CF, - 19652: 0x000073AA, - 19653: 0x00020C3A, - 19654: 0x00026A2E, - 19655: 0x000073C9, - 19656: 0x00007449, - 19657: 0x000241E2, - 19658: 0x000216E7, - 19659: 0x00024A24, - 19660: 0x00006623, - 19661: 0x000036C5, - 19662: 0x000249B7, - 19663: 0x0002498D, - 19664: 0x000249FB, - 19665: 0x000073F7, - 19666: 0x00007415, - 19667: 0x00006903, - 19668: 0x00024A26, - 19669: 0x00007439, - 19670: 0x000205C3, - 19671: 0x00003ED7, - 19672: 0x0000745C, - 19673: 0x000228AD, - 19674: 0x00007460, - 19675: 0x00028EB2, - 19676: 0x00007447, - 19677: 0x000073E4, - 19678: 0x00007476, - 19679: 0x000083B9, - 19680: 0x0000746C, - 19681: 0x00003730, - 19682: 0x00007474, - 19683: 0x000093F1, - 19684: 0x00006A2C, - 19685: 0x00007482, - 19686: 0x00004953, - 19687: 0x00024A8C, - 19688: 0x0002415F, - 19689: 0x00024A79, - 19690: 0x00028B8F, - 19691: 0x00005B46, - 19692: 0x00028C03, - 19693: 0x0002189E, - 19694: 0x000074C8, - 19695: 0x00021988, - 19696: 0x0000750E, - 19697: 0x000074E9, - 19698: 0x0000751E, - 19699: 0x00028ED9, - 19700: 0x00021A4B, - 19701: 0x00005BD7, - 19702: 0x00028EAC, - 19703: 0x00009385, - 19704: 0x0000754D, - 19705: 0x0000754A, - 19706: 0x00007567, - 19707: 0x0000756E, - 19708: 0x00024F82, - 19709: 0x00003F04, - 19710: 0x00024D13, - 19711: 0x0000758E, - 19712: 0x0000745D, - 19713: 0x0000759E, - 19714: 0x000075B4, - 19715: 0x00007602, - 19716: 0x0000762C, - 19717: 0x00007651, - 19718: 0x0000764F, - 19719: 0x0000766F, - 19720: 0x00007676, - 19721: 0x000263F5, - 19722: 0x00007690, - 19723: 0x000081EF, - 19724: 0x000037F8, - 19725: 0x00026911, - 19726: 0x0002690E, - 19727: 0x000076A1, - 19728: 0x000076A5, - 19729: 0x000076B7, - 19730: 0x000076CC, - 19731: 0x00026F9F, - 19732: 0x00008462, - 19733: 0x0002509D, - 19734: 0x0002517D, - 19735: 0x00021E1C, - 19736: 0x0000771E, - 19737: 0x00007726, - 19738: 0x00007740, - 19739: 0x000064AF, - 19740: 0x00025220, - 19741: 0x00007758, - 19742: 0x000232AC, - 19743: 0x000077AF, - 19744: 0x00028964, - 19745: 0x00028968, - 19746: 0x000216C1, - 19747: 0x000077F4, - 19748: 0x00007809, - 19749: 0x00021376, - 19750: 0x00024A12, - 19751: 0x000068CA, - 19752: 0x000078AF, - 19753: 0x000078C7, - 19754: 0x000078D3, - 19755: 0x000096A5, - 19756: 0x0000792E, - 19757: 0x000255E0, - 19758: 0x000078D7, - 19759: 0x00007934, - 19760: 0x000078B1, - 19761: 0x0002760C, - 19762: 0x00008FB8, - 19763: 0x00008884, - 19764: 0x00028B2B, - 19765: 0x00026083, - 19766: 0x0002261C, - 19767: 0x00007986, - 19768: 0x00008900, - 19769: 0x00006902, - 19770: 0x00007980, - 19771: 0x00025857, - 19772: 0x0000799D, - 19773: 0x00027B39, - 19774: 0x0000793C, - 19775: 0x000079A9, - 19776: 0x00006E2A, - 19777: 0x00027126, - 19778: 0x00003EA8, - 19779: 0x000079C6, - 19780: 0x0002910D, - 19781: 0x000079D4, -} - -const numEncodeTables = 8 - -// encodeX are the encoding tables from Unicode to Big5 code, -// sorted by decreasing length. -// encode0: 42633 entries for runes in [131105, 173738). -// encode1: 29004 entries for runes in [ 11904, 40908). -// encode2: 2176 entries for runes in [ 7870, 10046). -// encode3: 939 entries for runes in [ 167, 1106). -// encode4: 446 entries for runes in [ 65072, 65518). -// encode5: 432 entries for runes in [194597, 195029). -// encode6: 263 entries for runes in [ 63751, 64014). -// encode7: 1 entries for runes in [175615, 175616). - -const encode0Low, encode0High = 131105, 173738 - -var encode0 = [...]uint16{ - 131105 - 131105: 0x9C71, - 131134 - 131105: 0x9375, - 131142 - 131105: 0x9376, - 131150 - 131105: 0x9548, - 131176 - 131105: 0x8EC6, - 131206 - 131105: 0x8BC5, - 131207 - 131105: 0x8BFA, - 131210 - 131105: 0xC87C, - 131220 - 131105: 0x9AB4, - 131274 - 131105: 0x884E, - 131275 - 131105: 0x884B, - 131276 - 131105: 0xC87A, - 131277 - 131105: 0x8848, - 131281 - 131105: 0x8847, - 131310 - 131105: 0xA0F6, - 131340 - 131105: 0x8845, - 131342 - 131105: 0x8853, - 131352 - 131105: 0xFCAD, - 131492 - 131105: 0x8CF5, - 131497 - 131105: 0x8AAD, - 131499 - 131105: 0x9272, - 131521 - 131105: 0xFC47, - 131540 - 131105: 0x94DF, - 131570 - 131105: 0x9FD1, - 131588 - 131105: 0xFBCB, - 131596 - 131105: 0x927D, - 131604 - 131105: 0x98A4, - 131641 - 131105: 0x8CF9, - 131675 - 131105: 0x94E7, - 131700 - 131105: 0x90CB, - 131701 - 131105: 0x927B, - 131737 - 131105: 0x94D8, - 131742 - 131105: 0xFC5F, - 131744 - 131105: 0xFA54, - 131767 - 131105: 0x9AB5, - 131775 - 131105: 0x96DA, - 131776 - 131105: 0x9279, - 131813 - 131105: 0xFA74, - 131850 - 131105: 0x9275, - 131877 - 131105: 0x8DFB, - 131905 - 131105: 0x8A49, - 131909 - 131105: 0x92DF, - 131910 - 131105: 0x9B7C, - 131911 - 131105: 0xFA63, - 131966 - 131105: 0xFA60, - 131967 - 131105: 0x926D, - 131968 - 131105: 0xFA62, - 132000 - 131105: 0x9AB6, - 132007 - 131105: 0x976B, - 132021 - 131105: 0xFD6A, - 132041 - 131105: 0xFD54, - 132043 - 131105: 0x9273, - 132085 - 131105: 0x97D8, - 132092 - 131105: 0x9FBB, - 132115 - 131105: 0x9342, - 132116 - 131105: 0x9276, - 132127 - 131105: 0xFA65, - 132197 - 131105: 0x926C, - 132231 - 131105: 0xFA6E, - 132238 - 131105: 0x9EE0, - 132241 - 131105: 0x92C0, - 132242 - 131105: 0x92BF, - 132259 - 131105: 0x92BE, - 132311 - 131105: 0x9ABA, - 132348 - 131105: 0x8AB3, - 132350 - 131105: 0x9775, - 132423 - 131105: 0xFA40, - 132494 - 131105: 0xFA76, - 132517 - 131105: 0xFBD0, - 132531 - 131105: 0xFA7B, - 132547 - 131105: 0xFE6D, - 132554 - 131105: 0x9BB3, - 132560 - 131105: 0x89CC, - 132565 - 131105: 0x9ABE, - 132575 - 131105: 0xFA42, - 132576 - 131105: 0x92BC, - 132587 - 131105: 0x945C, - 132625 - 131105: 0x9BB5, - 132629 - 131105: 0x9ABF, - 132633 - 131105: 0x98A7, - 132634 - 131105: 0x97A4, - 132656 - 131105: 0x90FD, - 132694 - 131105: 0xFC7B, - 132726 - 131105: 0x9AC0, - 132878 - 131105: 0x92C3, - 132913 - 131105: 0x8AAA, - 132985 - 131105: 0x9BD0, - 133164 - 131105: 0x9550, - 133235 - 131105: 0x92C6, - 133333 - 131105: 0x98A6, - 133398 - 131105: 0x9546, - 133411 - 131105: 0xFD63, - 133460 - 131105: 0xFAC2, - 133497 - 131105: 0x9EC3, - 133607 - 131105: 0x89B2, - 133649 - 131105: 0x9C66, - 133712 - 131105: 0x9053, - 133743 - 131105: 0x8C62, - 133770 - 131105: 0x87A8, - 133812 - 131105: 0x97C1, - 133826 - 131105: 0x9AC4, - 133837 - 131105: 0x9AC5, - 133901 - 131105: 0x8EEF, - 134031 - 131105: 0xFAE9, - 134047 - 131105: 0x8D40, - 134056 - 131105: 0x9262, - 134057 - 131105: 0x8AF7, - 134079 - 131105: 0x9AC6, - 134086 - 131105: 0x92E1, - 134091 - 131105: 0x9AC9, - 134114 - 131105: 0xFAC6, - 134123 - 131105: 0x97A5, - 134139 - 131105: 0x9ACB, - 134143 - 131105: 0xFA72, - 134155 - 131105: 0x8A5E, - 134157 - 131105: 0x94E0, - 134176 - 131105: 0x92CC, - 134196 - 131105: 0x8AE5, - 134202 - 131105: 0xFE5C, - 134203 - 131105: 0x9ACC, - 134209 - 131105: 0x9DF9, - 134210 - 131105: 0x8A43, - 134211 - 131105: 0x8AA6, - 134227 - 131105: 0x9ACD, - 134245 - 131105: 0x9ACE, - 134263 - 131105: 0xFAEE, - 134264 - 131105: 0x9BCC, - 134268 - 131105: 0x9ACF, - 134285 - 131105: 0x9AD1, - 134294 - 131105: 0x9DFA, - 134300 - 131105: 0x9D7C, - 134325 - 131105: 0x9AD3, - 134328 - 131105: 0x97A6, - 134351 - 131105: 0x995F, - 134355 - 131105: 0xFBF6, - 134356 - 131105: 0x9FC5, - 134357 - 131105: 0x8A59, - 134358 - 131105: 0x8B6B, - 134365 - 131105: 0x9AD4, - 134381 - 131105: 0x9AD5, - 134399 - 131105: 0x97A2, - 134421 - 131105: 0x8A44, - 134440 - 131105: 0x9F4A, - 134449 - 131105: 0x90A1, - 134450 - 131105: 0xFDA4, - 134470 - 131105: 0x8A64, - 134471 - 131105: 0x8AF2, - 134472 - 131105: 0x8AF8, - 134473 - 131105: 0x9DD8, - 134476 - 131105: 0x94D6, - 134477 - 131105: 0xFAFE, - 134478 - 131105: 0xFBA7, - 134511 - 131105: 0x9AD6, - 134513 - 131105: 0x9F4D, - 134516 - 131105: 0xFAF6, - 134524 - 131105: 0x8A57, - 134526 - 131105: 0x8B43, - 134527 - 131105: 0x8B44, - 134550 - 131105: 0x8AB6, - 134556 - 131105: 0x8AC0, - 134567 - 131105: 0x9E54, - 134578 - 131105: 0x9AD7, - 134600 - 131105: 0x9AD8, - 134660 - 131105: 0x9ADC, - 134665 - 131105: 0x8ACA, - 134666 - 131105: 0x9EA8, - 134669 - 131105: 0x9263, - 134670 - 131105: 0x9ADD, - 134671 - 131105: 0x8B65, - 134672 - 131105: 0x8B6F, - 134673 - 131105: 0x8B7E, - 134678 - 131105: 0x8F43, - 134685 - 131105: 0x92D0, - 134732 - 131105: 0x8AF4, - 134765 - 131105: 0x9DBE, - 134771 - 131105: 0x9AE1, - 134773 - 131105: 0xFCDE, - 134774 - 131105: 0x9DFD, - 134775 - 131105: 0x8B66, - 134776 - 131105: 0x8B70, - 134777 - 131105: 0x8B75, - 134778 - 131105: 0x8AE4, - 134779 - 131105: 0x8BA4, - 134796 - 131105: 0x8AED, - 134806 - 131105: 0x8A5D, - 134808 - 131105: 0x8B48, - 134813 - 131105: 0x9DED, - 134818 - 131105: 0x9E40, - 134826 - 131105: 0x8AEF, - 134827 - 131105: 0x8AF6, - 134828 - 131105: 0x9E76, - 134838 - 131105: 0x9EE3, - 134871 - 131105: 0x9ADE, - 134872 - 131105: 0x8DFE, - 134877 - 131105: 0xFAFC, - 134904 - 131105: 0x9CB1, - 134905 - 131105: 0x9E77, - 134906 - 131105: 0x8B64, - 134907 - 131105: 0x8B67, - 134941 - 131105: 0x974B, - 134950 - 131105: 0x9653, - 134957 - 131105: 0x9AE0, - 134958 - 131105: 0x8B4A, - 134960 - 131105: 0x8AF1, - 134961 - 131105: 0x8AD7, - 134971 - 131105: 0xA0AB, - 134988 - 131105: 0x8AB5, - 135012 - 131105: 0x8A5F, - 135053 - 131105: 0x8AEE, - 135056 - 131105: 0x9ADF, - 135085 - 131105: 0x8AFE, - 135092 - 131105: 0x8A58, - 135093 - 131105: 0x8BA3, - 135094 - 131105: 0x8BA7, - 135100 - 131105: 0x9AE3, - 135135 - 131105: 0x9261, - 135146 - 131105: 0x9DD7, - 135147 - 131105: 0x9E7D, - 135148 - 131105: 0x9EA7, - 135149 - 131105: 0x9EAB, - 135188 - 131105: 0x9042, - 135197 - 131105: 0x8B79, - 135198 - 131105: 0x8B7A, - 135247 - 131105: 0x9AE6, - 135260 - 131105: 0x9AE5, - 135279 - 131105: 0x8A7E, - 135285 - 131105: 0x9E44, - 135286 - 131105: 0x9AE7, - 135287 - 131105: 0x8A7C, - 135288 - 131105: 0x8B71, - 135291 - 131105: 0x9AE9, - 135304 - 131105: 0x9AEA, - 135318 - 131105: 0x9AEB, - 135325 - 131105: 0x8ABD, - 135348 - 131105: 0xFB4E, - 135359 - 131105: 0x9AED, - 135360 - 131105: 0x8AF9, - 135361 - 131105: 0x9E63, - 135367 - 131105: 0x8B49, - 135368 - 131105: 0x8ACE, - 135369 - 131105: 0x8B6E, - 135375 - 131105: 0x8AE8, - 135379 - 131105: 0x9AEE, - 135396 - 131105: 0x92CE, - 135412 - 131105: 0x8A5A, - 135413 - 131105: 0x8B7B, - 135414 - 131105: 0x8B7C, - 135471 - 131105: 0x9AEF, - 135483 - 131105: 0x9AF0, - 135485 - 131105: 0x8AFA, - 135493 - 131105: 0x8941, - 135496 - 131105: 0x8B72, - 135503 - 131105: 0x8AF3, - 135552 - 131105: 0x8BA8, - 135559 - 131105: 0x9EAE, - 135641 - 131105: 0x9E72, - 135740 - 131105: 0xFB73, - 135759 - 131105: 0xFB5F, - 135804 - 131105: 0x90BA, - 135848 - 131105: 0x91FE, - 135849 - 131105: 0x9EF6, - 135856 - 131105: 0x97ED, - 135907 - 131105: 0x9AF3, - 135934 - 131105: 0xA0EE, - 135938 - 131105: 0x967C, - 135939 - 131105: 0x9345, - 135940 - 131105: 0x986E, - 135941 - 131105: 0xFA56, - 135990 - 131105: 0x9AF5, - 135994 - 131105: 0xFC4B, - 136053 - 131105: 0x9AF4, - 136054 - 131105: 0xFEDE, - 136078 - 131105: 0xFCB7, - 136088 - 131105: 0x97F1, - 136092 - 131105: 0x97C7, - 136133 - 131105: 0x9CCB, - 136134 - 131105: 0x9240, - 136173 - 131105: 0x9CE8, - 136190 - 131105: 0x91FD, - 136211 - 131105: 0x974E, - 136214 - 131105: 0xFB68, - 136228 - 131105: 0x976C, - 136255 - 131105: 0x8CC2, - 136274 - 131105: 0x97E8, - 136276 - 131105: 0xFB6A, - 136277 - 131105: 0x8B74, - 136330 - 131105: 0x8EE7, - 136343 - 131105: 0xFDC8, - 136374 - 131105: 0x9241, - 136424 - 131105: 0x96A1, - 136445 - 131105: 0x8EF3, - 136567 - 131105: 0x9AF7, - 136578 - 131105: 0x8FA6, - 136598 - 131105: 0xFAD6, - 136714 - 131105: 0x9CC7, - 136723 - 131105: 0xFAD7, - 136729 - 131105: 0x9AF8, - 136766 - 131105: 0xFBA1, - 136801 - 131105: 0x8EC5, - 136850 - 131105: 0xFBA4, - 136888 - 131105: 0xFBC2, - 136890 - 131105: 0x9AC1, - 136896 - 131105: 0x91FA, - 136897 - 131105: 0xFEDB, - 136898 - 131105: 0x97AB, - 136915 - 131105: 0x9147, - 136917 - 131105: 0xFBB1, - 136927 - 131105: 0x8FEA, - 136934 - 131105: 0x94D2, - 136935 - 131105: 0xFE61, - 136936 - 131105: 0xFACE, - 136954 - 131105: 0x92ED, - 136955 - 131105: 0x91F3, - 136956 - 131105: 0x93C6, - 136958 - 131105: 0x935A, - 136973 - 131105: 0xFAFB, - 136976 - 131105: 0x92EF, - 136998 - 131105: 0xFAC8, - 137018 - 131105: 0x9847, - 137019 - 131105: 0x9366, - 137020 - 131105: 0x9855, - 137047 - 131105: 0x96E6, - 137068 - 131105: 0x9F43, - 137069 - 131105: 0x9FAA, - 137070 - 131105: 0x94DA, - 137071 - 131105: 0x92EE, - 137072 - 131105: 0xFCAF, - 137073 - 131105: 0xFBFB, - 137075 - 131105: 0x8EF9, - 137076 - 131105: 0x91F6, - 137131 - 131105: 0x9364, - 137136 - 131105: 0x94F5, - 137137 - 131105: 0x9CB6, - 137138 - 131105: 0xFBAD, - 137139 - 131105: 0x984E, - 137140 - 131105: 0x8F44, - 137141 - 131105: 0x96FD, - 137155 - 131105: 0x9AF9, - 137159 - 131105: 0x9AFA, - 137177 - 131105: 0x9769, - 137178 - 131105: 0x95D4, - 137179 - 131105: 0x984B, - 137180 - 131105: 0xFBAA, - 137183 - 131105: 0x987C, - 137199 - 131105: 0x91EA, - 137205 - 131105: 0x9DAF, - 137206 - 131105: 0x9DC5, - 137208 - 131105: 0x91F1, - 137209 - 131105: 0x8EB1, - 137210 - 131105: 0x97A9, - 137211 - 131105: 0xFBAC, - 137212 - 131105: 0xFCB8, - 137248 - 131105: 0x9CB9, - 137256 - 131105: 0xFBB0, - 137257 - 131105: 0xFCD2, - 137258 - 131105: 0x93CB, - 137261 - 131105: 0x9AFD, - 137273 - 131105: 0x91F4, - 137274 - 131105: 0x8BAC, - 137275 - 131105: 0xA055, - 137280 - 131105: 0x9574, - 137285 - 131105: 0x95BE, - 137298 - 131105: 0x97AD, - 137310 - 131105: 0x8EE9, - 137313 - 131105: 0x92F8, - 137314 - 131105: 0x97BE, - 137315 - 131105: 0x916C, - 137316 - 131105: 0x94AA, - 137335 - 131105: 0xFC63, - 137339 - 131105: 0x9DC6, - 137347 - 131105: 0x97B5, - 137348 - 131105: 0x92B8, - 137349 - 131105: 0x91EF, - 137374 - 131105: 0xFEA6, - 137375 - 131105: 0x9760, - 137376 - 131105: 0x9358, - 137377 - 131105: 0x9576, - 137378 - 131105: 0x8FAC, - 137406 - 131105: 0x91EC, - 137407 - 131105: 0x97B4, - 137425 - 131105: 0x91F7, - 137430 - 131105: 0x974A, - 137431 - 131105: 0xFB49, - 137432 - 131105: 0x9578, - 137433 - 131105: 0x93BC, - 137466 - 131105: 0x91D6, - 137475 - 131105: 0x9355, - 137476 - 131105: 0x9356, - 137477 - 131105: 0x9851, - 137488 - 131105: 0x8FF8, - 137489 - 131105: 0xFBC0, - 137490 - 131105: 0x93F2, - 137493 - 131105: 0x90D0, - 137500 - 131105: 0x9C44, - 137506 - 131105: 0x9255, - 137511 - 131105: 0x9363, - 137531 - 131105: 0x91A5, - 137540 - 131105: 0xA0ED, - 137560 - 131105: 0xFD6B, - 137578 - 131105: 0x9AFE, - 137596 - 131105: 0x9351, - 137600 - 131105: 0x8C57, - 137603 - 131105: 0xFA78, - 137608 - 131105: 0xFEA8, - 137622 - 131105: 0x9350, - 137691 - 131105: 0xFA4C, - 137715 - 131105: 0x92F7, - 137773 - 131105: 0x9B40, - 137780 - 131105: 0xFBCE, - 137797 - 131105: 0x9B41, - 137803 - 131105: 0xFEAD, - 137827 - 131105: 0x8761, - 138052 - 131105: 0xFBD5, - 138177 - 131105: 0x8BC2, - 138178 - 131105: 0x9A7C, - 138282 - 131105: 0x9B42, - 138352 - 131105: 0x9B43, - 138402 - 131105: 0x9E79, - 138405 - 131105: 0xFBD9, - 138412 - 131105: 0x9B44, - 138566 - 131105: 0xA0A7, - 138579 - 131105: 0x877B, - 138590 - 131105: 0x876E, - 138640 - 131105: 0x9BF3, - 138678 - 131105: 0x8C79, - 138682 - 131105: 0x935E, - 138698 - 131105: 0x89CB, - 138705 - 131105: 0x9F53, - 138731 - 131105: 0x93D7, - 138745 - 131105: 0xFBE1, - 138780 - 131105: 0xFED0, - 138787 - 131105: 0x8CF1, - 138807 - 131105: 0xFBE2, - 138813 - 131105: 0xFCE3, - 138889 - 131105: 0x9074, - 138916 - 131105: 0xFBE6, - 138920 - 131105: 0x9BB7, - 138952 - 131105: 0x9B45, - 138965 - 131105: 0x9B47, - 139023 - 131105: 0x9F50, - 139029 - 131105: 0x9B48, - 139114 - 131105: 0xFC5B, - 139166 - 131105: 0x98A9, - 139169 - 131105: 0x9CFD, - 139240 - 131105: 0x884C, - 139333 - 131105: 0x9B4B, - 139337 - 131105: 0xFBEC, - 139390 - 131105: 0x8C69, - 139418 - 131105: 0x9BA8, - 139463 - 131105: 0x8AD5, - 139516 - 131105: 0xFA73, - 139562 - 131105: 0xFD59, - 139611 - 131105: 0x91A2, - 139635 - 131105: 0xFBED, - 139642 - 131105: 0x9CA9, - 139681 - 131105: 0x8AA8, - 139713 - 131105: 0x8D42, - 139715 - 131105: 0x9BC3, - 139784 - 131105: 0x8AE1, - 139900 - 131105: 0x9B4E, - 140065 - 131105: 0x95D0, - 140069 - 131105: 0x905F, - 140221 - 131105: 0x97EE, - 140240 - 131105: 0xFC4E, - 140247 - 131105: 0x9B4F, - 140282 - 131105: 0x9B50, - 140389 - 131105: 0x9EC6, - 140401 - 131105: 0xFC50, - 140427 - 131105: 0xFD73, - 140433 - 131105: 0xFDA7, - 140464 - 131105: 0x9DA2, - 140476 - 131105: 0x87D1, - 140481 - 131105: 0x87D3, - 140489 - 131105: 0x87D4, - 140492 - 131105: 0x87D5, - 140525 - 131105: 0xFA58, - 140563 - 131105: 0xFA5E, - 140571 - 131105: 0xA059, - 140592 - 131105: 0xFA75, - 140628 - 131105: 0xFBBE, - 140685 - 131105: 0x9CA2, - 140719 - 131105: 0x9370, - 140734 - 131105: 0x9371, - 140827 - 131105: 0x9377, - 140828 - 131105: 0xFEEF, - 140843 - 131105: 0x936D, - 140904 - 131105: 0xFC5D, - 140922 - 131105: 0x90B8, - 140950 - 131105: 0x8AFC, - 140952 - 131105: 0xFB41, - 141044 - 131105: 0x9E6B, - 141045 - 131105: 0x94E3, - 141046 - 131105: 0x8EE2, - 141074 - 131105: 0x8C7D, - 141076 - 131105: 0x8ED7, - 141083 - 131105: 0x9C4D, - 141087 - 131105: 0x96A3, - 141098 - 131105: 0x9B51, - 141173 - 131105: 0x8AC3, - 141185 - 131105: 0x96AA, - 141206 - 131105: 0x8CE2, - 141236 - 131105: 0xFC68, - 141237 - 131105: 0x8B6D, - 141261 - 131105: 0xFD67, - 141315 - 131105: 0x8AE9, - 141407 - 131105: 0xFCA1, - 141408 - 131105: 0x936C, - 141425 - 131105: 0x9B52, - 141485 - 131105: 0xFE70, - 141505 - 131105: 0xFCA8, - 141559 - 131105: 0xFCE9, - 141606 - 131105: 0x9CB4, - 141625 - 131105: 0x8AEA, - 141647 - 131105: 0x9B53, - 141671 - 131105: 0x9B55, - 141675 - 131105: 0x96AB, - 141696 - 131105: 0xFCA7, - 141715 - 131105: 0x9B56, - 141926 - 131105: 0x8ABC, - 142031 - 131105: 0x8ACB, - 142037 - 131105: 0x9B57, - 142054 - 131105: 0x89CD, - 142056 - 131105: 0x9B59, - 142094 - 131105: 0x9B5B, - 142114 - 131105: 0x93A5, - 142143 - 131105: 0x9B5D, - 142147 - 131105: 0x9E4F, - 142186 - 131105: 0x93A3, - 142282 - 131105: 0x8A7B, - 142286 - 131105: 0x8B42, - 142374 - 131105: 0x9750, - 142375 - 131105: 0x8FB3, - 142392 - 131105: 0x8A50, - 142412 - 131105: 0x9B60, - 142417 - 131105: 0x8B45, - 142421 - 131105: 0x8B46, - 142434 - 131105: 0x9DFE, - 142472 - 131105: 0x9B62, - 142491 - 131105: 0x937B, - 142497 - 131105: 0x93B1, - 142505 - 131105: 0x8A60, - 142514 - 131105: 0x8AD8, - 142519 - 131105: 0x9B63, - 142530 - 131105: 0x8A69, - 142534 - 131105: 0x8A47, - 142537 - 131105: 0x8ACC, - 142599 - 131105: 0x937C, - 142600 - 131105: 0x9B65, - 142610 - 131105: 0x9B66, - 142660 - 131105: 0x8A72, - 142668 - 131105: 0x8A7A, - 142695 - 131105: 0x93AF, - 142733 - 131105: 0x8AB0, - 142741 - 131105: 0x9B68, - 142752 - 131105: 0x9EA3, - 142755 - 131105: 0xFAEC, - 142756 - 131105: 0x8B77, - 142775 - 131105: 0x9B67, - 142830 - 131105: 0x8B59, - 142861 - 131105: 0xFCB1, - 142902 - 131105: 0xFCBB, - 142914 - 131105: 0x9B69, - 142968 - 131105: 0x93A8, - 142987 - 131105: 0x8AE0, - 143027 - 131105: 0x9E51, - 143087 - 131105: 0x8F5F, - 143220 - 131105: 0x9B6A, - 143308 - 131105: 0x9B6B, - 143331 - 131105: 0x97EC, - 143411 - 131105: 0x9B6C, - 143428 - 131105: 0xFE4E, - 143435 - 131105: 0xFDC2, - 143462 - 131105: 0x9B6D, - 143485 - 131105: 0x9167, - 143486 - 131105: 0xFCCC, - 143502 - 131105: 0x93B6, - 143543 - 131105: 0x90E4, - 143548 - 131105: 0x90E5, - 143578 - 131105: 0x9EF2, - 143619 - 131105: 0x93CA, - 143677 - 131105: 0x8BBC, - 143741 - 131105: 0x8F46, - 143746 - 131105: 0x93CF, - 143780 - 131105: 0xFCDB, - 143781 - 131105: 0xFCDC, - 143795 - 131105: 0x93C0, - 143816 - 131105: 0xFCE6, - 143817 - 131105: 0x96E7, - 143850 - 131105: 0x87A7, - 143863 - 131105: 0xFCD8, - 143864 - 131105: 0xFCD9, - 143865 - 131105: 0xFDA6, - 143887 - 131105: 0x93CE, - 143909 - 131105: 0x95F1, - 143919 - 131105: 0x9CE9, - 143921 - 131105: 0xFCE4, - 143922 - 131105: 0x94AF, - 143923 - 131105: 0xFA77, - 143924 - 131105: 0x93CC, - 143958 - 131105: 0x8CE1, - 143966 - 131105: 0x87A9, - 143970 - 131105: 0x905A, - 144001 - 131105: 0x8C54, - 144009 - 131105: 0x93BF, - 144010 - 131105: 0xFB51, - 144043 - 131105: 0x93B9, - 144044 - 131105: 0xFED7, - 144045 - 131105: 0x93B7, - 144082 - 131105: 0x93D9, - 144096 - 131105: 0x93BB, - 144097 - 131105: 0x93DA, - 144128 - 131105: 0x98A3, - 144138 - 131105: 0x90D1, - 144159 - 131105: 0x9B6E, - 144308 - 131105: 0xFA70, - 144332 - 131105: 0x9BEB, - 144350 - 131105: 0x9B6F, - 144358 - 131105: 0xFCFC, - 144372 - 131105: 0x8B40, - 144373 - 131105: 0xA07B, - 144377 - 131105: 0x8CA1, - 144378 - 131105: 0x97F7, - 144382 - 131105: 0x93E2, - 144384 - 131105: 0xFCD6, - 144447 - 131105: 0x9559, - 144464 - 131105: 0x93A6, - 144495 - 131105: 0xFD40, - 144498 - 131105: 0x935F, - 144613 - 131105: 0x97F2, - 144665 - 131105: 0x9C76, - 144688 - 131105: 0x8EF8, - 144721 - 131105: 0x8CEB, - 144730 - 131105: 0x8F47, - 144743 - 131105: 0x9B74, - 144789 - 131105: 0x92B4, - 144793 - 131105: 0x91ED, - 144796 - 131105: 0x96D2, - 144827 - 131105: 0x87D8, - 144845 - 131105: 0xFD46, - 144846 - 131105: 0x8F4F, - 144847 - 131105: 0x9549, - 144883 - 131105: 0x9B75, - 144896 - 131105: 0xFA5C, - 144919 - 131105: 0x8751, - 144922 - 131105: 0x9B79, - 144956 - 131105: 0xFD4B, - 144960 - 131105: 0x96D3, - 144985 - 131105: 0xFD58, - 144991 - 131105: 0x945F, - 145015 - 131105: 0xA0F5, - 145038 - 131105: 0x87C7, - 145054 - 131105: 0x877C, - 145062 - 131105: 0x9243, - 145069 - 131105: 0x97FA, - 145082 - 131105: 0x9DD9, - 145119 - 131105: 0x97F4, - 145134 - 131105: 0x924D, - 145155 - 131105: 0xFD5B, - 145174 - 131105: 0x9B7A, - 145184 - 131105: 0x9ED5, - 145197 - 131105: 0xFAAE, - 145199 - 131105: 0x9CC9, - 145215 - 131105: 0x9258, - 145254 - 131105: 0x8EC8, - 145281 - 131105: 0x94B4, - 145314 - 131105: 0x93E1, - 145340 - 131105: 0x93DF, - 145346 - 131105: 0xFCF0, - 145365 - 131105: 0x93EC, - 145366 - 131105: 0x97F6, - 145367 - 131105: 0x96CF, - 145466 - 131105: 0x93DE, - 145858 - 131105: 0x8ACF, - 146087 - 131105: 0x9BA2, - 146139 - 131105: 0xFD69, - 146158 - 131105: 0x9352, - 146170 - 131105: 0x98A2, - 146202 - 131105: 0x8CE7, - 146266 - 131105: 0xFD6E, - 146531 - 131105: 0x8CA4, - 146585 - 131105: 0xFA7C, - 146586 - 131105: 0x93FA, - 146587 - 131105: 0x907C, - 146613 - 131105: 0x8F67, - 146615 - 131105: 0x9DB7, - 146631 - 131105: 0xA0E9, - 146632 - 131105: 0xFA4E, - 146633 - 131105: 0xFDA1, - 146684 - 131105: 0x9E74, - 146685 - 131105: 0x9FBF, - 146686 - 131105: 0x9ECB, - 146687 - 131105: 0x9BB9, - 146752 - 131105: 0x9DD4, - 146779 - 131105: 0x97B9, - 146814 - 131105: 0x8EF1, - 146831 - 131105: 0x957B, - 146870 - 131105: 0x9ED2, - 146871 - 131105: 0x9753, - 146872 - 131105: 0x96A4, - 146873 - 131105: 0x8FBE, - 146874 - 131105: 0x94D9, - 146875 - 131105: 0x9058, - 146876 - 131105: 0xFD79, - 146877 - 131105: 0xFD7B, - 146915 - 131105: 0x8EDA, - 146936 - 131105: 0x8EFA, - 146950 - 131105: 0x8762, - 146961 - 131105: 0x9BA5, - 146988 - 131105: 0x9ED9, - 146989 - 131105: 0x97D4, - 146990 - 131105: 0x90BB, - 146991 - 131105: 0xFDBC, - 146992 - 131105: 0xFDC6, - 146993 - 131105: 0x9248, - 147001 - 131105: 0x92B5, - 147080 - 131105: 0x9DC1, - 147081 - 131105: 0x92B9, - 147082 - 131105: 0x92A6, - 147083 - 131105: 0x8F4B, - 147129 - 131105: 0x9BA6, - 147135 - 131105: 0x92B6, - 147159 - 131105: 0x8E40, - 147191 - 131105: 0x9ED8, - 147192 - 131105: 0x945E, - 147193 - 131105: 0x985F, - 147194 - 131105: 0x94CE, - 147195 - 131105: 0x924A, - 147196 - 131105: 0xFD70, - 147253 - 131105: 0x9467, - 147265 - 131105: 0x8DEC, - 147274 - 131105: 0x9BD8, - 147297 - 131105: 0x8763, - 147327 - 131105: 0x9448, - 147328 - 131105: 0xFAC1, - 147329 - 131105: 0x9CF7, - 147330 - 131105: 0xFDBE, - 147343 - 131105: 0x8FDA, - 147380 - 131105: 0xFDD9, - 147383 - 131105: 0xFC7E, - 147392 - 131105: 0x93F9, - 147397 - 131105: 0xFA43, - 147435 - 131105: 0xFAEB, - 147436 - 131105: 0xFAC3, - 147437 - 131105: 0x97D3, - 147438 - 131105: 0x95F9, - 147439 - 131105: 0x9C48, - 147440 - 131105: 0xFDD8, - 147473 - 131105: 0xA0D8, - 147513 - 131105: 0xFDD7, - 147514 - 131105: 0xFB4A, - 147515 - 131105: 0x9BAF, - 147516 - 131105: 0x944B, - 147517 - 131105: 0xFDC9, - 147543 - 131105: 0x8EAC, - 147589 - 131105: 0xFDB2, - 147595 - 131105: 0x925A, - 147596 - 131105: 0xFCBD, - 147597 - 131105: 0x92D9, - 147601 - 131105: 0xFDD5, - 147657 - 131105: 0x92DD, - 147681 - 131105: 0x9259, - 147692 - 131105: 0x8CF0, - 147716 - 131105: 0x96BA, - 147727 - 131105: 0x925B, - 147737 - 131105: 0x9BAB, - 147775 - 131105: 0xFDDA, - 147776 - 131105: 0xFDDE, - 147780 - 131105: 0xFDD3, - 147790 - 131105: 0x8C46, - 147797 - 131105: 0xFDD6, - 147798 - 131105: 0xFDDC, - 147799 - 131105: 0xFDDD, - 147804 - 131105: 0x90FE, - 147807 - 131105: 0xFEA1, - 147809 - 131105: 0x87A5, - 147831 - 131105: 0x8BAD, - 147834 - 131105: 0x9CD8, - 147875 - 131105: 0x9E6D, - 147876 - 131105: 0xFD7C, - 147877 - 131105: 0xFB61, - 147884 - 131105: 0x96F8, - 147893 - 131105: 0x96F0, - 147917 - 131105: 0xFCF4, - 147938 - 131105: 0xFE60, - 147964 - 131105: 0x9852, - 147995 - 131105: 0x964F, - 148043 - 131105: 0x916E, - 148054 - 131105: 0x986D, - 148057 - 131105: 0x9864, - 148086 - 131105: 0x9453, - 148087 - 131105: 0xFDEC, - 148088 - 131105: 0xFB78, - 148100 - 131105: 0x95BA, - 148115 - 131105: 0x985D, - 148117 - 131105: 0x92F9, - 148133 - 131105: 0x985A, - 148159 - 131105: 0x8750, - 148161 - 131105: 0xFDF6, - 148169 - 131105: 0x93D0, - 148170 - 131105: 0x9862, - 148206 - 131105: 0x9BAD, - 148218 - 131105: 0x974F, - 148237 - 131105: 0x9BAE, - 148250 - 131105: 0x9452, - 148276 - 131105: 0x9BB0, - 148296 - 131105: 0x91D2, - 148322 - 131105: 0x97EA, - 148323 - 131105: 0xFB6B, - 148324 - 131105: 0x91B1, - 148325 - 131105: 0xFDF3, - 148364 - 131105: 0x92CB, - 148374 - 131105: 0x9BB1, - 148380 - 131105: 0xFCEC, - 148413 - 131105: 0x986B, - 148417 - 131105: 0x9751, - 148457 - 131105: 0x9871, - 148458 - 131105: 0x95EF, - 148466 - 131105: 0x9EF3, - 148472 - 131105: 0x91E8, - 148484 - 131105: 0x9BBA, - 148533 - 131105: 0xFB4C, - 148534 - 131105: 0x926A, - 148570 - 131105: 0xFDF8, - 148571 - 131105: 0x9861, - 148595 - 131105: 0x91E7, - 148615 - 131105: 0x93ED, - 148616 - 131105: 0x9744, - 148665 - 131105: 0x91E1, - 148668 - 131105: 0xFBF5, - 148686 - 131105: 0x9869, - 148691 - 131105: 0x8A62, - 148694 - 131105: 0x9BBB, - 148741 - 131105: 0x8CA8, - 148769 - 131105: 0x9C55, - 148856 - 131105: 0x8E77, - 148936 - 131105: 0x8AB2, - 149016 - 131105: 0x9EBC, - 149034 - 131105: 0x93E6, - 149093 - 131105: 0x93A2, - 149108 - 131105: 0x9BBD, - 149143 - 131105: 0x94B3, - 149204 - 131105: 0x937D, - 149254 - 131105: 0x9E66, - 149285 - 131105: 0x9459, - 149295 - 131105: 0x9BBF, - 149391 - 131105: 0x9458, - 149472 - 131105: 0x9EA5, - 149522 - 131105: 0x9BC7, - 149539 - 131105: 0xFE54, - 149634 - 131105: 0x8E74, - 149737 - 131105: 0x8BD6, - 149744 - 131105: 0x94B6, - 149745 - 131105: 0xFD74, - 149746 - 131105: 0x98C0, - 149747 - 131105: 0x94A5, - 149755 - 131105: 0x9BC8, - 149759 - 131105: 0x95ED, - 149760 - 131105: 0xFD7E, - 149761 - 131105: 0xFBEB, - 149772 - 131105: 0xFD7D, - 149782 - 131105: 0x976F, - 149783 - 131105: 0x9461, - 149785 - 131105: 0x9FC1, - 149807 - 131105: 0x95D7, - 149811 - 131105: 0xFA52, - 149812 - 131105: 0x9C58, - 149822 - 131105: 0x9F68, - 149823 - 131105: 0x9BE7, - 149824 - 131105: 0xFCCE, - 149825 - 131105: 0x96E8, - 149826 - 131105: 0xFA49, - 149827 - 131105: 0x97A1, - 149858 - 131105: 0x954D, - 149859 - 131105: 0x9EF8, - 149876 - 131105: 0xFE49, - 149877 - 131105: 0x91CE, - 149878 - 131105: 0x9771, - 149883 - 131105: 0x8CCF, - 149887 - 131105: 0xFDB1, - 149890 - 131105: 0xFC6E, - 149896 - 131105: 0x9CF2, - 149897 - 131105: 0x93B8, - 149898 - 131105: 0x9043, - 149899 - 131105: 0x9759, - 149900 - 131105: 0x94D7, - 149901 - 131105: 0xFE66, - 149902 - 131105: 0x947D, - 149903 - 131105: 0xFC6F, - 149908 - 131105: 0x9246, - 149924 - 131105: 0xFA6D, - 149927 - 131105: 0x8EF7, - 149929 - 131105: 0xFBB7, - 149931 - 131105: 0x947C, - 149932 - 131105: 0x92CD, - 149933 - 131105: 0x97B2, - 149943 - 131105: 0xFE65, - 149944 - 131105: 0x967E, - 149945 - 131105: 0x9758, - 149946 - 131105: 0x9B77, - 149947 - 131105: 0x91CF, - 149957 - 131105: 0x94A4, - 149968 - 131105: 0x9CAD, - 149978 - 131105: 0x8BAB, - 149982 - 131105: 0x96D5, - 149983 - 131105: 0xFCB3, - 149987 - 131105: 0x93AE, - 149989 - 131105: 0x976D, - 149996 - 131105: 0x9446, - 149997 - 131105: 0x95F7, - 150006 - 131105: 0x9C46, - 150007 - 131105: 0x955B, - 150008 - 131105: 0x91D1, - 150009 - 131105: 0x94F4, - 150011 - 131105: 0xFE67, - 150030 - 131105: 0x92A5, - 150034 - 131105: 0xFEDF, - 150035 - 131105: 0x8CAB, - 150037 - 131105: 0x9BC9, - 150049 - 131105: 0xFCED, - 150050 - 131105: 0xFDFA, - 150051 - 131105: 0xFCC8, - 150052 - 131105: 0xFE62, - 150053 - 131105: 0x91FC, - 150054 - 131105: 0xFE6B, - 150055 - 131105: 0xFDF9, - 150056 - 131105: 0xFCC7, - 150057 - 131105: 0x914E, - 150058 - 131105: 0x9CB8, - 150078 - 131105: 0x9767, - 150082 - 131105: 0x95EE, - 150085 - 131105: 0x9BB2, - 150090 - 131105: 0x9460, - 150094 - 131105: 0x94A2, - 150095 - 131105: 0x9875, - 150096 - 131105: 0x97AC, - 150097 - 131105: 0x91D3, - 150109 - 131105: 0x987B, - 150117 - 131105: 0x8EEB, - 150118 - 131105: 0x976A, - 150119 - 131105: 0x965E, - 150129 - 131105: 0x97EB, - 150135 - 131105: 0x9FF9, - 150136 - 131105: 0x95F8, - 150137 - 131105: 0xFEA2, - 150138 - 131105: 0x8FE6, - 150156 - 131105: 0xFE7E, - 150163 - 131105: 0x9DA4, - 150164 - 131105: 0x9768, - 150165 - 131105: 0x8EEC, - 150166 - 131105: 0x94BD, - 150180 - 131105: 0x945B, - 150181 - 131105: 0x9CF6, - 150182 - 131105: 0xFAA7, - 150183 - 131105: 0x9BD9, - 150193 - 131105: 0xFA5D, - 150194 - 131105: 0x9656, - 150195 - 131105: 0x9762, - 150202 - 131105: 0x94BA, - 150203 - 131105: 0xA04F, - 150204 - 131105: 0x92D8, - 150208 - 131105: 0x9BCB, - 150215 - 131105: 0x94BB, - 150218 - 131105: 0x9D5F, - 150225 - 131105: 0x90CF, - 150239 - 131105: 0x9465, - 150242 - 131105: 0x9F4C, - 150249 - 131105: 0x90D8, - 150287 - 131105: 0x8D5B, - 150382 - 131105: 0x9EBE, - 150517 - 131105: 0xFB6D, - 150537 - 131105: 0x95CA, - 150686 - 131105: 0x9DC2, - 150687 - 131105: 0x97F8, - 150729 - 131105: 0x8FFC, - 150745 - 131105: 0x9473, - 150790 - 131105: 0x9474, - 150803 - 131105: 0xFEB7, - 150968 - 131105: 0x8A4B, - 151018 - 131105: 0x8A55, - 151019 - 131105: 0x8B69, - 151099 - 131105: 0x8ADC, - 151120 - 131105: 0x8B76, - 151205 - 131105: 0x9BCE, - 151207 - 131105: 0x8A68, - 151310 - 131105: 0xA0F8, - 151388 - 131105: 0x98DF, - 151426 - 131105: 0xFEB5, - 151430 - 131105: 0x9BCF, - 151447 - 131105: 0x96FB, - 151450 - 131105: 0x9BFB, - 151465 - 131105: 0x9ECE, - 151480 - 131105: 0x8EE5, - 151490 - 131105: 0x9E7B, - 151596 - 131105: 0x9BD2, - 151634 - 131105: 0x8AA5, - 151709 - 131105: 0xFECE, - 151851 - 131105: 0x8A45, - 151880 - 131105: 0x9DFC, - 151933 - 131105: 0xFECF, - 151934 - 131105: 0x8BA5, - 152013 - 131105: 0x8C4A, - 152035 - 131105: 0x8AEC, - 152038 - 131105: 0xFCE0, - 152039 - 131105: 0x94AD, - 152096 - 131105: 0xFED5, - 152097 - 131105: 0x94AC, - 152144 - 131105: 0xFC5A, - 152217 - 131105: 0x9BD6, - 152263 - 131105: 0x8A6F, - 152280 - 131105: 0x8BA9, - 152334 - 131105: 0x8E5F, - 152337 - 131105: 0x9DCB, - 152339 - 131105: 0xFCE7, - 152601 - 131105: 0x9BD7, - 152613 - 131105: 0x93C8, - 152623 - 131105: 0x91F0, - 152624 - 131105: 0x8FE0, - 152646 - 131105: 0x9BDB, - 152684 - 131105: 0x90ED, - 152686 - 131105: 0x9BDC, - 152730 - 131105: 0x8D53, - 152881 - 131105: 0xA0EC, - 152885 - 131105: 0x98FA, - 152895 - 131105: 0x9BE0, - 152923 - 131105: 0x93C7, - 152924 - 131105: 0x9249, - 152925 - 131105: 0x96E1, - 152926 - 131105: 0x9BE2, - 152930 - 131105: 0x9BE4, - 152933 - 131105: 0x8FE1, - 152934 - 131105: 0x9BE5, - 152961 - 131105: 0x94C0, - 152964 - 131105: 0x93C3, - 152975 - 131105: 0x93C5, - 153017 - 131105: 0x9079, - 153045 - 131105: 0x977B, - 153051 - 131105: 0x907E, - 153056 - 131105: 0xFEE6, - 153093 - 131105: 0xFE46, - 153141 - 131105: 0x9DB8, - 153169 - 131105: 0x9270, - 153219 - 131105: 0x95A8, - 153237 - 131105: 0x8CB0, - 153315 - 131105: 0x94C8, - 153334 - 131105: 0x98B9, - 153350 - 131105: 0x9140, - 153373 - 131105: 0xFCBE, - 153381 - 131105: 0x9157, - 153405 - 131105: 0x8BB2, - 153458 - 131105: 0xFADF, - 153543 - 131105: 0x9BE6, - 153567 - 131105: 0x9643, - 153568 - 131105: 0x8E44, - 153569 - 131105: 0x9C4F, - 153687 - 131105: 0xFEF4, - 153693 - 131105: 0x9BE8, - 153714 - 131105: 0x93DC, - 153800 - 131105: 0x966F, - 153822 - 131105: 0x87A1, - 153825 - 131105: 0x8E4A, - 153859 - 131105: 0x9BED, - 153926 - 131105: 0x92F6, - 153942 - 131105: 0x9DB9, - 154028 - 131105: 0x8E4E, - 154060 - 131105: 0xFBCF, - 154196 - 131105: 0x8760, - 154261 - 131105: 0x9EC2, - 154268 - 131105: 0x94E5, - 154286 - 131105: 0x9BF0, - 154287 - 131105: 0x94E4, - 154345 - 131105: 0x9551, - 154484 - 131105: 0x8BBB, - 154505 - 131105: 0x9BF1, - 154547 - 131105: 0x94F0, - 154548 - 131105: 0x8E64, - 154566 - 131105: 0x94EA, - 154596 - 131105: 0x8F61, - 154600 - 131105: 0x9B64, - 154625 - 131105: 0x8E5B, - 154630 - 131105: 0x9BF2, - 154657 - 131105: 0x9FBE, - 154698 - 131105: 0x9DC9, - 154725 - 131105: 0x8E6C, - 154769 - 131105: 0x8F73, - 154788 - 131105: 0x8CAF, - 154816 - 131105: 0x8F75, - 154817 - 131105: 0x8E71, - 154878 - 131105: 0x8E60, - 154912 - 131105: 0x8E6A, - 154928 - 131105: 0x8C4C, - 154947 - 131105: 0x9552, - 155033 - 131105: 0x87CF, - 155065 - 131105: 0x87C0, - 155150 - 131105: 0x9554, - 155209 - 131105: 0x8AD4, - 155265 - 131105: 0x9DBB, - 155266 - 131105: 0x9543, - 155267 - 131105: 0x92FE, - 155302 - 131105: 0x94F2, - 155324 - 131105: 0x94F1, - 155351 - 131105: 0xA0EA, - 155352 - 131105: 0x9DD2, - 155418 - 131105: 0xA0B1, - 155467 - 131105: 0x91F8, - 155617 - 131105: 0x9462, - 155618 - 131105: 0x9BA4, - 155681 - 131105: 0x877D, - 155689 - 131105: 0x8EAD, - 155720 - 131105: 0x9EAD, - 155748 - 131105: 0x96D0, - 155779 - 131105: 0xFEEE, - 155799 - 131105: 0x8AB4, - 155812 - 131105: 0x9757, - 155813 - 131105: 0x8A77, - 155906 - 131105: 0x9BF7, - 155937 - 131105: 0x8EB5, - 155993 - 131105: 0xA06D, - 155994 - 131105: 0x8EB6, - 155995 - 131105: 0x9756, - 155996 - 131105: 0x9540, - 156077 - 131105: 0xA0F3, - 156078 - 131105: 0x94BE, - 156082 - 131105: 0x9BFA, - 156125 - 131105: 0xFDDF, - 156248 - 131105: 0x9DBC, - 156257 - 131105: 0x94FE, - 156266 - 131105: 0x8BDB, - 156267 - 131105: 0xA0FE, - 156368 - 131105: 0x8EC0, - 156469 - 131105: 0x9F47, - 156491 - 131105: 0x8BDE, - 156492 - 131105: 0xA0FB, - 156497 - 131105: 0x8EC3, - 156606 - 131105: 0x9649, - 156661 - 131105: 0xFEC2, - 156664 - 131105: 0x954C, - 156674 - 131105: 0x9BFD, - 156688 - 131105: 0x90CC, - 156689 - 131105: 0x9C60, - 156690 - 131105: 0x954B, - 156746 - 131105: 0x9BFE, - 156777 - 131105: 0x9C70, - 156804 - 131105: 0x9C43, - 156808 - 131105: 0x9C47, - 156809 - 131105: 0x8ECC, - 156813 - 131105: 0x8E54, - 156824 - 131105: 0x8EE4, - 156946 - 131105: 0x9C49, - 157042 - 131105: 0x8B5E, - 157088 - 131105: 0x955E, - 157101 - 131105: 0x955C, - 157119 - 131105: 0x9C4B, - 157202 - 131105: 0x8BE1, - 157222 - 131105: 0x8ED9, - 157359 - 131105: 0x9DB4, - 157361 - 131105: 0x925F, - 157365 - 131105: 0x9C4C, - 157402 - 131105: 0x8AA1, - 157416 - 131105: 0x8EDB, - 157436 - 131105: 0x9C56, - 157462 - 131105: 0x8AA2, - 157505 - 131105: 0x9754, - 157593 - 131105: 0x9C5E, - 157619 - 131105: 0x9ED4, - 157620 - 131105: 0x9568, - 157644 - 131105: 0xA0C3, - 157724 - 131105: 0x8AE6, - 157766 - 131105: 0xA0F7, - 157790 - 131105: 0x9C61, - 157806 - 131105: 0x9C5F, - 157832 - 131105: 0xFC4D, - 157834 - 131105: 0x9E5B, - 157843 - 131105: 0x9E69, - 157895 - 131105: 0x9C63, - 157966 - 131105: 0xFEC7, - 157969 - 131105: 0xFEC6, - 157990 - 131105: 0x9C67, - 158009 - 131105: 0x9C69, - 158033 - 131105: 0x8BE2, - 158120 - 131105: 0x9165, - 158133 - 131105: 0x9CE7, - 158194 - 131105: 0x8A54, - 158202 - 131105: 0x9C6C, - 158253 - 131105: 0x9C6E, - 158254 - 131105: 0xFE5D, - 158260 - 131105: 0x9C73, - 158274 - 131105: 0x956A, - 158289 - 131105: 0x956D, - 158290 - 131105: 0x8EF0, - 158469 - 131105: 0x8F4D, - 158474 - 131105: 0x8EF6, - 158483 - 131105: 0xFABC, - 158485 - 131105: 0x8CD5, - 158499 - 131105: 0x875E, - 158504 - 131105: 0xFBDA, - 158544 - 131105: 0x8B4C, - 158545 - 131105: 0xFD75, - 158546 - 131105: 0x9BDD, - 158547 - 131105: 0xFAF5, - 158555 - 131105: 0x9C74, - 158581 - 131105: 0x9545, - 158594 - 131105: 0x96C6, - 158614 - 131105: 0x8F6A, - 158615 - 131105: 0x8F4E, - 158621 - 131105: 0x9C78, - 158643 - 131105: 0xFA55, - 158656 - 131105: 0x97E4, - 158711 - 131105: 0x9C41, - 158753 - 131105: 0x925C, - 158784 - 131105: 0x96FA, - 158785 - 131105: 0x8CF6, - 158790 - 131105: 0x8D4D, - 158846 - 131105: 0xFB66, - 158847 - 131105: 0x8E65, - 158848 - 131105: 0x9849, - 158849 - 131105: 0xFBA8, - 158850 - 131105: 0x9842, - 158884 - 131105: 0x9C7A, - 158903 - 131105: 0x97FB, - 158904 - 131105: 0x90CA, - 158909 - 131105: 0x9C5B, - 158912 - 131105: 0x974D, - 158915 - 131105: 0x8ED3, - 158929 - 131105: 0x9561, - 159010 - 131105: 0x9F4B, - 159011 - 131105: 0x9FB5, - 159012 - 131105: 0x93D2, - 159013 - 131105: 0xFDAA, - 159014 - 131105: 0x9840, - 159015 - 131105: 0x9146, - 159016 - 131105: 0x9867, - 159017 - 131105: 0xFA5A, - 159018 - 131105: 0xFBA9, - 159057 - 131105: 0x9841, - 159092 - 131105: 0x8CD3, - 159136 - 131105: 0xFCFD, - 159137 - 131105: 0xFDAB, - 159138 - 131105: 0x91BD, - 159139 - 131105: 0x8F4C, - 159140 - 131105: 0x96C9, - 159141 - 131105: 0x8F55, - 159142 - 131105: 0xFBAE, - 159143 - 131105: 0x956F, - 159150 - 131105: 0x9C7D, - 159196 - 131105: 0xA0F0, - 159210 - 131105: 0x946F, - 159211 - 131105: 0xFDAC, - 159216 - 131105: 0x96CB, - 159232 - 131105: 0x96CE, - 159237 - 131105: 0xA056, - 159239 - 131105: 0x9CE1, - 159250 - 131105: 0x96C4, - 159298 - 131105: 0x8F5E, - 159299 - 131105: 0x8F6C, - 159300 - 131105: 0x8EA3, - 159301 - 131105: 0xFBB3, - 159342 - 131105: 0xFC53, - 159346 - 131105: 0xFDB3, - 159351 - 131105: 0x8F6B, - 159364 - 131105: 0x96CA, - 159368 - 131105: 0x87CD, - 159371 - 131105: 0x8753, - 159385 - 131105: 0x8F79, - 159440 - 131105: 0x9E6F, - 159441 - 131105: 0xA0C5, - 159442 - 131105: 0xFC78, - 159443 - 131105: 0x8E42, - 159444 - 131105: 0x8F5A, - 159445 - 131105: 0x90C2, - 159446 - 131105: 0x8EA5, - 159447 - 131105: 0x9061, - 159526 - 131105: 0x924F, - 159603 - 131105: 0x9373, - 159604 - 131105: 0xFDB5, - 159647 - 131105: 0xFECC, - 159649 - 131105: 0xFBBD, - 159678 - 131105: 0x8CD6, - 159710 - 131105: 0x9843, - 159711 - 131105: 0x96C5, - 159758 - 131105: 0x89BC, - 159819 - 131105: 0x9CA3, - 159826 - 131105: 0x924B, - 159827 - 131105: 0x984A, - 159880 - 131105: 0x8FA4, - 159917 - 131105: 0xA0F1, - 159918 - 131105: 0x9EFB, - 159919 - 131105: 0x9CD2, - 159949 - 131105: 0x8FA7, - 159954 - 131105: 0x8754, - 159992 - 131105: 0xFC5C, - 160009 - 131105: 0x9845, - 160012 - 131105: 0x9046, - 160013 - 131105: 0x8CD1, - 160038 - 131105: 0xFEFA, - 160039 - 131105: 0x9560, - 160100 - 131105: 0x9F48, - 160101 - 131105: 0x9247, - 160117 - 131105: 0x90FB, - 160205 - 131105: 0x9CA4, - 160283 - 131105: 0x9571, - 160359 - 131105: 0x8745, - 160384 - 131105: 0x9CA6, - 160389 - 131105: 0x9CA7, - 160395 - 131105: 0x9CAA, - 160434 - 131105: 0x9ED3, - 160438 - 131105: 0x9E70, - 160486 - 131105: 0x9CAC, - 160594 - 131105: 0x8752, - 160666 - 131105: 0x8FAE, - 160767 - 131105: 0x8D50, - 160802 - 131105: 0x957D, - 160848 - 131105: 0x9CB0, - 160900 - 131105: 0x97B6, - 160902 - 131105: 0xA0BD, - 161140 - 131105: 0x8ADF, - 161187 - 131105: 0x9EAA, - 161248 - 131105: 0x8FBD, - 161252 - 131105: 0x8FBF, - 161277 - 131105: 0x9369, - 161278 - 131105: 0x9BA7, - 161287 - 131105: 0xC8A4, - 161292 - 131105: 0xFEEA, - 161330 - 131105: 0x9BE1, - 161337 - 131105: 0x8B41, - 161365 - 131105: 0x9DB6, - 161366 - 131105: 0xA0EB, - 161367 - 131105: 0x9BA3, - 161428 - 131105: 0x8BA1, - 161551 - 131105: 0x8FC8, - 161589 - 131105: 0x894C, - 161590 - 131105: 0x9860, - 161601 - 131105: 0x94C7, - 161630 - 131105: 0x8B58, - 161668 - 131105: 0x95AB, - 161669 - 131105: 0x95AA, - 161740 - 131105: 0x9CC3, - 161880 - 131105: 0x9CC4, - 161904 - 131105: 0x93D6, - 161949 - 131105: 0x9DAC, - 161970 - 131105: 0x8BE6, - 161992 - 131105: 0x8A71, - 162084 - 131105: 0x8FD1, - 162151 - 131105: 0x99D5, - 162170 - 131105: 0x90F4, - 162208 - 131105: 0x8AA3, - 162269 - 131105: 0x9CCE, - 162301 - 131105: 0x9CD4, - 162314 - 131105: 0x9CD5, - 162318 - 131105: 0xFBC8, - 162366 - 131105: 0x9DB3, - 162387 - 131105: 0xFC70, - 162393 - 131105: 0x8FD7, - 162425 - 131105: 0x9B73, - 162436 - 131105: 0xFA5B, - 162493 - 131105: 0x8FD2, - 162494 - 131105: 0x9064, - 162548 - 131105: 0x98B6, - 162566 - 131105: 0x9668, - 162571 - 131105: 0x9CD6, - 162584 - 131105: 0x98BD, - 162616 - 131105: 0x8FDC, - 162617 - 131105: 0xFEF6, - 162618 - 131105: 0x8FD9, - 162632 - 131105: 0x9541, - 162661 - 131105: 0x87CA, - 162799 - 131105: 0x876C, - 162804 - 131105: 0x97F3, - 162834 - 131105: 0x9BF8, - 162924 - 131105: 0x875A, - 162993 - 131105: 0x8748, - 163013 - 131105: 0x874A, - 163119 - 131105: 0x9E6C, - 163155 - 131105: 0x8FF2, - 163156 - 131105: 0x8FEE, - 163174 - 131105: 0x9CD7, - 163187 - 131105: 0x9E6E, - 163204 - 131105: 0x8A40, - 163215 - 131105: 0x8FEF, - 163224 - 131105: 0x8FF4, - 163261 - 131105: 0x8FF5, - 163292 - 131105: 0x95C2, - 163405 - 131105: 0x986A, - 163407 - 131105: 0x97CF, - 163630 - 131105: 0x9EE5, - 163833 - 131105: 0x9E7C, - 163842 - 131105: 0x9041, - 163849 - 131105: 0x9CDB, - 163870 - 131105: 0x9441, - 163875 - 131105: 0x9CE6, - 163876 - 131105: 0x9DB0, - 163912 - 131105: 0x9CEA, - 163971 - 131105: 0x9CED, - 163984 - 131105: 0x9CFA, - 164029 - 131105: 0x8B62, - 164030 - 131105: 0x8A4E, - 164072 - 131105: 0x9CCA, - 164073 - 131105: 0x8A66, - 164084 - 131105: 0x9CFB, - 164142 - 131105: 0x9CFC, - 164175 - 131105: 0x9CFE, - 164189 - 131105: 0x8A53, - 164207 - 131105: 0x9CE5, - 164233 - 131105: 0x9D40, - 164271 - 131105: 0x9D41, - 164284 - 131105: 0x9045, - 164359 - 131105: 0x8B73, - 164376 - 131105: 0x97CA, - 164378 - 131105: 0x9D42, - 164438 - 131105: 0x8A61, - 164476 - 131105: 0x8BAE, - 164507 - 131105: 0x8AD2, - 164557 - 131105: 0x8BA2, - 164578 - 131105: 0x9DF2, - 164614 - 131105: 0x9D43, - 164632 - 131105: 0x9CDF, - 164655 - 131105: 0x9D44, - 164666 - 131105: 0x8ECA, - 164709 - 131105: 0x904E, - 164717 - 131105: 0x8EB3, - 164733 - 131105: 0x9FF5, - 164746 - 131105: 0x9D45, - 164882 - 131105: 0x904F, - 164968 - 131105: 0x9D47, - 164972 - 131105: 0x89CA, - 164979 - 131105: 0x9CB5, - 164994 - 131105: 0xFBFE, - 165121 - 131105: 0x905E, - 165180 - 131105: 0x9063, - 165181 - 131105: 0x9057, - 165228 - 131105: 0x9066, - 165352 - 131105: 0x9BC0, - 165364 - 131105: 0xFCE5, - 165376 - 131105: 0x9162, - 165387 - 131105: 0x9067, - 165413 - 131105: 0x8FA1, - 165435 - 131105: 0x8FA2, - 165546 - 131105: 0x9D48, - 165547 - 131105: 0xFAD3, - 165554 - 131105: 0x8D4F, - 165564 - 131105: 0x905D, - 165592 - 131105: 0x90B9, - 165606 - 131105: 0x906B, - 165647 - 131105: 0x8C5C, - 165651 - 131105: 0x9069, - 165892 - 131105: 0xFE57, - 165931 - 131105: 0xFE55, - 166157 - 131105: 0x87A6, - 166195 - 131105: 0x9073, - 166216 - 131105: 0x9BEF, - 166217 - 131105: 0x9CF0, - 166230 - 131105: 0x9D4B, - 166244 - 131105: 0xFED9, - 166248 - 131105: 0xFEDA, - 166252 - 131105: 0x91E0, - 166253 - 131105: 0x8D43, - 166270 - 131105: 0x91D8, - 166281 - 131105: 0x9646, - 166312 - 131105: 0x9360, - 166314 - 131105: 0xFA53, - 166315 - 131105: 0x9CD3, - 166328 - 131105: 0x9D4E, - 166332 - 131105: 0xFB40, - 166336 - 131105: 0x8DE2, - 166364 - 131105: 0x9442, - 166366 - 131105: 0x9056, - 166369 - 131105: 0x9865, - 166371 - 131105: 0x8C6C, - 166372 - 131105: 0xFA4A, - 166375 - 131105: 0x9D50, - 166376 - 131105: 0x9D52, - 166393 - 131105: 0x95AF, - 166394 - 131105: 0x975A, - 166395 - 131105: 0x9349, - 166396 - 131105: 0x9747, - 166415 - 131105: 0xA0F4, - 166422 - 131105: 0x9778, - 166437 - 131105: 0x8FCF, - 166441 - 131105: 0xFC60, - 166450 - 131105: 0x8C4E, - 166454 - 131105: 0xFC56, - 166468 - 131105: 0x91DC, - 166469 - 131105: 0x9661, - 166470 - 131105: 0x92EC, - 166471 - 131105: 0x935D, - 166472 - 131105: 0x8EDE, - 166473 - 131105: 0x96FE, - 166474 - 131105: 0xFD4F, - 166475 - 131105: 0x95DE, - 166489 - 131105: 0x98B0, - 166490 - 131105: 0xA040, - 166529 - 131105: 0x97BD, - 166530 - 131105: 0x977D, - 166531 - 131105: 0x97F5, - 166554 - 131105: 0x9BAC, - 166555 - 131105: 0xFADA, - 166556 - 131105: 0x92C2, - 166592 - 131105: 0x97B1, - 166598 - 131105: 0x907B, - 166603 - 131105: 0x93FE, - 166604 - 131105: 0x947B, - 166606 - 131105: 0x9777, - 166622 - 131105: 0xFABE, - 166623 - 131105: 0xFD43, - 166624 - 131105: 0x90C6, - 166625 - 131105: 0x90A4, - 166626 - 131105: 0x90A8, - 166627 - 131105: 0x94A9, - 166629 - 131105: 0x90A9, - 166634 - 131105: 0x8C65, - 166652 - 131105: 0x95E0, - 166668 - 131105: 0x907D, - 166675 - 131105: 0x9265, - 166689 - 131105: 0xFDBA, - 166690 - 131105: 0x93C4, - 166699 - 131105: 0xFEED, - 166700 - 131105: 0x9DAB, - 166701 - 131105: 0xA0E3, - 166703 - 131105: 0x9648, - 166726 - 131105: 0x9D53, - 166732 - 131105: 0x8AA9, - 166734 - 131105: 0x9BC5, - 166736 - 131105: 0x965D, - 166755 - 131105: 0x975F, - 166756 - 131105: 0x965F, - 166757 - 131105: 0x966E, - 166758 - 131105: 0xFB5D, - 166764 - 131105: 0x9DB1, - 166799 - 131105: 0xFEA3, - 166809 - 131105: 0x9DB2, - 166812 - 131105: 0x95AE, - 166813 - 131105: 0xFCA3, - 166841 - 131105: 0x8769, - 166850 - 131105: 0xA0A2, - 166853 - 131105: 0x9655, - 166868 - 131105: 0x9D54, - 166871 - 131105: 0x9341, - 166873 - 131105: 0x95AD, - 166874 - 131105: 0x91D5, - 166887 - 131105: 0x977A, - 166888 - 131105: 0xFDFC, - 166889 - 131105: 0x8E47, - 166890 - 131105: 0x93FD, - 166891 - 131105: 0x90A5, - 166892 - 131105: 0x90AC, - 166901 - 131105: 0x95AC, - 166911 - 131105: 0x90AE, - 166915 - 131105: 0xFEA5, - 166921 - 131105: 0x9D56, - 166940 - 131105: 0x97E3, - 166941 - 131105: 0x95E2, - 166947 - 131105: 0x9466, - 166950 - 131105: 0x9647, - 166955 - 131105: 0x91B8, - 166960 - 131105: 0x9CEC, - 166969 - 131105: 0x90AD, - 166971 - 131105: 0x95E3, - 167114 - 131105: 0x8B4F, - 167117 - 131105: 0x8AE3, - 167122 - 131105: 0x8B4D, - 167220 - 131105: 0x95EA, - 167321 - 131105: 0x8B4E, - 167353 - 131105: 0x8CC1, - 167439 - 131105: 0x8BED, - 167478 - 131105: 0x91D9, - 167481 - 131105: 0xA0A4, - 167525 - 131105: 0x95F5, - 167526 - 131105: 0x95F4, - 167575 - 131105: 0x9FB3, - 167596 - 131105: 0xFEAF, - 167602 - 131105: 0xFE72, - 167603 - 131105: 0x927A, - 167641 - 131105: 0xFEAC, - 167655 - 131105: 0x95F3, - 167877 - 131105: 0x9D58, - 168057 - 131105: 0x8D46, - 168072 - 131105: 0x9372, - 168075 - 131105: 0x91C5, - 168083 - 131105: 0x9642, - 168111 - 131105: 0x90CD, - 168112 - 131105: 0x95FE, - 168113 - 131105: 0x9159, - 168128 - 131105: 0x9C65, - 168164 - 131105: 0x97CC, - 168165 - 131105: 0x90CE, - 168172 - 131105: 0x9D59, - 168173 - 131105: 0xFCF5, - 168205 - 131105: 0xFEFD, - 168208 - 131105: 0x9D5B, - 168252 - 131105: 0x9D5C, - 168269 - 131105: 0x937E, - 168283 - 131105: 0x98AC, - 168286 - 131105: 0x9D5E, - 168304 - 131105: 0xFDD0, - 168348 - 131105: 0xFD60, - 168360 - 131105: 0x9CCF, - 168405 - 131105: 0x90DD, - 168427 - 131105: 0x90E0, - 168989 - 131105: 0x90F3, - 168992 - 131105: 0x98B1, - 169011 - 131105: 0x90F0, - 169023 - 131105: 0x93BD, - 169032 - 131105: 0x95B7, - 169168 - 131105: 0x9F46, - 169177 - 131105: 0x8E4B, - 169178 - 131105: 0x9658, - 169189 - 131105: 0x8A4C, - 169191 - 131105: 0x9D63, - 169374 - 131105: 0x9ECF, - 169392 - 131105: 0x9D65, - 169400 - 131105: 0x9D66, - 169431 - 131105: 0x965A, - 169449 - 131105: 0x9D64, - 169460 - 131105: 0x8A6C, - 169760 - 131105: 0x8AD9, - 169778 - 131105: 0x9D67, - 169940 - 131105: 0x8A70, - 170000 - 131105: 0x8BF3, - 170071 - 131105: 0x9150, - 170148 - 131105: 0x9CC1, - 170193 - 131105: 0x9D68, - 170218 - 131105: 0x93A7, - 170225 - 131105: 0x9674, - 170234 - 131105: 0x8CFD, - 170243 - 131105: 0xA0EF, - 170245 - 131105: 0x9151, - 170287 - 131105: 0x96C1, - 170309 - 131105: 0x8777, - 170311 - 131105: 0x8C64, - 170312 - 131105: 0x9676, - 170313 - 131105: 0x9D69, - 170333 - 131105: 0xFCA4, - 170346 - 131105: 0x9D6A, - 170397 - 131105: 0x924E, - 170435 - 131105: 0x9D6B, - 170441 - 131105: 0x9BC1, - 170536 - 131105: 0x9D6C, - 170573 - 131105: 0x8A65, - 170757 - 131105: 0x915D, - 170766 - 131105: 0x9D6D, - 170965 - 131105: 0x915A, - 171123 - 131105: 0x8C42, - 171181 - 131105: 0x9CC0, - 171326 - 131105: 0x916A, - 171354 - 131105: 0x9D6E, - 171388 - 131105: 0x9EA6, - 171416 - 131105: 0x9DCD, - 171419 - 131105: 0x9D6F, - 171510 - 131105: 0x89BB, - 171526 - 131105: 0x9EF9, - 171565 - 131105: 0x96B4, - 171624 - 131105: 0x9172, - 171692 - 131105: 0x9EC8, - 171696 - 131105: 0x8771, - 171715 - 131105: 0x8B55, - 171768 - 131105: 0x9D71, - 171811 - 131105: 0x9D72, - 171824 - 131105: 0x9ECC, - 171959 - 131105: 0x9174, - 171998 - 131105: 0x9ED0, - 172052 - 131105: 0x905C, - 172167 - 131105: 0x8ED2, - 172217 - 131105: 0x91A8, - 172257 - 131105: 0x9177, - 172269 - 131105: 0x96BF, - 172275 - 131105: 0x96C0, - 172280 - 131105: 0x8FB1, - 172286 - 131105: 0x96B7, - 172295 - 131105: 0x8C55, - 172323 - 131105: 0x9178, - 172339 - 131105: 0x89BE, - 172340 - 131105: 0x917C, - 172368 - 131105: 0xFB77, - 172434 - 131105: 0x9175, - 172435 - 131105: 0x91A3, - 172459 - 131105: 0x9176, - 172468 - 131105: 0x96BE, - 172469 - 131105: 0x8D49, - 172511 - 131105: 0x9179, - 172533 - 131105: 0x96B6, - 172576 - 131105: 0x91A4, - 172595 - 131105: 0x91A6, - 172691 - 131105: 0x9D75, - 172703 - 131105: 0x9052, - 172722 - 131105: 0xA045, - 172724 - 131105: 0x91A9, - 172726 - 131105: 0x98AA, - 172730 - 131105: 0x8C5F, - 172733 - 131105: 0x8BAA, - 172767 - 131105: 0x9CDD, - 172799 - 131105: 0x9D77, - 172881 - 131105: 0x8756, - 172969 - 131105: 0x8940, - 173108 - 131105: 0x9EEC, - 173147 - 131105: 0x93AA, - 173510 - 131105: 0x9478, - 173515 - 131105: 0x9D7A, - 173569 - 131105: 0x8AC9, - 173618 - 131105: 0x8B4B, - 173642 - 131105: 0x9FEC, - 173659 - 131105: 0x8AE2, - 173737 - 131105: 0x9E75, -} - -const encode1Low, encode1High = 11904, 40908 - -var encode1 = [...]uint16{ - 11904 - 11904: 0xC8D6, - 11908 - 11904: 0xC8D7, - 11910 - 11904: 0xC8D8, - 11911 - 11904: 0xC8D9, - 11912 - 11904: 0xC8DA, - 11914 - 11904: 0xC8DB, - 11916 - 11904: 0xC8DC, - 11917 - 11904: 0xC8DD, - 11925 - 11904: 0xC8DE, - 11932 - 11904: 0xC8DF, - 11933 - 11904: 0xC8E0, - 11941 - 11904: 0xC8E1, - 11943 - 11904: 0xC8E2, - 11946 - 11904: 0xC8E3, - 11948 - 11904: 0xC8E4, - 11950 - 11904: 0xC8E5, - 11958 - 11904: 0xC8E6, - 11964 - 11904: 0xC8E7, - 11966 - 11904: 0xC8E8, - 11974 - 11904: 0xC8E9, - 11978 - 11904: 0xC8EA, - 11980 - 11904: 0xC8EB, - 11981 - 11904: 0xC8EC, - 11983 - 11904: 0xC8ED, - 11990 - 11904: 0xC8EE, - 11991 - 11904: 0xC8EF, - 11998 - 11904: 0xC8F0, - 12003 - 11904: 0xC8F1, - 12083 - 11904: 0xC6CD, - 12288 - 11904: 0xA140, - 12289 - 11904: 0xA142, - 12290 - 11904: 0xA143, - 12291 - 11904: 0xC6DE, - 12293 - 11904: 0xC6E0, - 12294 - 11904: 0xC6E1, - 12295 - 11904: 0xC6E2, - 12296 - 11904: 0xA171, - 12297 - 11904: 0xA172, - 12298 - 11904: 0xA16D, - 12299 - 11904: 0xA16E, - 12300 - 11904: 0xA175, - 12301 - 11904: 0xA176, - 12302 - 11904: 0xA179, - 12303 - 11904: 0xA17A, - 12304 - 11904: 0xA169, - 12305 - 11904: 0xA16A, - 12306 - 11904: 0xA245, - 12308 - 11904: 0xA165, - 12309 - 11904: 0xA166, - 12317 - 11904: 0xA1A9, - 12318 - 11904: 0xA1AA, - 12321 - 11904: 0xA2C3, - 12322 - 11904: 0xA2C4, - 12323 - 11904: 0xA2C5, - 12324 - 11904: 0xA2C6, - 12325 - 11904: 0xA2C7, - 12326 - 11904: 0xA2C8, - 12327 - 11904: 0xA2C9, - 12328 - 11904: 0xA2CA, - 12329 - 11904: 0xA2CB, - 12353 - 11904: 0xC6E7, - 12354 - 11904: 0xC6E8, - 12355 - 11904: 0xC6E9, - 12356 - 11904: 0xC6EA, - 12357 - 11904: 0xC6EB, - 12358 - 11904: 0xC6EC, - 12359 - 11904: 0xC6ED, - 12360 - 11904: 0xC6EE, - 12361 - 11904: 0xC6EF, - 12362 - 11904: 0xC6F0, - 12363 - 11904: 0xC6F1, - 12364 - 11904: 0xC6F2, - 12365 - 11904: 0xC6F3, - 12366 - 11904: 0xC6F4, - 12367 - 11904: 0xC6F5, - 12368 - 11904: 0xC6F6, - 12369 - 11904: 0xC6F7, - 12370 - 11904: 0xC6F8, - 12371 - 11904: 0xC6F9, - 12372 - 11904: 0xC6FA, - 12373 - 11904: 0xC6FB, - 12374 - 11904: 0xC6FC, - 12375 - 11904: 0xC6FD, - 12376 - 11904: 0xC6FE, - 12377 - 11904: 0xC740, - 12378 - 11904: 0xC741, - 12379 - 11904: 0xC742, - 12380 - 11904: 0xC743, - 12381 - 11904: 0xC744, - 12382 - 11904: 0xC745, - 12383 - 11904: 0xC746, - 12384 - 11904: 0xC747, - 12385 - 11904: 0xC748, - 12386 - 11904: 0xC749, - 12387 - 11904: 0xC74A, - 12388 - 11904: 0xC74B, - 12389 - 11904: 0xC74C, - 12390 - 11904: 0xC74D, - 12391 - 11904: 0xC74E, - 12392 - 11904: 0xC74F, - 12393 - 11904: 0xC750, - 12394 - 11904: 0xC751, - 12395 - 11904: 0xC752, - 12396 - 11904: 0xC753, - 12397 - 11904: 0xC754, - 12398 - 11904: 0xC755, - 12399 - 11904: 0xC756, - 12400 - 11904: 0xC757, - 12401 - 11904: 0xC758, - 12402 - 11904: 0xC759, - 12403 - 11904: 0xC75A, - 12404 - 11904: 0xC75B, - 12405 - 11904: 0xC75C, - 12406 - 11904: 0xC75D, - 12407 - 11904: 0xC75E, - 12408 - 11904: 0xC75F, - 12409 - 11904: 0xC760, - 12410 - 11904: 0xC761, - 12411 - 11904: 0xC762, - 12412 - 11904: 0xC763, - 12413 - 11904: 0xC764, - 12414 - 11904: 0xC765, - 12415 - 11904: 0xC766, - 12416 - 11904: 0xC767, - 12417 - 11904: 0xC768, - 12418 - 11904: 0xC769, - 12419 - 11904: 0xC76A, - 12420 - 11904: 0xC76B, - 12421 - 11904: 0xC76C, - 12422 - 11904: 0xC76D, - 12423 - 11904: 0xC76E, - 12424 - 11904: 0xC76F, - 12425 - 11904: 0xC770, - 12426 - 11904: 0xC771, - 12427 - 11904: 0xC772, - 12428 - 11904: 0xC773, - 12429 - 11904: 0xC774, - 12430 - 11904: 0xC775, - 12431 - 11904: 0xC776, - 12432 - 11904: 0xC777, - 12433 - 11904: 0xC778, - 12434 - 11904: 0xC779, - 12435 - 11904: 0xC77A, - 12443 - 11904: 0xC8D4, - 12444 - 11904: 0xC8D5, - 12445 - 11904: 0xC6DC, - 12446 - 11904: 0xC6DD, - 12449 - 11904: 0xC77B, - 12450 - 11904: 0xC77C, - 12451 - 11904: 0xC77D, - 12452 - 11904: 0xC77E, - 12453 - 11904: 0xC7A1, - 12454 - 11904: 0xC7A2, - 12455 - 11904: 0xC7A3, - 12456 - 11904: 0xC7A4, - 12457 - 11904: 0xC7A5, - 12458 - 11904: 0xC7A6, - 12459 - 11904: 0xC7A7, - 12460 - 11904: 0xC7A8, - 12461 - 11904: 0xC7A9, - 12462 - 11904: 0xC7AA, - 12463 - 11904: 0xC7AB, - 12464 - 11904: 0xC7AC, - 12465 - 11904: 0xC7AD, - 12466 - 11904: 0xC7AE, - 12467 - 11904: 0xC7AF, - 12468 - 11904: 0xC7B0, - 12469 - 11904: 0xC7B1, - 12470 - 11904: 0xC7B2, - 12471 - 11904: 0xC7B3, - 12472 - 11904: 0xC7B4, - 12473 - 11904: 0xC7B5, - 12474 - 11904: 0xC7B6, - 12475 - 11904: 0xC7B7, - 12476 - 11904: 0xC7B8, - 12477 - 11904: 0xC7B9, - 12478 - 11904: 0xC7BA, - 12479 - 11904: 0xC7BB, - 12480 - 11904: 0xC7BC, - 12481 - 11904: 0xC7BD, - 12482 - 11904: 0xC7BE, - 12483 - 11904: 0xC7BF, - 12484 - 11904: 0xC7C0, - 12485 - 11904: 0xC7C1, - 12486 - 11904: 0xC7C2, - 12487 - 11904: 0xC7C3, - 12488 - 11904: 0xC7C4, - 12489 - 11904: 0xC7C5, - 12490 - 11904: 0xC7C6, - 12491 - 11904: 0xC7C7, - 12492 - 11904: 0xC7C8, - 12493 - 11904: 0xC7C9, - 12494 - 11904: 0xC7CA, - 12495 - 11904: 0xC7CB, - 12496 - 11904: 0xC7CC, - 12497 - 11904: 0xC7CD, - 12498 - 11904: 0xC7CE, - 12499 - 11904: 0xC7CF, - 12500 - 11904: 0xC7D0, - 12501 - 11904: 0xC7D1, - 12502 - 11904: 0xC7D2, - 12503 - 11904: 0xC7D3, - 12504 - 11904: 0xC7D4, - 12505 - 11904: 0xC7D5, - 12506 - 11904: 0xC7D6, - 12507 - 11904: 0xC7D7, - 12508 - 11904: 0xC7D8, - 12509 - 11904: 0xC7D9, - 12510 - 11904: 0xC7DA, - 12511 - 11904: 0xC7DB, - 12512 - 11904: 0xC7DC, - 12513 - 11904: 0xC7DD, - 12514 - 11904: 0xC7DE, - 12515 - 11904: 0xC7DF, - 12516 - 11904: 0xC7E0, - 12517 - 11904: 0xC7E1, - 12518 - 11904: 0xC7E2, - 12519 - 11904: 0xC7E3, - 12520 - 11904: 0xC7E4, - 12521 - 11904: 0xC7E5, - 12522 - 11904: 0xC7E6, - 12523 - 11904: 0xC7E7, - 12524 - 11904: 0xC7E8, - 12525 - 11904: 0xC7E9, - 12526 - 11904: 0xC7EA, - 12527 - 11904: 0xC7EB, - 12528 - 11904: 0xC7EC, - 12529 - 11904: 0xC7ED, - 12530 - 11904: 0xC7EE, - 12531 - 11904: 0xC7EF, - 12532 - 11904: 0xC7F0, - 12533 - 11904: 0xC7F1, - 12534 - 11904: 0xC7F2, - 12540 - 11904: 0xC6E3, - 12541 - 11904: 0xC6DA, - 12542 - 11904: 0xC6DB, - 12549 - 11904: 0xA374, - 12550 - 11904: 0xA375, - 12551 - 11904: 0xA376, - 12552 - 11904: 0xA377, - 12553 - 11904: 0xA378, - 12554 - 11904: 0xA379, - 12555 - 11904: 0xA37A, - 12556 - 11904: 0xA37B, - 12557 - 11904: 0xA37C, - 12558 - 11904: 0xA37D, - 12559 - 11904: 0xA37E, - 12560 - 11904: 0xA3A1, - 12561 - 11904: 0xA3A2, - 12562 - 11904: 0xA3A3, - 12563 - 11904: 0xA3A4, - 12564 - 11904: 0xA3A5, - 12565 - 11904: 0xA3A6, - 12566 - 11904: 0xA3A7, - 12567 - 11904: 0xA3A8, - 12568 - 11904: 0xA3A9, - 12569 - 11904: 0xA3AA, - 12570 - 11904: 0xA3AB, - 12571 - 11904: 0xA3AC, - 12572 - 11904: 0xA3AD, - 12573 - 11904: 0xA3AE, - 12574 - 11904: 0xA3AF, - 12575 - 11904: 0xA3B0, - 12576 - 11904: 0xA3B1, - 12577 - 11904: 0xA3B2, - 12578 - 11904: 0xA3B3, - 12579 - 11904: 0xA3B4, - 12580 - 11904: 0xA3B5, - 12581 - 11904: 0xA3B6, - 12582 - 11904: 0xA3B7, - 12583 - 11904: 0xA3B8, - 12584 - 11904: 0xA3B9, - 12585 - 11904: 0xA3BA, - 12736 - 11904: 0x8840, - 12737 - 11904: 0x8841, - 12738 - 11904: 0x8842, - 12739 - 11904: 0x8843, - 12740 - 11904: 0x8844, - 12741 - 11904: 0x8846, - 12742 - 11904: 0x8849, - 12743 - 11904: 0x884A, - 12744 - 11904: 0x884D, - 12745 - 11904: 0x884F, - 12746 - 11904: 0x8850, - 12747 - 11904: 0x8851, - 12748 - 11904: 0x8852, - 12749 - 11904: 0x8854, - 12750 - 11904: 0x8855, - 12751 - 11904: 0xC879, - 12849 - 11904: 0xC8D1, - 12963 - 11904: 0xA1C0, - 13198 - 11904: 0xA255, - 13199 - 11904: 0xA256, - 13212 - 11904: 0xA250, - 13213 - 11904: 0xA251, - 13214 - 11904: 0xA252, - 13217 - 11904: 0xA254, - 13252 - 11904: 0xA257, - 13262 - 11904: 0xA253, - 13265 - 11904: 0xA1EB, - 13266 - 11904: 0xA1EA, - 13269 - 11904: 0xA24F, - 13365 - 11904: 0x9277, - 13376 - 11904: 0x96DF, - 13386 - 11904: 0x8CF4, - 13388 - 11904: 0x89D5, - 13412 - 11904: 0x93CD, - 13427 - 11904: 0x9BDF, - 13434 - 11904: 0xFA68, - 13437 - 11904: 0x89DA, - 13438 - 11904: 0x8F59, - 13459 - 11904: 0x89DB, - 13462 - 11904: 0x8F5D, - 13477 - 11904: 0x89DC, - 13487 - 11904: 0x96F7, - 13500 - 11904: 0x8ADA, - 13505 - 11904: 0x8BDC, - 13512 - 11904: 0x97DB, - 13535 - 11904: 0x9E53, - 13540 - 11904: 0x9DAA, - 13542 - 11904: 0x87BE, - 13563 - 11904: 0x9BEA, - 13574 - 11904: 0x8A6E, - 13630 - 11904: 0x8BC8, - 13649 - 11904: 0x89E8, - 13651 - 11904: 0x89EA, - 13657 - 11904: 0x8C4B, - 13665 - 11904: 0xFB70, - 13677 - 11904: 0x89ED, - 13680 - 11904: 0x94DD, - 13682 - 11904: 0x89EE, - 13687 - 11904: 0x9EB4, - 13688 - 11904: 0x8AD3, - 13700 - 11904: 0x92DB, - 13719 - 11904: 0x94DB, - 13720 - 11904: 0x89F9, - 13729 - 11904: 0xFB7A, - 13733 - 11904: 0x89FB, - 13741 - 11904: 0x9EFC, - 13759 - 11904: 0x89FC, - 13761 - 11904: 0x89BF, - 13765 - 11904: 0x89FE, - 13767 - 11904: 0x89E6, - 13770 - 11904: 0x9D46, - 13774 - 11904: 0x9DEE, - 13778 - 11904: 0xA07E, - 13782 - 11904: 0xA068, - 13787 - 11904: 0x98E9, - 13789 - 11904: 0x8B68, - 13809 - 11904: 0x8DFD, - 13810 - 11904: 0x8BBE, - 13811 - 11904: 0x9FD9, - 13819 - 11904: 0x8AEB, - 13822 - 11904: 0x9FD7, - 13833 - 11904: 0x8B6A, - 13848 - 11904: 0x9C5C, - 13850 - 11904: 0x8BB1, - 13859 - 11904: 0xFB5E, - 13861 - 11904: 0x8770, - 13869 - 11904: 0x9DF3, - 13877 - 11904: 0xA0D0, - 13881 - 11904: 0xFC66, - 13886 - 11904: 0x92E9, - 13895 - 11904: 0x9AEC, - 13896 - 11904: 0x8FAB, - 13897 - 11904: 0xFA48, - 13902 - 11904: 0x8E45, - 13919 - 11904: 0x9C6F, - 13921 - 11904: 0x8D5C, - 13946 - 11904: 0x9EDE, - 13953 - 11904: 0x89EF, - 13978 - 11904: 0x96E9, - 13989 - 11904: 0x9EBB, - 13994 - 11904: 0x94DE, - 13996 - 11904: 0x9EB8, - 14000 - 11904: 0x97BA, - 14001 - 11904: 0xFB65, - 14005 - 11904: 0x95D6, - 14009 - 11904: 0x9CBB, - 14012 - 11904: 0x97DA, - 14017 - 11904: 0x8F45, - 14019 - 11904: 0xFB7D, - 14020 - 11904: 0x9158, - 14021 - 11904: 0xFE64, - 14023 - 11904: 0x9856, - 14024 - 11904: 0x9B4D, - 14035 - 11904: 0x935B, - 14036 - 11904: 0x95C7, - 14038 - 11904: 0x97E7, - 14045 - 11904: 0x9359, - 14049 - 11904: 0x91F5, - 14050 - 11904: 0x97B8, - 14053 - 11904: 0xFDA2, - 14054 - 11904: 0xFBB6, - 14069 - 11904: 0x92FA, - 14081 - 11904: 0x9357, - 14083 - 11904: 0x8BA6, - 14088 - 11904: 0xFBB9, - 14090 - 11904: 0x97B0, - 14093 - 11904: 0xFDC4, - 14108 - 11904: 0x9CA1, - 14114 - 11904: 0x91F2, - 14115 - 11904: 0x91F9, - 14117 - 11904: 0x8FF1, - 14124 - 11904: 0x9745, - 14125 - 11904: 0x9853, - 14128 - 11904: 0xFE78, - 14130 - 11904: 0xFBC1, - 14131 - 11904: 0x9251, - 14138 - 11904: 0x9DAD, - 14144 - 11904: 0xFD6C, - 14147 - 11904: 0xFA6B, - 14178 - 11904: 0x9BC2, - 14191 - 11904: 0x9A7B, - 14231 - 11904: 0x8B60, - 14240 - 11904: 0x934B, - 14265 - 11904: 0x9ABD, - 14270 - 11904: 0x91B7, - 14294 - 11904: 0x8D4B, - 14322 - 11904: 0x95B4, - 14328 - 11904: 0xFEC5, - 14331 - 11904: 0x9EF0, - 14351 - 11904: 0x8D64, - 14361 - 11904: 0x9269, - 14368 - 11904: 0x8D67, - 14381 - 11904: 0xFBEA, - 14390 - 11904: 0xFBEF, - 14392 - 11904: 0x8D68, - 14435 - 11904: 0x93EB, - 14453 - 11904: 0x877A, - 14496 - 11904: 0xFC42, - 14531 - 11904: 0x9166, - 14540 - 11904: 0xFACD, - 14545 - 11904: 0x93DD, - 14548 - 11904: 0x8D52, - 14586 - 11904: 0x8BCC, - 14600 - 11904: 0x8D6D, - 14612 - 11904: 0x8D6E, - 14631 - 11904: 0x96A8, - 14642 - 11904: 0xFCA6, - 14655 - 11904: 0x8D6F, - 14669 - 11904: 0x8D70, - 14691 - 11904: 0xFC64, - 14712 - 11904: 0x8CF3, - 14720 - 11904: 0x9060, - 14729 - 11904: 0x8D74, - 14730 - 11904: 0x97C3, - 14738 - 11904: 0x8AD0, - 14745 - 11904: 0x9274, - 14747 - 11904: 0x9BBE, - 14753 - 11904: 0x9CC8, - 14756 - 11904: 0x9CBA, - 14776 - 11904: 0x8D78, - 14812 - 11904: 0x9EB9, - 14818 - 11904: 0x955A, - 14821 - 11904: 0x91B4, - 14828 - 11904: 0x8A48, - 14840 - 11904: 0x8D7D, - 14843 - 11904: 0x8A7D, - 14846 - 11904: 0x8AC2, - 14849 - 11904: 0xFD4A, - 14851 - 11904: 0x8DA1, - 14854 - 11904: 0x8AD1, - 14871 - 11904: 0xFCB4, - 14872 - 11904: 0x8B47, - 14889 - 11904: 0x93A4, - 14890 - 11904: 0x9EDA, - 14900 - 11904: 0x8A51, - 14923 - 11904: 0x8DA6, - 14930 - 11904: 0x9EC5, - 14935 - 11904: 0xFCC4, - 14940 - 11904: 0xA078, - 14942 - 11904: 0x94B5, - 14950 - 11904: 0xFCC2, - 14951 - 11904: 0x8A6B, - 14999 - 11904: 0x8DAB, - 15019 - 11904: 0xFAE8, - 15037 - 11904: 0x8DAD, - 15070 - 11904: 0xFC49, - 15072 - 11904: 0x93C1, - 15088 - 11904: 0x906F, - 15090 - 11904: 0x8DB0, - 15093 - 11904: 0x87A2, - 15099 - 11904: 0x947E, - 15118 - 11904: 0x90FA, - 15129 - 11904: 0x9479, - 15138 - 11904: 0x8DB2, - 15147 - 11904: 0xFCEE, - 15161 - 11904: 0x997B, - 15170 - 11904: 0x8DB4, - 15192 - 11904: 0x8DB7, - 15200 - 11904: 0x91B3, - 15217 - 11904: 0x8DBB, - 15218 - 11904: 0x8DBA, - 15227 - 11904: 0x8DBC, - 15228 - 11904: 0x9044, - 15232 - 11904: 0xFD4C, - 15253 - 11904: 0x874B, - 15254 - 11904: 0x93E4, - 15257 - 11904: 0x93E0, - 15265 - 11904: 0xFD53, - 15292 - 11904: 0x8DC3, - 15294 - 11904: 0x9BB8, - 15298 - 11904: 0xFBF0, - 15300 - 11904: 0x93E9, - 15319 - 11904: 0x93F6, - 15325 - 11904: 0x8DC5, - 15340 - 11904: 0x8DCA, - 15346 - 11904: 0x8DCC, - 15347 - 11904: 0xFD5D, - 15348 - 11904: 0x93B5, - 15373 - 11904: 0xFD61, - 15377 - 11904: 0x9CF8, - 15381 - 11904: 0x9252, - 15384 - 11904: 0xA0E8, - 15444 - 11904: 0x9CA5, - 15499 - 11904: 0x8C56, - 15563 - 11904: 0x8DD6, - 15565 - 11904: 0x97C0, - 15569 - 11904: 0xA0DE, - 15574 - 11904: 0x97D2, - 15580 - 11904: 0xFAA5, - 15595 - 11904: 0xFDA3, - 15599 - 11904: 0x8DDB, - 15634 - 11904: 0x8CEA, - 15635 - 11904: 0x8EAF, - 15645 - 11904: 0x91B5, - 15666 - 11904: 0xFD49, - 15675 - 11904: 0xFDD1, - 15686 - 11904: 0x8DEB, - 15692 - 11904: 0x97C6, - 15694 - 11904: 0xFDCE, - 15697 - 11904: 0x90FC, - 15711 - 11904: 0xFC59, - 15714 - 11904: 0x96D6, - 15721 - 11904: 0x97C5, - 15722 - 11904: 0x8DEF, - 15727 - 11904: 0x97D7, - 15733 - 11904: 0x8DF0, - 15741 - 11904: 0x96A6, - 15749 - 11904: 0xFBBF, - 15752 - 11904: 0x8CDF, - 15754 - 11904: 0x8DF3, - 15759 - 11904: 0x9449, - 15761 - 11904: 0x8DF5, - 15781 - 11904: 0x9872, - 15789 - 11904: 0x8E6B, - 15796 - 11904: 0xFAFD, - 15807 - 11904: 0x8F50, - 15814 - 11904: 0x9DCC, - 15815 - 11904: 0xFC65, - 15817 - 11904: 0x8C44, - 15820 - 11904: 0x996E, - 15821 - 11904: 0x94A1, - 15827 - 11904: 0x8F63, - 15835 - 11904: 0xA0DA, - 15847 - 11904: 0x9253, - 15848 - 11904: 0xFDE9, - 15851 - 11904: 0x9DB5, - 15859 - 11904: 0x9879, - 15860 - 11904: 0x876A, - 15863 - 11904: 0x9D5D, - 15868 - 11904: 0x8D63, - 15869 - 11904: 0x9669, - 15878 - 11904: 0x9F70, - 15936 - 11904: 0xFC6A, - 15939 - 11904: 0x8AC7, - 15944 - 11904: 0x89D7, - 15957 - 11904: 0xFE4D, - 15988 - 11904: 0x9EDD, - 16040 - 11904: 0xFEFB, - 16041 - 11904: 0x98BC, - 16042 - 11904: 0xFACC, - 16045 - 11904: 0x95B0, - 16049 - 11904: 0x9464, - 16056 - 11904: 0x936F, - 16063 - 11904: 0x94B9, - 16066 - 11904: 0x95EC, - 16071 - 11904: 0x91EE, - 16074 - 11904: 0x98C3, - 16076 - 11904: 0x95F6, - 16080 - 11904: 0x8FFD, - 16081 - 11904: 0x98C5, - 16086 - 11904: 0x9766, - 16087 - 11904: 0xFE6E, - 16090 - 11904: 0x97DD, - 16091 - 11904: 0x8CAA, - 16094 - 11904: 0x92D2, - 16097 - 11904: 0x9761, - 16098 - 11904: 0x98CB, - 16103 - 11904: 0x95F0, - 16105 - 11904: 0x975D, - 16107 - 11904: 0x91E3, - 16108 - 11904: 0x877E, - 16112 - 11904: 0x98CC, - 16115 - 11904: 0x9469, - 16116 - 11904: 0x98CD, - 16122 - 11904: 0x98CE, - 16124 - 11904: 0x95FC, - 16127 - 11904: 0x94A3, - 16128 - 11904: 0x9662, - 16132 - 11904: 0xFEB6, - 16134 - 11904: 0x9463, - 16135 - 11904: 0x8D47, - 16142 - 11904: 0x98D0, - 16211 - 11904: 0x98D1, - 16216 - 11904: 0x9475, - 16217 - 11904: 0xFAE0, - 16227 - 11904: 0x9472, - 16252 - 11904: 0x98D6, - 16275 - 11904: 0x8AF0, - 16320 - 11904: 0x98D9, - 16328 - 11904: 0x8D5A, - 16343 - 11904: 0x98DB, - 16348 - 11904: 0x98DD, - 16357 - 11904: 0x98A8, - 16365 - 11904: 0x8A6D, - 16377 - 11904: 0x8AFB, - 16378 - 11904: 0x8AAE, - 16388 - 11904: 0xFBC9, - 16393 - 11904: 0x8C5D, - 16413 - 11904: 0x98E4, - 16441 - 11904: 0x98E6, - 16453 - 11904: 0x98E8, - 16467 - 11904: 0x8A4D, - 16471 - 11904: 0x9257, - 16482 - 11904: 0x95DF, - 16485 - 11904: 0xA0AC, - 16490 - 11904: 0x98EB, - 16495 - 11904: 0x98EC, - 16497 - 11904: 0x8CC3, - 16552 - 11904: 0x98F4, - 16564 - 11904: 0x87D9, - 16571 - 11904: 0x8AB8, - 16575 - 11904: 0x9EE7, - 16584 - 11904: 0x94BC, - 16600 - 11904: 0xFCD1, - 16607 - 11904: 0x9CC6, - 16632 - 11904: 0x8D4A, - 16634 - 11904: 0x9E7E, - 16642 - 11904: 0x8D44, - 16643 - 11904: 0x98FE, - 16644 - 11904: 0xFDE8, - 16649 - 11904: 0x9940, - 16654 - 11904: 0x94C9, - 16689 - 11904: 0x87C6, - 16690 - 11904: 0x94D3, - 16743 - 11904: 0x9946, - 16748 - 11904: 0x90C0, - 16750 - 11904: 0x94D1, - 16764 - 11904: 0x8D4E, - 16767 - 11904: 0x9573, - 16769 - 11904: 0x87CE, - 16784 - 11904: 0x93C2, - 16818 - 11904: 0x9948, - 16836 - 11904: 0x994B, - 16842 - 11904: 0x8E55, - 16847 - 11904: 0x994E, - 16859 - 11904: 0x8EFE, - 16877 - 11904: 0x8D5F, - 16879 - 11904: 0x8E59, - 16889 - 11904: 0x94EC, - 16913 - 11904: 0x94EF, - 16931 - 11904: 0x8C60, - 16960 - 11904: 0x8F74, - 16992 - 11904: 0x9955, - 17002 - 11904: 0x9544, - 17014 - 11904: 0x8CCB, - 17018 - 11904: 0x9956, - 17036 - 11904: 0x9959, - 17044 - 11904: 0x995B, - 17058 - 11904: 0x8CC4, - 17077 - 11904: 0xFA45, - 17081 - 11904: 0x90B7, - 17084 - 11904: 0x9743, - 17140 - 11904: 0x95CD, - 17147 - 11904: 0x97C9, - 17148 - 11904: 0xFD50, - 17162 - 11904: 0x87AA, - 17195 - 11904: 0x8EB9, - 17262 - 11904: 0x95C6, - 17303 - 11904: 0x9967, - 17306 - 11904: 0x8CE3, - 17338 - 11904: 0x8AB9, - 17345 - 11904: 0x8DFC, - 17369 - 11904: 0x8A76, - 17375 - 11904: 0x9D51, - 17389 - 11904: 0x9973, - 17392 - 11904: 0x8740, - 17394 - 11904: 0x9D4F, - 17409 - 11904: 0x997A, - 17410 - 11904: 0x9564, - 17427 - 11904: 0x99A1, - 17445 - 11904: 0x99A5, - 17453 - 11904: 0x99A7, - 17530 - 11904: 0x8EED, - 17551 - 11904: 0x99AD, - 17553 - 11904: 0xC87E, - 17567 - 11904: 0x946E, - 17568 - 11904: 0x8F70, - 17570 - 11904: 0xFAD0, - 17584 - 11904: 0x99B3, - 17591 - 11904: 0xA053, - 17597 - 11904: 0x8D5E, - 17600 - 11904: 0x965C, - 17603 - 11904: 0x8CE0, - 17605 - 11904: 0xFD7A, - 17614 - 11904: 0x97FE, - 17629 - 11904: 0x92BD, - 17630 - 11904: 0x8D5D, - 17631 - 11904: 0x97FD, - 17633 - 11904: 0x87DB, - 17636 - 11904: 0x8F64, - 17641 - 11904: 0xFCF7, - 17642 - 11904: 0x9562, - 17643 - 11904: 0x97CD, - 17644 - 11904: 0x9E64, - 17652 - 11904: 0x924C, - 17667 - 11904: 0x8EC9, - 17668 - 11904: 0x99BC, - 17673 - 11904: 0x9DA5, - 17675 - 11904: 0x8F54, - 17686 - 11904: 0x8F7C, - 17691 - 11904: 0x8D55, - 17693 - 11904: 0x8EA2, - 17703 - 11904: 0x8F7A, - 17710 - 11904: 0x97AE, - 17715 - 11904: 0x96C8, - 17718 - 11904: 0x8CE4, - 17723 - 11904: 0x99C3, - 17725 - 11904: 0x90D6, - 17727 - 11904: 0x9CBE, - 17731 - 11904: 0x8F76, - 17745 - 11904: 0x9470, - 17746 - 11904: 0xFB4B, - 17749 - 11904: 0xFDCA, - 17752 - 11904: 0x8CEF, - 17756 - 11904: 0x8EC7, - 17761 - 11904: 0x8D54, - 17762 - 11904: 0xA0F9, - 17770 - 11904: 0x8FA9, - 17773 - 11904: 0x8D51, - 17783 - 11904: 0x99C7, - 17784 - 11904: 0x8744, - 17797 - 11904: 0x90D7, - 17830 - 11904: 0x8743, - 17843 - 11904: 0x8747, - 17882 - 11904: 0x8758, - 17897 - 11904: 0x9EDF, - 17898 - 11904: 0x8D59, - 17923 - 11904: 0x8742, - 17926 - 11904: 0x99CE, - 17935 - 11904: 0x8FBA, - 17941 - 11904: 0x8FEB, - 17943 - 11904: 0x99CF, - 18011 - 11904: 0x8FC2, - 18042 - 11904: 0x92C9, - 18048 - 11904: 0x97DC, - 18081 - 11904: 0x875D, - 18094 - 11904: 0x87CC, - 18107 - 11904: 0x8D45, - 18127 - 11904: 0x95B3, - 18128 - 11904: 0x9C79, - 18165 - 11904: 0x95B2, - 18167 - 11904: 0x8D4C, - 18195 - 11904: 0x8FDB, - 18200 - 11904: 0x9BE3, - 18230 - 11904: 0x874C, - 18244 - 11904: 0x874D, - 18254 - 11904: 0x9E7A, - 18255 - 11904: 0x8757, - 18300 - 11904: 0x9BEE, - 18328 - 11904: 0x99DE, - 18342 - 11904: 0xFAFA, - 18389 - 11904: 0x8A52, - 18413 - 11904: 0x99E1, - 18420 - 11904: 0x8A67, - 18432 - 11904: 0x8BB5, - 18443 - 11904: 0x8AAC, - 18487 - 11904: 0x99E9, - 18525 - 11904: 0xFBCA, - 18545 - 11904: 0x97DE, - 18587 - 11904: 0x95D1, - 18605 - 11904: 0x99F5, - 18606 - 11904: 0xFC4A, - 18640 - 11904: 0x9BA9, - 18653 - 11904: 0xFBDC, - 18669 - 11904: 0xFE56, - 18675 - 11904: 0x9EA4, - 18682 - 11904: 0x9D49, - 18694 - 11904: 0x95DB, - 18705 - 11904: 0x89C5, - 18718 - 11904: 0x99F8, - 18725 - 11904: 0x9664, - 18730 - 11904: 0x9055, - 18733 - 11904: 0x96D4, - 18735 - 11904: 0x87C4, - 18736 - 11904: 0x87AE, - 18741 - 11904: 0x977C, - 18748 - 11904: 0x964D, - 18750 - 11904: 0x97E1, - 18757 - 11904: 0x9A48, - 18769 - 11904: 0x9A49, - 18771 - 11904: 0xFE7D, - 18789 - 11904: 0x90AA, - 18794 - 11904: 0x9A50, - 18802 - 11904: 0x9347, - 18825 - 11904: 0x8ED8, - 18849 - 11904: 0x90C9, - 18855 - 11904: 0x9A55, - 18911 - 11904: 0x90BC, - 18917 - 11904: 0x9A58, - 18919 - 11904: 0x8BB8, - 18959 - 11904: 0x90D5, - 18973 - 11904: 0x9641, - 18980 - 11904: 0x9A5A, - 18997 - 11904: 0x9A5C, - 19094 - 11904: 0x97C2, - 19108 - 11904: 0x875C, - 19124 - 11904: 0x8ABB, - 19128 - 11904: 0x9BAA, - 19153 - 11904: 0x90F5, - 19172 - 11904: 0x9A60, - 19199 - 11904: 0x9145, - 19216 - 11904: 0x8C58, - 19225 - 11904: 0x9A63, - 19232 - 11904: 0x8C49, - 19244 - 11904: 0x8BB6, - 19255 - 11904: 0xFCCF, - 19311 - 11904: 0x966B, - 19312 - 11904: 0x9A6E, - 19314 - 11904: 0x914F, - 19323 - 11904: 0x9746, - 19326 - 11904: 0xA0E6, - 19342 - 11904: 0x92D7, - 19344 - 11904: 0x9675, - 19347 - 11904: 0x93D4, - 19350 - 11904: 0x91BB, - 19351 - 11904: 0x9679, - 19357 - 11904: 0x9A70, - 19389 - 11904: 0x9678, - 19390 - 11904: 0x91CD, - 19392 - 11904: 0x9C4A, - 19460 - 11904: 0xA06F, - 19463 - 11904: 0xA06A, - 19470 - 11904: 0x915F, - 19506 - 11904: 0x8741, - 19515 - 11904: 0x9FA5, - 19518 - 11904: 0x89BA, - 19520 - 11904: 0x874F, - 19527 - 11904: 0x874E, - 19543 - 11904: 0x8755, - 19547 - 11904: 0x9ECD, - 19565 - 11904: 0x9A79, - 19575 - 11904: 0x8CF2, - 19579 - 11904: 0x8D57, - 19581 - 11904: 0x9DCE, - 19585 - 11904: 0x8CD2, - 19589 - 11904: 0x8759, - 19620 - 11904: 0x9D73, - 19630 - 11904: 0x96B9, - 19632 - 11904: 0x96BC, - 19639 - 11904: 0x9CD1, - 19661 - 11904: 0x89B7, - 19681 - 11904: 0x9EEE, - 19682 - 11904: 0x8749, - 19693 - 11904: 0xFB43, - 19719 - 11904: 0x875B, - 19721 - 11904: 0x9EC9, - 19728 - 11904: 0xFBD3, - 19764 - 11904: 0x91AE, - 19830 - 11904: 0x8D58, - 19831 - 11904: 0x8746, - 19849 - 11904: 0x8D56, - 19857 - 11904: 0x9D78, - 19868 - 11904: 0x9D7B, - 19968 - 11904: 0xA440, - 19969 - 11904: 0xA442, - 19971 - 11904: 0xA443, - 19972 - 11904: 0x9EB3, - 19975 - 11904: 0xC945, - 19976 - 11904: 0xA456, - 19977 - 11904: 0xA454, - 19978 - 11904: 0xA457, - 19979 - 11904: 0xA455, - 19980 - 11904: 0xC946, - 19981 - 11904: 0xA4A3, - 19982 - 11904: 0xC94F, - 19983 - 11904: 0xC94D, - 19984 - 11904: 0xA4A2, - 19985 - 11904: 0xA4A1, - 19988 - 11904: 0xA542, - 19989 - 11904: 0xA541, - 19990 - 11904: 0xA540, - 19992 - 11904: 0xA543, - 19993 - 11904: 0xA4FE, - 19994 - 11904: 0x9EB2, - 19996 - 11904: 0x9DD6, - 19998 - 11904: 0xA5E0, - 19999 - 11904: 0xA5E1, - 20001 - 11904: 0x994F, - 20004 - 11904: 0x89CE, - 20006 - 11904: 0xA8C3, - 20008 - 11904: 0x8BC0, - 20010 - 11904: 0x9FC4, - 20011 - 11904: 0xA458, - 20012 - 11904: 0x8BD4, - 20013 - 11904: 0xA4A4, - 20014 - 11904: 0xC950, - 20015 - 11904: 0x8C72, - 20016 - 11904: 0xA4A5, - 20017 - 11904: 0xC963, - 20018 - 11904: 0xA6EA, - 20019 - 11904: 0xCBB1, - 20022 - 11904: 0xC6BF, - 20023 - 11904: 0x8BF9, - 20024 - 11904: 0xA459, - 20025 - 11904: 0xA4A6, - 20027 - 11904: 0xA544, - 20028 - 11904: 0xC964, - 20029 - 11904: 0x8946, - 20031 - 11904: 0xC6C0, - 20034 - 11904: 0xC940, - 20035 - 11904: 0xA444, - 20037 - 11904: 0xA45B, - 20039 - 11904: 0xC947, - 20040 - 11904: 0xA45C, - 20041 - 11904: 0xFAE5, - 20043 - 11904: 0xA4A7, - 20045 - 11904: 0xA545, - 20046 - 11904: 0xA547, - 20047 - 11904: 0xA546, - 20050 - 11904: 0xA5E2, - 20051 - 11904: 0xA5E3, - 20054 - 11904: 0xA8C4, - 20056 - 11904: 0xADBC, - 20057 - 11904: 0xA441, - 20058 - 11904: 0xC87B, - 20059 - 11904: 0x8BC6, - 20060 - 11904: 0xC941, - 20061 - 11904: 0xA445, - 20062 - 11904: 0xA45E, - 20063 - 11904: 0xA45D, - 20073 - 11904: 0xA5E4, - 20074 - 11904: 0x9C57, - 20083 - 11904: 0xA8C5, - 20088 - 11904: 0x9AFB, - 20094 - 11904: 0xB0AE, - 20095 - 11904: 0xD44B, - 20096 - 11904: 0x89D0, - 20097 - 11904: 0x89CF, - 20098 - 11904: 0xB6C3, - 20099 - 11904: 0xDCB1, - 20100 - 11904: 0xDCB2, - 20101 - 11904: 0xC6C1, - 20102 - 11904: 0xA446, - 20103 - 11904: 0x89D1, - 20104 - 11904: 0xA4A9, - 20105 - 11904: 0x89E2, - 20107 - 11904: 0xA8C6, - 20108 - 11904: 0xA447, - 20109 - 11904: 0xC948, - 20110 - 11904: 0xA45F, - 20113 - 11904: 0xA4AA, - 20114 - 11904: 0xA4AC, - 20115 - 11904: 0xC951, - 20116 - 11904: 0xA4AD, - 20117 - 11904: 0xA4AB, - 20120 - 11904: 0x927E, - 20121 - 11904: 0xA5E5, - 20122 - 11904: 0x9DBA, - 20123 - 11904: 0xA8C7, - 20126 - 11904: 0xA8C8, - 20127 - 11904: 0xAB45, - 20128 - 11904: 0xC6C2, - 20129 - 11904: 0xA460, - 20130 - 11904: 0xA4AE, - 20131 - 11904: 0x8C6F, - 20132 - 11904: 0xA5E6, - 20133 - 11904: 0xA5E8, - 20134 - 11904: 0xA5E7, - 20136 - 11904: 0xA6EB, - 20139 - 11904: 0xA8C9, - 20140 - 11904: 0xA8CA, - 20141 - 11904: 0xAB46, - 20142 - 11904: 0xAB47, - 20147 - 11904: 0xADBD, - 20150 - 11904: 0xDCB3, - 20151 - 11904: 0xFBF8, - 20153 - 11904: 0xF6D6, - 20154 - 11904: 0xA448, - 20155 - 11904: 0x8BC7, - 20156 - 11904: 0x926B, - 20159 - 11904: 0x89D2, - 20160 - 11904: 0xA4B0, - 20161 - 11904: 0xA4AF, - 20162 - 11904: 0xC952, - 20163 - 11904: 0xA4B1, - 20164 - 11904: 0xA4B7, - 20166 - 11904: 0xA4B2, - 20167 - 11904: 0xA4B3, - 20168 - 11904: 0xC954, - 20169 - 11904: 0xC953, - 20170 - 11904: 0xA4B5, - 20171 - 11904: 0xA4B6, - 20173 - 11904: 0xA4B4, - 20174 - 11904: 0x9FCF, - 20180 - 11904: 0xA54A, - 20181 - 11904: 0xA54B, - 20182 - 11904: 0xA54C, - 20183 - 11904: 0xA54D, - 20184 - 11904: 0xA549, - 20185 - 11904: 0xA550, - 20186 - 11904: 0xC96A, - 20188 - 11904: 0xC966, - 20189 - 11904: 0xC969, - 20190 - 11904: 0xA551, - 20191 - 11904: 0xA561, - 20193 - 11904: 0xC968, - 20195 - 11904: 0xA54E, - 20196 - 11904: 0xA54F, - 20197 - 11904: 0xA548, - 20200 - 11904: 0xC965, - 20201 - 11904: 0xC967, - 20202 - 11904: 0x9DA9, - 20203 - 11904: 0x89D3, - 20206 - 11904: 0x99E2, - 20208 - 11904: 0xA5F5, - 20209 - 11904: 0xC9B0, - 20210 - 11904: 0xA5F2, - 20211 - 11904: 0xA5F6, - 20212 - 11904: 0xC9BA, - 20213 - 11904: 0xC9AE, - 20214 - 11904: 0xA5F3, - 20215 - 11904: 0xC9B2, - 20216 - 11904: 0x9267, - 20219 - 11904: 0xA5F4, - 20221 - 11904: 0xA5F7, - 20223 - 11904: 0xA5E9, - 20224 - 11904: 0xC9B1, - 20225 - 11904: 0xA5F8, - 20226 - 11904: 0xC9B5, - 20227 - 11904: 0x92A4, - 20228 - 11904: 0xC9B9, - 20229 - 11904: 0xC9B6, - 20232 - 11904: 0xC9B3, - 20233 - 11904: 0xA5EA, - 20234 - 11904: 0xA5EC, - 20235 - 11904: 0xA5F9, - 20237 - 11904: 0xA5EE, - 20238 - 11904: 0xC9AB, - 20239 - 11904: 0xA5F1, - 20240 - 11904: 0xA5EF, - 20241 - 11904: 0xA5F0, - 20242 - 11904: 0xC9BB, - 20243 - 11904: 0xC9B8, - 20244 - 11904: 0xC9AF, - 20245 - 11904: 0xA5ED, - 20247 - 11904: 0x8C73, - 20248 - 11904: 0xC9AC, - 20249 - 11904: 0xA5EB, - 20250 - 11904: 0x894E, - 20253 - 11904: 0xC9B4, - 20258 - 11904: 0xC9B7, - 20264 - 11904: 0x894F, - 20265 - 11904: 0x9278, - 20268 - 11904: 0xC9AD, - 20269 - 11904: 0xCA66, - 20271 - 11904: 0xA742, - 20272 - 11904: 0xA6F4, - 20274 - 11904: 0x91B6, - 20275 - 11904: 0xCA67, - 20276 - 11904: 0xA6F1, - 20278 - 11904: 0xA744, - 20279 - 11904: 0x89D4, - 20280 - 11904: 0xA6F9, - 20281 - 11904: 0x9FD2, - 20282 - 11904: 0xA6F8, - 20283 - 11904: 0xCA5B, - 20284 - 11904: 0xA6FC, - 20285 - 11904: 0xA6F7, - 20286 - 11904: 0xCA60, - 20287 - 11904: 0xCA68, - 20289 - 11904: 0xCA64, - 20290 - 11904: 0x92A7, - 20291 - 11904: 0xA6FA, - 20293 - 11904: 0x95A2, - 20294 - 11904: 0xA6FD, - 20295 - 11904: 0xA6EE, - 20296 - 11904: 0xA747, - 20297 - 11904: 0xCA5D, - 20299 - 11904: 0x926E, - 20300 - 11904: 0xCBBD, - 20301 - 11904: 0xA6EC, - 20302 - 11904: 0xA743, - 20303 - 11904: 0xA6ED, - 20304 - 11904: 0xA6F5, - 20305 - 11904: 0xA6F6, - 20306 - 11904: 0xCA62, - 20307 - 11904: 0xCA5E, - 20308 - 11904: 0xA6FB, - 20309 - 11904: 0xA6F3, - 20310 - 11904: 0xCA5A, - 20311 - 11904: 0xA6EF, - 20312 - 11904: 0xCA65, - 20313 - 11904: 0xA745, - 20314 - 11904: 0xA748, - 20315 - 11904: 0xA6F2, - 20316 - 11904: 0xA740, - 20317 - 11904: 0xA746, - 20318 - 11904: 0xA6F0, - 20319 - 11904: 0xCA63, - 20320 - 11904: 0xA741, - 20321 - 11904: 0xCA69, - 20322 - 11904: 0xCA5C, - 20323 - 11904: 0xA6FE, - 20324 - 11904: 0xCA5F, - 20327 - 11904: 0xCA61, - 20329 - 11904: 0xA8D8, - 20330 - 11904: 0xCBBF, - 20331 - 11904: 0xCBCB, - 20332 - 11904: 0xA8D0, - 20334 - 11904: 0xCBCC, - 20335 - 11904: 0xA8CB, - 20336 - 11904: 0xA8D5, - 20338 - 11904: 0x96EA, - 20339 - 11904: 0xA8CE, - 20340 - 11904: 0xCBB9, - 20341 - 11904: 0xA8D6, - 20342 - 11904: 0xCBB8, - 20343 - 11904: 0xCBBC, - 20344 - 11904: 0xCBC3, - 20345 - 11904: 0xCBC1, - 20346 - 11904: 0xA8DE, - 20347 - 11904: 0xA8D9, - 20348 - 11904: 0xCBB3, - 20349 - 11904: 0xCBB5, - 20350 - 11904: 0xA8DB, - 20351 - 11904: 0xA8CF, - 20352 - 11904: 0xCBB6, - 20353 - 11904: 0xCBC2, - 20354 - 11904: 0xCBC9, - 20355 - 11904: 0xA8D4, - 20356 - 11904: 0xCBBB, - 20357 - 11904: 0xCBB4, - 20358 - 11904: 0xA8D3, - 20359 - 11904: 0xCBB7, - 20360 - 11904: 0xA8D7, - 20361 - 11904: 0xCBBA, - 20362 - 11904: 0x926F, - 20363 - 11904: 0xA8D2, - 20365 - 11904: 0xA8CD, - 20367 - 11904: 0xA8DC, - 20368 - 11904: 0xCBC4, - 20369 - 11904: 0xA8DD, - 20370 - 11904: 0xCBC8, - 20372 - 11904: 0xCBC6, - 20373 - 11904: 0xCBCA, - 20374 - 11904: 0xA8DA, - 20375 - 11904: 0xCBBE, - 20376 - 11904: 0xCBB2, - 20378 - 11904: 0xCBC0, - 20379 - 11904: 0xA8D1, - 20380 - 11904: 0xCBC5, - 20381 - 11904: 0xA8CC, - 20382 - 11904: 0xCBC7, - 20386 - 11904: 0x92A3, - 20392 - 11904: 0x8950, - 20395 - 11904: 0xFA57, - 20398 - 11904: 0xAB56, - 20399 - 11904: 0xAB4A, - 20400 - 11904: 0x9866, - 20402 - 11904: 0xCDE0, - 20403 - 11904: 0xCDE8, - 20404 - 11904: 0x8CF8, - 20405 - 11904: 0xAB49, - 20406 - 11904: 0xAB51, - 20407 - 11904: 0xAB5D, - 20409 - 11904: 0xCDEE, - 20410 - 11904: 0xCDEC, - 20411 - 11904: 0xCDE7, - 20413 - 11904: 0x89D6, - 20415 - 11904: 0xAB4B, - 20416 - 11904: 0xCDED, - 20417 - 11904: 0xCDE3, - 20418 - 11904: 0xAB59, - 20419 - 11904: 0xAB50, - 20420 - 11904: 0xAB58, - 20421 - 11904: 0xCDDE, - 20423 - 11904: 0xCDEA, - 20424 - 11904: 0x98B2, - 20425 - 11904: 0xCDE1, - 20426 - 11904: 0xAB54, - 20427 - 11904: 0xCDE2, - 20428 - 11904: 0x92AB, - 20429 - 11904: 0xCDDD, - 20430 - 11904: 0xAB5B, - 20431 - 11904: 0xAB4E, - 20432 - 11904: 0xAB57, - 20433 - 11904: 0xAB4D, - 20435 - 11904: 0xCDDF, - 20436 - 11904: 0xCDE4, - 20438 - 11904: 0xCDEB, - 20439 - 11904: 0xAB55, - 20440 - 11904: 0xAB52, - 20441 - 11904: 0xCDE6, - 20442 - 11904: 0xAB5A, - 20443 - 11904: 0xCDE9, - 20444 - 11904: 0xCDE5, - 20445 - 11904: 0xAB4F, - 20446 - 11904: 0xAB5C, - 20447 - 11904: 0xAB53, - 20448 - 11904: 0xAB4C, - 20449 - 11904: 0xAB48, - 20452 - 11904: 0x96DE, - 20453 - 11904: 0x92AC, - 20460 - 11904: 0xCDEF, - 20462 - 11904: 0xADD7, - 20463 - 11904: 0xADC1, - 20464 - 11904: 0x8C70, - 20465 - 11904: 0xADD1, - 20466 - 11904: 0x9F6E, - 20467 - 11904: 0xADD6, - 20468 - 11904: 0xD0D0, - 20469 - 11904: 0xD0CF, - 20470 - 11904: 0xD0D4, - 20471 - 11904: 0xD0D5, - 20472 - 11904: 0xADC4, - 20473 - 11904: 0x8EF2, - 20474 - 11904: 0xADCD, - 20477 - 11904: 0x9F6C, - 20478 - 11904: 0xADDA, - 20480 - 11904: 0xADCE, - 20483 - 11904: 0x89D8, - 20485 - 11904: 0xD0C9, - 20486 - 11904: 0xADC7, - 20487 - 11904: 0xD0CA, - 20488 - 11904: 0xFA59, - 20489 - 11904: 0xADDC, - 20491 - 11904: 0xADD3, - 20492 - 11904: 0xADBE, - 20493 - 11904: 0xADBF, - 20494 - 11904: 0xD0DD, - 20495 - 11904: 0xB0BF, - 20497 - 11904: 0xADCC, - 20498 - 11904: 0xADCB, - 20499 - 11904: 0xD0CB, - 20500 - 11904: 0xADCF, - 20501 - 11904: 0xD45B, - 20502 - 11904: 0xADC6, - 20503 - 11904: 0xD0D6, - 20504 - 11904: 0xADD5, - 20505 - 11904: 0xADD4, - 20506 - 11904: 0xADCA, - 20507 - 11904: 0xD0CE, - 20508 - 11904: 0xD0D7, - 20510 - 11904: 0xD0C8, - 20511 - 11904: 0xADC9, - 20512 - 11904: 0xD0D8, - 20513 - 11904: 0xADD2, - 20514 - 11904: 0xD0CC, - 20515 - 11904: 0xADC0, - 20517 - 11904: 0xADC3, - 20518 - 11904: 0xADC2, - 20519 - 11904: 0xD0D9, - 20520 - 11904: 0xADD0, - 20521 - 11904: 0xFA5F, - 20522 - 11904: 0xADD9, - 20523 - 11904: 0xADDB, - 20524 - 11904: 0xD0D3, - 20525 - 11904: 0xADD8, - 20526 - 11904: 0x92A8, - 20527 - 11904: 0xD0DB, - 20528 - 11904: 0xD0CD, - 20529 - 11904: 0xD0DC, - 20531 - 11904: 0xD0D1, - 20532 - 11904: 0x9163, - 20533 - 11904: 0xD0DA, - 20535 - 11904: 0xD0D2, - 20539 - 11904: 0x8C40, - 20540 - 11904: 0xADC8, - 20544 - 11904: 0xD463, - 20545 - 11904: 0xD457, - 20547 - 11904: 0xB0B3, - 20549 - 11904: 0xD45C, - 20550 - 11904: 0xD462, - 20551 - 11904: 0xB0B2, - 20552 - 11904: 0xD455, - 20553 - 11904: 0xB0B6, - 20554 - 11904: 0xD459, - 20555 - 11904: 0xD452, - 20556 - 11904: 0xB0B4, - 20557 - 11904: 0xD456, - 20558 - 11904: 0xB0B9, - 20559 - 11904: 0xB0BE, - 20561 - 11904: 0xD467, - 20563 - 11904: 0xD451, - 20565 - 11904: 0xB0BA, - 20566 - 11904: 0x9F73, - 20567 - 11904: 0xD466, - 20568 - 11904: 0x92AD, - 20570 - 11904: 0xB0B5, - 20571 - 11904: 0xD458, - 20572 - 11904: 0xB0B1, - 20573 - 11904: 0xD453, - 20574 - 11904: 0xD44F, - 20575 - 11904: 0xD45D, - 20576 - 11904: 0xD450, - 20577 - 11904: 0xD44E, - 20578 - 11904: 0xD45A, - 20579 - 11904: 0xD460, - 20580 - 11904: 0xD461, - 20581 - 11904: 0xB0B7, - 20582 - 11904: 0x9BE9, - 20584 - 11904: 0xD85B, - 20585 - 11904: 0xD45E, - 20586 - 11904: 0xD44D, - 20587 - 11904: 0xD45F, - 20588 - 11904: 0x92A9, - 20589 - 11904: 0xB0C1, - 20590 - 11904: 0xD464, - 20591 - 11904: 0xB0C0, - 20592 - 11904: 0xD44C, - 20594 - 11904: 0xD454, - 20595 - 11904: 0xD465, - 20596 - 11904: 0xB0BC, - 20597 - 11904: 0xB0BB, - 20598 - 11904: 0xB0B8, - 20599 - 11904: 0xB0BD, - 20602 - 11904: 0xB0AF, - 20605 - 11904: 0xFA66, - 20608 - 11904: 0xB3C8, - 20609 - 11904: 0x92AA, - 20610 - 11904: 0xD85E, - 20611 - 11904: 0xD857, - 20613 - 11904: 0xB3C5, - 20615 - 11904: 0xD85F, - 20616 - 11904: 0x89D9, - 20619 - 11904: 0xD855, - 20620 - 11904: 0xD858, - 20621 - 11904: 0xB3C4, - 20622 - 11904: 0xD859, - 20624 - 11904: 0xFD56, - 20625 - 11904: 0xB3C7, - 20626 - 11904: 0xD85D, - 20628 - 11904: 0xD853, - 20629 - 11904: 0xD852, - 20630 - 11904: 0xB3C9, - 20632 - 11904: 0xB3CA, - 20633 - 11904: 0xB3C6, - 20634 - 11904: 0xB3CB, - 20635 - 11904: 0xD851, - 20636 - 11904: 0xD85C, - 20637 - 11904: 0xD85A, - 20638 - 11904: 0xD854, - 20642 - 11904: 0xB3C3, - 20643 - 11904: 0xD856, - 20646 - 11904: 0x9FA8, - 20652 - 11904: 0xB6CA, - 20653 - 11904: 0xB6C4, - 20654 - 11904: 0xDCB7, - 20655 - 11904: 0xB6CD, - 20656 - 11904: 0xDCBD, - 20657 - 11904: 0xDCC0, - 20658 - 11904: 0xB6C6, - 20659 - 11904: 0xB6C7, - 20660 - 11904: 0xDCBA, - 20661 - 11904: 0xB6C5, - 20662 - 11904: 0xDCC3, - 20663 - 11904: 0xB6CB, - 20664 - 11904: 0xDCC4, - 20666 - 11904: 0xDCBF, - 20667 - 11904: 0xB6CC, - 20668 - 11904: 0x8C71, - 20669 - 11904: 0xDCB4, - 20670 - 11904: 0xB6C9, - 20671 - 11904: 0xDCB5, - 20673 - 11904: 0xDCBE, - 20674 - 11904: 0xDCBC, - 20676 - 11904: 0xDCB8, - 20677 - 11904: 0xB6C8, - 20678 - 11904: 0xDCB6, - 20679 - 11904: 0xB6CE, - 20680 - 11904: 0xDCBB, - 20681 - 11904: 0xDCC2, - 20682 - 11904: 0xDCB9, - 20683 - 11904: 0xDCC1, - 20685 - 11904: 0x92A1, - 20686 - 11904: 0xB9B6, - 20687 - 11904: 0xB9B3, - 20688 - 11904: 0x90E3, - 20689 - 11904: 0xB9B4, - 20691 - 11904: 0xE0F9, - 20692 - 11904: 0xE0F1, - 20693 - 11904: 0xB9B2, - 20694 - 11904: 0xB9AF, - 20695 - 11904: 0xE0F2, - 20697 - 11904: 0xA0A6, - 20698 - 11904: 0xB9B1, - 20699 - 11904: 0xE0F5, - 20701 - 11904: 0xE0F7, - 20703 - 11904: 0x94AB, - 20704 - 11904: 0xE0FE, - 20705 - 11904: 0xFC72, - 20707 - 11904: 0xE0FD, - 20708 - 11904: 0xE0F8, - 20709 - 11904: 0xB9AE, - 20710 - 11904: 0xE0F0, - 20711 - 11904: 0xB9AC, - 20712 - 11904: 0xE0F3, - 20713 - 11904: 0xB9B7, - 20714 - 11904: 0xE0F6, - 20716 - 11904: 0xE0FA, - 20717 - 11904: 0xB9B0, - 20718 - 11904: 0xB9AD, - 20719 - 11904: 0xE0FC, - 20720 - 11904: 0xE0FB, - 20721 - 11904: 0xB9B5, - 20723 - 11904: 0xE0F4, - 20724 - 11904: 0x97C4, - 20725 - 11904: 0xBBF8, - 20726 - 11904: 0xE4EC, - 20728 - 11904: 0xE4E9, - 20729 - 11904: 0xBBF9, - 20731 - 11904: 0xBBF7, - 20732 - 11904: 0x92AE, - 20733 - 11904: 0xE4F0, - 20734 - 11904: 0xE4ED, - 20735 - 11904: 0xE4E6, - 20736 - 11904: 0xBBF6, - 20737 - 11904: 0xFA67, - 20738 - 11904: 0xBBFA, - 20739 - 11904: 0xE4E7, - 20740 - 11904: 0xBBF5, - 20741 - 11904: 0xBBFD, - 20742 - 11904: 0xE4EA, - 20743 - 11904: 0xE4EB, - 20744 - 11904: 0xBBFB, - 20745 - 11904: 0xBBFC, - 20746 - 11904: 0xE4F1, - 20747 - 11904: 0xE4EE, - 20748 - 11904: 0xE4EF, - 20749 - 11904: 0x92A2, - 20750 - 11904: 0xFA69, - 20752 - 11904: 0xBEAA, - 20753 - 11904: 0xE8F8, - 20754 - 11904: 0xBEA7, - 20755 - 11904: 0xE8F5, - 20756 - 11904: 0xBEA9, - 20757 - 11904: 0xBEAB, - 20759 - 11904: 0xE8F6, - 20760 - 11904: 0xBEA8, - 20762 - 11904: 0xE8F7, - 20764 - 11904: 0xE8F4, - 20767 - 11904: 0xC076, - 20768 - 11904: 0xECBD, - 20769 - 11904: 0xC077, - 20770 - 11904: 0xECBB, - 20772 - 11904: 0xECBC, - 20773 - 11904: 0xECBA, - 20774 - 11904: 0xECB9, - 20777 - 11904: 0xECBE, - 20778 - 11904: 0xC075, - 20779 - 11904: 0x9268, - 20781 - 11904: 0xEFB8, - 20782 - 11904: 0xEFB9, - 20784 - 11904: 0xE4E8, - 20785 - 11904: 0xEFB7, - 20786 - 11904: 0xC078, - 20787 - 11904: 0xC35F, - 20788 - 11904: 0xF1EB, - 20789 - 11904: 0xF1EC, - 20791 - 11904: 0xC4D7, - 20792 - 11904: 0xC4D8, - 20793 - 11904: 0xF5C1, - 20794 - 11904: 0xF5C0, - 20795 - 11904: 0xC56C, - 20796 - 11904: 0xC56B, - 20797 - 11904: 0xF7D0, - 20799 - 11904: 0xA449, - 20800 - 11904: 0xA461, - 20801 - 11904: 0xA4B9, - 20803 - 11904: 0xA4B8, - 20804 - 11904: 0xA553, - 20805 - 11904: 0xA552, - 20806 - 11904: 0xA5FC, - 20807 - 11904: 0xA5FB, - 20808 - 11904: 0xA5FD, - 20809 - 11904: 0xA5FA, - 20811 - 11904: 0xA74A, - 20812 - 11904: 0xA749, - 20813 - 11904: 0xA74B, - 20818 - 11904: 0xA8E0, - 20820 - 11904: 0xA8DF, - 20821 - 11904: 0xA8E1, - 20822 - 11904: 0x8951, - 20823 - 11904: 0xAB5E, - 20825 - 11904: 0xA259, - 20826 - 11904: 0xD0DE, - 20827 - 11904: 0xA25A, - 20828 - 11904: 0xB0C2, - 20829 - 11904: 0xA25C, - 20830 - 11904: 0xA25B, - 20831 - 11904: 0xD860, - 20832 - 11904: 0xFA6F, - 20833 - 11904: 0xA25D, - 20834 - 11904: 0xB9B8, - 20835 - 11904: 0xA25E, - 20837 - 11904: 0xA44A, - 20839 - 11904: 0xA4BA, - 20840 - 11904: 0xA5FE, - 20841 - 11904: 0xA8E2, - 20842 - 11904: 0xFA71, - 20843 - 11904: 0xA44B, - 20844 - 11904: 0xA4BD, - 20845 - 11904: 0xA4BB, - 20846 - 11904: 0xA4BC, - 20849 - 11904: 0xA640, - 20852 - 11904: 0x8952, - 20853 - 11904: 0xA74C, - 20854 - 11904: 0xA8E4, - 20855 - 11904: 0xA8E3, - 20856 - 11904: 0xA8E5, - 20857 - 11904: 0x945A, - 20860 - 11904: 0xADDD, - 20864 - 11904: 0xBEAC, - 20866 - 11904: 0xC6C3, - 20870 - 11904: 0x89DD, - 20871 - 11904: 0xC94E, - 20872 - 11904: 0xC8A2, - 20873 - 11904: 0xA554, - 20874 - 11904: 0xA555, - 20877 - 11904: 0xA641, - 20879 - 11904: 0xCA6A, - 20881 - 11904: 0xAB60, - 20882 - 11904: 0xAB5F, - 20883 - 11904: 0xD0E0, - 20884 - 11904: 0xD0DF, - 20885 - 11904: 0xB0C3, - 20886 - 11904: 0xC6C4, - 20887 - 11904: 0xA4BE, - 20888 - 11904: 0xC955, - 20890 - 11904: 0x9E52, - 20892 - 11904: 0x8953, - 20894 - 11904: 0xCBCD, - 20896 - 11904: 0xAB61, - 20898 - 11904: 0xADE0, - 20900 - 11904: 0xADDE, - 20901 - 11904: 0xADDF, - 20903 - 11904: 0x9E55, - 20904 - 11904: 0x92BA, - 20906 - 11904: 0xBEAD, - 20907 - 11904: 0xC6C5, - 20908 - 11904: 0xA556, - 20910 - 11904: 0x8C5B, - 20912 - 11904: 0xA642, - 20913 - 11904: 0xC9BC, - 20914 - 11904: 0xFA7D, - 20915 - 11904: 0xFAA8, - 20916 - 11904: 0x9A68, - 20917 - 11904: 0xFA47, - 20918 - 11904: 0xA74D, - 20919 - 11904: 0xA74E, - 20920 - 11904: 0xFA7E, - 20921 - 11904: 0xCA6B, - 20924 - 11904: 0xCBCE, - 20925 - 11904: 0xA8E6, - 20926 - 11904: 0xCBCF, - 20931 - 11904: 0x92BB, - 20932 - 11904: 0xD0E2, - 20933 - 11904: 0xD0E3, - 20934 - 11904: 0xADE3, - 20935 - 11904: 0xFDB6, - 20936 - 11904: 0xD0E4, - 20937 - 11904: 0xFAA2, - 20938 - 11904: 0xD0E1, - 20939 - 11904: 0xADE4, - 20940 - 11904: 0xADE2, - 20941 - 11904: 0xADE1, - 20942 - 11904: 0xD0E5, - 20943 - 11904: 0xFAA3, - 20944 - 11904: 0xD468, - 20945 - 11904: 0xFAA4, - 20946 - 11904: 0x9BB4, - 20947 - 11904: 0xFAA6, - 20948 - 11904: 0xD861, - 20951 - 11904: 0xDCC5, - 20952 - 11904: 0xE140, - 20955 - 11904: 0x89DF, - 20956 - 11904: 0xBBFE, - 20957 - 11904: 0xBEAE, - 20958 - 11904: 0xE8F9, - 20959 - 11904: 0xFDDB, - 20960 - 11904: 0xA44C, - 20961 - 11904: 0xA45A, - 20962 - 11904: 0xFAA9, - 20964 - 11904: 0x8954, - 20973 - 11904: 0xFAAB, - 20976 - 11904: 0xB0C4, - 20977 - 11904: 0xB3CD, - 20979 - 11904: 0xB9B9, - 20980 - 11904: 0xFC7A, - 20981 - 11904: 0xC942, - 20982 - 11904: 0xA4BF, - 20984 - 11904: 0xA559, - 20985 - 11904: 0xA557, - 20986 - 11904: 0xA558, - 20988 - 11904: 0x89E0, - 20989 - 11904: 0xA8E7, - 20990 - 11904: 0x9F4F, - 20992 - 11904: 0xA44D, - 20993 - 11904: 0xA44E, - 20994 - 11904: 0xC87D, - 20995 - 11904: 0xA462, - 20997 - 11904: 0x89E1, - 20998 - 11904: 0xA4C0, - 20999 - 11904: 0xA4C1, - 21000 - 11904: 0xA4C2, - 21001 - 11904: 0xC9BE, - 21002 - 11904: 0xA55A, - 21003 - 11904: 0xFAB0, - 21004 - 11904: 0xC96B, - 21006 - 11904: 0xA646, - 21008 - 11904: 0xC9BF, - 21009 - 11904: 0xA644, - 21010 - 11904: 0xA645, - 21011 - 11904: 0xC9BD, - 21014 - 11904: 0xA647, - 21015 - 11904: 0xA643, - 21020 - 11904: 0xCA6C, - 21021 - 11904: 0xAAEC, - 21022 - 11904: 0xCA6D, - 21023 - 11904: 0x9FCD, - 21024 - 11904: 0xA0E7, - 21025 - 11904: 0xCA6E, - 21028 - 11904: 0xA750, - 21029 - 11904: 0xA74F, - 21030 - 11904: 0xFAB1, - 21031 - 11904: 0x89A6, - 21032 - 11904: 0xA753, - 21033 - 11904: 0xA751, - 21034 - 11904: 0xA752, - 21038 - 11904: 0xA8ED, - 21040 - 11904: 0xA8EC, - 21041 - 11904: 0xCBD4, - 21042 - 11904: 0xCBD1, - 21043 - 11904: 0xCBD2, - 21044 - 11904: 0x9EFA, - 21045 - 11904: 0xCBD0, - 21046 - 11904: 0xA8EE, - 21047 - 11904: 0xA8EA, - 21048 - 11904: 0xA8E9, - 21050 - 11904: 0xA8EB, - 21051 - 11904: 0xA8E8, - 21052 - 11904: 0xFAB2, - 21057 - 11904: 0xA8EF, - 21059 - 11904: 0xAB63, - 21060 - 11904: 0xCDF0, - 21062 - 11904: 0xCBD3, - 21063 - 11904: 0xAB68, - 21065 - 11904: 0xCDF1, - 21066 - 11904: 0xAB64, - 21067 - 11904: 0xAB67, - 21068 - 11904: 0xAB66, - 21069 - 11904: 0xAB65, - 21070 - 11904: 0xAB62, - 21071 - 11904: 0x87BC, - 21074 - 11904: 0xD0E8, - 21076 - 11904: 0xADE7, - 21077 - 11904: 0xD0EB, - 21078 - 11904: 0xADE5, - 21079 - 11904: 0xFAB4, - 21081 - 11904: 0x92C4, - 21082 - 11904: 0xD0E7, - 21083 - 11904: 0xADE8, - 21084 - 11904: 0xADE6, - 21085 - 11904: 0xADE9, - 21086 - 11904: 0xD0E9, - 21087 - 11904: 0xD0EA, - 21088 - 11904: 0x9F6F, - 21089 - 11904: 0xD0E6, - 21090 - 11904: 0xD0EC, - 21096 - 11904: 0x8BB0, - 21097 - 11904: 0xB3D1, - 21098 - 11904: 0xB0C5, - 21099 - 11904: 0xD469, - 21100 - 11904: 0xD46B, - 21101 - 11904: 0xD46A, - 21102 - 11904: 0xD46C, - 21103 - 11904: 0xB0C6, - 21106 - 11904: 0xB3CE, - 21107 - 11904: 0x9FAC, - 21108 - 11904: 0xB3CF, - 21109 - 11904: 0xB3D0, - 21111 - 11904: 0xB6D0, - 21112 - 11904: 0xDCC7, - 21113 - 11904: 0x89E3, - 21114 - 11904: 0xDCC6, - 21115 - 11904: 0xDCC8, - 21116 - 11904: 0xDCC9, - 21117 - 11904: 0xB6D1, - 21119 - 11904: 0xB6CF, - 21120 - 11904: 0xE141, - 21121 - 11904: 0xE142, - 21122 - 11904: 0xB9BB, - 21123 - 11904: 0xB9BA, - 21124 - 11904: 0xE35A, - 21127 - 11904: 0xBC40, - 21128 - 11904: 0xBC41, - 21129 - 11904: 0xBC42, - 21130 - 11904: 0xBC44, - 21131 - 11904: 0xE4F2, - 21132 - 11904: 0xE4F3, - 21133 - 11904: 0xBC43, - 21135 - 11904: 0x9BD3, - 21136 - 11904: 0x89E4, - 21137 - 11904: 0xBEAF, - 21139 - 11904: 0xBEB0, - 21140 - 11904: 0xFAB5, - 21142 - 11904: 0xF1ED, - 21143 - 11904: 0xF5C3, - 21144 - 11904: 0xF5C2, - 21145 - 11904: 0xF7D1, - 21146 - 11904: 0x9FD5, - 21147 - 11904: 0xA44F, - 21151 - 11904: 0xA55C, - 21152 - 11904: 0xA55B, - 21153 - 11904: 0x8955, - 21155 - 11904: 0xA648, - 21156 - 11904: 0x92C5, - 21158 - 11904: 0xC9C0, - 21160 - 11904: 0x8956, - 21161 - 11904: 0xA755, - 21162 - 11904: 0xA756, - 21163 - 11904: 0xA754, - 21164 - 11904: 0xA757, - 21165 - 11904: 0xCA6F, - 21166 - 11904: 0xCA70, - 21173 - 11904: 0xFAB3, - 21177 - 11904: 0xFAB6, - 21179 - 11904: 0xA8F1, - 21180 - 11904: 0xCBD5, - 21182 - 11904: 0xA8F0, - 21184 - 11904: 0xCDF2, - 21185 - 11904: 0xAB6C, - 21186 - 11904: 0xCDF3, - 21187 - 11904: 0xAB6B, - 21189 - 11904: 0xFAB7, - 21191 - 11904: 0xAB69, - 21193 - 11904: 0xAB6A, - 21196 - 11904: 0x9EDC, - 21197 - 11904: 0xD0ED, - 21200 - 11904: 0xFBC4, - 21201 - 11904: 0x9F71, - 21202 - 11904: 0xB0C7, - 21203 - 11904: 0xD46E, - 21205 - 11904: 0xB0CA, - 21206 - 11904: 0xD46D, - 21207 - 11904: 0xB1E5, - 21208 - 11904: 0xB0C9, - 21209 - 11904: 0xB0C8, - 21211 - 11904: 0xB3D4, - 21213 - 11904: 0xB3D3, - 21214 - 11904: 0xB3D2, - 21215 - 11904: 0xB6D2, - 21216 - 11904: 0xFABA, - 21217 - 11904: 0x92C7, - 21218 - 11904: 0xB6D5, - 21219 - 11904: 0xB6D6, - 21220 - 11904: 0xB6D4, - 21222 - 11904: 0xB6D3, - 21225 - 11904: 0xE143, - 21227 - 11904: 0xE144, - 21231 - 11904: 0xE4F5, - 21232 - 11904: 0xBC45, - 21233 - 11904: 0xE4F4, - 21235 - 11904: 0xBEB1, - 21236 - 11904: 0xECBF, - 21237 - 11904: 0xC079, - 21239 - 11904: 0xF1EE, - 21240 - 11904: 0xC455, - 21241 - 11904: 0xC6C6, - 21242 - 11904: 0xA463, - 21243 - 11904: 0xA4C3, - 21244 - 11904: 0xC956, - 21246 - 11904: 0xA4C4, - 21247 - 11904: 0xA4C5, - 21249 - 11904: 0x9A4C, - 21253 - 11904: 0xFABD, - 21254 - 11904: 0xA55E, - 21256 - 11904: 0xA649, - 21257 - 11904: 0xCA71, - 21258 - 11904: 0xCBD6, - 21259 - 11904: 0xCBD7, - 21261 - 11904: 0xAB6D, - 21262 - 11904: 0xD0EE, - 21263 - 11904: 0xB0CC, - 21264 - 11904: 0xB0CB, - 21265 - 11904: 0xD863, - 21266 - 11904: 0xD862, - 21269 - 11904: 0xA450, - 21270 - 11904: 0xA4C6, - 21271 - 11904: 0xA55F, - 21273 - 11904: 0xB0CD, - 21274 - 11904: 0xC943, - 21276 - 11904: 0xC96C, - 21277 - 11904: 0xA560, - 21279 - 11904: 0xC9C2, - 21280 - 11904: 0xA64B, - 21281 - 11904: 0xA64A, - 21282 - 11904: 0xC9C1, - 21283 - 11904: 0xA758, - 21284 - 11904: 0x8C68, - 21287 - 11904: 0x89E5, - 21290 - 11904: 0xADEA, - 21292 - 11904: 0x9F7D, - 21293 - 11904: 0xD46F, - 21295 - 11904: 0xB6D7, - 21296 - 11904: 0xE145, - 21297 - 11904: 0xB9BC, - 21298 - 11904: 0xA0A9, - 21299 - 11904: 0xFAC4, - 21300 - 11904: 0xE8FA, - 21303 - 11904: 0xF3FD, - 21304 - 11904: 0xC6C7, - 21305 - 11904: 0xA4C7, - 21307 - 11904: 0x8957, - 21308 - 11904: 0xCBD8, - 21309 - 11904: 0xCDF4, - 21310 - 11904: 0xB0D0, - 21311 - 11904: 0xB0CE, - 21312 - 11904: 0xB0CF, - 21313 - 11904: 0xA451, - 21314 - 11904: 0xFAAA, - 21315 - 11904: 0xA464, - 21316 - 11904: 0xFAC5, - 21317 - 11904: 0xA4CA, - 21319 - 11904: 0xA4C9, - 21320 - 11904: 0xA4C8, - 21321 - 11904: 0xA563, - 21322 - 11904: 0xA562, - 21324 - 11904: 0xC96D, - 21325 - 11904: 0xC9C3, - 21326 - 11904: 0x8958, - 21329 - 11904: 0xA8F5, - 21330 - 11904: 0xA8F2, - 21331 - 11904: 0xA8F4, - 21332 - 11904: 0xA8F3, - 21335 - 11904: 0xAB6E, - 21338 - 11904: 0xB3D5, - 21340 - 11904: 0xA452, - 21341 - 11904: 0x8BE3, - 21342 - 11904: 0xA4CB, - 21343 - 11904: 0x8B61, - 21344 - 11904: 0xA565, - 21345 - 11904: 0xA564, - 21347 - 11904: 0xCA72, - 21348 - 11904: 0x9AF1, - 21350 - 11904: 0xA8F6, - 21351 - 11904: 0x9EB7, - 21353 - 11904: 0xC6C8, - 21356 - 11904: 0xC957, - 21357 - 11904: 0xFAD1, - 21358 - 11904: 0xA567, - 21359 - 11904: 0xA566, - 21360 - 11904: 0xA64C, - 21361 - 11904: 0xA64D, - 21362 - 11904: 0xCA73, - 21363 - 11904: 0xA759, - 21364 - 11904: 0xFAD2, - 21365 - 11904: 0xA75A, - 21367 - 11904: 0xA8F7, - 21368 - 11904: 0xA8F8, - 21369 - 11904: 0xA8F9, - 21371 - 11904: 0xAB6F, - 21372 - 11904: 0xCDF5, - 21373 - 11904: 0x9EBA, - 21374 - 11904: 0xFAD4, - 21375 - 11904: 0xFAD5, - 21378 - 11904: 0xC944, - 21380 - 11904: 0xA4CC, - 21386 - 11904: 0xC9C4, - 21390 - 11904: 0xCA74, - 21391 - 11904: 0xCA75, - 21394 - 11904: 0xCBD9, - 21395 - 11904: 0xFAD9, - 21396 - 11904: 0xCBDA, - 21398 - 11904: 0xCDF7, - 21399 - 11904: 0xCDF6, - 21400 - 11904: 0xCDF9, - 21401 - 11904: 0xCDF8, - 21402 - 11904: 0xAB70, - 21404 - 11904: 0xD470, - 21405 - 11904: 0xADED, - 21406 - 11904: 0xD0EF, - 21407 - 11904: 0xADEC, - 21408 - 11904: 0xFADB, - 21410 - 11904: 0x9CE0, - 21412 - 11904: 0xD864, - 21413 - 11904: 0xB3D6, - 21414 - 11904: 0xFBF7, - 21415 - 11904: 0xD865, - 21416 - 11904: 0xFBFA, - 21417 - 11904: 0x89E7, - 21418 - 11904: 0xA07A, - 21419 - 11904: 0xFADC, - 21420 - 11904: 0xE146, - 21421 - 11904: 0xB9BD, - 21422 - 11904: 0xFADD, - 21424 - 11904: 0x89E9, - 21426 - 11904: 0xBC46, - 21428 - 11904: 0xF1EF, - 21430 - 11904: 0xC6C9, - 21433 - 11904: 0xC958, - 21435 - 11904: 0xA568, - 21441 - 11904: 0xFAE2, - 21442 - 11904: 0x89EB, - 21443 - 11904: 0xB0D1, - 21445 - 11904: 0xFAE3, - 21448 - 11904: 0xA453, - 21449 - 11904: 0xA465, - 21450 - 11904: 0xA4CE, - 21451 - 11904: 0xA4CD, - 21452 - 11904: 0x90C8, - 21453 - 11904: 0xA4CF, - 21456 - 11904: 0x92DA, - 21457 - 11904: 0x8959, - 21458 - 11904: 0x9CF5, - 21460 - 11904: 0xA8FB, - 21462 - 11904: 0xA8FA, - 21463 - 11904: 0xA8FC, - 21464 - 11904: 0x895A, - 21465 - 11904: 0xFAE7, - 21466 - 11904: 0x9FA2, - 21467 - 11904: 0xAB71, - 21471 - 11904: 0xADEE, - 21472 - 11904: 0xFAEA, - 21473 - 11904: 0xE8FB, - 21474 - 11904: 0xC24F, - 21475 - 11904: 0xA466, - 21476 - 11904: 0xA56A, - 21477 - 11904: 0xA579, - 21478 - 11904: 0xA574, - 21480 - 11904: 0xA56F, - 21481 - 11904: 0xA56E, - 21482 - 11904: 0xA575, - 21483 - 11904: 0xA573, - 21484 - 11904: 0xA56C, - 21485 - 11904: 0xA57A, - 21486 - 11904: 0xA56D, - 21487 - 11904: 0xA569, - 21488 - 11904: 0xA578, - 21489 - 11904: 0xA577, - 21490 - 11904: 0xA576, - 21491 - 11904: 0xA56B, - 21493 - 11904: 0xA572, - 21494 - 11904: 0xFAED, - 21495 - 11904: 0x8FAD, - 21496 - 11904: 0xA571, - 21499 - 11904: 0xA57B, - 21500 - 11904: 0xA570, - 21502 - 11904: 0xFB59, - 21505 - 11904: 0xA653, - 21507 - 11904: 0xA659, - 21508 - 11904: 0xA655, - 21510 - 11904: 0xA65B, - 21511 - 11904: 0xC9C5, - 21512 - 11904: 0xA658, - 21513 - 11904: 0xA64E, - 21514 - 11904: 0xA651, - 21515 - 11904: 0xA654, - 21516 - 11904: 0xA650, - 21517 - 11904: 0xA657, - 21518 - 11904: 0xA65A, - 21519 - 11904: 0xA64F, - 21520 - 11904: 0xA652, - 21521 - 11904: 0xA656, - 21522 - 11904: 0xA65C, - 21523 - 11904: 0xFAEF, - 21524 - 11904: 0x96EF, - 21526 - 11904: 0x9DEC, - 21528 - 11904: 0xCA7E, - 21529 - 11904: 0xCA7B, - 21530 - 11904: 0x9DCA, - 21531 - 11904: 0xA767, - 21532 - 11904: 0xCA7C, - 21533 - 11904: 0xA75B, - 21534 - 11904: 0xA75D, - 21535 - 11904: 0xA775, - 21536 - 11904: 0xA770, - 21537 - 11904: 0xFD6D, - 21539 - 11904: 0x89EC, - 21540 - 11904: 0xCAA5, - 21541 - 11904: 0xCA7D, - 21542 - 11904: 0xA75F, - 21543 - 11904: 0xA761, - 21544 - 11904: 0xCAA4, - 21545 - 11904: 0xA768, - 21546 - 11904: 0xCA78, - 21547 - 11904: 0xA774, - 21548 - 11904: 0xA776, - 21549 - 11904: 0xA75C, - 21550 - 11904: 0xA76D, - 21551 - 11904: 0xFB44, - 21552 - 11904: 0xCA76, - 21553 - 11904: 0xA773, - 21554 - 11904: 0x9DE2, - 21555 - 11904: 0xA764, - 21556 - 11904: 0x8C75, - 21557 - 11904: 0xA76E, - 21558 - 11904: 0xA76F, - 21559 - 11904: 0xCA77, - 21560 - 11904: 0xA76C, - 21561 - 11904: 0xA76A, - 21563 - 11904: 0xA76B, - 21564 - 11904: 0xA771, - 21565 - 11904: 0xCAA1, - 21566 - 11904: 0xA75E, - 21568 - 11904: 0xA772, - 21569 - 11904: 0xCAA3, - 21570 - 11904: 0xA766, - 21571 - 11904: 0xA763, - 21573 - 11904: 0xCA7A, - 21574 - 11904: 0xA762, - 21575 - 11904: 0xCAA6, - 21576 - 11904: 0xA765, - 21578 - 11904: 0xA769, - 21579 - 11904: 0x9EC0, - 21580 - 11904: 0x87C5, - 21581 - 11904: 0x9E56, - 21582 - 11904: 0xA760, - 21583 - 11904: 0xCAA2, - 21588 - 11904: 0xCA79, - 21600 - 11904: 0xCBEB, - 21601 - 11904: 0xCBEA, - 21602 - 11904: 0xA94F, - 21603 - 11904: 0xCBED, - 21604 - 11904: 0xCBEF, - 21605 - 11904: 0xCBE4, - 21606 - 11904: 0xCBE7, - 21607 - 11904: 0xCBEE, - 21608 - 11904: 0xA950, - 21609 - 11904: 0x9F79, - 21610 - 11904: 0x9AC7, - 21611 - 11904: 0xCBE1, - 21612 - 11904: 0xCBE5, - 21613 - 11904: 0xFAF4, - 21615 - 11904: 0xCBE9, - 21616 - 11904: 0xCE49, - 21617 - 11904: 0xA94B, - 21618 - 11904: 0xCE4D, - 21619 - 11904: 0xA8FD, - 21620 - 11904: 0xCBE6, - 21621 - 11904: 0xA8FE, - 21622 - 11904: 0xA94C, - 21623 - 11904: 0xA945, - 21624 - 11904: 0xA941, - 21626 - 11904: 0xCBE2, - 21627 - 11904: 0xA944, - 21628 - 11904: 0xA949, - 21629 - 11904: 0xA952, - 21630 - 11904: 0xCBE3, - 21631 - 11904: 0xCBDC, - 21632 - 11904: 0xA943, - 21633 - 11904: 0xCBDD, - 21634 - 11904: 0xCBDF, - 21636 - 11904: 0xA946, - 21637 - 11904: 0x98A1, - 21638 - 11904: 0xA948, - 21639 - 11904: 0xCBDB, - 21640 - 11904: 0xCBE0, - 21643 - 11904: 0xA951, - 21644 - 11904: 0xA94D, - 21645 - 11904: 0xCBE8, - 21646 - 11904: 0xA953, - 21647 - 11904: 0xFAF8, - 21648 - 11904: 0xA94A, - 21649 - 11904: 0xCBDE, - 21650 - 11904: 0xA947, - 21651 - 11904: 0x89F0, - 21652 - 11904: 0x9E47, - 21653 - 11904: 0xA942, - 21654 - 11904: 0xA940, - 21655 - 11904: 0x9DF7, - 21656 - 11904: 0xCBEC, - 21658 - 11904: 0xA94E, - 21660 - 11904: 0x9FD3, - 21662 - 11904: 0x9ACA, - 21664 - 11904: 0xCE48, - 21665 - 11904: 0xCDFB, - 21666 - 11904: 0xCE4B, - 21667 - 11904: 0x89F1, - 21668 - 11904: 0xFAF9, - 21669 - 11904: 0xCDFD, - 21670 - 11904: 0xAB78, - 21671 - 11904: 0xABA8, - 21672 - 11904: 0xAB74, - 21673 - 11904: 0xABA7, - 21674 - 11904: 0xAB7D, - 21675 - 11904: 0xABA4, - 21676 - 11904: 0xAB72, - 21677 - 11904: 0xCDFC, - 21678 - 11904: 0xCE43, - 21679 - 11904: 0xABA3, - 21680 - 11904: 0xCE4F, - 21681 - 11904: 0xABA5, - 21682 - 11904: 0x8E5A, - 21683 - 11904: 0xAB79, - 21684 - 11904: 0x89F2, - 21686 - 11904: 0xCE45, - 21687 - 11904: 0xCE42, - 21688 - 11904: 0xAB77, - 21689 - 11904: 0x89F3, - 21690 - 11904: 0xCDFA, - 21691 - 11904: 0xABA6, - 21692 - 11904: 0xCE4A, - 21693 - 11904: 0xAB7C, - 21694 - 11904: 0xCE4C, - 21695 - 11904: 0xABA9, - 21696 - 11904: 0xAB73, - 21697 - 11904: 0xAB7E, - 21698 - 11904: 0xAB7B, - 21699 - 11904: 0xCE40, - 21700 - 11904: 0xABA1, - 21701 - 11904: 0xCE46, - 21702 - 11904: 0xCE47, - 21703 - 11904: 0xAB7A, - 21704 - 11904: 0xABA2, - 21705 - 11904: 0xAB76, - 21707 - 11904: 0x925D, - 21708 - 11904: 0x8B51, - 21709 - 11904: 0x92E0, - 21710 - 11904: 0xAB75, - 21711 - 11904: 0xCDFE, - 21712 - 11904: 0x89F4, - 21718 - 11904: 0xCE44, - 21722 - 11904: 0x9FD4, - 21726 - 11904: 0xCE4E, - 21728 - 11904: 0xD144, - 21729 - 11904: 0xADFB, - 21730 - 11904: 0xD0F1, - 21731 - 11904: 0x8A79, - 21732 - 11904: 0xD0F6, - 21733 - 11904: 0xADF4, - 21734 - 11904: 0xAE40, - 21735 - 11904: 0xD0F4, - 21736 - 11904: 0xADEF, - 21737 - 11904: 0xADF9, - 21738 - 11904: 0xADFE, - 21739 - 11904: 0xD0FB, - 21741 - 11904: 0xADFA, - 21742 - 11904: 0xADFD, - 21743 - 11904: 0x89F5, - 21745 - 11904: 0xD0FE, - 21746 - 11904: 0xADF5, - 21747 - 11904: 0xD0F5, - 21751 - 11904: 0xD142, - 21752 - 11904: 0xD143, - 21754 - 11904: 0xADF7, - 21755 - 11904: 0xD141, - 21756 - 11904: 0xADF3, - 21757 - 11904: 0xAE43, - 21759 - 11904: 0xD0F8, - 21761 - 11904: 0xADF1, - 21762 - 11904: 0x97A7, - 21763 - 11904: 0xD146, - 21764 - 11904: 0xD0F9, - 21765 - 11904: 0xD0FD, - 21766 - 11904: 0xADF6, - 21767 - 11904: 0xAE42, - 21768 - 11904: 0xD0FA, - 21769 - 11904: 0xADFC, - 21770 - 11904: 0xD140, - 21771 - 11904: 0xD147, - 21772 - 11904: 0xD4A1, - 21773 - 11904: 0x93BA, - 21774 - 11904: 0xD145, - 21775 - 11904: 0xAE44, - 21776 - 11904: 0xADF0, - 21777 - 11904: 0xD0FC, - 21778 - 11904: 0xD0F3, - 21779 - 11904: 0x9E58, - 21780 - 11904: 0xADF8, - 21783 - 11904: 0xD0F2, - 21784 - 11904: 0x89F6, - 21786 - 11904: 0xD0F7, - 21790 - 11904: 0x9E57, - 21795 - 11904: 0x89F7, - 21797 - 11904: 0x8A41, - 21798 - 11904: 0xD0F0, - 21799 - 11904: 0xAE41, - 21800 - 11904: 0x89F8, - 21802 - 11904: 0xD477, - 21803 - 11904: 0xFAF1, - 21804 - 11904: 0xB0E4, - 21805 - 11904: 0xD4A7, - 21806 - 11904: 0xB0E2, - 21807 - 11904: 0xB0DF, - 21808 - 11904: 0xD47C, - 21809 - 11904: 0xB0DB, - 21810 - 11904: 0xD4A2, - 21811 - 11904: 0xB0E6, - 21812 - 11904: 0xD476, - 21813 - 11904: 0xD47B, - 21814 - 11904: 0xD47A, - 21815 - 11904: 0xADF2, - 21816 - 11904: 0xB0E1, - 21817 - 11904: 0xD4A5, - 21819 - 11904: 0xD4A8, - 21820 - 11904: 0xD473, - 21822 - 11904: 0xB3E8, - 21823 - 11904: 0x89FA, - 21824 - 11904: 0xD4A9, - 21825 - 11904: 0xB0E7, - 21827 - 11904: 0xB0D9, - 21828 - 11904: 0xB0D6, - 21829 - 11904: 0xD47E, - 21830 - 11904: 0xB0D3, - 21831 - 11904: 0xFB42, - 21832 - 11904: 0xD4A6, - 21833 - 11904: 0xFABF, - 21834 - 11904: 0xB0DA, - 21835 - 11904: 0xD4AA, - 21837 - 11904: 0xD474, - 21838 - 11904: 0xD4A4, - 21839 - 11904: 0xB0DD, - 21840 - 11904: 0xD475, - 21841 - 11904: 0xD478, - 21842 - 11904: 0xD47D, - 21843 - 11904: 0xFBA3, - 21845 - 11904: 0xB0DE, - 21846 - 11904: 0xB0DC, - 21847 - 11904: 0xB0E8, - 21852 - 11904: 0xB0E3, - 21853 - 11904: 0xFAF7, - 21854 - 11904: 0xB0D7, - 21855 - 11904: 0xB1D2, - 21857 - 11904: 0xB0D8, - 21858 - 11904: 0xD479, - 21859 - 11904: 0xB0E5, - 21860 - 11904: 0xB0E0, - 21861 - 11904: 0xD4A3, - 21862 - 11904: 0xB0D5, - 21865 - 11904: 0x9E4E, - 21866 - 11904: 0xB0D4, - 21867 - 11904: 0x94DC, - 21873 - 11904: 0x95DA, - 21874 - 11904: 0x9DF8, - 21875 - 11904: 0x9F6A, - 21877 - 11904: 0xD471, - 21878 - 11904: 0xD472, - 21879 - 11904: 0xD86A, - 21881 - 11904: 0x8AB7, - 21883 - 11904: 0xB3D7, - 21884 - 11904: 0xB3DA, - 21885 - 11904: 0xD875, - 21886 - 11904: 0xB3EE, - 21887 - 11904: 0xD878, - 21888 - 11904: 0xB3D8, - 21889 - 11904: 0xD871, - 21890 - 11904: 0xB3DE, - 21891 - 11904: 0xB3E4, - 21892 - 11904: 0xB5BD, - 21894 - 11904: 0xFB46, - 21895 - 11904: 0xB3E2, - 21896 - 11904: 0xD86E, - 21897 - 11904: 0xB3EF, - 21898 - 11904: 0xB3DB, - 21899 - 11904: 0xB3E3, - 21900 - 11904: 0xD876, - 21901 - 11904: 0xDCD7, - 21902 - 11904: 0xD87B, - 21903 - 11904: 0xD86F, - 21904 - 11904: 0x8A46, - 21905 - 11904: 0xD866, - 21906 - 11904: 0xD873, - 21907 - 11904: 0xD86D, - 21908 - 11904: 0xB3E1, - 21909 - 11904: 0xD879, - 21912 - 11904: 0xB3DD, - 21913 - 11904: 0xB3F1, - 21914 - 11904: 0xB3EA, - 21916 - 11904: 0xB3DF, - 21917 - 11904: 0xB3DC, - 21919 - 11904: 0xB3E7, - 21921 - 11904: 0xD87A, - 21922 - 11904: 0xD86C, - 21923 - 11904: 0xD872, - 21924 - 11904: 0xD874, - 21925 - 11904: 0xD868, - 21926 - 11904: 0xD877, - 21927 - 11904: 0xB3D9, - 21928 - 11904: 0xD867, - 21929 - 11904: 0xFB47, - 21930 - 11904: 0xB3E0, - 21931 - 11904: 0xB3F0, - 21932 - 11904: 0xB3EC, - 21933 - 11904: 0xD869, - 21934 - 11904: 0xB3E6, - 21936 - 11904: 0x9148, - 21937 - 11904: 0xB3ED, - 21938 - 11904: 0xB3E9, - 21939 - 11904: 0xB3E5, - 21940 - 11904: 0x92DE, - 21941 - 11904: 0xD870, - 21945 - 11904: 0x8B53, - 21946 - 11904: 0x9DF6, - 21947 - 11904: 0xB3EB, - 21948 - 11904: 0x9BDA, - 21951 - 11904: 0xDCD5, - 21952 - 11904: 0xDCD1, - 21953 - 11904: 0x9D7E, - 21954 - 11904: 0xDCE0, - 21955 - 11904: 0xDCCA, - 21956 - 11904: 0xDCD3, - 21957 - 11904: 0xB6E5, - 21958 - 11904: 0xB6E6, - 21959 - 11904: 0xB6DE, - 21960 - 11904: 0xDCDC, - 21961 - 11904: 0xB6E8, - 21962 - 11904: 0xDCCF, - 21963 - 11904: 0xDCCE, - 21964 - 11904: 0xDCCC, - 21965 - 11904: 0xDCDE, - 21966 - 11904: 0xB6DC, - 21967 - 11904: 0xDCD8, - 21968 - 11904: 0xDCCD, - 21969 - 11904: 0xB6DF, - 21970 - 11904: 0xDCD6, - 21971 - 11904: 0xB6DA, - 21972 - 11904: 0xDCD2, - 21973 - 11904: 0xDCD9, - 21974 - 11904: 0xDCDB, - 21975 - 11904: 0x89FD, - 21976 - 11904: 0x99E4, - 21977 - 11904: 0xDCDF, - 21978 - 11904: 0xB6E3, - 21979 - 11904: 0xDCCB, - 21980 - 11904: 0xB6DD, - 21981 - 11904: 0xDCD0, - 21982 - 11904: 0x9E43, - 21983 - 11904: 0xB6D8, - 21985 - 11904: 0xB6E4, - 21986 - 11904: 0xDCDA, - 21987 - 11904: 0xB6E0, - 21988 - 11904: 0xB6E1, - 21989 - 11904: 0xB6E7, - 21990 - 11904: 0xB6DB, - 21991 - 11904: 0xA25F, - 21992 - 11904: 0xB6D9, - 21993 - 11904: 0xDCD4, - 21994 - 11904: 0x9DE9, - 21996 - 11904: 0x8F52, - 21999 - 11904: 0xB6E2, - 22000 - 11904: 0x9DF5, - 22001 - 11904: 0x9DF0, - 22002 - 11904: 0xDCDD, - 22005 - 11904: 0x99E7, - 22006 - 11904: 0xB9CD, - 22007 - 11904: 0xB9C8, - 22009 - 11904: 0xE155, - 22010 - 11904: 0xE151, - 22011 - 11904: 0x8BBD, - 22012 - 11904: 0xE14B, - 22013 - 11904: 0xB9C2, - 22014 - 11904: 0xB9BE, - 22015 - 11904: 0xE154, - 22016 - 11904: 0xB9BF, - 22017 - 11904: 0xE14E, - 22018 - 11904: 0xE150, - 22020 - 11904: 0xE153, - 22021 - 11904: 0xFB48, - 22022 - 11904: 0xB9C4, - 22024 - 11904: 0xB9CB, - 22025 - 11904: 0xB9C5, - 22028 - 11904: 0xE149, - 22029 - 11904: 0xB9C6, - 22030 - 11904: 0xB9C7, - 22031 - 11904: 0xE14C, - 22032 - 11904: 0xB9CC, - 22033 - 11904: 0x9FB7, - 22034 - 11904: 0xE14A, - 22035 - 11904: 0xE14F, - 22036 - 11904: 0xB9C3, - 22037 - 11904: 0xE148, - 22038 - 11904: 0xB9C9, - 22039 - 11904: 0xB9C1, - 22043 - 11904: 0xB9C0, - 22044 - 11904: 0xE14D, - 22045 - 11904: 0xE152, - 22046 - 11904: 0x9DD0, - 22047 - 11904: 0xB9CA, - 22048 - 11904: 0x9FEB, - 22049 - 11904: 0x8DA9, - 22050 - 11904: 0x9DCF, - 22051 - 11904: 0x98E1, - 22053 - 11904: 0x9DE5, - 22055 - 11904: 0xE147, - 22057 - 11904: 0xBC4D, - 22058 - 11904: 0xE547, - 22060 - 11904: 0xE544, - 22061 - 11904: 0x9DC8, - 22062 - 11904: 0xBC47, - 22063 - 11904: 0xBC53, - 22064 - 11904: 0xBC54, - 22066 - 11904: 0xBC4A, - 22067 - 11904: 0xE542, - 22068 - 11904: 0xBC4C, - 22069 - 11904: 0xE4F9, - 22070 - 11904: 0xBC52, - 22071 - 11904: 0xFB4F, - 22072 - 11904: 0xE546, - 22073 - 11904: 0xBC49, - 22074 - 11904: 0xE548, - 22075 - 11904: 0xBC48, - 22077 - 11904: 0xE543, - 22078 - 11904: 0xE545, - 22079 - 11904: 0xBC4B, - 22080 - 11904: 0xE541, - 22081 - 11904: 0xE4FA, - 22082 - 11904: 0xE4F7, - 22083 - 11904: 0x9DEB, - 22085 - 11904: 0xD86B, - 22086 - 11904: 0xE4FD, - 22088 - 11904: 0xE4F6, - 22089 - 11904: 0xE4FC, - 22090 - 11904: 0xE4FB, - 22092 - 11904: 0xE4F8, - 22093 - 11904: 0xFB54, - 22094 - 11904: 0xBC4F, - 22095 - 11904: 0xFB55, - 22096 - 11904: 0x9AA2, - 22098 - 11904: 0x8AD6, - 22099 - 11904: 0xBC4E, - 22100 - 11904: 0x9A5F, - 22103 - 11904: 0xBC50, - 22104 - 11904: 0xE4FE, - 22105 - 11904: 0xBEB2, - 22106 - 11904: 0xE540, - 22109 - 11904: 0x9EF5, - 22110 - 11904: 0xE945, - 22112 - 11904: 0xE8FD, - 22113 - 11904: 0x8FB7, - 22114 - 11904: 0xBEBE, - 22115 - 11904: 0xE942, - 22116 - 11904: 0xBEB6, - 22117 - 11904: 0xBEBA, - 22118 - 11904: 0xE941, - 22120 - 11904: 0xBEB9, - 22121 - 11904: 0xBEB5, - 22122 - 11904: 0xBEB8, - 22123 - 11904: 0xBEB3, - 22124 - 11904: 0xBEBD, - 22125 - 11904: 0xE943, - 22126 - 11904: 0xE8FE, - 22127 - 11904: 0xBEBC, - 22128 - 11904: 0xE8FC, - 22129 - 11904: 0xBEBB, - 22130 - 11904: 0xE944, - 22131 - 11904: 0xE940, - 22132 - 11904: 0xBC51, - 22134 - 11904: 0xBEBF, - 22135 - 11904: 0xE946, - 22136 - 11904: 0xBEB7, - 22137 - 11904: 0xBEB4, - 22138 - 11904: 0x9AD2, - 22139 - 11904: 0x9E6A, - 22140 - 11904: 0x9EE8, - 22142 - 11904: 0xECC6, - 22143 - 11904: 0xECC8, - 22144 - 11904: 0xC07B, - 22145 - 11904: 0xECC9, - 22146 - 11904: 0xECC7, - 22147 - 11904: 0xECC5, - 22148 - 11904: 0xECC4, - 22149 - 11904: 0xC07D, - 22150 - 11904: 0xECC3, - 22151 - 11904: 0xC07E, - 22153 - 11904: 0x8BBF, - 22154 - 11904: 0x91C2, - 22155 - 11904: 0x9D62, - 22156 - 11904: 0xECC1, - 22157 - 11904: 0xECC2, - 22158 - 11904: 0xC07A, - 22159 - 11904: 0xC0A1, - 22160 - 11904: 0xC07C, - 22162 - 11904: 0x9260, - 22163 - 11904: 0xECC0, - 22165 - 11904: 0xC250, - 22167 - 11904: 0xEFBC, - 22168 - 11904: 0xEFBA, - 22169 - 11904: 0xEFBF, - 22170 - 11904: 0xEFBD, - 22172 - 11904: 0xEFBB, - 22173 - 11904: 0xEFBE, - 22174 - 11904: 0x925E, - 22175 - 11904: 0x91C1, - 22177 - 11904: 0x8AC5, - 22180 - 11904: 0x97A3, - 22181 - 11904: 0xC360, - 22182 - 11904: 0xF1F2, - 22183 - 11904: 0xF1F3, - 22184 - 11904: 0xC456, - 22186 - 11904: 0xF1F4, - 22187 - 11904: 0xF1F0, - 22188 - 11904: 0xF1F5, - 22189 - 11904: 0xF1F1, - 22190 - 11904: 0xC251, - 22191 - 11904: 0x8B6C, - 22193 - 11904: 0x8D7E, - 22194 - 11904: 0xF3FE, - 22195 - 11904: 0xF441, - 22196 - 11904: 0xC459, - 22197 - 11904: 0xF440, - 22198 - 11904: 0xC458, - 22199 - 11904: 0xC457, - 22201 - 11904: 0x9C54, - 22204 - 11904: 0xC45A, - 22205 - 11904: 0xF5C5, - 22206 - 11904: 0xF5C6, - 22207 - 11904: 0x9DBD, - 22208 - 11904: 0xC4DA, - 22209 - 11904: 0xC4D9, - 22210 - 11904: 0xC4DB, - 22211 - 11904: 0xF5C4, - 22213 - 11904: 0xF6D8, - 22214 - 11904: 0xF6D7, - 22216 - 11904: 0xC56D, - 22217 - 11904: 0xC56F, - 22218 - 11904: 0xC56E, - 22219 - 11904: 0xF6D9, - 22220 - 11904: 0xC5C8, - 22221 - 11904: 0xF8A6, - 22225 - 11904: 0xC5F1, - 22227 - 11904: 0xF8A5, - 22228 - 11904: 0xF8EE, - 22230 - 11904: 0x9CC5, - 22231 - 11904: 0xC949, - 22234 - 11904: 0xA57D, - 22235 - 11904: 0xA57C, - 22237 - 11904: 0xA65F, - 22238 - 11904: 0xA65E, - 22239 - 11904: 0xC9C7, - 22240 - 11904: 0xA65D, - 22241 - 11904: 0xC9C6, - 22242 - 11904: 0x895B, - 22244 - 11904: 0xA779, - 22245 - 11904: 0xCAA9, - 22247 - 11904: 0xCAA8, - 22250 - 11904: 0xA777, - 22251 - 11904: 0xA77A, - 22253 - 11904: 0xFB5C, - 22254 - 11904: 0xCAA7, - 22255 - 11904: 0xFB5B, - 22256 - 11904: 0xA778, - 22257 - 11904: 0xFB57, - 22263 - 11904: 0xCBF0, - 22265 - 11904: 0xCBF1, - 22266 - 11904: 0xA954, - 22267 - 11904: 0x8765, - 22269 - 11904: 0x98C7, - 22271 - 11904: 0xABAA, - 22272 - 11904: 0xFB5A, - 22273 - 11904: 0xD148, - 22274 - 11904: 0xD149, - 22275 - 11904: 0xAE45, - 22276 - 11904: 0xAE46, - 22279 - 11904: 0xD4AC, - 22280 - 11904: 0xB0E9, - 22281 - 11904: 0xB0EB, - 22282 - 11904: 0xD4AB, - 22283 - 11904: 0xB0EA, - 22284 - 11904: 0xD87C, - 22285 - 11904: 0xB3F2, - 22290 - 11904: 0xB6E9, - 22291 - 11904: 0xB6EA, - 22292 - 11904: 0xDCE1, - 22293 - 11904: 0x9CEE, - 22294 - 11904: 0xB9CF, - 22296 - 11904: 0xB9CE, - 22298 - 11904: 0xE549, - 22299 - 11904: 0xE948, - 22300 - 11904: 0xE947, - 22301 - 11904: 0x92E2, - 22302 - 11904: 0xF96B, - 22303 - 11904: 0xA467, - 22304 - 11904: 0xC959, - 22306 - 11904: 0xC96E, - 22307 - 11904: 0xC96F, - 22312 - 11904: 0xA662, - 22313 - 11904: 0xA666, - 22314 - 11904: 0xC9C9, - 22316 - 11904: 0xA664, - 22317 - 11904: 0xA663, - 22318 - 11904: 0xC9C8, - 22319 - 11904: 0xA665, - 22320 - 11904: 0xA661, - 22322 - 11904: 0x94A7, - 22323 - 11904: 0xA660, - 22324 - 11904: 0xC9CA, - 22331 - 11904: 0xA7A6, - 22333 - 11904: 0x8CCC, - 22334 - 11904: 0xA7A3, - 22335 - 11904: 0x9BD4, - 22336 - 11904: 0xA77D, - 22337 - 11904: 0xCAAA, - 22338 - 11904: 0xFB64, - 22339 - 11904: 0xFB76, - 22341 - 11904: 0xCAAB, - 22342 - 11904: 0xFB60, - 22343 - 11904: 0xA7A1, - 22345 - 11904: 0xCAAD, - 22346 - 11904: 0xA77B, - 22347 - 11904: 0xCAAE, - 22348 - 11904: 0xCAAC, - 22349 - 11904: 0xA77E, - 22350 - 11904: 0xA7A2, - 22351 - 11904: 0xA7A5, - 22352 - 11904: 0xA7A4, - 22353 - 11904: 0xA77C, - 22354 - 11904: 0xCAAF, - 22356 - 11904: 0x99E5, - 22359 - 11904: 0x9AC2, - 22363 - 11904: 0x91FB, - 22367 - 11904: 0xA073, - 22369 - 11904: 0xA959, - 22370 - 11904: 0xCBFE, - 22372 - 11904: 0xA95B, - 22374 - 11904: 0xA95A, - 22375 - 11904: 0x9F72, - 22376 - 11904: 0xCC40, - 22377 - 11904: 0xA958, - 22378 - 11904: 0xA957, - 22379 - 11904: 0xCBF5, - 22381 - 11904: 0xCBF4, - 22383 - 11904: 0xCBF2, - 22384 - 11904: 0xCBF7, - 22385 - 11904: 0xCBF6, - 22386 - 11904: 0xCBF3, - 22387 - 11904: 0xCBFC, - 22388 - 11904: 0xCBFD, - 22389 - 11904: 0xCBFA, - 22390 - 11904: 0xCBF8, - 22391 - 11904: 0xA956, - 22394 - 11904: 0x9FCC, - 22395 - 11904: 0xCBFB, - 22396 - 11904: 0xA95C, - 22397 - 11904: 0xCC41, - 22398 - 11904: 0x98A5, - 22399 - 11904: 0x92E8, - 22400 - 11904: 0xCBF9, - 22402 - 11904: 0xABAB, - 22403 - 11904: 0xA955, - 22408 - 11904: 0x9BBC, - 22410 - 11904: 0x96F3, - 22411 - 11904: 0xABAC, - 22412 - 11904: 0xCE54, - 22413 - 11904: 0x92E7, - 22415 - 11904: 0xCE5A, - 22416 - 11904: 0xFC67, - 22419 - 11904: 0xABB2, - 22420 - 11904: 0xCE58, - 22421 - 11904: 0xCE5E, - 22423 - 11904: 0xCE55, - 22424 - 11904: 0xCE59, - 22425 - 11904: 0xCE5B, - 22426 - 11904: 0xCE5D, - 22427 - 11904: 0xCE57, - 22428 - 11904: 0x8B7D, - 22429 - 11904: 0xCE56, - 22430 - 11904: 0xCE51, - 22431 - 11904: 0xCE52, - 22432 - 11904: 0xABAD, - 22433 - 11904: 0x9BF4, - 22434 - 11904: 0xABAF, - 22435 - 11904: 0xABAE, - 22436 - 11904: 0xCE53, - 22437 - 11904: 0xCE5C, - 22439 - 11904: 0x9EF7, - 22442 - 11904: 0x9EC1, - 22446 - 11904: 0xABB1, - 22451 - 11904: 0x87C3, - 22452 - 11904: 0x996F, - 22453 - 11904: 0xCE50, - 22454 - 11904: 0xD153, - 22456 - 11904: 0xD152, - 22457 - 11904: 0xD157, - 22458 - 11904: 0xD14E, - 22459 - 11904: 0x96F1, - 22460 - 11904: 0xD151, - 22461 - 11904: 0xD150, - 22462 - 11904: 0x8E41, - 22463 - 11904: 0xD154, - 22465 - 11904: 0xD158, - 22466 - 11904: 0xAE47, - 22467 - 11904: 0xAE4A, - 22468 - 11904: 0x954A, - 22470 - 11904: 0xD14F, - 22471 - 11904: 0xD155, - 22472 - 11904: 0x97E6, - 22475 - 11904: 0xAE49, - 22476 - 11904: 0xD14A, - 22478 - 11904: 0xABB0, - 22479 - 11904: 0xD4BA, - 22480 - 11904: 0xD156, - 22482 - 11904: 0xD14D, - 22484 - 11904: 0xAE48, - 22485 - 11904: 0xD14C, - 22487 - 11904: 0x96F5, - 22492 - 11904: 0xD4B1, - 22493 - 11904: 0x92E6, - 22494 - 11904: 0x9F42, - 22495 - 11904: 0xB0EC, - 22496 - 11904: 0xB0F0, - 22497 - 11904: 0xD4C1, - 22498 - 11904: 0xD4AF, - 22499 - 11904: 0xD4BD, - 22500 - 11904: 0xB0F1, - 22501 - 11904: 0xD4BF, - 22502 - 11904: 0xFB67, - 22503 - 11904: 0xD4C5, - 22505 - 11904: 0xD4C9, - 22508 - 11904: 0xD4C0, - 22509 - 11904: 0xD4B4, - 22510 - 11904: 0xD4BC, - 22511 - 11904: 0x99A9, - 22512 - 11904: 0xD4CA, - 22513 - 11904: 0xD4C8, - 22514 - 11904: 0xD4BE, - 22515 - 11904: 0xD4B9, - 22516 - 11904: 0xD4B2, - 22517 - 11904: 0xD8A6, - 22518 - 11904: 0xD4B0, - 22519 - 11904: 0xB0F5, - 22520 - 11904: 0xD4B7, - 22521 - 11904: 0xB0F6, - 22522 - 11904: 0xB0F2, - 22523 - 11904: 0xD4AD, - 22524 - 11904: 0xD4C3, - 22525 - 11904: 0xD4B5, - 22526 - 11904: 0xFAE6, - 22528 - 11904: 0xD4B3, - 22529 - 11904: 0xD4C6, - 22530 - 11904: 0xB0F3, - 22531 - 11904: 0xFB69, - 22532 - 11904: 0xD4CC, - 22533 - 11904: 0xB0ED, - 22534 - 11904: 0xB0EF, - 22535 - 11904: 0xD4BB, - 22536 - 11904: 0xD4B6, - 22537 - 11904: 0xAE4B, - 22538 - 11904: 0xB0EE, - 22539 - 11904: 0xD4B8, - 22540 - 11904: 0xD4C7, - 22541 - 11904: 0xD4CB, - 22542 - 11904: 0xD4C2, - 22544 - 11904: 0xD4C4, - 22546 - 11904: 0x97E5, - 22548 - 11904: 0xD4AE, - 22552 - 11904: 0x87C8, - 22553 - 11904: 0xD8A1, - 22555 - 11904: 0xD8AA, - 22556 - 11904: 0xD8A9, - 22557 - 11904: 0xB3FA, - 22558 - 11904: 0xD8A2, - 22560 - 11904: 0xB3FB, - 22561 - 11904: 0xB3F9, - 22562 - 11904: 0x967D, - 22563 - 11904: 0xD8A4, - 22564 - 11904: 0xB3F6, - 22565 - 11904: 0xD8A8, - 22566 - 11904: 0xFB6C, - 22567 - 11904: 0xD8A3, - 22568 - 11904: 0xD8A5, - 22569 - 11904: 0xD87D, - 22570 - 11904: 0xB3F4, - 22572 - 11904: 0xD8B2, - 22573 - 11904: 0xD8B1, - 22574 - 11904: 0xD8AE, - 22575 - 11904: 0xB3F3, - 22576 - 11904: 0xB3F7, - 22577 - 11904: 0xB3F8, - 22578 - 11904: 0xD14B, - 22579 - 11904: 0xD8AB, - 22580 - 11904: 0xB3F5, - 22581 - 11904: 0xB0F4, - 22582 - 11904: 0xD8AD, - 22583 - 11904: 0xD87E, - 22584 - 11904: 0xD8B0, - 22585 - 11904: 0xD8AF, - 22586 - 11904: 0x99A2, - 22587 - 11904: 0xD8B3, - 22589 - 11904: 0xDCEF, - 22591 - 11904: 0xD8AC, - 22592 - 11904: 0x9ABB, - 22596 - 11904: 0x9A65, - 22599 - 11904: 0x944E, - 22600 - 11904: 0xD8A7, - 22601 - 11904: 0xDCE7, - 22602 - 11904: 0xB6F4, - 22603 - 11904: 0xB6F7, - 22604 - 11904: 0xB6F2, - 22605 - 11904: 0xDCE6, - 22606 - 11904: 0xDCEA, - 22607 - 11904: 0xDCE5, - 22609 - 11904: 0xB6EC, - 22610 - 11904: 0xB6F6, - 22611 - 11904: 0xDCE2, - 22612 - 11904: 0xB6F0, - 22613 - 11904: 0xDCE9, - 22615 - 11904: 0xB6EE, - 22616 - 11904: 0xB6ED, - 22617 - 11904: 0xDCEC, - 22618 - 11904: 0xB6EF, - 22619 - 11904: 0xDCEE, - 22620 - 11904: 0xFB6E, - 22621 - 11904: 0xDCEB, - 22622 - 11904: 0xB6EB, - 22623 - 11904: 0x99DF, - 22626 - 11904: 0xB6F5, - 22627 - 11904: 0xDCF0, - 22628 - 11904: 0xDCE4, - 22629 - 11904: 0xDCED, - 22632 - 11904: 0xDCE3, - 22633 - 11904: 0x98E3, - 22635 - 11904: 0xB6F1, - 22636 - 11904: 0x9254, - 22637 - 11904: 0xB6F3, - 22639 - 11904: 0xDCE8, - 22641 - 11904: 0xDCF1, - 22642 - 11904: 0x967B, - 22643 - 11904: 0x8AAF, - 22644 - 11904: 0xE15D, - 22645 - 11904: 0xB9D0, - 22646 - 11904: 0xE163, - 22649 - 11904: 0xB9D5, - 22650 - 11904: 0xE15F, - 22651 - 11904: 0xE166, - 22652 - 11904: 0xE157, - 22653 - 11904: 0xB9D7, - 22654 - 11904: 0xB9D1, - 22655 - 11904: 0xE15C, - 22656 - 11904: 0xBC55, - 22657 - 11904: 0xE15B, - 22658 - 11904: 0xE164, - 22659 - 11904: 0xB9D2, - 22661 - 11904: 0xB9D6, - 22662 - 11904: 0xE15A, - 22663 - 11904: 0xE160, - 22664 - 11904: 0xE165, - 22665 - 11904: 0xE156, - 22666 - 11904: 0xB9D4, - 22667 - 11904: 0xE15E, - 22670 - 11904: 0xE162, - 22671 - 11904: 0xE168, - 22672 - 11904: 0xE158, - 22673 - 11904: 0xE161, - 22674 - 11904: 0x8C77, - 22675 - 11904: 0xB9D3, - 22676 - 11904: 0xE167, - 22678 - 11904: 0x87B0, - 22680 - 11904: 0xE159, - 22681 - 11904: 0x8BAF, - 22682 - 11904: 0x9EBD, - 22684 - 11904: 0xBC59, - 22685 - 11904: 0xE54B, - 22686 - 11904: 0xBC57, - 22687 - 11904: 0xBC56, - 22688 - 11904: 0xE54D, - 22689 - 11904: 0xE552, - 22691 - 11904: 0xE54E, - 22693 - 11904: 0xE551, - 22694 - 11904: 0xBC5C, - 22695 - 11904: 0x9EE6, - 22696 - 11904: 0xBEA5, - 22697 - 11904: 0xBC5B, - 22698 - 11904: 0xFB6F, - 22699 - 11904: 0xE54A, - 22700 - 11904: 0xE550, - 22702 - 11904: 0xBC5A, - 22703 - 11904: 0xE54F, - 22704 - 11904: 0x8EE1, - 22705 - 11904: 0xE54C, - 22707 - 11904: 0xBC58, - 22709 - 11904: 0x9B7D, - 22710 - 11904: 0x9C7E, - 22714 - 11904: 0xE94D, - 22715 - 11904: 0xF9D9, - 22716 - 11904: 0xE94F, - 22717 - 11904: 0xE94A, - 22718 - 11904: 0xBEC1, - 22719 - 11904: 0xE94C, - 22721 - 11904: 0xBEC0, - 22722 - 11904: 0xE94E, - 22725 - 11904: 0xBEC3, - 22726 - 11904: 0xE950, - 22727 - 11904: 0xBEC2, - 22728 - 11904: 0xE949, - 22729 - 11904: 0xE94B, - 22731 - 11904: 0x92EA, - 22734 - 11904: 0xC0A5, - 22735 - 11904: 0xECCC, - 22736 - 11904: 0x8C78, - 22737 - 11904: 0xC0A4, - 22738 - 11904: 0xECCD, - 22739 - 11904: 0xC0A3, - 22740 - 11904: 0xECCB, - 22741 - 11904: 0xC0A2, - 22742 - 11904: 0xECCA, - 22744 - 11904: 0xC253, - 22745 - 11904: 0xC252, - 22746 - 11904: 0xF1F6, - 22747 - 11904: 0xF1F8, - 22748 - 11904: 0xFB72, - 22749 - 11904: 0xF1F7, - 22750 - 11904: 0xC361, - 22751 - 11904: 0xC362, - 22752 - 11904: 0xFB71, - 22754 - 11904: 0xC363, - 22755 - 11904: 0xF442, - 22756 - 11904: 0xC45B, - 22759 - 11904: 0xF7D3, - 22760 - 11904: 0xF7D2, - 22761 - 11904: 0xC5F2, - 22763 - 11904: 0xA468, - 22764 - 11904: 0xA4D0, - 22767 - 11904: 0xA7A7, - 22768 - 11904: 0x895C, - 22770 - 11904: 0x98F0, - 22771 - 11904: 0x96F2, - 22772 - 11904: 0xCE5F, - 22777 - 11904: 0xB3FC, - 22778 - 11904: 0xB3FD, - 22779 - 11904: 0xFB74, - 22780 - 11904: 0xDCF2, - 22781 - 11904: 0xB9D8, - 22782 - 11904: 0xE169, - 22783 - 11904: 0xE553, - 22786 - 11904: 0x8BC1, - 22787 - 11904: 0xC95A, - 22788 - 11904: 0x895D, - 22789 - 11904: 0x89DE, - 22790 - 11904: 0xCAB0, - 22791 - 11904: 0x895E, - 22794 - 11904: 0xC6CA, - 22796 - 11904: 0xCC42, - 22797 - 11904: 0xCE60, - 22798 - 11904: 0xD159, - 22799 - 11904: 0xAE4C, - 22801 - 11904: 0xFE42, - 22802 - 11904: 0xF1F9, - 22804 - 11904: 0xC4DC, - 22805 - 11904: 0xA469, - 22806 - 11904: 0xA57E, - 22807 - 11904: 0xC970, - 22809 - 11904: 0xA667, - 22810 - 11904: 0xA668, - 22812 - 11904: 0xA95D, - 22813 - 11904: 0x8768, - 22815 - 11904: 0xFB7B, - 22816 - 11904: 0xB0F7, - 22818 - 11904: 0xB9DA, - 22820 - 11904: 0xB9DB, - 22821 - 11904: 0xB9D9, - 22823 - 11904: 0xA46A, - 22825 - 11904: 0xA4D1, - 22826 - 11904: 0xA4D3, - 22827 - 11904: 0xA4D2, - 22828 - 11904: 0xC95B, - 22829 - 11904: 0xA4D4, - 22830 - 11904: 0xA5A1, - 22831 - 11904: 0xC971, - 22833 - 11904: 0xA5A2, - 22834 - 11904: 0x895F, - 22836 - 11904: 0x8960, - 22839 - 11904: 0xA669, - 22840 - 11904: 0xA66A, - 22844 - 11904: 0xC9CB, - 22846 - 11904: 0xA7A8, - 22848 - 11904: 0xCAB1, - 22852 - 11904: 0xA961, - 22853 - 11904: 0xCC43, - 22855 - 11904: 0xA95F, - 22856 - 11904: 0xA960, - 22857 - 11904: 0xA95E, - 22858 - 11904: 0xD15A, - 22862 - 11904: 0xABB6, - 22863 - 11904: 0xABB5, - 22864 - 11904: 0xABB7, - 22865 - 11904: 0xABB4, - 22867 - 11904: 0xCE61, - 22868 - 11904: 0xA962, - 22869 - 11904: 0xABB3, - 22871 - 11904: 0xAE4D, - 22872 - 11904: 0xAE4E, - 22874 - 11904: 0xAE4F, - 22876 - 11904: 0xD4CD, - 22880 - 11904: 0xB3FE, - 22881 - 11904: 0xD8B4, - 22882 - 11904: 0xB0F8, - 22885 - 11904: 0x9BCD, - 22887 - 11904: 0xB6F8, - 22889 - 11904: 0xB9DD, - 22890 - 11904: 0xB9DC, - 22891 - 11904: 0xE16A, - 22893 - 11904: 0xBC5D, - 22894 - 11904: 0xBEC4, - 22896 - 11904: 0xEFC0, - 22897 - 11904: 0xF6DA, - 22898 - 11904: 0xF7D4, - 22899 - 11904: 0xA46B, - 22900 - 11904: 0xA5A3, - 22901 - 11904: 0x9DD3, - 22902 - 11904: 0xA5A4, - 22903 - 11904: 0xC9D1, - 22904 - 11904: 0xA66C, - 22905 - 11904: 0xA66F, - 22907 - 11904: 0xC9CF, - 22908 - 11904: 0xC9CD, - 22909 - 11904: 0xA66E, - 22910 - 11904: 0xC9D0, - 22911 - 11904: 0xC9D2, - 22912 - 11904: 0xC9CC, - 22913 - 11904: 0xA671, - 22914 - 11904: 0xA670, - 22915 - 11904: 0xA66D, - 22916 - 11904: 0xA66B, - 22917 - 11904: 0xC9CE, - 22921 - 11904: 0x984C, - 22922 - 11904: 0xA7B3, - 22925 - 11904: 0xA7B0, - 22926 - 11904: 0xCAB6, - 22927 - 11904: 0xCAB9, - 22928 - 11904: 0xCAB8, - 22930 - 11904: 0xA7AA, - 22931 - 11904: 0xA7B2, - 22932 - 11904: 0x9752, - 22934 - 11904: 0xA7AF, - 22935 - 11904: 0xCAB5, - 22936 - 11904: 0xCAB3, - 22937 - 11904: 0xA7AE, - 22938 - 11904: 0x95C3, - 22941 - 11904: 0xA7A9, - 22942 - 11904: 0xA7AC, - 22943 - 11904: 0x9BB6, - 22944 - 11904: 0xCAB4, - 22945 - 11904: 0xCABB, - 22946 - 11904: 0xCAB7, - 22947 - 11904: 0xA7AD, - 22948 - 11904: 0xA7B1, - 22949 - 11904: 0xA7B4, - 22950 - 11904: 0xCAB2, - 22951 - 11904: 0xCABA, - 22952 - 11904: 0xA7AB, - 22956 - 11904: 0x9AB9, - 22958 - 11904: 0xA967, - 22959 - 11904: 0xA96F, - 22960 - 11904: 0x97B3, - 22961 - 11904: 0xCC4F, - 22962 - 11904: 0xCC48, - 22963 - 11904: 0xA970, - 22964 - 11904: 0xCC53, - 22965 - 11904: 0xCC44, - 22966 - 11904: 0xCC4B, - 22967 - 11904: 0x9F74, - 22968 - 11904: 0x92F1, - 22969 - 11904: 0xA966, - 22970 - 11904: 0xCC45, - 22971 - 11904: 0xA964, - 22972 - 11904: 0xCC4C, - 22973 - 11904: 0xCC50, - 22974 - 11904: 0xA963, - 22975 - 11904: 0x8CFA, - 22976 - 11904: 0xCC51, - 22977 - 11904: 0xCC4A, - 22979 - 11904: 0xCC4D, - 22980 - 11904: 0x97DF, - 22981 - 11904: 0xA972, - 22982 - 11904: 0xA969, - 22983 - 11904: 0xCC54, - 22984 - 11904: 0xCC52, - 22985 - 11904: 0xFBA6, - 22986 - 11904: 0xA96E, - 22987 - 11904: 0xA96C, - 22988 - 11904: 0xCC49, - 22989 - 11904: 0xA96B, - 22990 - 11904: 0xCC47, - 22991 - 11904: 0xCC46, - 22992 - 11904: 0xA96A, - 22993 - 11904: 0xA968, - 22994 - 11904: 0xA971, - 22995 - 11904: 0xA96D, - 22996 - 11904: 0xA965, - 22998 - 11904: 0xCC4E, - 23000 - 11904: 0xABB9, - 23001 - 11904: 0xFBAB, - 23002 - 11904: 0xABC0, - 23003 - 11904: 0xCE6F, - 23004 - 11904: 0xABB8, - 23005 - 11904: 0xCE67, - 23006 - 11904: 0xCE63, - 23008 - 11904: 0xCE73, - 23009 - 11904: 0xCE62, - 23011 - 11904: 0xABBB, - 23012 - 11904: 0xCE6C, - 23013 - 11904: 0xABBE, - 23014 - 11904: 0xABC1, - 23016 - 11904: 0xABBC, - 23017 - 11904: 0xCE70, - 23018 - 11904: 0xABBF, - 23019 - 11904: 0x9877, - 23020 - 11904: 0xAE56, - 23021 - 11904: 0xCE76, - 23022 - 11904: 0xCE64, - 23023 - 11904: 0x9854, - 23024 - 11904: 0x95C5, - 23025 - 11904: 0xCE66, - 23026 - 11904: 0xCE6D, - 23027 - 11904: 0xCE71, - 23028 - 11904: 0xCE75, - 23029 - 11904: 0xCE72, - 23030 - 11904: 0xCE6B, - 23031 - 11904: 0xCE6E, - 23032 - 11904: 0x9D55, - 23033 - 11904: 0xFBB2, - 23034 - 11904: 0xCE68, - 23035 - 11904: 0xABC3, - 23036 - 11904: 0xCE6A, - 23037 - 11904: 0xCE69, - 23038 - 11904: 0xCE74, - 23039 - 11904: 0xABBA, - 23040 - 11904: 0xCE65, - 23041 - 11904: 0xABC2, - 23042 - 11904: 0x957E, - 23043 - 11904: 0xABBD, - 23049 - 11904: 0xAE5C, - 23050 - 11904: 0xD162, - 23051 - 11904: 0x9742, - 23052 - 11904: 0xAE5B, - 23053 - 11904: 0x94E6, - 23055 - 11904: 0xD160, - 23057 - 11904: 0xAE50, - 23058 - 11904: 0x92F5, - 23059 - 11904: 0xAE55, - 23061 - 11904: 0xD15F, - 23062 - 11904: 0xD15C, - 23063 - 11904: 0xD161, - 23064 - 11904: 0xAE51, - 23065 - 11904: 0xD15B, - 23066 - 11904: 0x8CC5, - 23067 - 11904: 0xAE54, - 23068 - 11904: 0xAE52, - 23070 - 11904: 0xD163, - 23071 - 11904: 0xAE53, - 23072 - 11904: 0xAE57, - 23073 - 11904: 0x92FD, - 23075 - 11904: 0xAE58, - 23076 - 11904: 0xFBA2, - 23077 - 11904: 0xAE5A, - 23079 - 11904: 0x9C51, - 23081 - 11904: 0xAE59, - 23082 - 11904: 0x94E9, - 23083 - 11904: 0x985C, - 23084 - 11904: 0x92F0, - 23085 - 11904: 0xD15D, - 23086 - 11904: 0xD15E, - 23091 - 11904: 0xD164, - 23093 - 11904: 0xD4D4, - 23094 - 11904: 0xB0F9, - 23095 - 11904: 0xD8C2, - 23096 - 11904: 0xD4D3, - 23097 - 11904: 0xD4E6, - 23100 - 11904: 0xB140, - 23101 - 11904: 0x944C, - 23102 - 11904: 0xD4E4, - 23104 - 11904: 0xB0FE, - 23105 - 11904: 0xB0FA, - 23106 - 11904: 0xD4ED, - 23107 - 11904: 0xD4DD, - 23108 - 11904: 0xD4E0, - 23109 - 11904: 0x916B, - 23110 - 11904: 0xB143, - 23111 - 11904: 0xD4EA, - 23112 - 11904: 0xD4E2, - 23113 - 11904: 0xB0FB, - 23114 - 11904: 0xB144, - 23116 - 11904: 0xD4E7, - 23117 - 11904: 0xD4E5, - 23120 - 11904: 0xD4D6, - 23121 - 11904: 0xD4EB, - 23122 - 11904: 0xD4DF, - 23123 - 11904: 0xD4DA, - 23124 - 11904: 0x8B78, - 23125 - 11904: 0xD4D0, - 23126 - 11904: 0xD4EC, - 23127 - 11904: 0xD4DC, - 23128 - 11904: 0xD4CF, - 23129 - 11904: 0x94E2, - 23130 - 11904: 0xB142, - 23131 - 11904: 0xD4E1, - 23132 - 11904: 0xD4EE, - 23133 - 11904: 0xD4DE, - 23134 - 11904: 0xD4D2, - 23135 - 11904: 0xD4D7, - 23136 - 11904: 0xD4CE, - 23137 - 11904: 0x984F, - 23138 - 11904: 0xB141, - 23139 - 11904: 0xFBB5, - 23140 - 11904: 0xD4DB, - 23141 - 11904: 0xD4D8, - 23142 - 11904: 0xB0FC, - 23143 - 11904: 0xD4D1, - 23144 - 11904: 0x9271, - 23145 - 11904: 0xD4E9, - 23146 - 11904: 0xB0FD, - 23147 - 11904: 0x9365, - 23148 - 11904: 0xD4D9, - 23149 - 11904: 0xD4D5, - 23150 - 11904: 0x985B, - 23152 - 11904: 0xD4E8, - 23153 - 11904: 0x9850, - 23159 - 11904: 0xFBB8, - 23160 - 11904: 0xD8BB, - 23161 - 11904: 0x97BC, - 23162 - 11904: 0xD8B8, - 23163 - 11904: 0xD8C9, - 23164 - 11904: 0xD8BD, - 23165 - 11904: 0xD8CA, - 23166 - 11904: 0x92F3, - 23167 - 11904: 0xB442, - 23169 - 11904: 0x9340, - 23170 - 11904: 0x984D, - 23171 - 11904: 0xD8C6, - 23172 - 11904: 0xD8C3, - 23174 - 11904: 0x9572, - 23176 - 11904: 0xFDEF, - 23178 - 11904: 0xD8C4, - 23179 - 11904: 0xD8C7, - 23180 - 11904: 0xD8CB, - 23182 - 11904: 0xD4E3, - 23183 - 11904: 0xD8CD, - 23184 - 11904: 0xDD47, - 23185 - 11904: 0xFDC1, - 23186 - 11904: 0xB443, - 23187 - 11904: 0xD8CE, - 23188 - 11904: 0xD8B6, - 23189 - 11904: 0xD8C0, - 23190 - 11904: 0xFBBA, - 23191 - 11904: 0xD8C5, - 23193 - 11904: 0x92EB, - 23194 - 11904: 0xB441, - 23195 - 11904: 0xB444, - 23196 - 11904: 0xD8CC, - 23197 - 11904: 0xD8CF, - 23198 - 11904: 0xD8BA, - 23199 - 11904: 0xD8B7, - 23200 - 11904: 0xFC73, - 23201 - 11904: 0x97B7, - 23202 - 11904: 0xD8B9, - 23204 - 11904: 0x876F, - 23205 - 11904: 0xD8BE, - 23206 - 11904: 0xD8BC, - 23207 - 11904: 0xB445, - 23209 - 11904: 0xD8C8, - 23211 - 11904: 0xFBB4, - 23212 - 11904: 0xD8BF, - 23214 - 11904: 0xD8C1, - 23215 - 11904: 0xD8B5, - 23216 - 11904: 0xDCFA, - 23217 - 11904: 0xDCF8, - 23218 - 11904: 0xB742, - 23219 - 11904: 0xB740, - 23220 - 11904: 0xDD43, - 23221 - 11904: 0xDCF9, - 23222 - 11904: 0xDD44, - 23223 - 11904: 0xDD40, - 23224 - 11904: 0xDCF7, - 23225 - 11904: 0xDD46, - 23226 - 11904: 0xDCF6, - 23227 - 11904: 0xDCFD, - 23228 - 11904: 0xB6FE, - 23229 - 11904: 0xB6FD, - 23230 - 11904: 0xB6FC, - 23231 - 11904: 0xDCFB, - 23232 - 11904: 0xDD41, - 23233 - 11904: 0xB6F9, - 23234 - 11904: 0xB741, - 23235 - 11904: 0x90A7, - 23236 - 11904: 0xDCF4, - 23238 - 11904: 0xDCFE, - 23239 - 11904: 0xDCF3, - 23240 - 11904: 0xDCFC, - 23241 - 11904: 0xB6FA, - 23242 - 11904: 0xDD42, - 23243 - 11904: 0xDCF5, - 23244 - 11904: 0xB6FB, - 23245 - 11904: 0xDD45, - 23246 - 11904: 0x9741, - 23247 - 11904: 0x92F4, - 23249 - 11904: 0x8772, - 23251 - 11904: 0xFBBC, - 23253 - 11904: 0xE16E, - 23254 - 11904: 0xB9E2, - 23255 - 11904: 0xB9E1, - 23256 - 11904: 0xB9E3, - 23257 - 11904: 0xE17A, - 23258 - 11904: 0xE170, - 23259 - 11904: 0xE176, - 23260 - 11904: 0xE16B, - 23261 - 11904: 0xE179, - 23262 - 11904: 0xE178, - 23263 - 11904: 0xE17C, - 23264 - 11904: 0xE175, - 23265 - 11904: 0xB9DE, - 23266 - 11904: 0xE174, - 23267 - 11904: 0xB9E4, - 23268 - 11904: 0x9577, - 23269 - 11904: 0xE16D, - 23270 - 11904: 0xB9DF, - 23272 - 11904: 0xE17B, - 23273 - 11904: 0xB9E0, - 23274 - 11904: 0xE16F, - 23275 - 11904: 0xE172, - 23276 - 11904: 0xE177, - 23277 - 11904: 0xE171, - 23278 - 11904: 0xE16C, - 23280 - 11904: 0x9EE2, - 23282 - 11904: 0x8F78, - 23283 - 11904: 0xE173, - 23284 - 11904: 0xE555, - 23285 - 11904: 0xBC61, - 23286 - 11904: 0xE558, - 23287 - 11904: 0xE557, - 23288 - 11904: 0xE55A, - 23289 - 11904: 0xE55C, - 23290 - 11904: 0xF9DC, - 23291 - 11904: 0xBC5F, - 23293 - 11904: 0xE556, - 23294 - 11904: 0x9672, - 23295 - 11904: 0xE554, - 23297 - 11904: 0xE55D, - 23298 - 11904: 0xE55B, - 23299 - 11904: 0xE559, - 23301 - 11904: 0xE55F, - 23303 - 11904: 0xE55E, - 23304 - 11904: 0xBC63, - 23305 - 11904: 0xBC5E, - 23307 - 11904: 0xBC60, - 23308 - 11904: 0xBC62, - 23309 - 11904: 0x9EB5, - 23311 - 11904: 0xE560, - 23312 - 11904: 0xE957, - 23313 - 11904: 0x964B, - 23315 - 11904: 0xE956, - 23316 - 11904: 0xE955, - 23317 - 11904: 0x8CAC, - 23318 - 11904: 0xE958, - 23319 - 11904: 0xE951, - 23321 - 11904: 0xE952, - 23322 - 11904: 0xE95A, - 23323 - 11904: 0xE953, - 23325 - 11904: 0xBEC5, - 23326 - 11904: 0xE95C, - 23327 - 11904: 0xA0FA, - 23328 - 11904: 0xE95B, - 23329 - 11904: 0xE954, - 23331 - 11904: 0xECD1, - 23332 - 11904: 0xC0A8, - 23333 - 11904: 0xECCF, - 23334 - 11904: 0xECD4, - 23335 - 11904: 0xECD3, - 23336 - 11904: 0xE959, - 23338 - 11904: 0xC0A7, - 23339 - 11904: 0x9575, - 23340 - 11904: 0xECD2, - 23341 - 11904: 0xECCE, - 23342 - 11904: 0xECD6, - 23343 - 11904: 0xECD5, - 23344 - 11904: 0xC0A6, - 23346 - 11904: 0xECD0, - 23348 - 11904: 0xBEC6, - 23352 - 11904: 0xC254, - 23356 - 11904: 0xEFC1, - 23357 - 11904: 0xF1FA, - 23358 - 11904: 0xF1FB, - 23359 - 11904: 0xF1FC, - 23360 - 11904: 0xC45C, - 23361 - 11904: 0x90DA, - 23363 - 11904: 0xC45D, - 23364 - 11904: 0x9367, - 23365 - 11904: 0xF443, - 23366 - 11904: 0xFEA4, - 23367 - 11904: 0xF5C8, - 23368 - 11904: 0xF5C7, - 23370 - 11904: 0x90DF, - 23371 - 11904: 0xF6DB, - 23372 - 11904: 0xF6DC, - 23373 - 11904: 0xF7D5, - 23374 - 11904: 0xF8A7, - 23375 - 11904: 0x9354, - 23376 - 11904: 0xA46C, - 23377 - 11904: 0xA46D, - 23379 - 11904: 0xA46E, - 23380 - 11904: 0xA4D5, - 23381 - 11904: 0xA5A5, - 23382 - 11904: 0xC9D3, - 23383 - 11904: 0xA672, - 23384 - 11904: 0xA673, - 23386 - 11904: 0xA7B7, - 23387 - 11904: 0xA7B8, - 23388 - 11904: 0xA7B6, - 23389 - 11904: 0xA7B5, - 23391 - 11904: 0xA973, - 23394 - 11904: 0xCC55, - 23395 - 11904: 0xA975, - 23396 - 11904: 0xA974, - 23397 - 11904: 0xCC56, - 23398 - 11904: 0x8961, - 23400 - 11904: 0x8BB4, - 23401 - 11904: 0xABC4, - 23403 - 11904: 0xAE5D, - 23404 - 11904: 0xD165, - 23405 - 11904: 0x9DC0, - 23406 - 11904: 0xD4F0, - 23408 - 11904: 0xB145, - 23409 - 11904: 0xB447, - 23410 - 11904: 0xD4EF, - 23411 - 11904: 0xB446, - 23412 - 11904: 0x8E48, - 23413 - 11904: 0xB9E5, - 23414 - 11904: 0xFBC5, - 23415 - 11904: 0xE17D, - 23416 - 11904: 0xBEC7, - 23418 - 11904: 0xC0A9, - 23419 - 11904: 0xECD7, - 23420 - 11904: 0xFBC7, - 23421 - 11904: 0xC45E, - 23423 - 11904: 0xC570, - 23424 - 11904: 0xC6CB, - 23425 - 11904: 0xC972, - 23426 - 11904: 0xFA79, - 23427 - 11904: 0xA5A6, - 23428 - 11904: 0xC973, - 23429 - 11904: 0xA676, - 23431 - 11904: 0xA674, - 23432 - 11904: 0xA675, - 23433 - 11904: 0xA677, - 23435 - 11904: 0xA7BA, - 23436 - 11904: 0xA7B9, - 23438 - 11904: 0xCABC, - 23439 - 11904: 0xA7BB, - 23440 - 11904: 0x9E67, - 23442 - 11904: 0xCABD, - 23443 - 11904: 0xCC57, - 23445 - 11904: 0xCC58, - 23446 - 11904: 0x8CD9, - 23447 - 11904: 0xA976, - 23448 - 11904: 0xA978, - 23449 - 11904: 0xA97A, - 23450 - 11904: 0xA977, - 23451 - 11904: 0xA97B, - 23452 - 11904: 0xA979, - 23453 - 11904: 0xFBD2, - 23454 - 11904: 0x8962, - 23455 - 11904: 0x8963, - 23458 - 11904: 0xABC8, - 23459 - 11904: 0xABC5, - 23460 - 11904: 0xABC7, - 23461 - 11904: 0xABC9, - 23462 - 11904: 0xABC6, - 23463 - 11904: 0xD166, - 23464 - 11904: 0xCE77, - 23466 - 11904: 0xFC7D, - 23468 - 11904: 0xD168, - 23469 - 11904: 0xD167, - 23470 - 11904: 0xAE63, - 23472 - 11904: 0xAE5F, - 23475 - 11904: 0xAE60, - 23476 - 11904: 0xAE62, - 23477 - 11904: 0xAE64, - 23478 - 11904: 0xAE61, - 23479 - 11904: 0x8773, - 23480 - 11904: 0xAE66, - 23481 - 11904: 0xAE65, - 23487 - 11904: 0xB14A, - 23488 - 11904: 0xD4F2, - 23489 - 11904: 0xD4F1, - 23490 - 11904: 0xB149, - 23491 - 11904: 0x9F6B, - 23492 - 11904: 0xB148, - 23493 - 11904: 0xB147, - 23494 - 11904: 0xB14B, - 23495 - 11904: 0xB146, - 23498 - 11904: 0xD8D5, - 23499 - 11904: 0xD8D2, - 23500 - 11904: 0xB449, - 23501 - 11904: 0xD8D1, - 23502 - 11904: 0xD8D6, - 23504 - 11904: 0xB44B, - 23505 - 11904: 0xD8D4, - 23506 - 11904: 0xB448, - 23507 - 11904: 0xB44A, - 23508 - 11904: 0xD8D3, - 23509 - 11904: 0xFBCC, - 23510 - 11904: 0xDD48, - 23511 - 11904: 0xFEAE, - 23512 - 11904: 0xDD49, - 23513 - 11904: 0xDD4A, - 23515 - 11904: 0x876D, - 23518 - 11904: 0xB9E6, - 23519 - 11904: 0xB9EE, - 23520 - 11904: 0xE17E, - 23521 - 11904: 0xB9E8, - 23522 - 11904: 0xB9EC, - 23523 - 11904: 0xE1A1, - 23524 - 11904: 0xB9ED, - 23525 - 11904: 0xB9E9, - 23526 - 11904: 0xB9EA, - 23527 - 11904: 0xB9E7, - 23528 - 11904: 0xB9EB, - 23529 - 11904: 0xBC66, - 23530 - 11904: 0xD8D0, - 23531 - 11904: 0xBC67, - 23532 - 11904: 0xBC65, - 23534 - 11904: 0xBC64, - 23535 - 11904: 0xE95D, - 23536 - 11904: 0xBEC8, - 23537 - 11904: 0xECD8, - 23538 - 11904: 0xECD9, - 23539 - 11904: 0xFBD1, - 23541 - 11904: 0xC364, - 23542 - 11904: 0xC45F, - 23544 - 11904: 0xA46F, - 23546 - 11904: 0xA678, - 23551 - 11904: 0xFB75, - 23553 - 11904: 0xABCA, - 23555 - 11904: 0xD169, - 23556 - 11904: 0xAE67, - 23557 - 11904: 0xFBD4, - 23559 - 11904: 0xB14E, - 23560 - 11904: 0xB14D, - 23561 - 11904: 0xB14C, - 23562 - 11904: 0xB44C, - 23563 - 11904: 0xB44D, - 23564 - 11904: 0xD8D7, - 23565 - 11904: 0xB9EF, - 23566 - 11904: 0xBEC9, - 23567 - 11904: 0xA470, - 23568 - 11904: 0xC95C, - 23569 - 11904: 0xA4D6, - 23570 - 11904: 0xC974, - 23571 - 11904: 0xFBD6, - 23572 - 11904: 0xFBD8, - 23573 - 11904: 0xC9D4, - 23574 - 11904: 0xA679, - 23578 - 11904: 0xA97C, - 23580 - 11904: 0x8B5D, - 23582 - 11904: 0x934C, - 23583 - 11904: 0xDD4B, - 23584 - 11904: 0x9AE2, - 23586 - 11904: 0xA471, - 23587 - 11904: 0x8BC9, - 23588 - 11904: 0xA4D7, - 23589 - 11904: 0xC9D5, - 23592 - 11904: 0xCABE, - 23594 - 11904: 0xCABF, - 23596 - 11904: 0xA7BC, - 23600 - 11904: 0xD8D8, - 23601 - 11904: 0xB44E, - 23603 - 11904: 0xDD4C, - 23607 - 11904: 0xC0AA, - 23608 - 11904: 0xA472, - 23609 - 11904: 0xA4A8, - 23610 - 11904: 0xA4D8, - 23611 - 11904: 0xC975, - 23612 - 11904: 0xA5A7, - 23614 - 11904: 0xA7C0, - 23615 - 11904: 0xA7BF, - 23616 - 11904: 0xA7BD, - 23617 - 11904: 0xA7BE, - 23620 - 11904: 0xCC59, - 23621 - 11904: 0xA97E, - 23622 - 11904: 0xA9A1, - 23623 - 11904: 0xCC5A, - 23624 - 11904: 0xA97D, - 23625 - 11904: 0xFBDB, - 23626 - 11904: 0x9FC9, - 23627 - 11904: 0xABCE, - 23628 - 11904: 0xCE78, - 23629 - 11904: 0xABCD, - 23630 - 11904: 0xABCB, - 23631 - 11904: 0xABCC, - 23632 - 11904: 0xAE6A, - 23633 - 11904: 0xAE68, - 23635 - 11904: 0x9F44, - 23636 - 11904: 0xD16B, - 23637 - 11904: 0xAE69, - 23638 - 11904: 0xD16A, - 23640 - 11904: 0xAE5E, - 23641 - 11904: 0xD4F3, - 23644 - 11904: 0xB150, - 23645 - 11904: 0xB151, - 23646 - 11904: 0x98ED, - 23648 - 11904: 0xB14F, - 23650 - 11904: 0xB9F0, - 23651 - 11904: 0xE1A2, - 23652 - 11904: 0xBC68, - 23653 - 11904: 0xBC69, - 23655 - 11904: 0xE561, - 23656 - 11904: 0xC0AB, - 23657 - 11904: 0xEFC2, - 23658 - 11904: 0xEFC3, - 23660 - 11904: 0xC4DD, - 23661 - 11904: 0xF8A8, - 23662 - 11904: 0xC94B, - 23663 - 11904: 0xA4D9, - 23665 - 11904: 0xA473, - 23667 - 11904: 0xC977, - 23668 - 11904: 0xC976, - 23672 - 11904: 0x8CE9, - 23673 - 11904: 0xA67A, - 23674 - 11904: 0xC9D7, - 23675 - 11904: 0xC9D8, - 23676 - 11904: 0xC9D6, - 23678 - 11904: 0xC9D9, - 23685 - 11904: 0xFBDD, - 23686 - 11904: 0xCAC7, - 23688 - 11904: 0xCAC2, - 23689 - 11904: 0xCAC4, - 23690 - 11904: 0xCAC6, - 23691 - 11904: 0xCAC3, - 23692 - 11904: 0xA7C4, - 23693 - 11904: 0xCAC0, - 23695 - 11904: 0xCAC1, - 23696 - 11904: 0xA7C1, - 23697 - 11904: 0xA7C2, - 23698 - 11904: 0xCAC5, - 23699 - 11904: 0xCAC8, - 23700 - 11904: 0xA7C3, - 23701 - 11904: 0xCAC9, - 23705 - 11904: 0x8DF2, - 23706 - 11904: 0x8964, - 23708 - 11904: 0xFDF2, - 23709 - 11904: 0xCC68, - 23710 - 11904: 0x934D, - 23711 - 11904: 0xCC62, - 23712 - 11904: 0xCC5D, - 23713 - 11904: 0xA9A3, - 23714 - 11904: 0xCC65, - 23715 - 11904: 0xCC63, - 23716 - 11904: 0xCC5C, - 23717 - 11904: 0xCC69, - 23718 - 11904: 0xCC6C, - 23719 - 11904: 0xCC67, - 23720 - 11904: 0xCC60, - 23721 - 11904: 0xA9A5, - 23722 - 11904: 0xCC66, - 23723 - 11904: 0xA9A6, - 23724 - 11904: 0xCC61, - 23725 - 11904: 0xCC64, - 23726 - 11904: 0xCC5B, - 23727 - 11904: 0xCC5F, - 23728 - 11904: 0xCC6B, - 23729 - 11904: 0xA9A7, - 23731 - 11904: 0xA9A8, - 23733 - 11904: 0xCC5E, - 23734 - 11904: 0xCC6A, - 23735 - 11904: 0xA9A2, - 23736 - 11904: 0xA9A4, - 23738 - 11904: 0xFBE7, - 23745 - 11904: 0xA0F2, - 23746 - 11904: 0x9868, - 23750 - 11904: 0xCEAB, - 23751 - 11904: 0xCEA4, - 23752 - 11904: 0xCEAA, - 23753 - 11904: 0xCEA3, - 23754 - 11904: 0xCEA5, - 23755 - 11904: 0xCE7D, - 23756 - 11904: 0xCE7B, - 23758 - 11904: 0xCEAC, - 23759 - 11904: 0xCEA9, - 23760 - 11904: 0xCE79, - 23761 - 11904: 0x9F58, - 23762 - 11904: 0xABD0, - 23763 - 11904: 0xCEA7, - 23764 - 11904: 0xCEA8, - 23765 - 11904: 0x8CE6, - 23766 - 11904: 0xCEA6, - 23767 - 11904: 0xCE7C, - 23768 - 11904: 0xCE7A, - 23769 - 11904: 0xABCF, - 23770 - 11904: 0xCEA2, - 23771 - 11904: 0xCE7E, - 23774 - 11904: 0xCEA1, - 23775 - 11904: 0xCEAD, - 23781 - 11904: 0x8D73, - 23784 - 11904: 0xAE6F, - 23785 - 11904: 0xFBDE, - 23786 - 11904: 0xAE6E, - 23788 - 11904: 0xD16C, - 23789 - 11904: 0xAE6B, - 23790 - 11904: 0xD16E, - 23791 - 11904: 0xFBDF, - 23792 - 11904: 0xAE70, - 23793 - 11904: 0xD16F, - 23796 - 11904: 0xAE73, - 23797 - 11904: 0x8C48, - 23798 - 11904: 0xAE71, - 23799 - 11904: 0xD170, - 23800 - 11904: 0xCEAE, - 23801 - 11904: 0xD172, - 23803 - 11904: 0xAE6D, - 23804 - 11904: 0x8774, - 23805 - 11904: 0xAE6C, - 23807 - 11904: 0xD16D, - 23808 - 11904: 0xD171, - 23809 - 11904: 0xAE72, - 23814 - 11904: 0xB153, - 23815 - 11904: 0xB152, - 23819 - 11904: 0xD4F5, - 23820 - 11904: 0xD4F9, - 23821 - 11904: 0xD4FB, - 23822 - 11904: 0xB154, - 23823 - 11904: 0xD4FE, - 23824 - 11904: 0xFBE3, - 23825 - 11904: 0xB158, - 23826 - 11904: 0xD541, - 23828 - 11904: 0xB15A, - 23829 - 11904: 0x8DA8, - 23830 - 11904: 0xB156, - 23831 - 11904: 0xB15E, - 23832 - 11904: 0xFBE4, - 23833 - 11904: 0xB15B, - 23834 - 11904: 0xD4F7, - 23835 - 11904: 0xB155, - 23837 - 11904: 0xD4F6, - 23838 - 11904: 0xD4F4, - 23839 - 11904: 0xD543, - 23840 - 11904: 0xD4F8, - 23842 - 11904: 0xB157, - 23843 - 11904: 0xD542, - 23844 - 11904: 0xB15C, - 23845 - 11904: 0xD4FD, - 23846 - 11904: 0xD4FC, - 23847 - 11904: 0xB15D, - 23848 - 11904: 0xD4FA, - 23849 - 11904: 0xB159, - 23852 - 11904: 0x9C75, - 23854 - 11904: 0xD544, - 23855 - 11904: 0x9878, - 23856 - 11904: 0xD540, - 23857 - 11904: 0xD8E7, - 23858 - 11904: 0xD8EE, - 23859 - 11904: 0xD8E3, - 23860 - 11904: 0xB451, - 23861 - 11904: 0xD8DF, - 23862 - 11904: 0xD8EF, - 23863 - 11904: 0xD8D9, - 23864 - 11904: 0xD8EC, - 23865 - 11904: 0xD8EA, - 23866 - 11904: 0xD8E4, - 23868 - 11904: 0xD8ED, - 23869 - 11904: 0xD8E6, - 23870 - 11904: 0x8D60, - 23871 - 11904: 0xD8DE, - 23872 - 11904: 0xD8F0, - 23873 - 11904: 0xD8DC, - 23874 - 11904: 0xD8E9, - 23875 - 11904: 0xD8DA, - 23877 - 11904: 0xD8F1, - 23878 - 11904: 0xFBE5, - 23879 - 11904: 0xB452, - 23880 - 11904: 0x8D61, - 23881 - 11904: 0xD8EB, - 23882 - 11904: 0xDD4F, - 23883 - 11904: 0xD8DD, - 23884 - 11904: 0xB44F, - 23886 - 11904: 0xD8E1, - 23888 - 11904: 0xB450, - 23889 - 11904: 0xD8E0, - 23890 - 11904: 0xD8E5, - 23893 - 11904: 0xD8E2, - 23894 - 11904: 0x8D62, - 23895 - 11904: 0xA0A1, - 23897 - 11904: 0xD8E8, - 23899 - 11904: 0x9C40, - 23902 - 11904: 0xDD53, - 23906 - 11904: 0xDD56, - 23907 - 11904: 0xDD4E, - 23909 - 11904: 0xDD50, - 23911 - 11904: 0xDD55, - 23912 - 11904: 0xDD54, - 23913 - 11904: 0xB743, - 23915 - 11904: 0xD8DB, - 23916 - 11904: 0xDD52, - 23919 - 11904: 0xB744, - 23920 - 11904: 0x98AD, - 23921 - 11904: 0xDD4D, - 23922 - 11904: 0xDD51, - 23924 - 11904: 0x9EEA, - 23927 - 11904: 0xE1A9, - 23928 - 11904: 0x8CEC, - 23929 - 11904: 0xE1B0, - 23930 - 11904: 0xE1A7, - 23931 - 11904: 0x8CD4, - 23932 - 11904: 0xE1AE, - 23933 - 11904: 0xE1A5, - 23934 - 11904: 0xE1AD, - 23935 - 11904: 0xE1B1, - 23936 - 11904: 0xE1A4, - 23937 - 11904: 0xE1A8, - 23938 - 11904: 0xE1A3, - 23940 - 11904: 0xB9F1, - 23941 - 11904: 0x9CEB, - 23942 - 11904: 0xE1A6, - 23943 - 11904: 0xB9F2, - 23944 - 11904: 0xE1AC, - 23945 - 11904: 0xE1AB, - 23946 - 11904: 0xE1AA, - 23947 - 11904: 0xFBE0, - 23949 - 11904: 0xE1AF, - 23950 - 11904: 0x9F51, - 23954 - 11904: 0xE565, - 23955 - 11904: 0xE567, - 23956 - 11904: 0xBC6B, - 23957 - 11904: 0xE568, - 23959 - 11904: 0xE563, - 23961 - 11904: 0xE562, - 23962 - 11904: 0xE56C, - 23964 - 11904: 0xE56A, - 23965 - 11904: 0xBC6A, - 23966 - 11904: 0xE56D, - 23967 - 11904: 0xE564, - 23968 - 11904: 0xE569, - 23969 - 11904: 0xE56B, - 23970 - 11904: 0xE566, - 23972 - 11904: 0x8D65, - 23975 - 11904: 0xE961, - 23976 - 11904: 0xE966, - 23977 - 11904: 0xE960, - 23978 - 11904: 0xE965, - 23979 - 11904: 0x9CF1, - 23980 - 11904: 0xE95E, - 23981 - 11904: 0xE968, - 23982 - 11904: 0xE964, - 23983 - 11904: 0xE969, - 23984 - 11904: 0xE963, - 23985 - 11904: 0xE95F, - 23986 - 11904: 0xE967, - 23988 - 11904: 0xE96A, - 23989 - 11904: 0xE962, - 23990 - 11904: 0xFC58, - 23991 - 11904: 0xECDA, - 23992 - 11904: 0xC0AF, - 23993 - 11904: 0x8D66, - 23994 - 11904: 0xC0AD, - 23996 - 11904: 0xC0AC, - 23997 - 11904: 0xC0AE, - 24000 - 11904: 0xEFC4, - 24001 - 11904: 0x9654, - 24002 - 11904: 0xF172, - 24003 - 11904: 0xF1FD, - 24006 - 11904: 0xF444, - 24007 - 11904: 0xF445, - 24009 - 11904: 0xC460, - 24011 - 11904: 0xF5C9, - 24013 - 11904: 0xC4DE, - 24015 - 11904: 0xF5CA, - 24017 - 11904: 0xF6DE, - 24018 - 11904: 0xC572, - 24020 - 11904: 0xC571, - 24021 - 11904: 0xF6DD, - 24022 - 11904: 0xC5C9, - 24023 - 11904: 0xFBE8, - 24024 - 11904: 0xF7D6, - 24027 - 11904: 0xC6CC, - 24029 - 11904: 0xA474, - 24030 - 11904: 0xA67B, - 24031 - 11904: 0xC9DA, - 24032 - 11904: 0xCACA, - 24033 - 11904: 0xA8B5, - 24034 - 11904: 0xB15F, - 24037 - 11904: 0xA475, - 24038 - 11904: 0xA5AA, - 24039 - 11904: 0xA5A9, - 24040 - 11904: 0xA5A8, - 24043 - 11904: 0xA7C5, - 24046 - 11904: 0xAE74, - 24048 - 11904: 0xDD57, - 24049 - 11904: 0xA476, - 24050 - 11904: 0xA477, - 24051 - 11904: 0xA478, - 24052 - 11904: 0xA4DA, - 24053 - 11904: 0x9FCE, - 24055 - 11904: 0xABD1, - 24057 - 11904: 0xCEAF, - 24061 - 11904: 0xB453, - 24062 - 11904: 0xA479, - 24063 - 11904: 0xC95D, - 24066 - 11904: 0xA5AB, - 24067 - 11904: 0xA5AC, - 24068 - 11904: 0xC978, - 24070 - 11904: 0xA67C, - 24073 - 11904: 0xFBFC, - 24074 - 11904: 0xCACB, - 24075 - 11904: 0x9AE4, - 24076 - 11904: 0xA7C6, - 24078 - 11904: 0xCACC, - 24081 - 11904: 0xA9AE, - 24082 - 11904: 0x9F75, - 24084 - 11904: 0xCC6E, - 24085 - 11904: 0xA9AC, - 24086 - 11904: 0xA9AB, - 24087 - 11904: 0xCC6D, - 24088 - 11904: 0xA9A9, - 24089 - 11904: 0xCC6F, - 24090 - 11904: 0xA9AA, - 24091 - 11904: 0xA9AD, - 24093 - 11904: 0xABD2, - 24095 - 11904: 0xABD4, - 24096 - 11904: 0xCEB3, - 24097 - 11904: 0xCEB0, - 24098 - 11904: 0xCEB1, - 24099 - 11904: 0xCEB2, - 24100 - 11904: 0xCEB4, - 24101 - 11904: 0xABD3, - 24104 - 11904: 0xD174, - 24105 - 11904: 0xD173, - 24107 - 11904: 0xAE76, - 24109 - 11904: 0xAE75, - 24110 - 11904: 0xFBF1, - 24115 - 11904: 0xB162, - 24116 - 11904: 0xD546, - 24118 - 11904: 0xB161, - 24119 - 11904: 0xB163, - 24120 - 11904: 0xB160, - 24125 - 11904: 0xB455, - 24126 - 11904: 0xD545, - 24128 - 11904: 0xB456, - 24129 - 11904: 0xD8F3, - 24130 - 11904: 0x8D69, - 24131 - 11904: 0xB457, - 24132 - 11904: 0xD8F2, - 24133 - 11904: 0xB454, - 24136 - 11904: 0x934F, - 24138 - 11904: 0xDD5A, - 24139 - 11904: 0xDD5C, - 24140 - 11904: 0xB745, - 24141 - 11904: 0xDD5B, - 24142 - 11904: 0xDD59, - 24143 - 11904: 0xDD58, - 24147 - 11904: 0xE1B4, - 24148 - 11904: 0xB9F7, - 24149 - 11904: 0xB9F5, - 24151 - 11904: 0xB9F6, - 24152 - 11904: 0xE1B2, - 24153 - 11904: 0xE1B3, - 24155 - 11904: 0xB9F3, - 24156 - 11904: 0xE571, - 24157 - 11904: 0xE56F, - 24158 - 11904: 0x934E, - 24159 - 11904: 0xBC6D, - 24160 - 11904: 0xE570, - 24161 - 11904: 0xBC6E, - 24162 - 11904: 0xBC6C, - 24163 - 11904: 0xB9F4, - 24166 - 11904: 0xE96D, - 24167 - 11904: 0xE96B, - 24168 - 11904: 0xE96C, - 24169 - 11904: 0xE56E, - 24170 - 11904: 0xECDC, - 24171 - 11904: 0xC0B0, - 24172 - 11904: 0xECDB, - 24173 - 11904: 0xEFC5, - 24174 - 11904: 0xEFC6, - 24175 - 11904: 0xE96E, - 24176 - 11904: 0xF1FE, - 24178 - 11904: 0xA47A, - 24179 - 11904: 0xA5AD, - 24180 - 11904: 0xA67E, - 24181 - 11904: 0xFBF3, - 24182 - 11904: 0xA67D, - 24184 - 11904: 0xA9AF, - 24185 - 11904: 0xB746, - 24186 - 11904: 0xFBF4, - 24187 - 11904: 0xA4DB, - 24188 - 11904: 0xA5AE, - 24189 - 11904: 0xABD5, - 24190 - 11904: 0xB458, - 24191 - 11904: 0xC6CE, - 24192 - 11904: 0xC979, - 24194 - 11904: 0xC97A, - 24195 - 11904: 0xFBC3, - 24196 - 11904: 0xC9DC, - 24198 - 11904: 0x8965, - 24199 - 11904: 0xA7C8, - 24200 - 11904: 0xCAD0, - 24201 - 11904: 0xCACE, - 24202 - 11904: 0xA7C9, - 24203 - 11904: 0xCACD, - 24204 - 11904: 0xCACF, - 24205 - 11904: 0xCAD1, - 24207 - 11904: 0xA7C7, - 24210 - 11904: 0x8C7A, - 24213 - 11904: 0xA9B3, - 24214 - 11904: 0xA9B4, - 24215 - 11904: 0xA9B1, - 24217 - 11904: 0x8C7B, - 24218 - 11904: 0xA9B0, - 24219 - 11904: 0xCEB8, - 24220 - 11904: 0xA9B2, - 24224 - 11904: 0xABD6, - 24226 - 11904: 0xCEB7, - 24227 - 11904: 0xCEB9, - 24228 - 11904: 0xCEB6, - 24229 - 11904: 0xCEBA, - 24230 - 11904: 0xABD7, - 24231 - 11904: 0xAE79, - 24232 - 11904: 0xD175, - 24234 - 11904: 0xD177, - 24235 - 11904: 0xAE77, - 24236 - 11904: 0xD178, - 24237 - 11904: 0xAE78, - 24238 - 11904: 0xD176, - 24240 - 11904: 0xCEB5, - 24241 - 11904: 0xD547, - 24242 - 11904: 0xD54A, - 24243 - 11904: 0xD54B, - 24244 - 11904: 0xD548, - 24245 - 11904: 0xB167, - 24246 - 11904: 0xB166, - 24247 - 11904: 0xB164, - 24248 - 11904: 0xB165, - 24249 - 11904: 0xD549, - 24253 - 11904: 0x8D6A, - 24254 - 11904: 0xB168, - 24257 - 11904: 0xB45A, - 24258 - 11904: 0xB45B, - 24260 - 11904: 0xB45C, - 24261 - 11904: 0xDD5D, - 24262 - 11904: 0xDD5F, - 24263 - 11904: 0xDD61, - 24264 - 11904: 0xB748, - 24265 - 11904: 0xB747, - 24266 - 11904: 0xB459, - 24267 - 11904: 0xDD60, - 24268 - 11904: 0xDD5E, - 24269 - 11904: 0x9353, - 24270 - 11904: 0xE1B8, - 24272 - 11904: 0xFBF9, - 24273 - 11904: 0xE1B6, - 24274 - 11904: 0xE1BC, - 24275 - 11904: 0xB9F8, - 24276 - 11904: 0xE1BD, - 24277 - 11904: 0xE1BA, - 24278 - 11904: 0xB9F9, - 24279 - 11904: 0xE1B7, - 24280 - 11904: 0xE1B5, - 24281 - 11904: 0xE1BB, - 24282 - 11904: 0xBC70, - 24283 - 11904: 0xE573, - 24284 - 11904: 0xE1B9, - 24285 - 11904: 0xBC72, - 24286 - 11904: 0xE574, - 24287 - 11904: 0xBC71, - 24288 - 11904: 0xBC74, - 24289 - 11904: 0xE575, - 24290 - 11904: 0xBC6F, - 24291 - 11904: 0xBC73, - 24293 - 11904: 0xE973, - 24294 - 11904: 0xE971, - 24295 - 11904: 0xE970, - 24296 - 11904: 0xE972, - 24297 - 11904: 0xE96F, - 24300 - 11904: 0xC366, - 24302 - 11904: 0xF446, - 24303 - 11904: 0xF447, - 24305 - 11904: 0xF5CB, - 24306 - 11904: 0xF6DF, - 24307 - 11904: 0xC655, - 24308 - 11904: 0xFBFD, - 24310 - 11904: 0xA9B5, - 24311 - 11904: 0xA7CA, - 24312 - 11904: 0x9059, - 24313 - 11904: 0xFC40, - 24314 - 11904: 0xABD8, - 24315 - 11904: 0xFC41, - 24316 - 11904: 0xFC43, - 24318 - 11904: 0xA47B, - 24319 - 11904: 0xA4DC, - 24321 - 11904: 0xA5AF, - 24322 - 11904: 0xC9DD, - 24324 - 11904: 0xA7CB, - 24325 - 11904: 0xCAD2, - 24327 - 11904: 0xCEBB, - 24328 - 11904: 0xABD9, - 24330 - 11904: 0xB9FA, - 24331 - 11904: 0xA47C, - 24332 - 11904: 0x9FD8, - 24333 - 11904: 0xFC46, - 24334 - 11904: 0x9362, - 24335 - 11904: 0xA6A1, - 24338 - 11904: 0xB749, - 24339 - 11904: 0xA47D, - 24340 - 11904: 0xA4DD, - 24341 - 11904: 0xA4DE, - 24343 - 11904: 0xA5B1, - 24344 - 11904: 0xA5B0, - 24346 - 11904: 0xC9DE, - 24347 - 11904: 0xA6A2, - 24349 - 11904: 0xCAD3, - 24351 - 11904: 0xA7CC, - 24354 - 11904: 0xCC71, - 24355 - 11904: 0xCC72, - 24356 - 11904: 0xCC73, - 24357 - 11904: 0x8D6B, - 24358 - 11904: 0xA9B6, - 24359 - 11904: 0xA9B7, - 24360 - 11904: 0xCC70, - 24361 - 11904: 0xA9B8, - 24365 - 11904: 0xABDA, - 24366 - 11904: 0xCEBC, - 24368 - 11904: 0xD17A, - 24369 - 11904: 0xAE7A, - 24371 - 11904: 0xD179, - 24373 - 11904: 0xB169, - 24374 - 11904: 0xD54C, - 24375 - 11904: 0xB16A, - 24376 - 11904: 0xD54D, - 24378 - 11904: 0xFC4C, - 24379 - 11904: 0x8CFE, - 24380 - 11904: 0xB45D, - 24384 - 11904: 0xDD62, - 24387 - 11904: 0xE1BF, - 24388 - 11904: 0xE1BE, - 24390 - 11904: 0xB9FB, - 24392 - 11904: 0xBC75, - 24393 - 11904: 0xE576, - 24394 - 11904: 0xBECA, - 24395 - 11904: 0xE974, - 24396 - 11904: 0xC0B1, - 24397 - 11904: 0x95B8, - 24398 - 11904: 0xC573, - 24399 - 11904: 0xF7D8, - 24400 - 11904: 0xC6D0, - 24401 - 11904: 0x8BCA, - 24404 - 11904: 0xCC74, - 24406 - 11904: 0xCEBD, - 24407 - 11904: 0xB16B, - 24408 - 11904: 0xFC4F, - 24409 - 11904: 0xB74A, - 24412 - 11904: 0x987A, - 24413 - 11904: 0xC255, - 24417 - 11904: 0xC6D1, - 24418 - 11904: 0xA7CE, - 24419 - 11904: 0xFC51, - 24420 - 11904: 0xA7CD, - 24421 - 11904: 0xABDB, - 24423 - 11904: 0xD17B, - 24425 - 11904: 0xB16D, - 24426 - 11904: 0xB343, - 24427 - 11904: 0xB16E, - 24428 - 11904: 0xB16C, - 24429 - 11904: 0xB45E, - 24431 - 11904: 0xE1C0, - 24432 - 11904: 0xB9FC, - 24433 - 11904: 0xBC76, - 24434 - 11904: 0xFC54, - 24435 - 11904: 0xC94C, - 24436 - 11904: 0xC9DF, - 24438 - 11904: 0xCAD5, - 24439 - 11904: 0xA7CF, - 24440 - 11904: 0xCAD4, - 24441 - 11904: 0xA7D0, - 24443 - 11904: 0xFAAF, - 24444 - 11904: 0xA9BC, - 24445 - 11904: 0xCC77, - 24446 - 11904: 0xCC76, - 24447 - 11904: 0xA9BB, - 24448 - 11904: 0xA9B9, - 24449 - 11904: 0xA9BA, - 24450 - 11904: 0xCC75, - 24451 - 11904: 0x8D6C, - 24453 - 11904: 0xABDD, - 24454 - 11904: 0xCEBE, - 24455 - 11904: 0xABE0, - 24456 - 11904: 0xABDC, - 24457 - 11904: 0xABE2, - 24458 - 11904: 0xABDE, - 24459 - 11904: 0xABDF, - 24460 - 11904: 0xABE1, - 24464 - 11904: 0xAE7D, - 24465 - 11904: 0xAE7C, - 24466 - 11904: 0xAE7B, - 24470 - 11904: 0xD54F, - 24471 - 11904: 0xB16F, - 24472 - 11904: 0xB172, - 24473 - 11904: 0xB170, - 24475 - 11904: 0xD54E, - 24476 - 11904: 0xB175, - 24478 - 11904: 0xB171, - 24479 - 11904: 0xD550, - 24480 - 11904: 0xB174, - 24481 - 11904: 0xB173, - 24484 - 11904: 0xFA61, - 24485 - 11904: 0xD8F6, - 24486 - 11904: 0xD8F5, - 24487 - 11904: 0xFC57, - 24488 - 11904: 0xB461, - 24489 - 11904: 0xB45F, - 24490 - 11904: 0xB460, - 24491 - 11904: 0xD8F7, - 24492 - 11904: 0xB74B, - 24493 - 11904: 0xDD64, - 24494 - 11904: 0xB74C, - 24495 - 11904: 0xDD63, - 24497 - 11904: 0x9B70, - 24498 - 11904: 0xE577, - 24501 - 11904: 0xBC78, - 24502 - 11904: 0xE1C1, - 24503 - 11904: 0xBC77, - 24505 - 11904: 0xB9FD, - 24506 - 11904: 0xA051, - 24507 - 11904: 0xECDE, - 24508 - 11904: 0xE975, - 24509 - 11904: 0xC0B2, - 24510 - 11904: 0xECDD, - 24511 - 11904: 0xF240, - 24512 - 11904: 0xF448, - 24513 - 11904: 0xF449, - 24514 - 11904: 0x8C7C, - 24515 - 11904: 0xA4DF, - 24516 - 11904: 0x8BCB, - 24517 - 11904: 0xA5B2, - 24521 - 11904: 0xC97B, - 24524 - 11904: 0xA7D2, - 24525 - 11904: 0xA7D4, - 24527 - 11904: 0xC9E2, - 24528 - 11904: 0xCAD8, - 24529 - 11904: 0xCAD7, - 24530 - 11904: 0xCAD6, - 24532 - 11904: 0xC9E1, - 24533 - 11904: 0xC9E0, - 24534 - 11904: 0xA6A4, - 24535 - 11904: 0xA7D3, - 24536 - 11904: 0xA7D1, - 24537 - 11904: 0xA6A3, - 24539 - 11904: 0x936E, - 24541 - 11904: 0xA9BD, - 24542 - 11904: 0xCC78, - 24543 - 11904: 0xFCD5, - 24544 - 11904: 0xA9BE, - 24545 - 11904: 0xCADD, - 24547 - 11904: 0xCADF, - 24548 - 11904: 0xCADE, - 24549 - 11904: 0xCC79, - 24552 - 11904: 0xCADA, - 24554 - 11904: 0xA7D8, - 24555 - 11904: 0xA7D6, - 24557 - 11904: 0xCAD9, - 24558 - 11904: 0xCADB, - 24559 - 11904: 0xCAE1, - 24561 - 11904: 0xA7D5, - 24563 - 11904: 0xCADC, - 24564 - 11904: 0xCAE5, - 24565 - 11904: 0xA9C0, - 24567 - 11904: 0xCAE2, - 24568 - 11904: 0xA7D7, - 24570 - 11904: 0xCAE0, - 24571 - 11904: 0xCAE3, - 24573 - 11904: 0xA9BF, - 24575 - 11904: 0xA9C1, - 24576 - 11904: 0xCAE4, - 24585 - 11904: 0xCCAF, - 24586 - 11904: 0xCCA2, - 24587 - 11904: 0xCC7E, - 24588 - 11904: 0xCCAE, - 24589 - 11904: 0xCCA9, - 24590 - 11904: 0xABE7, - 24591 - 11904: 0xA9C2, - 24592 - 11904: 0xCCAA, - 24593 - 11904: 0xCCAD, - 24594 - 11904: 0xABE3, - 24595 - 11904: 0xCCAC, - 24596 - 11904: 0xA9C3, - 24597 - 11904: 0xA9C8, - 24598 - 11904: 0xA9C6, - 24599 - 11904: 0xCCA3, - 24601 - 11904: 0xCC7C, - 24602 - 11904: 0xCCA5, - 24603 - 11904: 0xA9CD, - 24604 - 11904: 0xCCB0, - 24605 - 11904: 0xABE4, - 24606 - 11904: 0xCCA6, - 24608 - 11904: 0xABE5, - 24609 - 11904: 0xA9C9, - 24610 - 11904: 0xCCA8, - 24611 - 11904: 0xFCA9, - 24612 - 11904: 0xCECD, - 24613 - 11904: 0xABE6, - 24614 - 11904: 0xCC7B, - 24615 - 11904: 0xA9CA, - 24616 - 11904: 0xABE8, - 24617 - 11904: 0xA9CB, - 24618 - 11904: 0xA9C7, - 24619 - 11904: 0xA9CC, - 24620 - 11904: 0xCCA7, - 24621 - 11904: 0xCC7A, - 24622 - 11904: 0xCCAB, - 24623 - 11904: 0xA9C4, - 24625 - 11904: 0xFC61, - 24626 - 11904: 0xCC7D, - 24627 - 11904: 0xCCA4, - 24628 - 11904: 0xCCA1, - 24629 - 11904: 0xA9C5, - 24631 - 11904: 0xCEBF, - 24633 - 11904: 0xCEC0, - 24635 - 11904: 0x8966, - 24640 - 11904: 0xCECA, - 24641 - 11904: 0xD1A1, - 24642 - 11904: 0xCECB, - 24643 - 11904: 0xABEE, - 24644 - 11904: 0xCECE, - 24645 - 11904: 0xCEC4, - 24646 - 11904: 0xABED, - 24647 - 11904: 0xCEC6, - 24649 - 11904: 0xCEC7, - 24650 - 11904: 0xFACB, - 24652 - 11904: 0xCEC9, - 24653 - 11904: 0xABE9, - 24656 - 11904: 0xAEA3, - 24658 - 11904: 0xF9DA, - 24659 - 11904: 0xCEC5, - 24660 - 11904: 0xCEC1, - 24661 - 11904: 0xAEA4, - 24664 - 11904: 0xCECF, - 24665 - 11904: 0xAE7E, - 24666 - 11904: 0xD17D, - 24667 - 11904: 0xCEC8, - 24669 - 11904: 0xD17C, - 24670 - 11904: 0xCEC3, - 24671 - 11904: 0xCECC, - 24674 - 11904: 0xABEC, - 24675 - 11904: 0xAEA1, - 24676 - 11904: 0xABF2, - 24677 - 11904: 0xAEA2, - 24678 - 11904: 0xCED0, - 24679 - 11904: 0xD17E, - 24680 - 11904: 0xABEB, - 24681 - 11904: 0xAEA6, - 24682 - 11904: 0xABF1, - 24683 - 11904: 0xABF0, - 24684 - 11904: 0xABEF, - 24685 - 11904: 0xAEA5, - 24686 - 11904: 0xCED1, - 24687 - 11904: 0xAEA7, - 24688 - 11904: 0xABEA, - 24690 - 11904: 0xCEC2, - 24693 - 11904: 0x937A, - 24695 - 11904: 0xA0E0, - 24702 - 11904: 0x936B, - 24703 - 11904: 0xB176, - 24704 - 11904: 0xD1A4, - 24705 - 11904: 0xD1A6, - 24707 - 11904: 0xD1A8, - 24708 - 11904: 0xAEA8, - 24709 - 11904: 0xAEAE, - 24710 - 11904: 0xD553, - 24711 - 11904: 0xD1AC, - 24712 - 11904: 0xD1A3, - 24713 - 11904: 0xB178, - 24714 - 11904: 0xD551, - 24716 - 11904: 0xAEAD, - 24717 - 11904: 0xAEAB, - 24718 - 11904: 0xD1AE, - 24720 - 11904: 0xD552, - 24722 - 11904: 0xD1A5, - 24724 - 11904: 0xAEAC, - 24725 - 11904: 0xD1A9, - 24726 - 11904: 0xAEAF, - 24727 - 11904: 0xD1AB, - 24730 - 11904: 0xAEAA, - 24731 - 11904: 0xD1AA, - 24732 - 11904: 0xD1AD, - 24733 - 11904: 0xD1A7, - 24734 - 11904: 0xFC6B, - 24735 - 11904: 0xAEA9, - 24736 - 11904: 0xB179, - 24738 - 11904: 0xD1A2, - 24739 - 11904: 0xB177, - 24740 - 11904: 0xFC6C, - 24743 - 11904: 0x9468, - 24744 - 11904: 0xB17A, - 24752 - 11904: 0xD555, - 24753 - 11904: 0xD55E, - 24754 - 11904: 0xB464, - 24755 - 11904: 0xFC6D, - 24756 - 11904: 0xB17C, - 24757 - 11904: 0xB1A3, - 24758 - 11904: 0xB465, - 24759 - 11904: 0xD560, - 24760 - 11904: 0xB1AA, - 24761 - 11904: 0xD8F9, - 24762 - 11904: 0xD556, - 24763 - 11904: 0xB1A2, - 24764 - 11904: 0xB1A5, - 24765 - 11904: 0xB17E, - 24766 - 11904: 0xD554, - 24767 - 11904: 0xD562, - 24768 - 11904: 0xD565, - 24769 - 11904: 0xD949, - 24771 - 11904: 0xD563, - 24772 - 11904: 0xD8FD, - 24773 - 11904: 0xB1A1, - 24774 - 11904: 0xB1A8, - 24775 - 11904: 0xB1AC, - 24776 - 11904: 0xD55D, - 24777 - 11904: 0xD8F8, - 24778 - 11904: 0xD561, - 24779 - 11904: 0xB17B, - 24780 - 11904: 0xD8FA, - 24781 - 11904: 0xD564, - 24782 - 11904: 0xD8FC, - 24783 - 11904: 0xD559, - 24785 - 11904: 0xB462, - 24787 - 11904: 0xD557, - 24788 - 11904: 0xD558, - 24789 - 11904: 0xB1A7, - 24791 - 11904: 0x8D71, - 24792 - 11904: 0xB1A6, - 24793 - 11904: 0xD55B, - 24794 - 11904: 0xB1AB, - 24795 - 11904: 0xD55F, - 24796 - 11904: 0xB1A4, - 24797 - 11904: 0xD55C, - 24798 - 11904: 0xFD64, - 24799 - 11904: 0xB1A9, - 24800 - 11904: 0xB466, - 24801 - 11904: 0xB463, - 24802 - 11904: 0xD8FB, - 24803 - 11904: 0x99BA, - 24804 - 11904: 0xD55A, - 24806 - 11904: 0xB17D, - 24807 - 11904: 0x9AD0, - 24808 - 11904: 0x9A61, - 24809 - 11904: 0xA0E5, - 24816 - 11904: 0xB46B, - 24817 - 11904: 0xB46F, - 24818 - 11904: 0xD940, - 24819 - 11904: 0xB751, - 24820 - 11904: 0xB46D, - 24821 - 11904: 0xD944, - 24822 - 11904: 0xB471, - 24823 - 11904: 0xDD65, - 24824 - 11904: 0xD946, - 24825 - 11904: 0xB753, - 24826 - 11904: 0xB469, - 24827 - 11904: 0xB46C, - 24828 - 11904: 0xD947, - 24829 - 11904: 0xA05B, - 24830 - 11904: 0xD948, - 24831 - 11904: 0xD94E, - 24832 - 11904: 0xB473, - 24833 - 11904: 0xB754, - 24835 - 11904: 0xD94A, - 24836 - 11904: 0xD94F, - 24837 - 11904: 0xD943, - 24838 - 11904: 0xB75E, - 24839 - 11904: 0x96AC, - 24840 - 11904: 0xB755, - 24841 - 11904: 0xB472, - 24842 - 11904: 0xD941, - 24843 - 11904: 0xD950, - 24844 - 11904: 0x9740, - 24845 - 11904: 0xB75D, - 24846 - 11904: 0xB470, - 24847 - 11904: 0xB74E, - 24848 - 11904: 0xD94D, - 24850 - 11904: 0xB474, - 24851 - 11904: 0xD945, - 24852 - 11904: 0xD8FE, - 24853 - 11904: 0xB46A, - 24854 - 11904: 0xD942, - 24856 - 11904: 0xD94B, - 24857 - 11904: 0x9EF1, - 24858 - 11904: 0xB74D, - 24859 - 11904: 0xB752, - 24860 - 11904: 0xB467, - 24861 - 11904: 0xD94C, - 24863 - 11904: 0xB750, - 24866 - 11904: 0x8C4D, - 24867 - 11904: 0xB468, - 24871 - 11904: 0xB75C, - 24872 - 11904: 0xE1C3, - 24873 - 11904: 0xDD70, - 24875 - 11904: 0xDD68, - 24876 - 11904: 0xE1C2, - 24878 - 11904: 0xDD6C, - 24879 - 11904: 0xDD6E, - 24880 - 11904: 0x9F7E, - 24882 - 11904: 0xDD6B, - 24884 - 11904: 0xB75B, - 24886 - 11904: 0xDD6A, - 24887 - 11904: 0xB75F, - 24891 - 11904: 0xE1D2, - 24893 - 11904: 0x8D72, - 24894 - 11904: 0xB75A, - 24895 - 11904: 0xBA40, - 24896 - 11904: 0xDD71, - 24897 - 11904: 0xE1C4, - 24898 - 11904: 0xFC76, - 24900 - 11904: 0xB758, - 24901 - 11904: 0xDD69, - 24902 - 11904: 0xDD6D, - 24903 - 11904: 0xB9FE, - 24904 - 11904: 0xB74F, - 24905 - 11904: 0xDD66, - 24906 - 11904: 0xDD67, - 24907 - 11904: 0xBA41, - 24908 - 11904: 0xB757, - 24909 - 11904: 0xB759, - 24910 - 11904: 0xB756, - 24911 - 11904: 0xDD6F, - 24912 - 11904: 0x96A9, - 24914 - 11904: 0xE1C8, - 24915 - 11904: 0xE1C9, - 24916 - 11904: 0xE1CE, - 24917 - 11904: 0xBC7D, - 24918 - 11904: 0xE1D5, - 24920 - 11904: 0xBA47, - 24921 - 11904: 0xA06E, - 24922 - 11904: 0xBA46, - 24923 - 11904: 0xE1D0, - 24924 - 11904: 0xFCAA, - 24925 - 11904: 0xBC7C, - 24926 - 11904: 0xE1C5, - 24927 - 11904: 0xBA45, - 24928 - 11904: 0xFBCD, - 24929 - 11904: 0xE1D4, - 24930 - 11904: 0xBA43, - 24931 - 11904: 0xBA44, - 24932 - 11904: 0xFC74, - 24933 - 11904: 0xE1D1, - 24934 - 11904: 0xE5AA, - 24935 - 11904: 0xBC7A, - 24936 - 11904: 0xB46E, - 24938 - 11904: 0xE1D3, - 24939 - 11904: 0xBCA3, - 24940 - 11904: 0xE1CB, - 24942 - 11904: 0xBC7B, - 24943 - 11904: 0xA074, - 24944 - 11904: 0xBCA2, - 24945 - 11904: 0xE1C6, - 24946 - 11904: 0xE1CA, - 24947 - 11904: 0xE1C7, - 24948 - 11904: 0xE1CD, - 24949 - 11904: 0xBA48, - 24950 - 11904: 0xBC79, - 24951 - 11904: 0xBA42, - 24953 - 11904: 0xE57A, - 24954 - 11904: 0xE1CF, - 24956 - 11904: 0xBCA1, - 24957 - 11904: 0xA071, - 24958 - 11904: 0xBCA4, - 24960 - 11904: 0xE1CC, - 24961 - 11904: 0xFC79, - 24962 - 11904: 0xBC7E, - 24963 - 11904: 0xE579, - 24967 - 11904: 0xFC7C, - 24969 - 11904: 0xE57E, - 24970 - 11904: 0xBECE, - 24971 - 11904: 0xE578, - 24972 - 11904: 0xE9A3, - 24973 - 11904: 0xE5A9, - 24974 - 11904: 0xBCA8, - 24976 - 11904: 0xBCA6, - 24977 - 11904: 0xBECC, - 24978 - 11904: 0xE5A6, - 24979 - 11904: 0xE5A2, - 24980 - 11904: 0xBCAC, - 24981 - 11904: 0x9C50, - 24982 - 11904: 0xE978, - 24984 - 11904: 0x9379, - 24985 - 11904: 0x9378, - 24986 - 11904: 0xBCAA, - 24987 - 11904: 0xE5A1, - 24988 - 11904: 0xA0DD, - 24989 - 11904: 0xE976, - 24991 - 11904: 0xE5A5, - 24993 - 11904: 0xE5A8, - 24994 - 11904: 0xE57D, - 24996 - 11904: 0xBCAB, - 24999 - 11904: 0xBCA5, - 25000 - 11904: 0xE977, - 25001 - 11904: 0xBECD, - 25002 - 11904: 0xE5A7, - 25003 - 11904: 0xBCA7, - 25004 - 11904: 0xBCA9, - 25005 - 11904: 0xE5A4, - 25006 - 11904: 0xBCAD, - 25007 - 11904: 0xE5A3, - 25008 - 11904: 0xE57C, - 25009 - 11904: 0xE57B, - 25010 - 11904: 0xBECB, - 25011 - 11904: 0xE5AB, - 25012 - 11904: 0xE97A, - 25013 - 11904: 0xECE0, - 25014 - 11904: 0xBED0, - 25015 - 11904: 0x8D75, - 25016 - 11904: 0xE9A2, - 25017 - 11904: 0x8D76, - 25018 - 11904: 0xE97E, - 25020 - 11904: 0xECE1, - 25022 - 11904: 0xBED1, - 25023 - 11904: 0xE9A1, - 25024 - 11904: 0x9374, - 25025 - 11904: 0xE97C, - 25026 - 11904: 0xC0B4, - 25027 - 11904: 0xECDF, - 25029 - 11904: 0xE979, - 25030 - 11904: 0xE97B, - 25031 - 11904: 0xC0B5, - 25032 - 11904: 0xBED3, - 25033 - 11904: 0xC0B3, - 25034 - 11904: 0xBED2, - 25035 - 11904: 0xC0B7, - 25036 - 11904: 0xE97D, - 25037 - 11904: 0xBECF, - 25039 - 11904: 0x8D77, - 25040 - 11904: 0xFCA5, - 25043 - 11904: 0xFCA2, - 25046 - 11904: 0xEFCF, - 25048 - 11904: 0xEFC7, - 25050 - 11904: 0x90C3, - 25054 - 11904: 0xECE7, - 25055 - 11904: 0xEFC8, - 25056 - 11904: 0xECE3, - 25058 - 11904: 0xA079, - 25059 - 11904: 0xC256, - 25060 - 11904: 0xECE5, - 25061 - 11904: 0xECE4, - 25062 - 11904: 0xC0B6, - 25063 - 11904: 0xECE2, - 25064 - 11904: 0xECE6, - 25065 - 11904: 0xEFD0, - 25066 - 11904: 0xEFCC, - 25067 - 11904: 0xEFCE, - 25069 - 11904: 0xEFC9, - 25070 - 11904: 0xEFCA, - 25072 - 11904: 0xEFCD, - 25073 - 11904: 0xEFCB, - 25074 - 11904: 0xC367, - 25077 - 11904: 0xC36A, - 25078 - 11904: 0xC369, - 25079 - 11904: 0xC368, - 25080 - 11904: 0xC461, - 25081 - 11904: 0xF44A, - 25082 - 11904: 0xC462, - 25083 - 11904: 0xF241, - 25084 - 11904: 0xC4DF, - 25085 - 11904: 0xF5CC, - 25086 - 11904: 0xC4E0, - 25087 - 11904: 0xC574, - 25088 - 11904: 0xC5CA, - 25089 - 11904: 0xF7D9, - 25091 - 11904: 0xF7DA, - 25092 - 11904: 0xF7DB, - 25095 - 11904: 0xF9BA, - 25096 - 11904: 0xA4E0, - 25097 - 11904: 0xC97C, - 25098 - 11904: 0xA5B3, - 25100 - 11904: 0xA6A6, - 25101 - 11904: 0xA6A7, - 25102 - 11904: 0xA6A5, - 25104 - 11904: 0xA6A8, - 25105 - 11904: 0xA7DA, - 25106 - 11904: 0xA7D9, - 25108 - 11904: 0xCCB1, - 25109 - 11904: 0xA9CF, - 25110 - 11904: 0xA9CE, - 25113 - 11904: 0xD1AF, - 25114 - 11904: 0xB1AD, - 25115 - 11904: 0xB1AE, - 25119 - 11904: 0xB475, - 25120 - 11904: 0xDD72, - 25121 - 11904: 0xB760, - 25122 - 11904: 0xB761, - 25123 - 11904: 0xDD74, - 25124 - 11904: 0xDD76, - 25125 - 11904: 0xDD75, - 25127 - 11904: 0xE1D7, - 25129 - 11904: 0xE1D6, - 25130 - 11904: 0xBA49, - 25131 - 11904: 0xE1D8, - 25132 - 11904: 0x8D79, - 25133 - 11904: 0xE5AC, - 25134 - 11904: 0xBCAE, - 25136 - 11904: 0xBED4, - 25138 - 11904: 0xC0B8, - 25139 - 11904: 0xC257, - 25140 - 11904: 0xC0B9, - 25142 - 11904: 0xA4E1, - 25143 - 11904: 0x8BFC, - 25145 - 11904: 0xA076, - 25146 - 11904: 0xCAE6, - 25149 - 11904: 0xCCB2, - 25150 - 11904: 0xA9D1, - 25151 - 11904: 0xA9D0, - 25152 - 11904: 0xA9D2, - 25153 - 11904: 0xABF3, - 25154 - 11904: 0xCED2, - 25155 - 11904: 0xCED3, - 25158 - 11904: 0xD1B0, - 25159 - 11904: 0xAEB0, - 25160 - 11904: 0xB1AF, - 25161 - 11904: 0xB476, - 25162 - 11904: 0xD951, - 25163 - 11904: 0xA4E2, - 25164 - 11904: 0x8BCD, - 25165 - 11904: 0xA47E, - 25166 - 11904: 0xA4E3, - 25168 - 11904: 0xC97D, - 25169 - 11904: 0xA5B7, - 25170 - 11904: 0xA5B6, - 25171 - 11904: 0xA5B4, - 25172 - 11904: 0xA5B5, - 25176 - 11904: 0xA6AB, - 25177 - 11904: 0xC9E9, - 25178 - 11904: 0xC9EB, - 25179 - 11904: 0xA6AA, - 25180 - 11904: 0xC9E3, - 25182 - 11904: 0xC9E4, - 25184 - 11904: 0xC9EA, - 25185 - 11904: 0xC9E6, - 25186 - 11904: 0xC9E8, - 25187 - 11904: 0xA6A9, - 25188 - 11904: 0xC9E5, - 25189 - 11904: 0xC9EC, - 25190 - 11904: 0xC9E7, - 25192 - 11904: 0x9F5A, - 25197 - 11904: 0xA7E1, - 25198 - 11904: 0xA7EA, - 25199 - 11904: 0xA7E8, - 25200 - 11904: 0xCAF0, - 25201 - 11904: 0xCAED, - 25202 - 11904: 0xCAF5, - 25203 - 11904: 0xA7E6, - 25204 - 11904: 0xCAF6, - 25206 - 11904: 0xA7DF, - 25207 - 11904: 0xCAF3, - 25209 - 11904: 0xA7E5, - 25210 - 11904: 0xCAEF, - 25211 - 11904: 0xCAEE, - 25212 - 11904: 0xA7E3, - 25213 - 11904: 0xCAF4, - 25214 - 11904: 0xA7E4, - 25215 - 11904: 0xA9D3, - 25216 - 11904: 0xA7DE, - 25217 - 11904: 0xCAF1, - 25218 - 11904: 0x9FF4, - 25219 - 11904: 0xCAE7, - 25220 - 11904: 0xA7DB, - 25221 - 11904: 0x9FBA, - 25222 - 11904: 0xA7EE, - 25223 - 11904: 0xCAEC, - 25224 - 11904: 0xCAF2, - 25225 - 11904: 0xA7E0, - 25226 - 11904: 0xA7E2, - 25228 - 11904: 0xCAE8, - 25230 - 11904: 0xCAE9, - 25231 - 11904: 0xCAEA, - 25232 - 11904: 0x8D7A, - 25233 - 11904: 0xA7ED, - 25234 - 11904: 0xA7E7, - 25235 - 11904: 0xA7EC, - 25236 - 11904: 0xCAEB, - 25237 - 11904: 0xA7EB, - 25238 - 11904: 0xA7DD, - 25239 - 11904: 0xA7DC, - 25240 - 11904: 0xA7E9, - 25245 - 11904: 0x9E45, - 25252 - 11904: 0x93B0, - 25254 - 11904: 0xA075, - 25256 - 11904: 0xA9E1, - 25257 - 11904: 0xCCBE, - 25258 - 11904: 0xCCB7, - 25259 - 11904: 0xA9DC, - 25260 - 11904: 0xA9EF, - 25261 - 11904: 0xCCB3, - 25262 - 11904: 0xCCBA, - 25263 - 11904: 0xCCBC, - 25264 - 11904: 0xCCBF, - 25265 - 11904: 0xA9EA, - 25267 - 11904: 0xCCBB, - 25268 - 11904: 0xCCB4, - 25269 - 11904: 0xA9E8, - 25270 - 11904: 0xCCB8, - 25272 - 11904: 0xCCC0, - 25273 - 11904: 0xA9D9, - 25275 - 11904: 0xCCBD, - 25276 - 11904: 0xA9E3, - 25277 - 11904: 0xA9E2, - 25278 - 11904: 0xCCB6, - 25279 - 11904: 0xA9D7, - 25281 - 11904: 0x87DD, - 25282 - 11904: 0xA9D8, - 25283 - 11904: 0x9B46, - 25284 - 11904: 0xA9D6, - 25285 - 11904: 0xFCAE, - 25286 - 11904: 0xA9EE, - 25287 - 11904: 0xA9E6, - 25288 - 11904: 0xA9E0, - 25289 - 11904: 0xA9D4, - 25290 - 11904: 0xCCB9, - 25291 - 11904: 0xA9DF, - 25292 - 11904: 0xA9D5, - 25293 - 11904: 0xA9E7, - 25294 - 11904: 0xA9F0, - 25295 - 11904: 0xCED4, - 25296 - 11904: 0xA9E4, - 25297 - 11904: 0xCCB5, - 25298 - 11904: 0xA9DA, - 25299 - 11904: 0xA9DD, - 25300 - 11904: 0xA9DE, - 25301 - 11904: 0xFCB0, - 25302 - 11904: 0xA9EC, - 25303 - 11904: 0xA9ED, - 25304 - 11904: 0xA9EB, - 25305 - 11904: 0xA9E5, - 25306 - 11904: 0xA9E9, - 25307 - 11904: 0xA9DB, - 25308 - 11904: 0xABF4, - 25311 - 11904: 0xFA51, - 25317 - 11904: 0x8D7B, - 25323 - 11904: 0xCEDA, - 25324 - 11904: 0xAC41, - 25325 - 11904: 0xABF8, - 25326 - 11904: 0xABFA, - 25327 - 11904: 0xAC40, - 25328 - 11904: 0xCEE6, - 25329 - 11904: 0xABFD, - 25330 - 11904: 0xD1B1, - 25331 - 11904: 0xAEB1, - 25332 - 11904: 0xAC43, - 25333 - 11904: 0xCED7, - 25334 - 11904: 0xCEDF, - 25335 - 11904: 0xABFE, - 25336 - 11904: 0xCEDE, - 25337 - 11904: 0xCEDB, - 25338 - 11904: 0xCEE3, - 25339 - 11904: 0xCEE5, - 25340 - 11904: 0xABF7, - 25341 - 11904: 0xABFB, - 25342 - 11904: 0xAC42, - 25343 - 11904: 0xAEB3, - 25344 - 11904: 0xCEE0, - 25345 - 11904: 0xABF9, - 25346 - 11904: 0xAC45, - 25347 - 11904: 0xCED9, - 25351 - 11904: 0xABFC, - 25352 - 11904: 0xAEB2, - 25353 - 11904: 0xABF6, - 25355 - 11904: 0xCED6, - 25356 - 11904: 0xCEDD, - 25357 - 11904: 0xCED5, - 25358 - 11904: 0xCED8, - 25359 - 11904: 0xCEDC, - 25360 - 11904: 0xD1B2, - 25361 - 11904: 0xAC44, - 25363 - 11904: 0xCEE1, - 25364 - 11904: 0xCEE2, - 25365 - 11904: 0xCEE4, - 25366 - 11904: 0xABF5, - 25368 - 11904: 0x8D7C, - 25384 - 11904: 0xAEC1, - 25385 - 11904: 0xD1BE, - 25386 - 11904: 0xAEBF, - 25387 - 11904: 0xAEC0, - 25388 - 11904: 0xD1B4, - 25389 - 11904: 0xD1C4, - 25390 - 11904: 0x9ED6, - 25391 - 11904: 0xAEB6, - 25393 - 11904: 0x93AC, - 25394 - 11904: 0xD566, - 25395 - 11904: 0xD1C6, - 25396 - 11904: 0xD1C0, - 25397 - 11904: 0x9F5B, - 25398 - 11904: 0xD1B7, - 25399 - 11904: 0x93A9, - 25400 - 11904: 0xD1C9, - 25401 - 11904: 0xD1BA, - 25402 - 11904: 0xAEBC, - 25403 - 11904: 0xD57D, - 25404 - 11904: 0xD1BD, - 25405 - 11904: 0xAEBE, - 25406 - 11904: 0xAEB5, - 25408 - 11904: 0xD1CB, - 25409 - 11904: 0xD1BF, - 25410 - 11904: 0xAEB8, - 25411 - 11904: 0xD1B8, - 25412 - 11904: 0xD1B5, - 25413 - 11904: 0xD1B6, - 25414 - 11904: 0xAEB9, - 25415 - 11904: 0xD1C5, - 25416 - 11904: 0xD1CC, - 25417 - 11904: 0xAEBB, - 25418 - 11904: 0xD1BC, - 25419 - 11904: 0xD1BB, - 25420 - 11904: 0xAEC3, - 25421 - 11904: 0xAEC2, - 25422 - 11904: 0xAEB4, - 25423 - 11904: 0xAEBA, - 25424 - 11904: 0xAEBD, - 25425 - 11904: 0xD1C8, - 25428 - 11904: 0xD1C2, - 25429 - 11904: 0xAEB7, - 25430 - 11904: 0xD1B3, - 25431 - 11904: 0xD1CA, - 25432 - 11904: 0xD1C1, - 25433 - 11904: 0xD1C3, - 25434 - 11904: 0xD1C7, - 25444 - 11904: 0xA07C, - 25445 - 11904: 0xD567, - 25447 - 11904: 0xB1B7, - 25448 - 11904: 0xB1CB, - 25449 - 11904: 0xB1CA, - 25451 - 11904: 0xB1BF, - 25452 - 11904: 0xFCB2, - 25453 - 11904: 0xD579, - 25454 - 11904: 0xD575, - 25455 - 11904: 0xD572, - 25456 - 11904: 0xD5A6, - 25457 - 11904: 0xB1BA, - 25458 - 11904: 0xB1B2, - 25461 - 11904: 0xD577, - 25462 - 11904: 0xB4A8, - 25463 - 11904: 0xB1B6, - 25464 - 11904: 0xD5A1, - 25465 - 11904: 0x8AC1, - 25466 - 11904: 0xB1CC, - 25467 - 11904: 0xB1C9, - 25468 - 11904: 0xD57B, - 25469 - 11904: 0xD56A, - 25471 - 11904: 0x9FB4, - 25472 - 11904: 0xB1C8, - 25473 - 11904: 0xD5A3, - 25474 - 11904: 0xD569, - 25475 - 11904: 0xB1BD, - 25476 - 11904: 0xB1C1, - 25477 - 11904: 0xD5A2, - 25479 - 11904: 0xD573, - 25480 - 11904: 0xB1C2, - 25481 - 11904: 0xB1BC, - 25482 - 11904: 0xD568, - 25483 - 11904: 0xFCAC, - 25484 - 11904: 0xB478, - 25485 - 11904: 0xD5A5, - 25486 - 11904: 0xD571, - 25487 - 11904: 0xB1C7, - 25488 - 11904: 0xD574, - 25489 - 11904: 0xD5A4, - 25490 - 11904: 0xB1C6, - 25492 - 11904: 0xD952, - 25494 - 11904: 0xB1B3, - 25495 - 11904: 0xD56F, - 25496 - 11904: 0xB1B8, - 25497 - 11904: 0xB1C3, - 25499 - 11904: 0xB1BE, - 25500 - 11904: 0xD578, - 25501 - 11904: 0xD56E, - 25502 - 11904: 0xD56C, - 25503 - 11904: 0xD57E, - 25504 - 11904: 0xB1B0, - 25505 - 11904: 0xB1C4, - 25506 - 11904: 0xB1B4, - 25507 - 11904: 0xB477, - 25508 - 11904: 0xD57C, - 25509 - 11904: 0xB1B5, - 25511 - 11904: 0xB1B1, - 25512 - 11904: 0xB1C0, - 25513 - 11904: 0xB1BB, - 25514 - 11904: 0xB1B9, - 25515 - 11904: 0xD570, - 25516 - 11904: 0xB1C5, - 25517 - 11904: 0xD56D, - 25518 - 11904: 0xD57A, - 25519 - 11904: 0xD576, - 25520 - 11904: 0xD954, - 25521 - 11904: 0xD953, - 25529 - 11904: 0x9E4C, - 25533 - 11904: 0xD56B, - 25534 - 11904: 0xD964, - 25536 - 11904: 0xB47A, - 25537 - 11904: 0x8FC5, - 25538 - 11904: 0xD96A, - 25539 - 11904: 0xD959, - 25540 - 11904: 0xD967, - 25541 - 11904: 0xDD77, - 25542 - 11904: 0xB47D, - 25543 - 11904: 0xD96B, - 25544 - 11904: 0xD96E, - 25545 - 11904: 0xB47C, - 25546 - 11904: 0xD95C, - 25547 - 11904: 0xD96D, - 25548 - 11904: 0xD96C, - 25549 - 11904: 0xB47E, - 25550 - 11904: 0xD955, - 25551 - 11904: 0xB479, - 25552 - 11904: 0xB4A3, - 25553 - 11904: 0x93AD, - 25554 - 11904: 0xB4A1, - 25555 - 11904: 0xD969, - 25557 - 11904: 0xD95F, - 25558 - 11904: 0xB4A5, - 25559 - 11904: 0xD970, - 25560 - 11904: 0xD968, - 25561 - 11904: 0xD971, - 25562 - 11904: 0xB4AD, - 25563 - 11904: 0xB4AB, - 25564 - 11904: 0xD966, - 25565 - 11904: 0xD965, - 25566 - 11904: 0x9DC3, - 25567 - 11904: 0xD963, - 25568 - 11904: 0xD95D, - 25569 - 11904: 0xB4A4, - 25570 - 11904: 0x8DA2, - 25571 - 11904: 0xB4A2, - 25572 - 11904: 0xD1B9, - 25573 - 11904: 0xD956, - 25574 - 11904: 0x9D4A, - 25575 - 11904: 0xDDB7, - 25576 - 11904: 0xD957, - 25577 - 11904: 0xB47B, - 25578 - 11904: 0xB4AA, - 25579 - 11904: 0xDD79, - 25581 - 11904: 0xB4A6, - 25582 - 11904: 0xB4A7, - 25583 - 11904: 0xD958, - 25584 - 11904: 0xD96F, - 25585 - 11904: 0xDD78, - 25586 - 11904: 0xD960, - 25587 - 11904: 0xD95B, - 25588 - 11904: 0xB4A9, - 25589 - 11904: 0xD961, - 25590 - 11904: 0xD95E, - 25592 - 11904: 0xFCB6, - 25593 - 11904: 0xB4AE, - 25595 - 11904: 0x8DA3, - 25596 - 11904: 0x9E4B, - 25598 - 11904: 0x9E4D, - 25606 - 11904: 0xB770, - 25607 - 11904: 0x8DA4, - 25609 - 11904: 0xDD7C, - 25610 - 11904: 0xDDB1, - 25611 - 11904: 0xDDB6, - 25612 - 11904: 0xDDAA, - 25613 - 11904: 0xB76C, - 25614 - 11904: 0xDDBB, - 25615 - 11904: 0xB769, - 25616 - 11904: 0xDD7A, - 25618 - 11904: 0xDD7B, - 25619 - 11904: 0xB762, - 25620 - 11904: 0xB76B, - 25621 - 11904: 0xDDA4, - 25622 - 11904: 0xB76E, - 25623 - 11904: 0xB76F, - 25624 - 11904: 0xDDA5, - 25626 - 11904: 0xDDB2, - 25627 - 11904: 0xDDB8, - 25628 - 11904: 0xB76A, - 25630 - 11904: 0xB764, - 25631 - 11904: 0xDDA3, - 25632 - 11904: 0xDD7D, - 25633 - 11904: 0xDDBA, - 25634 - 11904: 0xDDA8, - 25635 - 11904: 0xDDA9, - 25636 - 11904: 0xDD7E, - 25637 - 11904: 0xDDB4, - 25638 - 11904: 0xDDAB, - 25639 - 11904: 0xDDB5, - 25640 - 11904: 0xDDAD, - 25642 - 11904: 0xB765, - 25643 - 11904: 0xE1D9, - 25644 - 11904: 0xB768, - 25645 - 11904: 0xB766, - 25646 - 11904: 0xDDB9, - 25647 - 11904: 0xDDB0, - 25648 - 11904: 0xDDAC, - 25650 - 11904: 0x8AFD, - 25651 - 11904: 0xDDA1, - 25652 - 11904: 0xBA53, - 25653 - 11904: 0xDDAF, - 25654 - 11904: 0xB76D, - 25655 - 11904: 0xDDA7, - 25656 - 11904: 0xFCB5, - 25657 - 11904: 0xDDA6, - 25658 - 11904: 0xFCC3, - 25659 - 11904: 0x93B2, - 25661 - 11904: 0xB767, - 25662 - 11904: 0xB763, - 25663 - 11904: 0xE1EE, - 25664 - 11904: 0xDDB3, - 25665 - 11904: 0xDDAE, - 25667 - 11904: 0xDDA2, - 25675 - 11904: 0xE1E9, - 25677 - 11904: 0xE1DA, - 25678 - 11904: 0xE1E5, - 25680 - 11904: 0xE1EC, - 25681 - 11904: 0xBA51, - 25682 - 11904: 0xB4AC, - 25683 - 11904: 0xE1EA, - 25684 - 11904: 0xBA4C, - 25688 - 11904: 0xBA4B, - 25689 - 11904: 0xE1F1, - 25690 - 11904: 0x8DA5, - 25691 - 11904: 0xE1DB, - 25692 - 11904: 0xE1E8, - 25693 - 11904: 0xE1DC, - 25694 - 11904: 0xE1E7, - 25695 - 11904: 0xBA4F, - 25696 - 11904: 0xE1EB, - 25697 - 11904: 0xD962, - 25701 - 11904: 0xE1F2, - 25702 - 11904: 0xE1E3, - 25703 - 11904: 0xBA52, - 25704 - 11904: 0xE5BA, - 25705 - 11904: 0xBCAF, - 25707 - 11904: 0xE1F0, - 25708 - 11904: 0xE1EF, - 25709 - 11904: 0xBA54, - 25710 - 11904: 0xE5AD, - 25711 - 11904: 0xBCB0, - 25712 - 11904: 0xE5AE, - 25713 - 11904: 0x93A1, - 25714 - 11904: 0xE1DF, - 25715 - 11904: 0xE1E0, - 25716 - 11904: 0xE1DD, - 25717 - 11904: 0xE1E2, - 25718 - 11904: 0xE1DE, - 25719 - 11904: 0xE1F3, - 25720 - 11904: 0xBA4E, - 25721 - 11904: 0xBCB1, - 25722 - 11904: 0xBA50, - 25723 - 11904: 0xBA55, - 25724 - 11904: 0x8AC6, - 25725 - 11904: 0xE1E1, - 25727 - 11904: 0xE1ED, - 25730 - 11904: 0xE1E6, - 25733 - 11904: 0xE5B1, - 25735 - 11904: 0xBA4A, - 25736 - 11904: 0xBCB4, - 25737 - 11904: 0xE9AA, - 25738 - 11904: 0xE5B6, - 25739 - 11904: 0xE5B5, - 25740 - 11904: 0xE5B7, - 25741 - 11904: 0x8A5B, - 25743 - 11904: 0xE5B4, - 25744 - 11904: 0xFCB9, - 25745 - 11904: 0x894D, - 25746 - 11904: 0xBCBB, - 25747 - 11904: 0xBCB8, - 25749 - 11904: 0xBCB9, - 25750 - 11904: 0xE5AF, - 25751 - 11904: 0xE5B2, - 25752 - 11904: 0xE5BC, - 25753 - 11904: 0xBCC1, - 25754 - 11904: 0xBCBF, - 25756 - 11904: 0xE5B3, - 25757 - 11904: 0xD95A, - 25758 - 11904: 0xBCB2, - 25759 - 11904: 0xE5B9, - 25760 - 11904: 0xE5B0, - 25762 - 11904: 0xBCC2, - 25763 - 11904: 0xE5B8, - 25764 - 11904: 0xBA4D, - 25765 - 11904: 0xBCB7, - 25766 - 11904: 0xE1E4, - 25769 - 11904: 0xBCBA, - 25771 - 11904: 0xBCBE, - 25772 - 11904: 0xBCC0, - 25773 - 11904: 0xBCBD, - 25774 - 11904: 0xBCBC, - 25775 - 11904: 0xFED4, - 25776 - 11904: 0xBCB6, - 25777 - 11904: 0xE5BB, - 25778 - 11904: 0xBCB3, - 25779 - 11904: 0xBCC3, - 25780 - 11904: 0x8A78, - 25782 - 11904: 0x93AB, - 25787 - 11904: 0xBED8, - 25788 - 11904: 0xBED9, - 25789 - 11904: 0xE9A9, - 25790 - 11904: 0xBEE2, - 25791 - 11904: 0xBEDF, - 25792 - 11904: 0x8DA7, - 25793 - 11904: 0xBED6, - 25794 - 11904: 0xBEDD, - 25795 - 11904: 0xE9AB, - 25796 - 11904: 0xBEDB, - 25797 - 11904: 0xBED5, - 25799 - 11904: 0xBEDC, - 25801 - 11904: 0xE9A8, - 25802 - 11904: 0xC0BB, - 25803 - 11904: 0xBED7, - 25805 - 11904: 0xBEDE, - 25806 - 11904: 0xC0BA, - 25807 - 11904: 0xE9A7, - 25808 - 11904: 0xE9A6, - 25810 - 11904: 0xBEE0, - 25811 - 11904: 0x9F45, - 25812 - 11904: 0xBEE1, - 25814 - 11904: 0xE9A5, - 25815 - 11904: 0xE9A4, - 25816 - 11904: 0xC0BC, - 25817 - 11904: 0xE9AE, - 25818 - 11904: 0xBEDA, - 25819 - 11904: 0xE9AC, - 25821 - 11904: 0x8A56, - 25824 - 11904: 0xC0BD, - 25825 - 11904: 0xFCBF, - 25826 - 11904: 0xC0C2, - 25827 - 11904: 0xECEA, - 25828 - 11904: 0xECEC, - 25829 - 11904: 0xFCC0, - 25830 - 11904: 0xC0BF, - 25831 - 11904: 0x8EE6, - 25832 - 11904: 0xECED, - 25833 - 11904: 0xECE9, - 25834 - 11904: 0x8AA4, - 25835 - 11904: 0xECEB, - 25836 - 11904: 0xC0C0, - 25837 - 11904: 0xC0C3, - 25839 - 11904: 0xECE8, - 25840 - 11904: 0xC0BE, - 25841 - 11904: 0xC0C1, - 25842 - 11904: 0xC259, - 25843 - 11904: 0xE9AD, - 25844 - 11904: 0xC258, - 25847 - 11904: 0xC25E, - 25848 - 11904: 0xEFD4, - 25850 - 11904: 0xC25C, - 25851 - 11904: 0xC25D, - 25852 - 11904: 0xEFD7, - 25853 - 11904: 0xEFD3, - 25854 - 11904: 0xC25A, - 25855 - 11904: 0xEFD1, - 25856 - 11904: 0xC36B, - 25857 - 11904: 0xEFD5, - 25859 - 11904: 0xEFD6, - 25860 - 11904: 0xEFD2, - 25862 - 11904: 0xC25B, - 25863 - 11904: 0xF242, - 25865 - 11904: 0xF245, - 25866 - 11904: 0x8943, - 25868 - 11904: 0xF246, - 25869 - 11904: 0xF244, - 25870 - 11904: 0xF247, - 25871 - 11904: 0xC36C, - 25872 - 11904: 0xF243, - 25873 - 11904: 0x93F3, - 25875 - 11904: 0xF44E, - 25876 - 11904: 0xC464, - 25877 - 11904: 0xF44D, - 25878 - 11904: 0xF44C, - 25879 - 11904: 0xF44B, - 25880 - 11904: 0xC463, - 25881 - 11904: 0xC465, - 25883 - 11904: 0xF5CD, - 25884 - 11904: 0xC4E2, - 25885 - 11904: 0xC4E1, - 25886 - 11904: 0xFCAB, - 25887 - 11904: 0x9EA2, - 25888 - 11904: 0xF6E1, - 25889 - 11904: 0xF6E0, - 25890 - 11904: 0xF6E3, - 25891 - 11904: 0xC5CB, - 25892 - 11904: 0xC575, - 25893 - 11904: 0xF7DD, - 25894 - 11904: 0xF6E2, - 25897 - 11904: 0xF7DC, - 25898 - 11904: 0xC5CD, - 25899 - 11904: 0xC5CC, - 25900 - 11904: 0xC5F3, - 25901 - 11904: 0xF8A9, - 25902 - 11904: 0xF8EF, - 25903 - 11904: 0xA4E4, - 25904 - 11904: 0x9DC7, - 25906 - 11904: 0xD972, - 25907 - 11904: 0xE9AF, - 25908 - 11904: 0xC6D2, - 25909 - 11904: 0x8BCE, - 25910 - 11904: 0xA6AC, - 25911 - 11904: 0xCAF7, - 25912 - 11904: 0xA7F1, - 25913 - 11904: 0xA7EF, - 25915 - 11904: 0xA7F0, - 25917 - 11904: 0xCCC1, - 25918 - 11904: 0xA9F1, - 25919 - 11904: 0xAC46, - 25921 - 11904: 0xCEE7, - 25923 - 11904: 0xCEE8, - 25925 - 11904: 0xAC47, - 25926 - 11904: 0xD1CE, - 25928 - 11904: 0xAEC4, - 25929 - 11904: 0xAEC5, - 25930 - 11904: 0xD1CD, - 25933 - 11904: 0xFCC5, - 25935 - 11904: 0xB1D3, - 25937 - 11904: 0xB1CF, - 25939 - 11904: 0xD5A7, - 25940 - 11904: 0xB1D6, - 25941 - 11904: 0xB1D5, - 25942 - 11904: 0xB1CE, - 25943 - 11904: 0xB1D1, - 25944 - 11904: 0xB1D4, - 25945 - 11904: 0xB1D0, - 25948 - 11904: 0xD976, - 25949 - 11904: 0xB1CD, - 25950 - 11904: 0xB4AF, - 25951 - 11904: 0xFCCB, - 25954 - 11904: 0xB4B1, - 25955 - 11904: 0xB4B2, - 25956 - 11904: 0xD975, - 25957 - 11904: 0xD978, - 25958 - 11904: 0xB4B0, - 25959 - 11904: 0xD973, - 25960 - 11904: 0xD977, - 25962 - 11904: 0xD974, - 25963 - 11904: 0x93B3, - 25964 - 11904: 0xB771, - 25965 - 11904: 0xFCCA, - 25967 - 11904: 0xDDBC, - 25970 - 11904: 0xBA56, - 25971 - 11904: 0xE1F4, - 25972 - 11904: 0xBEE3, - 25973 - 11904: 0xBCC4, - 25974 - 11904: 0xE5BD, - 25975 - 11904: 0xBCC5, - 25976 - 11904: 0xBCC6, - 25977 - 11904: 0xE5BF, - 25978 - 11904: 0xE5BE, - 25979 - 11904: 0xE5C0, - 25980 - 11904: 0xE9B1, - 25983 - 11904: 0xE9B0, - 25984 - 11904: 0xECEF, - 25985 - 11904: 0xECEE, - 25986 - 11904: 0xC0C4, - 25987 - 11904: 0xC0C5, - 25988 - 11904: 0xF248, - 25989 - 11904: 0xFCC9, - 25990 - 11904: 0x8DAC, - 25991 - 11904: 0xA4E5, - 25992 - 11904: 0xFBC6, - 25993 - 11904: 0x8967, - 25995 - 11904: 0x8C7E, - 25996 - 11904: 0xD979, - 26000 - 11904: 0xB4B4, - 26001 - 11904: 0xB4B3, - 26002 - 11904: 0xDDBD, - 26004 - 11904: 0xEFD8, - 26005 - 11904: 0xC4E3, - 26006 - 11904: 0xF7DE, - 26007 - 11904: 0xA4E6, - 26009 - 11904: 0xAEC6, - 26011 - 11904: 0xB1D8, - 26012 - 11904: 0xB1D7, - 26013 - 11904: 0xD97A, - 26014 - 11904: 0xD97B, - 26015 - 11904: 0xB772, - 26016 - 11904: 0xE1F5, - 26017 - 11904: 0xBA57, - 26018 - 11904: 0xE9B2, - 26020 - 11904: 0xA4E7, - 26021 - 11904: 0xA5B8, - 26023 - 11904: 0xA9F2, - 26024 - 11904: 0xCCC2, - 26026 - 11904: 0xCEE9, - 26027 - 11904: 0xAC48, - 26028 - 11904: 0xB1D9, - 26030 - 11904: 0xD97C, - 26031 - 11904: 0xB4B5, - 26032 - 11904: 0xB773, - 26034 - 11904: 0xE5C1, - 26035 - 11904: 0xE5C2, - 26037 - 11904: 0xFCCD, - 26038 - 11904: 0xECF0, - 26039 - 11904: 0xC25F, - 26040 - 11904: 0xF8F0, - 26041 - 11904: 0xA4E8, - 26043 - 11904: 0xCCC3, - 26044 - 11904: 0xA9F3, - 26045 - 11904: 0xAC49, - 26046 - 11904: 0x9CF3, - 26047 - 11904: 0xCEEA, - 26049 - 11904: 0xAEC7, - 26050 - 11904: 0xD1D2, - 26051 - 11904: 0xD1D0, - 26052 - 11904: 0xD1D1, - 26053 - 11904: 0xAEC8, - 26054 - 11904: 0xD1CF, - 26059 - 11904: 0xB1DB, - 26060 - 11904: 0xB1DC, - 26061 - 11904: 0xD5A8, - 26062 - 11904: 0xB1DD, - 26063 - 11904: 0xB1DA, - 26064 - 11904: 0xD97D, - 26065 - 11904: 0xFCD0, - 26066 - 11904: 0xD97E, - 26067 - 11904: 0xDDBE, - 26068 - 11904: 0x95BB, - 26070 - 11904: 0xBA59, - 26071 - 11904: 0xBA58, - 26074 - 11904: 0xECF1, - 26075 - 11904: 0xEFD9, - 26077 - 11904: 0xF24A, - 26078 - 11904: 0xF249, - 26079 - 11904: 0xF44F, - 26080 - 11904: 0xFCD3, - 26081 - 11904: 0xC95E, - 26082 - 11904: 0xAC4A, - 26083 - 11904: 0xFCD4, - 26085 - 11904: 0xA4E9, - 26086 - 11904: 0xA5B9, - 26088 - 11904: 0xA6AE, - 26089 - 11904: 0xA6AD, - 26092 - 11904: 0xA6AF, - 26093 - 11904: 0xA6B0, - 26094 - 11904: 0xC9EE, - 26095 - 11904: 0xC9ED, - 26096 - 11904: 0xCAF8, - 26097 - 11904: 0xA7F2, - 26098 - 11904: 0xCAFB, - 26099 - 11904: 0xCAFA, - 26100 - 11904: 0xCAF9, - 26101 - 11904: 0xCAFC, - 26106 - 11904: 0xA9F4, - 26107 - 11904: 0xCCC9, - 26108 - 11904: 0xCCC5, - 26109 - 11904: 0xCCCE, - 26111 - 11904: 0x8DAE, - 26112 - 11904: 0xA9FB, - 26114 - 11904: 0xA9F9, - 26115 - 11904: 0xCCCA, - 26116 - 11904: 0xCCC6, - 26117 - 11904: 0xCCCD, - 26118 - 11904: 0xA9F8, - 26119 - 11904: 0xAA40, - 26120 - 11904: 0xCCC8, - 26121 - 11904: 0xCCC4, - 26122 - 11904: 0xA9FE, - 26123 - 11904: 0xCCCB, - 26124 - 11904: 0xA9F7, - 26125 - 11904: 0xCCCC, - 26126 - 11904: 0xA9FA, - 26127 - 11904: 0xA9FC, - 26128 - 11904: 0xCCD0, - 26129 - 11904: 0xCCCF, - 26130 - 11904: 0xCCC7, - 26131 - 11904: 0xA9F6, - 26132 - 11904: 0xA9F5, - 26133 - 11904: 0xA9FD, - 26136 - 11904: 0xFCD7, - 26140 - 11904: 0xCEEF, - 26141 - 11904: 0xCEF5, - 26142 - 11904: 0x93DB, - 26143 - 11904: 0xAC50, - 26144 - 11904: 0xAC4D, - 26145 - 11904: 0xCEEC, - 26146 - 11904: 0xCEF1, - 26147 - 11904: 0xFE63, - 26148 - 11904: 0xAC53, - 26149 - 11904: 0xAC4B, - 26150 - 11904: 0xCEF0, - 26151 - 11904: 0xAC4E, - 26152 - 11904: 0xAC51, - 26155 - 11904: 0xCEF3, - 26157 - 11904: 0xAC4C, - 26158 - 11904: 0xCEF8, - 26159 - 11904: 0xAC4F, - 26160 - 11904: 0x93D5, - 26161 - 11904: 0xAC52, - 26162 - 11904: 0xCEED, - 26163 - 11904: 0xCEF2, - 26164 - 11904: 0xCEF6, - 26165 - 11904: 0xCEEE, - 26166 - 11904: 0xCEEB, - 26169 - 11904: 0xCEF7, - 26170 - 11904: 0xCEF4, - 26177 - 11904: 0xAED0, - 26178 - 11904: 0xAEC9, - 26179 - 11904: 0xAECC, - 26180 - 11904: 0xFCDA, - 26181 - 11904: 0xAECF, - 26183 - 11904: 0xD1D5, - 26184 - 11904: 0x9B71, - 26185 - 11904: 0xAECA, - 26186 - 11904: 0xD1D3, - 26187 - 11904: 0xFCDD, - 26188 - 11904: 0xAECE, - 26189 - 11904: 0x8764, - 26191 - 11904: 0xAECB, - 26193 - 11904: 0xD1D6, - 26194 - 11904: 0xAECD, - 26195 - 11904: 0x8DAF, - 26199 - 11904: 0xFAF2, - 26201 - 11904: 0xD5AC, - 26202 - 11904: 0xB1DF, - 26203 - 11904: 0xD5AB, - 26204 - 11904: 0xD5AD, - 26205 - 11904: 0xB1DE, - 26206 - 11904: 0xB1E3, - 26207 - 11904: 0xD1D4, - 26208 - 11904: 0x87B5, - 26209 - 11904: 0xD5AA, - 26210 - 11904: 0xD5AE, - 26211 - 11904: 0x93D8, - 26212 - 11904: 0xB1E0, - 26213 - 11904: 0xD5A9, - 26214 - 11904: 0xB1E2, - 26215 - 11904: 0xFCDF, - 26216 - 11904: 0xB1E1, - 26218 - 11904: 0xD9A7, - 26219 - 11904: 0x93D3, - 26220 - 11904: 0xD9A2, - 26222 - 11904: 0xB4B6, - 26223 - 11904: 0xB4BA, - 26224 - 11904: 0xB4B7, - 26225 - 11904: 0xD9A5, - 26226 - 11904: 0xD9A8, - 26227 - 11904: 0xFCE1, - 26228 - 11904: 0xFCE2, - 26230 - 11904: 0xB4B9, - 26231 - 11904: 0xB4BE, - 26232 - 11904: 0xDDC7, - 26233 - 11904: 0xD9A6, - 26234 - 11904: 0xB4BC, - 26235 - 11904: 0xD9A3, - 26236 - 11904: 0xD9A1, - 26237 - 11904: 0x8E76, - 26238 - 11904: 0xB4BD, - 26240 - 11904: 0xD9A4, - 26244 - 11904: 0xB779, - 26245 - 11904: 0xFC62, - 26246 - 11904: 0xDDBF, - 26247 - 11904: 0xB776, - 26248 - 11904: 0xB777, - 26249 - 11904: 0xB775, - 26250 - 11904: 0xDDC4, - 26251 - 11904: 0xDDC3, - 26252 - 11904: 0xDDC0, - 26253 - 11904: 0xB77B, - 26254 - 11904: 0x93D1, - 26256 - 11904: 0xDDC2, - 26257 - 11904: 0xB4BB, - 26258 - 11904: 0x8DB1, - 26260 - 11904: 0xDDC6, - 26261 - 11904: 0xDDC1, - 26262 - 11904: 0xB778, - 26263 - 11904: 0xB774, - 26264 - 11904: 0xB77A, - 26265 - 11904: 0xDDC5, - 26266 - 11904: 0x9859, - 26269 - 11904: 0xBA5C, - 26271 - 11904: 0xE1F8, - 26272 - 11904: 0xE1F7, - 26273 - 11904: 0xE1F6, - 26274 - 11904: 0xBA5A, - 26276 - 11904: 0xFB52, - 26280 - 11904: 0xBA5B, - 26281 - 11904: 0xE5C5, - 26282 - 11904: 0xE5C8, - 26283 - 11904: 0xBCC8, - 26285 - 11904: 0xFB53, - 26286 - 11904: 0xBCC7, - 26287 - 11904: 0xE5C9, - 26288 - 11904: 0xE5C4, - 26289 - 11904: 0xBCCA, - 26290 - 11904: 0xE5C6, - 26291 - 11904: 0xFB4D, - 26292 - 11904: 0xBCC9, - 26293 - 11904: 0xE5C3, - 26294 - 11904: 0x9CBF, - 26295 - 11904: 0xE5C7, - 26296 - 11904: 0xBEE9, - 26297 - 11904: 0xBEE6, - 26298 - 11904: 0xE9BB, - 26299 - 11904: 0xE9BA, - 26301 - 11904: 0xE9B9, - 26302 - 11904: 0xE9B4, - 26303 - 11904: 0x9B72, - 26304 - 11904: 0xE9B5, - 26308 - 11904: 0xBEE7, - 26310 - 11904: 0xBEE4, - 26311 - 11904: 0xBEE8, - 26312 - 11904: 0xE9B3, - 26313 - 11904: 0xBEE5, - 26314 - 11904: 0xE9B6, - 26315 - 11904: 0xE9B7, - 26316 - 11904: 0xE9BC, - 26317 - 11904: 0xFB50, - 26318 - 11904: 0x93BE, - 26319 - 11904: 0xE9B8, - 26322 - 11904: 0xECF2, - 26326 - 11904: 0xC0C7, - 26328 - 11904: 0xEFDC, - 26329 - 11904: 0xC0C6, - 26330 - 11904: 0xEFDA, - 26331 - 11904: 0xEFDB, - 26332 - 11904: 0xC260, - 26333 - 11904: 0xC36E, - 26334 - 11904: 0xF24B, - 26336 - 11904: 0xC36D, - 26339 - 11904: 0xF451, - 26340 - 11904: 0xF452, - 26342 - 11904: 0xC466, - 26343 - 11904: 0x8CDB, - 26344 - 11904: 0xF450, - 26345 - 11904: 0xC4E4, - 26347 - 11904: 0xF7DF, - 26348 - 11904: 0xC5CE, - 26349 - 11904: 0xF8AA, - 26350 - 11904: 0xF8AB, - 26352 - 11904: 0xA4EA, - 26353 - 11904: 0x9DF1, - 26354 - 11904: 0xA6B1, - 26355 - 11904: 0xA6B2, - 26356 - 11904: 0xA7F3, - 26358 - 11904: 0xCCD1, - 26359 - 11904: 0xAC54, - 26360 - 11904: 0xAED1, - 26361 - 11904: 0xB1E4, - 26364 - 11904: 0xB0D2, - 26366 - 11904: 0xB4BF, - 26367 - 11904: 0xB4C0, - 26368 - 11904: 0xB3CC, - 26369 - 11904: 0xD9A9, - 26370 - 11904: 0xFCEB, - 26371 - 11904: 0xB77C, - 26372 - 11904: 0xE1FA, - 26373 - 11904: 0xE1F9, - 26376 - 11904: 0xA4EB, - 26377 - 11904: 0xA6B3, - 26378 - 11904: 0xCCD2, - 26379 - 11904: 0xAA42, - 26380 - 11904: 0xA0BB, - 26381 - 11904: 0xAA41, - 26382 - 11904: 0x9B7E, - 26383 - 11904: 0xCEF9, - 26384 - 11904: 0xCEFA, - 26386 - 11904: 0xD1D7, - 26387 - 11904: 0xD1D8, - 26388 - 11904: 0xAED2, - 26389 - 11904: 0xAED3, - 26390 - 11904: 0x8DB3, - 26391 - 11904: 0xAED4, - 26392 - 11904: 0xD5AF, - 26393 - 11904: 0x8C52, - 26395 - 11904: 0xB1E6, - 26397 - 11904: 0xB4C2, - 26398 - 11904: 0x9AE8, - 26399 - 11904: 0xB4C1, - 26400 - 11904: 0xDDC8, - 26401 - 11904: 0xDF7A, - 26402 - 11904: 0xE1FB, - 26403 - 11904: 0xE9BD, - 26405 - 11904: 0x8EDC, - 26406 - 11904: 0xC261, - 26407 - 11904: 0xC467, - 26408 - 11904: 0xA4EC, - 26410 - 11904: 0xA5BC, - 26411 - 11904: 0xA5BD, - 26412 - 11904: 0xA5BB, - 26413 - 11904: 0xA5BE, - 26414 - 11904: 0xA5BA, - 26417 - 11904: 0xA6B6, - 26419 - 11904: 0xC9F6, - 26420 - 11904: 0xA6B5, - 26421 - 11904: 0xA6B7, - 26422 - 11904: 0x9CF9, - 26424 - 11904: 0xC9F1, - 26425 - 11904: 0xC9F0, - 26426 - 11904: 0xC9F3, - 26427 - 11904: 0xC9F2, - 26428 - 11904: 0xC9F5, - 26429 - 11904: 0xA6B4, - 26430 - 11904: 0xC9EF, - 26431 - 11904: 0xC9F4, - 26436 - 11904: 0xFA50, - 26437 - 11904: 0xCAFD, - 26438 - 11904: 0xA7FD, - 26439 - 11904: 0xCAFE, - 26440 - 11904: 0xCB43, - 26441 - 11904: 0xA7FC, - 26443 - 11904: 0xCB47, - 26444 - 11904: 0xCB42, - 26445 - 11904: 0xCB45, - 26446 - 11904: 0xA7F5, - 26447 - 11904: 0xA7F6, - 26448 - 11904: 0xA7F7, - 26449 - 11904: 0xA7F8, - 26451 - 11904: 0xA840, - 26453 - 11904: 0xCB41, - 26454 - 11904: 0xA7FA, - 26455 - 11904: 0xA841, - 26457 - 11904: 0xCB40, - 26458 - 11904: 0xCB46, - 26460 - 11904: 0xA7F9, - 26461 - 11904: 0xCB44, - 26462 - 11904: 0xFCF1, - 26463 - 11904: 0xA7F4, - 26464 - 11904: 0xA7FE, - 26465 - 11904: 0x98E7, - 26466 - 11904: 0xFCF3, - 26471 - 11904: 0xFCF2, - 26474 - 11904: 0xAA57, - 26475 - 11904: 0x8CCA, - 26476 - 11904: 0xCCD4, - 26477 - 11904: 0xAA43, - 26478 - 11904: 0x8775, - 26479 - 11904: 0xAA4D, - 26480 - 11904: 0xAA4E, - 26481 - 11904: 0xAA46, - 26482 - 11904: 0xAA58, - 26483 - 11904: 0xAA48, - 26484 - 11904: 0xCCDC, - 26485 - 11904: 0xAA53, - 26486 - 11904: 0xCCD7, - 26487 - 11904: 0xAA49, - 26488 - 11904: 0xCCE6, - 26489 - 11904: 0xCCE7, - 26490 - 11904: 0xCCDF, - 26491 - 11904: 0xCCD8, - 26492 - 11904: 0xAA56, - 26493 - 11904: 0xCCE4, - 26494 - 11904: 0xAA51, - 26495 - 11904: 0xAA4F, - 26497 - 11904: 0xCCE5, - 26498 - 11904: 0x87BA, - 26499 - 11904: 0xCCE3, - 26500 - 11904: 0xCCDB, - 26501 - 11904: 0xCCD3, - 26502 - 11904: 0xCCDA, - 26503 - 11904: 0xAA4A, - 26505 - 11904: 0xAA50, - 26507 - 11904: 0xAA44, - 26508 - 11904: 0xCCDE, - 26509 - 11904: 0xCCDD, - 26510 - 11904: 0xCCD5, - 26511 - 11904: 0x93E5, - 26512 - 11904: 0xAA52, - 26513 - 11904: 0xCCE1, - 26514 - 11904: 0xCCD6, - 26515 - 11904: 0xAA55, - 26516 - 11904: 0xCCE8, - 26517 - 11904: 0xAA45, - 26519 - 11904: 0xAA4C, - 26520 - 11904: 0xCCD9, - 26521 - 11904: 0xCCE2, - 26522 - 11904: 0xAA54, - 26524 - 11904: 0xAA47, - 26525 - 11904: 0xAA4B, - 26527 - 11904: 0xCCE0, - 26528 - 11904: 0x9A59, - 26532 - 11904: 0x8DB5, - 26540 - 11904: 0xFD4D, - 26542 - 11904: 0xCF5B, - 26543 - 11904: 0xAC5C, - 26544 - 11904: 0xAC69, - 26545 - 11904: 0xFD5E, - 26546 - 11904: 0xCF56, - 26547 - 11904: 0xCF4C, - 26548 - 11904: 0xAC62, - 26549 - 11904: 0xCF4A, - 26550 - 11904: 0xAC5B, - 26551 - 11904: 0xCF45, - 26552 - 11904: 0xAC65, - 26553 - 11904: 0xCF52, - 26554 - 11904: 0xCEFE, - 26555 - 11904: 0xCF41, - 26559 - 11904: 0x8F7D, - 26560 - 11904: 0xCF44, - 26561 - 11904: 0xCEFB, - 26562 - 11904: 0xCF51, - 26563 - 11904: 0xCF61, - 26564 - 11904: 0xAC60, - 26565 - 11904: 0xCF46, - 26566 - 11904: 0xCF58, - 26568 - 11904: 0xCEFD, - 26569 - 11904: 0xCF5F, - 26570 - 11904: 0xCF60, - 26571 - 11904: 0xCF63, - 26572 - 11904: 0xCF5A, - 26573 - 11904: 0xCF4B, - 26574 - 11904: 0xCF53, - 26575 - 11904: 0xAC66, - 26576 - 11904: 0xAC59, - 26577 - 11904: 0xAC61, - 26578 - 11904: 0xAC6D, - 26579 - 11904: 0xAC56, - 26580 - 11904: 0xAC58, - 26582 - 11904: 0x9547, - 26583 - 11904: 0xFCF6, - 26584 - 11904: 0xCF43, - 26585 - 11904: 0xAC6A, - 26586 - 11904: 0xAC63, - 26587 - 11904: 0xCF5D, - 26588 - 11904: 0xCF40, - 26589 - 11904: 0xAC6C, - 26590 - 11904: 0xAC67, - 26591 - 11904: 0xCF49, - 26594 - 11904: 0xAC6B, - 26595 - 11904: 0xCF50, - 26596 - 11904: 0xCF48, - 26597 - 11904: 0xAC64, - 26598 - 11904: 0xCF5C, - 26599 - 11904: 0xCF54, - 26601 - 11904: 0xAC5E, - 26602 - 11904: 0xCF62, - 26603 - 11904: 0xCF47, - 26604 - 11904: 0xAC5A, - 26605 - 11904: 0xCF59, - 26606 - 11904: 0xCF4F, - 26607 - 11904: 0xAC5F, - 26608 - 11904: 0xCF55, - 26609 - 11904: 0xAC57, - 26610 - 11904: 0xCEFC, - 26611 - 11904: 0xAC68, - 26612 - 11904: 0xAEE3, - 26613 - 11904: 0xAC5D, - 26614 - 11904: 0xCF4E, - 26615 - 11904: 0xCF4D, - 26616 - 11904: 0xCF42, - 26617 - 11904: 0x9250, - 26618 - 11904: 0xCF5E, - 26620 - 11904: 0xCF57, - 26622 - 11904: 0x8968, - 26623 - 11904: 0xAC55, - 26624 - 11904: 0x8DB6, - 26625 - 11904: 0xFCFB, - 26626 - 11904: 0xA07D, - 26627 - 11904: 0x98FC, - 26628 - 11904: 0x8969, - 26637 - 11904: 0xFE4F, - 26640 - 11904: 0x9256, - 26642 - 11904: 0xD1EC, - 26643 - 11904: 0xAEEA, - 26644 - 11904: 0xD1ED, - 26646 - 11904: 0xD1E1, - 26647 - 11904: 0xAEDF, - 26648 - 11904: 0xAEEB, - 26650 - 11904: 0xD1DA, - 26651 - 11904: 0xFAC9, - 26652 - 11904: 0xD1E3, - 26653 - 11904: 0xD1EB, - 26654 - 11904: 0x93E8, - 26655 - 11904: 0xD1D9, - 26656 - 11904: 0xD1F4, - 26657 - 11904: 0xAED5, - 26658 - 11904: 0xFCF8, - 26661 - 11904: 0xD1F3, - 26662 - 11904: 0xD1EE, - 26664 - 11904: 0xD1EF, - 26665 - 11904: 0xAEDD, - 26666 - 11904: 0xAEE8, - 26667 - 11904: 0xD1E5, - 26669 - 11904: 0xD1E6, - 26670 - 11904: 0xD1F0, - 26671 - 11904: 0xD1E7, - 26673 - 11904: 0xD1E2, - 26674 - 11904: 0xD1DC, - 26675 - 11904: 0xD1DD, - 26676 - 11904: 0xD1EA, - 26677 - 11904: 0xD1E4, - 26678 - 11904: 0x9CE3, - 26679 - 11904: 0xFDA9, - 26680 - 11904: 0xAED6, - 26681 - 11904: 0xAEDA, - 26682 - 11904: 0xD1F2, - 26683 - 11904: 0xD1DE, - 26684 - 11904: 0xAEE6, - 26685 - 11904: 0xAEE2, - 26686 - 11904: 0xFC44, - 26688 - 11904: 0xAEE5, - 26689 - 11904: 0xAEEC, - 26690 - 11904: 0xAEDB, - 26691 - 11904: 0xAEE7, - 26692 - 11904: 0xD1E9, - 26693 - 11904: 0xAEE9, - 26694 - 11904: 0xAED8, - 26695 - 11904: 0x9640, - 26696 - 11904: 0xAED7, - 26697 - 11904: 0xD1DB, - 26698 - 11904: 0x8DB8, - 26699 - 11904: 0xD1DF, - 26700 - 11904: 0xAEE0, - 26701 - 11904: 0xD1F1, - 26702 - 11904: 0xD1E8, - 26703 - 11904: 0xD1E0, - 26704 - 11904: 0xAEE4, - 26705 - 11904: 0xAEE1, - 26707 - 11904: 0xAED9, - 26708 - 11904: 0xAEDC, - 26709 - 11904: 0x9B4A, - 26710 - 11904: 0x8FB9, - 26717 - 11904: 0xFCFE, - 26725 - 11904: 0x896A, - 26731 - 11904: 0xD5C4, - 26733 - 11904: 0xD5B4, - 26734 - 11904: 0xD5B5, - 26735 - 11904: 0xD5B9, - 26737 - 11904: 0xD5C8, - 26738 - 11904: 0xD5C5, - 26740 - 11904: 0xD5BE, - 26741 - 11904: 0xD5BD, - 26742 - 11904: 0xB1ED, - 26743 - 11904: 0xD5C1, - 26744 - 11904: 0xD5D0, - 26745 - 11904: 0xD5B0, - 26747 - 11904: 0xD5D1, - 26748 - 11904: 0xD5C3, - 26749 - 11904: 0xD5D5, - 26750 - 11904: 0xD5C9, - 26751 - 11904: 0xB1EC, - 26752 - 11904: 0xD5C7, - 26753 - 11904: 0xB1E7, - 26754 - 11904: 0xB1FC, - 26755 - 11904: 0xB1F2, - 26756 - 11904: 0x8DB9, - 26757 - 11904: 0xB1F6, - 26758 - 11904: 0xB1F5, - 26759 - 11904: 0xD5B1, - 26760 - 11904: 0x917E, - 26761 - 11904: 0xD5CE, - 26762 - 11904: 0xD5D4, - 26763 - 11904: 0xD5CC, - 26764 - 11904: 0xD5D3, - 26767 - 11904: 0xD5C0, - 26768 - 11904: 0xD5B2, - 26769 - 11904: 0xD5D2, - 26770 - 11904: 0xD5C2, - 26771 - 11904: 0xB1EA, - 26772 - 11904: 0xB1F7, - 26774 - 11904: 0xD5CB, - 26775 - 11904: 0xB1F0, - 26776 - 11904: 0x93F4, - 26779 - 11904: 0xD5CA, - 26780 - 11904: 0xD5B3, - 26781 - 11904: 0xB1F8, - 26783 - 11904: 0xB1FA, - 26784 - 11904: 0xD5CD, - 26785 - 11904: 0xB1FB, - 26786 - 11904: 0xB1E9, - 26787 - 11904: 0xD5BA, - 26788 - 11904: 0xD5CF, - 26790 - 11904: 0xFB7C, - 26791 - 11904: 0xB1EF, - 26792 - 11904: 0xB1F9, - 26793 - 11904: 0xD5BC, - 26794 - 11904: 0xD5C6, - 26795 - 11904: 0xD5B7, - 26796 - 11904: 0xD5BB, - 26797 - 11904: 0xB1F4, - 26798 - 11904: 0xD5B6, - 26799 - 11904: 0xB1E8, - 26800 - 11904: 0xB1F1, - 26801 - 11904: 0xB1EE, - 26802 - 11904: 0xD5BF, - 26803 - 11904: 0xAEDE, - 26804 - 11904: 0xD9C0, - 26805 - 11904: 0xB1EB, - 26806 - 11904: 0x93E7, - 26809 - 11904: 0x97EF, - 26813 - 11904: 0xFE4A, - 26819 - 11904: 0xFD45, - 26820 - 11904: 0xB1F3, - 26821 - 11904: 0x96A5, - 26822 - 11904: 0xD9C3, - 26823 - 11904: 0xD9D9, - 26824 - 11904: 0xD9CE, - 26825 - 11904: 0xB4D6, - 26826 - 11904: 0xFEE0, - 26827 - 11904: 0xB4D1, - 26828 - 11904: 0xD9BD, - 26829 - 11904: 0xB4D2, - 26830 - 11904: 0xD9CD, - 26832 - 11904: 0xD9C6, - 26833 - 11904: 0xD9D3, - 26834 - 11904: 0xB4CE, - 26835 - 11904: 0xD9AB, - 26836 - 11904: 0xD9D5, - 26837 - 11904: 0xB4C4, - 26838 - 11904: 0xD9B3, - 26839 - 11904: 0xB4C7, - 26840 - 11904: 0xB4C6, - 26842 - 11904: 0xB4D7, - 26844 - 11904: 0xD9AD, - 26845 - 11904: 0xD9CF, - 26846 - 11904: 0xD9D0, - 26847 - 11904: 0xB4C9, - 26848 - 11904: 0xB4C5, - 26849 - 11904: 0xD9BB, - 26851 - 11904: 0xB4D0, - 26852 - 11904: 0xD9B6, - 26854 - 11904: 0xD9D1, - 26855 - 11904: 0xB4CC, - 26856 - 11904: 0xD9C9, - 26857 - 11904: 0xD9D6, - 26858 - 11904: 0xD9B0, - 26859 - 11904: 0xD9B5, - 26860 - 11904: 0xD9AF, - 26862 - 11904: 0xB4CB, - 26863 - 11904: 0xD9C2, - 26864 - 11904: 0xDDDE, - 26865 - 11904: 0xD9B1, - 26866 - 11904: 0xB4CF, - 26867 - 11904: 0xD9BA, - 26868 - 11904: 0xD9D2, - 26869 - 11904: 0xB4CA, - 26870 - 11904: 0xD9B7, - 26871 - 11904: 0xD9B4, - 26872 - 11904: 0xD9C5, - 26873 - 11904: 0xB4CD, - 26874 - 11904: 0xB4C3, - 26875 - 11904: 0xB4D9, - 26876 - 11904: 0xD9C8, - 26877 - 11904: 0xD9C7, - 26880 - 11904: 0xFD48, - 26881 - 11904: 0xFD47, - 26882 - 11904: 0xFEF2, - 26883 - 11904: 0xFE6A, - 26884 - 11904: 0xD9AC, - 26885 - 11904: 0xB4C8, - 26886 - 11904: 0xD9D4, - 26887 - 11904: 0xD9BC, - 26888 - 11904: 0xD9BE, - 26889 - 11904: 0x8DBD, - 26890 - 11904: 0xD9CB, - 26891 - 11904: 0xD9CA, - 26892 - 11904: 0xD9AA, - 26893 - 11904: 0xB4D3, - 26894 - 11904: 0xB4D5, - 26895 - 11904: 0xD9B2, - 26896 - 11904: 0xD9B9, - 26897 - 11904: 0xD9C1, - 26898 - 11904: 0xB4D4, - 26899 - 11904: 0xD9B8, - 26900 - 11904: 0xD9C4, - 26901 - 11904: 0xD9D7, - 26903 - 11904: 0xD9CC, - 26904 - 11904: 0x9BA1, - 26905 - 11904: 0x8CA2, - 26906 - 11904: 0x9AB7, - 26907 - 11904: 0x8EFC, - 26917 - 11904: 0xD9D8, - 26922 - 11904: 0xD9AE, - 26924 - 11904: 0x9FA1, - 26927 - 11904: 0xDDF2, - 26928 - 11904: 0xB7A6, - 26930 - 11904: 0xDDF0, - 26931 - 11904: 0xDDDB, - 26932 - 11904: 0xDDE0, - 26933 - 11904: 0xDDD9, - 26934 - 11904: 0xFD51, - 26935 - 11904: 0xDDEC, - 26936 - 11904: 0xDDCB, - 26937 - 11904: 0xDDD2, - 26939 - 11904: 0xDDEA, - 26940 - 11904: 0xDDF4, - 26941 - 11904: 0xDDDC, - 26942 - 11904: 0xFAAD, - 26943 - 11904: 0xDDCF, - 26944 - 11904: 0xDDE2, - 26945 - 11904: 0xDDE7, - 26946 - 11904: 0xDDD3, - 26947 - 11904: 0x8DBE, - 26948 - 11904: 0xDDE4, - 26949 - 11904: 0xDDD0, - 26950 - 11904: 0x89A4, - 26952 - 11904: 0xDDD7, - 26953 - 11904: 0xDDD8, - 26954 - 11904: 0xB7A8, - 26955 - 11904: 0xDDEB, - 26956 - 11904: 0xDDE9, - 26958 - 11904: 0xDDCC, - 26959 - 11904: 0xDDEE, - 26961 - 11904: 0xDDEF, - 26962 - 11904: 0xDDF1, - 26963 - 11904: 0xB7AC, - 26964 - 11904: 0xB7A4, - 26965 - 11904: 0x9AD9, - 26966 - 11904: 0xD5B8, - 26967 - 11904: 0xDDD4, - 26968 - 11904: 0xDDE6, - 26969 - 11904: 0xDDD5, - 26970 - 11904: 0xB7A1, - 26971 - 11904: 0xB7B1, - 26972 - 11904: 0xDDED, - 26973 - 11904: 0xB7AF, - 26974 - 11904: 0xB7AB, - 26975 - 11904: 0xDDCA, - 26976 - 11904: 0xB7A3, - 26977 - 11904: 0xFD4E, - 26978 - 11904: 0xDDCD, - 26979 - 11904: 0xB7B0, - 26980 - 11904: 0x8DC0, - 26981 - 11904: 0xDDDD, - 26982 - 11904: 0xDDC9, - 26983 - 11904: 0x97F0, - 26984 - 11904: 0xB7A9, - 26985 - 11904: 0xDDE1, - 26986 - 11904: 0xDDD1, - 26987 - 11904: 0xB7AA, - 26988 - 11904: 0xDDDA, - 26989 - 11904: 0xB77E, - 26990 - 11904: 0xB4D8, - 26991 - 11904: 0xDDE3, - 26992 - 11904: 0xD9BF, - 26993 - 11904: 0xDDCE, - 26994 - 11904: 0x93B4, - 26995 - 11904: 0xFD44, - 26996 - 11904: 0xDDE8, - 26997 - 11904: 0xB7A5, - 26998 - 11904: 0xDDE5, - 26999 - 11904: 0xB7A2, - 27000 - 11904: 0xDDDF, - 27001 - 11904: 0xB7AD, - 27002 - 11904: 0xDDD6, - 27003 - 11904: 0xDDF3, - 27008 - 11904: 0x9FA7, - 27010 - 11904: 0xB7A7, - 27011 - 11904: 0xDEC6, - 27013 - 11904: 0x8DC2, - 27014 - 11904: 0xB7AE, - 27018 - 11904: 0x99B6, - 27021 - 11904: 0xE24A, - 27022 - 11904: 0xE248, - 27024 - 11904: 0xE25E, - 27025 - 11904: 0xE246, - 27027 - 11904: 0xE258, - 27028 - 11904: 0xB77D, - 27029 - 11904: 0xBA5F, - 27030 - 11904: 0xE242, - 27031 - 11904: 0xE25D, - 27032 - 11904: 0xFD52, - 27033 - 11904: 0xE247, - 27034 - 11904: 0xE255, - 27035 - 11904: 0xBA64, - 27036 - 11904: 0xBA5D, - 27038 - 11904: 0xE25B, - 27039 - 11904: 0x8DC1, - 27040 - 11904: 0xE240, - 27041 - 11904: 0xE25A, - 27042 - 11904: 0x8E46, - 27043 - 11904: 0xBA6F, - 27044 - 11904: 0xE251, - 27045 - 11904: 0xE261, - 27046 - 11904: 0xBA6D, - 27047 - 11904: 0xE249, - 27048 - 11904: 0xBA5E, - 27049 - 11904: 0xE24B, - 27050 - 11904: 0xE259, - 27051 - 11904: 0xBA67, - 27052 - 11904: 0xE244, - 27053 - 11904: 0xBA6B, - 27054 - 11904: 0xBA61, - 27055 - 11904: 0xE24D, - 27056 - 11904: 0xE243, - 27057 - 11904: 0xE1FC, - 27058 - 11904: 0xA0D1, - 27059 - 11904: 0xE257, - 27060 - 11904: 0xBA68, - 27061 - 11904: 0xE260, - 27062 - 11904: 0xE1FD, - 27063 - 11904: 0xBA65, - 27065 - 11904: 0xE253, - 27067 - 11904: 0xBA66, - 27068 - 11904: 0xE245, - 27069 - 11904: 0xE250, - 27070 - 11904: 0xE24C, - 27071 - 11904: 0xE24E, - 27072 - 11904: 0x9FCA, - 27073 - 11904: 0xBA60, - 27074 - 11904: 0xE25F, - 27075 - 11904: 0xBA6E, - 27076 - 11904: 0xE24F, - 27078 - 11904: 0xE262, - 27081 - 11904: 0xE1FE, - 27082 - 11904: 0xE254, - 27083 - 11904: 0xBA63, - 27084 - 11904: 0xBA6C, - 27085 - 11904: 0xBA6A, - 27086 - 11904: 0xE241, - 27087 - 11904: 0xE256, - 27088 - 11904: 0xBA69, - 27089 - 11904: 0x92CF, - 27091 - 11904: 0xBA62, - 27092 - 11904: 0xE252, - 27093 - 11904: 0x9CF4, - 27094 - 11904: 0x8DC4, - 27097 - 11904: 0xE25C, - 27105 - 11904: 0xFD41, - 27106 - 11904: 0xE5D5, - 27108 - 11904: 0xE5D1, - 27109 - 11904: 0xE5CD, - 27110 - 11904: 0xE5E1, - 27111 - 11904: 0xE5DE, - 27112 - 11904: 0xBCCD, - 27113 - 11904: 0x9B4C, - 27115 - 11904: 0xE5E5, - 27116 - 11904: 0xE5D4, - 27117 - 11904: 0xBCD8, - 27118 - 11904: 0xE5DB, - 27121 - 11904: 0xE5D0, - 27122 - 11904: 0xE5DA, - 27123 - 11904: 0xBCD5, - 27124 - 11904: 0xE5EE, - 27126 - 11904: 0xE5EB, - 27127 - 11904: 0xE5DD, - 27128 - 11904: 0xE5CE, - 27129 - 11904: 0xFD57, - 27130 - 11904: 0xFCEF, - 27131 - 11904: 0xE5E2, - 27132 - 11904: 0xE5E4, - 27133 - 11904: 0xBCD1, - 27134 - 11904: 0xE5D8, - 27135 - 11904: 0xE5D3, - 27136 - 11904: 0xE5CA, - 27137 - 11904: 0xBCCE, - 27138 - 11904: 0xBCD6, - 27139 - 11904: 0x9CDE, - 27140 - 11904: 0xE5E7, - 27141 - 11904: 0xBCD7, - 27142 - 11904: 0xE5CB, - 27143 - 11904: 0xE5ED, - 27144 - 11904: 0xE5E0, - 27145 - 11904: 0xE5E6, - 27146 - 11904: 0xBCD4, - 27147 - 11904: 0xFD42, - 27148 - 11904: 0x986C, - 27149 - 11904: 0xE5E3, - 27151 - 11904: 0xE5EA, - 27153 - 11904: 0xBCD9, - 27155 - 11904: 0xBCD3, - 27156 - 11904: 0xE5DC, - 27157 - 11904: 0xE5CF, - 27158 - 11904: 0xE5EF, - 27159 - 11904: 0xE5CC, - 27160 - 11904: 0xE5E8, - 27161 - 11904: 0xBCD0, - 27162 - 11904: 0x97F9, - 27163 - 11904: 0xE5D6, - 27164 - 11904: 0x9558, - 27165 - 11904: 0xE5D7, - 27166 - 11904: 0xBCCF, - 27167 - 11904: 0xBCCC, - 27168 - 11904: 0xE5D2, - 27169 - 11904: 0xBCD2, - 27171 - 11904: 0xBCCB, - 27173 - 11904: 0xE5E9, - 27174 - 11904: 0xE5EC, - 27175 - 11904: 0xE5D9, - 27176 - 11904: 0xE9CA, - 27177 - 11904: 0x87B6, - 27179 - 11904: 0x985E, - 27180 - 11904: 0xFE7B, - 27181 - 11904: 0x94CD, - 27186 - 11904: 0xE9C2, - 27187 - 11904: 0x93EE, - 27188 - 11904: 0xE9BE, - 27189 - 11904: 0xBEF6, - 27192 - 11904: 0xBEEB, - 27193 - 11904: 0xBEF0, - 27194 - 11904: 0xBEEC, - 27195 - 11904: 0xE9CC, - 27196 - 11904: 0xE9D7, - 27197 - 11904: 0xBEEA, - 27198 - 11904: 0xE9C4, - 27199 - 11904: 0xE9CD, - 27200 - 11904: 0xE5DF, - 27201 - 11904: 0xE9CE, - 27203 - 11904: 0x8CA3, - 27204 - 11904: 0xBEF1, - 27205 - 11904: 0xFD5A, - 27206 - 11904: 0xE9DD, - 27207 - 11904: 0xBEF5, - 27208 - 11904: 0xBEF8, - 27209 - 11904: 0xE9C0, - 27211 - 11904: 0xBEF4, - 27212 - 11904: 0x93F5, - 27213 - 11904: 0xE9DB, - 27214 - 11904: 0xE9DC, - 27215 - 11904: 0xE9D2, - 27216 - 11904: 0xE9D1, - 27217 - 11904: 0xE9C9, - 27218 - 11904: 0x93EF, - 27219 - 11904: 0x8EEA, - 27220 - 11904: 0xE9D3, - 27221 - 11904: 0xE9DA, - 27222 - 11904: 0xE9D9, - 27223 - 11904: 0x8F5B, - 27224 - 11904: 0xBEEF, - 27225 - 11904: 0xBEED, - 27226 - 11904: 0xE9CB, - 27227 - 11904: 0xE9C8, - 27229 - 11904: 0xE9C5, - 27230 - 11904: 0xE9D8, - 27231 - 11904: 0xBEF7, - 27232 - 11904: 0xE9D6, - 27233 - 11904: 0xBEF3, - 27234 - 11904: 0xBEF2, - 27235 - 11904: 0x8C5E, - 27236 - 11904: 0xE9D0, - 27237 - 11904: 0x8DC6, - 27238 - 11904: 0xE9BF, - 27239 - 11904: 0xE9C1, - 27240 - 11904: 0xE9C3, - 27241 - 11904: 0xE9D5, - 27242 - 11904: 0xE9CF, - 27243 - 11904: 0xBEEE, - 27245 - 11904: 0xE9C6, - 27247 - 11904: 0xE9D4, - 27249 - 11904: 0x8DC8, - 27252 - 11904: 0x8DC7, - 27254 - 11904: 0xE9C7, - 27258 - 11904: 0x93F7, - 27262 - 11904: 0xC0CF, - 27263 - 11904: 0xED45, - 27264 - 11904: 0xC0C8, - 27265 - 11904: 0xECF5, - 27266 - 11904: 0x8DC9, - 27267 - 11904: 0xED41, - 27268 - 11904: 0xC0CA, - 27269 - 11904: 0xED48, - 27271 - 11904: 0xECFC, - 27273 - 11904: 0xECF7, - 27274 - 11904: 0xFBF2, - 27276 - 11904: 0xED49, - 27277 - 11904: 0xECF3, - 27278 - 11904: 0xECFE, - 27279 - 11904: 0x9670, - 27280 - 11904: 0xC0D1, - 27281 - 11904: 0xED44, - 27282 - 11904: 0xED4A, - 27283 - 11904: 0xECFD, - 27284 - 11904: 0xC0C9, - 27285 - 11904: 0xED40, - 27286 - 11904: 0xECF4, - 27287 - 11904: 0xC0D0, - 27289 - 11904: 0x8DCB, - 27290 - 11904: 0xED47, - 27291 - 11904: 0xECF9, - 27292 - 11904: 0xC0CC, - 27293 - 11904: 0xFD5C, - 27294 - 11904: 0xECFB, - 27295 - 11904: 0xECF8, - 27296 - 11904: 0xC0D2, - 27297 - 11904: 0xECFA, - 27298 - 11904: 0xC0CB, - 27299 - 11904: 0xC0CE, - 27300 - 11904: 0xED43, - 27301 - 11904: 0xECF6, - 27302 - 11904: 0xED46, - 27303 - 11904: 0x8F65, - 27304 - 11904: 0xED42, - 27307 - 11904: 0x8DCD, - 27308 - 11904: 0xC263, - 27309 - 11904: 0xEFE7, - 27310 - 11904: 0xC268, - 27311 - 11904: 0xC269, - 27313 - 11904: 0x9DA8, - 27314 - 11904: 0x94F9, - 27315 - 11904: 0xC262, - 27316 - 11904: 0xEFE6, - 27317 - 11904: 0x8DCE, - 27318 - 11904: 0xEFE3, - 27319 - 11904: 0xEFE4, - 27320 - 11904: 0xC266, - 27321 - 11904: 0xEFDE, - 27322 - 11904: 0xEFE2, - 27323 - 11904: 0xC265, - 27325 - 11904: 0xEFDF, - 27326 - 11904: 0x93EA, - 27330 - 11904: 0xC267, - 27331 - 11904: 0xC264, - 27333 - 11904: 0xEFDD, - 27334 - 11904: 0xEFE1, - 27335 - 11904: 0xEFE5, - 27336 - 11904: 0xFD5F, - 27337 - 11904: 0x93F0, - 27338 - 11904: 0x9FB6, - 27339 - 11904: 0xF251, - 27340 - 11904: 0xF24E, - 27341 - 11904: 0xF257, - 27343 - 11904: 0xF256, - 27344 - 11904: 0xF254, - 27345 - 11904: 0xF24F, - 27347 - 11904: 0xC372, - 27348 - 11904: 0x8DCF, - 27352 - 11904: 0x9763, - 27353 - 11904: 0xF250, - 27354 - 11904: 0xC371, - 27355 - 11904: 0xC0CD, - 27356 - 11904: 0xF253, - 27357 - 11904: 0xC370, - 27358 - 11904: 0xF258, - 27359 - 11904: 0xF252, - 27360 - 11904: 0xF24D, - 27361 - 11904: 0xEFE0, - 27365 - 11904: 0xC36F, - 27367 - 11904: 0xF24C, - 27368 - 11904: 0xF456, - 27370 - 11904: 0xF455, - 27371 - 11904: 0xF255, - 27372 - 11904: 0xC468, - 27374 - 11904: 0xF459, - 27375 - 11904: 0xF45A, - 27376 - 11904: 0xF454, - 27377 - 11904: 0xF458, - 27379 - 11904: 0xF453, - 27382 - 11904: 0x8DD0, - 27384 - 11904: 0xF5D1, - 27385 - 11904: 0xF457, - 27386 - 11904: 0xC4E7, - 27387 - 11904: 0xC4E5, - 27388 - 11904: 0xF5CF, - 27392 - 11904: 0xF5D2, - 27394 - 11904: 0xF5CE, - 27395 - 11904: 0xF5D0, - 27396 - 11904: 0xC4E6, - 27397 - 11904: 0x93F1, - 27400 - 11904: 0xF6E5, - 27401 - 11904: 0xF6E6, - 27402 - 11904: 0xC576, - 27403 - 11904: 0xF6E4, - 27407 - 11904: 0xF7E2, - 27408 - 11904: 0xC5CF, - 27409 - 11904: 0xF7E0, - 27410 - 11904: 0xF7E1, - 27411 - 11904: 0xF8AC, - 27414 - 11904: 0xC656, - 27415 - 11904: 0xF8F3, - 27416 - 11904: 0xF8F1, - 27417 - 11904: 0xF8F2, - 27418 - 11904: 0xF8F4, - 27421 - 11904: 0xFD62, - 27422 - 11904: 0xF9BB, - 27424 - 11904: 0xA4ED, - 27425 - 11904: 0xA6B8, - 27427 - 11904: 0xAA59, - 27429 - 11904: 0xCCE9, - 27432 - 11904: 0xCF64, - 27436 - 11904: 0xD1F5, - 27437 - 11904: 0xD1F7, - 27439 - 11904: 0xD1F6, - 27441 - 11904: 0xD1F8, - 27442 - 11904: 0xB1FD, - 27443 - 11904: 0xD5D7, - 27444 - 11904: 0xD1F9, - 27445 - 11904: 0xFD65, - 27446 - 11904: 0xD5D6, - 27447 - 11904: 0xD5D8, - 27448 - 11904: 0xD5D9, - 27449 - 11904: 0xD9DA, - 27450 - 11904: 0xB4DB, - 27451 - 11904: 0xD9DB, - 27452 - 11904: 0xD9DD, - 27453 - 11904: 0xB4DC, - 27454 - 11904: 0xB4DA, - 27455 - 11904: 0xD9DC, - 27457 - 11904: 0xDDFA, - 27458 - 11904: 0xDDF8, - 27459 - 11904: 0xDDF7, - 27461 - 11904: 0xDDF6, - 27462 - 11904: 0xDDF5, - 27463 - 11904: 0xB7B2, - 27464 - 11904: 0xDDF9, - 27465 - 11904: 0xBA70, - 27466 - 11904: 0xE263, - 27467 - 11904: 0xE265, - 27468 - 11904: 0xBA71, - 27469 - 11904: 0xE264, - 27470 - 11904: 0xBCDB, - 27472 - 11904: 0xBCDA, - 27473 - 11904: 0xE5F0, - 27474 - 11904: 0x9FDB, - 27476 - 11904: 0xE9DF, - 27477 - 11904: 0xE9DE, - 27478 - 11904: 0xE9E0, - 27479 - 11904: 0x93F8, - 27481 - 11904: 0xBEF9, - 27483 - 11904: 0xED4B, - 27484 - 11904: 0xC0D3, - 27486 - 11904: 0xEFE8, - 27487 - 11904: 0xC26A, - 27488 - 11904: 0xF259, - 27489 - 11904: 0xC577, - 27490 - 11904: 0xA4EE, - 27491 - 11904: 0xA5BF, - 27492 - 11904: 0xA6B9, - 27493 - 11904: 0xA842, - 27494 - 11904: 0xAA5A, - 27495 - 11904: 0xAA5B, - 27498 - 11904: 0xAC6E, - 27501 - 11904: 0xD1FA, - 27503 - 11904: 0x8BF7, - 27506 - 11904: 0xB7B3, - 27508 - 11904: 0xFD66, - 27510 - 11904: 0xE6D1, - 27511 - 11904: 0xBEFA, - 27512 - 11904: 0xC26B, - 27513 - 11904: 0xA4EF, - 27514 - 11904: 0x8BCF, - 27515 - 11904: 0xA6BA, - 27518 - 11904: 0xCCEB, - 27519 - 11904: 0xAA5C, - 27520 - 11904: 0xCCEA, - 27521 - 11904: 0x8DD1, - 27522 - 11904: 0xCF65, - 27523 - 11904: 0xAC6F, - 27524 - 11904: 0xCF66, - 27526 - 11904: 0xAC70, - 27528 - 11904: 0xD1FC, - 27529 - 11904: 0xAEEE, - 27530 - 11904: 0xAEED, - 27532 - 11904: 0xD5DE, - 27533 - 11904: 0xD5DC, - 27534 - 11904: 0xD5DD, - 27535 - 11904: 0xD5DB, - 27537 - 11904: 0xD5DA, - 27540 - 11904: 0xD9DE, - 27541 - 11904: 0xD9E1, - 27542 - 11904: 0xB4DE, - 27543 - 11904: 0xD9DF, - 27544 - 11904: 0xB4DD, - 27545 - 11904: 0xD9E0, - 27547 - 11904: 0xDDFB, - 27550 - 11904: 0xE266, - 27551 - 11904: 0xE267, - 27552 - 11904: 0xE268, - 27554 - 11904: 0xE5F3, - 27555 - 11904: 0xE5F2, - 27556 - 11904: 0xBCDC, - 27557 - 11904: 0xE5F1, - 27558 - 11904: 0xE5F4, - 27559 - 11904: 0xE9E1, - 27562 - 11904: 0xE9E2, - 27563 - 11904: 0xE9E3, - 27565 - 11904: 0xED4C, - 27566 - 11904: 0xC0D4, - 27567 - 11904: 0xC26C, - 27568 - 11904: 0xF25A, - 27570 - 11904: 0xC4E8, - 27571 - 11904: 0xC95F, - 27573 - 11904: 0xAC71, - 27574 - 11904: 0xCF67, - 27575 - 11904: 0xAEEF, - 27578 - 11904: 0xB1FE, - 27580 - 11904: 0xB4DF, - 27581 - 11904: 0xD9E2, - 27583 - 11904: 0xB7B5, - 27584 - 11904: 0xB7B4, - 27585 - 11904: 0x8DD2, - 27587 - 11904: 0xE269, - 27588 - 11904: 0xE26A, - 27589 - 11904: 0xBCDD, - 27590 - 11904: 0xBCDE, - 27591 - 11904: 0xE9E5, - 27592 - 11904: 0xE9E4, - 27593 - 11904: 0xEFE9, - 27594 - 11904: 0xF7E3, - 27595 - 11904: 0xA4F0, - 27596 - 11904: 0xC960, - 27597 - 11904: 0xA5C0, - 27599 - 11904: 0xA843, - 27600 - 11904: 0xCB48, - 27602 - 11904: 0xAC72, - 27603 - 11904: 0xB7B6, - 27604 - 11904: 0xA4F1, - 27606 - 11904: 0xCF68, - 27607 - 11904: 0xAC73, - 27608 - 11904: 0xCF69, - 27610 - 11904: 0xC0D5, - 27611 - 11904: 0xA4F2, - 27612 - 11904: 0xFD71, - 27614 - 11904: 0xCCEC, - 27616 - 11904: 0xCF6A, - 27617 - 11904: 0xFD6F, - 27618 - 11904: 0xD242, - 27619 - 11904: 0xD241, - 27620 - 11904: 0xD1FE, - 27622 - 11904: 0xD1FD, - 27623 - 11904: 0xD243, - 27624 - 11904: 0xD240, - 27626 - 11904: 0x8DD3, - 27627 - 11904: 0xB240, - 27628 - 11904: 0xB241, - 27631 - 11904: 0xB4E0, - 27632 - 11904: 0xD9E3, - 27634 - 11904: 0xD9E4, - 27635 - 11904: 0xD9E5, - 27639 - 11904: 0xDE41, - 27640 - 11904: 0xDE42, - 27641 - 11904: 0xDE40, - 27642 - 11904: 0x9FE7, - 27643 - 11904: 0xDDFD, - 27644 - 11904: 0xDDFE, - 27645 - 11904: 0xB7B7, - 27646 - 11904: 0xE26B, - 27647 - 11904: 0xE5F7, - 27648 - 11904: 0xE5F6, - 27649 - 11904: 0xE5F5, - 27650 - 11904: 0xE5F8, - 27651 - 11904: 0xE9E7, - 27652 - 11904: 0xE9E6, - 27653 - 11904: 0xBEFB, - 27654 - 11904: 0xE9E8, - 27656 - 11904: 0xC0D6, - 27657 - 11904: 0xED4D, - 27659 - 11904: 0xEFEA, - 27660 - 11904: 0xF25B, - 27661 - 11904: 0xF6E7, - 27663 - 11904: 0xA4F3, - 27664 - 11904: 0xA5C2, - 27665 - 11904: 0xA5C1, - 27667 - 11904: 0xAA5D, - 27668 - 11904: 0xC961, - 27669 - 11904: 0xC97E, - 27670 - 11904: 0xA6BB, - 27672 - 11904: 0xC9F7, - 27673 - 11904: 0xCB49, - 27674 - 11904: 0xCB4A, - 27675 - 11904: 0xAA5E, - 27676 - 11904: 0x90BD, - 27677 - 11904: 0xCCED, - 27679 - 11904: 0xAC74, - 27680 - 11904: 0xCF6B, - 27681 - 11904: 0xCF6C, - 27683 - 11904: 0xAEF0, - 27684 - 11904: 0xAEF4, - 27685 - 11904: 0xD244, - 27686 - 11904: 0xAEF3, - 27687 - 11904: 0xAEF1, - 27688 - 11904: 0xAEF2, - 27690 - 11904: 0xD5DF, - 27691 - 11904: 0xB242, - 27692 - 11904: 0xB4E3, - 27694 - 11904: 0xB4E1, - 27695 - 11904: 0xB4E2, - 27696 - 11904: 0xD9E6, - 27697 - 11904: 0x9FD0, - 27699 - 11904: 0xBA72, - 27700 - 11904: 0xA4F4, - 27701 - 11904: 0x8BD0, - 27702 - 11904: 0xC9A1, - 27703 - 11904: 0xFD72, - 27704 - 11904: 0xA5C3, - 27705 - 11904: 0x9CAE, - 27706 - 11904: 0x8BD1, - 27707 - 11904: 0xC9A4, - 27709 - 11904: 0x8ADB, - 27710 - 11904: 0xA5C6, - 27711 - 11904: 0xC9A3, - 27712 - 11904: 0xA5C5, - 27713 - 11904: 0xA5C4, - 27714 - 11904: 0xA844, - 27715 - 11904: 0xC9A2, - 27718 - 11904: 0xC9F8, - 27721 - 11904: 0xFAE4, - 27722 - 11904: 0xC9FC, - 27723 - 11904: 0xC9FE, - 27724 - 11904: 0xCA40, - 27725 - 11904: 0xA6C5, - 27726 - 11904: 0xA6C6, - 27727 - 11904: 0xC9FB, - 27728 - 11904: 0xA6C1, - 27730 - 11904: 0xC9F9, - 27732 - 11904: 0xC9FD, - 27733 - 11904: 0xA6C2, - 27735 - 11904: 0xA6BD, - 27736 - 11904: 0x95CE, - 27737 - 11904: 0xA6BE, - 27738 - 11904: 0xFD76, - 27739 - 11904: 0xA6C4, - 27740 - 11904: 0xC9FA, - 27741 - 11904: 0xA6BC, - 27742 - 11904: 0xA845, - 27743 - 11904: 0xA6BF, - 27744 - 11904: 0xA6C0, - 27745 - 11904: 0xA6C3, - 27749 - 11904: 0xCB5B, - 27750 - 11904: 0xCB59, - 27751 - 11904: 0xCB4C, - 27752 - 11904: 0xA851, - 27753 - 11904: 0xCB53, - 27754 - 11904: 0xA84C, - 27755 - 11904: 0xCB4D, - 27757 - 11904: 0xCB55, - 27758 - 11904: 0xFB62, - 27759 - 11904: 0xCB52, - 27760 - 11904: 0xA84F, - 27761 - 11904: 0xCB51, - 27762 - 11904: 0xA856, - 27763 - 11904: 0xCB5A, - 27764 - 11904: 0xA858, - 27765 - 11904: 0x8DD4, - 27766 - 11904: 0xA85A, - 27768 - 11904: 0xCB4B, - 27769 - 11904: 0xFD78, - 27770 - 11904: 0xA84D, - 27771 - 11904: 0xCB5C, - 27773 - 11904: 0xA854, - 27774 - 11904: 0xA857, - 27775 - 11904: 0x8EE3, - 27776 - 11904: 0xCD45, - 27777 - 11904: 0xA847, - 27778 - 11904: 0xA85E, - 27779 - 11904: 0xA855, - 27780 - 11904: 0xCB4E, - 27781 - 11904: 0xA84A, - 27782 - 11904: 0xA859, - 27783 - 11904: 0xCB56, - 27784 - 11904: 0xA848, - 27785 - 11904: 0xA849, - 27786 - 11904: 0xCD43, - 27787 - 11904: 0xCB4F, - 27788 - 11904: 0xA850, - 27789 - 11904: 0xA85B, - 27790 - 11904: 0xCB5D, - 27791 - 11904: 0xCB50, - 27792 - 11904: 0xA84E, - 27794 - 11904: 0xA853, - 27795 - 11904: 0xCCEE, - 27796 - 11904: 0xA85C, - 27797 - 11904: 0xCB57, - 27798 - 11904: 0xA852, - 27800 - 11904: 0xA85D, - 27801 - 11904: 0xA846, - 27802 - 11904: 0xCB54, - 27803 - 11904: 0xA84B, - 27804 - 11904: 0xFDB7, - 27805 - 11904: 0xCD44, - 27807 - 11904: 0x9076, - 27810 - 11904: 0x98C6, - 27818 - 11904: 0x8DD5, - 27819 - 11904: 0xAA6A, - 27820 - 11904: 0xAA7A, - 27821 - 11904: 0xCCF5, - 27822 - 11904: 0xAA71, - 27823 - 11904: 0x97D1, - 27824 - 11904: 0xCD4B, - 27825 - 11904: 0xAA62, - 27826 - 11904: 0x9EB6, - 27827 - 11904: 0xAA65, - 27828 - 11904: 0xCD42, - 27830 - 11904: 0xCCF3, - 27831 - 11904: 0xCCF7, - 27832 - 11904: 0xAA6D, - 27833 - 11904: 0xAA6F, - 27834 - 11904: 0xCCFA, - 27835 - 11904: 0xAA76, - 27836 - 11904: 0xAA68, - 27837 - 11904: 0xAA66, - 27838 - 11904: 0xAA67, - 27839 - 11904: 0xAA75, - 27840 - 11904: 0xCD47, - 27841 - 11904: 0xAA70, - 27842 - 11904: 0xCCF9, - 27843 - 11904: 0xCCFB, - 27844 - 11904: 0xAA6E, - 27845 - 11904: 0xAA73, - 27846 - 11904: 0xCCFC, - 27847 - 11904: 0xCD4A, - 27849 - 11904: 0xAC75, - 27850 - 11904: 0xAA79, - 27851 - 11904: 0xFAC7, - 27852 - 11904: 0xAA63, - 27853 - 11904: 0xCD49, - 27854 - 11904: 0xA042, - 27855 - 11904: 0xCD4D, - 27856 - 11904: 0xCCF8, - 27857 - 11904: 0xCD4F, - 27858 - 11904: 0xCD40, - 27859 - 11904: 0xAA6C, - 27860 - 11904: 0xCCF4, - 27861 - 11904: 0xAA6B, - 27862 - 11904: 0xAA7D, - 27863 - 11904: 0xAA72, - 27865 - 11904: 0xCCF2, - 27866 - 11904: 0xCF75, - 27867 - 11904: 0xAA78, - 27868 - 11904: 0xAA7C, - 27869 - 11904: 0xCD41, - 27870 - 11904: 0xCD46, - 27871 - 11904: 0x9873, - 27872 - 11904: 0xAA7E, - 27873 - 11904: 0xAA77, - 27874 - 11904: 0xAA69, - 27875 - 11904: 0xAA5F, - 27877 - 11904: 0xAA64, - 27879 - 11904: 0xCCF6, - 27880 - 11904: 0xAA60, - 27881 - 11904: 0xCD4E, - 27882 - 11904: 0x9FFC, - 27883 - 11904: 0xCCF0, - 27884 - 11904: 0xCCEF, - 27885 - 11904: 0xCCFD, - 27886 - 11904: 0xCCF1, - 27887 - 11904: 0xAA7B, - 27888 - 11904: 0xAEF5, - 27889 - 11904: 0xAA74, - 27890 - 11904: 0xCCFE, - 27891 - 11904: 0xAA61, - 27893 - 11904: 0xACA6, - 27897 - 11904: 0xCD4C, - 27903 - 11904: 0x8CA5, - 27904 - 11904: 0xCF7C, - 27905 - 11904: 0xCFA1, - 27906 - 11904: 0x8DD7, - 27907 - 11904: 0xCFA4, - 27908 - 11904: 0xCF77, - 27909 - 11904: 0x92FB, - 27910 - 11904: 0x8DD8, - 27911 - 11904: 0xCFA7, - 27912 - 11904: 0xCFAA, - 27913 - 11904: 0xCFAC, - 27914 - 11904: 0xCF74, - 27915 - 11904: 0xAC76, - 27916 - 11904: 0xAC7B, - 27917 - 11904: 0xD249, - 27918 - 11904: 0xACAD, - 27919 - 11904: 0xCFA5, - 27920 - 11904: 0xCFAD, - 27921 - 11904: 0xCF7B, - 27922 - 11904: 0xCF73, - 27926 - 11904: 0xD264, - 27927 - 11904: 0xAC7E, - 27928 - 11904: 0xCFA2, - 27929 - 11904: 0xCF78, - 27930 - 11904: 0xCF7A, - 27931 - 11904: 0xACA5, - 27933 - 11904: 0xCF7D, - 27934 - 11904: 0xAC7D, - 27935 - 11904: 0xCF70, - 27936 - 11904: 0xCFA8, - 27938 - 11904: 0xCFAB, - 27940 - 11904: 0x944F, - 27941 - 11904: 0xAC7A, - 27942 - 11904: 0x8DD9, - 27943 - 11904: 0xACA8, - 27944 - 11904: 0xCF6D, - 27945 - 11904: 0xACAA, - 27946 - 11904: 0xAC78, - 27947 - 11904: 0xACAE, - 27948 - 11904: 0xCFA9, - 27949 - 11904: 0xCF6F, - 27950 - 11904: 0xACAB, - 27951 - 11904: 0xD25E, - 27952 - 11904: 0xCD48, - 27953 - 11904: 0xAC7C, - 27954 - 11904: 0xAC77, - 27955 - 11904: 0xCF76, - 27956 - 11904: 0xCF6E, - 27957 - 11904: 0xACAC, - 27958 - 11904: 0xACA4, - 27959 - 11904: 0xCFA3, - 27960 - 11904: 0xACA9, - 27961 - 11904: 0xACA7, - 27962 - 11904: 0xCF79, - 27963 - 11904: 0xACA1, - 27964 - 11904: 0xCF71, - 27965 - 11904: 0xACA2, - 27966 - 11904: 0xACA3, - 27967 - 11904: 0xCF72, - 27968 - 11904: 0xCFA6, - 27969 - 11904: 0xAC79, - 27970 - 11904: 0xCF7E, - 27982 - 11904: 0x896B, - 27991 - 11904: 0x97CE, - 27992 - 11904: 0xD24C, - 27993 - 11904: 0xAEFD, - 27994 - 11904: 0xAF43, - 27995 - 11904: 0xFAF3, - 27996 - 11904: 0xFDAE, - 27998 - 11904: 0xD255, - 27999 - 11904: 0xD25B, - 28000 - 11904: 0xD257, - 28001 - 11904: 0xD24A, - 28002 - 11904: 0xD24D, - 28003 - 11904: 0xD246, - 28004 - 11904: 0xD247, - 28005 - 11904: 0xAF4A, - 28006 - 11904: 0xAEFA, - 28007 - 11904: 0xD256, - 28008 - 11904: 0xD25F, - 28009 - 11904: 0xAF45, - 28010 - 11904: 0xAEF6, - 28012 - 11904: 0xAF40, - 28013 - 11904: 0xD24E, - 28014 - 11904: 0xAF42, - 28015 - 11904: 0xD24F, - 28016 - 11904: 0xD259, - 28017 - 11904: 0xFBAF, - 28018 - 11904: 0x92B7, - 28020 - 11904: 0xAF44, - 28021 - 11904: 0xD268, - 28022 - 11904: 0xD248, - 28023 - 11904: 0xAEFC, - 28024 - 11904: 0xAEFB, - 28025 - 11904: 0xAF48, - 28026 - 11904: 0xD245, - 28027 - 11904: 0xD266, - 28028 - 11904: 0xD25A, - 28029 - 11904: 0xD267, - 28030 - 11904: 0xD261, - 28031 - 11904: 0xD253, - 28032 - 11904: 0xD262, - 28033 - 11904: 0x8DDA, - 28034 - 11904: 0xD25C, - 28035 - 11904: 0xD265, - 28036 - 11904: 0xD263, - 28037 - 11904: 0xAF49, - 28038 - 11904: 0xD254, - 28039 - 11904: 0xAEF9, - 28040 - 11904: 0xAEF8, - 28041 - 11904: 0xAF41, - 28042 - 11904: 0xAF47, - 28043 - 11904: 0xD260, - 28044 - 11904: 0xAF46, - 28045 - 11904: 0xD251, - 28046 - 11904: 0xB243, - 28047 - 11904: 0x9C5A, - 28048 - 11904: 0xD269, - 28049 - 11904: 0xD250, - 28050 - 11904: 0xD24B, - 28051 - 11904: 0xAEFE, - 28052 - 11904: 0xAF4B, - 28053 - 11904: 0xAEF7, - 28054 - 11904: 0xFDAD, - 28055 - 11904: 0xD258, - 28056 - 11904: 0xD25D, - 28068 - 11904: 0x8DDC, - 28069 - 11904: 0x9444, - 28074 - 11904: 0xB265, - 28075 - 11904: 0xD5E1, - 28076 - 11904: 0xD5E5, - 28078 - 11904: 0xB252, - 28079 - 11904: 0xB250, - 28081 - 11904: 0x8DDD, - 28082 - 11904: 0xB247, - 28083 - 11904: 0xD5E3, - 28084 - 11904: 0xD5E2, - 28085 - 11904: 0xB25B, - 28087 - 11904: 0xD5E8, - 28088 - 11904: 0xB255, - 28089 - 11904: 0xA0D6, - 28090 - 11904: 0xD5FA, - 28091 - 11904: 0xD647, - 28092 - 11904: 0xB244, - 28093 - 11904: 0xD5F7, - 28094 - 11904: 0xD5F0, - 28095 - 11904: 0xB267, - 28096 - 11904: 0xD5E0, - 28098 - 11904: 0xD5FC, - 28100 - 11904: 0xB264, - 28101 - 11904: 0xB258, - 28102 - 11904: 0xB263, - 28103 - 11904: 0xB24E, - 28104 - 11904: 0xD5EC, - 28105 - 11904: 0xD5FE, - 28106 - 11904: 0xD5F6, - 28107 - 11904: 0xB24F, - 28108 - 11904: 0xB249, - 28109 - 11904: 0xD645, - 28111 - 11904: 0xD5FD, - 28112 - 11904: 0xD640, - 28113 - 11904: 0xB251, - 28114 - 11904: 0xB259, - 28115 - 11904: 0xD642, - 28116 - 11904: 0xD5EA, - 28117 - 11904: 0xD5FB, - 28118 - 11904: 0xD5EF, - 28119 - 11904: 0xD644, - 28120 - 11904: 0xB25E, - 28121 - 11904: 0xB246, - 28122 - 11904: 0xB25C, - 28123 - 11904: 0xD5F4, - 28124 - 11904: 0xD5F2, - 28125 - 11904: 0xD5F3, - 28126 - 11904: 0xB253, - 28127 - 11904: 0xD5EE, - 28128 - 11904: 0xD5ED, - 28129 - 11904: 0xB248, - 28130 - 11904: 0xD5E7, - 28131 - 11904: 0xD646, - 28132 - 11904: 0xB24A, - 28133 - 11904: 0xD5F1, - 28134 - 11904: 0xB268, - 28136 - 11904: 0xB262, - 28137 - 11904: 0xD5E6, - 28138 - 11904: 0xB25F, - 28139 - 11904: 0xB25D, - 28140 - 11904: 0xB266, - 28141 - 11904: 0xD5F8, - 28142 - 11904: 0xB261, - 28143 - 11904: 0xD252, - 28144 - 11904: 0xD5F9, - 28145 - 11904: 0xB260, - 28146 - 11904: 0xD641, - 28147 - 11904: 0xB245, - 28148 - 11904: 0xD5F5, - 28149 - 11904: 0xB257, - 28150 - 11904: 0xD5E9, - 28151 - 11904: 0xB256, - 28153 - 11904: 0xB254, - 28154 - 11904: 0xB24C, - 28155 - 11904: 0xB24B, - 28156 - 11904: 0xD9E7, - 28157 - 11904: 0xD643, - 28158 - 11904: 0x8C41, - 28160 - 11904: 0xD5EB, - 28162 - 11904: 0x97D5, - 28163 - 11904: 0xD9FC, - 28164 - 11904: 0x944A, - 28165 - 11904: 0xB24D, - 28170 - 11904: 0x944D, - 28175 - 11904: 0x97CB, - 28181 - 11904: 0x8DDE, - 28184 - 11904: 0x8DDF, - 28185 - 11904: 0xB541, - 28186 - 11904: 0xB25A, - 28187 - 11904: 0xB4EE, - 28188 - 11904: 0xD9F6, - 28189 - 11904: 0xFDB8, - 28191 - 11904: 0xD9EA, - 28192 - 11904: 0xB4EB, - 28193 - 11904: 0xB4E7, - 28194 - 11904: 0xDA49, - 28195 - 11904: 0xB4ED, - 28196 - 11904: 0xB4F1, - 28197 - 11904: 0xB4EC, - 28198 - 11904: 0xB4F5, - 28199 - 11904: 0xDA4D, - 28200 - 11904: 0xDA44, - 28201 - 11904: 0x8DE0, - 28202 - 11904: 0xFEF9, - 28203 - 11904: 0xD9F1, - 28204 - 11904: 0xB4FA, - 28205 - 11904: 0xB4F4, - 28206 - 11904: 0xD9FD, - 28207 - 11904: 0xFDBB, - 28208 - 11904: 0xDA4A, - 28209 - 11904: 0xDA43, - 28210 - 11904: 0xB4E8, - 28211 - 11904: 0xD9F7, - 28212 - 11904: 0xB4F7, - 28213 - 11904: 0xDA55, - 28214 - 11904: 0xDA56, - 28216 - 11904: 0xB4E5, - 28217 - 11904: 0xDA48, - 28218 - 11904: 0xB4F9, - 28219 - 11904: 0xD9FB, - 28220 - 11904: 0xD9ED, - 28221 - 11904: 0xD9EE, - 28222 - 11904: 0xB4FD, - 28223 - 11904: 0xD9F2, - 28224 - 11904: 0xD9F9, - 28225 - 11904: 0xD9F3, - 28227 - 11904: 0xB4FB, - 28228 - 11904: 0xB544, - 28229 - 11904: 0xD9EF, - 28230 - 11904: 0xD9E8, - 28231 - 11904: 0xD9E9, - 28233 - 11904: 0xD9EB, - 28234 - 11904: 0xB4EA, - 28235 - 11904: 0xD9F8, - 28237 - 11904: 0xB4F8, - 28238 - 11904: 0xB542, - 28239 - 11904: 0xFDC0, - 28240 - 11904: 0xFCF9, - 28241 - 11904: 0xD9FA, - 28242 - 11904: 0xDA53, - 28243 - 11904: 0xDA4B, - 28244 - 11904: 0xB4E6, - 28245 - 11904: 0xDA51, - 28246 - 11904: 0xB4F2, - 28247 - 11904: 0x8CDD, - 28248 - 11904: 0xB4F0, - 28249 - 11904: 0xFB7E, - 28250 - 11904: 0xDA57, - 28251 - 11904: 0xB4EF, - 28252 - 11904: 0xDA41, - 28253 - 11904: 0xD9F4, - 28254 - 11904: 0xD9FE, - 28255 - 11904: 0xB547, - 28256 - 11904: 0xDA45, - 28257 - 11904: 0xDA42, - 28258 - 11904: 0xD9F0, - 28259 - 11904: 0xB543, - 28260 - 11904: 0xDA4F, - 28261 - 11904: 0xDA4C, - 28262 - 11904: 0xDA54, - 28263 - 11904: 0xB4E9, - 28264 - 11904: 0xDA40, - 28265 - 11904: 0xB546, - 28267 - 11904: 0xDA47, - 28270 - 11904: 0xB4F3, - 28271 - 11904: 0xB4F6, - 28273 - 11904: 0xDA46, - 28274 - 11904: 0xB545, - 28275 - 11904: 0xD9F5, - 28276 - 11904: 0xD5E4, - 28278 - 11904: 0x92B3, - 28279 - 11904: 0xDA50, - 28280 - 11904: 0xDA4E, - 28281 - 11904: 0xDA52, - 28284 - 11904: 0xFDAF, - 28294 - 11904: 0x8DE1, - 28296 - 11904: 0xD9EC, - 28297 - 11904: 0xB540, - 28299 - 11904: 0x95D3, - 28301 - 11904: 0xDE61, - 28302 - 11904: 0xDE60, - 28303 - 11904: 0xDE46, - 28304 - 11904: 0xB7BD, - 28306 - 11904: 0xDE5F, - 28307 - 11904: 0xDE49, - 28308 - 11904: 0xDE4A, - 28310 - 11904: 0xB7C7, - 28311 - 11904: 0xDE68, - 28312 - 11904: 0xB7C2, - 28313 - 11904: 0xDE5E, - 28314 - 11904: 0x89C1, - 28315 - 11904: 0xDE43, - 28316 - 11904: 0xB7C8, - 28317 - 11904: 0xB7BE, - 28318 - 11904: 0xDE52, - 28319 - 11904: 0xDE48, - 28320 - 11904: 0xDE4B, - 28321 - 11904: 0xDE63, - 28322 - 11904: 0xB7B8, - 28323 - 11904: 0xDE6A, - 28324 - 11904: 0xDE62, - 28325 - 11904: 0xB7C1, - 28326 - 11904: 0xDE57, - 28327 - 11904: 0xB7CC, - 28330 - 11904: 0xB7CB, - 28331 - 11904: 0xB7C5, - 28334 - 11904: 0xDE69, - 28335 - 11904: 0xB7B9, - 28336 - 11904: 0xDE55, - 28337 - 11904: 0xDE4C, - 28338 - 11904: 0xDE59, - 28339 - 11904: 0xDE65, - 28340 - 11904: 0xB7CD, - 28341 - 11904: 0xFD68, - 28342 - 11904: 0xB7BB, - 28343 - 11904: 0xDE54, - 28344 - 11904: 0x9CB7, - 28345 - 11904: 0xDE4D, - 28346 - 11904: 0xB7C4, - 28347 - 11904: 0x8DE3, - 28348 - 11904: 0xB7C3, - 28349 - 11904: 0xDE50, - 28350 - 11904: 0xDE5A, - 28351 - 11904: 0xDE64, - 28352 - 11904: 0xDE47, - 28353 - 11904: 0xDE51, - 28354 - 11904: 0xB7BC, - 28355 - 11904: 0xDE5B, - 28356 - 11904: 0xB7C9, - 28357 - 11904: 0xB7C0, - 28358 - 11904: 0xDE4E, - 28359 - 11904: 0xB7BF, - 28360 - 11904: 0xDE45, - 28361 - 11904: 0xDE53, - 28362 - 11904: 0xDE67, - 28363 - 11904: 0xB4FE, - 28364 - 11904: 0xBAB0, - 28365 - 11904: 0xDE56, - 28366 - 11904: 0xE26C, - 28367 - 11904: 0xDE58, - 28368 - 11904: 0xDE66, - 28369 - 11904: 0xB7C6, - 28370 - 11904: 0xDE4F, - 28371 - 11904: 0xB7BA, - 28372 - 11904: 0xB7CA, - 28373 - 11904: 0xBCF0, - 28374 - 11904: 0xDE44, - 28376 - 11904: 0xDE5D, - 28377 - 11904: 0xFAC0, - 28378 - 11904: 0x8DE5, - 28379 - 11904: 0xFA64, - 28380 - 11904: 0xDE5C, - 28381 - 11904: 0x8947, - 28386 - 11904: 0x8DE4, - 28392 - 11904: 0x8DE7, - 28393 - 11904: 0x8DE8, - 28395 - 11904: 0xE2AA, - 28396 - 11904: 0xBAAD, - 28397 - 11904: 0xE27D, - 28398 - 11904: 0xE2A4, - 28399 - 11904: 0xBAA2, - 28401 - 11904: 0xE26E, - 28402 - 11904: 0xBAAF, - 28404 - 11904: 0xBA77, - 28405 - 11904: 0xE26D, - 28406 - 11904: 0xE2B0, - 28407 - 11904: 0xBAB1, - 28408 - 11904: 0xE271, - 28409 - 11904: 0xE2A3, - 28410 - 11904: 0xFDC7, - 28411 - 11904: 0xE273, - 28412 - 11904: 0xE2B3, - 28413 - 11904: 0xE2AF, - 28414 - 11904: 0xBA75, - 28415 - 11904: 0xBAA1, - 28416 - 11904: 0xE653, - 28417 - 11904: 0xBAAE, - 28418 - 11904: 0xBA7D, - 28419 - 11904: 0xE26F, - 28420 - 11904: 0xFDB0, - 28421 - 11904: 0xE2AE, - 28422 - 11904: 0xBAA3, - 28423 - 11904: 0xE2AB, - 28424 - 11904: 0xE2B8, - 28425 - 11904: 0xE275, - 28426 - 11904: 0xE27E, - 28427 - 11904: 0x9445, - 28428 - 11904: 0x97D6, - 28429 - 11904: 0xE2B6, - 28430 - 11904: 0xE2AC, - 28431 - 11904: 0xBA7C, - 28434 - 11904: 0xE27C, - 28435 - 11904: 0xBA76, - 28436 - 11904: 0xBA74, - 28437 - 11904: 0xBAA8, - 28438 - 11904: 0xFCC6, - 28439 - 11904: 0x9844, - 28440 - 11904: 0xE27A, - 28441 - 11904: 0xE277, - 28442 - 11904: 0xE278, - 28444 - 11904: 0xE2B2, - 28446 - 11904: 0xE2B7, - 28447 - 11904: 0xE2B5, - 28448 - 11904: 0xBA7A, - 28449 - 11904: 0xE2B9, - 28450 - 11904: 0xBA7E, - 28451 - 11904: 0xBAA7, - 28452 - 11904: 0x8DE9, - 28453 - 11904: 0xE270, - 28454 - 11904: 0xE5FA, - 28455 - 11904: 0xE279, - 28457 - 11904: 0xBA78, - 28458 - 11904: 0xBAAC, - 28459 - 11904: 0xBAA9, - 28460 - 11904: 0xBA7B, - 28461 - 11904: 0xE2A5, - 28462 - 11904: 0xE274, - 28463 - 11904: 0xBAAA, - 28464 - 11904: 0xE2A7, - 28465 - 11904: 0xBAA4, - 28466 - 11904: 0xBAA6, - 28467 - 11904: 0xBA73, - 28468 - 11904: 0x8DEA, - 28469 - 11904: 0xE2A9, - 28470 - 11904: 0xE2A1, - 28471 - 11904: 0xE272, - 28472 - 11904: 0xBAA5, - 28473 - 11904: 0xE2B1, - 28474 - 11904: 0xE2B4, - 28475 - 11904: 0xE27B, - 28476 - 11904: 0xE2A8, - 28477 - 11904: 0xFE50, - 28478 - 11904: 0xBA79, - 28479 - 11904: 0xBCDF, - 28480 - 11904: 0xE2A6, - 28481 - 11904: 0xE5F9, - 28483 - 11904: 0xE2AD, - 28484 - 11904: 0xFDCC, - 28494 - 11904: 0xE276, - 28495 - 11904: 0xE644, - 28496 - 11904: 0xE64E, - 28497 - 11904: 0xBCE2, - 28498 - 11904: 0xE64D, - 28499 - 11904: 0xE659, - 28500 - 11904: 0xBCE4, - 28501 - 11904: 0xE64B, - 28502 - 11904: 0x9DA7, - 28503 - 11904: 0xE64F, - 28504 - 11904: 0xBCEF, - 28506 - 11904: 0xE646, - 28507 - 11904: 0xBCE7, - 28508 - 11904: 0xFDCD, - 28509 - 11904: 0xE652, - 28510 - 11904: 0xE9F0, - 28511 - 11904: 0xBCF3, - 28512 - 11904: 0xBCF2, - 28513 - 11904: 0xE654, - 28514 - 11904: 0xE643, - 28515 - 11904: 0xE65E, - 28516 - 11904: 0xBCED, - 28518 - 11904: 0xBCE3, - 28519 - 11904: 0xE657, - 28521 - 11904: 0xE65B, - 28522 - 11904: 0xE660, - 28523 - 11904: 0xE655, - 28524 - 11904: 0xE649, - 28525 - 11904: 0xBCE6, - 28526 - 11904: 0xBCE9, - 28527 - 11904: 0xBCF1, - 28528 - 11904: 0xBCEC, - 28530 - 11904: 0xE64C, - 28531 - 11904: 0xE2A2, - 28532 - 11904: 0xFDCF, - 28534 - 11904: 0xE648, - 28535 - 11904: 0xE65F, - 28536 - 11904: 0xBCE8, - 28537 - 11904: 0x95D2, - 28538 - 11904: 0xBCEB, - 28539 - 11904: 0xE661, - 28540 - 11904: 0xBCE0, - 28541 - 11904: 0xE656, - 28542 - 11904: 0xE5FB, - 28543 - 11904: 0xE65C, - 28544 - 11904: 0xC0DF, - 28545 - 11904: 0x8DED, - 28546 - 11904: 0xE64A, - 28548 - 11904: 0xBCE1, - 28549 - 11904: 0xE645, - 28550 - 11904: 0xBCE5, - 28551 - 11904: 0xE5FC, - 28552 - 11904: 0xBAAB, - 28553 - 11904: 0xE641, - 28554 - 11904: 0xFCBA, - 28555 - 11904: 0xE65A, - 28556 - 11904: 0xE642, - 28557 - 11904: 0xE640, - 28558 - 11904: 0xBCEA, - 28560 - 11904: 0xE658, - 28562 - 11904: 0xE5FE, - 28563 - 11904: 0xE651, - 28564 - 11904: 0xE650, - 28565 - 11904: 0xE65D, - 28566 - 11904: 0xE647, - 28567 - 11904: 0xBCEE, - 28573 - 11904: 0xFDC5, - 28574 - 11904: 0xE9F3, - 28575 - 11904: 0xFDD2, - 28576 - 11904: 0xBF49, - 28577 - 11904: 0xBEFE, - 28578 - 11904: 0xEA40, - 28579 - 11904: 0xE9EB, - 28580 - 11904: 0xBF41, - 28581 - 11904: 0xE9F7, - 28582 - 11904: 0xBF48, - 28583 - 11904: 0xBF43, - 28584 - 11904: 0xE9F5, - 28585 - 11904: 0xED4F, - 28586 - 11904: 0xE9FB, - 28587 - 11904: 0xEA42, - 28588 - 11904: 0xE9FA, - 28589 - 11904: 0xE9E9, - 28590 - 11904: 0xE9F8, - 28591 - 11904: 0xEA44, - 28592 - 11904: 0xEA46, - 28593 - 11904: 0xBEFD, - 28594 - 11904: 0xEA45, - 28595 - 11904: 0xBF44, - 28596 - 11904: 0xBF4A, - 28597 - 11904: 0x9CDC, - 28598 - 11904: 0xBF47, - 28600 - 11904: 0xE9FE, - 28601 - 11904: 0xBF46, - 28602 - 11904: 0xE9F9, - 28603 - 11904: 0x95CF, - 28604 - 11904: 0xE9ED, - 28605 - 11904: 0xE9F2, - 28606 - 11904: 0x8DEE, - 28607 - 11904: 0xE9FD, - 28608 - 11904: 0xBF45, - 28609 - 11904: 0xBF42, - 28610 - 11904: 0xBEFC, - 28611 - 11904: 0xBF40, - 28612 - 11904: 0xE9F1, - 28614 - 11904: 0xE5FD, - 28615 - 11904: 0xE9EC, - 28616 - 11904: 0xE9EF, - 28617 - 11904: 0xEA41, - 28618 - 11904: 0xE9F4, - 28619 - 11904: 0xE9EA, - 28620 - 11904: 0xED4E, - 28621 - 11904: 0xEA43, - 28622 - 11904: 0xE9EE, - 28623 - 11904: 0xE9FC, - 28627 - 11904: 0xFDD4, - 28628 - 11904: 0xED51, - 28629 - 11904: 0xC0E3, - 28632 - 11904: 0xC0D7, - 28633 - 11904: 0x96EC, - 28634 - 11904: 0x96EB, - 28635 - 11904: 0xC0DB, - 28636 - 11904: 0xED53, - 28637 - 11904: 0xED59, - 28638 - 11904: 0xED57, - 28639 - 11904: 0xC0D9, - 28640 - 11904: 0xC0DA, - 28641 - 11904: 0xC0E1, - 28642 - 11904: 0xED5A, - 28643 - 11904: 0xED52, - 28644 - 11904: 0xC0DC, - 28646 - 11904: 0xED56, - 28647 - 11904: 0xED55, - 28648 - 11904: 0xED5B, - 28649 - 11904: 0xC0E2, - 28651 - 11904: 0xC0DD, - 28652 - 11904: 0xC0E0, - 28653 - 11904: 0xED54, - 28654 - 11904: 0xC0E4, - 28655 - 11904: 0xC0DE, - 28656 - 11904: 0xC0E5, - 28657 - 11904: 0xC0D8, - 28658 - 11904: 0xED58, - 28660 - 11904: 0xED50, - 28662 - 11904: 0x90B6, - 28663 - 11904: 0xEFF7, - 28664 - 11904: 0xFDC3, - 28666 - 11904: 0xC271, - 28667 - 11904: 0xEFF4, - 28668 - 11904: 0xEFF6, - 28670 - 11904: 0xC26F, - 28671 - 11904: 0xEFF2, - 28672 - 11904: 0xEFF3, - 28673 - 11904: 0xEFEE, - 28675 - 11904: 0x98AB, - 28676 - 11904: 0xE9F6, - 28677 - 11904: 0xEFEF, - 28678 - 11904: 0xC270, - 28679 - 11904: 0xEFEB, - 28681 - 11904: 0xC26D, - 28682 - 11904: 0xEFF8, - 28683 - 11904: 0xC26E, - 28684 - 11904: 0xEFEC, - 28685 - 11904: 0xEFED, - 28686 - 11904: 0xEFF1, - 28687 - 11904: 0xC273, - 28689 - 11904: 0xC272, - 28692 - 11904: 0xEFF0, - 28693 - 11904: 0xC378, - 28694 - 11904: 0xF25F, - 28695 - 11904: 0xF265, - 28696 - 11904: 0xC379, - 28697 - 11904: 0xF25C, - 28698 - 11904: 0xC376, - 28699 - 11904: 0xC373, - 28700 - 11904: 0xF267, - 28701 - 11904: 0xC377, - 28702 - 11904: 0x96EE, - 28703 - 11904: 0xC374, - 28704 - 11904: 0xF25E, - 28705 - 11904: 0xF261, - 28706 - 11904: 0xF262, - 28707 - 11904: 0xF263, - 28708 - 11904: 0xF266, - 28710 - 11904: 0xEFF5, - 28711 - 11904: 0xF25D, - 28712 - 11904: 0xC375, - 28713 - 11904: 0xF264, - 28714 - 11904: 0xF268, - 28715 - 11904: 0xF260, - 28716 - 11904: 0x8DF4, - 28719 - 11904: 0xF45D, - 28720 - 11904: 0xC46A, - 28721 - 11904: 0xF460, - 28722 - 11904: 0xC46B, - 28723 - 11904: 0xF468, - 28724 - 11904: 0xF45F, - 28725 - 11904: 0xF45C, - 28727 - 11904: 0xF45E, - 28728 - 11904: 0xF462, - 28729 - 11904: 0xF465, - 28730 - 11904: 0xF464, - 28731 - 11904: 0xF467, - 28732 - 11904: 0xF45B, - 28734 - 11904: 0xC469, - 28735 - 11904: 0xF463, - 28736 - 11904: 0xF466, - 28737 - 11904: 0xF469, - 28738 - 11904: 0xF461, - 28739 - 11904: 0xF5D3, - 28740 - 11904: 0xF5D4, - 28741 - 11904: 0xF5D8, - 28742 - 11904: 0xF5D9, - 28744 - 11904: 0xF5D6, - 28745 - 11904: 0xF5D7, - 28746 - 11904: 0xF5D5, - 28747 - 11904: 0xFDE0, - 28748 - 11904: 0xC4E9, - 28749 - 11904: 0x8C67, - 28752 - 11904: 0x8DF6, - 28753 - 11904: 0xC578, - 28754 - 11904: 0xF6EB, - 28756 - 11904: 0x8DF7, - 28757 - 11904: 0xF6E8, - 28758 - 11904: 0xF6E9, - 28759 - 11904: 0xF6EA, - 28760 - 11904: 0xC579, - 28762 - 11904: 0xF7E5, - 28763 - 11904: 0xF7E4, - 28764 - 11904: 0x8FFA, - 28765 - 11904: 0xF8AF, - 28766 - 11904: 0xC5F4, - 28767 - 11904: 0xF8AD, - 28768 - 11904: 0xF8B0, - 28769 - 11904: 0xF8AE, - 28770 - 11904: 0xF8F5, - 28771 - 11904: 0xC657, - 28772 - 11904: 0xC665, - 28773 - 11904: 0xF9A3, - 28774 - 11904: 0xF96C, - 28775 - 11904: 0x97D0, - 28776 - 11904: 0xF9A2, - 28777 - 11904: 0xF9D0, - 28778 - 11904: 0xF9D1, - 28779 - 11904: 0xA4F5, - 28780 - 11904: 0x8BD2, - 28782 - 11904: 0x87DE, - 28783 - 11904: 0x8DF8, - 28784 - 11904: 0xA6C7, - 28785 - 11904: 0xCA41, - 28788 - 11904: 0xCB5E, - 28789 - 11904: 0x90D9, - 28790 - 11904: 0xA85F, - 28791 - 11904: 0x8C47, - 28792 - 11904: 0xA862, - 28793 - 11904: 0xFAF0, - 28794 - 11904: 0xCB5F, - 28796 - 11904: 0xA860, - 28797 - 11904: 0xA861, - 28798 - 11904: 0xFDE1, - 28799 - 11904: 0x8DF9, - 28801 - 11904: 0xFDE3, - 28802 - 11904: 0xCD58, - 28803 - 11904: 0xCD5A, - 28804 - 11904: 0xCD55, - 28805 - 11904: 0xCD52, - 28806 - 11904: 0xCD54, - 28809 - 11904: 0x8DFA, - 28810 - 11904: 0xAAA4, - 28811 - 11904: 0xFB63, - 28814 - 11904: 0xAAA2, - 28815 - 11904: 0x90A6, - 28817 - 11904: 0xCD56, - 28818 - 11904: 0xAAA3, - 28819 - 11904: 0xCD53, - 28820 - 11904: 0xCD50, - 28821 - 11904: 0xAAA1, - 28822 - 11904: 0xCD57, - 28824 - 11904: 0xCD51, - 28825 - 11904: 0xAAA5, - 28826 - 11904: 0xCD59, - 28831 - 11904: 0xCFAF, - 28832 - 11904: 0x9970, - 28833 - 11904: 0xCFB3, - 28835 - 11904: 0x91EB, - 28836 - 11904: 0xACB7, - 28837 - 11904: 0x9770, - 28838 - 11904: 0x986F, - 28839 - 11904: 0xFDE2, - 28841 - 11904: 0xCFB6, - 28843 - 11904: 0xACAF, - 28844 - 11904: 0xACB2, - 28845 - 11904: 0xACB4, - 28846 - 11904: 0xACB6, - 28847 - 11904: 0xACB3, - 28848 - 11904: 0xCFB2, - 28849 - 11904: 0xCFB1, - 28851 - 11904: 0xACB1, - 28852 - 11904: 0xCFB4, - 28853 - 11904: 0xCFB5, - 28855 - 11904: 0xCFAE, - 28856 - 11904: 0xACB5, - 28857 - 11904: 0x98F2, - 28858 - 11904: 0xACB0, - 28859 - 11904: 0x9AFC, - 28860 - 11904: 0x896C, - 28861 - 11904: 0xFDFD, - 28862 - 11904: 0xCFB0, - 28864 - 11904: 0x995E, - 28868 - 11904: 0x95BD, - 28869 - 11904: 0xD277, - 28870 - 11904: 0xD278, - 28871 - 11904: 0xD279, - 28872 - 11904: 0xAF50, - 28874 - 11904: 0xAF4C, - 28875 - 11904: 0xD26E, - 28876 - 11904: 0xFDE4, - 28877 - 11904: 0xD276, - 28878 - 11904: 0xD27B, - 28879 - 11904: 0xAF51, - 28880 - 11904: 0x91E6, - 28881 - 11904: 0xD26C, - 28882 - 11904: 0xD272, - 28883 - 11904: 0xD26B, - 28884 - 11904: 0xD275, - 28885 - 11904: 0xFDE5, - 28886 - 11904: 0xFDE6, - 28887 - 11904: 0xD271, - 28888 - 11904: 0xAF4D, - 28889 - 11904: 0xAF4F, - 28890 - 11904: 0xD27A, - 28892 - 11904: 0xD26A, - 28893 - 11904: 0xD26D, - 28894 - 11904: 0xD273, - 28895 - 11904: 0xFDE7, - 28896 - 11904: 0xD274, - 28897 - 11904: 0xD27C, - 28898 - 11904: 0xD270, - 28900 - 11904: 0xAF4E, - 28911 - 11904: 0xB26D, - 28912 - 11904: 0xD64E, - 28913 - 11904: 0x9454, - 28915 - 11904: 0xD650, - 28916 - 11904: 0xD64C, - 28917 - 11904: 0x99B8, - 28918 - 11904: 0xD658, - 28919 - 11904: 0xD64A, - 28920 - 11904: 0xD657, - 28921 - 11904: 0xB269, - 28922 - 11904: 0xD648, - 28923 - 11904: 0xDA5B, - 28924 - 11904: 0xD652, - 28925 - 11904: 0xB26C, - 28926 - 11904: 0x97E9, - 28927 - 11904: 0xD653, - 28928 - 11904: 0xD656, - 28930 - 11904: 0xD65A, - 28932 - 11904: 0xD64F, - 28933 - 11904: 0x9346, - 28934 - 11904: 0xD654, - 28937 - 11904: 0xB26A, - 28938 - 11904: 0xB26B, - 28939 - 11904: 0xD659, - 28940 - 11904: 0xD64D, - 28941 - 11904: 0xD649, - 28942 - 11904: 0xD65B, - 28944 - 11904: 0xD651, - 28947 - 11904: 0xD655, - 28951 - 11904: 0xD64B, - 28953 - 11904: 0xB548, - 28954 - 11904: 0xB549, - 28955 - 11904: 0xDA65, - 28956 - 11904: 0xB54F, - 28957 - 11904: 0x9863, - 28958 - 11904: 0xDA59, - 28959 - 11904: 0xDA62, - 28960 - 11904: 0xDA58, - 28961 - 11904: 0xB54C, - 28962 - 11904: 0xDA60, - 28963 - 11904: 0xDA5E, - 28965 - 11904: 0xDA5F, - 28966 - 11904: 0xB54A, - 28968 - 11904: 0xDA63, - 28969 - 11904: 0x95BC, - 28971 - 11904: 0xFDED, - 28972 - 11904: 0xFDF7, - 28974 - 11904: 0xDA5C, - 28975 - 11904: 0xDA5A, - 28976 - 11904: 0xB54B, - 28977 - 11904: 0xDA5D, - 28978 - 11904: 0xDA61, - 28979 - 11904: 0x9870, - 28980 - 11904: 0x96F6, - 28981 - 11904: 0x8EA9, - 28982 - 11904: 0xB54D, - 28986 - 11904: 0xDA64, - 28987 - 11904: 0x9451, - 28990 - 11904: 0x8E43, - 28992 - 11904: 0x8B5A, - 28993 - 11904: 0xDE70, - 28994 - 11904: 0xDE77, - 28995 - 11904: 0xDE79, - 28996 - 11904: 0xDEA1, - 28997 - 11904: 0xFDEE, - 28998 - 11904: 0xB7DA, - 28999 - 11904: 0xDE6B, - 29001 - 11904: 0xB7D2, - 29002 - 11904: 0xFDF0, - 29003 - 11904: 0xDE7A, - 29004 - 11904: 0xB7D7, - 29005 - 11904: 0xDEA2, - 29006 - 11904: 0xB7CE, - 29007 - 11904: 0xFDF4, - 29008 - 11904: 0xDE7D, - 29009 - 11904: 0x9BF5, - 29010 - 11904: 0xDE6D, - 29011 - 11904: 0xDE7E, - 29012 - 11904: 0xDE6C, - 29014 - 11904: 0xB7DC, - 29015 - 11904: 0x8CEE, - 29016 - 11904: 0xDE78, - 29017 - 11904: 0xB7CF, - 29018 - 11904: 0xDEA3, - 29020 - 11904: 0xB7D4, - 29021 - 11904: 0xDE71, - 29022 - 11904: 0xB7D9, - 29023 - 11904: 0xDE7C, - 29024 - 11904: 0xDE6F, - 29025 - 11904: 0xDE76, - 29026 - 11904: 0xDE72, - 29027 - 11904: 0xDE6E, - 29028 - 11904: 0xB7D1, - 29029 - 11904: 0xB7D8, - 29030 - 11904: 0xB7D6, - 29031 - 11904: 0xB7D3, - 29032 - 11904: 0xB7DB, - 29033 - 11904: 0xB7D0, - 29034 - 11904: 0xDE75, - 29035 - 11904: 0x977E, - 29036 - 11904: 0xB7D5, - 29038 - 11904: 0xFDF1, - 29040 - 11904: 0xDE7B, - 29041 - 11904: 0x9BD5, - 29042 - 11904: 0xDE73, - 29043 - 11904: 0x9AC3, - 29045 - 11904: 0x97C8, - 29046 - 11904: 0xA0DB, - 29047 - 11904: 0x91D0, - 29048 - 11904: 0xDE74, - 29050 - 11904: 0x9FE4, - 29051 - 11904: 0xE2C1, - 29052 - 11904: 0x8FDD, - 29053 - 11904: 0xBAB4, - 29054 - 11904: 0x91E9, - 29056 - 11904: 0xE2BD, - 29057 - 11904: 0xE2C3, - 29058 - 11904: 0xE2BF, - 29060 - 11904: 0xBAB6, - 29061 - 11904: 0xE2BE, - 29062 - 11904: 0xE2C2, - 29063 - 11904: 0xE2BA, - 29064 - 11904: 0x98E0, - 29065 - 11904: 0xE2BC, - 29066 - 11904: 0xBAB5, - 29068 - 11904: 0x92CA, - 29070 - 11904: 0x9857, - 29071 - 11904: 0xE2C0, - 29072 - 11904: 0xE2BB, - 29073 - 11904: 0x8C51, - 29074 - 11904: 0xBAB7, - 29076 - 11904: 0xBAB2, - 29078 - 11904: 0xFDEB, - 29079 - 11904: 0xE2C4, - 29080 - 11904: 0x9B49, - 29081 - 11904: 0xBAB3, - 29082 - 11904: 0xE667, - 29083 - 11904: 0xE664, - 29084 - 11904: 0xE670, - 29085 - 11904: 0xE66A, - 29086 - 11904: 0xE66C, - 29087 - 11904: 0xBCF4, - 29088 - 11904: 0xE666, - 29089 - 11904: 0xE66E, - 29090 - 11904: 0x9D76, - 29091 - 11904: 0x9EAF, - 29092 - 11904: 0xE66D, - 29093 - 11904: 0xE66B, - 29095 - 11904: 0xE671, - 29096 - 11904: 0xBCF7, - 29097 - 11904: 0xE668, - 29098 - 11904: 0xE66F, - 29100 - 11904: 0xBCF5, - 29101 - 11904: 0x9CCC, - 29103 - 11904: 0xE663, - 29104 - 11904: 0xE665, - 29105 - 11904: 0xBCF6, - 29106 - 11904: 0xE662, - 29107 - 11904: 0xE672, - 29108 - 11904: 0xFDEA, - 29109 - 11904: 0xE669, - 29111 - 11904: 0x8DF1, - 29112 - 11904: 0xEA4A, - 29113 - 11904: 0xBF51, - 29114 - 11904: 0xFDFB, - 29116 - 11904: 0xEA55, - 29117 - 11904: 0xEA53, - 29118 - 11904: 0xBF4B, - 29119 - 11904: 0xEA49, - 29120 - 11904: 0xEA4C, - 29121 - 11904: 0xEA4D, - 29122 - 11904: 0xEA48, - 29123 - 11904: 0xBF55, - 29124 - 11904: 0xBF56, - 29125 - 11904: 0xEA47, - 29126 - 11904: 0xEA56, - 29127 - 11904: 0xEA51, - 29128 - 11904: 0xBF4F, - 29129 - 11904: 0xBF4C, - 29130 - 11904: 0xEA50, - 29131 - 11904: 0xEA4E, - 29134 - 11904: 0xBF52, - 29135 - 11904: 0xEA52, - 29136 - 11904: 0xBF4D, - 29137 - 11904: 0x8E53, - 29138 - 11904: 0xBF4E, - 29140 - 11904: 0xEA4F, - 29141 - 11904: 0xBF50, - 29142 - 11904: 0xEA4B, - 29144 - 11904: 0xEA54, - 29145 - 11904: 0xBF53, - 29146 - 11904: 0xEA57, - 29147 - 11904: 0xEA58, - 29148 - 11904: 0xBF54, - 29149 - 11904: 0xFACF, - 29151 - 11904: 0xC0E7, - 29152 - 11904: 0xC0EE, - 29153 - 11904: 0xED5C, - 29154 - 11904: 0xED62, - 29156 - 11904: 0xED60, - 29157 - 11904: 0xC0EA, - 29158 - 11904: 0xC0E9, - 29159 - 11904: 0xC0E6, - 29160 - 11904: 0xED5E, - 29163 - 11904: 0x96F9, - 29164 - 11904: 0xC0EC, - 29165 - 11904: 0xC0EB, - 29166 - 11904: 0xC0E8, - 29168 - 11904: 0xED61, - 29169 - 11904: 0xED5D, - 29170 - 11904: 0xED5F, - 29172 - 11904: 0xC0ED, - 29173 - 11904: 0x98BF, - 29174 - 11904: 0x9E49, - 29176 - 11904: 0xC277, - 29177 - 11904: 0xEFFB, - 29179 - 11904: 0xC274, - 29180 - 11904: 0xC275, - 29181 - 11904: 0xEFFD, - 29182 - 11904: 0xC276, - 29183 - 11904: 0xEFFA, - 29184 - 11904: 0x8CA7, - 29185 - 11904: 0xEFF9, - 29186 - 11904: 0xF26C, - 29187 - 11904: 0xEFFC, - 29189 - 11904: 0xF26D, - 29190 - 11904: 0xC37A, - 29191 - 11904: 0xF26B, - 29193 - 11904: 0x9BCA, - 29194 - 11904: 0xF26A, - 29196 - 11904: 0xF269, - 29197 - 11904: 0xC37B, - 29198 - 11904: 0xFDFE, - 29199 - 11904: 0x92DC, - 29200 - 11904: 0xC46C, - 29203 - 11904: 0xF46A, - 29204 - 11904: 0xF46B, - 29205 - 11904: 0xFE41, - 29206 - 11904: 0x91CC, - 29207 - 11904: 0x91E2, - 29209 - 11904: 0xF5DC, - 29210 - 11904: 0xF5DB, - 29211 - 11904: 0xC4EA, - 29213 - 11904: 0xF5DA, - 29214 - 11904: 0xF6EC, - 29215 - 11904: 0xF6ED, - 29218 - 11904: 0xF7E6, - 29219 - 11904: 0xF8B1, - 29220 - 11904: 0xFE44, - 29221 - 11904: 0x875F, - 29222 - 11904: 0xF8F6, - 29223 - 11904: 0xF9BC, - 29224 - 11904: 0xC679, - 29225 - 11904: 0xF9C6, - 29226 - 11904: 0xA4F6, - 29227 - 11904: 0x8BD3, - 29228 - 11904: 0xAAA6, - 29229 - 11904: 0xAAA7, - 29230 - 11904: 0xFE47, - 29232 - 11904: 0xACB8, - 29237 - 11904: 0xC0EF, - 29238 - 11904: 0xA4F7, - 29240 - 11904: 0xAAA8, - 29241 - 11904: 0xAF52, - 29242 - 11904: 0xB7DD, - 29243 - 11904: 0xA4F8, - 29245 - 11904: 0xB26E, - 29246 - 11904: 0xBAB8, - 29247 - 11904: 0xC962, - 29248 - 11904: 0xFE48, - 29249 - 11904: 0xCFB7, - 29250 - 11904: 0xD27D, - 29252 - 11904: 0xE2C5, - 29254 - 11904: 0xC0F0, - 29255 - 11904: 0xA4F9, - 29256 - 11904: 0xAAA9, - 29257 - 11904: 0xCFB8, - 29258 - 11904: 0xCFB9, - 29259 - 11904: 0xDA66, - 29260 - 11904: 0xB550, - 29263 - 11904: 0xDEA4, - 29264 - 11904: 0xA0E4, - 29266 - 11904: 0xB7DE, - 29267 - 11904: 0xE2C6, - 29269 - 11904: 0xFE4B, - 29270 - 11904: 0xBCF8, - 29271 - 11904: 0xFE4C, - 29272 - 11904: 0xC37C, - 29273 - 11904: 0xA4FA, - 29274 - 11904: 0xDA67, - 29275 - 11904: 0xA4FB, - 29276 - 11904: 0x8DBF, - 29277 - 11904: 0xA6C9, - 29278 - 11904: 0xCA42, - 29279 - 11904: 0xA6C8, - 29280 - 11904: 0xA865, - 29281 - 11904: 0xA864, - 29282 - 11904: 0xA863, - 29283 - 11904: 0xCB60, - 29286 - 11904: 0x9E78, - 29287 - 11904: 0xAAAA, - 29289 - 11904: 0xAAAB, - 29290 - 11904: 0xCD5B, - 29292 - 11904: 0xCFBA, - 29294 - 11904: 0xCFBD, - 29295 - 11904: 0xACBA, - 29296 - 11904: 0xCFBB, - 29298 - 11904: 0xACB9, - 29299 - 11904: 0xCFBC, - 29300 - 11904: 0xACBB, - 29302 - 11904: 0xD2A2, - 29303 - 11904: 0xD2A1, - 29304 - 11904: 0xD27E, - 29305 - 11904: 0xAF53, - 29307 - 11904: 0xD65D, - 29308 - 11904: 0xD65E, - 29309 - 11904: 0xB26F, - 29310 - 11904: 0xD65C, - 29311 - 11904: 0xD65F, - 29312 - 11904: 0xB552, - 29313 - 11904: 0xB270, - 29314 - 11904: 0xFE51, - 29316 - 11904: 0xB551, - 29317 - 11904: 0xDA6B, - 29318 - 11904: 0xDA6A, - 29319 - 11904: 0x9456, - 29320 - 11904: 0xDA68, - 29321 - 11904: 0xDA69, - 29323 - 11904: 0xDA6C, - 29324 - 11904: 0xDEA6, - 29325 - 11904: 0xDEA5, - 29326 - 11904: 0xDEA9, - 29327 - 11904: 0x9D61, - 29328 - 11904: 0xDEA8, - 29329 - 11904: 0xDEA7, - 29330 - 11904: 0xBAB9, - 29331 - 11904: 0xE2C9, - 29332 - 11904: 0x9457, - 29333 - 11904: 0xE2C8, - 29334 - 11904: 0xBABA, - 29335 - 11904: 0xE2C7, - 29336 - 11904: 0xE673, - 29338 - 11904: 0xE674, - 29339 - 11904: 0xBCF9, - 29341 - 11904: 0xEA59, - 29342 - 11904: 0xEA5A, - 29343 - 11904: 0x9966, - 29345 - 11904: 0xF272, - 29346 - 11904: 0xC37D, - 29347 - 11904: 0xF271, - 29348 - 11904: 0xF270, - 29349 - 11904: 0xF26E, - 29350 - 11904: 0xF26F, - 29351 - 11904: 0xC4EB, - 29352 - 11904: 0xF46C, - 29353 - 11904: 0xF6EE, - 29354 - 11904: 0xF8F7, - 29356 - 11904: 0xA4FC, - 29357 - 11904: 0x8BD5, - 29358 - 11904: 0xC9A5, - 29359 - 11904: 0xA5C7, - 29360 - 11904: 0xC9A6, - 29362 - 11904: 0xA069, - 29364 - 11904: 0xCA43, - 29365 - 11904: 0xCA44, - 29370 - 11904: 0xCB66, - 29373 - 11904: 0xCB62, - 29375 - 11904: 0xCB61, - 29376 - 11904: 0xAAAC, - 29377 - 11904: 0xCB65, - 29378 - 11904: 0xA867, - 29379 - 11904: 0xCB63, - 29380 - 11904: 0xA866, - 29381 - 11904: 0xCB67, - 29382 - 11904: 0xCB64, - 29385 - 11904: 0xCD5F, - 29386 - 11904: 0xCFBE, - 29387 - 11904: 0xCD5D, - 29388 - 11904: 0xCD64, - 29389 - 11904: 0x98B4, - 29390 - 11904: 0xAAAD, - 29392 - 11904: 0xAAB0, - 29393 - 11904: 0xCD65, - 29394 - 11904: 0xCD61, - 29396 - 11904: 0xCD62, - 29398 - 11904: 0xCD5C, - 29399 - 11904: 0xAAAF, - 29400 - 11904: 0xCD5E, - 29401 - 11904: 0xAAAE, - 29402 - 11904: 0xCD63, - 29404 - 11904: 0xCD60, - 29407 - 11904: 0xCFC2, - 29408 - 11904: 0xACBD, - 29409 - 11904: 0xACBE, - 29410 - 11904: 0xA049, - 29411 - 11904: 0xCFC5, - 29412 - 11904: 0xCFBF, - 29414 - 11904: 0xCFC4, - 29416 - 11904: 0xCFC0, - 29417 - 11904: 0xACBC, - 29418 - 11904: 0xCFC3, - 29419 - 11904: 0xCFC1, - 29427 - 11904: 0xD2A8, - 29428 - 11904: 0xD2A5, - 29430 - 11904: 0xD2A7, - 29431 - 11904: 0xAF58, - 29432 - 11904: 0xAF57, - 29433 - 11904: 0xAF55, - 29434 - 11904: 0xD2A4, - 29435 - 11904: 0xD2A9, - 29436 - 11904: 0xAF54, - 29437 - 11904: 0xAF56, - 29438 - 11904: 0xD2A6, - 29439 - 11904: 0xD667, - 29440 - 11904: 0xD2A3, - 29441 - 11904: 0xD2AA, - 29442 - 11904: 0xA04C, - 29444 - 11904: 0x9E65, - 29447 - 11904: 0xD662, - 29448 - 11904: 0xD666, - 29450 - 11904: 0xD665, - 29451 - 11904: 0xDA6E, - 29452 - 11904: 0xDA79, - 29455 - 11904: 0xD668, - 29456 - 11904: 0x98B5, - 29457 - 11904: 0xD663, - 29458 - 11904: 0xDA6D, - 29459 - 11904: 0xB274, - 29462 - 11904: 0xB273, - 29463 - 11904: 0xD661, - 29464 - 11904: 0xD664, - 29465 - 11904: 0xB275, - 29467 - 11904: 0xB272, - 29468 - 11904: 0xB271, - 29469 - 11904: 0xD660, - 29470 - 11904: 0xD669, - 29474 - 11904: 0xDA70, - 29475 - 11904: 0xDA77, - 29477 - 11904: 0xB554, - 29478 - 11904: 0xDA76, - 29479 - 11904: 0xDA73, - 29480 - 11904: 0xFE58, - 29481 - 11904: 0xB556, - 29482 - 11904: 0xFE52, - 29483 - 11904: 0xFE53, - 29484 - 11904: 0xA065, - 29485 - 11904: 0xDA75, - 29486 - 11904: 0xFE59, - 29488 - 11904: 0xDA6F, - 29489 - 11904: 0xDA71, - 29490 - 11904: 0xDA74, - 29491 - 11904: 0xDA72, - 29492 - 11904: 0xB555, - 29493 - 11904: 0xDA78, - 29494 - 11904: 0xB553, - 29495 - 11904: 0xB7DF, - 29496 - 11904: 0x98B7, - 29497 - 11904: 0x98B8, - 29498 - 11904: 0xDEAD, - 29499 - 11904: 0xDEAC, - 29500 - 11904: 0xDEAA, - 29502 - 11904: 0xB7E2, - 29503 - 11904: 0xB7E1, - 29504 - 11904: 0xDEAE, - 29505 - 11904: 0x98BA, - 29506 - 11904: 0xDEAB, - 29507 - 11904: 0xE2CA, - 29508 - 11904: 0xBABB, - 29509 - 11904: 0xB7E0, - 29512 - 11904: 0x98BB, - 29513 - 11904: 0xDEB0, - 29514 - 11904: 0xDEAF, - 29516 - 11904: 0xE2CD, - 29517 - 11904: 0xE2CB, - 29518 - 11904: 0xBCFA, - 29519 - 11904: 0x9FBC, - 29520 - 11904: 0xBABC, - 29521 - 11904: 0xE2CC, - 29522 - 11904: 0xE676, - 29527 - 11904: 0xBCFB, - 29528 - 11904: 0xE675, - 29529 - 11904: 0xE67E, - 29530 - 11904: 0xE67D, - 29531 - 11904: 0xE67B, - 29533 - 11904: 0xE67A, - 29534 - 11904: 0xE677, - 29535 - 11904: 0xE678, - 29536 - 11904: 0xE679, - 29537 - 11904: 0xE67C, - 29538 - 11904: 0xE6A1, - 29541 - 11904: 0xEA5F, - 29542 - 11904: 0xEA5C, - 29543 - 11904: 0xEA5D, - 29544 - 11904: 0xBF57, - 29545 - 11904: 0xEA5B, - 29546 - 11904: 0xEA61, - 29547 - 11904: 0xEA60, - 29548 - 11904: 0xEA5E, - 29550 - 11904: 0xED64, - 29551 - 11904: 0xED65, - 29552 - 11904: 0xC0F1, - 29553 - 11904: 0xA04A, - 29554 - 11904: 0xC0F2, - 29555 - 11904: 0xED63, - 29556 - 11904: 0x9EC7, - 29557 - 11904: 0xC279, - 29558 - 11904: 0xEFFE, - 29559 - 11904: 0xC278, - 29560 - 11904: 0xC37E, - 29562 - 11904: 0xC3A1, - 29563 - 11904: 0xC46D, - 29564 - 11904: 0xF46E, - 29565 - 11904: 0xF46D, - 29566 - 11904: 0xF5DD, - 29567 - 11904: 0xF6EF, - 29568 - 11904: 0xC57A, - 29569 - 11904: 0xF7E8, - 29570 - 11904: 0xF7E7, - 29571 - 11904: 0xF7E9, - 29572 - 11904: 0xA5C8, - 29573 - 11904: 0xCFC6, - 29574 - 11904: 0xAF59, - 29575 - 11904: 0xB276, - 29576 - 11904: 0xD66A, - 29577 - 11904: 0xA5C9, - 29578 - 11904: 0xC9A7, - 29579 - 11904: 0xA4FD, - 29580 - 11904: 0x8CA9, - 29582 - 11904: 0xCA45, - 29583 - 11904: 0x98AE, - 29586 - 11904: 0xCB6C, - 29587 - 11904: 0xCB6A, - 29588 - 11904: 0xCB6B, - 29589 - 11904: 0xCB68, - 29590 - 11904: 0xA868, - 29591 - 11904: 0xCB69, - 29592 - 11904: 0x92D6, - 29596 - 11904: 0xFAE1, - 29597 - 11904: 0xCD6D, - 29598 - 11904: 0x91D4, - 29599 - 11904: 0xAAB3, - 29600 - 11904: 0xCD6B, - 29601 - 11904: 0xCD67, - 29602 - 11904: 0xCD6A, - 29604 - 11904: 0xCD66, - 29605 - 11904: 0xAAB5, - 29606 - 11904: 0xCD69, - 29607 - 11904: 0xFADE, - 29608 - 11904: 0xAAB2, - 29609 - 11904: 0xAAB1, - 29610 - 11904: 0xFE5B, - 29611 - 11904: 0xAAB4, - 29612 - 11904: 0xCD6C, - 29613 - 11904: 0xCD68, - 29618 - 11904: 0xACC2, - 29619 - 11904: 0xACC5, - 29620 - 11904: 0xCFCE, - 29621 - 11904: 0xCFCD, - 29622 - 11904: 0xCFCC, - 29623 - 11904: 0xACBF, - 29624 - 11904: 0xCFD5, - 29625 - 11904: 0xCFCB, - 29626 - 11904: 0x8C53, - 29627 - 11904: 0xACC1, - 29628 - 11904: 0xD2AF, - 29630 - 11904: 0xCFD2, - 29631 - 11904: 0xCFD0, - 29632 - 11904: 0xACC4, - 29634 - 11904: 0xCFC8, - 29635 - 11904: 0xCFD3, - 29636 - 11904: 0x87BF, - 29637 - 11904: 0xCFCA, - 29638 - 11904: 0xCFD4, - 29639 - 11904: 0xCFD1, - 29640 - 11904: 0xCFC9, - 29641 - 11904: 0xFE5E, - 29642 - 11904: 0xACC0, - 29643 - 11904: 0xCFD6, - 29644 - 11904: 0xCFC7, - 29645 - 11904: 0xACC3, - 29646 - 11904: 0xFBD7, - 29647 - 11904: 0xFE5A, - 29648 - 11904: 0x94C5, - 29650 - 11904: 0xD2B4, - 29651 - 11904: 0xD2AB, - 29652 - 11904: 0xD2B6, - 29653 - 11904: 0xFACA, - 29654 - 11904: 0xD2AE, - 29655 - 11904: 0xD2B9, - 29656 - 11904: 0xD2BA, - 29657 - 11904: 0xD2AC, - 29658 - 11904: 0xD2B8, - 29659 - 11904: 0xD2B5, - 29660 - 11904: 0xD2B3, - 29661 - 11904: 0xD2B7, - 29662 - 11904: 0xAF5F, - 29664 - 11904: 0xAF5D, - 29665 - 11904: 0x98C1, - 29666 - 11904: 0x975C, - 29667 - 11904: 0xD2B1, - 29668 - 11904: 0xFE74, - 29669 - 11904: 0xD2AD, - 29670 - 11904: 0x9773, - 29671 - 11904: 0xD2B0, - 29672 - 11904: 0xD2BB, - 29673 - 11904: 0xD2B2, - 29674 - 11904: 0xAF5E, - 29675 - 11904: 0xCFCF, - 29677 - 11904: 0xAF5A, - 29678 - 11904: 0xAF5C, - 29679 - 11904: 0xFA46, - 29683 - 11904: 0x9764, - 29684 - 11904: 0xD678, - 29685 - 11904: 0xD66D, - 29686 - 11904: 0xD66B, - 29687 - 11904: 0xFE68, - 29688 - 11904: 0xD66C, - 29689 - 11904: 0x964E, - 29690 - 11904: 0xD673, - 29691 - 11904: 0x9765, - 29692 - 11904: 0xD674, - 29693 - 11904: 0xD670, - 29694 - 11904: 0xB27B, - 29695 - 11904: 0xD675, - 29696 - 11904: 0xD672, - 29697 - 11904: 0xD66F, - 29698 - 11904: 0x8C5A, - 29699 - 11904: 0xB279, - 29700 - 11904: 0xD66E, - 29701 - 11904: 0xB277, - 29702 - 11904: 0xB27A, - 29703 - 11904: 0xD671, - 29704 - 11904: 0xD679, - 29705 - 11904: 0xAF5B, - 29706 - 11904: 0xB278, - 29707 - 11904: 0xD677, - 29708 - 11904: 0xD676, - 29709 - 11904: 0xB27C, - 29713 - 11904: 0x89A1, - 29714 - 11904: 0x95FA, - 29716 - 11904: 0x92D4, - 29717 - 11904: 0xFE69, - 29718 - 11904: 0xDA7E, - 29719 - 11904: 0xFB45, - 29721 - 11904: 0x98C8, - 29722 - 11904: 0xDAA1, - 29723 - 11904: 0xB560, - 29724 - 11904: 0x90EF, - 29725 - 11904: 0xDAA7, - 29726 - 11904: 0x98C9, - 29727 - 11904: 0x98CA, - 29728 - 11904: 0xDAA9, - 29729 - 11904: 0xDAA2, - 29730 - 11904: 0xB55A, - 29731 - 11904: 0xDAA6, - 29732 - 11904: 0xDAA5, - 29733 - 11904: 0xB55B, - 29734 - 11904: 0xB561, - 29736 - 11904: 0xB562, - 29737 - 11904: 0xDAA8, - 29738 - 11904: 0xB558, - 29739 - 11904: 0xDA7D, - 29740 - 11904: 0xDA7B, - 29741 - 11904: 0xDAA3, - 29742 - 11904: 0xDA7A, - 29743 - 11904: 0xB55F, - 29744 - 11904: 0xDA7C, - 29745 - 11904: 0xDAA4, - 29746 - 11904: 0xDAAA, - 29747 - 11904: 0xB559, - 29748 - 11904: 0xB55E, - 29749 - 11904: 0xB55C, - 29750 - 11904: 0xB55D, - 29751 - 11904: 0x946D, - 29752 - 11904: 0x94B7, - 29753 - 11904: 0xFE6C, - 29754 - 11904: 0xB557, - 29756 - 11904: 0x946B, - 29759 - 11904: 0xB7E9, - 29760 - 11904: 0xDEB7, - 29761 - 11904: 0xB7E8, - 29762 - 11904: 0xDEBB, - 29763 - 11904: 0x92FC, - 29764 - 11904: 0xDEB1, - 29765 - 11904: 0x95EB, - 29766 - 11904: 0xDEBC, - 29767 - 11904: 0xFE73, - 29768 - 11904: 0x976E, - 29769 - 11904: 0xFE5F, - 29770 - 11904: 0xDEB2, - 29771 - 11904: 0xDEB3, - 29772 - 11904: 0x87B8, - 29773 - 11904: 0xDEBD, - 29774 - 11904: 0xDEBA, - 29775 - 11904: 0xDEB8, - 29776 - 11904: 0xDEB9, - 29777 - 11904: 0xDEB5, - 29778 - 11904: 0xDEB4, - 29779 - 11904: 0xFDBD, - 29780 - 11904: 0xDEBE, - 29781 - 11904: 0xB7E5, - 29782 - 11904: 0x92D5, - 29783 - 11904: 0xDEB6, - 29785 - 11904: 0xB7EA, - 29786 - 11904: 0xB7E4, - 29787 - 11904: 0xB7EB, - 29788 - 11904: 0xFE6F, - 29789 - 11904: 0xFEB9, - 29790 - 11904: 0xB7E7, - 29791 - 11904: 0xB7E6, - 29792 - 11904: 0xFE71, - 29793 - 11904: 0x8778, - 29794 - 11904: 0xE2CE, - 29795 - 11904: 0xBABE, - 29796 - 11904: 0xBABD, - 29797 - 11904: 0xFBBB, - 29799 - 11904: 0xE2D3, - 29800 - 11904: 0xA0D5, - 29801 - 11904: 0xBCFC, - 29802 - 11904: 0xBABF, - 29803 - 11904: 0x95FB, - 29804 - 11904: 0xFE77, - 29805 - 11904: 0xBAC1, - 29806 - 11904: 0xE2D4, - 29807 - 11904: 0xB7E3, - 29808 - 11904: 0xBAC0, - 29809 - 11904: 0xE2D0, - 29810 - 11904: 0xE2D2, - 29811 - 11904: 0xE2CF, - 29812 - 11904: 0xFE79, - 29813 - 11904: 0xE2D1, - 29814 - 11904: 0xFE75, - 29817 - 11904: 0xE6AB, - 29818 - 11904: 0x945D, - 29820 - 11904: 0xE6AA, - 29821 - 11904: 0xE6A7, - 29822 - 11904: 0xBD40, - 29823 - 11904: 0xEA62, - 29824 - 11904: 0xBD41, - 29825 - 11904: 0xE6A6, - 29826 - 11904: 0xFE7C, - 29827 - 11904: 0xBCFE, - 29829 - 11904: 0xE6A8, - 29830 - 11904: 0xE6A5, - 29831 - 11904: 0xE6A2, - 29832 - 11904: 0xE6A9, - 29833 - 11904: 0xE6A3, - 29834 - 11904: 0xE6A4, - 29835 - 11904: 0xBCFD, - 29836 - 11904: 0x9344, - 29837 - 11904: 0x8EA6, - 29840 - 11904: 0xED69, - 29842 - 11904: 0xEA66, - 29844 - 11904: 0xEA65, - 29845 - 11904: 0xEA67, - 29847 - 11904: 0xED66, - 29848 - 11904: 0xBF5A, - 29849 - 11904: 0x92D3, - 29850 - 11904: 0xEA63, - 29851 - 11904: 0x94B8, - 29852 - 11904: 0xBF58, - 29853 - 11904: 0x8779, - 29854 - 11904: 0xBF5C, - 29855 - 11904: 0xBF5B, - 29856 - 11904: 0xEA64, - 29857 - 11904: 0xEA68, - 29859 - 11904: 0xBF59, - 29860 - 11904: 0xFC71, - 29861 - 11904: 0xED6D, - 29862 - 11904: 0xC0F5, - 29863 - 11904: 0xC27A, - 29864 - 11904: 0xC0F6, - 29865 - 11904: 0xC0F3, - 29866 - 11904: 0xED6A, - 29867 - 11904: 0xED68, - 29869 - 11904: 0xED6B, - 29871 - 11904: 0xED6E, - 29872 - 11904: 0xC0F4, - 29873 - 11904: 0xED6C, - 29874 - 11904: 0xED67, - 29876 - 11904: 0x975E, - 29877 - 11904: 0xF042, - 29878 - 11904: 0xF045, - 29879 - 11904: 0xF275, - 29880 - 11904: 0xF040, - 29881 - 11904: 0x8CAD, - 29882 - 11904: 0xF46F, - 29883 - 11904: 0xF046, - 29885 - 11904: 0xC3A2, - 29886 - 11904: 0xF044, - 29887 - 11904: 0xC27B, - 29888 - 11904: 0xF041, - 29889 - 11904: 0xF043, - 29890 - 11904: 0xF047, - 29891 - 11904: 0xF276, - 29893 - 11904: 0xF274, - 29894 - 11904: 0x87C1, - 29896 - 11904: 0xFEA7, - 29898 - 11904: 0xC3A3, - 29899 - 11904: 0xF273, - 29900 - 11904: 0x946A, - 29903 - 11904: 0xC46E, - 29904 - 11904: 0x93E3, - 29907 - 11904: 0x98CF, - 29908 - 11904: 0xC4ED, - 29909 - 11904: 0xF6F1, - 29910 - 11904: 0xC4EC, - 29911 - 11904: 0xF6F3, - 29912 - 11904: 0xF6F0, - 29913 - 11904: 0xF6F2, - 29914 - 11904: 0xC5D0, - 29915 - 11904: 0xF8B2, - 29916 - 11904: 0xA5CA, - 29917 - 11904: 0xCD6E, - 29918 - 11904: 0xD2BC, - 29919 - 11904: 0xD2BD, - 29920 - 11904: 0xB27D, - 29921 - 11904: 0xDEBF, - 29922 - 11904: 0xBF5D, - 29923 - 11904: 0xC3A4, - 29924 - 11904: 0xC57B, - 29925 - 11904: 0xF8B3, - 29926 - 11904: 0xA5CB, - 29927 - 11904: 0xA0D9, - 29928 - 11904: 0xCD6F, - 29929 - 11904: 0xFEAA, - 29932 - 11904: 0xCFD7, - 29934 - 11904: 0xCFD8, - 29936 - 11904: 0xA0BF, - 29937 - 11904: 0xA04D, - 29938 - 11904: 0xA0B8, - 29940 - 11904: 0xD2BE, - 29941 - 11904: 0xD2BF, - 29942 - 11904: 0xB27E, - 29943 - 11904: 0xB2A1, - 29944 - 11904: 0xA0CE, - 29947 - 11904: 0xDAAB, - 29949 - 11904: 0xDEC2, - 29950 - 11904: 0xDEC1, - 29951 - 11904: 0xDEC0, - 29952 - 11904: 0xE2D5, - 29954 - 11904: 0xE2D6, - 29955 - 11904: 0xE2D7, - 29956 - 11904: 0xBAC2, - 29957 - 11904: 0xA0B7, - 29959 - 11904: 0xE6AD, - 29960 - 11904: 0xE6AC, - 29963 - 11904: 0xEA69, - 29964 - 11904: 0xBF5E, - 29965 - 11904: 0xBF5F, - 29966 - 11904: 0xFEA9, - 29967 - 11904: 0xED72, - 29968 - 11904: 0xED6F, - 29969 - 11904: 0xED70, - 29970 - 11904: 0xED71, - 29971 - 11904: 0xF049, - 29972 - 11904: 0xF048, - 29973 - 11904: 0xC27C, - 29974 - 11904: 0xF277, - 29975 - 11904: 0xF5DE, - 29976 - 11904: 0xA5CC, - 29977 - 11904: 0x89C3, - 29978 - 11904: 0xACC6, - 29980 - 11904: 0xB2A2, - 29981 - 11904: 0xDEC3, - 29982 - 11904: 0xFEAB, - 29983 - 11904: 0xA5CD, - 29985 - 11904: 0xD2C0, - 29986 - 11904: 0xB2A3, - 29989 - 11904: 0xB563, - 29990 - 11904: 0xB564, - 29992 - 11904: 0xA5CE, - 29993 - 11904: 0xA5CF, - 29994 - 11904: 0xCA46, - 29995 - 11904: 0xA86A, - 29996 - 11904: 0xA869, - 29997 - 11904: 0xACC7, - 29998 - 11904: 0xCFD9, - 29999 - 11904: 0xDAAC, - 30000 - 11904: 0xA5D0, - 30001 - 11904: 0xA5D1, - 30002 - 11904: 0xA5D2, - 30003 - 11904: 0xA5D3, - 30004 - 11904: 0x9DF4, - 30005 - 11904: 0x896D, - 30007 - 11904: 0xA86B, - 30008 - 11904: 0xA86C, - 30009 - 11904: 0xCB6E, - 30010 - 11904: 0xCB6D, - 30011 - 11904: 0x9C7B, - 30013 - 11904: 0xAAB6, - 30014 - 11904: 0xCD72, - 30015 - 11904: 0xCD70, - 30016 - 11904: 0xCD71, - 30018 - 11904: 0x98D2, - 30022 - 11904: 0x9FA9, - 30023 - 11904: 0xCFDA, - 30024 - 11904: 0xCFDB, - 30026 - 11904: 0xFEB2, - 30027 - 11904: 0xACCB, - 30028 - 11904: 0xACC9, - 30029 - 11904: 0xFEB1, - 30030 - 11904: 0xACCA, - 30031 - 11904: 0xACC8, - 30033 - 11904: 0x97D9, - 30035 - 11904: 0xA0C4, - 30036 - 11904: 0xAF60, - 30037 - 11904: 0x9476, - 30041 - 11904: 0xAF64, - 30042 - 11904: 0xAF63, - 30043 - 11904: 0xD2C1, - 30044 - 11904: 0xAF62, - 30045 - 11904: 0xAF61, - 30047 - 11904: 0xD2C2, - 30048 - 11904: 0x9978, - 30050 - 11904: 0xB2A6, - 30051 - 11904: 0xD67B, - 30052 - 11904: 0xD67A, - 30053 - 11904: 0xB2A4, - 30054 - 11904: 0xB2A5, - 30055 - 11904: 0xFEB3, - 30058 - 11904: 0xB566, - 30059 - 11904: 0xB565, - 30060 - 11904: 0xDAAE, - 30061 - 11904: 0x98D3, - 30062 - 11904: 0xFEB4, - 30063 - 11904: 0xDAAD, - 30064 - 11904: 0xB2A7, - 30066 - 11904: 0x98D4, - 30070 - 11904: 0xB7ED, - 30071 - 11904: 0xDEC5, - 30072 - 11904: 0xB7EE, - 30073 - 11904: 0xDEC4, - 30074 - 11904: 0x9FB9, - 30077 - 11904: 0xE2D8, - 30078 - 11904: 0xE6AE, - 30079 - 11904: 0xBD42, - 30080 - 11904: 0xEA6A, - 30083 - 11904: 0x9471, - 30084 - 11904: 0xED73, - 30086 - 11904: 0xC3A6, - 30087 - 11904: 0xC3A5, - 30090 - 11904: 0xC57C, - 30091 - 11904: 0xA5D4, - 30092 - 11904: 0xCD73, - 30093 - 11904: 0x98D5, - 30094 - 11904: 0xFEB8, - 30095 - 11904: 0xB2A8, - 30096 - 11904: 0xE2D9, - 30097 - 11904: 0xBAC3, - 30098 - 11904: 0xC6D4, - 30100 - 11904: 0xCB6F, - 30101 - 11904: 0xCB70, - 30104 - 11904: 0xCD74, - 30105 - 11904: 0xAAB8, - 30106 - 11904: 0xAAB9, - 30109 - 11904: 0xAAB7, - 30110 - 11904: 0xFEBA, - 30114 - 11904: 0xACCF, - 30115 - 11904: 0xACD0, - 30116 - 11904: 0xACCD, - 30117 - 11904: 0xACCE, - 30119 - 11904: 0xCFDC, - 30122 - 11904: 0xCFDD, - 30123 - 11904: 0xACCC, - 30128 - 11904: 0xD2C3, - 30129 - 11904: 0x9E5C, - 30130 - 11904: 0xAF68, - 30131 - 11904: 0xAF69, - 30132 - 11904: 0xFEBB, - 30133 - 11904: 0xB2AB, - 30134 - 11904: 0xD2C9, - 30136 - 11904: 0xAF6E, - 30137 - 11904: 0xAF6C, - 30138 - 11904: 0xD2CA, - 30139 - 11904: 0xD2C5, - 30140 - 11904: 0xAF6B, - 30141 - 11904: 0xAF6A, - 30142 - 11904: 0xAF65, - 30143 - 11904: 0xD2C8, - 30144 - 11904: 0xD2C7, - 30145 - 11904: 0xD2C4, - 30146 - 11904: 0xAF6D, - 30147 - 11904: 0xA044, - 30148 - 11904: 0xD2C6, - 30149 - 11904: 0xAF66, - 30151 - 11904: 0xAF67, - 30152 - 11904: 0x98D7, - 30154 - 11904: 0xB2AC, - 30155 - 11904: 0xD6A1, - 30156 - 11904: 0xD6A2, - 30157 - 11904: 0xB2AD, - 30158 - 11904: 0xD67C, - 30159 - 11904: 0xD67E, - 30160 - 11904: 0xD6A4, - 30161 - 11904: 0xD6A3, - 30162 - 11904: 0xD67D, - 30164 - 11904: 0xB2A9, - 30165 - 11904: 0xB2AA, - 30167 - 11904: 0xDAB6, - 30168 - 11904: 0xB56B, - 30169 - 11904: 0xB56A, - 30170 - 11904: 0xDAB0, - 30171 - 11904: 0xB568, - 30172 - 11904: 0x98D8, - 30173 - 11904: 0xDAB3, - 30174 - 11904: 0xB56C, - 30175 - 11904: 0xDAB4, - 30176 - 11904: 0xB56D, - 30177 - 11904: 0xDAB1, - 30178 - 11904: 0xB567, - 30179 - 11904: 0xB569, - 30180 - 11904: 0xDAB5, - 30182 - 11904: 0xDAB2, - 30183 - 11904: 0xDAAF, - 30189 - 11904: 0xDED2, - 30191 - 11904: 0xDEC7, - 30192 - 11904: 0xB7F0, - 30193 - 11904: 0xB7F3, - 30194 - 11904: 0xB7F2, - 30195 - 11904: 0xB7F7, - 30196 - 11904: 0xB7F6, - 30197 - 11904: 0xDED3, - 30198 - 11904: 0xDED1, - 30199 - 11904: 0xDECA, - 30200 - 11904: 0xDECE, - 30201 - 11904: 0xDECD, - 30202 - 11904: 0xB7F4, - 30203 - 11904: 0xDED0, - 30204 - 11904: 0xDECC, - 30205 - 11904: 0xDED4, - 30206 - 11904: 0xDECB, - 30207 - 11904: 0xB7F5, - 30208 - 11904: 0xB7EF, - 30209 - 11904: 0xB7F1, - 30210 - 11904: 0xFEBC, - 30211 - 11904: 0xDEC9, - 30215 - 11904: 0x9FFE, - 30216 - 11904: 0xE2DB, - 30217 - 11904: 0xBAC7, - 30218 - 11904: 0xE2DF, - 30219 - 11904: 0xBAC6, - 30220 - 11904: 0xE2DC, - 30221 - 11904: 0xBAC5, - 30223 - 11904: 0xDEC8, - 30224 - 11904: 0xDECF, - 30225 - 11904: 0xE2DE, - 30227 - 11904: 0xBAC8, - 30228 - 11904: 0xE2E0, - 30229 - 11904: 0xE2DD, - 30230 - 11904: 0xE2DA, - 30233 - 11904: 0xE6B1, - 30234 - 11904: 0xE6B5, - 30235 - 11904: 0xE6B7, - 30236 - 11904: 0xE6B3, - 30237 - 11904: 0xE6B2, - 30238 - 11904: 0xE6B0, - 30239 - 11904: 0xBD45, - 30240 - 11904: 0xBD43, - 30241 - 11904: 0xBD48, - 30242 - 11904: 0xBD49, - 30243 - 11904: 0xE6B4, - 30244 - 11904: 0xBD46, - 30245 - 11904: 0xE6AF, - 30246 - 11904: 0xBD47, - 30247 - 11904: 0xBAC4, - 30248 - 11904: 0xE6B6, - 30249 - 11904: 0xBD44, - 30252 - 11904: 0xFEBD, - 30253 - 11904: 0xEA6C, - 30255 - 11904: 0xEA6B, - 30256 - 11904: 0xEA73, - 30257 - 11904: 0xEA6D, - 30258 - 11904: 0xEA72, - 30259 - 11904: 0xEA6F, - 30260 - 11904: 0xBF60, - 30261 - 11904: 0xEA71, - 30264 - 11904: 0xBF61, - 30266 - 11904: 0xBF62, - 30267 - 11904: 0x9DDD, - 30268 - 11904: 0xEA70, - 30269 - 11904: 0xEA6E, - 30272 - 11904: 0x9EE1, - 30274 - 11904: 0xC0F8, - 30275 - 11904: 0xED74, - 30278 - 11904: 0xC0F7, - 30279 - 11904: 0xED77, - 30280 - 11904: 0xED75, - 30281 - 11904: 0xED76, - 30284 - 11904: 0xC0F9, - 30285 - 11904: 0x98DA, - 30286 - 11904: 0x9DDF, - 30287 - 11904: 0xFEBF, - 30288 - 11904: 0xF04D, - 30289 - 11904: 0xFEBE, - 30290 - 11904: 0xC2A1, - 30291 - 11904: 0xF04E, - 30292 - 11904: 0x9EEB, - 30294 - 11904: 0xC27D, - 30295 - 11904: 0xF04F, - 30296 - 11904: 0xC27E, - 30297 - 11904: 0xF04C, - 30298 - 11904: 0xF050, - 30300 - 11904: 0xF04A, - 30303 - 11904: 0xC3A7, - 30304 - 11904: 0xF278, - 30305 - 11904: 0xC3A8, - 30306 - 11904: 0xC46F, - 30308 - 11904: 0xF04B, - 30309 - 11904: 0xC470, - 30310 - 11904: 0x9E59, - 30311 - 11904: 0xA05C, - 30313 - 11904: 0xC4EE, - 30314 - 11904: 0xF5DF, - 30316 - 11904: 0xC57E, - 30317 - 11904: 0xF6F4, - 30318 - 11904: 0xC57D, - 30319 - 11904: 0xFEC0, - 30320 - 11904: 0xF7EA, - 30321 - 11904: 0xC5F5, - 30322 - 11904: 0xC5F6, - 30323 - 11904: 0x9477, - 30324 - 11904: 0x98DC, - 30325 - 11904: 0xF9CC, - 30326 - 11904: 0xFEC1, - 30328 - 11904: 0xACD1, - 30329 - 11904: 0xCFDE, - 30330 - 11904: 0x98DE, - 30331 - 11904: 0xB56E, - 30332 - 11904: 0xB56F, - 30333 - 11904: 0xA5D5, - 30334 - 11904: 0xA6CA, - 30335 - 11904: 0xCA47, - 30337 - 11904: 0xCB71, - 30338 - 11904: 0xA86D, - 30340 - 11904: 0xAABA, - 30342 - 11904: 0xACD2, - 30343 - 11904: 0xACD3, - 30344 - 11904: 0xACD4, - 30345 - 11904: 0xD6A6, - 30346 - 11904: 0xD2CB, - 30347 - 11904: 0xAF6F, - 30350 - 11904: 0xB2AE, - 30351 - 11904: 0xD6A5, - 30352 - 11904: 0xFEC3, - 30354 - 11904: 0xDAB8, - 30355 - 11904: 0xB571, - 30357 - 11904: 0xDAB7, - 30358 - 11904: 0xB570, - 30361 - 11904: 0xDED5, - 30362 - 11904: 0xBD4A, - 30363 - 11904: 0xE6BB, - 30364 - 11904: 0xE6B8, - 30365 - 11904: 0xE6B9, - 30366 - 11904: 0xE6BA, - 30369 - 11904: 0xFEC8, - 30372 - 11904: 0xED78, - 30373 - 11904: 0xFEC9, - 30374 - 11904: 0xF051, - 30378 - 11904: 0xF471, - 30379 - 11904: 0xF470, - 30381 - 11904: 0xF6F5, - 30382 - 11904: 0xA5D6, - 30383 - 11904: 0xCD75, - 30384 - 11904: 0xAF70, - 30388 - 11904: 0xB572, - 30389 - 11904: 0xDED6, - 30391 - 11904: 0xFECA, - 30392 - 11904: 0xE2E1, - 30394 - 11904: 0xBD4B, - 30395 - 11904: 0xEA74, - 30397 - 11904: 0xF052, - 30398 - 11904: 0xF472, - 30399 - 11904: 0xA5D7, - 30402 - 11904: 0xAABB, - 30403 - 11904: 0xACD7, - 30404 - 11904: 0xCFDF, - 30405 - 11904: 0xACD8, - 30406 - 11904: 0xACD6, - 30408 - 11904: 0xACD5, - 30409 - 11904: 0xD2CC, - 30410 - 11904: 0xAF71, - 30412 - 11904: 0xFECB, - 30413 - 11904: 0xAF72, - 30414 - 11904: 0xAF73, - 30418 - 11904: 0xB2B0, - 30419 - 11904: 0xD6A7, - 30420 - 11904: 0xB2AF, - 30422 - 11904: 0x9FC2, - 30425 - 11904: 0x8C6B, - 30426 - 11904: 0xDAB9, - 30427 - 11904: 0xB2B1, - 30428 - 11904: 0xB573, - 30429 - 11904: 0xDED7, - 30430 - 11904: 0xB7F8, - 30431 - 11904: 0xB7F9, - 30433 - 11904: 0xBAC9, - 30435 - 11904: 0xBACA, - 30436 - 11904: 0xBD4C, - 30437 - 11904: 0xBF64, - 30438 - 11904: 0xEA75, - 30439 - 11904: 0xBF63, - 30441 - 11904: 0xED79, - 30442 - 11904: 0xC0FA, - 30444 - 11904: 0xF053, - 30445 - 11904: 0xF473, - 30446 - 11904: 0xA5D8, - 30447 - 11904: 0xA86E, - 30448 - 11904: 0xCD78, - 30449 - 11904: 0xCD77, - 30450 - 11904: 0xAABC, - 30451 - 11904: 0xCD76, - 30452 - 11904: 0xAABD, - 30453 - 11904: 0xCD79, - 30455 - 11904: 0xCFE5, - 30456 - 11904: 0xACDB, - 30457 - 11904: 0xACDA, - 30458 - 11904: 0xCFE7, - 30459 - 11904: 0xCFE6, - 30460 - 11904: 0xACDF, - 30462 - 11904: 0xACDE, - 30465 - 11904: 0xACD9, - 30467 - 11904: 0xCFE1, - 30468 - 11904: 0xCFE2, - 30469 - 11904: 0xCFE3, - 30471 - 11904: 0xACE0, - 30472 - 11904: 0xCFE0, - 30473 - 11904: 0xACDC, - 30474 - 11904: 0xCFE4, - 30475 - 11904: 0xACDD, - 30476 - 11904: 0x98C4, - 30478 - 11904: 0x94B0, - 30479 - 11904: 0x94B1, - 30480 - 11904: 0xD2CF, - 30481 - 11904: 0xD2D3, - 30482 - 11904: 0xD2D1, - 30483 - 11904: 0xD2D0, - 30485 - 11904: 0xD2D4, - 30489 - 11904: 0xD2D5, - 30490 - 11904: 0xD2D6, - 30491 - 11904: 0xD2CE, - 30493 - 11904: 0xD2CD, - 30494 - 11904: 0xFED1, - 30495 - 11904: 0xAF75, - 30496 - 11904: 0xAF76, - 30498 - 11904: 0xD2D7, - 30499 - 11904: 0xD2D2, - 30500 - 11904: 0xA0C1, - 30501 - 11904: 0xD6B0, - 30502 - 11904: 0xFED2, - 30503 - 11904: 0xD2D8, - 30504 - 11904: 0xAF77, - 30505 - 11904: 0xAF74, - 30507 - 11904: 0xA0CD, - 30509 - 11904: 0xD6AA, - 30511 - 11904: 0xD6A9, - 30513 - 11904: 0xD6AB, - 30514 - 11904: 0xD6AC, - 30515 - 11904: 0xD6AE, - 30516 - 11904: 0xD6AD, - 30517 - 11904: 0xD6B2, - 30518 - 11904: 0xB2B5, - 30519 - 11904: 0xB2B2, - 30520 - 11904: 0xB2B6, - 30521 - 11904: 0xD6A8, - 30522 - 11904: 0xB2B7, - 30523 - 11904: 0xD6B1, - 30524 - 11904: 0xB2B4, - 30525 - 11904: 0xD6AF, - 30526 - 11904: 0xB2B3, - 30528 - 11904: 0xFED3, - 30531 - 11904: 0x98E5, - 30532 - 11904: 0xDABC, - 30533 - 11904: 0xDABE, - 30534 - 11904: 0xDABA, - 30535 - 11904: 0xDABB, - 30538 - 11904: 0xDABF, - 30539 - 11904: 0xDAC1, - 30540 - 11904: 0xDAC2, - 30541 - 11904: 0xDABD, - 30542 - 11904: 0xDAC0, - 30543 - 11904: 0xB574, - 30546 - 11904: 0xDEDB, - 30548 - 11904: 0xDEE0, - 30549 - 11904: 0xDED8, - 30550 - 11904: 0xDEDC, - 30552 - 11904: 0xFED6, - 30553 - 11904: 0xDEE1, - 30554 - 11904: 0xDEDD, - 30555 - 11904: 0xB7FA, - 30556 - 11904: 0xB843, - 30558 - 11904: 0xB7FD, - 30559 - 11904: 0xDED9, - 30560 - 11904: 0xDEDA, - 30561 - 11904: 0xBACE, - 30562 - 11904: 0xB846, - 30563 - 11904: 0xB7FE, - 30565 - 11904: 0xB844, - 30566 - 11904: 0xB7FC, - 30567 - 11904: 0xDEDF, - 30568 - 11904: 0xB845, - 30569 - 11904: 0xDEDE, - 30570 - 11904: 0xB841, - 30571 - 11904: 0xB7FB, - 30572 - 11904: 0xB842, - 30573 - 11904: 0xDEE2, - 30574 - 11904: 0xE2E6, - 30575 - 11904: 0xE2E8, - 30578 - 11904: 0x91E4, - 30583 - 11904: 0x8FC7, - 30584 - 11904: 0x94AE, - 30585 - 11904: 0xB840, - 30586 - 11904: 0x8A4F, - 30587 - 11904: 0x94B2, - 30588 - 11904: 0xE2E3, - 30589 - 11904: 0xBACC, - 30590 - 11904: 0xE2E9, - 30591 - 11904: 0xBACD, - 30592 - 11904: 0xE2E7, - 30593 - 11904: 0xE2E2, - 30594 - 11904: 0xE2E5, - 30595 - 11904: 0xE2EA, - 30596 - 11904: 0xBACB, - 30597 - 11904: 0xE2E4, - 30599 - 11904: 0xBD4E, - 30600 - 11904: 0xE6BF, - 30601 - 11904: 0xE6BE, - 30603 - 11904: 0xBD51, - 30604 - 11904: 0xBD4F, - 30605 - 11904: 0xE6BC, - 30606 - 11904: 0xBD4D, - 30607 - 11904: 0xE6BD, - 30609 - 11904: 0xBD50, - 30611 - 11904: 0x8FD4, - 30613 - 11904: 0xEA7D, - 30615 - 11904: 0xEAA1, - 30616 - 11904: 0x98EA, - 30617 - 11904: 0xEA7E, - 30618 - 11904: 0xEA76, - 30619 - 11904: 0xEA7A, - 30620 - 11904: 0xEA79, - 30621 - 11904: 0xEA77, - 30622 - 11904: 0xBF66, - 30623 - 11904: 0xBF67, - 30624 - 11904: 0xBF65, - 30625 - 11904: 0xEA78, - 30626 - 11904: 0xEA7B, - 30627 - 11904: 0xEA7C, - 30629 - 11904: 0xBF68, - 30631 - 11904: 0xC140, - 30632 - 11904: 0xEDA3, - 30634 - 11904: 0xC0FC, - 30635 - 11904: 0xED7B, - 30636 - 11904: 0xC0FE, - 30637 - 11904: 0xC141, - 30639 - 11904: 0xFED8, - 30640 - 11904: 0xC0FD, - 30641 - 11904: 0xEDA2, - 30642 - 11904: 0xED7C, - 30643 - 11904: 0xC0FB, - 30644 - 11904: 0xEDA1, - 30645 - 11904: 0xED7A, - 30646 - 11904: 0xED7E, - 30647 - 11904: 0xED7D, - 30649 - 11904: 0x9DE0, - 30650 - 11904: 0xF055, - 30651 - 11904: 0xC2A4, - 30652 - 11904: 0xC2A5, - 30653 - 11904: 0xC2A2, - 30654 - 11904: 0x98EE, - 30655 - 11904: 0xC2A3, - 30658 - 11904: 0xF054, - 30659 - 11904: 0x95C4, - 30660 - 11904: 0xF27B, - 30661 - 11904: 0xFCE8, - 30663 - 11904: 0xC3A9, - 30665 - 11904: 0xF279, - 30666 - 11904: 0xF27A, - 30667 - 11904: 0x98EF, - 30668 - 11904: 0xF474, - 30669 - 11904: 0xF477, - 30670 - 11904: 0xF475, - 30671 - 11904: 0xF476, - 30672 - 11904: 0xF5E0, - 30675 - 11904: 0xC4EF, - 30676 - 11904: 0xF7EB, - 30677 - 11904: 0xF8B4, - 30679 - 11904: 0xC5F7, - 30680 - 11904: 0xF8F8, - 30681 - 11904: 0xF8F9, - 30682 - 11904: 0xC666, - 30683 - 11904: 0xA5D9, - 30684 - 11904: 0xACE1, - 30685 - 11904: 0x8C6E, - 30686 - 11904: 0xDAC3, - 30688 - 11904: 0xDEE3, - 30690 - 11904: 0xA5DA, - 30691 - 11904: 0xA86F, - 30693 - 11904: 0xAABE, - 30694 - 11904: 0xFAD8, - 30695 - 11904: 0xCFE8, - 30696 - 11904: 0xCFE9, - 30697 - 11904: 0xAF78, - 30700 - 11904: 0xDAC4, - 30701 - 11904: 0xB575, - 30702 - 11904: 0xB847, - 30703 - 11904: 0xC142, - 30704 - 11904: 0xEDA4, - 30705 - 11904: 0xF27C, - 30706 - 11904: 0xF478, - 30707 - 11904: 0xA5DB, - 30708 - 11904: 0xFEDC, - 30711 - 11904: 0xCDA1, - 30712 - 11904: 0xCD7A, - 30713 - 11904: 0xCD7C, - 30714 - 11904: 0xCD7E, - 30715 - 11904: 0xCD7D, - 30716 - 11904: 0xCD7B, - 30717 - 11904: 0xAABF, - 30718 - 11904: 0xA0AE, - 30722 - 11904: 0xACE2, - 30723 - 11904: 0xCFF2, - 30725 - 11904: 0xCFED, - 30726 - 11904: 0xCFEA, - 30728 - 11904: 0x9D4C, - 30729 - 11904: 0xFEDD, - 30732 - 11904: 0xACE4, - 30733 - 11904: 0xACE5, - 30734 - 11904: 0xCFF0, - 30735 - 11904: 0xCFEF, - 30736 - 11904: 0xCFEE, - 30737 - 11904: 0xCFEB, - 30738 - 11904: 0xCFEC, - 30739 - 11904: 0xCFF3, - 30740 - 11904: 0xACE3, - 30744 - 11904: 0x98F1, - 30748 - 11904: 0x98F3, - 30749 - 11904: 0xAF7C, - 30750 - 11904: 0x94C1, - 30751 - 11904: 0xAFA4, - 30752 - 11904: 0xAFA3, - 30753 - 11904: 0xD2E1, - 30754 - 11904: 0xD2DB, - 30755 - 11904: 0xD2D9, - 30757 - 11904: 0xAFA1, - 30758 - 11904: 0xD6B9, - 30759 - 11904: 0xAF7A, - 30760 - 11904: 0xD2DE, - 30761 - 11904: 0xD2E2, - 30762 - 11904: 0xD2E4, - 30763 - 11904: 0xD2E0, - 30764 - 11904: 0xD2DA, - 30765 - 11904: 0xAFA2, - 30766 - 11904: 0xD2DF, - 30767 - 11904: 0xD2DD, - 30768 - 11904: 0xAF79, - 30769 - 11904: 0xD2E5, - 30770 - 11904: 0xAFA5, - 30771 - 11904: 0xD2E3, - 30772 - 11904: 0xAF7D, - 30773 - 11904: 0xD2DC, - 30775 - 11904: 0xAF7E, - 30776 - 11904: 0xAF7B, - 30777 - 11904: 0x98F5, - 30780 - 11904: 0xFA4F, - 30781 - 11904: 0x96E2, - 30786 - 11904: 0x9450, - 30787 - 11904: 0xB2B9, - 30788 - 11904: 0x96A2, - 30789 - 11904: 0xD6BA, - 30791 - 11904: 0x98F6, - 30792 - 11904: 0xD6B3, - 30793 - 11904: 0xD6B5, - 30794 - 11904: 0xD6B7, - 30795 - 11904: 0x96E5, - 30796 - 11904: 0xD6B8, - 30797 - 11904: 0xD6B6, - 30798 - 11904: 0xB2BA, - 30800 - 11904: 0xD6BB, - 30801 - 11904: 0x98F7, - 30802 - 11904: 0xD6B4, - 30803 - 11904: 0xA046, - 30804 - 11904: 0x96E3, - 30812 - 11904: 0xDAC8, - 30813 - 11904: 0xB576, - 30814 - 11904: 0xDAD0, - 30816 - 11904: 0xDAC5, - 30818 - 11904: 0xDAD1, - 30820 - 11904: 0xDAC6, - 30821 - 11904: 0xDAC7, - 30822 - 11904: 0x98F8, - 30824 - 11904: 0xDACF, - 30825 - 11904: 0xDACE, - 30826 - 11904: 0xDACB, - 30827 - 11904: 0xB2B8, - 30828 - 11904: 0xB577, - 30829 - 11904: 0xDAC9, - 30830 - 11904: 0xDACC, - 30831 - 11904: 0xB578, - 30832 - 11904: 0xDACD, - 30833 - 11904: 0xDACA, - 30841 - 11904: 0xDEEE, - 30842 - 11904: 0x9EE4, - 30843 - 11904: 0xDEF2, - 30844 - 11904: 0xB84E, - 30846 - 11904: 0xE2F0, - 30847 - 11904: 0xB851, - 30848 - 11904: 0xDEF0, - 30849 - 11904: 0xF9D6, - 30851 - 11904: 0xDEED, - 30852 - 11904: 0xDEE8, - 30853 - 11904: 0xDEEA, - 30854 - 11904: 0xDEEB, - 30855 - 11904: 0xDEE4, - 30856 - 11904: 0x94C3, - 30857 - 11904: 0xB84D, - 30860 - 11904: 0xB84C, - 30861 - 11904: 0x94C2, - 30862 - 11904: 0xB848, - 30863 - 11904: 0xDEE7, - 30865 - 11904: 0xB84F, - 30867 - 11904: 0xB850, - 30868 - 11904: 0xDEE6, - 30869 - 11904: 0xDEE9, - 30870 - 11904: 0xDEF1, - 30871 - 11904: 0xB84A, - 30872 - 11904: 0xB84B, - 30873 - 11904: 0xDEEF, - 30874 - 11904: 0xDEE5, - 30878 - 11904: 0xE2F2, - 30879 - 11904: 0xBAD0, - 30880 - 11904: 0xE2F4, - 30881 - 11904: 0xDEEC, - 30882 - 11904: 0xE2F6, - 30883 - 11904: 0xBAD4, - 30884 - 11904: 0xE2F7, - 30885 - 11904: 0xE2F3, - 30887 - 11904: 0xBAD1, - 30888 - 11904: 0xE2EF, - 30889 - 11904: 0xBAD3, - 30890 - 11904: 0xE2EC, - 30891 - 11904: 0xE2F1, - 30892 - 11904: 0xE2F5, - 30893 - 11904: 0xE2EE, - 30895 - 11904: 0xFEE1, - 30896 - 11904: 0xB849, - 30897 - 11904: 0xFEE9, - 30898 - 11904: 0xE2EB, - 30899 - 11904: 0xBAD2, - 30900 - 11904: 0xE2ED, - 30902 - 11904: 0x96E4, - 30904 - 11904: 0x89AC, - 30905 - 11904: 0x96DB, - 30906 - 11904: 0xBD54, - 30907 - 11904: 0xE6C1, - 30908 - 11904: 0xBD58, - 30910 - 11904: 0xBD56, - 30913 - 11904: 0xBACF, - 30915 - 11904: 0xE6C8, - 30916 - 11904: 0xE6C9, - 30917 - 11904: 0xBD53, - 30919 - 11904: 0xFEE2, - 30920 - 11904: 0xE6C7, - 30921 - 11904: 0xE6CA, - 30922 - 11904: 0xBD55, - 30923 - 11904: 0xBD52, - 30924 - 11904: 0xE6C3, - 30925 - 11904: 0xE6C0, - 30926 - 11904: 0xE6C5, - 30927 - 11904: 0xE6C2, - 30928 - 11904: 0xBD59, - 30929 - 11904: 0xE6C4, - 30930 - 11904: 0x94C4, - 30931 - 11904: 0xFEE3, - 30932 - 11904: 0xE6C6, - 30933 - 11904: 0xBD57, - 30935 - 11904: 0xFEE7, - 30936 - 11904: 0x9FFB, - 30938 - 11904: 0xBF6A, - 30939 - 11904: 0xEAA8, - 30941 - 11904: 0xEAA2, - 30942 - 11904: 0xEAA6, - 30943 - 11904: 0xEAAC, - 30944 - 11904: 0xEAAD, - 30945 - 11904: 0xEAA9, - 30946 - 11904: 0xEAAA, - 30947 - 11904: 0xEAA7, - 30948 - 11904: 0x8C59, - 30949 - 11904: 0xEAA4, - 30951 - 11904: 0xBF6C, - 30952 - 11904: 0xBF69, - 30953 - 11904: 0xEAA3, - 30954 - 11904: 0xEAA5, - 30956 - 11904: 0xBF6B, - 30957 - 11904: 0xEAAB, - 30958 - 11904: 0x93C9, - 30959 - 11904: 0xC146, - 30960 - 11904: 0x94E8, - 30961 - 11904: 0xFB56, - 30962 - 11904: 0xEDAA, - 30963 - 11904: 0xEDA5, - 30964 - 11904: 0xC145, - 30965 - 11904: 0x90C5, - 30967 - 11904: 0xC143, - 30969 - 11904: 0xEDAC, - 30970 - 11904: 0xC144, - 30971 - 11904: 0xEDA8, - 30972 - 11904: 0xEDA9, - 30973 - 11904: 0xEDA6, - 30974 - 11904: 0xEDAD, - 30975 - 11904: 0xF056, - 30977 - 11904: 0xC147, - 30978 - 11904: 0xEDA7, - 30980 - 11904: 0xEDAE, - 30981 - 11904: 0xEDAB, - 30982 - 11904: 0xA0A8, - 30985 - 11904: 0xF05A, - 30988 - 11904: 0xF057, - 30990 - 11904: 0xC2A6, - 30992 - 11904: 0xF05B, - 30993 - 11904: 0xF05D, - 30994 - 11904: 0xF05C, - 30995 - 11904: 0xF058, - 30996 - 11904: 0xF059, - 30999 - 11904: 0xF2A3, - 31001 - 11904: 0xC3AA, - 31003 - 11904: 0xF27E, - 31004 - 11904: 0xF2A2, - 31005 - 11904: 0xF27D, - 31006 - 11904: 0xF2A4, - 31009 - 11904: 0xF2A1, - 31011 - 11904: 0xF47A, - 31012 - 11904: 0xF47D, - 31013 - 11904: 0xF479, - 31014 - 11904: 0xC471, - 31015 - 11904: 0xF47B, - 31016 - 11904: 0xF47C, - 31017 - 11904: 0xF47E, - 31018 - 11904: 0xC472, - 31019 - 11904: 0xC474, - 31020 - 11904: 0xC473, - 31021 - 11904: 0xF5E1, - 31022 - 11904: 0xFEE5, - 31023 - 11904: 0xF5E3, - 31025 - 11904: 0xF5E2, - 31026 - 11904: 0x98FD, - 31027 - 11904: 0x98FB, - 31028 - 11904: 0xFEE8, - 31029 - 11904: 0xF6F6, - 31030 - 11904: 0x8EBF, - 31032 - 11904: 0xF8B5, - 31033 - 11904: 0xF8FA, - 31034 - 11904: 0xA5DC, - 31035 - 11904: 0x8BD8, - 31036 - 11904: 0xFEF7, - 31037 - 11904: 0xCB72, - 31038 - 11904: 0xAAC0, - 31039 - 11904: 0xCDA3, - 31040 - 11904: 0xAAC1, - 31041 - 11904: 0xAAC2, - 31042 - 11904: 0xCDA2, - 31044 - 11904: 0xCFF8, - 31045 - 11904: 0xCFF7, - 31046 - 11904: 0xACE6, - 31047 - 11904: 0xACE9, - 31048 - 11904: 0xACE8, - 31049 - 11904: 0xACE7, - 31050 - 11904: 0xCFF4, - 31051 - 11904: 0xCFF6, - 31052 - 11904: 0xCFF5, - 31055 - 11904: 0xD2E8, - 31056 - 11904: 0xAFA7, - 31057 - 11904: 0xD2EC, - 31058 - 11904: 0xD2EB, - 31059 - 11904: 0xD2EA, - 31060 - 11904: 0xD2E6, - 31061 - 11904: 0xAFA6, - 31062 - 11904: 0xAFAA, - 31063 - 11904: 0xAFAD, - 31064 - 11904: 0x8F68, - 31065 - 11904: 0x94C6, - 31066 - 11904: 0xAFAE, - 31067 - 11904: 0xD2E7, - 31068 - 11904: 0xD2E9, - 31069 - 11904: 0xAFAC, - 31070 - 11904: 0xAFAB, - 31071 - 11904: 0xAFA9, - 31072 - 11904: 0xAFA8, - 31073 - 11904: 0xD6C2, - 31074 - 11904: 0x9DEA, - 31075 - 11904: 0xD6C0, - 31076 - 11904: 0xD6BC, - 31077 - 11904: 0xB2BB, - 31079 - 11904: 0xD6BD, - 31080 - 11904: 0xB2BC, - 31081 - 11904: 0xD6BE, - 31082 - 11904: 0xD6BF, - 31083 - 11904: 0xD6C1, - 31085 - 11904: 0xB2BD, - 31088 - 11904: 0xDAD5, - 31089 - 11904: 0xFC69, - 31090 - 11904: 0xDAD4, - 31091 - 11904: 0xDAD3, - 31092 - 11904: 0xDAD2, - 31097 - 11904: 0xDEF6, - 31098 - 11904: 0xB852, - 31100 - 11904: 0xDEF3, - 31101 - 11904: 0xDEF5, - 31102 - 11904: 0x9CDA, - 31103 - 11904: 0xB853, - 31104 - 11904: 0xFEF3, - 31105 - 11904: 0xB854, - 31106 - 11904: 0xDEF4, - 31107 - 11904: 0x9C72, - 31110 - 11904: 0xFEF0, - 31111 - 11904: 0x89C9, - 31112 - 11904: 0xE341, - 31114 - 11904: 0xE2F9, - 31115 - 11904: 0xE2FA, - 31117 - 11904: 0xBAD7, - 31118 - 11904: 0xBAD5, - 31119 - 11904: 0xBAD6, - 31120 - 11904: 0xE343, - 31121 - 11904: 0x9941, - 31122 - 11904: 0xE342, - 31123 - 11904: 0xE2FE, - 31124 - 11904: 0xE2FD, - 31125 - 11904: 0xE2FC, - 31126 - 11904: 0xE2FB, - 31127 - 11904: 0xE340, - 31128 - 11904: 0xE2F8, - 31129 - 11904: 0x9942, - 31130 - 11904: 0xE6CB, - 31131 - 11904: 0xE6D0, - 31132 - 11904: 0xE6CE, - 31133 - 11904: 0xFEF5, - 31135 - 11904: 0x91D7, - 31136 - 11904: 0xE6CD, - 31137 - 11904: 0xE6CC, - 31138 - 11904: 0xE6CF, - 31140 - 11904: 0xEAAE, - 31141 - 11904: 0x94CC, - 31142 - 11904: 0xBF6D, - 31143 - 11904: 0xC148, - 31144 - 11904: 0xEDB0, - 31145 - 11904: 0xFEF8, - 31146 - 11904: 0xC149, - 31147 - 11904: 0xEDAF, - 31148 - 11904: 0xF05F, - 31149 - 11904: 0xF05E, - 31150 - 11904: 0xC2A7, - 31152 - 11904: 0xF2A5, - 31153 - 11904: 0xC3AB, - 31154 - 11904: 0xF4A1, - 31155 - 11904: 0xC5A1, - 31156 - 11904: 0xF6F7, - 31158 - 11904: 0xF8B7, - 31159 - 11904: 0xF8B6, - 31160 - 11904: 0xC9A8, - 31161 - 11904: 0xACEA, - 31162 - 11904: 0xACEB, - 31163 - 11904: 0xD6C3, - 31165 - 11904: 0xB856, - 31166 - 11904: 0xA5DD, - 31167 - 11904: 0xA872, - 31168 - 11904: 0xA871, - 31169 - 11904: 0xA870, - 31172 - 11904: 0x97A8, - 31173 - 11904: 0xCDA4, - 31174 - 11904: 0xFEFC, - 31176 - 11904: 0xAAC4, - 31177 - 11904: 0xAAC3, - 31178 - 11904: 0x8CDE, - 31179 - 11904: 0xACEE, - 31180 - 11904: 0xFDBF, - 31181 - 11904: 0xCFFA, - 31182 - 11904: 0xCFFD, - 31183 - 11904: 0xCFFB, - 31184 - 11904: 0x87B3, - 31185 - 11904: 0xACEC, - 31186 - 11904: 0xACED, - 31188 - 11904: 0xFEFE, - 31189 - 11904: 0xCFF9, - 31190 - 11904: 0xCFFC, - 31192 - 11904: 0xAFB5, - 31196 - 11904: 0xD2F3, - 31197 - 11904: 0xD2F5, - 31198 - 11904: 0xD2F4, - 31199 - 11904: 0xAFB2, - 31200 - 11904: 0xD2EF, - 31202 - 11904: 0x96D1, - 31203 - 11904: 0xAFB0, - 31204 - 11904: 0xAFAF, - 31206 - 11904: 0xAFB3, - 31207 - 11904: 0xAFB1, - 31209 - 11904: 0xAFB4, - 31210 - 11904: 0xD2F2, - 31211 - 11904: 0xD2ED, - 31212 - 11904: 0xD2EE, - 31213 - 11904: 0xD2F1, - 31214 - 11904: 0xD2F0, - 31217 - 11904: 0x94D5, - 31220 - 11904: 0x94D0, - 31222 - 11904: 0xD6C6, - 31223 - 11904: 0xD6C7, - 31224 - 11904: 0xD6C5, - 31226 - 11904: 0xD6C4, - 31227 - 11904: 0xB2BE, - 31232 - 11904: 0xB57D, - 31234 - 11904: 0xDAD6, - 31235 - 11904: 0xDAD8, - 31236 - 11904: 0xDADA, - 31237 - 11904: 0xB57C, - 31238 - 11904: 0x9944, - 31240 - 11904: 0xB57A, - 31242 - 11904: 0xDAD7, - 31243 - 11904: 0xB57B, - 31244 - 11904: 0xDAD9, - 31245 - 11904: 0xB579, - 31248 - 11904: 0xDF41, - 31249 - 11904: 0xDEF7, - 31250 - 11904: 0xDEFA, - 31251 - 11904: 0xDEFE, - 31252 - 11904: 0xB85A, - 31253 - 11904: 0xDEFC, - 31255 - 11904: 0xDEFB, - 31256 - 11904: 0xDEF8, - 31257 - 11904: 0xDEF9, - 31258 - 11904: 0xB858, - 31259 - 11904: 0xDF40, - 31260 - 11904: 0xB857, - 31262 - 11904: 0xB85C, - 31263 - 11904: 0xB85B, - 31264 - 11904: 0xB859, - 31266 - 11904: 0xDEFD, - 31270 - 11904: 0xE349, - 31272 - 11904: 0xE348, - 31274 - 11904: 0x8C63, - 31275 - 11904: 0xE344, - 31276 - 11904: 0x87BB, - 31277 - 11904: 0xA0B3, - 31278 - 11904: 0xBAD8, - 31279 - 11904: 0xE347, - 31280 - 11904: 0xE346, - 31281 - 11904: 0xBAD9, - 31282 - 11904: 0x87B4, - 31287 - 11904: 0xBD5E, - 31289 - 11904: 0xE6D2, - 31290 - 11904: 0x94CF, - 31291 - 11904: 0xBD5F, - 31292 - 11904: 0xBD5B, - 31293 - 11904: 0xBD5D, - 31294 - 11904: 0x9FFA, - 31295 - 11904: 0xBD5A, - 31296 - 11904: 0xBD5C, - 31299 - 11904: 0x91E5, - 31300 - 11904: 0xEAAF, - 31301 - 11904: 0x9C6A, - 31302 - 11904: 0xBF70, - 31303 - 11904: 0xEAB1, - 31304 - 11904: 0xEAB0, - 31305 - 11904: 0x8E49, - 31306 - 11904: 0xE345, - 31307 - 11904: 0xBF72, - 31308 - 11904: 0xBF71, - 31309 - 11904: 0xBF6E, - 31310 - 11904: 0xBF6F, - 31316 - 11904: 0xEDB5, - 31318 - 11904: 0xEDB3, - 31319 - 11904: 0xC14A, - 31320 - 11904: 0xEDB4, - 31322 - 11904: 0xEDB6, - 31323 - 11904: 0xEDB2, - 31324 - 11904: 0xEDB1, - 31327 - 11904: 0xF060, - 31328 - 11904: 0xC2AA, - 31329 - 11904: 0xC2A8, - 31330 - 11904: 0xC2A9, - 31333 - 11904: 0x8E4C, - 31335 - 11904: 0xF2A6, - 31336 - 11904: 0xF2A7, - 31337 - 11904: 0xC3AD, - 31339 - 11904: 0xC3AC, - 31340 - 11904: 0xF4A3, - 31341 - 11904: 0xF4A4, - 31342 - 11904: 0xF4A2, - 31344 - 11904: 0xF6F8, - 31345 - 11904: 0xF6F9, - 31346 - 11904: 0x87C9, - 31348 - 11904: 0xA5DE, - 31349 - 11904: 0xCA48, - 31350 - 11904: 0xA873, - 31352 - 11904: 0xCDA5, - 31353 - 11904: 0xAAC6, - 31354 - 11904: 0xAAC5, - 31355 - 11904: 0xCDA6, - 31357 - 11904: 0x8E4D, - 31358 - 11904: 0xD040, - 31359 - 11904: 0xACEF, - 31360 - 11904: 0xCFFE, - 31361 - 11904: 0xACF0, - 31363 - 11904: 0x9A73, - 31364 - 11904: 0xAFB6, - 31365 - 11904: 0xD2F8, - 31366 - 11904: 0xD2F6, - 31367 - 11904: 0xD2FC, - 31368 - 11904: 0xAFB7, - 31369 - 11904: 0xD2F7, - 31370 - 11904: 0xD2FB, - 31371 - 11904: 0xD2F9, - 31372 - 11904: 0xD2FA, - 31375 - 11904: 0xD6C8, - 31376 - 11904: 0xD6CA, - 31377 - 11904: 0x9947, - 31378 - 11904: 0xB2BF, - 31379 - 11904: 0x8CB1, - 31380 - 11904: 0xD6C9, - 31381 - 11904: 0xB2C0, - 31382 - 11904: 0xB5A2, - 31383 - 11904: 0xB5A1, - 31384 - 11904: 0xB57E, - 31385 - 11904: 0xDADB, - 31390 - 11904: 0xDF44, - 31391 - 11904: 0xB85D, - 31392 - 11904: 0xB85E, - 31394 - 11904: 0xDF43, - 31395 - 11904: 0xDF42, - 31400 - 11904: 0xE34A, - 31401 - 11904: 0xBADB, - 31402 - 11904: 0xBADA, - 31403 - 11904: 0xE34B, - 31404 - 11904: 0xE34C, - 31406 - 11904: 0xBD61, - 31407 - 11904: 0xBD60, - 31408 - 11904: 0x8E50, - 31409 - 11904: 0xEAB5, - 31410 - 11904: 0xE6D3, - 31411 - 11904: 0xE6D5, - 31412 - 11904: 0xE6D4, - 31413 - 11904: 0xEAB4, - 31414 - 11904: 0xEAB2, - 31415 - 11904: 0xEAB6, - 31416 - 11904: 0xEAB3, - 31418 - 11904: 0xBF73, - 31419 - 11904: 0x8E4F, - 31420 - 11904: 0x9949, - 31422 - 11904: 0xEDB7, - 31423 - 11904: 0xC14B, - 31424 - 11904: 0xEDB8, - 31425 - 11904: 0xEDB9, - 31426 - 11904: 0x8E51, - 31427 - 11904: 0x8E52, - 31428 - 11904: 0xC2AB, - 31429 - 11904: 0xC2AC, - 31431 - 11904: 0xC475, - 31432 - 11904: 0x9AB2, - 31433 - 11904: 0x89A5, - 31434 - 11904: 0xC5D1, - 31435 - 11904: 0xA5DF, - 31439 - 11904: 0x994C, - 31441 - 11904: 0xD041, - 31443 - 11904: 0x9FF8, - 31448 - 11904: 0xD2FD, - 31449 - 11904: 0xAFB8, - 31450 - 11904: 0x8E56, - 31451 - 11904: 0x994D, - 31452 - 11904: 0x91CA, - 31453 - 11904: 0x8E57, - 31455 - 11904: 0xB3BA, - 31456 - 11904: 0xB3B9, - 31458 - 11904: 0x94E1, - 31459 - 11904: 0xB5A4, - 31460 - 11904: 0xDADD, - 31461 - 11904: 0xB5A3, - 31462 - 11904: 0xDADC, - 31463 - 11904: 0x9047, - 31465 - 11904: 0x8FD8, - 31466 - 11904: 0x8E58, - 31467 - 11904: 0xDF45, - 31469 - 11904: 0xBADC, - 31470 - 11904: 0xE34D, - 31471 - 11904: 0xBADD, - 31478 - 11904: 0xC476, - 31479 - 11904: 0xF4A5, - 31481 - 11904: 0xA6CB, - 31482 - 11904: 0xAAC7, - 31483 - 11904: 0xCDA7, - 31484 - 11904: 0x87A3, - 31485 - 11904: 0xACF2, - 31486 - 11904: 0x94EB, - 31487 - 11904: 0xACF1, - 31488 - 11904: 0xD042, - 31489 - 11904: 0xD043, - 31492 - 11904: 0xD340, - 31493 - 11904: 0xD342, - 31494 - 11904: 0xAFB9, - 31496 - 11904: 0xD344, - 31497 - 11904: 0xD347, - 31498 - 11904: 0xD345, - 31499 - 11904: 0x8E5C, - 31500 - 11904: 0x9553, - 31502 - 11904: 0xD346, - 31503 - 11904: 0xD343, - 31504 - 11904: 0xD2FE, - 31505 - 11904: 0xAFBA, - 31506 - 11904: 0xD348, - 31507 - 11904: 0xD341, - 31508 - 11904: 0x9FE5, - 31512 - 11904: 0xD6D3, - 31513 - 11904: 0xB2C6, - 31514 - 11904: 0xD6DC, - 31515 - 11904: 0xB2C3, - 31517 - 11904: 0xD6D5, - 31518 - 11904: 0xB2C7, - 31519 - 11904: 0x9F56, - 31520 - 11904: 0xB2C1, - 31522 - 11904: 0xD6D0, - 31523 - 11904: 0xD6DD, - 31524 - 11904: 0xD6D1, - 31525 - 11904: 0xD6CE, - 31526 - 11904: 0xB2C5, - 31527 - 11904: 0x954F, - 31528 - 11904: 0xB2C2, - 31529 - 11904: 0x8E5E, - 31530 - 11904: 0xD6D4, - 31531 - 11904: 0xD6D7, - 31532 - 11904: 0xB2C4, - 31533 - 11904: 0xD6D8, - 31534 - 11904: 0xB2C8, - 31535 - 11904: 0xD6D9, - 31536 - 11904: 0xD6CF, - 31537 - 11904: 0xD6D6, - 31538 - 11904: 0xD6DA, - 31539 - 11904: 0xD6D2, - 31540 - 11904: 0xD6CD, - 31541 - 11904: 0xD6CB, - 31544 - 11904: 0xD6DB, - 31545 - 11904: 0x996A, - 31547 - 11904: 0xDADF, - 31552 - 11904: 0xDAE4, - 31554 - 11904: 0x9C64, - 31555 - 11904: 0x9CD9, - 31556 - 11904: 0xDAE0, - 31557 - 11904: 0xDAE6, - 31558 - 11904: 0xB5A7, - 31559 - 11904: 0xD6CC, - 31560 - 11904: 0xDAE1, - 31561 - 11904: 0xB5A5, - 31562 - 11904: 0xDADE, - 31563 - 11904: 0xB5AC, - 31564 - 11904: 0xDAE2, - 31565 - 11904: 0xB5AB, - 31566 - 11904: 0xDAE3, - 31567 - 11904: 0xB5AD, - 31568 - 11904: 0xB5A8, - 31569 - 11904: 0xB5AE, - 31570 - 11904: 0xB5A9, - 31572 - 11904: 0xB5AA, - 31573 - 11904: 0x8E5D, - 31574 - 11904: 0xB5A6, - 31576 - 11904: 0xDAE5, - 31584 - 11904: 0xB861, - 31585 - 11904: 0xDF50, - 31586 - 11904: 0x9950, - 31587 - 11904: 0xDF53, - 31588 - 11904: 0xDF47, - 31589 - 11904: 0xDF4C, - 31590 - 11904: 0xDF46, - 31591 - 11904: 0xB863, - 31593 - 11904: 0xDF4A, - 31596 - 11904: 0x9951, - 31597 - 11904: 0xDF48, - 31598 - 11904: 0xB862, - 31599 - 11904: 0x8E62, - 31600 - 11904: 0xDF4F, - 31601 - 11904: 0xDF4E, - 31602 - 11904: 0xDF4B, - 31603 - 11904: 0xDF4D, - 31604 - 11904: 0xDF49, - 31605 - 11904: 0xBAE1, - 31606 - 11904: 0xDF52, - 31607 - 11904: 0xB85F, - 31608 - 11904: 0xDF51, - 31611 - 11904: 0x9952, - 31618 - 11904: 0xE35D, - 31620 - 11904: 0xBAE8, - 31621 - 11904: 0xE358, - 31623 - 11904: 0xBAE7, - 31624 - 11904: 0xE34E, - 31626 - 11904: 0xE350, - 31627 - 11904: 0xBAE0, - 31628 - 11904: 0xE355, - 31629 - 11904: 0xE354, - 31630 - 11904: 0xE357, - 31631 - 11904: 0xBAE5, - 31632 - 11904: 0xE352, - 31633 - 11904: 0xE351, - 31634 - 11904: 0x8E68, - 31636 - 11904: 0xBAE4, - 31637 - 11904: 0xBADF, - 31638 - 11904: 0xE353, - 31639 - 11904: 0xBAE2, - 31640 - 11904: 0xE359, - 31641 - 11904: 0xE35B, - 31643 - 11904: 0xE356, - 31644 - 11904: 0xE34F, - 31645 - 11904: 0xBAE3, - 31648 - 11904: 0xBD69, - 31649 - 11904: 0xBADE, - 31650 - 11904: 0x8E61, - 31651 - 11904: 0x9F59, - 31652 - 11904: 0xE35C, - 31660 - 11904: 0xE6D9, - 31661 - 11904: 0xBD62, - 31662 - 11904: 0x87D0, - 31663 - 11904: 0xE6DB, - 31665 - 11904: 0xBD63, - 31666 - 11904: 0x8BB3, - 31668 - 11904: 0xBD65, - 31669 - 11904: 0xE6DE, - 31671 - 11904: 0xE6D6, - 31672 - 11904: 0xBAE6, - 31673 - 11904: 0xE6DC, - 31678 - 11904: 0xE6D8, - 31680 - 11904: 0xB860, - 31681 - 11904: 0xBD68, - 31684 - 11904: 0xBD64, - 31685 - 11904: 0x87B9, - 31686 - 11904: 0xBD66, - 31687 - 11904: 0xBD67, - 31689 - 11904: 0xBF76, - 31690 - 11904: 0xE6DD, - 31691 - 11904: 0xE6D7, - 31692 - 11904: 0xBD6A, - 31694 - 11904: 0xE6DA, - 31695 - 11904: 0x9F5D, - 31696 - 11904: 0x8E66, - 31700 - 11904: 0xEAC0, - 31701 - 11904: 0xEABB, - 31704 - 11904: 0xEAC5, - 31705 - 11904: 0xBF74, - 31706 - 11904: 0xEABD, - 31707 - 11904: 0xBF78, - 31708 - 11904: 0xEAC3, - 31709 - 11904: 0xEABA, - 31710 - 11904: 0xEAB7, - 31711 - 11904: 0xEAC6, - 31712 - 11904: 0xC151, - 31713 - 11904: 0xBF79, - 31714 - 11904: 0xEAC2, - 31715 - 11904: 0xEAB8, - 31716 - 11904: 0xBF77, - 31717 - 11904: 0xEABC, - 31718 - 11904: 0xBF7B, - 31719 - 11904: 0xEAB9, - 31720 - 11904: 0xEABE, - 31721 - 11904: 0xBF7A, - 31722 - 11904: 0xEAC1, - 31723 - 11904: 0xEAC4, - 31724 - 11904: 0x8CB2, - 31728 - 11904: 0xEDCB, - 31729 - 11904: 0xEDCC, - 31730 - 11904: 0xEDBC, - 31731 - 11904: 0xEDC3, - 31732 - 11904: 0xEDC1, - 31735 - 11904: 0xC14F, - 31736 - 11904: 0xEDC8, - 31737 - 11904: 0xEABF, - 31738 - 11904: 0x8E6E, - 31739 - 11904: 0xEDBF, - 31740 - 11904: 0x9F64, - 31741 - 11904: 0xEDC9, - 31742 - 11904: 0xC14E, - 31743 - 11904: 0xEDBE, - 31744 - 11904: 0xEDBD, - 31745 - 11904: 0xEDC7, - 31746 - 11904: 0xEDC4, - 31747 - 11904: 0xEDC6, - 31749 - 11904: 0xEDBA, - 31750 - 11904: 0xEDCA, - 31751 - 11904: 0xC14C, - 31753 - 11904: 0xEDC5, - 31754 - 11904: 0xEDCE, - 31755 - 11904: 0xEDC2, - 31756 - 11904: 0xC150, - 31757 - 11904: 0xC14D, - 31758 - 11904: 0xEDC0, - 31759 - 11904: 0xEDBB, - 31760 - 11904: 0xEDCD, - 31761 - 11904: 0xBF75, - 31762 - 11904: 0x9953, - 31765 - 11904: 0xFAB8, - 31769 - 11904: 0xF063, - 31771 - 11904: 0x9954, - 31772 - 11904: 0xF061, - 31773 - 11904: 0xF067, - 31774 - 11904: 0xC2B0, - 31775 - 11904: 0xF065, - 31776 - 11904: 0xF064, - 31777 - 11904: 0xC2B2, - 31778 - 11904: 0xF06A, - 31779 - 11904: 0xC2B1, - 31781 - 11904: 0xF06B, - 31782 - 11904: 0xF068, - 31783 - 11904: 0xC2AE, - 31784 - 11904: 0xF069, - 31785 - 11904: 0xF062, - 31786 - 11904: 0xC2AF, - 31787 - 11904: 0xC2AD, - 31788 - 11904: 0xF2AB, - 31789 - 11904: 0xF066, - 31792 - 11904: 0xF06C, - 31795 - 11904: 0xF2A8, - 31797 - 11904: 0x8E70, - 31799 - 11904: 0xC3B2, - 31800 - 11904: 0xC3B0, - 31801 - 11904: 0xF2AA, - 31803 - 11904: 0xF2AC, - 31804 - 11904: 0xF2A9, - 31805 - 11904: 0xC3B1, - 31806 - 11904: 0xC3AE, - 31807 - 11904: 0xC3AF, - 31808 - 11904: 0xC3B3, - 31810 - 11904: 0x9F61, - 31811 - 11904: 0xC478, - 31812 - 11904: 0x8E72, - 31813 - 11904: 0xF4AA, - 31815 - 11904: 0xF4A9, - 31816 - 11904: 0xF4A7, - 31817 - 11904: 0xF4A6, - 31818 - 11904: 0xF4A8, - 31820 - 11904: 0xC477, - 31821 - 11904: 0xC479, - 31824 - 11904: 0xC4F0, - 31825 - 11904: 0xA06B, - 31827 - 11904: 0xF5E5, - 31828 - 11904: 0xF5E4, - 31830 - 11904: 0x9F40, - 31831 - 11904: 0xF6FA, - 31833 - 11904: 0xF6FC, - 31834 - 11904: 0xF6FE, - 31835 - 11904: 0xF6FD, - 31836 - 11904: 0xF6FB, - 31837 - 11904: 0x94ED, - 31839 - 11904: 0xC5A3, - 31840 - 11904: 0xC5A2, - 31843 - 11904: 0xC5D3, - 31844 - 11904: 0xC5D2, - 31845 - 11904: 0xC5D4, - 31846 - 11904: 0xF7ED, - 31847 - 11904: 0xF7EC, - 31849 - 11904: 0xF8FB, - 31850 - 11904: 0xF8B8, - 31851 - 11904: 0xF8FC, - 31852 - 11904: 0xC658, - 31853 - 11904: 0x94EE, - 31854 - 11904: 0xC659, - 31855 - 11904: 0xF96D, - 31856 - 11904: 0x9FBD, - 31858 - 11904: 0xC67E, - 31859 - 11904: 0xA6CC, - 31860 - 11904: 0x8E7B, - 31861 - 11904: 0xCDA8, - 31864 - 11904: 0xD045, - 31865 - 11904: 0xD046, - 31866 - 11904: 0xD044, - 31867 - 11904: 0x9957, - 31868 - 11904: 0x94F7, - 31869 - 11904: 0xACF3, - 31870 - 11904: 0x9F5F, - 31871 - 11904: 0xD047, - 31872 - 11904: 0xD048, - 31873 - 11904: 0xD049, - 31875 - 11904: 0x8E73, - 31876 - 11904: 0xD349, - 31877 - 11904: 0xD34F, - 31878 - 11904: 0x9F62, - 31880 - 11904: 0xD34D, - 31881 - 11904: 0xAFBB, - 31882 - 11904: 0xD34B, - 31884 - 11904: 0xD34C, - 31885 - 11904: 0xD34E, - 31886 - 11904: 0x94F6, - 31889 - 11904: 0xD34A, - 31890 - 11904: 0xB2C9, - 31892 - 11904: 0xD6DE, - 31893 - 11904: 0xB2CB, - 31894 - 11904: 0xD6E0, - 31895 - 11904: 0xB2CA, - 31896 - 11904: 0xD6DF, - 31900 - 11904: 0x9958, - 31902 - 11904: 0xDAE8, - 31903 - 11904: 0xB5AF, - 31905 - 11904: 0xDAEA, - 31906 - 11904: 0xDAE7, - 31907 - 11904: 0xD6E1, - 31909 - 11904: 0xB5B0, - 31910 - 11904: 0x8E75, - 31911 - 11904: 0xF9DB, - 31912 - 11904: 0xDAE9, - 31916 - 11904: 0x9072, - 31918 - 11904: 0x94F8, - 31919 - 11904: 0xDF56, - 31921 - 11904: 0xB864, - 31922 - 11904: 0xDF54, - 31923 - 11904: 0xB865, - 31924 - 11904: 0xDF55, - 31925 - 11904: 0xB866, - 31928 - 11904: 0x995A, - 31929 - 11904: 0xBAE9, - 31930 - 11904: 0xE361, - 31931 - 11904: 0xE35E, - 31932 - 11904: 0xE360, - 31933 - 11904: 0xBAEA, - 31934 - 11904: 0xBAEB, - 31935 - 11904: 0xE35F, - 31938 - 11904: 0xA0B0, - 31939 - 11904: 0x8CB3, - 31941 - 11904: 0xE6DF, - 31943 - 11904: 0x8E79, - 31944 - 11904: 0xE6E0, - 31945 - 11904: 0x8E78, - 31946 - 11904: 0xBD6B, - 31947 - 11904: 0xE6E2, - 31948 - 11904: 0xE6E1, - 31949 - 11904: 0x94F3, - 31950 - 11904: 0xA261, - 31952 - 11904: 0xEACA, - 31953 - 11904: 0xEACB, - 31954 - 11904: 0xEAC7, - 31955 - 11904: 0x98AF, - 31956 - 11904: 0xEAC8, - 31957 - 11904: 0xBF7C, - 31958 - 11904: 0xBF7D, - 31959 - 11904: 0xEAC9, - 31961 - 11904: 0xC157, - 31962 - 11904: 0xA0B2, - 31964 - 11904: 0xC153, - 31965 - 11904: 0xC158, - 31966 - 11904: 0xC154, - 31967 - 11904: 0xC156, - 31968 - 11904: 0xC152, - 31970 - 11904: 0xC155, - 31974 - 11904: 0x8E7A, - 31975 - 11904: 0xC2B3, - 31976 - 11904: 0xEDCF, - 31978 - 11904: 0xF2AE, - 31980 - 11904: 0xF2AD, - 31981 - 11904: 0x995C, - 31982 - 11904: 0xF4AB, - 31983 - 11904: 0xC47A, - 31984 - 11904: 0xC47B, - 31985 - 11904: 0xF741, - 31986 - 11904: 0xF5E6, - 31987 - 11904: 0x8E7C, - 31988 - 11904: 0xF740, - 31989 - 11904: 0x8E7D, - 31990 - 11904: 0xF8FD, - 31991 - 11904: 0xF9A4, - 31992 - 11904: 0xA6CD, - 31993 - 11904: 0x8BD9, - 31995 - 11904: 0xA874, - 31996 - 11904: 0x89A2, - 31997 - 11904: 0xCDA9, - 31998 - 11904: 0xAAC8, - 32000 - 11904: 0xACF6, - 32001 - 11904: 0xD04C, - 32002 - 11904: 0xACF4, - 32003 - 11904: 0xD04A, - 32004 - 11904: 0xACF9, - 32005 - 11904: 0xACF5, - 32006 - 11904: 0xACFA, - 32007 - 11904: 0xACF8, - 32008 - 11904: 0xD04B, - 32009 - 11904: 0xACF7, - 32010 - 11904: 0xAFBF, - 32011 - 11904: 0xAFBE, - 32012 - 11904: 0xD35A, - 32013 - 11904: 0xAFC7, - 32014 - 11904: 0xD353, - 32015 - 11904: 0xD359, - 32016 - 11904: 0xAFC3, - 32017 - 11904: 0xD352, - 32018 - 11904: 0xD358, - 32019 - 11904: 0xD356, - 32020 - 11904: 0xAFC2, - 32021 - 11904: 0xAFC4, - 32022 - 11904: 0xD355, - 32023 - 11904: 0xAFBD, - 32024 - 11904: 0xD354, - 32025 - 11904: 0xAFC8, - 32026 - 11904: 0xAFC5, - 32027 - 11904: 0xAFC9, - 32028 - 11904: 0xAFC6, - 32029 - 11904: 0xD351, - 32030 - 11904: 0xD350, - 32031 - 11904: 0xD357, - 32032 - 11904: 0xAFC0, - 32033 - 11904: 0xAFBC, - 32034 - 11904: 0xAFC1, - 32037 - 11904: 0x9ED7, - 32040 - 11904: 0xD6F0, - 32041 - 11904: 0xD6E9, - 32043 - 11904: 0xB5B5, - 32044 - 11904: 0xD6E8, - 32046 - 11904: 0xB2CF, - 32047 - 11904: 0xB2D6, - 32048 - 11904: 0xB2D3, - 32049 - 11904: 0xB2D9, - 32050 - 11904: 0xB2D8, - 32051 - 11904: 0xB2D4, - 32053 - 11904: 0xD6E2, - 32054 - 11904: 0xD6E5, - 32056 - 11904: 0xD6E4, - 32057 - 11904: 0xB2D0, - 32058 - 11904: 0xD6E6, - 32059 - 11904: 0xD6EF, - 32060 - 11904: 0xB2D1, - 32061 - 11904: 0xD6E3, - 32062 - 11904: 0xD6EC, - 32063 - 11904: 0xD6ED, - 32064 - 11904: 0xB2D2, - 32065 - 11904: 0xD6EA, - 32066 - 11904: 0xB2D7, - 32067 - 11904: 0xB2CD, - 32068 - 11904: 0xB2D5, - 32069 - 11904: 0xD6E7, - 32070 - 11904: 0xB2CC, - 32071 - 11904: 0xD6EB, - 32074 - 11904: 0xD6EE, - 32077 - 11904: 0xA0B6, - 32078 - 11904: 0xDAFB, - 32079 - 11904: 0xDAF2, - 32080 - 11904: 0xB5B2, - 32081 - 11904: 0xDAF9, - 32082 - 11904: 0xDAF6, - 32083 - 11904: 0xDAEE, - 32084 - 11904: 0xDAF7, - 32085 - 11904: 0xB5B4, - 32086 - 11904: 0xDAEF, - 32088 - 11904: 0xDAEB, - 32090 - 11904: 0x9E42, - 32091 - 11904: 0xB86C, - 32092 - 11904: 0xDAF4, - 32093 - 11904: 0x8EA4, - 32094 - 11904: 0xB5B1, - 32095 - 11904: 0xDAFA, - 32097 - 11904: 0xB5B8, - 32098 - 11904: 0xB5BA, - 32099 - 11904: 0xDAED, - 32102 - 11904: 0xB5B9, - 32103 - 11904: 0xDAF0, - 32104 - 11904: 0xB5B3, - 32105 - 11904: 0xDAF8, - 32106 - 11904: 0xDAF1, - 32107 - 11904: 0xDAF5, - 32109 - 11904: 0xDAF3, - 32110 - 11904: 0xB5B6, - 32111 - 11904: 0xDAEC, - 32112 - 11904: 0xB5BB, - 32113 - 11904: 0xB2CE, - 32114 - 11904: 0xB5B7, - 32115 - 11904: 0xB5BC, - 32121 - 11904: 0xB868, - 32122 - 11904: 0xDF5D, - 32123 - 11904: 0xDF5F, - 32124 - 11904: 0xDF61, - 32125 - 11904: 0xDF65, - 32127 - 11904: 0xDF5B, - 32128 - 11904: 0xDF59, - 32129 - 11904: 0xB86A, - 32131 - 11904: 0xDF60, - 32132 - 11904: 0xDF64, - 32133 - 11904: 0xDF5C, - 32134 - 11904: 0xDF58, - 32136 - 11904: 0xDF57, - 32137 - 11904: 0x8EA7, - 32139 - 11904: 0x8C76, - 32140 - 11904: 0xDF62, - 32141 - 11904: 0xDF5A, - 32142 - 11904: 0xDF5E, - 32143 - 11904: 0xB86B, - 32145 - 11904: 0xB869, - 32146 - 11904: 0xDF66, - 32147 - 11904: 0xB867, - 32148 - 11904: 0xDF63, - 32149 - 11904: 0x8767, - 32150 - 11904: 0xE372, - 32151 - 11904: 0x9542, - 32156 - 11904: 0xBAEE, - 32157 - 11904: 0xE36A, - 32158 - 11904: 0xBD78, - 32159 - 11904: 0xE374, - 32160 - 11904: 0xBAF1, - 32161 - 11904: 0xE378, - 32162 - 11904: 0xBAF7, - 32163 - 11904: 0xE365, - 32164 - 11904: 0x987D, - 32166 - 11904: 0xE375, - 32167 - 11904: 0xE362, - 32168 - 11904: 0x9755, - 32169 - 11904: 0xE377, - 32170 - 11904: 0xE366, - 32171 - 11904: 0x8EA8, - 32172 - 11904: 0xBAFE, - 32173 - 11904: 0xBAFB, - 32174 - 11904: 0xE376, - 32175 - 11904: 0xE370, - 32176 - 11904: 0xBAED, - 32177 - 11904: 0xBAF5, - 32178 - 11904: 0xBAF4, - 32179 - 11904: 0x8EAA, - 32180 - 11904: 0xBAF3, - 32181 - 11904: 0xBAF9, - 32183 - 11904: 0xE363, - 32184 - 11904: 0xBAFA, - 32185 - 11904: 0xE371, - 32186 - 11904: 0xBAF6, - 32187 - 11904: 0xBAEC, - 32188 - 11904: 0xE373, - 32189 - 11904: 0xBAEF, - 32190 - 11904: 0xBAF0, - 32191 - 11904: 0xBAF8, - 32192 - 11904: 0xE368, - 32193 - 11904: 0xE367, - 32194 - 11904: 0xE364, - 32196 - 11904: 0xE36C, - 32197 - 11904: 0xE369, - 32198 - 11904: 0xE36D, - 32199 - 11904: 0xBAFD, - 32201 - 11904: 0xE379, - 32202 - 11904: 0xBAF2, - 32203 - 11904: 0xE36E, - 32204 - 11904: 0xE36F, - 32205 - 11904: 0x89A3, - 32206 - 11904: 0xE36B, - 32207 - 11904: 0x9960, - 32208 - 11904: 0x9962, - 32210 - 11904: 0xBAFC, - 32211 - 11904: 0x94FC, - 32212 - 11904: 0x9961, - 32215 - 11904: 0xE6E7, - 32216 - 11904: 0xBD70, - 32217 - 11904: 0xBD79, - 32218 - 11904: 0xBD75, - 32219 - 11904: 0xE6E4, - 32220 - 11904: 0x94FA, - 32221 - 11904: 0xBD72, - 32222 - 11904: 0xBD76, - 32223 - 11904: 0xE6F0, - 32224 - 11904: 0xBD6C, - 32225 - 11904: 0xE6E8, - 32227 - 11904: 0xBD74, - 32228 - 11904: 0x8EAE, - 32229 - 11904: 0x8EB2, - 32230 - 11904: 0xE6EB, - 32231 - 11904: 0xE6E6, - 32232 - 11904: 0xBD73, - 32233 - 11904: 0xBD77, - 32234 - 11904: 0xE6E5, - 32236 - 11904: 0xBD71, - 32238 - 11904: 0xE6EF, - 32239 - 11904: 0xBD6E, - 32240 - 11904: 0xE6EE, - 32241 - 11904: 0xE6ED, - 32242 - 11904: 0xBD7A, - 32243 - 11904: 0xE572, - 32244 - 11904: 0xBD6D, - 32245 - 11904: 0x8EB0, - 32246 - 11904: 0xE6EC, - 32247 - 11904: 0xE6E3, - 32249 - 11904: 0xBD7B, - 32250 - 11904: 0xE6EA, - 32251 - 11904: 0xBD6F, - 32253 - 11904: 0x9963, - 32254 - 11904: 0x97AA, - 32259 - 11904: 0xE6E9, - 32263 - 11904: 0x94FB, - 32264 - 11904: 0xBFA2, - 32265 - 11904: 0xBFA7, - 32266 - 11904: 0xBF7E, - 32267 - 11904: 0xEAD8, - 32268 - 11904: 0xEACF, - 32269 - 11904: 0xEADB, - 32270 - 11904: 0xEAD3, - 32271 - 11904: 0xEAD9, - 32272 - 11904: 0xBFA8, - 32273 - 11904: 0xBFA1, - 32274 - 11904: 0xEACC, - 32275 - 11904: 0xEAD2, - 32276 - 11904: 0xEADC, - 32277 - 11904: 0xEAD5, - 32278 - 11904: 0xEADA, - 32279 - 11904: 0xEACE, - 32282 - 11904: 0xEAD6, - 32283 - 11904: 0xBFA3, - 32284 - 11904: 0xEAD4, - 32285 - 11904: 0xBFA6, - 32286 - 11904: 0xBFA5, - 32287 - 11904: 0xEAD0, - 32288 - 11904: 0xEAD1, - 32289 - 11904: 0xEACD, - 32290 - 11904: 0xEAD7, - 32291 - 11904: 0xBFA4, - 32292 - 11904: 0xEADE, - 32293 - 11904: 0xEADD, - 32295 - 11904: 0x8EBB, - 32297 - 11904: 0xEDDA, - 32298 - 11904: 0xEDD6, - 32299 - 11904: 0xC15F, - 32301 - 11904: 0xEDD0, - 32302 - 11904: 0xC159, - 32303 - 11904: 0xC169, - 32304 - 11904: 0xEDDC, - 32305 - 11904: 0xC161, - 32306 - 11904: 0xC15D, - 32307 - 11904: 0xEDD3, - 32308 - 11904: 0xC164, - 32309 - 11904: 0xC167, - 32310 - 11904: 0xEDDE, - 32311 - 11904: 0xC15C, - 32312 - 11904: 0xEDD5, - 32313 - 11904: 0xC165, - 32314 - 11904: 0xEDE0, - 32315 - 11904: 0xEDDD, - 32316 - 11904: 0xEDD1, - 32317 - 11904: 0xC160, - 32318 - 11904: 0xC15A, - 32319 - 11904: 0xC168, - 32320 - 11904: 0xEDD8, - 32321 - 11904: 0xC163, - 32322 - 11904: 0xEDD2, - 32323 - 11904: 0xC15E, - 32324 - 11904: 0xEDDF, - 32325 - 11904: 0xC162, - 32326 - 11904: 0xC15B, - 32327 - 11904: 0xEDD9, - 32328 - 11904: 0xC166, - 32329 - 11904: 0xEDD7, - 32332 - 11904: 0xEDDB, - 32336 - 11904: 0xF06E, - 32337 - 11904: 0xF074, - 32338 - 11904: 0xC2B9, - 32339 - 11904: 0xF077, - 32340 - 11904: 0xC2B4, - 32341 - 11904: 0xC2B5, - 32342 - 11904: 0xF06F, - 32343 - 11904: 0xF076, - 32344 - 11904: 0xF071, - 32345 - 11904: 0xC2BA, - 32346 - 11904: 0xC2B7, - 32347 - 11904: 0x8CDC, - 32348 - 11904: 0xF06D, - 32350 - 11904: 0xC2B6, - 32351 - 11904: 0xF073, - 32352 - 11904: 0xF075, - 32353 - 11904: 0xC2B8, - 32354 - 11904: 0xF072, - 32355 - 11904: 0xF070, - 32357 - 11904: 0x9876, - 32359 - 11904: 0x8EA1, - 32360 - 11904: 0xF2B8, - 32361 - 11904: 0xC3B7, - 32362 - 11904: 0xC3B8, - 32363 - 11904: 0xC3B4, - 32364 - 11904: 0x8CB4, - 32365 - 11904: 0xC3B5, - 32366 - 11904: 0x8EB7, - 32367 - 11904: 0xF2B4, - 32368 - 11904: 0xF2B2, - 32370 - 11904: 0xF2B6, - 32371 - 11904: 0xC3BA, - 32372 - 11904: 0xF2B7, - 32373 - 11904: 0xF2B0, - 32374 - 11904: 0xF2AF, - 32375 - 11904: 0xF2B3, - 32376 - 11904: 0xF2B1, - 32377 - 11904: 0xC3B6, - 32378 - 11904: 0xF2B5, - 32379 - 11904: 0xF4AC, - 32380 - 11904: 0xC47E, - 32381 - 11904: 0xC47D, - 32382 - 11904: 0xF4AD, - 32383 - 11904: 0x9DA6, - 32384 - 11904: 0xF4AF, - 32385 - 11904: 0xF4AE, - 32386 - 11904: 0xC4A1, - 32390 - 11904: 0xF5EB, - 32391 - 11904: 0xF5E8, - 32392 - 11904: 0xF5E9, - 32394 - 11904: 0xF5E7, - 32395 - 11904: 0xF5EA, - 32396 - 11904: 0xC4F2, - 32397 - 11904: 0xF5EC, - 32398 - 11904: 0x9EB0, - 32399 - 11904: 0xC4F1, - 32401 - 11904: 0xF742, - 32402 - 11904: 0x8EB8, - 32403 - 11904: 0xC5D5, - 32404 - 11904: 0xC5D7, - 32405 - 11904: 0xF7EE, - 32406 - 11904: 0xC5D6, - 32407 - 11904: 0xF8B9, - 32408 - 11904: 0xF940, - 32409 - 11904: 0xF942, - 32410 - 11904: 0xF8FE, - 32411 - 11904: 0xF941, - 32412 - 11904: 0xC66C, - 32415 - 11904: 0x9D70, - 32420 - 11904: 0x896E, - 32428 - 11904: 0x896F, - 32442 - 11904: 0x8970, - 32455 - 11904: 0x8971, - 32463 - 11904: 0x8972, - 32479 - 11904: 0x8973, - 32518 - 11904: 0x8974, - 32566 - 11904: 0xA6CE, - 32567 - 11904: 0x8975, - 32568 - 11904: 0xACFB, - 32569 - 11904: 0xD26F, - 32570 - 11904: 0xAFCA, - 32573 - 11904: 0xB2DA, - 32574 - 11904: 0xDAFC, - 32575 - 11904: 0xDAFD, - 32576 - 11904: 0x8EBC, - 32577 - 11904: 0x8EBD, - 32579 - 11904: 0xEADF, - 32580 - 11904: 0xC16A, - 32581 - 11904: 0xEDE1, - 32583 - 11904: 0x8EBE, - 32584 - 11904: 0xC2BB, - 32585 - 11904: 0x9DD1, - 32586 - 11904: 0xF2BA, - 32587 - 11904: 0xF2B9, - 32588 - 11904: 0xC4A2, - 32589 - 11904: 0xF5ED, - 32590 - 11904: 0x94FD, - 32591 - 11904: 0xF743, - 32592 - 11904: 0xC5F8, - 32593 - 11904: 0xCA49, - 32594 - 11904: 0x8BD7, - 32595 - 11904: 0x8BDA, - 32596 - 11904: 0xAAC9, - 32597 - 11904: 0xA875, - 32600 - 11904: 0xD04D, - 32603 - 11904: 0xD360, - 32604 - 11904: 0xD35B, - 32605 - 11904: 0xD35F, - 32606 - 11904: 0xD35D, - 32607 - 11904: 0xAFCB, - 32608 - 11904: 0xD35E, - 32609 - 11904: 0xD35C, - 32611 - 11904: 0xD6F1, - 32613 - 11904: 0xDAFE, - 32614 - 11904: 0xDB40, - 32615 - 11904: 0xDF69, - 32616 - 11904: 0xDF6A, - 32617 - 11904: 0xB86E, - 32618 - 11904: 0xB86F, - 32619 - 11904: 0xDF68, - 32620 - 11904: 0xDF6B, - 32621 - 11904: 0xDF67, - 32622 - 11904: 0xB86D, - 32624 - 11904: 0xBB40, - 32625 - 11904: 0xA0E2, - 32626 - 11904: 0xB870, - 32627 - 11904: 0xE37A, - 32629 - 11904: 0xBD7C, - 32630 - 11904: 0xE6F1, - 32631 - 11904: 0xBD7D, - 32632 - 11904: 0x9FE9, - 32633 - 11904: 0xBFA9, - 32634 - 11904: 0xEAE2, - 32635 - 11904: 0xEAE0, - 32636 - 11904: 0xEAE1, - 32637 - 11904: 0xEDE4, - 32638 - 11904: 0xEDE3, - 32639 - 11904: 0xEDE2, - 32643 - 11904: 0xF2BB, - 32645 - 11904: 0xC3B9, - 32646 - 11904: 0xF2BC, - 32647 - 11904: 0xF744, - 32648 - 11904: 0xC5F9, - 32649 - 11904: 0xF8BA, - 32650 - 11904: 0xA6CF, - 32651 - 11904: 0xAACB, - 32652 - 11904: 0xAACA, - 32653 - 11904: 0xD04F, - 32654 - 11904: 0xACFC, - 32655 - 11904: 0xFDA8, - 32657 - 11904: 0xD04E, - 32658 - 11904: 0xD362, - 32659 - 11904: 0x8AE7, - 32660 - 11904: 0xAFCC, - 32661 - 11904: 0xD6F2, - 32662 - 11904: 0xD361, - 32663 - 11904: 0x8EC2, - 32666 - 11904: 0xB2DC, - 32667 - 11904: 0xD6F5, - 32668 - 11904: 0xD6F3, - 32669 - 11904: 0xD6F4, - 32670 - 11904: 0xB2DB, - 32672 - 11904: 0xDB42, - 32673 - 11904: 0xDB43, - 32674 - 11904: 0xDB41, - 32675 - 11904: 0x8EC4, - 32676 - 11904: 0xB873, - 32677 - 11904: 0xDF6D, - 32678 - 11904: 0xDF6C, - 32679 - 11904: 0xDF6E, - 32680 - 11904: 0xB872, - 32681 - 11904: 0xB871, - 32684 - 11904: 0xE6F2, - 32685 - 11904: 0xE6F4, - 32686 - 11904: 0x9964, - 32687 - 11904: 0xBD7E, - 32688 - 11904: 0xE6F3, - 32689 - 11904: 0xEAE3, - 32690 - 11904: 0xBFAA, - 32691 - 11904: 0xF079, - 32692 - 11904: 0x9965, - 32693 - 11904: 0xF078, - 32694 - 11904: 0xC3BB, - 32695 - 11904: 0xF2BD, - 32696 - 11904: 0xC3BD, - 32697 - 11904: 0xC3BC, - 32698 - 11904: 0xF4B0, - 32699 - 11904: 0xF5EE, - 32700 - 11904: 0xC4F3, - 32701 - 11904: 0xA6D0, - 32702 - 11904: 0xD050, - 32703 - 11904: 0xACFD, - 32704 - 11904: 0xD365, - 32705 - 11904: 0xAFCE, - 32706 - 11904: 0xD364, - 32707 - 11904: 0xD363, - 32709 - 11904: 0xAFCD, - 32711 - 11904: 0xD6FB, - 32713 - 11904: 0xD6FD, - 32714 - 11904: 0xD6F6, - 32715 - 11904: 0xD6F7, - 32716 - 11904: 0xB2DD, - 32717 - 11904: 0xD6F8, - 32718 - 11904: 0xB2DE, - 32719 - 11904: 0xD6FC, - 32720 - 11904: 0xD6F9, - 32721 - 11904: 0xD6FA, - 32722 - 11904: 0xB2DF, - 32724 - 11904: 0xB5BE, - 32725 - 11904: 0xB5BF, - 32727 - 11904: 0xDB44, - 32731 - 11904: 0xDF6F, - 32732 - 11904: 0xDF70, - 32733 - 11904: 0x954E, - 32734 - 11904: 0xE37E, - 32735 - 11904: 0xBB43, - 32736 - 11904: 0xBB41, - 32737 - 11904: 0xBB42, - 32738 - 11904: 0xE37B, - 32739 - 11904: 0xE37C, - 32741 - 11904: 0xE37D, - 32742 - 11904: 0xE6F9, - 32743 - 11904: 0x98B3, - 32744 - 11904: 0xE6FA, - 32745 - 11904: 0xBDA1, - 32746 - 11904: 0xE6F7, - 32747 - 11904: 0xE6F6, - 32748 - 11904: 0xE6F8, - 32749 - 11904: 0xE6F5, - 32750 - 11904: 0xBFAD, - 32751 - 11904: 0xEAE4, - 32752 - 11904: 0xBFAB, - 32753 - 11904: 0xBFAC, - 32754 - 11904: 0xEDE6, - 32755 - 11904: 0xC16B, - 32756 - 11904: 0xEDE5, - 32757 - 11904: 0xEFA8, - 32759 - 11904: 0xF07A, - 32760 - 11904: 0xF07B, - 32761 - 11904: 0xC2BC, - 32762 - 11904: 0x8ECB, - 32763 - 11904: 0xC2BD, - 32764 - 11904: 0xC16C, - 32765 - 11904: 0xF2BE, - 32766 - 11904: 0xF2BF, - 32767 - 11904: 0xF4B1, - 32768 - 11904: 0xC4A3, - 32769 - 11904: 0xA6D1, - 32770 - 11904: 0x8BDF, - 32771 - 11904: 0xA6D2, - 32772 - 11904: 0xACFE, - 32773 - 11904: 0xAACC, - 32774 - 11904: 0xAFCF, - 32775 - 11904: 0xD051, - 32776 - 11904: 0x8ECE, - 32779 - 11904: 0xB5C0, - 32780 - 11904: 0xA6D3, - 32781 - 11904: 0xAD41, - 32782 - 11904: 0xD052, - 32783 - 11904: 0xD053, - 32784 - 11904: 0xAD40, - 32785 - 11904: 0xAD42, - 32786 - 11904: 0xA6D4, - 32788 - 11904: 0xD054, - 32789 - 11904: 0xAFD1, - 32790 - 11904: 0xD366, - 32791 - 11904: 0xAFD3, - 32792 - 11904: 0xAFD0, - 32793 - 11904: 0xAFD2, - 32795 - 11904: 0xD741, - 32796 - 11904: 0xB2E0, - 32797 - 11904: 0x8ECF, - 32798 - 11904: 0xD740, - 32799 - 11904: 0xD6FE, - 32800 - 11904: 0x9968, - 32801 - 11904: 0xDF71, - 32804 - 11904: 0xE3A1, - 32805 - 11904: 0x9969, - 32806 - 11904: 0xBDA2, - 32808 - 11904: 0xBFAE, - 32809 - 11904: 0xEAE6, - 32810 - 11904: 0xEAE5, - 32812 - 11904: 0xEDE7, - 32814 - 11904: 0x996B, - 32815 - 11904: 0x8ED1, - 32816 - 11904: 0xF5EF, - 32817 - 11904: 0x996C, - 32819 - 11904: 0xA6D5, - 32820 - 11904: 0xCB73, - 32821 - 11904: 0xCDAA, - 32822 - 11904: 0xAD43, - 32823 - 11904: 0xD055, - 32825 - 11904: 0xD368, - 32827 - 11904: 0x8ED4, - 32828 - 11904: 0x8ED5, - 32829 - 11904: 0xAFD4, - 32830 - 11904: 0xD367, - 32831 - 11904: 0xAFD5, - 32835 - 11904: 0xD743, - 32838 - 11904: 0xB2E2, - 32839 - 11904: 0xD742, - 32840 - 11904: 0xD744, - 32842 - 11904: 0xB2E1, - 32847 - 11904: 0xDB46, - 32848 - 11904: 0xDB47, - 32849 - 11904: 0xDB45, - 32850 - 11904: 0xB5C1, - 32852 - 11904: 0x996D, - 32854 - 11904: 0xB874, - 32856 - 11904: 0xB875, - 32858 - 11904: 0xBB45, - 32859 - 11904: 0xA0BE, - 32860 - 11904: 0xE3A3, - 32861 - 11904: 0xE3A2, - 32862 - 11904: 0xBB44, - 32865 - 11904: 0x8ED6, - 32866 - 11904: 0xA0BC, - 32867 - 11904: 0xA0B5, - 32868 - 11904: 0xE6FB, - 32870 - 11904: 0xA0B4, - 32871 - 11904: 0xE6FC, - 32876 - 11904: 0xEAE7, - 32879 - 11904: 0xC170, - 32880 - 11904: 0xC16F, - 32881 - 11904: 0xC16D, - 32882 - 11904: 0xC16E, - 32883 - 11904: 0xC171, - 32885 - 11904: 0xF07C, - 32886 - 11904: 0xC2BF, - 32887 - 11904: 0xC2BE, - 32888 - 11904: 0xF2C0, - 32889 - 11904: 0xF4B2, - 32893 - 11904: 0xC5A5, - 32894 - 11904: 0xC5A4, - 32895 - 11904: 0xA6D6, - 32896 - 11904: 0x8BE0, - 32898 - 11904: 0xD1FB, - 32900 - 11904: 0xB877, - 32901 - 11904: 0xB5C2, - 32902 - 11904: 0xB876, - 32903 - 11904: 0xBB46, - 32905 - 11904: 0xA6D7, - 32906 - 11904: 0xC9A9, - 32907 - 11904: 0xA6D8, - 32908 - 11904: 0xA6D9, - 32911 - 11904: 0xCDAB, - 32912 - 11904: 0xCB76, - 32914 - 11904: 0xCB77, - 32915 - 11904: 0xA877, - 32917 - 11904: 0xCB74, - 32918 - 11904: 0xA876, - 32920 - 11904: 0xA879, - 32921 - 11904: 0xCB75, - 32922 - 11904: 0xA87B, - 32923 - 11904: 0xA87A, - 32924 - 11904: 0xCB78, - 32925 - 11904: 0xA878, - 32927 - 11904: 0x89B5, - 32929 - 11904: 0xAAD1, - 32930 - 11904: 0xAACF, - 32931 - 11904: 0xCDAD, - 32933 - 11904: 0xAACE, - 32935 - 11904: 0x8EDD, - 32937 - 11904: 0xAAD3, - 32938 - 11904: 0xAAD5, - 32939 - 11904: 0xAAD2, - 32941 - 11904: 0xCDB0, - 32942 - 11904: 0xCDAC, - 32943 - 11904: 0xAAD6, - 32945 - 11904: 0xAAD0, - 32946 - 11904: 0xA87C, - 32948 - 11904: 0xAAD4, - 32949 - 11904: 0xCDAF, - 32950 - 11904: 0x9E5D, - 32951 - 11904: 0x9971, - 32952 - 11904: 0xCDAE, - 32954 - 11904: 0xAACD, - 32956 - 11904: 0x89AE, - 32957 - 11904: 0x9DE8, - 32962 - 11904: 0xD05B, - 32963 - 11904: 0xAD47, - 32964 - 11904: 0xAD48, - 32965 - 11904: 0xD05D, - 32966 - 11904: 0x9565, - 32967 - 11904: 0xD057, - 32968 - 11904: 0xD05A, - 32969 - 11904: 0xD063, - 32970 - 11904: 0xD061, - 32972 - 11904: 0xAD49, - 32973 - 11904: 0xD067, - 32974 - 11904: 0xAD4C, - 32975 - 11904: 0xD064, - 32976 - 11904: 0xD05C, - 32977 - 11904: 0xD059, - 32980 - 11904: 0xDB49, - 32981 - 11904: 0xD062, - 32982 - 11904: 0xAD44, - 32983 - 11904: 0xD065, - 32984 - 11904: 0xD056, - 32985 - 11904: 0xD05F, - 32986 - 11904: 0xAD46, - 32987 - 11904: 0xAD4B, - 32988 - 11904: 0xD060, - 32989 - 11904: 0xAD4F, - 32990 - 11904: 0xAD4D, - 32992 - 11904: 0xD058, - 32993 - 11904: 0xAD4A, - 32995 - 11904: 0xD05E, - 32996 - 11904: 0xAD4E, - 32997 - 11904: 0xAD45, - 32998 - 11904: 0xD066, - 33001 - 11904: 0x9972, - 33004 - 11904: 0x8B5C, - 33005 - 11904: 0xAFDA, - 33007 - 11904: 0xAFE3, - 33008 - 11904: 0xAFD8, - 33009 - 11904: 0xAFD6, - 33010 - 11904: 0xD36A, - 33011 - 11904: 0xAFDE, - 33012 - 11904: 0xAFDB, - 33013 - 11904: 0xD36C, - 33014 - 11904: 0x89B1, - 33016 - 11904: 0xAFDD, - 33017 - 11904: 0xD36B, - 33018 - 11904: 0xD369, - 33019 - 11904: 0xD36E, - 33020 - 11904: 0xAFE2, - 33021 - 11904: 0xAFE0, - 33022 - 11904: 0xDB48, - 33024 - 11904: 0xD36F, - 33025 - 11904: 0xD36D, - 33026 - 11904: 0xAFD7, - 33027 - 11904: 0xA0C0, - 33029 - 11904: 0xAFD9, - 33030 - 11904: 0xAFDC, - 33031 - 11904: 0x8EDF, - 33032 - 11904: 0xAFDF, - 33033 - 11904: 0x9566, - 33034 - 11904: 0xAFE1, - 33036 - 11904: 0x9974, - 33038 - 11904: 0x9976, - 33042 - 11904: 0x9977, - 33044 - 11904: 0x9979, - 33045 - 11904: 0xD74E, - 33046 - 11904: 0xB2E4, - 33047 - 11904: 0x9DDA, - 33048 - 11904: 0xD745, - 33049 - 11904: 0xD747, - 33050 - 11904: 0x8EE0, - 33051 - 11904: 0xD748, - 33053 - 11904: 0xD750, - 33054 - 11904: 0xD74C, - 33055 - 11904: 0xD74A, - 33057 - 11904: 0xD74D, - 33058 - 11904: 0xD751, - 33059 - 11904: 0xB2E5, - 33060 - 11904: 0xB2E9, - 33061 - 11904: 0xD746, - 33063 - 11904: 0xD74F, - 33065 - 11904: 0xB2E7, - 33066 - 11904: 0x935C, - 33067 - 11904: 0xB2E6, - 33068 - 11904: 0xD74B, - 33069 - 11904: 0xD749, - 33071 - 11904: 0xB2E3, - 33072 - 11904: 0xB2E8, - 33074 - 11904: 0x9DE6, - 33076 - 11904: 0x8B5F, - 33079 - 11904: 0x9563, - 33081 - 11904: 0xB5C8, - 33082 - 11904: 0xDB51, - 33085 - 11904: 0xDB4F, - 33086 - 11904: 0xB5CA, - 33090 - 11904: 0x9567, - 33091 - 11904: 0xDB4A, - 33092 - 11904: 0xDFA1, - 33094 - 11904: 0xB5C9, - 33095 - 11904: 0xDB4E, - 33096 - 11904: 0x9DE3, - 33098 - 11904: 0xDB4B, - 33099 - 11904: 0xB5C5, - 33100 - 11904: 0xB5CB, - 33101 - 11904: 0xDB50, - 33102 - 11904: 0xB5C7, - 33103 - 11904: 0xDB4D, - 33104 - 11904: 0xBB47, - 33105 - 11904: 0xB5C6, - 33106 - 11904: 0xDB4C, - 33107 - 11904: 0xB5CC, - 33108 - 11904: 0xB5C4, - 33109 - 11904: 0xB5C3, - 33110 - 11904: 0x997C, - 33113 - 11904: 0x997D, - 33114 - 11904: 0x997E, - 33115 - 11904: 0xDF77, - 33116 - 11904: 0xDF75, - 33118 - 11904: 0xDF7B, - 33120 - 11904: 0xDF73, - 33121 - 11904: 0xDFA2, - 33122 - 11904: 0xDF78, - 33124 - 11904: 0xDF72, - 33125 - 11904: 0xB87B, - 33126 - 11904: 0xB8A3, - 33127 - 11904: 0xDF7D, - 33129 - 11904: 0xDF76, - 33131 - 11904: 0xB87E, - 33132 - 11904: 0x8CFB, - 33133 - 11904: 0x8B5B, - 33134 - 11904: 0xB87C, - 33135 - 11904: 0xDF7E, - 33136 - 11904: 0xB879, - 33137 - 11904: 0xB878, - 33138 - 11904: 0xDF79, - 33139 - 11904: 0xB87D, - 33140 - 11904: 0xB5CD, - 33142 - 11904: 0xDF7C, - 33143 - 11904: 0xDF74, - 33144 - 11904: 0xB87A, - 33145 - 11904: 0xB8A1, - 33146 - 11904: 0xB8A2, - 33148 - 11904: 0x99A3, - 33151 - 11904: 0xBB4C, - 33152 - 11904: 0xBB48, - 33154 - 11904: 0xBB4D, - 33155 - 11904: 0xE3A6, - 33156 - 11904: 0x99A4, - 33158 - 11904: 0xE3A5, - 33159 - 11904: 0xE3A7, - 33160 - 11904: 0xBB4A, - 33161 - 11904: 0xE3A4, - 33162 - 11904: 0xBB4B, - 33163 - 11904: 0xE3AA, - 33164 - 11904: 0xE3A9, - 33165 - 11904: 0xE3A8, - 33167 - 11904: 0xBB49, - 33171 - 11904: 0x99A6, - 33173 - 11904: 0xE741, - 33175 - 11904: 0xE744, - 33176 - 11904: 0xBDA8, - 33177 - 11904: 0xE743, - 33178 - 11904: 0xBDA7, - 33179 - 11904: 0xBDA3, - 33180 - 11904: 0xBDA4, - 33181 - 11904: 0xBDA5, - 33182 - 11904: 0xE740, - 33183 - 11904: 0xE6FE, - 33184 - 11904: 0xBDA6, - 33186 - 11904: 0xE742, - 33187 - 11904: 0xE6FD, - 33189 - 11904: 0x99A8, - 33190 - 11904: 0xEAE9, - 33191 - 11904: 0xEAF3, - 33192 - 11904: 0xBFB1, - 33193 - 11904: 0xBFB0, - 33194 - 11904: 0x8ABE, - 33195 - 11904: 0xEAED, - 33196 - 11904: 0xEAEF, - 33198 - 11904: 0xEAEA, - 33200 - 11904: 0xEAEE, - 33201 - 11904: 0xEAE8, - 33202 - 11904: 0xEAF1, - 33203 - 11904: 0xBFAF, - 33204 - 11904: 0xEAF0, - 33205 - 11904: 0xEAEC, - 33206 - 11904: 0x9E61, - 33207 - 11904: 0xEAF2, - 33209 - 11904: 0xEAEB, - 33210 - 11904: 0xC174, - 33211 - 11904: 0xEDE8, - 33212 - 11904: 0xEDEE, - 33213 - 11904: 0xC178, - 33214 - 11904: 0xC17A, - 33215 - 11904: 0xC177, - 33216 - 11904: 0xC176, - 33217 - 11904: 0x99AA, - 33218 - 11904: 0xC175, - 33219 - 11904: 0xC173, - 33220 - 11904: 0xEDE9, - 33221 - 11904: 0xEDEC, - 33222 - 11904: 0xC172, - 33223 - 11904: 0xEDED, - 33224 - 11904: 0xA0C8, - 33225 - 11904: 0xC179, - 33226 - 11904: 0xEDEB, - 33228 - 11904: 0xEDEA, - 33229 - 11904: 0xC2C0, - 33231 - 11904: 0xC2C1, - 33232 - 11904: 0xF0A1, - 33233 - 11904: 0xF07D, - 33234 - 11904: 0xF07E, - 33237 - 11904: 0xF2C2, - 33239 - 11904: 0xF2C1, - 33240 - 11904: 0xC3BE, - 33241 - 11904: 0xF4B4, - 33242 - 11904: 0xC4A4, - 33243 - 11904: 0xF4B3, - 33245 - 11904: 0xF5F0, - 33246 - 11904: 0xF745, - 33247 - 11904: 0xC5A6, - 33248 - 11904: 0xF943, - 33249 - 11904: 0xF944, - 33250 - 11904: 0xC5D8, - 33251 - 11904: 0xA6DA, - 33252 - 11904: 0x99AB, - 33253 - 11904: 0xAAD7, - 33254 - 11904: 0xDB52, - 33255 - 11904: 0xBB4E, - 33256 - 11904: 0xC17B, - 33257 - 11904: 0xEDEF, - 33258 - 11904: 0xA6DB, - 33260 - 11904: 0xAFE5, - 33261 - 11904: 0xAFE4, - 33262 - 11904: 0xDB53, - 33263 - 11904: 0xFEC4, - 33266 - 11904: 0xEAF4, - 33267 - 11904: 0xA6DC, - 33268 - 11904: 0xAD50, - 33270 - 11904: 0x98C2, - 33271 - 11904: 0xDB54, - 33272 - 11904: 0xDB55, - 33273 - 11904: 0xDB56, - 33274 - 11904: 0xBB4F, - 33275 - 11904: 0xBFB2, - 33276 - 11904: 0xA6DD, - 33278 - 11904: 0xAAD8, - 33279 - 11904: 0xD068, - 33280 - 11904: 0xAFE6, - 33281 - 11904: 0xD370, - 33282 - 11904: 0xB2EA, - 33284 - 11904: 0xDB57, - 33285 - 11904: 0xB8A4, - 33287 - 11904: 0xBB50, - 33288 - 11904: 0xBFB3, - 33289 - 11904: 0xC17C, - 33290 - 11904: 0xC2C2, - 33291 - 11904: 0xF4B5, - 33292 - 11904: 0xA6DE, - 33293 - 11904: 0xAAD9, - 33296 - 11904: 0xAFE7, - 33297 - 11904: 0xD752, - 33298 - 11904: 0xB5CE, - 33300 - 11904: 0xBB51, - 33301 - 11904: 0xE3AB, - 33302 - 11904: 0xE745, - 33304 - 11904: 0x8EE8, - 33306 - 11904: 0xA0BA, - 33307 - 11904: 0xA6DF, - 33308 - 11904: 0xB5CF, - 33309 - 11904: 0xDFA3, - 33310 - 11904: 0xBB52, - 33311 - 11904: 0xA6E0, - 33312 - 11904: 0xCDB1, - 33313 - 11904: 0xD069, - 33314 - 11904: 0xAD51, - 33317 - 11904: 0xD372, - 33318 - 11904: 0xFD77, - 33320 - 11904: 0xAFEA, - 33321 - 11904: 0x8EEE, - 33322 - 11904: 0xAFE8, - 33323 - 11904: 0xAFE9, - 33324 - 11904: 0xAFEB, - 33325 - 11904: 0x9EBF, - 33327 - 11904: 0xD371, - 33330 - 11904: 0xD757, - 33331 - 11904: 0xD754, - 33332 - 11904: 0xD756, - 33333 - 11904: 0xB2EB, - 33334 - 11904: 0xB2ED, - 33335 - 11904: 0xB2EC, - 33336 - 11904: 0xD753, - 33337 - 11904: 0xB2EE, - 33338 - 11904: 0xD755, - 33340 - 11904: 0xDB58, - 33341 - 11904: 0xDB59, - 33342 - 11904: 0x89C2, - 33343 - 11904: 0xDB5A, - 33344 - 11904: 0xDFA6, - 33346 - 11904: 0xDFA7, - 33348 - 11904: 0xDFA5, - 33349 - 11904: 0xDFA8, - 33351 - 11904: 0xB8A5, - 33353 - 11904: 0xDFA4, - 33355 - 11904: 0xBB53, - 33358 - 11904: 0xE74A, - 33359 - 11904: 0xE746, - 33360 - 11904: 0xE749, - 33361 - 11904: 0xE74B, - 33362 - 11904: 0xE748, - 33363 - 11904: 0xE747, - 33364 - 11904: 0x99AC, - 33365 - 11904: 0xEAF5, - 33366 - 11904: 0xEAF6, - 33367 - 11904: 0xEAF7, - 33368 - 11904: 0xBFB4, - 33369 - 11904: 0xBFB5, - 33370 - 11904: 0xEDF1, - 33371 - 11904: 0xEDF0, - 33372 - 11904: 0xEDF2, - 33374 - 11904: 0xF0A3, - 33375 - 11904: 0xF0A2, - 33377 - 11904: 0xF2C4, - 33378 - 11904: 0x956B, - 33379 - 11904: 0xF2C5, - 33380 - 11904: 0xF2C3, - 33381 - 11904: 0x956C, - 33382 - 11904: 0xC4A5, - 33384 - 11904: 0xF4B6, - 33385 - 11904: 0xF4B7, - 33387 - 11904: 0xF746, - 33388 - 11904: 0xF7EF, - 33389 - 11904: 0xF8BB, - 33390 - 11904: 0xA6E1, - 33391 - 11904: 0xA87D, - 33393 - 11904: 0xC17D, - 33394 - 11904: 0xA6E2, - 33396 - 11904: 0xD758, - 33397 - 11904: 0xDB5B, - 33398 - 11904: 0x99AF, - 33399 - 11904: 0xC641, - 33400 - 11904: 0xCA4A, - 33401 - 11904: 0x994A, - 33402 - 11904: 0x8976, - 33403 - 11904: 0x8F48, - 33404 - 11904: 0xCA4B, - 33405 - 11904: 0xCA4D, - 33406 - 11904: 0xA6E3, - 33407 - 11904: 0xCA4E, - 33408 - 11904: 0xCA4C, - 33411 - 11904: 0xCBA2, - 33412 - 11904: 0xCBA3, - 33413 - 11904: 0xCB7B, - 33415 - 11904: 0xFBEE, - 33418 - 11904: 0xCBA1, - 33419 - 11904: 0xA8A1, - 33421 - 11904: 0xA8A2, - 33422 - 11904: 0xCB7C, - 33423 - 11904: 0xCB7A, - 33424 - 11904: 0xCB79, - 33425 - 11904: 0xCB7D, - 33426 - 11904: 0xA87E, - 33427 - 11904: 0xCB7E, - 33428 - 11904: 0xD06A, - 33432 - 11904: 0xCDB6, - 33433 - 11904: 0xAADC, - 33434 - 11904: 0xCDB5, - 33435 - 11904: 0xCDB7, - 33437 - 11904: 0xAADB, - 33438 - 11904: 0xCDBC, - 33439 - 11904: 0xAADF, - 33440 - 11904: 0xCDB2, - 33441 - 11904: 0xCDC0, - 33442 - 11904: 0xCDC6, - 33443 - 11904: 0xAAE6, - 33444 - 11904: 0xCDC3, - 33445 - 11904: 0xAAE3, - 33446 - 11904: 0x99AE, - 33447 - 11904: 0xCDB9, - 33448 - 11904: 0xCDBF, - 33449 - 11904: 0xCDC1, - 33450 - 11904: 0x8EFB, - 33451 - 11904: 0xCDB4, - 33452 - 11904: 0xAAE2, - 33453 - 11904: 0xAADD, - 33454 - 11904: 0xCDBA, - 33455 - 11904: 0xAAE4, - 33456 - 11904: 0xAAE7, - 33457 - 11904: 0xAAE1, - 33459 - 11904: 0xAADA, - 33460 - 11904: 0xCDBE, - 33461 - 11904: 0xCDB8, - 33462 - 11904: 0xCDC5, - 33463 - 11904: 0xAAE9, - 33464 - 11904: 0xAAE5, - 33465 - 11904: 0xAAE0, - 33466 - 11904: 0xCDBD, - 33467 - 11904: 0xAFEC, - 33468 - 11904: 0xCDBB, - 33469 - 11904: 0xAADE, - 33470 - 11904: 0xAAE8, - 33471 - 11904: 0x8CD0, - 33472 - 11904: 0xCDB3, - 33474 - 11904: 0xCDC2, - 33475 - 11904: 0xCDC4, - 33476 - 11904: 0x8B52, - 33482 - 11904: 0x99B0, - 33487 - 11904: 0x8977, - 33488 - 11904: 0x8F41, - 33489 - 11904: 0xAD62, - 33490 - 11904: 0xAD5C, - 33491 - 11904: 0xAD64, - 33492 - 11904: 0xAD61, - 33493 - 11904: 0xD071, - 33494 - 11904: 0xD074, - 33495 - 11904: 0xAD5D, - 33496 - 11904: 0x99B1, - 33497 - 11904: 0xD06B, - 33499 - 11904: 0xAD56, - 33500 - 11904: 0xAD60, - 33502 - 11904: 0xAD63, - 33503 - 11904: 0xAD65, - 33504 - 11904: 0xD0A2, - 33505 - 11904: 0xD077, - 33506 - 11904: 0x8F49, - 33507 - 11904: 0xAD55, - 33508 - 11904: 0xD0A1, - 33509 - 11904: 0xAD59, - 33510 - 11904: 0xAD57, - 33511 - 11904: 0xAD52, - 33512 - 11904: 0xD06F, - 33514 - 11904: 0xD07E, - 33515 - 11904: 0xD073, - 33516 - 11904: 0xD076, - 33517 - 11904: 0xD0A5, - 33518 - 11904: 0xFA4D, - 33519 - 11904: 0xAD66, - 33520 - 11904: 0xD07D, - 33521 - 11904: 0xAD5E, - 33522 - 11904: 0xD078, - 33523 - 11904: 0xD0A4, - 33524 - 11904: 0xD075, - 33525 - 11904: 0xD079, - 33526 - 11904: 0xD07C, - 33527 - 11904: 0x9DE4, - 33528 - 11904: 0x8CB5, - 33529 - 11904: 0xD06D, - 33530 - 11904: 0xD0A3, - 33531 - 11904: 0xD07B, - 33532 - 11904: 0xFBE9, - 33533 - 11904: 0x9B54, - 33534 - 11904: 0xD06C, - 33535 - 11904: 0x99B2, - 33536 - 11904: 0xD070, - 33537 - 11904: 0xAD5F, - 33538 - 11904: 0xAD5A, - 33539 - 11904: 0xAD53, - 33540 - 11904: 0xAD58, - 33541 - 11904: 0xAD54, - 33542 - 11904: 0xAD67, - 33543 - 11904: 0xD06E, - 33544 - 11904: 0xD3A5, - 33545 - 11904: 0xAD5B, - 33547 - 11904: 0x9E68, - 33548 - 11904: 0xD07A, - 33549 - 11904: 0xCE41, - 33558 - 11904: 0xD3A8, - 33559 - 11904: 0xAFFA, - 33560 - 11904: 0x8F4A, - 33561 - 11904: 0xD376, - 33562 - 11904: 0x8F42, - 33563 - 11904: 0xD3A3, - 33564 - 11904: 0xD37D, - 33565 - 11904: 0x8F51, - 33566 - 11904: 0xD3B2, - 33568 - 11904: 0xD3AA, - 33570 - 11904: 0xD37E, - 33572 - 11904: 0xD3A9, - 33573 - 11904: 0xD378, - 33574 - 11904: 0xD37C, - 33575 - 11904: 0xD3B5, - 33576 - 11904: 0xAFFD, - 33577 - 11904: 0xD3AD, - 33578 - 11904: 0xD3A4, - 33579 - 11904: 0xAFED, - 33580 - 11904: 0xD3B3, - 33581 - 11904: 0xD374, - 33583 - 11904: 0xD3AC, - 33585 - 11904: 0xAFFC, - 33586 - 11904: 0xAFF7, - 33587 - 11904: 0xD373, - 33588 - 11904: 0xAFF5, - 33589 - 11904: 0xAFF4, - 33590 - 11904: 0xAFF9, - 33591 - 11904: 0xD3AB, - 33592 - 11904: 0xAFF1, - 33593 - 11904: 0xAFF8, - 33594 - 11904: 0xD072, - 33595 - 11904: 0xDB5C, - 33596 - 11904: 0xD3A6, - 33597 - 11904: 0x9846, - 33599 - 11904: 0xD37A, - 33600 - 11904: 0xAFFB, - 33601 - 11904: 0xD37B, - 33602 - 11904: 0xD3A1, - 33603 - 11904: 0xAFFE, - 33604 - 11904: 0xD375, - 33605 - 11904: 0xD3AF, - 33607 - 11904: 0xD3AE, - 33608 - 11904: 0xD3B6, - 33609 - 11904: 0xAFF3, - 33610 - 11904: 0xAFF0, - 33611 - 11904: 0xD3B4, - 33612 - 11904: 0xD3B0, - 33613 - 11904: 0xD3A7, - 33614 - 11904: 0xD3A2, - 33615 - 11904: 0xAFF6, - 33616 - 11904: 0xAFF2, - 33617 - 11904: 0xD377, - 33618 - 11904: 0xAFEE, - 33619 - 11904: 0xD3B1, - 33620 - 11904: 0xAFEF, - 33622 - 11904: 0xD379, - 33623 - 11904: 0x99B4, - 33634 - 11904: 0x8EF5, - 33635 - 11904: 0xFD55, - 33638 - 11904: 0x9CCD, - 33647 - 11904: 0x8978, - 33651 - 11904: 0xD75E, - 33652 - 11904: 0xD760, - 33653 - 11904: 0xD765, - 33654 - 11904: 0xD779, - 33655 - 11904: 0xB2FC, - 33656 - 11904: 0xB2F2, - 33658 - 11904: 0xD75D, - 33659 - 11904: 0xB2FD, - 33660 - 11904: 0xB2FE, - 33661 - 11904: 0xD768, - 33662 - 11904: 0xD76F, - 33663 - 11904: 0xD775, - 33665 - 11904: 0xD762, - 33667 - 11904: 0xD769, - 33669 - 11904: 0x8F53, - 33670 - 11904: 0xB340, - 33671 - 11904: 0xD777, - 33672 - 11904: 0xD772, - 33673 - 11904: 0xB2FA, - 33674 - 11904: 0xB2F8, - 33675 - 11904: 0xD76E, - 33676 - 11904: 0xD76A, - 33677 - 11904: 0xD75C, - 33678 - 11904: 0xB2EF, - 33679 - 11904: 0xD761, - 33680 - 11904: 0xD759, - 33681 - 11904: 0x8F6F, - 33682 - 11904: 0xB2F7, - 33683 - 11904: 0xB2F9, - 33684 - 11904: 0xD766, - 33685 - 11904: 0xD763, - 33686 - 11904: 0xB2F4, - 33687 - 11904: 0xD773, - 33688 - 11904: 0xB2F1, - 33689 - 11904: 0xD764, - 33690 - 11904: 0xD77A, - 33691 - 11904: 0xD76C, - 33692 - 11904: 0x8E63, - 33693 - 11904: 0xD76B, - 33694 - 11904: 0xB2F0, - 33696 - 11904: 0xB2FB, - 33698 - 11904: 0xB2F3, - 33699 - 11904: 0xD75A, - 33700 - 11904: 0xD75F, - 33701 - 11904: 0xD770, - 33702 - 11904: 0xD776, - 33703 - 11904: 0xB341, - 33704 - 11904: 0xD75B, - 33705 - 11904: 0xD767, - 33706 - 11904: 0xD76D, - 33707 - 11904: 0xB2F6, - 33708 - 11904: 0x8F56, - 33710 - 11904: 0xD778, - 33711 - 11904: 0xD771, - 33712 - 11904: 0xD774, - 33721 - 11904: 0xFE76, - 33725 - 11904: 0xB2F5, - 33726 - 11904: 0x9FC6, - 33727 - 11904: 0xDB6C, - 33728 - 11904: 0xDB60, - 33729 - 11904: 0xB5D7, - 33730 - 11904: 0xDB7D, - 33731 - 11904: 0xDBA7, - 33732 - 11904: 0xDBAA, - 33733 - 11904: 0xB5D5, - 33734 - 11904: 0xDB68, - 33735 - 11904: 0xDBA3, - 33736 - 11904: 0xDB69, - 33737 - 11904: 0xDB77, - 33738 - 11904: 0xB5E2, - 33739 - 11904: 0xDB73, - 33740 - 11904: 0xB5DF, - 33741 - 11904: 0xFAAC, - 33742 - 11904: 0xDB74, - 33743 - 11904: 0xDB5D, - 33745 - 11904: 0xDBA4, - 33747 - 11904: 0x8F58, - 33748 - 11904: 0xB5E8, - 33749 - 11904: 0xDBA1, - 33750 - 11904: 0xDB75, - 33751 - 11904: 0xDBAC, - 33752 - 11904: 0xDB70, - 33753 - 11904: 0xDFC8, - 33755 - 11904: 0xDBAF, - 33756 - 11904: 0xB5E6, - 33757 - 11904: 0xDB6E, - 33758 - 11904: 0xDB7A, - 33759 - 11904: 0xB5E9, - 33760 - 11904: 0xB5D4, - 33761 - 11904: 0xDB72, - 33762 - 11904: 0xDBAD, - 33763 - 11904: 0xDB6B, - 33764 - 11904: 0xDB64, - 33765 - 11904: 0xDB6F, - 33767 - 11904: 0xDB63, - 33768 - 11904: 0xDB61, - 33769 - 11904: 0xB5D0, - 33770 - 11904: 0xDBA5, - 33771 - 11904: 0xDB6A, - 33772 - 11904: 0xDBA8, - 33773 - 11904: 0x9848, - 33774 - 11904: 0xDBA9, - 33775 - 11904: 0xB5D8, - 33776 - 11904: 0xB5DD, - 33777 - 11904: 0xB5D9, - 33778 - 11904: 0xB5E1, - 33779 - 11904: 0xDB7E, - 33780 - 11904: 0xB5DA, - 33781 - 11904: 0xDB76, - 33782 - 11904: 0xDB66, - 33784 - 11904: 0xB5D2, - 33785 - 11904: 0xDB5E, - 33786 - 11904: 0xDBA2, - 33787 - 11904: 0xDBAB, - 33788 - 11904: 0xDB65, - 33789 - 11904: 0xB5E0, - 33790 - 11904: 0xDBB0, - 33791 - 11904: 0xDB71, - 33793 - 11904: 0xDB6D, - 33795 - 11904: 0xB5D1, - 33796 - 11904: 0xB5E5, - 33797 - 11904: 0x99B7, - 33798 - 11904: 0xDB7C, - 33799 - 11904: 0xB5E7, - 33801 - 11904: 0xDB78, - 33802 - 11904: 0xB5DC, - 33803 - 11904: 0xB5D6, - 33804 - 11904: 0xB5DE, - 33805 - 11904: 0xB5D3, - 33806 - 11904: 0xB5E4, - 33807 - 11904: 0xDB79, - 33808 - 11904: 0xDB67, - 33809 - 11904: 0xDB7B, - 33810 - 11904: 0xDB62, - 33811 - 11904: 0xDBA6, - 33812 - 11904: 0x9665, - 33814 - 11904: 0xFA6C, - 33816 - 11904: 0x9DE7, - 33819 - 11904: 0xDBAE, - 33820 - 11904: 0x9E62, - 33824 - 11904: 0x96CC, - 33825 - 11904: 0x8E67, - 33827 - 11904: 0xDB5F, - 33828 - 11904: 0xFC75, - 33830 - 11904: 0x987E, - 33833 - 11904: 0xDFC7, - 33835 - 11904: 0xDFDD, - 33836 - 11904: 0xB855, - 33837 - 11904: 0xDFCC, - 33838 - 11904: 0xFDB9, - 33839 - 11904: 0xDFCA, - 33840 - 11904: 0xDFB5, - 33841 - 11904: 0xB8A9, - 33842 - 11904: 0xDFC5, - 33843 - 11904: 0xDFD9, - 33844 - 11904: 0xDFC1, - 33845 - 11904: 0xB8B1, - 33846 - 11904: 0xDFD8, - 33847 - 11904: 0xDFBF, - 33848 - 11904: 0xB5E3, - 33849 - 11904: 0xDFCF, - 33850 - 11904: 0xDFC0, - 33851 - 11904: 0xDFD6, - 33852 - 11904: 0xB8B0, - 33853 - 11904: 0xB8A8, - 33854 - 11904: 0x97FC, - 33855 - 11904: 0xDFAA, - 33856 - 11904: 0xDFB2, - 33858 - 11904: 0xDFCB, - 33859 - 11904: 0xDFC3, - 33860 - 11904: 0xDFDC, - 33861 - 11904: 0xDFC6, - 33862 - 11904: 0xB8B6, - 33863 - 11904: 0xDFD7, - 33864 - 11904: 0x98F9, - 33865 - 11904: 0xB8AD, - 33866 - 11904: 0x8F66, - 33867 - 11904: 0xDFC9, - 33868 - 11904: 0xDFD1, - 33869 - 11904: 0xDFB6, - 33870 - 11904: 0xDFD0, - 33872 - 11904: 0xDFE1, - 33873 - 11904: 0xDFB1, - 33874 - 11904: 0xDFD2, - 33875 - 11904: 0x956E, - 33876 - 11904: 0xDFDF, - 33877 - 11904: 0x9245, - 33878 - 11904: 0xDFAB, - 33879 - 11904: 0xB5DB, - 33880 - 11904: 0x8F60, - 33881 - 11904: 0xDFB9, - 33882 - 11904: 0xDFB8, - 33883 - 11904: 0xB8AF, - 33884 - 11904: 0x9ED1, - 33885 - 11904: 0xDFBC, - 33886 - 11904: 0xDFBE, - 33887 - 11904: 0xDFCD, - 33888 - 11904: 0xDFDE, - 33889 - 11904: 0xB8B2, - 33890 - 11904: 0xFECD, - 33891 - 11904: 0xB8B3, - 33892 - 11904: 0x99B9, - 33893 - 11904: 0xDFB0, - 33894 - 11904: 0xB8AB, - 33895 - 11904: 0xDFB4, - 33896 - 11904: 0xDFDA, - 33897 - 11904: 0xB8B4, - 33899 - 11904: 0xB8AC, - 33900 - 11904: 0xB8AE, - 33901 - 11904: 0xB8B5, - 33902 - 11904: 0xDFE0, - 33903 - 11904: 0xDFD3, - 33904 - 11904: 0xDFCE, - 33905 - 11904: 0x8F62, - 33906 - 11904: 0x974C, - 33907 - 11904: 0xDFBB, - 33908 - 11904: 0xDFBA, - 33909 - 11904: 0xB8AA, - 33910 - 11904: 0xDFAC, - 33911 - 11904: 0xB8A7, - 33912 - 11904: 0xDFC4, - 33913 - 11904: 0xDFAD, - 33914 - 11904: 0xDFC2, - 33917 - 11904: 0xDFB7, - 33918 - 11904: 0xDFDB, - 33919 - 11904: 0x91C7, - 33920 - 11904: 0x955F, - 33922 - 11904: 0xB8A6, - 33924 - 11904: 0x87AB, - 33926 - 11904: 0xDFB3, - 33928 - 11904: 0x99BB, - 33933 - 11904: 0xDFAF, - 33934 - 11904: 0xDFD5, - 33935 - 11904: 0xDFAE, - 33936 - 11904: 0xBB60, - 33937 - 11904: 0xE3D3, - 33938 - 11904: 0x8E6D, - 33939 - 11904: 0x8F71, - 33940 - 11904: 0xE3C2, - 33942 - 11904: 0x94CB, - 33943 - 11904: 0xE3AC, - 33944 - 11904: 0xE3CA, - 33945 - 11904: 0xBB58, - 33946 - 11904: 0xE3BB, - 33947 - 11904: 0xE3C5, - 33948 - 11904: 0xBB5B, - 33949 - 11904: 0xE3BE, - 33950 - 11904: 0xBB59, - 33951 - 11904: 0xE3AF, - 33952 - 11904: 0xE3CD, - 33953 - 11904: 0xE3AE, - 33954 - 11904: 0xE3C1, - 33955 - 11904: 0x95B1, - 33956 - 11904: 0xE3AD, - 33959 - 11904: 0xE3BF, - 33960 - 11904: 0xE3C8, - 33961 - 11904: 0xE3C6, - 33962 - 11904: 0xE3BA, - 33963 - 11904: 0xE3B5, - 33964 - 11904: 0xE3B3, - 33965 - 11904: 0x9AF2, - 33966 - 11904: 0xE3B4, - 33967 - 11904: 0xE3C7, - 33968 - 11904: 0xE3D2, - 33969 - 11904: 0xE3BC, - 33970 - 11904: 0xBB5A, - 33972 - 11904: 0xE3B7, - 33974 - 11904: 0xE3CB, - 33976 - 11904: 0xBB5D, - 33977 - 11904: 0xE3B6, - 33978 - 11904: 0xE3B0, - 33979 - 11904: 0xE3C0, - 33980 - 11904: 0xBB61, - 33981 - 11904: 0x96C3, - 33982 - 11904: 0x99BD, - 33983 - 11904: 0xBB55, - 33984 - 11904: 0xBB5E, - 33985 - 11904: 0xE3B8, - 33986 - 11904: 0xE3B2, - 33988 - 11904: 0xBB57, - 33989 - 11904: 0xDFD4, - 33990 - 11904: 0xBB56, - 33991 - 11904: 0xE3C3, - 33993 - 11904: 0xBB54, - 33994 - 11904: 0xBB63, - 33995 - 11904: 0xBB5C, - 33996 - 11904: 0xE3C4, - 33997 - 11904: 0xE3B9, - 33998 - 11904: 0xE3B1, - 33999 - 11904: 0xE3CC, - 34000 - 11904: 0xE3BD, - 34001 - 11904: 0xBB62, - 34002 - 11904: 0xE3D0, - 34003 - 11904: 0xBB5F, - 34004 - 11904: 0xE3CF, - 34006 - 11904: 0xE3C9, - 34007 - 11904: 0xE3CE, - 34010 - 11904: 0xA0CF, - 34011 - 11904: 0xE3D1, - 34014 - 11904: 0x8F6D, - 34017 - 11904: 0x99BE, - 34018 - 11904: 0x8EF4, - 34020 - 11904: 0x8F72, - 34021 - 11904: 0x95E4, - 34023 - 11904: 0xE773, - 34024 - 11904: 0xE774, - 34025 - 11904: 0xE767, - 34026 - 11904: 0xE766, - 34027 - 11904: 0xE762, - 34028 - 11904: 0xBDB4, - 34030 - 11904: 0xBDAC, - 34031 - 11904: 0xE776, - 34032 - 11904: 0xE775, - 34033 - 11904: 0xDFA9, - 34034 - 11904: 0xE75F, - 34035 - 11904: 0xE763, - 34036 - 11904: 0xE75D, - 34038 - 11904: 0xE770, - 34039 - 11904: 0xE761, - 34040 - 11904: 0x99BF, - 34041 - 11904: 0xE777, - 34042 - 11904: 0xE75A, - 34043 - 11904: 0xE758, - 34044 - 11904: 0xE764, - 34045 - 11904: 0xE76E, - 34046 - 11904: 0xE769, - 34047 - 11904: 0xBDB6, - 34048 - 11904: 0xE74F, - 34050 - 11904: 0xE76D, - 34051 - 11904: 0x9244, - 34052 - 11904: 0x87D7, - 34053 - 11904: 0xFBA5, - 34054 - 11904: 0xBDB7, - 34055 - 11904: 0xDFBD, - 34056 - 11904: 0xE75B, - 34057 - 11904: 0xE752, - 34058 - 11904: 0xE755, - 34059 - 11904: 0xE77B, - 34060 - 11904: 0xE75C, - 34061 - 11904: 0xE753, - 34062 - 11904: 0xE751, - 34063 - 11904: 0xE74E, - 34064 - 11904: 0x99C0, - 34065 - 11904: 0xBDB0, - 34066 - 11904: 0xE765, - 34067 - 11904: 0xBDAF, - 34068 - 11904: 0xBDB3, - 34069 - 11904: 0xE760, - 34070 - 11904: 0xE768, - 34071 - 11904: 0xBDA9, - 34072 - 11904: 0xE778, - 34073 - 11904: 0xE77C, - 34074 - 11904: 0xBDAB, - 34076 - 11904: 0xE757, - 34077 - 11904: 0xE76B, - 34078 - 11904: 0xE76F, - 34079 - 11904: 0xE754, - 34080 - 11904: 0xE779, - 34081 - 11904: 0xBDB2, - 34083 - 11904: 0xBDB1, - 34084 - 11904: 0xE74C, - 34085 - 11904: 0xBDB5, - 34086 - 11904: 0xE772, - 34087 - 11904: 0xE756, - 34088 - 11904: 0xE76A, - 34089 - 11904: 0xE750, - 34090 - 11904: 0xE75E, - 34091 - 11904: 0xE759, - 34092 - 11904: 0xBDAD, - 34093 - 11904: 0xBDAE, - 34094 - 11904: 0xE76C, - 34095 - 11904: 0xE77D, - 34096 - 11904: 0xE77A, - 34097 - 11904: 0xE771, - 34099 - 11904: 0xFDB4, - 34100 - 11904: 0x8F77, - 34104 - 11904: 0x99C1, - 34107 - 11904: 0xE74D, - 34109 - 11904: 0xBDAA, - 34110 - 11904: 0xEB49, - 34112 - 11904: 0xEB40, - 34113 - 11904: 0xEB43, - 34114 - 11904: 0xFAB9, - 34115 - 11904: 0xBFBB, - 34116 - 11904: 0xEB45, - 34117 - 11904: 0xEAF9, - 34118 - 11904: 0xEB41, - 34119 - 11904: 0xEB47, - 34120 - 11904: 0xBFB8, - 34121 - 11904: 0xBFBC, - 34122 - 11904: 0xBFB6, - 34123 - 11904: 0x8F40, - 34124 - 11904: 0xFA44, - 34125 - 11904: 0xEAFB, - 34126 - 11904: 0xEB4C, - 34129 - 11904: 0xEB46, - 34130 - 11904: 0x99C2, - 34131 - 11904: 0xEAFC, - 34132 - 11904: 0xEB55, - 34133 - 11904: 0xEB4F, - 34134 - 11904: 0xEAF8, - 34135 - 11904: 0xEE46, - 34136 - 11904: 0xEAFE, - 34137 - 11904: 0xBFB7, - 34138 - 11904: 0x8F5C, - 34139 - 11904: 0xEB4A, - 34141 - 11904: 0xEB54, - 34142 - 11904: 0xBFBF, - 34143 - 11904: 0x8CBD, - 34144 - 11904: 0xEB51, - 34145 - 11904: 0xEAFD, - 34146 - 11904: 0xEB44, - 34147 - 11904: 0xEB48, - 34148 - 11904: 0xEB42, - 34149 - 11904: 0xEB56, - 34150 - 11904: 0xEB53, - 34151 - 11904: 0xEB50, - 34152 - 11904: 0xBFB9, - 34153 - 11904: 0xBFBA, - 34154 - 11904: 0xBFBE, - 34155 - 11904: 0xEAFA, - 34156 - 11904: 0xEB57, - 34157 - 11904: 0xBFBD, - 34158 - 11904: 0xEB4D, - 34159 - 11904: 0x99C4, - 34160 - 11904: 0x99C5, - 34161 - 11904: 0xEB4B, - 34163 - 11904: 0x8F7B, - 34165 - 11904: 0xEB4E, - 34166 - 11904: 0xEE53, - 34167 - 11904: 0xEE40, - 34168 - 11904: 0xEE45, - 34169 - 11904: 0xEE52, - 34170 - 11904: 0xEE44, - 34171 - 11904: 0xEDFB, - 34172 - 11904: 0xEE41, - 34174 - 11904: 0xC1A2, - 34176 - 11904: 0xEDF4, - 34177 - 11904: 0xEE4D, - 34178 - 11904: 0xEE4F, - 34179 - 11904: 0xEDF3, - 34180 - 11904: 0xC1A1, - 34181 - 11904: 0xEE51, - 34182 - 11904: 0xEE49, - 34183 - 11904: 0xC1A8, - 34184 - 11904: 0xEE50, - 34185 - 11904: 0xEE42, - 34186 - 11904: 0xC1AA, - 34187 - 11904: 0xEDF9, - 34188 - 11904: 0xEB52, - 34189 - 11904: 0xEE4A, - 34190 - 11904: 0xEE47, - 34191 - 11904: 0xEDF5, - 34192 - 11904: 0xEE55, - 34193 - 11904: 0xC1A4, - 34195 - 11904: 0x8776, - 34196 - 11904: 0xC1A5, - 34197 - 11904: 0xEDF7, - 34198 - 11904: 0xEE48, - 34199 - 11904: 0x8CB6, - 34200 - 11904: 0xEE54, - 34201 - 11904: 0xEE4B, - 34202 - 11904: 0xEDFD, - 34203 - 11904: 0xC1A7, - 34204 - 11904: 0xC1A3, - 34205 - 11904: 0xEE4C, - 34206 - 11904: 0xEDFE, - 34207 - 11904: 0xEE56, - 34208 - 11904: 0xEDF8, - 34209 - 11904: 0xEE43, - 34210 - 11904: 0xEE4E, - 34211 - 11904: 0xEDFA, - 34212 - 11904: 0xEDFC, - 34214 - 11904: 0xC2CB, - 34215 - 11904: 0xEDF6, - 34216 - 11904: 0xC1A9, - 34217 - 11904: 0xC2C4, - 34218 - 11904: 0xC17E, - 34223 - 11904: 0xC1A6, - 34224 - 11904: 0xC2C8, - 34225 - 11904: 0xF0B3, - 34227 - 11904: 0xF0A9, - 34228 - 11904: 0xF0A4, - 34229 - 11904: 0xF0AA, - 34230 - 11904: 0xF0B4, - 34231 - 11904: 0xF0B8, - 34232 - 11904: 0xF0B7, - 34233 - 11904: 0xC2CA, - 34234 - 11904: 0xC2C9, - 34237 - 11904: 0xF0AB, - 34238 - 11904: 0xF0B9, - 34239 - 11904: 0xF0AE, - 34240 - 11904: 0xF0A6, - 34241 - 11904: 0x8FA3, - 34242 - 11904: 0xF0A8, - 34243 - 11904: 0xF0A7, - 34244 - 11904: 0xF0AD, - 34245 - 11904: 0xF0B2, - 34246 - 11904: 0xF0A5, - 34247 - 11904: 0xF0AC, - 34248 - 11904: 0xF0B1, - 34249 - 11904: 0xC2C7, - 34251 - 11904: 0xF0AF, - 34253 - 11904: 0xC2C5, - 34254 - 11904: 0xF0B0, - 34255 - 11904: 0xC2C3, - 34256 - 11904: 0xC2C6, - 34257 - 11904: 0xF2D5, - 34258 - 11904: 0xF0B5, - 34261 - 11904: 0xC3C2, - 34262 - 11904: 0x8CCE, - 34263 - 11904: 0xF2CD, - 34264 - 11904: 0xF2D1, - 34265 - 11904: 0xF2C9, - 34266 - 11904: 0xF2CC, - 34268 - 11904: 0xF2D4, - 34269 - 11904: 0xC3C0, - 34270 - 11904: 0xF2D9, - 34271 - 11904: 0xF2D2, - 34272 - 11904: 0x99C6, - 34273 - 11904: 0xF2CA, - 34274 - 11904: 0xF2DA, - 34275 - 11904: 0xF2D3, - 34276 - 11904: 0xC3C3, - 34277 - 11904: 0xC3C4, - 34278 - 11904: 0xF2D7, - 34280 - 11904: 0xF2CB, - 34281 - 11904: 0xC3BF, - 34282 - 11904: 0xC3C1, - 34283 - 11904: 0xF2C6, - 34284 - 11904: 0xF2CE, - 34285 - 11904: 0xF2C8, - 34286 - 11904: 0x96CD, - 34287 - 11904: 0xF2D8, - 34288 - 11904: 0xF2D6, - 34289 - 11904: 0xF2C7, - 34290 - 11904: 0xF2CF, - 34294 - 11904: 0xF4BE, - 34295 - 11904: 0xC3C5, - 34296 - 11904: 0xF2D0, - 34297 - 11904: 0xC4A7, - 34298 - 11904: 0xC4A9, - 34299 - 11904: 0xC4A6, - 34300 - 11904: 0x96C7, - 34301 - 11904: 0xF4C3, - 34302 - 11904: 0xF4BB, - 34303 - 11904: 0xF4B9, - 34304 - 11904: 0xF4BD, - 34305 - 11904: 0xF4BA, - 34306 - 11904: 0x8FA5, - 34308 - 11904: 0xF4BF, - 34309 - 11904: 0xF4C1, - 34310 - 11904: 0xC4AA, - 34311 - 11904: 0xC4AC, - 34313 - 11904: 0xF4C0, - 34314 - 11904: 0xC4AD, - 34315 - 11904: 0xC4AB, - 34316 - 11904: 0xF4C2, - 34317 - 11904: 0xFABB, - 34319 - 11904: 0x8C61, - 34320 - 11904: 0x9570, - 34321 - 11904: 0xC4A8, - 34323 - 11904: 0x87AF, - 34324 - 11904: 0x9368, - 34326 - 11904: 0x8F7E, - 34327 - 11904: 0xC4F4, - 34328 - 11904: 0xF5F1, - 34329 - 11904: 0xF5F7, - 34330 - 11904: 0xC4F6, - 34331 - 11904: 0xF4BC, - 34332 - 11904: 0xF5F6, - 34334 - 11904: 0xF5FD, - 34335 - 11904: 0xF5F4, - 34336 - 11904: 0xF5FB, - 34337 - 11904: 0xF5FA, - 34338 - 11904: 0xF4B8, - 34339 - 11904: 0xF5F5, - 34340 - 11904: 0xF0B6, - 34341 - 11904: 0xF5FE, - 34342 - 11904: 0xF5F3, - 34343 - 11904: 0xF5F8, - 34344 - 11904: 0x8FAA, - 34345 - 11904: 0xF5FC, - 34346 - 11904: 0xF5F2, - 34348 - 11904: 0xF74A, - 34349 - 11904: 0xC4F5, - 34350 - 11904: 0xF5F9, - 34351 - 11904: 0xA050, - 34353 - 11904: 0xF7F4, - 34354 - 11904: 0xF74B, - 34355 - 11904: 0xF749, - 34356 - 11904: 0xF747, - 34357 - 11904: 0xF748, - 34358 - 11904: 0xF74C, - 34360 - 11904: 0xC5D9, - 34361 - 11904: 0xF7F2, - 34362 - 11904: 0xF7F0, - 34363 - 11904: 0xF7F5, - 34364 - 11904: 0xF7F3, - 34366 - 11904: 0xF7F6, - 34367 - 11904: 0xC5DA, - 34368 - 11904: 0xF7F1, - 34370 - 11904: 0x90D3, - 34371 - 11904: 0xF8BC, - 34373 - 11904: 0x9556, - 34374 - 11904: 0xF945, - 34375 - 11904: 0xF946, - 34376 - 11904: 0xF947, - 34379 - 11904: 0xF9C7, - 34380 - 11904: 0xF9BD, - 34381 - 11904: 0xCA4F, - 34382 - 11904: 0xAAEA, - 34384 - 11904: 0xAD68, - 34386 - 11904: 0xD3B8, - 34387 - 11904: 0xD3B7, - 34388 - 11904: 0xB040, - 34389 - 11904: 0xB342, - 34390 - 11904: 0xD77C, - 34393 - 11904: 0xD77B, - 34395 - 11904: 0xB5EA, - 34396 - 11904: 0xB8B8, - 34398 - 11904: 0xB8B7, - 34399 - 11904: 0xB8B9, - 34401 - 11904: 0xE3D4, - 34402 - 11904: 0xE77E, - 34403 - 11904: 0xEB58, - 34404 - 11904: 0xEB5A, - 34405 - 11904: 0xEB59, - 34407 - 11904: 0xC1AB, - 34408 - 11904: 0xEE57, - 34409 - 11904: 0xF0BA, - 34410 - 11904: 0xF9A5, - 34411 - 11904: 0xA6E4, - 34412 - 11904: 0x8FB8, - 34413 - 11904: 0xCDC9, - 34414 - 11904: 0xCDCA, - 34415 - 11904: 0xCDC8, - 34416 - 11904: 0xCDC7, - 34417 - 11904: 0xAAEB, - 34418 - 11904: 0x99C8, - 34419 - 11904: 0xD0A9, - 34420 - 11904: 0xD0A7, - 34423 - 11904: 0xD0A6, - 34425 - 11904: 0xAD69, - 34426 - 11904: 0xAD6B, - 34427 - 11904: 0xAD6A, - 34428 - 11904: 0xD0A8, - 34430 - 11904: 0x8FAF, - 34437 - 11904: 0xD3C4, - 34438 - 11904: 0xD3C1, - 34439 - 11904: 0xD3BF, - 34442 - 11904: 0xB041, - 34443 - 11904: 0xD3C2, - 34444 - 11904: 0xB046, - 34445 - 11904: 0xD3BC, - 34446 - 11904: 0xD3CB, - 34448 - 11904: 0xD3CD, - 34449 - 11904: 0xD3BD, - 34450 - 11904: 0x99C9, - 34451 - 11904: 0xB043, - 34452 - 11904: 0xD3CE, - 34453 - 11904: 0xD3C9, - 34454 - 11904: 0xD3BB, - 34455 - 11904: 0xD3C0, - 34456 - 11904: 0xD3CA, - 34457 - 11904: 0xD3C6, - 34458 - 11904: 0xD3C3, - 34460 - 11904: 0xB048, - 34461 - 11904: 0xD3CC, - 34462 - 11904: 0xD3BE, - 34464 - 11904: 0x9579, - 34465 - 11904: 0xD3C7, - 34466 - 11904: 0xD3B9, - 34467 - 11904: 0xB047, - 34468 - 11904: 0xB044, - 34469 - 11904: 0xD3C5, - 34471 - 11904: 0xD3C8, - 34472 - 11904: 0xD3BA, - 34473 - 11904: 0xB045, - 34474 - 11904: 0xB042, - 34477 - 11904: 0x9F49, - 34479 - 11904: 0xB34C, - 34480 - 11904: 0xD7A5, - 34481 - 11904: 0xB34B, - 34482 - 11904: 0x99CA, - 34483 - 11904: 0xD7A8, - 34484 - 11904: 0xD7AB, - 34485 - 11904: 0xB348, - 34486 - 11904: 0xB346, - 34487 - 11904: 0xD77E, - 34488 - 11904: 0xD7A9, - 34489 - 11904: 0xD7A7, - 34490 - 11904: 0xD7A4, - 34491 - 11904: 0xD7AC, - 34492 - 11904: 0xD7AD, - 34493 - 11904: 0xD7AF, - 34494 - 11904: 0xD7B0, - 34495 - 11904: 0xD77D, - 34496 - 11904: 0xB345, - 34497 - 11904: 0xD7A2, - 34498 - 11904: 0xD7A1, - 34499 - 11904: 0xD7AE, - 34500 - 11904: 0xB347, - 34501 - 11904: 0xD7A3, - 34502 - 11904: 0xB349, - 34503 - 11904: 0xB344, - 34504 - 11904: 0xD7A6, - 34505 - 11904: 0xB34D, - 34507 - 11904: 0xB34A, - 34508 - 11904: 0xD7AA, - 34512 - 11904: 0xB5F1, - 34513 - 11904: 0xDBBF, - 34515 - 11904: 0xDBB4, - 34516 - 11904: 0xB5EE, - 34518 - 11904: 0xDFE7, - 34519 - 11904: 0xDBBD, - 34520 - 11904: 0xDBB1, - 34521 - 11904: 0xB5EC, - 34522 - 11904: 0xDBB6, - 34523 - 11904: 0xB5EF, - 34524 - 11904: 0xDBBA, - 34525 - 11904: 0xDBB8, - 34526 - 11904: 0xB5F2, - 34527 - 11904: 0xB5EB, - 34530 - 11904: 0xDBB2, - 34531 - 11904: 0xDBB5, - 34532 - 11904: 0xB5F0, - 34534 - 11904: 0xDBB3, - 34536 - 11904: 0xDBBE, - 34537 - 11904: 0xDBBC, - 34538 - 11904: 0xDBB7, - 34539 - 11904: 0xDBB9, - 34540 - 11904: 0xDBBB, - 34541 - 11904: 0xB5ED, - 34543 - 11904: 0x99CB, - 34549 - 11904: 0xDFE8, - 34550 - 11904: 0xDFEE, - 34551 - 11904: 0xDFE4, - 34552 - 11904: 0xDFEA, - 34553 - 11904: 0xB8BA, - 34554 - 11904: 0xDFE6, - 34555 - 11904: 0xB8C0, - 34558 - 11904: 0xB8BF, - 34560 - 11904: 0xB8BE, - 34561 - 11904: 0xDFED, - 34562 - 11904: 0xB8C1, - 34563 - 11904: 0xB8C2, - 34564 - 11904: 0xDFE3, - 34565 - 11904: 0xDFF0, - 34566 - 11904: 0xB8C3, - 34567 - 11904: 0xB8BD, - 34568 - 11904: 0xB8BC, - 34569 - 11904: 0xDFEC, - 34570 - 11904: 0xB8C4, - 34571 - 11904: 0xDFE2, - 34572 - 11904: 0xDFE5, - 34573 - 11904: 0xDFEF, - 34574 - 11904: 0xDFEB, - 34577 - 11904: 0xE3F4, - 34578 - 11904: 0xE3E9, - 34579 - 11904: 0xB8BB, - 34584 - 11904: 0xBB6A, - 34585 - 11904: 0xE3DD, - 34586 - 11904: 0xE3F2, - 34587 - 11904: 0xE3DE, - 34588 - 11904: 0xBB65, - 34590 - 11904: 0xE3DB, - 34592 - 11904: 0xE3E4, - 34593 - 11904: 0xE3DC, - 34594 - 11904: 0xBB67, - 34595 - 11904: 0xE3D6, - 34596 - 11904: 0xE3F1, - 34597 - 11904: 0xBB68, - 34598 - 11904: 0xE3EE, - 34599 - 11904: 0xE3EF, - 34600 - 11904: 0xE3D7, - 34601 - 11904: 0xBB6D, - 34602 - 11904: 0xE3E6, - 34604 - 11904: 0xE3E0, - 34605 - 11904: 0xE3E7, - 34606 - 11904: 0xE3DA, - 34608 - 11904: 0xE3F3, - 34609 - 11904: 0xE3EB, - 34610 - 11904: 0xE3E5, - 34611 - 11904: 0xE3D5, - 34612 - 11904: 0xBB69, - 34613 - 11904: 0xE3EC, - 34615 - 11904: 0xBB6C, - 34616 - 11904: 0xE3F0, - 34618 - 11904: 0xE3EA, - 34619 - 11904: 0xBB66, - 34620 - 11904: 0xE3E8, - 34622 - 11904: 0xE3E2, - 34623 - 11904: 0xBB64, - 34624 - 11904: 0xE3D9, - 34625 - 11904: 0xE3E1, - 34626 - 11904: 0xE3ED, - 34627 - 11904: 0xE3DF, - 34630 - 11904: 0xE3E3, - 34636 - 11904: 0xBDC1, - 34637 - 11904: 0xDFE9, - 34638 - 11904: 0xE7B2, - 34639 - 11904: 0xE7BB, - 34640 - 11904: 0xE7B1, - 34641 - 11904: 0xE7AD, - 34642 - 11904: 0xE7AA, - 34643 - 11904: 0xBDC2, - 34644 - 11904: 0xE7A8, - 34645 - 11904: 0xBB6B, - 34646 - 11904: 0xE7A1, - 34647 - 11904: 0xBDC0, - 34648 - 11904: 0xE7A7, - 34649 - 11904: 0xBDBF, - 34650 - 11904: 0xE7AC, - 34651 - 11904: 0xE7A9, - 34652 - 11904: 0xE7B9, - 34653 - 11904: 0xE7B4, - 34654 - 11904: 0xE7AE, - 34655 - 11904: 0xE7B3, - 34656 - 11904: 0xBDBB, - 34657 - 11904: 0xE7AB, - 34658 - 11904: 0xE7BE, - 34659 - 11904: 0xE7A2, - 34660 - 11904: 0xE7A3, - 34661 - 11904: 0xE7BA, - 34662 - 11904: 0xBDBC, - 34663 - 11904: 0xE7BF, - 34664 - 11904: 0xBDBE, - 34665 - 11904: 0xE7C0, - 34666 - 11904: 0xE7B0, - 34667 - 11904: 0xE3D8, - 34668 - 11904: 0xE7B6, - 34669 - 11904: 0xE7AF, - 34670 - 11904: 0xE7B8, - 34671 - 11904: 0xE7B5, - 34672 - 11904: 0x9DD5, - 34673 - 11904: 0x8FB0, - 34675 - 11904: 0xE7A6, - 34676 - 11904: 0xBDB9, - 34677 - 11904: 0xE7BD, - 34678 - 11904: 0xBDBA, - 34679 - 11904: 0xE7A4, - 34680 - 11904: 0xBDBD, - 34681 - 11904: 0xEB64, - 34682 - 11904: 0xE7B7, - 34683 - 11904: 0xE7BC, - 34685 - 11904: 0xFA7A, - 34689 - 11904: 0xEB61, - 34690 - 11904: 0xBDB8, - 34691 - 11904: 0xBFC0, - 34692 - 11904: 0xEB6B, - 34693 - 11904: 0xEB67, - 34694 - 11904: 0x9E5F, - 34695 - 11904: 0xEB65, - 34696 - 11904: 0xEB60, - 34697 - 11904: 0xEB6F, - 34699 - 11904: 0x99CD, - 34700 - 11904: 0xA0C9, - 34701 - 11904: 0xBFC4, - 34703 - 11904: 0xEB5C, - 34704 - 11904: 0xEB68, - 34705 - 11904: 0xEB69, - 34706 - 11904: 0xEB5F, - 34707 - 11904: 0xEB5E, - 34708 - 11904: 0xEB6C, - 34710 - 11904: 0xEB62, - 34711 - 11904: 0xEB5D, - 34712 - 11904: 0xEB63, - 34714 - 11904: 0xEB6E, - 34715 - 11904: 0xEB5B, - 34716 - 11904: 0xEB6D, - 34717 - 11904: 0xEB6A, - 34718 - 11904: 0xBFC2, - 34719 - 11904: 0xBFC1, - 34722 - 11904: 0xBFC3, - 34723 - 11904: 0xEB66, - 34724 - 11904: 0xF0CB, - 34725 - 11904: 0x9ADB, - 34729 - 11904: 0xA0C6, - 34730 - 11904: 0xEE59, - 34731 - 11904: 0xC1B1, - 34732 - 11904: 0xEE5D, - 34733 - 11904: 0xEE5A, - 34734 - 11904: 0xEE61, - 34735 - 11904: 0xEE67, - 34736 - 11904: 0xEE5C, - 34737 - 11904: 0x8FB4, - 34738 - 11904: 0xEE70, - 34739 - 11904: 0xC1AE, - 34740 - 11904: 0xEE6A, - 34741 - 11904: 0xEE5F, - 34742 - 11904: 0xEE6B, - 34743 - 11904: 0xEE66, - 34744 - 11904: 0xEE6D, - 34745 - 11904: 0xEE5E, - 34746 - 11904: 0xC1B3, - 34747 - 11904: 0xC1B2, - 34748 - 11904: 0xEE60, - 34749 - 11904: 0xEE6E, - 34750 - 11904: 0xEE58, - 34751 - 11904: 0xEE6C, - 34752 - 11904: 0xC1AC, - 34753 - 11904: 0xA0D7, - 34754 - 11904: 0xEE64, - 34755 - 11904: 0xEE63, - 34756 - 11904: 0xEE68, - 34757 - 11904: 0xEE5B, - 34758 - 11904: 0xC1B0, - 34760 - 11904: 0xC1B4, - 34761 - 11904: 0xEE62, - 34762 - 11904: 0xEE69, - 34763 - 11904: 0xC1B5, - 34764 - 11904: 0xEE65, - 34766 - 11904: 0xA0C7, - 34769 - 11904: 0xC1AD, - 34770 - 11904: 0xC1AF, - 34771 - 11904: 0xF0C7, - 34772 - 11904: 0xF0C5, - 34774 - 11904: 0xA043, - 34775 - 11904: 0xF0CC, - 34776 - 11904: 0xF0C9, - 34777 - 11904: 0xF0CD, - 34778 - 11904: 0x8FB5, - 34779 - 11904: 0xF0BE, - 34780 - 11904: 0xF0C6, - 34781 - 11904: 0xF0D1, - 34782 - 11904: 0xEE6F, - 34783 - 11904: 0xF0C2, - 34784 - 11904: 0xC2CF, - 34785 - 11904: 0xE7A5, - 34786 - 11904: 0xF0BD, - 34787 - 11904: 0xF0CA, - 34788 - 11904: 0xF0C4, - 34789 - 11904: 0xF0C1, - 34790 - 11904: 0xF0BC, - 34791 - 11904: 0xF0BB, - 34792 - 11904: 0xF0D0, - 34794 - 11904: 0xF0C0, - 34795 - 11904: 0xF0BF, - 34796 - 11904: 0xC2CD, - 34797 - 11904: 0xF0C8, - 34798 - 11904: 0x8FB2, - 34799 - 11904: 0xC2CC, - 34802 - 11904: 0xC2CE, - 34803 - 11904: 0xF0C3, - 34804 - 11904: 0xF0CF, - 34805 - 11904: 0xA061, - 34806 - 11904: 0xF2DE, - 34807 - 11904: 0xF2DF, - 34809 - 11904: 0xC3C9, - 34810 - 11904: 0xF2DC, - 34811 - 11904: 0xC3C6, - 34812 - 11904: 0xF2E4, - 34814 - 11904: 0xC3CA, - 34815 - 11904: 0xF2E6, - 34816 - 11904: 0xF2DB, - 34817 - 11904: 0xF0CE, - 34818 - 11904: 0xF2E8, - 34819 - 11904: 0xF2DD, - 34820 - 11904: 0x9E5E, - 34821 - 11904: 0xC3C7, - 34822 - 11904: 0xF2E3, - 34824 - 11904: 0xF2E5, - 34825 - 11904: 0xF2E0, - 34826 - 11904: 0xF2E7, - 34827 - 11904: 0xF2E2, - 34828 - 11904: 0xF2E1, - 34829 - 11904: 0xC3C8, - 34831 - 11904: 0xA063, - 34832 - 11904: 0xF4C5, - 34833 - 11904: 0xF4C6, - 34835 - 11904: 0xF4C8, - 34836 - 11904: 0xC4AE, - 34837 - 11904: 0xC4AF, - 34838 - 11904: 0xF4C9, - 34839 - 11904: 0xF4C7, - 34840 - 11904: 0x9FE8, - 34841 - 11904: 0xF4C4, - 34843 - 11904: 0xF642, - 34844 - 11904: 0xF645, - 34845 - 11904: 0xF641, - 34847 - 11904: 0xC4FA, - 34848 - 11904: 0xF643, - 34849 - 11904: 0xC4F9, - 34850 - 11904: 0xC4F8, - 34851 - 11904: 0xC4F7, - 34852 - 11904: 0xF644, - 34853 - 11904: 0xF751, - 34854 - 11904: 0xF74F, - 34855 - 11904: 0x9CB2, - 34856 - 11904: 0xF74E, - 34857 - 11904: 0xF640, - 34858 - 11904: 0xF750, - 34859 - 11904: 0xF646, - 34860 - 11904: 0xF74D, - 34861 - 11904: 0x957C, - 34862 - 11904: 0xF7F9, - 34863 - 11904: 0xF7D7, - 34864 - 11904: 0xF7F7, - 34865 - 11904: 0xC5DB, - 34866 - 11904: 0xF7F8, - 34867 - 11904: 0xF7FA, - 34869 - 11904: 0xF8BF, - 34870 - 11904: 0xC5FA, - 34871 - 11904: 0xF8BE, - 34872 - 11904: 0xF8BD, - 34873 - 11904: 0xC5FB, - 34875 - 11904: 0xC65A, - 34876 - 11904: 0xF96E, - 34877 - 11904: 0xF9A7, - 34878 - 11904: 0xF9A6, - 34879 - 11904: 0xF9A8, - 34880 - 11904: 0xA6E5, - 34881 - 11904: 0xD0AA, - 34882 - 11904: 0x9FC7, - 34883 - 11904: 0xD3CF, - 34884 - 11904: 0xD3D0, - 34885 - 11904: 0x8FBB, - 34886 - 11904: 0x8FBC, - 34888 - 11904: 0xDBC0, - 34890 - 11904: 0xF647, - 34891 - 11904: 0xF8C0, - 34892 - 11904: 0xA6E6, - 34893 - 11904: 0xAD6C, - 34894 - 11904: 0xD0AB, - 34895 - 11904: 0x8FEC, - 34898 - 11904: 0xD7B1, - 34899 - 11904: 0xB34E, - 34901 - 11904: 0xDBC2, - 34902 - 11904: 0xDBC1, - 34903 - 11904: 0xB5F3, - 34905 - 11904: 0xB8C5, - 34906 - 11904: 0xE7C1, - 34907 - 11904: 0xBDC3, - 34909 - 11904: 0xBDC4, - 34910 - 11904: 0x8FC0, - 34912 - 11904: 0x936A, - 34913 - 11904: 0xBFC5, - 34914 - 11904: 0xC5FC, - 34915 - 11904: 0xA6E7, - 34916 - 11904: 0x8BE4, - 34917 - 11904: 0x9C7C, - 34919 - 11904: 0xD0AC, - 34920 - 11904: 0xAAED, - 34921 - 11904: 0xD0AE, - 34922 - 11904: 0xD0AD, - 34923 - 11904: 0xAD6D, - 34925 - 11904: 0xD3D1, - 34926 - 11904: 0x95A1, - 34927 - 11904: 0xD3D8, - 34928 - 11904: 0xB049, - 34929 - 11904: 0xD3D6, - 34930 - 11904: 0xD3D4, - 34932 - 11904: 0xD3DB, - 34933 - 11904: 0xD3D2, - 34934 - 11904: 0xD3D3, - 34935 - 11904: 0xB04A, - 34937 - 11904: 0xB04E, - 34940 - 11904: 0xD3DC, - 34941 - 11904: 0xB04D, - 34942 - 11904: 0xD3DA, - 34943 - 11904: 0xD3D7, - 34944 - 11904: 0xD3D5, - 34945 - 11904: 0xB04B, - 34946 - 11904: 0xB04C, - 34947 - 11904: 0xD3D9, - 34948 - 11904: 0xFEEC, - 34951 - 11904: 0x95A3, - 34952 - 11904: 0xB350, - 34953 - 11904: 0xD7B2, - 34955 - 11904: 0xB355, - 34956 - 11904: 0xD7C2, - 34957 - 11904: 0xB354, - 34958 - 11904: 0xD7C4, - 34959 - 11904: 0x8C45, - 34960 - 11904: 0x8CB8, - 34961 - 11904: 0xD7B8, - 34962 - 11904: 0xB352, - 34963 - 11904: 0xD7C3, - 34965 - 11904: 0xD7B3, - 34966 - 11904: 0xB353, - 34967 - 11904: 0xD7BF, - 34968 - 11904: 0xD7BB, - 34969 - 11904: 0xD7BD, - 34970 - 11904: 0xD7B7, - 34971 - 11904: 0xD7BE, - 34972 - 11904: 0x8FC1, - 34973 - 11904: 0x87B7, - 34974 - 11904: 0xB34F, - 34975 - 11904: 0xD7BA, - 34976 - 11904: 0xA052, - 34977 - 11904: 0xD7B9, - 34978 - 11904: 0xD7B5, - 34980 - 11904: 0xD7C0, - 34983 - 11904: 0xD7BC, - 34984 - 11904: 0xD7B4, - 34986 - 11904: 0xD7B6, - 34987 - 11904: 0xB351, - 34988 - 11904: 0xD7C1, - 34990 - 11904: 0x99D0, - 34993 - 11904: 0xB5F6, - 34994 - 11904: 0xDBCD, - 34996 - 11904: 0x8FC3, - 34997 - 11904: 0x8FC4, - 34998 - 11904: 0xDBC9, - 34999 - 11904: 0xDBCB, - 35000 - 11904: 0xDBC6, - 35001 - 11904: 0xDBC5, - 35002 - 11904: 0xDBC3, - 35004 - 11904: 0xDBCA, - 35005 - 11904: 0xDBCC, - 35006 - 11904: 0xDBC8, - 35007 - 11904: 0x95A4, - 35008 - 11904: 0xDBC7, - 35009 - 11904: 0xB5F4, - 35010 - 11904: 0xB5F5, - 35013 - 11904: 0x8FC6, - 35015 - 11904: 0x9E60, - 35017 - 11904: 0xDBCF, - 35018 - 11904: 0xB8CD, - 35019 - 11904: 0xDFF2, - 35020 - 11904: 0xDFF8, - 35021 - 11904: 0xDFF3, - 35022 - 11904: 0xDFF4, - 35023 - 11904: 0xF9D8, - 35024 - 11904: 0xDFF9, - 35026 - 11904: 0xB8CF, - 35028 - 11904: 0xB8C7, - 35029 - 11904: 0xB8CE, - 35030 - 11904: 0xDFF1, - 35031 - 11904: 0xDBC4, - 35032 - 11904: 0xB8CA, - 35033 - 11904: 0xB8C8, - 35034 - 11904: 0xDFF7, - 35035 - 11904: 0xDFF6, - 35036 - 11904: 0xB8C9, - 35037 - 11904: 0xB8CB, - 35038 - 11904: 0xDFF5, - 35039 - 11904: 0xB8C6, - 35041 - 11904: 0xB8CC, - 35046 - 11904: 0x95A5, - 35047 - 11904: 0xE3F6, - 35048 - 11904: 0xBB74, - 35051 - 11904: 0xE442, - 35052 - 11904: 0xE441, - 35054 - 11904: 0xE3FB, - 35055 - 11904: 0xBB76, - 35056 - 11904: 0xE440, - 35057 - 11904: 0xE3F7, - 35058 - 11904: 0xE3F8, - 35059 - 11904: 0xBB6E, - 35060 - 11904: 0xBB70, - 35061 - 11904: 0x9CB3, - 35062 - 11904: 0xE3FD, - 35063 - 11904: 0xE3F5, - 35064 - 11904: 0xBB72, - 35065 - 11904: 0xBB71, - 35066 - 11904: 0xE3F9, - 35067 - 11904: 0xE3FE, - 35068 - 11904: 0xE3FC, - 35069 - 11904: 0xBB73, - 35070 - 11904: 0xE3FA, - 35071 - 11904: 0x99D1, - 35072 - 11904: 0xFEF1, - 35073 - 11904: 0xDBCE, - 35074 - 11904: 0xBB6F, - 35077 - 11904: 0xE7C2, - 35078 - 11904: 0xE7C9, - 35079 - 11904: 0xBDC6, - 35081 - 11904: 0xE7CD, - 35082 - 11904: 0xBDCA, - 35083 - 11904: 0xE7C5, - 35084 - 11904: 0xE7C3, - 35086 - 11904: 0xE7CC, - 35088 - 11904: 0xBDC5, - 35089 - 11904: 0xE7CB, - 35090 - 11904: 0xBDC7, - 35091 - 11904: 0xBDC8, - 35092 - 11904: 0xE7C4, - 35093 - 11904: 0xBDC9, - 35094 - 11904: 0xE7CA, - 35095 - 11904: 0xE7C6, - 35096 - 11904: 0xE7C7, - 35097 - 11904: 0xE7C8, - 35098 - 11904: 0xBB75, - 35102 - 11904: 0xEB70, - 35103 - 11904: 0xEB7C, - 35105 - 11904: 0xBFCA, - 35106 - 11904: 0xEB77, - 35107 - 11904: 0xEB79, - 35108 - 11904: 0x99D2, - 35109 - 11904: 0xBFC8, - 35110 - 11904: 0xEB71, - 35111 - 11904: 0xEB75, - 35113 - 11904: 0xEB78, - 35114 - 11904: 0xBFC6, - 35115 - 11904: 0xBFC9, - 35116 - 11904: 0xEB7B, - 35117 - 11904: 0xEB73, - 35118 - 11904: 0xEB74, - 35119 - 11904: 0xEB7A, - 35120 - 11904: 0xEB72, - 35121 - 11904: 0xEB76, - 35122 - 11904: 0xBFC7, - 35123 - 11904: 0xEE72, - 35125 - 11904: 0xEE71, - 35126 - 11904: 0xC1B7, - 35127 - 11904: 0xEE77, - 35128 - 11904: 0xC1B9, - 35131 - 11904: 0xC1B6, - 35132 - 11904: 0xEE73, - 35133 - 11904: 0xC1BA, - 35134 - 11904: 0xEE74, - 35137 - 11904: 0xEE75, - 35138 - 11904: 0xEE78, - 35139 - 11904: 0x9CC2, - 35140 - 11904: 0xC1B8, - 35142 - 11904: 0xF0D6, - 35143 - 11904: 0x99D3, - 35145 - 11904: 0xF0D9, - 35147 - 11904: 0xF0D3, - 35148 - 11904: 0xF0D5, - 35149 - 11904: 0x95A7, - 35151 - 11904: 0xF0D4, - 35152 - 11904: 0xF0D7, - 35153 - 11904: 0xF0D8, - 35154 - 11904: 0xEE76, - 35155 - 11904: 0xF0D2, - 35156 - 11904: 0x95A9, - 35158 - 11904: 0xC3CD, - 35159 - 11904: 0xF2EC, - 35160 - 11904: 0xF2EF, - 35161 - 11904: 0xF2F1, - 35162 - 11904: 0xF2EA, - 35163 - 11904: 0xF2EB, - 35164 - 11904: 0xF2EE, - 35165 - 11904: 0xF2F0, - 35166 - 11904: 0xC3CE, - 35167 - 11904: 0xC3CC, - 35168 - 11904: 0xC3CB, - 35169 - 11904: 0xF2ED, - 35170 - 11904: 0xF2E9, - 35171 - 11904: 0xF4CA, - 35172 - 11904: 0xC4B0, - 35173 - 11904: 0x95A6, - 35174 - 11904: 0xF4CB, - 35177 - 11904: 0xF649, - 35178 - 11904: 0xC4FB, - 35179 - 11904: 0xF64B, - 35180 - 11904: 0xC4FC, - 35181 - 11904: 0xF648, - 35182 - 11904: 0xF64A, - 35183 - 11904: 0xC5A8, - 35185 - 11904: 0xF752, - 35186 - 11904: 0xC5A7, - 35187 - 11904: 0xF7FD, - 35188 - 11904: 0xF7FC, - 35190 - 11904: 0xF7FB, - 35191 - 11904: 0x9C5D, - 35193 - 11904: 0xF948, - 35194 - 11904: 0xF949, - 35195 - 11904: 0xF94B, - 35196 - 11904: 0xF94A, - 35198 - 11904: 0xCA50, - 35199 - 11904: 0xA6E8, - 35200 - 11904: 0x98E2, - 35201 - 11904: 0xAD6E, - 35202 - 11904: 0xD7C5, - 35203 - 11904: 0xB5F7, - 35205 - 11904: 0xDFFA, - 35206 - 11904: 0xC2D0, - 35207 - 11904: 0x8FC9, - 35208 - 11904: 0xF2F2, - 35209 - 11904: 0xA0C2, - 35210 - 11904: 0x8FCA, - 35211 - 11904: 0xA8A3, - 35215 - 11904: 0xB357, - 35217 - 11904: 0x99D4, - 35219 - 11904: 0xB356, - 35220 - 11904: 0xA0B9, - 35221 - 11904: 0xDBD0, - 35222 - 11904: 0xB5F8, - 35223 - 11904: 0xDBD2, - 35224 - 11904: 0xDBD1, - 35227 - 11904: 0xDFFB, - 35228 - 11904: 0xB8D0, - 35229 - 11904: 0xE443, - 35230 - 11904: 0xE446, - 35231 - 11904: 0xE445, - 35233 - 11904: 0xE444, - 35234 - 11904: 0xE7CE, - 35235 - 11904: 0xE7D0, - 35236 - 11904: 0xE7CF, - 35237 - 11904: 0x9B58, - 35238 - 11904: 0xBFCC, - 35239 - 11904: 0x8FCD, - 35241 - 11904: 0xA0D4, - 35242 - 11904: 0xBFCB, - 35244 - 11904: 0xC1BB, - 35245 - 11904: 0xEE79, - 35246 - 11904: 0xEE7B, - 35247 - 11904: 0xEE7A, - 35250 - 11904: 0xC2D1, - 35254 - 11904: 0xF2F4, - 35255 - 11904: 0xF2F3, - 35257 - 11904: 0xF4CC, - 35258 - 11904: 0xC4B1, - 35260 - 11904: 0x8FCE, - 35261 - 11904: 0xC4FD, - 35262 - 11904: 0xF754, - 35263 - 11904: 0xF753, - 35264 - 11904: 0xC65B, - 35265 - 11904: 0x8BE5, - 35270 - 11904: 0x8979, - 35282 - 11904: 0xA8A4, - 35283 - 11904: 0xD0AF, - 35284 - 11904: 0xAD6F, - 35285 - 11904: 0xD7C8, - 35286 - 11904: 0xD7C6, - 35289 - 11904: 0xD7C7, - 35290 - 11904: 0xDBD4, - 35291 - 11904: 0xDBD5, - 35292 - 11904: 0xE043, - 35293 - 11904: 0xDBD3, - 35295 - 11904: 0xDFFC, - 35296 - 11904: 0xE041, - 35297 - 11904: 0xE040, - 35298 - 11904: 0xE042, - 35299 - 11904: 0xB8D1, - 35300 - 11904: 0xDFFE, - 35301 - 11904: 0xDFFD, - 35302 - 11904: 0xE044, - 35303 - 11904: 0x8FD0, - 35304 - 11904: 0xE449, - 35305 - 11904: 0xE447, - 35307 - 11904: 0xE448, - 35308 - 11904: 0xE7D3, - 35309 - 11904: 0xE7D1, - 35312 - 11904: 0xE7D2, - 35313 - 11904: 0xEB7D, - 35314 - 11904: 0xEE7C, - 35315 - 11904: 0xEE7D, - 35316 - 11904: 0xC2D2, - 35318 - 11904: 0xF2F5, - 35319 - 11904: 0xF4CD, - 35320 - 11904: 0xC4B2, - 35322 - 11904: 0xF64C, - 35323 - 11904: 0xF755, - 35324 - 11904: 0xC5A9, - 35326 - 11904: 0xF7FE, - 35327 - 11904: 0xF94C, - 35328 - 11904: 0xA8A5, - 35330 - 11904: 0xAD71, - 35331 - 11904: 0xAD72, - 35332 - 11904: 0xD0B0, - 35335 - 11904: 0xD0B1, - 35336 - 11904: 0xAD70, - 35338 - 11904: 0xB054, - 35340 - 11904: 0xB052, - 35342 - 11904: 0xB051, - 35343 - 11904: 0xB058, - 35344 - 11904: 0xB050, - 35345 - 11904: 0xB059, - 35346 - 11904: 0xD3DD, - 35347 - 11904: 0xB056, - 35349 - 11904: 0xB053, - 35350 - 11904: 0xB057, - 35351 - 11904: 0xB055, - 35352 - 11904: 0xB04F, - 35355 - 11904: 0xB35F, - 35356 - 11904: 0x95B6, - 35357 - 11904: 0xB359, - 35358 - 11904: 0xD7CC, - 35359 - 11904: 0xB35E, - 35362 - 11904: 0xB360, - 35363 - 11904: 0xB35A, - 35365 - 11904: 0xB35B, - 35367 - 11904: 0xD7CA, - 35369 - 11904: 0x99D6, - 35370 - 11904: 0xB358, - 35371 - 11904: 0x95E5, - 35372 - 11904: 0xD7CB, - 35373 - 11904: 0xB35D, - 35376 - 11904: 0xD7C9, - 35377 - 11904: 0xB35C, - 35380 - 11904: 0xB644, - 35382 - 11904: 0xB646, - 35384 - 11904: 0x99D7, - 35385 - 11904: 0xDBD8, - 35386 - 11904: 0xB645, - 35387 - 11904: 0xB5F9, - 35388 - 11904: 0xB5FD, - 35389 - 11904: 0x95B5, - 35390 - 11904: 0xB8E4, - 35391 - 11904: 0xE049, - 35392 - 11904: 0xDBDA, - 35393 - 11904: 0xB5FE, - 35396 - 11904: 0xDBDD, - 35397 - 11904: 0xDBDE, - 35398 - 11904: 0xB643, - 35400 - 11904: 0xDBE0, - 35401 - 11904: 0xA0CA, - 35402 - 11904: 0xDBE2, - 35404 - 11904: 0xDBE3, - 35405 - 11904: 0xDBD7, - 35406 - 11904: 0xDBD6, - 35407 - 11904: 0xDBE4, - 35408 - 11904: 0xB642, - 35409 - 11904: 0xDBE1, - 35410 - 11904: 0xDBDF, - 35412 - 11904: 0xB640, - 35413 - 11904: 0xB5FB, - 35414 - 11904: 0xB647, - 35415 - 11904: 0xDBDB, - 35416 - 11904: 0xDBDC, - 35417 - 11904: 0xDBD9, - 35419 - 11904: 0xB641, - 35422 - 11904: 0xB5FC, - 35424 - 11904: 0xB5FA, - 35425 - 11904: 0xE048, - 35426 - 11904: 0xB8DF, - 35427 - 11904: 0xB8DA, - 35430 - 11904: 0xB8D5, - 35431 - 11904: 0x9FFD, - 35432 - 11904: 0xB8E5, - 35433 - 11904: 0xB8D6, - 35435 - 11904: 0xB8D2, - 35436 - 11904: 0xB8E1, - 35437 - 11904: 0xB8DE, - 35438 - 11904: 0xB8E0, - 35440 - 11904: 0xB8D7, - 35441 - 11904: 0xB8DC, - 35442 - 11904: 0xB8D3, - 35443 - 11904: 0xB8D4, - 35444 - 11904: 0xE050, - 35445 - 11904: 0xE04D, - 35446 - 11904: 0xE045, - 35447 - 11904: 0xE04A, - 35449 - 11904: 0xB8E2, - 35450 - 11904: 0xE051, - 35451 - 11904: 0xB8E3, - 35452 - 11904: 0xB8D9, - 35454 - 11904: 0xA058, - 35455 - 11904: 0xE047, - 35457 - 11904: 0xE04F, - 35458 - 11904: 0xE04B, - 35459 - 11904: 0xE04E, - 35460 - 11904: 0xE04C, - 35461 - 11904: 0xB8DD, - 35462 - 11904: 0xE046, - 35463 - 11904: 0xB8D8, - 35467 - 11904: 0xE44C, - 35468 - 11904: 0xBB78, - 35469 - 11904: 0xBB7B, - 35471 - 11904: 0xE44E, - 35472 - 11904: 0x8FD6, - 35473 - 11904: 0xBBA5, - 35474 - 11904: 0xE44D, - 35475 - 11904: 0xBB7D, - 35476 - 11904: 0x99D8, - 35477 - 11904: 0xBDCF, - 35478 - 11904: 0xE44F, - 35480 - 11904: 0xBBA4, - 35481 - 11904: 0xE44B, - 35482 - 11904: 0xBBA6, - 35484 - 11904: 0x8FD3, - 35486 - 11904: 0xBB79, - 35488 - 11904: 0xB8DB, - 35489 - 11904: 0xBB7C, - 35491 - 11904: 0xBB7A, - 35492 - 11904: 0xBB7E, - 35493 - 11904: 0xBBA2, - 35494 - 11904: 0xBB77, - 35495 - 11904: 0xBBA7, - 35496 - 11904: 0xBBA3, - 35497 - 11904: 0x8FE5, - 35498 - 11904: 0xBBA1, - 35499 - 11904: 0xE44A, - 35503 - 11904: 0x8FE9, - 35504 - 11904: 0xBDD6, - 35506 - 11904: 0xBDD2, - 35508 - 11904: 0x99D9, - 35510 - 11904: 0xBDD9, - 35512 - 11904: 0xE7D6, - 35513 - 11904: 0xBDDA, - 35514 - 11904: 0xE7E2, - 35515 - 11904: 0xE7DB, - 35516 - 11904: 0xBDCB, - 35517 - 11904: 0xE7E3, - 35518 - 11904: 0xE7DD, - 35519 - 11904: 0xBDD5, - 35520 - 11904: 0xE7DE, - 35522 - 11904: 0xBDD4, - 35523 - 11904: 0xE7E1, - 35524 - 11904: 0xBDCE, - 35525 - 11904: 0xE7DF, - 35526 - 11904: 0xE7D5, - 35527 - 11904: 0xBDCD, - 35528 - 11904: 0xEBAA, - 35529 - 11904: 0xBDD3, - 35531 - 11904: 0xBDD0, - 35532 - 11904: 0x8CF7, - 35533 - 11904: 0xBDD8, - 35535 - 11904: 0xE7D4, - 35537 - 11904: 0xE7D8, - 35538 - 11904: 0xBDCC, - 35539 - 11904: 0xE7D7, - 35540 - 11904: 0xE7D9, - 35541 - 11904: 0xE7DA, - 35542 - 11904: 0xBDD7, - 35543 - 11904: 0xE7DC, - 35544 - 11904: 0xE7E0, - 35545 - 11904: 0xE7E4, - 35546 - 11904: 0x927C, - 35547 - 11904: 0xBDDB, - 35548 - 11904: 0xBFD2, - 35549 - 11904: 0xEBA5, - 35550 - 11904: 0xEBAB, - 35551 - 11904: 0xEBA8, - 35552 - 11904: 0xEB7E, - 35553 - 11904: 0xEBAC, - 35554 - 11904: 0xEBA1, - 35556 - 11904: 0xEBA7, - 35558 - 11904: 0xBFCD, - 35559 - 11904: 0xBFD3, - 35560 - 11904: 0xEBAD, - 35562 - 11904: 0x9C45, - 35563 - 11904: 0xBFCF, - 35565 - 11904: 0xBFD9, - 35566 - 11904: 0xBFD4, - 35567 - 11904: 0xEBAF, - 35568 - 11904: 0xEBA9, - 35569 - 11904: 0xBFD0, - 35570 - 11904: 0xEBA2, - 35571 - 11904: 0xBFDA, - 35572 - 11904: 0xEBA3, - 35573 - 11904: 0xEBA4, - 35574 - 11904: 0xBFDB, - 35575 - 11904: 0xBFD8, - 35576 - 11904: 0xBDD1, - 35577 - 11904: 0x8CE8, - 35578 - 11904: 0xBFCE, - 35579 - 11904: 0xEBB0, - 35580 - 11904: 0xBFDC, - 35582 - 11904: 0xBFD5, - 35583 - 11904: 0xEBAE, - 35584 - 11904: 0xBFD1, - 35585 - 11904: 0xBFD6, - 35586 - 11904: 0xBFD7, - 35588 - 11904: 0xC1C3, - 35589 - 11904: 0xEEA4, - 35590 - 11904: 0xEEAD, - 35591 - 11904: 0xEEAA, - 35592 - 11904: 0xEEAC, - 35594 - 11904: 0xC1C0, - 35595 - 11904: 0xEEA5, - 35596 - 11904: 0x8FDE, - 35597 - 11904: 0xEEAB, - 35598 - 11904: 0xC1BC, - 35599 - 11904: 0xEEA7, - 35600 - 11904: 0xC1C4, - 35601 - 11904: 0xEEA3, - 35602 - 11904: 0xEEA8, - 35603 - 11904: 0xEEAF, - 35604 - 11904: 0xEBA6, - 35605 - 11904: 0xEEA9, - 35606 - 11904: 0xEEA2, - 35607 - 11904: 0xC1BD, - 35608 - 11904: 0xEEA1, - 35609 - 11904: 0xC1BE, - 35610 - 11904: 0xEEB0, - 35611 - 11904: 0xC1BF, - 35612 - 11904: 0xEEAE, - 35613 - 11904: 0xC1C2, - 35614 - 11904: 0xEE7E, - 35615 - 11904: 0x8FDF, - 35616 - 11904: 0xC1C1, - 35618 - 11904: 0xEEA6, - 35619 - 11904: 0xF0DC, - 35620 - 11904: 0xF0EA, - 35621 - 11904: 0xF0E5, - 35622 - 11904: 0xF0E7, - 35623 - 11904: 0xF0DB, - 35624 - 11904: 0xC2D3, - 35626 - 11904: 0xF0DA, - 35627 - 11904: 0xC2D6, - 35628 - 11904: 0xC2D5, - 35629 - 11904: 0xA04B, - 35630 - 11904: 0xF0E9, - 35631 - 11904: 0xF0E1, - 35632 - 11904: 0xF0DE, - 35633 - 11904: 0xF0E4, - 35635 - 11904: 0xF0DD, - 35637 - 11904: 0xF0DF, - 35638 - 11904: 0xF0E8, - 35639 - 11904: 0xF0E6, - 35641 - 11904: 0xC2D4, - 35642 - 11904: 0xF0ED, - 35643 - 11904: 0xF0EB, - 35644 - 11904: 0xF0E2, - 35645 - 11904: 0xF0EC, - 35646 - 11904: 0xF0E3, - 35647 - 11904: 0x8FE2, - 35648 - 11904: 0xF2F9, - 35649 - 11904: 0xC3CF, - 35650 - 11904: 0xF341, - 35651 - 11904: 0xA0CC, - 35653 - 11904: 0xF64F, - 35654 - 11904: 0xC3D6, - 35655 - 11904: 0xF0E0, - 35656 - 11904: 0xF2F7, - 35657 - 11904: 0xC3D2, - 35658 - 11904: 0xF2F8, - 35659 - 11904: 0xF2FD, - 35660 - 11904: 0x8FE3, - 35661 - 11904: 0x8FE4, - 35662 - 11904: 0xC3D4, - 35663 - 11904: 0xC3D5, - 35664 - 11904: 0xF2F6, - 35665 - 11904: 0xF340, - 35666 - 11904: 0xF342, - 35667 - 11904: 0xF2FA, - 35668 - 11904: 0xF2FC, - 35669 - 11904: 0xF2FE, - 35670 - 11904: 0xF2FB, - 35671 - 11904: 0xF343, - 35672 - 11904: 0xC3D1, - 35673 - 11904: 0xC3D7, - 35674 - 11904: 0xC3D3, - 35676 - 11904: 0xC3D0, - 35677 - 11904: 0xF4D0, - 35678 - 11904: 0x9BC4, - 35679 - 11904: 0xC4B7, - 35680 - 11904: 0xF4CE, - 35682 - 11904: 0x9BFC, - 35683 - 11904: 0xF4D2, - 35685 - 11904: 0xF4D3, - 35686 - 11904: 0xC4B5, - 35687 - 11904: 0xF4D4, - 35688 - 11904: 0xF4D1, - 35689 - 11904: 0x964C, - 35690 - 11904: 0xF4CF, - 35691 - 11904: 0xC4B8, - 35692 - 11904: 0xC4B4, - 35693 - 11904: 0xF4D5, - 35695 - 11904: 0xC4B6, - 35696 - 11904: 0xC4B3, - 35700 - 11904: 0xC4FE, - 35703 - 11904: 0xC540, - 35704 - 11904: 0xF64E, - 35705 - 11904: 0xF64D, - 35706 - 11904: 0xF650, - 35707 - 11904: 0xF651, - 35709 - 11904: 0xC541, - 35710 - 11904: 0xF756, - 35711 - 11904: 0xF75B, - 35712 - 11904: 0xC5AA, - 35713 - 11904: 0x9AF6, - 35714 - 11904: 0xF758, - 35715 - 11904: 0x8CAE, - 35716 - 11904: 0xF757, - 35717 - 11904: 0xF75A, - 35718 - 11904: 0xF759, - 35720 - 11904: 0xF843, - 35722 - 11904: 0xC5DC, - 35723 - 11904: 0xF842, - 35724 - 11904: 0xF840, - 35726 - 11904: 0xF841, - 35727 - 11904: 0x87CB, - 35728 - 11904: 0x8FE7, - 35730 - 11904: 0xC5FE, - 35731 - 11904: 0xC5FD, - 35732 - 11904: 0xF8C1, - 35733 - 11904: 0xF8C2, - 35734 - 11904: 0xC640, - 35736 - 11904: 0xF94D, - 35737 - 11904: 0xF94E, - 35738 - 11904: 0xC667, - 35739 - 11904: 0x8FE8, - 35740 - 11904: 0xC66D, - 35742 - 11904: 0xF9A9, - 35743 - 11904: 0xF9C8, - 35744 - 11904: 0x8BE7, - 35774 - 11904: 0x897A, - 35810 - 11904: 0x897B, - 35895 - 11904: 0xA8A6, - 35897 - 11904: 0xD7CD, - 35899 - 11904: 0xD7CE, - 35900 - 11904: 0xE052, - 35901 - 11904: 0xE450, - 35902 - 11904: 0xE7E5, - 35903 - 11904: 0xC1C6, - 35905 - 11904: 0xC1C5, - 35906 - 11904: 0xF0EE, - 35907 - 11904: 0xF344, - 35909 - 11904: 0xF844, - 35910 - 11904: 0xA8A7, - 35911 - 11904: 0xD3DE, - 35912 - 11904: 0xB05A, - 35913 - 11904: 0xB361, - 35914 - 11904: 0xE054, - 35915 - 11904: 0xE053, - 35916 - 11904: 0xBDDC, - 35917 - 11904: 0xE7E6, - 35918 - 11904: 0xBDDD, - 35919 - 11904: 0xEEB1, - 35920 - 11904: 0xC2D7, - 35921 - 11904: 0x99DA, - 35924 - 11904: 0xC676, - 35925 - 11904: 0xA8A8, - 35926 - 11904: 0xCDCB, - 35927 - 11904: 0xD3DF, - 35930 - 11904: 0xB362, - 35932 - 11904: 0xD7CF, - 35933 - 11904: 0xD7D0, - 35935 - 11904: 0xDBE5, - 35937 - 11904: 0xB648, - 35938 - 11904: 0xB8E6, - 35940 - 11904: 0xE056, - 35941 - 11904: 0xE055, - 35942 - 11904: 0xE057, - 35944 - 11904: 0xE451, - 35945 - 11904: 0xE452, - 35946 - 11904: 0xBBA8, - 35947 - 11904: 0xBFDD, - 35948 - 11904: 0xBDDE, - 35949 - 11904: 0xBFDE, - 35951 - 11904: 0xEEB5, - 35952 - 11904: 0xEEB2, - 35953 - 11904: 0xEEB4, - 35954 - 11904: 0xEEB3, - 35955 - 11904: 0xC1C7, - 35957 - 11904: 0xF0EF, - 35958 - 11904: 0xF346, - 35959 - 11904: 0xF345, - 35960 - 11904: 0xCBA4, - 35961 - 11904: 0xB05C, - 35962 - 11904: 0xB05B, - 35963 - 11904: 0xD3E0, - 35965 - 11904: 0xD7D1, - 35968 - 11904: 0xDBE7, - 35969 - 11904: 0xDBE6, - 35970 - 11904: 0xB649, - 35972 - 11904: 0xE059, - 35973 - 11904: 0xE05A, - 35974 - 11904: 0xE058, - 35977 - 11904: 0xB8E8, - 35978 - 11904: 0xB8E7, - 35980 - 11904: 0xBBAA, - 35981 - 11904: 0xBBA9, - 35983 - 11904: 0xE7E7, - 35984 - 11904: 0xEBB3, - 35985 - 11904: 0xEBB1, - 35986 - 11904: 0xEBB2, - 35987 - 11904: 0xBFDF, - 35988 - 11904: 0xEEB7, - 35989 - 11904: 0xEEB6, - 35991 - 11904: 0xF0F2, - 35992 - 11904: 0xF0F1, - 35993 - 11904: 0xF0F0, - 35994 - 11904: 0xF347, - 35995 - 11904: 0x8FED, - 35996 - 11904: 0xF9AA, - 35997 - 11904: 0xA8A9, - 35998 - 11904: 0xAD73, - 35999 - 11904: 0x95C0, - 36000 - 11904: 0xAD74, - 36001 - 11904: 0xB05D, - 36002 - 11904: 0xB05E, - 36003 - 11904: 0xD3E2, - 36004 - 11904: 0xD3E1, - 36005 - 11904: 0xD7D2, - 36007 - 11904: 0xB368, - 36008 - 11904: 0xB366, - 36009 - 11904: 0xB363, - 36010 - 11904: 0xB367, - 36011 - 11904: 0xB365, - 36012 - 11904: 0xB364, - 36013 - 11904: 0xA0CB, - 36015 - 11904: 0xB64A, - 36016 - 11904: 0xDBEA, - 36018 - 11904: 0xB8ED, - 36019 - 11904: 0xB64C, - 36020 - 11904: 0xB651, - 36021 - 11904: 0xDBEC, - 36022 - 11904: 0xB653, - 36023 - 11904: 0xB652, - 36024 - 11904: 0xB655, - 36025 - 11904: 0xDBEB, - 36026 - 11904: 0xDBE8, - 36027 - 11904: 0xB64F, - 36028 - 11904: 0xB64B, - 36029 - 11904: 0xB64D, - 36030 - 11904: 0xDBE9, - 36031 - 11904: 0xB654, - 36032 - 11904: 0xB650, - 36033 - 11904: 0xB64E, - 36034 - 11904: 0xB8EF, - 36035 - 11904: 0xB8EE, - 36036 - 11904: 0xB8EC, - 36037 - 11904: 0xB8F0, - 36039 - 11904: 0xB8EA, - 36040 - 11904: 0xB8EB, - 36042 - 11904: 0xB8E9, - 36044 - 11904: 0xE05B, - 36045 - 11904: 0x9E48, - 36047 - 11904: 0xE454, - 36049 - 11904: 0xBBAC, - 36050 - 11904: 0xBBAD, - 36051 - 11904: 0xBBAB, - 36052 - 11904: 0x99DB, - 36053 - 11904: 0xE453, - 36054 - 11904: 0x8FF3, - 36055 - 11904: 0xE455, - 36057 - 11904: 0xE7EA, - 36058 - 11904: 0xE7EC, - 36059 - 11904: 0x8FF9, - 36060 - 11904: 0xBDE7, - 36061 - 11904: 0xE7ED, - 36062 - 11904: 0xBDE0, - 36063 - 11904: 0xE7E9, - 36064 - 11904: 0xBDDF, - 36065 - 11904: 0xBDE9, - 36066 - 11904: 0xBDE5, - 36067 - 11904: 0xBDE6, - 36068 - 11904: 0xBDE2, - 36069 - 11904: 0xE7E8, - 36070 - 11904: 0xBDE1, - 36071 - 11904: 0xE7EE, - 36072 - 11904: 0xE7EB, - 36073 - 11904: 0x95C1, - 36074 - 11904: 0xBDE8, - 36075 - 11904: 0xA04E, - 36076 - 11904: 0xBDE3, - 36077 - 11904: 0xBDE4, - 36078 - 11904: 0xEBB5, - 36080 - 11904: 0xEBB7, - 36081 - 11904: 0xEBB6, - 36082 - 11904: 0x99DC, - 36083 - 11904: 0xEBB8, - 36084 - 11904: 0xBFE0, - 36085 - 11904: 0xEBB4, - 36087 - 11904: 0xA064, - 36088 - 11904: 0xC1CB, - 36089 - 11904: 0xEEB8, - 36090 - 11904: 0xC1C8, - 36091 - 11904: 0xC1CC, - 36092 - 11904: 0xC1CA, - 36093 - 11904: 0xC1C9, - 36094 - 11904: 0xF0F3, - 36096 - 11904: 0xF0F6, - 36098 - 11904: 0xF0F5, - 36099 - 11904: 0x8FF7, - 36100 - 11904: 0xF0F4, - 36101 - 11904: 0xC2D8, - 36102 - 11904: 0xF348, - 36103 - 11904: 0xF349, - 36104 - 11904: 0xC3D8, - 36105 - 11904: 0xF34A, - 36106 - 11904: 0xC3D9, - 36107 - 11904: 0x89B0, - 36108 - 11904: 0xA048, - 36109 - 11904: 0xC4BA, - 36111 - 11904: 0xC4B9, - 36112 - 11904: 0xF652, - 36113 - 11904: 0x8FFB, - 36114 - 11904: 0x8FF6, - 36115 - 11904: 0xC542, - 36116 - 11904: 0xF653, - 36117 - 11904: 0xF75C, - 36118 - 11904: 0xC5AB, - 36119 - 11904: 0xC5AC, - 36120 - 11904: 0x9DDC, - 36121 - 11904: 0xF845, - 36123 - 11904: 0xC642, - 36124 - 11904: 0x99DD, - 36125 - 11904: 0x8BE8, - 36196 - 11904: 0xA8AA, - 36198 - 11904: 0xB36A, - 36199 - 11904: 0xB369, - 36200 - 11904: 0xE05C, - 36201 - 11904: 0xE05D, - 36203 - 11904: 0xBBAE, - 36204 - 11904: 0xEBB9, - 36205 - 11904: 0xBDEA, - 36206 - 11904: 0xEBBA, - 36207 - 11904: 0xEEB9, - 36208 - 11904: 0xA8AB, - 36210 - 11904: 0xD0B2, - 36211 - 11904: 0xAD76, - 36212 - 11904: 0xAD75, - 36214 - 11904: 0xD3E3, - 36215 - 11904: 0xB05F, - 36216 - 11904: 0xD3E4, - 36217 - 11904: 0xD7D5, - 36218 - 11904: 0x92C1, - 36219 - 11904: 0xD7D4, - 36221 - 11904: 0xD7D3, - 36224 - 11904: 0xDBEE, - 36225 - 11904: 0xB658, - 36226 - 11904: 0x9FD6, - 36228 - 11904: 0xDBED, - 36229 - 11904: 0xB657, - 36233 - 11904: 0xDBEF, - 36234 - 11904: 0xB656, - 36236 - 11904: 0xE05F, - 36237 - 11904: 0xE062, - 36238 - 11904: 0xE060, - 36239 - 11904: 0xE061, - 36240 - 11904: 0xE065, - 36241 - 11904: 0xE05E, - 36242 - 11904: 0xE066, - 36243 - 11904: 0xE063, - 36244 - 11904: 0xE064, - 36245 - 11904: 0xBBB0, - 36246 - 11904: 0xE456, - 36249 - 11904: 0xBBAF, - 36251 - 11904: 0xE7F2, - 36252 - 11904: 0xE7F0, - 36255 - 11904: 0xBDEB, - 36256 - 11904: 0xE7EF, - 36257 - 11904: 0xE7F1, - 36259 - 11904: 0xBDEC, - 36261 - 11904: 0xEBBB, - 36262 - 11904: 0xA0D2, - 36263 - 11904: 0xEBBC, - 36264 - 11904: 0xC1CD, - 36265 - 11904: 0x9040, - 36266 - 11904: 0xF34C, - 36267 - 11904: 0xF34E, - 36268 - 11904: 0xF34B, - 36269 - 11904: 0xF34D, - 36270 - 11904: 0xF4D6, - 36271 - 11904: 0xF654, - 36274 - 11904: 0xF96F, - 36275 - 11904: 0xA8AC, - 36276 - 11904: 0xAD77, - 36277 - 11904: 0xD3E5, - 36278 - 11904: 0xD3E7, - 36279 - 11904: 0xD3E6, - 36281 - 11904: 0xD7D8, - 36282 - 11904: 0xB36C, - 36284 - 11904: 0xD7D6, - 36286 - 11904: 0xB36B, - 36287 - 11904: 0xD7D9, - 36288 - 11904: 0x8AC4, - 36289 - 11904: 0xD7DA, - 36290 - 11904: 0xD7D7, - 36291 - 11904: 0x99E0, - 36293 - 11904: 0xDBFB, - 36294 - 11904: 0xB660, - 36295 - 11904: 0xDBF3, - 36296 - 11904: 0xDBF9, - 36299 - 11904: 0xB65B, - 36300 - 11904: 0xB65E, - 36301 - 11904: 0xDBF2, - 36302 - 11904: 0xB659, - 36303 - 11904: 0xDBF6, - 36304 - 11904: 0xE06C, - 36305 - 11904: 0xB65D, - 36307 - 11904: 0xDBF1, - 36308 - 11904: 0x9FF0, - 36309 - 11904: 0xDBF7, - 36310 - 11904: 0xDBF4, - 36311 - 11904: 0xDBFA, - 36312 - 11904: 0xDBF0, - 36313 - 11904: 0xDBF8, - 36314 - 11904: 0xB65C, - 36315 - 11904: 0xB65F, - 36316 - 11904: 0xDBF5, - 36317 - 11904: 0xB65A, - 36319 - 11904: 0xB8F2, - 36320 - 11904: 0xE068, - 36321 - 11904: 0xB8F1, - 36322 - 11904: 0xE06F, - 36323 - 11904: 0xE06E, - 36324 - 11904: 0xB8F8, - 36326 - 11904: 0xB8F9, - 36327 - 11904: 0xE070, - 36328 - 11904: 0xB8F3, - 36329 - 11904: 0xE06D, - 36330 - 11904: 0xB8F7, - 36331 - 11904: 0xE072, - 36332 - 11904: 0xE069, - 36334 - 11904: 0xE06B, - 36335 - 11904: 0xB8F4, - 36336 - 11904: 0xE067, - 36337 - 11904: 0xE06A, - 36338 - 11904: 0xE071, - 36339 - 11904: 0xB8F5, - 36340 - 11904: 0xE073, - 36346 - 11904: 0xB8F6, - 36348 - 11904: 0xBBB1, - 36349 - 11904: 0xE45B, - 36350 - 11904: 0xE461, - 36351 - 11904: 0xE459, - 36352 - 11904: 0xE462, - 36353 - 11904: 0x9FF3, - 36354 - 11904: 0xE458, - 36355 - 11904: 0xE45D, - 36356 - 11904: 0xE463, - 36357 - 11904: 0xE460, - 36358 - 11904: 0xE45F, - 36359 - 11904: 0xE45E, - 36361 - 11904: 0xE457, - 36362 - 11904: 0xE45C, - 36365 - 11904: 0xE45A, - 36366 - 11904: 0x9DBF, - 36367 - 11904: 0xBDF1, - 36368 - 11904: 0xBDEE, - 36369 - 11904: 0xE7FB, - 36370 - 11904: 0xE841, - 36371 - 11904: 0xE843, - 36372 - 11904: 0xE840, - 36373 - 11904: 0xE7F8, - 36374 - 11904: 0xE7FA, - 36375 - 11904: 0xE845, - 36376 - 11904: 0xE842, - 36377 - 11904: 0xE7FC, - 36378 - 11904: 0xE846, - 36379 - 11904: 0xE7F9, - 36380 - 11904: 0xE844, - 36381 - 11904: 0xBDEF, - 36382 - 11904: 0xBDF5, - 36383 - 11904: 0xBDF3, - 36384 - 11904: 0xE7F3, - 36385 - 11904: 0xBDF4, - 36386 - 11904: 0xBDF0, - 36387 - 11904: 0xE7F4, - 36388 - 11904: 0xE7F6, - 36389 - 11904: 0xE7F5, - 36390 - 11904: 0xE7FD, - 36391 - 11904: 0xE7FE, - 36392 - 11904: 0x9FF6, - 36393 - 11904: 0xBDF2, - 36394 - 11904: 0x95C8, - 36395 - 11904: 0xBDED, - 36397 - 11904: 0x9E5A, - 36398 - 11904: 0xE7F7, - 36400 - 11904: 0xEBC6, - 36401 - 11904: 0xBFE2, - 36403 - 11904: 0xEBBD, - 36404 - 11904: 0xBFE3, - 36405 - 11904: 0xBFE6, - 36406 - 11904: 0xEBC2, - 36408 - 11904: 0xEBBF, - 36409 - 11904: 0xBFE5, - 36410 - 11904: 0x99E3, - 36412 - 11904: 0xEBC3, - 36413 - 11904: 0xEBC4, - 36414 - 11904: 0xEBBE, - 36415 - 11904: 0xEBC7, - 36416 - 11904: 0xEBC0, - 36417 - 11904: 0xEBC5, - 36418 - 11904: 0xBFE4, - 36420 - 11904: 0xBFE1, - 36421 - 11904: 0xEBC1, - 36422 - 11904: 0x8A4A, - 36423 - 11904: 0xEEBF, - 36424 - 11904: 0xC1D0, - 36425 - 11904: 0xC1CE, - 36426 - 11904: 0xC1D1, - 36427 - 11904: 0xC1CF, - 36428 - 11904: 0xEEBE, - 36429 - 11904: 0xEEBB, - 36430 - 11904: 0xEEBA, - 36431 - 11904: 0x9FF1, - 36432 - 11904: 0xEEBD, - 36435 - 11904: 0xEEBC, - 36436 - 11904: 0xF145, - 36437 - 11904: 0xC2DE, - 36438 - 11904: 0xF0FB, - 36439 - 11904: 0xF0FA, - 36441 - 11904: 0xC2D9, - 36442 - 11904: 0xF141, - 36443 - 11904: 0xF140, - 36444 - 11904: 0xF0F7, - 36445 - 11904: 0xF143, - 36446 - 11904: 0xF0FC, - 36447 - 11904: 0xC2DD, - 36448 - 11904: 0xF0F9, - 36449 - 11904: 0xF142, - 36450 - 11904: 0xF0F8, - 36451 - 11904: 0xC2DA, - 36452 - 11904: 0xC2DC, - 36453 - 11904: 0xF0FD, - 36454 - 11904: 0xC2DB, - 36455 - 11904: 0xF0FE, - 36456 - 11904: 0x8AA7, - 36457 - 11904: 0xF144, - 36458 - 11904: 0xF352, - 36460 - 11904: 0xC3DE, - 36461 - 11904: 0xF34F, - 36463 - 11904: 0xF353, - 36465 - 11904: 0x99E6, - 36466 - 11904: 0xC3DB, - 36467 - 11904: 0xF351, - 36468 - 11904: 0xC3E0, - 36469 - 11904: 0x9FF7, - 36470 - 11904: 0xC3DD, - 36471 - 11904: 0x9FED, - 36472 - 11904: 0xF350, - 36474 - 11904: 0xC3DF, - 36475 - 11904: 0xF354, - 36476 - 11904: 0xC3DA, - 36478 - 11904: 0x8A5C, - 36480 - 11904: 0x9DAE, - 36481 - 11904: 0xC4BC, - 36482 - 11904: 0xC4BE, - 36484 - 11904: 0xF4D9, - 36485 - 11904: 0xC4BD, - 36486 - 11904: 0xF4D7, - 36487 - 11904: 0xC3DC, - 36488 - 11904: 0xF4D8, - 36489 - 11904: 0xC4BB, - 36490 - 11904: 0xC543, - 36491 - 11904: 0xC545, - 36492 - 11904: 0xF656, - 36493 - 11904: 0xC544, - 36494 - 11904: 0xF655, - 36496 - 11904: 0xF761, - 36497 - 11904: 0xC5AD, - 36498 - 11904: 0xF760, - 36499 - 11904: 0xC5AE, - 36500 - 11904: 0xF75E, - 36501 - 11904: 0xF75D, - 36502 - 11904: 0xF762, - 36503 - 11904: 0xF763, - 36504 - 11904: 0xF846, - 36506 - 11904: 0xF75F, - 36509 - 11904: 0xF8C6, - 36510 - 11904: 0xF8C3, - 36511 - 11904: 0xF8C4, - 36512 - 11904: 0xF8C5, - 36513 - 11904: 0xC65C, - 36515 - 11904: 0xF951, - 36516 - 11904: 0xF950, - 36517 - 11904: 0xF94F, - 36518 - 11904: 0xF970, - 36519 - 11904: 0x95C9, - 36520 - 11904: 0xF9BE, - 36521 - 11904: 0xF9AB, - 36522 - 11904: 0xC66E, - 36523 - 11904: 0xA8AD, - 36524 - 11904: 0xB060, - 36525 - 11904: 0x9048, - 36528 - 11904: 0x99E8, - 36530 - 11904: 0xB8FA, - 36534 - 11904: 0x9049, - 36537 - 11904: 0x8CBA, - 36538 - 11904: 0xBDF6, - 36540 - 11904: 0x90B1, - 36541 - 11904: 0xEBC8, - 36544 - 11904: 0xC2DF, - 36546 - 11904: 0xF355, - 36547 - 11904: 0x904A, - 36553 - 11904: 0xF9AC, - 36554 - 11904: 0xA8AE, - 36555 - 11904: 0xAAEE, - 36556 - 11904: 0xAD79, - 36557 - 11904: 0xAD78, - 36558 - 11904: 0x99EA, - 36559 - 11904: 0xB063, - 36561 - 11904: 0xD3E8, - 36562 - 11904: 0xB061, - 36563 - 11904: 0xD3E9, - 36564 - 11904: 0xB062, - 36567 - 11904: 0xD7DF, - 36568 - 11904: 0xD7DB, - 36570 - 11904: 0x9BD1, - 36571 - 11904: 0xB36D, - 36572 - 11904: 0xD7DE, - 36573 - 11904: 0xD7DD, - 36574 - 11904: 0xD7DC, - 36575 - 11904: 0xB36E, - 36576 - 11904: 0xD7E0, - 36577 - 11904: 0xD7E1, - 36578 - 11904: 0x99EB, - 36580 - 11904: 0x99EC, - 36581 - 11904: 0xDC43, - 36582 - 11904: 0xDC41, - 36583 - 11904: 0xDC45, - 36584 - 11904: 0xDC46, - 36585 - 11904: 0xDC4C, - 36587 - 11904: 0xDC48, - 36588 - 11904: 0xDC4A, - 36589 - 11904: 0x99ED, - 36590 - 11904: 0xDC42, - 36591 - 11904: 0xDBFC, - 36593 - 11904: 0xDC49, - 36594 - 11904: 0x99EE, - 36596 - 11904: 0xDC4B, - 36597 - 11904: 0xDC44, - 36598 - 11904: 0xDC47, - 36599 - 11904: 0xDBFD, - 36600 - 11904: 0xB662, - 36601 - 11904: 0xDC40, - 36602 - 11904: 0xDBFE, - 36603 - 11904: 0xB661, - 36604 - 11904: 0xB663, - 36606 - 11904: 0xB8FD, - 36607 - 11904: 0xE075, - 36608 - 11904: 0xE077, - 36609 - 11904: 0xE076, - 36610 - 11904: 0xE07B, - 36611 - 11904: 0xB8FB, - 36613 - 11904: 0xE078, - 36614 - 11904: 0xE074, - 36615 - 11904: 0xE079, - 36616 - 11904: 0xE07A, - 36617 - 11904: 0xB8FC, - 36618 - 11904: 0xB8FE, - 36619 - 11904: 0xE07C, - 36621 - 11904: 0xE467, - 36622 - 11904: 0xE466, - 36624 - 11904: 0xE464, - 36625 - 11904: 0xE465, - 36626 - 11904: 0xBBB3, - 36627 - 11904: 0xBBB5, - 36628 - 11904: 0xBBB2, - 36629 - 11904: 0xBBB4, - 36630 - 11904: 0xE84D, - 36631 - 11904: 0xE84E, - 36632 - 11904: 0xE849, - 36633 - 11904: 0x904C, - 36634 - 11904: 0xE84A, - 36635 - 11904: 0xBDF8, - 36636 - 11904: 0xBDFD, - 36637 - 11904: 0xBDF7, - 36638 - 11904: 0xBDFE, - 36639 - 11904: 0xBDF9, - 36640 - 11904: 0xE84B, - 36643 - 11904: 0xE84C, - 36644 - 11904: 0xE848, - 36645 - 11904: 0xBE40, - 36646 - 11904: 0xBDFB, - 36649 - 11904: 0xBDFA, - 36650 - 11904: 0xBDFC, - 36652 - 11904: 0xE847, - 36653 - 11904: 0x904D, - 36654 - 11904: 0xEBCA, - 36655 - 11904: 0xBFE8, - 36656 - 11904: 0x95CB, - 36658 - 11904: 0xEBCC, - 36659 - 11904: 0xBFEA, - 36660 - 11904: 0xEBCF, - 36661 - 11904: 0xEBCB, - 36662 - 11904: 0xEBC9, - 36663 - 11904: 0xEBCE, - 36664 - 11904: 0xBFE9, - 36665 - 11904: 0xEBCD, - 36667 - 11904: 0xBFE7, - 36670 - 11904: 0xC1D3, - 36671 - 11904: 0xC1D6, - 36672 - 11904: 0xEEC1, - 36673 - 11904: 0x97E2, - 36674 - 11904: 0xC1D4, - 36675 - 11904: 0xEEC0, - 36676 - 11904: 0xC1D2, - 36677 - 11904: 0xC1D5, - 36678 - 11904: 0xF146, - 36679 - 11904: 0xF147, - 36680 - 11904: 0xF148, - 36681 - 11904: 0xC2E0, - 36682 - 11904: 0x95CC, - 36683 - 11904: 0xF149, - 36685 - 11904: 0xC2E1, - 36686 - 11904: 0xC3E2, - 36687 - 11904: 0xF358, - 36688 - 11904: 0xF359, - 36689 - 11904: 0xF357, - 36690 - 11904: 0xF356, - 36691 - 11904: 0xF35A, - 36692 - 11904: 0xC3E1, - 36693 - 11904: 0xF4DD, - 36694 - 11904: 0xF4DB, - 36695 - 11904: 0xF4DC, - 36696 - 11904: 0xF4DE, - 36697 - 11904: 0xF4DA, - 36698 - 11904: 0xF4DF, - 36699 - 11904: 0xF658, - 36700 - 11904: 0x9F78, - 36701 - 11904: 0xF659, - 36702 - 11904: 0xF657, - 36703 - 11904: 0xC546, - 36704 - 11904: 0xF764, - 36705 - 11904: 0xC5AF, - 36706 - 11904: 0xF765, - 36707 - 11904: 0xF848, - 36708 - 11904: 0xF847, - 36710 - 11904: 0x897C, - 36711 - 11904: 0x897D, - 36718 - 11904: 0x897E, - 36755 - 11904: 0x995D, - 36763 - 11904: 0xA8AF, - 36764 - 11904: 0xB664, - 36767 - 11904: 0xB940, - 36768 - 11904: 0x9B5A, - 36771 - 11904: 0xBBB6, - 36773 - 11904: 0x9050, - 36774 - 11904: 0xBFEC, - 36775 - 11904: 0x8C4F, - 36776 - 11904: 0xBFEB, - 36781 - 11904: 0xC3E3, - 36782 - 11904: 0xC47C, - 36783 - 11904: 0xC547, - 36784 - 11904: 0xA8B0, - 36785 - 11904: 0xB064, - 36786 - 11904: 0xB941, - 36787 - 11904: 0x9054, - 36788 - 11904: 0xF35B, - 36789 - 11904: 0xC6D6, - 36790 - 11904: 0x9AA8, - 36791 - 11904: 0x99EF, - 36792 - 11904: 0xFEEB, - 36793 - 11904: 0x9DA3, - 36794 - 11904: 0x9DA1, - 36795 - 11904: 0x9943, - 36796 - 11904: 0x9945, - 36798 - 11904: 0x9D7D, - 36799 - 11904: 0xCBA6, - 36801 - 11904: 0x99F0, - 36802 - 11904: 0xA8B1, - 36804 - 11904: 0xA8B4, - 36805 - 11904: 0xA8B3, - 36806 - 11904: 0xA8B2, - 36809 - 11904: 0xCBA5, - 36810 - 11904: 0x99F1, - 36811 - 11904: 0xCDCD, - 36812 - 11904: 0x99F2, - 36813 - 11904: 0xCDCF, - 36814 - 11904: 0xAAEF, - 36815 - 11904: 0x8CBC, - 36816 - 11904: 0x9D60, - 36817 - 11904: 0xAAF1, - 36818 - 11904: 0xCDCC, - 36819 - 11904: 0xCDCE, - 36820 - 11904: 0xAAF0, - 36821 - 11904: 0xCDD1, - 36822 - 11904: 0xCDD0, - 36823 - 11904: 0xCDD2, - 36826 - 11904: 0xA0A3, - 36832 - 11904: 0xD0B6, - 36833 - 11904: 0xD0B4, - 36834 - 11904: 0xAD7C, - 36835 - 11904: 0xD0B3, - 36836 - 11904: 0xADA3, - 36837 - 11904: 0xAD7E, - 36838 - 11904: 0xAD7B, - 36840 - 11904: 0xADA4, - 36842 - 11904: 0xAD7D, - 36843 - 11904: 0xADA2, - 36845 - 11904: 0xADA1, - 36846 - 11904: 0xD0B5, - 36848 - 11904: 0xAD7A, - 36852 - 11904: 0xB06A, - 36853 - 11904: 0xD3EB, - 36854 - 11904: 0xD3F1, - 36855 - 11904: 0xB067, - 36856 - 11904: 0xB06E, - 36857 - 11904: 0x905B, - 36858 - 11904: 0xB069, - 36859 - 11904: 0xD3EE, - 36860 - 11904: 0xD3F0, - 36861 - 11904: 0xB06C, - 36862 - 11904: 0xD3EA, - 36863 - 11904: 0xD3ED, - 36864 - 11904: 0xB068, - 36865 - 11904: 0xB065, - 36866 - 11904: 0xD3EC, - 36867 - 11904: 0xB06B, - 36868 - 11904: 0xD3EF, - 36869 - 11904: 0xB06D, - 36870 - 11904: 0xB066, - 36872 - 11904: 0x9EDB, - 36875 - 11904: 0xD7E3, - 36876 - 11904: 0xD7E6, - 36877 - 11904: 0xB370, - 36879 - 11904: 0xB37A, - 36880 - 11904: 0xB376, - 36881 - 11904: 0xD7E4, - 36882 - 11904: 0x9D79, - 36884 - 11904: 0xB37E, - 36885 - 11904: 0xB377, - 36886 - 11904: 0xB37C, - 36887 - 11904: 0xB372, - 36889 - 11904: 0xB36F, - 36890 - 11904: 0xB371, - 36891 - 11904: 0xB37D, - 36892 - 11904: 0xD7E5, - 36893 - 11904: 0xB375, - 36894 - 11904: 0xB378, - 36895 - 11904: 0xB374, - 36896 - 11904: 0xB379, - 36897 - 11904: 0xD7E7, - 36898 - 11904: 0xB37B, - 36899 - 11904: 0xB373, - 36900 - 11904: 0xD7E2, - 36909 - 11904: 0xDC4D, - 36910 - 11904: 0xB665, - 36911 - 11904: 0xDC4F, - 36913 - 11904: 0xB667, - 36914 - 11904: 0xB669, - 36915 - 11904: 0x99F3, - 36916 - 11904: 0xDC4E, - 36917 - 11904: 0xB666, - 36918 - 11904: 0xB66A, - 36919 - 11904: 0x9062, - 36920 - 11904: 0xB668, - 36924 - 11904: 0xB947, - 36925 - 11904: 0xE0A3, - 36926 - 11904: 0xB94F, - 36927 - 11904: 0xE07E, - 36929 - 11904: 0xB950, - 36930 - 11904: 0xB945, - 36932 - 11904: 0xE0A1, - 36934 - 11904: 0x87BD, - 36935 - 11904: 0xB94A, - 36937 - 11904: 0xE0A2, - 36938 - 11904: 0xB943, - 36939 - 11904: 0xB942, - 36940 - 11904: 0x9F55, - 36941 - 11904: 0xB94D, - 36942 - 11904: 0xB94C, - 36943 - 11904: 0xB94B, - 36944 - 11904: 0xB949, - 36945 - 11904: 0xB94E, - 36946 - 11904: 0xE07D, - 36947 - 11904: 0xB944, - 36948 - 11904: 0xB946, - 36949 - 11904: 0xB948, - 36950 - 11904: 0x9BF9, - 36952 - 11904: 0xBBB8, - 36953 - 11904: 0xBBBB, - 36955 - 11904: 0xBBBF, - 36956 - 11904: 0xBBB9, - 36957 - 11904: 0xBBBE, - 36958 - 11904: 0xBBBC, - 36960 - 11904: 0xBBB7, - 36961 - 11904: 0x9065, - 36962 - 11904: 0xBBBD, - 36963 - 11904: 0xBBBA, - 36964 - 11904: 0x96E0, - 36967 - 11904: 0xE852, - 36968 - 11904: 0xBE43, - 36969 - 11904: 0xBE41, - 36971 - 11904: 0xE853, - 36972 - 11904: 0x98BE, - 36973 - 11904: 0xBE44, - 36974 - 11904: 0xBE42, - 36975 - 11904: 0xE851, - 36976 - 11904: 0xE850, - 36978 - 11904: 0xBFF0, - 36979 - 11904: 0xE84F, - 36980 - 11904: 0xBFEE, - 36981 - 11904: 0xBFED, - 36982 - 11904: 0xEBD0, - 36983 - 11904: 0xBE45, - 36984 - 11904: 0xBFEF, - 36985 - 11904: 0xEBD1, - 36986 - 11904: 0xBFF2, - 36987 - 11904: 0xEBD2, - 36988 - 11904: 0xBFF1, - 36989 - 11904: 0xC1D8, - 36990 - 11904: 0xEEC3, - 36991 - 11904: 0xC1D7, - 36992 - 11904: 0xC1DC, - 36993 - 11904: 0xC1DA, - 36994 - 11904: 0xC1DB, - 36995 - 11904: 0xC2E3, - 36996 - 11904: 0xC1D9, - 36997 - 11904: 0xEEC2, - 36998 - 11904: 0xEBD3, - 36999 - 11904: 0xC2E2, - 37000 - 11904: 0xC2E4, - 37002 - 11904: 0xC3E4, - 37003 - 11904: 0xC3E5, - 37005 - 11904: 0xF4E0, - 37007 - 11904: 0xC5DE, - 37008 - 11904: 0xC5DD, - 37009 - 11904: 0xA8B6, - 37012 - 11904: 0xCA55, - 37013 - 11904: 0xB06F, - 37015 - 11904: 0xCA52, - 37016 - 11904: 0xCA53, - 37017 - 11904: 0xCA51, - 37019 - 11904: 0xCA54, - 37022 - 11904: 0xCBAA, - 37023 - 11904: 0xCBA7, - 37024 - 11904: 0xCBAC, - 37025 - 11904: 0xCBA8, - 37026 - 11904: 0xA8B7, - 37027 - 11904: 0xA8BA, - 37029 - 11904: 0xCBA9, - 37030 - 11904: 0xA8B9, - 37031 - 11904: 0xCBAB, - 37032 - 11904: 0x9068, - 37034 - 11904: 0xA8B8, - 37038 - 11904: 0x906C, - 37039 - 11904: 0xCDD5, - 37040 - 11904: 0xCDD7, - 37041 - 11904: 0xAAF4, - 37042 - 11904: 0xCDD3, - 37043 - 11904: 0xCDD6, - 37044 - 11904: 0xCDD4, - 37045 - 11904: 0xAAF2, - 37046 - 11904: 0xAAF5, - 37048 - 11904: 0xAAF3, - 37051 - 11904: 0x95D8, - 37053 - 11904: 0xD0B8, - 37054 - 11904: 0xD0BC, - 37055 - 11904: 0xD0B9, - 37057 - 11904: 0xADA7, - 37059 - 11904: 0xADA8, - 37060 - 11904: 0x906A, - 37061 - 11904: 0xD0BB, - 37063 - 11904: 0xD0BD, - 37064 - 11904: 0xD0BF, - 37066 - 11904: 0xADA5, - 37067 - 11904: 0xD0BE, - 37070 - 11904: 0xADA6, - 37076 - 11904: 0xD7EE, - 37077 - 11904: 0xD0BA, - 37078 - 11904: 0xD3F2, - 37079 - 11904: 0xD3FB, - 37080 - 11904: 0xD3F9, - 37081 - 11904: 0xD3F4, - 37082 - 11904: 0xD3F5, - 37083 - 11904: 0xD3FA, - 37084 - 11904: 0xD3FC, - 37085 - 11904: 0xB071, - 37087 - 11904: 0xD3F7, - 37088 - 11904: 0xD3F3, - 37089 - 11904: 0xB070, - 37090 - 11904: 0xB072, - 37091 - 11904: 0xD3F6, - 37092 - 11904: 0xD3FD, - 37093 - 11904: 0xD3F8, - 37096 - 11904: 0xB3A1, - 37097 - 11904: 0xD7F1, - 37098 - 11904: 0xD7E9, - 37099 - 11904: 0xD7EF, - 37100 - 11904: 0xD7F0, - 37101 - 11904: 0xB3A2, - 37103 - 11904: 0xD7E8, - 37104 - 11904: 0xD7EA, - 37105 - 11904: 0xD0B7, - 37106 - 11904: 0xD7EC, - 37107 - 11904: 0xD7ED, - 37108 - 11904: 0xD7EB, - 37109 - 11904: 0xB66C, - 37113 - 11904: 0xDC56, - 37114 - 11904: 0xEBD4, - 37115 - 11904: 0xDC57, - 37116 - 11904: 0xDC54, - 37117 - 11904: 0xB3A3, - 37118 - 11904: 0xB66E, - 37119 - 11904: 0xDC53, - 37120 - 11904: 0xDC59, - 37121 - 11904: 0xDC58, - 37122 - 11904: 0xB66B, - 37123 - 11904: 0xDC5C, - 37124 - 11904: 0xDC52, - 37125 - 11904: 0xDC5B, - 37126 - 11904: 0xDC50, - 37127 - 11904: 0xDC5A, - 37128 - 11904: 0xDC55, - 37129 - 11904: 0xB66D, - 37131 - 11904: 0xE0AA, - 37133 - 11904: 0xE0A5, - 37134 - 11904: 0xE0AB, - 37135 - 11904: 0xE0A6, - 37136 - 11904: 0xE0A4, - 37137 - 11904: 0xE0A7, - 37138 - 11904: 0xB951, - 37140 - 11904: 0xE0A9, - 37142 - 11904: 0xE0A8, - 37143 - 11904: 0xB952, - 37144 - 11904: 0xBBC1, - 37145 - 11904: 0xBBC0, - 37146 - 11904: 0xE46E, - 37147 - 11904: 0xE471, - 37148 - 11904: 0xE469, - 37149 - 11904: 0xE46D, - 37150 - 11904: 0xBBC2, - 37151 - 11904: 0xE46C, - 37152 - 11904: 0xE46A, - 37153 - 11904: 0xE470, - 37154 - 11904: 0xE46B, - 37155 - 11904: 0xE468, - 37156 - 11904: 0xE46F, - 37158 - 11904: 0xE859, - 37159 - 11904: 0xBE48, - 37160 - 11904: 0xF14A, - 37161 - 11904: 0xE856, - 37162 - 11904: 0xE857, - 37163 - 11904: 0xE855, - 37164 - 11904: 0xDC51, - 37165 - 11904: 0xBE47, - 37166 - 11904: 0xE85A, - 37167 - 11904: 0xE854, - 37168 - 11904: 0xBE46, - 37169 - 11904: 0xBE49, - 37170 - 11904: 0xE858, - 37171 - 11904: 0xEBD5, - 37172 - 11904: 0xBFF3, - 37173 - 11904: 0xEBD6, - 37174 - 11904: 0xEBD7, - 37176 - 11904: 0xEEC4, - 37177 - 11904: 0xC1DD, - 37178 - 11904: 0xF14B, - 37179 - 11904: 0xF14C, - 37182 - 11904: 0xF14D, - 37183 - 11904: 0xF35D, - 37184 - 11904: 0xF35C, - 37185 - 11904: 0xF4E2, - 37187 - 11904: 0xF4E1, - 37188 - 11904: 0xF65B, - 37189 - 11904: 0xF65C, - 37190 - 11904: 0xF65A, - 37191 - 11904: 0xF766, - 37192 - 11904: 0xC5B0, - 37193 - 11904: 0xA8BB, - 37194 - 11904: 0xADAA, - 37195 - 11904: 0xADA9, - 37196 - 11904: 0xB075, - 37197 - 11904: 0xB074, - 37198 - 11904: 0xD440, - 37199 - 11904: 0xD441, - 37200 - 11904: 0xD3FE, - 37201 - 11904: 0x9FB2, - 37202 - 11904: 0xB073, - 37203 - 11904: 0xD7F5, - 37205 - 11904: 0xD7F6, - 37206 - 11904: 0xD7F2, - 37207 - 11904: 0xB3A4, - 37208 - 11904: 0xD7F3, - 37209 - 11904: 0x9FAE, - 37210 - 11904: 0xD7F4, - 37212 - 11904: 0x9FB0, - 37214 - 11904: 0x89AD, - 37215 - 11904: 0xDC5F, - 37216 - 11904: 0xDC61, - 37217 - 11904: 0xDC5D, - 37218 - 11904: 0xDC60, - 37219 - 11904: 0xB66F, - 37220 - 11904: 0xDC5E, - 37221 - 11904: 0xB670, - 37223 - 11904: 0x906E, - 37224 - 11904: 0xDD73, - 37225 - 11904: 0xB955, - 37226 - 11904: 0xB954, - 37228 - 11904: 0xB953, - 37230 - 11904: 0xE0AC, - 37231 - 11904: 0xE0AD, - 37232 - 11904: 0x9E71, - 37234 - 11904: 0xE473, - 37235 - 11904: 0xE475, - 37236 - 11904: 0xBBC6, - 37237 - 11904: 0xBBC3, - 37238 - 11904: 0x9E4A, - 37239 - 11904: 0xBBC5, - 37240 - 11904: 0xBBC4, - 37241 - 11904: 0xE474, - 37242 - 11904: 0xE472, - 37244 - 11904: 0x9FDC, - 37248 - 11904: 0xE861, - 37249 - 11904: 0xE85E, - 37250 - 11904: 0xE85F, - 37251 - 11904: 0xBE4D, - 37252 - 11904: 0xE860, - 37253 - 11904: 0xE85B, - 37254 - 11904: 0xE85C, - 37255 - 11904: 0xBE4A, - 37257 - 11904: 0xBE4B, - 37258 - 11904: 0xE85D, - 37259 - 11904: 0xBE4C, - 37260 - 11904: 0x89AB, - 37261 - 11904: 0xEBDB, - 37262 - 11904: 0x9FB8, - 37263 - 11904: 0xEBDC, - 37264 - 11904: 0xEBD9, - 37265 - 11904: 0xEBDA, - 37266 - 11904: 0xBFF4, - 37267 - 11904: 0xEBD8, - 37273 - 11904: 0xEEC8, - 37274 - 11904: 0xEEC5, - 37275 - 11904: 0xEEC7, - 37276 - 11904: 0xC1E0, - 37277 - 11904: 0xEECB, - 37278 - 11904: 0xC1DF, - 37279 - 11904: 0xEEC9, - 37280 - 11904: 0xEECC, - 37281 - 11904: 0xEECA, - 37282 - 11904: 0xEEC6, - 37283 - 11904: 0xC1DE, - 37285 - 11904: 0xF14F, - 37287 - 11904: 0xF150, - 37288 - 11904: 0xF14E, - 37289 - 11904: 0x9070, - 37290 - 11904: 0xF152, - 37291 - 11904: 0xC2E5, - 37292 - 11904: 0xC2E6, - 37293 - 11904: 0xF35F, - 37294 - 11904: 0xC3E7, - 37295 - 11904: 0xF151, - 37296 - 11904: 0xF35E, - 37297 - 11904: 0xC3E6, - 37298 - 11904: 0xF4E5, - 37299 - 11904: 0xF4E6, - 37300 - 11904: 0xC4BF, - 37301 - 11904: 0xF4E4, - 37302 - 11904: 0x8B63, - 37303 - 11904: 0xF4E3, - 37305 - 11904: 0xF65D, - 37306 - 11904: 0xC548, - 37307 - 11904: 0x95DC, - 37308 - 11904: 0xF849, - 37309 - 11904: 0xF8C8, - 37310 - 11904: 0xF8C7, - 37312 - 11904: 0xC643, - 37313 - 11904: 0xC65D, - 37314 - 11904: 0xF8C9, - 37315 - 11904: 0xF971, - 37316 - 11904: 0x9071, - 37317 - 11904: 0xC66F, - 37318 - 11904: 0xA8BC, - 37319 - 11904: 0xAAF6, - 37321 - 11904: 0xB956, - 37323 - 11904: 0xC4C0, - 37324 - 11904: 0xA8BD, - 37325 - 11904: 0xADAB, - 37326 - 11904: 0xB3A5, - 37327 - 11904: 0xB671, - 37328 - 11904: 0xC2E7, - 37329 - 11904: 0xAAF7, - 37331 - 11904: 0xD0C1, - 37332 - 11904: 0xD0C0, - 37333 - 11904: 0xD442, - 37334 - 11904: 0xFC5E, - 37335 - 11904: 0xB078, - 37336 - 11904: 0xB076, - 37337 - 11904: 0xB07A, - 37338 - 11904: 0xD444, - 37340 - 11904: 0xB079, - 37341 - 11904: 0xB077, - 37343 - 11904: 0x8949, - 37346 - 11904: 0xD443, - 37347 - 11904: 0xB3A8, - 37348 - 11904: 0xD7FC, - 37349 - 11904: 0x965B, - 37350 - 11904: 0xB3A7, - 37351 - 11904: 0xB3A9, - 37352 - 11904: 0xD842, - 37353 - 11904: 0xB3AB, - 37354 - 11904: 0xD7FE, - 37355 - 11904: 0xD840, - 37356 - 11904: 0xD7F7, - 37357 - 11904: 0xB3AA, - 37358 - 11904: 0xD843, - 37361 - 11904: 0xD7F9, - 37363 - 11904: 0xD7FA, - 37364 - 11904: 0xD7F8, - 37365 - 11904: 0xB3A6, - 37366 - 11904: 0x8C50, - 37367 - 11904: 0xD841, - 37368 - 11904: 0xD7FB, - 37369 - 11904: 0xD7FD, - 37370 - 11904: 0x94A6, - 37373 - 11904: 0xDC6D, - 37374 - 11904: 0x8FD5, - 37375 - 11904: 0xDC6C, - 37376 - 11904: 0xDC6A, - 37377 - 11904: 0xDC62, - 37378 - 11904: 0xDC71, - 37379 - 11904: 0xDC65, - 37380 - 11904: 0xDC6F, - 37381 - 11904: 0xDC76, - 37382 - 11904: 0xDC6E, - 37383 - 11904: 0xB679, - 37384 - 11904: 0x9E73, - 37385 - 11904: 0xB675, - 37386 - 11904: 0xDC63, - 37388 - 11904: 0xDC69, - 37389 - 11904: 0xB677, - 37390 - 11904: 0x9075, - 37391 - 11904: 0xDC68, - 37392 - 11904: 0xB678, - 37393 - 11904: 0xB67A, - 37394 - 11904: 0xDC6B, - 37395 - 11904: 0x99F7, - 37396 - 11904: 0xB672, - 37397 - 11904: 0xB673, - 37398 - 11904: 0xDC77, - 37399 - 11904: 0xDC75, - 37400 - 11904: 0x87B2, - 37401 - 11904: 0xDC74, - 37402 - 11904: 0xDC66, - 37404 - 11904: 0xDC72, - 37406 - 11904: 0xB676, - 37409 - 11904: 0x8CBF, - 37411 - 11904: 0xB674, - 37412 - 11904: 0xDC73, - 37413 - 11904: 0xDC64, - 37414 - 11904: 0xDC67, - 37415 - 11904: 0xDC70, - 37416 - 11904: 0x99F9, - 37418 - 11904: 0x9663, - 37419 - 11904: 0x95B9, - 37421 - 11904: 0xE4BA, - 37422 - 11904: 0xE0B7, - 37424 - 11904: 0xE0B0, - 37425 - 11904: 0xE0C3, - 37426 - 11904: 0xE0CC, - 37427 - 11904: 0xE0B3, - 37428 - 11904: 0xB961, - 37429 - 11904: 0x94D4, - 37430 - 11904: 0xE0C0, - 37431 - 11904: 0xB957, - 37432 - 11904: 0xB959, - 37433 - 11904: 0xB965, - 37434 - 11904: 0xE0B1, - 37436 - 11904: 0xFCFA, - 37437 - 11904: 0xB95A, - 37438 - 11904: 0xB95C, - 37439 - 11904: 0xB966, - 37440 - 11904: 0xB95B, - 37441 - 11904: 0x9077, - 37444 - 11904: 0x90AB, - 37445 - 11904: 0xB964, - 37446 - 11904: 0xE0B9, - 37448 - 11904: 0xE0AE, - 37449 - 11904: 0xB962, - 37450 - 11904: 0xE0B8, - 37451 - 11904: 0xB95E, - 37452 - 11904: 0xE0CA, - 37453 - 11904: 0xB963, - 37454 - 11904: 0xE0C8, - 37455 - 11904: 0xE0BC, - 37456 - 11904: 0xE0C6, - 37457 - 11904: 0xB960, - 37458 - 11904: 0xE0AF, - 37459 - 11904: 0xE0C9, - 37460 - 11904: 0xE0C4, - 37461 - 11904: 0x9D4D, - 37462 - 11904: 0xE0CB, - 37463 - 11904: 0xB958, - 37464 - 11904: 0x99FA, - 37466 - 11904: 0xB967, - 37467 - 11904: 0xB95D, - 37469 - 11904: 0x92E3, - 37470 - 11904: 0xE0B5, - 37471 - 11904: 0x97BB, - 37472 - 11904: 0xE0BD, - 37473 - 11904: 0xE0C1, - 37474 - 11904: 0x9078, - 37475 - 11904: 0xE0C5, - 37476 - 11904: 0xB95F, - 37477 - 11904: 0xE0B4, - 37478 - 11904: 0xE0B2, - 37479 - 11904: 0xE0BE, - 37483 - 11904: 0x99FB, - 37484 - 11904: 0xE0BB, - 37485 - 11904: 0xE0BA, - 37486 - 11904: 0x97E0, - 37487 - 11904: 0xE0BF, - 37488 - 11904: 0xE0C2, - 37490 - 11904: 0xE0C7, - 37494 - 11904: 0xE478, - 37495 - 11904: 0x96DC, - 37496 - 11904: 0xBBC7, - 37497 - 11904: 0xE4A4, - 37498 - 11904: 0xE47A, - 37499 - 11904: 0xBBCC, - 37500 - 11904: 0xBBD0, - 37501 - 11904: 0xE4AD, - 37502 - 11904: 0xE4B5, - 37503 - 11904: 0xE4A6, - 37504 - 11904: 0xBBC8, - 37505 - 11904: 0x9CA8, - 37506 - 11904: 0xE4AA, - 37507 - 11904: 0xE0B6, - 37508 - 11904: 0x9772, - 37509 - 11904: 0xBBC9, - 37510 - 11904: 0xE4B1, - 37511 - 11904: 0xE4B6, - 37512 - 11904: 0xE4AE, - 37513 - 11904: 0x9440, - 37514 - 11904: 0xE4B0, - 37515 - 11904: 0xE4B9, - 37516 - 11904: 0xE4B2, - 37517 - 11904: 0xE47E, - 37518 - 11904: 0xE4A9, - 37519 - 11904: 0x92F2, - 37521 - 11904: 0xBBD1, - 37523 - 11904: 0xBBCD, - 37524 - 11904: 0xE47C, - 37525 - 11904: 0xE4AB, - 37526 - 11904: 0xBBCB, - 37527 - 11904: 0xE4A5, - 37528 - 11904: 0xBBCA, - 37529 - 11904: 0xE4B3, - 37530 - 11904: 0xE4A2, - 37531 - 11904: 0xE479, - 37532 - 11904: 0xBBCE, - 37533 - 11904: 0xE4B8, - 37536 - 11904: 0xE47B, - 37537 - 11904: 0xE4AF, - 37538 - 11904: 0xE4AC, - 37539 - 11904: 0xE4A7, - 37540 - 11904: 0xE477, - 37541 - 11904: 0xE476, - 37542 - 11904: 0xE4A1, - 37543 - 11904: 0xE4B4, - 37544 - 11904: 0xBBCF, - 37545 - 11904: 0xE4B7, - 37546 - 11904: 0xE47D, - 37547 - 11904: 0xE4A3, - 37548 - 11904: 0xBE52, - 37550 - 11904: 0x99FD, - 37553 - 11904: 0x99FC, - 37554 - 11904: 0xBE5A, - 37555 - 11904: 0xBE55, - 37556 - 11904: 0xE8A4, - 37557 - 11904: 0xE8A1, - 37558 - 11904: 0xE867, - 37559 - 11904: 0xBE50, - 37561 - 11904: 0xF9D7, - 37562 - 11904: 0x964A, - 37563 - 11904: 0xBE4F, - 37564 - 11904: 0xBE56, - 37566 - 11904: 0x96D8, - 37567 - 11904: 0x99FE, - 37568 - 11904: 0xE865, - 37569 - 11904: 0xBE54, - 37570 - 11904: 0xE871, - 37571 - 11904: 0xE863, - 37572 - 11904: 0xE864, - 37573 - 11904: 0xBE4E, - 37574 - 11904: 0xE8A3, - 37575 - 11904: 0xBE58, - 37576 - 11904: 0xE874, - 37577 - 11904: 0xE879, - 37578 - 11904: 0xE873, - 37579 - 11904: 0xEBEE, - 37580 - 11904: 0xE86F, - 37581 - 11904: 0xE877, - 37582 - 11904: 0xE875, - 37583 - 11904: 0xE868, - 37584 - 11904: 0xE862, - 37585 - 11904: 0xE87D, - 37586 - 11904: 0xBE57, - 37587 - 11904: 0xE87E, - 37588 - 11904: 0x904B, - 37589 - 11904: 0xE878, - 37591 - 11904: 0xE86D, - 37592 - 11904: 0xE86B, - 37593 - 11904: 0xE866, - 37595 - 11904: 0xFA41, - 37597 - 11904: 0xE86E, - 37598 - 11904: 0xE87B, - 37599 - 11904: 0xE86A, - 37600 - 11904: 0xE87A, - 37601 - 11904: 0xE8A2, - 37603 - 11904: 0x9A40, - 37604 - 11904: 0xBE53, - 37605 - 11904: 0x975B, - 37606 - 11904: 0xE876, - 37607 - 11904: 0xE87C, - 37608 - 11904: 0xE872, - 37609 - 11904: 0xE86C, - 37610 - 11904: 0xBE51, - 37611 - 11904: 0x9A41, - 37612 - 11904: 0x91DD, - 37614 - 11904: 0xE4A8, - 37615 - 11904: 0xE870, - 37616 - 11904: 0xBE59, - 37617 - 11904: 0xE869, - 37618 - 11904: 0x93FC, - 37619 - 11904: 0x9A42, - 37620 - 11904: 0x9A43, - 37622 - 11904: 0x9659, - 37623 - 11904: 0xEBF4, - 37624 - 11904: 0xBFF7, - 37625 - 11904: 0xEBF3, - 37626 - 11904: 0xEBF0, - 37627 - 11904: 0xEC44, - 37628 - 11904: 0xBFFB, - 37629 - 11904: 0x9A44, - 37630 - 11904: 0xEC41, - 37631 - 11904: 0xEBF8, - 37632 - 11904: 0xEC43, - 37633 - 11904: 0xEBE9, - 37634 - 11904: 0xEBF6, - 37635 - 11904: 0x9051, - 37636 - 11904: 0xBFFD, - 37638 - 11904: 0xEBE1, - 37639 - 11904: 0x94BF, - 37640 - 11904: 0xEBDF, - 37641 - 11904: 0xEC42, - 37643 - 11904: 0xEC40, - 37644 - 11904: 0xEBFE, - 37645 - 11904: 0xEBED, - 37646 - 11904: 0xEBEC, - 37647 - 11904: 0xEBE2, - 37648 - 11904: 0xC040, - 37650 - 11904: 0xEBE8, - 37651 - 11904: 0xEBF2, - 37652 - 11904: 0xEBFD, - 37653 - 11904: 0xC043, - 37654 - 11904: 0xEC45, - 37656 - 11904: 0xC1E8, - 37657 - 11904: 0xC045, - 37658 - 11904: 0xBFFE, - 37659 - 11904: 0xEBE6, - 37661 - 11904: 0xEBEF, - 37662 - 11904: 0xEBDE, - 37663 - 11904: 0xEBE0, - 37664 - 11904: 0xBFF5, - 37665 - 11904: 0xC042, - 37666 - 11904: 0xBFFA, - 37667 - 11904: 0xEBE7, - 37668 - 11904: 0xEBF7, - 37669 - 11904: 0xEBF1, - 37670 - 11904: 0xC041, - 37671 - 11904: 0xEBDD, - 37672 - 11904: 0xC1E3, - 37673 - 11904: 0xEBF9, - 37674 - 11904: 0xEBFC, - 37675 - 11904: 0xBFFC, - 37676 - 11904: 0x90A2, - 37677 - 11904: 0xEBEB, - 37678 - 11904: 0xC044, - 37679 - 11904: 0xBFF9, - 37680 - 11904: 0x9CAB, - 37681 - 11904: 0x9776, - 37683 - 11904: 0xBFF8, - 37684 - 11904: 0xEBF5, - 37685 - 11904: 0xEBFB, - 37686 - 11904: 0xBFF6, - 37688 - 11904: 0xEBE4, - 37689 - 11904: 0xEBFA, - 37692 - 11904: 0xEBE5, - 37696 - 11904: 0xFC55, - 37697 - 11904: 0xFE45, - 37698 - 11904: 0x94A8, - 37699 - 11904: 0x9A45, - 37700 - 11904: 0xFA4B, - 37701 - 11904: 0x9DE1, - 37702 - 11904: 0xEBEA, - 37703 - 11904: 0xEED2, - 37704 - 11904: 0x96D9, - 37705 - 11904: 0xEED7, - 37706 - 11904: 0xC1E5, - 37707 - 11904: 0xC1E7, - 37708 - 11904: 0xEEDD, - 37709 - 11904: 0xC1E1, - 37710 - 11904: 0xEEEC, - 37711 - 11904: 0xEEE3, - 37712 - 11904: 0xEED8, - 37713 - 11904: 0xEED9, - 37714 - 11904: 0xEEE2, - 37716 - 11904: 0xC1EE, - 37717 - 11904: 0xEEE1, - 37718 - 11904: 0xEED1, - 37719 - 11904: 0xEEE0, - 37720 - 11904: 0xEED4, - 37721 - 11904: 0xEEED, - 37722 - 11904: 0xC1ED, - 37723 - 11904: 0xC1EB, - 37724 - 11904: 0xEED5, - 37726 - 11904: 0xEEE8, - 37727 - 11904: 0x9774, - 37728 - 11904: 0xEEDA, - 37729 - 11904: 0xEEE7, - 37730 - 11904: 0xFDF5, - 37731 - 11904: 0xEEE9, - 37732 - 11904: 0xEED0, - 37733 - 11904: 0xC1E6, - 37734 - 11904: 0x92E5, - 37735 - 11904: 0xEEEA, - 37736 - 11904: 0x9645, - 37737 - 11904: 0x91DA, - 37738 - 11904: 0xEEDE, - 37739 - 11904: 0x90A3, - 37740 - 11904: 0xC1EA, - 37741 - 11904: 0xEEDB, - 37742 - 11904: 0xA05F, - 37744 - 11904: 0xC1EC, - 37745 - 11904: 0xEEE4, - 37747 - 11904: 0x90AF, - 37748 - 11904: 0x97BF, - 37749 - 11904: 0xC1E4, - 37750 - 11904: 0xEED6, - 37751 - 11904: 0xEEE5, - 37752 - 11904: 0x914C, - 37753 - 11904: 0xEEDF, - 37754 - 11904: 0xEBE3, - 37755 - 11904: 0xEEE6, - 37756 - 11904: 0xEED3, - 37757 - 11904: 0x967A, - 37758 - 11904: 0xC1E9, - 37760 - 11904: 0xEEEB, - 37761 - 11904: 0x91DE, - 37762 - 11904: 0xC1E2, - 37763 - 11904: 0xEECE, - 37764 - 11904: 0x9A46, - 37765 - 11904: 0xFEB0, - 37766 - 11904: 0x9779, - 37767 - 11904: 0x946C, - 37768 - 11904: 0xF160, - 37769 - 11904: 0xF159, - 37770 - 11904: 0xC2E9, - 37772 - 11904: 0xF154, - 37773 - 11904: 0xF163, - 37774 - 11904: 0xF15B, - 37775 - 11904: 0xEEDC, - 37776 - 11904: 0x9858, - 37777 - 11904: 0xF165, - 37778 - 11904: 0xF155, - 37780 - 11904: 0xC2E8, - 37781 - 11904: 0xF15F, - 37782 - 11904: 0xC2EA, - 37783 - 11904: 0xC2F2, - 37784 - 11904: 0xC2F0, - 37785 - 11904: 0xF161, - 37786 - 11904: 0xC2F1, - 37787 - 11904: 0xF157, - 37788 - 11904: 0x9266, - 37789 - 11904: 0xF158, - 37790 - 11904: 0xF15D, - 37791 - 11904: 0xF162, - 37792 - 11904: 0x93FB, - 37793 - 11904: 0xEECD, - 37794 - 11904: 0xC2EB, - 37795 - 11904: 0xF16A, - 37796 - 11904: 0xF167, - 37797 - 11904: 0xF16B, - 37798 - 11904: 0xF15E, - 37799 - 11904: 0xF15A, - 37800 - 11904: 0xF168, - 37801 - 11904: 0xF36A, - 37802 - 11904: 0xF15C, - 37804 - 11904: 0xC2EE, - 37805 - 11904: 0x9A47, - 37806 - 11904: 0xC2ED, - 37807 - 11904: 0xEECF, - 37808 - 11904: 0xC2EF, - 37809 - 11904: 0xF164, - 37810 - 11904: 0xF166, - 37811 - 11904: 0xC2EC, - 37812 - 11904: 0xF169, - 37813 - 11904: 0xF153, - 37815 - 11904: 0xF156, - 37816 - 11904: 0x9749, - 37819 - 11904: 0x9748, - 37821 - 11904: 0x934A, - 37823 - 11904: 0x9CE2, - 37824 - 11904: 0xF373, - 37826 - 11904: 0xF363, - 37827 - 11904: 0xC3EB, - 37828 - 11904: 0xF371, - 37830 - 11904: 0x9264, - 37831 - 11904: 0xF361, - 37832 - 11904: 0xC3EC, - 37834 - 11904: 0xF36C, - 37835 - 11904: 0x91DF, - 37836 - 11904: 0xF368, - 37837 - 11904: 0xC3F1, - 37838 - 11904: 0xF372, - 37839 - 11904: 0xF362, - 37840 - 11904: 0xF365, - 37841 - 11904: 0xC3E9, - 37842 - 11904: 0xF374, - 37843 - 11904: 0xFB79, - 37844 - 11904: 0xF36D, - 37845 - 11904: 0xF370, - 37846 - 11904: 0xC3EF, - 37847 - 11904: 0xC3F4, - 37848 - 11904: 0xC3F2, - 37849 - 11904: 0xF369, - 37850 - 11904: 0xF364, - 37851 - 11904: 0x96D7, - 37852 - 11904: 0xC3ED, - 37853 - 11904: 0xC3EE, - 37854 - 11904: 0xF360, - 37855 - 11904: 0xC3EA, - 37856 - 11904: 0x9343, - 37857 - 11904: 0xC3E8, - 37858 - 11904: 0xC3F0, - 37859 - 11904: 0xF36F, - 37860 - 11904: 0xC3F3, - 37862 - 11904: 0xF36B, - 37863 - 11904: 0xF375, - 37864 - 11904: 0xC3F5, - 37868 - 11904: 0xF367, - 37870 - 11904: 0xF36E, - 37872 - 11904: 0xFDCB, - 37873 - 11904: 0xFE7A, - 37875 - 11904: 0x91DB, - 37876 - 11904: 0x8C6A, - 37877 - 11904: 0xF4F3, - 37878 - 11904: 0xF542, - 37879 - 11904: 0xF4F5, - 37880 - 11904: 0xF4FC, - 37881 - 11904: 0xF366, - 37882 - 11904: 0xF4FA, - 37883 - 11904: 0xF4E9, - 37884 - 11904: 0xF540, - 37885 - 11904: 0xC4C3, - 37886 - 11904: 0xF4ED, - 37887 - 11904: 0xF4FE, - 37888 - 11904: 0xF4F4, - 37889 - 11904: 0x97AF, - 37891 - 11904: 0xC4C2, - 37892 - 11904: 0x95DD, - 37894 - 11904: 0xF544, - 37895 - 11904: 0xF4F6, - 37896 - 11904: 0x9348, - 37897 - 11904: 0xF4FB, - 37898 - 11904: 0xF4FD, - 37899 - 11904: 0xF4E7, - 37900 - 11904: 0xF541, - 37901 - 11904: 0xF4F2, - 37902 - 11904: 0xF4F7, - 37903 - 11904: 0xF4EB, - 37904 - 11904: 0xF4EF, - 37905 - 11904: 0xF543, - 37906 - 11904: 0xF4F9, - 37907 - 11904: 0xF4E8, - 37908 - 11904: 0xF4EC, - 37909 - 11904: 0xF4EE, - 37910 - 11904: 0xF4F8, - 37911 - 11904: 0x9A4B, - 37912 - 11904: 0xC4C1, - 37913 - 11904: 0xF4F1, - 37915 - 11904: 0xFC45, - 37917 - 11904: 0x9A4D, - 37920 - 11904: 0xF4EA, - 37924 - 11904: 0x91BC, - 37925 - 11904: 0x90E2, - 37926 - 11904: 0x90B4, - 37927 - 11904: 0x95E1, - 37928 - 11904: 0xF4F0, - 37929 - 11904: 0xF661, - 37930 - 11904: 0xF666, - 37931 - 11904: 0xC54F, - 37932 - 11904: 0xF668, - 37933 - 11904: 0x9A4E, - 37934 - 11904: 0xC549, - 37935 - 11904: 0x87AD, - 37936 - 11904: 0xF664, - 37937 - 11904: 0xF66A, - 37938 - 11904: 0xC54E, - 37939 - 11904: 0xC54A, - 37941 - 11904: 0xC54B, - 37942 - 11904: 0xF660, - 37943 - 11904: 0xF667, - 37944 - 11904: 0xC54D, - 37945 - 11904: 0xF665, - 37946 - 11904: 0xC54C, - 37947 - 11904: 0xF65F, - 37948 - 11904: 0xF663, - 37949 - 11904: 0xF662, - 37950 - 11904: 0x9A4F, - 37951 - 11904: 0xF65E, - 37952 - 11904: 0xF669, - 37954 - 11904: 0xFE40, - 37955 - 11904: 0xFE43, - 37956 - 11904: 0xC5B1, - 37957 - 11904: 0xF76D, - 37958 - 11904: 0xF770, - 37959 - 11904: 0xF76C, - 37960 - 11904: 0xF76E, - 37961 - 11904: 0xF76F, - 37962 - 11904: 0xF769, - 37963 - 11904: 0xF76A, - 37964 - 11904: 0xF767, - 37965 - 11904: 0x96DD, - 37967 - 11904: 0xF76B, - 37968 - 11904: 0xF768, - 37969 - 11904: 0xC5B2, - 37970 - 11904: 0xC5B3, - 37972 - 11904: 0x9A51, - 37973 - 11904: 0xF84B, - 37975 - 11904: 0xF84D, - 37976 - 11904: 0x96A7, - 37979 - 11904: 0x90B0, - 37981 - 11904: 0xF84C, - 37982 - 11904: 0xF84E, - 37984 - 11904: 0xC5E0, - 37986 - 11904: 0xF84A, - 37987 - 11904: 0xC5DF, - 37988 - 11904: 0xC5E1, - 37989 - 11904: 0x9C4E, - 37991 - 11904: 0x9443, - 37992 - 11904: 0xF8CB, - 37993 - 11904: 0xF8CC, - 37994 - 11904: 0xC644, - 37995 - 11904: 0xF8CA, - 37996 - 11904: 0x8EBA, - 37997 - 11904: 0xF953, - 37998 - 11904: 0xF952, - 37999 - 11904: 0xF954, - 38000 - 11904: 0xC65F, - 38001 - 11904: 0xF955, - 38002 - 11904: 0xC65E, - 38003 - 11904: 0xF956, - 38004 - 11904: 0xF972, - 38005 - 11904: 0xF975, - 38006 - 11904: 0xF974, - 38007 - 11904: 0xC668, - 38008 - 11904: 0xF973, - 38009 - 11904: 0x9A52, - 38011 - 11904: 0xFCC1, - 38012 - 11904: 0xC672, - 38013 - 11904: 0xC670, - 38014 - 11904: 0xC671, - 38015 - 11904: 0xC677, - 38016 - 11904: 0xF9C0, - 38017 - 11904: 0xF9C1, - 38018 - 11904: 0xF9BF, - 38019 - 11904: 0xF9C9, - 38021 - 11904: 0x8BE9, - 38047 - 11904: 0x9CAF, - 38050 - 11904: 0x8BFD, - 38081 - 11904: 0x9ABC, - 38083 - 11904: 0x9AB8, - 38108 - 11904: 0x9AAE, - 38134 - 11904: 0x9AA7, - 38189 - 11904: 0x9A53, - 38215 - 11904: 0x9D74, - 38263 - 11904: 0xAAF8, - 38264 - 11904: 0x8BEA, - 38266 - 11904: 0xD844, - 38267 - 11904: 0xDC78, - 38268 - 11904: 0xE8A5, - 38269 - 11904: 0xF376, - 38271 - 11904: 0x8BEB, - 38272 - 11904: 0xAAF9, - 38274 - 11904: 0xADAC, - 38275 - 11904: 0xB07B, - 38277 - 11904: 0x90B2, - 38278 - 11904: 0xD845, - 38280 - 11904: 0xD846, - 38281 - 11904: 0xB3AC, - 38283 - 11904: 0xB67D, - 38284 - 11904: 0xDC7A, - 38285 - 11904: 0xDC79, - 38286 - 11904: 0xB6A3, - 38287 - 11904: 0xB67C, - 38288 - 11904: 0xDC7B, - 38289 - 11904: 0xB67E, - 38290 - 11904: 0xB6A2, - 38291 - 11904: 0xB6A1, - 38292 - 11904: 0xB67B, - 38294 - 11904: 0x95E9, - 38295 - 11904: 0x95E8, - 38296 - 11904: 0xB968, - 38297 - 11904: 0x95E6, - 38299 - 11904: 0xE0D0, - 38300 - 11904: 0xE0CE, - 38302 - 11904: 0xE0CF, - 38303 - 11904: 0xE0CD, - 38304 - 11904: 0x90B5, - 38305 - 11904: 0xBBD2, - 38306 - 11904: 0x9A54, - 38307 - 11904: 0xBBD5, - 38308 - 11904: 0xBBD7, - 38309 - 11904: 0xBBD6, - 38310 - 11904: 0x90B3, - 38311 - 11904: 0x95E7, - 38312 - 11904: 0xBBD3, - 38313 - 11904: 0xBBD4, - 38314 - 11904: 0x8B50, - 38315 - 11904: 0xE8A7, - 38316 - 11904: 0xE8A6, - 38317 - 11904: 0xBE5B, - 38318 - 11904: 0xE8A8, - 38320 - 11904: 0xE8A9, - 38321 - 11904: 0xBE5C, - 38325 - 11904: 0xEC4D, - 38326 - 11904: 0xEC4B, - 38327 - 11904: 0xEEF3, - 38329 - 11904: 0xEC49, - 38330 - 11904: 0xEC4A, - 38331 - 11904: 0xC046, - 38332 - 11904: 0xEC46, - 38333 - 11904: 0xEC4E, - 38334 - 11904: 0xEC48, - 38335 - 11904: 0xEC4C, - 38336 - 11904: 0xEEEF, - 38339 - 11904: 0xEEF1, - 38341 - 11904: 0xEEF2, - 38342 - 11904: 0xC1F3, - 38343 - 11904: 0xEEEE, - 38344 - 11904: 0xC1F2, - 38345 - 11904: 0xEEF0, - 38346 - 11904: 0xC1EF, - 38347 - 11904: 0xC1F0, - 38348 - 11904: 0xC1F1, - 38349 - 11904: 0xEC47, - 38352 - 11904: 0xC2F5, - 38353 - 11904: 0xF16E, - 38354 - 11904: 0xF16C, - 38355 - 11904: 0xF16D, - 38356 - 11904: 0xC2F3, - 38357 - 11904: 0xC2F6, - 38358 - 11904: 0xC2F4, - 38362 - 11904: 0xF377, - 38363 - 11904: 0xF378, - 38364 - 11904: 0xC3F6, - 38366 - 11904: 0xF545, - 38367 - 11904: 0xF547, - 38368 - 11904: 0xF546, - 38369 - 11904: 0xC4C4, - 38370 - 11904: 0xC550, - 38371 - 11904: 0xF66D, - 38372 - 11904: 0xF66C, - 38373 - 11904: 0xF66B, - 38376 - 11904: 0x8BEC, - 38388 - 11904: 0x9A56, - 38428 - 11904: 0xAAFA, - 38429 - 11904: 0x8BFB, - 38430 - 11904: 0xC9AA, - 38432 - 11904: 0xCA58, - 38433 - 11904: 0xA6E9, - 38434 - 11904: 0xCA56, - 38435 - 11904: 0xCA59, - 38436 - 11904: 0xCA57, - 38440 - 11904: 0xCBAE, - 38442 - 11904: 0xA8C1, - 38444 - 11904: 0xA8C2, - 38445 - 11904: 0xCBB0, - 38446 - 11904: 0xA8BF, - 38447 - 11904: 0xCBAF, - 38448 - 11904: 0xCBAD, - 38449 - 11904: 0xA8C0, - 38450 - 11904: 0xA8BE, - 38451 - 11904: 0x9A57, - 38456 - 11904: 0xA0AA, - 38457 - 11904: 0xCDD8, - 38458 - 11904: 0xCDDB, - 38459 - 11904: 0xAAFD, - 38460 - 11904: 0xCDDA, - 38461 - 11904: 0xCDD9, - 38463 - 11904: 0xAAFC, - 38464 - 11904: 0xAAFB, - 38465 - 11904: 0x9FA6, - 38466 - 11904: 0xAB40, - 38467 - 11904: 0xCDDC, - 38468 - 11904: 0xAAFE, - 38469 - 11904: 0x99CC, - 38474 - 11904: 0xD0C6, - 38475 - 11904: 0xADAE, - 38476 - 11904: 0xADAF, - 38477 - 11904: 0xADB0, - 38478 - 11904: 0xD0C7, - 38479 - 11904: 0xD0C3, - 38480 - 11904: 0xADAD, - 38481 - 11904: 0xD0C4, - 38483 - 11904: 0xD0C5, - 38484 - 11904: 0xD0C2, - 38486 - 11904: 0x9C59, - 38488 - 11904: 0xB0A4, - 38491 - 11904: 0xB0A1, - 38492 - 11904: 0xD445, - 38493 - 11904: 0xB0A2, - 38494 - 11904: 0xB0A5, - 38495 - 11904: 0xD446, - 38497 - 11904: 0xB07E, - 38498 - 11904: 0xB07C, - 38499 - 11904: 0xB07D, - 38500 - 11904: 0xB0A3, - 38505 - 11904: 0x99B5, - 38506 - 11904: 0xB3AD, - 38507 - 11904: 0xD849, - 38508 - 11904: 0xB3B5, - 38509 - 11904: 0xD848, - 38511 - 11904: 0xD84B, - 38512 - 11904: 0xB3B1, - 38513 - 11904: 0xD84A, - 38514 - 11904: 0xB6AB, - 38515 - 11904: 0xB3AF, - 38516 - 11904: 0xB3B2, - 38517 - 11904: 0xB3AE, - 38518 - 11904: 0xB3B3, - 38519 - 11904: 0xB3B4, - 38520 - 11904: 0xB3B0, - 38523 - 11904: 0x90BE, - 38524 - 11904: 0xD847, - 38525 - 11904: 0xB6A7, - 38526 - 11904: 0xDC7D, - 38528 - 11904: 0xDCA3, - 38529 - 11904: 0x9FAF, - 38531 - 11904: 0xDCA2, - 38532 - 11904: 0xB6AC, - 38533 - 11904: 0xB6A8, - 38534 - 11904: 0xB6A9, - 38535 - 11904: 0xDC7C, - 38536 - 11904: 0xDC7E, - 38537 - 11904: 0xDCA1, - 38538 - 11904: 0xB6A4, - 38539 - 11904: 0xB6A6, - 38541 - 11904: 0xB6AA, - 38542 - 11904: 0xB6A5, - 38543 - 11904: 0x95F2, - 38545 - 11904: 0xE0D3, - 38546 - 11904: 0xE0D1, - 38547 - 11904: 0xE0D2, - 38548 - 11904: 0xB96A, - 38549 - 11904: 0xB96B, - 38550 - 11904: 0x90BF, - 38551 - 11904: 0xE0D4, - 38552 - 11904: 0xB969, - 38553 - 11904: 0xBBD8, - 38555 - 11904: 0xBBDA, - 38556 - 11904: 0xBBD9, - 38558 - 11904: 0xE4BB, - 38561 - 11904: 0xE4BC, - 38562 - 11904: 0xE8AB, - 38563 - 11904: 0x90C1, - 38564 - 11904: 0xE8AA, - 38565 - 11904: 0xFEE4, - 38567 - 11904: 0xC047, - 38568 - 11904: 0xC048, - 38569 - 11904: 0xEC4F, - 38570 - 11904: 0xC049, - 38572 - 11904: 0xEEF6, - 38574 - 11904: 0xEEF4, - 38576 - 11904: 0xEEF5, - 38577 - 11904: 0xC1F4, - 38579 - 11904: 0xF16F, - 38580 - 11904: 0xC3F7, - 38582 - 11904: 0xC6D7, - 38584 - 11904: 0xC1F5, - 38585 - 11904: 0xAB41, - 38587 - 11904: 0xB0A6, - 38588 - 11904: 0xD447, - 38589 - 11904: 0x90C7, - 38591 - 11904: 0xD84C, - 38592 - 11904: 0xB3B6, - 38593 - 11904: 0xB6AD, - 38594 - 11904: 0xDCA4, - 38595 - 11904: 0xDCA6, - 38596 - 11904: 0xB6AF, - 38597 - 11904: 0xB6AE, - 38598 - 11904: 0xB6B0, - 38599 - 11904: 0xB6B1, - 38600 - 11904: 0xDCA5, - 38601 - 11904: 0xB96E, - 38602 - 11904: 0xB96F, - 38603 - 11904: 0xB96D, - 38604 - 11904: 0xBBDB, - 38605 - 11904: 0xB96C, - 38606 - 11904: 0xE0D5, - 38610 - 11904: 0xBBDC, - 38611 - 11904: 0xE8AC, - 38612 - 11904: 0xEC50, - 38613 - 11904: 0xC04A, - 38614 - 11904: 0xC1F6, - 38615 - 11904: 0xF170, - 38616 - 11904: 0xF174, - 38617 - 11904: 0xC2F9, - 38618 - 11904: 0xF171, - 38619 - 11904: 0xC2FA, - 38620 - 11904: 0xC2F8, - 38621 - 11904: 0xF175, - 38622 - 11904: 0xC2FB, - 38623 - 11904: 0xF173, - 38625 - 11904: 0xF379, - 38626 - 11904: 0xC2F7, - 38627 - 11904: 0xC3F8, - 38629 - 11904: 0xF8CD, - 38632 - 11904: 0xAB42, - 38633 - 11904: 0xB3B8, - 38634 - 11904: 0xB3B7, - 38639 - 11904: 0xB6B2, - 38640 - 11904: 0xDCA8, - 38641 - 11904: 0xDCA7, - 38642 - 11904: 0xB6B3, - 38644 - 11904: 0x92E4, - 38645 - 11904: 0xE0D9, - 38646 - 11904: 0xB973, - 38647 - 11904: 0xB970, - 38648 - 11904: 0xE0D8, - 38649 - 11904: 0xB972, - 38650 - 11904: 0xE0D6, - 38651 - 11904: 0xB971, - 38653 - 11904: 0xE0D7, - 38655 - 11904: 0xE4BD, - 38656 - 11904: 0xBBDD, - 38658 - 11904: 0xE8AF, - 38659 - 11904: 0x9F52, - 38660 - 11904: 0xBE5D, - 38661 - 11904: 0xE8AD, - 38662 - 11904: 0xBE5E, - 38663 - 11904: 0xBE5F, - 38664 - 11904: 0xE8AE, - 38665 - 11904: 0xBE60, - 38667 - 11904: 0xEC51, - 38669 - 11904: 0xC04E, - 38670 - 11904: 0xC04B, - 38671 - 11904: 0xC050, - 38672 - 11904: 0xEC53, - 38673 - 11904: 0xC04C, - 38674 - 11904: 0xEC52, - 38675 - 11904: 0xC04F, - 38678 - 11904: 0xC04D, - 38680 - 11904: 0xEEF9, - 38681 - 11904: 0xEEFB, - 38683 - 11904: 0x90DB, - 38684 - 11904: 0xC1F7, - 38685 - 11904: 0xEEFA, - 38686 - 11904: 0xC1F8, - 38687 - 11904: 0xEEF8, - 38688 - 11904: 0xEEF7, - 38689 - 11904: 0xA066, - 38690 - 11904: 0xF177, - 38691 - 11904: 0xF176, - 38692 - 11904: 0xC2FC, - 38693 - 11904: 0xF178, - 38694 - 11904: 0xF37E, - 38695 - 11904: 0xC3FA, - 38696 - 11904: 0xF37D, - 38697 - 11904: 0xF37A, - 38698 - 11904: 0xC3F9, - 38699 - 11904: 0xF37B, - 38700 - 11904: 0xF37C, - 38702 - 11904: 0xF548, - 38703 - 11904: 0xF549, - 38704 - 11904: 0xC4C5, - 38705 - 11904: 0x90D2, - 38706 - 11904: 0xC553, - 38708 - 11904: 0x876B, - 38709 - 11904: 0xF66E, - 38710 - 11904: 0x90D4, - 38712 - 11904: 0xC551, - 38713 - 11904: 0xC552, - 38714 - 11904: 0xF66F, - 38717 - 11904: 0xC5B4, - 38718 - 11904: 0xC5B5, - 38719 - 11904: 0xF771, - 38720 - 11904: 0x9A5B, - 38721 - 11904: 0x95FD, - 38722 - 11904: 0xC645, - 38723 - 11904: 0xF8CF, - 38724 - 11904: 0xC647, - 38726 - 11904: 0xF8CE, - 38727 - 11904: 0xF8D0, - 38728 - 11904: 0xC646, - 38729 - 11904: 0xF957, - 38730 - 11904: 0x87B1, - 38731 - 11904: 0xF9AD, - 38737 - 11904: 0x8BC4, - 38738 - 11904: 0xAB43, - 38741 - 11904: 0x8C66, - 38742 - 11904: 0xB974, - 38743 - 11904: 0x90DE, - 38744 - 11904: 0xE4BE, - 38746 - 11904: 0xE8B0, - 38747 - 11904: 0xC051, - 38748 - 11904: 0xC052, - 38749 - 11904: 0x9CE4, - 38750 - 11904: 0xAB44, - 38751 - 11904: 0x90E1, - 38752 - 11904: 0xBE61, - 38753 - 11904: 0xC3FB, - 38754 - 11904: 0xADB1, - 38758 - 11904: 0xC053, - 38760 - 11904: 0xC5E2, - 38761 - 11904: 0xADB2, - 38762 - 11904: 0xD84D, - 38764 - 11904: 0xDCA9, - 38765 - 11904: 0x9E46, - 38766 - 11904: 0xDCAB, - 38768 - 11904: 0xDCAA, - 38769 - 11904: 0x9651, - 38770 - 11904: 0xE0DD, - 38771 - 11904: 0xE0DA, - 38772 - 11904: 0xB975, - 38774 - 11904: 0xB976, - 38775 - 11904: 0xE0DB, - 38776 - 11904: 0xE0DC, - 38778 - 11904: 0xE4C0, - 38779 - 11904: 0xE4C5, - 38780 - 11904: 0xBBDE, - 38781 - 11904: 0xE4BF, - 38782 - 11904: 0xE4C1, - 38783 - 11904: 0xE4C8, - 38784 - 11904: 0xE4C3, - 38785 - 11904: 0xE4C7, - 38786 - 11904: 0xE4C4, - 38787 - 11904: 0xE4C2, - 38788 - 11904: 0xE4C6, - 38789 - 11904: 0xBBDF, - 38791 - 11904: 0xFB58, - 38792 - 11904: 0xE8B3, - 38793 - 11904: 0x90E6, - 38794 - 11904: 0xE8B1, - 38795 - 11904: 0xBE63, - 38797 - 11904: 0xBE62, - 38798 - 11904: 0xE8B2, - 38799 - 11904: 0xBE64, - 38804 - 11904: 0xEC56, - 38807 - 11904: 0xEC55, - 38808 - 11904: 0xC054, - 38809 - 11904: 0xEC54, - 38810 - 11904: 0xEEFC, - 38811 - 11904: 0x9650, - 38812 - 11904: 0xEEFE, - 38813 - 11904: 0xEF41, - 38814 - 11904: 0xEF40, - 38815 - 11904: 0x90E7, - 38816 - 11904: 0xC1F9, - 38817 - 11904: 0xEEFD, - 38818 - 11904: 0xF1A1, - 38819 - 11904: 0xC2FD, - 38820 - 11904: 0xF17D, - 38821 - 11904: 0xF1A2, - 38822 - 11904: 0xC2FE, - 38824 - 11904: 0xF17B, - 38826 - 11904: 0xF17E, - 38827 - 11904: 0xF17C, - 38828 - 11904: 0xF179, - 38829 - 11904: 0xC340, - 38830 - 11904: 0xF17A, - 38833 - 11904: 0x90E8, - 38834 - 11904: 0x9A5D, - 38835 - 11904: 0xF3A1, - 38836 - 11904: 0x9F7A, - 38838 - 11904: 0xF3A3, - 38839 - 11904: 0xF3A2, - 38840 - 11904: 0x9B5C, - 38841 - 11904: 0xF54A, - 38842 - 11904: 0x9F7C, - 38843 - 11904: 0xF54B, - 38845 - 11904: 0xFC52, - 38846 - 11904: 0x90E9, - 38847 - 11904: 0xF670, - 38848 - 11904: 0x90EA, - 38849 - 11904: 0xC5B7, - 38850 - 11904: 0x9A5E, - 38851 - 11904: 0xC5B6, - 38852 - 11904: 0xF84F, - 38853 - 11904: 0xF850, - 38854 - 11904: 0xC648, - 38855 - 11904: 0xF8D1, - 38856 - 11904: 0x9F76, - 38857 - 11904: 0xC669, - 38859 - 11904: 0xADB3, - 38860 - 11904: 0xB6B4, - 38861 - 11904: 0xE4CA, - 38862 - 11904: 0xE4C9, - 38863 - 11904: 0xE8B5, - 38864 - 11904: 0xE8B4, - 38866 - 11904: 0x90EB, - 38867 - 11904: 0xC1FA, - 38868 - 11904: 0xEF43, - 38869 - 11904: 0xEF42, - 38870 - 11904: 0xF1A5, - 38871 - 11904: 0xF1A3, - 38872 - 11904: 0xF1A6, - 38873 - 11904: 0xF1A4, - 38876 - 11904: 0xC3FC, - 38877 - 11904: 0xF3A4, - 38878 - 11904: 0xF3A5, - 38879 - 11904: 0xF3A6, - 38880 - 11904: 0x90EC, - 38881 - 11904: 0xF671, - 38883 - 11904: 0xF772, - 38885 - 11904: 0xF8D2, - 38886 - 11904: 0x8BEE, - 38893 - 11904: 0xADB4, - 38894 - 11904: 0x90EE, - 38896 - 11904: 0xEC57, - 38897 - 11904: 0xEF44, - 38898 - 11904: 0x91C6, - 38899 - 11904: 0xADB5, - 38901 - 11904: 0x90F2, - 38902 - 11904: 0xBBE0, - 38904 - 11904: 0xEC58, - 38905 - 11904: 0xC341, - 38906 - 11904: 0xF1A7, - 38907 - 11904: 0xC3FD, - 38909 - 11904: 0xF54C, - 38910 - 11904: 0xF54D, - 38911 - 11904: 0xC554, - 38912 - 11904: 0xF851, - 38913 - 11904: 0xADB6, - 38914 - 11904: 0xB3BB, - 38915 - 11904: 0xB3BC, - 38916 - 11904: 0xD84E, - 38917 - 11904: 0xB6B5, - 38918 - 11904: 0xB6B6, - 38919 - 11904: 0xDCAC, - 38920 - 11904: 0xB6B7, - 38922 - 11904: 0xB97A, - 38924 - 11904: 0xB97C, - 38925 - 11904: 0xE0DF, - 38926 - 11904: 0xE0E0, - 38927 - 11904: 0xE0DE, - 38928 - 11904: 0xB977, - 38929 - 11904: 0xB978, - 38930 - 11904: 0xB97B, - 38931 - 11904: 0xB979, - 38932 - 11904: 0xFCBC, - 38933 - 11904: 0x8A74, - 38934 - 11904: 0xE4CB, - 38935 - 11904: 0xBBE1, - 38936 - 11904: 0xBBE2, - 38939 - 11904: 0xE8BC, - 38940 - 11904: 0xBE67, - 38941 - 11904: 0xE8B7, - 38942 - 11904: 0xE8B6, - 38943 - 11904: 0x9657, - 38944 - 11904: 0xE8BB, - 38945 - 11904: 0xBE65, - 38947 - 11904: 0x9CEF, - 38948 - 11904: 0xC05B, - 38950 - 11904: 0xE8B8, - 38951 - 11904: 0xE8BD, - 38952 - 11904: 0xE8BA, - 38953 - 11904: 0xE8B9, - 38955 - 11904: 0xBE66, - 38957 - 11904: 0xC059, - 38958 - 11904: 0x9FDF, - 38959 - 11904: 0xEC5A, - 38960 - 11904: 0xC055, - 38962 - 11904: 0xEC5B, - 38963 - 11904: 0x90F7, - 38964 - 11904: 0x90F6, - 38965 - 11904: 0xEC59, - 38967 - 11904: 0xC058, - 38968 - 11904: 0xC056, - 38969 - 11904: 0xC05A, - 38971 - 11904: 0xC057, - 38977 - 11904: 0xEF45, - 38979 - 11904: 0xEF4A, - 38980 - 11904: 0xEF46, - 38981 - 11904: 0xEF49, - 38982 - 11904: 0xC1FB, - 38983 - 11904: 0x9B5E, - 38984 - 11904: 0xEDD4, - 38985 - 11904: 0xEF48, - 38986 - 11904: 0xEF47, - 38987 - 11904: 0x90F8, - 38988 - 11904: 0xC344, - 38989 - 11904: 0xC342, - 38990 - 11904: 0xC345, - 38991 - 11904: 0xC343, - 38992 - 11904: 0xF1A8, - 38993 - 11904: 0xF1A9, - 38994 - 11904: 0xF1AA, - 38995 - 11904: 0xC346, - 38998 - 11904: 0x8CFC, - 38999 - 11904: 0xF3AA, - 39000 - 11904: 0xC440, - 39001 - 11904: 0xF3A8, - 39003 - 11904: 0xC441, - 39004 - 11904: 0xF3A7, - 39005 - 11904: 0xF3A9, - 39006 - 11904: 0xC3FE, - 39007 - 11904: 0xF551, - 39008 - 11904: 0xF54E, - 39010 - 11904: 0xF54F, - 39011 - 11904: 0xF550, - 39012 - 11904: 0xF672, - 39013 - 11904: 0xC556, - 39014 - 11904: 0x90F9, - 39015 - 11904: 0xC555, - 39016 - 11904: 0x8CC9, - 39017 - 11904: 0xF774, - 39018 - 11904: 0xF773, - 39019 - 11904: 0xC5B8, - 39020 - 11904: 0xFA6A, - 39023 - 11904: 0xC5E3, - 39024 - 11904: 0xC649, - 39025 - 11904: 0xC660, - 39026 - 11904: 0xF958, - 39027 - 11904: 0xF9AE, - 39028 - 11904: 0xF9AF, - 39029 - 11904: 0x8BEF, - 39080 - 11904: 0xADB7, - 39081 - 11904: 0xDCAD, - 39084 - 11904: 0xE0E1, - 39085 - 11904: 0xE4CC, - 39086 - 11904: 0xE4CD, - 39087 - 11904: 0xBBE3, - 39089 - 11904: 0xBBE4, - 39090 - 11904: 0xE8BE, - 39091 - 11904: 0xBE68, - 39092 - 11904: 0x9FE0, - 39094 - 11904: 0xC1FC, - 39095 - 11904: 0x9142, - 39096 - 11904: 0xF1AB, - 39097 - 11904: 0x9A62, - 39098 - 11904: 0xC347, - 39099 - 11904: 0xF3AD, - 39100 - 11904: 0xC442, - 39101 - 11904: 0xF3AC, - 39102 - 11904: 0xF3AE, - 39103 - 11904: 0xF3AB, - 39104 - 11904: 0xF675, - 39105 - 11904: 0xF552, - 39106 - 11904: 0xF553, - 39107 - 11904: 0x9569, - 39108 - 11904: 0xC4C6, - 39110 - 11904: 0xF674, - 39111 - 11904: 0x9144, - 39112 - 11904: 0x9143, - 39113 - 11904: 0xF673, - 39114 - 11904: 0x9141, - 39115 - 11904: 0xF775, - 39116 - 11904: 0xF9B0, - 39118 - 11904: 0x8BF0, - 39131 - 11904: 0xADB8, - 39132 - 11904: 0x9660, - 39134 - 11904: 0x8BF1, - 39135 - 11904: 0xADB9, - 39136 - 11904: 0x99F6, - 39137 - 11904: 0x9149, - 39138 - 11904: 0xB0A7, - 39139 - 11904: 0xD448, - 39141 - 11904: 0xD84F, - 39142 - 11904: 0x914A, - 39143 - 11904: 0xB6B8, - 39145 - 11904: 0xB6BB, - 39146 - 11904: 0xB6B9, - 39147 - 11904: 0xDCAE, - 39148 - 11904: 0x914B, - 39149 - 11904: 0xB6BD, - 39151 - 11904: 0xB6BA, - 39153 - 11904: 0x9A64, - 39154 - 11904: 0xB6BC, - 39156 - 11904: 0xB97E, - 39157 - 11904: 0x8ABF, - 39158 - 11904: 0xE0E2, - 39161 - 11904: 0xE0E3, - 39162 - 11904: 0xE8C0, - 39164 - 11904: 0xB97D, - 39165 - 11904: 0xB9A1, - 39166 - 11904: 0xB9A2, - 39168 - 11904: 0xE4CF, - 39170 - 11904: 0xE4CE, - 39171 - 11904: 0xBBE5, - 39173 - 11904: 0xBBE6, - 39175 - 11904: 0xE4D0, - 39176 - 11904: 0xE8BF, - 39177 - 11904: 0xBBE8, - 39178 - 11904: 0xBE69, - 39180 - 11904: 0xBBE7, - 39182 - 11904: 0x9A66, - 39184 - 11904: 0xC05C, - 39185 - 11904: 0xE8C1, - 39186 - 11904: 0xBE6B, - 39187 - 11904: 0xBE6A, - 39188 - 11904: 0xE8C2, - 39189 - 11904: 0xE8C5, - 39190 - 11904: 0xE8C3, - 39191 - 11904: 0xE8C4, - 39192 - 11904: 0xBE6C, - 39193 - 11904: 0x9A67, - 39194 - 11904: 0xC061, - 39195 - 11904: 0xC05F, - 39196 - 11904: 0x9A69, - 39198 - 11904: 0xC05E, - 39199 - 11904: 0xEC5D, - 39201 - 11904: 0xC060, - 39204 - 11904: 0xEC5C, - 39205 - 11904: 0xEF4B, - 39207 - 11904: 0xEC5E, - 39208 - 11904: 0xC05D, - 39209 - 11904: 0xEC5F, - 39210 - 11904: 0xEF4E, - 39211 - 11904: 0xEF4C, - 39212 - 11904: 0xEF4D, - 39213 - 11904: 0xEF52, - 39214 - 11904: 0xC34B, - 39215 - 11904: 0xEF51, - 39216 - 11904: 0xEF54, - 39217 - 11904: 0xEF53, - 39218 - 11904: 0xEF50, - 39219 - 11904: 0xEF4F, - 39221 - 11904: 0xC1FD, - 39223 - 11904: 0x9A6A, - 39224 - 11904: 0x9652, - 39225 - 11904: 0x914D, - 39226 - 11904: 0xF1AE, - 39227 - 11904: 0x9666, - 39228 - 11904: 0xF1AD, - 39229 - 11904: 0xC34A, - 39230 - 11904: 0xC348, - 39231 - 11904: 0xC349, - 39232 - 11904: 0x9F7B, - 39233 - 11904: 0xF1AC, - 39234 - 11904: 0x9A6B, - 39235 - 11904: 0xF3B1, - 39237 - 11904: 0xC443, - 39239 - 11904: 0xF3B0, - 39240 - 11904: 0xF3AF, - 39241 - 11904: 0xC444, - 39242 - 11904: 0xA06C, - 39243 - 11904: 0xF558, - 39244 - 11904: 0xF557, - 39245 - 11904: 0x9667, - 39246 - 11904: 0xF555, - 39248 - 11904: 0xF554, - 39249 - 11904: 0xC4C8, - 39250 - 11904: 0xC4C7, - 39251 - 11904: 0xF559, - 39252 - 11904: 0xF776, - 39253 - 11904: 0xC5B9, - 39254 - 11904: 0xF677, - 39255 - 11904: 0xC557, - 39256 - 11904: 0xF676, - 39257 - 11904: 0xF556, - 39259 - 11904: 0xF777, - 39260 - 11904: 0xC5E4, - 39261 - 11904: 0x9A6C, - 39262 - 11904: 0xC661, - 39263 - 11904: 0xF959, - 39265 - 11904: 0xF9B1, - 39266 - 11904: 0x9A6D, - 39267 - 11904: 0x8BF2, - 39318 - 11904: 0xADBA, - 39319 - 11904: 0xD850, - 39320 - 11904: 0xEF55, - 39321 - 11904: 0xADBB, - 39323 - 11904: 0x966A, - 39324 - 11904: 0xE4D2, - 39325 - 11904: 0xE4D1, - 39326 - 11904: 0xEC60, - 39329 - 11904: 0xEF57, - 39331 - 11904: 0xEF56, - 39332 - 11904: 0xFCEA, - 39333 - 11904: 0xC34C, - 39334 - 11904: 0xF3B2, - 39335 - 11904: 0xF3B3, - 39336 - 11904: 0xC4C9, - 39338 - 11904: 0x966C, - 39339 - 11904: 0xF9B2, - 39340 - 11904: 0xB0A8, - 39341 - 11904: 0xB6BF, - 39342 - 11904: 0xB6BE, - 39343 - 11904: 0xE0E4, - 39344 - 11904: 0xE0E6, - 39345 - 11904: 0xB9A4, - 39346 - 11904: 0xE0E5, - 39347 - 11904: 0xB9A3, - 39348 - 11904: 0xB9A5, - 39349 - 11904: 0xE0E7, - 39352 - 11904: 0x91C4, - 39353 - 11904: 0xE4D4, - 39354 - 11904: 0xE4D6, - 39355 - 11904: 0xE4D5, - 39356 - 11904: 0x9677, - 39357 - 11904: 0xE4D8, - 39361 - 11904: 0xBBE9, - 39362 - 11904: 0xE4D7, - 39363 - 11904: 0xE4D3, - 39364 - 11904: 0x99F4, - 39365 - 11904: 0x9A6F, - 39367 - 11904: 0xE4D9, - 39369 - 11904: 0xE8CC, - 39371 - 11904: 0xE8CF, - 39372 - 11904: 0xE8D1, - 39373 - 11904: 0xE8C7, - 39374 - 11904: 0xE8CB, - 39375 - 11904: 0xE8C8, - 39376 - 11904: 0xBE6E, - 39377 - 11904: 0xBE71, - 39378 - 11904: 0xBE73, - 39379 - 11904: 0xE8C9, - 39380 - 11904: 0xE8CA, - 39381 - 11904: 0xBE72, - 39382 - 11904: 0xE8CD, - 39383 - 11904: 0xE8D0, - 39384 - 11904: 0xE8CE, - 39385 - 11904: 0xBE74, - 39386 - 11904: 0x9FAB, - 39387 - 11904: 0xBE70, - 39388 - 11904: 0xE8C6, - 39389 - 11904: 0xBE6D, - 39391 - 11904: 0xBE6F, - 39392 - 11904: 0x8CBE, - 39393 - 11904: 0x8EC1, - 39394 - 11904: 0xC063, - 39395 - 11904: 0xEC66, - 39396 - 11904: 0xEC64, - 39397 - 11904: 0xEC63, - 39398 - 11904: 0x9555, - 39399 - 11904: 0xEC69, - 39401 - 11904: 0xEC68, - 39402 - 11904: 0xEC67, - 39404 - 11904: 0xEC62, - 39405 - 11904: 0xC062, - 39406 - 11904: 0xEC61, - 39408 - 11904: 0xEC65, - 39409 - 11904: 0xC064, - 39412 - 11904: 0xEF5A, - 39413 - 11904: 0x9152, - 39414 - 11904: 0xEF5E, - 39415 - 11904: 0xEF5B, - 39416 - 11904: 0xEF5D, - 39417 - 11904: 0xEF5C, - 39418 - 11904: 0xEF59, - 39419 - 11904: 0xEF5F, - 39420 - 11904: 0xEF62, - 39421 - 11904: 0xEF60, - 39422 - 11904: 0xEF61, - 39423 - 11904: 0xC240, - 39425 - 11904: 0xC1FE, - 39426 - 11904: 0xEF58, - 39427 - 11904: 0xEF63, - 39428 - 11904: 0xF1B3, - 39429 - 11904: 0xF1B6, - 39430 - 11904: 0xF1B8, - 39431 - 11904: 0xF1B7, - 39433 - 11904: 0xF1B1, - 39434 - 11904: 0xF1B5, - 39435 - 11904: 0xF1B0, - 39436 - 11904: 0x9153, - 39437 - 11904: 0xF1B2, - 39438 - 11904: 0xC34D, - 39439 - 11904: 0xF1AF, - 39440 - 11904: 0x9155, - 39441 - 11904: 0xF1B4, - 39444 - 11904: 0xF3C0, - 39445 - 11904: 0xF3B5, - 39446 - 11904: 0xC445, - 39449 - 11904: 0xC446, - 39450 - 11904: 0xF3B4, - 39451 - 11904: 0xF3B9, - 39452 - 11904: 0xF3BF, - 39453 - 11904: 0xF3B7, - 39454 - 11904: 0xF3BE, - 39455 - 11904: 0x955D, - 39456 - 11904: 0xF3BB, - 39457 - 11904: 0x9671, - 39458 - 11904: 0xF3BA, - 39459 - 11904: 0xF3BD, - 39460 - 11904: 0xF3B8, - 39461 - 11904: 0xF3B6, - 39462 - 11904: 0x9C6D, - 39463 - 11904: 0xF3BC, - 39465 - 11904: 0xF560, - 39466 - 11904: 0xF55E, - 39467 - 11904: 0xC4CA, - 39468 - 11904: 0xF55D, - 39469 - 11904: 0xF563, - 39470 - 11904: 0xF561, - 39471 - 11904: 0x9673, - 39472 - 11904: 0xC4CB, - 39473 - 11904: 0xF55C, - 39474 - 11904: 0xF55A, - 39476 - 11904: 0xF55B, - 39477 - 11904: 0xC4CD, - 39478 - 11904: 0xF55F, - 39479 - 11904: 0xC4CC, - 39480 - 11904: 0xF562, - 39481 - 11904: 0xF678, - 39482 - 11904: 0xF67E, - 39483 - 11904: 0x9154, - 39484 - 11904: 0x9A71, - 39485 - 11904: 0xF679, - 39486 - 11904: 0xC55B, - 39487 - 11904: 0xF6A1, - 39488 - 11904: 0xC55A, - 39489 - 11904: 0xF67D, - 39490 - 11904: 0xF67C, - 39491 - 11904: 0xC559, - 39492 - 11904: 0xF67B, - 39493 - 11904: 0xC558, - 39494 - 11904: 0xF67A, - 39496 - 11904: 0xF77D, - 39497 - 11904: 0xF7A1, - 39498 - 11904: 0xF77E, - 39500 - 11904: 0xF77B, - 39501 - 11904: 0xC5BB, - 39502 - 11904: 0xF778, - 39503 - 11904: 0xF77C, - 39504 - 11904: 0xF7A3, - 39506 - 11904: 0xF7A2, - 39507 - 11904: 0xF779, - 39508 - 11904: 0xF77A, - 39509 - 11904: 0xC5BA, - 39510 - 11904: 0xF852, - 39511 - 11904: 0xC5E7, - 39512 - 11904: 0x9156, - 39513 - 11904: 0xF853, - 39514 - 11904: 0xC5E5, - 39515 - 11904: 0xC5E6, - 39516 - 11904: 0x966D, - 39518 - 11904: 0xF8D3, - 39519 - 11904: 0xC64A, - 39520 - 11904: 0xF976, - 39522 - 11904: 0xC66A, - 39523 - 11904: 0x9557, - 39524 - 11904: 0xF9B3, - 39525 - 11904: 0xC66B, - 39526 - 11904: 0xF9B4, - 39527 - 11904: 0xF9B5, - 39528 - 11904: 0xF9C3, - 39529 - 11904: 0xF9C2, - 39530 - 11904: 0xC67A, - 39531 - 11904: 0xF9CD, - 39532 - 11904: 0x89C6, - 39567 - 11904: 0x89C7, - 39592 - 11904: 0xB0A9, - 39595 - 11904: 0xE0E9, - 39597 - 11904: 0xE0E8, - 39599 - 11904: 0xBBEA, - 39600 - 11904: 0xBBEB, - 39601 - 11904: 0xE4DA, - 39602 - 11904: 0x8A6A, - 39603 - 11904: 0xE8D2, - 39604 - 11904: 0xEC6C, - 39606 - 11904: 0x8B57, - 39607 - 11904: 0xBE75, - 39608 - 11904: 0xC065, - 39609 - 11904: 0xEC6A, - 39610 - 11904: 0x9FE1, - 39611 - 11904: 0xEC6D, - 39612 - 11904: 0xC066, - 39613 - 11904: 0x9B5F, - 39614 - 11904: 0xEF64, - 39615 - 11904: 0xEC6B, - 39616 - 11904: 0xF1B9, - 39617 - 11904: 0xC34E, - 39618 - 11904: 0xF3C1, - 39622 - 11904: 0xF566, - 39623 - 11904: 0xF564, - 39626 - 11904: 0xF565, - 39629 - 11904: 0xF6A2, - 39631 - 11904: 0xC55C, - 39632 - 11904: 0xF7A4, - 39633 - 11904: 0xC5EA, - 39634 - 11904: 0xC5BC, - 39635 - 11904: 0xC5E8, - 39636 - 11904: 0xC5E9, - 39637 - 11904: 0xF8D4, - 39638 - 11904: 0xC662, - 39639 - 11904: 0xA05D, - 39640 - 11904: 0xB0AA, - 39644 - 11904: 0xF1BA, - 39647 - 11904: 0xD449, - 39648 - 11904: 0x915B, - 39649 - 11904: 0xB9A6, - 39650 - 11904: 0x915C, - 39651 - 11904: 0xE4DB, - 39654 - 11904: 0xBBEC, - 39655 - 11904: 0xE4DC, - 39659 - 11904: 0xE8D4, - 39660 - 11904: 0xE8D3, - 39661 - 11904: 0xC068, - 39662 - 11904: 0xBE76, - 39663 - 11904: 0xBE77, - 39665 - 11904: 0xE8D7, - 39666 - 11904: 0xE8D6, - 39667 - 11904: 0xE8D5, - 39668 - 11904: 0x915E, - 39670 - 11904: 0xEC6E, - 39671 - 11904: 0xEC71, - 39673 - 11904: 0xEC70, - 39674 - 11904: 0xEC6F, - 39675 - 11904: 0xC067, - 39676 - 11904: 0xEF68, - 39677 - 11904: 0xEF66, - 39678 - 11904: 0xEF65, - 39679 - 11904: 0x9F5C, - 39681 - 11904: 0xEF67, - 39682 - 11904: 0x9F57, - 39683 - 11904: 0xC34F, - 39684 - 11904: 0xF1BC, - 39685 - 11904: 0xF1BD, - 39686 - 11904: 0xC350, - 39688 - 11904: 0xF1BB, - 39689 - 11904: 0x9F65, - 39690 - 11904: 0xF3C3, - 39691 - 11904: 0xF3C2, - 39692 - 11904: 0xF3C5, - 39693 - 11904: 0xC447, - 39694 - 11904: 0xF3C4, - 39695 - 11904: 0x9A72, - 39696 - 11904: 0xF567, - 39697 - 11904: 0xF569, - 39698 - 11904: 0xF568, - 39700 - 11904: 0x9160, - 39701 - 11904: 0xF6A3, - 39702 - 11904: 0xF6A6, - 39703 - 11904: 0xF6A4, - 39704 - 11904: 0xF6A5, - 39705 - 11904: 0xF7A5, - 39706 - 11904: 0xC5BD, - 39710 - 11904: 0xF854, - 39711 - 11904: 0xF855, - 39712 - 11904: 0xF856, - 39714 - 11904: 0xC64B, - 39715 - 11904: 0xC663, - 39716 - 11904: 0xF9B6, - 39717 - 11904: 0xB0AB, - 39719 - 11904: 0xBE78, - 39720 - 11904: 0xC069, - 39721 - 11904: 0xF1BE, - 39722 - 11904: 0x9F5E, - 39723 - 11904: 0xF7A6, - 39725 - 11904: 0x9161, - 39726 - 11904: 0xF9C4, - 39727 - 11904: 0xD44A, - 39729 - 11904: 0xC67B, - 39730 - 11904: 0xB0AC, - 39731 - 11904: 0xEC72, - 39732 - 11904: 0x9164, - 39733 - 11904: 0xF1BF, - 39735 - 11904: 0xF3C6, - 39737 - 11904: 0x9F41, - 39738 - 11904: 0xF6A7, - 39739 - 11904: 0xF7A7, - 39740 - 11904: 0xB0AD, - 39742 - 11904: 0xE4DD, - 39743 - 11904: 0xE4DE, - 39744 - 11904: 0x9169, - 39745 - 11904: 0xBBED, - 39746 - 11904: 0xBBEE, - 39747 - 11904: 0xE8D9, - 39748 - 11904: 0xBE7A, - 39749 - 11904: 0xBE79, - 39750 - 11904: 0xE8D8, - 39752 - 11904: 0xEF69, - 39754 - 11904: 0xF1C0, - 39755 - 11904: 0xF1C2, - 39756 - 11904: 0xF1C1, - 39757 - 11904: 0xC353, - 39758 - 11904: 0xC352, - 39759 - 11904: 0xC351, - 39760 - 11904: 0x9168, - 39761 - 11904: 0xC55E, - 39762 - 11904: 0xF6A8, - 39764 - 11904: 0xC55D, - 39765 - 11904: 0xF7A9, - 39766 - 11904: 0xF7A8, - 39768 - 11904: 0xC64C, - 39769 - 11904: 0xF8D5, - 39770 - 11904: 0xB3BD, - 39771 - 11904: 0xE0EA, - 39775 - 11904: 0xE4E1, - 39776 - 11904: 0xE4DF, - 39777 - 11904: 0xE4E0, - 39780 - 11904: 0xE8E2, - 39782 - 11904: 0xE8DD, - 39783 - 11904: 0xE8DA, - 39784 - 11904: 0xE8E1, - 39785 - 11904: 0x9A74, - 39788 - 11904: 0xE8E3, - 39791 - 11904: 0xBE7C, - 39792 - 11904: 0xE8E0, - 39793 - 11904: 0xE8DC, - 39796 - 11904: 0xE8DB, - 39797 - 11904: 0xE8DF, - 39798 - 11904: 0xE8DE, - 39799 - 11904: 0xBE7B, - 39802 - 11904: 0xEC7D, - 39803 - 11904: 0xEC78, - 39804 - 11904: 0xEC76, - 39805 - 11904: 0xECA1, - 39806 - 11904: 0xEC77, - 39807 - 11904: 0x96B2, - 39808 - 11904: 0xEC73, - 39809 - 11904: 0x9A75, - 39810 - 11904: 0xEC79, - 39811 - 11904: 0xFDA5, - 39813 - 11904: 0xEC74, - 39814 - 11904: 0xEF72, - 39815 - 11904: 0xEC75, - 39816 - 11904: 0xECA2, - 39819 - 11904: 0x9EE9, - 39821 - 11904: 0x8BBA, - 39822 - 11904: 0x916D, - 39823 - 11904: 0xA060, - 39824 - 11904: 0xEC7C, - 39825 - 11904: 0xC06A, - 39826 - 11904: 0xEC7B, - 39827 - 11904: 0xEC7A, - 39829 - 11904: 0xEC7E, - 39831 - 11904: 0x9FDE, - 39834 - 11904: 0xEF6A, - 39835 - 11904: 0xEF6D, - 39837 - 11904: 0x9FC3, - 39838 - 11904: 0xEF6C, - 39839 - 11904: 0x96B5, - 39840 - 11904: 0xEF74, - 39841 - 11904: 0xEF6F, - 39842 - 11904: 0xEF73, - 39844 - 11904: 0xEF71, - 39845 - 11904: 0xEF70, - 39846 - 11904: 0xEF6E, - 39848 - 11904: 0xEF6B, - 39850 - 11904: 0xC243, - 39851 - 11904: 0xC242, - 39853 - 11904: 0xC244, - 39854 - 11904: 0xC241, - 39855 - 11904: 0xEF75, - 39856 - 11904: 0xA067, - 39861 - 11904: 0xF1C8, - 39862 - 11904: 0xF1CB, - 39864 - 11904: 0xF1C9, - 39865 - 11904: 0xF1CD, - 39869 - 11904: 0xF1CE, - 39871 - 11904: 0xF1C6, - 39872 - 11904: 0xC358, - 39873 - 11904: 0xF1C7, - 39875 - 11904: 0xF1C5, - 39876 - 11904: 0xF1CC, - 39878 - 11904: 0xF1C4, - 39879 - 11904: 0xF1C3, - 39880 - 11904: 0xC357, - 39881 - 11904: 0xC355, - 39882 - 11904: 0xC354, - 39887 - 11904: 0x96B3, - 39891 - 11904: 0xF1CA, - 39892 - 11904: 0xF3CF, - 39893 - 11904: 0xF3D5, - 39894 - 11904: 0xC44A, - 39895 - 11904: 0xF3D0, - 39897 - 11904: 0xF3D3, - 39898 - 11904: 0xF3D7, - 39899 - 11904: 0xC44B, - 39900 - 11904: 0xF3D2, - 39901 - 11904: 0x9A76, - 39902 - 11904: 0xF3CA, - 39904 - 11904: 0xF3C9, - 39905 - 11904: 0xF3D6, - 39906 - 11904: 0xF3CD, - 39908 - 11904: 0xF3CB, - 39909 - 11904: 0xF3D4, - 39910 - 11904: 0xF3CC, - 39911 - 11904: 0xC449, - 39912 - 11904: 0xC448, - 39913 - 11904: 0x95D5, - 39914 - 11904: 0xF3C7, - 39915 - 11904: 0xF3C8, - 39916 - 11904: 0xF3D1, - 39917 - 11904: 0x9ECA, - 39920 - 11904: 0xF3CE, - 39921 - 11904: 0x9A77, - 39924 - 11904: 0x9A78, - 39927 - 11904: 0xF56C, - 39928 - 11904: 0xF56F, - 39933 - 11904: 0xC356, - 39935 - 11904: 0x9170, - 39938 - 11904: 0x916F, - 39941 - 11904: 0xF56D, - 39942 - 11904: 0xF573, - 39943 - 11904: 0xF571, - 39944 - 11904: 0xF56B, - 39945 - 11904: 0xF576, - 39946 - 11904: 0x9FA3, - 39947 - 11904: 0xF56A, - 39948 - 11904: 0x9171, - 39949 - 11904: 0xC4CF, - 39950 - 11904: 0xF572, - 39952 - 11904: 0x96B1, - 39954 - 11904: 0xF56E, - 39955 - 11904: 0xC4CE, - 39956 - 11904: 0xF575, - 39957 - 11904: 0x9F63, - 39959 - 11904: 0xF574, - 39963 - 11904: 0x9F67, - 39964 - 11904: 0xF6AB, - 39965 - 11904: 0xF6AA, - 39967 - 11904: 0x8BB9, - 39968 - 11904: 0x9A7A, - 39969 - 11904: 0xF6B1, - 39971 - 11904: 0xF6AD, - 39972 - 11904: 0xF6B0, - 39973 - 11904: 0xC560, - 39974 - 11904: 0x8B56, - 39976 - 11904: 0xF6AE, - 39977 - 11904: 0xF6AF, - 39979 - 11904: 0xF6A9, - 39980 - 11904: 0xF6AC, - 39981 - 11904: 0xC55F, - 39983 - 11904: 0x9ADA, - 39985 - 11904: 0xC5BF, - 39986 - 11904: 0xF7B4, - 39987 - 11904: 0xF7AF, - 39988 - 11904: 0xF7B3, - 39989 - 11904: 0x96B0, - 39990 - 11904: 0xF7B6, - 39991 - 11904: 0xF7B2, - 39993 - 11904: 0xF7AE, - 39994 - 11904: 0x9A7E, - 39995 - 11904: 0xC5C1, - 39996 - 11904: 0xF7B1, - 39997 - 11904: 0xF7B5, - 39998 - 11904: 0xC5C0, - 39999 - 11904: 0xF7AC, - 40000 - 11904: 0xF570, - 40001 - 11904: 0xF7B0, - 40004 - 11904: 0xF7AD, - 40005 - 11904: 0x9DDE, - 40006 - 11904: 0xF7AA, - 40008 - 11904: 0xF7AB, - 40009 - 11904: 0xC5BE, - 40010 - 11904: 0xF85A, - 40011 - 11904: 0xF85C, - 40012 - 11904: 0xF85F, - 40013 - 11904: 0xF85B, - 40014 - 11904: 0xF860, - 40015 - 11904: 0x96AD, - 40016 - 11904: 0xF859, - 40018 - 11904: 0xF857, - 40019 - 11904: 0x96AE, - 40020 - 11904: 0xC5EB, - 40021 - 11904: 0xF85D, - 40022 - 11904: 0xC5ED, - 40023 - 11904: 0xC5EC, - 40024 - 11904: 0xF858, - 40025 - 11904: 0xF85E, - 40029 - 11904: 0x9EA1, - 40030 - 11904: 0xF8DA, - 40031 - 11904: 0xC64D, - 40032 - 11904: 0xF8DB, - 40034 - 11904: 0xF8D9, - 40035 - 11904: 0xF8D6, - 40038 - 11904: 0xF8D8, - 40039 - 11904: 0xF8D7, - 40040 - 11904: 0xF95A, - 40045 - 11904: 0xF95C, - 40046 - 11904: 0xF95B, - 40049 - 11904: 0xF979, - 40050 - 11904: 0x9E50, - 40051 - 11904: 0xF978, - 40052 - 11904: 0xF977, - 40053 - 11904: 0xF97A, - 40055 - 11904: 0xC673, - 40056 - 11904: 0xC674, - 40057 - 11904: 0xF9CA, - 40058 - 11904: 0xF9CE, - 40059 - 11904: 0x96AF, - 40060 - 11904: 0x8BF4, - 40165 - 11904: 0xB3BE, - 40166 - 11904: 0xDCAF, - 40167 - 11904: 0xE0ED, - 40169 - 11904: 0xB9A7, - 40170 - 11904: 0xE0EB, - 40173 - 11904: 0xE0EC, - 40177 - 11904: 0xE4E2, - 40178 - 11904: 0xE4E3, - 40179 - 11904: 0xBBF1, - 40180 - 11904: 0xBBEF, - 40181 - 11904: 0xE4E4, - 40182 - 11904: 0xBBF0, - 40183 - 11904: 0xE8E8, - 40185 - 11904: 0xE8EB, - 40186 - 11904: 0xE8E5, - 40187 - 11904: 0xE8EC, - 40188 - 11904: 0xE8E4, - 40189 - 11904: 0xE8E6, - 40191 - 11904: 0xE8E7, - 40192 - 11904: 0xE8EA, - 40194 - 11904: 0x9FA4, - 40195 - 11904: 0xBEA1, - 40196 - 11904: 0xE8EF, - 40197 - 11904: 0xE8EE, - 40198 - 11904: 0xBE7D, - 40199 - 11904: 0xE8E9, - 40200 - 11904: 0xE8ED, - 40201 - 11904: 0xBE7E, - 40204 - 11904: 0x96BD, - 40208 - 11904: 0xECAC, - 40210 - 11904: 0xC06F, - 40212 - 11904: 0xECA7, - 40213 - 11904: 0xC06B, - 40214 - 11904: 0x96F4, - 40215 - 11904: 0xECA4, - 40216 - 11904: 0xECAA, - 40217 - 11904: 0xECAD, - 40219 - 11904: 0xC070, - 40221 - 11904: 0xECA9, - 40222 - 11904: 0xECA6, - 40223 - 11904: 0xECAE, - 40224 - 11904: 0xECA5, - 40225 - 11904: 0x96B8, - 40226 - 11904: 0xECAB, - 40227 - 11904: 0xC06C, - 40229 - 11904: 0xECA3, - 40230 - 11904: 0xC06D, - 40232 - 11904: 0xC06E, - 40233 - 11904: 0xECA8, - 40237 - 11904: 0xEFA9, - 40238 - 11904: 0xEF7A, - 40239 - 11904: 0xEF7B, - 40240 - 11904: 0xEF7E, - 40241 - 11904: 0xEF7C, - 40243 - 11904: 0xEF76, - 40244 - 11904: 0xFAA1, - 40246 - 11904: 0xEF79, - 40247 - 11904: 0xEFA5, - 40248 - 11904: 0xEF7D, - 40249 - 11904: 0x91A7, - 40251 - 11904: 0xC245, - 40253 - 11904: 0xEFA7, - 40254 - 11904: 0xEFA4, - 40255 - 11904: 0xC246, - 40256 - 11904: 0xEFA6, - 40257 - 11904: 0xEF77, - 40258 - 11904: 0xEFA2, - 40259 - 11904: 0xEFA3, - 40260 - 11904: 0xA05E, - 40261 - 11904: 0xEFA1, - 40265 - 11904: 0x9A7D, - 40266 - 11904: 0xF1D2, - 40267 - 11904: 0xF1D4, - 40268 - 11904: 0xF1D7, - 40270 - 11904: 0x8948, - 40271 - 11904: 0xF1D1, - 40272 - 11904: 0x9EB1, - 40273 - 11904: 0xC359, - 40274 - 11904: 0xF1D9, - 40275 - 11904: 0xF1D0, - 40276 - 11904: 0xF1DA, - 40278 - 11904: 0xF1D6, - 40279 - 11904: 0xF1D8, - 40280 - 11904: 0xF1DC, - 40281 - 11904: 0xF1D5, - 40282 - 11904: 0xF1DD, - 40283 - 11904: 0xF1D3, - 40284 - 11904: 0xF1CF, - 40285 - 11904: 0xC35A, - 40286 - 11904: 0x9DDB, - 40287 - 11904: 0xF1DB, - 40288 - 11904: 0xC35B, - 40289 - 11904: 0xC44D, - 40295 - 11904: 0xEF78, - 40296 - 11904: 0xF3F1, - 40297 - 11904: 0xF3E8, - 40298 - 11904: 0xC44F, - 40299 - 11904: 0xF3E4, - 40300 - 11904: 0xC450, - 40301 - 11904: 0x95BF, - 40302 - 11904: 0x8A73, - 40303 - 11904: 0xF3ED, - 40304 - 11904: 0xF3E7, - 40305 - 11904: 0xF3DD, - 40306 - 11904: 0xC44E, - 40307 - 11904: 0xF3EA, - 40308 - 11904: 0xF3E5, - 40309 - 11904: 0xF3E6, - 40311 - 11904: 0xF3D8, - 40312 - 11904: 0xF3DF, - 40313 - 11904: 0xF3EE, - 40315 - 11904: 0xF3EB, - 40316 - 11904: 0x9EFE, - 40317 - 11904: 0xF3E3, - 40318 - 11904: 0x917A, - 40319 - 11904: 0xF3EF, - 40320 - 11904: 0xF3DE, - 40321 - 11904: 0xF3D9, - 40322 - 11904: 0xF3EC, - 40323 - 11904: 0x917B, - 40324 - 11904: 0xF3DB, - 40325 - 11904: 0xF3E9, - 40326 - 11904: 0xF3E0, - 40327 - 11904: 0xF3F0, - 40328 - 11904: 0xF3DC, - 40329 - 11904: 0xC44C, - 40330 - 11904: 0xF3DA, - 40331 - 11904: 0xF3E1, - 40332 - 11904: 0xF3E2, - 40336 - 11904: 0xF57D, - 40338 - 11904: 0xF57B, - 40339 - 11904: 0x9AA3, - 40340 - 11904: 0xF5A2, - 40342 - 11904: 0xF5AE, - 40343 - 11904: 0xF5A5, - 40344 - 11904: 0xF57C, - 40345 - 11904: 0xF578, - 40346 - 11904: 0xF5A7, - 40347 - 11904: 0xF57E, - 40348 - 11904: 0xF5A3, - 40349 - 11904: 0xF57A, - 40350 - 11904: 0xF5AA, - 40351 - 11904: 0xF577, - 40352 - 11904: 0xF5A1, - 40353 - 11904: 0xF5A6, - 40354 - 11904: 0xF5A8, - 40355 - 11904: 0xF5AB, - 40356 - 11904: 0xF579, - 40357 - 11904: 0x96C2, - 40358 - 11904: 0xF5AF, - 40359 - 11904: 0xF5B0, - 40360 - 11904: 0xF5A9, - 40361 - 11904: 0xF5AD, - 40362 - 11904: 0xF5A4, - 40363 - 11904: 0x9F77, - 40364 - 11904: 0xF6C1, - 40365 - 11904: 0xF6C4, - 40367 - 11904: 0xC561, - 40369 - 11904: 0xF6C3, - 40370 - 11904: 0xF6C8, - 40371 - 11904: 0xF6C6, - 40372 - 11904: 0xC562, - 40373 - 11904: 0xF6BD, - 40374 - 11904: 0xF6B3, - 40375 - 11904: 0xF6B2, - 40376 - 11904: 0xC564, - 40377 - 11904: 0xF6BF, - 40378 - 11904: 0xF6C0, - 40379 - 11904: 0xF6BC, - 40380 - 11904: 0xF6B4, - 40381 - 11904: 0x9AA4, - 40382 - 11904: 0xF6B9, - 40383 - 11904: 0xF5AC, - 40384 - 11904: 0x9AA5, - 40385 - 11904: 0xF6B5, - 40386 - 11904: 0xC563, - 40387 - 11904: 0xF6BB, - 40388 - 11904: 0x91A1, - 40389 - 11904: 0xF6BA, - 40391 - 11904: 0xF6B6, - 40392 - 11904: 0xF6C2, - 40393 - 11904: 0x89B8, - 40394 - 11904: 0xF6B7, - 40395 - 11904: 0xF7BB, - 40396 - 11904: 0xF6C5, - 40397 - 11904: 0xF6C7, - 40398 - 11904: 0xF6BE, - 40399 - 11904: 0xF6B8, - 40400 - 11904: 0xF7BC, - 40401 - 11904: 0xF7BE, - 40402 - 11904: 0xF7B8, - 40403 - 11904: 0xC5C2, - 40404 - 11904: 0x9173, - 40405 - 11904: 0xF7C5, - 40406 - 11904: 0xF7C3, - 40407 - 11904: 0xC5C3, - 40408 - 11904: 0xF7C2, - 40409 - 11904: 0xF7C1, - 40410 - 11904: 0xF7BA, - 40411 - 11904: 0xF7B7, - 40412 - 11904: 0xF7BD, - 40413 - 11904: 0xF7C6, - 40414 - 11904: 0xF7B9, - 40415 - 11904: 0xF7BF, - 40417 - 11904: 0xF869, - 40418 - 11904: 0xF86E, - 40419 - 11904: 0xF864, - 40420 - 11904: 0xF867, - 40421 - 11904: 0xC5EE, - 40422 - 11904: 0xF86B, - 40424 - 11904: 0xF872, - 40425 - 11904: 0xF7C0, - 40427 - 11904: 0xF865, - 40428 - 11904: 0xF86F, - 40429 - 11904: 0xF873, - 40430 - 11904: 0xF86A, - 40431 - 11904: 0xF863, - 40432 - 11904: 0xF86D, - 40434 - 11904: 0xF86C, - 40435 - 11904: 0xF871, - 40436 - 11904: 0xF870, - 40437 - 11904: 0xF7C4, - 40438 - 11904: 0xF868, - 40439 - 11904: 0xF862, - 40440 - 11904: 0xF866, - 40441 - 11904: 0xC64E, - 40442 - 11904: 0xC64F, - 40443 - 11904: 0xF861, - 40444 - 11904: 0x9AA6, - 40445 - 11904: 0xF8E6, - 40446 - 11904: 0xF8DD, - 40447 - 11904: 0xF8E5, - 40448 - 11904: 0xF8E2, - 40449 - 11904: 0xF8E3, - 40450 - 11904: 0xF8DC, - 40451 - 11904: 0xF8DF, - 40452 - 11904: 0xF8E7, - 40453 - 11904: 0xF8E1, - 40454 - 11904: 0xF8E0, - 40455 - 11904: 0xF8DE, - 40457 - 11904: 0xF8E4, - 40458 - 11904: 0x89BD, - 40459 - 11904: 0xF95D, - 40460 - 11904: 0x89B9, - 40461 - 11904: 0xF95E, - 40462 - 11904: 0x917D, - 40463 - 11904: 0xF960, - 40464 - 11904: 0xF95F, - 40465 - 11904: 0xF962, - 40466 - 11904: 0xF961, - 40467 - 11904: 0xF97C, - 40468 - 11904: 0xF97B, - 40469 - 11904: 0xF9B7, - 40471 - 11904: 0xF9B8, - 40472 - 11904: 0x96BB, - 40473 - 11904: 0xF9C5, - 40474 - 11904: 0xC678, - 40475 - 11904: 0xC67C, - 40476 - 11904: 0x9FF2, - 40477 - 11904: 0xF9CF, - 40478 - 11904: 0xC67D, - 40479 - 11904: 0x8BF5, - 40565 - 11904: 0xB3BF, - 40569 - 11904: 0xC4D0, - 40570 - 11904: 0xF6C9, - 40571 - 11904: 0x9AA9, - 40572 - 11904: 0xC650, - 40573 - 11904: 0xC651, - 40575 - 11904: 0xB3C0, - 40576 - 11904: 0xE0EE, - 40577 - 11904: 0x9F54, - 40578 - 11904: 0xB9A8, - 40579 - 11904: 0xE8F0, - 40580 - 11904: 0x9FE3, - 40581 - 11904: 0x9EED, - 40582 - 11904: 0xECB0, - 40583 - 11904: 0xECB1, - 40584 - 11904: 0xECAF, - 40585 - 11904: 0xEFAB, - 40586 - 11904: 0xEFAA, - 40587 - 11904: 0xC247, - 40588 - 11904: 0xF1DF, - 40589 - 11904: 0xEFAC, - 40590 - 11904: 0xF1DE, - 40592 - 11904: 0x91AA, - 40593 - 11904: 0xF3F3, - 40594 - 11904: 0xC451, - 40595 - 11904: 0xC453, - 40596 - 11904: 0xF3F2, - 40597 - 11904: 0x91AB, - 40598 - 11904: 0xA070, - 40599 - 11904: 0xC452, - 40600 - 11904: 0x9F6D, - 40601 - 11904: 0xF5B1, - 40602 - 11904: 0xF5B3, - 40603 - 11904: 0xF5B2, - 40604 - 11904: 0xF6CA, - 40605 - 11904: 0xC565, - 40606 - 11904: 0x91AC, - 40607 - 11904: 0xC5EF, - 40608 - 11904: 0xF8E8, - 40609 - 11904: 0xF963, - 40610 - 11904: 0x91AD, - 40612 - 11904: 0xF9D2, - 40613 - 11904: 0xB3C1, - 40614 - 11904: 0xA0FD, - 40615 - 11904: 0xE4E5, - 40616 - 11904: 0x9FE2, - 40617 - 11904: 0xBEA2, - 40618 - 11904: 0x91AF, - 40619 - 11904: 0x9E41, - 40620 - 11904: 0x9AAA, - 40621 - 11904: 0xECB3, - 40622 - 11904: 0xECB2, - 40623 - 11904: 0x91B0, - 40624 - 11904: 0xEFAD, - 40625 - 11904: 0x9AAB, - 40628 - 11904: 0xC454, - 40629 - 11904: 0xC4D1, - 40630 - 11904: 0xF7C7, - 40631 - 11904: 0xF9CB, - 40635 - 11904: 0xB3C2, - 40636 - 11904: 0xBBF2, - 40637 - 11904: 0x9AAC, - 40638 - 11904: 0xBEA3, - 40639 - 11904: 0x9A4A, - 40640 - 11904: 0xF3F4, - 40641 - 11904: 0x91B2, - 40642 - 11904: 0xF874, - 40643 - 11904: 0xB6C0, - 40644 - 11904: 0x8BF6, - 40646 - 11904: 0x9AAD, - 40647 - 11904: 0x89B6, - 40648 - 11904: 0xEFAE, - 40652 - 11904: 0xC664, - 40653 - 11904: 0xB6C1, - 40654 - 11904: 0xBEA4, - 40655 - 11904: 0xC248, - 40656 - 11904: 0xF875, - 40657 - 11904: 0xB6C2, - 40659 - 11904: 0xE8F1, - 40660 - 11904: 0xC072, - 40661 - 11904: 0xECB4, - 40662 - 11904: 0xECB5, - 40664 - 11904: 0xC071, - 40666 - 11904: 0xEFAF, - 40667 - 11904: 0xC24C, - 40668 - 11904: 0xC24A, - 40669 - 11904: 0xC24B, - 40670 - 11904: 0xC249, - 40671 - 11904: 0xF1E0, - 40672 - 11904: 0xC35C, - 40674 - 11904: 0x9AAF, - 40676 - 11904: 0xF5B5, - 40677 - 11904: 0xF5B4, - 40678 - 11904: 0xF5B7, - 40679 - 11904: 0xF5B6, - 40680 - 11904: 0xC4D2, - 40683 - 11904: 0xF6CB, - 40685 - 11904: 0xF6CD, - 40686 - 11904: 0xF6CC, - 40687 - 11904: 0xC566, - 40688 - 11904: 0xF7C8, - 40689 - 11904: 0x9AB0, - 40690 - 11904: 0xF876, - 40691 - 11904: 0xF877, - 40692 - 11904: 0xC5F0, - 40693 - 11904: 0xF964, - 40694 - 11904: 0xF97D, - 40695 - 11904: 0xC675, - 40696 - 11904: 0x9AB1, - 40697 - 11904: 0xDCB0, - 40698 - 11904: 0xECB6, - 40699 - 11904: 0xEFB0, - 40700 - 11904: 0xF3F5, - 40701 - 11904: 0xE0EF, - 40702 - 11904: 0x9AA1, - 40703 - 11904: 0xEFB1, - 40704 - 11904: 0xF1E2, - 40705 - 11904: 0xF1E1, - 40706 - 11904: 0x91B9, - 40710 - 11904: 0xF878, - 40711 - 11904: 0xC652, - 40712 - 11904: 0x91BA, - 40713 - 11904: 0xF965, - 40714 - 11904: 0xF97E, - 40718 - 11904: 0xB9A9, - 40719 - 11904: 0xE8F2, - 40720 - 11904: 0xE8F3, - 40722 - 11904: 0xECB7, - 40723 - 11904: 0xB9AA, - 40725 - 11904: 0xC35D, - 40726 - 11904: 0xF1E3, - 40727 - 11904: 0x9F66, - 40728 - 11904: 0xF6CF, - 40729 - 11904: 0xC567, - 40730 - 11904: 0xF6D0, - 40731 - 11904: 0xF6CE, - 40732 - 11904: 0xF879, - 40734 - 11904: 0xF8E9, - 40736 - 11904: 0xB9AB, - 40738 - 11904: 0xEFB4, - 40739 - 11904: 0xEFB3, - 40740 - 11904: 0xEFB2, - 40741 - 11904: 0xF1E4, - 40742 - 11904: 0xA041, - 40743 - 11904: 0x8BB7, - 40744 - 11904: 0xF1E8, - 40745 - 11904: 0xF1E7, - 40746 - 11904: 0xF1E6, - 40747 - 11904: 0xF1E5, - 40748 - 11904: 0xC35E, - 40749 - 11904: 0xF3F6, - 40750 - 11904: 0xF5B9, - 40751 - 11904: 0xC4D3, - 40752 - 11904: 0xF5B8, - 40753 - 11904: 0xF6D1, - 40754 - 11904: 0xF7CB, - 40755 - 11904: 0xF7CA, - 40756 - 11904: 0xC5C4, - 40757 - 11904: 0xF7C9, - 40758 - 11904: 0xF87C, - 40759 - 11904: 0xF87B, - 40760 - 11904: 0xF87A, - 40761 - 11904: 0x91C0, - 40763 - 11904: 0xBBF3, - 40765 - 11904: 0xECB8, - 40766 - 11904: 0xC24D, - 40768 - 11904: 0xF3F7, - 40769 - 11904: 0xF3F8, - 40770 - 11904: 0xF7CC, - 40771 - 11904: 0xF87D, - 40772 - 11904: 0x9AB3, - 40773 - 11904: 0x91C3, - 40774 - 11904: 0xF8EA, - 40775 - 11904: 0xF966, - 40776 - 11904: 0xF9B9, - 40777 - 11904: 0xF9D4, - 40778 - 11904: 0xBBF4, - 40779 - 11904: 0xC24E, - 40780 - 11904: 0xF1E9, - 40781 - 11904: 0xF3F9, - 40782 - 11904: 0xF6D2, - 40783 - 11904: 0xF87E, - 40784 - 11904: 0xA0FC, - 40786 - 11904: 0xBEA6, - 40787 - 11904: 0x9FEE, - 40788 - 11904: 0xEFB5, - 40789 - 11904: 0xF1EA, - 40790 - 11904: 0xF3FA, - 40791 - 11904: 0xF3FB, - 40792 - 11904: 0xF3FC, - 40793 - 11904: 0xF5BE, - 40794 - 11904: 0x9F69, - 40795 - 11904: 0xF5BA, - 40796 - 11904: 0xC568, - 40797 - 11904: 0xF5BD, - 40798 - 11904: 0xF5BC, - 40799 - 11904: 0xC4D4, - 40800 - 11904: 0xF5BB, - 40801 - 11904: 0xC4D6, - 40802 - 11904: 0x91C8, - 40803 - 11904: 0xC4D5, - 40804 - 11904: 0xF6D4, - 40805 - 11904: 0xF6D3, - 40806 - 11904: 0xC569, - 40807 - 11904: 0xC56A, - 40809 - 11904: 0x91C9, - 40810 - 11904: 0xC5C6, - 40811 - 11904: 0xF7CD, - 40812 - 11904: 0xC5C5, - 40814 - 11904: 0xF8A3, - 40815 - 11904: 0xF8A4, - 40816 - 11904: 0xF8A2, - 40817 - 11904: 0xF8A1, - 40818 - 11904: 0xC654, - 40820 - 11904: 0xF8EB, - 40821 - 11904: 0xF8EC, - 40822 - 11904: 0xF8ED, - 40823 - 11904: 0xC653, - 40824 - 11904: 0xF967, - 40825 - 11904: 0xF96A, - 40826 - 11904: 0xF969, - 40827 - 11904: 0xF968, - 40830 - 11904: 0xF9D3, - 40831 - 11904: 0x8DE6, - 40845 - 11904: 0xC073, - 40846 - 11904: 0x91CB, - 40848 - 11904: 0xC365, - 40849 - 11904: 0xF5BF, - 40850 - 11904: 0xF6D5, - 40852 - 11904: 0xC5C7, - 40853 - 11904: 0xF7CE, - 40854 - 11904: 0x87AC, - 40855 - 11904: 0x87A4, - 40856 - 11904: 0xF9D5, - 40857 - 11904: 0x89C8, - 40860 - 11904: 0xC074, - 40863 - 11904: 0x8DAA, - 40864 - 11904: 0xEFB6, - 40866 - 11904: 0xF7CF, - 40868 - 11904: 0xF9A1, - 40869 - 11904: 0x9FDD, - 40870 - 11904: 0x8C43, - 40871 - 11904: 0x8C6D, - 40872 - 11904: 0x8C74, - 40873 - 11904: 0x8CB7, - 40874 - 11904: 0x8CB9, - 40875 - 11904: 0x8CBB, - 40876 - 11904: 0x8CC0, - 40877 - 11904: 0x8CD7, - 40878 - 11904: 0x8CD8, - 40879 - 11904: 0x8CDA, - 40880 - 11904: 0xC8A1, - 40881 - 11904: 0xC8A3, - 40882 - 11904: 0x8CED, - 40883 - 11904: 0x8D48, - 40903 - 11904: 0x87C2, - 40904 - 11904: 0x87D2, - 40905 - 11904: 0x87D6, - 40906 - 11904: 0x87DA, - 40907 - 11904: 0x87DF, -} - -const encode2Low, encode2High = 7870, 10046 - -var encode2 = [...]uint16{ - 7870 - 7870: 0x8863, - 7871 - 7870: 0x88A4, - 7872 - 7870: 0x8865, - 7873 - 7870: 0x88A6, - 8211 - 7870: 0xA156, - 8212 - 7870: 0xA158, - 8216 - 7870: 0xA1A5, - 8217 - 7870: 0xA1A6, - 8220 - 7870: 0xA1A7, - 8221 - 7870: 0xA1A8, - 8229 - 7870: 0xA14C, - 8230 - 7870: 0xA14B, - 8231 - 7870: 0xA145, - 8242 - 7870: 0xA1AC, - 8245 - 7870: 0xA1AB, - 8251 - 7870: 0xA1B0, - 8364 - 7870: 0xA3E1, - 8451 - 7870: 0xA24A, - 8453 - 7870: 0xA1C1, - 8457 - 7870: 0xA24B, - 8470 - 7870: 0xC8D2, - 8481 - 7870: 0xC8D3, - 8544 - 7870: 0xA2B9, - 8545 - 7870: 0xA2BA, - 8546 - 7870: 0xA2BB, - 8547 - 7870: 0xA2BC, - 8548 - 7870: 0xA2BD, - 8549 - 7870: 0xA2BE, - 8550 - 7870: 0xA2BF, - 8551 - 7870: 0xA2C0, - 8552 - 7870: 0xA2C1, - 8553 - 7870: 0xA2C2, - 8560 - 7870: 0xC6B5, - 8561 - 7870: 0xC6B6, - 8562 - 7870: 0xC6B7, - 8563 - 7870: 0xC6B8, - 8564 - 7870: 0xC6B9, - 8565 - 7870: 0xC6BA, - 8566 - 7870: 0xC6BB, - 8567 - 7870: 0xC6BC, - 8568 - 7870: 0xC6BD, - 8569 - 7870: 0xC6BE, - 8592 - 7870: 0xA1F6, - 8593 - 7870: 0xA1F4, - 8594 - 7870: 0xA1F7, - 8595 - 7870: 0xA1F5, - 8598 - 7870: 0xA1F8, - 8599 - 7870: 0xA1F9, - 8600 - 7870: 0xA1FB, - 8601 - 7870: 0xA1FA, - 8632 - 7870: 0xC877, - 8633 - 7870: 0xC878, - 8679 - 7870: 0xC876, - 8725 - 7870: 0xA241, - 8730 - 7870: 0xA1D4, - 8734 - 7870: 0xA1DB, - 8735 - 7870: 0xA1E8, - 8736 - 7870: 0xA1E7, - 8739 - 7870: 0xA1FD, - 8741 - 7870: 0xA1FC, - 8745 - 7870: 0xA1E4, - 8746 - 7870: 0xA1E5, - 8747 - 7870: 0xA1EC, - 8750 - 7870: 0xA1ED, - 8756 - 7870: 0xA1EF, - 8757 - 7870: 0xA1EE, - 8786 - 7870: 0xA1DC, - 8800 - 7870: 0xA1DA, - 8801 - 7870: 0xA1DD, - 8806 - 7870: 0xA1D8, - 8807 - 7870: 0xA1D9, - 8853 - 7870: 0xA1F2, - 8857 - 7870: 0xA1F3, - 8869 - 7870: 0xA1E6, - 8895 - 7870: 0xA1E9, - 9178 - 7870: 0x88A9, - 9179 - 7870: 0x88AA, - 9216 - 7870: 0xA3C0, - 9217 - 7870: 0xA3C1, - 9218 - 7870: 0xA3C2, - 9219 - 7870: 0xA3C3, - 9220 - 7870: 0xA3C4, - 9221 - 7870: 0xA3C5, - 9222 - 7870: 0xA3C6, - 9223 - 7870: 0xA3C7, - 9224 - 7870: 0xA3C8, - 9225 - 7870: 0xA3C9, - 9226 - 7870: 0xA3CA, - 9227 - 7870: 0xA3CB, - 9228 - 7870: 0xA3CC, - 9229 - 7870: 0xA3CD, - 9230 - 7870: 0xA3CE, - 9231 - 7870: 0xA3CF, - 9232 - 7870: 0xA3D0, - 9233 - 7870: 0xA3D1, - 9234 - 7870: 0xA3D2, - 9235 - 7870: 0xA3D3, - 9236 - 7870: 0xA3D4, - 9237 - 7870: 0xA3D5, - 9238 - 7870: 0xA3D6, - 9239 - 7870: 0xA3D7, - 9240 - 7870: 0xA3D8, - 9241 - 7870: 0xA3D9, - 9242 - 7870: 0xA3DA, - 9243 - 7870: 0xA3DB, - 9244 - 7870: 0xA3DC, - 9245 - 7870: 0xA3DD, - 9246 - 7870: 0xA3DE, - 9247 - 7870: 0xA3DF, - 9249 - 7870: 0xA3E0, - 9312 - 7870: 0xC6A1, - 9313 - 7870: 0xC6A2, - 9314 - 7870: 0xC6A3, - 9315 - 7870: 0xC6A4, - 9316 - 7870: 0xC6A5, - 9317 - 7870: 0xC6A6, - 9318 - 7870: 0xC6A7, - 9319 - 7870: 0xC6A8, - 9320 - 7870: 0xC6A9, - 9321 - 7870: 0xC6AA, - 9332 - 7870: 0xC6AB, - 9333 - 7870: 0xC6AC, - 9334 - 7870: 0xC6AD, - 9335 - 7870: 0xC6AE, - 9336 - 7870: 0xC6AF, - 9337 - 7870: 0xC6B0, - 9338 - 7870: 0xC6B1, - 9339 - 7870: 0xC6B2, - 9340 - 7870: 0xC6B3, - 9341 - 7870: 0xC6B4, - 9472 - 7870: 0xA277, - 9474 - 7870: 0xA278, - 9484 - 7870: 0xA27A, - 9488 - 7870: 0xA27B, - 9492 - 7870: 0xA27C, - 9496 - 7870: 0xA27D, - 9500 - 7870: 0xA275, - 9508 - 7870: 0xA274, - 9516 - 7870: 0xA273, - 9524 - 7870: 0xA272, - 9532 - 7870: 0xA271, - 9552 - 7870: 0xF9F9, - 9553 - 7870: 0xF9F8, - 9554 - 7870: 0xF9E6, - 9555 - 7870: 0xF9EF, - 9556 - 7870: 0xF9DD, - 9557 - 7870: 0xF9E8, - 9558 - 7870: 0xF9F1, - 9559 - 7870: 0xF9DF, - 9560 - 7870: 0xF9EC, - 9561 - 7870: 0xF9F5, - 9562 - 7870: 0xF9E3, - 9563 - 7870: 0xF9EE, - 9564 - 7870: 0xF9F7, - 9565 - 7870: 0xF9E5, - 9566 - 7870: 0xF9E9, - 9567 - 7870: 0xF9F2, - 9568 - 7870: 0xF9E0, - 9569 - 7870: 0xF9EB, - 9570 - 7870: 0xF9F4, - 9571 - 7870: 0xF9E2, - 9572 - 7870: 0xF9E7, - 9573 - 7870: 0xF9F0, - 9574 - 7870: 0xF9DE, - 9575 - 7870: 0xF9ED, - 9576 - 7870: 0xF9F6, - 9577 - 7870: 0xF9E4, - 9578 - 7870: 0xF9EA, - 9579 - 7870: 0xF9F3, - 9580 - 7870: 0xF9E1, - 9581 - 7870: 0xF9FA, - 9582 - 7870: 0xF9FB, - 9583 - 7870: 0xF9FD, - 9584 - 7870: 0xF9FC, - 9585 - 7870: 0xA2AC, - 9586 - 7870: 0xA2AD, - 9587 - 7870: 0xA2AE, - 9588 - 7870: 0xA15A, - 9601 - 7870: 0xA262, - 9602 - 7870: 0xA263, - 9603 - 7870: 0xA264, - 9604 - 7870: 0xA265, - 9605 - 7870: 0xA266, - 9606 - 7870: 0xA267, - 9607 - 7870: 0xA268, - 9608 - 7870: 0xA269, - 9609 - 7870: 0xA270, - 9610 - 7870: 0xA26F, - 9611 - 7870: 0xA26E, - 9612 - 7870: 0xA26D, - 9613 - 7870: 0xA26C, - 9614 - 7870: 0xA26B, - 9615 - 7870: 0xA26A, - 9620 - 7870: 0xA276, - 9621 - 7870: 0xA279, - 9632 - 7870: 0xA1BD, - 9633 - 7870: 0xA1BC, - 9650 - 7870: 0xA1B6, - 9651 - 7870: 0xA1B5, - 9660 - 7870: 0xA1BF, - 9661 - 7870: 0xA1BE, - 9670 - 7870: 0xA1BB, - 9671 - 7870: 0xA1BA, - 9675 - 7870: 0xA1B3, - 9678 - 7870: 0xA1B7, - 9679 - 7870: 0xA1B4, - 9698 - 7870: 0xA2A8, - 9699 - 7870: 0xA2A9, - 9700 - 7870: 0xA2AB, - 9701 - 7870: 0xA2AA, - 9733 - 7870: 0xA1B9, - 9734 - 7870: 0xA1B8, - 9792 - 7870: 0xA1F0, - 9794 - 7870: 0xA1F1, - 10045 - 7870: 0xC6E6, -} - -const encode3Low, encode3High = 167, 1106 - -var encode3 = [...]uint16{ - 167 - 167: 0xA1B1, - 168 - 167: 0xC6D8, - 175 - 167: 0xA1C2, - 176 - 167: 0xA258, - 177 - 167: 0xA1D3, - 183 - 167: 0xA150, - 192 - 167: 0x8859, - 193 - 167: 0x8857, - 200 - 167: 0x885D, - 201 - 167: 0x885B, - 202 - 167: 0x8866, - 210 - 167: 0x8861, - 211 - 167: 0x885F, - 215 - 167: 0xA1D1, - 224 - 167: 0x886A, - 225 - 167: 0x8868, - 232 - 167: 0x886F, - 233 - 167: 0x886D, - 234 - 167: 0x88A7, - 236 - 167: 0x8873, - 237 - 167: 0x8871, - 242 - 167: 0x8877, - 243 - 167: 0x8875, - 247 - 167: 0xA1D2, - 248 - 167: 0xC8FB, - 249 - 167: 0x887B, - 250 - 167: 0x8879, - 252 - 167: 0x88A2, - 256 - 167: 0x8856, - 257 - 167: 0x8867, - 274 - 167: 0x885A, - 275 - 167: 0x886C, - 282 - 167: 0x885C, - 283 - 167: 0x886E, - 299 - 167: 0x8870, - 331 - 167: 0xC8FC, - 332 - 167: 0x885E, - 333 - 167: 0x8874, - 339 - 167: 0xC8FA, - 363 - 167: 0x8878, - 461 - 167: 0x8858, - 462 - 167: 0x8869, - 464 - 167: 0x8872, - 465 - 167: 0x8860, - 466 - 167: 0x8876, - 468 - 167: 0x887A, - 470 - 167: 0x887C, - 472 - 167: 0x887D, - 474 - 167: 0x887E, - 476 - 167: 0x88A1, - 592 - 167: 0xC8F6, - 593 - 167: 0x886B, - 596 - 167: 0xC8F8, - 603 - 167: 0xC8F7, - 609 - 167: 0x88A8, - 618 - 167: 0xC8FE, - 629 - 167: 0xC8F9, - 643 - 167: 0xC8F5, - 650 - 167: 0xC8FD, - 710 - 167: 0xC6D9, - 711 - 167: 0xA3BE, - 713 - 167: 0xA3BC, - 714 - 167: 0xA3BD, - 715 - 167: 0xA3BF, - 717 - 167: 0xA1C5, - 729 - 167: 0xA3BB, - 913 - 167: 0xA344, - 914 - 167: 0xA345, - 915 - 167: 0xA346, - 916 - 167: 0xA347, - 917 - 167: 0xA348, - 918 - 167: 0xA349, - 919 - 167: 0xA34A, - 920 - 167: 0xA34B, - 921 - 167: 0xA34C, - 922 - 167: 0xA34D, - 923 - 167: 0xA34E, - 924 - 167: 0xA34F, - 925 - 167: 0xA350, - 926 - 167: 0xA351, - 927 - 167: 0xA352, - 928 - 167: 0xA353, - 929 - 167: 0xA354, - 931 - 167: 0xA355, - 932 - 167: 0xA356, - 933 - 167: 0xA357, - 934 - 167: 0xA358, - 935 - 167: 0xA359, - 936 - 167: 0xA35A, - 937 - 167: 0xA35B, - 945 - 167: 0xA35C, - 946 - 167: 0xA35D, - 947 - 167: 0xA35E, - 948 - 167: 0xA35F, - 949 - 167: 0xA360, - 950 - 167: 0xA361, - 951 - 167: 0xA362, - 952 - 167: 0xA363, - 953 - 167: 0xA364, - 954 - 167: 0xA365, - 955 - 167: 0xA366, - 956 - 167: 0xA367, - 957 - 167: 0xA368, - 958 - 167: 0xA369, - 959 - 167: 0xA36A, - 960 - 167: 0xA36B, - 961 - 167: 0xA36C, - 963 - 167: 0xA36D, - 964 - 167: 0xA36E, - 965 - 167: 0xA36F, - 966 - 167: 0xA370, - 967 - 167: 0xA371, - 968 - 167: 0xA372, - 969 - 167: 0xA373, - 1025 - 167: 0xC7F9, - 1040 - 167: 0xC7F3, - 1041 - 167: 0xC7F4, - 1042 - 167: 0xC7F5, - 1043 - 167: 0xC7F6, - 1044 - 167: 0xC7F7, - 1045 - 167: 0xC7F8, - 1046 - 167: 0xC7FA, - 1047 - 167: 0xC7FB, - 1048 - 167: 0xC7FC, - 1049 - 167: 0xC7FD, - 1050 - 167: 0xC7FE, - 1051 - 167: 0xC840, - 1052 - 167: 0xC841, - 1053 - 167: 0xC842, - 1054 - 167: 0xC843, - 1055 - 167: 0xC844, - 1056 - 167: 0xC845, - 1057 - 167: 0xC846, - 1058 - 167: 0xC847, - 1059 - 167: 0xC848, - 1060 - 167: 0xC849, - 1061 - 167: 0xC84A, - 1062 - 167: 0xC84B, - 1063 - 167: 0xC84C, - 1064 - 167: 0xC84D, - 1065 - 167: 0xC84E, - 1066 - 167: 0xC84F, - 1067 - 167: 0xC850, - 1068 - 167: 0xC851, - 1069 - 167: 0xC852, - 1070 - 167: 0xC853, - 1071 - 167: 0xC854, - 1072 - 167: 0xC855, - 1073 - 167: 0xC856, - 1074 - 167: 0xC857, - 1075 - 167: 0xC858, - 1076 - 167: 0xC859, - 1077 - 167: 0xC85A, - 1078 - 167: 0xC85C, - 1079 - 167: 0xC85D, - 1080 - 167: 0xC85E, - 1081 - 167: 0xC85F, - 1082 - 167: 0xC860, - 1083 - 167: 0xC861, - 1084 - 167: 0xC862, - 1085 - 167: 0xC863, - 1086 - 167: 0xC864, - 1087 - 167: 0xC865, - 1088 - 167: 0xC866, - 1089 - 167: 0xC867, - 1090 - 167: 0xC868, - 1091 - 167: 0xC869, - 1092 - 167: 0xC86A, - 1093 - 167: 0xC86B, - 1094 - 167: 0xC86C, - 1095 - 167: 0xC86D, - 1096 - 167: 0xC86E, - 1097 - 167: 0xC86F, - 1098 - 167: 0xC870, - 1099 - 167: 0xC871, - 1100 - 167: 0xC872, - 1101 - 167: 0xC873, - 1102 - 167: 0xC874, - 1103 - 167: 0xC875, - 1105 - 167: 0xC85B, -} - -const encode4Low, encode4High = 65072, 65518 - -var encode4 = [...]uint16{ - 65072 - 65072: 0xA14A, - 65073 - 65072: 0xA157, - 65075 - 65072: 0xA159, - 65076 - 65072: 0xA15B, - 65077 - 65072: 0xA15F, - 65078 - 65072: 0xA160, - 65079 - 65072: 0xA163, - 65080 - 65072: 0xA164, - 65081 - 65072: 0xA167, - 65082 - 65072: 0xA168, - 65083 - 65072: 0xA16B, - 65084 - 65072: 0xA16C, - 65085 - 65072: 0xA16F, - 65086 - 65072: 0xA170, - 65087 - 65072: 0xA173, - 65088 - 65072: 0xA174, - 65089 - 65072: 0xA177, - 65090 - 65072: 0xA178, - 65091 - 65072: 0xA17B, - 65092 - 65072: 0xA17C, - 65097 - 65072: 0xA1C6, - 65098 - 65072: 0xA1C7, - 65099 - 65072: 0xA1CA, - 65100 - 65072: 0xA1CB, - 65101 - 65072: 0xA1C8, - 65102 - 65072: 0xA1C9, - 65103 - 65072: 0xA15C, - 65104 - 65072: 0xA14D, - 65105 - 65072: 0xA14E, - 65106 - 65072: 0xA14F, - 65108 - 65072: 0xA151, - 65109 - 65072: 0xA152, - 65110 - 65072: 0xA153, - 65111 - 65072: 0xA154, - 65113 - 65072: 0xA17D, - 65114 - 65072: 0xA17E, - 65115 - 65072: 0xA1A1, - 65116 - 65072: 0xA1A2, - 65117 - 65072: 0xA1A3, - 65118 - 65072: 0xA1A4, - 65119 - 65072: 0xA1CC, - 65120 - 65072: 0xA1CD, - 65121 - 65072: 0xA1CE, - 65122 - 65072: 0xA1DE, - 65123 - 65072: 0xA1DF, - 65124 - 65072: 0xA1E0, - 65125 - 65072: 0xA1E1, - 65126 - 65072: 0xA1E2, - 65128 - 65072: 0xA242, - 65129 - 65072: 0xA24C, - 65130 - 65072: 0xA24D, - 65131 - 65072: 0xA24E, - 65281 - 65072: 0xA149, - 65282 - 65072: 0xC8D0, - 65283 - 65072: 0xA1AD, - 65284 - 65072: 0xA243, - 65285 - 65072: 0xA248, - 65286 - 65072: 0xA1AE, - 65287 - 65072: 0xC8CF, - 65288 - 65072: 0xA15D, - 65289 - 65072: 0xA15E, - 65290 - 65072: 0xA1AF, - 65291 - 65072: 0xA1CF, - 65292 - 65072: 0xA141, - 65293 - 65072: 0xA1D0, - 65294 - 65072: 0xA144, - 65295 - 65072: 0xA1FE, - 65296 - 65072: 0xA2AF, - 65297 - 65072: 0xA2B0, - 65298 - 65072: 0xA2B1, - 65299 - 65072: 0xA2B2, - 65300 - 65072: 0xA2B3, - 65301 - 65072: 0xA2B4, - 65302 - 65072: 0xA2B5, - 65303 - 65072: 0xA2B6, - 65304 - 65072: 0xA2B7, - 65305 - 65072: 0xA2B8, - 65306 - 65072: 0xA147, - 65307 - 65072: 0xA146, - 65308 - 65072: 0xA1D5, - 65309 - 65072: 0xA1D7, - 65310 - 65072: 0xA1D6, - 65311 - 65072: 0xA148, - 65312 - 65072: 0xA249, - 65313 - 65072: 0xA2CF, - 65314 - 65072: 0xA2D0, - 65315 - 65072: 0xA2D1, - 65316 - 65072: 0xA2D2, - 65317 - 65072: 0xA2D3, - 65318 - 65072: 0xA2D4, - 65319 - 65072: 0xA2D5, - 65320 - 65072: 0xA2D6, - 65321 - 65072: 0xA2D7, - 65322 - 65072: 0xA2D8, - 65323 - 65072: 0xA2D9, - 65324 - 65072: 0xA2DA, - 65325 - 65072: 0xA2DB, - 65326 - 65072: 0xA2DC, - 65327 - 65072: 0xA2DD, - 65328 - 65072: 0xA2DE, - 65329 - 65072: 0xA2DF, - 65330 - 65072: 0xA2E0, - 65331 - 65072: 0xA2E1, - 65332 - 65072: 0xA2E2, - 65333 - 65072: 0xA2E3, - 65334 - 65072: 0xA2E4, - 65335 - 65072: 0xA2E5, - 65336 - 65072: 0xA2E6, - 65337 - 65072: 0xA2E7, - 65338 - 65072: 0xA2E8, - 65339 - 65072: 0xC6E4, - 65340 - 65072: 0xA240, - 65341 - 65072: 0xC6E5, - 65343 - 65072: 0xA1C4, - 65345 - 65072: 0xA2E9, - 65346 - 65072: 0xA2EA, - 65347 - 65072: 0xA2EB, - 65348 - 65072: 0xA2EC, - 65349 - 65072: 0xA2ED, - 65350 - 65072: 0xA2EE, - 65351 - 65072: 0xA2EF, - 65352 - 65072: 0xA2F0, - 65353 - 65072: 0xA2F1, - 65354 - 65072: 0xA2F2, - 65355 - 65072: 0xA2F3, - 65356 - 65072: 0xA2F4, - 65357 - 65072: 0xA2F5, - 65358 - 65072: 0xA2F6, - 65359 - 65072: 0xA2F7, - 65360 - 65072: 0xA2F8, - 65361 - 65072: 0xA2F9, - 65362 - 65072: 0xA2FA, - 65363 - 65072: 0xA2FB, - 65364 - 65072: 0xA2FC, - 65365 - 65072: 0xA2FD, - 65366 - 65072: 0xA2FE, - 65367 - 65072: 0xA340, - 65368 - 65072: 0xA341, - 65369 - 65072: 0xA342, - 65370 - 65072: 0xA343, - 65371 - 65072: 0xA161, - 65372 - 65072: 0xA155, - 65373 - 65072: 0xA162, - 65374 - 65072: 0xA1E3, - 65504 - 65072: 0xA246, - 65505 - 65072: 0xA247, - 65506 - 65072: 0xC8CD, - 65507 - 65072: 0xA1C3, - 65508 - 65072: 0xC8CE, - 65509 - 65072: 0xA244, - 65517 - 65072: 0xF9FE, -} - -const encode5Low, encode5High = 194597, 195029 - -var encode5 = [...]uint16{ - 194597 - 194597: 0x9874, - 194619 - 194597: 0x9AC8, - 194624 - 194597: 0xA047, - 194680 - 194597: 0x8BC3, - 194708 - 194597: 0xFC48, - 194726 - 194597: 0xFC77, - 194765 - 194597: 0x9C52, - 194964 - 194597: 0x8EFD, - 194994 - 194597: 0x8FA8, - 195004 - 194597: 0x957A, - 195028 - 194597: 0x8FF0, -} - -const encode6Low, encode6High = 63751, 64014 - -var encode6 = [...]uint16{ - 63751 - 63751: 0x8BF8, - 64012 - 63751: 0xC94A, - 64013 - 63751: 0xDDFC, -} - -const encode7Low, encode7High = 175615, 175616 - -var encode7 = [...]uint16{ - 175615 - 175615: 0x87DC, -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/unicode/override.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/unicode/override.go deleted file mode 100644 index 933c4983..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/unicode/override.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unicode - -import ( - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// BOMOverride returns a new decoder transformer that is identical to fallback, -// except that the presence of a Byte Order Mark at the start of the input -// causes it to switch to the corresponding Unicode decoding. It will only -// consider BOMs for UTF-8, UTF-16BE, and UTF-16LE. -// -// This differs from using ExpectBOM by allowing a BOM to switch to UTF-8, not -// just UTF-16 variants, and allowing falling back to any encoding scheme. -// -// This technique is recommended by the W3C for use in HTML 5: "For -// compatibility with deployed content, the byte order mark (also known as BOM) -// is considered more authoritative than anything else." -// http://www.w3.org/TR/encoding/#specification-hooks -// -// Using BOMOverride is mostly intended for use cases where the first characters -// of a fallback encoding are known to not be a BOM, for example, for valid HTML -// and most encodings. -func BOMOverride(fallback transform.Transformer) transform.Transformer { - // TODO: possibly allow a variadic argument of unicode encodings to allow - // specifying details of which fallbacks are supported as well as - // specifying the details of the implementations. This would also allow for - // support for UTF-32, which should not be supported by default. - return &bomOverride{fallback: fallback} -} - -type bomOverride struct { - fallback transform.Transformer - current transform.Transformer -} - -func (d *bomOverride) Reset() { - d.current = nil - d.fallback.Reset() -} - -var ( - // TODO: we could use decode functions here, instead of allocating a new - // decoder on every NewDecoder as IgnoreBOM decoders can be stateless. - utf16le = UTF16(LittleEndian, IgnoreBOM) - utf16be = UTF16(BigEndian, IgnoreBOM) -) - -const utf8BOM = "\ufeff" - -func (d *bomOverride) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if d.current != nil { - return d.current.Transform(dst, src, atEOF) - } - if len(src) < 3 && !atEOF { - return 0, 0, transform.ErrShortSrc - } - d.current = d.fallback - bomSize := 0 - if len(src) >= 2 { - if src[0] == 0xFF && src[1] == 0xFE { - d.current = utf16le.NewDecoder() - bomSize = 2 - } else if src[0] == 0xFE && src[1] == 0xFF { - d.current = utf16be.NewDecoder() - bomSize = 2 - } else if len(src) >= 3 && - src[0] == utf8BOM[0] && - src[1] == utf8BOM[1] && - src[2] == utf8BOM[2] { - d.current = transform.Nop - bomSize = 3 - } - } - if bomSize < len(src) { - nDst, nSrc, err = d.current.Transform(dst, src[bomSize:], atEOF) - } - return nDst, nSrc + bomSize, err -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/unicode/unicode.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/unicode/unicode.go deleted file mode 100644 index 4aba7654..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/unicode/unicode.go +++ /dev/null @@ -1,333 +0,0 @@ -// 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 unicode provides Unicode encodings such as UTF-16. -package unicode - -import ( - "errors" - "unicode/utf16" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/internal/identifier" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// TODO: I think the Transformers really should return errors on unmatched -// surrogate pairs and odd numbers of bytes. This is not required by RFC 2781, -// which leaves it open, but is suggested by WhatWG. It will allow for all error -// modes as defined by WhatWG: fatal, HTML and Replacement. This would require -// the introduction of some kind of error type for conveying the erroneous code -// point. - -// TODO: -// - Define UTF-8 (mostly for BOM handling.) -// - Define UTF-32? - -// UTF16 returns a UTF-16 Encoding for the given default endianness and byte -// order mark (BOM) policy. -// -// When decoding from UTF-16 to UTF-8, if the BOMPolicy is IgnoreBOM then -// neither BOMs U+FEFF nor noncharacters U+FFFE in the input stream will affect -// the endianness used for decoding, and will instead be output as their -// standard UTF-8 encodings: "\xef\xbb\xbf" and "\xef\xbf\xbe". If the BOMPolicy -// is UseBOM or ExpectBOM a staring BOM is not written to the UTF-8 output. -// Instead, it overrides the default endianness e for the remainder of the -// transformation. Any subsequent BOMs U+FEFF or noncharacters U+FFFE will not -// affect the endianness used, and will instead be output as their standard -// UTF-8 encodings. For UseBOM, if there is no starting BOM, it will proceed -// with the default Endianness. For ExpectBOM, in that case, the transformation -// will return early with an ErrMissingBOM error. -// -// When encoding from UTF-8 to UTF-16, a BOM will be inserted at the start of -// the output if the BOMPolicy is UseBOM or ExpectBOM. Otherwise, a BOM will not -// be inserted. The UTF-8 input does not need to contain a BOM. -// -// There is no concept of a 'native' endianness. If the UTF-16 data is produced -// and consumed in a greater context that implies a certain endianness, use -// IgnoreBOM. Otherwise, use ExpectBOM and always produce and consume a BOM. -// -// In the language of http://www.unicode.org/faq/utf_bom.html#bom10, IgnoreBOM -// corresponds to "Where the precise type of the data stream is known... the -// BOM should not be used" and ExpectBOM corresponds to "A particular -// protocol... may require use of the BOM". -func UTF16(e Endianness, b BOMPolicy) encoding.Encoding { - return utf16Encoding{config{e, b}, mibValue[e][b&bomMask]} -} - -// mibValue maps Endianness and BOMPolicy settings to MIB constants. Note that -// some configurations map to the same MIB identifier. RFC 2781 has requirements -// and recommendations. Some of the "configurations" are merely recommendations, -// so multiple configurations could match. -var mibValue = map[Endianness][numBOMValues]identifier.MIB{ - BigEndian: [numBOMValues]identifier.MIB{ - IgnoreBOM: identifier.UTF16BE, - UseBOM: identifier.UTF16, // BigEnding default is preferred by RFC 2781. - // TODO: acceptBOM | strictBOM would map to UTF16BE as well. - }, - LittleEndian: [numBOMValues]identifier.MIB{ - IgnoreBOM: identifier.UTF16LE, - UseBOM: identifier.UTF16, // LittleEndian default is allowed and preferred on Windows. - // TODO: acceptBOM | strictBOM would map to UTF16LE as well. - }, - // ExpectBOM is not widely used and has no valid MIB identifier. -} - -// All lists a configuration for each IANA-defined UTF-16 variant. -var All = []encoding.Encoding{ - UTF16(BigEndian, UseBOM), - UTF16(BigEndian, IgnoreBOM), - UTF16(LittleEndian, IgnoreBOM), -} - -// TODO: also include UTF-8 - -// BOMPolicy is a UTF-16 encoding's byte order mark policy. -type BOMPolicy uint8 - -const ( - writeBOM BOMPolicy = 0x01 - acceptBOM BOMPolicy = 0x02 - requireBOM BOMPolicy = 0x04 - bomMask BOMPolicy = 0x07 - - // HACK: numBOMValues == 8 triggers a bug in the 1.4 compiler (cannot have a - // map of an array of length 8 of a type that is also used as a key or value - // in another map). See golang.org/issue/11354. - // TODO: consider changing this value back to 8 if the use of 1.4.* has - // been minimized. - numBOMValues = 8 + 1 - - // IgnoreBOM means to ignore any byte order marks. - IgnoreBOM BOMPolicy = 0 - // Common and RFC 2781-compliant interpretation for UTF-16BE/LE. - - // UseBOM means that the UTF-16 form may start with a byte order mark, which - // will be used to override the default encoding. - UseBOM BOMPolicy = writeBOM | acceptBOM - // Common and RFC 2781-compliant interpretation for UTF-16. - - // ExpectBOM means that the UTF-16 form must start with a byte order mark, - // which will be used to override the default encoding. - ExpectBOM BOMPolicy = writeBOM | acceptBOM | requireBOM - // Used in Java as Unicode (not to be confused with Java's UTF-16) and - // ICU's UTF-16,version=1. Not compliant with RFC 2781. - - // TODO (maybe): strictBOM: BOM must match Endianness. This would allow: - // - UTF-16(B|L)E,version=1: writeBOM | acceptBOM | requireBOM | strictBOM - // (UnicodeBig and UnicodeLittle in Java) - // - RFC 2781-compliant, but less common interpretation for UTF-16(B|L)E: - // acceptBOM | strictBOM (e.g. assigned to CheckBOM). - // This addition would be consistent with supporting ExpectBOM. -) - -// Endianness is a UTF-16 encoding's default endianness. -type Endianness bool - -const ( - // BigEndian is UTF-16BE. - BigEndian Endianness = false - // LittleEndian is UTF-16LE. - LittleEndian Endianness = true -) - -// ErrMissingBOM means that decoding UTF-16 input with ExpectBOM did not find a -// starting byte order mark. -var ErrMissingBOM = errors.New("encoding: missing byte order mark") - -type utf16Encoding struct { - config - mib identifier.MIB -} - -type config struct { - endianness Endianness - bomPolicy BOMPolicy -} - -func (u utf16Encoding) NewDecoder() transform.Transformer { - return &utf16Decoder{ - initial: u.config, - current: u.config, - } -} - -func (u utf16Encoding) NewEncoder() transform.Transformer { - return &utf16Encoder{ - endianness: u.endianness, - initialBOMPolicy: u.bomPolicy, - currentBOMPolicy: u.bomPolicy, - } -} - -func (u utf16Encoding) ID() (mib identifier.MIB, other string) { - return u.mib, "" -} - -func (u utf16Encoding) String() string { - e, b := "B", "" - if u.endianness == LittleEndian { - e = "L" - } - switch u.bomPolicy { - case ExpectBOM: - b = "Expect" - case UseBOM: - b = "Use" - case IgnoreBOM: - b = "Ignore" - } - return "UTF-16" + e + "E (" + b + " BOM)" -} - -type utf16Decoder struct { - initial config - current config -} - -func (u *utf16Decoder) Reset() { - u.current = u.initial -} - -func (u *utf16Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if u.current.bomPolicy&acceptBOM != 0 { - if len(src) < 2 { - return 0, 0, transform.ErrShortSrc - } - switch { - case src[0] == 0xfe && src[1] == 0xff: - u.current.endianness = BigEndian - nSrc = 2 - case src[0] == 0xff && src[1] == 0xfe: - u.current.endianness = LittleEndian - nSrc = 2 - default: - if u.current.bomPolicy&requireBOM != 0 { - return 0, 0, ErrMissingBOM - } - } - u.current.bomPolicy = IgnoreBOM - } - - var r rune - var dSize, sSize int - for nSrc < len(src) { - if nSrc+1 < len(src) { - x := uint16(src[nSrc+0])<<8 | uint16(src[nSrc+1]) - if u.current.endianness == LittleEndian { - x = x>>8 | x<<8 - } - r, sSize = rune(x), 2 - if utf16.IsSurrogate(r) { - if nSrc+3 < len(src) { - x = uint16(src[nSrc+2])<<8 | uint16(src[nSrc+3]) - if u.current.endianness == LittleEndian { - x = x>>8 | x<<8 - } - // Save for next iteration if it is not a high surrogate. - if isHighSurrogate(rune(x)) { - r, sSize = utf16.DecodeRune(r, rune(x)), 4 - } - } else if !atEOF { - err = transform.ErrShortSrc - break - } - } - if dSize = utf8.RuneLen(r); dSize < 0 { - r, dSize = utf8.RuneError, 3 - } - } else if atEOF { - // Single trailing byte. - r, dSize, sSize = utf8.RuneError, 3, 1 - } else { - err = transform.ErrShortSrc - break - } - if nDst+dSize > len(dst) { - err = transform.ErrShortDst - break - } - nDst += utf8.EncodeRune(dst[nDst:], r) - nSrc += sSize - } - return nDst, nSrc, err -} - -func isHighSurrogate(r rune) bool { - return 0xDC00 <= r && r <= 0xDFFF -} - -type utf16Encoder struct { - endianness Endianness - initialBOMPolicy BOMPolicy - currentBOMPolicy BOMPolicy -} - -func (u *utf16Encoder) Reset() { - u.currentBOMPolicy = u.initialBOMPolicy -} - -func (u *utf16Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if u.currentBOMPolicy&writeBOM != 0 { - if len(dst) < 2 { - return 0, 0, transform.ErrShortDst - } - dst[0], dst[1] = 0xfe, 0xff - u.currentBOMPolicy = IgnoreBOM - nDst = 2 - } - - r, size := rune(0), 0 - for nSrc < len(src) { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - } - - if r <= 0xffff { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r >> 8) - dst[nDst+1] = uint8(r) - nDst += 2 - } else { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - r1, r2 := utf16.EncodeRune(r) - dst[nDst+0] = uint8(r1 >> 8) - dst[nDst+1] = uint8(r1) - dst[nDst+2] = uint8(r2 >> 8) - dst[nDst+3] = uint8(r2) - nDst += 4 - } - nSrc += size - } - - if u.endianness == LittleEndian { - for i := 0; i < nDst; i += 2 { - dst[i], dst[i+1] = dst[i+1], dst[i] - } - } - return nDst, nSrc, err -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/gen.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/gen.go deleted file mode 100644 index 75f20a6b..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/gen.go +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// gen runs go generate on Unicode- and CLDR-related package in the text -// repositories, taking into account dependencies and versions. -package main - -import ( - "bytes" - "flag" - "fmt" - "os" - "os/exec" - "path/filepath" - "runtime" - "strings" - "sync" - "unicode" - - "golang.org/x/text/internal/gen" -) - -var ( - verbose = flag.Bool("v", false, "verbose output") - force = flag.Bool("force", false, "ignore failing dependencies") - excludeList = flag.String("exclude", "", - "comma-separated list of packages to exclude") - - // The user can specify a selection of packages to build on the command line. - args []string -) - -func exclude(pkg string) bool { - if len(args) > 0 { - return !contains(args, pkg) - } - return contains(strings.Split(*excludeList, ","), pkg) -} - -// TODO: -// - Better version handling. -// - Generate tables for the core unicode package? -// - Add generation for encodings. This requires some retooling here and there. -// - Running repo-wide "long" tests. - -var vprintf = fmt.Printf - -func main() { - gen.Init() - args = flag.Args() - if !*verbose { - // Set vprintf to a no-op. - vprintf = func(string, ...interface{}) (int, error) { return 0, nil } - } - - if gen.UnicodeVersion() != unicode.Version { - fmt.Printf("Requested Unicode version %s; core unicode version is %s.\n", - gen.UnicodeVersion, - unicode.Version) - // TODO: use collate to compare. Simple comparison will work, though, - // until Unicode reaches version 10. To avoid circular dependencies, we - // could use the NumericWeighter without using package collate using a - // trivial Weighter implementation. - if gen.UnicodeVersion() < unicode.Version && !*force { - os.Exit(2) - } - } - var ( - cldr = generate("cldr") - language = generate("language", cldr) - internal = generate("internal", language) - norm = generate("unicode/norm") - _ = generate("unicode/rangetable") - _ = generate("width") - _ = generate("currency", cldr, language, internal) - _ = generate("display", cldr, language) - _ = generate("cases", norm) - _ = generate("collate", norm, cldr, language) - _ = generate("search", norm, cldr, language) - ) - all.Wait() - - if hasErrors { - fmt.Println("FAIL") - os.Exit(1) - } - vprintf("SUCCESS\n") -} - -var ( - all sync.WaitGroup - hasErrors bool -) - -type dependency struct { - sync.WaitGroup - hasErrors bool -} - -func generate(pkg string, deps ...*dependency) *dependency { - var wg dependency - if exclude(pkg) { - return &wg - } - wg.Add(1) - all.Add(1) - go func() { - defer wg.Done() - defer all.Done() - // Wait for dependencies to finish. - for _, d := range deps { - d.Wait() - if d.hasErrors && !*force { - fmt.Printf("--- ABORT: %s\n", pkg) - wg.hasErrors = true - return - } - } - vprintf("=== GENERATE %s\n", pkg) - args := []string{"generate"} - if *verbose { - args = append(args, "-v") - } - args = append(args, "./"+pkg) - cmd := exec.Command(filepath.Join(runtime.GOROOT(), "bin", "go"), args...) - w := &bytes.Buffer{} - cmd.Stderr = w - cmd.Stdout = w - if err := cmd.Run(); err != nil { - fmt.Printf("--- FAIL: %s:\n\t%v\n\tError: %v\n", pkg, indent(w), err) - hasErrors = true - wg.hasErrors = true - return - } - vprintf("--- SUCCESS: %s\n\t%v\n", pkg, indent(w)) - }() - return &wg -} - -func contains(a []string, s string) bool { - for _, e := range a { - if s == e { - return true - } - } - return false -} - -func indent(b *bytes.Buffer) string { - return strings.Replace(strings.TrimSpace(b.String()), "\n", "\n\t", -1) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/colltab.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/colltab.go deleted file mode 100644 index 8a575182..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/colltab.go +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package colltab contains functionality related to collation tables. -// It is only to be used by the collate and search packages. -package colltab - -import ( - "sort" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -// MatchLang finds the index of t in tags, using a matching algorithm used for -// collation and search. tags[0] must be language.Und, the remaining tags should -// be sorted alphabetically. -// -// Language matching for collation and search is different from the matching -// defined by language.Matcher: the (inferred) base language must be an exact -// match for the relevant fields. For example, "gsw" should not match "de". -// Also the parent relation is different, as a parent may have a different -// script. So usually the parent of zh-Hant is und, whereas for MatchLang it is -// zh. -func MatchLang(t language.Tag, tags []language.Tag) int { - // Canonicalize the values, including collapsing macro languages. - t, _ = language.All.Canonicalize(t) - - base, conf := t.Base() - // Estimate the base language, but only use high-confidence values. - if conf < language.High { - // The root locale supports "search" and "standard". We assume that any - // implementation will only use one of both. - return 0 - } - - // Maximize base and script and normalize the tag. - if _, s, r := t.Raw(); (r != language.Region{}) { - p, _ := language.Raw.Compose(base, s, r) - // Taking the parent forces the script to be maximized. - p = p.Parent() - // Add back region and extensions. - t, _ = language.Raw.Compose(p, r, t.Extensions()) - } else { - // Set the maximized base language. - t, _ = language.Raw.Compose(base, s, t.Extensions()) - } - - // Find start index of the language tag. - start := 1 + sort.Search(len(tags)-1, func(i int) bool { - b, _, _ := tags[i+1].Raw() - return base.String() <= b.String() - }) - if start < len(tags) { - if b, _, _ := tags[start].Raw(); b != base { - return 0 - } - } - - // Besides the base language, script and region, only the collation type and - // the custom variant defined in the 'u' extension are used to distinguish a - // locale. - // Strip all variants and extensions and add back the custom variant. - tdef, _ := language.Raw.Compose(t.Raw()) - tdef, _ = tdef.SetTypeForKey("va", t.TypeForKey("va")) - - // First search for a specialized collation type, if present. - try := []language.Tag{tdef} - if co := t.TypeForKey("co"); co != "" { - tco, _ := tdef.SetTypeForKey("co", co) - try = []language.Tag{tco, tdef} - } - - for _, tx := range try { - for ; tx != language.Und; tx = parent(tx) { - for i, t := range tags[start:] { - if b, _, _ := t.Raw(); b != base { - break - } - if tx == t { - return start + i - } - } - } - } - return 0 -} - -// parent computes the structural parent. This means inheritance may change -// script. So, unlike the CLDR parent, parent(zh-Hant) == zh. -func parent(t language.Tag) language.Tag { - if t.TypeForKey("va") != "" { - t, _ = t.SetTypeForKey("va", "") - return t - } - result := language.Und - if b, s, r := t.Raw(); (r != language.Region{}) { - result, _ = language.Raw.Compose(b, s, t.Extensions()) - } else if (s != language.Script{}) { - result, _ = language.Raw.Compose(b, t.Extensions()) - } else if (b != language.Base{}) { - result, _ = language.Raw.Compose(t.Extensions()) - } - return result -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/colltab_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/colltab_test.go deleted file mode 100644 index 4f1b526a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/colltab_test.go +++ /dev/null @@ -1,56 +0,0 @@ -package colltab - -import ( - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -func TestMatchLang(t *testing.T) { - tags := []language.Tag{ - 0: language.Und, - 1: language.MustParse("bs"), - 2: language.German, - 3: language.English, - 4: language.AmericanEnglish, - 5: language.MustParse("en-US-u-va-posix"), - 6: language.Portuguese, - 7: language.Serbian, - 8: language.MustParse("sr-Latn"), - 9: language.Chinese, - 10: language.SimplifiedChinese, // Cannot match. - 11: language.TraditionalChinese, - } - for i, tc := range []struct { - x int - t language.Tag - }{ - {0, language.Und}, - {0, language.Persian}, // Default to first element when no match. - {3, language.English}, - {4, language.AmericanEnglish}, - {5, language.MustParse("en-US-u-va-posix")}, // Ext. variant match. - {4, language.MustParse("en-US-u-va-noposix")}, // Ext. variant mismatch. - {3, language.MustParse("en-UK-u-va-noposix")}, // Ext. variant mismatch. - {7, language.Serbian}, - {0, language.Croatian}, // Don't match to close language! - {0, language.MustParse("gsw")}, // Don't match to close language! - {1, language.MustParse("bs-Cyrl")}, // Odd, but correct. - {1, language.MustParse("bs-Latn")}, // Estimated script drops. - {8, language.MustParse("sr-Latn")}, - {9, language.Chinese}, - {10, language.SimplifiedChinese}, // Default script drops. - {11, language.TraditionalChinese}, - {11, language.MustParse("und-TW")}, // Infer script and language. - {11, language.MustParse("und-HK")}, // Infer script and language. - {6, language.MustParse("und-BR")}, // Infer script and language. - {6, language.MustParse("und-PT")}, // Infer script and language. - {2, language.MustParse("und-Latn-DE")}, // Infer language. - {0, language.MustParse("und-Jpan-BR")}, // Infers "ja", so no match. - {0, language.MustParse("zu")}, // No match past index. - } { - if x := MatchLang(tc.t, tags); x != tc.x { - t.Errorf("%d: MatchLang(%q, tags) = %d; want %d", i, tc.t, x, tc.x) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/contract.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/contract.go deleted file mode 100644 index 54b9795d..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/contract.go +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright 2012 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 colltab - -import "unicode/utf8" - -// For a description of contractTrieSet, see text/collate/build/contract.go. - -type contractTrieSet []struct{ l, h, n, i uint8 } - -// ctScanner is used to match a trie to an input sequence. -// A contraction may match a non-contiguous sequence of bytes in an input string. -// For example, if there is a contraction for <a, combining_ring>, it should match -// the sequence <a, combining_cedilla, combining_ring>, as combining_cedilla does -// not block combining_ring. -// ctScanner does not automatically skip over non-blocking non-starters, but rather -// retains the state of the last match and leaves it up to the user to continue -// the match at the appropriate points. -type ctScanner struct { - states contractTrieSet - s []byte - n int - index int - pindex int - done bool -} - -type ctScannerString struct { - states contractTrieSet - s string - n int - index int - pindex int - done bool -} - -func (t contractTrieSet) scanner(index, n int, b []byte) ctScanner { - return ctScanner{s: b, states: t[index:], n: n} -} - -func (t contractTrieSet) scannerString(index, n int, str string) ctScannerString { - return ctScannerString{s: str, states: t[index:], n: n} -} - -// result returns the offset i and bytes consumed p so far. If no suffix -// matched, i and p will be 0. -func (s *ctScanner) result() (i, p int) { - return s.index, s.pindex -} - -func (s *ctScannerString) result() (i, p int) { - return s.index, s.pindex -} - -const ( - final = 0 - noIndex = 0xFF -) - -// scan matches the longest suffix at the current location in the input -// and returns the number of bytes consumed. -func (s *ctScanner) scan(p int) int { - pr := p // the p at the rune start - str := s.s - states, n := s.states, s.n - for i := 0; i < n && p < len(str); { - e := states[i] - c := str[p] - // TODO: a significant number of contractions are of a form that - // cannot match discontiguous UTF-8 in a normalized string. We could let - // a negative value of e.n mean that we can set s.done = true and avoid - // the need for additional matches. - if c >= e.l { - if e.l == c { - p++ - if e.i != noIndex { - s.index = int(e.i) - s.pindex = p - } - if e.n != final { - i, states, n = 0, states[int(e.h)+n:], int(e.n) - if p >= len(str) || utf8.RuneStart(str[p]) { - s.states, s.n, pr = states, n, p - } - } else { - s.done = true - return p - } - continue - } else if e.n == final && c <= e.h { - p++ - s.done = true - s.index = int(c-e.l) + int(e.i) - s.pindex = p - return p - } - } - i++ - } - return pr -} - -// scan is a verbatim copy of ctScanner.scan. -func (s *ctScannerString) scan(p int) int { - pr := p // the p at the rune start - str := s.s - states, n := s.states, s.n - for i := 0; i < n && p < len(str); { - e := states[i] - c := str[p] - // TODO: a significant number of contractions are of a form that - // cannot match discontiguous UTF-8 in a normalized string. We could let - // a negative value of e.n mean that we can set s.done = true and avoid - // the need for additional matches. - if c >= e.l { - if e.l == c { - p++ - if e.i != noIndex { - s.index = int(e.i) - s.pindex = p - } - if e.n != final { - i, states, n = 0, states[int(e.h)+n:], int(e.n) - if p >= len(str) || utf8.RuneStart(str[p]) { - s.states, s.n, pr = states, n, p - } - } else { - s.done = true - return p - } - continue - } else if e.n == final && c <= e.h { - p++ - s.done = true - s.index = int(c-e.l) + int(e.i) - s.pindex = p - return p - } - } - i++ - } - return pr -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/contract_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/contract_test.go deleted file mode 100644 index c37c020e..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/contract_test.go +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright 2012 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 colltab - -import ( - "testing" -) - -type lookupStrings struct { - str string - offset int - n int // bytes consumed from input -} - -var lookupTests = []struct { - lookup []lookupStrings - n int - tries contractTrieSet -}{ - { - []lookupStrings{ - {"abc", 1, 3}, - {"a", 0, 0}, - {"b", 0, 0}, - {"c", 0, 0}, - {"d", 0, 0}, - }, - 1, - contractTrieSet{ - {'a', 0, 1, 0xFF}, - {'b', 0, 1, 0xFF}, - {'c', 'c', 0, 1}, - }, - }, - { - []lookupStrings{ - {"abc", 1, 3}, - {"abd", 2, 3}, - {"abe", 3, 3}, - {"a", 0, 0}, - {"ab", 0, 0}, - {"d", 0, 0}, - {"f", 0, 0}, - }, - 1, - contractTrieSet{ - {'a', 0, 1, 0xFF}, - {'b', 0, 1, 0xFF}, - {'c', 'e', 0, 1}, - }, - }, - { - []lookupStrings{ - {"abc", 1, 3}, - {"ab", 2, 2}, - {"a", 3, 1}, - {"abcd", 1, 3}, - {"abe", 2, 2}, - }, - 1, - contractTrieSet{ - {'a', 0, 1, 3}, - {'b', 0, 1, 2}, - {'c', 'c', 0, 1}, - }, - }, - { - []lookupStrings{ - {"abc", 1, 3}, - {"abd", 2, 3}, - {"ab", 3, 2}, - {"ac", 4, 2}, - {"a", 5, 1}, - {"b", 6, 1}, - {"ba", 6, 1}, - }, - 2, - contractTrieSet{ - {'b', 'b', 0, 6}, - {'a', 0, 2, 5}, - {'c', 'c', 0, 4}, - {'b', 0, 1, 3}, - {'c', 'd', 0, 1}, - }, - }, - { - []lookupStrings{ - {"bcde", 2, 4}, - {"bc", 7, 2}, - {"ab", 6, 2}, - {"bcd", 5, 3}, - {"abcd", 1, 4}, - {"abc", 4, 3}, - {"bcdf", 3, 4}, - }, - 2, - contractTrieSet{ - {'b', 3, 1, 0xFF}, - {'a', 0, 1, 0xFF}, - {'b', 0, 1, 6}, - {'c', 0, 1, 4}, - {'d', 'd', 0, 1}, - {'c', 0, 1, 7}, - {'d', 0, 1, 5}, - {'e', 'f', 0, 2}, - }, - }, -} - -func lookup(c *contractTrieSet, nnode int, s []uint8) (i, n int) { - scan := c.scanner(0, nnode, s) - scan.scan(0) - return scan.result() -} - -func TestLookupContraction(t *testing.T) { - for i, tt := range lookupTests { - cts := contractTrieSet(tt.tries) - for j, lu := range tt.lookup { - str := lu.str - for _, s := range []string{str, str + "X"} { - const msg = "%d:%d: %s of %q %v; want %v" - offset, n := lookup(&cts, tt.n, []byte(s)) - if offset != lu.offset { - t.Errorf(msg, i, j, "offset", s, offset, lu.offset) - } - if n != lu.n { - t.Errorf(msg, i, j, "bytes consumed", s, n, len(str)) - } - } - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/iter.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/iter.go deleted file mode 100644 index dbf7095d..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/iter.go +++ /dev/null @@ -1,179 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package colltab - -import ( - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" -) - -// An Iter incrementally converts chunks of the input text to collation -// elements, while ensuring that the collation elements are in normalized order -// (that is, they are in the order as if the input text were normalized first). -type Iter struct { - Weighter colltab.Weighter - Elems []colltab.Elem - // N is the number of elements in Elems that will not be reordered on - // subsequent iterations, N <= len(Elems). - N int - - bytes []byte - str string - // Because the Elems buffer may contain collation elements that are needed - // for look-ahead, we need two positions in the text (bytes or str): one for - // the end position in the text for the current iteration and one for the - // start of the next call to appendNext. - pEnd int // end position in text corresponding to N. - pNext int // pEnd <= pNext. -} - -// Reset sets the position in the current input text to p and discards any -// results obtained so far. -func (i *Iter) Reset(p int) { - i.Elems = i.Elems[:0] - i.N = 0 - i.pEnd = p - i.pNext = p -} - -// Len returns the length of the input text. -func (i *Iter) Len() int { - if i.bytes != nil { - return len(i.bytes) - } - return len(i.str) -} - -// Discard removes the collation elements up to N. -func (i *Iter) Discard() { - // TODO: change this such that only modifiers following starters will have - // to be copied. - i.Elems = i.Elems[:copy(i.Elems, i.Elems[i.N:])] - i.N = 0 -} - -// End returns the end position of the input text for which Next has returned -// results. -func (i *Iter) End() int { - return i.pEnd -} - -// SetInput resets i to input s. -func (i *Iter) SetInput(s []byte) { - i.bytes = s - i.str = "" - i.Reset(0) -} - -// SetInputString resets i to input s. -func (i *Iter) SetInputString(s string) { - i.str = s - i.bytes = nil - i.Reset(0) -} - -func (i *Iter) done() bool { - return i.pNext >= len(i.str) && i.pNext >= len(i.bytes) -} - -func (i *Iter) appendNext() bool { - if i.done() { - return false - } - var sz int - if i.bytes == nil { - i.Elems, sz = i.Weighter.AppendNextString(i.Elems, i.str[i.pNext:]) - } else { - i.Elems, sz = i.Weighter.AppendNext(i.Elems, i.bytes[i.pNext:]) - } - i.pNext += sz - return true -} - -// Next appends Elems to the internal array. On each iteration, it will either -// add starters or modifiers. In the majority of cases, an Elem with a primary -// value > 0 will have a CCC of 0. The CCC values of collation elements are also -// used to detect if the input string was not normalized and to adjust the -// result accordingly. -func (i *Iter) Next() bool { - if i.N == len(i.Elems) && !i.appendNext() { - return false - } - - // Check if the current segment starts with a starter. - prevCCC := i.Elems[len(i.Elems)-1].CCC() - if prevCCC == 0 { - i.N = len(i.Elems) - i.pEnd = i.pNext - return true - } else if i.Elems[i.N].CCC() == 0 { - // set i.N to only cover part of i.Elems for which prevCCC == 0 and - // use rest for the next call to next. - for i.N++; i.N < len(i.Elems) && i.Elems[i.N].CCC() == 0; i.N++ { - } - i.pEnd = i.pNext - return true - } - - // The current (partial) segment starts with modifiers. We need to collect - // all successive modifiers to ensure that they are normalized. - for { - p := len(i.Elems) - i.pEnd = i.pNext - if !i.appendNext() { - break - } - - if ccc := i.Elems[p].CCC(); ccc == 0 || len(i.Elems)-i.N > maxCombiningCharacters { - // Leave the starter for the next iteration. This ensures that we - // do not return sequences of collation elements that cross two - // segments. - // - // TODO: handle large number of combining characters by fully - // normalizing the input segment before iteration. This ensures - // results are consistent across the text repo. - i.N = p - return true - } else if ccc < prevCCC { - i.doNorm(p, ccc) // should be rare, never occurs for NFD and FCC. - } else { - prevCCC = ccc - } - } - - done := len(i.Elems) != i.N - i.N = len(i.Elems) - return done -} - -// nextNoNorm is the same as next, but does not "normalize" the collation -// elements. -func (i *Iter) nextNoNorm() bool { - // TODO: remove this function. Using this instead of next does not seem - // to improve performance in any significant way. We retain this until - // later for evaluation purposes. - if i.done() { - return false - } - i.appendNext() - i.N = len(i.Elems) - return true -} - -const maxCombiningCharacters = 30 - -// doNorm reorders the collation elements in i.Elems. -// It assumes that blocks of collation elements added with appendNext -// either start and end with the same CCC or start with CCC == 0. -// This allows for a single insertion point for the entire block. -// The correctness of this assumption is verified in builder.go. -func (i *Iter) doNorm(p int, ccc uint8) { - n := len(i.Elems) - k := p - for p--; p > i.N && ccc < i.Elems[p-1].CCC(); p-- { - } - i.Elems = append(i.Elems, i.Elems[p:k]...) - copy(i.Elems[p:], i.Elems[k:]) - i.Elems = i.Elems[:n] -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/iter_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/iter_test.go deleted file mode 100644 index 10e7f832..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab/iter_test.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package colltab - -import ( - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" -) - -const ( - defaultSecondary = 0x20 -) - -func makeCE(w []int) colltab.Elem { - ce, err := colltab.MakeElem(w[0], w[1], w[2], uint8(w[3])) - if err != nil { - panic(err) - } - return ce -} - -func TestDoNorm(t *testing.T) { - const div = -1 // The insertion point of the next block. - tests := []struct { - in, out []int - }{{ - in: []int{4, div, 3}, - out: []int{3, 4}, - }, { - in: []int{4, div, 3, 3, 3}, - out: []int{3, 3, 3, 4}, - }, { - in: []int{0, 4, div, 3}, - out: []int{0, 3, 4}, - }, { - in: []int{0, 0, 4, 5, div, 3, 3}, - out: []int{0, 0, 3, 3, 4, 5}, - }, { - in: []int{0, 0, 1, 4, 5, div, 3, 3}, - out: []int{0, 0, 1, 3, 3, 4, 5}, - }, { - in: []int{0, 0, 1, 4, 5, div, 4, 4}, - out: []int{0, 0, 1, 4, 4, 4, 5}, - }, - } - for j, tt := range tests { - i := Iter{} - var w, p int - for k, cc := range tt.in { - - if cc == div { - w = 100 - p = k - continue - } - i.Elems = append(i.Elems, makeCE([]int{w, defaultSecondary, 2, cc})) - } - i.doNorm(p, i.Elems[p].CCC()) - if len(i.Elems) != len(tt.out) { - t.Errorf("%d: length was %d; want %d", j, len(i.Elems), len(tt.out)) - } - prevCCC := uint8(0) - for k, ce := range i.Elems { - if int(ce.CCC()) != tt.out[k] { - t.Errorf("%d:%d: unexpected CCC. Was %d; want %d", j, k, ce.CCC(), tt.out[k]) - } - if k > 0 && ce.CCC() == prevCCC && i.Elems[k-1].Primary() > ce.Primary() { - t.Errorf("%d:%d: normalization crossed across CCC boundary.", j, k) - } - } - } - - // Combining rune overflow is tested in search/pattern_test.go. -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/format/format.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/format/format.go deleted file mode 100644 index c1158a0a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/format/format.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package format contains types for defining language-specific formatting of -// values. -// -// This package is internal now, but will eventually be exposed after the API -// settles. -package format - -import ( - "fmt" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -// State represents the printer state passed to custom formatters. It provides -// access to the fmt.State interface and the sentence and language-related -// context. -type State interface { - fmt.State - - // Language reports the requested language in which to render a message. - Language() language.Tag - - // TODO: more info: - // - sentence context - // - user preferences, like measurement systems - // - options -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen.go deleted file mode 100644 index 89cafe6a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "log" - - "golang.org/x/text/cldr" - "golang.org/x/text/internal/gen" - "golang.org/x/text/language" -) - -func main() { - r := gen.OpenCLDRCoreZip() - defer r.Close() - - d := &cldr.Decoder{} - data, err := d.DecodeZip(r) - if err != nil { - log.Fatalf("DecodeZip: %v", err) - } - - w := gen.NewCodeWriter() - defer w.WriteGoFile("tables.go", "internal") - - // Create parents table. - parents := make([]uint16, language.NumCompactTags) - for _, loc := range data.Locales() { - tag := language.MustParse(loc) - index, ok := language.CompactIndex(tag) - if !ok { - continue - } - parentIndex := 0 // und - for p := tag.Parent(); p != language.Und; p = p.Parent() { - if x, ok := language.CompactIndex(p); ok { - parentIndex = x - break - } - } - parents[index] = uint16(parentIndex) - } - - w.WriteComment(` - Parent maps a compact index of a tag to the compact index of the parent of - this tag.`) - w.WriteVar("Parent", parents) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen/code.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen/code.go deleted file mode 100644 index 8c2ed5e0..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen/code.go +++ /dev/null @@ -1,332 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gen - -import ( - "bytes" - "encoding/gob" - "fmt" - "hash" - "hash/fnv" - "io" - "log" - "os" - "reflect" - "strings" - "unicode" - "unicode/utf8" -) - -// This file contains utilities for generating code. - -// TODO: other write methods like: -// - slices, maps, types, etc. - -// CodeWriter is a utility for writing structured code. It computes the content -// hash and size of written content. It ensures there are newlines between -// written code blocks. -type CodeWriter struct { - buf bytes.Buffer - Size int - Hash hash.Hash32 // content hash - gob *gob.Encoder - // For comments we skip the usual one-line separator if they are followed by - // a code block. - skipSep bool -} - -func (w *CodeWriter) Write(p []byte) (n int, err error) { - return w.buf.Write(p) -} - -// NewCodeWriter returns a new CodeWriter. -func NewCodeWriter() *CodeWriter { - h := fnv.New32() - return &CodeWriter{Hash: h, gob: gob.NewEncoder(h)} -} - -// WriteGoFile appends the buffer with the total size of all created structures -// and writes it as a Go file to the the given file with the given package name. -func (w *CodeWriter) WriteGoFile(filename, pkg string) { - f, err := os.Create(filename) - if err != nil { - log.Fatalf("Could not create file %s: %v", filename, err) - } - defer f.Close() - if _, err = w.WriteGo(f, pkg); err != nil { - log.Fatalf("Error writing file %s: %v", filename, err) - } -} - -// WriteGo appends the buffer with the total size of all created structures and -// writes it as a Go file to the the given writer with the given package name. -func (w *CodeWriter) WriteGo(out io.Writer, pkg string) (n int, err error) { - sz := w.Size - w.WriteComment("Total table size %d bytes (%dKiB); checksum: %X\n", sz, sz/1024, w.Hash.Sum32()) - defer w.buf.Reset() - return WriteGo(out, pkg, w.buf.Bytes()) -} - -func (w *CodeWriter) printf(f string, x ...interface{}) { - fmt.Fprintf(w, f, x...) -} - -func (w *CodeWriter) insertSep() { - if w.skipSep { - w.skipSep = false - return - } - // Use at least two newlines to ensure a blank space between the previous - // block. WriteGoFile will remove extraneous newlines. - w.printf("\n\n") -} - -// WriteComment writes a comment block. All line starts are prefixed with "//". -// Initial empty lines are gobbled. The indentation for the first line is -// stripped from consecutive lines. -func (w *CodeWriter) WriteComment(comment string, args ...interface{}) { - s := fmt.Sprintf(comment, args...) - s = strings.Trim(s, "\n") - - // Use at least two newlines to ensure a blank space between the previous - // block. WriteGoFile will remove extraneous newlines. - w.printf("\n\n// ") - w.skipSep = true - - // strip first indent level. - sep := "\n" - for ; len(s) > 0 && (s[0] == '\t' || s[0] == ' '); s = s[1:] { - sep += s[:1] - } - - strings.NewReplacer(sep, "\n// ", "\n", "\n// ").WriteString(w, s) - - w.printf("\n") -} - -func (w *CodeWriter) writeSizeAndElementInfo(size, n int) { - w.printf("// Size: %d bytes, %d elements\n", size, n) -} - -func (w *CodeWriter) writeSizeInfo(size int) { - w.printf("// Size: %d bytes\n", size) -} - -// WriteConst writes a constant of the given name and value. -func (w *CodeWriter) WriteConst(name string, x interface{}) { - w.insertSep() - v := reflect.ValueOf(x) - - switch v.Type().Kind() { - case reflect.String: - w.writeSizeInfo(v.Len()) - // See golang.org/issue/13145. - const arbitraryCutoff = 16 - if v.Len() > arbitraryCutoff { - w.printf("var %s %s = ", name, typeName(x)) - } else { - w.printf("const %s %s = ", name, typeName(x)) - } - w.WriteString(v.String()) - w.printf("\n") - default: - w.printf("const %s = %#v\n", name, x) - } -} - -// WriteVar writes a variable of the given name and value. -func (w *CodeWriter) WriteVar(name string, x interface{}) { - w.insertSep() - v := reflect.ValueOf(x) - sz := int(v.Type().Size()) - - switch v.Type().Kind() { - case reflect.String: - w.writeSizeInfo(v.Len() + sz) - w.Size += sz - w.printf("var %s %s = ", name, typeName(x)) - w.WriteString(v.String()) - case reflect.Slice: - w.writeSizeAndElementInfo(sizeOfArray(x)+sz, v.Len()) - w.Size += sz - w.printf("var %s = ", name) - w.writeSlice(x, false, true) - case reflect.Array: - w.writeSizeAndElementInfo(sz, v.Len()) - w.printf("var %s = ", name) - w.writeSlice(x, true, true) - default: - w.printf("var %s %s = ", name, typeName(x)) - w.Size += sz - // TODO: size info? - w.gob.Encode(x) - w.printf("%#v", x) - } - w.printf("\n") -} - -// WriteString writes a string literal. -func (w *CodeWriter) WriteString(s string) { - io.WriteString(w.Hash, s) // content hash - w.Size += len(s) - - const maxInline = 40 - if len(s) <= maxInline { - w.printf("%q", s) - return - } - - // We will render the string as a multi-line string. - const maxWidth = 80 - 4 - len(`"`) - len(`" +`) - - // When starting on its own line, go fmt indents line 2+ an extra level. - n, max := maxWidth, maxWidth-4 - - // Print "" +\n, if a string does not start on its own line. - b := w.buf.Bytes() - if p := len(bytes.TrimRight(b, " \t")); p > 0 && b[p-1] != '\n' { - w.printf("\"\" +\n") - n, max = maxWidth, maxWidth - } - - w.printf(`"`) - - for sz, p := 0, 0; p < len(s); { - var r rune - r, sz = utf8.DecodeRuneInString(s[p:]) - out := s[p : p+sz] - chars := 1 - if !unicode.IsPrint(r) || r == utf8.RuneError { - switch sz { - case 1: - out = fmt.Sprintf("\\x%02x", s[p]) - case 2, 3: - out = fmt.Sprintf("\\u%04x", r) - case 4: - out = fmt.Sprintf("\\U%08x", r) - } - chars = len(out) - } - if n -= chars; n < 0 { - w.printf("\" +\n\"") - n = max - len(out) - } - w.printf("%s", out) - p += sz - } - w.printf(`"`) -} - -// WriteSlice writes a slice value. -func (w *CodeWriter) WriteSlice(x interface{}) { - w.writeSlice(x, false, false) -} - -// WriteArray writes an array value. -func (w *CodeWriter) WriteArray(x interface{}) { - w.writeSlice(x, true, false) -} - -func (w *CodeWriter) writeSlice(x interface{}, isArray, isVar bool) { - v := reflect.ValueOf(x) - w.gob.Encode(v.Len()) - w.Size += v.Len() * int(v.Type().Elem().Size()) - - name := typeName(x) - if isArray { - name = fmt.Sprintf("[%d]%s", v.Len(), name[strings.Index(name, "]")+1:]) - } - if isArray || isVar { - w.printf("%s{\n", name) - } else { - w.printf("%s{ // %d elements\n", name, v.Len()) - } - - switch kind := v.Type().Elem().Kind(); kind { - case reflect.String: - for _, s := range x.([]string) { - w.WriteString(s) - w.printf(",\n") - } - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, - reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - // nLine and nBlock are the number of elements per line and block. - nLine, nBlock, format := 8, 64, "%d," - switch kind { - case reflect.Uint8: - format = "%#02x," - case reflect.Uint16: - format = "%#04x," - case reflect.Uint32: - nLine, nBlock, format = 4, 32, "%#08x," - case reflect.Uint, reflect.Uint64: - nLine, nBlock, format = 4, 32, "%#016x," - case reflect.Int8: - nLine = 16 - } - n := nLine - for i := 0; i < v.Len(); i++ { - if i%nBlock == 0 && v.Len() > nBlock { - w.printf("// Entry %X - %X\n", i, i+nBlock-1) - } - x := v.Index(i).Interface() - w.gob.Encode(x) - w.printf(format, x) - if n--; n == 0 { - n = nLine - w.printf("\n") - } - } - w.printf("\n") - case reflect.Struct: - for i := 0; i < v.Len(); i++ { - x := v.Index(i).Interface() - w.gob.EncodeValue(v) - line := fmt.Sprintf("%#v,\n", x) - line = line[strings.IndexByte(line, '{'):] - w.printf(line) - } - default: - panic("gen: slice type not supported") - } - w.printf("}") -} - -func sizeOfArray(x interface{}) int { - v := reflect.ValueOf(x) - - size := v.Len() * int(v.Type().Elem().Size()) - switch v.Type().Elem().Kind() { - case reflect.String: - for _, s := range x.([]string) { - size += len(s) - } - case reflect.Slice: - for i := 0; i < v.Len(); i++ { - size += sizeOfArray(v.Index(i).Interface()) - } - case reflect.Array, reflect.Ptr, reflect.Map: - panic("gen: array element not supported.") - } - return size -} - -// WriteType writes a definition of the type of the given value and returns the -// type name. -func (w *CodeWriter) WriteType(x interface{}) string { - t := reflect.TypeOf(x) - w.printf("type %s struct {\n", t.Name()) - for i := 0; i < t.NumField(); i++ { - w.printf("\t%s %s\n", t.Field(i).Name, t.Field(i).Type) - } - w.printf("}\n") - return t.Name() -} - -// typeName returns the name of the go type of x. -func typeName(x interface{}) string { - t := reflect.ValueOf(x).Type() - return strings.Replace(fmt.Sprint(t), "main.", "", 1) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen/gen.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen/gen.go deleted file mode 100644 index 77d879bd..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen/gen.go +++ /dev/null @@ -1,207 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package gen contains common code for the various code generation tools in the -// text repository. Its usage ensures consistency between tools. -// -// This package defines command line flags that are common to most generation -// tools. The flags allow for specifying specific Unicode and CLDR versions -// in the public Unicode data repository (http://www.unicode.org/Public). -// -// A local Unicode data mirror can be set through the flag -local or the -// environment variable UNICODE_DIR. The former takes precedence. The local -// directory should follow the same structure as the public repository. -// -// IANA data can also optionally be mirrored by putting it in the iana directory -// rooted at the top of the local mirror. Beware, though, that IANA data is not -// versioned. So it is up to the developer to use the right version. -package gen - -import ( - "flag" - "fmt" - "go/format" - "io" - "log" - "net/http" - "os" - "path" - "path/filepath" - "unicode" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cldr" -) - -var ( - url = flag.String("url", - "http://www.unicode.org/Public", - "URL of Unicode database directory") - iana = flag.String("iana", - "http://www.iana.org", - "URL of the IANA repository") - unicodeVersion = flag.String("unicode", - getEnv("UNICODE_VERSION", unicode.Version), - "unicode version to use") - cldrVersion = flag.String("cldr", - getEnv("CLDR_VERSION", cldr.Version), - "cldr version to use") - // Allow an environment variable to specify the local directory. - // go generate doesn't allow specifying arguments; this is a useful - // alternative to specifying a local mirror. - localDir = flag.String("local", - os.Getenv("UNICODE_DIR"), - "directory containing local data files; for debugging only.") -) - -func getEnv(name, def string) string { - if v := os.Getenv(name); v != "" { - return v - } - return def -} - -// Init performs common initialization for a gen command. It parses the flags -// and sets up the standard logging parameters. -func Init() { - log.SetPrefix("") - log.SetFlags(log.Lshortfile) - flag.Parse() -} - -const header = `// This file was generated by go generate; DO NOT EDIT - -package %s - -` - -// UnicodeVersion reports the requested Unicode version. -func UnicodeVersion() string { - return *unicodeVersion -} - -// UnicodeVersion reports the requested CLDR version. -func CLDRVersion() string { - return *cldrVersion -} - -// IsLocal reports whether the user specified a local directory. -func IsLocal() bool { - return *localDir != "" -} - -// OpenUCDFile opens the requested UCD file. The file is specified relative to -// the public Unicode root directory. It will call log.Fatal if there are any -// errors. -func OpenUCDFile(file string) io.ReadCloser { - return openUnicode(path.Join(*unicodeVersion, "ucd", file)) -} - -// OpenCLDRCoreZip opens the CLDR core zip file. It will call log.Fatal if there -// are any errors. -func OpenCLDRCoreZip() io.ReadCloser { - return OpenUnicodeFile("cldr", *cldrVersion, "core.zip") -} - -// OpenUnicodeFile opens the requested file of the requested category from the -// root of the Unicode data archive. The file is specified relative to the -// public Unicode root directory. If version is "", it will use the default -// Unicode version. It will call log.Fatal if there are any errors. -func OpenUnicodeFile(category, version, file string) io.ReadCloser { - if version == "" { - version = UnicodeVersion() - } - return openUnicode(path.Join(category, version, file)) -} - -// OpenIANAFile opens the requested IANA file. The file is specified relative -// to the IANA root, which is typically either http://www.iana.org or the -// iana directory in the local mirror. It will call log.Fatal if there are any -// errors. -func OpenIANAFile(path string) io.ReadCloser { - return Open(*iana, "iana", path) -} - -// Open opens subdir/path if a local directory is specified and the file exists, -// where subdir is a directory relative to the local root, or fetches it from -// urlRoot/path otherwise. It will call log.Fatal if there are any errors. -func Open(urlRoot, subdir, path string) io.ReadCloser { - if *localDir != "" { - path = filepath.FromSlash(path) - if f, err := os.Open(filepath.Join(*localDir, subdir, path)); err == nil { - return f - } - } - return get(urlRoot, path) -} - -func openUnicode(path string) io.ReadCloser { - if *localDir != "" { - path = filepath.FromSlash(path) - f, err := os.Open(filepath.Join(*localDir, path)) - if err != nil { - log.Fatal(err) - } - return f - } - return get(*url, path) -} - -func get(root, path string) io.ReadCloser { - url := root + "/" + path - fmt.Printf("Fetching %s...", url) - defer fmt.Println(" done.") - resp, err := http.Get(url) - if err != nil { - log.Fatalf("HTTP GET: %v", err) - } - if resp.StatusCode != 200 { - log.Fatalf("Bad GET status for %q: %q", url, resp.Status) - } - return resp.Body -} - -// TODO: use Write*Version in all applicable packages. - -// WriteUnicodeVersion writes a constant for the Unicode version from which the -// tables are generated. -func WriteUnicodeVersion(w io.Writer) { - fmt.Fprintf(w, "// UnicodeVersion is the Unicode version from which the tables in this package are derived.\n") - fmt.Fprintf(w, "const UnicodeVersion = %q\n\n", UnicodeVersion()) -} - -// WriteCLDRVersion writes a constant for the CLDR version from which the -// tables are generated. -func WriteCLDRVersion(w io.Writer) { - fmt.Fprintf(w, "// CLDRVersion is the CLDR version from which the tables in this package are derived.\n") - fmt.Fprintf(w, "const CLDRVersion = %q\n\n", CLDRVersion()) -} - -// WriteGoFile prepends a standard file comment and package statement to the -// given bytes, applies gofmt, and writes them to a file with the given name. -// It will call log.Fatal if there are any errors. -func WriteGoFile(filename, pkg string, b []byte) { - w, err := os.Create(filename) - if err != nil { - log.Fatalf("Could not create file %s: %v", filename, err) - } - defer w.Close() - if _, err = WriteGo(w, pkg, b); err != nil { - log.Fatalf("Error writing file %s: %v", filename, err) - } -} - -// WriteGo prepends a standard file comment and package statement to the given -// bytes, applies gofmt, and writes them to w. -func WriteGo(w io.Writer, pkg string, b []byte) (n int, err error) { - src := []byte(fmt.Sprintf(header, pkg)) - src = append(src, b...) - formatted, err := format.Source(src) - if err != nil { - // Print the generated code even in case of an error so that the - // returned error can be meaningfully interpreted. - n, _ = w.Write(src) - return n, err - } - return w.Write(formatted) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen_test.go deleted file mode 100644 index 992ed9b9..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen_test.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package internal - -import ( - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -func TestParents(t *testing.T) { - testCases := []struct { - tag, parent string - }{ - {"af", "und"}, - {"en", "und"}, - {"en-001", "en"}, - {"en-AU", "en-001"}, - {"en-US", "en"}, - {"en-US-u-va-posix", "en-US"}, - {"ca-ES-valencia", "ca"}, // ca-ES has no data. - } - for _, tc := range testCases { - tag, ok := language.CompactIndex(language.MustParse(tc.tag)) - if !ok { - t.Fatalf("Could not get index of flag %s", tc.tag) - } - want, ok := language.CompactIndex(language.MustParse(tc.parent)) - if !ok { - t.Fatalf("Could not get index of parent %s of tag %s", tc.parent, tc.tag) - } - if got := int(Parent[tag]); got != want { - t.Errorf("Parent[%s] = %d; want %d (%s)", tc.tag, got, want, tc.parent) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/internal.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/internal.go deleted file mode 100644 index 4c8cdc7a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/internal.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go - -// Package internal contains non-exported functionality that are used by -// packages in the text repository. -package internal diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/match.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/match.go deleted file mode 100644 index d4a7856e..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/match.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package internal - -// This file contains matchers that implement CLDR inheritance. -// -// See http://unicode.org/reports/tr35/#Locale_Inheritance. -// -// Some of the inheritance described in this document is already handled by -// the cldr package. - -import ( - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -// TODO: consider if (some of the) matching algorithm needs to be public after -// getting some feel about what is generic and what is specific. - -// NewInheritanceMatcher returns a matcher that matches based on the inheritance -// chain. -// -// The matcher uses canonicalization and the parent relationship to find a -// match. The resulting match will always be either Und or a language with the -// same language and script as the requested language. It will not match -// languages for which there is understood to be mutual or one-directional -// intelligibility. -// -// A Match will indicate an Exact match if the language matches after -// canonicalization and High if the matched tag is a parent. -func NewInheritanceMatcher(t []language.Tag) language.Matcher { - tags := make(inheritanceMatcher) - for i, tag := range t { - ct, err := language.All.Canonicalize(tag) - if err != nil { - ct = tag - } - tags[ct] = i - } - return tags -} - -type inheritanceMatcher map[language.Tag]int - -func (m inheritanceMatcher) Match(want ...language.Tag) (language.Tag, int, language.Confidence) { - for _, t := range want { - ct, err := language.All.Canonicalize(t) - if err != nil { - ct = t - } - conf := language.Exact - for { - if index, ok := m[ct]; ok { - return ct, index, conf - } - if ct == language.Und { - break - } - ct = ct.Parent() - conf = language.High - } - } - return language.Und, 0, language.No -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/match_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/match_test.go deleted file mode 100644 index 89586ef1..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/match_test.go +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package internal - -import ( - "strings" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -func TestInheritanceMatcher(t *testing.T) { - for i, tt := range []struct { - haveTags string - wantTags string - match string - conf language.Confidence - }{ - {"und,en,en-US", "en-US", "en-US", language.Exact}, // most specific match - {"zh-Hant,zh", "zh-TW", "zh-Hant", language.High}, // zh-TW implies Hant. - {"und,zh", "zh-TW", "und", language.High}, // zh-TW does not match zh. - {"zh", "zh-TW", "und", language.No}, // zh-TW does not match zh. - {"iw,en,nl", "he", "he", language.Exact}, // matches after canonicalization - {"he,en,nl", "iw", "he", language.Exact}, // matches after canonicalization - // Prefer first match over more specific match for various reasons: - // a) consistency of user interface is more important than an exact match, - // b) _if_ und is specified, it should be considered a correct and useful match, - // Note that a call to this Match will almost always be with a single tag. - {"und,en,en-US", "he,en-US", "und", language.High}, - } { - have := parseTags(tt.haveTags) - m := NewInheritanceMatcher(have) - tag, index, conf := m.Match(parseTags(tt.wantTags)...) - want := language.Raw.Make(tt.match) - if tag != want { - t.Errorf("%d:tag: got %q; want %q", i, tag, want) - } - if conf != language.No { - if got, _ := language.All.Canonicalize(have[index]); got != want { - t.Errorf("%d:index: got %q; want %q ", i, got, want) - } - } - if conf != tt.conf { - t.Errorf("%d:conf: got %v; want %v", i, conf, tt.conf) - } - } -} - -func parseTags(list string) (out []language.Tag) { - for _, s := range strings.Split(list, ",") { - out = append(out, language.Raw.Make(strings.TrimSpace(s))) - } - return out -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tables.go deleted file mode 100644 index 204f3f10..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tables.go +++ /dev/null @@ -1,70 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package internal - -// Parent maps a compact index of a tag to the compact index of the parent of -// this tag. -// Size: 842 bytes, 409 elements -var Parent = []uint16{ - // Entry 0 - 3F - 0x0000, 0x002c, 0x008c, 0x0000, 0x0003, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0026, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x002c, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0034, 0x0034, 0x0034, - 0x0034, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 40 - 7F - 0x0000, 0x0000, 0x0041, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0041, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0041, 0x0042, 0x0041, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - // Entry 80 - BF - 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0042, 0x0041, 0x0042, 0x0042, 0x0042, - 0x0042, 0x0042, 0x0042, 0x0000, 0x0000, 0x0094, 0x0094, 0x0096, - 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0094, - 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0094, 0x0096, - 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0000, 0x0000, 0x0000, - 0x0000, 0x00b0, 0x0000, 0x00b2, 0x00b2, 0x0000, 0x0000, 0x0000, - 0x0000, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, - // Entry C0 - FF - 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, - 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d5, 0x00d5, - 0x0000, 0x0000, 0x0000, 0x0000, 0x00db, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e4, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f6, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 100 - 13F - 0x0000, 0x0000, 0x0000, 0x0000, 0x0103, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x010b, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0116, - 0x0116, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0120, 0x0000, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x012e, - 0x0000, 0x0000, 0x0131, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x0137, 0x013d, 0x013d, - // Entry 140 - 17F - 0x0000, 0x0140, 0x0140, 0x0000, 0x0000, 0x0000, 0x0145, 0x0000, - 0x0000, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0153, 0x0153, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0160, 0x0160, 0x0160, 0x0000, 0x0164, 0x0000, 0x0166, - 0x0166, 0x0166, 0x0000, 0x016a, 0x0000, 0x016c, 0x0000, 0x016e, - 0x016e, 0x0000, 0x0171, 0x0171, 0x0171, 0x0000, 0x0000, 0x0176, - 0x0000, 0x0000, 0x0179, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - // Entry 180 - 1BF - 0x0000, 0x0000, 0x0181, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x018e, - 0x0000, 0x0000, 0x0191, 0x0191, 0x0191, 0x0000, 0x0195, 0x0196, - 0x0000, -} - -// Total table size 842 bytes (0KiB); checksum: 812E7B76 diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag/tag.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag/tag.go deleted file mode 100644 index 2cf4ecd2..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag/tag.go +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package tag contains functionality handling tags and related data. -package tag - -import "sort" - -// An Index converts tags to a compact numeric value. -// -// All elements are of size 4. Tags may be up to 4 bytes long. Excess bytes can -// be used to store additional information about the tag. -type Index string - -// Elem returns the element data at the given index. -func (s Index) Elem(x int) string { - return string(s[x*4 : x*4+4]) -} - -// Index reports the index of the given key or -1 if it could not be found. -// Only the first len(key) bytes from the start of the 4-byte entries will be -// considered for the search and the first match in Index will be returned. -func (s Index) Index(key []byte) int { - n := len(key) - // search the index of the first entry with an equal or higher value than - // key in s. - index := sort.Search(len(s)/4, func(i int) bool { - return cmp(s[i*4:i*4+n], key) != -1 - }) - i := index * 4 - if cmp(s[i:i+len(key)], key) != 0 { - return -1 - } - return index -} - -// Next finds the next occurrence of key after index x, which must have been -// obtained from a call to Index using the same key. It returns x+1 or -1. -func (s Index) Next(key []byte, x int) int { - if x++; x*4 < len(s) && cmp(s[x*4:x*4+len(key)], key) == 0 { - return x - } - return -1 -} - -// cmp returns an integer comparing a and b lexicographically. -func cmp(a Index, b []byte) int { - n := len(a) - if len(b) < n { - n = len(b) - } - for i, c := range b[:n] { - switch { - case a[i] > c: - return 1 - case a[i] < c: - return -1 - } - } - switch { - case len(a) < len(b): - return -1 - case len(a) > len(b): - return 1 - } - return 0 -} - -// Compare returns an integer comparing a and b lexicographically. -func Compare(a string, b []byte) int { - return cmp(Index(a), b) -} - -// FixCase reformats b to the same pattern of cases as form. -// If returns false if string b is malformed. -func FixCase(form string, b []byte) bool { - if len(form) != len(b) { - return false - } - for i, c := range b { - if form[i] <= 'Z' { - if c >= 'a' { - c -= 'z' - 'Z' - } - if c < 'A' || 'Z' < c { - return false - } - } else { - if c <= 'Z' { - c += 'z' - 'Z' - } - if c < 'a' || 'z' < c { - return false - } - } - b[i] = c - } - return true -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag/tag_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag/tag_test.go deleted file mode 100644 index da174a24..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag/tag_test.go +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package tag - -import ( - "strings" - "testing" -) - -var strdata = []string{ - "aa ", - "aaa ", - "aaaa", - "aaab", - "aab ", - "ab ", - "ba ", - "xxxx", - "\xff\xff\xff\xff", -} - -var testCases = map[string]int{ - "a": 0, - "aa": 0, - "aaa": 1, - "aa ": 0, - "aaaa": 2, - "aaab": 3, - "b": 6, - "ba": 6, - " ": -1, - "aaax": -1, - "bbbb": -1, - "zzzz": -1, -} - -func TestIndex(t *testing.T) { - index := Index(strings.Join(strdata, "")) - for k, v := range testCases { - if i := index.Index([]byte(k)); i != v { - t.Errorf("%s: got %d; want %d", k, i, v) - } - } -} - -func TestFixCase(t *testing.T) { - tests := []string{ - "aaaa", "AbCD", "abcd", - "Zzzz", "AbCD", "Abcd", - "Zzzz", "AbC", "", - "XXX", "ab ", "", - "XXX", "usd", "USD", - "cmn", "AB ", "", - "gsw", "CMN", "cmn", - } - for tc := tests; len(tc) > 0; tc = tc[3:] { - b := []byte(tc[1]) - if !FixCase(tc[0], b) { - b = nil - } - if string(b) != tc[2] { - t.Errorf("FixCase(%q, %q) = %q; want %q", tc[0], tc[1], b, tc[2]) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/testtext/codesize.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/testtext/codesize.go deleted file mode 100644 index 5fc5eaec..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/testtext/codesize.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package testtext - -import ( - "bytes" - "fmt" - "io/ioutil" - "os" - "os/exec" - "path/filepath" - "runtime" -) - -// CodeSize builds the given code sample and returns the binary size or en error -// if an error occurred. The code sample typically will look like this: -// package main -// import "golang.org/x/text/somepackage" -// func main() { -// somepackage.Func() // reference Func to cause it to be linked in. -// } -// See dict_test.go in the display package for an example. -func CodeSize(s string) (int, error) { - // Write the file. - tmpdir, err := ioutil.TempDir(os.TempDir(), "testtext") - if err != nil { - return 0, fmt.Errorf("testtext: failed to create tmpdir: %v", err) - } - defer os.RemoveAll(tmpdir) - filename := filepath.Join(tmpdir, "main.go") - if err := ioutil.WriteFile(filename, []byte(s), 0644); err != nil { - return 0, fmt.Errorf("testtext: failed to write main.go: %v", err) - } - - // Build the binary. - w := &bytes.Buffer{} - cmd := exec.Command(filepath.Join(runtime.GOROOT(), "bin", "go"), "build", "-o", "main") - cmd.Dir = tmpdir - cmd.Stderr = w - cmd.Stdout = w - if err := cmd.Run(); err != nil { - return 0, fmt.Errorf("testtext: failed to execute command: %v\nmain.go:\n%vErrors:%s", err, s, w) - } - - // Determine the size. - fi, err := os.Stat(filepath.Join(tmpdir, "main")) - if err != nil { - return 0, fmt.Errorf("testtext: failed to get file info: %v", err) - } - return int(fi.Size()), nil -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/testtext/text.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/testtext/text.go deleted file mode 100644 index 6974f808..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/testtext/text.go +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package testtext contains test data that is of common use to the text -// repository. -package testtext - -const ( - - // ASCII is an ASCII string containing all letters in the English alphabet. - ASCII = "The quick brown fox jumps over the lazy dog. " + - "The quick brown fox jumps over the lazy dog. " + - "The quick brown fox jumps over the lazy dog. " + - "The quick brown fox jumps over the lazy dog. " + - "The quick brown fox jumps over the lazy dog. " + - "The quick brown fox jumps over the lazy dog. " + - "The quick brown fox jumps over the lazy dog. " + - "The quick brown fox jumps over the lazy dog. " + - "The quick brown fox jumps over the lazy dog. " + - "The quick brown fox jumps over the lazy dog. " - - // Vietnamese is a snippet from http://creativecommons.org/licenses/by-sa/3.0/vn/ - Vietnamese = `Vá»›i các Ä‘iá»u kiện sau: Ghi nhận công của tác giả. -Nếu bạn sá»­ dụng, chuyển đổi, hoặc xây dá»±ng dá»± án từ -ná»™i dung được chia sẻ này, bạn phải áp dụng giấy phép này hoặc -má»™t giấy phép khác có các Ä‘iá»u khoản tÆ°Æ¡ng tá»± nhÆ° giấy phép này -cho dá»± án của bạn. Hiểu rằng: Miá»…n — Bất kỳ các Ä‘iá»u kiện nào -trên đây cÅ©ng có thể được miá»…n bá» nếu bạn được sá»± cho phép của -ngÆ°á»i sở hữu bản quyá»n. Phạm vi công chúng — Khi tác phẩm hoặc -bất kỳ chÆ°Æ¡ng nào của tác phẩm đã trong vùng dành cho công -chúng theo quy định của pháp luật thì tình trạng của nó không -bị ảnh hưởng bởi giấy phép trong bất kỳ trÆ°á»ng hợp nào.` - - // Russian is a snippet from http://creativecommons.org/licenses/by-sa/1.0/deed.ru - Russian = `При обÑзательном Ñоблюдении Ñледующих уÑловий: -Attribution — Ð’Ñ‹ должны атрибутировать произведение (указывать -автора и иÑточник) в порÑдке, предуÑмотренном автором или -лицензиаром (но только так, чтобы никоим образом не подразумевалоÑÑŒ, -что они поддерживают Ð²Ð°Ñ Ð¸Ð»Ð¸ иÑпользование вами данного произведениÑ). -Υπό τις ακόλουθες Ï€Ïοϋποθέσεις:` - - // Greek is a snippet from http://creativecommons.org/licenses/by-sa/3.0/gr/ - Greek = `ΑναφοÏά ΔημιουÏÎ³Î¿Ï â€” Θα Ï€Ïέπει να κάνετε την αναφοÏά στο έÏγο με τον -Ï„Ïόπο που έχει οÏιστεί από το δημιουÏγό ή το χοÏηγοÏντο την άδεια -(χωÏίς όμως να εννοείται με οποιονδήποτε Ï„Ïόπο ότι εγκÏίνουν εσάς ή -τη χÏήση του έÏγου από εσάς). ΠαÏόμοια Διανομή — Εάν αλλοιώσετε, -Ï„Ïοποποιήσετε ή δημιουÏγήσετε πεÏαιτέÏω βασισμένοι στο έÏγο θα -μποÏείτε να διανέμετε το έÏγο που θα Ï€ÏοκÏψει μόνο με την ίδια ή -παÏόμοια άδεια.` - - // Arabic is a snippet from http://creativecommons.org/licenses/by-sa/3.0/deed.ar - Arabic = `بموجب الشروط التالية نسب المصن٠— يجب عليك أن -تنسب العمل بالطريقة التي تحددها المؤل٠أو المرخص (ولكن ليس بأي حال من -الأحوال أن توحي وتقترح بتحول أو استخدامك للعمل). -المشاركة على قدم المساواة — إذا كنت يعدل ØŒ والتغيير ØŒ أو الاستÙادة -من هذا العمل ØŒ قد ينتج عن توزيع العمل إلا ÙÙŠ ظل تشابه او تطابق ÙÙ‰ واحد -لهذا الترخيص.` - - // Hebrew is a snippet from http://creativecommons.org/licenses/by-sa/1.0/il/ - Hebrew = `בכפוף לתנ××™× ×”×‘××™×: ייחוס — עליך לייחס ×ת היצירה (לתת קרדיט) ב×ופן -המצויין על-ידי היוצר ×ו מעניק הרישיון (×ך ×œ× ×‘×©×•× ×ופן המרמז על כך -×©×”× ×ª×•×ž×›×™× ×‘×š ×ו בשימוש שלך ביצירה). שיתוף ×–×”×” — ×× ×ª×—×œ×™×˜/×™ לשנות, -לעבד ×ו ליצור יצירה נגזרת בהסתמך על יצירה זו, תוכל/×™ להפיץ ×ת יצירתך -החדשה רק תחת ×ותו הרישיון ×ו רישיון דומה לרישיון ×–×”.` - - TwoByteUTF8 = Russian + Greek + Arabic + Hebrew - - // Thai is a snippet from http://creativecommons.org/licenses/by-sa/3.0/th/ - Thai = `ภายใต้เงื่อนไข ดังต่อไปนี้ : à¹à¸ªà¸”งที่มา — คุณต้องà¹à¸ªà¸”งที่ -มาของงานดังà¸à¸¥à¹ˆà¸²à¸§ ตามรูปà¹à¸šà¸šà¸—ี่ผู้สร้างสรรค์หรือผู้อนุà¸à¸²à¸•à¸à¸³à¸«à¸™à¸” (à¹à¸•à¹ˆ -ไม่ใช่ในลัà¸à¸©à¸“ะที่ว่า พวà¸à¹€à¸‚าสนับสนุนคุณหรือสนับสนุนà¸à¸²à¸£à¸—ี่ -คุณนำงานไปใช้) อนุà¸à¸²à¸•à¹à¸šà¸šà¹€à¸”ียวà¸à¸±à¸™ — หาà¸à¸„ุณดัดà¹à¸›à¸¥à¸‡ เปลี่ยนรูป หรื -อต่อเติมงานนี้ คุณต้องใช้สัà¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•à¹à¸šà¸šà¹€à¸”ียวà¸à¸±à¸™à¸«à¸£à¸·à¸­à¹à¸šà¸šà¸—ี่เหมื -อนà¸à¸±à¸šà¸ªà¸±à¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•à¸—ี่ใช้à¸à¸±à¸šà¸‡à¸²à¸™à¸™à¸µà¹‰à¹€à¸—่านั้น` - - ThreeByteUTF8 = Thai - - // Japanese is a snippet from http://creativecommons.org/licenses/by-sa/2.0/jp/ - Japanese = `ã‚ãªãŸã®å¾“ã†ã¹ãæ¡ä»¶ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚ -表示 — ã‚ãªãŸã¯åŽŸè‘—作者ã®ã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã‚’表示ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 -継承 — ã‚‚ã—ã‚ãªãŸãŒã“ã®ä½œå“を改変ã€å¤‰å½¢ã¾ãŸã¯åŠ å·¥ã—ãŸå ´åˆã€ -ã‚ãªãŸã¯ãã®çµæžœç”Ÿã˜ãŸä½œå“ã‚’ã“ã®ä½œå“ã¨åŒä¸€ã®è¨±è«¾æ¡ä»¶ã®ä¸‹ã§ã®ã¿ -頒布ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚` - - // Chinese is a snippet from http://creativecommons.org/licenses/by-sa/2.5/cn/ - Chinese = `您å¯ä»¥è‡ªç”±ï¼š å¤åˆ¶ã€å‘è¡Œã€å±•è§ˆã€è¡¨æ¼”ã€æ”¾æ˜ ã€ -广播或通过信æ¯ç½‘ç»œä¼ æ’­æœ¬ä½œå“ åˆ›ä½œæ¼”ç»Žä½œå“ -对本作å“进行商业性使用 惟须éµå®ˆä¸‹åˆ—æ¡ä»¶ï¼š -ç½²å — 您必须按照作者或者许å¯äººæŒ‡å®šçš„æ–¹å¼å¯¹ä½œå“进行署å。 -相åŒæ–¹å¼å…±äº« — 如果您改å˜ã€è½¬æ¢æœ¬ä½œå“或者以本作å“为基础进行创作, -您åªèƒ½é‡‡ç”¨ä¸Žæœ¬å议相åŒçš„许å¯åè®®å‘布基于本作å“的演绎作å“。` - - // Korean is a snippet from http://creativecommons.org/licenses/by-sa/2.0/kr/ - Korean = `다ìŒê³¼ ê°™ì€ ì¡°ê±´ì„ ë”°ë¼ì•¼ 합니다: 저작ìží‘œì‹œ -— 저작ìžë‚˜ ì´ìš©í—ˆë½ìžê°€ ì •í•œ 방법으로 ì €ìž‘ë¬¼ì˜ -ì›ì €ìž‘ìžë¥¼ 표시하여야 합니다(그러나 ì›ì €ìž‘ìžê°€ ì´ìš©ìžë‚˜ ì´ìš©ìžì˜ -ì´ìš©ì„ ë³´ì¦í•˜ê±°ë‚˜ 추천한다는 ì˜ë¯¸ë¡œ 표시해서는 안ë©ë‹ˆë‹¤). -ë™ì¼ì¡°ê±´ë³€ê²½í—ˆë½ — ì´ ì €ìž‘ë¬¼ì„ ì´ìš©í•˜ì—¬ 만든 ì´ì°¨ì  저작물ì—는 본 -ë¼ì´ì„ ìŠ¤ì™€ ë™ì¼í•œ ë¼ì´ì„ ìŠ¤ë¥¼ ì ìš©í•´ì•¼ 합니다.` - - CJK = Chinese + Japanese + Korean - - All = ASCII + Vietnamese + TwoByteUTF8 + ThreeByteUTF8 + CJK -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/compact.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/compact.go deleted file mode 100644 index 397b975c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/compact.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package triegen - -// This file defines Compacter and its implementations. - -import "io" - -// A Compacter generates an alternative, more space-efficient way to store a -// trie value block. A trie value block holds all possible values for the last -// byte of a UTF-8 encoded rune. Excluding ASCII characters, a trie value block -// always has 64 values, as a UTF-8 encoding ends with a byte in [0x80, 0xC0). -type Compacter interface { - // Size returns whether the Compacter could encode the given block as well - // as its size in case it can. len(v) is always 64. - Size(v []uint64) (sz int, ok bool) - - // Store stores the block using the Compacter's compression method. - // It returns a handle with which the block can be retrieved. - // len(v) is always 64. - Store(v []uint64) uint32 - - // Print writes the data structures associated to the given store to w. - Print(w io.Writer) error - - // Handler returns the name of a function that gets called during trie - // lookup for blocks generated by the Compacter. The function should be of - // the form func (n uint32, b byte) uint64, where n is the index returned by - // the Compacter's Store method and b is the last byte of the UTF-8 - // encoding, where 0x80 <= b < 0xC0, for which to do the lookup in the - // block. - Handler() string -} - -// simpleCompacter is the default Compacter used by builder. It implements a -// normal trie block. -type simpleCompacter builder - -func (b *simpleCompacter) Size([]uint64) (sz int, ok bool) { - return blockSize * b.ValueSize, true -} - -func (b *simpleCompacter) Store(v []uint64) uint32 { - h := uint32(len(b.ValueBlocks) - blockOffset) - b.ValueBlocks = append(b.ValueBlocks, v) - return h -} - -func (b *simpleCompacter) Print(io.Writer) error { - // Structures are printed in print.go. - return nil -} - -func (b *simpleCompacter) Handler() string { - panic("Handler should be special-cased for this Compacter") -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/data_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/data_test.go deleted file mode 100644 index 19b146c3..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/data_test.go +++ /dev/null @@ -1,875 +0,0 @@ -// This file is generated with "go test -tags generate". DO NOT EDIT! -// +build !generate - -package triegen_test - -// 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 *randTrie) lookup(s []byte) (v uint8, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return randValues[c0], 1 - case c0 < 0xC0: - 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 := randIndex[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 := randIndex[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 = randIndex[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 := randIndex[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 = randIndex[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 = randIndex[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 *randTrie) lookupUnsafe(s []byte) uint8 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return randValues[c0] - } - i := randIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = randIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = randIndex[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 *randTrie) lookupString(s string) (v uint8, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return randValues[c0], 1 - case c0 < 0xC0: - 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 := randIndex[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 := randIndex[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 = randIndex[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 := randIndex[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 = randIndex[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 = randIndex[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 *randTrie) lookupStringUnsafe(s string) uint8 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return randValues[c0] - } - i := randIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = randIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = randIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// randTrie. Total size: 9280 bytes (9.06 KiB). Checksum: 6debd324a8debb8f. -type randTrie struct{} - -func newRandTrie(i int) *randTrie { - return &randTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *randTrie) lookupValue(n uint32, b byte) uint8 { - switch { - default: - return uint8(randValues[n<<6+uint32(b)]) - } -} - -// randValues: 56 blocks, 3584 entries, 3584 bytes -// Block 3 is the zero block. -var randValues = [3584]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc9: 0x0001, - // Block 0x4, offset 0x100 - 0x100: 0x0001, - // Block 0x5, offset 0x140 - 0x155: 0x0001, - // Block 0x6, offset 0x180 - 0x196: 0x0001, - // Block 0x7, offset 0x1c0 - 0x1ef: 0x0001, - // Block 0x8, offset 0x200 - 0x206: 0x0001, - // Block 0x9, offset 0x240 - 0x258: 0x0001, - // Block 0xa, offset 0x280 - 0x288: 0x0001, - // Block 0xb, offset 0x2c0 - 0x2f2: 0x0001, - // Block 0xc, offset 0x300 - 0x304: 0x0001, - // Block 0xd, offset 0x340 - 0x34b: 0x0001, - // Block 0xe, offset 0x380 - 0x3ba: 0x0001, - // Block 0xf, offset 0x3c0 - 0x3f5: 0x0001, - // Block 0x10, offset 0x400 - 0x41d: 0x0001, - // Block 0x11, offset 0x440 - 0x442: 0x0001, - // Block 0x12, offset 0x480 - 0x4bb: 0x0001, - // Block 0x13, offset 0x4c0 - 0x4e9: 0x0001, - // Block 0x14, offset 0x500 - 0x53e: 0x0001, - // Block 0x15, offset 0x540 - 0x55f: 0x0001, - // Block 0x16, offset 0x580 - 0x5b7: 0x0001, - // Block 0x17, offset 0x5c0 - 0x5d9: 0x0001, - // Block 0x18, offset 0x600 - 0x60e: 0x0001, - // Block 0x19, offset 0x640 - 0x652: 0x0001, - // Block 0x1a, offset 0x680 - 0x68f: 0x0001, - // Block 0x1b, offset 0x6c0 - 0x6dc: 0x0001, - // Block 0x1c, offset 0x700 - 0x703: 0x0001, - // Block 0x1d, offset 0x740 - 0x741: 0x0001, - // Block 0x1e, offset 0x780 - 0x79b: 0x0001, - // Block 0x1f, offset 0x7c0 - 0x7f1: 0x0001, - // Block 0x20, offset 0x800 - 0x833: 0x0001, - // Block 0x21, offset 0x840 - 0x853: 0x0001, - // Block 0x22, offset 0x880 - 0x8a2: 0x0001, - // Block 0x23, offset 0x8c0 - 0x8f8: 0x0001, - // Block 0x24, offset 0x900 - 0x917: 0x0001, - // Block 0x25, offset 0x940 - 0x945: 0x0001, - // Block 0x26, offset 0x980 - 0x99e: 0x0001, - // Block 0x27, offset 0x9c0 - 0x9fd: 0x0001, - // Block 0x28, offset 0xa00 - 0xa0d: 0x0001, - // Block 0x29, offset 0xa40 - 0xa66: 0x0001, - // Block 0x2a, offset 0xa80 - 0xaab: 0x0001, - // Block 0x2b, offset 0xac0 - 0xaea: 0x0001, - // Block 0x2c, offset 0xb00 - 0xb2d: 0x0001, - // Block 0x2d, offset 0xb40 - 0xb54: 0x0001, - // Block 0x2e, offset 0xb80 - 0xb90: 0x0001, - // Block 0x2f, offset 0xbc0 - 0xbe5: 0x0001, - // Block 0x30, offset 0xc00 - 0xc28: 0x0001, - // Block 0x31, offset 0xc40 - 0xc7c: 0x0001, - // Block 0x32, offset 0xc80 - 0xcbf: 0x0001, - // Block 0x33, offset 0xcc0 - 0xcc7: 0x0001, - // Block 0x34, offset 0xd00 - 0xd34: 0x0001, - // Block 0x35, offset 0xd40 - 0xd61: 0x0001, - // Block 0x36, offset 0xd80 - 0xdb9: 0x0001, - // Block 0x37, offset 0xdc0 - 0xdda: 0x0001, -} - -// randIndex: 89 blocks, 5696 entries, 5696 bytes -// Block 0 is the zero block. -var randIndex = [5696]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xe1: 0x02, 0xe3: 0x03, 0xe4: 0x04, - 0xea: 0x05, 0xeb: 0x06, 0xec: 0x07, - 0xf0: 0x10, 0xf1: 0x24, 0xf2: 0x3d, 0xf3: 0x4f, 0xf4: 0x56, - // Block 0x4, offset 0x100 - 0x107: 0x01, - // Block 0x5, offset 0x140 - 0x16c: 0x02, - // Block 0x6, offset 0x180 - 0x19c: 0x03, - 0x1ae: 0x04, - // Block 0x7, offset 0x1c0 - 0x1d8: 0x05, - 0x1f7: 0x06, - // Block 0x8, offset 0x200 - 0x20c: 0x07, - // Block 0x9, offset 0x240 - 0x24a: 0x08, - // Block 0xa, offset 0x280 - 0x2b6: 0x09, - // Block 0xb, offset 0x2c0 - 0x2d5: 0x0a, - // Block 0xc, offset 0x300 - 0x31a: 0x0b, - // Block 0xd, offset 0x340 - 0x373: 0x0c, - // Block 0xe, offset 0x380 - 0x38b: 0x0d, - // Block 0xf, offset 0x3c0 - 0x3f0: 0x0e, - // Block 0x10, offset 0x400 - 0x433: 0x0f, - // Block 0x11, offset 0x440 - 0x45d: 0x10, - // Block 0x12, offset 0x480 - 0x491: 0x08, 0x494: 0x09, 0x497: 0x0a, - 0x49b: 0x0b, 0x49c: 0x0c, - 0x4a1: 0x0d, - 0x4ad: 0x0e, - 0x4ba: 0x0f, - // Block 0x13, offset 0x4c0 - 0x4c1: 0x11, - // Block 0x14, offset 0x500 - 0x531: 0x12, - // Block 0x15, offset 0x540 - 0x546: 0x13, - // Block 0x16, offset 0x580 - 0x5ab: 0x14, - // Block 0x17, offset 0x5c0 - 0x5d4: 0x11, - 0x5fe: 0x11, - // Block 0x18, offset 0x600 - 0x618: 0x0a, - // Block 0x19, offset 0x640 - 0x65b: 0x15, - // Block 0x1a, offset 0x680 - 0x6a0: 0x16, - // Block 0x1b, offset 0x6c0 - 0x6d2: 0x17, - 0x6f6: 0x18, - // Block 0x1c, offset 0x700 - 0x711: 0x19, - // Block 0x1d, offset 0x740 - 0x768: 0x1a, - // Block 0x1e, offset 0x780 - 0x783: 0x1b, - // Block 0x1f, offset 0x7c0 - 0x7f9: 0x1c, - // Block 0x20, offset 0x800 - 0x831: 0x1d, - // Block 0x21, offset 0x840 - 0x85e: 0x1e, - // Block 0x22, offset 0x880 - 0x898: 0x1f, - // Block 0x23, offset 0x8c0 - 0x8c7: 0x18, - 0x8d5: 0x14, - 0x8f7: 0x20, - 0x8fe: 0x1f, - // Block 0x24, offset 0x900 - 0x905: 0x21, - // Block 0x25, offset 0x940 - 0x966: 0x03, - // Block 0x26, offset 0x980 - 0x981: 0x07, 0x983: 0x11, - 0x989: 0x12, 0x98a: 0x13, 0x98e: 0x14, 0x98f: 0x15, - 0x992: 0x16, 0x995: 0x17, 0x996: 0x18, - 0x998: 0x19, 0x999: 0x1a, 0x99b: 0x1b, 0x99f: 0x1c, - 0x9a3: 0x1d, - 0x9ad: 0x1e, 0x9af: 0x1f, - 0x9b0: 0x20, 0x9b1: 0x21, - 0x9b8: 0x22, 0x9bd: 0x23, - // Block 0x27, offset 0x9c0 - 0x9cd: 0x22, - // Block 0x28, offset 0xa00 - 0xa0c: 0x08, - // Block 0x29, offset 0xa40 - 0xa6f: 0x1c, - // Block 0x2a, offset 0xa80 - 0xa90: 0x1a, - 0xaaf: 0x23, - // Block 0x2b, offset 0xac0 - 0xae3: 0x19, - 0xae8: 0x24, - 0xafc: 0x25, - // Block 0x2c, offset 0xb00 - 0xb13: 0x26, - // Block 0x2d, offset 0xb40 - 0xb67: 0x1c, - // Block 0x2e, offset 0xb80 - 0xb8f: 0x0b, - // Block 0x2f, offset 0xbc0 - 0xbcb: 0x27, - 0xbe7: 0x26, - // Block 0x30, offset 0xc00 - 0xc34: 0x16, - // Block 0x31, offset 0xc40 - 0xc62: 0x03, - // Block 0x32, offset 0xc80 - 0xcbb: 0x12, - // Block 0x33, offset 0xcc0 - 0xcdf: 0x09, - // Block 0x34, offset 0xd00 - 0xd34: 0x0a, - // Block 0x35, offset 0xd40 - 0xd41: 0x1e, - // Block 0x36, offset 0xd80 - 0xd83: 0x28, - // Block 0x37, offset 0xdc0 - 0xdc0: 0x15, - // Block 0x38, offset 0xe00 - 0xe1a: 0x15, - // Block 0x39, offset 0xe40 - 0xe65: 0x29, - // Block 0x3a, offset 0xe80 - 0xe86: 0x1f, - // Block 0x3b, offset 0xec0 - 0xeec: 0x18, - // Block 0x3c, offset 0xf00 - 0xf28: 0x2a, - // Block 0x3d, offset 0xf40 - 0xf53: 0x08, - // Block 0x3e, offset 0xf80 - 0xfa2: 0x2b, - 0xfaa: 0x17, - // Block 0x3f, offset 0xfc0 - 0xfc0: 0x25, 0xfc2: 0x26, - 0xfc9: 0x27, 0xfcd: 0x28, 0xfce: 0x29, - 0xfd5: 0x2a, - 0xfd8: 0x2b, 0xfd9: 0x2c, 0xfdf: 0x2d, - 0xfe1: 0x2e, 0xfe2: 0x2f, 0xfe3: 0x30, 0xfe6: 0x31, - 0xfe9: 0x32, 0xfec: 0x33, 0xfed: 0x34, 0xfef: 0x35, - 0xff1: 0x36, 0xff2: 0x37, 0xff3: 0x38, 0xff4: 0x39, - 0xffa: 0x3a, 0xffc: 0x3b, 0xffe: 0x3c, - // Block 0x40, offset 0x1000 - 0x102c: 0x2c, - // Block 0x41, offset 0x1040 - 0x1074: 0x2c, - // Block 0x42, offset 0x1080 - 0x108c: 0x08, - 0x10a0: 0x2d, - // Block 0x43, offset 0x10c0 - 0x10e8: 0x10, - // Block 0x44, offset 0x1100 - 0x110f: 0x13, - // Block 0x45, offset 0x1140 - 0x114b: 0x2e, - // Block 0x46, offset 0x1180 - 0x118b: 0x23, - 0x119d: 0x0c, - // Block 0x47, offset 0x11c0 - 0x11c3: 0x12, - 0x11f9: 0x0f, - // Block 0x48, offset 0x1200 - 0x121e: 0x1b, - // Block 0x49, offset 0x1240 - 0x1270: 0x2f, - // Block 0x4a, offset 0x1280 - 0x128a: 0x1b, - 0x12a7: 0x02, - // Block 0x4b, offset 0x12c0 - 0x12fb: 0x14, - // Block 0x4c, offset 0x1300 - 0x1333: 0x30, - // Block 0x4d, offset 0x1340 - 0x134d: 0x31, - // Block 0x4e, offset 0x1380 - 0x138e: 0x15, - // Block 0x4f, offset 0x13c0 - 0x13f4: 0x32, - // Block 0x50, offset 0x1400 - 0x141b: 0x33, - // Block 0x51, offset 0x1440 - 0x1448: 0x3e, 0x1449: 0x3f, 0x144a: 0x40, 0x144f: 0x41, - 0x1459: 0x42, 0x145c: 0x43, 0x145e: 0x44, 0x145f: 0x45, - 0x1468: 0x46, 0x1469: 0x47, 0x146c: 0x48, 0x146d: 0x49, 0x146e: 0x4a, - 0x1472: 0x4b, 0x1473: 0x4c, - 0x1479: 0x4d, 0x147b: 0x4e, - // Block 0x52, offset 0x1480 - 0x1480: 0x34, - 0x1499: 0x11, - 0x14b6: 0x2c, - // Block 0x53, offset 0x14c0 - 0x14e4: 0x0d, - // Block 0x54, offset 0x1500 - 0x1527: 0x08, - // Block 0x55, offset 0x1540 - 0x1555: 0x2b, - // Block 0x56, offset 0x1580 - 0x15b2: 0x35, - // Block 0x57, offset 0x15c0 - 0x15f2: 0x1c, 0x15f4: 0x29, - // Block 0x58, offset 0x1600 - 0x1600: 0x50, 0x1603: 0x51, - 0x1608: 0x52, 0x160a: 0x53, 0x160d: 0x54, 0x160e: 0x55, -} - -// 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 *multiTrie) lookup(s []byte) (v uint64, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return t.ascii[c0], 1 - case c0 < 0xC0: - 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 := t.utf8Start[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 := t.utf8Start[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 = multiIndex[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 := t.utf8Start[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 = multiIndex[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 = multiIndex[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 *multiTrie) lookupUnsafe(s []byte) uint64 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return t.ascii[c0] - } - i := t.utf8Start[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = multiIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = multiIndex[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 *multiTrie) lookupString(s string) (v uint64, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return t.ascii[c0], 1 - case c0 < 0xC0: - 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 := t.utf8Start[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 := t.utf8Start[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 = multiIndex[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 := t.utf8Start[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 = multiIndex[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 = multiIndex[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 *multiTrie) lookupStringUnsafe(s string) uint64 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return t.ascii[c0] - } - i := t.utf8Start[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = multiIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = multiIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// multiTrie. Total size: 18250 bytes (17.82 KiB). Checksum: a69a609d8696aa5e. -type multiTrie struct { - ascii []uint64 // index for ASCII bytes - utf8Start []uint8 // index for UTF-8 bytes >= 0xC0 -} - -func newMultiTrie(i int) *multiTrie { - h := multiTrieHandles[i] - return &multiTrie{multiValues[uint32(h.ascii)<<6:], multiIndex[uint32(h.multi)<<6:]} -} - -type multiTrieHandle struct { - ascii, multi uint8 -} - -// multiTrieHandles: 5 handles, 10 bytes -var multiTrieHandles = [5]multiTrieHandle{ - {0, 0}, // 8c1e77823143d35c: all - {0, 23}, // 8fb58ff8243b45b0: ASCII only - {0, 23}, // 8fb58ff8243b45b0: ASCII only 2 - {0, 24}, // 2ccc43994f11046f: BMP only - {30, 25}, // ce448591bdcb4733: No BMP -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *multiTrie) lookupValue(n uint32, b byte) uint64 { - switch { - default: - return uint64(multiValues[n<<6+uint32(b)]) - } -} - -// multiValues: 32 blocks, 2048 entries, 16384 bytes -// Block 3 is the zero block. -var multiValues = [2048]uint64{ - // Block 0x0, offset 0x0 - 0x03: 0x6e361699800b9fb8, 0x04: 0x52d3935a34f6f0b, 0x05: 0x2948319393e7ef10, - 0x07: 0x20f03b006704f663, 0x08: 0x6c15c0732bb2495f, 0x09: 0xe54e2c59d953551, - 0x0f: 0x33d8a825807d8037, 0x10: 0x6ecd93cb12168b92, 0x11: 0x6a81c9c0ce86e884, - 0x1f: 0xa03e77aac8be79b, 0x20: 0x28591d0e7e486efa, 0x21: 0x716fa3bc398dec8, - 0x3f: 0x4fd3bcfa72bce8b0, - // Block 0x1, offset 0x40 - 0x40: 0x3cbaef3db8ba5f12, 0x41: 0x2d262347c1f56357, - 0x7f: 0x782caa2d25a418a9, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x6bbd1f937b1ff5d2, 0xc1: 0x732e23088d2eb8a4, - // Block 0x4, offset 0x100 - 0x13f: 0x56f8c4c82f5962dc, - // Block 0x5, offset 0x140 - 0x140: 0x57dc4544729a5da2, 0x141: 0x2f62f9cd307ffa0d, - // Block 0x6, offset 0x180 - 0x1bf: 0x7bf4d0ebf302a088, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x1f0d67f249e59931, 0x1c1: 0x3011def73aa550c7, - // Block 0x8, offset 0x200 - 0x23f: 0x5de81c1dff6bf29d, - // Block 0x9, offset 0x240 - 0x240: 0x752c035737b825e8, 0x241: 0x1e793399081e3bb3, - // Block 0xa, offset 0x280 - 0x2bf: 0x6a28f01979cbf059, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x373a4b0f2cbd4c74, 0x2c1: 0x4fd2c288683b767c, - // Block 0xc, offset 0x300 - 0x33f: 0x5a10ffa9e29184fb, - // Block 0xd, offset 0x340 - 0x340: 0x700f9bdb53fff6a5, 0x341: 0xcde93df0427eb79, - // Block 0xe, offset 0x380 - 0x3bf: 0x74071288fff39c76, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x481fc2f510e5268a, 0x3c1: 0x7565c28164204849, - // Block 0x10, offset 0x400 - 0x43f: 0x5676a62fd49c6bec, - // Block 0x11, offset 0x440 - 0x440: 0x2f2d15776cbafc6b, 0x441: 0x4c55e8dc0ff11a3f, - // Block 0x12, offset 0x480 - 0x4bf: 0x69d6f0fe711fafc9, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x33181de28cfb062d, 0x4c1: 0x2ef3adc6bb2f2d02, - // Block 0x14, offset 0x500 - 0x53f: 0xe03b31814c95f8b, - // Block 0x15, offset 0x540 - 0x540: 0x3bf6dc9a1c115603, 0x541: 0x6984ec9b7f51f7fc, - // Block 0x16, offset 0x580 - 0x5bf: 0x3c02ea92fb168559, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x1badfe42e7629494, 0x5c1: 0x6dc4a554005f7645, - // Block 0x18, offset 0x600 - 0x63f: 0x3bb2ed2a72748f4b, - // Block 0x19, offset 0x640 - 0x640: 0x291354cd6767ec10, 0x641: 0x2c3a4715e3c070d6, - // Block 0x1a, offset 0x680 - 0x6bf: 0x352711cfb7236418, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x3a59d34fb8bceda, 0x6c1: 0x5e90d8ebedd64fa1, - // Block 0x1c, offset 0x700 - 0x73f: 0x7191a77b28d23110, - // Block 0x1d, offset 0x740 - 0x740: 0x4ca7f0c1623423d8, 0x741: 0x4f7156d996e2d0de, - // Block 0x1e, offset 0x780 - // Block 0x1f, offset 0x7c0 -} - -// multiIndex: 29 blocks, 1856 entries, 1856 bytes -// Block 0 is the zero block. -var multiIndex = [1856]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x01, 0xc3: 0x02, 0xc4: 0x03, 0xc7: 0x04, - 0xc8: 0x05, 0xcf: 0x06, - 0xd0: 0x07, - 0xdf: 0x08, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe7: 0x07, - 0xe8: 0x08, 0xef: 0x09, - 0xf0: 0x0e, 0xf1: 0x11, 0xf2: 0x13, 0xf3: 0x15, 0xf4: 0x17, - // Block 0x4, offset 0x100 - 0x120: 0x09, - 0x13f: 0x0a, - // Block 0x5, offset 0x140 - 0x140: 0x0b, - 0x17f: 0x0c, - // Block 0x6, offset 0x180 - 0x180: 0x0d, - // Block 0x7, offset 0x1c0 - 0x1ff: 0x0e, - // Block 0x8, offset 0x200 - 0x200: 0x0f, - // Block 0x9, offset 0x240 - 0x27f: 0x10, - // Block 0xa, offset 0x280 - 0x280: 0x11, - // Block 0xb, offset 0x2c0 - 0x2ff: 0x12, - // Block 0xc, offset 0x300 - 0x300: 0x13, - // Block 0xd, offset 0x340 - 0x37f: 0x14, - // Block 0xe, offset 0x380 - 0x380: 0x15, - // Block 0xf, offset 0x3c0 - 0x3ff: 0x16, - // Block 0x10, offset 0x400 - 0x410: 0x0a, - 0x41f: 0x0b, - 0x420: 0x0c, - 0x43f: 0x0d, - // Block 0x11, offset 0x440 - 0x440: 0x17, - // Block 0x12, offset 0x480 - 0x4bf: 0x18, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x0f, - 0x4ff: 0x10, - // Block 0x14, offset 0x500 - 0x500: 0x19, - // Block 0x15, offset 0x540 - 0x540: 0x12, - // Block 0x16, offset 0x580 - 0x5bf: 0x1a, - // Block 0x17, offset 0x5c0 - 0x5ff: 0x14, - // Block 0x18, offset 0x600 - 0x600: 0x1b, - // Block 0x19, offset 0x640 - 0x640: 0x16, - // Block 0x1a, offset 0x680 - // Block 0x1b, offset 0x6c0 - 0x6c2: 0x01, 0x6c3: 0x02, 0x6c4: 0x03, 0x6c7: 0x04, - 0x6c8: 0x05, 0x6cf: 0x06, - 0x6d0: 0x07, - 0x6df: 0x08, - 0x6e0: 0x02, 0x6e1: 0x03, 0x6e2: 0x04, 0x6e3: 0x05, 0x6e4: 0x06, 0x6e7: 0x07, - 0x6e8: 0x08, 0x6ef: 0x09, - // Block 0x1c, offset 0x700 - 0x730: 0x0e, 0x731: 0x11, 0x732: 0x13, 0x733: 0x15, 0x734: 0x17, -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/example_compact_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/example_compact_test.go deleted file mode 100644 index add81468..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/example_compact_test.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package triegen_test - -import ( - "fmt" - "io" - "io/ioutil" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen" -) - -func ExampleCompacter() { - t := triegen.NewTrie("root") - for r := rune(0); r < 10000; r += 64 { - t.Insert(r, 0x9015BADA55^uint64(r)) - } - sz, _ := t.Gen(ioutil.Discard) - - fmt.Printf("Size normal: %5d\n", sz) - - var c myCompacter - sz, _ = t.Gen(ioutil.Discard, triegen.Compact(&c)) - - fmt.Printf("Size compacted: %5d\n", sz) - - // Output: - // Size normal: 81344 - // Size compacted: 3224 -} - -// A myCompacter accepts a block if only the first value is given. -type myCompacter []uint64 - -func (c *myCompacter) Size(values []uint64) (sz int, ok bool) { - for _, v := range values[1:] { - if v != 0 { - return 0, false - } - } - return 8, true // the size of a uint64 -} - -func (c *myCompacter) Store(v []uint64) uint32 { - x := uint32(len(*c)) - *c = append(*c, v[0]) - return x -} - -func (c *myCompacter) Print(w io.Writer) error { - fmt.Fprintln(w, "var firstValue = []uint64{") - for _, v := range *c { - fmt.Fprintf(w, "\t%#x,\n", v) - } - fmt.Fprintln(w, "}") - return nil -} - -func (c *myCompacter) Handler() string { - return "getFirstValue" - - // Where getFirstValue is included along with the generated code: - // func getFirstValue(n uint32, b byte) uint64 { - // if b == 0x80 { // the first continuation byte - // return firstValue[n] - // } - // return 0 - // } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/example_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/example_test.go deleted file mode 100644 index 306ec6f0..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/example_test.go +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package triegen_test - -import ( - "fmt" - "io/ioutil" - "math/rand" - "unicode" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen" -) - -const seed = 0x12345 - -var genWriter = ioutil.Discard - -func randomRunes() map[rune]uint8 { - rnd := rand.New(rand.NewSource(seed)) - m := map[rune]uint8{} - for len(m) < 100 { - // Only set our random rune if it is a valid Unicode code point. - if r := rune(rnd.Int31n(unicode.MaxRune + 1)); []rune(string(r))[0] == r { - m[r] = 1 - } - } - return m -} - -// Example_build shows how to build a simple trie. It assigns the value 1 to -// 100 random runes generated by randomRunes. -func Example_build() { - t := triegen.NewTrie("rand") - - for r, _ := range randomRunes() { - t.Insert(r, 1) - } - sz, err := t.Gen(genWriter) - - fmt.Printf("Trie size: %d bytes\n", sz) - fmt.Printf("Error: %v\n", err) - - // Output: - // Trie size: 9280 bytes - // Error: <nil> -} - -// Example_lookup demonstrates how to use the trie generated by Example_build. -func Example_lookup() { - trie := newRandTrie(0) - - // The same set of runes used by Example_build. - runes := randomRunes() - - // Verify the right value is returned for all runes. - for r := rune(0); r <= unicode.MaxRune; r++ { - // Note that the return type of lookup is uint8. - if v, _ := trie.lookupString(string(r)); v != runes[r] { - fmt.Println("FAILURE") - return - } - } - fmt.Println("SUCCESS") - - // Output: - // SUCCESS -} - -// runeValues generates some random values for a set of interesting runes. -func runeValues() map[rune]uint64 { - rnd := rand.New(rand.NewSource(seed)) - m := map[rune]uint64{} - for p := 4; p <= unicode.MaxRune; p <<= 1 { - for d := -1; d <= 1; d++ { - m[rune(p+d)] = uint64(rnd.Int63()) - } - } - return m -} - -// ExampleGen_build demonstrates the creation of multiple tries sharing common -// blocks. ExampleGen_lookup demonstrates how to use the generated tries. -func ExampleGen_build() { - var tries []*triegen.Trie - - rv := runeValues() - for _, c := range []struct { - include func(rune) bool - name string - }{ - {func(r rune) bool { return true }, "all"}, - {func(r rune) bool { return r < 0x80 }, "ASCII only"}, - {func(r rune) bool { return r < 0x80 }, "ASCII only 2"}, - {func(r rune) bool { return r <= 0xFFFF }, "BMP only"}, - {func(r rune) bool { return r > 0xFFFF }, "No BMP"}, - } { - t := triegen.NewTrie(c.name) - tries = append(tries, t) - - for r, v := range rv { - if c.include(r) { - t.Insert(r, v) - } - } - } - sz, err := triegen.Gen(genWriter, "multi", tries) - - fmt.Printf("Trie size: %d bytes\n", sz) - fmt.Printf("Error: %v\n", err) - - // Output: - // Trie size: 18250 bytes - // Error: <nil> -} - -// ExampleGen_lookup shows how to look up values in the trie generated by -// ExampleGen_build. -func ExampleGen_lookup() { - rv := runeValues() - for i, include := range []func(rune) bool{ - func(r rune) bool { return true }, // all - func(r rune) bool { return r < 0x80 }, // ASCII only - func(r rune) bool { return r < 0x80 }, // ASCII only 2 - func(r rune) bool { return r <= 0xFFFF }, // BMP only - func(r rune) bool { return r > 0xFFFF }, // No BMP - } { - t := newMultiTrie(i) - - for r := rune(0); r <= unicode.MaxRune; r++ { - x := uint64(0) - if include(r) { - x = rv[r] - } - // As we convert from a valid rune, we know it is safe to use - // lookupStringUnsafe. - if v := t.lookupStringUnsafe(string(r)); x != v { - fmt.Println("FAILURE") - return - } - } - } - fmt.Println("SUCCESS") - - // Output: - // SUCCESS -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/gen_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/gen_test.go deleted file mode 100644 index 831627d7..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/gen_test.go +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build generate - -package triegen_test - -// The code in this file generates captures and writes the tries generated in -// the examples to data_test.go. To invoke it, run: -// go test -tags=generate -// -// Making the generation code a "test" allows us to link in the necessary test -// code. - -import ( - "log" - "os" - "os/exec" -) - -func init() { - const tmpfile = "tmpout" - const dstfile = "data_test.go" - - f, err := os.Create(tmpfile) - if err != nil { - log.Fatalf("Could not create output file: %v", err) - } - defer os.Remove(tmpfile) - defer f.Close() - - // We exit before this function returns, regardless of success or failure, - // so there's no need to save (and later restore) the existing genWriter - // value. - genWriter = f - - f.Write([]byte(header)) - - Example_build() - ExampleGen_build() - - if err := exec.Command("gofmt", "-w", tmpfile).Run(); err != nil { - log.Fatal(err) - } - os.Remove(dstfile) - os.Rename(tmpfile, dstfile) - - os.Exit(0) -} - -const header = `// This file is generated with "go test -tags generate". DO NOT EDIT! -// +build !generate - -package triegen_test -` - -// Stubs for generated tries. These are needed as we exclude data_test.go if -// the generate flag is set. This will clearly make the tests fail, but that -// is okay. It allows us to bootstrap. - -type trie struct{} - -func (t *trie) lookupString(string) (uint8, int) { return 0, 1 } -func (t *trie) lookupStringUnsafe(string) uint64 { return 0 } - -func newRandTrie(i int) *trie { return &trie{} } -func newMultiTrie(i int) *trie { return &trie{} } diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/print.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/print.go deleted file mode 100644 index fbfca8bb..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/print.go +++ /dev/null @@ -1,251 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package triegen - -import ( - "bytes" - "fmt" - "io" - "strings" - "text/template" -) - -// print writes all the data structures as well as the code necessary to use the -// trie to w. -func (b *builder) print(w io.Writer) error { - b.Stats.NValueEntries = len(b.ValueBlocks) * blockSize - b.Stats.NValueBytes = len(b.ValueBlocks) * blockSize * b.ValueSize - b.Stats.NIndexEntries = len(b.IndexBlocks) * blockSize - b.Stats.NIndexBytes = len(b.IndexBlocks) * blockSize * b.IndexSize - b.Stats.NHandleBytes = len(b.Trie) * 2 * b.IndexSize - - // If we only have one root trie, all starter blocks are at position 0 and - // we can access the arrays directly. - if len(b.Trie) == 1 { - // At this point we cannot refer to the generated tables directly. - b.ASCIIBlock = b.Name + "Values" - b.StarterBlock = b.Name + "Index" - } else { - // Otherwise we need to have explicit starter indexes in the trie - // structure. - b.ASCIIBlock = "t.ascii" - b.StarterBlock = "t.utf8Start" - } - - b.SourceType = "[]byte" - if err := lookupGen.Execute(w, b); err != nil { - return err - } - - b.SourceType = "string" - if err := lookupGen.Execute(w, b); err != nil { - return err - } - - if err := trieGen.Execute(w, b); err != nil { - return err - } - - for _, c := range b.Compactions { - if err := c.c.Print(w); err != nil { - return err - } - } - - return nil -} - -func printValues(n int, values []uint64) string { - w := &bytes.Buffer{} - boff := n * blockSize - fmt.Fprintf(w, "\t// Block %#x, offset %#x", n, boff) - var newline bool - for i, v := range values { - if i%6 == 0 { - newline = true - } - if v != 0 { - if newline { - fmt.Fprintf(w, "\n") - newline = false - } - fmt.Fprintf(w, "\t%#02x:%#04x, ", boff+i, v) - } - } - return w.String() -} - -func printIndex(b *builder, nr int, n *node) string { - w := &bytes.Buffer{} - boff := nr * blockSize - fmt.Fprintf(w, "\t// Block %#x, offset %#x", nr, boff) - var newline bool - for i, c := range n.children { - if i%8 == 0 { - newline = true - } - if c != nil { - v := b.Compactions[c.index.compaction].Offset + uint32(c.index.index) - if v != 0 { - if newline { - fmt.Fprintf(w, "\n") - newline = false - } - fmt.Fprintf(w, "\t%#02x:%#02x, ", boff+i, v) - } - } - } - return w.String() -} - -var ( - trieGen = template.Must(template.New("trie").Funcs(template.FuncMap{ - "printValues": printValues, - "printIndex": printIndex, - "title": strings.Title, - "dec": func(x int) int { return x - 1 }, - "psize": func(n int) string { - return fmt.Sprintf("%d bytes (%.2f KiB)", n, float64(n)/1024) - }, - }).Parse(trieTemplate)) - lookupGen = template.Must(template.New("lookup").Parse(lookupTemplate)) -) - -// TODO: consider the return type of lookup. It could be uint64, even if the -// internal value type is smaller. We will have to verify this with the -// performance of unicode/norm, which is very sensitive to such changes. -const trieTemplate = `{{$b := .}}{{$multi := gt (len .Trie) 1}} -// {{.Name}}Trie. Total size: {{psize .Size}}. Checksum: {{printf "%08x" .Checksum}}. -type {{.Name}}Trie struct { {{if $multi}} - ascii []{{.ValueType}} // index for ASCII bytes - utf8Start []{{.IndexType}} // index for UTF-8 bytes >= 0xC0 -{{end}}} - -func new{{title .Name}}Trie(i int) *{{.Name}}Trie { {{if $multi}} - h := {{.Name}}TrieHandles[i] - return &{{.Name}}Trie{ {{.Name}}Values[uint32(h.ascii)<<6:], {{.Name}}Index[uint32(h.multi)<<6:] } -} - -type {{.Name}}TrieHandle struct { - ascii, multi {{.IndexType}} -} - -// {{.Name}}TrieHandles: {{len .Trie}} handles, {{.Stats.NHandleBytes}} bytes -var {{.Name}}TrieHandles = [{{len .Trie}}]{{.Name}}TrieHandle{ -{{range .Trie}} { {{.ASCIIIndex}}, {{.StarterIndex}} }, // {{printf "%08x" .Checksum}}: {{.Name}} -{{end}}}{{else}} - return &{{.Name}}Trie{} -} -{{end}} -// lookupValue determines the type of block n and looks up the value for b. -func (t *{{.Name}}Trie) lookupValue(n uint32, b byte) {{.ValueType}}{{$last := dec (len .Compactions)}} { - switch { {{range $i, $c := .Compactions}} - {{if eq $i $last}}default{{else}}case n < {{$c.Cutoff}}{{end}}:{{if ne $i 0}} - n -= {{$c.Offset}}{{end}} - return {{print $b.ValueType}}({{$c.Handler}}){{end}} - } -} - -// {{.Name}}Values: {{len .ValueBlocks}} blocks, {{.Stats.NValueEntries}} entries, {{.Stats.NValueBytes}} bytes -// The third block is the zero block. -var {{.Name}}Values = [{{.Stats.NValueEntries}}]{{.ValueType}} { -{{range $i, $v := .ValueBlocks}}{{printValues $i $v}} -{{end}}} - -// {{.Name}}Index: {{len .IndexBlocks}} blocks, {{.Stats.NIndexEntries}} entries, {{.Stats.NIndexBytes}} bytes -// Block 0 is the zero block. -var {{.Name}}Index = [{{.Stats.NIndexEntries}}]{{.IndexType}} { -{{range $i, $v := .IndexBlocks}}{{printIndex $b $i $v}} -{{end}}} -` - -// TODO: consider allowing zero-length strings after evaluating performance with -// unicode/norm. -const lookupTemplate = ` -// lookup{{if eq .SourceType "string"}}String{{end}} 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 *{{.Name}}Trie) lookup{{if eq .SourceType "string"}}String{{end}}(s {{.SourceType}}) (v {{.ValueType}}, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return {{.ASCIIBlock}}[c0], 1 - case c0 < 0xC0: - 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 := {{.StarterBlock}}[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 := {{.StarterBlock}}[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 = {{.Name}}Index[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 := {{.StarterBlock}}[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 = {{.Name}}Index[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 = {{.Name}}Index[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 -} - -// lookup{{if eq .SourceType "string"}}String{{end}}Unsafe 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 *{{.Name}}Trie) lookup{{if eq .SourceType "string"}}String{{end}}Unsafe(s {{.SourceType}}) {{.ValueType}} { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return {{.ASCIIBlock}}[c0] - } - i := {{.StarterBlock}}[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = {{.Name}}Index[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = {{.Name}}Index[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} -` diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/triegen.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/triegen.go deleted file mode 100644 index 21d571ce..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/triegen/triegen.go +++ /dev/null @@ -1,494 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package triegen implements a code generator for a trie for associating -// unsigned integer values with UTF-8 encoded runes. -// -// Many of the go.text packages use tries for storing per-rune information. A -// trie is especially useful if many of the runes have the same value. If this -// is the case, many blocks can be expected to be shared allowing for -// information on many runes to be stored in little space. -// -// As most of the lookups are done directly on []byte slices, the tries use the -// UTF-8 bytes directly for the lookup. This saves a conversion from UTF-8 to -// runes and contributes a little bit to better performance. It also naturally -// provides a fast path for ASCII. -// -// Space is also an issue. There are many code points defined in Unicode and as -// a result tables can get quite large. So every byte counts. The triegen -// package automatically chooses the smallest integer values to represent the -// tables. Compacters allow further compression of the trie by allowing for -// alternative representations of individual trie blocks. -// -// triegen allows generating multiple tries as a single structure. This is -// useful when, for example, one wants to generate tries for several languages -// that have a lot of values in common. Some existing libraries for -// internationalization store all per-language data as a dynamically loadable -// chunk. The go.text packages are designed with the assumption that the user -// typically wants to compile in support for all supported languages, in line -// with the approach common to Go to create a single standalone binary. The -// multi-root trie approach can give significant storage savings in this -// scenario. -// -// triegen generates both tables and code. The code is optimized to use the -// automatically chosen data types. The following code is generated for a Trie -// or multiple Tries named "foo": -// - type fooTrie -// The trie type. -// -// - func newFooTrie(x int) *fooTrie -// Trie constructor, where x is the index of the trie passed to Gen. -// -// - func (t *fooTrie) lookup(s []byte) (v uintX, sz int) -// The lookup method, where uintX is automatically chosen. -// -// - func lookupString, lookupUnsafe and lookupStringUnsafe -// Variants of the above. -// -// - var fooValues and fooIndex and any tables generated by Compacters. -// The core trie data. -// -// - var fooTrieHandles -// Indexes of starter blocks in case of multiple trie roots. -// -// It is recommended that users test the generated trie by checking the returned -// value for every rune. Such exhaustive tests are possible as the the number of -// runes in Unicode is limited. -package triegen - -// TODO: Arguably, the internally optimized data types would not have to be -// exposed in the generated API. We could also investigate not generating the -// code, but using it through a package. We would have to investigate the impact -// on performance of making such change, though. For packages like unicode/norm, -// small changes like this could tank performance. - -import ( - "encoding/binary" - "fmt" - "hash/crc64" - "io" - "log" - "unicode/utf8" -) - -// builder builds a set of tries for associating values with runes. The set of -// tries can share common index and value blocks. -type builder struct { - Name string - - // ValueType is the type of the trie values looked up. - ValueType string - - // ValueSize is the byte size of the ValueType. - ValueSize int - - // IndexType is the type of trie index values used for all UTF-8 bytes of - // a rune except the last one. - IndexType string - - // IndexSize is the byte size of the IndexType. - IndexSize int - - // SourceType is used when generating the lookup functions. If the user - // requests StringSupport, all lookup functions will be generated for - // string input as well. - SourceType string - - Trie []*Trie - - IndexBlocks []*node - ValueBlocks [][]uint64 - Compactions []compaction - Checksum uint64 - - ASCIIBlock string - StarterBlock string - - indexBlockIdx map[uint64]int - valueBlockIdx map[uint64]nodeIndex - asciiBlockIdx map[uint64]int - - // Stats are used to fill out the template. - Stats struct { - NValueEntries int - NValueBytes int - NIndexEntries int - NIndexBytes int - NHandleBytes int - } - - err error -} - -// A nodeIndex encodes the index of a node, which is defined by the compaction -// which stores it and an index within the compaction. For internal nodes, the -// compaction is always 0. -type nodeIndex struct { - compaction int - index int -} - -// compaction keeps track of stats used for the compaction. -type compaction struct { - c Compacter - blocks []*node - maxHandle uint32 - totalSize int - - // Used by template-based generator and thus exported. - Cutoff uint32 - Offset uint32 - Handler string -} - -func (b *builder) setError(err error) { - if b.err == nil { - b.err = err - } -} - -// An Option can be passed to Gen. -type Option func(b *builder) error - -// Compact configures the trie generator to use the given Compacter. -func Compact(c Compacter) Option { - return func(b *builder) error { - b.Compactions = append(b.Compactions, compaction{ - c: c, - Handler: c.Handler() + "(n, b)"}) - return nil - } -} - -// Gen writes Go code for a shared trie lookup structure to w for the given -// Tries. The generated trie type will be called nameTrie. newNameTrie(x) will -// return the *nameTrie for tries[x]. A value can be looked up by using one of -// the various lookup methods defined on nameTrie. It returns the table size of -// the generated trie. -func Gen(w io.Writer, name string, tries []*Trie, opts ...Option) (sz int, err error) { - // The index contains two dummy blocks, followed by the zero block. The zero - // block is at offset 0x80, so that the offset for the zero block for - // continuation bytes is 0. - b := &builder{ - Name: name, - Trie: tries, - IndexBlocks: []*node{{}, {}, {}}, - Compactions: []compaction{{ - Handler: name + "Values[n<<6+uint32(b)]", - }}, - // The 0 key in indexBlockIdx and valueBlockIdx is the hash of the zero - // block. - indexBlockIdx: map[uint64]int{0: 0}, - valueBlockIdx: map[uint64]nodeIndex{0: {}}, - asciiBlockIdx: map[uint64]int{}, - } - b.Compactions[0].c = (*simpleCompacter)(b) - - for _, f := range opts { - if err := f(b); err != nil { - return 0, err - } - } - b.build() - if b.err != nil { - return 0, b.err - } - if err = b.print(w); err != nil { - return 0, err - } - return b.Size(), nil -} - -// A Trie represents a single root node of a trie. A builder may build several -// overlapping tries at once. -type Trie struct { - root *node - - hiddenTrie -} - -// hiddenTrie contains values we want to be visible to the template generator, -// but hidden from the API documentation. -type hiddenTrie struct { - Name string - Checksum uint64 - ASCIIIndex int - StarterIndex int -} - -// NewTrie returns a new trie root. -func NewTrie(name string) *Trie { - return &Trie{ - &node{ - children: make([]*node, blockSize), - values: make([]uint64, utf8.RuneSelf), - }, - hiddenTrie{Name: name}, - } -} - -// Gen is a convenience wrapper around the Gen func passing t as the only trie -// and uses the name passed to NewTrie. It returns the size of the generated -// tables. -func (t *Trie) Gen(w io.Writer, opts ...Option) (sz int, err error) { - return Gen(w, t.Name, []*Trie{t}, opts...) -} - -// node is a node of the intermediate trie structure. -type node struct { - // children holds this node's children. It is always of length 64. - // A child node may be nil. - children []*node - - // values contains the values of this node. If it is non-nil, this node is - // either a root or leaf node: - // For root nodes, len(values) == 128 and it maps the bytes in [0x00, 0x7F]. - // For leaf nodes, len(values) == 64 and it maps the bytes in [0x80, 0xBF]. - values []uint64 - - index nodeIndex -} - -// Insert associates value with the given rune. Insert will panic if a non-zero -// value is passed for an invalid rune. -func (t *Trie) Insert(r rune, value uint64) { - if value == 0 { - return - } - s := string(r) - if []rune(s)[0] != r && value != 0 { - // Note: The UCD tables will always assign what amounts to a zero value - // to a surrogate. Allowing a zero value for an illegal rune allows - // users to iterate over [0..MaxRune] without having to explicitly - // exclude surrogates, which would be tedious. - panic(fmt.Sprintf("triegen: non-zero value for invalid rune %U", r)) - } - if len(s) == 1 { - // It is a root node value (ASCII). - t.root.values[s[0]] = value - return - } - - n := t.root - for ; len(s) > 1; s = s[1:] { - if n.children == nil { - n.children = make([]*node, blockSize) - } - p := s[0] % blockSize - c := n.children[p] - if c == nil { - c = &node{} - n.children[p] = c - } - if len(s) > 2 && c.values != nil { - log.Fatalf("triegen: insert(%U): found internal node with values", r) - } - n = c - } - if n.values == nil { - n.values = make([]uint64, blockSize) - } - if n.children != nil { - log.Fatalf("triegen: insert(%U): found leaf node that also has child nodes", r) - } - n.values[s[0]-0x80] = value -} - -// Size returns the number of bytes the generated trie will take to store. It -// needs to be exported as it is used in the templates. -func (b *builder) Size() int { - // Index blocks. - sz := len(b.IndexBlocks) * blockSize * b.IndexSize - - // Skip the first compaction, which represents the normal value blocks, as - // its totalSize does not account for the ASCII blocks, which are managed - // separately. - sz += len(b.ValueBlocks) * blockSize * b.ValueSize - for _, c := range b.Compactions[1:] { - sz += c.totalSize - } - - // TODO: this computation does not account for the fixed overhead of a using - // a compaction, either code or data. As for data, though, the typical - // overhead of data is in the order of bytes (2 bytes for cases). Further, - // the savings of using a compaction should anyway be substantial for it to - // be worth it. - - // For multi-root tries, we also need to account for the handles. - if len(b.Trie) > 1 { - sz += 2 * b.IndexSize * len(b.Trie) - } - return sz -} - -func (b *builder) build() { - // Compute the sizes of the values. - var vmax uint64 - for _, t := range b.Trie { - vmax = maxValue(t.root, vmax) - } - b.ValueType, b.ValueSize = getIntType(vmax) - - // Compute all block allocations. - // TODO: first compute the ASCII blocks for all tries and then the other - // nodes. ASCII blocks are more restricted in placement, as they require two - // blocks to be placed consecutively. Processing them first may improve - // sharing (at least one zero block can be expected to be saved.) - for _, t := range b.Trie { - b.Checksum += b.buildTrie(t) - } - - // Compute the offsets for all the Compacters. - offset := uint32(0) - for i := range b.Compactions { - c := &b.Compactions[i] - c.Offset = offset - offset += c.maxHandle + 1 - c.Cutoff = offset - } - - // Compute the sizes of indexes. - // TODO: different byte positions could have different sizes. So far we have - // not found a case where this is beneficial. - imax := uint64(b.Compactions[len(b.Compactions)-1].Cutoff) - for _, ib := range b.IndexBlocks { - if x := uint64(ib.index.index); x > imax { - imax = x - } - } - b.IndexType, b.IndexSize = getIntType(imax) -} - -func maxValue(n *node, max uint64) uint64 { - if n == nil { - return max - } - for _, c := range n.children { - max = maxValue(c, max) - } - for _, v := range n.values { - if max < v { - max = v - } - } - return max -} - -func getIntType(v uint64) (string, int) { - switch { - case v < 1<<8: - return "uint8", 1 - case v < 1<<16: - return "uint16", 2 - case v < 1<<32: - return "uint32", 4 - } - return "uint64", 8 -} - -const ( - blockSize = 64 - - // Subtract two blocks to offset 0x80, the first continuation byte. - blockOffset = 2 - - // Subtract three blocks to offset 0xC0, the first non-ASCII starter. - rootBlockOffset = 3 -) - -var crcTable = crc64.MakeTable(crc64.ISO) - -func (b *builder) buildTrie(t *Trie) uint64 { - n := t.root - - // Get the ASCII offset. For the first trie, the ASCII block will be at - // position 0. - hasher := crc64.New(crcTable) - binary.Write(hasher, binary.BigEndian, n.values) - hash := hasher.Sum64() - - v, ok := b.asciiBlockIdx[hash] - if !ok { - v = len(b.ValueBlocks) - b.asciiBlockIdx[hash] = v - - b.ValueBlocks = append(b.ValueBlocks, n.values[:blockSize], n.values[blockSize:]) - if v == 0 { - // Add the zero block at position 2 so that it will be assigned a - // zero reference in the lookup blocks. - // TODO: always do this? This would allow us to remove a check from - // the trie lookup, but at the expense of extra space. Analyze - // performance for unicode/norm. - b.ValueBlocks = append(b.ValueBlocks, make([]uint64, blockSize)) - } - } - t.ASCIIIndex = v - - // Compute remaining offsets. - t.Checksum = b.computeOffsets(n, true) - // We already subtracted the normal blockOffset from the index. Subtract the - // difference for starter bytes. - t.StarterIndex = n.index.index - (rootBlockOffset - blockOffset) - return t.Checksum -} - -func (b *builder) computeOffsets(n *node, root bool) uint64 { - // For the first trie, the root lookup block will be at position 3, which is - // the offset for UTF-8 non-ASCII starter bytes. - first := len(b.IndexBlocks) == rootBlockOffset - if first { - b.IndexBlocks = append(b.IndexBlocks, n) - } - - // We special-case the cases where all values recursively are 0. This allows - // for the use of a zero block to which all such values can be directed. - hash := uint64(0) - if n.children != nil || n.values != nil { - hasher := crc64.New(crcTable) - for _, c := range n.children { - var v uint64 - if c != nil { - v = b.computeOffsets(c, false) - } - binary.Write(hasher, binary.BigEndian, v) - } - binary.Write(hasher, binary.BigEndian, n.values) - hash = hasher.Sum64() - } - - if first { - b.indexBlockIdx[hash] = rootBlockOffset - blockOffset - } - - // Compacters don't apply to internal nodes. - if n.children != nil { - v, ok := b.indexBlockIdx[hash] - if !ok { - v = len(b.IndexBlocks) - blockOffset - b.IndexBlocks = append(b.IndexBlocks, n) - b.indexBlockIdx[hash] = v - } - n.index = nodeIndex{0, v} - } else { - h, ok := b.valueBlockIdx[hash] - if !ok { - bestI, bestSize := 0, blockSize*b.ValueSize - for i, c := range b.Compactions[1:] { - if sz, ok := c.c.Size(n.values); ok && bestSize > sz { - bestI, bestSize = i+1, sz - } - } - c := &b.Compactions[bestI] - c.totalSize += bestSize - v := c.c.Store(n.values) - if c.maxHandle < v { - c.maxHandle = v - } - h = nodeIndex{bestI, int(v)} - b.valueBlockIdx[hash] = h - } - n.index = h - } - return hash -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd/example_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd/example_test.go deleted file mode 100644 index e52f889f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd/example_test.go +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ucd_test - -import ( - "fmt" - "strings" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd" -) - -func Example() { - // Read rune-by-rune from UnicodeData. - var count int - p := ucd.New(strings.NewReader(unicodeData)) - for p.Next() { - count++ - if lower := p.Runes(ucd.SimpleLowercaseMapping); lower != nil { - fmt.Printf("lower(%U) -> %U\n", p.Rune(0), lower[0]) - } - } - if err := p.Err(); err != nil { - fmt.Println(err) - } - fmt.Println("Number of runes visited:", count) - - // Read raw ranges from Scripts. - p = ucd.New(strings.NewReader(scripts), ucd.KeepRanges) - for p.Next() { - start, end := p.Range(0) - fmt.Printf("%04X..%04X: %s\n", start, end, p.String(1)) - } - if err := p.Err(); err != nil { - fmt.Println(err) - } - - // Output: - // lower(U+00C0) -> U+00E0 - // lower(U+00C1) -> U+00E1 - // lower(U+00C2) -> U+00E2 - // lower(U+00C3) -> U+00E3 - // lower(U+00C4) -> U+00E4 - // Number of runes visited: 6594 - // 0000..001F: Common - // 0020..0020: Common - // 0021..0023: Common - // 0024..0024: Common -} - -// Excerpt from UnicodeData.txt -const unicodeData = ` -00B9;SUPERSCRIPT ONE;No;0;EN;<super> 0031;;1;1;N;SUPERSCRIPT DIGIT ONE;;;; -00BA;MASCULINE ORDINAL INDICATOR;Lo;0;L;<super> 006F;;;;N;;;;; -00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;;;; -00BC;VULGAR FRACTION ONE QUARTER;No;0;ON;<fraction> 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;; -00BD;VULGAR FRACTION ONE HALF;No;0;ON;<fraction> 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;; -00BE;VULGAR FRACTION THREE QUARTERS;No;0;ON;<fraction> 0033 2044 0034;;;3/4;N;FRACTION THREE QUARTERS;;;; -00BF;INVERTED QUESTION MARK;Po;0;ON;;;;;N;;;;; -00C0;LATIN CAPITAL LETTER A WITH GRAVE;Lu;0;L;0041 0300;;;;N;LATIN CAPITAL LETTER A GRAVE;;;00E0; -00C1;LATIN CAPITAL LETTER A WITH ACUTE;Lu;0;L;0041 0301;;;;N;LATIN CAPITAL LETTER A ACUTE;;;00E1; -00C2;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Lu;0;L;0041 0302;;;;N;LATIN CAPITAL LETTER A CIRCUMFLEX;;;00E2; -00C3;LATIN CAPITAL LETTER A WITH TILDE;Lu;0;L;0041 0303;;;;N;LATIN CAPITAL LETTER A TILDE;;;00E3; -00C4;LATIN CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0041 0308;;;;N;LATIN CAPITAL LETTER A DIAERESIS;;;00E4; - -# A legacy rune range. -3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;; -4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;; -` - -// Excerpt from Scripts.txt -const scripts = ` -# Property: Script -# ================================================ - -0000..001F ; Common # Cc [32] <control-0000>..<control-001F> -0020 ; Common # Zs SPACE -0021..0023 ; Common # Po [3] EXCLAMATION MARK..NUMBER SIGN -0024 ; Common # Sc DOLLAR SIGN -` diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd/ucd.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd/ucd.go deleted file mode 100644 index 0b0e5a03..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd/ucd.go +++ /dev/null @@ -1,332 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package ucd provides a parser for Unicode Character Database files, the -// format of which is defined in http://www.unicode.org/reports/tr44/. See -// http://www.unicode.org/Public/UCD/latest/ucd/ for example files. -// -// It currently does not support substitutions of missing fields. -package ucd - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "io" - "regexp" - "strconv" - "strings" -) - -// UnicodeData.txt fields. -const ( - CodePoint = iota - Name - GeneralCategory - CanonicalCombiningClass - BidiClass - DecompMapping - DecimalValue - DigitValue - NumericValue - BidiMirrored - Unicode1Name - ISOComment - SimpleUppercaseMapping - SimpleLowercaseMapping - SimpleTitlecaseMapping -) - -// An Option is used to configure a Parser. -type Option func(p *Parser) - -func keepRanges(p *Parser) { - p.keepRanges = true -} - -var ( - // KeepRanges prevents the expansion of ranges. The raw ranges can be - // obtained by calling Range(0) on the parser. - KeepRanges Option = keepRanges -) - -// The Part option register a handler for lines starting with a '@'. The text -// after a '@' is available as the first field. Comments are handled as usual. -func Part(f func(p *Parser)) Option { - return func(p *Parser) { - p.partHandler = f - } -} - -// A Parser parses Unicode Character Database (UCD) files. -type Parser struct { - scanner *bufio.Scanner - - keepRanges bool // Don't expand rune ranges in field 0. - - err error - comment []byte - field [][]byte - // parsedRange is needed in case Range(0) is called more than once for one - // field. In some cases this requires scanning ahead. - parsedRange bool - rangeStart, rangeEnd rune - - partHandler func(p *Parser) -} - -func (p *Parser) setError(err error) { - if p.err == nil { - p.err = err - } -} - -func (p *Parser) getField(i int) []byte { - if i >= len(p.field) { - p.setError(fmt.Errorf("ucd: index of field %d out of bounds", i)) - return nil - } - return p.field[i] -} - -// Err returns a non-nil error if any error occurred during parsing. -func (p *Parser) Err() error { - return p.err -} - -// New returns a Parser for the given Reader. -func New(r io.Reader, o ...Option) *Parser { - p := &Parser{ - scanner: bufio.NewScanner(r), - } - for _, f := range o { - f(p) - } - return p -} - -// Next parses the next line in the file. It returns true if a line was parsed -// and false if it reached the end of the file. -func (p *Parser) Next() bool { - if !p.keepRanges && p.rangeStart < p.rangeEnd { - p.rangeStart++ - return true - } - p.comment = nil - p.field = p.field[:0] - p.parsedRange = false - - for p.scanner.Scan() { - b := p.scanner.Bytes() - if len(b) == 0 || b[0] == '#' { - continue - } - - // Parse line - if i := bytes.IndexByte(b, '#'); i != -1 { - p.comment = bytes.TrimSpace(b[i+1:]) - b = b[:i] - } - if b[0] == '@' { - if p.partHandler != nil { - p.field = append(p.field, bytes.TrimSpace(b[1:])) - p.partHandler(p) - p.field = p.field[:0] - } - p.comment = nil - continue - } - for { - i := bytes.IndexByte(b, ';') - if i == -1 { - p.field = append(p.field, bytes.TrimSpace(b)) - break - } - p.field = append(p.field, bytes.TrimSpace(b[:i])) - b = b[i+1:] - } - if !p.keepRanges { - p.rangeStart, p.rangeEnd = p.getRange(0) - } - return true - } - p.setError(p.scanner.Err()) - return false -} - -func (p *Parser) parseRune(b []byte) rune { - if len(b) > 2 && b[0] == 'U' && b[1] == '+' { - b = b[2:] - } - x, err := strconv.ParseUint(string(b), 16, 32) - p.setError(err) - return rune(x) -} - -// Rune parses and returns field i as a rune. -func (p *Parser) Rune(i int) rune { - if i > 0 || p.keepRanges { - return p.parseRune(p.getField(i)) - } - return p.rangeStart -} - -// Runes interprets and returns field i as a sequence of runes. -func (p *Parser) Runes(i int) (runes []rune) { - add := func(b []byte) { - if b = bytes.TrimSpace(b); len(b) > 0 { - runes = append(runes, p.parseRune(b)) - } - } - for b := p.getField(i); ; { - i := bytes.IndexByte(b, ' ') - if i == -1 { - add(b) - break - } - add(b[:i]) - b = b[i+1:] - } - return -} - -var ( - errIncorrectLegacyRange = errors.New("ucd: unmatched <* First>") - - // reRange matches one line of a legacy rune range. - reRange = regexp.MustCompile("^([0-9A-F]*);<([^,]*), ([^>]*)>(.*)$") -) - -// Range parses and returns field i as a rune range. A range is inclusive at -// both ends. If the field only has one rune, first and last will be identical. -// It supports the legacy format for ranges used in UnicodeData.txt. -func (p *Parser) Range(i int) (first, last rune) { - if !p.keepRanges { - return p.rangeStart, p.rangeStart - } - return p.getRange(i) -} - -func (p *Parser) getRange(i int) (first, last rune) { - b := p.getField(i) - if k := bytes.Index(b, []byte("..")); k != -1 { - return p.parseRune(b[:k]), p.parseRune(b[k+2:]) - } - x := p.parseRune(b) - // Special case for UnicodeData that was retained for backwards compatibility. - if i == 0 && len(p.field) > 1 && bytes.HasSuffix(p.field[1], []byte("First>")) { - if p.parsedRange { - return p.rangeStart, p.rangeEnd - } - mf := reRange.FindStringSubmatch(p.scanner.Text()) - if mf == nil || !p.scanner.Scan() { - p.setError(errIncorrectLegacyRange) - return x, x - } - // Using Bytes would be more efficient here, but Text is a lot easier - // and this is not a frequent case. - ml := reRange.FindStringSubmatch(p.scanner.Text()) - if ml == nil || mf[2] != ml[2] || ml[3] != "Last" || mf[4] != ml[4] { - p.setError(errIncorrectLegacyRange) - return x, x - } - p.rangeStart, p.rangeEnd = x, p.parseRune(p.scanner.Bytes()[:len(ml[1])]) - p.parsedRange = true - return p.rangeStart, p.rangeEnd - } - return x, x -} - -// bools recognizes all valid UCD boolean values. -var bools = map[string]bool{ - "": false, - "N": false, - "No": false, - "F": false, - "False": false, - "Y": true, - "Yes": true, - "T": true, - "True": true, -} - -// Bool parses and returns field i as a boolean value. -func (p *Parser) Bool(i int) bool { - b := p.getField(i) - for s, v := range bools { - if bstrEq(b, s) { - return v - } - } - p.setError(strconv.ErrSyntax) - return false -} - -// Int parses and returns field i as an integer value. -func (p *Parser) Int(i int) int { - x, err := strconv.ParseInt(string(p.getField(i)), 10, 64) - p.setError(err) - return int(x) -} - -// Uint parses and returns field i as an unsigned integer value. -func (p *Parser) Uint(i int) uint { - x, err := strconv.ParseUint(string(p.getField(i)), 10, 64) - p.setError(err) - return uint(x) -} - -// Float parses and returns field i as a decimal value. -func (p *Parser) Float(i int) float64 { - x, err := strconv.ParseFloat(string(p.getField(i)), 64) - p.setError(err) - return x -} - -// String parses and returns field i as a string value. -func (p *Parser) String(i int) string { - return string(p.getField(i)) -} - -// Strings parses and returns field i as a space-separated list of strings. -func (p *Parser) Strings(i int) []string { - ss := strings.Split(string(p.getField(i)), " ") - for i, s := range ss { - ss[i] = strings.TrimSpace(s) - } - return ss -} - -// Comment returns the comments for the current line. -func (p *Parser) Comment() string { - return string(p.comment) -} - -var errUndefinedEnum = errors.New("ucd: undefined enum value") - -// Enum interprets and returns field i as a value that must be one of the values -// in enum. -func (p *Parser) Enum(i int, enum ...string) string { - b := p.getField(i) - for _, s := range enum { - if bstrEq(b, s) { - return s - } - } - p.setError(errUndefinedEnum) - return "" -} - -func bstrEq(b []byte, s string) bool { - if len(b) != len(s) { - return false - } - for i, c := range b { - if c != s[i] { - return false - } - } - return true -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd/ucd_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd/ucd_test.go deleted file mode 100644 index 11a6542e..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd/ucd_test.go +++ /dev/null @@ -1,105 +0,0 @@ -package ucd - -import ( - "strings" - "testing" -) - -const file = ` -# Comments should be skipped -# rune; bool; uint; int; float; runes; # Y -0..0005; Y; 0; 2; -5.25 ; 0 1 2 3 4 5; -6..0007; Yes ; 6; 1; -4.25 ; 0006 0007; -8; T ; 8 ; 0 ;-3.25 ;;# T -9; True ;9 ; -1;-2.25 ; 0009; - -# more comments to be ignored -@Part0 - -A; N; 10 ; -2; -1.25; ;# N -B; No; 11 ; -3; -0.25; -C; False;12; -4; 0.75; -D; ;13;-5;1.75; - -@Part1 # Another part. -# We test part comments get removed by not commenting the the next line. -E..10FFFF; F; 14 ; -6; 2.75; -` - -var want = []struct { - start, end rune -}{ - {0x00, 0x05}, - {0x06, 0x07}, - {0x08, 0x08}, - {0x09, 0x09}, - {0x0A, 0x0A}, - {0x0B, 0x0B}, - {0x0C, 0x0C}, - {0x0D, 0x0D}, - {0x0E, 0x10FFFF}, -} - -func TestGetters(t *testing.T) { - parts := [][2]string{ - {"Part0", ""}, - {"Part1", "Another part."}, - } - handler := func(p *Parser) { - if len(parts) == 0 { - t.Error("Part handler invoked too many times.") - return - } - want := parts[0] - parts = parts[1:] - if got0, got1 := p.String(0), p.Comment(); got0 != want[0] || got1 != want[1] { - t.Errorf(`part: got %q, %q; want %q"`, got0, got1, want) - } - } - - p := New(strings.NewReader(file), KeepRanges, Part(handler)) - for i := 0; p.Next(); i++ { - start, end := p.Range(0) - w := want[i] - if start != w.start || end != w.end { - t.Fatalf("%d:Range(0); got %#x..%#x; want %#x..%#x", i, start, end, w.start, w.end) - } - if w.start == w.end && p.Rune(0) != w.start { - t.Errorf("%d:Range(0).start: got %U; want %U", i, p.Rune(0), w.start) - } - if got, want := p.Bool(1), w.start <= 9; got != want { - t.Errorf("%d:Bool(1): got %v; want %v", i, got, want) - } - if got := p.Rune(4); got != 0 || p.Err() == nil { - t.Errorf("%d:Rune(%q): got no error; want error", i, p.String(1)) - } - p.err = nil - if got := p.Uint(2); rune(got) != start { - t.Errorf("%d:Uint(2): got %v; want %v", i, got, start) - } - if got, want := p.Int(3), 2-i; got != want { - t.Errorf("%d:Int(3): got %v; want %v", i, got, want) - } - if got, want := p.Float(4), -5.25+float64(i); got != want { - t.Errorf("%d:Int(3): got %v; want %v", i, got, want) - } - if got := p.Runes(5); got == nil { - if p.String(5) != "" { - t.Errorf("%d:Runes(5): expected non-empty list", i) - } - } else { - if got[0] != start || got[len(got)-1] != end { - t.Errorf("%d:Runes(5): got %#x; want %#x..%#x", i, got, start, end) - } - } - if got := p.Comment(); got != "" && got != p.String(1) { - t.Errorf("%d:Comment(): got %v; want %v", i, got, p.String(1)) - } - } - if err := p.Err(); err != nil { - t.Errorf("Parser error: %v", err) - } - if len(parts) != 0 { - t.Errorf("expected %d more invocations of part handler", len(parts)) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/Makefile b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/Makefile deleted file mode 100644 index 79f00578..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# 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. - -CLEANFILES+=maketables - -maketables: maketables.go - go build $^ - -tables: maketables - ./maketables > tables.go - gofmt -w -s tables.go - -# Build (but do not run) maketables during testing, -# just to make sure it still compiles. -testshort: maketables diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/common.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/common.go deleted file mode 100644 index a255bb0a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/common.go +++ /dev/null @@ -1,16 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package language - -// This file contains code common to the maketables.go and the package code. - -// langAliasType is the type of an alias in langAliasMap. -type langAliasType int8 - -const ( - langDeprecated langAliasType = iota - langMacro - langLegacy - - langAliasTypeUnknown langAliasType = -1 -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/coverage.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/coverage.go deleted file mode 100644 index 101fd23c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/coverage.go +++ /dev/null @@ -1,197 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package language - -import ( - "fmt" - "sort" -) - -// The Coverage interface is used to define the level of coverage of an -// internationalization service. Note that not all types are supported by all -// services. As lists may be generated on the fly, it is recommended that users -// of a Coverage cache the results. -type Coverage interface { - // Tags returns the list of supported tags. - Tags() []Tag - - // BaseLanguages returns the list of supported base languages. - BaseLanguages() []Base - - // Scripts returns the list of supported scripts. - Scripts() []Script - - // Regions returns the list of supported regions. - Regions() []Region -} - -var ( - // Supported defines a Coverage that lists all supported subtags. Tags - // always returns nil. - Supported Coverage = allSubtags{} -) - -// TODO: -// - Support Variants, numbering systems. -// - CLDR coverage levels. -// - Set of common tags defined in this package. - -type allSubtags struct{} - -// Regions returns the list of supported regions. As all regions are in a -// consecutive range, it simply returns a slice of numbers in increasing order. -// The "undefined" region is not returned. -func (s allSubtags) Regions() []Region { - reg := make([]Region, numRegions) - for i := range reg { - reg[i] = Region{regionID(i + 1)} - } - return reg -} - -// Scripts returns the list of supported scripts. As all scripts are in a -// consecutive range, it simply returns a slice of numbers in increasing order. -// The "undefined" script is not returned. -func (s allSubtags) Scripts() []Script { - scr := make([]Script, numScripts) - for i := range scr { - scr[i] = Script{scriptID(i + 1)} - } - return scr -} - -// BaseLanguages returns the list of all supported base languages. It generates -// the list by traversing the internal structures. -func (s allSubtags) BaseLanguages() []Base { - base := make([]Base, 0, numLanguages) - for i := 0; i < langNoIndexOffset; i++ { - // We included "und" already for the value 0. - if i != nonCanonicalUnd { - base = append(base, Base{langID(i)}) - } - } - i := langNoIndexOffset - for _, v := range langNoIndex { - for k := 0; k < 8; k++ { - if v&1 == 1 { - base = append(base, Base{langID(i)}) - } - v >>= 1 - i++ - } - } - return base -} - -// Tags always returns nil. -func (s allSubtags) Tags() []Tag { - return nil -} - -// coverage is used used by NewCoverage which is used as a convenient way for -// creating Coverage implementations for partially defined data. Very often a -// package will only need to define a subset of slices. coverage provides a -// convenient way to do this. Moreover, packages using NewCoverage, instead of -// their own implementation, will not break if later new slice types are added. -type coverage struct { - tags func() []Tag - bases func() []Base - scripts func() []Script - regions func() []Region -} - -func (s *coverage) Tags() []Tag { - if s.tags == nil { - return nil - } - return s.tags() -} - -// bases implements sort.Interface and is used to sort base languages. -type bases []Base - -func (b bases) Len() int { - return len(b) -} - -func (b bases) Swap(i, j int) { - b[i], b[j] = b[j], b[i] -} - -func (b bases) Less(i, j int) bool { - return b[i].langID < b[j].langID -} - -// BaseLanguages returns the result from calling s.bases if it is specified or -// otherwise derives the set of supported base languages from tags. -func (s *coverage) BaseLanguages() []Base { - if s.bases == nil { - tags := s.Tags() - if len(tags) == 0 { - return nil - } - a := make([]Base, len(tags)) - for i, t := range tags { - a[i] = Base{langID(t.lang)} - } - sort.Sort(bases(a)) - k := 0 - for i := 1; i < len(a); i++ { - if a[k] != a[i] { - k++ - a[k] = a[i] - } - } - return a[:k+1] - } - return s.bases() -} - -func (s *coverage) Scripts() []Script { - if s.scripts == nil { - return nil - } - return s.scripts() -} - -func (s *coverage) Regions() []Region { - if s.regions == nil { - return nil - } - return s.regions() -} - -// NewCoverage returns a Coverage for the given lists. It is typically used by -// packages providing internationalization services to define their level of -// coverage. A list may be of type []T or func() []T, where T is either Tag, -// Base, Script or Region. The returned Coverage derives the value for Bases -// from Tags if no func or slice for []Base is specified. For other unspecified -// types the returned Coverage will return nil for the respective methods. -func NewCoverage(list ...interface{}) Coverage { - s := &coverage{} - for _, x := range list { - switch v := x.(type) { - case func() []Base: - s.bases = v - case func() []Script: - s.scripts = v - case func() []Region: - s.regions = v - case func() []Tag: - s.tags = v - case []Base: - s.bases = func() []Base { return v } - case []Script: - s.scripts = func() []Script { return v } - case []Region: - s.regions = func() []Region { return v } - case []Tag: - s.tags = func() []Tag { return v } - default: - panic(fmt.Sprintf("language: unsupported set type %T", v)) - } - } - return s -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/coverage_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/coverage_test.go deleted file mode 100644 index 8e08e5ca..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/coverage_test.go +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package language - -import ( - "fmt" - "reflect" - "testing" -) - -func TestSupported(t *testing.T) { - // To prove the results are correct for a type, we test that the number of - // results is identical to the number of results on record, that all results - // are distinct and that all results are valid. - tests := map[string]int{ - "BaseLanguages": numLanguages, - "Scripts": numScripts, - "Regions": numRegions, - "Tags": 0, - } - sup := reflect.ValueOf(Supported) - for name, num := range tests { - v := sup.MethodByName(name).Call(nil)[0] - if n := v.Len(); n != num { - t.Errorf("len(%s()) was %d; want %d", name, n, num) - } - dup := make(map[string]bool) - for i := 0; i < v.Len(); i++ { - x := v.Index(i).Interface() - // An invalid value will either cause a crash or result in a - // duplicate when passed to Sprint. - s := fmt.Sprint(x) - if dup[s] { - t.Errorf("%s: duplicate entry %q", name, s) - } - dup[s] = true - } - if len(dup) != v.Len() { - t.Errorf("%s: # unique entries was %d; want %d", name, len(dup), v.Len()) - } - } -} - -func TestNewCoverage(t *testing.T) { - bases := []Base{Base{0}, Base{3}, Base{7}} - scripts := []Script{Script{11}, Script{17}, Script{23}} - regions := []Region{Region{101}, Region{103}, Region{107}} - tags := []Tag{Make("pt"), Make("en"), Make("en-GB"), Make("en-US"), Make("pt-PT")} - fbases := func() []Base { return bases } - fscripts := func() []Script { return scripts } - fregions := func() []Region { return regions } - ftags := func() []Tag { return tags } - - tests := []struct { - desc string - list []interface{} - bases []Base - scripts []Script - regions []Region - tags []Tag - }{ - { - desc: "empty", - }, - { - desc: "bases", - list: []interface{}{bases}, - bases: bases, - }, - { - desc: "scripts", - list: []interface{}{scripts}, - scripts: scripts, - }, - { - desc: "regions", - list: []interface{}{regions}, - regions: regions, - }, - { - desc: "bases derives from tags", - list: []interface{}{tags}, - bases: []Base{Base{_en}, Base{_pt}}, - tags: tags, - }, - { - desc: "tags and bases", - list: []interface{}{tags, bases}, - bases: bases, - tags: tags, - }, - { - desc: "fully specified", - list: []interface{}{tags, bases, scripts, regions}, - bases: bases, - scripts: scripts, - regions: regions, - tags: tags, - }, - { - desc: "bases func", - list: []interface{}{fbases}, - bases: bases, - }, - { - desc: "scripts func", - list: []interface{}{fscripts}, - scripts: scripts, - }, - { - desc: "regions func", - list: []interface{}{fregions}, - regions: regions, - }, - { - desc: "tags func", - list: []interface{}{ftags}, - bases: []Base{Base{_en}, Base{_pt}}, - tags: tags, - }, - { - desc: "tags and bases", - list: []interface{}{ftags, fbases}, - bases: bases, - tags: tags, - }, - { - desc: "fully specified", - list: []interface{}{ftags, fbases, fscripts, fregions}, - bases: bases, - scripts: scripts, - regions: regions, - tags: tags, - }, - } - - for i, tt := range tests { - l := NewCoverage(tt.list...) - if a := l.BaseLanguages(); !reflect.DeepEqual(a, tt.bases) { - t.Errorf("%d:%s: BaseLanguages was %v; want %v", i, tt.desc, a, tt.bases) - } - if a := l.Scripts(); !reflect.DeepEqual(a, tt.scripts) { - t.Errorf("%d:%s: Scripts was %v; want %v", i, tt.desc, a, tt.scripts) - } - if a := l.Regions(); !reflect.DeepEqual(a, tt.regions) { - t.Errorf("%d:%s: Regions was %v; want %v", i, tt.desc, a, tt.regions) - } - if a := l.Tags(); !reflect.DeepEqual(a, tt.tags) { - t.Errorf("%d:%s: Tags was %v; want %v", i, tt.desc, a, tt.tags) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/data_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/data_test.go deleted file mode 100644 index 738df467..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/data_test.go +++ /dev/null @@ -1,416 +0,0 @@ -// 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 language - -type matchTest struct { - comment string - supported string - test []struct{ match, desired string } -} - -var matchTests = []matchTest{ - { - "basics", - "fr, en-GB, en", - []struct{ match, desired string }{ - {"en-GB", "en-GB"}, - {"en", "en-US"}, - {"fr", "fr-FR"}, - {"fr", "ja-JP"}, - }, - }, - { - "script fallbacks", - "zh-CN, zh-TW, iw", - []struct{ match, desired string }{ - {"zh-TW", "zh-Hant"}, - {"zh-CN", "zh"}, - {"zh-CN", "zh-Hans-CN"}, - {"zh-TW", "zh-Hant-HK"}, - {"iw", "he-IT"}, - }, - }, - { - "language-specific script fallbacks 1", - "en, sr, nl", - []struct{ match, desired string }{ - {"sr", "sr-Latn"}, - {"en", "sh"}, - {"en", "hr"}, - {"en", "bs"}, - {"en", "nl-Cyrl"}, - }, - }, - { - "language-specific script fallbacks 2", - "en, sh", - []struct{ match, desired string }{ - {"sh", "sr"}, - {"sh", "sr-Cyrl"}, - {"sh", "hr"}, - }, - }, - { - "both deprecated and not", - "fil, tl, iw, he", - []struct{ match, desired string }{ - {"he", "he-IT"}, - {"he", "he"}, - {"iw", "iw"}, - {"fil", "fil-IT"}, - {"fil", "fil"}, - {"tl", "tl"}, - }, - }, - { - "nearby languages", - "en, fil, ro, nn", - []struct{ match, desired string }{ - {"fil", "tl"}, - {"ro", "mo"}, - {"nn", "nb"}, - {"en", "ja"}, // make sure default works - }, - }, - { - "nearby languages: Nynorsk to BokmÃ¥l", - "en, nb", - []struct{ match, desired string }{ - {"nb", "nn"}, - }, - }, - { - "nearby languages: Danish does not match nn", - "en, nn", - []struct{ match, desired string }{ - {"en", "da"}, - }, - }, - { - "nearby languages: Danish matches no", - "en, no", - []struct{ match, desired string }{ - {"no", "da"}, - }, - }, - { - "nearby languages: Danish matches nb", - "en, nb", - []struct{ match, desired string }{ - {"nb", "da"}, - }, - }, - { - "prefer matching languages over language variants.", - "nn, en-GB", - []struct{ match, desired string }{ - {"en-GB", "no, en-US"}, - {"en-GB", "nb, en-US"}, - }, - }, - { - "deprecated version is closer than same language with other differences", - "nl, he, en-GB", - []struct{ match, desired string }{ - {"he", "iw, en-US"}, - }, - }, - { - "macro equivalent is closer than same language with other differences", - "nl, zh, en-GB, no", - []struct{ match, desired string }{ - {"zh", "cmn, en-US"}, - {"no", "nb, en-US"}, - }, - }, - { - "legacy equivalent is closer than same language with other differences", - "nl, fil, en-GB", - []struct{ match, desired string }{ - {"fil", "tl, en-US"}, - }, - }, - { - "exact over equivalent", - "en, ro, mo, ro-MD", - []struct{ match, desired string }{ - {"ro", "ro"}, - {"mo", "mo"}, - {"ro-MD", "ro-MD"}, - }, - }, - { - "maximization of legacy", - "sr-Cyrl, sr-Latn, ro, ro-MD", - []struct{ match, desired string }{ - {"sr-Latn", "sh"}, - {"ro-MD", "mo"}, - }, - }, - { - "empty", - "", - []struct{ match, desired string }{ - {"und", "fr"}, - {"und", "en"}, - }, - }, - { - "private use subtags", - "fr, en-GB, x-bork, es-ES, es-419", - []struct{ match, desired string }{ - {"fr", "x-piglatin"}, - {"x-bork", "x-bork"}, - }, - }, - { - "grandfathered codes", - "fr, i-klingon, en-Latn-US", - []struct{ match, desired string }{ - {"en-Latn-US", "en-GB-oed"}, - {"tlh", "i-klingon"}, - }, - }, - { - "exact match", - "fr, en-GB, ja, es-ES, es-MX", - []struct{ match, desired string }{ - {"ja", "ja, de"}, - }, - }, - { - "simple variant match", - "fr, en-GB, ja, es-ES, es-MX", - []struct{ match, desired string }{ - // Intentionally avoiding a perfect-match or two candidates for variant matches. - {"en-GB", "de, en-US"}, - // Fall back. - {"fr", "de, zh"}, - }, - }, - { - "best match for traditional Chinese", - // Scenario: An application that only supports Simplified Chinese (and some - // other languages), but does not support Traditional Chinese. zh-Hans-CN - // could be replaced with zh-CN, zh, or zh-Hans, it wouldn't make much of - // a difference. - "fr, zh-Hans-CN, en-US", - []struct{ match, desired string }{ - {"zh-Hans-CN", "zh-TW"}, - {"zh-Hans-CN", "zh-Hant"}, - // One can avoid a zh-Hant to zh-Hans match by including a second language - // preference which is a better match. - {"en-US", "zh-TW, en"}, - {"en-US", "zh-Hant-CN, en"}, - {"zh-Hans-CN", "zh-Hans, en"}, - }, - }, - // More specific region and script tie-breakers. - { - "more specific script should win in case regions are identical", - "af, af-Latn, af-Arab", - []struct{ match, desired string }{ - {"af", "af"}, - {"af", "af-ZA"}, - {"af-Latn", "af-Latn-ZA"}, - {"af-Latn", "af-Latn"}, - }, - }, - { - "more specific region should win", - "nl, nl-NL, nl-BE", - []struct{ match, desired string }{ - {"nl", "nl"}, - {"nl", "nl-Latn"}, - {"nl-NL", "nl-Latn-NL"}, - {"nl-NL", "nl-NL"}, - }, - }, - { - "more specific region wins over more specific script", - "nl, nl-Latn, nl-NL, nl-BE", - []struct{ match, desired string }{ - {"nl", "nl"}, - {"nl-Latn", "nl-Latn"}, - {"nl-NL", "nl-NL"}, - {"nl-NL", "nl-Latn-NL"}, - }, - }, - // Region distance tie-breakers. - { - "region distance Portuguese", - "pt, pt-PT", - []struct{ match, desired string }{ - {"pt-PT", "pt-ES"}, - }, - }, - { - "region distance French", - "en, fr, fr-CA, fr-CH", - []struct{ match, desired string }{ - {"fr-CA", "fr-US"}, - }, - }, - { - "region distance German", - "de-AT, de-DE, de-CH", - []struct{ match, desired string }{ - {"de-DE", "de"}, - }, - }, - { - "en-AU is closer to en-GB than to en (which is en-US)", - "en, en-GB, es-ES, es-419", - []struct{ match, desired string }{ - {"en-GB", "en-AU"}, - {"es-419", "es-MX"}, - {"es-ES", "es-PT"}, - }, - }, - // Test exceptions with "und". - // When the undefined language doesn't match anything in the list, return the default, as usual. - // max("und") = "en-Latn-US", and since matching is based on maximized tags, the undefined - // language would normally match English. But that would produce the counterintuitive results. - // Matching "und" to "it,en" would be "en" matching "en" to "it,und" would be "und". - // To avoid this max("und") is defined as "und" - { - "undefined", - "it, fr", - []struct{ match, desired string }{ - {"it", "und"}, - }, - }, - { - "und does not match en", - "it, en", - []struct{ match, desired string }{ - {"it", "und"}, - }, - }, - { - "undefined in priority list", - "it, und", - []struct{ match, desired string }{ - {"und", "und"}, - {"it", "en"}, - }, - }, - // Undefined scripts and regions. - { - "undefined", - "it, fr, zh", - []struct{ match, desired string }{ - {"fr", "und-FR"}, - {"zh", "und-CN"}, - {"zh", "und-Hans"}, - {"zh", "und-Hant"}, - {"it", "und-Latn"}, - }, - }, - // Early termination conditions: do not consider all desired strings if - // a match is good enough. - { - "match on maximized tag", - "fr, en-GB, ja, es-ES, es-MX", - []struct{ match, desired string }{ - // ja-JP matches ja on likely subtags, and it's listed first, - // thus it wins over the second preference en-GB. - {"ja", "ja-JP, en-GB"}, - {"ja", "ja-Jpan-JP, en-GB"}, - }, - }, - { - "pick best maximized tag", - "ja, ja-Jpan-US, ja-JP, en, ru", - []struct{ match, desired string }{ - {"ja", "ja-Jpan, ru"}, - {"ja-JP", "ja-JP, ru"}, - {"ja-Jpan-US", "ja-US, ru"}, - }, - }, - { - "termination: pick best maximized match", - "ja, ja-Jpan, ja-JP, en, ru", - []struct{ match, desired string }{ - {"ja-JP", "ja-Jpan-JP, ru"}, - {"ja-Jpan", "ja-Jpan, ru"}, - }, - }, - { - "no match on maximized", - "en, de, fr, ja", - []struct{ match, desired string }{ - // de maximizes to de-DE. - // Pick the exact match for the secondary language instead. - {"fr", "de-CH, fr"}, - }, - }, - - // Test that the CLDR parent relations are correctly preserved by the matcher. - // These matches may change for different CLDR versions. - { - "parent relation preserved", - "en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK", - []struct{ match, desired string }{ - {"en-GB", "en-150"}, - {"en-GB", "en-AU"}, - {"en-GB", "en-BE"}, - {"en-GB", "en-GG"}, - {"en-GB", "en-GI"}, - {"en-GB", "en-HK"}, - {"en-GB", "en-IE"}, - {"en-GB", "en-IM"}, - {"en-GB", "en-IN"}, - {"en-GB", "en-JE"}, - {"en-GB", "en-MT"}, - {"en-GB", "en-NZ"}, - {"en-GB", "en-PK"}, - {"en-GB", "en-SG"}, - {"en-GB", "en-DE"}, - {"en-GB", "en-MT"}, - {"es-419", "es-AR"}, - {"es-419", "es-BO"}, - {"es-419", "es-CL"}, - {"es-419", "es-CO"}, - {"es-419", "es-CR"}, - {"es-419", "es-CU"}, - {"es-419", "es-DO"}, - {"es-419", "es-EC"}, - {"es-419", "es-GT"}, - {"es-419", "es-HN"}, - {"es-419", "es-MX"}, - {"es-419", "es-NI"}, - {"es-419", "es-PA"}, - {"es-419", "es-PE"}, - {"es-419", "es-PR"}, - {"es-419", "es-PY"}, - {"es-419", "es-SV"}, - {"es-419", "es-US"}, - {"es-419", "es-UY"}, - {"es-419", "es-VE"}, - {"pt-PT", "pt-AO"}, - {"pt-PT", "pt-CV"}, - {"pt-PT", "pt-GW"}, - {"pt-PT", "pt-MO"}, - {"pt-PT", "pt-MZ"}, - {"pt-PT", "pt-ST"}, - {"pt-PT", "pt-TL"}, - // TODO for CLDR 24+ - // - en-001 - // - {"zh-Hant-HK", "zh-Hant-MO"}, - }, - }, - // Options and variants are inherited from user-defined settings. - { - "preserve Unicode extension", - "en, de, sl-nedis", - []struct{ match, desired string }{ - {"de-u-co-phonebk", "de-FR-u-co-phonebk"}, - {"sl-nedis-u-cu-eur", "sl-nedis-u-cu-eur"}, - {"sl-nedis-u-cu-eur", "sl-u-cu-eur"}, - {"sl-nedis-u-cu-eur", "sl-HR-nedis-u-cu-eur"}, - }, - }, -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/examples_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/examples_test.go deleted file mode 100644 index 32a46452..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/examples_test.go +++ /dev/null @@ -1,415 +0,0 @@ -// 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 language_test - -import ( - "fmt" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -func ExampleCanonType() { - p := func(id string) { - fmt.Printf("Default(%s) -> %s\n", id, language.Make(id)) - fmt.Printf("BCP47(%s) -> %s\n", id, language.BCP47.Make(id)) - fmt.Printf("Macro(%s) -> %s\n", id, language.Macro.Make(id)) - fmt.Printf("All(%s) -> %s\n", id, language.All.Make(id)) - } - p("en-Latn") - p("sh") - p("zh-cmn") - p("bjd") - p("iw-Latn-fonipa-u-cu-usd") - // Output: - // Default(en-Latn) -> en-Latn - // BCP47(en-Latn) -> en - // Macro(en-Latn) -> en-Latn - // All(en-Latn) -> en - // Default(sh) -> sr-Latn - // BCP47(sh) -> sh - // Macro(sh) -> sh - // All(sh) -> sr-Latn - // Default(zh-cmn) -> cmn - // BCP47(zh-cmn) -> cmn - // Macro(zh-cmn) -> zh - // All(zh-cmn) -> zh - // Default(bjd) -> drl - // BCP47(bjd) -> drl - // Macro(bjd) -> bjd - // All(bjd) -> drl - // Default(iw-Latn-fonipa-u-cu-usd) -> he-Latn-fonipa-u-cu-usd - // BCP47(iw-Latn-fonipa-u-cu-usd) -> he-Latn-fonipa-u-cu-usd - // Macro(iw-Latn-fonipa-u-cu-usd) -> iw-Latn-fonipa-u-cu-usd - // All(iw-Latn-fonipa-u-cu-usd) -> he-Latn-fonipa-u-cu-usd -} - -func ExampleTag_Base() { - fmt.Println(language.Make("und").Base()) - fmt.Println(language.Make("und-US").Base()) - fmt.Println(language.Make("und-NL").Base()) - fmt.Println(language.Make("und-419").Base()) // Latin America - fmt.Println(language.Make("und-ZZ").Base()) - // Output: - // en Low - // en High - // nl High - // es Low - // en Low -} - -func ExampleTag_Script() { - en := language.Make("en") - sr := language.Make("sr") - sr_Latn := language.Make("sr_Latn") - fmt.Println(en.Script()) - fmt.Println(sr.Script()) - // Was a script explicitly specified? - _, c := sr.Script() - fmt.Println(c == language.Exact) - _, c = sr_Latn.Script() - fmt.Println(c == language.Exact) - // Output: - // Latn High - // Cyrl Low - // false - // true -} - -func ExampleTag_Region() { - ru := language.Make("ru") - en := language.Make("en") - fmt.Println(ru.Region()) - fmt.Println(en.Region()) - // Output: - // RU Low - // US Low -} - -func ExampleRegion_TLD() { - us := language.MustParseRegion("US") - gb := language.MustParseRegion("GB") - uk := language.MustParseRegion("UK") - bu := language.MustParseRegion("BU") - - fmt.Println(us.TLD()) - fmt.Println(gb.TLD()) - fmt.Println(uk.TLD()) - fmt.Println(bu.TLD()) - - fmt.Println(us.Canonicalize().TLD()) - fmt.Println(gb.Canonicalize().TLD()) - fmt.Println(uk.Canonicalize().TLD()) - fmt.Println(bu.Canonicalize().TLD()) - // Output: - // US <nil> - // UK <nil> - // UK <nil> - // ZZ language: region is not a valid ccTLD - // US <nil> - // UK <nil> - // UK <nil> - // MM <nil> -} - -func ExampleCompose() { - nl, _ := language.ParseBase("nl") - us, _ := language.ParseRegion("US") - de := language.Make("de-1901-u-co-phonebk") - jp := language.Make("ja-JP") - fi := language.Make("fi-x-ing") - - u, _ := language.ParseExtension("u-nu-arabic") - x, _ := language.ParseExtension("x-piglatin") - - // Combine a base language and region. - fmt.Println(language.Compose(nl, us)) - // Combine a base language and extension. - fmt.Println(language.Compose(nl, x)) - // Replace the region. - fmt.Println(language.Compose(jp, us)) - // Combine several tags. - fmt.Println(language.Compose(us, nl, u)) - - // Replace the base language of a tag. - fmt.Println(language.Compose(de, nl)) - fmt.Println(language.Compose(de, nl, u)) - // Remove the base language. - fmt.Println(language.Compose(de, language.Base{})) - // Remove all variants. - fmt.Println(language.Compose(de, []language.Variant{})) - // Remove all extensions. - fmt.Println(language.Compose(de, []language.Extension{})) - fmt.Println(language.Compose(fi, []language.Extension{})) - // Remove all variants and extensions. - fmt.Println(language.Compose(de.Raw())) - - // An error is gobbled or returned if non-nil. - fmt.Println(language.Compose(language.ParseRegion("ZA"))) - fmt.Println(language.Compose(language.ParseRegion("HH"))) - - // Compose uses the same Default canonicalization as Make. - fmt.Println(language.Compose(language.Raw.Parse("en-Latn-UK"))) - - // Call compose on a different CanonType for different results. - fmt.Println(language.All.Compose(language.Raw.Parse("en-Latn-UK"))) - - // Output: - // nl-US <nil> - // nl-x-piglatin <nil> - // ja-US <nil> - // nl-US-u-nu-arabic <nil> - // nl-1901-u-co-phonebk <nil> - // nl-1901-u-nu-arabic <nil> - // und-1901-u-co-phonebk <nil> - // de-u-co-phonebk <nil> - // de-1901 <nil> - // fi <nil> - // de <nil> - // und-ZA <nil> - // und language: subtag "HH" is well-formed but unknown - // en-Latn-GB <nil> - // en-GB <nil> -} - -func ExampleParse_errors() { - for _, s := range []string{"Foo", "Bar", "Foobar"} { - _, err := language.Parse(s) - if err != nil { - if inv, ok := err.(language.ValueError); ok { - fmt.Println(inv.Subtag()) - } else { - fmt.Println(s) - } - } - } - for _, s := range []string{"en", "aa-Uuuu", "AC", "ac-u"} { - _, err := language.Parse(s) - switch e := err.(type) { - case language.ValueError: - fmt.Printf("%s: culprit %q\n", s, e.Subtag()) - case nil: - // No error. - default: - // A syntax error. - fmt.Printf("%s: ill-formed\n", s) - } - } - // Output: - // foo - // Foobar - // aa-Uuuu: culprit "Uuuu" - // AC: culprit "ac" - // ac-u: ill-formed -} - -func ExampleParent() { - p := func(tag string) { - fmt.Printf("parent(%v): %v\n", tag, language.Make(tag).Parent()) - } - p("zh-CN") - - // Australian English inherits from World English. - p("en-AU") - - // If the tag has a different maximized script from its parent, a tag with - // this maximized script is inserted. This allows different language tags - // which have the same base language and script in common to inherit from - // a common set of settings. - p("zh-HK") - - // If the maximized script of the parent is not identical, CLDR will skip - // inheriting from it, as it means there will not be many entries in common - // and inheriting from it is nonsensical. - p("zh-Hant") - - // The parent of a tag with variants and extensions is the tag with all - // variants and extensions removed. - p("de-1994-u-co-phonebk") - - // Remove default script. - p("de-Latn-LU") - - // Output: - // parent(zh-CN): zh - // parent(en-AU): en-001 - // parent(zh-HK): zh-Hant - // parent(zh-Hant): und - // parent(de-1994-u-co-phonebk): de - // parent(de-Latn-LU): de -} - -// ExampleMatcher_bestMatch gives some examples of getting the best match of -// a set of tags to any of the tags of given set. -func ExampleMatcher() { - // This is the set of tags from which we want to pick the best match. These - // can be, for example, the supported languages for some package. - tags := []language.Tag{ - language.English, - language.BritishEnglish, - language.French, - language.Afrikaans, - language.BrazilianPortuguese, - language.EuropeanPortuguese, - language.Croatian, - language.SimplifiedChinese, - language.Raw.Make("iw-IL"), - language.Raw.Make("iw"), - language.Raw.Make("he"), - } - m := language.NewMatcher(tags) - - // A simple match. - fmt.Println(m.Match(language.Make("fr"))) - - // Australian English is closer to British than American English. - fmt.Println(m.Match(language.Make("en-AU"))) - - // Default to the first tag passed to the Matcher if there is no match. - fmt.Println(m.Match(language.Make("ar"))) - - // Get the default tag. - fmt.Println(m.Match()) - - fmt.Println("----") - - // Croatian speakers will likely understand Serbian written in Latin script. - fmt.Println(m.Match(language.Make("sr-Latn"))) - - // We match SimplifiedChinese, but with Low confidence. - fmt.Println(m.Match(language.TraditionalChinese)) - - // Serbian in Latin script is a closer match to Croatian than Traditional - // Chinese to Simplified Chinese. - fmt.Println(m.Match(language.TraditionalChinese, language.Make("sr-Latn"))) - - fmt.Println("----") - - // In case a multiple variants of a language are available, the most spoken - // variant is typically returned. - fmt.Println(m.Match(language.Portuguese)) - - // Pick the first value passed to Match in case of a tie. - fmt.Println(m.Match(language.Dutch, language.Make("fr-BE"), language.Make("af-NA"))) - fmt.Println(m.Match(language.Dutch, language.Make("af-NA"), language.Make("fr-BE"))) - - fmt.Println("----") - - // If a Matcher is initialized with a language and it's deprecated version, - // it will distinguish between them. - fmt.Println(m.Match(language.Raw.Make("iw"))) - - // However, for non-exact matches, it will treat deprecated versions as - // equivalent and consider other factors first. - fmt.Println(m.Match(language.Raw.Make("he-IL"))) - - fmt.Println("----") - - // User settings passed to the Unicode extension are ignored for matching - // and preserved in the returned tag. - fmt.Println(m.Match(language.Make("de-u-co-phonebk"), language.Make("fr-u-cu-frf"))) - - // Even if the matching language is different. - fmt.Println(m.Match(language.Make("de-u-co-phonebk"), language.Make("br-u-cu-frf"))) - - // If there is no matching language, the options of the first preferred tag are used. - fmt.Println(m.Match(language.Make("de-u-co-phonebk"))) - - // Output: - // fr 2 Exact - // en-GB 1 High - // en 0 No - // en 0 No - // ---- - // hr 6 High - // zh-Hans 7 Low - // hr 6 High - // ---- - // pt-BR 4 High - // fr 2 High - // af 3 High - // ---- - // iw 9 Exact - // iw-IL 8 Exact - // ---- - // fr-u-cu-frf 2 Exact - // fr-u-cu-frf 2 High - // en-u-co-phonebk 0 No -} - -func ExampleComprehends() { - // Various levels of comprehensibility. - fmt.Println(language.Comprehends(language.English, language.English)) - fmt.Println(language.Comprehends(language.AmericanEnglish, language.BritishEnglish)) - - // An explicit Und results in no match. - fmt.Println(language.Comprehends(language.English, language.Und)) - - fmt.Println("----") - - // There is usually no mutual comprehensibility between different scripts. - fmt.Println(language.Comprehends(language.Make("en-Dsrt"), language.English)) - - // One exception is for Traditional versus Simplified Chinese, albeit with - // a low confidence. - fmt.Println(language.Comprehends(language.TraditionalChinese, language.SimplifiedChinese)) - - fmt.Println("----") - - // A Swiss German speaker will often understand High German. - fmt.Println(language.Comprehends(language.Make("gsw"), language.Make("de"))) - - // The converse is not generally the case. - fmt.Println(language.Comprehends(language.Make("de"), language.Make("gsw"))) - - // Output: - // Exact - // High - // No - // ---- - // No - // Low - // ---- - // High - // No -} - -func ExampleParseAcceptLanguage() { - // Tags are reordered based on their q rating. A missing q value means 1.0. - fmt.Println(language.ParseAcceptLanguage(" nn;q=0.3, en-gb;q=0.8, en,")) - - m := language.NewMatcher([]language.Tag{language.Norwegian, language.Make("en-AU")}) - - t, _, _ := language.ParseAcceptLanguage("da, en-gb;q=0.8, en;q=0.7") - fmt.Println(m.Match(t...)) - - // Danish is pretty close to Norwegian. - t, _, _ = language.ParseAcceptLanguage(" da, nl") - fmt.Println(m.Match(t...)) - - // Output: - // [en en-GB nn] [1 0.8 0.3] <nil> - // en-AU 1 High - // no 0 High -} - -func ExampleTag_values() { - us := language.MustParseRegion("US") - en := language.MustParseBase("en") - - lang, _, region := language.AmericanEnglish.Raw() - fmt.Println(lang == en, region == us) - - lang, _, region = language.BritishEnglish.Raw() - fmt.Println(lang == en, region == us) - - // Tags can be compared for exact equivalence using '=='. - en_us, _ := language.Compose(en, us) - fmt.Println(en_us == language.AmericanEnglish) - - // Output: - // true true - // true false - // true -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/gen_common.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/gen_common.go deleted file mode 100644 index 83ce1801..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/gen_common.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This file contains code common to the maketables.go and the package code. - -// langAliasType is the type of an alias in langAliasMap. -type langAliasType int8 - -const ( - langDeprecated langAliasType = iota - langMacro - langLegacy - - langAliasTypeUnknown langAliasType = -1 -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/gen_index.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/gen_index.go deleted file mode 100644 index fe5d355f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/gen_index.go +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This file generates derivative tables based on the language package itself. - -import ( - "bytes" - "flag" - "fmt" - "io/ioutil" - "log" - "reflect" - "sort" - "strings" - - "golang.org/x/text/cldr" - "golang.org/x/text/internal/gen" - "golang.org/x/text/language" -) - -var ( - test = flag.Bool("test", false, - "test existing tables; can be used to compare web data with package data.") - - draft = flag.String("draft", - "contributed", - `Minimal draft requirements (approved, contributed, provisional, unconfirmed).`) -) - -func main() { - gen.Init() - - // Read the CLDR zip file. - r := gen.OpenCLDRCoreZip() - defer r.Close() - - d := &cldr.Decoder{} - data, err := d.DecodeZip(r) - if err != nil { - log.Fatalf("DecodeZip: %v", err) - } - - w := gen.NewCodeWriter() - defer func() { - buf := &bytes.Buffer{} - - if _, err = w.WriteGo(buf, "language"); err != nil { - log.Fatalf("Error formatting file index.go: %v", err) - } - - // Since we're generating a table for our own package we need to rewrite - // doing the equivalent of go fmt -r 'language.b -> b'. Using - // bytes.Replace will do. - out := bytes.Replace(buf.Bytes(), []byte("language."), nil, -1) - if err := ioutil.WriteFile("index.go", out, 0600); err != nil { - log.Fatalf("Could not create file index.go: %v", err) - } - }() - - m := map[language.Tag]bool{} - for _, lang := range data.Locales() { - if x := data.RawLDML(lang); false || - x.LocaleDisplayNames != nil || - x.Characters != nil || - x.Delimiters != nil || - x.Measurement != nil || - x.Dates != nil || - x.Numbers != nil || - x.Units != nil || - x.ListPatterns != nil || - x.Collations != nil || - x.Segmentations != nil || - x.Rbnf != nil || - x.Annotations != nil || - x.Metadata != nil { - - // TODO: support POSIX natively, albeit non-standard. - tag := language.Make(strings.Replace(lang, "_POSIX", "-u-va-posix", 1)) - m[tag] = true - } - } - var core, special []language.Tag - - for t := range m { - if x := t.Extensions(); len(x) != 0 && fmt.Sprint(x) != "[u-va-posix]" { - log.Fatalf("Unexpected extension %v in %v", x, t) - } - if len(t.Variants()) == 0 && len(t.Extensions()) == 0 { - core = append(core, t) - } else { - special = append(special, t) - } - } - - w.WriteComment(` - NumCompactTags is the number of common tags. The maximum tag is - NumCompactTags-1.`) - w.WriteConst("NumCompactTags", len(core)+len(special)) - - sort.Sort(byAlpha(special)) - w.WriteVar("specialTags", special) - - // TODO: order by frequency? - sort.Sort(byAlpha(core)) - - // Size computations are just an estimate. - w.Size += int(reflect.TypeOf(map[uint32]uint16{}).Size()) - w.Size += len(core) * 6 // size of uint32 and uint16 - - fmt.Fprintln(w) - fmt.Fprintln(w, "var coreTags = map[uint32]uint16{") - fmt.Fprintln(w, "0x0: 0, // und") - i := len(special) + 1 // Und and special tags already written. - for _, t := range core { - if t == language.Und { - continue - } - fmt.Fprint(w.Hash, t, i) - b, s, r := t.Raw() - fmt.Fprintf(w, "0x%s%s%s: %d, // %s\n", - getIndex(b, 3), // 3 is enough as it is guaranteed to be a compact number - getIndex(s, 2), - getIndex(r, 3), - i, t) - i++ - } - fmt.Fprintln(w, "}") -} - -// getIndex prints the subtag type and extracts its index of size nibble. -// If the index is less than n nibbles, the result is prefixed with 0s. -func getIndex(x interface{}, n int) string { - s := fmt.Sprintf("%#v", x) // s is of form Type{typeID: 0x00} - s = s[strings.Index(s, "0x")+2 : len(s)-1] - return strings.Repeat("0", n-len(s)) + s -} - -type byAlpha []language.Tag - -func (a byAlpha) Len() int { return len(a) } -func (a byAlpha) Swap(i, j int) { a[i], a[j] = a[j], a[i] } -func (a byAlpha) Less(i, j int) bool { return a[i].String() < a[j].String() } diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/go1_1.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/go1_1.go deleted file mode 100644 index 380f4c09..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/go1_1.go +++ /dev/null @@ -1,38 +0,0 @@ -// 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. - -// +build !go1.2 - -package language - -import "sort" - -func sortStable(s sort.Interface) { - ss := stableSort{ - s: s, - pos: make([]int, s.Len()), - } - for i := range ss.pos { - ss.pos[i] = i - } - sort.Sort(&ss) -} - -type stableSort struct { - s sort.Interface - pos []int -} - -func (s *stableSort) Len() int { - return len(s.pos) -} - -func (s *stableSort) Less(i, j int) bool { - return s.s.Less(i, j) || !s.s.Less(j, i) && s.pos[i] < s.pos[j] -} - -func (s *stableSort) Swap(i, j int) { - s.s.Swap(i, j) - s.pos[i], s.pos[j] = s.pos[j], s.pos[i] -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/go1_2.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/go1_2.go deleted file mode 100644 index 38268c57..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/go1_2.go +++ /dev/null @@ -1,11 +0,0 @@ -// 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. - -// +build go1.2 - -package language - -import "sort" - -var sortStable = sort.Stable diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/index.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/index.go deleted file mode 100644 index eafdf530..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/index.go +++ /dev/null @@ -1,425 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package language - -// NumCompactTags is the number of common tags. The maximum tag is -// NumCompactTags-1. -const NumCompactTags = 409 - -// Size: 72 bytes, 2 elements -var specialTags = []Tag{ - {lang: 0x5e, region: 0x6d, script: 0x0, pVariant: 0x5, pExt: 0xe, str: "ca-ES-valencia"}, - {lang: 0x97, region: 0x132, script: 0x0, pVariant: 0x5, pExt: 0x5, str: "en-US-u-va-posix"}, -} - -var coreTags = map[uint32]uint16{ - 0x0: 0, // und - 0x00a00000: 3, // af - 0x00a000d0: 4, // af-NA - 0x00b00000: 5, // agq - 0x00c00000: 6, // ak - 0x01000000: 7, // am - 0x01400000: 8, // ar - 0x01400022: 9, // ar-AE - 0x01400061: 10, // ar-DJ - 0x01400066: 11, // ar-DZ - 0x0140006a: 12, // ar-EG - 0x0140006b: 13, // ar-EH - 0x0140006c: 14, // ar-ER - 0x01400099: 15, // ar-IQ - 0x0140009f: 16, // ar-JO - 0x014000ae: 17, // ar-LB - 0x014000b7: 18, // ar-LY - 0x014000b8: 19, // ar-MA - 0x014000c7: 20, // ar-MR - 0x014000eb: 21, // ar-PS - 0x01400113: 22, // ar-SO - 0x01400115: 23, // ar-SS - 0x0140011a: 24, // ar-SY - 0x01400126: 25, // ar-TN - 0x01b00000: 26, // as - 0x01c00000: 27, // asa - 0x01d00000: 28, // ast - 0x02200000: 29, // az - 0x0221d000: 30, // az-Cyrl - 0x02900000: 31, // bas - 0x02e00000: 32, // be - 0x02f00000: 33, // bem - 0x03100000: 34, // bez - 0x03600000: 35, // bg - 0x04600000: 36, // bm - 0x04800000: 37, // bn - 0x04900000: 38, // bo - 0x04900097: 39, // bo-IN - 0x04d00000: 40, // br - 0x05000000: 41, // brx - 0x05100000: 42, // bs - 0x0511d000: 43, // bs-Cyrl - 0x05e00000: 44, // ca - 0x05e00076: 45, // ca-FR - 0x06300000: 46, // cgg - 0x06900000: 47, // chr - 0x07600000: 48, // cs - 0x07c00000: 49, // cy - 0x07d00000: 50, // da - 0x08000000: 51, // dav - 0x08200000: 52, // de - 0x0820002d: 53, // de-AT - 0x0820004d: 54, // de-CH - 0x082000b0: 55, // de-LI - 0x082000b5: 56, // de-LU - 0x08500000: 57, // dje - 0x08800000: 58, // dsb - 0x08b00000: 59, // dua - 0x08d00000: 60, // dyo - 0x08f00000: 61, // dz - 0x09000000: 62, // ebu - 0x09100000: 63, // ee - 0x09600000: 64, // el - 0x09700000: 65, // en - 0x09700001: 66, // en-001 - 0x0970001a: 67, // en-150 - 0x09700024: 68, // en-AG - 0x09700025: 69, // en-AI - 0x0970002e: 70, // en-AU - 0x09700033: 71, // en-BB - 0x09700035: 72, // en-BE - 0x0970003c: 73, // en-BM - 0x09700041: 74, // en-BS - 0x09700045: 75, // en-BW - 0x09700047: 76, // en-BZ - 0x09700048: 77, // en-CA - 0x09700049: 78, // en-CC - 0x0970004f: 79, // en-CK - 0x09700051: 80, // en-CM - 0x0970005b: 81, // en-CX - 0x09700063: 82, // en-DM - 0x0970006c: 83, // en-ER - 0x09700071: 84, // en-FJ - 0x09700072: 85, // en-FK - 0x09700079: 86, // en-GB - 0x0970007a: 87, // en-GD - 0x0970007e: 88, // en-GH - 0x0970007f: 89, // en-GI - 0x09700081: 90, // en-GM - 0x09700088: 91, // en-GU - 0x0970008a: 92, // en-GY - 0x0970008b: 93, // en-HK - 0x09700094: 94, // en-IE - 0x09700097: 95, // en-IN - 0x0970009e: 96, // en-JM - 0x097000a2: 97, // en-KE - 0x097000a5: 98, // en-KI - 0x097000a7: 99, // en-KN - 0x097000ab: 100, // en-KY - 0x097000af: 101, // en-LC - 0x097000b2: 102, // en-LR - 0x097000b3: 103, // en-LS - 0x097000bd: 104, // en-MG - 0x097000be: 105, // en-MH - 0x097000c4: 106, // en-MO - 0x097000c5: 107, // en-MP - 0x097000c8: 108, // en-MS - 0x097000c9: 109, // en-MT - 0x097000ca: 110, // en-MU - 0x097000cc: 111, // en-MW - 0x097000ce: 112, // en-MY - 0x097000d0: 113, // en-NA - 0x097000d3: 114, // en-NF - 0x097000d4: 115, // en-NG - 0x097000db: 116, // en-NR - 0x097000dd: 117, // en-NU - 0x097000de: 118, // en-NZ - 0x097000e4: 119, // en-PG - 0x097000e5: 120, // en-PH - 0x097000e6: 121, // en-PK - 0x097000e9: 122, // en-PN - 0x097000ee: 123, // en-PW - 0x09700105: 124, // en-RW - 0x09700107: 125, // en-SB - 0x09700108: 126, // en-SC - 0x09700109: 127, // en-SD - 0x0970010b: 128, // en-SG - 0x0970010c: 129, // en-SH - 0x09700110: 130, // en-SL - 0x09700115: 131, // en-SS - 0x09700119: 132, // en-SX - 0x0970011b: 133, // en-SZ - 0x09700123: 134, // en-TK - 0x09700127: 135, // en-TO - 0x0970012a: 136, // en-TT - 0x0970012b: 137, // en-TV - 0x0970012d: 138, // en-TZ - 0x0970012f: 139, // en-UG - 0x09700132: 140, // en-US - 0x09700136: 141, // en-VC - 0x0970013c: 142, // en-VU - 0x0970013f: 143, // en-WS - 0x0970015e: 144, // en-ZA - 0x0970015f: 145, // en-ZM - 0x09700161: 146, // en-ZW - 0x09800000: 147, // eo - 0x09900000: 148, // es - 0x09900003: 149, // es-003 - 0x0990001e: 150, // es-419 - 0x0990002b: 151, // es-AR - 0x0990003e: 152, // es-BO - 0x09900050: 153, // es-CL - 0x09900053: 154, // es-CO - 0x09900055: 155, // es-CR - 0x09900058: 156, // es-CU - 0x09900064: 157, // es-DO - 0x09900068: 158, // es-EC - 0x09900084: 159, // es-GQ - 0x09900087: 160, // es-GT - 0x0990008d: 161, // es-HN - 0x099000cd: 162, // es-MX - 0x099000d6: 163, // es-NI - 0x099000e0: 164, // es-PA - 0x099000e2: 165, // es-PE - 0x099000e5: 166, // es-PH - 0x099000ea: 167, // es-PR - 0x099000ef: 168, // es-PY - 0x09900118: 169, // es-SV - 0x09900132: 170, // es-US - 0x09900133: 171, // es-UY - 0x09900138: 172, // es-VE - 0x09b00000: 173, // et - 0x09d00000: 174, // eu - 0x09e00000: 175, // ewo - 0x0a000000: 176, // fa - 0x0a000023: 177, // fa-AF - 0x0a200000: 178, // ff - 0x0a200082: 179, // ff-GN - 0x0a2000c7: 180, // ff-MR - 0x0a400000: 181, // fi - 0x0a500000: 182, // fil - 0x0a800000: 183, // fo - 0x0aa00000: 184, // fr - 0x0aa00035: 185, // fr-BE - 0x0aa00039: 186, // fr-BI - 0x0aa00048: 187, // fr-CA - 0x0aa0004a: 188, // fr-CD - 0x0aa0004d: 189, // fr-CH - 0x0aa00061: 190, // fr-DJ - 0x0aa00066: 191, // fr-DZ - 0x0aa00082: 192, // fr-GN - 0x0aa0008f: 193, // fr-HT - 0x0aa000a6: 194, // fr-KM - 0x0aa000b5: 195, // fr-LU - 0x0aa000bd: 196, // fr-MG - 0x0aa000c7: 197, // fr-MR - 0x0aa000ca: 198, // fr-MU - 0x0aa00105: 199, // fr-RW - 0x0aa00108: 200, // fr-SC - 0x0aa0011a: 201, // fr-SY - 0x0aa00126: 202, // fr-TN - 0x0aa0013c: 203, // fr-VU - 0x0b100000: 204, // fur - 0x0b300000: 205, // fy - 0x0b400000: 206, // ga - 0x0bc00000: 207, // gd - 0x0c200000: 208, // gl - 0x0cc00000: 209, // gsw - 0x0cd00000: 210, // gu - 0x0d100000: 211, // guz - 0x0d200000: 212, // gv - 0x0d500000: 213, // ha - 0x0d54f07e: 214, // ha-Latn-GH - 0x0d54f0d2: 215, // ha-Latn-NE - 0x0d700000: 216, // haw - 0x0d900000: 217, // he - 0x0da00000: 218, // hi - 0x0e600000: 219, // hr - 0x0e600032: 220, // hr-BA - 0x0e700000: 221, // hsb - 0x0ea00000: 222, // hu - 0x0eb00000: 223, // hy - 0x0f000000: 224, // id - 0x0f200000: 225, // ig - 0x0f300000: 226, // ii - 0x0fa00000: 227, // is - 0x0fb00000: 228, // it - 0x0fb0004d: 229, // it-CH - 0x0ff00000: 230, // ja - 0x10100000: 231, // jgo - 0x10300000: 232, // jmc - 0x10800000: 233, // ka - 0x10a00000: 234, // kab - 0x10d00000: 235, // kam - 0x11200000: 236, // kde - 0x11400000: 237, // kea - 0x11f00000: 238, // khq - 0x12200000: 239, // ki - 0x12600000: 240, // kk - 0x12700000: 241, // kkj - 0x12800000: 242, // kl - 0x12900000: 243, // kln - 0x12a00000: 244, // km - 0x12c00000: 245, // kn - 0x12d00000: 246, // ko - 0x12d000a8: 247, // ko-KP - 0x12f00000: 248, // kok - 0x13800000: 249, // ks - 0x13900000: 250, // ksb - 0x13a00000: 251, // ksf - 0x13b00000: 252, // ksh - 0x14100000: 253, // kw - 0x14400000: 254, // ky - 0x14800000: 255, // lag - 0x14b00000: 256, // lb - 0x15100000: 257, // lg - 0x15800000: 258, // lkt - 0x15b00000: 259, // ln - 0x15b00029: 260, // ln-AO - 0x15c00000: 261, // lo - 0x16000000: 262, // lt - 0x16200000: 263, // lu - 0x16400000: 264, // luo - 0x16500000: 265, // luy - 0x16700000: 266, // lv - 0x17100000: 267, // mas - 0x1710012d: 268, // mas-TZ - 0x17700000: 269, // mer - 0x17900000: 270, // mfe - 0x17a00000: 271, // mg - 0x17b00000: 272, // mgh - 0x17c00000: 273, // mgo - 0x18300000: 274, // mk - 0x18400000: 275, // ml - 0x18500000: 276, // mn - 0x18c00000: 277, // mr - 0x19000000: 278, // ms - 0x1904f03d: 279, // ms-Latn-BN - 0x1904f10b: 280, // ms-Latn-SG - 0x19100000: 281, // mt - 0x19300000: 282, // mua - 0x19b00000: 283, // my - 0x1a300000: 284, // naq - 0x1a400000: 285, // nb - 0x1a600000: 286, // nci - 0x1a700000: 287, // nd - 0x1aa00000: 288, // ne - 0x1aa00097: 289, // ne-IN - 0x1b300000: 290, // nl - 0x1b30002f: 291, // nl-AW - 0x1b300035: 292, // nl-BE - 0x1b30003f: 293, // nl-BQ - 0x1b30005a: 294, // nl-CW - 0x1b300114: 295, // nl-SR - 0x1b300119: 296, // nl-SX - 0x1b400000: 297, // nmg - 0x1b500000: 298, // nn - 0x1b600000: 299, // nnh - 0x1bf00000: 300, // nus - 0x1c400000: 301, // nyn - 0x1c800000: 302, // om - 0x1c8000a2: 303, // om-KE - 0x1c900000: 304, // or - 0x1ca00000: 305, // os - 0x1ca00104: 306, // os-RU - 0x1cc00000: 307, // pa - 0x1cc05000: 308, // pa-Arab - 0x1dc00000: 309, // pl - 0x1e300000: 310, // ps - 0x1e400000: 311, // pt - 0x1e400029: 312, // pt-AO - 0x1e400059: 313, // pt-CV - 0x1e400089: 314, // pt-GW - 0x1e4000c4: 315, // pt-MO - 0x1e4000cf: 316, // pt-MZ - 0x1e4000ec: 317, // pt-PT - 0x1e400116: 318, // pt-ST - 0x1e400124: 319, // pt-TL - 0x1e600000: 320, // qu - 0x1e60003e: 321, // qu-BO - 0x1e600068: 322, // qu-EC - 0x1f100000: 323, // rm - 0x1f600000: 324, // rn - 0x1f800000: 325, // ro - 0x1f8000ba: 326, // ro-MD - 0x1fa00000: 327, // rof - 0x1fc00000: 328, // ru - 0x1fc00046: 329, // ru-BY - 0x1fc000a3: 330, // ru-KG - 0x1fc000ac: 331, // ru-KZ - 0x1fc000ba: 332, // ru-MD - 0x1fc0012e: 333, // ru-UA - 0x1ff00000: 334, // rw - 0x20000000: 335, // rwk - 0x20400000: 336, // sah - 0x20500000: 337, // saq - 0x20900000: 338, // sbp - 0x21100000: 339, // se - 0x21100070: 340, // se-FI - 0x2110010a: 341, // se-SE - 0x21300000: 342, // seh - 0x21500000: 343, // ses - 0x21600000: 344, // sg - 0x21a00000: 345, // shi - 0x21a4f000: 346, // shi-Latn - 0x21c00000: 347, // si - 0x21e00000: 348, // sk - 0x22000000: 349, // sl - 0x22600000: 350, // smn - 0x22900000: 351, // sn - 0x22b00000: 352, // so - 0x22b00061: 353, // so-DJ - 0x22b0006e: 354, // so-ET - 0x22b000a2: 355, // so-KE - 0x22d00000: 356, // sq - 0x22d000c0: 357, // sq-MK - 0x22e00000: 358, // sr - 0x22e1d032: 359, // sr-Cyrl-BA - 0x22e1d0bb: 360, // sr-Cyrl-ME - 0x22e1d14a: 361, // sr-Cyrl-XK - 0x22e4f000: 362, // sr-Latn - 0x22e4f032: 363, // sr-Latn-BA - 0x23a00000: 364, // sv - 0x23a00070: 365, // sv-FI - 0x23b00000: 366, // sw - 0x23b0004a: 367, // sw-CD - 0x23b0012f: 368, // sw-UG - 0x24300000: 369, // ta - 0x243000b1: 370, // ta-LK - 0x243000ce: 371, // ta-MY - 0x2430010b: 372, // ta-SG - 0x24a00000: 373, // te - 0x24c00000: 374, // teo - 0x24c000a2: 375, // teo-KE - 0x24f00000: 376, // th - 0x25300000: 377, // ti - 0x2530006c: 378, // ti-ER - 0x25e00000: 379, // to - 0x26100000: 380, // tr - 0x27000000: 381, // twq - 0x27300000: 382, // tzm - 0x27500000: 383, // ug - 0x27700000: 384, // uk - 0x27d00000: 385, // ur - 0x27d00097: 386, // ur-IN - 0x27e00000: 387, // uz - 0x27e05000: 388, // uz-Arab - 0x27e1d000: 389, // uz-Cyrl - 0x27f00000: 390, // vai - 0x27f4f000: 391, // vai-Latn - 0x28300000: 392, // vi - 0x28b00000: 393, // vun - 0x28d00000: 394, // wae - 0x2a100000: 395, // xog - 0x2a700000: 396, // yav - 0x2a900000: 397, // yi - 0x2aa00000: 398, // yo - 0x2aa0003a: 399, // yo-BJ - 0x2b100000: 400, // zgh - 0x2b200000: 401, // zh - 0x2b23208b: 402, // zh-Hans-HK - 0x2b2320c4: 403, // zh-Hans-MO - 0x2b23210b: 404, // zh-Hans-SG - 0x2b233000: 405, // zh-Hant - 0x2b23308b: 406, // zh-Hant-HK - 0x2b2330c4: 407, // zh-Hant-MO - 0x2b400000: 408, // zu -} - -// Total table size 2522 bytes (2KiB); checksum: DDBE7FDB diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/language.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/language.go deleted file mode 100644 index 8b0b0dba..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/language.go +++ /dev/null @@ -1,975 +0,0 @@ -// 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. - -//go:generate go run maketables.go gen_common.go -output tables.go -//go:generate go run gen_index.go - -// Package language implements BCP 47 language tags and related functionality. -// -// The Tag type, which is used to represent languages, is agnostic to the -// meaning of its subtags. Tags are not fully canonicalized to preserve -// information that may be valuable in certain contexts. As a consequence, two -// different tags may represent identical languages. -// -// Initializing language- or locale-specific components usually consists of -// two steps. The first step is to select a display language based on the -// preferred languages of the user and the languages supported by an application. -// The second step is to create the language-specific services based on -// this selection. Each is discussed in more details below. -// -// Matching preferred against supported languages -// -// An application may support various languages. This list is typically limited -// by the languages for which there exists translations of the user interface. -// Similarly, a user may provide a list of preferred languages which is limited -// by the languages understood by this user. -// An application should use a Matcher to find the best supported language based -// on the user's preferred list. -// Matchers are aware of the intricacies of equivalence between languages. -// The default Matcher implementation takes into account things such as -// deprecated subtags, legacy tags, and mutual intelligibility between scripts -// and languages. -// -// A Matcher for English, Australian English, Danish, and standard Mandarin can -// be defined as follows: -// -// var matcher = language.NewMatcher([]language.Tag{ -// language.English, // The first language is used as fallback. -// language.MustParse("en-AU"), -// language.Danish, -// language.Chinese, -// }) -// -// The following code selects the best match for someone speaking Spanish and -// Norwegian: -// -// preferred := []language.Tag{ language.Spanish, language.Norwegian } -// tag, _, _ := matcher.Match(preferred...) -// -// In this case, the best match is Danish, as Danish is sufficiently a match to -// Norwegian to not have to fall back to the default. -// See ParseAcceptLanguage on how to handle the Accept-Language HTTP header. -// -// Selecting language-specific services -// -// One should always use the Tag returned by the Matcher to create an instance -// of any of the language-specific services provided by the text repository. -// This prevents the mixing of languages, such as having a different language for -// messages and display names, as well as improper casing or sorting order for -// the selected language. -// Using the returned Tag also allows user-defined settings, such as collation -// order or numbering system to be transparently passed as options. -// -// If you have language-specific data in your application, however, it will in -// most cases suffice to use the index returned by the matcher to identify -// the user language. -// The following loop provides an alternative in case this is not sufficient: -// -// supported := map[language.Tag]data{ -// language.English: enData, -// language.MustParse("en-AU"): enAUData, -// language.Danish: daData, -// language.Chinese: zhData, -// } -// tag, _, _ := matcher.Match(preferred...) -// for ; tag != language.Und; tag = tag.Parent() { -// if v, ok := supported[tag]; ok { -// return v -// } -// } -// return enData // should not reach here -// -// Repeatedly taking the Parent of the tag returned by Match will eventually -// match one of the tags used to initialize the Matcher. -// -// Canonicalization -// -// By default, only legacy and deprecated tags are converted into their -// canonical equivalent. All other information is preserved. This approach makes -// the confidence scores more accurate and allows matchers to distinguish -// between variants that are otherwise lost. -// -// As a consequence, two tags that should be treated as identical according to -// BCP 47 or CLDR, like "en-Latn" and "en", will be represented differently. The -// Matchers will handle such distinctions, though, and are aware of the -// equivalence relations. The CanonType type can be used to alter the -// canonicalization form. -// -// References -// -// BCP 47 - Tags for Identifying Languages -// http://tools.ietf.org/html/bcp47 -package language - -// TODO: Remove above NOTE after: -// - verifying that tables are dropped correctly (most notably matcher tables). - -import ( - "errors" - "fmt" - "strings" -) - -const ( - // maxCoreSize is the maximum size of a BCP 47 tag without variants and - // extensions. Equals max lang (3) + script (4) + max reg (3) + 2 dashes. - maxCoreSize = 12 - - // max99thPercentileSize is a somewhat arbitrary buffer size that presumably - // is large enough to hold at least 99% of the BCP 47 tags. - max99thPercentileSize = 32 - - // maxSimpleUExtensionSize is the maximum size of a -u extension with one - // key-type pair. Equals len("-u-") + key (2) + dash + max value (8). - maxSimpleUExtensionSize = 14 -) - -// Tag represents a BCP 47 language tag. It is used to specify an instance of a -// specific language or locale. All language tag values are guaranteed to be -// well-formed. -type Tag struct { - lang langID - region regionID - script scriptID - pVariant byte // offset in str, includes preceding '-' - pExt uint16 // offset of first extension, includes preceding '-' - - // str is the string representation of the Tag. It will only be used if the - // tag has variants or extensions. - str string -} - -// Make is a convenience wrapper for Parse that omits the error. -// In case of an error, a sensible default is returned. -func Make(s string) Tag { - return Default.Make(s) -} - -// Make is a convenience wrapper for c.Parse that omits the error. -// In case of an error, a sensible default is returned. -func (c CanonType) Make(s string) Tag { - t, _ := c.Parse(s) - return t -} - -// Raw returns the raw base language, script and region, without making an -// attempt to infer their values. -func (t Tag) Raw() (b Base, s Script, r Region) { - return Base{t.lang}, Script{t.script}, Region{t.region} -} - -// equalTags compares language, script and region subtags only. -func (t Tag) equalTags(a Tag) bool { - return t.lang == a.lang && t.script == a.script && t.region == a.region -} - -// IsRoot returns true if t is equal to language "und". -func (t Tag) IsRoot() bool { - if int(t.pVariant) < len(t.str) { - return false - } - return t.equalTags(und) -} - -// private reports whether the Tag consists solely of a private use tag. -func (t Tag) private() bool { - return t.str != "" && t.pVariant == 0 -} - -// CanonType can be used to enable or disable various types of canonicalization. -type CanonType int - -const ( - // Replace deprecated base languages with their preferred replacements. - DeprecatedBase CanonType = 1 << iota - // Replace deprecated scripts with their preferred replacements. - DeprecatedScript - // Replace deprecated regions with their preferred replacements. - DeprecatedRegion - // Remove redundant scripts. - SuppressScript - // Normalize legacy encodings. This includes legacy languages defined in - // CLDR as well as bibliographic codes defined in ISO-639. - Legacy - // Map the dominant language of a macro language group to the macro language - // subtag. For example cmn -> zh. - Macro - // The CLDR flag should be used if full compatibility with CLDR is required. - // There are a few cases where language.Tag may differ from CLDR. To follow all - // of CLDR's suggestions, use All|CLDR. - CLDR - - // Raw can be used to Compose or Parse without Canonicalization. - Raw CanonType = 0 - - // Replace all deprecated tags with their preferred replacements. - Deprecated = DeprecatedBase | DeprecatedScript | DeprecatedRegion - - // All canonicalizations recommended by BCP 47. - BCP47 = Deprecated | SuppressScript - - // All canonicalizations. - All = BCP47 | Legacy | Macro - - // Default is the canonicalization used by Parse, Make and Compose. To - // preserve as much information as possible, canonicalizations that remove - // potentially valuable information are not included. The Matcher is - // designed to recognize similar tags that would be the same if - // they were canonicalized using All. - Default = Deprecated | Legacy - - canonLang = DeprecatedBase | Legacy | Macro - - // TODO: LikelyScript, LikelyRegion: suppress similar to ICU. -) - -// canonicalize returns the canonicalized equivalent of the tag and -// whether there was any change. -func (t Tag) canonicalize(c CanonType) (Tag, bool) { - if c == Raw { - return t, false - } - changed := false - if c&SuppressScript != 0 { - if t.lang < langNoIndexOffset && uint8(t.script) == suppressScript[t.lang] { - t.script = 0 - changed = true - } - } - if c&canonLang != 0 { - for { - if l, aliasType := normLang(t.lang); l != t.lang { - switch aliasType { - case langLegacy: - if c&Legacy != 0 { - if t.lang == _sh && t.script == 0 { - t.script = _Latn - } - t.lang = l - changed = true - } - case langMacro: - if c&Macro != 0 { - // We deviate here from CLDR. The mapping "nb" -> "no" - // qualifies as a typical Macro language mapping. However, - // for legacy reasons, CLDR maps "no", the macro language - // code for Norwegian, to the dominant variant "nb". This - // change is currently under consideration for CLDR as well. - // See http://unicode.org/cldr/trac/ticket/2698 and also - // http://unicode.org/cldr/trac/ticket/1790 for some of the - // practical implications. TODO: this check could be removed - // if CLDR adopts this change. - if c&CLDR == 0 || t.lang != _nb { - changed = true - t.lang = l - } - } - case langDeprecated: - if c&DeprecatedBase != 0 { - if t.lang == _mo && t.region == 0 { - t.region = _MD - } - t.lang = l - changed = true - // Other canonicalization types may still apply. - continue - } - } - } else if c&Legacy != 0 && t.lang == _no && c&CLDR != 0 { - t.lang = _nb - changed = true - } - break - } - } - if c&DeprecatedScript != 0 { - if t.script == _Qaai { - changed = true - t.script = _Zinh - } - } - if c&DeprecatedRegion != 0 { - if r := normRegion(t.region); r != 0 { - changed = true - t.region = r - } - } - return t, changed -} - -// Canonicalize returns the canonicalized equivalent of the tag. -func (c CanonType) Canonicalize(t Tag) (Tag, error) { - t, changed := t.canonicalize(c) - if changed { - t.remakeString() - } - return t, nil -} - -// Confidence indicates the level of certainty for a given return value. -// For example, Serbian may be written in Cyrillic or Latin script. -// The confidence level indicates whether a value was explicitly specified, -// whether it is typically the only possible value, or whether there is -// an ambiguity. -type Confidence int - -const ( - No Confidence = iota // full confidence that there was no match - Low // most likely value picked out of a set of alternatives - High // value is generally assumed to be the correct match - Exact // exact match or explicitly specified value -) - -var confName = []string{"No", "Low", "High", "Exact"} - -func (c Confidence) String() string { - return confName[c] -} - -// remakeString is used to update t.str in case lang, script or region changed. -// It is assumed that pExt and pVariant still point to the start of the -// respective parts. -func (t *Tag) remakeString() { - if t.str == "" { - return - } - extra := t.str[t.pVariant:] - if t.pVariant > 0 { - extra = extra[1:] - } - if t.equalTags(und) && strings.HasPrefix(extra, "x-") { - t.str = extra - t.pVariant = 0 - t.pExt = 0 - return - } - var buf [max99thPercentileSize]byte // avoid extra memory allocation in most cases. - b := buf[:t.genCoreBytes(buf[:])] - if extra != "" { - diff := uint8(len(b)) - t.pVariant - b = append(b, '-') - b = append(b, extra...) - t.pVariant += diff - t.pExt += uint16(diff) - } else { - t.pVariant = uint8(len(b)) - t.pExt = uint16(len(b)) - } - t.str = string(b) -} - -// genCoreBytes writes a string for the base languages, script and region tags -// to the given buffer and returns the number of bytes written. It will never -// write more than maxCoreSize bytes. -func (t *Tag) genCoreBytes(buf []byte) int { - n := t.lang.stringToBuf(buf[:]) - if t.script != 0 { - n += copy(buf[n:], "-") - n += copy(buf[n:], t.script.String()) - } - if t.region != 0 { - n += copy(buf[n:], "-") - n += copy(buf[n:], t.region.String()) - } - return n -} - -// String returns the canonical string representation of the language tag. -func (t Tag) String() string { - if t.str != "" { - return t.str - } - if t.script == 0 && t.region == 0 { - return t.lang.String() - } - buf := [maxCoreSize]byte{} - return string(buf[:t.genCoreBytes(buf[:])]) -} - -// Base returns the base language of the language tag. If the base language is -// unspecified, an attempt will be made to infer it from the context. -// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change. -func (t Tag) Base() (Base, Confidence) { - if t.lang != 0 { - return Base{t.lang}, Exact - } - c := High - if t.script == 0 && !(Region{t.region}).IsCountry() { - c = Low - } - if tag, err := addTags(t); err == nil && tag.lang != 0 { - return Base{tag.lang}, c - } - return Base{0}, No -} - -// Script infers the script for the language tag. If it was not explicitly given, it will infer -// a most likely candidate. -// If more than one script is commonly used for a language, the most likely one -// is returned with a low confidence indication. For example, it returns (Cyrl, Low) -// for Serbian. -// If a script cannot be inferred (Zzzz, No) is returned. We do not use Zyyy (undetermined) -// as one would suspect from the IANA registry for BCP 47. In a Unicode context Zyyy marks -// common characters (like 1, 2, 3, '.', etc.) and is therefore more like multiple scripts. -// See http://www.unicode.org/reports/tr24/#Values for more details. Zzzz is also used for -// unknown value in CLDR. (Zzzz, Exact) is returned if Zzzz was explicitly specified. -// Note that an inferred script is never guaranteed to be the correct one. Latin is -// almost exclusively used for Afrikaans, but Arabic has been used for some texts -// in the past. Also, the script that is commonly used may change over time. -// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change. -func (t Tag) Script() (Script, Confidence) { - if t.script != 0 { - return Script{t.script}, Exact - } - sc, c := scriptID(_Zzzz), No - if t.lang < langNoIndexOffset { - if scr := scriptID(suppressScript[t.lang]); scr != 0 { - // Note: it is not always the case that a language with a suppress - // script value is only written in one script (e.g. kk, ms, pa). - if t.region == 0 { - return Script{scriptID(scr)}, High - } - sc, c = scr, High - } - } - if tag, err := addTags(t); err == nil { - if tag.script != sc { - sc, c = tag.script, Low - } - } else { - t, _ = (Deprecated | Macro).Canonicalize(t) - if tag, err := addTags(t); err == nil && tag.script != sc { - sc, c = tag.script, Low - } - } - return Script{sc}, c -} - -// Region returns the region for the language tag. If it was not explicitly given, it will -// infer a most likely candidate from the context. -// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change. -func (t Tag) Region() (Region, Confidence) { - if t.region != 0 { - return Region{t.region}, Exact - } - if t, err := addTags(t); err == nil { - return Region{t.region}, Low // TODO: differentiate between high and low. - } - t, _ = (Deprecated | Macro).Canonicalize(t) - if tag, err := addTags(t); err == nil { - return Region{tag.region}, Low - } - return Region{_ZZ}, No // TODO: return world instead of undetermined? -} - -// Variant returns the variants specified explicitly for this language tag. -// or nil if no variant was specified. -func (t Tag) Variants() []Variant { - v := []Variant{} - if int(t.pVariant) < int(t.pExt) { - for x, str := "", t.str[t.pVariant:t.pExt]; str != ""; { - x, str = nextToken(str) - v = append(v, Variant{x}) - } - } - return v -} - -// Parent returns the CLDR parent of t. In CLDR, missing fields in data for a -// specific language are substituted with fields from the parent language. -// The parent for a language may change for newer versions of CLDR. -func (t Tag) Parent() Tag { - if t.str != "" { - // Strip the variants and extensions. - t, _ = Raw.Compose(t.Raw()) - if t.region == 0 && t.script != 0 && t.lang != 0 { - base, _ := addTags(Tag{lang: t.lang}) - if base.script == t.script { - return Tag{lang: t.lang} - } - } - return t - } - if t.lang != 0 { - if t.region != 0 { - maxScript := t.script - if maxScript == 0 { - max, _ := addTags(t) - maxScript = max.script - } - - for i := range parents { - if langID(parents[i].lang) == t.lang && scriptID(parents[i].maxScript) == maxScript { - for _, r := range parents[i].fromRegion { - if regionID(r) == t.region { - return Tag{ - lang: t.lang, - script: scriptID(parents[i].script), - region: regionID(parents[i].toRegion), - } - } - } - } - } - - // Strip the script if it is the default one. - base, _ := addTags(Tag{lang: t.lang}) - if base.script != maxScript { - return Tag{lang: t.lang, script: maxScript} - } - return Tag{lang: t.lang} - } else if t.script != 0 { - // The parent for an base-script pair with a non-default script is - // "und" instead of the base language. - base, _ := addTags(Tag{lang: t.lang}) - if base.script != t.script { - return und - } - return Tag{lang: t.lang} - } - } - return und -} - -// returns token t and the rest of the string. -func nextToken(s string) (t, tail string) { - p := strings.Index(s[1:], "-") - if p == -1 { - return s[1:], "" - } - p++ - return s[1:p], s[p:] -} - -// Extension is a single BCP 47 extension. -type Extension struct { - s string -} - -// String returns the string representation of the extension, including the -// type tag. -func (e Extension) String() string { - return e.s -} - -// ParseExtension parses s as an extension and returns it on success. -func ParseExtension(s string) (e Extension, err error) { - scan := makeScannerString(s) - var end int - if n := len(scan.token); n != 1 { - return Extension{}, errSyntax - } - scan.toLower(0, len(scan.b)) - end = parseExtension(&scan) - if end != len(s) { - return Extension{}, errSyntax - } - return Extension{string(scan.b)}, nil -} - -// Type returns the one-byte extension type of e. It returns 0 for the zero -// exception. -func (e Extension) Type() byte { - if e.s == "" { - return 0 - } - return e.s[0] -} - -// Tokens returns the list of tokens of e. -func (e Extension) Tokens() []string { - return strings.Split(e.s, "-") -} - -// Extension returns the extension of type x for tag t. It will return -// false for ok if t does not have the requested extension. The returned -// extension will be invalid in this case. -func (t Tag) Extension(x byte) (ext Extension, ok bool) { - for i := int(t.pExt); i < len(t.str)-1; { - var ext string - i, ext = getExtension(t.str, i) - if ext[0] == x { - return Extension{ext}, true - } - } - return Extension{string(x)}, false -} - -// Extensions returns all extensions of t. -func (t Tag) Extensions() []Extension { - e := []Extension{} - for i := int(t.pExt); i < len(t.str)-1; { - var ext string - i, ext = getExtension(t.str, i) - e = append(e, Extension{ext}) - } - return e -} - -// TypeForKey returns the type associated with the given key, where key and type -// are of the allowed values defined for the Unicode locale extension ('u') in -// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -// TypeForKey will traverse the inheritance chain to get the correct value. -func (t Tag) TypeForKey(key string) string { - if start, end, _ := t.findTypeForKey(key); end != start { - return t.str[start:end] - } - return "" -} - -var ( - errPrivateUse = errors.New("cannot set a key on a private use tag") - errInvalidArguments = errors.New("invalid key or type") -) - -// SetTypeForKey returns a new Tag with the key set to type, where key and type -// are of the allowed values defined for the Unicode locale extension ('u') in -// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -// An empty value removes an existing pair with the same key. -func (t Tag) SetTypeForKey(key, value string) (Tag, error) { - if t.private() { - return t, errPrivateUse - } - if len(key) != 2 { - return t, errInvalidArguments - } - - // Remove the setting if value is "". - if value == "" { - start, end, _ := t.findTypeForKey(key) - if start != end { - // Remove key tag and leading '-'. - start -= 4 - - // Remove a possible empty extension. - if (end == len(t.str) || t.str[end+2] == '-') && t.str[start-2] == '-' { - start -= 2 - } - if start == int(t.pVariant) && end == len(t.str) { - t.str = "" - t.pVariant, t.pExt = 0, 0 - } else { - t.str = fmt.Sprintf("%s%s", t.str[:start], t.str[end:]) - } - } - return t, nil - } - - if len(value) < 3 || len(value) > 8 { - return t, errInvalidArguments - } - - var ( - buf [maxCoreSize + maxSimpleUExtensionSize]byte - uStart int // start of the -u extension. - ) - - // Generate the tag string if needed. - if t.str == "" { - uStart = t.genCoreBytes(buf[:]) - buf[uStart] = '-' - uStart++ - } - - // Create new key-type pair and parse it to verify. - b := buf[uStart:] - copy(b, "u-") - copy(b[2:], key) - b[4] = '-' - b = b[:5+copy(b[5:], value)] - scan := makeScanner(b) - if parseExtensions(&scan); scan.err != nil { - return t, scan.err - } - - // Assemble the replacement string. - if t.str == "" { - t.pVariant, t.pExt = byte(uStart-1), uint16(uStart-1) - t.str = string(buf[:uStart+len(b)]) - } else { - s := t.str - start, end, hasExt := t.findTypeForKey(key) - if start == end { - if hasExt { - b = b[2:] - } - t.str = fmt.Sprintf("%s-%s%s", s[:start], b, s[end:]) - } else { - t.str = fmt.Sprintf("%s%s%s", s[:start], value, s[end:]) - } - } - return t, nil -} - -// findKeyAndType returns the start and end position for the type corresponding -// to key or the point at which to insert the key-value pair if the type -// wasn't found. The hasExt return value reports whether an -u extension was present. -// Note: the extensions are typically very small and are likely to contain -// only one key-type pair. -func (t Tag) findTypeForKey(key string) (start, end int, hasExt bool) { - p := int(t.pExt) - if len(key) != 2 || p == len(t.str) || p == 0 { - return p, p, false - } - s := t.str - - // Find the correct extension. - for p++; s[p] != 'u'; p++ { - if s[p] > 'u' { - p-- - return p, p, false - } - if p = nextExtension(s, p); p == len(s) { - return len(s), len(s), false - } - } - // Proceed to the hyphen following the extension name. - p++ - - // curKey is the key currently being processed. - curKey := "" - - // Iterate over keys until we get the end of a section. - for { - // p points to the hyphen preceding the current token. - if p3 := p + 3; s[p3] == '-' { - // Found a key. - // Check whether we just processed the key that was requested. - if curKey == key { - return start, p, true - } - // Set to the next key and continue scanning type tokens. - curKey = s[p+1 : p3] - if curKey > key { - return p, p, true - } - // Start of the type token sequence. - start = p + 4 - // A type is at least 3 characters long. - p += 7 // 4 + 3 - } else { - // Attribute or type, which is at least 3 characters long. - p += 4 - } - // p points past the third character of a type or attribute. - max := p + 5 // maximum length of token plus hyphen. - if len(s) < max { - max = len(s) - } - for ; p < max && s[p] != '-'; p++ { - } - // Bail if we have exhausted all tokens or if the next token starts - // a new extension. - if p == len(s) || s[p+2] == '-' { - if curKey == key { - return start, p, true - } - return p, p, true - } - } -} - -// CompactIndex returns an index, where 0 <= index < NumCompactTags, for tags -// for which data exists in the text repository. The index will change over time -// and should not be stored in persistent storage. Extensions, except for the -// 'va' type of the 'u' extension, are ignored. It will return 0, false if no -// compact tag exists, where 0 is the index for the root language (Und). -func CompactIndex(t Tag) (index int, ok bool) { - // TODO: perhaps give more frequent tags a lower index. - // TODO: we could make the indexes stable. This will excluded some - // possibilities for optimization, so don't do this quite yet. - b, s, r := t.Raw() - if len(t.str) > 0 { - if strings.HasPrefix(t.str, "x-") { - // We have no entries for user-defined tags. - return 0, false - } - if uint16(t.pVariant) != t.pExt { - // There are no tags with variants and an u-va type. - if t.TypeForKey("va") != "" { - return 0, false - } - t, _ = Raw.Compose(b, s, r, t.Variants()) - } else if _, ok := t.Extension('u'); ok { - // Strip all but the 'va' entry. - variant := t.TypeForKey("va") - t, _ = Raw.Compose(b, s, r) - t, _ = t.SetTypeForKey("va", variant) - } - if len(t.str) > 0 { - // We have some variants. - for i, s := range specialTags { - if s == t { - return i + 1, true - } - } - return 0, false - } - } - // No variants specified: just compare core components. - // The key has the form lllssrrr, where l, s, and r are nibbles for - // respectively the langID, scriptID, and regionID. - key := uint32(b.langID) << (8 + 12) - key |= uint32(s.scriptID) << 12 - key |= uint32(r.regionID) - x, ok := coreTags[key] - return int(x), ok -} - -// Base is an ISO 639 language code, used for encoding the base language -// of a language tag. -type Base struct { - langID -} - -// ParseBase parses a 2- or 3-letter ISO 639 code. -// It returns a ValueError if s is a well-formed but unknown language identifier -// or another error if another error occurred. -func ParseBase(s string) (Base, error) { - if n := len(s); n < 2 || 3 < n { - return Base{}, errSyntax - } - var buf [3]byte - l, err := getLangID(buf[:copy(buf[:], s)]) - return Base{l}, err -} - -// Script is a 4-letter ISO 15924 code for representing scripts. -// It is idiomatically represented in title case. -type Script struct { - scriptID -} - -// ParseScript parses a 4-letter ISO 15924 code. -// It returns a ValueError if s is a well-formed but unknown script identifier -// or another error if another error occurred. -func ParseScript(s string) (Script, error) { - if len(s) != 4 { - return Script{}, errSyntax - } - var buf [4]byte - sc, err := getScriptID(script, buf[:copy(buf[:], s)]) - return Script{sc}, err -} - -// Region is an ISO 3166-1 or UN M.49 code for representing countries and regions. -type Region struct { - regionID -} - -// EncodeM49 returns the Region for the given UN M.49 code. -// It returns an error if r is not a valid code. -func EncodeM49(r int) (Region, error) { - rid, err := getRegionM49(r) - return Region{rid}, err -} - -// ParseRegion parses a 2- or 3-letter ISO 3166-1 or a UN M.49 code. -// It returns a ValueError if s is a well-formed but unknown region identifier -// or another error if another error occurred. -func ParseRegion(s string) (Region, error) { - if n := len(s); n < 2 || 3 < n { - return Region{}, errSyntax - } - var buf [3]byte - r, err := getRegionID(buf[:copy(buf[:], s)]) - return Region{r}, err -} - -// IsCountry returns whether this region is a country or autonomous area. This -// includes non-standard definitions from CLDR. -func (r Region) IsCountry() bool { - if r.regionID == 0 || r.IsGroup() || r.IsPrivateUse() && r.regionID != _XK { - return false - } - return true -} - -// IsGroup returns whether this region defines a collection of regions. This -// includes non-standard definitions from CLDR. -func (r Region) IsGroup() bool { - if r.regionID == 0 { - return false - } - return int(regionInclusion[r.regionID]) < len(regionContainment) -} - -// Contains returns whether Region c is contained by Region r. It returns true -// if c == r. -func (r Region) Contains(c Region) bool { - return r.regionID.contains(c.regionID) -} - -func (r regionID) contains(c regionID) bool { - if r == c { - return true - } - g := regionInclusion[r] - if g >= nRegionGroups { - return false - } - m := regionContainment[g] - - d := regionInclusion[c] - b := regionInclusionBits[d] - - // A contained country may belong to multiple disjoint groups. Matching any - // of these indicates containment. If the contained region is a group, it - // must strictly be a subset. - if d >= nRegionGroups { - return b&m != 0 - } - return b&^m == 0 -} - -var errNoTLD = errors.New("language: region is not a valid ccTLD") - -// TLD returns the country code top-level domain (ccTLD). UK is returned for GB. -// In all other cases it returns either the region itself or an error. -// -// This method may return an error for a region for which there exists a -// canonical form with a ccTLD. To get that ccTLD canonicalize r first. The -// region will already be canonicalized it was obtained from a Tag that was -// obtained using any of the default methods. -func (r Region) TLD() (Region, error) { - // See http://en.wikipedia.org/wiki/Country_code_top-level_domain for the - // difference between ISO 3166-1 and IANA ccTLD. - if r.regionID == _GB { - r = Region{_UK} - } - if (r.typ() & ccTLD) == 0 { - return Region{}, errNoTLD - } - return r, nil -} - -// Canonicalize returns the region or a possible replacement if the region is -// deprecated. It will not return a replacement for deprecated regions that -// are split into multiple regions. -func (r Region) Canonicalize() Region { - if cr := normRegion(r.regionID); cr != 0 { - return Region{cr} - } - return r -} - -// Variant represents a registered variant of a language as defined by BCP 47. -type Variant struct { - variant string -} - -// ParseVariant parses and returns a Variant. An error is returned if s is not -// a valid variant. -func ParseVariant(s string) (Variant, error) { - s = strings.ToLower(s) - if _, ok := variantIndex[s]; ok { - return Variant{s}, nil - } - return Variant{}, mkErrInvalid([]byte(s)) -} - -// String returns the string representation of the variant. -func (v Variant) String() string { - return v.variant -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/language_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/language_test.go deleted file mode 100644 index 8fae4098..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/language_test.go +++ /dev/null @@ -1,871 +0,0 @@ -// 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 language - -import ( - "reflect" - "testing" -) - -func TestTagSize(t *testing.T) { - id := Tag{} - typ := reflect.TypeOf(id) - if typ.Size() > 24 { - t.Errorf("size of Tag was %d; want 24", typ.Size()) - } -} - -func TestIsRoot(t *testing.T) { - loc := Tag{} - if !loc.IsRoot() { - t.Errorf("unspecified should be root.") - } - for i, tt := range parseTests() { - loc, _ := Parse(tt.in) - undef := tt.lang == "und" && tt.script == "" && tt.region == "" && tt.ext == "" - if loc.IsRoot() != undef { - t.Errorf("%d: was %v; want %v", i, loc.IsRoot(), undef) - } - } -} - -func TestEquality(t *testing.T) { - for i, tt := range parseTests()[48:49] { - s := tt.in - tag := Make(s) - t1 := Make(tag.String()) - if tag != t1 { - t.Errorf("%d:%s: equality test 1 failed\n got: %#v\nwant: %#v)", i, s, t1, tag) - } - t2, _ := Compose(tag) - if tag != t2 { - t.Errorf("%d:%s: equality test 2 failed\n got: %#v\nwant: %#v", i, s, t2, tag) - } - } -} - -func TestMakeString(t *testing.T) { - tests := []struct{ in, out string }{ - {"und", "und"}, - {"und", "und-CW"}, - {"nl", "nl-NL"}, - {"de-1901", "nl-1901"}, - {"de-1901", "de-Arab-1901"}, - {"x-a-b", "de-Arab-x-a-b"}, - {"x-a-b", "x-a-b"}, - } - for i, tt := range tests { - id, _ := Parse(tt.in) - mod, _ := Parse(tt.out) - id.setTagsFrom(mod) - for j := 0; j < 2; j++ { - id.remakeString() - if str := id.String(); str != tt.out { - t.Errorf("%d:%d: found %s; want %s", i, j, id.String(), tt.out) - } - } - // The bytes to string conversion as used in remakeString - // occasionally measures as more than one alloc, breaking this test. - // To alleviate this we set the number of runs to more than 1. - if n := testing.AllocsPerRun(8, id.remakeString); n > 1 { - t.Errorf("%d: # allocs got %.1f; want <= 1", i, n) - } - } -} - -func TestCompactIndex(t *testing.T) { - tests := []struct { - tag string - index int - ok bool - }{ - // TODO: these values will change with each CLDR update. This issue - // will be solved if we decide to fix the indexes. - {"und", 0, true}, - {"ca-ES-valencia", 1, true}, - {"ca-ES-valencia-u-va-posix", 0, false}, - {"ca-ES-valencia-u-co-phonebk", 1, true}, - {"ca-ES-valencia-u-co-phonebk-va-posix", 0, false}, - {"x-klingon", 0, false}, - {"en-US", 140, true}, - {"en-US-u-va-posix", 2, true}, - {"en", 65, true}, - {"en-u-co-phonebk", 65, true}, - {"en-001", 66, true}, - {"sh", 0, false}, // We don't normalize. - } - for _, tt := range tests { - x, ok := CompactIndex(Raw.MustParse(tt.tag)) - if x != tt.index || ok != tt.ok { - t.Errorf("%s: got %d, %v; want %d %v", tt.tag, x, ok, tt.index, tt.ok) - } - } -} - -func TestBase(t *testing.T) { - tests := []struct { - loc, lang string - conf Confidence - }{ - {"und", "en", Low}, - {"x-abc", "und", No}, - {"en", "en", Exact}, - {"und-Cyrl", "ru", High}, - // If a region is not included, the official language should be English. - {"und-US", "en", High}, - // TODO: not-explicitly listed scripts should probably be und, No - // Modify addTags to return info on how the match was derived. - // {"und-Aghb", "und", No}, - } - for i, tt := range tests { - loc, _ := Parse(tt.loc) - lang, conf := loc.Base() - if lang.String() != tt.lang { - t.Errorf("%d: language was %s; want %s", i, lang, tt.lang) - } - if conf != tt.conf { - t.Errorf("%d: confidence was %d; want %d", i, conf, tt.conf) - } - } -} - -func TestParseBase(t *testing.T) { - tests := []struct { - in string - out string - ok bool - }{ - {"en", "en", true}, - {"EN", "en", true}, - {"nld", "nl", true}, - {"dut", "dut", true}, // bibliographic - {"aaj", "und", false}, // unknown - {"qaa", "qaa", true}, - {"a", "und", false}, - {"", "und", false}, - {"aaaa", "und", false}, - } - for i, tt := range tests { - x, err := ParseBase(tt.in) - if x.String() != tt.out || err == nil != tt.ok { - t.Errorf("%d:%s: was %s, %v; want %s, %v", i, tt.in, x, err == nil, tt.out, tt.ok) - } - if y, _, _ := Raw.Make(tt.out).Raw(); x != y { - t.Errorf("%d:%s: tag was %s; want %s", i, tt.in, x, y) - } - } -} - -func TestScript(t *testing.T) { - tests := []struct { - loc, scr string - conf Confidence - }{ - {"und", "Latn", Low}, - {"en-Latn", "Latn", Exact}, - {"en", "Latn", High}, - {"sr", "Cyrl", Low}, - {"kk", "Cyrl", High}, - {"kk-CN", "Arab", Low}, - {"cmn", "Hans", Low}, - {"ru", "Cyrl", High}, - {"ru-RU", "Cyrl", High}, - {"yue", "Zzzz", No}, - {"x-abc", "Zzzz", Low}, - {"und-zyyy", "Zyyy", Exact}, - } - for i, tt := range tests { - loc, _ := Parse(tt.loc) - sc, conf := loc.Script() - if sc.String() != tt.scr { - t.Errorf("%d:%s: script was %s; want %s", i, tt.loc, sc, tt.scr) - } - if conf != tt.conf { - t.Errorf("%d:%s: confidence was %d; want %d", i, tt.loc, conf, tt.conf) - } - } -} - -func TestParseScript(t *testing.T) { - tests := []struct { - in string - out string - ok bool - }{ - {"Latn", "Latn", true}, - {"zzzz", "Zzzz", true}, - {"zyyy", "Zyyy", true}, - {"Latm", "Zzzz", false}, - {"Zzz", "Zzzz", false}, - {"", "Zzzz", false}, - {"Zzzxx", "Zzzz", false}, - } - for i, tt := range tests { - x, err := ParseScript(tt.in) - if x.String() != tt.out || err == nil != tt.ok { - t.Errorf("%d:%s: was %s, %v; want %s, %v", i, tt.in, x, err == nil, tt.out, tt.ok) - } - if err == nil { - if _, y, _ := Raw.Make("und-" + tt.out).Raw(); x != y { - t.Errorf("%d:%s: tag was %s; want %s", i, tt.in, x, y) - } - } - } -} - -func TestRegion(t *testing.T) { - tests := []struct { - loc, reg string - conf Confidence - }{ - {"und", "US", Low}, - {"en", "US", Low}, - {"zh-Hant", "TW", Low}, - {"en-US", "US", Exact}, - {"cmn", "CN", Low}, - {"ru", "RU", Low}, - {"yue", "ZZ", No}, - {"x-abc", "ZZ", Low}, - } - for i, tt := range tests { - loc, _ := Raw.Parse(tt.loc) - reg, conf := loc.Region() - if reg.String() != tt.reg { - t.Errorf("%d: region was %s; want %s", i, reg, tt.reg) - } - if conf != tt.conf { - t.Errorf("%d: confidence was %d; want %d", i, conf, tt.conf) - } - } -} - -func TestEncodeM49(t *testing.T) { - tests := []struct { - m49 int - code string - ok bool - }{ - {1, "001", true}, - {840, "US", true}, - {899, "ZZ", false}, - } - for i, tt := range tests { - if r, err := EncodeM49(tt.m49); r.String() != tt.code || err == nil != tt.ok { - t.Errorf("%d:%d: was %s, %v; want %s, %v", i, tt.m49, r, err == nil, tt.code, tt.ok) - } - } - for i := 1; i <= 1000; i++ { - if r, err := EncodeM49(i); err == nil && r.M49() == 0 { - t.Errorf("%d has no error, but maps to undefined region", i) - } - } -} - -func TestParseRegion(t *testing.T) { - tests := []struct { - in string - out string - ok bool - }{ - {"001", "001", true}, - {"840", "US", true}, - {"899", "ZZ", false}, - {"USA", "US", true}, - {"US", "US", true}, - {"BC", "ZZ", false}, - {"C", "ZZ", false}, - {"CCCC", "ZZ", false}, - {"01", "ZZ", false}, - } - for i, tt := range tests { - r, err := ParseRegion(tt.in) - if r.String() != tt.out || err == nil != tt.ok { - t.Errorf("%d:%s: was %s, %v; want %s, %v", i, tt.in, r, err == nil, tt.out, tt.ok) - } - if err == nil { - if _, _, y := Raw.Make("und-" + tt.out).Raw(); r != y { - t.Errorf("%d:%s: tag was %s; want %s", i, tt.in, r, y) - } - } - } -} - -func TestIsCountry(t *testing.T) { - tests := []struct { - reg string - country bool - }{ - {"US", true}, - {"001", false}, - {"958", false}, - {"419", false}, - {"203", true}, - {"020", true}, - {"900", false}, - {"999", false}, - {"QO", false}, - {"EU", false}, - {"AA", false}, - {"XK", true}, - } - for i, tt := range tests { - reg, _ := getRegionID([]byte(tt.reg)) - r := Region{reg} - if r.IsCountry() != tt.country { - t.Errorf("%d: IsCountry(%s) was %v; want %v", i, tt.reg, r.IsCountry(), tt.country) - } - } -} - -func TestIsGroup(t *testing.T) { - tests := []struct { - reg string - group bool - }{ - {"US", false}, - {"001", true}, - {"958", false}, - {"419", true}, - {"203", false}, - {"020", false}, - {"900", false}, - {"999", false}, - {"QO", true}, - {"EU", true}, - {"AA", false}, - {"XK", false}, - } - for i, tt := range tests { - reg, _ := getRegionID([]byte(tt.reg)) - r := Region{reg} - if r.IsGroup() != tt.group { - t.Errorf("%d: IsGroup(%s) was %v; want %v", i, tt.reg, r.IsGroup(), tt.group) - } - } -} - -func TestContains(t *testing.T) { - tests := []struct { - enclosing, contained string - contains bool - }{ - // A region contains itself. - {"US", "US", true}, - {"001", "001", true}, - - // Direct containment. - {"001", "002", true}, - {"039", "XK", true}, - {"150", "XK", true}, - {"EU", "AT", true}, - {"QO", "AQ", true}, - - // Indirect containemnt. - {"001", "US", true}, - {"001", "419", true}, - {"001", "013", true}, - - // No containment. - {"US", "001", false}, - {"155", "EU", false}, - } - for i, tt := range tests { - enc, _ := getRegionID([]byte(tt.enclosing)) - con, _ := getRegionID([]byte(tt.contained)) - r := Region{enc} - if got := r.Contains(Region{con}); got != tt.contains { - t.Errorf("%d: %s.Contains(%s) was %v; want %v", i, tt.enclosing, tt.contained, got, tt.contains) - } - } -} - -func TestRegionCanonicalize(t *testing.T) { - for i, tt := range []struct{ in, out string }{ - {"UK", "GB"}, - {"TP", "TL"}, - {"QU", "EU"}, - {"SU", "SU"}, - {"VD", "VN"}, - {"DD", "DE"}, - } { - r := MustParseRegion(tt.in) - want := MustParseRegion(tt.out) - if got := r.Canonicalize(); got != want { - t.Errorf("%d: got %v; want %v", i, got, want) - } - } -} - -func TestRegionTLD(t *testing.T) { - for _, tt := range []struct { - in, out string - ok bool - }{ - {"EH", "EH", true}, - {"FR", "FR", true}, - {"TL", "TL", true}, - - // In ccTLD before in ISO. - {"GG", "GG", true}, - - // Non-standard assignment of ccTLD to ISO code. - {"GB", "UK", true}, - - // Exceptionally reserved in ISO and valid ccTLD. - {"UK", "UK", true}, - {"AC", "AC", true}, - {"EU", "EU", true}, - {"SU", "SU", true}, - - // Exceptionally reserved in ISO and invalid ccTLD. - {"CP", "ZZ", false}, - {"DG", "ZZ", false}, - {"EA", "ZZ", false}, - {"FX", "ZZ", false}, - {"IC", "ZZ", false}, - {"TA", "ZZ", false}, - - // Transitionally reserved in ISO (e.g. deprecated) but valid ccTLD as - // it is still being phased out. - {"AN", "AN", true}, - {"TP", "TP", true}, - - // Transitionally reserved in ISO (e.g. deprecated) and invalid ccTLD. - // Defined in package language as it has a mapping in CLDR. - {"BU", "ZZ", false}, - {"CS", "ZZ", false}, - {"NT", "ZZ", false}, - {"YU", "ZZ", false}, - {"ZR", "ZZ", false}, - // Not defined in package: SF. - - // Indeterminately reserved in ISO. - // Defined in package language as it has a legacy mapping in CLDR. - {"DY", "ZZ", false}, - {"RH", "ZZ", false}, - {"VD", "ZZ", false}, - // Not defined in package: EW, FL, JA, LF, PI, RA, RB, RC, RI, RL, RM, - // RN, RP, WG, WL, WV, and YV. - - // Not assigned in ISO, but legacy definitions in CLDR. - {"DD", "ZZ", false}, - {"YD", "ZZ", false}, - - // Normal mappings but somewhat special status in ccTLD. - {"BL", "BL", true}, - {"MF", "MF", true}, - {"BV", "BV", true}, - {"SJ", "SJ", true}, - - // Have values when normalized, but not as is. - {"QU", "ZZ", false}, - - // ISO Private Use. - {"AA", "ZZ", false}, - {"QM", "ZZ", false}, - {"QO", "ZZ", false}, - {"XA", "ZZ", false}, - {"XK", "ZZ", false}, // Sometimes used for Kosovo, but invalid ccTLD. - } { - if tt.in == "" { - continue - } - - r := MustParseRegion(tt.in) - var want Region - if tt.out != "ZZ" { - want = MustParseRegion(tt.out) - } - tld, err := r.TLD() - if got := err == nil; got != tt.ok { - t.Errorf("error(%v): got %v; want %v", r, got, tt.ok) - } - if tld != want { - t.Errorf("TLD(%v): got %v; want %v", r, tld, want) - } - } -} - -func TestCanonicalize(t *testing.T) { - // TODO: do a full test using CLDR data in a separate regression test. - tests := []struct { - in, out string - option CanonType - }{ - {"en-Latn", "en", SuppressScript}, - {"sr-Cyrl", "sr-Cyrl", SuppressScript}, - {"sh", "sr-Latn", Legacy}, - {"sh-HR", "sr-Latn-HR", Legacy}, - {"sh-Cyrl-HR", "sr-Cyrl-HR", Legacy}, - {"tl", "fil", Legacy}, - {"no", "no", Legacy}, - {"no", "nb", Legacy | CLDR}, - {"cmn", "cmn", Legacy}, - {"cmn", "zh", Macro}, - {"yue", "yue", Macro}, - {"nb", "no", Macro}, - {"nb", "nb", Macro | CLDR}, - {"no", "no", Macro}, - {"no", "no", Macro | CLDR}, - {"iw", "he", DeprecatedBase}, - {"iw", "he", Deprecated | CLDR}, - {"mo", "ro-MD", Deprecated}, // Adopted by CLDR as of version 25. - {"alb", "sq", Legacy}, // bibliographic - {"dut", "nl", Legacy}, // bibliographic - // As of CLDR 25, mo is no longer considered a legacy mapping. - {"mo", "mo", Legacy | CLDR}, - {"und-AN", "und-AN", Deprecated}, - {"und-YD", "und-YE", DeprecatedRegion}, - {"und-YD", "und-YD", DeprecatedBase}, - {"und-Qaai", "und-Zinh", DeprecatedScript}, - {"und-Qaai", "und-Qaai", DeprecatedBase}, - {"drh", "mn", All}, // drh -> khk -> mn - } - for i, tt := range tests { - in, _ := Raw.Parse(tt.in) - in, _ = tt.option.Canonicalize(in) - if in.String() != tt.out { - t.Errorf("%d:%s: was %s; want %s", i, tt.in, in.String(), tt.out) - } - } - // Test idempotence. - for _, base := range Supported.BaseLanguages() { - tag, _ := Raw.Compose(base) - got, _ := All.Canonicalize(tag) - want, _ := All.Canonicalize(got) - if got != want { - t.Errorf("idem(%s): got %s; want %s", tag, got, want) - } - } -} - -func TestTypeForKey(t *testing.T) { - tests := []struct{ key, in, out string }{ - {"co", "en", ""}, - {"co", "en-u-abc", ""}, - {"co", "en-u-co-phonebk", "phonebk"}, - {"co", "en-u-co-phonebk-cu-aud", "phonebk"}, - {"co", "x-foo-u-co-phonebk", ""}, - {"nu", "en-u-co-phonebk-nu-arabic", "arabic"}, - } - for _, tt := range tests { - if v := Make(tt.in).TypeForKey(tt.key); v != tt.out { - t.Errorf("%q[%q]: was %q; want %q", tt.in, tt.key, v, tt.out) - } - } -} - -func TestSetTypeForKey(t *testing.T) { - tests := []struct { - key, value, in, out string - err bool - }{ - // replace existing value - {"co", "pinyin", "en-u-co-phonebk", "en-u-co-pinyin", false}, - {"co", "pinyin", "en-u-co-phonebk-cu-xau", "en-u-co-pinyin-cu-xau", false}, - {"co", "pinyin", "en-u-co-phonebk-v-xx", "en-u-co-pinyin-v-xx", false}, - {"co", "pinyin", "en-u-co-phonebk-x-x", "en-u-co-pinyin-x-x", false}, - {"nu", "arabic", "en-u-co-phonebk-nu-vaai", "en-u-co-phonebk-nu-arabic", false}, - // add to existing -u extension - {"co", "pinyin", "en-u-ca-gregory", "en-u-ca-gregory-co-pinyin", false}, - {"co", "pinyin", "en-u-ca-gregory-nu-vaai", "en-u-ca-gregory-co-pinyin-nu-vaai", false}, - {"co", "pinyin", "en-u-ca-gregory-v-va", "en-u-ca-gregory-co-pinyin-v-va", false}, - {"co", "pinyin", "en-u-ca-gregory-x-a", "en-u-ca-gregory-co-pinyin-x-a", false}, - {"ca", "gregory", "en-u-co-pinyin", "en-u-ca-gregory-co-pinyin", false}, - // remove pair - {"co", "", "en-u-co-phonebk", "en", false}, - {"co", "", "en-u-ca-gregory-co-phonebk", "en-u-ca-gregory", false}, - {"co", "", "en-u-co-phonebk-nu-arabic", "en-u-nu-arabic", false}, - {"co", "", "en", "en", false}, - // add -u extension - {"co", "pinyin", "en", "en-u-co-pinyin", false}, - {"co", "pinyin", "und", "und-u-co-pinyin", false}, - {"co", "pinyin", "en-a-aaa", "en-a-aaa-u-co-pinyin", false}, - {"co", "pinyin", "en-x-aaa", "en-u-co-pinyin-x-aaa", false}, - {"co", "pinyin", "en-v-aa", "en-u-co-pinyin-v-aa", false}, - {"co", "pinyin", "en-a-aaa-x-x", "en-a-aaa-u-co-pinyin-x-x", false}, - {"co", "pinyin", "en-a-aaa-v-va", "en-a-aaa-u-co-pinyin-v-va", false}, - // error on invalid values - {"co", "pinyinxxx", "en", "en", true}, - {"co", "piny.n", "en", "en", true}, - {"co", "pinyinxxx", "en-a-aaa", "en-a-aaa", true}, - {"co", "pinyinxxx", "en-u-aaa", "en-u-aaa", true}, - {"co", "pinyinxxx", "en-u-aaa-co-pinyin", "en-u-aaa-co-pinyin", true}, - {"co", "pinyi.", "en-u-aaa-co-pinyin", "en-u-aaa-co-pinyin", true}, - {"col", "pinyin", "en", "en", true}, - {"co", "cu", "en", "en", true}, - // error when setting on a private use tag - {"co", "phonebook", "x-foo", "x-foo", true}, - } - for i, tt := range tests { - tag := Make(tt.in) - if v, err := tag.SetTypeForKey(tt.key, tt.value); v.String() != tt.out { - t.Errorf("%d:%q[%q]=%q: was %q; want %q", i, tt.in, tt.key, tt.value, v, tt.out) - } else if (err != nil) != tt.err { - t.Errorf("%d:%q[%q]=%q: error was %v; want %v", i, tt.in, tt.key, tt.value, err != nil, tt.err) - } else if val := v.TypeForKey(tt.key); err == nil && val != tt.value { - t.Errorf("%d:%q[%q]==%q: was %v; want %v", i, tt.out, tt.key, tt.value, val, tt.value) - } - if len(tag.String()) <= 3 { - // Simulate a tag for which the string has not been set. - tag.str, tag.pExt, tag.pVariant = "", 0, 0 - if tag, err := tag.SetTypeForKey(tt.key, tt.value); err == nil { - if val := tag.TypeForKey(tt.key); err == nil && val != tt.value { - t.Errorf("%d:%q[%q]==%q: was %v; want %v", i, tt.out, tt.key, tt.value, val, tt.value) - } - } - } - } -} - -func TestFindKeyAndType(t *testing.T) { - // out is either the matched type in case of a match or the original - // string up till the insertion point. - tests := []struct { - key string - hasExt bool - in, out string - }{ - // Don't search past a private use extension. - {"co", false, "en-x-foo-u-co-pinyin", "en"}, - {"co", false, "x-foo-u-co-pinyin", ""}, - {"co", false, "en-s-fff-x-foo", "en-s-fff"}, - // Insertion points in absence of -u extension. - {"cu", false, "en", ""}, // t.str is "" - {"cu", false, "en-v-va", "en"}, - {"cu", false, "en-a-va", "en-a-va"}, - {"cu", false, "en-a-va-v-va", "en-a-va"}, - {"cu", false, "en-x-a", "en"}, - // Tags with the -u extension. - {"co", true, "en-u-co-standard", "standard"}, - {"co", true, "yue-u-co-pinyin", "pinyin"}, - {"co", true, "en-u-co-abc", "abc"}, - {"co", true, "en-u-co-abc-def", "abc-def"}, - {"co", true, "en-u-co-abc-def-x-foo", "abc-def"}, - {"co", true, "en-u-co-standard-nu-arab", "standard"}, - {"co", true, "yue-u-co-pinyin-nu-arab", "pinyin"}, - // Insertion points. - {"cu", true, "en-u-co-standard", "en-u-co-standard"}, - {"cu", true, "yue-u-co-pinyin-x-foo", "yue-u-co-pinyin"}, - {"cu", true, "en-u-co-abc", "en-u-co-abc"}, - {"cu", true, "en-u-nu-arabic", "en-u"}, - {"cu", true, "en-u-co-abc-def-nu-arabic", "en-u-co-abc-def"}, - } - for i, tt := range tests { - start, end, hasExt := Make(tt.in).findTypeForKey(tt.key) - if start != end { - res := tt.in[start:end] - if res != tt.out { - t.Errorf("%d:%s: was %q; want %q", i, tt.in, res, tt.out) - } - } else { - if hasExt != tt.hasExt { - t.Errorf("%d:%s: hasExt was %v; want %v", i, tt.in, hasExt, tt.hasExt) - continue - } - if tt.in[:start] != tt.out { - t.Errorf("%d:%s: insertion point was %q; want %q", i, tt.in, tt.in[:start], tt.out) - } - } - } -} - -func TestParent(t *testing.T) { - tests := []struct{ in, out string }{ - // Strip variants and extensions first - {"de-u-co-phonebk", "de"}, - {"de-1994", "de"}, - {"de-Latn-1994", "de"}, // remove superfluous script. - - // Ensure the canonical Tag for an entry is in the chain for base-script - // pairs. - {"zh-Hans", "zh"}, - - // Skip the script if it is the maximized version. CLDR files for the - // skipped tag are always empty. - {"zh-Hans-TW", "zh"}, - {"zh-Hans-CN", "zh"}, - - // Insert the script if the maximized script is not the same as the - // maximized script of the base language. - {"zh-TW", "zh-Hant"}, - {"zh-HK", "zh-Hant"}, - {"zh-Hant-TW", "zh-Hant"}, - {"zh-Hant-HK", "zh-Hant"}, - - // Non-default script skips to und. - // CLDR - {"az-Cyrl", "und"}, - {"bs-Cyrl", "und"}, - {"en-Dsrt", "und"}, - {"ha-Arab", "und"}, - {"mn-Mong", "und"}, - {"pa-Arab", "und"}, - {"shi-Latn", "und"}, - {"sr-Latn", "und"}, - {"uz-Arab", "und"}, - {"uz-Cyrl", "und"}, - {"vai-Latn", "und"}, - {"zh-Hant", "und"}, - // extra - {"nl-Cyrl", "und"}, - - // World english inherits from en-001. - {"en-150", "en-001"}, - {"en-AU", "en-001"}, - {"en-BE", "en-001"}, - {"en-GG", "en-001"}, - {"en-GI", "en-001"}, - {"en-HK", "en-001"}, - {"en-IE", "en-001"}, - {"en-IM", "en-001"}, - {"en-IN", "en-001"}, - {"en-JE", "en-001"}, - {"en-MT", "en-001"}, - {"en-NZ", "en-001"}, - {"en-PK", "en-001"}, - {"en-SG", "en-001"}, - - // Spanish in Latin-American countries have es-419 as parent. - {"es-AR", "es-419"}, - {"es-BO", "es-419"}, - {"es-CL", "es-419"}, - {"es-CO", "es-419"}, - {"es-CR", "es-419"}, - {"es-CU", "es-419"}, - {"es-DO", "es-419"}, - {"es-EC", "es-419"}, - {"es-GT", "es-419"}, - {"es-HN", "es-419"}, - {"es-MX", "es-419"}, - {"es-NI", "es-419"}, - {"es-PA", "es-419"}, - {"es-PE", "es-419"}, - {"es-PR", "es-419"}, - {"es-PY", "es-419"}, - {"es-SV", "es-419"}, - {"es-US", "es-419"}, - {"es-UY", "es-419"}, - {"es-VE", "es-419"}, - // exceptions (according to CLDR) - {"es-CW", "es"}, - - // Inherit from pt-PT, instead of pt for these countries. - {"pt-AO", "pt-PT"}, - {"pt-CV", "pt-PT"}, - {"pt-GW", "pt-PT"}, - {"pt-MO", "pt-PT"}, - {"pt-MZ", "pt-PT"}, - {"pt-ST", "pt-PT"}, - {"pt-TL", "pt-PT"}, - } - for _, tt := range tests { - tag := Raw.MustParse(tt.in) - if p := Raw.MustParse(tt.out); p != tag.Parent() { - t.Errorf("%s: was %v; want %v", tt.in, tag.Parent(), p) - } - } -} - -var ( - // Tags without error that don't need to be changed. - benchBasic = []string{ - "en", - "en-Latn", - "en-GB", - "za", - "zh-Hant", - "zh", - "zh-HK", - "ar-MK", - "en-CA", - "fr-CA", - "fr-CH", - "fr", - "lv", - "he-IT", - "tlh", - "ja", - "ja-Jpan", - "ja-Jpan-JP", - "de-1996", - "de-CH", - "sr", - "sr-Latn", - } - // Tags with extensions, not changes required. - benchExt = []string{ - "x-a-b-c-d", - "x-aa-bbbb-cccccccc-d", - "en-x_cc-b-bbb-a-aaa", - "en-c_cc-b-bbb-a-aaa-x-x", - "en-u-co-phonebk", - "en-Cyrl-u-co-phonebk", - "en-US-u-co-phonebk-cu-xau", - "en-nedix-u-co-phonebk", - "en-t-t0-abcd", - "en-t-nl-latn", - "en-t-t0-abcd-x-a", - } - // Change, but not memory allocation required. - benchSimpleChange = []string{ - "EN", - "i-klingon", - "en-latn", - "zh-cmn-Hans-CN", - "iw-NL", - } - // Change and memory allocation required. - benchChangeAlloc = []string{ - "en-c_cc-b-bbb-a-aaa", - "en-u-cu-xua-co-phonebk", - "en-u-cu-xua-co-phonebk-a-cd", - "en-u-def-abc-cu-xua-co-phonebk", - "en-t-en-Cyrl-NL-1994", - "en-t-en-Cyrl-NL-1994-t0-abc-def", - } - // Tags that result in errors. - benchErr = []string{ - // IllFormed - "x_A.-B-C_D", - "en-u-cu-co-phonebk", - "en-u-cu-xau-co", - "en-t-nl-abcd", - // Invalid - "xx", - "nl-Uuuu", - "nl-QB", - } - benchChange = append(benchSimpleChange, benchChangeAlloc...) - benchAll = append(append(append(benchBasic, benchExt...), benchChange...), benchErr...) -) - -func doParse(b *testing.B, tag []string) { - for i := 0; i < b.N; i++ { - // Use the modulo instead of looping over all tags so that we get a somewhat - // meaningful ns/op. - Parse(tag[i%len(tag)]) - } -} - -func BenchmarkParse(b *testing.B) { - doParse(b, benchAll) -} - -func BenchmarkParseBasic(b *testing.B) { - doParse(b, benchBasic) -} - -func BenchmarkParseError(b *testing.B) { - doParse(b, benchErr) -} - -func BenchmarkParseSimpleChange(b *testing.B) { - doParse(b, benchSimpleChange) -} - -func BenchmarkParseChangeAlloc(b *testing.B) { - doParse(b, benchChangeAlloc) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/lookup.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/lookup.go deleted file mode 100644 index ce3032c0..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/lookup.go +++ /dev/null @@ -1,396 +0,0 @@ -// 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 language - -import ( - "bytes" - "fmt" - "sort" - "strconv" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag" -) - -// findIndex tries to find the given tag in idx and returns a standardized error -// if it could not be found. -func findIndex(idx tag.Index, key []byte, form string) (index int, err error) { - if !tag.FixCase(form, key) { - return 0, errSyntax - } - i := idx.Index(key) - if i == -1 { - return 0, mkErrInvalid(key) - } - return i, nil -} - -func searchUint(imap []uint16, key uint16) int { - return sort.Search(len(imap), func(i int) bool { - return imap[i] >= key - }) -} - -type langID uint16 - -// getLangID returns the langID of s if s is a canonical subtag -// or langUnknown if s is not a canonical subtag. -func getLangID(s []byte) (langID, error) { - if len(s) == 2 { - return getLangISO2(s) - } - return getLangISO3(s) -} - -// mapLang returns the mapped langID of id according to mapping m. -func normLang(id langID) (langID, langAliasType) { - k := sort.Search(len(langAliasMap), func(i int) bool { - return langAliasMap[i].from >= uint16(id) - }) - if k < len(langAliasMap) && langAliasMap[k].from == uint16(id) { - return langID(langAliasMap[k].to), langAliasTypes[k] - } - return id, langAliasTypeUnknown -} - -// getLangISO2 returns the langID for the given 2-letter ISO language code -// or unknownLang if this does not exist. -func getLangISO2(s []byte) (langID, error) { - if !tag.FixCase("zz", s) { - return 0, errSyntax - } - if i := lang.Index(s); i != -1 && lang.Elem(i)[3] != 0 { - return langID(i), nil - } - return 0, mkErrInvalid(s) -} - -const base = 'z' - 'a' + 1 - -func strToInt(s []byte) uint { - v := uint(0) - for i := 0; i < len(s); i++ { - v *= base - v += uint(s[i] - 'a') - } - return v -} - -// converts the given integer to the original ASCII string passed to strToInt. -// len(s) must match the number of characters obtained. -func intToStr(v uint, s []byte) { - for i := len(s) - 1; i >= 0; i-- { - s[i] = byte(v%base) + 'a' - v /= base - } -} - -// getLangISO3 returns the langID for the given 3-letter ISO language code -// or unknownLang if this does not exist. -func getLangISO3(s []byte) (langID, error) { - if tag.FixCase("und", s) { - // first try to match canonical 3-letter entries - for i := lang.Index(s[:2]); i != -1; i = lang.Next(s[:2], i) { - if e := lang.Elem(i); e[3] == 0 && e[2] == s[2] { - // We treat "und" as special and always translate it to "unspecified". - // Note that ZZ and Zzzz are private use and are not treated as - // unspecified by default. - id := langID(i) - if id == nonCanonicalUnd { - return 0, nil - } - return id, nil - } - } - if i := altLangISO3.Index(s); i != -1 { - return langID(altLangIndex[altLangISO3.Elem(i)[3]]), nil - } - n := strToInt(s) - if langNoIndex[n/8]&(1<<(n%8)) != 0 { - return langID(n) + langNoIndexOffset, nil - } - // Check for non-canonical uses of ISO3. - for i := lang.Index(s[:1]); i != -1; i = lang.Next(s[:1], i) { - if e := lang.Elem(i); e[2] == s[1] && e[3] == s[2] { - return langID(i), nil - } - } - return 0, mkErrInvalid(s) - } - return 0, errSyntax -} - -// stringToBuf writes the string to b and returns the number of bytes -// written. cap(b) must be >= 3. -func (id langID) stringToBuf(b []byte) int { - if id >= langNoIndexOffset { - intToStr(uint(id)-langNoIndexOffset, b[:3]) - return 3 - } else if id == 0 { - return copy(b, "und") - } - l := lang[id<<2:] - if l[3] == 0 { - return copy(b, l[:3]) - } - return copy(b, l[:2]) -} - -// String returns the BCP 47 representation of the langID. -// Use b as variable name, instead of id, to ensure the variable -// used is consistent with that of Base in which this type is embedded. -func (b langID) String() string { - if b == 0 { - return "und" - } else if b >= langNoIndexOffset { - b -= langNoIndexOffset - buf := [3]byte{} - intToStr(uint(b), buf[:]) - return string(buf[:]) - } - l := lang.Elem(int(b)) - if l[3] == 0 { - return l[:3] - } - return l[:2] -} - -// ISO3 returns the ISO 639-3 language code. -func (b langID) ISO3() string { - if b == 0 || b >= langNoIndexOffset { - return b.String() - } - l := lang.Elem(int(b)) - if l[3] == 0 { - return l[:3] - } else if l[2] == 0 { - return altLangISO3.Elem(int(l[3]))[:3] - } - // This allocation will only happen for 3-letter ISO codes - // that are non-canonical BCP 47 language identifiers. - return l[0:1] + l[2:4] -} - -// IsPrivateUse reports whether this language code is reserved for private use. -func (b langID) IsPrivateUse() bool { - return langPrivateStart <= b && b <= langPrivateEnd -} - -type regionID uint16 - -// getRegionID returns the region id for s if s is a valid 2-letter region code -// or unknownRegion. -func getRegionID(s []byte) (regionID, error) { - if len(s) == 3 { - if isAlpha(s[0]) { - return getRegionISO3(s) - } - if i, err := strconv.ParseUint(string(s), 10, 10); err == nil { - return getRegionM49(int(i)) - } - } - return getRegionISO2(s) -} - -// getRegionISO2 returns the regionID for the given 2-letter ISO country code -// or unknownRegion if this does not exist. -func getRegionISO2(s []byte) (regionID, error) { - i, err := findIndex(regionISO, s, "ZZ") - if err != nil { - return 0, err - } - return regionID(i) + isoRegionOffset, nil -} - -// getRegionISO3 returns the regionID for the given 3-letter ISO country code -// or unknownRegion if this does not exist. -func getRegionISO3(s []byte) (regionID, error) { - if tag.FixCase("ZZZ", s) { - for i := regionISO.Index(s[:1]); i != -1; i = regionISO.Next(s[:1], i) { - if e := regionISO.Elem(i); e[2] == s[1] && e[3] == s[2] { - return regionID(i) + isoRegionOffset, nil - } - } - for i := 0; i < len(altRegionISO3); i += 3 { - if tag.Compare(altRegionISO3[i:i+3], s) == 0 { - return regionID(altRegionIDs[i/3]), nil - } - } - return 0, mkErrInvalid(s) - } - return 0, errSyntax -} - -func getRegionM49(n int) (regionID, error) { - if 0 < n && n <= 999 { - const ( - searchBits = 7 - regionBits = 9 - regionMask = 1<<regionBits - 1 - ) - idx := n >> searchBits - buf := fromM49[m49Index[idx]:m49Index[idx+1]] - val := uint16(n) << regionBits // we rely on bits shifting out - i := sort.Search(len(buf), func(i int) bool { - return buf[i] >= val - }) - if r := fromM49[int(m49Index[idx])+i]; r&^regionMask == val { - return regionID(r & regionMask), nil - } - } - var e ValueError - fmt.Fprint(bytes.NewBuffer([]byte(e.v[:])), n) - return 0, e -} - -// normRegion returns a region if r is deprecated or 0 otherwise. -// TODO: consider supporting BYS (-> BLR), CSK (-> 200 or CZ), PHI (-> PHL) and AFI (-> DJ). -// TODO: consider mapping split up regions to new most populous one (like CLDR). -func normRegion(r regionID) regionID { - m := regionOldMap - k := sort.Search(len(m), func(i int) bool { - return m[i].from >= uint16(r) - }) - if k < len(m) && m[k].from == uint16(r) { - return regionID(m[k].to) - } - return 0 -} - -const ( - iso3166UserAssigned = 1 << iota - ccTLD - bcp47Region -) - -func (r regionID) typ() byte { - return regionTypes[r] -} - -// String returns the BCP 47 representation for the region. -// It returns "ZZ" for an unspecified region. -func (r regionID) String() string { - if r < isoRegionOffset { - if r == 0 { - return "ZZ" - } - return fmt.Sprintf("%03d", r.M49()) - } - r -= isoRegionOffset - return regionISO.Elem(int(r))[:2] -} - -// ISO3 returns the 3-letter ISO code of r. -// Note that not all regions have a 3-letter ISO code. -// In such cases this method returns "ZZZ". -func (r regionID) ISO3() string { - if r < isoRegionOffset { - return "ZZZ" - } - r -= isoRegionOffset - reg := regionISO.Elem(int(r)) - switch reg[2] { - case 0: - return altRegionISO3[reg[3]:][:3] - case ' ': - return "ZZZ" - } - return reg[0:1] + reg[2:4] -} - -// M49 returns the UN M.49 encoding of r, or 0 if this encoding -// is not defined for r. -func (r regionID) M49() int { - return int(m49[r]) -} - -// IsPrivateUse reports whether r has the ISO 3166 User-assigned status. This -// may include private-use tags that are assigned by CLDR and used in this -// implementation. So IsPrivateUse and IsCountry can be simultaneously true. -func (r regionID) IsPrivateUse() bool { - return r.typ()&iso3166UserAssigned != 0 -} - -type scriptID uint8 - -// getScriptID returns the script id for string s. It assumes that s -// is of the format [A-Z][a-z]{3}. -func getScriptID(idx tag.Index, s []byte) (scriptID, error) { - i, err := findIndex(idx, s, "Zzzz") - return scriptID(i), err -} - -// String returns the script code in title case. -// It returns "Zzzz" for an unspecified script. -func (s scriptID) String() string { - if s == 0 { - return "Zzzz" - } - return script.Elem(int(s)) -} - -// IsPrivateUse reports whether this script code is reserved for private use. -func (s scriptID) IsPrivateUse() bool { - return _Qaaa <= s && s <= _Qabx -} - -const ( - maxAltTaglen = len("en-US-POSIX") - maxLen = maxAltTaglen -) - -var ( - // grandfatheredMap holds a mapping from legacy and grandfathered tags to - // their base language or index to more elaborate tag. - grandfatheredMap = map[[maxLen]byte]int16{ - [maxLen]byte{'a', 'r', 't', '-', 'l', 'o', 'j', 'b', 'a', 'n'}: _jbo, // art-lojban - [maxLen]byte{'i', '-', 'a', 'm', 'i'}: _ami, // i-ami - [maxLen]byte{'i', '-', 'b', 'n', 'n'}: _bnn, // i-bnn - [maxLen]byte{'i', '-', 'h', 'a', 'k'}: _hak, // i-hak - [maxLen]byte{'i', '-', 'k', 'l', 'i', 'n', 'g', 'o', 'n'}: _tlh, // i-klingon - [maxLen]byte{'i', '-', 'l', 'u', 'x'}: _lb, // i-lux - [maxLen]byte{'i', '-', 'n', 'a', 'v', 'a', 'j', 'o'}: _nv, // i-navajo - [maxLen]byte{'i', '-', 'p', 'w', 'n'}: _pwn, // i-pwn - [maxLen]byte{'i', '-', 't', 'a', 'o'}: _tao, // i-tao - [maxLen]byte{'i', '-', 't', 'a', 'y'}: _tay, // i-tay - [maxLen]byte{'i', '-', 't', 's', 'u'}: _tsu, // i-tsu - [maxLen]byte{'n', 'o', '-', 'b', 'o', 'k'}: _nb, // no-bok - [maxLen]byte{'n', 'o', '-', 'n', 'y', 'n'}: _nn, // no-nyn - [maxLen]byte{'s', 'g', 'n', '-', 'b', 'e', '-', 'f', 'r'}: _sfb, // sgn-BE-FR - [maxLen]byte{'s', 'g', 'n', '-', 'b', 'e', '-', 'n', 'l'}: _vgt, // sgn-BE-NL - [maxLen]byte{'s', 'g', 'n', '-', 'c', 'h', '-', 'd', 'e'}: _sgg, // sgn-CH-DE - [maxLen]byte{'z', 'h', '-', 'g', 'u', 'o', 'y', 'u'}: _cmn, // zh-guoyu - [maxLen]byte{'z', 'h', '-', 'h', 'a', 'k', 'k', 'a'}: _hak, // zh-hakka - [maxLen]byte{'z', 'h', '-', 'm', 'i', 'n', '-', 'n', 'a', 'n'}: _nan, // zh-min-nan - [maxLen]byte{'z', 'h', '-', 'x', 'i', 'a', 'n', 'g'}: _hsn, // zh-xiang - - // Grandfathered tags with no modern replacement will be converted as - // follows: - [maxLen]byte{'c', 'e', 'l', '-', 'g', 'a', 'u', 'l', 'i', 's', 'h'}: -1, // cel-gaulish - [maxLen]byte{'e', 'n', '-', 'g', 'b', '-', 'o', 'e', 'd'}: -2, // en-GB-oed - [maxLen]byte{'i', '-', 'd', 'e', 'f', 'a', 'u', 'l', 't'}: -3, // i-default - [maxLen]byte{'i', '-', 'e', 'n', 'o', 'c', 'h', 'i', 'a', 'n'}: -4, // i-enochian - [maxLen]byte{'i', '-', 'm', 'i', 'n', 'g', 'o'}: -5, // i-mingo - [maxLen]byte{'z', 'h', '-', 'm', 'i', 'n'}: -6, // zh-min - - // CLDR-specific tag. - [maxLen]byte{'r', 'o', 'o', 't'}: 0, // root - [maxLen]byte{'e', 'n', '-', 'u', 's', '-', 'p', 'o', 's', 'i', 'x'}: -7, // en_US_POSIX" - } - - altTagIndex = [...]uint8{0, 17, 31, 45, 61, 74, 86, 102} - - altTags = "xtg-x-cel-gaulishen-GB-oxendicten-x-i-defaultund-x-i-enochiansee-x-i-mingonan-x-zh-minen-US-u-va-posix" -) - -func grandfathered(s [maxAltTaglen]byte) (t Tag, ok bool) { - if v, ok := grandfatheredMap[s]; ok { - if v < 0 { - return Make(altTags[altTagIndex[-v-1]:altTagIndex[-v]]), true - } - t.lang = langID(v) - return t, true - } - return t, false -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/lookup_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/lookup_test.go deleted file mode 100644 index 816e309f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/lookup_test.go +++ /dev/null @@ -1,457 +0,0 @@ -// 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 language - -import ( - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag" -) - -func b(s string) []byte { - return []byte(s) -} - -func TestLangID(t *testing.T) { - tests := []struct { - id, bcp47, iso3, norm string - err error - }{ - {id: "", bcp47: "und", iso3: "und", err: errSyntax}, - {id: " ", bcp47: "und", iso3: "und", err: errSyntax}, - {id: " ", bcp47: "und", iso3: "und", err: errSyntax}, - {id: " ", bcp47: "und", iso3: "und", err: errSyntax}, - {id: "xxx", bcp47: "und", iso3: "und", err: mkErrInvalid([]byte("xxx"))}, - {id: "und", bcp47: "und", iso3: "und"}, - {id: "aju", bcp47: "aju", iso3: "aju", norm: "jrb"}, - {id: "jrb", bcp47: "jrb", iso3: "jrb"}, - {id: "es", bcp47: "es", iso3: "spa"}, - {id: "spa", bcp47: "es", iso3: "spa"}, - {id: "ji", bcp47: "ji", iso3: "yid-", norm: "yi"}, - {id: "jw", bcp47: "jw", iso3: "jav-", norm: "jv"}, - {id: "ar", bcp47: "ar", iso3: "ara"}, - {id: "kw", bcp47: "kw", iso3: "cor"}, - {id: "arb", bcp47: "arb", iso3: "arb", norm: "ar"}, - {id: "ar", bcp47: "ar", iso3: "ara"}, - {id: "kur", bcp47: "ku", iso3: "kur"}, - {id: "nl", bcp47: "nl", iso3: "nld"}, - {id: "NL", bcp47: "nl", iso3: "nld"}, - {id: "gsw", bcp47: "gsw", iso3: "gsw"}, - {id: "gSW", bcp47: "gsw", iso3: "gsw"}, - {id: "und", bcp47: "und", iso3: "und"}, - {id: "sh", bcp47: "sh", iso3: "hbs", norm: "sr"}, - {id: "hbs", bcp47: "sh", iso3: "hbs", norm: "sr"}, - {id: "no", bcp47: "no", iso3: "nor", norm: "no"}, - {id: "nor", bcp47: "no", iso3: "nor", norm: "no"}, - {id: "cmn", bcp47: "cmn", iso3: "cmn", norm: "zh"}, - } - for i, tt := range tests { - want, err := getLangID(b(tt.id)) - if err != tt.err { - t.Errorf("%d:err(%s): found %q; want %q", i, tt.id, err, tt.err) - } - if err != nil { - continue - } - if id, _ := getLangISO2(b(tt.bcp47)); len(tt.bcp47) == 2 && want != id { - t.Errorf("%d:getISO2(%s): found %v; want %v", i, tt.bcp47, id, want) - } - if len(tt.iso3) == 3 { - if id, _ := getLangISO3(b(tt.iso3)); want != id { - t.Errorf("%d:getISO3(%s): found %q; want %q", i, tt.iso3, id, want) - } - if id, _ := getLangID(b(tt.iso3)); want != id { - t.Errorf("%d:getID3(%s): found %v; want %v", i, tt.iso3, id, want) - } - } - norm := want - if tt.norm != "" { - norm, _ = getLangID(b(tt.norm)) - } - id, _ := normLang(want) - if id != norm { - t.Errorf("%d:norm(%s): found %v; want %v", i, tt.id, id, norm) - } - if id := want.String(); tt.bcp47 != id { - t.Errorf("%d:String(): found %s; want %s", i, id, tt.bcp47) - } - if id := want.ISO3(); tt.iso3[:3] != id { - t.Errorf("%d:iso3(): found %s; want %s", i, id, tt.iso3[:3]) - } - } -} - -func TestGrandfathered(t *testing.T) { - for _, tt := range []struct{ in, out string }{ - {"art-lojban", "jbo"}, - {"i-ami", "ami"}, - {"i-bnn", "bnn"}, - {"i-hak", "hak"}, - {"i-klingon", "tlh"}, - {"i-lux", "lb"}, - {"i-navajo", "nv"}, - {"i-pwn", "pwn"}, - {"i-tao", "tao"}, - {"i-tay", "tay"}, - {"i-tsu", "tsu"}, - {"no-bok", "nb"}, - {"no-nyn", "nn"}, - {"sgn-BE-FR", "sfb"}, - {"sgn-BE-NL", "vgt"}, - {"sgn-CH-DE", "sgg"}, - {"sgn-ch-de", "sgg"}, - {"zh-guoyu", "cmn"}, - {"zh-hakka", "hak"}, - {"zh-min-nan", "nan"}, - {"zh-xiang", "hsn"}, - - // Grandfathered tags with no modern replacement will be converted as follows: - {"cel-gaulish", "xtg-x-cel-gaulish"}, - {"en-GB-oed", "en-GB-oxendict"}, - {"en-gb-oed", "en-GB-oxendict"}, - {"i-default", "en-x-i-default"}, - {"i-enochian", "und-x-i-enochian"}, - {"i-mingo", "see-x-i-mingo"}, - {"zh-min", "nan-x-zh-min"}, - - {"root", "und"}, - {"en_US_POSIX", "en-US-u-va-posix"}, - {"en_us_posix", "en-US-u-va-posix"}, - {"en-us-posix", "en-US-u-va-posix"}, - } { - got := Raw.Make(tt.in) - want := Raw.MustParse(tt.out) - if got != want { - t.Errorf("%s: got %q; want %q", tt.in, got, want) - } - } -} - -func TestRegionID(t *testing.T) { - tests := []struct { - in, out string - }{ - {"_ ", ""}, - {"_000", ""}, - {"419", "419"}, - {"AA", "AA"}, - {"ATF", "TF"}, - {"HV", "HV"}, - {"CT", "CT"}, - {"DY", "DY"}, - {"IC", "IC"}, - {"FQ", "FQ"}, - {"JT", "JT"}, - {"ZZ", "ZZ"}, - {"EU", "EU"}, - {"QO", "QO"}, - {"FX", "FX"}, - } - for i, tt := range tests { - if tt.in[0] == '_' { - id := tt.in[1:] - if _, err := getRegionID(b(id)); err == nil { - t.Errorf("%d:err(%s): found nil; want error", i, id) - } - continue - } - want, _ := getRegionID(b(tt.in)) - if s := want.String(); s != tt.out { - t.Errorf("%d:%s: found %q; want %q", i, tt.in, s, tt.out) - } - if len(tt.in) == 2 { - want, _ := getRegionISO2(b(tt.in)) - if s := want.String(); s != tt.out { - t.Errorf("%d:getISO2(%s): found %q; want %q", i, tt.in, s, tt.out) - } - } - } -} - -func TestRegionType(t *testing.T) { - for _, tt := range []struct { - r string - t byte - }{ - {"NL", bcp47Region | ccTLD}, - {"EU", bcp47Region | ccTLD}, // exceptionally reserved - {"AN", bcp47Region | ccTLD}, // transitionally reserved - - {"DD", bcp47Region}, // deleted in ISO, deprecated in BCP 47 - {"NT", bcp47Region}, // transitionally reserved, deprecated in BCP 47 - - {"XA", iso3166UserAssigned | bcp47Region}, - {"ZZ", iso3166UserAssigned | bcp47Region}, - {"AA", iso3166UserAssigned | bcp47Region}, - {"QO", iso3166UserAssigned | bcp47Region}, - {"QM", iso3166UserAssigned | bcp47Region}, - {"XK", iso3166UserAssigned | bcp47Region}, - - {"CT", 0}, // deleted in ISO, not in BCP 47, canonicalized in CLDR - } { - r := MustParseRegion(tt.r) - if tp := r.typ(); tp != tt.t { - t.Errorf("Type(%s): got %x; want %x", tt.r, tp, tt.t) - } - } -} - -func TestRegionISO3(t *testing.T) { - tests := []struct { - from, iso3, to string - }{ - {" ", "ZZZ", "ZZ"}, - {"000", "ZZZ", "ZZ"}, - {"AA", "AAA", ""}, - {"CT", "CTE", ""}, - {"DY", "DHY", ""}, - {"EU", "QUU", ""}, - {"HV", "HVO", ""}, - {"IC", "ZZZ", "ZZ"}, - {"JT", "JTN", ""}, - {"PZ", "PCZ", ""}, - {"QU", "QUU", "EU"}, - {"QO", "QOO", ""}, - {"YD", "YMD", ""}, - {"FQ", "ATF", "TF"}, - {"TF", "ATF", ""}, - {"FX", "FXX", ""}, - {"ZZ", "ZZZ", ""}, - {"419", "ZZZ", "ZZ"}, - } - for _, tt := range tests { - r, _ := getRegionID(b(tt.from)) - if s := r.ISO3(); s != tt.iso3 { - t.Errorf("iso3(%q): found %q; want %q", tt.from, s, tt.iso3) - } - if tt.iso3 == "" { - continue - } - want := tt.to - if tt.to == "" { - want = tt.from - } - r, _ = getRegionID(b(want)) - if id, _ := getRegionISO3(b(tt.iso3)); id != r { - t.Errorf("%s: found %q; want %q", tt.iso3, id, want) - } - } -} - -func TestRegionM49(t *testing.T) { - fromTests := []struct { - m49 int - id string - }{ - {0, ""}, - {-1, ""}, - {1000, ""}, - {10000, ""}, - - {001, "001"}, - {104, "MM"}, - {180, "CD"}, - {230, "ET"}, - {231, "ET"}, - {249, "FX"}, - {250, "FR"}, - {276, "DE"}, - {278, "DD"}, - {280, "DE"}, - {419, "419"}, - {626, "TL"}, - {736, "SD"}, - {840, "US"}, - {854, "BF"}, - {891, "CS"}, - {899, ""}, - {958, "AA"}, - {966, "QT"}, - {967, "EU"}, - {999, "ZZ"}, - } - for _, tt := range fromTests { - id, err := getRegionM49(tt.m49) - if want, have := err != nil, tt.id == ""; want != have { - t.Errorf("error(%d): have %v; want %v", tt.m49, have, want) - continue - } - r, _ := getRegionID(b(tt.id)) - if r != id { - t.Errorf("region(%d): have %s; want %s", tt.m49, id, r) - } - } - - toTests := []struct { - m49 int - id string - }{ - {0, "000"}, - {0, "IC"}, // Some codes don't have an ID - - {001, "001"}, - {104, "MM"}, - {104, "BU"}, - {180, "CD"}, - {180, "ZR"}, - {231, "ET"}, - {250, "FR"}, - {249, "FX"}, - {276, "DE"}, - {278, "DD"}, - {419, "419"}, - {626, "TL"}, - {626, "TP"}, - {729, "SD"}, - {826, "GB"}, - {840, "US"}, - {854, "BF"}, - {891, "YU"}, - {891, "CS"}, - {958, "AA"}, - {966, "QT"}, - {967, "EU"}, - {967, "QU"}, - {999, "ZZ"}, - // For codes that don't have an M49 code use the replacement value, - // if available. - {854, "HV"}, // maps to Burkino Faso - } - for _, tt := range toTests { - r, _ := getRegionID(b(tt.id)) - if r.M49() != tt.m49 { - t.Errorf("m49(%q): have %d; want %d", tt.id, r.M49(), tt.m49) - } - } -} - -func TestRegionDeprecation(t *testing.T) { - tests := []struct{ in, out string }{ - {"BU", "MM"}, - {"BUR", "MM"}, - {"CT", "KI"}, - {"DD", "DE"}, - {"DDR", "DE"}, - {"DY", "BJ"}, - {"FX", "FR"}, - {"HV", "BF"}, - {"JT", "UM"}, - {"MI", "UM"}, - {"NH", "VU"}, - {"NQ", "AQ"}, - {"PU", "UM"}, - {"PZ", "PA"}, - {"QU", "EU"}, - {"RH", "ZW"}, - {"TP", "TL"}, - {"UK", "GB"}, - {"VD", "VN"}, - {"WK", "UM"}, - {"YD", "YE"}, - {"NL", "NL"}, - } - for _, tt := range tests { - rIn, _ := getRegionID([]byte(tt.in)) - rOut, _ := getRegionISO2([]byte(tt.out)) - r := normRegion(rIn) - if rOut == rIn && r != 0 { - t.Errorf("%s: was %q; want %q", tt.in, r, tt.in) - } - if rOut != rIn && r != rOut { - t.Errorf("%s: was %q; want %q", tt.in, r, tt.out) - } - - } -} - -func TestGetScriptID(t *testing.T) { - idx := tag.Index("0000BbbbDdddEeeeZzzz\xff\xff\xff\xff") - tests := []struct { - in string - out scriptID - }{ - {" ", 0}, - {" ", 0}, - {" ", 0}, - {"", 0}, - {"Aaaa", 0}, - {"Bbbb", 1}, - {"Dddd", 2}, - {"dddd", 2}, - {"dDDD", 2}, - {"Eeee", 3}, - {"Zzzz", 4}, - } - for i, tt := range tests { - if id, err := getScriptID(idx, b(tt.in)); id != tt.out { - t.Errorf("%d:%s: found %d; want %d", i, tt.in, id, tt.out) - } else if id == 0 && err == nil { - t.Errorf("%d:%s: no error; expected one", i, tt.in) - } - } -} - -func TestIsPrivateUse(t *testing.T) { - type test struct { - s string - private bool - } - tests := []test{ - {"en", false}, - {"und", false}, - {"pzn", false}, - {"qaa", true}, - {"qtz", true}, - {"qua", false}, - } - for i, tt := range tests { - x, _ := getLangID([]byte(tt.s)) - if b := x.IsPrivateUse(); b != tt.private { - t.Errorf("%d: langID.IsPrivateUse(%s) was %v; want %v", i, tt.s, b, tt.private) - } - } - tests = []test{ - {"001", false}, - {"419", false}, - {"899", false}, - {"900", false}, - {"957", false}, - {"958", true}, - {"AA", true}, - {"AC", false}, - {"EU", false}, // CLDR grouping, exceptionally reserved in ISO. - {"QU", true}, // Canonicalizes to EU, User-assigned in ISO. - {"QO", true}, // CLDR grouping, User-assigned in ISO. - {"QA", false}, - {"QM", true}, - {"QZ", true}, - {"XA", true}, - {"XK", true}, // Assigned to Kosovo in CLDR, User-assigned in ISO. - {"XZ", true}, - {"ZW", false}, - {"ZZ", true}, - } - for i, tt := range tests { - x, _ := getRegionID([]byte(tt.s)) - if b := x.IsPrivateUse(); b != tt.private { - t.Errorf("%d: regionID.IsPrivateUse(%s) was %v; want %v", i, tt.s, b, tt.private) - } - } - tests = []test{ - {"Latn", false}, - {"Laaa", false}, // invalid - {"Qaaa", true}, - {"Qabx", true}, - {"Qaby", false}, - {"Zyyy", false}, - {"Zzzz", false}, - } - for i, tt := range tests { - x, _ := getScriptID(script, []byte(tt.s)) - if b := x.IsPrivateUse(); b != tt.private { - t.Errorf("%d: scriptID.IsPrivateUse(%s) was %v; want %v", i, tt.s, b, tt.private) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/maketables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/maketables.go deleted file mode 100644 index 5d67fefc..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/maketables.go +++ /dev/null @@ -1,1641 +0,0 @@ -// 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. - -// +build ignore - -// Language tag table generator. -// Data read from the web. - -package main - -import ( - "bufio" - "bytes" - "flag" - "fmt" - "io" - "io/ioutil" - "log" - "math" - "reflect" - "regexp" - "sort" - "strconv" - "strings" - - "golang.org/x/text/cldr" - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/tag" -) - -var ( - test = flag.Bool("test", - false, - "test existing tables; can be used to compare web data with package data.") - outputFile = flag.String("output", - "tables.go", - "output file for generated tables") -) - -var comment = []string{ - ` -lang holds an alphabetically sorted list of ISO-639 language identifiers. -All entries are 4 bytes. The index of the identifier (divided by 4) is the language tag. -For 2-byte language identifiers, the two successive bytes have the following meaning: - - if the first letter of the 2- and 3-letter ISO codes are the same: - the second and third letter of the 3-letter ISO code. - - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3. -For 3-byte language identifiers the 4th byte is 0.`, - ` -langNoIndex is a bit vector of all 3-letter language codes that are not used as an index -in lookup tables. The language ids for these language codes are derived directly -from the letters and are not consecutive.`, - ` -altLangISO3 holds an alphabetically sorted list of 3-letter language code alternatives -to 2-letter language codes that cannot be derived using the method described above. -Each 3-letter code is followed by its 1-byte langID.`, - ` -altLangIndex is used to convert indexes in altLangISO3 to langIDs.`, - ` -langAliasMap maps langIDs to their suggested replacements.`, - ` -script is an alphabetically sorted list of ISO 15924 codes. The index -of the script in the string, divided by 4, is the internal scriptID.`, - ` -isoRegionOffset needs to be added to the index of regionISO to obtain the regionID -for 2-letter ISO codes. (The first isoRegionOffset regionIDs are reserved for -the UN.M49 codes used for groups.)`, - ` -regionISO holds a list of alphabetically sorted 2-letter ISO region codes. -Each 2-letter codes is followed by two bytes with the following meaning: - - [A-Z}{2}: the first letter of the 2-letter code plus these two - letters form the 3-letter ISO code. - - 0, n: index into altRegionISO3.`, - ` -regionTypes defines the status of a region for various standards.`, - ` -m49 maps regionIDs to UN.M49 codes. The first isoRegionOffset entries are -codes indicating collections of regions.`, - ` -m49Index gives indexes into fromM49 based on the three most significant bits -of a 10-bit UN.M49 code. To search an UN.M49 code in fromM49, search in - fromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]] -for an entry where the first 7 bits match the 7 lsb of the UN.M49 code. -The region code is stored in the 9 lsb of the indexed value.`, - ` -fromM49 contains entries to map UN.M49 codes to regions. See m49Index for details.`, - ` -altRegionISO3 holds a list of 3-letter region codes that cannot be -mapped to 2-letter codes using the default algorithm. This is a short list.`, - ` -altRegionIDs holds a list of regionIDs the positions of which match those -of the 3-letter ISO codes in altRegionISO3.`, - ` -variantNumSpecialized is the number of specialized variants in variants.`, - ` -suppressScript is an index from langID to the dominant script for that language, -if it exists. If a script is given, it should be suppressed from the language tag.`, - ` -likelyLang is a lookup table, indexed by langID, for the most likely -scripts and regions given incomplete information. If more entries exist for a -given language, region and script are the index and size respectively -of the list in likelyLangList.`, - ` -likelyLangList holds lists info associated with likelyLang.`, - ` -likelyRegion is a lookup table, indexed by regionID, for the most likely -languages and scripts given incomplete information. If more entries exist -for a given regionID, lang and script are the index and size respectively -of the list in likelyRegionList. -TODO: exclude containers and user-definable regions from the list.`, - ` -likelyRegionList holds lists info associated with likelyRegion.`, - ` -likelyScript is a lookup table, indexed by scriptID, for the most likely -languages and regions given a script.`, - ` -matchLang holds pairs of langIDs of base languages that are typically -mutually intelligible. Each pair is associated with a confidence and -whether the intelligibility goes one or both ways.`, - ` -matchScript holds pairs of scriptIDs where readers of one script -can typically also read the other. Each is associated with a confidence.`, - ` -nRegionGroups is the number of region groups.`, - ` -regionInclusion maps region identifiers to sets of regions in regionInclusionBits, -where each set holds all groupings that are directly connected in a region -containment graph.`, - ` -regionInclusionBits is an array of bit vectors where every vector represents -a set of region groupings. These sets are used to compute the distance -between two regions for the purpose of language matching.`, - ` -regionInclusionNext marks, for each entry in regionInclusionBits, the set of -all groups that are reachable from the groups set in the respective entry.`, -} - -// TODO: consider changing some of these structures to tries. This can reduce -// memory, but may increase the need for memory allocations. This could be -// mitigated if we can piggyback on language tags for common cases. - -func failOnError(e error) { - if e != nil { - log.Panic(e) - } -} - -type setType int - -const ( - Indexed setType = 1 + iota // all elements must be of same size - Linear -) - -type stringSet struct { - s []string - sorted, frozen bool - - // We often need to update values after the creation of an index is completed. - // We include a convenience map for keeping track of this. - update map[string]string - typ setType // used for checking. -} - -func (ss *stringSet) clone() stringSet { - c := *ss - c.s = append([]string(nil), c.s...) - return c -} - -func (ss *stringSet) setType(t setType) { - if ss.typ != t && ss.typ != 0 { - log.Panicf("type %d cannot be assigned as it was already %d", t, ss.typ) - } -} - -// parse parses a whitespace-separated string and initializes ss with its -// components. -func (ss *stringSet) parse(s string) { - scan := bufio.NewScanner(strings.NewReader(s)) - scan.Split(bufio.ScanWords) - for scan.Scan() { - ss.add(scan.Text()) - } -} - -func (ss *stringSet) assertChangeable() { - if ss.frozen { - log.Panic("attempt to modify a frozen stringSet") - } -} - -func (ss *stringSet) add(s string) { - ss.assertChangeable() - ss.s = append(ss.s, s) - ss.sorted = ss.frozen -} - -func (ss *stringSet) freeze() { - ss.compact() - ss.frozen = true -} - -func (ss *stringSet) compact() { - if ss.sorted { - return - } - a := ss.s - sort.Strings(a) - k := 0 - for i := 1; i < len(a); i++ { - if a[k] != a[i] { - a[k+1] = a[i] - k++ - } - } - ss.s = a[:k+1] - ss.sorted = ss.frozen -} - -type funcSorter struct { - fn func(a, b string) bool - sort.StringSlice -} - -func (s funcSorter) Less(i, j int) bool { - return s.fn(s.StringSlice[i], s.StringSlice[j]) -} - -func (ss *stringSet) sortFunc(f func(a, b string) bool) { - ss.compact() - sort.Sort(funcSorter{f, sort.StringSlice(ss.s)}) -} - -func (ss *stringSet) remove(s string) { - ss.assertChangeable() - if i, ok := ss.find(s); ok { - copy(ss.s[i:], ss.s[i+1:]) - ss.s = ss.s[:len(ss.s)-1] - } -} - -func (ss *stringSet) replace(ol, nu string) { - ss.s[ss.index(ol)] = nu - ss.sorted = ss.frozen -} - -func (ss *stringSet) index(s string) int { - ss.setType(Indexed) - i, ok := ss.find(s) - if !ok { - if i < len(ss.s) { - log.Panicf("find: item %q is not in list. Closest match is %q.", s, ss.s[i]) - } - log.Panicf("find: item %q is not in list", s) - - } - return i -} - -func (ss *stringSet) find(s string) (int, bool) { - ss.compact() - i := sort.SearchStrings(ss.s, s) - return i, i != len(ss.s) && ss.s[i] == s -} - -func (ss *stringSet) slice() []string { - ss.compact() - return ss.s -} - -func (ss *stringSet) updateLater(v, key string) { - if ss.update == nil { - ss.update = map[string]string{} - } - ss.update[v] = key -} - -// join joins the string and ensures that all entries are of the same length. -func (ss *stringSet) join() string { - ss.setType(Indexed) - n := len(ss.s[0]) - for _, s := range ss.s { - if len(s) != n { - log.Panicf("join: not all entries are of the same length: %q", s) - } - } - ss.s = append(ss.s, strings.Repeat("\xff", n)) - return strings.Join(ss.s, "") -} - -// ianaEntry holds information for an entry in the IANA Language Subtag Repository. -// All types use the same entry. -// See http://tools.ietf.org/html/bcp47#section-5.1 for a description of the various -// fields. -type ianaEntry struct { - typ string - description []string - scope string - added string - preferred string - deprecated string - suppressScript string - macro string - prefix []string -} - -type builder struct { - w *gen.CodeWriter - hw io.Writer // MultiWriter for w and w.Hash - data *cldr.CLDR - supp *cldr.SupplementalData - - // indices - locale stringSet // common locales - lang stringSet // canonical language ids (2 or 3 letter ISO codes) with data - langNoIndex stringSet // 3-letter ISO codes with no associated data - script stringSet // 4-letter ISO codes - region stringSet // 2-letter ISO or 3-digit UN M49 codes - variant stringSet // 4-8-alphanumeric variant code. - - // Region codes that are groups with their corresponding group IDs. - groups map[int]index - - // langInfo - registry map[string]*ianaEntry -} - -type index uint - -func newBuilder(w *gen.CodeWriter) *builder { - r := gen.OpenCLDRCoreZip() - defer r.Close() - d := &cldr.Decoder{} - data, err := d.DecodeZip(r) - failOnError(err) - b := builder{ - w: w, - hw: io.MultiWriter(w, w.Hash), - data: data, - supp: data.Supplemental(), - } - b.parseRegistry() - return &b -} - -func (b *builder) parseRegistry() { - r := gen.OpenIANAFile("assignments/language-subtag-registry") - defer r.Close() - b.registry = make(map[string]*ianaEntry) - - scan := bufio.NewScanner(r) - scan.Split(bufio.ScanWords) - var record *ianaEntry - for more := scan.Scan(); more; { - key := scan.Text() - more = scan.Scan() - value := scan.Text() - switch key { - case "Type:": - record = &ianaEntry{typ: value} - case "Subtag:", "Tag:": - if s := strings.SplitN(value, "..", 2); len(s) > 1 { - for a := s[0]; a <= s[1]; a = inc(a) { - b.addToRegistry(a, record) - } - } else { - b.addToRegistry(value, record) - } - case "Suppress-Script:": - record.suppressScript = value - case "Added:": - record.added = value - case "Deprecated:": - record.deprecated = value - case "Macrolanguage:": - record.macro = value - case "Preferred-Value:": - record.preferred = value - case "Prefix:": - record.prefix = append(record.prefix, value) - case "Scope:": - record.scope = value - case "Description:": - buf := []byte(value) - for more = scan.Scan(); more; more = scan.Scan() { - b := scan.Bytes() - if b[0] == '%' || b[len(b)-1] == ':' { - break - } - buf = append(buf, ' ') - buf = append(buf, b...) - } - record.description = append(record.description, string(buf)) - continue - default: - continue - } - more = scan.Scan() - } - if scan.Err() != nil { - log.Panic(scan.Err()) - } -} - -func (b *builder) addToRegistry(key string, entry *ianaEntry) { - if info, ok := b.registry[key]; ok { - if info.typ != "language" || entry.typ != "extlang" { - log.Fatalf("parseRegistry: tag %q already exists", key) - } - } else { - b.registry[key] = entry - } -} - -var commentIndex = make(map[string]string) - -func init() { - for _, s := range comment { - key := strings.TrimSpace(strings.SplitN(s, " ", 2)[0]) - commentIndex[key] = s - } -} - -func (b *builder) comment(name string) { - if s := commentIndex[name]; len(s) > 0 { - b.w.WriteComment(s) - } else { - fmt.Fprintln(b.w) - } -} - -func (b *builder) pf(f string, x ...interface{}) { - fmt.Fprintf(b.hw, f, x...) - fmt.Fprint(b.hw, "\n") -} - -func (b *builder) p(x ...interface{}) { - fmt.Fprintln(b.hw, x...) -} - -func (b *builder) addSize(s int) { - b.w.Size += s - b.pf("// Size: %d bytes", s) -} - -func (b *builder) writeConst(name string, x interface{}) { - b.comment(name) - b.w.WriteConst(name, x) -} - -// writeConsts computes f(v) for all v in values and writes the results -// as constants named _v to a single constant block. -func (b *builder) writeConsts(f func(string) int, values ...string) { - b.pf("const (") - for _, v := range values { - b.pf("\t_%s = %v", v, f(v)) - } - b.pf(")") -} - -// writeType writes the type of the given value, which must be a struct. -func (b *builder) writeType(value interface{}) { - b.comment(reflect.TypeOf(value).Name()) - b.w.WriteType(value) -} - -func (b *builder) writeSlice(name string, ss interface{}) { - b.writeSliceAddSize(name, 0, ss) -} - -func (b *builder) writeSliceAddSize(name string, extraSize int, ss interface{}) { - b.comment(name) - b.w.Size += extraSize - v := reflect.ValueOf(ss) - t := v.Type().Elem() - b.pf("// Size: %d bytes, %d elements", v.Len()*int(t.Size())+extraSize, v.Len()) - - fmt.Fprintf(b.w, "var %s = ", name) - b.w.WriteArray(ss) - b.p() -} - -type fromTo struct { - from, to uint16 -} - -func (b *builder) writeSortedMap(name string, ss *stringSet, index func(s string) uint16) { - ss.sortFunc(func(a, b string) bool { - return index(a) < index(b) - }) - m := []fromTo{} - for _, s := range ss.s { - m = append(m, fromTo{index(s), index(ss.update[s])}) - } - b.writeSlice(name, m) -} - -const base = 'z' - 'a' + 1 - -func strToInt(s string) uint { - v := uint(0) - for i := 0; i < len(s); i++ { - v *= base - v += uint(s[i] - 'a') - } - return v -} - -// converts the given integer to the original ASCII string passed to strToInt. -// len(s) must match the number of characters obtained. -func intToStr(v uint, s []byte) { - for i := len(s) - 1; i >= 0; i-- { - s[i] = byte(v%base) + 'a' - v /= base - } -} - -func (b *builder) writeBitVector(name string, ss []string) { - vec := make([]uint8, int(math.Ceil(math.Pow(base, float64(len(ss[0])))/8))) - for _, s := range ss { - v := strToInt(s) - vec[v/8] |= 1 << (v % 8) - } - b.writeSlice(name, vec) -} - -// TODO: convert this type into a list or two-stage trie. -func (b *builder) writeMapFunc(name string, m map[string]string, f func(string) uint16) { - b.comment(name) - v := reflect.ValueOf(m) - sz := v.Len() * (2 + int(v.Type().Key().Size())) - for _, k := range m { - sz += len(k) - } - b.addSize(sz) - keys := []string{} - b.pf(`var %s = map[string]uint16{`, name) - for k := range m { - keys = append(keys, k) - } - sort.Strings(keys) - for _, k := range keys { - b.pf("\t%q: %v,", k, f(m[k])) - } - b.p("}") -} - -func (b *builder) writeMap(name string, m interface{}) { - b.comment(name) - v := reflect.ValueOf(m) - sz := v.Len() * (2 + int(v.Type().Key().Size()) + int(v.Type().Elem().Size())) - b.addSize(sz) - f := strings.FieldsFunc(fmt.Sprintf("%#v", m), func(r rune) bool { - return strings.IndexRune("{}, ", r) != -1 - }) - sort.Strings(f[1:]) - b.pf(`var %s = %s{`, name, f[0]) - for _, kv := range f[1:] { - b.pf("\t%s,", kv) - } - b.p("}") -} - -func (b *builder) langIndex(s string) uint16 { - if s == "und" { - return 0 - } - if i, ok := b.lang.find(s); ok { - return uint16(i) - } - return uint16(strToInt(s)) + uint16(len(b.lang.s)) -} - -// inc advances the string to its lexicographical successor. -func inc(s string) string { - const maxTagLength = 4 - var buf [maxTagLength]byte - intToStr(strToInt(strings.ToLower(s))+1, buf[:len(s)]) - for i := 0; i < len(s); i++ { - if s[i] <= 'Z' { - buf[i] -= 'a' - 'A' - } - } - return string(buf[:len(s)]) -} - -func (b *builder) parseIndices() { - meta := b.supp.Metadata - - for k, v := range b.registry { - var ss *stringSet - switch v.typ { - case "language": - if len(k) == 2 || v.suppressScript != "" || v.scope == "special" { - b.lang.add(k) - continue - } else { - ss = &b.langNoIndex - } - case "region": - ss = &b.region - case "script": - ss = &b.script - case "variant": - ss = &b.variant - default: - continue - } - ss.add(k) - } - // Include any language for which there is data. - for _, lang := range b.data.Locales() { - if x := b.data.RawLDML(lang); false || - x.LocaleDisplayNames != nil || - x.Characters != nil || - x.Delimiters != nil || - x.Measurement != nil || - x.Dates != nil || - x.Numbers != nil || - x.Units != nil || - x.ListPatterns != nil || - x.Collations != nil || - x.Segmentations != nil || - x.Rbnf != nil || - x.Annotations != nil || - x.Metadata != nil { - - from := strings.Split(lang, "_") - if lang := from[0]; lang != "root" { - b.lang.add(lang) - } - } - } - // Include languages in likely subtags. - for _, m := range b.supp.LikelySubtags.LikelySubtag { - from := strings.Split(m.From, "_") - b.lang.add(from[0]) - } - // Include ISO-639 alpha-3 bibliographic entries. - for _, a := range meta.Alias.LanguageAlias { - if a.Reason == "bibliographic" { - b.langNoIndex.add(a.Type) - } - } - // Include regions in territoryAlias (not all are in the IANA registry!) - for _, reg := range b.supp.Metadata.Alias.TerritoryAlias { - if len(reg.Type) == 2 { - b.region.add(reg.Type) - } - } - - for _, s := range b.lang.s { - if len(s) == 3 { - b.langNoIndex.remove(s) - } - } - b.writeConst("numLanguages", len(b.lang.slice())+len(b.langNoIndex.slice())) - b.writeConst("numScripts", len(b.script.slice())) - b.writeConst("numRegions", len(b.region.slice())) - - // Add dummy codes at the start of each list to represent "unspecified". - b.lang.add("---") - b.script.add("----") - b.region.add("---") - - // common locales - b.locale.parse(meta.DefaultContent.Locales) -} - -func (b *builder) computeRegionGroups() { - b.groups = make(map[int]index) - - // Create group indices. - for i := 1; b.region.s[i][0] < 'A'; i++ { // Base M49 indices on regionID. - b.groups[i] = index(len(b.groups)) - } - for _, g := range b.supp.TerritoryContainment.Group { - group := b.region.index(g.Type) - if _, ok := b.groups[group]; !ok { - b.groups[group] = index(len(b.groups)) - } - } - if len(b.groups) > 32 { - log.Fatalf("only 32 groups supported, found %d", len(b.groups)) - } - b.writeConst("nRegionGroups", len(b.groups)) -} - -var langConsts = []string{ - "af", "am", "ar", "az", "bg", "bn", "ca", "cs", "da", "de", "el", "en", "es", - "et", "fa", "fi", "fil", "fr", "gu", "he", "hi", "hr", "hu", "hy", "id", "is", - "it", "ja", "ka", "kk", "km", "kn", "ko", "ky", "lo", "lt", "lv", "mk", "ml", - "mn", "mo", "mr", "ms", "mul", "my", "nb", "ne", "nl", "no", "pa", "pl", "pt", - "ro", "ru", "sh", "si", "sk", "sl", "sq", "sr", "sv", "sw", "ta", "te", "th", - "tl", "tn", "tr", "uk", "ur", "uz", "vi", "zh", "zu", - - // constants for grandfathered tags (if not already defined) - "jbo", "ami", "bnn", "hak", "tlh", "lb", "nv", "pwn", "tao", "tay", "tsu", - "nn", "sfb", "vgt", "sgg", "cmn", "nan", "hsn", -} - -// writeLanguage generates all tables needed for language canonicalization. -func (b *builder) writeLanguage() { - meta := b.supp.Metadata - - b.writeConst("nonCanonicalUnd", b.lang.index("und")) - b.writeConsts(func(s string) int { return int(b.langIndex(s)) }, langConsts...) - b.writeConst("langPrivateStart", b.langIndex("qaa")) - b.writeConst("langPrivateEnd", b.langIndex("qtz")) - - // Get language codes that need to be mapped (overlong 3-letter codes, - // deprecated 2-letter codes, legacy and grandfathered tags.) - langAliasMap := stringSet{} - aliasTypeMap := map[string]langAliasType{} - - // altLangISO3 get the alternative ISO3 names that need to be mapped. - altLangISO3 := stringSet{} - // Add dummy start to avoid the use of index 0. - altLangISO3.add("---") - altLangISO3.updateLater("---", "aa") - - lang := b.lang.clone() - for _, a := range meta.Alias.LanguageAlias { - if a.Replacement == "" { - a.Replacement = "und" - } - // TODO: support mapping to tags - repl := strings.SplitN(a.Replacement, "_", 2)[0] - if a.Reason == "overlong" { - if len(a.Replacement) == 2 && len(a.Type) == 3 { - lang.updateLater(a.Replacement, a.Type) - } - } else if len(a.Type) <= 3 { - switch a.Reason { - case "macrolanguage": - aliasTypeMap[a.Type] = langMacro - case "deprecated": - // handled elsewhere - continue - case "bibliographic", "legacy": - if a.Type == "no" { - continue - } - aliasTypeMap[a.Type] = langLegacy - default: - log.Fatalf("new %s alias: %s", a.Reason, a.Type) - } - langAliasMap.add(a.Type) - langAliasMap.updateLater(a.Type, repl) - } - } - // Manually add the mapping of "nb" (Norwegian) to its macro language. - // This can be removed if CLDR adopts this change. - langAliasMap.add("nb") - langAliasMap.updateLater("nb", "no") - aliasTypeMap["nb"] = langMacro - - for k, v := range b.registry { - // Also add deprecated values for 3-letter ISO codes, which CLDR omits. - if v.typ == "language" && v.deprecated != "" && v.preferred != "" { - langAliasMap.add(k) - langAliasMap.updateLater(k, v.preferred) - aliasTypeMap[k] = langDeprecated - } - } - // Fix CLDR mappings. - lang.updateLater("tl", "tgl") - lang.updateLater("sh", "hbs") - lang.updateLater("mo", "mol") - lang.updateLater("no", "nor") - lang.updateLater("tw", "twi") - lang.updateLater("nb", "nob") - lang.updateLater("ak", "aka") - - // Ensure that each 2-letter code is matched with a 3-letter code. - for _, v := range lang.s[1:] { - s, ok := lang.update[v] - if !ok { - if s, ok = lang.update[langAliasMap.update[v]]; !ok { - continue - } - lang.update[v] = s - } - if v[0] != s[0] { - altLangISO3.add(s) - altLangISO3.updateLater(s, v) - } - } - - // Complete canonialized language tags. - lang.freeze() - for i, v := range lang.s { - // We can avoid these manual entries by using the IANI registry directly. - // Seems easier to update the list manually, as changes are rare. - // The panic in this loop will trigger if we miss an entry. - add := "" - if s, ok := lang.update[v]; ok { - if s[0] == v[0] { - add = s[1:] - } else { - add = string([]byte{0, byte(altLangISO3.index(s))}) - } - } else if len(v) == 3 { - add = "\x00" - } else { - log.Panicf("no data for long form of %q", v) - } - lang.s[i] += add - } - b.writeConst("lang", tag.Index(lang.join())) - - b.writeConst("langNoIndexOffset", len(b.lang.s)) - - // space of all valid 3-letter language identifiers. - b.writeBitVector("langNoIndex", b.langNoIndex.slice()) - - altLangIndex := []uint16{} - for i, s := range altLangISO3.slice() { - altLangISO3.s[i] += string([]byte{byte(len(altLangIndex))}) - if i > 0 { - idx := b.lang.index(altLangISO3.update[s]) - altLangIndex = append(altLangIndex, uint16(idx)) - } - } - b.writeConst("altLangISO3", tag.Index(altLangISO3.join())) - b.writeSlice("altLangIndex", altLangIndex) - - b.writeSortedMap("langAliasMap", &langAliasMap, b.langIndex) - types := make([]langAliasType, len(langAliasMap.s)) - for i, s := range langAliasMap.s { - types[i] = aliasTypeMap[s] - } - b.writeSlice("langAliasTypes", types) -} - -var scriptConsts = []string{ - "Latn", "Hani", "Hans", "Hant", "Qaaa", "Qaai", "Qabx", "Zinh", "Zyyy", - "Zzzz", -} - -func (b *builder) writeScript() { - b.writeConsts(b.script.index, scriptConsts...) - b.writeConst("script", tag.Index(b.script.join())) - - supp := make([]uint8, len(b.lang.slice())) - for i, v := range b.lang.slice()[1:] { - if sc := b.registry[v].suppressScript; sc != "" { - supp[i+1] = uint8(b.script.index(sc)) - } - } - b.writeSlice("suppressScript", supp) - - // There is only one deprecated script in CLDR. This value is hard-coded. - // We check here if the code must be updated. - for _, a := range b.supp.Metadata.Alias.ScriptAlias { - if a.Type != "Qaai" { - log.Panicf("unexpected deprecated stript %q", a.Type) - } - } -} - -func parseM49(s string) int16 { - if len(s) == 0 { - return 0 - } - v, err := strconv.ParseUint(s, 10, 10) - failOnError(err) - return int16(v) -} - -var regionConsts = []string{ - "001", "419", "BR", "CA", "ES", "GB", "MD", "PT", "UK", "US", - "ZZ", "XA", "XC", "XK", // Unofficial tag for Kosovo. -} - -func (b *builder) writeRegion() { - b.writeConsts(b.region.index, regionConsts...) - - isoOffset := b.region.index("AA") - m49map := make([]int16, len(b.region.slice())) - fromM49map := make(map[int16]int) - altRegionISO3 := "" - altRegionIDs := []uint16{} - - b.writeConst("isoRegionOffset", isoOffset) - - // 2-letter region lookup and mapping to numeric codes. - regionISO := b.region.clone() - regionISO.s = regionISO.s[isoOffset:] - regionISO.sorted = false - - regionTypes := make([]byte, len(b.region.s)) - - // Is the region valid BCP 47? - for s, e := range b.registry { - if len(s) == 2 && s == strings.ToUpper(s) { - i := b.region.index(s) - for _, d := range e.description { - if strings.Contains(d, "Private use") { - regionTypes[i] = iso3166UserAssgined - } - } - regionTypes[i] |= bcp47Region - } - } - - // Is the region a valid ccTLD? - r := gen.OpenIANAFile("domains/root/db") - defer r.Close() - - buf, err := ioutil.ReadAll(r) - failOnError(err) - re := regexp.MustCompile(`"/domains/root/db/([a-z]{2}).html"`) - for _, m := range re.FindAllSubmatch(buf, -1) { - i := b.region.index(strings.ToUpper(string(m[1]))) - regionTypes[i] |= ccTLD - } - - b.writeSlice("regionTypes", regionTypes) - - iso3Set := make(map[string]int) - update := func(iso2, iso3 string) { - i := regionISO.index(iso2) - if j, ok := iso3Set[iso3]; !ok && iso3[0] == iso2[0] { - regionISO.s[i] += iso3[1:] - iso3Set[iso3] = -1 - } else { - if ok && j >= 0 { - regionISO.s[i] += string([]byte{0, byte(j)}) - } else { - iso3Set[iso3] = len(altRegionISO3) - regionISO.s[i] += string([]byte{0, byte(len(altRegionISO3))}) - altRegionISO3 += iso3 - altRegionIDs = append(altRegionIDs, uint16(isoOffset+i)) - } - } - } - for _, tc := range b.supp.CodeMappings.TerritoryCodes { - i := regionISO.index(tc.Type) + isoOffset - if d := m49map[i]; d != 0 { - log.Panicf("%s found as a duplicate UN.M49 code of %03d", tc.Numeric, d) - } - m49 := parseM49(tc.Numeric) - m49map[i] = m49 - if r := fromM49map[m49]; r == 0 { - fromM49map[m49] = i - } else if r != i { - dep := b.registry[regionISO.s[r-isoOffset]].deprecated - if t := b.registry[tc.Type]; t != nil && dep != "" && (t.deprecated == "" || t.deprecated > dep) { - fromM49map[m49] = i - } - } - } - for _, ta := range b.supp.Metadata.Alias.TerritoryAlias { - if len(ta.Type) == 3 && ta.Type[0] <= '9' && len(ta.Replacement) == 2 { - from := parseM49(ta.Type) - if r := fromM49map[from]; r == 0 { - fromM49map[from] = regionISO.index(ta.Replacement) + isoOffset - } - } - } - for _, tc := range b.supp.CodeMappings.TerritoryCodes { - if len(tc.Alpha3) == 3 { - update(tc.Type, tc.Alpha3) - } - } - // This entries are not included in territoryCodes. Mostly 3-letter variants - // of deleted codes and an entry for QU. - for _, m := range []struct{ iso2, iso3 string }{ - {"CT", "CTE"}, - {"DY", "DHY"}, - {"HV", "HVO"}, - {"JT", "JTN"}, - {"MI", "MID"}, - {"NH", "NHB"}, - {"NQ", "ATN"}, - {"PC", "PCI"}, - {"PU", "PUS"}, - {"PZ", "PCZ"}, - {"RH", "RHO"}, - {"VD", "VDR"}, - {"WK", "WAK"}, - // These three-letter codes are used for others as well. - {"FQ", "ATF"}, - } { - update(m.iso2, m.iso3) - } - for i, s := range regionISO.s { - if len(s) != 4 { - regionISO.s[i] = s + " " - } - } - b.writeConst("regionISO", tag.Index(regionISO.join())) - b.writeConst("altRegionISO3", altRegionISO3) - b.writeSlice("altRegionIDs", altRegionIDs) - - // Create list of deprecated regions. - // TODO: consider inserting SF -> FI. Not included by CLDR, but is the only - // Transitionally-reserved mapping not included. - regionOldMap := stringSet{} - // Include regions in territoryAlias (not all are in the IANA registry!) - for _, reg := range b.supp.Metadata.Alias.TerritoryAlias { - if len(reg.Type) == 2 && reg.Reason == "deprecated" && len(reg.Replacement) == 2 { - regionOldMap.add(reg.Type) - regionOldMap.updateLater(reg.Type, reg.Replacement) - i, _ := regionISO.find(reg.Type) - j, _ := regionISO.find(reg.Replacement) - if k := m49map[i+isoOffset]; k == 0 { - m49map[i+isoOffset] = m49map[j+isoOffset] - } - } - } - b.writeSortedMap("regionOldMap", ®ionOldMap, func(s string) uint16 { - return uint16(b.region.index(s)) - }) - // 3-digit region lookup, groupings. - for i := 1; i < isoOffset; i++ { - m := parseM49(b.region.s[i]) - m49map[i] = m - fromM49map[m] = i - } - b.writeSlice("m49", m49map) - - const ( - searchBits = 7 - regionBits = 9 - ) - if len(m49map) >= 1<<regionBits { - log.Fatalf("Maximum number of regions exceeded: %d > %d", len(m49map), 1<<regionBits) - } - m49Index := [9]int16{} - fromM49 := []uint16{} - m49 := []int{} - for k, _ := range fromM49map { - m49 = append(m49, int(k)) - } - sort.Ints(m49) - for _, k := range m49[1:] { - val := (k & (1<<searchBits - 1)) << regionBits - fromM49 = append(fromM49, uint16(val|fromM49map[int16(k)])) - m49Index[1:][k>>searchBits] = int16(len(fromM49)) - } - b.writeSlice("m49Index", m49Index) - b.writeSlice("fromM49", fromM49) -} - -const ( - // TODO: put these lists in regionTypes as user data? Could be used for - // various optimizations and refinements and could be exposed in the API. - iso3166Except = "AC CP DG EA EU FX IC SU TA UK" - iso3166Trans = "AN BU CS NT TP YU ZR" // SF is not in our set of Regions. - // DY and RH are actually not deleted, but indeterminately reserved. - iso3166DelCLDR = "CT DD DY FQ HV JT MI NH NQ PC PU PZ RH VD WK YD" -) - -const ( - iso3166UserAssgined = 1 << iota - ccTLD - bcp47Region -) - -func find(list []string, s string) int { - for i, t := range list { - if t == s { - return i - } - } - return -1 -} - -// writeVariants generates per-variant information and creates a map from variant -// name to index value. We assign index values such that sorting multiple -// variants by index value will result in the correct order. -// There are two types of variants: specialized and general. Specialized variants -// are only applicable to certain language or language-script pairs. Generalized -// variants apply to any language. Generalized variants always sort after -// specialized variants. We will therefore always assign a higher index value -// to a generalized variant than any other variant. Generalized variants are -// sorted alphabetically among themselves. -// Specialized variants may also sort after other specialized variants. Such -// variants will be ordered after any of the variants they may follow. -// We assume that if a variant x is followed by a variant y, then for any prefix -// p of x, p-x is a prefix of y. This allows us to order tags based on the -// maximum of the length of any of its prefixes. -// TODO: it is possible to define a set of Prefix values on variants such that -// a total order cannot be defined to the point that this algorithm breaks. -// In other words, we cannot guarantee the same order of variants for the -// future using the same algorithm or for non-compliant combinations of -// variants. For this reason, consider using simple alphabetic sorting -// of variants and ignore Prefix restrictions altogether. -func (b *builder) writeVariant() { - generalized := stringSet{} - specialized := stringSet{} - specializedExtend := stringSet{} - // Collate the variants by type and check assumptions. - for _, v := range b.variant.slice() { - e := b.registry[v] - if len(e.prefix) == 0 { - generalized.add(v) - continue - } - c := strings.Split(e.prefix[0], "-") - hasScriptOrRegion := false - if len(c) > 1 { - _, hasScriptOrRegion = b.script.find(c[1]) - if !hasScriptOrRegion { - _, hasScriptOrRegion = b.region.find(c[1]) - - } - } - if len(c) == 1 || len(c) == 2 && hasScriptOrRegion { - // Variant is preceded by a language. - specialized.add(v) - continue - } - // Variant is preceded by another variant. - specializedExtend.add(v) - prefix := c[0] + "-" - if hasScriptOrRegion { - prefix += c[1] - } - for _, p := range e.prefix { - // Verify that the prefix minus the last element is a prefix of the - // predecessor element. - i := strings.LastIndex(p, "-") - pred := b.registry[p[i+1:]] - if find(pred.prefix, p[:i]) < 0 { - log.Fatalf("prefix %q for variant %q not consistent with predecessor spec", p, v) - } - // The sorting used below does not work in the general case. It works - // if we assume that variants that may be followed by others only have - // prefixes of the same length. Verify this. - count := strings.Count(p[:i], "-") - for _, q := range pred.prefix { - if c := strings.Count(q, "-"); c != count { - log.Fatalf("variant %q preceding %q has a prefix %q of size %d; want %d", p[i+1:], v, q, c, count) - } - } - if !strings.HasPrefix(p, prefix) { - log.Fatalf("prefix %q of variant %q should start with %q", p, v, prefix) - } - } - } - - // Sort extended variants. - a := specializedExtend.s - less := func(v, w string) bool { - // Sort by the maximum number of elements. - maxCount := func(s string) (max int) { - for _, p := range b.registry[s].prefix { - if c := strings.Count(p, "-"); c > max { - max = c - } - } - return - } - if cv, cw := maxCount(v), maxCount(w); cv != cw { - return cv < cw - } - // Sort by name as tie breaker. - return v < w - } - sort.Sort(funcSorter{less, sort.StringSlice(a)}) - specializedExtend.frozen = true - - // Create index from variant name to index. - variantIndex := make(map[string]uint8) - add := func(s []string) { - for _, v := range s { - variantIndex[v] = uint8(len(variantIndex)) - } - } - add(specialized.slice()) - add(specializedExtend.s) - numSpecialized := len(variantIndex) - add(generalized.slice()) - if n := len(variantIndex); n > 255 { - log.Fatalf("maximum number of variants exceeded: was %d; want <= 255", n) - } - b.writeMap("variantIndex", variantIndex) - b.writeConst("variantNumSpecialized", numSpecialized) -} - -func (b *builder) writeLanguageInfo() { -} - -// writeLikelyData writes tables that are used both for finding parent relations and for -// language matching. Each entry contains additional bits to indicate the status of the -// data to know when it cannot be used for parent relations. -func (b *builder) writeLikelyData() { - const ( - isList = 1 << iota - scriptInFrom - regionInFrom - ) - type ( // generated types - likelyScriptRegion struct { - region uint16 - script uint8 - flags uint8 - } - likelyLangScript struct { - lang uint16 - script uint8 - flags uint8 - } - likelyLangRegion struct { - lang uint16 - region uint16 - } - // likelyTag is used for getting likely tags for group regions, where - // the likely region might be a region contained in the group. - likelyTag struct { - lang uint16 - region uint16 - script uint8 - } - ) - var ( // generated variables - likelyRegionGroup = make([]likelyTag, len(b.groups)) - likelyLang = make([]likelyScriptRegion, len(b.lang.s)) - likelyRegion = make([]likelyLangScript, len(b.region.s)) - likelyScript = make([]likelyLangRegion, len(b.script.s)) - likelyLangList = []likelyScriptRegion{} - likelyRegionList = []likelyLangScript{} - ) - type fromTo struct { - from, to []string - } - langToOther := map[int][]fromTo{} - regionToOther := map[int][]fromTo{} - for _, m := range b.supp.LikelySubtags.LikelySubtag { - from := strings.Split(m.From, "_") - to := strings.Split(m.To, "_") - if len(to) != 3 { - log.Fatalf("invalid number of subtags in %q: found %d, want 3", m.To, len(to)) - } - if len(from) > 3 { - log.Fatalf("invalid number of subtags: found %d, want 1-3", len(from)) - } - if from[0] != to[0] && from[0] != "und" { - log.Fatalf("unexpected language change in expansion: %s -> %s", from, to) - } - if len(from) == 3 { - if from[2] != to[2] { - log.Fatalf("unexpected region change in expansion: %s -> %s", from, to) - } - if from[0] != "und" { - log.Fatalf("unexpected fully specified from tag: %s -> %s", from, to) - } - } - if len(from) == 1 || from[0] != "und" { - id := 0 - if from[0] != "und" { - id = b.lang.index(from[0]) - } - langToOther[id] = append(langToOther[id], fromTo{from, to}) - } else if len(from) == 2 && len(from[1]) == 4 { - sid := b.script.index(from[1]) - likelyScript[sid].lang = uint16(b.langIndex(to[0])) - likelyScript[sid].region = uint16(b.region.index(to[2])) - } else { - r := b.region.index(from[len(from)-1]) - if id, ok := b.groups[r]; ok { - if from[0] != "und" { - log.Fatalf("region changed unexpectedly: %s -> %s", from, to) - } - likelyRegionGroup[id].lang = uint16(b.langIndex(to[0])) - likelyRegionGroup[id].script = uint8(b.script.index(to[1])) - likelyRegionGroup[id].region = uint16(b.region.index(to[2])) - } else { - regionToOther[r] = append(regionToOther[r], fromTo{from, to}) - } - } - } - b.writeType(likelyLangRegion{}) - b.writeSlice("likelyScript", likelyScript) - - for id := range b.lang.s { - list := langToOther[id] - if len(list) == 1 { - likelyLang[id].region = uint16(b.region.index(list[0].to[2])) - likelyLang[id].script = uint8(b.script.index(list[0].to[1])) - } else if len(list) > 1 { - likelyLang[id].flags = isList - likelyLang[id].region = uint16(len(likelyLangList)) - likelyLang[id].script = uint8(len(list)) - for _, x := range list { - flags := uint8(0) - if len(x.from) > 1 { - if x.from[1] == x.to[2] { - flags = regionInFrom - } else { - flags = scriptInFrom - } - } - likelyLangList = append(likelyLangList, likelyScriptRegion{ - region: uint16(b.region.index(x.to[2])), - script: uint8(b.script.index(x.to[1])), - flags: flags, - }) - } - } - } - // TODO: merge suppressScript data with this table. - b.writeType(likelyScriptRegion{}) - b.writeSlice("likelyLang", likelyLang) - b.writeSlice("likelyLangList", likelyLangList) - - for id := range b.region.s { - list := regionToOther[id] - if len(list) == 1 { - likelyRegion[id].lang = uint16(b.langIndex(list[0].to[0])) - likelyRegion[id].script = uint8(b.script.index(list[0].to[1])) - if len(list[0].from) > 2 { - likelyRegion[id].flags = scriptInFrom - } - } else if len(list) > 1 { - likelyRegion[id].flags = isList - likelyRegion[id].lang = uint16(len(likelyRegionList)) - likelyRegion[id].script = uint8(len(list)) - for i, x := range list { - if len(x.from) == 2 && i != 0 || i > 0 && len(x.from) != 3 { - log.Fatalf("unspecified script must be first in list: %v at %d", x.from, i) - } - x := likelyLangScript{ - lang: uint16(b.langIndex(x.to[0])), - script: uint8(b.script.index(x.to[1])), - } - if len(list[0].from) > 2 { - x.flags = scriptInFrom - } - likelyRegionList = append(likelyRegionList, x) - } - } - } - b.writeType(likelyLangScript{}) - b.writeSlice("likelyRegion", likelyRegion) - b.writeSlice("likelyRegionList", likelyRegionList) - - b.writeType(likelyTag{}) - b.writeSlice("likelyRegionGroup", likelyRegionGroup) -} - -type mutualIntelligibility struct { - want, have uint16 - conf uint8 - oneway bool -} - -type scriptIntelligibility struct { - lang uint16 // langID or 0 if * - want, have uint8 - conf uint8 -} - -type sortByConf []mutualIntelligibility - -func (l sortByConf) Less(a, b int) bool { - return l[a].conf > l[b].conf -} - -func (l sortByConf) Swap(a, b int) { - l[a], l[b] = l[b], l[a] -} - -func (l sortByConf) Len() int { - return len(l) -} - -// toConf converts a percentage value [0, 100] to a confidence class. -func toConf(pct uint8) uint8 { - switch { - case pct == 100: - return 3 // Exact - case pct >= 90: - return 2 // High - case pct > 50: - return 1 // Low - default: - return 0 // No - } -} - -// writeMatchData writes tables with languages and scripts for which there is -// mutual intelligibility. The data is based on CLDR's languageMatching data. -// Note that we use a different algorithm than the one defined by CLDR and that -// we slightly modify the data. For example, we convert scores to confidence levels. -// We also drop all region-related data as we use a different algorithm to -// determine region equivalence. -func (b *builder) writeMatchData() { - b.writeType(mutualIntelligibility{}) - b.writeType(scriptIntelligibility{}) - lm := b.supp.LanguageMatching.LanguageMatches - cldr.MakeSlice(&lm).SelectAnyOf("type", "written") - - matchLang := []mutualIntelligibility{} - matchScript := []scriptIntelligibility{} - // Convert the languageMatch entries in lists keyed by desired language. - for _, m := range lm[0].LanguageMatch { - // Different versions of CLDR use different separators. - desired := strings.Replace(m.Desired, "-", "_", -1) - supported := strings.Replace(m.Supported, "-", "_", -1) - d := strings.Split(desired, "_") - s := strings.Split(supported, "_") - if len(d) != len(s) || len(d) > 2 { - // Skip all entries with regions and work around CLDR bug. - continue - } - pct, _ := strconv.ParseInt(m.Percent, 10, 8) - if len(d) == 2 && d[0] == s[0] && len(d[1]) == 4 { - // language-script pair. - lang := uint16(0) - if d[0] != "*" { - lang = uint16(b.langIndex(d[0])) - } - matchScript = append(matchScript, scriptIntelligibility{ - lang: lang, - want: uint8(b.script.index(d[1])), - have: uint8(b.script.index(s[1])), - conf: toConf(uint8(pct)), - }) - if m.Oneway != "true" { - matchScript = append(matchScript, scriptIntelligibility{ - lang: lang, - want: uint8(b.script.index(s[1])), - have: uint8(b.script.index(d[1])), - conf: toConf(uint8(pct)), - }) - } - } else if len(d) == 1 && d[0] != "*" { - if pct == 100 { - // nb == no is already handled by macro mapping. Check there - // really is only this case. - if d[0] != "no" || s[0] != "nb" { - log.Fatalf("unhandled equivalence %s == %s", s[0], d[0]) - } - continue - } - matchLang = append(matchLang, mutualIntelligibility{ - want: uint16(b.langIndex(d[0])), - have: uint16(b.langIndex(s[0])), - conf: uint8(pct), - oneway: m.Oneway == "true", - }) - } else { - // TODO: Handle the es_MX -> es_419 mapping. This does not seem to - // make much sense for our purposes, though. - a := []string{"*;*", "*_*;*_*", "es_MX;es_419"} - s := strings.Join([]string{desired, supported}, ";") - if i := sort.SearchStrings(a, s); i == len(a) || a[i] != s { - log.Fatalf("%q not handled", s) - } - } - } - sort.Sort(sortByConf(matchLang)) - // collapse percentage into confidence classes - for i, m := range matchLang { - matchLang[i].conf = toConf(m.conf) - } - b.writeSlice("matchLang", matchLang) - b.writeSlice("matchScript", matchScript) -} - -func (b *builder) writeRegionInclusionData() { - var ( - // mm holds for each group the set of groups with a distance of 1. - mm = make(map[int][]index) - - // containment holds for each group the transitive closure of - // containment of other groups. - containment = make(map[index][]index) - ) - for _, g := range b.supp.TerritoryContainment.Group { - group := b.region.index(g.Type) - groupIdx := b.groups[group] - for _, mem := range strings.Split(g.Contains, " ") { - r := b.region.index(mem) - mm[r] = append(mm[r], groupIdx) - if g, ok := b.groups[r]; ok { - mm[group] = append(mm[group], g) - containment[groupIdx] = append(containment[groupIdx], g) - } - } - } - - regionContainment := make([]uint32, len(b.groups)) - for _, g := range b.groups { - l := containment[g] - - // Compute the transitive closure of containment. - for i := 0; i < len(l); i++ { - l = append(l, containment[l[i]]...) - } - - // Compute the bitmask. - regionContainment[g] = 1 << g - for _, v := range l { - regionContainment[g] |= 1 << v - } - // log.Printf("%d: %X", g, regionContainment[g]) - } - b.writeSlice("regionContainment", regionContainment) - - regionInclusion := make([]uint8, len(b.region.s)) - bvs := make(map[uint32]index) - // Make the first bitvector positions correspond with the groups. - for r, i := range b.groups { - bv := uint32(1 << i) - for _, g := range mm[r] { - bv |= 1 << g - } - bvs[bv] = i - regionInclusion[r] = uint8(bvs[bv]) - } - for r := 1; r < len(b.region.s); r++ { - if _, ok := b.groups[r]; !ok { - bv := uint32(0) - for _, g := range mm[r] { - bv |= 1 << g - } - if bv == 0 { - // Pick the world for unspecified regions. - bv = 1 << b.groups[b.region.index("001")] - } - if _, ok := bvs[bv]; !ok { - bvs[bv] = index(len(bvs)) - } - regionInclusion[r] = uint8(bvs[bv]) - } - } - b.writeSlice("regionInclusion", regionInclusion) - regionInclusionBits := make([]uint32, len(bvs)) - for k, v := range bvs { - regionInclusionBits[v] = uint32(k) - } - // Add bit vectors for increasingly large distances until a fixed point is reached. - regionInclusionNext := []uint8{} - for i := 0; i < len(regionInclusionBits); i++ { - bits := regionInclusionBits[i] - next := bits - for i := uint(0); i < uint(len(b.groups)); i++ { - if bits&(1<<i) != 0 { - next |= regionInclusionBits[i] - } - } - if _, ok := bvs[next]; !ok { - bvs[next] = index(len(bvs)) - regionInclusionBits = append(regionInclusionBits, next) - } - regionInclusionNext = append(regionInclusionNext, uint8(bvs[next])) - } - b.writeSlice("regionInclusionBits", regionInclusionBits) - b.writeSlice("regionInclusionNext", regionInclusionNext) -} - -type parentRel struct { - lang uint16 - script uint8 - maxScript uint8 - toRegion uint16 - fromRegion []uint16 -} - -func (b *builder) writeParents() { - b.writeType(parentRel{}) - - parents := []parentRel{} - - // Construct parent overrides. - n := 0 - for _, p := range b.data.Supplemental().ParentLocales.ParentLocale { - // Skipping non-standard scripts to root is implemented using addTags. - if p.Parent == "root" { - continue - } - - sub := strings.Split(p.Parent, "_") - parent := parentRel{lang: b.langIndex(sub[0])} - if len(sub) == 2 { - // TODO: check that all undefined scripts are indeed Latn in these - // cases. - parent.maxScript = uint8(b.script.index("Latn")) - parent.toRegion = uint16(b.region.index(sub[1])) - } else { - parent.script = uint8(b.script.index(sub[1])) - parent.maxScript = parent.script - parent.toRegion = uint16(b.region.index(sub[2])) - } - for _, c := range strings.Split(p.Locales, " ") { - region := b.region.index(c[strings.LastIndex(c, "_")+1:]) - parent.fromRegion = append(parent.fromRegion, uint16(region)) - } - parents = append(parents, parent) - n += len(parent.fromRegion) - } - b.writeSliceAddSize("parents", n*2, parents) -} - -func rewriteCommon() { - // Generate common.go - src, err := ioutil.ReadFile("gen_common.go") - failOnError(err) - const toDelete = "// +build ignore\n\npackage main\n\n" - i := bytes.Index(src, []byte(toDelete)) - if i < 0 { - log.Fatalf("could not find %q in gen_common.go", toDelete) - } - w := &bytes.Buffer{} - w.Write(src[i+len(toDelete):]) - gen.WriteGoFile("common.go", "language", w.Bytes()) -} - -func main() { - gen.Init() - - rewriteCommon() - - w := gen.NewCodeWriter() - defer w.WriteGoFile("tables.go", "language") - - fmt.Fprintln(w, `import "golang.org/x/text/internal/tag"`) - - b := newBuilder(w) - gen.WriteCLDRVersion(w) - - b.parseIndices() - b.writeType(fromTo{}) - b.writeLanguage() - b.writeScript() - b.writeRegion() - b.writeVariant() - // TODO: b.writeLocale() - b.computeRegionGroups() - b.writeLikelyData() - b.writeMatchData() - b.writeRegionInclusionData() - b.writeParents() -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/match.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/match.go deleted file mode 100644 index eec72bcc..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/match.go +++ /dev/null @@ -1,840 +0,0 @@ -// 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 language - -import "errors" - -// Matcher is the interface that wraps the Match method. -// -// Match returns the best match for any of the given tags, along with -// a unique index associated with the returned tag and a confidence -// score. -type Matcher interface { - Match(t ...Tag) (tag Tag, index int, c Confidence) -} - -// Comprehends reports the confidence score for a speaker of a given language -// to being able to comprehend the written form of an alternative language. -func Comprehends(speaker, alternative Tag) Confidence { - _, _, c := NewMatcher([]Tag{alternative}).Match(speaker) - return c -} - -// NewMatcher returns a Matcher that matches an ordered list of preferred tags -// against a list of supported tags based on written intelligibility, closeness -// of dialect, equivalence of subtags and various other rules. It is initialized -// with the list of supported tags. The first element is used as the default -// value in case no match is found. -// -// Its Match method matches the first of the given Tags to reach a certain -// confidence threshold. The tags passed to Match should therefore be specified -// in order of preference. Extensions are ignored for matching. -// -// The index returned by the Match method corresponds to the index of the -// matched tag in t, but is augmented with the Unicode extension ('u')of the -// corresponding preferred tag. This allows user locale options to be passed -// transparently. -func NewMatcher(t []Tag) Matcher { - return newMatcher(t) -} - -func (m *matcher) Match(want ...Tag) (t Tag, index int, c Confidence) { - match, w, c := m.getBest(want...) - if match == nil { - t = m.default_.tag - } else { - t, index = match.tag, match.index - } - // Copy options from the user-provided tag into the result tag. This is hard - // to do after the fact, so we do it here. - // TODO: consider also adding in variants that are compatible with the - // matched language. - // TODO: Add back region if it is non-ambiguous? Or create another tag to - // preserve the region? - if u, ok := w.Extension('u'); ok { - t, _ = Raw.Compose(t, u) - } - return t, index, c -} - -type scriptRegionFlags uint8 - -const ( - isList = 1 << iota - scriptInFrom - regionInFrom -) - -func (t *Tag) setUndefinedLang(id langID) { - if t.lang == 0 { - t.lang = id - } -} - -func (t *Tag) setUndefinedScript(id scriptID) { - if t.script == 0 { - t.script = id - } -} - -func (t *Tag) setUndefinedRegion(id regionID) { - if t.region == 0 || t.region.contains(id) { - t.region = id - } -} - -// ErrMissingLikelyTagsData indicates no information was available -// to compute likely values of missing tags. -var ErrMissingLikelyTagsData = errors.New("missing likely tags data") - -// addLikelySubtags sets subtags to their most likely value, given the locale. -// In most cases this means setting fields for unknown values, but in some -// cases it may alter a value. It returns a ErrMissingLikelyTagsData error -// if the given locale cannot be expanded. -func (t Tag) addLikelySubtags() (Tag, error) { - id, err := addTags(t) - if err != nil { - return t, err - } else if id.equalTags(t) { - return t, nil - } - id.remakeString() - return id, nil -} - -// specializeRegion attempts to specialize a group region. -func specializeRegion(t *Tag) bool { - if i := regionInclusion[t.region]; i < nRegionGroups { - x := likelyRegionGroup[i] - if langID(x.lang) == t.lang && scriptID(x.script) == t.script { - t.region = regionID(x.region) - } - return true - } - return false -} - -func addTags(t Tag) (Tag, error) { - // We leave private use identifiers alone. - if t.private() { - return t, nil - } - if t.script != 0 && t.region != 0 { - if t.lang != 0 { - // already fully specified - specializeRegion(&t) - return t, nil - } - // Search matches for und-script-region. Note that for these cases - // region will never be a group so there is no need to check for this. - list := likelyRegion[t.region : t.region+1] - if x := list[0]; x.flags&isList != 0 { - list = likelyRegionList[x.lang : x.lang+uint16(x.script)] - } - for _, x := range list { - // Deviating from the spec. See match_test.go for details. - if scriptID(x.script) == t.script { - t.setUndefinedLang(langID(x.lang)) - return t, nil - } - } - } - if t.lang != 0 { - // Search matches for lang-script and lang-region, where lang != und. - if t.lang < langNoIndexOffset { - x := likelyLang[t.lang] - if x.flags&isList != 0 { - list := likelyLangList[x.region : x.region+uint16(x.script)] - if t.script != 0 { - for _, x := range list { - if scriptID(x.script) == t.script && x.flags&scriptInFrom != 0 { - t.setUndefinedRegion(regionID(x.region)) - return t, nil - } - } - } else if t.region != 0 { - count := 0 - goodScript := true - tt := t - for _, x := range list { - // We visit all entries for which the script was not - // defined, including the ones where the region was not - // defined. This allows for proper disambiguation within - // regions. - if x.flags&scriptInFrom == 0 && t.region.contains(regionID(x.region)) { - tt.region = regionID(x.region) - tt.setUndefinedScript(scriptID(x.script)) - goodScript = goodScript && tt.script == scriptID(x.script) - count++ - } - } - if count == 1 { - return tt, nil - } - // Even if we fail to find a unique Region, we might have - // an unambiguous script. - if goodScript { - t.script = tt.script - } - } - } - } - } else { - // Search matches for und-script. - if t.script != 0 { - x := likelyScript[t.script] - if x.region != 0 { - t.setUndefinedRegion(regionID(x.region)) - t.setUndefinedLang(langID(x.lang)) - return t, nil - } - } - // Search matches for und-region. If und-script-region exists, it would - // have been found earlier. - if t.region != 0 { - if i := regionInclusion[t.region]; i < nRegionGroups { - x := likelyRegionGroup[i] - if x.region != 0 { - t.setUndefinedLang(langID(x.lang)) - t.setUndefinedScript(scriptID(x.script)) - t.region = regionID(x.region) - } - } else { - x := likelyRegion[t.region] - if x.flags&isList != 0 { - x = likelyRegionList[x.lang] - } - if x.script != 0 && x.flags != scriptInFrom { - t.setUndefinedLang(langID(x.lang)) - t.setUndefinedScript(scriptID(x.script)) - return t, nil - } - } - } - } - - // Search matches for lang. - if t.lang < langNoIndexOffset { - x := likelyLang[t.lang] - if x.flags&isList != 0 { - x = likelyLangList[x.region] - } - if x.region != 0 { - t.setUndefinedScript(scriptID(x.script)) - t.setUndefinedRegion(regionID(x.region)) - } - specializeRegion(&t) - if t.lang == 0 { - t.lang = _en // default language - } - return t, nil - } - return t, ErrMissingLikelyTagsData -} - -func (t *Tag) setTagsFrom(id Tag) { - t.lang = id.lang - t.script = id.script - t.region = id.region -} - -// minimize removes the region or script subtags from t such that -// t.addLikelySubtags() == t.minimize().addLikelySubtags(). -func (t Tag) minimize() (Tag, error) { - t, err := minimizeTags(t) - if err != nil { - return t, err - } - t.remakeString() - return t, nil -} - -// minimizeTags mimics the behavior of the ICU 51 C implementation. -func minimizeTags(t Tag) (Tag, error) { - if t.equalTags(und) { - return t, nil - } - max, err := addTags(t) - if err != nil { - return t, err - } - for _, id := range [...]Tag{ - {lang: t.lang}, - {lang: t.lang, region: t.region}, - {lang: t.lang, script: t.script}, - } { - if x, err := addTags(id); err == nil && max.equalTags(x) { - t.setTagsFrom(id) - break - } - } - return t, nil -} - -// Tag Matching -// CLDR defines an algorithm for finding the best match between two sets of language -// tags. The basic algorithm defines how to score a possible match and then find -// the match with the best score -// (see http://www.unicode.org/reports/tr35/#LanguageMatching). -// Using scoring has several disadvantages. The scoring obfuscates the importance of -// the various factors considered, making the algorithm harder to understand. Using -// scoring also requires the full score to be computed for each pair of tags. -// -// We will use a different algorithm which aims to have the following properties: -// - clarity on the precedence of the various selection factors, and -// - improved performance by allowing early termination of a comparison. -// -// Matching algorithm (overview) -// Input: -// - supported: a set of supported tags -// - default: the default tag to return in case there is no match -// - desired: list of desired tags, ordered by preference, starting with -// the most-preferred. -// -// Algorithm: -// 1) Set the best match to the lowest confidence level -// 2) For each tag in "desired": -// a) For each tag in "supported": -// 1) compute the match between the two tags. -// 2) if the match is better than the previous best match, replace it -// with the new match. (see next section) -// b) if the current best match is above a certain threshold, return this -// match without proceeding to the next tag in "desired". [See Note 1] -// 3) If the best match so far is below a certain threshold, return "default". -// -// Ranking: -// We use two phases to determine whether one pair of tags are a better match -// than another pair of tags. First, we determine a rough confidence level. If the -// levels are different, the one with the highest confidence wins. -// Second, if the rough confidence levels are identical, we use a set of tie-breaker -// rules. -// -// The confidence level of matching a pair of tags is determined by finding the -// lowest confidence level of any matches of the corresponding subtags (the -// result is deemed as good as its weakest link). -// We define the following levels: -// Exact - An exact match of a subtag, before adding likely subtags. -// MaxExact - An exact match of a subtag, after adding likely subtags. -// [See Note 2]. -// High - High level of mutual intelligibility between different subtag -// variants. -// Low - Low level of mutual intelligibility between different subtag -// variants. -// No - No mutual intelligibility. -// -// The following levels can occur for each type of subtag: -// Base: Exact, MaxExact, High, Low, No -// Script: Exact, MaxExact [see Note 3], Low, No -// Region: Exact, MaxExact, High -// Variant: Exact, High -// Private: Exact, No -// -// Any result with a confidence level of Low or higher is deemed a possible match. -// Once a desired tag matches any of the supported tags with a level of MaxExact -// or higher, the next desired tag is not considered (see Step 2.b). -// Note that CLDR provides languageMatching data that defines close equivalence -// classes for base languages, scripts and regions. -// -// Tie-breaking -// If we get the same confidence level for two matches, we apply a sequence of -// tie-breaking rules. The first that succeeds defines the result. The rules are -// applied in the following order. -// 1) Original language was defined and was identical. -// 2) Original region was defined and was identical. -// 3) Distance between two maximized regions was the smallest. -// 4) Original script was defined and was identical. -// 5) Distance from want tag to have tag using the parent relation [see Note 5.] -// If there is still no winner after these rules are applied, the first match -// found wins. -// -// Notes: -// [1] Note that even if we may not have a perfect match, if a match is above a -// certain threshold, it is considered a better match than any other match -// to a tag later in the list of preferred language tags. -// [2] In practice, as matching of Exact is done in a separate phase from -// matching the other levels, we reuse the Exact level to mean MaxExact in -// the second phase. As a consequence, we only need the levels defined by -// the Confidence type. The MaxExact confidence level is mapped to High in -// the public API. -// [3] We do not differentiate between maximized script values that were derived -// from suppressScript versus most likely tag data. We determined that in -// ranking the two, one ranks just after the other. Moreover, the two cannot -// occur concurrently. As a consequence, they are identical for practical -// purposes. -// [4] In case of deprecated, macro-equivalents and legacy mappings, we assign -// the MaxExact level to allow iw vs he to still be a closer match than -// en-AU vs en-US, for example. -// [5] In CLDR a locale inherits fields that are unspecified for this locale -// from its parent. Therefore, if a locale is a parent of another locale, -// it is a strong measure for closeness, especially when no other tie -// breaker rule applies. One could also argue it is inconsistent, for -// example, when pt-AO matches pt (which CLDR equates with pt-BR), even -// though its parent is pt-PT according to the inheritance rules. -// -// Implementation Details: -// There are several performance considerations worth pointing out. Most notably, -// we preprocess as much as possible (within reason) at the time of creation of a -// matcher. This includes: -// - creating a per-language map, which includes data for the raw base language -// and its canonicalized variant (if applicable), -// - expanding entries for the equivalence classes defined in CLDR's -// languageMatch data. -// The per-language map ensures that typically only a very small number of tags -// need to be considered. The pre-expansion of canonicalized subtags and -// equivalence classes reduces the amount of map lookups that need to be done at -// runtime. - -// matcher keeps a set of supported language tags, indexed by language. -type matcher struct { - default_ *haveTag - index map[langID]*matchHeader - passSettings bool -} - -// matchHeader has the lists of tags for exact matches and matches based on -// maximized and canonicalized tags for a given language. -type matchHeader struct { - exact []haveTag - max []haveTag -} - -// haveTag holds a supported Tag and its maximized script and region. The maximized -// or canonicalized language is not stored as it is not needed during matching. -type haveTag struct { - tag Tag - - // index of this tag in the original list of supported tags. - index int - - // conf is the maximum confidence that can result from matching this haveTag. - // When conf < Exact this means it was inserted after applying a CLDR equivalence rule. - conf Confidence - - // Maximized region and script. - maxRegion regionID - maxScript scriptID - - // altScript may be checked as an alternative match to maxScript. If altScript - // matches, the confidence level for this match is Low. Theoretically there - // could be multiple alternative scripts. This does not occur in practice. - altScript scriptID - - // nextMax is the index of the next haveTag with the same maximized tags. - nextMax uint16 -} - -func makeHaveTag(tag Tag, index int) (haveTag, langID) { - max := tag - if tag.lang != 0 { - max, _ = max.canonicalize(All) - max, _ = addTags(max) - max.remakeString() - } - return haveTag{tag, index, Exact, max.region, max.script, altScript(max.lang, max.script), 0}, max.lang -} - -// altScript returns an alternative script that may match the given script with -// a low confidence. At the moment, the langMatch data allows for at most one -// script to map to another and we rely on this to keep the code simple. -func altScript(l langID, s scriptID) scriptID { - for _, alt := range matchScript { - if (alt.lang == 0 || langID(alt.lang) == l) && scriptID(alt.have) == s { - return scriptID(alt.want) - } - } - return 0 -} - -// addIfNew adds a haveTag to the list of tags only if it is a unique tag. -// Tags that have the same maximized values are linked by index. -func (h *matchHeader) addIfNew(n haveTag, exact bool) { - // Don't add new exact matches. - for _, v := range h.exact { - if v.tag.equalsRest(n.tag) { - return - } - } - if exact { - h.exact = append(h.exact, n) - } - // Allow duplicate maximized tags, but create a linked list to allow quickly - // comparing the equivalents and bail out. - for i, v := range h.max { - if v.maxScript == n.maxScript && - v.maxRegion == n.maxRegion && - v.tag.variantOrPrivateTagStr() == n.tag.variantOrPrivateTagStr() { - for h.max[i].nextMax != 0 { - i = int(h.max[i].nextMax) - } - h.max[i].nextMax = uint16(len(h.max)) - break - } - } - h.max = append(h.max, n) -} - -// header returns the matchHeader for the given language. It creates one if -// it doesn't already exist. -func (m *matcher) header(l langID) *matchHeader { - if h := m.index[l]; h != nil { - return h - } - h := &matchHeader{} - m.index[l] = h - return h -} - -// newMatcher builds an index for the given supported tags and returns it as -// a matcher. It also expands the index by considering various equivalence classes -// for a given tag. -func newMatcher(supported []Tag) *matcher { - m := &matcher{ - index: make(map[langID]*matchHeader), - } - if len(supported) == 0 { - m.default_ = &haveTag{} - return m - } - // Add supported languages to the index. Add exact matches first to give - // them precedence. - for i, tag := range supported { - pair, _ := makeHaveTag(tag, i) - m.header(tag.lang).addIfNew(pair, true) - } - m.default_ = &m.header(supported[0].lang).exact[0] - for i, tag := range supported { - pair, max := makeHaveTag(tag, i) - if max != tag.lang { - m.header(max).addIfNew(pair, false) - } - } - - // update is used to add indexes in the map for equivalent languages. - // If force is true, the update will also apply to derived entries. To - // avoid applying a "transitive closure", use false. - update := func(want, have uint16, conf Confidence, force bool) { - if hh := m.index[langID(have)]; hh != nil { - if !force && len(hh.exact) == 0 { - return - } - hw := m.header(langID(want)) - for _, v := range hh.max { - if conf < v.conf { - v.conf = conf - } - v.nextMax = 0 // this value needs to be recomputed - if v.altScript != 0 { - v.altScript = altScript(langID(want), v.maxScript) - } - hw.addIfNew(v, conf == Exact && len(hh.exact) > 0) - } - } - } - - // Add entries for languages with mutual intelligibility as defined by CLDR's - // languageMatch data. - for _, ml := range matchLang { - update(ml.want, ml.have, Confidence(ml.conf), false) - if !ml.oneway { - update(ml.have, ml.want, Confidence(ml.conf), false) - } - } - - // Add entries for possible canonicalizations. This is an optimization to - // ensure that only one map lookup needs to be done at runtime per desired tag. - // First we match deprecated equivalents. If they are perfect equivalents - // (their canonicalization simply substitutes a different language code, but - // nothing else), the match confidence is Exact, otherwise it is High. - for i, lm := range langAliasMap { - if lm.from == _sh { - continue - } - - // If deprecated codes match and there is no fiddling with the script or - // or region, we consider it an exact match. - conf := Exact - if langAliasTypes[i] != langMacro { - if !isExactEquivalent(langID(lm.from)) { - conf = High - } - update(lm.to, lm.from, conf, true) - } - update(lm.from, lm.to, conf, true) - } - return m -} - -// getBest gets the best matching tag in m for any of the given tags, taking into -// account the order of preference of the given tags. -func (m *matcher) getBest(want ...Tag) (got *haveTag, orig Tag, c Confidence) { - best := bestMatch{} - for _, w := range want { - var max Tag - // Check for exact match first. - h := m.index[w.lang] - if w.lang != 0 { - // Base language is defined. - if h == nil { - continue - } - for i := range h.exact { - have := &h.exact[i] - if have.tag.equalsRest(w) { - return have, w, Exact - } - } - max, _ = w.canonicalize(Legacy | Deprecated) - max, _ = addTags(max) - } else { - // Base language is not defined. - if h != nil { - for i := range h.exact { - have := &h.exact[i] - if have.tag.equalsRest(w) { - return have, w, Exact - } - } - } - if w.script == 0 && w.region == 0 { - // We skip all tags matching und for approximate matching, including - // private tags. - continue - } - max, _ = addTags(w) - if h = m.index[max.lang]; h == nil { - continue - } - } - // Check for match based on maximized tag. - for i := range h.max { - have := &h.max[i] - best.update(have, w, max.script, max.region) - if best.conf == Exact { - for have.nextMax != 0 { - have = &h.max[have.nextMax] - best.update(have, w, max.script, max.region) - } - return best.have, best.want, High - } - } - } - if best.conf <= No { - if len(want) != 0 { - return nil, want[0], No - } - return nil, Tag{}, No - } - return best.have, best.want, best.conf -} - -// bestMatch accumulates the best match so far. -type bestMatch struct { - have *haveTag - want Tag - conf Confidence - // Cached results from applying tie-breaking rules. - origLang bool - origReg bool - regDist uint8 - origScript bool - parentDist uint8 // 255 if have is not an ancestor of want tag. -} - -// update updates the existing best match if the new pair is considered to be a -// better match. -// To determine if the given pair is a better match, it first computes the rough -// confidence level. If this surpasses the current match, it will replace it and -// update the tie-breaker rule cache. If there is a tie, it proceeds with applying -// a series of tie-breaker rules. If there is no conclusive winner after applying -// the tie-breaker rules, it leaves the current match as the preferred match. -func (m *bestMatch) update(have *haveTag, tag Tag, maxScript scriptID, maxRegion regionID) { - // Bail if the maximum attainable confidence is below that of the current best match. - c := have.conf - if c < m.conf { - return - } - if have.maxScript != maxScript { - // There is usually very little comprehension between different scripts. - // In a few cases there may still be Low comprehension. This possibility is - // pre-computed and stored in have.altScript. - if Low < m.conf || have.altScript != maxScript { - return - } - c = Low - } else if have.maxRegion != maxRegion { - // There is usually a small difference between languages across regions. - // We use the region distance (below) to disambiguate between equal matches. - if High < c { - c = High - } - } - - // We store the results of the computations of the tie-breaker rules along - // with the best match. There is no need to do the checks once we determine - // we have a winner, but we do still need to do the tie-breaker computations. - // We use "beaten" to keep track if we still need to do the checks. - beaten := false // true if the new pair defeats the current one. - if c != m.conf { - if c < m.conf { - return - } - beaten = true - } - - // Tie-breaker rules: - // We prefer if the pre-maximized language was specified and identical. - origLang := have.tag.lang == tag.lang && tag.lang != 0 - if !beaten && m.origLang != origLang { - if m.origLang { - return - } - beaten = true - } - - // We prefer if the pre-maximized region was specified and identical. - origReg := have.tag.region == tag.region && tag.region != 0 - if !beaten && m.origReg != origReg { - if m.origReg { - return - } - beaten = true - } - - // Next we prefer smaller distances between regions, as defined by regionDist. - regDist := regionDist(have.maxRegion, maxRegion, tag.lang) - if !beaten && m.regDist != regDist { - if regDist > m.regDist { - return - } - beaten = true - } - - // Next we prefer if the pre-maximized script was specified and identical. - origScript := have.tag.script == tag.script && tag.script != 0 - if !beaten && m.origScript != origScript { - if m.origScript { - return - } - beaten = true - } - - // Finally we prefer tags which have a closer parent relationship. - parentDist := parentDistance(have.tag.region, tag) - if !beaten && m.parentDist != parentDist { - if parentDist > m.parentDist { - return - } - beaten = true - } - - // Update m to the newly found best match. - if beaten { - m.have = have - m.want = tag - m.conf = c - m.origLang = origLang - m.origReg = origReg - m.origScript = origScript - m.regDist = regDist - m.parentDist = parentDist - } -} - -// parentDistance returns the number of times Parent must be called before the -// regions match. It is assumed that it has already been checked that lang and -// script are identical. If haveRegion does not occur in the ancestor chain of -// tag, it returns 255. -func parentDistance(haveRegion regionID, tag Tag) uint8 { - p := tag.Parent() - d := uint8(1) - for haveRegion != p.region { - if p.region == 0 { - return 255 - } - p = p.Parent() - d++ - } - return d -} - -// regionDist wraps regionDistance with some exceptions to the algorithmic distance. -func regionDist(a, b regionID, lang langID) uint8 { - if lang == _en { - // Two variants of non-US English are close to each other, regardless of distance. - if a != _US && b != _US { - return 2 - } - } - return uint8(regionDistance(a, b)) -} - -// regionDistance computes the distance between two regions based on the -// distance in the graph of region containments as defined in CLDR. It iterates -// over increasingly inclusive sets of groups, represented as bit vectors, until -// the source bit vector has bits in common with the destination vector. -func regionDistance(a, b regionID) int { - if a == b { - return 0 - } - p, q := regionInclusion[a], regionInclusion[b] - if p < nRegionGroups { - p, q = q, p - } - set := regionInclusionBits - if q < nRegionGroups && set[p]&(1<<q) != 0 { - return 1 - } - d := 2 - for goal := set[q]; set[p]&goal == 0; p = regionInclusionNext[p] { - d++ - } - return d -} - -func (t Tag) variants() string { - if t.pVariant == 0 { - return "" - } - return t.str[t.pVariant:t.pExt] -} - -// variantOrPrivateTagStr returns variants or private use tags. -func (t Tag) variantOrPrivateTagStr() string { - if t.pExt > 0 { - return t.str[t.pVariant:t.pExt] - } - return t.str[t.pVariant:] -} - -// equalsRest compares everything except the language. -func (a Tag) equalsRest(b Tag) bool { - // TODO: don't include extensions in this comparison. To do this efficiently, - // though, we should handle private tags separately. - return a.script == b.script && a.region == b.region && a.variantOrPrivateTagStr() == b.variantOrPrivateTagStr() -} - -// isExactEquivalent returns true if canonicalizing the language will not alter -// the script or region of a tag. -func isExactEquivalent(l langID) bool { - for _, o := range notEquivalent { - if o == l { - return false - } - } - return true -} - -var notEquivalent []langID - -func init() { - // Create a list of all languages for which canonicalization may alter the - // script or region. - for _, lm := range langAliasMap { - tag := Tag{lang: langID(lm.from)} - if tag, _ = tag.canonicalize(All); tag.script != 0 || tag.region != 0 { - notEquivalent = append(notEquivalent, langID(lm.from)) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/match_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/match_test.go deleted file mode 100644 index 57b16442..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/match_test.go +++ /dev/null @@ -1,392 +0,0 @@ -// 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 language - -import ( - "bytes" - "flag" - "fmt" - "strings" - "testing" -) - -var verbose = flag.Bool("verbose", false, "set to true to print the internal tables of matchers") - -func TestAddLikelySubtags(t *testing.T) { - tests := []struct{ in, out string }{ - {"aa", "aa-Latn-ET"}, - {"aa-Latn", "aa-Latn-ET"}, - {"aa-Arab", "aa-Arab-ET"}, - {"aa-Arab-ER", "aa-Arab-ER"}, - {"kk", "kk-Cyrl-KZ"}, - {"kk-CN", "kk-Arab-CN"}, - {"cmn", "cmn"}, - {"zh-AU", "zh-Hant-AU"}, - {"zh-VN", "zh-Hant-VN"}, - {"zh-SG", "zh-Hans-SG"}, - {"zh-Hant", "zh-Hant-TW"}, - {"zh-Hani", "zh-Hani-CN"}, - {"und-Hani", "zh-Hani-CN"}, - {"und", "en-Latn-US"}, - {"und-GB", "en-Latn-GB"}, - {"und-CW", "pap-Latn-CW"}, - {"und-YT", "fr-Latn-YT"}, - {"und-Arab", "ar-Arab-EG"}, - {"und-AM", "hy-Armn-AM"}, - {"und-002", "en-Latn-NG"}, - {"und-Latn-002", "en-Latn-NG"}, - {"en-Latn-002", "en-Latn-NG"}, - {"en-002", "en-Latn-NG"}, - {"en-001", "en-Latn-US"}, - {"und-003", "en-Latn-US"}, - {"und-GB", "en-Latn-GB"}, - {"Latn-001", "en-Latn-US"}, - {"en-001", "en-Latn-US"}, - {"es-419", "es-Latn-419"}, - {"he-145", "he-Hebr-IL"}, - {"ky-145", "ky-Latn-TR"}, - {"kk", "kk-Cyrl-KZ"}, - // Don't specialize duplicate and ambiguous matches. - {"kk-034", "kk-Arab-034"}, // Matches IR and AF. Both are Arab. - {"ku-145", "ku-Latn-TR"}, // Matches IQ, TR, and LB, but kk -> TR. - {"und-Arab-CC", "ms-Arab-CC"}, - {"und-Arab-GB", "ks-Arab-GB"}, - {"und-Hans-CC", "zh-Hans-CC"}, - {"und-CC", "en-Latn-CC"}, - {"sr", "sr-Cyrl-RS"}, - {"sr-151", "sr-Latn-151"}, // Matches RO and RU. - // We would like addLikelySubtags to generate the same results if the input - // only changes by adding tags that would otherwise have been added - // by the expansion. - // In other words: - // und-AA -> xx-Scrp-AA implies und-Scrp-AA -> xx-Scrp-AA - // und-AA -> xx-Scrp-AA implies xx-AA -> xx-Scrp-AA - // und-Scrp -> xx-Scrp-AA implies und-Scrp-AA -> xx-Scrp-AA - // und-Scrp -> xx-Scrp-AA implies xx-Scrp -> xx-Scrp-AA - // xx -> xx-Scrp-AA implies xx-Scrp -> xx-Scrp-AA - // xx -> xx-Scrp-AA implies xx-AA -> xx-Scrp-AA - // - // The algorithm specified in - // http://unicode.org/reports/tr35/tr35-9.html#Supplemental_Data, - // Section C.10, does not handle the first case. For example, - // the CLDR data contains an entry und-BJ -> fr-Latn-BJ, but not - // there is no rule for und-Latn-BJ. According to spec, und-Latn-BJ - // would expand to en-Latn-BJ, violating the aforementioned principle. - // We deviate from the spec by letting und-Scrp-AA expand to xx-Scrp-AA - // if a rule of the form und-AA -> xx-Scrp-AA is defined. - // Note that as of version 23, CLDR has some explicitly specified - // entries that do not conform to these rules. The implementation - // will not correct these explicit inconsistencies. A later versions of CLDR - // is supposed to fix this. - {"und-Latn-BJ", "fr-Latn-BJ"}, - {"und-Bugi-ID", "bug-Bugi-ID"}, - // regions, scripts and languages without definitions - {"und-Arab-AA", "ar-Arab-AA"}, - {"und-Afak-RE", "fr-Afak-RE"}, - {"und-Arab-GB", "ks-Arab-GB"}, - {"abp-Arab-GB", "abp-Arab-GB"}, - // script has preference over region - {"und-Arab-NL", "ar-Arab-NL"}, - {"zza", "zza-Latn-TR"}, - // preserve variants and extensions - {"de-1901", "de-Latn-DE-1901"}, - {"de-x-abc", "de-Latn-DE-x-abc"}, - {"de-1901-x-abc", "de-Latn-DE-1901-x-abc"}, - {"x-abc", "x-abc"}, // TODO: is this the desired behavior? - } - for i, tt := range tests { - in, _ := Parse(tt.in) - out, _ := Parse(tt.out) - in, _ = in.addLikelySubtags() - if in.String() != out.String() { - t.Errorf("%d: add(%s) was %s; want %s", i, tt.in, in, tt.out) - } - } -} -func TestMinimize(t *testing.T) { - tests := []struct{ in, out string }{ - {"aa", "aa"}, - {"aa-Latn", "aa"}, - {"aa-Latn-ET", "aa"}, - {"aa-ET", "aa"}, - {"aa-Arab", "aa-Arab"}, - {"aa-Arab-ER", "aa-Arab-ER"}, - {"aa-Arab-ET", "aa-Arab"}, - {"und", "und"}, - {"und-Latn", "und"}, - {"und-Latn-US", "und"}, - {"en-Latn-US", "en"}, - {"cmn", "cmn"}, - {"cmn-Hans", "cmn-Hans"}, - {"cmn-Hant", "cmn-Hant"}, - {"zh-AU", "zh-AU"}, - {"zh-VN", "zh-VN"}, - {"zh-SG", "zh-SG"}, - {"zh-Hant", "zh-Hant"}, - {"zh-Hant-TW", "zh-TW"}, - {"zh-Hans", "zh"}, - {"zh-Hani", "zh-Hani"}, - {"und-Hans", "und-Hans"}, - {"und-Hani", "und-Hani"}, - - {"und-CW", "und-CW"}, - {"und-YT", "und-YT"}, - {"und-Arab", "und-Arab"}, - {"und-AM", "und-AM"}, - {"und-Arab-CC", "und-Arab-CC"}, - {"und-CC", "und-CC"}, - {"und-Latn-BJ", "und-BJ"}, - {"und-Bugi-ID", "und-Bugi"}, - {"bug-Bugi-ID", "bug-Bugi"}, - // regions, scripts and languages without definitions - {"und-Arab-AA", "und-Arab-AA"}, - // preserve variants and extensions - {"de-Latn-1901", "de-1901"}, - {"de-Latn-x-abc", "de-x-abc"}, - {"de-DE-1901-x-abc", "de-1901-x-abc"}, - {"x-abc", "x-abc"}, // TODO: is this the desired behavior? - } - for i, tt := range tests { - in, _ := Parse(tt.in) - out, _ := Parse(tt.out) - min, _ := in.minimize() - if min.String() != out.String() { - t.Errorf("%d: min(%s) was %s; want %s", i, tt.in, min, tt.out) - } - max, _ := min.addLikelySubtags() - if x, _ := in.addLikelySubtags(); x.String() != max.String() { - t.Errorf("%d: max(min(%s)) = %s; want %s", i, tt.in, max, x) - } - } -} - -func TestRegionDistance(t *testing.T) { - tests := []struct { - a, b string - d int - }{ - {"NL", "NL", 0}, - {"NL", "EU", 1}, - {"EU", "NL", 1}, - {"005", "005", 0}, - {"NL", "BE", 2}, - {"CO", "005", 1}, - {"005", "CO", 1}, - {"CO", "419", 2}, - {"419", "CO", 2}, - {"005", "419", 1}, - {"419", "005", 1}, - {"001", "013", 2}, - {"013", "001", 2}, - {"CO", "CW", 4}, - {"CO", "PW", 6}, - {"CO", "BV", 6}, - {"ZZ", "QQ", 2}, - } - for i, tt := range tests { - ra, _ := getRegionID([]byte(tt.a)) - rb, _ := getRegionID([]byte(tt.b)) - if d := regionDistance(ra, rb); d != tt.d { - t.Errorf("%d: d(%s, %s) = %v; want %v", i, tt.a, tt.b, d, tt.d) - } - } -} - -func TestParentDistance(t *testing.T) { - tests := []struct { - parent string - tag string - d uint8 - }{ - {"en-001", "en-AU", 1}, - {"pt-PT", "pt-AO", 1}, - {"pt", "pt-AO", 2}, - {"en-AU", "en-GB", 255}, - {"en-NL", "en-AU", 255}, - // Note that pt-BR and en-US are not automatically minimized. - {"pt-BR", "pt-AO", 255}, - {"en-US", "en-AU", 255}, - } - for _, tt := range tests { - r := Raw.MustParse(tt.parent).region - tag := Raw.MustParse(tt.tag) - if d := parentDistance(r, tag); d != tt.d { - t.Errorf("d(%s, %s) was %d; want %d", r, tag, d, tt.d) - } - } -} - -// Implementation of String methods for various types for debugging purposes. - -func (m *matcher) String() string { - w := &bytes.Buffer{} - fmt.Fprintln(w, "Default:", m.default_) - for tag, h := range m.index { - fmt.Fprintf(w, " %s: %v\n", tag, h) - } - return w.String() -} - -func (h *matchHeader) String() string { - w := &bytes.Buffer{} - fmt.Fprintf(w, "exact: ") - for _, h := range h.exact { - fmt.Fprintf(w, "%v, ", h) - } - fmt.Fprint(w, "; max: ") - for _, h := range h.max { - fmt.Fprintf(w, "%v, ", h) - } - return w.String() -} - -func (t haveTag) String() string { - return fmt.Sprintf("%v:%d:%v:%v-%v|%v", t.tag, t.index, t.conf, t.maxRegion, t.maxScript, t.altScript) -} - -// The test set for TestBestMatch is defined in data_test.go. -func TestBestMatch(t *testing.T) { - parse := func(list string) (out []Tag) { - for _, s := range strings.Split(list, ",") { - out = append(out, mk(strings.TrimSpace(s))) - } - return out - } - for i, tt := range matchTests { - supported := parse(tt.supported) - m := newMatcher(supported) - if *verbose { - fmt.Printf("%s:\n%v\n", tt.comment, m) - } - for _, tm := range tt.test { - tag, _, conf := m.Match(parse(tm.desired)...) - if tag.String() != tm.match { - t.Errorf("%d:%s: find %s in %q: have %s; want %s (%v)\n", i, tt.comment, tm.desired, tt.supported, tag, tm.match, conf) - } - } - } -} - -var benchHave = []Tag{ - mk("en"), - mk("en-GB"), - mk("za"), - mk("zh-Hant"), - mk("zh-Hans-CN"), - mk("zh"), - mk("zh-HK"), - mk("ar-MK"), - mk("en-CA"), - mk("fr-CA"), - mk("fr-US"), - mk("fr-CH"), - mk("fr"), - mk("lt"), - mk("lv"), - mk("iw"), - mk("iw-NL"), - mk("he"), - mk("he-IT"), - mk("tlh"), - mk("ja"), - mk("ja-Jpan"), - mk("ja-Jpan-JP"), - mk("de"), - mk("de-CH"), - mk("de-AT"), - mk("de-DE"), - mk("sr"), - mk("sr-Latn"), - mk("sr-Cyrl"), - mk("sr-ME"), -} - -var benchWant = [][]Tag{ - []Tag{ - mk("en"), - }, - []Tag{ - mk("en-AU"), - mk("de-HK"), - mk("nl"), - mk("fy"), - mk("lv"), - }, - []Tag{ - mk("en-AU"), - mk("de-HK"), - mk("nl"), - mk("fy"), - }, - []Tag{ - mk("ja-Hant"), - mk("da-HK"), - mk("nl"), - mk("zh-TW"), - }, - []Tag{ - mk("ja-Hant"), - mk("da-HK"), - mk("nl"), - mk("hr"), - }, -} - -func BenchmarkMatch(b *testing.B) { - m := newMatcher(benchHave) - for i := 0; i < b.N; i++ { - for _, want := range benchWant { - m.getBest(want...) - } - } -} - -func BenchmarkMatchExact(b *testing.B) { - want := mk("en") - m := newMatcher(benchHave) - for i := 0; i < b.N; i++ { - m.getBest(want) - } -} - -func BenchmarkMatchAltLanguagePresent(b *testing.B) { - want := mk("hr") - m := newMatcher(benchHave) - for i := 0; i < b.N; i++ { - m.getBest(want) - } -} - -func BenchmarkMatchAltLanguageNotPresent(b *testing.B) { - want := mk("nn") - m := newMatcher(benchHave) - for i := 0; i < b.N; i++ { - m.getBest(want) - } -} - -func BenchmarkMatchAltScriptPresent(b *testing.B) { - want := mk("zh-Hant-CN") - m := newMatcher(benchHave) - for i := 0; i < b.N; i++ { - m.getBest(want) - } -} - -func BenchmarkMatchAltScriptNotPresent(b *testing.B) { - want := mk("fr-Cyrl") - m := newMatcher(benchHave) - for i := 0; i < b.N; i++ { - m.getBest(want) - } -} - -func BenchmarkMatchLimitedExact(b *testing.B) { - want := []Tag{mk("he-NL"), mk("iw-NL")} - m := newMatcher(benchHave) - for i := 0; i < b.N; i++ { - m.getBest(want...) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/parse.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/parse.go deleted file mode 100644 index ec18465e..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/parse.go +++ /dev/null @@ -1,859 +0,0 @@ -// 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 language - -import ( - "bytes" - "errors" - "fmt" - "sort" - "strconv" - "strings" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag" -) - -// isAlpha returns true if the byte is not a digit. -// b must be an ASCII letter or digit. -func isAlpha(b byte) bool { - return b > '9' -} - -// isAlphaNum returns true if the string contains only ASCII letters or digits. -func isAlphaNum(s []byte) bool { - for _, c := range s { - if !('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9') { - return false - } - } - return true -} - -// errSyntax is returned by any of the parsing functions when the -// input is not well-formed, according to BCP 47. -// TODO: return the position at which the syntax error occurred? -var errSyntax = errors.New("language: tag is not well-formed") - -// ValueError is returned by any of the parsing functions when the -// input is well-formed but the respective subtag is not recognized -// as a valid value. -type ValueError struct { - v [8]byte -} - -func mkErrInvalid(s []byte) error { - var e ValueError - copy(e.v[:], s) - return e -} - -func (e ValueError) tag() []byte { - n := bytes.IndexByte(e.v[:], 0) - if n == -1 { - n = 8 - } - return e.v[:n] -} - -// Error implements the error interface. -func (e ValueError) Error() string { - return fmt.Sprintf("language: subtag %q is well-formed but unknown", e.tag()) -} - -// Subtag returns the subtag for which the error occurred. -func (e ValueError) Subtag() string { - return string(e.tag()) -} - -// scanner is used to scan BCP 47 tokens, which are separated by _ or -. -type scanner struct { - b []byte - bytes [max99thPercentileSize]byte - token []byte - start int // start position of the current token - end int // end position of the current token - next int // next point for scan - err error - done bool -} - -func makeScannerString(s string) scanner { - scan := scanner{} - if len(s) <= len(scan.bytes) { - scan.b = scan.bytes[:copy(scan.bytes[:], s)] - } else { - scan.b = []byte(s) - } - scan.init() - return scan -} - -// makeScanner returns a scanner using b as the input buffer. -// b is not copied and may be modified by the scanner routines. -func makeScanner(b []byte) scanner { - scan := scanner{b: b} - scan.init() - return scan -} - -func (s *scanner) init() { - for i, c := range s.b { - if c == '_' { - s.b[i] = '-' - } - } - s.scan() -} - -// restToLower converts the string between start and end to lower case. -func (s *scanner) toLower(start, end int) { - for i := start; i < end; i++ { - c := s.b[i] - if 'A' <= c && c <= 'Z' { - s.b[i] += 'a' - 'A' - } - } -} - -func (s *scanner) setError(e error) { - if s.err == nil || (e == errSyntax && s.err != errSyntax) { - s.err = e - } -} - -// resizeRange shrinks or grows the array at position oldStart such that -// a new string of size newSize can fit between oldStart and oldEnd. -// Sets the scan point to after the resized range. -func (s *scanner) resizeRange(oldStart, oldEnd, newSize int) { - s.start = oldStart - if end := oldStart + newSize; end != oldEnd { - diff := end - oldEnd - if end < cap(s.b) { - b := make([]byte, len(s.b)+diff) - copy(b, s.b[:oldStart]) - copy(b[end:], s.b[oldEnd:]) - s.b = b - } else { - s.b = append(s.b[end:], s.b[oldEnd:]...) - } - s.next = end + (s.next - s.end) - s.end = end - } -} - -// replace replaces the current token with repl. -func (s *scanner) replace(repl string) { - s.resizeRange(s.start, s.end, len(repl)) - copy(s.b[s.start:], repl) -} - -// gobble removes the current token from the input. -// Caller must call scan after calling gobble. -func (s *scanner) gobble(e error) { - s.setError(e) - if s.start == 0 { - s.b = s.b[:+copy(s.b, s.b[s.next:])] - s.end = 0 - } else { - s.b = s.b[:s.start-1+copy(s.b[s.start-1:], s.b[s.end:])] - s.end = s.start - 1 - } - s.next = s.start -} - -// deleteRange removes the given range from s.b before the current token. -func (s *scanner) deleteRange(start, end int) { - s.setError(errSyntax) - s.b = s.b[:start+copy(s.b[start:], s.b[end:])] - diff := end - start - s.next -= diff - s.start -= diff - s.end -= diff -} - -// scan parses the next token of a BCP 47 string. Tokens that are larger -// than 8 characters or include non-alphanumeric characters result in an error -// and are gobbled and removed from the output. -// It returns the end position of the last token consumed. -func (s *scanner) scan() (end int) { - end = s.end - s.token = nil - for s.start = s.next; s.next < len(s.b); { - i := bytes.IndexByte(s.b[s.next:], '-') - if i == -1 { - s.end = len(s.b) - s.next = len(s.b) - i = s.end - s.start - } else { - s.end = s.next + i - s.next = s.end + 1 - } - token := s.b[s.start:s.end] - if i < 1 || i > 8 || !isAlphaNum(token) { - s.gobble(errSyntax) - continue - } - s.token = token - return end - } - if n := len(s.b); n > 0 && s.b[n-1] == '-' { - s.setError(errSyntax) - s.b = s.b[:len(s.b)-1] - } - s.done = true - return end -} - -// acceptMinSize parses multiple tokens of the given size or greater. -// It returns the end position of the last token consumed. -func (s *scanner) acceptMinSize(min int) (end int) { - end = s.end - s.scan() - for ; len(s.token) >= min; s.scan() { - end = s.end - } - return end -} - -// Parse parses the given BCP 47 string and returns a valid Tag. If parsing -// failed it returns an error and any part of the tag that could be parsed. -// If parsing succeeded but an unknown value was found, it returns -// ValueError. The Tag returned in this case is just stripped of the unknown -// value. All other values are preserved. It accepts tags in the BCP 47 format -// and extensions to this standard defined in -// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -// The resulting tag is canonicalized using the default canonicalization type. -func Parse(s string) (t Tag, err error) { - return Default.Parse(s) -} - -// Parse parses the given BCP 47 string and returns a valid Tag. If parsing -// failed it returns an error and any part of the tag that could be parsed. -// If parsing succeeded but an unknown value was found, it returns -// ValueError. The Tag returned in this case is just stripped of the unknown -// value. All other values are preserved. It accepts tags in the BCP 47 format -// and extensions to this standard defined in -// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. -// The resulting tag is canonicalized using the the canonicalization type c. -func (c CanonType) Parse(s string) (t Tag, err error) { - // TODO: consider supporting old-style locale key-value pairs. - if s == "" { - return und, errSyntax - } - if len(s) <= maxAltTaglen { - b := [maxAltTaglen]byte{} - for i, c := range s { - // Generating invalid UTF-8 is okay as it won't match. - if 'A' <= c && c <= 'Z' { - c += 'a' - 'A' - } else if c == '_' { - c = '-' - } - b[i] = byte(c) - } - if t, ok := grandfathered(b); ok { - return t, nil - } - } - scan := makeScannerString(s) - t, err = parse(&scan, s) - t, changed := t.canonicalize(c) - if changed { - t.remakeString() - } - return t, err -} - -func parse(scan *scanner, s string) (t Tag, err error) { - t = und - var end int - if n := len(scan.token); n <= 1 { - scan.toLower(0, len(scan.b)) - if n == 0 || scan.token[0] != 'x' { - return t, errSyntax - } - end = parseExtensions(scan) - } else if n >= 4 { - return und, errSyntax - } else { // the usual case - t, end = parseTag(scan) - if n := len(scan.token); n == 1 { - t.pExt = uint16(end) - end = parseExtensions(scan) - } else if end < len(scan.b) { - scan.setError(errSyntax) - scan.b = scan.b[:end] - } - } - if int(t.pVariant) < len(scan.b) { - if end < len(s) { - s = s[:end] - } - if len(s) > 0 && tag.Compare(s, scan.b) == 0 { - t.str = s - } else { - t.str = string(scan.b) - } - } else { - t.pVariant, t.pExt = 0, 0 - } - return t, scan.err -} - -// parseTag parses language, script, region and variants. -// It returns a Tag and the end position in the input that was parsed. -func parseTag(scan *scanner) (t Tag, end int) { - var e error - // TODO: set an error if an unknown lang, script or region is encountered. - t.lang, e = getLangID(scan.token) - scan.setError(e) - scan.replace(t.lang.String()) - langStart := scan.start - end = scan.scan() - for len(scan.token) == 3 && isAlpha(scan.token[0]) { - // From http://tools.ietf.org/html/bcp47, <lang>-<extlang> tags are equivalent - // to a tag of the form <extlang>. - lang, e := getLangID(scan.token) - if lang != 0 { - t.lang = lang - copy(scan.b[langStart:], lang.String()) - scan.b[langStart+3] = '-' - scan.start = langStart + 4 - } - scan.gobble(e) - end = scan.scan() - } - if len(scan.token) == 4 && isAlpha(scan.token[0]) { - t.script, e = getScriptID(script, scan.token) - if t.script == 0 { - scan.gobble(e) - } - end = scan.scan() - } - if n := len(scan.token); n >= 2 && n <= 3 { - t.region, e = getRegionID(scan.token) - if t.region == 0 { - scan.gobble(e) - } else { - scan.replace(t.region.String()) - } - end = scan.scan() - } - scan.toLower(scan.start, len(scan.b)) - t.pVariant = byte(end) - end = parseVariants(scan, end, t) - t.pExt = uint16(end) - return t, end -} - -var separator = []byte{'-'} - -// parseVariants scans tokens as long as each token is a valid variant string. -// Duplicate variants are removed. -func parseVariants(scan *scanner, end int, t Tag) int { - start := scan.start - varIDBuf := [4]uint8{} - variantBuf := [4][]byte{} - varID := varIDBuf[:0] - variant := variantBuf[:0] - last := -1 - needSort := false - for ; len(scan.token) >= 4; scan.scan() { - // TODO: measure the impact of needing this conversion and redesign - // the data structure if there is an issue. - v, ok := variantIndex[string(scan.token)] - if !ok { - // unknown variant - // TODO: allow user-defined variants? - scan.gobble(mkErrInvalid(scan.token)) - continue - } - varID = append(varID, v) - variant = append(variant, scan.token) - if !needSort { - if last < int(v) { - last = int(v) - } else { - needSort = true - // There is no legal combinations of more than 7 variants - // (and this is by no means a useful sequence). - const maxVariants = 8 - if len(varID) > maxVariants { - break - } - } - } - end = scan.end - } - if needSort { - sort.Sort(variantsSort{varID, variant}) - k, l := 0, -1 - for i, v := range varID { - w := int(v) - if l == w { - // Remove duplicates. - continue - } - varID[k] = varID[i] - variant[k] = variant[i] - k++ - l = w - } - if str := bytes.Join(variant[:k], separator); len(str) == 0 { - end = start - 1 - } else { - scan.resizeRange(start, end, len(str)) - copy(scan.b[scan.start:], str) - end = scan.end - } - } - return end -} - -type variantsSort struct { - i []uint8 - v [][]byte -} - -func (s variantsSort) Len() int { - return len(s.i) -} - -func (s variantsSort) Swap(i, j int) { - s.i[i], s.i[j] = s.i[j], s.i[i] - s.v[i], s.v[j] = s.v[j], s.v[i] -} - -func (s variantsSort) Less(i, j int) bool { - return s.i[i] < s.i[j] -} - -type bytesSort [][]byte - -func (b bytesSort) Len() int { - return len(b) -} - -func (b bytesSort) Swap(i, j int) { - b[i], b[j] = b[j], b[i] -} - -func (b bytesSort) Less(i, j int) bool { - return bytes.Compare(b[i], b[j]) == -1 -} - -// parseExtensions parses and normalizes the extensions in the buffer. -// It returns the last position of scan.b that is part of any extension. -// It also trims scan.b to remove excess parts accordingly. -func parseExtensions(scan *scanner) int { - start := scan.start - exts := [][]byte{} - private := []byte{} - end := scan.end - for len(scan.token) == 1 { - extStart := scan.start - ext := scan.token[0] - end = parseExtension(scan) - extension := scan.b[extStart:end] - if len(extension) < 3 || (ext != 'x' && len(extension) < 4) { - scan.setError(errSyntax) - end = extStart - continue - } else if start == extStart && (ext == 'x' || scan.start == len(scan.b)) { - scan.b = scan.b[:end] - return end - } else if ext == 'x' { - private = extension - break - } - exts = append(exts, extension) - } - sort.Sort(bytesSort(exts)) - if len(private) > 0 { - exts = append(exts, private) - } - scan.b = scan.b[:start] - if len(exts) > 0 { - scan.b = append(scan.b, bytes.Join(exts, separator)...) - } else if start > 0 { - // Strip trailing '-'. - scan.b = scan.b[:start-1] - } - return end -} - -// parseExtension parses a single extension and returns the position of -// the extension end. -func parseExtension(scan *scanner) int { - start, end := scan.start, scan.end - switch scan.token[0] { - case 'u': - attrStart := end - scan.scan() - for last := []byte{}; len(scan.token) > 2; scan.scan() { - if bytes.Compare(scan.token, last) != -1 { - // Attributes are unsorted. Start over from scratch. - p := attrStart + 1 - scan.next = p - attrs := [][]byte{} - for scan.scan(); len(scan.token) > 2; scan.scan() { - attrs = append(attrs, scan.token) - end = scan.end - } - sort.Sort(bytesSort(attrs)) - copy(scan.b[p:], bytes.Join(attrs, separator)) - break - } - last = scan.token - end = scan.end - } - var last, key []byte - for attrEnd := end; len(scan.token) == 2; last = key { - key = scan.token - keyEnd := scan.end - end = scan.acceptMinSize(3) - // TODO: check key value validity - if keyEnd == end || bytes.Compare(key, last) != 1 { - // We have an invalid key or the keys are not sorted. - // Start scanning keys from scratch and reorder. - p := attrEnd + 1 - scan.next = p - keys := [][]byte{} - for scan.scan(); len(scan.token) == 2; { - keyStart, keyEnd := scan.start, scan.end - end = scan.acceptMinSize(3) - if keyEnd != end { - keys = append(keys, scan.b[keyStart:end]) - } else { - scan.setError(errSyntax) - end = keyStart - } - } - sort.Sort(bytesSort(keys)) - reordered := bytes.Join(keys, separator) - if e := p + len(reordered); e < end { - scan.deleteRange(e, end) - end = e - } - copy(scan.b[p:], bytes.Join(keys, separator)) - break - } - } - case 't': - scan.scan() - if n := len(scan.token); n >= 2 && n <= 3 && isAlpha(scan.token[1]) { - _, end = parseTag(scan) - scan.toLower(start, end) - } - for len(scan.token) == 2 && !isAlpha(scan.token[1]) { - end = scan.acceptMinSize(3) - } - case 'x': - end = scan.acceptMinSize(1) - default: - end = scan.acceptMinSize(2) - } - return end -} - -// Compose creates a Tag from individual parts, which may be of type Tag, Base, -// Script, Region, Variant, []Variant, Extension, []Extension or error. If a -// Base, Script or Region or slice of type Variant or Extension is passed more -// than once, the latter will overwrite the former. Variants and Extensions are -// accumulated, but if two extensions of the same type are passed, the latter -// will replace the former. A Tag overwrites all former values and typically -// only makes sense as the first argument. The resulting tag is returned after -// canonicalizing using the Default CanonType. If one or more errors are -// encountered, one of the errors is returned. -func Compose(part ...interface{}) (t Tag, err error) { - return Default.Compose(part...) -} - -// Compose creates a Tag from individual parts, which may be of type Tag, Base, -// Script, Region, Variant, []Variant, Extension, []Extension or error. If a -// Base, Script or Region or slice of type Variant or Extension is passed more -// than once, the latter will overwrite the former. Variants and Extensions are -// accumulated, but if two extensions of the same type are passed, the latter -// will replace the former. A Tag overwrites all former values and typically -// only makes sense as the first argument. The resulting tag is returned after -// canonicalizing using CanonType c. If one or more errors are encountered, -// one of the errors is returned. -func (c CanonType) Compose(part ...interface{}) (t Tag, err error) { - var b builder - if err = b.update(part...); err != nil { - return und, err - } - t, _ = b.tag.canonicalize(c) - - if len(b.ext) > 0 || len(b.variant) > 0 { - sort.Sort(sortVariant(b.variant)) - sort.Strings(b.ext) - if b.private != "" { - b.ext = append(b.ext, b.private) - } - n := maxCoreSize + tokenLen(b.variant...) + tokenLen(b.ext...) - buf := make([]byte, n) - p := t.genCoreBytes(buf) - t.pVariant = byte(p) - p += appendTokens(buf[p:], b.variant...) - t.pExt = uint16(p) - p += appendTokens(buf[p:], b.ext...) - t.str = string(buf[:p]) - } else if b.private != "" { - t.str = b.private - t.remakeString() - } - return -} - -type builder struct { - tag Tag - - private string // the x extension - ext []string - variant []string - - err error -} - -func (b *builder) addExt(e string) { - if e == "" { - } else if e[0] == 'x' { - b.private = e - } else { - b.ext = append(b.ext, e) - } -} - -var errInvalidArgument = errors.New("invalid Extension or Variant") - -func (b *builder) update(part ...interface{}) (err error) { - replace := func(l *[]string, s string, eq func(a, b string) bool) bool { - if s == "" { - b.err = errInvalidArgument - return true - } - for i, v := range *l { - if eq(v, s) { - (*l)[i] = s - return true - } - } - return false - } - for _, x := range part { - switch v := x.(type) { - case Tag: - b.tag.lang = v.lang - b.tag.region = v.region - b.tag.script = v.script - if v.str != "" { - b.variant = nil - for x, s := "", v.str[v.pVariant:v.pExt]; s != ""; { - x, s = nextToken(s) - b.variant = append(b.variant, x) - } - b.ext, b.private = nil, "" - for i, e := int(v.pExt), ""; i < len(v.str); { - i, e = getExtension(v.str, i) - b.addExt(e) - } - } - case Base: - b.tag.lang = v.langID - case Script: - b.tag.script = v.scriptID - case Region: - b.tag.region = v.regionID - case Variant: - if !replace(&b.variant, v.variant, func(a, b string) bool { return a == b }) { - b.variant = append(b.variant, v.variant) - } - case Extension: - if !replace(&b.ext, v.s, func(a, b string) bool { return a[0] == b[0] }) { - b.addExt(v.s) - } - case []Variant: - b.variant = nil - for _, x := range v { - b.update(x) - } - case []Extension: - b.ext, b.private = nil, "" - for _, e := range v { - b.update(e) - } - // TODO: support parsing of raw strings based on morphology or just extensions? - case error: - err = v - } - } - return -} - -func tokenLen(token ...string) (n int) { - for _, t := range token { - n += len(t) + 1 - } - return -} - -func appendTokens(b []byte, token ...string) int { - p := 0 - for _, t := range token { - b[p] = '-' - copy(b[p+1:], t) - p += 1 + len(t) - } - return p -} - -type sortVariant []string - -func (s sortVariant) Len() int { - return len(s) -} - -func (s sortVariant) Swap(i, j int) { - s[j], s[i] = s[i], s[j] -} - -func (s sortVariant) Less(i, j int) bool { - return variantIndex[s[i]] < variantIndex[s[j]] -} - -func findExt(list []string, x byte) int { - for i, e := range list { - if e[0] == x { - return i - } - } - return -1 -} - -// getExtension returns the name, body and end position of the extension. -func getExtension(s string, p int) (end int, ext string) { - if s[p] == '-' { - p++ - } - if s[p] == 'x' { - return len(s), s[p:] - } - end = nextExtension(s, p) - return end, s[p:end] -} - -// nextExtension finds the next extension within the string, searching -// for the -<char>- pattern from position p. -// In the fast majority of cases, language tags will have at most -// one extension and extensions tend to be small. -func nextExtension(s string, p int) int { - for n := len(s) - 3; p < n; { - if s[p] == '-' { - if s[p+2] == '-' { - return p - } - p += 3 - } else { - p++ - } - } - return len(s) -} - -var errInvalidWeight = errors.New("ParseAcceptLanguage: invalid weight") - -// ParseAcceptLanguage parses the contents of a Accept-Language header as -// defined in http://www.ietf.org/rfc/rfc2616.txt and returns a list of Tags and -// a list of corresponding quality weights. It is more permissive than RFC 2616 -// and may return non-nil slices even if the input is not valid. -// The Tags will be sorted by highest weight first and then by first occurrence. -// Tags with a weight of zero will be dropped. An error will be returned if the -// input could not be parsed. -func ParseAcceptLanguage(s string) (tag []Tag, q []float32, err error) { - var entry string - for s != "" { - if entry, s = split(s, ','); entry == "" { - continue - } - - entry, weight := split(entry, ';') - - // Scan the language. - t, err := Parse(entry) - if err != nil { - id, ok := acceptFallback[entry] - if !ok { - return nil, nil, err - } - t = Tag{lang: id} - } - - // Scan the optional weight. - w := 1.0 - if weight != "" { - weight = consume(weight, 'q') - weight = consume(weight, '=') - // consume returns the empty string when a token could not be - // consumed, resulting in an error for ParseFloat. - if w, err = strconv.ParseFloat(weight, 32); err != nil { - return nil, nil, errInvalidWeight - } - // Drop tags with a quality weight of 0. - if w <= 0 { - continue - } - } - - tag = append(tag, t) - q = append(q, float32(w)) - } - sortStable(&tagSort{tag, q}) - return tag, q, nil -} - -// consume removes a leading token c from s and returns the result or the empty -// string if there is no such token. -func consume(s string, c byte) string { - if s == "" || s[0] != c { - return "" - } - return strings.TrimSpace(s[1:]) -} - -func split(s string, c byte) (head, tail string) { - if i := strings.IndexByte(s, c); i >= 0 { - return strings.TrimSpace(s[:i]), strings.TrimSpace(s[i+1:]) - } - return strings.TrimSpace(s), "" -} - -// Add hack mapping to deal with a small number of cases that that occur -// in Accept-Language (with reasonable frequency). -var acceptFallback = map[string]langID{ - "english": _en, - "deutsch": _de, - "italian": _it, - "french": _fr, - "*": _mul, // defined in the spec to match all languages. -} - -type tagSort struct { - tag []Tag - q []float32 -} - -func (s *tagSort) Len() int { - return len(s.q) -} - -func (s *tagSort) Less(i, j int) bool { - return s.q[i] > s.q[j] -} - -func (s *tagSort) Swap(i, j int) { - s.tag[i], s.tag[j] = s.tag[j], s.tag[i] - s.q[i], s.q[j] = s.q[j], s.q[i] -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/parse_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/parse_test.go deleted file mode 100644 index 9e0c811f..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/parse_test.go +++ /dev/null @@ -1,517 +0,0 @@ -// 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 language - -import ( - "bytes" - "strings" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag" -) - -type scanTest struct { - ok bool // true if scanning does not result in an error - in string - tok []string // the expected tokens -} - -var tests = []scanTest{ - {true, "", []string{}}, - {true, "1", []string{"1"}}, - {true, "en", []string{"en"}}, - {true, "root", []string{"root"}}, - {true, "maxchars", []string{"maxchars"}}, - {false, "bad/", []string{}}, - {false, "morethan8", []string{}}, - {false, "-", []string{}}, - {false, "----", []string{}}, - {false, "_", []string{}}, - {true, "en-US", []string{"en", "US"}}, - {true, "en_US", []string{"en", "US"}}, - {false, "en-US-", []string{"en", "US"}}, - {false, "en-US--", []string{"en", "US"}}, - {false, "en-US---", []string{"en", "US"}}, - {false, "en--US", []string{"en", "US"}}, - {false, "-en-US", []string{"en", "US"}}, - {false, "-en--US-", []string{"en", "US"}}, - {false, "-en--US-", []string{"en", "US"}}, - {false, "en-.-US", []string{"en", "US"}}, - {false, ".-en--US-.", []string{"en", "US"}}, - {false, "en-u.-US", []string{"en", "US"}}, - {true, "en-u1-US", []string{"en", "u1", "US"}}, - {true, "maxchar1_maxchar2-maxchar3", []string{"maxchar1", "maxchar2", "maxchar3"}}, - {false, "moreThan8-moreThan8-e", []string{"e"}}, -} - -func TestScan(t *testing.T) { - for i, tt := range tests { - scan := makeScannerString(tt.in) - for j := 0; !scan.done; j++ { - if j >= len(tt.tok) { - t.Errorf("%d: extra token %q", i, scan.token) - } else if tag.Compare(tt.tok[j], scan.token) != 0 { - t.Errorf("%d: token %d: found %q; want %q", i, j, scan.token, tt.tok[j]) - break - } - scan.scan() - } - if s := strings.Join(tt.tok, "-"); tag.Compare(s, bytes.Replace(scan.b, b("_"), b("-"), -1)) != 0 { - t.Errorf("%d: input: found %q; want %q", i, scan.b, s) - } - if (scan.err == nil) != tt.ok { - t.Errorf("%d: ok: found %v; want %v", i, scan.err == nil, tt.ok) - } - } -} - -func TestAcceptMinSize(t *testing.T) { - for i, tt := range tests { - // count number of successive tokens with a minimum size. - for sz := 1; sz <= 8; sz++ { - scan := makeScannerString(tt.in) - scan.end, scan.next = 0, 0 - end := scan.acceptMinSize(sz) - n := 0 - for i := 0; i < len(tt.tok) && len(tt.tok[i]) >= sz; i++ { - n += len(tt.tok[i]) - if i > 0 { - n++ - } - } - if end != n { - t.Errorf("%d:%d: found len %d; want %d", i, sz, end, n) - } - } - } -} - -type parseTest struct { - i int // the index of this test - in string - lang, script, region string - variants, ext string - extList []string // only used when more than one extension is present - invalid bool - rewrite bool // special rewrite not handled by parseTag - changed bool // string needed to be reformatted -} - -func parseTests() []parseTest { - tests := []parseTest{ - {in: "root", lang: "und"}, - {in: "und", lang: "und"}, - {in: "en", lang: "en"}, - {in: "xy", lang: "und", invalid: true}, - {in: "en-ZY", lang: "en", invalid: true}, - {in: "gsw", lang: "gsw"}, - {in: "sr_Latn", lang: "sr", script: "Latn"}, - {in: "af-Arab", lang: "af", script: "Arab"}, - {in: "nl-BE", lang: "nl", region: "BE"}, - {in: "es-419", lang: "es", region: "419"}, - {in: "und-001", lang: "und", region: "001"}, - {in: "de-latn-be", lang: "de", script: "Latn", region: "BE"}, - // Variants - {in: "de-1901", lang: "de", variants: "1901"}, - // Accept with unsuppressed script. - {in: "de-Latn-1901", lang: "de", script: "Latn", variants: "1901"}, - // Specialized. - {in: "sl-rozaj", lang: "sl", variants: "rozaj"}, - {in: "sl-rozaj-lipaw", lang: "sl", variants: "rozaj-lipaw"}, - {in: "sl-rozaj-biske", lang: "sl", variants: "rozaj-biske"}, - {in: "sl-rozaj-biske-1994", lang: "sl", variants: "rozaj-biske-1994"}, - {in: "sl-rozaj-1994", lang: "sl", variants: "rozaj-1994"}, - // Maximum number of variants while adhering to prefix rules. - {in: "sl-rozaj-biske-1994-alalc97-fonipa-fonupa-fonxsamp", lang: "sl", variants: "rozaj-biske-1994-alalc97-fonipa-fonupa-fonxsamp"}, - - // Sorting. - {in: "sl-1994-biske-rozaj", lang: "sl", variants: "rozaj-biske-1994", changed: true}, - {in: "sl-rozaj-biske-1994-alalc97-fonupa-fonipa-fonxsamp", lang: "sl", variants: "rozaj-biske-1994-alalc97-fonipa-fonupa-fonxsamp", changed: true}, - {in: "nl-fonxsamp-alalc97-fonipa-fonupa", lang: "nl", variants: "alalc97-fonipa-fonupa-fonxsamp", changed: true}, - - // Duplicates variants are removed, but not an error. - {in: "nl-fonupa-fonupa", lang: "nl", variants: "fonupa"}, - - // Variants that do not have correct prefixes. We still accept these. - {in: "de-Cyrl-1901", lang: "de", script: "Cyrl", variants: "1901"}, - {in: "sl-rozaj-lipaw-1994", lang: "sl", variants: "rozaj-lipaw-1994"}, - {in: "sl-1994-biske-rozaj-1994-biske-rozaj", lang: "sl", variants: "rozaj-biske-1994", changed: true}, - {in: "de-Cyrl-1901", lang: "de", script: "Cyrl", variants: "1901"}, - - // Invalid variant. - {in: "de-1902", lang: "de", variants: "", invalid: true}, - - {in: "EN_CYRL", lang: "en", script: "Cyrl"}, - // private use and extensions - {in: "x-a-b-c-d", ext: "x-a-b-c-d"}, - {in: "x_A.-B-C_D", ext: "x-b-c-d", invalid: true, changed: true}, - {in: "x-aa-bbbb-cccccccc-d", ext: "x-aa-bbbb-cccccccc-d"}, - {in: "en-c_cc-b-bbb-a-aaa", lang: "en", changed: true, extList: []string{"a-aaa", "b-bbb", "c-cc"}}, - {in: "en-x_cc-b-bbb-a-aaa", lang: "en", ext: "x-cc-b-bbb-a-aaa", changed: true}, - {in: "en-c_cc-b-bbb-a-aaa-x-x", lang: "en", changed: true, extList: []string{"a-aaa", "b-bbb", "c-cc", "x-x"}}, - {in: "en-v-c", lang: "en", ext: "", invalid: true}, - {in: "en-v-abcdefghi", lang: "en", ext: "", invalid: true}, - {in: "en-v-abc-x", lang: "en", ext: "v-abc", invalid: true}, - {in: "en-v-abc-x-", lang: "en", ext: "v-abc", invalid: true}, - {in: "en-v-abc-w-x-xx", lang: "en", extList: []string{"v-abc", "x-xx"}, invalid: true, changed: true}, - {in: "en-v-abc-w-y-yx", lang: "en", extList: []string{"v-abc", "y-yx"}, invalid: true, changed: true}, - {in: "en-v-c-abc", lang: "en", ext: "c-abc", invalid: true, changed: true}, - {in: "en-v-w-abc", lang: "en", ext: "w-abc", invalid: true, changed: true}, - {in: "en-v-x-abc", lang: "en", ext: "x-abc", invalid: true, changed: true}, - {in: "en-v-x-a", lang: "en", ext: "x-a", invalid: true, changed: true}, - {in: "en-9-aa-0-aa-z-bb-x-a", lang: "en", extList: []string{"0-aa", "9-aa", "z-bb", "x-a"}, changed: true}, - {in: "en-u-c", lang: "en", ext: "", invalid: true}, - {in: "en-u-co-phonebk", lang: "en", ext: "u-co-phonebk"}, - {in: "en-u-co-phonebk-ca", lang: "en", ext: "u-co-phonebk", invalid: true}, - {in: "en-u-nu-arabic-co-phonebk-ca", lang: "en", ext: "u-co-phonebk-nu-arabic", invalid: true, changed: true}, - {in: "en-u-nu-arabic-co-phonebk-ca-x", lang: "en", ext: "u-co-phonebk-nu-arabic", invalid: true, changed: true}, - {in: "en-u-nu-arabic-co-phonebk-ca-s", lang: "en", ext: "u-co-phonebk-nu-arabic", invalid: true, changed: true}, - {in: "en-u-nu-arabic-co-phonebk-ca-a12345678", lang: "en", ext: "u-co-phonebk-nu-arabic", invalid: true, changed: true}, - {in: "en-u-co-phonebook", lang: "en", ext: "", invalid: true}, - {in: "en-u-co-phonebook-cu-xau", lang: "en", ext: "u-cu-xau", invalid: true, changed: true}, - {in: "en-Cyrl-u-co-phonebk", lang: "en", script: "Cyrl", ext: "u-co-phonebk"}, - {in: "en-US-u-co-phonebk", lang: "en", region: "US", ext: "u-co-phonebk"}, - {in: "en-US-u-co-phonebk-cu-xau", lang: "en", region: "US", ext: "u-co-phonebk-cu-xau"}, - {in: "en-scotland-u-co-phonebk", lang: "en", variants: "scotland", ext: "u-co-phonebk"}, - {in: "en-u-cu-xua-co-phonebk", lang: "en", ext: "u-co-phonebk-cu-xua", changed: true}, - {in: "en-u-def-abc-cu-xua-co-phonebk", lang: "en", ext: "u-abc-def-co-phonebk-cu-xua", changed: true}, - {in: "en-u-def-abc", lang: "en", ext: "u-abc-def", changed: true}, - {in: "en-u-cu-xua-co-phonebk-a-cd", lang: "en", extList: []string{"a-cd", "u-co-phonebk-cu-xua"}, changed: true}, - // Invalid "u" extension. Drop invalid parts. - {in: "en-u-cu-co-phonebk", lang: "en", extList: []string{"u-co-phonebk"}, invalid: true, changed: true}, - {in: "en-u-cu-xau-co", lang: "en", extList: []string{"u-cu-xau"}, invalid: true}, - // We allow duplicate keys as the LDML spec does not explicitly prohibit it. - // TODO: Consider eliminating duplicates and returning an error. - {in: "en-u-cu-xau-co-phonebk-cu-xau", lang: "en", ext: "u-co-phonebk-cu-xau-cu-xau", changed: true}, - {in: "en-t-en-Cyrl-NL-fonipa", lang: "en", ext: "t-en-cyrl-nl-fonipa", changed: true}, - {in: "en-t-en-Cyrl-NL-fonipa-t0-abc-def", lang: "en", ext: "t-en-cyrl-nl-fonipa-t0-abc-def", changed: true}, - {in: "en-t-t0-abcd", lang: "en", ext: "t-t0-abcd"}, - // Not necessary to have changed here. - {in: "en-t-nl-abcd", lang: "en", ext: "t-nl", invalid: true}, - {in: "en-t-nl-latn", lang: "en", ext: "t-nl-latn"}, - {in: "en-t-t0-abcd-x-a", lang: "en", extList: []string{"t-t0-abcd", "x-a"}}, - // invalid - {in: "", lang: "und", invalid: true}, - {in: "-", lang: "und", invalid: true}, - {in: "x", lang: "und", invalid: true}, - {in: "x-", lang: "und", invalid: true}, - {in: "x--", lang: "und", invalid: true}, - {in: "a-a-b-c-d", lang: "und", invalid: true}, - {in: "en-", lang: "en", invalid: true}, - {in: "enne-", lang: "und", invalid: true}, - {in: "en.", lang: "und", invalid: true}, - {in: "en.-latn", lang: "und", invalid: true}, - {in: "en.-en", lang: "en", invalid: true}, - {in: "x-a-tooManyChars-c-d", ext: "x-a-c-d", invalid: true, changed: true}, - {in: "a-tooManyChars-c-d", lang: "und", invalid: true}, - // TODO: check key-value validity - // { in: "en-u-cu-xd", lang: "en", ext: "u-cu-xd", invalid: true }, - {in: "en-t-abcd", lang: "en", invalid: true}, - {in: "en-Latn-US-en", lang: "en", script: "Latn", region: "US", invalid: true}, - // rewrites (more tests in TestGrandfathered) - {in: "zh-min-nan", lang: "nan"}, - {in: "zh-yue", lang: "yue"}, - {in: "zh-xiang", lang: "hsn", rewrite: true}, - {in: "zh-guoyu", lang: "cmn", rewrite: true}, - {in: "iw", lang: "iw"}, - {in: "sgn-BE-FR", lang: "sfb", rewrite: true}, - {in: "i-klingon", lang: "tlh", rewrite: true}, - } - for i, tt := range tests { - tests[i].i = i - if tt.extList != nil { - tests[i].ext = strings.Join(tt.extList, "-") - } - if tt.ext != "" && tt.extList == nil { - tests[i].extList = []string{tt.ext} - } - } - return tests -} - -func TestParseExtensions(t *testing.T) { - for i, tt := range parseTests() { - if tt.ext == "" || tt.rewrite { - continue - } - scan := makeScannerString(tt.in) - if len(scan.b) > 1 && scan.b[1] != '-' { - scan.end = nextExtension(string(scan.b), 0) - scan.next = scan.end + 1 - scan.scan() - } - start := scan.start - scan.toLower(start, len(scan.b)) - parseExtensions(&scan) - ext := string(scan.b[start:]) - if ext != tt.ext { - t.Errorf("%d(%s): ext was %v; want %v", i, tt.in, ext, tt.ext) - } - if changed := !strings.HasPrefix(tt.in[start:], ext); changed != tt.changed { - t.Errorf("%d(%s): changed was %v; want %v", i, tt.in, changed, tt.changed) - } - } -} - -// partChecks runs checks for each part by calling the function returned by f. -func partChecks(t *testing.T, f func(*parseTest) (Tag, bool)) { - for i, tt := range parseTests() { - tag, skip := f(&tt) - if skip { - continue - } - if l, _ := getLangID(b(tt.lang)); l != tag.lang { - t.Errorf("%d: lang was %q; want %q", i, tag.lang, l) - } - if sc, _ := getScriptID(script, b(tt.script)); sc != tag.script { - t.Errorf("%d: script was %q; want %q", i, tag.script, sc) - } - if r, _ := getRegionID(b(tt.region)); r != tag.region { - t.Errorf("%d: region was %q; want %q", i, tag.region, r) - } - if tag.str == "" { - continue - } - p := int(tag.pVariant) - if p < int(tag.pExt) { - p++ - } - if s, g := tag.str[p:tag.pExt], tt.variants; s != g { - t.Errorf("%d: variants was %q; want %q", i, s, g) - } - p = int(tag.pExt) - if p > 0 && p < len(tag.str) { - p++ - } - if s, g := (tag.str)[p:], tt.ext; s != g { - t.Errorf("%d: extensions were %q; want %q", i, s, g) - } - } -} - -func TestParseTag(t *testing.T) { - partChecks(t, func(tt *parseTest) (id Tag, skip bool) { - if strings.HasPrefix(tt.in, "x-") || tt.rewrite { - return Tag{}, true - } - scan := makeScannerString(tt.in) - id, end := parseTag(&scan) - id.str = string(scan.b[:end]) - tt.ext = "" - tt.extList = []string{} - return id, false - }) -} - -func TestParse(t *testing.T) { - partChecks(t, func(tt *parseTest) (id Tag, skip bool) { - id, err := Raw.Parse(tt.in) - ext := "" - if id.str != "" { - if strings.HasPrefix(id.str, "x-") { - ext = id.str - } else if int(id.pExt) < len(id.str) && id.pExt > 0 { - ext = id.str[id.pExt+1:] - } - } - if tag, _ := Raw.Parse(id.String()); tag.String() != id.String() { - t.Errorf("%d:%s: reparse was %q; want %q", tt.i, tt.in, id.String(), tag.String()) - } - if ext != tt.ext { - t.Errorf("%d:%s: ext was %q; want %q", tt.i, tt.in, ext, tt.ext) - } - changed := id.str != "" && !strings.HasPrefix(tt.in, id.str) - if changed != tt.changed { - t.Errorf("%d:%s: changed was %v; want %v", tt.i, tt.in, changed, tt.changed) - } - if (err != nil) != tt.invalid { - t.Errorf("%d:%s: invalid was %v; want %v. Error: %v", tt.i, tt.in, err != nil, tt.invalid, err) - } - return id, false - }) -} - -func TestErrors(t *testing.T) { - mkInvalid := func(s string) error { - return mkErrInvalid([]byte(s)) - } - tests := []struct { - in string - out error - }{ - // invalid subtags. - {"ac", mkInvalid("ac")}, - {"AC", mkInvalid("ac")}, - {"aa-Uuuu", mkInvalid("Uuuu")}, - {"aa-AB", mkInvalid("AB")}, - // ill-formed wins over invalid. - {"ac-u", errSyntax}, - {"ac-u-ca", errSyntax}, - {"ac-u-ca-co-pinyin", errSyntax}, - {"noob", errSyntax}, - } - for _, tt := range tests { - _, err := Parse(tt.in) - if err != tt.out { - t.Errorf("%s: was %q; want %q", tt.in, err, tt.out) - } - } -} - -func TestCompose1(t *testing.T) { - partChecks(t, func(tt *parseTest) (id Tag, skip bool) { - l, _ := ParseBase(tt.lang) - s, _ := ParseScript(tt.script) - r, _ := ParseRegion(tt.region) - v := []Variant{} - for _, x := range strings.Split(tt.variants, "-") { - p, _ := ParseVariant(x) - v = append(v, p) - } - e := []Extension{} - for _, x := range tt.extList { - p, _ := ParseExtension(x) - e = append(e, p) - } - id, _ = Raw.Compose(l, s, r, v, e) - return id, false - }) -} - -func TestCompose2(t *testing.T) { - partChecks(t, func(tt *parseTest) (id Tag, skip bool) { - l, _ := ParseBase(tt.lang) - s, _ := ParseScript(tt.script) - r, _ := ParseRegion(tt.region) - p := []interface{}{l, s, r, s, r, l} - for _, x := range strings.Split(tt.variants, "-") { - v, _ := ParseVariant(x) - p = append(p, v) - } - for _, x := range tt.extList { - e, _ := ParseExtension(x) - p = append(p, e) - } - id, _ = Raw.Compose(p...) - return id, false - }) -} - -func TestCompose3(t *testing.T) { - partChecks(t, func(tt *parseTest) (id Tag, skip bool) { - id, _ = Raw.Parse(tt.in) - id, _ = Raw.Compose(id) - return id, false - }) -} - -func mk(s string) Tag { - return Raw.Make(s) -} - -func TestParseAcceptLanguage(t *testing.T) { - type res struct { - t Tag - q float32 - } - en := []res{{mk("en"), 1.0}} - tests := []struct { - out []res - in string - ok bool - }{ - {en, "en", true}, - {en, " en", true}, - {en, "en ", true}, - {en, " en ", true}, - {en, "en,", true}, - {en, ",en", true}, - {en, ",,,en,,,", true}, - {en, ",en;q=1", true}, - - // We allow an empty input, contrary to spec. - {nil, "", true}, - {[]res{{mk("aa"), 1}}, "aa;", true}, // allow unspecified weight - - // errors - {nil, ";", false}, - {nil, "$", false}, - {nil, "e;", false}, - {nil, "x;", false}, - {nil, "x", false}, - {nil, "ac", false}, // non-existing language - {nil, "aa;q", false}, - {nil, "aa;q=", false}, - {nil, "aa;q=.", false}, - - // odd fallbacks - { - []res{{mk("en"), 0.1}}, - " english ;q=.1", - true, - }, - { - []res{{mk("it"), 1.0}, {mk("de"), 1.0}, {mk("fr"), 1.0}}, - " italian, deutsch, french", - true, - }, - - // lists - { - []res{{mk("en"), 0.1}}, - "en;q=.1", - true, - }, - { - []res{{mk("mul"), 1.0}}, - "*", - true, - }, - { - []res{{mk("en"), 1.0}, {mk("de"), 1.0}}, - "en,de", - true, - }, - { - []res{{mk("en"), 1.0}, {mk("de"), .5}}, - "en,de;q=0.5", - true, - }, - { - []res{{mk("de"), 0.8}, {mk("en"), 0.5}}, - " en ; q = 0.5 , , de;q=0.8", - true, - }, - { - []res{{mk("en"), 1.0}, {mk("de"), 1.0}, {mk("fr"), 1.0}, {mk("tlh"), 1.0}}, - "en,de,fr,i-klingon", - true, - }, - // sorting - { - []res{{mk("tlh"), 0.4}, {mk("de"), 0.2}, {mk("fr"), 0.2}, {mk("en"), 0.1}}, - "en;q=0.1,de;q=0.2,fr;q=0.2,i-klingon;q=0.4", - true, - }, - // dropping - { - []res{{mk("fr"), 0.2}, {mk("en"), 0.1}}, - "en;q=0.1,de;q=0,fr;q=0.2,i-klingon;q=0.0", - true, - }, - } - for i, tt := range tests { - tags, qs, e := ParseAcceptLanguage(tt.in) - if e == nil != tt.ok { - t.Errorf("%d:%s:err: was %v; want %v", i, tt.in, e == nil, tt.ok) - } - for j, tag := range tags { - if out := tt.out[j]; !tag.equalTags(out.t) || qs[j] != out.q { - t.Errorf("%d:%s: was %s, %1f; want %s, %1f", i, tt.in, tag, qs[j], out.t, out.q) - break - } - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/tables.go deleted file mode 100644 index f162ce62..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/tables.go +++ /dev/null @@ -1,2993 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package language - -import "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/tag" - -// CLDRVersion is the CLDR version from which the tables in this package are derived. -const CLDRVersion = "27.0.1" - -const numLanguages = 8632 - -const numScripts = 223 - -const numRegions = 354 - -type fromTo struct { - from uint16 - to uint16 -} - -const nonCanonicalUnd = 634 -const ( - _af = 10 - _am = 16 - _ar = 20 - _az = 34 - _bg = 54 - _bn = 72 - _ca = 94 - _cs = 118 - _da = 125 - _de = 130 - _el = 150 - _en = 151 - _es = 153 - _et = 155 - _fa = 160 - _fi = 164 - _fil = 165 - _fr = 170 - _gu = 205 - _he = 217 - _hi = 218 - _hr = 230 - _hu = 234 - _hy = 235 - _id = 240 - _is = 250 - _it = 251 - _ja = 255 - _ka = 264 - _kk = 294 - _km = 298 - _kn = 300 - _ko = 301 - _ky = 324 - _lo = 348 - _lt = 352 - _lv = 359 - _mk = 387 - _ml = 388 - _mn = 389 - _mo = 392 - _mr = 396 - _ms = 400 - _mul = 404 - _my = 411 - _nb = 420 - _ne = 426 - _nl = 435 - _no = 439 - _pa = 460 - _pl = 476 - _pt = 484 - _ro = 504 - _ru = 508 - _sh = 537 - _si = 540 - _sk = 542 - _sl = 544 - _sq = 557 - _sr = 558 - _sv = 570 - _sw = 571 - _ta = 579 - _te = 586 - _th = 591 - _tl = 602 - _tn = 605 - _tr = 609 - _uk = 631 - _ur = 637 - _uz = 638 - _vi = 643 - _zh = 690 - _zu = 692 - _jbo = 6819 - _ami = 1015 - _bnn = 1722 - _hak = 214 - _tlh = 13832 - _lb = 331 - _nv = 448 - _pwn = 11420 - _tao = 13553 - _tay = 13563 - _tsu = 14027 - _nn = 437 - _sfb = 12994 - _vgt = 15066 - _sgg = 13025 - _cmn = 2372 - _nan = 417 - _hsn = 232 -) - -const langPrivateStart = 0x2cf7 - -const langPrivateEnd = 0x2efe - -// lang holds an alphabetically sorted list of ISO-639 language identifiers. -// All entries are 4 bytes. The index of the identifier (divided by 4) is the language tag. -// For 2-byte language identifiers, the two successive bytes have the following meaning: -// - if the first letter of the 2- and 3-letter ISO codes are the same: -// the second and third letter of the 3-letter ISO code. -// - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3. -// For 3-byte language identifiers the 4th byte is 0. -// Size: 2784 bytes -var lang tag.Index = "" + - "---\x00aaarabbkabr\x00ace\x00ach\x00ada\x00ady\x00aeveaeb\x00affragq\x00" + - "akkaakk\x00aln\x00alt\x00ammhamo\x00anrgaoz\x00arraarc\x00arn\x00aro\x00" + - "arq\x00ary\x00arz\x00assmasa\x00ast\x00atj\x00avvaawa\x00ayymazzeazb\x00" + - "baakbal\x00ban\x00bap\x00bar\x00bas\x00bax\x00bbc\x00bbj\x00bci\x00beelb" + - "em\x00bew\x00bez\x00bfd\x00bfq\x00bft\x00bfy\x00bgulbgc\x00bgx\x00bhihbh" + - "b\x00bhi\x00bhk\x00bho\x00biisbik\x00bin\x00bjj\x00bjn\x00bkm\x00bku\x00" + - "blt\x00bmambmq\x00bnenboodbpy\x00bqi\x00bqv\x00brrebra\x00brh\x00brx\x00" + - "bsosbsq\x00bss\x00bto\x00btv\x00bua\x00buc\x00bug\x00bum\x00bvb\x00byn" + - "\x00byv\x00bze\x00caatcch\x00ccp\x00ceheceb\x00cgg\x00chhachk\x00chm\x00" + - "cho\x00chp\x00chr\x00cja\x00cjm\x00ckb\x00cooscop\x00cps\x00crrecrj\x00c" + - "rk\x00crl\x00crm\x00crs\x00csescsb\x00csw\x00ctd\x00cuhucvhvcyymdaandak" + - "\x00dar\x00dav\x00dcc\x00deeuden\x00dgr\x00dje\x00dnj\x00doi\x00dsb\x00d" + - "tm\x00dtp\x00dua\x00dvivdyo\x00dyu\x00dzzoebu\x00eeweefi\x00egl\x00egy" + - "\x00eky\x00elllenngeopoes\x00\x05esu\x00etstett\x00euusewo\x00ext\x00faa" + - "sfan\x00ffulffm\x00fiinfil\x00fit\x00fjijfoaofon\x00frrafrc\x00frp\x00fr" + - "r\x00frs\x00fud\x00fuq\x00fur\x00fuv\x00fyrygalegaa\x00gag\x00gan\x00gay" + - "\x00gbm\x00gbz\x00gcr\x00gdlagez\x00ggn\x00gil\x00gjk\x00gju\x00gllgglk" + - "\x00gnrngom\x00gon\x00gor\x00gos\x00got\x00grc\x00grt\x00gsw\x00guujgub" + - "\x00guc\x00gur\x00guz\x00gvlvgvr\x00gwi\x00haauhak\x00haw\x00haz\x00heeb" + - "hiinhif\x00hil\x00hmd\x00hnd\x00hne\x00hnj\x00hnn\x00hno\x00homohoc\x00h" + - "oj\x00hrrvhsb\x00hsn\x00htathuunhyyehzerianaiba\x00ibb\x00idndieleigboii" + - "iiikpkikt\x00ilo\x00inndinh\x00iodoisslittaiukuiw\x00\x03izh\x00japnjam" + - "\x00jgo\x00ji\x00\x06jmc\x00jml\x00jut\x00jvavjwavkaatkaa\x00kab\x00kac" + - "\x00kaj\x00kam\x00kao\x00kbd\x00kcg\x00kck\x00kde\x00kdt\x00kea\x00ken" + - "\x00kfo\x00kfr\x00kfy\x00kgonkge\x00kgp\x00kha\x00khb\x00khn\x00khq\x00k" + - "ht\x00khw\x00kiikkiu\x00kjuakjg\x00kkazkkj\x00klalkln\x00kmhmkmb\x00knan" + - "koorkoi\x00kok\x00kos\x00kpe\x00kraukrc\x00kri\x00krj\x00krl\x00kru\x00k" + - "sasksb\x00ksf\x00ksh\x00kuurkum\x00kvomkvr\x00kvx\x00kw\x00\x01kxm\x00kx" + - "p\x00kyirlaatlab\x00lad\x00lag\x00lah\x00laj\x00lbtzlbe\x00lbw\x00lcp" + - "\x00lep\x00lez\x00lgugliimlif\x00lij\x00lis\x00ljp\x00lki\x00lkt\x00lmn" + - "\x00lmo\x00lninloaolol\x00loz\x00lrc\x00ltitltg\x00luublua\x00luo\x00luy" + - "\x00luz\x00lvavlwl\x00lzh\x00lzz\x00mad\x00maf\x00mag\x00mai\x00mak\x00m" + - "an\x00mas\x00maz\x00mdf\x00mdh\x00mdr\x00men\x00mer\x00mfa\x00mfe\x00mgl" + - "gmgh\x00mgo\x00mgp\x00mgy\x00mhahmirimin\x00mis\x00mkkdmlalmnonmni\x00mn" + - "w\x00moolmoe\x00moh\x00mos\x00mrarmrd\x00mrj\x00mru\x00mssamtltmtr\x00mu" + - "a\x00mul\x00mus\x00mvy\x00mwk\x00mwr\x00mwv\x00mxc\x00myyamyv\x00myx\x00" + - "myz\x00mzn\x00naaunan\x00nap\x00naq\x00nbobnch\x00nci\x00nddendc\x00nds" + - "\x00neepnew\x00ngdongl\x00nhe\x00nhw\x00nij\x00niu\x00njo\x00nlldnmg\x00" + - "nnnonnh\x00noornod\x00noe\x00non\x00nqo\x00nrblnsk\x00nso\x00nus\x00nvav" + - "nxq\x00nyyanym\x00nyn\x00nzi\x00occiojjiomrmorriosssotk\x00paanpag\x00pa" + - "l\x00pam\x00pap\x00pau\x00pcd\x00pcm\x00pdc\x00pdt\x00peo\x00pfl\x00phn" + - "\x00pilipka\x00pko\x00plolpms\x00pnt\x00pon\x00pra\x00prd\x00prg\x00psus" + - "ptorpuu\x00quuequc\x00qug\x00raj\x00rcf\x00rej\x00rgn\x00ria\x00rif\x00r" + - "js\x00rkt\x00rmohrmf\x00rmo\x00rmt\x00rmu\x00rnunrng\x00roonrob\x00rof" + - "\x00rtm\x00ruusrue\x00rug\x00rw\x00\x04rwk\x00ryu\x00saansaf\x00sah\x00s" + - "aq\x00sas\x00sat\x00saz\x00sbp\x00scrdsck\x00scn\x00sco\x00scs\x00sdndsd" + - "c\x00semesef\x00seh\x00sei\x00ses\x00sgagsga\x00sgs\x00sh\x00\x02shi\x00" + - "shn\x00siinsid\x00sklkskr\x00sllvsli\x00sly\x00smmosma\x00smj\x00smn\x00" + - "smp\x00sms\x00snnasnk\x00soomsou\x00sqqisrrpsrb\x00srn\x00srr\x00srx\x00" + - "ssswssy\x00stotstq\x00suunsuk\x00sus\x00svweswwaswb\x00swc\x00swv\x00sxn" + - "\x00syl\x00syr\x00szl\x00taamtaj\x00tbw\x00tcy\x00tdd\x00tdg\x00tdh\x00t" + - "eeltem\x00teo\x00tet\x00tggkthhathl\x00thq\x00thr\x00tiirtig\x00tiv\x00t" + - "kuktkl\x00tkr\x00tkt\x00tlgltly\x00tmh\x00tnsntoontog\x00tpi\x00trurtru" + - "\x00trv\x00tssotsd\x00tsf\x00tsg\x00tsj\x00ttatttj\x00tts\x00ttt\x00tum" + - "\x00tvl\x00twwitwq\x00tyahtyv\x00tzm\x00udm\x00ugiguga\x00ukkruli\x00umb" + - "\x00und\x00unr\x00unx\x00urrduzzbvai\x00veenvec\x00vep\x00viievic\x00vls" + - "\x00vmf\x00vmw\x00voolvot\x00vro\x00vun\x00walnwae\x00wal\x00war\x00wbp" + - "\x00wbq\x00wbr\x00wls\x00woolwtm\x00wuu\x00xav\x00xcr\x00xhhoxlc\x00xld" + - "\x00xmf\x00xmn\x00xmr\x00xna\x00xnr\x00xog\x00xpr\x00xsa\x00xsr\x00yao" + - "\x00yap\x00yav\x00ybb\x00yiidyooryrl\x00yua\x00zahazbl\x00zdj\x00zea\x00" + - "zgh\x00zhhozmi\x00zuulzxx\x00zza\x00\xff\xff\xff\xff" - -const langNoIndexOffset = 695 - -// langNoIndex is a bit vector of all 3-letter language codes that are not used as an index -// in lookup tables. The language ids for these language codes are derived directly -// from the letters and are not consecutive. -// Size: 2197 bytes, 2197 elements -var langNoIndex = [2197]uint8{ - // Entry 0 - 3F - 0xff, 0xfd, 0xfd, 0xfe, 0xef, 0xf7, 0xbf, 0xd2, - 0xfb, 0xbf, 0xfe, 0xfa, 0xb7, 0x1d, 0x3c, 0x57, - 0x6f, 0x97, 0x73, 0xf8, 0xff, 0xef, 0xff, 0x70, - 0xbf, 0x03, 0xff, 0xff, 0xcf, 0x05, 0x85, 0x62, - 0xe9, 0xbf, 0xfd, 0xff, 0xff, 0xf7, 0xfd, 0x77, - 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, - 0xc9, 0xff, 0xff, 0xff, 0x4d, 0xb8, 0x0a, 0x6a, - 0x7e, 0xfa, 0xe3, 0xff, 0x7e, 0xff, 0x77, 0xff, - // Entry 40 - 7F - 0xff, 0xff, 0xff, 0xdf, 0x2b, 0xf4, 0xf1, 0xe0, - 0x5d, 0xe7, 0x9f, 0x14, 0x07, 0x20, 0xdf, 0xed, - 0x9f, 0x37, 0xc9, 0x21, 0xf8, 0x3f, 0x94, 0xf7, - 0x7e, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, - 0xff, 0xff, 0x7f, 0xfc, 0xdb, 0xfd, 0xbf, 0xb5, - 0x7b, 0xff, 0x7f, 0xf7, 0xeb, 0xfe, 0xff, 0xa7, - 0xbd, 0xff, 0x7f, 0xf7, 0xff, 0xef, 0xef, 0xef, - 0xff, 0xff, 0x9f, 0xff, 0xff, 0xef, 0xff, 0xdf, - // Entry 80 - BF - 0xff, 0xff, 0xf3, 0xff, 0xfb, 0x2f, 0xff, 0xff, - 0xfb, 0xee, 0xff, 0xbd, 0xdb, 0xff, 0xdf, 0xf7, - 0xff, 0xfa, 0xfd, 0xff, 0x7e, 0xaf, 0x7b, 0xfe, - 0x7f, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xdf, 0xff, - 0xff, 0xdf, 0xfb, 0xff, 0xfd, 0xfc, 0xfb, 0xff, - 0xff, 0xff, 0xff, 0xf7, 0x7f, 0xbf, 0xfd, 0xd5, - 0xa5, 0x77, 0x40, 0xff, 0x9c, 0xc1, 0x41, 0x2c, - 0x08, 0x24, 0x41, 0x00, 0x50, 0x40, 0x00, 0x80, - // Entry C0 - FF - 0xfb, 0x4a, 0xf2, 0x9f, 0xb4, 0x42, 0x41, 0x96, - 0x9b, 0x14, 0x88, 0xf6, 0x7b, 0xe7, 0x17, 0x56, - 0x55, 0x7d, 0x0e, 0x1c, 0x37, 0x71, 0xf3, 0xef, - 0x97, 0xff, 0x5d, 0x38, 0x64, 0x08, 0x00, 0x10, - 0xbc, 0x87, 0xaf, 0xdf, 0xff, 0xf7, 0x73, 0x35, - 0x3e, 0x87, 0xc7, 0xdf, 0xff, 0x00, 0x81, 0x00, - 0xb0, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x40, 0x00, 0x40, 0x92, 0x21, 0xd0, 0xbf, 0x5d, - // Entry 100 - 13F - 0xfd, 0xde, 0xfe, 0x5e, 0x00, 0x00, 0x02, 0x64, - 0x8d, 0x19, 0xc1, 0xdf, 0x79, 0x22, 0x00, 0x00, - 0x00, 0xdf, 0x6d, 0xdc, 0x26, 0xe5, 0xd9, 0xf3, - 0xfe, 0xff, 0xfd, 0xcb, 0x9f, 0x14, 0x01, 0x0c, - 0x86, 0x00, 0xd1, 0x00, 0xf0, 0xc5, 0x67, 0x5f, - 0x56, 0x89, 0x5e, 0xb7, 0xec, 0xef, 0x03, 0x00, - 0x02, 0x00, 0x00, 0x00, 0xc0, 0x77, 0xda, 0x57, - 0x90, 0x69, 0x01, 0x2c, 0x16, 0x79, 0xe4, 0xff, - // Entry 140 - 17F - 0xff, 0x7f, 0x00, 0x00, 0x00, 0x01, 0x08, 0x46, - 0x00, 0x00, 0x00, 0xb0, 0x14, 0x03, 0x50, 0x16, - 0x0a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x09, - 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x00, 0x44, 0x00, 0x00, 0x10, 0x00, 0x04, - 0x08, 0x00, 0x00, 0x04, 0x00, 0x80, 0x28, 0x04, - 0x00, 0x00, 0x50, 0xd5, 0x2d, 0x00, 0x64, 0x35, - 0x24, 0x53, 0xf5, 0xd4, 0xbd, 0xe2, 0xcd, 0x03, - // Entry 180 - 1BF - 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x17, 0x39, 0x01, 0xd9, 0x57, 0x98, - 0x21, 0x98, 0xa5, 0x00, 0x00, 0x01, 0x40, 0x82, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x40, 0x00, 0x44, 0x00, 0x00, 0xb0, 0xfe, - 0xa9, 0x39, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x40, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - // Entry 1C0 - 1FF - 0x10, 0x01, 0x28, 0x05, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x20, 0x04, 0xa6, 0x08, 0x04, 0x00, 0x08, - 0x01, 0x50, 0x00, 0x00, 0x08, 0x11, 0x86, 0x40, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x06, 0x55, - 0x02, 0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x60, - 0x3b, 0x83, 0x11, 0x00, 0x80, 0x00, 0x11, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xbe, 0xdf, 0xff, 0xfe, 0xbf, - // Entry 200 - 23F - 0xdf, 0xc7, 0x83, 0x82, 0xc0, 0xff, 0xdf, 0x27, - 0xcf, 0x5f, 0xe7, 0x01, 0x10, 0x20, 0xb2, 0xc5, - 0xa4, 0x45, 0x25, 0x9b, 0x03, 0xcf, 0xf0, 0xdf, - 0x03, 0xc4, 0x00, 0x10, 0x01, 0x0e, 0x01, 0xe3, - 0x92, 0x54, 0xdb, 0x38, 0xf1, 0x7f, 0xf7, 0x6d, - 0xf9, 0xff, 0x1c, 0x7d, 0x04, 0x08, 0x00, 0x01, - 0x21, 0x12, 0x6c, 0x5f, 0xdd, 0x0f, 0x85, 0x4f, - 0x40, 0x40, 0x00, 0x04, 0xf9, 0xfd, 0xfd, 0xd4, - // Entry 240 - 27F - 0xe8, 0x13, 0xf4, 0x27, 0xa3, 0x0d, 0x00, 0x00, - 0x20, 0x7b, 0x39, 0x02, 0x05, 0x84, 0x00, 0xf0, - 0xbf, 0x7f, 0xda, 0x00, 0x18, 0x04, 0x81, 0x00, - 0x00, 0x00, 0x80, 0x10, 0x94, 0x1c, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x00, 0x04, - 0x08, 0xb4, 0x7c, 0xa5, 0x0c, 0x40, 0x00, 0x00, - 0x11, 0x04, 0x04, 0x6c, 0x00, 0x60, 0x70, 0xff, - 0xfb, 0x7f, 0x60, 0x00, 0x05, 0x9b, 0xdd, 0x6e, - // Entry 280 - 2BF - 0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x05, - 0xb5, 0xb6, 0x80, 0x08, 0x04, 0x00, 0x04, 0x51, - 0xe2, 0xff, 0xfd, 0x3f, 0x05, 0x09, 0x08, 0x05, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x02, 0x60, - 0xe5, 0x48, 0x14, 0x89, 0x20, 0xc0, 0x47, 0x80, - 0x07, 0x00, 0x00, 0x00, 0xcc, 0x50, 0x40, 0x24, - 0x85, 0x47, 0x84, 0x40, 0x20, 0x10, 0x00, 0x20, - // Entry 2C0 - 2FF - 0x02, 0x50, 0x88, 0x11, 0x00, 0xd1, 0x6c, 0xee, - 0x50, 0x03, 0x1d, 0x11, 0x69, 0x06, 0x59, 0xe9, - 0x33, 0x08, 0x00, 0x20, 0x05, 0x40, 0x10, 0x00, - 0x00, 0x00, 0x50, 0x44, 0x96, 0x49, 0xd6, 0x5d, - 0xa7, 0x81, 0x45, 0x97, 0xfb, 0x00, 0x10, 0x00, - 0x08, 0x00, 0x80, 0x00, 0x40, 0x45, 0x00, 0x01, - 0x02, 0x00, 0x01, 0x40, 0x80, 0x00, 0x04, 0x08, - 0xf8, 0xeb, 0xf6, 0x39, 0xc4, 0x99, 0x16, 0x00, - // Entry 300 - 33F - 0x00, 0x0c, 0x04, 0x01, 0x20, 0x20, 0xdd, 0xa2, - 0x01, 0x00, 0x00, 0x00, 0x12, 0x04, 0x00, 0x00, - 0x04, 0x10, 0xf0, 0x9d, 0x95, 0x13, 0x04, 0x80, - 0x00, 0x00, 0xd0, 0x12, 0x40, 0x00, 0x10, 0xb0, - 0x10, 0x62, 0x4c, 0xd2, 0x02, 0x01, 0x0a, 0x00, - 0x46, 0x04, 0x00, 0x08, 0x02, 0x00, 0x20, 0xc0, - 0x00, 0x80, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0xf0, 0xd8, 0x6f, 0x15, 0x02, 0x08, 0x00, - // Entry 340 - 37F - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, - 0x00, 0x10, 0x00, 0x00, 0x00, 0xf8, 0x85, 0xe3, - 0xdd, 0xff, 0xff, 0xff, 0xbb, 0xff, 0x7f, 0xfb, - 0xff, 0xfc, 0xfe, 0xdf, 0xff, 0xff, 0xff, 0xf6, - 0xfb, 0xfe, 0xf7, 0x1f, 0xff, 0xb3, 0xed, 0xff, - 0xdb, 0xed, 0xff, 0xfe, 0xff, 0xfe, 0xdf, 0xff, - 0xff, 0xff, 0xf7, 0xff, 0xfd, 0xff, 0xff, 0xff, - 0xfd, 0xff, 0xdf, 0xaf, 0x9c, 0xff, 0xfb, 0xff, - // Entry 380 - 3BF - 0xff, 0xff, 0xff, 0xff, 0xef, 0xd2, 0xbb, 0xdf, - 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xef, - 0xfd, 0xff, 0xff, 0xf7, 0xfd, 0xff, 0xff, 0xff, - 0xef, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x5f, 0xd3, 0x7b, 0xfd, 0xd9, 0xdf, 0xef, - 0xbc, 0x18, 0x05, 0x2c, 0xff, 0x07, 0xf0, 0xff, - 0xf7, 0x5f, 0x00, 0x08, 0x00, 0xc3, 0x3d, 0x1b, - 0x06, 0xe6, 0x72, 0xf0, 0xdd, 0x3c, 0x7f, 0x44, - // Entry 3C0 - 3FF - 0x02, 0x30, 0x9f, 0x7a, 0x16, 0xfd, 0xff, 0x57, - 0xf2, 0xff, 0x39, 0xff, 0xf2, 0x1e, 0x95, 0xf7, - 0xf7, 0xff, 0x45, 0x80, 0x01, 0x02, 0x00, 0x00, - 0x40, 0x54, 0x9f, 0x8a, 0xd9, 0xd9, 0x0e, 0x11, - 0x84, 0x51, 0xc0, 0xf3, 0xfb, 0x47, 0x00, 0x01, - 0x05, 0xd1, 0x50, 0x58, 0x00, 0x00, 0x00, 0x10, - 0x04, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x17, 0xd2, - 0xf9, 0xfd, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, - // Entry 400 - 43F - 0xd7, 0x6f, 0xff, 0xff, 0xdf, 0x7d, 0xbb, 0xff, - 0xff, 0xff, 0xf7, 0xf3, 0xef, 0xff, 0xff, 0xf7, - 0xff, 0xdf, 0xdb, 0x77, 0xff, 0xff, 0x7f, 0xff, - 0xff, 0xff, 0xef, 0xff, 0xbd, 0xff, 0xff, 0xfb, - 0xff, 0xfb, 0xff, 0xde, 0x76, 0xbd, 0xff, 0xf7, - 0xff, 0xff, 0xf7, 0xff, 0xff, 0xdf, 0xf3, 0xbf, - 0xef, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xde, - 0xf7, 0xbb, 0xef, 0xf7, 0xff, 0xfb, 0xbf, 0xdf, - // Entry 440 - 47F - 0xfd, 0xfe, 0xff, 0xff, 0xfe, 0xff, 0x5f, 0x7d, - 0x7f, 0xff, 0xff, 0xff, 0xe5, 0xfc, 0xff, 0xfd, - 0x7f, 0x7f, 0xfe, 0x9e, 0xae, 0xff, 0xee, 0xff, - 0x7f, 0xf7, 0x7b, 0x02, 0x82, 0x04, 0xff, 0xf7, - 0xff, 0xbf, 0xd7, 0xef, 0xfe, 0xdf, 0xf7, 0xfe, - 0xe2, 0x8e, 0xe7, 0xff, 0xf7, 0xff, 0x56, 0xbd, - 0xcd, 0xff, 0xfb, 0xff, 0xff, 0xdf, 0xef, 0xff, - 0xe5, 0xdf, 0x7d, 0x0f, 0xa7, 0x51, 0x04, 0x44, - // Entry 480 - 4BF - 0x13, 0xd0, 0x5d, 0xaf, 0xa6, 0xfd, 0xb9, 0xff, - 0x43, 0x5d, 0x5b, 0xff, 0xff, 0xbf, 0x3f, 0x20, - 0x14, 0x00, 0x57, 0x51, 0x82, 0x65, 0xf5, 0x49, - 0xe2, 0xff, 0xfc, 0xdf, 0x00, 0x05, 0xc5, 0x05, - 0x00, 0x22, 0x00, 0x74, 0x69, 0x10, 0x08, 0x04, - 0x41, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x51, 0x60, 0x05, 0x04, 0x01, 0x00, 0x00, - 0x06, 0x01, 0x20, 0x00, 0x18, 0x01, 0x92, 0xb1, - // Entry 4C0 - 4FF - 0xfd, 0x67, 0x4b, 0x06, 0x95, 0x02, 0x57, 0xed, - 0xfb, 0x4c, 0x9d, 0x7b, 0x83, 0x04, 0x62, 0x40, - 0x00, 0x15, 0x42, 0x00, 0x00, 0x00, 0x54, 0x83, - 0xf9, 0x5f, 0x10, 0x8c, 0xc9, 0x46, 0xde, 0xf7, - 0x13, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x10, 0x00, - 0x01, 0x40, 0x00, 0xf0, 0x5b, 0xf4, 0xbe, 0x7d, - 0xba, 0xcf, 0xf7, 0xaf, 0x42, 0x04, 0x84, 0x41, - // Entry 500 - 53F - 0xb0, 0xff, 0x79, 0x7a, 0x04, 0x00, 0x00, 0x49, - 0x2d, 0x14, 0x25, 0x77, 0xed, 0xf1, 0xbf, 0xef, - 0x3f, 0x00, 0x00, 0x02, 0xc6, 0xa0, 0x1e, 0xfc, - 0xbb, 0xff, 0xfd, 0xfb, 0xb7, 0xfd, 0xf5, 0xff, - 0xfd, 0xfc, 0xd5, 0xed, 0x47, 0xf4, 0x7f, 0x10, - 0x01, 0x01, 0x84, 0x6d, 0xff, 0xf7, 0xdd, 0xf9, - 0x5f, 0x05, 0x86, 0xef, 0xf5, 0x77, 0xbd, 0x3c, - 0x00, 0x00, 0x00, 0x43, 0x71, 0x42, 0x00, 0x40, - // Entry 540 - 57F - 0x00, 0x00, 0x01, 0x43, 0x19, 0x00, 0x08, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - // Entry 580 - 5BF - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xab, 0xbd, 0xe7, 0x57, 0xee, 0x13, 0x5d, - 0x09, 0xc1, 0x40, 0x21, 0xfa, 0x17, 0x01, 0x80, - 0x00, 0x00, 0x00, 0x00, 0xf0, 0xde, 0xff, 0xbf, - 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x30, 0x95, 0xe3, 0x10, 0x00, 0x00, 0x00, - 0x11, 0x04, 0x16, 0x00, 0x01, 0x02, 0x00, 0x81, - 0xa3, 0x01, 0x50, 0x00, 0x00, 0x83, 0x11, 0x40, - // Entry 5C0 - 5FF - 0x00, 0x00, 0x00, 0xf0, 0xdd, 0x7b, 0x7e, 0x02, - 0xaa, 0x10, 0x5d, 0xd8, 0x52, 0x00, 0x80, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x02, 0x02, - 0x09, 0x00, 0x10, 0x02, 0x10, 0x61, 0x5a, 0x9d, - 0x31, 0x00, 0x00, 0x00, 0x01, 0x50, 0x02, 0x20, - 0x00, 0x00, 0x01, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x00, 0x1f, 0xdf, 0xf2, 0xfd, 0xff, 0xfd, 0x3f, - 0x9f, 0x18, 0xcf, 0xbc, 0xbf, 0xaf, 0x5f, 0xfe, - // Entry 600 - 63F - 0x7b, 0x4b, 0x40, 0x10, 0xe1, 0xfd, 0xaf, 0xfd, - 0xb7, 0xf7, 0xff, 0xf3, 0xdf, 0xff, 0x6f, 0xf1, - 0x7b, 0xf1, 0x7f, 0xdf, 0x7f, 0xbf, 0xfe, 0xb7, - 0xee, 0x1d, 0xfb, 0xdb, 0xef, 0xdf, 0xff, 0xfd, - 0x7e, 0xbe, 0x57, 0xff, 0x6f, 0x81, 0x76, 0x1f, - 0xd4, 0x77, 0xf5, 0xfd, 0xff, 0xff, 0xeb, 0xfe, - 0xbf, 0x5f, 0x57, 0x1b, 0xeb, 0x5f, 0x50, 0x18, - 0x02, 0xfe, 0xff, 0x9d, 0x15, 0x97, 0x15, 0x0f, - // Entry 640 - 67F - 0x75, 0xc4, 0x7d, 0x81, 0x82, 0xf1, 0xd7, 0x7e, - 0xff, 0xff, 0xff, 0xef, 0xff, 0xfd, 0xdd, 0xde, - 0xbc, 0xfd, 0xf6, 0x5f, 0x7a, 0x1f, 0x40, 0x98, - 0x02, 0xff, 0xe3, 0xff, 0xf3, 0xd6, 0xf2, 0xff, - 0xfb, 0xdf, 0x7d, 0x50, 0x1e, 0x15, 0x7b, 0xb4, - 0xf5, 0xbe, 0xff, 0xff, 0xf3, 0xf7, 0xff, 0xf7, - 0x7f, 0xff, 0xff, 0xbe, 0xdb, 0xf7, 0xd7, 0xf9, - 0xef, 0x2f, 0x80, 0xbf, 0xc5, 0xff, 0xff, 0xf3, - // Entry 680 - 6BF - 0x97, 0x9d, 0xff, 0xff, 0xf7, 0xcf, 0xfd, 0xbf, - 0xde, 0x7f, 0x06, 0x1d, 0x57, 0xff, 0xf8, 0xda, - 0x5d, 0xcf, 0x7d, 0x16, 0xb9, 0xea, 0x69, 0xa0, - 0x1a, 0x20, 0x00, 0x30, 0x02, 0x04, 0x24, 0x48, - 0x04, 0x00, 0x00, 0x40, 0xd4, 0x02, 0x04, 0x00, - 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x01, 0x06, - 0x50, 0x00, 0x08, 0x00, 0x00, 0x00, 0x24, 0x00, - 0x04, 0x00, 0x10, 0x8c, 0x58, 0xd5, 0x0d, 0x0f, - // Entry 6C0 - 6FF - 0x14, 0x4d, 0xf1, 0x16, 0x44, 0xd1, 0x42, 0x08, - 0x40, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00, - 0x00, 0xdc, 0xff, 0xeb, 0x1f, 0x58, 0x08, 0x41, - 0x04, 0xa0, 0x04, 0x00, 0x30, 0x12, 0x40, 0x22, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x80, 0x10, 0x10, 0xaf, - 0x6f, 0x93, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x80, 0x25, 0x00, 0x00, - // Entry 700 - 73F - 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x80, 0x86, 0xc2, 0x02, 0x00, 0x00, 0x00, 0x01, - 0xdf, 0x18, 0x00, 0x00, 0x02, 0xf0, 0xfd, 0x79, - 0x3b, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, - 0x03, 0x00, 0x09, 0x20, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 740 - 77F - 0x00, 0x00, 0x00, 0xef, 0xf7, 0xfd, 0xcf, 0x7e, - 0xa0, 0x11, 0x10, 0x00, 0x00, 0x92, 0x01, 0x44, - 0xcd, 0xf9, 0x5e, 0x00, 0x01, 0x00, 0x30, 0x14, - 0x04, 0x55, 0x10, 0x01, 0x04, 0xf6, 0x3f, 0x7a, - 0x05, 0x04, 0x00, 0xb0, 0x80, 0x00, 0x55, 0x55, - 0x97, 0x7c, 0x9f, 0x71, 0xcc, 0x78, 0xd5, 0x43, - 0xf5, 0x57, 0x67, 0x14, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x2c, 0xf7, 0xdb, 0x1f, 0x50, 0x60, - // Entry 780 - 7BF - 0x03, 0x68, 0x01, 0x10, 0x8b, 0x38, 0xaa, 0x01, - 0x00, 0x00, 0x30, 0x00, 0x24, 0x44, 0x00, 0x00, - 0x10, 0x03, 0x11, 0x02, 0x01, 0x00, 0x00, 0xf0, - 0xb5, 0xff, 0xd5, 0xd7, 0xbc, 0x70, 0xd6, 0x78, - 0x78, 0x15, 0x50, 0x00, 0xa4, 0x84, 0xe9, 0x41, - 0x00, 0x00, 0x00, 0x6b, 0x39, 0x52, 0x74, 0x00, - 0xe8, 0x30, 0x90, 0x6a, 0x92, 0x00, 0x00, 0x02, - 0xff, 0xef, 0xff, 0x4f, 0x85, 0x53, 0xf4, 0xed, - // Entry 7C0 - 7FF - 0xdd, 0xbf, 0x72, 0x19, 0xc7, 0x0c, 0xf5, 0x42, - 0x54, 0xdd, 0x77, 0x14, 0x00, 0x80, 0xc0, 0x56, - 0xcc, 0x16, 0x9e, 0xfb, 0x35, 0x7d, 0xef, 0xff, - 0xbd, 0xa4, 0xaf, 0x01, 0x44, 0x18, 0x01, 0x5d, - 0x4e, 0x4a, 0x08, 0x50, 0x28, 0x30, 0xe0, 0x80, - 0x10, 0x20, 0x24, 0x00, 0xff, 0x3f, 0xdf, 0x67, - 0xfe, 0x01, 0x06, 0x88, 0x0a, 0x40, 0x16, 0x01, - 0x01, 0x15, 0x2b, 0x3e, 0x01, 0x00, 0x00, 0x10, - // Entry 800 - 83F - 0x90, 0x69, 0x45, 0x02, 0x02, 0x01, 0xe1, 0xbf, - 0xbf, 0x03, 0x00, 0x00, 0x10, 0xd4, 0xa7, 0xd1, - 0x54, 0x9e, 0x44, 0xdf, 0xfd, 0x8f, 0x66, 0xb3, - 0x55, 0x20, 0xd4, 0xc3, 0xd8, 0x30, 0x3d, 0x80, - 0x00, 0x00, 0x00, 0x4c, 0xd4, 0x10, 0xc5, 0x84, - 0x6e, 0x50, 0x00, 0x22, 0x50, 0x7e, 0xbf, 0xdb, - 0x07, 0x00, 0x20, 0x10, 0x84, 0xb2, 0x45, 0x10, - 0x06, 0x44, 0x00, 0x00, 0x12, 0x02, 0x11, 0x00, - // Entry 840 - 87F - 0xf0, 0xff, 0xfd, 0x3f, 0x05, 0x00, 0x12, 0x81, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x02, 0x28, - 0x84, 0x00, 0x33, 0xc0, 0x23, 0x24, 0x00, 0x00, - 0x00, 0xcb, 0xe4, 0x3a, 0x42, 0xc8, 0x14, 0xf1, - 0xef, 0xff, 0x7f, 0x16, 0x01, 0x01, 0x84, 0x50, - 0x07, 0xfc, 0xff, 0xff, 0x0f, 0x01, 0x00, 0x40, - 0x10, 0x38, 0x01, 0x01, 0x1c, 0x12, 0x40, 0xe1, - // Entry 880 - 8BF - 0x76, 0x16, 0x08, 0x03, 0x10, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24, - 0x0a, 0x00, 0x80, 0x00, 0x00, -} - -// altLangISO3 holds an alphabetically sorted list of 3-letter language code alternatives -// to 2-letter language codes that cannot be derived using the method described above. -// Each 3-letter code is followed by its 1-byte langID. -// Size: 32 bytes -var altLangISO3 tag.Index = "---\x00cor\x00hbs\x01heb\x02kin\x03spa\x04yid\x05\xff\xff\xff\xff" - -// altLangIndex is used to convert indexes in altLangISO3 to langIDs. -// Size: 12 bytes, 6 elements -var altLangIndex = [6]uint16{ - 0x0141, 0x0219, 0x00fd, 0x01ff, 0x0099, 0x0102, -} - -// langAliasMap maps langIDs to their suggested replacements. -// Size: 556 bytes, 139 elements -var langAliasMap = [139]fromTo{ - {from: 0xf7, to: 0xf0}, - {from: 0xfd, to: 0xd9}, - {from: 0x102, to: 0x2a9}, - {from: 0x107, to: 0x106}, - {from: 0x188, to: 0x1f8}, - {from: 0x1a4, to: 0x1b7}, - {from: 0x219, to: 0x22e}, - {from: 0x25a, to: 0xa5}, - {from: 0x266, to: 0x244}, - {from: 0x26f, to: 0xc}, - {from: 0x2c3, to: 0x2c9}, - {from: 0x314, to: 0x8f}, - {from: 0x3b5, to: 0x1c36}, - {from: 0x3d6, to: 0x22d}, - {from: 0x3e7, to: 0x22d}, - {from: 0x472, to: 0x14}, - {from: 0x47d, to: 0xeb}, - {from: 0x4c3, to: 0x1f26}, - {from: 0x538, to: 0x21}, - {from: 0x53e, to: 0x2720}, - {from: 0x54a, to: 0x22}, - {from: 0x56b, to: 0x9d}, - {from: 0x591, to: 0x25}, - {from: 0x59a, to: 0x3f}, - {from: 0x648, to: 0xc68}, - {from: 0x774, to: 0x19b}, - {from: 0x7bb, to: 0x165}, - {from: 0x7c2, to: 0x56}, - {from: 0x843, to: 0x30a7}, - {from: 0x8bd, to: 0x2b2}, - {from: 0x8fa, to: 0x23df}, - {from: 0x903, to: 0x948}, - {from: 0x920, to: 0x241}, - {from: 0x941, to: 0x3fae}, - {from: 0x944, to: 0x2b2}, - {from: 0xa3e, to: 0x70}, - {from: 0xa8d, to: 0x76}, - {from: 0xb4d, to: 0x87}, - {from: 0xb5c, to: 0x198}, - {from: 0xb7d, to: 0xb80}, - {from: 0xb83, to: 0x2b6}, - {from: 0xc64, to: 0x1ddf}, - {from: 0xc73, to: 0x2c1f}, - {from: 0xcbe, to: 0x1b3}, - {from: 0xe55, to: 0x9b}, - {from: 0xe89, to: 0x170}, - {from: 0xf25, to: 0xf4}, - {from: 0xffe, to: 0xc}, - {from: 0x11a9, to: 0xaa}, - {from: 0x11f5, to: 0xa2}, - {from: 0x12a4, to: 0xb20}, - {from: 0x12a8, to: 0x1c8}, - {from: 0x12b7, to: 0x144a}, - {from: 0x1305, to: 0x108}, - {from: 0x1308, to: 0x82}, - {from: 0x1328, to: 0x3a34}, - {from: 0x13ef, to: 0xc6}, - {from: 0x144d, to: 0x96}, - {from: 0x1485, to: 0x277d}, - {from: 0x149d, to: 0xc4}, - {from: 0x14ff, to: 0x12a9}, - {from: 0x158e, to: 0x153b}, - {from: 0x159b, to: 0x1678}, - {from: 0x160f, to: 0x232}, - {from: 0x16fe, to: 0x1a86}, - {from: 0x17f9, to: 0x2935}, - {from: 0x180f, to: 0xfa}, - {from: 0x18df, to: 0xfc}, - {from: 0x190b, to: 0x129a}, - {from: 0x1dc2, to: 0x1e62}, - {from: 0x1ddf, to: 0x185}, - {from: 0x1e68, to: 0x13c}, - {from: 0x1e73, to: 0x132}, - {from: 0x1e77, to: 0x119}, - {from: 0x1e7e, to: 0x12f}, - {from: 0x1e94, to: 0x1f70}, - {from: 0x1eba, to: 0x13e}, - {from: 0x1f6b, to: 0x4223}, - {from: 0x1f79, to: 0x3708}, - {from: 0x1fe7, to: 0x6af}, - {from: 0x209b, to: 0x2fab}, - {from: 0x2107, to: 0x30ea}, - {from: 0x21f7, to: 0x167}, - {from: 0x2269, to: 0x183}, - {from: 0x2275, to: 0x180}, - {from: 0x227f, to: 0x190}, - {from: 0x22d5, to: 0x8e0}, - {from: 0x232e, to: 0x66}, - {from: 0x23c3, to: 0x170}, - {from: 0x244e, to: 0x2439}, - {from: 0x247e, to: 0x1e9}, - {from: 0x24ac, to: 0x3a34}, - {from: 0x24ea, to: 0x2439}, - {from: 0x2674, to: 0x25bc}, - {from: 0x2699, to: 0x1aa}, - {from: 0x289f, to: 0x1c7}, - {from: 0x2981, to: 0x1c9}, - {from: 0x29c4, to: 0x3a34}, - {from: 0x2a81, to: 0x1e3}, - {from: 0x2a98, to: 0x31c}, - {from: 0x2acc, to: 0xa0}, - {from: 0x2acd, to: 0xa0}, - {from: 0x2b84, to: 0x17a}, - {from: 0x2b9f, to: 0x2b1a}, - {from: 0x2ba6, to: 0x149}, - {from: 0x2bea, to: 0x2007}, - {from: 0x2c74, to: 0x2c5c}, - {from: 0x2f18, to: 0x1e6}, - {from: 0x30eb, to: 0x3113}, - {from: 0x31af, to: 0x1f8}, - {from: 0x3273, to: 0x1655}, - {from: 0x336b, to: 0x21e}, - {from: 0x33dd, to: 0x129}, - {from: 0x33fb, to: 0x20a}, - {from: 0x3482, to: 0x23b}, - {from: 0x35b0, to: 0x2a20}, - {from: 0x35b4, to: 0x49}, - {from: 0x35b7, to: 0x2fad}, - {from: 0x35f1, to: 0x372b}, - {from: 0x3617, to: 0x3d45}, - {from: 0x363a, to: 0x2c1f}, - {from: 0x36e1, to: 0x25c}, - {from: 0x38d3, to: 0xb16}, - {from: 0x38fd, to: 0xe7f}, - {from: 0x3a1e, to: 0x27e}, - {from: 0x3d42, to: 0x7c}, - {from: 0x4043, to: 0x2f8}, - {from: 0x40fd, to: 0x131}, - {from: 0x4150, to: 0x3450}, - {from: 0x4152, to: 0x83}, - {from: 0x4234, to: 0x30a7}, - {from: 0x4268, to: 0x2a9}, - {from: 0x434f, to: 0x218e}, - {from: 0x4362, to: 0x2461}, - {from: 0x4395, to: 0x4633}, - {from: 0x4433, to: 0x4425}, - {from: 0x44c3, to: 0x44ca}, - {from: 0x469b, to: 0x190}, - {from: 0x472c, to: 0x2ad}, -} - -// Size: 139 bytes, 139 elements -var langAliasTypes = [139]langAliasType{ - // Entry 0 - 3F - 0, 0, 0, 0, 0, 1, 2, 2, 0, 1, 0, 0, 1, 2, 1, 1, - 2, 0, 1, 0, 1, 2, 1, 1, 0, 2, 1, 1, 0, 2, 0, 0, - 1, 0, 1, 1, 2, 1, 1, 1, 1, 0, 0, 2, 1, 1, 1, 1, - 2, 1, 0, 1, 1, 2, 2, 0, 1, 2, 0, 1, 1, 1, 1, 1, - // Entry 40 - 7F - 0, 0, 2, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, - 0, 0, 1, 2, 2, 2, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, - 1, 0, 1, 0, 2, 1, 1, 0, 1, 0, 0, 1, 1, 2, 0, 2, - 1, 1, 1, 0, 2, 0, 0, 0, 0, 1, 1, 0, 1, 2, 0, 1, - // Entry 80 - BF - 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, -} - -const ( - _Latn = 79 - _Hani = 48 - _Hans = 50 - _Hant = 51 - _Qaaa = 125 - _Qaai = 133 - _Qabx = 174 - _Zinh = 218 - _Zyyy = 222 - _Zzzz = 223 -) - -// script is an alphabetically sorted list of ISO 15924 codes. The index -// of the script in the string, divided by 4, is the internal scriptID. -// Size: 900 bytes -var script tag.Index = "" + - "----AdlmAfakAghbAhomArabAranArmiArmnAvstBaliBamuBassBatkBengBlisBopoBrah" + - "BraiBugiBuhdCakmCansCariChamCherCirtCoptCprtCyrlCyrsDevaDsrtDuplEgydEgyh" + - "EgypElbaEthiGeokGeorGlagGothGranGrekGujrGuruHangHaniHanoHansHantHatrHebr" + - "HiraHluwHmngHrktHungIndsItalJavaJpanJurcKaliKanaKharKhmrKhojKitlKitsKnda" + - "KoreKpelKthiLanaLaooLatfLatgLatnLepcLimbLinaLinbLisuLomaLyciLydiMahjMand" + - "ManiMarcMayaMendMercMeroMlymModiMongMoonMrooMteiMultMymrNarbNbatNkgbNkoo" + - "NshuOgamOlckOrkhOryaOsgeOsmaPalmPaucPermPhagPhliPhlpPhlvPhnxPlrdPrtiQaaa" + - "QaabQaacQaadQaaeQaafQaagQaahQaaiQaajQaakQaalQaamQaanQaaoQaapQaaqQaarQaas" + - "QaatQaauQaavQaawQaaxQaayQaazQabaQabbQabcQabdQabeQabfQabgQabhQabiQabjQabk" + - "QablQabmQabnQaboQabpQabqQabrQabsQabtQabuQabvQabwQabxRjngRoroRunrSamrSara" + - "SarbSaurSgnwShawShrdSiddSindSinhSoraSundSyloSyrcSyreSyrjSyrnTagbTakrTale" + - "TaluTamlTangTavtTeluTengTfngTglgThaaThaiTibtTirhUgarVaiiVispWaraWoleXpeo" + - "XsuxYiiiZinhZmthZsymZxxxZyyyZzzz\xff\xff\xff\xff" - -// suppressScript is an index from langID to the dominant script for that language, -// if it exists. If a script is given, it should be suppressed from the language tag. -// Size: 695 bytes, 695 elements -var suppressScript = [695]uint8{ - // Entry 0 - 3F - 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 40 - 7F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x4f, 0x4f, 0x00, 0x00, - // Entry 80 - BF - 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0xd0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x4f, - 0x4f, 0x4f, 0x00, 0x4f, 0x00, 0x4f, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x4f, - 0x4f, 0x00, 0x4f, 0x00, 0x00, 0x4f, 0x4f, 0x00, - 0x00, 0x00, 0x00, 0x4f, 0x4f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry C0 - FF - 0x00, 0x00, 0x4f, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x4f, 0x2d, 0x00, 0x00, - 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x35, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x4f, - 0x00, 0x4f, 0x4f, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, - 0x00, 0x00, 0x4f, 0x4f, 0x00, 0x35, 0x00, 0x3e, - // Entry 100 - 13F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, - 0x4f, 0x00, 0x43, 0x00, 0x47, 0x48, 0x00, 0x1f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 140 - 17F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x4f, 0x4c, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, - 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x4f, - // Entry 180 - 1BF - 0x00, 0x00, 0x00, 0x1d, 0x60, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x4f, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x4f, - 0x00, 0x4f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4f, 0x00, 0x4f, 0x00, 0x4f, 0x00, 0x4f, - 0x00, 0x00, 0x00, 0x6b, 0x4f, 0x00, 0x4f, 0x00, - // Entry 1C0 - 1FF - 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x4f, 0x70, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x05, 0x4f, 0x00, 0x4f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x4f, - // Entry 200 - 23F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x4f, 0x00, - 0x4f, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x4f, 0x00, 0x4f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x4f, 0x00, 0x4f, 0x00, 0x00, - 0x00, 0x00, 0x4f, 0x4f, 0x00, 0x00, 0x00, 0x00, - // Entry 240 - 27F - 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xca, 0x4f, 0x00, 0x00, 0x00, 0xcf, - 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x4f, - 0x00, 0x00, 0x4f, 0x00, 0x4f, 0x4f, 0x4f, 0x00, - 0x4f, 0x4f, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, - // Entry 280 - 2BF - 0x4f, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x35, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, -} - -const ( - _001 = 1 - _419 = 30 - _BR = 64 - _CA = 72 - _ES = 109 - _GB = 121 - _MD = 186 - _PT = 236 - _UK = 304 - _US = 306 - _ZZ = 354 - _XA = 320 - _XC = 322 - _XK = 330 -) - -// isoRegionOffset needs to be added to the index of regionISO to obtain the regionID -// for 2-letter ISO codes. (The first isoRegionOffset regionIDs are reserved for -// the UN.M49 codes used for groups.) -const isoRegionOffset = 31 - -// regionTypes defines the status of a region for various standards. -// Size: 355 bytes, 355 elements -var regionTypes = [355]uint8{ - // Entry 0 - 3F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - // Entry 40 - 7F - 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x04, 0x00, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, - 0x04, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x04, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x04, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - // Entry 80 - BF - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x00, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, - // Entry C0 - FF - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, - 0x06, 0x06, 0x00, 0x06, 0x04, 0x06, 0x06, 0x06, - 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, - 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - // Entry 100 - 13F - 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x02, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, - // Entry 140 - 17F - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x04, 0x06, 0x06, 0x04, 0x06, 0x06, - 0x04, 0x06, 0x05, -} - -// regionISO holds a list of alphabetically sorted 2-letter ISO region codes. -// Each 2-letter codes is followed by two bytes with the following meaning: -// - [A-Z}{2}: the first letter of the 2-letter code plus these two -// letters form the 3-letter ISO code. -// - 0, n: index into altRegionISO3. -// Size: 1300 bytes -var regionISO tag.Index = "" + - "AAAAACSCADNDAEREAFFGAGTGAIIAALLBAMRMANNTAOGOAQTAARRGASSMATUTAUUSAWBWAXLA" + - "AZZEBAIHBBRBBDGDBEELBFFABGGRBHHRBIDIBJENBLLMBMMUBNRNBOOLBQESBRRABSHSBTTN" + - "BUURBVVTBWWABYLRBZLZCAANCCCKCDODCFAFCGOGCHHECIIVCKOKCLHLCMMRCNHNCOOLCPPT" + - "CRRICS\x00\x00CTTECUUBCVPVCWUWCXXRCYYPCZZEDDDRDEEUDGGADJJIDKNKDMMADOOMDY" + - "HYDZZAEA ECCUEESTEGGYEHSHERRIESSPETTHEU\x00\x03FIINFJJIFKLKFMSMFOROFQ" + - "\x00\x18FRRAFXXXGAABGBBRGDRDGEEOGFUFGGGYGHHAGIIBGLRLGMMBGNINGPLPGQNQGRRC" + - "GS\x00\x06GTTMGUUMGWNBGYUYHKKGHMMDHNNDHRRVHTTIHUUNHVVOIC IDDNIERLILSRIM" + - "MNINNDIOOTIQRQIRRNISSLITTAJEEYJMAMJOORJPPNJTTNKEENKGGZKHHMKIIRKM\x00\x09" + - "KNNAKP\x00\x0cKRORKWWTKY\x00\x0fKZAZLAAOLBBNLCCALIIELKKALRBRLSSOLTTULUUX" + - "LVVALYBYMAARMCCOMDDAMENEMFAFMGDGMHHLMIIDMKKDMLLIMMMRMNNGMOACMPNPMQTQMRRT" + - "MSSRMTLTMUUSMVDVMWWIMXEXMYYSMZOZNAAMNCCLNEERNFFKNGGANHHBNIICNLLDNOORNPPL" + - "NQ\x00\x1eNRRUNTTZNUIUNZZLOMMNPAANPCCIPEERPFYFPGNGPHHLPKAKPLOLPM\x00\x12" + - "PNCNPRRIPSSEPTRTPUUSPWLWPYRYPZCZQAATQMMMQNNNQOOOQPPPQQQQQRRRQSSSQTTTQU" + - "\x00\x03QVVVQWWWQXXXQYYYQZZZREEURHHOROOURS\x00\x15RUUSRWWASAAUSBLBSCYCSD" + - "DNSEWESGGPSHHNSIVNSJJMSKVKSLLESMMRSNENSOOMSRURSSSDSTTPSUUNSVLVSXXMSYYRSZ" + - "WZTAAATCCATDCDTF\x00\x18TGGOTHHATJJKTKKLTLLSTMKMTNUNTOONTPMPTRURTTTOTVUV" + - "TWWNTZZAUAKRUGGAUK UMMIUSSAUYRYUZZBVAATVCCTVDDRVEENVGGBVIIRVNNMVUUTWFLF" + - "WKAKWSSMXAAAXBBBXCCCXDDDXEEEXFFFXGGGXHHHXIIIXJJJXKKKXLLLXMMMXNNNXOOOXPPP" + - "XQQQXRRRXSSSXTTTXUUUXVVVXWWWXXXXXYYYXZZZYDMDYEEMYT\x00\x1bYUUGZAAFZMMBZR" + - "ARZWWEZZZZ\xff\xff\xff\xff" - -// altRegionISO3 holds a list of 3-letter region codes that cannot be -// mapped to 2-letter codes using the default algorithm. This is a short list. -// Size: 33 bytes -var altRegionISO3 string = "SCGQUUSGSCOMPRKCYMSPMSRBATFMYTATN" - -// altRegionIDs holds a list of regionIDs the positions of which match those -// of the 3-letter ISO codes in altRegionISO3. -// Size: 22 bytes, 11 elements -var altRegionIDs = [11]uint16{ - 0x0056, 0x006f, 0x0086, 0x00a6, 0x00a8, 0x00ab, 0x00e8, 0x0103, - 0x011f, 0x015c, 0x00da, -} - -// Size: 80 bytes, 20 elements -var regionOldMap = [20]fromTo{ - {from: 0x43, to: 0xc2}, - {from: 0x57, to: 0xa5}, - {from: 0x5e, to: 0x5f}, - {from: 0x65, to: 0x3a}, - {from: 0x77, to: 0x76}, - {from: 0x91, to: 0x36}, - {from: 0xa1, to: 0x131}, - {from: 0xbf, to: 0x131}, - {from: 0xd5, to: 0x13c}, - {from: 0xda, to: 0x2a}, - {from: 0xed, to: 0x131}, - {from: 0xf0, to: 0xe0}, - {from: 0xfa, to: 0x6f}, - {from: 0x101, to: 0x161}, - {from: 0x128, to: 0x124}, - {from: 0x130, to: 0x79}, - {from: 0x137, to: 0x13b}, - {from: 0x13e, to: 0x131}, - {from: 0x15a, to: 0x15b}, - {from: 0x160, to: 0x4a}, -} - -// m49 maps regionIDs to UN.M49 codes. The first isoRegionOffset entries are -// codes indicating collections of regions. -// Size: 710 bytes, 355 elements -var m49 = [355]int16{ - // Entry 0 - 3F - 0, 1, 2, 3, 5, 9, 11, 13, - 14, 15, 17, 18, 19, 21, 29, 30, - 34, 35, 39, 53, 54, 57, 61, 142, - 143, 145, 150, 151, 154, 155, 419, 958, - 0, 20, 784, 4, 28, 660, 8, 51, - 530, 24, 10, 32, 16, 40, 36, 533, - 248, 31, 70, 52, 50, 56, 854, 100, - 48, 108, 204, 652, 60, 96, 68, 535, - // Entry 40 - 7F - 76, 44, 64, 104, 74, 72, 112, 84, - 124, 166, 180, 140, 178, 756, 384, 184, - 152, 120, 156, 170, 0, 188, 891, 296, - 192, 132, 531, 162, 196, 203, 278, 276, - 0, 262, 208, 212, 214, 204, 12, 0, - 218, 233, 818, 732, 232, 724, 231, 967, - 246, 242, 238, 583, 234, 0, 250, 249, - 266, 826, 308, 268, 254, 831, 288, 292, - // Entry 80 - BF - 304, 270, 324, 312, 226, 300, 239, 320, - 316, 624, 328, 344, 334, 340, 191, 332, - 348, 854, 0, 360, 372, 376, 833, 356, - 86, 368, 364, 352, 380, 832, 388, 400, - 392, 581, 404, 417, 116, 296, 174, 659, - 408, 410, 414, 136, 398, 418, 422, 662, - 438, 144, 430, 426, 440, 442, 428, 434, - 504, 492, 498, 499, 663, 450, 584, 581, - // Entry C0 - FF - 807, 466, 104, 496, 446, 580, 474, 478, - 500, 470, 480, 462, 454, 484, 458, 508, - 516, 540, 562, 574, 566, 548, 558, 528, - 578, 524, 10, 520, 536, 570, 554, 512, - 591, 0, 604, 258, 598, 608, 586, 616, - 666, 612, 630, 275, 620, 581, 585, 600, - 591, 634, 959, 960, 961, 962, 963, 964, - 965, 966, 967, 968, 969, 970, 971, 972, - // Entry 100 - 13F - 638, 716, 642, 688, 643, 646, 682, 90, - 690, 729, 752, 702, 654, 705, 744, 703, - 694, 674, 686, 706, 740, 728, 678, 810, - 222, 534, 760, 748, 0, 796, 148, 260, - 768, 764, 762, 772, 626, 795, 788, 776, - 626, 792, 780, 798, 158, 834, 804, 800, - 826, 581, 840, 858, 860, 336, 670, 704, - 862, 92, 850, 704, 548, 876, 581, 882, - // Entry 140 - 17F - 973, 974, 975, 976, 977, 978, 979, 980, - 981, 982, 983, 984, 985, 986, 987, 988, - 989, 990, 991, 992, 993, 994, 995, 996, - 997, 998, 720, 887, 175, 891, 710, 894, - 180, 716, 999, -} - -// m49Index gives indexes into fromM49 based on the three most significant bits -// of a 10-bit UN.M49 code. To search an UN.M49 code in fromM49, search in -// fromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]] -// for an entry where the first 7 bits match the 7 lsb of the UN.M49 code. -// The region code is stored in the 9 lsb of the indexed value. -// Size: 18 bytes, 9 elements -var m49Index = [9]int16{ - 0, 59, 107, 142, 180, 219, 258, 290, - 332, -} - -// fromM49 contains entries to map UN.M49 codes to regions. See m49Index for details. -// Size: 664 bytes, 332 elements -var fromM49 = [332]uint16{ - // Entry 0 - 3F - 0x0201, 0x0402, 0x0603, 0x0823, 0x0a04, 0x1026, 0x1205, 0x142a, - 0x1606, 0x1866, 0x1a07, 0x1c08, 0x1e09, 0x202c, 0x220a, 0x240b, - 0x260c, 0x2821, 0x2a0d, 0x3029, 0x3824, 0x3a0e, 0x3c0f, 0x3e31, - 0x402b, 0x4410, 0x4611, 0x482e, 0x4e12, 0x502d, 0x5841, 0x6038, - 0x6434, 0x6627, 0x6833, 0x6a13, 0x6c14, 0x7035, 0x7215, 0x783c, - 0x7a16, 0x8042, 0x883e, 0x8c32, 0x9045, 0x9444, 0x9840, 0xa847, - 0xac98, 0xb507, 0xb939, 0xc03d, 0xc837, 0xd0c2, 0xd839, 0xe046, - 0xe8a4, 0xf051, 0xf848, 0x0859, 0x10ab, 0x184b, 0x1c17, 0x1e18, - // Entry 40 - 7F - 0x20b1, 0x2219, 0x291e, 0x2c1a, 0x2e1b, 0x3050, 0x341c, 0x361d, - 0x3852, 0x3d2c, 0x445b, 0x4c49, 0x5453, 0x5ca6, 0x5f5c, 0x644c, - 0x684a, 0x704f, 0x7855, 0x7e8e, 0x8058, 0x885c, 0x965d, 0x983a, - 0xa062, 0xa863, 0xac64, 0xb468, 0xbd18, 0xc484, 0xcc6e, 0xce6e, - 0xd06c, 0xd269, 0xd474, 0xdc72, 0xde86, 0xe471, 0xec70, 0xf030, - 0xf277, 0xf476, 0xfc7c, 0x04e3, 0x091f, 0x0c61, 0x1478, 0x187b, - 0x1c81, 0x26eb, 0x285f, 0x2c5e, 0x305f, 0x407e, 0x487f, 0x50a5, - 0x5885, 0x6080, 0x687a, 0x7083, 0x7888, 0x8087, 0x8882, 0x908a, - // Entry 80 - BF - 0x988f, 0x9c8c, 0xa135, 0xa88d, 0xb08b, 0xb890, 0xc09b, 0xc897, - 0xd093, 0xd89a, 0xe099, 0xe894, 0xf095, 0xf89c, 0x004e, 0x089e, - 0x10a0, 0x1cac, 0x209f, 0x28a2, 0x30a8, 0x34a9, 0x3caa, 0x42a3, - 0x44ad, 0x461e, 0x4cae, 0x54b3, 0x58b6, 0x5cb2, 0x64b7, 0x6cb0, - 0x70b4, 0x74b5, 0x7cc4, 0x84bd, 0x8ccc, 0x94ce, 0x9ccb, 0xa4c1, - 0xacc9, 0xb4c6, 0xbcc7, 0xc0ca, 0xc8cd, 0xd8b9, 0xe0c3, 0xe4ba, - 0xe6bb, 0xe8c8, 0xf0b8, 0xf8cf, 0x00df, 0x08d0, 0x10db, 0x18d9, - 0x20d7, 0x2428, 0x265a, 0x2a2f, 0x2d19, 0x2e3f, 0x30dc, 0x38d1, - // Entry C0 - FF - 0x493c, 0x54de, 0x5cd6, 0x64d2, 0x6cd4, 0x74dd, 0x7cd3, 0x84d8, - 0x88c5, 0x8b31, 0x8e73, 0x90be, 0x92ee, 0x94e6, 0x9ee0, 0xace4, - 0xb0ef, 0xb8e2, 0xc0e5, 0xc8e9, 0xd0e7, 0xd8ec, 0xe089, 0xe524, - 0xecea, 0xf4f1, 0xfd00, 0x0502, 0x0704, 0x0d05, 0x183b, 0x1d0c, - 0x26a7, 0x2825, 0x2caf, 0x2ebc, 0x34e8, 0x3d36, 0x4511, 0x4d16, - 0x5506, 0x5d12, 0x6103, 0x6508, 0x6d10, 0x7d0b, 0x7f0f, 0x813b, - 0x830d, 0x8513, 0x8d5e, 0x9961, 0xa15a, 0xa86d, 0xb115, 0xb309, - 0xb86b, 0xc109, 0xc914, 0xd10e, 0xd91b, 0xe10a, 0xe84d, 0xf11a, - // Entry 100 - 13F - 0xf522, 0xf921, 0x0120, 0x0923, 0x1127, 0x192a, 0x2022, 0x2926, - 0x3129, 0x3725, 0x391d, 0x3d2b, 0x412f, 0x492e, 0x4ec0, 0x5517, - 0x646a, 0x7479, 0x7e7d, 0x809d, 0x8296, 0x852d, 0x9132, 0xa53a, - 0xac36, 0xb533, 0xb934, 0xbd38, 0xd93d, 0xe53f, 0xed5b, 0xef5b, - 0xf656, 0xfd5f, 0x7c1f, 0x7ef2, 0x80f3, 0x82f4, 0x84f5, 0x86f6, - 0x88f7, 0x8af8, 0x8cf9, 0x8e6f, 0x90fb, 0x92fc, 0x94fd, 0x96fe, - 0x98ff, 0x9b40, 0x9d41, 0x9f42, 0xa143, 0xa344, 0xa545, 0xa746, - 0xa947, 0xab48, 0xad49, 0xaf4a, 0xb14b, 0xb34c, 0xb54d, 0xb74e, - // Entry 140 - 17F - 0xb94f, 0xbb50, 0xbd51, 0xbf52, 0xc153, 0xc354, 0xc555, 0xc756, - 0xc957, 0xcb58, 0xcd59, 0xcf62, -} - -// Size: 1311 bytes -var variantIndex = map[string]uint8{ - "1606nict": 0x0, - "1694acad": 0x1, - "1901": 0x2, - "1959acad": 0x3, - "1994": 0x3f, - "1996": 0x4, - "alalc97": 0x41, - "aluku": 0x5, - "arevela": 0x6, - "arevmda": 0x7, - "baku1926": 0x8, - "balanka": 0x9, - "barla": 0xa, - "bauddha": 0xb, - "biscayan": 0xc, - "biske": 0x3a, - "bohoric": 0xd, - "boont": 0xe, - "dajnko": 0xf, - "ekavsk": 0x10, - "emodeng": 0x11, - "fonipa": 0x42, - "fonupa": 0x43, - "fonxsamp": 0x44, - "hepburn": 0x12, - "heploc": 0x40, - "hognorsk": 0x13, - "ijekavsk": 0x14, - "itihasa": 0x15, - "jauer": 0x16, - "jyutping": 0x17, - "kkcor": 0x18, - "kociewie": 0x19, - "kscor": 0x1a, - "laukika": 0x1b, - "lipaw": 0x3b, - "luna1918": 0x1c, - "metelko": 0x1d, - "monoton": 0x1e, - "ndyuka": 0x1f, - "nedis": 0x20, - "njiva": 0x3c, - "nulik": 0x21, - "osojs": 0x3d, - "oxendict": 0x22, - "pamaka": 0x23, - "petr1708": 0x24, - "pinyin": 0x25, - "polyton": 0x26, - "puter": 0x27, - "rigik": 0x28, - "rozaj": 0x29, - "rumgr": 0x2a, - "scotland": 0x2b, - "scouse": 0x2c, - "solba": 0x3e, - "sotav": 0x2d, - "surmiran": 0x2e, - "sursilv": 0x2f, - "sutsilv": 0x30, - "tarask": 0x31, - "uccor": 0x32, - "ucrcor": 0x33, - "ulster": 0x34, - "unifon": 0x35, - "vaidika": 0x36, - "valencia": 0x37, - "vallader": 0x38, - "wadegile": 0x39, -} - -// variantNumSpecialized is the number of specialized variants in variants. -const variantNumSpecialized = 65 - -// nRegionGroups is the number of region groups. -const nRegionGroups = 32 - -type likelyLangRegion struct { - lang uint16 - region uint16 -} - -// likelyScript is a lookup table, indexed by scriptID, for the most likely -// languages and regions given a script. -// Size: 900 bytes, 225 elements -var likelyScript = [225]likelyLangRegion{ - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x150, region: 0x104}, - {lang: 0x0, region: 0x0}, - {lang: 0x14, region: 0x6a}, - {lang: 0x0, region: 0x0}, - {lang: 0x15, region: 0x9a}, - {lang: 0xeb, region: 0x27}, - {lang: 0x8, region: 0x9a}, - {lang: 0x26, region: 0x93}, - {lang: 0x2a, region: 0x51}, - {lang: 0x52, region: 0xb2}, - {lang: 0x2b, region: 0x93}, - {lang: 0x48, region: 0x34}, - {lang: 0x0, region: 0x0}, - {lang: 0x2b2, region: 0x12c}, - {lang: 0x1da, region: 0x97}, - {lang: 0xaa, region: 0x76}, - {lang: 0x58, region: 0x93}, - {lang: 0x44, region: 0xe5}, - {lang: 0x60, region: 0x34}, - {lang: 0x70, region: 0x48}, - {lang: 0x298, region: 0x129}, - {lang: 0x6b, region: 0x13b}, - {lang: 0x69, region: 0x132}, - {lang: 0x0, region: 0x0}, - {lang: 0x6e, region: 0x6a}, - {lang: 0xca, region: 0x5c}, - {lang: 0x1fc, region: 0x104}, - {lang: 0x0, region: 0x0}, - {lang: 0xda, region: 0x97}, - {lang: 0x0, region: 0x0}, - {lang: 0xaa, region: 0x76}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x94, region: 0x6a}, - {lang: 0x22d, region: 0x26}, - {lang: 0x10, region: 0x6e}, - {lang: 0x0, region: 0x0}, - {lang: 0x108, region: 0x7b}, - {lang: 0x7a, region: 0x37}, - {lang: 0xc9, region: 0x12e}, - {lang: 0x202, region: 0x97}, - {lang: 0x96, region: 0x85}, - {lang: 0xcd, region: 0x97}, - {lang: 0x1cc, region: 0x97}, - {lang: 0x12d, region: 0xa9}, - {lang: 0x2b2, region: 0x52}, - {lang: 0xe1, region: 0xe5}, - {lang: 0x2b2, region: 0x52}, - {lang: 0x2b2, region: 0x12c}, - {lang: 0x0, region: 0x0}, - {lang: 0xd9, region: 0x95}, - {lang: 0xff, region: 0xa0}, - {lang: 0x0, region: 0x0}, - {lang: 0xe0, region: 0xad}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x9c, region: 0x9c}, - {lang: 0x106, region: 0x93}, - {lang: 0xff, region: 0xa0}, - {lang: 0x0, region: 0x0}, - {lang: 0x95, region: 0xc2}, - {lang: 0xff, region: 0xa0}, - {lang: 0x1e0, region: 0xe6}, - {lang: 0x12a, region: 0xa4}, - {lang: 0x20f, region: 0x97}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x12c, region: 0x97}, - {lang: 0x12d, region: 0xa9}, - {lang: 0x0, region: 0x0}, - {lang: 0x39, region: 0x97}, - {lang: 0x1b8, region: 0x121}, - {lang: 0x15c, region: 0xad}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x14f, region: 0x97}, - {lang: 0x153, region: 0x97}, - {lang: 0x146, region: 0x85}, - {lang: 0xca, region: 0x85}, - {lang: 0x155, region: 0x52}, - {lang: 0x0, region: 0x0}, - {lang: 0x29a, region: 0x129}, - {lang: 0x29b, region: 0x129}, - {lang: 0xda, region: 0x97}, - {lang: 0x19e, region: 0x9a}, - {lang: 0x29d, region: 0x52}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x176, region: 0x110}, - {lang: 0x29e, region: 0x109}, - {lang: 0x29e, region: 0x109}, - {lang: 0x184, region: 0x97}, - {lang: 0x18c, region: 0x97}, - {lang: 0x185, region: 0x52}, - {lang: 0x0, region: 0x0}, - {lang: 0x18f, region: 0x34}, - {lang: 0x186, region: 0x97}, - {lang: 0x0, region: 0x0}, - {lang: 0x19b, region: 0xc2}, - {lang: 0x29f, region: 0x106}, - {lang: 0x15, region: 0x9f}, - {lang: 0x0, region: 0x0}, - {lang: 0x170, region: 0x82}, - {lang: 0x0, region: 0x0}, - {lang: 0x217, region: 0x94}, - {lang: 0x207, region: 0x97}, - {lang: 0x1cb, region: 0xc3}, - {lang: 0x1c9, region: 0x97}, - {lang: 0x0, region: 0x0}, - {lang: 0x22b, region: 0x113}, - {lang: 0x15, region: 0x11a}, - {lang: 0x79, region: 0xc2}, - {lang: 0x13e, region: 0x104}, - {lang: 0x169, region: 0x52}, - {lang: 0x1ce, region: 0x9a}, - {lang: 0x1ce, region: 0x52}, - {lang: 0x0, region: 0x0}, - {lang: 0x1d8, region: 0xae}, - {lang: 0xdd, region: 0x52}, - {lang: 0x2a2, region: 0x9a}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x1eb, region: 0x93}, - {lang: 0x0, region: 0x0}, - {lang: 0x1ba, region: 0x10a}, - {lang: 0x227, region: 0x95}, - {lang: 0x0, region: 0x0}, - {lang: 0x2a3, region: 0x15b}, - {lang: 0x208, region: 0x97}, - {lang: 0x0, region: 0x0}, - {lang: 0x97, region: 0x79}, - {lang: 0x202, region: 0x97}, - {lang: 0x202, region: 0x97}, - {lang: 0x20f, region: 0x97}, - {lang: 0x21c, region: 0xb1}, - {lang: 0x22f, region: 0x97}, - {lang: 0x237, region: 0x93}, - {lang: 0x240, region: 0x34}, - {lang: 0x241, region: 0x99}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x245, region: 0xe5}, - {lang: 0x87, region: 0x97}, - {lang: 0x247, region: 0x52}, - {lang: 0x11d, region: 0x52}, - {lang: 0x243, region: 0x97}, - {lang: 0x0, region: 0x0}, - {lang: 0x45, region: 0x13b}, - {lang: 0x24a, region: 0x97}, - {lang: 0x0, region: 0x0}, - {lang: 0x2b1, region: 0xb8}, - {lang: 0xa5, region: 0xe5}, - {lang: 0x8c, region: 0xcb}, - {lang: 0x24f, region: 0x121}, - {lang: 0x49, region: 0x52}, - {lang: 0x16e, region: 0x97}, - {lang: 0x276, region: 0x11a}, - {lang: 0x27f, region: 0xb2}, - {lang: 0x0, region: 0x0}, - {lang: 0xe4, region: 0x97}, - {lang: 0x0, region: 0x0}, - {lang: 0x1d6, region: 0x9a}, - {lang: 0xd, region: 0x99}, - {lang: 0xf3, region: 0x52}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, - {lang: 0x0, region: 0x0}, -} - -type likelyScriptRegion struct { - region uint16 - script uint8 - flags uint8 -} - -// likelyLang is a lookup table, indexed by langID, for the most likely -// scripts and regions given incomplete information. If more entries exist for a -// given language, region and script are the index and size respectively -// of the list in likelyLangList. -// Size: 2780 bytes, 695 elements -var likelyLang = [695]likelyScriptRegion{ - {region: 0x132, script: 0x4f, flags: 0x0}, - {region: 0x6e, script: 0x4f, flags: 0x0}, - {region: 0x7b, script: 0x1d, flags: 0x0}, - {region: 0x7e, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x12f, script: 0x4f, flags: 0x0}, - {region: 0x7e, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x9a, script: 0x9, flags: 0x0}, - {region: 0x126, script: 0x5, flags: 0x0}, - {region: 0x15e, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x7e, script: 0x4f, flags: 0x0}, - {region: 0x99, script: 0xd8, flags: 0x0}, - {region: 0x14a, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x6e, script: 0x26, flags: 0x0}, - {region: 0xd4, script: 0x4f, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x6a, script: 0x5, flags: 0x0}, - {region: 0x0, script: 0x3, flags: 0x1}, - {region: 0x50, script: 0x4f, flags: 0x0}, - {region: 0x3e, script: 0x4f, flags: 0x0}, - {region: 0x66, script: 0x5, flags: 0x0}, - {region: 0xb8, script: 0x5, flags: 0x0}, - {region: 0x6a, script: 0x5, flags: 0x0}, - {region: 0x97, script: 0xe, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0x6d, script: 0x4f, flags: 0x0}, - {region: 0x48, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x3e, script: 0x4f, flags: 0x0}, - {region: 0x3, script: 0x4, flags: 0x1}, - {region: 0x9a, script: 0x5, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0x2d, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0xb, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x4e, script: 0x4f, flags: 0x0}, - {region: 0x46, script: 0x1d, flags: 0x0}, - {region: 0x15f, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0xc7, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x37, script: 0x1d, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x129, script: 0x2c, flags: 0x0}, - {region: 0x97, script: 0x4a, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x13c, script: 0x4f, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0xd4, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x13b, script: 0xc9, flags: 0x0}, - {region: 0xc1, script: 0x4f, flags: 0x0}, - {region: 0xc1, script: 0x4f, flags: 0x0}, - {region: 0x34, script: 0xe, flags: 0x0}, - {region: 0x52, script: 0xd0, flags: 0x0}, - {region: 0x97, script: 0xe, flags: 0x0}, - {region: 0x9a, script: 0x5, flags: 0x0}, - {region: 0x4e, script: 0x4f, flags: 0x0}, - {region: 0x76, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x32, script: 0x4f, flags: 0x0}, - {region: 0xb2, script: 0xc, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0xe6, script: 0x1f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x15c, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x84, script: 0x4f, flags: 0x0}, - {region: 0x6c, script: 0x26, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0xc1, script: 0x4f, flags: 0x0}, - {region: 0x6d, script: 0x4f, flags: 0x0}, - {region: 0xd4, script: 0x4f, flags: 0x0}, - {region: 0x7, script: 0x2, flags: 0x1}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x12f, script: 0x4f, flags: 0x0}, - {region: 0x88, script: 0x4f, flags: 0x0}, - {region: 0x73, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x132, script: 0x4f, flags: 0x0}, - {region: 0x48, script: 0x4f, flags: 0x0}, - {region: 0x132, script: 0x19, flags: 0x0}, - {region: 0xa4, script: 0x5, flags: 0x0}, - {region: 0x13b, script: 0x18, flags: 0x0}, - {region: 0x99, script: 0x5, flags: 0x0}, - {region: 0x76, script: 0x4f, flags: 0x0}, - {region: 0x6a, script: 0x1b, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x48, script: 0x16, flags: 0x0}, - {region: 0x48, script: 0x16, flags: 0x0}, - {region: 0x48, script: 0x16, flags: 0x0}, - {region: 0x48, script: 0x16, flags: 0x0}, - {region: 0x48, script: 0x16, flags: 0x0}, - {region: 0x108, script: 0x4f, flags: 0x0}, - {region: 0x5d, script: 0x4f, flags: 0x0}, - {region: 0xe7, script: 0x4f, flags: 0x0}, - {region: 0x48, script: 0x16, flags: 0x0}, - {region: 0xc2, script: 0x74, flags: 0x0}, - {region: 0x9, script: 0x2, flags: 0x1}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x79, script: 0x4f, flags: 0x0}, - {region: 0x62, script: 0x4f, flags: 0x0}, - {region: 0x132, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0xa2, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x5, flags: 0x0}, - {region: 0x5f, script: 0x4f, flags: 0x0}, - {region: 0x48, script: 0x4f, flags: 0x0}, - {region: 0x48, script: 0x4f, flags: 0x0}, - {region: 0xd2, script: 0x4f, flags: 0x0}, - {region: 0x4e, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x5, flags: 0x0}, - {region: 0x5f, script: 0x4f, flags: 0x0}, - {region: 0xc1, script: 0x4f, flags: 0x0}, - {region: 0xce, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0xcb, script: 0xce, flags: 0x0}, - {region: 0x112, script: 0x4f, flags: 0x0}, - {region: 0x36, script: 0x4f, flags: 0x0}, - {region: 0x42, script: 0xd0, flags: 0x0}, - {region: 0xa2, script: 0x4f, flags: 0x0}, - {region: 0x7e, script: 0x4f, flags: 0x0}, - {region: 0xd4, script: 0x4f, flags: 0x0}, - {region: 0x9c, script: 0x4f, flags: 0x0}, - {region: 0x6a, script: 0x24, flags: 0x0}, - {region: 0xc2, script: 0x40, flags: 0x0}, - {region: 0x85, script: 0x2c, flags: 0x0}, - {region: 0xb, script: 0x2, flags: 0x1}, - {region: 0x1, script: 0x4f, flags: 0x0}, - {region: 0x6d, script: 0x4f, flags: 0x0}, - {region: 0x132, script: 0x4f, flags: 0x0}, - {region: 0x69, script: 0x4f, flags: 0x0}, - {region: 0x9c, script: 0x3c, flags: 0x0}, - {region: 0x6d, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x6d, script: 0x4f, flags: 0x0}, - {region: 0x9a, script: 0x5, flags: 0x0}, - {region: 0x84, script: 0x4f, flags: 0x0}, - {region: 0x112, script: 0x4f, flags: 0x0}, - {region: 0xc1, script: 0x4f, flags: 0x0}, - {region: 0x70, script: 0x4f, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x10a, script: 0x4f, flags: 0x0}, - {region: 0x71, script: 0x4f, flags: 0x0}, - {region: 0x74, script: 0x4f, flags: 0x0}, - {region: 0x3a, script: 0x4f, flags: 0x0}, - {region: 0x76, script: 0x4f, flags: 0x0}, - {region: 0x132, script: 0x4f, flags: 0x0}, - {region: 0x76, script: 0x4f, flags: 0x0}, - {region: 0x5f, script: 0x4f, flags: 0x0}, - {region: 0x5f, script: 0x4f, flags: 0x0}, - {region: 0x13d, script: 0x4f, flags: 0x0}, - {region: 0xd2, script: 0x4f, flags: 0x0}, - {region: 0x9c, script: 0x4f, flags: 0x0}, - {region: 0xd4, script: 0x4f, flags: 0x0}, - {region: 0xd7, script: 0x4f, flags: 0x0}, - {region: 0x94, script: 0x4f, flags: 0x0}, - {region: 0x7e, script: 0x4f, flags: 0x0}, - {region: 0xba, script: 0x4f, flags: 0x0}, - {region: 0x52, script: 0x32, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x9a, script: 0x5, flags: 0x0}, - {region: 0x7c, script: 0x4f, flags: 0x0}, - {region: 0x79, script: 0x4f, flags: 0x0}, - {region: 0x6e, script: 0x26, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0xa5, script: 0x4f, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0x6d, script: 0x4f, flags: 0x0}, - {region: 0x9a, script: 0x5, flags: 0x0}, - {region: 0xef, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x97, script: 0xca, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0xd7, script: 0x4f, flags: 0x0}, - {region: 0x12e, script: 0x2a, flags: 0x0}, - {region: 0xd, script: 0x2, flags: 0x1}, - {region: 0x97, script: 0xe, flags: 0x0}, - {region: 0x4d, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x2d, flags: 0x0}, - {region: 0x40, script: 0x4f, flags: 0x0}, - {region: 0x53, script: 0x4f, flags: 0x0}, - {region: 0x7e, script: 0x4f, flags: 0x0}, - {region: 0xa2, script: 0x4f, flags: 0x0}, - {region: 0x96, script: 0x4f, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0x48, script: 0x4f, flags: 0x0}, - {region: 0xf, script: 0x3, flags: 0x1}, - {region: 0x52, script: 0x32, flags: 0x0}, - {region: 0x132, script: 0x4f, flags: 0x0}, - {region: 0x23, script: 0x5, flags: 0x0}, - {region: 0x95, script: 0x35, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x71, script: 0x1f, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x52, script: 0x7b, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0xad, script: 0x38, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0xe4, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x8e, script: 0x4f, flags: 0x0}, - {region: 0x5f, script: 0x4f, flags: 0x0}, - {region: 0x52, script: 0x32, flags: 0x0}, - {region: 0x8f, script: 0x4f, flags: 0x0}, - {region: 0x90, script: 0x4f, flags: 0x0}, - {region: 0x27, script: 0x8, flags: 0x0}, - {region: 0xd0, script: 0x4f, flags: 0x0}, - {region: 0x76, script: 0x4f, flags: 0x0}, - {region: 0xce, script: 0x4f, flags: 0x0}, - {region: 0xd4, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0xd4, script: 0x4f, flags: 0x0}, - {region: 0x52, script: 0xd9, flags: 0x0}, - {region: 0x132, script: 0x4f, flags: 0x0}, - {region: 0x48, script: 0x4f, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0x9b, script: 0x4f, flags: 0x0}, - {region: 0x9c, script: 0x4f, flags: 0x0}, - {region: 0x48, script: 0x16, flags: 0x0}, - {region: 0x95, script: 0x35, flags: 0x0}, - {region: 0x104, script: 0x4f, flags: 0x0}, - {region: 0xa0, script: 0x3e, flags: 0x0}, - {region: 0x9e, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x12e, script: 0x35, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0x62, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x7b, script: 0x28, flags: 0x0}, - {region: 0x134, script: 0x1d, flags: 0x0}, - {region: 0x66, script: 0x4f, flags: 0x0}, - {region: 0xc2, script: 0x4f, flags: 0x0}, - {region: 0xd4, script: 0x4f, flags: 0x0}, - {region: 0xa2, script: 0x4f, flags: 0x0}, - {region: 0xc1, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0xd4, script: 0x4f, flags: 0x0}, - {region: 0x161, script: 0x4f, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0x121, script: 0xcf, flags: 0x0}, - {region: 0x59, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x4e, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x4a, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x40, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x4f, flags: 0x0}, - {region: 0x52, script: 0xc6, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0xc1, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x67, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0xa2, script: 0x4f, flags: 0x0}, - {region: 0x129, script: 0x4f, flags: 0x0}, - {region: 0xd0, script: 0x4f, flags: 0x0}, - {region: 0xad, script: 0x4c, flags: 0x0}, - {region: 0x12, script: 0x6, flags: 0x1}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x80, script: 0x4f, flags: 0x0}, - {region: 0xa2, script: 0x4f, flags: 0x0}, - {region: 0xa4, script: 0x43, flags: 0x0}, - {region: 0x29, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x47, flags: 0x0}, - {region: 0xa9, script: 0x48, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x73, script: 0x4f, flags: 0x0}, - {region: 0xb2, script: 0x4f, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x110, script: 0x4f, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x97, script: 0x5, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x5f, script: 0x4f, flags: 0x0}, - {region: 0x18, script: 0x3, flags: 0x1}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0x79, script: 0x4f, flags: 0x0}, - {region: 0x121, script: 0xcf, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0x1b, script: 0x5, flags: 0x1}, - {region: 0x135, script: 0x4f, flags: 0x0}, - {region: 0x85, script: 0x52, flags: 0x0}, - {region: 0x95, script: 0x35, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0x12f, script: 0x4f, flags: 0x0}, - {region: 0xb5, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x52, script: 0xcf, flags: 0x0}, - {region: 0x97, script: 0x50, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x12f, script: 0x4f, flags: 0x0}, - {region: 0xd7, script: 0x4f, flags: 0x0}, - {region: 0x20, script: 0x2, flags: 0x1}, - {region: 0x9c, script: 0x4f, flags: 0x0}, - {region: 0x52, script: 0x54, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x9a, script: 0x5, flags: 0x0}, - {region: 0x132, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0xca, flags: 0x0}, - {region: 0x9c, script: 0x4f, flags: 0x0}, - {region: 0x4a, script: 0x4f, flags: 0x0}, - {region: 0xad, script: 0x4c, flags: 0x0}, - {region: 0x4a, script: 0x4f, flags: 0x0}, - {region: 0x15f, script: 0x4f, flags: 0x0}, - {region: 0x9a, script: 0x5, flags: 0x0}, - {region: 0xb4, script: 0x4f, flags: 0x0}, - {region: 0xb6, script: 0x4f, flags: 0x0}, - {region: 0x4a, script: 0x4f, flags: 0x0}, - {region: 0x4a, script: 0x4f, flags: 0x0}, - {region: 0xa2, script: 0x4f, flags: 0x0}, - {region: 0xa2, script: 0x4f, flags: 0x0}, - {region: 0x9a, script: 0x5, flags: 0x0}, - {region: 0xb6, script: 0x4f, flags: 0x0}, - {region: 0x121, script: 0xcf, flags: 0x0}, - {region: 0x52, script: 0x32, flags: 0x0}, - {region: 0x129, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x22, script: 0x3, flags: 0x1}, - {region: 0xa2, script: 0x4f, flags: 0x0}, - {region: 0xcd, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x110, script: 0x4f, flags: 0x0}, - {region: 0xa2, script: 0x4f, flags: 0x0}, - {region: 0x121, script: 0x5, flags: 0x0}, - {region: 0xca, script: 0x4f, flags: 0x0}, - {region: 0xbd, script: 0x4f, flags: 0x0}, - {region: 0xcf, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0xbe, script: 0x4f, flags: 0x0}, - {region: 0xde, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0xc0, script: 0x1d, flags: 0x0}, - {region: 0x97, script: 0x60, flags: 0x0}, - {region: 0x25, script: 0x3, flags: 0x1}, - {region: 0x97, script: 0xe, flags: 0x0}, - {region: 0xc2, script: 0x67, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0x48, script: 0x4f, flags: 0x0}, - {region: 0x48, script: 0x4f, flags: 0x0}, - {region: 0x36, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x34, script: 0x64, flags: 0x0}, - {region: 0x28, script: 0x3, flags: 0x1}, - {region: 0xc9, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0x132, script: 0x4f, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0xc1, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x161, script: 0x4f, flags: 0x0}, - {region: 0xc2, script: 0x67, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x12f, script: 0x4f, flags: 0x0}, - {region: 0x9a, script: 0x59, flags: 0x0}, - {region: 0x9a, script: 0x5, flags: 0x0}, - {region: 0xdb, script: 0x4f, flags: 0x0}, - {region: 0x52, script: 0x32, flags: 0x0}, - {region: 0x9c, script: 0x4f, flags: 0x0}, - {region: 0xd0, script: 0x4f, flags: 0x0}, - {region: 0xd8, script: 0x4f, flags: 0x0}, - {region: 0xcd, script: 0x4f, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0x161, script: 0x4f, flags: 0x0}, - {region: 0xcf, script: 0x4f, flags: 0x0}, - {region: 0x5f, script: 0x4f, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0xd0, script: 0x4f, flags: 0x0}, - {region: 0xcf, script: 0x4f, flags: 0x0}, - {region: 0xcd, script: 0x4f, flags: 0x0}, - {region: 0xcd, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0xdd, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x4f, flags: 0x0}, - {region: 0xd7, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0xd8, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0xd8, script: 0x4f, flags: 0x0}, - {region: 0x121, script: 0x4b, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x10a, script: 0xb1, flags: 0x0}, - {region: 0x82, script: 0x6b, flags: 0x0}, - {region: 0x15e, script: 0x4f, flags: 0x0}, - {region: 0x48, script: 0x16, flags: 0x0}, - {region: 0x15e, script: 0x4f, flags: 0x0}, - {region: 0x109, script: 0x4f, flags: 0x0}, - {region: 0x132, script: 0x4f, flags: 0x0}, - {region: 0x52, script: 0x4f, flags: 0x0}, - {region: 0xcc, script: 0x4f, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0x12f, script: 0x4f, flags: 0x0}, - {region: 0x7e, script: 0x4f, flags: 0x0}, - {region: 0x76, script: 0x4f, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0x6e, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x70, flags: 0x0}, - {region: 0x7b, script: 0x1d, flags: 0x0}, - {region: 0xc3, script: 0x6f, flags: 0x0}, - {region: 0x2b, script: 0x3, flags: 0x1}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x2e, script: 0x2, flags: 0x1}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x2f, script: 0x4f, flags: 0x0}, - {region: 0xee, script: 0x4f, flags: 0x0}, - {region: 0x76, script: 0x4f, flags: 0x0}, - {region: 0xd4, script: 0x4f, flags: 0x0}, - {region: 0x132, script: 0x4f, flags: 0x0}, - {region: 0x48, script: 0x4f, flags: 0x0}, - {region: 0x9a, script: 0xd7, flags: 0x0}, - {region: 0x5f, script: 0x4f, flags: 0x0}, - {region: 0xae, script: 0x7a, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0x97, script: 0x11, flags: 0x0}, - {region: 0xa2, script: 0x4f, flags: 0x0}, - {region: 0xe7, script: 0x4f, flags: 0x0}, - {region: 0x9c, script: 0x4f, flags: 0x0}, - {region: 0x85, script: 0x2c, flags: 0x0}, - {region: 0x73, script: 0x4f, flags: 0x0}, - {region: 0xe6, script: 0x42, flags: 0x0}, - {region: 0x9a, script: 0x5, flags: 0x0}, - {region: 0x1, script: 0x4f, flags: 0x0}, - {region: 0x23, script: 0x5, flags: 0x0}, - {region: 0x40, script: 0x4f, flags: 0x0}, - {region: 0x78, script: 0x4f, flags: 0x0}, - {region: 0xe2, script: 0x4f, flags: 0x0}, - {region: 0x87, script: 0x4f, flags: 0x0}, - {region: 0x68, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x4f, flags: 0x0}, - {region: 0x100, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x9c, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x4f, flags: 0x0}, - {region: 0x30, script: 0x2, flags: 0x1}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0x34, script: 0xe, flags: 0x0}, - {region: 0x4d, script: 0x4f, flags: 0x0}, - {region: 0x70, script: 0x4f, flags: 0x0}, - {region: 0x4d, script: 0x4f, flags: 0x0}, - {region: 0x9a, script: 0x5, flags: 0x0}, - {region: 0x10a, script: 0x4f, flags: 0x0}, - {region: 0x39, script: 0x4f, flags: 0x0}, - {region: 0xcf, script: 0x4f, flags: 0x0}, - {region: 0x102, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0x71, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x12e, script: 0x1d, flags: 0x0}, - {region: 0x107, script: 0x4f, flags: 0x0}, - {region: 0x105, script: 0x4f, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0xa0, script: 0x41, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x7e, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0xa2, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0xb5, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0x9c, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x9c, script: 0x4f, flags: 0x0}, - {region: 0x79, script: 0x4f, flags: 0x0}, - {region: 0x48, script: 0x4f, flags: 0x0}, - {region: 0x32, script: 0x4, flags: 0x1}, - {region: 0x9c, script: 0x4f, flags: 0x0}, - {region: 0xd8, script: 0x4f, flags: 0x0}, - {region: 0x4e, script: 0x4f, flags: 0x0}, - {region: 0xcf, script: 0x4f, flags: 0x0}, - {region: 0xcd, script: 0x4f, flags: 0x0}, - {region: 0xc1, script: 0x4f, flags: 0x0}, - {region: 0x4b, script: 0x4f, flags: 0x0}, - {region: 0x94, script: 0x6d, flags: 0x0}, - {region: 0xb4, script: 0x4f, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0xb8, script: 0xcc, flags: 0x0}, - {region: 0xc2, script: 0x67, flags: 0x0}, - {region: 0xb1, script: 0xbb, flags: 0x0}, - {region: 0x6e, script: 0x4f, flags: 0x0}, - {region: 0x10f, script: 0x4f, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0x10d, script: 0x4f, flags: 0x0}, - {region: 0xe7, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x13f, script: 0x4f, flags: 0x0}, - {region: 0x10a, script: 0x4f, flags: 0x0}, - {region: 0x10a, script: 0x4f, flags: 0x0}, - {region: 0x70, script: 0x4f, flags: 0x0}, - {region: 0x95, script: 0xb2, flags: 0x0}, - {region: 0x70, script: 0x4f, flags: 0x0}, - {region: 0x161, script: 0x4f, flags: 0x0}, - {region: 0xc1, script: 0x4f, flags: 0x0}, - {region: 0x113, script: 0x4f, flags: 0x0}, - {region: 0x121, script: 0xcf, flags: 0x0}, - {region: 0x26, script: 0x4f, flags: 0x0}, - {region: 0x36, script: 0x5, flags: 0x1}, - {region: 0x97, script: 0xbc, flags: 0x0}, - {region: 0x114, script: 0x4f, flags: 0x0}, - {region: 0x112, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x15e, script: 0x4f, flags: 0x0}, - {region: 0x6c, script: 0x4f, flags: 0x0}, - {region: 0x15e, script: 0x4f, flags: 0x0}, - {region: 0x5f, script: 0x4f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0x82, script: 0x4f, flags: 0x0}, - {region: 0x10a, script: 0x4f, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0x15c, script: 0x5, flags: 0x0}, - {region: 0x4a, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x93, script: 0x4f, flags: 0x0}, - {region: 0x34, script: 0xe, flags: 0x0}, - {region: 0x99, script: 0xbf, flags: 0x0}, - {region: 0xe7, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0xc7, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x47, flags: 0x0}, - {region: 0x52, script: 0xc5, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0x97, script: 0xca, flags: 0x0}, - {region: 0x110, script: 0x4f, flags: 0x0}, - {region: 0x12f, script: 0x4f, flags: 0x0}, - {region: 0x124, script: 0x4f, flags: 0x0}, - {region: 0x3b, script: 0x3, flags: 0x1}, - {region: 0x121, script: 0xcf, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0x6e, script: 0x26, flags: 0x0}, - {region: 0x6c, script: 0x26, flags: 0x0}, - {region: 0xd4, script: 0x4f, flags: 0x0}, - {region: 0x125, script: 0x4f, flags: 0x0}, - {region: 0x123, script: 0x4f, flags: 0x0}, - {region: 0x31, script: 0x4f, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x31, script: 0x4f, flags: 0x0}, - {region: 0xd2, script: 0x4f, flags: 0x0}, - {region: 0x15e, script: 0x4f, flags: 0x0}, - {region: 0x127, script: 0x4f, flags: 0x0}, - {region: 0xcc, script: 0x4f, flags: 0x0}, - {region: 0xe4, script: 0x4f, flags: 0x0}, - {region: 0x129, script: 0x4f, flags: 0x0}, - {region: 0x129, script: 0x4f, flags: 0x0}, - {region: 0x12c, script: 0x4f, flags: 0x0}, - {region: 0x15e, script: 0x4f, flags: 0x0}, - {region: 0x85, script: 0x2c, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x42, script: 0xd0, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x12f, script: 0x4f, flags: 0x0}, - {region: 0x121, script: 0xcf, flags: 0x0}, - {region: 0x31, script: 0x4f, flags: 0x0}, - {region: 0xcc, script: 0x4f, flags: 0x0}, - {region: 0x12b, script: 0x4f, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0xd2, script: 0x4f, flags: 0x0}, - {region: 0xe3, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0xb8, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x3e, script: 0x4, flags: 0x1}, - {region: 0x11a, script: 0xd2, flags: 0x0}, - {region: 0x12e, script: 0x1d, flags: 0x0}, - {region: 0x73, script: 0x4f, flags: 0x0}, - {region: 0x29, script: 0x4f, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0x42, script: 0x3, flags: 0x1}, - {region: 0x97, script: 0xe, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0x45, script: 0x4, flags: 0x1}, - {region: 0xb2, script: 0xd3, flags: 0x0}, - {region: 0x15e, script: 0x4f, flags: 0x0}, - {region: 0x9c, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x4f, flags: 0x0}, - {region: 0x13b, script: 0x4f, flags: 0x0}, - {region: 0x119, script: 0x4f, flags: 0x0}, - {region: 0x35, script: 0x4f, flags: 0x0}, - {region: 0x5f, script: 0x4f, flags: 0x0}, - {region: 0xcf, script: 0x4f, flags: 0x0}, - {region: 0x1, script: 0x4f, flags: 0x0}, - {region: 0x104, script: 0x4f, flags: 0x0}, - {region: 0x69, script: 0x4f, flags: 0x0}, - {region: 0x12d, script: 0x4f, flags: 0x0}, - {region: 0x35, script: 0x4f, flags: 0x0}, - {region: 0x4d, script: 0x4f, flags: 0x0}, - {region: 0x6e, script: 0x26, flags: 0x0}, - {region: 0xe5, script: 0x4f, flags: 0x0}, - {region: 0x2e, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0xca, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x13d, script: 0x4f, flags: 0x0}, - {region: 0x112, script: 0x4f, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x52, script: 0x32, flags: 0x0}, - {region: 0x40, script: 0x4f, flags: 0x0}, - {region: 0x129, script: 0x17, flags: 0x0}, - {region: 0x15e, script: 0x4f, flags: 0x0}, - {region: 0x129, script: 0x56, flags: 0x0}, - {region: 0x129, script: 0x57, flags: 0x0}, - {region: 0x7b, script: 0x28, flags: 0x0}, - {region: 0x52, script: 0x5a, flags: 0x0}, - {region: 0x109, script: 0x5e, flags: 0x0}, - {region: 0x106, script: 0x68, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x0}, - {region: 0x12f, script: 0x4f, flags: 0x0}, - {region: 0x9a, script: 0x7c, flags: 0x0}, - {region: 0x15b, script: 0xb4, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0xcf, script: 0x4f, flags: 0x0}, - {region: 0x73, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x4f, flags: 0x0}, - {region: 0x1, script: 0x35, flags: 0x0}, - {region: 0xd4, script: 0x4f, flags: 0x0}, - {region: 0x40, script: 0x4f, flags: 0x0}, - {region: 0xcd, script: 0x4f, flags: 0x0}, - {region: 0x52, script: 0x4f, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0xa6, script: 0x5, flags: 0x0}, - {region: 0xd7, script: 0x4f, flags: 0x0}, - {region: 0xb8, script: 0xcc, flags: 0x0}, - {region: 0x49, script: 0x13, flags: 0x1}, - {region: 0xce, script: 0x4f, flags: 0x0}, - {region: 0x15e, script: 0x4f, flags: 0x0}, - {region: 0x0, script: 0x0, flags: 0x0}, - {region: 0x129, script: 0x4f, flags: 0x0}, -} - -// likelyLangList holds lists info associated with likelyLang. -// Size: 368 bytes, 92 elements -var likelyLangList = [92]likelyScriptRegion{ - {region: 0x9a, script: 0x7, flags: 0x0}, - {region: 0x9f, script: 0x69, flags: 0x2}, - {region: 0x11a, script: 0x73, flags: 0x2}, - {region: 0x31, script: 0x4f, flags: 0x0}, - {region: 0x9a, script: 0x5, flags: 0x4}, - {region: 0x104, script: 0x1d, flags: 0x4}, - {region: 0x9a, script: 0x5, flags: 0x2}, - {region: 0x97, script: 0xe, flags: 0x0}, - {region: 0x34, script: 0x15, flags: 0x2}, - {region: 0x104, script: 0x1d, flags: 0x0}, - {region: 0x37, script: 0x29, flags: 0x2}, - {region: 0x132, script: 0x4f, flags: 0x0}, - {region: 0x79, script: 0xb7, flags: 0x2}, - {region: 0x5c, script: 0x1c, flags: 0x0}, - {region: 0x85, script: 0x53, flags: 0x2}, - {region: 0xd4, script: 0x4f, flags: 0x0}, - {region: 0x51, script: 0x5, flags: 0x4}, - {region: 0x109, script: 0x5, flags: 0x4}, - {region: 0xac, script: 0x1d, flags: 0x0}, - {region: 0x23, script: 0x5, flags: 0x4}, - {region: 0x52, script: 0x5, flags: 0x4}, - {region: 0x9a, script: 0x5, flags: 0x4}, - {region: 0xc3, script: 0x5, flags: 0x4}, - {region: 0x52, script: 0x5, flags: 0x2}, - {region: 0x129, script: 0x4f, flags: 0x0}, - {region: 0xae, script: 0x5, flags: 0x4}, - {region: 0x99, script: 0x5, flags: 0x2}, - {region: 0xa3, script: 0x1d, flags: 0x0}, - {region: 0x52, script: 0x5, flags: 0x4}, - {region: 0x129, script: 0x4f, flags: 0x4}, - {region: 0x52, script: 0x5, flags: 0x2}, - {region: 0x129, script: 0x4f, flags: 0x2}, - {region: 0xd9, script: 0x1f, flags: 0x0}, - {region: 0x97, script: 0x51, flags: 0x2}, - {region: 0x81, script: 0x4f, flags: 0x0}, - {region: 0x82, script: 0x6b, flags: 0x4}, - {region: 0x82, script: 0x6b, flags: 0x2}, - {region: 0xc3, script: 0x1d, flags: 0x0}, - {region: 0x52, script: 0x62, flags: 0x4}, - {region: 0x52, script: 0x62, flags: 0x2}, - {region: 0xce, script: 0x4f, flags: 0x0}, - {region: 0x49, script: 0x5, flags: 0x4}, - {region: 0x93, script: 0x5, flags: 0x4}, - {region: 0x97, script: 0x2e, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x4}, - {region: 0xe6, script: 0x5, flags: 0x2}, - {region: 0x9a, script: 0x77, flags: 0x0}, - {region: 0x52, script: 0x78, flags: 0x2}, - {region: 0xb8, script: 0xcc, flags: 0x0}, - {region: 0xd7, script: 0x4f, flags: 0x4}, - {region: 0xe6, script: 0x5, flags: 0x0}, - {region: 0x97, script: 0x1f, flags: 0x2}, - {region: 0x97, script: 0x44, flags: 0x2}, - {region: 0x97, script: 0xba, flags: 0x2}, - {region: 0x103, script: 0x1d, flags: 0x0}, - {region: 0xbb, script: 0x4f, flags: 0x4}, - {region: 0x102, script: 0x4f, flags: 0x4}, - {region: 0x104, script: 0x4f, flags: 0x4}, - {region: 0x129, script: 0x4f, flags: 0x4}, - {region: 0x122, script: 0x1d, flags: 0x0}, - {region: 0xe6, script: 0x5, flags: 0x4}, - {region: 0xe6, script: 0x5, flags: 0x2}, - {region: 0x52, script: 0x5, flags: 0x0}, - {region: 0xac, script: 0x1d, flags: 0x4}, - {region: 0xc3, script: 0x1d, flags: 0x4}, - {region: 0xac, script: 0x1d, flags: 0x2}, - {region: 0x97, script: 0xe, flags: 0x0}, - {region: 0xd9, script: 0x1f, flags: 0x4}, - {region: 0xd9, script: 0x1f, flags: 0x2}, - {region: 0x134, script: 0x4f, flags: 0x0}, - {region: 0x23, script: 0x5, flags: 0x4}, - {region: 0x52, script: 0x1d, flags: 0x4}, - {region: 0x23, script: 0x5, flags: 0x2}, - {region: 0x52, script: 0x32, flags: 0x0}, - {region: 0x2e, script: 0x33, flags: 0x4}, - {region: 0x3d, script: 0x33, flags: 0x4}, - {region: 0x79, script: 0x33, flags: 0x4}, - {region: 0x7c, script: 0x33, flags: 0x4}, - {region: 0x8b, script: 0x33, flags: 0x4}, - {region: 0x93, script: 0x33, flags: 0x4}, - {region: 0xc4, script: 0x33, flags: 0x4}, - {region: 0xce, script: 0x33, flags: 0x4}, - {region: 0xe0, script: 0x33, flags: 0x4}, - {region: 0xe3, script: 0x33, flags: 0x4}, - {region: 0xe5, script: 0x33, flags: 0x4}, - {region: 0x114, script: 0x33, flags: 0x4}, - {region: 0x121, script: 0x33, flags: 0x4}, - {region: 0x12c, script: 0x33, flags: 0x4}, - {region: 0x132, script: 0x33, flags: 0x4}, - {region: 0x13b, script: 0x33, flags: 0x4}, - {region: 0x12c, script: 0x10, flags: 0x2}, - {region: 0x12c, script: 0x33, flags: 0x2}, -} - -type likelyLangScript struct { - lang uint16 - script uint8 - flags uint8 -} - -// likelyRegion is a lookup table, indexed by regionID, for the most likely -// languages and scripts given incomplete information. If more entries exist -// for a given regionID, lang and script are the index and size respectively -// of the list in likelyRegionList. -// TODO: exclude containers and user-definable regions from the list. -// Size: 1420 bytes, 355 elements -var likelyRegion = [355]likelyLangScript{ - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x5e, script: 0x4f, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x0, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x2, script: 0x2, flags: 0x1}, - {lang: 0x4, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x1e4, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x4f, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x223, script: 0x4f, flags: 0x0}, - {lang: 0x82, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x1b3, script: 0x4f, flags: 0x0}, - {lang: 0x23a, script: 0x4f, flags: 0x0}, - {lang: 0x22, script: 0x4f, flags: 0x0}, - {lang: 0x6, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x48, script: 0xe, flags: 0x0}, - {lang: 0x1b3, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x36, script: 0x1d, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x1f6, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x190, script: 0x4f, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x1d0, script: 0x4f, flags: 0x0}, - {lang: 0x1e4, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x8, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x2e, script: 0x1d, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x2a9, script: 0x35, flags: 0x2}, - {lang: 0x190, script: 0x5, flags: 0x2}, - {lang: 0x23b, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x82, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0xa, script: 0x4, flags: 0x1}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x4f, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x1e4, script: 0x4f, flags: 0x0}, - {lang: 0x1d0, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xe, script: 0x2, flags: 0x1}, - {lang: 0x76, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x82, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x1, script: 0x4f, flags: 0x0}, - {lang: 0x7d, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x10, script: 0x2, flags: 0x1}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x9b, script: 0x4f, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x253, script: 0x26, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x12, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xa4, script: 0x4f, flags: 0x0}, - {lang: 0xdb, script: 0x1f, flags: 0x2}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xa8, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x14, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x16, script: 0x3, flags: 0x1}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xc, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x128, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x19, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x4f, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x1e4, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x2b2, script: 0x33, flags: 0x0}, - {lang: 0x0, script: 0x4f, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0xe6, script: 0x4f, flags: 0x0}, - {lang: 0xe9, script: 0x4f, flags: 0x0}, - {lang: 0xea, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x1b, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xd9, script: 0x35, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x1d, script: 0x3, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x20, script: 0x2, flags: 0x1}, - {lang: 0xfa, script: 0x4f, flags: 0x0}, - {lang: 0xfb, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0xff, script: 0x3e, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x23b, script: 0x4f, flags: 0x0}, - {lang: 0x144, script: 0x1d, flags: 0x0}, - {lang: 0x22, script: 0x3, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x25, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x12d, script: 0x48, flags: 0x0}, - {lang: 0x12d, script: 0x48, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x1fc, script: 0x1d, flags: 0x0}, - {lang: 0x27, script: 0x2, flags: 0x1}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x82, script: 0x4f, flags: 0x0}, - {lang: 0x21c, script: 0xbb, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x235, script: 0x4f, flags: 0x0}, - {lang: 0x160, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x167, script: 0x4f, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x29, script: 0x2, flags: 0x1}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x2b, script: 0x2, flags: 0x1}, - {lang: 0x22e, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x17a, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x2d, script: 0x2, flags: 0x1}, - {lang: 0x46, script: 0x4f, flags: 0x0}, - {lang: 0x2f, script: 0x2, flags: 0x1}, - {lang: 0x31, script: 0x2, flags: 0x1}, - {lang: 0x33, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x35, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x191, script: 0x4f, flags: 0x0}, - {lang: 0x37, script: 0x3, flags: 0x1}, - {lang: 0x8c, script: 0xce, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x190, script: 0x4f, flags: 0x0}, - {lang: 0x1e4, script: 0x4f, flags: 0x0}, - {lang: 0xa, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0xd5, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xd5, script: 0x5, flags: 0x2}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x1b3, script: 0x4f, flags: 0x0}, - {lang: 0x1a4, script: 0x4f, flags: 0x0}, - {lang: 0x1aa, script: 0x1f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x260, script: 0x4f, flags: 0x0}, - {lang: 0xa5, script: 0x4f, flags: 0x0}, - {lang: 0x3a, script: 0x3, flags: 0x1}, - {lang: 0x3d, script: 0x2, flags: 0x1}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x1e4, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x1d1, script: 0x4f, flags: 0x0}, - {lang: 0xc4, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x3f, script: 0x2, flags: 0x1}, - {lang: 0x22e, script: 0x1d, flags: 0x0}, - {lang: 0x41, script: 0x2, flags: 0x1}, - {lang: 0x1ff, script: 0x4f, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x43, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x220, script: 0x4f, flags: 0x0}, - {lang: 0x1a4, script: 0x4f, flags: 0x0}, - {lang: 0x45, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xfb, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x22b, script: 0x4f, flags: 0x0}, - {lang: 0x1b3, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x1e4, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x47, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x49, script: 0x3, flags: 0x1}, - {lang: 0x4c, script: 0x2, flags: 0x1}, - {lang: 0x257, script: 0x4f, flags: 0x0}, - {lang: 0x1e4, script: 0x4f, flags: 0x0}, - {lang: 0x256, script: 0x4f, flags: 0x0}, - {lang: 0x4e, script: 0x2, flags: 0x1}, - {lang: 0x25e, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x50, script: 0x3, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x26e, script: 0x4f, flags: 0x0}, - {lang: 0x53, script: 0x2, flags: 0x1}, - {lang: 0x23b, script: 0x4f, flags: 0x0}, - {lang: 0x55, script: 0x3, flags: 0x1}, - {lang: 0x23b, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x2a9, script: 0x35, flags: 0x2}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x27e, script: 0x4f, flags: 0x0}, - {lang: 0xfb, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x99, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x283, script: 0x4f, flags: 0x0}, - {lang: 0x3e, script: 0x4f, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x223, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x58, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0x5a, script: 0x2, flags: 0x1}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, - {lang: 0x229, script: 0x4f, flags: 0x0}, - {lang: 0x0, script: 0x0, flags: 0x0}, -} - -// likelyRegionList holds lists info associated with likelyRegion. -// Size: 368 bytes, 92 elements -var likelyRegionList = [92]likelyLangScript{ - {lang: 0xa0, script: 0x5, flags: 0x0}, - {lang: 0x256, script: 0x4f, flags: 0x0}, - {lang: 0x22d, script: 0x4f, flags: 0x0}, - {lang: 0x183, script: 0x1d, flags: 0x0}, - {lang: 0xeb, script: 0x8, flags: 0x0}, - {lang: 0x13c, script: 0x4f, flags: 0x0}, - {lang: 0x51, script: 0x4f, flags: 0x0}, - {lang: 0x22e, script: 0x1d, flags: 0x0}, - {lang: 0x8f, script: 0xd0, flags: 0x0}, - {lang: 0x1aa, script: 0x1f, flags: 0x0}, - {lang: 0x2b2, script: 0x32, flags: 0x0}, - {lang: 0x275, script: 0x5, flags: 0x0}, - {lang: 0x2ad, script: 0x4f, flags: 0x0}, - {lang: 0x14e, script: 0xcf, flags: 0x0}, - {lang: 0x96, script: 0x2c, flags: 0x0}, - {lang: 0x261, script: 0x4f, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x10, script: 0x26, flags: 0x0}, - {lang: 0x97, script: 0x4f, flags: 0x0}, - {lang: 0x138, script: 0x5, flags: 0x2}, - {lang: 0x2a9, script: 0x35, flags: 0x2}, - {lang: 0x108, script: 0x28, flags: 0x0}, - {lang: 0x2, script: 0x1d, flags: 0x0}, - {lang: 0x13c, script: 0x4f, flags: 0x0}, - {lang: 0x96, script: 0x2c, flags: 0x0}, - {lang: 0x183, script: 0x1d, flags: 0x0}, - {lang: 0xf0, script: 0x4f, flags: 0x0}, - {lang: 0x190, script: 0x5, flags: 0x0}, - {lang: 0xda, script: 0x1f, flags: 0x0}, - {lang: 0x27d, script: 0x5, flags: 0x0}, - {lang: 0x120, script: 0x67, flags: 0x0}, - {lang: 0xa0, script: 0x5, flags: 0x0}, - {lang: 0x256, script: 0x4f, flags: 0x0}, - {lang: 0x12a, script: 0x43, flags: 0x0}, - {lang: 0x6a, script: 0x5, flags: 0x0}, - {lang: 0x113, script: 0xcf, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x15c, script: 0x4c, flags: 0x0}, - {lang: 0x113, script: 0xcf, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x1f8, script: 0x4f, flags: 0x0}, - {lang: 0x277, script: 0x1d, flags: 0x0}, - {lang: 0x183, script: 0x1d, flags: 0x0}, - {lang: 0x22d, script: 0x4f, flags: 0x0}, - {lang: 0x19b, script: 0x67, flags: 0x0}, - {lang: 0x10b, script: 0x4f, flags: 0x0}, - {lang: 0x185, script: 0x1d, flags: 0x0}, - {lang: 0x126, script: 0x5, flags: 0x0}, - {lang: 0x2b2, script: 0x33, flags: 0x0}, - {lang: 0x1e4, script: 0x4f, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x179, script: 0x4f, flags: 0x0}, - {lang: 0x27d, script: 0x5, flags: 0x0}, - {lang: 0x3d, script: 0x1f, flags: 0x0}, - {lang: 0x27d, script: 0x5, flags: 0x0}, - {lang: 0x27d, script: 0x5, flags: 0x0}, - {lang: 0x55, script: 0x1f, flags: 0x0}, - {lang: 0x1dc, script: 0x4f, flags: 0x0}, - {lang: 0x2e, script: 0x1d, flags: 0x0}, - {lang: 0x1f8, script: 0x4f, flags: 0x0}, - {lang: 0x36, script: 0x1d, flags: 0x0}, - {lang: 0x1fc, script: 0x1d, flags: 0x0}, - {lang: 0x136, script: 0x4f, flags: 0x0}, - {lang: 0x23a, script: 0x4f, flags: 0x0}, - {lang: 0x2a9, script: 0x35, flags: 0x0}, - {lang: 0x21e, script: 0x4f, flags: 0x0}, - {lang: 0x277, script: 0x1d, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x24f, script: 0xcf, flags: 0x0}, - {lang: 0x178, script: 0x5, flags: 0x0}, - {lang: 0x187, script: 0x67, flags: 0x0}, - {lang: 0x24e, script: 0x1d, flags: 0x0}, - {lang: 0xa0, script: 0x5, flags: 0x0}, - {lang: 0x14, script: 0x5, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x261, script: 0x4f, flags: 0x0}, - {lang: 0x10f, script: 0x1d, flags: 0x0}, - {lang: 0x38, script: 0x2c, flags: 0x0}, - {lang: 0x2b2, script: 0x33, flags: 0x0}, - {lang: 0x263, script: 0x4f, flags: 0x0}, - {lang: 0x277, script: 0x1d, flags: 0x0}, - {lang: 0x2a9, script: 0x35, flags: 0x0}, - {lang: 0x1dc, script: 0x4f, flags: 0x0}, - {lang: 0x22d, script: 0x4f, flags: 0x0}, - {lang: 0x22e, script: 0x1d, flags: 0x0}, - {lang: 0xaa, script: 0x4f, flags: 0x0}, - {lang: 0x23c, script: 0x5, flags: 0x0}, -} - -type likelyTag struct { - lang uint16 - region uint16 - script uint8 -} - -// Size: 192 bytes, 32 elements -var likelyRegionGroup = [32]likelyTag{ - {lang: 0x0, region: 0x0, script: 0x0}, - {lang: 0x97, region: 0xd4, script: 0x4f}, - {lang: 0x97, region: 0x132, script: 0x4f}, - {lang: 0x1e4, region: 0x40, script: 0x4f}, - {lang: 0x97, region: 0x2e, script: 0x4f}, - {lang: 0x97, region: 0xd4, script: 0x4f}, - {lang: 0x99, region: 0xcd, script: 0x4f}, - {lang: 0x23b, region: 0x12d, script: 0x4f}, - {lang: 0x14, region: 0x6a, script: 0x5}, - {lang: 0x23b, region: 0x4a, script: 0x4f}, - {lang: 0x97, region: 0x15e, script: 0x4f}, - {lang: 0x97, region: 0x132, script: 0x4f}, - {lang: 0x97, region: 0x132, script: 0x4f}, - {lang: 0x99, region: 0x58, script: 0x4f}, - {lang: 0x2b2, region: 0x52, script: 0x32}, - {lang: 0xda, region: 0x97, script: 0x1f}, - {lang: 0xf0, region: 0x93, script: 0x4f}, - {lang: 0xfb, region: 0x9c, script: 0x4f}, - {lang: 0x97, region: 0x2e, script: 0x4f}, - {lang: 0x97, region: 0xe4, script: 0x4f}, - {lang: 0x97, region: 0x88, script: 0x4f}, - {lang: 0x223, region: 0x13f, script: 0x4f}, - {lang: 0x2b2, region: 0x52, script: 0x32}, - {lang: 0x27e, region: 0x134, script: 0x4f}, - {lang: 0x14, region: 0x106, script: 0x5}, - {lang: 0x1fc, region: 0x104, script: 0x1d}, - {lang: 0x1fc, region: 0x104, script: 0x1d}, - {lang: 0x97, region: 0x79, script: 0x4f}, - {lang: 0x82, region: 0x5f, script: 0x4f}, - {lang: 0x99, region: 0x1e, script: 0x4f}, - {lang: 0x97, region: 0x98, script: 0x4f}, - {lang: 0x97, region: 0x79, script: 0x4f}, -} - -type mutualIntelligibility struct { - want uint16 - have uint16 - conf uint8 - oneway bool -} - -type scriptIntelligibility struct { - lang uint16 - want uint8 - have uint8 - conf uint8 -} - -// matchLang holds pairs of langIDs of base languages that are typically -// mutually intelligible. Each pair is associated with a confidence and -// whether the intelligibility goes one or both ways. -// Size: 702 bytes, 117 elements -var matchLang = [117]mutualIntelligibility{ - {want: 0x1b7, have: 0x1a4, conf: 0x2, oneway: false}, - {want: 0xe6, have: 0x51, conf: 0x2, oneway: false}, - {want: 0x219, have: 0x51, conf: 0x2, oneway: false}, - {want: 0x22e, have: 0x51, conf: 0x2, oneway: false}, - {want: 0x219, have: 0xe6, conf: 0x2, oneway: false}, - {want: 0x22e, have: 0xe6, conf: 0x2, oneway: false}, - {want: 0x219, have: 0x22e, conf: 0x2, oneway: false}, - {want: 0x234, have: 0x1, conf: 0x2, oneway: false}, - {want: 0xcc, have: 0x82, conf: 0x2, oneway: true}, - {want: 0x14b, have: 0x82, conf: 0x2, oneway: true}, - {want: 0x13c, have: 0x6c, conf: 0x2, oneway: false}, - {want: 0x7d, have: 0x1b7, conf: 0x2, oneway: false}, - {want: 0x7d, have: 0x1a4, conf: 0x2, oneway: false}, - {want: 0x6c, have: 0x14, conf: 0x2, oneway: true}, - {want: 0x6d, have: 0xaa, conf: 0x2, oneway: true}, - {want: 0x75, have: 0xaa, conf: 0x2, oneway: true}, - {want: 0x7c, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x91, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x98, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x9b, have: 0xa4, conf: 0x2, oneway: true}, - {want: 0x9d, have: 0x99, conf: 0x2, oneway: true}, - {want: 0xa8, have: 0x7d, conf: 0x2, oneway: true}, - {want: 0xb3, have: 0x1b3, conf: 0x2, oneway: true}, - {want: 0xb4, have: 0x97, conf: 0x2, oneway: true}, - {want: 0xb5, have: 0x97, conf: 0x2, oneway: true}, - {want: 0xbc, have: 0x97, conf: 0x2, oneway: true}, - {want: 0xc2, have: 0x99, conf: 0x2, oneway: true}, - {want: 0xc4, have: 0x99, conf: 0x2, oneway: true}, - {want: 0xcd, have: 0xda, conf: 0x2, oneway: true}, - {want: 0xd5, have: 0x97, conf: 0x2, oneway: true}, - {want: 0xd7, have: 0x97, conf: 0x2, oneway: true}, - {want: 0xe9, have: 0xaa, conf: 0x2, oneway: true}, - {want: 0xeb, have: 0x1fc, conf: 0x2, oneway: true}, - {want: 0xed, have: 0x97, conf: 0x2, oneway: true}, - {want: 0xf2, have: 0x97, conf: 0x2, oneway: true}, - {want: 0xfa, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x106, have: 0xf0, conf: 0x2, oneway: true}, - {want: 0x108, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x119, have: 0xaa, conf: 0x2, oneway: true}, - {want: 0x126, have: 0x1fc, conf: 0x2, oneway: true}, - {want: 0x12a, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x12c, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x134, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x13c, have: 0x261, conf: 0x2, oneway: true}, - {want: 0x144, have: 0x1fc, conf: 0x2, oneway: true}, - {want: 0x145, have: 0xfb, conf: 0x2, oneway: true}, - {want: 0x151, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x15b, have: 0xaa, conf: 0x2, oneway: true}, - {want: 0x15c, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x15e, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x163, have: 0xaa, conf: 0x2, oneway: true}, - {want: 0x179, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x17a, have: 0xaa, conf: 0x2, oneway: true}, - {want: 0x180, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x183, have: 0x36, conf: 0x2, oneway: true}, - {want: 0x184, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x185, have: 0x1fc, conf: 0x2, oneway: true}, - {want: 0x18c, have: 0xda, conf: 0x2, oneway: true}, - {want: 0x190, have: 0xf0, conf: 0x2, oneway: true}, - {want: 0x191, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x19b, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x1aa, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x1b5, have: 0x1a4, conf: 0x2, oneway: false}, - {want: 0x1b5, have: 0x1b7, conf: 0x2, oneway: true}, - {want: 0x1be, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x1c2, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x1c4, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x1c6, have: 0xaa, conf: 0x2, oneway: true}, - {want: 0x1c8, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x1c9, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x1cc, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x1d3, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x1e3, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x1e6, have: 0x99, conf: 0x2, oneway: true}, - {want: 0x1f1, have: 0x82, conf: 0x2, oneway: true}, - {want: 0x1f6, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x1ff, have: 0xaa, conf: 0x2, oneway: true}, - {want: 0x202, have: 0xda, conf: 0x2, oneway: true}, - {want: 0x20f, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x21c, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x229, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x22b, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x22d, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x235, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x237, have: 0xf0, conf: 0x2, oneway: true}, - {want: 0x23b, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x243, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x24a, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x24e, have: 0x1fc, conf: 0x2, oneway: true}, - {want: 0x253, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x256, have: 0x1fc, conf: 0x2, oneway: true}, - {want: 0x3608, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x25d, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x25e, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x269, have: 0x1fc, conf: 0x2, oneway: true}, - {want: 0x26d, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x275, have: 0x2b2, conf: 0x2, oneway: true}, - {want: 0x27d, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x27e, have: 0x1fc, conf: 0x2, oneway: true}, - {want: 0x294, have: 0xaa, conf: 0x2, oneway: true}, - {want: 0x299, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x2a9, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x2aa, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x2b4, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x5, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x2, have: 0x1fc, conf: 0x2, oneway: true}, - {want: 0xa, have: 0x1b3, conf: 0x2, oneway: true}, - {want: 0xc, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x21, have: 0x99, conf: 0x2, oneway: true}, - {want: 0x22, have: 0x1fc, conf: 0x2, oneway: true}, - {want: 0x2e, have: 0x1fc, conf: 0x2, oneway: true}, - {want: 0x2f, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x39, have: 0xda, conf: 0x2, oneway: true}, - {want: 0x48, have: 0x97, conf: 0x2, oneway: true}, - {want: 0x4d, have: 0xaa, conf: 0x2, oneway: true}, - {want: 0x62, have: 0xa5, conf: 0x2, oneway: true}, - {want: 0x69, have: 0x97, conf: 0x2, oneway: true}, -} - -// matchScript holds pairs of scriptIDs where readers of one script -// can typically also read the other. Each is associated with a confidence. -// Size: 24 bytes, 4 elements -var matchScript = [4]scriptIntelligibility{ - {lang: 0x22e, want: 0x4f, have: 0x1d, conf: 0x2}, - {lang: 0x22e, want: 0x1d, have: 0x4f, conf: 0x2}, - {lang: 0x0, want: 0x32, have: 0x33, conf: 0x1}, - {lang: 0x0, want: 0x33, have: 0x32, conf: 0x1}, -} - -// Size: 128 bytes, 32 elements -var regionContainment = [32]uint32{ - 0xffffffff, 0x000007a2, 0x00003044, 0x00000008, - 0x403c0010, 0x00000020, 0x00000040, 0x00000080, - 0x00000100, 0x00000200, 0x00000400, 0x2000384c, - 0x00001000, 0x00002000, 0x00004000, 0x00008000, - 0x00010000, 0x00020000, 0x00040000, 0x00080000, - 0x00100000, 0x00200000, 0x01c1c000, 0x00800000, - 0x01000000, 0x9e020000, 0x04000000, 0x08000000, - 0x10000000, 0x20002048, 0x40000000, 0x80000000, -} - -// regionInclusion maps region identifiers to sets of regions in regionInclusionBits, -// where each set holds all groupings that are directly connected in a region -// containment graph. -// Size: 355 bytes, 355 elements -var regionInclusion = [355]uint8{ - // Entry 0 - 3F - 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x25, 0x22, 0x23, - 0x25, 0x26, 0x21, 0x27, 0x28, 0x29, 0x2a, 0x25, - 0x2b, 0x23, 0x22, 0x25, 0x24, 0x29, 0x2c, 0x2d, - 0x23, 0x2e, 0x2c, 0x25, 0x2f, 0x30, 0x27, 0x25, - // Entry 40 - 7F - 0x27, 0x25, 0x24, 0x30, 0x21, 0x31, 0x32, 0x33, - 0x2f, 0x21, 0x26, 0x26, 0x26, 0x34, 0x2c, 0x28, - 0x27, 0x26, 0x35, 0x27, 0x21, 0x33, 0x22, 0x20, - 0x25, 0x2c, 0x25, 0x21, 0x36, 0x2d, 0x34, 0x29, - 0x21, 0x2e, 0x37, 0x25, 0x25, 0x20, 0x38, 0x38, - 0x27, 0x37, 0x38, 0x38, 0x2e, 0x39, 0x2e, 0x1f, - 0x37, 0x3a, 0x27, 0x3b, 0x2b, 0x20, 0x29, 0x34, - 0x26, 0x37, 0x25, 0x23, 0x27, 0x2b, 0x2c, 0x22, - // Entry 80 - BF - 0x2f, 0x2c, 0x2c, 0x25, 0x26, 0x39, 0x21, 0x33, - 0x3b, 0x2c, 0x27, 0x35, 0x21, 0x33, 0x39, 0x25, - 0x2d, 0x20, 0x38, 0x30, 0x37, 0x23, 0x2b, 0x24, - 0x21, 0x23, 0x24, 0x2b, 0x39, 0x2b, 0x25, 0x23, - 0x35, 0x20, 0x2e, 0x3c, 0x30, 0x3b, 0x2e, 0x25, - 0x35, 0x35, 0x23, 0x25, 0x3c, 0x30, 0x23, 0x25, - 0x34, 0x24, 0x2c, 0x31, 0x37, 0x29, 0x37, 0x38, - 0x38, 0x34, 0x32, 0x22, 0x25, 0x2e, 0x3b, 0x20, - // Entry C0 - FF - 0x22, 0x2c, 0x30, 0x35, 0x35, 0x3b, 0x25, 0x2c, - 0x25, 0x39, 0x2e, 0x24, 0x2e, 0x33, 0x30, 0x2e, - 0x31, 0x3a, 0x2c, 0x2a, 0x2c, 0x20, 0x33, 0x29, - 0x2b, 0x24, 0x20, 0x3b, 0x23, 0x28, 0x2a, 0x23, - 0x33, 0x20, 0x27, 0x28, 0x3a, 0x30, 0x24, 0x2d, - 0x2f, 0x28, 0x25, 0x23, 0x39, 0x20, 0x3b, 0x27, - 0x20, 0x23, 0x20, 0x20, 0x1e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x20, 0x20, 0x20, 0x20, - // Entry 100 - 13F - 0x2e, 0x20, 0x2d, 0x22, 0x32, 0x2e, 0x23, 0x3a, - 0x2e, 0x38, 0x37, 0x30, 0x2c, 0x39, 0x2b, 0x2d, - 0x2c, 0x22, 0x2c, 0x2e, 0x27, 0x38, 0x26, 0x32, - 0x33, 0x25, 0x23, 0x31, 0x21, 0x25, 0x26, 0x21, - 0x2c, 0x30, 0x3c, 0x28, 0x30, 0x3c, 0x38, 0x28, - 0x30, 0x23, 0x25, 0x28, 0x35, 0x2e, 0x32, 0x2e, - 0x20, 0x21, 0x2f, 0x27, 0x3c, 0x22, 0x25, 0x20, - 0x27, 0x25, 0x25, 0x30, 0x3a, 0x28, 0x20, 0x28, - // Entry 140 - 17F - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x23, 0x23, 0x2e, 0x22, 0x31, 0x2e, - 0x26, 0x2e, 0x20, -} - -// regionInclusionBits is an array of bit vectors where every vector represents -// a set of region groupings. These sets are used to compute the distance -// between two regions for the purpose of language matching. -// Size: 300 bytes, 75 elements -var regionInclusionBits = [75]uint32{ - // Entry 0 - 1F - 0x02400813, 0x000007a3, 0x00003844, 0x20000808, - 0x403c0011, 0x00000022, 0x20000844, 0x00000082, - 0x00000102, 0x00000202, 0x00000402, 0x2000384d, - 0x00001804, 0x20002804, 0x00404000, 0x00408000, - 0x00410000, 0x02020000, 0x00040010, 0x00080010, - 0x00100010, 0x00200010, 0x01c1c001, 0x00c00000, - 0x01400000, 0x9e020001, 0x06000000, 0x0a000000, - 0x12000000, 0x20002848, 0x40000010, 0x82000000, - // Entry 20 - 3F - 0x00000001, 0x40000000, 0x00020000, 0x01000000, - 0x00008000, 0x00002000, 0x00000200, 0x00000008, - 0x00200000, 0x90000000, 0x00040000, 0x08000000, - 0x00000020, 0x84000000, 0x00000080, 0x00001000, - 0x00010000, 0x00000400, 0x04000000, 0x00000040, - 0x10000000, 0x00004000, 0x81000000, 0x88000000, - 0x00000100, 0x80020000, 0x00080000, 0x00100000, - 0x00800000, 0x02000000, 0xffffffff, 0x02400fb3, - // Entry 40 - 5F - 0x427c0813, 0x2240385f, 0x03c1c813, 0x9e420813, - 0x92000000, 0x86000000, 0x83400000, 0x8a000000, - 0x82020000, 0x9fc3c001, 0x9fc3c813, -} - -// regionInclusionNext marks, for each entry in regionInclusionBits, the set of -// all groups that are reachable from the groups set in the respective entry. -// Size: 75 bytes, 75 elements -var regionInclusionNext = [75]uint8{ - // Entry 0 - 3F - 0x3e, 0x3f, 0x0b, 0x0b, 0x40, 0x01, 0x0b, 0x01, - 0x01, 0x01, 0x01, 0x41, 0x0b, 0x0b, 0x16, 0x16, - 0x16, 0x19, 0x04, 0x04, 0x04, 0x04, 0x42, 0x16, - 0x16, 0x43, 0x19, 0x19, 0x19, 0x0b, 0x04, 0x19, - 0x00, 0x1e, 0x11, 0x18, 0x0f, 0x0d, 0x09, 0x03, - 0x15, 0x44, 0x12, 0x1b, 0x05, 0x45, 0x07, 0x0c, - 0x10, 0x0a, 0x1a, 0x06, 0x1c, 0x0e, 0x46, 0x47, - 0x08, 0x48, 0x13, 0x14, 0x17, 0x19, 0x3e, 0x3e, - // Entry 40 - 7F - 0x3e, 0x3e, 0x3e, 0x3e, 0x19, 0x19, 0x49, 0x19, - 0x19, 0x4a, 0x3e, -} - -type parentRel struct { - lang uint16 - script uint8 - maxScript uint8 - toRegion uint16 - fromRegion []uint16 -} - -// Size: 352 bytes, 4 elements -var parents = [4]parentRel{ - {lang: 0x97, script: 0x0, maxScript: 0x4f, toRegion: 0x1, fromRegion: []uint16{0x1a, 0x24, 0x25, 0x2e, 0x33, 0x35, 0x3c, 0x41, 0x45, 0x47, 0x48, 0x49, 0x4f, 0x51, 0x5b, 0x60, 0x63, 0x6c, 0x71, 0x72, 0x73, 0x79, 0x7a, 0x7d, 0x7e, 0x7f, 0x81, 0x8a, 0x8b, 0x94, 0x96, 0x97, 0x98, 0x9d, 0x9e, 0xa2, 0xa5, 0xa7, 0xab, 0xaf, 0xb2, 0xb3, 0xbd, 0xc4, 0xc8, 0xc9, 0xca, 0xcc, 0xce, 0xd0, 0xd3, 0xd4, 0xdb, 0xdd, 0xde, 0xe4, 0xe5, 0xe6, 0xe9, 0xee, 0x105, 0x107, 0x108, 0x109, 0x10b, 0x10c, 0x110, 0x115, 0x119, 0x11b, 0x11d, 0x123, 0x127, 0x12a, 0x12b, 0x12d, 0x12f, 0x136, 0x139, 0x13c, 0x13f, 0x15e, 0x15f, 0x161}}, - {lang: 0x99, script: 0x0, maxScript: 0x4f, toRegion: 0x1e, fromRegion: []uint16{0x2b, 0x3e, 0x50, 0x53, 0x55, 0x58, 0x64, 0x68, 0x87, 0x8d, 0xcd, 0xd6, 0xe0, 0xe2, 0xea, 0xef, 0x118, 0x132, 0x133, 0x138}}, - {lang: 0x1e4, script: 0x0, maxScript: 0x4f, toRegion: 0xec, fromRegion: []uint16{0x29, 0x59, 0x89, 0xc4, 0xcf, 0x116, 0x124}}, - {lang: 0x2b2, script: 0x33, maxScript: 0x33, toRegion: 0x8b, fromRegion: []uint16{0xc4}}, -} - -// Total table size 19772 bytes (19KiB); checksum: 2976BD01 diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/tags.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/tags.go deleted file mode 100644 index de30155a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language/tags.go +++ /dev/null @@ -1,143 +0,0 @@ -// 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 language - -// TODO: Various sets of commonly use tags and regions. - -// MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed. -// It simplifies safe initialization of Tag values. -func MustParse(s string) Tag { - t, err := Parse(s) - if err != nil { - panic(err) - } - return t -} - -// MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed. -// It simplifies safe initialization of Tag values. -func (c CanonType) MustParse(s string) Tag { - t, err := c.Parse(s) - if err != nil { - panic(err) - } - return t -} - -// MustParseBase is like ParseBase, but panics if the given base cannot be parsed. -// It simplifies safe initialization of Base values. -func MustParseBase(s string) Base { - b, err := ParseBase(s) - if err != nil { - panic(err) - } - return b -} - -// MustParseScript is like ParseScript, but panics if the given script cannot be -// parsed. It simplifies safe initialization of Script values. -func MustParseScript(s string) Script { - scr, err := ParseScript(s) - if err != nil { - panic(err) - } - return scr -} - -// MustParseRegion is like ParseRegion, but panics if the given region cannot be -// parsed. It simplifies safe initialization of Region values. -func MustParseRegion(s string) Region { - r, err := ParseRegion(s) - if err != nil { - panic(err) - } - return r -} - -var ( - und = Tag{} - - Und Tag = Tag{} - - Afrikaans Tag = Tag{lang: _af} // af - Amharic Tag = Tag{lang: _am} // am - Arabic Tag = Tag{lang: _ar} // ar - ModernStandardArabic Tag = Tag{lang: _ar, region: _001} // ar-001 - Azerbaijani Tag = Tag{lang: _az} // az - Bulgarian Tag = Tag{lang: _bg} // bg - Bengali Tag = Tag{lang: _bn} // bn - Catalan Tag = Tag{lang: _ca} // ca - Czech Tag = Tag{lang: _cs} // cs - Danish Tag = Tag{lang: _da} // da - German Tag = Tag{lang: _de} // de - Greek Tag = Tag{lang: _el} // el - English Tag = Tag{lang: _en} // en - AmericanEnglish Tag = Tag{lang: _en, region: _US} // en-US - BritishEnglish Tag = Tag{lang: _en, region: _GB} // en-GB - Spanish Tag = Tag{lang: _es} // es - EuropeanSpanish Tag = Tag{lang: _es, region: _ES} // es-ES - LatinAmericanSpanish Tag = Tag{lang: _es, region: _419} // es-419 - Estonian Tag = Tag{lang: _et} // et - Persian Tag = Tag{lang: _fa} // fa - Finnish Tag = Tag{lang: _fi} // fi - Filipino Tag = Tag{lang: _fil} // fil - French Tag = Tag{lang: _fr} // fr - CanadianFrench Tag = Tag{lang: _fr, region: _CA} // fr-CA - Gujarati Tag = Tag{lang: _gu} // gu - Hebrew Tag = Tag{lang: _he} // he - Hindi Tag = Tag{lang: _hi} // hi - Croatian Tag = Tag{lang: _hr} // hr - Hungarian Tag = Tag{lang: _hu} // hu - Armenian Tag = Tag{lang: _hy} // hy - Indonesian Tag = Tag{lang: _id} // id - Icelandic Tag = Tag{lang: _is} // is - Italian Tag = Tag{lang: _it} // it - Japanese Tag = Tag{lang: _ja} // ja - Georgian Tag = Tag{lang: _ka} // ka - Kazakh Tag = Tag{lang: _kk} // kk - Khmer Tag = Tag{lang: _km} // km - Kannada Tag = Tag{lang: _kn} // kn - Korean Tag = Tag{lang: _ko} // ko - Kirghiz Tag = Tag{lang: _ky} // ky - Lao Tag = Tag{lang: _lo} // lo - Lithuanian Tag = Tag{lang: _lt} // lt - Latvian Tag = Tag{lang: _lv} // lv - Macedonian Tag = Tag{lang: _mk} // mk - Malayalam Tag = Tag{lang: _ml} // ml - Mongolian Tag = Tag{lang: _mn} // mn - Marathi Tag = Tag{lang: _mr} // mr - Malay Tag = Tag{lang: _ms} // ms - Burmese Tag = Tag{lang: _my} // my - Nepali Tag = Tag{lang: _ne} // ne - Dutch Tag = Tag{lang: _nl} // nl - Norwegian Tag = Tag{lang: _no} // no - Punjabi Tag = Tag{lang: _pa} // pa - Polish Tag = Tag{lang: _pl} // pl - Portuguese Tag = Tag{lang: _pt} // pt - BrazilianPortuguese Tag = Tag{lang: _pt, region: _BR} // pt-BR - EuropeanPortuguese Tag = Tag{lang: _pt, region: _PT} // pt-PT - Romanian Tag = Tag{lang: _ro} // ro - Russian Tag = Tag{lang: _ru} // ru - Sinhala Tag = Tag{lang: _si} // si - Slovak Tag = Tag{lang: _sk} // sk - Slovenian Tag = Tag{lang: _sl} // sl - Albanian Tag = Tag{lang: _sq} // sq - Serbian Tag = Tag{lang: _sr} // sr - SerbianLatin Tag = Tag{lang: _sr, script: _Latn} // sr-Latn - Swedish Tag = Tag{lang: _sv} // sv - Swahili Tag = Tag{lang: _sw} // sw - Tamil Tag = Tag{lang: _ta} // ta - Telugu Tag = Tag{lang: _te} // te - Thai Tag = Tag{lang: _th} // th - Turkish Tag = Tag{lang: _tr} // tr - Ukrainian Tag = Tag{lang: _uk} // uk - Urdu Tag = Tag{lang: _ur} // ur - Uzbek Tag = Tag{lang: _uz} // uz - Vietnamese Tag = Tag{lang: _vi} // vi - Chinese Tag = Tag{lang: _zh} // zh - SimplifiedChinese Tag = Tag{lang: _zh, script: _Hans} // zh-Hans - TraditionalChinese Tag = Tag{lang: _zh, script: _Hant} // zh-Hant - Zulu Tag = Tag{lang: _zu} // zu -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/message/message.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/message/message.go deleted file mode 100644 index d65d696a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/message/message.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package message implements formatted I/O for localized strings with functions -// analogous to the fmt's print functions. -// -// Under construction. See https://golang.org/design/text/12750-localization -// and its corresponding proposal issue https://golang.org/issues/12750. -package message - -import ( - "fmt" - "io" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/format" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -// A Printer implements language-specific formatted I/O analogous to the fmt -// package. Only one goroutine may use a Printer at the same time. -type Printer struct { - tag language.Tag - - // NOTE: limiting one goroutine per Printer allows for many optimizations - // and simplifications. We can consider removing this restriction down the - // road if it the benefits do not seem to outweigh the disadvantages. -} - -// NewPrinter returns a Printer that formats messages tailored to language t. -func NewPrinter(t language.Tag) *Printer { - return &Printer{tag: t} -} - -// Sprint is like fmt.Sprint, but using language-specific formatting. -func (p *Printer) Sprint(a ...interface{}) string { - return fmt.Sprint(p.bindArgs(a)...) -} - -// Fprint is like fmt.Fprint, but using language-specific formatting. -func (p *Printer) Fprint(w io.Writer, a ...interface{}) (n int, err error) { - return fmt.Fprint(w, p.bindArgs(a)...) -} - -// Print is like fmt.Print, but using language-specific formatting. -func (p *Printer) Print(a ...interface{}) (n int, err error) { - return fmt.Print(p.bindArgs(a)...) -} - -// bindArgs wraps arguments with implementation of fmt.Formatter, if needed. -func (p *Printer) bindArgs(a []interface{}) []interface{} { - out := make([]interface{}, len(a)) - for i, x := range a { - switch v := x.(type) { - case fmt.Formatter: - // Wrap the value with a Formatter that augments the State with - // language-specific attributes. - out[i] = &value{v, p} - - // NOTE: as we use fmt.Formatter, we can't distinguish between - // regular and localized formatters, so we always need to wrap it. - - // TODO: handle - // - numbers - // - lists - // - time? - default: - out[i] = x - } - } - return out -} - -// state implements "golang.org/x/text/internal/format".State. -type state struct { - fmt.State - p *Printer -} - -func (s *state) Language() language.Tag { return s.p.tag } - -var _ format.State = &state{} - -type value struct { - x fmt.Formatter - p *Printer -} - -func (v *value) Format(s fmt.State, verb rune) { - v.x.Format(&state{s, v.p}, verb) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/message/message_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/message/message_test.go deleted file mode 100644 index bc068bf9..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/message/message_test.go +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package message - -import ( - "bytes" - "fmt" - "io" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/format" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -type formatFunc func(s fmt.State, v rune) - -func (f formatFunc) Format(s fmt.State, v rune) { f(s, v) } - -func TestBinding(t *testing.T) { - testCases := []struct { - tag string - value interface{} - want string - }{ - {"en", 1, "1"}, - {"en", "2", "2"}, - { // Language is passed. - "en", - formatFunc(func(fs fmt.State, v rune) { - s := fs.(format.State) - io.WriteString(s, s.Language().String()) - }), - "en", - }, - } - for i, tc := range testCases { - p := NewPrinter(language.MustParse(tc.tag)) - if got := p.Sprint(tc.value); got != tc.want { - t.Errorf("%d:%s:Sprint(%v) = %q; want %q", i, tc.tag, tc.value, got, tc.want) - } - var buf bytes.Buffer - p.Fprint(&buf, tc.value) - if got := buf.String(); got != tc.want { - t.Errorf("%d:%s:Fprint(%v) = %q; want %q", i, tc.tag, tc.value, got, tc.want) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/package.json b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/package.json deleted file mode 100644 index fe32b5a3..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "go-text", - "author": "whyrusleeping", - "version": "0.0.0", - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "golang.org/x/text" - } -} \ No newline at end of file diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/cond.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/cond.go deleted file mode 100644 index 309b9016..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/cond.go +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package runes - -import ( - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// Note: below we pass invalid UTF-8 to the tIn and tNotIn transformers as is. -// This is done for various reasons: -// - To retain the semantics of the Nop transformer: if input is passed to a Nop -// one would expect it to be unchanged. -// - It would be very expensive to pass a converted RuneError to a transformer: -// a transformer might need more source bytes after RuneError, meaning that -// the only way to pass it safely is to create a new buffer and manage the -// intermingling of RuneErrors and normal input. -// - Many transformers leave ill-formed UTF-8 as is, so this is not -// inconsistent. Generally ill-formed UTF-8 is only replaced if it is a -// logical consequence of the operation (as for Map) or if it otherwise would -// pose security concerns (as for Remove). -// - An alternative would be to return an error on ill-formed UTF-8, but this -// would be inconsistent with other operations. - -// If returns a transformer that applies tIn to consecutive runes for which -// s.Contains(r) and tNotIn to consecutive runes for which !s.Contains(r). Reset -// is called on tIn and tNotIn at the start of each run. A Nop transformer will -// substitute a nil value passed to tIn or tNotIn. Invalid UTF-8 is translated -// to RuneError to determine which transformer to apply, but is passed as is to -// the respective transformer. -func If(s Set, tIn, tNotIn transform.Transformer) Transformer { - if tIn == nil && tNotIn == nil { - return Transformer{transform.Nop} - } - if tIn == nil { - tIn = transform.Nop - } - if tNotIn == nil { - tNotIn = transform.Nop - } - a := &cond{ - tIn: tIn, - tNotIn: tNotIn, - f: s.Contains, - } - a.Reset() - return Transformer{a} -} - -type cond struct { - tIn, tNotIn transform.Transformer - f func(rune) bool - check func(rune) bool // current check to perform - t transform.Transformer // current transformer to use -} - -// Reset implements transform.Transformer. -func (t *cond) Reset() { - t.check = t.is - t.t = t.tIn - t.t.Reset() // notIn will be reset on first usage. -} - -func (t *cond) is(r rune) bool { - if t.f(r) { - return true - } - t.check = t.isNot - t.t = t.tNotIn - t.tNotIn.Reset() - return false -} - -func (t *cond) isNot(r rune) bool { - if !t.f(r) { - return true - } - t.check = t.is - t.t = t.tIn - t.tIn.Reset() - return false -} - -func (t *cond) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - p := 0 - for nSrc < len(src) && err == nil { - // Don't process too much at a time, as the work might be wasted if the - // destination buffer isn't large enough to hold the result or a - // transform returns an error early. - const maxChunk = 4096 - max := len(src) - if n := nSrc + maxChunk; n < len(src) { - max = n - } - atEnd := false - size := 0 - current := t.t - for ; p < max; p += size { - var r rune - r, size = utf8.DecodeRune(src[p:]) - if r == utf8.RuneError && size == 1 { - if !atEOF && !utf8.FullRune(src[p:]) { - err = transform.ErrShortSrc - break - } - } - if !t.check(r) { - // The next rune will be the start of a new run. - atEnd = true - break - } - } - nDst2, nSrc2, err2 := current.Transform(dst[nDst:], src[nSrc:p], atEnd || (atEOF && p == len(src))) - nDst += nDst2 - nSrc += nSrc2 - if err2 != nil { - return nDst, nSrc, err2 - } - // At this point either err != nil or t.check will pass for the rune at p. - p = nSrc + size - } - return nDst, nSrc, err -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/cond_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/cond_test.go deleted file mode 100644 index c6b2fa40..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/cond_test.go +++ /dev/null @@ -1,233 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package runes - -import ( - "strings" - "testing" - "unicode" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/cases" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -var ( - toUpper = cases.Upper(language.Und) - toLower = cases.Lower(language.Und) -) - -func TestPredicate(t *testing.T) { - testConditional(t, func(rt *unicode.RangeTable, t, f transform.Transformer) transform.Transformer { - return If(Predicate(func(r rune) bool { - return unicode.Is(rt, r) - }), t, f) - }) -} - -func TestIn(t *testing.T) { - testConditional(t, func(rt *unicode.RangeTable, t, f transform.Transformer) transform.Transformer { - return If(In(rt), t, f) - }) -} - -func TestNotIn(t *testing.T) { - testConditional(t, func(rt *unicode.RangeTable, t, f transform.Transformer) transform.Transformer { - return If(NotIn(rt), f, t) - }) -} - -func testConditional(t *testing.T, f func(rt *unicode.RangeTable, t, f transform.Transformer) transform.Transformer) { - lower := f(unicode.Latin, toLower, toLower) - - for i, tt := range []transformTest{{ - desc: "empty", - szDst: large, - atEOF: true, - in: "", - out: "", - outFull: "", - t: lower, - }, { - desc: "small", - szDst: 1, - atEOF: true, - in: "B", - out: "b", - outFull: "b", - t: lower, - }, { - desc: "short dst", - szDst: 2, - atEOF: true, - in: "AAA", - out: "aa", - outFull: "aaa", - err: transform.ErrShortDst, - t: lower, - }, { - desc: "short dst writing error", - szDst: 1, - atEOF: false, - in: "A\x80", - out: "a", - outFull: "a\x80", - err: transform.ErrShortDst, - t: lower, - }, { - desc: "short dst writing incomplete rune", - szDst: 2, - atEOF: true, - in: "Σ\xc0", - out: "Σ", - outFull: "Σ\xc0", - err: transform.ErrShortDst, - t: f(unicode.Latin, toLower, nil), - }, { - desc: "short dst, longer", - szDst: 5, - atEOF: true, - in: "Hellø", - out: "Hell", - outFull: "Hellø", - err: transform.ErrShortDst, - // idem is used to test short buffers by forcing processing of full-rune increments. - t: f(unicode.Latin, Map(idem), nil), - }, { - desc: "short dst, longer, writing error", - szDst: 6, - atEOF: false, - in: "\x80Hello\x80", - out: "\x80Hello", - outFull: "\x80Hello\x80", - err: transform.ErrShortDst, - t: f(unicode.Latin, Map(idem), nil), - }, { - desc: "short src", - szDst: 2, - atEOF: false, - in: "A\xc0", - out: "a", - outFull: "a\xc0", - err: transform.ErrShortSrc, - t: lower, - }, { - desc: "invalid input, atEOF", - szDst: large, - atEOF: true, - in: "\x80", - out: "\x80", - outFull: "\x80", - t: lower, - }, { - desc: "invalid input, !atEOF", - szDst: large, - atEOF: false, - in: "\x80", - out: "\x80", - outFull: "\x80", - t: lower, - }, { - desc: "invalid input, incomplete rune atEOF", - szDst: large, - atEOF: true, - in: "\xc0", - out: "\xc0", - outFull: "\xc0", - t: lower, - }, { - desc: "nop", - szDst: large, - atEOF: true, - in: "Hello World!", - out: "Hello World!", - outFull: "Hello World!", - t: f(unicode.Latin, nil, nil), - }, { - desc: "nop in", - szDst: large, - atEOF: true, - in: "THIS IS α ΤΕΣΤ", - out: "this is α ΤΕΣΤ", - outFull: "this is α ΤΕΣΤ", - t: f(unicode.Greek, nil, toLower), - }, { - desc: "nop not in", - szDst: large, - atEOF: true, - in: "THIS IS α ΤΕΣΤ", - out: "this is α ΤΕΣΤ", - outFull: "this is α ΤΕΣΤ", - t: f(unicode.Latin, toLower, nil), - }, { - desc: "pass atEOF is true when at end", - szDst: large, - atEOF: true, - in: "hello", - out: "HELLO", - outFull: "HELLO", - t: f(unicode.Latin, upperAtEOF{}, nil), - }, { - desc: "pass atEOF is true when at end of segment", - szDst: large, - atEOF: true, - in: "hello ", - out: "HELLO ", - outFull: "HELLO ", - t: f(unicode.Latin, upperAtEOF{}, nil), - }, { - desc: "don't pass atEOF is true when atEOF is false", - szDst: large, - atEOF: false, - in: "hello", - out: "", - outFull: "HELLO", - t: f(unicode.Latin, upperAtEOF{}, nil), - err: transform.ErrShortSrc, - }, { - desc: "large input ASCII", - szDst: 12000, - atEOF: false, - in: strings.Repeat("HELLO", 2000), - out: strings.Repeat("hello", 2000), - outFull: strings.Repeat("hello", 2000), - t: lower, - err: nil, - }, { - desc: "large input non-ASCII", - szDst: 12000, - atEOF: false, - in: strings.Repeat("\u3333", 2000), - out: strings.Repeat("\u3333", 2000), - outFull: strings.Repeat("\u3333", 2000), - t: lower, - err: nil, - }} { - tt.check(t, i) - } -} - -// upperAtEOF is a strange Transformer that converts text to uppercase, but only -// if atEOF is true. -type upperAtEOF struct{ transform.NopResetter } - -func (upperAtEOF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if !atEOF { - return 0, 0, transform.ErrShortSrc - } - return toUpper.Transform(dst, src, atEOF) -} - -func BenchmarkConditional(b *testing.B) { - dst := make([]byte, len(input)) - src := []byte(input) - - r := If(In(unicode.Hangul), transform.Nop, transform.Nop) - b.ResetTimer() - - for i := 0; i < b.N; i++ { - r.Transform(dst, src, true) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/example_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/example_test.go deleted file mode 100644 index 9cbf3c87..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/example_test.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package runes_test - -import ( - "fmt" - "unicode" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width" -) - -func ExampleRemove() { - t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC) - s, _, _ := transform.String(t, "résumé") - fmt.Println(s) - - // Output: - // resume -} - -func ExampleMap() { - replaceHyphens := runes.Map(func(r rune) rune { - if unicode.Is(unicode.Hyphen, r) { - return '|' - } - return r - }) - s, _, _ := transform.String(replaceHyphens, "a-bâ€c⸗dï¹£e") - fmt.Println(s) - - // Output: - // a|b|c|d|e -} - -func ExampleIn() { - // Convert Latin characters to their canonical form, while keeping other - // width distinctions. - t := runes.If(runes.In(unicode.Latin), width.Fold, nil) - s, _, _ := transform.String(t, "アルアノリウ tech / アルアノリウ tech") - fmt.Println(s) - - // Output: - // アルアノリウ tech / アルアノリウ tech -} - -func ExampleIf() { - // Widen everything but ASCII. - isASCII := func(r rune) bool { return r <= unicode.MaxASCII } - t := runes.If(runes.Predicate(isASCII), nil, width.Widen) - s, _, _ := transform.String(t, "アルアノリウ tech / 中國 / 5â‚©") - fmt.Println(s) - - // Output: - // アルアノリウ tech / 中國 / 5₩ -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/runes.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/runes.go deleted file mode 100644 index f587fca5..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/runes.go +++ /dev/null @@ -1,223 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package runes provide transforms for UTF-8 encoded text. -package runes - -import ( - "unicode" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// A Set is a collection of runes. -type Set interface { - // Contains returns true if r is contained in the set. - Contains(r rune) bool -} - -type setFunc func(rune) bool - -func (s setFunc) Contains(r rune) bool { - return s(r) -} - -// Note: using funcs here instead of wrapping types result in cleaner -// documentation and a smaller API. - -// In creates a Set with a Contains method that returns true for all runes in -// the given RangeTable. -func In(rt *unicode.RangeTable) Set { - return setFunc(func(r rune) bool { return unicode.Is(rt, r) }) -} - -// In creates a Set with a Contains method that returns true for all runes not -// in the given RangeTable. -func NotIn(rt *unicode.RangeTable) Set { - return setFunc(func(r rune) bool { return !unicode.Is(rt, r) }) -} - -// Predicate creates a Set with a Contains method that returns f(r). -func Predicate(f func(rune) bool) Set { - return setFunc(f) -} - -// Transformer implements the transform.Transformer interface. -type Transformer struct { - transform.Transformer -} - -// Bytes returns a new byte slice with the result of converting b using t. It -// calls Reset on t. It returns nil if any error was found. This can only happen -// if an error-producing Transformer is passed to If. -func (t Transformer) Bytes(b []byte) []byte { - b, _, err := transform.Bytes(t, b) - if err != nil { - return nil - } - return b -} - -// String returns a string with the result of converting s using t. It calls -// Reset on t. It returns the empty string if any error was found. This can only -// happen if an error-producing Transformer is passed to If. -func (t Transformer) String(s string) string { - s, _, err := transform.String(t, s) - if err != nil { - return "" - } - return s -} - -// TODO: -// - Copy: copying strings and bytes in whole-rune units. -// - Validation (maybe) -// - Well-formed-ness (maybe) - -const runeErrorString = string(utf8.RuneError) - -// Remove returns a Transformer that removes runes r for which s.Contains(r). -// Illegal input bytes are replaced by RuneError before being passed to f. -func Remove(s Set) Transformer { - if f, ok := s.(setFunc); ok { - // This little trick cuts the running time of BenchmarkRemove for sets - // created by Predicate roughly in half. - // TODO: special-case RangeTables as well. - return Transformer{remove(f)} - } - return Transformer{remove(s.Contains)} -} - -// TODO: remove transform.RemoveFunc. - -type remove func(r rune) bool - -func (remove) Reset() {} - -// Transform implements transform.Transformer. -func (t remove) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for r, size := rune(0), 0; nSrc < len(src); { - if r = rune(src[nSrc]); r < utf8.RuneSelf { - size = 1 - } else { - r, size = utf8.DecodeRune(src[nSrc:]) - - if size == 1 { - // Invalid rune. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.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(utf8.RuneError) { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = runeErrorString[0] - dst[nDst+1] = runeErrorString[1] - dst[nDst+2] = runeErrorString[2] - nDst += 3 - } - nSrc++ - continue - } - } - - if t(r) { - nSrc += size - continue - } - if nDst+size > len(dst) { - err = transform.ErrShortDst - break - } - for i := 0; i < size; i++ { - dst[nDst] = src[nSrc] - nDst++ - nSrc++ - } - } - return -} - -// Map returns a Transformer that maps the runes in the input using the given -// mapping. Illegal bytes in the input are converted to utf8.RuneError before -// being passed to the mapping func. -func Map(mapping func(rune) rune) Transformer { - return Transformer{mapper(mapping)} -} - -type mapper func(rune) rune - -func (mapper) Reset() {} - -// Transform implements transform.Transformer. -func (t mapper) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - var replacement rune - var b [utf8.UTFMax]byte - - for r, size := rune(0), 0; nSrc < len(src); { - if r = rune(src[nSrc]); r < utf8.RuneSelf { - if replacement = t(r); replacement < utf8.RuneSelf { - if nDst == len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = byte(replacement) - nDst++ - nSrc++ - continue - } - size = 1 - } else if r, size = utf8.DecodeRune(src[nSrc:]); size == 1 { - // Invalid rune. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - - if replacement = t(utf8.RuneError); replacement == utf8.RuneError { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = runeErrorString[0] - dst[nDst+1] = runeErrorString[1] - dst[nDst+2] = runeErrorString[2] - nDst += 3 - nSrc++ - continue - } - } else if replacement = t(r); replacement == r { - if nDst+size > len(dst) { - err = transform.ErrShortDst - break - } - for i := 0; i < size; i++ { - dst[nDst] = src[nSrc] - nDst++ - nSrc++ - } - continue - } - - n := utf8.EncodeRune(b[:], replacement) - - if nDst+n > len(dst) { - err = transform.ErrShortDst - break - } - for i := 0; i < n; i++ { - dst[nDst] = b[i] - nDst++ - } - nSrc += size - } - return -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/runes_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/runes_test.go deleted file mode 100644 index 810f9cc9..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/runes/runes_test.go +++ /dev/null @@ -1,451 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package runes - -import ( - "strings" - "testing" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -type transformTest struct { - desc string - szDst int - atEOF bool - repl string - in string - out string // result string of first call to Transform - outFull string // transform of entire input string - err error - - t transform.Transformer -} - -const large = 10240 - -func (tt *transformTest) check(t *testing.T, i int) { - if tt.t == nil { - return - } - dst := make([]byte, tt.szDst) - src := []byte(tt.in) - nDst, nSrc, err := tt.t.Transform(dst, src, tt.atEOF) - if err != tt.err { - t.Errorf("%d:%s:error: got %v; want %v", i, tt.desc, err, tt.err) - } - if got := string(dst[:nDst]); got != tt.out { - t.Errorf("%d:%s:out: got %q; want %q", i, tt.desc, got, tt.out) - } - - // Calls tt.t.Transform for the remainder of the input. We use this to test - // the nSrc return value. - out := make([]byte, large) - n := copy(out, dst[:nDst]) - nDst, _, _ = tt.t.Transform(out[n:], src[nSrc:], true) - if got, want := string(out[:n+nDst]), tt.outFull; got != want { - t.Errorf("%d:%s:outFull: got %q; want %q", i, tt.desc, got, want) - } -} - -func idem(r rune) rune { return r } - -func TestMap(t *testing.T) { - runes := []rune{'a', 'ç', '中', '\U00012345', 'a'} - // Default mapper used for this test. - rotate := Map(func(r rune) rune { - for i, m := range runes { - if m == r { - return runes[i+1] - } - } - return r - }) - - for i, tt := range []transformTest{{ - desc: "empty", - szDst: large, - atEOF: true, - in: "", - out: "", - outFull: "", - t: rotate, - }, { - desc: "no change", - szDst: 1, - atEOF: true, - in: "b", - out: "b", - outFull: "b", - t: rotate, - }, { - desc: "short dst", - szDst: 2, - atEOF: true, - in: "aaaa", - out: "ç", - outFull: "çççç", - err: transform.ErrShortDst, - t: rotate, - }, { - desc: "short dst ascii, no change", - szDst: 2, - atEOF: true, - in: "bbb", - out: "bb", - outFull: "bbb", - err: transform.ErrShortDst, - t: rotate, - }, { - desc: "short dst writing error", - szDst: 2, - atEOF: false, - in: "a\x80", - out: "ç", - outFull: "ç\ufffd", - err: transform.ErrShortDst, - t: rotate, - }, { - desc: "short dst writing incomplete rune", - szDst: 2, - atEOF: true, - in: "a\xc0", - out: "ç", - outFull: "ç\ufffd", - err: transform.ErrShortDst, - t: rotate, - }, { - desc: "short dst, longer", - szDst: 5, - atEOF: true, - in: "Hellø", - out: "Hell", - outFull: "Hellø", - err: transform.ErrShortDst, - t: rotate, - }, { - desc: "short dst, single", - szDst: 1, - atEOF: false, - in: "ø", - out: "", - outFull: "ø", - err: transform.ErrShortDst, - t: Map(idem), - }, { - desc: "short dst, longer, writing error", - szDst: 8, - atEOF: false, - in: "\x80Hello\x80", - out: "\ufffdHello", - outFull: "\ufffdHello\ufffd", - err: transform.ErrShortDst, - t: rotate, - }, { - desc: "short src", - szDst: 2, - atEOF: false, - in: "a\xc2", - out: "ç", - outFull: "ç\ufffd", - err: transform.ErrShortSrc, - t: rotate, - }, { - desc: "invalid input, atEOF", - szDst: large, - atEOF: true, - in: "\x80", - out: "\ufffd", - outFull: "\ufffd", - t: rotate, - }, { - desc: "invalid input, !atEOF", - szDst: large, - atEOF: false, - in: "\x80", - out: "\ufffd", - outFull: "\ufffd", - t: rotate, - }, { - desc: "invalid input, incomplete rune atEOF", - szDst: large, - atEOF: true, - in: "\xc0", - out: "\ufffd", - outFull: "\ufffd", - t: rotate, - }, { - desc: "misc correct", - szDst: large, - atEOF: true, - in: "a\U00012345 ç!", - out: "ça 中!", - outFull: "ça 中!", - t: rotate, - }, { - desc: "misc correct and invalid", - szDst: large, - atEOF: true, - in: "Hello\x80 w\x80orl\xc0d!\xc0", - out: "Hello\ufffd w\ufffdorl\ufffdd!\ufffd", - outFull: "Hello\ufffd w\ufffdorl\ufffdd!\ufffd", - t: rotate, - }, { - desc: "misc correct and invalid, short src", - szDst: large, - atEOF: false, - in: "Hello\x80 w\x80orl\xc0d!\xc2", - out: "Hello\ufffd w\ufffdorl\ufffdd!", - outFull: "Hello\ufffd w\ufffdorl\ufffdd!\ufffd", - err: transform.ErrShortSrc, - t: rotate, - }, { - desc: "misc correct and invalid, short src, replacing RuneError", - szDst: large, - atEOF: false, - in: "Hel\ufffdlo\x80 w\x80orl\xc0d!\xc2", - out: "Hel?lo? w?orl?d!", - outFull: "Hel?lo? w?orl?d!?", - err: transform.ErrShortSrc, - t: Map(func(r rune) rune { - if r == utf8.RuneError { - return '?' - } - return r - }), - }} { - tt.check(t, i) - } -} - -func TestRemove(t *testing.T) { - remove := Remove(Predicate(func(r rune) bool { - return strings.ContainsRune("aeiou\u0300\uFF24\U00012345", r) - })) - - for i, tt := range []transformTest{ - 0: { - szDst: large, - atEOF: true, - in: "", - out: "", - outFull: "", - t: remove, - }, - 1: { - szDst: 0, - atEOF: true, - in: "aaaa", - out: "", - outFull: "", - t: remove, - }, - 2: { - szDst: 1, - atEOF: true, - in: "aaaa", - out: "", - outFull: "", - t: remove, - }, - 3: { - szDst: 1, - atEOF: true, - in: "baaaa", - out: "b", - outFull: "b", - t: remove, - }, - 4: { - szDst: 2, - atEOF: true, - in: "açaaa", - out: "ç", - outFull: "ç", - t: remove, - }, - 5: { - szDst: 2, - atEOF: true, - in: "aaaç", - out: "ç", - outFull: "ç", - t: remove, - }, - 6: { - szDst: 2, - atEOF: false, - in: "a\x80", - out: "", - outFull: "\ufffd", - err: transform.ErrShortDst, - t: remove, - }, - 7: { - szDst: 1, - atEOF: true, - in: "a\xc0", - out: "", - outFull: "\ufffd", - err: transform.ErrShortDst, - t: remove, - }, - 8: { - szDst: 1, - atEOF: false, - in: "a\xc2", - out: "", - outFull: "\ufffd", - err: transform.ErrShortSrc, - t: remove, - }, - 9: { - szDst: large, - atEOF: true, - in: "\x80", - out: "\ufffd", - outFull: "\ufffd", - t: remove, - }, - 10: { - szDst: large, - atEOF: false, - in: "\x80", - out: "\ufffd", - outFull: "\ufffd", - t: remove, - }, - 11: { - szDst: large, - atEOF: true, - in: "\xc0", - out: "\ufffd", - outFull: "\ufffd", - t: remove, - }, - 12: { - szDst: large, - atEOF: true, - in: "Hello \U00012345world!", - out: "Hll wrld!", - outFull: "Hll wrld!", - t: remove, - }, - 13: { - szDst: large, - atEOF: true, - in: "Hello\x80 w\x80orl\xc0d!\xc0", - out: "Hll\ufffd w\ufffdrl\ufffdd!\ufffd", - outFull: "Hll\ufffd w\ufffdrl\ufffdd!\ufffd", - t: remove, - }, - 14: { - szDst: large, - atEOF: false, - in: "Hello\x80 w\x80orl\xc0d!\xc2", - out: "Hll\ufffd w\ufffdrl\ufffdd!", - outFull: "Hll\ufffd w\ufffdrl\ufffdd!\ufffd", - err: transform.ErrShortSrc, - t: remove, - }, - 15: { - szDst: large, - atEOF: false, - in: "Hel\ufffdlo\x80 w\x80orl\xc0d!\xc2", - out: "Hello world!", - outFull: "Hello world!", - err: transform.ErrShortSrc, - t: Remove(Predicate(func(r rune) bool { return r == utf8.RuneError })), - }, - 16: { - szDst: 4, - atEOF: true, - in: "Hellø", - out: "Hll", - outFull: "Hllø", - err: transform.ErrShortDst, - t: remove, - }, - 17: { - szDst: 4, - atEOF: false, - in: "Hellø", - out: "Hll", - outFull: "Hllø", - err: transform.ErrShortDst, - t: remove, - }, - 18: { - szDst: 8, - atEOF: false, - in: "\x80Hello\uFF24\x80", - out: "\ufffdHll", - outFull: "\ufffdHll\ufffd", - err: transform.ErrShortDst, - t: remove, - }, - } { - tt.check(t, i) - } -} - -func TestMapAlloc(t *testing.T) { - if n := testing.AllocsPerRun(3, func() { - Map(idem).Transform(nil, nil, false) - }); n > 0 { - t.Errorf("got %f; want 0", n) - } -} - -func rmNop(r rune) bool { return false } - -func TestRemoveAlloc(t *testing.T) { - if n := testing.AllocsPerRun(3, func() { - Remove(Predicate(rmNop)).Transform(nil, nil, false) - }); n > 0 { - t.Errorf("got %f; want 0", n) - } -} - -func BenchmarkRemove(b *testing.B) { - dst := make([]byte, len(input)) - src := []byte(input) - - r := Remove(Predicate(func(r rune) bool { return r == 'e' })) - b.ResetTimer() - - for i := 0; i < b.N; i++ { - r.Transform(dst, src, true) - } -} - -func BenchmarkMapAll(b *testing.B) { - dst := make([]byte, 2*len(input)) - src := []byte(input) - - r := Map(func(r rune) rune { return 'a' }) - b.ResetTimer() - - for i := 0; i < b.N; i++ { - r.Transform(dst, src, true) - } -} - -func BenchmarkMapNone(b *testing.B) { - dst := make([]byte, 2*len(input)) - src := []byte(input) - - r := Map(func(r rune) rune { return r }) - b.ResetTimer() - - for i := 0; i < b.N; i++ { - r.Transform(dst, src, true) - } -} - -var ( - input = strings.Repeat("Thé qüick brøwn føx jumps øver the lazy døg. ", 100) -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/index.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/index.go deleted file mode 100644 index 64820ad9..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/index.go +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Note: this file is identical to the file text/collate/index.go. Both files -// will be removed when the new colltab package is finished and in use. - -package search - -// tableIndex holds information for constructing a table -// for a certain locale based on the main table. -type tableIndex struct { - lookupOffset uint32 - valuesOffset uint32 -} - -func (t tableIndex) TrieIndex() []uint16 { - return mainLookup[:] -} - -func (t tableIndex) TrieValues() []uint32 { - return mainValues[:] -} - -func (t tableIndex) FirstBlockOffsets() (lookup, value uint16) { - return uint16(t.lookupOffset), uint16(t.valuesOffset) -} - -func (t tableIndex) ExpandElems() []uint32 { - return mainExpandElem[:] -} - -func (t tableIndex) ContractTries() []struct{ l, h, n, i uint8 } { - return mainCTEntries[:] -} - -func (t tableIndex) ContractElems() []uint32 { - return mainContractElem[:] -} - -func (t tableIndex) MaxContractLen() int { - return 18 // TODO: generate -} - -func (t tableIndex) VariableTop() uint32 { - return varTop -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/pattern.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/pattern.go deleted file mode 100644 index 16a052e7..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/pattern.go +++ /dev/null @@ -1,156 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package search - -import ( - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" - newcolltab "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab" -) - -// TODO: handle variable primary weights? - -func (p *Pattern) deleteEmptyElements() { - k := 0 - for _, e := range p.ce { - if !isIgnorable(p.m, e) { - p.ce[k] = e - k++ - } - } - p.ce = p.ce[:k] -} - -func isIgnorable(m *Matcher, e colltab.Elem) bool { - if e.Primary() > 0 { - return false - } - if e.Secondary() > 0 { - if !m.ignoreDiacritics { - return false - } - // Primary value is 0 and ignoreDiacritics is true. In this case we - // ignore the tertiary element, as it only pertains to the modifier. - return true - } - // TODO: further distinguish once we have the new implementation. - if !(m.ignoreWidth || m.ignoreCase) && e.Tertiary() > 0 { - return false - } - // TODO: we ignore the Quaternary level for now. - return true -} - -// TODO: Use a Boyer-Moore-like algorithm (probably Sunday) for searching. - -func (p *Pattern) forwardSearch(it *newcolltab.Iter) (start, end int) { - for start := 0; it.Next(); it.Reset(start) { - nextStart := it.End() - if end := p.searchOnce(it); end != -1 { - return start, end - } - start = nextStart - } - return -1, -1 -} - -func (p *Pattern) anchoredForwardSearch(it *newcolltab.Iter) (start, end int) { - if it.Next() { - if end := p.searchOnce(it); end != -1 { - return 0, end - } - } - return -1, -1 -} - -// next advances to the next weight in a pattern. f must return one of the -// weights of a collation element. next will advance to the first non-zero -// weight and return this weight and true if it exists, or 0, false otherwise. -func (p *Pattern) next(i *int, f func(colltab.Elem) int) (weight int, ok bool) { - for *i < len(p.ce) { - v := f(p.ce[*i]) - *i++ - if v != 0 { - // Skip successive ignorable values. - for ; *i < len(p.ce) && f(p.ce[*i]) == 0; *i++ { - } - return v, true - } - } - return 0, false -} - -// TODO: remove this function once Elem is internal and Tertiary returns int. -func tertiary(e colltab.Elem) int { - return int(e.Tertiary()) -} - -// searchOnce tries to match the pattern s.p at the text position i. s.buf needs -// to be filled with collation elements of the first segment, where n is the -// number of source bytes consumed for this segment. It will return the end -// position of the match or -1. -func (p *Pattern) searchOnce(it *newcolltab.Iter) (end int) { - var pLevel [4]int - - m := p.m - for { - k := 0 - for ; k < it.N; k++ { - if v := it.Elems[k].Primary(); v > 0 { - if w, ok := p.next(&pLevel[0], colltab.Elem.Primary); !ok || v != w { - return -1 - } - } - - if !m.ignoreDiacritics { - if v := it.Elems[k].Secondary(); v > 0 { - if w, ok := p.next(&pLevel[1], colltab.Elem.Secondary); !ok || v != w { - return -1 - } - } - } else if it.Elems[k].Primary() == 0 { - // We ignore tertiary values of collation elements of the - // secondary level. - continue - } - - // TODO: distinguish between case and width. This will be easier to - // implement after we moved to the new collation implementation. - if !m.ignoreWidth && !m.ignoreCase { - if v := it.Elems[k].Tertiary(); v > 0 { - if w, ok := p.next(&pLevel[2], tertiary); !ok || int(v) != w { - return -1 - } - } - } - // TODO: check quaternary weight - } - it.Discard() // Remove the current segment from the buffer. - - // Check for completion. - switch { - // If any of these cases match, we are not at the end. - case pLevel[0] < len(p.ce): - case !m.ignoreDiacritics && pLevel[1] < len(p.ce): - case !(m.ignoreWidth || m.ignoreCase) && pLevel[2] < len(p.ce): - default: - // At this point, both the segment and pattern has matched fully. - // However, the segment may still be have trailing modifiers. - // This can be verified by another call to next. - end = it.End() - if it.Next() && it.Elems[0].Primary() == 0 { - if !m.ignoreDiacritics { - return -1 - } - end = it.End() - } - return end - } - - // Fill the buffer with the next batch of collation elements. - if !it.Next() { - return -1 - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/pattern_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/pattern_test.go deleted file mode 100644 index 275afee6..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/pattern_test.go +++ /dev/null @@ -1,357 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package search - -import ( - "reflect" - "strings" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -func TestCompile(t *testing.T) { - for i, tc := range []struct { - desc string - pattern string - options []Option - n int - }{{ - desc: "empty", - pattern: "", - n: 0, - }, { - desc: "single", - pattern: "a", - n: 1, - }, { - desc: "keep modifier", - pattern: "a\u0300", // U+0300: COMBINING GRAVE ACCENT - n: 2, - }, { - desc: "remove modifier", - pattern: "a\u0300", // U+0300: COMBINING GRAVE ACCENT - options: []Option{IgnoreDiacritics}, - n: 1, - }, { - desc: "single with double collation element", - pattern: "ä", - n: 2, - }, { - desc: "leading variable", - pattern: " a", - n: 2, - }, { - desc: "trailing variable", - pattern: "aa ", - n: 3, - }, { - desc: "leading and trailing variable", - pattern: " äb ", - n: 5, - }, { - desc: "keep interior variable", - pattern: " ä b ", - n: 6, - }, { - desc: "keep interior variables", - pattern: " b ä ", - n: 7, - }, { - desc: "remove ignoreables (zero-weights across the board)", - pattern: "\u009Db\u009Dä\u009D", // U+009D: OPERATING SYSTEM COMMAND - n: 3, - }} { - m := New(language.Und, tc.options...) - p := m.CompileString(tc.pattern) - if len(p.ce) != tc.n { - t.Errorf("%d:%s: Compile(%+q): got %d; want %d", i, tc.desc, tc.pattern, len(p.ce), tc.n) - } - } -} - -func TestNorm(t *testing.T) { - // U+0300: COMBINING GRAVE ACCENT (CCC=230) - // U+031B: COMBINING HORN (CCC=216) - for _, tc := range []struct { - desc string - a string - b string - want bool // a and b compile into the same pattern? - }{{ - "simple", - "eee\u0300\u031b", - "eee\u031b\u0300", - true, - }, { - "large number of modifiers in pattern", - strings.Repeat("\u0300", 29) + "\u0318", - "\u0318" + strings.Repeat("\u0300", 29), - true, - }, { - "modifier overflow in pattern", - strings.Repeat("\u0300", 30) + "\u0318", - "\u0318" + strings.Repeat("\u0300", 30), - false, - }} { - m := New(language.Und) - a := m.CompileString(tc.a) - b := m.CompileString(tc.b) - if got := reflect.DeepEqual(a, b); got != tc.want { - t.Errorf("Compile(a) == Compile(b) == %v; want %v", got, tc.want) - } - } -} - -func TestForwardSearch(t *testing.T) { - for i, tc := range []struct { - desc string - tag string - options []Option - pattern string - text string - want []int - }{{ - // The semantics of an empty search is to match nothing. - // TODO: change this to be in line with strings.Index? It is quite a - // different beast, so not sure yet. - - desc: "empty pattern and text", - tag: "und", - pattern: "", - text: "", - want: nil, // TODO: consider: []int{0, 0}, - }, { - desc: "non-empty pattern and empty text", - tag: "und", - pattern: " ", - text: "", - want: nil, - }, { - desc: "empty pattern and non-empty text", - tag: "und", - pattern: "", - text: "abc", - want: nil, // TODO: consider: []int{0, 0, 1, 1, 2, 2, 3, 3}, - }, { - // Variable-only patterns. We don't support variables at the moment, - // but verify that, given this, the behavior is indeed as expected. - - desc: "exact match of variable", - tag: "und", - pattern: " ", - text: " ", - want: []int{0, 1}, - }, { - desc: "variables not handled by default", - tag: "und", - pattern: "- ", - text: " -", - want: nil, // Would be (1, 2) for a median match with variable}. - }, { - desc: "multiple subsequent identical variables", - tag: "und", - pattern: " ", - text: " ", - want: []int{0, 1, 1, 2, 2, 3, 3, 4}, - }, { - desc: "text with variables", - tag: "und", - options: []Option{IgnoreDiacritics}, - pattern: "abc", - text: "3 abc 3", - want: []int{2, 5}, - }, { - desc: "pattern with interior variables", - tag: "und", - options: []Option{IgnoreDiacritics}, - pattern: "a b c", - text: "3 a b c abc a b c 3", - want: []int{2, 7}, // Would have 3 matches using variable. - - // TODO: Different variable handling settings. - }, { - // Options. - - desc: "match all levels", - tag: "und", - pattern: "Abc", - text: "abcAbcABCÃbcábc", - want: []int{3, 6}, - }, { - desc: "ignore diacritics in text", - tag: "und", - options: []Option{IgnoreDiacritics}, - pattern: "Abc", - text: "Ãbc", - want: []int{0, 4}, - }, { - desc: "ignore diacritics in pattern", - tag: "und", - options: []Option{IgnoreDiacritics}, - pattern: "Ãbc", - text: "Abc", - want: []int{0, 3}, - }, { - desc: "ignore diacritics", - tag: "und", - options: []Option{IgnoreDiacritics}, - pattern: "Abc", - text: "abcAbcABCÃbcábc", - want: []int{3, 6, 9, 13}, - }, { - desc: "ignore case", - tag: "und", - options: []Option{IgnoreCase}, - pattern: "Abc", - text: "abcAbcABCÃbcábc", - want: []int{0, 3, 3, 6, 6, 9}, - }, { - desc: "ignore case and diacritics", - tag: "und", - options: []Option{IgnoreCase, IgnoreDiacritics}, - pattern: "Abc", - text: "abcAbcABCÃbcábc", - want: []int{0, 3, 3, 6, 6, 9, 9, 13, 13, 17}, - }, { - desc: "ignore width to fullwidth", - tag: "und", - options: []Option{IgnoreWidth}, - pattern: "abc", - text: "123 \uFF41\uFF42\uFF43 123", // U+FF41-3: FULLWIDTH LATIN SMALL LETTER A-C - want: []int{4, 13}, - }, { - // TODO: distinguish between case and width. - desc: "don't ignore width to fullwidth, ignoring only case", - tag: "und", - options: []Option{IgnoreCase}, - pattern: "abc", - text: "123 \uFF41\uFF42\uFF43 123", // U+FF41-3: FULLWIDTH LATIN SMALL LETTER A-C - want: []int{4, 13}, - }, { - desc: "ignore width to fullwidth and diacritics", - tag: "und", - options: []Option{IgnoreWidth, IgnoreDiacritics}, - pattern: "abc", - text: "123 \uFF41\uFF42\uFF43 123", // U+FF41-3: FULLWIDTH LATIN SMALL LETTER A-C - want: []int{4, 13}, - }, { - desc: "whole grapheme, single rune", - tag: "und", - pattern: "eee", - text: "123 eeé 123", - want: nil, - }, { - // Note: rules on when to apply contractions may, for certain languages, - // differ between search and collation. For example, "ch" is not - // considered a contraction for the purpose of searching in Spanish. - // Therefore, be careful picking this test. - desc: "whole grapheme, contractions", - tag: "da", - pattern: "aba", - // Fails at the primary level, because "aa" is a contraction. - text: "123 abaa 123", - want: []int{}, - }, { - desc: "whole grapheme, trailing modifier", - tag: "und", - pattern: "eee", - text: "123 eee\u0300 123", // U+0300: COMBINING GRAVE ACCENT - want: nil, - }, { - // Language-specific matching. - - desc: "", - tag: "da", - options: []Option{IgnoreCase}, - pattern: "Ã…rhus", - text: "AarhusÃ…rhus Ã…rhus ", - want: []int{0, 6, 6, 12, 14, 20}, - }, { - desc: "", - tag: "da", - options: []Option{IgnoreCase}, - pattern: "Aarhus", - text: "Ã…rhus Aarhus", - want: []int{0, 6, 7, 13}, - }, { - desc: "", - tag: "en", // Ã… does not match A for English. - options: []Option{IgnoreCase}, - pattern: "Aarhus", - text: "Ã…rhus", - want: nil, - }, { - desc: "ignore modifier in text", - options: []Option{IgnoreDiacritics}, - tag: "und", - pattern: "eee", - text: "123 eee\u0300 123", // U+0300: COMBINING GRAVE ACCENT - want: []int{4, 9}, // Matches on grapheme boundary. - }, { - desc: "ignore multiple modifiers in text", - options: []Option{IgnoreDiacritics}, - tag: "und", - pattern: "eee", - text: "123 eee\u0300\u0300 123", // U+0300: COMBINING GRAVE ACCENT - want: []int{4, 11}, // Matches on grapheme boundary. - }, { - desc: "ignore modifier in pattern", - options: []Option{IgnoreDiacritics}, - tag: "und", - pattern: "eee\u0300", // U+0300: COMBINING GRAVE ACCENT - text: "123 eee 123", - want: []int{4, 7}, - }, { - desc: "ignore multiple modifiers in pattern", - options: []Option{IgnoreDiacritics}, - tag: "und", - pattern: "eee\u0300\u0300", // U+0300: COMBINING GRAVE ACCENT - text: "123 eee 123", - want: []int{4, 7}, - }, { - desc: "match non-normalized pattern", - tag: "und", - // U+0300: COMBINING GRAVE ACCENT (CCC=230) - // U+031B: COMBINING HORN (CCC=216) - pattern: "eee\u0300\u031b", - text: "123 eee\u031b\u0300 123", - want: []int{4, 11}, - }, { - desc: "match non-normalized text", - tag: "und", - // U+0300: COMBINING GRAVE ACCENT (CCC=230) - // U+031B: COMBINING HORN (CCC=216) - pattern: "eee\u031b\u0300", - text: "123 eee\u0300\u031b 123", - want: []int{4, 11}, - }} { - m := New(language.MustParse(tc.tag), tc.options...) - p := m.CompileString(tc.pattern) - for j := 0; j < len(tc.text); { - start, end := p.IndexString(tc.text[j:]) - if start == -1 && end == -1 { - j++ - continue - } - start += j - end += j - j = end - if len(tc.want) == 0 { - t.Errorf("%d:%s: found unexpected result [%d %d]", i, tc.desc, start, end) - break - } - if tc.want[0] != start || tc.want[1] != end { - t.Errorf("%d:%s: got [%d %d]; want %v", i, tc.desc, start, end, tc.want[:2]) - tc.want = tc.want[2:] - break - } - tc.want = tc.want[2:] - } - if len(tc.want) != 0 { - t.Errorf("%d:%s: %d extra results", i, tc.desc, len(tc.want)/2) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/search.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/search.go deleted file mode 100644 index 3b90a571..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/search.go +++ /dev/null @@ -1,238 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run ../collate/maketables.go -cldr=23 -unicode=6.2.0 -types=search,searchjl -package=search - -// Package search provides language-specific search and string matching. -// -// Natural language matching can be intricate. For example, Danish will insist -// "Ã…rhus" and "Aarhus" are the same name and Turkish will match I to ı (note -// the lack of a dot) in a case-insensitive match. This package handles such -// language-specific details. -// -// Text passed to any of the calls in this message does not need to be -// normalized. -package search - -import ( - "strings" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/collate/colltab" - newcolltab "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/colltab" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/language" -) - -// An Option configures a Matcher. -type Option func(*Matcher) - -var ( - // WholeWord restricts matches to complete words. The default is to match at - // the character level. - WholeWord Option = nil - - // Exact requires that two strings are their exact equivalent. For example - // Ã¥ would not match aa in Danish. It overrides any of the ignore options. - Exact Option = nil - - // Loose causes case, diacritics and width to be ignored. - Loose Option = loose - - // IgnoreCase enables case-insensitive search. - IgnoreCase Option = ignoreCase - - // IgnoreDiacritics causes diacritics to be ignored ("ö" == "o"). - IgnoreDiacritics Option = ignoreDiacritics - - // IgnoreWidth equates narrow with wide variants. - IgnoreWidth Option = ignoreWidth -) - -func ignoreDiacritics(m *Matcher) { m.ignoreDiacritics = true } -func ignoreCase(m *Matcher) { m.ignoreCase = true } -func ignoreWidth(m *Matcher) { m.ignoreWidth = true } -func loose(m *Matcher) { - ignoreDiacritics(m) - ignoreCase(m) - ignoreWidth(m) -} - -var ( - // Supported lists the languages for which search differs from its parent. - Supported language.Coverage - - tags []language.Tag -) - -func init() { - ids := strings.Split(availableLocales, ",") - tags = make([]language.Tag, len(ids)) - for i, s := range ids { - tags[i] = language.Raw.MustParse(s) - } - Supported = language.NewCoverage(tags) -} - -// New returns a new Matcher for the given language and options. -func New(t language.Tag, opts ...Option) *Matcher { - m := &Matcher{ - w: colltab.Init(locales[newcolltab.MatchLang(t, tags)]), - } - for _, f := range opts { - f(m) - } - return m -} - -// A Matcher implements language-specific string matching. -type Matcher struct { - w colltab.Weighter - ignoreCase bool - ignoreWidth bool - ignoreDiacritics bool -} - -// An IndexOption specifies how the Index methods of Pattern or Matcher should -// match the input. -type IndexOption byte - -const ( - // Anchor restricts the search to the start (or end for Backwards) of the - // text. - Anchor IndexOption = 1 << iota - - // Backwards starts the search from the end of the text. - Backwards - - anchorBackwards = Anchor | Backwards -) - -// Index reports the start and end position of the first occurrence of pat in b -// or -1, -1 if pat is not present. -func (m *Matcher) Index(b, pat []byte, opts ...IndexOption) (start, end int) { - // TODO: implement optimized version that does not use a pattern. - return m.Compile(pat).Index(b, opts...) -} - -// IndexString reports the start and end position of the first occurrence of pat -// in s or -1, -1 if pat is not present. -func (m *Matcher) IndexString(s, pat string, opts ...IndexOption) (start, end int) { - // TODO: implement optimized version that does not use a pattern. - return m.CompileString(pat).IndexString(s, opts...) -} - -// Equal reports whether a and b are equivalent. -func (m *Matcher) Equal(a, b []byte) bool { - _, end := m.Index(a, b, Anchor) - return end == len(a) -} - -// EqualString reports whether a and b are equivalent. -func (m *Matcher) EqualString(a, b string) bool { - _, end := m.IndexString(a, b, Anchor) - return end == len(a) -} - -// Compile compiles and returns a pattern that can be used for faster searching. -func (m *Matcher) Compile(b []byte) *Pattern { - p := &Pattern{m: m} - iter := newcolltab.Iter{Weighter: m.w} - for iter.SetInput(b); iter.Next(); { - } - p.ce = iter.Elems - p.deleteEmptyElements() - return p -} - -// CompileString compiles and returns a pattern that can be used for faster -// searching. -func (m *Matcher) CompileString(s string) *Pattern { - p := &Pattern{m: m} - iter := newcolltab.Iter{Weighter: m.w} - for iter.SetInputString(s); iter.Next(); { - } - p.ce = iter.Elems - p.deleteEmptyElements() - return p -} - -// A Pattern is a compiled search string. It is safe for concurrent use. -type Pattern struct { - m *Matcher - ce []colltab.Elem -} - -// Design note (TODO remove): -// The cost of retrieving collation elements for each rune, which is used for -// search as well, is not trivial. Also, algorithms like Boyer-Moore and -// Sunday require some additional precomputing. - -// Index reports the start and end position of the first occurrence of p in b -// or -1, -1 if p is not present. -func (p *Pattern) Index(b []byte, opts ...IndexOption) (start, end int) { - // Pick a large enough buffer such that we likely do not need to allocate - // and small enough to not cause too much overhead initializing. - var buf [8]colltab.Elem - - it := &newcolltab.Iter{ - Weighter: p.m.w, - Elems: buf[:0], - } - it.SetInput(b) - - var optMask IndexOption - for _, o := range opts { - optMask |= o - } - - switch optMask { - case 0: - return p.forwardSearch(it) - case Anchor: - return p.anchoredForwardSearch(it) - case Backwards, anchorBackwards: - panic("TODO: implement") - default: - panic("unrecognized option") - } -} - -// IndexString reports the start and end position of the first occurrence of p -// in s or -1, -1 if p is not present. -func (p *Pattern) IndexString(s string, opts ...IndexOption) (start, end int) { - // Pick a large enough buffer such that we likely do not need to allocate - // and small enough to not cause too much overhead initializing. - var buf [8]colltab.Elem - - it := &newcolltab.Iter{ - Weighter: p.m.w, - Elems: buf[:0], - } - it.SetInputString(s) - - var optMask IndexOption - for _, o := range opts { - optMask |= o - } - - switch optMask { - case 0: - return p.forwardSearch(it) - case Anchor: - return p.anchoredForwardSearch(it) - case Backwards, anchorBackwards: - panic("TODO: implement") - default: - panic("unrecognized option") - } -} - -// TODO: -// - Maybe IndexAll methods (probably not necessary). -// - Some way to match patterns in a Reader (a bit tricky). -// - Some fold transformer that folds text to comparable text, based on the -// search options. This is a common technique, though very different from the -// collation-based design of this package. It has a somewhat different use -// case, so probably makes sense to support both. Should probably be in a -// different package, though, as it uses completely different kind of tables -// (based on norm, cases, width and range tables.) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/tables.go deleted file mode 100644 index 09beb8bb..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/search/tables.go +++ /dev/null @@ -1,12448 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package search - -// UnicodeVersion is the Unicode version from which the tables in this package are derived. -const UnicodeVersion = "6.2.0" - -// CLDRVersion is the CLDR version from which the tables in this package are derived. -const CLDRVersion = "23" - -var availableLocales = "und,az,bs,ca,cs,da,de,en,en-US,es,fi,fo,fr,he,hr,is,kl,ko,ko-u-co-searchjl,nb,nn,se,sk,sr-Latn,sv,tr" - -const varTop = 0x30e - -var locales = [...]tableIndex{ - { // und - lookupOffset: 0x28, - valuesOffset: 0x1f6, - }, - { // az - lookupOffset: 0x1d, - valuesOffset: 0x1b4, - }, - { // bs - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // ca - lookupOffset: 0x20, - valuesOffset: 0x1d8, - }, - { // cs - lookupOffset: 0x22, - valuesOffset: 0x1dc, - }, - { // da - lookupOffset: 0x25, - valuesOffset: 0x1e6, - }, - { // de - lookupOffset: 0x27, - valuesOffset: 0x1f0, - }, - { // en - lookupOffset: 0x28, - valuesOffset: 0x1f6, - }, - { // en-US - lookupOffset: 0x28, - valuesOffset: 0x1f6, - }, - { // es - lookupOffset: 0x29, - valuesOffset: 0x1f8, - }, - { // fi - lookupOffset: 0x2f, - valuesOffset: 0x1fb, - }, - { // fo - lookupOffset: 0x25, - valuesOffset: 0x1e6, - }, - { // fr - lookupOffset: 0x28, - valuesOffset: 0x1f6, - }, - { // he - lookupOffset: 0x31, - valuesOffset: 0x20b, - }, - { // hr - lookupOffset: 0x33, - valuesOffset: 0x210, - }, - { // is - lookupOffset: 0x35, - valuesOffset: 0x217, - }, - { // kl - lookupOffset: 0x36, - valuesOffset: 0x221, - }, - { // ko - lookupOffset: 0x38, - valuesOffset: 0x1f6, - }, - { // ko-u-co-searchjl - lookupOffset: 0x3b, - valuesOffset: 0x0, - }, - { // nb - lookupOffset: 0x25, - valuesOffset: 0x22f, - }, - { // nn - lookupOffset: 0x25, - valuesOffset: 0x22f, - }, - { // se - lookupOffset: 0x3e, - valuesOffset: 0x231, - }, - { // sk - lookupOffset: 0x40, - valuesOffset: 0x23d, - }, - { // sr-Latn - lookupOffset: 0x15, - valuesOffset: 0x0, - }, - { // sv - lookupOffset: 0x42, - valuesOffset: 0x244, - }, - { // tr - lookupOffset: 0x48, - valuesOffset: 0x24c, - }, -} - -// mainExpandElem: 10841 entries, 43364 bytes -var mainExpandElem = [10841]uint32{ - // Block 0, offset 0x0 - 0x00000002, 0xAE604702, 0xAE603202, 0x00000002, 0xA000A51A, 0xA000BA1A, - 0x00000002, 0xA000A91A, 0xA000BA1A, 0x00000002, 0xA000AD1A, 0xA000BA1A, - 0x00000002, 0xA000B21A, 0xA000BA1A, 0x00000002, 0xA000B61A, 0xA000BA1A, - 0x00000002, 0xA000BA1A, 0xA000D11A, 0x00000004, 0x0003F484, 0x0029CE84, - 0x0029CC84, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029CE84, - 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029D084, 0x0003F69F, - 0x00000004, 0x0003F484, 0x0029CE84, 0x0029D284, 0x0003F69F, 0x00000004, - 0x0003F484, 0x0029CE84, 0x0029D484, 0x0003F69F, 0x00000004, 0x0003F484, - 0x0029CE84, 0x0029D684, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, - 0x0029D884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029DA84, - 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, - // Block 1, offset 0x40 - 0x0029DC84, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029DE84, - 0x0003F69F, 0x00000004, 0x0003F484, 0x0029D084, 0x0029CC84, 0x0003F69F, - 0x00000004, 0x0003F484, 0x0062AC84, 0x0063A884, 0x0003F69F, 0x00000004, - 0x0003F484, 0x0062B084, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, - 0x0062B284, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062B684, - 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062B884, 0x0063A884, - 0x0003F69F, 0x00000004, 0x0003F484, 0x0062BA84, 0x0063A884, 0x0003F69F, - 0x00000004, 0x0003F484, 0x0062BE84, 0x0063A884, 0x0003F69F, 0x00000004, - 0x0003F484, 0x0062C284, 0x0063A884, 0x0003F69F, 0x00000007, 0x0003F484, - 0x0062C284, 0x0063B884, 0x0062C484, 0x0063B084, 0x00646A84, 0x0003F69F, - 0x00000006, 0x0003F484, 0x0062C284, 0x0063B884, - // Block 2, offset 0x80 - 0x0062D084, 0x0063C284, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C484, - 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C484, 0x0063C284, - 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C884, 0x0063A884, 0x0003F69F, - 0x00000004, 0x0003F484, 0x0062CA84, 0x0063A884, 0x0003F69F, 0x00000004, - 0x0003F484, 0x0062CC84, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, - 0x0062CE84, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062D084, - 0x0063A884, 0x0003F69F, 0x00000004, 0x00050E84, 0x00050E84, 0x00050E84, - 0x00050E9F, 0x00000002, 0x40062C20, 0xAE603202, 0x00000002, 0x40062C20, - 0xAE603502, 0x00000002, 0x40062C20, 0xAE604502, 0x00000002, 0x40063620, - 0xAE603202, 0x00000002, 0x40063620, 0xAE603502, 0x00000002, 0x40063620, - 0xAE604502, 0x00000002, 0x40063820, 0xAE603202, - // Block 3, offset 0xc0 - 0x00000002, 0x40063820, 0xAE603502, 0x00000002, 0x40063820, 0xAE604502, - 0x00000002, 0x40084420, 0xA0105402, 0x00000002, 0x40084620, 0xA0105402, - 0x00000002, 0x40084C20, 0xA0105402, 0x00000002, 0x4008B820, 0xA0105402, - 0x00000002, 0x4008BC20, 0xA0105402, 0x00000002, 0x4008C020, 0xA0105402, - 0x00000002, 0x40091E20, 0xA0105402, 0x00000002, 0x40092620, 0xA0105402, - 0x00000002, 0x40092A20, 0xA0105402, 0x00000002, 0x40094020, 0xA0105402, - 0x00000002, 0x40094220, 0xA0105402, 0x00000002, 0x40094420, 0xA0105402, - 0x00000002, 0x40097820, 0xA0105402, 0x00000002, 0x40097A20, 0xA0105402, - 0x00000004, 0x00098484, 0x00098484, 0x00098484, 0x0009849F, 0x00000002, - 0x40099E20, 0xA0105402, 0x00000002, 0x4009AA20, 0xA0105402, 0x00000002, - 0x4009AC20, 0xA0105402, 0x00000002, 0x4009B020, - // Block 4, offset 0x100 - 0xA0105402, 0x00000002, 0x4009B820, 0xA0105402, 0x00000002, 0x4009DE20, - 0xA0105402, 0x00000002, 0x4009E220, 0xA0105402, 0x00000002, 0x4009E420, - 0xA0105402, 0x00000002, 0x4009F420, 0xA0105402, 0x00000002, 0x4009F620, - 0xA0105402, 0x00000002, 0x4009F820, 0xA0105402, 0x00000002, 0x4009FA20, - 0xA0105402, 0x00000002, 0x4009FC20, 0xA0105402, 0x00000002, 0x4009FE20, - 0xA0105402, 0x00000002, 0x400A0020, 0xA0105402, 0x00000002, 0x400A0220, - 0xA0105402, 0x00000002, 0x400A0820, 0xA0105402, 0x00000002, 0x400A0A20, - 0xA0105402, 0x00000002, 0x400A0C20, 0xA0105402, 0x00000002, 0x400A0E20, - 0xA0105402, 0x00000002, 0x400A1E20, 0xA0105402, 0x00000002, 0x400A2020, - 0xA0105402, 0x00000002, 0x400A4020, 0xA0105402, 0x00000002, 0x400A4C20, - 0xA0105402, 0x00000002, 0x400A4E20, 0xA0105402, - // Block 5, offset 0x140 - 0x00000002, 0x400A5220, 0xA0105402, 0x00000002, 0x400A5820, 0xA0105402, - 0x00000002, 0x400A5A20, 0xA0105402, 0x00000002, 0x400A5C20, 0xA0105402, - 0x00000002, 0x400A5E20, 0xA0105402, 0x00000002, 0x40164620, 0xA0105402, - 0x00000002, 0x4027CE20, 0xA0012802, 0x00000002, 0x4027D020, 0xA0012802, - 0x00000002, 0x4027D420, 0xA0812802, 0x00000002, 0x4027D820, 0xA0812802, - 0x00000002, 0x4029CC20, 0xA0013F02, 0x00000002, 0x4029CC20, 0xA0014002, - 0x00000002, 0x4029CC20, 0xA0014202, 0x00000002, 0x4029CC20, 0xA0014402, - 0x00000002, 0x4029CC20, 0xA0014502, 0x00000002, 0x4029CC20, 0xA0014602, - 0x00000002, 0x4029CC20, 0xA0014702, 0x00000002, 0x4029CC20, 0xA0014802, - 0x00000002, 0x4029CC20, 0xA0014902, 0x00000002, 0x4029CC20, 0xA0014A02, - 0x00000002, 0x4029CC20, 0xA0014B02, 0x00000002, - // Block 6, offset 0x180 - 0x4029CC20, 0xA0014B02, 0x00000002, 0x4029CC20, 0xA0014C02, 0x00000002, - 0x4029CC20, 0xA0014D02, 0x00000002, 0x4029CC20, 0xA0014E02, 0x00000002, - 0x4029CC20, 0xA0014F02, 0x00000002, 0x4029CC20, 0xA0015002, 0x00000002, - 0x4029CC20, 0xA0015102, 0x00000002, 0x4029CC20, 0xA0015202, 0x00000002, - 0x4029CC20, 0xA0015302, 0x00000002, 0x4029CC20, 0xA0015402, 0x00000002, - 0x4029CC20, 0xA0015502, 0x00000002, 0x4029CC20, 0xA0015602, 0x00000002, - 0x0029CC84, 0xA0015604, 0x00000002, 0x4029CC20, 0xA0015702, 0x00000002, - 0x4029CC20, 0xA0015802, 0x00000002, 0x4029CC20, 0xA0015902, 0x00000002, - 0x4029CC20, 0xA0015A02, 0x00000002, 0x4029CC20, 0xA0015B02, 0x00000002, - 0x4029CC20, 0xA0015C02, 0x00000002, 0x4029CC20, 0xA0015D02, 0x00000002, - 0x4029CC20, 0xA0015E02, 0x00000002, 0x4029CC20, - // Block 7, offset 0x1c0 - 0xA0015F02, 0x00000002, 0x4029CC20, 0xA0016002, 0x00000002, 0x4029CC20, - 0xA0016102, 0x00000002, 0x4029CC20, 0xA0016202, 0x00000002, 0x4029CC20, - 0xA0016302, 0x00000002, 0x4029CC20, 0xA0016402, 0x00000002, 0x4029CC20, - 0xA0016502, 0x00000002, 0x4029CC20, 0xA0016602, 0x00000002, 0x4029CC20, - 0xA0016802, 0x00000002, 0x4029CC20, 0xA0017202, 0x00000002, 0x4029CC20, - 0xA0017302, 0x00000002, 0x4029CC20, 0xA0017402, 0x00000003, 0x0029CC9E, - 0x0009589E, 0x0029D29E, 0x00000002, 0x4029CE20, 0xA0013F02, 0x00000002, - 0x4029CE20, 0xA0014002, 0x00000002, 0x4029CE20, 0xA0014102, 0x00000002, - 0x4029CE20, 0xA0014202, 0x00000002, 0x4029CE20, 0xA0014302, 0x00000002, - 0x4029CE20, 0xA0014402, 0x00000002, 0x4029CE20, 0xA0014502, 0x00000002, - 0x4029CE20, 0xA0014602, 0x00000002, 0x4029CE20, - // Block 8, offset 0x200 - 0xA0014702, 0x00000002, 0x4029CE20, 0xA0014802, 0x00000002, 0x4029CE20, - 0xA0014902, 0x00000002, 0x4029CE20, 0xA0014A02, 0x00000002, 0x4029CE20, - 0xA0014B02, 0x00000002, 0x4029CE20, 0xA0014B02, 0x00000002, 0x4029CE20, - 0xA0014B02, 0x00000002, 0x4029CE20, 0xA0014C02, 0x00000002, 0x4029CE20, - 0xA0014D02, 0x00000002, 0x4029CE20, 0xA0014E02, 0x00000002, 0x4029CE20, - 0xA0014F02, 0x00000002, 0x4029CE20, 0xA0015002, 0x00000002, 0x4029CE20, - 0xA0015102, 0x00000002, 0x4029CE20, 0xA0015102, 0x00000002, 0x4029CE20, - 0xA0015202, 0x00000002, 0x4029CE20, 0xA0015302, 0x00000002, 0x4029CE20, - 0xA0015402, 0x00000002, 0x4029CE20, 0xA0015502, 0x00000002, 0x4029CE20, - 0xA0015602, 0x00000002, 0x0029CE84, 0xA0015604, 0x00000002, 0x4029CE20, - 0xA0015702, 0x00000002, 0x4029CE20, 0xA0015802, - // Block 9, offset 0x240 - 0x00000002, 0x4029CE20, 0xA0015902, 0x00000002, 0x4029CE20, 0xA0015A02, - 0x00000002, 0x4029CE20, 0xA0015B02, 0x00000002, 0x4029CE20, 0xA0015C02, - 0x00000002, 0x4029CE20, 0xA0015D02, 0x00000002, 0x4029CE20, 0xA0015E02, - 0x00000002, 0x4029CE20, 0xA0015F02, 0x00000002, 0x4029CE20, 0xA0016002, - 0x00000002, 0x4029CE20, 0xA0016102, 0x00000002, 0x4029CE20, 0xA0016202, - 0x00000002, 0x4029CE20, 0xA0016302, 0x00000002, 0x4029CE20, 0xA0016402, - 0x00000002, 0x4029CE20, 0xA0016502, 0x00000002, 0x4029CE20, 0xA0016602, - 0x00000002, 0x4029CE20, 0xA0016702, 0x00000002, 0x4029CE20, 0xA0016802, - 0x00000002, 0x4029CE20, 0xA0016802, 0x00000002, 0x4029CE20, 0xA0016802, - 0x00000002, 0x4029CE20, 0xA0016802, 0x00000002, 0x4029CE20, 0xA0016A02, - 0x00000002, 0x4029CE20, 0xA0016B02, 0x00000002, - // Block 10, offset 0x280 - 0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002, - 0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002, - 0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002, - 0x4029CE20, 0xA0016D02, 0x00000002, 0x4029CE20, 0xA0016E02, 0x00000002, - 0x4029CE20, 0xA0016F02, 0x00000002, 0x4029CE20, 0xA0017002, 0x00000002, - 0x4029CE20, 0xA0017102, 0x00000002, 0x4029CE20, 0xA0017202, 0x00000002, - 0x4029CE20, 0xA0017302, 0x00000002, 0x4029CE20, 0xA0017402, 0x00000002, - 0x4029CE20, 0xA0017502, 0x00000002, 0x4029CE20, 0xA0017602, 0x00000002, - 0x4029CE20, 0xA0017702, 0x00000004, 0x0029CE9E, 0x0009589E, 0x0029CE9E, - 0x0029CC9E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029D09E, 0x00000003, - 0x0029CE9E, 0x0009589E, 0x0029D29E, 0x00000003, - // Block 11, offset 0x2c0 - 0x0029CE9E, 0x0009589E, 0x0029D49E, 0x00000003, 0x0029CE9E, 0x0009589E, - 0x0029D69E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029D89E, 0x00000003, - 0x0029CE9E, 0x0009589E, 0x0029DA9E, 0x00000003, 0x0029CE9E, 0x0009589E, - 0x0029DC9E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029DE9E, 0x00000002, - 0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CC86, 0x00000002, - 0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CC86, 0x00000002, - 0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CE86, 0x00000002, - 0x0029CE86, 0x0029D086, 0x00000002, 0x0029CE86, 0x0029D286, 0x00000002, - 0x0029CE86, 0x0029D486, 0x00000002, 0x0029CE86, 0x0029D686, 0x00000002, - 0x0029CE86, 0x0029D886, 0x00000002, 0x0029CE86, 0x0029DA86, 0x00000002, - 0x0029CE86, 0x0029DC86, 0x00000002, 0x0029CE86, - // Block 12, offset 0x300 - 0x0029DE86, 0x00000002, 0x4029D020, 0xA0013F02, 0x00000002, 0x4029D020, - 0xA0014002, 0x00000002, 0x4029D020, 0xA0014102, 0x00000002, 0x4029D020, - 0xA0014202, 0x00000002, 0x4029D020, 0xA0014302, 0x00000002, 0x4029D020, - 0xA0014402, 0x00000002, 0x4029D020, 0xA0014502, 0x00000002, 0x4029D020, - 0xA0014602, 0x00000002, 0x4029D020, 0xA0014702, 0x00000002, 0x4029D020, - 0xA0014802, 0x00000002, 0x4029D020, 0xA0014902, 0x00000002, 0x4029D020, - 0xA0014A02, 0x00000002, 0x4029D020, 0xA0014B02, 0x00000002, 0x4029D020, - 0xA0014B02, 0x00000002, 0x4029D020, 0xA0014B02, 0x00000002, 0x4029D020, - 0xA0014C02, 0x00000002, 0x4029D020, 0xA0014D02, 0x00000002, 0x4029D020, - 0xA0014E02, 0x00000002, 0x4029D020, 0xA0014F02, 0x00000002, 0x4029D020, - 0xA0015002, 0x00000002, 0x4029D020, 0xA0015102, - // Block 13, offset 0x340 - 0x00000002, 0x4029D020, 0xA0015202, 0x00000002, 0x4029D020, 0xA0015302, - 0x00000002, 0x4029D020, 0xA0015402, 0x00000002, 0x4029D020, 0xA0015502, - 0x00000002, 0x4029D020, 0xA0015602, 0x00000002, 0x0029D084, 0xA0015604, - 0x00000002, 0x4029D020, 0xA0015702, 0x00000002, 0x4029D020, 0xA0015802, - 0x00000002, 0x4029D020, 0xA0015902, 0x00000002, 0x4029D020, 0xA0015A02, - 0x00000002, 0x4029D020, 0xA0015B02, 0x00000002, 0x4029D020, 0xA0015C02, - 0x00000002, 0x4029D020, 0xA0015D02, 0x00000002, 0x4029D020, 0xA0015E02, - 0x00000002, 0x4029D020, 0xA0015F02, 0x00000002, 0x4029D020, 0xA0016002, - 0x00000002, 0x4029D020, 0xA0016102, 0x00000002, 0x4029D020, 0xA0016202, - 0x00000002, 0x4029D020, 0xA0016302, 0x00000002, 0x4029D020, 0xA0016402, - 0x00000002, 0x4029D020, 0xA0016502, 0x00000002, - // Block 14, offset 0x380 - 0x4029D020, 0xA0016602, 0x00000002, 0x4029D020, 0xA0016702, 0x00000002, - 0x4029D020, 0xA0016802, 0x00000002, 0x4029D020, 0xA0016802, 0x00000002, - 0x4029D020, 0xA0016802, 0x00000002, 0x4029D020, 0xA0016802, 0x00000002, - 0x4029D020, 0xA0016B02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, - 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, - 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, - 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, - 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, - 0x4029D020, 0xA0016E02, 0x00000002, 0x4029D020, 0xA0016F02, 0x00000002, - 0x4029D020, 0xA0017002, 0x00000002, 0x4029D020, 0xA0017102, 0x00000002, - 0x4029D020, 0xA0017202, 0x00000002, 0x4029D020, - // Block 15, offset 0x3c0 - 0xA0017302, 0x00000002, 0x4029D020, 0xA0017402, 0x00000002, 0x4029D020, - 0xA0017502, 0x00000002, 0x4029D020, 0xA0017602, 0x00000002, 0x4029D020, - 0xA0017702, 0x00000003, 0x0029D09E, 0x0009589E, 0x0029D29E, 0x00000003, - 0x0029D09E, 0x0009589E, 0x0029D69E, 0x00000002, 0x0029D086, 0x0029CC86, - 0x00000002, 0x0029D086, 0x0029CC86, 0x00000002, 0x4029D220, 0xA0013F02, - 0x00000002, 0x4029D220, 0xA0014002, 0x00000002, 0x4029D220, 0xA0014102, - 0x00000002, 0x4029D220, 0xA0014202, 0x00000002, 0x4029D220, 0xA0014302, - 0x00000002, 0x4029D220, 0xA0014402, 0x00000002, 0x4029D220, 0xA0014502, - 0x00000002, 0x4029D220, 0xA0014602, 0x00000002, 0x4029D220, 0xA0014702, - 0x00000002, 0x4029D220, 0xA0014802, 0x00000002, 0x4029D220, 0xA0014902, - 0x00000002, 0x4029D220, 0xA0014A02, 0x00000002, - // Block 16, offset 0x400 - 0x4029D220, 0xA0014B02, 0x00000002, 0x4029D220, 0xA0014B02, 0x00000002, - 0x4029D220, 0xA0014B02, 0x00000002, 0x4029D220, 0xA0014C02, 0x00000002, - 0x4029D220, 0xA0014D02, 0x00000002, 0x4029D220, 0xA0014E02, 0x00000002, - 0x4029D220, 0xA0014F02, 0x00000002, 0x4029D220, 0xA0015002, 0x00000002, - 0x4029D220, 0xA0015102, 0x00000002, 0x4029D220, 0xA0015202, 0x00000002, - 0x4029D220, 0xA0015302, 0x00000002, 0x4029D220, 0xA0015402, 0x00000002, - 0x4029D220, 0xA0015502, 0x00000002, 0x4029D220, 0xA0015602, 0x00000002, - 0x0029D284, 0xA0015604, 0x00000002, 0x4029D220, 0xA0015702, 0x00000002, - 0x4029D220, 0xA0015802, 0x00000002, 0x4029D220, 0xA0015902, 0x00000002, - 0x4029D220, 0xA0015A02, 0x00000002, 0x4029D220, 0xA0015B02, 0x00000002, - 0x4029D220, 0xA0015C02, 0x00000002, 0x4029D220, - // Block 17, offset 0x440 - 0xA0015D02, 0x00000002, 0x4029D220, 0xA0015E02, 0x00000002, 0x4029D220, - 0xA0015F02, 0x00000002, 0x4029D220, 0xA0016002, 0x00000002, 0x4029D220, - 0xA0016102, 0x00000002, 0x4029D220, 0xA0016202, 0x00000002, 0x4029D220, - 0xA0016302, 0x00000002, 0x4029D220, 0xA0016402, 0x00000002, 0x4029D220, - 0xA0016502, 0x00000002, 0x4029D220, 0xA0016602, 0x00000002, 0x4029D220, - 0xA0016702, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, - 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, - 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, - 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, - 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, - 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, - // Block 18, offset 0x480 - 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, - 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016E02, - 0x00000002, 0x4029D220, 0xA0016F02, 0x00000002, 0x4029D220, 0xA0017002, - 0x00000002, 0x4029D220, 0xA0017102, 0x00000002, 0x4029D220, 0xA0017202, - 0x00000002, 0x4029D220, 0xA0017302, 0x00000002, 0x4029D220, 0xA0017402, - 0x00000002, 0x4029D220, 0xA0017502, 0x00000002, 0x4029D220, 0xA0017602, - 0x00000002, 0x4029D220, 0xA0017702, 0x00000003, 0x0029D29E, 0x0009589E, - 0x0029D49E, 0x00000003, 0x0029D29E, 0x0009589E, 0x0029D69E, 0x00000003, - 0x0029D29E, 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029D286, 0x0029CC86, - 0x00000002, 0x4029D420, 0xA0013F02, 0x00000002, 0x4029D420, 0xA0014002, - 0x00000002, 0x4029D420, 0xA0014102, 0x00000002, - // Block 19, offset 0x4c0 - 0x4029D420, 0xA0014202, 0x00000002, 0x4029D420, 0xA0014302, 0x00000002, - 0x4029D420, 0xA0014402, 0x00000002, 0x4029D420, 0xA0014502, 0x00000002, - 0x4029D420, 0xA0014602, 0x00000002, 0x4029D420, 0xA0014702, 0x00000002, - 0x4029D420, 0xA0014802, 0x00000002, 0x4029D420, 0xA0014902, 0x00000002, - 0x4029D420, 0xA0014A02, 0x00000002, 0x4029D420, 0xA0014B02, 0x00000002, - 0x4029D420, 0xA0014C02, 0x00000002, 0x4029D420, 0xA0014D02, 0x00000002, - 0x4029D420, 0xA0014E02, 0x00000002, 0x4029D420, 0xA0014F02, 0x00000002, - 0x4029D420, 0xA0015002, 0x00000002, 0x4029D420, 0xA0015102, 0x00000002, - 0x4029D420, 0xA0015202, 0x00000002, 0x4029D420, 0xA0015302, 0x00000002, - 0x4029D420, 0xA0015402, 0x00000002, 0x4029D420, 0xA0015502, 0x00000002, - 0x4029D420, 0xA0015602, 0x00000002, 0x0029D484, - // Block 20, offset 0x500 - 0xA0015604, 0x00000002, 0x4029D420, 0xA0015702, 0x00000002, 0x4029D420, - 0xA0015802, 0x00000002, 0x4029D420, 0xA0015902, 0x00000002, 0x4029D420, - 0xA0015A02, 0x00000002, 0x4029D420, 0xA0015B02, 0x00000002, 0x4029D420, - 0xA0015C02, 0x00000002, 0x4029D420, 0xA0015D02, 0x00000002, 0x4029D420, - 0xA0015E02, 0x00000002, 0x4029D420, 0xA0015F02, 0x00000002, 0x4029D420, - 0xA0016002, 0x00000002, 0x4029D420, 0xA0016102, 0x00000002, 0x4029D420, - 0xA0016202, 0x00000002, 0x4029D420, 0xA0016302, 0x00000002, 0x4029D420, - 0xA0016402, 0x00000002, 0x4029D420, 0xA0016502, 0x00000002, 0x4029D420, - 0xA0016602, 0x00000002, 0x4029D420, 0xA0016702, 0x00000002, 0x4029D420, - 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, - 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, - // Block 21, offset 0x540 - 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, - 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, - 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, - 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, - 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, - 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0017002, - 0x00000002, 0x4029D420, 0xA0017102, 0x00000002, 0x4029D420, 0xA0017202, - 0x00000002, 0x4029D420, 0xA0017302, 0x00000002, 0x4029D420, 0xA0017402, - 0x00000002, 0x4029D420, 0xA0017502, 0x00000002, 0x4029D420, 0xA0017602, - 0x00000002, 0x4029D420, 0xA0017702, 0x00000003, 0x0029D49E, 0x0009589E, - 0x0029D69E, 0x00000002, 0x0029D486, 0x0029CC86, - // Block 22, offset 0x580 - 0x00000002, 0x4029D620, 0xA0013F02, 0x00000002, 0x4029D620, 0xA0014002, - 0x00000002, 0x4029D620, 0xA0014102, 0x00000002, 0x4029D620, 0xA0014202, - 0x00000002, 0x4029D620, 0xA0014302, 0x00000002, 0x4029D620, 0xA0014402, - 0x00000002, 0x4029D620, 0xA0014502, 0x00000002, 0x4029D620, 0xA0014602, - 0x00000002, 0x4029D620, 0xA0014702, 0x00000002, 0x4029D620, 0xA0014802, - 0x00000002, 0x4029D620, 0xA0014902, 0x00000002, 0x4029D620, 0xA0014A02, - 0x00000002, 0x4029D620, 0xA0014B02, 0x00000002, 0x4029D620, 0xA0014C02, - 0x00000002, 0x4029D620, 0xA0014D02, 0x00000002, 0x4029D620, 0xA0014E02, - 0x00000002, 0x4029D620, 0xA0014F02, 0x00000002, 0x4029D620, 0xA0015002, - 0x00000002, 0x4029D620, 0xA0015102, 0x00000002, 0x4029D620, 0xA0015202, - 0x00000002, 0x4029D620, 0xA0015302, 0x00000002, - // Block 23, offset 0x5c0 - 0x4029D620, 0xA0015402, 0x00000002, 0x4029D620, 0xA0015502, 0x00000002, - 0x4029D620, 0xA0015602, 0x00000002, 0x0029D684, 0xA0015604, 0x00000002, - 0x4029D620, 0xA0015702, 0x00000002, 0x4029D620, 0xA0015802, 0x00000002, - 0x4029D620, 0xA0015902, 0x00000002, 0x4029D620, 0xA0015A02, 0x00000002, - 0x4029D620, 0xA0015B02, 0x00000002, 0x4029D620, 0xA0015C02, 0x00000002, - 0x4029D620, 0xA0015D02, 0x00000002, 0x4029D620, 0xA0015E02, 0x00000002, - 0x4029D620, 0xA0015F02, 0x00000002, 0x4029D620, 0xA0016002, 0x00000002, - 0x4029D620, 0xA0016102, 0x00000002, 0x4029D620, 0xA0016202, 0x00000002, - 0x4029D620, 0xA0016302, 0x00000002, 0x4029D620, 0xA0016402, 0x00000002, - 0x4029D620, 0xA0016502, 0x00000002, 0x4029D620, 0xA0016602, 0x00000002, - 0x4029D620, 0xA0016702, 0x00000002, 0x4029D620, - // Block 24, offset 0x600 - 0xA0016802, 0x00000002, 0x4029D620, 0xA0016802, 0x00000002, 0x4029D620, - 0xA0016802, 0x00000002, 0x4029D620, 0xA0016802, 0x00000002, 0x4029D620, - 0xA0016802, 0x00000002, 0x4029D620, 0xA0016A02, 0x00000002, 0x4029D620, - 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, - 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, - 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, - 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, - 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, - 0xA0016C02, 0x00000002, 0x4029D620, 0xA0017202, 0x00000002, 0x4029D620, - 0xA0017302, 0x00000002, 0x4029D620, 0xA0017402, 0x00000002, 0x4029D620, - 0xA0017502, 0x00000002, 0x4029D620, 0xA0017702, - // Block 25, offset 0x640 - 0x00000003, 0x0029D69E, 0x0009589E, 0x0029D89E, 0x00000003, 0x0029D69E, - 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029D686, 0x0029CC86, 0x00000002, - 0x4029D820, 0xA0013F02, 0x00000002, 0x4029D820, 0xA0014002, 0x00000002, - 0x4029D820, 0xA0014102, 0x00000002, 0x4029D820, 0xA0014202, 0x00000002, - 0x4029D820, 0xA0014302, 0x00000002, 0x4029D820, 0xA0014402, 0x00000002, - 0x4029D820, 0xA0014502, 0x00000002, 0x4029D820, 0xA0014602, 0x00000002, - 0x4029D820, 0xA0014702, 0x00000002, 0x4029D820, 0xA0014802, 0x00000002, - 0x4029D820, 0xA0014902, 0x00000002, 0x4029D820, 0xA0014A02, 0x00000002, - 0x4029D820, 0xA0014B02, 0x00000002, 0x4029D820, 0xA0014C02, 0x00000002, - 0x4029D820, 0xA0014D02, 0x00000002, 0x4029D820, 0xA0014E02, 0x00000002, - 0x4029D820, 0xA0014F02, 0x00000002, 0x4029D820, - // Block 26, offset 0x680 - 0xA0015002, 0x00000002, 0x4029D820, 0xA0015102, 0x00000002, 0x4029D820, - 0xA0015202, 0x00000002, 0x4029D820, 0xA0015302, 0x00000002, 0x4029D820, - 0xA0015402, 0x00000002, 0x4029D820, 0xA0015502, 0x00000002, 0x4029D820, - 0xA0015602, 0x00000002, 0x0029D884, 0xA0015604, 0x00000002, 0x4029D820, - 0xA0015702, 0x00000002, 0x4029D820, 0xA0015802, 0x00000002, 0x4029D820, - 0xA0015902, 0x00000002, 0x4029D820, 0xA0015A02, 0x00000002, 0x4029D820, - 0xA0015B02, 0x00000002, 0x4029D820, 0xA0015C02, 0x00000002, 0x4029D820, - 0xA0015D02, 0x00000002, 0x4029D820, 0xA0015E02, 0x00000002, 0x4029D820, - 0xA0015F02, 0x00000002, 0x4029D820, 0xA0016002, 0x00000002, 0x4029D820, - 0xA0016102, 0x00000002, 0x4029D820, 0xA0016202, 0x00000002, 0x4029D820, - 0xA0016302, 0x00000002, 0x4029D820, 0xA0016402, - // Block 27, offset 0x6c0 - 0x00000002, 0x4029D820, 0xA0016502, 0x00000002, 0x4029D820, 0xA0016602, - 0x00000002, 0x4029D820, 0xA0016702, 0x00000002, 0x4029D820, 0xA0016902, - 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02, - 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02, - 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02, - 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0017202, - 0x00000002, 0x4029D820, 0xA0017302, 0x00000002, 0x4029D820, 0xA0017402, - 0x00000002, 0x4029D820, 0xA0017502, 0x00000002, 0x4029D820, 0xA0017702, - 0x00000002, 0x0029D886, 0x0029CC86, 0x00000002, 0x4029DA20, 0xA0013F02, - 0x00000002, 0x4029DA20, 0xA0014002, 0x00000002, 0x4029DA20, 0xA0014102, - 0x00000002, 0x4029DA20, 0xA0014202, 0x00000002, - // Block 28, offset 0x700 - 0x4029DA20, 0xA0014302, 0x00000002, 0x4029DA20, 0xA0014402, 0x00000002, - 0x4029DA20, 0xA0014502, 0x00000002, 0x4029DA20, 0xA0014602, 0x00000002, - 0x4029DA20, 0xA0014702, 0x00000002, 0x4029DA20, 0xA0014802, 0x00000002, - 0x4029DA20, 0xA0014902, 0x00000002, 0x4029DA20, 0xA0014A02, 0x00000002, - 0x4029DA20, 0xA0014B02, 0x00000002, 0x4029DA20, 0xA0014C02, 0x00000002, - 0x4029DA20, 0xA0014D02, 0x00000002, 0x4029DA20, 0xA0014E02, 0x00000002, - 0x4029DA20, 0xA0014F02, 0x00000002, 0x4029DA20, 0xA0015002, 0x00000002, - 0x4029DA20, 0xA0015102, 0x00000002, 0x4029DA20, 0xA0015202, 0x00000002, - 0x4029DA20, 0xA0015302, 0x00000002, 0x4029DA20, 0xA0015402, 0x00000002, - 0x4029DA20, 0xA0015502, 0x00000002, 0x4029DA20, 0xA0015602, 0x00000002, - 0x0029DA84, 0xA0015604, 0x00000002, 0x4029DA20, - // Block 29, offset 0x740 - 0xA0015702, 0x00000002, 0x4029DA20, 0xA0015802, 0x00000002, 0x4029DA20, - 0xA0015902, 0x00000002, 0x4029DA20, 0xA0015A02, 0x00000002, 0x4029DA20, - 0xA0015B02, 0x00000002, 0x4029DA20, 0xA0015C02, 0x00000002, 0x4029DA20, - 0xA0015D02, 0x00000002, 0x4029DA20, 0xA0015E02, 0x00000002, 0x4029DA20, - 0xA0015F02, 0x00000002, 0x4029DA20, 0xA0016002, 0x00000002, 0x4029DA20, - 0xA0016102, 0x00000002, 0x4029DA20, 0xA0016202, 0x00000002, 0x4029DA20, - 0xA0016302, 0x00000002, 0x4029DA20, 0xA0016402, 0x00000002, 0x4029DA20, - 0xA0016502, 0x00000002, 0x4029DA20, 0xA0016602, 0x00000002, 0x4029DA20, - 0xA0016702, 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, - 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, - 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, - // Block 30, offset 0x780 - 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, - 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0017202, - 0x00000002, 0x4029DA20, 0xA0017302, 0x00000002, 0x4029DA20, 0xA0017402, - 0x00000002, 0x4029DA20, 0xA0017502, 0x00000002, 0x4029DA20, 0xA0017702, - 0x00000003, 0x0029DA9E, 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029DA86, - 0x0029CC86, 0x00000002, 0x4029DC20, 0xA0013F02, 0x00000002, 0x4029DC20, - 0xA0014002, 0x00000002, 0x4029DC20, 0xA0014102, 0x00000002, 0x4029DC20, - 0xA0014202, 0x00000002, 0x4029DC20, 0xA0014302, 0x00000002, 0x4029DC20, - 0xA0014402, 0x00000002, 0x4029DC20, 0xA0014502, 0x00000002, 0x4029DC20, - 0xA0014602, 0x00000002, 0x4029DC20, 0xA0014702, 0x00000002, 0x4029DC20, - 0xA0014802, 0x00000002, 0x4029DC20, 0xA0014902, - // Block 31, offset 0x7c0 - 0x00000002, 0x4029DC20, 0xA0014A02, 0x00000002, 0x4029DC20, 0xA0014B02, - 0x00000002, 0x4029DC20, 0xA0014C02, 0x00000002, 0x4029DC20, 0xA0014D02, - 0x00000002, 0x4029DC20, 0xA0014E02, 0x00000002, 0x4029DC20, 0xA0014F02, - 0x00000002, 0x4029DC20, 0xA0015002, 0x00000002, 0x4029DC20, 0xA0015102, - 0x00000002, 0x4029DC20, 0xA0015202, 0x00000002, 0x4029DC20, 0xA0015302, - 0x00000002, 0x4029DC20, 0xA0015402, 0x00000002, 0x4029DC20, 0xA0015502, - 0x00000002, 0x4029DC20, 0xA0015602, 0x00000002, 0x0029DC84, 0xA0015604, - 0x00000002, 0x4029DC20, 0xA0015702, 0x00000002, 0x4029DC20, 0xA0015802, - 0x00000002, 0x4029DC20, 0xA0015902, 0x00000002, 0x4029DC20, 0xA0015A02, - 0x00000002, 0x4029DC20, 0xA0015B02, 0x00000002, 0x4029DC20, 0xA0015C02, - 0x00000002, 0x4029DC20, 0xA0015D02, 0x00000002, - // Block 32, offset 0x800 - 0x4029DC20, 0xA0015E02, 0x00000002, 0x4029DC20, 0xA0015F02, 0x00000002, - 0x4029DC20, 0xA0016002, 0x00000002, 0x4029DC20, 0xA0016102, 0x00000002, - 0x4029DC20, 0xA0016202, 0x00000002, 0x4029DC20, 0xA0016302, 0x00000002, - 0x4029DC20, 0xA0016402, 0x00000002, 0x4029DC20, 0xA0016502, 0x00000002, - 0x4029DC20, 0xA0016602, 0x00000002, 0x4029DC20, 0xA0016702, 0x00000002, - 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002, - 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002, - 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002, - 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0017202, 0x00000002, - 0x4029DC20, 0xA0017302, 0x00000002, 0x4029DC20, 0xA0017402, 0x00000002, - 0x4029DC20, 0xA0017502, 0x00000002, 0x4029DC20, - // Block 33, offset 0x840 - 0xA0017702, 0x00000002, 0x0029DC86, 0x0029CC86, 0x00000002, 0x4029DE20, - 0xA0013F02, 0x00000002, 0x4029DE20, 0xA0014002, 0x00000002, 0x4029DE20, - 0xA0014102, 0x00000002, 0x4029DE20, 0xA0014202, 0x00000002, 0x4029DE20, - 0xA0014302, 0x00000002, 0x4029DE20, 0xA0014402, 0x00000002, 0x4029DE20, - 0xA0014502, 0x00000002, 0x4029DE20, 0xA0014602, 0x00000002, 0x4029DE20, - 0xA0014702, 0x00000002, 0x4029DE20, 0xA0014802, 0x00000002, 0x4029DE20, - 0xA0014902, 0x00000002, 0x4029DE20, 0xA0014A02, 0x00000002, 0x4029DE20, - 0xA0014B02, 0x00000002, 0x4029DE20, 0xA0014C02, 0x00000002, 0x4029DE20, - 0xA0014D02, 0x00000002, 0x4029DE20, 0xA0014E02, 0x00000002, 0x4029DE20, - 0xA0014F02, 0x00000002, 0x4029DE20, 0xA0015002, 0x00000002, 0x4029DE20, - 0xA0015102, 0x00000002, 0x4029DE20, 0xA0015202, - // Block 34, offset 0x880 - 0x00000002, 0x4029DE20, 0xA0015302, 0x00000002, 0x4029DE20, 0xA0015402, - 0x00000002, 0x4029DE20, 0xA0015502, 0x00000002, 0x4029DE20, 0xA0015602, - 0x00000002, 0x0029DE84, 0xA0015604, 0x00000002, 0x4029DE20, 0xA0015702, - 0x00000002, 0x4029DE20, 0xA0015802, 0x00000002, 0x4029DE20, 0xA0015902, - 0x00000002, 0x4029DE20, 0xA0015A02, 0x00000002, 0x4029DE20, 0xA0015B02, - 0x00000002, 0x4029DE20, 0xA0015C02, 0x00000002, 0x4029DE20, 0xA0015D02, - 0x00000002, 0x4029DE20, 0xA0015E02, 0x00000002, 0x4029DE20, 0xA0015F02, - 0x00000002, 0x4029DE20, 0xA0016002, 0x00000002, 0x4029DE20, 0xA0016102, - 0x00000002, 0x4029DE20, 0xA0016202, 0x00000002, 0x4029DE20, 0xA0016302, - 0x00000002, 0x4029DE20, 0xA0016402, 0x00000002, 0x4029DE20, 0xA0016502, - 0x00000002, 0x4029DE20, 0xA0016602, 0x00000002, - // Block 35, offset 0x8c0 - 0x4029DE20, 0xA0016702, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, - 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, - 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, - 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, - 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, - 0x4029DE20, 0xA0017202, 0x00000002, 0x4029DE20, 0xA0017302, 0x00000002, - 0x4029DE20, 0xA0017402, 0x00000002, 0x4029DE20, 0xA0017502, 0x00000002, - 0x4029DE20, 0xA0017702, 0x00000002, 0x402BDE20, 0xAE603202, 0x00000002, - 0x002BDE88, 0xAE603202, 0x00000002, 0x402BDE20, 0xAE603502, 0x00000002, - 0x002BDE88, 0xAE603502, 0x00000002, 0x402BDE20, 0xAE603702, 0x00000002, - 0x002BDE88, 0xAE603702, 0x00000003, 0x402BDE20, - // Block 36, offset 0x900 - 0xAE603702, 0xAE603202, 0x00000003, 0x002BDE88, 0xAE603702, 0xAE603202, - 0x00000003, 0x402BDE20, 0xAE603702, 0xAE603502, 0x00000003, 0x002BDE88, - 0xAE603702, 0xAE603502, 0x00000003, 0x402BDE20, 0xAE603702, 0xAE604E02, - 0x00000003, 0x002BDE88, 0xAE603702, 0xAE604E02, 0x00000003, 0x402BDE20, - 0xAE603702, 0xAE606402, 0x00000003, 0x002BDE88, 0xAE603702, 0xAE606402, - 0x00000002, 0x402BDE20, 0xAE603C02, 0x00000002, 0x002BDE88, 0xAE603C02, - 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE603202, 0x00000003, 0x002BDE88, - 0xAE603C02, 0xAE603202, 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE603502, - 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE603502, 0x00000003, 0x402BDE20, - 0xAE603C02, 0xAE604E02, 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE604E02, - 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE606402, - // Block 37, offset 0x940 - 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE606402, 0x00000002, 0x402BDE20, - 0xAE604102, 0x00000002, 0x002BDE88, 0xAE604102, 0x00000002, 0x402BDE20, - 0xAE604302, 0x00000002, 0x002BDE88, 0xAE604302, 0x00000003, 0x402BDE20, - 0xAE604302, 0xAE603202, 0x00000003, 0x002BDE88, 0xAE604302, 0xAE603202, - 0x00000002, 0x402BDE20, 0xAE604702, 0x00000002, 0x002BDE88, 0xAE604702, - 0x00000003, 0x402BDE20, 0xAE604702, 0xAE605B02, 0x00000003, 0x002BDE88, - 0xAE604702, 0xAE605B02, 0x00000002, 0x402BDE20, 0xAE604E02, 0x00000002, - 0x002BDE88, 0xAE604E02, 0x00000002, 0x402BDE20, 0xAE605202, 0x00000002, - 0x002BDE88, 0xAE605202, 0x00000003, 0x402BDE20, 0xAE605202, 0xAE605B02, - 0x00000003, 0x002BDE88, 0xAE605202, 0xAE605B02, 0x00000002, 0x402BDE20, - 0xACA05902, 0x00000002, 0x002BDE88, 0xACA05902, - // Block 38, offset 0x980 - 0x00000002, 0x402BDE20, 0xAE605B02, 0x00000002, 0x002BDE88, 0xAE605B02, - 0x00000002, 0x402BDE20, 0xAE606402, 0x00000002, 0x002BDE88, 0xAE606402, - 0x00000002, 0x402BDE20, 0xAE606502, 0x00000002, 0x002BDE88, 0xAE606502, - 0x00000002, 0x402BDE20, 0xAE606702, 0x00000002, 0x002BDE88, 0xAE606702, - 0x00000002, 0x402BDE20, 0xADC07002, 0x00000002, 0x002BDE88, 0xADC07002, - 0x00000003, 0x402BDE20, 0xADC07002, 0xAE603702, 0x00000003, 0x002BDE88, - 0xADC07002, 0xAE603702, 0x00000003, 0x402BDE20, 0xADC07002, 0xAE603C02, - 0x00000003, 0x002BDE88, 0xADC07002, 0xAE603C02, 0x00000002, 0x402BDE20, - 0xADC07602, 0x00000002, 0x002BDE88, 0xADC07602, 0x00000002, 0x84E615EF, - 0xAE613904, 0x00000004, 0x002BDE9C, 0x0002E49C, 0x002E829C, 0x0002E49C, - 0x00000003, 0x002BDE84, 0x0004E284, 0x002C3A84, - // Block 39, offset 0x9c0 - 0x00000003, 0x002BDE84, 0x0004E284, 0x002FE684, 0x00000003, 0x002BDE8A, - 0x0004E284, 0x002FE68A, 0x00000003, 0x002BDE9D, 0x0009569C, 0x002E829C, - 0x00000002, 0x002BDE84, 0x002BDE84, 0x00000002, 0x002BDE8A, 0x002BDE8A, - 0x00000002, 0x002BDE9D, 0x002C0A9D, 0x00000003, 0x002BDE84, 0xA0013904, - 0x002C9884, 0x00000003, 0x84E615EF, 0xAE613904, 0x84E6164C, 0x00000003, - 0x002BDE8A, 0xA0013904, 0x002C988A, 0x00000003, 0x002BDE94, 0xA0013914, - 0x002C9894, 0x00000004, 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE603202, - 0x00000004, 0x002BDE8A, 0xA0013904, 0x002C988A, 0xAE603202, 0x00000004, - 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE605B02, 0x00000004, 0x002BDE8A, - 0xA0013904, 0x002C988A, 0xAE605B02, 0x00000002, 0x84E615EF, 0x84E61771, - 0x00000002, 0x002BDE84, 0x002EE284, 0x00000002, - // Block 40, offset 0xa00 - 0x002BDE8A, 0x002EE28A, 0x00000002, 0x002BDE84, 0x00306C84, 0x00000002, - 0x002BDE8A, 0x00306C8A, 0x00000002, 0x84E615EF, 0x84E6185F, 0x00000002, - 0x002BDE84, 0x0030BE84, 0x00000002, 0x002BDE8A, 0x0030BE8A, 0x00000003, - 0x002BDE84, 0xA0013904, 0x0030BE84, 0x00000003, 0x002BDE8A, 0xA0013904, - 0x0030BE8A, 0x00000002, 0x002BDE84, 0x00310084, 0x00000002, 0x002BDE8A, - 0x0031008A, 0x00000002, 0x402C0A20, 0xAE605202, 0x00000002, 0x002C0A88, - 0xAE605202, 0x00000002, 0x402C0A20, 0xADC07002, 0x00000002, 0x002C0A88, - 0xADC07002, 0x00000002, 0x402C0A20, 0xADC07B02, 0x00000002, 0x002C0A88, - 0xADC07B02, 0x00000003, 0x002C0A9C, 0x002BDE9C, 0x002F7A9C, 0x00000002, - 0x402C3A20, 0xAE603202, 0x00000002, 0x002C3A88, 0xAE603202, 0x00000002, - 0x402C3A20, 0xAE603C02, 0x00000002, 0x002C3A88, - // Block 41, offset 0xa40 - 0xAE603C02, 0x00000002, 0x402C3A20, 0xAE604102, 0x00000002, 0x002C3A88, - 0xAE604102, 0x00000002, 0x402C3A20, 0xAE605202, 0x00000002, 0x002C3A88, - 0xAE605202, 0x00000002, 0x402C3A20, 0xACA05602, 0x00000002, 0x84E6161D, - 0xAE605604, 0x00000002, 0x002C3A88, 0xACA05602, 0x00000003, 0x402C3A20, - 0xACA05602, 0xAE603202, 0x00000003, 0x002C3A88, 0xACA05602, 0xAE603202, - 0x00000003, 0x002C3A84, 0x0004E284, 0x002EE284, 0x00000003, 0x002C3A84, - 0x0004E284, 0x00306C84, 0x00000004, 0x002C3A9D, 0x0009569C, 0x002DFE9C, - 0x002D229C, 0x00000003, 0x002C3A9C, 0x002BDE9C, 0x002E229C, 0x00000002, - 0x002C3A9D, 0x002E229D, 0x00000003, 0x002C3A9C, 0x002E829C, 0x0029D09C, - 0x00000003, 0x002C3A9C, 0x002E829C, 0x0029D29C, 0x00000003, 0x002C3A9D, - 0x002EE29C, 0x0002E49C, 0x00000004, 0x002C3A9D, - // Block 42, offset 0xa80 - 0x002EE29D, 0x002EE29D, 0x002E229D, 0x00000002, 0x402C6220, 0xAE604102, - 0x00000002, 0x002C6288, 0xAE604102, 0x00000002, 0x402C6220, 0xAE605202, - 0x00000002, 0x002C6288, 0xAE605202, 0x00000002, 0x402C6220, 0xACA05602, - 0x00000002, 0x002C6288, 0xACA05602, 0x00000002, 0x402C6220, 0xADC07002, - 0x00000002, 0x002C6288, 0xADC07002, 0x00000002, 0x402C6220, 0xADC07802, - 0x00000002, 0x002C6288, 0xADC07802, 0x00000002, 0x402C6220, 0xADC07B02, - 0x00000002, 0x002C6288, 0xADC07B02, 0x00000002, 0x402C6220, 0xA0007D02, - 0x00000002, 0x002C6288, 0xA0007D02, 0x00000002, 0x002C6284, 0xA0013904, - 0x00000002, 0x84E61631, 0xAE613904, 0x00000002, 0x002C628A, 0xA0013904, - 0x00000002, 0x84E61631, 0xAE613A04, 0x00000002, 0x002C6284, 0xA0013A04, - 0x00000002, 0x002C628A, 0xA0013A04, 0x00000002, - // Block 43, offset 0xac0 - 0x002C6284, 0x002C0A84, 0x00000003, 0x002C629C, 0x002E829C, 0x0029D09C, - 0x00000003, 0x002C629C, 0x002E829C, 0x0029D29C, 0x00000002, 0x002C6284, - 0x00312A84, 0x00000003, 0x002C6284, 0x00312A84, 0xA0004104, 0x00000003, - 0x002C628A, 0x00312A84, 0xA0004104, 0x00000003, 0x002C628A, 0x00312A8A, - 0xA0004104, 0x00000002, 0x002C6284, 0x00315084, 0x00000002, 0x002C6284, - 0x00316484, 0x00000002, 0x402C9820, 0xAE603202, 0x00000002, 0x002C9888, - 0xAE603202, 0x00000002, 0x402C9820, 0xAE603502, 0x00000002, 0x002C9888, - 0xAE603502, 0x00000002, 0x402C9820, 0xAE603702, 0x00000002, 0x002C9888, - 0xAE603702, 0x00000002, 0x402C9820, 0xAE603C02, 0x00000002, 0x002C9888, - 0xAE603C02, 0x00000003, 0x402C9820, 0xAE603C02, 0xAE603202, 0x00000003, - 0x002C9888, 0xAE603C02, 0xAE603202, 0x00000003, - // Block 44, offset 0xb00 - 0x402C9820, 0xAE603C02, 0xAE603502, 0x00000003, 0x002C9888, 0xAE603C02, - 0xAE603502, 0x00000003, 0x402C9820, 0xAE603C02, 0xAE604E02, 0x00000003, - 0x002C9888, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C9820, 0xAE603C02, - 0xAE606402, 0x00000003, 0x002C9888, 0xAE603C02, 0xAE606402, 0x00000002, - 0x402C9820, 0xAE604102, 0x00000002, 0x002C9888, 0xAE604102, 0x00000002, - 0x402C9820, 0xAE604702, 0x00000002, 0x002C9888, 0xAE604702, 0x00000002, - 0x402C9820, 0xAE604E02, 0x00000002, 0x002C9888, 0xAE604E02, 0x00000002, - 0x402C9820, 0xAE605202, 0x00000002, 0x002C9888, 0xAE605202, 0x00000002, - 0x402C9820, 0xACA05602, 0x00000002, 0x002C9888, 0xACA05602, 0x00000003, - 0x402C9820, 0xACA05602, 0xAE603702, 0x00000003, 0x002C9888, 0xACA05602, - 0xAE603702, 0x00000002, 0x402C9820, 0xACA05902, - // Block 45, offset 0xb40 - 0x00000002, 0x002C9888, 0xACA05902, 0x00000002, 0x402C9820, 0xAE605B02, - 0x00000002, 0x002C9888, 0xAE605B02, 0x00000003, 0x402C9820, 0xAE605B02, - 0xAE603202, 0x00000003, 0x002C9888, 0xAE605B02, 0xAE603202, 0x00000003, - 0x402C9820, 0xAE605B02, 0xAE603502, 0x00000003, 0x002C9888, 0xAE605B02, - 0xAE603502, 0x00000002, 0x402C9820, 0xAE606402, 0x00000002, 0x002C9888, - 0xAE606402, 0x00000002, 0x402C9820, 0xAE606502, 0x00000002, 0x002C9888, - 0xAE606502, 0x00000002, 0x402C9820, 0xAE606702, 0x00000002, 0x002C9888, - 0xAE606702, 0x00000002, 0x402C9820, 0xADC07002, 0x00000002, 0x002C9888, - 0xADC07002, 0x00000003, 0x402C9820, 0xADC07002, 0xAE603C02, 0x00000003, - 0x002C9888, 0xADC07002, 0xAE603C02, 0x00000002, 0x402C9820, 0xADC07802, - 0x00000002, 0x002C9888, 0xADC07802, 0x00000002, - // Block 46, offset 0xb80 - 0x402C9820, 0xADC07A02, 0x00000002, 0x002C9888, 0xADC07A02, 0x00000003, - 0x002C989C, 0x002F7A9C, 0x002D229C, 0x00000002, 0x402D0820, 0xAE605202, - 0x00000002, 0x002D0888, 0xAE605202, 0x00000002, 0x002D0884, 0xA0013A04, - 0x00000002, 0x002D088A, 0xA0013A04, 0x00000003, 0x002D088A, 0x002BDE8A, - 0x0030F68A, 0x00000003, 0x002D0884, 0x002D0884, 0x002D9A84, 0x00000003, - 0x002D0884, 0x002D0884, 0x002E2284, 0x00000002, 0x002D0884, 0x002EDA84, - 0x00000004, 0x002D089D, 0x002F7A9D, 0x002C989D, 0x002C989D, 0x00000002, - 0x402D2220, 0xAE603202, 0x00000002, 0x002D2288, 0xAE603202, 0x00000002, - 0x402D2220, 0xAE603702, 0x00000002, 0x002D2288, 0xAE603702, 0x00000002, - 0x402D2220, 0xAE603C02, 0x00000002, 0x002D2288, 0xAE603C02, 0x00000002, - 0x402D2220, 0xAE604102, 0x00000002, 0x002D2288, - // Block 47, offset 0xbc0 - 0xAE604102, 0x00000002, 0x402D2220, 0xAE605202, 0x00000002, 0x002D2288, - 0xAE605202, 0x00000002, 0x402D2220, 0xACA05602, 0x00000002, 0x002D2288, - 0xACA05602, 0x00000002, 0x402D2220, 0xAE605B02, 0x00000002, 0x002D2288, - 0xAE605B02, 0x00000002, 0x002D2284, 0xA0006104, 0x00000002, 0x002D228A, - 0xA0006104, 0x00000002, 0x002D2284, 0xA0013A04, 0x00000002, 0x002D228A, - 0xA0013A04, 0x00000003, 0x002D229C, 0x002BDE9C, 0x002E229C, 0x00000003, - 0x002D229D, 0x002D689D, 0x00312A9C, 0x00000003, 0x002D229D, 0x002F2C9D, - 0x002BDE9C, 0x00000002, 0x402D6820, 0xAE603C02, 0x00000002, 0x002D6888, - 0xAE603C02, 0x00000002, 0x402D6820, 0xAE604102, 0x00000002, 0x002D6888, - 0xAE604102, 0x00000002, 0x402D6820, 0xAE604702, 0x00000002, 0x002D6888, - 0xAE604702, 0x00000002, 0x402D6820, 0xAE605202, - // Block 48, offset 0xc00 - 0x00000002, 0x002D6888, 0xAE605202, 0x00000002, 0x402D6820, 0xACA05602, - 0x00000002, 0x002D6888, 0xACA05602, 0x00000002, 0x402D6820, 0xADC07002, - 0x00000002, 0x002D6888, 0xADC07002, 0x00000002, 0x402D6820, 0xADC07902, - 0x00000002, 0x002D6888, 0xADC07902, 0x00000002, 0x402D6820, 0xADC07B02, - 0x00000002, 0x402D6820, 0xA0007D02, 0x00000002, 0x002D6888, 0xA0007D02, - 0x00000003, 0x002D689C, 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402D9A20, - 0xAE603202, 0x00000002, 0x002D9A88, 0xAE603202, 0x00000002, 0x402D9A20, - 0xAE603502, 0x00000002, 0x002D9A88, 0xAE603502, 0x00000002, 0x402D9A20, - 0xAE603702, 0x00000002, 0x002D9A88, 0xAE603702, 0x00000002, 0x402D9A20, - 0xAE603C02, 0x00000002, 0x002D9A88, 0xAE603C02, 0x00000002, 0x402D9A20, - 0xAE604102, 0x00000002, 0x002D9A88, 0xAE604102, - // Block 49, offset 0xc40 - 0x00000002, 0x402D9A20, 0xAE604702, 0x00000002, 0x002D9A88, 0xAE604702, - 0x00000003, 0x402D9A20, 0xAE604702, 0xAE603202, 0x00000003, 0x002D9A88, - 0xAE604702, 0xAE603202, 0x00000002, 0x402D9A20, 0xAE604E02, 0x00000002, - 0x002D9A88, 0xAE604E02, 0x00000002, 0x002D9A88, 0xAE605202, 0x00000002, - 0x402D9A20, 0xACA05902, 0x00000002, 0x002D9A88, 0xACA05902, 0x00000002, - 0x402D9A20, 0xAE605B02, 0x00000002, 0x002D9A88, 0xAE605B02, 0x00000002, - 0x402D9A20, 0xAE606402, 0x00000002, 0x002D9A88, 0xAE606402, 0x00000002, - 0x402D9A20, 0xAE606502, 0x00000002, 0x002D9A88, 0xAE606502, 0x00000002, - 0x402D9A20, 0xAE606702, 0x00000002, 0x002D9A88, 0xAE606702, 0x00000002, - 0x402D9A20, 0xADC07002, 0x00000002, 0x002D9A88, 0xADC07002, 0x00000002, - 0x402D9A20, 0xADC07A02, 0x00000002, 0x002D9A88, - // Block 50, offset 0xc80 - 0xADC07A02, 0x00000002, 0x002D9A9D, 0x002C3A9D, 0x00000002, 0x002D9A9D, - 0x002C629D, 0x00000002, 0x402DCC20, 0xAE603C02, 0x00000002, 0x002DCC88, - 0xAE603C02, 0x00000002, 0x402DCC20, 0xAE604102, 0x00000002, 0x402DFE20, - 0xAE603202, 0x00000002, 0x002DFE88, 0xAE603202, 0x00000002, 0x402DFE20, - 0xAE604102, 0x00000002, 0x002DFE88, 0xAE604102, 0x00000002, 0x402DFE20, - 0xACA05602, 0x00000002, 0x002DFE88, 0xACA05602, 0x00000002, 0x002DFE84, - 0xA0006104, 0x00000002, 0x002DFE8A, 0xA0006104, 0x00000002, 0x402DFE20, - 0xADC07002, 0x00000002, 0x002DFE88, 0xADC07002, 0x00000002, 0x402DFE20, - 0xADC07B02, 0x00000002, 0x002DFE88, 0xADC07B02, 0x00000004, 0x002DFE9C, - 0x002C3A9C, 0x002BDE9C, 0x002E229C, 0x00000003, 0x002DFE9C, 0x002D689D, - 0x00312A9C, 0x00000003, 0x002DFE9C, 0x002E829C, - // Block 51, offset 0xcc0 - 0x0029D09C, 0x00000003, 0x002DFE9C, 0x002E829C, 0x0029D29C, 0x00000003, - 0x002DFE9C, 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402E2220, 0xAE603202, - 0x00000002, 0x002E2288, 0xAE603202, 0x00000002, 0x402E2220, 0xAE604102, - 0x00000002, 0x002E2288, 0xAE604102, 0x00000002, 0x402E2220, 0xACA05602, - 0x00000002, 0x002E2288, 0xACA05602, 0x00000002, 0x402E2220, 0xADC07002, - 0x00000002, 0x002E2288, 0xADC07002, 0x00000003, 0x402E2220, 0xADC07002, - 0xAE605B02, 0x00000003, 0x002E2288, 0xADC07002, 0xAE605B02, 0x00000002, - 0x402E2220, 0xADC07802, 0x00000002, 0x002E2288, 0xADC07802, 0x00000002, - 0x402E2220, 0xADC07B02, 0x00000002, 0x002E2288, 0xADC07B02, 0x00000002, - 0x402E2220, 0xA0007D02, 0x00000002, 0x002E2288, 0xA0007D02, 0x00000002, - 0x402E2220, 0xA0013902, 0x00000002, 0x402E2220, - // Block 52, offset 0xd00 - 0xA0013902, 0x00000002, 0x002E2288, 0xA0013902, 0x00000002, 0x002E2288, - 0xA0013902, 0x00000002, 0x002E2284, 0x002E2284, 0x00000002, 0x002E228A, - 0x002E228A, 0x00000003, 0x002E229C, 0x002EE29C, 0x002D229C, 0x00000002, - 0x002E2284, 0x002FE684, 0x00000003, 0x002E229D, 0x00302C9D, 0x002C629D, - 0x00000002, 0x002E2284, 0x00312A84, 0x00000002, 0x402E8220, 0xAE603202, - 0x00000002, 0x002E8288, 0xAE603202, 0x00000002, 0x402E8220, 0xAE605202, - 0x00000002, 0x002E8288, 0xAE605202, 0x00000002, 0x402E8220, 0xADC07002, - 0x00000002, 0x002E8288, 0xADC07002, 0x00000003, 0x002E829C, 0x0009569C, - 0x002FE69C, 0x00000004, 0x002E829C, 0x0009569C, 0x002FE69C, 0x0029D09C, - 0x00000003, 0x002E829D, 0x002D689D, 0x00312A9C, 0x00000003, 0x002E829C, - 0x002D9A9C, 0x002E229C, 0x00000003, 0x002E829C, - // Block 53, offset 0xd40 - 0x002E829C, 0x0029D09C, 0x00000003, 0x002E829C, 0x002E829C, 0x0029D29C, - 0x00000003, 0x002E829C, 0x002EE29C, 0x002E229C, 0x00000003, 0x002E829D, - 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402E9E20, 0xAE603202, 0x00000002, - 0x002E9E88, 0xAE603202, 0x00000002, 0x402E9E20, 0xAE603502, 0x00000002, - 0x002E9E88, 0xAE603502, 0x00000002, 0x402E9E20, 0xAE604102, 0x00000002, - 0x002E9E88, 0xAE604102, 0x00000002, 0x402E9E20, 0xAE604E02, 0x00000002, - 0x002E9E88, 0xAE604E02, 0x00000002, 0x402E9E20, 0xAE605202, 0x00000002, - 0x002E9E88, 0xAE605202, 0x00000002, 0x402E9E20, 0xACA05602, 0x00000002, - 0x002E9E88, 0xACA05602, 0x00000002, 0x002E9E84, 0xA0006104, 0x00000002, - 0x002E9E8A, 0xA0006104, 0x00000002, 0x402E9E20, 0xADC07002, 0x00000002, - 0x002E9E88, 0xADC07002, 0x00000002, 0x402E9E20, - // Block 54, offset 0xd80 - 0xADC07802, 0x00000002, 0x002E9E88, 0xADC07802, 0x00000002, 0x402E9E20, - 0xADC07B02, 0x00000002, 0x002E9E88, 0xADC07B02, 0x00000003, 0x002E9E9D, - 0x002C989D, 0x0030E29D, 0x00000002, 0x002E9E9D, 0x002D229D, 0x00000002, - 0x402EE220, 0xAE603202, 0x00000002, 0x002EE288, 0xAE603202, 0x00000002, - 0x402EE220, 0xAE603502, 0x00000002, 0x002EE288, 0xAE603502, 0x00000002, - 0x402EE220, 0xAE603702, 0x00000002, 0x002EE288, 0xAE603702, 0x00000002, - 0x402EE220, 0xAE603C02, 0x00000002, 0x002EE288, 0xAE603C02, 0x00000003, - 0x402EE220, 0xAE603C02, 0xAE603202, 0x00000003, 0x002EE288, 0xAE603C02, - 0xAE603202, 0x00000003, 0x402EE220, 0xAE603C02, 0xAE603502, 0x00000003, - 0x002EE288, 0xAE603C02, 0xAE603502, 0x00000003, 0x402EE220, 0xAE603C02, - 0xAE604E02, 0x00000003, 0x002EE288, 0xAE603C02, - // Block 55, offset 0xdc0 - 0xAE604E02, 0x00000003, 0x402EE220, 0xAE603C02, 0xAE606402, 0x00000003, - 0x002EE288, 0xAE603C02, 0xAE606402, 0x00000002, 0x402EE220, 0xAE604102, - 0x00000002, 0x002EE288, 0xAE604102, 0x00000002, 0x402EE220, 0xAE604702, - 0x00000002, 0x002EE288, 0xAE604702, 0x00000003, 0x402EE220, 0xAE604702, - 0xAE605B02, 0x00000003, 0x002EE288, 0xAE604702, 0xAE605B02, 0x00000002, - 0x402EE220, 0xAE604D02, 0x00000002, 0x002EE288, 0xAE604D02, 0x00000002, - 0x402EE220, 0xAE604E02, 0x00000002, 0x002EE288, 0xAE604E02, 0x00000003, - 0x402EE220, 0xAE604E02, 0xAE603202, 0x00000003, 0x002EE288, 0xAE604E02, - 0xAE603202, 0x00000003, 0x402EE220, 0xAE604E02, 0xAE604702, 0x00000003, - 0x002EE288, 0xAE604E02, 0xAE604702, 0x00000003, 0x402EE220, 0xAE604E02, - 0xAE605B02, 0x00000003, 0x002EE288, 0xAE604E02, - // Block 56, offset 0xe00 - 0xAE605B02, 0x00000002, 0x402EE220, 0xAE605202, 0x00000002, 0x002EE288, - 0xAE605202, 0x00000003, 0x402EE220, 0xAE605202, 0xAE605B02, 0x00000003, - 0x002EE288, 0xAE605202, 0xAE605B02, 0x00000002, 0x402EE220, 0xA0005402, - 0x00000002, 0x002EE288, 0xA0005402, 0x00000003, 0x402EE220, 0xA0005402, - 0xAE603202, 0x00000003, 0x002EE288, 0xA0005402, 0xAE603202, 0x00000002, - 0x402EE220, 0xACA05902, 0x00000002, 0x002EE288, 0xACA05902, 0x00000003, - 0x402EE220, 0xACA05902, 0xAE605B02, 0x00000003, 0x002EE288, 0xACA05902, - 0xAE605B02, 0x00000002, 0x402EE220, 0xAE605B02, 0x00000002, 0x002EE288, - 0xAE605B02, 0x00000003, 0x402EE220, 0xAE605B02, 0xAE603202, 0x00000003, - 0x002EE288, 0xAE605B02, 0xAE603202, 0x00000003, 0x402EE220, 0xAE605B02, - 0xAE603502, 0x00000003, 0x002EE288, 0xAE605B02, - // Block 57, offset 0xe40 - 0xAE603502, 0x00000002, 0x402EE220, 0xAE606402, 0x00000002, 0x002EE288, - 0xAE606402, 0x00000002, 0x402EE220, 0xAE606502, 0x00000002, 0x002EE288, - 0xAE606502, 0x00000002, 0x402EE220, 0xAE606702, 0x00000002, 0x002EE288, - 0xAE606702, 0x00000002, 0x402EE220, 0xAD806802, 0x00000002, 0x002EE288, - 0xAD806802, 0x00000003, 0x402EE220, 0xAD806802, 0xAE603202, 0x00000003, - 0x002EE288, 0xAD806802, 0xAE603202, 0x00000003, 0x402EE220, 0xAD806802, - 0xAE603502, 0x00000003, 0x002EE288, 0xAD806802, 0xAE603502, 0x00000003, - 0x402EE220, 0xAD806802, 0xAE604E02, 0x00000003, 0x002EE288, 0xAD806802, - 0xAE604E02, 0x00000003, 0x402EE220, 0xAD806802, 0xAE606402, 0x00000003, - 0x002EE288, 0xAD806802, 0xAE606402, 0x00000003, 0x402EE220, 0xAD806802, - 0xADC07002, 0x00000003, 0x002EE288, 0xAD806802, - // Block 58, offset 0xe80 - 0xADC07002, 0x00000002, 0x402EE220, 0xADC07002, 0x00000002, 0x002EE288, - 0xADC07002, 0x00000003, 0x402EE220, 0xADC07002, 0xAE603C02, 0x00000003, - 0x002EE288, 0xADC07002, 0xAE603C02, 0x00000003, 0x002EE284, 0xA0013904, - 0x002C9884, 0x00000003, 0x002EE28A, 0xA0013904, 0x002C988A, 0x00000003, - 0x002EE294, 0xA0013914, 0x002C9894, 0x00000002, 0x002EE29D, 0x002DFE9D, - 0x00000002, 0x002EE284, 0x002EE284, 0x00000002, 0x002EE28A, 0x002EE28A, - 0x00000002, 0x402F2C20, 0xAE603202, 0x00000002, 0x002F2C88, 0xAE603202, - 0x00000002, 0x402F2C20, 0xAE605202, 0x00000002, 0x002F2C88, 0xAE605202, - 0x00000004, 0x002F2C9C, 0x0002E49C, 0x002E829C, 0x0002E49C, 0x00000002, - 0x002F2C9D, 0x002BDE9D, 0x00000003, 0x002F2C9D, 0x002F2C9D, 0x002E829D, - 0x00000003, 0x002F2C9D, 0x002F2C9D, 0x0030BE9D, - // Block 59, offset 0xec0 - 0x00000003, 0x002F2C9D, 0x00302C9D, 0x002C989D, 0x00000002, 0x002F5684, - 0x002F2C84, 0x00000002, 0x402F7A20, 0xAE603202, 0x00000002, 0x002F7A88, - 0xAE603202, 0x00000002, 0x402F7A20, 0xAE604102, 0x00000002, 0x002F7A88, - 0xAE604102, 0x00000002, 0x402F7A20, 0xAE605202, 0x00000002, 0x002F7A88, - 0xAE605202, 0x00000002, 0x402F7A20, 0xACA05602, 0x00000002, 0x002F7A88, - 0xACA05602, 0x00000002, 0x002F7A84, 0xA0006104, 0x00000002, 0x002F7A8A, - 0xA0006104, 0x00000002, 0x402F7A20, 0xAE606502, 0x00000002, 0x002F7A88, - 0xAE606502, 0x00000002, 0x402F7A20, 0xAE606702, 0x00000002, 0x002F7A88, - 0xAE606702, 0x00000002, 0x402F7A20, 0xADC07002, 0x00000002, 0x002F7A88, - 0xADC07002, 0x00000003, 0x402F7A20, 0xADC07002, 0xAE605B02, 0x00000003, - 0x002F7A88, 0xADC07002, 0xAE605B02, 0x00000002, - // Block 60, offset 0xf00 - 0x402F7A20, 0xADC07B02, 0x00000002, 0x002F7A88, 0xADC07B02, 0x00000002, - 0x002F7A84, 0xA0013A04, 0x00000002, 0x002F7A8A, 0xA0013A04, 0x00000003, - 0x002F7A9C, 0x002BDE9C, 0x002C629C, 0x00000005, 0x002F7A9C, 0x002BDE9C, - 0x002C629C, 0x0009569C, 0x002FE69C, 0x00000006, 0x002F7A9C, 0x002BDE9C, - 0x002C629C, 0x0009569C, 0x002FE69C, 0x0029D09C, 0x00000002, 0x402FE620, - 0xAE603202, 0x00000002, 0x002FE688, 0xAE603202, 0x00000003, 0x402FE620, - 0xAE603202, 0xAE605202, 0x00000003, 0x002FE688, 0xAE603202, 0xAE605202, - 0x00000002, 0x402FE620, 0xAE603C02, 0x00000002, 0x002FE688, 0xAE603C02, - 0x00000002, 0x402FE620, 0xAE604102, 0x00000002, 0x002FE688, 0xAE604102, - 0x00000003, 0x402FE620, 0xAE604102, 0xAE605202, 0x00000003, 0x002FE688, - 0xAE604102, 0xAE605202, 0x00000002, 0x402FE620, - // Block 61, offset 0xf40 - 0xAE605202, 0x00000002, 0x002FE688, 0xAE605202, 0x00000002, 0x402FE620, - 0xACA05602, 0x00000002, 0x002FE688, 0xACA05602, 0x00000002, 0x002FE684, - 0xA0006104, 0x00000002, 0x002FE68A, 0xA0006104, 0x00000002, 0x402FE620, - 0xADC07002, 0x00000002, 0x002FE688, 0xADC07002, 0x00000003, 0x402FE620, - 0xADC07002, 0xAE605202, 0x00000003, 0x002FE688, 0xADC07002, 0xAE605202, - 0x00000002, 0x402FE620, 0xADC07702, 0x00000002, 0x002FE688, 0xADC07702, - 0x00000002, 0x002FE684, 0xA0013A04, 0x00000002, 0x84E617F3, 0xAE613A04, - 0x00000002, 0x002FE684, 0xA0013A04, 0x00000002, 0x002FE68A, 0xA0013A04, - 0x00000003, 0x002FE684, 0xA0013A04, 0xAE605202, 0x00000002, 0x002FE69D, - 0x002BDE9D, 0x00000003, 0x002FE69D, 0x002EE29D, 0x002FE69D, 0x00000003, - 0x002FE684, 0xA0013904, 0x002FE684, 0x00000003, - // Block 62, offset 0xf80 - 0x002FE68A, 0xA0013904, 0x002FE68A, 0x00000003, 0x002FE684, 0xA0013A04, - 0x00302C84, 0x00000002, 0x40302C20, 0xAE604102, 0x00000002, 0x00302C88, - 0xAE604102, 0x00000002, 0x40302C20, 0xAE604702, 0x00000002, 0x40302C20, - 0xAE605202, 0x00000002, 0x00302C88, 0xAE605202, 0x00000002, 0x40302C20, - 0xACA05602, 0x00000002, 0x00302C88, 0xACA05602, 0x00000002, 0x40302C20, - 0xADC07002, 0x00000002, 0x00302C88, 0xADC07002, 0x00000002, 0x40302C20, - 0xADC07702, 0x00000002, 0x00302C88, 0xADC07702, 0x00000002, 0x40302C20, - 0xADC07802, 0x00000002, 0x00302C88, 0xADC07802, 0x00000002, 0x40302C20, - 0xADC07B02, 0x00000002, 0x00302C88, 0xADC07B02, 0x00000002, 0x00302C84, - 0xA0013A04, 0x00000002, 0x00302C8A, 0xA0013A04, 0x00000002, 0x00302C84, - 0x002C5684, 0x00000003, 0x00302C8A, 0x002C988A, - // Block 63, offset 0xfc0 - 0x002E228A, 0x00000003, 0x00302C84, 0xA0013904, 0x002D6884, 0x00000003, - 0x00302C9D, 0x002D689D, 0x00312A9C, 0x00000002, 0x00302C84, 0x002FE684, - 0x00000002, 0x00302C84, 0x002FE684, 0x00000002, 0x00302C84, 0x00300884, - 0x00000002, 0x00302C84, 0x00312A84, 0x00000002, 0x00302C8A, 0x00312A84, - 0x00000002, 0x40306C20, 0xAE603202, 0x00000002, 0x00306C88, 0xAE603202, - 0x00000002, 0x40306C20, 0xAE603502, 0x00000002, 0x00306C88, 0xAE603502, - 0x00000002, 0x40306C20, 0xAE603702, 0x00000002, 0x00306C88, 0xAE603702, - 0x00000002, 0x40306C20, 0xAE603C02, 0x00000002, 0x00306C88, 0xAE603C02, - 0x00000002, 0x40306C20, 0xAE604102, 0x00000002, 0x00306C88, 0xAE604102, - 0x00000002, 0x40306C20, 0xAE604302, 0x00000002, 0x00306C88, 0xAE604302, - 0x00000002, 0x40306C20, 0xAE604702, 0x00000002, - // Block 64, offset 0x1000 - 0x00306C88, 0xAE604702, 0x00000003, 0x40306C20, 0xAE604702, 0xAE603202, - 0x00000003, 0x00306C88, 0xAE604702, 0xAE603202, 0x00000003, 0x40306C20, - 0xAE604702, 0xAE603502, 0x00000003, 0x00306C88, 0xAE604702, 0xAE603502, - 0x00000003, 0x40306C20, 0xAE604702, 0xAE604102, 0x00000003, 0x00306C88, - 0xAE604702, 0xAE604102, 0x00000003, 0x40306C20, 0xAE604702, 0xAE605B02, - 0x00000003, 0x00306C88, 0xAE604702, 0xAE605B02, 0x00000002, 0x40306C20, - 0xAE604D02, 0x00000002, 0x00306C88, 0xAE604D02, 0x00000002, 0x40306C20, - 0xAE604E02, 0x00000002, 0x00306C88, 0xAE604E02, 0x00000003, 0x40306C20, - 0xAE604E02, 0xAE603202, 0x00000003, 0x00306C88, 0xAE604E02, 0xAE603202, - 0x00000002, 0x40306C20, 0xACA05902, 0x00000002, 0x00306C88, 0xACA05902, - 0x00000002, 0x40306C20, 0xAE605B02, 0x00000002, - // Block 65, offset 0x1040 - 0x00306C88, 0xAE605B02, 0x00000003, 0x40306C20, 0xAE605B02, 0xAE604702, - 0x00000003, 0x00306C88, 0xAE605B02, 0xAE604702, 0x00000002, 0x40306C20, - 0xAE606402, 0x00000002, 0x00306C88, 0xAE606402, 0x00000002, 0x40306C20, - 0xAE606502, 0x00000002, 0x00306C88, 0xAE606502, 0x00000002, 0x40306C20, - 0xAE606702, 0x00000002, 0x00306C88, 0xAE606702, 0x00000002, 0x40306C20, - 0xAD806802, 0x00000002, 0x00306C88, 0xAD806802, 0x00000003, 0x40306C20, - 0xAD806802, 0xAE603202, 0x00000003, 0x00306C88, 0xAD806802, 0xAE603202, - 0x00000003, 0x40306C20, 0xAD806802, 0xAE603502, 0x00000003, 0x00306C88, - 0xAD806802, 0xAE603502, 0x00000003, 0x40306C20, 0xAD806802, 0xAE604E02, - 0x00000003, 0x00306C88, 0xAD806802, 0xAE604E02, 0x00000003, 0x40306C20, - 0xAD806802, 0xAE606402, 0x00000003, 0x00306C88, - // Block 66, offset 0x1080 - 0xAD806802, 0xAE606402, 0x00000003, 0x40306C20, 0xAD806802, 0xADC07002, - 0x00000003, 0x00306C88, 0xAD806802, 0xADC07002, 0x00000002, 0x40306C20, - 0xADC07002, 0x00000002, 0x00306C88, 0xADC07002, 0x00000002, 0x40306C20, - 0xADC07502, 0x00000002, 0x00306C88, 0xADC07502, 0x00000002, 0x40306C20, - 0xADC07802, 0x00000002, 0x00306C88, 0xADC07802, 0x00000002, 0x40306C20, - 0xADC07A02, 0x00000002, 0x00306C88, 0xADC07A02, 0x00000003, 0x00306C9D, - 0x002F2C9D, 0x0002BA9C, 0x00000002, 0x4030BE20, 0xAE604E02, 0x00000002, - 0x0030BE88, 0xAE604E02, 0x00000002, 0x4030BE20, 0xADC07002, 0x00000002, - 0x0030BE88, 0xADC07002, 0x00000003, 0x0030BE9D, 0x0009569C, 0x002E829C, - 0x00000004, 0x0030BE84, 0x002D9A84, 0x002D9A84, 0x002D9A9F, 0x00000004, - 0x0030BE8A, 0x002D9A8A, 0x002D9A8A, 0x002D9A9F, - // Block 67, offset 0x10c0 - 0x00000002, 0x0030BE9D, 0x002FE69D, 0x00000002, 0x0030BE84, 0x00310084, - 0x00000002, 0x0030BE8A, 0x0031008A, 0x00000002, 0x4030E220, 0xAE603202, - 0x00000002, 0x0030E288, 0xAE603202, 0x00000002, 0x4030E220, 0xAE603502, - 0x00000002, 0x0030E288, 0xAE603502, 0x00000002, 0x4030E220, 0xAE603C02, - 0x00000002, 0x0030E288, 0xAE603C02, 0x00000002, 0x4030E220, 0xAE604302, - 0x00000002, 0x4030E220, 0xAE604702, 0x00000002, 0x0030E288, 0xAE604702, - 0x00000002, 0x4030E220, 0xAE605202, 0x00000002, 0x0030E288, 0xAE605202, - 0x00000002, 0x4030E220, 0xADC07002, 0x00000002, 0x0030E288, 0xADC07002, - 0x00000002, 0x0030E29D, 0x002C3A9D, 0x00000002, 0x4030F620, 0xAE604702, - 0x00000002, 0x0030F688, 0xAE604702, 0x00000002, 0x4030F620, 0xAE605202, - 0x00000002, 0x0030F688, 0xAE605202, 0x00000002, - // Block 68, offset 0x1100 - 0x40310020, 0xAE603202, 0x00000002, 0x00310088, 0xAE603202, 0x00000002, - 0x40310020, 0xAE603502, 0x00000002, 0x00310088, 0xAE603502, 0x00000002, - 0x40310020, 0xAE603C02, 0x00000002, 0x00310088, 0xAE603C02, 0x00000002, - 0x40310020, 0xAE604302, 0x00000002, 0x40310020, 0xAE604702, 0x00000002, - 0x00310088, 0xAE604702, 0x00000002, 0x40310020, 0xAE604E02, 0x00000002, - 0x00310088, 0xAE604E02, 0x00000002, 0x40310020, 0xAE605202, 0x00000002, - 0x00310088, 0xAE605202, 0x00000002, 0x40310020, 0xAE605B02, 0x00000002, - 0x00310088, 0xAE605B02, 0x00000002, 0x40310020, 0xAE606402, 0x00000002, - 0x00310088, 0xAE606402, 0x00000002, 0x40310020, 0xADC07002, 0x00000002, - 0x00310088, 0xADC07002, 0x00000002, 0x40312A20, 0xAE603202, 0x00000002, - 0x00312A88, 0xAE603202, 0x00000002, 0x40312A20, - // Block 69, offset 0x1140 - 0xAE603C02, 0x00000002, 0x00312A88, 0xAE603C02, 0x00000002, 0x40312A20, - 0xAE604102, 0x00000002, 0x00312A88, 0xAE604102, 0x00000002, 0x40312A20, - 0xAE605202, 0x00000002, 0x00312A88, 0xAE605202, 0x00000002, 0x40312A20, - 0xADC07002, 0x00000002, 0x00312A88, 0xADC07002, 0x00000002, 0x40312A20, - 0xADC07B02, 0x00000002, 0x00312A88, 0xADC07B02, 0x00000002, 0x00312A84, - 0x0030E284, 0x00000002, 0x40316420, 0xAE604102, 0x00000002, 0x00316488, - 0xAE604102, 0x00000002, 0x40325220, 0xAE602202, 0x00000002, 0x00325288, - 0xAE602202, 0x00000003, 0x40325220, 0xAE602202, 0xAE603202, 0x00000003, - 0x00325288, 0xAE602202, 0xAE603202, 0x00000004, 0x40325220, 0xAE602202, - 0xAE603202, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602202, 0xAE603202, - 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202, - // Block 70, offset 0x1180 - 0xAE603502, 0x00000003, 0x00325288, 0xAE602202, 0xAE603502, 0x00000004, - 0x40325220, 0xAE602202, 0xAE603502, 0xAF007F02, 0x00000004, 0x00325288, - 0xAE602202, 0xAE603502, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202, - 0xAE604502, 0x00000003, 0x00325288, 0xAE602202, 0xAE604502, 0x00000004, - 0x40325220, 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000004, 0x00325288, - 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202, - 0xAF007F02, 0x00000003, 0x00325288, 0xAE602202, 0xAF007F02, 0x00000002, - 0x40325220, 0xAE602A02, 0x00000002, 0x00325288, 0xAE602A02, 0x00000003, - 0x40325220, 0xAE602A02, 0xAE603202, 0x00000003, 0x00325288, 0xAE602A02, - 0xAE603202, 0x00000004, 0x40325220, 0xAE602A02, 0xAE603202, 0xAF007F02, - 0x00000004, 0x00325288, 0xAE602A02, 0xAE603202, - // Block 71, offset 0x11c0 - 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE603502, 0x00000003, - 0x00325288, 0xAE602A02, 0xAE603502, 0x00000004, 0x40325220, 0xAE602A02, - 0xAE603502, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02, 0xAE603502, - 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE604502, 0x00000003, - 0x00325288, 0xAE602A02, 0xAE604502, 0x00000004, 0x40325220, 0xAE602A02, - 0xAE604502, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02, 0xAE604502, - 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAF007F02, 0x00000003, - 0x00325288, 0xAE602A02, 0xAF007F02, 0x00000002, 0x40325220, 0xAE603202, - 0x00000002, 0x00325288, 0xAE603202, 0x00000003, 0x40325220, 0xAE603202, - 0xAF007F02, 0x00000002, 0x40325220, 0xAE603502, 0x00000002, 0x00325288, - 0xAE603502, 0x00000003, 0x40325220, 0xAE603502, - // Block 72, offset 0x1200 - 0xAF007F02, 0x00000002, 0x40325220, 0xAE603702, 0x00000002, 0x00325288, - 0xAE603702, 0x00000002, 0x40325220, 0xAE604502, 0x00000003, 0x40325220, - 0xAE604502, 0xAF007F02, 0x00000002, 0x40325220, 0xAE605B02, 0x00000002, - 0x00325288, 0xAE605B02, 0x00000002, 0x40325220, 0xAF007F02, 0x00000002, - 0x00325288, 0xAF007F02, 0x00000002, 0x40325C20, 0xAE602202, 0x00000002, - 0x00325C88, 0xAE602202, 0x00000003, 0x40325C20, 0xAE602202, 0xAE603202, - 0x00000003, 0x00325C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40325C20, - 0xAE602202, 0xAE603502, 0x00000003, 0x00325C88, 0xAE602202, 0xAE603502, - 0x00000002, 0x40325C20, 0xAE602A02, 0x00000002, 0x00325C88, 0xAE602A02, - 0x00000003, 0x40325C20, 0xAE602A02, 0xAE603202, 0x00000003, 0x00325C88, - 0xAE602A02, 0xAE603202, 0x00000003, 0x40325C20, - // Block 73, offset 0x1240 - 0xAE602A02, 0xAE603502, 0x00000003, 0x00325C88, 0xAE602A02, 0xAE603502, - 0x00000002, 0x40325C20, 0xAE603202, 0x00000002, 0x00325C88, 0xAE603202, - 0x00000002, 0x40325C20, 0xAE603502, 0x00000002, 0x00325C88, 0xAE603502, - 0x00000002, 0x40326820, 0xAE602202, 0x00000002, 0x00326888, 0xAE602202, - 0x00000003, 0x40326820, 0xAE602202, 0xAE603202, 0x00000003, 0x00326888, - 0xAE602202, 0xAE603202, 0x00000004, 0x40326820, 0xAE602202, 0xAE603202, - 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603202, 0xAF007F02, - 0x00000003, 0x40326820, 0xAE602202, 0xAE603502, 0x00000003, 0x00326888, - 0xAE602202, 0xAE603502, 0x00000004, 0x40326820, 0xAE602202, 0xAE603502, - 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603502, 0xAF007F02, - 0x00000003, 0x40326820, 0xAE602202, 0xAE604502, - // Block 74, offset 0x1280 - 0x00000003, 0x00326888, 0xAE602202, 0xAE604502, 0x00000004, 0x40326820, - 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, - 0xAE604502, 0xAF007F02, 0x00000003, 0x40326820, 0xAE602202, 0xAF007F02, - 0x00000003, 0x00326888, 0xAE602202, 0xAF007F02, 0x00000002, 0x40326820, - 0xAE602A02, 0x00000002, 0x00326888, 0xAE602A02, 0x00000003, 0x40326820, - 0xAE602A02, 0xAE603202, 0x00000003, 0x00326888, 0xAE602A02, 0xAE603202, - 0x00000004, 0x40326820, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000004, - 0x00326888, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000003, 0x40326820, - 0xAE602A02, 0xAE603502, 0x00000003, 0x00326888, 0xAE602A02, 0xAE603502, - 0x00000004, 0x40326820, 0xAE602A02, 0xAE603502, 0xAF007F02, 0x00000004, - 0x00326888, 0xAE602A02, 0xAE603502, 0xAF007F02, - // Block 75, offset 0x12c0 - 0x00000003, 0x40326820, 0xAE602A02, 0xAE604502, 0x00000003, 0x00326888, - 0xAE602A02, 0xAE604502, 0x00000004, 0x40326820, 0xAE602A02, 0xAE604502, - 0xAF007F02, 0x00000004, 0x00326888, 0xAE602A02, 0xAE604502, 0xAF007F02, - 0x00000003, 0x40326820, 0xAE602A02, 0xAF007F02, 0x00000003, 0x00326888, - 0xAE602A02, 0xAF007F02, 0x00000002, 0x40326820, 0xAE603202, 0x00000002, - 0x00326888, 0xAE603202, 0x00000003, 0x40326820, 0xAE603202, 0xAF007F02, - 0x00000002, 0x40326820, 0xAE603502, 0x00000002, 0x00326888, 0xAE603502, - 0x00000003, 0x40326820, 0xAE603502, 0xAF007F02, 0x00000002, 0x40326820, - 0xAE604502, 0x00000003, 0x40326820, 0xAE604502, 0xAF007F02, 0x00000002, - 0x40326820, 0xAF007F02, 0x00000002, 0x00326888, 0xAF007F02, 0x00000002, - 0x40326C20, 0xAE602202, 0x00000002, 0x00326C88, - // Block 76, offset 0x1300 - 0xAE602202, 0x00000003, 0x40326C20, 0xAE602202, 0xAE603202, 0x00000003, - 0x00326C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40326C20, 0xAE602202, - 0xAE603502, 0x00000003, 0x00326C88, 0xAE602202, 0xAE603502, 0x00000003, - 0x40326C20, 0xAE602202, 0xAE604502, 0x00000003, 0x00326C88, 0xAE602202, - 0xAE604502, 0x00000002, 0x40326C20, 0xAE602A02, 0x00000002, 0x00326C88, - 0xAE602A02, 0x00000003, 0x40326C20, 0xAE602A02, 0xAE603202, 0x00000003, - 0x00326C88, 0xAE602A02, 0xAE603202, 0x00000003, 0x40326C20, 0xAE602A02, - 0xAE603502, 0x00000003, 0x00326C88, 0xAE602A02, 0xAE603502, 0x00000003, - 0x40326C20, 0xAE602A02, 0xAE604502, 0x00000003, 0x00326C88, 0xAE602A02, - 0xAE604502, 0x00000002, 0x40326C20, 0xAE603202, 0x00000002, 0x00326C88, - 0xAE603202, 0x00000002, 0x40326C20, 0xAE603502, - // Block 77, offset 0x1340 - 0x00000002, 0x00326C88, 0xAE603502, 0x00000002, 0x40326C20, 0xAE603702, - 0x00000002, 0x00326C88, 0xAE603702, 0x00000002, 0x40326C20, 0xAE604502, - 0x00000002, 0x40326C20, 0xAE604702, 0x00000002, 0x00326C88, 0xAE604702, - 0x00000003, 0x40326C20, 0xAE604702, 0xAE603202, 0x00000003, 0x40326C20, - 0xAE604702, 0xAE603502, 0x00000003, 0x40326C20, 0xAE604702, 0xAE604502, - 0x00000002, 0x40326C20, 0xAE605B02, 0x00000002, 0x00326C88, 0xAE605B02, - 0x00000003, 0x00327084, 0x00325284, 0x00326C84, 0x00000003, 0x0032708A, - 0x00325284, 0x00326C84, 0x00000002, 0x40327C20, 0xAE602202, 0x00000002, - 0x00327C88, 0xAE602202, 0x00000003, 0x40327C20, 0xAE602202, 0xAE603202, - 0x00000003, 0x00327C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40327C20, - 0xAE602202, 0xAE603502, 0x00000003, 0x00327C88, - // Block 78, offset 0x1380 - 0xAE602202, 0xAE603502, 0x00000002, 0x40327C20, 0xAE602A02, 0x00000002, - 0x00327C88, 0xAE602A02, 0x00000003, 0x40327C20, 0xAE602A02, 0xAE603202, - 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603202, 0x00000003, 0x40327C20, - 0xAE602A02, 0xAE603502, 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603502, - 0x00000002, 0x40327C20, 0xAE603202, 0x00000002, 0x00327C88, 0xAE603202, - 0x00000002, 0x40327C20, 0xAE603502, 0x00000002, 0x00327C88, 0xAE603502, - 0x00000002, 0x40328820, 0xAE602202, 0x00000002, 0x40328820, 0xAE602A02, - 0x00000002, 0x00328888, 0xAE602A02, 0x00000002, 0x40329820, 0xAE602202, - 0x00000003, 0x40329820, 0xAE602202, 0xAE603202, 0x00000003, 0x40329820, - 0xAE602202, 0xAE603502, 0x00000003, 0x40329820, 0xAE602202, 0xAE604502, - 0x00000002, 0x40329820, 0xAE602A02, 0x00000002, - // Block 79, offset 0x13c0 - 0x00329888, 0xAE602A02, 0x00000003, 0x40329820, 0xAE602A02, 0xAE603202, - 0x00000003, 0x00329888, 0xAE602A02, 0xAE603202, 0x00000003, 0x40329820, - 0xAE602A02, 0xAE603502, 0x00000003, 0x00329888, 0xAE602A02, 0xAE603502, - 0x00000003, 0x40329820, 0xAE602A02, 0xAE604502, 0x00000003, 0x00329888, - 0xAE602A02, 0xAE604502, 0x00000002, 0x40329820, 0xAE603202, 0x00000002, - 0x00329888, 0xAE603202, 0x00000002, 0x40329820, 0xAE603502, 0x00000002, - 0x00329888, 0xAE603502, 0x00000002, 0x40329820, 0xAE603702, 0x00000002, - 0x00329888, 0xAE603702, 0x00000002, 0x40329820, 0xAE604502, 0x00000002, - 0x40329820, 0xAE604702, 0x00000002, 0x00329888, 0xAE604702, 0x00000003, - 0x40329820, 0xAE604702, 0xAE603202, 0x00000003, 0x40329820, 0xAE604702, - 0xAE603502, 0x00000003, 0x40329820, 0xAE604702, - // Block 80, offset 0x1400 - 0xAE604502, 0x00000002, 0x40329820, 0xAE605B02, 0x00000002, 0x00329888, - 0xAE605B02, 0x00000002, 0x4032A220, 0xAE602202, 0x00000002, 0x0032A288, - 0xAE602202, 0x00000003, 0x4032A220, 0xAE602202, 0xAE603202, 0x00000003, - 0x0032A288, 0xAE602202, 0xAE603202, 0x00000004, 0x4032A220, 0xAE602202, - 0xAE603202, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603202, - 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, 0xAE603502, 0x00000003, - 0x0032A288, 0xAE602202, 0xAE603502, 0x00000004, 0x4032A220, 0xAE602202, - 0xAE603502, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603502, - 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, 0xAE604502, 0x00000003, - 0x0032A288, 0xAE602202, 0xAE604502, 0x00000004, 0x4032A220, 0xAE602202, - 0xAE604502, 0xAF007F02, 0x00000004, 0x0032A288, - // Block 81, offset 0x1440 - 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, - 0xAF007F02, 0x00000003, 0x0032A288, 0xAE602202, 0xAF007F02, 0x00000002, - 0x4032A220, 0xAE602A02, 0x00000002, 0x0032A288, 0xAE602A02, 0x00000003, - 0x4032A220, 0xAE602A02, 0xAE603202, 0x00000003, 0x0032A288, 0xAE602A02, - 0xAE603202, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603202, 0xAF007F02, - 0x00000004, 0x0032A288, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000003, - 0x4032A220, 0xAE602A02, 0xAE603502, 0x00000003, 0x0032A288, 0xAE602A02, - 0xAE603502, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603502, 0xAF007F02, - 0x00000004, 0x0032A288, 0xAE602A02, 0xAE603502, 0xAF007F02, 0x00000003, - 0x4032A220, 0xAE602A02, 0xAE604502, 0x00000003, 0x0032A288, 0xAE602A02, - 0xAE604502, 0x00000004, 0x4032A220, 0xAE602A02, - // Block 82, offset 0x1480 - 0xAE604502, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602A02, 0xAE604502, - 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602A02, 0xAF007F02, 0x00000003, - 0x0032A288, 0xAE602A02, 0xAF007F02, 0x00000002, 0x4032A220, 0xAE603202, - 0x00000002, 0x0032A288, 0xAE603202, 0x00000003, 0x4032A220, 0xAE603202, - 0xAF007F02, 0x00000002, 0x4032A220, 0xAE603502, 0x00000002, 0x0032A288, - 0xAE603502, 0x00000003, 0x4032A220, 0xAE603502, 0xAF007F02, 0x00000002, - 0x4032A220, 0xAE604502, 0x00000003, 0x4032A220, 0xAE604502, 0xAF007F02, - 0x00000002, 0x4032A220, 0xAF007F02, 0x00000002, 0x0032A288, 0xAF007F02, - 0x00000003, 0x0032C084, 0x0032AA84, 0x0032BE84, 0x00000002, 0x00336284, - 0xA0013A04, 0x00000002, 0x0033628A, 0xA0013A04, 0x00000002, 0x4033B220, - 0xAE603502, 0x00000002, 0x0033B288, 0xAE603502, - // Block 83, offset 0x14c0 - 0x00000002, 0x4033B220, 0xAE604702, 0x00000002, 0x0033B288, 0xAE604702, - 0x00000002, 0x4033CA20, 0xAE603702, 0x00000002, 0x0033CA88, 0xAE603702, - 0x00000002, 0x40341420, 0xAE603502, 0x00000002, 0x00341488, 0xAE603502, - 0x00000002, 0x40341420, 0xAE605B02, 0x00000002, 0x00341488, 0xAE605B02, - 0x00000002, 0x84E61A9D, 0x84E61AA6, 0x00000002, 0x40357220, 0xAE605B02, - 0x00000002, 0x00357288, 0xAE605B02, 0x00000002, 0x40389020, 0xA1108C02, - 0x00000002, 0x40389020, 0xA1208D02, 0x00000002, 0x40389020, 0xA1509202, - 0x00000002, 0x40389220, 0xA1509202, 0x00000002, 0x40389220, 0xA1709502, - 0x00000002, 0x40389420, 0xA1509202, 0x00000002, 0x40389620, 0xA1509202, - 0x00000002, 0x40389820, 0xA1509202, 0x00000002, 0x40389A20, 0xA1308E02, - 0x00000002, 0x40389A20, 0xA1509202, 0x00000002, - // Block 84, offset 0x1500 - 0x00389A84, 0x00389A84, 0x00000002, 0x00389A84, 0x0038A284, 0x00000002, - 0x40389C20, 0xA1509202, 0x00000002, 0x4038A020, 0xA1509202, 0x00000002, - 0x4038A220, 0xA0E08902, 0x00000002, 0x4038A220, 0xA1509202, 0x00000002, - 0x0038A284, 0x0038A284, 0x00000003, 0x0038A284, 0x0038A284, 0xA1108C02, - 0x00000002, 0x4038A420, 0xA1509202, 0x00000002, 0x0038A499, 0xA1509202, - 0x00000002, 0x4038A420, 0xA1709502, 0x00000002, 0x4038A620, 0xA1509202, - 0x00000002, 0x4038A820, 0xA1509202, 0x00000002, 0x4038AA20, 0xA1509202, - 0x00000002, 0x4038AC20, 0xA1509202, 0x00000002, 0x4038B020, 0xA1509202, - 0x00000002, 0x0038B099, 0xA1509202, 0x00000002, 0x4038B020, 0xA1709502, - 0x00000002, 0x4038B220, 0xA1509202, 0x00000002, 0x4038B420, 0xA1509202, - 0x00000002, 0x4038B620, 0xA1509202, 0x00000002, - // Block 85, offset 0x1540 - 0x4038B820, 0xA1909002, 0x00000002, 0x4038B820, 0xA1809102, 0x00000002, - 0x4038B820, 0xA1509202, 0x00000003, 0x4038B820, 0xA1509202, 0xA1909002, - 0x00000003, 0x4038B820, 0xA1509202, 0xA1809102, 0x00000002, 0x4038BA20, - 0xA1509202, 0x00000002, 0x00391C84, 0xA0013A04, 0x00000002, 0x00393099, - 0x00393899, 0x00000002, 0x0039309A, 0x0039389A, 0x00000002, 0x00393097, - 0x00396497, 0x00000002, 0x0039309A, 0x0039649A, 0x00000002, 0x00393097, - 0x00397297, 0x00000002, 0x0039309A, 0x0039729A, 0x00000002, 0x00393097, - 0x00397497, 0x00000002, 0x00393099, 0x0039A499, 0x00000002, 0x00393099, - 0x0039A699, 0x00000002, 0x00393097, 0x003A4E97, 0x00000002, 0x00393098, - 0x003A4E98, 0x00000002, 0x00393099, 0x003A4E99, 0x00000002, 0x0039309A, - 0x003A4E9A, 0x00000002, 0x00393099, 0x003A5699, - // Block 86, offset 0x1580 - 0x00000002, 0x00393097, 0x003A6897, 0x00000002, 0x00393098, 0x003A6898, - 0x00000002, 0x00393099, 0x003A7299, 0x00000002, 0x0039309A, 0x003A729A, - 0x00000002, 0x00393099, 0x003A7499, 0x00000002, 0x0039309A, 0x003A749A, - 0x00000002, 0x00393099, 0x003A7A99, 0x00000002, 0x0039309A, 0x003A7A9A, - 0x00000002, 0x00393099, 0x003A7C99, 0x00000002, 0x0039309A, 0x003A7C9A, - 0x00000002, 0x00393099, 0x003A7E99, 0x00000002, 0x0039309A, 0x003A7E9A, - 0x00000002, 0x00393097, 0x003A8E97, 0x00000002, 0x00393099, 0x003A8E99, - 0x00000002, 0x00393099, 0x003A8E99, 0x00000002, 0x0039309A, 0x003A8E9A, - 0x00000002, 0x0039309A, 0x003A8E9A, 0x00000002, 0x00393099, 0x003A9099, - 0x00000002, 0x0039309A, 0x003A909A, 0x00000002, 0x00393097, 0x003A9897, - 0x00000002, 0x00393099, 0x003A9899, 0x00000002, - // Block 87, offset 0x15c0 - 0x0039309A, 0x003A989A, 0x00000004, 0x0039389A, 0x003A1A9A, 0x00393C9A, - 0x0039A49A, 0x00000004, 0x0039389A, 0x003A409A, 0x003A409A, 0x003A689A, - 0x00000003, 0x00393C99, 0x00397299, 0x003A9099, 0x00000003, 0x00393C99, - 0x00397499, 0x003A9099, 0x00000003, 0x00395697, 0x00396497, 0x003A4E97, - 0x00000003, 0x00395699, 0x00396499, 0x003A8E99, 0x00000003, 0x00395699, - 0x00396499, 0x003A9099, 0x00000003, 0x00395697, 0x00397297, 0x00396497, - 0x00000003, 0x00395699, 0x00397299, 0x00396499, 0x00000003, 0x00395697, - 0x00397297, 0x003A4E97, 0x00000003, 0x00395697, 0x00397497, 0x003A4E97, - 0x00000003, 0x00395699, 0x00397499, 0x003A8E99, 0x00000003, 0x00395699, - 0x00397499, 0x003A9099, 0x00000003, 0x00395697, 0x003A4E97, 0x00396497, - 0x00000003, 0x00395697, 0x003A4E97, 0x00397297, - // Block 88, offset 0x1600 - 0x00000003, 0x00395697, 0x003A4E97, 0x00397497, 0x00000003, 0x00395699, - 0x003A4E99, 0x003A8E99, 0x00000003, 0x00395699, 0x003A4E99, 0x003A9099, - 0x00000003, 0x00396499, 0x00397299, 0x003A8E99, 0x00000003, 0x00396499, - 0x00397299, 0x003A9099, 0x00000008, 0x0039649A, 0x003A409A, 0x0002129A, - 0x0039649A, 0x003A409A, 0x0039389A, 0x003A409A, 0x003A689A, 0x00000003, - 0x00396497, 0x003A4E97, 0x00397297, 0x00000003, 0x00396499, 0x003A4E99, - 0x00397299, 0x00000003, 0x00396499, 0x003A4E99, 0x003A8E99, 0x00000003, - 0x00396499, 0x003A4E99, 0x003A9099, 0x00000003, 0x00397299, 0x00396499, - 0x003A9099, 0x00000003, 0x00397299, 0x003A4E99, 0x003A8E99, 0x00000003, - 0x00397299, 0x003A4E99, 0x003A9099, 0x00000004, 0x0039A49A, 0x0039C69A, - 0x003A749A, 0x003A409A, 0x00000003, 0x0039C697, - // Block 89, offset 0x1640 - 0x00396497, 0x00397297, 0x00000003, 0x0039C699, 0x00396499, 0x003A8E99, - 0x00000003, 0x0039C697, 0x00397297, 0x00396497, 0x00000003, 0x0039C699, - 0x00397499, 0x003A8E99, 0x00000003, 0x0039C699, 0x00397499, 0x003A9099, - 0x00000003, 0x0039C697, 0x003A4E97, 0x00396497, 0x00000003, 0x0039C697, - 0x003A4E97, 0x00397297, 0x00000003, 0x0039C699, 0x003A4E99, 0x00397299, - 0x00000003, 0x0039C697, 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039C699, - 0x003A4E99, 0x003A4E99, 0x00000003, 0x0039C899, 0x00396499, 0x003A9099, - 0x00000003, 0x0039C897, 0x00397297, 0x003A4E97, 0x00000003, 0x0039C899, - 0x00397299, 0x003A4E99, 0x00000003, 0x0039C899, 0x00397299, 0x003A9099, - 0x00000003, 0x0039C897, 0x003A4E97, 0x00397497, 0x00000003, 0x0039C899, - 0x003A4E99, 0x00397499, 0x00000003, 0x0039C897, - // Block 90, offset 0x1680 - 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039C899, 0x003A4E99, 0x003A4E99, - 0x00000003, 0x0039DC97, 0x00397297, 0x00397297, 0x00000003, 0x0039DC99, - 0x00397299, 0x00397299, 0x00000003, 0x0039DC99, 0x00397299, 0x003A9099, - 0x00000004, 0x0039DC9A, 0x003A409A, 0x0039EE9A, 0x003A4E9A, 0x00000003, - 0x0039DC9A, 0x003A409A, 0x003A8E9A, 0x00000012, 0x0039DC9A, 0x003A409A, - 0x003A8E9A, 0x0002129A, 0x0039389A, 0x003A409A, 0x003A409A, 0x003A689A, - 0x0002129A, 0x0039EE9A, 0x003A409A, 0x003A909A, 0x003A689A, 0x0002129A, - 0x003A749A, 0x0039C69A, 0x003A409A, 0x003A4E9A, 0x00000003, 0x0039DC9A, - 0x003A409A, 0x003AAA9A, 0x00000003, 0x0039DC97, 0x003A4E97, 0x003A4E97, - 0x00000003, 0x0039DC99, 0x003A4E99, 0x003A4E99, 0x00000003, 0x0039DE99, - 0x00397299, 0x003A8E99, 0x00000003, 0x0039DE99, - // Block 91, offset 0x16c0 - 0x00397299, 0x003A9099, 0x00000003, 0x0039DE97, 0x00397497, 0x003A4E97, - 0x00000003, 0x0039DE99, 0x00397499, 0x003A4E99, 0x00000003, 0x0039E697, - 0x003A4E97, 0x00397297, 0x00000003, 0x0039E699, 0x003A4E99, 0x00397299, - 0x00000003, 0x0039E697, 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039E699, - 0x003A4E99, 0x003A9099, 0x00000003, 0x0039EE97, 0x00396497, 0x003A4E97, - 0x00000003, 0x0039EE99, 0x00396499, 0x003A4E99, 0x00000004, 0x0039EE9A, - 0x003A409A, 0x003A909A, 0x003A689A, 0x00000003, 0x0039EE97, 0x003A4E97, - 0x003A4E97, 0x00000003, 0x0039EE99, 0x003A4E99, 0x003A4E99, 0x00000003, - 0x0039EE99, 0x003A4E99, 0x003A8E99, 0x00000003, 0x0039EE99, 0x003A4E99, - 0x003A9099, 0x00000003, 0x0039F099, 0x003A4E99, 0x003A4E99, 0x00000003, - 0x0039F099, 0x003A4E99, 0x003A8E99, 0x00000003, - // Block 92, offset 0x1700 - 0x0039F099, 0x003A4E99, 0x003A9099, 0x00000003, 0x0039FC97, 0x00397497, - 0x003A4E97, 0x00000003, 0x0039FC99, 0x00397499, 0x003A4E99, 0x00000003, - 0x0039FC99, 0x003A4E99, 0x003A9099, 0x00000003, 0x003A129A, 0x003A409A, - 0x003AAA9A, 0x00000003, 0x003A1297, 0x003A4E97, 0x00397297, 0x00000003, - 0x003A1299, 0x003A4E99, 0x00397299, 0x00000003, 0x003A1299, 0x003A4E99, - 0x003A4E99, 0x00000003, 0x003A1299, 0x003A4E99, 0x003A9099, 0x00000003, - 0x003A1A97, 0x003A4E97, 0x003A4E97, 0x00000003, 0x003A1A99, 0x003A4E99, - 0x003A4E99, 0x00000003, 0x003A1A99, 0x003A4E99, 0x003A9099, 0x00000002, - 0x003A4099, 0x00391E99, 0x00000002, 0x003A409A, 0x00391E9A, 0x00000002, - 0x003A4099, 0x00392099, 0x00000002, 0x003A409A, 0x0039209A, 0x00000002, - 0x003A4099, 0x00392899, 0x00000002, 0x003A409A, - // Block 93, offset 0x1740 - 0x0039289A, 0x00000003, 0x003A4097, 0x00396497, 0x00396497, 0x00000003, - 0x003A4099, 0x00396499, 0x00396499, 0x00000003, 0x003A4097, 0x00396497, - 0x003A4E97, 0x00000003, 0x003A4099, 0x00396499, 0x003A4E99, 0x00000003, - 0x003A4099, 0x00396499, 0x003A9099, 0x00000003, 0x003A4097, 0x00397297, - 0x003A4E97, 0x00000003, 0x003A4099, 0x00397299, 0x003A4E99, 0x00000003, - 0x003A4099, 0x00397299, 0x003A8E99, 0x00000003, 0x003A4099, 0x00397299, - 0x003A9099, 0x00000003, 0x003A4097, 0x00397497, 0x003A4E97, 0x00000003, - 0x003A4099, 0x00397499, 0x003A4E99, 0x00000003, 0x003A4097, 0x003A4E97, - 0x00397297, 0x00000003, 0x003A4099, 0x003A4E99, 0x00397299, 0x00000003, - 0x003A4099, 0x003A4E99, 0x003A9099, 0x00000002, 0x003A4E84, 0xA0013A04, - 0x00000003, 0x003A4E97, 0x00396497, 0x00397297, - // Block 94, offset 0x1780 - 0x00000003, 0x003A4E97, 0x00396497, 0x00397497, 0x00000003, 0x003A4E97, - 0x00396497, 0x003A4E97, 0x00000003, 0x003A4E99, 0x00396499, 0x003A9099, - 0x00000003, 0x003A4E97, 0x00397297, 0x00396497, 0x00000003, 0x003A4E97, - 0x00397297, 0x003A4E97, 0x00000004, 0x003A4E9A, 0x0039729A, 0x003A4E9A, - 0x0039889A, 0x00000003, 0x003A4E99, 0x00397299, 0x003A9099, 0x00000003, - 0x003A4E97, 0x00397497, 0x00396497, 0x00000003, 0x003A4E97, 0x00397497, - 0x003A4E97, 0x00000003, 0x003A4E99, 0x00397499, 0x003A9099, 0x00000003, - 0x003A4E99, 0x003A4E99, 0x003A9099, 0x00000003, 0x003A5697, 0x00396497, - 0x00397297, 0x00000003, 0x003A5699, 0x00396499, 0x00397299, 0x00000003, - 0x003A5697, 0x00396497, 0x003A4E97, 0x00000003, 0x003A5699, 0x00396499, - 0x003A4E99, 0x00000003, 0x003A5699, 0x00396499, - // Block 95, offset 0x17c0 - 0x003A8E99, 0x00000003, 0x003A5699, 0x00396499, 0x003A9099, 0x00000003, - 0x003A5697, 0x00397297, 0x003A4E97, 0x00000003, 0x003A5699, 0x00397299, - 0x003A8E99, 0x00000003, 0x003A5699, 0x00397299, 0x003A9099, 0x00000003, - 0x003A5699, 0x003A4E99, 0x003A8E99, 0x00000003, 0x003A5699, 0x003A4E99, - 0x003A9099, 0x00000003, 0x003A6897, 0x003A4E97, 0x00396497, 0x00000003, - 0x003A6897, 0x003A4E97, 0x003A4E97, 0x00000002, 0x403A6C20, 0xAE60BE02, - 0x00000002, 0x403A7220, 0xAE60BE02, 0x00000004, 0x003A749A, 0x0039C69A, - 0x003A409A, 0x003A4E9A, 0x00000003, 0x003A9099, 0x00396499, 0x003A9099, - 0x00000003, 0x003A9099, 0x00397299, 0x003A9099, 0x00000003, 0x003A9097, - 0x003A4E97, 0x003A4E97, 0x00000003, 0x003A9099, 0x003A4E99, 0x003A4E99, - 0x00000003, 0x003A9099, 0x003A4E99, 0x003A9099, - // Block 96, offset 0x1800 - 0x00000002, 0x403AAA20, 0xAE60BE02, 0x00000002, 0x003AB284, 0xA0013C04, - 0x00000002, 0x003AB484, 0xA0013A04, 0x00000002, 0x003AB484, 0xA0013C04, - 0x00000002, 0x003AB884, 0xA0013C04, 0x00000002, 0x003AC484, 0xA0013A04, - 0x00000002, 0x003AD884, 0xA0013A04, 0x00000002, 0x003B9484, 0xA0013904, - 0x00000002, 0x003B9684, 0xA0013904, 0x00000002, 0x003B9A84, 0xA0013904, - 0x00000002, 0x403FEC20, 0xA070F102, 0x00000002, 0x403FEE20, 0xA070F102, - 0x00000002, 0x403FF020, 0xA070F102, 0x00000002, 0x403FFC20, 0xA070F102, - 0x00000002, 0x40400A20, 0xA070F102, 0x00000002, 0x40400E20, 0xA070F102, - 0x00000002, 0x40401A20, 0xA070F102, 0x00000002, 0x40401E20, 0xA070F102, - 0x00000002, 0x40402820, 0xA070F102, 0x00000002, 0x40402C20, 0xA070F102, - 0x00000002, 0x40403020, 0xA070F102, 0x00000002, - // Block 97, offset 0x1840 - 0x4040B020, 0xA070F102, 0x00000002, 0x4040B220, 0xA070F102, 0x00000002, - 0x0040B684, 0x0040F884, 0x00000002, 0x4040CA20, 0xA070F102, 0x00000002, - 0x40411620, 0xA070F102, 0x00000002, 0x40411E20, 0xA070F102, 0x00000002, - 0x40412020, 0xA070F102, 0x00000002, 0x40412A20, 0xA070F102, 0x00000002, - 0x40414620, 0xA070F102, 0x00000002, 0x40415420, 0xA070F102, 0x00000002, - 0x40422A20, 0xA070F102, 0x00000002, 0x40422C20, 0xA070F102, 0x00000002, - 0x00442284, 0x00449084, 0x00000002, 0x00443E84, 0x00449084, 0x00000002, - 0x00444884, 0x00449084, 0x00000002, 0x00445884, 0x00449084, 0x00000002, - 0x00445884, 0x00449084, 0x00000002, 0x00445A84, 0x00449084, 0x00000002, - 0x00446684, 0x00449084, 0x00000002, 0x4046AA20, 0xA070F102, 0x00000002, - 0x4046AC20, 0xA070F102, 0x00000002, 0x4046BE20, - // Block 98, offset 0x1880 - 0xA070F102, 0x00000002, 0x40491020, 0x40498420, 0x00000002, 0x40491020, - 0x40498620, 0x00000002, 0x40491020, 0x40498820, 0x00000002, 0x40491020, - 0x40498A20, 0x00000002, 0x40491020, 0x40498C20, 0x00000002, 0x40491220, - 0x40498420, 0x00000002, 0x40491220, 0x40498620, 0x00000002, 0x40491220, - 0x40498820, 0x00000002, 0x40491220, 0x40498A20, 0x00000002, 0x40491220, - 0x40498C20, 0x00000002, 0x40491420, 0x40498420, 0x00000002, 0x40491420, - 0x40498620, 0x00000002, 0x40491420, 0x40498820, 0x00000002, 0x40491420, - 0x40498A20, 0x00000002, 0x40491420, 0x40498C20, 0x00000002, 0x40491620, - 0x40498420, 0x00000002, 0x40491620, 0x40498620, 0x00000002, 0x40491620, - 0x40498820, 0x00000002, 0x40491620, 0x40498A20, 0x00000002, 0x40491620, - 0x40498C20, 0x00000002, 0x40491820, 0x40498420, - // Block 99, offset 0x18c0 - 0x00000002, 0x40491820, 0x40498620, 0x00000002, 0x40491820, 0x40498820, - 0x00000002, 0x40491820, 0x40498A20, 0x00000002, 0x40491820, 0x40498C20, - 0x00000002, 0x40491A20, 0x40498420, 0x00000002, 0x40491A20, 0x40498620, - 0x00000002, 0x40491A20, 0x40498820, 0x00000002, 0x40491A20, 0x40498A20, - 0x00000002, 0x40491A20, 0x40498C20, 0x00000002, 0x40491C20, 0x40498420, - 0x00000002, 0x40491C20, 0x40498620, 0x00000002, 0x40491C20, 0x40498820, - 0x00000002, 0x40491C20, 0x40498A20, 0x00000002, 0x40491C20, 0x40498C20, - 0x00000002, 0x40491E20, 0x40498420, 0x00000002, 0x40491E20, 0x40498620, - 0x00000002, 0x40491E20, 0x40498820, 0x00000002, 0x40491E20, 0x40498A20, - 0x00000002, 0x40491E20, 0x40498C20, 0x00000002, 0x40492020, 0x40498420, - 0x00000002, 0x40492020, 0x40498620, 0x00000002, - // Block 100, offset 0x1900 - 0x40492020, 0x40498820, 0x00000002, 0x40492020, 0x40498A20, 0x00000002, - 0x40492020, 0x40498C20, 0x00000002, 0x40492220, 0x40498420, 0x00000002, - 0x40492220, 0x40498620, 0x00000002, 0x40492220, 0x40498820, 0x00000002, - 0x40492220, 0x40498A20, 0x00000002, 0x40492220, 0x40498C20, 0x00000002, - 0x40492420, 0x40498420, 0x00000002, 0x40492420, 0x40498620, 0x00000002, - 0x40492420, 0x40498820, 0x00000002, 0x40492420, 0x40498A20, 0x00000002, - 0x40492420, 0x40498C20, 0x00000002, 0x40492620, 0x40498420, 0x00000002, - 0x40492620, 0x40498620, 0x00000002, 0x40492620, 0x40498820, 0x00000002, - 0x40492620, 0x40498A20, 0x00000002, 0x40492620, 0x40498C20, 0x00000002, - 0x40492820, 0x40498420, 0x00000002, 0x40492820, 0x40498620, 0x00000002, - 0x40492820, 0x40498820, 0x00000002, 0x40492820, - // Block 101, offset 0x1940 - 0x40498A20, 0x00000002, 0x40492820, 0x40498C20, 0x00000002, 0x40492A20, - 0x40498420, 0x00000002, 0x40492A20, 0x40498620, 0x00000002, 0x40492A20, - 0x40498820, 0x00000002, 0x40492A20, 0x40498A20, 0x00000002, 0x40492A20, - 0x40498C20, 0x00000002, 0x40492C20, 0x40498420, 0x00000002, 0x40492C20, - 0x40498620, 0x00000002, 0x40492C20, 0x40498820, 0x00000002, 0x40492C20, - 0x40498A20, 0x00000002, 0x40492C20, 0x40498C20, 0x00000002, 0x40492E20, - 0x40498420, 0x00000002, 0x40492E20, 0x40498620, 0x00000002, 0x40492E20, - 0x40498820, 0x00000002, 0x40492E20, 0x40498A20, 0x00000002, 0x40492E20, - 0x40498C20, 0x00000002, 0x40493020, 0x40498420, 0x00000002, 0x40493020, - 0x40498620, 0x00000002, 0x40493020, 0x40498820, 0x00000002, 0x40493020, - 0x40498A20, 0x00000002, 0x40493020, 0x40498C20, - // Block 102, offset 0x1980 - 0x00000002, 0x40493220, 0x40498420, 0x00000002, 0x40493220, 0x40498620, - 0x00000002, 0x40493220, 0x40498820, 0x00000002, 0x40493220, 0x40498A20, - 0x00000002, 0x40493220, 0x40498C20, 0x00000002, 0x40493420, 0x40498420, - 0x00000002, 0x40493420, 0x40498620, 0x00000002, 0x40493420, 0x40498820, - 0x00000002, 0x40493420, 0x40498A20, 0x00000002, 0x40493420, 0x40498C20, - 0x00000002, 0x40493620, 0x40498420, 0x00000002, 0x40493620, 0x40498620, - 0x00000002, 0x40493620, 0x40498820, 0x00000002, 0x40493620, 0x40498A20, - 0x00000002, 0x40493620, 0x40498C20, 0x00000002, 0x40493820, 0x40498420, - 0x00000002, 0x40493820, 0x40498620, 0x00000002, 0x40493820, 0x40498820, - 0x00000002, 0x40493820, 0x40498A20, 0x00000002, 0x40493820, 0x40498C20, - 0x00000002, 0x40493A20, 0x40498420, 0x00000002, - // Block 103, offset 0x19c0 - 0x40493A20, 0x40498620, 0x00000002, 0x40493A20, 0x40498820, 0x00000002, - 0x40493A20, 0x40498A20, 0x00000002, 0x40493A20, 0x40498C20, 0x00000002, - 0x40493C20, 0x40498420, 0x00000002, 0x40493C20, 0x40498620, 0x00000002, - 0x40493C20, 0x40498820, 0x00000002, 0x40493C20, 0x40498A20, 0x00000002, - 0x40493C20, 0x40498C20, 0x00000002, 0x40493E20, 0x40498420, 0x00000002, - 0x40493E20, 0x40498620, 0x00000002, 0x40493E20, 0x40498820, 0x00000002, - 0x40493E20, 0x40498A20, 0x00000002, 0x40493E20, 0x40498C20, 0x00000002, - 0x40494020, 0x40498420, 0x00000002, 0x40494020, 0x40498620, 0x00000002, - 0x40494020, 0x40498820, 0x00000002, 0x40494020, 0x40498A20, 0x00000002, - 0x40494020, 0x40498C20, 0x00000002, 0x40494220, 0x40498420, 0x00000002, - 0x40494220, 0x40498620, 0x00000002, 0x40494220, - // Block 104, offset 0x1a00 - 0x40498820, 0x00000002, 0x40494220, 0x40498A20, 0x00000002, 0x40494220, - 0x40498C20, 0x00000002, 0x40494420, 0x40498420, 0x00000002, 0x40494420, - 0x40498620, 0x00000002, 0x40494420, 0x40498820, 0x00000002, 0x40494420, - 0x40498A20, 0x00000002, 0x40494420, 0x40498C20, 0x00000002, 0x40494620, - 0x40498420, 0x00000002, 0x40494620, 0x40498620, 0x00000002, 0x40494620, - 0x40498820, 0x00000002, 0x40494620, 0x40498A20, 0x00000002, 0x40494620, - 0x40498C20, 0x00000002, 0x40494820, 0x40498420, 0x00000002, 0x40494820, - 0x40498620, 0x00000002, 0x40494820, 0x40498820, 0x00000002, 0x40494820, - 0x40498A20, 0x00000002, 0x40494820, 0x40498C20, 0x00000002, 0x40494A20, - 0x40498420, 0x00000002, 0x40494A20, 0x40498620, 0x00000002, 0x40494A20, - 0x40498820, 0x00000002, 0x40494A20, 0x40498A20, - // Block 105, offset 0x1a40 - 0x00000002, 0x40494A20, 0x40498C20, 0x00000002, 0x40494C20, 0x40498420, - 0x00000002, 0x40494C20, 0x40498620, 0x00000002, 0x40494C20, 0x40498820, - 0x00000002, 0x40494C20, 0x40498A20, 0x00000002, 0x40494C20, 0x40498C20, - 0x00000002, 0x40494E20, 0x40498420, 0x00000002, 0x40494E20, 0x40498620, - 0x00000002, 0x40494E20, 0x40498820, 0x00000002, 0x40494E20, 0x40498A20, - 0x00000002, 0x40494E20, 0x40498C20, 0x00000002, 0x40495020, 0x40498420, - 0x00000002, 0x40495020, 0x40498620, 0x00000002, 0x40495020, 0x40498820, - 0x00000002, 0x40495020, 0x40498A20, 0x00000002, 0x40495020, 0x40498C20, - 0x00000002, 0x40495220, 0x40498420, 0x00000002, 0x40495220, 0x40498620, - 0x00000002, 0x40495220, 0x40498820, 0x00000002, 0x40495220, 0x40498A20, - 0x00000002, 0x40495220, 0x40498C20, 0x00000002, - // Block 106, offset 0x1a80 - 0x40495420, 0x40498420, 0x00000002, 0x40495420, 0x40498620, 0x00000002, - 0x40495420, 0x40498820, 0x00000002, 0x40495420, 0x40498A20, 0x00000002, - 0x40495420, 0x40498C20, 0x00000002, 0x40495620, 0x40498420, 0x00000002, - 0x40495620, 0x40498620, 0x00000002, 0x40495620, 0x40498820, 0x00000002, - 0x40495620, 0x40498A20, 0x00000002, 0x40495620, 0x40498C20, 0x00000002, - 0x40495820, 0x40498420, 0x00000002, 0x40495820, 0x40498620, 0x00000002, - 0x40495820, 0x40498820, 0x00000002, 0x40495820, 0x40498A20, 0x00000002, - 0x40495820, 0x40498C20, 0x00000002, 0x40495A20, 0x40498420, 0x00000002, - 0x40495A20, 0x40498620, 0x00000002, 0x40495A20, 0x40498820, 0x00000002, - 0x40495A20, 0x40498A20, 0x00000002, 0x40495A20, 0x40498C20, 0x00000002, - 0x40495C20, 0x40498420, 0x00000002, 0x40495C20, - // Block 107, offset 0x1ac0 - 0x40498620, 0x00000002, 0x40495C20, 0x40498820, 0x00000002, 0x40495C20, - 0x40498A20, 0x00000002, 0x40495C20, 0x40498C20, 0x00000002, 0x40495E20, - 0x40498420, 0x00000002, 0x40495E20, 0x40498620, 0x00000002, 0x40495E20, - 0x40498820, 0x00000002, 0x40495E20, 0x40498A20, 0x00000002, 0x40495E20, - 0x40498C20, 0x00000002, 0x40496020, 0x40498420, 0x00000002, 0x40496020, - 0x40498620, 0x00000002, 0x40496020, 0x40498820, 0x00000002, 0x40496020, - 0x40498A20, 0x00000002, 0x40496020, 0x40498C20, 0x00000002, 0x40496220, - 0x40498420, 0x00000002, 0x40496220, 0x40498620, 0x00000002, 0x40496220, - 0x40498820, 0x00000002, 0x40496220, 0x40498A20, 0x00000002, 0x40496220, - 0x40498C20, 0x00000002, 0x40496420, 0x40498420, 0x00000002, 0x40496420, - 0x40498620, 0x00000002, 0x40496420, 0x40498820, - // Block 108, offset 0x1b00 - 0x00000002, 0x40496420, 0x40498A20, 0x00000002, 0x40496420, 0x40498C20, - 0x00000002, 0x40496620, 0x40498420, 0x00000002, 0x40496620, 0x40498620, - 0x00000002, 0x40496620, 0x40498820, 0x00000002, 0x40496620, 0x40498A20, - 0x00000002, 0x40496620, 0x40498C20, 0x00000002, 0x40496820, 0x40498420, - 0x00000002, 0x40496820, 0x40498620, 0x00000002, 0x40496820, 0x40498820, - 0x00000002, 0x40496820, 0x40498A20, 0x00000002, 0x40496820, 0x40498C20, - 0x00000002, 0x40496A20, 0x40498420, 0x00000002, 0x40496A20, 0x40498620, - 0x00000002, 0x40496A20, 0x40498820, 0x00000002, 0x40496A20, 0x40498A20, - 0x00000002, 0x40496A20, 0x40498C20, 0x00000002, 0x40499020, 0x4049E620, - 0x00000002, 0x40499020, 0x4049E820, 0x00000002, 0x40499020, 0x4049EA20, - 0x00000002, 0x40499020, 0x4049EC20, 0x00000002, - // Block 109, offset 0x1b40 - 0x40499020, 0x4049EE20, 0x00000002, 0x40499220, 0x4049E620, 0x00000002, - 0x40499220, 0x4049E820, 0x00000002, 0x40499220, 0x4049EA20, 0x00000002, - 0x40499220, 0x4049EC20, 0x00000002, 0x40499220, 0x4049EE20, 0x00000002, - 0x40499420, 0x4049E620, 0x00000002, 0x40499420, 0x4049E820, 0x00000002, - 0x40499420, 0x4049EA20, 0x00000002, 0x40499420, 0x4049EC20, 0x00000002, - 0x40499420, 0x4049EE20, 0x00000002, 0x40499620, 0x4049E620, 0x00000002, - 0x40499620, 0x4049E820, 0x00000002, 0x40499620, 0x4049EA20, 0x00000002, - 0x40499620, 0x4049EC20, 0x00000002, 0x40499620, 0x4049EE20, 0x00000002, - 0x40499820, 0x4049E620, 0x00000002, 0x40499820, 0x4049E820, 0x00000002, - 0x40499820, 0x4049EA20, 0x00000002, 0x40499820, 0x4049EC20, 0x00000002, - 0x40499820, 0x4049EE20, 0x00000002, 0x40499A20, - // Block 110, offset 0x1b80 - 0x4049E620, 0x00000002, 0x40499A20, 0x4049E820, 0x00000002, 0x40499A20, - 0x4049EA20, 0x00000002, 0x40499A20, 0x4049EC20, 0x00000002, 0x40499A20, - 0x4049EE20, 0x00000002, 0x40499C20, 0x4049E620, 0x00000002, 0x40499C20, - 0x4049E820, 0x00000002, 0x40499C20, 0x4049EA20, 0x00000002, 0x40499C20, - 0x4049EC20, 0x00000002, 0x40499C20, 0x4049EE20, 0x00000002, 0x40499E20, - 0x4049E620, 0x00000002, 0x40499E20, 0x4049E820, 0x00000002, 0x40499E20, - 0x4049EA20, 0x00000002, 0x40499E20, 0x4049EC20, 0x00000002, 0x40499E20, - 0x4049EE20, 0x00000002, 0x4049A020, 0x4049E620, 0x00000002, 0x4049A020, - 0x4049E820, 0x00000002, 0x4049A020, 0x4049EA20, 0x00000002, 0x4049A020, - 0x4049EC20, 0x00000002, 0x4049A020, 0x4049EE20, 0x00000002, 0x4049A220, - 0x4049E620, 0x00000002, 0x4049A220, 0x4049E820, - // Block 111, offset 0x1bc0 - 0x00000002, 0x4049A220, 0x4049EA20, 0x00000002, 0x4049A220, 0x4049EC20, - 0x00000002, 0x4049A220, 0x4049EE20, 0x00000002, 0x4049A420, 0x4049E620, - 0x00000002, 0x4049A420, 0x4049E820, 0x00000002, 0x4049A420, 0x4049EA20, - 0x00000002, 0x4049A420, 0x4049EC20, 0x00000002, 0x4049A420, 0x4049EE20, - 0x00000002, 0x4049A620, 0x4049E620, 0x00000002, 0x4049A620, 0x4049E820, - 0x00000002, 0x4049A620, 0x4049EA20, 0x00000002, 0x4049A620, 0x4049EC20, - 0x00000002, 0x4049A620, 0x4049EE20, 0x00000002, 0x4049A820, 0x4049E620, - 0x00000002, 0x4049A820, 0x4049E820, 0x00000002, 0x4049A820, 0x4049EA20, - 0x00000002, 0x4049A820, 0x4049EC20, 0x00000002, 0x4049A820, 0x4049EE20, - 0x00000002, 0x4049AA20, 0x4049E620, 0x00000002, 0x4049AA20, 0x4049E820, - 0x00000002, 0x4049AA20, 0x4049EA20, 0x00000002, - // Block 112, offset 0x1c00 - 0x4049AA20, 0x4049EC20, 0x00000002, 0x4049AA20, 0x4049EE20, 0x00000002, - 0x4049AC20, 0x4049E620, 0x00000002, 0x4049AC20, 0x4049E820, 0x00000002, - 0x4049AC20, 0x4049EA20, 0x00000002, 0x4049AC20, 0x4049EC20, 0x00000002, - 0x4049AC20, 0x4049EE20, 0x00000002, 0x4049AE20, 0x4049E620, 0x00000002, - 0x4049AE20, 0x4049E820, 0x00000002, 0x4049AE20, 0x4049EA20, 0x00000002, - 0x4049AE20, 0x4049EC20, 0x00000002, 0x4049AE20, 0x4049EE20, 0x00000002, - 0x4049B020, 0x4049E620, 0x00000002, 0x4049B020, 0x4049E820, 0x00000002, - 0x4049B020, 0x4049EA20, 0x00000002, 0x4049B020, 0x4049EC20, 0x00000002, - 0x4049B020, 0x4049EE20, 0x00000002, 0x4049B220, 0x4049E620, 0x00000002, - 0x4049B220, 0x4049E820, 0x00000002, 0x4049B220, 0x4049EA20, 0x00000002, - 0x4049B220, 0x4049EC20, 0x00000002, 0x4049B220, - // Block 113, offset 0x1c40 - 0x4049EE20, 0x00000002, 0x4049B420, 0x4049E620, 0x00000002, 0x4049B420, - 0x4049E820, 0x00000002, 0x4049B420, 0x4049EA20, 0x00000002, 0x4049B420, - 0x4049EC20, 0x00000002, 0x4049B420, 0x4049EE20, 0x00000002, 0x4049B620, - 0x4049E620, 0x00000002, 0x4049B620, 0x4049E820, 0x00000002, 0x4049B620, - 0x4049EA20, 0x00000002, 0x4049B620, 0x4049EC20, 0x00000002, 0x4049B620, - 0x4049EE20, 0x00000002, 0x4049B820, 0x4049E620, 0x00000002, 0x4049B820, - 0x4049E820, 0x00000002, 0x4049B820, 0x4049EA20, 0x00000002, 0x4049B820, - 0x4049EC20, 0x00000002, 0x4049B820, 0x4049EE20, 0x00000002, 0x4049BA20, - 0x4049E620, 0x00000002, 0x4049BA20, 0x4049E820, 0x00000002, 0x4049BA20, - 0x4049EA20, 0x00000002, 0x4049BA20, 0x4049EC20, 0x00000002, 0x4049BA20, - 0x4049EE20, 0x00000002, 0x4049BC20, 0x4049E620, - // Block 114, offset 0x1c80 - 0x00000002, 0x4049BC20, 0x4049E820, 0x00000002, 0x4049BC20, 0x4049EA20, - 0x00000002, 0x4049BC20, 0x4049EC20, 0x00000002, 0x4049BC20, 0x4049EE20, - 0x00000002, 0x4049BE20, 0x4049E620, 0x00000002, 0x4049BE20, 0x4049E820, - 0x00000002, 0x4049BE20, 0x4049EA20, 0x00000002, 0x4049BE20, 0x4049EC20, - 0x00000002, 0x4049BE20, 0x4049EE20, 0x00000002, 0x4049C020, 0x4049E620, - 0x00000002, 0x4049C020, 0x4049E820, 0x00000002, 0x4049C020, 0x4049EA20, - 0x00000002, 0x4049C020, 0x4049EC20, 0x00000002, 0x4049C020, 0x4049EE20, - 0x00000002, 0x4049C220, 0x4049E620, 0x00000002, 0x4049C220, 0x4049E820, - 0x00000002, 0x4049C220, 0x4049EA20, 0x00000002, 0x4049C220, 0x4049EC20, - 0x00000002, 0x4049C220, 0x4049EE20, 0x00000003, 0x0049C484, 0x0049AC84, - 0x4049E620, 0x00000003, 0x0049C484, 0x0049AC84, - // Block 115, offset 0x1cc0 - 0x4049E820, 0x00000003, 0x0049C484, 0x0049AC84, 0x4049EA20, 0x00000003, - 0x0049C484, 0x0049AC84, 0x4049EC20, 0x00000003, 0x0049C484, 0x0049AC84, - 0x4049EE20, 0x00000003, 0x0049C484, 0x0049BA84, 0x4049E620, 0x00000003, - 0x0049C484, 0x0049BA84, 0x4049E820, 0x00000003, 0x0049C484, 0x0049BA84, - 0x4049EA20, 0x00000003, 0x0049C484, 0x0049BA84, 0x4049EC20, 0x00000003, - 0x0049C484, 0x0049BA84, 0x4049EE20, 0x00000002, 0x4049C420, 0x4049E620, - 0x00000002, 0x4049C420, 0x4049E820, 0x00000002, 0x4049C420, 0x4049EA20, - 0x00000002, 0x4049C420, 0x4049EC20, 0x00000002, 0x4049C420, 0x4049EE20, - 0x00000002, 0x4049C620, 0x4049E620, 0x00000002, 0x4049C620, 0x4049E820, - 0x00000002, 0x4049C620, 0x4049EA20, 0x00000002, 0x4049C620, 0x4049EC20, - 0x00000002, 0x4049C620, 0x4049EE20, 0x00000002, - // Block 116, offset 0x1d00 - 0x4049C820, 0x4049E620, 0x00000002, 0x4049C820, 0x4049E820, 0x00000002, - 0x4049C820, 0x4049EA20, 0x00000002, 0x4049C820, 0x4049EC20, 0x00000002, - 0x4049C820, 0x4049EE20, 0x00000002, 0x4049F020, 0x404A5A20, 0x00000002, - 0x4049F020, 0x404A5C20, 0x00000002, 0x4049F020, 0x404A6220, 0x00000002, - 0x4049F020, 0x404A6620, 0x00000002, 0x4049F020, 0x404A6820, 0x00000002, - 0x4049F220, 0x404A5A20, 0x00000002, 0x4049F220, 0x404A5C20, 0x00000002, - 0x4049F220, 0x404A6220, 0x00000002, 0x4049F220, 0x404A6620, 0x00000002, - 0x4049F220, 0x404A6820, 0x00000002, 0x4049F420, 0x404A5A20, 0x00000002, - 0x4049F420, 0x404A5C20, 0x00000002, 0x4049F420, 0x404A6220, 0x00000002, - 0x4049F420, 0x404A6620, 0x00000002, 0x4049F420, 0x404A6820, 0x00000002, - 0x4049F620, 0x404A5A20, 0x00000002, 0x4049F620, - // Block 117, offset 0x1d40 - 0x404A5C20, 0x00000002, 0x4049F620, 0x404A6220, 0x00000002, 0x4049F620, - 0x404A6620, 0x00000002, 0x4049F620, 0x404A6820, 0x00000002, 0x4049F820, - 0x404A5A20, 0x00000002, 0x4049F820, 0x404A5C20, 0x00000002, 0x4049F820, - 0x404A6220, 0x00000002, 0x4049F820, 0x404A6620, 0x00000002, 0x4049F820, - 0x404A6820, 0x00000002, 0x4049FA20, 0x404A5A20, 0x00000002, 0x4049FA20, - 0x404A5C20, 0x00000002, 0x4049FA20, 0x404A6220, 0x00000002, 0x4049FA20, - 0x404A6620, 0x00000002, 0x4049FA20, 0x404A6820, 0x00000002, 0x4049FC20, - 0x404A5A20, 0x00000002, 0x4049FC20, 0x404A5C20, 0x00000002, 0x4049FC20, - 0x404A6220, 0x00000002, 0x4049FC20, 0x404A6620, 0x00000002, 0x4049FC20, - 0x404A6820, 0x00000002, 0x4049FE20, 0x404A5A20, 0x00000002, 0x4049FE20, - 0x404A5C20, 0x00000002, 0x4049FE20, 0x404A6220, - // Block 118, offset 0x1d80 - 0x00000002, 0x4049FE20, 0x404A6620, 0x00000002, 0x4049FE20, 0x404A6820, - 0x00000002, 0x404A0020, 0x404A5A20, 0x00000002, 0x404A0020, 0x404A5C20, - 0x00000002, 0x404A0020, 0x404A6220, 0x00000002, 0x404A0020, 0x404A6620, - 0x00000002, 0x404A0020, 0x404A6820, 0x00000002, 0x404A0220, 0x404A5A20, - 0x00000002, 0x404A0220, 0x404A5C20, 0x00000002, 0x404A0220, 0x404A6220, - 0x00000002, 0x404A0220, 0x404A6620, 0x00000002, 0x404A0220, 0x404A6820, - 0x00000002, 0x404A0420, 0x404A5A20, 0x00000002, 0x404A0420, 0x404A5C20, - 0x00000002, 0x404A0420, 0x404A6220, 0x00000002, 0x404A0420, 0x404A6620, - 0x00000002, 0x404A0420, 0x404A6820, 0x00000002, 0x404A0620, 0x404A5A20, - 0x00000002, 0x404A0620, 0x404A5C20, 0x00000002, 0x404A0620, 0x404A6220, - 0x00000002, 0x404A0620, 0x404A6620, 0x00000002, - // Block 119, offset 0x1dc0 - 0x404A0620, 0x404A6820, 0x00000002, 0x404A0820, 0x404A5A20, 0x00000002, - 0x404A0820, 0x404A5C20, 0x00000002, 0x404A0820, 0x404A6220, 0x00000002, - 0x404A0820, 0x404A6620, 0x00000002, 0x404A0820, 0x404A6820, 0x00000002, - 0x404A0A20, 0x404A5A20, 0x00000002, 0x404A0A20, 0x404A5C20, 0x00000002, - 0x404A0A20, 0x404A6220, 0x00000002, 0x404A0A20, 0x404A6620, 0x00000002, - 0x404A0A20, 0x404A6820, 0x00000002, 0x404A0C20, 0x404A5A20, 0x00000002, - 0x404A0C20, 0x404A5C20, 0x00000002, 0x404A0C20, 0x404A6220, 0x00000002, - 0x404A0C20, 0x404A6620, 0x00000002, 0x404A0C20, 0x404A6820, 0x00000002, - 0x404A0E20, 0x404A5A20, 0x00000002, 0x404A0E20, 0x404A5C20, 0x00000002, - 0x404A0E20, 0x404A6220, 0x00000002, 0x404A0E20, 0x404A6620, 0x00000002, - 0x404A0E20, 0x404A6820, 0x00000002, 0x404A1020, - // Block 120, offset 0x1e00 - 0x404A5A20, 0x00000002, 0x404A1020, 0x404A5C20, 0x00000002, 0x404A1020, - 0x404A6220, 0x00000002, 0x404A1020, 0x404A6620, 0x00000002, 0x404A1020, - 0x404A6820, 0x00000002, 0x404A1220, 0x404A5A20, 0x00000002, 0x404A1220, - 0x404A5C20, 0x00000002, 0x404A1220, 0x404A6220, 0x00000002, 0x404A1220, - 0x404A6620, 0x00000002, 0x404A1220, 0x404A6820, 0x00000002, 0x404A1420, - 0x404A5A20, 0x00000002, 0x404A1420, 0x404A5C20, 0x00000002, 0x404A1420, - 0x404A6220, 0x00000002, 0x404A1420, 0x404A6620, 0x00000002, 0x404A1420, - 0x404A6820, 0x00000002, 0x404A1620, 0x404A5A20, 0x00000002, 0x404A1620, - 0x404A5C20, 0x00000002, 0x404A1620, 0x404A6220, 0x00000002, 0x404A1620, - 0x404A6620, 0x00000002, 0x404A1620, 0x404A6820, 0x00000002, 0x404A1820, - 0x404A5A20, 0x00000002, 0x404A1820, 0x404A5C20, - // Block 121, offset 0x1e40 - 0x00000002, 0x404A1820, 0x404A6220, 0x00000002, 0x404A1820, 0x404A6620, - 0x00000002, 0x404A1820, 0x404A6820, 0x00000002, 0x404A1A20, 0x404A5A20, - 0x00000002, 0x404A1A20, 0x404A5C20, 0x00000002, 0x404A1A20, 0x404A6220, - 0x00000002, 0x404A1A20, 0x404A6620, 0x00000002, 0x404A1A20, 0x404A6820, - 0x00000002, 0x404A1C20, 0x404A5A20, 0x00000002, 0x404A1C20, 0x404A5C20, - 0x00000002, 0x404A1C20, 0x404A6220, 0x00000002, 0x404A1C20, 0x404A6620, - 0x00000002, 0x404A1C20, 0x404A6820, 0x00000002, 0x404A1E20, 0x404A5A20, - 0x00000002, 0x404A1E20, 0x404A5C20, 0x00000002, 0x404A1E20, 0x404A6220, - 0x00000002, 0x404A1E20, 0x404A6620, 0x00000002, 0x404A1E20, 0x404A6820, - 0x00000002, 0x404A2020, 0x404A5A20, 0x00000002, 0x404A2020, 0x404A5C20, - 0x00000002, 0x404A2020, 0x404A6220, 0x00000002, - // Block 122, offset 0x1e80 - 0x404A2020, 0x404A6620, 0x00000002, 0x404A2020, 0x404A6820, 0x00000002, - 0x404A2220, 0x404A5A20, 0x00000002, 0x404A2220, 0x404A5C20, 0x00000002, - 0x404A2220, 0x404A6220, 0x00000002, 0x404A2220, 0x404A6620, 0x00000002, - 0x404A2220, 0x404A6820, 0x00000002, 0x404A2420, 0x404A5A20, 0x00000002, - 0x404A2420, 0x404A5C20, 0x00000002, 0x404A2420, 0x404A6220, 0x00000002, - 0x404A2420, 0x404A6620, 0x00000002, 0x404A2420, 0x404A6820, 0x00000002, - 0x404A2620, 0x404A5A20, 0x00000002, 0x404A2620, 0x404A5C20, 0x00000002, - 0x404A2620, 0x404A6220, 0x00000002, 0x404A2620, 0x404A6620, 0x00000002, - 0x404A2620, 0x404A6820, 0x00000002, 0x404A2820, 0x404A5A20, 0x00000002, - 0x404A2820, 0x404A5C20, 0x00000002, 0x404A2820, 0x404A6220, 0x00000002, - 0x404A2820, 0x404A6620, 0x00000002, 0x404A2820, - // Block 123, offset 0x1ec0 - 0x404A6820, 0x00000002, 0x404A2A20, 0x404A5A20, 0x00000002, 0x404A2A20, - 0x404A5C20, 0x00000002, 0x404A2A20, 0x404A6220, 0x00000002, 0x404A2A20, - 0x404A6620, 0x00000002, 0x404A2A20, 0x404A6820, 0x00000002, 0x404A2C20, - 0x404A5A20, 0x00000002, 0x404A2C20, 0x404A5C20, 0x00000002, 0x404A2C20, - 0x404A6220, 0x00000002, 0x404A2C20, 0x404A6620, 0x00000002, 0x404A2C20, - 0x404A6820, 0x00000002, 0x404A2E20, 0x404A5A20, 0x00000002, 0x404A2E20, - 0x404A5C20, 0x00000002, 0x404A2E20, 0x404A6220, 0x00000002, 0x404A2E20, - 0x404A6620, 0x00000002, 0x404A2E20, 0x404A6820, 0x00000002, 0x404A3020, - 0x404A5A20, 0x00000002, 0x404A3020, 0x404A5C20, 0x00000002, 0x404A3020, - 0x404A6220, 0x00000002, 0x404A3020, 0x404A6620, 0x00000002, 0x404A3020, - 0x404A6820, 0x00000002, 0x404A3220, 0x404A5A20, - // Block 124, offset 0x1f00 - 0x00000002, 0x404A3220, 0x404A5C20, 0x00000002, 0x404A3220, 0x404A6220, - 0x00000002, 0x404A3220, 0x404A6620, 0x00000002, 0x404A3220, 0x404A6820, - 0x00000002, 0x404A3420, 0x404A5A20, 0x00000002, 0x404A3420, 0x404A5C20, - 0x00000002, 0x404A3420, 0x404A6220, 0x00000002, 0x404A3420, 0x404A6620, - 0x00000002, 0x404A3420, 0x404A6820, 0x00000002, 0x404A3620, 0x404A5A20, - 0x00000002, 0x404A3620, 0x404A5C20, 0x00000002, 0x404A3620, 0x404A6220, - 0x00000002, 0x404A3620, 0x404A6620, 0x00000002, 0x404A3620, 0x404A6820, - 0x00000002, 0x404A3820, 0x404A5A20, 0x00000002, 0x404A3820, 0x404A5C20, - 0x00000002, 0x404A3820, 0x404A6220, 0x00000002, 0x404A3820, 0x404A6620, - 0x00000002, 0x404A3820, 0x404A6820, 0x00000002, 0x404A3A20, 0x404A5A20, - 0x00000002, 0x404A3A20, 0x404A5C20, 0x00000002, - // Block 125, offset 0x1f40 - 0x404A3A20, 0x404A6220, 0x00000002, 0x404A3A20, 0x404A6620, 0x00000002, - 0x404A3A20, 0x404A6820, 0x00000002, 0x404A3C20, 0x404A5A20, 0x00000002, - 0x404A3C20, 0x404A5C20, 0x00000002, 0x404A3C20, 0x404A6220, 0x00000002, - 0x404A3C20, 0x404A6620, 0x00000002, 0x404A3C20, 0x404A6820, 0x00000002, - 0x404A3E20, 0x404A5A20, 0x00000002, 0x404A3E20, 0x404A5C20, 0x00000002, - 0x404A3E20, 0x404A6220, 0x00000002, 0x404A3E20, 0x404A6620, 0x00000002, - 0x404A3E20, 0x404A6820, 0x00000002, 0x404A4020, 0x404A5A20, 0x00000002, - 0x404A4020, 0x404A5C20, 0x00000002, 0x404A4020, 0x404A6220, 0x00000002, - 0x404A4020, 0x404A6620, 0x00000002, 0x404A4020, 0x404A6820, 0x00000002, - 0x404A4220, 0x404A5A20, 0x00000002, 0x404A4220, 0x404A5C20, 0x00000002, - 0x404A4220, 0x404A6220, 0x00000002, 0x404A4220, - // Block 126, offset 0x1f80 - 0x404A6620, 0x00000002, 0x404A4220, 0x404A6820, 0x00000002, 0x404A4420, - 0x404A5A20, 0x00000002, 0x404A4420, 0x404A5C20, 0x00000002, 0x404A4420, - 0x404A6220, 0x00000002, 0x404A4420, 0x404A6620, 0x00000002, 0x404A4420, - 0x404A6820, 0x00000002, 0x404A4620, 0x404A5A20, 0x00000002, 0x404A4620, - 0x404A5C20, 0x00000002, 0x404A4620, 0x404A6220, 0x00000002, 0x404A4620, - 0x404A6620, 0x00000002, 0x404A4620, 0x404A6820, 0x00000002, 0x404A4820, - 0x404A5A20, 0x00000002, 0x404A4820, 0x404A5C20, 0x00000002, 0x404A4820, - 0x404A6220, 0x00000002, 0x404A4820, 0x404A6620, 0x00000002, 0x404A4820, - 0x404A6820, 0x00000002, 0x404A4A20, 0x404A5A20, 0x00000002, 0x404A4A20, - 0x404A5C20, 0x00000002, 0x404A4A20, 0x404A6220, 0x00000002, 0x404A4A20, - 0x404A6620, 0x00000002, 0x404A4A20, 0x404A6820, - // Block 127, offset 0x1fc0 - 0x00000002, 0x404A4C20, 0x404A5A20, 0x00000002, 0x404A4C20, 0x404A5C20, - 0x00000002, 0x404A4C20, 0x404A6220, 0x00000002, 0x404A4C20, 0x404A6620, - 0x00000002, 0x404A4C20, 0x404A6820, 0x00000002, 0x404A4E20, 0x404A5A20, - 0x00000002, 0x404A4E20, 0x404A5C20, 0x00000002, 0x404A4E20, 0x404A6220, - 0x00000002, 0x404A4E20, 0x404A6620, 0x00000002, 0x404A4E20, 0x404A6820, - 0x00000002, 0x404A7620, 0x404AF820, 0x00000002, 0x404A7820, 0x404AF820, - 0x00000002, 0x404A8020, 0x404B0020, 0x00000002, 0x404A8220, 0x404B0020, - 0x00000002, 0x404AA020, 0x404B0020, 0x00000002, 0x404AA220, 0x404B0020, - 0x00000002, 0x404AB020, 0x404B0020, 0x00000002, 0x404AB220, 0x404B0020, - 0x00000002, 0x404AC020, 0x404B0020, 0x00000002, 0x404AC220, 0x404B0020, - 0x00000002, 0x404AD020, 0x404B0020, 0x00000002, - // Block 128, offset 0x2000 - 0x404AD220, 0x404B0020, 0x00000002, 0x004AD684, 0xA0013A04, 0x00000002, - 0x004AE684, 0xA0013A04, 0x00000002, 0x004AE884, 0xA0013A04, 0x00000002, - 0x004AEA84, 0xA0013A04, 0x00000002, 0x404AEA20, 0x8281258D, 0x00000002, - 0x404AEA20, 0x82812591, 0x00000002, 0x404AF020, 0x8281258D, 0x00000002, - 0x404AF020, 0x82812591, 0x00000003, 0x004B0284, 0x004B3084, 0xA000F304, - 0x00000003, 0x004EA684, 0x004F1484, 0x004EA684, 0x00000002, 0x0050AE84, - 0x0050DA84, 0x00000003, 0x0050AE84, 0x0050DA84, 0x0050F084, 0x00000003, - 0x00514E84, 0x00519A84, 0x00514E84, 0x00000002, 0x005ADA84, 0xA0013904, - 0x00000002, 0x005ADC84, 0xA0013904, 0x00000002, 0x005ADC84, 0xA0013A04, - 0x00000002, 0x005ADE84, 0xA0013904, 0x00000002, 0x005ADE84, 0x005ADE84, - 0x00000002, 0x005AE084, 0xA0013904, 0x00000002, - // Block 129, offset 0x2040 - 0x005AE084, 0xA0013A04, 0x00000002, 0x005AE084, 0xA0013C04, 0x00000002, - 0x005AE084, 0xA0013D04, 0x00000002, 0x005AE884, 0xA0013904, 0x00000002, - 0x005AE884, 0xA0013A04, 0x00000002, 0x005AE884, 0xA0013C04, 0x00000002, - 0x005AE884, 0xA0013D04, 0x00000002, 0x005AEC84, 0xA0013904, 0x00000002, - 0x005AEE84, 0xA0013904, 0x00000002, 0x005AEE84, 0xA0013A04, 0x00000002, - 0x005AEE84, 0xA0013C04, 0x00000002, 0x005AF084, 0xA0013904, 0x00000002, - 0x005AF084, 0xA0013A04, 0x00000002, 0x005AF284, 0xA0013904, 0x00000002, - 0x005AF484, 0xA0013904, 0x00000002, 0x005AF684, 0xA0013904, 0x00000002, - 0x005AF684, 0x005B0884, 0x00000002, 0x005AFA84, 0xA0013904, 0x00000002, - 0x005AFE84, 0xA0013904, 0x00000002, 0x005AFE84, 0xA0013A04, 0x00000002, - 0x005AFE84, 0xA0013C04, 0x00000002, 0x005AFE84, - // Block 130, offset 0x2080 - 0xA0013D04, 0x00000002, 0x005AFE84, 0xA0013E04, 0x00000002, 0x005B0084, - 0xA0013904, 0x00000002, 0x005B0084, 0xA0013A04, 0x00000002, 0x005B0284, - 0xA0013904, 0x00000002, 0x005B0284, 0xA0013A04, 0x00000002, 0x005B0684, - 0xA0013904, 0x00000002, 0x005B0684, 0xA0013A04, 0x00000004, 0x005B0684, - 0xA0013904, 0x005B0684, 0xA0013904, 0x00000002, 0x005B0884, 0xA0013904, - 0x00000002, 0x005B0A84, 0xA0013904, 0x00000002, 0x005B2484, 0xA0013904, - 0x00000002, 0x005B2484, 0xA0013A04, 0x00000002, 0x005B2684, 0xA0013904, - 0x00000002, 0x005B2A84, 0xA0013904, 0x00000002, 0x005B3084, 0xA0013904, - 0x00000002, 0x005B3284, 0xA0013904, 0x00000002, 0x005B3484, 0xA0013904, - 0x00000002, 0x005B3684, 0xA0013904, 0x00000002, 0x005B3884, 0xA0013904, - 0x00000002, 0x005B3A84, 0xA0013904, 0x00000002, - // Block 131, offset 0x20c0 - 0x005B3E84, 0xA0013904, 0x00000002, 0x005B4084, 0xA0013904, 0x00000002, - 0x005B4284, 0xA0013904, 0x00000002, 0x005B4484, 0xA0013904, 0x00000002, - 0x005B4684, 0xA0013904, 0x00000002, 0x005B4884, 0xA0013904, 0x00000002, - 0x005B5284, 0xA0013904, 0x00000002, 0x005B5484, 0xA0013904, 0x00000002, - 0x005B5684, 0xA0013904, 0x00000002, 0x005B5884, 0xA0013904, 0x00000002, - 0x005B5C84, 0xA0013904, 0x00000002, 0x005B6484, 0xA0013904, 0x00000002, - 0x005B6684, 0xA0013904, 0x00000002, 0x005B6884, 0xA0013904, 0x00000002, - 0x005B6A84, 0xA0013904, 0x00000002, 0x005B6C84, 0xA0013904, 0x00000002, - 0x005B7484, 0xA0013904, 0x00000002, 0x005B7684, 0xA0013904, 0x00000002, - 0x005B7884, 0xA0013904, 0x00000002, 0x005B7A84, 0xA0013904, 0x00000002, - 0x005B9884, 0x005D9684, 0x00000002, 0x005BBC84, - // Block 132, offset 0x2100 - 0x005D9684, 0x00000002, 0x005BE684, 0x005D9684, 0x00000002, 0x005C0E84, - 0x005D9884, 0x00000002, 0x005C2484, 0x005D9684, 0x00000002, 0x005C3084, - 0x005D9884, 0x00000002, 0x005C3484, 0x005D9884, 0x00000002, 0x005C4084, - 0x005D9684, 0x00000002, 0x005C8A84, 0x005D9684, 0x00000002, 0x005CE884, - 0x005D9684, 0x00000002, 0x005D1684, 0x005D9684, 0x00000002, 0x005D2284, - 0x005D9884, 0x00000002, 0x005D3084, 0x005D9684, 0x00000004, 0x0062C486, - 0x0063C286, 0x0062C286, 0x0063CE86, 0x00000005, 0x0062C886, 0x0063A886, - 0x00648286, 0x0062AC86, 0x0063B886, 0x00000003, 0x0065769C, 0x0027D69C, - 0x0065CA9C, 0x00000005, 0x0065769C, 0x0065AA9C, 0xA001291C, 0x0027D69C, - 0x00659E9C, 0x00000004, 0x0065769C, 0x0065CA9C, 0x0065AE9C, 0x0065769C, - 0x00000005, 0x0065769C, 0x0065D89C, 0x0065B09C, - // Block 133, offset 0x2140 - 0xA001291C, 0x0065769C, 0x00000005, 0x0065789C, 0x0065A29C, 0x0065D89C, - 0x0065869C, 0xA001281C, 0x00000003, 0x0065789C, 0x0065D89C, 0x0065989C, - 0x00000002, 0x00657A8E, 0xA0812802, 0x00000002, 0x00657A91, 0xA0812802, - 0x00000003, 0x00657A9C, 0x0065809C, 0x0065D89C, 0x00000004, 0x00657E9C, - 0x0027D69C, 0x0065829C, 0x0027D69C, 0x00000006, 0x00657E9C, 0x0065909C, - 0x0065869C, 0x0027D69C, 0x00659E9C, 0xA001281C, 0x00000003, 0x0065809C, - 0x0027D69C, 0x0065B89C, 0x00000003, 0x0065809C, 0x0065D89C, 0x0065909C, - 0x00000002, 0x0065828E, 0xA0812802, 0x00000002, 0x00658291, 0xA0812802, - 0x00000003, 0x0065829C, 0x0065789C, 0x0065C89C, 0x00000004, 0x0065829C, - 0x0065C69C, 0x00659A9C, 0x00659E9C, 0x00000004, 0x0065829C, 0x0065CE9C, - 0x0065C89C, 0x0027D69C, 0x00000004, 0x0065829C, - // Block 134, offset 0x2180 - 0xA001281C, 0x0065CE9C, 0x0065D89C, 0x00000004, 0x0065829C, 0xA001281C, - 0x0065D89C, 0x0065B49C, 0x00000002, 0x0065848E, 0xA0812802, 0x00000002, - 0x00658491, 0xA0812802, 0x00000004, 0x0065849C, 0xA001281C, 0x0065829C, - 0xA001281C, 0x00000004, 0x0065849C, 0xA001281C, 0x0065A29C, 0x0027D69C, - 0x00000004, 0x0065849C, 0x0065C09C, 0x0065C89C, 0x0027D69C, 0x00000006, - 0x0065849C, 0xA001281C, 0x0065CA9C, 0x0065969C, 0xA001281C, 0x0027D69C, - 0x00000006, 0x0065849C, 0x0065CE9C, 0x0065869C, 0xA001281C, 0x0065C69C, - 0x0065B89C, 0x00000006, 0x0065849C, 0x0065CE9C, 0x0065BA9C, 0x0027D69C, - 0x00659E9C, 0x0065CA9C, 0x00000005, 0x0065849C, 0x0065CE9C, 0x0065D09C, - 0x00659A9C, 0x00659E9C, 0x00000002, 0x0065868E, 0xA0812802, 0x00000002, - 0x00658691, 0xA0812802, 0x00000004, 0x0065869C, - // Block 135, offset 0x21c0 - 0xA001281C, 0x0065C69C, 0x0065B89C, 0x00000006, 0x0065869C, 0xA001281C, - 0x0065C69C, 0x0065B89C, 0x00659E9C, 0x0065D89C, 0x00000006, 0x0065869C, - 0x0065CA9C, 0x0065929C, 0xA001281C, 0x0065789C, 0x0065CE9C, 0x00000004, - 0x0065869C, 0x0065CE9C, 0x0027D69C, 0x0065A69C, 0x00000002, 0x0065888E, - 0xA0812802, 0x00000002, 0x00658891, 0xA0812802, 0x00000003, 0x0065889C, - 0x0027D69C, 0x0065909C, 0x00000002, 0x00658A8E, 0xA0812802, 0x00000002, - 0x00658A91, 0xA0812802, 0x00000004, 0x00658A9C, 0x0027D69C, 0x0065B29C, - 0xA001291C, 0x00000003, 0x00658A9C, 0x0065CA9C, 0x0065A09C, 0x00000002, - 0x00658C8E, 0xA0812802, 0x00000002, 0x00658C91, 0xA0812802, 0x00000004, - 0x00658C9C, 0x0065789C, 0x0065869C, 0x0065CA9C, 0x00000005, 0x00658C9C, - 0x0065D89C, 0x0065989C, 0x0027D69C, 0x0065B89C, - // Block 136, offset 0x2200 - 0x00000002, 0x00658E8E, 0xA0812802, 0x00000002, 0x00658E91, 0xA0812802, - 0x00000002, 0x00658E84, 0x0065BA84, 0x00000005, 0x00658E9C, 0x0065C89C, - 0x0065D89C, 0x0065869C, 0xA001281C, 0x00000002, 0x0065908E, 0xA0812802, - 0x00000002, 0x00659091, 0xA0812802, 0x00000002, 0x0065928E, 0xA0812802, - 0x00000002, 0x00659291, 0xA0812802, 0x00000003, 0x0065929C, 0x0065D89C, - 0x0065989C, 0x00000003, 0x0065929C, 0x0065D89C, 0x00659E9C, 0x00000002, - 0x0065948E, 0xA0812802, 0x00000002, 0x00659491, 0xA0812802, 0x00000002, - 0x0065968E, 0xA0812802, 0x00000002, 0x00659691, 0xA0812802, 0x00000004, - 0x0065969C, 0xA001281C, 0x0027D69C, 0x0065909C, 0x00000002, 0x0065988E, - 0xA0812802, 0x00000002, 0x00659891, 0xA0812802, 0x00000002, 0x00659A8E, - 0xA0812802, 0x00000002, 0x00659A91, 0xA0812802, - // Block 137, offset 0x2240 - 0x00000002, 0x00659C8E, 0xA0812802, 0x00000002, 0x00659C91, 0xA0812802, - 0x00000003, 0x00659C9C, 0xA001281C, 0x00658E9C, 0x00000002, 0x00659E8E, - 0xA0812802, 0x00000002, 0x00659E91, 0xA0812802, 0x00000003, 0x00659E9C, - 0xA001281C, 0x0065CA9C, 0x00000003, 0x0065A89C, 0x00659A9C, 0x00659E9C, - 0x00000002, 0x0065AA8E, 0xA0812802, 0x00000002, 0x0065AA91, 0xA0812802, - 0x00000002, 0x0065AA8E, 0xA0812902, 0x00000002, 0x0065AA91, 0xA0812902, - 0x00000006, 0x0065AA9C, 0xA001291C, 0x0027D69C, 0x0065929C, 0x0065D89C, - 0x00659E9C, 0x00000004, 0x0065AA9C, 0xA001291C, 0x0027D69C, 0x00659A9C, - 0x00000005, 0x0065AA9C, 0xA001281C, 0x0027D69C, 0x0065CC9C, 0x0065CA9C, - 0x00000003, 0x0065AA9C, 0x0065789C, 0x00659A9C, 0x00000002, 0x0065AC8E, - 0xA0812802, 0x00000002, 0x0065AC91, 0xA0812802, - // Block 138, offset 0x2280 - 0x00000002, 0x0065AC8E, 0xA0812902, 0x00000002, 0x0065AC91, 0xA0812902, - 0x00000006, 0x0065AC9C, 0xA001291C, 0x0065769C, 0x0065909C, 0x00659E9C, - 0x0065CA9C, 0x00000004, 0x0065AC9C, 0xA001291C, 0x0065869C, 0x0065CA9C, - 0x00000003, 0x0065AC9C, 0xA001291C, 0x00658A9C, 0x00000003, 0x0065AC9C, - 0xA001281C, 0x0065CA9C, 0x00000002, 0x0065AE8E, 0xA0812802, 0x00000002, - 0x0065AE91, 0xA0812802, 0x00000002, 0x0065AE8E, 0xA0812902, 0x00000002, - 0x0065AE91, 0xA0812902, 0x00000006, 0x0065AE9C, 0x0065769C, 0x0065C69C, - 0x00659A9C, 0x00659E9C, 0xA001281C, 0x00000004, 0x0065AE9C, 0x0065789C, - 0x0027D69C, 0x00659E9C, 0x00000006, 0x0065AE9C, 0xA001281C, 0x00659A9C, - 0x00658E9C, 0x00657E9C, 0x0065CA9C, 0x00000003, 0x0065AE9C, 0x0065C69C, - 0x0065D89C, 0x00000002, 0x0065B08E, 0xA0812802, - // Block 139, offset 0x22c0 - 0x00000002, 0x0065B091, 0xA0812802, 0x00000002, 0x0065B08E, 0xA0812902, - 0x00000002, 0x0065B091, 0xA0812902, 0x00000005, 0x0065B09C, 0xA001291C, - 0x0027D69C, 0x00658E9C, 0xA001281C, 0x00000004, 0x0065B09C, 0xA001281C, - 0x0027D69C, 0x0065969C, 0x00000005, 0x0065B09C, 0x0065869C, 0x0065969C, - 0x0027D69C, 0x0065CA9C, 0x00000003, 0x0065B09C, 0xA001291C, 0x0065949C, - 0x00000004, 0x0065B09C, 0xA001291C, 0x0065A29C, 0x0065AC9C, 0x00000003, - 0x0065B09C, 0x0065CA9C, 0x00659A9C, 0x00000004, 0x0065B09C, 0xA001291C, - 0x0065D89C, 0x0065909C, 0x00000002, 0x0065B28E, 0xA0812802, 0x00000002, - 0x0065B291, 0xA0812802, 0x00000002, 0x0065B28E, 0xA0812902, 0x00000002, - 0x0065B291, 0xA0812902, 0x00000003, 0x0065B29C, 0x0027D69C, 0x0065CA9C, - 0x00000003, 0x0065B29C, 0x0027D69C, 0x0065D89C, - // Block 140, offset 0x2300 - 0x00000005, 0x0065B29C, 0xA001291C, 0x0065789C, 0x0065D89C, 0x00659E9C, - 0x00000004, 0x0065B29C, 0xA001281C, 0x0065CA9C, 0x00659E9C, 0x00000005, - 0x0065B29C, 0xA001291C, 0x0065D89C, 0x00659E9C, 0xA001281C, 0x00000004, - 0x0065B49C, 0x0065789C, 0x0065869C, 0x0065CE9C, 0x00000003, 0x0065B49C, - 0x0065789C, 0x0065CA9C, 0x00000002, 0x0065B484, 0x00659084, 0x00000003, - 0x0065B49C, 0x00659A9C, 0x0065AA9C, 0x00000003, 0x0065B49C, 0x0065CA9C, - 0x0065869C, 0x00000005, 0x0065B49C, 0x0065D89C, 0x00658E9C, 0x0065C49C, - 0x0065D89C, 0x00000004, 0x0065B69C, 0x0065869C, 0x0065CE9C, 0x0065D89C, - 0x00000006, 0x0065B69C, 0x0065C89C, 0x0065AA9C, 0xA001281C, 0x0027D69C, - 0x0065CA9C, 0x00000004, 0x0065BA9C, 0x0027D69C, 0x00659E9C, 0x0065CA9C, - 0x00000003, 0x0065BA9C, 0x0065829C, 0xA001281C, - // Block 141, offset 0x2340 - 0x00000005, 0x0065BA9C, 0x0065829C, 0xA001281C, 0x00659E9C, 0x0065D89C, - 0x00000004, 0x0065BE9C, 0x0027D69C, 0x00659E9C, 0xA001281C, 0x00000003, - 0x0065BE9C, 0x0027D69C, 0x0065CA9C, 0x00000003, 0x0065C09C, 0x0065769C, - 0x0065D89C, 0x00000004, 0x0065C89C, 0x00659A9C, 0x00659E9C, 0x0065CA9C, - 0x00000005, 0x0065CA9C, 0x0027D69C, 0x0065AE9C, 0xA001281C, 0x0065CA9C, - 0x00000004, 0x0065CA9C, 0x0065AC9C, 0xA001291C, 0x0027D69C, 0x00000006, - 0x0065CC9C, 0x0065D89C, 0x00659E9C, 0x0065889C, 0xA001281C, 0x0065D89C, - 0x00000002, 0x0065D091, 0xA0812802, 0x00000003, 0x0065D09C, 0x00659A9C, - 0x00659E9C, 0x00000002, 0x0065D291, 0xA0812802, 0x00000002, 0x0065D491, - 0xA0812802, 0x00000002, 0x0065D691, 0xA0812802, 0x00000002, 0x0065DA84, - 0xA0013A04, 0x00000002, 0x0065EC84, 0xA0013A04, - // Block 142, offset 0x2380 - 0x00000002, 0x0065F684, 0xA0013A04, 0x00000002, 0x00660684, 0xA0013A04, - 0x00000002, 0x00661284, 0xA0013A04, 0x00000002, 0x00661484, 0xA0013A04, - 0x00000002, 0x00661C84, 0xA0013A04, 0x00000002, 0x00661E84, 0xA0013A04, - 0x00000002, 0x00662284, 0xA0013A04, 0x00000002, 0x00663884, 0xA0013A04, - 0x00000002, 0x00663896, 0xA0013A16, 0x00000002, 0x00663A84, 0xA0013A04, - 0x00000002, 0x00663A84, 0xA0013C04, 0x00000002, 0x0075C284, 0xA0013904, - 0x00000002, 0x00862084, 0xA0013904, 0x00000002, 0x00862284, 0xA0013904, - 0x00000002, 0x00862484, 0xA0013904, 0x00000002, 0x00862684, 0xA0013904, - 0x00000002, 0x00862884, 0xA0013904, 0x00000002, 0x00862A84, 0xA0013904, - 0x00000002, 0x00862C84, 0xA0013904, 0x00000002, 0x00862C84, 0xA0013A04, - 0x00000002, 0x00862E84, 0xA0013904, 0x00000002, - // Block 143, offset 0x23c0 - 0x00863084, 0xA0013904, 0x00000002, 0x00863284, 0xA0013904, 0x00000002, - 0x00863284, 0xA0013A04, 0x00000002, 0x00863484, 0xA0013904, 0x00000002, - 0x00863484, 0xA0013A04, 0x00000002, 0x00863684, 0xA0013904, 0x00000002, - 0x00863684, 0xA0013A04, 0x00000002, 0x00863884, 0xA0013904, 0x00000002, - 0x00863A84, 0xA0013904, 0x00000002, 0x00863C84, 0xA0013904, 0x00000002, - 0x00863E84, 0xA0013904, 0x00000002, 0x00863E84, 0xA0013A04, 0x00000002, - 0x00863E84, 0xA0013C04, 0x00000002, 0x00864084, 0xA0013904, 0x00000002, - 0x00864284, 0xA0013904, 0x00000002, 0x00864484, 0xA0013904, 0x00000002, - 0x00864684, 0xA0013904, 0x00000002, 0x00864684, 0xA0013A04, 0x00000002, - 0x00864884, 0xA0013904, 0x00000002, 0x00864884, 0xA0013A04, 0x00000002, - 0x00864A84, 0xA0013904, 0x00000002, 0x00864C84, - // Block 144, offset 0x2400 - 0xA0013904, 0x00000002, 0x029C6C84, 0xA0013904, 0x00000002, 0x029CB284, - 0xA0013904, 0x00000002, 0x02A30484, 0xA0013904, 0x00000002, 0x02A3C084, - 0xA0013904, 0x00000002, 0x02A40084, 0xA0013904, 0x00000002, 0x02A6B884, - 0xA0013904, 0x00000002, 0x02A6D284, 0xA0013904, 0x00000002, 0x02A70484, - 0xA0013904, 0x00000002, 0x02B81E84, 0xA0013904, 0x00000002, 0x02B81E84, - 0xA0013A04, 0x00000002, 0x02B84484, 0xA0013904, 0x00000002, 0x02B84684, - 0xA0013904, 0x00000002, 0x02BEA084, 0xA0013904, 0x00000002, 0x02BF8684, - 0xA0013904, 0x00000002, 0x02CBCA84, 0xA0013904, 0x00000002, 0x02CE1084, - 0xA0013904, 0x00000004, 0x02D0549C, 0x02BE1E9C, 0x029E349C, 0x02F27C9C, - 0x00000002, 0x02D6F484, 0xA0013904, 0x00000002, 0x02E45684, 0xA0013904, - 0x00000002, 0x02E4B684, 0xA0013904, 0x00000002, - // Block 145, offset 0x2440 - 0x02E71684, 0xA0013904, 0x00000002, 0x02EB1684, 0xA0013904, 0x00000002, - 0x02EDDC84, 0xA0013904, 0x00000002, 0x02F27484, 0xA0013904, 0x00000002, - 0x02F5F284, 0xA0013904, 0x00000002, 0x02FEA484, 0xA0013904, 0x00000002, - 0x02FEA684, 0xA0013904, 0x00000002, 0x02FEA684, 0xA0013A04, 0x00000002, - 0x02FF1484, 0xA0013904, 0x00000002, 0x02FF1484, 0xA0013A04, 0x00000002, - 0x0300FE84, 0xA0013904, 0x00000002, 0x03011284, 0xA0013904, 0x00000002, - 0x0303F884, 0xA0013904, 0x00000002, 0x0304F284, 0xA0013904, 0x00000002, - 0x0304F284, 0xA0013A04, 0x00000002, 0x0313A484, 0xA0013904, 0x00000002, - 0x031B6684, 0xA0013904, 0x00000002, 0x031F6C84, 0xA0013904, 0x00000002, - 0x031F6C84, 0xA0013A04, 0x00000002, 0x03212284, 0xA0013904, 0x00000002, - 0x032C3884, 0xA0013904, 0x00000002, 0x032DD084, - // Block 146, offset 0x2480 - 0xA0013904, 0x00000002, 0x0331C084, 0xA0013904, 0x00000002, 0x03332C84, - 0xA0013904, 0x00000002, 0x03355084, 0xA0013904, 0x00000002, 0x03367884, - 0xA0013904, 0x00000002, 0x033CEA84, 0xA0013904, 0x00000002, 0x033E9484, - 0xA0013904, 0x00000002, 0x033EA484, 0xA0013904, 0x00000002, 0x033F1A84, - 0xA0013904, 0x00000002, 0x033F3884, 0xA0013904, 0x00000002, 0x033F3884, - 0xA0013A04, 0x00000002, 0xA000AD18, 0xA000BA18, 0x00000002, 0xA000B218, - 0xA000BA18, 0x00000002, 0xA000B618, 0xA000BA18, 0x00000003, 0x0003F484, - 0x002D9A8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002F5684, 0x0003F69F, - 0x00000003, 0x0003F484, 0x002F568A, 0x0003F69F, 0x00000003, 0x0003F484, - 0x0030F684, 0x0003F69F, 0x00000003, 0x0003F484, 0x0030F68A, 0x0003F69F, - 0x00000002, 0x002C0A9D, 0x002F569C, 0x00000002, - // Block 147, offset 0x24c0 - 0x402C3C20, 0xAE603202, 0x00000002, 0x002C3C83, 0xAE603202, 0x00000002, - 0x402D6A20, 0xAE604702, 0x00000002, 0x002D6A83, 0xAE604702, 0x00000002, - 0x402D6A20, 0xAE605202, 0x00000002, 0x002D6A83, 0xAE605202, 0x00000002, - 0x002D9883, 0xAE603202, 0x00000002, 0x002D9883, 0xAE603502, 0x00000002, - 0x002D9883, 0xAE603702, 0x00000002, 0x002D9883, 0xAE603C02, 0x00000002, - 0x002D9883, 0xAE604102, 0x00000002, 0x002D9883, 0xAE604702, 0x00000003, - 0x002D9883, 0xAE604702, 0xAE603202, 0x00000002, 0x002D9883, 0xAE604E02, - 0x00000002, 0x002D9883, 0xACA05902, 0x00000002, 0x002D9883, 0xAE605B02, - 0x00000002, 0x002D9883, 0xAE606402, 0x00000002, 0x002D9883, 0xAE606502, - 0x00000002, 0x002D9883, 0xAE606702, 0x00000002, 0x002D9883, 0xADC07002, - 0x00000002, 0x002D9883, 0xADC07A02, 0x00000002, - // Block 148, offset 0x2500 - 0x002D9A8A, 0x002D9A9F, 0x00000003, 0x002D9A8A, 0x002D9A8A, 0x002D9A9F, - 0x00000002, 0x002D9A8A, 0x002DCC8A, 0x00000002, 0x002D9A9D, 0x00306C9D, - 0x00000002, 0x002D9A8A, 0x0030BE9F, 0x00000002, 0x002D9A84, 0x0030F69F, - 0x00000002, 0x002D9A8A, 0x0030F69F, 0x00000002, 0x002E229C, 0x0030F69C, - 0x00000002, 0x402EE420, 0xAE604E02, 0x00000002, 0x002EE483, 0xAE604E02, - 0x00000002, 0x402EE420, 0xAE605B02, 0x00000002, 0x002EE483, 0xAE605B02, - 0x00000002, 0x40306E20, 0xAE603202, 0x00000002, 0x00306E83, 0xAE603202, - 0x00000002, 0x40306E20, 0xAE603502, 0x00000002, 0x00306E83, 0xAE603502, - 0x00000002, 0x40306E20, 0xAE604102, 0x00000002, 0x00306E83, 0xAE604102, - 0x00000002, 0x40306E20, 0xAE605B02, 0x00000002, 0x00306E83, 0xAE605B02, - 0x00000002, 0x0030BE8A, 0x002D9A9F, 0x00000003, - // Block 149, offset 0x2540 - 0x0030BE8A, 0x002D9A8A, 0x002D9A9F, 0x00000002, 0x0030F684, 0x002D9A9F, - 0x00000002, 0x0030F68A, 0x002D9A9F, 0x00000003, 0x0030F684, 0x002D9A84, - 0x002D9A9F, 0x00000003, 0x0030F68A, 0x002D9A8A, 0x002D9A9F, 0x00000002, - 0x00393C99, 0x003A8E99, 0x00000002, 0x00393C9A, 0x003A8E9A, 0x00000002, - 0x00395699, 0x003A8E99, 0x00000002, 0x0039569A, 0x003A8E9A, 0x00000002, - 0x00395899, 0x003A8E99, 0x00000002, 0x0039589A, 0x003A8E9A, 0x00000002, - 0x00396499, 0x003A8E99, 0x00000002, 0x0039649A, 0x003A8E9A, 0x00000002, - 0x00397299, 0x003A8E99, 0x00000002, 0x0039729A, 0x003A8E9A, 0x00000002, - 0x00397499, 0x003A8E99, 0x00000002, 0x0039749A, 0x003A8E9A, 0x00000002, - 0x0039C699, 0x003A8E99, 0x00000002, 0x0039C69A, 0x003A8E9A, 0x00000002, - 0x0039C899, 0x003A8E99, 0x00000002, 0x0039C89A, - // Block 150, offset 0x2580 - 0x003A8E9A, 0x00000002, 0x0039DC99, 0x003A8E99, 0x00000002, 0x0039DC9A, - 0x003A8E9A, 0x00000002, 0x0039DE99, 0x003A8E99, 0x00000002, 0x0039DE9A, - 0x003A8E9A, 0x00000002, 0x0039E699, 0x003A8E99, 0x00000002, 0x0039E69A, - 0x003A8E9A, 0x00000002, 0x0039EE99, 0x003A8E99, 0x00000002, 0x0039EE9A, - 0x003A8E9A, 0x00000002, 0x0039F099, 0x003A8E99, 0x00000002, 0x0039F09A, - 0x003A8E9A, 0x00000002, 0x0039FC99, 0x003A8E99, 0x00000002, 0x0039FC9A, - 0x003A8E9A, 0x00000002, 0x003A1299, 0x003A8E99, 0x00000002, 0x003A129A, - 0x003A8E9A, 0x00000002, 0x003A1A99, 0x003A8E99, 0x00000002, 0x003A1A9A, - 0x003A8E9A, 0x00000002, 0x003A4099, 0x003A8E99, 0x00000002, 0x003A409A, - 0x003A8E9A, 0x00000002, 0x003A4E9A, 0x003A8E9A, 0x00000002, 0x003A5699, - 0x003A8E99, 0x00000002, 0x003A569A, 0x003A8E9A, - // Block 151, offset 0x25c0 - 0x00000002, 0x003A689A, 0x003A8E9A, 0x00000002, 0x003A8E99, 0xA000D119, - 0x00000002, 0x003A8E9A, 0xA000D11A, 0x00000002, 0x003A9099, 0x003A8E99, - 0x00000002, 0x003A909A, 0x003A8E9A, 0x00000002, 0x4062AC20, 0x4062AC20, - 0x00000002, 0x4062AC20, 0x4062BE20, 0x00000002, 0x4062B020, 0x4062C420, - 0x00000002, 0x4062B020, 0x4062D020, 0x00000002, 0x4062B220, 0x4062B220, - 0x00000002, 0x4062B620, 0x4062AC20, 0x00000002, 0x4062B620, 0x4062B820, - 0x00000002, 0x4062B620, 0x4062BA20, 0x00000002, 0x4062B620, 0x4062BE20, - 0x00000002, 0x4062B620, 0x4062CC20, 0x00000002, 0x4062B620, 0x4062CE20, - 0x00000002, 0x4062B620, 0x4062D020, 0x00000002, 0x4062BA20, 0x4062BA20, - 0x00000002, 0x4062BA20, 0x4062BE20, 0x00000002, 0x4062BE20, 0x4062BE20, - 0x00000002, 0x4062C420, 0x4062C420, 0x00000002, - // Block 152, offset 0x2600 - 0x4063A820, 0x4063D020, 0x00000002, 0x4063AC20, 0x4063D020, 0x00000002, - 0x4063B020, 0x4063D020, 0x00000002, 0x4063B420, 0x4063D020, 0x00000002, - 0x4063B820, 0x4063A820, 0x00000003, 0x4063B820, 0x4063A820, 0x4063D020, - 0x00000002, 0x4063B820, 0x4063D020, 0x00000002, 0x4063C220, 0x4063CE20, - 0x00000003, 0x4063C220, 0x4063CE20, 0x4063D020, 0x00000002, 0x4063C220, - 0x4063D020, 0x00000002, 0x402BE020, 0xAE603702, 0x00000002, 0x002BE083, - 0xAE603702, 0x00000002, 0x402BE020, 0xAE603C02, 0x00000002, 0x002BE083, - 0xAE603C02, 0x00000002, 0x402BE020, 0xAE604302, 0x00000002, 0x002BE083, - 0xAE604302, 0x00000002, 0x402C9A20, 0xAE603C02, 0x00000002, 0x002C9A83, - 0xAE603C02, 0x00000002, 0x402C9A20, 0xAE605B02, 0x00000002, 0x002C9A83, - 0xAE605B02, 0x00000002, 0x402D9C20, 0xAE604702, - // Block 153, offset 0x2640 - 0x00000002, 0x002D9C83, 0xAE604702, 0x00000002, 0x402EE420, 0xAE603C02, - 0x00000002, 0x002EE483, 0xAE603C02, 0x00000002, 0x402EE420, 0xAD806802, - 0x00000002, 0x002EE483, 0xAD806802, 0x00000002, 0x402FE820, 0xAE605202, - 0x00000002, 0x002FE883, 0xAE605202, 0x00000002, 0x40306E20, 0xAE604702, - 0x00000002, 0x00306E83, 0xAE604702, 0x00000002, 0x40306E20, 0xAE604E02, - 0x00000002, 0x00306E83, 0xAE604E02, 0x00000002, 0x40306E20, 0xAD806802, - 0x00000002, 0x00306E83, 0xAD806802, 0x00000002, 0x002C6294, 0xA0013914, - 0x00000002, 0x00302C83, 0x402D6820, 0x00000002, 0x00302C89, 0x002D6888, - 0x00000002, 0x40310021, 0xAE603202, 0x00000002, 0x003100A3, 0xAE603202, - 0x00000002, 0x40310021, 0xAE603502, 0x00000002, 0x003100A3, 0xAE603502, - 0x00000002, 0x40310021, 0xAE604102, 0x00000002, - // Block 154, offset 0x2680 - 0x003100A3, 0xAE604102, 0x00000002, 0x40310021, 0xAE605B02, 0x00000002, - 0x003100A3, 0xAE605B02, 0x00000002, 0x40320C20, 0xAE603202, 0x00000002, - 0x00320C83, 0xAE603202, 0x00000002, 0x40320C20, 0xAE605B02, 0x00000002, - 0x00320C83, 0xAE605B02, 0x00000002, 0x40320C21, 0xAE605B02, 0x00000002, - 0x00320CA3, 0xAE605B02, 0x00000002, 0x40320E20, 0xAE603202, 0x00000002, - 0x00320E83, 0xAE603202, 0x00000002, 0x40320E21, 0xAE604E02, 0x00000002, - 0x00320EA3, 0xAE604E02, 0x00000002, 0x40320E21, 0xAE605B02, 0x00000002, - 0x00320EA3, 0xAE605B02, 0x00000002, 0x40321020, 0xAE603202, 0x00000002, - 0x00321083, 0xAE603202, 0x00000002, 0x402BDE21, 0x002C9888, 0x00000002, - 0x002BDEA3, 0x002C9888, 0x00000003, 0x402BDE21, 0x002C9888, 0xAE605B02, - 0x00000003, 0x002BDEA3, 0x002C9888, 0xAE605B02, - // Block 155, offset 0x26c0 - 0x00000002, 0x402EE221, 0x002C9888, 0x00000002, 0x002EE2A3, 0x002C9888, - 0x00000003, 0x402EE221, 0x002C9888, 0xAE604E02, 0x00000003, 0x002EE2A3, - 0x002C9888, 0xAE604E02, 0x00000003, 0x402EE221, 0x002C9888, 0xAE605B02, - 0x00000003, 0x002EE2A3, 0x002C9888, 0xAE605B02, 0x00000002, 0x40306C21, - 0x002C9888, 0x00000002, 0x00306CA3, 0x002C9888, 0x00000003, 0x40306C21, - 0x002C9888, 0xAE603202, 0x00000003, 0x00306CA3, 0x002C9888, 0xAE603202, - 0x00000003, 0x40306C21, 0x002C9888, 0xAE603502, 0x00000003, 0x00306CA3, - 0x002C9888, 0xAE603502, 0x00000003, 0x40306C21, 0x002C9888, 0xAE604102, - 0x00000003, 0x00306CA3, 0x002C9888, 0xAE604102, 0x00000003, 0x40306C21, - 0x002C9888, 0xAE605B02, 0x00000003, 0x00306CA3, 0x002C9888, 0xAE605B02, - 0x00000003, 0x0003F484, 0x0030E284, 0x0003F69F, - // Block 156, offset 0x2700 - 0x00000003, 0x0003F484, 0x0030E28A, 0x0003F69F, 0x00000002, 0x002DFE9C, - 0x0030E29D, 0x00000002, 0x002E829C, 0x0030E29D, 0x00000002, 0x002E829D, - 0x0030E29D, 0x00000002, 0x002E9E9C, 0x0030E29D, 0x00000002, 0x002F2C9C, - 0x0030E29D, 0x00000002, 0x40302C21, 0x402D6820, 0x00000002, 0x00302CA3, - 0x402D6820, 0x00000002, 0x4030BE21, 0xAE603202, 0x00000002, 0x0030BEA3, - 0xAE603202, 0x00000002, 0x4030BE21, 0xAE603502, 0x00000002, 0x0030BEA3, - 0xAE603502, 0x00000002, 0x4030BE21, 0xAE603C02, 0x00000002, 0x0030BEA3, - 0xAE603C02, 0x00000002, 0x4030BE21, 0xAE604302, 0x00000002, 0x4030BE21, - 0xAE604702, 0x00000002, 0x0030BEA3, 0xAE604702, 0x00000002, 0x4030BE21, - 0xAE605202, 0x00000002, 0x0030BEA3, 0xAE605202, 0x00000002, 0x4030BE21, - 0xADC07002, 0x00000002, 0x0030BEA3, 0xADC07002, - // Block 157, offset 0x2740 - 0x00000002, 0x0030E29D, 0x002C0A9C, 0x00000002, 0x0030E29D, 0x002C3A9D, - 0x00000002, 0x0030E28C, 0x00312A8C, 0x00000002, 0x40320E20, 0xAE605B02, - 0x00000002, 0x00320E83, 0xAE605B02, 0x00000002, 0x40320E21, 0xAE603202, - 0x00000002, 0x00320EA3, 0xAE603202, 0x00000002, 0x40321020, 0xAE605B02, - 0x00000002, 0x00321083, 0xAE605B02, 0x00000002, 0x40321021, 0xAE603202, - 0x00000002, 0x003210A3, 0xAE603202, 0x00000002, 0x40321023, 0xAE603202, - 0x00000002, 0x003210E3, 0xAE603202, 0x00000002, 0x40321023, 0xAE603C02, - 0x00000002, 0x003210E3, 0xAE603C02, 0x00000002, 0x40321023, 0xAE604702, - 0x00000002, 0x003210E3, 0xAE604702, 0x00000002, 0x40321023, 0xAE605B02, - 0x00000002, 0x003210E3, 0xAE605B02, 0x00000002, 0x40321023, 0xAD806802, - 0x00000002, 0x003210E3, 0xAD806802, 0x00000002, - // Block 158, offset 0x2780 - 0x0032769C, 0x0030E29D, 0x00000002, 0x402C3E20, 0xACA05602, 0x00000002, - 0x002C3E83, 0xACA05602, 0x00000002, 0x402C0820, 0xAE603702, 0x00000002, - 0x002C0883, 0xAE603702, 0x00000002, 0x402C0820, 0xAE603C02, 0x00000002, - 0x002C0883, 0xAE603C02, 0x00000002, 0x402D0620, 0xAE603C02, 0x00000002, - 0x002D0683, 0xAE603C02, 0x00000002, 0x402D0620, 0xAE605B02, 0x00000002, - 0x002D0683, 0xAE605B02, 0x00000002, 0x402DCA20, 0xAE604702, 0x00000002, - 0x002DCA83, 0xAE604702, 0x00000002, 0x402F2A20, 0xAE603C02, 0x00000002, - 0x002F2A83, 0xAE603C02, 0x00000002, 0x402F2A20, 0xAE604E02, 0x00000002, - 0x002F2A83, 0xAE604E02, 0x00000002, 0x402F2A20, 0xAE605B02, 0x00000002, - 0x002F2A83, 0xAE605B02, 0x00000002, 0x402F2A20, 0xAD806802, 0x00000002, - 0x002F2A83, 0xAD806802, 0x00000002, 0x4030BC20, - // Block 159, offset 0x27c0 - 0xAE604702, 0x00000002, 0x0030BC83, 0xAE604702, 0x00000002, 0x4030BC20, - 0xAE604E02, 0x00000002, 0x0030BC83, 0xAE604E02, 0x00000002, 0x4030BC20, - 0xAD806802, 0x00000002, 0x0030BC83, 0xAD806802, 0x00000002, 0x40320E20, - 0xAE604E02, 0x00000002, 0x00320E83, 0xAE604E02, 0x00000002, 0x4062AC20, - 0x4062B020, 0x00000002, 0x4062AC20, 0x4062B220, 0x00000002, 0x4062AC20, - 0x4062B620, 0x00000002, 0x4062AC20, 0x4062BA20, 0x00000003, 0x4062AC20, - 0x4062BE20, 0x4062AC20, 0x00000002, 0x4062AC20, 0x4062C820, 0x00000002, - 0x4062AC20, 0x4062CA20, 0x00000002, 0x4062AC20, 0x4062D020, 0x00000002, - 0x4062B020, 0x4062AC20, 0x00000002, 0x4062B020, 0x4062B020, 0x00000002, - 0x4062B020, 0x4062B220, 0x00000002, 0x4062B020, 0x4062BA20, 0x00000002, - 0x4062B020, 0x4062BE20, 0x00000002, 0x4062B020, - // Block 160, offset 0x2800 - 0x4062CC20, 0x00000002, 0x4062B220, 0x4062AC20, 0x00000002, 0x4062B220, - 0x4062B620, 0x00000003, 0x4062B620, 0x4062AC20, 0x4062BE20, 0x00000002, - 0x4062B620, 0x4062B020, 0x00000002, 0x4062B620, 0x4062B220, 0x00000003, - 0x4062B620, 0x4062B220, 0x4062D020, 0x00000002, 0x4062B620, 0x4062B620, - 0x00000003, 0x4062B620, 0x4062B820, 0x4062AC20, 0x00000003, 0x4062B620, - 0x4062B820, 0x4062BE20, 0x00000003, 0x4062B620, 0x4062BA20, 0x4062BE20, - 0x00000003, 0x4062B620, 0x4062BA20, 0x4062C220, 0x00000003, 0x4062B620, - 0x4062BA20, 0x4062D020, 0x00000003, 0x4062B620, 0x4062BE20, 0x4062BE20, - 0x00000002, 0x4062B620, 0x4062C220, 0x00000002, 0x4062B620, 0x4062CA20, - 0x00000002, 0x4062B820, 0x4062AC20, 0x00000002, 0x4062B820, 0x4062B620, - 0x00000002, 0x4062B820, 0x4062BA20, 0x00000002, - // Block 161, offset 0x2840 - 0x4062B820, 0x4062BE20, 0x00000003, 0x4062B820, 0x4062BE20, 0x4062BE20, - 0x00000002, 0x4062B820, 0x4062C220, 0x00000002, 0x4062B820, 0x4062C820, - 0x00000002, 0x4062B820, 0x4062D020, 0x00000002, 0x4062BA20, 0x4062AC20, - 0x00000002, 0x4062BA20, 0x4062B020, 0x00000002, 0x4062BA20, 0x4062B220, - 0x00000002, 0x4062BA20, 0x4062B620, 0x00000003, 0x4062BA20, 0x4062BA20, - 0x4062C220, 0x00000003, 0x4062BA20, 0x4062BE20, 0x4062AC20, 0x00000003, - 0x4062BA20, 0x4062BE20, 0x4062B220, 0x00000003, 0x4062BA20, 0x4062BE20, - 0x4062BA20, 0x00000003, 0x4062BA20, 0x4062BE20, 0x4062BE20, 0x00000003, - 0x4062BA20, 0x4062BE20, 0x4062C420, 0x00000002, 0x4062BA20, 0x4062C220, - 0x00000002, 0x4062BA20, 0x4062C420, 0x00000002, 0x4062BA20, 0x4062C820, - 0x00000002, 0x4062BA20, 0x4062CC20, 0x00000002, - // Block 162, offset 0x2880 - 0x4062BA20, 0x4062CE20, 0x00000002, 0x4062BA20, 0x4062D020, 0x00000002, - 0x4062BE20, 0x4062AC20, 0x00000002, 0x4062BE20, 0x4062B020, 0x00000002, - 0x4062BE20, 0x4062B220, 0x00000002, 0x4062BE20, 0x4062B620, 0x00000002, - 0x4062BE20, 0x4062B820, 0x00000002, 0x4062BE20, 0x4062BA20, 0x00000003, - 0x4062BE20, 0x4062BA20, 0x4062AC20, 0x00000003, 0x4062BE20, 0x4062BE20, - 0x4062BE20, 0x00000002, 0x4062BE20, 0x4062C220, 0x00000002, 0x4062BE20, - 0x4062C420, 0x00000002, 0x4062BE20, 0x4062C820, 0x00000002, 0x4062BE20, - 0x4062CA20, 0x00000002, 0x4062BE20, 0x4062CC20, 0x00000002, 0x4062BE20, - 0x4062CE20, 0x00000002, 0x4062BE20, 0x4062D020, 0x00000002, 0x4062C220, - 0x4062AC20, 0x00000003, 0x4062C220, 0x4062AC20, 0x4062AC20, 0x00000002, - 0x4062C220, 0x4062B220, 0x00000002, 0x4062C220, - // Block 163, offset 0x28c0 - 0x4062B820, 0x00000002, 0x4062C220, 0x4062BA20, 0x00000002, 0x4062C220, - 0x4062BE20, 0x00000002, 0x4062C220, 0x4062C220, 0x00000002, 0x4062C220, - 0x4062C420, 0x00000002, 0x4062C220, 0x4062C820, 0x00000002, 0x4062C220, - 0x4062CA20, 0x00000002, 0x4062C220, 0x4062CC20, 0x00000002, 0x4062C220, - 0x4062CE20, 0x00000002, 0x4062C420, 0x4062C220, 0x00000002, 0x4062C820, - 0x4062CA20, 0x00000002, 0x4062C820, 0x4062D020, 0x00000002, 0x4062CE20, - 0x4062BA20, 0x00000002, 0x4062CE20, 0x4062C220, 0x00000002, 0x4062D020, - 0x4062B020, 0x00000002, 0x4062D020, 0x4062B620, 0x00000002, 0x4062D020, - 0x4062B820, 0x00000002, 0x4062D020, 0x4062BA20, 0x00000002, 0x4062D020, - 0x4062D020, 0x00000002, 0x4063A820, 0x4063B820, 0x00000002, 0x4063A820, - 0x4063C220, 0x00000002, 0x4063A820, 0x4063CC20, - // Block 164, offset 0x2900 - 0x00000002, 0x4063AC20, 0x4063B820, 0x00000002, 0x4063AC20, 0x4063C020, - 0x00000002, 0x4063AC20, 0x4063C220, 0x00000002, 0x4063B020, 0x4063B820, - 0x00000002, 0x4063B020, 0x4063C220, 0x00000002, 0x4063B020, 0x4063CC20, - 0x00000002, 0x4063B420, 0x4063AC20, 0x00000002, 0x4063B420, 0x4063B820, - 0x00000002, 0x4063B420, 0x4063C220, 0x00000002, 0x4063B820, 0x4063AC20, - 0x00000003, 0x4063B820, 0x4063AC20, 0x4063D020, 0x00000002, 0x4063B820, - 0x4063B020, 0x00000003, 0x4063B820, 0x4063B020, 0x4063D020, 0x00000003, - 0x4063B820, 0x4063B420, 0x4063D020, 0x00000002, 0x4063B820, 0x4063B820, - 0x00000002, 0x4063B820, 0x4063C220, 0x00000002, 0x4063C020, 0x4063AC20, - 0x00000003, 0x4063C020, 0x4063AC20, 0x4063D020, 0x00000002, 0x4063C020, - 0x4063B420, 0x00000002, 0x4063C020, 0x4063B820, - // Block 165, offset 0x2940 - 0x00000002, 0x4063C020, 0x4063D020, 0x00000002, 0x4063C220, 0x4063A820, - 0x00000003, 0x4063C220, 0x4063A820, 0x4063D020, 0x00000003, 0x4063C220, - 0x4063B020, 0x4063CC20, 0x00000003, 0x4063C220, 0x4063B420, 0x4063D020, - 0x00000002, 0x4063C220, 0x4063C220, 0x00000002, 0x4063CA20, 0x4063A820, - 0x00000002, 0x4063CA20, 0x4063B020, 0x00000003, 0x4063CA20, 0x4063B020, - 0x4063D020, 0x00000002, 0x4063CA20, 0x4063B420, 0x00000003, 0x4063CA20, - 0x4063B420, 0x4063D020, 0x00000002, 0x4063CA20, 0x4063C220, 0x00000002, - 0x4063CA20, 0x4063D020, 0x00000002, 0x4063CC20, 0x4063C220, 0x00000002, - 0x4063CC20, 0x4063CC20, 0x00000002, 0x4063CE20, 0x4063C220, 0x00000002, - 0x4063D020, 0x4063A820, 0x00000002, 0x4063D020, 0x4063AC20, 0x00000002, - 0x4063D020, 0x4063B820, 0x00000002, 0x4063D020, - // Block 166, offset 0x2980 - 0x4063C220, 0x00000002, 0x4063D020, 0x4063CC20, 0x00000002, 0x0062AC86, - 0x0063A886, 0x00000002, 0x0062B086, 0x0063A886, 0x00000002, 0x0062B286, - 0x0063A886, 0x00000002, 0x0062B686, 0x0063A886, 0x00000002, 0x0062B886, - 0x0063A886, 0x00000002, 0x0062BA86, 0x0063A886, 0x00000002, 0x0062BE86, - 0x0063A886, 0x00000002, 0x0062C286, 0x0063A886, 0x00000002, 0x0062C286, - 0x0063C286, 0x00000002, 0x0062C486, 0x0063A886, 0x00000002, 0x0062C886, - 0x0063A886, 0x00000002, 0x0062CA86, 0x0063A886, 0x00000002, 0x0062CC86, - 0x0063A886, 0x00000002, 0x0062CE86, 0x0063A886, 0x00000002, 0x0062D086, - 0x0063A886, 0x00000002, 0x40302A20, 0xAE605202, 0x00000002, 0x00302A83, - 0xAE605202, 0x00000002, 0x40320820, 0xAE603202, 0x00000002, 0x00320883, - 0xAE603202, 0x00000002, 0x40320A20, 0xAE603202, - // Block 167, offset 0x29c0 - 0x00000002, 0x00320A83, 0xAE603202, 0x00000002, 0x40320A20, 0xAE605B02, - 0x00000002, 0x00320A83, 0xAE605B02, 0x00000002, 0x40320E21, 0xAE603702, - 0x00000002, 0x00320EA3, 0xAE603702, 0x00000002, 0x40320E21, 0xAE603C02, - 0x00000002, 0x00320EA3, 0xAE603C02, 0x00000002, 0x40321022, 0xAE603202, - 0x00000002, 0x003210C3, 0xAE603202, 0x00000002, 0x40321022, 0xAE604702, - 0x00000002, 0x003210C3, 0xAE604702, 0x00000002, 0x40321022, 0xAE605B02, - 0x00000002, 0x003210C3, 0xAE605B02, 0x00000002, 0x40321022, 0xAD806802, - 0x00000002, 0x003210C3, 0xAD806802, 0x00000002, 0x40321023, 0xAE603502, - 0x00000002, 0x003210E3, 0xAE603502, 0x00000002, 0x40321023, 0xAE604E02, - 0x00000002, 0x003210E3, 0xAE604E02, 0x00000002, 0x40321023, 0xAE606402, - 0x00000002, 0x003210E3, 0xAE606402, 0x00000002, - // Block 168, offset 0x2a00 - 0x40321023, 0xADC07002, 0x00000002, 0x003210E3, 0xADC07002, 0x00000002, - 0x40321024, 0xAE605B02, 0x00000002, 0x00321103, 0xAE605B02, 0x00000002, - 0x402BE220, 0xAE605B02, 0x00000002, 0x002BE283, 0xAE605B02, 0x00000002, - 0x402EE620, 0xAE603202, 0x00000002, 0x002EE683, 0xAE603202, 0x00000002, - 0x402EE620, 0xAE603502, 0x00000002, 0x002EE683, 0xAE603502, 0x00000002, - 0x402EE620, 0xAE604E02, 0x00000002, 0x002EE683, 0xAE604E02, 0x00000002, - 0x402EE620, 0xAE606402, 0x00000002, 0x002EE683, 0xAE606402, 0x00000002, - 0x402EE620, 0xADC07002, 0x00000002, 0x002EE683, 0xADC07002, 0x00000002, - 0x0030BE83, 0xAE604E02, 0x00000002, 0x0030BE83, 0xADC07002, 0x00000002, - 0x40321020, 0xAE604E02, 0x00000002, 0x00321083, 0xAE604E02, 0x00000002, - 0x40321024, 0xAE603202, 0x00000002, 0x00321103, - // Block 169, offset 0x2a40 - 0xAE603202, 0x00000002, 0x40321024, 0xAE603502, 0x00000002, 0x00321103, - 0xAE603502, 0x00000002, 0x40321024, 0xAE604E02, 0x00000002, 0x00321103, - 0xAE604E02, 0x00000002, 0x40321024, 0xAE606402, 0x00000002, 0x00321103, - 0xAE606402, 0x00000002, 0x40321024, 0xADC07002, 0x00000002, 0x00321103, - 0xADC07002, -} - -// mainContractElem: 1125 entries, 4500 bytes -var mainContractElem = [1125]uint32{ - // Block 0, offset 0x0 - 0x402E2220, 0xE0000CFB, 0xE0000CFB, 0x002E2288, 0xE0000D01, 0xE0000D01, - 0x40332220, 0x40332A20, 0x40333220, 0x00332288, 0x00332A88, 0x00333288, - 0x40333A20, 0x40334220, 0x00333A88, 0x00334288, 0x40336220, 0x4033A220, - 0x4033A220, 0x00336288, 0x0033A288, 0x0033A288, 0x4033B220, 0x4033BA20, - 0x0033B288, 0x0033BA88, 0x4033CA20, 0x4033D420, 0x0033CA88, 0x0033D488, - 0x4033E420, 0x4033F220, 0x0033E488, 0x0033F288, 0x40341420, 0x40343E20, - 0x40342420, 0x00341488, 0x00343E88, 0x00342488, 0x40342C20, 0x40343620, - 0x00342C88, 0x00343688, 0x4034EE20, 0x4034F620, 0x0034EE88, 0x0034F688, - 0x4034FE20, 0x40350620, 0x0034FE88, 0x00350688, 0x40345020, 0x40356A20, - 0x40356A20, 0x00345088, 0x00356A88, 0x00356A88, 0x40357220, 0x40357A20, - 0x40358220, 0x40358A20, 0x00357288, 0x00357A88, - // Block 1, offset 0x40 - 0x00358288, 0x00358A88, 0x40361820, 0x40362220, 0x00361888, 0x00362288, - 0x40367E20, 0x40368620, 0x00367E88, 0x00368688, 0x4036A820, 0x4036B020, - 0x0036A888, 0x0036B088, 0x40371420, 0x40371C20, 0x00371488, 0x00371C88, - 0x40393820, 0x40391E20, 0x40392020, 0x40392820, 0x403A7420, 0x40392620, - 0x403A9020, 0x40393020, 0x4040F020, 0x4040F420, 0x4040F620, 0x40426E20, - 0x40427220, 0x40427020, 0x40427420, 0x40429020, 0x40429420, 0x4042D020, - 0x4042D620, 0x4042DA20, 0x4042D220, 0x4042D820, 0x40435E20, 0x40436220, - 0x4043E020, 0x4043E220, 0x4043F020, 0x4043F820, 0x4043F620, 0x4043F220, - 0x4043F420, 0x4043F620, 0x4043F820, 0x40448220, 0x40448820, 0x40448C20, - 0x40448420, 0x40448A20, 0x40451E20, 0x40452620, 0x40452020, 0x40452420, - 0x40452820, 0x40452420, 0x40452620, 0x40498420, - // Block 2, offset 0x80 - 0xE0001881, 0xE0001890, 0xE000189F, 0xE00018AE, 0xE00018BD, 0xE00018CC, - 0xE00018DB, 0xE00018EA, 0xE00018F9, 0xE0001908, 0xE0001917, 0xE0001926, - 0xE0001935, 0xE0001944, 0xE0001953, 0xE0001962, 0xE0001971, 0xE0001980, - 0xE000198F, 0xE000199E, 0xE00019AD, 0xE00019BC, 0xE00019CB, 0xE00019DA, - 0xE00019E9, 0xE00019F8, 0xE0001A07, 0xE0001A16, 0xE0001A25, 0xE0001A34, - 0xE0001A43, 0xE0001A52, 0xE0001A61, 0xE0001A70, 0xE0001A7F, 0xE0001A8E, - 0xE0001A9D, 0xE0001AAC, 0xE0001ABB, 0xE0001ACA, 0xE0001AD9, 0xE0001AE8, - 0xE0001AF7, 0xE0001B06, 0xE0001B15, 0xE0001B24, 0x40498620, 0xE0001884, - 0xE0001893, 0xE00018A2, 0xE00018B1, 0xE00018C0, 0xE00018CF, 0xE00018DE, - 0xE00018ED, 0xE00018FC, 0xE000190B, 0xE000191A, 0xE0001929, 0xE0001938, - 0xE0001947, 0xE0001956, 0xE0001965, 0xE0001974, - // Block 3, offset 0xc0 - 0xE0001983, 0xE0001992, 0xE00019A1, 0xE00019B0, 0xE00019BF, 0xE00019CE, - 0xE00019DD, 0xE00019EC, 0xE00019FB, 0xE0001A0A, 0xE0001A19, 0xE0001A28, - 0xE0001A37, 0xE0001A46, 0xE0001A55, 0xE0001A64, 0xE0001A73, 0xE0001A82, - 0xE0001A91, 0xE0001AA0, 0xE0001AAF, 0xE0001ABE, 0xE0001ACD, 0xE0001ADC, - 0xE0001AEB, 0xE0001AFA, 0xE0001B09, 0xE0001B18, 0xE0001B27, 0x40498820, - 0xE0001887, 0xE0001896, 0xE00018A5, 0xE00018B4, 0xE00018C3, 0xE00018D2, - 0xE00018E1, 0xE00018F0, 0xE00018FF, 0xE000190E, 0xE000191D, 0xE000192C, - 0xE000193B, 0xE000194A, 0xE0001959, 0xE0001968, 0xE0001977, 0xE0001986, - 0xE0001995, 0xE00019A4, 0xE00019B3, 0xE00019C2, 0xE00019D1, 0xE00019E0, - 0xE00019EF, 0xE00019FE, 0xE0001A0D, 0xE0001A1C, 0xE0001A2B, 0xE0001A3A, - 0xE0001A49, 0xE0001A58, 0xE0001A67, 0xE0001A76, - // Block 4, offset 0x100 - 0xE0001A85, 0xE0001A94, 0xE0001AA3, 0xE0001AB2, 0xE0001AC1, 0xE0001AD0, - 0xE0001ADF, 0xE0001AEE, 0xE0001AFD, 0xE0001B0C, 0xE0001B1B, 0xE0001B2A, - 0x40498A20, 0xE000188A, 0xE0001899, 0xE00018A8, 0xE00018B7, 0xE00018C6, - 0xE00018D5, 0xE00018E4, 0xE00018F3, 0xE0001902, 0xE0001911, 0xE0001920, - 0xE000192F, 0xE000193E, 0xE000194D, 0xE000195C, 0xE000196B, 0xE000197A, - 0xE0001989, 0xE0001998, 0xE00019A7, 0xE00019B6, 0xE00019C5, 0xE00019D4, - 0xE00019E3, 0xE00019F2, 0xE0001A01, 0xE0001A10, 0xE0001A1F, 0xE0001A2E, - 0xE0001A3D, 0xE0001A4C, 0xE0001A5B, 0xE0001A6A, 0xE0001A79, 0xE0001A88, - 0xE0001A97, 0xE0001AA6, 0xE0001AB5, 0xE0001AC4, 0xE0001AD3, 0xE0001AE2, - 0xE0001AF1, 0xE0001B00, 0xE0001B0F, 0xE0001B1E, 0xE0001B2D, 0x40498C20, - 0xE000188D, 0xE000189C, 0xE00018AB, 0xE00018BA, - // Block 5, offset 0x140 - 0xE00018C9, 0xE00018D8, 0xE00018E7, 0xE00018F6, 0xE0001905, 0xE0001914, - 0xE0001923, 0xE0001932, 0xE0001941, 0xE0001950, 0xE000195F, 0xE000196E, - 0xE000197D, 0xE000198C, 0xE000199B, 0xE00019AA, 0xE00019B9, 0xE00019C8, - 0xE00019D7, 0xE00019E6, 0xE00019F5, 0xE0001A04, 0xE0001A13, 0xE0001A22, - 0xE0001A31, 0xE0001A40, 0xE0001A4F, 0xE0001A5E, 0xE0001A6D, 0xE0001A7C, - 0xE0001A8B, 0xE0001A9A, 0xE0001AA9, 0xE0001AB8, 0xE0001AC7, 0xE0001AD6, - 0xE0001AE5, 0xE0001AF4, 0xE0001B03, 0xE0001B12, 0xE0001B21, 0xE0001B30, - 0xA0010502, 0x40497420, 0x4049E620, 0xE0001B42, 0xE0001B51, 0xE0001B60, - 0xE0001B6F, 0xE0001B7E, 0xE0001B9C, 0xE0001BBA, 0xE0001BC9, 0xE0001BD8, - 0xE0001BE7, 0xE0001BF6, 0xE0001C05, 0xE0001C14, 0xE0001C23, 0xE0001C32, - 0xE0001C41, 0xE0001C50, 0xE0001C5F, 0xE0001C6E, - // Block 6, offset 0x180 - 0xE0001C7D, 0xE0001C8C, 0xE0001C9B, 0xE0001CAA, 0xE0001B8D, 0xE0001CE1, - 0xE0001CF0, 0xE0001CFF, 0xE0001CB9, 0xE0001CCD, 0xE0001B33, 0xE0001BAB, - 0x4049E820, 0xE0001B45, 0xE0001B54, 0xE0001B63, 0xE0001B72, 0xE0001B81, - 0xE0001B9F, 0xE0001BBD, 0xE0001BCC, 0xE0001BDB, 0xE0001BEA, 0xE0001BF9, - 0xE0001C08, 0xE0001C17, 0xE0001C26, 0xE0001C35, 0xE0001C44, 0xE0001C53, - 0xE0001C62, 0xE0001C71, 0xE0001C80, 0xE0001C8F, 0xE0001C9E, 0xE0001CAD, - 0xE0001B90, 0xE0001CE4, 0xE0001CF3, 0xE0001D02, 0xE0001CBD, 0xE0001CD1, - 0xE0001B36, 0xE0001BAE, 0x4049EA20, 0xE0001B48, 0xE0001B57, 0xE0001B66, - 0xE0001B75, 0xE0001B84, 0xE0001BA2, 0xE0001BC0, 0xE0001BCF, 0xE0001BDE, - 0xE0001BED, 0xE0001BFC, 0xE0001C0B, 0xE0001C1A, 0xE0001C29, 0xE0001C38, - 0xE0001C47, 0xE0001C56, 0xE0001C65, 0xE0001C74, - // Block 7, offset 0x1c0 - 0xE0001C83, 0xE0001C92, 0xE0001CA1, 0xE0001CB0, 0xE0001B93, 0xE0001CE7, - 0xE0001CF6, 0xE0001D05, 0xE0001CC1, 0xE0001CD5, 0xE0001B39, 0xE0001BB1, - 0x4049EC20, 0xE0001B4B, 0xE0001B5A, 0xE0001B69, 0xE0001B78, 0xE0001B87, - 0xE0001BA5, 0xE0001BC3, 0xE0001BD2, 0xE0001BE1, 0xE0001BF0, 0xE0001BFF, - 0xE0001C0E, 0xE0001C1D, 0xE0001C2C, 0xE0001C3B, 0xE0001C4A, 0xE0001C59, - 0xE0001C68, 0xE0001C77, 0xE0001C86, 0xE0001C95, 0xE0001CA4, 0xE0001CB3, - 0xE0001B96, 0xE0001CEA, 0xE0001CF9, 0xE0001D08, 0xE0001CC5, 0xE0001CD9, - 0xE0001B3C, 0xE0001BB4, 0x4049EE20, 0xE0001B4E, 0xE0001B5D, 0xE0001B6C, - 0xE0001B7B, 0xE0001B8A, 0xE0001BA8, 0xE0001BC6, 0xE0001BD5, 0xE0001BE4, - 0xE0001BF3, 0xE0001C02, 0xE0001C11, 0xE0001C20, 0xE0001C2F, 0xE0001C3E, - 0xE0001C4D, 0xE0001C5C, 0xE0001C6B, 0xE0001C7A, - // Block 8, offset 0x200 - 0xE0001C89, 0xE0001C98, 0xE0001CA7, 0xE0001CB6, 0xE0001B99, 0xE0001CED, - 0xE0001CFC, 0xE0001D0B, 0xE0001CC9, 0xE0001CDD, 0xE0001B3F, 0xE0001BB7, - 0xA0010B02, 0x4049D220, 0x404A5A20, 0xE0001D0E, 0xE0001D1D, 0xE0001D2C, - 0xE0001D3B, 0xE0001D4A, 0xE0001D59, 0xE0001D68, 0xE0001D77, 0xE0001D86, - 0xE0001D95, 0xE0001DA4, 0xE0001DB3, 0xE0001DC2, 0xE0001DD1, 0xE0001DE0, - 0xE0001DEF, 0xE0001DFE, 0xE0001E0D, 0xE0001E1C, 0xE0001E2B, 0xE0001E3A, - 0xE0001E49, 0xE0001E58, 0xE0001E67, 0xE0001E76, 0xE0001E85, 0xE0001E94, - 0xE0001EA3, 0xE0001EB2, 0xE0001EC1, 0xE0001ED0, 0xE0001EDF, 0xE0001EEE, - 0xE0001EFD, 0xE0001F0C, 0xE0001F1B, 0xE0001F2A, 0xE0001F39, 0xE0001F48, - 0xE0001F57, 0xE0001F66, 0xE0001F75, 0xE0001F84, 0xE0001F93, 0xE0001FA2, - 0xE0001FB1, 0xE0001FC0, 0xE0001FCF, 0x404A5C20, - // Block 9, offset 0x240 - 0xE0001D11, 0xE0001D20, 0xE0001D2F, 0xE0001D3E, 0xE0001D4D, 0xE0001D5C, - 0xE0001D6B, 0xE0001D7A, 0xE0001D89, 0xE0001D98, 0xE0001DA7, 0xE0001DB6, - 0xE0001DC5, 0xE0001DD4, 0xE0001DE3, 0xE0001DF2, 0xE0001E01, 0xE0001E10, - 0xE0001E1F, 0xE0001E2E, 0xE0001E3D, 0xE0001E4C, 0xE0001E5B, 0xE0001E6A, - 0xE0001E79, 0xE0001E88, 0xE0001E97, 0xE0001EA6, 0xE0001EB5, 0xE0001EC4, - 0xE0001ED3, 0xE0001EE2, 0xE0001EF1, 0xE0001F00, 0xE0001F0F, 0xE0001F1E, - 0xE0001F2D, 0xE0001F3C, 0xE0001F4B, 0xE0001F5A, 0xE0001F69, 0xE0001F78, - 0xE0001F87, 0xE0001F96, 0xE0001FA5, 0xE0001FB4, 0xE0001FC3, 0xE0001FD2, - 0x404A6220, 0xE0001D14, 0xE0001D23, 0xE0001D32, 0xE0001D41, 0xE0001D50, - 0xE0001D5F, 0xE0001D6E, 0xE0001D7D, 0xE0001D8C, 0xE0001D9B, 0xE0001DAA, - 0xE0001DB9, 0xE0001DC8, 0xE0001DD7, 0xE0001DE6, - // Block 10, offset 0x280 - 0xE0001DF5, 0xE0001E04, 0xE0001E13, 0xE0001E22, 0xE0001E31, 0xE0001E40, - 0xE0001E4F, 0xE0001E5E, 0xE0001E6D, 0xE0001E7C, 0xE0001E8B, 0xE0001E9A, - 0xE0001EA9, 0xE0001EB8, 0xE0001EC7, 0xE0001ED6, 0xE0001EE5, 0xE0001EF4, - 0xE0001F03, 0xE0001F12, 0xE0001F21, 0xE0001F30, 0xE0001F3F, 0xE0001F4E, - 0xE0001F5D, 0xE0001F6C, 0xE0001F7B, 0xE0001F8A, 0xE0001F99, 0xE0001FA8, - 0xE0001FB7, 0xE0001FC6, 0xE0001FD5, 0x404A6620, 0xE0001D17, 0xE0001D26, - 0xE0001D35, 0xE0001D44, 0xE0001D53, 0xE0001D62, 0xE0001D71, 0xE0001D80, - 0xE0001D8F, 0xE0001D9E, 0xE0001DAD, 0xE0001DBC, 0xE0001DCB, 0xE0001DDA, - 0xE0001DE9, 0xE0001DF8, 0xE0001E07, 0xE0001E16, 0xE0001E25, 0xE0001E34, - 0xE0001E43, 0xE0001E52, 0xE0001E61, 0xE0001E70, 0xE0001E7F, 0xE0001E8E, - 0xE0001E9D, 0xE0001EAC, 0xE0001EBB, 0xE0001ECA, - // Block 11, offset 0x2c0 - 0xE0001ED9, 0xE0001EE8, 0xE0001EF7, 0xE0001F06, 0xE0001F15, 0xE0001F24, - 0xE0001F33, 0xE0001F42, 0xE0001F51, 0xE0001F60, 0xE0001F6F, 0xE0001F7E, - 0xE0001F8D, 0xE0001F9C, 0xE0001FAB, 0xE0001FBA, 0xE0001FC9, 0xE0001FD8, - 0x404A6820, 0xE0001D1A, 0xE0001D29, 0xE0001D38, 0xE0001D47, 0xE0001D56, - 0xE0001D65, 0xE0001D74, 0xE0001D83, 0xE0001D92, 0xE0001DA1, 0xE0001DB0, - 0xE0001DBF, 0xE0001DCE, 0xE0001DDD, 0xE0001DEC, 0xE0001DFB, 0xE0001E0A, - 0xE0001E19, 0xE0001E28, 0xE0001E37, 0xE0001E46, 0xE0001E55, 0xE0001E64, - 0xE0001E73, 0xE0001E82, 0xE0001E91, 0xE0001EA0, 0xE0001EAF, 0xE0001EBE, - 0xE0001ECD, 0xE0001EDC, 0xE0001EEB, 0xE0001EFA, 0xE0001F09, 0xE0001F18, - 0xE0001F27, 0xE0001F36, 0xE0001F45, 0xE0001F54, 0xE0001F63, 0xE0001F72, - 0xE0001F81, 0xE0001F90, 0xE0001F9F, 0xE0001FAE, - // Block 12, offset 0x300 - 0xE0001FBD, 0xE0001FCC, 0xE0001FDB, 0x404AEA20, 0xE000200E, 0xE0002011, - 0x404B2620, 0x404B2420, 0x404B2620, 0x404AF020, 0xE0002014, 0xE0002017, - 0x404B2A20, 0x404B2820, 0x404B2A20, 0x8281258B, 0x8281258D, 0x82812591, - 0x8281258F, 0x404ECA20, 0x404ECC20, 0x404F9C20, 0x404F9620, 0x404F9E20, - 0x404F9820, 0x40522620, 0x40522820, 0x40522A20, 0x40522C20, 0x40522E20, - 0x40523020, 0x40523220, 0x40523420, 0x40523620, 0x40523820, 0x40523E20, - 0x40524020, 0x40529C20, 0x40529E20, 0x4052A020, 0x4052A220, 0x4052A420, - 0x4052A820, 0x4052A620, 0x4052AA20, 0x4052AC20, 0x4052AE20, 0x40094220, - 0x40094420, 0x402C3A20, 0x402C3C20, 0x002C3A88, 0x002C3C83, 0x402D2220, - 0x402D2420, 0x002D2288, 0x002D2483, 0x002D9883, 0x002D9A83, 0x402EE220, - 0x402EE420, 0x002EE288, 0x002EE483, 0x402FE620, - // Block 13, offset 0x340 - 0x402FE820, 0x002FE688, 0x002FE883, 0x40306C20, 0x40306E20, 0x00306C88, - 0x00306E83, 0x40393820, 0x40393A21, 0x40393A22, 0x40393A23, 0x403A7420, - 0x403A7621, 0x403A9020, 0x403A9221, 0x402E2220, 0x402E2420, 0x402E2420, - 0x002E2288, 0x002E2483, 0x002E2483, 0x402BDE20, 0x402BE020, 0x002BDE88, - 0x002BE083, 0x402C6220, 0x402C6420, 0x002C6288, 0x002C6483, 0x402C9820, - 0x402C9A20, 0x402C9C20, 0x002C9888, 0x002C9A83, 0x002C9C83, 0x402D9A20, - 0x402D9C20, 0x002D9A88, 0x002D9C83, 0x402E9E20, 0x402EA020, 0x002E9E88, - 0x002EA083, 0x402F7A20, 0x402F7C20, 0x002F7A88, 0x002F7C83, 0x40302C20, - 0x40302E20, 0x00302C88, 0x00302E83, 0x40306C20, 0x40306E20, 0x40307020, - 0x00306C88, 0x00306E83, 0x00307083, 0x40310020, 0x40310220, 0x00310088, - 0x00310283, 0x40312A20, 0x40312C20, 0x00312A88, - // Block 14, offset 0x380 - 0x00312C83, 0x40306C20, 0x40310021, 0x40310022, 0x00306C88, 0x003100A3, - 0x003100C3, 0x402BDE20, 0x40320C21, 0x40321020, 0x00321084, 0x002BDE88, - 0x00320CA3, 0x00321083, 0x00321086, 0x00321085, 0x402C9820, 0x40320C22, - 0x002C9888, 0x00320CC3, 0x402EE220, 0x40320E21, 0x40320E22, 0x002EE288, - 0x00320EA3, 0x00320EC3, 0x402BDE20, 0xE00026B2, 0x002BDE88, 0xE00026B5, - 0x402EE220, 0xE00026C0, 0x002EE288, 0xE00026C3, 0x40306C20, 0xE00026D6, - 0x00306C88, 0xE00026D9, 0x402BDE20, 0x40320E20, 0x40320C20, 0x002BDE88, - 0x00320E83, 0x00320C83, 0x402EE220, 0x40321023, 0x40321020, 0x40321022, - 0x002EE288, 0x003210E3, 0x00321083, 0x003210C3, 0x402C3A20, 0x402C3E20, - 0x402C3C20, 0x002C3A88, 0x002C3E83, 0x002C3C83, 0x402C6220, 0x402C6420, - 0x402C6420, 0x002C6288, 0x002C6486, 0x002C6484, - // Block 15, offset 0x3c0 - 0x002C6486, 0x002C6484, 0x402E2220, 0xE0000CFB, 0xE0000CFB, 0x402E2420, - 0x002E2288, 0xE0000D01, 0xE0000D01, 0x002E2486, 0x002E2484, 0x002E9E88, - 0x002EA086, 0x002EA084, 0x402BDE20, 0x402C0820, 0x40320C21, 0x40321020, - 0x002BDE88, 0x002C0883, 0x00320CA3, 0x00321083, 0x402C9820, 0x402D0620, - 0x002C9888, 0x002D0683, 0x402D9A20, 0x402DCA20, 0x002D9A88, 0x002DCA83, - 0x402EE220, 0x402F2A20, 0x40320E20, 0x002EE288, 0x002F2A83, 0x00320E83, - 0x40306C20, 0x4030BC20, 0x00306C88, 0x0030BC83, 0x40310020, 0x40312820, - 0x00310088, 0x00312883, 0x002DFE88, 0x002F56A3, 0x402BDE20, 0x40320C21, - 0x40321020, 0x002BDE88, 0x00320CA3, 0x00321083, 0x4062AC20, 0x4062AC21, - 0x4062B220, 0x4062B221, 0x4062BA20, 0x4062BA21, 0x4062BE20, 0x4062BE21, - 0x4062C420, 0x4062C421, 0x402BDE20, 0x40320C21, - // Block 16, offset 0x400 - 0x40321020, 0x40321021, 0x002BDE88, 0x00320CA3, 0x00321083, 0x003210A4, - 0x003210A3, 0x402BDE20, 0x402C0820, 0x40320E21, 0x40320C21, 0x40320E20, - 0x40320C20, 0x002BDE88, 0x002C0883, 0x00320EA3, 0x00320CA3, 0x00320E83, - 0x00320C83, 0x402C3A20, 0x402C5C20, 0x002C3A88, 0x002C5C83, 0x402C5E20, - 0x402C6020, 0x002C5E83, 0x002C6083, 0x402D2220, 0x402D6420, 0x002D2288, - 0x002D6483, 0x402DFE20, 0x402E2020, 0x002DFE88, 0x002E2083, 0x402E9E20, - 0x402EE021, 0x402EE022, 0x002E9E88, 0x002EE0A3, 0x002EE0C3, 0x402FE620, - 0x40302A20, 0x002FE688, 0x00302A83, 0x40312A20, 0x40320620, 0x00312A88, - 0x00320683, 0x402EE220, 0x40321023, 0x40321022, 0x40321020, 0x40321021, - 0x40321024, 0x002EE288, 0x003210E3, 0x003210C3, 0x00321083, 0x003210A3, - 0x00321103, 0x402BDE20, 0x402BE020, 0x402BE220, - // Block 17, offset 0x440 - 0x002BDE88, 0x002BE083, 0x002BE283, 0x402E2220, 0xE0000CFB, 0x402E2420, - 0x402E2620, 0xE0000CFB, 0x002E2288, 0xE0000D01, 0x002E2483, 0x002E2683, - 0xE0000D01, 0x402EE220, 0x402EE420, 0x402EE620, 0x002EE288, 0x002EE483, - 0x002EE683, 0x402F7A20, 0x402F7C20, 0x402F7E20, 0x002F7A88, 0x002F7C83, - 0x002F7E83, 0x402C9820, 0x40320E22, 0x002C9888, 0x00320EC3, 0x402EE220, - 0x40321024, 0x40321020, 0x40321022, 0x002EE288, 0x00321103, 0x00321083, - 0x003210C3, -} - -// mainValues: 37888 entries, 151552 bytes -// Block 2 is the null block. -var mainValues = [37888]uint32{ - // Block 0x0, offset 0x0 - 0x0000: 0xa0000000, 0x0001: 0xa0000000, 0x0002: 0xa0000000, 0x0003: 0xa0000000, - 0x0004: 0xa0000000, 0x0005: 0xa0000000, 0x0006: 0xa0000000, 0x0007: 0xa0000000, - 0x0008: 0xa0000000, 0x0009: 0x40020020, 0x000a: 0x40020220, 0x000b: 0x40020420, - 0x000c: 0x40020620, 0x000d: 0x40020820, 0x000e: 0xa0000000, 0x000f: 0xa0000000, - 0x0010: 0xa0000000, 0x0011: 0xa0000000, 0x0012: 0xa0000000, 0x0013: 0xa0000000, - 0x0014: 0xa0000000, 0x0015: 0xa0000000, 0x0016: 0xa0000000, 0x0017: 0xa0000000, - 0x0018: 0xa0000000, 0x0019: 0xa0000000, 0x001a: 0xa0000000, 0x001b: 0xa0000000, - 0x001c: 0xa0000000, 0x001d: 0xa0000000, 0x001e: 0xa0000000, 0x001f: 0xa0000000, - 0x0020: 0x40021220, 0x0021: 0x4002ba20, 0x0022: 0x4003e020, 0x0023: 0x4004ea20, - 0x0024: 0x4027de20, 0x0025: 0x4004ec20, 0x0026: 0x4004e620, 0x0027: 0x4003d220, - 0x0028: 0x4003f420, 0x0029: 0x4003f620, 0x002a: 0x4004d820, 0x002b: 0x40093820, - 0x002c: 0x40024020, 0x002d: 0x40021a20, 0x002e: 0x4002e420, 0x002f: 0x4004e220, - 0x0030: 0x4029cc20, 0x0031: 0x4029ce20, 0x0032: 0x4029d020, 0x0033: 0x4029d220, - 0x0034: 0x4029d420, 0x0035: 0x4029d620, 0x0036: 0x4029d820, 0x0037: 0x4029da20, - 0x0038: 0x4029dc20, 0x0039: 0x4029de20, 0x003a: 0x40026c20, 0x003b: 0x40026220, - 0x003c: 0x40094020, 0x003d: 0x40094220, 0x003e: 0x40094420, 0x003f: 0x4002c420, - // Block 0x1, offset 0x40 - 0x0040: 0x4004d620, 0x0041: 0x002bde88, 0x0042: 0x002c0a88, 0x0043: 0x002c3a88, - 0x0044: 0x002c6288, 0x0045: 0x002c9888, 0x0046: 0x002d0888, 0x0047: 0x002d2288, - 0x0048: 0x002d6888, 0x0049: 0x002d9a88, 0x004a: 0x002dcc88, 0x004b: 0x002dfe88, - 0x004c: 0xc0030002, 0x004d: 0x002e8288, 0x004e: 0x002e9e88, 0x004f: 0x002ee288, - 0x0050: 0x002f2c88, 0x0051: 0x002f5688, 0x0052: 0x002f7a88, 0x0053: 0x002fe688, - 0x0054: 0x00302c88, 0x0055: 0x00306c88, 0x0056: 0x0030be88, 0x0057: 0x0030e288, - 0x0058: 0x0030f688, 0x0059: 0x00310088, 0x005a: 0x00312a88, 0x005b: 0x4003f820, - 0x005c: 0x4004e420, 0x005d: 0x4003fa20, 0x005e: 0x40062420, 0x005f: 0x40021620, - 0x0060: 0x40061e20, 0x0061: 0x402bde20, 0x0062: 0x402c0a20, 0x0063: 0x402c3a20, - 0x0064: 0x402c6220, 0x0065: 0x402c9820, 0x0066: 0x402d0820, 0x0067: 0x402d2220, - 0x0068: 0x402d6820, 0x0069: 0x402d9a20, 0x006a: 0x402dcc20, 0x006b: 0x402dfe20, - 0x006c: 0xc0000002, 0x006d: 0x402e8220, 0x006e: 0x402e9e20, 0x006f: 0x402ee220, - 0x0070: 0x402f2c20, 0x0071: 0x402f5620, 0x0072: 0x402f7a20, 0x0073: 0x402fe620, - 0x0074: 0x40302c20, 0x0075: 0x40306c20, 0x0076: 0x4030be20, 0x0077: 0x4030e220, - 0x0078: 0x4030f620, 0x0079: 0x40310020, 0x007a: 0x40312a20, 0x007b: 0x4003fc20, - 0x007c: 0x40094820, 0x007d: 0x4003fe20, 0x007e: 0x40094c20, 0x007f: 0xa0000000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0x00c0: 0xa0000000, 0x00c1: 0xa0000000, 0x00c2: 0xa0000000, 0x00c3: 0xa0000000, - 0x00c4: 0xa0000000, 0x00c5: 0x40020a20, 0x00c6: 0xa0000000, 0x00c7: 0xa0000000, - 0x00c8: 0xa0000000, 0x00c9: 0xa0000000, 0x00ca: 0xa0000000, 0x00cb: 0xa0000000, - 0x00cc: 0xa0000000, 0x00cd: 0xa0000000, 0x00ce: 0xa0000000, 0x00cf: 0xa0000000, - 0x00d0: 0xa0000000, 0x00d1: 0xa0000000, 0x00d2: 0xa0000000, 0x00d3: 0xa0000000, - 0x00d4: 0xa0000000, 0x00d5: 0xa0000000, 0x00d6: 0xa0000000, 0x00d7: 0xa0000000, - 0x00d8: 0xa0000000, 0x00d9: 0xa0000000, 0x00da: 0xa0000000, 0x00db: 0xa0000000, - 0x00dc: 0xa0000000, 0x00dd: 0xa0000000, 0x00de: 0xa0000000, 0x00df: 0xa0000000, - 0x00e0: 0x0002129b, 0x00e1: 0x4002bc20, 0x00e2: 0x4027dc20, 0x00e3: 0x4027e020, - 0x00e4: 0x4027da20, 0x00e5: 0x4027e220, 0x00e6: 0x40094a20, 0x00e7: 0x4004ce20, - 0x00e8: 0x40062c20, 0x00e9: 0x40081820, 0x00ea: 0x002bde94, 0x00eb: 0x4003f020, - 0x00ec: 0x40094620, 0x00ed: 0xa0000000, 0x00ee: 0x40081a20, 0x00ef: 0x40062620, - 0x00f0: 0x40070420, 0x00f1: 0x40093a20, 0x00f2: 0x0029d094, 0x00f3: 0x0029d294, - 0x00f4: 0x40062020, 0x00f5: 0x00327684, 0x00f6: 0x4004d220, 0x00f7: 0x40030620, - 0x00f8: 0x40063220, 0x00f9: 0x0029ce94, 0x00fa: 0x002ee294, 0x00fb: 0x4003f220, - 0x00fc: 0xe00002bf, 0x00fd: 0xe00002b7, 0x00fe: 0xe00004a7, 0x00ff: 0x4002c620, - // Block 0x4, offset 0x100 - 0x0100: 0xe00008f5, 0x0101: 0xe00008ef, 0x0102: 0xe0000921, 0x0103: 0xe0000969, - 0x0104: 0xe000095b, 0x0105: 0xe000094d, 0x0106: 0xe00009dd, 0x0107: 0xe0000a53, - 0x0108: 0xe0000ae8, 0x0109: 0xe0000ae2, 0x010a: 0xe0000af4, 0x010b: 0xe0000b20, - 0x010c: 0xe0000c2b, 0x010d: 0xe0000c25, 0x010e: 0xe0000c37, 0x010f: 0xe0000c43, - 0x0110: 0xe0000ab3, 0x0111: 0xe0000d63, 0x0112: 0xe0000d9a, 0x0113: 0xe0000d94, - 0x0114: 0xe0000da6, 0x0115: 0xe0000de6, 0x0116: 0xe0000dd2, 0x0117: 0x40093e20, - 0x0118: 0xe0000e12, 0x0119: 0xe0000fe1, 0x011a: 0xe0000fdb, 0x011b: 0xe0000fed, - 0x011c: 0xe0000fff, 0x011d: 0xe0001102, 0x011e: 0x00318888, 0x011f: 0xe0000f7b, - 0x0120: 0xe00008f2, 0x0121: 0xe00008ec, 0x0122: 0xe000091e, 0x0123: 0xe0000966, - 0x0124: 0xe0000958, 0x0125: 0xe000094a, 0x0126: 0xe00009d5, 0x0127: 0xe0000a4d, - 0x0128: 0xe0000ae5, 0x0129: 0xe0000adf, 0x012a: 0xe0000af1, 0x012b: 0xe0000b1d, - 0x012c: 0xe0000c28, 0x012d: 0xe0000c22, 0x012e: 0xe0000c34, 0x012f: 0xe0000c40, - 0x0130: 0xe0000aad, 0x0131: 0xe0000d60, 0x0132: 0xe0000d97, 0x0133: 0xe0000d91, - 0x0134: 0xe0000da3, 0x0135: 0xe0000de3, 0x0136: 0xe0000dcf, 0x0137: 0x40093c20, - 0x0138: 0xe0000e0f, 0x0139: 0xe0000fde, 0x013a: 0xe0000fd8, 0x013b: 0xe0000fea, - 0x013c: 0xe0000ffc, 0x013d: 0xe00010ff, 0x013e: 0x40318820, 0x013f: 0xe0001114, - // Block 0x5, offset 0x140 - 0x0140: 0xe0000983, 0x0141: 0xe0000980, 0x0142: 0xe00008fb, 0x0143: 0xe00008f8, - 0x0144: 0xe000097d, 0x0145: 0xe000097a, 0x0146: 0xe0000a38, 0x0147: 0xe0000a35, - 0x0148: 0xe0000a3e, 0x0149: 0xe0000a3b, 0x014a: 0xe0000a4a, 0x014b: 0xe0000a47, - 0x014c: 0xe0000a44, 0x014d: 0xe0000a41, 0x014e: 0xe0000a86, 0x014f: 0xe0000a83, - 0x0150: 0xe0000aaa, 0x0151: 0xe0000aa7, 0x0152: 0xe0000b46, 0x0153: 0xe0000b43, - 0x0154: 0xe0000aee, 0x0155: 0xe0000aeb, 0x0156: 0xe0000b2c, 0x0157: 0xe0000b29, - 0x0158: 0xe0000b40, 0x0159: 0xe0000b3d, 0x015a: 0xe0000b1a, 0x015b: 0xe0000b17, - 0x015c: 0xe0000bb8, 0x015d: 0xe0000bb5, 0x015e: 0xe0000bb2, 0x015f: 0xe0000baf, - 0x0160: 0xe0000bc4, 0x0161: 0xe0000bc1, 0x0162: 0xe0000bca, 0x0163: 0xe0000bc7, - 0x0164: 0xe0000bee, 0x0165: 0xe0000beb, 0x0166: 0xe0000c1b, 0x0167: 0xe0000c18, - 0x0168: 0xe0000c51, 0x0169: 0xe0000c4e, 0x016a: 0xe0000c60, 0x016b: 0xe0000c5d, - 0x016c: 0xe0000c31, 0x016d: 0xe0000c2e, 0x016e: 0xe0000c5a, 0x016f: 0xe0000c57, - 0x0170: 0xe0000c54, 0x0171: 0x402da220, 0x0172: 0xf0000a0a, 0x0173: 0xf0000404, - 0x0174: 0xe0000c8a, 0x0175: 0xe0000c87, 0x0176: 0xe0000c9f, 0x0177: 0xe0000c9c, - 0x0178: 0x402f7220, 0x0179: 0xe0000ccc, 0x017a: 0xe0000cc9, 0x017b: 0xe0000cd8, - 0x017c: 0xe0000cd5, 0x017d: 0xe0000cd2, 0x017e: 0xe0000ccf, 0x017f: 0xe0000d04, - // Block 0x6, offset 0x180 - 0x0180: 0xe0000cfe, 0x0181: 0xe0000cf8, 0x0182: 0xe0000cf5, 0x0183: 0xe0000d51, - 0x0184: 0xe0000d4e, 0x0185: 0xe0000d6f, 0x0186: 0xe0000d6c, 0x0187: 0xe0000d5d, - 0x0188: 0xe0000d5a, 0x0189: 0xf0000404, 0x018a: 0x002eda88, 0x018b: 0x402eda20, - 0x018c: 0xe0000e2e, 0x018d: 0xe0000e2b, 0x018e: 0xe0000da0, 0x018f: 0xe0000d9d, - 0x0190: 0xe0000de0, 0x0191: 0xe0000ddd, 0x0192: 0xe0000e93, 0x0193: 0xe0000e8f, - 0x0194: 0xe0000eca, 0x0195: 0xe0000ec7, 0x0196: 0xe0000edc, 0x0197: 0xe0000ed9, - 0x0198: 0xe0000ed0, 0x0199: 0xe0000ecd, 0x019a: 0xe0000f1f, 0x019b: 0xe0000f1c, - 0x019c: 0xe0000f2d, 0x019d: 0xe0000f2a, 0x019e: 0xe0000f47, 0x019f: 0xe0000f44, - 0x01a0: 0xe0000f33, 0x01a1: 0xe0000f30, 0x01a2: 0xe0000f99, 0x01a3: 0xe0000f96, - 0x01a4: 0xe0000f8a, 0x01a5: 0xe0000f87, 0x01a6: 0x00303688, 0x01a7: 0x40303620, - 0x01a8: 0xe000102b, 0x01a9: 0xe0001028, 0x01aa: 0xe000103f, 0x01ab: 0xe000103c, - 0x01ac: 0xe0000fe7, 0x01ad: 0xe0000fe4, 0x01ae: 0xe0000ff9, 0x01af: 0xe0000ff6, - 0x01b0: 0xe0001025, 0x01b1: 0xe0001022, 0x01b2: 0xe0001039, 0x01b3: 0xe0001036, - 0x01b4: 0xe00010d8, 0x01b5: 0xe00010d5, 0x01b6: 0xe000110e, 0x01b7: 0xe000110b, - 0x01b8: 0xe0001117, 0x01b9: 0xe000113b, 0x01ba: 0xe0001138, 0x01bb: 0xe000114d, - 0x01bc: 0xe000114a, 0x01bd: 0xe0001147, 0x01be: 0xe0001144, 0x01bf: 0xe0000f64, - // Block 0x7, offset 0x1c0 - 0x01c0: 0x402c1a20, 0x01c1: 0x002c2a88, 0x01c2: 0x002c3288, 0x01c3: 0x402c3220, - 0x01c4: 0x0031c488, 0x01c5: 0x4031c420, 0x01c6: 0x002efa88, 0x01c7: 0x002c4e88, - 0x01c8: 0x402c4e20, 0x01c9: 0x002c7288, 0x01ca: 0x002c7a88, 0x01cb: 0x002c8488, - 0x01cc: 0x402c8420, 0x01cd: 0xe000115c, 0x01ce: 0x002cae88, 0x01cf: 0x002cb888, - 0x01d0: 0x002cc288, 0x01d1: 0x002d1688, 0x01d2: 0x402d1620, 0x01d3: 0x002d4488, - 0x01d4: 0x002d5888, 0x01d5: 0x402d7820, 0x01d6: 0x002dc288, 0x01d7: 0x002db688, - 0x01d8: 0x002e0a88, 0x01d9: 0x402e0a20, 0x01da: 0x402e3820, 0x01db: 0x402e7220, - 0x01dc: 0x0030a088, 0x01dd: 0x002eb488, 0x01de: 0x402ebc20, 0x01df: 0x002f1088, - 0x01e0: 0xe0000e56, 0x01e1: 0xe0000e53, 0x01e2: 0x002d6088, 0x01e3: 0x402d6020, - 0x01e4: 0x002f3e88, 0x01e5: 0x402f3e20, 0x01e6: 0x002f8288, 0x01e7: 0x0031b488, - 0x01e8: 0x4031b420, 0x01e9: 0x00300888, 0x01ea: 0x40301220, 0x01eb: 0x40304220, - 0x01ec: 0x00304a88, 0x01ed: 0x40304a20, 0x01ee: 0x00305288, 0x01ef: 0xe000105f, - 0x01f0: 0xe000105c, 0x01f1: 0x0030b488, 0x01f2: 0x0030cc88, 0x01f3: 0x00311888, - 0x01f4: 0x40311820, 0x01f5: 0x00313488, 0x01f6: 0x40313420, 0x01f7: 0x00316488, - 0x01f8: 0x00316e88, 0x01f9: 0x40316e20, 0x01fa: 0x40317820, 0x01fb: 0x4031a620, - 0x01fc: 0x0031bc88, 0x01fd: 0x4031bc20, 0x01fe: 0xe0000fc9, 0x01ff: 0x40319420, - // Block 0x8, offset 0x200 - 0x0200: 0x40321220, 0x0201: 0x40321a20, 0x0202: 0x40322220, 0x0203: 0x40322a20, - 0x0204: 0xe0000ad5, 0x0205: 0xe0000ad1, 0x0206: 0xe0000acd, 0x0207: 0xf0000a0a, - 0x0208: 0xf000040a, 0x0209: 0xf0000404, 0x020a: 0xf0000a0a, 0x020b: 0xf000040a, - 0x020c: 0xf0000404, 0x020d: 0xe0000947, 0x020e: 0xe0000944, 0x020f: 0xe0000c3d, - 0x0210: 0xe0000c3a, 0x0211: 0xe0000dcc, 0x0212: 0xe0000dc9, 0x0213: 0xe0000ff3, - 0x0214: 0xe0000ff0, 0x0215: 0xe000101e, 0x0216: 0xe000101a, 0x0217: 0xe0001006, - 0x0218: 0xe0001002, 0x0219: 0xe0001016, 0x021a: 0xe0001012, 0x021b: 0xe000100e, - 0x021c: 0xe000100a, 0x021d: 0x402cae20, 0x021e: 0xe0000962, 0x021f: 0xe000095e, - 0x0220: 0xe0000976, 0x0221: 0xe0000972, 0x0222: 0xe00009f4, 0x0223: 0xe00009ef, - 0x0224: 0x002d3a88, 0x0225: 0x402d3a20, 0x0226: 0xe0000bbe, 0x0227: 0xe0000bbb, - 0x0228: 0xe0000c99, 0x0229: 0xe0000c96, 0x022a: 0xe0000e20, 0x022b: 0xe0000e1d, - 0x022c: 0xe0000e27, 0x022d: 0xe0000e23, 0x022e: 0xe0001162, 0x022f: 0xe000115f, - 0x0230: 0xe0000c8d, 0x0231: 0xf0000a0a, 0x0232: 0xf000040a, 0x0233: 0xf0000404, - 0x0234: 0xe0000bac, 0x0235: 0xe0000ba9, 0x0236: 0x002d7888, 0x0237: 0x00319488, - 0x0238: 0xe0000d57, 0x0239: 0xe0000d54, 0x023a: 0xe0000954, 0x023b: 0xe0000950, - 0x023c: 0xe00009ea, 0x023d: 0xe00009e5, 0x023e: 0xe0000e19, 0x023f: 0xe0000e15, - // Block 0x9, offset 0x240 - 0x0240: 0xe000098f, 0x0241: 0xe000098c, 0x0242: 0xe0000995, 0x0243: 0xe0000992, - 0x0244: 0xe0000b62, 0x0245: 0xe0000b5f, 0x0246: 0xe0000b68, 0x0247: 0xe0000b65, - 0x0248: 0xe0000c6c, 0x0249: 0xe0000c69, 0x024a: 0xe0000c72, 0x024b: 0xe0000c6f, - 0x024c: 0xe0000e4a, 0x024d: 0xe0000e47, 0x024e: 0xe0000e50, 0x024f: 0xe0000e4d, - 0x0250: 0xe0000ee8, 0x0251: 0xe0000ee5, 0x0252: 0xe0000eee, 0x0253: 0xe0000eeb, - 0x0254: 0xe0001053, 0x0255: 0xe0001050, 0x0256: 0xe0001059, 0x0257: 0xe0001056, - 0x0258: 0xe0000f61, 0x0259: 0xe0000f5e, 0x025a: 0xe0000fa5, 0x025b: 0xe0000fa2, - 0x025c: 0x00312288, 0x025d: 0x40312220, 0x025e: 0xe0000bf4, 0x025f: 0xe0000bf1, - 0x0260: 0x002ebc88, 0x0261: 0x402c8c20, 0x0262: 0x002f2288, 0x0263: 0x402f2220, - 0x0264: 0x00314088, 0x0265: 0x40314020, 0x0266: 0xe000096f, 0x0267: 0xe000096c, - 0x0268: 0xe0000b32, 0x0269: 0xe0000b2f, 0x026a: 0xe0000dd9, 0x026b: 0xe0000dd5, - 0x026c: 0xe0000dfd, 0x026d: 0xe0000df9, 0x026e: 0xe0000e04, 0x026f: 0xe0000e01, - 0x0270: 0xe0000e0b, 0x0271: 0xe0000e07, 0x0272: 0xe0001129, 0x0273: 0xe0001126, - 0x0274: 0x402e5e20, 0x0275: 0x402ed020, 0x0276: 0x40305a20, 0x0277: 0x402dd420, - 0x0278: 0xe0000abf, 0x0279: 0xe0000ec4, 0x027a: 0x002be888, 0x027b: 0x002c4488, - 0x027c: 0x402c4420, 0x027d: 0x002e3888, 0x027e: 0x00303e88, 0x027f: 0x402ffc20, - // Block 0xa, offset 0x280 - 0x0280: 0x40315820, 0x0281: 0x0031d488, 0x0282: 0x4031d420, 0x0283: 0x002c1a88, - 0x0284: 0x00307c88, 0x0285: 0x0030da88, 0x0286: 0x002ca288, 0x0287: 0x402ca220, - 0x0288: 0x002dde88, 0x0289: 0x402dde20, 0x028a: 0x002f6a88, 0x028b: 0x402f6a20, - 0x028c: 0x002f8e88, 0x028d: 0x402f8e20, 0x028e: 0x00311088, 0x028f: 0x40311020, - 0x0290: 0x402bf020, 0x0291: 0x402bf820, 0x0292: 0x402c0220, 0x0293: 0x402c2a20, - 0x0294: 0x402efa20, 0x0295: 0x402c5620, 0x0296: 0x402c7220, 0x0297: 0x402c7a20, - 0x0298: 0x402ccc20, 0x0299: 0x402cb820, 0x029a: 0x402cd420, 0x029b: 0x402cc220, - 0x029c: 0x402cdc20, 0x029d: 0x402ce820, 0x029e: 0x402cf020, 0x029f: 0x402dee20, - 0x02a0: 0x402d4420, 0x02a1: 0x402d2a20, 0x02a2: 0x402d3220, 0x02a3: 0x402d5820, - 0x02a4: 0x402d0020, 0x02a5: 0x40308820, 0x02a6: 0x402d8020, 0x02a7: 0x402d8e20, - 0x02a8: 0x402db620, 0x02a9: 0x402dc220, 0x02aa: 0x402daa20, 0x02ab: 0x402e4220, - 0x02ac: 0x402e4a20, 0x02ad: 0x402e5420, 0x02ae: 0x402e6820, 0x02af: 0x4030a020, - 0x02b0: 0x4030ac20, 0x02b1: 0x402e9020, 0x02b2: 0x402eb420, 0x02b3: 0x402ec820, - 0x02b4: 0x402ea620, 0x02b5: 0x402f1020, 0x02b6: 0x402eee20, 0x02b7: 0x402f1a20, - 0x02b8: 0x402f4c20, 0x02b9: 0x402f9820, 0x02ba: 0x402fa220, 0x02bb: 0x402fac20, - 0x02bc: 0x402fb620, 0x02bd: 0x402fbe20, 0x02be: 0x402fc620, 0x02bf: 0x402fd020, - // Block 0xb, offset 0x2c0 - 0x02c0: 0x402f8220, 0x02c1: 0x402fd820, 0x02c2: 0x402ff420, 0x02c3: 0x40300820, - 0x02c4: 0x402df620, 0x02c5: 0x40301a20, 0x02c6: 0x40302420, 0x02c7: 0x40306420, - 0x02c8: 0x40305220, 0x02c9: 0x40307c20, 0x02ca: 0x4030b420, 0x02cb: 0x4030cc20, - 0x02cc: 0x4030da20, 0x02cd: 0x4030ee20, 0x02ce: 0x402e7a20, 0x02cf: 0x40310820, - 0x02d0: 0x40314820, 0x02d1: 0x40315020, 0x02d2: 0x40316420, 0x02d3: 0x40318020, - 0x02d4: 0x4031cc20, 0x02d5: 0x4031e820, 0x02d6: 0x40320a20, 0x02d7: 0x40323220, - 0x02d8: 0x40323a20, 0x02d9: 0x402c1220, 0x02da: 0x402cf820, 0x02db: 0x402d4c20, - 0x02dc: 0x402d7020, 0x02dd: 0x402de620, 0x02de: 0x402e1a20, 0x02df: 0x402e2a20, - 0x02e0: 0x402f6220, 0x02e1: 0x4031fa20, 0x02e2: 0x40320220, 0x02e3: 0xe0000aca, - 0x02e4: 0xe0000adc, 0x02e5: 0xe0000ad9, 0x02e6: 0xe0000fcc, 0x02e7: 0xe0000fcf, - 0x02e8: 0xe0000fba, 0x02e9: 0xe0000ba1, 0x02ea: 0xe0000d11, 0x02eb: 0xe0000d18, - 0x02ec: 0x40324220, 0x02ed: 0x40324a20, 0x02ee: 0x40309020, 0x02ef: 0x40309820, - 0x02f0: 0x002d6894, 0x02f1: 0x002d8094, 0x02f2: 0x002dcc94, 0x02f3: 0x002f7a94, - 0x02f4: 0x002f9894, 0x02f5: 0x002fac94, 0x02f6: 0x002fd894, 0x02f7: 0x0030e294, - 0x02f8: 0x00310094, 0x02f9: 0x40064020, 0x02fa: 0x40064420, 0x02fb: 0x402d9620, - 0x02fc: 0x4031de20, 0x02fd: 0x402d9820, 0x02fe: 0x4031e220, 0x02ff: 0x4031f020, - // Block 0xc, offset 0x300 - 0x0300: 0x4031dc20, 0x0301: 0x4031f220, 0x0302: 0x40064620, 0x0303: 0x40064820, - 0x0304: 0x40064a20, 0x0305: 0x40064c20, 0x0306: 0x40064e20, 0x0307: 0x40065020, - 0x0308: 0x40065220, 0x0309: 0x40065420, 0x030a: 0x40065620, 0x030b: 0x40065820, - 0x030c: 0x40065a20, 0x030d: 0x40065c20, 0x030e: 0x40065e20, 0x030f: 0x40066020, - 0x0310: 0x4027b220, 0x0311: 0x4027b420, 0x0312: 0x40066220, 0x0313: 0x40066420, - 0x0314: 0x40066620, 0x0315: 0x40066820, 0x0316: 0x40066a20, 0x0317: 0x40066c20, - 0x0318: 0x40062820, 0x0319: 0x40062a20, 0x031a: 0x40062e20, 0x031b: 0x40063420, - 0x031c: 0x40062220, 0x031d: 0x40063020, 0x031e: 0x40066e20, 0x031f: 0x40067020, - 0x0320: 0x002d5894, 0x0321: 0x002e2294, 0x0322: 0x002fe694, 0x0323: 0x0030f694, - 0x0324: 0x0031e894, 0x0325: 0x40067220, 0x0326: 0x40067420, 0x0327: 0x40067620, - 0x0328: 0x40067820, 0x0329: 0x40067a20, 0x032a: 0x40067c20, 0x032b: 0x40067e20, - 0x032c: 0x40068020, 0x032d: 0x40068220, 0x032e: 0x4031e020, 0x032f: 0x40068420, - 0x0330: 0x40068620, 0x0331: 0x40068820, 0x0332: 0x40068a20, 0x0333: 0x40068c20, - 0x0334: 0x40068e20, 0x0335: 0x40069020, 0x0336: 0x40069220, 0x0337: 0x40069420, - 0x0338: 0x40069620, 0x0339: 0x40069820, 0x033a: 0x40069a20, 0x033b: 0x40069c20, - 0x033c: 0x40069e20, 0x033d: 0x4006a020, 0x033e: 0x4006a220, 0x033f: 0x4006a420, - // Block 0xd, offset 0x340 - 0x0340: 0xae603502, 0x0341: 0xae603202, 0x0342: 0xae603c02, 0x0343: 0xae604e02, - 0x0344: 0xae605b02, 0x0345: 0xae606302, 0x0346: 0xae603702, 0x0347: 0xae605202, - 0x0348: 0xae604702, 0x0349: 0xae606402, 0x034a: 0xae604302, 0x034b: 0xae604d02, - 0x034c: 0xae604102, 0x034d: 0xae605f02, 0x034e: 0xae605f02, 0x034f: 0xae606502, - 0x0350: 0xae606602, 0x0351: 0xae606702, 0x0352: 0xae605f02, 0x0353: 0xae602202, - 0x0354: 0xae602a02, 0x0355: 0xae805f02, 0x0356: 0xadc06002, 0x0357: 0xadc06002, - 0x0358: 0xadc06002, 0x0359: 0xadc06002, 0x035a: 0xae805f02, 0x035b: 0xad806802, - 0x035c: 0xadc06002, 0x035d: 0xadc06002, 0x035e: 0xadc06002, 0x035f: 0xadc06002, - 0x0360: 0xadc06002, 0x0361: 0xaca06e02, 0x0362: 0xaca06f02, 0x0363: 0xadc07002, - 0x0364: 0xadc07502, 0x0365: 0xadc07602, 0x0366: 0xadc07702, 0x0367: 0xaca05602, - 0x0368: 0xaca05902, 0x0369: 0xadc06002, 0x036a: 0xadc06002, 0x036b: 0xadc06002, - 0x036c: 0xadc06002, 0x036d: 0xadc07802, 0x036e: 0xadc07902, 0x036f: 0xadc06002, - 0x0370: 0xadc07a02, 0x0371: 0xadc07b02, 0x0372: 0xadc02102, 0x0373: 0xadc06002, - 0x0374: 0xa0107c02, 0x0375: 0xa0107d02, 0x0376: 0xa0106102, 0x0377: 0xa0106102, - 0x0378: 0xa0105402, 0x0379: 0xadc07e02, 0x037a: 0xadc06002, 0x037b: 0xadc06002, - 0x037c: 0xadc06002, 0x037d: 0xae605f02, 0x037e: 0xae605f02, 0x037f: 0xae605f02, - // Block 0xe, offset 0x380 - 0x0380: 0xae603502, 0x0381: 0xae603202, 0x0382: 0xae604502, 0x0383: 0xae602202, - 0x0384: 0xe0000000, 0x0385: 0xaf007f02, 0x0386: 0xae605f02, 0x0387: 0xadc06002, - 0x0388: 0xadc06002, 0x0389: 0xadc06002, 0x038a: 0xae605f02, 0x038b: 0xae605f02, - 0x038c: 0xae605f02, 0x038d: 0xadc06002, 0x038e: 0xadc06002, 0x038f: 0xa0000000, - 0x0390: 0xae605f02, 0x0391: 0xae605f02, 0x0392: 0xae605f02, 0x0393: 0xadc06002, - 0x0394: 0xadc06002, 0x0395: 0xadc06002, 0x0396: 0xadc06002, 0x0397: 0xae605f02, - 0x0398: 0xae808002, 0x0399: 0xadc06002, 0x039a: 0xadc06002, 0x039b: 0xae605f02, - 0x039c: 0xae906002, 0x039d: 0xaea05f02, 0x039e: 0xaea05f02, 0x039f: 0xae906002, - 0x03a0: 0xaea08102, 0x03a1: 0xaea08202, 0x03a2: 0xae906002, 0x03a3: 0x84e615ef, - 0x03a4: 0x84e6164c, 0x03a5: 0x84e616cd, 0x03a6: 0x84e61771, 0x03a7: 0x84e61836, - 0x03a8: 0x84e6161d, 0x03a9: 0x84e61631, 0x03aa: 0x84e616b4, 0x03ab: 0x84e61741, - 0x03ac: 0x84e617bd, 0x03ad: 0x84e61816, 0x03ae: 0x84e6185f, 0x03af: 0x84e6187b, - 0x03b0: 0x00326688, 0x03b1: 0x40326620, 0x03b2: 0x0032a688, 0x03b3: 0x4032a620, - 0x03b4: 0x40064020, 0x03b5: 0x40064220, 0x03b6: 0x00326088, 0x03b7: 0x40326020, - 0x03ba: 0x00326c84, 0x03bb: 0x40329220, - 0x03bc: 0x40329020, 0x03bd: 0x40329420, 0x03be: 0x40026220, - // Block 0xf, offset 0x3c0 - 0x03c4: 0x40062020, 0x03c5: 0xe00000ab, 0x03c6: 0xe00011f0, 0x03c7: 0x40030620, - 0x03c8: 0xe0001249, 0x03c9: 0xe00012dd, 0x03ca: 0xe000133a, - 0x03cc: 0xe000139b, 0x03ce: 0xe00013dd, 0x03cf: 0xe0001492, - 0x03d0: 0xe0001352, 0x03d1: 0x00325288, 0x03d2: 0x00325488, 0x03d3: 0x00325688, - 0x03d4: 0x00325a88, 0x03d5: 0x00325c88, 0x03d6: 0x00326488, 0x03d7: 0x00326888, - 0x03d8: 0x00326a88, 0x03d9: 0x00326c88, 0x03da: 0x00327088, 0x03db: 0x00327288, - 0x03dc: 0x00327688, 0x03dd: 0x00327888, 0x03de: 0x00327a88, 0x03df: 0x00327c88, - 0x03e0: 0x00327e88, 0x03e1: 0x00328888, 0x03e3: 0x00328e88, - 0x03e4: 0x00329688, 0x03e5: 0x00329888, 0x03e6: 0x00329a88, 0x03e7: 0x00329c88, - 0x03e8: 0x00329e88, 0x03e9: 0x0032a288, 0x03ea: 0xe000134f, 0x03eb: 0xe00013f2, - 0x03ec: 0xe00011ed, 0x03ed: 0xe0001246, 0x03ee: 0xe00012da, 0x03ef: 0xe0001337, - 0x03f0: 0xe00013f5, 0x03f1: 0x40325220, 0x03f2: 0x40325420, 0x03f3: 0x40325620, - 0x03f4: 0x40325a20, 0x03f5: 0x40325c20, 0x03f6: 0x40326420, 0x03f7: 0x40326820, - 0x03f8: 0x40326a20, 0x03f9: 0x40326c20, 0x03fa: 0x40327020, 0x03fb: 0x40327220, - 0x03fc: 0x40327620, 0x03fd: 0x40327820, 0x03fe: 0x40327a20, 0x03ff: 0x40327c20, - // Block 0x10, offset 0x400 - 0x0400: 0x40327e20, 0x0401: 0x40328820, 0x0402: 0x00328e99, 0x0403: 0x40328e20, - 0x0404: 0x40329620, 0x0405: 0x40329820, 0x0406: 0x40329a20, 0x0407: 0x40329c20, - 0x0408: 0x40329e20, 0x0409: 0x4032a220, 0x040a: 0xe000134c, 0x040b: 0xe00013ef, - 0x040c: 0xe0001398, 0x040d: 0xe00013da, 0x040e: 0xe000148f, 0x040f: 0xe0001368, - 0x0410: 0x00325484, 0x0411: 0x00326a84, 0x0412: 0x0032988a, 0x0413: 0xf000020a, - 0x0414: 0xf000020a, 0x0415: 0x00329a84, 0x0416: 0x00327e84, 0x0417: 0xe0001364, - 0x0418: 0x00328688, 0x0419: 0x40328620, 0x041a: 0x00326288, 0x041b: 0x40326220, - 0x041c: 0x00325e88, 0x041d: 0x40325e20, 0x041e: 0x00328488, 0x041f: 0x40328420, - 0x0420: 0x0032a488, 0x0421: 0x4032a420, 0x0422: 0x0032e888, 0x0423: 0x4032e820, - 0x0424: 0x0032f288, 0x0425: 0x4032f220, 0x0426: 0x0032f488, 0x0427: 0x4032f420, - 0x0428: 0x0032fa88, 0x0429: 0x4032fa20, 0x042a: 0x00330888, 0x042b: 0x40330820, - 0x042c: 0x00330e88, 0x042d: 0x40330e20, 0x042e: 0x00331688, 0x042f: 0x40331620, - 0x0430: 0x00327084, 0x0431: 0x00328884, 0x0432: 0x00328e84, 0x0433: 0x40326e20, - 0x0434: 0x00326a8a, 0x0435: 0x00325c84, 0x0436: 0x40092e20, 0x0437: 0x0032a888, - 0x0438: 0x4032a820, 0x0439: 0x00328e8a, 0x043a: 0x00328288, 0x043b: 0x40328220, - 0x043c: 0x40328c20, 0x043d: 0x00329288, 0x043e: 0x00329088, 0x043f: 0x00329488, - // Block 0x11, offset 0x440 - 0x0440: 0xe00014bd, 0x0441: 0xe00014c3, 0x0442: 0x00339688, 0x0443: 0x0033a288, - 0x0444: 0x0033c288, 0x0445: 0x0033fc88, 0x0446: 0xc02a0071, 0x0447: 0x00343688, - 0x0448: 0x00344688, 0x0449: 0x00349a88, 0x044a: 0x0034e488, 0x044b: 0x00356288, - 0x044c: 0x00356a88, 0x044d: 0xe00014cf, 0x044e: 0x00357a88, 0x044f: 0x00365488, - 0x0450: 0xc0090041, 0x0451: 0x00335288, 0x0452: 0x00335a88, 0x0453: 0xc0130092, - 0x0454: 0x00338a88, 0x0455: 0xc01800d1, 0x0456: 0xc01c0071, 0x0457: 0xc0200071, - 0x0458: 0xc0250041, 0x0459: 0x00343e88, 0x045a: 0xc0370092, 0x045b: 0x00348488, - 0x045c: 0x0034a888, 0x045d: 0x0034ba88, 0x045e: 0xc02e0071, 0x045f: 0x00350e88, - 0x0460: 0x00352888, 0x0461: 0x00353a88, 0x0462: 0x00354c88, 0x0463: 0xc03e00f1, - 0x0464: 0x0035ac88, 0x0465: 0x0035b488, 0x0466: 0x00360288, 0x0467: 0xc0440071, - 0x0468: 0x00365c88, 0x0469: 0x00366688, 0x046a: 0x00367488, 0x046b: 0xc0480071, - 0x046c: 0x00368e88, 0x046d: 0xc04c0071, 0x046e: 0x0036b888, 0x046f: 0x0036c488, - 0x0470: 0xc0060041, 0x0471: 0x40335220, 0x0472: 0x40335a20, 0x0473: 0xc0100092, - 0x0474: 0x40338a20, 0x0475: 0xc01600d1, 0x0476: 0xc01a0071, 0x0477: 0xc01e0071, - 0x0478: 0xc0220041, 0x0479: 0x40343e20, 0x047a: 0xc0340092, 0x047b: 0x40348420, - 0x047c: 0x4034a820, 0x047d: 0x4034ba20, 0x047e: 0xc02c0071, 0x047f: 0x40350e20, - // Block 0x12, offset 0x480 - 0x0480: 0x40352820, 0x0481: 0x40353a20, 0x0482: 0x40354c20, 0x0483: 0xc03a00f1, - 0x0484: 0x4035ac20, 0x0485: 0x4035b420, 0x0486: 0x40360220, 0x0487: 0xc0420071, - 0x0488: 0x40365c20, 0x0489: 0x40366620, 0x048a: 0x40367420, 0x048b: 0xc0460071, - 0x048c: 0x40368e20, 0x048d: 0xc04a0071, 0x048e: 0x4036b820, 0x048f: 0x4036c420, - 0x0490: 0xe00014ba, 0x0491: 0xe00014c0, 0x0492: 0x40339620, 0x0493: 0x4033a220, - 0x0494: 0x4033c220, 0x0495: 0x4033fc20, 0x0496: 0xc0280071, 0x0497: 0x40343620, - 0x0498: 0x40344620, 0x0499: 0x40349a20, 0x049a: 0x4034e420, 0x049b: 0x40356220, - 0x049c: 0x40356a20, 0x049d: 0xe00014cc, 0x049e: 0x40357a20, 0x049f: 0x40365420, - 0x04a0: 0x0035e088, 0x04a1: 0x4035e020, 0x04a2: 0x00369e88, 0x04a3: 0x40369e20, - 0x04a4: 0x0036ce88, 0x04a5: 0x4036ce20, 0x04a6: 0x0036d688, 0x04a7: 0x4036d620, - 0x04a8: 0x0036ea88, 0x04a9: 0x4036ea20, 0x04aa: 0x0036e088, 0x04ab: 0x4036e020, - 0x04ac: 0x0036f488, 0x04ad: 0x4036f420, 0x04ae: 0x0036fc88, 0x04af: 0x4036fc20, - 0x04b0: 0x00370488, 0x04b1: 0x40370420, 0x04b2: 0x00370c88, 0x04b3: 0x40370c20, - 0x04b4: 0xc0500131, 0x04b5: 0xc04e0131, 0x04b6: 0x00371c88, 0x04b7: 0x40371c20, - 0x04b8: 0x0035a488, 0x04b9: 0x4035a420, 0x04ba: 0x0035fa88, 0x04bb: 0x4035fa20, - 0x04bc: 0x0035f288, 0x04bd: 0x4035f220, 0x04be: 0x0035e888, 0x04bf: 0x4035e820, - // Block 0x13, offset 0x4c0 - 0x04c0: 0x00352088, 0x04c1: 0x40352020, 0x04c2: 0x40070620, 0x04c3: 0xae608302, - 0x04c4: 0xae605f02, 0x04c5: 0xae602a02, 0x04c6: 0xae602202, 0x04c7: 0xae605f02, - 0x04c8: 0xa0000000, 0x04c9: 0xa0000000, 0x04ca: 0x00341c88, 0x04cb: 0x40341c20, - 0x04cc: 0x00369688, 0x04cd: 0x40369620, 0x04ce: 0x00353088, 0x04cf: 0x40353020, - 0x04d0: 0xe00014b7, 0x04d1: 0xe00014b4, 0x04d2: 0x00336a88, 0x04d3: 0x40336a20, - 0x04d4: 0x00337a88, 0x04d5: 0x40337a20, 0x04d6: 0x0033dc88, 0x04d7: 0x4033dc20, - 0x04d8: 0x0033aa88, 0x04d9: 0x4033aa20, 0x04da: 0x00345888, 0x04db: 0x40345820, - 0x04dc: 0x00347888, 0x04dd: 0x40347820, 0x04de: 0x00347088, 0x04df: 0x40347020, - 0x04e0: 0x00346888, 0x04e1: 0x40346820, 0x04e2: 0x0034ca88, 0x04e3: 0x4034ca20, - 0x04e4: 0x0034dc88, 0x04e5: 0x4034dc20, 0x04e6: 0x00351888, 0x04e7: 0x40351820, - 0x04e8: 0x00372688, 0x04e9: 0x40372620, 0x04ea: 0x00354488, 0x04eb: 0x40354420, - 0x04ec: 0x00355888, 0x04ed: 0x40355820, 0x04ee: 0x00359288, 0x04ef: 0x40359220, - 0x04f0: 0x00359a88, 0x04f1: 0x40359a20, 0x04f2: 0x0035cc88, 0x04f3: 0x4035cc20, - 0x04f4: 0x00360e88, 0x04f5: 0x40360e20, 0x04f6: 0x00362a88, 0x04f7: 0x40362a20, - 0x04f8: 0x00363a88, 0x04f9: 0x40363a20, 0x04fa: 0x0035d488, 0x04fb: 0x4035d420, - 0x04fc: 0x00364488, 0x04fd: 0x40364420, 0x04fe: 0x00364c88, 0x04ff: 0x40364c20, - // Block 0x14, offset 0x500 - 0x0500: 0x00373088, 0x0501: 0xe00014c9, 0x0502: 0xe00014c6, 0x0503: 0x00346088, - 0x0504: 0x40346020, 0x0505: 0x00348e88, 0x0506: 0x40348e20, 0x0507: 0x0034d288, - 0x0508: 0x4034d220, 0x0509: 0x0034c288, 0x050a: 0x4034c220, 0x050b: 0x00363288, - 0x050c: 0x40363220, 0x050d: 0x0034b088, 0x050e: 0x4034b020, 0x050f: 0x40373020, - 0x0510: 0x00332a88, 0x0511: 0x40332a20, 0x0512: 0x00333288, 0x0513: 0x40333220, - 0x0514: 0x00334a88, 0x0515: 0x40334a20, 0x0516: 0x0033ba88, 0x0517: 0x4033ba20, - 0x0518: 0xc00e0071, 0x0519: 0xc00c0071, 0x051a: 0x00334288, 0x051b: 0x40334220, - 0x051c: 0x0033d488, 0x051d: 0x4033d420, 0x051e: 0x0033f288, 0x051f: 0x4033f220, - 0x0520: 0x00340688, 0x0521: 0x40340620, 0x0522: 0xe00014d5, 0x0523: 0xe00014d2, - 0x0524: 0x00342488, 0x0525: 0x40342420, 0x0526: 0x0034f688, 0x0527: 0x4034f620, - 0x0528: 0xc0320071, 0x0529: 0xc0300071, 0x052a: 0x00350688, 0x052b: 0x40350620, - 0x052c: 0x0036b088, 0x052d: 0x4036b020, 0x052e: 0xe00014de, 0x052f: 0xe00014db, - 0x0530: 0x00358288, 0x0531: 0x40358220, 0x0532: 0x00358a88, 0x0533: 0x40358a20, - 0x0534: 0x00362288, 0x0535: 0x40362220, 0x0536: 0x00338288, 0x0537: 0x40338220, - 0x0538: 0x00368688, 0x0539: 0x40368620, 0x053a: 0x00337288, 0x053b: 0x40337220, - 0x053c: 0x0035bc88, 0x053d: 0x4035bc20, 0x053e: 0x0035c488, 0x053f: 0x4035c420, - // Block 0x15, offset 0x540 - 0x0540: 0x00339288, 0x0541: 0x40339220, 0x0542: 0x0033a088, 0x0543: 0x4033a020, - 0x0544: 0x0033ee88, 0x0545: 0x4033ee20, 0x0546: 0x00341088, 0x0547: 0x40341020, - 0x0548: 0x0034a488, 0x0549: 0x4034a420, 0x054a: 0x0034ec88, 0x054b: 0x4034ec20, - 0x054c: 0x00354288, 0x054d: 0x40354220, 0x054e: 0x00355688, 0x054f: 0x40355620, - 0x0550: 0x0033f088, 0x0551: 0x4033f020, 0x0552: 0x00349688, 0x0553: 0x40349620, - 0x0554: 0x0034a688, 0x0555: 0x4034a620, 0x0556: 0x00353888, 0x0557: 0x40353820, - 0x0558: 0x0036cc88, 0x0559: 0x4036cc20, 0x055a: 0x00348288, 0x055b: 0x40348220, - 0x055c: 0x00372e88, 0x055d: 0x40372e20, 0x055e: 0x00348088, 0x055f: 0x40348020, - 0x0560: 0x00349888, 0x0561: 0x40349820, 0x0562: 0x0034da88, 0x0563: 0x4034da20, - 0x0564: 0x00351688, 0x0565: 0x40351620, 0x0566: 0x0035dc88, 0x0567: 0x4035dc20, - 0x0571: 0x00384288, 0x0572: 0x00384488, 0x0573: 0x00384688, - 0x0574: 0x00384888, 0x0575: 0x00384a88, 0x0576: 0x00384c88, 0x0577: 0x00384e88, - 0x0578: 0x00385088, 0x0579: 0x00385288, 0x057a: 0x00385488, 0x057b: 0x00385688, - 0x057c: 0x00385888, 0x057d: 0x00385a88, 0x057e: 0x00385c88, 0x057f: 0x00385e88, - // Block 0x16, offset 0x580 - 0x0580: 0x00386088, 0x0581: 0x00386288, 0x0582: 0x00386488, 0x0583: 0x00386688, - 0x0584: 0x00386888, 0x0585: 0x00386a88, 0x0586: 0x00386c88, 0x0587: 0x00386e88, - 0x0588: 0x00387088, 0x0589: 0x00387288, 0x058a: 0x00387488, 0x058b: 0x00387688, - 0x058c: 0x00387888, 0x058d: 0x00387a88, 0x058e: 0x00387c88, 0x058f: 0x00387e88, - 0x0590: 0x00388088, 0x0591: 0x00388288, 0x0592: 0x00388488, 0x0593: 0x00388688, - 0x0594: 0x00388888, 0x0595: 0x00388a88, 0x0596: 0x00388c88, - 0x0599: 0x40388e20, 0x059a: 0x40054e20, 0x059b: 0x40055020, - 0x059c: 0x4002be20, 0x059d: 0x40024620, 0x059e: 0x4002ca20, 0x059f: 0x40055220, - 0x05a1: 0x40384220, 0x05a2: 0x40384420, 0x05a3: 0x40384620, - 0x05a4: 0x40384820, 0x05a5: 0x40384a20, 0x05a6: 0x40384c20, 0x05a7: 0x40384e20, - 0x05a8: 0x40385020, 0x05a9: 0x40385220, 0x05aa: 0x40385420, 0x05ab: 0x40385620, - 0x05ac: 0x40385820, 0x05ad: 0x40385a20, 0x05ae: 0x40385c20, 0x05af: 0x40385e20, - 0x05b0: 0x40386020, 0x05b1: 0x40386220, 0x05b2: 0x40386420, 0x05b3: 0x40386620, - 0x05b4: 0x40386820, 0x05b5: 0x40386a20, 0x05b6: 0x40386c20, 0x05b7: 0x40386e20, - 0x05b8: 0x40387020, 0x05b9: 0x40387220, 0x05ba: 0x40387420, 0x05bb: 0x40387620, - 0x05bc: 0x40387820, 0x05bd: 0x40387a20, 0x05be: 0x40387c20, 0x05bf: 0x40387e20, - // Block 0x17, offset 0x5c0 - 0x05c0: 0x40388020, 0x05c1: 0x40388220, 0x05c2: 0x40388420, 0x05c3: 0x40388620, - 0x05c4: 0x40388820, 0x05c5: 0x40388a20, 0x05c6: 0x40388c20, 0x05c7: 0xf0000404, - 0x05c9: 0x40026e20, 0x05ca: 0x40021c20, - 0x05cf: 0x4027e420, - 0x05d1: 0xadc00000, 0x05d2: 0xae600000, 0x05d3: 0xae600000, - 0x05d4: 0xae600000, 0x05d5: 0xae600000, 0x05d6: 0xadc00000, 0x05d7: 0xae600000, - 0x05d8: 0xae600000, 0x05d9: 0xae600000, 0x05da: 0xade00000, 0x05db: 0xadc00000, - 0x05dc: 0xae600000, 0x05dd: 0xae600000, 0x05de: 0xae600000, 0x05df: 0xae600000, - 0x05e0: 0xae600000, 0x05e1: 0xae600000, 0x05e2: 0xadc00000, 0x05e3: 0xadc00000, - 0x05e4: 0xadc00000, 0x05e5: 0xadc00000, 0x05e6: 0xadc00000, 0x05e7: 0xadc00000, - 0x05e8: 0xae600000, 0x05e9: 0xae600000, 0x05ea: 0xadc00000, 0x05eb: 0xae600000, - 0x05ec: 0xae600000, 0x05ed: 0xade00000, 0x05ee: 0xae400000, 0x05ef: 0xae600000, - 0x05f0: 0xa0a08502, 0x05f1: 0xa0b08602, 0x05f2: 0xa0c08702, 0x05f3: 0xa0d08802, - 0x05f4: 0xa0e08902, 0x05f5: 0xa0f08a02, 0x05f6: 0xa1008b02, 0x05f7: 0xa1108c02, - 0x05f8: 0xa1208d02, 0x05f9: 0xa1308e02, 0x05fa: 0xa1308e02, 0x05fb: 0xa1408f02, - 0x05fc: 0xa1509202, 0x05fd: 0xa1600000, 0x05fe: 0x40055420, 0x05ff: 0xa1709502, - // Block 0x18, offset 0x600 - 0x0600: 0x40055620, 0x0601: 0xa1809102, 0x0602: 0xa1909002, 0x0603: 0x40055820, - 0x0604: 0xae600000, 0x0605: 0xadc00000, 0x0606: 0x40055a20, 0x0607: 0xa1208d02, - 0x0610: 0x40389020, 0x0611: 0x40389220, 0x0612: 0x40389420, 0x0613: 0x40389620, - 0x0614: 0x40389820, 0x0615: 0x40389a20, 0x0616: 0x40389c20, 0x0617: 0x40389e20, - 0x0618: 0x4038a020, 0x0619: 0x4038a220, 0x061a: 0x0038a499, 0x061b: 0x4038a420, - 0x061c: 0x4038a620, 0x061d: 0x0038a899, 0x061e: 0x4038a820, 0x061f: 0x0038aa99, - 0x0620: 0x4038aa20, 0x0621: 0x4038ac20, 0x0622: 0x4038ae20, 0x0623: 0x0038b099, - 0x0624: 0x4038b020, 0x0625: 0x0038b299, 0x0626: 0x4038b220, 0x0627: 0x4038b420, - 0x0628: 0x4038b620, 0x0629: 0x4038b820, 0x062a: 0x4038ba20, - 0x0630: 0xe00014ff, 0x0631: 0xe0001502, 0x0632: 0xe0001511, 0x0633: 0x40055c20, - 0x0634: 0x40055e20, - // Block 0x19, offset 0x640 - 0x0640: 0xa0000000, 0x0641: 0xa0000000, 0x0642: 0xa0000000, 0x0643: 0xa0000000, - 0x0644: 0xa0000000, 0x0646: 0x40096620, 0x0647: 0x40096a20, - 0x0648: 0x40070820, 0x0649: 0x4004f220, 0x064a: 0x4004f620, 0x064b: 0x4027e620, - 0x064c: 0x40024820, 0x064d: 0x40024a20, 0x064e: 0x40070e20, 0x064f: 0x40071020, - 0x0650: 0xae600000, 0x0651: 0xae600000, 0x0652: 0xae600000, 0x0653: 0xae600000, - 0x0654: 0xae600000, 0x0655: 0xae600000, 0x0656: 0xae600000, 0x0657: 0xae600000, - 0x0658: 0xa1e00000, 0x0659: 0xa1f00000, 0x065a: 0xa2000000, 0x065b: 0x40026420, - 0x065e: 0x40027020, 0x065f: 0x4002cc20, - 0x0660: 0x403aa220, 0x0661: 0x40391c20, 0x0662: 0x40391e20, 0x0663: 0x40392020, - 0x0664: 0x40392620, 0x0665: 0x40392820, 0x0666: 0x40393020, 0x0667: 0xc0520151, - 0x0668: 0x40393c20, 0x0669: 0x40395420, 0x066a: 0x40395620, 0x066b: 0x40395820, - 0x066c: 0x40396420, 0x066d: 0x40397220, 0x066e: 0x40397420, 0x066f: 0x40398820, - 0x0670: 0x40398a20, 0x0671: 0x4039a420, 0x0672: 0x4039a620, 0x0673: 0x4039c620, - 0x0674: 0x4039c820, 0x0675: 0x4039dc20, 0x0676: 0x4039de20, 0x0677: 0x4039e620, - 0x0678: 0x4039e820, 0x0679: 0x4039ee20, 0x067a: 0x4039f020, 0x067b: 0x403a3820, - 0x067c: 0x403a3a20, 0x067d: 0x403a9c20, 0x067e: 0x403a9e20, 0x067f: 0x403aa020, - // Block 0x1a, offset 0x680 - 0x0680: 0xa0000000, 0x0681: 0x4039fc20, 0x0682: 0x403a1220, 0x0683: 0x403a1a20, - 0x0684: 0x403a4020, 0x0685: 0x403a4e20, 0x0686: 0x403a5620, 0x0687: 0x403a6820, - 0x0688: 0xc0560171, 0x0689: 0x403a8e20, 0x068a: 0xc0580171, 0x068b: 0xa1b0a202, - 0x068c: 0xa1c0a502, 0x068d: 0xa1d0a902, 0x068e: 0xa1e0ad02, 0x068f: 0xa1f0b202, - 0x0690: 0xa200b602, 0x0691: 0xa210ba02, 0x0692: 0xa220bc02, 0x0693: 0xae60bd02, - 0x0694: 0xae60be02, 0x0695: 0xadc0bf02, 0x0696: 0xadc0c102, 0x0697: 0xae60c202, - 0x0698: 0xae60c302, 0x0699: 0xae60c402, 0x069a: 0xae60c502, 0x069b: 0xae60c602, - 0x069c: 0xadc0c702, 0x069d: 0xae60c802, 0x069e: 0xae60c902, 0x069f: 0xadc0c002, - 0x06a0: 0xe000015e, 0x06a1: 0xe00001e6, 0x06a2: 0xe0000301, 0x06a3: 0xe00003db, - 0x06a4: 0xe00004b6, 0x06a5: 0xe0000580, 0x06a6: 0xe000064b, 0x06a7: 0xe00006f3, - 0x06a8: 0xe000079f, 0x06a9: 0xe0000844, 0x06aa: 0x4004ee20, 0x06ab: 0x40024c20, - 0x06ac: 0x40024e20, 0x06ad: 0x4004de20, 0x06ae: 0x40393a20, 0x06af: 0x403a1020, - 0x06b0: 0xa230d102, 0x06b1: 0x40392420, 0x06b2: 0x40392220, 0x06b3: 0x40392a20, - 0x06b4: 0x00391c84, 0x06b5: 0xf0000404, 0x06b6: 0xf0000404, 0x06b7: 0xf0000404, - 0x06b8: 0xf0000404, 0x06b9: 0x40395a20, 0x06ba: 0x40395c20, 0x06bb: 0x40393e20, - 0x06bc: 0x40395e20, 0x06bd: 0x40396020, 0x06be: 0x40394020, 0x06bf: 0x40396220, - // Block 0x1b, offset 0x6c0 - 0x06c0: 0x40394220, 0x06c1: 0x40397620, 0x06c2: 0x40397820, 0x06c3: 0x40396620, - 0x06c4: 0x40396820, 0x06c5: 0x40397a20, 0x06c6: 0x40396a20, 0x06c7: 0x40396e20, - 0x06c8: 0x40398c20, 0x06c9: 0x40398e20, 0x06ca: 0x40399020, 0x06cb: 0x40399220, - 0x06cc: 0x40399420, 0x06cd: 0x40399620, 0x06ce: 0x40399820, 0x06cf: 0x40399a20, - 0x06d0: 0x40399c20, 0x06d1: 0x4039a820, 0x06d2: 0x4039aa20, 0x06d3: 0x4039ac20, - 0x06d4: 0x4039ae20, 0x06d5: 0x4039b020, 0x06d6: 0x4039b220, 0x06d7: 0x4039b420, - 0x06d8: 0x4039b620, 0x06d9: 0x4039b820, 0x06da: 0x4039ca20, 0x06db: 0x4039cc20, - 0x06dc: 0x4039ce20, 0x06dd: 0x4039e020, 0x06de: 0x4039e220, 0x06df: 0x4039ea20, - 0x06e0: 0x4039f220, 0x06e1: 0x4039fe20, 0x06e2: 0x403a0020, 0x06e3: 0x403a0220, - 0x06e4: 0x403a0420, 0x06e5: 0x403a0820, 0x06e6: 0x403a0a20, 0x06e7: 0x403a1420, - 0x06e8: 0x403a1620, 0x06e9: 0x403a1c20, 0x06ea: 0x403a1e20, 0x06eb: 0x403a2020, - 0x06ec: 0x403a2220, 0x06ed: 0x403a2620, 0x06ee: 0x403a2820, 0x06ef: 0x403a2a20, - 0x06f0: 0x403a2c20, 0x06f1: 0x403a2e20, 0x06f2: 0x403a3020, 0x06f3: 0x403a3220, - 0x06f4: 0x403a3420, 0x06f5: 0x403a4220, 0x06f6: 0x403a4420, 0x06f7: 0x403a4620, - 0x06f8: 0x403a4820, 0x06f9: 0x403a6020, 0x06fa: 0x403a5820, 0x06fb: 0x403a5a20, - 0x06fc: 0x403a5c20, 0x06fd: 0x403a5e20, 0x06fe: 0x403a6a20, 0x06ff: 0x40396c20, - // Block 0x1c, offset 0x700 - 0x0700: 0xe00017e4, 0x0701: 0x403a6c20, 0x0702: 0xe00017e1, 0x0703: 0x403a6e20, - 0x0704: 0x403a7620, 0x0705: 0x403a7820, 0x0706: 0x403a7a20, 0x0707: 0x403a7c20, - 0x0708: 0x403a7e20, 0x0709: 0x403a8020, 0x070a: 0x403a8220, 0x070b: 0x403a8420, - 0x070c: 0x403a9220, 0x070d: 0x403a9420, 0x070e: 0x403a9620, 0x070f: 0x403a8620, - 0x0710: 0x403a9820, 0x0711: 0x403a9a20, 0x0712: 0x403aaa20, 0x0713: 0xe0001800, - 0x0714: 0x4002e820, 0x0715: 0x403a7220, 0x0716: 0xae600000, 0x0717: 0xae600000, - 0x0718: 0xae600000, 0x0719: 0xae600000, 0x071a: 0xae600000, 0x071b: 0xae600000, - 0x071c: 0xae600000, 0x071d: 0xa0000000, 0x071e: 0x40071220, 0x071f: 0xae600000, - 0x0720: 0xae600000, 0x0721: 0xae600000, 0x0722: 0xae600000, 0x0723: 0xadc00000, - 0x0724: 0xae600000, 0x0725: 0x003a7484, 0x0726: 0x003a9084, 0x0727: 0xae600000, - 0x0728: 0xae600000, 0x0729: 0x40071420, 0x072a: 0xadc00000, 0x072b: 0xae600000, - 0x072c: 0xae600000, 0x072d: 0xadc00000, 0x072e: 0x40399e20, 0x072f: 0x4039ba20, - 0x0730: 0xe0000161, 0x0731: 0xe00001e9, 0x0732: 0xe0000304, 0x0733: 0xe00003de, - 0x0734: 0xe00004b9, 0x0735: 0xe0000583, 0x0736: 0xe000064e, 0x0737: 0xe00006f6, - 0x0738: 0xe00007a2, 0x0739: 0xe0000847, 0x073a: 0x4039d020, 0x073b: 0x4039e420, - 0x073c: 0x4039f420, 0x073d: 0xe0001553, 0x073e: 0xe0001779, 0x073f: 0x403a7020, - // Block 0x1d, offset 0x740 - 0x0740: 0x40035c20, 0x0741: 0x4002ea20, 0x0742: 0x4002ec20, 0x0743: 0x40027220, - 0x0744: 0x40027420, 0x0745: 0x40027620, 0x0746: 0x40027820, 0x0747: 0x40027a20, - 0x0748: 0x40027c20, 0x0749: 0x4002ce20, 0x074a: 0x40056020, 0x074b: 0x40056220, - 0x074c: 0x40056420, 0x074d: 0x40056620, 0x074f: 0xa0000000, - 0x0750: 0x403ab020, 0x0751: 0xa240d202, 0x0752: 0x403ab220, 0x0753: 0x403ab420, - 0x0754: 0xe0001806, 0x0755: 0x403ab820, 0x0756: 0x403ab620, 0x0757: 0x403aba20, - 0x0758: 0x403abc20, 0x0759: 0x403abe20, 0x075a: 0x403ac220, 0x075b: 0x403ac420, - 0x075c: 0xe000180f, 0x075d: 0x403ac620, 0x075e: 0x403ac820, 0x075f: 0x403aca20, - 0x0760: 0x403ace20, 0x0761: 0x403ad020, 0x0762: 0x403ad220, 0x0763: 0x403ad420, - 0x0764: 0x003ad499, 0x0765: 0x403ad620, 0x0766: 0x403ad820, 0x0767: 0xe0001812, - 0x0768: 0x403adc20, 0x0769: 0x403ade20, 0x076a: 0x403ae020, 0x076b: 0x403ae220, - 0x076c: 0x403ae420, 0x076d: 0xe0001803, 0x076e: 0xe0001809, 0x076f: 0xe000180c, - 0x0770: 0xae60d302, 0x0771: 0xadc0d402, 0x0772: 0xae60d502, 0x0773: 0xae60d602, - 0x0774: 0xadc0d702, 0x0775: 0xae60d802, 0x0776: 0xae60d902, 0x0777: 0xadc0da02, - 0x0778: 0xadc0db02, 0x0779: 0xadc0dc02, 0x077a: 0xae60dd02, 0x077b: 0xadc0de02, - 0x077c: 0xadc0df02, 0x077d: 0xae60e002, 0x077e: 0xadc0e102, 0x077f: 0xae60e202, - // Block 0x1e, offset 0x780 - 0x0780: 0xae600000, 0x0781: 0xae605f02, 0x0782: 0xadc06002, 0x0783: 0xae600000, - 0x0784: 0xadc00000, 0x0785: 0xae605f02, 0x0786: 0xadc06002, 0x0787: 0xae600000, - 0x0788: 0xadc00000, 0x0789: 0xae600000, 0x078a: 0xae600000, - 0x078d: 0x403ac020, 0x078e: 0x403acc20, 0x078f: 0x403ada20, - 0x0790: 0x40394420, 0x0791: 0x40394620, 0x0792: 0x40394820, 0x0793: 0x40394a20, - 0x0794: 0x40394c20, 0x0795: 0x40394e20, 0x0796: 0x40395220, 0x0797: 0x40397c20, - 0x0798: 0x40397e20, 0x0799: 0x4039a020, 0x079a: 0x4039a220, 0x079b: 0x4039bc20, - 0x079c: 0x4039d220, 0x079d: 0x4039f620, 0x079e: 0x4039f820, 0x079f: 0x4039fa20, - 0x07a0: 0x403a0c20, 0x07a1: 0x403a0e20, 0x07a2: 0x403a3620, 0x07a3: 0x403a3c20, - 0x07a4: 0x403a3e20, 0x07a5: 0x403a5020, 0x07a6: 0x403a5220, 0x07a7: 0x403a6220, - 0x07a8: 0x403a6420, 0x07a9: 0x403a6620, 0x07aa: 0x403a4a20, 0x07ab: 0x4039be20, - 0x07ac: 0x4039c020, 0x07ad: 0x4039d420, 0x07ae: 0x40398020, 0x07af: 0x40398220, - 0x07b0: 0x4039d620, 0x07b1: 0x4039c220, 0x07b2: 0x40398420, 0x07b3: 0x40392c20, - 0x07b4: 0x40392e20, 0x07b5: 0x403aa420, 0x07b6: 0x403aa620, 0x07b7: 0x403aa820, - 0x07b8: 0x403a8820, 0x07b9: 0x403a8a20, 0x07ba: 0x403aac20, 0x07bb: 0x403aae20, - 0x07bc: 0x40398620, 0x07bd: 0x4039d820, 0x07be: 0x4039da20, 0x07bf: 0x403a2420, - // Block 0x1f, offset 0x7c0 - 0x07c0: 0x403b1820, 0x07c1: 0x403b1e20, 0x07c2: 0x403b2020, 0x07c3: 0x403b2220, - 0x07c4: 0x403b2620, 0x07c5: 0x403b2820, 0x07c6: 0x403b2a20, 0x07c7: 0x403b2c20, - 0x07c8: 0x403b3220, 0x07c9: 0x403b3620, 0x07ca: 0x403b3820, 0x07cb: 0x403b3a20, - 0x07cc: 0x403b3e20, 0x07cd: 0x403b4620, 0x07ce: 0x403b4820, 0x07cf: 0x403b4c20, - 0x07d0: 0x403b4e20, 0x07d1: 0x403b5620, 0x07d2: 0x403b5820, 0x07d3: 0x403b5a20, - 0x07d4: 0x403b5c20, 0x07d5: 0x403b5e20, 0x07d6: 0x403b6020, 0x07d7: 0x403b6220, - 0x07d8: 0x403b4020, 0x07d9: 0x403b1a20, 0x07da: 0x403b1c20, 0x07db: 0x403b3c20, - 0x07dc: 0x403b2420, 0x07dd: 0x403b5020, 0x07de: 0x403b5220, 0x07df: 0x403b5420, - 0x07e0: 0x403b4220, 0x07e1: 0x403b4420, 0x07e2: 0x403b2e20, 0x07e3: 0x403b3020, - 0x07e4: 0x403b4a20, 0x07e5: 0x403b3420, 0x07e6: 0x403b6620, 0x07e7: 0x403b6820, - 0x07e8: 0x403b6a20, 0x07e9: 0x403b6c20, 0x07ea: 0x403b6e20, 0x07eb: 0x403b7020, - 0x07ec: 0x403b7220, 0x07ed: 0x403b7420, 0x07ee: 0x403b7620, 0x07ef: 0x403b7820, - 0x07f0: 0x403b7a20, 0x07f1: 0x403b6420, - // Block 0x20, offset 0x800 - 0x0800: 0xe0000164, 0x0801: 0xe00001ef, 0x0802: 0xe000030a, 0x0803: 0xe00003e4, - 0x0804: 0xe00004bf, 0x0805: 0xe0000589, 0x0806: 0xe0000654, 0x0807: 0xe00006fc, - 0x0808: 0xe00007a8, 0x0809: 0xe000084d, 0x080a: 0x403b7c20, 0x080b: 0x403b7e20, - 0x080c: 0x403b8020, 0x080d: 0x403b8220, 0x080e: 0x403b8420, 0x080f: 0x403b8620, - 0x0810: 0x403b8820, 0x0811: 0x403b8a20, 0x0812: 0x403b8c20, 0x0813: 0x403b8e20, - 0x0814: 0x403b9020, 0x0815: 0x403b9220, 0x0816: 0x403b9420, 0x0817: 0x403b9620, - 0x0818: 0x403b9820, 0x0819: 0x403b9a20, 0x081a: 0x403b9c20, 0x081b: 0x403b9e20, - 0x081c: 0x403ba020, 0x081d: 0x403ba220, 0x081e: 0x403ba420, 0x081f: 0x403ba620, - 0x0820: 0x403ba820, 0x0821: 0x403baa20, 0x0822: 0x403bac20, 0x0823: 0x403bae20, - 0x0824: 0x403bb020, 0x0825: 0x403bb220, 0x0826: 0x403bb420, 0x0827: 0x403bb620, - 0x0828: 0xe0001815, 0x0829: 0xe0001818, 0x082a: 0xe000181b, 0x082b: 0xae60e302, - 0x082c: 0xae60e402, 0x082d: 0xae60e502, 0x082e: 0xae60e602, 0x082f: 0xae60e702, - 0x0830: 0xae60e802, 0x0831: 0xae60e902, 0x0832: 0xadc0ea02, 0x0833: 0xae60eb02, - 0x0834: 0x403bb820, 0x0835: 0x403bba20, 0x0836: 0x40073820, 0x0837: 0x40035e20, - 0x0838: 0x40025020, 0x0839: 0x4002c020, 0x083a: 0xa0000000, - // Block 0x21, offset 0x840 - 0x0840: 0x4038e820, 0x0841: 0x4038ea20, 0x0842: 0x4038ec20, 0x0843: 0x4038ee20, - 0x0844: 0x4038f020, 0x0845: 0x4038f220, 0x0846: 0x4038f420, 0x0847: 0x4038f620, - 0x0848: 0x4038f820, 0x0849: 0x4038fa20, 0x084a: 0x4038fc20, 0x084b: 0x4038fe20, - 0x084c: 0x40390020, 0x084d: 0x40390220, 0x084e: 0x40390420, 0x084f: 0x40390620, - 0x0850: 0x40390820, 0x0851: 0x40390a20, 0x0852: 0x40390c20, 0x0853: 0x40390e20, - 0x0854: 0x40391020, 0x0855: 0x40391220, 0x0856: 0x82e61c8a, 0x0857: 0x82e61c8b, - 0x0858: 0xae609f02, 0x0859: 0xae60a002, 0x085a: 0x40391820, 0x085b: 0x82e61c8d, - 0x085c: 0xae609702, 0x085d: 0xae609702, 0x085e: 0xae609802, 0x085f: 0xae609802, - 0x0860: 0xae609802, 0x0861: 0xae609902, 0x0862: 0xae609902, 0x0863: 0xae609902, - 0x0864: 0xa0009a02, 0x0865: 0xae609a02, 0x0866: 0xae609b02, 0x0867: 0xae609b02, - 0x0868: 0xa0009c02, 0x0869: 0xae609c02, 0x086a: 0xae609c02, 0x086b: 0xae609d02, - 0x086c: 0xae609e02, 0x086d: 0xae60a102, - 0x0870: 0x40027e20, 0x0871: 0x40028020, 0x0872: 0x40028220, 0x0873: 0x40028420, - 0x0874: 0x40028620, 0x0875: 0x40028820, 0x0876: 0x40028a20, 0x0877: 0x40028c20, - 0x0878: 0x40028e20, 0x0879: 0x40029020, 0x087a: 0x40029220, 0x087b: 0x40029420, - 0x087c: 0x40029620, 0x087d: 0x40029820, 0x087e: 0x40029a20, - // Block 0x22, offset 0x880 - 0x0880: 0x403ae620, 0x0881: 0x403ae820, 0x0882: 0x403aea20, 0x0883: 0x403aec20, - 0x0884: 0x403aee20, 0x0885: 0x403af020, 0x0886: 0x403af220, 0x0887: 0x403af420, - 0x0888: 0x403af620, 0x0889: 0x403af820, 0x088a: 0x403afa20, 0x088b: 0x403afc20, - 0x088c: 0x403afe20, 0x088d: 0x403b0020, 0x088e: 0x403b0220, 0x088f: 0x403b0420, - 0x0890: 0x403b0620, 0x0891: 0x403b0820, 0x0892: 0x403b0a20, 0x0893: 0x403b0c20, - 0x0894: 0x403b0e20, 0x0895: 0x403b1020, 0x0896: 0x403b1220, 0x0897: 0x403b1420, - 0x0898: 0x403b1620, 0x0899: 0xadc06002, 0x089a: 0xadc06002, 0x089b: 0xadc06002, - 0x089e: 0x40056820, - // Block 0x23, offset 0x8c0 - 0x08e0: 0x40395020, 0x08e2: 0x40397020, 0x08e3: 0x4039ec20, - 0x08e4: 0x403a0620, 0x08e5: 0x403a1820, 0x08e6: 0x403a4c20, 0x08e7: 0x403a5420, - 0x08e8: 0x40393220, 0x08e9: 0x40393420, 0x08ea: 0x4039c420, 0x08eb: 0x403a8c20, - 0x08ec: 0x40393620, - // Block 0x24, offset 0x900 - 0x0924: 0xae60af02, 0x0925: 0xae60b402, 0x0926: 0xadc0b802, 0x0927: 0xae60a402, - 0x0928: 0xae60a802, 0x0929: 0xadc0ac02, 0x092a: 0xae600000, 0x092b: 0xae600000, - 0x092c: 0xae600000, 0x092d: 0xadc00000, 0x092e: 0xadc00000, 0x092f: 0xadc00000, - 0x0930: 0xa1b0a302, 0x0931: 0xa1c0a702, 0x0932: 0xa1d0ab02, 0x0933: 0xae600000, - 0x0934: 0xae60b002, 0x0935: 0xae60b102, 0x0936: 0xadc0b902, 0x0937: 0xae60ca02, - 0x0938: 0xae60cb02, 0x0939: 0xadc0cf02, 0x093a: 0xadc0d002, 0x093b: 0xae60cd02, - 0x093c: 0xae60ce02, 0x093d: 0xae60cc02, 0x093e: 0xae60b502, - // Block 0x25, offset 0x940 - 0x0940: 0xa000f202, 0x0941: 0xa000f202, 0x0942: 0xa000f302, 0x0943: 0xa000f402, - 0x0944: 0x403fbc20, 0x0945: 0x403fbe20, 0x0946: 0x403fc020, 0x0947: 0x403fcc20, - 0x0948: 0x403fce20, 0x0949: 0x403fd020, 0x094a: 0x403fd220, 0x094b: 0x403fd420, - 0x094c: 0x403fd820, 0x094d: 0x403fdc20, 0x094e: 0x403fde20, 0x094f: 0x403fe020, - 0x0950: 0x403fe220, 0x0951: 0x403fe420, 0x0952: 0x403fe620, 0x0953: 0x403fe820, - 0x0954: 0x403fea20, 0x0955: 0x403fec20, 0x0956: 0x403fee20, 0x0957: 0x403ff020, - 0x0958: 0x403ff420, 0x0959: 0x403ff620, 0x095a: 0x403ff820, 0x095b: 0x403ffa20, - 0x095c: 0x403ffc20, 0x095d: 0x40400220, 0x095e: 0x40400420, 0x095f: 0x40400620, - 0x0960: 0x40400820, 0x0961: 0x40400a20, 0x0962: 0x40400e20, 0x0963: 0x40401020, - 0x0964: 0x40401220, 0x0965: 0x40401420, 0x0966: 0x40401620, 0x0967: 0x40401820, - 0x0968: 0x40401a20, 0x0969: 0xe0001830, 0x096a: 0x40401c20, 0x096b: 0x40401e20, - 0x096c: 0x40402020, 0x096d: 0x40402420, 0x096e: 0x40402620, 0x096f: 0x40402820, - 0x0970: 0x40402c20, 0x0971: 0xe0001839, 0x0972: 0x40402e20, 0x0973: 0x40403020, - 0x0974: 0xe000183c, 0x0975: 0x40403220, 0x0976: 0x40403420, 0x0977: 0x40403620, - 0x0978: 0x40403820, 0x0979: 0x40403a20, 0x097a: 0x40404c20, 0x097b: 0x40404e20, - 0x097c: 0xa070f102, 0x097d: 0x40403c20, 0x097e: 0x40404a20, 0x097f: 0x40405620, - // Block 0x26, offset 0x980 - 0x0980: 0x40405820, 0x0981: 0x40405a20, 0x0982: 0x40405c20, 0x0983: 0x40405e20, - 0x0984: 0x40406020, 0x0985: 0x40406620, 0x0986: 0x40406a20, 0x0987: 0x40406c20, - 0x0988: 0x40407020, 0x0989: 0x40407220, 0x098a: 0x40407420, 0x098b: 0x40407620, - 0x098c: 0x40407820, 0x098d: 0x8209203d, 0x098e: 0x40406e20, 0x098f: 0x40405020, - 0x0990: 0x403fb820, 0x0991: 0xae600000, 0x0992: 0xadc00000, 0x0993: 0xae603502, - 0x0994: 0xae603202, 0x0995: 0x40406820, 0x0996: 0x40405220, 0x0997: 0x40405420, - 0x0998: 0xe000181e, 0x0999: 0xe0001821, 0x099a: 0xe0001824, 0x099b: 0xe0001827, - 0x099c: 0xe000182a, 0x099d: 0xe000182d, 0x099e: 0xe0001833, 0x099f: 0xe0001836, - 0x09a0: 0x403fd620, 0x09a1: 0x403fda20, 0x09a2: 0x40406220, 0x09a3: 0x40406420, - 0x09a4: 0x40030c20, 0x09a5: 0x40030e20, 0x09a6: 0xe000016a, 0x09a7: 0xe00001f8, - 0x09a8: 0xe0000313, 0x09a9: 0xe00003ed, 0x09aa: 0xe00004c8, 0x09ab: 0xe0000592, - 0x09ac: 0xe000065d, 0x09ad: 0xe0000705, 0x09ae: 0xe00007b1, 0x09af: 0xe0000856, - 0x09b0: 0x40056c20, 0x09b1: 0x4027b620, 0x09b2: 0x403fba20, 0x09b3: 0x403fc220, - 0x09b4: 0x403fc420, 0x09b5: 0x403fc620, 0x09b6: 0x403fc820, 0x09b7: 0x403fca20, - 0x09b9: 0x403ffe20, 0x09ba: 0x40402a20, 0x09bb: 0x403ff220, - 0x09bc: 0x40400020, 0x09bd: 0x40403e20, 0x09be: 0x40400c20, 0x09bf: 0x40402220, - // Block 0x27, offset 0x9c0 - 0x09c1: 0xa000f202, 0x09c2: 0xa000f302, 0x09c3: 0xa000f402, - 0x09c5: 0x40407c20, 0x09c6: 0x40407e20, 0x09c7: 0x40408020, - 0x09c8: 0x40408220, 0x09c9: 0x40408420, 0x09ca: 0x40408620, 0x09cb: 0x40408820, - 0x09cc: 0x40408c20, 0x09cf: 0x40409020, - 0x09d0: 0x40409220, 0x09d3: 0x40409420, - 0x09d4: 0x40409620, 0x09d5: 0x40409820, 0x09d6: 0x40409a20, 0x09d7: 0x40409c20, - 0x09d8: 0x40409e20, 0x09d9: 0x4040a020, 0x09da: 0x4040a220, 0x09db: 0x4040a420, - 0x09dc: 0x4040a620, 0x09dd: 0x4040a820, 0x09de: 0x4040aa20, 0x09df: 0x4040ac20, - 0x09e0: 0x4040ae20, 0x09e1: 0x4040b020, 0x09e2: 0x4040b220, 0x09e3: 0x4040b420, - 0x09e4: 0x4040b620, 0x09e5: 0x4040b820, 0x09e6: 0x4040ba20, 0x09e7: 0x4040bc20, - 0x09e8: 0x4040be20, 0x09ea: 0x4040c020, 0x09eb: 0x4040c220, - 0x09ec: 0x4040c420, 0x09ed: 0x4040c620, 0x09ee: 0x4040c820, 0x09ef: 0x4040ca20, - 0x09f0: 0x4040cc20, 0x09f2: 0x4040d020, - 0x09f6: 0x4040d420, 0x09f7: 0x4040d620, - 0x09f8: 0x4040d820, 0x09f9: 0x4040da20, - 0x09fc: 0xa070f102, 0x09fd: 0x4040dc20, 0x09fe: 0x4040de20, 0x09ff: 0x4040e020, - // Block 0x28, offset 0xa00 - 0x0a00: 0x4040e220, 0x0a01: 0x4040e420, 0x0a02: 0x4040e620, 0x0a03: 0x4040e820, - 0x0a04: 0x4040ea20, 0x0a07: 0xc05a0191, - 0x0a08: 0x4040f220, 0x0a0b: 0x4040f420, - 0x0a0c: 0x4040f620, 0x0a0d: 0x8209207c, 0x0a0e: 0xe0001845, - 0x0a17: 0x4040fa20, - 0x0a1c: 0xe000183f, 0x0a1d: 0xe0001842, 0x0a1f: 0xe0001848, - 0x0a20: 0x40408a20, 0x0a21: 0x40408e20, 0x0a22: 0x4040ec20, 0x0a23: 0x4040ee20, - 0x0a26: 0xe000016d, 0x0a27: 0xe00001fb, - 0x0a28: 0xe0000316, 0x0a29: 0xe00003f0, 0x0a2a: 0xe00004cb, 0x0a2b: 0xe0000595, - 0x0a2c: 0xe0000660, 0x0a2d: 0xe0000708, 0x0a2e: 0xe00007b4, 0x0a2f: 0xe0000859, - 0x0a30: 0x4040ce20, 0x0a31: 0x4040d220, 0x0a32: 0x4027e820, 0x0a33: 0x4027ea20, - 0x0a34: 0x40283020, 0x0a35: 0x40283220, 0x0a36: 0x40283420, 0x0a37: 0x40283620, - 0x0a38: 0x40283820, 0x0a39: 0x40283a20, 0x0a3a: 0x40073a20, 0x0a3b: 0x4027ec20, - // Block 0x29, offset 0xa40 - 0x0a41: 0xa000f202, 0x0a42: 0xa000f302, 0x0a43: 0xa000f402, - 0x0a45: 0x40410620, 0x0a46: 0x40410820, 0x0a47: 0x40411020, - 0x0a48: 0x40411220, 0x0a49: 0x40410020, 0x0a4a: 0x40410220, - 0x0a4f: 0x40411420, - 0x0a50: 0x40410a20, 0x0a53: 0x40410420, - 0x0a54: 0x40410c20, 0x0a55: 0x40411c20, 0x0a56: 0x40411e20, 0x0a57: 0x40412020, - 0x0a58: 0x40412220, 0x0a59: 0x40412420, 0x0a5a: 0x40412620, 0x0a5b: 0x40412820, - 0x0a5c: 0x40412a20, 0x0a5d: 0x40412c20, 0x0a5e: 0x40412e20, 0x0a5f: 0x40413020, - 0x0a60: 0x40413220, 0x0a61: 0x40413420, 0x0a62: 0x40413620, 0x0a63: 0x40413820, - 0x0a64: 0x40413a20, 0x0a65: 0x40413c20, 0x0a66: 0x40413e20, 0x0a67: 0x40414020, - 0x0a68: 0x40414220, 0x0a6a: 0x40414420, 0x0a6b: 0x40414620, - 0x0a6c: 0x40414820, 0x0a6d: 0x40414a20, 0x0a6e: 0x40414c20, 0x0a6f: 0x40414e20, - 0x0a70: 0x40415220, 0x0a72: 0x40415420, 0x0a73: 0xe000185a, - 0x0a75: 0x40415620, 0x0a76: 0xe000184b, - 0x0a78: 0x40411620, 0x0a79: 0x40411820, - 0x0a7c: 0xa070f102, 0x0a7e: 0x40415a20, 0x0a7f: 0x40415c20, - // Block 0x2a, offset 0xa80 - 0x0a80: 0x40415e20, 0x0a81: 0x40416020, 0x0a82: 0x40416220, - 0x0a87: 0x40416420, - 0x0a88: 0x40416620, 0x0a8b: 0x40416820, - 0x0a8c: 0x40416a20, 0x0a8d: 0x820920b6, - 0x0a91: 0x40411a20, - 0x0a99: 0xe000184e, 0x0a9a: 0xe0001851, 0x0a9b: 0xe0001854, - 0x0a9c: 0x40415820, 0x0a9e: 0xe0001857, - 0x0aa6: 0xe0000170, 0x0aa7: 0xe00001fe, - 0x0aa8: 0xe0000319, 0x0aa9: 0xe00003f3, 0x0aaa: 0xe00004ce, 0x0aab: 0xe0000598, - 0x0aac: 0xe0000663, 0x0aad: 0xe000070b, 0x0aae: 0xe00007b7, 0x0aaf: 0xe000085c, - 0x0ab0: 0xa000f502, 0x0ab1: 0xa000f602, 0x0ab2: 0x40410e20, 0x0ab3: 0x4040fe20, - 0x0ab4: 0x4040fc20, 0x0ab5: 0x40415020, - // Block 0x2b, offset 0xac0 - 0x0ac1: 0xa000f202, 0x0ac2: 0xa000f302, 0x0ac3: 0xa000f402, - 0x0ac5: 0x40417020, 0x0ac6: 0x40417220, 0x0ac7: 0x40417420, - 0x0ac8: 0x40417620, 0x0ac9: 0x40417820, 0x0aca: 0x40417a20, 0x0acb: 0x40417c20, - 0x0acc: 0x40418020, 0x0acd: 0x40418420, 0x0acf: 0x40418620, - 0x0ad0: 0x40418820, 0x0ad1: 0x40418a20, 0x0ad3: 0x40418c20, - 0x0ad4: 0x40418e20, 0x0ad5: 0x40419020, 0x0ad6: 0x40419220, 0x0ad7: 0x40419420, - 0x0ad8: 0x40419620, 0x0ad9: 0x40419820, 0x0ada: 0x40419a20, 0x0adb: 0x40419c20, - 0x0adc: 0x40419e20, 0x0add: 0x4041a020, 0x0ade: 0x4041a220, 0x0adf: 0x4041a420, - 0x0ae0: 0x4041a620, 0x0ae1: 0x4041a820, 0x0ae2: 0x4041aa20, 0x0ae3: 0x4041ac20, - 0x0ae4: 0x4041ae20, 0x0ae5: 0x4041b020, 0x0ae6: 0x4041b220, 0x0ae7: 0x4041b420, - 0x0ae8: 0x4041b620, 0x0aea: 0x4041b820, 0x0aeb: 0x4041ba20, - 0x0aec: 0x4041bc20, 0x0aed: 0x4041be20, 0x0aee: 0x4041c020, 0x0aef: 0x4041c220, - 0x0af0: 0x4041c420, 0x0af2: 0x4041c620, 0x0af3: 0x4041d220, - 0x0af5: 0x4041c820, 0x0af6: 0x4041ca20, 0x0af7: 0x4041cc20, - 0x0af8: 0x4041ce20, 0x0af9: 0x4041d020, - 0x0afc: 0xa070f102, 0x0afd: 0x4041d420, 0x0afe: 0x4041d620, 0x0aff: 0x4041d820, - // Block 0x2c, offset 0xb00 - 0x0b00: 0x4041da20, 0x0b01: 0x4041dc20, 0x0b02: 0x4041de20, 0x0b03: 0x4041e020, - 0x0b04: 0x4041e220, 0x0b05: 0x4041e820, 0x0b07: 0x4041ea20, - 0x0b08: 0x4041ec20, 0x0b09: 0x4041ee20, 0x0b0b: 0x4041f020, - 0x0b0c: 0x4041f220, 0x0b0d: 0x820920fa, - 0x0b10: 0x40416e20, - 0x0b20: 0x40417e20, 0x0b21: 0x40418220, 0x0b22: 0x4041e420, 0x0b23: 0x4041e620, - 0x0b26: 0xe0000173, 0x0b27: 0xe0000201, - 0x0b28: 0xe000031c, 0x0b29: 0xe00003f6, 0x0b2a: 0xe00004d1, 0x0b2b: 0xe000059b, - 0x0b2c: 0xe0000666, 0x0b2d: 0xe000070e, 0x0b2e: 0xe00007ba, 0x0b2f: 0xe000085f, - 0x0b30: 0x40057420, 0x0b31: 0x4027ee20, - // Block 0x2d, offset 0xb40 - 0x0b41: 0xa000f202, 0x0b42: 0xa000f302, 0x0b43: 0xa000f402, - 0x0b45: 0x4041f620, 0x0b46: 0x4041f820, 0x0b47: 0x4041fa20, - 0x0b48: 0x4041fc20, 0x0b49: 0x4041fe20, 0x0b4a: 0x40420020, 0x0b4b: 0x40420220, - 0x0b4c: 0x40420620, 0x0b4f: 0x40420a20, - 0x0b50: 0x40420c20, 0x0b53: 0x40420e20, - 0x0b54: 0x40421020, 0x0b55: 0x40421220, 0x0b56: 0x40421420, 0x0b57: 0x40421620, - 0x0b58: 0x40421820, 0x0b59: 0x40421a20, 0x0b5a: 0x40421c20, 0x0b5b: 0x40421e20, - 0x0b5c: 0x40422020, 0x0b5d: 0x40422220, 0x0b5e: 0x40422420, 0x0b5f: 0x40422620, - 0x0b60: 0x40422820, 0x0b61: 0x40422a20, 0x0b62: 0x40422c20, 0x0b63: 0x40422e20, - 0x0b64: 0x40423020, 0x0b65: 0x40423220, 0x0b66: 0x40423420, 0x0b67: 0x40423620, - 0x0b68: 0x40423820, 0x0b6a: 0x40423a20, 0x0b6b: 0x40423c20, - 0x0b6c: 0x40423e20, 0x0b6d: 0x40424020, 0x0b6e: 0x40424220, 0x0b6f: 0x40424420, - 0x0b70: 0x40424820, 0x0b72: 0x40424a20, 0x0b73: 0x40424c20, - 0x0b75: 0x40424e20, 0x0b76: 0x40425220, 0x0b77: 0x40425420, - 0x0b78: 0x40425620, 0x0b79: 0x40425820, - 0x0b7c: 0xa070f102, 0x0b7d: 0x40425a20, 0x0b7e: 0x40425c20, 0x0b7f: 0x40425e20, - // Block 0x2e, offset 0xb80 - 0x0b80: 0x40426020, 0x0b81: 0x40426220, 0x0b82: 0x40426420, 0x0b83: 0x40426620, - 0x0b84: 0x40426820, 0x0b87: 0xc05d01e1, - 0x0b88: 0x40427020, 0x0b8b: 0x40427220, - 0x0b8c: 0x40427420, 0x0b8d: 0x8209213b, - 0x0b96: 0x40427820, 0x0b97: 0x40427a20, - 0x0b9c: 0xe000185d, 0x0b9d: 0xe0001860, 0x0b9f: 0x40424620, - 0x0ba0: 0x40420420, 0x0ba1: 0x40420820, 0x0ba2: 0x40426a20, 0x0ba3: 0x40426c20, - 0x0ba6: 0xe0000176, 0x0ba7: 0xe0000204, - 0x0ba8: 0xe000031f, 0x0ba9: 0xe00003f9, 0x0baa: 0xe00004d4, 0x0bab: 0xe000059e, - 0x0bac: 0xe0000669, 0x0bad: 0xe0000711, 0x0bae: 0xe00007bd, 0x0baf: 0xe0000862, - 0x0bb0: 0x40073c20, 0x0bb1: 0x40425020, 0x0bb2: 0x40283c20, 0x0bb3: 0x40283e20, - 0x0bb4: 0x40284020, 0x0bb5: 0x40284220, 0x0bb6: 0x40284420, 0x0bb7: 0x40284620, - // Block 0x2f, offset 0xbc0 - 0x0bc2: 0xa000f302, 0x0bc3: 0x40429620, - 0x0bc5: 0x40427e20, 0x0bc6: 0x40428020, 0x0bc7: 0x40428220, - 0x0bc8: 0x40428420, 0x0bc9: 0x40428620, 0x0bca: 0x40428820, - 0x0bce: 0x40428a20, 0x0bcf: 0x40428c20, - 0x0bd0: 0x40428e20, 0x0bd2: 0xc0610231, 0x0bd3: 0x40429220, - 0x0bd4: 0x40429420, 0x0bd5: 0x40429820, - 0x0bd9: 0x40429a20, 0x0bda: 0x40429c20, - 0x0bdc: 0x4042bc20, 0x0bde: 0x40429e20, 0x0bdf: 0x4042a020, - 0x0be3: 0x4042a220, - 0x0be4: 0x4042a420, - 0x0be8: 0x4042a620, 0x0be9: 0x4042ba20, 0x0bea: 0x4042a820, - 0x0bee: 0x4042aa20, 0x0bef: 0x4042ac20, - 0x0bf0: 0x4042ae20, 0x0bf1: 0x4042b820, 0x0bf2: 0x4042b020, 0x0bf3: 0x4042b620, - 0x0bf4: 0x4042b420, 0x0bf5: 0x4042b220, 0x0bf6: 0x4042be20, 0x0bf7: 0x4042c020, - 0x0bf8: 0x4042c220, 0x0bf9: 0x4042c420, - 0x0bfe: 0x4042c620, 0x0bff: 0x4042c820, - // Block 0x30, offset 0xc00 - 0x0c00: 0x4042ca20, 0x0c01: 0x4042cc20, 0x0c02: 0x4042ce20, - 0x0c06: 0xc0630261, 0x0c07: 0xc06602b1, - 0x0c08: 0x4042d420, 0x0c0a: 0x4042d620, 0x0c0b: 0x4042d820, - 0x0c0c: 0x4042da20, 0x0c0d: 0x8209216e, - 0x0c10: 0x40427c20, - 0x0c17: 0x4042de20, - 0x0c26: 0xe0000179, 0x0c27: 0xe0000207, - 0x0c28: 0xe0000322, 0x0c29: 0xe00003fc, 0x0c2a: 0xe00004d7, 0x0c2b: 0xe00005a1, - 0x0c2c: 0xe000066c, 0x0c2d: 0xe0000714, 0x0c2e: 0xe00007c0, 0x0c2f: 0xe0000865, - 0x0c30: 0x40285420, 0x0c31: 0x40285620, 0x0c32: 0x40285820, 0x0c33: 0x40073e20, - 0x0c34: 0x40074020, 0x0c35: 0x40074220, 0x0c36: 0x40074420, 0x0c37: 0x40074620, - 0x0c38: 0x40074820, 0x0c39: 0x4027f220, 0x0c3a: 0x40074a20, - // Block 0x31, offset 0xc40 - 0x0c41: 0xa000f202, 0x0c42: 0xa000f302, 0x0c43: 0xa000f402, - 0x0c45: 0x4042e020, 0x0c46: 0x4042e220, 0x0c47: 0x4042e420, - 0x0c48: 0x4042e620, 0x0c49: 0x4042e820, 0x0c4a: 0x4042ea20, 0x0c4b: 0x4042ec20, - 0x0c4c: 0x4042f020, 0x0c4e: 0x4042f420, 0x0c4f: 0x4042f620, - 0x0c50: 0x4042f820, 0x0c52: 0x4042fa20, 0x0c53: 0x4042fc20, - 0x0c54: 0x4042fe20, 0x0c55: 0x40430020, 0x0c56: 0x40430220, 0x0c57: 0x40430420, - 0x0c58: 0x40430620, 0x0c59: 0x40430820, 0x0c5a: 0x40430a20, 0x0c5b: 0x40430e20, - 0x0c5c: 0x40431020, 0x0c5d: 0x40431420, 0x0c5e: 0x40431620, 0x0c5f: 0x40431820, - 0x0c60: 0x40431a20, 0x0c61: 0x40431c20, 0x0c62: 0x40431e20, 0x0c63: 0x40432020, - 0x0c64: 0x40432220, 0x0c65: 0x40432420, 0x0c66: 0x40432620, 0x0c67: 0x40432820, - 0x0c68: 0x40432a20, 0x0c6a: 0x40432c20, 0x0c6b: 0x40432e20, - 0x0c6c: 0x40433020, 0x0c6d: 0x40433220, 0x0c6e: 0x40433420, 0x0c6f: 0x40433620, - 0x0c70: 0x40433820, 0x0c71: 0x40433a20, 0x0c72: 0x40433c20, 0x0c73: 0x40434820, - 0x0c75: 0x40433e20, 0x0c76: 0x40434020, 0x0c77: 0x40434220, - 0x0c78: 0x40434420, 0x0c79: 0x40434620, - 0x0c7d: 0x40434a20, 0x0c7e: 0x40434c20, 0x0c7f: 0x40434e20, - // Block 0x32, offset 0xc80 - 0x0c80: 0x40435020, 0x0c81: 0x40435220, 0x0c82: 0x40435420, 0x0c83: 0x40435620, - 0x0c84: 0x40435820, 0x0c86: 0xc06802e1, 0x0c87: 0x40436020, - 0x0c88: 0x40436220, 0x0c8a: 0x40436420, 0x0c8b: 0x40436620, - 0x0c8c: 0x40436820, 0x0c8d: 0x820921b5, - 0x0c95: 0x825421b6, 0x0c96: 0x825b21b7, - 0x0c98: 0x40430c20, 0x0c99: 0x40431220, - 0x0ca0: 0x4042ee20, 0x0ca1: 0x4042f220, 0x0ca2: 0x40435a20, 0x0ca3: 0x40435c20, - 0x0ca6: 0xe000017c, 0x0ca7: 0xe000020a, - 0x0ca8: 0xe0000325, 0x0ca9: 0xe00003ff, 0x0caa: 0xe00004da, 0x0cab: 0xe00005a4, - 0x0cac: 0xe000066f, 0x0cad: 0xe0000717, 0x0cae: 0xe00007c3, 0x0caf: 0xe0000868, - 0x0cb8: 0xe000017f, 0x0cb9: 0xe000020d, 0x0cba: 0xe0000328, 0x0cbb: 0xe0000402, - 0x0cbc: 0xe0000210, 0x0cbd: 0xe000032b, 0x0cbe: 0xe0000405, 0x0cbf: 0x40074c20, - // Block 0x33, offset 0xcc0 - 0x0cc2: 0xa000f302, 0x0cc3: 0xa000f402, - 0x0cc5: 0x40437020, 0x0cc6: 0x40437220, 0x0cc7: 0x40437420, - 0x0cc8: 0x40437620, 0x0cc9: 0x40437820, 0x0cca: 0x40437a20, 0x0ccb: 0x40437c20, - 0x0ccc: 0x40438020, 0x0cce: 0x40438420, 0x0ccf: 0x40438620, - 0x0cd0: 0x40438820, 0x0cd2: 0x40438a20, 0x0cd3: 0x40438c20, - 0x0cd4: 0x40438e20, 0x0cd5: 0x40439020, 0x0cd6: 0x40439220, 0x0cd7: 0x40439420, - 0x0cd8: 0x40439620, 0x0cd9: 0x40439820, 0x0cda: 0x40439a20, 0x0cdb: 0x40439c20, - 0x0cdc: 0x40439e20, 0x0cdd: 0x4043a020, 0x0cde: 0x4043a220, 0x0cdf: 0x4043a420, - 0x0ce0: 0x4043a620, 0x0ce1: 0x4043a820, 0x0ce2: 0x4043aa20, 0x0ce3: 0x4043ac20, - 0x0ce4: 0x4043ae20, 0x0ce5: 0x4043b020, 0x0ce6: 0x4043b220, 0x0ce7: 0x4043b420, - 0x0ce8: 0x4043b620, 0x0cea: 0x4043b820, 0x0ceb: 0x4043ba20, - 0x0cec: 0x4043bc20, 0x0ced: 0x4043be20, 0x0cee: 0x4043c020, 0x0cef: 0x4043c220, - 0x0cf0: 0x4043c420, 0x0cf1: 0x4043c620, 0x0cf2: 0x4043c820, 0x0cf3: 0x4043d420, - 0x0cf5: 0x4043ca20, 0x0cf6: 0x4043cc20, 0x0cf7: 0x4043ce20, - 0x0cf8: 0x4043d020, 0x0cf9: 0x4043d220, - 0x0cfc: 0xa070f102, 0x0cfd: 0x4043d820, 0x0cfe: 0x4043de20, 0x0cff: 0xc06a0311, - // Block 0x34, offset 0xd00 - 0x0d00: 0x4043e220, 0x0d01: 0x4043e420, 0x0d02: 0x4043e620, 0x0d03: 0x4043e820, - 0x0d04: 0x4043ea20, 0x0d06: 0xc06c0341, 0x0d07: 0x4043f220, - 0x0d08: 0x4043f420, 0x0d0a: 0xc0710311, 0x0d0b: 0x4043f820, - 0x0d0c: 0x4043fa20, 0x0d0d: 0x820921fe, - 0x0d15: 0x4043fe20, 0x0d16: 0x40440020, - 0x0d1e: 0x4043d620, - 0x0d20: 0x40437e20, 0x0d21: 0x40438220, 0x0d22: 0x4043ec20, 0x0d23: 0x4043ee20, - 0x0d26: 0xe0000182, 0x0d27: 0xe0000213, - 0x0d28: 0xe000032e, 0x0d29: 0xe0000408, 0x0d2a: 0xe00004dd, 0x0d2b: 0xe00005a7, - 0x0d2c: 0xe0000672, 0x0d2d: 0xe000071a, 0x0d2e: 0xe00007c6, 0x0d2f: 0xe000086b, - 0x0d31: 0x4043da20, 0x0d32: 0x4043dc20, - // Block 0x35, offset 0xd40 - 0x0d42: 0xa000f302, 0x0d43: 0xa000f402, - 0x0d45: 0x40440220, 0x0d46: 0x40440420, 0x0d47: 0x40440620, - 0x0d48: 0x40440820, 0x0d49: 0x40440a20, 0x0d4a: 0x40440c20, 0x0d4b: 0x40440e20, - 0x0d4c: 0x40441220, 0x0d4e: 0x40441620, 0x0d4f: 0x40441820, - 0x0d50: 0x40441a20, 0x0d52: 0x40441c20, 0x0d53: 0x40441e20, - 0x0d54: 0x40442020, 0x0d55: 0x40442220, 0x0d56: 0x40442420, 0x0d57: 0x40442620, - 0x0d58: 0x40442820, 0x0d59: 0x40442a20, 0x0d5a: 0x40442c20, 0x0d5b: 0x40442e20, - 0x0d5c: 0x40443020, 0x0d5d: 0x40443220, 0x0d5e: 0x40443420, 0x0d5f: 0x40443620, - 0x0d60: 0x40443820, 0x0d61: 0x40443a20, 0x0d62: 0x40443c20, 0x0d63: 0x40443e20, - 0x0d64: 0x40444020, 0x0d65: 0x40444220, 0x0d66: 0x40444420, 0x0d67: 0x40444620, - 0x0d68: 0x40444820, 0x0d69: 0x40444a20, 0x0d6a: 0x40444c20, 0x0d6b: 0x40444e20, - 0x0d6c: 0x40445020, 0x0d6d: 0x40445220, 0x0d6e: 0x40445420, 0x0d6f: 0x40445620, - 0x0d70: 0x40445820, 0x0d71: 0x40446a20, 0x0d72: 0x40445a20, 0x0d73: 0x40446620, - 0x0d74: 0x40446820, 0x0d75: 0x40445c20, 0x0d76: 0x40445e20, 0x0d77: 0x40446020, - 0x0d78: 0x40446220, 0x0d79: 0x40446420, 0x0d7a: 0x40446c20, - 0x0d7d: 0x40446e20, 0x0d7e: 0x40447020, 0x0d7f: 0x40447220, - // Block 0x36, offset 0xd80 - 0x0d80: 0x40447420, 0x0d81: 0x40447620, 0x0d82: 0x40447820, 0x0d83: 0x40447a20, - 0x0d84: 0x40447c20, 0x0d86: 0xc07303b1, 0x0d87: 0xc0760401, - 0x0d88: 0x40448620, 0x0d8a: 0x40448820, 0x0d8b: 0x40448a20, - 0x0d8c: 0x40448c20, 0x0d8d: 0x82092248, 0x0d8e: 0xe000186c, - 0x0d97: 0x40448e20, - 0x0da0: 0x40441020, 0x0da1: 0x40441420, 0x0da2: 0x40447e20, 0x0da3: 0x40448020, - 0x0da6: 0xe0000185, 0x0da7: 0xe0000216, - 0x0da8: 0xe0000331, 0x0da9: 0xe000040b, 0x0daa: 0xe00004e0, 0x0dab: 0xe00005aa, - 0x0dac: 0xe0000675, 0x0dad: 0xe000071d, 0x0dae: 0xe00007c9, 0x0daf: 0xe000086e, - 0x0db0: 0x40285a20, 0x0db1: 0x40285c20, 0x0db2: 0x40285e20, 0x0db3: 0x40286020, - 0x0db4: 0x40286220, 0x0db5: 0x40286420, - 0x0db9: 0x40074e20, 0x0dba: 0xe0001866, 0x0dbb: 0xe0001869, - 0x0dbc: 0xe000186f, 0x0dbd: 0xe0001872, 0x0dbe: 0xe0001875, 0x0dbf: 0xe0001863, - // Block 0x37, offset 0xdc0 - 0x0dc2: 0xa000f302, 0x0dc3: 0xa000f402, - 0x0dc5: 0x40449220, 0x0dc6: 0x40449420, 0x0dc7: 0x40449620, - 0x0dc8: 0x40449820, 0x0dc9: 0x40449a20, 0x0dca: 0x40449c20, 0x0dcb: 0x40449e20, - 0x0dcc: 0x4044a020, 0x0dcd: 0x4044a220, 0x0dce: 0x4044a420, 0x0dcf: 0x4044a620, - 0x0dd0: 0x4044a820, 0x0dd1: 0x4044aa20, 0x0dd2: 0x4044ac20, 0x0dd3: 0x4044ae20, - 0x0dd4: 0x4044b020, 0x0dd5: 0x4044b220, 0x0dd6: 0x4044b420, - 0x0dda: 0x4044b620, 0x0ddb: 0x4044b820, - 0x0ddc: 0x4044ba20, 0x0ddd: 0x4044bc20, 0x0dde: 0x4044be20, 0x0ddf: 0x4044c020, - 0x0de0: 0x4044c220, 0x0de1: 0x4044c420, 0x0de2: 0x4044c620, 0x0de3: 0x4044c820, - 0x0de4: 0x4044ca20, 0x0de5: 0x4044cc20, 0x0de6: 0x4044ce20, 0x0de7: 0x4044d020, - 0x0de8: 0x4044d220, 0x0de9: 0x4044d420, 0x0dea: 0x4044d620, 0x0deb: 0x4044d820, - 0x0dec: 0x4044da20, 0x0ded: 0x4044dc20, 0x0dee: 0x4044de20, 0x0def: 0x4044e020, - 0x0df0: 0x4044e220, 0x0df1: 0x4044e420, 0x0df3: 0x4044e620, - 0x0df4: 0x4044e820, 0x0df5: 0x4044ea20, 0x0df6: 0x4044ec20, 0x0df7: 0x4044ee20, - 0x0df8: 0x4044f020, 0x0df9: 0x4044f220, 0x0dfa: 0x4044f420, 0x0dfb: 0x4044f620, - 0x0dfd: 0x4044f820, - // Block 0x38, offset 0xe00 - 0x0e00: 0x4044fa20, 0x0e01: 0x4044fc20, 0x0e02: 0x4044fe20, 0x0e03: 0x40450020, - 0x0e04: 0x40450220, 0x0e05: 0x40450420, 0x0e06: 0x40450620, - 0x0e0a: 0x82092295, - 0x0e0f: 0x40450820, - 0x0e10: 0x40450a20, 0x0e11: 0x40450c20, 0x0e12: 0x40450e20, 0x0e13: 0x40451020, - 0x0e14: 0x40451220, 0x0e16: 0x40451420, - 0x0e18: 0x40451620, 0x0e19: 0xc0780431, 0x0e1a: 0x40452020, 0x0e1b: 0x40452220, - 0x0e1c: 0xc07d04b1, 0x0e1d: 0x40452620, 0x0e1e: 0x40452820, 0x0e1f: 0x40451a20, - 0x0e32: 0x40451820, 0x0e33: 0x40451c20, - 0x0e34: 0x40057620, - // Block 0x39, offset 0xe40 - 0x0e41: 0x40491020, 0x0e42: 0x40491220, 0x0e43: 0x40491420, - 0x0e44: 0x40491620, 0x0e45: 0x40491820, 0x0e46: 0x40491a20, 0x0e47: 0x40491c20, - 0x0e48: 0x40491e20, 0x0e49: 0x40492020, 0x0e4a: 0x40492220, 0x0e4b: 0x40492420, - 0x0e4c: 0x40492620, 0x0e4d: 0x40492820, 0x0e4e: 0x40492a20, 0x0e4f: 0x40492c20, - 0x0e50: 0x40492e20, 0x0e51: 0x40493020, 0x0e52: 0x40493220, 0x0e53: 0x40493420, - 0x0e54: 0x40493620, 0x0e55: 0x40493820, 0x0e56: 0x40493a20, 0x0e57: 0x40493c20, - 0x0e58: 0x40493e20, 0x0e59: 0x40494020, 0x0e5a: 0x40494220, 0x0e5b: 0x40494420, - 0x0e5c: 0x40494620, 0x0e5d: 0x40494820, 0x0e5e: 0x40494a20, 0x0e5f: 0x40494c20, - 0x0e60: 0x40494e20, 0x0e61: 0x40495020, 0x0e62: 0x40495220, 0x0e63: 0x40495420, - 0x0e64: 0x40495620, 0x0e65: 0x40495820, 0x0e66: 0x40495a20, 0x0e67: 0x40495c20, - 0x0e68: 0x40495e20, 0x0e69: 0x40496020, 0x0e6a: 0x40496220, 0x0e6b: 0x40496420, - 0x0e6c: 0x40496620, 0x0e6d: 0x40496820, 0x0e6e: 0x40496a20, 0x0e6f: 0x40496c20, - 0x0e70: 0x40496e20, 0x0e71: 0x40497020, 0x0e72: 0x40497220, 0x0e73: 0x40497420, - 0x0e74: 0x40497620, 0x0e75: 0x40497820, 0x0e76: 0x40497a20, 0x0e77: 0x40497c20, - 0x0e78: 0x826724bf, 0x0e79: 0x826724c0, 0x0e7a: 0x820924c1, - 0x0e7f: 0x4027f420, - // Block 0x3a, offset 0xe80 - 0x0e80: 0xc07f04e1, 0x0e81: 0xc0ae04e1, 0x0e82: 0xc0dd04e1, 0x0e83: 0xc10c04e1, - 0x0e84: 0xc13b04e1, 0x0e85: 0x40498e20, 0x0e86: 0x4027b820, 0x0e87: 0xa000ff02, - 0x0e88: 0xa6b10002, 0x0e89: 0xa6b10102, 0x0e8a: 0xa6b10202, 0x0e8b: 0xa6b10302, - 0x0e8c: 0xa0010402, 0x0e8d: 0xc16a0511, 0x0e8e: 0xa000fe02, 0x0e8f: 0x40057820, - 0x0e90: 0xe000019a, 0x0e91: 0xe000022e, 0x0e92: 0xe0000346, 0x0e93: 0xe0000420, - 0x0e94: 0xe00004f5, 0x0e95: 0xe00005bf, 0x0e96: 0xe000068a, 0x0e97: 0xe0000732, - 0x0e98: 0xe00007de, 0x0e99: 0xe0000883, 0x0e9a: 0x40057a20, 0x0e9b: 0x40057c20, - // Block 0x3b, offset 0xec0 - 0x0ec1: 0x40499220, 0x0ec2: 0x40499420, - 0x0ec4: 0x40499620, 0x0ec7: 0x40499820, - 0x0ec8: 0x40499a20, 0x0eca: 0x40499e20, - 0x0ecd: 0x4049a220, - 0x0ed4: 0x4049a420, 0x0ed5: 0x4049a620, 0x0ed6: 0x4049a820, 0x0ed7: 0x4049aa20, - 0x0ed9: 0x4049ac20, 0x0eda: 0x4049ae20, 0x0edb: 0x4049b020, - 0x0edc: 0x4049b220, 0x0edd: 0x4049b420, 0x0ede: 0x4049b620, 0x0edf: 0x4049b820, - 0x0ee1: 0x4049ba20, 0x0ee2: 0x4049bc20, 0x0ee3: 0x4049be20, - 0x0ee5: 0x4049c020, 0x0ee7: 0x4049c220, - 0x0eea: 0x40499c20, 0x0eeb: 0x4049c420, - 0x0eed: 0x4049c620, 0x0eee: 0x4049c820, 0x0eef: 0x4049ca20, - 0x0ef0: 0x4049cc20, 0x0ef1: 0x4049ce20, 0x0ef2: 0x4049d020, 0x0ef3: 0x4049d220, - 0x0ef4: 0x4049d420, 0x0ef5: 0x4049d620, 0x0ef6: 0x4049d820, 0x0ef7: 0x4049da20, - 0x0ef8: 0x827624ee, 0x0ef9: 0x827624ef, 0x0efb: 0x4049e020, - 0x0efc: 0x4049e220, 0x0efd: 0x4049e420, - // Block 0x3c, offset 0xf00 - 0x0f00: 0xc16c0541, 0x0f01: 0xc18c0541, 0x0f02: 0xc1ac0541, 0x0f03: 0xc1cc0541, - 0x0f04: 0xc1ec0541, 0x0f06: 0x4027ba20, - 0x0f08: 0xa7a10602, 0x0f09: 0xa7a10702, 0x0f0a: 0xa7a10802, 0x0f0b: 0xa7a10902, - 0x0f0c: 0xa0010a02, 0x0f0d: 0xc20c0641, - 0x0f10: 0xe000019d, 0x0f11: 0xe0000231, 0x0f12: 0xe0000349, 0x0f13: 0xe0000423, - 0x0f14: 0xe00004f8, 0x0f15: 0xe00005c2, 0x0f16: 0xe000068d, 0x0f17: 0xe0000735, - 0x0f18: 0xe00007e1, 0x0f19: 0xe0000886, - 0x0f1c: 0xf0000404, 0x0f1d: 0xf0000404, 0x0f1e: 0x40499020, 0x0f1f: 0x4049a020, - // Block 0x3d, offset 0xf40 - 0x0f40: 0xe000201a, 0x0f41: 0x40075e20, 0x0f42: 0x40076020, 0x0f43: 0x40076220, - 0x0f44: 0x40058220, 0x0f45: 0x40058420, 0x0f46: 0x40058620, 0x0f47: 0x40058820, - 0x0f48: 0x40058a20, 0x0f49: 0x40058c20, 0x0f4a: 0x40058e20, 0x0f4b: 0x40059420, - 0x0f4c: 0x0005949b, 0x0f4d: 0x40059620, 0x0f4e: 0x40059820, 0x0f4f: 0x40059a20, - 0x0f50: 0x40059c20, 0x0f51: 0x40059e20, 0x0f52: 0x4005a020, 0x0f53: 0x40076420, - 0x0f54: 0x4002aa20, 0x0f55: 0x40076620, 0x0f56: 0x40076820, 0x0f57: 0x40076a20, - 0x0f58: 0xadc00000, 0x0f59: 0xadc00000, 0x0f5a: 0x40076c20, 0x0f5b: 0x40076e20, - 0x0f5c: 0x40077020, 0x0f5d: 0x40077220, 0x0f5e: 0x40077420, 0x0f5f: 0x40077620, - 0x0f60: 0xe00001a0, 0x0f61: 0xe0000234, 0x0f62: 0xe000034c, 0x0f63: 0xe0000426, - 0x0f64: 0xe00004fb, 0x0f65: 0xe00005c5, 0x0f66: 0xe0000690, 0x0f67: 0xe0000738, - 0x0f68: 0xe00007e4, 0x0f69: 0xe0000889, 0x0f6a: 0xe0000237, 0x0f6b: 0xe000034f, - 0x0f6c: 0xe0000429, 0x0f6d: 0xe00004fe, 0x0f6e: 0xe00005c8, 0x0f6f: 0xe0000693, - 0x0f70: 0xe000073b, 0x0f71: 0xe00007e7, 0x0f72: 0xe000088c, 0x0f73: 0xe00001a3, - 0x0f74: 0x40077820, 0x0f75: 0xadc00000, 0x0f76: 0x40077a20, 0x0f77: 0xadc00000, - 0x0f78: 0x40077c20, 0x0f79: 0xad810e02, 0x0f7a: 0x40040020, 0x0f7b: 0x40040220, - 0x0f7c: 0x40040420, 0x0f7d: 0x40040620, 0x0f7e: 0xa0000000, 0x0f7f: 0xa0000000, - // Block 0x3e, offset 0xf80 - 0x0f80: 0x404a7620, 0x0f81: 0x404a7c20, 0x0f82: 0x404a8020, 0x0f83: 0xe0001fe4, - 0x0f84: 0x404a8420, 0x0f85: 0x404a8820, 0x0f86: 0x404a8c20, 0x0f87: 0x404a9020, - 0x0f89: 0x404a9420, 0x0f8a: 0x404a9820, 0x0f8b: 0x404a9c20, - 0x0f8c: 0x404aa020, 0x0f8d: 0xe0001fea, 0x0f8e: 0x404aa420, 0x0f8f: 0x404aa820, - 0x0f90: 0x404aac20, 0x0f91: 0x404ab020, 0x0f92: 0xe0001ff0, 0x0f93: 0x404ab420, - 0x0f94: 0x404ab820, 0x0f95: 0x404abc20, 0x0f96: 0x404ac020, 0x0f97: 0xe0001ff6, - 0x0f98: 0x404ac420, 0x0f99: 0x404ac820, 0x0f9a: 0x404acc20, 0x0f9b: 0x404ad020, - 0x0f9c: 0xe0001ffc, 0x0f9d: 0x404ad420, 0x0f9e: 0x404ad820, 0x0f9f: 0x404adc20, - 0x0fa0: 0x404ae020, 0x0fa1: 0x404ae420, 0x0fa2: 0x404ae820, 0x0fa3: 0x404aee20, - 0x0fa4: 0x404af220, 0x0fa5: 0x404af620, 0x0fa6: 0x404afa20, 0x0fa7: 0x404afe20, - 0x0fa8: 0x404b0220, 0x0fa9: 0xe0001fde, 0x0faa: 0xe0002008, 0x0fab: 0x404a7a20, - 0x0fac: 0x404aec20, - 0x0fb1: 0xc30f0751, 0x0fb2: 0x8282258c, 0x0fb3: 0x8281258d, - 0x0fb4: 0x82842590, 0x0fb5: 0x82812591, 0x0fb6: 0x404b2420, 0x0fb7: 0x404b2620, - 0x0fb8: 0x404b2820, 0x0fb9: 0x404b2a20, 0x0fba: 0x82822596, 0x0fbb: 0x82822597, - 0x0fbc: 0x82822598, 0x0fbd: 0x82822599, 0x0fbe: 0xa000f302, 0x0fbf: 0xa000f402, - // Block 0x3f, offset 0xfc0 - 0x0fc0: 0x8282258e, 0x0fc1: 0x8281258f, 0x0fc2: 0xae600000, 0x0fc3: 0xae600000, - 0x0fc4: 0x8209259a, 0x0fc5: 0x4005a220, 0x0fc6: 0xae600000, 0x0fc7: 0xae600000, - 0x0fc8: 0x404b0620, 0x0fc9: 0x404b0a20, 0x0fca: 0x404b1220, 0x0fcb: 0x404b1420, - 0x0fcc: 0x404b0e20, 0x0fcd: 0x404b0820, 0x0fce: 0x404b0c20, 0x0fcf: 0x404b1020, - 0x0fd0: 0x404a7820, 0x0fd1: 0x404a7e20, 0x0fd2: 0x404a8220, 0x0fd3: 0xe0001fe7, - 0x0fd4: 0x404a8620, 0x0fd5: 0x404a8a20, 0x0fd6: 0x404a8e20, 0x0fd7: 0x404a9220, - 0x0fd9: 0x404a9620, 0x0fda: 0x404a9a20, 0x0fdb: 0x404a9e20, - 0x0fdc: 0x404aa220, 0x0fdd: 0xe0001fed, 0x0fde: 0x404aa620, 0x0fdf: 0x404aaa20, - 0x0fe0: 0x404aae20, 0x0fe1: 0x404ab220, 0x0fe2: 0xe0001ff3, 0x0fe3: 0x404ab620, - 0x0fe4: 0x404aba20, 0x0fe5: 0x404abe20, 0x0fe6: 0x404ac220, 0x0fe7: 0xe0001ff9, - 0x0fe8: 0x404ac620, 0x0fe9: 0x404aca20, 0x0fea: 0x404ace20, 0x0feb: 0x404ad220, - 0x0fec: 0xe0001fff, 0x0fed: 0x404ad620, 0x0fee: 0x404ada20, 0x0fef: 0x404ade20, - 0x0ff0: 0x404ae220, 0x0ff1: 0x404ae620, 0x0ff2: 0xc30306a1, 0x0ff3: 0xc30906a1, - 0x0ff4: 0x404af420, 0x0ff5: 0x404af820, 0x0ff6: 0x404afc20, 0x0ff7: 0x404b0020, - 0x0ff8: 0x404b0420, 0x0ff9: 0xe0001fe1, 0x0ffa: 0xe0002002, 0x0ffb: 0xe0002005, - 0x0ffc: 0xe000200b, 0x0ffe: 0x40077e20, 0x0fff: 0x40078020, - // Block 0x40, offset 0x1000 - 0x1000: 0x40078220, 0x1001: 0x40078420, 0x1002: 0x40078620, 0x1003: 0x40078820, - 0x1004: 0x40078a20, 0x1005: 0x40078c20, 0x1006: 0xadc00000, 0x1007: 0x40078e20, - 0x1008: 0x40079020, 0x1009: 0x40079220, 0x100a: 0x40079420, 0x100b: 0x40079620, - 0x100c: 0x40079820, 0x100e: 0x40079a20, 0x100f: 0x40079c20, - 0x1010: 0x40059020, 0x1011: 0x40059220, 0x1012: 0x4005a420, 0x1013: 0x4005a620, - 0x1014: 0x4005a820, 0x1015: 0x40079e20, 0x1016: 0x4007a020, 0x1017: 0x4007a220, - 0x1018: 0x4007a420, 0x1019: 0x4005aa20, 0x101a: 0x4005ac20, - // Block 0x41, offset 0x1040 - 0x1040: 0x404e1420, 0x1041: 0x404e1820, 0x1042: 0x404e1c20, 0x1043: 0x404e2220, - 0x1044: 0x404e2420, 0x1045: 0x404e2820, 0x1046: 0x404e2e20, 0x1047: 0x404e3220, - 0x1048: 0x404e3a20, 0x1049: 0x404e4220, 0x104a: 0x404e4820, 0x104b: 0x404e4a20, - 0x104c: 0x404e4e20, 0x104d: 0x404e5220, 0x104e: 0x404e5620, 0x104f: 0x404e5a20, - 0x1050: 0x404e5e20, 0x1051: 0x404e6020, 0x1052: 0x404e6220, 0x1053: 0x404e6620, - 0x1054: 0x404e6a20, 0x1055: 0x404e7220, 0x1056: 0x404e7420, 0x1057: 0x404e7e20, - 0x1058: 0x404e8220, 0x1059: 0x404e8420, 0x105a: 0x404e8820, 0x105b: 0x404e8c20, - 0x105c: 0x404e9420, 0x105d: 0x404e9820, 0x105e: 0x404ea620, 0x105f: 0x404eaa20, - 0x1060: 0x404eb620, 0x1061: 0x404ec220, 0x1062: 0x404ec420, 0x1063: 0x404ec620, - 0x1064: 0x404ec820, 0x1065: 0xc31307b1, 0x1066: 0x404ecc20, 0x1067: 0x404ed620, - 0x1068: 0x404ed820, 0x1069: 0x404eda20, 0x106a: 0x404edc20, 0x106b: 0x004ede84, - 0x106c: 0x404ede20, 0x106d: 0x404ee620, 0x106e: 0x404eea20, 0x106f: 0x404eee20, - 0x1070: 0x404ef420, 0x1071: 0x404efe20, 0x1072: 0x404f0620, 0x1073: 0x404eec20, - 0x1074: 0x404f0a20, 0x1075: 0x404f0220, 0x1076: 0xa000f302, 0x1077: 0xa0711202, - 0x1078: 0xa000f402, 0x1079: 0x8209278a, 0x107a: 0x8209278b, 0x107b: 0x404e8a20, - 0x107c: 0x404e9220, 0x107d: 0x404e9a20, 0x107e: 0x404eb020, 0x107f: 0xe000201e, - // Block 0x42, offset 0x1080 - 0x1080: 0xe00001ac, 0x1081: 0xe0000240, 0x1082: 0xe0000358, 0x1083: 0xe0000432, - 0x1084: 0xe0000507, 0x1085: 0xe00005d1, 0x1086: 0xe000069c, 0x1087: 0xe0000744, - 0x1088: 0xe00007f0, 0x1089: 0xe0000895, 0x108a: 0x40032220, 0x108b: 0x40032420, - 0x108c: 0x4005b420, 0x108d: 0x4005b620, 0x108e: 0x4005b820, 0x108f: 0x4005ba20, - 0x1090: 0x404ea020, 0x1091: 0x404ea220, 0x1092: 0x404ece20, 0x1093: 0x404ed020, - 0x1094: 0x404ed220, 0x1095: 0x404ed420, 0x1096: 0x404ef620, 0x1097: 0x404ef820, - 0x1098: 0x404efa20, 0x1099: 0x404efc20, 0x109a: 0x404e2620, 0x109b: 0x404e3c20, - 0x109c: 0x404eb820, 0x109d: 0x404eba20, 0x109e: 0x404e7020, 0x109f: 0x404e8620, - 0x10a0: 0x404e9620, 0x10a1: 0x404e4020, 0x10a2: 0x404f0c20, 0x10a3: 0x404f1820, - 0x10a4: 0x404f1a20, 0x10a5: 0x404ea420, 0x10a6: 0x404ec020, 0x10a7: 0x404f0e20, - 0x10a8: 0x404f1020, 0x10a9: 0x404f1c20, 0x10aa: 0x404f1e20, 0x10ab: 0x404f2020, - 0x10ac: 0x404f2220, 0x10ad: 0x404f2420, 0x10ae: 0x404e5c20, 0x10af: 0x404ebc20, - 0x10b0: 0x404ebe20, 0x10b1: 0x404ee820, 0x10b2: 0x404ee220, 0x10b3: 0x404ef020, - 0x10b4: 0x404ef220, 0x10b5: 0x404e1620, 0x10b6: 0x404e1a20, 0x10b7: 0x404e1e20, - 0x10b8: 0x404e2a20, 0x10b9: 0x404e3620, 0x10ba: 0x404e4420, 0x10bb: 0x404e6420, - 0x10bc: 0x404e6c20, 0x10bd: 0x404e7620, 0x10be: 0x404e7820, 0x10bf: 0x404e8020, - // Block 0x43, offset 0x10c0 - 0x10c0: 0x404e9e20, 0x10c1: 0x404eac20, 0x10c2: 0x404e9c20, 0x10c3: 0x404ee020, - 0x10c4: 0x404f0020, 0x10c5: 0x404f0420, 0x10c6: 0x404f1220, 0x10c7: 0x404f2620, - 0x10c8: 0x404f2a20, 0x10c9: 0x404f2e20, 0x10ca: 0x404f3020, 0x10cb: 0x404f2820, - 0x10cc: 0x404f2c20, 0x10cd: 0xadc11302, 0x10ce: 0x404e7c20, 0x10cf: 0x404f3220, - 0x10d0: 0xe00001af, 0x10d1: 0xe0000243, 0x10d2: 0xe000035b, 0x10d3: 0xe0000435, - 0x10d4: 0xe000050a, 0x10d5: 0xe00005d4, 0x10d6: 0xe000069f, 0x10d7: 0xe0000747, - 0x10d8: 0xe00007f3, 0x10d9: 0xe0000898, 0x10da: 0x404f3420, 0x10db: 0x404f3620, - 0x10dc: 0x404ee420, 0x10dd: 0x404f0820, 0x10de: 0x4007a820, 0x10df: 0x4007aa20, - 0x10e0: 0x00379888, 0x10e1: 0x00379c88, 0x10e2: 0x0037a088, 0x10e3: 0x0037a488, - 0x10e4: 0x0037a888, 0x10e5: 0x0037ac88, 0x10e6: 0x0037b088, 0x10e7: 0x0037b888, - 0x10e8: 0x0037bc88, 0x10e9: 0x0037c088, 0x10ea: 0x0037c488, 0x10eb: 0x0037c888, - 0x10ec: 0x0037cc88, 0x10ed: 0x0037d488, 0x10ee: 0x0037d888, 0x10ef: 0x0037dc88, - 0x10f0: 0x0037e088, 0x10f1: 0x0037e488, 0x10f2: 0x0037e888, 0x10f3: 0x0037f088, - 0x10f4: 0x0037f488, 0x10f5: 0x0037f888, 0x10f6: 0x0037fc88, 0x10f7: 0x00380088, - 0x10f8: 0x00380488, 0x10f9: 0x00380888, 0x10fa: 0x00380c88, 0x10fb: 0x00381088, - 0x10fc: 0x00381488, 0x10fd: 0x00381888, 0x10fe: 0x00381c88, 0x10ff: 0x00382488, - // Block 0x44, offset 0x1100 - 0x1100: 0x00382888, 0x1101: 0x0037b488, 0x1102: 0x0037d088, 0x1103: 0x0037ec88, - 0x1104: 0x00382088, 0x1105: 0x00382c88, 0x1107: 0x00383288, - 0x110d: 0x00383c88, - 0x1110: 0x40379620, 0x1111: 0x40379a20, 0x1112: 0x40379e20, 0x1113: 0x4037a220, - 0x1114: 0x4037a620, 0x1115: 0x4037aa20, 0x1116: 0x4037ae20, 0x1117: 0x4037b620, - 0x1118: 0x4037ba20, 0x1119: 0x4037be20, 0x111a: 0x4037c220, 0x111b: 0x4037c620, - 0x111c: 0x4037ca20, 0x111d: 0x4037d220, 0x111e: 0x4037d620, 0x111f: 0x4037da20, - 0x1120: 0x4037de20, 0x1121: 0x4037e220, 0x1122: 0x4037e620, 0x1123: 0x4037ee20, - 0x1124: 0x4037f220, 0x1125: 0x4037f620, 0x1126: 0x4037fa20, 0x1127: 0x4037fe20, - 0x1128: 0x40380220, 0x1129: 0x40380620, 0x112a: 0x40380a20, 0x112b: 0x40380e20, - 0x112c: 0x40381220, 0x112d: 0x40381620, 0x112e: 0x40381a20, 0x112f: 0x40382220, - 0x1130: 0x40382620, 0x1131: 0x4037b220, 0x1132: 0x4037ce20, 0x1133: 0x4037ea20, - 0x1134: 0x40381e20, 0x1135: 0x40382a20, 0x1136: 0x40382e20, 0x1137: 0x40383020, - 0x1138: 0x40383420, 0x1139: 0x40383620, 0x113a: 0x40383820, 0x113b: 0x40036020, - 0x113c: 0x0037ca94, 0x113d: 0x40383a20, 0x113e: 0x40383e20, 0x113f: 0x40384020, - // Block 0x45, offset 0x1140 - 0x1140: 0x4062ac20, 0x1141: 0x4062ae20, 0x1142: 0x4062b020, 0x1143: 0x4062b220, - 0x1144: 0x4062b420, 0x1145: 0x4062b620, 0x1146: 0x4062b820, 0x1147: 0x4062ba20, - 0x1148: 0x4062bc20, 0x1149: 0x4062be20, 0x114a: 0x4062c020, 0x114b: 0x4062c220, - 0x114c: 0x4062c420, 0x114d: 0x4062c620, 0x114e: 0x4062c820, 0x114f: 0x4062ca20, - 0x1150: 0x4062cc20, 0x1151: 0x4062ce20, 0x1152: 0x4062d020, 0x1153: 0x4062d220, - 0x1154: 0x4062d420, 0x1155: 0x4062d620, 0x1156: 0x4062d820, 0x1157: 0x4062da20, - 0x1158: 0x4062dc20, 0x1159: 0x4062de20, 0x115a: 0x4062e020, 0x115b: 0x4062e220, - 0x115c: 0x4062e420, 0x115d: 0x4062e620, 0x115e: 0x4062e820, 0x115f: 0x4062ea20, - 0x1160: 0x4062ec20, 0x1161: 0x4062ee20, 0x1162: 0x4062f020, 0x1163: 0x4062f220, - 0x1164: 0x4062f420, 0x1165: 0x4062f620, 0x1166: 0x4062f820, 0x1167: 0x4062fa20, - 0x1168: 0x4062fc20, 0x1169: 0x4062fe20, 0x116a: 0x40630020, 0x116b: 0x40630220, - 0x116c: 0x40630420, 0x116d: 0x40630620, 0x116e: 0x40630820, 0x116f: 0x40630a20, - 0x1170: 0x40630c20, 0x1171: 0x40630e20, 0x1172: 0x40631020, 0x1173: 0x40631220, - 0x1174: 0x40631420, 0x1175: 0x40631620, 0x1176: 0x40631820, 0x1177: 0x40631a20, - 0x1178: 0x40631c20, 0x1179: 0x40631e20, 0x117a: 0x40632020, 0x117b: 0x40632220, - 0x117c: 0x40632420, 0x117d: 0x40632620, 0x117e: 0x40632820, 0x117f: 0x40632a20, - // Block 0x46, offset 0x1180 - 0x1180: 0x40632c20, 0x1181: 0x40632e20, 0x1182: 0x40633020, 0x1183: 0x40633220, - 0x1184: 0x40633420, 0x1185: 0x40633620, 0x1186: 0x40633820, 0x1187: 0x40633a20, - 0x1188: 0x40633c20, 0x1189: 0x40633e20, 0x118a: 0x40634020, 0x118b: 0x40634220, - 0x118c: 0x40634420, 0x118d: 0x40634620, 0x118e: 0x40634820, 0x118f: 0x40634a20, - 0x1190: 0x40634c20, 0x1191: 0x40634e20, 0x1192: 0x40635020, 0x1193: 0x40635220, - 0x1194: 0x40635420, 0x1195: 0x40635620, 0x1196: 0x40635820, 0x1197: 0x40635a20, - 0x1198: 0x40635c20, 0x1199: 0x40635e20, 0x119a: 0x40636020, 0x119b: 0x40636220, - 0x119c: 0x40636420, 0x119d: 0x40636620, 0x119e: 0x40636820, 0x119f: 0x4063a420, - 0x11a0: 0x4063a620, 0x11a1: 0x4063a820, 0x11a2: 0x4063aa20, 0x11a3: 0x4063ac20, - 0x11a4: 0x4063ae20, 0x11a5: 0x4063b020, 0x11a6: 0x4063b220, 0x11a7: 0x4063b420, - 0x11a8: 0x4063b620, 0x11a9: 0x4063b820, 0x11aa: 0x4063ba20, 0x11ab: 0x4063bc20, - 0x11ac: 0x4063be20, 0x11ad: 0x4063c020, 0x11ae: 0x4063c220, 0x11af: 0x4063c420, - 0x11b0: 0x4063c620, 0x11b1: 0x4063c820, 0x11b2: 0x4063ca20, 0x11b3: 0x4063cc20, - 0x11b4: 0x4063ce20, 0x11b5: 0x4063d020, 0x11b6: 0x4063d220, 0x11b7: 0x4063d420, - 0x11b8: 0x4063d620, 0x11b9: 0x4063d820, 0x11ba: 0x4063da20, 0x11bb: 0x4063dc20, - 0x11bc: 0x4063de20, 0x11bd: 0x4063e020, 0x11be: 0x4063e220, 0x11bf: 0x4063e420, - // Block 0x47, offset 0x11c0 - 0x11c0: 0x4063e620, 0x11c1: 0x4063e820, 0x11c2: 0x4063ea20, 0x11c3: 0x4063ec20, - 0x11c4: 0x4063ee20, 0x11c5: 0x4063f020, 0x11c6: 0x4063f220, 0x11c7: 0x4063f420, - 0x11c8: 0x4063f620, 0x11c9: 0x4063f820, 0x11ca: 0x4063fa20, 0x11cb: 0x4063fc20, - 0x11cc: 0x4063fe20, 0x11cd: 0x40640020, 0x11ce: 0x40640220, 0x11cf: 0x40640420, - 0x11d0: 0x40640620, 0x11d1: 0x40640820, 0x11d2: 0x40640a20, 0x11d3: 0x40640c20, - 0x11d4: 0x40640e20, 0x11d5: 0x40641020, 0x11d6: 0x40641220, 0x11d7: 0x40641420, - 0x11d8: 0x40641620, 0x11d9: 0x40641820, 0x11da: 0x40641a20, 0x11db: 0x40641c20, - 0x11dc: 0x40641e20, 0x11dd: 0x40642020, 0x11de: 0x40642220, 0x11df: 0x40642420, - 0x11e0: 0x40642620, 0x11e1: 0x40642820, 0x11e2: 0x40642a20, 0x11e3: 0x40642c20, - 0x11e4: 0x40642e20, 0x11e5: 0x40643020, 0x11e6: 0x40643220, 0x11e7: 0x40643420, - 0x11e8: 0x40646420, 0x11e9: 0x40646620, 0x11ea: 0x40646820, 0x11eb: 0x40646a20, - 0x11ec: 0x40646c20, 0x11ed: 0x40646e20, 0x11ee: 0x40647020, 0x11ef: 0x40647220, - 0x11f0: 0x40647420, 0x11f1: 0x40647620, 0x11f2: 0x40647820, 0x11f3: 0x40647a20, - 0x11f4: 0x40647c20, 0x11f5: 0x40647e20, 0x11f6: 0x40648020, 0x11f7: 0x40648220, - 0x11f8: 0x40648420, 0x11f9: 0x40648620, 0x11fa: 0x40648820, 0x11fb: 0x40648a20, - 0x11fc: 0x40648c20, 0x11fd: 0x40648e20, 0x11fe: 0x40649020, 0x11ff: 0x40649220, - // Block 0x48, offset 0x1200 - 0x1200: 0x40649420, 0x1201: 0x40649620, 0x1202: 0x40649820, 0x1203: 0x40649a20, - 0x1204: 0x40649c20, 0x1205: 0x40649e20, 0x1206: 0x4064a020, 0x1207: 0x4064a220, - 0x1208: 0x4064a420, 0x1209: 0x4064a620, 0x120a: 0x4064a820, 0x120b: 0x4064aa20, - 0x120c: 0x4064ac20, 0x120d: 0x4064ae20, 0x120e: 0x4064b020, 0x120f: 0x4064b220, - 0x1210: 0x4064b420, 0x1211: 0x4064b620, 0x1212: 0x4064b820, 0x1213: 0x4064ba20, - 0x1214: 0x4064bc20, 0x1215: 0x4064be20, 0x1216: 0x4064c020, 0x1217: 0x4064c220, - 0x1218: 0x4064c420, 0x1219: 0x4064c620, 0x121a: 0x4064c820, 0x121b: 0x4064ca20, - 0x121c: 0x4064cc20, 0x121d: 0x4064ce20, 0x121e: 0x4064d020, 0x121f: 0x4064d220, - 0x1220: 0x4064d420, 0x1221: 0x4064d620, 0x1222: 0x4064d820, 0x1223: 0x4064da20, - 0x1224: 0x4064dc20, 0x1225: 0x4064de20, 0x1226: 0x4064e020, 0x1227: 0x4064e220, - 0x1228: 0x4064e420, 0x1229: 0x4064e620, 0x122a: 0x4064e820, 0x122b: 0x4064ea20, - 0x122c: 0x4064ec20, 0x122d: 0x4064ee20, 0x122e: 0x4064f020, 0x122f: 0x4064f220, - 0x1230: 0x4064f420, 0x1231: 0x4064f620, 0x1232: 0x4064f820, 0x1233: 0x4064fa20, - 0x1234: 0x4064fc20, 0x1235: 0x4064fe20, 0x1236: 0x40650020, 0x1237: 0x40650220, - 0x1238: 0x40650420, 0x1239: 0x40650620, 0x123a: 0x40650820, 0x123b: 0x40650a20, - 0x123c: 0x40650c20, 0x123d: 0x40650e20, 0x123e: 0x40651020, 0x123f: 0x40651220, - // Block 0x49, offset 0x1240 - 0x1240: 0x403c2e20, 0x1241: 0x403c3020, 0x1242: 0x403c3220, 0x1243: 0x403c3420, - 0x1244: 0x403c3620, 0x1245: 0x403c3820, 0x1246: 0x403c3a20, 0x1247: 0x403c3c20, - 0x1248: 0x403c3e20, 0x1249: 0x403c4020, 0x124a: 0x403c4220, 0x124b: 0x403c4420, - 0x124c: 0x403c4620, 0x124d: 0x403c4820, 0x124e: 0x403c4a20, 0x124f: 0x403c4c20, - 0x1250: 0x403c5020, 0x1251: 0x403c5220, 0x1252: 0x403c5420, 0x1253: 0x403c5620, - 0x1254: 0x403c5820, 0x1255: 0x403c5a20, 0x1256: 0x403c5c20, 0x1257: 0x403c5e20, - 0x1258: 0x403c6020, 0x1259: 0x403c6220, 0x125a: 0x403c6420, 0x125b: 0x403c6620, - 0x125c: 0x403c6820, 0x125d: 0x403c6a20, 0x125e: 0x403c6c20, 0x125f: 0x403c6e20, - 0x1260: 0x403c7a20, 0x1261: 0x403c7c20, 0x1262: 0x403c7e20, 0x1263: 0x403c8020, - 0x1264: 0x403c8220, 0x1265: 0x403c8420, 0x1266: 0x403c8620, 0x1267: 0x403c8820, - 0x1268: 0x403c8a20, 0x1269: 0x403c8c20, 0x126a: 0x403c8e20, 0x126b: 0x403c9020, - 0x126c: 0x403c9220, 0x126d: 0x403c9420, 0x126e: 0x403c9620, 0x126f: 0x403c9820, - 0x1270: 0x403c9c20, 0x1271: 0x403c9e20, 0x1272: 0x403ca020, 0x1273: 0x403ca220, - 0x1274: 0x403ca420, 0x1275: 0x403ca620, 0x1276: 0x403ca820, 0x1277: 0x403caa20, - 0x1278: 0x403cba20, 0x1279: 0x403cbc20, 0x127a: 0x403cbe20, 0x127b: 0x403cc020, - 0x127c: 0x403cc220, 0x127d: 0x403cc420, 0x127e: 0x403cc620, 0x127f: 0x403cc820, - // Block 0x4a, offset 0x1280 - 0x1280: 0x403ccc20, 0x1281: 0x403cce20, 0x1282: 0x403cd020, 0x1283: 0x403cd220, - 0x1284: 0x403cd420, 0x1285: 0x403cd620, 0x1286: 0x403cd820, 0x1287: 0x403cda20, - 0x1288: 0x403cdc20, 0x128a: 0x403cde20, 0x128b: 0x403ce020, - 0x128c: 0x403ce220, 0x128d: 0x403ce420, - 0x1290: 0x403ce620, 0x1291: 0x403ce820, 0x1292: 0x403cea20, 0x1293: 0x403cec20, - 0x1294: 0x403cee20, 0x1295: 0x403cf020, 0x1296: 0x403cf220, - 0x1298: 0x403cf420, 0x129a: 0x403cf620, 0x129b: 0x403cf820, - 0x129c: 0x403cfa20, 0x129d: 0x403cfc20, - 0x12a0: 0x403cfe20, 0x12a1: 0x403d0020, 0x12a2: 0x403d0220, 0x12a3: 0x403d0420, - 0x12a4: 0x403d0620, 0x12a5: 0x403d0820, 0x12a6: 0x403d0a20, 0x12a7: 0x403d0c20, - 0x12a8: 0x403d1820, 0x12a9: 0x403d1a20, 0x12aa: 0x403d1c20, 0x12ab: 0x403d1e20, - 0x12ac: 0x403d2020, 0x12ad: 0x403d2220, 0x12ae: 0x403d2420, 0x12af: 0x403d2620, - 0x12b0: 0x403d2820, 0x12b1: 0x403d2a20, 0x12b2: 0x403d2c20, 0x12b3: 0x403d2e20, - 0x12b4: 0x403d3020, 0x12b5: 0x403d3220, 0x12b6: 0x403d3420, 0x12b7: 0x403d3620, - 0x12b8: 0x403d3a20, 0x12b9: 0x403d3c20, 0x12ba: 0x403d3e20, 0x12bb: 0x403d4020, - 0x12bc: 0x403d4220, 0x12bd: 0x403d4420, 0x12be: 0x403d4620, 0x12bf: 0x403d4820, - // Block 0x4b, offset 0x12c0 - 0x12c0: 0x403d4c20, 0x12c1: 0x403d4e20, 0x12c2: 0x403d5020, 0x12c3: 0x403d5220, - 0x12c4: 0x403d5420, 0x12c5: 0x403d5620, 0x12c6: 0x403d5820, 0x12c7: 0x403d5a20, - 0x12c8: 0x403d5c20, 0x12ca: 0x403d5e20, 0x12cb: 0x403d6020, - 0x12cc: 0x403d6220, 0x12cd: 0x403d6420, - 0x12d0: 0x403d6620, 0x12d1: 0x403d6820, 0x12d2: 0x403d6a20, 0x12d3: 0x403d6c20, - 0x12d4: 0x403d6e20, 0x12d5: 0x403d7020, 0x12d6: 0x403d7220, 0x12d7: 0x403d7420, - 0x12d8: 0x403d7820, 0x12d9: 0x403d7a20, 0x12da: 0x403d7c20, 0x12db: 0x403d7e20, - 0x12dc: 0x403d8020, 0x12dd: 0x403d8220, 0x12de: 0x403d8420, 0x12df: 0x403d8620, - 0x12e0: 0x403d8a20, 0x12e1: 0x403d8c20, 0x12e2: 0x403d8e20, 0x12e3: 0x403d9020, - 0x12e4: 0x403d9220, 0x12e5: 0x403d9420, 0x12e6: 0x403d9620, 0x12e7: 0x403d9820, - 0x12e8: 0x403d9c20, 0x12e9: 0x403d9e20, 0x12ea: 0x403da020, 0x12eb: 0x403da220, - 0x12ec: 0x403da420, 0x12ed: 0x403da620, 0x12ee: 0x403da820, 0x12ef: 0x403daa20, - 0x12f0: 0x403dac20, 0x12f2: 0x403dae20, 0x12f3: 0x403db020, - 0x12f4: 0x403db220, 0x12f5: 0x403db420, - 0x12f8: 0x403db620, 0x12f9: 0x403db820, 0x12fa: 0x403dba20, 0x12fb: 0x403dbc20, - 0x12fc: 0x403dbe20, 0x12fd: 0x403dc020, 0x12fe: 0x403dc220, - // Block 0x4c, offset 0x1300 - 0x1300: 0x403dc420, 0x1302: 0x403dc620, 0x1303: 0x403dc820, - 0x1304: 0x403dca20, 0x1305: 0x403dcc20, - 0x1308: 0x403dce20, 0x1309: 0x403dd020, 0x130a: 0x403dd220, 0x130b: 0x403dd420, - 0x130c: 0x403dd620, 0x130d: 0x403dd820, 0x130e: 0x403dda20, 0x130f: 0x403ddc20, - 0x1310: 0x403dde20, 0x1311: 0x403de020, 0x1312: 0x403de220, 0x1313: 0x403de420, - 0x1314: 0x403de620, 0x1315: 0x403de820, 0x1316: 0x403dea20, - 0x1318: 0x403dec20, 0x1319: 0x403dee20, 0x131a: 0x403df020, 0x131b: 0x403df220, - 0x131c: 0x403df420, 0x131d: 0x403df620, 0x131e: 0x403df820, 0x131f: 0x403dfa20, - 0x1320: 0x403e0a20, 0x1321: 0x403e0c20, 0x1322: 0x403e0e20, 0x1323: 0x403e1020, - 0x1324: 0x403e1220, 0x1325: 0x403e1420, 0x1326: 0x403e1620, 0x1327: 0x403e1820, - 0x1328: 0x403e1a20, 0x1329: 0x403e1c20, 0x132a: 0x403e1e20, 0x132b: 0x403e2020, - 0x132c: 0x403e2220, 0x132d: 0x403e2420, 0x132e: 0x403e2620, 0x132f: 0x403e2820, - 0x1330: 0x403e2a20, 0x1331: 0x403e2c20, 0x1332: 0x403e2e20, 0x1333: 0x403e3020, - 0x1334: 0x403e3220, 0x1335: 0x403e3420, 0x1336: 0x403e3620, 0x1337: 0x403e3820, - 0x1338: 0x403e4820, 0x1339: 0x403e4a20, 0x133a: 0x403e4c20, 0x133b: 0x403e4e20, - 0x133c: 0x403e5020, 0x133d: 0x403e5220, 0x133e: 0x403e5420, 0x133f: 0x403e5620, - // Block 0x4d, offset 0x1340 - 0x1340: 0x403e5a20, 0x1341: 0x403e5c20, 0x1342: 0x403e5e20, 0x1343: 0x403e6020, - 0x1344: 0x403e6220, 0x1345: 0x403e6420, 0x1346: 0x403e6620, 0x1347: 0x403e6820, - 0x1348: 0x403e6c20, 0x1349: 0x403e6e20, 0x134a: 0x403e7020, 0x134b: 0x403e7220, - 0x134c: 0x403e7420, 0x134d: 0x403e7620, 0x134e: 0x403e7820, 0x134f: 0x403e7a20, - 0x1350: 0x403e7c20, 0x1352: 0x403e7e20, 0x1353: 0x403e8020, - 0x1354: 0x403e8220, 0x1355: 0x403e8420, - 0x1358: 0x403e8620, 0x1359: 0x403e8820, 0x135a: 0x403e8a20, 0x135b: 0x403e8c20, - 0x135c: 0x403e8e20, 0x135d: 0x403e9020, 0x135e: 0x403e9220, 0x135f: 0x403e9420, - 0x1360: 0x403e9e20, 0x1361: 0x403ea020, 0x1362: 0x403ea220, 0x1363: 0x403ea420, - 0x1364: 0x403ea620, 0x1365: 0x403ea820, 0x1366: 0x403eaa20, 0x1367: 0x403eac20, - 0x1368: 0x403eb020, 0x1369: 0x403eb220, 0x136a: 0x403eb420, 0x136b: 0x403eb620, - 0x136c: 0x403eb820, 0x136d: 0x403eba20, 0x136e: 0x403ebc20, 0x136f: 0x403ebe20, - 0x1370: 0x403ed020, 0x1371: 0x403ed220, 0x1372: 0x403ed420, 0x1373: 0x403ed620, - 0x1374: 0x403ed820, 0x1375: 0x403eda20, 0x1376: 0x403edc20, 0x1377: 0x403ede20, - 0x1378: 0x403ee220, 0x1379: 0x403ee420, 0x137a: 0x403ee620, 0x137b: 0x403ee820, - 0x137c: 0x403eea20, 0x137d: 0x403eec20, 0x137e: 0x403eee20, 0x137f: 0x403ef020, - // Block 0x4e, offset 0x1380 - 0x1380: 0x403f0020, 0x1381: 0x403f0220, 0x1382: 0x403f0420, 0x1383: 0x403f0620, - 0x1384: 0x403f0820, 0x1385: 0x403f0a20, 0x1386: 0x403f0c20, 0x1387: 0x403f0e20, - 0x1388: 0x403f1020, 0x1389: 0x403f1220, 0x138a: 0x403f1420, 0x138b: 0x403f1620, - 0x138c: 0x403f1820, 0x138d: 0x403f1a20, 0x138e: 0x403f1c20, 0x138f: 0x403f1e20, - 0x1390: 0x403f2820, 0x1391: 0x403f2a20, 0x1392: 0x403f2c20, 0x1393: 0x403f2e20, - 0x1394: 0x403f3020, 0x1395: 0x403f3220, 0x1396: 0x403f3420, 0x1397: 0x403f3620, - 0x1398: 0x403f4220, 0x1399: 0x403f4420, 0x139a: 0x403f4620, - 0x139d: 0xae60ee02, 0x139e: 0xae60ed02, 0x139f: 0xae60ec02, - 0x13a0: 0x40036220, 0x13a1: 0x40029c20, 0x13a2: 0x4002ee20, 0x13a3: 0x40029e20, - 0x13a4: 0x4002a020, 0x13a5: 0x4002a220, 0x13a6: 0x4002a420, 0x13a7: 0x4002d020, - 0x13a8: 0x40036420, 0x13a9: 0xe00001f2, 0x13aa: 0xe000030d, 0x13ab: 0xe00003e7, - 0x13ac: 0xe00004c2, 0x13ad: 0xe000058c, 0x13ae: 0xe0000657, 0x13af: 0xe00006ff, - 0x13b0: 0xe00007ab, 0x13b1: 0xe0000850, 0x13b2: 0x40286620, 0x13b3: 0x40286820, - 0x13b4: 0x40286a20, 0x13b5: 0x40286c20, 0x13b6: 0x40286e20, 0x13b7: 0x40287020, - 0x13b8: 0x40287220, 0x13b9: 0x40287420, 0x13ba: 0x40287620, 0x13bb: 0x40287820, - 0x13bc: 0x40287a20, - // Block 0x4f, offset 0x13c0 - 0x13c0: 0x403c7020, 0x13c1: 0x403c7220, 0x13c2: 0x403c7420, 0x13c3: 0x403c7620, - 0x13c4: 0x403d0e20, 0x13c5: 0x403d1020, 0x13c6: 0x403d1220, 0x13c7: 0x403d1420, - 0x13c8: 0x403f2020, 0x13c9: 0x403f2220, 0x13ca: 0x403f2420, 0x13cb: 0x403f2620, - 0x13cc: 0x403f3820, 0x13cd: 0x403f3a20, 0x13ce: 0x403f3c20, 0x13cf: 0x403f3e20, - 0x13d0: 0x4006a620, 0x13d1: 0x4006a820, 0x13d2: 0x4006aa20, 0x13d3: 0x4006ac20, - 0x13d4: 0x4006ae20, 0x13d5: 0x4006b020, 0x13d6: 0x4006b220, 0x13d7: 0x4006b420, - 0x13d8: 0x4006b620, 0x13d9: 0x4006b820, - 0x13e0: 0x40547620, 0x13e1: 0x40547820, 0x13e2: 0x40547a20, 0x13e3: 0x40547c20, - 0x13e4: 0x40547e20, 0x13e5: 0x40548020, 0x13e6: 0x40548220, 0x13e7: 0x40548420, - 0x13e8: 0x40548620, 0x13e9: 0x40548820, 0x13ea: 0x40548a20, 0x13eb: 0x40548c20, - 0x13ec: 0x40548e20, 0x13ed: 0x40549020, 0x13ee: 0x40549220, 0x13ef: 0x40549420, - 0x13f0: 0x40549620, 0x13f1: 0x40549820, 0x13f2: 0x40549a20, 0x13f3: 0x40549c20, - 0x13f4: 0x40549e20, 0x13f5: 0x4054a020, 0x13f6: 0x4054a220, 0x13f7: 0x4054a420, - 0x13f8: 0x4054a620, 0x13f9: 0x4054a820, 0x13fa: 0x4054aa20, 0x13fb: 0x4054ac20, - 0x13fc: 0x4054ae20, 0x13fd: 0x4054b020, 0x13fe: 0x4054b220, 0x13ff: 0x4054b420, - // Block 0x50, offset 0x1400 - 0x1400: 0x4054b620, 0x1401: 0x4054b820, 0x1402: 0x4054ba20, 0x1403: 0x4054bc20, - 0x1404: 0x4054be20, 0x1405: 0x4054c020, 0x1406: 0x4054c220, 0x1407: 0x4054c420, - 0x1408: 0x4054c620, 0x1409: 0x4054c820, 0x140a: 0x4054ca20, 0x140b: 0x4054cc20, - 0x140c: 0x4054ce20, 0x140d: 0x4054d020, 0x140e: 0x4054d220, 0x140f: 0x4054d420, - 0x1410: 0x4054d620, 0x1411: 0x4054d820, 0x1412: 0x4054da20, 0x1413: 0x4054dc20, - 0x1414: 0x4054de20, 0x1415: 0x4054e020, 0x1416: 0x4054e220, 0x1417: 0x4054e420, - 0x1418: 0x4054e620, 0x1419: 0x4054e820, 0x141a: 0x4054ea20, 0x141b: 0x4054ec20, - 0x141c: 0x4054ee20, 0x141d: 0x4054f020, 0x141e: 0x4054f220, 0x141f: 0x4054f420, - 0x1420: 0x4054f620, 0x1421: 0x4054f820, 0x1422: 0x4054fa20, 0x1423: 0x4054fc20, - 0x1424: 0x4054fe20, 0x1425: 0x40550020, 0x1426: 0x40550220, 0x1427: 0x40550420, - 0x1428: 0x40550620, 0x1429: 0x40550820, 0x142a: 0x40550a20, 0x142b: 0x40550c20, - 0x142c: 0x40550e20, 0x142d: 0x40551020, 0x142e: 0x40551220, 0x142f: 0x40551420, - 0x1430: 0x40551620, 0x1431: 0x40551820, 0x1432: 0x40551a20, 0x1433: 0x40551c20, - 0x1434: 0x40551e20, - // Block 0x51, offset 0x1440 - 0x1440: 0x40021e20, 0x1441: 0x40552020, 0x1442: 0x40552220, 0x1443: 0x40552420, - 0x1444: 0x40552620, 0x1445: 0x40552820, 0x1446: 0x40552a20, 0x1447: 0x40552c20, - 0x1448: 0x40552e20, 0x1449: 0x40553020, 0x144a: 0x40553220, 0x144b: 0x40553420, - 0x144c: 0x40553620, 0x144d: 0x40553820, 0x144e: 0x40553a20, 0x144f: 0x40553c20, - 0x1450: 0x40553e20, 0x1451: 0x40554020, 0x1452: 0x40554220, 0x1453: 0x40554420, - 0x1454: 0x40554620, 0x1455: 0x40554820, 0x1456: 0x40554a20, 0x1457: 0x40554c20, - 0x1458: 0x40554e20, 0x1459: 0x40555020, 0x145a: 0x40555220, 0x145b: 0x40555420, - 0x145c: 0x40555620, 0x145d: 0x40555820, 0x145e: 0x40555a20, 0x145f: 0x40555c20, - 0x1460: 0x40555e20, 0x1461: 0x40556020, 0x1462: 0x40556220, 0x1463: 0x40556420, - 0x1464: 0x40556620, 0x1465: 0x40556820, 0x1466: 0x40556a20, 0x1467: 0x40556c20, - 0x1468: 0x40556e20, 0x1469: 0x40557020, 0x146a: 0x40557220, 0x146b: 0x40557420, - 0x146c: 0x40557620, 0x146d: 0x40557820, 0x146e: 0x40557a20, 0x146f: 0x40557c20, - 0x1470: 0x40557e20, 0x1471: 0x40558020, 0x1472: 0x40558220, 0x1473: 0x40558420, - 0x1474: 0x40558620, 0x1475: 0x40558820, 0x1476: 0x40558a20, 0x1477: 0x40558c20, - 0x1478: 0x40558e20, 0x1479: 0x40559020, 0x147a: 0x40559220, 0x147b: 0x40559420, - 0x147c: 0x40559620, 0x147d: 0x40559820, 0x147e: 0x40559a20, 0x147f: 0x40559c20, - // Block 0x52, offset 0x1480 - 0x1480: 0x40559e20, 0x1481: 0x4055a020, 0x1482: 0x4055a220, 0x1483: 0x4055a420, - 0x1484: 0x4055a620, 0x1485: 0x4055a820, 0x1486: 0x4055aa20, 0x1487: 0x4055ac20, - 0x1488: 0x4055ae20, 0x1489: 0x4055b020, 0x148a: 0x4055b220, 0x148b: 0x4055b420, - 0x148c: 0x4055b620, 0x148d: 0x4055b820, 0x148e: 0x4055ba20, 0x148f: 0x4055bc20, - 0x1490: 0x4055be20, 0x1491: 0x4055c020, 0x1492: 0x4055c220, 0x1493: 0x4055c420, - 0x1494: 0x4055c620, 0x1495: 0x4055c820, 0x1496: 0x4055ca20, 0x1497: 0x4055cc20, - 0x1498: 0x4055ce20, 0x1499: 0x4055d020, 0x149a: 0x4055d220, 0x149b: 0x4055d420, - 0x149c: 0x4055d620, 0x149d: 0x4055d820, 0x149e: 0x4055da20, 0x149f: 0x4055dc20, - 0x14a0: 0x4055de20, 0x14a1: 0x4055e020, 0x14a2: 0x4055e220, 0x14a3: 0x4055e420, - 0x14a4: 0x4055e620, 0x14a5: 0x4055e820, 0x14a6: 0x4055ea20, 0x14a7: 0x4055ec20, - 0x14a8: 0x4055ee20, 0x14a9: 0x4055f020, 0x14aa: 0x4055f220, 0x14ab: 0x4055f420, - 0x14ac: 0x4055f620, 0x14ad: 0x4055f820, 0x14ae: 0x4055fa20, 0x14af: 0x4055fc20, - 0x14b0: 0x4055fe20, 0x14b1: 0x40560020, 0x14b2: 0x40560220, 0x14b3: 0x40560420, - 0x14b4: 0x40560620, 0x14b5: 0x40560820, 0x14b6: 0x40560a20, 0x14b7: 0x40560c20, - 0x14b8: 0x40560e20, 0x14b9: 0x40561020, 0x14ba: 0x40561220, 0x14bb: 0x40561420, - 0x14bc: 0x40561620, 0x14bd: 0x40561820, 0x14be: 0x40561a20, 0x14bf: 0x40561c20, - // Block 0x53, offset 0x14c0 - 0x14c0: 0x40561e20, 0x14c1: 0x40562020, 0x14c2: 0x40562220, 0x14c3: 0x40562420, - 0x14c4: 0x40562620, 0x14c5: 0x40562820, 0x14c6: 0x40562a20, 0x14c7: 0x40562c20, - 0x14c8: 0x40562e20, 0x14c9: 0x40563020, 0x14ca: 0x40563220, 0x14cb: 0x40563420, - 0x14cc: 0x40563620, 0x14cd: 0x40563820, 0x14ce: 0x40563a20, 0x14cf: 0x40563c20, - 0x14d0: 0x40563e20, 0x14d1: 0x40564020, 0x14d2: 0x40564220, 0x14d3: 0x40564420, - 0x14d4: 0x40564620, 0x14d5: 0x40564820, 0x14d6: 0x40564a20, 0x14d7: 0x40564c20, - 0x14d8: 0x40564e20, 0x14d9: 0x40565020, 0x14da: 0x40565220, 0x14db: 0x40565420, - 0x14dc: 0x40565620, 0x14dd: 0x40565820, 0x14de: 0x40565a20, 0x14df: 0x40565c20, - 0x14e0: 0x40565e20, 0x14e1: 0x40566020, 0x14e2: 0x40566220, 0x14e3: 0x40566420, - 0x14e4: 0x40566620, 0x14e5: 0x40566820, 0x14e6: 0x40566a20, 0x14e7: 0x40566c20, - 0x14e8: 0x40566e20, 0x14e9: 0x40567020, 0x14ea: 0x40567220, 0x14eb: 0x40567420, - 0x14ec: 0x40567620, 0x14ed: 0x40567820, 0x14ee: 0x40567a20, 0x14ef: 0x40567c20, - 0x14f0: 0x40567e20, 0x14f1: 0x40568020, 0x14f2: 0x40568220, 0x14f3: 0x40568420, - 0x14f4: 0x40568620, 0x14f5: 0x40568820, 0x14f6: 0x40568a20, 0x14f7: 0x40568c20, - 0x14f8: 0x40568e20, 0x14f9: 0x40569020, 0x14fa: 0x40569220, 0x14fb: 0x40569420, - 0x14fc: 0x40569620, 0x14fd: 0x40569820, 0x14fe: 0x40569a20, 0x14ff: 0x40569c20, - // Block 0x54, offset 0x1500 - 0x1500: 0x40569e20, 0x1501: 0x4056a020, 0x1502: 0x4056a220, 0x1503: 0x4056a420, - 0x1504: 0x4056a620, 0x1505: 0x4056a820, 0x1506: 0x4056aa20, 0x1507: 0x4056ac20, - 0x1508: 0x4056ae20, 0x1509: 0x4056b020, 0x150a: 0x4056b220, 0x150b: 0x4056b420, - 0x150c: 0x4056b620, 0x150d: 0x4056b820, 0x150e: 0x4056ba20, 0x150f: 0x4056bc20, - 0x1510: 0x4056be20, 0x1511: 0x4056c020, 0x1512: 0x4056c220, 0x1513: 0x4056c420, - 0x1514: 0x4056c620, 0x1515: 0x4056c820, 0x1516: 0x4056ca20, 0x1517: 0x4056cc20, - 0x1518: 0x4056ce20, 0x1519: 0x4056d020, 0x151a: 0x4056d220, 0x151b: 0x4056d420, - 0x151c: 0x4056d620, 0x151d: 0x4056d820, 0x151e: 0x4056da20, 0x151f: 0x4056dc20, - 0x1520: 0x4056de20, 0x1521: 0x4056e020, 0x1522: 0x4056e220, 0x1523: 0x4056e420, - 0x1524: 0x4056e620, 0x1525: 0x4056e820, 0x1526: 0x4056ea20, 0x1527: 0x4056ec20, - 0x1528: 0x4056ee20, 0x1529: 0x4056f020, 0x152a: 0x4056f220, 0x152b: 0x4056f420, - 0x152c: 0x4056f620, 0x152d: 0x4056f820, 0x152e: 0x4056fa20, 0x152f: 0x4056fc20, - 0x1530: 0x4056fe20, 0x1531: 0x40570020, 0x1532: 0x40570220, 0x1533: 0x40570420, - 0x1534: 0x40570620, 0x1535: 0x40570820, 0x1536: 0x40570a20, 0x1537: 0x40570c20, - 0x1538: 0x40570e20, 0x1539: 0x40571020, 0x153a: 0x40571220, 0x153b: 0x40571420, - 0x153c: 0x40571620, 0x153d: 0x40571820, 0x153e: 0x40571a20, 0x153f: 0x40571c20, - // Block 0x55, offset 0x1540 - 0x1540: 0x40571e20, 0x1541: 0x40572020, 0x1542: 0x40572220, 0x1543: 0x40572420, - 0x1544: 0x40572620, 0x1545: 0x40572820, 0x1546: 0x40572a20, 0x1547: 0x40572c20, - 0x1548: 0x40572e20, 0x1549: 0x40573020, 0x154a: 0x40573220, 0x154b: 0x40573420, - 0x154c: 0x40573620, 0x154d: 0x40573820, 0x154e: 0x40573a20, 0x154f: 0x40573c20, - 0x1550: 0x40573e20, 0x1551: 0x40574020, 0x1552: 0x40574220, 0x1553: 0x40574420, - 0x1554: 0x40574620, 0x1555: 0x40574820, 0x1556: 0x40574a20, 0x1557: 0x40574c20, - 0x1558: 0x40574e20, 0x1559: 0x40575020, 0x155a: 0x40575220, 0x155b: 0x40575420, - 0x155c: 0x40575620, 0x155d: 0x40575820, 0x155e: 0x40575a20, 0x155f: 0x40575c20, - 0x1560: 0x40575e20, 0x1561: 0x40576020, 0x1562: 0x40576220, 0x1563: 0x40576420, - 0x1564: 0x40576620, 0x1565: 0x40576820, 0x1566: 0x40576a20, 0x1567: 0x40576c20, - 0x1568: 0x40576e20, 0x1569: 0x40577020, 0x156a: 0x40577220, 0x156b: 0x40577420, - 0x156c: 0x40577620, 0x156d: 0x40577820, 0x156e: 0x40577a20, 0x156f: 0x40577c20, - 0x1570: 0x40577e20, 0x1571: 0x40578020, 0x1572: 0x40578220, 0x1573: 0x40578420, - 0x1574: 0x40578620, 0x1575: 0x40578820, 0x1576: 0x40578a20, 0x1577: 0x40578c20, - 0x1578: 0x40578e20, 0x1579: 0x40579020, 0x157a: 0x40579220, 0x157b: 0x40579420, - 0x157c: 0x40579620, 0x157d: 0x40579820, 0x157e: 0x40579a20, 0x157f: 0x40579c20, - // Block 0x56, offset 0x1580 - 0x1580: 0x40579e20, 0x1581: 0x4057a020, 0x1582: 0x4057a220, 0x1583: 0x4057a420, - 0x1584: 0x4057a620, 0x1585: 0x4057a820, 0x1586: 0x4057aa20, 0x1587: 0x4057ac20, - 0x1588: 0x4057ae20, 0x1589: 0x4057b020, 0x158a: 0x4057b220, 0x158b: 0x4057b420, - 0x158c: 0x4057b620, 0x158d: 0x4057b820, 0x158e: 0x4057ba20, 0x158f: 0x4057bc20, - 0x1590: 0x4057be20, 0x1591: 0x4057c020, 0x1592: 0x4057c220, 0x1593: 0x4057c420, - 0x1594: 0x4057c620, 0x1595: 0x4057c820, 0x1596: 0x4057ca20, 0x1597: 0x4057cc20, - 0x1598: 0x4057ce20, 0x1599: 0x4057d020, 0x159a: 0x4057d220, 0x159b: 0x4057d420, - 0x159c: 0x4057d620, 0x159d: 0x4057d820, 0x159e: 0x4057da20, 0x159f: 0x4057dc20, - 0x15a0: 0x4057de20, 0x15a1: 0x4057e020, 0x15a2: 0x4057e220, 0x15a3: 0x4057e420, - 0x15a4: 0x4057e620, 0x15a5: 0x4057e820, 0x15a6: 0x4057ea20, 0x15a7: 0x4057ec20, - 0x15a8: 0x4057ee20, 0x15a9: 0x4057f020, 0x15aa: 0x4057f220, 0x15ab: 0x4057f420, - 0x15ac: 0x4057f620, 0x15ad: 0x4057f820, 0x15ae: 0x4057fa20, 0x15af: 0x4057fc20, - 0x15b0: 0x4057fe20, 0x15b1: 0x40580020, 0x15b2: 0x40580220, 0x15b3: 0x40580420, - 0x15b4: 0x40580620, 0x15b5: 0x40580820, 0x15b6: 0x40580a20, 0x15b7: 0x40580c20, - 0x15b8: 0x40580e20, 0x15b9: 0x40581020, 0x15ba: 0x40581220, 0x15bb: 0x40581420, - 0x15bc: 0x40587a20, 0x15bd: 0x40581620, 0x15be: 0x40581a20, 0x15bf: 0x40581c20, - // Block 0x57, offset 0x15c0 - 0x15c0: 0x40581e20, 0x15c1: 0x40582020, 0x15c2: 0x40582220, 0x15c3: 0x40582420, - 0x15c4: 0x40582620, 0x15c5: 0x40582820, 0x15c6: 0x40582a20, 0x15c7: 0x40582c20, - 0x15c8: 0x40582e20, 0x15c9: 0x40583020, 0x15ca: 0x40583220, 0x15cb: 0x40583420, - 0x15cc: 0x40583620, 0x15cd: 0x40583820, 0x15ce: 0x40583c20, 0x15cf: 0x40583e20, - 0x15d0: 0x40584020, 0x15d1: 0x40584220, 0x15d2: 0x40584420, 0x15d3: 0x40584620, - 0x15d4: 0x40584820, 0x15d5: 0x40584a20, 0x15d6: 0x40585820, 0x15d7: 0x40585a20, - 0x15d8: 0x40585c20, 0x15d9: 0x40585e20, 0x15da: 0x40586020, 0x15db: 0x40586220, - 0x15dc: 0x40586420, 0x15dd: 0x40586620, 0x15de: 0x40586820, 0x15df: 0x40586a20, - 0x15e0: 0x40586c20, 0x15e1: 0x40586e20, 0x15e2: 0x40587020, 0x15e3: 0x40587220, - 0x15e4: 0x40587420, 0x15e5: 0x40587620, 0x15e6: 0x40587820, 0x15e7: 0x40587c20, - 0x15e8: 0x40587e20, 0x15e9: 0x40588020, 0x15ea: 0x40588220, 0x15eb: 0x40588420, - 0x15ec: 0x40588620, 0x15ed: 0x40588820, 0x15ee: 0x40588a20, 0x15ef: 0x40588c20, - 0x15f0: 0x40588e20, 0x15f1: 0x40589020, 0x15f2: 0x40589220, 0x15f3: 0x40589420, - 0x15f4: 0x40589620, 0x15f5: 0x40589820, 0x15f6: 0x40589a20, 0x15f7: 0x40589c20, - 0x15f8: 0x40589e20, 0x15f9: 0x4058a020, 0x15fa: 0x4058a220, 0x15fb: 0x4058a420, - 0x15fc: 0x4058a620, 0x15fd: 0x4058a820, 0x15fe: 0x4058aa20, 0x15ff: 0x4058ac20, - // Block 0x58, offset 0x1600 - 0x1600: 0x4058ae20, 0x1601: 0x4058b020, 0x1602: 0x4058b220, 0x1603: 0x4058b420, - 0x1604: 0x4058b620, 0x1605: 0x4058b820, 0x1606: 0x4058ba20, 0x1607: 0x4058bc20, - 0x1608: 0x4058be20, 0x1609: 0x4058c020, 0x160a: 0x4058c220, 0x160b: 0x4058c420, - 0x160c: 0x4058c620, 0x160d: 0x4058c820, 0x160e: 0x4058ca20, 0x160f: 0x4058cc20, - 0x1610: 0x4058ce20, 0x1611: 0x4058d020, 0x1612: 0x4058d220, 0x1613: 0x4058d420, - 0x1614: 0x4058d620, 0x1615: 0x4058d820, 0x1616: 0x4058da20, 0x1617: 0x4058dc20, - 0x1618: 0x4058de20, 0x1619: 0x4058e020, 0x161a: 0x4058e220, 0x161b: 0x4058e420, - 0x161c: 0x4058e620, 0x161d: 0x4058e820, 0x161e: 0x4058ea20, 0x161f: 0x4058ec20, - 0x1620: 0x4058ee20, 0x1621: 0x4058f020, 0x1622: 0x4058f220, 0x1623: 0x4058f420, - 0x1624: 0x4058f620, 0x1625: 0x4058f820, 0x1626: 0x4058fa20, 0x1627: 0x4058fc20, - 0x1628: 0x4058fe20, 0x1629: 0x40590020, 0x162a: 0x40590220, 0x162b: 0x40590420, - 0x162c: 0x40590620, 0x162d: 0x40590820, 0x162e: 0x40590a20, 0x162f: 0x40590c20, - 0x1630: 0x40590e20, 0x1631: 0x40591020, 0x1632: 0x40591220, 0x1633: 0x40591420, - 0x1634: 0x40591620, 0x1635: 0x40591820, 0x1636: 0x40591a20, 0x1637: 0x40591c20, - 0x1638: 0x40591e20, 0x1639: 0x40592020, 0x163a: 0x40592220, 0x163b: 0x40592420, - 0x163c: 0x40592620, 0x163d: 0x40592820, 0x163e: 0x40592a20, 0x163f: 0x40592c20, - // Block 0x59, offset 0x1640 - 0x1640: 0x40592e20, 0x1641: 0x40593020, 0x1642: 0x40593220, 0x1643: 0x40593420, - 0x1644: 0x40593620, 0x1645: 0x40593820, 0x1646: 0x40593a20, 0x1647: 0x40593c20, - 0x1648: 0x40593e20, 0x1649: 0x40594020, 0x164a: 0x40594220, 0x164b: 0x40594420, - 0x164c: 0x40594620, 0x164d: 0x40594820, 0x164e: 0x40594a20, 0x164f: 0x40594c20, - 0x1650: 0x40594e20, 0x1651: 0x40595020, 0x1652: 0x40595220, 0x1653: 0x40595420, - 0x1654: 0x40595620, 0x1655: 0x40595820, 0x1656: 0x40595a20, 0x1657: 0x40595c20, - 0x1658: 0x40595e20, 0x1659: 0x40596020, 0x165a: 0x40596220, 0x165b: 0x40596420, - 0x165c: 0x40596620, 0x165d: 0x40596820, 0x165e: 0x40596a20, 0x165f: 0x40596c20, - 0x1660: 0x40596e20, 0x1661: 0x40597020, 0x1662: 0x40597220, 0x1663: 0x40597420, - 0x1664: 0x40597620, 0x1665: 0x40597820, 0x1666: 0x40597a20, 0x1667: 0x40597c20, - 0x1668: 0x40597e20, 0x1669: 0x40598020, 0x166a: 0x40598220, 0x166b: 0x40598420, - 0x166c: 0x40598620, 0x166d: 0x40598820, 0x166e: 0x40598a20, 0x166f: 0x40598c20, - 0x1670: 0x40598e20, 0x1671: 0x40599020, 0x1672: 0x40599220, 0x1673: 0x40599420, - 0x1674: 0x40599620, 0x1675: 0x40599820, 0x1676: 0x40599a20, 0x1677: 0x40599c20, - 0x1678: 0x40599e20, 0x1679: 0x4059a020, 0x167a: 0x4059a220, 0x167b: 0x4059a420, - 0x167c: 0x4059a620, 0x167d: 0x4059a820, 0x167e: 0x4059aa20, 0x167f: 0x4059ac20, - // Block 0x5a, offset 0x1680 - 0x1680: 0x4059ae20, 0x1681: 0x4059b020, 0x1682: 0x4059b220, 0x1683: 0x4059b420, - 0x1684: 0x4059b620, 0x1685: 0x4059b820, 0x1686: 0x4059ba20, 0x1687: 0x4059bc20, - 0x1688: 0x4059be20, 0x1689: 0x4059c020, 0x168a: 0x4059c220, 0x168b: 0x4059c420, - 0x168c: 0x4059c620, 0x168d: 0x4059c820, 0x168e: 0x4059ca20, 0x168f: 0x4059cc20, - 0x1690: 0x4059ce20, 0x1691: 0x4059d020, 0x1692: 0x4059d220, 0x1693: 0x4059d420, - 0x1694: 0x4059d620, 0x1695: 0x4059d820, 0x1696: 0x4059da20, 0x1697: 0x4059dc20, - 0x1698: 0x4059de20, 0x1699: 0x4059e020, 0x169a: 0x4059e220, 0x169b: 0x4059e420, - 0x169c: 0x4059e620, 0x169d: 0x4059e820, 0x169e: 0x4059ea20, 0x169f: 0x4059ec20, - 0x16a0: 0x4059ee20, 0x16a1: 0x4059f020, 0x16a2: 0x4059f220, 0x16a3: 0x4059f420, - 0x16a4: 0x4059f620, 0x16a5: 0x4059f820, 0x16a6: 0x4059fa20, 0x16a7: 0x4059fc20, - 0x16a8: 0x4059fe20, 0x16a9: 0x405a0020, 0x16aa: 0x405a0220, 0x16ab: 0x405a0420, - 0x16ac: 0x405a0620, 0x16ad: 0x4005d420, 0x16ae: 0x4002f420, 0x16af: 0x40581820, - 0x16b0: 0x40583a20, 0x16b1: 0x40584c20, 0x16b2: 0x40584e20, 0x16b3: 0x40585020, - 0x16b4: 0x40585220, 0x16b5: 0x40585420, 0x16b6: 0x40585620, 0x16b7: 0x405a0820, - 0x16b8: 0x405a0a20, 0x16b9: 0x405a0c20, 0x16ba: 0x405a0e20, 0x16bb: 0x405a1020, - 0x16bc: 0x405a1220, 0x16bd: 0x405a1420, 0x16be: 0x405a1620, 0x16bf: 0x405a1820, - // Block 0x5b, offset 0x16c0 - 0x16c0: 0x00021284, 0x16c1: 0x405aa620, 0x16c2: 0x405aa820, 0x16c3: 0x405aaa20, - 0x16c4: 0x405aac20, 0x16c5: 0x405aae20, 0x16c6: 0x405ab020, 0x16c7: 0x405ab220, - 0x16c8: 0x405ab420, 0x16c9: 0x405ab620, 0x16ca: 0x405ab820, 0x16cb: 0x405aba20, - 0x16cc: 0x405abc20, 0x16cd: 0x405abe20, 0x16ce: 0x405ac020, 0x16cf: 0x405ac220, - 0x16d0: 0x405ac420, 0x16d1: 0x405ac620, 0x16d2: 0x405ac820, 0x16d3: 0x405aca20, - 0x16d4: 0x405acc20, 0x16d5: 0x405ace20, 0x16d6: 0x405ad020, 0x16d7: 0x405ad220, - 0x16d8: 0x405ad420, 0x16d9: 0x405ad620, 0x16da: 0x405ad820, 0x16db: 0x40040820, - 0x16dc: 0x40040a20, - 0x16e0: 0x405ada20, 0x16e1: 0xe000202d, 0x16e2: 0x405adc20, 0x16e3: 0x405b1420, - 0x16e4: 0xe0002030, 0x16e5: 0xe0002033, 0x16e6: 0x405ade20, 0x16e7: 0xe0002036, - 0x16e8: 0x405ae020, 0x16e9: 0xe000203c, 0x16ea: 0x405b1020, 0x16eb: 0x405b1220, - 0x16ec: 0xe000203f, 0x16ed: 0xe0002042, 0x16ee: 0xe0002045, 0x16ef: 0x405ae220, - 0x16f0: 0x405ae420, 0x16f1: 0x405ae620, 0x16f2: 0x405ae820, 0x16f3: 0xe0002048, - 0x16f4: 0xe000204b, 0x16f5: 0xe000204e, 0x16f6: 0xe0002051, 0x16f7: 0x405aea20, - 0x16f8: 0x405b1a20, 0x16f9: 0x405aec20, 0x16fa: 0x405aee20, 0x16fb: 0xe0002057, - 0x16fc: 0xe000205a, 0x16fd: 0xe000205d, 0x16fe: 0x405af020, 0x16ff: 0xe0002060, - // Block 0x5c, offset 0x1700 - 0x1700: 0xe0002063, 0x1701: 0x405af220, 0x1702: 0xe0002066, 0x1703: 0x405af420, - 0x1704: 0xe0002069, 0x1705: 0x405af620, 0x1706: 0xe000206c, 0x1707: 0x405af820, - 0x1708: 0x405afa20, 0x1709: 0x405afc20, 0x170a: 0x405afe20, 0x170b: 0xe0002075, - 0x170c: 0xe000207b, 0x170d: 0xe000207e, 0x170e: 0xe0002081, 0x170f: 0x405b0020, - 0x1710: 0xe0002084, 0x1711: 0xe0002087, 0x1712: 0x405b0220, 0x1713: 0xe000208a, - 0x1714: 0xe000208d, 0x1715: 0xe0002072, 0x1716: 0x405b0420, 0x1717: 0x405b0620, - 0x1718: 0xe0002090, 0x1719: 0xe0002093, 0x171a: 0x405b0820, 0x171b: 0xe000209b, - 0x171c: 0x405b0a20, 0x171d: 0xe000209e, 0x171e: 0x405b0c20, 0x171f: 0x405b0e20, - 0x1720: 0x405b1620, 0x1721: 0x405b1e20, 0x1722: 0x405b2020, 0x1723: 0x405b1820, - 0x1724: 0x405b1c20, 0x1725: 0x405b2220, 0x1726: 0x405b2420, 0x1727: 0xe00020a1, - 0x1728: 0xe00020a4, 0x1729: 0xe0002054, 0x172a: 0xe0002078, 0x172b: 0x4002b220, - 0x172c: 0x4002b420, 0x172d: 0x4002b620, 0x172e: 0xe000206f, 0x172f: 0xe0002096, - 0x1730: 0xe0002039, - // Block 0x5d, offset 0x1740 - 0x1740: 0x404c7620, 0x1741: 0x404c7820, 0x1742: 0x404c7a20, 0x1743: 0x404c7c20, - 0x1744: 0x404c7e20, 0x1745: 0x404c8020, 0x1746: 0x404c8220, 0x1747: 0x404c8420, - 0x1748: 0x404c8620, 0x1749: 0x404c8820, 0x174a: 0x404c8a20, 0x174b: 0x404c8c20, - 0x174c: 0x404c8e20, 0x174e: 0x404c9020, 0x174f: 0x404c9220, - 0x1750: 0x404c9420, 0x1751: 0x404c9620, 0x1752: 0x404c9820, 0x1753: 0x404c9a20, - 0x1754: 0x8209264e, - 0x1760: 0x404c9e20, 0x1761: 0x404ca020, 0x1762: 0x404ca220, 0x1763: 0x404ca420, - 0x1764: 0x404ca620, 0x1765: 0x404ca820, 0x1766: 0x404caa20, 0x1767: 0x404cac20, - 0x1768: 0x404cae20, 0x1769: 0x404cb020, 0x176a: 0x404cb220, 0x176b: 0x404cb420, - 0x176c: 0x404cb620, 0x176d: 0x404cb820, 0x176e: 0x404cba20, 0x176f: 0x404cbc20, - 0x1770: 0x404cbe20, 0x1771: 0x404cc020, 0x1772: 0x404cc220, 0x1773: 0x404cc420, - 0x1774: 0x82092663, 0x1775: 0x40031c20, 0x1776: 0x40031e20, - // Block 0x5e, offset 0x1780 - 0x1780: 0x404cc820, 0x1781: 0x404cca20, 0x1782: 0x404ccc20, 0x1783: 0x404cce20, - 0x1784: 0x404cd020, 0x1785: 0x404cd220, 0x1786: 0x404cd420, 0x1787: 0x404cd620, - 0x1788: 0x404cd820, 0x1789: 0x404cda20, 0x178a: 0x404cdc20, 0x178b: 0x404cde20, - 0x178c: 0x404ce020, 0x178d: 0x404ce220, 0x178e: 0x404ce420, 0x178f: 0x404ce620, - 0x1790: 0x404ce820, 0x1791: 0x404cea20, 0x1792: 0x404cec20, 0x1793: 0x404cee20, - 0x17a0: 0x404cf020, 0x17a1: 0x404cf220, 0x17a2: 0x404cf420, 0x17a3: 0x404cf620, - 0x17a4: 0x404cf820, 0x17a5: 0x404cfa20, 0x17a6: 0x404cfc20, 0x17a7: 0x404cfe20, - 0x17a8: 0x404d0020, 0x17a9: 0x404d0220, 0x17aa: 0x404d0420, 0x17ab: 0x404d0620, - 0x17ac: 0x404d0820, 0x17ae: 0x404d0a20, 0x17af: 0x404d0c20, - 0x17b0: 0x404d0e20, 0x17b2: 0x404d1020, 0x17b3: 0x404d1220, - // Block 0x5f, offset 0x17c0 - 0x17c0: 0x404fa420, 0x17c1: 0x404fa620, 0x17c2: 0x404fa820, 0x17c3: 0x404faa20, - 0x17c4: 0x404fac20, 0x17c5: 0x404fae20, 0x17c6: 0x404fb020, 0x17c7: 0x404fb220, - 0x17c8: 0x404fb420, 0x17c9: 0x404fb620, 0x17ca: 0x404fb820, 0x17cb: 0x404fba20, - 0x17cc: 0x404fbc20, 0x17cd: 0x404fbe20, 0x17ce: 0x404fc020, 0x17cf: 0x404fc220, - 0x17d0: 0x404fc420, 0x17d1: 0x404fc620, 0x17d2: 0x404fc820, 0x17d3: 0x404fca20, - 0x17d4: 0x404fcc20, 0x17d5: 0x404fce20, 0x17d6: 0x404fd020, 0x17d7: 0x404fd220, - 0x17d8: 0x404fd420, 0x17d9: 0x404fd620, 0x17da: 0x404fd820, 0x17db: 0x404fda20, - 0x17dc: 0x404fdc20, 0x17dd: 0x404fde20, 0x17de: 0x404fe020, 0x17df: 0x404fe220, - 0x17e0: 0x404fe420, 0x17e1: 0x404fe620, 0x17e2: 0x404fe820, 0x17e3: 0x404fec20, - 0x17e4: 0x404fee20, 0x17e5: 0x404ff020, 0x17e6: 0x404ff220, 0x17e7: 0x404ff420, - 0x17e8: 0x404ff620, 0x17e9: 0x404ff820, 0x17ea: 0x404ffa20, 0x17eb: 0x404ffc20, - 0x17ec: 0x404ffe20, 0x17ed: 0x40500020, 0x17ee: 0x40500220, 0x17ef: 0x40500420, - 0x17f0: 0x40500620, 0x17f1: 0x40500820, 0x17f2: 0x40500a20, 0x17f3: 0x40500c20, - 0x17f4: 0xa0000000, 0x17f5: 0xa0000000, 0x17f6: 0x40500e20, 0x17f7: 0x40501020, - 0x17f8: 0x40501220, 0x17f9: 0x40501420, 0x17fa: 0x40501620, 0x17fb: 0x40501820, - 0x17fc: 0x40501a20, 0x17fd: 0x40501c20, 0x17fe: 0x40501e20, 0x17ff: 0x40502020, - // Block 0x60, offset 0x1800 - 0x1800: 0x40502220, 0x1801: 0x40502420, 0x1802: 0x40502620, 0x1803: 0x40502820, - 0x1804: 0x40502a20, 0x1805: 0x40502c20, 0x1806: 0xa000f302, 0x1807: 0xa000f402, - 0x1808: 0xa0011402, 0x1809: 0xa0011502, 0x180a: 0xa0011602, 0x180b: 0xa0005f02, - 0x180c: 0xa0005f02, 0x180d: 0xa0005f02, 0x180e: 0xa0005f02, 0x180f: 0xa0005f02, - 0x1810: 0xa0005f02, 0x1811: 0xa0005f02, 0x1812: 0x82092817, 0x1813: 0xa0000000, - 0x1814: 0x40032620, 0x1815: 0x40032820, 0x1816: 0x4002ac20, 0x1817: 0x4027bc20, - 0x1818: 0x4005bc20, 0x1819: 0x4005be20, 0x181a: 0x4005c020, 0x181b: 0x4027f620, - 0x181c: 0x404fea20, 0x181d: 0xae605f02, - 0x1820: 0xe00001b5, 0x1821: 0xe0000249, 0x1822: 0xe0000361, 0x1823: 0xe000043b, - 0x1824: 0xe0000510, 0x1825: 0xe00005da, 0x1826: 0xe00006a5, 0x1827: 0xe000074d, - 0x1828: 0xe00007f9, 0x1829: 0xe000089e, - 0x1830: 0xe00001b8, 0x1831: 0xe000024c, 0x1832: 0xe0000364, 0x1833: 0xe000043e, - 0x1834: 0xe0000513, 0x1835: 0xe00005dd, 0x1836: 0xe00006a8, 0x1837: 0xe0000750, - 0x1838: 0xe00007fc, 0x1839: 0xe00008a1, - // Block 0x61, offset 0x1840 - 0x1840: 0x40056a20, 0x1841: 0x4002e620, 0x1842: 0x40025220, 0x1843: 0x4002f020, - 0x1844: 0x4002a620, 0x1845: 0x4002a820, 0x1846: 0x40022220, 0x1847: 0x40022420, - 0x1848: 0x40025420, 0x1849: 0x4002f220, 0x184a: 0xa0000000, 0x184b: 0xa0000000, - 0x184c: 0xa0000000, 0x184d: 0xa0000000, 0x184e: 0x40020c20, - 0x1850: 0xe00001c7, 0x1851: 0xe000025b, 0x1852: 0xe0000373, 0x1853: 0xe000044d, - 0x1854: 0xe0000522, 0x1855: 0xe00005ec, 0x1856: 0xe00006b7, 0x1857: 0xe000075f, - 0x1858: 0xe000080b, 0x1859: 0xe00008b0, - 0x1860: 0x40533820, 0x1861: 0x40533c20, 0x1862: 0x40534220, 0x1863: 0x40534e20, - 0x1864: 0x40535220, 0x1865: 0x40535820, 0x1866: 0x40535c20, 0x1867: 0x40536220, - 0x1868: 0x40536420, 0x1869: 0x40536620, 0x186a: 0x40537020, 0x186b: 0x40537420, - 0x186c: 0x40537a20, 0x186d: 0x40537e20, 0x186e: 0x40538820, 0x186f: 0x40538c20, - 0x1870: 0x40538e20, 0x1871: 0x40539020, 0x1872: 0x40539e20, 0x1873: 0x4053a420, - 0x1874: 0x4053aa20, 0x1875: 0x4053b420, 0x1876: 0x4053bc20, 0x1877: 0x4053c220, - 0x1878: 0x4053c620, 0x1879: 0x4053ca20, 0x187a: 0x4053d020, 0x187b: 0x4053da20, - 0x187c: 0x4053dc20, 0x187d: 0x4053e220, 0x187e: 0x4053ea20, 0x187f: 0x4053f020, - // Block 0x62, offset 0x1880 - 0x1880: 0x4053f220, 0x1881: 0x4053f420, 0x1882: 0x4053f620, 0x1883: 0x40533620, - 0x1884: 0x40533e20, 0x1885: 0x40534420, 0x1886: 0x40535020, 0x1887: 0x40535420, - 0x1888: 0x40535a20, 0x1889: 0x40535e20, 0x188a: 0x40536820, 0x188b: 0x40537220, - 0x188c: 0x40537620, 0x188d: 0x40537c20, 0x188e: 0x40538020, 0x188f: 0x40538a20, - 0x1890: 0x4053a020, 0x1891: 0x4053a620, 0x1892: 0x4053ac20, 0x1893: 0x4053b620, - 0x1894: 0x4053de20, 0x1895: 0x4053be20, 0x1896: 0x4053c820, 0x1897: 0x4053d220, - 0x1898: 0x4053e620, 0x1899: 0x4053ec20, 0x189a: 0x4053f820, 0x189b: 0x4053fa20, - 0x189c: 0x4053b020, 0x189d: 0x40534020, 0x189e: 0x40534620, 0x189f: 0x40534c20, - 0x18a0: 0x40536020, 0x18a1: 0x40535620, 0x18a2: 0x40536a20, 0x18a3: 0x4053d420, - 0x18a4: 0x40538220, 0x18a5: 0x40538620, 0x18a6: 0x40537820, 0x18a7: 0x40539220, - 0x18a8: 0x4053a220, 0x18a9: 0x4053a820, 0x18aa: 0x4053b820, 0x18ab: 0x4053cc20, - 0x18ac: 0x4053e820, 0x18ad: 0x4053ee20, 0x18ae: 0x4053e020, 0x18af: 0x4053e420, - 0x18b0: 0x4053fc20, 0x18b1: 0x4053ae20, 0x18b2: 0x4053c020, 0x18b3: 0x40534820, - 0x18b4: 0x4053d620, 0x18b5: 0x4053c420, 0x18b6: 0x4053ce20, 0x18b7: 0x4053ba20, - // Block 0x63, offset 0x18c0 - 0x18c0: 0x40532820, 0x18c1: 0x40532a20, 0x18c2: 0x40532c20, 0x18c3: 0x40532e20, - 0x18c4: 0x40533020, 0x18c5: 0x40533220, 0x18c6: 0x40533420, 0x18c7: 0x40533a20, - 0x18c8: 0x40534a20, 0x18c9: 0x4053d820, 0x18ca: 0x40536c20, 0x18cb: 0x4053b220, - 0x18cc: 0x4053fe20, 0x18cd: 0x40540220, 0x18ce: 0x40540420, 0x18cf: 0x40540820, - 0x18d0: 0x40540a20, 0x18d1: 0x40541020, 0x18d2: 0x40541420, 0x18d3: 0x40541620, - 0x18d4: 0x40541a20, 0x18d5: 0x40541e20, 0x18d6: 0x40542220, 0x18d7: 0x40542420, - 0x18d8: 0x40540c20, 0x18d9: 0x40542020, 0x18da: 0x40538420, 0x18db: 0x40536e20, - 0x18dc: 0x40539420, 0x18dd: 0x40539620, 0x18de: 0x40540020, 0x18df: 0x40540620, - 0x18e0: 0x40540e20, 0x18e1: 0x40541220, 0x18e2: 0x40539820, 0x18e3: 0x40541c20, - 0x18e4: 0x40539a20, 0x18e5: 0x40539c20, 0x18e6: 0x40542620, 0x18e7: 0x40542820, - 0x18e8: 0x40541820, 0x18e9: 0x82e42a16, 0x18ea: 0x40542a20, - 0x18f0: 0x405a1a20, 0x18f1: 0x405a1c20, 0x18f2: 0x405a1e20, 0x18f3: 0x405a2020, - 0x18f4: 0x405a2220, 0x18f5: 0x405a2420, 0x18f6: 0x405a2620, 0x18f7: 0x405a2820, - 0x18f8: 0x405a2a20, 0x18f9: 0x405a2c20, 0x18fa: 0x405a2e20, 0x18fb: 0x405a3020, - 0x18fc: 0x405a3220, 0x18fd: 0x405a3420, 0x18fe: 0x405a3620, 0x18ff: 0x405a3820, - // Block 0x64, offset 0x1900 - 0x1900: 0x405a3a20, 0x1901: 0x405a3c20, 0x1902: 0x405a3e20, 0x1903: 0x405a4020, - 0x1904: 0x405a4220, 0x1905: 0x405a4420, 0x1906: 0x405a4620, 0x1907: 0x405a4820, - 0x1908: 0x405a4a20, 0x1909: 0x405a4c20, 0x190a: 0x405a4e20, 0x190b: 0x405a5020, - 0x190c: 0x405a5220, 0x190d: 0x405a5420, 0x190e: 0x405a5620, 0x190f: 0x405a5820, - 0x1910: 0x405a5a20, 0x1911: 0x405a5c20, 0x1912: 0x405a5e20, 0x1913: 0x405a6020, - 0x1914: 0x405a6220, 0x1915: 0x405a6420, 0x1916: 0x405a6620, 0x1917: 0x405a6820, - 0x1918: 0x405a6a20, 0x1919: 0x405a6c20, 0x191a: 0x405a6e20, 0x191b: 0x405a7020, - 0x191c: 0x405a7220, 0x191d: 0x405a7420, 0x191e: 0x405a7620, 0x191f: 0x405a7820, - 0x1920: 0x405a7a20, 0x1921: 0x405a7c20, 0x1922: 0x405a7e20, 0x1923: 0x405a8020, - 0x1924: 0x405a8220, 0x1925: 0x405a8420, 0x1926: 0x405a8620, 0x1927: 0x405a8820, - 0x1928: 0x405a8a20, 0x1929: 0x405a8c20, 0x192a: 0x405a8e20, 0x192b: 0x405a9020, - 0x192c: 0x405a9220, 0x192d: 0x405a9420, 0x192e: 0x405a9620, 0x192f: 0x405a9820, - 0x1930: 0x405a9a20, 0x1931: 0x405a9c20, 0x1932: 0x405a9e20, 0x1933: 0x405aa020, - 0x1934: 0x405aa220, 0x1935: 0x405aa420, - // Block 0x65, offset 0x1940 - 0x1940: 0x404c1220, 0x1941: 0x404c1420, 0x1942: 0x404c1620, 0x1943: 0x404c1820, - 0x1944: 0x404c1a20, 0x1945: 0x404c1c20, 0x1946: 0x404c1e20, 0x1947: 0x404c2020, - 0x1948: 0x404c2220, 0x1949: 0x404c2420, 0x194a: 0x404c2620, 0x194b: 0x404c2820, - 0x194c: 0x404c2a20, 0x194d: 0x404c2c20, 0x194e: 0x404c2e20, 0x194f: 0x404c3020, - 0x1950: 0x404c3220, 0x1951: 0x404c3420, 0x1952: 0x404c3620, 0x1953: 0x404c3820, - 0x1954: 0x404c3a20, 0x1955: 0x404c3c20, 0x1956: 0x404c3e20, 0x1957: 0x404c4020, - 0x1958: 0x404c4220, 0x1959: 0x404c4420, 0x195a: 0x404c4620, 0x195b: 0x404c4820, - 0x195c: 0x404c4a20, - 0x1960: 0x404c4c20, 0x1961: 0x404c4e20, 0x1962: 0x404c5020, 0x1963: 0x404c5220, - 0x1964: 0x404c5420, 0x1965: 0x404c5620, 0x1966: 0x404c5820, 0x1967: 0x404c5a20, - 0x1968: 0x404c5c20, 0x1969: 0x404c5e20, 0x196a: 0x404c6020, 0x196b: 0x404c6220, - 0x1970: 0x404c6420, 0x1971: 0x404c6620, 0x1972: 0x404c6820, 0x1973: 0x404c6a20, - 0x1974: 0x404c6c20, 0x1975: 0x404c6e20, 0x1976: 0x404c7020, 0x1977: 0x404c7220, - 0x1978: 0x404c7420, 0x1979: 0xade11f02, 0x197a: 0xae612002, 0x197b: 0xadc12102, - // Block 0x66, offset 0x1980 - 0x1980: 0x4007a620, - 0x1984: 0x4002c220, 0x1985: 0x4002d220, 0x1986: 0xe000018e, 0x1987: 0xe000021f, - 0x1988: 0xe000033a, 0x1989: 0xe0000414, 0x198a: 0xe00004e9, 0x198b: 0xe00005b3, - 0x198c: 0xe000067e, 0x198d: 0xe0000726, 0x198e: 0xe00007d2, 0x198f: 0xe0000877, - 0x1990: 0x40503020, 0x1991: 0x40503220, 0x1992: 0x40503420, 0x1993: 0x40503620, - 0x1994: 0x40503820, 0x1995: 0x40503a20, 0x1996: 0x40503c20, 0x1997: 0x40503e20, - 0x1998: 0x40504020, 0x1999: 0x40504220, 0x199a: 0x40504420, 0x199b: 0x40504620, - 0x199c: 0x40504820, 0x199d: 0x40504a20, 0x199e: 0x40504c20, 0x199f: 0x40504e20, - 0x19a0: 0x40505020, 0x19a1: 0x40505220, 0x19a2: 0x40505420, 0x19a3: 0x40505620, - 0x19a4: 0x40505820, 0x19a5: 0x40505a20, 0x19a6: 0x40505c20, 0x19a7: 0x40505e20, - 0x19a8: 0x40506020, 0x19a9: 0x40506220, 0x19aa: 0x40506420, 0x19ab: 0x40506620, - 0x19ac: 0x40506820, 0x19ad: 0x40506a20, - 0x19b0: 0x40506c20, 0x19b1: 0x40506e20, 0x19b2: 0x40507020, 0x19b3: 0x40507220, - 0x19b4: 0x40507420, - // Block 0x67, offset 0x19c0 - 0x19c0: 0x40507620, 0x19c1: 0x40507820, 0x19c2: 0x40507a20, 0x19c3: 0x40507c20, - 0x19c4: 0x40507e20, 0x19c5: 0x40508020, 0x19c6: 0x40508220, 0x19c7: 0x40508420, - 0x19c8: 0x40508620, 0x19c9: 0x40508820, 0x19ca: 0x40508a20, 0x19cb: 0x40508c20, - 0x19cc: 0x40508e20, 0x19cd: 0x40509020, 0x19ce: 0x40509220, 0x19cf: 0x40509420, - 0x19d0: 0x40509620, 0x19d1: 0x40509820, 0x19d2: 0x40509a20, 0x19d3: 0x40509c20, - 0x19d4: 0x40509e20, 0x19d5: 0x4050a020, 0x19d6: 0x4050a220, 0x19d7: 0x4050a420, - 0x19d8: 0x4050a620, 0x19d9: 0x4050a820, 0x19da: 0x4050aa20, 0x19db: 0x4050ac20, - 0x19dc: 0x4050ae20, 0x19dd: 0x4050b020, 0x19de: 0x4050b220, 0x19df: 0x4050b420, - 0x19e0: 0x4050b620, 0x19e1: 0x4050b820, 0x19e2: 0x4050ba20, 0x19e3: 0x4050bc20, - 0x19e4: 0x4050be20, 0x19e5: 0x4050c020, 0x19e6: 0x4050c220, 0x19e7: 0x4050c420, - 0x19e8: 0x4050c620, 0x19e9: 0x4050c820, 0x19ea: 0x4050ca20, 0x19eb: 0x4050cc20, - 0x19f0: 0x4050ce20, 0x19f1: 0x4050d020, 0x19f2: 0x4050d220, 0x19f3: 0x4050d420, - 0x19f4: 0x4050d620, 0x19f5: 0x4050d820, 0x19f6: 0x4050da20, 0x19f7: 0x4050dc20, - 0x19f8: 0x4050de20, 0x19f9: 0x4050e020, 0x19fa: 0x4050e220, 0x19fb: 0x4050e420, - 0x19fc: 0x4050e620, 0x19fd: 0x4050e820, 0x19fe: 0x4050ea20, 0x19ff: 0x4050ec20, - // Block 0x68, offset 0x1a00 - 0x1a00: 0x4050ee20, 0x1a01: 0x4050f020, 0x1a02: 0x4050f220, 0x1a03: 0x4050f420, - 0x1a04: 0x4050f620, 0x1a05: 0x4050f820, 0x1a06: 0x4050fa20, 0x1a07: 0x4050fc20, - 0x1a08: 0x4050fe20, 0x1a09: 0x40510020, - 0x1a10: 0xe0000191, 0x1a11: 0xe0000222, 0x1a12: 0xe000033d, 0x1a13: 0xe0000417, - 0x1a14: 0xe00004ec, 0x1a15: 0xe00005b6, 0x1a16: 0xe0000681, 0x1a17: 0xe0000729, - 0x1a18: 0xe00007d5, 0x1a19: 0xe000087a, 0x1a1a: 0xe0000225, - 0x1a1e: 0xe0002022, 0x1a1f: 0xe0002025, - 0x1a20: 0x4007b220, 0x1a21: 0x4007b420, 0x1a22: 0x4007b620, 0x1a23: 0x4007b820, - 0x1a24: 0x4007ba20, 0x1a25: 0x4007bc20, 0x1a26: 0x4007be20, 0x1a27: 0x4007c020, - 0x1a28: 0x4007c220, 0x1a29: 0x4007c420, 0x1a2a: 0x4007c620, 0x1a2b: 0x4007c820, - 0x1a2c: 0x4007ca20, 0x1a2d: 0x4007cc20, 0x1a2e: 0x4007ce20, 0x1a2f: 0x4007d020, - 0x1a30: 0x4007d220, 0x1a31: 0x4007d420, 0x1a32: 0x4007d620, 0x1a33: 0x4007d820, - 0x1a34: 0x4007da20, 0x1a35: 0x4007dc20, 0x1a36: 0x4007de20, 0x1a37: 0x4007e020, - 0x1a38: 0x4007e220, 0x1a39: 0x4007e420, 0x1a3a: 0x4007e620, 0x1a3b: 0x4007e820, - 0x1a3c: 0x4007ea20, 0x1a3d: 0x4007ec20, 0x1a3e: 0x4007ee20, 0x1a3f: 0x4007f020, - // Block 0x69, offset 0x1a40 - 0x1a40: 0x404d1420, 0x1a41: 0x404d1620, 0x1a42: 0x404d1820, 0x1a43: 0x404d1a20, - 0x1a44: 0x404d1c20, 0x1a45: 0x404d1e20, 0x1a46: 0x404d2020, 0x1a47: 0x404d2220, - 0x1a48: 0x404d2420, 0x1a49: 0x404d2620, 0x1a4a: 0x404d2820, 0x1a4b: 0x404d2a20, - 0x1a4c: 0x404d2c20, 0x1a4d: 0x404d2e20, 0x1a4e: 0x404d3020, 0x1a4f: 0x404d3220, - 0x1a50: 0x404d3420, 0x1a51: 0x404d3620, 0x1a52: 0x404d3820, 0x1a53: 0x404d3a20, - 0x1a54: 0x404d3c20, 0x1a55: 0x404d3e20, 0x1a56: 0x404d4020, 0x1a57: 0x82e626a1, - 0x1a58: 0x82dc26a2, 0x1a59: 0x404d4620, 0x1a5a: 0x404d4820, 0x1a5b: 0x404d4a20, - 0x1a5e: 0x40036620, 0x1a5f: 0x40036820, - 0x1a60: 0x40510220, 0x1a61: 0x40510420, 0x1a62: 0x40510620, 0x1a63: 0x40510820, - 0x1a64: 0x40510a20, 0x1a65: 0x40510c20, 0x1a66: 0x40510e20, 0x1a67: 0x40511020, - 0x1a68: 0x40511220, 0x1a69: 0x40511420, 0x1a6a: 0x40511620, 0x1a6b: 0x40511820, - 0x1a6c: 0x40511a20, 0x1a6d: 0x40511c20, 0x1a6e: 0x40511e20, 0x1a6f: 0x40512020, - 0x1a70: 0x40512220, 0x1a71: 0x40512420, 0x1a72: 0x40512620, 0x1a73: 0x40512820, - 0x1a74: 0x40512a20, 0x1a75: 0x40512c20, 0x1a76: 0x40512e20, 0x1a77: 0x40513020, - 0x1a78: 0x40513220, 0x1a79: 0x40513420, 0x1a7a: 0x40513620, 0x1a7b: 0x40513820, - 0x1a7c: 0x40513a20, 0x1a7d: 0x40513c20, 0x1a7e: 0x40513e20, 0x1a7f: 0x40514020, - // Block 0x6a, offset 0x1a80 - 0x1a80: 0x40514220, 0x1a81: 0x40514420, 0x1a82: 0x40514620, 0x1a83: 0x40514820, - 0x1a84: 0x40514a20, 0x1a85: 0x40514c20, 0x1a86: 0x40514e20, 0x1a87: 0x40515020, - 0x1a88: 0x40515220, 0x1a89: 0x40515420, 0x1a8a: 0x40515620, 0x1a8b: 0x40515820, - 0x1a8c: 0x40515a20, 0x1a8d: 0x40516c20, 0x1a8e: 0x40516e20, 0x1a8f: 0x40517020, - 0x1a90: 0x40517220, 0x1a91: 0x40517420, 0x1a92: 0x40517620, 0x1a93: 0x40515c20, - 0x1a94: 0xe0002029, 0x1a95: 0x40516020, 0x1a96: 0x40516220, 0x1a97: 0x40516420, - 0x1a98: 0x00510e84, 0x1a99: 0x00510e84, 0x1a9a: 0x00513884, 0x1a9b: 0x00513884, - 0x1a9c: 0x40516620, 0x1a9d: 0x40516820, 0x1a9e: 0x40516a20, - 0x1aa0: 0x820928cd, 0x1aa1: 0x40517820, 0x1aa2: 0x40517c20, 0x1aa3: 0x40517e20, - 0x1aa4: 0x00517e84, 0x1aa5: 0x40518020, 0x1aa6: 0x40518220, 0x1aa7: 0x40518420, - 0x1aa8: 0x40518620, 0x1aa9: 0x40518820, 0x1aaa: 0x40518a20, 0x1aab: 0x40515e20, - 0x1aac: 0x40517a20, 0x1aad: 0x40519820, 0x1aae: 0x40518c20, 0x1aaf: 0x40518e20, - 0x1ab0: 0x40519220, 0x1ab1: 0x40519420, 0x1ab2: 0x40519620, 0x1ab3: 0x40519020, - 0x1ab4: 0xa000f302, 0x1ab5: 0xae611702, 0x1ab6: 0xae611802, 0x1ab7: 0xae611902, - 0x1ab8: 0xae611a02, 0x1ab9: 0xae611b02, 0x1aba: 0xae611c02, 0x1abb: 0xae611d02, - 0x1abc: 0xae611e02, 0x1abf: 0xadc00000, - // Block 0x6b, offset 0x1ac0 - 0x1ac0: 0xe0000194, 0x1ac1: 0xe0000228, 0x1ac2: 0xe0000340, 0x1ac3: 0xe000041a, - 0x1ac4: 0xe00004ef, 0x1ac5: 0xe00005b9, 0x1ac6: 0xe0000684, 0x1ac7: 0xe000072c, - 0x1ac8: 0xe00007d8, 0x1ac9: 0xe000087d, - 0x1ad0: 0xe0000197, 0x1ad1: 0xe000022b, 0x1ad2: 0xe0000343, 0x1ad3: 0xe000041d, - 0x1ad4: 0xe00004f2, 0x1ad5: 0xe00005bc, 0x1ad6: 0xe0000687, 0x1ad7: 0xe000072f, - 0x1ad8: 0xe00007db, 0x1ad9: 0xe0000880, - 0x1ae0: 0x4005c220, 0x1ae1: 0x4005c420, 0x1ae2: 0x4005c620, 0x1ae3: 0x4005c820, - 0x1ae4: 0x4005ca20, 0x1ae5: 0x4005cc20, 0x1ae6: 0x4005ce20, 0x1ae7: 0x4027be20, - 0x1ae8: 0x40032a20, 0x1ae9: 0x40032c20, 0x1aea: 0x40032e20, 0x1aeb: 0x40033020, - 0x1aec: 0x4005d020, 0x1aed: 0x4005d220, - // Block 0x6c, offset 0x1b00 - 0x1b00: 0xa000f202, 0x1b01: 0xa000f202, 0x1b02: 0xa000f302, 0x1b03: 0xa000f702, - 0x1b04: 0xa000f402, 0x1b05: 0xc3190821, 0x1b06: 0x40522820, 0x1b07: 0xc31b0821, - 0x1b08: 0x40522c20, 0x1b09: 0xc31d0821, 0x1b0a: 0x40523020, 0x1b0b: 0xc31f0821, - 0x1b0c: 0x40523420, 0x1b0d: 0xc3210821, 0x1b0e: 0x40523820, 0x1b0f: 0x40523a20, - 0x1b10: 0x40523c20, 0x1b11: 0xc3230821, 0x1b12: 0x40524020, 0x1b13: 0x40524220, - 0x1b14: 0x40524820, 0x1b15: 0x40524a20, 0x1b16: 0x40524c20, 0x1b17: 0x40524e20, - 0x1b18: 0x40525020, 0x1b19: 0x40525220, 0x1b1a: 0x40525420, 0x1b1b: 0x40525620, - 0x1b1c: 0x40525820, 0x1b1d: 0x40525a20, 0x1b1e: 0x40525c20, 0x1b1f: 0x40525e20, - 0x1b20: 0x40526020, 0x1b21: 0x40526220, 0x1b22: 0x40526420, 0x1b23: 0x40526820, - 0x1b24: 0x40526a20, 0x1b25: 0x40526c20, 0x1b26: 0x40526e20, 0x1b27: 0x40527020, - 0x1b28: 0x40527420, 0x1b29: 0x40527620, 0x1b2a: 0x40527820, 0x1b2b: 0x40527a20, - 0x1b2c: 0x40527c20, 0x1b2d: 0x40527e20, 0x1b2e: 0x40528020, 0x1b2f: 0x40528220, - 0x1b30: 0x40528620, 0x1b31: 0x40528820, 0x1b32: 0x40528a20, 0x1b33: 0x40529020, - 0x1b34: 0xa070f102, 0x1b35: 0x40529220, 0x1b36: 0x40529420, 0x1b37: 0x40529620, - 0x1b38: 0x40529820, 0x1b39: 0x40529a20, 0x1b3a: 0xc3250821, 0x1b3b: 0x40529e20, - 0x1b3c: 0xc3270821, 0x1b3d: 0x4052a220, 0x1b3e: 0xc3290821, 0x1b3f: 0xc32b0821, - // Block 0x6d, offset 0x1b40 - 0x1b40: 0x4052a820, 0x1b41: 0x4052aa20, 0x1b42: 0xc32d0821, 0x1b43: 0x4052ae20, - 0x1b44: 0x82092958, 0x1b45: 0x40524420, 0x1b46: 0x40524620, 0x1b47: 0x40526620, - 0x1b48: 0x40527220, 0x1b49: 0x40528420, 0x1b4a: 0x40528c20, 0x1b4b: 0x40528e20, - 0x1b50: 0xe00001be, 0x1b51: 0xe0000252, 0x1b52: 0xe000036a, 0x1b53: 0xe0000444, - 0x1b54: 0xe0000519, 0x1b55: 0xe00005e3, 0x1b56: 0xe00006ae, 0x1b57: 0xe0000756, - 0x1b58: 0xe0000802, 0x1b59: 0xe00008a7, 0x1b5a: 0x40036a20, 0x1b5b: 0x40036c20, - 0x1b5c: 0x4002f620, 0x1b5d: 0x4002ae20, 0x1b5e: 0x40033220, 0x1b5f: 0x40033420, - 0x1b60: 0x40022020, 0x1b61: 0x4007f220, 0x1b62: 0x4007f420, 0x1b63: 0x4007f620, - 0x1b64: 0x4007f820, 0x1b65: 0x4007fa20, 0x1b66: 0x4007fc20, 0x1b67: 0x4007fe20, - 0x1b68: 0x40080020, 0x1b69: 0x40080220, 0x1b6a: 0x40080420, 0x1b6b: 0xae600000, - 0x1b6c: 0xadc00000, 0x1b6d: 0xae600000, 0x1b6e: 0xae600000, 0x1b6f: 0xae600000, - 0x1b70: 0xae600000, 0x1b71: 0xae600000, 0x1b72: 0xae600000, 0x1b73: 0xae600000, - 0x1b74: 0x40080620, 0x1b75: 0x40080820, 0x1b76: 0x40080a20, 0x1b77: 0x40080c20, - 0x1b78: 0x40080e20, 0x1b79: 0x40081020, 0x1b7a: 0x40081220, 0x1b7b: 0x40081420, - 0x1b7c: 0x40081620, - // Block 0x6e, offset 0x1b80 - 0x1b80: 0xa000f302, 0x1b81: 0xa000f902, 0x1b82: 0xa000f402, 0x1b83: 0x4047d420, - 0x1b84: 0x4047d620, 0x1b85: 0x4047d820, 0x1b86: 0x4047da20, 0x1b87: 0x4047dc20, - 0x1b88: 0x4047de20, 0x1b89: 0x4047e020, 0x1b8a: 0x4047e220, 0x1b8b: 0x4047e620, - 0x1b8c: 0x4047e820, 0x1b8d: 0x4047ea20, 0x1b8e: 0x4047ec20, 0x1b8f: 0x4047ee20, - 0x1b90: 0x4047f020, 0x1b91: 0x4047f220, 0x1b92: 0x4047f420, 0x1b93: 0x4047f620, - 0x1b94: 0x4047f820, 0x1b95: 0x4047fa20, 0x1b96: 0x4047fc20, 0x1b97: 0x4047fe20, - 0x1b98: 0x40480020, 0x1b99: 0x40480420, 0x1b9a: 0x40480820, 0x1b9b: 0x40480c20, - 0x1b9c: 0x40481220, 0x1b9d: 0x40481820, 0x1b9e: 0x40481c20, 0x1b9f: 0x40481e20, - 0x1ba0: 0x40482220, 0x1ba1: 0x40480a20, 0x1ba2: 0x40480e20, 0x1ba3: 0x40481420, - 0x1ba4: 0x40482420, 0x1ba5: 0x40482620, 0x1ba6: 0x40482820, 0x1ba7: 0x40482a20, - 0x1ba8: 0x40482c20, 0x1ba9: 0x40482e20, 0x1baa: 0x82092418, 0x1bab: 0x82092419, - 0x1bac: 0x40480620, 0x1bad: 0x40481a20, 0x1bae: 0x4047e420, 0x1baf: 0x40482020, - 0x1bb0: 0xe00001c4, 0x1bb1: 0xe0000258, 0x1bb2: 0xe0000370, 0x1bb3: 0xe000044a, - 0x1bb4: 0xe000051f, 0x1bb5: 0xe00005e9, 0x1bb6: 0xe00006b4, 0x1bb7: 0xe000075c, - 0x1bb8: 0xe0000808, 0x1bb9: 0xe00008ad, 0x1bba: 0x0047d484, 0x1bbb: 0x40481020, - 0x1bbc: 0x40481620, 0x1bbd: 0x40480220, 0x1bbe: 0x0047e299, 0x1bbf: 0x00480499, - // Block 0x6f, offset 0x1bc0 - 0x1bc0: 0x404d4c20, 0x1bc1: 0x004d4c84, 0x1bc2: 0x404d4e20, 0x1bc3: 0x004d4e84, - 0x1bc4: 0x004d4e84, 0x1bc5: 0x404d5020, 0x1bc6: 0x004d5084, 0x1bc7: 0x404d5220, - 0x1bc8: 0x004d5284, 0x1bc9: 0x404d5420, 0x1bca: 0x004d5484, 0x1bcb: 0x404d5620, - 0x1bcc: 0x004d5684, 0x1bcd: 0x004d5684, 0x1bce: 0x404d5820, 0x1bcf: 0x004d5884, - 0x1bd0: 0x404d5a20, 0x1bd1: 0x404d5c20, 0x1bd2: 0x404d5e20, 0x1bd3: 0x004d5e84, - 0x1bd4: 0x404d6020, 0x1bd5: 0x004d6084, 0x1bd6: 0x404d6220, 0x1bd7: 0x004d6284, - 0x1bd8: 0x404d6420, 0x1bd9: 0x004d6484, 0x1bda: 0x004d6484, 0x1bdb: 0x404d6620, - 0x1bdc: 0x004d6684, 0x1bdd: 0x404d6820, 0x1bde: 0x404d6a20, 0x1bdf: 0x004d6a84, - 0x1be0: 0x404d6c20, 0x1be1: 0x404d6e20, 0x1be2: 0x404d7020, 0x1be3: 0x404d7220, - 0x1be4: 0x404d7420, 0x1be5: 0x404d7620, 0x1be6: 0xa070f102, 0x1be7: 0x404d7820, - 0x1be8: 0x004d7884, 0x1be9: 0x404d7a20, 0x1bea: 0x404d7c20, 0x1beb: 0x004d7c84, - 0x1bec: 0x404d7e20, 0x1bed: 0x004d7e84, 0x1bee: 0x404d8020, 0x1bef: 0x004d8084, - 0x1bf0: 0x404d8220, 0x1bf1: 0x404d8420, 0x1bf2: 0x820926c3, 0x1bf3: 0x820926c4, - 0x1bfc: 0x4005ec20, 0x1bfd: 0x4005ee20, 0x1bfe: 0x4005f020, 0x1bff: 0x4005f220, - // Block 0x70, offset 0x1c00 - 0x1c00: 0x404b3620, 0x1c01: 0x404b3820, 0x1c02: 0x404b3a20, 0x1c03: 0x404b3c20, - 0x1c04: 0x404b3e20, 0x1c05: 0x404b4020, 0x1c06: 0x404b4220, 0x1c07: 0x404b4420, - 0x1c08: 0x404b4620, 0x1c09: 0x404b4820, 0x1c0a: 0x404b5020, 0x1c0b: 0x404b5220, - 0x1c0c: 0x404b5420, 0x1c0d: 0x404b5620, 0x1c0e: 0x404b5820, 0x1c0f: 0x404b5a20, - 0x1c10: 0x404b5c20, 0x1c11: 0x404b5e20, 0x1c12: 0x404b6020, 0x1c13: 0x404b6220, - 0x1c14: 0x404b6420, 0x1c15: 0x404b6620, 0x1c16: 0x404b6820, 0x1c17: 0x404b6a20, - 0x1c18: 0x404b6c20, 0x1c19: 0x404b6e20, 0x1c1a: 0x404b7020, 0x1c1b: 0x404b7420, - 0x1c1c: 0x404b7820, 0x1c1d: 0x404b7a20, 0x1c1e: 0x404b7c20, 0x1c1f: 0x404b7e20, - 0x1c20: 0x404b8020, 0x1c21: 0x404b8220, 0x1c22: 0x404b8420, 0x1c23: 0x404b8620, - 0x1c24: 0x404b7220, 0x1c25: 0x404b7620, 0x1c26: 0x404b8a20, 0x1c27: 0x404b8c20, - 0x1c28: 0x404b8e20, 0x1c29: 0x404b9020, 0x1c2a: 0x404b9220, 0x1c2b: 0x404b9420, - 0x1c2c: 0x404b9620, 0x1c2d: 0x404b9820, 0x1c2e: 0x404b9a20, 0x1c2f: 0x404b9c20, - 0x1c30: 0x404b9e20, 0x1c31: 0x404ba020, 0x1c32: 0x404ba220, 0x1c33: 0x404ba420, - 0x1c34: 0x404ba620, 0x1c35: 0x404ba820, 0x1c36: 0x404b8820, 0x1c37: 0xa070f102, - 0x1c3b: 0x40031420, - 0x1c3c: 0x40031620, 0x1c3d: 0x4005ae20, 0x1c3e: 0x4005b020, 0x1c3f: 0x4005b220, - // Block 0x71, offset 0x1c40 - 0x1c40: 0xe00001a6, 0x1c41: 0xe000023a, 0x1c42: 0xe0000352, 0x1c43: 0xe000042c, - 0x1c44: 0xe0000501, 0x1c45: 0xe00005cb, 0x1c46: 0xe0000696, 0x1c47: 0xe000073e, - 0x1c48: 0xe00007ea, 0x1c49: 0xe000088f, - 0x1c4d: 0x404b4a20, 0x1c4e: 0x404b4c20, 0x1c4f: 0x404b4e20, - 0x1c50: 0xe00001ca, 0x1c51: 0xe000025e, 0x1c52: 0xe0000376, 0x1c53: 0xe0000450, - 0x1c54: 0xe0000525, 0x1c55: 0xe00005ef, 0x1c56: 0xe00006ba, 0x1c57: 0xe0000762, - 0x1c58: 0xe000080e, 0x1c59: 0xe00008b3, 0x1c5a: 0x40542e20, 0x1c5b: 0x40543020, - 0x1c5c: 0x40543220, 0x1c5d: 0x40543420, 0x1c5e: 0x40543620, 0x1c5f: 0x40543820, - 0x1c60: 0x40543a20, 0x1c61: 0x40543c20, 0x1c62: 0x40543e20, 0x1c63: 0x40544020, - 0x1c64: 0x40544220, 0x1c65: 0x40544420, 0x1c66: 0x40544620, 0x1c67: 0x40544820, - 0x1c68: 0x40544a20, 0x1c69: 0x40544c20, 0x1c6a: 0x40544e20, 0x1c6b: 0x40545020, - 0x1c6c: 0x40545220, 0x1c6d: 0x40545420, 0x1c6e: 0x40545620, 0x1c6f: 0x40545820, - 0x1c70: 0x40545a20, 0x1c71: 0x40545c20, 0x1c72: 0x40545e20, 0x1c73: 0x40546020, - 0x1c74: 0x40546220, 0x1c75: 0x40546420, 0x1c76: 0x40546620, 0x1c77: 0x40546820, - 0x1c78: 0x40546a20, 0x1c79: 0x40546c20, 0x1c7a: 0x40546e20, 0x1c7b: 0x40547020, - 0x1c7c: 0x40547220, 0x1c7d: 0x40547420, 0x1c7e: 0x40035820, 0x1c7f: 0x40035a20, - // Block 0x72, offset 0x1c80 - 0x1c80: 0x4005d620, 0x1c81: 0x4005d820, 0x1c82: 0x4005da20, 0x1c83: 0x4005dc20, - 0x1c84: 0x4005de20, 0x1c85: 0x4005e020, 0x1c86: 0x4005e220, 0x1c87: 0x4005e420, - 0x1c90: 0xae600000, 0x1c91: 0xae600000, 0x1c92: 0xae600000, 0x1c93: 0xa0000000, - 0x1c94: 0xa0100000, 0x1c95: 0xadc00000, 0x1c96: 0xadc00000, 0x1c97: 0xadc00000, - 0x1c98: 0xadc00000, 0x1c99: 0xadc00000, 0x1c9a: 0xae600000, 0x1c9b: 0xae600000, - 0x1c9c: 0xadc00000, 0x1c9d: 0xadc00000, 0x1c9e: 0xadc00000, 0x1c9f: 0xadc00000, - 0x1ca0: 0xae600000, 0x1ca1: 0xa0000000, 0x1ca2: 0xa0100000, 0x1ca3: 0xa0100000, - 0x1ca4: 0xa0100000, 0x1ca5: 0xa0100000, 0x1ca6: 0xa0100000, 0x1ca7: 0xa0100000, - 0x1ca8: 0xa0100000, 0x1ca9: 0x40404020, 0x1caa: 0x00404084, 0x1cab: 0x00404084, - 0x1cac: 0x00404084, 0x1cad: 0xadc0f302, 0x1cae: 0x00404084, 0x1caf: 0x00404084, - 0x1cb0: 0x00404084, 0x1cb1: 0x00404084, 0x1cb2: 0xa000f402, 0x1cb3: 0xa000f402, - 0x1cb4: 0xae600000, 0x1cb5: 0x40404220, 0x1cb6: 0x40404420, - // Block 0x73, offset 0x1cc0 - 0x1cc0: 0x402be620, 0x1cc1: 0x402bec20, 0x1cc2: 0x402bee20, 0x1cc3: 0x402c2420, - 0x1cc4: 0x402c4220, 0x1cc5: 0x402c6a20, 0x1cc6: 0x402c6c20, 0x1cc7: 0x402ca020, - 0x1cc8: 0x402ce620, 0x1cc9: 0x402db420, 0x1cca: 0x402ddc20, 0x1ccb: 0x402e0620, - 0x1ccc: 0x402e3420, 0x1ccd: 0x402e8a20, 0x1cce: 0x402eb020, 0x1ccf: 0x402eea20, - 0x1cd0: 0x402f0220, 0x1cd1: 0x402eec20, 0x1cd2: 0x402f0420, 0x1cd3: 0x402ef820, - 0x1cd4: 0x402ef620, 0x1cd5: 0x402f2a20, 0x1cd6: 0x402f0a20, 0x1cd7: 0x402f0c20, - 0x1cd8: 0x402f3420, 0x1cd9: 0x402f8c20, 0x1cda: 0x402fa020, 0x1cdb: 0x40303420, - 0x1cdc: 0x40307420, 0x1cdd: 0x40307620, 0x1cde: 0x40307820, 0x1cdf: 0x4030aa20, - 0x1ce0: 0x4030c620, 0x1ce1: 0x4030ea20, 0x1ce2: 0x40313220, 0x1ce3: 0x40316c20, - 0x1ce4: 0x4031f420, 0x1ce5: 0x4031f620, 0x1ce6: 0x40325820, 0x1ce7: 0x40327420, - 0x1ce8: 0x40328020, 0x1ce9: 0x40328a20, 0x1cea: 0x4032a020, 0x1ceb: 0x40348c20, - 0x1cec: 0x002bde9d, 0x1ced: 0xe00009e1, 0x1cee: 0x002c0a9d, 0x1cef: 0x402c2220, - 0x1cf0: 0x002c629d, 0x1cf1: 0x002c989d, 0x1cf2: 0x002cae9d, 0x1cf3: 0x002d229d, - 0x1cf4: 0x002d689d, 0x1cf5: 0x002d9a9d, 0x1cf6: 0x002dcc9d, 0x1cf7: 0x002dfe9d, - 0x1cf8: 0x002e229d, 0x1cf9: 0x002e829d, 0x1cfa: 0x002e9e9d, 0x1cfb: 0x402eae20, - 0x1cfc: 0x002ee29d, 0x1cfd: 0x002f229d, 0x1cfe: 0x002f2c9d, 0x1cff: 0x002f7a9d, - // Block 0x74, offset 0x1d00 - 0x1d00: 0x00302c9d, 0x1d01: 0x00306c9d, 0x1d02: 0x0030e29d, 0x1d03: 0x002bde94, - 0x1d04: 0x002bf094, 0x1d05: 0x002bf894, 0x1d06: 0x002bee94, 0x1d07: 0x002c0a94, - 0x1d08: 0x002c6294, 0x1d09: 0x002c9894, 0x1d0a: 0x002cb894, 0x1d0b: 0x002cc294, - 0x1d0c: 0x002ce694, 0x1d0d: 0x002d2294, 0x1d0e: 0x002db494, 0x1d0f: 0x002dfe94, - 0x1d10: 0x002e8294, 0x1d11: 0x002eda94, 0x1d12: 0x002ee294, 0x1d13: 0x002efa94, - 0x1d14: 0x002f0a94, 0x1d15: 0x002f0c94, 0x1d16: 0x002f2c94, 0x1d17: 0x00302c94, - 0x1d18: 0x00306c94, 0x1d19: 0x00307694, 0x1d1a: 0x0030a094, 0x1d1b: 0x0030be94, - 0x1d1c: 0x0031f694, 0x1d1d: 0x00325494, 0x1d1e: 0x00325694, 0x1d1f: 0x00325a94, - 0x1d20: 0x00329a94, 0x1d21: 0x00329c94, 0x1d22: 0x002d9a95, 0x1d23: 0x002f7a95, - 0x1d24: 0x00306c95, 0x1d25: 0x0030be95, 0x1d26: 0x00325495, 0x1d27: 0x00325695, - 0x1d28: 0x00328895, 0x1d29: 0x00329a95, 0x1d2a: 0x00329c95, 0x1d2b: 0x40307a20, - 0x1d2c: 0x402c2620, 0x1d2d: 0x402c6e20, 0x1d2e: 0x402d1220, 0x1d2f: 0x402e8c20, - 0x1d30: 0x402eb220, 0x1d31: 0x402f3a20, 0x1d32: 0x402f9620, 0x1d33: 0x402fce20, - 0x1d34: 0x402ff020, 0x1d35: 0x40304020, 0x1d36: 0x40313c20, 0x1d37: 0x402d5420, - 0x1d38: 0x0034ba94, 0x1d39: 0xe0000bd9, 0x1d3a: 0xe0000fc1, 0x1d3b: 0x402dbe20, - 0x1d3c: 0x402dca20, 0x1d3d: 0x402f3620, 0x1d3e: 0x40308420, 0x1d3f: 0x4030bc20, - // Block 0x75, offset 0x1d40 - 0x1d40: 0x402c2820, 0x1d41: 0x402c7020, 0x1d42: 0x402d1420, 0x1d43: 0x402d4220, - 0x1d44: 0x402e0820, 0x1d45: 0x402e5220, 0x1d46: 0x402e8e20, 0x1d47: 0x402ec620, - 0x1d48: 0x402f3c20, 0x1d49: 0x402faa20, 0x1d4a: 0x402ff220, 0x1d4b: 0x40301020, - 0x1d4c: 0x4030ca20, 0x1d4d: 0x4030fe20, 0x1d4e: 0x40313e20, 0x1d4f: 0x402bea20, - 0x1d50: 0x402c0020, 0x1d51: 0x402c8220, 0x1d52: 0x402caa20, 0x1d53: 0x402cca20, - 0x1d54: 0x402ce420, 0x1d55: 0x402cc020, 0x1d56: 0x402dc020, 0x1d57: 0x402f0620, - 0x1d58: 0x40302220, 0x1d59: 0x40308620, 0x1d5a: 0x40317620, 0x1d5b: 0x002c0294, - 0x1d5c: 0x002c3a94, 0x1d5d: 0x002c5694, 0x1d5e: 0xf0001414, 0x1d5f: 0x002cdc94, - 0x1d60: 0x002d0894, 0x1d61: 0x002dee94, 0x1d62: 0x002d2a94, 0x1d63: 0x00308894, - 0x1d64: 0x002db694, 0x1d65: 0x002dc294, 0x1d66: 0x002daa94, 0x1d67: 0x002dbe94, - 0x1d68: 0x002de694, 0x1d69: 0x002e5494, 0x1d6a: 0x002e5294, 0x1d6b: 0x002e2a94, - 0x1d6c: 0x002e9094, 0x1d6d: 0x0030ac94, 0x1d6e: 0x002eb494, 0x1d6f: 0x002ec894, - 0x1d70: 0x002ea694, 0x1d71: 0x002f1094, 0x1d72: 0x002f4c94, 0x1d73: 0x002ff494, - 0x1d74: 0x00300894, 0x1d75: 0x00304294, 0x1d76: 0x00307c94, 0x1d77: 0x0030b494, - 0x1d78: 0x00307494, 0x1d79: 0x0030cc94, 0x1d7a: 0x0030da94, 0x1d7b: 0x00312a94, - 0x1d7c: 0x00314894, 0x1d7d: 0x00315094, 0x1d7e: 0x00316494, 0x1d7f: 0x00326a94, - // Block 0x76, offset 0x1d80 - 0x1d80: 0xae605f02, 0x1d81: 0xae605f02, 0x1d82: 0xadc06002, 0x1d83: 0xae605f02, - 0x1d84: 0xae605f02, 0x1d85: 0xae605f02, 0x1d86: 0xae605f02, 0x1d87: 0xae605f02, - 0x1d88: 0xae605f02, 0x1d89: 0xae605f02, 0x1d8a: 0x84dc17bd, 0x1d8b: 0xae605f02, - 0x1d8c: 0xae605f02, 0x1d8d: 0xaea05f02, 0x1d8e: 0xad605f02, 0x1d8f: 0xadc06002, - 0x1d90: 0xaca06002, 0x1d91: 0xae605f02, 0x1d92: 0x84e618d1, 0x1d93: 0xe00009b4, - 0x1d94: 0xe00009d9, 0x1d95: 0xe00009f9, 0x1d96: 0xe0000a08, 0x1d97: 0xe0000a50, - 0x1d98: 0xe0000ab6, 0x1d99: 0xe0000ab0, 0x1d9a: 0x84e61691, 0x1d9b: 0x84e61699, - 0x1d9c: 0x84e616ff, 0x1d9d: 0x84e61711, 0x1d9e: 0x84e61715, 0x1d9f: 0x84e61745, - 0x1da0: 0x84e6174f, 0x1da1: 0x84e61753, 0x1da2: 0x84e617c1, 0x1da3: 0x84e617c5, - 0x1da4: 0x84e617f3, 0x1da5: 0xe0000f67, 0x1da6: 0x84e61895, - 0x1dbc: 0xae906002, 0x1dbd: 0xadc06002, 0x1dbe: 0xae605f02, 0x1dbf: 0xadc06002, - // Block 0x77, offset 0x1dc0 - 0x1dc0: 0xe00009b1, 0x1dc1: 0xe00009ae, 0x1dc2: 0xe0000a22, 0x1dc3: 0xe0000a1f, - 0x1dc4: 0xe0000a28, 0x1dc5: 0xe0000a25, 0x1dc6: 0xe0000a2e, 0x1dc7: 0xe0000a2b, - 0x1dc8: 0xe0000a5a, 0x1dc9: 0xe0000a56, 0x1dca: 0xe0000a8c, 0x1dcb: 0xe0000a89, - 0x1dcc: 0xe0000a98, 0x1dcd: 0xe0000a95, 0x1dce: 0xe0000aa4, 0x1dcf: 0xe0000aa1, - 0x1dd0: 0xe0000a92, 0x1dd1: 0xe0000a8f, 0x1dd2: 0xe0000a9e, 0x1dd3: 0xe0000a9b, - 0x1dd4: 0xe0000b55, 0x1dd5: 0xe0000b51, 0x1dd6: 0xe0000b4d, 0x1dd7: 0xe0000b49, - 0x1dd8: 0xe0000b7c, 0x1dd9: 0xe0000b79, 0x1dda: 0xe0000b82, 0x1ddb: 0xe0000b7f, - 0x1ddc: 0xe0000b39, 0x1ddd: 0xe0000b35, 0x1dde: 0xe0000b8c, 0x1ddf: 0xe0000b89, - 0x1de0: 0xe0000bd0, 0x1de1: 0xe0000bcd, 0x1de2: 0xe0000c00, 0x1de3: 0xe0000bfd, - 0x1de4: 0xe0000c0c, 0x1de5: 0xe0000c09, 0x1de6: 0xe0000bfa, 0x1de7: 0xe0000bf7, - 0x1de8: 0xe0000c06, 0x1de9: 0xe0000c03, 0x1dea: 0xe0000c12, 0x1deb: 0xe0000c0f, - 0x1dec: 0xe0000c7e, 0x1ded: 0xe0000c7b, 0x1dee: 0xe0000c4a, 0x1def: 0xe0000c46, - 0x1df0: 0xe0000c93, 0x1df1: 0xe0000c90, 0x1df2: 0xe0000cab, 0x1df3: 0xe0000ca8, - 0x1df4: 0xe0000cb1, 0x1df5: 0xe0000cae, 0x1df6: 0xe0000cde, 0x1df7: 0xe0000cdb, - 0x1df8: 0xe0000ce5, 0x1df9: 0xe0000ce1, 0x1dfa: 0xe0000cf2, 0x1dfb: 0xe0000cef, - 0x1dfc: 0xe0000cec, 0x1dfd: 0xe0000ce9, 0x1dfe: 0xe0000d1e, 0x1dff: 0xe0000d1b, - // Block 0x78, offset 0x1e00 - 0x1e00: 0xe0000d24, 0x1e01: 0xe0000d21, 0x1e02: 0xe0000d2a, 0x1e03: 0xe0000d27, - 0x1e04: 0xe0000d69, 0x1e05: 0xe0000d66, 0x1e06: 0xe0000d7b, 0x1e07: 0xe0000d78, - 0x1e08: 0xe0000d87, 0x1e09: 0xe0000d84, 0x1e0a: 0xe0000d81, 0x1e0b: 0xe0000d7e, - 0x1e0c: 0xe0000ded, 0x1e0d: 0xe0000de9, 0x1e0e: 0xe0000df5, 0x1e0f: 0xe0000df1, - 0x1e10: 0xe0000e3d, 0x1e11: 0xe0000e39, 0x1e12: 0xe0000e35, 0x1e13: 0xe0000e31, - 0x1e14: 0xe0000ea7, 0x1e15: 0xe0000ea4, 0x1e16: 0xe0000ead, 0x1e17: 0xe0000eaa, - 0x1e18: 0xe0000ed6, 0x1e19: 0xe0000ed3, 0x1e1a: 0xe0000ef4, 0x1e1b: 0xe0000ef1, - 0x1e1c: 0xe0000efb, 0x1e1d: 0xe0000ef7, 0x1e1e: 0xe0000f02, 0x1e1f: 0xe0000eff, - 0x1e20: 0xe0000f41, 0x1e21: 0xe0000f3e, 0x1e22: 0xe0000f53, 0x1e23: 0xe0000f50, - 0x1e24: 0xe0000f26, 0x1e25: 0xe0000f22, 0x1e26: 0xe0000f3a, 0x1e27: 0xe0000f36, - 0x1e28: 0xe0000f5a, 0x1e29: 0xe0000f56, 0x1e2a: 0xe0000f93, 0x1e2b: 0xe0000f90, - 0x1e2c: 0xe0000f9f, 0x1e2d: 0xe0000f9c, 0x1e2e: 0xe0000fb1, 0x1e2f: 0xe0000fae, - 0x1e30: 0xe0000fab, 0x1e31: 0xe0000fa8, 0x1e32: 0xe0001093, 0x1e33: 0xe0001090, - 0x1e34: 0xe000109f, 0x1e35: 0xe000109c, 0x1e36: 0xe0001099, 0x1e37: 0xe0001096, - 0x1e38: 0xe0001032, 0x1e39: 0xe000102e, 0x1e3a: 0xe0001046, 0x1e3b: 0xe0001042, - 0x1e3c: 0xe00010a9, 0x1e3d: 0xe00010a6, 0x1e3e: 0xe00010af, 0x1e3f: 0xe00010ac, - // Block 0x79, offset 0x1e40 - 0x1e40: 0xe00010d2, 0x1e41: 0xe00010cf, 0x1e42: 0xe00010cc, 0x1e43: 0xe00010c9, - 0x1e44: 0xe00010e1, 0x1e45: 0xe00010de, 0x1e46: 0xe00010e7, 0x1e47: 0xe00010e4, - 0x1e48: 0xe00010ed, 0x1e49: 0xe00010ea, 0x1e4a: 0xe00010fc, 0x1e4b: 0xe00010f9, - 0x1e4c: 0xe00010f6, 0x1e4d: 0xe00010f3, 0x1e4e: 0xe0001123, 0x1e4f: 0xe0001120, - 0x1e50: 0xe0001141, 0x1e51: 0xe000113e, 0x1e52: 0xe0001153, 0x1e53: 0xe0001150, - 0x1e54: 0xe0001159, 0x1e55: 0xe0001156, 0x1e56: 0xe0000c15, 0x1e57: 0xe0000f8d, - 0x1e58: 0xe00010db, 0x1e59: 0xe0001111, 0x1e5a: 0xf0000404, 0x1e5b: 0xe0000f70, - 0x1e5c: 0x40300420, 0x1e5d: 0x40300620, 0x1e5e: 0xe0000f7f, 0x1e5f: 0x402c9620, - 0x1e60: 0xe000099b, 0x1e61: 0xe0000998, 0x1e62: 0xe0000989, 0x1e63: 0xe0000986, - 0x1e64: 0xe0000928, 0x1e65: 0xe0000924, 0x1e66: 0xe0000930, 0x1e67: 0xe000092c, - 0x1e68: 0xe0000940, 0x1e69: 0xe000093c, 0x1e6a: 0xe0000938, 0x1e6b: 0xe0000934, - 0x1e6c: 0xe00009aa, 0x1e6d: 0xe00009a6, 0x1e6e: 0xe0000902, 0x1e6f: 0xe00008fe, - 0x1e70: 0xe000090a, 0x1e71: 0xe0000906, 0x1e72: 0xe000091a, 0x1e73: 0xe0000916, - 0x1e74: 0xe0000912, 0x1e75: 0xe000090e, 0x1e76: 0xe00009a2, 0x1e77: 0xe000099e, - 0x1e78: 0xe0000b6e, 0x1e79: 0xe0000b6b, 0x1e7a: 0xe0000b5c, 0x1e7b: 0xe0000b59, - 0x1e7c: 0xe0000b26, 0x1e7d: 0xe0000b23, 0x1e7e: 0xe0000afb, 0x1e7f: 0xe0000af7, - // Block 0x7a, offset 0x1e80 - 0x1e80: 0xe0000b03, 0x1e81: 0xe0000aff, 0x1e82: 0xe0000b13, 0x1e83: 0xe0000b0f, - 0x1e84: 0xe0000b0b, 0x1e85: 0xe0000b07, 0x1e86: 0xe0000b75, 0x1e87: 0xe0000b71, - 0x1e88: 0xe0000c66, 0x1e89: 0xe0000c63, 0x1e8a: 0xe0000c78, 0x1e8b: 0xe0000c75, - 0x1e8c: 0xe0000e84, 0x1e8d: 0xe0000e81, 0x1e8e: 0xe0000e44, 0x1e8f: 0xe0000e41, - 0x1e90: 0xe0000dad, 0x1e91: 0xe0000da9, 0x1e92: 0xe0000db5, 0x1e93: 0xe0000db1, - 0x1e94: 0xe0000dc5, 0x1e95: 0xe0000dc1, 0x1e96: 0xe0000dbd, 0x1e97: 0xe0000db9, - 0x1e98: 0xe0000e8b, 0x1e99: 0xe0000e87, 0x1e9a: 0xe0000e5d, 0x1e9b: 0xe0000e59, - 0x1e9c: 0xe0000e65, 0x1e9d: 0xe0000e61, 0x1e9e: 0xe0000e75, 0x1e9f: 0xe0000e71, - 0x1ea0: 0xe0000e6d, 0x1ea1: 0xe0000e69, 0x1ea2: 0xe0000e7d, 0x1ea3: 0xe0000e79, - 0x1ea4: 0xe000108d, 0x1ea5: 0xe000108a, 0x1ea6: 0xe000104d, 0x1ea7: 0xe000104a, - 0x1ea8: 0xe0001066, 0x1ea9: 0xe0001062, 0x1eaa: 0xe000106e, 0x1eab: 0xe000106a, - 0x1eac: 0xe000107e, 0x1ead: 0xe000107a, 0x1eae: 0xe0001076, 0x1eaf: 0xe0001072, - 0x1eb0: 0xe0001086, 0x1eb1: 0xe0001082, 0x1eb2: 0xe0001108, 0x1eb3: 0xe0001105, - 0x1eb4: 0xe0001135, 0x1eb5: 0xe0001132, 0x1eb6: 0xe000112f, 0x1eb7: 0xe000112c, - 0x1eb8: 0xe000111d, 0x1eb9: 0xe000111a, 0x1eba: 0xe0000d0a, 0x1ebb: 0xe0000d07, - 0x1ebc: 0x0030d888, 0x1ebd: 0x4030d820, 0x1ebe: 0x00312088, 0x1ebf: 0x40312020, - // Block 0x7b, offset 0x1ec0 - 0x1ec0: 0xe0001165, 0x1ec1: 0xe00011a9, 0x1ec2: 0xe000117d, 0x1ec3: 0xe00011c1, - 0x1ec4: 0xe000116b, 0x1ec5: 0xe00011af, 0x1ec6: 0xe000118f, 0x1ec7: 0xe00011d3, - 0x1ec8: 0xe0001168, 0x1ec9: 0xe00011ac, 0x1eca: 0xe0001181, 0x1ecb: 0xe00011c5, - 0x1ecc: 0xe000116f, 0x1ecd: 0xe00011b3, 0x1ece: 0xe0001193, 0x1ecf: 0xe00011d7, - 0x1ed0: 0xe000121a, 0x1ed1: 0xe0001230, 0x1ed2: 0xe0001228, 0x1ed3: 0xe000123e, - 0x1ed4: 0xe0001220, 0x1ed5: 0xe0001236, - 0x1ed8: 0xe000121d, 0x1ed9: 0xe0001233, 0x1eda: 0xe000122c, 0x1edb: 0xe0001242, - 0x1edc: 0xe0001224, 0x1edd: 0xe000123a, - 0x1ee0: 0xe0001252, 0x1ee1: 0xe0001296, 0x1ee2: 0xe000126a, 0x1ee3: 0xe00012ae, - 0x1ee4: 0xe0001258, 0x1ee5: 0xe000129c, 0x1ee6: 0xe000127c, 0x1ee7: 0xe00012c0, - 0x1ee8: 0xe0001255, 0x1ee9: 0xe0001299, 0x1eea: 0xe000126e, 0x1eeb: 0xe00012b2, - 0x1eec: 0xe000125c, 0x1eed: 0xe00012a0, 0x1eee: 0xe0001280, 0x1eef: 0xe00012c4, - 0x1ef0: 0xe00012fb, 0x1ef1: 0xe0001319, 0x1ef2: 0xe0001309, 0x1ef3: 0xe0001327, - 0x1ef4: 0xe0001301, 0x1ef5: 0xe000131f, 0x1ef6: 0xe0001311, 0x1ef7: 0xe000132f, - 0x1ef8: 0xe00012fe, 0x1ef9: 0xe000131c, 0x1efa: 0xe000130d, 0x1efb: 0xe000132b, - 0x1efc: 0xe0001305, 0x1efd: 0xe0001323, 0x1efe: 0xe0001315, 0x1eff: 0xe0001333, - // Block 0x7c, offset 0x1f00 - 0x1f00: 0xe000136c, 0x1f01: 0xe0001382, 0x1f02: 0xe000137a, 0x1f03: 0xe0001390, - 0x1f04: 0xe0001372, 0x1f05: 0xe0001388, - 0x1f08: 0xe000136f, 0x1f09: 0xe0001385, 0x1f0a: 0xe000137e, 0x1f0b: 0xe0001394, - 0x1f0c: 0xe0001376, 0x1f0d: 0xe000138c, - 0x1f10: 0xe00013ad, 0x1f11: 0xe00013bc, 0x1f12: 0xe00013b4, 0x1f13: 0xe00013ca, - 0x1f14: 0xe00013b0, 0x1f15: 0xe00013c2, 0x1f16: 0xe00013b8, 0x1f17: 0xe00013d2, - 0x1f19: 0xe00013bf, 0x1f1b: 0xe00013ce, - 0x1f1d: 0xe00013c6, 0x1f1f: 0xe00013d6, - 0x1f20: 0xe0001407, 0x1f21: 0xe000144b, 0x1f22: 0xe000141f, 0x1f23: 0xe0001463, - 0x1f24: 0xe000140d, 0x1f25: 0xe0001451, 0x1f26: 0xe0001431, 0x1f27: 0xe0001475, - 0x1f28: 0xe000140a, 0x1f29: 0xe000144e, 0x1f2a: 0xe0001423, 0x1f2b: 0xe0001467, - 0x1f2c: 0xe0001411, 0x1f2d: 0xe0001455, 0x1f2e: 0xe0001435, 0x1f2f: 0xe0001479, - 0x1f30: 0xe00011f7, 0x1f31: 0xe00011ed, 0x1f32: 0xe000124c, 0x1f33: 0xe0001246, - 0x1f34: 0xe00012e4, 0x1f35: 0xe00012da, 0x1f36: 0xe000133d, 0x1f37: 0xe0001337, - 0x1f38: 0xe000139e, 0x1f39: 0xe0001398, 0x1f3a: 0xe00013e0, 0x1f3b: 0xe00013da, - 0x1f3c: 0xe0001499, 0x1f3d: 0xe000148f, - // Block 0x7d, offset 0x1f40 - 0x1f40: 0xe00011a1, 0x1f41: 0xe00011e5, 0x1f42: 0xe0001185, 0x1f43: 0xe00011c9, - 0x1f44: 0xe0001173, 0x1f45: 0xe00011b7, 0x1f46: 0xe0001197, 0x1f47: 0xe00011db, - 0x1f48: 0xe00011a5, 0x1f49: 0xe00011e9, 0x1f4a: 0xe000118a, 0x1f4b: 0xe00011ce, - 0x1f4c: 0xe0001178, 0x1f4d: 0xe00011bc, 0x1f4e: 0xe000119c, 0x1f4f: 0xe00011e0, - 0x1f50: 0xe000128e, 0x1f51: 0xe00012d2, 0x1f52: 0xe0001272, 0x1f53: 0xe00012b6, - 0x1f54: 0xe0001260, 0x1f55: 0xe00012a4, 0x1f56: 0xe0001284, 0x1f57: 0xe00012c8, - 0x1f58: 0xe0001292, 0x1f59: 0xe00012d6, 0x1f5a: 0xe0001277, 0x1f5b: 0xe00012bb, - 0x1f5c: 0xe0001265, 0x1f5d: 0xe00012a9, 0x1f5e: 0xe0001289, 0x1f5f: 0xe00012cd, - 0x1f60: 0xe0001443, 0x1f61: 0xe0001487, 0x1f62: 0xe0001427, 0x1f63: 0xe000146b, - 0x1f64: 0xe0001415, 0x1f65: 0xe0001459, 0x1f66: 0xe0001439, 0x1f67: 0xe000147d, - 0x1f68: 0xe0001447, 0x1f69: 0xe000148b, 0x1f6a: 0xe000142c, 0x1f6b: 0xe0001470, - 0x1f6c: 0xe000141a, 0x1f6d: 0xe000145e, 0x1f6e: 0xe000143e, 0x1f6f: 0xe0001482, - 0x1f70: 0xe0001201, 0x1f71: 0xe000120e, 0x1f72: 0xe00011fd, 0x1f73: 0xe0001214, - 0x1f74: 0xe00011f3, 0x1f76: 0xe0001207, 0x1f77: 0xe000120a, - 0x1f78: 0xe0001204, 0x1f79: 0xe0001211, 0x1f7a: 0xe00011fa, 0x1f7b: 0xe00011f0, - 0x1f7c: 0xe0001217, 0x1f7d: 0x40063620, 0x1f7e: 0x40326c20, 0x1f7f: 0x40063620, - // Block 0x7e, offset 0x1f80 - 0x1f80: 0x40063a20, 0x1f81: 0xe00000b1, 0x1f82: 0xe00012ea, 0x1f83: 0xe00012f5, - 0x1f84: 0xe00012e0, 0x1f86: 0xe00012ee, 0x1f87: 0xe00012f1, - 0x1f88: 0xe000124f, 0x1f89: 0xe0001249, 0x1f8a: 0xe00012e7, 0x1f8b: 0xe00012dd, - 0x1f8c: 0xe00012f8, 0x1f8d: 0xe00000b7, 0x1f8e: 0xe00000b4, 0x1f8f: 0xe00000ba, - 0x1f90: 0xe0001343, 0x1f91: 0xe000135e, 0x1f92: 0xe0001356, 0x1f93: 0xe0001352, - 0x1f96: 0xe0001349, 0x1f97: 0xe000135a, - 0x1f98: 0xe0001346, 0x1f99: 0xe0001361, 0x1f9a: 0xe0001340, 0x1f9b: 0xe000133a, - 0x1f9d: 0xe00000c0, 0x1f9e: 0xe00000bd, 0x1f9f: 0xe00000c3, - 0x1fa0: 0xe00013e6, 0x1fa1: 0xe0001401, 0x1fa2: 0xe00013f9, 0x1fa3: 0xe00013f5, - 0x1fa4: 0xe00013a4, 0x1fa5: 0xe00013a7, 0x1fa6: 0xe00013ec, 0x1fa7: 0xe00013fd, - 0x1fa8: 0xe00013e9, 0x1fa9: 0xe0001404, 0x1faa: 0xe00013e3, 0x1fab: 0xe00013dd, - 0x1fac: 0xe00013aa, 0x1fad: 0xe00000ae, 0x1fae: 0xe00000ab, 0x1faf: 0x40061e20, - 0x1fb2: 0xe000149f, 0x1fb3: 0xe00014aa, - 0x1fb4: 0xe0001495, 0x1fb6: 0xe00014a3, 0x1fb7: 0xe00014a6, - 0x1fb8: 0xe00013a1, 0x1fb9: 0xe000139b, 0x1fba: 0xe000149c, 0x1fbb: 0xe0001492, - 0x1fbc: 0xe00014ad, 0x1fbd: 0x40062020, 0x1fbe: 0x40063820, - // Block 0x7f, offset 0x1fc0 - 0x1fc0: 0x00021284, 0x1fc1: 0x00021284, 0x1fc2: 0x00021284, 0x1fc3: 0x00021284, - 0x1fc4: 0x00021284, 0x1fc5: 0x00021284, 0x1fc6: 0x00021284, 0x1fc7: 0x0002129b, - 0x1fc8: 0x00021284, 0x1fc9: 0x00021284, 0x1fca: 0x00021284, 0x1fcb: 0xa0000000, - 0x1fcc: 0xa0000000, 0x1fcd: 0xa0000000, 0x1fce: 0xa0000000, 0x1fcf: 0xa0000000, - 0x1fd0: 0x40022620, 0x1fd1: 0x0002269b, 0x1fd2: 0x40022820, 0x1fd3: 0x40022a20, - 0x1fd4: 0x40022c20, 0x1fd5: 0x40022e20, 0x1fd6: 0x4004c420, 0x1fd7: 0x40021820, - 0x1fd8: 0x4003d420, 0x1fd9: 0x4003d620, 0x1fda: 0x4003d820, 0x1fdb: 0x4003da20, - 0x1fdc: 0x4003e220, 0x1fdd: 0x4003e420, 0x1fde: 0x4003e620, 0x1fdf: 0x4003e820, - 0x1fe0: 0x4004f820, 0x1fe1: 0x4004fa20, 0x1fe2: 0x40050220, 0x1fe3: 0x40050420, - 0x1fe4: 0x0002e484, 0x1fe5: 0xf0001f04, 0x1fe6: 0xf0000404, 0x1fe7: 0x40050620, - 0x1fe8: 0x40020e20, 0x1fe9: 0x40021020, 0x1fea: 0xa0000000, 0x1feb: 0xa0000000, - 0x1fec: 0xa0000000, 0x1fed: 0xa0000000, 0x1fee: 0xa0000000, 0x1fef: 0x0002129b, - 0x1ff0: 0x4004f020, 0x1ff1: 0x4004f420, 0x1ff2: 0x40050e20, 0x1ff3: 0xf0001f04, - 0x1ff4: 0xf0000404, 0x1ff5: 0x40051020, 0x1ff6: 0xf0001f04, 0x1ff7: 0xf0000404, - 0x1ff8: 0x40051620, 0x1ff9: 0x4003dc20, 0x1ffa: 0x4003de20, 0x1ffb: 0x40051820, - 0x1ffc: 0xf0001f04, 0x1ffd: 0x4002e020, 0x1ffe: 0x40021420, 0x1fff: 0x40051a20, - // Block 0x80, offset 0x2000 - 0x2000: 0x40051e20, 0x2001: 0x40052220, 0x2002: 0x40052420, 0x2003: 0x40050820, - 0x2004: 0x40095820, 0x2005: 0x40040c20, 0x2006: 0x40040e20, 0x2007: 0xf0001f04, - 0x2008: 0xf0001f04, 0x2009: 0xf0001f04, 0x200a: 0x4004e820, 0x200b: 0x4004d420, - 0x200c: 0x40050a20, 0x200d: 0x40050c20, 0x200e: 0x4004da20, 0x200f: 0x40026620, - 0x2010: 0x40052020, 0x2011: 0x4004dc20, 0x2012: 0x40095020, 0x2013: 0x40023420, - 0x2014: 0x40051c20, 0x2015: 0x40039c20, 0x2016: 0x40039e20, 0x2017: 0xe00000a6, - 0x2018: 0x4003a020, 0x2019: 0x4003a220, 0x201a: 0x4003a420, 0x201b: 0x4003a620, - 0x201c: 0x4003a820, 0x201d: 0x4003aa20, 0x201e: 0x4003ac20, 0x201f: 0x00021284, - 0x2020: 0xa0000000, 0x2021: 0xa0000000, 0x2022: 0xa0000000, 0x2023: 0xa0000000, - 0x2024: 0xa0000000, - 0x202a: 0xa0000000, 0x202b: 0xa0000000, - 0x202c: 0xa0000000, 0x202d: 0xa0000000, 0x202e: 0xa0000000, 0x202f: 0xa0000000, - 0x2030: 0x0029cc94, 0x2031: 0x002d9a94, - 0x2034: 0x0029d494, 0x2035: 0x0029d694, 0x2036: 0x0029d894, 0x2037: 0x0029da94, - 0x2038: 0x0029dc94, 0x2039: 0x0029de94, 0x203a: 0x00093894, 0x203b: 0x00094e94, - 0x203c: 0x00094294, 0x203d: 0x0003f494, 0x203e: 0x0003f694, 0x203f: 0x002e9e94, - // Block 0x81, offset 0x2040 - 0x2040: 0x0029cc95, 0x2041: 0x0029ce95, 0x2042: 0x0029d095, 0x2043: 0x0029d295, - 0x2044: 0x0029d495, 0x2045: 0x0029d695, 0x2046: 0x0029d895, 0x2047: 0x0029da95, - 0x2048: 0x0029dc95, 0x2049: 0x0029de95, 0x204a: 0x00093895, 0x204b: 0x00094e95, - 0x204c: 0x00094295, 0x204d: 0x0003f495, 0x204e: 0x0003f695, - 0x2050: 0x002bde95, 0x2051: 0x002c9895, 0x2052: 0x002ee295, 0x2053: 0x0030f695, - 0x2054: 0x002cb895, 0x2055: 0x002d6895, 0x2056: 0x002dfe95, 0x2057: 0x002e2295, - 0x2058: 0x002e8295, 0x2059: 0x002e9e95, 0x205a: 0x002f2c95, 0x205b: 0x002fe695, - 0x205c: 0x00302c95, - 0x2060: 0x4027f820, 0x2061: 0x4027fa20, 0x2062: 0x4027fc20, 0x2063: 0x4027fe20, - 0x2064: 0x40280020, 0x2065: 0x40280220, 0x2066: 0x40280420, 0x2067: 0x40280620, - 0x2068: 0x40282c20, 0x2069: 0x40280820, 0x206a: 0x40280a20, 0x206b: 0x40280c20, - 0x206c: 0x40280e20, 0x206d: 0x40281020, 0x206e: 0x40281220, 0x206f: 0x40281420, - 0x2070: 0x40281620, 0x2071: 0x40281820, 0x2072: 0x40281a20, 0x2073: 0x40281c20, - 0x2074: 0x40281e20, 0x2075: 0x40282020, 0x2076: 0x40282220, 0x2077: 0x40282420, - 0x2078: 0x40282620, 0x2079: 0x40282820, 0x207a: 0x40282a20, - // Block 0x82, offset 0x2080 - 0x2090: 0xae612a02, 0x2091: 0xae612b02, 0x2092: 0xa0112c02, 0x2093: 0xa0112c02, - 0x2094: 0xae612d02, 0x2095: 0xae612e02, 0x2096: 0xae612f02, 0x2097: 0xae613002, - 0x2098: 0xa0106102, 0x2099: 0xa0106102, 0x209a: 0xa0106102, 0x209b: 0xae613102, - 0x209c: 0xae613202, 0x209d: 0xa0006202, 0x209e: 0xa0006202, 0x209f: 0xa0006202, - 0x20a0: 0xa0006202, 0x20a1: 0xae613302, 0x20a2: 0xa0006202, 0x20a3: 0xa0006202, - 0x20a4: 0xa0006202, 0x20a5: 0xa0106102, 0x20a6: 0xa0113402, 0x20a7: 0xae613502, - 0x20a8: 0xadc13602, 0x20a9: 0xae613702, 0x20aa: 0xa0106102, 0x20ab: 0xa0106102, - 0x20ac: 0xadc06002, 0x20ad: 0xadc06002, 0x20ae: 0xadc06002, 0x20af: 0xadc06002, - 0x20b0: 0xae605f02, - // Block 0x83, offset 0x20c0 - 0x20c0: 0xe00009bc, 0x20c1: 0xe00009c0, 0x20c2: 0x002c3a8b, 0x20c3: 0xf0000a04, - 0x20c4: 0x40081c20, 0x20c5: 0xe0000a5e, 0x20c6: 0xe0000a62, 0x20c7: 0x002cc28a, - 0x20c8: 0x40081e20, 0x20c9: 0xf0000a04, 0x20ca: 0x002d2285, 0x20cb: 0x002d688b, - 0x20cc: 0x002d688b, 0x20cd: 0x002d688b, 0x20ce: 0x002d6885, 0x20cf: 0xf0000202, - 0x20d0: 0x002d9a8b, 0x20d1: 0x002d9a8b, 0x20d2: 0x002e228b, 0x20d3: 0x002e2285, - 0x20d4: 0x40082020, 0x20d5: 0x002e9e8b, 0x20d6: 0xf000040a, 0x20d7: 0x40082220, - 0x20d8: 0x40082420, 0x20d9: 0x002f2c8b, 0x20da: 0x002f568b, 0x20db: 0x002f7a8b, - 0x20dc: 0x002f7a8b, 0x20dd: 0x002f7a8b, 0x20de: 0x40082620, 0x20df: 0x40082820, - 0x20e0: 0xf0001414, 0x20e1: 0xe0000fbd, 0x20e2: 0xf0001414, 0x20e3: 0x40082a20, - 0x20e4: 0x00312a8b, 0x20e5: 0x40082c20, 0x20e6: 0x0032a288, 0x20e7: 0x40082e20, - 0x20e8: 0x00312a8b, 0x20e9: 0x40083020, 0x20ea: 0x002dfe88, 0x20eb: 0xe000094d, - 0x20ec: 0x002c0a8b, 0x20ed: 0x002c3a8b, 0x20ee: 0x40083220, 0x20ef: 0x002c9885, - 0x20f0: 0x002c988b, 0x20f1: 0x002d088b, 0x20f2: 0x002d1e88, 0x20f3: 0x002e828b, - 0x20f4: 0x002ee285, 0x20f5: 0x00389084, 0x20f6: 0x00389284, 0x20f7: 0x00389484, - 0x20f8: 0x00389684, 0x20f9: 0x002d9a85, 0x20fa: 0x40083420, 0x20fb: 0xe0000b95, - 0x20fc: 0x00327e85, 0x20fd: 0x00325685, 0x20fe: 0x0032568b, 0x20ff: 0x00327e8b, - // Block 0x84, offset 0x2100 - 0x2100: 0x00093685, 0x2101: 0x40083620, 0x2102: 0x40083820, 0x2103: 0x40083a20, - 0x2104: 0x40083c20, 0x2105: 0x002c628b, 0x2106: 0x002c6285, 0x2107: 0x002c9885, - 0x2108: 0x002d9a85, 0x2109: 0x002dcc85, 0x210a: 0x40083e20, 0x210b: 0x400a6e20, - 0x210c: 0x40084020, 0x210d: 0xe00009c4, 0x210e: 0x402d1e20, 0x210f: 0x40084220, - 0x2110: 0xe00002cb, 0x2111: 0xe00002d3, 0x2112: 0xe00002b2, 0x2113: 0xe00002bb, - 0x2114: 0xe00003cd, 0x2115: 0xe00002c3, 0x2116: 0xe00003d1, 0x2117: 0xe00004ab, - 0x2118: 0xe0000579, 0x2119: 0xe00002c7, 0x211a: 0xe0000640, 0x211b: 0xe00002cf, - 0x211c: 0xe00004af, 0x211d: 0xe0000644, 0x211e: 0xe0000798, 0x211f: 0xf0001e1e, - 0x2120: 0x002d9a8a, 0x2121: 0xf0001f0a, 0x2122: 0xf0000a0a, 0x2123: 0xf0001f0a, - 0x2124: 0x0030be8a, 0x2125: 0xf0001f0a, 0x2126: 0xf0000a0a, 0x2127: 0xe00010bb, - 0x2128: 0xf0001f0a, 0x2129: 0x0030f68a, 0x212a: 0xf0001f0a, 0x212b: 0xf0000a0a, - 0x212c: 0x002e228a, 0x212d: 0x002c3a8a, 0x212e: 0x002c628a, 0x212f: 0x002e828a, - 0x2130: 0x002d9a84, 0x2131: 0xf0001f04, 0x2132: 0xf0000404, 0x2133: 0xf0001f04, - 0x2134: 0x0030be84, 0x2135: 0xf0001f04, 0x2136: 0xf0000404, 0x2137: 0xe00010b6, - 0x2138: 0xf0001f04, 0x2139: 0x0030f684, 0x213a: 0xf0001f04, 0x213b: 0xf0000404, - 0x213c: 0x002e2284, 0x213d: 0x002c3a84, 0x213e: 0x002c6284, 0x213f: 0x002e8284, - // Block 0x85, offset 0x2140 - 0x2140: 0x40287c20, 0x2141: 0x40287e20, 0x2142: 0x40288020, 0x2143: 0x002c5e88, - 0x2144: 0x402c5e20, 0x2145: 0xe00006c9, 0x2146: 0x40288220, 0x2147: 0x40288420, - 0x2148: 0x40288620, 0x2149: 0xe00001e2, - 0x2150: 0x40084420, 0x2151: 0x40084820, 0x2152: 0x40084620, 0x2153: 0x40084a20, - 0x2154: 0x40084c20, 0x2155: 0x40084e20, 0x2156: 0x40085020, 0x2157: 0x40085220, - 0x2158: 0x40085420, 0x2159: 0x40085620, 0x215a: 0xe00000c6, 0x215b: 0xe00000c9, - 0x215c: 0x40085820, 0x215d: 0x40085a20, 0x215e: 0x40085c20, 0x215f: 0x40085e20, - 0x2160: 0x40086020, 0x2161: 0x40086220, 0x2162: 0x40086420, 0x2163: 0x40086620, - 0x2164: 0x40086820, 0x2165: 0x40086a20, 0x2166: 0x40086c20, 0x2167: 0x40086e20, - 0x2168: 0x40087020, 0x2169: 0x40087220, 0x216a: 0x40087420, 0x216b: 0x40087620, - 0x216c: 0x40087820, 0x216d: 0x40087a20, 0x216e: 0xe00000cc, 0x216f: 0x40087c20, - 0x2170: 0x40087e20, 0x2171: 0x40088020, 0x2172: 0x40088220, 0x2173: 0x40088420, - 0x2174: 0x40088620, 0x2175: 0x40088820, 0x2176: 0x40088a20, 0x2177: 0x40088c20, - 0x2178: 0x40088e20, 0x2179: 0x40089020, 0x217a: 0x40089220, 0x217b: 0x40089420, - 0x217c: 0x40089620, 0x217d: 0x40089820, 0x217e: 0x40089a20, 0x217f: 0x40089c20, - // Block 0x86, offset 0x2180 - 0x2180: 0x40089e20, 0x2181: 0x4008a020, 0x2182: 0x4008a220, 0x2183: 0x4008a420, - 0x2184: 0x4008a620, 0x2185: 0x4008a820, 0x2186: 0x4008aa20, 0x2187: 0x4008ac20, - 0x2188: 0x4008ae20, 0x2189: 0x4008b020, 0x218a: 0x4008b220, 0x218b: 0x4008b420, - 0x218c: 0x4008b620, 0x218d: 0xe00000cf, 0x218e: 0xe00000d5, 0x218f: 0xe00000d2, - 0x2190: 0x4008b820, 0x2191: 0x4008ba20, 0x2192: 0x4008bc20, 0x2193: 0x4008be20, - 0x2194: 0x4008c020, 0x2195: 0x4008c220, 0x2196: 0x4008c420, 0x2197: 0x4008c620, - 0x2198: 0x4008c820, 0x2199: 0x4008ca20, 0x219a: 0x4008cc20, 0x219b: 0x4008ce20, - 0x219c: 0x4008d020, 0x219d: 0x4008d220, 0x219e: 0x4008d420, 0x219f: 0x4008d620, - 0x21a0: 0x4008d820, 0x21a1: 0x4008da20, 0x21a2: 0x4008dc20, 0x21a3: 0x4008de20, - 0x21a4: 0x4008e020, 0x21a5: 0x4008e220, 0x21a6: 0x4008e420, 0x21a7: 0x4008e620, - 0x21a8: 0x4008e820, 0x21a9: 0x4008ea20, 0x21aa: 0x4008ec20, 0x21ab: 0x4008ee20, - 0x21ac: 0x4008f020, 0x21ad: 0x4008f220, 0x21ae: 0x4008f420, 0x21af: 0x4008f620, - 0x21b0: 0x4008f820, 0x21b1: 0x4008fa20, 0x21b2: 0x4008fc20, 0x21b3: 0x4008fe20, - 0x21b4: 0x40090020, 0x21b5: 0x40090220, 0x21b6: 0x40090420, 0x21b7: 0x40090620, - 0x21b8: 0x40090820, 0x21b9: 0x40090a20, 0x21ba: 0x40090c20, 0x21bb: 0x40090e20, - 0x21bc: 0x40091020, 0x21bd: 0x40091220, 0x21be: 0x40091420, 0x21bf: 0x40091620, - // Block 0x87, offset 0x21c0 - 0x21c0: 0x40091820, 0x21c1: 0x40091a20, 0x21c2: 0x40091c20, 0x21c3: 0x40091e20, - 0x21c4: 0xe00000d8, 0x21c5: 0x40092020, 0x21c6: 0x40092220, 0x21c7: 0x40092420, - 0x21c8: 0x40092620, 0x21c9: 0xe00000db, 0x21ca: 0x40092820, 0x21cb: 0x40092a20, - 0x21cc: 0xe00000de, 0x21cd: 0x40092c20, 0x21ce: 0x40093020, 0x21cf: 0x40093220, - 0x21d0: 0x40093420, 0x21d1: 0x40093620, 0x21d2: 0x40094e20, 0x21d3: 0x40095220, - 0x21d4: 0x40095420, 0x21d5: 0x40095620, 0x21d6: 0x40095a20, 0x21d7: 0x40095c20, - 0x21d8: 0x40095e20, 0x21d9: 0x40096020, 0x21da: 0x40096220, 0x21db: 0x40096420, - 0x21dc: 0x40096820, 0x21dd: 0x40096c20, 0x21de: 0x40096e20, 0x21df: 0x40097020, - 0x21e0: 0x40097220, 0x21e1: 0x40097420, 0x21e2: 0x40097620, 0x21e3: 0x40097820, - 0x21e4: 0xe00000ea, 0x21e5: 0x40097a20, 0x21e6: 0xe00000ed, 0x21e7: 0x40097c20, - 0x21e8: 0x40097e20, 0x21e9: 0x40098020, 0x21ea: 0x40098220, 0x21eb: 0x40098420, - 0x21ec: 0xf0001f04, 0x21ed: 0xf0000404, 0x21ee: 0x40098620, 0x21ef: 0xf0001f04, - 0x21f0: 0xf0000404, 0x21f1: 0x40098820, 0x21f2: 0x40098a20, 0x21f3: 0x40098c20, - 0x21f4: 0x40098e20, 0x21f5: 0x40099020, 0x21f6: 0x40099220, 0x21f7: 0x40099420, - 0x21f8: 0x40099620, 0x21f9: 0x40099820, 0x21fa: 0x40099a20, 0x21fb: 0x40099c20, - 0x21fc: 0x40099e20, 0x21fd: 0x4009a020, 0x21fe: 0x4009a220, 0x21ff: 0x4009a420, - // Block 0x88, offset 0x2200 - 0x2200: 0x4009a620, 0x2201: 0xe00000f5, 0x2202: 0x4009a820, 0x2203: 0x4009aa20, - 0x2204: 0xe00000f8, 0x2205: 0x4009ac20, 0x2206: 0x4009ae20, 0x2207: 0xe00000fb, - 0x2208: 0x4009b020, 0x2209: 0xe00000fe, 0x220a: 0x4009b220, 0x220b: 0x4009b420, - 0x220c: 0x4009b620, 0x220d: 0x4009b820, 0x220e: 0x4009ba20, 0x220f: 0x4009bc20, - 0x2210: 0x4009be20, 0x2211: 0x4009c020, 0x2212: 0x4009c220, 0x2213: 0x4009c420, - 0x2214: 0x4009c620, 0x2215: 0x4009c820, 0x2216: 0x4009ca20, 0x2217: 0x4009cc20, - 0x2218: 0x4009ce20, 0x2219: 0x4009d020, 0x221a: 0x4009d220, 0x221b: 0x4009d420, - 0x221c: 0x4009d620, 0x221d: 0x4009d820, 0x221e: 0x4009da20, 0x221f: 0x4009dc20, - 0x2220: 0xe00000e4, 0x2221: 0x4009de20, 0x2222: 0xe0000104, 0x2223: 0x4009e020, - 0x2224: 0x4009e220, 0x2225: 0x4009e420, 0x2226: 0x4009e620, 0x2227: 0x4009e820, - 0x2228: 0x4009ea20, 0x2229: 0x4009ec20, 0x222a: 0x4009ee20, 0x222b: 0x4009f020, - 0x222c: 0x4009f220, 0x222d: 0xe0000101, 0x222e: 0xe00000e1, 0x222f: 0xe00000e7, - 0x2230: 0xe0000107, 0x2231: 0xe000010a, 0x2232: 0x4009f420, 0x2233: 0x4009f620, - 0x2234: 0xe000010d, 0x2235: 0xe0000110, 0x2236: 0x4009f820, 0x2237: 0x4009fa20, - 0x2238: 0xe0000113, 0x2239: 0xe0000116, 0x223a: 0x4009fc20, 0x223b: 0x4009fe20, - 0x223c: 0x400a0020, 0x223d: 0x400a0220, 0x223e: 0x400a0420, 0x223f: 0x400a0620, - // Block 0x89, offset 0x2240 - 0x2240: 0xe0000119, 0x2241: 0xe000011c, 0x2242: 0x400a0820, 0x2243: 0x400a0a20, - 0x2244: 0xe0000125, 0x2245: 0xe0000128, 0x2246: 0x400a0c20, 0x2247: 0x400a0e20, - 0x2248: 0xe000012b, 0x2249: 0xe000012e, 0x224a: 0x400a1020, 0x224b: 0x400a1220, - 0x224c: 0x400a1420, 0x224d: 0x400a1620, 0x224e: 0x400a1820, 0x224f: 0x400a1a20, - 0x2250: 0x400a1c20, 0x2251: 0x400a1e20, 0x2252: 0x400a2020, 0x2253: 0x400a2220, - 0x2254: 0x400a2420, 0x2255: 0x400a2620, 0x2256: 0x400a2820, 0x2257: 0x400a2a20, - 0x2258: 0x400a2c20, 0x2259: 0x400a2e20, 0x225a: 0x400a3020, 0x225b: 0x400a3220, - 0x225c: 0x400a3420, 0x225d: 0x400a3620, 0x225e: 0x400a3820, 0x225f: 0x400a3a20, - 0x2260: 0x400a3c20, 0x2261: 0x400a3e20, 0x2262: 0x400a4020, 0x2263: 0x400a4220, - 0x2264: 0x400a4420, 0x2265: 0x400a4620, 0x2266: 0x400a4820, 0x2267: 0x400a4a20, - 0x2268: 0x400a4c20, 0x2269: 0x400a4e20, 0x226a: 0x400a5020, 0x226b: 0x400a5220, - 0x226c: 0xe0000137, 0x226d: 0xe000013a, 0x226e: 0xe000013d, 0x226f: 0xe0000140, - 0x2270: 0x400a5420, 0x2271: 0x400a5620, 0x2272: 0x400a5820, 0x2273: 0x400a5a20, - 0x2274: 0x400a5c20, 0x2275: 0x400a5e20, 0x2276: 0x400a6020, 0x2277: 0x400a6220, - 0x2278: 0x400a6420, 0x2279: 0x400a6620, 0x227a: 0x400a6820, 0x227b: 0x400a6a20, - 0x227c: 0x400a6c20, 0x227d: 0x400a7020, 0x227e: 0x400a7220, 0x227f: 0x400a7420, - // Block 0x8a, offset 0x2280 - 0x2280: 0x400a7620, 0x2281: 0x400a7820, 0x2282: 0x400a7a20, 0x2283: 0x400a7c20, - 0x2284: 0x400a7e20, 0x2285: 0x400a8020, 0x2286: 0x400a8220, 0x2287: 0x400a8420, - 0x2288: 0x400a8620, 0x2289: 0x400a8820, 0x228a: 0x400a8a20, 0x228b: 0x400a8c20, - 0x228c: 0x400a8e20, 0x228d: 0x400a9020, 0x228e: 0x400a9220, 0x228f: 0x400a9420, - 0x2290: 0x400a9620, 0x2291: 0x400a9820, 0x2292: 0x400a9a20, 0x2293: 0x400a9c20, - 0x2294: 0x400a9e20, 0x2295: 0x400aa020, 0x2296: 0x400aa220, 0x2297: 0x400aa420, - 0x2298: 0x400aa620, 0x2299: 0x400aa820, 0x229a: 0x400aaa20, 0x229b: 0x400aac20, - 0x229c: 0x400aae20, 0x229d: 0x400ab020, 0x229e: 0x400ab220, 0x229f: 0x400ab420, - 0x22a0: 0xe000011f, 0x22a1: 0xe0000122, 0x22a2: 0xe0000131, 0x22a3: 0xe0000134, - 0x22a4: 0x400ab620, 0x22a5: 0x400ab820, 0x22a6: 0x400aba20, 0x22a7: 0x400abc20, - 0x22a8: 0x400abe20, 0x22a9: 0x400ac020, 0x22aa: 0xe0000143, 0x22ab: 0xe0000146, - 0x22ac: 0xe0000149, 0x22ad: 0xe000014c, 0x22ae: 0x400ac220, 0x22af: 0x400ac420, - 0x22b0: 0x400ac620, 0x22b1: 0x400ac820, 0x22b2: 0x400aca20, 0x22b3: 0x400acc20, - 0x22b4: 0x400ace20, 0x22b5: 0x400ad020, 0x22b6: 0x400ad220, 0x22b7: 0x400ad420, - 0x22b8: 0x400ad620, 0x22b9: 0x400ad820, 0x22ba: 0x400ada20, 0x22bb: 0x400adc20, - 0x22bc: 0x400ade20, 0x22bd: 0x400ae020, 0x22be: 0x400ae220, 0x22bf: 0x400ae420, - // Block 0x8b, offset 0x22c0 - 0x22c0: 0x400ae620, 0x22c1: 0x400ae820, 0x22c2: 0x400aea20, 0x22c3: 0x400aec20, - 0x22c4: 0x400aee20, 0x22c5: 0x400af020, 0x22c6: 0x400af220, 0x22c7: 0x400af420, - 0x22c8: 0x400af620, 0x22c9: 0x400af820, 0x22ca: 0x400afa20, 0x22cb: 0x400afc20, - 0x22cc: 0x400afe20, 0x22cd: 0x400b0020, 0x22ce: 0x400b0220, 0x22cf: 0x400b0420, - 0x22d0: 0x400b0620, 0x22d1: 0x400b0820, 0x22d2: 0x400b0a20, 0x22d3: 0x400b0c20, - 0x22d4: 0x400b0e20, 0x22d5: 0x400b1020, 0x22d6: 0x400b1220, 0x22d7: 0x400b1420, - 0x22d8: 0x400b1620, 0x22d9: 0x400b1820, 0x22da: 0x400b1a20, 0x22db: 0x400b1c20, - 0x22dc: 0x400b1e20, 0x22dd: 0x400b2020, 0x22de: 0x400b2220, 0x22df: 0x400b2420, - 0x22e0: 0x400b2620, 0x22e1: 0x400b2820, 0x22e2: 0x400b2a20, 0x22e3: 0x400b2c20, - 0x22e4: 0x400b2e20, 0x22e5: 0x400b3020, 0x22e6: 0x400b3220, 0x22e7: 0x400b3420, - 0x22e8: 0x400b3620, 0x22e9: 0x40049c20, 0x22ea: 0x40049e20, 0x22eb: 0x400b3820, - 0x22ec: 0x400b3a20, 0x22ed: 0x400b3c20, 0x22ee: 0x400b3e20, 0x22ef: 0x400b4020, - 0x22f0: 0x400b4220, 0x22f1: 0x400b4420, 0x22f2: 0x400b4620, 0x22f3: 0x400b4820, - 0x22f4: 0x400b4a20, 0x22f5: 0x400b4c20, 0x22f6: 0x400b4e20, 0x22f7: 0x400b5020, - 0x22f8: 0x400b5220, 0x22f9: 0x400b5420, 0x22fa: 0x400b5620, 0x22fb: 0x400b5820, - 0x22fc: 0x400b5a20, 0x22fd: 0x400b5c20, 0x22fe: 0x400b5e20, 0x22ff: 0x400b6020, - // Block 0x8c, offset 0x2300 - 0x2300: 0x400b6220, 0x2301: 0x400b6420, 0x2302: 0x400b6620, 0x2303: 0x400b6820, - 0x2304: 0x400b6a20, 0x2305: 0x400b6c20, 0x2306: 0x400b6e20, 0x2307: 0x400b7020, - 0x2308: 0x400b7220, 0x2309: 0x400b7420, 0x230a: 0x400b7620, 0x230b: 0x400b7820, - 0x230c: 0x400b7a20, 0x230d: 0x400b7c20, 0x230e: 0x400b7e20, 0x230f: 0x400b8020, - 0x2310: 0x400b8220, 0x2311: 0x400b8420, 0x2312: 0x400b8620, 0x2313: 0x400b8820, - 0x2314: 0x400b8a20, 0x2315: 0x400b8c20, 0x2316: 0x400b8e20, 0x2317: 0x400b9020, - 0x2318: 0x400b9220, 0x2319: 0x400b9420, 0x231a: 0x400b9620, 0x231b: 0x400b9820, - 0x231c: 0x400b9a20, 0x231d: 0x400b9c20, 0x231e: 0x400b9e20, 0x231f: 0x400ba020, - 0x2320: 0x400ba220, 0x2321: 0x400ba420, 0x2322: 0x400ba620, 0x2323: 0x400ba820, - 0x2324: 0x400baa20, 0x2325: 0x400bac20, 0x2326: 0x400bae20, 0x2327: 0x400bb020, - 0x2328: 0x400bb220, 0x2329: 0x400bb420, 0x232a: 0x400bb620, 0x232b: 0x400bb820, - 0x232c: 0x400bba20, 0x232d: 0x400bbc20, 0x232e: 0x400bbe20, 0x232f: 0x400bc020, - 0x2330: 0x400bc220, 0x2331: 0x400bc420, 0x2332: 0x400bc620, 0x2333: 0x400bc820, - 0x2334: 0x400bca20, 0x2335: 0x400bcc20, 0x2336: 0x400bce20, 0x2337: 0x400bd020, - 0x2338: 0x400bd220, 0x2339: 0x400bd420, 0x233a: 0x400bd620, 0x233b: 0x400bd820, - 0x233c: 0x400bda20, 0x233d: 0x400bdc20, 0x233e: 0x400bde20, 0x233f: 0x400be020, - // Block 0x8d, offset 0x2340 - 0x2340: 0x400be220, 0x2341: 0x400be420, 0x2342: 0x400be620, 0x2343: 0x400be820, - 0x2344: 0x400bea20, 0x2345: 0x400bec20, 0x2346: 0x400bee20, 0x2347: 0x400bf020, - 0x2348: 0x400bf220, 0x2349: 0x400bf420, 0x234a: 0x400bf620, 0x234b: 0x400bf820, - 0x234c: 0x400bfa20, 0x234d: 0x400bfc20, 0x234e: 0x400bfe20, 0x234f: 0x400c0020, - 0x2350: 0x400c0220, 0x2351: 0x400c0420, 0x2352: 0x400c0620, 0x2353: 0x400c0820, - 0x2354: 0x400c0a20, 0x2355: 0x400c0c20, 0x2356: 0x400c0e20, 0x2357: 0x400c1020, - 0x2358: 0x400c1220, 0x2359: 0x400c1420, 0x235a: 0x400c1620, 0x235b: 0x400c1820, - 0x235c: 0x400c1a20, 0x235d: 0x400c1c20, 0x235e: 0x400c1e20, 0x235f: 0x400c2020, - 0x2360: 0x400c2220, 0x2361: 0x400c2420, 0x2362: 0x400c2620, 0x2363: 0x400c2820, - 0x2364: 0x400c2a20, 0x2365: 0x400c2c20, 0x2366: 0x400c2e20, 0x2367: 0x400c3020, - 0x2368: 0x400c3220, 0x2369: 0x400c3420, 0x236a: 0x400c3620, 0x236b: 0x400c3820, - 0x236c: 0x400c3a20, 0x236d: 0x400c3c20, 0x236e: 0x400c3e20, 0x236f: 0x400c4020, - 0x2370: 0x400c4220, 0x2371: 0x400c4420, 0x2372: 0x400c4620, 0x2373: 0x400c4820, - 0x2374: 0x400c4a20, 0x2375: 0x400c4c20, 0x2376: 0x400c4e20, 0x2377: 0x400c5020, - 0x2378: 0x400c5220, 0x2379: 0x400c5420, 0x237a: 0x400c5620, 0x237b: 0x400c5820, - 0x237c: 0x400c5a20, 0x237d: 0x400c5c20, 0x237e: 0x400c5e20, 0x237f: 0x400c6020, - // Block 0x8e, offset 0x2380 - 0x2380: 0x400c6220, 0x2381: 0x400c6420, 0x2382: 0x400c6620, 0x2383: 0x400c6820, - 0x2384: 0x400c6a20, 0x2385: 0x400c6c20, 0x2386: 0x400c6e20, 0x2387: 0x400c7020, - 0x2388: 0x400c7220, 0x2389: 0x400c7420, 0x238a: 0x400c7620, 0x238b: 0x400c7820, - 0x238c: 0x400c7a20, 0x238d: 0x400c7c20, 0x238e: 0x400c7e20, 0x238f: 0x400c8020, - 0x2390: 0x400c8220, 0x2391: 0x400c8420, 0x2392: 0x400c8620, 0x2393: 0x400c8820, - 0x2394: 0x400c8a20, 0x2395: 0x400c8c20, 0x2396: 0x400c8e20, 0x2397: 0x400c9020, - 0x2398: 0x400c9220, 0x2399: 0x400c9420, 0x239a: 0x400c9620, 0x239b: 0x400c9820, - 0x239c: 0x400c9a20, 0x239d: 0x400c9c20, 0x239e: 0x400c9e20, 0x239f: 0x400ca020, - 0x23a0: 0x400ca220, 0x23a1: 0x400ca420, 0x23a2: 0x400ca620, 0x23a3: 0x400ca820, - 0x23a4: 0x400caa20, 0x23a5: 0x400cac20, 0x23a6: 0x400cae20, 0x23a7: 0x400cb020, - 0x23a8: 0x400cb220, 0x23a9: 0x400cb420, 0x23aa: 0x400cb620, 0x23ab: 0x400cb820, - 0x23ac: 0x400cba20, 0x23ad: 0x400cbc20, 0x23ae: 0x400cbe20, 0x23af: 0x400cc020, - 0x23b0: 0x400cc220, 0x23b1: 0x400cc420, 0x23b2: 0x400cc620, 0x23b3: 0x400cc820, - // Block 0x8f, offset 0x23c0 - 0x23c0: 0x400cca20, 0x23c1: 0x400ccc20, 0x23c2: 0x400cce20, 0x23c3: 0x400cd020, - 0x23c4: 0x400cd220, 0x23c5: 0x400cd420, 0x23c6: 0x400cd620, 0x23c7: 0x400cd820, - 0x23c8: 0x400cda20, 0x23c9: 0x400cdc20, 0x23ca: 0x400cde20, 0x23cb: 0x400ce020, - 0x23cc: 0x400ce220, 0x23cd: 0x400ce420, 0x23ce: 0x400ce620, 0x23cf: 0x400ce820, - 0x23d0: 0x400cea20, 0x23d1: 0x400cec20, 0x23d2: 0x400cee20, 0x23d3: 0x400cf020, - 0x23d4: 0x400cf220, 0x23d5: 0x400cf420, 0x23d6: 0x400cf620, 0x23d7: 0x400cf820, - 0x23d8: 0x400cfa20, 0x23d9: 0x400cfc20, 0x23da: 0x400cfe20, 0x23db: 0x400d0020, - 0x23dc: 0x400d0220, 0x23dd: 0x400d0420, 0x23de: 0x400d0620, 0x23df: 0x400d0820, - 0x23e0: 0x400d0a20, 0x23e1: 0x400d0c20, 0x23e2: 0x400d0e20, 0x23e3: 0x400d1020, - 0x23e4: 0x400d1220, 0x23e5: 0x400d1420, 0x23e6: 0x400d1620, - // Block 0x90, offset 0x2400 - 0x2400: 0x400d1820, 0x2401: 0x400d1a20, 0x2402: 0x400d1c20, 0x2403: 0x400d1e20, - 0x2404: 0x400d2020, 0x2405: 0x400d2220, 0x2406: 0x400d2420, 0x2407: 0x400d2620, - 0x2408: 0x400d2820, 0x2409: 0x400d2a20, 0x240a: 0x400d2c20, - 0x2420: 0x0029ce86, 0x2421: 0x0029d086, 0x2422: 0x0029d286, 0x2423: 0x0029d486, - 0x2424: 0x0029d686, 0x2425: 0x0029d886, 0x2426: 0x0029da86, 0x2427: 0x0029dc86, - 0x2428: 0x0029de86, 0x2429: 0xf0000606, 0x242a: 0xf0000606, 0x242b: 0xf0000606, - 0x242c: 0xf0000606, 0x242d: 0xf0000606, 0x242e: 0xf0000606, 0x242f: 0xf0000606, - 0x2430: 0xf0000606, 0x2431: 0xf0000606, 0x2432: 0xf0000606, 0x2433: 0xf0000606, - 0x2434: 0xf0000404, 0x2435: 0xf0000404, 0x2436: 0xf0000404, 0x2437: 0xf0000404, - 0x2438: 0xf0000404, 0x2439: 0xf0000404, 0x243a: 0xf0000404, 0x243b: 0xf0000404, - 0x243c: 0xf0000404, 0x243d: 0xe0000015, 0x243e: 0xe000001a, 0x243f: 0xe000001f, - // Block 0x91, offset 0x2440 - 0x2440: 0xe0000024, 0x2441: 0xe0000029, 0x2442: 0xe000002e, 0x2443: 0xe0000033, - 0x2444: 0xe0000038, 0x2445: 0xe000003d, 0x2446: 0xe0000042, 0x2447: 0xe0000047, - 0x2448: 0xf0001f04, 0x2449: 0xf0001f04, 0x244a: 0xf0001f04, 0x244b: 0xf0001f04, - 0x244c: 0xf0001f04, 0x244d: 0xf0001f04, 0x244e: 0xf0001f04, 0x244f: 0xf0001f04, - 0x2450: 0xf0001f04, 0x2451: 0xf0000404, 0x2452: 0xf0000404, 0x2453: 0xf0000404, - 0x2454: 0xf0000404, 0x2455: 0xf0000404, 0x2456: 0xf0000404, 0x2457: 0xf0000404, - 0x2458: 0xf0000404, 0x2459: 0xf0000404, 0x245a: 0xf0000404, 0x245b: 0xf0000404, - 0x245c: 0xf0000404, 0x245d: 0xf0000404, 0x245e: 0xf0000404, 0x245f: 0xf0000404, - 0x2460: 0xf0000404, 0x2461: 0xf0000404, 0x2462: 0xf0000404, 0x2463: 0xf0000404, - 0x2464: 0xf0000404, 0x2465: 0xf0000404, 0x2466: 0xf0000404, 0x2467: 0xf0000404, - 0x2468: 0xf0000404, 0x2469: 0xf0000404, 0x246a: 0xf0000404, 0x246b: 0xf0000404, - 0x246c: 0xf0000404, 0x246d: 0xf0000404, 0x246e: 0xf0000404, 0x246f: 0xf0000404, - 0x2470: 0xf0000404, 0x2471: 0xf0000404, 0x2472: 0xf0000404, 0x2473: 0xf0000404, - 0x2474: 0xf0000404, 0x2475: 0xf0000404, 0x2476: 0x002bde8c, 0x2477: 0x002c0a8c, - 0x2478: 0x002c3a8c, 0x2479: 0x002c628c, 0x247a: 0x002c988c, 0x247b: 0x002d088c, - 0x247c: 0x002d228c, 0x247d: 0x002d688c, 0x247e: 0x002d9a8c, 0x247f: 0x002dcc8c, - // Block 0x92, offset 0x2480 - 0x2480: 0x002dfe8c, 0x2481: 0x002e228c, 0x2482: 0x002e828c, 0x2483: 0x002e9e8c, - 0x2484: 0x002ee28c, 0x2485: 0x002f2c8c, 0x2486: 0x002f568c, 0x2487: 0x002f7a8c, - 0x2488: 0x002fe68c, 0x2489: 0x00302c8c, 0x248a: 0x00306c8c, 0x248b: 0x0030be8c, - 0x248c: 0x0030e28c, 0x248d: 0x0030f68c, 0x248e: 0x0031008c, 0x248f: 0x00312a8c, - 0x2490: 0x002bde86, 0x2491: 0x002c0a86, 0x2492: 0x002c3a86, 0x2493: 0x002c6286, - 0x2494: 0x002c9886, 0x2495: 0x002d0886, 0x2496: 0x002d2286, 0x2497: 0x002d6886, - 0x2498: 0x002d9a86, 0x2499: 0x002dcc86, 0x249a: 0x002dfe86, 0x249b: 0x002e2286, - 0x249c: 0x002e8286, 0x249d: 0x002e9e86, 0x249e: 0x002ee286, 0x249f: 0x002f2c86, - 0x24a0: 0x002f5686, 0x24a1: 0x002f7a86, 0x24a2: 0x002fe686, 0x24a3: 0x00302c86, - 0x24a4: 0x00306c86, 0x24a5: 0x0030be86, 0x24a6: 0x0030e286, 0x24a7: 0x0030f686, - 0x24a8: 0x00310086, 0x24a9: 0x00312a86, 0x24aa: 0x0029cc86, 0x24ab: 0xe00002e6, - 0x24ac: 0xe00002e9, 0x24ad: 0xe00002ec, 0x24ae: 0xe00002ef, 0x24af: 0xe00002f2, - 0x24b0: 0xe00002f5, 0x24b1: 0xe00002f8, 0x24b2: 0xe00002fb, 0x24b3: 0xe00002fe, - 0x24b4: 0xe00003d5, 0x24b5: 0x0029ce86, 0x24b6: 0x0029d086, 0x24b7: 0x0029d286, - 0x24b8: 0x0029d486, 0x24b9: 0x0029d686, 0x24ba: 0x0029d886, 0x24bb: 0x0029da86, - 0x24bc: 0x0029dc86, 0x24bd: 0x0029de86, 0x24be: 0xe00002d7, 0x24bf: 0x0029cc86, - // Block 0x93, offset 0x24c0 - 0x24c0: 0x400d2e20, 0x24c1: 0x400d3020, 0x24c2: 0x400d3220, 0x24c3: 0x400d3420, - 0x24c4: 0x400d3620, 0x24c5: 0x400d3820, 0x24c6: 0x400d3a20, 0x24c7: 0x400d3c20, - 0x24c8: 0x400d3e20, 0x24c9: 0x400d4020, 0x24ca: 0x400d4220, 0x24cb: 0x400d4420, - 0x24cc: 0x400d4620, 0x24cd: 0x400d4820, 0x24ce: 0x400d4a20, 0x24cf: 0x400d4c20, - 0x24d0: 0x400d4e20, 0x24d1: 0x400d5020, 0x24d2: 0x400d5220, 0x24d3: 0x400d5420, - 0x24d4: 0x400d5620, 0x24d5: 0x400d5820, 0x24d6: 0x400d5a20, 0x24d7: 0x400d5c20, - 0x24d8: 0x400d5e20, 0x24d9: 0x400d6020, 0x24da: 0x400d6220, 0x24db: 0x400d6420, - 0x24dc: 0x400d6620, 0x24dd: 0x400d6820, 0x24de: 0x400d6a20, 0x24df: 0x400d6c20, - 0x24e0: 0x400d6e20, 0x24e1: 0x400d7020, 0x24e2: 0x400d7220, 0x24e3: 0x400d7420, - 0x24e4: 0x400d7620, 0x24e5: 0x400d7820, 0x24e6: 0x400d7a20, 0x24e7: 0x400d7c20, - 0x24e8: 0x400d7e20, 0x24e9: 0x400d8020, 0x24ea: 0x400d8220, 0x24eb: 0x400d8420, - 0x24ec: 0x400d8620, 0x24ed: 0x400d8820, 0x24ee: 0x400d8a20, 0x24ef: 0x400d8c20, - 0x24f0: 0x400d8e20, 0x24f1: 0x400d9020, 0x24f2: 0x400d9220, 0x24f3: 0x400d9420, - 0x24f4: 0x400d9620, 0x24f5: 0x400d9820, 0x24f6: 0x400d9a20, 0x24f7: 0x400d9c20, - 0x24f8: 0x400d9e20, 0x24f9: 0x400da020, 0x24fa: 0x400da220, 0x24fb: 0x400da420, - 0x24fc: 0x400da620, 0x24fd: 0x400da820, 0x24fe: 0x400daa20, 0x24ff: 0x400dac20, - // Block 0x94, offset 0x2500 - 0x2500: 0x400dae20, 0x2501: 0x400db020, 0x2502: 0x400db220, 0x2503: 0x400db420, - 0x2504: 0x400db620, 0x2505: 0x400db820, 0x2506: 0x400dba20, 0x2507: 0x400dbc20, - 0x2508: 0x400dbe20, 0x2509: 0x400dc020, 0x250a: 0x400dc220, 0x250b: 0x400dc420, - 0x250c: 0x400dc620, 0x250d: 0x400dc820, 0x250e: 0x400dca20, 0x250f: 0x400dcc20, - 0x2510: 0x400dce20, 0x2511: 0x400dd020, 0x2512: 0x400dd220, 0x2513: 0x400dd420, - 0x2514: 0x400dd620, 0x2515: 0x400dd820, 0x2516: 0x400dda20, 0x2517: 0x400ddc20, - 0x2518: 0x400dde20, 0x2519: 0x400de020, 0x251a: 0x400de220, 0x251b: 0x400de420, - 0x251c: 0x400de620, 0x251d: 0x400de820, 0x251e: 0x400dea20, 0x251f: 0x400dec20, - 0x2520: 0x400dee20, 0x2521: 0x400df020, 0x2522: 0x400df220, 0x2523: 0x400df420, - 0x2524: 0x400df620, 0x2525: 0x400df820, 0x2526: 0x400dfa20, 0x2527: 0x400dfc20, - 0x2528: 0x400dfe20, 0x2529: 0x400e0020, 0x252a: 0x400e0220, 0x252b: 0x400e0420, - 0x252c: 0x400e0620, 0x252d: 0x400e0820, 0x252e: 0x400e0a20, 0x252f: 0x400e0c20, - 0x2530: 0x400e0e20, 0x2531: 0x400e1020, 0x2532: 0x400e1220, 0x2533: 0x400e1420, - 0x2534: 0x400e1620, 0x2535: 0x400e1820, 0x2536: 0x400e1a20, 0x2537: 0x400e1c20, - 0x2538: 0x400e1e20, 0x2539: 0x400e2020, 0x253a: 0x400e2220, 0x253b: 0x400e2420, - 0x253c: 0x400e2620, 0x253d: 0x400e2820, 0x253e: 0x400e2a20, 0x253f: 0x400e2c20, - // Block 0x95, offset 0x2540 - 0x2540: 0x400e2e20, 0x2541: 0x400e3020, 0x2542: 0x400e3220, 0x2543: 0x400e3420, - 0x2544: 0x400e3620, 0x2545: 0x400e3820, 0x2546: 0x400e3a20, 0x2547: 0x400e3c20, - 0x2548: 0x400e3e20, 0x2549: 0x400e4020, 0x254a: 0x400e4220, 0x254b: 0x400e4420, - 0x254c: 0x400e4620, 0x254d: 0x400e4820, 0x254e: 0x400e4a20, 0x254f: 0x400e4c20, - 0x2550: 0x400e4e20, 0x2551: 0x400e5020, 0x2552: 0x400e5220, 0x2553: 0x400e5420, - 0x2554: 0x400e5620, 0x2555: 0x400e5820, 0x2556: 0x400e5a20, 0x2557: 0x400e5c20, - 0x2558: 0x400e5e20, 0x2559: 0x400e6020, 0x255a: 0x400e6220, 0x255b: 0x400e6420, - 0x255c: 0x400e6620, 0x255d: 0x400e6820, 0x255e: 0x400e6a20, 0x255f: 0x400e6c20, - 0x2560: 0x400e6e20, 0x2561: 0x400e7020, 0x2562: 0x400e7220, 0x2563: 0x400e7420, - 0x2564: 0x400e7620, 0x2565: 0x400e7820, 0x2566: 0x400e7a20, 0x2567: 0x400e7c20, - 0x2568: 0x400e7e20, 0x2569: 0x400e8020, 0x256a: 0x400e8220, 0x256b: 0x400e8420, - 0x256c: 0x400e8620, 0x256d: 0x400e8820, 0x256e: 0x400e8a20, 0x256f: 0x400e8c20, - 0x2570: 0x400e8e20, 0x2571: 0x400e9020, 0x2572: 0x400e9220, 0x2573: 0x400e9420, - 0x2574: 0x400e9620, 0x2575: 0x400e9820, 0x2576: 0x400e9a20, 0x2577: 0x400e9c20, - 0x2578: 0x400e9e20, 0x2579: 0x400ea020, 0x257a: 0x400ea220, 0x257b: 0x400ea420, - 0x257c: 0x400ea620, 0x257d: 0x400ea820, 0x257e: 0x400eaa20, 0x257f: 0x400eac20, - // Block 0x96, offset 0x2580 - 0x2580: 0x400eae20, 0x2581: 0x400eb020, 0x2582: 0x400eb220, 0x2583: 0x400eb420, - 0x2584: 0x400eb620, 0x2585: 0x400eb820, 0x2586: 0x400eba20, 0x2587: 0x400ebc20, - 0x2588: 0x400ebe20, 0x2589: 0x400ec020, 0x258a: 0x400ec220, 0x258b: 0x400ec420, - 0x258c: 0x400ec620, 0x258d: 0x400ec820, 0x258e: 0x400eca20, 0x258f: 0x400ecc20, - 0x2590: 0x400ece20, 0x2591: 0x400ed020, 0x2592: 0x400ed220, 0x2593: 0x400ed420, - 0x2594: 0x400ed620, 0x2595: 0x400ed820, 0x2596: 0x400eda20, 0x2597: 0x400edc20, - 0x2598: 0x400ede20, 0x2599: 0x400ee020, 0x259a: 0x400ee220, 0x259b: 0x400ee420, - 0x259c: 0x400ee620, 0x259d: 0x400ee820, 0x259e: 0x400eea20, 0x259f: 0x400eec20, - 0x25a0: 0x400eee20, 0x25a1: 0x400ef020, 0x25a2: 0x400ef220, 0x25a3: 0x400ef420, - 0x25a4: 0x400ef620, 0x25a5: 0x400ef820, 0x25a6: 0x400efa20, 0x25a7: 0x400efc20, - 0x25a8: 0x400efe20, 0x25a9: 0x400f0020, 0x25aa: 0x400f0220, 0x25ab: 0x400f0420, - 0x25ac: 0x400f0620, 0x25ad: 0x400f0820, 0x25ae: 0x400f0a20, 0x25af: 0x400f0c20, - 0x25b0: 0x400f0e20, 0x25b1: 0x400f1020, 0x25b2: 0x400f1220, 0x25b3: 0x400f1420, - 0x25b4: 0x400f1620, 0x25b5: 0x400f1820, 0x25b6: 0x400f1a20, 0x25b7: 0x400f1c20, - 0x25b8: 0x400f1e20, 0x25b9: 0x400f2020, 0x25ba: 0x400f2220, 0x25bb: 0x400f2420, - 0x25bc: 0x400f2620, 0x25bd: 0x400f2820, 0x25be: 0x400f2a20, 0x25bf: 0x400f2c20, - // Block 0x97, offset 0x25c0 - 0x25c0: 0x400f2e20, 0x25c1: 0x400f3020, 0x25c2: 0x400f3220, 0x25c3: 0x400f3420, - 0x25c4: 0x400f3620, 0x25c5: 0x400f3820, 0x25c6: 0x400f3a20, 0x25c7: 0x400f3c20, - 0x25c8: 0x400f3e20, 0x25c9: 0x400f4020, 0x25ca: 0x400f4220, 0x25cb: 0x400f4420, - 0x25cc: 0x400f4620, 0x25cd: 0x400f4820, 0x25ce: 0x400f4a20, 0x25cf: 0x400f4c20, - 0x25d0: 0x400f4e20, 0x25d1: 0x400f5020, 0x25d2: 0x400f5220, 0x25d3: 0x400f5420, - 0x25d4: 0x400f5620, 0x25d5: 0x400f5820, 0x25d6: 0x400f5a20, 0x25d7: 0x400f5c20, - 0x25d8: 0x400f5e20, 0x25d9: 0x400f6020, 0x25da: 0x400f6220, 0x25db: 0x400f6420, - 0x25dc: 0x400f6620, 0x25dd: 0x400f6820, 0x25de: 0x400f6a20, 0x25df: 0x400f6c20, - 0x25e0: 0x400f6e20, 0x25e1: 0x400f7020, 0x25e2: 0x400f7220, 0x25e3: 0x400f7420, - 0x25e4: 0x400f7620, 0x25e5: 0x400f7820, 0x25e6: 0x400f7a20, 0x25e7: 0x400f7c20, - 0x25e8: 0x400f7e20, 0x25e9: 0x400f8020, 0x25ea: 0x400f8220, 0x25eb: 0x400f8420, - 0x25ec: 0x400f8620, 0x25ed: 0x400f8820, 0x25ee: 0x400f8a20, 0x25ef: 0x400f8c20, - 0x25f0: 0x40195220, 0x25f1: 0x40195420, 0x25f2: 0x40195620, 0x25f3: 0x40195820, - 0x25f4: 0x40195a20, 0x25f5: 0x40195c20, 0x25f6: 0x40195e20, 0x25f7: 0x40196020, - 0x25f8: 0x400f8e20, 0x25f9: 0x400f9020, 0x25fa: 0x400f9220, 0x25fb: 0x400f9420, - 0x25fc: 0x400f9620, 0x25fd: 0x400f9820, 0x25fe: 0x400f9a20, 0x25ff: 0x400f9c20, - // Block 0x98, offset 0x2600 - 0x2600: 0x400f9e20, 0x2601: 0x400fa020, 0x2602: 0x400fa220, 0x2603: 0x400fa420, - 0x2604: 0x400fa620, 0x2605: 0x400fa820, 0x2606: 0x400faa20, 0x2607: 0x400fac20, - 0x2608: 0x400fae20, 0x2609: 0x400fb020, 0x260a: 0x400fb220, 0x260b: 0x400fb420, - 0x260c: 0x400fb620, 0x260d: 0x400fb820, 0x260e: 0x400fba20, 0x260f: 0x400fbc20, - 0x2610: 0x400fbe20, 0x2611: 0x400fc020, 0x2612: 0x400fc220, 0x2613: 0x400fc420, - 0x2614: 0x400fc620, 0x2615: 0x400fc820, 0x2616: 0x400fca20, 0x2617: 0x400fcc20, - 0x2618: 0x400fce20, 0x2619: 0x400fd020, 0x261a: 0x400fd220, 0x261b: 0x400fd420, - 0x261c: 0x400fd620, 0x261d: 0x400fd820, 0x261e: 0x400fda20, 0x261f: 0x400fdc20, - 0x2620: 0x400fde20, 0x2621: 0x400fe020, 0x2622: 0x400fe220, 0x2623: 0x400fe420, - 0x2624: 0x400fe620, 0x2625: 0x400fe820, 0x2626: 0x400fea20, 0x2627: 0x400fec20, - 0x2628: 0x400fee20, 0x2629: 0x400ff020, 0x262a: 0x400ff220, 0x262b: 0x400ff420, - 0x262c: 0x400ff620, 0x262d: 0x401dde20, 0x262e: 0x401de020, 0x262f: 0x401de220, - 0x2630: 0x400ff820, 0x2631: 0x400ffa20, 0x2632: 0x400ffc20, 0x2633: 0x400ffe20, - 0x2634: 0x40100020, 0x2635: 0x40100220, 0x2636: 0x40100420, 0x2637: 0x40100620, - 0x2638: 0x40100820, 0x2639: 0x40100a20, 0x263a: 0x40100c20, 0x263b: 0x40100e20, - 0x263c: 0x40101020, 0x263d: 0x40101220, 0x263e: 0x40101420, 0x263f: 0x40101620, - // Block 0x99, offset 0x2640 - 0x2640: 0x40101820, 0x2641: 0x40101a20, 0x2642: 0x40101c20, 0x2643: 0x40101e20, - 0x2644: 0x40102020, 0x2645: 0x40102220, 0x2646: 0x40102420, 0x2647: 0x40102620, - 0x2648: 0x40102820, 0x2649: 0x40102a20, 0x264a: 0x40194620, 0x264b: 0x40194820, - 0x264c: 0x40194a20, 0x264d: 0x40194c20, 0x264e: 0x40194e20, 0x264f: 0x40195020, - 0x2650: 0x40102c20, 0x2651: 0x40102e20, 0x2652: 0x40103020, 0x2653: 0x40103220, - 0x2654: 0x40103420, 0x2655: 0x40103620, 0x2656: 0x40103820, 0x2657: 0x40103a20, - 0x2658: 0x40103c20, 0x2659: 0x40103e20, 0x265a: 0x40104020, 0x265b: 0x40104220, - 0x265c: 0x40104420, 0x265d: 0x40104620, 0x265e: 0x40104820, 0x265f: 0x40104a20, - 0x2660: 0x40104c20, 0x2661: 0x40104e20, 0x2662: 0x40105020, 0x2663: 0x40105220, - 0x2664: 0x40105420, 0x2665: 0x40105620, 0x2666: 0x40105820, 0x2667: 0x40105a20, - 0x2668: 0x40105c20, 0x2669: 0x40105e20, 0x266a: 0x40106020, 0x266b: 0x40106220, - 0x266c: 0x40106420, 0x266d: 0x40106620, 0x266e: 0x40106820, 0x266f: 0x40106a20, - 0x2670: 0x40106c20, 0x2671: 0x40106e20, 0x2672: 0x40107020, 0x2673: 0x40107220, - 0x2674: 0x40107420, 0x2675: 0x40107620, 0x2676: 0x40107820, 0x2677: 0x40107a20, - 0x2678: 0x40107c20, 0x2679: 0x40107e20, 0x267a: 0x40108020, 0x267b: 0x40108220, - 0x267c: 0x40108420, 0x267d: 0x40108620, 0x267e: 0x40108820, 0x267f: 0x40108a20, - // Block 0x9a, offset 0x2680 - 0x2680: 0x40108c20, 0x2681: 0x40108e20, 0x2682: 0x40109020, 0x2683: 0x40109220, - 0x2684: 0x40109420, 0x2685: 0x40109620, 0x2686: 0x40109820, 0x2687: 0x40109a20, - 0x2688: 0x40109c20, 0x2689: 0x40109e20, 0x268a: 0x4010a020, 0x268b: 0x4010a220, - 0x268c: 0x4010a420, 0x268d: 0x4010a620, 0x268e: 0x4010a820, 0x268f: 0x4010aa20, - 0x2690: 0x4010ac20, 0x2691: 0x4010ae20, 0x2692: 0x4010b020, 0x2693: 0x4010b220, - 0x2694: 0x4010b420, 0x2695: 0x4010b620, 0x2696: 0x4010b820, 0x2697: 0x4010ba20, - 0x2698: 0x4010bc20, 0x2699: 0x4010be20, 0x269a: 0x4010c020, 0x269b: 0x4010c220, - 0x269c: 0x4010c420, 0x269d: 0x4010c620, 0x269e: 0x4010c820, 0x269f: 0x4010ca20, - 0x26a0: 0x4010cc20, 0x26a1: 0x4010ce20, 0x26a2: 0x4010d020, 0x26a3: 0x4010d220, - 0x26a4: 0x4010d420, 0x26a5: 0x4010d620, 0x26a6: 0x4010d820, 0x26a7: 0x4010da20, - 0x26a8: 0x4010dc20, 0x26a9: 0x4010de20, 0x26aa: 0x4010e020, 0x26ab: 0x4010e220, - 0x26ac: 0x4010e420, 0x26ad: 0x4010e620, 0x26ae: 0x4010e820, 0x26af: 0x4010ea20, - 0x26b0: 0x4010ec20, 0x26b1: 0x4010ee20, 0x26b2: 0x4010f020, 0x26b3: 0x4010f220, - 0x26b4: 0x4010f420, 0x26b5: 0x4010f620, 0x26b6: 0x4010f820, 0x26b7: 0x4010fa20, - 0x26b8: 0x4010fc20, 0x26b9: 0x4010fe20, 0x26ba: 0x40110020, 0x26bb: 0x40110220, - 0x26bc: 0x40110420, 0x26bd: 0x40110620, 0x26be: 0x40110820, 0x26bf: 0x40110a20, - // Block 0x9b, offset 0x26c0 - 0x26c1: 0x40114020, 0x26c2: 0x40114220, 0x26c3: 0x40114420, - 0x26c4: 0x40114620, 0x26c5: 0x40114820, 0x26c6: 0x40114a20, 0x26c7: 0x40114c20, - 0x26c8: 0x40114e20, 0x26c9: 0x40115020, 0x26ca: 0x40115220, 0x26cb: 0x40115420, - 0x26cc: 0x40115620, 0x26cd: 0x40115820, 0x26ce: 0x40115a20, 0x26cf: 0x40115c20, - 0x26d0: 0x40115e20, 0x26d1: 0x40116020, 0x26d2: 0x40116220, 0x26d3: 0x40116420, - 0x26d4: 0x40116620, 0x26d5: 0x40116820, 0x26d6: 0x40116a20, 0x26d7: 0x40116c20, - 0x26d8: 0x40116e20, 0x26d9: 0x40117020, 0x26da: 0x40117220, 0x26db: 0x40117420, - 0x26dc: 0x40117620, 0x26dd: 0x40117820, 0x26de: 0x40117a20, 0x26df: 0x40117c20, - 0x26e0: 0x40117e20, 0x26e1: 0x40118020, 0x26e2: 0x40118220, 0x26e3: 0x40118420, - 0x26e4: 0x40118620, 0x26e5: 0x40118820, 0x26e6: 0x40118a20, 0x26e7: 0x40118c20, - 0x26e8: 0x40118e20, 0x26e9: 0x40119020, 0x26ea: 0x40119220, 0x26eb: 0x40119420, - 0x26ec: 0x40119620, 0x26ed: 0x40119820, 0x26ee: 0x40119a20, 0x26ef: 0x40119c20, - 0x26f0: 0x40119e20, 0x26f1: 0x4011a020, 0x26f2: 0x4011a220, 0x26f3: 0x4011a420, - 0x26f4: 0x4011a620, 0x26f5: 0x4011a820, 0x26f6: 0x4011aa20, 0x26f7: 0x4011ac20, - 0x26f8: 0x4011ae20, 0x26f9: 0x4011b020, 0x26fa: 0x4011b220, 0x26fb: 0x4011b420, - 0x26fc: 0x4011b620, 0x26fd: 0x4011b820, 0x26fe: 0x4011ba20, 0x26ff: 0x4011bc20, - // Block 0x9c, offset 0x2700 - 0x2700: 0x4011be20, 0x2701: 0x4011c020, 0x2702: 0x4011c220, 0x2703: 0x4011c420, - 0x2704: 0x4011c620, 0x2705: 0x4011c820, 0x2706: 0x4011ca20, 0x2707: 0x4011cc20, - 0x2708: 0x4011ce20, 0x2709: 0x4011d020, 0x270a: 0x4011d220, 0x270b: 0x4011d420, - 0x270c: 0x4011d620, 0x270d: 0x4011d820, 0x270e: 0x4011da20, 0x270f: 0x4011dc20, - 0x2710: 0x4011de20, 0x2711: 0x4011e020, 0x2712: 0x4011e220, 0x2713: 0x4011e420, - 0x2714: 0x4011e620, 0x2715: 0x4011e820, 0x2716: 0x4011ea20, 0x2717: 0x4011ec20, - 0x2718: 0x4011ee20, 0x2719: 0x4011f020, 0x271a: 0x4011f220, 0x271b: 0x4011f420, - 0x271c: 0x4011f620, 0x271d: 0x4011f820, 0x271e: 0x4011fa20, 0x271f: 0x4011fc20, - 0x2720: 0x4011fe20, 0x2721: 0x40120020, 0x2722: 0x40120220, 0x2723: 0x40120420, - 0x2724: 0x40120620, 0x2725: 0x40120820, 0x2726: 0x40120a20, 0x2727: 0x40120c20, - 0x2728: 0x40045820, 0x2729: 0x40045a20, 0x272a: 0x40045c20, 0x272b: 0x40045e20, - 0x272c: 0x40046020, 0x272d: 0x40046220, 0x272e: 0x40046420, 0x272f: 0x40046620, - 0x2730: 0x40046820, 0x2731: 0x40046a20, 0x2732: 0x40046c20, 0x2733: 0x40046e20, - 0x2734: 0x40047020, 0x2735: 0x40047220, 0x2736: 0x0029ce86, 0x2737: 0x0029d086, - 0x2738: 0x0029d286, 0x2739: 0x0029d486, 0x273a: 0x0029d686, 0x273b: 0x0029d886, - 0x273c: 0x0029da86, 0x273d: 0x0029dc86, 0x273e: 0x0029de86, 0x273f: 0xe00002da, - // Block 0x9d, offset 0x2740 - 0x2740: 0x0029ce86, 0x2741: 0x0029d086, 0x2742: 0x0029d286, 0x2743: 0x0029d486, - 0x2744: 0x0029d686, 0x2745: 0x0029d886, 0x2746: 0x0029da86, 0x2747: 0x0029dc86, - 0x2748: 0x0029de86, 0x2749: 0xe00002dd, 0x274a: 0x0029ce86, 0x274b: 0x0029d086, - 0x274c: 0x0029d286, 0x274d: 0x0029d486, 0x274e: 0x0029d686, 0x274f: 0x0029d886, - 0x2750: 0x0029da86, 0x2751: 0x0029dc86, 0x2752: 0x0029de86, 0x2753: 0xe00002e0, - 0x2754: 0x40120e20, 0x2755: 0x40121020, 0x2756: 0x40121220, 0x2757: 0x40121420, - 0x2758: 0x40121620, 0x2759: 0x40121820, 0x275a: 0x40121a20, 0x275b: 0x40121c20, - 0x275c: 0x40121e20, 0x275d: 0x40122020, 0x275e: 0x40122220, 0x275f: 0x40122420, - 0x2760: 0x40122620, 0x2761: 0x40122820, 0x2762: 0x40122a20, 0x2763: 0x40122c20, - 0x2764: 0x40122e20, 0x2765: 0x40123020, 0x2766: 0x40123220, 0x2767: 0x40123420, - 0x2768: 0x40123620, 0x2769: 0x40123820, 0x276a: 0x40123a20, 0x276b: 0x40123c20, - 0x276c: 0x40123e20, 0x276d: 0x40124020, 0x276e: 0x40124220, 0x276f: 0x40124420, - 0x2770: 0x40124620, 0x2771: 0x40124820, 0x2772: 0x40124a20, 0x2773: 0x40124c20, - 0x2774: 0x40124e20, 0x2775: 0x40125020, 0x2776: 0x40125220, 0x2777: 0x40125420, - 0x2778: 0x40125620, 0x2779: 0x40125820, 0x277a: 0x40125a20, 0x277b: 0x40125c20, - 0x277c: 0x40125e20, 0x277d: 0x40126020, 0x277e: 0x40126220, 0x277f: 0x40126420, - // Block 0x9e, offset 0x2780 - 0x2780: 0x40126620, 0x2781: 0x40126820, 0x2782: 0x40126a20, 0x2783: 0x40126c20, - 0x2784: 0x40126e20, 0x2785: 0x40044020, 0x2786: 0x40044220, 0x2787: 0x40127020, - 0x2788: 0x40127220, 0x2789: 0x40127420, 0x278a: 0x40127620, 0x278b: 0x40127820, - 0x278c: 0x40127a20, 0x278d: 0x40127c20, 0x278e: 0x40127e20, 0x278f: 0x40128020, - 0x2790: 0x40128220, 0x2791: 0x40128420, 0x2792: 0x40128620, 0x2793: 0x40128820, - 0x2794: 0x40128a20, 0x2795: 0x40128c20, 0x2796: 0x40128e20, 0x2797: 0x40129020, - 0x2798: 0x40129220, 0x2799: 0x40129420, 0x279a: 0x40129620, 0x279b: 0x40129820, - 0x279c: 0x40129a20, 0x279d: 0x40129c20, 0x279e: 0x40129e20, 0x279f: 0x4012a020, - 0x27a0: 0x4012a220, 0x27a1: 0x4012a420, 0x27a2: 0x4012a620, 0x27a3: 0x4012a820, - 0x27a4: 0x4012aa20, 0x27a5: 0x4012ac20, 0x27a6: 0x40044420, 0x27a7: 0x40044620, - 0x27a8: 0x40044820, 0x27a9: 0x40044a20, 0x27aa: 0x40044c20, 0x27ab: 0x40044e20, - 0x27ac: 0x40045020, 0x27ad: 0x40045220, 0x27ae: 0x40045420, 0x27af: 0x40045620, - 0x27b0: 0x4012ae20, 0x27b1: 0x4012b020, 0x27b2: 0x4012b220, 0x27b3: 0x4012b420, - 0x27b4: 0x4012b620, 0x27b5: 0x4012b820, 0x27b6: 0x4012ba20, 0x27b7: 0x4012bc20, - 0x27b8: 0x4012be20, 0x27b9: 0x4012c020, 0x27ba: 0x4012c220, 0x27bb: 0x4012c420, - 0x27bc: 0x4012c620, 0x27bd: 0x4012c820, 0x27be: 0x4012ca20, 0x27bf: 0x4012cc20, - // Block 0x9f, offset 0x27c0 - 0x27c0: 0x40174620, 0x27c1: 0x40174820, 0x27c2: 0x40174a20, 0x27c3: 0x40174c20, - 0x27c4: 0x40174e20, 0x27c5: 0x40175020, 0x27c6: 0x40175220, 0x27c7: 0x40175420, - 0x27c8: 0x40175620, 0x27c9: 0x40175820, 0x27ca: 0x40175a20, 0x27cb: 0x40175c20, - 0x27cc: 0x40175e20, 0x27cd: 0x40176020, 0x27ce: 0x40176220, 0x27cf: 0x40176420, - 0x27d0: 0x40176620, 0x27d1: 0x40176820, 0x27d2: 0x40176a20, 0x27d3: 0x40176c20, - 0x27d4: 0x40176e20, 0x27d5: 0x40177020, 0x27d6: 0x40177220, 0x27d7: 0x40177420, - 0x27d8: 0x40177620, 0x27d9: 0x40177820, 0x27da: 0x40177a20, 0x27db: 0x40177c20, - 0x27dc: 0x40177e20, 0x27dd: 0x40178020, 0x27de: 0x40178220, 0x27df: 0x40178420, - 0x27e0: 0x40178620, 0x27e1: 0x40178820, 0x27e2: 0x40178a20, 0x27e3: 0x40178c20, - 0x27e4: 0x40178e20, 0x27e5: 0x40179020, 0x27e6: 0x40179220, 0x27e7: 0x40179420, - 0x27e8: 0x40179620, 0x27e9: 0x40179820, 0x27ea: 0x40179a20, 0x27eb: 0x40179c20, - 0x27ec: 0x40179e20, 0x27ed: 0x4017a020, 0x27ee: 0x4017a220, 0x27ef: 0x4017a420, - 0x27f0: 0x4017a620, 0x27f1: 0x4017a820, 0x27f2: 0x4017aa20, 0x27f3: 0x4017ac20, - 0x27f4: 0x4017ae20, 0x27f5: 0x4017b020, 0x27f6: 0x4017b220, 0x27f7: 0x4017b420, - 0x27f8: 0x4017b620, 0x27f9: 0x4017b820, 0x27fa: 0x4017ba20, 0x27fb: 0x4017bc20, - 0x27fc: 0x4017be20, 0x27fd: 0x4017c020, 0x27fe: 0x4017c220, 0x27ff: 0x4017c420, - // Block 0xa0, offset 0x2800 - 0x2800: 0x4017c620, 0x2801: 0x4017c820, 0x2802: 0x4017ca20, 0x2803: 0x4017cc20, - 0x2804: 0x4017ce20, 0x2805: 0x4017d020, 0x2806: 0x4017d220, 0x2807: 0x4017d420, - 0x2808: 0x4017d620, 0x2809: 0x4017d820, 0x280a: 0x4017da20, 0x280b: 0x4017dc20, - 0x280c: 0x4017de20, 0x280d: 0x4017e020, 0x280e: 0x4017e220, 0x280f: 0x4017e420, - 0x2810: 0x4017e620, 0x2811: 0x4017e820, 0x2812: 0x4017ea20, 0x2813: 0x4017ec20, - 0x2814: 0x4017ee20, 0x2815: 0x4017f020, 0x2816: 0x4017f220, 0x2817: 0x4017f420, - 0x2818: 0x4017f620, 0x2819: 0x4017f820, 0x281a: 0x4017fa20, 0x281b: 0x4017fc20, - 0x281c: 0x4017fe20, 0x281d: 0x40180020, 0x281e: 0x40180220, 0x281f: 0x40180420, - 0x2820: 0x40180620, 0x2821: 0x40180820, 0x2822: 0x40180a20, 0x2823: 0x40180c20, - 0x2824: 0x40180e20, 0x2825: 0x40181020, 0x2826: 0x40181220, 0x2827: 0x40181420, - 0x2828: 0x40181620, 0x2829: 0x40181820, 0x282a: 0x40181a20, 0x282b: 0x40181c20, - 0x282c: 0x40181e20, 0x282d: 0x40182020, 0x282e: 0x40182220, 0x282f: 0x40182420, - 0x2830: 0x40182620, 0x2831: 0x40182820, 0x2832: 0x40182a20, 0x2833: 0x40182c20, - 0x2834: 0x40182e20, 0x2835: 0x40183020, 0x2836: 0x40183220, 0x2837: 0x40183420, - 0x2838: 0x40183620, 0x2839: 0x40183820, 0x283a: 0x40183a20, 0x283b: 0x40183c20, - 0x283c: 0x40183e20, 0x283d: 0x40184020, 0x283e: 0x40184220, 0x283f: 0x40184420, - // Block 0xa1, offset 0x2840 - 0x2840: 0x40184620, 0x2841: 0x40184820, 0x2842: 0x40184a20, 0x2843: 0x40184c20, - 0x2844: 0x40184e20, 0x2845: 0x40185020, 0x2846: 0x40185220, 0x2847: 0x40185420, - 0x2848: 0x40185620, 0x2849: 0x40185820, 0x284a: 0x40185a20, 0x284b: 0x40185c20, - 0x284c: 0x40185e20, 0x284d: 0x40186020, 0x284e: 0x40186220, 0x284f: 0x40186420, - 0x2850: 0x40186620, 0x2851: 0x40186820, 0x2852: 0x40186a20, 0x2853: 0x40186c20, - 0x2854: 0x40186e20, 0x2855: 0x40187020, 0x2856: 0x40187220, 0x2857: 0x40187420, - 0x2858: 0x40187620, 0x2859: 0x40187820, 0x285a: 0x40187a20, 0x285b: 0x40187c20, - 0x285c: 0x40187e20, 0x285d: 0x40188020, 0x285e: 0x40188220, 0x285f: 0x40188420, - 0x2860: 0x40188620, 0x2861: 0x40188820, 0x2862: 0x40188a20, 0x2863: 0x40188c20, - 0x2864: 0x40188e20, 0x2865: 0x40189020, 0x2866: 0x40189220, 0x2867: 0x40189420, - 0x2868: 0x40189620, 0x2869: 0x40189820, 0x286a: 0x40189a20, 0x286b: 0x40189c20, - 0x286c: 0x40189e20, 0x286d: 0x4018a020, 0x286e: 0x4018a220, 0x286f: 0x4018a420, - 0x2870: 0x4018a620, 0x2871: 0x4018a820, 0x2872: 0x4018aa20, 0x2873: 0x4018ac20, - 0x2874: 0x4018ae20, 0x2875: 0x4018b020, 0x2876: 0x4018b220, 0x2877: 0x4018b420, - 0x2878: 0x4018b620, 0x2879: 0x4018b820, 0x287a: 0x4018ba20, 0x287b: 0x4018bc20, - 0x287c: 0x4018be20, 0x287d: 0x4018c020, 0x287e: 0x4018c220, 0x287f: 0x4018c420, - // Block 0xa2, offset 0x2880 - 0x2880: 0x4018c620, 0x2881: 0x4018c820, 0x2882: 0x4018ca20, 0x2883: 0x4018cc20, - 0x2884: 0x4018ce20, 0x2885: 0x4018d020, 0x2886: 0x4018d220, 0x2887: 0x4018d420, - 0x2888: 0x4018d620, 0x2889: 0x4018d820, 0x288a: 0x4018da20, 0x288b: 0x4018dc20, - 0x288c: 0x4018de20, 0x288d: 0x4018e020, 0x288e: 0x4018e220, 0x288f: 0x4018e420, - 0x2890: 0x4018e620, 0x2891: 0x4018e820, 0x2892: 0x4018ea20, 0x2893: 0x4018ec20, - 0x2894: 0x4018ee20, 0x2895: 0x4018f020, 0x2896: 0x4018f220, 0x2897: 0x4018f420, - 0x2898: 0x4018f620, 0x2899: 0x4018f820, 0x289a: 0x4018fa20, 0x289b: 0x4018fc20, - 0x289c: 0x4018fe20, 0x289d: 0x40190020, 0x289e: 0x40190220, 0x289f: 0x40190420, - 0x28a0: 0x40190620, 0x28a1: 0x40190820, 0x28a2: 0x40190a20, 0x28a3: 0x40190c20, - 0x28a4: 0x40190e20, 0x28a5: 0x40191020, 0x28a6: 0x40191220, 0x28a7: 0x40191420, - 0x28a8: 0x40191620, 0x28a9: 0x40191820, 0x28aa: 0x40191a20, 0x28ab: 0x40191c20, - 0x28ac: 0x40191e20, 0x28ad: 0x40192020, 0x28ae: 0x40192220, 0x28af: 0x40192420, - 0x28b0: 0x40192620, 0x28b1: 0x40192820, 0x28b2: 0x40192a20, 0x28b3: 0x40192c20, - 0x28b4: 0x40192e20, 0x28b5: 0x40193020, 0x28b6: 0x40193220, 0x28b7: 0x40193420, - 0x28b8: 0x40193620, 0x28b9: 0x40193820, 0x28ba: 0x40193a20, 0x28bb: 0x40193c20, - 0x28bc: 0x40193e20, 0x28bd: 0x40194020, 0x28be: 0x40194220, 0x28bf: 0x40194420, - // Block 0xa3, offset 0x28c0 - 0x28c0: 0x4012ce20, 0x28c1: 0x4012d020, 0x28c2: 0x4012d220, 0x28c3: 0x4012d420, - 0x28c4: 0x4012d620, 0x28c5: 0x4012d820, 0x28c6: 0x4012da20, 0x28c7: 0x4012dc20, - 0x28c8: 0x4012de20, 0x28c9: 0x4012e020, 0x28ca: 0x4012e220, 0x28cb: 0x4012e420, - 0x28cc: 0x4012e620, 0x28cd: 0x4012e820, 0x28ce: 0x4012ea20, 0x28cf: 0x4012ec20, - 0x28d0: 0x4012ee20, 0x28d1: 0x4012f020, 0x28d2: 0x4012f220, 0x28d3: 0x4012f420, - 0x28d4: 0x4012f620, 0x28d5: 0x4012f820, 0x28d6: 0x4012fa20, 0x28d7: 0x4012fc20, - 0x28d8: 0x4012fe20, 0x28d9: 0x40130020, 0x28da: 0x40130220, 0x28db: 0x40130420, - 0x28dc: 0x40130620, 0x28dd: 0x40130820, 0x28de: 0x40130a20, 0x28df: 0x40130c20, - 0x28e0: 0x40130e20, 0x28e1: 0x40131020, 0x28e2: 0x40131220, 0x28e3: 0x40131420, - 0x28e4: 0x40131620, 0x28e5: 0x40131820, 0x28e6: 0x40131a20, 0x28e7: 0x40131c20, - 0x28e8: 0x40131e20, 0x28e9: 0x40132020, 0x28ea: 0x40132220, 0x28eb: 0x40132420, - 0x28ec: 0x40132620, 0x28ed: 0x40132820, 0x28ee: 0x40132a20, 0x28ef: 0x40132c20, - 0x28f0: 0x40132e20, 0x28f1: 0x40133020, 0x28f2: 0x40133220, 0x28f3: 0x40133420, - 0x28f4: 0x40133620, 0x28f5: 0x40133820, 0x28f6: 0x40133a20, 0x28f7: 0x40133c20, - 0x28f8: 0x40133e20, 0x28f9: 0x40134020, 0x28fa: 0x40134220, 0x28fb: 0x40134420, - 0x28fc: 0x40134620, 0x28fd: 0x40134820, 0x28fe: 0x40134a20, 0x28ff: 0x40134c20, - // Block 0xa4, offset 0x2900 - 0x2900: 0x40134e20, 0x2901: 0x40135020, 0x2902: 0x40135220, 0x2903: 0x40135420, - 0x2904: 0x40135620, 0x2905: 0x40135820, 0x2906: 0x40135a20, 0x2907: 0x40135c20, - 0x2908: 0x40135e20, 0x2909: 0x40136020, 0x290a: 0x40136220, 0x290b: 0x40136420, - 0x290c: 0x40136620, 0x290d: 0x40136820, 0x290e: 0x40136a20, 0x290f: 0x40136c20, - 0x2910: 0x40136e20, 0x2911: 0x40137020, 0x2912: 0x40137220, 0x2913: 0x40137420, - 0x2914: 0x40137620, 0x2915: 0x40137820, 0x2916: 0x40137a20, 0x2917: 0x40137c20, - 0x2918: 0x40137e20, 0x2919: 0x40138020, 0x291a: 0x40138220, 0x291b: 0x40138420, - 0x291c: 0x40138620, 0x291d: 0x40138820, 0x291e: 0x40138a20, 0x291f: 0x40138c20, - 0x2920: 0x40138e20, 0x2921: 0x40139020, 0x2922: 0x40139220, 0x2923: 0x40139420, - 0x2924: 0x40139620, 0x2925: 0x40139820, 0x2926: 0x40139a20, 0x2927: 0x40139c20, - 0x2928: 0x40139e20, 0x2929: 0x4013a020, 0x292a: 0x4013a220, 0x292b: 0x4013a420, - 0x292c: 0x4013a620, 0x292d: 0x4013a820, 0x292e: 0x4013aa20, 0x292f: 0x4013ac20, - 0x2930: 0x4013ae20, 0x2931: 0x4013b020, 0x2932: 0x4013b220, 0x2933: 0x4013b420, - 0x2934: 0x4013b620, 0x2935: 0x4013b820, 0x2936: 0x4013ba20, 0x2937: 0x4013bc20, - 0x2938: 0x4013be20, 0x2939: 0x4013c020, 0x293a: 0x4013c220, 0x293b: 0x4013c420, - 0x293c: 0x4013c620, 0x293d: 0x4013c820, 0x293e: 0x4013ca20, 0x293f: 0x4013cc20, - // Block 0xa5, offset 0x2940 - 0x2940: 0x4013ce20, 0x2941: 0x4013d020, 0x2942: 0x4013d220, 0x2943: 0x40041420, - 0x2944: 0x40041620, 0x2945: 0x40041820, 0x2946: 0x40041a20, 0x2947: 0x40041c20, - 0x2948: 0x40041e20, 0x2949: 0x40042020, 0x294a: 0x40042220, 0x294b: 0x40042420, - 0x294c: 0x40042620, 0x294d: 0x40042820, 0x294e: 0x40042a20, 0x294f: 0x40042c20, - 0x2950: 0x40042e20, 0x2951: 0x40043020, 0x2952: 0x40043220, 0x2953: 0x40043420, - 0x2954: 0x40043620, 0x2955: 0x40043820, 0x2956: 0x40043a20, 0x2957: 0x40043c20, - 0x2958: 0x40043e20, 0x2959: 0x4013d420, 0x295a: 0x4013d620, 0x295b: 0x4013d820, - 0x295c: 0x4013da20, 0x295d: 0x4013dc20, 0x295e: 0x4013de20, 0x295f: 0x4013e020, - 0x2960: 0x4013e220, 0x2961: 0x4013e420, 0x2962: 0x4013e620, 0x2963: 0x4013e820, - 0x2964: 0x4013ea20, 0x2965: 0x4013ec20, 0x2966: 0x4013ee20, 0x2967: 0x4013f020, - 0x2968: 0x4013f220, 0x2969: 0x4013f420, 0x296a: 0x4013f620, 0x296b: 0x4013f820, - 0x296c: 0x4013fa20, 0x296d: 0x4013fc20, 0x296e: 0x4013fe20, 0x296f: 0x40140020, - 0x2970: 0x40140220, 0x2971: 0x40140420, 0x2972: 0x40140620, 0x2973: 0x40140820, - 0x2974: 0x40140a20, 0x2975: 0x40140c20, 0x2976: 0x40140e20, 0x2977: 0x40141020, - 0x2978: 0x40141220, 0x2979: 0x40141420, 0x297a: 0x40141620, 0x297b: 0x40141820, - 0x297c: 0x40141a20, 0x297d: 0x40141c20, 0x297e: 0x40141e20, 0x297f: 0x40142020, - // Block 0xa6, offset 0x2980 - 0x2980: 0x40142220, 0x2981: 0x40142420, 0x2982: 0x40142620, 0x2983: 0x40142820, - 0x2984: 0x40142a20, 0x2985: 0x40142c20, 0x2986: 0x40142e20, 0x2987: 0x40143020, - 0x2988: 0x40143220, 0x2989: 0x40143420, 0x298a: 0x40143620, 0x298b: 0x40143820, - 0x298c: 0x40143a20, 0x298d: 0x40143c20, 0x298e: 0x40143e20, 0x298f: 0x40144020, - 0x2990: 0x40144220, 0x2991: 0x40144420, 0x2992: 0x40144620, 0x2993: 0x40144820, - 0x2994: 0x40144a20, 0x2995: 0x40144c20, 0x2996: 0x40144e20, 0x2997: 0x40145020, - 0x2998: 0x4004c620, 0x2999: 0x4004c820, 0x299a: 0x4004ca20, 0x299b: 0x4004cc20, - 0x299c: 0x40145220, 0x299d: 0x40145420, 0x299e: 0x40145620, 0x299f: 0x40145820, - 0x29a0: 0x40145a20, 0x29a1: 0x40145c20, 0x29a2: 0x40145e20, 0x29a3: 0x40146020, - 0x29a4: 0x40146220, 0x29a5: 0x40146420, 0x29a6: 0x40146620, 0x29a7: 0x40146820, - 0x29a8: 0x40146a20, 0x29a9: 0x40146c20, 0x29aa: 0x40146e20, 0x29ab: 0x40147020, - 0x29ac: 0x40147220, 0x29ad: 0x40147420, 0x29ae: 0x40147620, 0x29af: 0x40147820, - 0x29b0: 0x40147a20, 0x29b1: 0x40147c20, 0x29b2: 0x40147e20, 0x29b3: 0x40148020, - 0x29b4: 0x40148220, 0x29b5: 0x40148420, 0x29b6: 0x40148620, 0x29b7: 0x40148820, - 0x29b8: 0x40148a20, 0x29b9: 0x40148c20, 0x29ba: 0x40148e20, 0x29bb: 0x40149020, - 0x29bc: 0x40041020, 0x29bd: 0x40041220, 0x29be: 0x40149220, 0x29bf: 0x40149420, - // Block 0xa7, offset 0x29c0 - 0x29c0: 0x40149620, 0x29c1: 0x40149820, 0x29c2: 0x40149a20, 0x29c3: 0x40149c20, - 0x29c4: 0x40149e20, 0x29c5: 0x4014a020, 0x29c6: 0x4014a220, 0x29c7: 0x4014a420, - 0x29c8: 0x4014a620, 0x29c9: 0x4014a820, 0x29ca: 0x4014aa20, 0x29cb: 0x4014ac20, - 0x29cc: 0xe00000f0, 0x29cd: 0x4014ae20, 0x29ce: 0x4014b020, 0x29cf: 0x4014b220, - 0x29d0: 0x4014b420, 0x29d1: 0x4014b620, 0x29d2: 0x4014b820, 0x29d3: 0x4014ba20, - 0x29d4: 0x4014bc20, 0x29d5: 0x4014be20, 0x29d6: 0x4014c020, 0x29d7: 0x4014c220, - 0x29d8: 0x4014c420, 0x29d9: 0x4014c620, 0x29da: 0x4014c820, 0x29db: 0x4014ca20, - 0x29dc: 0x4014cc20, 0x29dd: 0x4014ce20, 0x29de: 0x4014d020, 0x29df: 0x4014d220, - 0x29e0: 0x4014d420, 0x29e1: 0x4014d620, 0x29e2: 0x4014d820, 0x29e3: 0x4014da20, - 0x29e4: 0x4014dc20, 0x29e5: 0x4014de20, 0x29e6: 0x4014e020, 0x29e7: 0x4014e220, - 0x29e8: 0x4014e420, 0x29e9: 0x4014e620, 0x29ea: 0x4014e820, 0x29eb: 0x4014ea20, - 0x29ec: 0x4014ec20, 0x29ed: 0x4014ee20, 0x29ee: 0x4014f020, 0x29ef: 0x4014f220, - 0x29f0: 0x4014f420, 0x29f1: 0x4014f620, 0x29f2: 0x4014f820, 0x29f3: 0x4014fa20, - 0x29f4: 0x4014fc20, 0x29f5: 0x4014fe20, 0x29f6: 0x40150020, 0x29f7: 0x40150220, - 0x29f8: 0x40150420, 0x29f9: 0x40150620, 0x29fa: 0x40150820, 0x29fb: 0x40150a20, - 0x29fc: 0x40150c20, 0x29fd: 0x40150e20, 0x29fe: 0x40151020, 0x29ff: 0x40151220, - // Block 0xa8, offset 0x2a00 - 0x2a00: 0x40151420, 0x2a01: 0x40151620, 0x2a02: 0x40151820, 0x2a03: 0x40151a20, - 0x2a04: 0x40151c20, 0x2a05: 0x40151e20, 0x2a06: 0x40152020, 0x2a07: 0x40152220, - 0x2a08: 0x40152420, 0x2a09: 0x40152620, 0x2a0a: 0x40152820, 0x2a0b: 0x40152a20, - 0x2a0c: 0x40152c20, 0x2a0d: 0x40152e20, 0x2a0e: 0x40153020, 0x2a0f: 0x40153220, - 0x2a10: 0x40153420, 0x2a11: 0x40153620, 0x2a12: 0x40153820, 0x2a13: 0x40153a20, - 0x2a14: 0x40153c20, 0x2a15: 0x40153e20, 0x2a16: 0x40154020, 0x2a17: 0x40154220, - 0x2a18: 0x40154420, 0x2a19: 0x40154620, 0x2a1a: 0x40154820, 0x2a1b: 0x40154a20, - 0x2a1c: 0x40154c20, 0x2a1d: 0x40154e20, 0x2a1e: 0x40155020, 0x2a1f: 0x40155220, - 0x2a20: 0x40155420, 0x2a21: 0x40155620, 0x2a22: 0x40155820, 0x2a23: 0x40155a20, - 0x2a24: 0x40155c20, 0x2a25: 0x40155e20, 0x2a26: 0x40156020, 0x2a27: 0x40156220, - 0x2a28: 0x40156420, 0x2a29: 0x40156620, 0x2a2a: 0x40156820, 0x2a2b: 0x40156a20, - 0x2a2c: 0x40156c20, 0x2a2d: 0x40156e20, 0x2a2e: 0x40157020, 0x2a2f: 0x40157220, - 0x2a30: 0x40157420, 0x2a31: 0x40157620, 0x2a32: 0x40157820, 0x2a33: 0x40157a20, - 0x2a34: 0xf0000404, 0x2a35: 0xf0001f04, 0x2a36: 0xf0000404, 0x2a37: 0x40157c20, - 0x2a38: 0x40157e20, 0x2a39: 0x40158020, 0x2a3a: 0x40158220, 0x2a3b: 0x40158420, - 0x2a3c: 0x40158620, 0x2a3d: 0x40158820, 0x2a3e: 0x40158a20, 0x2a3f: 0x40158c20, - // Block 0xa9, offset 0x2a40 - 0x2a40: 0x40158e20, 0x2a41: 0x40159020, 0x2a42: 0x40159220, 0x2a43: 0x40159420, - 0x2a44: 0x40159620, 0x2a45: 0x40159820, 0x2a46: 0x40159a20, 0x2a47: 0x40159c20, - 0x2a48: 0x40159e20, 0x2a49: 0x4015a020, 0x2a4a: 0x4015a220, 0x2a4b: 0x4015a420, - 0x2a4c: 0x4015a620, 0x2a4d: 0x4015a820, 0x2a4e: 0x4015aa20, 0x2a4f: 0x4015ac20, - 0x2a50: 0x4015ae20, 0x2a51: 0x4015b020, 0x2a52: 0x4015b220, 0x2a53: 0x4015b420, - 0x2a54: 0x4015b620, 0x2a55: 0x4015b820, 0x2a56: 0x4015ba20, 0x2a57: 0x4015bc20, - 0x2a58: 0x4015be20, 0x2a59: 0x4015c020, 0x2a5a: 0x4015c220, 0x2a5b: 0x4015c420, - 0x2a5c: 0x4015c620, 0x2a5d: 0x4015c820, 0x2a5e: 0x4015ca20, 0x2a5f: 0x4015cc20, - 0x2a60: 0x4015ce20, 0x2a61: 0x4015d020, 0x2a62: 0x4015d220, 0x2a63: 0x4015d420, - 0x2a64: 0x4015d620, 0x2a65: 0x4015d820, 0x2a66: 0x4015da20, 0x2a67: 0x4015dc20, - 0x2a68: 0x4015de20, 0x2a69: 0x4015e020, 0x2a6a: 0x4015e220, 0x2a6b: 0x4015e420, - 0x2a6c: 0x4015e620, 0x2a6d: 0x4015e820, 0x2a6e: 0x4015ea20, 0x2a6f: 0x4015ec20, - 0x2a70: 0x4015ee20, 0x2a71: 0x4015f020, 0x2a72: 0x4015f220, 0x2a73: 0x4015f420, - 0x2a74: 0x4015f620, 0x2a75: 0x4015f820, 0x2a76: 0x4015fa20, 0x2a77: 0x4015fc20, - 0x2a78: 0x4015fe20, 0x2a79: 0x40160020, 0x2a7a: 0x40160220, 0x2a7b: 0x40160420, - 0x2a7c: 0x40160620, 0x2a7d: 0x40160820, 0x2a7e: 0x40160a20, 0x2a7f: 0x40160c20, - // Block 0xaa, offset 0x2a80 - 0x2a80: 0x40160e20, 0x2a81: 0x40161020, 0x2a82: 0x40161220, 0x2a83: 0x40161420, - 0x2a84: 0x40161620, 0x2a85: 0x40161820, 0x2a86: 0x40161a20, 0x2a87: 0x40161c20, - 0x2a88: 0x40161e20, 0x2a89: 0x40162020, 0x2a8a: 0x40162220, 0x2a8b: 0x40162420, - 0x2a8c: 0x40162620, 0x2a8d: 0x40162820, 0x2a8e: 0x40162a20, 0x2a8f: 0x40162c20, - 0x2a90: 0x40162e20, 0x2a91: 0x40163020, 0x2a92: 0x40163220, 0x2a93: 0x40163420, - 0x2a94: 0x40163620, 0x2a95: 0x40163820, 0x2a96: 0x40163a20, 0x2a97: 0x40163c20, - 0x2a98: 0x40163e20, 0x2a99: 0x40164020, 0x2a9a: 0x40164220, 0x2a9b: 0x40164420, - 0x2a9c: 0xe000014f, 0x2a9d: 0x40164620, 0x2a9e: 0x40164820, 0x2a9f: 0x40164a20, - 0x2aa0: 0x40164c20, 0x2aa1: 0x40164e20, 0x2aa2: 0x40165020, 0x2aa3: 0x40165220, - 0x2aa4: 0x40165420, 0x2aa5: 0x40165620, 0x2aa6: 0x40165820, 0x2aa7: 0x40165a20, - 0x2aa8: 0x40165c20, 0x2aa9: 0x40165e20, 0x2aaa: 0x40166020, 0x2aab: 0x40166220, - 0x2aac: 0x40166420, 0x2aad: 0x40166620, 0x2aae: 0x40166820, 0x2aaf: 0x40166a20, - 0x2ab0: 0x40166c20, 0x2ab1: 0x40166e20, 0x2ab2: 0x40167020, 0x2ab3: 0x40167220, - 0x2ab4: 0x40167420, 0x2ab5: 0x40167620, 0x2ab6: 0x40167820, 0x2ab7: 0x40167a20, - 0x2ab8: 0x40167c20, 0x2ab9: 0x40167e20, 0x2aba: 0x40168020, 0x2abb: 0x40168220, - 0x2abc: 0x40168420, 0x2abd: 0x40168620, 0x2abe: 0x40168820, 0x2abf: 0x40168a20, - // Block 0xab, offset 0x2ac0 - 0x2ac0: 0x40168c20, 0x2ac1: 0x40168e20, 0x2ac2: 0x40169020, 0x2ac3: 0x40169220, - 0x2ac4: 0x40169420, 0x2ac5: 0x40169620, 0x2ac6: 0x40169820, 0x2ac7: 0x40169a20, - 0x2ac8: 0x40169c20, 0x2ac9: 0x40169e20, 0x2aca: 0x4016a020, 0x2acb: 0x4016a220, - 0x2acc: 0x4016a420, 0x2acd: 0x4016a620, 0x2ace: 0x4016a820, 0x2acf: 0x4016aa20, - 0x2ad0: 0x4016ac20, 0x2ad1: 0x4016ae20, 0x2ad2: 0x4016b020, 0x2ad3: 0x4016b220, - 0x2ad4: 0x4016b420, 0x2ad5: 0x4016b620, 0x2ad6: 0x4016b820, 0x2ad7: 0x4016ba20, - 0x2ad8: 0x4016bc20, 0x2ad9: 0x4016be20, 0x2ada: 0x4016c020, 0x2adb: 0x4016c220, - 0x2adc: 0x4016c420, 0x2add: 0x4016c620, 0x2ade: 0x4016c820, 0x2adf: 0x4016ca20, - 0x2ae0: 0x4016cc20, 0x2ae1: 0x4016ce20, 0x2ae2: 0x4016d020, 0x2ae3: 0x4016d220, - 0x2ae4: 0x4016d420, 0x2ae5: 0x4016d620, 0x2ae6: 0x4016d820, 0x2ae7: 0x4016da20, - 0x2ae8: 0x4016dc20, 0x2ae9: 0x4016de20, 0x2aea: 0x4016e020, 0x2aeb: 0x4016e220, - 0x2aec: 0x4016e420, 0x2aed: 0x4016e620, 0x2aee: 0x4016e820, 0x2aef: 0x4016ea20, - 0x2af0: 0x4016ec20, 0x2af1: 0x4016ee20, 0x2af2: 0x4016f020, 0x2af3: 0x4016f220, - 0x2af4: 0x4016f420, 0x2af5: 0x4016f620, 0x2af6: 0x4016f820, 0x2af7: 0x4016fa20, - 0x2af8: 0x4016fc20, 0x2af9: 0x4016fe20, 0x2afa: 0x40170020, 0x2afb: 0x40170220, - 0x2afc: 0x40170420, 0x2afd: 0x40170620, 0x2afe: 0x40170820, 0x2aff: 0x40170a20, - // Block 0xac, offset 0x2b00 - 0x2b00: 0x40170c20, 0x2b01: 0x40170e20, 0x2b02: 0x40171020, 0x2b03: 0x40171220, - 0x2b04: 0x40171420, 0x2b05: 0x40171620, 0x2b06: 0x40171820, 0x2b07: 0x40171a20, - 0x2b08: 0x40171c20, 0x2b09: 0x40171e20, 0x2b0a: 0x40172020, 0x2b0b: 0x40172220, - 0x2b0c: 0x40172420, - 0x2b10: 0x40172620, 0x2b11: 0x40172820, 0x2b12: 0x40172a20, 0x2b13: 0x40172c20, - 0x2b14: 0x40172e20, 0x2b15: 0x40173020, 0x2b16: 0x40173220, 0x2b17: 0x40173420, - 0x2b18: 0x40173620, 0x2b19: 0x40173820, - // Block 0xad, offset 0x2b40 - 0x2b40: 0x00373888, 0x2b41: 0x00373a88, 0x2b42: 0x00373c88, 0x2b43: 0x00373e88, - 0x2b44: 0x00374088, 0x2b45: 0x00374288, 0x2b46: 0x00374488, 0x2b47: 0x00374688, - 0x2b48: 0x00374888, 0x2b49: 0x00374a88, 0x2b4a: 0x00374c88, 0x2b4b: 0x00374e88, - 0x2b4c: 0x00375088, 0x2b4d: 0x00375288, 0x2b4e: 0x00375488, 0x2b4f: 0x00375688, - 0x2b50: 0x00375888, 0x2b51: 0x00375a88, 0x2b52: 0x00375c88, 0x2b53: 0x00375e88, - 0x2b54: 0x00376088, 0x2b55: 0x00376288, 0x2b56: 0x00376488, 0x2b57: 0x00376688, - 0x2b58: 0x00376888, 0x2b59: 0x00376a88, 0x2b5a: 0x00376c88, 0x2b5b: 0x00376e88, - 0x2b5c: 0x00377088, 0x2b5d: 0x00377288, 0x2b5e: 0x00377488, 0x2b5f: 0x00377688, - 0x2b60: 0x00377888, 0x2b61: 0x00377a88, 0x2b62: 0x00377c88, 0x2b63: 0x00377e88, - 0x2b64: 0x00378088, 0x2b65: 0x00378288, 0x2b66: 0x00378488, 0x2b67: 0x00378688, - 0x2b68: 0x00378888, 0x2b69: 0x00378a88, 0x2b6a: 0x00378c88, 0x2b6b: 0x00378e88, - 0x2b6c: 0x00379088, 0x2b6d: 0x00379288, 0x2b6e: 0x00379488, - 0x2b70: 0x40373820, 0x2b71: 0x40373a20, 0x2b72: 0x40373c20, 0x2b73: 0x40373e20, - 0x2b74: 0x40374020, 0x2b75: 0x40374220, 0x2b76: 0x40374420, 0x2b77: 0x40374620, - 0x2b78: 0x40374820, 0x2b79: 0x40374a20, 0x2b7a: 0x40374c20, 0x2b7b: 0x40374e20, - 0x2b7c: 0x40375020, 0x2b7d: 0x40375220, 0x2b7e: 0x40375420, 0x2b7f: 0x40375620, - // Block 0xae, offset 0x2b80 - 0x2b80: 0x40375820, 0x2b81: 0x40375a20, 0x2b82: 0x40375c20, 0x2b83: 0x40375e20, - 0x2b84: 0x40376020, 0x2b85: 0x40376220, 0x2b86: 0x40376420, 0x2b87: 0x40376620, - 0x2b88: 0x40376820, 0x2b89: 0x40376a20, 0x2b8a: 0x40376c20, 0x2b8b: 0x40376e20, - 0x2b8c: 0x40377020, 0x2b8d: 0x40377220, 0x2b8e: 0x40377420, 0x2b8f: 0x40377620, - 0x2b90: 0x40377820, 0x2b91: 0x40377a20, 0x2b92: 0x40377c20, 0x2b93: 0x40377e20, - 0x2b94: 0x40378020, 0x2b95: 0x40378220, 0x2b96: 0x40378420, 0x2b97: 0x40378620, - 0x2b98: 0x40378820, 0x2b99: 0x40378a20, 0x2b9a: 0x40378c20, 0x2b9b: 0x40378e20, - 0x2b9c: 0x40379020, 0x2b9d: 0x40379220, 0x2b9e: 0x40379420, - 0x2ba0: 0x002e4088, 0x2ba1: 0x402e4020, 0x2ba2: 0x002e4288, 0x2ba3: 0x002f3688, - 0x2ba4: 0x002fbe88, 0x2ba5: 0x402be820, 0x2ba6: 0x40303e20, 0x2ba7: 0x002d8888, - 0x2ba8: 0x402d8820, 0x2ba9: 0x002e1288, 0x2baa: 0x402e1220, 0x2bab: 0x00316088, - 0x2bac: 0x40316020, 0x2bad: 0x002bf888, 0x2bae: 0x002e9088, 0x2baf: 0x002bf088, - 0x2bb0: 0x002c0288, 0x2bb1: 0x4030d420, 0x2bb2: 0x0030ec88, 0x2bb3: 0x4030ec20, - 0x2bb4: 0x4030d620, 0x2bb5: 0x002d8a88, 0x2bb6: 0x402d8a20, 0x2bb7: 0x402f5420, - 0x2bb8: 0x402cac20, 0x2bb9: 0x402fb420, 0x2bba: 0x402f0e20, 0x2bbb: 0x402cb620, - 0x2bbc: 0x002dcc95, 0x2bbd: 0x0030be9d, 0x2bbe: 0x002ffc88, 0x2bbf: 0x00315888, - // Block 0xaf, offset 0x2bc0 - 0x2bc0: 0x0032aa88, 0x2bc1: 0x4032aa20, 0x2bc2: 0x0032ac88, 0x2bc3: 0x4032ac20, - 0x2bc4: 0x0032ae88, 0x2bc5: 0x4032ae20, 0x2bc6: 0x0032b088, 0x2bc7: 0x4032b020, - 0x2bc8: 0x0032b288, 0x2bc9: 0x4032b220, 0x2bca: 0x0032b688, 0x2bcb: 0x4032b620, - 0x2bcc: 0x0032b888, 0x2bcd: 0x4032b820, 0x2bce: 0x0032ba88, 0x2bcf: 0x4032ba20, - 0x2bd0: 0x0032bc88, 0x2bd1: 0x4032bc20, 0x2bd2: 0x0032be88, 0x2bd3: 0x4032be20, - 0x2bd4: 0x0032c088, 0x2bd5: 0x4032c020, 0x2bd6: 0x0032c488, 0x2bd7: 0x4032c420, - 0x2bd8: 0x0032c688, 0x2bd9: 0x4032c620, 0x2bda: 0x0032c888, 0x2bdb: 0x4032c820, - 0x2bdc: 0x0032ce88, 0x2bdd: 0x4032ce20, 0x2bde: 0x0032d088, 0x2bdf: 0x4032d020, - 0x2be0: 0x0032d288, 0x2be1: 0x4032d220, 0x2be2: 0x0032d488, 0x2be3: 0x4032d420, - 0x2be4: 0x0032d688, 0x2be5: 0x4032d620, 0x2be6: 0x0032d888, 0x2be7: 0x4032d820, - 0x2be8: 0x0032da88, 0x2be9: 0x4032da20, 0x2bea: 0x0032dc88, 0x2beb: 0x4032dc20, - 0x2bec: 0x0032de88, 0x2bed: 0x4032de20, 0x2bee: 0x0032e088, 0x2bef: 0x4032e020, - 0x2bf0: 0x0032e288, 0x2bf1: 0x4032e220, 0x2bf2: 0x00331888, 0x2bf3: 0x40331820, - 0x2bf4: 0x00331a88, 0x2bf5: 0x40331a20, 0x2bf6: 0x0032b488, 0x2bf7: 0x4032b420, - 0x2bf8: 0x0032c288, 0x2bf9: 0x4032c220, 0x2bfa: 0x0032ca88, 0x2bfb: 0x4032ca20, - 0x2bfc: 0x0032cc88, 0x2bfd: 0x4032cc20, 0x2bfe: 0x0032e488, 0x2bff: 0x4032e420, - // Block 0xb0, offset 0x2c00 - 0x2c00: 0x0032e688, 0x2c01: 0x4032e620, 0x2c02: 0x0032ec88, 0x2c03: 0x4032ec20, - 0x2c04: 0x0032ee88, 0x2c05: 0x4032ee20, 0x2c06: 0x0032f088, 0x2c07: 0x4032f020, - 0x2c08: 0x0032f888, 0x2c09: 0x4032f820, 0x2c0a: 0x0032fc88, 0x2c0b: 0x4032fc20, - 0x2c0c: 0x0032fe88, 0x2c0d: 0x4032fe20, 0x2c0e: 0x00330088, 0x2c0f: 0x40330020, - 0x2c10: 0x00330288, 0x2c11: 0x40330220, 0x2c12: 0x00330488, 0x2c13: 0x40330420, - 0x2c14: 0x00330688, 0x2c15: 0x40330620, 0x2c16: 0x00330c88, 0x2c17: 0x40330c20, - 0x2c18: 0x00331088, 0x2c19: 0x40331020, 0x2c1a: 0x00331288, 0x2c1b: 0x40331220, - 0x2c1c: 0x00331488, 0x2c1d: 0x40331420, 0x2c1e: 0x00331c88, 0x2c1f: 0x40331c20, - 0x2c20: 0x00331e88, 0x2c21: 0x40331e20, 0x2c22: 0x00332088, 0x2c23: 0x40332020, - 0x2c24: 0xe00014b0, 0x2c25: 0x40173a20, 0x2c26: 0x40173c20, 0x2c27: 0x40173e20, - 0x2c28: 0x40174020, 0x2c29: 0x40174220, 0x2c2a: 0x40174420, 0x2c2b: 0x0032ea88, - 0x2c2c: 0x4032ea20, 0x2c2d: 0x00330a88, 0x2c2e: 0x40330a20, 0x2c2f: 0xae605f02, - 0x2c30: 0xae602a02, 0x2c31: 0xae602202, 0x2c32: 0x0032f688, 0x2c33: 0x4032f620, - 0x2c39: 0x4002f820, 0x2c3a: 0x4002d420, 0x2c3b: 0x4002d620, - 0x2c3c: 0x4003b620, 0x2c3d: 0x4028b420, 0x2c3e: 0x4002fa20, 0x2c3f: 0x4003b820, - // Block 0xb1, offset 0x2c40 - 0x2c40: 0x40379820, 0x2c41: 0x40379c20, 0x2c42: 0x4037a020, 0x2c43: 0x4037a420, - 0x2c44: 0x4037a820, 0x2c45: 0x4037ac20, 0x2c46: 0x4037b020, 0x2c47: 0x4037b820, - 0x2c48: 0x4037bc20, 0x2c49: 0x4037c020, 0x2c4a: 0x4037c420, 0x2c4b: 0x4037c820, - 0x2c4c: 0x4037cc20, 0x2c4d: 0x4037d420, 0x2c4e: 0x4037d820, 0x2c4f: 0x4037dc20, - 0x2c50: 0x4037e020, 0x2c51: 0x4037e420, 0x2c52: 0x4037e820, 0x2c53: 0x4037f020, - 0x2c54: 0x4037f420, 0x2c55: 0x4037f820, 0x2c56: 0x4037fc20, 0x2c57: 0x40380020, - 0x2c58: 0x40380420, 0x2c59: 0x40380820, 0x2c5a: 0x40380c20, 0x2c5b: 0x40381020, - 0x2c5c: 0x40381420, 0x2c5d: 0x40381820, 0x2c5e: 0x40381c20, 0x2c5f: 0x40382420, - 0x2c60: 0x40382820, 0x2c61: 0x4037b420, 0x2c62: 0x4037d020, 0x2c63: 0x4037ec20, - 0x2c64: 0x40382020, 0x2c65: 0x40382c20, 0x2c67: 0x40383220, - 0x2c6d: 0x40383c20, - 0x2c70: 0x403bbc20, 0x2c71: 0x403bbe20, 0x2c72: 0x403bc020, 0x2c73: 0x403bc220, - 0x2c74: 0x403bc420, 0x2c75: 0x403bc620, 0x2c76: 0x403bc820, 0x2c77: 0x403bca20, - 0x2c78: 0x403bcc20, 0x2c79: 0x403bce20, 0x2c7a: 0x403bd020, 0x2c7b: 0x403bd220, - 0x2c7c: 0x403bd620, 0x2c7d: 0x403bd820, 0x2c7e: 0x403bda20, 0x2c7f: 0x403bdc20, - // Block 0xb2, offset 0x2c80 - 0x2c80: 0x403bde20, 0x2c81: 0x403be020, 0x2c82: 0x403be220, 0x2c83: 0x403be420, - 0x2c84: 0x403be620, 0x2c85: 0x403be820, 0x2c86: 0x403bea20, 0x2c87: 0x403bec20, - 0x2c88: 0x403bee20, 0x2c89: 0x403bf020, 0x2c8a: 0x403bf220, 0x2c8b: 0x403bf420, - 0x2c8c: 0x403bf620, 0x2c8d: 0x403bf820, 0x2c8e: 0x403bfa20, 0x2c8f: 0x403bfc20, - 0x2c90: 0x403bfe20, 0x2c91: 0x403c0020, 0x2c92: 0x403c0220, 0x2c93: 0x403c0420, - 0x2c94: 0x403c0820, 0x2c95: 0x403c0a20, 0x2c96: 0x403c0c20, 0x2c97: 0x403c0e20, - 0x2c98: 0x403c1020, 0x2c99: 0x403c1220, 0x2c9a: 0x403c1420, 0x2c9b: 0x403c1620, - 0x2c9c: 0x403c1820, 0x2c9d: 0x403c1a20, 0x2c9e: 0x403c1c20, 0x2c9f: 0x403c1e20, - 0x2ca0: 0x403c2020, 0x2ca1: 0x403c2220, 0x2ca2: 0x403c2420, 0x2ca3: 0x403c2620, - 0x2ca4: 0x403c2820, 0x2ca5: 0x403c2a20, 0x2ca6: 0x403bd420, 0x2ca7: 0x403c0620, - 0x2caf: 0x403c2c20, - 0x2cb0: 0x4005e620, - 0x2cbf: 0xa0900000, - // Block 0xb3, offset 0x2cc0 - 0x2cc0: 0x403c4e20, 0x2cc1: 0x403c7820, 0x2cc2: 0x403c9a20, 0x2cc3: 0x403cac20, - 0x2cc4: 0x403cca20, 0x2cc5: 0x403d1620, 0x2cc6: 0x403d3820, 0x2cc7: 0x403d4a20, - 0x2cc8: 0x403d7620, 0x2cc9: 0x403d8820, 0x2cca: 0x403d9a20, 0x2ccb: 0x403dfc20, - 0x2ccc: 0x403e3a20, 0x2ccd: 0x403e5820, 0x2cce: 0x403e6a20, 0x2ccf: 0x403eae20, - 0x2cd0: 0x403ec020, 0x2cd1: 0x403ee020, 0x2cd2: 0x403f4020, 0x2cd3: 0x403e9620, - 0x2cd4: 0x403e9820, 0x2cd5: 0x403e9a20, 0x2cd6: 0x403e9c20, - 0x2ce0: 0x403f4820, 0x2ce1: 0x403f4a20, 0x2ce2: 0x403f4c20, 0x2ce3: 0x403f4e20, - 0x2ce4: 0x403f5020, 0x2ce5: 0x403f5220, 0x2ce6: 0x403f5420, - 0x2ce8: 0x403f5620, 0x2ce9: 0x403f5820, 0x2cea: 0x403f5a20, 0x2ceb: 0x403f5c20, - 0x2cec: 0x403f5e20, 0x2ced: 0x403f6020, 0x2cee: 0x403f6220, - 0x2cf0: 0x403f6420, 0x2cf1: 0x403f6620, 0x2cf2: 0x403f6820, 0x2cf3: 0x403f6a20, - 0x2cf4: 0x403f6c20, 0x2cf5: 0x403f6e20, 0x2cf6: 0x403f7020, - 0x2cf8: 0x403f7220, 0x2cf9: 0x403f7420, 0x2cfa: 0x403f7620, 0x2cfb: 0x403f7820, - 0x2cfc: 0x403f7a20, 0x2cfd: 0x403f7c20, 0x2cfe: 0x403f7e20, - // Block 0xb4, offset 0x2d00 - 0x2d00: 0x403f8020, 0x2d01: 0x403f8220, 0x2d02: 0x403f8420, 0x2d03: 0x403f8620, - 0x2d04: 0x403f8820, 0x2d05: 0x403f8a20, 0x2d06: 0x403f8c20, - 0x2d08: 0x403f8e20, 0x2d09: 0x403f9020, 0x2d0a: 0x403f9220, 0x2d0b: 0x403f9420, - 0x2d0c: 0x403f9620, 0x2d0d: 0x403f9820, 0x2d0e: 0x403f9a20, - 0x2d10: 0x403f9c20, 0x2d11: 0x403f9e20, 0x2d12: 0x403fa020, 0x2d13: 0x403fa220, - 0x2d14: 0x403fa420, 0x2d15: 0x403fa620, 0x2d16: 0x403fa820, - 0x2d18: 0x403faa20, 0x2d19: 0x403fac20, 0x2d1a: 0x403fae20, 0x2d1b: 0x403fb020, - 0x2d1c: 0x403fb220, 0x2d1d: 0x403fb420, 0x2d1e: 0x403fb620, - 0x2d20: 0x84e619a9, 0x2d21: 0x84e619ad, 0x2d22: 0x84e619b1, 0x2d23: 0x84e619c5, - 0x2d24: 0x84e619e5, 0x2d25: 0x84e619f2, 0x2d26: 0x84e61a28, 0x2d27: 0x84e61a42, - 0x2d28: 0x84e61a54, 0x2d29: 0x84e61a5d, 0x2d2a: 0x84e61a77, 0x2d2b: 0x84e61a87, - 0x2d2c: 0x84e61a94, 0x2d2d: 0x84e61a9d, 0x2d2e: 0x84e61aa6, 0x2d2f: 0x84e61ada, - 0x2d30: 0x84e61b01, 0x2d31: 0x84e61b0c, 0x2d32: 0x84e61b2e, 0x2d33: 0x84e61b33, - 0x2d34: 0x84e61b86, 0x2d35: 0xe00014d8, 0x2d36: 0x84e61991, 0x2d37: 0x84e619d9, - 0x2d38: 0x84e61a27, 0x2d39: 0x84e61ad1, 0x2d3a: 0x84e61b4f, 0x2d3b: 0x84e61b5c, - 0x2d3c: 0x84e61b61, 0x2d3d: 0x84e61b6b, 0x2d3e: 0x84e61b70, 0x2d3f: 0x84e61b7a, - // Block 0xb5, offset 0x2d40 - 0x2d40: 0x40052620, 0x2d41: 0x40052820, 0x2d42: 0x40047420, 0x2d43: 0x40047620, - 0x2d44: 0x40047820, 0x2d45: 0x40047a20, 0x2d46: 0x40052a20, 0x2d47: 0x40052c20, - 0x2d48: 0x40052e20, 0x2d49: 0x40047c20, 0x2d4a: 0x40047e20, 0x2d4b: 0x40053020, - 0x2d4c: 0x40048020, 0x2d4d: 0x40048220, 0x2d4e: 0x40053220, 0x2d4f: 0x40053420, - 0x2d50: 0x40053620, 0x2d51: 0x40053820, 0x2d52: 0x40053a20, 0x2d53: 0x40053c20, - 0x2d54: 0x40053e20, 0x2d55: 0x40054020, 0x2d56: 0x40054220, 0x2d57: 0x40023620, - 0x2d58: 0x4002e220, 0x2d59: 0x4003ba20, 0x2d5a: 0x40054420, 0x2d5b: 0x40054620, - 0x2d5c: 0x40048420, 0x2d5d: 0x40048620, 0x2d5e: 0x40054820, 0x2d5f: 0x40054a20, - 0x2d60: 0x40048820, 0x2d61: 0x40048a20, 0x2d62: 0x40048c20, 0x2d63: 0x40048e20, - 0x2d64: 0x40049020, 0x2d65: 0x40049220, 0x2d66: 0x40049420, 0x2d67: 0x40049620, - 0x2d68: 0x40049820, 0x2d69: 0x40049a20, 0x2d6a: 0x4003ae20, 0x2d6b: 0x4003b020, - 0x2d6c: 0x4003b220, 0x2d6d: 0x4003b420, 0x2d6e: 0x4002c820, 0x2d6f: 0x40367020, - 0x2d70: 0x4002fc20, 0x2d71: 0x40030820, 0x2d72: 0x40024420, 0x2d73: 0x40030a20, - 0x2d74: 0x40024220, 0x2d75: 0x40026820, 0x2d76: 0x4004fc20, 0x2d77: 0x4004fe20, - 0x2d78: 0x40050020, 0x2d79: 0x4004d020, 0x2d7a: 0x40023020, 0x2d7b: 0x40023220, - // Block 0xb6, offset 0x2d80 - 0x2d80: 0xe0002401, 0x2d81: 0xe0002416, 0x2d82: 0x029cb684, 0x2d83: 0x029cb484, - 0x2d84: 0xe0002404, 0x2d85: 0x029d7684, 0x2d86: 0xe0002407, 0x2d87: 0xe000240a, - 0x2d88: 0xe000240d, 0x2d89: 0x02a40484, 0x2d8a: 0xe0002410, 0x2d8b: 0xe0002413, - 0x2d8c: 0xe0002419, 0x2d8d: 0xe000241c, 0x2d8e: 0xe000241f, 0x2d8f: 0x02b84684, - 0x2d90: 0x02b84484, 0x2d91: 0xe0002422, 0x2d92: 0x02bbe684, 0x2d93: 0x02bcf484, - 0x2d94: 0x02bea284, 0x2d95: 0xe0002425, 0x2d96: 0x02bf8884, 0x2d97: 0xe0002428, - 0x2d98: 0x02c49884, 0x2d99: 0x02ca6a84, 0x2d9b: 0x02cbc284, - 0x2d9c: 0xe000242b, 0x2d9d: 0xe000242e, 0x2d9e: 0xe0002436, 0x2d9f: 0x02d79a84, - 0x2da0: 0x02d82284, 0x2da1: 0x02d86a84, 0x2da2: 0x02d87484, 0x2da3: 0x02e0d884, - 0x2da4: 0x02e45684, 0x2da5: 0xe0002439, 0x2da6: 0x029c5884, 0x2da7: 0xe000243c, - 0x2da8: 0x02e55a84, 0x2da9: 0xe000243f, 0x2daa: 0xe0002442, 0x2dab: 0xe0002445, - 0x2dac: 0xe0002448, 0x2dad: 0x02f27684, 0x2dae: 0xe000244b, 0x2daf: 0x02f9f284, - 0x2db0: 0x02fd3e84, 0x2db1: 0x02fea684, 0x2db2: 0x02fea484, 0x2db3: 0xe0002451, - 0x2db4: 0xe0002454, 0x2db5: 0xe000244e, 0x2db6: 0xe0002457, 0x2db7: 0xe000245a, - 0x2db8: 0x02ff1684, 0x2db9: 0x03000484, 0x2dba: 0x03010084, 0x2dbb: 0xe000245d, - 0x2dbc: 0xe0002460, 0x2dbd: 0xe0002463, 0x2dbe: 0x0304f284, 0x2dbf: 0xe0002466, - // Block 0xb7, offset 0x2dc0 - 0x2dc0: 0xe0002469, 0x2dc1: 0x030c9c84, 0x2dc2: 0x0310c884, 0x2dc3: 0x03130084, - 0x2dc4: 0x0312fe84, 0x2dc5: 0x03138284, 0x2dc6: 0x0313a484, 0x2dc7: 0xe000246c, - 0x2dc8: 0x03174084, 0x2dc9: 0x031a3a84, 0x2dca: 0xe000246f, 0x2dcb: 0x031ecc84, - 0x2dcc: 0x031f6c84, 0x2dcd: 0xe0002472, 0x2dce: 0xe0002475, 0x2dcf: 0xe0002478, - 0x2dd0: 0x03290a84, 0x2dd1: 0x032aee84, 0x2dd2: 0x032af084, 0x2dd3: 0x032afe84, - 0x2dd4: 0x032bd084, 0x2dd5: 0xe000247b, 0x2dd6: 0x032c3a84, 0x2dd7: 0xe000247e, - 0x2dd8: 0x032ea484, 0x2dd9: 0x032fcc84, 0x2dda: 0x0330ea84, 0x2ddb: 0x03319c84, - 0x2ddc: 0x0331bc84, 0x2ddd: 0x0331be84, 0x2dde: 0xe0002481, 0x2ddf: 0x0331c084, - 0x2de0: 0x0332c684, 0x2de1: 0xe0002484, 0x2de2: 0x0334d884, 0x2de3: 0xe0002487, - 0x2de4: 0xe000248a, 0x2de5: 0x0338f884, 0x2de6: 0x033c3e84, 0x2de7: 0xe000248d, - 0x2de8: 0x033d4c84, 0x2de9: 0x033d8884, 0x2dea: 0x033dfc84, 0x2deb: 0xe0002490, - 0x2dec: 0x033ea084, 0x2ded: 0xe0002493, 0x2dee: 0x033efe84, 0x2def: 0xe0002496, - 0x2df0: 0x033f3284, 0x2df1: 0xe0002499, 0x2df2: 0xe000249c, 0x2df3: 0x033f3e84, - // Block 0xb8, offset 0x2e00 - 0x2e00: 0x029c0084, 0x2e01: 0x029c5084, 0x2e02: 0x029c6c84, 0x2e03: 0x029c7e84, - 0x2e04: 0x029cb284, 0x2e05: 0x029d0a84, 0x2e06: 0x029d1884, 0x2e07: 0x029d4084, - 0x2e08: 0x029d7484, 0x2e09: 0x02a27e84, 0x2e0a: 0x02a2ca84, 0x2e0b: 0x02a2d684, - 0x2e0c: 0x02a30484, 0x2e0d: 0x02a32c84, 0x2e0e: 0x02a35684, 0x2e0f: 0x02a3c084, - 0x2e10: 0x02a3ea84, 0x2e11: 0x02a40084, 0x2e12: 0x02a53684, 0x2e13: 0x02a5f284, - 0x2e14: 0x02a62a84, 0x2e15: 0x02a63484, 0x2e16: 0x02a67084, 0x2e17: 0x02a68284, - 0x2e18: 0x02a6b884, 0x2e19: 0x02a6d284, 0x2e1a: 0x02a70484, 0x2e1b: 0x02a76c84, - 0x2e1c: 0x02a79084, 0x2e1d: 0x02a7c684, 0x2e1e: 0x02adae84, 0x2e1f: 0x02ae3e84, - 0x2e20: 0x02b1d684, 0x2e21: 0x02b20484, 0x2e22: 0x02b21484, 0x2e23: 0x02b22a84, - 0x2e24: 0x02b24e84, 0x2e25: 0x02b2e684, 0x2e26: 0x02b6a084, 0x2e27: 0x02b70084, - 0x2e28: 0x02b7f084, 0x2e29: 0x02b81e84, 0x2e2a: 0x02b84484, 0x2e2b: 0x02b87084, - 0x2e2c: 0x02b8dc84, 0x2e2d: 0x02b8e284, 0x2e2e: 0x02bbb684, 0x2e2f: 0x02bbca84, - 0x2e30: 0x02bbe284, 0x2e31: 0x02bbfc84, 0x2e32: 0x02bce484, 0x2e33: 0x02bcf484, - 0x2e34: 0x02bcfe84, 0x2e35: 0x02bde884, 0x2e36: 0x02bdfc84, 0x2e37: 0x02be1684, - 0x2e38: 0x02be2684, 0x2e39: 0x02bea084, 0x2e3a: 0x02bec284, 0x2e3b: 0x02bee684, - 0x2e3c: 0x02bf8684, 0x2e3d: 0x02c41084, 0x2e3e: 0x02c46c84, 0x2e3f: 0x02c49684, - // Block 0xb9, offset 0x2e40 - 0x2e40: 0x02ca5e84, 0x2e41: 0x02ca6884, 0x2e42: 0x02cb0e84, 0x2e43: 0x02cb2e84, - 0x2e44: 0x02cb4884, 0x2e45: 0x02cb7284, 0x2e46: 0x02cbc084, 0x2e47: 0x02cbca84, - 0x2e48: 0x02cde084, 0x2e49: 0x02ce1084, 0x2e4a: 0x02ce5084, 0x2e4b: 0x02d64084, - 0x2e4c: 0x02d6c484, 0x2e4d: 0x02d6f284, 0x2e4e: 0x02d76684, 0x2e4f: 0x02d79684, - 0x2e50: 0x02d7a884, 0x2e51: 0x02d7b684, 0x2e52: 0x02d81e84, 0x2e53: 0x02d82884, - 0x2e54: 0x02d86884, 0x2e55: 0x02e0d684, 0x2e56: 0x02e45484, 0x2e57: 0x02e46c84, - 0x2e58: 0x02e47684, 0x2e59: 0x02e47e84, 0x2e5a: 0x02e48e84, 0x2e5b: 0x02e4b284, - 0x2e5c: 0x02e4b684, 0x2e5d: 0x02e55884, 0x2e5e: 0x02e70884, 0x2e5f: 0x02e71284, - 0x2e60: 0x02e9b884, 0x2e61: 0x02e9cc84, 0x2e62: 0x02ea3084, 0x2e63: 0x02ea3e84, - 0x2e64: 0x02ea5084, 0x2e65: 0x02ea6084, 0x2e66: 0x02eb1684, 0x2e67: 0x02eb2484, - 0x2e68: 0x02ecec84, 0x2e69: 0x02ecfa84, 0x2e6a: 0x02ed5c84, 0x2e6b: 0x02ed7e84, - 0x2e6c: 0x02eddc84, 0x2e6d: 0x02efb684, 0x2e6e: 0x02efc484, 0x2e6f: 0x02efe684, - 0x2e70: 0x02f27484, 0x2e71: 0x02f37084, 0x2e72: 0x02f37c84, 0x2e73: 0x02f4e884, - 0x2e74: 0x02f59684, 0x2e75: 0x02f5f284, 0x2e76: 0x02f8e684, 0x2e77: 0x02f9f084, - 0x2e78: 0x02fe6c84, 0x2e79: 0x02fea284, 0x2e7a: 0x02ff1484, 0x2e7b: 0x02ff7a84, - 0x2e7c: 0x03000284, 0x2e7d: 0x03001884, 0x2e7e: 0x03002484, 0x2e7f: 0x03006684, - // Block 0xba, offset 0x2e80 - 0x2e80: 0x0300fe84, 0x2e81: 0x03011284, 0x2e82: 0x0303c684, 0x2e83: 0x0303d484, - 0x2e84: 0x0303e684, 0x2e85: 0x0303f884, 0x2e86: 0x03041884, 0x2e87: 0x03043684, - 0x2e88: 0x03043e84, 0x2e89: 0x0304dc84, 0x2e8a: 0x0304e484, 0x2e8b: 0x0304f084, - 0x2e8c: 0x030c9a84, 0x2e8d: 0x030cd684, 0x2e8e: 0x03108084, 0x2e8f: 0x03109884, - 0x2e90: 0x0310c684, 0x2e91: 0x0312fc84, 0x2e92: 0x03131684, 0x2e93: 0x0313a484, - 0x2e94: 0x03140084, 0x2e95: 0x03186e84, 0x2e96: 0x03188c84, 0x2e97: 0x0318aa84, - 0x2e98: 0x0318f084, 0x2e99: 0x03193a84, 0x2e9a: 0x031ac884, 0x2e9b: 0x031ae084, - 0x2e9c: 0x031b6684, 0x2e9d: 0x031d5684, 0x2e9e: 0x031d9484, 0x2e9f: 0x031f3684, - 0x2ea0: 0x031f6084, 0x2ea1: 0x031f6a84, 0x2ea2: 0x03212284, 0x2ea3: 0x03229284, - 0x2ea4: 0x03238c84, 0x2ea5: 0x03239884, 0x2ea6: 0x0323a284, 0x2ea7: 0x032aee84, - 0x2ea8: 0x032b0084, 0x2ea9: 0x032c3884, 0x2eaa: 0x032d6c84, 0x2eab: 0x032d7284, - 0x2eac: 0x032dd084, 0x2ead: 0x032ea284, 0x2eae: 0x032ebc84, 0x2eaf: 0x032ec484, - 0x2eb0: 0x032ed284, 0x2eb1: 0x032f9684, 0x2eb2: 0x032fda84, 0x2eb3: 0x032fe684, - 0x2eb4: 0x03300284, 0x2eb5: 0x03315084, 0x2eb6: 0x0331b684, 0x2eb7: 0x0331be84, - 0x2eb8: 0x03332c84, 0x2eb9: 0x03333284, 0x2eba: 0x03335884, 0x2ebb: 0x03355084, - 0x2ebc: 0x0335b084, 0x2ebd: 0x0335be84, 0x2ebe: 0x03364a84, 0x2ebf: 0x03365e84, - // Block 0xbb, offset 0x2ec0 - 0x2ec0: 0x03366484, 0x2ec1: 0x03367884, 0x2ec2: 0x0336b484, 0x2ec3: 0x0339ca84, - 0x2ec4: 0x033cea84, 0x2ec5: 0x033cfe84, 0x2ec6: 0x033d4a84, 0x2ec7: 0x033d7684, - 0x2ec8: 0x033d8684, 0x2ec9: 0x033d9a84, 0x2eca: 0x033da284, 0x2ecb: 0x033df284, - 0x2ecc: 0x033dfa84, 0x2ecd: 0x033e1c84, 0x2ece: 0x033e2684, 0x2ecf: 0x033e4084, - 0x2ed0: 0x033e7684, 0x2ed1: 0x033e9484, 0x2ed2: 0x033ea484, 0x2ed3: 0x033f1a84, - 0x2ed4: 0x033f3884, 0x2ed5: 0x033f4084, - 0x2ef0: 0x40273a20, 0x2ef1: 0x40273c20, 0x2ef2: 0x40273e20, 0x2ef3: 0x40274020, - 0x2ef4: 0x40274220, 0x2ef5: 0x40274420, 0x2ef6: 0x40274620, 0x2ef7: 0x40274820, - 0x2ef8: 0x40274a20, 0x2ef9: 0x40274c20, 0x2efa: 0x40274e20, 0x2efb: 0x40275020, - // Block 0xbc, offset 0x2f00 - 0x2f00: 0x00021283, 0x2f01: 0x40025c20, 0x2f02: 0x40030420, 0x2f03: 0x40051220, - 0x2f04: 0x40279a20, 0x2f05: 0x4027ca20, 0x2f06: 0xe0002206, 0x2f07: 0xe00001d3, - 0x2f08: 0x40049c20, 0x2f09: 0x40049e20, 0x2f0a: 0x4004a020, 0x2f0b: 0x4004a220, - 0x2f0c: 0x4004a420, 0x2f0d: 0x4004a620, 0x2f0e: 0x4004a820, 0x2f0f: 0x4004aa20, - 0x2f10: 0x4004ac20, 0x2f11: 0x4004ae20, 0x2f12: 0x40279c20, 0x2f13: 0x40279e20, - 0x2f14: 0x4004b020, 0x2f15: 0x4004b220, 0x2f16: 0x4004b420, 0x2f17: 0x4004b620, - 0x2f18: 0x4004b820, 0x2f19: 0x4004ba20, 0x2f1a: 0x4004bc20, 0x2f1b: 0x4004be20, - 0x2f1c: 0x40023820, 0x2f1d: 0x4003ea20, 0x2f1e: 0x4003ec20, 0x2f1f: 0x4003ee20, - 0x2f20: 0x4027a020, 0x2f21: 0xe0000267, 0x2f22: 0xe000037f, 0x2f23: 0xe0000459, - 0x2f24: 0xe000052e, 0x2f25: 0xe00005f8, 0x2f26: 0xe00006c3, 0x2f27: 0xe000076b, - 0x2f28: 0xe0000817, 0x2f29: 0xe00008bc, 0x2f2a: 0xada12202, 0x2f2b: 0xae412302, - 0x2f2c: 0xae812402, 0x2f2d: 0xade12502, 0x2f2e: 0xae012602, 0x2f2f: 0xae012702, - 0x2f30: 0x40023a20, 0x2f31: 0x4027ce20, 0x2f32: 0xe0000152, 0x2f33: 0x4027d020, - 0x2f34: 0xe0000155, 0x2f35: 0x4027d220, 0x2f36: 0x00279c84, 0x2f37: 0x4027a220, - 0x2f38: 0x02a68284, 0x2f39: 0x02a68884, 0x2f3a: 0x02a68a84, 0x2f3b: 0x4027cc20, - 0x2f3c: 0xe000231a, 0x2f3d: 0x40051420, 0x2f3e: 0x4027a420, 0x2f3f: 0x4027a620, - // Block 0xbd, offset 0x2f40 - 0x2f41: 0x0065768d, 0x2f42: 0x0065768e, 0x2f43: 0x0065788d, - 0x2f44: 0x0065788e, 0x2f45: 0x00657a8d, 0x2f46: 0x00657a8e, 0x2f47: 0x00657e8d, - 0x2f48: 0x00657e8e, 0x2f49: 0x0065808d, 0x2f4a: 0x0065808e, 0x2f4b: 0x0065828e, - 0x2f4c: 0xe000216a, 0x2f4d: 0x0065848e, 0x2f4e: 0xe0002188, 0x2f4f: 0x0065868e, - 0x2f50: 0xe00021b8, 0x2f51: 0x0065888e, 0x2f52: 0xe00021d6, 0x2f53: 0x00658a8e, - 0x2f54: 0xe00021e0, 0x2f55: 0x00658c8e, 0x2f56: 0xe00021ef, 0x2f57: 0x00658e8e, - 0x2f58: 0xe0002200, 0x2f59: 0x0065908e, 0x2f5a: 0xe000220f, 0x2f5b: 0x0065928e, - 0x2f5c: 0xe0002215, 0x2f5d: 0x0065948e, 0x2f5e: 0xe0002223, 0x2f5f: 0x0065968e, - 0x2f60: 0xe0002229, 0x2f61: 0x0065988e, 0x2f62: 0xe0002234, 0x2f63: 0x00659a8d, - 0x2f64: 0x00659a8e, 0x2f65: 0xe000223a, 0x2f66: 0x00659c8e, 0x2f67: 0xe0002240, - 0x2f68: 0x00659e8e, 0x2f69: 0xe000224a, 0x2f6a: 0x0065a08e, 0x2f6b: 0x0065a28e, - 0x2f6c: 0x0065a48e, 0x2f6d: 0x0065a68e, 0x2f6e: 0x0065a88e, 0x2f6f: 0x0065aa8e, - 0x2f70: 0xe0002258, 0x2f71: 0xe000225e, 0x2f72: 0x0065ac8e, 0x2f73: 0xe000227a, - 0x2f74: 0xe0002280, 0x2f75: 0x0065ae8e, 0x2f76: 0xe000229a, 0x2f77: 0xe00022a0, - 0x2f78: 0x0065b08e, 0x2f79: 0xe00022bd, 0x2f7a: 0xe00022c3, 0x2f7b: 0x0065b28e, - 0x2f7c: 0xe00022ec, 0x2f7d: 0xe00022f2, 0x2f7e: 0x0065b48e, 0x2f7f: 0x0065b68e, - // Block 0xbe, offset 0x2f80 - 0x2f80: 0x0065b88e, 0x2f81: 0x0065ba8e, 0x2f82: 0x0065bc8e, 0x2f83: 0x0065be8d, - 0x2f84: 0x0065be8e, 0x2f85: 0x0065c08d, 0x2f86: 0x0065c08e, 0x2f87: 0x0065c48d, - 0x2f88: 0x0065c48e, 0x2f89: 0x0065c68e, 0x2f8a: 0x0065c88e, 0x2f8b: 0x0065ca8e, - 0x2f8c: 0x0065cc8e, 0x2f8d: 0x0065ce8e, 0x2f8e: 0x0065d08d, 0x2f8f: 0x0065d08e, - 0x2f90: 0x0065d28e, 0x2f91: 0x0065d48e, 0x2f92: 0x0065d68e, 0x2f93: 0x0065d88e, - 0x2f94: 0xe000214c, 0x2f95: 0x0065828d, 0x2f96: 0x0065888d, - 0x2f99: 0xa0812802, 0x2f9a: 0xa0812902, 0x2f9b: 0x40063c20, - 0x2f9c: 0x40063e20, 0x2f9d: 0x4027d420, 0x2f9e: 0xe0000158, 0x2f9f: 0xf0001616, - 0x2fa0: 0x40023c20, 0x2fa1: 0x0065768f, 0x2fa2: 0x00657691, 0x2fa3: 0x0065788f, - 0x2fa4: 0x00657891, 0x2fa5: 0x00657a8f, 0x2fa6: 0x00657a91, 0x2fa7: 0x00657e8f, - 0x2fa8: 0x00657e91, 0x2fa9: 0x0065808f, 0x2faa: 0x00658091, 0x2fab: 0x00658291, - 0x2fac: 0xe000216d, 0x2fad: 0x00658491, 0x2fae: 0xe000218b, 0x2faf: 0x00658691, - 0x2fb0: 0xe00021bb, 0x2fb1: 0x00658891, 0x2fb2: 0xe00021d9, 0x2fb3: 0x00658a91, - 0x2fb4: 0xe00021e3, 0x2fb5: 0x00658c91, 0x2fb6: 0xe00021f2, 0x2fb7: 0x00658e91, - 0x2fb8: 0xe0002203, 0x2fb9: 0x00659091, 0x2fba: 0xe0002212, 0x2fbb: 0x00659291, - 0x2fbc: 0xe0002218, 0x2fbd: 0x00659491, 0x2fbe: 0xe0002226, 0x2fbf: 0x00659691, - // Block 0xbf, offset 0x2fc0 - 0x2fc0: 0xe000222c, 0x2fc1: 0x00659891, 0x2fc2: 0xe0002237, 0x2fc3: 0x00659a8f, - 0x2fc4: 0x00659a91, 0x2fc5: 0xe000223d, 0x2fc6: 0x00659c91, 0x2fc7: 0xe0002243, - 0x2fc8: 0x00659e91, 0x2fc9: 0xe000224d, 0x2fca: 0x0065a091, 0x2fcb: 0x0065a291, - 0x2fcc: 0x0065a491, 0x2fcd: 0x0065a691, 0x2fce: 0x0065a891, 0x2fcf: 0x0065aa91, - 0x2fd0: 0xe000225b, 0x2fd1: 0xe0002261, 0x2fd2: 0x0065ac91, 0x2fd3: 0xe000227d, - 0x2fd4: 0xe0002283, 0x2fd5: 0x0065ae91, 0x2fd6: 0xe000229d, 0x2fd7: 0xe00022a3, - 0x2fd8: 0x0065b091, 0x2fd9: 0xe00022c0, 0x2fda: 0xe00022c6, 0x2fdb: 0x0065b291, - 0x2fdc: 0xe00022ef, 0x2fdd: 0xe00022f5, 0x2fde: 0x0065b491, 0x2fdf: 0x0065b691, - 0x2fe0: 0x0065b891, 0x2fe1: 0x0065ba91, 0x2fe2: 0x0065bc91, 0x2fe3: 0x0065be8f, - 0x2fe4: 0x0065be91, 0x2fe5: 0x0065c08f, 0x2fe6: 0x0065c091, 0x2fe7: 0x0065c48f, - 0x2fe8: 0x0065c491, 0x2fe9: 0x0065c691, 0x2fea: 0x0065c891, 0x2feb: 0x0065ca91, - 0x2fec: 0x0065cc91, 0x2fed: 0x0065ce91, 0x2fee: 0x0065d08f, 0x2fef: 0x0065d091, - 0x2ff0: 0x0065d291, 0x2ff1: 0x0065d491, 0x2ff2: 0x0065d691, 0x2ff3: 0x0065d891, - 0x2ff4: 0xe000214f, 0x2ff5: 0x0065828f, 0x2ff6: 0x0065888f, 0x2ff7: 0xe000236a, - 0x2ff8: 0xe0002371, 0x2ff9: 0xe0002374, 0x2ffa: 0xe0002377, 0x2ffb: 0x40023e20, - 0x2ffc: 0x4027d620, 0x2ffd: 0x4027d820, 0x2ffe: 0xe000015b, 0x2fff: 0xf0001616, - // Block 0xc0, offset 0x3000 - 0x3005: 0x4065da20, 0x3006: 0x4065dc20, 0x3007: 0x4065de20, - 0x3008: 0x4065e020, 0x3009: 0x4065e420, 0x300a: 0x4065e620, 0x300b: 0x4065e820, - 0x300c: 0x4065ea20, 0x300d: 0x4065ec20, 0x300e: 0x4065ee20, 0x300f: 0x4065f420, - 0x3010: 0x4065f620, 0x3011: 0x4065f820, 0x3012: 0x4065fa20, 0x3013: 0x4065fe20, - 0x3014: 0x40660020, 0x3015: 0x40660220, 0x3016: 0x40660420, 0x3017: 0x40660620, - 0x3018: 0x40660820, 0x3019: 0x40660a20, 0x301a: 0x40661220, 0x301b: 0x40661420, - 0x301c: 0x40661820, 0x301d: 0x40661a20, 0x301e: 0x40661e20, 0x301f: 0x40662020, - 0x3020: 0x40662220, 0x3021: 0x40662420, 0x3022: 0x40662620, 0x3023: 0x40662820, - 0x3024: 0x40662a20, 0x3025: 0x40662e20, 0x3026: 0x40663620, 0x3027: 0x40663820, - 0x3028: 0x40663a20, 0x3029: 0x40663c20, 0x302a: 0x4065e220, 0x302b: 0x4065f020, - 0x302c: 0x4065fc20, 0x302d: 0x40663e20, - 0x3031: 0x0062ac84, 0x3032: 0x0062ae84, 0x3033: 0x00646884, - 0x3034: 0x0062b084, 0x3035: 0x00646c84, 0x3036: 0x00646e84, 0x3037: 0x0062b284, - 0x3038: 0x0062b484, 0x3039: 0x0062b684, 0x303a: 0x00647484, 0x303b: 0x00647684, - 0x303c: 0x00647884, 0x303d: 0x00647a84, 0x303e: 0x00647c84, 0x303f: 0x00647e84, - // Block 0xc1, offset 0x3040 - 0x3040: 0x0062e084, 0x3041: 0x0062b884, 0x3042: 0x0062ba84, 0x3043: 0x0062bc84, - 0x3044: 0x0062ee84, 0x3045: 0x0062be84, 0x3046: 0x0062c084, 0x3047: 0x0062c284, - 0x3048: 0x0062c484, 0x3049: 0x0062c684, 0x304a: 0x0062c884, 0x304b: 0x0062ca84, - 0x304c: 0x0062cc84, 0x304d: 0x0062ce84, 0x304e: 0x0062d084, 0x304f: 0x0063a884, - 0x3050: 0x0063aa84, 0x3051: 0x0063ac84, 0x3052: 0x0063ae84, 0x3053: 0x0063b084, - 0x3054: 0x0063b284, 0x3055: 0x0063b484, 0x3056: 0x0063b684, 0x3057: 0x0063b884, - 0x3058: 0x0063ba84, 0x3059: 0x0063bc84, 0x305a: 0x0063be84, 0x305b: 0x0063c084, - 0x305c: 0x0063c284, 0x305d: 0x0063c484, 0x305e: 0x0063c684, 0x305f: 0x0063c884, - 0x3060: 0x0063ca84, 0x3061: 0x0063cc84, 0x3062: 0x0063ce84, 0x3063: 0x0063d084, - 0x3064: 0x0063a684, 0x3065: 0x0062d484, 0x3066: 0x0062d684, 0x3067: 0x0064a284, - 0x3068: 0x0064a484, 0x3069: 0x0064ac84, 0x306a: 0x0064b084, 0x306b: 0x0064ba84, - 0x306c: 0x0064c284, 0x306d: 0x0064c684, 0x306e: 0x0062e484, 0x306f: 0x0064ce84, - 0x3070: 0x0064d284, 0x3071: 0x0062e684, 0x3072: 0x0062e884, 0x3073: 0x0062ec84, - 0x3074: 0x0062f084, 0x3075: 0x0062f284, 0x3076: 0x0062fa84, 0x3077: 0x0062fe84, - 0x3078: 0x00630284, 0x3079: 0x00630484, 0x307a: 0x00630684, 0x307b: 0x00630884, - 0x307c: 0x00630a84, 0x307d: 0x00631084, 0x307e: 0x00631884, 0x307f: 0x00632c84, - // Block 0xc2, offset 0x3080 - 0x3080: 0x00633a84, 0x3081: 0x00634484, 0x3082: 0x0064f684, 0x3083: 0x0064f884, - 0x3084: 0x00635a84, 0x3085: 0x00635c84, 0x3086: 0x00635e84, 0x3087: 0x0063ee84, - 0x3088: 0x0063f084, 0x3089: 0x0063f684, 0x308a: 0x00640884, 0x308b: 0x00640a84, - 0x308c: 0x00640e84, 0x308d: 0x00642284, 0x308e: 0x00642884, - 0x3090: 0x4027a820, 0x3091: 0x4027aa20, 0x3092: 0x029c0094, 0x3093: 0x029d1894, - 0x3094: 0x029c1294, 0x3095: 0x02adb694, 0x3096: 0x029c1494, 0x3097: 0x029c5a94, - 0x3098: 0x029c1694, 0x3099: 0x02ea6494, 0x309a: 0x029cb294, 0x309b: 0x029c3294, - 0x309c: 0x029c0294, 0x309d: 0x02b25294, 0x309e: 0x02ae6094, 0x309f: 0x029d7494, - 0x30a0: 0xe000237a, 0x30a1: 0xe0002383, 0x30a2: 0xe0002380, 0x30a3: 0xe000237d, - 0x30a4: 0x40661c20, 0x30a5: 0xe000238c, 0x30a6: 0x40661620, 0x30a7: 0xe0002389, - 0x30a8: 0xe000239e, 0x30a9: 0xe0002386, 0x30aa: 0xe0002395, 0x30ab: 0xe000239b, - 0x30ac: 0x40663420, 0x30ad: 0x4065f220, 0x30ae: 0xe000238f, 0x30af: 0xe0002392, - 0x30b0: 0x40663020, 0x30b1: 0x40663220, 0x30b2: 0x40662c20, 0x30b3: 0xe0002398, - 0x30b4: 0x0065dc99, 0x30b5: 0x0065e699, 0x30b6: 0x0065ee99, 0x30b7: 0x0065f499, - 0x30b8: 0x40660c20, 0x30b9: 0x40660e20, 0x30ba: 0x40661020, - // Block 0xc3, offset 0x30c0 - 0x30c0: 0x40275220, 0x30c1: 0x40275420, 0x30c2: 0x40275620, 0x30c3: 0x40275820, - 0x30c4: 0x40275a20, 0x30c5: 0x40275c20, 0x30c6: 0x40275e20, 0x30c7: 0x40276020, - 0x30c8: 0x40276220, 0x30c9: 0x40276420, 0x30ca: 0x40276620, 0x30cb: 0x40276820, - 0x30cc: 0x40276a20, 0x30cd: 0x40276c20, 0x30ce: 0x40276e20, 0x30cf: 0x40277020, - 0x30d0: 0x40277220, 0x30d1: 0x40277420, 0x30d2: 0x40277620, 0x30d3: 0x40277820, - 0x30d4: 0x40277a20, 0x30d5: 0x40277c20, 0x30d6: 0x40277e20, 0x30d7: 0x40278020, - 0x30d8: 0x40278220, 0x30d9: 0x40278420, 0x30da: 0x40278620, 0x30db: 0x40278820, - 0x30dc: 0x40278a20, 0x30dd: 0x40278c20, 0x30de: 0x40278e20, 0x30df: 0x40279020, - 0x30e0: 0x40279220, 0x30e1: 0x40279420, 0x30e2: 0x40279620, 0x30e3: 0x40279820, - 0x30f0: 0x0065868f, 0x30f1: 0x00658e8f, 0x30f2: 0x0065908f, 0x30f3: 0x00659e8f, - 0x30f4: 0x0065a48f, 0x30f5: 0x0065aa8f, 0x30f6: 0x0065ac8f, 0x30f7: 0x0065ae8f, - 0x30f8: 0x0065b08f, 0x30f9: 0x0065b28f, 0x30fa: 0x0065b88f, 0x30fb: 0x0065c68f, - 0x30fc: 0x0065c88f, 0x30fd: 0x0065ca8f, 0x30fe: 0x0065cc8f, 0x30ff: 0x0065ce8f, - // Block 0xc4, offset 0x3100 - 0x3100: 0xf0000404, 0x3101: 0xf0000404, 0x3102: 0xf0000404, 0x3103: 0xf0000404, - 0x3104: 0xf0000404, 0x3105: 0xf0000404, 0x3106: 0xf0000404, 0x3107: 0xf0000404, - 0x3108: 0xf0000404, 0x3109: 0xf0000404, 0x310a: 0xf0000404, 0x310b: 0xf0000404, - 0x310c: 0xf0000404, 0x310d: 0xf0000404, 0x310e: 0xe000004c, 0x310f: 0xe0000051, - 0x3110: 0xe0000056, 0x3111: 0xe000005b, 0x3112: 0xe0000060, 0x3113: 0xe0000065, - 0x3114: 0xe000006a, 0x3115: 0xe000006f, 0x3116: 0xe0000083, 0x3117: 0xe000008d, - 0x3118: 0xe0000092, 0x3119: 0xe0000097, 0x311a: 0xe000009c, 0x311b: 0xe00000a1, - 0x311c: 0xe0000088, 0x311d: 0xe0000074, 0x311e: 0xe000007c, - 0x3120: 0xf0000404, 0x3121: 0xf0000404, 0x3122: 0xf0000404, 0x3123: 0xf0000404, - 0x3124: 0xf0000404, 0x3125: 0xf0000404, 0x3126: 0xf0000404, 0x3127: 0xf0000404, - 0x3128: 0xf0000404, 0x3129: 0xf0000404, 0x312a: 0xf0000404, 0x312b: 0xf0000404, - 0x312c: 0xf0000404, 0x312d: 0xf0000404, 0x312e: 0xf0000404, 0x312f: 0xf0000404, - 0x3130: 0xf0000404, 0x3131: 0xf0000404, 0x3132: 0xf0000404, 0x3133: 0xf0000404, - 0x3134: 0xf0000404, 0x3135: 0xf0000404, 0x3136: 0xf0000404, 0x3137: 0xf0000404, - 0x3138: 0xf0000404, 0x3139: 0xf0000404, 0x313a: 0xf0000404, 0x313b: 0xf0000404, - 0x313c: 0xf0000404, 0x313d: 0xf0000404, 0x313e: 0xf0000404, 0x313f: 0xf0000404, - // Block 0xc5, offset 0x3140 - 0x3140: 0xf0000404, 0x3141: 0xf0000404, 0x3142: 0xf0000404, 0x3143: 0xf0000404, - 0x3144: 0x02aa9e86, 0x3145: 0x02bcf886, 0x3146: 0x02cb0e86, 0x3147: 0x02f71e86, - 0x3148: 0xe00002e3, 0x3149: 0xe00003d8, 0x314a: 0xe00004b3, 0x314b: 0xe000057d, - 0x314c: 0xe0000648, 0x314d: 0xe00006f0, 0x314e: 0xe000079c, 0x314f: 0xe0000841, - 0x3150: 0xe0000ec0, 0x3151: 0xf0000606, 0x3152: 0xf0000606, 0x3153: 0xf0000606, - 0x3154: 0xf0000606, 0x3155: 0xf0000606, 0x3156: 0xf0000606, 0x3157: 0xf0000606, - 0x3158: 0xf0000606, 0x3159: 0xf0000606, 0x315a: 0xf0000606, 0x315b: 0xf0000606, - 0x315c: 0xf0000606, 0x315d: 0xf0000606, 0x315e: 0xf0000606, 0x315f: 0xf0000606, - 0x3160: 0x0062ac86, 0x3161: 0x0062b086, 0x3162: 0x0062b286, 0x3163: 0x0062b686, - 0x3164: 0x0062b886, 0x3165: 0x0062ba86, 0x3166: 0x0062be86, 0x3167: 0x0062c286, - 0x3168: 0x0062c486, 0x3169: 0x0062c886, 0x316a: 0x0062ca86, 0x316b: 0x0062cc86, - 0x316c: 0x0062ce86, 0x316d: 0x0062d086, 0x316e: 0xf0000606, 0x316f: 0xf0000606, - 0x3170: 0xf0000606, 0x3171: 0xf0000606, 0x3172: 0xf0000606, 0x3173: 0xf0000606, - 0x3174: 0xf0000606, 0x3175: 0xf0000606, 0x3176: 0xf0000606, 0x3177: 0xf0000606, - 0x3178: 0xf0000606, 0x3179: 0xf0000606, 0x317a: 0xf0000606, 0x317b: 0xf0000606, - 0x317c: 0xe0002127, 0x317d: 0xe0002122, 0x317e: 0xf0000606, 0x317f: 0x4027ac20, - // Block 0xc6, offset 0x3180 - 0x3180: 0x029c0086, 0x3181: 0x029d1886, 0x3182: 0x029c1286, 0x3183: 0x02adb686, - 0x3184: 0x029d2886, 0x3185: 0x02a2da86, 0x3186: 0x029c0686, 0x3187: 0x02a2d686, - 0x3188: 0x029cba86, 0x3189: 0x02a68286, 0x318a: 0x02ce1086, 0x318b: 0x02e0d686, - 0x318c: 0x02d86886, 0x318d: 0x02ce5086, 0x318e: 0x0323a286, 0x318f: 0x02ae3e86, - 0x3190: 0x02cbca86, 0x3191: 0x02d05486, 0x3192: 0x02ce1286, 0x3193: 0x02f27c86, - 0x3194: 0x02a81a86, 0x3195: 0x02e4f286, 0x3196: 0x03194286, 0x3197: 0x02f2ba86, - 0x3198: 0x02a56886, 0x3199: 0x02f3b086, 0x319a: 0x02ea6e86, 0x319b: 0x02b2e686, - 0x319c: 0x0320d286, 0x319d: 0x02a25486, 0x319e: 0x02a6e086, 0x319f: 0x02d9d086, - 0x31a0: 0x03300a86, 0x31a1: 0x029e2286, 0x31a2: 0x02a33286, 0x31a3: 0x02d6c686, - 0x31a4: 0x029c1486, 0x31a5: 0x029c5a86, 0x31a6: 0x029c1686, 0x31a7: 0x02bbcc86, - 0x31a8: 0x02a7e686, 0x31a9: 0x02a67686, 0x31aa: 0x02b72e86, 0x31ab: 0x02b6cc86, - 0x31ac: 0x02edc686, 0x31ad: 0x029e0286, 0x31ae: 0x03198e86, 0x31af: 0x02a6a886, - 0x31b0: 0x02b23886, 0x31b1: 0xf0000606, 0x31b2: 0xf0000606, 0x31b3: 0xf0000606, - 0x31b4: 0xf0000606, 0x31b5: 0xf0000606, 0x31b6: 0xf0000606, 0x31b7: 0xf0000606, - 0x31b8: 0xf0000606, 0x31b9: 0xf0000606, 0x31ba: 0xf0000606, 0x31bb: 0xf0000606, - 0x31bc: 0xf0000606, 0x31bd: 0xf0000606, 0x31be: 0xf0000606, 0x31bf: 0xf0000606, - // Block 0xc7, offset 0x31c0 - 0x31c0: 0xf0001f04, 0x31c1: 0xf0001f04, 0x31c2: 0xf0001f04, 0x31c3: 0xf0001f04, - 0x31c4: 0xf0001f04, 0x31c5: 0xf0001f04, 0x31c6: 0xf0001f04, 0x31c7: 0xf0001f04, - 0x31c8: 0xf0001f04, 0x31c9: 0xf0000404, 0x31ca: 0xf0000404, 0x31cb: 0xf0000404, - 0x31cc: 0xf0001c1d, 0x31cd: 0xe0000b85, 0x31ce: 0xf0001d1c, 0x31cf: 0xe0000d14, - 0x31d0: 0x00657693, 0x31d1: 0x00657893, 0x31d2: 0x00657a93, 0x31d3: 0x00657e93, - 0x31d4: 0x00658093, 0x31d5: 0x00658293, 0x31d6: 0x00658493, 0x31d7: 0x00658693, - 0x31d8: 0x00658893, 0x31d9: 0x00658a93, 0x31da: 0x00658c93, 0x31db: 0x00658e93, - 0x31dc: 0x00659093, 0x31dd: 0x00659293, 0x31de: 0x00659493, 0x31df: 0x00659693, - 0x31e0: 0x00659893, 0x31e1: 0x00659a93, 0x31e2: 0x00659c93, 0x31e3: 0x00659e93, - 0x31e4: 0x0065a093, 0x31e5: 0x0065a293, 0x31e6: 0x0065a493, 0x31e7: 0x0065a693, - 0x31e8: 0x0065a893, 0x31e9: 0x0065aa93, 0x31ea: 0x0065ac93, 0x31eb: 0x0065ae93, - 0x31ec: 0x0065b093, 0x31ed: 0x0065b293, 0x31ee: 0x0065b493, 0x31ef: 0x0065b693, - 0x31f0: 0x0065b893, 0x31f1: 0x0065ba93, 0x31f2: 0x0065bc93, 0x31f3: 0x0065be93, - 0x31f4: 0x0065c093, 0x31f5: 0x0065c493, 0x31f6: 0x0065c693, 0x31f7: 0x0065c893, - 0x31f8: 0x0065ca93, 0x31f9: 0x0065cc93, 0x31fa: 0x0065ce93, 0x31fb: 0x0065d093, - 0x31fc: 0x0065d293, 0x31fd: 0x0065d493, 0x31fe: 0x0065d693, - // Block 0xc8, offset 0x3200 - 0x3200: 0xe0002131, 0x3201: 0xe0002137, 0x3202: 0xe000213c, 0x3203: 0xe000212d, - 0x3204: 0xe0002142, 0x3205: 0xe0002148, 0x3206: 0xe0002152, 0x3207: 0xe000215b, - 0x3208: 0xe0002156, 0x3209: 0xe0002166, 0x320a: 0xe0002162, 0x320b: 0xe0002170, - 0x320c: 0xe0002174, 0x320d: 0xe0002179, 0x320e: 0xe000217e, 0x320f: 0xe0002183, - 0x3210: 0xe000218e, 0x3211: 0xe0002193, 0x3212: 0xe0002198, 0x3213: 0xe000219d, - 0x3214: 0xf0001c1c, 0x3215: 0xe00021a4, 0x3216: 0xe00021ab, 0x3217: 0xe00021b2, - 0x3218: 0xe00021be, 0x3219: 0xe00021c3, 0x321a: 0xe00021ca, 0x321b: 0xe00021d1, - 0x321c: 0xe00021dc, 0x321d: 0xe00021eb, 0x321e: 0xe00021e6, 0x321f: 0xe00021f5, - 0x3220: 0xe00021fa, 0x3221: 0xe0002209, 0x3222: 0xe000221b, 0x3223: 0xe000221f, - 0x3224: 0xe000222f, 0x3225: 0xe0002246, 0x3226: 0xe0002250, 0x3227: 0xf0001c1c, - 0x3228: 0xf0001c1c, 0x3229: 0xe0002254, 0x322a: 0xe0002276, 0x322b: 0xe0002264, - 0x322c: 0xe000226b, 0x322d: 0xe0002270, 0x322e: 0xe0002286, 0x322f: 0xe000228d, - 0x3230: 0xe0002292, 0x3231: 0xe0002296, 0x3232: 0xe00022a6, 0x3233: 0xe00022ad, - 0x3234: 0xe00022b2, 0x3235: 0xe00022b9, 0x3236: 0xe00022d4, 0x3237: 0xe00022da, - 0x3238: 0xe00022de, 0x3239: 0xe00022e3, 0x323a: 0xe00022e7, 0x323b: 0xe00022c9, - 0x323c: 0xe00022cf, 0x323d: 0xe0002300, 0x323e: 0xe0002306, 0x323f: 0xf0001c1c, - // Block 0xc9, offset 0x3240 - 0x3240: 0xe000230b, 0x3241: 0xe00022f8, 0x3242: 0xe00022fc, 0x3243: 0xe0002311, - 0x3244: 0xe0002316, 0x3245: 0xe000231d, 0x3246: 0xe0002321, 0x3247: 0xe0002325, - 0x3248: 0xe000232b, 0x3249: 0xf0001c1c, 0x324a: 0xe0002330, 0x324b: 0xe000233c, - 0x324c: 0xe0002340, 0x324d: 0xe0002337, 0x324e: 0xe0002346, 0x324f: 0xe000234b, - 0x3250: 0xe000234f, 0x3251: 0xe0002353, 0x3252: 0xf0001c1c, 0x3253: 0xe000235e, - 0x3254: 0xe0002358, 0x3255: 0xf0001c1c, 0x3256: 0xe0002363, 0x3257: 0xe000236d, - 0x3258: 0xf0001f04, 0x3259: 0xf0001f04, 0x325a: 0xf0001f04, 0x325b: 0xf0001f04, - 0x325c: 0xf0001f04, 0x325d: 0xf0001f04, 0x325e: 0xf0001f04, 0x325f: 0xf0001f04, - 0x3260: 0xf0001f04, 0x3261: 0xf0001f04, 0x3262: 0xf0000404, 0x3263: 0xf0000404, - 0x3264: 0xf0000404, 0x3265: 0xf0000404, 0x3266: 0xf0000404, 0x3267: 0xf0000404, - 0x3268: 0xf0000404, 0x3269: 0xf0000404, 0x326a: 0xf0000404, 0x326b: 0xf0000404, - 0x326c: 0xf0000404, 0x326d: 0xf0000404, 0x326e: 0xf0000404, 0x326f: 0xf0000404, - 0x3270: 0xf0000404, 0x3271: 0xe0000c1e, 0x3272: 0xf0001c1c, 0x3273: 0xf0001d1d, - 0x3274: 0xe0000a31, 0x3275: 0xf0001d1c, 0x3276: 0xf0001c1c, 0x3277: 0xf0001c1c, - 0x3278: 0xe0000ac2, 0x3279: 0xe0000ac6, 0x327a: 0xf0001d1d, 0x327b: 0xf0001c1c, - 0x327c: 0xf0001c1c, 0x327d: 0xf0001c1c, 0x327e: 0xf0001c1c, 0x327f: 0xe0002431, - // Block 0xca, offset 0x3280 - 0x3280: 0xf0001d1c, 0x3281: 0xf0001d1c, 0x3282: 0xf0001d1c, 0x3283: 0xf0001d1c, - 0x3284: 0xf0001d1c, 0x3285: 0xf0001d1d, 0x3286: 0xf0001d1d, 0x3287: 0xf0001d1d, - 0x3288: 0xe0000a6b, 0x3289: 0xe0000cb4, 0x328a: 0xf0001d1c, 0x328b: 0xf0001d1c, - 0x328c: 0xf0001d1c, 0x328d: 0xf0001c1c, 0x328e: 0xf0001c1c, 0x328f: 0xf0001c1c, - 0x3290: 0xf0001c1d, 0x3291: 0xe0000cb9, 0x3292: 0xe0000d36, 0x3293: 0xe0000be3, - 0x3294: 0xe0000fc5, 0x3295: 0xf0001c1c, 0x3296: 0xf0001c1c, 0x3297: 0xf0001c1c, - 0x3298: 0xf0001c1c, 0x3299: 0xf0001c1c, 0x329a: 0xf0001c1c, 0x329b: 0xf0001c1c, - 0x329c: 0xf0001c1c, 0x329d: 0xf0001c1c, 0x329e: 0xf0001c1c, 0x329f: 0xe0000d3e, - 0x32a0: 0xe0000a72, 0x32a1: 0xf0001c1c, 0x32a2: 0xe0000cbd, 0x32a3: 0xe0000d42, - 0x32a4: 0xe0000a76, 0x32a5: 0xf0001c1c, 0x32a6: 0xe0000cc1, 0x32a7: 0xe0000d2d, - 0x32a8: 0xe0000d31, 0x32a9: 0xf0001c1d, 0x32aa: 0xe0000cc5, 0x32ab: 0xe0000d4a, - 0x32ac: 0xe0000be7, 0x32ad: 0xe0000f0b, 0x32ae: 0xe0000f0f, 0x32af: 0xe0000f15, - 0x32b0: 0xf0001c1c, 0x32b1: 0xf0001c1c, 0x32b2: 0xf0001c1c, 0x32b3: 0xf0001c1c, - 0x32b4: 0xf0001d1c, 0x32b5: 0xf0001d1c, 0x32b6: 0xf0001d1c, 0x32b7: 0xf0001d1c, - 0x32b8: 0xf0001d1c, 0x32b9: 0xf0001d1d, 0x32ba: 0xf0001d1c, 0x32bb: 0xf0001d1c, - 0x32bc: 0xf0001d1c, 0x32bd: 0xf0001d1c, 0x32be: 0xf0001d1c, 0x32bf: 0xf0001d1d, - // Block 0xcb, offset 0x32c0 - 0x32c0: 0xf0001d1c, 0x32c1: 0xf0001d1d, 0x32c2: 0xe00009b7, 0x32c3: 0xf0001c1d, - 0x32c4: 0xf0001c1c, 0x32c5: 0xf0001c1c, 0x32c6: 0xe0000a66, 0x32c7: 0xe0000a7a, - 0x32c8: 0xf0001d1c, 0x32c9: 0xf0001c1d, 0x32ca: 0xf0001c1c, 0x32cb: 0xf0001d1d, - 0x32cc: 0xf0001c1c, 0x32cd: 0xf0001d1d, 0x32ce: 0xf0001d1d, 0x32cf: 0xf0001c1c, - 0x32d0: 0xf0001c1c, 0x32d1: 0xf0001c1c, 0x32d2: 0xe0000d0d, 0x32d3: 0xf0001c1c, - 0x32d4: 0xf0001c1c, 0x32d5: 0xe0000d3a, 0x32d6: 0xe0000d46, 0x32d7: 0xf0001d1d, - 0x32d8: 0xe0000eb0, 0x32d9: 0xe0000eb8, 0x32da: 0xf0001d1d, 0x32db: 0xf0001c1c, - 0x32dc: 0xf0001c1d, 0x32dd: 0xf0001c1d, 0x32de: 0xe00010b2, 0x32df: 0xe00009c8, - 0x32e0: 0xf0001f04, 0x32e1: 0xf0001f04, 0x32e2: 0xf0001f04, 0x32e3: 0xf0001f04, - 0x32e4: 0xf0001f04, 0x32e5: 0xf0001f04, 0x32e6: 0xf0001f04, 0x32e7: 0xf0001f04, - 0x32e8: 0xf0001f04, 0x32e9: 0xf0000404, 0x32ea: 0xf0000404, 0x32eb: 0xf0000404, - 0x32ec: 0xf0000404, 0x32ed: 0xf0000404, 0x32ee: 0xf0000404, 0x32ef: 0xf0000404, - 0x32f0: 0xf0000404, 0x32f1: 0xf0000404, 0x32f2: 0xf0000404, 0x32f3: 0xf0000404, - 0x32f4: 0xf0000404, 0x32f5: 0xf0000404, 0x32f6: 0xf0000404, 0x32f7: 0xf0000404, - 0x32f8: 0xf0000404, 0x32f9: 0xf0000404, 0x32fa: 0xf0000404, 0x32fb: 0xf0000404, - 0x32fc: 0xf0000404, 0x32fd: 0xf0000404, 0x32fe: 0xf0000404, 0x32ff: 0xe0000bdf, - // Block 0xcc, offset 0x3300 - 0x3300: 0x40196220, 0x3301: 0x40196420, 0x3302: 0x40196620, 0x3303: 0x40196820, - 0x3304: 0x40196a20, 0x3305: 0x40196c20, 0x3306: 0x40196e20, 0x3307: 0x40197020, - 0x3308: 0x40197220, 0x3309: 0x40197420, 0x330a: 0x40197620, 0x330b: 0x40197820, - 0x330c: 0x40197a20, 0x330d: 0x40197c20, 0x330e: 0x40197e20, 0x330f: 0x40198020, - 0x3310: 0x40198220, 0x3311: 0x40198420, 0x3312: 0x40198620, 0x3313: 0x40198820, - 0x3314: 0x40198a20, 0x3315: 0x40198c20, 0x3316: 0x40198e20, 0x3317: 0x40199020, - 0x3318: 0x40199220, 0x3319: 0x40199420, 0x331a: 0x40199620, 0x331b: 0x40199820, - 0x331c: 0x40199a20, 0x331d: 0x40199c20, 0x331e: 0x40199e20, 0x331f: 0x4019a020, - 0x3320: 0x4019a220, 0x3321: 0x4019a420, 0x3322: 0x4019a620, 0x3323: 0x4019a820, - 0x3324: 0x4019aa20, 0x3325: 0x4019ac20, 0x3326: 0x4019ae20, 0x3327: 0x4019b020, - 0x3328: 0x4019b220, 0x3329: 0x4019b420, 0x332a: 0x4019b620, 0x332b: 0x4019b820, - 0x332c: 0x4019ba20, 0x332d: 0x4019bc20, 0x332e: 0x4019be20, 0x332f: 0x4019c020, - 0x3330: 0x4019c220, 0x3331: 0x4019c420, 0x3332: 0x4019c620, 0x3333: 0x4019c820, - 0x3334: 0x4019ca20, 0x3335: 0x4019cc20, 0x3336: 0x4019ce20, 0x3337: 0x4019d020, - 0x3338: 0x4019d220, 0x3339: 0x4019d420, 0x333a: 0x4019d620, 0x333b: 0x4019d820, - 0x333c: 0x4019da20, 0x333d: 0x4019dc20, 0x333e: 0x4019de20, 0x333f: 0x4019e020, - // Block 0xcd, offset 0x3340 - 0x3340: 0x40664020, 0x3341: 0x40664220, 0x3342: 0x40664420, 0x3343: 0x40664620, - 0x3344: 0x40664820, 0x3345: 0x40664a20, 0x3346: 0x40664c20, 0x3347: 0x40664e20, - 0x3348: 0x40665020, 0x3349: 0x40665220, 0x334a: 0x40665420, 0x334b: 0x40665620, - 0x334c: 0x40665820, 0x334d: 0x40665a20, 0x334e: 0x40665c20, 0x334f: 0x40665e20, - 0x3350: 0x40666020, 0x3351: 0x40666220, 0x3352: 0x40666420, 0x3353: 0x40666620, - 0x3354: 0x40666820, 0x3355: 0x40666a20, 0x3356: 0x40666c20, 0x3357: 0x40666e20, - 0x3358: 0x40667020, 0x3359: 0x40667220, 0x335a: 0x40667420, 0x335b: 0x40667620, - 0x335c: 0x40667820, 0x335d: 0x40667a20, 0x335e: 0x40667c20, 0x335f: 0x40667e20, - 0x3360: 0x40668020, 0x3361: 0x40668220, 0x3362: 0x40668420, 0x3363: 0x40668620, - 0x3364: 0x40668820, 0x3365: 0x40668a20, 0x3366: 0x40668c20, 0x3367: 0x40668e20, - 0x3368: 0x40669020, 0x3369: 0x40669220, 0x336a: 0x40669420, 0x336b: 0x40669620, - 0x336c: 0x40669820, 0x336d: 0x40669a20, 0x336e: 0x40669c20, 0x336f: 0x40669e20, - 0x3370: 0x4066a020, 0x3371: 0x4066a220, 0x3372: 0x4066a420, 0x3373: 0x4066a620, - 0x3374: 0x4066a820, 0x3375: 0x4066aa20, 0x3376: 0x4066ac20, 0x3377: 0x4066ae20, - 0x3378: 0x4066b020, 0x3379: 0x4066b220, 0x337a: 0x4066b420, 0x337b: 0x4066b620, - 0x337c: 0x4066b820, 0x337d: 0x4066ba20, 0x337e: 0x4066bc20, 0x337f: 0x4066be20, - // Block 0xce, offset 0x3380 - 0x3380: 0x4066c020, 0x3381: 0x4066c220, 0x3382: 0x4066c420, 0x3383: 0x4066c620, - 0x3384: 0x4066c820, 0x3385: 0x4066ca20, 0x3386: 0x4066cc20, 0x3387: 0x4066ce20, - 0x3388: 0x4066d020, 0x3389: 0x4066d220, 0x338a: 0x4066d420, 0x338b: 0x4066d620, - 0x338c: 0x4066d820, 0x338d: 0x4066da20, 0x338e: 0x4066dc20, 0x338f: 0x4066de20, - 0x3390: 0x4066e020, 0x3391: 0x4066e220, 0x3392: 0x4066e420, 0x3393: 0x4066e620, - 0x3394: 0x4066e820, 0x3395: 0x4066ea20, 0x3396: 0x4066ec20, 0x3397: 0x4066ee20, - 0x3398: 0x4066f020, 0x3399: 0x4066f220, 0x339a: 0x4066f420, 0x339b: 0x4066f620, - 0x339c: 0x4066f820, 0x339d: 0x4066fa20, 0x339e: 0x4066fc20, 0x339f: 0x4066fe20, - 0x33a0: 0x40670020, 0x33a1: 0x40670220, 0x33a2: 0x40670420, 0x33a3: 0x40670620, - 0x33a4: 0x40670820, 0x33a5: 0x40670a20, 0x33a6: 0x40670c20, 0x33a7: 0x40670e20, - 0x33a8: 0x40671020, 0x33a9: 0x40671220, 0x33aa: 0x40671420, 0x33ab: 0x40671620, - 0x33ac: 0x40671820, 0x33ad: 0x40671a20, 0x33ae: 0x40671c20, 0x33af: 0x40671e20, - 0x33b0: 0x40672020, 0x33b1: 0x40672220, 0x33b2: 0x40672420, 0x33b3: 0x40672620, - 0x33b4: 0x40672820, 0x33b5: 0x40672a20, 0x33b6: 0x40672c20, 0x33b7: 0x40672e20, - 0x33b8: 0x40673020, 0x33b9: 0x40673220, 0x33ba: 0x40673420, 0x33bb: 0x40673620, - 0x33bc: 0x40673820, 0x33bd: 0x40673a20, 0x33be: 0x40673c20, 0x33bf: 0x40673e20, - // Block 0xcf, offset 0x33c0 - 0x33c0: 0x40674020, 0x33c1: 0x40674220, 0x33c2: 0x40674420, 0x33c3: 0x40674620, - 0x33c4: 0x40674820, 0x33c5: 0x40674a20, 0x33c6: 0x40674c20, 0x33c7: 0x40674e20, - 0x33c8: 0x40675020, 0x33c9: 0x40675220, 0x33ca: 0x40675420, 0x33cb: 0x40675620, - 0x33cc: 0x40675820, 0x33cd: 0x40675a20, 0x33ce: 0x40675c20, 0x33cf: 0x40675e20, - 0x33d0: 0x40676020, 0x33d1: 0x40676220, 0x33d2: 0x40676420, 0x33d3: 0x40676620, - 0x33d4: 0x40676820, 0x33d5: 0x40676a20, 0x33d6: 0x40676c20, 0x33d7: 0x40676e20, - 0x33d8: 0x40677020, 0x33d9: 0x40677220, 0x33da: 0x40677420, 0x33db: 0x40677620, - 0x33dc: 0x40677820, 0x33dd: 0x40677a20, 0x33de: 0x40677c20, 0x33df: 0x40677e20, - 0x33e0: 0x40678020, 0x33e1: 0x40678220, 0x33e2: 0x40678420, 0x33e3: 0x40678620, - 0x33e4: 0x40678820, 0x33e5: 0x40678a20, 0x33e6: 0x40678c20, 0x33e7: 0x40678e20, - 0x33e8: 0x40679020, 0x33e9: 0x40679220, 0x33ea: 0x40679420, 0x33eb: 0x40679620, - 0x33ec: 0x40679820, 0x33ed: 0x40679a20, 0x33ee: 0x40679c20, 0x33ef: 0x40679e20, - 0x33f0: 0x4067a020, 0x33f1: 0x4067a220, 0x33f2: 0x4067a420, 0x33f3: 0x4067a620, - 0x33f4: 0x4067a820, 0x33f5: 0x4067aa20, 0x33f6: 0x4067ac20, 0x33f7: 0x4067ae20, - 0x33f8: 0x4067b020, 0x33f9: 0x4067b220, 0x33fa: 0x4067b420, 0x33fb: 0x4067b620, - 0x33fc: 0x4067b820, 0x33fd: 0x4067ba20, 0x33fe: 0x4067bc20, 0x33ff: 0x4067be20, - // Block 0xd0, offset 0x3400 - 0x3400: 0x4067c020, 0x3401: 0x4067c220, 0x3402: 0x4067c420, 0x3403: 0x4067c620, - 0x3404: 0x4067c820, 0x3405: 0x4067ca20, 0x3406: 0x4067cc20, 0x3407: 0x4067ce20, - 0x3408: 0x4067d020, 0x3409: 0x4067d220, 0x340a: 0x4067d420, 0x340b: 0x4067d620, - 0x340c: 0x4067d820, 0x340d: 0x4067da20, 0x340e: 0x4067dc20, 0x340f: 0x4067de20, - 0x3410: 0x4067e020, 0x3411: 0x4067e220, 0x3412: 0x4067e420, 0x3413: 0x4067e620, - 0x3414: 0x4067e820, 0x3415: 0x4067ea20, 0x3416: 0x4067ec20, 0x3417: 0x4067ee20, - 0x3418: 0x4067f020, 0x3419: 0x4067f220, 0x341a: 0x4067f420, 0x341b: 0x4067f620, - 0x341c: 0x4067f820, 0x341d: 0x4067fa20, 0x341e: 0x4067fc20, 0x341f: 0x4067fe20, - 0x3420: 0x40680020, 0x3421: 0x40680220, 0x3422: 0x40680420, 0x3423: 0x40680620, - 0x3424: 0x40680820, 0x3425: 0x40680a20, 0x3426: 0x40680c20, 0x3427: 0x40680e20, - 0x3428: 0x40681020, 0x3429: 0x40681220, 0x342a: 0x40681420, 0x342b: 0x40681620, - 0x342c: 0x40681820, 0x342d: 0x40681a20, 0x342e: 0x40681c20, 0x342f: 0x40681e20, - 0x3430: 0x40682020, 0x3431: 0x40682220, 0x3432: 0x40682420, 0x3433: 0x40682620, - 0x3434: 0x40682820, 0x3435: 0x40682a20, 0x3436: 0x40682c20, 0x3437: 0x40682e20, - 0x3438: 0x40683020, 0x3439: 0x40683220, 0x343a: 0x40683420, 0x343b: 0x40683620, - 0x343c: 0x40683820, 0x343d: 0x40683a20, 0x343e: 0x40683c20, 0x343f: 0x40683e20, - // Block 0xd1, offset 0x3440 - 0x3440: 0x40684020, 0x3441: 0x40684220, 0x3442: 0x40684420, 0x3443: 0x40684620, - 0x3444: 0x40684820, 0x3445: 0x40684a20, 0x3446: 0x40684c20, 0x3447: 0x40684e20, - 0x3448: 0x40685020, 0x3449: 0x40685220, 0x344a: 0x40685420, 0x344b: 0x40685620, - 0x344c: 0x40685820, 0x344d: 0x40685a20, 0x344e: 0x40685c20, 0x344f: 0x40685e20, - 0x3450: 0x40686020, 0x3451: 0x40686220, 0x3452: 0x40686420, 0x3453: 0x40686620, - 0x3454: 0x40686820, 0x3455: 0x40686a20, 0x3456: 0x40686c20, 0x3457: 0x40686e20, - 0x3458: 0x40687020, 0x3459: 0x40687220, 0x345a: 0x40687420, 0x345b: 0x40687620, - 0x345c: 0x40687820, 0x345d: 0x40687a20, 0x345e: 0x40687c20, 0x345f: 0x40687e20, - 0x3460: 0x40688020, 0x3461: 0x40688220, 0x3462: 0x40688420, 0x3463: 0x40688620, - 0x3464: 0x40688820, 0x3465: 0x40688a20, 0x3466: 0x40688c20, 0x3467: 0x40688e20, - 0x3468: 0x40689020, 0x3469: 0x40689220, 0x346a: 0x40689420, 0x346b: 0x40689620, - 0x346c: 0x40689820, 0x346d: 0x40689a20, 0x346e: 0x40689c20, 0x346f: 0x40689e20, - 0x3470: 0x4068a020, 0x3471: 0x4068a220, 0x3472: 0x4068a420, 0x3473: 0x4068a620, - 0x3474: 0x4068a820, 0x3475: 0x4068aa20, 0x3476: 0x4068ac20, 0x3477: 0x4068ae20, - 0x3478: 0x4068b020, 0x3479: 0x4068b220, 0x347a: 0x4068b420, 0x347b: 0x4068b620, - 0x347c: 0x4068b820, 0x347d: 0x4068ba20, 0x347e: 0x4068bc20, 0x347f: 0x4068be20, - // Block 0xd2, offset 0x3480 - 0x3480: 0x4068c020, 0x3481: 0x4068c220, 0x3482: 0x4068c420, 0x3483: 0x4068c620, - 0x3484: 0x4068c820, 0x3485: 0x4068ca20, 0x3486: 0x4068cc20, 0x3487: 0x4068ce20, - 0x3488: 0x4068d020, 0x3489: 0x4068d220, 0x348a: 0x4068d420, 0x348b: 0x4068d620, - 0x348c: 0x4068d820, 0x348d: 0x4068da20, 0x348e: 0x4068dc20, 0x348f: 0x4068de20, - 0x3490: 0x4068e020, 0x3491: 0x4068e220, 0x3492: 0x4068e420, 0x3493: 0x4068e620, - 0x3494: 0x4068e820, 0x3495: 0x4068ea20, 0x3496: 0x4068ec20, 0x3497: 0x4068ee20, - 0x3498: 0x4068f020, 0x3499: 0x4068f220, 0x349a: 0x4068f420, 0x349b: 0x4068f620, - 0x349c: 0x4068f820, 0x349d: 0x4068fa20, 0x349e: 0x4068fc20, 0x349f: 0x4068fe20, - 0x34a0: 0x40690020, 0x34a1: 0x40690220, 0x34a2: 0x40690420, 0x34a3: 0x40690620, - 0x34a4: 0x40690820, 0x34a5: 0x40690a20, 0x34a6: 0x40690c20, 0x34a7: 0x40690e20, - 0x34a8: 0x40691020, 0x34a9: 0x40691220, 0x34aa: 0x40691420, 0x34ab: 0x40691620, - 0x34ac: 0x40691820, 0x34ad: 0x40691a20, 0x34ae: 0x40691c20, 0x34af: 0x40691e20, - 0x34b0: 0x40692020, 0x34b1: 0x40692220, 0x34b2: 0x40692420, 0x34b3: 0x40692620, - 0x34b4: 0x40692820, 0x34b5: 0x40692a20, 0x34b6: 0x40692c20, 0x34b7: 0x40692e20, - 0x34b8: 0x40693020, 0x34b9: 0x40693220, 0x34ba: 0x40693420, 0x34bb: 0x40693620, - 0x34bc: 0x40693820, 0x34bd: 0x40693a20, 0x34be: 0x40693c20, 0x34bf: 0x40693e20, - // Block 0xd3, offset 0x34c0 - 0x34c0: 0x40694020, 0x34c1: 0x40694220, 0x34c2: 0x40694420, 0x34c3: 0x40694620, - 0x34c4: 0x40694820, 0x34c5: 0x40694a20, 0x34c6: 0x40694c20, 0x34c7: 0x40694e20, - 0x34c8: 0x40695020, 0x34c9: 0x40695220, 0x34ca: 0x40695420, 0x34cb: 0x40695620, - 0x34cc: 0x40695820, 0x34cd: 0x40695a20, 0x34ce: 0x40695c20, 0x34cf: 0x40695e20, - 0x34d0: 0x40696020, 0x34d1: 0x40696220, 0x34d2: 0x40696420, 0x34d3: 0x40696620, - 0x34d4: 0x40696820, 0x34d5: 0x40696a20, 0x34d6: 0x40696c20, 0x34d7: 0x40696e20, - 0x34d8: 0x40697020, 0x34d9: 0x40697220, 0x34da: 0x40697420, 0x34db: 0x40697620, - 0x34dc: 0x40697820, 0x34dd: 0x40697a20, 0x34de: 0x40697c20, 0x34df: 0x40697e20, - 0x34e0: 0x40698020, 0x34e1: 0x40698220, 0x34e2: 0x40698420, 0x34e3: 0x40698620, - 0x34e4: 0x40698820, 0x34e5: 0x40698a20, 0x34e6: 0x40698c20, 0x34e7: 0x40698e20, - 0x34e8: 0x40699020, 0x34e9: 0x40699220, 0x34ea: 0x40699420, 0x34eb: 0x40699620, - 0x34ec: 0x40699820, 0x34ed: 0x40699a20, 0x34ee: 0x40699c20, 0x34ef: 0x40699e20, - 0x34f0: 0x4069a020, 0x34f1: 0x4069a220, 0x34f2: 0x4069a420, 0x34f3: 0x4069a620, - 0x34f4: 0x4069a820, 0x34f5: 0x4069aa20, 0x34f6: 0x4069ac20, 0x34f7: 0x4069ae20, - 0x34f8: 0x4069b020, 0x34f9: 0x4069b220, 0x34fa: 0x4069b420, 0x34fb: 0x4069b620, - 0x34fc: 0x4069b820, 0x34fd: 0x4069ba20, 0x34fe: 0x4069bc20, 0x34ff: 0x4069be20, - // Block 0xd4, offset 0x3500 - 0x3500: 0x4069c020, 0x3501: 0x4069c220, 0x3502: 0x4069c420, 0x3503: 0x4069c620, - 0x3504: 0x4069c820, 0x3505: 0x4069ca20, 0x3506: 0x4069cc20, 0x3507: 0x4069ce20, - 0x3508: 0x4069d020, 0x3509: 0x4069d220, 0x350a: 0x4069d420, 0x350b: 0x4069d620, - 0x350c: 0x4069d820, 0x350d: 0x4069da20, 0x350e: 0x4069dc20, 0x350f: 0x4069de20, - 0x3510: 0x4069e020, 0x3511: 0x4069e220, 0x3512: 0x4069e420, 0x3513: 0x4069e620, - 0x3514: 0x4069e820, 0x3515: 0x4069ea20, 0x3516: 0x4069ec20, 0x3517: 0x4069ee20, - 0x3518: 0x4069f020, 0x3519: 0x4069f220, 0x351a: 0x4069f420, 0x351b: 0x4069f620, - 0x351c: 0x4069f820, 0x351d: 0x4069fa20, 0x351e: 0x4069fc20, 0x351f: 0x4069fe20, - 0x3520: 0x406a0020, 0x3521: 0x406a0220, 0x3522: 0x406a0420, 0x3523: 0x406a0620, - 0x3524: 0x406a0820, 0x3525: 0x406a0a20, 0x3526: 0x406a0c20, 0x3527: 0x406a0e20, - 0x3528: 0x406a1020, 0x3529: 0x406a1220, 0x352a: 0x406a1420, 0x352b: 0x406a1620, - 0x352c: 0x406a1820, 0x352d: 0x406a1a20, 0x352e: 0x406a1c20, 0x352f: 0x406a1e20, - 0x3530: 0x406a2020, 0x3531: 0x406a2220, 0x3532: 0x406a2420, 0x3533: 0x406a2620, - 0x3534: 0x406a2820, 0x3535: 0x406a2a20, 0x3536: 0x406a2c20, 0x3537: 0x406a2e20, - 0x3538: 0x406a3020, 0x3539: 0x406a3220, 0x353a: 0x406a3420, 0x353b: 0x406a3620, - 0x353c: 0x406a3820, 0x353d: 0x406a3a20, 0x353e: 0x406a3c20, 0x353f: 0x406a3e20, - // Block 0xd5, offset 0x3540 - 0x3540: 0x406a4020, 0x3541: 0x406a4220, 0x3542: 0x406a4420, 0x3543: 0x406a4620, - 0x3544: 0x406a4820, 0x3545: 0x406a4a20, 0x3546: 0x406a4c20, 0x3547: 0x406a4e20, - 0x3548: 0x406a5020, 0x3549: 0x406a5220, 0x354a: 0x406a5420, 0x354b: 0x406a5620, - 0x354c: 0x406a5820, 0x354d: 0x406a5a20, 0x354e: 0x406a5c20, 0x354f: 0x406a5e20, - 0x3550: 0x406a6020, 0x3551: 0x406a6220, 0x3552: 0x406a6420, 0x3553: 0x406a6620, - 0x3554: 0x406a6820, 0x3555: 0x406a6a20, 0x3556: 0x406a6c20, 0x3557: 0x406a6e20, - 0x3558: 0x406a7020, 0x3559: 0x406a7220, 0x355a: 0x406a7420, 0x355b: 0x406a7620, - 0x355c: 0x406a7820, 0x355d: 0x406a7a20, 0x355e: 0x406a7c20, 0x355f: 0x406a7e20, - 0x3560: 0x406a8020, 0x3561: 0x406a8220, 0x3562: 0x406a8420, 0x3563: 0x406a8620, - 0x3564: 0x406a8820, 0x3565: 0x406a8a20, 0x3566: 0x406a8c20, 0x3567: 0x406a8e20, - 0x3568: 0x406a9020, 0x3569: 0x406a9220, 0x356a: 0x406a9420, 0x356b: 0x406a9620, - 0x356c: 0x406a9820, 0x356d: 0x406a9a20, 0x356e: 0x406a9c20, 0x356f: 0x406a9e20, - 0x3570: 0x406aa020, 0x3571: 0x406aa220, 0x3572: 0x406aa420, 0x3573: 0x406aa620, - 0x3574: 0x406aa820, 0x3575: 0x406aaa20, 0x3576: 0x406aac20, 0x3577: 0x406aae20, - 0x3578: 0x406ab020, 0x3579: 0x406ab220, 0x357a: 0x406ab420, 0x357b: 0x406ab620, - 0x357c: 0x406ab820, 0x357d: 0x406aba20, 0x357e: 0x406abc20, 0x357f: 0x406abe20, - // Block 0xd6, offset 0x3580 - 0x3580: 0x406ac020, 0x3581: 0x406ac220, 0x3582: 0x406ac420, 0x3583: 0x406ac620, - 0x3584: 0x406ac820, 0x3585: 0x406aca20, 0x3586: 0x406acc20, 0x3587: 0x406ace20, - 0x3588: 0x406ad020, 0x3589: 0x406ad220, 0x358a: 0x406ad420, 0x358b: 0x406ad620, - 0x358c: 0x406ad820, 0x358d: 0x406ada20, 0x358e: 0x406adc20, 0x358f: 0x406ade20, - 0x3590: 0x406ae020, 0x3591: 0x406ae220, 0x3592: 0x406ae420, 0x3593: 0x406ae620, - 0x3594: 0x406ae820, 0x3595: 0x406aea20, 0x3596: 0x406aec20, 0x3597: 0x406aee20, - 0x3598: 0x406af020, 0x3599: 0x406af220, 0x359a: 0x406af420, 0x359b: 0x406af620, - 0x359c: 0x406af820, 0x359d: 0x406afa20, 0x359e: 0x406afc20, 0x359f: 0x406afe20, - 0x35a0: 0x406b0020, 0x35a1: 0x406b0220, 0x35a2: 0x406b0420, 0x35a3: 0x406b0620, - 0x35a4: 0x406b0820, 0x35a5: 0x406b0a20, 0x35a6: 0x406b0c20, 0x35a7: 0x406b0e20, - 0x35a8: 0x406b1020, 0x35a9: 0x406b1220, 0x35aa: 0x406b1420, 0x35ab: 0x406b1620, - 0x35ac: 0x406b1820, 0x35ad: 0x406b1a20, 0x35ae: 0x406b1c20, 0x35af: 0x406b1e20, - 0x35b0: 0x406b2020, 0x35b1: 0x406b2220, 0x35b2: 0x406b2420, 0x35b3: 0x406b2620, - 0x35b4: 0x406b2820, 0x35b5: 0x406b2a20, 0x35b6: 0x406b2c20, 0x35b7: 0x406b2e20, - 0x35b8: 0x406b3020, 0x35b9: 0x406b3220, 0x35ba: 0x406b3420, 0x35bb: 0x406b3620, - 0x35bc: 0x406b3820, 0x35bd: 0x406b3a20, 0x35be: 0x406b3c20, 0x35bf: 0x406b3e20, - // Block 0xd7, offset 0x35c0 - 0x35c0: 0x406b4020, 0x35c1: 0x406b4220, 0x35c2: 0x406b4420, 0x35c3: 0x406b4620, - 0x35c4: 0x406b4820, 0x35c5: 0x406b4a20, 0x35c6: 0x406b4c20, 0x35c7: 0x406b4e20, - 0x35c8: 0x406b5020, 0x35c9: 0x406b5220, 0x35ca: 0x406b5420, 0x35cb: 0x406b5620, - 0x35cc: 0x406b5820, 0x35cd: 0x406b5a20, 0x35ce: 0x406b5c20, 0x35cf: 0x406b5e20, - 0x35d0: 0x406b6020, 0x35d1: 0x406b6220, 0x35d2: 0x406b6420, 0x35d3: 0x406b6620, - 0x35d4: 0x406b6820, 0x35d5: 0x406b6a20, 0x35d6: 0x406b6c20, 0x35d7: 0x406b6e20, - 0x35d8: 0x406b7020, 0x35d9: 0x406b7220, 0x35da: 0x406b7420, 0x35db: 0x406b7620, - 0x35dc: 0x406b7820, 0x35dd: 0x406b7a20, 0x35de: 0x406b7c20, 0x35df: 0x406b7e20, - 0x35e0: 0x406b8020, 0x35e1: 0x406b8220, 0x35e2: 0x406b8420, 0x35e3: 0x406b8620, - 0x35e4: 0x406b8820, 0x35e5: 0x406b8a20, 0x35e6: 0x406b8c20, 0x35e7: 0x406b8e20, - 0x35e8: 0x406b9020, 0x35e9: 0x406b9220, 0x35ea: 0x406b9420, 0x35eb: 0x406b9620, - 0x35ec: 0x406b9820, 0x35ed: 0x406b9a20, 0x35ee: 0x406b9c20, 0x35ef: 0x406b9e20, - 0x35f0: 0x406ba020, 0x35f1: 0x406ba220, 0x35f2: 0x406ba420, 0x35f3: 0x406ba620, - 0x35f4: 0x406ba820, 0x35f5: 0x406baa20, 0x35f6: 0x406bac20, 0x35f7: 0x406bae20, - 0x35f8: 0x406bb020, 0x35f9: 0x406bb220, 0x35fa: 0x406bb420, 0x35fb: 0x406bb620, - 0x35fc: 0x406bb820, 0x35fd: 0x406bba20, 0x35fe: 0x406bbc20, 0x35ff: 0x406bbe20, - // Block 0xd8, offset 0x3600 - 0x3600: 0x406bc020, 0x3601: 0x406bc220, 0x3602: 0x406bc420, 0x3603: 0x406bc620, - 0x3604: 0x406bc820, 0x3605: 0x406bca20, 0x3606: 0x406bcc20, 0x3607: 0x406bce20, - 0x3608: 0x406bd020, 0x3609: 0x406bd220, 0x360a: 0x406bd420, 0x360b: 0x406bd620, - 0x360c: 0x406bd820, 0x360d: 0x406bda20, 0x360e: 0x406bdc20, 0x360f: 0x406bde20, - 0x3610: 0x406be020, 0x3611: 0x406be220, 0x3612: 0x406be420, 0x3613: 0x406be620, - 0x3614: 0x406be820, 0x3615: 0x406bea20, 0x3616: 0x406bec20, 0x3617: 0x406bee20, - 0x3618: 0x406bf020, 0x3619: 0x406bf220, 0x361a: 0x406bf420, 0x361b: 0x406bf620, - 0x361c: 0x406bf820, 0x361d: 0x406bfa20, 0x361e: 0x406bfc20, 0x361f: 0x406bfe20, - 0x3620: 0x406c0020, 0x3621: 0x406c0220, 0x3622: 0x406c0420, 0x3623: 0x406c0620, - 0x3624: 0x406c0820, 0x3625: 0x406c0a20, 0x3626: 0x406c0c20, 0x3627: 0x406c0e20, - 0x3628: 0x406c1020, 0x3629: 0x406c1220, 0x362a: 0x406c1420, 0x362b: 0x406c1620, - 0x362c: 0x406c1820, 0x362d: 0x406c1a20, 0x362e: 0x406c1c20, 0x362f: 0x406c1e20, - 0x3630: 0x406c2020, 0x3631: 0x406c2220, 0x3632: 0x406c2420, 0x3633: 0x406c2620, - 0x3634: 0x406c2820, 0x3635: 0x406c2a20, 0x3636: 0x406c2c20, 0x3637: 0x406c2e20, - 0x3638: 0x406c3020, 0x3639: 0x406c3220, 0x363a: 0x406c3420, 0x363b: 0x406c3620, - 0x363c: 0x406c3820, 0x363d: 0x406c3a20, 0x363e: 0x406c3c20, 0x363f: 0x406c3e20, - // Block 0xd9, offset 0x3640 - 0x3640: 0x406c4020, 0x3641: 0x406c4220, 0x3642: 0x406c4420, 0x3643: 0x406c4620, - 0x3644: 0x406c4820, 0x3645: 0x406c4a20, 0x3646: 0x406c4c20, 0x3647: 0x406c4e20, - 0x3648: 0x406c5020, 0x3649: 0x406c5220, 0x364a: 0x406c5420, 0x364b: 0x406c5620, - 0x364c: 0x406c5820, 0x364d: 0x406c5a20, 0x364e: 0x406c5c20, 0x364f: 0x406c5e20, - 0x3650: 0x406c6020, 0x3651: 0x406c6220, 0x3652: 0x406c6420, 0x3653: 0x406c6620, - 0x3654: 0x406c6820, 0x3655: 0x406c6a20, 0x3656: 0x406c6c20, 0x3657: 0x406c6e20, - 0x3658: 0x406c7020, 0x3659: 0x406c7220, 0x365a: 0x406c7420, 0x365b: 0x406c7620, - 0x365c: 0x406c7820, 0x365d: 0x406c7a20, 0x365e: 0x406c7c20, 0x365f: 0x406c7e20, - 0x3660: 0x406c8020, 0x3661: 0x406c8220, 0x3662: 0x406c8420, 0x3663: 0x406c8620, - 0x3664: 0x406c8820, 0x3665: 0x406c8a20, 0x3666: 0x406c8c20, 0x3667: 0x406c8e20, - 0x3668: 0x406c9020, 0x3669: 0x406c9220, 0x366a: 0x406c9420, 0x366b: 0x406c9620, - 0x366c: 0x406c9820, 0x366d: 0x406c9a20, 0x366e: 0x406c9c20, 0x366f: 0x406c9e20, - 0x3670: 0x406ca020, 0x3671: 0x406ca220, 0x3672: 0x406ca420, 0x3673: 0x406ca620, - 0x3674: 0x406ca820, 0x3675: 0x406caa20, 0x3676: 0x406cac20, 0x3677: 0x406cae20, - 0x3678: 0x406cb020, 0x3679: 0x406cb220, 0x367a: 0x406cb420, 0x367b: 0x406cb620, - 0x367c: 0x406cb820, 0x367d: 0x406cba20, 0x367e: 0x406cbc20, 0x367f: 0x406cbe20, - // Block 0xda, offset 0x3680 - 0x3680: 0x406cc020, 0x3681: 0x406cc220, 0x3682: 0x406cc420, 0x3683: 0x406cc620, - 0x3684: 0x406cc820, 0x3685: 0x406cca20, 0x3686: 0x406ccc20, 0x3687: 0x406cce20, - 0x3688: 0x406cd020, 0x3689: 0x406cd220, 0x368a: 0x406cd420, 0x368b: 0x406cd620, - 0x368c: 0x406cd820, 0x368d: 0x406cda20, 0x368e: 0x406cdc20, 0x368f: 0x406cde20, - 0x3690: 0x406ce020, 0x3691: 0x406ce220, 0x3692: 0x406ce420, 0x3693: 0x406ce620, - 0x3694: 0x406ce820, 0x3695: 0x406cea20, 0x3696: 0x406cec20, 0x3697: 0x406cee20, - 0x3698: 0x406cf020, 0x3699: 0x406cf220, 0x369a: 0x406cf420, 0x369b: 0x406cf620, - 0x369c: 0x406cf820, 0x369d: 0x406cfa20, 0x369e: 0x406cfc20, 0x369f: 0x406cfe20, - 0x36a0: 0x406d0020, 0x36a1: 0x406d0220, 0x36a2: 0x406d0420, 0x36a3: 0x406d0620, - 0x36a4: 0x406d0820, 0x36a5: 0x406d0a20, 0x36a6: 0x406d0c20, 0x36a7: 0x406d0e20, - 0x36a8: 0x406d1020, 0x36a9: 0x406d1220, 0x36aa: 0x406d1420, 0x36ab: 0x406d1620, - 0x36ac: 0x406d1820, 0x36ad: 0x406d1a20, 0x36ae: 0x406d1c20, 0x36af: 0x406d1e20, - 0x36b0: 0x406d2020, 0x36b1: 0x406d2220, 0x36b2: 0x406d2420, 0x36b3: 0x406d2620, - 0x36b4: 0x406d2820, 0x36b5: 0x406d2a20, 0x36b6: 0x406d2c20, 0x36b7: 0x406d2e20, - 0x36b8: 0x406d3020, 0x36b9: 0x406d3220, 0x36ba: 0x406d3420, 0x36bb: 0x406d3620, - 0x36bc: 0x406d3820, 0x36bd: 0x406d3a20, 0x36be: 0x406d3c20, 0x36bf: 0x406d3e20, - // Block 0xdb, offset 0x36c0 - 0x36c0: 0x406d4020, 0x36c1: 0x406d4220, 0x36c2: 0x406d4420, 0x36c3: 0x406d4620, - 0x36c4: 0x406d4820, 0x36c5: 0x406d4a20, 0x36c6: 0x406d4c20, 0x36c7: 0x406d4e20, - 0x36c8: 0x406d5020, 0x36c9: 0x406d5220, 0x36ca: 0x406d5420, 0x36cb: 0x406d5620, - 0x36cc: 0x406d5820, 0x36cd: 0x406d5a20, 0x36ce: 0x406d5c20, 0x36cf: 0x406d5e20, - 0x36d0: 0x406d6020, 0x36d1: 0x406d6220, 0x36d2: 0x406d6420, 0x36d3: 0x406d6620, - 0x36d4: 0x406d6820, 0x36d5: 0x406d6a20, 0x36d6: 0x406d6c20, 0x36d7: 0x406d6e20, - 0x36d8: 0x406d7020, 0x36d9: 0x406d7220, 0x36da: 0x406d7420, 0x36db: 0x406d7620, - 0x36dc: 0x406d7820, 0x36dd: 0x406d7a20, 0x36de: 0x406d7c20, 0x36df: 0x406d7e20, - 0x36e0: 0x406d8020, 0x36e1: 0x406d8220, 0x36e2: 0x406d8420, 0x36e3: 0x406d8620, - 0x36e4: 0x406d8820, 0x36e5: 0x406d8a20, 0x36e6: 0x406d8c20, 0x36e7: 0x406d8e20, - 0x36e8: 0x406d9020, 0x36e9: 0x406d9220, 0x36ea: 0x406d9420, 0x36eb: 0x406d9620, - 0x36ec: 0x406d9820, 0x36ed: 0x406d9a20, 0x36ee: 0x406d9c20, 0x36ef: 0x406d9e20, - 0x36f0: 0x406da020, 0x36f1: 0x406da220, 0x36f2: 0x406da420, 0x36f3: 0x406da620, - 0x36f4: 0x406da820, 0x36f5: 0x406daa20, 0x36f6: 0x406dac20, 0x36f7: 0x406dae20, - 0x36f8: 0x406db020, 0x36f9: 0x406db220, 0x36fa: 0x406db420, 0x36fb: 0x406db620, - 0x36fc: 0x406db820, 0x36fd: 0x406dba20, 0x36fe: 0x406dbc20, 0x36ff: 0x406dbe20, - // Block 0xdc, offset 0x3700 - 0x3700: 0x406dc020, 0x3701: 0x406dc220, 0x3702: 0x406dc420, 0x3703: 0x406dc620, - 0x3704: 0x406dc820, 0x3705: 0x406dca20, 0x3706: 0x406dcc20, 0x3707: 0x406dce20, - 0x3708: 0x406dd020, 0x3709: 0x406dd220, 0x370a: 0x406dd420, 0x370b: 0x406dd620, - 0x370c: 0x406dd820, 0x370d: 0x406dda20, 0x370e: 0x406ddc20, 0x370f: 0x406dde20, - 0x3710: 0x406de020, 0x3711: 0x406de220, 0x3712: 0x406de420, 0x3713: 0x406de620, - 0x3714: 0x406de820, 0x3715: 0x406dea20, 0x3716: 0x406dec20, 0x3717: 0x406dee20, - 0x3718: 0x406df020, 0x3719: 0x406df220, 0x371a: 0x406df420, 0x371b: 0x406df620, - 0x371c: 0x406df820, 0x371d: 0x406dfa20, 0x371e: 0x406dfc20, 0x371f: 0x406dfe20, - 0x3720: 0x406e0020, 0x3721: 0x406e0220, 0x3722: 0x406e0420, 0x3723: 0x406e0620, - 0x3724: 0x406e0820, 0x3725: 0x406e0a20, 0x3726: 0x406e0c20, 0x3727: 0x406e0e20, - 0x3728: 0x406e1020, 0x3729: 0x406e1220, 0x372a: 0x406e1420, 0x372b: 0x406e1620, - 0x372c: 0x406e1820, 0x372d: 0x406e1a20, 0x372e: 0x406e1c20, 0x372f: 0x406e1e20, - 0x3730: 0x406e2020, 0x3731: 0x406e2220, 0x3732: 0x406e2420, 0x3733: 0x406e2620, - 0x3734: 0x406e2820, 0x3735: 0x406e2a20, 0x3736: 0x406e2c20, 0x3737: 0x406e2e20, - 0x3738: 0x406e3020, 0x3739: 0x406e3220, 0x373a: 0x406e3420, 0x373b: 0x406e3620, - 0x373c: 0x406e3820, 0x373d: 0x406e3a20, 0x373e: 0x406e3c20, 0x373f: 0x406e3e20, - // Block 0xdd, offset 0x3740 - 0x3740: 0x406e4020, 0x3741: 0x406e4220, 0x3742: 0x406e4420, 0x3743: 0x406e4620, - 0x3744: 0x406e4820, 0x3745: 0x406e4a20, 0x3746: 0x406e4c20, 0x3747: 0x406e4e20, - 0x3748: 0x406e5020, 0x3749: 0x406e5220, 0x374a: 0x406e5420, 0x374b: 0x406e5620, - 0x374c: 0x406e5820, 0x374d: 0x406e5a20, 0x374e: 0x406e5c20, 0x374f: 0x406e5e20, - 0x3750: 0x406e6020, 0x3751: 0x406e6220, 0x3752: 0x406e6420, 0x3753: 0x406e6620, - 0x3754: 0x406e6820, 0x3755: 0x406e6a20, 0x3756: 0x406e6c20, 0x3757: 0x406e6e20, - 0x3758: 0x406e7020, 0x3759: 0x406e7220, 0x375a: 0x406e7420, 0x375b: 0x406e7620, - 0x375c: 0x406e7820, 0x375d: 0x406e7a20, 0x375e: 0x406e7c20, 0x375f: 0x406e7e20, - 0x3760: 0x406e8020, 0x3761: 0x406e8220, 0x3762: 0x406e8420, 0x3763: 0x406e8620, - 0x3764: 0x406e8820, 0x3765: 0x406e8a20, 0x3766: 0x406e8c20, 0x3767: 0x406e8e20, - 0x3768: 0x406e9020, 0x3769: 0x406e9220, 0x376a: 0x406e9420, 0x376b: 0x406e9620, - 0x376c: 0x406e9820, 0x376d: 0x406e9a20, 0x376e: 0x406e9c20, 0x376f: 0x406e9e20, - 0x3770: 0x406ea020, 0x3771: 0x406ea220, 0x3772: 0x406ea420, 0x3773: 0x406ea620, - 0x3774: 0x406ea820, 0x3775: 0x406eaa20, 0x3776: 0x406eac20, 0x3777: 0x406eae20, - 0x3778: 0x406eb020, 0x3779: 0x406eb220, 0x377a: 0x406eb420, 0x377b: 0x406eb620, - 0x377c: 0x406eb820, 0x377d: 0x406eba20, 0x377e: 0x406ebc20, 0x377f: 0x406ebe20, - // Block 0xde, offset 0x3780 - 0x3780: 0x406ec020, 0x3781: 0x406ec220, 0x3782: 0x406ec420, 0x3783: 0x406ec620, - 0x3784: 0x406ec820, 0x3785: 0x406eca20, 0x3786: 0x406ecc20, 0x3787: 0x406ece20, - 0x3788: 0x406ed020, 0x3789: 0x406ed220, 0x378a: 0x406ed420, 0x378b: 0x406ed620, - 0x378c: 0x406ed820, 0x378d: 0x406eda20, 0x378e: 0x406edc20, 0x378f: 0x406ede20, - 0x3790: 0x406ee020, 0x3791: 0x406ee220, 0x3792: 0x406ee420, 0x3793: 0x406ee620, - 0x3794: 0x406ee820, 0x3795: 0x406eea20, 0x3796: 0x406eec20, 0x3797: 0x406eee20, - 0x3798: 0x406ef020, 0x3799: 0x406ef220, 0x379a: 0x406ef420, 0x379b: 0x406ef620, - 0x379c: 0x406ef820, 0x379d: 0x406efa20, 0x379e: 0x406efc20, 0x379f: 0x406efe20, - 0x37a0: 0x406f0020, 0x37a1: 0x406f0220, 0x37a2: 0x406f0420, 0x37a3: 0x406f0620, - 0x37a4: 0x406f0820, 0x37a5: 0x406f0a20, 0x37a6: 0x406f0c20, 0x37a7: 0x406f0e20, - 0x37a8: 0x406f1020, 0x37a9: 0x406f1220, 0x37aa: 0x406f1420, 0x37ab: 0x406f1620, - 0x37ac: 0x406f1820, 0x37ad: 0x406f1a20, 0x37ae: 0x406f1c20, 0x37af: 0x406f1e20, - 0x37b0: 0x406f2020, 0x37b1: 0x406f2220, 0x37b2: 0x406f2420, 0x37b3: 0x406f2620, - 0x37b4: 0x406f2820, 0x37b5: 0x406f2a20, 0x37b6: 0x406f2c20, 0x37b7: 0x406f2e20, - 0x37b8: 0x406f3020, 0x37b9: 0x406f3220, 0x37ba: 0x406f3420, 0x37bb: 0x406f3620, - 0x37bc: 0x406f3820, 0x37bd: 0x406f3a20, 0x37be: 0x406f3c20, 0x37bf: 0x406f3e20, - // Block 0xdf, offset 0x37c0 - 0x37c0: 0x406f4020, 0x37c1: 0x406f4220, 0x37c2: 0x406f4420, 0x37c3: 0x406f4620, - 0x37c4: 0x406f4820, 0x37c5: 0x406f4a20, 0x37c6: 0x406f4c20, 0x37c7: 0x406f4e20, - 0x37c8: 0x406f5020, 0x37c9: 0x406f5220, 0x37ca: 0x406f5420, 0x37cb: 0x406f5620, - 0x37cc: 0x406f5820, - 0x37d0: 0x401a9020, 0x37d1: 0x401a9220, 0x37d2: 0x401a9420, 0x37d3: 0x401a9620, - 0x37d4: 0x401a9820, 0x37d5: 0x401a9a20, 0x37d6: 0x401a9c20, 0x37d7: 0x401a9e20, - 0x37d8: 0x401aa020, 0x37d9: 0x401aa220, 0x37da: 0x401aa420, 0x37db: 0x401aa620, - 0x37dc: 0x401aa820, 0x37dd: 0x401aaa20, 0x37de: 0x401aac20, 0x37df: 0x401aae20, - 0x37e0: 0x401ab020, 0x37e1: 0x401ab220, 0x37e2: 0x401ab420, 0x37e3: 0x401ab620, - 0x37e4: 0x401ab820, 0x37e5: 0x401aba20, 0x37e6: 0x401abc20, 0x37e7: 0x401abe20, - 0x37e8: 0x401ac020, 0x37e9: 0x401ac220, 0x37ea: 0x401ac420, 0x37eb: 0x401ac620, - 0x37ec: 0x401ac820, 0x37ed: 0x401aca20, 0x37ee: 0x401acc20, 0x37ef: 0x401ace20, - 0x37f0: 0x401ad020, 0x37f1: 0x401ad220, 0x37f2: 0x401ad420, 0x37f3: 0x401ad620, - 0x37f4: 0x401ad820, 0x37f5: 0x401ada20, 0x37f6: 0x401adc20, 0x37f7: 0x401ade20, - 0x37f8: 0x401ae020, 0x37f9: 0x401ae220, 0x37fa: 0x401ae420, 0x37fb: 0x401ae620, - 0x37fc: 0x401ae820, 0x37fd: 0x401aea20, 0x37fe: 0x401aec20, 0x37ff: 0x401aee20, - // Block 0xe0, offset 0x3800 - 0x3800: 0x401af020, 0x3801: 0x401af220, 0x3802: 0x401af420, 0x3803: 0x401af620, - 0x3804: 0x401af820, 0x3805: 0x401afa20, 0x3806: 0x401afc20, - 0x3810: 0x406f6620, 0x3811: 0x406f6820, 0x3812: 0x406f6a20, 0x3813: 0x406f6c20, - 0x3814: 0x406f6e20, 0x3815: 0x406f7020, 0x3816: 0x406f7220, 0x3817: 0x406f7420, - 0x3818: 0x406f7620, 0x3819: 0x406f7820, 0x381a: 0x406f7a20, 0x381b: 0x406f7c20, - 0x381c: 0x406f7e20, 0x381d: 0x406f8020, 0x381e: 0x406f8220, 0x381f: 0x406f8420, - 0x3820: 0x406f8620, 0x3821: 0x406f8820, 0x3822: 0x406f8a20, 0x3823: 0x406f8c20, - 0x3824: 0x406f8e20, 0x3825: 0x406f9020, 0x3826: 0x406f9220, 0x3827: 0x406f9420, - 0x3828: 0x406f9620, 0x3829: 0x406f9820, 0x382a: 0x406f9e20, 0x382b: 0x406f9a20, - 0x382c: 0x406fa020, 0x382d: 0x406f9c20, 0x382e: 0x406fa220, 0x382f: 0x406fa420, - 0x3830: 0x406fa620, 0x3831: 0x406fa820, 0x3832: 0x406faa20, 0x3833: 0x406fac20, - 0x3834: 0x406fae20, 0x3835: 0x406fb020, 0x3836: 0x406fb220, 0x3837: 0x406fb420, - 0x3838: 0x406f5a20, 0x3839: 0x406f5c20, 0x383a: 0x406f5e20, 0x383b: 0x406f6020, - 0x383c: 0x406f6420, 0x383d: 0x406f6220, 0x383e: 0x40025620, 0x383f: 0x4002fe20, - // Block 0xe1, offset 0x3840 - 0x3840: 0x405b8020, 0x3841: 0x405b8220, 0x3842: 0x405b8420, 0x3843: 0x405b8620, - 0x3844: 0x405b8820, 0x3845: 0x405b8a20, 0x3846: 0x405b8c20, 0x3847: 0x405b8e20, - 0x3848: 0x405b9020, 0x3849: 0x405b9220, 0x384a: 0x405b9420, 0x384b: 0x405b9620, - 0x384c: 0x405b9820, 0x384d: 0x405b9a20, 0x384e: 0x405b9c20, 0x384f: 0x405b9e20, - 0x3850: 0x405ba020, 0x3851: 0x405ba220, 0x3852: 0x405ba420, 0x3853: 0x405ba620, - 0x3854: 0x405ba820, 0x3855: 0x405baa20, 0x3856: 0x405bac20, 0x3857: 0x405bae20, - 0x3858: 0x405bb020, 0x3859: 0x405bb220, 0x385a: 0x405bb420, 0x385b: 0x405bb620, - 0x385c: 0x405bb820, 0x385d: 0x405bba20, 0x385e: 0x405bbc20, 0x385f: 0x405bbe20, - 0x3860: 0x405bc020, 0x3861: 0x405bc220, 0x3862: 0x405bc420, 0x3863: 0x405bc620, - 0x3864: 0x405bc820, 0x3865: 0x405bca20, 0x3866: 0x405bcc20, 0x3867: 0x405bce20, - 0x3868: 0x405bd020, 0x3869: 0x405bd220, 0x386a: 0x405bd420, 0x386b: 0x405bd620, - 0x386c: 0x405bd820, 0x386d: 0x405bda20, 0x386e: 0x405bdc20, 0x386f: 0x405bde20, - 0x3870: 0x405be020, 0x3871: 0x405be220, 0x3872: 0x405be420, 0x3873: 0x405be620, - 0x3874: 0x405be820, 0x3875: 0x405bea20, 0x3876: 0x405bec20, 0x3877: 0x405bee20, - 0x3878: 0x405bf020, 0x3879: 0x405bf220, 0x387a: 0x405bf420, 0x387b: 0x405bf620, - 0x387c: 0x405bf820, 0x387d: 0x405bfa20, 0x387e: 0x405bfc20, 0x387f: 0x405bfe20, - // Block 0xe2, offset 0x3880 - 0x3880: 0x405c0020, 0x3881: 0x405c0220, 0x3882: 0x405c0420, 0x3883: 0x405c0620, - 0x3884: 0x405c0820, 0x3885: 0x405c0a20, 0x3886: 0x405c0c20, 0x3887: 0x405c0e20, - 0x3888: 0x405c1020, 0x3889: 0x405c1220, 0x388a: 0x405c1420, 0x388b: 0x405c1620, - 0x388c: 0x405c1820, 0x388d: 0x405c1a20, 0x388e: 0x405c1c20, 0x388f: 0x405c1e20, - 0x3890: 0x405c2020, 0x3891: 0x405c2220, 0x3892: 0x405c2420, 0x3893: 0x405c2620, - 0x3894: 0x405c2820, 0x3895: 0x405c2a20, 0x3896: 0x405c2c20, 0x3897: 0x405c2e20, - 0x3898: 0x405c3020, 0x3899: 0x405c3220, 0x389a: 0x405c3420, 0x389b: 0x405c3620, - 0x389c: 0x405c3820, 0x389d: 0x405c3a20, 0x389e: 0x405c3c20, 0x389f: 0x405c3e20, - 0x38a0: 0x405c4020, 0x38a1: 0x405c4220, 0x38a2: 0x405c4420, 0x38a3: 0x405c4620, - 0x38a4: 0x405c4820, 0x38a5: 0x405c4a20, 0x38a6: 0x405c4c20, 0x38a7: 0x405c4e20, - 0x38a8: 0x405c5020, 0x38a9: 0x405c5220, 0x38aa: 0x405c5420, 0x38ab: 0x405c5620, - 0x38ac: 0x405c5820, 0x38ad: 0x405c5a20, 0x38ae: 0x405c5c20, 0x38af: 0x405c5e20, - 0x38b0: 0x405c6020, 0x38b1: 0x405c6220, 0x38b2: 0x405c6420, 0x38b3: 0x405c6620, - 0x38b4: 0x405c6820, 0x38b5: 0x405c6a20, 0x38b6: 0x405c6c20, 0x38b7: 0x405c6e20, - 0x38b8: 0x405c7020, 0x38b9: 0x405c7220, 0x38ba: 0x405c7420, 0x38bb: 0x405c7620, - 0x38bc: 0x405c7820, 0x38bd: 0x405c7a20, 0x38be: 0x405c7c20, 0x38bf: 0x405c7e20, - // Block 0xe3, offset 0x38c0 - 0x38c0: 0x405c8020, 0x38c1: 0x405c8220, 0x38c2: 0x405c8420, 0x38c3: 0x405c8620, - 0x38c4: 0x405c8820, 0x38c5: 0x405c8a20, 0x38c6: 0x405c8c20, 0x38c7: 0x405c8e20, - 0x38c8: 0x405c9020, 0x38c9: 0x405c9220, 0x38ca: 0x405c9420, 0x38cb: 0x405c9620, - 0x38cc: 0x405c9820, 0x38cd: 0x405c9a20, 0x38ce: 0x405c9c20, 0x38cf: 0x405c9e20, - 0x38d0: 0x405ca020, 0x38d1: 0x405ca220, 0x38d2: 0x405ca420, 0x38d3: 0x405ca620, - 0x38d4: 0x405ca820, 0x38d5: 0x405caa20, 0x38d6: 0x405cac20, 0x38d7: 0x405cae20, - 0x38d8: 0x405cb020, 0x38d9: 0x405cb220, 0x38da: 0x405cb420, 0x38db: 0x405cb620, - 0x38dc: 0x405cb820, 0x38dd: 0x405cba20, 0x38de: 0x405cbc20, 0x38df: 0x405cbe20, - 0x38e0: 0x405cc020, 0x38e1: 0x405cc220, 0x38e2: 0x405cc420, 0x38e3: 0x405cc620, - 0x38e4: 0x405cc820, 0x38e5: 0x405cca20, 0x38e6: 0x405ccc20, 0x38e7: 0x405cce20, - 0x38e8: 0x405cd020, 0x38e9: 0x405cd220, 0x38ea: 0x405cd420, 0x38eb: 0x405cd620, - 0x38ec: 0x405cd820, 0x38ed: 0x405cda20, 0x38ee: 0x405cdc20, 0x38ef: 0x405cde20, - 0x38f0: 0x405ce020, 0x38f1: 0x405ce220, 0x38f2: 0x405ce420, 0x38f3: 0x405ce620, - 0x38f4: 0x405ce820, 0x38f5: 0x405cea20, 0x38f6: 0x405cec20, 0x38f7: 0x405cee20, - 0x38f8: 0x405cf020, 0x38f9: 0x405cf220, 0x38fa: 0x405cf420, 0x38fb: 0x405cf620, - 0x38fc: 0x405cf820, 0x38fd: 0x405cfa20, 0x38fe: 0x405cfc20, 0x38ff: 0x405cfe20, - // Block 0xe4, offset 0x3900 - 0x3900: 0x405d0020, 0x3901: 0x405d0220, 0x3902: 0x405d0420, 0x3903: 0x405d0620, - 0x3904: 0x405d0820, 0x3905: 0x405d0a20, 0x3906: 0x405d0c20, 0x3907: 0x405d0e20, - 0x3908: 0x405d1020, 0x3909: 0x405d1220, 0x390a: 0x405d1420, 0x390b: 0x405d1620, - 0x390c: 0x405d1820, 0x390d: 0x405d1a20, 0x390e: 0x405d1c20, 0x390f: 0x405d1e20, - 0x3910: 0x405d2020, 0x3911: 0x405d2220, 0x3912: 0x405d2420, 0x3913: 0x405d2620, - 0x3914: 0x405d2820, 0x3915: 0x405d2a20, 0x3916: 0x405d2c20, 0x3917: 0x405d2e20, - 0x3918: 0x405d3020, 0x3919: 0x405d3220, 0x391a: 0x405d3420, 0x391b: 0x405d3620, - 0x391c: 0x405d3820, 0x391d: 0x405d3a20, 0x391e: 0x405d3c20, 0x391f: 0x405d3e20, - 0x3920: 0x405d4020, 0x3921: 0x405d4220, 0x3922: 0x405d4420, 0x3923: 0x405d4620, - 0x3924: 0x405d4820, 0x3925: 0x405d4a20, 0x3926: 0x405d4c20, 0x3927: 0x405d4e20, - 0x3928: 0x405d5020, 0x3929: 0x405d5220, 0x392a: 0x405d5420, 0x392b: 0x405d5620, - 0x392c: 0x405d5820, 0x392d: 0x405d5a20, 0x392e: 0x405d5c20, 0x392f: 0x405d5e20, - 0x3930: 0x405d6020, 0x3931: 0x405d6220, 0x3932: 0x405d6420, 0x3933: 0x405d6620, - 0x3934: 0x405d6820, 0x3935: 0x405d6a20, 0x3936: 0x405d6c20, 0x3937: 0x405d6e20, - 0x3938: 0x405d7020, 0x3939: 0x405d7220, 0x393a: 0x405d7420, 0x393b: 0x405d7620, - 0x393c: 0x405d7820, 0x393d: 0x405d7a20, 0x393e: 0x405d7c20, 0x393f: 0x405d7e20, - // Block 0xe5, offset 0x3940 - 0x3940: 0x405d8020, 0x3941: 0x405d8220, 0x3942: 0x405d8420, 0x3943: 0x405d8620, - 0x3944: 0x405d8820, 0x3945: 0x405d8a20, 0x3946: 0x405d8c20, 0x3947: 0x405d8e20, - 0x3948: 0x405d9020, 0x3949: 0x405d9220, 0x394a: 0x405d9420, 0x394b: 0x405d9620, - 0x394c: 0x405d9820, 0x394d: 0x40025820, 0x394e: 0x40030020, 0x394f: 0x4002d820, - 0x3950: 0x005c3084, 0x3951: 0x005c5484, 0x3952: 0x005c8e84, 0x3953: 0xe00020fb, - 0x3954: 0xe00020fe, 0x3955: 0xe0002101, 0x3956: 0xe0002104, 0x3957: 0xe0002107, - 0x3958: 0xe000210a, 0x3959: 0xe000210d, 0x395a: 0xe0002110, 0x395b: 0xe0002113, - 0x395c: 0xe0002116, 0x395d: 0xe0002119, 0x395e: 0xe000211c, 0x395f: 0xe000211f, - 0x3960: 0xe00001cd, 0x3961: 0xe0000261, 0x3962: 0xe0000379, 0x3963: 0xe0000453, - 0x3964: 0xe0000528, 0x3965: 0xe00005f2, 0x3966: 0xe00006bd, 0x3967: 0xe0000765, - 0x3968: 0xe0000811, 0x3969: 0xe00008b6, 0x396a: 0x005c5c84, 0x396b: 0x005d2284, - // Block 0xe6, offset 0x3980 - 0x3980: 0x0033ec88, 0x3981: 0x4033ec20, 0x3982: 0x0033fa88, 0x3983: 0x4033fa20, - 0x3984: 0x00340488, 0x3985: 0x40340420, 0x3986: 0x00343488, 0x3987: 0x40343420, - 0x3988: 0x00344e88, 0x3989: 0x40344e20, 0x398a: 0x0035a288, 0x398b: 0x4035a220, - 0x398c: 0x0035f088, 0x398d: 0x4035f020, 0x398e: 0x00366e88, 0x398f: 0x40366e20, - 0x3990: 0x00367c88, 0x3991: 0x40367c20, 0x3992: 0x0036a688, 0x3993: 0x4036a620, - 0x3994: 0x0036c088, 0x3995: 0x4036c020, 0x3996: 0x0036c288, 0x3997: 0x4036c220, - 0x3998: 0x0036de88, 0x3999: 0x4036de20, 0x399a: 0x0036e888, 0x399b: 0x4036e820, - 0x399c: 0x0036f288, 0x399d: 0x4036f220, 0x399e: 0x00372488, 0x399f: 0x40372420, - 0x39a0: 0x00360a88, 0x39a1: 0x40360a20, 0x39a2: 0x00339e88, 0x39a3: 0x40339e20, - 0x39a4: 0x0034a288, 0x39a5: 0x4034a220, 0x39a6: 0x0034b888, 0x39a7: 0x4034b820, - 0x39a8: 0x0034ee8a, 0x39a9: 0x0034ee84, 0x39aa: 0x0034ee8a, 0x39ab: 0x0034ee84, - 0x39ac: 0x0034ee8a, 0x39ad: 0x0034ee84, 0x39ae: 0x0034ee84, 0x39af: 0xae608402, - 0x39b0: 0xa0000000, 0x39b1: 0xa0000000, 0x39b2: 0xa0000000, 0x39b3: 0x4004e020, - 0x39b4: 0x84e619e1, 0x39b5: 0x84e61a0a, 0x39b6: 0x84e61a1b, 0x39b7: 0x84e61ab9, - 0x39b8: 0x84e61b3a, 0x39b9: 0x84e61b3f, 0x39ba: 0x84e61b47, 0x39bb: 0x84e61af0, - 0x39bc: 0xae605f02, 0x39bd: 0xae605f02, 0x39be: 0x40054c20, 0x39bf: 0x40367220, - // Block 0xe7, offset 0x39c0 - 0x39c0: 0x00339488, 0x39c1: 0x40339420, 0x39c2: 0x00341288, 0x39c3: 0x40341220, - 0x39c4: 0x0033d288, 0x39c5: 0x4033d220, 0x39c6: 0x00364288, 0x39c7: 0x40364220, - 0x39c8: 0x00340e88, 0x39c9: 0x40340e20, 0x39ca: 0x00356088, 0x39cb: 0x40356020, - 0x39cc: 0x00355488, 0x39cd: 0x40355420, 0x39ce: 0x00360c88, 0x39cf: 0x40360c20, - 0x39d0: 0x00361688, 0x39d1: 0x40361620, 0x39d2: 0x00362088, 0x39d3: 0x40362020, - 0x39d4: 0x0035de88, 0x39d5: 0x4035de20, 0x39d6: 0x00366488, 0x39d7: 0x40366420, - 0x39df: 0x84e61b67, - 0x39e0: 0x405d9a20, 0x39e1: 0x405d9c20, 0x39e2: 0x405d9e20, 0x39e3: 0x405da020, - 0x39e4: 0x405da220, 0x39e5: 0x405da420, 0x39e6: 0x405da620, 0x39e7: 0x405da820, - 0x39e8: 0x405daa20, 0x39e9: 0x405dac20, 0x39ea: 0x405dae20, 0x39eb: 0x405db020, - 0x39ec: 0x405db220, 0x39ed: 0x405db420, 0x39ee: 0x405db620, 0x39ef: 0x405db820, - 0x39f0: 0x405dba20, 0x39f1: 0x405dbc20, 0x39f2: 0x405dbe20, 0x39f3: 0x405dc020, - 0x39f4: 0x405dc220, 0x39f5: 0x405dc420, 0x39f6: 0x405dc620, 0x39f7: 0x405dc820, - 0x39f8: 0x405dca20, 0x39f9: 0x405dcc20, 0x39fa: 0x405dce20, 0x39fb: 0x405dd020, - 0x39fc: 0x405dd220, 0x39fd: 0x405dd420, 0x39fe: 0x405dd620, 0x39ff: 0x405dd820, - // Block 0xe8, offset 0x3a00 - 0x3a00: 0x405dda20, 0x3a01: 0x405ddc20, 0x3a02: 0x405dde20, 0x3a03: 0x405de020, - 0x3a04: 0x405de220, 0x3a05: 0x405de420, 0x3a06: 0x405de620, 0x3a07: 0x405de820, - 0x3a08: 0x405dea20, 0x3a09: 0x405dec20, 0x3a0a: 0x405dee20, 0x3a0b: 0x405df020, - 0x3a0c: 0x405df220, 0x3a0d: 0x405df420, 0x3a0e: 0x405df620, 0x3a0f: 0x405df820, - 0x3a10: 0x405dfa20, 0x3a11: 0x405dfc20, 0x3a12: 0x405dfe20, 0x3a13: 0x405e0020, - 0x3a14: 0x405e0220, 0x3a15: 0x405e0420, 0x3a16: 0x405e0620, 0x3a17: 0x405e0820, - 0x3a18: 0x405e0a20, 0x3a19: 0x405e0c20, 0x3a1a: 0x405e0e20, 0x3a1b: 0x405e1020, - 0x3a1c: 0x405e1220, 0x3a1d: 0x405e1420, 0x3a1e: 0x405e1620, 0x3a1f: 0x405e1820, - 0x3a20: 0x405e1a20, 0x3a21: 0x405e1c20, 0x3a22: 0x405e1e20, 0x3a23: 0x405e2020, - 0x3a24: 0x405e2220, 0x3a25: 0x405e2420, 0x3a26: 0x405e2620, 0x3a27: 0x405e2820, - 0x3a28: 0x405e2a20, 0x3a29: 0x405e2c20, 0x3a2a: 0x405e2e20, 0x3a2b: 0x405e3020, - 0x3a2c: 0x405e3220, 0x3a2d: 0x405e3420, 0x3a2e: 0x405e3620, 0x3a2f: 0x405e3820, - 0x3a30: 0xae60ef02, 0x3a31: 0xae60f002, 0x3a32: 0x40038220, 0x3a33: 0x40030220, - 0x3a34: 0x4002b820, 0x3a35: 0x40025a20, 0x3a36: 0x40026a20, 0x3a37: 0x4002da20, - // Block 0xe9, offset 0x3a40 - 0x3a40: 0x4006ba20, 0x3a41: 0x4006bc20, 0x3a42: 0x4006be20, 0x3a43: 0x4006c020, - 0x3a44: 0x4006c220, 0x3a45: 0x4006c420, 0x3a46: 0x4006c620, 0x3a47: 0x4006c820, - 0x3a48: 0x4006ca20, 0x3a49: 0x4006cc20, 0x3a4a: 0x4006ce20, 0x3a4b: 0x4006d020, - 0x3a4c: 0x4006d220, 0x3a4d: 0x4006d420, 0x3a4e: 0x4006d620, 0x3a4f: 0x4006d820, - 0x3a50: 0x4006da20, 0x3a51: 0x4006dc20, 0x3a52: 0x4006de20, 0x3a53: 0x4006e020, - 0x3a54: 0x4006e220, 0x3a55: 0x4006e420, 0x3a56: 0x4006e620, 0x3a57: 0x4006e820, - 0x3a58: 0x4006ea20, 0x3a59: 0x4006ec20, 0x3a5a: 0x4006ee20, 0x3a5b: 0x4006f020, - 0x3a5c: 0x4006f220, 0x3a5d: 0x4006f420, 0x3a5e: 0x4006f620, 0x3a5f: 0x4006f820, - 0x3a60: 0x4006fa20, 0x3a61: 0x4006fc20, 0x3a62: 0x0031e488, 0x3a63: 0x4031e420, - 0x3a64: 0x0031f888, 0x3a65: 0x4031f820, 0x3a66: 0x002d8c88, 0x3a67: 0x402d8c20, - 0x3a68: 0xe0000fd5, 0x3a69: 0xe0000fd2, 0x3a6a: 0x0031ae88, 0x3a6b: 0x4031ae20, - 0x3a6c: 0x0031b088, 0x3a6d: 0x4031b020, 0x3a6e: 0x0031b288, 0x3a6f: 0x4031b220, - 0x3a70: 0x402d1020, 0x3a71: 0x402fee20, 0x3a72: 0xe00009cf, 0x3a73: 0xe00009cc, - 0x3a74: 0xe00009ff, 0x3a75: 0xe00009fc, 0x3a76: 0xe0000a05, 0x3a77: 0xe0000a02, - 0x3a78: 0xe0000a0e, 0x3a79: 0xe0000a0b, 0x3a7a: 0xe0000a15, 0x3a7b: 0xe0000a11, - 0x3a7c: 0xe0000a1c, 0x3a7d: 0xe0000a19, 0x3a7e: 0x002c6088, 0x3a7f: 0x402c6020, - // Block 0xea, offset 0x3a80 - 0x3a80: 0x002e1488, 0x3a81: 0x402e1420, 0x3a82: 0x002e1688, 0x3a83: 0x402e1620, - 0x3a84: 0x002e1888, 0x3a85: 0x402e1820, 0x3a86: 0x002e3288, 0x3a87: 0x402e3220, - 0x3a88: 0x002e3688, 0x3a89: 0x402e3620, 0x3a8a: 0x002f1888, 0x3a8b: 0x402f1820, - 0x3a8c: 0x002f0888, 0x3a8d: 0x402f0820, 0x3a8e: 0xe0000ea1, 0x3a8f: 0xe0000e9e, - 0x3a90: 0x002f3888, 0x3a91: 0x402f3820, 0x3a92: 0x002f4688, 0x3a93: 0x402f4620, - 0x3a94: 0x002f4888, 0x3a95: 0x402f4820, 0x3a96: 0x002f5e88, 0x3a97: 0x402f5e20, - 0x3a98: 0x002f6088, 0x3a99: 0x402f6020, 0x3a9a: 0x002f8a88, 0x3a9b: 0x402f8a20, - 0x3a9c: 0x002fe488, 0x3a9d: 0x402fe420, 0x3a9e: 0x0030c888, 0x3a9f: 0x4030c820, - 0x3aa0: 0xe00010c6, 0x3aa1: 0xe00010c3, 0x3aa2: 0x00316288, 0x3aa3: 0x40316220, - 0x3aa4: 0x00319088, 0x3aa5: 0x40319020, 0x3aa6: 0x00319288, 0x3aa7: 0x40319220, - 0x3aa8: 0x00319c88, 0x3aa9: 0x40319c20, 0x3aaa: 0x00319e88, 0x3aab: 0x40319e20, - 0x3aac: 0x0031a088, 0x3aad: 0x4031a020, 0x3aae: 0x0031a288, 0x3aaf: 0x4031a220, - 0x3ab0: 0x0031a294, 0x3ab1: 0x402c9420, 0x3ab2: 0x402e6620, 0x3ab3: 0x402e9c20, - 0x3ab4: 0x402ed820, 0x3ab5: 0x402fe020, 0x3ab6: 0x402fe220, 0x3ab7: 0x40306220, - 0x3ab8: 0x4031a420, 0x3ab9: 0xe0000abc, 0x3aba: 0xe0000ab9, 0x3abb: 0xe0000b92, - 0x3abc: 0xe0000b8f, 0x3abd: 0xe0000bdc, 0x3abe: 0x002d5688, 0x3abf: 0x402d5620, - // Block 0xeb, offset 0x3ac0 - 0x3ac0: 0x002e7088, 0x3ac1: 0x402e7020, 0x3ac2: 0xe0000f08, 0x3ac3: 0xe0000f05, - 0x3ac4: 0xe0000f6d, 0x3ac5: 0xe0000f6a, 0x3ac6: 0xe0000fb7, 0x3ac7: 0xe0000fb4, - 0x3ac8: 0x4006fe20, 0x3ac9: 0x40070020, 0x3aca: 0x40070220, 0x3acb: 0x0031e688, - 0x3acc: 0x4031e620, 0x3acd: 0x00308888, 0x3ace: 0x402e5c20, - 0x3ad0: 0x002ec488, 0x3ad1: 0x402ec420, 0x3ad2: 0x002c4c88, 0x3ad3: 0x402c4c20, - 0x3ae0: 0xe0000bd6, 0x3ae1: 0xe0000bd3, 0x3ae2: 0xe0000ca5, 0x3ae3: 0xe0000ca2, - 0x3ae4: 0xe0000d75, 0x3ae5: 0xe0000d72, 0x3ae6: 0xe0000ee2, 0x3ae7: 0xe0000edf, - 0x3ae8: 0xe0000f4d, 0x3ae9: 0xe0000f4a, 0x3aea: 0x002d8088, - // Block 0xec, offset 0x3b00 - 0x3b38: 0xf0001414, 0x3b39: 0xe0000e97, 0x3b3a: 0x4030a820, 0x3b3b: 0x402d2020, - 0x3b3c: 0x402f4a20, 0x3b3d: 0x402e9820, 0x3b3e: 0x402db220, 0x3b3f: 0x402e9a20, - // Block 0xed, offset 0x3b40 - 0x3b40: 0x4045aa20, 0x3b41: 0x4045ac20, 0x3b42: 0x4045ae20, 0x3b43: 0x4045b020, - 0x3b44: 0x4045b220, 0x3b45: 0x4045b420, 0x3b46: 0x820922db, 0x3b47: 0x4045b820, - 0x3b48: 0x4045ba20, 0x3b49: 0x4045bc20, 0x3b4a: 0x4045be20, 0x3b4b: 0xa000f302, - 0x3b4c: 0x4045c020, 0x3b4d: 0x4045c220, 0x3b4e: 0x4045c420, 0x3b4f: 0x4045c620, - 0x3b50: 0x4045c820, 0x3b51: 0x4045ca20, 0x3b52: 0x4045cc20, 0x3b53: 0x4045ce20, - 0x3b54: 0x4045d020, 0x3b55: 0x4045d220, 0x3b56: 0x4045d420, 0x3b57: 0x4045d620, - 0x3b58: 0x4045d820, 0x3b59: 0x4045da20, 0x3b5a: 0x4045dc20, 0x3b5b: 0x4045de20, - 0x3b5c: 0x4045e020, 0x3b5d: 0x4045e220, 0x3b5e: 0x4045e420, 0x3b5f: 0x4045e620, - 0x3b60: 0x4045e820, 0x3b61: 0x4045ea20, 0x3b62: 0x4045ec20, 0x3b63: 0x4045ee20, - 0x3b64: 0x4045f020, 0x3b65: 0x4045f220, 0x3b66: 0x4045f420, 0x3b67: 0x4045f620, - 0x3b68: 0x40075020, 0x3b69: 0x40075220, 0x3b6a: 0x40075420, 0x3b6b: 0x40075620, - 0x3b70: 0x40284820, 0x3b71: 0x40284a20, 0x3b72: 0x40284c20, 0x3b73: 0x40284e20, - 0x3b74: 0x40285020, 0x3b75: 0x40285220, 0x3b76: 0x40075820, 0x3b77: 0x40075a20, - 0x3b78: 0x4027f020, 0x3b79: 0x40075c20, - // Block 0xee, offset 0x3b80 - 0x3b80: 0x404baa20, 0x3b81: 0x404bac20, 0x3b82: 0x404bae20, 0x3b83: 0x404bb020, - 0x3b84: 0x404bb220, 0x3b85: 0x404bb420, 0x3b86: 0x404bb620, 0x3b87: 0x404bb820, - 0x3b88: 0x404bc220, 0x3b89: 0x404bc420, 0x3b8a: 0x404bc620, 0x3b8b: 0x404bc820, - 0x3b8c: 0x404bca20, 0x3b8d: 0x404bcc20, 0x3b8e: 0x404bce20, 0x3b8f: 0x404bd020, - 0x3b90: 0x404bd220, 0x3b91: 0x404bd420, 0x3b92: 0x404bd620, 0x3b93: 0x404bd820, - 0x3b94: 0x404bdc20, 0x3b95: 0x404bde20, 0x3b96: 0x404be020, 0x3b97: 0x404be220, - 0x3b98: 0x404be820, 0x3b99: 0x404bee20, 0x3b9a: 0x404bf020, 0x3b9b: 0x404bf420, - 0x3b9c: 0x404bf620, 0x3b9d: 0x404bfc20, 0x3b9e: 0x404c0620, 0x3b9f: 0x404c0820, - 0x3ba0: 0x404c0a20, 0x3ba1: 0x404c0c20, 0x3ba2: 0x404bfe20, 0x3ba3: 0x404c0020, - 0x3ba4: 0x404c0220, 0x3ba5: 0x404c0420, 0x3ba6: 0x404c0e20, 0x3ba7: 0x404bda20, - 0x3ba8: 0x404be420, 0x3ba9: 0x404bba20, 0x3baa: 0x404bbc20, 0x3bab: 0x404bbe20, - 0x3bac: 0x404bc020, 0x3bad: 0x404be620, 0x3bae: 0x404bf220, 0x3baf: 0x404bf820, - 0x3bb0: 0x404bfa20, 0x3bb1: 0x404bea20, 0x3bb2: 0x404bec20, 0x3bb3: 0x404c1020, - 0x3bb4: 0x4005e820, 0x3bb5: 0x4005ea20, 0x3bb6: 0x40031820, 0x3bb7: 0x40031a20, - // Block 0xef, offset 0x3bc0 - 0x3bc0: 0xa000f302, 0x3bc1: 0xa000f402, 0x3bc2: 0x4045f820, 0x3bc3: 0x4045fa20, - 0x3bc4: 0x4045fc20, 0x3bc5: 0x4045fe20, 0x3bc6: 0x40460020, 0x3bc7: 0x40460220, - 0x3bc8: 0x40460420, 0x3bc9: 0x40460620, 0x3bca: 0x40460820, 0x3bcb: 0x40460a20, - 0x3bcc: 0x40460c20, 0x3bcd: 0x40460e20, 0x3bce: 0x40461020, 0x3bcf: 0x40461220, - 0x3bd0: 0x40461420, 0x3bd1: 0x40461620, 0x3bd2: 0x40461820, 0x3bd3: 0x40461a20, - 0x3bd4: 0x40461c20, 0x3bd5: 0x40461e20, 0x3bd6: 0x40462020, 0x3bd7: 0x40462220, - 0x3bd8: 0x40462420, 0x3bd9: 0x40462620, 0x3bda: 0x40462820, 0x3bdb: 0x40462a20, - 0x3bdc: 0x40462c20, 0x3bdd: 0x40462e20, 0x3bde: 0x40463020, 0x3bdf: 0x40463220, - 0x3be0: 0x40463420, 0x3be1: 0x40463620, 0x3be2: 0x40463820, 0x3be3: 0x40463a20, - 0x3be4: 0x40463c20, 0x3be5: 0x40463e20, 0x3be6: 0x40464020, 0x3be7: 0x40464220, - 0x3be8: 0x40464420, 0x3be9: 0x40464620, 0x3bea: 0x40464820, 0x3beb: 0x40464a20, - 0x3bec: 0x40464c20, 0x3bed: 0x40464e20, 0x3bee: 0x40465020, 0x3bef: 0x40465220, - 0x3bf0: 0x40465420, 0x3bf1: 0x40465620, 0x3bf2: 0x40465820, 0x3bf3: 0x40465a20, - 0x3bf4: 0x40465c20, 0x3bf5: 0x40465e20, 0x3bf6: 0x40466020, 0x3bf7: 0x40466220, - 0x3bf8: 0x40466420, 0x3bf9: 0x40466620, 0x3bfa: 0x40466820, 0x3bfb: 0x40466a20, - 0x3bfc: 0x40466c20, 0x3bfd: 0x40466e20, 0x3bfe: 0x40467020, 0x3bff: 0x40467220, - // Block 0xf0, offset 0x3c00 - 0x3c00: 0x40467420, 0x3c01: 0x40467620, 0x3c02: 0x40467820, 0x3c03: 0x40467a20, - 0x3c04: 0x8209233e, - 0x3c0e: 0x40031020, 0x3c0f: 0x40031220, - 0x3c10: 0xe000018b, 0x3c11: 0xe000021c, 0x3c12: 0xe0000337, 0x3c13: 0xe0000411, - 0x3c14: 0xe00004e6, 0x3c15: 0xe00005b0, 0x3c16: 0xe000067b, 0x3c17: 0xe0000723, - 0x3c18: 0xe00007cf, 0x3c19: 0xe0000874, - 0x3c20: 0xae600000, 0x3c21: 0xae600000, 0x3c22: 0xae600000, 0x3c23: 0xae600000, - 0x3c24: 0xae600000, 0x3c25: 0xae600000, 0x3c26: 0xae600000, 0x3c27: 0xae600000, - 0x3c28: 0xae600000, 0x3c29: 0xae600000, 0x3c2a: 0xae600000, 0x3c2b: 0xae600000, - 0x3c2c: 0xae600000, 0x3c2d: 0xae600000, 0x3c2e: 0xae600000, 0x3c2f: 0xae600000, - 0x3c30: 0xae600000, 0x3c31: 0xae600000, 0x3c32: 0x40404620, 0x3c33: 0x00404684, - 0x3c34: 0x00404684, 0x3c35: 0x00404684, 0x3c36: 0x00404684, 0x3c37: 0x00404684, - 0x3c38: 0x40056e20, 0x3c39: 0x40057020, 0x3c3a: 0x40057220, 0x3c3b: 0x40404820, - // Block 0xf1, offset 0x3c40 - 0x3c40: 0xe00001a9, 0x3c41: 0xe000023d, 0x3c42: 0xe0000355, 0x3c43: 0xe000042f, - 0x3c44: 0xe0000504, 0x3c45: 0xe00005ce, 0x3c46: 0xe0000699, 0x3c47: 0xe0000741, - 0x3c48: 0xe00007ed, 0x3c49: 0xe0000892, 0x3c4a: 0x404dd220, 0x3c4b: 0x404dd420, - 0x3c4c: 0x404dd620, 0x3c4d: 0x404dd820, 0x3c4e: 0x404dda20, 0x3c4f: 0x404ddc20, - 0x3c50: 0x404dde20, 0x3c51: 0x404de020, 0x3c52: 0x404de220, 0x3c53: 0x404de420, - 0x3c54: 0x404de620, 0x3c55: 0x404de820, 0x3c56: 0x404dea20, 0x3c57: 0x404dec20, - 0x3c58: 0x404dee20, 0x3c59: 0x404df020, 0x3c5a: 0x404df220, 0x3c5b: 0x404df420, - 0x3c5c: 0x404df620, 0x3c5d: 0x404df820, 0x3c5e: 0x404dfa20, 0x3c5f: 0x404dfc20, - 0x3c60: 0x404dfe20, 0x3c61: 0x404e0020, 0x3c62: 0x404e0220, 0x3c63: 0x404e0420, - 0x3c64: 0x404e0620, 0x3c65: 0x404e0820, 0x3c66: 0x404e0a20, 0x3c67: 0x404e0c20, - 0x3c68: 0x404e0e20, 0x3c69: 0x404e1020, 0x3c6a: 0x404e1220, 0x3c6b: 0xadc10f02, - 0x3c6c: 0xadc11002, 0x3c6d: 0xadc11102, 0x3c6e: 0x4005f420, 0x3c6f: 0x40032020, - 0x3c70: 0x404d8a20, 0x3c71: 0x404d8c20, 0x3c72: 0x404d8e20, 0x3c73: 0x404d9020, - 0x3c74: 0x404d9220, 0x3c75: 0x404d9420, 0x3c76: 0x404d9620, 0x3c77: 0x404d9820, - 0x3c78: 0x404d9a20, 0x3c79: 0x404d9c20, 0x3c7a: 0x404d9e20, 0x3c7b: 0x404da020, - 0x3c7c: 0x404da220, 0x3c7d: 0x404da420, 0x3c7e: 0x404da620, 0x3c7f: 0x404da820, - // Block 0xf2, offset 0x3c80 - 0x3c80: 0x404daa20, 0x3c81: 0x404dac20, 0x3c82: 0x404dae20, 0x3c83: 0x404db020, - 0x3c84: 0x404db220, 0x3c85: 0x404db420, 0x3c86: 0x404db620, 0x3c87: 0x404db820, - 0x3c88: 0x404dba20, 0x3c89: 0x404dbc20, 0x3c8a: 0x404dbe20, 0x3c8b: 0x404dc020, - 0x3c8c: 0x404dc220, 0x3c8d: 0x404dc420, 0x3c8e: 0x404dc620, 0x3c8f: 0x404dc820, - 0x3c90: 0x404dca20, 0x3c91: 0x404dcc20, 0x3c92: 0x404dce20, 0x3c93: 0x820926e8, - 0x3c9f: 0x40038420, - 0x3ca0: 0x40636a20, 0x3ca1: 0x40636c20, 0x3ca2: 0x40636e20, 0x3ca3: 0x40637020, - 0x3ca4: 0x40637220, 0x3ca5: 0x40637420, 0x3ca6: 0x40637620, 0x3ca7: 0x40637820, - 0x3ca8: 0x40637a20, 0x3ca9: 0x40637c20, 0x3caa: 0x40637e20, 0x3cab: 0x40638020, - 0x3cac: 0x40638220, 0x3cad: 0x40638420, 0x3cae: 0x40638620, 0x3caf: 0x40638820, - 0x3cb0: 0x40638a20, 0x3cb1: 0x40638c20, 0x3cb2: 0x40638e20, 0x3cb3: 0x40639020, - 0x3cb4: 0x40639220, 0x3cb5: 0x40639420, 0x3cb6: 0x40639620, 0x3cb7: 0x40639820, - 0x3cb8: 0x40639a20, 0x3cb9: 0x40639c20, 0x3cba: 0x40639e20, 0x3cbb: 0x4063a020, - 0x3cbc: 0x4063a220, - // Block 0xf3, offset 0x3cc0 - 0x3cc0: 0xa000f202, 0x3cc1: 0xa000f302, 0x3cc2: 0xa000f802, 0x3cc3: 0xa000f402, - 0x3cc4: 0x4052b220, 0x3cc5: 0x4052b420, 0x3cc6: 0x4052b620, 0x3cc7: 0x4052b820, - 0x3cc8: 0x4052ba20, 0x3cc9: 0x4052bc20, 0x3cca: 0x4052be20, 0x3ccb: 0x4052c020, - 0x3ccc: 0x4052c220, 0x3ccd: 0x4052c420, 0x3cce: 0x4052c620, 0x3ccf: 0x4052c820, - 0x3cd0: 0x4052ca20, 0x3cd1: 0x4052cc20, 0x3cd2: 0x4052ce20, 0x3cd3: 0x4052d020, - 0x3cd4: 0x4052d220, 0x3cd5: 0x4052d420, 0x3cd6: 0x4052d620, 0x3cd7: 0x4052d820, - 0x3cd8: 0x4052da20, 0x3cd9: 0x4052dc20, 0x3cda: 0x4052de20, 0x3cdb: 0x4052e020, - 0x3cdc: 0x4052e220, 0x3cdd: 0x4052e420, 0x3cde: 0x4052e620, 0x3cdf: 0x4052e820, - 0x3ce0: 0x4052ea20, 0x3ce1: 0x4052ec20, 0x3ce2: 0x4052ee20, 0x3ce3: 0x4052f020, - 0x3ce4: 0x4052f220, 0x3ce5: 0x4052f420, 0x3ce6: 0x4052f620, 0x3ce7: 0x4052f820, - 0x3ce8: 0x4052fa20, 0x3ce9: 0x4052fc20, 0x3cea: 0x4052fe20, 0x3ceb: 0x40530220, - 0x3cec: 0x00530284, 0x3ced: 0x40530620, 0x3cee: 0x40530820, 0x3cef: 0x40530a20, - 0x3cf0: 0x40530c20, 0x3cf1: 0x40530e20, 0x3cf2: 0x40531020, 0x3cf3: 0xa070f102, - 0x3cf4: 0x40531220, 0x3cf5: 0x40532420, 0x3cf6: 0x40531620, 0x3cf7: 0x40531820, - 0x3cf8: 0x40531a20, 0x3cf9: 0x40531c20, 0x3cfa: 0x40532020, 0x3cfb: 0x40532220, - 0x3cfc: 0x40531420, 0x3cfd: 0x40531e20, 0x3cfe: 0x40530020, 0x3cff: 0x40530420, - // Block 0xf4, offset 0x3d00 - 0x3d00: 0x82092993, 0x3d01: 0x40036e20, 0x3d02: 0x40037020, 0x3d03: 0x40037220, - 0x3d04: 0x40037420, 0x3d05: 0x40037620, 0x3d06: 0x40037820, 0x3d07: 0x4002b020, - 0x3d08: 0x40033620, 0x3d09: 0x40033820, 0x3d0a: 0x40037a20, 0x3d0b: 0x40037c20, - 0x3d0c: 0x40037e20, 0x3d0d: 0x40038020, 0x3d0f: 0x4027c020, - 0x3d10: 0xe00001c1, 0x3d11: 0xe0000255, 0x3d12: 0xe000036d, 0x3d13: 0xe0000447, - 0x3d14: 0xe000051c, 0x3d15: 0xe00005e6, 0x3d16: 0xe00006b1, 0x3d17: 0xe0000759, - 0x3d18: 0xe0000805, 0x3d19: 0xe00008aa, - 0x3d1e: 0x4005f620, 0x3d1f: 0x4005f820, - // Block 0xf5, offset 0x3d40 - 0x3d40: 0x40519c20, 0x3d41: 0x40519e20, 0x3d42: 0x4051a020, 0x3d43: 0x4051a220, - 0x3d44: 0x4051a420, 0x3d45: 0x4051a620, 0x3d46: 0x4051a820, 0x3d47: 0x4051aa20, - 0x3d48: 0x4051ac20, 0x3d49: 0x4051ae20, 0x3d4a: 0x4051b020, 0x3d4b: 0x4051b220, - 0x3d4c: 0x4051b420, 0x3d4d: 0x4051b620, 0x3d4e: 0x4051b820, 0x3d4f: 0x4051ba20, - 0x3d50: 0x4051bc20, 0x3d51: 0x4051be20, 0x3d52: 0x4051c020, 0x3d53: 0x4051c220, - 0x3d54: 0x4051c420, 0x3d55: 0x4051c620, 0x3d56: 0x4051c820, 0x3d57: 0x4051ca20, - 0x3d58: 0x4051cc20, 0x3d59: 0x4051ce20, 0x3d5a: 0x4051d020, 0x3d5b: 0x4051d220, - 0x3d5c: 0x4051d420, 0x3d5d: 0x4051d620, 0x3d5e: 0x4051d820, 0x3d5f: 0x4051da20, - 0x3d60: 0x4051dc20, 0x3d61: 0x4051de20, 0x3d62: 0x4051e020, 0x3d63: 0x4051e220, - 0x3d64: 0x4051e420, 0x3d65: 0x4051e620, 0x3d66: 0x4051e820, 0x3d67: 0x4051ea20, - 0x3d68: 0x4051ec20, 0x3d69: 0x4051f620, 0x3d6a: 0x4051f820, 0x3d6b: 0x4051fa20, - 0x3d6c: 0x4051fc20, 0x3d6d: 0x4051fe20, 0x3d6e: 0x40520020, 0x3d6f: 0x40520220, - 0x3d70: 0x40520420, 0x3d71: 0x40520620, 0x3d72: 0x40520820, 0x3d73: 0x4051ee20, - 0x3d74: 0x4051f020, 0x3d75: 0x4051f220, 0x3d76: 0x4051f420, - // Block 0xf6, offset 0x3d80 - 0x3d80: 0x40520a20, 0x3d81: 0x40520c20, 0x3d82: 0x40520e20, 0x3d83: 0x40521020, - 0x3d84: 0x40521220, 0x3d85: 0x40521420, 0x3d86: 0x40521620, 0x3d87: 0x40521820, - 0x3d88: 0x40521a20, 0x3d89: 0x40521c20, 0x3d8a: 0x40521e20, 0x3d8b: 0x40522020, - 0x3d8c: 0x40522220, 0x3d8d: 0x40522420, - 0x3d90: 0xe00001bb, 0x3d91: 0xe000024f, 0x3d92: 0xe0000367, 0x3d93: 0xe0000441, - 0x3d94: 0xe0000516, 0x3d95: 0xe00005e0, 0x3d96: 0xe00006ab, 0x3d97: 0xe0000753, - 0x3d98: 0xe00007ff, 0x3d99: 0xe00008a4, - 0x3d9c: 0x4005fa20, 0x3d9d: 0x40033a20, 0x3d9e: 0x40033c20, 0x3d9f: 0x40033e20, - 0x3da0: 0x404e2020, 0x3da1: 0x404e2c20, 0x3da2: 0x404e3020, 0x3da3: 0x404e3420, - 0x3da4: 0x404e3e20, 0x3da5: 0x404e4620, 0x3da6: 0x404e4c20, 0x3da7: 0x404e5020, - 0x3da8: 0x404e5420, 0x3da9: 0x404e5820, 0x3daa: 0x404e6820, 0x3dab: 0x404e6e20, - 0x3dac: 0x404ea820, 0x3dad: 0x404eae20, 0x3dae: 0x404eb220, 0x3daf: 0x404e7a20, - 0x3db0: 0x4027c220, 0x3db1: 0x404eb420, 0x3db2: 0x404e3820, 0x3db3: 0x404e8e20, - 0x3db4: 0x404f3a20, 0x3db5: 0x404f3c20, 0x3db6: 0x404f3e20, 0x3db7: 0x4007ac20, - 0x3db8: 0x4007ae20, 0x3db9: 0x4007b020, 0x3dba: 0x404e9020, 0x3dbb: 0x404f3820, - // Block 0xf7, offset 0x3dc0 - 0x3dc0: 0x4049f020, 0x3dc1: 0x4049f220, 0x3dc2: 0x4049f420, 0x3dc3: 0x4049f620, - 0x3dc4: 0x4049f820, 0x3dc5: 0x4049fa20, 0x3dc6: 0x4049fc20, 0x3dc7: 0x4049fe20, - 0x3dc8: 0x404a0020, 0x3dc9: 0x404a0220, 0x3dca: 0x404a0420, 0x3dcb: 0x404a0620, - 0x3dcc: 0x404a0820, 0x3dcd: 0x404a0a20, 0x3dce: 0x404a0c20, 0x3dcf: 0x404a0e20, - 0x3dd0: 0x404a1020, 0x3dd1: 0x404a1220, 0x3dd2: 0x404a1420, 0x3dd3: 0x404a1620, - 0x3dd4: 0x404a1820, 0x3dd5: 0x404a1a20, 0x3dd6: 0x404a1c20, 0x3dd7: 0x404a1e20, - 0x3dd8: 0x404a2020, 0x3dd9: 0x404a2220, 0x3dda: 0x404a2420, 0x3ddb: 0x404a2620, - 0x3ddc: 0x404a2820, 0x3ddd: 0x404a2a20, 0x3dde: 0x404a2c20, 0x3ddf: 0x404a2e20, - 0x3de0: 0x404a3020, 0x3de1: 0x404a3220, 0x3de2: 0x404a3420, 0x3de3: 0x404a3620, - 0x3de4: 0x404a3820, 0x3de5: 0x404a3a20, 0x3de6: 0x404a3c20, 0x3de7: 0x404a3e20, - 0x3de8: 0x404a4020, 0x3de9: 0x404a4220, 0x3dea: 0x404a4420, 0x3deb: 0x404a4620, - 0x3dec: 0x404a4820, 0x3ded: 0x404a4a20, 0x3dee: 0x404a4c20, 0x3def: 0x404a4e20, - 0x3df0: 0x82e62528, 0x3df1: 0x404a5220, 0x3df2: 0x82e6252a, 0x3df3: 0x82e6252b, - 0x3df4: 0x82dc252c, 0x3df5: 0xc20e0671, 0x3df6: 0xc23f0671, 0x3df7: 0x82e6252f, - 0x3df8: 0x82e62530, 0x3df9: 0xc2700671, 0x3dfa: 0x404a6420, 0x3dfb: 0xc2a10671, - 0x3dfc: 0xc2d20671, 0x3dfd: 0x404a6a20, 0x3dfe: 0x82e62536, 0x3dff: 0xae610c02, - // Block 0xf8, offset 0x3e00 - 0x3e00: 0x404a6e20, 0x3e01: 0xae610d02, 0x3e02: 0x404a7020, - 0x3e1b: 0x404a7220, - 0x3e1c: 0x404a7420, 0x3e1d: 0x4027c420, 0x3e1e: 0x40057e20, 0x3e1f: 0x40058020, - 0x3e20: 0x40456420, 0x3e21: 0x40456620, 0x3e22: 0x40456820, 0x3e23: 0x40456a20, - 0x3e24: 0x40456c20, 0x3e25: 0x40456e20, 0x3e26: 0x40457020, 0x3e27: 0x40457220, - 0x3e28: 0x40457420, 0x3e29: 0x40457620, 0x3e2a: 0x40457820, 0x3e2b: 0x40458a20, - 0x3e2c: 0x40458c20, 0x3e2d: 0x40458e20, 0x3e2e: 0x40459020, 0x3e2f: 0x40459220, - 0x3e30: 0x40034020, 0x3e31: 0x4002dc20, 0x3e32: 0x40452c20, 0x3e33: 0x4027c620, - 0x3e34: 0x4027c820, 0x3e35: 0x40459420, 0x3e36: 0x820922d4, - // Block 0xf9, offset 0x3e40 - 0x3e41: 0x403cae20, 0x3e42: 0x403cb020, 0x3e43: 0x403cb220, - 0x3e44: 0x403cb420, 0x3e45: 0x403cb620, 0x3e46: 0x403cb820, - 0x3e49: 0x403e3c20, 0x3e4a: 0x403e3e20, 0x3e4b: 0x403e4020, - 0x3e4c: 0x403e4220, 0x3e4d: 0x403e4420, 0x3e4e: 0x403e4620, - 0x3e51: 0x403dfe20, 0x3e52: 0x403e0020, 0x3e53: 0x403e0220, - 0x3e54: 0x403e0420, 0x3e55: 0x403e0620, 0x3e56: 0x403e0820, - 0x3e60: 0x403ec220, 0x3e61: 0x403ec420, 0x3e62: 0x403ec620, 0x3e63: 0x403ec820, - 0x3e64: 0x403eca20, 0x3e65: 0x403ecc20, 0x3e66: 0x403ece20, - 0x3e68: 0x403ef220, 0x3e69: 0x403ef420, 0x3e6a: 0x403ef620, 0x3e6b: 0x403ef820, - 0x3e6c: 0x403efa20, 0x3e6d: 0x403efc20, 0x3e6e: 0x403efe20, - // Block 0xfa, offset 0x3e80 - 0x3e80: 0x40452e20, 0x3e81: 0x40453020, 0x3e82: 0x40453220, 0x3e83: 0x40453420, - 0x3e84: 0x40453620, 0x3e85: 0x40453820, 0x3e86: 0x40453a20, 0x3e87: 0x40453c20, - 0x3e88: 0x40453e20, 0x3e89: 0x40454020, 0x3e8a: 0x40454220, 0x3e8b: 0x40454420, - 0x3e8c: 0x40454620, 0x3e8d: 0x40454820, 0x3e8e: 0x40454a20, 0x3e8f: 0x40454c20, - 0x3e90: 0x40454e20, 0x3e91: 0x40455020, 0x3e92: 0x40455220, 0x3e93: 0x40455420, - 0x3e94: 0x40455620, 0x3e95: 0x40455820, 0x3e96: 0x40455a20, 0x3e97: 0x40455c20, - 0x3e98: 0x40455e20, 0x3e99: 0x40456020, 0x3e9a: 0x40456220, 0x3e9b: 0x40459620, - 0x3e9c: 0x40459820, 0x3e9d: 0x40459a20, 0x3e9e: 0x40459c20, 0x3e9f: 0x40459e20, - 0x3ea0: 0x4045a020, 0x3ea1: 0x4045a220, 0x3ea2: 0x4045a420, 0x3ea3: 0x40457a20, - 0x3ea4: 0x40457c20, 0x3ea5: 0x40457e20, 0x3ea6: 0x40458020, 0x3ea7: 0x40458220, - 0x3ea8: 0x40458420, 0x3ea9: 0x40458620, 0x3eaa: 0x40458820, 0x3eab: 0x40034220, - 0x3eac: 0xa000fa02, 0x3ead: 0x820922d3, - 0x3eb0: 0xe0000188, 0x3eb1: 0xe0000219, 0x3eb2: 0xe0000334, 0x3eb3: 0xe000040e, - 0x3eb4: 0xe00004e3, 0x3eb5: 0xe00005ad, 0x3eb6: 0xe0000678, 0x3eb7: 0xe0000720, - 0x3eb8: 0xe00007cc, 0x3eb9: 0xe0000871, - // Block 0xfb, offset 0x3ec0 - 0x3ef0: 0x40643620, 0x3ef1: 0x40643820, 0x3ef2: 0x40643a20, 0x3ef3: 0x40643c20, - 0x3ef4: 0x40643e20, 0x3ef5: 0x40644020, 0x3ef6: 0x40644220, 0x3ef7: 0x40644420, - 0x3ef8: 0x40644620, 0x3ef9: 0x40644820, 0x3efa: 0x40644a20, 0x3efb: 0x40644c20, - 0x3efc: 0x40644e20, 0x3efd: 0x40645020, 0x3efe: 0x40645220, 0x3eff: 0x40645420, - // Block 0xfc, offset 0x3f00 - 0x3f00: 0x40645620, 0x3f01: 0x40645820, 0x3f02: 0x40645a20, 0x3f03: 0x40645c20, - 0x3f04: 0x40645e20, 0x3f05: 0x40646020, 0x3f06: 0x40646220, - 0x3f0b: 0x40651420, - 0x3f0c: 0x40651620, 0x3f0d: 0x40651820, 0x3f0e: 0x40651a20, 0x3f0f: 0x40651c20, - 0x3f10: 0x40651e20, 0x3f11: 0x40652020, 0x3f12: 0x40652220, 0x3f13: 0x40652420, - 0x3f14: 0x40652620, 0x3f15: 0x40652820, 0x3f16: 0x40652a20, 0x3f17: 0x40652c20, - 0x3f18: 0x40652e20, 0x3f19: 0x40653020, 0x3f1a: 0x40653220, 0x3f1b: 0x40653420, - 0x3f1c: 0x40653620, 0x3f1d: 0x40653820, 0x3f1e: 0x40653a20, 0x3f1f: 0x40653c20, - 0x3f20: 0x40653e20, 0x3f21: 0x40654020, 0x3f22: 0x40654220, 0x3f23: 0x40654420, - 0x3f24: 0x40654620, 0x3f25: 0x40654820, 0x3f26: 0x40654a20, 0x3f27: 0x40654c20, - 0x3f28: 0x40654e20, 0x3f29: 0x40655020, 0x3f2a: 0x40655220, 0x3f2b: 0x40655420, - 0x3f2c: 0x40655620, 0x3f2d: 0x40655820, 0x3f2e: 0x40655a20, 0x3f2f: 0x40655c20, - 0x3f30: 0x40655e20, 0x3f31: 0x40656020, 0x3f32: 0x40656220, 0x3f33: 0x40656420, - 0x3f34: 0x40656620, 0x3f35: 0x40656820, 0x3f36: 0x40656a20, 0x3f37: 0x40656c20, - 0x3f38: 0x40656e20, 0x3f39: 0x40657020, 0x3f3a: 0x40657220, 0x3f3b: 0x40657420, - // Block 0xfd, offset 0x3f40 - 0x3f40: 0x43189020, 0x3f41: 0x42cde820, 0x3f42: 0x431d9420, 0x3f43: 0x43199020, - 0x3f44: 0x42dda220, 0x3f45: 0x429c6420, 0x3f46: 0x42a7ca20, 0x3f47: 0x433f3820, - 0x3f48: 0x433f3820, 0x3f49: 0x42b2a220, 0x3f4a: 0x4323a220, 0x3f4b: 0x42ab0e20, - 0x3f4c: 0x42b29020, 0x3f4d: 0x42c3ec20, 0x3f4e: 0x42ecd220, 0x3f4f: 0x42ff0a20, - 0x3f50: 0x430c7e20, 0x3f51: 0x430f7420, 0x3f52: 0x4311f020, 0x3f53: 0x43211e20, - 0x3f54: 0x42d40420, 0x3f55: 0x42da3620, 0x3f56: 0x42e1b220, 0x3f57: 0x42e7bc20, - 0x3f58: 0x43087a20, 0x3f59: 0x4322d420, 0x3f5a: 0x4333e220, 0x3f5b: 0x429d0420, - 0x3f5c: 0x42a6ea20, 0x3f5d: 0x42d60820, 0x3f5e: 0x42e43620, 0x3f5f: 0x430c5a20, - 0x3f60: 0x433c3c20, 0x3f61: 0x42baa020, 0x3f62: 0x42dfd620, 0x3f63: 0x430b9a20, - 0x3f64: 0x4312c820, 0x3f65: 0x42c59220, 0x3f66: 0x4303b020, 0x3f67: 0x43103e20, - 0x3f68: 0x42bd9420, 0x3f69: 0x42ce2e20, 0x3f6a: 0x42dad420, 0x3f6b: 0x42e5f820, - 0x3f6c: 0x43219c20, 0x3f6d: 0x429f0c20, 0x3f6e: 0x42a36e20, 0x3f6f: 0x42a5bc20, - 0x3f70: 0x42c98820, 0x3f71: 0x42d5a620, 0x3f72: 0x42e42020, 0x3f73: 0x42edce20, - 0x3f74: 0x43000220, 0x3f75: 0x430c0c20, 0x3f76: 0x430cb820, 0x3f77: 0x431bde20, - 0x3f78: 0x432e6420, 0x3f79: 0x4336de20, 0x3f7a: 0x433bf420, 0x3f7b: 0x42f11820, - 0x3f7c: 0x42f2fe20, 0x3f7d: 0x42fb4020, 0x3f7e: 0x43079220, 0x3f7f: 0x43260820, - // Block 0xfe, offset 0x3f80 - 0x3f80: 0x433cfe20, 0x3f81: 0x4315ac20, 0x3f82: 0x42b1be20, 0x3f83: 0x42be0820, - 0x3f84: 0x42f8c020, 0x3f85: 0x4300fc20, 0x3f86: 0x42e4c420, 0x3f87: 0x42f19420, - 0x3f88: 0x43198420, 0x3f89: 0x432dee20, 0x3f8a: 0x42b1b020, 0x3f8b: 0x42b8c420, - 0x3f8c: 0x42d42620, 0x3f8d: 0x42dbb420, 0x3f8e: 0x42de1e20, 0x3f8f: 0x42fa5e20, - 0x3f90: 0x42fc6e20, 0x3f91: 0x432c9620, 0x3f92: 0x42a5a420, 0x3f93: 0x43011620, - 0x3f94: 0x42a3b820, 0x3f95: 0x42a39820, 0x3f96: 0x42f43820, 0x3f97: 0x42fb7c20, - 0x3f98: 0x4307e220, 0x3f99: 0x432cea20, 0x3f9a: 0x43170020, 0x3f9b: 0x42c59e20, - 0x3f9c: 0x42d40420, 0x3f9d: 0x4315fc20, 0x3f9e: 0x429c7220, 0x3f9f: 0x42b7ce20, - 0x3fa0: 0x42c02420, 0x3fa1: 0x42e70e20, 0x3fa2: 0x42eae020, 0x3fa3: 0x42a62e20, - 0x3fa4: 0x42f1f620, 0x3fa5: 0x429f7e20, 0x3fa6: 0x42bf5220, 0x3fa7: 0x429c1a20, - 0x3fa8: 0x42d99820, 0x3fa9: 0x42caf020, 0x3faa: 0x42fa4420, 0x3fab: 0x42a78620, - 0x3fac: 0x42b0bc20, 0x3fad: 0x42ee0220, 0x3fae: 0x43089220, 0x3faf: 0x43155420, - 0x3fb0: 0x42d77420, 0x3fb1: 0x431f6020, 0x3fb2: 0x42d91020, 0x3fb3: 0x42c5fc20, - 0x3fb4: 0x4305ca20, 0x3fb5: 0x42c74020, 0x3fb6: 0x42eaca20, 0x3fb7: 0x429d5c20, - 0x3fb8: 0x42a2d220, 0x3fb9: 0x42a39220, 0x3fba: 0x42d10220, 0x3fbb: 0x42f9ce20, - 0x3fbc: 0x4304de20, 0x3fbd: 0x4315a420, 0x3fbe: 0x43239e20, 0x3fbf: 0x42a5ea20, - // Block 0xff, offset 0x3fc0 - 0x3fc0: 0x42a88420, 0x3fc1: 0x42b2e620, 0x3fc2: 0x42bdd820, 0x3fc3: 0x42cb8a20, - 0x3fc4: 0x42dffc20, 0x3fc5: 0x42f25420, 0x3fc6: 0x432b5a20, 0x3fc7: 0x4334d420, - 0x3fc8: 0x433d2e20, 0x3fc9: 0x433d9c20, 0x3fca: 0x42a53620, 0x3fcb: 0x42cd8c20, - 0x3fcc: 0x42d6ee20, 0x3fcd: 0x431ec420, 0x3fce: 0x42bce820, 0x3fcf: 0x42c32020, - 0x3fd0: 0x42c40020, 0x3fd1: 0x42c93420, 0x3fd2: 0x42de4620, 0x3fd3: 0x42e29220, - 0x3fd4: 0x42e91220, 0x3fd5: 0x42f39420, 0x3fd6: 0x42fbe820, 0x3fd7: 0x4300de20, - 0x3fd8: 0x431e4c20, 0x3fd9: 0x4309dc20, 0x3fda: 0x43204620, 0x3fdb: 0x43269420, - 0x3fdc: 0x42a42e20, 0x3fdd: 0x42a54620, 0x3fde: 0x42a97a20, 0x3fdf: 0x42e19020, - 0x3fe0: 0x43118420, 0x3fe1: 0x43155420, 0x3fe2: 0x42bd9220, 0x3fe3: 0x42bfea20, - 0x3fe4: 0x42c6f620, 0x3fe5: 0x42d75c20, 0x3fe6: 0x42f87c20, 0x3fe7: 0x42e6ea20, - 0x3fe8: 0x429dc820, 0x3fe9: 0x42adf220, 0x3fea: 0x42b7ce20, 0x3feb: 0x42bb7420, - 0x3fec: 0x42c03820, 0x3fed: 0x42e76420, 0x3fee: 0x42e8d220, 0x3fef: 0x42ff3420, - 0x3ff0: 0x43008c20, 0x3ff1: 0x43246820, 0x3ff2: 0x432dec20, 0x3ff3: 0x432e9020, - 0x3ff4: 0x43303020, 0x3ff5: 0x429f1620, 0x3ff6: 0x42f35c20, 0x3ff7: 0x43236820, - 0x3ff8: 0x432d7020, 0x3ff9: 0x42c1c220, 0x3ffa: 0x429d0c20, 0x3ffb: 0x42a1b420, - 0x3ffc: 0x42b7dc20, 0x3ffd: 0x42b87e20, 0x3ffe: 0x42cb3220, 0x3fff: 0x42d40420, - // Block 0x100, offset 0x4000 - 0x4000: 0x42e39c20, 0x4001: 0x42ec8420, 0x4002: 0x4309f820, 0x4003: 0x4320f820, - 0x4004: 0x433f1a20, 0x4005: 0x42cd1020, 0x4006: 0x432c5c20, 0x4007: 0x42a51220, - 0x4008: 0x42cef620, 0x4009: 0x42cfe620, 0x400a: 0x42da8220, 0x400b: 0x42dd3820, - 0x400c: 0x42e81220, 0x400d: 0x42eab220, 0x400e: 0x42f0d620, 0x400f: 0x42fa2020, - 0x4010: 0x4330bc20, 0x4011: 0x42a2da20, 0x4012: 0x42c45c20, 0x4013: 0x432cf020, - 0x4014: 0x42a05620, 0x4015: 0x42ba3220, 0x4016: 0x42dbd420, 0x4017: 0x431e5420, - 0x4018: 0x42bf1620, 0x4019: 0x42c28820, 0x401a: 0x42d02e20, 0x401b: 0x42e70e20, - 0x401c: 0x432d0c20, 0x401d: 0x42a45220, 0x401e: 0x42a81e20, 0x401f: 0x42b8ca20, - 0x4020: 0x42cc2620, 0x4021: 0x42ce9c20, 0x4022: 0x42d15020, 0x4023: 0x42d9ca20, - 0x4024: 0x42e80c20, 0x4025: 0x42ebc420, 0x4026: 0x42fef220, 0x4027: 0x43119e20, - 0x4028: 0x4311c220, 0x4029: 0x43239820, 0x402a: 0x432dc420, 0x402b: 0x42a67e20, - 0x402c: 0x42dd7420, 0x402d: 0x42a83a20, 0x402e: 0x42e3a020, 0x402f: 0x42e93020, - 0x4030: 0x430bf420, 0x4031: 0x432d4620, 0x4032: 0x4338ae20, 0x4033: 0x433d3e20, - 0x4034: 0x42cf2e20, 0x4035: 0x42db9620, 0x4036: 0x4303d020, 0x4037: 0x42f59620, - 0x4038: 0x42f64020, 0x4039: 0x42f92420, 0x403a: 0x42e58020, 0x403b: 0x42e13220, - 0x403c: 0x4316b020, 0x403d: 0x429d8020, 0x403e: 0x43066c20, 0x403f: 0x42a47420, - // Block 0x101, offset 0x4040 - 0x4040: 0x42a40e20, 0x4041: 0x42bd4c20, 0x4042: 0x42c5a620, 0x4043: 0x42f9ac20, - 0x4044: 0x42b70a20, 0x4045: 0x42da3c20, 0x4046: 0x42cd6820, 0x4047: 0x431e7620, - 0x4048: 0x43109820, 0x4049: 0x432c9a20, 0x404a: 0x43131620, 0x404b: 0x42bda620, - 0x404c: 0x42a28020, 0x404d: 0x42ab8020, 0x404e: 0x43f41c20, 0x404f: 0x43f41e20, - 0x4050: 0x42b0b420, 0x4051: 0x43f42220, 0x4052: 0x42cce820, 0x4053: 0x43f42620, - 0x4054: 0x43f42820, 0x4055: 0x42a3bc20, 0x4056: 0x42e65420, 0x4057: 0x42ed9420, - 0x4058: 0x42f27820, 0x4059: 0x42f2bc20, 0x405a: 0x42f2ca20, 0x405b: 0x42f31e20, - 0x405c: 0x432eac20, 0x405d: 0x42f97c20, 0x405e: 0x42ff7a20, 0x405f: 0x43f43e20, - 0x4060: 0x430c2420, 0x4061: 0x43f44220, 0x4062: 0x4315f020, 0x4063: 0x43f44620, - 0x4064: 0x43f44820, 0x4065: 0x43207020, 0x4066: 0x4321fa20, 0x4067: 0x43f44e20, - 0x4068: 0x43f45020, 0x4069: 0x43f45220, 0x406a: 0x4331de20, 0x406b: 0x4331f820, - 0x406c: 0x43325020, 0x406d: 0x433b6820, 0x406e: 0x4321bc20, 0x406f: 0x432d6e20, - 0x4070: 0x429f5c20, 0x4071: 0x42a1ce20, 0x4072: 0x42a29a20, 0x4073: 0x42a59220, - 0x4074: 0x42a5c820, 0x4075: 0x42a6a220, 0x4076: 0x42ab3a20, 0x4077: 0x42ac0c20, - 0x4078: 0x42acd020, 0x4079: 0x42b08020, 0x407a: 0x42b15020, 0x407b: 0x42b8c820, - 0x407c: 0x42b8dc20, 0x407d: 0x42c12820, 0x407e: 0x42c2d020, 0x407f: 0x42c31c20, - // Block 0x102, offset 0x4080 - 0x4080: 0x42c3e420, 0x4081: 0x42ca9e20, 0x4082: 0x42cbc420, 0x4083: 0x42cd2220, - 0x4084: 0x42d10a20, 0x4085: 0x42daee20, 0x4086: 0x42dc3420, 0x4087: 0x42de4420, - 0x4088: 0x42e2dc20, 0x4089: 0x42e45620, 0x408a: 0x42e84420, 0x408b: 0x42f12220, - 0x408c: 0x42f27c20, 0x408d: 0x42f29220, 0x408e: 0x42f29020, 0x408f: 0x42f2a020, - 0x4090: 0x42f2ac20, 0x4091: 0x42f2ba20, 0x4092: 0x42f31a20, 0x4093: 0x42f31c20, - 0x4094: 0x42f48020, 0x4095: 0x42f50220, 0x4096: 0x42f78020, 0x4097: 0x42fbe820, - 0x4098: 0x42fc1220, 0x4099: 0x42fc8220, 0x409a: 0x42fee420, 0x409b: 0x43000a20, - 0x409c: 0x4303da20, 0x409d: 0x4304f220, 0x409e: 0x4304f220, 0x409f: 0x4308ae20, - 0x40a0: 0x43122020, 0x40a1: 0x43132c20, 0x40a2: 0x43160220, 0x40a3: 0x43167220, - 0x40a4: 0x4319a620, 0x40a5: 0x431a1020, 0x40a6: 0x431f6c20, 0x40a7: 0x43207020, - 0x40a8: 0x432dc620, 0x40a9: 0x432ffe20, 0x40aa: 0x43307620, 0x40ab: 0x42c0ea20, - 0x40ac: 0x4885dc20, 0x40ad: 0x43043020, - 0x40b0: 0x429c4c20, 0x40b1: 0x42a36a20, 0x40b2: 0x42a2d020, 0x40b3: 0x429f0020, - 0x40b4: 0x42a28a20, 0x40b5: 0x42a30020, 0x40b6: 0x42a58e20, 0x40b7: 0x42a5f420, - 0x40b8: 0x42ab3a20, 0x40b9: 0x42aaaa20, 0x40ba: 0x42ab3220, 0x40bb: 0x42abc420, - 0x40bc: 0x42b0b420, 0x40bd: 0x42b16620, 0x40be: 0x42b28820, 0x40bf: 0x42b2a820, - // Block 0x103, offset 0x40c0 - 0x40c0: 0x42b4c420, 0x40c1: 0x42b65020, 0x40c2: 0x42bda420, 0x40c3: 0x42bdb220, - 0x40c4: 0x42bed220, 0x40c5: 0x42bf5a20, 0x40c6: 0x42c1b020, 0x40c7: 0x42c29c20, - 0x40c8: 0x42c21020, 0x40c9: 0x42c31c20, 0x40ca: 0x42c2c020, 0x40cb: 0x42c3e420, - 0x40cc: 0x42c46820, 0x40cd: 0x42c78820, 0x40ce: 0x42c83820, 0x40cf: 0x42c8a420, - 0x40d0: 0x42caac20, 0x40d1: 0x42cce820, 0x40d2: 0x42ce2e20, 0x40d3: 0x42ce3620, - 0x40d4: 0x42ceac20, 0x40d5: 0x42d6f220, 0x40d6: 0x42d77420, 0x40d7: 0x42da8220, - 0x40d8: 0x42ddb620, 0x40d9: 0x42dd9620, 0x40da: 0x42de4420, 0x40db: 0x42e03c20, - 0x40dc: 0x42e2dc20, 0x40dd: 0x42ef4e20, 0x40de: 0x42e46a20, 0x40df: 0x42e55e20, - 0x40e0: 0x42e65420, 0x40e1: 0x42e8e220, 0x40e2: 0x42ea0c20, 0x40e3: 0x42ea7620, - 0x40e4: 0x42ec3a20, 0x40e5: 0x42ec3e20, 0x40e6: 0x42ed9420, 0x40e7: 0x42edb620, - 0x40e8: 0x42ede820, 0x40e9: 0x42ee9420, 0x40ea: 0x42ee8020, 0x40eb: 0x42f19820, - 0x40ec: 0x42f56220, 0x40ed: 0x42f78020, 0x40ee: 0x42f8f620, 0x40ef: 0x42fab620, - 0x40f0: 0x42fbe820, 0x40f1: 0x42fe7c20, 0x40f2: 0x43000a20, 0x40f3: 0x4306a420, - 0x40f4: 0x4307de20, 0x40f5: 0x430ef220, 0x40f6: 0x43128220, 0x40f7: 0x43130c20, - 0x40f8: 0x43132c20, 0x40f9: 0x43157e20, 0x40fa: 0x4315f020, 0x40fb: 0x43159620, - 0x40fc: 0x43160220, 0x40fd: 0x4315fc20, 0x40fe: 0x4315da20, 0x40ff: 0x43167220, - // Block 0x104, offset 0x4100 - 0x4100: 0x43171420, 0x4101: 0x431a1020, 0x4102: 0x431e7020, 0x4103: 0x4320e420, - 0x4104: 0x43233220, 0x4105: 0x4324ec20, 0x4106: 0x432cf820, 0x4107: 0x432dc620, - 0x4108: 0x432eac20, 0x4109: 0x432fb620, 0x410a: 0x432ffe20, 0x410b: 0x43301620, - 0x410c: 0x43307620, 0x410d: 0x43362420, 0x410e: 0x433f3820, 0x410f: 0x48509420, - 0x4110: 0x48508820, 0x4111: 0x4867aa20, 0x4112: 0x44773a20, 0x4113: 0x44803020, - 0x4114: 0x44807220, 0x4115: 0x48a49220, 0x4116: 0x48b9a020, 0x4117: 0x48fda620, - 0x4118: 0x433e8620, 0x4119: 0x433f1c20, - // Block 0x105, offset 0x4140 - 0x4140: 0xf0000404, 0x4141: 0xf0000404, 0x4142: 0xf0000404, 0x4143: 0xe0000b99, - 0x4144: 0xe0000b9d, 0x4145: 0xe0000f83, 0x4146: 0xf0000404, - 0x4153: 0xf0000404, - 0x4154: 0xf0000404, 0x4155: 0xf0000404, 0x4156: 0xf0000404, 0x4157: 0xf0000404, - 0x415d: 0xe000150b, 0x415e: 0xa1a09602, 0x415f: 0xe0001514, - 0x4160: 0x0038ae85, 0x4161: 0x00389085, 0x4162: 0x00389685, 0x4163: 0x00389885, - 0x4164: 0x0038a485, 0x4165: 0x0038a685, 0x4166: 0x0038a885, 0x4167: 0x0038b685, - 0x4168: 0x0038ba85, 0x4169: 0x00093885, 0x416a: 0xe0001542, 0x416b: 0xe000153f, - 0x416c: 0xe000154c, 0x416d: 0xe0001548, 0x416e: 0xe00014e1, 0x416f: 0xe00014e4, - 0x4170: 0xe00014e7, 0x4171: 0xe00014ea, 0x4172: 0xe00014f0, 0x4173: 0xe00014f3, - 0x4174: 0xe00014f6, 0x4175: 0xe00014fc, 0x4176: 0xe0001505, - 0x4178: 0xe0001508, 0x4179: 0xe000150e, 0x417a: 0xe000151b, 0x417b: 0xe0001518, - 0x417c: 0xe0001521, 0x417e: 0xe0001524, - // Block 0x106, offset 0x4180 - 0x4180: 0xe0001527, 0x4181: 0xe000152a, 0x4183: 0xe0001530, - 0x4184: 0xe000152d, 0x4186: 0xe0001536, 0x4187: 0xe0001539, - 0x4188: 0xe000153c, 0x4189: 0xe0001545, 0x418a: 0xe0001550, 0x418b: 0xe00014f9, - 0x418c: 0xe00014ed, 0x418d: 0xe000151e, 0x418e: 0xe0001533, 0x418f: 0xf0000404, - 0x4190: 0x0039249a, 0x4191: 0x00392499, 0x4192: 0x00393e9a, 0x4193: 0x00393e99, - 0x4194: 0x00393e97, 0x4195: 0x00393e98, 0x4196: 0x0039409a, 0x4197: 0x00394099, - 0x4198: 0x00394097, 0x4199: 0x00394098, 0x419a: 0x0039429a, 0x419b: 0x00394299, - 0x419c: 0x00394297, 0x419d: 0x00394298, 0x419e: 0x00395c9a, 0x419f: 0x00395c99, - 0x41a0: 0x00395c97, 0x41a1: 0x00395c98, 0x41a2: 0x0039629a, 0x41a3: 0x00396299, - 0x41a4: 0x00396297, 0x41a5: 0x00396298, 0x41a6: 0x00395a9a, 0x41a7: 0x00395a99, - 0x41a8: 0x00395a97, 0x41a9: 0x00395a98, 0x41aa: 0x003a049a, 0x41ab: 0x003a0499, - 0x41ac: 0x003a0497, 0x41ad: 0x003a0498, 0x41ae: 0x003a0a9a, 0x41af: 0x003a0a99, - 0x41b0: 0x003a0a97, 0x41b1: 0x003a0a98, 0x41b2: 0x0039689a, 0x41b3: 0x00396899, - 0x41b4: 0x00396897, 0x41b5: 0x00396898, 0x41b6: 0x0039669a, 0x41b7: 0x00396699, - 0x41b8: 0x00396697, 0x41b9: 0x00396698, 0x41ba: 0x00396a9a, 0x41bb: 0x00396a99, - 0x41bc: 0x00396a97, 0x41bd: 0x00396a98, 0x41be: 0x00396e9a, 0x41bf: 0x00396e99, - // Block 0x107, offset 0x41c0 - 0x41c0: 0x00396e97, 0x41c1: 0x00396e98, 0x41c2: 0x0039969a, 0x41c3: 0x00399699, - 0x41c4: 0x0039949a, 0x41c5: 0x00399499, 0x41c6: 0x0039989a, 0x41c7: 0x00399899, - 0x41c8: 0x00398c9a, 0x41c9: 0x00398c99, 0x41ca: 0x0039b69a, 0x41cb: 0x0039b699, - 0x41cc: 0x0039a89a, 0x41cd: 0x0039a899, 0x41ce: 0x003a1c9a, 0x41cf: 0x003a1c99, - 0x41d0: 0x003a1c97, 0x41d1: 0x003a1c98, 0x41d2: 0x003a2a9a, 0x41d3: 0x003a2a99, - 0x41d4: 0x003a2a97, 0x41d5: 0x003a2a98, 0x41d6: 0x003a329a, 0x41d7: 0x003a3299, - 0x41d8: 0x003a3297, 0x41d9: 0x003a3298, 0x41da: 0x003a2e9a, 0x41db: 0x003a2e99, - 0x41dc: 0x003a2e97, 0x41dd: 0x003a2e98, 0x41de: 0x003a589a, 0x41df: 0x003a5899, - 0x41e0: 0x003a5a9a, 0x41e1: 0x003a5a99, 0x41e2: 0x003a5a97, 0x41e3: 0x003a5a98, - 0x41e4: 0xf0001a1a, 0x41e5: 0xf0001919, 0x41e6: 0x003a6c9a, 0x41e7: 0x003a6c99, - 0x41e8: 0x003a6c97, 0x41e9: 0x003a6c98, 0x41ea: 0x003a6a9a, 0x41eb: 0x003a6a99, - 0x41ec: 0x003a6a97, 0x41ed: 0x003a6a98, 0x41ee: 0x003aaa9a, 0x41ef: 0x003aaa99, - 0x41f0: 0xf0001a1a, 0x41f1: 0xf0001919, 0x41f2: 0x40071820, 0x41f3: 0x40071a20, - 0x41f4: 0x40071c20, 0x41f5: 0x40071e20, 0x41f6: 0x40072020, 0x41f7: 0x40072220, - 0x41f8: 0x40072420, 0x41f9: 0x40072620, 0x41fa: 0x40072820, 0x41fb: 0x40072a20, - 0x41fc: 0x40072c20, 0x41fd: 0x40072e20, 0x41fe: 0x40073020, 0x41ff: 0x40073220, - // Block 0x108, offset 0x4200 - 0x4200: 0x40073420, 0x4201: 0x40073620, - 0x4213: 0x003a269a, - 0x4214: 0x003a2699, 0x4215: 0x003a2697, 0x4216: 0x003a2698, 0x4217: 0x003a7c9a, - 0x4218: 0x003a7c99, 0x4219: 0x003a7a9a, 0x421a: 0x003a7a99, 0x421b: 0x003a7e9a, - 0x421c: 0x003a7e99, 0x421d: 0xf0001a1a, 0x421e: 0x003a849a, 0x421f: 0x003a8499, - 0x4220: 0x003a789a, 0x4221: 0x003a7899, 0x4222: 0x003a809a, 0x4223: 0x003a8099, - 0x4224: 0x003a989a, 0x4225: 0x003a9899, 0x4226: 0x003a9897, 0x4227: 0x003a9898, - 0x4228: 0x003a8e97, 0x4229: 0x003a8e98, 0x422a: 0xe0001559, 0x422b: 0xe0001556, - 0x422c: 0xe0001589, 0x422d: 0xe0001586, 0x422e: 0xe000158f, 0x422f: 0xe000158c, - 0x4230: 0xe000159b, 0x4231: 0xe0001598, 0x4232: 0xe0001595, 0x4233: 0xe0001592, - 0x4234: 0xe00015a1, 0x4235: 0xe000159e, 0x4236: 0xe00015bf, 0x4237: 0xe00015bc, - 0x4238: 0xe00015b9, 0x4239: 0xe00015ad, 0x423a: 0xe00015a7, 0x423b: 0xe00015a4, - 0x423c: 0x003a929a, 0x423d: 0x003a9299, 0x423e: 0x003a9297, 0x423f: 0x003a9298, - // Block 0x109, offset 0x4240 - 0x4240: 0xe000155f, 0x4241: 0xe0001565, 0x4242: 0xe000157a, 0x4243: 0xe00015b0, - 0x4244: 0xe00015b6, 0x4245: 0xf0001a1a, 0x4246: 0xf0001a1a, 0x4247: 0xf0001a1a, - 0x4248: 0xf0001a1a, 0x4249: 0xf0001a1a, 0x424a: 0xf0001a1a, 0x424b: 0xf0001a1a, - 0x424c: 0xf0001a1a, 0x424d: 0xf0001a1a, 0x424e: 0xf0001a1a, 0x424f: 0xf0001a1a, - 0x4250: 0xf0001a1a, 0x4251: 0xf0001a1a, 0x4252: 0xf0001a1a, 0x4253: 0xf0001a1a, - 0x4254: 0xf0001a1a, 0x4255: 0xf0001a1a, 0x4256: 0xf0001a1a, 0x4257: 0xf0001a1a, - 0x4258: 0xf0001a1a, 0x4259: 0xf0001a1a, 0x425a: 0xf0001a1a, 0x425b: 0xf0001a1a, - 0x425c: 0xf0001a1a, 0x425d: 0xf0001a1a, 0x425e: 0xf0001a1a, 0x425f: 0xf0001a1a, - 0x4260: 0xf0001a1a, 0x4261: 0xf0001a1a, 0x4262: 0xf0001a1a, 0x4263: 0xf0001a1a, - 0x4264: 0xf0001a1a, 0x4265: 0xf0001a1a, 0x4266: 0xf0001a1a, 0x4267: 0xf0001a1a, - 0x4268: 0xf0001a1a, 0x4269: 0xf0001a1a, 0x426a: 0xf0001a1a, 0x426b: 0xf0001a1a, - 0x426c: 0xf0001a1a, 0x426d: 0xf0001a1a, 0x426e: 0xf0001a1a, 0x426f: 0xf0001a1a, - 0x4270: 0xf0001a1a, 0x4271: 0xf0001a1a, 0x4272: 0xf0001a1a, 0x4273: 0xf0001a1a, - 0x4274: 0xf0001a1a, 0x4275: 0xf0001a1a, 0x4276: 0xf0001a1a, 0x4277: 0xf0001a1a, - 0x4278: 0xf0001a1a, 0x4279: 0xf0001a1a, 0x427a: 0xf0001a1a, 0x427b: 0xf0001a1a, - 0x427c: 0xf0001a1a, 0x427d: 0xf0001a1a, 0x427e: 0xf0001a1a, 0x427f: 0xf0001a1a, - // Block 0x10a, offset 0x4280 - 0x4280: 0xf0001a1a, 0x4281: 0xf0001a1a, 0x4282: 0xf0001a1a, 0x4283: 0xf0001a1a, - 0x4284: 0xf0001a1a, 0x4285: 0xf0001a1a, 0x4286: 0xf0001a1a, 0x4287: 0xf0001a1a, - 0x4288: 0xf0001a1a, 0x4289: 0xf0001a1a, 0x428a: 0xf0001a1a, 0x428b: 0xf0001a1a, - 0x428c: 0xf0001a1a, 0x428d: 0xf0001a1a, 0x428e: 0xf0001a1a, 0x428f: 0xf0001a1a, - 0x4290: 0xf0001a1a, 0x4291: 0xf0001a1a, 0x4292: 0xf0001a1a, 0x4293: 0xf0001a1a, - 0x4294: 0xf0001a1a, 0x4295: 0xf0001a1a, 0x4296: 0xf0001a1a, 0x4297: 0xf0001a1a, - 0x4298: 0xf0001a1a, 0x4299: 0xf0001a1a, 0x429a: 0xf0001a1a, 0x429b: 0xf0001a1a, - 0x429c: 0xf0001a1a, 0x429d: 0xf0001a1a, 0x429e: 0xe0000003, 0x429f: 0xe0000006, - 0x42a0: 0xe0000009, 0x42a1: 0xe000000c, 0x42a2: 0xe000000f, 0x42a3: 0xe0000012, - 0x42a4: 0xe000156b, 0x42a5: 0xe000156e, 0x42a6: 0xe0001577, 0x42a7: 0xe000157d, - 0x42a8: 0xe00015aa, 0x42a9: 0xe00015b3, 0x42aa: 0xf0001919, 0x42ab: 0xf0001919, - 0x42ac: 0xf0001919, 0x42ad: 0xf0001919, 0x42ae: 0xf0001919, 0x42af: 0xf0001919, - 0x42b0: 0xf0001919, 0x42b1: 0xf0001919, 0x42b2: 0xf0001919, 0x42b3: 0xf0001919, - 0x42b4: 0xf0001919, 0x42b5: 0xf0001919, 0x42b6: 0xf0001919, 0x42b7: 0xf0001919, - 0x42b8: 0xf0001919, 0x42b9: 0xf0001919, 0x42ba: 0xf0001919, 0x42bb: 0xf0001919, - 0x42bc: 0xf0001919, 0x42bd: 0xf0001919, 0x42be: 0xf0001919, 0x42bf: 0xf0001919, - // Block 0x10b, offset 0x42c0 - 0x42c0: 0xf0001919, 0x42c1: 0xf0001919, 0x42c2: 0xf0001919, 0x42c3: 0xf0001919, - 0x42c4: 0xf0001919, 0x42c5: 0xf0001919, 0x42c6: 0xf0001919, 0x42c7: 0xf0001919, - 0x42c8: 0xf0001919, 0x42c9: 0xf0001919, 0x42ca: 0xf0001919, 0x42cb: 0xf0001919, - 0x42cc: 0xf0001919, 0x42cd: 0xf0001919, 0x42ce: 0xf0001919, 0x42cf: 0xf0001919, - 0x42d0: 0xf0001919, 0x42d1: 0xf0001919, 0x42d2: 0xf0001919, 0x42d3: 0xf0001919, - 0x42d4: 0xf0001919, 0x42d5: 0xf0001919, 0x42d6: 0xf0001919, 0x42d7: 0xe000155c, - 0x42d8: 0xe0001562, 0x42d9: 0xe0001568, 0x42da: 0xe0001571, 0x42db: 0xe0001580, - 0x42dc: 0xf0001717, 0x42dd: 0xf0001717, 0x42de: 0xf0001717, 0x42df: 0xf0001717, - 0x42e0: 0xf0001717, 0x42e1: 0xf0001717, 0x42e2: 0xf0001717, 0x42e3: 0xf0001717, - 0x42e4: 0xf0001717, 0x42e5: 0xf0001717, 0x42e6: 0xf0001717, 0x42e7: 0xf0001717, - 0x42e8: 0xf0001717, 0x42e9: 0xf0001717, 0x42ea: 0xf0001717, 0x42eb: 0xf0001717, - 0x42ec: 0xf0001717, 0x42ed: 0xf0001717, 0x42ee: 0xf0001717, 0x42ef: 0xf0001717, - 0x42f0: 0xf0001717, 0x42f1: 0xf0001717, 0x42f2: 0xf0001717, 0x42f3: 0xf0001717, - 0x42f4: 0xf0001717, 0x42f5: 0xf0001717, 0x42f6: 0xf0001717, 0x42f7: 0xf0001717, - 0x42f8: 0xf0001717, 0x42f9: 0xf0001717, 0x42fa: 0xf0001717, 0x42fb: 0xf0001717, - 0x42fc: 0xf0001717, 0x42fd: 0xf0001717, 0x42fe: 0xf0001717, 0x42ff: 0xf0001717, - // Block 0x10c, offset 0x4300 - 0x4300: 0xf0001717, 0x4301: 0xf0001717, 0x4302: 0xf0001717, 0x4303: 0xf0001717, - 0x4304: 0xf0001717, 0x4305: 0xf0001717, 0x4306: 0xf0001717, 0x4307: 0xf0001717, - 0x4308: 0xf0001717, 0x4309: 0xf0001717, 0x430a: 0xf0001717, 0x430b: 0xf0001717, - 0x430c: 0xf0001717, 0x430d: 0xf0001717, 0x430e: 0xf0001717, 0x430f: 0xf0001717, - 0x4310: 0xf0001717, 0x4311: 0xf0001717, 0x4312: 0xf0001717, 0x4313: 0xf0001717, - 0x4314: 0xf0001717, 0x4315: 0xf0001717, 0x4316: 0xf0001717, 0x4317: 0xf0001717, - 0x4318: 0xf0001717, 0x4319: 0xf0001717, 0x431a: 0xf0001717, 0x431b: 0xf0001717, - 0x431c: 0xf0001717, 0x431d: 0xf0001717, 0x431e: 0xf0001717, 0x431f: 0xe0001574, - 0x4320: 0xe0001583, 0x4321: 0xf0001818, 0x4322: 0xf0001818, 0x4323: 0xf0001818, - 0x4324: 0xf0001818, 0x4325: 0xf0001818, 0x4326: 0xf0001818, 0x4327: 0xf0001818, - 0x4328: 0xf0001818, 0x4329: 0xf0001818, 0x432a: 0xf0001818, 0x432b: 0xf0001818, - 0x432c: 0xf0001818, 0x432d: 0xf0001818, 0x432e: 0xf0001818, 0x432f: 0xf0001818, - 0x4330: 0xf0001818, 0x4331: 0xf0001818, 0x4332: 0xf0001818, 0x4333: 0xf0001818, - 0x4334: 0xf0001818, 0x4335: 0xf0001a1a, 0x4336: 0xf0001a1a, 0x4337: 0xf0001a1a, - 0x4338: 0xf0001a1a, 0x4339: 0xf0001a1a, 0x433a: 0xf0001a1a, 0x433b: 0xf0001a1a, - 0x433c: 0xf0001a1a, 0x433d: 0xf0001a1a, 0x433e: 0xf0001a1a, 0x433f: 0xf0001a1a, - // Block 0x10d, offset 0x4340 - 0x4340: 0xf0001a1a, 0x4341: 0xf0001a1a, 0x4342: 0xf0001a1a, 0x4343: 0xf0001a1a, - 0x4344: 0xf0001a1a, 0x4345: 0xf0001a1a, 0x4346: 0xf0001a1a, 0x4347: 0xf0001a1a, - 0x4348: 0xf0001a1a, 0x4349: 0xf0001a1a, 0x434a: 0xf0001a1a, 0x434b: 0xf0001a1a, - 0x434c: 0xf0001a1a, 0x434d: 0xf0001a1a, 0x434e: 0xf0001a1a, 0x434f: 0xf0001a1a, - 0x4350: 0xf0001a1a, 0x4351: 0xf0001919, 0x4352: 0xf0001919, 0x4353: 0xf0001919, - 0x4354: 0xf0001919, 0x4355: 0xf0001919, 0x4356: 0xf0001919, 0x4357: 0xf0001919, - 0x4358: 0xf0001919, 0x4359: 0xf0001919, 0x435a: 0xf0001919, 0x435b: 0xf0001919, - 0x435c: 0xf0001919, 0x435d: 0xf0001919, 0x435e: 0xf0001919, 0x435f: 0xf0001919, - 0x4360: 0xf0001919, 0x4361: 0xf0001919, 0x4362: 0xf0001919, 0x4363: 0xf0001919, - 0x4364: 0xf0001919, 0x4365: 0xf0001919, 0x4366: 0xf0001919, 0x4367: 0xf0001919, - 0x4368: 0xf0001919, 0x4369: 0xf0001919, 0x436a: 0xf0001919, 0x436b: 0xf0001919, - 0x436c: 0xf0001919, 0x436d: 0xf0001717, 0x436e: 0xf0001717, 0x436f: 0xf0001717, - 0x4370: 0xf0001717, 0x4371: 0xf0001717, 0x4372: 0xf0001717, 0x4373: 0xf0001717, - 0x4374: 0xf0001818, 0x4375: 0xf0001818, 0x4376: 0xf0001818, 0x4377: 0xf0001818, - 0x4378: 0xf0001818, 0x4379: 0xf0001818, 0x437a: 0xf0001818, 0x437b: 0xf0001818, - 0x437c: 0xf0001919, 0x437d: 0xf0001a1a, 0x437e: 0x4004c020, 0x437f: 0x4004c220, - // Block 0x10e, offset 0x4380 - 0x4390: 0xe00015d4, 0x4391: 0xe00015e4, 0x4392: 0xe00015e0, 0x4393: 0xe00015e8, - 0x4394: 0xe00015ec, 0x4395: 0xe00015f8, 0x4396: 0xe00015fc, 0x4397: 0xe0001600, - 0x4398: 0xe0001621, 0x4399: 0xe000161d, 0x439a: 0xe0001635, 0x439b: 0xe0001631, - 0x439c: 0xe0001646, 0x439d: 0xe000163e, 0x439e: 0xe0001642, 0x439f: 0xe000165a, - 0x43a0: 0xe0001656, 0x43a1: 0xe0001652, 0x43a2: 0xe0001662, 0x43a3: 0xe000165e, - 0x43a4: 0xe000168a, 0x43a5: 0xe0001686, 0x43a6: 0xe00016b6, 0x43a7: 0xe000166e, - 0x43a8: 0xe000166a, 0x43a9: 0xe0001666, 0x43aa: 0xe000167a, 0x43ab: 0xe0001676, - 0x43ac: 0xe0001682, 0x43ad: 0xe000167e, 0x43ae: 0xe00016ba, 0x43af: 0xe00016c6, - 0x43b0: 0xe00016c2, 0x43b1: 0xe00016ce, 0x43b2: 0xe00016ca, 0x43b3: 0xe00016d2, - 0x43b4: 0xe00016d6, 0x43b5: 0xe00016de, 0x43b6: 0xe00016eb, 0x43b7: 0xe00016e7, - 0x43b8: 0xe00016ef, 0x43b9: 0xe00016f7, 0x43ba: 0xe00016ff, 0x43bb: 0xe00016fb, - 0x43bc: 0xe0001707, 0x43bd: 0xe0001703, 0x43be: 0xe0001717, 0x43bf: 0xe000171b, - // Block 0x10f, offset 0x43c0 - 0x43c0: 0xe0001759, 0x43c1: 0xe0001761, 0x43c2: 0xe000175d, 0x43c3: 0xe0001741, - 0x43c4: 0xe0001745, 0x43c5: 0xe0001769, 0x43c6: 0xe0001765, 0x43c7: 0xe0001771, - 0x43c8: 0xe000176d, 0x43c9: 0xe000178c, 0x43ca: 0xe0001790, 0x43cb: 0xe0001799, - 0x43cc: 0xe000177c, 0x43cd: 0xe0001784, 0x43ce: 0xe000179d, 0x43cf: 0xe00017a1, - 0x43d2: 0xe0001780, 0x43d3: 0xe00017d9, - 0x43d4: 0xe00017dd, 0x43d5: 0xe00017c5, 0x43d6: 0xe00017c9, 0x43d7: 0xe00017b9, - 0x43d8: 0xe00017b5, 0x43d9: 0xe00017bd, 0x43da: 0xe00017d5, 0x43db: 0xe00017d1, - 0x43dc: 0xe00017f8, 0x43dd: 0xe00017f4, 0x43de: 0xe00015d0, 0x43df: 0xe00015dc, - 0x43e0: 0xe00015d8, 0x43e1: 0xe00015f4, 0x43e2: 0xe00015f0, 0x43e3: 0xe0001608, - 0x43e4: 0xe0001604, 0x43e5: 0xe0001629, 0x43e6: 0xe000160c, 0x43e7: 0xe0001625, - 0x43e8: 0xe000164a, 0x43e9: 0xe000168e, 0x43ea: 0xe0001672, 0x43eb: 0xe00016be, - 0x43ec: 0xe0001751, 0x43ed: 0xe0001775, 0x43ee: 0xe00017f0, 0x43ef: 0xe00017ec, - 0x43f0: 0xe00017fc, 0x43f1: 0xe00017a9, 0x43f2: 0xe000171f, 0x43f3: 0xe00017cd, - 0x43f4: 0xe0001713, 0x43f5: 0xe0001755, 0x43f6: 0xe00016f3, 0x43f7: 0xe000172b, - 0x43f8: 0xe00017ad, 0x43f9: 0xe00017a5, 0x43fa: 0xe0001749, 0x43fb: 0xe0001727, - 0x43fc: 0xe000174d, 0x43fd: 0xe00017b1, 0x43fe: 0xe0001610, 0x43ff: 0xe000162d, - // Block 0x110, offset 0x4400 - 0x4400: 0xe0001788, 0x4401: 0xe000170b, 0x4402: 0xe00015cc, 0x4403: 0xe0001723, - 0x4404: 0xe00016da, 0x4405: 0xe00016b2, 0x4406: 0xe000164e, 0x4407: 0xe00017c1, - 0x4430: 0xe00016ae, 0x4431: 0xe000170f, 0x4432: 0xe00015c7, 0x4433: 0xe00015c2, - 0x4434: 0xe0001794, 0x4435: 0xe0001692, 0x4436: 0xe0001639, 0x4437: 0xe00016e2, - 0x4438: 0xe00017e7, 0x4439: 0xe0001697, 0x443a: 0xe000169b, 0x443b: 0xe0001614, - 0x443c: 0x40282e20, 0x443d: 0x40071620, - // Block 0x111, offset 0x4440 - 0x4440: 0xa0000000, 0x4441: 0xa0000000, 0x4442: 0xa0000000, 0x4443: 0xa0000000, - 0x4444: 0xa0000000, 0x4445: 0xa0000000, 0x4446: 0xa0000000, 0x4447: 0xa0000000, - 0x4448: 0xa0000000, 0x4449: 0xa0000000, 0x444a: 0xa0000000, 0x444b: 0xa0000000, - 0x444c: 0xa0000000, 0x444d: 0xa0000000, 0x444e: 0xa0000000, 0x444f: 0xa0000000, - 0x4450: 0x00024096, 0x4451: 0x00025c96, 0x4452: 0x00030496, 0x4453: 0x00026c96, - 0x4454: 0x00026296, 0x4455: 0x0002ba96, 0x4456: 0x0002c496, 0x4457: 0x0004b496, - 0x4458: 0x0004b696, 0x4459: 0xf0001616, - 0x4460: 0xae608202, 0x4461: 0xae600000, 0x4462: 0xae608102, 0x4463: 0xae600000, - 0x4464: 0xae600000, 0x4465: 0xae600000, 0x4466: 0xae600000, - 0x4470: 0xf0001f16, 0x4471: 0x00022c96, 0x4472: 0x00022a96, 0x4473: 0x00021696, - 0x4474: 0x00021696, 0x4475: 0x0003f496, 0x4476: 0x0003f696, 0x4477: 0x0003fc96, - 0x4478: 0x0003fe96, 0x4479: 0x0004b096, 0x447a: 0x0004b296, 0x447b: 0x0004ac96, - 0x447c: 0x0004ae96, 0x447d: 0x0004a096, 0x447e: 0x0004a296, 0x447f: 0x00049c96, - // Block 0x112, offset 0x4480 - 0x4480: 0x00049e96, 0x4481: 0x0004a496, 0x4482: 0x0004a696, 0x4483: 0x0004a896, - 0x4484: 0x0004aa96, 0x4485: 0x40025e20, 0x4486: 0x40026020, 0x4487: 0x0003f896, - 0x4488: 0x0003fa96, 0x4489: 0x00021484, 0x448a: 0x00021484, 0x448b: 0x00021484, - 0x448c: 0x00021484, 0x448d: 0x00021684, 0x448e: 0x00021684, 0x448f: 0x00021684, - 0x4490: 0x0002408f, 0x4491: 0x00025c8f, 0x4492: 0x0002e48f, - 0x4494: 0x0002628f, 0x4495: 0x00026c8f, 0x4496: 0x0002c48f, 0x4497: 0x0002ba8f, - 0x4498: 0x00022c8f, 0x4499: 0x0003f48f, 0x449a: 0x0003f68f, 0x449b: 0x0003fc8f, - 0x449c: 0x0003fe8f, 0x449d: 0x0004b08f, 0x449e: 0x0004b28f, 0x449f: 0x0004ea8f, - 0x44a0: 0x0004e68f, 0x44a1: 0x0004d88f, 0x44a2: 0x0009388f, 0x44a3: 0x00021a8f, - 0x44a4: 0x0009408f, 0x44a5: 0x0009448f, 0x44a6: 0x0009428f, - 0x44a8: 0x0004e48f, 0x44a9: 0x0027de8f, 0x44aa: 0x0004ec8f, 0x44ab: 0x0004d68f, - 0x44b0: 0xa000a21a, 0x44b1: 0xa000a218, 0x44b2: 0xa000a51a, 0x44b3: 0xa0000000, - 0x44b4: 0xa000a91a, 0x44b6: 0xa000ad1a, 0x44b7: 0xa000ad18, - 0x44b8: 0xa000b21a, 0x44b9: 0xa000b218, 0x44ba: 0xa000b61a, 0x44bb: 0xa000b618, - 0x44bc: 0xa000ba1a, 0x44bd: 0xa000ba18, 0x44be: 0xa000bc1a, 0x44bf: 0xa000bc18, - // Block 0x113, offset 0x44c0 - 0x44c0: 0x00391c9a, 0x44c1: 0x00391e9a, 0x44c2: 0x00391e99, 0x44c3: 0x0039209a, - 0x44c4: 0x00392099, 0x44c5: 0x0039269a, 0x44c6: 0x00392699, 0x44c7: 0x0039289a, - 0x44c8: 0x00392899, 0x44c9: 0x0039309a, 0x44ca: 0x00393099, 0x44cb: 0x00393097, - 0x44cc: 0x00393098, 0x44cd: 0x0039389a, 0x44ce: 0x00393899, 0x44cf: 0x00393c9a, - 0x44d0: 0x00393c99, 0x44d1: 0x00393c97, 0x44d2: 0x00393c98, 0x44d3: 0x0039549a, - 0x44d4: 0x00395499, 0x44d5: 0x0039569a, 0x44d6: 0x00395699, 0x44d7: 0x00395697, - 0x44d8: 0x00395698, 0x44d9: 0x0039589a, 0x44da: 0x00395899, 0x44db: 0x00395897, - 0x44dc: 0x00395898, 0x44dd: 0x0039649a, 0x44de: 0x00396499, 0x44df: 0x00396497, - 0x44e0: 0x00396498, 0x44e1: 0x0039729a, 0x44e2: 0x00397299, 0x44e3: 0x00397297, - 0x44e4: 0x00397298, 0x44e5: 0x0039749a, 0x44e6: 0x00397499, 0x44e7: 0x00397497, - 0x44e8: 0x00397498, 0x44e9: 0x0039889a, 0x44ea: 0x00398899, 0x44eb: 0x00398a9a, - 0x44ec: 0x00398a99, 0x44ed: 0x0039a49a, 0x44ee: 0x0039a499, 0x44ef: 0x0039a69a, - 0x44f0: 0x0039a699, 0x44f1: 0x0039c69a, 0x44f2: 0x0039c699, 0x44f3: 0x0039c697, - 0x44f4: 0x0039c698, 0x44f5: 0x0039c89a, 0x44f6: 0x0039c899, 0x44f7: 0x0039c897, - 0x44f8: 0x0039c898, 0x44f9: 0x0039dc9a, 0x44fa: 0x0039dc99, 0x44fb: 0x0039dc97, - 0x44fc: 0x0039dc98, 0x44fd: 0x0039de9a, 0x44fe: 0x0039de99, 0x44ff: 0x0039de97, - // Block 0x114, offset 0x4500 - 0x4500: 0x0039de98, 0x4501: 0x0039e69a, 0x4502: 0x0039e699, 0x4503: 0x0039e697, - 0x4504: 0x0039e698, 0x4505: 0x0039e89a, 0x4506: 0x0039e899, 0x4507: 0x0039e897, - 0x4508: 0x0039e898, 0x4509: 0x0039ee9a, 0x450a: 0x0039ee99, 0x450b: 0x0039ee97, - 0x450c: 0x0039ee98, 0x450d: 0x0039f09a, 0x450e: 0x0039f099, 0x450f: 0x0039f097, - 0x4510: 0x0039f098, 0x4511: 0x0039fc9a, 0x4512: 0x0039fc99, 0x4513: 0x0039fc97, - 0x4514: 0x0039fc98, 0x4515: 0x003a129a, 0x4516: 0x003a1299, 0x4517: 0x003a1297, - 0x4518: 0x003a1298, 0x4519: 0x003a1a9a, 0x451a: 0x003a1a99, 0x451b: 0x003a1a97, - 0x451c: 0x003a1a98, 0x451d: 0x003a409a, 0x451e: 0x003a4099, 0x451f: 0x003a4097, - 0x4520: 0x003a4098, 0x4521: 0x003a4e9a, 0x4522: 0x003a4e99, 0x4523: 0x003a4e97, - 0x4524: 0x003a4e98, 0x4525: 0x003a569a, 0x4526: 0x003a5699, 0x4527: 0x003a5697, - 0x4528: 0x003a5698, 0x4529: 0x003a689a, 0x452a: 0x003a6899, 0x452b: 0x003a6897, - 0x452c: 0x003a6898, 0x452d: 0x003a749a, 0x452e: 0x003a7499, 0x452f: 0x003a8e9a, - 0x4530: 0x003a8e99, 0x4531: 0x003a909a, 0x4532: 0x003a9099, 0x4533: 0x003a9097, - 0x4534: 0x003a9098, 0x4535: 0xe0001732, 0x4536: 0xe000172f, 0x4537: 0xe0001738, - 0x4538: 0xe0001735, 0x4539: 0xe000173e, 0x453a: 0xe000173b, 0x453b: 0xf0001a1a, - 0x453c: 0xf0001919, 0x453f: 0xa0000000, - // Block 0x115, offset 0x4540 - 0x4541: 0x0002ba83, 0x4542: 0x0003e083, 0x4543: 0x0004ea83, - 0x4544: 0x0027de83, 0x4545: 0x0004ec83, 0x4546: 0x0004e683, 0x4547: 0x0003d283, - 0x4548: 0x0003f483, 0x4549: 0x0003f683, 0x454a: 0x0004d883, 0x454b: 0x00093883, - 0x454c: 0x00024083, 0x454d: 0x00021a83, 0x454e: 0x0002e483, 0x454f: 0x0004e283, - 0x4550: 0x0029cc83, 0x4551: 0x0029ce83, 0x4552: 0x0029d083, 0x4553: 0x0029d283, - 0x4554: 0x0029d483, 0x4555: 0x0029d683, 0x4556: 0x0029d883, 0x4557: 0x0029da83, - 0x4558: 0x0029dc83, 0x4559: 0x0029de83, 0x455a: 0x00026c83, 0x455b: 0x00026283, - 0x455c: 0x00094083, 0x455d: 0x00094283, 0x455e: 0x00094483, 0x455f: 0x0002c483, - 0x4560: 0x0004d683, 0x4561: 0x002bde89, 0x4562: 0x002c0a89, 0x4563: 0x002c3a89, - 0x4564: 0x002c6289, 0x4565: 0x002c9889, 0x4566: 0x002d0889, 0x4567: 0x002d2289, - 0x4568: 0x002d6889, 0x4569: 0x002d9a89, 0x456a: 0x002dcc89, 0x456b: 0x002dfe89, - 0x456c: 0x002e2289, 0x456d: 0x002e8289, 0x456e: 0x002e9e89, 0x456f: 0x002ee289, - 0x4570: 0x002f2c89, 0x4571: 0x002f5689, 0x4572: 0x002f7a89, 0x4573: 0x002fe689, - 0x4574: 0x00302c89, 0x4575: 0x00306c89, 0x4576: 0x0030be89, 0x4577: 0x0030e289, - 0x4578: 0x0030f689, 0x4579: 0x00310089, 0x457a: 0x00312a89, 0x457b: 0x0003f883, - 0x457c: 0x0004e483, 0x457d: 0x0003fa83, 0x457e: 0x00062483, 0x457f: 0x00021683, - // Block 0x116, offset 0x4580 - 0x4580: 0x00061e83, 0x4581: 0x002bde83, 0x4582: 0x002c0a83, 0x4583: 0x002c3a83, - 0x4584: 0x002c6283, 0x4585: 0x002c9883, 0x4586: 0x002d0883, 0x4587: 0x002d2283, - 0x4588: 0x002d6883, 0x4589: 0x002d9a83, 0x458a: 0x002dcc83, 0x458b: 0x002dfe83, - 0x458c: 0x002e2283, 0x458d: 0x002e8283, 0x458e: 0x002e9e83, 0x458f: 0x002ee283, - 0x4590: 0x002f2c83, 0x4591: 0x002f5683, 0x4592: 0x002f7a83, 0x4593: 0x002fe683, - 0x4594: 0x00302c83, 0x4595: 0x00306c83, 0x4596: 0x0030be83, 0x4597: 0x0030e283, - 0x4598: 0x0030f683, 0x4599: 0x00310083, 0x459a: 0x00312a83, 0x459b: 0x0003fc83, - 0x459c: 0x00094883, 0x459d: 0x0003fe83, 0x459e: 0x00094c83, 0x459f: 0x00041883, - 0x45a0: 0x00041a83, 0x45a1: 0x00030492, 0x45a2: 0x0004a492, 0x45a3: 0x0004a692, - 0x45a4: 0x00025c92, 0x45a5: 0x00023e92, 0x45a6: 0x0065d692, 0x45a7: 0x00657690, - 0x45a8: 0x00657890, 0x45a9: 0x00657a90, 0x45aa: 0x00657e90, 0x45ab: 0x00658090, - 0x45ac: 0x0065be90, 0x45ad: 0x0065c090, 0x45ae: 0x0065c490, 0x45af: 0x00659a90, - 0x45b0: 0x0027d692, 0x45b1: 0x00657692, 0x45b2: 0x00657892, 0x45b3: 0x00657a92, - 0x45b4: 0x00657e92, 0x45b5: 0x00658092, 0x45b6: 0x00658292, 0x45b7: 0x00658492, - 0x45b8: 0x00658692, 0x45b9: 0x00658892, 0x45ba: 0x00658a92, 0x45bb: 0x00658c92, - 0x45bc: 0x00658e92, 0x45bd: 0x00659092, 0x45be: 0x00659292, 0x45bf: 0x00659492, - // Block 0x117, offset 0x45c0 - 0x45c0: 0x00659692, 0x45c1: 0x00659892, 0x45c2: 0x00659a92, 0x45c3: 0x00659c92, - 0x45c4: 0x00659e92, 0x45c5: 0x0065a092, 0x45c6: 0x0065a292, 0x45c7: 0x0065a492, - 0x45c8: 0x0065a692, 0x45c9: 0x0065a892, 0x45ca: 0x0065aa92, 0x45cb: 0x0065ac92, - 0x45cc: 0x0065ae92, 0x45cd: 0x0065b092, 0x45ce: 0x0065b292, 0x45cf: 0x0065b492, - 0x45d0: 0x0065b692, 0x45d1: 0x0065b892, 0x45d2: 0x0065ba92, 0x45d3: 0x0065bc92, - 0x45d4: 0x0065be92, 0x45d5: 0x0065c092, 0x45d6: 0x0065c492, 0x45d7: 0x0065c692, - 0x45d8: 0x0065c892, 0x45d9: 0x0065ca92, 0x45da: 0x0065cc92, 0x45db: 0x0065ce92, - 0x45dc: 0x0065d092, 0x45dd: 0x0065d892, 0x45de: 0xa0012812, 0x45df: 0xa0012912, - 0x45e0: 0x0063a692, 0x45e1: 0x0062ac92, 0x45e2: 0x0062ae92, 0x45e3: 0x00646892, - 0x45e4: 0x0062b092, 0x45e5: 0x00646c92, 0x45e6: 0x00646e92, 0x45e7: 0x0062b292, - 0x45e8: 0x0062b492, 0x45e9: 0x0062b692, 0x45ea: 0x00647492, 0x45eb: 0x00647692, - 0x45ec: 0x00647892, 0x45ed: 0x00647a92, 0x45ee: 0x00647c92, 0x45ef: 0x00647e92, - 0x45f0: 0x0062e092, 0x45f1: 0x0062b892, 0x45f2: 0x0062ba92, 0x45f3: 0x0062bc92, - 0x45f4: 0x0062ee92, 0x45f5: 0x0062be92, 0x45f6: 0x0062c092, 0x45f7: 0x0062c292, - 0x45f8: 0x0062c492, 0x45f9: 0x0062c692, 0x45fa: 0x0062c892, 0x45fb: 0x0062ca92, - 0x45fc: 0x0062cc92, 0x45fd: 0x0062ce92, 0x45fe: 0x0062d092, - // Block 0x118, offset 0x4600 - 0x4602: 0x0063a892, 0x4603: 0x0063aa92, - 0x4604: 0x0063ac92, 0x4605: 0x0063ae92, 0x4606: 0x0063b092, 0x4607: 0x0063b292, - 0x460a: 0x0063b492, 0x460b: 0x0063b692, - 0x460c: 0x0063b892, 0x460d: 0x0063ba92, 0x460e: 0x0063bc92, 0x460f: 0x0063be92, - 0x4612: 0x0063c092, 0x4613: 0x0063c292, - 0x4614: 0x0063c492, 0x4615: 0x0063c692, 0x4616: 0x0063c892, 0x4617: 0x0063ca92, - 0x461a: 0x0063cc92, 0x461b: 0x0063ce92, - 0x461c: 0x0063d092, - 0x4620: 0x0027dc83, 0x4621: 0x0027e083, 0x4622: 0x00094683, 0x4623: 0x00062683, - 0x4624: 0x00094a83, 0x4625: 0x0027e283, 0x4626: 0x00280883, - 0x4628: 0x000d3292, 0x4629: 0x00084492, 0x462a: 0x00084892, 0x462b: 0x00084692, - 0x462c: 0x00084a92, 0x462d: 0x000e6e92, 0x462e: 0x000ec492, - 0x4639: 0xa0000000, 0x463a: 0xa0000000, 0x463b: 0xa0000000, - 0x463c: 0x4027ae20, 0x463d: 0x4027b020, 0x463e: 0x00000285, 0x463f: 0x2bfffe85, - // Block 0x119, offset 0x4640 - 0x4640: 0x40731a20, 0x4641: 0x40731c20, 0x4642: 0x40731e20, 0x4643: 0x40732020, - 0x4644: 0x40732220, 0x4645: 0x40732420, 0x4646: 0x40732620, 0x4647: 0x40732820, - 0x4648: 0x40732a20, 0x4649: 0x40732c20, 0x464a: 0x40732e20, 0x464b: 0x40733020, - 0x464d: 0x40733220, 0x464e: 0x40733420, 0x464f: 0x40733620, - 0x4650: 0x40733820, 0x4651: 0x40733a20, 0x4652: 0x40733c20, 0x4653: 0x40733e20, - 0x4654: 0x40734020, 0x4655: 0x40734220, 0x4656: 0x40734420, 0x4657: 0x40734620, - 0x4658: 0x40734820, 0x4659: 0x40734a20, 0x465a: 0x40734c20, 0x465b: 0x40734e20, - 0x465c: 0x40735020, 0x465d: 0x40735220, 0x465e: 0x40735420, 0x465f: 0x40735620, - 0x4660: 0x40735820, 0x4661: 0x40735a20, 0x4662: 0x40735c20, 0x4663: 0x40735e20, - 0x4664: 0x40736020, 0x4665: 0x40736220, 0x4666: 0x40736420, - 0x4668: 0x40736620, 0x4669: 0x40736820, 0x466a: 0x40736a20, 0x466b: 0x40736c20, - 0x466c: 0x40736e20, 0x466d: 0x40737020, 0x466e: 0x40737220, 0x466f: 0x40737420, - 0x4670: 0x40737620, 0x4671: 0x40737820, 0x4672: 0x40737a20, 0x4673: 0x40737c20, - 0x4674: 0x40737e20, 0x4675: 0x40738020, 0x4676: 0x40738220, 0x4677: 0x40738420, - 0x4678: 0x40738620, 0x4679: 0x40738820, 0x467a: 0x40738a20, - 0x467c: 0x40738c20, 0x467d: 0x40738e20, 0x467f: 0x40739020, - // Block 0x11a, offset 0x4680 - 0x4680: 0x40739220, 0x4681: 0x40739420, 0x4682: 0x40739620, 0x4683: 0x40739820, - 0x4684: 0x40739a20, 0x4685: 0x40739c20, 0x4686: 0x40739e20, 0x4687: 0x4073a020, - 0x4688: 0x4073a220, 0x4689: 0x4073a420, 0x468a: 0x4073a620, 0x468b: 0x4073a820, - 0x468c: 0x4073aa20, 0x468d: 0x4073ac20, - 0x4690: 0x4073ae20, 0x4691: 0x4073b020, 0x4692: 0x4073b220, 0x4693: 0x4073b420, - 0x4694: 0x4073b620, 0x4695: 0x4073b820, 0x4696: 0x4073ba20, 0x4697: 0x4073bc20, - 0x4698: 0x4073be20, 0x4699: 0x4073c020, 0x469a: 0x4073c220, 0x469b: 0x4073c420, - 0x469c: 0x4073c620, 0x469d: 0x4073c820, - // Block 0x11b, offset 0x46c0 - 0x46c0: 0x4073ca20, 0x46c1: 0x4073cc20, 0x46c2: 0x4073ce20, 0x46c3: 0x4073d020, - 0x46c4: 0x4073d220, 0x46c5: 0x4073d420, 0x46c6: 0x4073d620, 0x46c7: 0x4073d820, - 0x46c8: 0x4073da20, 0x46c9: 0x4073dc20, 0x46ca: 0x4073de20, 0x46cb: 0x4073e020, - 0x46cc: 0x4073e220, 0x46cd: 0x4073e420, 0x46ce: 0x4073e620, 0x46cf: 0x4073e820, - 0x46d0: 0x4073ea20, 0x46d1: 0x4073ec20, 0x46d2: 0x4073ee20, 0x46d3: 0x4073f020, - 0x46d4: 0x4073f220, 0x46d5: 0x4073f420, 0x46d6: 0x4073f620, 0x46d7: 0x4073f820, - 0x46d8: 0x4073fa20, 0x46d9: 0x4073fc20, 0x46da: 0x4073fe20, 0x46db: 0x40740020, - 0x46dc: 0x40740220, 0x46dd: 0x40740420, 0x46de: 0x40740620, 0x46df: 0x40740820, - 0x46e0: 0x40740a20, 0x46e1: 0x40740c20, 0x46e2: 0x40740e20, 0x46e3: 0x40741020, - 0x46e4: 0x40741220, 0x46e5: 0x40741420, 0x46e6: 0x40741620, 0x46e7: 0x40741820, - 0x46e8: 0x40741a20, 0x46e9: 0x40741c20, 0x46ea: 0x40741e20, 0x46eb: 0x40742020, - 0x46ec: 0x40742220, 0x46ed: 0x40742420, 0x46ee: 0x40742620, 0x46ef: 0x40742820, - 0x46f0: 0x40742a20, 0x46f1: 0x40742c20, 0x46f2: 0x40742e20, 0x46f3: 0x40743020, - 0x46f4: 0x40743220, 0x46f5: 0x40743420, 0x46f6: 0x40743620, 0x46f7: 0x40743820, - 0x46f8: 0x40743a20, 0x46f9: 0x40743c20, 0x46fa: 0x40743e20, 0x46fb: 0x40744020, - 0x46fc: 0x40744220, 0x46fd: 0x40744420, 0x46fe: 0x40744620, 0x46ff: 0x40744820, - // Block 0x11c, offset 0x4700 - 0x4700: 0x40744a20, 0x4701: 0x40744c20, 0x4702: 0x40744e20, 0x4703: 0x40745020, - 0x4704: 0x40745220, 0x4705: 0x40745420, 0x4706: 0x40745620, 0x4707: 0x40745820, - 0x4708: 0x40745a20, 0x4709: 0x40745c20, 0x470a: 0x40745e20, 0x470b: 0x40746020, - 0x470c: 0x40746220, 0x470d: 0x40746420, 0x470e: 0x40746620, 0x470f: 0x40746820, - 0x4710: 0x40746a20, 0x4711: 0x40746c20, 0x4712: 0x40746e20, 0x4713: 0x40747020, - 0x4714: 0x40747220, 0x4715: 0x40747420, 0x4716: 0x40747620, 0x4717: 0x40747820, - 0x4718: 0x40747a20, 0x4719: 0x40747c20, 0x471a: 0x40747e20, 0x471b: 0x40748020, - 0x471c: 0x40748220, 0x471d: 0x40748420, 0x471e: 0x40748620, 0x471f: 0x40748820, - 0x4720: 0x40748a20, 0x4721: 0x40748c20, 0x4722: 0x40748e20, 0x4723: 0x40749020, - 0x4724: 0x40749220, 0x4725: 0x40749420, 0x4726: 0x40749620, 0x4727: 0x40749820, - 0x4728: 0x40749a20, 0x4729: 0x40749c20, 0x472a: 0x40749e20, 0x472b: 0x4074a020, - 0x472c: 0x4074a220, 0x472d: 0x4074a420, 0x472e: 0x4074a620, 0x472f: 0x4074a820, - 0x4730: 0x4074aa20, 0x4731: 0x4074ac20, 0x4732: 0x4074ae20, 0x4733: 0x4074b020, - 0x4734: 0x4074b220, 0x4735: 0x4074b420, 0x4736: 0x4074b620, 0x4737: 0x4074b820, - 0x4738: 0x4074ba20, 0x4739: 0x4074bc20, 0x473a: 0x4074be20, - // Block 0x11d, offset 0x4740 - 0x4740: 0x4003be20, 0x4741: 0x4003c020, 0x4742: 0x4003c220, - 0x4747: 0xe000026a, - 0x4748: 0xe0000382, 0x4749: 0xe000045c, 0x474a: 0xe0000531, 0x474b: 0xe00005fb, - 0x474c: 0xe00006c6, 0x474d: 0xe000076e, 0x474e: 0xe000081a, 0x474f: 0xe00008bf, - 0x4750: 0x4028ba20, 0x4751: 0x4028bc20, 0x4752: 0x4028be20, 0x4753: 0x4028c020, - 0x4754: 0x4028c220, 0x4755: 0x4028c420, 0x4756: 0x4028c620, 0x4757: 0x4028c820, - 0x4758: 0x4028ca20, 0x4759: 0x4028cc20, 0x475a: 0x4028ce20, 0x475b: 0x4028d020, - 0x475c: 0x4028d220, 0x475d: 0x4028d420, 0x475e: 0x4028d620, 0x475f: 0x4028d820, - 0x4760: 0x4028da20, 0x4761: 0x4028dc20, 0x4762: 0x4028de20, 0x4763: 0x4028e020, - 0x4764: 0x4028e220, 0x4765: 0x4028e420, 0x4766: 0x4028e620, 0x4767: 0x4028e820, - 0x4768: 0x4028ea20, 0x4769: 0x4028ec20, 0x476a: 0x4028ee20, 0x476b: 0x4028f020, - 0x476c: 0x4028f220, 0x476d: 0x4028f420, 0x476e: 0x4028f620, 0x476f: 0x4028f820, - 0x4770: 0x4028fa20, 0x4771: 0x4028fc20, 0x4772: 0x4028fe20, 0x4773: 0x40290020, - 0x4777: 0x401afe20, - 0x4778: 0x401b0020, 0x4779: 0x401b0220, 0x477a: 0x401b0420, 0x477b: 0x401b0620, - 0x477c: 0x401b0820, 0x477d: 0x401b0a20, 0x477e: 0x401b0c20, 0x477f: 0x401b0e20, - // Block 0x11e, offset 0x4780 - 0x4780: 0x40290220, 0x4781: 0x40290420, 0x4782: 0xe000026d, 0x4783: 0xe00005fe, - 0x4784: 0x40290620, 0x4785: 0x40290820, 0x4786: 0x40290a20, 0x4787: 0x40290c20, - 0x4788: 0xe0000601, 0x4789: 0x40290e20, 0x478a: 0x40291020, 0x478b: 0x40291220, - 0x478c: 0x40291420, 0x478d: 0x40291620, 0x478e: 0x40291820, 0x478f: 0xe0000604, - 0x4790: 0x40291a20, 0x4791: 0x40291c20, 0x4792: 0x40291e20, 0x4793: 0x40292020, - 0x4794: 0x40292220, 0x4795: 0x40292420, 0x4796: 0x40292620, 0x4797: 0x40292820, - 0x4798: 0xe0000270, 0x4799: 0xe0000273, 0x479a: 0xe0000276, 0x479b: 0xe0000385, - 0x479c: 0xe0000388, 0x479d: 0xe000038b, 0x479e: 0xe000038e, 0x479f: 0xe0000607, - 0x47a0: 0x40292a20, 0x47a1: 0x40292c20, 0x47a2: 0x40292e20, 0x47a3: 0x40293020, - 0x47a4: 0x40293220, 0x47a5: 0x40293420, 0x47a6: 0x40293620, 0x47a7: 0x40293820, - 0x47a8: 0x40293a20, 0x47a9: 0x40293c20, 0x47aa: 0x40293e20, 0x47ab: 0x40294020, - 0x47ac: 0x40294220, 0x47ad: 0x40294420, 0x47ae: 0x40294620, 0x47af: 0x40294820, - 0x47b0: 0x40294a20, 0x47b1: 0x40294c20, 0x47b2: 0x40294e20, 0x47b3: 0xe000060a, - 0x47b4: 0x40295020, 0x47b5: 0x40295220, 0x47b6: 0x40295420, 0x47b7: 0x40295620, - 0x47b8: 0x40295820, 0x47b9: 0x401b1020, 0x47ba: 0x401b1220, 0x47bb: 0x401b1420, - 0x47bc: 0x401b1620, 0x47bd: 0x401b1820, 0x47be: 0x401b1a20, 0x47bf: 0x401b1c20, - // Block 0x11f, offset 0x47c0 - 0x47c0: 0x401b1e20, 0x47c1: 0x401b2020, 0x47c2: 0x401b2220, 0x47c3: 0x401b2420, - 0x47c4: 0x401b2620, 0x47c5: 0x401b2820, 0x47c6: 0x401b2a20, 0x47c7: 0x401b2c20, - 0x47c8: 0x401b2e20, 0x47c9: 0x401b3020, 0x47ca: 0xe00001d6, - 0x47d0: 0x401b3220, 0x47d1: 0x401b3420, 0x47d2: 0x401b3620, 0x47d3: 0x401b3820, - 0x47d4: 0x401b3a20, 0x47d5: 0x401b3c20, 0x47d6: 0x401b3e20, 0x47d7: 0x401b4020, - 0x47d8: 0x401b4220, 0x47d9: 0x401b4420, 0x47da: 0x401b4620, 0x47db: 0x401b4820, - // Block 0x120, offset 0x4800 - 0x4810: 0x401b4a20, 0x4811: 0x401b4c20, 0x4812: 0x401b4e20, 0x4813: 0x401b5020, - 0x4814: 0x401b5220, 0x4815: 0x401b5420, 0x4816: 0x401b5620, 0x4817: 0x401b5820, - 0x4818: 0x401b5a20, 0x4819: 0x401b5c20, 0x481a: 0x401b5e20, 0x481b: 0x401b6020, - 0x481c: 0x401b6220, 0x481d: 0x401b6420, 0x481e: 0x401b6620, 0x481f: 0x401b6820, - 0x4820: 0x401b6a20, 0x4821: 0x401b6c20, 0x4822: 0x401b6e20, 0x4823: 0x401b7020, - 0x4824: 0x401b7220, 0x4825: 0x401b7420, 0x4826: 0x401b7620, 0x4827: 0x401b7820, - 0x4828: 0x401b7a20, 0x4829: 0x401b7c20, 0x482a: 0x401b7e20, 0x482b: 0x401b8020, - 0x482c: 0x401b8220, 0x482d: 0x401b8420, 0x482e: 0x401b8620, 0x482f: 0x401b8820, - 0x4830: 0x401b8a20, 0x4831: 0x401b8c20, 0x4832: 0x401b8e20, 0x4833: 0x401b9020, - 0x4834: 0x401b9220, 0x4835: 0x401b9420, 0x4836: 0x401b9620, 0x4837: 0x401b9820, - 0x4838: 0x401b9a20, 0x4839: 0x401b9c20, 0x483a: 0x401b9e20, 0x483b: 0x401ba020, - 0x483c: 0x401ba220, 0x483d: 0xadc13802, - // Block 0x121, offset 0x4840 - 0x4840: 0x4070b820, 0x4841: 0x4070ba20, 0x4842: 0x4070bc20, 0x4843: 0x4070be20, - 0x4844: 0x4070c020, 0x4845: 0x4070c220, 0x4846: 0x4070c420, 0x4847: 0x4070c620, - 0x4848: 0x4070c820, 0x4849: 0x4070ca20, 0x484a: 0x4070cc20, 0x484b: 0x4070ce20, - 0x484c: 0x4070d020, 0x484d: 0x4070d220, 0x484e: 0x4070d420, 0x484f: 0x4070d620, - 0x4850: 0x4070d820, 0x4851: 0x4070da20, 0x4852: 0x4070dc20, 0x4853: 0x4070de20, - 0x4854: 0x4070e020, 0x4855: 0x4070e220, 0x4856: 0x4070e420, 0x4857: 0x4070e620, - 0x4858: 0x4070e820, 0x4859: 0x4070ea20, 0x485a: 0x4070ec20, 0x485b: 0x4070ee20, - 0x485c: 0x4070f020, - 0x4860: 0x4070f220, 0x4861: 0x4070f420, 0x4862: 0x4070f620, 0x4863: 0x4070f820, - 0x4864: 0x4070fa20, 0x4865: 0x4070fc20, 0x4866: 0x4070fe20, 0x4867: 0x40710020, - 0x4868: 0x40710220, 0x4869: 0x40710420, 0x486a: 0x40710620, 0x486b: 0x40710820, - 0x486c: 0x40710a20, 0x486d: 0x40710c20, 0x486e: 0x40710e20, 0x486f: 0x40711020, - 0x4870: 0x40711220, 0x4871: 0x40711420, 0x4872: 0x40711620, 0x4873: 0x40711820, - 0x4874: 0x40711a20, 0x4875: 0x40711c20, 0x4876: 0x40711e20, 0x4877: 0x40712020, - 0x4878: 0x40712220, 0x4879: 0x40712420, 0x487a: 0x40712620, 0x487b: 0x40712820, - 0x487c: 0x40712a20, 0x487d: 0x40712c20, 0x487e: 0x40712e20, 0x487f: 0x40713020, - // Block 0x122, offset 0x4880 - 0x4880: 0x40713220, 0x4881: 0x40713420, 0x4882: 0x40713620, 0x4883: 0x40713820, - 0x4884: 0x40713a20, 0x4885: 0x40713c20, 0x4886: 0x40713e20, 0x4887: 0x40714020, - 0x4888: 0x40714220, 0x4889: 0x40714420, 0x488a: 0x40714620, 0x488b: 0x40714820, - 0x488c: 0x40714a20, 0x488d: 0x40714c20, 0x488e: 0x40714e20, 0x488f: 0x40715020, - 0x4890: 0x40715220, - // Block 0x123, offset 0x48c0 - 0x48c0: 0x40718820, 0x48c1: 0x40718a20, 0x48c2: 0x40718c20, 0x48c3: 0x40718e20, - 0x48c4: 0x40719020, 0x48c5: 0x40719220, 0x48c6: 0x40719420, 0x48c7: 0x40719620, - 0x48c8: 0x40719820, 0x48c9: 0x40719a20, 0x48ca: 0x40719c20, 0x48cb: 0x40719e20, - 0x48cc: 0x4071a020, 0x48cd: 0x4071a220, 0x48ce: 0x4071a420, 0x48cf: 0x4071a620, - 0x48d0: 0x4071a820, 0x48d1: 0x4071aa20, 0x48d2: 0x4071ac20, 0x48d3: 0x4071ae20, - 0x48d4: 0x4071b020, 0x48d5: 0x4071b220, 0x48d6: 0x4071b420, 0x48d7: 0x4071b620, - 0x48d8: 0x4071b820, 0x48d9: 0x4071ba20, 0x48da: 0x4071bc20, 0x48db: 0x4071be20, - 0x48dc: 0x4071c020, 0x48dd: 0x4071c220, 0x48de: 0x4071c420, - 0x48e0: 0xe0000279, 0x48e1: 0xe000060d, 0x48e2: 0x4028b620, 0x48e3: 0x4028b820, - 0x48f0: 0x4071c620, 0x48f1: 0x4071c820, 0x48f2: 0x4071ca20, 0x48f3: 0x4071cc20, - 0x48f4: 0x4071ce20, 0x48f5: 0x4071d020, 0x48f6: 0x4071d220, 0x48f7: 0x4071d420, - 0x48f8: 0x4071d620, 0x48f9: 0x4071d820, 0x48fa: 0x4071da20, 0x48fb: 0x4071dc20, - 0x48fc: 0x4071de20, 0x48fd: 0x4071e020, 0x48fe: 0x4071e220, 0x48ff: 0x4071e420, - // Block 0x124, offset 0x4900 - 0x4900: 0x4071e620, 0x4901: 0x4071e820, 0x4902: 0x4071ea20, 0x4903: 0x4071ec20, - 0x4904: 0x4071ee20, 0x4905: 0x4071f020, 0x4906: 0x4071f220, 0x4907: 0x4071f420, - 0x4908: 0x4071f620, 0x4909: 0x4071f820, 0x490a: 0x4071fa20, - // Block 0x125, offset 0x4940 - 0x4940: 0x40765020, 0x4941: 0x40765220, 0x4942: 0x40765420, 0x4943: 0x40765620, - 0x4944: 0x40765820, 0x4945: 0x40765a20, 0x4946: 0x40765c20, 0x4947: 0x40765e20, - 0x4948: 0x40766020, 0x4949: 0x40766220, 0x494a: 0x40766420, 0x494b: 0x40766620, - 0x494c: 0x40766820, 0x494d: 0x40766a20, 0x494e: 0x40766c20, 0x494f: 0x40766e20, - 0x4950: 0x40767020, 0x4951: 0x40767220, 0x4952: 0x40767420, 0x4953: 0x40767620, - 0x4954: 0x40767820, 0x4955: 0x40767a20, 0x4956: 0x40767c20, 0x4957: 0x40767e20, - 0x4958: 0x40768020, 0x4959: 0x40768220, 0x495a: 0x40768420, 0x495b: 0x40768620, - 0x495c: 0x40768820, 0x495d: 0x40768a20, 0x495f: 0x4003c420, - 0x4960: 0x40768c20, 0x4961: 0x40768e20, 0x4962: 0x40769020, 0x4963: 0x40769220, - 0x4964: 0x40769420, 0x4965: 0x40769620, 0x4966: 0x40769820, 0x4967: 0x40769a20, - 0x4968: 0x40769c20, 0x4969: 0x40769e20, 0x496a: 0x4076a020, 0x496b: 0x4076a220, - 0x496c: 0x4076a420, 0x496d: 0x4076a620, 0x496e: 0x4076a820, 0x496f: 0x4076aa20, - 0x4970: 0x4076ac20, 0x4971: 0x4076ae20, 0x4972: 0x4076b020, 0x4973: 0x4076b220, - 0x4974: 0x4076b420, 0x4975: 0x4076b620, 0x4976: 0x4076b820, 0x4977: 0x4076ba20, - 0x4978: 0x4076bc20, 0x4979: 0x4076be20, 0x497a: 0x4076c020, 0x497b: 0x4076c220, - 0x497c: 0x4076c420, 0x497d: 0x4076c620, 0x497e: 0x4076c820, 0x497f: 0x4076ca20, - // Block 0x126, offset 0x4980 - 0x4980: 0x4076cc20, 0x4981: 0x4076ce20, 0x4982: 0x4076d020, 0x4983: 0x4076d220, - 0x4988: 0x4076d420, 0x4989: 0x4076d620, 0x498a: 0x4076d820, 0x498b: 0x4076da20, - 0x498c: 0x4076dc20, 0x498d: 0x4076de20, 0x498e: 0x4076e020, 0x498f: 0x4076e220, - 0x4990: 0x4003c620, 0x4991: 0xe000027c, 0x4992: 0xe0000391, 0x4993: 0x40295a20, - 0x4994: 0x40295c20, 0x4995: 0x40295e20, - // Block 0x127, offset 0x49c0 - 0x49c0: 0x0071fc88, 0x49c1: 0x0071fe88, 0x49c2: 0x00720088, 0x49c3: 0x00720288, - 0x49c4: 0x00720488, 0x49c5: 0x00720688, 0x49c6: 0x00720888, 0x49c7: 0x00720a88, - 0x49c8: 0x00720c88, 0x49c9: 0x00720e88, 0x49ca: 0x00721088, 0x49cb: 0x00721288, - 0x49cc: 0x00721488, 0x49cd: 0x00721688, 0x49ce: 0x00721888, 0x49cf: 0x00721a88, - 0x49d0: 0x00721c88, 0x49d1: 0x00721e88, 0x49d2: 0x00722088, 0x49d3: 0x00722288, - 0x49d4: 0x00722488, 0x49d5: 0x00722688, 0x49d6: 0x00722888, 0x49d7: 0x00722a88, - 0x49d8: 0x00722c88, 0x49d9: 0x00722e88, 0x49da: 0x00723088, 0x49db: 0x00723288, - 0x49dc: 0x00723488, 0x49dd: 0x00723688, 0x49de: 0x00723888, 0x49df: 0x00723a88, - 0x49e0: 0x00723c88, 0x49e1: 0x00723e88, 0x49e2: 0x00724088, 0x49e3: 0x00724288, - 0x49e4: 0x00724488, 0x49e5: 0x00724688, 0x49e6: 0x00724888, 0x49e7: 0x00724a88, - 0x49e8: 0x4071fc20, 0x49e9: 0x4071fe20, 0x49ea: 0x40720020, 0x49eb: 0x40720220, - 0x49ec: 0x40720420, 0x49ed: 0x40720620, 0x49ee: 0x40720820, 0x49ef: 0x40720a20, - 0x49f0: 0x40720c20, 0x49f1: 0x40720e20, 0x49f2: 0x40721020, 0x49f3: 0x40721220, - 0x49f4: 0x40721420, 0x49f5: 0x40721620, 0x49f6: 0x40721820, 0x49f7: 0x40721a20, - 0x49f8: 0x40721c20, 0x49f9: 0x40721e20, 0x49fa: 0x40722020, 0x49fb: 0x40722220, - 0x49fc: 0x40722420, 0x49fd: 0x40722620, 0x49fe: 0x40722820, 0x49ff: 0x40722a20, - // Block 0x128, offset 0x4a00 - 0x4a00: 0x40722c20, 0x4a01: 0x40722e20, 0x4a02: 0x40723020, 0x4a03: 0x40723220, - 0x4a04: 0x40723420, 0x4a05: 0x40723620, 0x4a06: 0x40723820, 0x4a07: 0x40723a20, - 0x4a08: 0x40723c20, 0x4a09: 0x40723e20, 0x4a0a: 0x40724020, 0x4a0b: 0x40724220, - 0x4a0c: 0x40724420, 0x4a0d: 0x40724620, 0x4a0e: 0x40724820, 0x4a0f: 0x40724a20, - 0x4a10: 0x40724c20, 0x4a11: 0x40724e20, 0x4a12: 0x40725020, 0x4a13: 0x40725220, - 0x4a14: 0x40725420, 0x4a15: 0x40725620, 0x4a16: 0x40725820, 0x4a17: 0x40725a20, - 0x4a18: 0x40725c20, 0x4a19: 0x40725e20, 0x4a1a: 0x40726020, 0x4a1b: 0x40726220, - 0x4a1c: 0x40726420, 0x4a1d: 0x40726620, 0x4a1e: 0x40726820, 0x4a1f: 0x40726a20, - 0x4a20: 0x40726c20, 0x4a21: 0x40726e20, 0x4a22: 0x40727020, 0x4a23: 0x40727220, - 0x4a24: 0x40727420, 0x4a25: 0x40727620, 0x4a26: 0x40727820, 0x4a27: 0x40727a20, - 0x4a28: 0x40727c20, 0x4a29: 0x40727e20, 0x4a2a: 0x40728020, 0x4a2b: 0x40728220, - 0x4a2c: 0x40728420, 0x4a2d: 0x40728620, 0x4a2e: 0x40728820, 0x4a2f: 0x40728a20, - 0x4a30: 0x40728c20, 0x4a31: 0x40728e20, 0x4a32: 0x40729020, 0x4a33: 0x40729220, - 0x4a34: 0x40729420, 0x4a35: 0x40729620, 0x4a36: 0x40729820, 0x4a37: 0x40729a20, - 0x4a38: 0x40729c20, 0x4a39: 0x40729e20, 0x4a3a: 0x4072a020, 0x4a3b: 0x4072a220, - 0x4a3c: 0x4072a420, 0x4a3d: 0x4072a620, 0x4a3e: 0x4072a820, 0x4a3f: 0x4072aa20, - // Block 0x129, offset 0x4a40 - 0x4a40: 0x4072ac20, 0x4a41: 0x4072ae20, 0x4a42: 0x4072b020, 0x4a43: 0x4072b220, - 0x4a44: 0x4072b420, 0x4a45: 0x4072b620, 0x4a46: 0x4072b820, 0x4a47: 0x4072ba20, - 0x4a48: 0x4072bc20, 0x4a49: 0x4072be20, 0x4a4a: 0x4072c020, 0x4a4b: 0x4072c220, - 0x4a4c: 0x4072c420, 0x4a4d: 0x4072c620, 0x4a4e: 0x4072c820, 0x4a4f: 0x4072ca20, - 0x4a50: 0x4072cc20, 0x4a51: 0x4072ce20, 0x4a52: 0x4072d020, 0x4a53: 0x4072d220, - 0x4a54: 0x4072d420, 0x4a55: 0x4072d620, 0x4a56: 0x4072d820, 0x4a57: 0x4072da20, - 0x4a58: 0x4072dc20, 0x4a59: 0x4072de20, 0x4a5a: 0x4072e020, 0x4a5b: 0x4072e220, - 0x4a5c: 0x4072e420, 0x4a5d: 0x4072e620, - 0x4a60: 0xe0000167, 0x4a61: 0xe00001f5, 0x4a62: 0xe0000310, 0x4a63: 0xe00003ea, - 0x4a64: 0xe00004c5, 0x4a65: 0xe000058f, 0x4a66: 0xe000065a, 0x4a67: 0xe0000702, - 0x4a68: 0xe00007ae, 0x4a69: 0xe0000853, - // Block 0x12a, offset 0x4a80 - 0x4a80: 0x4074c020, 0x4a81: 0x4074c220, 0x4a82: 0x4074c420, 0x4a83: 0x4074c620, - 0x4a84: 0x4074c820, 0x4a85: 0x4074ca20, - 0x4a88: 0x4074cc20, 0x4a8a: 0x4074ce20, 0x4a8b: 0x4074d020, - 0x4a8c: 0x4074d220, 0x4a8d: 0x4074d420, 0x4a8e: 0x4074d620, 0x4a8f: 0x4074d820, - 0x4a90: 0x4074da20, 0x4a91: 0x4074dc20, 0x4a92: 0x4074de20, 0x4a93: 0x4074e020, - 0x4a94: 0x4074e220, 0x4a95: 0x4074e420, 0x4a96: 0x4074e620, 0x4a97: 0x4074e820, - 0x4a98: 0x4074ea20, 0x4a99: 0x4074ec20, 0x4a9a: 0x4074ee20, 0x4a9b: 0x4074f020, - 0x4a9c: 0x4074f220, 0x4a9d: 0x4074f420, 0x4a9e: 0x4074f620, 0x4a9f: 0x4074f820, - 0x4aa0: 0x4074fa20, 0x4aa1: 0x4074fc20, 0x4aa2: 0x4074fe20, 0x4aa3: 0x40750020, - 0x4aa4: 0x40750220, 0x4aa5: 0x40750420, 0x4aa6: 0x40750620, 0x4aa7: 0x40750820, - 0x4aa8: 0x40750a20, 0x4aa9: 0x40750c20, 0x4aaa: 0x40750e20, 0x4aab: 0x40751020, - 0x4aac: 0x40751220, 0x4aad: 0x40751420, 0x4aae: 0x40751620, 0x4aaf: 0x40751820, - 0x4ab0: 0x40751a20, 0x4ab1: 0x40751c20, 0x4ab2: 0x40751e20, 0x4ab3: 0x40752020, - 0x4ab4: 0x40752220, 0x4ab5: 0x40752420, 0x4ab7: 0x40752620, - 0x4ab8: 0x40752820, - 0x4abc: 0x40752a20, 0x4abf: 0x40752c20, - // Block 0x12b, offset 0x4ac0 - 0x4ac0: 0x4075d220, 0x4ac1: 0x4075d420, 0x4ac2: 0x4075d620, 0x4ac3: 0x4075d820, - 0x4ac4: 0x4075da20, 0x4ac5: 0x4075dc20, 0x4ac6: 0x4075de20, 0x4ac7: 0x4075e020, - 0x4ac8: 0x4075e220, 0x4ac9: 0x4075e420, 0x4aca: 0x4075e620, 0x4acb: 0x4075e820, - 0x4acc: 0x4075ea20, 0x4acd: 0x4075ec20, 0x4ace: 0x4075ee20, 0x4acf: 0x4075f020, - 0x4ad0: 0x4075f220, 0x4ad1: 0x4075f420, 0x4ad2: 0x4075f620, 0x4ad3: 0x4075f820, - 0x4ad4: 0x4075fa20, 0x4ad5: 0x4075fc20, 0x4ad7: 0x40038620, - 0x4ad8: 0xe0000297, 0x4ad9: 0xe00003b2, 0x4ada: 0xe000048c, 0x4adb: 0x40296820, - 0x4adc: 0x40296a20, 0x4add: 0x40296c20, 0x4ade: 0x40296e20, 0x4adf: 0x40297020, - // Block 0x12c, offset 0x4b00 - 0x4b00: 0x4038bc20, 0x4b01: 0x4038be20, 0x4b02: 0x4038c020, 0x4b03: 0x4038c220, - 0x4b04: 0x4038c420, 0x4b05: 0x4038c620, 0x4b06: 0x4038c820, 0x4b07: 0x4038ca20, - 0x4b08: 0x4038cc20, 0x4b09: 0x4038ce20, 0x4b0a: 0x4038d020, 0x4b0b: 0x4038d220, - 0x4b0c: 0x4038d420, 0x4b0d: 0x4038d620, 0x4b0e: 0x4038d820, 0x4b0f: 0x4038da20, - 0x4b10: 0x4038dc20, 0x4b11: 0x4038de20, 0x4b12: 0x4038e020, 0x4b13: 0x4038e220, - 0x4b14: 0x4038e420, 0x4b15: 0x4038e620, 0x4b16: 0xe0000294, 0x4b17: 0x40296220, - 0x4b18: 0x40296420, 0x4b19: 0x40296620, 0x4b1a: 0xe00003af, 0x4b1b: 0xe0000489, - 0x4b1f: 0x4003c820, - 0x4b20: 0x40715420, 0x4b21: 0x40715620, 0x4b22: 0x40715820, 0x4b23: 0x40715a20, - 0x4b24: 0x40715c20, 0x4b25: 0x40715e20, 0x4b26: 0x40716020, 0x4b27: 0x40716220, - 0x4b28: 0x40716420, 0x4b29: 0x40716620, 0x4b2a: 0x40716820, 0x4b2b: 0x40716a20, - 0x4b2c: 0x40716c20, 0x4b2d: 0x40716e20, 0x4b2e: 0x40717020, 0x4b2f: 0x40717220, - 0x4b30: 0x40717420, 0x4b31: 0x40717620, 0x4b32: 0x40717820, 0x4b33: 0x40717a20, - 0x4b34: 0x40717c20, 0x4b35: 0x40717e20, 0x4b36: 0x40718020, 0x4b37: 0x40718220, - 0x4b38: 0x40718420, 0x4b39: 0x40718620, - 0x4b3f: 0x4003bc20, - // Block 0x12d, offset 0x4b40 - 0x4b40: 0xe00023a4, 0x4b41: 0xe00023a7, 0x4b42: 0xe00023aa, 0x4b43: 0xe00023ad, - 0x4b44: 0xe00023b0, 0x4b45: 0xe00023b3, 0x4b46: 0xe00023b6, 0x4b47: 0xe00023b9, - 0x4b48: 0xe00023bc, 0x4b49: 0xe00023bf, 0x4b4a: 0xe00023c2, 0x4b4b: 0xe00023c5, - 0x4b4c: 0xe00023c8, 0x4b4d: 0xe00023cb, 0x4b4e: 0xe00023ce, 0x4b4f: 0xe00023d1, - 0x4b50: 0xe00023d4, 0x4b51: 0xe00023d7, 0x4b52: 0xe00023da, 0x4b53: 0xe00023e0, - 0x4b54: 0xe00023e3, 0x4b55: 0xe00023e6, 0x4b56: 0xe00023e9, 0x4b57: 0xe00023ec, - 0x4b58: 0xe00023ef, 0x4b59: 0xe00023f2, 0x4b5a: 0xe00023f5, 0x4b5b: 0xe00023f8, - 0x4b5c: 0xe00023fb, 0x4b5d: 0xe00023fe, 0x4b5e: 0x40865220, 0x4b5f: 0x40865420, - 0x4b60: 0x40862020, 0x4b61: 0x40862220, 0x4b62: 0x40862420, 0x4b63: 0x40862620, - 0x4b64: 0x40862820, 0x4b65: 0x40862a20, 0x4b66: 0x40862c20, 0x4b67: 0x40862e20, - 0x4b68: 0x40863020, 0x4b69: 0x40863220, 0x4b6a: 0x40863420, 0x4b6b: 0x40863620, - 0x4b6c: 0x40863820, 0x4b6d: 0x40863a20, 0x4b6e: 0x40863c20, 0x4b6f: 0x40863e20, - 0x4b70: 0xe00023dd, 0x4b71: 0x40864020, 0x4b72: 0x40864220, 0x4b73: 0x40864420, - 0x4b74: 0x40864620, 0x4b75: 0x40864820, 0x4b76: 0x40864a20, 0x4b77: 0x40864c20, - 0x4b7e: 0x40864e20, 0x4b7f: 0x40865020, - // Block 0x12e, offset 0x4b80 - 0x4b80: 0x4048bc20, 0x4b81: 0x4048be20, 0x4b82: 0x4048c020, 0x4b83: 0x4048c220, - 0x4b85: 0x4048c420, 0x4b86: 0x4048c620, - 0x4b8c: 0x4048c820, 0x4b8d: 0xadc06002, 0x4b8e: 0xa000f302, 0x4b8f: 0xae60f402, - 0x4b90: 0x4048ca20, 0x4b91: 0x4048cc20, 0x4b92: 0x4048ce20, 0x4b93: 0x4048d020, - 0x4b95: 0x4048d220, 0x4b96: 0x4048d420, 0x4b97: 0x4048d620, - 0x4b99: 0x4048d820, 0x4b9a: 0x4048da20, 0x4b9b: 0x4048dc20, - 0x4b9c: 0x4048de20, 0x4b9d: 0x4048e020, 0x4b9e: 0x4048e220, 0x4b9f: 0x4048e420, - 0x4ba0: 0x4048e620, 0x4ba1: 0x4048e820, 0x4ba2: 0x4048ea20, 0x4ba3: 0x4048ec20, - 0x4ba4: 0x4048ee20, 0x4ba5: 0x4048f020, 0x4ba6: 0x4048f220, 0x4ba7: 0x4048f420, - 0x4ba8: 0x4048f620, 0x4ba9: 0x4048f820, 0x4baa: 0x4048fa20, 0x4bab: 0x4048fc20, - 0x4bac: 0x4048fe20, 0x4bad: 0x40490020, 0x4bae: 0x40490220, 0x4baf: 0x40490420, - 0x4bb0: 0x40490620, 0x4bb1: 0x40490820, 0x4bb2: 0x40490a20, 0x4bb3: 0x40490c20, - 0x4bb8: 0xae60fb02, 0x4bb9: 0xa010fc02, 0x4bba: 0xadc0fd02, - 0x4bbf: 0x82092487, - // Block 0x12f, offset 0x4bc0 - 0x4bc0: 0xe00002ac, 0x4bc1: 0xe00003c7, 0x4bc2: 0xe00004a1, 0x4bc3: 0xe0000573, - 0x4bc4: 0x40299820, 0x4bc5: 0x40299a20, 0x4bc6: 0x40299c20, 0x4bc7: 0x40299e20, - 0x4bd0: 0x40060620, 0x4bd1: 0x40060820, 0x4bd2: 0x40060a20, 0x4bd3: 0x40060c20, - 0x4bd4: 0x40060e20, 0x4bd5: 0x40061020, 0x4bd6: 0x40034420, 0x4bd7: 0x40034620, - 0x4bd8: 0x40061220, - 0x4be0: 0x40752e20, 0x4be1: 0x40753020, 0x4be2: 0x40753220, 0x4be3: 0x40753420, - 0x4be4: 0x40753620, 0x4be5: 0x40753820, 0x4be6: 0x40753a20, 0x4be7: 0x40753c20, - 0x4be8: 0x40753e20, 0x4be9: 0x40754020, 0x4bea: 0x40754220, 0x4beb: 0x40754420, - 0x4bec: 0x40754620, 0x4bed: 0x40754820, 0x4bee: 0x40754a20, 0x4bef: 0x40754c20, - 0x4bf0: 0x40754e20, 0x4bf1: 0x40755020, 0x4bf2: 0x40755220, 0x4bf3: 0x40755420, - 0x4bf4: 0x40755620, 0x4bf5: 0x40755820, 0x4bf6: 0x40755a20, 0x4bf7: 0x40755c20, - 0x4bf8: 0x40755e20, 0x4bf9: 0x40756020, 0x4bfa: 0x40756220, 0x4bfb: 0x40756420, - 0x4bfc: 0x40756620, 0x4bfd: 0xe0000291, 0x4bfe: 0x40296020, 0x4bff: 0x40061c20, - // Block 0x130, offset 0x4c00 - 0x4c00: 0x40756820, 0x4c01: 0x40756a20, 0x4c02: 0x40756c20, 0x4c03: 0x40756e20, - 0x4c04: 0x40757020, 0x4c05: 0x40757220, 0x4c06: 0x40757420, 0x4c07: 0x40757620, - 0x4c08: 0x40757820, 0x4c09: 0x40757a20, 0x4c0a: 0x40757c20, 0x4c0b: 0x40757e20, - 0x4c0c: 0x40758020, 0x4c0d: 0x40758220, 0x4c0e: 0x40758420, 0x4c0f: 0x40758620, - 0x4c10: 0x40758820, 0x4c11: 0x40758a20, 0x4c12: 0x40758c20, 0x4c13: 0x40758e20, - 0x4c14: 0x40759020, 0x4c15: 0x40759220, 0x4c16: 0x40759420, 0x4c17: 0x40759620, - 0x4c18: 0x40759820, 0x4c19: 0x40759a20, 0x4c1a: 0x40759c20, 0x4c1b: 0x40759e20, - 0x4c1c: 0x4075a020, 0x4c1d: 0x4075a220, 0x4c1e: 0x4075a420, 0x4c1f: 0x4075a620, - 0x4c20: 0x4075a820, 0x4c21: 0x4075aa20, 0x4c22: 0x4075ac20, 0x4c23: 0x4075ae20, - 0x4c24: 0x4075b020, 0x4c25: 0x4075b220, 0x4c26: 0x4075b420, 0x4c27: 0x4075b620, - 0x4c28: 0x4075b820, 0x4c29: 0x4075ba20, 0x4c2a: 0x4075bc20, 0x4c2b: 0x4075be20, - 0x4c2c: 0x4075c020, 0x4c2d: 0x4075c220, 0x4c2e: 0xe00023a1, 0x4c2f: 0x4075c420, - 0x4c30: 0x4075c620, 0x4c31: 0x4075c820, 0x4c32: 0x4075ca20, 0x4c33: 0x4075cc20, - 0x4c34: 0x4075ce20, 0x4c35: 0x4075d020, - 0x4c39: 0x40061420, 0x4c3a: 0x40038820, 0x4c3b: 0x40038a20, - 0x4c3c: 0x40038c20, 0x4c3d: 0x40038e20, 0x4c3e: 0x40039020, 0x4c3f: 0x40039220, - // Block 0x131, offset 0x4c40 - 0x4c40: 0x4075fe20, 0x4c41: 0x40760020, 0x4c42: 0x40760220, 0x4c43: 0x40760420, - 0x4c44: 0x40760620, 0x4c45: 0x40760820, 0x4c46: 0x40760a20, 0x4c47: 0x40760c20, - 0x4c48: 0x40760e20, 0x4c49: 0x40761020, 0x4c4a: 0x40761220, 0x4c4b: 0x40761420, - 0x4c4c: 0x40761620, 0x4c4d: 0x40761820, 0x4c4e: 0x40761a20, 0x4c4f: 0x40761c20, - 0x4c50: 0x40761e20, 0x4c51: 0x40762020, 0x4c52: 0x40762220, 0x4c53: 0x40762420, - 0x4c54: 0x40762620, 0x4c55: 0x40762820, - 0x4c58: 0xe000029a, 0x4c59: 0xe00003b5, 0x4c5a: 0xe000048f, 0x4c5b: 0xe0000561, - 0x4c5c: 0x40297220, 0x4c5d: 0x40297420, 0x4c5e: 0x40297620, 0x4c5f: 0x40297820, - 0x4c60: 0x40762a20, 0x4c61: 0x40762c20, 0x4c62: 0x40762e20, 0x4c63: 0x40763020, - 0x4c64: 0x40763220, 0x4c65: 0x40763420, 0x4c66: 0x40763620, 0x4c67: 0x40763820, - 0x4c68: 0x40763a20, 0x4c69: 0x40763c20, 0x4c6a: 0x40763e20, 0x4c6b: 0x40764020, - 0x4c6c: 0x40764220, 0x4c6d: 0x40764420, 0x4c6e: 0x40764620, 0x4c6f: 0x40764820, - 0x4c70: 0x40764a20, 0x4c71: 0x40764c20, 0x4c72: 0x40764e20, - 0x4c78: 0xe000029d, 0x4c79: 0xe00003b8, 0x4c7a: 0xe0000492, 0x4c7b: 0xe0000564, - 0x4c7c: 0x40297a20, 0x4c7d: 0x40297c20, 0x4c7e: 0x40297e20, 0x4c7f: 0x40298020, - // Block 0x132, offset 0x4c80 - 0x4c80: 0x405b2620, 0x4c81: 0xe00020a7, 0x4c82: 0x405b2820, 0x4c83: 0x405b2a20, - 0x4c84: 0xe00020aa, 0x4c85: 0x405b2c20, 0x4c86: 0x405b2e20, 0x4c87: 0x405b3020, - 0x4c88: 0xe00020ad, 0x4c89: 0x405b3220, 0x4c8a: 0xe00020b0, 0x4c8b: 0x405b3420, - 0x4c8c: 0xe00020b3, 0x4c8d: 0x405b3620, 0x4c8e: 0xe00020b6, 0x4c8f: 0x405b3820, - 0x4c90: 0xe00020b9, 0x4c91: 0x405b3a20, 0x4c92: 0xe00020bc, 0x4c93: 0x405b3c20, - 0x4c94: 0x405b3e20, 0x4c95: 0xe00020bf, 0x4c96: 0x405b4020, 0x4c97: 0xe00020c2, - 0x4c98: 0x405b4220, 0x4c99: 0xe00020c5, 0x4c9a: 0x405b4420, 0x4c9b: 0xe00020c8, - 0x4c9c: 0x405b4620, 0x4c9d: 0xe00020cb, 0x4c9e: 0x405b4820, 0x4c9f: 0xe00020ce, - 0x4ca0: 0x405b4a20, 0x4ca1: 0x405b4c20, 0x4ca2: 0x405b4e20, 0x4ca3: 0x405b5020, - 0x4ca4: 0x405b5220, 0x4ca5: 0xe00020d1, 0x4ca6: 0x405b5420, 0x4ca7: 0xe00020d4, - 0x4ca8: 0x405b5620, 0x4ca9: 0xe00020d7, 0x4caa: 0x405b5820, 0x4cab: 0xe00020da, - 0x4cac: 0x405b5a20, 0x4cad: 0x405b5c20, 0x4cae: 0xe00020dd, 0x4caf: 0x405b5e20, - 0x4cb0: 0x405b6020, 0x4cb1: 0x405b6220, 0x4cb2: 0x405b6420, 0x4cb3: 0xe00020e0, - 0x4cb4: 0x405b6620, 0x4cb5: 0xe00020e3, 0x4cb6: 0x405b6820, 0x4cb7: 0xe00020e6, - 0x4cb8: 0x405b6a20, 0x4cb9: 0xe00020e9, 0x4cba: 0x405b6c20, 0x4cbb: 0xe00020ec, - 0x4cbc: 0x405b6e20, 0x4cbd: 0x405b7020, 0x4cbe: 0x405b7220, 0x4cbf: 0x405b7420, - // Block 0x133, offset 0x4cc0 - 0x4cc0: 0xe00020ef, 0x4cc1: 0x405b7620, 0x4cc2: 0xe00020f2, 0x4cc3: 0x405b7820, - 0x4cc4: 0xe00020f5, 0x4cc5: 0x405b7a20, 0x4cc6: 0xe00020f8, 0x4cc7: 0x405b7c20, - 0x4cc8: 0x405b7e20, - // Block 0x134, offset 0x4d00 - 0x4d20: 0xe00001ec, 0x4d21: 0xe0000307, 0x4d22: 0xe00003e1, 0x4d23: 0xe00004bc, - 0x4d24: 0xe0000586, 0x4d25: 0xe0000651, 0x4d26: 0xe00006f9, 0x4d27: 0xe00007a5, - 0x4d28: 0xe000084a, 0x4d29: 0x40288820, 0x4d2a: 0x40288a20, 0x4d2b: 0x40288c20, - 0x4d2c: 0x40288e20, 0x4d2d: 0x40289020, 0x4d2e: 0x40289220, 0x4d2f: 0x40289420, - 0x4d30: 0x40289620, 0x4d31: 0x40289820, 0x4d32: 0x40289a20, 0x4d33: 0x40289c20, - 0x4d34: 0x40289e20, 0x4d35: 0x4028a020, 0x4d36: 0x4028a220, 0x4d37: 0x4028a420, - 0x4d38: 0x4028a620, 0x4d39: 0x4028a820, 0x4d3a: 0x4028aa20, 0x4d3b: 0x4028ac20, - 0x4d3c: 0x4028ae20, 0x4d3d: 0x4028b020, 0x4d3e: 0x4028b220, - // Block 0x135, offset 0x4d40 - 0x4d40: 0xa000f202, 0x4d41: 0xa000f302, 0x4d42: 0xa000f402, 0x4d43: 0x40489220, - 0x4d44: 0x40489420, 0x4d45: 0x40483420, 0x4d46: 0x40483620, 0x4d47: 0x40483820, - 0x4d48: 0x40483a20, 0x4d49: 0x40483c20, 0x4d4a: 0x40483e20, 0x4d4b: 0x40484020, - 0x4d4c: 0x40484220, 0x4d4d: 0x40484420, 0x4d4e: 0x40484620, 0x4d4f: 0x40484820, - 0x4d50: 0x40484a20, 0x4d51: 0x40484c20, 0x4d52: 0x40484e20, 0x4d53: 0x40485020, - 0x4d54: 0x40485220, 0x4d55: 0x40485420, 0x4d56: 0x40485620, 0x4d57: 0x40485820, - 0x4d58: 0x40485a20, 0x4d59: 0x40485c20, 0x4d5a: 0x40485e20, 0x4d5b: 0x40486020, - 0x4d5c: 0x40486220, 0x4d5d: 0x40486420, 0x4d5e: 0x40486620, 0x4d5f: 0x40486820, - 0x4d60: 0x40486a20, 0x4d61: 0x40486c20, 0x4d62: 0x40486e20, 0x4d63: 0x40487020, - 0x4d64: 0x40487220, 0x4d65: 0x40487420, 0x4d66: 0x40487620, 0x4d67: 0x40487820, - 0x4d68: 0x40487a20, 0x4d69: 0x40487c20, 0x4d6a: 0x40487e20, 0x4d6b: 0x40488020, - 0x4d6c: 0x40488220, 0x4d6d: 0x40488420, 0x4d6e: 0x40488620, 0x4d6f: 0x40488820, - 0x4d70: 0x40488a20, 0x4d71: 0x40488c20, 0x4d72: 0x40488e20, 0x4d73: 0x40489020, - 0x4d74: 0x40489620, 0x4d75: 0x40489820, 0x4d76: 0x40489a20, 0x4d77: 0x40489c20, - 0x4d78: 0x40489e20, 0x4d79: 0x4048a020, 0x4d7a: 0x4048a220, 0x4d7b: 0x4048a420, - 0x4d7c: 0x4048a620, 0x4d7d: 0x4048a820, 0x4d7e: 0x4048aa20, 0x4d7f: 0x4048ac20, - // Block 0x136, offset 0x4d80 - 0x4d80: 0x4048ae20, 0x4d81: 0x4048b020, 0x4d82: 0x4048b220, 0x4d83: 0x4048b420, - 0x4d84: 0x4048b620, 0x4d85: 0x4048b820, 0x4d86: 0x8209245d, 0x4d87: 0x40034820, - 0x4d88: 0x40034a20, 0x4d89: 0x4005fc20, 0x4d8a: 0x4005fe20, 0x4d8b: 0x40060020, - 0x4d8c: 0x40060220, 0x4d8d: 0x40060420, - 0x4d92: 0xe00002a9, 0x4d93: 0xe00003c4, - 0x4d94: 0xe000049e, 0x4d95: 0xe0000570, 0x4d96: 0xe000063a, 0x4d97: 0xe00006ea, - 0x4d98: 0xe0000792, 0x4d99: 0xe000083b, 0x4d9a: 0xe00008e6, 0x4d9b: 0x40298220, - 0x4d9c: 0x40298420, 0x4d9d: 0x40298620, 0x4d9e: 0x40298820, 0x4d9f: 0x40298a20, - 0x4da0: 0x40298c20, 0x4da1: 0x40298e20, 0x4da2: 0x40299020, 0x4da3: 0x40299220, - 0x4da4: 0x40299420, 0x4da5: 0x40299620, 0x4da6: 0xe00001df, 0x4da7: 0xe00002a6, - 0x4da8: 0xe00003c1, 0x4da9: 0xe000049b, 0x4daa: 0xe000056d, 0x4dab: 0xe0000637, - 0x4dac: 0xe00006e7, 0x4dad: 0xe000078f, 0x4dae: 0xe0000838, 0x4daf: 0xe00008e3, - // Block 0x137, offset 0x4dc0 - 0x4dc0: 0xa000f202, 0x4dc1: 0xa000f302, 0x4dc2: 0xa000f402, 0x4dc3: 0x40467e20, - 0x4dc4: 0x40468020, 0x4dc5: 0x40468220, 0x4dc6: 0x40468420, 0x4dc7: 0x40468620, - 0x4dc8: 0x40468820, 0x4dc9: 0x40468a20, 0x4dca: 0x40468c20, 0x4dcb: 0x40468e20, - 0x4dcc: 0x40469020, 0x4dcd: 0x40469220, 0x4dce: 0x40469420, 0x4dcf: 0x40469620, - 0x4dd0: 0x40469820, 0x4dd1: 0x40469a20, 0x4dd2: 0x40469c20, 0x4dd3: 0x40469e20, - 0x4dd4: 0x4046a020, 0x4dd5: 0x4046a220, 0x4dd6: 0x4046a420, 0x4dd7: 0x4046a620, - 0x4dd8: 0x4046a820, 0x4dd9: 0x4046aa20, 0x4dda: 0xe0001878, 0x4ddb: 0x4046ac20, - 0x4ddc: 0xe000187b, 0x4ddd: 0x4046ae20, 0x4dde: 0x4046b020, 0x4ddf: 0x4046b220, - 0x4de0: 0x4046b420, 0x4de1: 0x4046b620, 0x4de2: 0x4046b820, 0x4de3: 0x4046ba20, - 0x4de4: 0x4046bc20, 0x4de5: 0x4046be20, 0x4de6: 0x4046c020, 0x4de7: 0x4046c220, - 0x4de8: 0x4046c420, 0x4de9: 0x4046c620, 0x4dea: 0x4046c820, 0x4deb: 0xe000187e, - 0x4dec: 0x4046ca20, 0x4ded: 0x4046cc20, 0x4dee: 0x4046ce20, 0x4def: 0x4046d020, - 0x4df0: 0x4046d220, 0x4df1: 0x4046d420, 0x4df2: 0x4046d620, 0x4df3: 0x4046d820, - 0x4df4: 0x4046da20, 0x4df5: 0x4046dc20, 0x4df6: 0x4046de20, 0x4df7: 0x4046e020, - 0x4df8: 0x4046e220, 0x4df9: 0x82092372, 0x4dfa: 0xa070f102, 0x4dfb: 0x40061620, - 0x4dfc: 0x40061820, 0x4dfd: 0xa0000000, 0x4dfe: 0x40039420, 0x4dff: 0x40039620, - // Block 0x138, offset 0x4e00 - 0x4e00: 0x40034c20, 0x4e01: 0x40034e20, - 0x4e10: 0x4072e820, 0x4e11: 0x4072ea20, 0x4e12: 0x4072ec20, 0x4e13: 0x4072ee20, - 0x4e14: 0x4072f020, 0x4e15: 0x4072f220, 0x4e16: 0x4072f420, 0x4e17: 0x4072f620, - 0x4e18: 0x4072f820, 0x4e19: 0x4072fa20, 0x4e1a: 0x4072fc20, 0x4e1b: 0x4072fe20, - 0x4e1c: 0x40730020, 0x4e1d: 0x40730220, 0x4e1e: 0x40730420, 0x4e1f: 0x40730620, - 0x4e20: 0x40730820, 0x4e21: 0x40730a20, 0x4e22: 0x40730c20, 0x4e23: 0x40730e20, - 0x4e24: 0x40731020, 0x4e25: 0x40731220, 0x4e26: 0x40731420, 0x4e27: 0x40731620, - 0x4e28: 0x40731820, - 0x4e30: 0xe00001d0, 0x4e31: 0xe0000264, 0x4e32: 0xe000037c, 0x4e33: 0xe0000456, - 0x4e34: 0xe000052b, 0x4e35: 0xe00005f5, 0x4e36: 0xe00006c0, 0x4e37: 0xe0000768, - 0x4e38: 0xe0000814, 0x4e39: 0xe00008b9, - // Block 0x139, offset 0x4e40 - 0x4e40: 0xae60f202, 0x4e41: 0xae60f302, 0x4e42: 0xae60f402, 0x4e43: 0x404f4020, - 0x4e44: 0x404f4220, 0x4e45: 0x404f4420, 0x4e46: 0x404f4620, 0x4e47: 0x404f4820, - 0x4e48: 0x404f4a20, 0x4e49: 0x404f4c20, 0x4e4a: 0x404f4e20, 0x4e4b: 0x404f5020, - 0x4e4c: 0x404f5220, 0x4e4d: 0x404f5420, 0x4e4e: 0x404f5620, 0x4e4f: 0x404f5820, - 0x4e50: 0x404f5a20, 0x4e51: 0x404f5c20, 0x4e52: 0x404f5e20, 0x4e53: 0x404f6020, - 0x4e54: 0x404f6220, 0x4e55: 0x404f6420, 0x4e56: 0x404f6620, 0x4e57: 0x404f6820, - 0x4e58: 0x404f6a20, 0x4e59: 0x404f6c20, 0x4e5a: 0x404f6e20, 0x4e5b: 0x404f7020, - 0x4e5c: 0x404f7220, 0x4e5d: 0x404f7420, 0x4e5e: 0x404f7620, 0x4e5f: 0x404f7820, - 0x4e60: 0x404f7a20, 0x4e61: 0x404f7c20, 0x4e62: 0x404f7e20, 0x4e63: 0x404f8020, - 0x4e64: 0x404f8220, 0x4e65: 0x404f8420, 0x4e66: 0x404f8620, 0x4e67: 0x404f8820, - 0x4e68: 0x404f8a20, 0x4e69: 0x404f8c20, 0x4e6a: 0x404f8e20, 0x4e6b: 0x404f9020, - 0x4e6c: 0x404f9220, 0x4e6d: 0x404f9420, 0x4e6e: 0x404f9620, 0x4e6f: 0x404f9820, - 0x4e70: 0x404f9a20, 0x4e71: 0xc31507e1, 0x4e72: 0xc31707e1, 0x4e73: 0x820927d0, - 0x4e74: 0x820927d1, 0x4e76: 0xe00001b2, 0x4e77: 0xe0000246, - 0x4e78: 0xe000035e, 0x4e79: 0xe0000438, 0x4e7a: 0xe000050d, 0x4e7b: 0xe00005d7, - 0x4e7c: 0xe00006a2, 0x4e7d: 0xe000074a, 0x4e7e: 0xe00007f6, 0x4e7f: 0xe000089b, - // Block 0x13a, offset 0x4e80 - 0x4e80: 0x40039820, 0x4e81: 0x40035020, 0x4e82: 0x40035220, 0x4e83: 0x4002de20, - // Block 0x13b, offset 0x4ec0 - 0x4ec0: 0xa000f202, 0x4ec1: 0xa000f302, 0x4ec2: 0xa000f402, 0x4ec3: 0x4046e820, - 0x4ec4: 0x4046ea20, 0x4ec5: 0x4046ec20, 0x4ec6: 0x4046ee20, 0x4ec7: 0x4046f020, - 0x4ec8: 0x4046f220, 0x4ec9: 0x4046f420, 0x4eca: 0x4046f620, 0x4ecb: 0x4046f820, - 0x4ecc: 0x4046fa20, 0x4ecd: 0x4046fc20, 0x4ece: 0x4046fe20, 0x4ecf: 0x40470020, - 0x4ed0: 0x40470220, 0x4ed1: 0x40470420, 0x4ed2: 0x40470620, 0x4ed3: 0x40470820, - 0x4ed4: 0x40470a20, 0x4ed5: 0x40470c20, 0x4ed6: 0x40470e20, 0x4ed7: 0x40471020, - 0x4ed8: 0x40471220, 0x4ed9: 0x40471420, 0x4eda: 0x40471620, 0x4edb: 0x40471820, - 0x4edc: 0x40471a20, 0x4edd: 0x40471c20, 0x4ede: 0x40471e20, 0x4edf: 0x40472020, - 0x4ee0: 0x40472220, 0x4ee1: 0x40472420, 0x4ee2: 0x40472620, 0x4ee3: 0x40472820, - 0x4ee4: 0x40472a20, 0x4ee5: 0x40472c20, 0x4ee6: 0x40472e20, 0x4ee7: 0x40473020, - 0x4ee8: 0x40473220, 0x4ee9: 0x40473420, 0x4eea: 0x40473620, 0x4eeb: 0x40473820, - 0x4eec: 0x40473a20, 0x4eed: 0x40473c20, 0x4eee: 0x40473e20, 0x4eef: 0x40474020, - 0x4ef0: 0x40474220, 0x4ef1: 0x40474420, 0x4ef2: 0x40474620, 0x4ef3: 0x40474820, - 0x4ef4: 0x40474a20, 0x4ef5: 0x40474c20, 0x4ef6: 0x40474e20, 0x4ef7: 0x40475020, - 0x4ef8: 0x40475220, 0x4ef9: 0x40475420, 0x4efa: 0x40475620, 0x4efb: 0x40475820, - 0x4efc: 0x40475a20, 0x4efd: 0x40475c20, 0x4efe: 0x40475e20, 0x4eff: 0x40476020, - // Block 0x13c, offset 0x4f00 - 0x4f00: 0x820923b1, 0x4f01: 0x40476420, 0x4f02: 0x40476620, 0x4f03: 0x40476820, - 0x4f04: 0x4046e620, 0x4f05: 0x40035420, 0x4f06: 0x40035620, 0x4f07: 0x40061a20, - 0x4f08: 0x40039a20, - 0x4f10: 0xe00001d9, 0x4f11: 0xe00002a0, 0x4f12: 0xe00003bb, 0x4f13: 0xe0000495, - 0x4f14: 0xe0000567, 0x4f15: 0xe0000631, 0x4f16: 0xe00006e1, 0x4f17: 0xe0000789, - 0x4f18: 0xe0000832, 0x4f19: 0xe00008dd, - // Block 0x13d, offset 0x4f40 - 0x4f40: 0x40476a20, 0x4f41: 0x40476c20, 0x4f42: 0x40476e20, 0x4f43: 0x40477020, - 0x4f44: 0x40477220, 0x4f45: 0x40477420, 0x4f46: 0x40477620, 0x4f47: 0x40477820, - 0x4f48: 0x40477a20, 0x4f49: 0x40477c20, 0x4f4a: 0x40478420, 0x4f4b: 0x40478620, - 0x4f4c: 0x40478820, 0x4f4d: 0x40478a20, 0x4f4e: 0x40478c20, 0x4f4f: 0x40478e20, - 0x4f50: 0x40479020, 0x4f51: 0x40479220, 0x4f52: 0x40479420, 0x4f53: 0x40479620, - 0x4f54: 0x40479820, 0x4f55: 0x40479a20, 0x4f56: 0x40479c20, 0x4f57: 0x40479e20, - 0x4f58: 0x4047a020, 0x4f59: 0x4047a220, 0x4f5a: 0x4047a420, 0x4f5b: 0x4047a620, - 0x4f5c: 0x4047a820, 0x4f5d: 0x4047aa20, 0x4f5e: 0x4047ac20, 0x4f5f: 0x4047ae20, - 0x4f60: 0x4047b020, 0x4f61: 0x4047b220, 0x4f62: 0x4047b420, 0x4f63: 0x4047b620, - 0x4f64: 0x4047b820, 0x4f65: 0x4047ba20, 0x4f66: 0x4047bc20, 0x4f67: 0x40478020, - 0x4f68: 0x40477e20, 0x4f69: 0x40478220, 0x4f6a: 0x4047be20, 0x4f6b: 0xa000f302, - 0x4f6c: 0xa000f402, 0x4f6d: 0x4047c020, 0x4f6e: 0x4047c220, 0x4f6f: 0x4047c420, - 0x4f70: 0x4047c620, 0x4f71: 0x4047c820, 0x4f72: 0x4047ca20, 0x4f73: 0x4047cc20, - 0x4f74: 0x4047ce20, 0x4f75: 0x4047d020, 0x4f76: 0x820923e9, 0x4f77: 0xa070f102, - // Block 0x13e, offset 0x4f80 - 0x4f80: 0xe00001dc, 0x4f81: 0xe00002a3, 0x4f82: 0xe00003be, 0x4f83: 0xe0000498, - 0x4f84: 0xe000056a, 0x4f85: 0xe0000634, 0x4f86: 0xe00006e4, 0x4f87: 0xe000078c, - 0x4f88: 0xe0000835, 0x4f89: 0xe00008e0, - // Block 0x13f, offset 0x4fc0 - 0x4fc0: 0x4076e420, 0x4fc1: 0x4076e620, 0x4fc2: 0x4076e820, 0x4fc3: 0x4076ea20, - 0x4fc4: 0x4076ec20, 0x4fc5: 0x4076ee20, 0x4fc6: 0x4076f020, 0x4fc7: 0x4076f220, - 0x4fc8: 0x4076f420, 0x4fc9: 0x4076f620, 0x4fca: 0x4076f820, 0x4fcb: 0x4076fa20, - 0x4fcc: 0x4076fc20, 0x4fcd: 0x4076fe20, 0x4fce: 0x40770020, 0x4fcf: 0x40770220, - 0x4fd0: 0x40770420, 0x4fd1: 0x40770620, 0x4fd2: 0x40770820, 0x4fd3: 0x40770a20, - 0x4fd4: 0x40770c20, 0x4fd5: 0x40770e20, 0x4fd6: 0x40771020, 0x4fd7: 0x40771220, - 0x4fd8: 0x40771420, 0x4fd9: 0x40771620, 0x4fda: 0x40771820, 0x4fdb: 0x40771a20, - 0x4fdc: 0x40771c20, 0x4fdd: 0x40771e20, 0x4fde: 0x40772020, 0x4fdf: 0x40772220, - 0x4fe0: 0x40772420, 0x4fe1: 0x40772620, 0x4fe2: 0x40772820, 0x4fe3: 0x40772a20, - 0x4fe4: 0x40772c20, 0x4fe5: 0x40772e20, 0x4fe6: 0x40773020, 0x4fe7: 0x40773220, - 0x4fe8: 0x40773420, 0x4fe9: 0x40773620, 0x4fea: 0x40773820, 0x4feb: 0x40773a20, - 0x4fec: 0x40773c20, 0x4fed: 0x40773e20, 0x4fee: 0x40774020, 0x4fef: 0x40774220, - 0x4ff0: 0x40774420, 0x4ff1: 0x40774620, 0x4ff2: 0x40774820, 0x4ff3: 0x40774a20, - 0x4ff4: 0x40774c20, 0x4ff5: 0x40774e20, 0x4ff6: 0x40775020, 0x4ff7: 0x40775220, - 0x4ff8: 0x40775420, 0x4ff9: 0x40775620, 0x4ffa: 0x40775820, 0x4ffb: 0x40775a20, - 0x4ffc: 0x40775c20, 0x4ffd: 0x40775e20, 0x4ffe: 0x40776020, 0x4fff: 0x40776220, - // Block 0x140, offset 0x5000 - 0x5000: 0x40776420, 0x5001: 0x40776620, 0x5002: 0x40776820, 0x5003: 0x40776a20, - 0x5004: 0x40776c20, 0x5005: 0x40776e20, 0x5006: 0x40777020, 0x5007: 0x40777220, - 0x5008: 0x40777420, 0x5009: 0x40777620, 0x500a: 0x40777820, 0x500b: 0x40777a20, - 0x500c: 0x40777c20, 0x500d: 0x40777e20, 0x500e: 0x40778020, 0x500f: 0x40778220, - 0x5010: 0x40778420, 0x5011: 0x40778620, 0x5012: 0x40778820, 0x5013: 0x40778a20, - 0x5014: 0x40778c20, 0x5015: 0x40778e20, 0x5016: 0x40779020, 0x5017: 0x40779220, - 0x5018: 0x40779420, 0x5019: 0x40779620, 0x501a: 0x40779820, 0x501b: 0x40779a20, - 0x501c: 0x40779c20, 0x501d: 0x40779e20, 0x501e: 0x4077a020, 0x501f: 0x4077a220, - 0x5020: 0x4077a420, 0x5021: 0x4077a620, 0x5022: 0x4077a820, 0x5023: 0x4077aa20, - 0x5024: 0x4077ac20, 0x5025: 0x4077ae20, 0x5026: 0x4077b020, 0x5027: 0x4077b220, - 0x5028: 0x4077b420, 0x5029: 0x4077b620, 0x502a: 0x4077b820, 0x502b: 0x4077ba20, - 0x502c: 0x4077bc20, 0x502d: 0x4077be20, 0x502e: 0x4077c020, 0x502f: 0x4077c220, - 0x5030: 0x4077c420, 0x5031: 0x4077c620, 0x5032: 0x4077c820, 0x5033: 0x4077ca20, - 0x5034: 0x4077cc20, 0x5035: 0x4077ce20, 0x5036: 0x4077d020, 0x5037: 0x4077d220, - 0x5038: 0x4077d420, 0x5039: 0x4077d620, 0x503a: 0x4077d820, 0x503b: 0x4077da20, - 0x503c: 0x4077dc20, 0x503d: 0x4077de20, 0x503e: 0x4077e020, 0x503f: 0x4077e220, - // Block 0x141, offset 0x5040 - 0x5040: 0x4077e420, 0x5041: 0x4077e620, 0x5042: 0x4077e820, 0x5043: 0x4077ea20, - 0x5044: 0x4077ec20, 0x5045: 0x4077ee20, 0x5046: 0x4077f020, 0x5047: 0x4077f220, - 0x5048: 0x4077f420, 0x5049: 0x4077f620, 0x504a: 0x4077f820, 0x504b: 0x4077fa20, - 0x504c: 0x4077fc20, 0x504d: 0x4077fe20, 0x504e: 0x40780020, 0x504f: 0x40780220, - 0x5050: 0x40780420, 0x5051: 0x40780620, 0x5052: 0x40780820, 0x5053: 0x40780a20, - 0x5054: 0x40780c20, 0x5055: 0x40780e20, 0x5056: 0x40781020, 0x5057: 0x40781220, - 0x5058: 0x40781420, 0x5059: 0x40781620, 0x505a: 0x40781820, 0x505b: 0x40781a20, - 0x505c: 0x40781c20, 0x505d: 0x40781e20, 0x505e: 0x40782020, 0x505f: 0x40782220, - 0x5060: 0x40782420, 0x5061: 0x40782620, 0x5062: 0x40782820, 0x5063: 0x40782a20, - 0x5064: 0x40782c20, 0x5065: 0x40782e20, 0x5066: 0x40783020, 0x5067: 0x40783220, - 0x5068: 0x40783420, 0x5069: 0x40783620, 0x506a: 0x40783820, 0x506b: 0x40783a20, - 0x506c: 0x40783c20, 0x506d: 0x40783e20, 0x506e: 0x40784020, 0x506f: 0x40784220, - 0x5070: 0x40784420, 0x5071: 0x40784620, 0x5072: 0x40784820, 0x5073: 0x40784a20, - 0x5074: 0x40784c20, 0x5075: 0x40784e20, 0x5076: 0x40785020, 0x5077: 0x40785220, - 0x5078: 0x40785420, 0x5079: 0x40785620, 0x507a: 0x40785820, 0x507b: 0x40785a20, - 0x507c: 0x40785c20, 0x507d: 0x40785e20, 0x507e: 0x40786020, 0x507f: 0x40786220, - // Block 0x142, offset 0x5080 - 0x5080: 0x40786420, 0x5081: 0x40786620, 0x5082: 0x40786820, 0x5083: 0x40786a20, - 0x5084: 0x40786c20, 0x5085: 0x40786e20, 0x5086: 0x40787020, 0x5087: 0x40787220, - 0x5088: 0x40787420, 0x5089: 0x40787620, 0x508a: 0x40787820, 0x508b: 0x40787a20, - 0x508c: 0x40787c20, 0x508d: 0x40787e20, 0x508e: 0x40788020, 0x508f: 0x40788220, - 0x5090: 0x40788420, 0x5091: 0x40788620, 0x5092: 0x40788820, 0x5093: 0x40788a20, - 0x5094: 0x40788c20, 0x5095: 0x40788e20, 0x5096: 0x40789020, 0x5097: 0x40789220, - 0x5098: 0x40789420, 0x5099: 0x40789620, 0x509a: 0x40789820, 0x509b: 0x40789a20, - 0x509c: 0x40789c20, 0x509d: 0x40789e20, 0x509e: 0x4078a020, 0x509f: 0x4078a220, - 0x50a0: 0x4078a420, 0x50a1: 0x4078a620, 0x50a2: 0x4078a820, 0x50a3: 0x4078aa20, - 0x50a4: 0x4078ac20, 0x50a5: 0x4078ae20, 0x50a6: 0x4078b020, 0x50a7: 0x4078b220, - 0x50a8: 0x4078b420, 0x50a9: 0x4078b620, 0x50aa: 0x4078b820, 0x50ab: 0x4078ba20, - 0x50ac: 0x4078bc20, 0x50ad: 0x4078be20, 0x50ae: 0x4078c020, 0x50af: 0x4078c220, - 0x50b0: 0x4078c420, 0x50b1: 0x4078c620, 0x50b2: 0x4078c820, 0x50b3: 0x4078ca20, - 0x50b4: 0x4078cc20, 0x50b5: 0x4078ce20, 0x50b6: 0x4078d020, 0x50b7: 0x4078d220, - 0x50b8: 0x4078d420, 0x50b9: 0x4078d620, 0x50ba: 0x4078d820, 0x50bb: 0x4078da20, - 0x50bc: 0x4078dc20, 0x50bd: 0x4078de20, 0x50be: 0x4078e020, 0x50bf: 0x4078e220, - // Block 0x143, offset 0x50c0 - 0x50c0: 0x4078e420, 0x50c1: 0x4078e620, 0x50c2: 0x4078e820, 0x50c3: 0x4078ea20, - 0x50c4: 0x4078ec20, 0x50c5: 0x4078ee20, 0x50c6: 0x4078f020, 0x50c7: 0x4078f220, - 0x50c8: 0x4078f420, 0x50c9: 0x4078f620, 0x50ca: 0x4078f820, 0x50cb: 0x4078fa20, - 0x50cc: 0x4078fc20, 0x50cd: 0x4078fe20, 0x50ce: 0x40790020, 0x50cf: 0x40790220, - 0x50d0: 0x40790420, 0x50d1: 0x40790620, 0x50d2: 0x40790820, 0x50d3: 0x40790a20, - 0x50d4: 0x40790c20, 0x50d5: 0x40790e20, 0x50d6: 0x40791020, 0x50d7: 0x40791220, - 0x50d8: 0x40791420, 0x50d9: 0x40791620, 0x50da: 0x40791820, 0x50db: 0x40791a20, - 0x50dc: 0x40791c20, 0x50dd: 0x40791e20, 0x50de: 0x40792020, 0x50df: 0x40792220, - 0x50e0: 0x40792420, 0x50e1: 0x40792620, 0x50e2: 0x40792820, 0x50e3: 0x40792a20, - 0x50e4: 0x40792c20, 0x50e5: 0x40792e20, 0x50e6: 0x40793020, 0x50e7: 0x40793220, - 0x50e8: 0x40793420, 0x50e9: 0x40793620, 0x50ea: 0x40793820, 0x50eb: 0x40793a20, - 0x50ec: 0x40793c20, 0x50ed: 0x40793e20, 0x50ee: 0x40794020, 0x50ef: 0x40794220, - 0x50f0: 0x40794420, 0x50f1: 0x40794620, 0x50f2: 0x40794820, 0x50f3: 0x40794a20, - 0x50f4: 0x40794c20, 0x50f5: 0x40794e20, 0x50f6: 0x40795020, 0x50f7: 0x40795220, - 0x50f8: 0x40795420, 0x50f9: 0x40795620, 0x50fa: 0x40795820, 0x50fb: 0x40795a20, - 0x50fc: 0x40795c20, 0x50fd: 0x40795e20, 0x50fe: 0x40796020, 0x50ff: 0x40796220, - // Block 0x144, offset 0x5100 - 0x5100: 0x40796420, 0x5101: 0x40796620, 0x5102: 0x40796820, 0x5103: 0x40796a20, - 0x5104: 0x40796c20, 0x5105: 0x40796e20, 0x5106: 0x40797020, 0x5107: 0x40797220, - 0x5108: 0x40797420, 0x5109: 0x40797620, 0x510a: 0x40797820, 0x510b: 0x40797a20, - 0x510c: 0x40797c20, 0x510d: 0x40797e20, 0x510e: 0x40798020, 0x510f: 0x40798220, - 0x5110: 0x40798420, 0x5111: 0x40798620, 0x5112: 0x40798820, 0x5113: 0x40798a20, - 0x5114: 0x40798c20, 0x5115: 0x40798e20, 0x5116: 0x40799020, 0x5117: 0x40799220, - 0x5118: 0x40799420, 0x5119: 0x40799620, 0x511a: 0x40799820, 0x511b: 0x40799a20, - 0x511c: 0x40799c20, 0x511d: 0x40799e20, 0x511e: 0x4079a020, 0x511f: 0x4079a220, - 0x5120: 0x4079a420, 0x5121: 0x4079a620, 0x5122: 0x4079a820, 0x5123: 0x4079aa20, - 0x5124: 0x4079ac20, 0x5125: 0x4079ae20, 0x5126: 0x4079b020, 0x5127: 0x4079b220, - 0x5128: 0x4079b420, 0x5129: 0x4079b620, 0x512a: 0x4079b820, 0x512b: 0x4079ba20, - 0x512c: 0x4079bc20, 0x512d: 0x4079be20, 0x512e: 0x4079c020, 0x512f: 0x4079c220, - 0x5130: 0x4079c420, 0x5131: 0x4079c620, 0x5132: 0x4079c820, 0x5133: 0x4079ca20, - 0x5134: 0x4079cc20, 0x5135: 0x4079ce20, 0x5136: 0x4079d020, 0x5137: 0x4079d220, - 0x5138: 0x4079d420, 0x5139: 0x4079d620, 0x513a: 0x4079d820, 0x513b: 0x4079da20, - 0x513c: 0x4079dc20, 0x513d: 0x4079de20, 0x513e: 0x4079e020, 0x513f: 0x4079e220, - // Block 0x145, offset 0x5140 - 0x5140: 0x4079e420, 0x5141: 0x4079e620, 0x5142: 0x4079e820, 0x5143: 0x4079ea20, - 0x5144: 0x4079ec20, 0x5145: 0x4079ee20, 0x5146: 0x4079f020, 0x5147: 0x4079f220, - 0x5148: 0x4079f420, 0x5149: 0x4079f620, 0x514a: 0x4079f820, 0x514b: 0x4079fa20, - 0x514c: 0x4079fc20, 0x514d: 0x4079fe20, 0x514e: 0x407a0020, 0x514f: 0x407a0220, - 0x5150: 0x407a0420, 0x5151: 0x407a0620, 0x5152: 0x407a0820, 0x5153: 0x407a0a20, - 0x5154: 0x407a0c20, 0x5155: 0x407a0e20, 0x5156: 0x407a1020, 0x5157: 0x407a1220, - 0x5158: 0x407a1420, 0x5159: 0x407a1620, 0x515a: 0x407a1820, 0x515b: 0x407a1a20, - 0x515c: 0x407a1c20, 0x515d: 0x407a1e20, 0x515e: 0x407a2020, 0x515f: 0x407a2220, - 0x5160: 0x407a2420, 0x5161: 0x407a2620, 0x5162: 0x407a2820, 0x5163: 0x407a2a20, - 0x5164: 0x407a2c20, 0x5165: 0x407a2e20, 0x5166: 0x407a3020, 0x5167: 0x407a3220, - 0x5168: 0x407a3420, 0x5169: 0x407a3620, 0x516a: 0x407a3820, 0x516b: 0x407a3a20, - 0x516c: 0x407a3c20, 0x516d: 0x407a3e20, 0x516e: 0x407a4020, 0x516f: 0x407a4220, - 0x5170: 0x407a4420, 0x5171: 0x407a4620, 0x5172: 0x407a4820, 0x5173: 0x407a4a20, - 0x5174: 0x407a4c20, 0x5175: 0x407a4e20, 0x5176: 0x407a5020, 0x5177: 0x407a5220, - 0x5178: 0x407a5420, 0x5179: 0x407a5620, 0x517a: 0x407a5820, 0x517b: 0x407a5a20, - 0x517c: 0x407a5c20, 0x517d: 0x407a5e20, 0x517e: 0x407a6020, 0x517f: 0x407a6220, - // Block 0x146, offset 0x5180 - 0x5180: 0x407a6420, 0x5181: 0x407a6620, 0x5182: 0x407a6820, 0x5183: 0x407a6a20, - 0x5184: 0x407a6c20, 0x5185: 0x407a6e20, 0x5186: 0x407a7020, 0x5187: 0x407a7220, - 0x5188: 0x407a7420, 0x5189: 0x407a7620, 0x518a: 0x407a7820, 0x518b: 0x407a7a20, - 0x518c: 0x407a7c20, 0x518d: 0x407a7e20, 0x518e: 0x407a8020, 0x518f: 0x407a8220, - 0x5190: 0x407a8420, 0x5191: 0x407a8620, 0x5192: 0x407a8820, 0x5193: 0x407a8a20, - 0x5194: 0x407a8c20, 0x5195: 0x407a8e20, 0x5196: 0x407a9020, 0x5197: 0x407a9220, - 0x5198: 0x407a9420, 0x5199: 0x407a9620, 0x519a: 0x407a9820, 0x519b: 0x407a9a20, - 0x519c: 0x407a9c20, 0x519d: 0x407a9e20, 0x519e: 0x407aa020, 0x519f: 0x407aa220, - 0x51a0: 0x407aa420, 0x51a1: 0x407aa620, 0x51a2: 0x407aa820, 0x51a3: 0x407aaa20, - 0x51a4: 0x407aac20, 0x51a5: 0x407aae20, 0x51a6: 0x407ab020, 0x51a7: 0x407ab220, - 0x51a8: 0x407ab420, 0x51a9: 0x407ab620, 0x51aa: 0x407ab820, 0x51ab: 0x407aba20, - 0x51ac: 0x407abc20, 0x51ad: 0x407abe20, 0x51ae: 0x407ac020, 0x51af: 0x407ac220, - 0x51b0: 0x407ac420, 0x51b1: 0x407ac620, 0x51b2: 0x407ac820, 0x51b3: 0x407aca20, - 0x51b4: 0x407acc20, 0x51b5: 0x407ace20, 0x51b6: 0x407ad020, 0x51b7: 0x407ad220, - 0x51b8: 0x407ad420, 0x51b9: 0x407ad620, 0x51ba: 0x407ad820, 0x51bb: 0x407ada20, - 0x51bc: 0x407adc20, 0x51bd: 0x407ade20, 0x51be: 0x407ae020, 0x51bf: 0x407ae220, - // Block 0x147, offset 0x51c0 - 0x51c0: 0x407ae420, 0x51c1: 0x407ae620, 0x51c2: 0x407ae820, 0x51c3: 0x407aea20, - 0x51c4: 0x407aec20, 0x51c5: 0x407aee20, 0x51c6: 0x407af020, 0x51c7: 0x407af220, - 0x51c8: 0x407af420, 0x51c9: 0x407af620, 0x51ca: 0x407af820, 0x51cb: 0x407afa20, - 0x51cc: 0x407afc20, 0x51cd: 0x407afe20, 0x51ce: 0x407b0020, 0x51cf: 0x407b0220, - 0x51d0: 0x407b0420, 0x51d1: 0x407b0620, 0x51d2: 0x407b0820, 0x51d3: 0x407b0a20, - 0x51d4: 0x407b0c20, 0x51d5: 0x407b0e20, 0x51d6: 0x407b1020, 0x51d7: 0x407b1220, - 0x51d8: 0x407b1420, 0x51d9: 0x407b1620, 0x51da: 0x407b1820, 0x51db: 0x407b1a20, - 0x51dc: 0x407b1c20, 0x51dd: 0x407b1e20, 0x51de: 0x407b2020, 0x51df: 0x407b2220, - 0x51e0: 0x407b2420, 0x51e1: 0x407b2620, 0x51e2: 0x407b2820, 0x51e3: 0x407b2a20, - 0x51e4: 0x407b2c20, 0x51e5: 0x407b2e20, 0x51e6: 0x407b3020, 0x51e7: 0x407b3220, - 0x51e8: 0x407b3420, 0x51e9: 0x407b3620, 0x51ea: 0x407b3820, 0x51eb: 0x407b3a20, - 0x51ec: 0x407b3c20, 0x51ed: 0x407b3e20, 0x51ee: 0x407b4020, 0x51ef: 0x407b4220, - 0x51f0: 0x407b4420, 0x51f1: 0x407b4620, 0x51f2: 0x407b4820, 0x51f3: 0x407b4a20, - 0x51f4: 0x407b4c20, 0x51f5: 0x407b4e20, 0x51f6: 0x407b5020, 0x51f7: 0x407b5220, - 0x51f8: 0x407b5420, 0x51f9: 0x407b5620, 0x51fa: 0x407b5820, 0x51fb: 0x407b5a20, - 0x51fc: 0x407b5c20, 0x51fd: 0x407b5e20, 0x51fe: 0x407b6020, 0x51ff: 0x407b6220, - // Block 0x148, offset 0x5200 - 0x5200: 0x407b6420, 0x5201: 0x407b6620, 0x5202: 0x407b6820, 0x5203: 0x407b6a20, - 0x5204: 0x407b6c20, 0x5205: 0x407b6e20, 0x5206: 0x407b7020, 0x5207: 0x407b7220, - 0x5208: 0x407b7420, 0x5209: 0x407b7620, 0x520a: 0x407b7820, 0x520b: 0x407b7a20, - 0x520c: 0x407b7c20, 0x520d: 0x407b7e20, 0x520e: 0x407b8020, 0x520f: 0x407b8220, - 0x5210: 0x407b8420, 0x5211: 0x407b8620, 0x5212: 0x407b8820, 0x5213: 0x407b8a20, - 0x5214: 0x407b8c20, 0x5215: 0x407b8e20, 0x5216: 0x407b9020, 0x5217: 0x407b9220, - 0x5218: 0x407b9420, 0x5219: 0x407b9620, 0x521a: 0x407b9820, 0x521b: 0x407b9a20, - 0x521c: 0x407b9c20, 0x521d: 0x407b9e20, 0x521e: 0x407ba020, 0x521f: 0x407ba220, - 0x5220: 0x407ba420, 0x5221: 0x407ba620, 0x5222: 0x407ba820, 0x5223: 0x407baa20, - 0x5224: 0x407bac20, 0x5225: 0x407bae20, 0x5226: 0x407bb020, 0x5227: 0x407bb220, - 0x5228: 0x407bb420, 0x5229: 0x407bb620, 0x522a: 0x407bb820, 0x522b: 0x407bba20, - 0x522c: 0x407bbc20, 0x522d: 0x407bbe20, 0x522e: 0x407bc020, 0x522f: 0x407bc220, - 0x5230: 0x407bc420, 0x5231: 0x407bc620, 0x5232: 0x407bc820, 0x5233: 0x407bca20, - 0x5234: 0x407bcc20, 0x5235: 0x407bce20, 0x5236: 0x407bd020, 0x5237: 0x407bd220, - 0x5238: 0x407bd420, 0x5239: 0x407bd620, 0x523a: 0x407bd820, 0x523b: 0x407bda20, - 0x523c: 0x407bdc20, 0x523d: 0x407bde20, 0x523e: 0x407be020, 0x523f: 0x407be220, - // Block 0x149, offset 0x5240 - 0x5240: 0x407be420, 0x5241: 0x407be620, 0x5242: 0x407be820, 0x5243: 0x407bea20, - 0x5244: 0x407bec20, 0x5245: 0x407bee20, 0x5246: 0x407bf020, 0x5247: 0x407bf220, - 0x5248: 0x407bf420, 0x5249: 0x407bf620, 0x524a: 0x407bf820, 0x524b: 0x407bfa20, - 0x524c: 0x407bfc20, 0x524d: 0x407bfe20, 0x524e: 0x407c0020, 0x524f: 0x407c0220, - 0x5250: 0x407c0420, 0x5251: 0x407c0620, 0x5252: 0x407c0820, 0x5253: 0x407c0a20, - 0x5254: 0x407c0c20, 0x5255: 0x407c0e20, 0x5256: 0x407c1020, 0x5257: 0x407c1220, - 0x5258: 0x407c1420, 0x5259: 0x407c1620, 0x525a: 0x407c1820, 0x525b: 0x407c1a20, - 0x525c: 0x407c1c20, 0x525d: 0x407c1e20, 0x525e: 0x407c2020, 0x525f: 0x407c2220, - 0x5260: 0x407c2420, 0x5261: 0x407c2620, 0x5262: 0x407c2820, 0x5263: 0x407c2a20, - 0x5264: 0x407c2c20, 0x5265: 0x407c2e20, 0x5266: 0x407c3020, 0x5267: 0x407c3220, - 0x5268: 0x407c3420, 0x5269: 0x407c3620, 0x526a: 0x407c3820, 0x526b: 0x407c3a20, - 0x526c: 0x407c3c20, 0x526d: 0x407c3e20, 0x526e: 0x407c4020, 0x526f: 0x407c4220, - 0x5270: 0x407c4420, 0x5271: 0x407c4620, 0x5272: 0x407c4820, 0x5273: 0x407c4a20, - 0x5274: 0x407c4c20, 0x5275: 0x407c4e20, 0x5276: 0x407c5020, 0x5277: 0x407c5220, - 0x5278: 0x407c5420, 0x5279: 0x407c5620, 0x527a: 0x407c5820, 0x527b: 0x407c5a20, - 0x527c: 0x407c5c20, 0x527d: 0x407c5e20, 0x527e: 0x407c6020, 0x527f: 0x407c6220, - // Block 0x14a, offset 0x5280 - 0x5280: 0x407c6420, 0x5281: 0x407c6620, 0x5282: 0x407c6820, 0x5283: 0x407c6a20, - 0x5284: 0x407c6c20, 0x5285: 0x407c6e20, 0x5286: 0x407c7020, 0x5287: 0x407c7220, - 0x5288: 0x407c7420, 0x5289: 0x407c7620, 0x528a: 0x407c7820, 0x528b: 0x407c7a20, - 0x528c: 0x407c7c20, 0x528d: 0x407c7e20, 0x528e: 0x407c8020, 0x528f: 0x407c8220, - 0x5290: 0x407c8420, 0x5291: 0x407c8620, 0x5292: 0x407c8820, 0x5293: 0x407c8a20, - 0x5294: 0x407c8c20, 0x5295: 0x407c8e20, 0x5296: 0x407c9020, 0x5297: 0x407c9220, - 0x5298: 0x407c9420, 0x5299: 0x407c9620, 0x529a: 0x407c9820, 0x529b: 0x407c9a20, - 0x529c: 0x407c9c20, 0x529d: 0x407c9e20, 0x529e: 0x407ca020, 0x529f: 0x407ca220, - 0x52a0: 0x407ca420, 0x52a1: 0x407ca620, 0x52a2: 0x407ca820, 0x52a3: 0x407caa20, - 0x52a4: 0x407cac20, 0x52a5: 0x407cae20, 0x52a6: 0x407cb020, 0x52a7: 0x407cb220, - 0x52a8: 0x407cb420, 0x52a9: 0x407cb620, 0x52aa: 0x407cb820, 0x52ab: 0x407cba20, - 0x52ac: 0x407cbc20, 0x52ad: 0x407cbe20, 0x52ae: 0x407cc020, 0x52af: 0x407cc220, - 0x52b0: 0x407cc420, 0x52b1: 0x407cc620, 0x52b2: 0x407cc820, 0x52b3: 0x407cca20, - 0x52b4: 0x407ccc20, 0x52b5: 0x407cce20, 0x52b6: 0x407cd020, 0x52b7: 0x407cd220, - 0x52b8: 0x407cd420, 0x52b9: 0x407cd620, 0x52ba: 0x407cd820, 0x52bb: 0x407cda20, - 0x52bc: 0x407cdc20, 0x52bd: 0x407cde20, 0x52be: 0x407ce020, 0x52bf: 0x407ce220, - // Block 0x14b, offset 0x52c0 - 0x52c0: 0x407ce420, 0x52c1: 0x407ce620, 0x52c2: 0x407ce820, 0x52c3: 0x407cea20, - 0x52c4: 0x407cec20, 0x52c5: 0x407cee20, 0x52c6: 0x407cf020, 0x52c7: 0x407cf220, - 0x52c8: 0x407cf420, 0x52c9: 0x407cf620, 0x52ca: 0x407cf820, 0x52cb: 0x407cfa20, - 0x52cc: 0x407cfc20, 0x52cd: 0x407cfe20, 0x52ce: 0x407d0020, 0x52cf: 0x407d0220, - 0x52d0: 0x407d0420, 0x52d1: 0x407d0620, 0x52d2: 0x407d0820, 0x52d3: 0x407d0a20, - 0x52d4: 0x407d0c20, 0x52d5: 0x407d0e20, 0x52d6: 0x407d1020, 0x52d7: 0x407d1220, - 0x52d8: 0x407d1420, 0x52d9: 0x407d1620, 0x52da: 0x407d1820, 0x52db: 0x407d1a20, - 0x52dc: 0x407d1c20, 0x52dd: 0x407d1e20, 0x52de: 0x407d2020, 0x52df: 0x407d2220, - 0x52e0: 0x407d2420, 0x52e1: 0x407d2620, 0x52e2: 0x407d2820, 0x52e3: 0x407d2a20, - 0x52e4: 0x407d2c20, 0x52e5: 0x407d2e20, 0x52e6: 0x407d3020, 0x52e7: 0x407d3220, - 0x52e8: 0x407d3420, 0x52e9: 0x407d3620, 0x52ea: 0x407d3820, 0x52eb: 0x407d3a20, - 0x52ec: 0x407d3c20, 0x52ed: 0x407d3e20, 0x52ee: 0x407d4020, 0x52ef: 0x407d4220, - 0x52f0: 0x407d4420, 0x52f1: 0x407d4620, 0x52f2: 0x407d4820, 0x52f3: 0x407d4a20, - 0x52f4: 0x407d4c20, 0x52f5: 0x407d4e20, 0x52f6: 0x407d5020, 0x52f7: 0x407d5220, - 0x52f8: 0x407d5420, 0x52f9: 0x407d5620, 0x52fa: 0x407d5820, 0x52fb: 0x407d5a20, - 0x52fc: 0x407d5c20, 0x52fd: 0x407d5e20, 0x52fe: 0x407d6020, 0x52ff: 0x407d6220, - // Block 0x14c, offset 0x5300 - 0x5300: 0x407d6420, 0x5301: 0x407d6620, 0x5302: 0x407d6820, 0x5303: 0x407d6a20, - 0x5304: 0x407d6c20, 0x5305: 0x407d6e20, 0x5306: 0x407d7020, 0x5307: 0x407d7220, - 0x5308: 0x407d7420, 0x5309: 0x407d7620, 0x530a: 0x407d7820, 0x530b: 0x407d7a20, - 0x530c: 0x407d7c20, 0x530d: 0x407d7e20, 0x530e: 0x407d8020, 0x530f: 0x407d8220, - 0x5310: 0x407d8420, 0x5311: 0x407d8620, 0x5312: 0x407d8820, 0x5313: 0x407d8a20, - 0x5314: 0x407d8c20, 0x5315: 0x407d8e20, 0x5316: 0x407d9020, 0x5317: 0x407d9220, - 0x5318: 0x407d9420, 0x5319: 0x407d9620, 0x531a: 0x407d9820, 0x531b: 0x407d9a20, - 0x531c: 0x407d9c20, 0x531d: 0x407d9e20, 0x531e: 0x407da020, 0x531f: 0x407da220, - 0x5320: 0x407da420, 0x5321: 0x407da620, 0x5322: 0x407da820, 0x5323: 0x407daa20, - 0x5324: 0x407dac20, 0x5325: 0x407dae20, 0x5326: 0x407db020, 0x5327: 0x407db220, - 0x5328: 0x407db420, 0x5329: 0x407db620, 0x532a: 0x407db820, 0x532b: 0x407dba20, - 0x532c: 0x407dbc20, 0x532d: 0x407dbe20, 0x532e: 0x407dc020, - // Block 0x14d, offset 0x5340 - 0x5340: 0xe0000394, 0x5341: 0xe000045f, 0x5342: 0xe0000534, 0x5343: 0xe0000610, - 0x5344: 0xe00006cc, 0x5345: 0xe0000771, 0x5346: 0xe000081d, 0x5347: 0xe00008c2, - 0x5348: 0xe0000462, 0x5349: 0xe0000537, 0x534a: 0xe0000613, 0x534b: 0xe00006cf, - 0x534c: 0xe0000774, 0x534d: 0xe0000820, 0x534e: 0xe00008c5, 0x534f: 0xe000053a, - 0x5350: 0xe0000616, 0x5351: 0xe00006d2, 0x5352: 0xe0000777, 0x5353: 0xe0000823, - 0x5354: 0xe00008c8, 0x5355: 0xe000027f, 0x5356: 0xe0000397, 0x5357: 0xe0000465, - 0x5358: 0xe000053d, 0x5359: 0xe0000619, 0x535a: 0xe00006d5, 0x535b: 0xe000077a, - 0x535c: 0xe0000826, 0x535d: 0xe00008cb, 0x535e: 0xe0000282, 0x535f: 0xe000039a, - 0x5360: 0xe0000468, 0x5361: 0xe0000540, 0x5362: 0xe000061c, 0x5363: 0xe000039d, - 0x5364: 0xe000046b, 0x5365: 0xe000046e, 0x5366: 0xe0000543, 0x5367: 0xe000061f, - 0x5368: 0xe00006d8, 0x5369: 0xe000077d, 0x536a: 0xe0000829, 0x536b: 0xe00008ce, - 0x536c: 0xe0000285, 0x536d: 0xe00003a0, 0x536e: 0xe0000471, 0x536f: 0xe0000474, - 0x5370: 0xe0000546, 0x5371: 0xe0000622, 0x5372: 0x4029a020, 0x5373: 0x4029a220, - 0x5374: 0xe0000288, 0x5375: 0xe00003a3, 0x5376: 0xe0000477, 0x5377: 0xe000047a, - 0x5378: 0xe0000549, 0x5379: 0xe0000625, 0x537a: 0xe000047d, 0x537b: 0xe0000480, - 0x537c: 0xe000054c, 0x537d: 0xe000054f, 0x537e: 0xe0000552, 0x537f: 0xe0000555, - // Block 0x14e, offset 0x5380 - 0x5380: 0xe00006db, 0x5381: 0xe0000780, 0x5382: 0xe0000783, 0x5383: 0xe0000786, - 0x5384: 0xe000082c, 0x5385: 0xe000082f, 0x5386: 0xe00008d1, 0x5387: 0xe00008d4, - 0x5388: 0xe00008d7, 0x5389: 0xe00008da, 0x538a: 0xe00003a6, 0x538b: 0xe0000483, - 0x538c: 0xe0000558, 0x538d: 0xe0000628, 0x538e: 0xe00006de, 0x538f: 0xe000028b, - 0x5390: 0xe00003a9, 0x5391: 0xe0000486, 0x5392: 0xe000055b, 0x5393: 0xe000055e, - 0x5394: 0xe000062b, 0x5395: 0xe000062e, 0x5396: 0x4029a420, 0x5397: 0x4029a620, - 0x5398: 0xe000028e, 0x5399: 0xe00003ac, 0x539a: 0x4029a820, 0x539b: 0x4029aa20, - 0x539c: 0x4029ac20, 0x539d: 0x4029ae20, 0x539e: 0x4029b020, 0x539f: 0x4029b220, - 0x53a0: 0x4029b420, 0x53a1: 0x4029b620, 0x53a2: 0x4029b820, - 0x53b0: 0x4003ca20, 0x53b1: 0x4003cc20, 0x53b2: 0x4003ce20, 0x53b3: 0x4003d020, - // Block 0x14f, offset 0x53c0 - 0x53c0: 0x407dc220, 0x53c1: 0x407dc420, 0x53c2: 0x407dc620, 0x53c3: 0x407dc820, - 0x53c4: 0x407dca20, 0x53c5: 0x407dcc20, 0x53c6: 0x407dce20, 0x53c7: 0x407dd020, - 0x53c8: 0x407dd220, 0x53c9: 0x407dd420, 0x53ca: 0x407dd620, 0x53cb: 0x407dd820, - 0x53cc: 0x407dda20, 0x53cd: 0x407ddc20, 0x53ce: 0x407dde20, 0x53cf: 0x407de020, - 0x53d0: 0x407de220, 0x53d1: 0x407de420, 0x53d2: 0x407de620, 0x53d3: 0x407de820, - 0x53d4: 0x407dea20, 0x53d5: 0x407dec20, 0x53d6: 0x407dee20, 0x53d7: 0x407df020, - 0x53d8: 0x407df220, 0x53d9: 0x407df420, 0x53da: 0x407df620, 0x53db: 0x407df820, - 0x53dc: 0x407dfa20, 0x53dd: 0x407dfc20, 0x53de: 0x407dfe20, 0x53df: 0x407e0020, - 0x53e0: 0x407e0220, 0x53e1: 0x407e0420, 0x53e2: 0x407e0620, 0x53e3: 0x407e0820, - 0x53e4: 0x407e0a20, 0x53e5: 0x407e0c20, 0x53e6: 0x407e0e20, 0x53e7: 0x407e1020, - 0x53e8: 0x407e1220, 0x53e9: 0x407e1420, 0x53ea: 0x407e1620, 0x53eb: 0x407e1820, - 0x53ec: 0x407e1a20, 0x53ed: 0x407e1c20, 0x53ee: 0x407e1e20, 0x53ef: 0x407e2020, - 0x53f0: 0x407e2220, 0x53f1: 0x407e2420, 0x53f2: 0x407e2620, 0x53f3: 0x407e2820, - 0x53f4: 0x407e2a20, 0x53f5: 0x407e2c20, 0x53f6: 0x407e2e20, 0x53f7: 0x407e3020, - 0x53f8: 0x407e3220, 0x53f9: 0x407e3420, 0x53fa: 0x407e3620, 0x53fb: 0x407e3820, - 0x53fc: 0x407e3a20, 0x53fd: 0x407e3c20, 0x53fe: 0x407e3e20, 0x53ff: 0x407e4020, - // Block 0x150, offset 0x5400 - 0x5400: 0x407e4220, 0x5401: 0x407e4420, 0x5402: 0x407e4620, 0x5403: 0x407e4820, - 0x5404: 0x407e4a20, 0x5405: 0x407e4c20, 0x5406: 0x407e4e20, 0x5407: 0x407e5020, - 0x5408: 0x407e5220, 0x5409: 0x407e5420, 0x540a: 0x407e5620, 0x540b: 0x407e5820, - 0x540c: 0x407e5a20, 0x540d: 0x407e5c20, 0x540e: 0x407e5e20, 0x540f: 0x407e6020, - 0x5410: 0x407e6220, 0x5411: 0x407e6420, 0x5412: 0x407e6620, 0x5413: 0x407e6820, - 0x5414: 0x407e6a20, 0x5415: 0x407e6c20, 0x5416: 0x407e6e20, 0x5417: 0x407e7020, - 0x5418: 0x407e7220, 0x5419: 0x407e7420, 0x541a: 0x407e7620, 0x541b: 0x407e7820, - 0x541c: 0x407e7a20, 0x541d: 0x407e7c20, 0x541e: 0x407e7e20, 0x541f: 0x407e8020, - 0x5420: 0x407e8220, 0x5421: 0x407e8420, 0x5422: 0x407e8620, 0x5423: 0x407e8820, - 0x5424: 0x407e8a20, 0x5425: 0x407e8c20, 0x5426: 0x407e8e20, 0x5427: 0x407e9020, - 0x5428: 0x407e9220, 0x5429: 0x407e9420, 0x542a: 0x407e9620, 0x542b: 0x407e9820, - 0x542c: 0x407e9a20, 0x542d: 0x407e9c20, 0x542e: 0x407e9e20, 0x542f: 0x407ea020, - 0x5430: 0x407ea220, 0x5431: 0x407ea420, 0x5432: 0x407ea620, 0x5433: 0x407ea820, - 0x5434: 0x407eaa20, 0x5435: 0x407eac20, 0x5436: 0x407eae20, 0x5437: 0x407eb020, - 0x5438: 0x407eb220, 0x5439: 0x407eb420, 0x543a: 0x407eb620, 0x543b: 0x407eb820, - 0x543c: 0x407eba20, 0x543d: 0x407ebc20, 0x543e: 0x407ebe20, 0x543f: 0x407ec020, - // Block 0x151, offset 0x5440 - 0x5440: 0x407ec220, 0x5441: 0x407ec420, 0x5442: 0x407ec620, 0x5443: 0x407ec820, - 0x5444: 0x407eca20, 0x5445: 0x407ecc20, 0x5446: 0x407ece20, 0x5447: 0x407ed020, - 0x5448: 0x407ed220, 0x5449: 0x407ed420, 0x544a: 0x407ed620, 0x544b: 0x407ed820, - 0x544c: 0x407eda20, 0x544d: 0x407edc20, 0x544e: 0x407ede20, 0x544f: 0x407ee020, - 0x5450: 0x407ee220, 0x5451: 0x407ee420, 0x5452: 0x407ee620, 0x5453: 0x407ee820, - 0x5454: 0x407eea20, 0x5455: 0x407eec20, 0x5456: 0x407eee20, 0x5457: 0x407ef020, - 0x5458: 0x407ef220, 0x5459: 0x407ef420, 0x545a: 0x407ef620, 0x545b: 0x407ef820, - 0x545c: 0x407efa20, 0x545d: 0x407efc20, 0x545e: 0x407efe20, 0x545f: 0x407f0020, - 0x5460: 0x407f0220, 0x5461: 0x407f0420, 0x5462: 0x407f0620, 0x5463: 0x407f0820, - 0x5464: 0x407f0a20, 0x5465: 0x407f0c20, 0x5466: 0x407f0e20, 0x5467: 0x407f1020, - 0x5468: 0x407f1220, 0x5469: 0x407f1420, 0x546a: 0x407f1620, 0x546b: 0x407f1820, - 0x546c: 0x407f1a20, 0x546d: 0x407f1c20, 0x546e: 0x407f1e20, 0x546f: 0x407f2020, - 0x5470: 0x407f2220, 0x5471: 0x407f2420, 0x5472: 0x407f2620, 0x5473: 0x407f2820, - 0x5474: 0x407f2a20, 0x5475: 0x407f2c20, 0x5476: 0x407f2e20, 0x5477: 0x407f3020, - 0x5478: 0x407f3220, 0x5479: 0x407f3420, 0x547a: 0x407f3620, 0x547b: 0x407f3820, - 0x547c: 0x407f3a20, 0x547d: 0x407f3c20, 0x547e: 0x407f3e20, 0x547f: 0x407f4020, - // Block 0x152, offset 0x5480 - 0x5480: 0x407f4220, 0x5481: 0x407f4420, 0x5482: 0x407f4620, 0x5483: 0x407f4820, - 0x5484: 0x407f4a20, 0x5485: 0x407f4c20, 0x5486: 0x407f4e20, 0x5487: 0x407f5020, - 0x5488: 0x407f5220, 0x5489: 0x407f5420, 0x548a: 0x407f5620, 0x548b: 0x407f5820, - 0x548c: 0x407f5a20, 0x548d: 0x407f5c20, 0x548e: 0x407f5e20, 0x548f: 0x407f6020, - 0x5490: 0x407f6220, 0x5491: 0x407f6420, 0x5492: 0x407f6620, 0x5493: 0x407f6820, - 0x5494: 0x407f6a20, 0x5495: 0x407f6c20, 0x5496: 0x407f6e20, 0x5497: 0x407f7020, - 0x5498: 0x407f7220, 0x5499: 0x407f7420, 0x549a: 0x407f7620, 0x549b: 0x407f7820, - 0x549c: 0x407f7a20, 0x549d: 0x407f7c20, 0x549e: 0x407f7e20, 0x549f: 0x407f8020, - 0x54a0: 0x407f8220, 0x54a1: 0x407f8420, 0x54a2: 0x407f8620, 0x54a3: 0x407f8820, - 0x54a4: 0x407f8a20, 0x54a5: 0x407f8c20, 0x54a6: 0x407f8e20, 0x54a7: 0x407f9020, - 0x54a8: 0x407f9220, 0x54a9: 0x407f9420, 0x54aa: 0x407f9620, 0x54ab: 0x407f9820, - 0x54ac: 0x407f9a20, 0x54ad: 0x407f9c20, 0x54ae: 0x407f9e20, 0x54af: 0x407fa020, - 0x54b0: 0x407fa220, 0x54b1: 0x407fa420, 0x54b2: 0x407fa620, 0x54b3: 0x407fa820, - 0x54b4: 0x407faa20, 0x54b5: 0x407fac20, 0x54b6: 0x407fae20, 0x54b7: 0x407fb020, - 0x54b8: 0x407fb220, 0x54b9: 0x407fb420, 0x54ba: 0x407fb620, 0x54bb: 0x407fb820, - 0x54bc: 0x407fba20, 0x54bd: 0x407fbc20, 0x54be: 0x407fbe20, 0x54bf: 0x407fc020, - // Block 0x153, offset 0x54c0 - 0x54c0: 0x407fc220, 0x54c1: 0x407fc420, 0x54c2: 0x407fc620, 0x54c3: 0x407fc820, - 0x54c4: 0x407fca20, 0x54c5: 0x407fcc20, 0x54c6: 0x407fce20, 0x54c7: 0x407fd020, - 0x54c8: 0x407fd220, 0x54c9: 0x407fd420, 0x54ca: 0x407fd620, 0x54cb: 0x407fd820, - 0x54cc: 0x407fda20, 0x54cd: 0x407fdc20, 0x54ce: 0x407fde20, 0x54cf: 0x407fe020, - 0x54d0: 0x407fe220, 0x54d1: 0x407fe420, 0x54d2: 0x407fe620, 0x54d3: 0x407fe820, - 0x54d4: 0x407fea20, 0x54d5: 0x407fec20, 0x54d6: 0x407fee20, 0x54d7: 0x407ff020, - 0x54d8: 0x407ff220, 0x54d9: 0x407ff420, 0x54da: 0x407ff620, 0x54db: 0x407ff820, - 0x54dc: 0x407ffa20, 0x54dd: 0x407ffc20, 0x54de: 0x407ffe20, 0x54df: 0x40800020, - 0x54e0: 0x40800220, 0x54e1: 0x40800420, 0x54e2: 0x40800620, 0x54e3: 0x40800820, - 0x54e4: 0x40800a20, 0x54e5: 0x40800c20, 0x54e6: 0x40800e20, 0x54e7: 0x40801020, - 0x54e8: 0x40801220, 0x54e9: 0x40801420, 0x54ea: 0x40801620, 0x54eb: 0x40801820, - 0x54ec: 0x40801a20, 0x54ed: 0x40801c20, 0x54ee: 0x40801e20, 0x54ef: 0x40802020, - 0x54f0: 0x40802220, 0x54f1: 0x40802420, 0x54f2: 0x40802620, 0x54f3: 0x40802820, - 0x54f4: 0x40802a20, 0x54f5: 0x40802c20, 0x54f6: 0x40802e20, 0x54f7: 0x40803020, - 0x54f8: 0x40803220, 0x54f9: 0x40803420, 0x54fa: 0x40803620, 0x54fb: 0x40803820, - 0x54fc: 0x40803a20, 0x54fd: 0x40803c20, 0x54fe: 0x40803e20, 0x54ff: 0x40804020, - // Block 0x154, offset 0x5500 - 0x5500: 0x40804220, 0x5501: 0x40804420, 0x5502: 0x40804620, 0x5503: 0x40804820, - 0x5504: 0x40804a20, 0x5505: 0x40804c20, 0x5506: 0x40804e20, 0x5507: 0x40805020, - 0x5508: 0x40805220, 0x5509: 0x40805420, 0x550a: 0x40805620, 0x550b: 0x40805820, - 0x550c: 0x40805a20, 0x550d: 0x40805c20, 0x550e: 0x40805e20, 0x550f: 0x40806020, - 0x5510: 0x40806220, 0x5511: 0x40806420, 0x5512: 0x40806620, 0x5513: 0x40806820, - 0x5514: 0x40806a20, 0x5515: 0x40806c20, 0x5516: 0x40806e20, 0x5517: 0x40807020, - 0x5518: 0x40807220, 0x5519: 0x40807420, 0x551a: 0x40807620, 0x551b: 0x40807820, - 0x551c: 0x40807a20, 0x551d: 0x40807c20, 0x551e: 0x40807e20, 0x551f: 0x40808020, - 0x5520: 0x40808220, 0x5521: 0x40808420, 0x5522: 0x40808620, 0x5523: 0x40808820, - 0x5524: 0x40808a20, 0x5525: 0x40808c20, 0x5526: 0x40808e20, 0x5527: 0x40809020, - 0x5528: 0x40809220, 0x5529: 0x40809420, 0x552a: 0x40809620, 0x552b: 0x40809820, - 0x552c: 0x40809a20, 0x552d: 0x40809c20, 0x552e: 0x40809e20, 0x552f: 0x4080a020, - 0x5530: 0x4080a220, 0x5531: 0x4080a420, 0x5532: 0x4080a620, 0x5533: 0x4080a820, - 0x5534: 0x4080aa20, 0x5535: 0x4080ac20, 0x5536: 0x4080ae20, 0x5537: 0x4080b020, - 0x5538: 0x4080b220, 0x5539: 0x4080b420, 0x553a: 0x4080b620, 0x553b: 0x4080b820, - 0x553c: 0x4080ba20, 0x553d: 0x4080bc20, 0x553e: 0x4080be20, 0x553f: 0x4080c020, - // Block 0x155, offset 0x5540 - 0x5540: 0x4080c220, 0x5541: 0x4080c420, 0x5542: 0x4080c620, 0x5543: 0x4080c820, - 0x5544: 0x4080ca20, 0x5545: 0x4080cc20, 0x5546: 0x4080ce20, 0x5547: 0x4080d020, - 0x5548: 0x4080d220, 0x5549: 0x4080d420, 0x554a: 0x4080d620, 0x554b: 0x4080d820, - 0x554c: 0x4080da20, 0x554d: 0x4080dc20, 0x554e: 0x4080de20, 0x554f: 0x4080e020, - 0x5550: 0x4080e220, 0x5551: 0x4080e420, 0x5552: 0x4080e620, 0x5553: 0x4080e820, - 0x5554: 0x4080ea20, 0x5555: 0x4080ec20, 0x5556: 0x4080ee20, 0x5557: 0x4080f020, - 0x5558: 0x4080f220, 0x5559: 0x4080f420, 0x555a: 0x4080f620, 0x555b: 0x4080f820, - 0x555c: 0x4080fa20, 0x555d: 0x4080fc20, 0x555e: 0x4080fe20, 0x555f: 0x40810020, - 0x5560: 0x40810220, 0x5561: 0x40810420, 0x5562: 0x40810620, 0x5563: 0x40810820, - 0x5564: 0x40810a20, 0x5565: 0x40810c20, 0x5566: 0x40810e20, 0x5567: 0x40811020, - 0x5568: 0x40811220, 0x5569: 0x40811420, 0x556a: 0x40811620, 0x556b: 0x40811820, - 0x556c: 0x40811a20, 0x556d: 0x40811c20, 0x556e: 0x40811e20, 0x556f: 0x40812020, - 0x5570: 0x40812220, 0x5571: 0x40812420, 0x5572: 0x40812620, 0x5573: 0x40812820, - 0x5574: 0x40812a20, 0x5575: 0x40812c20, 0x5576: 0x40812e20, 0x5577: 0x40813020, - 0x5578: 0x40813220, 0x5579: 0x40813420, 0x557a: 0x40813620, 0x557b: 0x40813820, - 0x557c: 0x40813a20, 0x557d: 0x40813c20, 0x557e: 0x40813e20, 0x557f: 0x40814020, - // Block 0x156, offset 0x5580 - 0x5580: 0x40814220, 0x5581: 0x40814420, 0x5582: 0x40814620, 0x5583: 0x40814820, - 0x5584: 0x40814a20, 0x5585: 0x40814c20, 0x5586: 0x40814e20, 0x5587: 0x40815020, - 0x5588: 0x40815220, 0x5589: 0x40815420, 0x558a: 0x40815620, 0x558b: 0x40815820, - 0x558c: 0x40815a20, 0x558d: 0x40815c20, 0x558e: 0x40815e20, 0x558f: 0x40816020, - 0x5590: 0x40816220, 0x5591: 0x40816420, 0x5592: 0x40816620, 0x5593: 0x40816820, - 0x5594: 0x40816a20, 0x5595: 0x40816c20, 0x5596: 0x40816e20, 0x5597: 0x40817020, - 0x5598: 0x40817220, 0x5599: 0x40817420, 0x559a: 0x40817620, 0x559b: 0x40817820, - 0x559c: 0x40817a20, 0x559d: 0x40817c20, 0x559e: 0x40817e20, 0x559f: 0x40818020, - 0x55a0: 0x40818220, 0x55a1: 0x40818420, 0x55a2: 0x40818620, 0x55a3: 0x40818820, - 0x55a4: 0x40818a20, 0x55a5: 0x40818c20, 0x55a6: 0x40818e20, 0x55a7: 0x40819020, - 0x55a8: 0x40819220, 0x55a9: 0x40819420, 0x55aa: 0x40819620, 0x55ab: 0x40819820, - 0x55ac: 0x40819a20, 0x55ad: 0x40819c20, 0x55ae: 0x40819e20, 0x55af: 0x4081a020, - 0x55b0: 0x4081a220, 0x55b1: 0x4081a420, 0x55b2: 0x4081a620, 0x55b3: 0x4081a820, - 0x55b4: 0x4081aa20, 0x55b5: 0x4081ac20, 0x55b6: 0x4081ae20, 0x55b7: 0x4081b020, - 0x55b8: 0x4081b220, 0x55b9: 0x4081b420, 0x55ba: 0x4081b620, 0x55bb: 0x4081b820, - 0x55bc: 0x4081ba20, 0x55bd: 0x4081bc20, 0x55be: 0x4081be20, 0x55bf: 0x4081c020, - // Block 0x157, offset 0x55c0 - 0x55c0: 0x4081c220, 0x55c1: 0x4081c420, 0x55c2: 0x4081c620, 0x55c3: 0x4081c820, - 0x55c4: 0x4081ca20, 0x55c5: 0x4081cc20, 0x55c6: 0x4081ce20, 0x55c7: 0x4081d020, - 0x55c8: 0x4081d220, 0x55c9: 0x4081d420, 0x55ca: 0x4081d620, 0x55cb: 0x4081d820, - 0x55cc: 0x4081da20, 0x55cd: 0x4081dc20, 0x55ce: 0x4081de20, 0x55cf: 0x4081e020, - 0x55d0: 0x4081e220, 0x55d1: 0x4081e420, 0x55d2: 0x4081e620, 0x55d3: 0x4081e820, - 0x55d4: 0x4081ea20, 0x55d5: 0x4081ec20, 0x55d6: 0x4081ee20, 0x55d7: 0x4081f020, - 0x55d8: 0x4081f220, 0x55d9: 0x4081f420, 0x55da: 0x4081f620, 0x55db: 0x4081f820, - 0x55dc: 0x4081fa20, 0x55dd: 0x4081fc20, 0x55de: 0x4081fe20, 0x55df: 0x40820020, - 0x55e0: 0x40820220, 0x55e1: 0x40820420, 0x55e2: 0x40820620, 0x55e3: 0x40820820, - 0x55e4: 0x40820a20, 0x55e5: 0x40820c20, 0x55e6: 0x40820e20, 0x55e7: 0x40821020, - 0x55e8: 0x40821220, 0x55e9: 0x40821420, 0x55ea: 0x40821620, 0x55eb: 0x40821820, - 0x55ec: 0x40821a20, 0x55ed: 0x40821c20, 0x55ee: 0x40821e20, 0x55ef: 0x40822020, - 0x55f0: 0x40822220, 0x55f1: 0x40822420, 0x55f2: 0x40822620, 0x55f3: 0x40822820, - 0x55f4: 0x40822a20, 0x55f5: 0x40822c20, 0x55f6: 0x40822e20, 0x55f7: 0x40823020, - 0x55f8: 0x40823220, 0x55f9: 0x40823420, 0x55fa: 0x40823620, 0x55fb: 0x40823820, - 0x55fc: 0x40823a20, 0x55fd: 0x40823c20, 0x55fe: 0x40823e20, 0x55ff: 0x40824020, - // Block 0x158, offset 0x5600 - 0x5600: 0x40824220, 0x5601: 0x40824420, 0x5602: 0x40824620, 0x5603: 0x40824820, - 0x5604: 0x40824a20, 0x5605: 0x40824c20, 0x5606: 0x40824e20, 0x5607: 0x40825020, - 0x5608: 0x40825220, 0x5609: 0x40825420, 0x560a: 0x40825620, 0x560b: 0x40825820, - 0x560c: 0x40825a20, 0x560d: 0x40825c20, 0x560e: 0x40825e20, 0x560f: 0x40826020, - 0x5610: 0x40826220, 0x5611: 0x40826420, 0x5612: 0x40826620, 0x5613: 0x40826820, - 0x5614: 0x40826a20, 0x5615: 0x40826c20, 0x5616: 0x40826e20, 0x5617: 0x40827020, - 0x5618: 0x40827220, 0x5619: 0x40827420, 0x561a: 0x40827620, 0x561b: 0x40827820, - 0x561c: 0x40827a20, 0x561d: 0x40827c20, 0x561e: 0x40827e20, 0x561f: 0x40828020, - 0x5620: 0x40828220, 0x5621: 0x40828420, 0x5622: 0x40828620, 0x5623: 0x40828820, - 0x5624: 0x40828a20, 0x5625: 0x40828c20, 0x5626: 0x40828e20, 0x5627: 0x40829020, - 0x5628: 0x40829220, 0x5629: 0x40829420, 0x562a: 0x40829620, 0x562b: 0x40829820, - 0x562c: 0x40829a20, 0x562d: 0x40829c20, 0x562e: 0x40829e20, 0x562f: 0x4082a020, - 0x5630: 0x4082a220, 0x5631: 0x4082a420, 0x5632: 0x4082a620, 0x5633: 0x4082a820, - 0x5634: 0x4082aa20, 0x5635: 0x4082ac20, 0x5636: 0x4082ae20, 0x5637: 0x4082b020, - 0x5638: 0x4082b220, 0x5639: 0x4082b420, 0x563a: 0x4082b620, 0x563b: 0x4082b820, - 0x563c: 0x4082ba20, 0x563d: 0x4082bc20, 0x563e: 0x4082be20, 0x563f: 0x4082c020, - // Block 0x159, offset 0x5640 - 0x5640: 0x4082c220, 0x5641: 0x4082c420, 0x5642: 0x4082c620, 0x5643: 0x4082c820, - 0x5644: 0x4082ca20, 0x5645: 0x4082cc20, 0x5646: 0x4082ce20, 0x5647: 0x4082d020, - 0x5648: 0x4082d220, 0x5649: 0x4082d420, 0x564a: 0x4082d620, 0x564b: 0x4082d820, - 0x564c: 0x4082da20, 0x564d: 0x4082dc20, 0x564e: 0x4082de20, 0x564f: 0x4082e020, - 0x5650: 0x4082e220, 0x5651: 0x4082e420, 0x5652: 0x4082e620, 0x5653: 0x4082e820, - 0x5654: 0x4082ea20, 0x5655: 0x4082ec20, 0x5656: 0x4082ee20, 0x5657: 0x4082f020, - 0x5658: 0x4082f220, 0x5659: 0x4082f420, 0x565a: 0x4082f620, 0x565b: 0x4082f820, - 0x565c: 0x4082fa20, 0x565d: 0x4082fc20, 0x565e: 0x4082fe20, 0x565f: 0x40830020, - 0x5660: 0x40830220, 0x5661: 0x40830420, 0x5662: 0x40830620, 0x5663: 0x40830820, - 0x5664: 0x40830a20, 0x5665: 0x40830c20, 0x5666: 0x40830e20, 0x5667: 0x40831020, - 0x5668: 0x40831220, 0x5669: 0x40831420, 0x566a: 0x40831620, 0x566b: 0x40831820, - 0x566c: 0x40831a20, 0x566d: 0x40831c20, 0x566e: 0x40831e20, 0x566f: 0x40832020, - 0x5670: 0x40832220, 0x5671: 0x40832420, 0x5672: 0x40832620, 0x5673: 0x40832820, - 0x5674: 0x40832a20, 0x5675: 0x40832c20, 0x5676: 0x40832e20, 0x5677: 0x40833020, - 0x5678: 0x40833220, 0x5679: 0x40833420, 0x567a: 0x40833620, 0x567b: 0x40833820, - 0x567c: 0x40833a20, 0x567d: 0x40833c20, 0x567e: 0x40833e20, 0x567f: 0x40834020, - // Block 0x15a, offset 0x5680 - 0x5680: 0x40834220, 0x5681: 0x40834420, 0x5682: 0x40834620, 0x5683: 0x40834820, - 0x5684: 0x40834a20, 0x5685: 0x40834c20, 0x5686: 0x40834e20, 0x5687: 0x40835020, - 0x5688: 0x40835220, 0x5689: 0x40835420, 0x568a: 0x40835620, 0x568b: 0x40835820, - 0x568c: 0x40835a20, 0x568d: 0x40835c20, 0x568e: 0x40835e20, 0x568f: 0x40836020, - 0x5690: 0x40836220, 0x5691: 0x40836420, 0x5692: 0x40836620, 0x5693: 0x40836820, - 0x5694: 0x40836a20, 0x5695: 0x40836c20, 0x5696: 0x40836e20, 0x5697: 0x40837020, - 0x5698: 0x40837220, 0x5699: 0x40837420, 0x569a: 0x40837620, 0x569b: 0x40837820, - 0x569c: 0x40837a20, 0x569d: 0x40837c20, 0x569e: 0x40837e20, 0x569f: 0x40838020, - 0x56a0: 0x40838220, 0x56a1: 0x40838420, 0x56a2: 0x40838620, 0x56a3: 0x40838820, - 0x56a4: 0x40838a20, 0x56a5: 0x40838c20, 0x56a6: 0x40838e20, 0x56a7: 0x40839020, - 0x56a8: 0x40839220, 0x56a9: 0x40839420, 0x56aa: 0x40839620, 0x56ab: 0x40839820, - 0x56ac: 0x40839a20, 0x56ad: 0x40839c20, 0x56ae: 0x40839e20, 0x56af: 0x4083a020, - 0x56b0: 0x4083a220, 0x56b1: 0x4083a420, 0x56b2: 0x4083a620, 0x56b3: 0x4083a820, - 0x56b4: 0x4083aa20, 0x56b5: 0x4083ac20, 0x56b6: 0x4083ae20, 0x56b7: 0x4083b020, - 0x56b8: 0x4083b220, 0x56b9: 0x4083b420, 0x56ba: 0x4083b620, 0x56bb: 0x4083b820, - 0x56bc: 0x4083ba20, 0x56bd: 0x4083bc20, 0x56be: 0x4083be20, 0x56bf: 0x4083c020, - // Block 0x15b, offset 0x56c0 - 0x56c0: 0x4083c220, 0x56c1: 0x4083c420, 0x56c2: 0x4083c620, 0x56c3: 0x4083c820, - 0x56c4: 0x4083ca20, 0x56c5: 0x4083cc20, 0x56c6: 0x4083ce20, 0x56c7: 0x4083d020, - 0x56c8: 0x4083d220, 0x56c9: 0x4083d420, 0x56ca: 0x4083d620, 0x56cb: 0x4083d820, - 0x56cc: 0x4083da20, 0x56cd: 0x4083dc20, 0x56ce: 0x4083de20, 0x56cf: 0x4083e020, - 0x56d0: 0x4083e220, 0x56d1: 0x4083e420, 0x56d2: 0x4083e620, 0x56d3: 0x4083e820, - 0x56d4: 0x4083ea20, 0x56d5: 0x4083ec20, 0x56d6: 0x4083ee20, 0x56d7: 0x4083f020, - 0x56d8: 0x4083f220, 0x56d9: 0x4083f420, 0x56da: 0x4083f620, 0x56db: 0x4083f820, - 0x56dc: 0x4083fa20, 0x56dd: 0x4083fc20, 0x56de: 0x4083fe20, 0x56df: 0x40840020, - 0x56e0: 0x40840220, 0x56e1: 0x40840420, 0x56e2: 0x40840620, 0x56e3: 0x40840820, - 0x56e4: 0x40840a20, 0x56e5: 0x40840c20, 0x56e6: 0x40840e20, 0x56e7: 0x40841020, - 0x56e8: 0x40841220, 0x56e9: 0x40841420, 0x56ea: 0x40841620, 0x56eb: 0x40841820, - 0x56ec: 0x40841a20, 0x56ed: 0x40841c20, 0x56ee: 0x40841e20, 0x56ef: 0x40842020, - 0x56f0: 0x40842220, 0x56f1: 0x40842420, 0x56f2: 0x40842620, 0x56f3: 0x40842820, - 0x56f4: 0x40842a20, 0x56f5: 0x40842c20, 0x56f6: 0x40842e20, 0x56f7: 0x40843020, - 0x56f8: 0x40843220, 0x56f9: 0x40843420, 0x56fa: 0x40843620, 0x56fb: 0x40843820, - 0x56fc: 0x40843a20, 0x56fd: 0x40843c20, 0x56fe: 0x40843e20, 0x56ff: 0x40844020, - // Block 0x15c, offset 0x5700 - 0x5700: 0x40844220, 0x5701: 0x40844420, 0x5702: 0x40844620, 0x5703: 0x40844820, - 0x5704: 0x40844a20, 0x5705: 0x40844c20, 0x5706: 0x40844e20, 0x5707: 0x40845020, - 0x5708: 0x40845220, 0x5709: 0x40845420, 0x570a: 0x40845620, 0x570b: 0x40845820, - 0x570c: 0x40845a20, 0x570d: 0x40845c20, 0x570e: 0x40845e20, 0x570f: 0x40846020, - 0x5710: 0x40846220, 0x5711: 0x40846420, 0x5712: 0x40846620, 0x5713: 0x40846820, - 0x5714: 0x40846a20, 0x5715: 0x40846c20, 0x5716: 0x40846e20, 0x5717: 0x40847020, - 0x5718: 0x40847220, 0x5719: 0x40847420, 0x571a: 0x40847620, 0x571b: 0x40847820, - 0x571c: 0x40847a20, 0x571d: 0x40847c20, 0x571e: 0x40847e20, 0x571f: 0x40848020, - 0x5720: 0x40848220, 0x5721: 0x40848420, 0x5722: 0x40848620, 0x5723: 0x40848820, - 0x5724: 0x40848a20, 0x5725: 0x40848c20, 0x5726: 0x40848e20, 0x5727: 0x40849020, - 0x5728: 0x40849220, 0x5729: 0x40849420, 0x572a: 0x40849620, 0x572b: 0x40849820, - 0x572c: 0x40849a20, 0x572d: 0x40849c20, 0x572e: 0x40849e20, 0x572f: 0x4084a020, - 0x5730: 0x4084a220, 0x5731: 0x4084a420, 0x5732: 0x4084a620, 0x5733: 0x4084a820, - 0x5734: 0x4084aa20, 0x5735: 0x4084ac20, 0x5736: 0x4084ae20, 0x5737: 0x4084b020, - 0x5738: 0x4084b220, 0x5739: 0x4084b420, 0x573a: 0x4084b620, 0x573b: 0x4084b820, - 0x573c: 0x4084ba20, 0x573d: 0x4084bc20, 0x573e: 0x4084be20, 0x573f: 0x4084c020, - // Block 0x15d, offset 0x5740 - 0x5740: 0x4084c220, 0x5741: 0x4084c420, 0x5742: 0x4084c620, 0x5743: 0x4084c820, - 0x5744: 0x4084ca20, 0x5745: 0x4084cc20, 0x5746: 0x4084ce20, 0x5747: 0x4084d020, - 0x5748: 0x4084d220, 0x5749: 0x4084d420, 0x574a: 0x4084d620, 0x574b: 0x4084d820, - 0x574c: 0x4084da20, 0x574d: 0x4084dc20, 0x574e: 0x4084de20, 0x574f: 0x4084e020, - 0x5750: 0x4084e220, 0x5751: 0x4084e420, 0x5752: 0x4084e620, 0x5753: 0x4084e820, - 0x5754: 0x4084ea20, 0x5755: 0x4084ec20, 0x5756: 0x4084ee20, 0x5757: 0x4084f020, - 0x5758: 0x4084f220, 0x5759: 0x4084f420, 0x575a: 0x4084f620, 0x575b: 0x4084f820, - 0x575c: 0x4084fa20, 0x575d: 0x4084fc20, 0x575e: 0x4084fe20, 0x575f: 0x40850020, - 0x5760: 0x40850220, 0x5761: 0x40850420, 0x5762: 0x40850620, 0x5763: 0x40850820, - 0x5764: 0x40850a20, 0x5765: 0x40850c20, 0x5766: 0x40850e20, 0x5767: 0x40851020, - 0x5768: 0x40851220, 0x5769: 0x40851420, 0x576a: 0x40851620, 0x576b: 0x40851820, - 0x576c: 0x40851a20, 0x576d: 0x40851c20, 0x576e: 0x40851e20, 0x576f: 0x40852020, - 0x5770: 0x40852220, 0x5771: 0x40852420, 0x5772: 0x40852620, 0x5773: 0x40852820, - 0x5774: 0x40852a20, 0x5775: 0x40852c20, 0x5776: 0x40852e20, 0x5777: 0x40853020, - 0x5778: 0x40853220, 0x5779: 0x40853420, 0x577a: 0x40853620, 0x577b: 0x40853820, - 0x577c: 0x40853a20, 0x577d: 0x40853c20, 0x577e: 0x40853e20, 0x577f: 0x40854020, - // Block 0x15e, offset 0x5780 - 0x5780: 0x40854220, 0x5781: 0x40854420, 0x5782: 0x40854620, 0x5783: 0x40854820, - 0x5784: 0x40854a20, 0x5785: 0x40854c20, 0x5786: 0x40854e20, 0x5787: 0x40855020, - 0x5788: 0x40855220, 0x5789: 0x40855420, 0x578a: 0x40855620, 0x578b: 0x40855820, - 0x578c: 0x40855a20, 0x578d: 0x40855c20, 0x578e: 0x40855e20, 0x578f: 0x40856020, - 0x5790: 0x40856220, 0x5791: 0x40856420, 0x5792: 0x40856620, 0x5793: 0x40856820, - 0x5794: 0x40856a20, 0x5795: 0x40856c20, 0x5796: 0x40856e20, 0x5797: 0x40857020, - 0x5798: 0x40857220, 0x5799: 0x40857420, 0x579a: 0x40857620, 0x579b: 0x40857820, - 0x579c: 0x40857a20, 0x579d: 0x40857c20, 0x579e: 0x40857e20, 0x579f: 0x40858020, - 0x57a0: 0x40858220, 0x57a1: 0x40858420, 0x57a2: 0x40858620, 0x57a3: 0x40858820, - 0x57a4: 0x40858a20, 0x57a5: 0x40858c20, 0x57a6: 0x40858e20, 0x57a7: 0x40859020, - 0x57a8: 0x40859220, 0x57a9: 0x40859420, 0x57aa: 0x40859620, 0x57ab: 0x40859820, - 0x57ac: 0x40859a20, 0x57ad: 0x40859c20, 0x57ae: 0x40859e20, 0x57af: 0x4085a020, - 0x57b0: 0x4085a220, 0x57b1: 0x4085a420, 0x57b2: 0x4085a620, 0x57b3: 0x4085a820, - 0x57b4: 0x4085aa20, 0x57b5: 0x4085ac20, 0x57b6: 0x4085ae20, 0x57b7: 0x4085b020, - 0x57b8: 0x4085b220, 0x57b9: 0x4085b420, 0x57ba: 0x4085b620, 0x57bb: 0x4085b820, - 0x57bc: 0x4085ba20, 0x57bd: 0x4085bc20, 0x57be: 0x4085be20, 0x57bf: 0x4085c020, - // Block 0x15f, offset 0x57c0 - 0x57c0: 0x4085c220, 0x57c1: 0x4085c420, 0x57c2: 0x4085c620, 0x57c3: 0x4085c820, - 0x57c4: 0x4085ca20, 0x57c5: 0x4085cc20, 0x57c6: 0x4085ce20, 0x57c7: 0x4085d020, - 0x57c8: 0x4085d220, 0x57c9: 0x4085d420, 0x57ca: 0x4085d620, 0x57cb: 0x4085d820, - 0x57cc: 0x4085da20, 0x57cd: 0x4085dc20, 0x57ce: 0x4085de20, 0x57cf: 0x4085e020, - 0x57d0: 0x4085e220, 0x57d1: 0x4085e420, 0x57d2: 0x4085e620, 0x57d3: 0x4085e820, - 0x57d4: 0x4085ea20, 0x57d5: 0x4085ec20, 0x57d6: 0x4085ee20, 0x57d7: 0x4085f020, - 0x57d8: 0x4085f220, 0x57d9: 0x4085f420, 0x57da: 0x4085f620, 0x57db: 0x4085f820, - 0x57dc: 0x4085fa20, 0x57dd: 0x4085fc20, 0x57de: 0x4085fe20, 0x57df: 0x40860020, - 0x57e0: 0x40860220, 0x57e1: 0x40860420, 0x57e2: 0x40860620, 0x57e3: 0x40860820, - 0x57e4: 0x40860a20, 0x57e5: 0x40860c20, 0x57e6: 0x40860e20, 0x57e7: 0x40861020, - 0x57e8: 0x40861220, 0x57e9: 0x40861420, 0x57ea: 0x40861620, 0x57eb: 0x40861820, - 0x57ec: 0x40861a20, 0x57ed: 0x40861c20, 0x57ee: 0x40861e20, - // Block 0x160, offset 0x5800 - 0x5800: 0x405e3a20, 0x5801: 0x405e3c20, 0x5802: 0x405e3e20, 0x5803: 0x405e4020, - 0x5804: 0x405e4220, 0x5805: 0x405e4420, 0x5806: 0x405e4620, 0x5807: 0x405e4820, - 0x5808: 0x405e4a20, 0x5809: 0x405e4c20, 0x580a: 0x405e4e20, 0x580b: 0x405e5020, - 0x580c: 0x405e5220, 0x580d: 0x405e5420, 0x580e: 0x405e5620, 0x580f: 0x405e5820, - 0x5810: 0x405e5a20, 0x5811: 0x405e5c20, 0x5812: 0x405e5e20, 0x5813: 0x405e6020, - 0x5814: 0x405e6220, 0x5815: 0x405e6420, 0x5816: 0x405e6620, 0x5817: 0x405e6820, - 0x5818: 0x405e6a20, 0x5819: 0x405e6c20, 0x581a: 0x405e6e20, 0x581b: 0x405e7020, - 0x581c: 0x405e7220, 0x581d: 0x405e7420, 0x581e: 0x405e7620, 0x581f: 0x405e7820, - 0x5820: 0x405e7a20, 0x5821: 0x405e7c20, 0x5822: 0x405e7e20, 0x5823: 0x405e8020, - 0x5824: 0x405e8220, 0x5825: 0x405e8420, 0x5826: 0x405e8620, 0x5827: 0x405e8820, - 0x5828: 0x405e8a20, 0x5829: 0x405e8c20, 0x582a: 0x405e8e20, 0x582b: 0x405e9020, - 0x582c: 0x405e9220, 0x582d: 0x405e9420, 0x582e: 0x405e9620, 0x582f: 0x405e9820, - 0x5830: 0x405e9a20, 0x5831: 0x405e9c20, 0x5832: 0x405e9e20, 0x5833: 0x405ea020, - 0x5834: 0x405ea220, 0x5835: 0x405ea420, 0x5836: 0x405ea620, 0x5837: 0x405ea820, - 0x5838: 0x405eaa20, 0x5839: 0x405eac20, 0x583a: 0x405eae20, 0x583b: 0x405eb020, - 0x583c: 0x405eb220, 0x583d: 0x405eb420, 0x583e: 0x405eb620, 0x583f: 0x405eb820, - // Block 0x161, offset 0x5840 - 0x5840: 0x405eba20, 0x5841: 0x405ebc20, 0x5842: 0x405ebe20, 0x5843: 0x405ec020, - 0x5844: 0x405ec220, 0x5845: 0x405ec420, 0x5846: 0x405ec620, 0x5847: 0x405ec820, - 0x5848: 0x405eca20, 0x5849: 0x405ecc20, 0x584a: 0x405ece20, 0x584b: 0x405ed020, - 0x584c: 0x405ed220, 0x584d: 0x405ed420, 0x584e: 0x405ed620, 0x584f: 0x405ed820, - 0x5850: 0x405eda20, 0x5851: 0x405edc20, 0x5852: 0x405ede20, 0x5853: 0x405ee020, - 0x5854: 0x405ee220, 0x5855: 0x405ee420, 0x5856: 0x405ee620, 0x5857: 0x405ee820, - 0x5858: 0x405eea20, 0x5859: 0x405eec20, 0x585a: 0x405eee20, 0x585b: 0x405ef020, - 0x585c: 0x405ef220, 0x585d: 0x405ef420, 0x585e: 0x405ef620, 0x585f: 0x405ef820, - 0x5860: 0x405efa20, 0x5861: 0x405efc20, 0x5862: 0x405efe20, 0x5863: 0x405f0020, - 0x5864: 0x405f0220, 0x5865: 0x405f0420, 0x5866: 0x405f0620, 0x5867: 0x405f0820, - 0x5868: 0x405f0a20, 0x5869: 0x405f0c20, 0x586a: 0x405f0e20, 0x586b: 0x405f1020, - 0x586c: 0x405f1220, 0x586d: 0x405f1420, 0x586e: 0x405f1620, 0x586f: 0x405f1820, - 0x5870: 0x405f1a20, 0x5871: 0x405f1c20, 0x5872: 0x405f1e20, 0x5873: 0x405f2020, - 0x5874: 0x405f2220, 0x5875: 0x405f2420, 0x5876: 0x405f2620, 0x5877: 0x405f2820, - 0x5878: 0x405f2a20, 0x5879: 0x405f2c20, 0x587a: 0x405f2e20, 0x587b: 0x405f3020, - 0x587c: 0x405f3220, 0x587d: 0x405f3420, 0x587e: 0x405f3620, 0x587f: 0x405f3820, - // Block 0x162, offset 0x5880 - 0x5880: 0x405f3a20, 0x5881: 0x405f3c20, 0x5882: 0x405f3e20, 0x5883: 0x405f4020, - 0x5884: 0x405f4220, 0x5885: 0x405f4420, 0x5886: 0x405f4620, 0x5887: 0x405f4820, - 0x5888: 0x405f4a20, 0x5889: 0x405f4c20, 0x588a: 0x405f4e20, 0x588b: 0x405f5020, - 0x588c: 0x405f5220, 0x588d: 0x405f5420, 0x588e: 0x405f5620, 0x588f: 0x405f5820, - 0x5890: 0x405f5a20, 0x5891: 0x405f5c20, 0x5892: 0x405f5e20, 0x5893: 0x405f6020, - 0x5894: 0x405f6220, 0x5895: 0x405f6420, 0x5896: 0x405f6620, 0x5897: 0x405f6820, - 0x5898: 0x405f6a20, 0x5899: 0x405f6c20, 0x589a: 0x405f6e20, 0x589b: 0x405f7020, - 0x589c: 0x405f7220, 0x589d: 0x405f7420, 0x589e: 0x405f7620, 0x589f: 0x405f7820, - 0x58a0: 0x405f7a20, 0x58a1: 0x405f7c20, 0x58a2: 0x405f7e20, 0x58a3: 0x405f8020, - 0x58a4: 0x405f8220, 0x58a5: 0x405f8420, 0x58a6: 0x405f8620, 0x58a7: 0x405f8820, - 0x58a8: 0x405f8a20, 0x58a9: 0x405f8c20, 0x58aa: 0x405f8e20, 0x58ab: 0x405f9020, - 0x58ac: 0x405f9220, 0x58ad: 0x405f9420, 0x58ae: 0x405f9620, 0x58af: 0x405f9820, - 0x58b0: 0x405f9a20, 0x58b1: 0x405f9c20, 0x58b2: 0x405f9e20, 0x58b3: 0x405fa020, - 0x58b4: 0x405fa220, 0x58b5: 0x405fa420, 0x58b6: 0x405fa620, 0x58b7: 0x405fa820, - 0x58b8: 0x405faa20, 0x58b9: 0x405fac20, 0x58ba: 0x405fae20, 0x58bb: 0x405fb020, - 0x58bc: 0x405fb220, 0x58bd: 0x405fb420, 0x58be: 0x405fb620, 0x58bf: 0x405fb820, - // Block 0x163, offset 0x58c0 - 0x58c0: 0x405fba20, 0x58c1: 0x405fbc20, 0x58c2: 0x405fbe20, 0x58c3: 0x405fc020, - 0x58c4: 0x405fc220, 0x58c5: 0x405fc420, 0x58c6: 0x405fc620, 0x58c7: 0x405fc820, - 0x58c8: 0x405fca20, 0x58c9: 0x405fcc20, 0x58ca: 0x405fce20, 0x58cb: 0x405fd020, - 0x58cc: 0x405fd220, 0x58cd: 0x405fd420, 0x58ce: 0x405fd620, 0x58cf: 0x405fd820, - 0x58d0: 0x405fda20, 0x58d1: 0x405fdc20, 0x58d2: 0x405fde20, 0x58d3: 0x405fe020, - 0x58d4: 0x405fe220, 0x58d5: 0x405fe420, 0x58d6: 0x405fe620, 0x58d7: 0x405fe820, - 0x58d8: 0x405fea20, 0x58d9: 0x405fec20, 0x58da: 0x405fee20, 0x58db: 0x405ff020, - 0x58dc: 0x405ff220, 0x58dd: 0x405ff420, 0x58de: 0x405ff620, 0x58df: 0x405ff820, - 0x58e0: 0x405ffa20, 0x58e1: 0x405ffc20, 0x58e2: 0x405ffe20, 0x58e3: 0x40600020, - 0x58e4: 0x40600220, 0x58e5: 0x40600420, 0x58e6: 0x40600620, 0x58e7: 0x40600820, - 0x58e8: 0x40600a20, 0x58e9: 0x40600c20, 0x58ea: 0x40600e20, 0x58eb: 0x40601020, - 0x58ec: 0x40601220, 0x58ed: 0x40601420, 0x58ee: 0x40601620, 0x58ef: 0x40601820, - 0x58f0: 0x40601a20, 0x58f1: 0x40601c20, 0x58f2: 0x40601e20, 0x58f3: 0x40602020, - 0x58f4: 0x40602220, 0x58f5: 0x40602420, 0x58f6: 0x40602620, 0x58f7: 0x40602820, - 0x58f8: 0x40602a20, 0x58f9: 0x40602c20, 0x58fa: 0x40602e20, 0x58fb: 0x40603020, - 0x58fc: 0x40603220, 0x58fd: 0x40603420, 0x58fe: 0x40603620, 0x58ff: 0x40603820, - // Block 0x164, offset 0x5900 - 0x5900: 0x40603a20, 0x5901: 0x40603c20, 0x5902: 0x40603e20, 0x5903: 0x40604020, - 0x5904: 0x40604220, 0x5905: 0x40604420, 0x5906: 0x40604620, 0x5907: 0x40604820, - 0x5908: 0x40604a20, 0x5909: 0x40604c20, 0x590a: 0x40604e20, 0x590b: 0x40605020, - 0x590c: 0x40605220, 0x590d: 0x40605420, 0x590e: 0x40605620, 0x590f: 0x40605820, - 0x5910: 0x40605a20, 0x5911: 0x40605c20, 0x5912: 0x40605e20, 0x5913: 0x40606020, - 0x5914: 0x40606220, 0x5915: 0x40606420, 0x5916: 0x40606620, 0x5917: 0x40606820, - 0x5918: 0x40606a20, 0x5919: 0x40606c20, 0x591a: 0x40606e20, 0x591b: 0x40607020, - 0x591c: 0x40607220, 0x591d: 0x40607420, 0x591e: 0x40607620, 0x591f: 0x40607820, - 0x5920: 0x40607a20, 0x5921: 0x40607c20, 0x5922: 0x40607e20, 0x5923: 0x40608020, - 0x5924: 0x40608220, 0x5925: 0x40608420, 0x5926: 0x40608620, 0x5927: 0x40608820, - 0x5928: 0x40608a20, 0x5929: 0x40608c20, 0x592a: 0x40608e20, 0x592b: 0x40609020, - 0x592c: 0x40609220, 0x592d: 0x40609420, 0x592e: 0x40609620, 0x592f: 0x40609820, - 0x5930: 0x40609a20, 0x5931: 0x40609c20, 0x5932: 0x40609e20, 0x5933: 0x4060a020, - 0x5934: 0x4060a220, 0x5935: 0x4060a420, 0x5936: 0x4060a620, 0x5937: 0x4060a820, - 0x5938: 0x4060aa20, 0x5939: 0x4060ac20, 0x593a: 0x4060ae20, 0x593b: 0x4060b020, - 0x593c: 0x4060b220, 0x593d: 0x4060b420, 0x593e: 0x4060b620, 0x593f: 0x4060b820, - // Block 0x165, offset 0x5940 - 0x5940: 0x4060ba20, 0x5941: 0x4060bc20, 0x5942: 0x4060be20, 0x5943: 0x4060c020, - 0x5944: 0x4060c220, 0x5945: 0x4060c420, 0x5946: 0x4060c620, 0x5947: 0x4060c820, - 0x5948: 0x4060ca20, 0x5949: 0x4060cc20, 0x594a: 0x4060ce20, 0x594b: 0x4060d020, - 0x594c: 0x4060d220, 0x594d: 0x4060d420, 0x594e: 0x4060d620, 0x594f: 0x4060d820, - 0x5950: 0x4060da20, 0x5951: 0x4060dc20, 0x5952: 0x4060de20, 0x5953: 0x4060e020, - 0x5954: 0x4060e220, 0x5955: 0x4060e420, 0x5956: 0x4060e620, 0x5957: 0x4060e820, - 0x5958: 0x4060ea20, 0x5959: 0x4060ec20, 0x595a: 0x4060ee20, 0x595b: 0x4060f020, - 0x595c: 0x4060f220, 0x595d: 0x4060f420, 0x595e: 0x4060f620, 0x595f: 0x4060f820, - 0x5960: 0x4060fa20, 0x5961: 0x4060fc20, 0x5962: 0x4060fe20, 0x5963: 0x40610020, - 0x5964: 0x40610220, 0x5965: 0x40610420, 0x5966: 0x40610620, 0x5967: 0x40610820, - 0x5968: 0x40610a20, 0x5969: 0x40610c20, 0x596a: 0x40610e20, 0x596b: 0x40611020, - 0x596c: 0x40611220, 0x596d: 0x40611420, 0x596e: 0x40611620, 0x596f: 0x40611820, - 0x5970: 0x40611a20, 0x5971: 0x40611c20, 0x5972: 0x40611e20, 0x5973: 0x40612020, - 0x5974: 0x40612220, 0x5975: 0x40612420, 0x5976: 0x40612620, 0x5977: 0x40612820, - 0x5978: 0x40612a20, 0x5979: 0x40612c20, 0x597a: 0x40612e20, 0x597b: 0x40613020, - 0x597c: 0x40613220, 0x597d: 0x40613420, 0x597e: 0x40613620, 0x597f: 0x40613820, - // Block 0x166, offset 0x5980 - 0x5980: 0x40613a20, 0x5981: 0x40613c20, 0x5982: 0x40613e20, 0x5983: 0x40614020, - 0x5984: 0x40614220, 0x5985: 0x40614420, 0x5986: 0x40614620, 0x5987: 0x40614820, - 0x5988: 0x40614a20, 0x5989: 0x40614c20, 0x598a: 0x40614e20, 0x598b: 0x40615020, - 0x598c: 0x40615220, 0x598d: 0x40615420, 0x598e: 0x40615620, 0x598f: 0x40615820, - 0x5990: 0x40615a20, 0x5991: 0x40615c20, 0x5992: 0x40615e20, 0x5993: 0x40616020, - 0x5994: 0x40616220, 0x5995: 0x40616420, 0x5996: 0x40616620, 0x5997: 0x40616820, - 0x5998: 0x40616a20, 0x5999: 0x40616c20, 0x599a: 0x40616e20, 0x599b: 0x40617020, - 0x599c: 0x40617220, 0x599d: 0x40617420, 0x599e: 0x40617620, 0x599f: 0x40617820, - 0x59a0: 0x40617a20, 0x59a1: 0x40617c20, 0x59a2: 0x40617e20, 0x59a3: 0x40618020, - 0x59a4: 0x40618220, 0x59a5: 0x40618420, 0x59a6: 0x40618620, 0x59a7: 0x40618820, - 0x59a8: 0x40618a20, 0x59a9: 0x40618c20, 0x59aa: 0x40618e20, 0x59ab: 0x40619020, - 0x59ac: 0x40619220, 0x59ad: 0x40619420, 0x59ae: 0x40619620, 0x59af: 0x40619820, - 0x59b0: 0x40619a20, 0x59b1: 0x40619c20, 0x59b2: 0x40619e20, 0x59b3: 0x4061a020, - 0x59b4: 0x4061a220, 0x59b5: 0x4061a420, 0x59b6: 0x4061a620, 0x59b7: 0x4061a820, - 0x59b8: 0x4061aa20, 0x59b9: 0x4061ac20, 0x59ba: 0x4061ae20, 0x59bb: 0x4061b020, - 0x59bc: 0x4061b220, 0x59bd: 0x4061b420, 0x59be: 0x4061b620, 0x59bf: 0x4061b820, - // Block 0x167, offset 0x59c0 - 0x59c0: 0x4061ba20, 0x59c1: 0x4061bc20, 0x59c2: 0x4061be20, 0x59c3: 0x4061c020, - 0x59c4: 0x4061c220, 0x59c5: 0x4061c420, 0x59c6: 0x4061c620, 0x59c7: 0x4061c820, - 0x59c8: 0x4061ca20, 0x59c9: 0x4061cc20, 0x59ca: 0x4061ce20, 0x59cb: 0x4061d020, - 0x59cc: 0x4061d220, 0x59cd: 0x4061d420, 0x59ce: 0x4061d620, 0x59cf: 0x4061d820, - 0x59d0: 0x4061da20, 0x59d1: 0x4061dc20, 0x59d2: 0x4061de20, 0x59d3: 0x4061e020, - 0x59d4: 0x4061e220, 0x59d5: 0x4061e420, 0x59d6: 0x4061e620, 0x59d7: 0x4061e820, - 0x59d8: 0x4061ea20, 0x59d9: 0x4061ec20, 0x59da: 0x4061ee20, 0x59db: 0x4061f020, - 0x59dc: 0x4061f220, 0x59dd: 0x4061f420, 0x59de: 0x4061f620, 0x59df: 0x4061f820, - 0x59e0: 0x4061fa20, 0x59e1: 0x4061fc20, 0x59e2: 0x4061fe20, 0x59e3: 0x40620020, - 0x59e4: 0x40620220, 0x59e5: 0x40620420, 0x59e6: 0x40620620, 0x59e7: 0x40620820, - 0x59e8: 0x40620a20, 0x59e9: 0x40620c20, 0x59ea: 0x40620e20, 0x59eb: 0x40621020, - 0x59ec: 0x40621220, 0x59ed: 0x40621420, 0x59ee: 0x40621620, 0x59ef: 0x40621820, - 0x59f0: 0x40621a20, 0x59f1: 0x40621c20, 0x59f2: 0x40621e20, 0x59f3: 0x40622020, - 0x59f4: 0x40622220, 0x59f5: 0x40622420, 0x59f6: 0x40622620, 0x59f7: 0x40622820, - 0x59f8: 0x40622a20, 0x59f9: 0x40622c20, 0x59fa: 0x40622e20, 0x59fb: 0x40623020, - 0x59fc: 0x40623220, 0x59fd: 0x40623420, 0x59fe: 0x40623620, 0x59ff: 0x40623820, - // Block 0x168, offset 0x5a00 - 0x5a00: 0x40623a20, 0x5a01: 0x40623c20, 0x5a02: 0x40623e20, 0x5a03: 0x40624020, - 0x5a04: 0x40624220, 0x5a05: 0x40624420, 0x5a06: 0x40624620, 0x5a07: 0x40624820, - 0x5a08: 0x40624a20, 0x5a09: 0x40624c20, 0x5a0a: 0x40624e20, 0x5a0b: 0x40625020, - 0x5a0c: 0x40625220, 0x5a0d: 0x40625420, 0x5a0e: 0x40625620, 0x5a0f: 0x40625820, - 0x5a10: 0x40625a20, 0x5a11: 0x40625c20, 0x5a12: 0x40625e20, 0x5a13: 0x40626020, - 0x5a14: 0x40626220, 0x5a15: 0x40626420, 0x5a16: 0x40626620, 0x5a17: 0x40626820, - 0x5a18: 0x40626a20, 0x5a19: 0x40626c20, 0x5a1a: 0x40626e20, 0x5a1b: 0x40627020, - 0x5a1c: 0x40627220, 0x5a1d: 0x40627420, 0x5a1e: 0x40627620, 0x5a1f: 0x40627820, - 0x5a20: 0x40627a20, 0x5a21: 0x40627c20, 0x5a22: 0x40627e20, 0x5a23: 0x40628020, - 0x5a24: 0x40628220, 0x5a25: 0x40628420, 0x5a26: 0x40628620, 0x5a27: 0x40628820, - 0x5a28: 0x40628a20, 0x5a29: 0x40628c20, 0x5a2a: 0x40628e20, 0x5a2b: 0x40629020, - 0x5a2c: 0x40629220, 0x5a2d: 0x40629420, 0x5a2e: 0x40629620, 0x5a2f: 0x40629820, - 0x5a30: 0x40629a20, 0x5a31: 0x40629c20, 0x5a32: 0x40629e20, 0x5a33: 0x4062a020, - 0x5a34: 0x4062a220, 0x5a35: 0x4062a420, 0x5a36: 0x4062a620, 0x5a37: 0x4062a820, - 0x5a38: 0x4062aa20, - // Block 0x169, offset 0x5a40 - 0x5a40: 0x406fb620, 0x5a41: 0x406fb820, 0x5a42: 0x406fba20, 0x5a43: 0x406fbc20, - 0x5a44: 0x406fbe20, 0x5a45: 0x406fc020, 0x5a46: 0x006fbe84, 0x5a47: 0x406fc220, - 0x5a48: 0x406fc420, 0x5a49: 0x406fc620, 0x5a4a: 0x406fc820, 0x5a4b: 0x406fca20, - 0x5a4c: 0x406fcc20, 0x5a4d: 0x406fce20, 0x5a4e: 0x406fd020, 0x5a4f: 0x406fd220, - 0x5a50: 0x406fd420, 0x5a51: 0x406fd620, 0x5a52: 0x406fd820, 0x5a53: 0x006fd484, - 0x5a54: 0x406fda20, 0x5a55: 0x406fdc20, 0x5a56: 0x406fde20, 0x5a57: 0x406fe020, - 0x5a58: 0x406fe220, 0x5a59: 0x406fe420, 0x5a5a: 0x406fe620, 0x5a5b: 0x406fe820, - 0x5a5c: 0x406fea20, 0x5a5d: 0x406fec20, 0x5a5e: 0x406fee20, 0x5a5f: 0x406ff020, - 0x5a60: 0x406ff220, 0x5a61: 0x406ff420, 0x5a62: 0x406ff620, 0x5a63: 0x406ff820, - 0x5a64: 0x406ffa20, 0x5a65: 0x006ff884, 0x5a66: 0x406ffc20, 0x5a67: 0x406ffe20, - 0x5a68: 0x40700020, 0x5a69: 0x40700220, 0x5a6a: 0x40700420, 0x5a6b: 0x40700620, - 0x5a6c: 0x40700820, 0x5a6d: 0x40700a20, 0x5a6e: 0x40700c20, 0x5a6f: 0x40700e20, - 0x5a70: 0x40701020, 0x5a71: 0x40701220, 0x5a72: 0x40701420, 0x5a73: 0x40701620, - 0x5a74: 0x40701820, 0x5a75: 0x40701a20, 0x5a76: 0x40701c20, 0x5a77: 0x40701e20, - 0x5a78: 0x40702020, 0x5a79: 0x40702220, 0x5a7a: 0x40702420, 0x5a7b: 0x40702620, - 0x5a7c: 0x40702820, 0x5a7d: 0x40702a20, 0x5a7e: 0x40702c20, 0x5a7f: 0x00702a84, - // Block 0x16a, offset 0x5a80 - 0x5a80: 0x40702e20, 0x5a81: 0x40703020, 0x5a82: 0x40703220, 0x5a83: 0x40703420, - 0x5a84: 0x40703620, - 0x5a90: 0x40703820, 0x5a91: 0x40703a20, 0x5a92: 0x40703c20, 0x5a93: 0x40703e20, - 0x5a94: 0x40704020, 0x5a95: 0x40704220, 0x5a96: 0x40704420, 0x5a97: 0x40704620, - 0x5a98: 0x40704820, 0x5a99: 0x40704a20, 0x5a9a: 0x40704c20, 0x5a9b: 0x40704e20, - 0x5a9c: 0x40705020, 0x5a9d: 0x40705220, 0x5a9e: 0x40705420, 0x5a9f: 0x40705620, - 0x5aa0: 0x40705820, 0x5aa1: 0x40705a20, 0x5aa2: 0x40705c20, 0x5aa3: 0x40705e20, - 0x5aa4: 0x40706020, 0x5aa5: 0x40706220, 0x5aa6: 0x40706420, 0x5aa7: 0x40706620, - 0x5aa8: 0x40706820, 0x5aa9: 0x40706a20, 0x5aaa: 0x40706c20, 0x5aab: 0x40706e20, - 0x5aac: 0x40707020, 0x5aad: 0x40707220, 0x5aae: 0x40707420, 0x5aaf: 0x40707620, - 0x5ab0: 0x40707820, 0x5ab1: 0x40707a20, 0x5ab2: 0x40707c20, 0x5ab3: 0x40707e20, - 0x5ab4: 0x40708020, 0x5ab5: 0x40708220, 0x5ab6: 0x40708420, 0x5ab7: 0x40708620, - 0x5ab8: 0x40708820, 0x5ab9: 0x40708a20, 0x5aba: 0x40708c20, 0x5abb: 0x40708e20, - 0x5abc: 0x40709020, 0x5abd: 0x40709220, 0x5abe: 0x40709420, - // Block 0x16b, offset 0x5ac0 - 0x5acf: 0x40709620, - 0x5ad0: 0x40709820, 0x5ad1: 0x40709a20, 0x5ad2: 0x40709c20, 0x5ad3: 0x40709e20, - 0x5ad4: 0x4070a020, 0x5ad5: 0x4070a220, 0x5ad6: 0x4070a420, 0x5ad7: 0x4070a620, - 0x5ad8: 0x4070a820, 0x5ad9: 0x4070aa20, 0x5ada: 0x4070ac20, 0x5adb: 0x4070ae20, - 0x5adc: 0x4070b020, 0x5add: 0x4070b220, 0x5ade: 0x4070b420, 0x5adf: 0x4070b620, - // Block 0x16c, offset 0x5b00 - 0x5b00: 0x00657c91, 0x5b01: 0x0065c28e, - // Block 0x16d, offset 0x5b40 - 0x5b40: 0x401ba420, 0x5b41: 0x401ba620, 0x5b42: 0x401ba820, 0x5b43: 0x401baa20, - 0x5b44: 0x401bac20, 0x5b45: 0x401bae20, 0x5b46: 0x401bb020, 0x5b47: 0x401bb220, - 0x5b48: 0x401bb420, 0x5b49: 0x401bb620, 0x5b4a: 0x401bb820, 0x5b4b: 0x401bba20, - 0x5b4c: 0x401bbc20, 0x5b4d: 0x401bbe20, 0x5b4e: 0x401bc020, 0x5b4f: 0x401bc220, - 0x5b50: 0x401bc420, 0x5b51: 0x401bc620, 0x5b52: 0x401bc820, 0x5b53: 0x401bca20, - 0x5b54: 0x401bcc20, 0x5b55: 0x401bce20, 0x5b56: 0x401bd020, 0x5b57: 0x401bd220, - 0x5b58: 0x401bd420, 0x5b59: 0x401bd620, 0x5b5a: 0x401bd820, 0x5b5b: 0x401bda20, - 0x5b5c: 0x401bdc20, 0x5b5d: 0x401bde20, 0x5b5e: 0x401be020, 0x5b5f: 0x401be220, - 0x5b60: 0x401be420, 0x5b61: 0x401be620, 0x5b62: 0x401be820, 0x5b63: 0x401bea20, - 0x5b64: 0x401bec20, 0x5b65: 0x401bee20, 0x5b66: 0x401bf020, 0x5b67: 0x401bf220, - 0x5b68: 0x401bf420, 0x5b69: 0x401bf620, 0x5b6a: 0x401bf820, 0x5b6b: 0x401bfa20, - 0x5b6c: 0x401bfc20, 0x5b6d: 0x401bfe20, 0x5b6e: 0x401c0020, 0x5b6f: 0x401c0220, - 0x5b70: 0x401c0420, 0x5b71: 0x401c0620, 0x5b72: 0x401c0820, 0x5b73: 0x401c0a20, - 0x5b74: 0x401c0c20, 0x5b75: 0x401c0e20, 0x5b76: 0x401c1020, 0x5b77: 0x401c1220, - 0x5b78: 0x401c1420, 0x5b79: 0x401c1620, 0x5b7a: 0x401c1820, 0x5b7b: 0x401c1a20, - 0x5b7c: 0x401c1c20, 0x5b7d: 0x401c1e20, 0x5b7e: 0x401c2020, 0x5b7f: 0x401c2220, - // Block 0x16e, offset 0x5b80 - 0x5b80: 0x401c2420, 0x5b81: 0x401c2620, 0x5b82: 0x401c2820, 0x5b83: 0x401c2a20, - 0x5b84: 0x401c2c20, 0x5b85: 0x401c2e20, 0x5b86: 0x401c3020, 0x5b87: 0x401c3220, - 0x5b88: 0x401c3420, 0x5b89: 0x401c3620, 0x5b8a: 0x401c3820, 0x5b8b: 0x401c3a20, - 0x5b8c: 0x401c3c20, 0x5b8d: 0x401c3e20, 0x5b8e: 0x401c4020, 0x5b8f: 0x401c4220, - 0x5b90: 0x401c4420, 0x5b91: 0x401c4620, 0x5b92: 0x401c4820, 0x5b93: 0x401c4a20, - 0x5b94: 0x401c4c20, 0x5b95: 0x401c4e20, 0x5b96: 0x401c5020, 0x5b97: 0x401c5220, - 0x5b98: 0x401c5420, 0x5b99: 0x401c5620, 0x5b9a: 0x401c5820, 0x5b9b: 0x401c5a20, - 0x5b9c: 0x401c5c20, 0x5b9d: 0x401c5e20, 0x5b9e: 0x401c6020, 0x5b9f: 0x401c6220, - 0x5ba0: 0x401c6420, 0x5ba1: 0x401c6620, 0x5ba2: 0x401c6820, 0x5ba3: 0x401c6a20, - 0x5ba4: 0x401c6c20, 0x5ba5: 0x401c6e20, 0x5ba6: 0x401c7020, 0x5ba7: 0x401c7220, - 0x5ba8: 0x401c7420, 0x5ba9: 0x401c7620, 0x5baa: 0x401c7820, 0x5bab: 0x401c7a20, - 0x5bac: 0x401c7c20, 0x5bad: 0x401c7e20, 0x5bae: 0x401c8020, 0x5baf: 0x401c8220, - 0x5bb0: 0x401c8420, 0x5bb1: 0x401c8620, 0x5bb2: 0x401c8820, 0x5bb3: 0x401c8a20, - 0x5bb4: 0x401c8c20, 0x5bb5: 0x401c8e20, 0x5bb6: 0x401c9020, 0x5bb7: 0x401c9220, - 0x5bb8: 0x401c9420, 0x5bb9: 0x401c9620, 0x5bba: 0x401c9820, 0x5bbb: 0x401c9a20, - 0x5bbc: 0x401c9c20, 0x5bbd: 0x401c9e20, 0x5bbe: 0x401ca020, 0x5bbf: 0x401ca220, - // Block 0x16f, offset 0x5bc0 - 0x5bc0: 0x401ca420, 0x5bc1: 0x401ca620, 0x5bc2: 0x401ca820, 0x5bc3: 0x401caa20, - 0x5bc4: 0x401cac20, 0x5bc5: 0x401cae20, 0x5bc6: 0x401cb020, 0x5bc7: 0x401cb220, - 0x5bc8: 0x401cb420, 0x5bc9: 0x401cb620, 0x5bca: 0x401cb820, 0x5bcb: 0x401cba20, - 0x5bcc: 0x401cbc20, 0x5bcd: 0x401cbe20, 0x5bce: 0x401cc020, 0x5bcf: 0x401cc220, - 0x5bd0: 0x401cc420, 0x5bd1: 0x401cc620, 0x5bd2: 0x401cc820, 0x5bd3: 0x401cca20, - 0x5bd4: 0x401ccc20, 0x5bd5: 0x401cce20, 0x5bd6: 0x401cd020, 0x5bd7: 0x401cd220, - 0x5bd8: 0x401cd420, 0x5bd9: 0x401cd620, 0x5bda: 0x401cd820, 0x5bdb: 0x401cda20, - 0x5bdc: 0x401cdc20, 0x5bdd: 0x401cde20, 0x5bde: 0x401ce020, 0x5bdf: 0x401ce220, - 0x5be0: 0x401ce420, 0x5be1: 0x401ce620, 0x5be2: 0x401ce820, 0x5be3: 0x401cea20, - 0x5be4: 0x401cec20, 0x5be5: 0x401cee20, 0x5be6: 0x401cf020, 0x5be7: 0x401cf220, - 0x5be8: 0x401cf420, 0x5be9: 0x401cf620, 0x5bea: 0x401cf820, 0x5beb: 0x401cfa20, - 0x5bec: 0x401cfc20, 0x5bed: 0x401cfe20, 0x5bee: 0x401d0020, 0x5bef: 0x401d0220, - 0x5bf0: 0x401d0420, 0x5bf1: 0x401d0620, 0x5bf2: 0x401d0820, 0x5bf3: 0x401d0a20, - 0x5bf4: 0x401d0c20, 0x5bf5: 0x401d0e20, 0x5bf6: 0x401d1020, 0x5bf7: 0x401d1220, - 0x5bf8: 0x401d1420, 0x5bf9: 0x401d1620, 0x5bfa: 0x401d1820, 0x5bfb: 0x401d1a20, - 0x5bfc: 0x401d1c20, 0x5bfd: 0x401d1e20, 0x5bfe: 0x401d2020, 0x5bff: 0x401d2220, - // Block 0x170, offset 0x5c00 - 0x5c00: 0x401d2420, 0x5c01: 0x401d2620, 0x5c02: 0x401d2820, 0x5c03: 0x401d2a20, - 0x5c04: 0x401d2c20, 0x5c05: 0x401d2e20, 0x5c06: 0x401d3020, 0x5c07: 0x401d3220, - 0x5c08: 0x401d3420, 0x5c09: 0x401d3620, 0x5c0a: 0x401d3820, 0x5c0b: 0x401d3a20, - 0x5c0c: 0x401d3c20, 0x5c0d: 0x401d3e20, 0x5c0e: 0x401d4020, 0x5c0f: 0x401d4220, - 0x5c10: 0x401d4420, 0x5c11: 0x401d4620, 0x5c12: 0x401d4820, 0x5c13: 0x401d4a20, - 0x5c14: 0x401d4c20, 0x5c15: 0x401d4e20, 0x5c16: 0x401d5020, 0x5c17: 0x401d5220, - 0x5c18: 0x401d5420, 0x5c19: 0x401d5620, 0x5c1a: 0x401d5820, 0x5c1b: 0x401d5a20, - 0x5c1c: 0x401d5c20, 0x5c1d: 0x401d5e20, 0x5c1e: 0x401d6020, 0x5c1f: 0x401d6220, - 0x5c20: 0x401d6420, 0x5c21: 0x401d6620, 0x5c22: 0x401d6820, 0x5c23: 0x401d6a20, - 0x5c24: 0x401d6c20, 0x5c25: 0x401d6e20, 0x5c26: 0x401d7020, 0x5c27: 0x401d7220, - 0x5c28: 0x401d7420, 0x5c29: 0x401d7620, 0x5c2a: 0x401d7820, 0x5c2b: 0x401d7a20, - 0x5c2c: 0x401d7c20, 0x5c2d: 0x401d7e20, 0x5c2e: 0x401d8020, 0x5c2f: 0x401d8220, - 0x5c30: 0x401d8420, 0x5c31: 0x401d8620, 0x5c32: 0x401d8820, 0x5c33: 0x401d8a20, - 0x5c34: 0x401d8c20, 0x5c35: 0x401d8e20, - // Block 0x171, offset 0x5c40 - 0x5c40: 0x401d9020, 0x5c41: 0x401d9220, 0x5c42: 0x401d9420, 0x5c43: 0x401d9620, - 0x5c44: 0x401d9820, 0x5c45: 0x401d9a20, 0x5c46: 0x401d9c20, 0x5c47: 0x401d9e20, - 0x5c48: 0x401da020, 0x5c49: 0x401da220, 0x5c4a: 0x401da420, 0x5c4b: 0x401da620, - 0x5c4c: 0x401da820, 0x5c4d: 0x401daa20, 0x5c4e: 0x401dac20, 0x5c4f: 0x401dae20, - 0x5c50: 0x401db020, 0x5c51: 0x401db220, 0x5c52: 0x401db420, 0x5c53: 0x401db620, - 0x5c54: 0x401db820, 0x5c55: 0x401dba20, 0x5c56: 0x401dbc20, 0x5c57: 0x401dbe20, - 0x5c58: 0x401dc020, 0x5c59: 0x401dc220, 0x5c5a: 0x401dc420, 0x5c5b: 0x401dc620, - 0x5c5c: 0x401dc820, 0x5c5d: 0x401dca20, 0x5c5e: 0x401dcc20, 0x5c5f: 0x401dce20, - 0x5c60: 0x401dd020, 0x5c61: 0x401dd220, 0x5c62: 0x401dd420, 0x5c63: 0x401dd620, - 0x5c64: 0x401dd820, 0x5c65: 0x401dda20, 0x5c66: 0x401ddc20, - 0x5c69: 0x401e0420, 0x5c6a: 0x401de420, 0x5c6b: 0x401de620, - 0x5c6c: 0x401de820, 0x5c6d: 0x401dea20, 0x5c6e: 0x401dec20, 0x5c6f: 0x401dee20, - 0x5c70: 0x401df020, 0x5c71: 0x401df220, 0x5c72: 0x401df420, 0x5c73: 0x401df620, - 0x5c74: 0x401df820, 0x5c75: 0x401dfa20, 0x5c76: 0x401dfc20, 0x5c77: 0x401dfe20, - 0x5c78: 0x401e0020, 0x5c79: 0x401e0220, 0x5c7a: 0x401e0620, 0x5c7b: 0x401e0820, - 0x5c7c: 0x401e0a20, 0x5c7d: 0x401e0c20, 0x5c7e: 0x401e0e20, 0x5c7f: 0x401e1020, - // Block 0x172, offset 0x5c80 - 0x5c80: 0x401e1220, 0x5c81: 0x401e1420, 0x5c82: 0x401e1620, 0x5c83: 0x401e1820, - 0x5c84: 0x401e1a20, 0x5c85: 0x401e1c20, 0x5c86: 0x401e1e20, 0x5c87: 0x401e2020, - 0x5c88: 0x401e2220, 0x5c89: 0x401e2420, 0x5c8a: 0x401e2620, 0x5c8b: 0x401e2820, - 0x5c8c: 0x401e2a20, 0x5c8d: 0x401e2c20, 0x5c8e: 0x401e2e20, 0x5c8f: 0x401e3020, - 0x5c90: 0x401e3220, 0x5c91: 0x401e3420, 0x5c92: 0x401e3620, 0x5c93: 0x401e3820, - 0x5c94: 0x401e3a20, 0x5c95: 0x401e3c20, 0x5c96: 0x401e3e20, 0x5c97: 0x401e4020, - 0x5c98: 0x401e4220, 0x5c99: 0x401e4420, 0x5c9a: 0x401e4620, 0x5c9b: 0x401e4820, - 0x5c9c: 0x401e4a20, 0x5c9d: 0x401e4c20, 0x5c9e: 0x401e4020, 0x5c9f: 0x401e4220, - 0x5ca0: 0x401e4220, 0x5ca1: 0x401e4220, 0x5ca2: 0x401e4220, 0x5ca3: 0x401e4220, - 0x5ca4: 0x401e4220, 0x5ca5: 0xad800000, 0x5ca6: 0xad800000, 0x5ca7: 0xa0100000, - 0x5ca8: 0xa0100000, 0x5ca9: 0xa0100000, 0x5caa: 0x401e4e20, 0x5cab: 0x401e5020, - 0x5cac: 0x401e5220, 0x5cad: 0xae200000, 0x5cae: 0xad800000, 0x5caf: 0xad800000, - 0x5cb0: 0xad800000, 0x5cb1: 0xad800000, 0x5cb2: 0xad800000, 0x5cb3: 0xa0000000, - 0x5cb4: 0xa0000000, 0x5cb5: 0xa0000000, 0x5cb6: 0xa0000000, 0x5cb7: 0xa0000000, - 0x5cb8: 0xa0000000, 0x5cb9: 0xa0000000, 0x5cba: 0xa0000000, 0x5cbb: 0xadc00000, - 0x5cbc: 0xadc00000, 0x5cbd: 0xadc00000, 0x5cbe: 0xadc00000, 0x5cbf: 0xadc00000, - // Block 0x173, offset 0x5cc0 - 0x5cc0: 0xadc00000, 0x5cc1: 0xadc00000, 0x5cc2: 0xadc00000, 0x5cc3: 0x401e5420, - 0x5cc4: 0x401e5620, 0x5cc5: 0xae600000, 0x5cc6: 0xae600000, 0x5cc7: 0xae600000, - 0x5cc8: 0xae600000, 0x5cc9: 0xae600000, 0x5cca: 0xadc00000, 0x5ccb: 0xadc00000, - 0x5ccc: 0x401e5820, 0x5ccd: 0x401e5a20, 0x5cce: 0x401e5c20, 0x5ccf: 0x401e5e20, - 0x5cd0: 0x401e6020, 0x5cd1: 0x401e6220, 0x5cd2: 0x401e6420, 0x5cd3: 0x401e6620, - 0x5cd4: 0x401e6820, 0x5cd5: 0x401e6a20, 0x5cd6: 0x401e6c20, 0x5cd7: 0x401e6e20, - 0x5cd8: 0x401e7020, 0x5cd9: 0x401e7220, 0x5cda: 0x401e7420, 0x5cdb: 0x401e7620, - 0x5cdc: 0x401e7820, 0x5cdd: 0x401e7a20, 0x5cde: 0x401e7c20, 0x5cdf: 0x401e7e20, - 0x5ce0: 0x401e8020, 0x5ce1: 0x401e8220, 0x5ce2: 0x401e8420, 0x5ce3: 0x401e8620, - 0x5ce4: 0x401e8820, 0x5ce5: 0x401e8a20, 0x5ce6: 0x401e8c20, 0x5ce7: 0x401e8e20, - 0x5ce8: 0x401e9020, 0x5ce9: 0x401e9220, 0x5cea: 0xae600000, 0x5ceb: 0xae600000, - 0x5cec: 0xae600000, 0x5ced: 0xae600000, 0x5cee: 0x401e9420, 0x5cef: 0x401e9620, - 0x5cf0: 0x401e9820, 0x5cf1: 0x401e9a20, 0x5cf2: 0x401e9c20, 0x5cf3: 0x401e9e20, - 0x5cf4: 0x401ea020, 0x5cf5: 0x401ea220, 0x5cf6: 0x401ea420, 0x5cf7: 0x401ea620, - 0x5cf8: 0x401ea820, 0x5cf9: 0x401eaa20, 0x5cfa: 0x401eac20, 0x5cfb: 0x401eaa20, - 0x5cfc: 0x401eac20, 0x5cfd: 0x401eaa20, 0x5cfe: 0x401eac20, 0x5cff: 0x401eaa20, - // Block 0x174, offset 0x5d00 - 0x5d00: 0x401eac20, 0x5d01: 0x401eae20, 0x5d02: 0x401eb020, 0x5d03: 0x401eb220, - 0x5d04: 0x401eb420, 0x5d05: 0x401eb620, 0x5d06: 0x401eb820, 0x5d07: 0x401eba20, - 0x5d08: 0x401ebc20, 0x5d09: 0x401ebe20, 0x5d0a: 0x401ec020, 0x5d0b: 0x401ec220, - 0x5d0c: 0x401ec420, 0x5d0d: 0x401ec620, 0x5d0e: 0x401ec820, 0x5d0f: 0x401eca20, - 0x5d10: 0x401ecc20, 0x5d11: 0x401ece20, 0x5d12: 0x401ed020, 0x5d13: 0x401ed220, - 0x5d14: 0x401ed420, 0x5d15: 0x401ed620, 0x5d16: 0x401ed820, 0x5d17: 0x401eda20, - 0x5d18: 0x401edc20, 0x5d19: 0x401ede20, 0x5d1a: 0x401ee020, 0x5d1b: 0x401ee220, - 0x5d1c: 0x401ee420, 0x5d1d: 0x401ee620, - // Block 0x175, offset 0x5d40 - 0x5d40: 0x401ee820, 0x5d41: 0x401eea20, 0x5d42: 0x401eec20, 0x5d43: 0x401eee20, - 0x5d44: 0x401ef020, 0x5d45: 0x401ef220, 0x5d46: 0x401ef420, 0x5d47: 0x401ef620, - 0x5d48: 0x401ef820, 0x5d49: 0x401efa20, 0x5d4a: 0x401efc20, 0x5d4b: 0x401efe20, - 0x5d4c: 0x401f0020, 0x5d4d: 0x401f0220, 0x5d4e: 0x401f0420, 0x5d4f: 0x401f0620, - 0x5d50: 0x401f0820, 0x5d51: 0x401f0a20, 0x5d52: 0x401f0c20, 0x5d53: 0x401f0e20, - 0x5d54: 0x401f1020, 0x5d55: 0x401f1220, 0x5d56: 0x401f1420, 0x5d57: 0x401f1620, - 0x5d58: 0x401f1820, 0x5d59: 0x401f1a20, 0x5d5a: 0x401f1c20, 0x5d5b: 0x401f1e20, - 0x5d5c: 0x401f2020, 0x5d5d: 0x401f2220, 0x5d5e: 0x401f2420, 0x5d5f: 0x401f2620, - 0x5d60: 0x401f2820, 0x5d61: 0x401f2a20, 0x5d62: 0x401f2c20, 0x5d63: 0x401f2e20, - 0x5d64: 0x401f3020, 0x5d65: 0x401f3220, 0x5d66: 0x401f3420, 0x5d67: 0x401f3620, - 0x5d68: 0x401f3820, 0x5d69: 0x401f3a20, 0x5d6a: 0x401f3c20, 0x5d6b: 0x401f3e20, - 0x5d6c: 0x401f4020, 0x5d6d: 0x401f4220, 0x5d6e: 0x401f4420, 0x5d6f: 0x401f4620, - 0x5d70: 0x401f4820, 0x5d71: 0x401f4a20, 0x5d72: 0x401f4c20, 0x5d73: 0x401f4e20, - 0x5d74: 0x401f5020, 0x5d75: 0x401f5220, 0x5d76: 0x401f5420, 0x5d77: 0x401f5620, - 0x5d78: 0x401f5820, 0x5d79: 0x401f5a20, 0x5d7a: 0x401f5c20, 0x5d7b: 0x401f5e20, - 0x5d7c: 0x401f6020, 0x5d7d: 0x401f6220, 0x5d7e: 0x401f6420, 0x5d7f: 0x401f6620, - // Block 0x176, offset 0x5d80 - 0x5d80: 0x401f6820, 0x5d81: 0x401f6a20, 0x5d82: 0xae600000, 0x5d83: 0xae600000, - 0x5d84: 0xae600000, 0x5d85: 0x401f6c20, - // Block 0x177, offset 0x5dc0 - 0x5dc0: 0x4019e220, 0x5dc1: 0x4019e420, 0x5dc2: 0x4019e620, 0x5dc3: 0x4019e820, - 0x5dc4: 0x4019ea20, 0x5dc5: 0x4019ec20, 0x5dc6: 0x4019ee20, 0x5dc7: 0x4019f020, - 0x5dc8: 0x4019f220, 0x5dc9: 0x4019f420, 0x5dca: 0x4019f620, 0x5dcb: 0x4019f820, - 0x5dcc: 0x4019fa20, 0x5dcd: 0x4019fc20, 0x5dce: 0x4019fe20, 0x5dcf: 0x401a0020, - 0x5dd0: 0x401a0220, 0x5dd1: 0x401a0420, 0x5dd2: 0x401a0620, 0x5dd3: 0x401a0820, - 0x5dd4: 0x401a0a20, 0x5dd5: 0x401a0c20, 0x5dd6: 0x401a0e20, 0x5dd7: 0x401a1020, - 0x5dd8: 0x401a1220, 0x5dd9: 0x401a1420, 0x5dda: 0x401a1620, 0x5ddb: 0x401a1820, - 0x5ddc: 0x401a1a20, 0x5ddd: 0x401a1c20, 0x5dde: 0x401a1e20, 0x5ddf: 0x401a2020, - 0x5de0: 0x401a2220, 0x5de1: 0x401a2420, 0x5de2: 0x401a2620, 0x5de3: 0x401a2820, - 0x5de4: 0x401a2a20, 0x5de5: 0x401a2c20, 0x5de6: 0x401a2e20, 0x5de7: 0x401a3020, - 0x5de8: 0x401a3220, 0x5de9: 0x401a3420, 0x5dea: 0x401a3620, 0x5deb: 0x401a3820, - 0x5dec: 0x401a3a20, 0x5ded: 0x401a3c20, 0x5dee: 0x401a3e20, 0x5def: 0x401a4020, - 0x5df0: 0x401a4220, 0x5df1: 0x401a4420, 0x5df2: 0x401a4620, 0x5df3: 0x401a4820, - 0x5df4: 0x401a4a20, 0x5df5: 0x401a4c20, 0x5df6: 0x401a4e20, 0x5df7: 0x401a5020, - 0x5df8: 0x401a5220, 0x5df9: 0x401a5420, 0x5dfa: 0x401a5620, 0x5dfb: 0x401a5820, - 0x5dfc: 0x401a5a20, 0x5dfd: 0x401a5c20, 0x5dfe: 0x401a5e20, 0x5dff: 0x401a6020, - // Block 0x178, offset 0x5e00 - 0x5e00: 0x401a6220, 0x5e01: 0x401a6420, 0x5e02: 0x401a6620, 0x5e03: 0x401a6820, - 0x5e04: 0x401a6a20, 0x5e05: 0x401a6c20, 0x5e06: 0x401a6e20, 0x5e07: 0x401a7020, - 0x5e08: 0x401a7220, 0x5e09: 0x401a7420, 0x5e0a: 0x401a7620, 0x5e0b: 0x401a7820, - 0x5e0c: 0x401a7a20, 0x5e0d: 0x401a7c20, 0x5e0e: 0x401a7e20, 0x5e0f: 0x401a8020, - 0x5e10: 0x401a8220, 0x5e11: 0x401a8420, 0x5e12: 0x401a8620, 0x5e13: 0x401a8820, - 0x5e14: 0x401a8a20, 0x5e15: 0x401a8c20, 0x5e16: 0x401a8e20, - 0x5e20: 0xe00002af, 0x5e21: 0xe00003ca, 0x5e22: 0xe00004a4, 0x5e23: 0xe0000576, - 0x5e24: 0xe000063d, 0x5e25: 0xe00006ed, 0x5e26: 0xe0000795, 0x5e27: 0xe000083e, - 0x5e28: 0xe00008e9, 0x5e29: 0x4029ba20, 0x5e2a: 0x4029bc20, 0x5e2b: 0x4029be20, - 0x5e2c: 0x4029c020, 0x5e2d: 0x4029c220, 0x5e2e: 0x4029c420, 0x5e2f: 0x4029c620, - 0x5e30: 0x4029c820, 0x5e31: 0x4029ca20, - // Block 0x179, offset 0x5e40 - 0x5e40: 0x002bde8b, 0x5e41: 0x002c0a8b, 0x5e42: 0x002c3a8b, 0x5e43: 0x002c628b, - 0x5e44: 0x002c988b, 0x5e45: 0x002d088b, 0x5e46: 0x002d228b, 0x5e47: 0x002d688b, - 0x5e48: 0x002d9a8b, 0x5e49: 0x002dcc8b, 0x5e4a: 0x002dfe8b, 0x5e4b: 0x002e228b, - 0x5e4c: 0x002e828b, 0x5e4d: 0x002e9e8b, 0x5e4e: 0x002ee28b, 0x5e4f: 0x002f2c8b, - 0x5e50: 0x002f568b, 0x5e51: 0x002f7a8b, 0x5e52: 0x002fe68b, 0x5e53: 0x00302c8b, - 0x5e54: 0x00306c8b, 0x5e55: 0x0030be8b, 0x5e56: 0x0030e28b, 0x5e57: 0x0030f68b, - 0x5e58: 0x0031008b, 0x5e59: 0x00312a8b, 0x5e5a: 0x002bde85, 0x5e5b: 0x002c0a85, - 0x5e5c: 0x002c3a85, 0x5e5d: 0x002c6285, 0x5e5e: 0x002c9885, 0x5e5f: 0x002d0885, - 0x5e60: 0x002d2285, 0x5e61: 0x002d6885, 0x5e62: 0x002d9a85, 0x5e63: 0x002dcc85, - 0x5e64: 0x002dfe85, 0x5e65: 0x002e2285, 0x5e66: 0x002e8285, 0x5e67: 0x002e9e85, - 0x5e68: 0x002ee285, 0x5e69: 0x002f2c85, 0x5e6a: 0x002f5685, 0x5e6b: 0x002f7a85, - 0x5e6c: 0x002fe685, 0x5e6d: 0x00302c85, 0x5e6e: 0x00306c85, 0x5e6f: 0x0030be85, - 0x5e70: 0x0030e285, 0x5e71: 0x0030f685, 0x5e72: 0x00310085, 0x5e73: 0x00312a85, - 0x5e74: 0x002bde8b, 0x5e75: 0x002c0a8b, 0x5e76: 0x002c3a8b, 0x5e77: 0x002c628b, - 0x5e78: 0x002c988b, 0x5e79: 0x002d088b, 0x5e7a: 0x002d228b, 0x5e7b: 0x002d688b, - 0x5e7c: 0x002d9a8b, 0x5e7d: 0x002dcc8b, 0x5e7e: 0x002dfe8b, 0x5e7f: 0x002e228b, - // Block 0x17a, offset 0x5e80 - 0x5e80: 0x002e828b, 0x5e81: 0x002e9e8b, 0x5e82: 0x002ee28b, 0x5e83: 0x002f2c8b, - 0x5e84: 0x002f568b, 0x5e85: 0x002f7a8b, 0x5e86: 0x002fe68b, 0x5e87: 0x00302c8b, - 0x5e88: 0x00306c8b, 0x5e89: 0x0030be8b, 0x5e8a: 0x0030e28b, 0x5e8b: 0x0030f68b, - 0x5e8c: 0x0031008b, 0x5e8d: 0x00312a8b, 0x5e8e: 0x002bde85, 0x5e8f: 0x002c0a85, - 0x5e90: 0x002c3a85, 0x5e91: 0x002c6285, 0x5e92: 0x002c9885, 0x5e93: 0x002d0885, - 0x5e94: 0x002d2285, 0x5e96: 0x002d9a85, 0x5e97: 0x002dcc85, - 0x5e98: 0x002dfe85, 0x5e99: 0x002e2285, 0x5e9a: 0x002e8285, 0x5e9b: 0x002e9e85, - 0x5e9c: 0x002ee285, 0x5e9d: 0x002f2c85, 0x5e9e: 0x002f5685, 0x5e9f: 0x002f7a85, - 0x5ea0: 0x002fe685, 0x5ea1: 0x00302c85, 0x5ea2: 0x00306c85, 0x5ea3: 0x0030be85, - 0x5ea4: 0x0030e285, 0x5ea5: 0x0030f685, 0x5ea6: 0x00310085, 0x5ea7: 0x00312a85, - 0x5ea8: 0x002bde8b, 0x5ea9: 0x002c0a8b, 0x5eaa: 0x002c3a8b, 0x5eab: 0x002c628b, - 0x5eac: 0x002c988b, 0x5ead: 0x002d088b, 0x5eae: 0x002d228b, 0x5eaf: 0x002d688b, - 0x5eb0: 0x002d9a8b, 0x5eb1: 0x002dcc8b, 0x5eb2: 0x002dfe8b, 0x5eb3: 0x002e228b, - 0x5eb4: 0x002e828b, 0x5eb5: 0x002e9e8b, 0x5eb6: 0x002ee28b, 0x5eb7: 0x002f2c8b, - 0x5eb8: 0x002f568b, 0x5eb9: 0x002f7a8b, 0x5eba: 0x002fe68b, 0x5ebb: 0x00302c8b, - 0x5ebc: 0x00306c8b, 0x5ebd: 0x0030be8b, 0x5ebe: 0x0030e28b, 0x5ebf: 0x0030f68b, - // Block 0x17b, offset 0x5ec0 - 0x5ec0: 0x0031008b, 0x5ec1: 0x00312a8b, 0x5ec2: 0x002bde85, 0x5ec3: 0x002c0a85, - 0x5ec4: 0x002c3a85, 0x5ec5: 0x002c6285, 0x5ec6: 0x002c9885, 0x5ec7: 0x002d0885, - 0x5ec8: 0x002d2285, 0x5ec9: 0x002d6885, 0x5eca: 0x002d9a85, 0x5ecb: 0x002dcc85, - 0x5ecc: 0x002dfe85, 0x5ecd: 0x002e2285, 0x5ece: 0x002e8285, 0x5ecf: 0x002e9e85, - 0x5ed0: 0x002ee285, 0x5ed1: 0x002f2c85, 0x5ed2: 0x002f5685, 0x5ed3: 0x002f7a85, - 0x5ed4: 0x002fe685, 0x5ed5: 0x00302c85, 0x5ed6: 0x00306c85, 0x5ed7: 0x0030be85, - 0x5ed8: 0x0030e285, 0x5ed9: 0x0030f685, 0x5eda: 0x00310085, 0x5edb: 0x00312a85, - 0x5edc: 0x002bde8b, 0x5ede: 0x002c3a8b, 0x5edf: 0x002c628b, - 0x5ee2: 0x002d228b, - 0x5ee5: 0x002dcc8b, 0x5ee6: 0x002dfe8b, - 0x5ee9: 0x002e9e8b, 0x5eea: 0x002ee28b, 0x5eeb: 0x002f2c8b, - 0x5eec: 0x002f568b, 0x5eee: 0x002fe68b, 0x5eef: 0x00302c8b, - 0x5ef0: 0x00306c8b, 0x5ef1: 0x0030be8b, 0x5ef2: 0x0030e28b, 0x5ef3: 0x0030f68b, - 0x5ef4: 0x0031008b, 0x5ef5: 0x00312a8b, 0x5ef6: 0x002bde85, 0x5ef7: 0x002c0a85, - 0x5ef8: 0x002c3a85, 0x5ef9: 0x002c6285, 0x5efb: 0x002d0885, - 0x5efd: 0x002d6885, 0x5efe: 0x002d9a85, 0x5eff: 0x002dcc85, - // Block 0x17c, offset 0x5f00 - 0x5f00: 0x002dfe85, 0x5f01: 0x002e2285, 0x5f02: 0x002e8285, 0x5f03: 0x002e9e85, - 0x5f05: 0x002f2c85, 0x5f06: 0x002f5685, 0x5f07: 0x002f7a85, - 0x5f08: 0x002fe685, 0x5f09: 0x00302c85, 0x5f0a: 0x00306c85, 0x5f0b: 0x0030be85, - 0x5f0c: 0x0030e285, 0x5f0d: 0x0030f685, 0x5f0e: 0x00310085, 0x5f0f: 0x00312a85, - 0x5f10: 0x002bde8b, 0x5f11: 0x002c0a8b, 0x5f12: 0x002c3a8b, 0x5f13: 0x002c628b, - 0x5f14: 0x002c988b, 0x5f15: 0x002d088b, 0x5f16: 0x002d228b, 0x5f17: 0x002d688b, - 0x5f18: 0x002d9a8b, 0x5f19: 0x002dcc8b, 0x5f1a: 0x002dfe8b, 0x5f1b: 0x002e228b, - 0x5f1c: 0x002e828b, 0x5f1d: 0x002e9e8b, 0x5f1e: 0x002ee28b, 0x5f1f: 0x002f2c8b, - 0x5f20: 0x002f568b, 0x5f21: 0x002f7a8b, 0x5f22: 0x002fe68b, 0x5f23: 0x00302c8b, - 0x5f24: 0x00306c8b, 0x5f25: 0x0030be8b, 0x5f26: 0x0030e28b, 0x5f27: 0x0030f68b, - 0x5f28: 0x0031008b, 0x5f29: 0x00312a8b, 0x5f2a: 0x002bde85, 0x5f2b: 0x002c0a85, - 0x5f2c: 0x002c3a85, 0x5f2d: 0x002c6285, 0x5f2e: 0x002c9885, 0x5f2f: 0x002d0885, - 0x5f30: 0x002d2285, 0x5f31: 0x002d6885, 0x5f32: 0x002d9a85, 0x5f33: 0x002dcc85, - 0x5f34: 0x002dfe85, 0x5f35: 0x002e2285, 0x5f36: 0x002e8285, 0x5f37: 0x002e9e85, - 0x5f38: 0x002ee285, 0x5f39: 0x002f2c85, 0x5f3a: 0x002f5685, 0x5f3b: 0x002f7a85, - 0x5f3c: 0x002fe685, 0x5f3d: 0x00302c85, 0x5f3e: 0x00306c85, 0x5f3f: 0x0030be85, - // Block 0x17d, offset 0x5f40 - 0x5f40: 0x0030e285, 0x5f41: 0x0030f685, 0x5f42: 0x00310085, 0x5f43: 0x00312a85, - 0x5f44: 0x002bde8b, 0x5f45: 0x002c0a8b, 0x5f47: 0x002c628b, - 0x5f48: 0x002c988b, 0x5f49: 0x002d088b, 0x5f4a: 0x002d228b, - 0x5f4d: 0x002dcc8b, 0x5f4e: 0x002dfe8b, 0x5f4f: 0x002e228b, - 0x5f50: 0x002e828b, 0x5f51: 0x002e9e8b, 0x5f52: 0x002ee28b, 0x5f53: 0x002f2c8b, - 0x5f54: 0x002f568b, 0x5f56: 0x002fe68b, 0x5f57: 0x00302c8b, - 0x5f58: 0x00306c8b, 0x5f59: 0x0030be8b, 0x5f5a: 0x0030e28b, 0x5f5b: 0x0030f68b, - 0x5f5c: 0x0031008b, 0x5f5e: 0x002bde85, 0x5f5f: 0x002c0a85, - 0x5f60: 0x002c3a85, 0x5f61: 0x002c6285, 0x5f62: 0x002c9885, 0x5f63: 0x002d0885, - 0x5f64: 0x002d2285, 0x5f65: 0x002d6885, 0x5f66: 0x002d9a85, 0x5f67: 0x002dcc85, - 0x5f68: 0x002dfe85, 0x5f69: 0x002e2285, 0x5f6a: 0x002e8285, 0x5f6b: 0x002e9e85, - 0x5f6c: 0x002ee285, 0x5f6d: 0x002f2c85, 0x5f6e: 0x002f5685, 0x5f6f: 0x002f7a85, - 0x5f70: 0x002fe685, 0x5f71: 0x00302c85, 0x5f72: 0x00306c85, 0x5f73: 0x0030be85, - 0x5f74: 0x0030e285, 0x5f75: 0x0030f685, 0x5f76: 0x00310085, 0x5f77: 0x00312a85, - 0x5f78: 0x002bde8b, 0x5f79: 0x002c0a8b, 0x5f7b: 0x002c628b, - 0x5f7c: 0x002c988b, 0x5f7d: 0x002d088b, 0x5f7e: 0x002d228b, - // Block 0x17e, offset 0x5f80 - 0x5f80: 0x002d9a8b, 0x5f81: 0x002dcc8b, 0x5f82: 0x002dfe8b, 0x5f83: 0x002e228b, - 0x5f84: 0x002e828b, 0x5f86: 0x002ee28b, - 0x5f8a: 0x002fe68b, 0x5f8b: 0x00302c8b, - 0x5f8c: 0x00306c8b, 0x5f8d: 0x0030be8b, 0x5f8e: 0x0030e28b, 0x5f8f: 0x0030f68b, - 0x5f90: 0x0031008b, 0x5f92: 0x002bde85, 0x5f93: 0x002c0a85, - 0x5f94: 0x002c3a85, 0x5f95: 0x002c6285, 0x5f96: 0x002c9885, 0x5f97: 0x002d0885, - 0x5f98: 0x002d2285, 0x5f99: 0x002d6885, 0x5f9a: 0x002d9a85, 0x5f9b: 0x002dcc85, - 0x5f9c: 0x002dfe85, 0x5f9d: 0x002e2285, 0x5f9e: 0x002e8285, 0x5f9f: 0x002e9e85, - 0x5fa0: 0x002ee285, 0x5fa1: 0x002f2c85, 0x5fa2: 0x002f5685, 0x5fa3: 0x002f7a85, - 0x5fa4: 0x002fe685, 0x5fa5: 0x00302c85, 0x5fa6: 0x00306c85, 0x5fa7: 0x0030be85, - 0x5fa8: 0x0030e285, 0x5fa9: 0x0030f685, 0x5faa: 0x00310085, 0x5fab: 0x00312a85, - 0x5fac: 0x002bde8b, 0x5fad: 0x002c0a8b, 0x5fae: 0x002c3a8b, 0x5faf: 0x002c628b, - 0x5fb0: 0x002c988b, 0x5fb1: 0x002d088b, 0x5fb2: 0x002d228b, 0x5fb3: 0x002d688b, - 0x5fb4: 0x002d9a8b, 0x5fb5: 0x002dcc8b, 0x5fb6: 0x002dfe8b, 0x5fb7: 0x002e228b, - 0x5fb8: 0x002e828b, 0x5fb9: 0x002e9e8b, 0x5fba: 0x002ee28b, 0x5fbb: 0x002f2c8b, - 0x5fbc: 0x002f568b, 0x5fbd: 0x002f7a8b, 0x5fbe: 0x002fe68b, 0x5fbf: 0x00302c8b, - // Block 0x17f, offset 0x5fc0 - 0x5fc0: 0x00306c8b, 0x5fc1: 0x0030be8b, 0x5fc2: 0x0030e28b, 0x5fc3: 0x0030f68b, - 0x5fc4: 0x0031008b, 0x5fc5: 0x00312a8b, 0x5fc6: 0x002bde85, 0x5fc7: 0x002c0a85, - 0x5fc8: 0x002c3a85, 0x5fc9: 0x002c6285, 0x5fca: 0x002c9885, 0x5fcb: 0x002d0885, - 0x5fcc: 0x002d2285, 0x5fcd: 0x002d6885, 0x5fce: 0x002d9a85, 0x5fcf: 0x002dcc85, - 0x5fd0: 0x002dfe85, 0x5fd1: 0x002e2285, 0x5fd2: 0x002e8285, 0x5fd3: 0x002e9e85, - 0x5fd4: 0x002ee285, 0x5fd5: 0x002f2c85, 0x5fd6: 0x002f5685, 0x5fd7: 0x002f7a85, - 0x5fd8: 0x002fe685, 0x5fd9: 0x00302c85, 0x5fda: 0x00306c85, 0x5fdb: 0x0030be85, - 0x5fdc: 0x0030e285, 0x5fdd: 0x0030f685, 0x5fde: 0x00310085, 0x5fdf: 0x00312a85, - 0x5fe0: 0x002bde8b, 0x5fe1: 0x002c0a8b, 0x5fe2: 0x002c3a8b, 0x5fe3: 0x002c628b, - 0x5fe4: 0x002c988b, 0x5fe5: 0x002d088b, 0x5fe6: 0x002d228b, 0x5fe7: 0x002d688b, - 0x5fe8: 0x002d9a8b, 0x5fe9: 0x002dcc8b, 0x5fea: 0x002dfe8b, 0x5feb: 0x002e228b, - 0x5fec: 0x002e828b, 0x5fed: 0x002e9e8b, 0x5fee: 0x002ee28b, 0x5fef: 0x002f2c8b, - 0x5ff0: 0x002f568b, 0x5ff1: 0x002f7a8b, 0x5ff2: 0x002fe68b, 0x5ff3: 0x00302c8b, - 0x5ff4: 0x00306c8b, 0x5ff5: 0x0030be8b, 0x5ff6: 0x0030e28b, 0x5ff7: 0x0030f68b, - 0x5ff8: 0x0031008b, 0x5ff9: 0x00312a8b, 0x5ffa: 0x002bde85, 0x5ffb: 0x002c0a85, - 0x5ffc: 0x002c3a85, 0x5ffd: 0x002c6285, 0x5ffe: 0x002c9885, 0x5fff: 0x002d0885, - // Block 0x180, offset 0x6000 - 0x6000: 0x002d2285, 0x6001: 0x002d6885, 0x6002: 0x002d9a85, 0x6003: 0x002dcc85, - 0x6004: 0x002dfe85, 0x6005: 0x002e2285, 0x6006: 0x002e8285, 0x6007: 0x002e9e85, - 0x6008: 0x002ee285, 0x6009: 0x002f2c85, 0x600a: 0x002f5685, 0x600b: 0x002f7a85, - 0x600c: 0x002fe685, 0x600d: 0x00302c85, 0x600e: 0x00306c85, 0x600f: 0x0030be85, - 0x6010: 0x0030e285, 0x6011: 0x0030f685, 0x6012: 0x00310085, 0x6013: 0x00312a85, - 0x6014: 0x002bde8b, 0x6015: 0x002c0a8b, 0x6016: 0x002c3a8b, 0x6017: 0x002c628b, - 0x6018: 0x002c988b, 0x6019: 0x002d088b, 0x601a: 0x002d228b, 0x601b: 0x002d688b, - 0x601c: 0x002d9a8b, 0x601d: 0x002dcc8b, 0x601e: 0x002dfe8b, 0x601f: 0x002e228b, - 0x6020: 0x002e828b, 0x6021: 0x002e9e8b, 0x6022: 0x002ee28b, 0x6023: 0x002f2c8b, - 0x6024: 0x002f568b, 0x6025: 0x002f7a8b, 0x6026: 0x002fe68b, 0x6027: 0x00302c8b, - 0x6028: 0x00306c8b, 0x6029: 0x0030be8b, 0x602a: 0x0030e28b, 0x602b: 0x0030f68b, - 0x602c: 0x0031008b, 0x602d: 0x00312a8b, 0x602e: 0x002bde85, 0x602f: 0x002c0a85, - 0x6030: 0x002c3a85, 0x6031: 0x002c6285, 0x6032: 0x002c9885, 0x6033: 0x002d0885, - 0x6034: 0x002d2285, 0x6035: 0x002d6885, 0x6036: 0x002d9a85, 0x6037: 0x002dcc85, - 0x6038: 0x002dfe85, 0x6039: 0x002e2285, 0x603a: 0x002e8285, 0x603b: 0x002e9e85, - 0x603c: 0x002ee285, 0x603d: 0x002f2c85, 0x603e: 0x002f5685, 0x603f: 0x002f7a85, - // Block 0x181, offset 0x6040 - 0x6040: 0x002fe685, 0x6041: 0x00302c85, 0x6042: 0x00306c85, 0x6043: 0x0030be85, - 0x6044: 0x0030e285, 0x6045: 0x0030f685, 0x6046: 0x00310085, 0x6047: 0x00312a85, - 0x6048: 0x002bde8b, 0x6049: 0x002c0a8b, 0x604a: 0x002c3a8b, 0x604b: 0x002c628b, - 0x604c: 0x002c988b, 0x604d: 0x002d088b, 0x604e: 0x002d228b, 0x604f: 0x002d688b, - 0x6050: 0x002d9a8b, 0x6051: 0x002dcc8b, 0x6052: 0x002dfe8b, 0x6053: 0x002e228b, - 0x6054: 0x002e828b, 0x6055: 0x002e9e8b, 0x6056: 0x002ee28b, 0x6057: 0x002f2c8b, - 0x6058: 0x002f568b, 0x6059: 0x002f7a8b, 0x605a: 0x002fe68b, 0x605b: 0x00302c8b, - 0x605c: 0x00306c8b, 0x605d: 0x0030be8b, 0x605e: 0x0030e28b, 0x605f: 0x0030f68b, - 0x6060: 0x0031008b, 0x6061: 0x00312a8b, 0x6062: 0x002bde85, 0x6063: 0x002c0a85, - 0x6064: 0x002c3a85, 0x6065: 0x002c6285, 0x6066: 0x002c9885, 0x6067: 0x002d0885, - 0x6068: 0x002d2285, 0x6069: 0x002d6885, 0x606a: 0x002d9a85, 0x606b: 0x002dcc85, - 0x606c: 0x002dfe85, 0x606d: 0x002e2285, 0x606e: 0x002e8285, 0x606f: 0x002e9e85, - 0x6070: 0x002ee285, 0x6071: 0x002f2c85, 0x6072: 0x002f5685, 0x6073: 0x002f7a85, - 0x6074: 0x002fe685, 0x6075: 0x00302c85, 0x6076: 0x00306c85, 0x6077: 0x0030be85, - 0x6078: 0x0030e285, 0x6079: 0x0030f685, 0x607a: 0x00310085, 0x607b: 0x00312a85, - 0x607c: 0x002bde8b, 0x607d: 0x002c0a8b, 0x607e: 0x002c3a8b, 0x607f: 0x002c628b, - // Block 0x182, offset 0x6080 - 0x6080: 0x002c988b, 0x6081: 0x002d088b, 0x6082: 0x002d228b, 0x6083: 0x002d688b, - 0x6084: 0x002d9a8b, 0x6085: 0x002dcc8b, 0x6086: 0x002dfe8b, 0x6087: 0x002e228b, - 0x6088: 0x002e828b, 0x6089: 0x002e9e8b, 0x608a: 0x002ee28b, 0x608b: 0x002f2c8b, - 0x608c: 0x002f568b, 0x608d: 0x002f7a8b, 0x608e: 0x002fe68b, 0x608f: 0x00302c8b, - 0x6090: 0x00306c8b, 0x6091: 0x0030be8b, 0x6092: 0x0030e28b, 0x6093: 0x0030f68b, - 0x6094: 0x0031008b, 0x6095: 0x00312a8b, 0x6096: 0x002bde85, 0x6097: 0x002c0a85, - 0x6098: 0x002c3a85, 0x6099: 0x002c6285, 0x609a: 0x002c9885, 0x609b: 0x002d0885, - 0x609c: 0x002d2285, 0x609d: 0x002d6885, 0x609e: 0x002d9a85, 0x609f: 0x002dcc85, - 0x60a0: 0x002dfe85, 0x60a1: 0x002e2285, 0x60a2: 0x002e8285, 0x60a3: 0x002e9e85, - 0x60a4: 0x002ee285, 0x60a5: 0x002f2c85, 0x60a6: 0x002f5685, 0x60a7: 0x002f7a85, - 0x60a8: 0x002fe685, 0x60a9: 0x00302c85, 0x60aa: 0x00306c85, 0x60ab: 0x0030be85, - 0x60ac: 0x0030e285, 0x60ad: 0x0030f685, 0x60ae: 0x00310085, 0x60af: 0x00312a85, - 0x60b0: 0x002bde8b, 0x60b1: 0x002c0a8b, 0x60b2: 0x002c3a8b, 0x60b3: 0x002c628b, - 0x60b4: 0x002c988b, 0x60b5: 0x002d088b, 0x60b6: 0x002d228b, 0x60b7: 0x002d688b, - 0x60b8: 0x002d9a8b, 0x60b9: 0x002dcc8b, 0x60ba: 0x002dfe8b, 0x60bb: 0x002e228b, - 0x60bc: 0x002e828b, 0x60bd: 0x002e9e8b, 0x60be: 0x002ee28b, 0x60bf: 0x002f2c8b, - // Block 0x183, offset 0x60c0 - 0x60c0: 0x002f568b, 0x60c1: 0x002f7a8b, 0x60c2: 0x002fe68b, 0x60c3: 0x00302c8b, - 0x60c4: 0x00306c8b, 0x60c5: 0x0030be8b, 0x60c6: 0x0030e28b, 0x60c7: 0x0030f68b, - 0x60c8: 0x0031008b, 0x60c9: 0x00312a8b, 0x60ca: 0x002bde85, 0x60cb: 0x002c0a85, - 0x60cc: 0x002c3a85, 0x60cd: 0x002c6285, 0x60ce: 0x002c9885, 0x60cf: 0x002d0885, - 0x60d0: 0x002d2285, 0x60d1: 0x002d6885, 0x60d2: 0x002d9a85, 0x60d3: 0x002dcc85, - 0x60d4: 0x002dfe85, 0x60d5: 0x002e2285, 0x60d6: 0x002e8285, 0x60d7: 0x002e9e85, - 0x60d8: 0x002ee285, 0x60d9: 0x002f2c85, 0x60da: 0x002f5685, 0x60db: 0x002f7a85, - 0x60dc: 0x002fe685, 0x60dd: 0x00302c85, 0x60de: 0x00306c85, 0x60df: 0x0030be85, - 0x60e0: 0x0030e285, 0x60e1: 0x0030f685, 0x60e2: 0x00310085, 0x60e3: 0x00312a85, - 0x60e4: 0x002da285, 0x60e5: 0x002dd485, - 0x60e8: 0x0032528b, 0x60e9: 0x0032548b, 0x60ea: 0x0032568b, 0x60eb: 0x00325a8b, - 0x60ec: 0x00325c8b, 0x60ed: 0x0032648b, 0x60ee: 0x0032688b, 0x60ef: 0x00326a8b, - 0x60f0: 0x00326c8b, 0x60f1: 0x0032708b, 0x60f2: 0x0032728b, 0x60f3: 0x0032768b, - 0x60f4: 0x0032788b, 0x60f5: 0x00327a8b, 0x60f6: 0x00327c8b, 0x60f7: 0x00327e8b, - 0x60f8: 0x0032888b, 0x60f9: 0x00326a8b, 0x60fa: 0x00328e8b, 0x60fb: 0x0032968b, - 0x60fc: 0x0032988b, 0x60fd: 0x00329a8b, 0x60fe: 0x00329c8b, 0x60ff: 0x00329e8b, - // Block 0x184, offset 0x6100 - 0x6100: 0x0032a28b, 0x6101: 0x00092485, 0x6102: 0x00325285, 0x6103: 0x00325485, - 0x6104: 0x00325685, 0x6105: 0x00325a85, 0x6106: 0x00325c85, 0x6107: 0x00326485, - 0x6108: 0x00326885, 0x6109: 0x00326a85, 0x610a: 0x00326c85, 0x610b: 0x00327085, - 0x610c: 0x00327285, 0x610d: 0x00327685, 0x610e: 0x00327885, 0x610f: 0x00327a85, - 0x6110: 0x00327c85, 0x6111: 0x00327e85, 0x6112: 0x00328885, 0x6113: 0x00328e85, - 0x6114: 0x00328e85, 0x6115: 0x00329685, 0x6116: 0x00329885, 0x6117: 0x00329a85, - 0x6118: 0x00329c85, 0x6119: 0x00329e85, 0x611a: 0x0032a285, 0x611b: 0x00091c85, - 0x611c: 0x00325c85, 0x611d: 0x00326a85, 0x611e: 0x00327085, 0x611f: 0x00329a85, - 0x6120: 0x00328885, 0x6121: 0x00327e85, 0x6122: 0x0032528b, 0x6123: 0x0032548b, - 0x6124: 0x0032568b, 0x6125: 0x00325a8b, 0x6126: 0x00325c8b, 0x6127: 0x0032648b, - 0x6128: 0x0032688b, 0x6129: 0x00326a8b, 0x612a: 0x00326c8b, 0x612b: 0x0032708b, - 0x612c: 0x0032728b, 0x612d: 0x0032768b, 0x612e: 0x0032788b, 0x612f: 0x00327a8b, - 0x6130: 0x00327c8b, 0x6131: 0x00327e8b, 0x6132: 0x0032888b, 0x6133: 0x00326a8b, - 0x6134: 0x00328e8b, 0x6135: 0x0032968b, 0x6136: 0x0032988b, 0x6137: 0x00329a8b, - 0x6138: 0x00329c8b, 0x6139: 0x00329e8b, 0x613a: 0x0032a28b, 0x613b: 0x00092485, - 0x613c: 0x00325285, 0x613d: 0x00325485, 0x613e: 0x00325685, 0x613f: 0x00325a85, - // Block 0x185, offset 0x6140 - 0x6140: 0x00325c85, 0x6141: 0x00326485, 0x6142: 0x00326885, 0x6143: 0x00326a85, - 0x6144: 0x00326c85, 0x6145: 0x00327085, 0x6146: 0x00327285, 0x6147: 0x00327685, - 0x6148: 0x00327885, 0x6149: 0x00327a85, 0x614a: 0x00327c85, 0x614b: 0x00327e85, - 0x614c: 0x00328885, 0x614d: 0x00328e85, 0x614e: 0x00328e85, 0x614f: 0x00329685, - 0x6150: 0x00329885, 0x6151: 0x00329a85, 0x6152: 0x00329c85, 0x6153: 0x00329e85, - 0x6154: 0x0032a285, 0x6155: 0x00091c85, 0x6156: 0x00325c85, 0x6157: 0x00326a85, - 0x6158: 0x00327085, 0x6159: 0x00329a85, 0x615a: 0x00328885, 0x615b: 0x00327e85, - 0x615c: 0x0032528b, 0x615d: 0x0032548b, 0x615e: 0x0032568b, 0x615f: 0x00325a8b, - 0x6160: 0x00325c8b, 0x6161: 0x0032648b, 0x6162: 0x0032688b, 0x6163: 0x00326a8b, - 0x6164: 0x00326c8b, 0x6165: 0x0032708b, 0x6166: 0x0032728b, 0x6167: 0x0032768b, - 0x6168: 0x0032788b, 0x6169: 0x00327a8b, 0x616a: 0x00327c8b, 0x616b: 0x00327e8b, - 0x616c: 0x0032888b, 0x616d: 0x00326a8b, 0x616e: 0x00328e8b, 0x616f: 0x0032968b, - 0x6170: 0x0032988b, 0x6171: 0x00329a8b, 0x6172: 0x00329c8b, 0x6173: 0x00329e8b, - 0x6174: 0x0032a28b, 0x6175: 0x00092485, 0x6176: 0x00325285, 0x6177: 0x00325485, - 0x6178: 0x00325685, 0x6179: 0x00325a85, 0x617a: 0x00325c85, 0x617b: 0x00326485, - 0x617c: 0x00326885, 0x617d: 0x00326a85, 0x617e: 0x00326c85, 0x617f: 0x00327085, - // Block 0x186, offset 0x6180 - 0x6180: 0x00327285, 0x6181: 0x00327685, 0x6182: 0x00327885, 0x6183: 0x00327a85, - 0x6184: 0x00327c85, 0x6185: 0x00327e85, 0x6186: 0x00328885, 0x6187: 0x00328e85, - 0x6188: 0x00328e85, 0x6189: 0x00329685, 0x618a: 0x00329885, 0x618b: 0x00329a85, - 0x618c: 0x00329c85, 0x618d: 0x00329e85, 0x618e: 0x0032a285, 0x618f: 0x00091c85, - 0x6190: 0x00325c85, 0x6191: 0x00326a85, 0x6192: 0x00327085, 0x6193: 0x00329a85, - 0x6194: 0x00328885, 0x6195: 0x00327e85, 0x6196: 0x0032528b, 0x6197: 0x0032548b, - 0x6198: 0x0032568b, 0x6199: 0x00325a8b, 0x619a: 0x00325c8b, 0x619b: 0x0032648b, - 0x619c: 0x0032688b, 0x619d: 0x00326a8b, 0x619e: 0x00326c8b, 0x619f: 0x0032708b, - 0x61a0: 0x0032728b, 0x61a1: 0x0032768b, 0x61a2: 0x0032788b, 0x61a3: 0x00327a8b, - 0x61a4: 0x00327c8b, 0x61a5: 0x00327e8b, 0x61a6: 0x0032888b, 0x61a7: 0x00326a8b, - 0x61a8: 0x00328e8b, 0x61a9: 0x0032968b, 0x61aa: 0x0032988b, 0x61ab: 0x00329a8b, - 0x61ac: 0x00329c8b, 0x61ad: 0x00329e8b, 0x61ae: 0x0032a28b, 0x61af: 0x00092485, - 0x61b0: 0x00325285, 0x61b1: 0x00325485, 0x61b2: 0x00325685, 0x61b3: 0x00325a85, - 0x61b4: 0x00325c85, 0x61b5: 0x00326485, 0x61b6: 0x00326885, 0x61b7: 0x00326a85, - 0x61b8: 0x00326c85, 0x61b9: 0x00327085, 0x61ba: 0x00327285, 0x61bb: 0x00327685, - 0x61bc: 0x00327885, 0x61bd: 0x00327a85, 0x61be: 0x00327c85, 0x61bf: 0x00327e85, - // Block 0x187, offset 0x61c0 - 0x61c0: 0x00328885, 0x61c1: 0x00328e85, 0x61c2: 0x00328e85, 0x61c3: 0x00329685, - 0x61c4: 0x00329885, 0x61c5: 0x00329a85, 0x61c6: 0x00329c85, 0x61c7: 0x00329e85, - 0x61c8: 0x0032a285, 0x61c9: 0x00091c85, 0x61ca: 0x00325c85, 0x61cb: 0x00326a85, - 0x61cc: 0x00327085, 0x61cd: 0x00329a85, 0x61ce: 0x00328885, 0x61cf: 0x00327e85, - 0x61d0: 0x0032528b, 0x61d1: 0x0032548b, 0x61d2: 0x0032568b, 0x61d3: 0x00325a8b, - 0x61d4: 0x00325c8b, 0x61d5: 0x0032648b, 0x61d6: 0x0032688b, 0x61d7: 0x00326a8b, - 0x61d8: 0x00326c8b, 0x61d9: 0x0032708b, 0x61da: 0x0032728b, 0x61db: 0x0032768b, - 0x61dc: 0x0032788b, 0x61dd: 0x00327a8b, 0x61de: 0x00327c8b, 0x61df: 0x00327e8b, - 0x61e0: 0x0032888b, 0x61e1: 0x00326a8b, 0x61e2: 0x00328e8b, 0x61e3: 0x0032968b, - 0x61e4: 0x0032988b, 0x61e5: 0x00329a8b, 0x61e6: 0x00329c8b, 0x61e7: 0x00329e8b, - 0x61e8: 0x0032a28b, 0x61e9: 0x00092485, 0x61ea: 0x00325285, 0x61eb: 0x00325485, - 0x61ec: 0x00325685, 0x61ed: 0x00325a85, 0x61ee: 0x00325c85, 0x61ef: 0x00326485, - 0x61f0: 0x00326885, 0x61f1: 0x00326a85, 0x61f2: 0x00326c85, 0x61f3: 0x00327085, - 0x61f4: 0x00327285, 0x61f5: 0x00327685, 0x61f6: 0x00327885, 0x61f7: 0x00327a85, - 0x61f8: 0x00327c85, 0x61f9: 0x00327e85, 0x61fa: 0x00328885, 0x61fb: 0x00328e85, - 0x61fc: 0x00328e85, 0x61fd: 0x00329685, 0x61fe: 0x00329885, 0x61ff: 0x00329a85, - // Block 0x188, offset 0x6200 - 0x6200: 0x00329c85, 0x6201: 0x00329e85, 0x6202: 0x0032a285, 0x6203: 0x00091c85, - 0x6204: 0x00325c85, 0x6205: 0x00326a85, 0x6206: 0x00327085, 0x6207: 0x00329a85, - 0x6208: 0x00328885, 0x6209: 0x00327e85, 0x620a: 0x00325e8b, 0x620b: 0x00325e85, - 0x620e: 0x0029cc85, 0x620f: 0x0029ce85, - 0x6210: 0x0029d085, 0x6211: 0x0029d285, 0x6212: 0x0029d485, 0x6213: 0x0029d685, - 0x6214: 0x0029d885, 0x6215: 0x0029da85, 0x6216: 0x0029dc85, 0x6217: 0x0029de85, - 0x6218: 0x0029cc85, 0x6219: 0x0029ce85, 0x621a: 0x0029d085, 0x621b: 0x0029d285, - 0x621c: 0x0029d485, 0x621d: 0x0029d685, 0x621e: 0x0029d885, 0x621f: 0x0029da85, - 0x6220: 0x0029dc85, 0x6221: 0x0029de85, 0x6222: 0x0029cc85, 0x6223: 0x0029ce85, - 0x6224: 0x0029d085, 0x6225: 0x0029d285, 0x6226: 0x0029d485, 0x6227: 0x0029d685, - 0x6228: 0x0029d885, 0x6229: 0x0029da85, 0x622a: 0x0029dc85, 0x622b: 0x0029de85, - 0x622c: 0x0029cc85, 0x622d: 0x0029ce85, 0x622e: 0x0029d085, 0x622f: 0x0029d285, - 0x6230: 0x0029d485, 0x6231: 0x0029d685, 0x6232: 0x0029d885, 0x6233: 0x0029da85, - 0x6234: 0x0029dc85, 0x6235: 0x0029de85, 0x6236: 0x0029cc85, 0x6237: 0x0029ce85, - 0x6238: 0x0029d085, 0x6239: 0x0029d285, 0x623a: 0x0029d485, 0x623b: 0x0029d685, - 0x623c: 0x0029d885, 0x623d: 0x0029da85, 0x623e: 0x0029dc85, 0x623f: 0x0029de85, - // Block 0x189, offset 0x6240 - 0x6240: 0x00393885, 0x6241: 0x00393c85, 0x6242: 0x00396485, 0x6243: 0x00398885, - 0x6245: 0x003a7485, 0x6246: 0x0039a685, 0x6247: 0x00397285, - 0x6248: 0x0039e685, 0x6249: 0x003a9085, 0x624a: 0x003a1a85, 0x624b: 0x003a4085, - 0x624c: 0x003a4e85, 0x624d: 0x003a5685, 0x624e: 0x0039c685, 0x624f: 0x0039ee85, - 0x6250: 0x0039fc85, 0x6251: 0x0039dc85, 0x6252: 0x003a1285, 0x6253: 0x0039a485, - 0x6254: 0x0039c885, 0x6255: 0x00395685, 0x6256: 0x00395885, 0x6257: 0x00397485, - 0x6258: 0x00398a85, 0x6259: 0x0039de85, 0x625a: 0x0039e885, 0x625b: 0x0039f085, - 0x625c: 0x00393a85, 0x625d: 0x003a5885, 0x625e: 0x0039fe85, 0x625f: 0x003a1085, - 0x6261: 0x00393c85, 0x6262: 0x00396485, - 0x6264: 0x003a6885, 0x6267: 0x00397285, - 0x6269: 0x003a9085, 0x626a: 0x003a1a85, 0x626b: 0x003a4085, - 0x626c: 0x003a4e85, 0x626d: 0x003a5685, 0x626e: 0x0039c685, 0x626f: 0x0039ee85, - 0x6270: 0x0039fc85, 0x6271: 0x0039dc85, 0x6272: 0x003a1285, - 0x6274: 0x0039c885, 0x6275: 0x00395685, 0x6276: 0x00395885, 0x6277: 0x00397485, - 0x6279: 0x0039de85, 0x627b: 0x0039f085, - // Block 0x18a, offset 0x6280 - 0x6282: 0x00396485, - 0x6287: 0x00397285, - 0x6289: 0x003a9085, 0x628b: 0x003a4085, - 0x628d: 0x003a5685, 0x628e: 0x0039c685, 0x628f: 0x0039ee85, - 0x6291: 0x0039dc85, 0x6292: 0x003a1285, - 0x6294: 0x0039c885, 0x6297: 0x00397485, - 0x6299: 0x0039de85, 0x629b: 0x0039f085, - 0x629d: 0x003a5885, 0x629f: 0x003a1085, - 0x62a1: 0x00393c85, 0x62a2: 0x00396485, - 0x62a4: 0x003a6885, 0x62a7: 0x00397285, - 0x62a8: 0x0039e685, 0x62a9: 0x003a9085, 0x62aa: 0x003a1a85, - 0x62ac: 0x003a4e85, 0x62ad: 0x003a5685, 0x62ae: 0x0039c685, 0x62af: 0x0039ee85, - 0x62b0: 0x0039fc85, 0x62b1: 0x0039dc85, 0x62b2: 0x003a1285, - 0x62b4: 0x0039c885, 0x62b5: 0x00395685, 0x62b6: 0x00395885, 0x62b7: 0x00397485, - 0x62b9: 0x0039de85, 0x62ba: 0x0039e885, 0x62bb: 0x0039f085, - 0x62bc: 0x00393a85, 0x62be: 0x0039fe85, - // Block 0x18b, offset 0x62c0 - 0x62c0: 0x00393885, 0x62c1: 0x00393c85, 0x62c2: 0x00396485, 0x62c3: 0x00398885, - 0x62c4: 0x003a6885, 0x62c5: 0x003a7485, 0x62c6: 0x0039a685, 0x62c7: 0x00397285, - 0x62c8: 0x0039e685, 0x62c9: 0x003a9085, 0x62cb: 0x003a4085, - 0x62cc: 0x003a4e85, 0x62cd: 0x003a5685, 0x62ce: 0x0039c685, 0x62cf: 0x0039ee85, - 0x62d0: 0x0039fc85, 0x62d1: 0x0039dc85, 0x62d2: 0x003a1285, 0x62d3: 0x0039a485, - 0x62d4: 0x0039c885, 0x62d5: 0x00395685, 0x62d6: 0x00395885, 0x62d7: 0x00397485, - 0x62d8: 0x00398a85, 0x62d9: 0x0039de85, 0x62da: 0x0039e885, 0x62db: 0x0039f085, - 0x62e1: 0x00393c85, 0x62e2: 0x00396485, 0x62e3: 0x00398885, - 0x62e5: 0x003a7485, 0x62e6: 0x0039a685, 0x62e7: 0x00397285, - 0x62e8: 0x0039e685, 0x62e9: 0x003a9085, 0x62eb: 0x003a4085, - 0x62ec: 0x003a4e85, 0x62ed: 0x003a5685, 0x62ee: 0x0039c685, 0x62ef: 0x0039ee85, - 0x62f0: 0x0039fc85, 0x62f1: 0x0039dc85, 0x62f2: 0x003a1285, 0x62f3: 0x0039a485, - 0x62f4: 0x0039c885, 0x62f5: 0x00395685, 0x62f6: 0x00395885, 0x62f7: 0x00397485, - 0x62f8: 0x00398a85, 0x62f9: 0x0039de85, 0x62fa: 0x0039e885, 0x62fb: 0x0039f085, - // Block 0x18c, offset 0x6300 - 0x6330: 0x40070a20, 0x6331: 0x40070c20, - // Block 0x18d, offset 0x6340 - 0x6340: 0x401f6e20, 0x6341: 0x401f7020, 0x6342: 0x401f7220, 0x6343: 0x401f7420, - 0x6344: 0x401f7620, 0x6345: 0x401f7820, 0x6346: 0x401f7a20, 0x6347: 0x401f7c20, - 0x6348: 0x401f7e20, 0x6349: 0x401f8020, 0x634a: 0x401f8220, 0x634b: 0x401f8420, - 0x634c: 0x401f8620, 0x634d: 0x401f8820, 0x634e: 0x401f8a20, 0x634f: 0x401f8c20, - 0x6350: 0x401f8e20, 0x6351: 0x401f9020, 0x6352: 0x401f9220, 0x6353: 0x401f9420, - 0x6354: 0x401f9620, 0x6355: 0x401f9820, 0x6356: 0x401f9a20, 0x6357: 0x401f9c20, - 0x6358: 0x401f9e20, 0x6359: 0x401fa020, 0x635a: 0x401fa220, 0x635b: 0x401fa420, - 0x635c: 0x401fa620, 0x635d: 0x401fa820, 0x635e: 0x401faa20, 0x635f: 0x401fac20, - 0x6360: 0x401fae20, 0x6361: 0x401fb020, 0x6362: 0x401fb220, 0x6363: 0x401fb420, - 0x6364: 0x401fb620, 0x6365: 0x401fb820, 0x6366: 0x401fba20, 0x6367: 0x401fbc20, - 0x6368: 0x401fbe20, 0x6369: 0x401fc020, 0x636a: 0x401fc220, 0x636b: 0x401fc420, - 0x6370: 0x401fc620, 0x6371: 0x401fc820, 0x6372: 0x401fca20, 0x6373: 0x401fcc20, - 0x6374: 0x401fce20, 0x6375: 0x401fd020, 0x6376: 0x401fd220, 0x6377: 0x401fd420, - 0x6378: 0x401fd620, 0x6379: 0x401fd820, 0x637a: 0x401fda20, 0x637b: 0x401fdc20, - 0x637c: 0x401fde20, 0x637d: 0x401fe020, 0x637e: 0x401fe220, 0x637f: 0x401fe420, - // Block 0x18e, offset 0x6380 - 0x6380: 0x401fe620, 0x6381: 0x401fe820, 0x6382: 0x401fea20, 0x6383: 0x401fec20, - 0x6384: 0x401fee20, 0x6385: 0x401ff020, 0x6386: 0x401ff220, 0x6387: 0x401ff420, - 0x6388: 0x401ff620, 0x6389: 0x401ff820, 0x638a: 0x401ffa20, 0x638b: 0x401ffc20, - 0x638c: 0x401ffe20, 0x638d: 0x40200020, 0x638e: 0x40200220, 0x638f: 0x40200420, - 0x6390: 0x40200620, 0x6391: 0x40200820, 0x6392: 0x40200a20, 0x6393: 0x40200c20, - 0x6394: 0x40200e20, 0x6395: 0x40201020, 0x6396: 0x40201220, 0x6397: 0x40201420, - 0x6398: 0x40201620, 0x6399: 0x40201820, 0x639a: 0x40201a20, 0x639b: 0x40201c20, - 0x639c: 0x40201e20, 0x639d: 0x40202020, 0x639e: 0x40202220, 0x639f: 0x40202420, - 0x63a0: 0x40202620, 0x63a1: 0x40202820, 0x63a2: 0x40202a20, 0x63a3: 0x40202c20, - 0x63a4: 0x40202e20, 0x63a5: 0x40203020, 0x63a6: 0x40203220, 0x63a7: 0x40203420, - 0x63a8: 0x40203620, 0x63a9: 0x40203820, 0x63aa: 0x40203a20, 0x63ab: 0x40203c20, - 0x63ac: 0x40203e20, 0x63ad: 0x40204020, 0x63ae: 0x40204220, 0x63af: 0x40204420, - 0x63b0: 0x40204620, 0x63b1: 0x40204820, 0x63b2: 0x40204a20, 0x63b3: 0x40204c20, - 0x63b4: 0x40204e20, 0x63b5: 0x40205020, 0x63b6: 0x40205220, 0x63b7: 0x40205420, - 0x63b8: 0x40205620, 0x63b9: 0x40205820, 0x63ba: 0x40205a20, 0x63bb: 0x40205c20, - 0x63bc: 0x40205e20, 0x63bd: 0x40206020, 0x63be: 0x40206220, 0x63bf: 0x40206420, - // Block 0x18f, offset 0x63c0 - 0x63c0: 0x40206620, 0x63c1: 0x40206820, 0x63c2: 0x40206a20, 0x63c3: 0x40206c20, - 0x63c4: 0x40206e20, 0x63c5: 0x40207020, 0x63c6: 0x40207220, 0x63c7: 0x40207420, - 0x63c8: 0x40207620, 0x63c9: 0x40207820, 0x63ca: 0x40207a20, 0x63cb: 0x40207c20, - 0x63cc: 0x40207e20, 0x63cd: 0x40208020, 0x63ce: 0x40208220, 0x63cf: 0x40208420, - 0x63d0: 0x40208620, 0x63d1: 0x40208820, 0x63d2: 0x40208a20, 0x63d3: 0x40208c20, - 0x63e0: 0x40208e20, 0x63e1: 0x40209020, 0x63e2: 0x40209220, 0x63e3: 0x40209420, - 0x63e4: 0x40209620, 0x63e5: 0x40209820, 0x63e6: 0x40209a20, 0x63e7: 0x40209c20, - 0x63e8: 0x40209e20, 0x63e9: 0x4020a020, 0x63ea: 0x4020a220, 0x63eb: 0x4020a420, - 0x63ec: 0x4020a620, 0x63ed: 0x4020a820, 0x63ee: 0x4020aa20, - 0x63f1: 0x4020ac20, 0x63f2: 0x4020ae20, 0x63f3: 0x4020b020, - 0x63f4: 0x4020b220, 0x63f5: 0x4020b420, 0x63f6: 0x4020b620, 0x63f7: 0x4020b820, - 0x63f8: 0x4020ba20, 0x63f9: 0x4020bc20, 0x63fa: 0x4020be20, 0x63fb: 0x4020c020, - 0x63fc: 0x4020c220, 0x63fd: 0x4020c420, 0x63fe: 0x4020c620, - // Block 0x190, offset 0x6400 - 0x6401: 0x4020c820, 0x6402: 0x4020ca20, 0x6403: 0x4020cc20, - 0x6404: 0x4020ce20, 0x6405: 0x4020d020, 0x6406: 0x4020d220, 0x6407: 0x4020d420, - 0x6408: 0x4020d620, 0x6409: 0x4020d820, 0x640a: 0x4020da20, 0x640b: 0x4020dc20, - 0x640c: 0x4020de20, 0x640d: 0x4020e020, 0x640e: 0x4020e220, 0x640f: 0x4020e420, - 0x6411: 0x4020e620, 0x6412: 0x4020e820, 0x6413: 0x4020ea20, - 0x6414: 0x4020ec20, 0x6415: 0x4020ee20, 0x6416: 0x4020f020, 0x6417: 0x4020f220, - 0x6418: 0x4020f420, 0x6419: 0x4020f620, 0x641a: 0x4020f820, 0x641b: 0x4020fa20, - 0x641c: 0x4020fc20, 0x641d: 0x4020fe20, 0x641e: 0x40210020, 0x641f: 0x40210220, - // Block 0x191, offset 0x6440 - 0x6440: 0xf0001f04, 0x6441: 0xf0001f04, 0x6442: 0xf0001f04, 0x6443: 0xf0001f04, - 0x6444: 0xf0001f04, 0x6445: 0xf0001f04, 0x6446: 0xf0001f04, 0x6447: 0xf0001f04, - 0x6448: 0xf0001f04, 0x6449: 0xf0001f04, 0x644a: 0xf0001f04, - 0x6450: 0xf0000a04, 0x6451: 0xf0000a04, 0x6452: 0xf0000a04, 0x6453: 0xf0000a04, - 0x6454: 0xf0000a04, 0x6455: 0xf0000a04, 0x6456: 0xf0000a04, 0x6457: 0xf0000a04, - 0x6458: 0xf0000a04, 0x6459: 0xf0000a04, 0x645a: 0xf0000a04, 0x645b: 0xf0000a04, - 0x645c: 0xf0000a04, 0x645d: 0xf0000a04, 0x645e: 0xf0000a04, 0x645f: 0xf0000a04, - 0x6460: 0xf0000a04, 0x6461: 0xf0000a04, 0x6462: 0xf0000a04, 0x6463: 0xf0000a04, - 0x6464: 0xf0000a04, 0x6465: 0xf0000a04, 0x6466: 0xf0000a04, 0x6467: 0xf0000a04, - 0x6468: 0xf0000a04, 0x6469: 0xf0000a04, 0x646a: 0xf0000a04, 0x646b: 0x002c3a8c, - 0x646c: 0x002f7a8c, 0x646d: 0xf0000c0c, 0x646e: 0xf0000c0c, - 0x6470: 0x002bde9d, 0x6471: 0x002c0a9d, 0x6472: 0x002c3a9d, 0x6473: 0x002c629d, - 0x6474: 0x002c989d, 0x6475: 0x002d089d, 0x6476: 0x002d229d, 0x6477: 0x002d689d, - 0x6478: 0x002d9a9d, 0x6479: 0x002dcc9d, 0x647a: 0x002dfe9d, 0x647b: 0x002e229d, - 0x647c: 0x002e829d, 0x647d: 0x002e9e9d, 0x647e: 0x002ee29d, 0x647f: 0x002f2c9d, - // Block 0x192, offset 0x6480 - 0x6480: 0x002f569d, 0x6481: 0x002f7a9d, 0x6482: 0x002fe69d, 0x6483: 0x00302c9d, - 0x6484: 0x00306c9d, 0x6485: 0x0030be9d, 0x6486: 0x0030e29d, 0x6487: 0x0030f69d, - 0x6488: 0x0031009d, 0x6489: 0x00312a9d, 0x648a: 0xf0001d1d, 0x648b: 0xf0001d1d, - 0x648c: 0xf0001d1d, 0x648d: 0xf0001d1d, 0x648e: 0xe0000ebc, 0x648f: 0xf0001d1d, - 0x6490: 0x002bde8c, 0x6491: 0x002c0a8c, 0x6492: 0x002c3a8c, 0x6493: 0x002c628c, - 0x6494: 0x002c988c, 0x6495: 0x002d088c, 0x6496: 0x002d228c, 0x6497: 0x002d688c, - 0x6498: 0x002d9a8c, 0x6499: 0x002dcc8c, 0x649a: 0x002dfe8c, 0x649b: 0x002e228c, - 0x649c: 0x002e828c, 0x649d: 0x002e9e8c, 0x649e: 0x002ee28c, 0x649f: 0x002f2c8c, - 0x64a0: 0x002f568c, 0x64a1: 0x002f7a8c, 0x64a2: 0x002fe68c, 0x64a3: 0x00302c8c, - 0x64a4: 0x00306c8c, 0x64a5: 0x0030be8c, 0x64a6: 0x0030e28c, 0x64a7: 0x0030f68c, - 0x64a8: 0x0031008c, 0x64a9: 0x00312a8c, 0x64aa: 0xf0001414, 0x64ab: 0xf0001414, - 0x64b0: 0x002bde9d, 0x64b1: 0x002c0a9d, 0x64b2: 0x002c3a9d, 0x64b3: 0x002c629d, - 0x64b4: 0x002c989d, 0x64b5: 0x002d089d, 0x64b6: 0x002d229d, 0x64b7: 0x002d689d, - 0x64b8: 0x002d9a9d, 0x64b9: 0x002dcc9d, 0x64ba: 0x002dfe9d, 0x64bb: 0x002e229d, - 0x64bc: 0x002e829d, 0x64bd: 0x002e9e9d, 0x64be: 0x002ee29d, 0x64bf: 0x002f2c9d, - // Block 0x193, offset 0x64c0 - 0x64c0: 0x002f569d, 0x64c1: 0x002f7a9d, 0x64c2: 0x002fe69d, 0x64c3: 0x00302c9d, - 0x64c4: 0x00306c9d, 0x64c5: 0x0030be9d, 0x64c6: 0x0030e29d, 0x64c7: 0x0030f69d, - 0x64c8: 0x0031009d, 0x64c9: 0x00312a9d, 0x64ca: 0x002f2c9d, 0x64cb: 0xe0000c81, - 0x64cc: 0xe0000eb5, 0x64cd: 0xe0000f74, 0x64ce: 0xe00009d2, 0x64cf: 0xe00010f0, - 0x64d0: 0xf0001d1d, 0x64d1: 0xe0000a6f, 0x64d2: 0xe0000a7e, 0x64d3: 0xe0000ba4, - 0x64d4: 0xe0000c84, 0x64d5: 0xe0000d8a, 0x64d6: 0xe0000d8e, 0x64d7: 0xe0000e9b, - 0x64d8: 0xe0000f77, 0x64d9: 0xe00010a2, 0x64da: 0xe00010c0, - // Block 0x194, offset 0x6500 - 0x6526: 0x40110c20, 0x6527: 0x40110e20, - 0x6528: 0x40111020, 0x6529: 0x40111220, 0x652a: 0x40111420, 0x652b: 0x40111620, - 0x652c: 0x40111820, 0x652d: 0x40111a20, 0x652e: 0x40111c20, 0x652f: 0x40111e20, - 0x6530: 0x40112020, 0x6531: 0x40112220, 0x6532: 0x40112420, 0x6533: 0x40112620, - 0x6534: 0x40112820, 0x6535: 0x40112a20, 0x6536: 0x40112c20, 0x6537: 0x40112e20, - 0x6538: 0x40113020, 0x6539: 0x40113220, 0x653a: 0x40113420, 0x653b: 0x40113620, - 0x653c: 0x40113820, 0x653d: 0x40113a20, 0x653e: 0x40113c20, 0x653f: 0x40113e20, - // Block 0x195, offset 0x6540 - 0x6540: 0xf0001c1c, 0x6541: 0xf0001c1c, 0x6542: 0x00658c9c, - 0x6550: 0x02c4969c, 0x6551: 0x02b6ae9c, 0x6552: 0x02a7989c, 0x6553: 0xf0001c1c, - 0x6554: 0x029d189c, 0x6555: 0x02b2349c, 0x6556: 0x0313c69c, 0x6557: 0x02b2529c, - 0x6558: 0x029d489c, 0x6559: 0x02cc409c, 0x655a: 0x02e2429c, 0x655b: 0x02cb329c, - 0x655c: 0x02a49a9c, 0x655d: 0x02bf189c, 0x655e: 0x02a31a9c, 0x655f: 0x02cb609c, - 0x6560: 0x02a43a9c, 0x6561: 0x02fa849c, 0x6562: 0x02ea3e9c, 0x6563: 0x0319529c, - 0x6564: 0x02b1e09c, 0x6565: 0x02a8729c, 0x6566: 0x02de289c, 0x6567: 0x02c52a9c, - 0x6568: 0x02c6aa9c, 0x6569: 0x029c009c, 0x656a: 0x029c129c, 0x656b: 0x0320949c, - 0x656c: 0x02bbcc9c, 0x656d: 0x029c5a9c, 0x656e: 0x02a7e69c, 0x656f: 0x02c60e9c, - 0x6570: 0x031ae09c, 0x6571: 0x02c4a69c, 0x6572: 0x02f3029c, 0x6573: 0x02f4f49c, - 0x6574: 0x02a8109c, 0x6575: 0x02dd009c, 0x6576: 0x02ce129c, 0x6577: 0x02ce109c, - 0x6578: 0x02ea669c, 0x6579: 0x02a4e49c, 0x657a: 0x02ab6c9c, - // Block 0x196, offset 0x6580 - 0x6580: 0xf0000404, 0x6581: 0xf0000404, 0x6582: 0xf0000404, 0x6583: 0xf0000404, - 0x6584: 0xf0000404, 0x6585: 0xf0000404, 0x6586: 0xf0000404, 0x6587: 0xf0000404, - 0x6588: 0xf0000404, - 0x6590: 0x02bf2e86, 0x6591: 0x02a7de86, - // Block 0x197, offset 0x65c0 - 0x65c0: 0x40210420, 0x65c1: 0x40210620, 0x65c2: 0x40210820, 0x65c3: 0x40210a20, - 0x65c4: 0x40210c20, 0x65c5: 0x40210e20, 0x65c6: 0x40211020, 0x65c7: 0x40211220, - 0x65c8: 0x40211420, 0x65c9: 0x40211620, 0x65ca: 0x40211820, 0x65cb: 0x40211a20, - 0x65cc: 0x40211c20, 0x65cd: 0x40211e20, 0x65ce: 0x40212020, 0x65cf: 0x40212220, - 0x65d0: 0x40212420, 0x65d1: 0x40212620, 0x65d2: 0x40212820, 0x65d3: 0x40212a20, - 0x65d4: 0x40212c20, 0x65d5: 0x40212e20, 0x65d6: 0x40213020, 0x65d7: 0x40213220, - 0x65d8: 0x40213420, 0x65d9: 0x40213620, 0x65da: 0x40213820, 0x65db: 0x40213a20, - 0x65dc: 0x40213c20, 0x65dd: 0x40213e20, 0x65de: 0x40214020, 0x65df: 0x40214220, - 0x65e0: 0x40214420, - 0x65f0: 0x40214620, 0x65f1: 0x40214820, 0x65f2: 0x40214a20, 0x65f3: 0x40214c20, - 0x65f4: 0x40214e20, 0x65f5: 0x40215020, 0x65f7: 0x40215220, - 0x65f8: 0x40215420, 0x65f9: 0x40215620, 0x65fa: 0x40215820, 0x65fb: 0x40215a20, - 0x65fc: 0x40215c20, 0x65fd: 0x40215e20, 0x65fe: 0x40216020, 0x65ff: 0x40216220, - // Block 0x198, offset 0x6600 - 0x6600: 0x40216420, 0x6601: 0x40216620, 0x6602: 0x40216820, 0x6603: 0x40216a20, - 0x6604: 0x40216c20, 0x6605: 0x40216e20, 0x6606: 0x40217020, 0x6607: 0x40217220, - 0x6608: 0x40217420, 0x6609: 0x40217620, 0x660a: 0x40217820, 0x660b: 0x40217a20, - 0x660c: 0x40217c20, 0x660d: 0x40217e20, 0x660e: 0x40218020, 0x660f: 0x40218220, - 0x6610: 0x40218420, 0x6611: 0x40218620, 0x6612: 0x40218820, 0x6613: 0x40218a20, - 0x6614: 0x40218c20, 0x6615: 0x40218e20, 0x6616: 0x40219020, 0x6617: 0x40219220, - 0x6618: 0x40219420, 0x6619: 0x40219620, 0x661a: 0x40219820, 0x661b: 0x40219a20, - 0x661c: 0x40219c20, 0x661d: 0x40219e20, 0x661e: 0x4021a020, 0x661f: 0x4021a220, - 0x6620: 0x4021a420, 0x6621: 0x4021a620, 0x6622: 0x4021a820, 0x6623: 0x4021aa20, - 0x6624: 0x4021ac20, 0x6625: 0x4021ae20, 0x6626: 0x4021b020, 0x6627: 0x4021b220, - 0x6628: 0x4021b420, 0x6629: 0x4021b620, 0x662a: 0x4021b820, 0x662b: 0x4021ba20, - 0x662c: 0x4021bc20, 0x662d: 0x4021be20, 0x662e: 0x4021c020, 0x662f: 0x4021c220, - 0x6630: 0x4021c420, 0x6631: 0x4021c620, 0x6632: 0x4021c820, 0x6633: 0x4021ca20, - 0x6634: 0x4021cc20, 0x6635: 0x4021ce20, 0x6636: 0x4021d020, 0x6637: 0x4021d220, - 0x6638: 0x4021d420, 0x6639: 0x4021d620, 0x663a: 0x4021d820, 0x663b: 0x4021da20, - 0x663c: 0x4021dc20, - // Block 0x199, offset 0x6640 - 0x6640: 0x4021de20, 0x6641: 0x4021e020, 0x6642: 0x4021e220, 0x6643: 0x4021e420, - 0x6644: 0x4021e620, 0x6645: 0x4021e820, 0x6646: 0x4021ea20, 0x6647: 0x4021ec20, - 0x6648: 0x4021ee20, 0x6649: 0x4021f020, 0x664a: 0x4021f220, 0x664b: 0x4021f420, - 0x664c: 0x4021f620, 0x664d: 0x4021f820, 0x664e: 0x4021fa20, 0x664f: 0x4021fc20, - 0x6650: 0x4021fe20, 0x6651: 0x40220020, 0x6652: 0x40220220, 0x6653: 0x40220420, - 0x6660: 0x40220620, 0x6661: 0x40220820, 0x6662: 0x40220a20, 0x6663: 0x40220c20, - 0x6664: 0x40220e20, 0x6665: 0x40221020, 0x6666: 0x40221220, 0x6667: 0x40221420, - 0x6668: 0x40221620, 0x6669: 0x40221820, 0x666a: 0x40221a20, 0x666b: 0x40221c20, - 0x666c: 0x40221e20, 0x666d: 0x40222020, 0x666e: 0x40222220, 0x666f: 0x40222420, - 0x6670: 0x40222620, 0x6671: 0x40222820, 0x6672: 0x40222a20, 0x6673: 0x40222c20, - 0x6674: 0x40222e20, 0x6675: 0x40223020, 0x6676: 0x40223220, 0x6677: 0x40223420, - 0x6678: 0x40223620, 0x6679: 0x40223820, 0x667a: 0x40223a20, 0x667b: 0x40223c20, - 0x667c: 0x40223e20, 0x667d: 0x40224020, 0x667e: 0x40224220, 0x667f: 0x40224420, - // Block 0x19a, offset 0x6680 - 0x6680: 0x40224620, 0x6681: 0x40224820, 0x6682: 0x40224a20, 0x6683: 0x40224c20, - 0x6684: 0x40224e20, 0x6686: 0x40225020, 0x6687: 0x40225220, - 0x6688: 0x40225420, 0x6689: 0x40225620, 0x668a: 0x40225820, - 0x66a0: 0x40225a20, 0x66a1: 0x40225c20, 0x66a2: 0x40225e20, 0x66a3: 0x40226020, - 0x66a4: 0x40226220, 0x66a5: 0x40226420, 0x66a6: 0x40226620, 0x66a7: 0x40226820, - 0x66a8: 0x40226a20, 0x66a9: 0x40226c20, 0x66aa: 0x40226e20, 0x66ab: 0x40227020, - 0x66ac: 0x40227220, 0x66ad: 0x40227420, 0x66ae: 0x40227620, 0x66af: 0x40227820, - 0x66b0: 0x40227a20, - // Block 0x19b, offset 0x66c0 - 0x66c0: 0x40227c20, 0x66c1: 0x40227e20, 0x66c2: 0x40228020, 0x66c3: 0x40228220, - 0x66c4: 0x40228420, 0x66c5: 0x40228620, 0x66c6: 0x40228820, 0x66c7: 0x40228a20, - 0x66c8: 0x40228c20, 0x66c9: 0x40228e20, 0x66ca: 0x40229020, 0x66cb: 0x40229220, - 0x66cc: 0x40229420, 0x66cd: 0x40229620, 0x66ce: 0x40229820, 0x66cf: 0x40229a20, - 0x66d0: 0x40229c20, 0x66d1: 0x40229e20, 0x66d2: 0x4022a020, 0x66d3: 0x4022a220, - 0x66d4: 0x4022a420, 0x66d5: 0x4022a620, 0x66d6: 0x4022a820, 0x66d7: 0x4022aa20, - 0x66d8: 0x4022ac20, 0x66d9: 0x4022ae20, 0x66da: 0x4022b020, 0x66db: 0x4022b220, - 0x66dc: 0x4022b420, 0x66dd: 0x4022b620, 0x66de: 0x4022b820, 0x66df: 0x4022ba20, - 0x66e0: 0x4022bc20, 0x66e1: 0x4022be20, 0x66e2: 0x4022c020, 0x66e3: 0x4022c220, - 0x66e4: 0x4022c420, 0x66e5: 0x4022c620, 0x66e6: 0x4022c820, 0x66e7: 0x4022ca20, - 0x66e8: 0x4022cc20, 0x66e9: 0x4022ce20, 0x66ea: 0x4022d020, 0x66eb: 0x4022d220, - 0x66ec: 0x4022d420, 0x66ed: 0x4022d620, 0x66ee: 0x4022d820, 0x66ef: 0x4022da20, - 0x66f0: 0x4022dc20, 0x66f1: 0x4022de20, 0x66f2: 0x4022e020, 0x66f3: 0x4022e220, - 0x66f4: 0x4022e420, 0x66f5: 0x4022e620, 0x66f6: 0x4022e820, 0x66f7: 0x4022ea20, - 0x66f8: 0x4022ec20, 0x66f9: 0x4022ee20, 0x66fa: 0x4022f020, 0x66fb: 0x4022f220, - 0x66fc: 0x4022f420, 0x66fd: 0x4022f620, 0x66fe: 0x4022f820, - // Block 0x19c, offset 0x6700 - 0x6700: 0x4022fa20, 0x6702: 0x4022fc20, 0x6703: 0x4022fe20, - 0x6704: 0x40230020, 0x6705: 0x40230220, 0x6706: 0x40230420, 0x6707: 0x40230620, - 0x6708: 0x40230820, 0x6709: 0x40230a20, 0x670a: 0x40230c20, 0x670b: 0x40230e20, - 0x670c: 0x40231020, 0x670d: 0x40231220, 0x670e: 0x40231420, 0x670f: 0x40231620, - 0x6710: 0x40231820, 0x6711: 0x40231a20, 0x6712: 0x40231c20, 0x6713: 0x40231e20, - 0x6714: 0x40232020, 0x6715: 0x40232220, 0x6716: 0x40232420, 0x6717: 0x40232620, - 0x6718: 0x40232820, 0x6719: 0x40232a20, 0x671a: 0x40232c20, 0x671b: 0x40232e20, - 0x671c: 0x40233020, 0x671d: 0x40233220, 0x671e: 0x40233420, 0x671f: 0x40233620, - 0x6720: 0x40233820, 0x6721: 0x40233a20, 0x6722: 0x40233c20, 0x6723: 0x40233e20, - 0x6724: 0x40234020, 0x6725: 0x40234220, 0x6726: 0x40234420, 0x6727: 0x40234620, - 0x6728: 0x40234820, 0x6729: 0x40234a20, 0x672a: 0x40234c20, 0x672b: 0x40234e20, - 0x672c: 0x40235020, 0x672d: 0x40235220, 0x672e: 0x40235420, 0x672f: 0x40235620, - 0x6730: 0x40235820, 0x6731: 0x40235a20, 0x6732: 0x40235c20, 0x6733: 0x40235e20, - 0x6734: 0x40236020, 0x6735: 0x40236220, 0x6736: 0x40236420, 0x6737: 0x40236620, - 0x6738: 0x40236820, 0x6739: 0x40236a20, 0x673a: 0x40236c20, 0x673b: 0x40236e20, - 0x673c: 0x40237020, 0x673d: 0x40237220, 0x673e: 0x40237420, 0x673f: 0x40237620, - // Block 0x19d, offset 0x6740 - 0x6740: 0x40237820, 0x6741: 0x40237a20, 0x6742: 0x40237c20, 0x6743: 0x40237e20, - 0x6744: 0x40238020, 0x6745: 0x40238220, 0x6746: 0x40238420, 0x6747: 0x40238620, - 0x6748: 0x40238820, 0x6749: 0x40238a20, 0x674a: 0x40238c20, 0x674b: 0x40238e20, - 0x674c: 0x40239020, 0x674d: 0x40239220, 0x674e: 0x40239420, 0x674f: 0x40239620, - 0x6750: 0x40239820, 0x6751: 0x40239a20, 0x6752: 0x40239c20, 0x6753: 0x40239e20, - 0x6754: 0x4023a020, 0x6755: 0x4023a220, 0x6756: 0x4023a420, 0x6757: 0x4023a620, - 0x6758: 0x4023a820, 0x6759: 0x4023aa20, 0x675a: 0x4023ac20, 0x675b: 0x4023ae20, - 0x675c: 0x4023b020, 0x675d: 0x4023b220, 0x675e: 0x4023b420, 0x675f: 0x4023b620, - 0x6760: 0x4023b820, 0x6761: 0x4023ba20, 0x6762: 0x4023bc20, 0x6763: 0x4023be20, - 0x6764: 0x4023c020, 0x6765: 0x4023c220, 0x6766: 0x4023c420, 0x6767: 0x4023c620, - 0x6768: 0x4023c820, 0x6769: 0x4023ca20, 0x676a: 0x4023cc20, 0x676b: 0x4023ce20, - 0x676c: 0x4023d020, 0x676d: 0x4023d220, 0x676e: 0x4023d420, 0x676f: 0x4023d620, - 0x6770: 0x4023d820, 0x6771: 0x4023da20, 0x6772: 0x4023dc20, 0x6773: 0x4023de20, - 0x6774: 0x4023e020, 0x6775: 0x4023e220, 0x6776: 0x4023e420, 0x6777: 0x4023e620, - 0x6778: 0x4023e820, 0x6779: 0x4023ea20, 0x677a: 0x4023ec20, 0x677b: 0x4023ee20, - 0x677c: 0x4023f020, 0x677d: 0x4023f220, 0x677e: 0x4023f420, 0x677f: 0x4023f620, - // Block 0x19e, offset 0x6780 - 0x6780: 0x4023f820, 0x6781: 0x4023fa20, 0x6782: 0x4023fc20, 0x6783: 0x4023fe20, - 0x6784: 0x40240020, 0x6785: 0x40240220, 0x6786: 0x40240420, 0x6787: 0x40240620, - 0x6788: 0x40240820, 0x6789: 0x40240a20, 0x678a: 0x40240c20, 0x678b: 0x40240e20, - 0x678c: 0x40241020, 0x678d: 0x40241220, 0x678e: 0x40241420, 0x678f: 0x40241620, - 0x6790: 0x40241820, 0x6791: 0x40241a20, 0x6792: 0x40241c20, 0x6793: 0x40241e20, - 0x6794: 0x40242020, 0x6795: 0x40242220, 0x6796: 0x40242420, 0x6797: 0x40242620, - 0x6798: 0x40242820, 0x6799: 0x40242a20, 0x679a: 0x40242c20, 0x679b: 0x40242e20, - 0x679c: 0x40243020, 0x679d: 0x40243220, 0x679e: 0x40243420, 0x679f: 0x40243620, - 0x67a0: 0x40243820, 0x67a1: 0x40243a20, 0x67a2: 0x40243c20, 0x67a3: 0x40243e20, - 0x67a4: 0x40244020, 0x67a5: 0x40244220, 0x67a6: 0x40244420, 0x67a7: 0x40244620, - 0x67a8: 0x40244820, 0x67a9: 0x40244a20, 0x67aa: 0x40244c20, 0x67ab: 0x40244e20, - 0x67ac: 0x40245020, 0x67ad: 0x40245220, 0x67ae: 0x40245420, 0x67af: 0x40245620, - 0x67b0: 0x40245820, 0x67b1: 0x40245a20, 0x67b2: 0x40245c20, 0x67b3: 0x40245e20, - 0x67b4: 0x40246020, 0x67b5: 0x40246220, 0x67b6: 0x40246420, 0x67b7: 0x40246620, - 0x67b9: 0x40246820, 0x67ba: 0x40246a20, 0x67bb: 0x40246c20, - 0x67bc: 0x40246e20, - // Block 0x19f, offset 0x67c0 - 0x67c0: 0x40247020, 0x67c1: 0x40247220, 0x67c2: 0x40247420, 0x67c3: 0x40247620, - 0x67c4: 0x40247820, 0x67c5: 0x40247a20, 0x67c6: 0x40247c20, 0x67c7: 0x40247e20, - 0x67c8: 0x40248020, 0x67c9: 0x40248220, 0x67ca: 0x40248420, 0x67cb: 0x40248620, - 0x67cc: 0x40248820, 0x67cd: 0x40248a20, 0x67ce: 0x40248c20, 0x67cf: 0x40248e20, - 0x67d0: 0x40249020, 0x67d1: 0x40249220, 0x67d2: 0x40249420, 0x67d3: 0x40249620, - 0x67d4: 0x40249820, 0x67d5: 0x40249a20, 0x67d6: 0x40249c20, 0x67d7: 0x40249e20, - 0x67d8: 0x4024a020, 0x67d9: 0x4024a220, 0x67da: 0x4024a420, 0x67db: 0x4024a620, - 0x67dc: 0x4024a820, 0x67dd: 0x4024aa20, 0x67de: 0x4024ac20, 0x67df: 0x4024ae20, - 0x67e0: 0x4024b020, 0x67e1: 0x4024b220, 0x67e2: 0x4024b420, 0x67e3: 0x4024b620, - 0x67e4: 0x4024b820, 0x67e5: 0x4024ba20, 0x67e6: 0x4024bc20, 0x67e7: 0x4024be20, - 0x67e8: 0x4024c020, 0x67e9: 0x4024c220, 0x67ea: 0x4024c420, 0x67eb: 0x4024c620, - 0x67ec: 0x4024c820, 0x67ed: 0x4024ca20, 0x67ee: 0x4024cc20, 0x67ef: 0x4024ce20, - 0x67f0: 0x4024d020, 0x67f1: 0x4024d220, 0x67f2: 0x4024d420, 0x67f3: 0x4024d620, - 0x67f4: 0x4024d820, 0x67f5: 0x4024da20, 0x67f6: 0x4024dc20, 0x67f7: 0x4024de20, - 0x67f8: 0x4024e020, 0x67f9: 0x4024e220, 0x67fa: 0x4024e420, 0x67fb: 0x4024e620, - 0x67fc: 0x4024e820, 0x67fd: 0x4024ea20, - // Block 0x1a0, offset 0x6800 - 0x6800: 0x4024ec20, 0x6801: 0x4024ee20, 0x6802: 0x4024f020, 0x6803: 0x4024f220, - 0x6810: 0x4024f420, 0x6811: 0x4024f620, 0x6812: 0x4024f820, 0x6813: 0x4024fa20, - 0x6814: 0x4024fc20, 0x6815: 0x4024fe20, 0x6816: 0x40250020, 0x6817: 0x40250220, - 0x6818: 0x40250420, 0x6819: 0x40250620, 0x681a: 0x40250820, 0x681b: 0x40250a20, - 0x681c: 0x40250c20, 0x681d: 0x40250e20, 0x681e: 0x40251020, 0x681f: 0x40251220, - 0x6820: 0x40251420, 0x6821: 0x40251620, 0x6822: 0x40251820, 0x6823: 0x40251a20, - 0x6824: 0x40251c20, 0x6825: 0x40251e20, 0x6826: 0x40252020, 0x6827: 0x40252220, - // Block 0x1a1, offset 0x6840 - 0x687b: 0x40252420, - 0x687c: 0x40252620, 0x687d: 0x40252820, 0x687e: 0x40252a20, 0x687f: 0x40252c20, - // Block 0x1a2, offset 0x6880 - 0x6880: 0x40252e20, 0x6881: 0x40253020, 0x6882: 0x40253220, 0x6883: 0x40253420, - 0x6884: 0x40253620, 0x6885: 0x40253820, 0x6886: 0x40253a20, 0x6887: 0x40253c20, - 0x6888: 0x40253e20, 0x6889: 0x40254020, 0x688a: 0x40254220, 0x688b: 0x40254420, - 0x688c: 0x40254620, 0x688d: 0x40254820, 0x688e: 0x40254a20, 0x688f: 0x40254c20, - 0x6890: 0x40254e20, 0x6891: 0x40255020, 0x6892: 0x40255220, 0x6893: 0x40255420, - 0x6894: 0x40255620, 0x6895: 0x40255820, 0x6896: 0x40255a20, 0x6897: 0x40255c20, - 0x6898: 0x40255e20, 0x6899: 0x40256020, 0x689a: 0x40256220, 0x689b: 0x40256420, - 0x689c: 0x40256620, 0x689d: 0x40256820, 0x689e: 0x40256a20, 0x689f: 0x40256c20, - 0x68a0: 0x40256e20, 0x68a1: 0x40257020, 0x68a2: 0x40257220, 0x68a3: 0x40257420, - 0x68a4: 0x40257620, 0x68a5: 0x40257820, 0x68a6: 0x40257a20, 0x68a7: 0x40257c20, - 0x68a8: 0x40257e20, 0x68a9: 0x40258020, 0x68aa: 0x40258220, 0x68ab: 0x40258420, - 0x68ac: 0x40258620, 0x68ad: 0x40258820, 0x68ae: 0x40258a20, 0x68af: 0x40258c20, - 0x68b0: 0x40258e20, 0x68b1: 0x40259020, 0x68b2: 0x40259220, 0x68b3: 0x40259420, - 0x68b4: 0x40259620, 0x68b5: 0x40259820, 0x68b6: 0x40259a20, 0x68b7: 0x40259c20, - 0x68b8: 0x40259e20, 0x68b9: 0x4025a020, 0x68ba: 0x4025a220, 0x68bb: 0x4025a420, - 0x68bc: 0x4025a620, 0x68bd: 0x4025a820, 0x68be: 0x4025aa20, 0x68bf: 0x4025ac20, - // Block 0x1a3, offset 0x68c0 - 0x68c0: 0x4025ae20, - 0x68c5: 0x4025b020, 0x68c6: 0x4025b220, 0x68c7: 0x4025b420, - 0x68c8: 0x4025b620, 0x68c9: 0x4025b820, 0x68ca: 0x4025ba20, 0x68cb: 0x4025bc20, - 0x68cc: 0x4025be20, 0x68cd: 0x4025c020, 0x68ce: 0x4025c220, 0x68cf: 0x4025c420, - // Block 0x1a4, offset 0x6900 - 0x6900: 0x4025c620, 0x6901: 0x4025c820, 0x6902: 0x4025ca20, 0x6903: 0x4025cc20, - 0x6904: 0x4025ce20, 0x6905: 0x4025d020, 0x6906: 0x4025d220, 0x6907: 0x4025d420, - 0x6908: 0x4025d620, 0x6909: 0x4025d820, 0x690a: 0x4025da20, 0x690b: 0x4025dc20, - 0x690c: 0x4025de20, 0x690d: 0x4025e020, 0x690e: 0x4025e220, 0x690f: 0x4025e420, - 0x6910: 0x4025e620, 0x6911: 0x4025e820, 0x6912: 0x4025ea20, 0x6913: 0x4025ec20, - 0x6914: 0x4025ee20, 0x6915: 0x4025f020, 0x6916: 0x4025f220, 0x6917: 0x4025f420, - 0x6918: 0x4025f620, 0x6919: 0x4025f820, 0x691a: 0x4025fa20, 0x691b: 0x4025fc20, - 0x691c: 0x4025fe20, 0x691d: 0x40260020, 0x691e: 0x40260220, 0x691f: 0x40260420, - 0x6920: 0x40260620, 0x6921: 0x40260820, 0x6922: 0x40260a20, 0x6923: 0x40260c20, - 0x6924: 0x40260e20, 0x6925: 0x40261020, 0x6926: 0x40261220, 0x6927: 0x40261420, - 0x6928: 0x40261620, 0x6929: 0x40261820, 0x692a: 0x40261a20, 0x692b: 0x40261c20, - 0x692c: 0x40261e20, 0x692d: 0x40262020, 0x692e: 0x40262220, 0x692f: 0x40262420, - 0x6930: 0x40262620, 0x6931: 0x40262820, 0x6932: 0x40262a20, 0x6933: 0x40262c20, - 0x6934: 0x40262e20, 0x6935: 0x40263020, 0x6936: 0x40263220, 0x6937: 0x40263420, - 0x6938: 0x40263620, 0x6939: 0x40263820, 0x693a: 0x40263a20, 0x693b: 0x40263c20, - 0x693c: 0x40263e20, 0x693d: 0x40264020, 0x693e: 0x40264220, 0x693f: 0x40264420, - // Block 0x1a5, offset 0x6940 - 0x6940: 0x40264620, 0x6941: 0x40264820, 0x6942: 0x40264a20, 0x6943: 0x40264c20, - 0x6944: 0x40264e20, 0x6945: 0x40265020, - // Block 0x1a6, offset 0x6980 - 0x6980: 0x40265220, 0x6981: 0x40265420, 0x6982: 0x40265620, 0x6983: 0x40265820, - 0x6984: 0x40265a20, 0x6985: 0x40265c20, 0x6986: 0x40265e20, 0x6987: 0x40266020, - 0x6988: 0x40266220, 0x6989: 0x40266420, 0x698a: 0x40266620, 0x698b: 0x40266820, - 0x698c: 0x40266a20, 0x698d: 0x40266c20, 0x698e: 0x40266e20, 0x698f: 0x40267020, - 0x6990: 0x40267220, 0x6991: 0x40267420, 0x6992: 0x40267620, 0x6993: 0x40267820, - 0x6994: 0x40267a20, 0x6995: 0x40267c20, 0x6996: 0x40267e20, 0x6997: 0x40268020, - 0x6998: 0x40268220, 0x6999: 0x40268420, 0x699a: 0x40268620, 0x699b: 0x40268820, - 0x699c: 0x40268a20, 0x699d: 0x40268c20, 0x699e: 0x40268e20, 0x699f: 0x40269020, - 0x69a0: 0x40269220, 0x69a1: 0x40269420, 0x69a2: 0x40269620, 0x69a3: 0x40269820, - 0x69a4: 0x40269a20, 0x69a5: 0x40269c20, 0x69a6: 0x40269e20, 0x69a7: 0x4026a020, - 0x69a8: 0x4026a220, 0x69a9: 0x4026a420, 0x69aa: 0x4026a620, 0x69ab: 0x4026a820, - 0x69ac: 0x4026aa20, 0x69ad: 0x4026ac20, 0x69ae: 0x4026ae20, 0x69af: 0x4026b020, - 0x69b0: 0x4026b220, 0x69b1: 0x4026b420, 0x69b2: 0x4026b620, 0x69b3: 0x4026b820, - 0x69b4: 0x4026ba20, 0x69b5: 0x4026bc20, 0x69b6: 0x4026be20, 0x69b7: 0x4026c020, - 0x69b8: 0x4026c220, 0x69b9: 0x4026c420, 0x69ba: 0x4026c620, 0x69bb: 0x4026c820, - 0x69bc: 0x4026ca20, 0x69bd: 0x4026cc20, 0x69be: 0x4026ce20, 0x69bf: 0x4026d020, - // Block 0x1a7, offset 0x69c0 - 0x69c0: 0x4026d220, 0x69c1: 0x4026d420, 0x69c2: 0x4026d620, 0x69c3: 0x4026d820, - 0x69c4: 0x4026da20, 0x69c5: 0x4026dc20, 0x69c6: 0x4026de20, 0x69c7: 0x4026e020, - 0x69c8: 0x4026e220, 0x69c9: 0x4026e420, 0x69ca: 0x4026e620, 0x69cb: 0x4026e820, - 0x69cc: 0x4026ea20, 0x69cd: 0x4026ec20, 0x69ce: 0x4026ee20, 0x69cf: 0x4026f020, - 0x69d0: 0x4026f220, 0x69d1: 0x4026f420, 0x69d2: 0x4026f620, 0x69d3: 0x4026f820, - 0x69d4: 0x4026fa20, 0x69d5: 0x4026fc20, 0x69d6: 0x4026fe20, 0x69d7: 0x40270020, - 0x69d8: 0x40270220, 0x69d9: 0x40270420, 0x69da: 0x40270620, 0x69db: 0x40270820, - 0x69dc: 0x40270a20, 0x69dd: 0x40270c20, 0x69de: 0x40270e20, 0x69df: 0x40271020, - 0x69e0: 0x40271220, 0x69e1: 0x40271420, 0x69e2: 0x40271620, 0x69e3: 0x40271820, - 0x69e4: 0x40271a20, 0x69e5: 0x40271c20, 0x69e6: 0x40271e20, 0x69e7: 0x40272020, - 0x69e8: 0x40272220, 0x69e9: 0x40272420, 0x69ea: 0x40272620, 0x69eb: 0x40272820, - 0x69ec: 0x40272a20, 0x69ed: 0x40272c20, 0x69ee: 0x40272e20, 0x69ef: 0x40273020, - 0x69f0: 0x40273220, 0x69f1: 0x40273420, 0x69f2: 0x40273620, 0x69f3: 0x40273820, - // Block 0x1a8, offset 0x6a00 - 0x6a00: 0x429c7a20, 0x6a01: 0x429c7020, 0x6a02: 0x429c8220, 0x6a03: 0x48024420, - 0x6a04: 0x429ec020, 0x6a05: 0x429f5c20, 0x6a06: 0x429f7620, 0x6a07: 0x42a00420, - 0x6a08: 0x42a0f420, 0x6a09: 0x42a13220, 0x6a0a: 0x42a1ce20, 0x6a0b: 0x42a19e20, - 0x6a0c: 0x44693c20, 0x6a0d: 0x480c7420, 0x6a0e: 0x42a29a20, 0x6a0f: 0x42a2a820, - 0x6a10: 0x42a2c820, 0x6a11: 0x42a2ee20, 0x6a12: 0x480a3820, 0x6a13: 0x44697220, - 0x6a14: 0x42a2ce20, 0x6a15: 0x42a31a20, 0x6a16: 0x480a9620, 0x6a17: 0x42a32e20, - 0x6a18: 0x42a34820, 0x6a19: 0x429d9820, 0x6a1a: 0x42a35820, 0x6a1b: 0x42a36a20, - 0x6a1c: 0x4923be20, 0x6a1d: 0x42a3ea20, 0x6a1e: 0x42a40620, 0x6a1f: 0x4469be20, - 0x6a20: 0x42a47620, 0x6a21: 0x42a48c20, 0x6a22: 0x42a4e420, 0x6a23: 0x42a4ee20, - 0x6a24: 0x446a2a20, 0x6a25: 0x42a58e20, 0x6a26: 0x42a59220, 0x6a27: 0x42a5c820, - 0x6a28: 0x42a5f420, 0x6a29: 0x42a60a20, 0x6a2a: 0x42a60c20, 0x6a2b: 0x42a62e20, - 0x6a2c: 0x42a69220, 0x6a2d: 0x42a6a220, 0x6a2e: 0x42a6b420, 0x6a2f: 0x42a6e620, - 0x6a30: 0x42a6fa20, 0x6a31: 0x42a6fe20, 0x6a32: 0x42a6fe20, 0x6a33: 0x42a6fe20, - 0x6a34: 0x48145820, 0x6a35: 0x42e0e020, 0x6a36: 0x42a79420, 0x6a37: 0x42a7be20, - 0x6a38: 0x4816c620, 0x6a39: 0x42a7d620, 0x6a3a: 0x42a7e220, 0x6a3b: 0x42a80c20, - 0x6a3c: 0x42a93c20, 0x6a3d: 0x42a87020, 0x6a3e: 0x42a89020, 0x6a3f: 0x42a8d020, - // Block 0x1a9, offset 0x6a40 - 0x6a40: 0x42a94420, 0x6a41: 0x42a9ec20, 0x6a42: 0x42aa2020, 0x6a43: 0x42aaa620, - 0x6a44: 0x42aac620, 0x6a45: 0x42ab0820, 0x6a46: 0x42ab0820, 0x6a47: 0x42ab3220, - 0x6a48: 0x42ab5620, 0x6a49: 0x42ab6620, 0x6a4a: 0x42ab8420, 0x6a4b: 0x42ae2c20, - 0x6a4c: 0x42ac0c20, 0x6a4d: 0x42ae2e20, 0x6a4e: 0x42aca220, 0x6a4f: 0x42ace820, - 0x6a50: 0x42a40e20, 0x6a51: 0x42b1dc20, 0x6a52: 0x42af9c20, 0x6a53: 0x42afe820, - 0x6a54: 0x42b01a20, 0x6a55: 0x42af1620, 0x6a56: 0x42b06420, 0x6a57: 0x42b06220, - 0x6a58: 0x42b15820, 0x6a59: 0x4829c820, 0x6a5a: 0x42b1e420, 0x6a5b: 0x42b1ee20, - 0x6a5c: 0x42b20c20, 0x6a5d: 0x42b23420, 0x6a5e: 0x42b24420, 0x6a5f: 0x42b2c420, - 0x6a60: 0x482d5020, 0x6a61: 0x482dd420, 0x6a62: 0x42b3d820, 0x6a63: 0x42b43620, - 0x6a64: 0x42b44e20, 0x6a65: 0x42b3b020, 0x6a66: 0x42b4cc20, 0x6a67: 0x446ddc20, - 0x6a68: 0x446df820, 0x6a69: 0x42b61020, 0x6a6a: 0x42b67c20, 0x6a6b: 0x42b67c20, - 0x6a6c: 0x48339020, 0x6a6d: 0x42b78620, 0x6a6e: 0x42b7b020, 0x6a6f: 0x42b7ce20, - 0x6a70: 0x42b7e620, 0x6a71: 0x48363020, 0x6a72: 0x42b7fe20, 0x6a73: 0x42b80c20, - 0x6a74: 0x42bea620, 0x6a75: 0x42b84420, 0x6a76: 0x446f0220, 0x6a77: 0x42b8c020, - 0x6a78: 0x42b8dc20, 0x6a79: 0x42b98020, 0x6a7a: 0x42b91a20, 0x6a7b: 0x483bc820, - 0x6a7c: 0x42ba8620, 0x6a7d: 0x483bcc20, 0x6a7e: 0x42badc20, 0x6a7f: 0x42bad620, - // Block 0x1aa, offset 0x6a80 - 0x6a80: 0x42baf820, 0x6a81: 0x42bbc220, 0x6a82: 0x42bbc420, 0x6a83: 0x44705e20, - 0x6a84: 0x42bbfa20, 0x6a85: 0x42bc5020, 0x6a86: 0x42bc7a20, 0x6a87: 0x42bcd220, - 0x6a88: 0x4470c420, 0x6a89: 0x48430620, 0x6a8a: 0x4470f820, 0x6a8b: 0x42bd6020, - 0x6a8c: 0x42bd6620, 0x6a8d: 0x42bd6c20, 0x6a8e: 0x42bd9420, 0x6a8f: 0x49472420, - 0x6a90: 0x42bdfc20, 0x6a91: 0x48466220, 0x6a92: 0x48466220, 0x6a93: 0x43040220, - 0x6a94: 0x42be4420, 0x6a95: 0x42be4420, 0x6a96: 0x44718e20, 0x6a97: 0x48657020, - 0x6a98: 0x48c3b420, 0x6a99: 0x42bec420, 0x6a9a: 0x42bed620, 0x6a9b: 0x4471c620, - 0x6a9c: 0x42bf3420, 0x6a9d: 0x42bf9a20, 0x6a9e: 0x42bfae20, 0x6a9f: 0x42bff220, - 0x6aa0: 0x42c10220, 0x6aa1: 0x44727420, 0x6aa2: 0x44723820, 0x6aa3: 0x42c12820, - 0x6aa4: 0x484da820, 0x6aa5: 0x42c18e20, 0x6aa6: 0x42c29020, 0x6aa7: 0x42c29820, - 0x6aa8: 0x42c29c20, 0x6aa9: 0x42c29820, 0x6aaa: 0x42c2f420, 0x6aab: 0x42c31c20, - 0x6aac: 0x42c36420, 0x6aad: 0x42c34820, 0x6aae: 0x42c35e20, 0x6aaf: 0x42c3bc20, - 0x6ab0: 0x42c3e420, 0x6ab1: 0x42c3ec20, 0x6ab2: 0x42c42020, 0x6ab3: 0x42c43620, - 0x6ab4: 0x42c4ba20, 0x6ab5: 0x42c56220, 0x6ab6: 0x42c5a820, 0x6ab7: 0x42c6a020, - 0x6ab8: 0x48561820, 0x6ab9: 0x42c67a20, 0x6aba: 0x42c5f820, 0x6abb: 0x42c6d020, - 0x6abc: 0x42c70620, 0x6abd: 0x42c7c820, 0x6abe: 0x4857e220, 0x6abf: 0x42c84420, - // Block 0x1ab, offset 0x6ac0 - 0x6ac0: 0x42c78a20, 0x6ac1: 0x42c75220, 0x6ac2: 0x44745c20, 0x6ac3: 0x42c8d220, - 0x6ac4: 0x42c8fc20, 0x6ac5: 0x42c93a20, 0x6ac6: 0x42c8ee20, 0x6ac7: 0x4474d820, - 0x6ac8: 0x42ca9e20, 0x6ac9: 0x42cad820, 0x6aca: 0x48601420, 0x6acb: 0x42cbc620, - 0x6acc: 0x42cdf020, 0x6acd: 0x42cc9220, 0x6ace: 0x44763220, 0x6acf: 0x42cd2220, - 0x6ad0: 0x44761020, 0x6ad1: 0x4475c820, 0x6ad2: 0x42a32420, 0x6ad3: 0x42a32a20, - 0x6ad4: 0x42ce0020, 0x6ad5: 0x42cd3820, 0x6ad6: 0x43015a20, 0x6ad7: 0x4487b220, - 0x6ad8: 0x42ce2e20, 0x6ad9: 0x42ce3620, 0x6ada: 0x42ce4220, 0x6adb: 0x42cebc20, - 0x6adc: 0x42cea620, 0x6add: 0x48678620, 0x6ade: 0x44769220, 0x6adf: 0x42cff420, - 0x6ae0: 0x42cf0a20, 0x6ae1: 0x42d0a420, 0x6ae2: 0x42d10a20, 0x6ae3: 0x4868da20, - 0x6ae4: 0x42d11c20, 0x6ae5: 0x42d03e20, 0x6ae6: 0x42d22820, 0x6ae7: 0x44773a20, - 0x6ae8: 0x42d28420, 0x6ae9: 0x42d34620, 0x6aea: 0x42d3d420, 0x6aeb: 0x42d55020, - 0x6aec: 0x486d4620, 0x6aed: 0x42d5b620, 0x6aee: 0x44783020, 0x6aef: 0x42d64220, - 0x6af0: 0x48714e20, 0x6af1: 0x42d6a820, 0x6af2: 0x44789c20, 0x6af3: 0x42d6e420, - 0x6af4: 0x42d73e20, 0x6af5: 0x42d77420, 0x6af6: 0x42d77620, 0x6af7: 0x48751a20, - 0x6af8: 0x483a1620, 0x6af9: 0x4875f420, 0x6afa: 0x42d89c20, 0x6afb: 0x48797820, - 0x6afc: 0x42d97e20, 0x6afd: 0x42d99a20, 0x6afe: 0x42d8ce20, 0x6aff: 0x42da2c20, - // Block 0x1ac, offset 0x6b00 - 0x6b00: 0x42da7c20, 0x6b01: 0x42daee20, 0x6b02: 0x42da8220, 0x6b03: 0x42dad220, - 0x6b04: 0x42daf020, 0x6b05: 0x42db0a20, 0x6b06: 0x487a3c20, 0x6b07: 0x42da6820, - 0x6b08: 0x42dc5e20, 0x6b09: 0x42dcdc20, 0x6b0a: 0x447a6620, 0x6b0b: 0x42dd9620, - 0x6b0c: 0x42dd8e20, 0x6b0d: 0x487da220, 0x6b0e: 0x42dbf220, 0x6b0f: 0x42dedc20, - 0x6b10: 0x487ebc20, 0x6b11: 0x487f1c20, 0x6b12: 0x42df8c20, 0x6b13: 0x42e07220, - 0x6b14: 0x42e03c20, 0x6b15: 0x42e03620, 0x6b16: 0x447b2c20, 0x6b17: 0x42e09420, - 0x6b18: 0x42e0fa20, 0x6b19: 0x42e0ee20, 0x6b1a: 0x42e15a20, 0x6b1b: 0x480a4a20, - 0x6b1c: 0x42e28a20, 0x6b1d: 0x4884c620, 0x6b1e: 0x42e33820, 0x6b1f: 0x48875620, - 0x6b20: 0x42e45020, 0x6b21: 0x42e46a20, 0x6b22: 0x42e4a020, 0x6b23: 0x488c1020, - 0x6b24: 0x42e50020, 0x6b25: 0x42e52a20, 0x6b26: 0x488e6a20, 0x6b27: 0x48902820, - 0x6b28: 0x42e6f420, 0x6b29: 0x42e71620, 0x6b2a: 0x447d5820, 0x6b2b: 0x42e74a20, - 0x6b2c: 0x447d7020, 0x6b2d: 0x447d7020, 0x6b2e: 0x42e88e20, 0x6b2f: 0x42e8b820, - 0x6b30: 0x42e8e220, 0x6b31: 0x42e90a20, 0x6b32: 0x42e99420, 0x6b33: 0x447e3620, - 0x6b34: 0x42ea4820, 0x6b35: 0x48986c20, 0x6b36: 0x42ea7c20, 0x6b37: 0x48992420, - 0x6b38: 0x42eae020, 0x6b39: 0x48433e20, 0x6b3a: 0x42ec2020, 0x6b3b: 0x489f4220, - 0x6b3c: 0x489f7020, 0x6b3d: 0x48a08820, 0x6b3e: 0x447ff820, 0x6b3f: 0x44801020, - // Block 0x1ad, offset 0x6b40 - 0x6b40: 0x42ede820, 0x6b41: 0x48a1e620, 0x6b42: 0x48a1e420, 0x6b43: 0x48a23220, - 0x6b44: 0x48a26620, 0x6b45: 0x42ee3c20, 0x6b46: 0x42ee3e20, 0x6b47: 0x42ee3e20, - 0x6b48: 0x42ee9420, 0x6b49: 0x44807220, 0x6b4a: 0x42ef1620, 0x6b4b: 0x44808c20, - 0x6b4c: 0x44812c20, 0x6b4d: 0x48a83a20, 0x6b4e: 0x42f09c20, 0x6b4f: 0x42f11820, - 0x6b50: 0x42f19820, 0x6b51: 0x4481c620, 0x6b52: 0x48ac4c20, 0x6b53: 0x42f2ac20, - 0x6b54: 0x48ad3420, 0x6b55: 0x48ad8a20, 0x6b56: 0x42f31e20, 0x6b57: 0x42f3d620, - 0x6b58: 0x44825e20, 0x6b59: 0x42f48020, 0x6b5a: 0x42f49420, 0x6b5b: 0x42f49e20, - 0x6b5c: 0x48b2f820, 0x6b5d: 0x48b54e20, 0x6b5e: 0x48b54e20, 0x6b5f: 0x42f5dc20, - 0x6b60: 0x44840420, 0x6b61: 0x48b75620, 0x6b62: 0x42f78c20, 0x6b63: 0x42f79220, - 0x6b64: 0x44844e20, 0x6b65: 0x48b90020, 0x6b66: 0x42f9a420, 0x6b67: 0x44854020, - 0x6b68: 0x42f9d020, 0x6b69: 0x42f9c620, 0x6b6a: 0x42fa0020, 0x6b6b: 0x48bf0c20, - 0x6b6c: 0x42fac620, 0x6b6d: 0x44860220, 0x6b6e: 0x42fb8e20, 0x6b6f: 0x42fc0420, - 0x6b70: 0x42fc8a20, 0x6b71: 0x44866820, 0x6b72: 0x48c45020, 0x6b73: 0x48c48e20, - 0x6b74: 0x4486b220, 0x6b75: 0x48c5b220, 0x6b76: 0x42fef420, 0x6b77: 0x48c67c20, - 0x6b78: 0x42ff2a20, 0x6b79: 0x42fff420, 0x6b7a: 0x43000a20, 0x6b7b: 0x48c9b420, - 0x6b7c: 0x48ca4620, 0x6b7d: 0x4300c020, 0x6b7e: 0x48cb5020, 0x6b7f: 0x4300e020, - // Block 0x1ae, offset 0x6b80 - 0x6b80: 0x4866be20, 0x6b81: 0x4487aa20, 0x6b82: 0x43016420, 0x6b83: 0x43020620, - 0x6b84: 0x44881620, 0x6b85: 0x43027c20, 0x6b86: 0x42b56a20, 0x6b87: 0x48cf4e20, - 0x6b88: 0x48cf6a20, 0x6b89: 0x48672620, 0x6b8a: 0x48673820, 0x6b8b: 0x43040220, - 0x6b8c: 0x43040820, 0x6b8d: 0x431f3c20, 0x6b8e: 0x4488d620, 0x6b8f: 0x43052220, - 0x6b90: 0x43051620, 0x6b91: 0x43053a20, 0x6b92: 0x42a56620, 0x6b93: 0x43056220, - 0x6b94: 0x43056620, 0x6b95: 0x43057a20, 0x6b96: 0x4305cc20, 0x6b97: 0x48d67820, - 0x6b98: 0x4305ca20, 0x6b99: 0x43063a20, 0x6b9a: 0x4306c620, 0x6b9b: 0x43075a20, - 0x6b9c: 0x43064620, 0x6b9d: 0x43077a20, 0x6b9e: 0x4307ce20, 0x6b9f: 0x4308ae20, - 0x6ba0: 0x4306a620, 0x6ba1: 0x43079420, 0x6ba2: 0x43079820, 0x6ba3: 0x4307b820, - 0x6ba4: 0x48d86c20, 0x6ba5: 0x48dad620, 0x6ba6: 0x48d9aa20, 0x6ba7: 0x448a5620, - 0x6ba8: 0x4309e220, 0x6ba9: 0x4309e620, 0x6baa: 0x430a2c20, 0x6bab: 0x48e79420, - 0x6bac: 0x430ac820, 0x6bad: 0x48de5820, 0x6bae: 0x448aba20, 0x6baf: 0x448ac220, - 0x6bb0: 0x48df6220, 0x6bb1: 0x48e1a420, 0x6bb2: 0x448ad620, 0x6bb3: 0x430ca020, - 0x6bb4: 0x430cb820, 0x6bb5: 0x430cce20, 0x6bb6: 0x430cd220, 0x6bb7: 0x430d5220, - 0x6bb8: 0x430d1020, 0x6bb9: 0x430e1c20, 0x6bba: 0x430dc420, 0x6bbb: 0x430ef220, - 0x6bbc: 0x430e5020, 0x6bbd: 0x430ed620, 0x6bbe: 0x430f0c20, 0x6bbf: 0x448bae20, - // Block 0x1af, offset 0x6bc0 - 0x6bc0: 0x430fc220, 0x6bc1: 0x43100220, 0x6bc2: 0x448bf220, 0x6bc3: 0x4310c020, - 0x6bc4: 0x4310c620, 0x6bc5: 0x48ecce20, 0x6bc6: 0x4311ae20, 0x6bc7: 0x4311bc20, - 0x6bc8: 0x448c6a20, 0x6bc9: 0x4311f420, 0x6bca: 0x44697620, 0x6bcb: 0x48f15c20, - 0x6bcc: 0x48f2cc20, 0x6bcd: 0x448d7c20, 0x6bce: 0x448d8e20, 0x6bcf: 0x43154020, - 0x6bd0: 0x4315da20, 0x6bd1: 0x43171420, 0x6bd2: 0x4318aa20, 0x6bd3: 0x48f95020, - 0x6bd4: 0x43195620, 0x6bd5: 0x43198220, 0x6bd6: 0x431a3620, 0x6bd7: 0x431aee20, - 0x6bd8: 0x48fe5e20, 0x6bd9: 0x48100820, 0x6bda: 0x431b9620, 0x6bdb: 0x431b7820, - 0x6bdc: 0x431be020, 0x6bdd: 0x4811bc20, 0x6bde: 0x431da820, 0x6bdf: 0x431e7020, - 0x6be0: 0x490ba420, 0x6be1: 0x490bda20, 0x6be2: 0x43212820, 0x6be3: 0x4321e220, - 0x6be4: 0x43222220, 0x6be5: 0x490e5c20, 0x6be6: 0x43223620, 0x6be7: 0x43247020, - 0x6be8: 0x4325ae20, 0x6be9: 0x4325b020, 0x6bea: 0x4324f820, 0x6beb: 0x4327f220, - 0x6bec: 0x43282a20, 0x6bed: 0x4917f420, 0x6bee: 0x432b1620, 0x6bef: 0x44932a20, - 0x6bf0: 0x432b6e20, 0x6bf1: 0x491aee20, 0x6bf2: 0x4493cc20, 0x6bf3: 0x432d8620, - 0x6bf4: 0x42bb6420, 0x6bf5: 0x432e4620, 0x6bf6: 0x49228a20, 0x6bf7: 0x49243420, - 0x6bf8: 0x4494dc20, 0x6bf9: 0x4494ec20, 0x6bfa: 0x432fc020, 0x6bfb: 0x49281420, - 0x6bfc: 0x44956420, 0x6bfd: 0x49292c20, 0x6bfe: 0x43301620, 0x6bff: 0x43301620, - // Block 0x1b0, offset 0x6c00 - 0x6c00: 0x43305220, 0x6c01: 0x492b6c20, 0x6c02: 0x4331c420, 0x6c03: 0x44966620, - 0x6c04: 0x43325220, 0x6c05: 0x43334e20, 0x6c06: 0x43338420, 0x6c07: 0x4333fc20, - 0x6c08: 0x44979c20, 0x6c09: 0x49366020, 0x6c0a: 0x43362420, 0x6c0b: 0x43388020, - 0x6c0c: 0x4339fa20, 0x6c0d: 0x44999c20, 0x6c0e: 0x4499da20, 0x6c0f: 0x433ace20, - 0x6c10: 0x49419c20, 0x6c11: 0x4499f020, 0x6c12: 0x49420a20, 0x6c13: 0x49441c20, - 0x6c14: 0x49452220, 0x6c15: 0x433d7620, 0x6c16: 0x449aac20, 0x6c17: 0x433df220, - 0x6c18: 0x433dfc20, 0x6c19: 0x433e0a20, 0x6c1a: 0x433e1e20, 0x6c1b: 0x433e2c20, - 0x6c1c: 0x433e7620, 0x6c1d: 0x494c0020, - // Block 0x1b1, offset 0x6c40 - 0x6c41: 0xa0000000, - 0x6c60: 0xa0000000, 0x6c61: 0xa0000000, 0x6c62: 0xa0000000, 0x6c63: 0xa0000000, - 0x6c64: 0xa0000000, 0x6c65: 0xa0000000, 0x6c66: 0xa0000000, 0x6c67: 0xa0000000, - 0x6c68: 0xa0000000, 0x6c69: 0xa0000000, 0x6c6a: 0xa0000000, 0x6c6b: 0xa0000000, - 0x6c6c: 0xa0000000, 0x6c6d: 0xa0000000, 0x6c6e: 0xa0000000, 0x6c6f: 0xa0000000, - 0x6c70: 0xa0000000, 0x6c71: 0xa0000000, 0x6c72: 0xa0000000, 0x6c73: 0xa0000000, - 0x6c74: 0xa0000000, 0x6c75: 0xa0000000, 0x6c76: 0xa0000000, 0x6c77: 0xa0000000, - 0x6c78: 0xa0000000, 0x6c79: 0xa0000000, 0x6c7a: 0xa0000000, 0x6c7b: 0xa0000000, - 0x6c7c: 0xa0000000, 0x6c7d: 0xa0000000, 0x6c7e: 0xa0000000, 0x6c7f: 0xa0000000, - // Block 0x1b2, offset 0x6c80 - 0x6c80: 0xa0000000, 0x6c81: 0xa0000000, 0x6c82: 0xa0000000, 0x6c83: 0xa0000000, - 0x6c84: 0xa0000000, 0x6c85: 0xa0000000, 0x6c86: 0xa0000000, 0x6c87: 0xa0000000, - 0x6c88: 0xa0000000, 0x6c89: 0xa0000000, 0x6c8a: 0xa0000000, 0x6c8b: 0xa0000000, - 0x6c8c: 0xa0000000, 0x6c8d: 0xa0000000, 0x6c8e: 0xa0000000, 0x6c8f: 0xa0000000, - 0x6c90: 0xa0000000, 0x6c91: 0xa0000000, 0x6c92: 0xa0000000, 0x6c93: 0xa0000000, - 0x6c94: 0xa0000000, 0x6c95: 0xa0000000, 0x6c96: 0xa0000000, 0x6c97: 0xa0000000, - 0x6c98: 0xa0000000, 0x6c99: 0xa0000000, 0x6c9a: 0xa0000000, 0x6c9b: 0xa0000000, - 0x6c9c: 0xa0000000, 0x6c9d: 0xa0000000, 0x6c9e: 0xa0000000, 0x6c9f: 0xa0000000, - 0x6ca0: 0xa0000000, 0x6ca1: 0xa0000000, 0x6ca2: 0xa0000000, 0x6ca3: 0xa0000000, - 0x6ca4: 0xa0000000, 0x6ca5: 0xa0000000, 0x6ca6: 0xa0000000, 0x6ca7: 0xa0000000, - 0x6ca8: 0xa0000000, 0x6ca9: 0xa0000000, 0x6caa: 0xa0000000, 0x6cab: 0xa0000000, - 0x6cac: 0xa0000000, 0x6cad: 0xa0000000, 0x6cae: 0xa0000000, 0x6caf: 0xa0000000, - 0x6cb0: 0xa0000000, 0x6cb1: 0xa0000000, 0x6cb2: 0xa0000000, 0x6cb3: 0xa0000000, - 0x6cb4: 0xa0000000, 0x6cb5: 0xa0000000, 0x6cb6: 0xa0000000, 0x6cb7: 0xa0000000, - 0x6cb8: 0xa0000000, 0x6cb9: 0xa0000000, 0x6cba: 0xa0000000, 0x6cbb: 0xa0000000, - 0x6cbc: 0xa0000000, 0x6cbd: 0xa0000000, 0x6cbe: 0xa0000000, 0x6cbf: 0xa0000000, - // Block 0x1b3, offset 0x6cc0 - 0x6cc0: 0xa0000000, 0x6cc1: 0xa0000000, 0x6cc2: 0xa0000000, 0x6cc3: 0xa0000000, - 0x6cc4: 0xa0000000, 0x6cc5: 0xa0000000, 0x6cc6: 0xa0000000, 0x6cc7: 0xa0000000, - 0x6cc8: 0xa0000000, 0x6cc9: 0xa0000000, 0x6cca: 0xa0000000, 0x6ccb: 0xa0000000, - 0x6ccc: 0xa0000000, 0x6ccd: 0xa0000000, 0x6cce: 0xa0000000, 0x6ccf: 0xa0000000, - 0x6cd0: 0xa0000000, 0x6cd1: 0xa0000000, 0x6cd2: 0xa0000000, 0x6cd3: 0xa0000000, - 0x6cd4: 0xa0000000, 0x6cd5: 0xa0000000, 0x6cd6: 0xa0000000, 0x6cd7: 0xa0000000, - 0x6cd8: 0xa0000000, 0x6cd9: 0xa0000000, 0x6cda: 0xa0000000, 0x6cdb: 0xa0000000, - 0x6cdc: 0xa0000000, 0x6cdd: 0xa0000000, 0x6cde: 0xa0000000, 0x6cdf: 0xa0000000, - 0x6ce0: 0xa0000000, 0x6ce1: 0xa0000000, 0x6ce2: 0xa0000000, 0x6ce3: 0xa0000000, - 0x6ce4: 0xa0000000, 0x6ce5: 0xa0000000, 0x6ce6: 0xa0000000, 0x6ce7: 0xa0000000, - 0x6ce8: 0xa0000000, 0x6ce9: 0xa0000000, 0x6cea: 0xa0000000, 0x6ceb: 0xa0000000, - 0x6cec: 0xa0000000, 0x6ced: 0xa0000000, 0x6cee: 0xa0000000, 0x6cef: 0xa0000000, - // Block 0x1b4, offset 0x6d00 - 0x6d00: 0xa0000000, 0x6d01: 0xa0000000, 0x6d02: 0xa0000000, 0x6d03: 0xa0000000, - 0x6d04: 0xa0000000, 0x6d05: 0xa0000000, 0x6d06: 0xa0000000, 0x6d07: 0xa0000000, - 0x6d08: 0xa0000000, 0x6d09: 0x40020020, 0x6d0a: 0x40020220, 0x6d0b: 0x40020420, - 0x6d0c: 0x40020620, 0x6d0d: 0x40020820, 0x6d0e: 0xa0000000, 0x6d0f: 0xa0000000, - 0x6d10: 0xa0000000, 0x6d11: 0xa0000000, 0x6d12: 0xa0000000, 0x6d13: 0xa0000000, - 0x6d14: 0xa0000000, 0x6d15: 0xa0000000, 0x6d16: 0xa0000000, 0x6d17: 0xa0000000, - 0x6d18: 0xa0000000, 0x6d19: 0xa0000000, 0x6d1a: 0xa0000000, 0x6d1b: 0xa0000000, - 0x6d1c: 0xa0000000, 0x6d1d: 0xa0000000, 0x6d1e: 0xa0000000, 0x6d1f: 0xa0000000, - 0x6d20: 0x40021220, 0x6d21: 0x4002ba20, 0x6d22: 0x4003e020, 0x6d23: 0x4004ea20, - 0x6d24: 0x4027de20, 0x6d25: 0x4004ec20, 0x6d26: 0x4004e620, 0x6d27: 0x4003d220, - 0x6d28: 0x4003f420, 0x6d29: 0x4003f620, 0x6d2a: 0x4004d820, 0x6d2b: 0x40093820, - 0x6d2c: 0x40024020, 0x6d2d: 0x40021a20, 0x6d2e: 0x4002e420, 0x6d2f: 0x4004e220, - 0x6d30: 0x4029cc20, 0x6d31: 0x4029ce20, 0x6d32: 0x4029d020, 0x6d33: 0x4029d220, - 0x6d34: 0x4029d420, 0x6d35: 0x4029d620, 0x6d36: 0x4029d820, 0x6d37: 0x4029da20, - 0x6d38: 0x4029dc20, 0x6d39: 0x4029de20, 0x6d3a: 0x40026c20, 0x6d3b: 0x40026220, - 0x6d3c: 0x40094020, 0x6d3d: 0xc32f0851, 0x6d3e: 0x40094420, 0x6d3f: 0x4002c420, - // Block 0x1b5, offset 0x6d40 - 0x6d40: 0x4004d620, 0x6d41: 0x002bde88, 0x6d42: 0x002c0a88, 0x6d43: 0xc3330871, - 0x6d44: 0x002c6288, 0x6d45: 0x002c9888, 0x6d46: 0x002d0888, 0x6d47: 0xc33700d1, - 0x6d48: 0x002d6888, 0x6d49: 0xc3390891, 0x6d4a: 0x002dcc88, 0x6d4b: 0x002dfe88, - 0x6d4c: 0xc0030002, 0x6d4d: 0x002e8288, 0x6d4e: 0x002e9e88, 0x6d4f: 0xc33d0071, - 0x6d50: 0x002f2c88, 0x6d51: 0x002e0083, 0x6d52: 0x002f7a88, 0x6d53: 0xc3410871, - 0x6d54: 0x00302c88, 0x6d55: 0xc3450071, 0x6d56: 0x0030be88, 0x6d57: 0x0030e288, - 0x6d58: 0x002d6a83, 0x6d59: 0x00310088, 0x6d5a: 0x00312a88, 0x6d5b: 0x4003f820, - 0x6d5c: 0x4004e420, 0x6d5d: 0x4003fa20, 0x6d5e: 0x40062420, 0x6d5f: 0x40021620, - 0x6d60: 0x40061e20, 0x6d61: 0x402bde20, 0x6d62: 0x402c0a20, 0x6d63: 0xc3310871, - 0x6d64: 0x402c6220, 0x6d65: 0x402c9820, 0x6d66: 0x402d0820, 0x6d67: 0xc33500d1, - 0x6d68: 0x402d6820, 0x6d69: 0x402d9a20, 0x6d6a: 0x402dcc20, 0x6d6b: 0x402dfe20, - 0x6d6c: 0xc0000002, 0x6d6d: 0x402e8220, 0x6d6e: 0x402e9e20, 0x6d6f: 0xc33b0071, - 0x6d70: 0x402f2c20, 0x6d71: 0x402e0020, 0x6d72: 0x402f7a20, 0x6d73: 0xc33f0871, - 0x6d74: 0x40302c20, 0x6d75: 0xc3430071, 0x6d76: 0x4030be20, 0x6d77: 0x4030e220, - 0x6d78: 0x402d6a20, 0x6d79: 0x40310020, 0x6d7a: 0x40312a20, 0x6d7b: 0x4003fc20, - 0x6d7c: 0x40094820, 0x6d7d: 0x4003fe20, 0x6d7e: 0x40094c20, 0x6d7f: 0xa0000000, - // Block 0x1b6, offset 0x6d80 - 0x6d80: 0xe00008f5, 0x6d81: 0xe00008ef, 0x6d82: 0xe0000921, 0x6d83: 0xe0000969, - 0x6d84: 0xe000095b, 0x6d85: 0xe000094d, 0x6d86: 0xe00009dd, 0x6d87: 0x002c3c83, - 0x6d88: 0xe0000ae8, 0x6d89: 0xe0000ae2, 0x6d8a: 0xe0000af4, 0x6d8b: 0xe0000b20, - 0x6d8c: 0xe00024d4, 0x6d8d: 0xe00024d1, 0x6d8e: 0xe00024da, 0x6d8f: 0xe00024e0, - 0x6d90: 0xe0000ab3, 0x6d91: 0xe0000d63, 0x6d92: 0xe0000d9a, 0x6d93: 0xe0000d94, - 0x6d94: 0xe0000da6, 0x6d95: 0xe0000de6, 0x6d96: 0x002ee483, 0x6d97: 0x40093e20, - 0x6d98: 0xe0000e12, 0x6d99: 0xe0000fe1, 0x6d9a: 0xe0000fdb, 0x6d9b: 0xe0000fed, - 0x6d9c: 0x00306e83, 0x6d9d: 0xe0001102, 0x6d9e: 0x00318888, 0x6d9f: 0xe0000f7b, - 0x6da0: 0xe00008f2, 0x6da1: 0xe00008ec, 0x6da2: 0xe000091e, 0x6da3: 0xe0000966, - 0x6da4: 0xe0000958, 0x6da5: 0xe000094a, 0x6da6: 0xe00009d5, 0x6da7: 0x402c3c20, - 0x6da8: 0xe0000ae5, 0x6da9: 0xe0000adf, 0x6daa: 0xe0000af1, 0x6dab: 0xe0000b1d, - 0x6dac: 0xe0000c28, 0x6dad: 0xe0000c22, 0x6dae: 0xe0000c34, 0x6daf: 0xe0000c40, - 0x6db0: 0xe0000aad, 0x6db1: 0xe0000d60, 0x6db2: 0xe0000d97, 0x6db3: 0xe0000d91, - 0x6db4: 0xe0000da3, 0x6db5: 0xe0000de3, 0x6db6: 0x402ee420, 0x6db7: 0x40093c20, - 0x6db8: 0xe0000e0f, 0x6db9: 0xe0000fde, 0x6dba: 0xe0000fd8, 0x6dbb: 0xe0000fea, - 0x6dbc: 0x40306e20, 0x6dbd: 0xe00010ff, 0x6dbe: 0x40318820, 0x6dbf: 0xe0001114, - // Block 0x1b7, offset 0x6dc0 - 0x6dc0: 0xe0000983, 0x6dc1: 0xe0000980, 0x6dc2: 0xe00008fb, 0x6dc3: 0xe00008f8, - 0x6dc4: 0xe000097d, 0x6dc5: 0xe000097a, 0x6dc6: 0xe0000a38, 0x6dc7: 0xe0000a35, - 0x6dc8: 0xe0000a3e, 0x6dc9: 0xe0000a3b, 0x6dca: 0xe0000a4a, 0x6dcb: 0xe0000a47, - 0x6dcc: 0xe0000a44, 0x6dcd: 0xe0000a41, 0x6dce: 0xe0000a86, 0x6dcf: 0xe0000a83, - 0x6dd0: 0xe0000aaa, 0x6dd1: 0xe0000aa7, 0x6dd2: 0xe0000b46, 0x6dd3: 0xe0000b43, - 0x6dd4: 0xe0000aee, 0x6dd5: 0xe0000aeb, 0x6dd6: 0xe0000b2c, 0x6dd7: 0xe0000b29, - 0x6dd8: 0xe0000b40, 0x6dd9: 0xe0000b3d, 0x6dda: 0xe0000b1a, 0x6ddb: 0xe0000b17, - 0x6ddc: 0xe0000bb8, 0x6ddd: 0xe0000bb5, 0x6dde: 0x002d2483, 0x6ddf: 0x402d2420, - 0x6de0: 0xe0000bc4, 0x6de1: 0xe0000bc1, 0x6de2: 0xe0000bca, 0x6de3: 0xe0000bc7, - 0x6de4: 0xe0000bee, 0x6de5: 0xe0000beb, 0x6de6: 0xe0000c1b, 0x6de7: 0xe0000c18, - 0x6de8: 0xe00024e7, 0x6de9: 0xe0000c4e, 0x6dea: 0xe00024ed, 0x6deb: 0xe0000c5d, - 0x6dec: 0xe00024d7, 0x6ded: 0xe0000c2e, 0x6dee: 0xe00024ea, 0x6def: 0xe0000c57, - 0x6df0: 0x002d9a83, 0x6df1: 0x402d9820, 0x6df2: 0xe0002506, 0x6df3: 0xf0000404, - 0x6df4: 0xe0000c8a, 0x6df5: 0xe0000c87, 0x6df6: 0xe0000c9f, 0x6df7: 0xe0000c9c, - 0x6df8: 0x402f7220, 0x6df9: 0xe0000ccc, 0x6dfa: 0xe0000cc9, 0x6dfb: 0xe0000cd8, - 0x6dfc: 0xe0000cd5, 0x6dfd: 0xe0000cd2, 0x6dfe: 0xe0000ccf, 0x6dff: 0xe0000d04, - // Block 0x1b8, offset 0x6e00 - 0x6e00: 0xe0000cfe, 0x6e01: 0xe0000cf8, 0x6e02: 0xe0000cf5, 0x6e03: 0xe0000d51, - 0x6e04: 0xe0000d4e, 0x6e05: 0xe0000d6f, 0x6e06: 0xe0000d6c, 0x6e07: 0xe0000d5d, - 0x6e08: 0xe0000d5a, 0x6e09: 0xf0000404, 0x6e0a: 0x002eda88, 0x6e0b: 0x402eda20, - 0x6e0c: 0xe0000e2e, 0x6e0d: 0xe0000e2b, 0x6e0e: 0xe0000da0, 0x6e0f: 0xe0000d9d, - 0x6e10: 0xe0000de0, 0x6e11: 0xe0000ddd, 0x6e12: 0xe0000e93, 0x6e13: 0xe0000e8f, - 0x6e14: 0xe0000eca, 0x6e15: 0xe0000ec7, 0x6e16: 0xe0000edc, 0x6e17: 0xe0000ed9, - 0x6e18: 0xe0000ed0, 0x6e19: 0xe0000ecd, 0x6e1a: 0xe0000f1f, 0x6e1b: 0xe0000f1c, - 0x6e1c: 0xe0000f2d, 0x6e1d: 0xe0000f2a, 0x6e1e: 0x002fe883, 0x6e1f: 0x402fe820, - 0x6e20: 0xe0000f33, 0x6e21: 0xe0000f30, 0x6e22: 0xe0000f99, 0x6e23: 0xe0000f96, - 0x6e24: 0xe0000f8a, 0x6e25: 0xe0000f87, 0x6e26: 0x00303688, 0x6e27: 0x40303620, - 0x6e28: 0xe000102b, 0x6e29: 0xe0001028, 0x6e2a: 0xe000103f, 0x6e2b: 0xe000103c, - 0x6e2c: 0xe0000fe7, 0x6e2d: 0xe0000fe4, 0x6e2e: 0xe0000ff9, 0x6e2f: 0xe0000ff6, - 0x6e30: 0xe0001025, 0x6e31: 0xe0001022, 0x6e32: 0xe0001039, 0x6e33: 0xe0001036, - 0x6e34: 0xe00010d8, 0x6e35: 0xe00010d5, 0x6e36: 0xe000110e, 0x6e37: 0xe000110b, - 0x6e38: 0xe0001117, 0x6e39: 0xe000113b, 0x6e3a: 0xe0001138, 0x6e3b: 0xe000114d, - 0x6e3c: 0xe000114a, 0x6e3d: 0xe0001147, 0x6e3e: 0xe0001144, 0x6e3f: 0xe0000f64, - // Block 0x1b9, offset 0x6e40 - 0x6e40: 0x402c1a20, 0x6e41: 0x002c2a88, 0x6e42: 0x002c3288, 0x6e43: 0x402c3220, - 0x6e44: 0x0031c488, 0x6e45: 0x4031c420, 0x6e46: 0x002efa88, 0x6e47: 0x002c4e88, - 0x6e48: 0x402c4e20, 0x6e49: 0x002c7288, 0x6e4a: 0x002c7a88, 0x6e4b: 0x002c8488, - 0x6e4c: 0x402c8420, 0x6e4d: 0xe000115c, 0x6e4e: 0x002cae88, 0x6e4f: 0x002c9a83, - 0x6e50: 0x002cc288, 0x6e51: 0x002d1688, 0x6e52: 0x402d1620, 0x6e53: 0x002d4488, - 0x6e54: 0x002d5888, 0x6e55: 0x402d7820, 0x6e56: 0x002dc288, 0x6e57: 0x002db688, - 0x6e58: 0x002e0a88, 0x6e59: 0x402e0a20, 0x6e5a: 0x402e3820, 0x6e5b: 0x402e7220, - 0x6e5c: 0x0030a088, 0x6e5d: 0x002eb488, 0x6e5e: 0x402ebc20, 0x6e5f: 0x002f1088, - 0x6e60: 0xe0000e56, 0x6e61: 0xe0000e53, 0x6e62: 0x002d6088, 0x6e63: 0x402d6020, - 0x6e64: 0x002f3e88, 0x6e65: 0x402f3e20, 0x6e66: 0x002f8288, 0x6e67: 0x0031b488, - 0x6e68: 0x4031b420, 0x6e69: 0x00300888, 0x6e6a: 0x40301220, 0x6e6b: 0x40304220, - 0x6e6c: 0x00304a88, 0x6e6d: 0x40304a20, 0x6e6e: 0x00305288, 0x6e6f: 0xe000105f, - 0x6e70: 0xe000105c, 0x6e71: 0x0030b488, 0x6e72: 0x0030cc88, 0x6e73: 0x00311888, - 0x6e74: 0x40311820, 0x6e75: 0x00313488, 0x6e76: 0x40313420, 0x6e77: 0x00316488, - 0x6e78: 0x00316e88, 0x6e79: 0x40316e20, 0x6e7a: 0x40317820, 0x6e7b: 0x4031a620, - 0x6e7c: 0x0031bc88, 0x6e7d: 0x4031bc20, 0x6e7e: 0xe0000fc9, 0x6e7f: 0x40319420, - // Block 0x1ba, offset 0x6e80 - 0x6e80: 0x40321220, 0x6e81: 0x40321a20, 0x6e82: 0x40322220, 0x6e83: 0x40322a20, - 0x6e84: 0xe0000ad5, 0x6e85: 0xe0000ad1, 0x6e86: 0xe0000acd, 0x6e87: 0xf0000a0a, - 0x6e88: 0xf000040a, 0x6e89: 0xf0000404, 0x6e8a: 0xf0000a0a, 0x6e8b: 0xf000040a, - 0x6e8c: 0xf0000404, 0x6e8d: 0xe0000947, 0x6e8e: 0xe0000944, 0x6e8f: 0xe00024dd, - 0x6e90: 0xe0000c3a, 0x6e91: 0xe0000dcc, 0x6e92: 0xe0000dc9, 0x6e93: 0xe0000ff3, - 0x6e94: 0xe0000ff0, 0x6e95: 0xe0002539, 0x6e96: 0xe0002536, 0x6e97: 0xe0002527, - 0x6e98: 0xe0002524, 0x6e99: 0xe0002533, 0x6e9a: 0xe0002530, 0x6e9b: 0xe000252d, - 0x6e9c: 0xe000252a, 0x6e9d: 0x402cae20, 0x6e9e: 0xe0000962, 0x6e9f: 0xe000095e, - 0x6ea0: 0xe0000976, 0x6ea1: 0xe0000972, 0x6ea2: 0xe00009f4, 0x6ea3: 0xe00009ef, - 0x6ea4: 0x002d3a88, 0x6ea5: 0x402d3a20, 0x6ea6: 0xe0000bbe, 0x6ea7: 0xe0000bbb, - 0x6ea8: 0xe0000c99, 0x6ea9: 0xe0000c96, 0x6eaa: 0xe0000e20, 0x6eab: 0xe0000e1d, - 0x6eac: 0xe0000e27, 0x6ead: 0xe0000e23, 0x6eae: 0xe0001162, 0x6eaf: 0xe000115f, - 0x6eb0: 0xe0000c8d, 0x6eb1: 0xf0000a0a, 0x6eb2: 0xf000040a, 0x6eb3: 0xf0000404, - 0x6eb4: 0xe0000bac, 0x6eb5: 0xe0000ba9, 0x6eb6: 0x002d7888, 0x6eb7: 0x00319488, - 0x6eb8: 0xe0000d57, 0x6eb9: 0xe0000d54, 0x6eba: 0xe0000954, 0x6ebb: 0xe0000950, - 0x6ebc: 0xe00009ea, 0x6ebd: 0xe00009e5, 0x6ebe: 0xe0000e19, 0x6ebf: 0xe0000e15, - // Block 0x1bb, offset 0x6ec0 - 0x6ec0: 0xe000098f, 0x6ec1: 0xe000098c, 0x6ec2: 0xe0000995, 0x6ec3: 0xe0000992, - 0x6ec4: 0xe0000b62, 0x6ec5: 0xe0000b5f, 0x6ec6: 0xe0000b68, 0x6ec7: 0xe0000b65, - 0x6ec8: 0xe00024f3, 0x6ec9: 0xe0000c69, 0x6eca: 0xe00024f6, 0x6ecb: 0xe0000c6f, - 0x6ecc: 0xe0000e4a, 0x6ecd: 0xe0000e47, 0x6ece: 0xe0000e50, 0x6ecf: 0xe0000e4d, - 0x6ed0: 0xe0000ee8, 0x6ed1: 0xe0000ee5, 0x6ed2: 0xe0000eee, 0x6ed3: 0xe0000eeb, - 0x6ed4: 0xe0001053, 0x6ed5: 0xe0001050, 0x6ed6: 0xe0001059, 0x6ed7: 0xe0001056, - 0x6ed8: 0xe0000f61, 0x6ed9: 0xe0000f5e, 0x6eda: 0xe0000fa5, 0x6edb: 0xe0000fa2, - 0x6edc: 0x00312288, 0x6edd: 0x40312220, 0x6ede: 0xe0000bf4, 0x6edf: 0xe0000bf1, - 0x6ee0: 0x002ebc88, 0x6ee1: 0x402c8c20, 0x6ee2: 0x002f2288, 0x6ee3: 0x402f2220, - 0x6ee4: 0x00314088, 0x6ee5: 0x40314020, 0x6ee6: 0xe000096f, 0x6ee7: 0xe000096c, - 0x6ee8: 0xe0000b32, 0x6ee9: 0xe0000b2f, 0x6eea: 0xe0002521, 0x6eeb: 0xe000251e, - 0x6eec: 0xe0000dfd, 0x6eed: 0xe0000df9, 0x6eee: 0xe0000e04, 0x6eef: 0xe0000e01, - 0x6ef0: 0xe0000e0b, 0x6ef1: 0xe0000e07, 0x6ef2: 0xe0001129, 0x6ef3: 0xe0001126, - 0x6ef4: 0x402e5e20, 0x6ef5: 0x402ed020, 0x6ef6: 0x40305a20, 0x6ef7: 0x402dd420, - 0x6ef8: 0xe0000abf, 0x6ef9: 0xe0000ec4, 0x6efa: 0x002be888, 0x6efb: 0x002c4488, - 0x6efc: 0x402c4420, 0x6efd: 0x002e3888, 0x6efe: 0x00303e88, 0x6eff: 0x402ffc20, - // Block 0x1bc, offset 0x6f00 - 0x6f00: 0x40315820, 0x6f01: 0x0031d488, 0x6f02: 0x4031d420, 0x6f03: 0x002c1a88, - 0x6f04: 0x00307c88, 0x6f05: 0x0030da88, 0x6f06: 0x002ca288, 0x6f07: 0x402ca220, - 0x6f08: 0x002dde88, 0x6f09: 0x402dde20, 0x6f0a: 0x002f6a88, 0x6f0b: 0x402f6a20, - 0x6f0c: 0x002f8e88, 0x6f0d: 0x402f8e20, 0x6f0e: 0x00311088, 0x6f0f: 0x40311020, - 0x6f10: 0x402bf020, 0x6f11: 0x402bf820, 0x6f12: 0x402c0220, 0x6f13: 0x402c2a20, - 0x6f14: 0x402efa20, 0x6f15: 0x402c5620, 0x6f16: 0x402c7220, 0x6f17: 0x402c7a20, - 0x6f18: 0x402ccc20, 0x6f19: 0x402c9a20, 0x6f1a: 0x402cd420, 0x6f1b: 0x402cc220, - 0x6f1c: 0x402cdc20, 0x6f1d: 0x402ce820, 0x6f1e: 0x402cf020, 0x6f1f: 0x402dee20, - 0x6f20: 0x402d4420, 0x6f21: 0x402d2a20, 0x6f22: 0x402d3220, 0x6f23: 0x402d5820, - 0x6f24: 0x402d0020, 0x6f25: 0x40308820, 0x6f26: 0x402d8020, 0x6f27: 0x402d8e20, - 0x6f28: 0x402db620, 0x6f29: 0x402dc220, 0x6f2a: 0x402daa20, 0x6f2b: 0x402e4220, - 0x6f2c: 0x402e4a20, 0x6f2d: 0x402e5420, 0x6f2e: 0x402e6820, 0x6f2f: 0x4030a020, - 0x6f30: 0x4030ac20, 0x6f31: 0x402e9020, 0x6f32: 0x402eb420, 0x6f33: 0x402ec820, - 0x6f34: 0x402ea620, 0x6f35: 0x402f1020, 0x6f36: 0x402eee20, 0x6f37: 0x402f1a20, - 0x6f38: 0x402f4c20, 0x6f39: 0x402f9820, 0x6f3a: 0x402fa220, 0x6f3b: 0x402fac20, - 0x6f3c: 0x402fb620, 0x6f3d: 0x402fbe20, 0x6f3e: 0x402fc620, 0x6f3f: 0x402fd020, - // Block 0x1bd, offset 0x6f40 - 0x6f40: 0x40055620, 0x6f41: 0xa1809102, 0x6f42: 0xa1909002, 0x6f43: 0x40055820, - 0x6f44: 0xae600000, 0x6f45: 0xadc00000, 0x6f46: 0x40055a20, 0x6f47: 0xa1208d02, - 0x6f50: 0x40389020, 0x6f51: 0x40389220, 0x6f52: 0x40389420, 0x6f53: 0x40389620, - 0x6f54: 0x40389820, 0x6f55: 0x40389a20, 0x6f56: 0x40389c20, 0x6f57: 0x40389e20, - 0x6f58: 0x4038a020, 0x6f59: 0x4038a220, 0x6f5a: 0x0038a499, 0x6f5b: 0x4038a420, - 0x6f5c: 0x4038a620, 0x6f5d: 0x0038a899, 0x6f5e: 0x4038a820, 0x6f5f: 0x0038aa99, - 0x6f60: 0x4038aa20, 0x6f61: 0x4038ac20, 0x6f62: 0x4038ae20, 0x6f63: 0x0038b099, - 0x6f64: 0x4038b020, 0x6f65: 0x0038b299, 0x6f66: 0x4038b220, 0x6f67: 0x4038b420, - 0x6f68: 0x4038b620, 0x6f69: 0x4038b820, 0x6f6a: 0x4038ba20, - 0x6f70: 0xe00014ff, 0x6f71: 0xe0001502, 0x6f72: 0xe0001511, 0x6f73: 0xa0002102, - 0x6f74: 0xa0002202, - // Block 0x1be, offset 0x6f80 - 0x6f80: 0xa0000000, 0x6f81: 0xa0000000, 0x6f82: 0xa0000000, 0x6f83: 0xa0000000, - 0x6f84: 0xa0000000, 0x6f86: 0x40096620, 0x6f87: 0x40096a20, - 0x6f88: 0x40070820, 0x6f89: 0x4004f220, 0x6f8a: 0x4004f620, 0x6f8b: 0x4027e620, - 0x6f8c: 0x40024820, 0x6f8d: 0x40024a20, 0x6f8e: 0x40070e20, 0x6f8f: 0x40071020, - 0x6f90: 0xae600000, 0x6f91: 0xae600000, 0x6f92: 0xae600000, 0x6f93: 0xae600000, - 0x6f94: 0xae600000, 0x6f95: 0xae600000, 0x6f96: 0xae600000, 0x6f97: 0xae600000, - 0x6f98: 0xa1e00000, 0x6f99: 0xa1f00000, 0x6f9a: 0xa2000000, 0x6f9b: 0x40026420, - 0x6f9e: 0x40027020, 0x6f9f: 0x4002cc20, - 0x6fa0: 0x403aa220, 0x6fa1: 0x40391c20, 0x6fa2: 0x40393a21, 0x6fa3: 0x40393a22, - 0x6fa4: 0x403a7621, 0x6fa5: 0x40393a23, 0x6fa6: 0x403a9221, 0x6fa7: 0xc3470151, - 0x6fa8: 0x40393c20, 0x6fa9: 0x403a6a21, 0x6faa: 0x40395620, 0x6fab: 0x40395820, - 0x6fac: 0x40396420, 0x6fad: 0x40397220, 0x6fae: 0x40397420, 0x6faf: 0x40398820, - 0x6fb0: 0x40398a20, 0x6fb1: 0x4039a420, 0x6fb2: 0x4039a620, 0x6fb3: 0x4039c620, - 0x6fb4: 0x4039c820, 0x6fb5: 0x4039dc20, 0x6fb6: 0x4039de20, 0x6fb7: 0x4039e620, - 0x6fb8: 0x4039e820, 0x6fb9: 0x4039ee20, 0x6fba: 0x4039f020, 0x6fbb: 0x403a3820, - 0x6fbc: 0x403a3a20, 0x6fbd: 0x403a9c20, 0x6fbe: 0x403a9e20, 0x6fbf: 0x403aa020, - // Block 0x1bf, offset 0x6fc0 - 0x6fc0: 0xa0002302, 0x6fc1: 0x4039fc20, 0x6fc2: 0x403a1220, 0x6fc3: 0x403a1a20, - 0x6fc4: 0x403a4020, 0x6fc5: 0x403a4e20, 0x6fc6: 0x403a5620, 0x6fc7: 0x403a6820, - 0x6fc8: 0xc34b0171, 0x6fc9: 0x403a9222, 0x6fca: 0xc34d0171, 0x6fcb: 0xa1b0a202, - 0x6fcc: 0xa1c0a502, 0x6fcd: 0xa1d0a902, 0x6fce: 0xa1e0ad02, 0x6fcf: 0xa1f0b202, - 0x6fd0: 0xa200b602, 0x6fd1: 0xa210ba02, 0x6fd2: 0xa220bc02, 0x6fd3: 0xae60bd02, - 0x6fd4: 0xae60be02, 0x6fd5: 0xadc0bf02, 0x6fd6: 0xadc0c102, 0x6fd7: 0xae60c202, - 0x6fd8: 0xae60c302, 0x6fd9: 0xae60c402, 0x6fda: 0xae60c502, 0x6fdb: 0xae60c602, - 0x6fdc: 0xadc0c702, 0x6fdd: 0xae60c802, 0x6fde: 0xae60c902, 0x6fdf: 0xadc0c002, - 0x6fe0: 0xe000015e, 0x6fe1: 0xe00001e6, 0x6fe2: 0xe0000301, 0x6fe3: 0xe00003db, - 0x6fe4: 0xe00004b6, 0x6fe5: 0xe0000580, 0x6fe6: 0xe000064b, 0x6fe7: 0xe00006f3, - 0x6fe8: 0xe000079f, 0x6fe9: 0xe0000844, 0x6fea: 0x4004ee20, 0x6feb: 0x40024c20, - 0x6fec: 0x40024e20, 0x6fed: 0x4004de20, 0x6fee: 0x40393a20, 0x6fef: 0x403a1020, - 0x6ff0: 0xa230d102, 0x6ff1: 0x40392420, 0x6ff2: 0x40392220, 0x6ff3: 0x40392a20, - 0x6ff4: 0x00391c84, 0x6ff5: 0xf0000404, 0x6ff6: 0xf0000404, 0x6ff7: 0xf0000404, - 0x6ff8: 0xf0000404, 0x6ff9: 0x40395a20, 0x6ffa: 0x40395c20, 0x6ffb: 0x40393e20, - 0x6ffc: 0x40395e20, 0x6ffd: 0x40396020, 0x6ffe: 0x40394020, 0x6fff: 0x40396220, - // Block 0x1c0, offset 0x7000 - 0x7000: 0xe00017e4, 0x7001: 0x403a6c20, 0x7002: 0xe00017e1, 0x7003: 0x403a6e20, - 0x7004: 0x403a7620, 0x7005: 0x403a7820, 0x7006: 0x403a7a20, 0x7007: 0x403a7c20, - 0x7008: 0x403a7e20, 0x7009: 0x403a8020, 0x700a: 0x403a8220, 0x700b: 0x403a8420, - 0x700c: 0x403a9220, 0x700d: 0x403a9420, 0x700e: 0x403a9620, 0x700f: 0x403a8620, - 0x7010: 0x403a9820, 0x7011: 0x403a9a20, 0x7012: 0x403aaa20, 0x7013: 0xe0001800, - 0x7014: 0x4002e820, 0x7015: 0x403a7220, 0x7016: 0xae600000, 0x7017: 0xae600000, - 0x7018: 0xae600000, 0x7019: 0xae600000, 0x701a: 0xae600000, 0x701b: 0xae600000, - 0x701c: 0xae600000, 0x701d: 0xa0000000, 0x701e: 0x40071220, 0x701f: 0xae600000, - 0x7020: 0xae600000, 0x7021: 0xae600000, 0x7022: 0xae600000, 0x7023: 0xadc00000, - 0x7024: 0xae600000, 0x7025: 0x003a7483, 0x7026: 0x003a9083, 0x7027: 0xae600000, - 0x7028: 0xae600000, 0x7029: 0x40071420, 0x702a: 0xadc00000, 0x702b: 0xae600000, - 0x702c: 0xae600000, 0x702d: 0xadc00000, 0x702e: 0x40399e20, 0x702f: 0x4039ba20, - 0x7030: 0xe0000161, 0x7031: 0xe00001e9, 0x7032: 0xe0000304, 0x7033: 0xe00003de, - 0x7034: 0xe00004b9, 0x7035: 0xe0000583, 0x7036: 0xe000064e, 0x7037: 0xe00006f6, - 0x7038: 0xe00007a2, 0x7039: 0xe0000847, 0x703a: 0x4039d020, 0x703b: 0x4039e420, - 0x703c: 0x4039f420, 0x703d: 0xe0001553, 0x703e: 0xe0001779, 0x703f: 0x403a7020, - // Block 0x1c1, offset 0x7040 - 0x7041: 0x40491020, 0x7042: 0x40491220, 0x7043: 0x40491420, - 0x7044: 0x40491620, 0x7045: 0x40491820, 0x7046: 0x40491a20, 0x7047: 0x40491c20, - 0x7048: 0x40491e20, 0x7049: 0x40492020, 0x704a: 0x40492220, 0x704b: 0x40492420, - 0x704c: 0x40492620, 0x704d: 0x40492820, 0x704e: 0x40492a20, 0x704f: 0x40492c20, - 0x7050: 0x40492e20, 0x7051: 0x40493020, 0x7052: 0x40493220, 0x7053: 0x40493420, - 0x7054: 0x40493620, 0x7055: 0x40493820, 0x7056: 0x40493a20, 0x7057: 0x40493c20, - 0x7058: 0x40493e20, 0x7059: 0x40494020, 0x705a: 0x40494220, 0x705b: 0x40494420, - 0x705c: 0x40494620, 0x705d: 0x40494820, 0x705e: 0x40494a20, 0x705f: 0x40494c20, - 0x7060: 0x40494e20, 0x7061: 0x40495020, 0x7062: 0x40495220, 0x7063: 0x40495420, - 0x7064: 0x40495620, 0x7065: 0x40495820, 0x7066: 0x40495a20, 0x7067: 0x40495c20, - 0x7068: 0x40495e20, 0x7069: 0x40496020, 0x706a: 0x40496220, 0x706b: 0x40496420, - 0x706c: 0x40496620, 0x706d: 0x40496820, 0x706e: 0x40496a20, 0x706f: 0x40496c20, - 0x7070: 0x40496e20, 0x7071: 0x40497020, 0x7072: 0x40497220, 0x7073: 0x40497420, - 0x7074: 0x40497620, 0x7075: 0x40497820, 0x7076: 0x40497a20, 0x7077: 0x40497c20, - 0x7078: 0x826724bf, 0x7079: 0x826724c0, 0x707a: 0xa0002402, - 0x707f: 0x4027f420, - // Block 0x1c2, offset 0x7080 - 0x7080: 0x4062ac20, 0x7081: 0xe00025cf, 0x7082: 0x4062b020, 0x7083: 0x4062b220, - 0x7084: 0xe00025db, 0x7085: 0x4062b620, 0x7086: 0x4062b820, 0x7087: 0x4062ba20, - 0x7088: 0xe00025f3, 0x7089: 0x4062be20, 0x708a: 0xe00025f9, 0x708b: 0x4062c220, - 0x708c: 0x4062c420, 0x708d: 0xe00025fc, 0x708e: 0x4062c820, 0x708f: 0x4062ca20, - 0x7090: 0x4062cc20, 0x7091: 0x4062ce20, 0x7092: 0x4062d020, 0x7093: 0x4062d220, - 0x7094: 0x4062d420, 0x7095: 0x4062d620, 0x7096: 0x4062d820, 0x7097: 0x4062da20, - 0x7098: 0x4062dc20, 0x7099: 0x4062de20, 0x709a: 0x4062e020, 0x709b: 0x4062e220, - 0x709c: 0x4062e420, 0x709d: 0x4062e620, 0x709e: 0x4062e820, 0x709f: 0x4062ea20, - 0x70a0: 0x4062ec20, 0x70a1: 0x4062ee20, 0x70a2: 0x4062f020, 0x70a3: 0x4062f220, - 0x70a4: 0x4062f420, 0x70a5: 0x4062f620, 0x70a6: 0x4062f820, 0x70a7: 0x4062fa20, - 0x70a8: 0x4062fc20, 0x70a9: 0x4062fe20, 0x70aa: 0x40630020, 0x70ab: 0x40630220, - 0x70ac: 0x40630420, 0x70ad: 0x40630620, 0x70ae: 0x40630820, 0x70af: 0x40630a20, - 0x70b0: 0x40630c20, 0x70b1: 0x40630e20, 0x70b2: 0x40631020, 0x70b3: 0x40631220, - 0x70b4: 0x40631420, 0x70b5: 0x40631620, 0x70b6: 0x40631820, 0x70b7: 0x40631a20, - 0x70b8: 0x40631c20, 0x70b9: 0x40631e20, 0x70ba: 0x40632020, 0x70bb: 0x40632220, - 0x70bc: 0x40632420, 0x70bd: 0x40632620, 0x70be: 0x40632820, 0x70bf: 0x40632a20, - // Block 0x1c3, offset 0x70c0 - 0x70c0: 0x40632c20, 0x70c1: 0x40632e20, 0x70c2: 0x40633020, 0x70c3: 0x40633220, - 0x70c4: 0x40633420, 0x70c5: 0x40633620, 0x70c6: 0x40633820, 0x70c7: 0x40633a20, - 0x70c8: 0x40633c20, 0x70c9: 0x40633e20, 0x70ca: 0x40634020, 0x70cb: 0x40634220, - 0x70cc: 0x40634420, 0x70cd: 0x40634620, 0x70ce: 0x40634820, 0x70cf: 0x40634a20, - 0x70d0: 0x40634c20, 0x70d1: 0x40634e20, 0x70d2: 0x40635020, 0x70d3: 0x40635220, - 0x70d4: 0x40635420, 0x70d5: 0x40635620, 0x70d6: 0x40635820, 0x70d7: 0x40635a20, - 0x70d8: 0x40635c20, 0x70d9: 0x40635e20, 0x70da: 0x40636020, 0x70db: 0x40636220, - 0x70dc: 0x40636420, 0x70dd: 0x40636620, 0x70de: 0x40636820, 0x70df: 0x4063a420, - 0x70e0: 0x4063a620, 0x70e1: 0x4063a820, 0x70e2: 0xe00025ff, 0x70e3: 0x4063ac20, - 0x70e4: 0xe0002602, 0x70e5: 0x4063b020, 0x70e6: 0xe0002605, 0x70e7: 0x4063b420, - 0x70e8: 0xe0002608, 0x70e9: 0x4063b820, 0x70ea: 0xe000260b, 0x70eb: 0xe000260e, - 0x70ec: 0xe0002612, 0x70ed: 0x4063c020, 0x70ee: 0x4063c220, 0x70ef: 0xe0002615, - 0x70f0: 0xe0002618, 0x70f1: 0xe000261c, 0x70f2: 0x4063ca20, 0x70f3: 0x4063cc20, - 0x70f4: 0x4063ce20, 0x70f5: 0x4063d020, 0x70f6: 0x4063d220, 0x70f7: 0x4063d420, - 0x70f8: 0x4063d620, 0x70f9: 0x4063d820, 0x70fa: 0x4063da20, 0x70fb: 0x4063dc20, - 0x70fc: 0x4063de20, 0x70fd: 0x4063e020, 0x70fe: 0x4063e220, 0x70ff: 0x4063e420, - // Block 0x1c4, offset 0x7100 - 0x7100: 0x4063e620, 0x7101: 0x4063e820, 0x7102: 0x4063ea20, 0x7103: 0x4063ec20, - 0x7104: 0x4063ee20, 0x7105: 0x4063f020, 0x7106: 0x4063f220, 0x7107: 0x4063f420, - 0x7108: 0x4063f620, 0x7109: 0x4063f820, 0x710a: 0x4063fa20, 0x710b: 0x4063fc20, - 0x710c: 0x4063fe20, 0x710d: 0x40640020, 0x710e: 0x40640220, 0x710f: 0x40640420, - 0x7110: 0x40640620, 0x7111: 0x40640820, 0x7112: 0x40640a20, 0x7113: 0x40640c20, - 0x7114: 0x40640e20, 0x7115: 0x40641020, 0x7116: 0x40641220, 0x7117: 0x40641420, - 0x7118: 0x40641620, 0x7119: 0x40641820, 0x711a: 0x40641a20, 0x711b: 0x40641c20, - 0x711c: 0x40641e20, 0x711d: 0x40642020, 0x711e: 0x40642220, 0x711f: 0x40642420, - 0x7120: 0x40642620, 0x7121: 0x40642820, 0x7122: 0x40642a20, 0x7123: 0x40642c20, - 0x7124: 0x40642e20, 0x7125: 0x40643020, 0x7126: 0x40643220, 0x7127: 0x40643420, - 0x7128: 0x4062ac20, 0x7129: 0xe00025cf, 0x712a: 0xe00025d2, 0x712b: 0x4062b020, - 0x712c: 0xe00025d5, 0x712d: 0xe00025d8, 0x712e: 0x4062b220, 0x712f: 0x4062b620, - 0x7130: 0xe00025de, 0x7131: 0xe00025e1, 0x7132: 0xe00025e4, 0x7133: 0xe00025e7, - 0x7134: 0xe00025ea, 0x7135: 0xe00025ed, 0x7136: 0xe00025f0, 0x7137: 0x4062b820, - 0x7138: 0x4062ba20, 0x7139: 0xe00025f6, 0x713a: 0x4062be20, 0x713b: 0xe00025f9, - 0x713c: 0x4062c220, 0x713d: 0x4062c420, 0x713e: 0x4062c820, 0x713f: 0x4062ca20, - // Block 0x1c5, offset 0x7140 - 0x7140: 0x4062cc20, 0x7141: 0x4062ce20, 0x7142: 0x4062d020, 0x7143: 0x40649a20, - 0x7144: 0x40649c20, 0x7145: 0x40649e20, 0x7146: 0x4064a020, 0x7147: 0x4064a220, - 0x7148: 0x4064a420, 0x7149: 0x4064a620, 0x714a: 0x4064a820, 0x714b: 0x4064aa20, - 0x714c: 0x4064ac20, 0x714d: 0x4064ae20, 0x714e: 0x4064b020, 0x714f: 0x4064b220, - 0x7150: 0x4064b420, 0x7151: 0x4064b620, 0x7152: 0x4064b820, 0x7153: 0x4064ba20, - 0x7154: 0x4064bc20, 0x7155: 0x4064be20, 0x7156: 0x4064c020, 0x7157: 0x4064c220, - 0x7158: 0x4064c420, 0x7159: 0x4064c620, 0x715a: 0x4064c820, 0x715b: 0x4064ca20, - 0x715c: 0x4064cc20, 0x715d: 0x4064ce20, 0x715e: 0x4064d020, 0x715f: 0x4064d220, - 0x7160: 0x4064d420, 0x7161: 0x4064d620, 0x7162: 0x4064d820, 0x7163: 0x4064da20, - 0x7164: 0x4064dc20, 0x7165: 0x4064de20, 0x7166: 0x4064e020, 0x7167: 0x4064e220, - 0x7168: 0x4064e420, 0x7169: 0x4064e620, 0x716a: 0x4064e820, 0x716b: 0x4064ea20, - 0x716c: 0x4064ec20, 0x716d: 0x4064ee20, 0x716e: 0x4064f020, 0x716f: 0x4064f220, - 0x7170: 0x4064f420, 0x7171: 0x4064f620, 0x7172: 0x4064f820, 0x7173: 0x4064fa20, - 0x7174: 0x4064fc20, 0x7175: 0x4064fe20, 0x7176: 0x40650020, 0x7177: 0x40650220, - 0x7178: 0x40650420, 0x7179: 0x40650620, 0x717a: 0x40650820, 0x717b: 0x40650a20, - 0x717c: 0x40650c20, 0x717d: 0x40650e20, 0x717e: 0x40651020, 0x717f: 0x40651220, - // Block 0x1c6, offset 0x7180 - 0x7180: 0xe00009b1, 0x7181: 0xe00009ae, 0x7182: 0xe0000a22, 0x7183: 0xe0000a1f, - 0x7184: 0xe0000a28, 0x7185: 0xe0000a25, 0x7186: 0xe0000a2e, 0x7187: 0xe0000a2b, - 0x7188: 0xe00024c2, 0x7189: 0xe00024bf, 0x718a: 0xe0000a8c, 0x718b: 0xe0000a89, - 0x718c: 0xe0000a98, 0x718d: 0xe0000a95, 0x718e: 0xe0000aa4, 0x718f: 0xe0000aa1, - 0x7190: 0xe0000a92, 0x7191: 0xe0000a8f, 0x7192: 0xe0000a9e, 0x7193: 0xe0000a9b, - 0x7194: 0xe0000b55, 0x7195: 0xe0000b51, 0x7196: 0xe0000b4d, 0x7197: 0xe0000b49, - 0x7198: 0xe0000b7c, 0x7199: 0xe0000b79, 0x719a: 0xe0000b82, 0x719b: 0xe0000b7f, - 0x719c: 0xe0000b39, 0x719d: 0xe0000b35, 0x719e: 0xe0000b8c, 0x719f: 0xe0000b89, - 0x71a0: 0xe0000bd0, 0x71a1: 0xe0000bcd, 0x71a2: 0xe0000c00, 0x71a3: 0xe0000bfd, - 0x71a4: 0xe0000c0c, 0x71a5: 0xe0000c09, 0x71a6: 0xe0000bfa, 0x71a7: 0xe0000bf7, - 0x71a8: 0xe0000c06, 0x71a9: 0xe0000c03, 0x71aa: 0xe0000c12, 0x71ab: 0xe0000c0f, - 0x71ac: 0xe00024fc, 0x71ad: 0xe0000c7b, 0x71ae: 0xe00024e3, 0x71af: 0xe0000c46, - 0x71b0: 0xe0000c93, 0x71b1: 0xe0000c90, 0x71b2: 0xe0000cab, 0x71b3: 0xe0000ca8, - 0x71b4: 0xe0000cb1, 0x71b5: 0xe0000cae, 0x71b6: 0xe0000cde, 0x71b7: 0xe0000cdb, - 0x71b8: 0xe0000ce5, 0x71b9: 0xe0000ce1, 0x71ba: 0xe0000cf2, 0x71bb: 0xe0000cef, - 0x71bc: 0xe0000cec, 0x71bd: 0xe0000ce9, 0x71be: 0xe0000d1e, 0x71bf: 0xe0000d1b, - // Block 0x1c7, offset 0x71c0 - 0x71c0: 0xe0000d24, 0x71c1: 0xe0000d21, 0x71c2: 0xe0000d2a, 0x71c3: 0xe0000d27, - 0x71c4: 0xe0000d69, 0x71c5: 0xe0000d66, 0x71c6: 0xe0000d7b, 0x71c7: 0xe0000d78, - 0x71c8: 0xe0000d87, 0x71c9: 0xe0000d84, 0x71ca: 0xe0000d81, 0x71cb: 0xe0000d7e, - 0x71cc: 0xe0000ded, 0x71cd: 0xe0000de9, 0x71ce: 0xe000251b, 0x71cf: 0xe0002518, - 0x71d0: 0xe0000e3d, 0x71d1: 0xe0000e39, 0x71d2: 0xe0000e35, 0x71d3: 0xe0000e31, - 0x71d4: 0xe0000ea7, 0x71d5: 0xe0000ea4, 0x71d6: 0xe0000ead, 0x71d7: 0xe0000eaa, - 0x71d8: 0xe0000ed6, 0x71d9: 0xe0000ed3, 0x71da: 0xe0000ef4, 0x71db: 0xe0000ef1, - 0x71dc: 0xe0000efb, 0x71dd: 0xe0000ef7, 0x71de: 0xe0000f02, 0x71df: 0xe0000eff, - 0x71e0: 0xe0000f41, 0x71e1: 0xe0000f3e, 0x71e2: 0xe0000f53, 0x71e3: 0xe0000f50, - 0x71e4: 0xe0000f26, 0x71e5: 0xe0000f22, 0x71e6: 0xe0000f3a, 0x71e7: 0xe0000f36, - 0x71e8: 0xe0000f5a, 0x71e9: 0xe0000f56, 0x71ea: 0xe0000f93, 0x71eb: 0xe0000f90, - 0x71ec: 0xe0000f9f, 0x71ed: 0xe0000f9c, 0x71ee: 0xe0000fb1, 0x71ef: 0xe0000fae, - 0x71f0: 0xe0000fab, 0x71f1: 0xe0000fa8, 0x71f2: 0xe0001093, 0x71f3: 0xe0001090, - 0x71f4: 0xe000109f, 0x71f5: 0xe000109c, 0x71f6: 0xe0001099, 0x71f7: 0xe0001096, - 0x71f8: 0xe0001032, 0x71f9: 0xe000102e, 0x71fa: 0xe0002539, 0x71fb: 0xe0002536, - 0x71fc: 0xe00010a9, 0x71fd: 0xe00010a6, 0x71fe: 0xe00010af, 0x71ff: 0xe00010ac, - // Block 0x1c8, offset 0x7200 - 0x7200: 0xe00010d2, 0x7201: 0xe00010cf, 0x7202: 0xe00010cc, 0x7203: 0xe00010c9, - 0x7204: 0xe00010e1, 0x7205: 0xe00010de, 0x7206: 0xe00010e7, 0x7207: 0xe00010e4, - 0x7208: 0xe00010ed, 0x7209: 0xe00010ea, 0x720a: 0xe00024ce, 0x720b: 0xe00024cb, - 0x720c: 0xe00024c8, 0x720d: 0xe00024c5, 0x720e: 0xe0001123, 0x720f: 0xe0001120, - 0x7210: 0xe0001141, 0x7211: 0xe000113e, 0x7212: 0xe0001153, 0x7213: 0xe0001150, - 0x7214: 0xe0001159, 0x7215: 0xe0001156, 0x7216: 0xe0000c15, 0x7217: 0xe0000f8d, - 0x7218: 0xe00010db, 0x7219: 0xe0001111, 0x721a: 0xf0000404, 0x721b: 0xe0000f70, - 0x721c: 0x40300420, 0x721d: 0x40300620, 0x721e: 0xe0000f7f, 0x721f: 0x402c9620, - 0x7220: 0xe000099b, 0x7221: 0xe0000998, 0x7222: 0xe0000989, 0x7223: 0xe0000986, - 0x7224: 0xe0000928, 0x7225: 0xe0000924, 0x7226: 0xe0000930, 0x7227: 0xe000092c, - 0x7228: 0xe0000940, 0x7229: 0xe000093c, 0x722a: 0xe0000938, 0x722b: 0xe0000934, - 0x722c: 0xe00009aa, 0x722d: 0xe00009a6, 0x722e: 0xe0000902, 0x722f: 0xe00008fe, - 0x7230: 0xe000090a, 0x7231: 0xe0000906, 0x7232: 0xe000091a, 0x7233: 0xe0000916, - 0x7234: 0xe0000912, 0x7235: 0xe000090e, 0x7236: 0xe00009a2, 0x7237: 0xe000099e, - 0x7238: 0xe0000b6e, 0x7239: 0xe0000b6b, 0x723a: 0xe0000b5c, 0x723b: 0xe0000b59, - 0x723c: 0xe0000b26, 0x723d: 0xe0000b23, 0x723e: 0xe0000afb, 0x723f: 0xe0000af7, - // Block 0x1c9, offset 0x7240 - 0x7240: 0xe0000b03, 0x7241: 0xe0000aff, 0x7242: 0xe0000b13, 0x7243: 0xe0000b0f, - 0x7244: 0xe0000b0b, 0x7245: 0xe0000b07, 0x7246: 0xe0000b75, 0x7247: 0xe0000b71, - 0x7248: 0xe00024f0, 0x7249: 0xe0000c63, 0x724a: 0xe00024f9, 0x724b: 0xe0000c75, - 0x724c: 0xe0000e84, 0x724d: 0xe0000e81, 0x724e: 0xe0000e44, 0x724f: 0xe0000e41, - 0x7250: 0xe0000dad, 0x7251: 0xe0000da9, 0x7252: 0xe0000db5, 0x7253: 0xe0000db1, - 0x7254: 0xe0000dc5, 0x7255: 0xe0000dc1, 0x7256: 0xe0000dbd, 0x7257: 0xe0000db9, - 0x7258: 0xe0000e8b, 0x7259: 0xe0000e87, 0x725a: 0xe0000e5d, 0x725b: 0xe0000e59, - 0x725c: 0xe0000e65, 0x725d: 0xe0000e61, 0x725e: 0xe0000e75, 0x725f: 0xe0000e71, - 0x7260: 0xe0000e6d, 0x7261: 0xe0000e69, 0x7262: 0xe0000e7d, 0x7263: 0xe0000e79, - 0x7264: 0xe000108d, 0x7265: 0xe000108a, 0x7266: 0xe000104d, 0x7267: 0xe000104a, - 0x7268: 0xe0001066, 0x7269: 0xe0001062, 0x726a: 0xe000106e, 0x726b: 0xe000106a, - 0x726c: 0xe000107e, 0x726d: 0xe000107a, 0x726e: 0xe0001076, 0x726f: 0xe0001072, - 0x7270: 0xe0001086, 0x7271: 0xe0001082, 0x7272: 0xe0001108, 0x7273: 0xe0001105, - 0x7274: 0xe0001135, 0x7275: 0xe0001132, 0x7276: 0xe000112f, 0x7277: 0xe000112c, - 0x7278: 0xe000111d, 0x7279: 0xe000111a, 0x727a: 0xe0000d0a, 0x727b: 0xe0000d07, - 0x727c: 0x0030d888, 0x727d: 0x4030d820, 0x727e: 0x00312088, 0x727f: 0x40312020, - // Block 0x1ca, offset 0x7280 - 0x7280: 0x00093685, 0x7281: 0x40083620, 0x7282: 0x40083820, 0x7283: 0x40083a20, - 0x7284: 0x40083c20, 0x7285: 0x002c628b, 0x7286: 0x002c6285, 0x7287: 0x002c9885, - 0x7288: 0x002d9a85, 0x7289: 0x002dcc85, 0x728a: 0x40083e20, 0x728b: 0x400a6e20, - 0x728c: 0x40084020, 0x728d: 0xe00009c4, 0x728e: 0x402d1e20, 0x728f: 0x40084220, - 0x7290: 0xe00002cb, 0x7291: 0xe00002d3, 0x7292: 0xe00002b2, 0x7293: 0xe00002bb, - 0x7294: 0xe00003cd, 0x7295: 0xe00002c3, 0x7296: 0xe00003d1, 0x7297: 0xe00004ab, - 0x7298: 0xe0000579, 0x7299: 0xe00002c7, 0x729a: 0xe0000640, 0x729b: 0xe00002cf, - 0x729c: 0xe00004af, 0x729d: 0xe0000644, 0x729e: 0xe0000798, 0x729f: 0xf0001e1e, - 0x72a0: 0x002d9a8a, 0x72a1: 0xe00024ff, 0x72a2: 0xe0002502, 0x72a3: 0xe000250c, - 0x72a4: 0x0030be8a, 0x72a5: 0xe000253c, 0x72a6: 0xe000253f, 0x72a7: 0xe00010bb, - 0x72a8: 0xe0002512, 0x72a9: 0x0030f68a, 0x72aa: 0xe0002546, 0x72ab: 0xe000254d, - 0x72ac: 0x002e228a, 0x72ad: 0x002c3a8a, 0x72ae: 0x002c628a, 0x72af: 0x002e828a, - 0x72b0: 0x002d9a84, 0x72b1: 0xf0001f04, 0x72b2: 0xf0000404, 0x72b3: 0xf0001f04, - 0x72b4: 0x0030be84, 0x72b5: 0xf0001f04, 0x72b6: 0xf0000404, 0x72b7: 0xe00010b6, - 0x72b8: 0xe000250f, 0x72b9: 0x0030f684, 0x72ba: 0xe0002543, 0x72bb: 0xe0002549, - 0x72bc: 0x002e2284, 0x72bd: 0x002c3a84, 0x72be: 0x002c6284, 0x72bf: 0x002e8284, - // Block 0x1cb, offset 0x72c0 - 0x72c0: 0x4009a620, 0x72c1: 0xe00000f5, 0x72c2: 0x4009a820, 0x72c3: 0x4009aa20, - 0x72c4: 0xe00000f8, 0x72c5: 0x4009ac20, 0x72c6: 0x4009ae20, 0x72c7: 0xe00000fb, - 0x72c8: 0x4009b020, 0x72c9: 0xe00000fe, 0x72ca: 0x4009b220, 0x72cb: 0x4009b420, - 0x72cc: 0x4009b620, 0x72cd: 0x4009b820, 0x72ce: 0x4009ba20, 0x72cf: 0x4009bc20, - 0x72d0: 0x4009be20, 0x72d1: 0x4009c020, 0x72d2: 0x4009c220, 0x72d3: 0x4009c420, - 0x72d4: 0x4009c620, 0x72d5: 0x4009c820, 0x72d6: 0x4009ca20, 0x72d7: 0x4009cc20, - 0x72d8: 0x4009ce20, 0x72d9: 0x4009d020, 0x72da: 0x4009d220, 0x72db: 0x4009d420, - 0x72dc: 0x4009d620, 0x72dd: 0x4009d820, 0x72de: 0x4009da20, 0x72df: 0x4009dc20, - 0x72e0: 0x40094420, 0x72e1: 0x4009de20, 0x72e2: 0xe0000104, 0x72e3: 0x4009e020, - 0x72e4: 0x4009e220, 0x72e5: 0x4009e420, 0x72e6: 0x4009e620, 0x72e7: 0x4009e820, - 0x72e8: 0x4009ea20, 0x72e9: 0x4009ec20, 0x72ea: 0x4009ee20, 0x72eb: 0x4009f020, - 0x72ec: 0x4009f220, 0x72ed: 0xe0000101, 0x72ee: 0xe00000e1, 0x72ef: 0xe00000e7, - 0x72f0: 0xe0000107, 0x72f1: 0xe000010a, 0x72f2: 0x4009f420, 0x72f3: 0x4009f620, - 0x72f4: 0xe000010d, 0x72f5: 0xe0000110, 0x72f6: 0x4009f820, 0x72f7: 0x4009fa20, - 0x72f8: 0xe0000113, 0x72f9: 0xe0000116, 0x72fa: 0x4009fc20, 0x72fb: 0x4009fe20, - 0x72fc: 0x400a0020, 0x72fd: 0x400a0220, 0x72fe: 0x400a0420, 0x72ff: 0x400a0620, - // Block 0x1cc, offset 0x7300 - 0x7300: 0xe0000024, 0x7301: 0xe0000029, 0x7302: 0xe000002e, 0x7303: 0xe0000033, - 0x7304: 0xe0000038, 0x7305: 0xe000003d, 0x7306: 0xe0000042, 0x7307: 0xe0000047, - 0x7308: 0xf0001f04, 0x7309: 0xf0001f04, 0x730a: 0xf0001f04, 0x730b: 0xf0001f04, - 0x730c: 0xf0001f04, 0x730d: 0xf0001f04, 0x730e: 0xf0001f04, 0x730f: 0xf0001f04, - 0x7310: 0xf0001f04, 0x7311: 0xf0000404, 0x7312: 0xf0000404, 0x7313: 0xf0000404, - 0x7314: 0xf0000404, 0x7315: 0xf0000404, 0x7316: 0xf0000404, 0x7317: 0xf0000404, - 0x7318: 0xf0000404, 0x7319: 0xf0000404, 0x731a: 0xf0000404, 0x731b: 0xf0000404, - 0x731c: 0xf0000404, 0x731d: 0xf0000404, 0x731e: 0xf0000404, 0x731f: 0xf0000404, - 0x7320: 0xf0000404, 0x7321: 0xf0000404, 0x7322: 0xf0000404, 0x7323: 0xf0000404, - 0x7324: 0xf0000404, 0x7325: 0xf0000404, 0x7326: 0xf0000404, 0x7327: 0xf0000404, - 0x7328: 0xf0000404, 0x7329: 0xf0000404, 0x732a: 0xf0000404, 0x732b: 0xf0000404, - 0x732c: 0xe00024ac, 0x732d: 0xf0000404, 0x732e: 0xf0000404, 0x732f: 0xf0000404, - 0x7330: 0xf0000404, 0x7331: 0xf0000404, 0x7332: 0xf0000404, 0x7333: 0xe00024b4, - 0x7334: 0xf0000404, 0x7335: 0xf0000404, 0x7336: 0x002bde8c, 0x7337: 0x002c0a8c, - 0x7338: 0x002c3a8c, 0x7339: 0x002c628c, 0x733a: 0x002c988c, 0x733b: 0x002d088c, - 0x733c: 0x002d228c, 0x733d: 0x002d688c, 0x733e: 0x002d9a8c, 0x733f: 0x002dcc8c, - // Block 0x1cd, offset 0x7340 - 0x7340: 0xe000230b, 0x7341: 0xe00022f8, 0x7342: 0xe00022fc, 0x7343: 0xe0002311, - 0x7344: 0xe0002316, 0x7345: 0xe000231d, 0x7346: 0xe0002321, 0x7347: 0xe0002325, - 0x7348: 0xe000232b, 0x7349: 0xf0001c1c, 0x734a: 0xe0002330, 0x734b: 0xe000233c, - 0x734c: 0xe0002340, 0x734d: 0xe0002337, 0x734e: 0xe0002346, 0x734f: 0xe000234b, - 0x7350: 0xe000234f, 0x7351: 0xe0002353, 0x7352: 0xf0001c1c, 0x7353: 0xe000235e, - 0x7354: 0xe0002358, 0x7355: 0xf0001c1c, 0x7356: 0xe0002363, 0x7357: 0xe000236d, - 0x7358: 0xf0001f04, 0x7359: 0xf0001f04, 0x735a: 0xf0001f04, 0x735b: 0xf0001f04, - 0x735c: 0xf0001f04, 0x735d: 0xf0001f04, 0x735e: 0xf0001f04, 0x735f: 0xf0001f04, - 0x7360: 0xf0001f04, 0x7361: 0xf0001f04, 0x7362: 0xf0000404, 0x7363: 0xf0000404, - 0x7364: 0xf0000404, 0x7365: 0xf0000404, 0x7366: 0xf0000404, 0x7367: 0xf0000404, - 0x7368: 0xf0000404, 0x7369: 0xf0000404, 0x736a: 0xf0000404, 0x736b: 0xf0000404, - 0x736c: 0xf0000404, 0x736d: 0xf0000404, 0x736e: 0xf0000404, 0x736f: 0xf0000404, - 0x7370: 0xf0000404, 0x7371: 0xe0000c1e, 0x7372: 0xf0001c1c, 0x7373: 0xf0001d1d, - 0x7374: 0xe0000a31, 0x7375: 0xf0001d1c, 0x7376: 0xf0001c1c, 0x7377: 0xf0001c1c, - 0x7378: 0xe0000ac2, 0x7379: 0xe0000ac6, 0x737a: 0xe0002509, 0x737b: 0xf0001c1c, - 0x737c: 0xf0001c1c, 0x737d: 0xf0001c1c, 0x737e: 0xf0001c1c, 0x737f: 0xe0002431, - // Block 0x1ce, offset 0x7380 - 0x7380: 0xf0001d1c, 0x7381: 0xf0001d1d, 0x7382: 0xe00009b7, 0x7383: 0xe00024bc, - 0x7384: 0xf0001c1c, 0x7385: 0xf0001c1c, 0x7386: 0xe0000a66, 0x7387: 0xe0000a7a, - 0x7388: 0xf0001d1c, 0x7389: 0xf0001c1d, 0x738a: 0xf0001c1c, 0x738b: 0xf0001d1d, - 0x738c: 0xf0001c1c, 0x738d: 0xf0001d1d, 0x738e: 0xf0001d1d, 0x738f: 0xf0001c1c, - 0x7390: 0xf0001c1c, 0x7391: 0xf0001c1c, 0x7392: 0xe0000d0d, 0x7393: 0xe0002515, - 0x7394: 0xf0001c1c, 0x7395: 0xe0000d3a, 0x7396: 0xe0000d46, 0x7397: 0xf0001d1d, - 0x7398: 0xe0000eb0, 0x7399: 0xe0000eb8, 0x739a: 0xf0001d1d, 0x739b: 0xf0001c1c, - 0x739c: 0xf0001c1d, 0x739d: 0xf0001c1d, 0x739e: 0xe00010b2, 0x739f: 0xe00009c8, - 0x73a0: 0xf0001f04, 0x73a1: 0xf0001f04, 0x73a2: 0xf0001f04, 0x73a3: 0xf0001f04, - 0x73a4: 0xf0001f04, 0x73a5: 0xf0001f04, 0x73a6: 0xf0001f04, 0x73a7: 0xf0001f04, - 0x73a8: 0xf0001f04, 0x73a9: 0xf0000404, 0x73aa: 0xf0000404, 0x73ab: 0xf0000404, - 0x73ac: 0xf0000404, 0x73ad: 0xf0000404, 0x73ae: 0xf0000404, 0x73af: 0xf0000404, - 0x73b0: 0xf0000404, 0x73b1: 0xf0000404, 0x73b2: 0xf0000404, 0x73b3: 0xf0000404, - 0x73b4: 0xf0000404, 0x73b5: 0xf0000404, 0x73b6: 0xf0000404, 0x73b7: 0xf0000404, - 0x73b8: 0xf0000404, 0x73b9: 0xf0000404, 0x73ba: 0xf0000404, 0x73bb: 0xf0000404, - 0x73bc: 0xf0000404, 0x73bd: 0xf0000404, 0x73be: 0xf0000404, 0x73bf: 0xe0000bdf, - // Block 0x1cf, offset 0x73c0 - 0x73c0: 0x40073420, 0x73c1: 0x40073620, - 0x73d3: 0x003a269a, - 0x73d4: 0x003a2699, 0x73d5: 0x003a2697, 0x73d6: 0x003a2698, 0x73d7: 0x003a7c9a, - 0x73d8: 0x003a7c99, 0x73d9: 0x003a7a9a, 0x73da: 0x003a7a99, 0x73db: 0x003a7e9a, - 0x73dc: 0x003a7e99, 0x73dd: 0xf0001a1a, 0x73de: 0x003a849a, 0x73df: 0x003a8499, - 0x73e0: 0x003a789a, 0x73e1: 0x003a7899, 0x73e2: 0x003a809a, 0x73e3: 0x003a8099, - 0x73e4: 0x003a989a, 0x73e5: 0x003a9899, 0x73e6: 0x003a9897, 0x73e7: 0x003a9898, - 0x73e8: 0x003a92c3, 0x73e9: 0x003a92c4, 0x73ea: 0xe0001559, 0x73eb: 0xe0001556, - 0x73ec: 0xe0001589, 0x73ed: 0xe0001586, 0x73ee: 0xe000158f, 0x73ef: 0xe000158c, - 0x73f0: 0xe000159b, 0x73f1: 0xe0001598, 0x73f2: 0xe0001595, 0x73f3: 0xe0001592, - 0x73f4: 0xe00015a1, 0x73f5: 0xe000159e, 0x73f6: 0xe00015bf, 0x73f7: 0xe00015bc, - 0x73f8: 0xe00015b9, 0x73f9: 0xe00015ad, 0x73fa: 0xe00015a7, 0x73fb: 0xe00015a4, - 0x73fc: 0x003a929a, 0x73fd: 0x003a9299, 0x73fe: 0x003a9297, 0x73ff: 0x003a9298, - // Block 0x1d0, offset 0x7400 - 0x7400: 0xe000155f, 0x7401: 0xe0001565, 0x7402: 0xe000157a, 0x7403: 0xe00015b0, - 0x7404: 0xe00015b6, 0x7405: 0xf0001a1a, 0x7406: 0xf0001a1a, 0x7407: 0xf0001a1a, - 0x7408: 0xf0001a1a, 0x7409: 0xe0002554, 0x740a: 0xf0001a1a, 0x740b: 0xf0001a1a, - 0x740c: 0xf0001a1a, 0x740d: 0xf0001a1a, 0x740e: 0xf0001a1a, 0x740f: 0xe000255a, - 0x7410: 0xf0001a1a, 0x7411: 0xf0001a1a, 0x7412: 0xf0001a1a, 0x7413: 0xe0002560, - 0x7414: 0xf0001a1a, 0x7415: 0xf0001a1a, 0x7416: 0xf0001a1a, 0x7417: 0xf0001a1a, - 0x7418: 0xf0001a1a, 0x7419: 0xf0001a1a, 0x741a: 0xf0001a1a, 0x741b: 0xf0001a1a, - 0x741c: 0xf0001a1a, 0x741d: 0xf0001a1a, 0x741e: 0xf0001a1a, 0x741f: 0xf0001a1a, - 0x7420: 0xf0001a1a, 0x7421: 0xf0001a1a, 0x7422: 0xf0001a1a, 0x7423: 0xf0001a1a, - 0x7424: 0xf0001a1a, 0x7425: 0xf0001a1a, 0x7426: 0xf0001a1a, 0x7427: 0xf0001a1a, - 0x7428: 0xf0001a1a, 0x7429: 0xf0001a1a, 0x742a: 0xf0001a1a, 0x742b: 0xf0001a1a, - 0x742c: 0xf0001a1a, 0x742d: 0xf0001a1a, 0x742e: 0xf0001a1a, 0x742f: 0xf0001a1a, - 0x7430: 0xf0001a1a, 0x7431: 0xe00025a2, 0x7432: 0xf0001a1a, 0x7433: 0xf0001a1a, - 0x7434: 0xf0001a1a, 0x7435: 0xe00025a8, 0x7436: 0xf0001a1a, 0x7437: 0xf0001a1a, - 0x7438: 0xf0001a1a, 0x7439: 0xf0001a1a, 0x743a: 0xf0001a1a, 0x743b: 0xf0001a1a, - 0x743c: 0xf0001a1a, 0x743d: 0xe00025ae, 0x743e: 0xf0001a1a, 0x743f: 0xf0001a1a, - // Block 0x1d1, offset 0x7440 - 0x7440: 0xf0001a1a, 0x7441: 0xf0001a1a, 0x7442: 0xf0001a1a, 0x7443: 0xe00025b4, - 0x7444: 0xf0001a1a, 0x7445: 0xf0001a1a, 0x7446: 0xf0001a1a, 0x7447: 0xf0001a1a, - 0x7448: 0xf0001a1a, 0x7449: 0xe00025b7, 0x744a: 0xf0001a1a, 0x744b: 0xf0001a1a, - 0x744c: 0xf0001a1a, 0x744d: 0xf0001a1a, 0x744e: 0xf0001a1a, 0x744f: 0xe00025bd, - 0x7450: 0xf0001a1a, 0x7451: 0xf0001a1a, 0x7452: 0xf0001a1a, 0x7453: 0xe00025c0, - 0x7454: 0xf0001a1a, 0x7455: 0xf0001a1a, 0x7456: 0xf0001a1a, 0x7457: 0xf0001a1a, - 0x7458: 0xf0001a1a, 0x7459: 0xe00025cc, 0x745a: 0xf0001a1a, 0x745b: 0xf0001a1a, - 0x745c: 0xf0001a1a, 0x745d: 0xe00025c6, 0x745e: 0xe0000003, 0x745f: 0xe0000006, - 0x7460: 0xe0000009, 0x7461: 0xe000000c, 0x7462: 0xe000000f, 0x7463: 0xe0000012, - 0x7464: 0xe000156b, 0x7465: 0xe000156e, 0x7466: 0xe0001577, 0x7467: 0xe000157d, - 0x7468: 0xe00015aa, 0x7469: 0xe00015b3, 0x746a: 0xf0001919, 0x746b: 0xf0001919, - 0x746c: 0xf0001919, 0x746d: 0xf0001919, 0x746e: 0xe0002551, 0x746f: 0xf0001919, - 0x7470: 0xf0001919, 0x7471: 0xf0001919, 0x7472: 0xf0001919, 0x7473: 0xf0001919, - 0x7474: 0xe0002557, 0x7475: 0xf0001919, 0x7476: 0xf0001919, 0x7477: 0xf0001919, - 0x7478: 0xf0001919, 0x7479: 0xf0001919, 0x747a: 0xe000255d, 0x747b: 0xf0001919, - 0x747c: 0xe000259f, 0x747d: 0xf0001919, 0x747e: 0xe00025a5, 0x747f: 0xf0001919, - // Block 0x1d2, offset 0x7480 - 0x7480: 0xf0001919, 0x7481: 0xf0001919, 0x7482: 0xf0001919, 0x7483: 0xe00025ab, - 0x7484: 0xf0001919, 0x7485: 0xf0001919, 0x7486: 0xe00025b1, 0x7487: 0xf0001919, - 0x7488: 0xf0001919, 0x7489: 0xf0001919, 0x748a: 0xf0001919, 0x748b: 0xf0001919, - 0x748c: 0xf0001919, 0x748d: 0xf0001919, 0x748e: 0xe00025ba, 0x748f: 0xf0001919, - 0x7490: 0xe00025c3, 0x7491: 0xf0001919, 0x7492: 0xf0001919, 0x7493: 0xf0001919, - 0x7494: 0xf0001919, 0x7495: 0xe00025c9, 0x7496: 0xf0001919, 0x7497: 0xe000155c, - 0x7498: 0xe0001562, 0x7499: 0xe0001568, 0x749a: 0xe0001571, 0x749b: 0xe0001580, - 0x749c: 0xf0001717, 0x749d: 0xf0001717, 0x749e: 0xf0001717, 0x749f: 0xf0001717, - 0x74a0: 0xf0001717, 0x74a1: 0xf0001717, 0x74a2: 0xf0001717, 0x74a3: 0xf0001717, - 0x74a4: 0xf0001717, 0x74a5: 0xf0001717, 0x74a6: 0xf0001717, 0x74a7: 0xf0001717, - 0x74a8: 0xf0001717, 0x74a9: 0xf0001717, 0x74aa: 0xf0001717, 0x74ab: 0xf0001717, - 0x74ac: 0xf0001717, 0x74ad: 0xf0001717, 0x74ae: 0xf0001717, 0x74af: 0xf0001717, - 0x74b0: 0xf0001717, 0x74b1: 0xf0001717, 0x74b2: 0xf0001717, 0x74b3: 0xf0001717, - 0x74b4: 0xf0001717, 0x74b5: 0xf0001717, 0x74b6: 0xf0001717, 0x74b7: 0xf0001717, - 0x74b8: 0xf0001717, 0x74b9: 0xf0001717, 0x74ba: 0xf0001717, 0x74bb: 0xf0001717, - 0x74bc: 0xf0001717, 0x74bd: 0xf0001717, 0x74be: 0xf0001717, 0x74bf: 0xf0001717, - // Block 0x1d3, offset 0x74c0 - 0x74c0: 0xf0001717, 0x74c1: 0xf0001717, 0x74c2: 0xf0001717, 0x74c3: 0xf0001717, - 0x74c4: 0xf0001717, 0x74c5: 0xf0001717, 0x74c6: 0xf0001717, 0x74c7: 0xf0001717, - 0x74c8: 0xf0001717, 0x74c9: 0xf0001717, 0x74ca: 0xf0001717, 0x74cb: 0xf0001717, - 0x74cc: 0xf0001717, 0x74cd: 0xf0001717, 0x74ce: 0xf0001717, 0x74cf: 0xf0001717, - 0x74d0: 0xf0001717, 0x74d1: 0xf0001717, 0x74d2: 0xf0001717, 0x74d3: 0xf0001717, - 0x74d4: 0xf0001717, 0x74d5: 0xf0001717, 0x74d6: 0xf0001717, 0x74d7: 0xf0001717, - 0x74d8: 0xf0001717, 0x74d9: 0xf0001717, 0x74da: 0xf0001717, 0x74db: 0xf0001717, - 0x74dc: 0xf0001717, 0x74dd: 0xf0001717, 0x74de: 0xf0001717, 0x74df: 0xe0001574, - 0x74e0: 0xe0001583, 0x74e1: 0xf0001818, 0x74e2: 0xf0001818, 0x74e3: 0xf0001818, - 0x74e4: 0xf0001818, 0x74e5: 0xf0001818, 0x74e6: 0xf0001818, 0x74e7: 0xf0001818, - 0x74e8: 0xf0001818, 0x74e9: 0xf0001818, 0x74ea: 0xf0001818, 0x74eb: 0xf0001818, - 0x74ec: 0xf0001818, 0x74ed: 0xf0001818, 0x74ee: 0xf0001818, 0x74ef: 0xf0001818, - 0x74f0: 0xf0001818, 0x74f1: 0xf0001818, 0x74f2: 0xe000249f, 0x74f3: 0xe00024a2, - 0x74f4: 0xe00024a5, 0x74f5: 0xe0002590, 0x74f6: 0xf0001a1a, 0x74f7: 0xe0002596, - 0x74f8: 0xf0001a1a, 0x74f9: 0xe000259c, 0x74fa: 0xf0001a1a, 0x74fb: 0xe0002578, - 0x74fc: 0xf0001a1a, 0x74fd: 0xe000257e, 0x74fe: 0xf0001a1a, 0x74ff: 0xe000256c, - // Block 0x1d4, offset 0x7500 - 0x7500: 0xf0001a1a, 0x7501: 0xe0002566, 0x7502: 0xf0001a1a, 0x7503: 0xe0002572, - 0x7504: 0xf0001a1a, 0x7505: 0xe0002584, 0x7506: 0xf0001a1a, 0x7507: 0xe000258a, - 0x7508: 0xf0001a1a, 0x7509: 0xf0001a1a, 0x750a: 0xf0001a1a, 0x750b: 0xf0001a1a, - 0x750c: 0xf0001a1a, 0x750d: 0xf0001a1a, 0x750e: 0xf0001a1a, 0x750f: 0xf0001a1a, - 0x7510: 0xf0001a1a, 0x7511: 0xe000258d, 0x7512: 0xf0001919, 0x7513: 0xe0002593, - 0x7514: 0xf0001919, 0x7515: 0xe0002599, 0x7516: 0xf0001919, 0x7517: 0xe0002575, - 0x7518: 0xf0001919, 0x7519: 0xe000257b, 0x751a: 0xf0001919, 0x751b: 0xe0002569, - 0x751c: 0xf0001919, 0x751d: 0xe0002563, 0x751e: 0xf0001919, 0x751f: 0xe000256f, - 0x7520: 0xf0001919, 0x7521: 0xe0002581, 0x7522: 0xf0001919, 0x7523: 0xe0002587, - 0x7524: 0xf0001919, 0x7525: 0xf0001919, 0x7526: 0xf0001919, 0x7527: 0xf0001919, - 0x7528: 0xf0001919, 0x7529: 0xf0001919, 0x752a: 0xf0001919, 0x752b: 0xf0001919, - 0x752c: 0xf0001919, 0x752d: 0xf0001717, 0x752e: 0xf0001717, 0x752f: 0xf0001717, - 0x7530: 0xf0001717, 0x7531: 0xf0001717, 0x7532: 0xf0001717, 0x7533: 0xf0001717, - 0x7534: 0xf0001818, 0x7535: 0xf0001818, 0x7536: 0xf0001818, 0x7537: 0xf0001818, - 0x7538: 0xf0001818, 0x7539: 0xf0001818, 0x753a: 0xf0001818, 0x753b: 0xf0001818, - 0x753c: 0xf0001919, 0x753d: 0xf0001a1a, 0x753e: 0x4004c020, 0x753f: 0x4004c220, - // Block 0x1d5, offset 0x7540 - 0x7540: 0x00391c9a, 0x7541: 0x00393aa4, 0x7542: 0x00393aa3, 0x7543: 0x00393ac4, - 0x7544: 0x00393ac3, 0x7545: 0x003a76a4, 0x7546: 0x003a76a3, 0x7547: 0x00393ae4, - 0x7548: 0x00393ae3, 0x7549: 0x003a92a6, 0x754a: 0x003a92a5, 0x754b: 0x003a92a3, - 0x754c: 0x003a92a4, 0x754d: 0x00393884, 0x754e: 0x00393883, 0x754f: 0x00393c9a, - 0x7550: 0x00393c99, 0x7551: 0x00393c97, 0x7552: 0x00393c98, 0x7553: 0x003a6aa4, - 0x7554: 0x003a6aa3, 0x7555: 0x0039569a, 0x7556: 0x00395699, 0x7557: 0x00395697, - 0x7558: 0x00395698, 0x7559: 0x0039589a, 0x755a: 0x00395899, 0x755b: 0x00395897, - 0x755c: 0x00395898, 0x755d: 0x0039649a, 0x755e: 0x00396499, 0x755f: 0x00396497, - 0x7560: 0x00396498, 0x7561: 0x0039729a, 0x7562: 0x00397299, 0x7563: 0x00397297, - 0x7564: 0x00397298, 0x7565: 0x0039749a, 0x7566: 0x00397499, 0x7567: 0x00397497, - 0x7568: 0x00397498, 0x7569: 0x0039889a, 0x756a: 0x00398899, 0x756b: 0x00398a9a, - 0x756c: 0x00398a99, 0x756d: 0x0039a49a, 0x756e: 0x0039a499, 0x756f: 0x0039a69a, - 0x7570: 0x0039a699, 0x7571: 0x0039c69a, 0x7572: 0x0039c699, 0x7573: 0x0039c697, - 0x7574: 0x0039c698, 0x7575: 0x0039c89a, 0x7576: 0x0039c899, 0x7577: 0x0039c897, - 0x7578: 0x0039c898, 0x7579: 0x0039dc9a, 0x757a: 0x0039dc99, 0x757b: 0x0039dc97, - 0x757c: 0x0039dc98, 0x757d: 0x0039de9a, 0x757e: 0x0039de99, 0x757f: 0x0039de97, - // Block 0x1d6, offset 0x7580 - 0x7580: 0x0039de98, 0x7581: 0x0039e69a, 0x7582: 0x0039e699, 0x7583: 0x0039e697, - 0x7584: 0x0039e698, 0x7585: 0x0039e89a, 0x7586: 0x0039e899, 0x7587: 0x0039e897, - 0x7588: 0x0039e898, 0x7589: 0x0039ee9a, 0x758a: 0x0039ee99, 0x758b: 0x0039ee97, - 0x758c: 0x0039ee98, 0x758d: 0x0039f09a, 0x758e: 0x0039f099, 0x758f: 0x0039f097, - 0x7590: 0x0039f098, 0x7591: 0x0039fc9a, 0x7592: 0x0039fc99, 0x7593: 0x0039fc97, - 0x7594: 0x0039fc98, 0x7595: 0x003a129a, 0x7596: 0x003a1299, 0x7597: 0x003a1297, - 0x7598: 0x003a1298, 0x7599: 0x003a1a9a, 0x759a: 0x003a1a99, 0x759b: 0x003a1a97, - 0x759c: 0x003a1a98, 0x759d: 0x003a409a, 0x759e: 0x003a4099, 0x759f: 0x003a4097, - 0x75a0: 0x003a4098, 0x75a1: 0x003a4e9a, 0x75a2: 0x003a4e99, 0x75a3: 0x003a4e97, - 0x75a4: 0x003a4e98, 0x75a5: 0x003a569a, 0x75a6: 0x003a5699, 0x75a7: 0x003a5697, - 0x75a8: 0x003a5698, 0x75a9: 0x003a6886, 0x75aa: 0x003a6885, 0x75ab: 0x003a6883, - 0x75ac: 0x003a6884, 0x75ad: 0x003a7485, 0x75ae: 0x003a7484, 0x75af: 0x003a92c6, - 0x75b0: 0x003a92c5, 0x75b1: 0x003a9087, 0x75b2: 0x003a9086, 0x75b3: 0x003a9084, - 0x75b4: 0x003a9085, 0x75b5: 0xe0001732, 0x75b6: 0xe000172f, 0x75b7: 0xe0001738, - 0x75b8: 0xe0001735, 0x75b9: 0xe000173e, 0x75ba: 0xe000173b, 0x75bb: 0xf0001a1a, - 0x75bc: 0xf0001919, 0x75bf: 0xa0000000, - // Block 0x1d7, offset 0x75c0 - 0x75c0: 0xf0001f04, 0x75c1: 0xf0001f04, 0x75c2: 0xf0001f04, 0x75c3: 0xf0001f04, - 0x75c4: 0xf0001f04, 0x75c5: 0xf0001f04, 0x75c6: 0xf0001f04, 0x75c7: 0xf0001f04, - 0x75c8: 0xf0001f04, 0x75c9: 0xf0001f04, 0x75ca: 0xf0001f04, - 0x75d0: 0xf0000a04, 0x75d1: 0xf0000a04, 0x75d2: 0xf0000a04, 0x75d3: 0xf0000a04, - 0x75d4: 0xf0000a04, 0x75d5: 0xf0000a04, 0x75d6: 0xf0000a04, 0x75d7: 0xf0000a04, - 0x75d8: 0xe00024a8, 0x75d9: 0xf0000a04, 0x75da: 0xf0000a04, 0x75db: 0xf0000a04, - 0x75dc: 0xf0000a04, 0x75dd: 0xf0000a04, 0x75de: 0xf0000a04, 0x75df: 0xf0000a04, - 0x75e0: 0xe00024b0, 0x75e1: 0xf0000a04, 0x75e2: 0xf0000a04, 0x75e3: 0xf0000a04, - 0x75e4: 0xf0000a04, 0x75e5: 0xf0000a04, 0x75e6: 0xf0000a04, 0x75e7: 0xe00024b8, - 0x75e8: 0xf0000a04, 0x75e9: 0xf0000a04, 0x75ea: 0xf0000a04, 0x75eb: 0x002c3a8c, - 0x75ec: 0x002f7a8c, 0x75ed: 0xf0000c0c, 0x75ee: 0xf0000c0c, - 0x75f0: 0x002bde9d, 0x75f1: 0x002c0a9d, 0x75f2: 0x002c3a9d, 0x75f3: 0x002c629d, - 0x75f4: 0x002c989d, 0x75f5: 0x002d089d, 0x75f6: 0x002d229d, 0x75f7: 0x002d689d, - 0x75f8: 0x002d9a9d, 0x75f9: 0x002dcc9d, 0x75fa: 0x002dfe9d, 0x75fb: 0x002e229d, - 0x75fc: 0x002e829d, 0x75fd: 0x002e9e9d, 0x75fe: 0x002ee29d, 0x75ff: 0x002f2c9d, - // Block 0x1d8, offset 0x7600 - 0x7600: 0xa0000000, 0x7601: 0xa0000000, 0x7602: 0xa0000000, 0x7603: 0xa0000000, - 0x7604: 0xa0000000, 0x7605: 0xa0000000, 0x7606: 0xa0000000, 0x7607: 0xa0000000, - 0x7608: 0xa0000000, 0x7609: 0x40020020, 0x760a: 0x40020220, 0x760b: 0x40020420, - 0x760c: 0x40020620, 0x760d: 0x40020820, 0x760e: 0xa0000000, 0x760f: 0xa0000000, - 0x7610: 0xa0000000, 0x7611: 0xa0000000, 0x7612: 0xa0000000, 0x7613: 0xa0000000, - 0x7614: 0xa0000000, 0x7615: 0xa0000000, 0x7616: 0xa0000000, 0x7617: 0xa0000000, - 0x7618: 0xa0000000, 0x7619: 0xa0000000, 0x761a: 0xa0000000, 0x761b: 0xa0000000, - 0x761c: 0xa0000000, 0x761d: 0xa0000000, 0x761e: 0xa0000000, 0x761f: 0xa0000000, - 0x7620: 0x40021220, 0x7621: 0x4002ba20, 0x7622: 0x4003e020, 0x7623: 0x4004ea20, - 0x7624: 0x4027de20, 0x7625: 0x4004ec20, 0x7626: 0x4004e620, 0x7627: 0x4003d220, - 0x7628: 0x4003f420, 0x7629: 0x4003f620, 0x762a: 0x4004d820, 0x762b: 0x40093820, - 0x762c: 0x40024020, 0x762d: 0x40021a20, 0x762e: 0x4002e420, 0x762f: 0x4004e220, - 0x7630: 0x4029cc20, 0x7631: 0x4029ce20, 0x7632: 0x4029d020, 0x7633: 0x4029d220, - 0x7634: 0x4029d420, 0x7635: 0x4029d620, 0x7636: 0x4029d820, 0x7637: 0x4029da20, - 0x7638: 0x4029dc20, 0x7639: 0x4029de20, 0x763a: 0x40026c20, 0x763b: 0x40026220, - 0x763c: 0x40094020, 0x763d: 0xc32f0851, 0x763e: 0x40094420, 0x763f: 0x4002c420, - // Block 0x1d9, offset 0x7640 - 0x7640: 0x4004d620, 0x7641: 0x002bde88, 0x7642: 0x002c0a88, 0x7643: 0x002c3a88, - 0x7644: 0x002c6288, 0x7645: 0x002c9888, 0x7646: 0x002d0888, 0x7647: 0x002d2288, - 0x7648: 0x002d6888, 0x7649: 0x002d9a88, 0x764a: 0x002dcc88, 0x764b: 0x002dfe88, - 0x764c: 0xc3520002, 0x764d: 0x002e8288, 0x764e: 0x002e9e88, 0x764f: 0x002ee288, - 0x7650: 0x002f2c88, 0x7651: 0x002f5688, 0x7652: 0x002f7a88, 0x7653: 0x002fe688, - 0x7654: 0x00302c88, 0x7655: 0x00306c88, 0x7656: 0x0030be88, 0x7657: 0x0030e288, - 0x7658: 0x0030f688, 0x7659: 0x00310088, 0x765a: 0x00312a88, 0x765b: 0x4003f820, - 0x765c: 0x4004e420, 0x765d: 0x4003fa20, 0x765e: 0x40062420, 0x765f: 0x40021620, - 0x7660: 0x40061e20, 0x7661: 0x402bde20, 0x7662: 0x402c0a20, 0x7663: 0x402c3a20, - 0x7664: 0x402c6220, 0x7665: 0x402c9820, 0x7666: 0x402d0820, 0x7667: 0x402d2220, - 0x7668: 0x402d6820, 0x7669: 0x402d9a20, 0x766a: 0x402dcc20, 0x766b: 0x402dfe20, - 0x766c: 0xc34f0002, 0x766d: 0x402e8220, 0x766e: 0x402e9e20, 0x766f: 0x402ee220, - 0x7670: 0x402f2c20, 0x7671: 0x402f5620, 0x7672: 0x402f7a20, 0x7673: 0x402fe620, - 0x7674: 0x40302c20, 0x7675: 0x40306c20, 0x7676: 0x4030be20, 0x7677: 0x4030e220, - 0x7678: 0x4030f620, 0x7679: 0x40310020, 0x767a: 0x40312a20, 0x767b: 0x4003fc20, - 0x767c: 0x40094820, 0x767d: 0x4003fe20, 0x767e: 0x40094c20, 0x767f: 0xa0000000, - // Block 0x1da, offset 0x7680 - 0x7680: 0xe0000983, 0x7681: 0xe0000980, 0x7682: 0xe00008fb, 0x7683: 0xe00008f8, - 0x7684: 0xe000097d, 0x7685: 0xe000097a, 0x7686: 0xe0000a38, 0x7687: 0xe0000a35, - 0x7688: 0xe0000a3e, 0x7689: 0xe0000a3b, 0x768a: 0xe0000a4a, 0x768b: 0xe0000a47, - 0x768c: 0xe0000a44, 0x768d: 0xe0000a41, 0x768e: 0xe0000a86, 0x768f: 0xe0000a83, - 0x7690: 0xe0000aaa, 0x7691: 0xe0000aa7, 0x7692: 0xe0000b46, 0x7693: 0xe0000b43, - 0x7694: 0xe0000aee, 0x7695: 0xe0000aeb, 0x7696: 0xe0000b2c, 0x7697: 0xe0000b29, - 0x7698: 0xe0000b40, 0x7699: 0xe0000b3d, 0x769a: 0xe0000b1a, 0x769b: 0xe0000b17, - 0x769c: 0xe0000bb8, 0x769d: 0xe0000bb5, 0x769e: 0xe0000bb2, 0x769f: 0xe0000baf, - 0x76a0: 0xe0000bc4, 0x76a1: 0xe0000bc1, 0x76a2: 0xe0000bca, 0x76a3: 0xe0000bc7, - 0x76a4: 0xe0000bee, 0x76a5: 0xe0000beb, 0x76a6: 0xe0000c1b, 0x76a7: 0xe0000c18, - 0x76a8: 0xe0000c51, 0x76a9: 0xe0000c4e, 0x76aa: 0xe0000c60, 0x76ab: 0xe0000c5d, - 0x76ac: 0xe0000c31, 0x76ad: 0xe0000c2e, 0x76ae: 0xe0000c5a, 0x76af: 0xe0000c57, - 0x76b0: 0xe0000c54, 0x76b1: 0x402da220, 0x76b2: 0xf0000a0a, 0x76b3: 0xf0000404, - 0x76b4: 0xe0000c8a, 0x76b5: 0xe0000c87, 0x76b6: 0xe0000c9f, 0x76b7: 0xe0000c9c, - 0x76b8: 0x402f7220, 0x76b9: 0xe0000ccc, 0x76ba: 0xe0000cc9, 0x76bb: 0xe0000cd8, - 0x76bc: 0xe0000cd5, 0x76bd: 0xe0000cd2, 0x76be: 0xe0000ccf, 0x76bf: 0x002e2483, - // Block 0x1db, offset 0x76c0 - 0x76c0: 0x402e2420, 0x76c1: 0xe0000cf8, 0x76c2: 0xe0000cf5, 0x76c3: 0xe0000d51, - 0x76c4: 0xe0000d4e, 0x76c5: 0xe0000d6f, 0x76c6: 0xe0000d6c, 0x76c7: 0xe0000d5d, - 0x76c8: 0xe0000d5a, 0x76c9: 0xf0000404, 0x76ca: 0x002eda88, 0x76cb: 0x402eda20, - 0x76cc: 0xe0000e2e, 0x76cd: 0xe0000e2b, 0x76ce: 0xe0000da0, 0x76cf: 0xe0000d9d, - 0x76d0: 0xe0000de0, 0x76d1: 0xe0000ddd, 0x76d2: 0xe0000e93, 0x76d3: 0xe0000e8f, - 0x76d4: 0xe0000eca, 0x76d5: 0xe0000ec7, 0x76d6: 0xe0000edc, 0x76d7: 0xe0000ed9, - 0x76d8: 0xe0000ed0, 0x76d9: 0xe0000ecd, 0x76da: 0xe0000f1f, 0x76db: 0xe0000f1c, - 0x76dc: 0xe0000f2d, 0x76dd: 0xe0000f2a, 0x76de: 0xe0000f47, 0x76df: 0xe0000f44, - 0x76e0: 0xe0000f33, 0x76e1: 0xe0000f30, 0x76e2: 0xe0000f99, 0x76e3: 0xe0000f96, - 0x76e4: 0xe0000f8a, 0x76e5: 0xe0000f87, 0x76e6: 0x00303688, 0x76e7: 0x40303620, - 0x76e8: 0xe000102b, 0x76e9: 0xe0001028, 0x76ea: 0xe000103f, 0x76eb: 0xe000103c, - 0x76ec: 0xe0000fe7, 0x76ed: 0xe0000fe4, 0x76ee: 0xe0000ff9, 0x76ef: 0xe0000ff6, - 0x76f0: 0xe0001025, 0x76f1: 0xe0001022, 0x76f2: 0xe0001039, 0x76f3: 0xe0001036, - 0x76f4: 0xe00010d8, 0x76f5: 0xe00010d5, 0x76f6: 0xe000110e, 0x76f7: 0xe000110b, - 0x76f8: 0xe0001117, 0x76f9: 0xe000113b, 0x76fa: 0xe0001138, 0x76fb: 0xe000114d, - 0x76fc: 0xe000114a, 0x76fd: 0xe0001147, 0x76fe: 0xe0001144, 0x76ff: 0xe0000f64, - // Block 0x1dc, offset 0x7700 - 0x7700: 0xa0000000, 0x7701: 0xa0000000, 0x7702: 0xa0000000, 0x7703: 0xa0000000, - 0x7704: 0xa0000000, 0x7705: 0xa0000000, 0x7706: 0xa0000000, 0x7707: 0xa0000000, - 0x7708: 0xa0000000, 0x7709: 0x40020020, 0x770a: 0x40020220, 0x770b: 0x40020420, - 0x770c: 0x40020620, 0x770d: 0x40020820, 0x770e: 0xa0000000, 0x770f: 0xa0000000, - 0x7710: 0xa0000000, 0x7711: 0xa0000000, 0x7712: 0xa0000000, 0x7713: 0xa0000000, - 0x7714: 0xa0000000, 0x7715: 0xa0000000, 0x7716: 0xa0000000, 0x7717: 0xa0000000, - 0x7718: 0xa0000000, 0x7719: 0xa0000000, 0x771a: 0xa0000000, 0x771b: 0xa0000000, - 0x771c: 0xa0000000, 0x771d: 0xa0000000, 0x771e: 0xa0000000, 0x771f: 0xa0000000, - 0x7720: 0x40021220, 0x7721: 0x4002ba20, 0x7722: 0x4003e020, 0x7723: 0x4004ea20, - 0x7724: 0x4027de20, 0x7725: 0x4004ec20, 0x7726: 0x4004e620, 0x7727: 0x4003d220, - 0x7728: 0x4003f420, 0x7729: 0x4003f620, 0x772a: 0x4004d820, 0x772b: 0x40093820, - 0x772c: 0x40024020, 0x772d: 0x40021a20, 0x772e: 0x4002e420, 0x772f: 0x4004e220, - 0x7730: 0x4029cc20, 0x7731: 0x4029ce20, 0x7732: 0x4029d020, 0x7733: 0x4029d220, - 0x7734: 0x4029d420, 0x7735: 0x4029d620, 0x7736: 0x4029d820, 0x7737: 0x4029da20, - 0x7738: 0x4029dc20, 0x7739: 0x4029de20, 0x773a: 0x40026c20, 0x773b: 0x40026220, - 0x773c: 0x40094020, 0x773d: 0xc32f0851, 0x773e: 0x40094420, 0x773f: 0x4002c420, - // Block 0x1dd, offset 0x7740 - 0x7740: 0x4004d620, 0x7741: 0xc35708b1, 0x7742: 0x002c0a88, 0x7743: 0xc33308d1, - 0x7744: 0xc35b08d1, 0x7745: 0xc36008f1, 0x7746: 0x002d0888, 0x7747: 0x002d2288, - 0x7748: 0x002d6888, 0x7749: 0xc36508b1, 0x774a: 0x002dcc88, 0x774b: 0x002dfe88, - 0x774c: 0xc0030002, 0x774d: 0x002e8288, 0x774e: 0xc36908d1, 0x774f: 0xc33d08b1, - 0x7750: 0x002f2c88, 0x7751: 0x002f5688, 0x7752: 0xc36d08d1, 0x7753: 0xc34108d1, - 0x7754: 0xc37108d1, 0x7755: 0xc3760921, 0x7756: 0x0030be88, 0x7757: 0x0030e288, - 0x7758: 0x0030f688, 0x7759: 0xc37b08b1, 0x775a: 0xc37f08d1, 0x775b: 0x4003f820, - 0x775c: 0x4004e420, 0x775d: 0x4003fa20, 0x775e: 0x40062420, 0x775f: 0x40021620, - 0x7760: 0x40061e20, 0x7761: 0xc35508b1, 0x7762: 0x402c0a20, 0x7763: 0xc33108d1, - 0x7764: 0xc35908d1, 0x7765: 0xc35d08f1, 0x7766: 0x402d0820, 0x7767: 0x402d2220, - 0x7768: 0x402d6820, 0x7769: 0xc36308b1, 0x776a: 0x402dcc20, 0x776b: 0x402dfe20, - 0x776c: 0xc0000002, 0x776d: 0x402e8220, 0x776e: 0xc36708d1, 0x776f: 0xc33b08b1, - 0x7770: 0x402f2c20, 0x7771: 0x402f5620, 0x7772: 0xc36b08d1, 0x7773: 0xc33f08d1, - 0x7774: 0xc36f08d1, 0x7775: 0xc3730921, 0x7776: 0x4030be20, 0x7777: 0x4030e220, - 0x7778: 0x4030f620, 0x7779: 0xc37908b1, 0x777a: 0xc37d08d1, 0x777b: 0x4003fc20, - 0x777c: 0x40094820, 0x777d: 0x4003fe20, 0x777e: 0x40094c20, 0x777f: 0xa0000000, - // Block 0x1de, offset 0x7780 - 0x7780: 0xe00008f5, 0x7781: 0x002be083, 0x7782: 0xe0000921, 0x7783: 0xe0000969, - 0x7784: 0xe000095b, 0x7785: 0xe000094d, 0x7786: 0xe00009dd, 0x7787: 0xe0000a53, - 0x7788: 0xe0000ae8, 0x7789: 0x002c9a83, 0x778a: 0xe0000af4, 0x778b: 0xe0000b20, - 0x778c: 0xe0000c2b, 0x778d: 0x002d9c83, 0x778e: 0xe0000c37, 0x778f: 0xe0000c43, - 0x7790: 0xe0000ab3, 0x7791: 0xe0000d63, 0x7792: 0xe0000d9a, 0x7793: 0x002ee483, - 0x7794: 0xe0000da6, 0x7795: 0xe0000de6, 0x7796: 0xe0000dd2, 0x7797: 0x40093e20, - 0x7798: 0xe0000e12, 0x7799: 0xe0000fe1, 0x779a: 0x00306e83, 0x779b: 0xe0000fed, - 0x779c: 0xe0000fff, 0x779d: 0x00310283, 0x779e: 0x00318888, 0x779f: 0xe0000f7b, - 0x77a0: 0xe00008f2, 0x77a1: 0x402be020, 0x77a2: 0xe000091e, 0x77a3: 0xe0000966, - 0x77a4: 0xe0000958, 0x77a5: 0xe000094a, 0x77a6: 0xe00009d5, 0x77a7: 0xe0000a4d, - 0x77a8: 0xe0000ae5, 0x77a9: 0x402c9a20, 0x77aa: 0xe0000af1, 0x77ab: 0xe0000b1d, - 0x77ac: 0xe0000c28, 0x77ad: 0x402d9c20, 0x77ae: 0xe0000c34, 0x77af: 0xe0000c40, - 0x77b0: 0xe0000aad, 0x77b1: 0xe0000d60, 0x77b2: 0xe0000d97, 0x77b3: 0x402ee420, - 0x77b4: 0xe0000da3, 0x77b5: 0xe0000de3, 0x77b6: 0xe0000dcf, 0x77b7: 0x40093c20, - 0x77b8: 0xe0000e0f, 0x77b9: 0xe0000fde, 0x77ba: 0x40306e20, 0x77bb: 0xe0000fea, - 0x77bc: 0xe0000ffc, 0x77bd: 0x40310220, 0x77be: 0x40318820, 0x77bf: 0xe0001114, - // Block 0x1df, offset 0x77c0 - 0x77c0: 0xe0000983, 0x77c1: 0xe0000980, 0x77c2: 0xe00008fb, 0x77c3: 0xe00008f8, - 0x77c4: 0xe000097d, 0x77c5: 0xe000097a, 0x77c6: 0xe0000a38, 0x77c7: 0xe0000a35, - 0x77c8: 0xe0000a3e, 0x77c9: 0xe0000a3b, 0x77ca: 0xe0000a4a, 0x77cb: 0xe0000a47, - 0x77cc: 0x002c3c83, 0x77cd: 0x402c3c20, 0x77ce: 0x002c6483, 0x77cf: 0x402c6420, - 0x77d0: 0xe0000aaa, 0x77d1: 0xe0000aa7, 0x77d2: 0xe0000b46, 0x77d3: 0xe0000b43, - 0x77d4: 0xe0000aee, 0x77d5: 0xe0000aeb, 0x77d6: 0xe0000b2c, 0x77d7: 0xe0000b29, - 0x77d8: 0xe0000b40, 0x77d9: 0xe0000b3d, 0x77da: 0x002c9c83, 0x77db: 0x402c9c20, - 0x77dc: 0xe0000bb8, 0x77dd: 0xe0000bb5, 0x77de: 0xe0000bb2, 0x77df: 0xe0000baf, - 0x77e0: 0xe0000bc4, 0x77e1: 0xe0000bc1, 0x77e2: 0xe0000bca, 0x77e3: 0xe0000bc7, - 0x77e4: 0xe0000bee, 0x77e5: 0xe0000beb, 0x77e6: 0xe0000c1b, 0x77e7: 0xe0000c18, - 0x77e8: 0xe0000c51, 0x77e9: 0xe0000c4e, 0x77ea: 0xe0000c60, 0x77eb: 0xe0000c5d, - 0x77ec: 0xe0000c31, 0x77ed: 0xe0000c2e, 0x77ee: 0xe0000c5a, 0x77ef: 0xe0000c57, - 0x77f0: 0xe0000c54, 0x77f1: 0x402da220, 0x77f2: 0xf0000a0a, 0x77f3: 0xf0000404, - 0x77f4: 0xe0000c8a, 0x77f5: 0xe0000c87, 0x77f6: 0xe0000c9f, 0x77f7: 0xe0000c9c, - 0x77f8: 0x402f7220, 0x77f9: 0xe0000ccc, 0x77fa: 0xe0000cc9, 0x77fb: 0xe0000cd8, - 0x77fc: 0xe0000cd5, 0x77fd: 0xe0000cd2, 0x77fe: 0xe0000ccf, 0x77ff: 0xe0000d04, - // Block 0x1e0, offset 0x7800 - 0x7800: 0xe0000cfe, 0x7801: 0xe0000cf8, 0x7802: 0xe0000cf5, 0x7803: 0xe0000d51, - 0x7804: 0xe0000d4e, 0x7805: 0xe0000d6f, 0x7806: 0xe0000d6c, 0x7807: 0x002ea083, - 0x7808: 0x402ea020, 0x7809: 0xf0000404, 0x780a: 0x002eda88, 0x780b: 0x402eda20, - 0x780c: 0xe0000e2e, 0x780d: 0xe0000e2b, 0x780e: 0xe0000da0, 0x780f: 0xe0000d9d, - 0x7810: 0xe0000de0, 0x7811: 0xe0000ddd, 0x7812: 0xe0000e93, 0x7813: 0xe0000e8f, - 0x7814: 0xe0000eca, 0x7815: 0xe0000ec7, 0x7816: 0xe0000edc, 0x7817: 0xe0000ed9, - 0x7818: 0x002f7c83, 0x7819: 0x402f7c20, 0x781a: 0xe0000f1f, 0x781b: 0xe0000f1c, - 0x781c: 0xe0000f2d, 0x781d: 0xe0000f2a, 0x781e: 0xe0000f47, 0x781f: 0xe0000f44, - 0x7820: 0x002fe883, 0x7821: 0x402fe820, 0x7822: 0xe0000f99, 0x7823: 0xe0000f96, - 0x7824: 0x00302e83, 0x7825: 0x40302e20, 0x7826: 0x00303688, 0x7827: 0x40303620, - 0x7828: 0xe000102b, 0x7829: 0xe0001028, 0x782a: 0xe000103f, 0x782b: 0xe000103c, - 0x782c: 0xe0000fe7, 0x782d: 0xe0000fe4, 0x782e: 0x00307083, 0x782f: 0x40307020, - 0x7830: 0xe0001025, 0x7831: 0xe0001022, 0x7832: 0xe0001039, 0x7833: 0xe0001036, - 0x7834: 0xe00010d8, 0x7835: 0xe00010d5, 0x7836: 0xe000110e, 0x7837: 0xe000110b, - 0x7838: 0xe0001117, 0x7839: 0xe000113b, 0x783a: 0xe0001138, 0x783b: 0xe000114d, - 0x783c: 0xe000114a, 0x783d: 0x00312c83, 0x783e: 0x40312c20, 0x783f: 0xe0000f64, - // Block 0x1e1, offset 0x7840 - 0x7840: 0x40321220, 0x7841: 0x40321a20, 0x7842: 0x40322220, 0x7843: 0x40322a20, - 0x7844: 0xe0000ad5, 0x7845: 0xe0000ad1, 0x7846: 0xe0000acd, 0x7847: 0xf0000a0a, - 0x7848: 0xf000040a, 0x7849: 0xf0000404, 0x784a: 0xf0000a0a, 0x784b: 0xf000040a, - 0x784c: 0xf0000404, 0x784d: 0xe0000947, 0x784e: 0xe0000944, 0x784f: 0xe0000c3d, - 0x7850: 0xe0000c3a, 0x7851: 0xe0000dcc, 0x7852: 0xe0000dc9, 0x7853: 0xe0000ff3, - 0x7854: 0xe0000ff0, 0x7855: 0xe000101e, 0x7856: 0xe000101a, 0x7857: 0xe0002658, - 0x7858: 0xe0002655, 0x7859: 0xe0001016, 0x785a: 0xe0001012, 0x785b: 0xe000100e, - 0x785c: 0xe000100a, 0x785d: 0x402cae20, 0x785e: 0xe0000962, 0x785f: 0xe000095e, - 0x7860: 0xe0000976, 0x7861: 0xe0000972, 0x7862: 0xe00009f4, 0x7863: 0xe00009ef, - 0x7864: 0x002d3a88, 0x7865: 0x402d3a20, 0x7866: 0xe0000bbe, 0x7867: 0xe0000bbb, - 0x7868: 0xe0000c99, 0x7869: 0xe0000c96, 0x786a: 0xe0000e20, 0x786b: 0xe0000e1d, - 0x786c: 0xe0000e27, 0x786d: 0xe0000e23, 0x786e: 0xe0001162, 0x786f: 0xe000115f, - 0x7870: 0xe0000c8d, 0x7871: 0xf0000a0a, 0x7872: 0xf000040a, 0x7873: 0xf0000404, - 0x7874: 0xe0000bac, 0x7875: 0xe0000ba9, 0x7876: 0x002d7888, 0x7877: 0x00319488, - 0x7878: 0xe0000d57, 0x7879: 0xe0000d54, 0x787a: 0xe000262e, 0x787b: 0xe000262b, - 0x787c: 0xe00009ea, 0x787d: 0xe00009e5, 0x787e: 0xe0000e19, 0x787f: 0xe0000e15, - // Block 0x1e2, offset 0x7880 - 0x7880: 0xe00009b1, 0x7881: 0xe00009ae, 0x7882: 0xe0000a22, 0x7883: 0xe0000a1f, - 0x7884: 0xe0000a28, 0x7885: 0xe0000a25, 0x7886: 0xe0000a2e, 0x7887: 0xe0000a2b, - 0x7888: 0xe0000a5a, 0x7889: 0xe0000a56, 0x788a: 0xe0000a8c, 0x788b: 0xe0000a89, - 0x788c: 0xe0000a98, 0x788d: 0xe0000a95, 0x788e: 0xe0000aa4, 0x788f: 0xe0000aa1, - 0x7890: 0xe0000a92, 0x7891: 0xe0000a8f, 0x7892: 0xe0000a9e, 0x7893: 0xe0000a9b, - 0x7894: 0xe0000b55, 0x7895: 0xe0000b51, 0x7896: 0xe000263a, 0x7897: 0xe0002637, - 0x7898: 0xe0000b7c, 0x7899: 0xe0000b79, 0x789a: 0xe0000b82, 0x789b: 0xe0000b7f, - 0x789c: 0xe0000b39, 0x789d: 0xe0000b35, 0x789e: 0xe0000b8c, 0x789f: 0xe0000b89, - 0x78a0: 0xe0000bd0, 0x78a1: 0xe0000bcd, 0x78a2: 0xe0000c00, 0x78a3: 0xe0000bfd, - 0x78a4: 0xe0000c0c, 0x78a5: 0xe0000c09, 0x78a6: 0xe0000bfa, 0x78a7: 0xe0000bf7, - 0x78a8: 0xe0000c06, 0x78a9: 0xe0000c03, 0x78aa: 0xe0000c12, 0x78ab: 0xe0000c0f, - 0x78ac: 0xe0000c7e, 0x78ad: 0xe0000c7b, 0x78ae: 0xe0002640, 0x78af: 0xe000263d, - 0x78b0: 0xe0000c93, 0x78b1: 0xe0000c90, 0x78b2: 0xe0000cab, 0x78b3: 0xe0000ca8, - 0x78b4: 0xe0000cb1, 0x78b5: 0xe0000cae, 0x78b6: 0xe0000cde, 0x78b7: 0xe0000cdb, - 0x78b8: 0xe0000ce5, 0x78b9: 0xe0000ce1, 0x78ba: 0xe0000cf2, 0x78bb: 0xe0000cef, - 0x78bc: 0xe0000cec, 0x78bd: 0xe0000ce9, 0x78be: 0xe0000d1e, 0x78bf: 0xe0000d1b, - // Block 0x1e3, offset 0x78c0 - 0x78c0: 0xe0000d24, 0x78c1: 0xe0000d21, 0x78c2: 0xe0000d2a, 0x78c3: 0xe0000d27, - 0x78c4: 0xe0000d69, 0x78c5: 0xe0000d66, 0x78c6: 0xe0000d7b, 0x78c7: 0xe0000d78, - 0x78c8: 0xe0000d87, 0x78c9: 0xe0000d84, 0x78ca: 0xe0000d81, 0x78cb: 0xe0000d7e, - 0x78cc: 0xe000251b, 0x78cd: 0xe0002518, 0x78ce: 0xe0000df5, 0x78cf: 0xe0000df1, - 0x78d0: 0xe0000e3d, 0x78d1: 0xe0000e39, 0x78d2: 0xe0002521, 0x78d3: 0xe000251e, - 0x78d4: 0xe0000ea7, 0x78d5: 0xe0000ea4, 0x78d6: 0xe0000ead, 0x78d7: 0xe0000eaa, - 0x78d8: 0xe0000ed6, 0x78d9: 0xe0000ed3, 0x78da: 0xe0000ef4, 0x78db: 0xe0000ef1, - 0x78dc: 0xe0000efb, 0x78dd: 0xe0000ef7, 0x78de: 0xe0000f02, 0x78df: 0xe0000eff, - 0x78e0: 0xe0000f41, 0x78e1: 0xe0000f3e, 0x78e2: 0xe0000f53, 0x78e3: 0xe0000f50, - 0x78e4: 0xe0000f26, 0x78e5: 0xe0000f22, 0x78e6: 0xe0002652, 0x78e7: 0xe000264f, - 0x78e8: 0xe0000f5a, 0x78e9: 0xe0000f56, 0x78ea: 0xe0000f93, 0x78eb: 0xe0000f90, - 0x78ec: 0xe0000f9f, 0x78ed: 0xe0000f9c, 0x78ee: 0xe0000fb1, 0x78ef: 0xe0000fae, - 0x78f0: 0xe0000fab, 0x78f1: 0xe0000fa8, 0x78f2: 0xe0001093, 0x78f3: 0xe0001090, - 0x78f4: 0xe000109f, 0x78f5: 0xe000109c, 0x78f6: 0xe0001099, 0x78f7: 0xe0001096, - 0x78f8: 0xe000265e, 0x78f9: 0xe000265b, 0x78fa: 0xe0001046, 0x78fb: 0xe0001042, - 0x78fc: 0xe00010a9, 0x78fd: 0xe00010a6, 0x78fe: 0xe00010af, 0x78ff: 0xe00010ac, - // Block 0x1e4, offset 0x7900 - 0x7900: 0xe00010d2, 0x7901: 0xe00010cf, 0x7902: 0xe00010cc, 0x7903: 0xe00010c9, - 0x7904: 0xe00010e1, 0x7905: 0xe00010de, 0x7906: 0xe00010e7, 0x7907: 0xe00010e4, - 0x7908: 0xe00010ed, 0x7909: 0xe00010ea, 0x790a: 0xe00010fc, 0x790b: 0xe00010f9, - 0x790c: 0xe00010f6, 0x790d: 0xe00010f3, 0x790e: 0xe0001123, 0x790f: 0xe0001120, - 0x7910: 0xe0001141, 0x7911: 0xe000113e, 0x7912: 0xe0001153, 0x7913: 0xe0001150, - 0x7914: 0xe0001159, 0x7915: 0xe0001156, 0x7916: 0xe0000c15, 0x7917: 0xe0000f8d, - 0x7918: 0xe00010db, 0x7919: 0xe0001111, 0x791a: 0xf0000404, 0x791b: 0xe0000f70, - 0x791c: 0x40300420, 0x791d: 0x40300620, 0x791e: 0xe0000f7f, 0x791f: 0x402c9620, - 0x7920: 0xe000099b, 0x7921: 0xe0000998, 0x7922: 0xe0000989, 0x7923: 0xe0000986, - 0x7924: 0xe0002628, 0x7925: 0xe0002625, 0x7926: 0xe0000930, 0x7927: 0xe000092c, - 0x7928: 0xe0000940, 0x7929: 0xe000093c, 0x792a: 0xe0000938, 0x792b: 0xe0000934, - 0x792c: 0xe00009aa, 0x792d: 0xe00009a6, 0x792e: 0xe0002622, 0x792f: 0xe000261f, - 0x7930: 0xe000090a, 0x7931: 0xe0000906, 0x7932: 0xe000091a, 0x7933: 0xe0000916, - 0x7934: 0xe0000912, 0x7935: 0xe000090e, 0x7936: 0xe00009a2, 0x7937: 0xe000099e, - 0x7938: 0xe0000b6e, 0x7939: 0xe0000b6b, 0x793a: 0xe0000b5c, 0x793b: 0xe0000b59, - 0x793c: 0xe0000b26, 0x793d: 0xe0000b23, 0x793e: 0xe0002634, 0x793f: 0xe0002631, - // Block 0x1e5, offset 0x7940 - 0x7940: 0xe0000b03, 0x7941: 0xe0000aff, 0x7942: 0xe0000b13, 0x7943: 0xe0000b0f, - 0x7944: 0xe0000b0b, 0x7945: 0xe0000b07, 0x7946: 0xe0000b75, 0x7947: 0xe0000b71, - 0x7948: 0xe0000c66, 0x7949: 0xe0000c63, 0x794a: 0xe0000c78, 0x794b: 0xe0000c75, - 0x794c: 0xe0000e84, 0x794d: 0xe0000e81, 0x794e: 0xe0000e44, 0x794f: 0xe0000e41, - 0x7950: 0xe0002646, 0x7951: 0xe0002643, 0x7952: 0xe0000db5, 0x7953: 0xe0000db1, - 0x7954: 0xe0000dc5, 0x7955: 0xe0000dc1, 0x7956: 0xe0000dbd, 0x7957: 0xe0000db9, - 0x7958: 0xe0000e8b, 0x7959: 0xe0000e87, 0x795a: 0xe000264c, 0x795b: 0xe0002649, - 0x795c: 0xe0000e65, 0x795d: 0xe0000e61, 0x795e: 0xe0000e75, 0x795f: 0xe0000e71, - 0x7960: 0xe0000e6d, 0x7961: 0xe0000e69, 0x7962: 0xe0000e7d, 0x7963: 0xe0000e79, - 0x7964: 0xe000108d, 0x7965: 0xe000108a, 0x7966: 0xe000104d, 0x7967: 0xe000104a, - 0x7968: 0xe0002664, 0x7969: 0xe0002661, 0x796a: 0xe000106e, 0x796b: 0xe000106a, - 0x796c: 0xe000107e, 0x796d: 0xe000107a, 0x796e: 0xe0001076, 0x796f: 0xe0001072, - 0x7970: 0xe0001086, 0x7971: 0xe0001082, 0x7972: 0xe0001108, 0x7973: 0xe0001105, - 0x7974: 0xe0001135, 0x7975: 0xe0001132, 0x7976: 0xe000112f, 0x7977: 0xe000112c, - 0x7978: 0xe000111d, 0x7979: 0xe000111a, 0x797a: 0xe0000d0a, 0x797b: 0xe0000d07, - 0x797c: 0x0030d888, 0x797d: 0x4030d820, 0x797e: 0x00312088, 0x797f: 0x40312020, - // Block 0x1e6, offset 0x7980 - 0x7980: 0xa0000000, 0x7981: 0xa0000000, 0x7982: 0xa0000000, 0x7983: 0xa0000000, - 0x7984: 0xa0000000, 0x7985: 0xa0000000, 0x7986: 0xa0000000, 0x7987: 0xa0000000, - 0x7988: 0xa0000000, 0x7989: 0x40020020, 0x798a: 0x40020220, 0x798b: 0x40020420, - 0x798c: 0x40020620, 0x798d: 0x40020820, 0x798e: 0xa0000000, 0x798f: 0xa0000000, - 0x7990: 0xa0000000, 0x7991: 0xa0000000, 0x7992: 0xa0000000, 0x7993: 0xa0000000, - 0x7994: 0xa0000000, 0x7995: 0xa0000000, 0x7996: 0xa0000000, 0x7997: 0xa0000000, - 0x7998: 0xa0000000, 0x7999: 0xa0000000, 0x799a: 0xa0000000, 0x799b: 0xa0000000, - 0x799c: 0xa0000000, 0x799d: 0xa0000000, 0x799e: 0xa0000000, 0x799f: 0xa0000000, - 0x79a0: 0x40021220, 0x79a1: 0x4002ba20, 0x79a2: 0x4003e020, 0x79a3: 0x4004ea20, - 0x79a4: 0x4027de20, 0x79a5: 0x4004ec20, 0x79a6: 0x4004e620, 0x79a7: 0x4003d220, - 0x79a8: 0x4003f420, 0x79a9: 0x4003f620, 0x79aa: 0x4004d820, 0x79ab: 0x40093820, - 0x79ac: 0x40024020, 0x79ad: 0x40021a20, 0x79ae: 0x4002e420, 0x79af: 0x4004e220, - 0x79b0: 0x4029cc20, 0x79b1: 0x4029ce20, 0x79b2: 0x4029d020, 0x79b3: 0x4029d220, - 0x79b4: 0x4029d420, 0x79b5: 0x4029d620, 0x79b6: 0x4029d820, 0x79b7: 0x4029da20, - 0x79b8: 0x4029dc20, 0x79b9: 0x4029de20, 0x79ba: 0x40026c20, 0x79bb: 0x40026220, - 0x79bc: 0x40094020, 0x79bd: 0xc32f0851, 0x79be: 0x40094420, 0x79bf: 0x4002c420, - // Block 0x1e7, offset 0x79c0 - 0x79c0: 0x4004d620, 0x79c1: 0xc38b09c3, 0x79c2: 0x002c0a88, 0x79c3: 0x002c3a88, - 0x79c4: 0x002c6288, 0x79c5: 0xc3920a11, 0x79c6: 0x002d0888, 0x79c7: 0x002d2288, - 0x79c8: 0x002d6888, 0x79c9: 0x002d9a88, 0x79ca: 0x002dcc88, 0x79cb: 0x002dfe88, - 0x79cc: 0xc0030002, 0x79cd: 0x002e8288, 0x79ce: 0x002e9e88, 0x79cf: 0xc3970951, - 0x79d0: 0x002f2c88, 0x79d1: 0x002f5688, 0x79d2: 0x002f7a88, 0x79d3: 0x002fe688, - 0x79d4: 0x00302c88, 0x79d5: 0xc3840951, 0x79d6: 0x0030be88, 0x79d7: 0x0030e288, - 0x79d8: 0x0030f688, 0x79d9: 0x00310088, 0x79da: 0x00312a88, 0x79db: 0x4003f820, - 0x79dc: 0x4004e420, 0x79dd: 0x4003fa20, 0x79de: 0x40062420, 0x79df: 0x40021620, - 0x79e0: 0x40061e20, 0x79e1: 0xc3870982, 0x79e2: 0x402c0a20, 0x79e3: 0x402c3a20, - 0x79e4: 0x402c6220, 0x79e5: 0xc3900a11, 0x79e6: 0x402d0820, 0x79e7: 0x402d2220, - 0x79e8: 0x402d6820, 0x79e9: 0x402d9a20, 0x79ea: 0x402dcc20, 0x79eb: 0x402dfe20, - 0x79ec: 0xc0000002, 0x79ed: 0x402e8220, 0x79ee: 0x402e9e20, 0x79ef: 0xc3940951, - 0x79f0: 0x402f2c20, 0x79f1: 0x402f5620, 0x79f2: 0x402f7a20, 0x79f3: 0x402fe620, - 0x79f4: 0x40302c20, 0x79f5: 0xc3810951, 0x79f6: 0x4030be20, 0x79f7: 0x4030e220, - 0x79f8: 0x4030f620, 0x79f9: 0x40310020, 0x79fa: 0x40312a20, 0x79fb: 0x4003fc20, - 0x79fc: 0x40094820, 0x79fd: 0x4003fe20, 0x79fe: 0x40094c20, 0x79ff: 0xa0000000, - // Block 0x1e8, offset 0x7a00 - 0x7a00: 0xe00008f5, 0x7a01: 0xe00008ef, 0x7a02: 0xe0000921, 0x7a03: 0xe0000969, - 0x7a04: 0x00320ca3, 0x7a05: 0x00321083, 0x7a06: 0x00320c83, 0x7a07: 0xe0000a53, - 0x7a08: 0xe0000ae8, 0x7a09: 0xe0000ae2, 0x7a0a: 0xe0000af4, 0x7a0b: 0xe0000b20, - 0x7a0c: 0xe0000c2b, 0x7a0d: 0xe0000c25, 0x7a0e: 0xe0000c37, 0x7a0f: 0xe0000c43, - 0x7a10: 0x002c62c3, 0x7a11: 0xe0000d63, 0x7a12: 0xe0000d9a, 0x7a13: 0xe0000d94, - 0x7a14: 0xe0000da6, 0x7a15: 0xe0000de6, 0x7a16: 0x00320ea3, 0x7a17: 0x40093e20, - 0x7a18: 0x00320e83, 0x7a19: 0xe0000fe1, 0x7a1a: 0xe0000fdb, 0x7a1b: 0xe0000fed, - 0x7a1c: 0x003100a3, 0x7a1d: 0xe0001102, 0x7a1e: 0xe000266d, 0x7a1f: 0xe0000f7b, - 0x7a20: 0xe00008f2, 0x7a21: 0xe00008ec, 0x7a22: 0xe000091e, 0x7a23: 0xe0000966, - 0x7a24: 0x40320c21, 0x7a25: 0x40321020, 0x7a26: 0x40320c20, 0x7a27: 0xe0000a4d, - 0x7a28: 0xe0000ae5, 0x7a29: 0xe0000adf, 0x7a2a: 0xe0000af1, 0x7a2b: 0xe0000b1d, - 0x7a2c: 0xe0000c28, 0x7a2d: 0xe0000c22, 0x7a2e: 0xe0000c34, 0x7a2f: 0xe0000c40, - 0x7a30: 0x402c6222, 0x7a31: 0xe0000d60, 0x7a32: 0xe0000d97, 0x7a33: 0xe0000d91, - 0x7a34: 0xe0000da3, 0x7a35: 0xe0000de3, 0x7a36: 0x40320e21, 0x7a37: 0x40093c20, - 0x7a38: 0x40320e20, 0x7a39: 0xe0000fde, 0x7a3a: 0xe0000fd8, 0x7a3b: 0xe0000fea, - 0x7a3c: 0x40310021, 0x7a3d: 0xe00010ff, 0x7a3e: 0xe000266a, 0x7a3f: 0xe0001114, - // Block 0x1e9, offset 0x7a40 - 0x7a40: 0xe0000983, 0x7a41: 0xe0000980, 0x7a42: 0xe00008fb, 0x7a43: 0xe00008f8, - 0x7a44: 0xe000097d, 0x7a45: 0xe000097a, 0x7a46: 0xe0000a38, 0x7a47: 0xe0000a35, - 0x7a48: 0xe0000a3e, 0x7a49: 0xe0000a3b, 0x7a4a: 0xe0000a4a, 0x7a4b: 0xe0000a47, - 0x7a4c: 0xe0000a44, 0x7a4d: 0xe0000a41, 0x7a4e: 0xe0000a86, 0x7a4f: 0xe0000a83, - 0x7a50: 0x002c62a3, 0x7a51: 0x402c6221, 0x7a52: 0xe0000b46, 0x7a53: 0xe0000b43, - 0x7a54: 0xe0000aee, 0x7a55: 0xe0000aeb, 0x7a56: 0xe0000b2c, 0x7a57: 0xe0000b29, - 0x7a58: 0x00320cc3, 0x7a59: 0x40320c22, 0x7a5a: 0xe0000b1a, 0x7a5b: 0xe0000b17, - 0x7a5c: 0xe0000bb8, 0x7a5d: 0xe0000bb5, 0x7a5e: 0xe0000bb2, 0x7a5f: 0xe0000baf, - 0x7a60: 0xe0000bc4, 0x7a61: 0xe0000bc1, 0x7a62: 0xe0000bca, 0x7a63: 0xe0000bc7, - 0x7a64: 0xe0000bee, 0x7a65: 0xe0000beb, 0x7a66: 0xe0000c1b, 0x7a67: 0xe0000c18, - 0x7a68: 0xe0000c51, 0x7a69: 0xe0000c4e, 0x7a6a: 0xe0000c60, 0x7a6b: 0xe0000c5d, - 0x7a6c: 0xe0000c31, 0x7a6d: 0xe0000c2e, 0x7a6e: 0xe0000c5a, 0x7a6f: 0xe0000c57, - 0x7a70: 0xe0000c54, 0x7a71: 0x402da220, 0x7a72: 0xf0000a0a, 0x7a73: 0xf0000404, - 0x7a74: 0xe0000c8a, 0x7a75: 0xe0000c87, 0x7a76: 0xe0000c9f, 0x7a77: 0xe0000c9c, - 0x7a78: 0x402f7220, 0x7a79: 0xe0000ccc, 0x7a7a: 0xe0000cc9, 0x7a7b: 0xe0000cd8, - 0x7a7c: 0xe0000cd5, 0x7a7d: 0xe0000cd2, 0x7a7e: 0xe0000ccf, 0x7a7f: 0xe0000d04, - // Block 0x1ea, offset 0x7a80 - 0x7a80: 0xe0000cfe, 0x7a81: 0xe0000cf8, 0x7a82: 0xe0000cf5, 0x7a83: 0xe0000d51, - 0x7a84: 0xe0000d4e, 0x7a85: 0xe0000d6f, 0x7a86: 0xe0000d6c, 0x7a87: 0xe0000d5d, - 0x7a88: 0xe0000d5a, 0x7a89: 0xf0000404, 0x7a8a: 0x002eda88, 0x7a8b: 0x402eda20, - 0x7a8c: 0xe0000e2e, 0x7a8d: 0xe0000e2b, 0x7a8e: 0xe0000da0, 0x7a8f: 0xe0000d9d, - 0x7a90: 0x00320ec3, 0x7a91: 0x40320e22, 0x7a92: 0x00320ee3, 0x7a93: 0x40320e23, - 0x7a94: 0xe0000eca, 0x7a95: 0xe0000ec7, 0x7a96: 0xe0000edc, 0x7a97: 0xe0000ed9, - 0x7a98: 0xe0000ed0, 0x7a99: 0xe0000ecd, 0x7a9a: 0xe0000f1f, 0x7a9b: 0xe0000f1c, - 0x7a9c: 0xe0000f2d, 0x7a9d: 0xe0000f2a, 0x7a9e: 0xe0000f47, 0x7a9f: 0xe0000f44, - 0x7aa0: 0xe0000f33, 0x7aa1: 0xe0000f30, 0x7aa2: 0xe0000f99, 0x7aa3: 0xe0000f96, - 0x7aa4: 0xe0000f8a, 0x7aa5: 0xe0000f87, 0x7aa6: 0x00303688, 0x7aa7: 0x40303620, - 0x7aa8: 0xe000102b, 0x7aa9: 0xe0001028, 0x7aaa: 0xe000103f, 0x7aab: 0xe000103c, - 0x7aac: 0xe0000fe7, 0x7aad: 0xe0000fe4, 0x7aae: 0xe0000ff9, 0x7aaf: 0xe0000ff6, - 0x7ab0: 0x003100c3, 0x7ab1: 0x40310022, 0x7ab2: 0xe0001039, 0x7ab3: 0xe0001036, - 0x7ab4: 0xe00010d8, 0x7ab5: 0xe00010d5, 0x7ab6: 0xe000110e, 0x7ab7: 0xe000110b, - 0x7ab8: 0xe0001117, 0x7ab9: 0xe000113b, 0x7aba: 0xe0001138, 0x7abb: 0xe000114d, - 0x7abc: 0xe000114a, 0x7abd: 0xe0001147, 0x7abe: 0xe0001144, 0x7abf: 0xe0000f64, - // Block 0x1eb, offset 0x7ac0 - 0x7ac0: 0x40321220, 0x7ac1: 0x40321a20, 0x7ac2: 0x40322220, 0x7ac3: 0x40322a20, - 0x7ac4: 0xe0000ad5, 0x7ac5: 0xe0000ad1, 0x7ac6: 0xe0000acd, 0x7ac7: 0xf0000a0a, - 0x7ac8: 0xf000040a, 0x7ac9: 0xf0000404, 0x7aca: 0xf0000a0a, 0x7acb: 0xf000040a, - 0x7acc: 0xf0000404, 0x7acd: 0xe0000947, 0x7ace: 0xe0000944, 0x7acf: 0xe0000c3d, - 0x7ad0: 0xe0000c3a, 0x7ad1: 0xe0000dcc, 0x7ad2: 0xe0000dc9, 0x7ad3: 0xe0000ff3, - 0x7ad4: 0xe0000ff0, 0x7ad5: 0xe0002685, 0x7ad6: 0xe0002682, 0x7ad7: 0xe0002673, - 0x7ad8: 0xe0002670, 0x7ad9: 0xe000267f, 0x7ada: 0xe000267c, 0x7adb: 0xe0002679, - 0x7adc: 0xe0002676, 0x7add: 0x402cae20, 0x7ade: 0xe0002697, 0x7adf: 0xe0002694, - 0x7ae0: 0xe0000976, 0x7ae1: 0xe0000972, 0x7ae2: 0xe0002691, 0x7ae3: 0xe000268e, - 0x7ae4: 0x002d3a88, 0x7ae5: 0x402d3a20, 0x7ae6: 0xe0000bbe, 0x7ae7: 0xe0000bbb, - 0x7ae8: 0xe0000c99, 0x7ae9: 0xe0000c96, 0x7aea: 0xe0000e20, 0x7aeb: 0xe0000e1d, - 0x7aec: 0xe0000e27, 0x7aed: 0xe0000e23, 0x7aee: 0xe0001162, 0x7aef: 0xe000115f, - 0x7af0: 0xe0000c8d, 0x7af1: 0xf0000a0a, 0x7af2: 0xf000040a, 0x7af3: 0xf0000404, - 0x7af4: 0xe0000bac, 0x7af5: 0xe0000ba9, 0x7af6: 0x002d7888, 0x7af7: 0x00319488, - 0x7af8: 0xe0000d57, 0x7af9: 0xe0000d54, 0x7afa: 0xe00026af, 0x7afb: 0xe00026ac, - 0x7afc: 0xe000268b, 0x7afd: 0xe0002688, 0x7afe: 0xe000269d, 0x7aff: 0xe000269a, - // Block 0x1ec, offset 0x7b00 - 0x7b00: 0xe000098f, 0x7b01: 0xe000098c, 0x7b02: 0xe0000995, 0x7b03: 0xe0000992, - 0x7b04: 0xe0000b62, 0x7b05: 0xe0000b5f, 0x7b06: 0xe0000b68, 0x7b07: 0xe0000b65, - 0x7b08: 0xe0000c6c, 0x7b09: 0xe0000c69, 0x7b0a: 0xe0000c72, 0x7b0b: 0xe0000c6f, - 0x7b0c: 0xe0000e4a, 0x7b0d: 0xe0000e47, 0x7b0e: 0xe0000e50, 0x7b0f: 0xe0000e4d, - 0x7b10: 0xe0000ee8, 0x7b11: 0xe0000ee5, 0x7b12: 0xe0000eee, 0x7b13: 0xe0000eeb, - 0x7b14: 0xe0001053, 0x7b15: 0xe0001050, 0x7b16: 0xe0001059, 0x7b17: 0xe0001056, - 0x7b18: 0xe0000f61, 0x7b19: 0xe0000f5e, 0x7b1a: 0xe0000fa5, 0x7b1b: 0xe0000fa2, - 0x7b1c: 0x00312288, 0x7b1d: 0x40312220, 0x7b1e: 0xe0000bf4, 0x7b1f: 0xe0000bf1, - 0x7b20: 0x002ebc88, 0x7b21: 0x402c8c20, 0x7b22: 0x002f2288, 0x7b23: 0x402f2220, - 0x7b24: 0x00314088, 0x7b25: 0x40314020, 0x7b26: 0xe000096f, 0x7b27: 0xe000096c, - 0x7b28: 0xe0000b32, 0x7b29: 0xe0000b2f, 0x7b2a: 0xe00026a9, 0x7b2b: 0xe00026a6, - 0x7b2c: 0xe0000dfd, 0x7b2d: 0xe0000df9, 0x7b2e: 0xe0000e04, 0x7b2f: 0xe0000e01, - 0x7b30: 0xe0000e0b, 0x7b31: 0xe0000e07, 0x7b32: 0xe0001129, 0x7b33: 0xe0001126, - 0x7b34: 0x402e5e20, 0x7b35: 0x402ed020, 0x7b36: 0x40305a20, 0x7b37: 0x402dd420, - 0x7b38: 0xe0000abf, 0x7b39: 0xe0000ec4, 0x7b3a: 0x002be888, 0x7b3b: 0x002c4488, - 0x7b3c: 0x402c4420, 0x7b3d: 0x002e3888, 0x7b3e: 0x00303e88, 0x7b3f: 0x402ffc20, - // Block 0x1ed, offset 0x7b40 - 0x7b40: 0x402c2820, 0x7b41: 0x402c7020, 0x7b42: 0x402d1420, 0x7b43: 0x402d4220, - 0x7b44: 0x402e0820, 0x7b45: 0x402e5220, 0x7b46: 0x402e8e20, 0x7b47: 0x402ec620, - 0x7b48: 0x402f3c20, 0x7b49: 0x402faa20, 0x7b4a: 0x402ff220, 0x7b4b: 0x40301020, - 0x7b4c: 0x4030ca20, 0x7b4d: 0x4030fe20, 0x7b4e: 0x40313e20, 0x7b4f: 0x402bea20, - 0x7b50: 0x402c0020, 0x7b51: 0x402c8220, 0x7b52: 0x402caa20, 0x7b53: 0x402cca20, - 0x7b54: 0x402ce420, 0x7b55: 0x402cc020, 0x7b56: 0x402dc020, 0x7b57: 0x402f0620, - 0x7b58: 0x40302220, 0x7b59: 0x40308620, 0x7b5a: 0x40317620, 0x7b5b: 0x002c0294, - 0x7b5c: 0x002c3a94, 0x7b5d: 0x002c5694, 0x7b5e: 0xe0002667, 0x7b5f: 0x002cdc94, - 0x7b60: 0x002d0894, 0x7b61: 0x002dee94, 0x7b62: 0x002d2a94, 0x7b63: 0x00308894, - 0x7b64: 0x002db694, 0x7b65: 0x002dc294, 0x7b66: 0x002daa94, 0x7b67: 0x002dbe94, - 0x7b68: 0x002de694, 0x7b69: 0x002e5494, 0x7b6a: 0x002e5294, 0x7b6b: 0x002e2a94, - 0x7b6c: 0x002e9094, 0x7b6d: 0x0030ac94, 0x7b6e: 0x002eb494, 0x7b6f: 0x002ec894, - 0x7b70: 0x002ea694, 0x7b71: 0x002f1094, 0x7b72: 0x002f4c94, 0x7b73: 0x002ff494, - 0x7b74: 0x00300894, 0x7b75: 0x00304294, 0x7b76: 0x00307c94, 0x7b77: 0x0030b494, - 0x7b78: 0x00307494, 0x7b79: 0x0030cc94, 0x7b7a: 0x0030da94, 0x7b7b: 0x00312a94, - 0x7b7c: 0x00314894, 0x7b7d: 0x00315094, 0x7b7e: 0x00316494, 0x7b7f: 0x00326a94, - // Block 0x1ee, offset 0x7b80 - 0x7b80: 0xe0000d24, 0x7b81: 0xe0000d21, 0x7b82: 0xe0000d2a, 0x7b83: 0xe0000d27, - 0x7b84: 0xe0000d69, 0x7b85: 0xe0000d66, 0x7b86: 0xe0000d7b, 0x7b87: 0xe0000d78, - 0x7b88: 0xe0000d87, 0x7b89: 0xe0000d84, 0x7b8a: 0xe0000d81, 0x7b8b: 0xe0000d7e, - 0x7b8c: 0xe0000ded, 0x7b8d: 0xe0000de9, 0x7b8e: 0xe00026a3, 0x7b8f: 0xe00026a0, - 0x7b90: 0xe0000e3d, 0x7b91: 0xe0000e39, 0x7b92: 0xe0000e35, 0x7b93: 0xe0000e31, - 0x7b94: 0xe0000ea7, 0x7b95: 0xe0000ea4, 0x7b96: 0xe0000ead, 0x7b97: 0xe0000eaa, - 0x7b98: 0xe0000ed6, 0x7b99: 0xe0000ed3, 0x7b9a: 0xe0000ef4, 0x7b9b: 0xe0000ef1, - 0x7b9c: 0xe0000efb, 0x7b9d: 0xe0000ef7, 0x7b9e: 0xe0000f02, 0x7b9f: 0xe0000eff, - 0x7ba0: 0xe0000f41, 0x7ba1: 0xe0000f3e, 0x7ba2: 0xe0000f53, 0x7ba3: 0xe0000f50, - 0x7ba4: 0xe0000f26, 0x7ba5: 0xe0000f22, 0x7ba6: 0xe0000f3a, 0x7ba7: 0xe0000f36, - 0x7ba8: 0xe0000f5a, 0x7ba9: 0xe0000f56, 0x7baa: 0xe0000f93, 0x7bab: 0xe0000f90, - 0x7bac: 0xe0000f9f, 0x7bad: 0xe0000f9c, 0x7bae: 0xe0000fb1, 0x7baf: 0xe0000fae, - 0x7bb0: 0xe0000fab, 0x7bb1: 0xe0000fa8, 0x7bb2: 0xe0001093, 0x7bb3: 0xe0001090, - 0x7bb4: 0xe000109f, 0x7bb5: 0xe000109c, 0x7bb6: 0xe0001099, 0x7bb7: 0xe0001096, - 0x7bb8: 0xe0001032, 0x7bb9: 0xe000102e, 0x7bba: 0xe0002685, 0x7bbb: 0xe0002682, - 0x7bbc: 0xe00010a9, 0x7bbd: 0xe00010a6, 0x7bbe: 0xe00010af, 0x7bbf: 0xe00010ac, - // Block 0x1ef, offset 0x7bc0 - 0x7bc0: 0xe00009bc, 0x7bc1: 0xe00009c0, 0x7bc2: 0x002c3a8b, 0x7bc3: 0xf0000a04, - 0x7bc4: 0x40081c20, 0x7bc5: 0xe0000a5e, 0x7bc6: 0xe0000a62, 0x7bc7: 0x002cc28a, - 0x7bc8: 0x40081e20, 0x7bc9: 0xf0000a04, 0x7bca: 0x002d2285, 0x7bcb: 0x002d688b, - 0x7bcc: 0x002d688b, 0x7bcd: 0x002d688b, 0x7bce: 0x002d6885, 0x7bcf: 0xf0000202, - 0x7bd0: 0x002d9a8b, 0x7bd1: 0x002d9a8b, 0x7bd2: 0x002e228b, 0x7bd3: 0x002e2285, - 0x7bd4: 0x40082020, 0x7bd5: 0x002e9e8b, 0x7bd6: 0xf000040a, 0x7bd7: 0x40082220, - 0x7bd8: 0x40082420, 0x7bd9: 0x002f2c8b, 0x7bda: 0x002f568b, 0x7bdb: 0x002f7a8b, - 0x7bdc: 0x002f7a8b, 0x7bdd: 0x002f7a8b, 0x7bde: 0x40082620, 0x7bdf: 0x40082820, - 0x7be0: 0xf0001414, 0x7be1: 0xe0000fbd, 0x7be2: 0xf0001414, 0x7be3: 0x40082a20, - 0x7be4: 0x00312a8b, 0x7be5: 0x40082c20, 0x7be6: 0x0032a288, 0x7be7: 0x40082e20, - 0x7be8: 0x00312a8b, 0x7be9: 0x40083020, 0x7bea: 0x002dfe88, 0x7beb: 0x00321083, - 0x7bec: 0x002c0a8b, 0x7bed: 0x002c3a8b, 0x7bee: 0x40083220, 0x7bef: 0x002c9885, - 0x7bf0: 0x002c988b, 0x7bf1: 0x002d088b, 0x7bf2: 0x002d1e88, 0x7bf3: 0x002e828b, - 0x7bf4: 0x002ee285, 0x7bf5: 0x00389084, 0x7bf6: 0x00389284, 0x7bf7: 0x00389484, - 0x7bf8: 0x00389684, 0x7bf9: 0x002d9a85, 0x7bfa: 0x40083420, 0x7bfb: 0xe0000b95, - 0x7bfc: 0x00327e85, 0x7bfd: 0x00325685, 0x7bfe: 0x0032568b, 0x7bff: 0x00327e8b, - // Block 0x1f0, offset 0x7c00 - 0x7c00: 0xa0000000, 0x7c01: 0xa0000000, 0x7c02: 0xa0000000, 0x7c03: 0xa0000000, - 0x7c04: 0xa0000000, 0x7c05: 0xa0000000, 0x7c06: 0xa0000000, 0x7c07: 0xa0000000, - 0x7c08: 0xa0000000, 0x7c09: 0x40020020, 0x7c0a: 0x40020220, 0x7c0b: 0x40020420, - 0x7c0c: 0x40020620, 0x7c0d: 0x40020820, 0x7c0e: 0xa0000000, 0x7c0f: 0xa0000000, - 0x7c10: 0xa0000000, 0x7c11: 0xa0000000, 0x7c12: 0xa0000000, 0x7c13: 0xa0000000, - 0x7c14: 0xa0000000, 0x7c15: 0xa0000000, 0x7c16: 0xa0000000, 0x7c17: 0xa0000000, - 0x7c18: 0xa0000000, 0x7c19: 0xa0000000, 0x7c1a: 0xa0000000, 0x7c1b: 0xa0000000, - 0x7c1c: 0xa0000000, 0x7c1d: 0xa0000000, 0x7c1e: 0xa0000000, 0x7c1f: 0xa0000000, - 0x7c20: 0x40021220, 0x7c21: 0x4002ba20, 0x7c22: 0x4003e020, 0x7c23: 0x4004ea20, - 0x7c24: 0x4027de20, 0x7c25: 0x4004ec20, 0x7c26: 0x4004e620, 0x7c27: 0x4003d220, - 0x7c28: 0x4003f420, 0x7c29: 0x4003f620, 0x7c2a: 0x4004d820, 0x7c2b: 0x40093820, - 0x7c2c: 0x40024020, 0x7c2d: 0x40021a20, 0x7c2e: 0x4002e420, 0x7c2f: 0x4004e220, - 0x7c30: 0x4029cc20, 0x7c31: 0x4029ce20, 0x7c32: 0x4029d020, 0x7c33: 0x4029d220, - 0x7c34: 0x4029d420, 0x7c35: 0x4029d620, 0x7c36: 0x4029d820, 0x7c37: 0x4029da20, - 0x7c38: 0x4029dc20, 0x7c39: 0x4029de20, 0x7c3a: 0x40026c20, 0x7c3b: 0x40026220, - 0x7c3c: 0x40094020, 0x7c3d: 0xc32f0851, 0x7c3e: 0x40094420, 0x7c3f: 0x4002c420, - // Block 0x1f1, offset 0x7c40 - 0x7c40: 0x4004d620, 0x7c41: 0xc39c0071, 0x7c42: 0x002c0a88, 0x7c43: 0x002c3a88, - 0x7c44: 0x002c6288, 0x7c45: 0x002c9888, 0x7c46: 0x002d0888, 0x7c47: 0x002d2288, - 0x7c48: 0x002d6888, 0x7c49: 0x002d9a88, 0x7c4a: 0x002dcc88, 0x7c4b: 0x002dfe88, - 0x7c4c: 0xc0030002, 0x7c4d: 0x002e8288, 0x7c4e: 0x002e9e88, 0x7c4f: 0xc3a00071, - 0x7c50: 0x002f2c88, 0x7c51: 0x002f5688, 0x7c52: 0x002f7a88, 0x7c53: 0x002fe688, - 0x7c54: 0x00302c88, 0x7c55: 0xc3a40071, 0x7c56: 0x0030be88, 0x7c57: 0x0030e288, - 0x7c58: 0x0030f688, 0x7c59: 0x00310088, 0x7c5a: 0x00312a88, 0x7c5b: 0x4003f820, - 0x7c5c: 0x4004e420, 0x7c5d: 0x4003fa20, 0x7c5e: 0x40062420, 0x7c5f: 0x40021620, - 0x7c60: 0x40061e20, 0x7c61: 0xc39a0071, 0x7c62: 0x402c0a20, 0x7c63: 0x402c3a20, - 0x7c64: 0x402c6220, 0x7c65: 0x402c9820, 0x7c66: 0x402d0820, 0x7c67: 0x402d2220, - 0x7c68: 0x402d6820, 0x7c69: 0x402d9a20, 0x7c6a: 0x402dcc20, 0x7c6b: 0x402dfe20, - 0x7c6c: 0xc0000002, 0x7c6d: 0x402e8220, 0x7c6e: 0x402e9e20, 0x7c6f: 0xc39e0071, - 0x7c70: 0x402f2c20, 0x7c71: 0x402f5620, 0x7c72: 0x402f7a20, 0x7c73: 0x402fe620, - 0x7c74: 0x40302c20, 0x7c75: 0xc3a20071, 0x7c76: 0x4030be20, 0x7c77: 0x4030e220, - 0x7c78: 0x4030f620, 0x7c79: 0x40310020, 0x7c7a: 0x40312a20, 0x7c7b: 0x4003fc20, - 0x7c7c: 0x40094820, 0x7c7d: 0x4003fe20, 0x7c7e: 0x40094c20, 0x7c7f: 0xa0000000, - // Block 0x1f2, offset 0x7c80 - 0x7c80: 0xe00008f5, 0x7c81: 0xe00008ef, 0x7c82: 0xe0000921, 0x7c83: 0xe0000969, - 0x7c84: 0xe00026b5, 0x7c85: 0xe000094d, 0x7c86: 0xe00009dd, 0x7c87: 0xe0000a53, - 0x7c88: 0xe0000ae8, 0x7c89: 0xe0000ae2, 0x7c8a: 0xe0000af4, 0x7c8b: 0xe0000b20, - 0x7c8c: 0xe0000c2b, 0x7c8d: 0xe0000c25, 0x7c8e: 0xe0000c37, 0x7c8f: 0xe0000c43, - 0x7c90: 0xe0000ab3, 0x7c91: 0xe0000d63, 0x7c92: 0xe0000d9a, 0x7c93: 0xe0000d94, - 0x7c94: 0xe0000da6, 0x7c95: 0xe0000de6, 0x7c96: 0xe00026c3, 0x7c97: 0x40093e20, - 0x7c98: 0xe0000e12, 0x7c99: 0xe0000fe1, 0x7c9a: 0xe0000fdb, 0x7c9b: 0xe0000fed, - 0x7c9c: 0xe00026d9, 0x7c9d: 0xe0001102, 0x7c9e: 0x00318888, 0x7c9f: 0xe0000f7b, - 0x7ca0: 0xe00008f2, 0x7ca1: 0xe00008ec, 0x7ca2: 0xe000091e, 0x7ca3: 0xe0000966, - 0x7ca4: 0xe00026b2, 0x7ca5: 0xe000094a, 0x7ca6: 0xe00009d5, 0x7ca7: 0xe0000a4d, - 0x7ca8: 0xe0000ae5, 0x7ca9: 0xe0000adf, 0x7caa: 0xe0000af1, 0x7cab: 0xe0000b1d, - 0x7cac: 0xe0000c28, 0x7cad: 0xe0000c22, 0x7cae: 0xe0000c34, 0x7caf: 0xe0000c40, - 0x7cb0: 0xe0000aad, 0x7cb1: 0xe0000d60, 0x7cb2: 0xe0000d97, 0x7cb3: 0xe0000d91, - 0x7cb4: 0xe0000da3, 0x7cb5: 0xe0000de3, 0x7cb6: 0xe00026c0, 0x7cb7: 0x40093c20, - 0x7cb8: 0xe0000e0f, 0x7cb9: 0xe0000fde, 0x7cba: 0xe0000fd8, 0x7cbb: 0xe0000fea, - 0x7cbc: 0xe00026d6, 0x7cbd: 0xe00010ff, 0x7cbe: 0x40318820, 0x7cbf: 0xe0001114, - // Block 0x1f3, offset 0x7cc0 - 0x7cc0: 0x40321220, 0x7cc1: 0x40321a20, 0x7cc2: 0x40322220, 0x7cc3: 0x40322a20, - 0x7cc4: 0xe0000ad5, 0x7cc5: 0xe0000ad1, 0x7cc6: 0xe0000acd, 0x7cc7: 0xf0000a0a, - 0x7cc8: 0xf000040a, 0x7cc9: 0xf0000404, 0x7cca: 0xf0000a0a, 0x7ccb: 0xf000040a, - 0x7ccc: 0xf0000404, 0x7ccd: 0xe0000947, 0x7cce: 0xe0000944, 0x7ccf: 0xe0000c3d, - 0x7cd0: 0xe0000c3a, 0x7cd1: 0xe0000dcc, 0x7cd2: 0xe0000dc9, 0x7cd3: 0xe0000ff3, - 0x7cd4: 0xe0000ff0, 0x7cd5: 0xe00026f8, 0x7cd6: 0xe00026f4, 0x7cd7: 0xe00026e0, - 0x7cd8: 0xe00026dc, 0x7cd9: 0xe00026f0, 0x7cda: 0xe00026ec, 0x7cdb: 0xe00026e8, - 0x7cdc: 0xe00026e4, 0x7cdd: 0x402cae20, 0x7cde: 0xe00026bc, 0x7cdf: 0xe00026b8, - 0x7ce0: 0xe0000976, 0x7ce1: 0xe0000972, 0x7ce2: 0xe00009f4, 0x7ce3: 0xe00009ef, - 0x7ce4: 0x002d3a88, 0x7ce5: 0x402d3a20, 0x7ce6: 0xe0000bbe, 0x7ce7: 0xe0000bbb, - 0x7ce8: 0xe0000c99, 0x7ce9: 0xe0000c96, 0x7cea: 0xe0000e20, 0x7ceb: 0xe0000e1d, - 0x7cec: 0xe0000e27, 0x7ced: 0xe0000e23, 0x7cee: 0xe0001162, 0x7cef: 0xe000115f, - 0x7cf0: 0xe0000c8d, 0x7cf1: 0xf0000a0a, 0x7cf2: 0xf000040a, 0x7cf3: 0xf0000404, - 0x7cf4: 0xe0000bac, 0x7cf5: 0xe0000ba9, 0x7cf6: 0x002d7888, 0x7cf7: 0x00319488, - 0x7cf8: 0xe0000d57, 0x7cf9: 0xe0000d54, 0x7cfa: 0xe0000954, 0x7cfb: 0xe0000950, - 0x7cfc: 0xe00009ea, 0x7cfd: 0xe00009e5, 0x7cfe: 0xe0000e19, 0x7cff: 0xe0000e15, - // Block 0x1f4, offset 0x7d00 - 0x7d00: 0xe000098f, 0x7d01: 0xe000098c, 0x7d02: 0xe0000995, 0x7d03: 0xe0000992, - 0x7d04: 0xe0000b62, 0x7d05: 0xe0000b5f, 0x7d06: 0xe0000b68, 0x7d07: 0xe0000b65, - 0x7d08: 0xe0000c6c, 0x7d09: 0xe0000c69, 0x7d0a: 0xe0000c72, 0x7d0b: 0xe0000c6f, - 0x7d0c: 0xe0000e4a, 0x7d0d: 0xe0000e47, 0x7d0e: 0xe0000e50, 0x7d0f: 0xe0000e4d, - 0x7d10: 0xe0000ee8, 0x7d11: 0xe0000ee5, 0x7d12: 0xe0000eee, 0x7d13: 0xe0000eeb, - 0x7d14: 0xe0001053, 0x7d15: 0xe0001050, 0x7d16: 0xe0001059, 0x7d17: 0xe0001056, - 0x7d18: 0xe0000f61, 0x7d19: 0xe0000f5e, 0x7d1a: 0xe0000fa5, 0x7d1b: 0xe0000fa2, - 0x7d1c: 0x00312288, 0x7d1d: 0x40312220, 0x7d1e: 0xe0000bf4, 0x7d1f: 0xe0000bf1, - 0x7d20: 0x002ebc88, 0x7d21: 0x402c8c20, 0x7d22: 0x002f2288, 0x7d23: 0x402f2220, - 0x7d24: 0x00314088, 0x7d25: 0x40314020, 0x7d26: 0xe000096f, 0x7d27: 0xe000096c, - 0x7d28: 0xe0000b32, 0x7d29: 0xe0000b2f, 0x7d2a: 0xe00026d2, 0x7d2b: 0xe00026ce, - 0x7d2c: 0xe0000dfd, 0x7d2d: 0xe0000df9, 0x7d2e: 0xe0000e04, 0x7d2f: 0xe0000e01, - 0x7d30: 0xe0000e0b, 0x7d31: 0xe0000e07, 0x7d32: 0xe0001129, 0x7d33: 0xe0001126, - 0x7d34: 0x402e5e20, 0x7d35: 0x402ed020, 0x7d36: 0x40305a20, 0x7d37: 0x402dd420, - 0x7d38: 0xe0000abf, 0x7d39: 0xe0000ec4, 0x7d3a: 0x002be888, 0x7d3b: 0x002c4488, - 0x7d3c: 0x402c4420, 0x7d3d: 0x002e3888, 0x7d3e: 0x00303e88, 0x7d3f: 0x402ffc20, - // Block 0x1f5, offset 0x7d40 - 0x7d40: 0xe0000d24, 0x7d41: 0xe0000d21, 0x7d42: 0xe0000d2a, 0x7d43: 0xe0000d27, - 0x7d44: 0xe0000d69, 0x7d45: 0xe0000d66, 0x7d46: 0xe0000d7b, 0x7d47: 0xe0000d78, - 0x7d48: 0xe0000d87, 0x7d49: 0xe0000d84, 0x7d4a: 0xe0000d81, 0x7d4b: 0xe0000d7e, - 0x7d4c: 0xe0000ded, 0x7d4d: 0xe0000de9, 0x7d4e: 0xe00026ca, 0x7d4f: 0xe00026c6, - 0x7d50: 0xe0000e3d, 0x7d51: 0xe0000e39, 0x7d52: 0xe0000e35, 0x7d53: 0xe0000e31, - 0x7d54: 0xe0000ea7, 0x7d55: 0xe0000ea4, 0x7d56: 0xe0000ead, 0x7d57: 0xe0000eaa, - 0x7d58: 0xe0000ed6, 0x7d59: 0xe0000ed3, 0x7d5a: 0xe0000ef4, 0x7d5b: 0xe0000ef1, - 0x7d5c: 0xe0000efb, 0x7d5d: 0xe0000ef7, 0x7d5e: 0xe0000f02, 0x7d5f: 0xe0000eff, - 0x7d60: 0xe0000f41, 0x7d61: 0xe0000f3e, 0x7d62: 0xe0000f53, 0x7d63: 0xe0000f50, - 0x7d64: 0xe0000f26, 0x7d65: 0xe0000f22, 0x7d66: 0xe0000f3a, 0x7d67: 0xe0000f36, - 0x7d68: 0xe0000f5a, 0x7d69: 0xe0000f56, 0x7d6a: 0xe0000f93, 0x7d6b: 0xe0000f90, - 0x7d6c: 0xe0000f9f, 0x7d6d: 0xe0000f9c, 0x7d6e: 0xe0000fb1, 0x7d6f: 0xe0000fae, - 0x7d70: 0xe0000fab, 0x7d71: 0xe0000fa8, 0x7d72: 0xe0001093, 0x7d73: 0xe0001090, - 0x7d74: 0xe000109f, 0x7d75: 0xe000109c, 0x7d76: 0xe0001099, 0x7d77: 0xe0001096, - 0x7d78: 0xe0001032, 0x7d79: 0xe000102e, 0x7d7a: 0xe00026f8, 0x7d7b: 0xe00026f4, - 0x7d7c: 0xe00010a9, 0x7d7d: 0xe00010a6, 0x7d7e: 0xe00010af, 0x7d7f: 0xe00010ac, - // Block 0x1f6, offset 0x7d80 - 0x7d80: 0xa0000000, 0x7d81: 0xa0000000, 0x7d82: 0xa0000000, 0x7d83: 0xa0000000, - 0x7d84: 0xa0000000, 0x7d85: 0xa0000000, 0x7d86: 0xa0000000, 0x7d87: 0xa0000000, - 0x7d88: 0xa0000000, 0x7d89: 0x40020020, 0x7d8a: 0x40020220, 0x7d8b: 0x40020420, - 0x7d8c: 0x40020620, 0x7d8d: 0x40020820, 0x7d8e: 0xa0000000, 0x7d8f: 0xa0000000, - 0x7d90: 0xa0000000, 0x7d91: 0xa0000000, 0x7d92: 0xa0000000, 0x7d93: 0xa0000000, - 0x7d94: 0xa0000000, 0x7d95: 0xa0000000, 0x7d96: 0xa0000000, 0x7d97: 0xa0000000, - 0x7d98: 0xa0000000, 0x7d99: 0xa0000000, 0x7d9a: 0xa0000000, 0x7d9b: 0xa0000000, - 0x7d9c: 0xa0000000, 0x7d9d: 0xa0000000, 0x7d9e: 0xa0000000, 0x7d9f: 0xa0000000, - 0x7da0: 0x40021220, 0x7da1: 0x4002ba20, 0x7da2: 0x4003e020, 0x7da3: 0x4004ea20, - 0x7da4: 0x4027de20, 0x7da5: 0x4004ec20, 0x7da6: 0x4004e620, 0x7da7: 0x4003d220, - 0x7da8: 0x4003f420, 0x7da9: 0x4003f620, 0x7daa: 0x4004d820, 0x7dab: 0x40093820, - 0x7dac: 0x40024020, 0x7dad: 0x40021a20, 0x7dae: 0x4002e420, 0x7daf: 0x4004e220, - 0x7db0: 0x4029cc20, 0x7db1: 0x4029ce20, 0x7db2: 0x4029d020, 0x7db3: 0x4029d220, - 0x7db4: 0x4029d420, 0x7db5: 0x4029d620, 0x7db6: 0x4029d820, 0x7db7: 0x4029da20, - 0x7db8: 0x4029dc20, 0x7db9: 0x4029de20, 0x7dba: 0x40026c20, 0x7dbb: 0x40026220, - 0x7dbc: 0x40094020, 0x7dbd: 0xc32f0851, 0x7dbe: 0x40094420, 0x7dbf: 0x4002c420, - // Block 0x1f7, offset 0x7dc0 - 0x7dc0: 0x4004d620, 0x7dc1: 0x002bde88, 0x7dc2: 0x002c0a88, 0x7dc3: 0x002c3a88, - 0x7dc4: 0x002c6288, 0x7dc5: 0x002c9888, 0x7dc6: 0x002d0888, 0x7dc7: 0x002d2288, - 0x7dc8: 0x002d6888, 0x7dc9: 0x002d9a88, 0x7dca: 0x002dcc88, 0x7dcb: 0x002dfe88, - 0x7dcc: 0xc0030002, 0x7dcd: 0x002e8288, 0x7dce: 0x002e9e88, 0x7dcf: 0x002ee288, - 0x7dd0: 0x002f2c88, 0x7dd1: 0x002f5688, 0x7dd2: 0x002f7a88, 0x7dd3: 0x002fe688, - 0x7dd4: 0x00302c88, 0x7dd5: 0x00306c88, 0x7dd6: 0x0030be88, 0x7dd7: 0x0030e288, - 0x7dd8: 0x0030f688, 0x7dd9: 0x00310088, 0x7dda: 0x00312a88, 0x7ddb: 0x4003f820, - 0x7ddc: 0x4004e420, 0x7ddd: 0x4003fa20, 0x7dde: 0x40062420, 0x7ddf: 0x40021620, - 0x7de0: 0x40061e20, 0x7de1: 0x402bde20, 0x7de2: 0x402c0a20, 0x7de3: 0x402c3a20, - 0x7de4: 0x402c6220, 0x7de5: 0x402c9820, 0x7de6: 0x402d0820, 0x7de7: 0x402d2220, - 0x7de8: 0x402d6820, 0x7de9: 0x402d9a20, 0x7dea: 0x402dcc20, 0x7deb: 0x402dfe20, - 0x7dec: 0xc0000002, 0x7ded: 0x402e8220, 0x7dee: 0x402e9e20, 0x7def: 0x402ee220, - 0x7df0: 0x402f2c20, 0x7df1: 0x402f5620, 0x7df2: 0x402f7a20, 0x7df3: 0x402fe620, - 0x7df4: 0x40302c20, 0x7df5: 0x40306c20, 0x7df6: 0x4030be20, 0x7df7: 0x4030e220, - 0x7df8: 0x4030f620, 0x7df9: 0x40310020, 0x7dfa: 0x40312a20, 0x7dfb: 0x4003fc20, - 0x7dfc: 0x40094820, 0x7dfd: 0x4003fe20, 0x7dfe: 0x40094c20, 0x7dff: 0xa0000000, - // Block 0x1f8, offset 0x7e00 - 0x7e00: 0xa0000000, 0x7e01: 0xa0000000, 0x7e02: 0xa0000000, 0x7e03: 0xa0000000, - 0x7e04: 0xa0000000, 0x7e05: 0xa0000000, 0x7e06: 0xa0000000, 0x7e07: 0xa0000000, - 0x7e08: 0xa0000000, 0x7e09: 0x40020020, 0x7e0a: 0x40020220, 0x7e0b: 0x40020420, - 0x7e0c: 0x40020620, 0x7e0d: 0x40020820, 0x7e0e: 0xa0000000, 0x7e0f: 0xa0000000, - 0x7e10: 0xa0000000, 0x7e11: 0xa0000000, 0x7e12: 0xa0000000, 0x7e13: 0xa0000000, - 0x7e14: 0xa0000000, 0x7e15: 0xa0000000, 0x7e16: 0xa0000000, 0x7e17: 0xa0000000, - 0x7e18: 0xa0000000, 0x7e19: 0xa0000000, 0x7e1a: 0xa0000000, 0x7e1b: 0xa0000000, - 0x7e1c: 0xa0000000, 0x7e1d: 0xa0000000, 0x7e1e: 0xa0000000, 0x7e1f: 0xa0000000, - 0x7e20: 0x40021220, 0x7e21: 0x4002ba20, 0x7e22: 0x4003e020, 0x7e23: 0x4004ea20, - 0x7e24: 0x4027de20, 0x7e25: 0x4004ec20, 0x7e26: 0x4004e620, 0x7e27: 0x4003d220, - 0x7e28: 0x4003f420, 0x7e29: 0x4003f620, 0x7e2a: 0x4004d820, 0x7e2b: 0x40093820, - 0x7e2c: 0x40024020, 0x7e2d: 0x40021a20, 0x7e2e: 0x4002e420, 0x7e2f: 0x4004e220, - 0x7e30: 0x4029cc20, 0x7e31: 0x4029ce20, 0x7e32: 0x4029d020, 0x7e33: 0x4029d220, - 0x7e34: 0x4029d420, 0x7e35: 0x4029d620, 0x7e36: 0x4029d820, 0x7e37: 0x4029da20, - 0x7e38: 0x4029dc20, 0x7e39: 0x4029de20, 0x7e3a: 0x40026c20, 0x7e3b: 0x40026220, - 0x7e3c: 0x40094020, 0x7e3d: 0xc32f0851, 0x7e3e: 0x40094420, 0x7e3f: 0x4002c420, - // Block 0x1f9, offset 0x7e40 - 0x7e40: 0x4004d620, 0x7e41: 0x002bde88, 0x7e42: 0x002c0a88, 0x7e43: 0x002c3a88, - 0x7e44: 0x002c6288, 0x7e45: 0x002c9888, 0x7e46: 0x002d0888, 0x7e47: 0x002d2288, - 0x7e48: 0x002d6888, 0x7e49: 0x002d9a88, 0x7e4a: 0x002dcc88, 0x7e4b: 0x002dfe88, - 0x7e4c: 0xc0030002, 0x7e4d: 0x002e8288, 0x7e4e: 0xc3690a31, 0x7e4f: 0x002ee288, - 0x7e50: 0x002f2c88, 0x7e51: 0x002f5688, 0x7e52: 0x002f7a88, 0x7e53: 0x002fe688, - 0x7e54: 0x00302c88, 0x7e55: 0x00306c88, 0x7e56: 0x0030be88, 0x7e57: 0x0030e288, - 0x7e58: 0x0030f688, 0x7e59: 0x00310088, 0x7e5a: 0x00312a88, 0x7e5b: 0x4003f820, - 0x7e5c: 0x4004e420, 0x7e5d: 0x4003fa20, 0x7e5e: 0x40062420, 0x7e5f: 0x40021620, - 0x7e60: 0x40061e20, 0x7e61: 0x402bde20, 0x7e62: 0x402c0a20, 0x7e63: 0x402c3a20, - 0x7e64: 0x402c6220, 0x7e65: 0x402c9820, 0x7e66: 0x402d0820, 0x7e67: 0x402d2220, - 0x7e68: 0x402d6820, 0x7e69: 0x402d9a20, 0x7e6a: 0x402dcc20, 0x7e6b: 0x402dfe20, - 0x7e6c: 0xc0000002, 0x7e6d: 0x402e8220, 0x7e6e: 0xc3670a31, 0x7e6f: 0x402ee220, - 0x7e70: 0x402f2c20, 0x7e71: 0x402f5620, 0x7e72: 0x402f7a20, 0x7e73: 0x402fe620, - 0x7e74: 0x40302c20, 0x7e75: 0x40306c20, 0x7e76: 0x4030be20, 0x7e77: 0x4030e220, - 0x7e78: 0x4030f620, 0x7e79: 0x40310020, 0x7e7a: 0x40312a20, 0x7e7b: 0x4003fc20, - 0x7e7c: 0x40094820, 0x7e7d: 0x4003fe20, 0x7e7e: 0x40094c20, 0x7e7f: 0xa0000000, - // Block 0x1fa, offset 0x7e80 - 0x7e80: 0xe00008f5, 0x7e81: 0xe00008ef, 0x7e82: 0xe0000921, 0x7e83: 0xe0000969, - 0x7e84: 0xe000095b, 0x7e85: 0xe000094d, 0x7e86: 0xe00009dd, 0x7e87: 0xe0000a53, - 0x7e88: 0xe0000ae8, 0x7e89: 0xe0000ae2, 0x7e8a: 0xe0000af4, 0x7e8b: 0xe0000b20, - 0x7e8c: 0xe0000c2b, 0x7e8d: 0xe0000c25, 0x7e8e: 0xe0000c37, 0x7e8f: 0xe0000c43, - 0x7e90: 0xe0000ab3, 0x7e91: 0x002ea083, 0x7e92: 0xe0000d9a, 0x7e93: 0xe0000d94, - 0x7e94: 0xe0000da6, 0x7e95: 0xe0000de6, 0x7e96: 0xe0000dd2, 0x7e97: 0x40093e20, - 0x7e98: 0xe0000e12, 0x7e99: 0xe0000fe1, 0x7e9a: 0xe0000fdb, 0x7e9b: 0xe0000fed, - 0x7e9c: 0xe0000fff, 0x7e9d: 0xe0001102, 0x7e9e: 0x00318888, 0x7e9f: 0xe0000f7b, - 0x7ea0: 0xe00008f2, 0x7ea1: 0xe00008ec, 0x7ea2: 0xe000091e, 0x7ea3: 0xe0000966, - 0x7ea4: 0xe0000958, 0x7ea5: 0xe000094a, 0x7ea6: 0xe00009d5, 0x7ea7: 0xe0000a4d, - 0x7ea8: 0xe0000ae5, 0x7ea9: 0xe0000adf, 0x7eaa: 0xe0000af1, 0x7eab: 0xe0000b1d, - 0x7eac: 0xe0000c28, 0x7ead: 0xe0000c22, 0x7eae: 0xe0000c34, 0x7eaf: 0xe0000c40, - 0x7eb0: 0xe0000aad, 0x7eb1: 0x402ea020, 0x7eb2: 0xe0000d97, 0x7eb3: 0xe0000d91, - 0x7eb4: 0xe0000da3, 0x7eb5: 0xe0000de3, 0x7eb6: 0xe0000dcf, 0x7eb7: 0x40093c20, - 0x7eb8: 0xe0000e0f, 0x7eb9: 0xe0000fde, 0x7eba: 0xe0000fd8, 0x7ebb: 0xe0000fea, - 0x7ebc: 0xe0000ffc, 0x7ebd: 0xe00010ff, 0x7ebe: 0x40318820, 0x7ebf: 0xe0001114, - // Block 0x1fb, offset 0x7ec0 - 0x7ec0: 0xa0000000, 0x7ec1: 0xa0000000, 0x7ec2: 0xa0000000, 0x7ec3: 0xa0000000, - 0x7ec4: 0xa0000000, 0x7ec5: 0xa0000000, 0x7ec6: 0xa0000000, 0x7ec7: 0xa0000000, - 0x7ec8: 0xa0000000, 0x7ec9: 0x40020020, 0x7eca: 0x40020220, 0x7ecb: 0x40020420, - 0x7ecc: 0x40020620, 0x7ecd: 0x40020820, 0x7ece: 0xa0000000, 0x7ecf: 0xa0000000, - 0x7ed0: 0xa0000000, 0x7ed1: 0xa0000000, 0x7ed2: 0xa0000000, 0x7ed3: 0xa0000000, - 0x7ed4: 0xa0000000, 0x7ed5: 0xa0000000, 0x7ed6: 0xa0000000, 0x7ed7: 0xa0000000, - 0x7ed8: 0xa0000000, 0x7ed9: 0xa0000000, 0x7eda: 0xa0000000, 0x7edb: 0xa0000000, - 0x7edc: 0xa0000000, 0x7edd: 0xa0000000, 0x7ede: 0xa0000000, 0x7edf: 0xa0000000, - 0x7ee0: 0x40021220, 0x7ee1: 0x4002ba20, 0x7ee2: 0x4003e020, 0x7ee3: 0x4004ea20, - 0x7ee4: 0x4027de20, 0x7ee5: 0x4004ec20, 0x7ee6: 0x4004e620, 0x7ee7: 0x4003d220, - 0x7ee8: 0x4003f420, 0x7ee9: 0x4003f620, 0x7eea: 0x4004d820, 0x7eeb: 0x40093820, - 0x7eec: 0x40024020, 0x7eed: 0x40021a20, 0x7eee: 0x4002e420, 0x7eef: 0x4004e220, - 0x7ef0: 0x4029cc20, 0x7ef1: 0x4029ce20, 0x7ef2: 0x4029d020, 0x7ef3: 0x4029d220, - 0x7ef4: 0x4029d420, 0x7ef5: 0x4029d620, 0x7ef6: 0x4029d820, 0x7ef7: 0x4029da20, - 0x7ef8: 0x4029dc20, 0x7ef9: 0x4029de20, 0x7efa: 0x40026c20, 0x7efb: 0x40026220, - 0x7efc: 0x40094020, 0x7efd: 0xc32f0851, 0x7efe: 0x40094420, 0x7eff: 0x4002c420, - // Block 0x1fc, offset 0x7f00 - 0x7f00: 0x4004d620, 0x7f01: 0xc3a90a51, 0x7f02: 0x002c0a88, 0x7f03: 0x002c3a88, - 0x7f04: 0x002c6288, 0x7f05: 0x002c9888, 0x7f06: 0x002d0888, 0x7f07: 0x002d2288, - 0x7f08: 0x002d6888, 0x7f09: 0x002d9a88, 0x7f0a: 0x002dcc88, 0x7f0b: 0x002dfe88, - 0x7f0c: 0xc0030002, 0x7f0d: 0x002e8288, 0x7f0e: 0x002e9e88, 0x7f0f: 0xc3b00a81, - 0x7f10: 0x002f2c88, 0x7f11: 0x002f5688, 0x7f12: 0x002f7a88, 0x7f13: 0x002fe688, - 0x7f14: 0x00302c88, 0x7f15: 0xc3840951, 0x7f16: 0x0030be88, 0x7f17: 0x0030bea3, - 0x7f18: 0x0030f688, 0x7f19: 0x00310088, 0x7f1a: 0x00312a88, 0x7f1b: 0x4003f820, - 0x7f1c: 0x4004e420, 0x7f1d: 0x4003fa20, 0x7f1e: 0x40062420, 0x7f1f: 0x40021620, - 0x7f20: 0x40061e20, 0x7f21: 0xc3a60a51, 0x7f22: 0x402c0a20, 0x7f23: 0x402c3a20, - 0x7f24: 0x402c6220, 0x7f25: 0x402c9820, 0x7f26: 0x402d0820, 0x7f27: 0x402d2220, - 0x7f28: 0x402d6820, 0x7f29: 0x402d9a20, 0x7f2a: 0x402dcc20, 0x7f2b: 0x402dfe20, - 0x7f2c: 0xc0000002, 0x7f2d: 0x402e8220, 0x7f2e: 0x402e9e20, 0x7f2f: 0xc3ac0a81, - 0x7f30: 0x402f2c20, 0x7f31: 0x402f5620, 0x7f32: 0x402f7a20, 0x7f33: 0x402fe620, - 0x7f34: 0x40302c20, 0x7f35: 0xc3810951, 0x7f36: 0x4030be20, 0x7f37: 0x4030be21, - 0x7f38: 0x4030f620, 0x7f39: 0x40310020, 0x7f3a: 0x40312a20, 0x7f3b: 0x4003fc20, - 0x7f3c: 0x40094820, 0x7f3d: 0x4003fe20, 0x7f3e: 0x40094c20, 0x7f3f: 0xa0000000, - // Block 0x1fd, offset 0x7f40 - 0x7f40: 0xe00008f5, 0x7f41: 0xe00008ef, 0x7f42: 0xe0000921, 0x7f43: 0xe0000969, - 0x7f44: 0x00320e83, 0x7f45: 0x00320c83, 0x7f46: 0x00320ea3, 0x7f47: 0xe0000a53, - 0x7f48: 0xe0000ae8, 0x7f49: 0xe0000ae2, 0x7f4a: 0xe0000af4, 0x7f4b: 0xe0000b20, - 0x7f4c: 0xe0000c2b, 0x7f4d: 0xe0000c25, 0x7f4e: 0xe0000c37, 0x7f4f: 0xe0000c43, - 0x7f50: 0x002c62a3, 0x7f51: 0xe0000d63, 0x7f52: 0xe0000d9a, 0x7f53: 0xe0000d94, - 0x7f54: 0xe0000da6, 0x7f55: 0x003210e3, 0x7f56: 0x00321083, 0x7f57: 0x40093e20, - 0x7f58: 0x003210a3, 0x7f59: 0xe0000fe1, 0x7f5a: 0xe0000fdb, 0x7f5b: 0xe0000fed, - 0x7f5c: 0x003100a3, 0x7f5d: 0xe0001102, 0x7f5e: 0xe0002716, 0x7f5f: 0xe0000f7b, - 0x7f60: 0xe00008f2, 0x7f61: 0xe00008ec, 0x7f62: 0xe000091e, 0x7f63: 0xe0000966, - 0x7f64: 0x40320e20, 0x7f65: 0x40320c20, 0x7f66: 0x40320e21, 0x7f67: 0xe0000a4d, - 0x7f68: 0xe0000ae5, 0x7f69: 0xe0000adf, 0x7f6a: 0xe0000af1, 0x7f6b: 0xe0000b1d, - 0x7f6c: 0xe0000c28, 0x7f6d: 0xe0000c22, 0x7f6e: 0xe0000c34, 0x7f6f: 0xe0000c40, - 0x7f70: 0x402c6221, 0x7f71: 0xe0000d60, 0x7f72: 0xe0000d97, 0x7f73: 0xe0000d91, - 0x7f74: 0xe0000da3, 0x7f75: 0x40321023, 0x7f76: 0x40321020, 0x7f77: 0x40093c20, - 0x7f78: 0x40321021, 0x7f79: 0xe0000fde, 0x7f7a: 0xe0000fd8, 0x7f7b: 0xe0000fea, - 0x7f7c: 0x40310021, 0x7f7d: 0xe00010ff, 0x7f7e: 0xe0002713, 0x7f7f: 0xe0001114, - // Block 0x1fe, offset 0x7f80 - 0x7f80: 0xe0000983, 0x7f81: 0xe0000980, 0x7f82: 0xe00008fb, 0x7f83: 0xe00008f8, - 0x7f84: 0xe000097d, 0x7f85: 0xe000097a, 0x7f86: 0xe0000a38, 0x7f87: 0xe0000a35, - 0x7f88: 0xe0000a3e, 0x7f89: 0xe0000a3b, 0x7f8a: 0xe0000a4a, 0x7f8b: 0xe0000a47, - 0x7f8c: 0xe0000a44, 0x7f8d: 0xe0000a41, 0x7f8e: 0xe0000a86, 0x7f8f: 0xe0000a83, - 0x7f90: 0x002c62c3, 0x7f91: 0x402c6222, 0x7f92: 0xe0000b46, 0x7f93: 0xe0000b43, - 0x7f94: 0xe0000aee, 0x7f95: 0xe0000aeb, 0x7f96: 0xe0000b2c, 0x7f97: 0xe0000b29, - 0x7f98: 0xe0000b40, 0x7f99: 0xe0000b3d, 0x7f9a: 0xe0000b1a, 0x7f9b: 0xe0000b17, - 0x7f9c: 0xe0000bb8, 0x7f9d: 0xe0000bb5, 0x7f9e: 0xe0000bb2, 0x7f9f: 0xe0000baf, - 0x7fa0: 0xe0000bc4, 0x7fa1: 0xe0000bc1, 0x7fa2: 0xe0000bca, 0x7fa3: 0xe0000bc7, - 0x7fa4: 0xe0000bee, 0x7fa5: 0xe0000beb, 0x7fa6: 0xe0000c1b, 0x7fa7: 0xe0000c18, - 0x7fa8: 0xe0000c51, 0x7fa9: 0xe0000c4e, 0x7faa: 0xe0000c60, 0x7fab: 0xe0000c5d, - 0x7fac: 0xe0000c31, 0x7fad: 0xe0000c2e, 0x7fae: 0xe0000c5a, 0x7faf: 0xe0000c57, - 0x7fb0: 0xe0000c54, 0x7fb1: 0x402da220, 0x7fb2: 0xf0000a0a, 0x7fb3: 0xf0000404, - 0x7fb4: 0xe0000c8a, 0x7fb5: 0xe0000c87, 0x7fb6: 0xe0000c9f, 0x7fb7: 0xe0000c9c, - 0x7fb8: 0x402f7220, 0x7fb9: 0xe0000ccc, 0x7fba: 0xe0000cc9, 0x7fbb: 0xe0000cd8, - 0x7fbc: 0xe0000cd5, 0x7fbd: 0xe0000cd2, 0x7fbe: 0xe0000ccf, 0x7fbf: 0xe0000d04, - // Block 0x1ff, offset 0x7fc0 - 0x7fc0: 0xe0000cfe, 0x7fc1: 0xe0000cf8, 0x7fc2: 0xe0000cf5, 0x7fc3: 0xe0000d51, - 0x7fc4: 0xe0000d4e, 0x7fc5: 0xe0000d6f, 0x7fc6: 0xe0000d6c, 0x7fc7: 0xe0000d5d, - 0x7fc8: 0xe0000d5a, 0x7fc9: 0xf0000404, 0x7fca: 0x002e9ea3, 0x7fcb: 0x402e9e21, - 0x7fcc: 0xe0000e2e, 0x7fcd: 0xe0000e2b, 0x7fce: 0xe0000da0, 0x7fcf: 0xe0000d9d, - 0x7fd0: 0x003210c3, 0x7fd1: 0x40321022, 0x7fd2: 0x00321103, 0x7fd3: 0x40321024, - 0x7fd4: 0xe0000eca, 0x7fd5: 0xe0000ec7, 0x7fd6: 0xe0000edc, 0x7fd7: 0xe0000ed9, - 0x7fd8: 0xe0000ed0, 0x7fd9: 0xe0000ecd, 0x7fda: 0xe0000f1f, 0x7fdb: 0xe0000f1c, - 0x7fdc: 0xe0000f2d, 0x7fdd: 0xe0000f2a, 0x7fde: 0xe0000f47, 0x7fdf: 0xe0000f44, - 0x7fe0: 0xe0000f33, 0x7fe1: 0xe0000f30, 0x7fe2: 0xe0000f99, 0x7fe3: 0xe0000f96, - 0x7fe4: 0xe0000f8a, 0x7fe5: 0xe0000f87, 0x7fe6: 0x00303688, 0x7fe7: 0x40303620, - 0x7fe8: 0xe000102b, 0x7fe9: 0xe0001028, 0x7fea: 0xe000103f, 0x7feb: 0xe000103c, - 0x7fec: 0xe0000fe7, 0x7fed: 0xe0000fe4, 0x7fee: 0xe0000ff9, 0x7fef: 0xe0000ff6, - 0x7ff0: 0x003100c3, 0x7ff1: 0x40310022, 0x7ff2: 0xe0001039, 0x7ff3: 0xe0001036, - 0x7ff4: 0xe0002728, 0x7ff5: 0xe0002725, 0x7ff6: 0xe000110e, 0x7ff7: 0xe000110b, - 0x7ff8: 0xe0001117, 0x7ff9: 0xe000113b, 0x7ffa: 0xe0001138, 0x7ffb: 0xe000114d, - 0x7ffc: 0xe000114a, 0x7ffd: 0xe0001147, 0x7ffe: 0xe0001144, 0x7fff: 0xe0000f64, - // Block 0x200, offset 0x8000 - 0x8000: 0x40321220, 0x8001: 0x40321a20, 0x8002: 0x40322220, 0x8003: 0x40322a20, - 0x8004: 0xe0000ad5, 0x8005: 0xe0000ad1, 0x8006: 0xe0000acd, 0x8007: 0xf0000a0a, - 0x8008: 0xf000040a, 0x8009: 0xf0000404, 0x800a: 0xf0000a0a, 0x800b: 0xf000040a, - 0x800c: 0xf0000404, 0x800d: 0xe0000947, 0x800e: 0xe0000944, 0x800f: 0xe0000c3d, - 0x8010: 0xe0000c3a, 0x8011: 0xe0000dcc, 0x8012: 0xe0000dc9, 0x8013: 0xe0000ff3, - 0x8014: 0xe0000ff0, 0x8015: 0xe0002685, 0x8016: 0xe0002682, 0x8017: 0xe0002673, - 0x8018: 0xe0002670, 0x8019: 0xe000267f, 0x801a: 0xe000267c, 0x801b: 0xe0002679, - 0x801c: 0xe0002676, 0x801d: 0x402cae20, 0x801e: 0xe000274c, 0x801f: 0xe0002749, - 0x8020: 0xe0000976, 0x8021: 0xe0000972, 0x8022: 0xe00026a9, 0x8023: 0xe00026a6, - 0x8024: 0x002d3a88, 0x8025: 0x402d3a20, 0x8026: 0xe0000bbe, 0x8027: 0xe0000bbb, - 0x8028: 0xe0000c99, 0x8029: 0xe0000c96, 0x802a: 0xe0000e20, 0x802b: 0xe0000e1d, - 0x802c: 0xe0000e27, 0x802d: 0xe0000e23, 0x802e: 0xe0001162, 0x802f: 0xe000115f, - 0x8030: 0xe0000c8d, 0x8031: 0xf0000a0a, 0x8032: 0xf000040a, 0x8033: 0xf0000404, - 0x8034: 0xe0000bac, 0x8035: 0xe0000ba9, 0x8036: 0x002d7888, 0x8037: 0x00319488, - 0x8038: 0xe0000d57, 0x8039: 0xe0000d54, 0x803a: 0xe000268b, 0x803b: 0xe0002688, - 0x803c: 0xe0002752, 0x803d: 0xe000274f, 0x803e: 0xe000275e, 0x803f: 0xe000275b, - // Block 0x201, offset 0x8040 - 0x8040: 0xe000098f, 0x8041: 0xe000098c, 0x8042: 0xe0000995, 0x8043: 0xe0000992, - 0x8044: 0xe0000b62, 0x8045: 0xe0000b5f, 0x8046: 0xe0000b68, 0x8047: 0xe0000b65, - 0x8048: 0xe0000c6c, 0x8049: 0xe0000c69, 0x804a: 0xe0000c72, 0x804b: 0xe0000c6f, - 0x804c: 0xe0000e4a, 0x804d: 0xe0000e47, 0x804e: 0xe0000e50, 0x804f: 0xe0000e4d, - 0x8050: 0xe0000ee8, 0x8051: 0xe0000ee5, 0x8052: 0xe0000eee, 0x8053: 0xe0000eeb, - 0x8054: 0xe0001053, 0x8055: 0xe0001050, 0x8056: 0xe0001059, 0x8057: 0xe0001056, - 0x8058: 0xe0000f61, 0x8059: 0xe0000f5e, 0x805a: 0xe0000fa5, 0x805b: 0xe0000fa2, - 0x805c: 0x00312288, 0x805d: 0x40312220, 0x805e: 0xe0000bf4, 0x805f: 0xe0000bf1, - 0x8060: 0x002ebc88, 0x8061: 0x402c8c20, 0x8062: 0x002f2288, 0x8063: 0x402f2220, - 0x8064: 0x00314088, 0x8065: 0x40314020, 0x8066: 0xe000096f, 0x8067: 0xe000096c, - 0x8068: 0xe0000b32, 0x8069: 0xe0000b2f, 0x806a: 0xe0002758, 0x806b: 0xe0002755, - 0x806c: 0xe0002776, 0x806d: 0xe0002773, 0x806e: 0xe0000e04, 0x806f: 0xe0000e01, - 0x8070: 0xe0000e0b, 0x8071: 0xe0000e07, 0x8072: 0xe0001129, 0x8073: 0xe0001126, - 0x8074: 0x402e5e20, 0x8075: 0x402ed020, 0x8076: 0x40305a20, 0x8077: 0x402dd420, - 0x8078: 0xe0000abf, 0x8079: 0xe0000ec4, 0x807a: 0x002be888, 0x807b: 0x002c4488, - 0x807c: 0x402c4420, 0x807d: 0x002e3888, 0x807e: 0x00303e88, 0x807f: 0x402ffc20, - // Block 0x202, offset 0x8080 - 0x8080: 0xe0000d24, 0x8081: 0xe0000d21, 0x8082: 0xe0000d2a, 0x8083: 0xe0000d27, - 0x8084: 0xe0000d69, 0x8085: 0xe0000d66, 0x8086: 0xe0000d7b, 0x8087: 0xe0000d78, - 0x8088: 0xe0000d87, 0x8089: 0xe0000d84, 0x808a: 0xe0000d81, 0x808b: 0xe0000d7e, - 0x808c: 0xe0002764, 0x808d: 0xe0002761, 0x808e: 0xe0002770, 0x808f: 0xe000276d, - 0x8090: 0xe0000e3d, 0x8091: 0xe0000e39, 0x8092: 0xe0000e35, 0x8093: 0xe0000e31, - 0x8094: 0xe0000ea7, 0x8095: 0xe0000ea4, 0x8096: 0xe0000ead, 0x8097: 0xe0000eaa, - 0x8098: 0xe0000ed6, 0x8099: 0xe0000ed3, 0x809a: 0xe0000ef4, 0x809b: 0xe0000ef1, - 0x809c: 0xe0000efb, 0x809d: 0xe0000ef7, 0x809e: 0xe0000f02, 0x809f: 0xe0000eff, - 0x80a0: 0xe0000f41, 0x80a1: 0xe0000f3e, 0x80a2: 0xe0000f53, 0x80a3: 0xe0000f50, - 0x80a4: 0xe0000f26, 0x80a5: 0xe0000f22, 0x80a6: 0xe0000f3a, 0x80a7: 0xe0000f36, - 0x80a8: 0xe0000f5a, 0x80a9: 0xe0000f56, 0x80aa: 0xe0000f93, 0x80ab: 0xe0000f90, - 0x80ac: 0xe0000f9f, 0x80ad: 0xe0000f9c, 0x80ae: 0xe0000fb1, 0x80af: 0xe0000fae, - 0x80b0: 0xe0000fab, 0x80b1: 0xe0000fa8, 0x80b2: 0xe0001093, 0x80b3: 0xe0001090, - 0x80b4: 0xe000109f, 0x80b5: 0xe000109c, 0x80b6: 0xe0001099, 0x80b7: 0xe0001096, - 0x80b8: 0xe0001032, 0x80b9: 0xe000102e, 0x80ba: 0xe0002685, 0x80bb: 0xe0002682, - 0x80bc: 0xe00010a9, 0x80bd: 0xe00010a6, 0x80be: 0xe00010af, 0x80bf: 0xe00010ac, - // Block 0x203, offset 0x80c0 - 0x80c0: 0xe0002722, 0x80c1: 0xe000271f, 0x80c2: 0xe000271c, 0x80c3: 0xe0002719, - 0x80c4: 0xe0002731, 0x80c5: 0xe000272e, 0x80c6: 0xe0002737, 0x80c7: 0xe0002734, - 0x80c8: 0xe000273d, 0x80c9: 0xe000273a, 0x80ca: 0xe00010fc, 0x80cb: 0xe00010f9, - 0x80cc: 0xe00010f6, 0x80cd: 0xe00010f3, 0x80ce: 0xe0001123, 0x80cf: 0xe0001120, - 0x80d0: 0xe0001141, 0x80d1: 0xe000113e, 0x80d2: 0xe0001153, 0x80d3: 0xe0001150, - 0x80d4: 0xe0001159, 0x80d5: 0xe0001156, 0x80d6: 0xe0000c15, 0x80d7: 0xe0000f8d, - 0x80d8: 0xe000272b, 0x80d9: 0xe0001111, 0x80da: 0xf0000404, 0x80db: 0xe0000f70, - 0x80dc: 0x40300420, 0x80dd: 0x40300620, 0x80de: 0xe0000f7f, 0x80df: 0x402c9620, - 0x80e0: 0xe000099b, 0x80e1: 0xe0000998, 0x80e2: 0xe0000989, 0x80e3: 0xe0000986, - 0x80e4: 0xe0000928, 0x80e5: 0xe0000924, 0x80e6: 0xe0000930, 0x80e7: 0xe000092c, - 0x80e8: 0xe0000940, 0x80e9: 0xe000093c, 0x80ea: 0xe0000938, 0x80eb: 0xe0000934, - 0x80ec: 0xe00009aa, 0x80ed: 0xe00009a6, 0x80ee: 0xe0000902, 0x80ef: 0xe00008fe, - 0x80f0: 0xe000090a, 0x80f1: 0xe0000906, 0x80f2: 0xe000091a, 0x80f3: 0xe0000916, - 0x80f4: 0xe0000912, 0x80f5: 0xe000090e, 0x80f6: 0xe00009a2, 0x80f7: 0xe000099e, - 0x80f8: 0xe0000b6e, 0x80f9: 0xe0000b6b, 0x80fa: 0xe0000b5c, 0x80fb: 0xe0000b59, - 0x80fc: 0xe0000b26, 0x80fd: 0xe0000b23, 0x80fe: 0xe0000afb, 0x80ff: 0xe0000af7, - // Block 0x204, offset 0x8100 - 0x8100: 0xe0000b03, 0x8101: 0xe0000aff, 0x8102: 0xe0000b13, 0x8103: 0xe0000b0f, - 0x8104: 0xe0000b0b, 0x8105: 0xe0000b07, 0x8106: 0xe0000b75, 0x8107: 0xe0000b71, - 0x8108: 0xe0000c66, 0x8109: 0xe0000c63, 0x810a: 0xe0000c78, 0x810b: 0xe0000c75, - 0x810c: 0xe0000e84, 0x810d: 0xe0000e81, 0x810e: 0xe0000e44, 0x810f: 0xe0000e41, - 0x8110: 0xe0000dad, 0x8111: 0xe0000da9, 0x8112: 0xe0000db5, 0x8113: 0xe0000db1, - 0x8114: 0xe0000dc5, 0x8115: 0xe0000dc1, 0x8116: 0xe000276a, 0x8117: 0xe0002767, - 0x8118: 0xe0000e8b, 0x8119: 0xe0000e87, 0x811a: 0xe0000e5d, 0x811b: 0xe0000e59, - 0x811c: 0xe0000e65, 0x811d: 0xe0000e61, 0x811e: 0xe0000e75, 0x811f: 0xe0000e71, - 0x8120: 0xe000277c, 0x8121: 0xe0002779, 0x8122: 0xe0000e7d, 0x8123: 0xe0000e79, - 0x8124: 0xe000108d, 0x8125: 0xe000108a, 0x8126: 0xe000104d, 0x8127: 0xe000104a, - 0x8128: 0xe0001066, 0x8129: 0xe0001062, 0x812a: 0xe000106e, 0x812b: 0xe000106a, - 0x812c: 0xe000107e, 0x812d: 0xe000107a, 0x812e: 0xe0001076, 0x812f: 0xe0001072, - 0x8130: 0xe0001086, 0x8131: 0xe0001082, 0x8132: 0xe0001108, 0x8133: 0xe0001105, - 0x8134: 0xe0001135, 0x8135: 0xe0001132, 0x8136: 0xe000112f, 0x8137: 0xe000112c, - 0x8138: 0xe000111d, 0x8139: 0xe000111a, 0x813a: 0xe0000d0a, 0x813b: 0xe0000d07, - 0x813c: 0x0030d888, 0x813d: 0x4030d820, 0x813e: 0x00312088, 0x813f: 0x40312020, - // Block 0x205, offset 0x8140 - 0x8140: 0xe00009bc, 0x8141: 0xe00009c0, 0x8142: 0x002c3a8b, 0x8143: 0xf0000a04, - 0x8144: 0x40081c20, 0x8145: 0xe0000a5e, 0x8146: 0xe0000a62, 0x8147: 0x002cc28a, - 0x8148: 0x40081e20, 0x8149: 0xf0000a04, 0x814a: 0x002d2285, 0x814b: 0x002d688b, - 0x814c: 0x002d688b, 0x814d: 0x002d688b, 0x814e: 0x002d6885, 0x814f: 0xf0000202, - 0x8150: 0x002d9a8b, 0x8151: 0x002d9a8b, 0x8152: 0x002e228b, 0x8153: 0x002e2285, - 0x8154: 0x40082020, 0x8155: 0x002e9e8b, 0x8156: 0xf000040a, 0x8157: 0x40082220, - 0x8158: 0x40082420, 0x8159: 0x002f2c8b, 0x815a: 0x002f568b, 0x815b: 0x002f7a8b, - 0x815c: 0x002f7a8b, 0x815d: 0x002f7a8b, 0x815e: 0x40082620, 0x815f: 0x40082820, - 0x8160: 0xf0001414, 0x8161: 0xe0000fbd, 0x8162: 0xf0001414, 0x8163: 0x40082a20, - 0x8164: 0x00312a8b, 0x8165: 0x40082c20, 0x8166: 0x0032a288, 0x8167: 0x40082e20, - 0x8168: 0x00312a8b, 0x8169: 0x40083020, 0x816a: 0x002dfe88, 0x816b: 0x00320c83, - 0x816c: 0x002c0a8b, 0x816d: 0x002c3a8b, 0x816e: 0x40083220, 0x816f: 0x002c9885, - 0x8170: 0x002c988b, 0x8171: 0x002d088b, 0x8172: 0x002d1e88, 0x8173: 0x002e828b, - 0x8174: 0x002ee285, 0x8175: 0x00389084, 0x8176: 0x00389284, 0x8177: 0x00389484, - 0x8178: 0x00389684, 0x8179: 0x002d9a85, 0x817a: 0x40083420, 0x817b: 0xe0000b95, - 0x817c: 0x00327e85, 0x817d: 0x00325685, 0x817e: 0x0032568b, 0x817f: 0x00327e8b, - // Block 0x206, offset 0x8180 - 0x8180: 0xe0000024, 0x8181: 0xe0000029, 0x8182: 0xe000002e, 0x8183: 0xe0000033, - 0x8184: 0xe0000038, 0x8185: 0xe000003d, 0x8186: 0xe0000042, 0x8187: 0xe0000047, - 0x8188: 0xf0001f04, 0x8189: 0xf0001f04, 0x818a: 0xf0001f04, 0x818b: 0xf0001f04, - 0x818c: 0xf0001f04, 0x818d: 0xf0001f04, 0x818e: 0xf0001f04, 0x818f: 0xf0001f04, - 0x8190: 0xf0001f04, 0x8191: 0xf0000404, 0x8192: 0xf0000404, 0x8193: 0xf0000404, - 0x8194: 0xf0000404, 0x8195: 0xf0000404, 0x8196: 0xf0000404, 0x8197: 0xf0000404, - 0x8198: 0xf0000404, 0x8199: 0xf0000404, 0x819a: 0xf0000404, 0x819b: 0xf0000404, - 0x819c: 0xf0000404, 0x819d: 0xf0000404, 0x819e: 0xf0000404, 0x819f: 0xf0000404, - 0x81a0: 0xf0000404, 0x81a1: 0xf0000404, 0x81a2: 0xf0000404, 0x81a3: 0xf0000404, - 0x81a4: 0xf0000404, 0x81a5: 0xf0000404, 0x81a6: 0xf0000404, 0x81a7: 0xf0000404, - 0x81a8: 0xf0000404, 0x81a9: 0xf0000404, 0x81aa: 0xf0000404, 0x81ab: 0xf0000404, - 0x81ac: 0xf0000404, 0x81ad: 0xf0000404, 0x81ae: 0xf0000404, 0x81af: 0xf0000404, - 0x81b0: 0xf0000404, 0x81b1: 0xf0000404, 0x81b2: 0xe00026fc, 0x81b3: 0xf0000404, - 0x81b4: 0xf0000404, 0x81b5: 0xf0000404, 0x81b6: 0x002bde8c, 0x81b7: 0x002c0a8c, - 0x81b8: 0x002c3a8c, 0x81b9: 0x002c628c, 0x81ba: 0x002c988c, 0x81bb: 0x002d088c, - 0x81bc: 0x002d228c, 0x81bd: 0x002d688c, 0x81be: 0x002d9a8c, 0x81bf: 0x002dcc8c, - // Block 0x207, offset 0x81c0 - 0x81c0: 0xf0001d1c, 0x81c1: 0xf0001d1c, 0x81c2: 0xf0001d1c, 0x81c3: 0xf0001d1c, - 0x81c4: 0xf0001d1c, 0x81c5: 0xf0001d1d, 0x81c6: 0xf0001d1d, 0x81c7: 0xf0001d1d, - 0x81c8: 0xe0000a6b, 0x81c9: 0xe0000cb4, 0x81ca: 0xf0001d1c, 0x81cb: 0xf0001d1c, - 0x81cc: 0xf0001d1c, 0x81cd: 0xf0001c1c, 0x81ce: 0xf0001c1c, 0x81cf: 0xf0001c1c, - 0x81d0: 0xf0001c1d, 0x81d1: 0xe0000cb9, 0x81d2: 0xe0000d36, 0x81d3: 0xe0000be3, - 0x81d4: 0xe0000fc5, 0x81d5: 0xf0001c1c, 0x81d6: 0xf0001c1c, 0x81d7: 0xf0001c1c, - 0x81d8: 0xf0001c1c, 0x81d9: 0xf0001c1c, 0x81da: 0xf0001c1c, 0x81db: 0xf0001c1c, - 0x81dc: 0xf0001c1c, 0x81dd: 0xf0001c1c, 0x81de: 0xf0001c1c, 0x81df: 0xe0000d3e, - 0x81e0: 0xe0000a72, 0x81e1: 0xf0001c1c, 0x81e2: 0xe0000cbd, 0x81e3: 0xe0000d42, - 0x81e4: 0xe0000a76, 0x81e5: 0xf0001c1c, 0x81e6: 0xe0000cc1, 0x81e7: 0xe0000d2d, - 0x81e8: 0xe0000d31, 0x81e9: 0xf0001c1d, 0x81ea: 0xe0000cc5, 0x81eb: 0xe0000d4a, - 0x81ec: 0xe0000be7, 0x81ed: 0xe0000f0b, 0x81ee: 0xe0000f0f, 0x81ef: 0xe0000f15, - 0x81f0: 0xf0001c1c, 0x81f1: 0xf0001c1c, 0x81f2: 0xf0001c1c, 0x81f3: 0xf0001c1c, - 0x81f4: 0xf0001d1c, 0x81f5: 0xf0001d1c, 0x81f6: 0xf0001d1c, 0x81f7: 0xf0001d1c, - 0x81f8: 0xf0001d1c, 0x81f9: 0xf0001d1d, 0x81fa: 0xe0002710, 0x81fb: 0xe000270d, - 0x81fc: 0xe000277f, 0x81fd: 0xe0002707, 0x81fe: 0xe0002704, 0x81ff: 0xe000270a, - // Block 0x208, offset 0x8200 - 0x8200: 0xf0001d1c, 0x8201: 0xf0001d1d, 0x8202: 0xe00009b7, 0x8203: 0xf0001c1d, - 0x8204: 0xf0001c1c, 0x8205: 0xf0001c1c, 0x8206: 0xe0000a66, 0x8207: 0xe0000a7a, - 0x8208: 0xf0001d1c, 0x8209: 0xf0001c1d, 0x820a: 0xf0001c1c, 0x820b: 0xf0001d1d, - 0x820c: 0xf0001c1c, 0x820d: 0xf0001d1d, 0x820e: 0xf0001d1d, 0x820f: 0xf0001c1c, - 0x8210: 0xf0001c1c, 0x8211: 0xf0001c1c, 0x8212: 0xe0000d0d, 0x8213: 0xf0001c1c, - 0x8214: 0xf0001c1c, 0x8215: 0xe0000d3a, 0x8216: 0xe0000d46, 0x8217: 0xf0001d1d, - 0x8218: 0xe0000eb0, 0x8219: 0xe0000eb8, 0x821a: 0xf0001d1d, 0x821b: 0xf0001c1c, - 0x821c: 0xf0001c1d, 0x821d: 0xe0002740, 0x821e: 0xe00010b2, 0x821f: 0xe00009c8, - 0x8220: 0xf0001f04, 0x8221: 0xf0001f04, 0x8222: 0xf0001f04, 0x8223: 0xf0001f04, - 0x8224: 0xf0001f04, 0x8225: 0xf0001f04, 0x8226: 0xf0001f04, 0x8227: 0xf0001f04, - 0x8228: 0xf0001f04, 0x8229: 0xf0000404, 0x822a: 0xf0000404, 0x822b: 0xf0000404, - 0x822c: 0xf0000404, 0x822d: 0xf0000404, 0x822e: 0xf0000404, 0x822f: 0xf0000404, - 0x8230: 0xf0000404, 0x8231: 0xf0000404, 0x8232: 0xf0000404, 0x8233: 0xf0000404, - 0x8234: 0xf0000404, 0x8235: 0xf0000404, 0x8236: 0xf0000404, 0x8237: 0xf0000404, - 0x8238: 0xf0000404, 0x8239: 0xf0000404, 0x823a: 0xf0000404, 0x823b: 0xf0000404, - 0x823c: 0xf0000404, 0x823d: 0xf0000404, 0x823e: 0xf0000404, 0x823f: 0xe0000bdf, - // Block 0x209, offset 0x8240 - 0x8240: 0xf0001f04, 0x8241: 0xf0001f04, 0x8242: 0xf0001f04, 0x8243: 0xf0001f04, - 0x8244: 0xf0001f04, 0x8245: 0xf0001f04, 0x8246: 0xf0001f04, 0x8247: 0xf0001f04, - 0x8248: 0xf0001f04, 0x8249: 0xf0001f04, 0x824a: 0xf0001f04, - 0x8250: 0xf0000a04, 0x8251: 0xf0000a04, 0x8252: 0xf0000a04, 0x8253: 0xf0000a04, - 0x8254: 0xf0000a04, 0x8255: 0xf0000a04, 0x8256: 0xf0000a04, 0x8257: 0xf0000a04, - 0x8258: 0xf0000a04, 0x8259: 0xf0000a04, 0x825a: 0xf0000a04, 0x825b: 0xf0000a04, - 0x825c: 0xf0000a04, 0x825d: 0xf0000a04, 0x825e: 0xf0000a04, 0x825f: 0xf0000a04, - 0x8260: 0xf0000a04, 0x8261: 0xf0000a04, 0x8262: 0xf0000a04, 0x8263: 0xf0000a04, - 0x8264: 0xf0000a04, 0x8265: 0xf0000a04, 0x8266: 0xe0002700, 0x8267: 0xf0000a04, - 0x8268: 0xf0000a04, 0x8269: 0xf0000a04, 0x826a: 0xf0000a04, 0x826b: 0x002c3a8c, - 0x826c: 0x002f7a8c, 0x826d: 0xf0000c0c, 0x826e: 0xe0002746, - 0x8270: 0x002bde9d, 0x8271: 0x002c0a9d, 0x8272: 0x002c3a9d, 0x8273: 0x002c629d, - 0x8274: 0x002c989d, 0x8275: 0x002d089d, 0x8276: 0x002d229d, 0x8277: 0x002d689d, - 0x8278: 0x002d9a9d, 0x8279: 0x002dcc9d, 0x827a: 0x002dfe9d, 0x827b: 0x002e229d, - 0x827c: 0x002e829d, 0x827d: 0x002e9e9d, 0x827e: 0x002ee29d, 0x827f: 0x002f2c9d, - // Block 0x20a, offset 0x8280 - 0x8280: 0x002f569d, 0x8281: 0x002f7a9d, 0x8282: 0x002fe69d, 0x8283: 0x00302c9d, - 0x8284: 0x00306c9d, 0x8285: 0x0030be9d, 0x8286: 0x0030e29d, 0x8287: 0x0030f69d, - 0x8288: 0x0031009d, 0x8289: 0x00312a9d, 0x828a: 0xf0001d1d, 0x828b: 0xf0001d1d, - 0x828c: 0xf0001d1d, 0x828d: 0xf0001d1d, 0x828e: 0xe0000ebc, 0x828f: 0xe0002743, - 0x8290: 0x002bde8c, 0x8291: 0x002c0a8c, 0x8292: 0x002c3a8c, 0x8293: 0x002c628c, - 0x8294: 0x002c988c, 0x8295: 0x002d088c, 0x8296: 0x002d228c, 0x8297: 0x002d688c, - 0x8298: 0x002d9a8c, 0x8299: 0x002dcc8c, 0x829a: 0x002dfe8c, 0x829b: 0x002e228c, - 0x829c: 0x002e828c, 0x829d: 0x002e9e8c, 0x829e: 0x002ee28c, 0x829f: 0x002f2c8c, - 0x82a0: 0x002f568c, 0x82a1: 0x002f7a8c, 0x82a2: 0x002fe68c, 0x82a3: 0x00302c8c, - 0x82a4: 0x00306c8c, 0x82a5: 0x0030be8c, 0x82a6: 0x0030e28c, 0x82a7: 0x0030f68c, - 0x82a8: 0x0031008c, 0x82a9: 0x00312a8c, 0x82aa: 0xf0001414, 0x82ab: 0xf0001414, - 0x82b0: 0x002bde9d, 0x82b1: 0x002c0a9d, 0x82b2: 0x002c3a9d, 0x82b3: 0x002c629d, - 0x82b4: 0x002c989d, 0x82b5: 0x002d089d, 0x82b6: 0x002d229d, 0x82b7: 0x002d689d, - 0x82b8: 0x002d9a9d, 0x82b9: 0x002dcc9d, 0x82ba: 0x002dfe9d, 0x82bb: 0x002e229d, - 0x82bc: 0x002e829d, 0x82bd: 0x002e9e9d, 0x82be: 0x002ee29d, 0x82bf: 0x002f2c9d, - // Block 0x20b, offset 0x82c0 - 0x82c0: 0xa0000000, 0x82c1: 0xa0000000, 0x82c2: 0xa0000000, 0x82c3: 0xa0000000, - 0x82c4: 0xa0000000, 0x82c5: 0xa0000000, 0x82c6: 0xa0000000, 0x82c7: 0xa0000000, - 0x82c8: 0xa0000000, 0x82c9: 0x40020020, 0x82ca: 0x40020220, 0x82cb: 0x40020420, - 0x82cc: 0x40020620, 0x82cd: 0x40020820, 0x82ce: 0xa0000000, 0x82cf: 0xa0000000, - 0x82d0: 0xa0000000, 0x82d1: 0xa0000000, 0x82d2: 0xa0000000, 0x82d3: 0xa0000000, - 0x82d4: 0xa0000000, 0x82d5: 0xa0000000, 0x82d6: 0xa0000000, 0x82d7: 0xa0000000, - 0x82d8: 0xa0000000, 0x82d9: 0xa0000000, 0x82da: 0xa0000000, 0x82db: 0xa0000000, - 0x82dc: 0xa0000000, 0x82dd: 0xa0000000, 0x82de: 0xa0000000, 0x82df: 0xa0000000, - 0x82e0: 0x40021220, 0x82e1: 0x4002ba20, 0x82e2: 0xa0002402, 0x82e3: 0x4004ea20, - 0x82e4: 0x4027de20, 0x82e5: 0x4004ec20, 0x82e6: 0x4004e620, 0x82e7: 0xa0002202, - 0x82e8: 0x4003f420, 0x82e9: 0x4003f620, 0x82ea: 0x4004d820, 0x82eb: 0x40093820, - 0x82ec: 0x40024020, 0x82ed: 0x40021a20, 0x82ee: 0x4002e420, 0x82ef: 0x4004e220, - 0x82f0: 0x4029cc20, 0x82f1: 0x4029ce20, 0x82f2: 0x4029d020, 0x82f3: 0x4029d220, - 0x82f4: 0x4029d420, 0x82f5: 0x4029d620, 0x82f6: 0x4029d820, 0x82f7: 0x4029da20, - 0x82f8: 0x4029dc20, 0x82f9: 0x4029de20, 0x82fa: 0x40026c20, 0x82fb: 0x40026220, - 0x82fc: 0x40094020, 0x82fd: 0xc32f0851, 0x82fe: 0x40094420, 0x82ff: 0x4002c420, - // Block 0x20c, offset 0x8300 - 0x8300: 0x4004d620, 0x8301: 0x002bde88, 0x8302: 0x002c0a88, 0x8303: 0x002c3a88, - 0x8304: 0x002c6288, 0x8305: 0x002c9888, 0x8306: 0x002d0888, 0x8307: 0x002d2288, - 0x8308: 0x002d6888, 0x8309: 0x002d9a88, 0x830a: 0x002dcc88, 0x830b: 0x002dfe88, - 0x830c: 0xc0030002, 0x830d: 0x002e8288, 0x830e: 0x002e9e88, 0x830f: 0x002ee288, - 0x8310: 0x002f2c88, 0x8311: 0x002f5688, 0x8312: 0x002f7a88, 0x8313: 0x002fe688, - 0x8314: 0x00302c88, 0x8315: 0x00306c88, 0x8316: 0x0030be88, 0x8317: 0x0030e288, - 0x8318: 0x0030f688, 0x8319: 0x00310088, 0x831a: 0x00312a88, 0x831b: 0x4003f820, - 0x831c: 0x4004e420, 0x831d: 0x4003fa20, 0x831e: 0x40062420, 0x831f: 0x40021620, - 0x8320: 0x40061e20, 0x8321: 0x402bde20, 0x8322: 0x402c0a20, 0x8323: 0x402c3a20, - 0x8324: 0x402c6220, 0x8325: 0x402c9820, 0x8326: 0x402d0820, 0x8327: 0x402d2220, - 0x8328: 0x402d6820, 0x8329: 0x402d9a20, 0x832a: 0x402dcc20, 0x832b: 0x402dfe20, - 0x832c: 0xc0000002, 0x832d: 0x402e8220, 0x832e: 0x402e9e20, 0x832f: 0x402ee220, - 0x8330: 0x402f2c20, 0x8331: 0x402f5620, 0x8332: 0x402f7a20, 0x8333: 0x402fe620, - 0x8334: 0x40302c20, 0x8335: 0x40306c20, 0x8336: 0x4030be20, 0x8337: 0x4030e220, - 0x8338: 0x4030f620, 0x8339: 0x40310020, 0x833a: 0x40312a20, 0x833b: 0x4003fc20, - 0x833c: 0x40094820, 0x833d: 0x4003fe20, 0x833e: 0x40094c20, 0x833f: 0xa0000000, - // Block 0x20d, offset 0x8340 - 0x8340: 0x40055620, 0x8341: 0xa1809102, 0x8342: 0xa1909002, 0x8343: 0x40055820, - 0x8344: 0xae600000, 0x8345: 0xadc00000, 0x8346: 0x40055a20, 0x8347: 0xa1208d02, - 0x8350: 0x40389020, 0x8351: 0x40389220, 0x8352: 0x40389420, 0x8353: 0x40389620, - 0x8354: 0x40389820, 0x8355: 0x40389a20, 0x8356: 0x40389c20, 0x8357: 0x40389e20, - 0x8358: 0x4038a020, 0x8359: 0x4038a220, 0x835a: 0x0038a499, 0x835b: 0x4038a420, - 0x835c: 0x4038a620, 0x835d: 0x0038a899, 0x835e: 0x4038a820, 0x835f: 0x0038aa99, - 0x8360: 0x4038aa20, 0x8361: 0x4038ac20, 0x8362: 0x4038ae20, 0x8363: 0x0038b099, - 0x8364: 0x4038b020, 0x8365: 0x0038b299, 0x8366: 0x4038b220, 0x8367: 0x4038b420, - 0x8368: 0x4038b620, 0x8369: 0x4038b820, 0x836a: 0x4038ba20, - 0x8370: 0xe00014ff, 0x8371: 0xe0001502, 0x8372: 0xe0001511, 0x8373: 0xa0002102, - 0x8374: 0xa0002302, - // Block 0x20e, offset 0x8380 - 0x8380: 0xa0002502, 0x8381: 0x4039fc20, 0x8382: 0x403a1220, 0x8383: 0x403a1a20, - 0x8384: 0x403a4020, 0x8385: 0x403a4e20, 0x8386: 0x403a5620, 0x8387: 0x403a6820, - 0x8388: 0xc34b0171, 0x8389: 0x403a9222, 0x838a: 0xc34d0171, 0x838b: 0xa1b0a202, - 0x838c: 0xa1c0a502, 0x838d: 0xa1d0a902, 0x838e: 0xa1e0ad02, 0x838f: 0xa1f0b202, - 0x8390: 0xa200b602, 0x8391: 0xa210ba02, 0x8392: 0xa220bc02, 0x8393: 0xae60bd02, - 0x8394: 0xae60be02, 0x8395: 0xadc0bf02, 0x8396: 0xadc0c102, 0x8397: 0xae60c202, - 0x8398: 0xae60c302, 0x8399: 0xae60c402, 0x839a: 0xae60c502, 0x839b: 0xae60c602, - 0x839c: 0xadc0c702, 0x839d: 0xae60c802, 0x839e: 0xae60c902, 0x839f: 0xadc0c002, - 0x83a0: 0xe000015e, 0x83a1: 0xe00001e6, 0x83a2: 0xe0000301, 0x83a3: 0xe00003db, - 0x83a4: 0xe00004b6, 0x83a5: 0xe0000580, 0x83a6: 0xe000064b, 0x83a7: 0xe00006f3, - 0x83a8: 0xe000079f, 0x83a9: 0xe0000844, 0x83aa: 0x4004ee20, 0x83ab: 0x40024c20, - 0x83ac: 0x40024e20, 0x83ad: 0x4004de20, 0x83ae: 0x40393a20, 0x83af: 0x403a1020, - 0x83b0: 0xa230d102, 0x83b1: 0x40392420, 0x83b2: 0x40392220, 0x83b3: 0x40392a20, - 0x83b4: 0x00391c84, 0x83b5: 0xf0000404, 0x83b6: 0xf0000404, 0x83b7: 0xf0000404, - 0x83b8: 0xf0000404, 0x83b9: 0x40395a20, 0x83ba: 0x40395c20, 0x83bb: 0x40393e20, - 0x83bc: 0x40395e20, 0x83bd: 0x40396020, 0x83be: 0x40394020, 0x83bf: 0x40396220, - // Block 0x20f, offset 0x83c0 - 0x83c1: 0x40491020, 0x83c2: 0x40491220, 0x83c3: 0x40491420, - 0x83c4: 0x40491620, 0x83c5: 0x40491820, 0x83c6: 0x40491a20, 0x83c7: 0x40491c20, - 0x83c8: 0x40491e20, 0x83c9: 0x40492020, 0x83ca: 0x40492220, 0x83cb: 0x40492420, - 0x83cc: 0x40492620, 0x83cd: 0x40492820, 0x83ce: 0x40492a20, 0x83cf: 0x40492c20, - 0x83d0: 0x40492e20, 0x83d1: 0x40493020, 0x83d2: 0x40493220, 0x83d3: 0x40493420, - 0x83d4: 0x40493620, 0x83d5: 0x40493820, 0x83d6: 0x40493a20, 0x83d7: 0x40493c20, - 0x83d8: 0x40493e20, 0x83d9: 0x40494020, 0x83da: 0x40494220, 0x83db: 0x40494420, - 0x83dc: 0x40494620, 0x83dd: 0x40494820, 0x83de: 0x40494a20, 0x83df: 0x40494c20, - 0x83e0: 0x40494e20, 0x83e1: 0x40495020, 0x83e2: 0x40495220, 0x83e3: 0x40495420, - 0x83e4: 0x40495620, 0x83e5: 0x40495820, 0x83e6: 0x40495a20, 0x83e7: 0x40495c20, - 0x83e8: 0x40495e20, 0x83e9: 0x40496020, 0x83ea: 0x40496220, 0x83eb: 0x40496420, - 0x83ec: 0x40496620, 0x83ed: 0x40496820, 0x83ee: 0x40496a20, 0x83ef: 0x40496c20, - 0x83f0: 0x40496e20, 0x83f1: 0x40497020, 0x83f2: 0x40497220, 0x83f3: 0x40497420, - 0x83f4: 0x40497620, 0x83f5: 0x40497820, 0x83f6: 0x40497a20, 0x83f7: 0x40497c20, - 0x83f8: 0x826724bf, 0x83f9: 0x826724c0, 0x83fa: 0xa0002602, - 0x83ff: 0x4027f420, - // Block 0x210, offset 0x8400 - 0x8400: 0xa0000000, 0x8401: 0xa0000000, 0x8402: 0xa0000000, 0x8403: 0xa0000000, - 0x8404: 0xa0000000, 0x8405: 0xa0000000, 0x8406: 0xa0000000, 0x8407: 0xa0000000, - 0x8408: 0xa0000000, 0x8409: 0x40020020, 0x840a: 0x40020220, 0x840b: 0x40020420, - 0x840c: 0x40020620, 0x840d: 0x40020820, 0x840e: 0xa0000000, 0x840f: 0xa0000000, - 0x8410: 0xa0000000, 0x8411: 0xa0000000, 0x8412: 0xa0000000, 0x8413: 0xa0000000, - 0x8414: 0xa0000000, 0x8415: 0xa0000000, 0x8416: 0xa0000000, 0x8417: 0xa0000000, - 0x8418: 0xa0000000, 0x8419: 0xa0000000, 0x841a: 0xa0000000, 0x841b: 0xa0000000, - 0x841c: 0xa0000000, 0x841d: 0xa0000000, 0x841e: 0xa0000000, 0x841f: 0xa0000000, - 0x8420: 0x40021220, 0x8421: 0x4002ba20, 0x8422: 0x4003e020, 0x8423: 0x4004ea20, - 0x8424: 0x4027de20, 0x8425: 0x4004ec20, 0x8426: 0x4004e620, 0x8427: 0x4003d220, - 0x8428: 0x4003f420, 0x8429: 0x4003f620, 0x842a: 0x4004d820, 0x842b: 0x40093820, - 0x842c: 0x40024020, 0x842d: 0x40021a20, 0x842e: 0x4002e420, 0x842f: 0x4004e220, - 0x8430: 0x4029cc20, 0x8431: 0x4029ce20, 0x8432: 0x4029d020, 0x8433: 0x4029d220, - 0x8434: 0x4029d420, 0x8435: 0x4029d620, 0x8436: 0x4029d820, 0x8437: 0x4029da20, - 0x8438: 0x4029dc20, 0x8439: 0x4029de20, 0x843a: 0x40026c20, 0x843b: 0x40026220, - 0x843c: 0x40094020, 0x843d: 0xc32f0851, 0x843e: 0x40094420, 0x843f: 0x4002c420, - // Block 0x211, offset 0x8440 - 0x8440: 0x4004d620, 0x8441: 0x002bde88, 0x8442: 0x002c0a88, 0x8443: 0xc3b708f1, - 0x8444: 0xc3bd0b13, 0x8445: 0x002c9888, 0x8446: 0x002d0888, 0x8447: 0x002d2288, - 0x8448: 0x002d6888, 0x8449: 0x002d9a88, 0x844a: 0x002dcc88, 0x844b: 0x002dfe88, - 0x844c: 0xc3c60be4, 0x844d: 0x002e8288, 0x844e: 0xc3cb0c52, 0x844f: 0x002ee288, - 0x8450: 0x002f2c88, 0x8451: 0x002f5688, 0x8452: 0x002f7a88, 0x8453: 0xc34108d1, - 0x8454: 0x00302c88, 0x8455: 0x00306c88, 0x8456: 0x0030be88, 0x8457: 0x0030e288, - 0x8458: 0x0030f688, 0x8459: 0x00310088, 0x845a: 0xc37f08d1, 0x845b: 0x4003f820, - 0x845c: 0x4004e420, 0x845d: 0x4003fa20, 0x845e: 0x40062420, 0x845f: 0x40021620, - 0x8460: 0x40061e20, 0x8461: 0x402bde20, 0x8462: 0x402c0a20, 0x8463: 0xc3b408f1, - 0x8464: 0xc3ba0ac2, 0x8465: 0x402c9820, 0x8466: 0x402d0820, 0x8467: 0x402d2220, - 0x8468: 0x402d6820, 0x8469: 0x402d9a20, 0x846a: 0x402dcc20, 0x846b: 0x402dfe20, - 0x846c: 0xc3c20b93, 0x846d: 0x402e8220, 0x846e: 0xc3670c41, 0x846f: 0x402ee220, - 0x8470: 0x402f2c20, 0x8471: 0x402f5620, 0x8472: 0x402f7a20, 0x8473: 0xc33f08d1, - 0x8474: 0x40302c20, 0x8475: 0x40306c20, 0x8476: 0x4030be20, 0x8477: 0x4030e220, - 0x8478: 0x4030f620, 0x8479: 0x40310020, 0x847a: 0xc37d08d1, 0x847b: 0x4003fc20, - 0x847c: 0x40094820, 0x847d: 0x4003fe20, 0x847e: 0x40094c20, 0x847f: 0xa0000000, - // Block 0x212, offset 0x8480 - 0x8480: 0xe0000983, 0x8481: 0xe0000980, 0x8482: 0xe00008fb, 0x8483: 0xe00008f8, - 0x8484: 0xe000097d, 0x8485: 0xe000097a, 0x8486: 0x002c3e83, 0x8487: 0x402c3e20, - 0x8488: 0xe0000a3e, 0x8489: 0xe0000a3b, 0x848a: 0xe0000a4a, 0x848b: 0xe0000a47, - 0x848c: 0x002c3c83, 0x848d: 0x402c3c20, 0x848e: 0xe0000a86, 0x848f: 0xe0000a83, - 0x8490: 0x002c6683, 0x8491: 0x402c6620, 0x8492: 0xe0000b46, 0x8493: 0xe0000b43, - 0x8494: 0xe0000aee, 0x8495: 0xe0000aeb, 0x8496: 0xe0000b2c, 0x8497: 0xe0000b29, - 0x8498: 0xe0000b40, 0x8499: 0xe0000b3d, 0x849a: 0xe0000b1a, 0x849b: 0xe0000b17, - 0x849c: 0xe0000bb8, 0x849d: 0xe0000bb5, 0x849e: 0xe0000bb2, 0x849f: 0xe0000baf, - 0x84a0: 0xe0000bc4, 0x84a1: 0xe0000bc1, 0x84a2: 0xe0000bca, 0x84a3: 0xe0000bc7, - 0x84a4: 0xe0000bee, 0x84a5: 0xe0000beb, 0x84a6: 0xe0000c1b, 0x84a7: 0xe0000c18, - 0x84a8: 0xe0000c51, 0x84a9: 0xe0000c4e, 0x84aa: 0xe0000c60, 0x84ab: 0xe0000c5d, - 0x84ac: 0xe0000c31, 0x84ad: 0xe0000c2e, 0x84ae: 0xe0000c5a, 0x84af: 0xe0000c57, - 0x84b0: 0xe0000c54, 0x84b1: 0x402da220, 0x84b2: 0xf0000a0a, 0x84b3: 0xf0000404, - 0x84b4: 0xe0000c8a, 0x84b5: 0xe0000c87, 0x84b6: 0xe0000c9f, 0x84b7: 0xe0000c9c, - 0x84b8: 0x402f7220, 0x84b9: 0xe0000ccc, 0x84ba: 0xe0000cc9, 0x84bb: 0xe0000cd8, - 0x84bc: 0xe0000cd5, 0x84bd: 0xe0000cd2, 0x84be: 0xe0000ccf, 0x84bf: 0xe0000d04, - // Block 0x213, offset 0x84c0 - 0x84c0: 0xe0000cfe, 0x84c1: 0xe0000cf8, 0x84c2: 0xe0000cf5, 0x84c3: 0xe0000d51, - 0x84c4: 0xe0000d4e, 0x84c5: 0xe0000d6f, 0x84c6: 0xe0000d6c, 0x84c7: 0xe0000d5d, - 0x84c8: 0xe0000d5a, 0x84c9: 0xf0000404, 0x84ca: 0x002eda88, 0x84cb: 0x402eda20, - 0x84cc: 0xe0000e2e, 0x84cd: 0xe0000e2b, 0x84ce: 0xe0000da0, 0x84cf: 0xe0000d9d, - 0x84d0: 0xe0000de0, 0x84d1: 0xe0000ddd, 0x84d2: 0xe0000e93, 0x84d3: 0xe0000e8f, - 0x84d4: 0xe0000eca, 0x84d5: 0xe0000ec7, 0x84d6: 0xe0000edc, 0x84d7: 0xe0000ed9, - 0x84d8: 0xe0000ed0, 0x84d9: 0xe0000ecd, 0x84da: 0xe0000f1f, 0x84db: 0xe0000f1c, - 0x84dc: 0xe0000f2d, 0x84dd: 0xe0000f2a, 0x84de: 0xe0000f47, 0x84df: 0xe0000f44, - 0x84e0: 0x002fe883, 0x84e1: 0x402fe820, 0x84e2: 0xe0000f99, 0x84e3: 0xe0000f96, - 0x84e4: 0xe0000f8a, 0x84e5: 0xe0000f87, 0x84e6: 0x00303688, 0x84e7: 0x40303620, - 0x84e8: 0xe000102b, 0x84e9: 0xe0001028, 0x84ea: 0xe000103f, 0x84eb: 0xe000103c, - 0x84ec: 0xe0000fe7, 0x84ed: 0xe0000fe4, 0x84ee: 0xe0000ff9, 0x84ef: 0xe0000ff6, - 0x84f0: 0xe0001025, 0x84f1: 0xe0001022, 0x84f2: 0xe0001039, 0x84f3: 0xe0001036, - 0x84f4: 0xe00010d8, 0x84f5: 0xe00010d5, 0x84f6: 0xe000110e, 0x84f7: 0xe000110b, - 0x84f8: 0xe0001117, 0x84f9: 0xe000113b, 0x84fa: 0xe0001138, 0x84fb: 0xe000114d, - 0x84fc: 0xe000114a, 0x84fd: 0x00312c83, 0x84fe: 0x40312c20, 0x84ff: 0xe0000f64, - // Block 0x214, offset 0x8500 - 0x8500: 0x40321220, 0x8501: 0x40321a20, 0x8502: 0x40322220, 0x8503: 0x40322a20, - 0x8504: 0x002c6487, 0x8505: 0x002c6485, 0x8506: 0x002c6483, 0x8507: 0x002e2487, - 0x8508: 0x002e2485, 0x8509: 0x002e2483, 0x850a: 0x002ea087, 0x850b: 0x002ea085, - 0x850c: 0x002ea083, 0x850d: 0xe0000947, 0x850e: 0xe0000944, 0x850f: 0xe0000c3d, - 0x8510: 0xe0000c3a, 0x8511: 0xe0000dcc, 0x8512: 0xe0000dc9, 0x8513: 0xe0000ff3, - 0x8514: 0xe0000ff0, 0x8515: 0xe000101e, 0x8516: 0xe000101a, 0x8517: 0xe0001006, - 0x8518: 0xe0001002, 0x8519: 0xe0001016, 0x851a: 0xe0001012, 0x851b: 0xe000100e, - 0x851c: 0xe000100a, 0x851d: 0x402cae20, 0x851e: 0xe0000962, 0x851f: 0xe000095e, - 0x8520: 0xe0000976, 0x8521: 0xe0000972, 0x8522: 0xe00009f4, 0x8523: 0xe00009ef, - 0x8524: 0x002d3a88, 0x8525: 0x402d3a20, 0x8526: 0xe0000bbe, 0x8527: 0xe0000bbb, - 0x8528: 0xe0000c99, 0x8529: 0xe0000c96, 0x852a: 0xe0000e20, 0x852b: 0xe0000e1d, - 0x852c: 0xe0000e27, 0x852d: 0xe0000e23, 0x852e: 0xe0001162, 0x852f: 0xe000115f, - 0x8530: 0xe0000c8d, 0x8531: 0xf0000a0a, 0x8532: 0xf000040a, 0x8533: 0xf0000404, - 0x8534: 0xe0000bac, 0x8535: 0xe0000ba9, 0x8536: 0x002d7888, 0x8537: 0x00319488, - 0x8538: 0xe0000d57, 0x8539: 0xe0000d54, 0x853a: 0xe0000954, 0x853b: 0xe0000950, - 0x853c: 0xe00009ea, 0x853d: 0xe00009e5, 0x853e: 0xe0000e19, 0x853f: 0xe0000e15, - // Block 0x215, offset 0x8540 - 0x8540: 0xe00009b1, 0x8541: 0xe00009ae, 0x8542: 0xe0000a22, 0x8543: 0xe0000a1f, - 0x8544: 0xe0000a28, 0x8545: 0xe0000a25, 0x8546: 0xe0000a2e, 0x8547: 0xe0000a2b, - 0x8548: 0xe0002785, 0x8549: 0xe0002782, 0x854a: 0xe0000a8c, 0x854b: 0xe0000a89, - 0x854c: 0xe0000a98, 0x854d: 0xe0000a95, 0x854e: 0xe0000aa4, 0x854f: 0xe0000aa1, - 0x8550: 0xe0000a92, 0x8551: 0xe0000a8f, 0x8552: 0xe0000a9e, 0x8553: 0xe0000a9b, - 0x8554: 0xe0000b55, 0x8555: 0xe0000b51, 0x8556: 0xe0000b4d, 0x8557: 0xe0000b49, - 0x8558: 0xe0000b7c, 0x8559: 0xe0000b79, 0x855a: 0xe0000b82, 0x855b: 0xe0000b7f, - 0x855c: 0xe0000b39, 0x855d: 0xe0000b35, 0x855e: 0xe0000b8c, 0x855f: 0xe0000b89, - 0x8560: 0xe0000bd0, 0x8561: 0xe0000bcd, 0x8562: 0xe0000c00, 0x8563: 0xe0000bfd, - 0x8564: 0xe0000c0c, 0x8565: 0xe0000c09, 0x8566: 0xe0000bfa, 0x8567: 0xe0000bf7, - 0x8568: 0xe0000c06, 0x8569: 0xe0000c03, 0x856a: 0xe0000c12, 0x856b: 0xe0000c0f, - 0x856c: 0xe0000c7e, 0x856d: 0xe0000c7b, 0x856e: 0xe0000c4a, 0x856f: 0xe0000c46, - 0x8570: 0xe0000c93, 0x8571: 0xe0000c90, 0x8572: 0xe0000cab, 0x8573: 0xe0000ca8, - 0x8574: 0xe0000cb1, 0x8575: 0xe0000cae, 0x8576: 0xe0000cde, 0x8577: 0xe0000cdb, - 0x8578: 0xe0000ce5, 0x8579: 0xe0000ce1, 0x857a: 0xe0000cf2, 0x857b: 0xe0000cef, - 0x857c: 0xe0000cec, 0x857d: 0xe0000ce9, 0x857e: 0xe0000d1e, 0x857f: 0xe0000d1b, - // Block 0x216, offset 0x8580 - 0x8580: 0xe0000d24, 0x8581: 0xe0000d21, 0x8582: 0xe0000d2a, 0x8583: 0xe0000d27, - 0x8584: 0xe0000d69, 0x8585: 0xe0000d66, 0x8586: 0xe0000d7b, 0x8587: 0xe0000d78, - 0x8588: 0xe0000d87, 0x8589: 0xe0000d84, 0x858a: 0xe0000d81, 0x858b: 0xe0000d7e, - 0x858c: 0xe0000ded, 0x858d: 0xe0000de9, 0x858e: 0xe0000df5, 0x858f: 0xe0000df1, - 0x8590: 0xe0000e3d, 0x8591: 0xe0000e39, 0x8592: 0xe0000e35, 0x8593: 0xe0000e31, - 0x8594: 0xe0000ea7, 0x8595: 0xe0000ea4, 0x8596: 0xe0000ead, 0x8597: 0xe0000eaa, - 0x8598: 0xe0000ed6, 0x8599: 0xe0000ed3, 0x859a: 0xe0000ef4, 0x859b: 0xe0000ef1, - 0x859c: 0xe0000efb, 0x859d: 0xe0000ef7, 0x859e: 0xe0000f02, 0x859f: 0xe0000eff, - 0x85a0: 0xe0000f41, 0x85a1: 0xe0000f3e, 0x85a2: 0xe0000f53, 0x85a3: 0xe0000f50, - 0x85a4: 0xe0000f26, 0x85a5: 0xe0000f22, 0x85a6: 0xe0002652, 0x85a7: 0xe000264f, - 0x85a8: 0xe0000f5a, 0x85a9: 0xe0000f56, 0x85aa: 0xe0000f93, 0x85ab: 0xe0000f90, - 0x85ac: 0xe0000f9f, 0x85ad: 0xe0000f9c, 0x85ae: 0xe0000fb1, 0x85af: 0xe0000fae, - 0x85b0: 0xe0000fab, 0x85b1: 0xe0000fa8, 0x85b2: 0xe0001093, 0x85b3: 0xe0001090, - 0x85b4: 0xe000109f, 0x85b5: 0xe000109c, 0x85b6: 0xe0001099, 0x85b7: 0xe0001096, - 0x85b8: 0xe0001032, 0x85b9: 0xe000102e, 0x85ba: 0xe0001046, 0x85bb: 0xe0001042, - 0x85bc: 0xe00010a9, 0x85bd: 0xe00010a6, 0x85be: 0xe00010af, 0x85bf: 0xe00010ac, - // Block 0x217, offset 0x85c0 - 0x85c0: 0xa0000000, 0x85c1: 0xa0000000, 0x85c2: 0xa0000000, 0x85c3: 0xa0000000, - 0x85c4: 0xa0000000, 0x85c5: 0xa0000000, 0x85c6: 0xa0000000, 0x85c7: 0xa0000000, - 0x85c8: 0xa0000000, 0x85c9: 0x40020020, 0x85ca: 0x40020220, 0x85cb: 0x40020420, - 0x85cc: 0x40020620, 0x85cd: 0x40020820, 0x85ce: 0xa0000000, 0x85cf: 0xa0000000, - 0x85d0: 0xa0000000, 0x85d1: 0xa0000000, 0x85d2: 0xa0000000, 0x85d3: 0xa0000000, - 0x85d4: 0xa0000000, 0x85d5: 0xa0000000, 0x85d6: 0xa0000000, 0x85d7: 0xa0000000, - 0x85d8: 0xa0000000, 0x85d9: 0xa0000000, 0x85da: 0xa0000000, 0x85db: 0xa0000000, - 0x85dc: 0xa0000000, 0x85dd: 0xa0000000, 0x85de: 0xa0000000, 0x85df: 0xa0000000, - 0x85e0: 0x40021220, 0x85e1: 0x4002ba20, 0x85e2: 0x4003e020, 0x85e3: 0x4004ea20, - 0x85e4: 0x4027de20, 0x85e5: 0x4004ec20, 0x85e6: 0x4004e620, 0x85e7: 0x4003d220, - 0x85e8: 0x4003f420, 0x85e9: 0x4003f620, 0x85ea: 0x4004d820, 0x85eb: 0x40093820, - 0x85ec: 0x40024020, 0x85ed: 0x40021a20, 0x85ee: 0x4002e420, 0x85ef: 0x4004e220, - 0x85f0: 0x4029cc20, 0x85f1: 0x4029ce20, 0x85f2: 0x4029d020, 0x85f3: 0x4029d220, - 0x85f4: 0x4029d420, 0x85f5: 0x4029d620, 0x85f6: 0x4029d820, 0x85f7: 0x4029da20, - 0x85f8: 0x4029dc20, 0x85f9: 0x4029de20, 0x85fa: 0x40026c20, 0x85fb: 0x40026220, - 0x85fc: 0x40094020, 0x85fd: 0xc32f0851, 0x85fe: 0x40094420, 0x85ff: 0x4002c420, - // Block 0x218, offset 0x8600 - 0x8600: 0x4004d620, 0x8601: 0xc3d20c71, 0x8602: 0x002c0a88, 0x8603: 0x002c3a88, - 0x8604: 0x002c6288, 0x8605: 0xc3d808b1, 0x8606: 0x002d0888, 0x8607: 0x002d2288, - 0x8608: 0x002d6888, 0x8609: 0xc3dc08b1, 0x860a: 0x002dcc88, 0x860b: 0x002dfe88, - 0x860c: 0xc0030002, 0x860d: 0x002e8288, 0x860e: 0x002e9e88, 0x860f: 0xc3e10cb1, - 0x8610: 0x002f2c88, 0x8611: 0x002f5688, 0x8612: 0x002f7a88, 0x8613: 0x002fe688, - 0x8614: 0x00302c88, 0x8615: 0xc3e608b1, 0x8616: 0x0030be88, 0x8617: 0x0030e288, - 0x8618: 0x0030f688, 0x8619: 0xc3ea08b1, 0x861a: 0x00312a88, 0x861b: 0x4003f820, - 0x861c: 0x4004e420, 0x861d: 0x4003fa20, 0x861e: 0x40062420, 0x861f: 0x40021620, - 0x8620: 0x40061e20, 0x8621: 0xc3ce0c71, 0x8622: 0x402c0a20, 0x8623: 0x402c3a20, - 0x8624: 0x402c6220, 0x8625: 0xc3d608b1, 0x8626: 0x402d0820, 0x8627: 0x402d2220, - 0x8628: 0x402d6820, 0x8629: 0xc3da08b1, 0x862a: 0x402dcc20, 0x862b: 0x402dfe20, - 0x862c: 0xc0000002, 0x862d: 0x402e8220, 0x862e: 0x402e9e20, 0x862f: 0xc3de0cb1, - 0x8630: 0x402f2c20, 0x8631: 0x402f5620, 0x8632: 0x402f7a20, 0x8633: 0x402fe620, - 0x8634: 0x40302c20, 0x8635: 0xc3e408b1, 0x8636: 0x4030be20, 0x8637: 0x4030e220, - 0x8638: 0x4030f620, 0x8639: 0xc3e808b1, 0x863a: 0x40312a20, 0x863b: 0x4003fc20, - 0x863c: 0x40094820, 0x863d: 0x4003fe20, 0x863e: 0x40094c20, 0x863f: 0xa0000000, - // Block 0x219, offset 0x8640 - 0x8640: 0xe00008f5, 0x8641: 0x002c0883, 0x8642: 0xe0000921, 0x8643: 0xe0000969, - 0x8644: 0x00320ca3, 0x8645: 0x00321083, 0x8646: 0x00320c83, 0x8647: 0xe0000a53, - 0x8648: 0xe0000ae8, 0x8649: 0x002d0683, 0x864a: 0xe0000af4, 0x864b: 0xe0000b20, - 0x864c: 0xe0000c2b, 0x864d: 0x002dca83, 0x864e: 0xe0000c37, 0x864f: 0xe0000c43, - 0x8650: 0x002c6483, 0x8651: 0xe0000d63, 0x8652: 0xe0000d9a, 0x8653: 0x002f2a83, - 0x8654: 0xe0000da6, 0x8655: 0xe0000de6, 0x8656: 0x00320e83, 0x8657: 0x40093e20, - 0x8658: 0x00320ea3, 0x8659: 0xe0000fe1, 0x865a: 0x0030bc83, 0x865b: 0xe0000fed, - 0x865c: 0xe0000fff, 0x865d: 0x00312883, 0x865e: 0x00318888, 0x865f: 0xe0000f7b, - 0x8660: 0xe00008f2, 0x8661: 0x402c0820, 0x8662: 0xe000091e, 0x8663: 0xe0000966, - 0x8664: 0x40320c21, 0x8665: 0x40321020, 0x8666: 0x40320c20, 0x8667: 0xe0000a4d, - 0x8668: 0xe0000ae5, 0x8669: 0x402d0620, 0x866a: 0xe0000af1, 0x866b: 0xe0000b1d, - 0x866c: 0xe0000c28, 0x866d: 0x402dca20, 0x866e: 0xe0000c34, 0x866f: 0xe0000c40, - 0x8670: 0x402c6420, 0x8671: 0xe0000d60, 0x8672: 0xe0000d97, 0x8673: 0x402f2a20, - 0x8674: 0xe0000da3, 0x8675: 0xe0000de3, 0x8676: 0x40320e20, 0x8677: 0x40093c20, - 0x8678: 0x40320e21, 0x8679: 0xe0000fde, 0x867a: 0x4030bc20, 0x867b: 0xe0000fea, - 0x867c: 0xe0000ffc, 0x867d: 0x40312820, 0x867e: 0x40318820, 0x867f: 0xe0001114, - // Block 0x21a, offset 0x8680 - 0x8680: 0xe0000983, 0x8681: 0xe0000980, 0x8682: 0xe00008fb, 0x8683: 0xe00008f8, - 0x8684: 0xe000097d, 0x8685: 0xe000097a, 0x8686: 0xe0000a38, 0x8687: 0xe0000a35, - 0x8688: 0xe0000a3e, 0x8689: 0xe0000a3b, 0x868a: 0xe0000a4a, 0x868b: 0xe0000a47, - 0x868c: 0xe0000a44, 0x868d: 0xe0000a41, 0x868e: 0xe0000a86, 0x868f: 0xe0000a83, - 0x8690: 0x002c62a3, 0x8691: 0x402c6221, 0x8692: 0xe0000b46, 0x8693: 0xe0000b43, - 0x8694: 0xe0000aee, 0x8695: 0xe0000aeb, 0x8696: 0xe0000b2c, 0x8697: 0xe0000b29, - 0x8698: 0xe0000b40, 0x8699: 0xe0000b3d, 0x869a: 0xe0000b1a, 0x869b: 0xe0000b17, - 0x869c: 0xe0000bb8, 0x869d: 0xe0000bb5, 0x869e: 0xe0000bb2, 0x869f: 0xe0000baf, - 0x86a0: 0xe0000bc4, 0x86a1: 0xe0000bc1, 0x86a2: 0xe0000bca, 0x86a3: 0xe0000bc7, - 0x86a4: 0xe0000bee, 0x86a5: 0xe0000beb, 0x86a6: 0xe0000c1b, 0x86a7: 0xe0000c18, - 0x86a8: 0xe0000c51, 0x86a9: 0xe0000c4e, 0x86aa: 0xe0000c60, 0x86ab: 0xe0000c5d, - 0x86ac: 0xe0000c31, 0x86ad: 0xe0000c2e, 0x86ae: 0xe0000c5a, 0x86af: 0xe0000c57, - 0x86b0: 0xe0000c54, 0x86b1: 0x402da220, 0x86b2: 0xf0000a0a, 0x86b3: 0xf0000404, - 0x86b4: 0xe0000c8a, 0x86b5: 0xe0000c87, 0x86b6: 0xe0000c9f, 0x86b7: 0xe0000c9c, - 0x86b8: 0x402f7220, 0x86b9: 0xe0000ccc, 0x86ba: 0xe0000cc9, 0x86bb: 0xe0000cd8, - 0x86bc: 0xe0000cd5, 0x86bd: 0xe0000cd2, 0x86be: 0xe0000ccf, 0x86bf: 0xe0000d04, - // Block 0x21b, offset 0x86c0 - 0x86c0: 0x40321220, 0x86c1: 0x40321a20, 0x86c2: 0x40322220, 0x86c3: 0x40322a20, - 0x86c4: 0xe0000ad5, 0x86c5: 0xe0000ad1, 0x86c6: 0xe0000acd, 0x86c7: 0xf0000a0a, - 0x86c8: 0xf000040a, 0x86c9: 0xf0000404, 0x86ca: 0xf0000a0a, 0x86cb: 0xf000040a, - 0x86cc: 0xf0000404, 0x86cd: 0xe0000947, 0x86ce: 0xe0000944, 0x86cf: 0xe0000c3d, - 0x86d0: 0xe0000c3a, 0x86d1: 0xe0000dcc, 0x86d2: 0xe0000dc9, 0x86d3: 0xe0000ff3, - 0x86d4: 0xe0000ff0, 0x86d5: 0xe000101e, 0x86d6: 0xe000101a, 0x86d7: 0xe00027c1, - 0x86d8: 0xe00027be, 0x86d9: 0xe0001016, 0x86da: 0xe0001012, 0x86db: 0xe000100e, - 0x86dc: 0xe000100a, 0x86dd: 0x402cae20, 0x86de: 0xe0002697, 0x86df: 0xe0002694, - 0x86e0: 0xe0000976, 0x86e1: 0xe0000972, 0x86e2: 0xe0002691, 0x86e3: 0xe000268e, - 0x86e4: 0x002d3a88, 0x86e5: 0x402d3a20, 0x86e6: 0xe0000bbe, 0x86e7: 0xe0000bbb, - 0x86e8: 0xe0000c99, 0x86e9: 0xe0000c96, 0x86ea: 0xe0000e20, 0x86eb: 0xe0000e1d, - 0x86ec: 0xe0000e27, 0x86ed: 0xe0000e23, 0x86ee: 0xe0001162, 0x86ef: 0xe000115f, - 0x86f0: 0xe0000c8d, 0x86f1: 0xf0000a0a, 0x86f2: 0xf000040a, 0x86f3: 0xf0000404, - 0x86f4: 0xe0000bac, 0x86f5: 0xe0000ba9, 0x86f6: 0x002d7888, 0x86f7: 0x00319488, - 0x86f8: 0xe0000d57, 0x86f9: 0xe0000d54, 0x86fa: 0xe00026af, 0x86fb: 0xe00026ac, - 0x86fc: 0xe000268b, 0x86fd: 0xe0002688, 0x86fe: 0xe0002752, 0x86ff: 0xe000274f, - // Block 0x21c, offset 0x8700 - 0x8700: 0xe000098f, 0x8701: 0xe000098c, 0x8702: 0xe0000995, 0x8703: 0xe0000992, - 0x8704: 0xe0000b62, 0x8705: 0xe0000b5f, 0x8706: 0xe0000b68, 0x8707: 0xe0000b65, - 0x8708: 0xe0000c6c, 0x8709: 0xe0000c69, 0x870a: 0xe0000c72, 0x870b: 0xe0000c6f, - 0x870c: 0xe0000e4a, 0x870d: 0xe0000e47, 0x870e: 0xe0000e50, 0x870f: 0xe0000e4d, - 0x8710: 0xe0000ee8, 0x8711: 0xe0000ee5, 0x8712: 0xe0000eee, 0x8713: 0xe0000eeb, - 0x8714: 0xe0001053, 0x8715: 0xe0001050, 0x8716: 0xe0001059, 0x8717: 0xe0001056, - 0x8718: 0xe0000f61, 0x8719: 0xe0000f5e, 0x871a: 0xe0000fa5, 0x871b: 0xe0000fa2, - 0x871c: 0x00312288, 0x871d: 0x40312220, 0x871e: 0xe0000bf4, 0x871f: 0xe0000bf1, - 0x8720: 0x002ebc88, 0x8721: 0x402c8c20, 0x8722: 0x002f2288, 0x8723: 0x402f2220, - 0x8724: 0x00314088, 0x8725: 0x40314020, 0x8726: 0xe000096f, 0x8727: 0xe000096c, - 0x8728: 0xe0000b32, 0x8729: 0xe0000b2f, 0x872a: 0xe000274c, 0x872b: 0xe0002749, - 0x872c: 0xe0000dfd, 0x872d: 0xe0000df9, 0x872e: 0xe0000e04, 0x872f: 0xe0000e01, - 0x8730: 0xe0000e0b, 0x8731: 0xe0000e07, 0x8732: 0xe0001129, 0x8733: 0xe0001126, - 0x8734: 0x402e5e20, 0x8735: 0x402ed020, 0x8736: 0x40305a20, 0x8737: 0x402dd420, - 0x8738: 0xe0000abf, 0x8739: 0xe0000ec4, 0x873a: 0x002be888, 0x873b: 0x002c4488, - 0x873c: 0x402c4420, 0x873d: 0x002e3888, 0x873e: 0x00303e88, 0x873f: 0x402ffc20, - // Block 0x21d, offset 0x8740 - 0x8740: 0xe00009b1, 0x8741: 0xe00009ae, 0x8742: 0xe0000a22, 0x8743: 0xe0000a1f, - 0x8744: 0xe0000a28, 0x8745: 0xe0000a25, 0x8746: 0xe0000a2e, 0x8747: 0xe0000a2b, - 0x8748: 0xe0000a5a, 0x8749: 0xe0000a56, 0x874a: 0xe0000a8c, 0x874b: 0xe0000a89, - 0x874c: 0xe0000a98, 0x874d: 0xe0000a95, 0x874e: 0xe0000aa4, 0x874f: 0xe0000aa1, - 0x8750: 0xe0000a92, 0x8751: 0xe0000a8f, 0x8752: 0xe0000a9e, 0x8753: 0xe0000a9b, - 0x8754: 0xe0000b55, 0x8755: 0xe0000b51, 0x8756: 0xe000279d, 0x8757: 0xe000279a, - 0x8758: 0xe0000b7c, 0x8759: 0xe0000b79, 0x875a: 0xe0000b82, 0x875b: 0xe0000b7f, - 0x875c: 0xe0000b39, 0x875d: 0xe0000b35, 0x875e: 0xe0000b8c, 0x875f: 0xe0000b89, - 0x8760: 0xe0000bd0, 0x8761: 0xe0000bcd, 0x8762: 0xe0000c00, 0x8763: 0xe0000bfd, - 0x8764: 0xe0000c0c, 0x8765: 0xe0000c09, 0x8766: 0xe0000bfa, 0x8767: 0xe0000bf7, - 0x8768: 0xe0000c06, 0x8769: 0xe0000c03, 0x876a: 0xe0000c12, 0x876b: 0xe0000c0f, - 0x876c: 0xe0000c7e, 0x876d: 0xe0000c7b, 0x876e: 0xe00027a3, 0x876f: 0xe00027a0, - 0x8770: 0xe0000c93, 0x8771: 0xe0000c90, 0x8772: 0xe0000cab, 0x8773: 0xe0000ca8, - 0x8774: 0xe0000cb1, 0x8775: 0xe0000cae, 0x8776: 0xe0000cde, 0x8777: 0xe0000cdb, - 0x8778: 0xe0000ce5, 0x8779: 0xe0000ce1, 0x877a: 0xe0000cf2, 0x877b: 0xe0000cef, - 0x877c: 0xe0000cec, 0x877d: 0xe0000ce9, 0x877e: 0xe0000d1e, 0x877f: 0xe0000d1b, - // Block 0x21e, offset 0x8780 - 0x8780: 0xe0000d24, 0x8781: 0xe0000d21, 0x8782: 0xe0000d2a, 0x8783: 0xe0000d27, - 0x8784: 0xe0000d69, 0x8785: 0xe0000d66, 0x8786: 0xe0000d7b, 0x8787: 0xe0000d78, - 0x8788: 0xe0000d87, 0x8789: 0xe0000d84, 0x878a: 0xe0000d81, 0x878b: 0xe0000d7e, - 0x878c: 0xe00027af, 0x878d: 0xe00027ac, 0x878e: 0xe00027d3, 0x878f: 0xe00027d0, - 0x8790: 0xe0000e3d, 0x8791: 0xe0000e39, 0x8792: 0xe00027b5, 0x8793: 0xe00027b2, - 0x8794: 0xe0000ea7, 0x8795: 0xe0000ea4, 0x8796: 0xe0000ead, 0x8797: 0xe0000eaa, - 0x8798: 0xe0000ed6, 0x8799: 0xe0000ed3, 0x879a: 0xe0000ef4, 0x879b: 0xe0000ef1, - 0x879c: 0xe0000efb, 0x879d: 0xe0000ef7, 0x879e: 0xe0000f02, 0x879f: 0xe0000eff, - 0x87a0: 0xe0000f41, 0x87a1: 0xe0000f3e, 0x87a2: 0xe0000f53, 0x87a3: 0xe0000f50, - 0x87a4: 0xe0000f26, 0x87a5: 0xe0000f22, 0x87a6: 0xe0000f3a, 0x87a7: 0xe0000f36, - 0x87a8: 0xe0000f5a, 0x87a9: 0xe0000f56, 0x87aa: 0xe0000f93, 0x87ab: 0xe0000f90, - 0x87ac: 0xe0000f9f, 0x87ad: 0xe0000f9c, 0x87ae: 0xe0000fb1, 0x87af: 0xe0000fae, - 0x87b0: 0xe0000fab, 0x87b1: 0xe0000fa8, 0x87b2: 0xe0001093, 0x87b3: 0xe0001090, - 0x87b4: 0xe000109f, 0x87b5: 0xe000109c, 0x87b6: 0xe0001099, 0x87b7: 0xe0001096, - 0x87b8: 0xe00027c7, 0x87b9: 0xe00027c4, 0x87ba: 0xe0001046, 0x87bb: 0xe0001042, - 0x87bc: 0xe00010a9, 0x87bd: 0xe00010a6, 0x87be: 0xe00010af, 0x87bf: 0xe00010ac, - // Block 0x21f, offset 0x87c0 - 0x87c0: 0xe00010d2, 0x87c1: 0xe00010cf, 0x87c2: 0xe00010cc, 0x87c3: 0xe00010c9, - 0x87c4: 0xe00010e1, 0x87c5: 0xe00010de, 0x87c6: 0xe00010e7, 0x87c7: 0xe00010e4, - 0x87c8: 0xe00010ed, 0x87c9: 0xe00010ea, 0x87ca: 0xe00010fc, 0x87cb: 0xe00010f9, - 0x87cc: 0xe00010f6, 0x87cd: 0xe00010f3, 0x87ce: 0xe0001123, 0x87cf: 0xe0001120, - 0x87d0: 0xe0001141, 0x87d1: 0xe000113e, 0x87d2: 0xe0001153, 0x87d3: 0xe0001150, - 0x87d4: 0xe0001159, 0x87d5: 0xe0001156, 0x87d6: 0xe0000c15, 0x87d7: 0xe0000f8d, - 0x87d8: 0xe00010db, 0x87d9: 0xe0001111, 0x87da: 0xf0000404, 0x87db: 0xe0000f70, - 0x87dc: 0x40300420, 0x87dd: 0x40300620, 0x87de: 0xe0000f7f, 0x87df: 0x402c9620, - 0x87e0: 0xe000099b, 0x87e1: 0xe0000998, 0x87e2: 0xe0000989, 0x87e3: 0xe0000986, - 0x87e4: 0xe0002791, 0x87e5: 0xe000278e, 0x87e6: 0xe0000930, 0x87e7: 0xe000092c, - 0x87e8: 0xe0000940, 0x87e9: 0xe000093c, 0x87ea: 0xe0000938, 0x87eb: 0xe0000934, - 0x87ec: 0xe00009aa, 0x87ed: 0xe00009a6, 0x87ee: 0xe000278b, 0x87ef: 0xe0002788, - 0x87f0: 0xe000090a, 0x87f1: 0xe0000906, 0x87f2: 0xe000091a, 0x87f3: 0xe0000916, - 0x87f4: 0xe0000912, 0x87f5: 0xe000090e, 0x87f6: 0xe00009a2, 0x87f7: 0xe000099e, - 0x87f8: 0xe0000b6e, 0x87f9: 0xe0000b6b, 0x87fa: 0xe0000b5c, 0x87fb: 0xe0000b59, - 0x87fc: 0xe0000b26, 0x87fd: 0xe0000b23, 0x87fe: 0xe0002797, 0x87ff: 0xe0002794, - // Block 0x220, offset 0x8800 - 0x8800: 0xe0000b03, 0x8801: 0xe0000aff, 0x8802: 0xe0000b13, 0x8803: 0xe0000b0f, - 0x8804: 0xe0000b0b, 0x8805: 0xe0000b07, 0x8806: 0xe0000b75, 0x8807: 0xe0000b71, - 0x8808: 0xe0000c66, 0x8809: 0xe0000c63, 0x880a: 0xe0000c78, 0x880b: 0xe0000c75, - 0x880c: 0xe0000e84, 0x880d: 0xe0000e81, 0x880e: 0xe0000e44, 0x880f: 0xe0000e41, - 0x8810: 0xe00027a9, 0x8811: 0xe00027a6, 0x8812: 0xe0000db5, 0x8813: 0xe0000db1, - 0x8814: 0xe0000dc5, 0x8815: 0xe0000dc1, 0x8816: 0xe0000dbd, 0x8817: 0xe0000db9, - 0x8818: 0xe0000e8b, 0x8819: 0xe0000e87, 0x881a: 0xe00027bb, 0x881b: 0xe00027b8, - 0x881c: 0xe0000e65, 0x881d: 0xe0000e61, 0x881e: 0xe0000e75, 0x881f: 0xe0000e71, - 0x8820: 0xe0000e6d, 0x8821: 0xe0000e69, 0x8822: 0xe0000e7d, 0x8823: 0xe0000e79, - 0x8824: 0xe000108d, 0x8825: 0xe000108a, 0x8826: 0xe000104d, 0x8827: 0xe000104a, - 0x8828: 0xe00027cd, 0x8829: 0xe00027ca, 0x882a: 0xe000106e, 0x882b: 0xe000106a, - 0x882c: 0xe000107e, 0x882d: 0xe000107a, 0x882e: 0xe0001076, 0x882f: 0xe0001072, - 0x8830: 0xe0001086, 0x8831: 0xe0001082, 0x8832: 0xe0001108, 0x8833: 0xe0001105, - 0x8834: 0xe0001135, 0x8835: 0xe0001132, 0x8836: 0xe000112f, 0x8837: 0xe000112c, - 0x8838: 0xe000111d, 0x8839: 0xe000111a, 0x883a: 0xe0000d0a, 0x883b: 0xe0000d07, - 0x883c: 0x0030d888, 0x883d: 0x4030d820, 0x883e: 0x00312088, 0x883f: 0x40312020, - // Block 0x221, offset 0x8840 - 0x8840: 0xa0000000, 0x8841: 0xa0000000, 0x8842: 0xa0000000, 0x8843: 0xa0000000, - 0x8844: 0xa0000000, 0x8845: 0xa0000000, 0x8846: 0xa0000000, 0x8847: 0xa0000000, - 0x8848: 0xa0000000, 0x8849: 0x40020020, 0x884a: 0x40020220, 0x884b: 0x40020420, - 0x884c: 0x40020620, 0x884d: 0x40020820, 0x884e: 0xa0000000, 0x884f: 0xa0000000, - 0x8850: 0xa0000000, 0x8851: 0xa0000000, 0x8852: 0xa0000000, 0x8853: 0xa0000000, - 0x8854: 0xa0000000, 0x8855: 0xa0000000, 0x8856: 0xa0000000, 0x8857: 0xa0000000, - 0x8858: 0xa0000000, 0x8859: 0xa0000000, 0x885a: 0xa0000000, 0x885b: 0xa0000000, - 0x885c: 0xa0000000, 0x885d: 0xa0000000, 0x885e: 0xa0000000, 0x885f: 0xa0000000, - 0x8860: 0x40021220, 0x8861: 0x4002ba20, 0x8862: 0x4003e020, 0x8863: 0x4004ea20, - 0x8864: 0x4027de20, 0x8865: 0x4004ec20, 0x8866: 0x4004e620, 0x8867: 0x4003d220, - 0x8868: 0x4003f420, 0x8869: 0x4003f620, 0x886a: 0x4004d820, 0x886b: 0x40093820, - 0x886c: 0x40024020, 0x886d: 0x40021a20, 0x886e: 0x4002e420, 0x886f: 0x4004e220, - 0x8870: 0x4029cc20, 0x8871: 0x4029ce20, 0x8872: 0x4029d020, 0x8873: 0x4029d220, - 0x8874: 0x4029d420, 0x8875: 0x4029d620, 0x8876: 0x4029d820, 0x8877: 0x4029da20, - 0x8878: 0x4029dc20, 0x8879: 0x4029de20, 0x887a: 0x40026c20, 0x887b: 0x40026220, - 0x887c: 0x40094020, 0x887d: 0xc32f0851, 0x887e: 0x40094420, 0x887f: 0x4002c420, - // Block 0x222, offset 0x8880 - 0x8880: 0x4004d620, 0x8881: 0xc3f10a51, 0x8882: 0x002c0a88, 0x8883: 0x002c3a88, - 0x8884: 0x002c6288, 0x8885: 0xc3920a11, 0x8886: 0x002d0888, 0x8887: 0x002d2288, - 0x8888: 0x002d6888, 0x8889: 0x002d9a88, 0x888a: 0x002dcc88, 0x888b: 0xc3ec0ce1, - 0x888c: 0xc0030002, 0x888d: 0x002e8288, 0x888e: 0x002e9e88, 0x888f: 0xc3970951, - 0x8890: 0x002f2c88, 0x8891: 0x002f5688, 0x8892: 0x002f7a88, 0x8893: 0x002fe688, - 0x8894: 0x00302c88, 0x8895: 0xc3840951, 0x8896: 0x0030be88, 0x8897: 0x0030e288, - 0x8898: 0x0030f688, 0x8899: 0x00310088, 0x889a: 0x00312a88, 0x889b: 0x4003f820, - 0x889c: 0x4004e420, 0x889d: 0x4003fa20, 0x889e: 0x40062420, 0x889f: 0x40021620, - 0x88a0: 0x40061e20, 0x88a1: 0xc3ee0a51, 0x88a2: 0x402c0a20, 0x88a3: 0x402c3a20, - 0x88a4: 0x402c6220, 0x88a5: 0xc3900a11, 0x88a6: 0x402d0820, 0x88a7: 0x402d2220, - 0x88a8: 0x402d6820, 0x88a9: 0x402d9a20, 0x88aa: 0x402dcc20, 0x88ab: 0x402dfe20, - 0x88ac: 0xc0000002, 0x88ad: 0x402e8220, 0x88ae: 0x402e9e20, 0x88af: 0xc3940951, - 0x88b0: 0x402f2c20, 0x88b1: 0x402f5620, 0x88b2: 0x402f7a20, 0x88b3: 0x402fe620, - 0x88b4: 0x40302c20, 0x88b5: 0xc3810951, 0x88b6: 0x4030be20, 0x88b7: 0x4030e220, - 0x88b8: 0x4030f620, 0x88b9: 0x40310020, 0x88ba: 0x40312a20, 0x88bb: 0x4003fc20, - 0x88bc: 0x40094820, 0x88bd: 0x4003fe20, 0x88be: 0x40094c20, 0x88bf: 0xa0000000, - // Block 0x223, offset 0x88c0 - 0x88c0: 0xe0000983, 0x88c1: 0xe0000980, 0x88c2: 0xe00008fb, 0x88c3: 0xe00008f8, - 0x88c4: 0xe000097d, 0x88c5: 0xe000097a, 0x88c6: 0xe0000a38, 0x88c7: 0xe0000a35, - 0x88c8: 0xe0000a3e, 0x88c9: 0xe0000a3b, 0x88ca: 0xe0000a4a, 0x88cb: 0xe0000a47, - 0x88cc: 0xe0000a44, 0x88cd: 0xe0000a41, 0x88ce: 0xe0000a86, 0x88cf: 0xe0000a83, - 0x88d0: 0x002c62a3, 0x88d1: 0x402c6221, 0x88d2: 0xe0000b46, 0x88d3: 0xe0000b43, - 0x88d4: 0xe0000aee, 0x88d5: 0xe0000aeb, 0x88d6: 0xe0000b2c, 0x88d7: 0xe0000b29, - 0x88d8: 0x00320cc3, 0x88d9: 0x40320c22, 0x88da: 0xe0000b1a, 0x88db: 0xe0000b17, - 0x88dc: 0xe0000bb8, 0x88dd: 0xe0000bb5, 0x88de: 0xe0000bb2, 0x88df: 0xe0000baf, - 0x88e0: 0xe0000bc4, 0x88e1: 0xe0000bc1, 0x88e2: 0xe0000bca, 0x88e3: 0xe0000bc7, - 0x88e4: 0xe0000bee, 0x88e5: 0xe0000beb, 0x88e6: 0xe0000c1b, 0x88e7: 0xe0000c18, - 0x88e8: 0xe0000c51, 0x88e9: 0xe0000c4e, 0x88ea: 0xe0000c60, 0x88eb: 0xe0000c5d, - 0x88ec: 0xe0000c31, 0x88ed: 0xe0000c2e, 0x88ee: 0xe0000c5a, 0x88ef: 0xe0000c57, - 0x88f0: 0xe0000c54, 0x88f1: 0x402da220, 0x88f2: 0xf0000a0a, 0x88f3: 0xf0000404, - 0x88f4: 0xe0000c8a, 0x88f5: 0xe0000c87, 0x88f6: 0xe0000c9f, 0x88f7: 0xe0000c9c, - 0x88f8: 0x402f5621, 0x88f9: 0xe0000ccc, 0x88fa: 0xe0000cc9, 0x88fb: 0xe0000cd8, - 0x88fc: 0xe0000cd5, 0x88fd: 0xe0000cd2, 0x88fe: 0xe0000ccf, 0x88ff: 0xe0000d04, - // Block 0x224, offset 0x8900 - 0x8900: 0x4062ac20, 0x8901: 0xe00025cf, 0x8902: 0x4062b020, 0x8903: 0x4062b220, - 0x8904: 0xe00025db, 0x8905: 0x4062b620, 0x8906: 0x4062b820, 0x8907: 0x4062ba20, - 0x8908: 0xe00025f3, 0x8909: 0x4062be20, 0x890a: 0xe00025f9, 0x890b: 0x4062c220, - 0x890c: 0x4062c420, 0x890d: 0xe00025fc, 0x890e: 0x4062c820, 0x890f: 0x4062ca20, - 0x8910: 0x4062cc20, 0x8911: 0x4062ce20, 0x8912: 0x4062d020, 0x8913: 0xe00027ef, - 0x8914: 0xe00027f2, 0x8915: 0xe00027f5, 0x8916: 0xe00027f8, 0x8917: 0xe0002801, - 0x8918: 0xe000280b, 0x8919: 0xe0002815, 0x891a: 0xe00025f0, 0x891b: 0xe0002830, - 0x891c: 0xe000283c, 0x891d: 0xe0002846, 0x891e: 0xe000284f, 0x891f: 0xe0002852, - 0x8920: 0xe0002855, 0x8921: 0xe00025f6, 0x8922: 0xe000285f, 0x8923: 0xe0002863, - 0x8924: 0xe0002867, 0x8925: 0xe000286b, 0x8926: 0xe000286f, 0x8927: 0xe0002876, - 0x8928: 0xe0002879, 0x8929: 0xe000287c, 0x892a: 0xe000287f, 0x892b: 0xe0002873, - 0x892c: 0xe000285b, 0x892d: 0xe0002885, 0x892e: 0xe0002888, 0x892f: 0xe000288b, - 0x8930: 0xe000288e, 0x8931: 0xe0002891, 0x8932: 0xe0002894, 0x8933: 0xe0002897, - 0x8934: 0xe000289b, 0x8935: 0xe000289f, 0x8936: 0xe00028a2, 0x8937: 0xe00028a5, - 0x8938: 0xe00028a8, 0x8939: 0xe00028ab, 0x893a: 0xe00028ae, 0x893b: 0xe00028b1, - 0x893c: 0x40632420, 0x893d: 0x40632620, 0x893e: 0x40632820, 0x893f: 0x40632a20, - // Block 0x225, offset 0x8940 - 0x8940: 0x40632c20, 0x8941: 0xe00028b4, 0x8942: 0xe00028bb, 0x8943: 0xe00028be, - 0x8944: 0xe00028c1, 0x8945: 0xe00028c4, 0x8946: 0x40633820, 0x8947: 0xe00028c7, - 0x8948: 0xe00028ca, 0x8949: 0xe00028cd, 0x894a: 0xe00028d3, 0x894b: 0xe00028d6, - 0x894c: 0x40634420, 0x894d: 0xe00028d9, 0x894e: 0x40634820, 0x894f: 0x40634a20, - 0x8950: 0x40634c20, 0x8951: 0x40634e20, 0x8952: 0xe00028dc, 0x8953: 0xe00028df, - 0x8954: 0x40635420, 0x8955: 0x40635620, 0x8956: 0xe00028e2, 0x8957: 0xe00028e5, - 0x8958: 0xe00028f4, 0x8959: 0x40635e20, 0x895a: 0xe00027d9, 0x895b: 0xe00027fb, - 0x895c: 0xe00025d5, 0x895d: 0xe00025d8, 0x895e: 0xe0002804, 0x895f: 0x4063a420, - 0x8960: 0x4063a620, 0x8961: 0x4063a820, 0x8962: 0xe00025ff, 0x8963: 0x4063ac20, - 0x8964: 0xe0002602, 0x8965: 0x4063b020, 0x8966: 0xe0002605, 0x8967: 0x4063b420, - 0x8968: 0xe0002608, 0x8969: 0x4063b820, 0x896a: 0xe000260b, 0x896b: 0xe000260e, - 0x896c: 0xe0002612, 0x896d: 0x4063c020, 0x896e: 0x4063c220, 0x896f: 0xe0002615, - 0x8970: 0xe0002618, 0x8971: 0xe000261c, 0x8972: 0x4063ca20, 0x8973: 0x4063cc20, - 0x8974: 0x4063ce20, 0x8975: 0x4063d020, 0x8976: 0xe00028f7, 0x8977: 0xe00028fa, - 0x8978: 0xe0002900, 0x8979: 0xe0002903, 0x897a: 0xe0002909, 0x897b: 0xe000290c, - 0x897c: 0xe000290f, 0x897d: 0xe0002915, 0x897e: 0xe0002918, 0x897f: 0xe0002922, - // Block 0x226, offset 0x8980 - 0x8980: 0xe0002925, 0x8981: 0xe0002929, 0x8982: 0xe000292d, 0x8983: 0xe0002930, - 0x8984: 0xe0002933, 0x8985: 0xe0002936, 0x8986: 0xe000293a, 0x8987: 0xe000293d, - 0x8988: 0xe0002940, 0x8989: 0xe0002943, 0x898a: 0xe0002946, 0x898b: 0xe000294a, - 0x898c: 0xe000294e, 0x898d: 0xe0002952, 0x898e: 0xe0002955, 0x898f: 0xe0002958, - 0x8990: 0xe000295b, 0x8991: 0xe000295f, 0x8992: 0xe0002962, 0x8993: 0xe0002966, - 0x8994: 0xe0002969, 0x8995: 0xe000296c, 0x8996: 0xe000296f, 0x8997: 0xe0002972, - 0x8998: 0xe0002975, 0x8999: 0xe0002978, 0x899a: 0xe000297b, 0x899b: 0xe000297e, - 0x899c: 0xe0002981, 0x899d: 0x40642020, 0x899e: 0x40642220, 0x899f: 0x40642420, - 0x89a0: 0x40642620, 0x89a1: 0x40642820, 0x89a2: 0x40642a20, 0x89a3: 0xe00028fd, - 0x89a4: 0xe0002906, 0x89a5: 0xe0002912, 0x89a6: 0xe000291b, 0x89a7: 0xe000291e, - 0x89a8: 0x4062ac20, 0x89a9: 0xe00025cf, 0x89aa: 0xe00025d2, 0x89ab: 0x4062b020, - 0x89ac: 0xe00025d5, 0x89ad: 0xe00025d8, 0x89ae: 0x4062b220, 0x89af: 0x4062b620, - 0x89b0: 0xe00025de, 0x89b1: 0xe00025e1, 0x89b2: 0xe00025e4, 0x89b3: 0xe00025e7, - 0x89b4: 0xe00025ea, 0x89b5: 0xe00025ed, 0x89b6: 0xe00025f0, 0x89b7: 0x4062b820, - 0x89b8: 0x4062ba20, 0x89b9: 0xe00025f6, 0x89ba: 0x4062be20, 0x89bb: 0xe00025f9, - 0x89bc: 0x4062c220, 0x89bd: 0x4062c420, 0x89be: 0x4062c820, 0x89bf: 0x4062ca20, - // Block 0x227, offset 0x89c0 - 0x89c0: 0x4062cc20, 0x89c1: 0x4062ce20, 0x89c2: 0x4062d020, 0x89c3: 0xe00027dc, - 0x89c4: 0xe00027e2, 0x89c5: 0xe00027ef, 0x89c6: 0xe00027f5, 0x89c7: 0xe00027fb, - 0x89c8: 0x4064a420, 0x89c9: 0xe00027fe, 0x89ca: 0xe0002801, 0x89cb: 0xe0002804, - 0x89cc: 0xe0002807, 0x89cd: 0xe000280b, 0x89ce: 0xe000280e, 0x89cf: 0xe0002811, - 0x89d0: 0xe0002815, 0x89d1: 0xe0002818, 0x89d2: 0xe000281c, 0x89d3: 0xe0002820, - 0x89d4: 0xe0002828, 0x89d5: 0xe0002824, 0x89d6: 0xe000282c, 0x89d7: 0x4064c220, - 0x89d8: 0xe0002833, 0x89d9: 0x4064c620, 0x89da: 0xe0002836, 0x89db: 0xe0002839, - 0x89dc: 0xe000283c, 0x89dd: 0xe000283f, 0x89de: 0xe0002842, 0x89df: 0x4064d220, - 0x89e0: 0xe0002849, 0x89e1: 0xe000284c, 0x89e2: 0xe0002846, 0x89e3: 0xe0002858, - 0x89e4: 0xe000287f, 0x89e5: 0xe0002882, 0x89e6: 0xe0002873, 0x89e7: 0xe0002885, - 0x89e8: 0xe000288b, 0x89e9: 0xe000288e, 0x89ea: 0xe0002894, 0x89eb: 0x4064ea20, - 0x89ec: 0xe00028b4, 0x89ed: 0xe00028b7, 0x89ee: 0xe00028c7, 0x89ef: 0xe00028d0, - 0x89f0: 0x4064f420, 0x89f1: 0x4064f620, 0x89f2: 0x4064f820, 0x89f3: 0xe00028e2, - 0x89f4: 0xe00028e5, 0x89f5: 0xe00028e8, 0x89f6: 0xe00028eb, 0x89f7: 0xe00028ee, - 0x89f8: 0xe00028f1, 0x89f9: 0x40650620, 0x89fa: 0xe00027d6, 0x89fb: 0xe00027df, - 0x89fc: 0xe00027e6, 0x89fd: 0xe00027e9, 0x89fe: 0xe00027ec, 0x89ff: 0xe00027f2, - // Block 0x228, offset 0x8a00 - 0x8a00: 0xc3f40cf1, 0x8a01: 0x4062ac21, 0x8a02: 0x4062b020, 0x8a03: 0xc3f60d21, - 0x8a04: 0x4062b221, 0x8a05: 0x4062b620, 0x8a06: 0x4062b820, 0x8a07: 0xc3f80d51, - 0x8a08: 0x4062ba21, 0x8a09: 0xc3fa0d81, 0x8a0a: 0x4062be21, 0x8a0b: 0x4062c220, - 0x8a0c: 0xc3fc0db1, 0x8a0d: 0x4062c421, 0x8a0e: 0x4062c820, 0x8a0f: 0x4062ca20, - 0x8a10: 0x4062cc20, 0x8a11: 0x4062ce20, 0x8a12: 0x4062d020, 0x8a13: 0x4062d220, - 0x8a14: 0x4062d420, 0x8a15: 0x4062d620, 0x8a16: 0x4062d820, 0x8a17: 0x4062da20, - 0x8a18: 0x4062dc20, 0x8a19: 0x4062de20, 0x8a1a: 0x4062e020, 0x8a1b: 0x4062e220, - 0x8a1c: 0x4062e420, 0x8a1d: 0x4062e620, 0x8a1e: 0x4062e820, 0x8a1f: 0x4062ea20, - 0x8a20: 0x4062ec20, 0x8a21: 0x4062ee20, 0x8a22: 0x4062f020, 0x8a23: 0x4062f220, - 0x8a24: 0x4062f420, 0x8a25: 0x4062f620, 0x8a26: 0x4062f820, 0x8a27: 0x4062fa20, - 0x8a28: 0x4062fc20, 0x8a29: 0x4062fe20, 0x8a2a: 0x40630020, 0x8a2b: 0x40630220, - 0x8a2c: 0x40630420, 0x8a2d: 0x40630620, 0x8a2e: 0x40630820, 0x8a2f: 0x40630a20, - 0x8a30: 0x40630c20, 0x8a31: 0x40630e20, 0x8a32: 0x40631020, 0x8a33: 0x40631220, - 0x8a34: 0x40631420, 0x8a35: 0x40631620, 0x8a36: 0x40631820, 0x8a37: 0x40631a20, - 0x8a38: 0x40631c20, 0x8a39: 0x40631e20, 0x8a3a: 0x40632020, 0x8a3b: 0x40632220, - 0x8a3c: 0x40632420, 0x8a3d: 0x40632620, 0x8a3e: 0x40632820, 0x8a3f: 0x40632a20, - // Block 0x229, offset 0x8a40 - 0x8a40: 0x40632c20, 0x8a41: 0x40632e20, 0x8a42: 0x40633020, 0x8a43: 0x40633220, - 0x8a44: 0x40633420, 0x8a45: 0x40633620, 0x8a46: 0x40633820, 0x8a47: 0x40633a20, - 0x8a48: 0x40633c20, 0x8a49: 0x40633e20, 0x8a4a: 0x40634020, 0x8a4b: 0x40634220, - 0x8a4c: 0x40634420, 0x8a4d: 0x40634620, 0x8a4e: 0x40634820, 0x8a4f: 0x40634a20, - 0x8a50: 0x40634c20, 0x8a51: 0x40634e20, 0x8a52: 0x40635020, 0x8a53: 0x40635220, - 0x8a54: 0x40635420, 0x8a55: 0x40635620, 0x8a56: 0x40635820, 0x8a57: 0x40635a20, - 0x8a58: 0x40635c20, 0x8a59: 0x40635e20, 0x8a5a: 0x40636020, 0x8a5b: 0x40636220, - 0x8a5c: 0x40636420, 0x8a5d: 0x40636620, 0x8a5e: 0x40636820, 0x8a5f: 0x4063a420, - 0x8a60: 0x4063a620, 0x8a61: 0xa0002502, 0x8a62: 0xa0002602, 0x8a63: 0xa0002702, - 0x8a64: 0xa0002802, 0x8a65: 0xa0002902, 0x8a66: 0xa0002a02, 0x8a67: 0xa0002b02, - 0x8a68: 0xa0002c02, 0x8a69: 0xa0002d02, 0x8a6a: 0xa0002e02, 0x8a6b: 0xa0002f02, - 0x8a6c: 0xa0003002, 0x8a6d: 0xa0003102, 0x8a6e: 0xa0003202, 0x8a6f: 0xa0003302, - 0x8a70: 0xa0003402, 0x8a71: 0xa0003502, 0x8a72: 0xa0003602, 0x8a73: 0xa0003702, - 0x8a74: 0xa0003802, 0x8a75: 0xa0003902, 0x8a76: 0x4063d220, 0x8a77: 0x4063d420, - 0x8a78: 0x4063d620, 0x8a79: 0x4063d820, 0x8a7a: 0x4063da20, 0x8a7b: 0x4063dc20, - 0x8a7c: 0x4063de20, 0x8a7d: 0x4063e020, 0x8a7e: 0x4063e220, 0x8a7f: 0x4063e420, - // Block 0x22a, offset 0x8a80 - 0x8a80: 0x4063e620, 0x8a81: 0x4063e820, 0x8a82: 0x4063ea20, 0x8a83: 0x4063ec20, - 0x8a84: 0x4063ee20, 0x8a85: 0x4063f020, 0x8a86: 0x4063f220, 0x8a87: 0x4063f420, - 0x8a88: 0x4063f620, 0x8a89: 0x4063f820, 0x8a8a: 0x4063fa20, 0x8a8b: 0x4063fc20, - 0x8a8c: 0x4063fe20, 0x8a8d: 0x40640020, 0x8a8e: 0x40640220, 0x8a8f: 0x40640420, - 0x8a90: 0x40640620, 0x8a91: 0x40640820, 0x8a92: 0x40640a20, 0x8a93: 0x40640c20, - 0x8a94: 0x40640e20, 0x8a95: 0x40641020, 0x8a96: 0x40641220, 0x8a97: 0x40641420, - 0x8a98: 0x40641620, 0x8a99: 0x40641820, 0x8a9a: 0x40641a20, 0x8a9b: 0x40641c20, - 0x8a9c: 0x40641e20, 0x8a9d: 0x40642020, 0x8a9e: 0x40642220, 0x8a9f: 0x40642420, - 0x8aa0: 0x40642620, 0x8aa1: 0x40642820, 0x8aa2: 0x40642a20, 0x8aa3: 0x40642c20, - 0x8aa4: 0x40642e20, 0x8aa5: 0x40643020, 0x8aa6: 0x40643220, 0x8aa7: 0x40643420, - 0x8aa8: 0xa0003a02, 0x8aa9: 0xa0003b02, 0x8aaa: 0xa0003c02, 0x8aab: 0xa0003d02, - 0x8aac: 0xa0003e02, 0x8aad: 0xa0003f02, 0x8aae: 0xa0004002, 0x8aaf: 0xa0004102, - 0x8ab0: 0xa0004202, 0x8ab1: 0xa0004302, 0x8ab2: 0xa0004402, 0x8ab3: 0xa0004502, - 0x8ab4: 0xa0004602, 0x8ab5: 0xa0004702, 0x8ab6: 0xa0004802, 0x8ab7: 0xa0004902, - 0x8ab8: 0xa0004a02, 0x8ab9: 0xa0004b02, 0x8aba: 0xa0004c02, 0x8abb: 0xa0004d02, - 0x8abc: 0xa0004e02, 0x8abd: 0xa0004f02, 0x8abe: 0xa0005002, 0x8abf: 0xa0005102, - // Block 0x22b, offset 0x8ac0 - 0x8ac0: 0xa0005202, 0x8ac1: 0xa0005302, 0x8ac2: 0xa0005402, 0x8ac3: 0x40649a20, - 0x8ac4: 0x40649c20, 0x8ac5: 0x40649e20, 0x8ac6: 0x4064a020, 0x8ac7: 0x4064a220, - 0x8ac8: 0x4064a420, 0x8ac9: 0x4064a620, 0x8aca: 0x4064a820, 0x8acb: 0x4064aa20, - 0x8acc: 0x4064ac20, 0x8acd: 0x4064ae20, 0x8ace: 0x4064b020, 0x8acf: 0x4064b220, - 0x8ad0: 0x4064b420, 0x8ad1: 0x4064b620, 0x8ad2: 0x4064b820, 0x8ad3: 0x4064ba20, - 0x8ad4: 0x4064bc20, 0x8ad5: 0x4064be20, 0x8ad6: 0x4064c020, 0x8ad7: 0x4064c220, - 0x8ad8: 0x4064c420, 0x8ad9: 0x4064c620, 0x8ada: 0x4064c820, 0x8adb: 0x4064ca20, - 0x8adc: 0x4064cc20, 0x8add: 0x4064ce20, 0x8ade: 0x4064d020, 0x8adf: 0x4064d220, - 0x8ae0: 0x4064d420, 0x8ae1: 0x4064d620, 0x8ae2: 0x4064d820, 0x8ae3: 0x4064da20, - 0x8ae4: 0x4064dc20, 0x8ae5: 0x4064de20, 0x8ae6: 0x4064e020, 0x8ae7: 0x4064e220, - 0x8ae8: 0x4064e420, 0x8ae9: 0x4064e620, 0x8aea: 0x4064e820, 0x8aeb: 0x4064ea20, - 0x8aec: 0x4064ec20, 0x8aed: 0x4064ee20, 0x8aee: 0x4064f020, 0x8aef: 0x4064f220, - 0x8af0: 0x4064f420, 0x8af1: 0x4064f620, 0x8af2: 0x4064f820, 0x8af3: 0x4064fa20, - 0x8af4: 0x4064fc20, 0x8af5: 0x4064fe20, 0x8af6: 0x40650020, 0x8af7: 0x40650220, - 0x8af8: 0x40650420, 0x8af9: 0x40650620, 0x8afa: 0x40650820, 0x8afb: 0x40650a20, - 0x8afc: 0x40650c20, 0x8afd: 0x40650e20, 0x8afe: 0x40651020, 0x8aff: 0x40651220, - // Block 0x22c, offset 0x8b00 - 0x8b05: 0x4065da20, 0x8b06: 0x4065dc20, 0x8b07: 0x4065de20, - 0x8b08: 0x4065e020, 0x8b09: 0x4065e420, 0x8b0a: 0x4065e620, 0x8b0b: 0x4065e820, - 0x8b0c: 0x4065ea20, 0x8b0d: 0x4065ec20, 0x8b0e: 0x4065ee20, 0x8b0f: 0x4065f420, - 0x8b10: 0x4065f620, 0x8b11: 0x4065f820, 0x8b12: 0x4065fa20, 0x8b13: 0x4065fe20, - 0x8b14: 0x40660020, 0x8b15: 0x40660220, 0x8b16: 0x40660420, 0x8b17: 0x40660620, - 0x8b18: 0x40660820, 0x8b19: 0x40660a20, 0x8b1a: 0x40661220, 0x8b1b: 0x40661420, - 0x8b1c: 0x40661820, 0x8b1d: 0x40661a20, 0x8b1e: 0x40661e20, 0x8b1f: 0x40662020, - 0x8b20: 0x40662220, 0x8b21: 0x40662420, 0x8b22: 0x40662620, 0x8b23: 0x40662820, - 0x8b24: 0x40662a20, 0x8b25: 0x40662e20, 0x8b26: 0x40663620, 0x8b27: 0x40663820, - 0x8b28: 0x40663a20, 0x8b29: 0x40663c20, 0x8b2a: 0x4065e220, 0x8b2b: 0x4065f020, - 0x8b2c: 0x4065fc20, 0x8b2d: 0x40663e20, - 0x8b31: 0x0062ac84, 0x8b32: 0x0062aca3, 0x8b33: 0x00646884, - 0x8b34: 0x0062b084, 0x8b35: 0x00646c84, 0x8b36: 0x00646e84, 0x8b37: 0x0062b284, - 0x8b38: 0x0062b2a3, 0x8b39: 0x0062b684, 0x8b3a: 0x00647484, 0x8b3b: 0x00647684, - 0x8b3c: 0x00647884, 0x8b3d: 0x00647a84, 0x8b3e: 0x00647c84, 0x8b3f: 0x00647e84, - // Block 0x22d, offset 0x8b40 - 0x8b40: 0x0062e084, 0x8b41: 0x0062b884, 0x8b42: 0x0062ba84, 0x8b43: 0x0062baa3, - 0x8b44: 0x0062ee84, 0x8b45: 0x0062be84, 0x8b46: 0x0062bea3, 0x8b47: 0x0062c284, - 0x8b48: 0x0062c484, 0x8b49: 0x0062c4a3, 0x8b4a: 0x0062c884, 0x8b4b: 0x0062ca84, - 0x8b4c: 0x0062cc84, 0x8b4d: 0x0062ce84, 0x8b4e: 0x0062d084, 0x8b4f: 0x0063a884, - 0x8b50: 0x0063aa84, 0x8b51: 0x0063ac84, 0x8b52: 0x0063ae84, 0x8b53: 0x0063b084, - 0x8b54: 0x0063b284, 0x8b55: 0x0063b484, 0x8b56: 0x0063b684, 0x8b57: 0x0063b884, - 0x8b58: 0x0063ba84, 0x8b59: 0x0063bc84, 0x8b5a: 0x0063be84, 0x8b5b: 0x0063c084, - 0x8b5c: 0x0063c284, 0x8b5d: 0x0063c484, 0x8b5e: 0x0063c684, 0x8b5f: 0x0063c884, - 0x8b60: 0x0063ca84, 0x8b61: 0x0063cc84, 0x8b62: 0x0063ce84, 0x8b63: 0x0063d084, - 0x8b64: 0x0063a684, 0x8b65: 0x0062d484, 0x8b66: 0x0062d684, 0x8b67: 0x0064a284, - 0x8b68: 0x0064a484, 0x8b69: 0x0064ac84, 0x8b6a: 0x0064b084, 0x8b6b: 0x0064ba84, - 0x8b6c: 0x0064c284, 0x8b6d: 0x0064c684, 0x8b6e: 0x0062e484, 0x8b6f: 0x0064ce84, - 0x8b70: 0x0064d284, 0x8b71: 0x0062e684, 0x8b72: 0x0062e884, 0x8b73: 0x0062ec84, - 0x8b74: 0x0062f084, 0x8b75: 0x0062f284, 0x8b76: 0x0062fa84, 0x8b77: 0x0062fe84, - 0x8b78: 0x00630284, 0x8b79: 0x00630484, 0x8b7a: 0x00630684, 0x8b7b: 0x00630884, - 0x8b7c: 0x00630a84, 0x8b7d: 0x00631084, 0x8b7e: 0x00631884, 0x8b7f: 0x00632c84, - // Block 0x22e, offset 0x8b80 - 0x8b80: 0xf0000404, 0x8b81: 0xf0000404, 0x8b82: 0xf0000404, 0x8b83: 0xf0000404, - 0x8b84: 0x02aa9e86, 0x8b85: 0x02bcf886, 0x8b86: 0x02cb0e86, 0x8b87: 0x02f71e86, - 0x8b88: 0xe00002e3, 0x8b89: 0xe00003d8, 0x8b8a: 0xe00004b3, 0x8b8b: 0xe000057d, - 0x8b8c: 0xe0000648, 0x8b8d: 0xe00006f0, 0x8b8e: 0xe000079c, 0x8b8f: 0xe0000841, - 0x8b90: 0xe0000ec0, 0x8b91: 0xf0000606, 0x8b92: 0xf0000606, 0x8b93: 0xf0000606, - 0x8b94: 0xf0000606, 0x8b95: 0xf0000606, 0x8b96: 0xf0000606, 0x8b97: 0xf0000606, - 0x8b98: 0xf0000606, 0x8b99: 0xf0000606, 0x8b9a: 0xf0000606, 0x8b9b: 0xf0000606, - 0x8b9c: 0xf0000606, 0x8b9d: 0xf0000606, 0x8b9e: 0xf0000606, 0x8b9f: 0xf0000606, - 0x8ba0: 0x0062ac86, 0x8ba1: 0x0062b086, 0x8ba2: 0x0062b286, 0x8ba3: 0x0062b686, - 0x8ba4: 0x0062b886, 0x8ba5: 0x0062ba86, 0x8ba6: 0x0062be86, 0x8ba7: 0x0062c286, - 0x8ba8: 0x0062c486, 0x8ba9: 0x0062c886, 0x8baa: 0x0062ca86, 0x8bab: 0x0062cc86, - 0x8bac: 0x0062ce86, 0x8bad: 0x0062d086, 0x8bae: 0xe0002984, 0x8baf: 0xe0002987, - 0x8bb0: 0xe000298a, 0x8bb1: 0xe000298d, 0x8bb2: 0xe0002990, 0x8bb3: 0xe0002993, - 0x8bb4: 0xe0002996, 0x8bb5: 0xe0002999, 0x8bb6: 0xe000299f, 0x8bb7: 0xe00029a2, - 0x8bb8: 0xe00029a5, 0x8bb9: 0xe00029a8, 0x8bba: 0xe00029ab, 0x8bbb: 0xe00029ae, - 0x8bbc: 0xe0002127, 0x8bbd: 0xe0002122, 0x8bbe: 0xe000299c, 0x8bbf: 0x4027ac20, - // Block 0x22f, offset 0x8bc0 - 0x8bc0: 0xa0000000, 0x8bc1: 0xa0000000, 0x8bc2: 0xa0000000, 0x8bc3: 0xa0000000, - 0x8bc4: 0xa0000000, 0x8bc5: 0xa0000000, 0x8bc6: 0xa0000000, 0x8bc7: 0xa0000000, - 0x8bc8: 0xa0000000, 0x8bc9: 0x40020020, 0x8bca: 0x40020220, 0x8bcb: 0x40020420, - 0x8bcc: 0x40020620, 0x8bcd: 0x40020820, 0x8bce: 0xa0000000, 0x8bcf: 0xa0000000, - 0x8bd0: 0xa0000000, 0x8bd1: 0xa0000000, 0x8bd2: 0xa0000000, 0x8bd3: 0xa0000000, - 0x8bd4: 0xa0000000, 0x8bd5: 0xa0000000, 0x8bd6: 0xa0000000, 0x8bd7: 0xa0000000, - 0x8bd8: 0xa0000000, 0x8bd9: 0xa0000000, 0x8bda: 0xa0000000, 0x8bdb: 0xa0000000, - 0x8bdc: 0xa0000000, 0x8bdd: 0xa0000000, 0x8bde: 0xa0000000, 0x8bdf: 0xa0000000, - 0x8be0: 0x40021220, 0x8be1: 0x4002ba20, 0x8be2: 0x4003e020, 0x8be3: 0x4004ea20, - 0x8be4: 0x4027de20, 0x8be5: 0x4004ec20, 0x8be6: 0x4004e620, 0x8be7: 0x4003d220, - 0x8be8: 0x4003f420, 0x8be9: 0x4003f620, 0x8bea: 0x4004d820, 0x8beb: 0x40093820, - 0x8bec: 0x40024020, 0x8bed: 0x40021a20, 0x8bee: 0x4002e420, 0x8bef: 0x4004e220, - 0x8bf0: 0x4029cc20, 0x8bf1: 0x4029ce20, 0x8bf2: 0x4029d020, 0x8bf3: 0x4029d220, - 0x8bf4: 0x4029d420, 0x8bf5: 0x4029d620, 0x8bf6: 0x4029d820, 0x8bf7: 0x4029da20, - 0x8bf8: 0x4029dc20, 0x8bf9: 0x4029de20, 0x8bfa: 0x40026c20, 0x8bfb: 0x40026220, - 0x8bfc: 0x40094020, 0x8bfd: 0xc32f0851, 0x8bfe: 0x40094420, 0x8bff: 0x4002c420, - // Block 0x230, offset 0x8c00 - 0x8c00: 0x4004d620, 0x8c01: 0xc40209c3, 0x8c02: 0x002c0a88, 0x8c03: 0x002c3a88, - 0x8c04: 0x002c6288, 0x8c05: 0xc3920a11, 0x8c06: 0x002d0888, 0x8c07: 0x002d2288, - 0x8c08: 0x002d6888, 0x8c09: 0x002d9a88, 0x8c0a: 0x002dcc88, 0x8c0b: 0x002dfe88, - 0x8c0c: 0xc0030002, 0x8c0d: 0x002e8288, 0x8c0e: 0x002e9e88, 0x8c0f: 0xc3970951, - 0x8c10: 0x002f2c88, 0x8c11: 0x002f5688, 0x8c12: 0x002f7a88, 0x8c13: 0x002fe688, - 0x8c14: 0x00302c88, 0x8c15: 0xc3840951, 0x8c16: 0x0030be88, 0x8c17: 0x0030e288, - 0x8c18: 0x0030f688, 0x8c19: 0x00310088, 0x8c1a: 0x00312a88, 0x8c1b: 0x4003f820, - 0x8c1c: 0x4004e420, 0x8c1d: 0x4003fa20, 0x8c1e: 0x40062420, 0x8c1f: 0x40021620, - 0x8c20: 0x40061e20, 0x8c21: 0xc3fe0982, 0x8c22: 0x402c0a20, 0x8c23: 0x402c3a20, - 0x8c24: 0x402c6220, 0x8c25: 0xc3900a11, 0x8c26: 0x402d0820, 0x8c27: 0x402d2220, - 0x8c28: 0x402d6820, 0x8c29: 0x402d9a20, 0x8c2a: 0x402dcc20, 0x8c2b: 0x402dfe20, - 0x8c2c: 0xc0000002, 0x8c2d: 0x402e8220, 0x8c2e: 0x402e9e20, 0x8c2f: 0xc3940951, - 0x8c30: 0x402f2c20, 0x8c31: 0x402f5620, 0x8c32: 0x402f7a20, 0x8c33: 0x402fe620, - 0x8c34: 0x40302c20, 0x8c35: 0xc3810951, 0x8c36: 0x4030be20, 0x8c37: 0x4030e220, - 0x8c38: 0x4030f620, 0x8c39: 0x40310020, 0x8c3a: 0x40312a20, 0x8c3b: 0x4003fc20, - 0x8c3c: 0x40094820, 0x8c3d: 0x4003fe20, 0x8c3e: 0x40094c20, 0x8c3f: 0xa0000000, - // Block 0x231, offset 0x8c40 - 0x8c40: 0xa0000000, 0x8c41: 0xa0000000, 0x8c42: 0xa0000000, 0x8c43: 0xa0000000, - 0x8c44: 0xa0000000, 0x8c45: 0xa0000000, 0x8c46: 0xa0000000, 0x8c47: 0xa0000000, - 0x8c48: 0xa0000000, 0x8c49: 0x40020020, 0x8c4a: 0x40020220, 0x8c4b: 0x40020420, - 0x8c4c: 0x40020620, 0x8c4d: 0x40020820, 0x8c4e: 0xa0000000, 0x8c4f: 0xa0000000, - 0x8c50: 0xa0000000, 0x8c51: 0xa0000000, 0x8c52: 0xa0000000, 0x8c53: 0xa0000000, - 0x8c54: 0xa0000000, 0x8c55: 0xa0000000, 0x8c56: 0xa0000000, 0x8c57: 0xa0000000, - 0x8c58: 0xa0000000, 0x8c59: 0xa0000000, 0x8c5a: 0xa0000000, 0x8c5b: 0xa0000000, - 0x8c5c: 0xa0000000, 0x8c5d: 0xa0000000, 0x8c5e: 0xa0000000, 0x8c5f: 0xa0000000, - 0x8c60: 0x40021220, 0x8c61: 0x4002ba20, 0x8c62: 0x4003e020, 0x8c63: 0x4004ea20, - 0x8c64: 0x4027de20, 0x8c65: 0x4004ec20, 0x8c66: 0x4004e620, 0x8c67: 0x4003d220, - 0x8c68: 0x4003f420, 0x8c69: 0x4003f620, 0x8c6a: 0x4004d820, 0x8c6b: 0x40093820, - 0x8c6c: 0x40024020, 0x8c6d: 0x40021a20, 0x8c6e: 0x4002e420, 0x8c6f: 0x4004e220, - 0x8c70: 0x4029cc20, 0x8c71: 0x4029ce20, 0x8c72: 0x4029d020, 0x8c73: 0x4029d220, - 0x8c74: 0x4029d420, 0x8c75: 0x4029d620, 0x8c76: 0x4029d820, 0x8c77: 0x4029da20, - 0x8c78: 0x4029dc20, 0x8c79: 0x4029de20, 0x8c7a: 0x40026c20, 0x8c7b: 0x40026220, - 0x8c7c: 0x40094020, 0x8c7d: 0xc32f0851, 0x8c7e: 0x40094420, 0x8c7f: 0x4002c420, - // Block 0x232, offset 0x8c80 - 0x8c80: 0x4004d620, 0x8c81: 0xc40d0de1, 0x8c82: 0x002c0a88, 0x8c83: 0xc41508d1, - 0x8c84: 0x002c6288, 0x8c85: 0x002c9888, 0x8c86: 0x002d0888, 0x8c87: 0xc41d08d1, - 0x8c88: 0x002d6888, 0x8c89: 0x002d9a88, 0x8c8a: 0x002dcc88, 0x8c8b: 0xc42108d1, - 0x8c8c: 0xc0030002, 0x8c8d: 0x002e8288, 0x8c8e: 0xc4260e31, 0x8c8f: 0xc4370e61, - 0x8c90: 0x002f2c88, 0x8c91: 0x002f5688, 0x8c92: 0x002f7a88, 0x8c93: 0xc42b08d1, - 0x8c94: 0x00302c88, 0x8c95: 0xc3840951, 0x8c96: 0x0030be88, 0x8c97: 0x0030e288, - 0x8c98: 0x0030f688, 0x8c99: 0x00310088, 0x8c9a: 0xc42f08d1, 0x8c9b: 0x4003f820, - 0x8c9c: 0x4004e420, 0x8c9d: 0x4003fa20, 0x8c9e: 0x40062420, 0x8c9f: 0x40021620, - 0x8ca0: 0x40061e20, 0x8ca1: 0xc4070de1, 0x8ca2: 0x402c0a20, 0x8ca3: 0xc41308d1, - 0x8ca4: 0x402c6220, 0x8ca5: 0x402c9820, 0x8ca6: 0x402d0820, 0x8ca7: 0xc41b08d1, - 0x8ca8: 0x402d6820, 0x8ca9: 0x402d9a20, 0x8caa: 0x402dcc20, 0x8cab: 0xc41f08d1, - 0x8cac: 0xc0000002, 0x8cad: 0x402e8220, 0x8cae: 0xc4230e31, 0x8caf: 0xc4310e61, - 0x8cb0: 0x402f2c20, 0x8cb1: 0x402f5620, 0x8cb2: 0x402f7a20, 0x8cb3: 0xc42908d1, - 0x8cb4: 0x40302c20, 0x8cb5: 0xc3810951, 0x8cb6: 0x4030be20, 0x8cb7: 0x4030e220, - 0x8cb8: 0x4030f620, 0x8cb9: 0x40310020, 0x8cba: 0xc42d08d1, 0x8cbb: 0x4003fc20, - 0x8cbc: 0x40094820, 0x8cbd: 0x4003fe20, 0x8cbe: 0x40094c20, 0x8cbf: 0xa0000000, - // Block 0x233, offset 0x8cc0 - 0x8cc0: 0xe00008f5, 0x8cc1: 0x002c0883, 0x8cc2: 0xe0000921, 0x8cc3: 0x00320ea3, - 0x8cc4: 0x00320e83, 0x8cc5: 0x00320c83, 0x8cc6: 0x00320a83, 0x8cc7: 0xe0000a53, - 0x8cc8: 0xe0000ae8, 0x8cc9: 0xe0000ae2, 0x8cca: 0xe0000af4, 0x8ccb: 0xe0000b20, - 0x8ccc: 0xe0000c2b, 0x8ccd: 0xe0000c25, 0x8cce: 0xe0000c37, 0x8ccf: 0xe0000c43, - 0x8cd0: 0x002c96a3, 0x8cd1: 0x002ee0c3, 0x8cd2: 0xe0000d9a, 0x8cd3: 0xe0000d94, - 0x8cd4: 0x003210e3, 0x8cd5: 0x003210c3, 0x8cd6: 0x00321083, 0x8cd7: 0x40093e20, - 0x8cd8: 0x00320883, 0x8cd9: 0xe0000fe1, 0x8cda: 0xe0000fdb, 0x8cdb: 0xe0000fed, - 0x8cdc: 0x003100a3, 0x8cdd: 0xe0001102, 0x8cde: 0x00306aa3, 0x8cdf: 0xe0000f7b, - 0x8ce0: 0xe00008f2, 0x8ce1: 0x402c0820, 0x8ce2: 0xe000091e, 0x8ce3: 0x40320e21, - 0x8ce4: 0x40320e20, 0x8ce5: 0x40320c20, 0x8ce6: 0x40320a20, 0x8ce7: 0xe0000a4d, - 0x8ce8: 0xe0000ae5, 0x8ce9: 0xe0000adf, 0x8cea: 0xe0000af1, 0x8ceb: 0xe0000b1d, - 0x8cec: 0xe0000c28, 0x8ced: 0xe0000c22, 0x8cee: 0xe0000c34, 0x8cef: 0xe0000c40, - 0x8cf0: 0x402c9621, 0x8cf1: 0x402ee022, 0x8cf2: 0xe0000d97, 0x8cf3: 0xe0000d91, - 0x8cf4: 0x40321023, 0x8cf5: 0x40321022, 0x8cf6: 0x40321020, 0x8cf7: 0x40093c20, - 0x8cf8: 0x40320820, 0x8cf9: 0xe0000fde, 0x8cfa: 0xe0000fd8, 0x8cfb: 0xe0000fea, - 0x8cfc: 0x40310021, 0x8cfd: 0xe00010ff, 0x8cfe: 0x40306a21, 0x8cff: 0xe0001114, - // Block 0x234, offset 0x8d00 - 0x8d00: 0xe0000983, 0x8d01: 0xe0000980, 0x8d02: 0xe00008fb, 0x8d03: 0xe00008f8, - 0x8d04: 0xe000097d, 0x8d05: 0xe000097a, 0x8d06: 0xe0000a38, 0x8d07: 0xe0000a35, - 0x8d08: 0xe0000a3e, 0x8d09: 0xe0000a3b, 0x8d0a: 0xe0000a4a, 0x8d0b: 0xe0000a47, - 0x8d0c: 0x002c5c83, 0x8d0d: 0x402c5c20, 0x8d0e: 0xe0000a86, 0x8d0f: 0xe0000a83, - 0x8d10: 0x002c9683, 0x8d11: 0x402c9620, 0x8d12: 0xe0000b46, 0x8d13: 0xe0000b43, - 0x8d14: 0xe0000aee, 0x8d15: 0xe0000aeb, 0x8d16: 0xe0000b2c, 0x8d17: 0xe0000b29, - 0x8d18: 0xe0000b40, 0x8d19: 0xe0000b3d, 0x8d1a: 0xe0000b1a, 0x8d1b: 0xe0000b17, - 0x8d1c: 0xe0000bb8, 0x8d1d: 0xe0000bb5, 0x8d1e: 0xe0000bb2, 0x8d1f: 0xe0000baf, - 0x8d20: 0xe0000bc4, 0x8d21: 0xe0000bc1, 0x8d22: 0xe0000bca, 0x8d23: 0xe0000bc7, - 0x8d24: 0xe0000bee, 0x8d25: 0xe0000beb, 0x8d26: 0xe0000c1b, 0x8d27: 0xe0000c18, - 0x8d28: 0xe0000c51, 0x8d29: 0xe0000c4e, 0x8d2a: 0xe0000c60, 0x8d2b: 0xe0000c5d, - 0x8d2c: 0xe0000c31, 0x8d2d: 0xe0000c2e, 0x8d2e: 0xe0000c5a, 0x8d2f: 0xe0000c57, - 0x8d30: 0xe0000c54, 0x8d31: 0x402da220, 0x8d32: 0xf0000a0a, 0x8d33: 0xf0000404, - 0x8d34: 0xe0000c8a, 0x8d35: 0xe0000c87, 0x8d36: 0xe0000c9f, 0x8d37: 0xe0000c9c, - 0x8d38: 0x402f7220, 0x8d39: 0xe0000ccc, 0x8d3a: 0xe0000cc9, 0x8d3b: 0xe0000cd8, - 0x8d3c: 0xe0000cd5, 0x8d3d: 0xe0000cd2, 0x8d3e: 0xe0000ccf, 0x8d3f: 0xe0000d04, - // Block 0x235, offset 0x8d40 - 0x8d40: 0xe0000cfe, 0x8d41: 0xe0000cf8, 0x8d42: 0xe0000cf5, 0x8d43: 0x002ee0a3, - 0x8d44: 0x402ee021, 0x8d45: 0xe0000d6f, 0x8d46: 0xe0000d6c, 0x8d47: 0xe0000d5d, - 0x8d48: 0xe0000d5a, 0x8d49: 0xf0000404, 0x8d4a: 0x002ee083, 0x8d4b: 0x402ee020, - 0x8d4c: 0xe0000e2e, 0x8d4d: 0xe0000e2b, 0x8d4e: 0xe0000da0, 0x8d4f: 0xe0000d9d, - 0x8d50: 0x003210a3, 0x8d51: 0x40321021, 0x8d52: 0x003208a3, 0x8d53: 0x40320821, - 0x8d54: 0xe0000eca, 0x8d55: 0xe0000ec7, 0x8d56: 0xe0000edc, 0x8d57: 0xe0000ed9, - 0x8d58: 0xe0000ed0, 0x8d59: 0xe0000ecd, 0x8d5a: 0xe0000f1f, 0x8d5b: 0xe0000f1c, - 0x8d5c: 0xe0000f2d, 0x8d5d: 0xe0000f2a, 0x8d5e: 0xe0000f47, 0x8d5f: 0xe0000f44, - 0x8d60: 0x00302a83, 0x8d61: 0x40302a20, 0x8d62: 0xe0000f99, 0x8d63: 0xe0000f96, - 0x8d64: 0xe0000f8a, 0x8d65: 0xe0000f87, 0x8d66: 0x00306a83, 0x8d67: 0x40306a20, - 0x8d68: 0xe000102b, 0x8d69: 0xe0001028, 0x8d6a: 0xe000103f, 0x8d6b: 0xe000103c, - 0x8d6c: 0xe0000fe7, 0x8d6d: 0xe0000fe4, 0x8d6e: 0xe0000ff9, 0x8d6f: 0xe0000ff6, - 0x8d70: 0x003100c3, 0x8d71: 0x40310022, 0x8d72: 0xe0001039, 0x8d73: 0xe0001036, - 0x8d74: 0xe00010d8, 0x8d75: 0xe00010d5, 0x8d76: 0xe000110e, 0x8d77: 0xe000110b, - 0x8d78: 0xe0001117, 0x8d79: 0xe000113b, 0x8d7a: 0xe0001138, 0x8d7b: 0xe000114d, - 0x8d7c: 0xe000114a, 0x8d7d: 0x00320683, 0x8d7e: 0x40320620, 0x8d7f: 0xe0000f64, - // Block 0x236, offset 0x8d80 - 0x8d80: 0x402c1a20, 0x8d81: 0x002c2a88, 0x8d82: 0x002c3288, 0x8d83: 0x402c3220, - 0x8d84: 0x0031c488, 0x8d85: 0x4031c420, 0x8d86: 0x002efa88, 0x8d87: 0x002c4e88, - 0x8d88: 0x402c4e20, 0x8d89: 0x002c7288, 0x8d8a: 0x002c7a88, 0x8d8b: 0x002c8488, - 0x8d8c: 0x402c8420, 0x8d8d: 0xe000115c, 0x8d8e: 0x002cae88, 0x8d8f: 0x002cb888, - 0x8d90: 0x002cc288, 0x8d91: 0x002d1688, 0x8d92: 0x402d1620, 0x8d93: 0x002d4488, - 0x8d94: 0x002d5888, 0x8d95: 0x402d7820, 0x8d96: 0x002dc288, 0x8d97: 0x002db688, - 0x8d98: 0x002e0a88, 0x8d99: 0x402e0a20, 0x8d9a: 0x402e3820, 0x8d9b: 0x402e7220, - 0x8d9c: 0x0030a088, 0x8d9d: 0x002eb488, 0x8d9e: 0x402ebc20, 0x8d9f: 0x002f1088, - 0x8da0: 0xe0000e56, 0x8da1: 0xe0000e53, 0x8da2: 0x002d6088, 0x8da3: 0x402d6020, - 0x8da4: 0x002f3e88, 0x8da5: 0x402f3e20, 0x8da6: 0x002f8288, 0x8da7: 0x0031b488, - 0x8da8: 0x4031b420, 0x8da9: 0x00300888, 0x8daa: 0x40301220, 0x8dab: 0x40304220, - 0x8dac: 0x00304a88, 0x8dad: 0x40304a20, 0x8dae: 0x00305288, 0x8daf: 0xe000105f, - 0x8db0: 0xe000105c, 0x8db1: 0x0030b488, 0x8db2: 0x0030cc88, 0x8db3: 0x00311888, - 0x8db4: 0x40311820, 0x8db5: 0x00313488, 0x8db6: 0x40313420, 0x8db7: 0xc41908d1, - 0x8db8: 0x00316e88, 0x8db9: 0x40316e20, 0x8dba: 0x40317820, 0x8dbb: 0x4031a620, - 0x8dbc: 0x0031bc88, 0x8dbd: 0x4031bc20, 0x8dbe: 0xe0000fc9, 0x8dbf: 0x40319420, - // Block 0x237, offset 0x8dc0 - 0x8dc0: 0x40321220, 0x8dc1: 0x40321a20, 0x8dc2: 0x40322220, 0x8dc3: 0x40322a20, - 0x8dc4: 0xe0000ad5, 0x8dc5: 0xe0000ad1, 0x8dc6: 0xe0000acd, 0x8dc7: 0xf0000a0a, - 0x8dc8: 0xf000040a, 0x8dc9: 0xf0000404, 0x8dca: 0xf0000a0a, 0x8dcb: 0xf000040a, - 0x8dcc: 0xf0000404, 0x8dcd: 0xe0000947, 0x8dce: 0xe0000944, 0x8dcf: 0xe0000c3d, - 0x8dd0: 0xe0000c3a, 0x8dd1: 0xe0000dcc, 0x8dd2: 0xe0000dc9, 0x8dd3: 0xe0000ff3, - 0x8dd4: 0xe0000ff0, 0x8dd5: 0xe0002685, 0x8dd6: 0xe0002682, 0x8dd7: 0xe0002673, - 0x8dd8: 0xe0002670, 0x8dd9: 0xe000267f, 0x8dda: 0xe000267c, 0x8ddb: 0xe0002679, - 0x8ddc: 0xe0002676, 0x8ddd: 0x402cae20, 0x8dde: 0xe000274c, 0x8ddf: 0xe0002749, - 0x8de0: 0xe0002697, 0x8de1: 0xe0002694, 0x8de2: 0xe00029c6, 0x8de3: 0xe00029c3, - 0x8de4: 0x002d6683, 0x8de5: 0x402d6620, 0x8de6: 0x002d6483, 0x8de7: 0x402d6420, - 0x8de8: 0x002e2083, 0x8de9: 0x402e2020, 0x8dea: 0x00321103, 0x8deb: 0x40321024, - 0x8dec: 0xe0002a08, 0x8ded: 0xe0002a05, 0x8dee: 0x002c6083, 0x8def: 0x402c6020, - 0x8df0: 0xe0000c8d, 0x8df1: 0xf0000a0a, 0x8df2: 0xf000040a, 0x8df3: 0xf0000404, - 0x8df4: 0xe0000bac, 0x8df5: 0xe0000ba9, 0x8df6: 0x002d7888, 0x8df7: 0x00319488, - 0x8df8: 0xe0000d57, 0x8df9: 0xe0000d54, 0x8dfa: 0xe000268b, 0x8dfb: 0xe0002688, - 0x8dfc: 0xe00029c0, 0x8dfd: 0xe00029bd, 0x8dfe: 0xe00029ba, 0x8dff: 0xe00029b7, - // Block 0x238, offset 0x8e00 - 0x8e00: 0xe000098f, 0x8e01: 0xe000098c, 0x8e02: 0xe0000995, 0x8e03: 0xe0000992, - 0x8e04: 0xe0000b62, 0x8e05: 0xe0000b5f, 0x8e06: 0xe0000b68, 0x8e07: 0xe0000b65, - 0x8e08: 0xe0000c6c, 0x8e09: 0xe0000c69, 0x8e0a: 0xe0000c72, 0x8e0b: 0xe0000c6f, - 0x8e0c: 0xe0000e4a, 0x8e0d: 0xe0000e47, 0x8e0e: 0xe0000e50, 0x8e0f: 0xe0000e4d, - 0x8e10: 0xe0000ee8, 0x8e11: 0xe0000ee5, 0x8e12: 0xe0000eee, 0x8e13: 0xe0000eeb, - 0x8e14: 0xe0001053, 0x8e15: 0xe0001050, 0x8e16: 0xe0001059, 0x8e17: 0xe0001056, - 0x8e18: 0xe0000f61, 0x8e19: 0xe0000f5e, 0x8e1a: 0xe0000fa5, 0x8e1b: 0xe0000fa2, - 0x8e1c: 0x00312288, 0x8e1d: 0x40312220, 0x8e1e: 0xe0000bf4, 0x8e1f: 0xe0000bf1, - 0x8e20: 0x002ebc88, 0x8e21: 0x402c8c20, 0x8e22: 0x002f2288, 0x8e23: 0x402f2220, - 0x8e24: 0x00314088, 0x8e25: 0x40314020, 0x8e26: 0x00320ca3, 0x8e27: 0x40320c21, - 0x8e28: 0xe0000b32, 0x8e29: 0xe0000b2f, 0x8e2a: 0xe0002758, 0x8e2b: 0xe0002755, - 0x8e2c: 0xe00029e4, 0x8e2d: 0xe00029e1, 0x8e2e: 0xe0000e04, 0x8e2f: 0xe0000e01, - 0x8e30: 0xe0000e0b, 0x8e31: 0xe0000e07, 0x8e32: 0xe0001129, 0x8e33: 0xe0001126, - 0x8e34: 0x402e5e20, 0x8e35: 0x402ed020, 0x8e36: 0x40305a20, 0x8e37: 0x402dd420, - 0x8e38: 0xe0000abf, 0x8e39: 0xe0000ec4, 0x8e3a: 0x002be888, 0x8e3b: 0x002c4488, - 0x8e3c: 0x402c4420, 0x8e3d: 0x002e3888, 0x8e3e: 0x00303e88, 0x8e3f: 0x402ffc20, - // Block 0x239, offset 0x8e40 - 0x8e40: 0x402f8220, 0x8e41: 0x402fd820, 0x8e42: 0x402ff420, 0x8e43: 0x40300820, - 0x8e44: 0x402df620, 0x8e45: 0x40301a20, 0x8e46: 0x40302420, 0x8e47: 0x40306420, - 0x8e48: 0x40305220, 0x8e49: 0x40307c20, 0x8e4a: 0x4030b420, 0x8e4b: 0x4030cc20, - 0x8e4c: 0x4030da20, 0x8e4d: 0x4030ee20, 0x8e4e: 0x402e7a20, 0x8e4f: 0x40310820, - 0x8e50: 0x40314820, 0x8e51: 0x40315020, 0x8e52: 0xc41708d1, 0x8e53: 0x40318020, - 0x8e54: 0x4031cc20, 0x8e55: 0x4031e820, 0x8e56: 0x40320a20, 0x8e57: 0x40323220, - 0x8e58: 0x40323a20, 0x8e59: 0x402c1220, 0x8e5a: 0x402cf820, 0x8e5b: 0x402d4c20, - 0x8e5c: 0x402d7020, 0x8e5d: 0x402de620, 0x8e5e: 0x402e1a20, 0x8e5f: 0x402e2a20, - 0x8e60: 0x402f6220, 0x8e61: 0x4031fa20, 0x8e62: 0x40320220, 0x8e63: 0xe0000aca, - 0x8e64: 0xe0000adc, 0x8e65: 0xe0000ad9, 0x8e66: 0xe0000fcc, 0x8e67: 0xe0000fcf, - 0x8e68: 0xe0000fba, 0x8e69: 0xe0000ba1, 0x8e6a: 0xe0000d11, 0x8e6b: 0xe0000d18, - 0x8e6c: 0x40324220, 0x8e6d: 0x40324a20, 0x8e6e: 0x40309020, 0x8e6f: 0x40309820, - 0x8e70: 0x002d6894, 0x8e71: 0x002d8094, 0x8e72: 0x002dcc94, 0x8e73: 0x002f7a94, - 0x8e74: 0x002f9894, 0x8e75: 0x002fac94, 0x8e76: 0x002fd894, 0x8e77: 0x0030e294, - 0x8e78: 0x00310094, 0x8e79: 0x40064020, 0x8e7a: 0x40064420, 0x8e7b: 0x402d9620, - 0x8e7c: 0x4031de20, 0x8e7d: 0x402d9820, 0x8e7e: 0x4031e220, 0x8e7f: 0x4031f020, - // Block 0x23a, offset 0x8e80 - 0x8e80: 0xe0000d24, 0x8e81: 0xe0000d21, 0x8e82: 0xe0000d2a, 0x8e83: 0xe0000d27, - 0x8e84: 0xe0000d69, 0x8e85: 0xe0000d66, 0x8e86: 0xe0000d7b, 0x8e87: 0xe0000d78, - 0x8e88: 0xe0000d87, 0x8e89: 0xe0000d84, 0x8e8a: 0xe0000d81, 0x8e8b: 0xe0000d7e, - 0x8e8c: 0xe00029d8, 0x8e8d: 0xe00029d5, 0x8e8e: 0xe00029de, 0x8e8f: 0xe00029db, - 0x8e90: 0xe0000e3d, 0x8e91: 0xe0000e39, 0x8e92: 0xe0000e35, 0x8e93: 0xe0000e31, - 0x8e94: 0xe0000ea7, 0x8e95: 0xe0000ea4, 0x8e96: 0xe0000ead, 0x8e97: 0xe0000eaa, - 0x8e98: 0xe0000ed6, 0x8e99: 0xe0000ed3, 0x8e9a: 0xe0000ef4, 0x8e9b: 0xe0000ef1, - 0x8e9c: 0xe0000efb, 0x8e9d: 0xe0000ef7, 0x8e9e: 0xe0000f02, 0x8e9f: 0xe0000eff, - 0x8ea0: 0xe0000f41, 0x8ea1: 0xe0000f3e, 0x8ea2: 0xe0000f53, 0x8ea3: 0xe0000f50, - 0x8ea4: 0xe0000f26, 0x8ea5: 0xe0000f22, 0x8ea6: 0xe00029b4, 0x8ea7: 0xe00029b1, - 0x8ea8: 0xe0000f5a, 0x8ea9: 0xe0000f56, 0x8eaa: 0xe0000f93, 0x8eab: 0xe0000f90, - 0x8eac: 0xe0000f9f, 0x8ead: 0xe0000f9c, 0x8eae: 0xe0000fb1, 0x8eaf: 0xe0000fae, - 0x8eb0: 0xe0000fab, 0x8eb1: 0xe0000fa8, 0x8eb2: 0xe0001093, 0x8eb3: 0xe0001090, - 0x8eb4: 0xe000109f, 0x8eb5: 0xe000109c, 0x8eb6: 0xe0001099, 0x8eb7: 0xe0001096, - 0x8eb8: 0xe0001032, 0x8eb9: 0xe000102e, 0x8eba: 0xe0002685, 0x8ebb: 0xe0002682, - 0x8ebc: 0xe00010a9, 0x8ebd: 0xe00010a6, 0x8ebe: 0xe00010af, 0x8ebf: 0xe00010ac, - // Block 0x23b, offset 0x8ec0 - 0x8ec0: 0xe00010d2, 0x8ec1: 0xe00010cf, 0x8ec2: 0xe00010cc, 0x8ec3: 0xe00010c9, - 0x8ec4: 0xe00010e1, 0x8ec5: 0xe00010de, 0x8ec6: 0xe00010e7, 0x8ec7: 0xe00010e4, - 0x8ec8: 0xe00010ed, 0x8ec9: 0xe00010ea, 0x8eca: 0xe00010fc, 0x8ecb: 0xe00010f9, - 0x8ecc: 0xe00010f6, 0x8ecd: 0xe00010f3, 0x8ece: 0xe0001123, 0x8ecf: 0xe0001120, - 0x8ed0: 0xe0001141, 0x8ed1: 0xe000113e, 0x8ed2: 0xe0001153, 0x8ed3: 0xe0001150, - 0x8ed4: 0xe0001159, 0x8ed5: 0xe0001156, 0x8ed6: 0xe0000c15, 0x8ed7: 0xe0000f8d, - 0x8ed8: 0xe00010db, 0x8ed9: 0xe0001111, 0x8eda: 0xf0000404, 0x8edb: 0xe0000f70, - 0x8edc: 0x40300420, 0x8edd: 0x40300620, 0x8ede: 0xe0000f7f, 0x8edf: 0x402c9620, - 0x8ee0: 0xe000099b, 0x8ee1: 0xe0000998, 0x8ee2: 0xe0000989, 0x8ee3: 0xe0000986, - 0x8ee4: 0xe0002791, 0x8ee5: 0xe000278e, 0x8ee6: 0xe0000930, 0x8ee7: 0xe000092c, - 0x8ee8: 0xe0000940, 0x8ee9: 0xe000093c, 0x8eea: 0xe00029d2, 0x8eeb: 0xe00029cf, - 0x8eec: 0xe00009aa, 0x8eed: 0xe00009a6, 0x8eee: 0xe000278b, 0x8eef: 0xe0002788, - 0x8ef0: 0xe000090a, 0x8ef1: 0xe0000906, 0x8ef2: 0xe000091a, 0x8ef3: 0xe0000916, - 0x8ef4: 0xe00029cc, 0x8ef5: 0xe00029c9, 0x8ef6: 0xe00009a2, 0x8ef7: 0xe000099e, - 0x8ef8: 0xe0000b6e, 0x8ef9: 0xe0000b6b, 0x8efa: 0xe0000b5c, 0x8efb: 0xe0000b59, - 0x8efc: 0xe0000b26, 0x8efd: 0xe0000b23, 0x8efe: 0xe0000afb, 0x8eff: 0xe0000af7, - // Block 0x23c, offset 0x8f00 - 0x8f00: 0xe0000b03, 0x8f01: 0xe0000aff, 0x8f02: 0xe0000b13, 0x8f03: 0xe0000b0f, - 0x8f04: 0xe0000b0b, 0x8f05: 0xe0000b07, 0x8f06: 0xe0000b75, 0x8f07: 0xe0000b71, - 0x8f08: 0xe0000c66, 0x8f09: 0xe0000c63, 0x8f0a: 0xe0000c78, 0x8f0b: 0xe0000c75, - 0x8f0c: 0xe0000e84, 0x8f0d: 0xe0000e81, 0x8f0e: 0xe0000e44, 0x8f0f: 0xe0000e41, - 0x8f10: 0xe0002764, 0x8f11: 0xe0002761, 0x8f12: 0xe00029f0, 0x8f13: 0xe00029ed, - 0x8f14: 0xe00029fc, 0x8f15: 0xe00029f9, 0x8f16: 0xe00029f6, 0x8f17: 0xe00029f3, - 0x8f18: 0xe0002a02, 0x8f19: 0xe00029ff, 0x8f1a: 0xe0000e5d, 0x8f1b: 0xe0000e59, - 0x8f1c: 0xe0000e65, 0x8f1d: 0xe0000e61, 0x8f1e: 0xe0000e75, 0x8f1f: 0xe0000e71, - 0x8f20: 0xe00029ea, 0x8f21: 0xe00029e7, 0x8f22: 0xe0000e7d, 0x8f23: 0xe0000e79, - 0x8f24: 0xe000108d, 0x8f25: 0xe000108a, 0x8f26: 0xe000104d, 0x8f27: 0xe000104a, - 0x8f28: 0xe0001066, 0x8f29: 0xe0001062, 0x8f2a: 0xe000106e, 0x8f2b: 0xe000106a, - 0x8f2c: 0xe000107e, 0x8f2d: 0xe000107a, 0x8f2e: 0xe0001076, 0x8f2f: 0xe0001072, - 0x8f30: 0xe0001086, 0x8f31: 0xe0001082, 0x8f32: 0xe0001108, 0x8f33: 0xe0001105, - 0x8f34: 0xe0001135, 0x8f35: 0xe0001132, 0x8f36: 0xe000112f, 0x8f37: 0xe000112c, - 0x8f38: 0xe000111d, 0x8f39: 0xe000111a, 0x8f3a: 0xe0000d0a, 0x8f3b: 0xe0000d07, - 0x8f3c: 0x0030d888, 0x8f3d: 0x4030d820, 0x8f3e: 0x00312088, 0x8f3f: 0x40312020, - // Block 0x23d, offset 0x8f40 - 0x8f40: 0xa0000000, 0x8f41: 0xa0000000, 0x8f42: 0xa0000000, 0x8f43: 0xa0000000, - 0x8f44: 0xa0000000, 0x8f45: 0xa0000000, 0x8f46: 0xa0000000, 0x8f47: 0xa0000000, - 0x8f48: 0xa0000000, 0x8f49: 0x40020020, 0x8f4a: 0x40020220, 0x8f4b: 0x40020420, - 0x8f4c: 0x40020620, 0x8f4d: 0x40020820, 0x8f4e: 0xa0000000, 0x8f4f: 0xa0000000, - 0x8f50: 0xa0000000, 0x8f51: 0xa0000000, 0x8f52: 0xa0000000, 0x8f53: 0xa0000000, - 0x8f54: 0xa0000000, 0x8f55: 0xa0000000, 0x8f56: 0xa0000000, 0x8f57: 0xa0000000, - 0x8f58: 0xa0000000, 0x8f59: 0xa0000000, 0x8f5a: 0xa0000000, 0x8f5b: 0xa0000000, - 0x8f5c: 0xa0000000, 0x8f5d: 0xa0000000, 0x8f5e: 0xa0000000, 0x8f5f: 0xa0000000, - 0x8f60: 0x40021220, 0x8f61: 0x4002ba20, 0x8f62: 0x4003e020, 0x8f63: 0x4004ea20, - 0x8f64: 0x4027de20, 0x8f65: 0x4004ec20, 0x8f66: 0x4004e620, 0x8f67: 0x4003d220, - 0x8f68: 0x4003f420, 0x8f69: 0x4003f620, 0x8f6a: 0x4004d820, 0x8f6b: 0x40093820, - 0x8f6c: 0x40024020, 0x8f6d: 0x40021a20, 0x8f6e: 0x4002e420, 0x8f6f: 0x4004e220, - 0x8f70: 0x4029cc20, 0x8f71: 0x4029ce20, 0x8f72: 0x4029d020, 0x8f73: 0x4029d220, - 0x8f74: 0x4029d420, 0x8f75: 0x4029d620, 0x8f76: 0x4029d820, 0x8f77: 0x4029da20, - 0x8f78: 0x4029dc20, 0x8f79: 0x4029de20, 0x8f7a: 0x40026c20, 0x8f7b: 0x40026220, - 0x8f7c: 0x40094020, 0x8f7d: 0xc32f0851, 0x8f7e: 0x40094420, 0x8f7f: 0x4002c420, - // Block 0x23e, offset 0x8f80 - 0x8f80: 0x4004d620, 0x8f81: 0xc4400cb1, 0x8f82: 0x002c0a88, 0x8f83: 0xc33308d1, - 0x8f84: 0xc35b08d1, 0x8f85: 0xc36008f1, 0x8f86: 0x002d0888, 0x8f87: 0x002d2288, - 0x8f88: 0x002d6888, 0x8f89: 0xc36508b1, 0x8f8a: 0x002dcc88, 0x8f8b: 0x002dfe88, - 0x8f8c: 0xc4480eb3, 0x8f8d: 0x002e8288, 0x8f8e: 0xc36908d1, 0x8f8f: 0xc4500f21, - 0x8f90: 0x002f2c88, 0x8f91: 0x002f5688, 0x8f92: 0xc45608f1, 0x8f93: 0xc34108d1, - 0x8f94: 0xc37108d1, 0x8f95: 0xc3760921, 0x8f96: 0x0030be88, 0x8f97: 0x0030e288, - 0x8f98: 0x0030f688, 0x8f99: 0xc37b08b1, 0x8f9a: 0xc37f08d1, 0x8f9b: 0x4003f820, - 0x8f9c: 0x4004e420, 0x8f9d: 0x4003fa20, 0x8f9e: 0x40062420, 0x8f9f: 0x40021620, - 0x8fa0: 0x40061e20, 0x8fa1: 0xc43d0cb1, 0x8fa2: 0x402c0a20, 0x8fa3: 0xc33108d1, - 0x8fa4: 0xc35908d1, 0x8fa5: 0xc35d08f1, 0x8fa6: 0x402d0820, 0x8fa7: 0x402d2220, - 0x8fa8: 0x402d6820, 0x8fa9: 0xc36308b1, 0x8faa: 0x402dcc20, 0x8fab: 0x402dfe20, - 0x8fac: 0xc4430eb3, 0x8fad: 0x402e8220, 0x8fae: 0xc36708d1, 0x8faf: 0xc44d0f21, - 0x8fb0: 0x402f2c20, 0x8fb1: 0x402f5620, 0x8fb2: 0xc45308f1, 0x8fb3: 0xc33f08d1, - 0x8fb4: 0xc36f08d1, 0x8fb5: 0xc3730921, 0x8fb6: 0x4030be20, 0x8fb7: 0x4030e220, - 0x8fb8: 0x4030f620, 0x8fb9: 0xc37908b1, 0x8fba: 0xc37d08d1, 0x8fbb: 0x4003fc20, - 0x8fbc: 0x40094820, 0x8fbd: 0x4003fe20, 0x8fbe: 0x40094c20, 0x8fbf: 0xa0000000, - // Block 0x23f, offset 0x8fc0 - 0x8fc0: 0xe00008f5, 0x8fc1: 0x002be083, 0x8fc2: 0xe0000921, 0x8fc3: 0xe0000969, - 0x8fc4: 0x002be283, 0x8fc5: 0xe000094d, 0x8fc6: 0xe00009dd, 0x8fc7: 0xe0000a53, - 0x8fc8: 0xe0000ae8, 0x8fc9: 0x002c9a83, 0x8fca: 0xe0000af4, 0x8fcb: 0xe0000b20, - 0x8fcc: 0xe0000c2b, 0x8fcd: 0x002d9c83, 0x8fce: 0xe0000c37, 0x8fcf: 0xe0000c43, - 0x8fd0: 0xe0000ab3, 0x8fd1: 0xe0000d63, 0x8fd2: 0xe0000d9a, 0x8fd3: 0x002ee483, - 0x8fd4: 0x002ee683, 0x8fd5: 0xe0000de6, 0x8fd6: 0xe0000dd2, 0x8fd7: 0x40093e20, - 0x8fd8: 0xe0000e12, 0x8fd9: 0xe0000fe1, 0x8fda: 0x00306e83, 0x8fdb: 0xe0000fed, - 0x8fdc: 0xe0000fff, 0x8fdd: 0x00310283, 0x8fde: 0x00318888, 0x8fdf: 0xe0000f7b, - 0x8fe0: 0xe00008f2, 0x8fe1: 0x402be020, 0x8fe2: 0xe000091e, 0x8fe3: 0xe0000966, - 0x8fe4: 0x402be220, 0x8fe5: 0xe000094a, 0x8fe6: 0xe00009d5, 0x8fe7: 0xe0000a4d, - 0x8fe8: 0xe0000ae5, 0x8fe9: 0x402c9a20, 0x8fea: 0xe0000af1, 0x8feb: 0xe0000b1d, - 0x8fec: 0xe0000c28, 0x8fed: 0x402d9c20, 0x8fee: 0xe0000c34, 0x8fef: 0xe0000c40, - 0x8ff0: 0xe0000aad, 0x8ff1: 0xe0000d60, 0x8ff2: 0xe0000d97, 0x8ff3: 0x402ee420, - 0x8ff4: 0x402ee620, 0x8ff5: 0xe0000de3, 0x8ff6: 0xe0000dcf, 0x8ff7: 0x40093c20, - 0x8ff8: 0xe0000e0f, 0x8ff9: 0xe0000fde, 0x8ffa: 0x40306e20, 0x8ffb: 0xe0000fea, - 0x8ffc: 0xe0000ffc, 0x8ffd: 0x40310220, 0x8ffe: 0x40318820, 0x8fff: 0xe0001114, - // Block 0x240, offset 0x9000 - 0x9000: 0xe0000983, 0x9001: 0xe0000980, 0x9002: 0xe00008fb, 0x9003: 0xe00008f8, - 0x9004: 0xe000097d, 0x9005: 0xe000097a, 0x9006: 0xe0000a38, 0x9007: 0xe0000a35, - 0x9008: 0xe0000a3e, 0x9009: 0xe0000a3b, 0x900a: 0xe0000a4a, 0x900b: 0xe0000a47, - 0x900c: 0x002c3c83, 0x900d: 0x402c3c20, 0x900e: 0x002c6483, 0x900f: 0x402c6420, - 0x9010: 0xe0000aaa, 0x9011: 0xe0000aa7, 0x9012: 0xe0000b46, 0x9013: 0xe0000b43, - 0x9014: 0xe0000aee, 0x9015: 0xe0000aeb, 0x9016: 0xe0000b2c, 0x9017: 0xe0000b29, - 0x9018: 0xe0000b40, 0x9019: 0xe0000b3d, 0x901a: 0x002c9c83, 0x901b: 0x402c9c20, - 0x901c: 0xe0000bb8, 0x901d: 0xe0000bb5, 0x901e: 0xe0000bb2, 0x901f: 0xe0000baf, - 0x9020: 0xe0000bc4, 0x9021: 0xe0000bc1, 0x9022: 0xe0000bca, 0x9023: 0xe0000bc7, - 0x9024: 0xe0000bee, 0x9025: 0xe0000beb, 0x9026: 0xe0000c1b, 0x9027: 0xe0000c18, - 0x9028: 0xe0000c51, 0x9029: 0xe0000c4e, 0x902a: 0xe0000c60, 0x902b: 0xe0000c5d, - 0x902c: 0xe0000c31, 0x902d: 0xe0000c2e, 0x902e: 0xe0000c5a, 0x902f: 0xe0000c57, - 0x9030: 0xe0000c54, 0x9031: 0x402da220, 0x9032: 0xf0000a0a, 0x9033: 0xf0000404, - 0x9034: 0xe0000c8a, 0x9035: 0xe0000c87, 0x9036: 0xe0000c9f, 0x9037: 0xe0000c9c, - 0x9038: 0x402f7220, 0x9039: 0x002e2483, 0x903a: 0x402e2420, 0x903b: 0xe0000cd8, - 0x903c: 0xe0000cd5, 0x903d: 0x002e2683, 0x903e: 0x402e2620, 0x903f: 0xe0000d04, - // Block 0x241, offset 0x9040 - 0x9040: 0xe0000cfe, 0x9041: 0xe0000cf8, 0x9042: 0xe0000cf5, 0x9043: 0xe0000d51, - 0x9044: 0xe0000d4e, 0x9045: 0xe0000d6f, 0x9046: 0xe0000d6c, 0x9047: 0x002ea083, - 0x9048: 0x402ea020, 0x9049: 0xf0000404, 0x904a: 0x002eda88, 0x904b: 0x402eda20, - 0x904c: 0xe0000e2e, 0x904d: 0xe0000e2b, 0x904e: 0xe0000da0, 0x904f: 0xe0000d9d, - 0x9050: 0xe0000de0, 0x9051: 0xe0000ddd, 0x9052: 0xe0000e93, 0x9053: 0xe0000e8f, - 0x9054: 0x002f7c83, 0x9055: 0x402f7c20, 0x9056: 0xe0000edc, 0x9057: 0xe0000ed9, - 0x9058: 0x002f7e83, 0x9059: 0x402f7e20, 0x905a: 0xe0000f1f, 0x905b: 0xe0000f1c, - 0x905c: 0xe0000f2d, 0x905d: 0xe0000f2a, 0x905e: 0xe0000f47, 0x905f: 0xe0000f44, - 0x9060: 0x002fe883, 0x9061: 0x402fe820, 0x9062: 0xe0000f99, 0x9063: 0xe0000f96, - 0x9064: 0x00302e83, 0x9065: 0x40302e20, 0x9066: 0x00303688, 0x9067: 0x40303620, - 0x9068: 0xe000102b, 0x9069: 0xe0001028, 0x906a: 0xe000103f, 0x906b: 0xe000103c, - 0x906c: 0xe0000fe7, 0x906d: 0xe0000fe4, 0x906e: 0x00307083, 0x906f: 0x40307020, - 0x9070: 0xe0001025, 0x9071: 0xe0001022, 0x9072: 0xe0001039, 0x9073: 0xe0001036, - 0x9074: 0xe00010d8, 0x9075: 0xe00010d5, 0x9076: 0xe000110e, 0x9077: 0xe000110b, - 0x9078: 0xe0001117, 0x9079: 0xe000113b, 0x907a: 0xe0001138, 0x907b: 0xe000114d, - 0x907c: 0xe000114a, 0x907d: 0x00312c83, 0x907e: 0x40312c20, 0x907f: 0xe0000f64, - // Block 0x242, offset 0x9080 - 0x9080: 0x40321220, 0x9081: 0x40321a20, 0x9082: 0x40322220, 0x9083: 0x40322a20, - 0x9084: 0xe0000ad5, 0x9085: 0xe0000ad1, 0x9086: 0xe0000acd, 0x9087: 0xf0000a0a, - 0x9088: 0xf000040a, 0x9089: 0xf0000404, 0x908a: 0xf0000a0a, 0x908b: 0xf000040a, - 0x908c: 0xf0000404, 0x908d: 0xe0000947, 0x908e: 0xe0000944, 0x908f: 0xe0000c3d, - 0x9090: 0xe0000c3a, 0x9091: 0xe0000dcc, 0x9092: 0xe0000dc9, 0x9093: 0xe0000ff3, - 0x9094: 0xe0000ff0, 0x9095: 0xe000101e, 0x9096: 0xe000101a, 0x9097: 0xe0002658, - 0x9098: 0xe0002655, 0x9099: 0xe0001016, 0x909a: 0xe0001012, 0x909b: 0xe000100e, - 0x909c: 0xe000100a, 0x909d: 0x402cae20, 0x909e: 0xe0002a0e, 0x909f: 0xe0002a0b, - 0x90a0: 0xe0000976, 0x90a1: 0xe0000972, 0x90a2: 0xe00009f4, 0x90a3: 0xe00009ef, - 0x90a4: 0x002d3a88, 0x90a5: 0x402d3a20, 0x90a6: 0xe0000bbe, 0x90a7: 0xe0000bbb, - 0x90a8: 0xe0000c99, 0x90a9: 0xe0000c96, 0x90aa: 0xe0000e20, 0x90ab: 0xe0000e1d, - 0x90ac: 0xe0000e27, 0x90ad: 0xe0000e23, 0x90ae: 0xe0001162, 0x90af: 0xe000115f, - 0x90b0: 0xe0000c8d, 0x90b1: 0xf0000a0a, 0x90b2: 0xf000040a, 0x90b3: 0xf0000404, - 0x90b4: 0xe0000bac, 0x90b5: 0xe0000ba9, 0x90b6: 0x002d7888, 0x90b7: 0x00319488, - 0x90b8: 0xe0000d57, 0x90b9: 0xe0000d54, 0x90ba: 0xe000262e, 0x90bb: 0xe000262b, - 0x90bc: 0xe00009ea, 0x90bd: 0xe00009e5, 0x90be: 0xe0000e19, 0x90bf: 0xe0000e15, - // Block 0x243, offset 0x90c0 - 0x90c0: 0xe0000b03, 0x90c1: 0xe0000aff, 0x90c2: 0xe0000b13, 0x90c3: 0xe0000b0f, - 0x90c4: 0xe0000b0b, 0x90c5: 0xe0000b07, 0x90c6: 0xe0000b75, 0x90c7: 0xe0000b71, - 0x90c8: 0xe0000c66, 0x90c9: 0xe0000c63, 0x90ca: 0xe0000c78, 0x90cb: 0xe0000c75, - 0x90cc: 0xe0000e84, 0x90cd: 0xe0000e81, 0x90ce: 0xe0000e44, 0x90cf: 0xe0000e41, - 0x90d0: 0xe0002a14, 0x90d1: 0xe0002a11, 0x90d2: 0xe0002a1a, 0x90d3: 0xe0002a17, - 0x90d4: 0xe0002a26, 0x90d5: 0xe0002a23, 0x90d6: 0xe0002a20, 0x90d7: 0xe0002a1d, - 0x90d8: 0xe0002a2c, 0x90d9: 0xe0002a29, 0x90da: 0xe000264c, 0x90db: 0xe0002649, - 0x90dc: 0xe0000e65, 0x90dd: 0xe0000e61, 0x90de: 0xe0000e75, 0x90df: 0xe0000e71, - 0x90e0: 0xe0000e6d, 0x90e1: 0xe0000e69, 0x90e2: 0xe0000e7d, 0x90e3: 0xe0000e79, - 0x90e4: 0xe000108d, 0x90e5: 0xe000108a, 0x90e6: 0xe000104d, 0x90e7: 0xe000104a, - 0x90e8: 0xe0002664, 0x90e9: 0xe0002661, 0x90ea: 0xe000106e, 0x90eb: 0xe000106a, - 0x90ec: 0xe000107e, 0x90ed: 0xe000107a, 0x90ee: 0xe0001076, 0x90ef: 0xe0001072, - 0x90f0: 0xe0001086, 0x90f1: 0xe0001082, 0x90f2: 0xe0001108, 0x90f3: 0xe0001105, - 0x90f4: 0xe0001135, 0x90f5: 0xe0001132, 0x90f6: 0xe000112f, 0x90f7: 0xe000112c, - 0x90f8: 0xe000111d, 0x90f9: 0xe000111a, 0x90fa: 0xe0000d0a, 0x90fb: 0xe0000d07, - 0x90fc: 0x0030d888, 0x90fd: 0x4030d820, 0x90fe: 0x00312088, 0x90ff: 0x40312020, - // Block 0x244, offset 0x9100 - 0x9100: 0xa0000000, 0x9101: 0xa0000000, 0x9102: 0xa0000000, 0x9103: 0xa0000000, - 0x9104: 0xa0000000, 0x9105: 0xa0000000, 0x9106: 0xa0000000, 0x9107: 0xa0000000, - 0x9108: 0xa0000000, 0x9109: 0x40020020, 0x910a: 0x40020220, 0x910b: 0x40020420, - 0x910c: 0x40020620, 0x910d: 0x40020820, 0x910e: 0xa0000000, 0x910f: 0xa0000000, - 0x9110: 0xa0000000, 0x9111: 0xa0000000, 0x9112: 0xa0000000, 0x9113: 0xa0000000, - 0x9114: 0xa0000000, 0x9115: 0xa0000000, 0x9116: 0xa0000000, 0x9117: 0xa0000000, - 0x9118: 0xa0000000, 0x9119: 0xa0000000, 0x911a: 0xa0000000, 0x911b: 0xa0000000, - 0x911c: 0xa0000000, 0x911d: 0xa0000000, 0x911e: 0xa0000000, 0x911f: 0xa0000000, - 0x9120: 0x40021220, 0x9121: 0x4002ba20, 0x9122: 0x4003e020, 0x9123: 0x4004ea20, - 0x9124: 0x4027de20, 0x9125: 0x4004ec20, 0x9126: 0x4004e620, 0x9127: 0x4003d220, - 0x9128: 0x4003f420, 0x9129: 0x4003f620, 0x912a: 0x4004d820, 0x912b: 0x40093820, - 0x912c: 0x40024020, 0x912d: 0x40021a20, 0x912e: 0x4002e420, 0x912f: 0x4004e220, - 0x9130: 0x4029cc20, 0x9131: 0x4029ce20, 0x9132: 0x4029d020, 0x9133: 0x4029d220, - 0x9134: 0x4029d420, 0x9135: 0x4029d620, 0x9136: 0x4029d820, 0x9137: 0x4029da20, - 0x9138: 0x4029dc20, 0x9139: 0x4029de20, 0x913a: 0x40026c20, 0x913b: 0x40026220, - 0x913c: 0x40094020, 0x913d: 0xc32f0851, 0x913e: 0x40094420, 0x913f: 0x4002c420, - // Block 0x245, offset 0x9140 - 0x9140: 0x4004d620, 0x9141: 0xc3a90a51, 0x9142: 0x002c0a88, 0x9143: 0x002c3a88, - 0x9144: 0x002c6288, 0x9145: 0xc45b0a11, 0x9146: 0x002d0888, 0x9147: 0x002d2288, - 0x9148: 0x002d6888, 0x9149: 0x002d9a88, 0x914a: 0x002dcc88, 0x914b: 0x002dfe88, - 0x914c: 0xc0030002, 0x914d: 0x002e8288, 0x914e: 0x002e9e88, 0x914f: 0xc4610f41, - 0x9150: 0x002f2c88, 0x9151: 0x002f5688, 0x9152: 0x002f7a88, 0x9153: 0x002fe688, - 0x9154: 0x00302c88, 0x9155: 0xc3840951, 0x9156: 0x0030be83, 0x9157: 0x0030bea3, - 0x9158: 0x0030f688, 0x9159: 0x00310088, 0x915a: 0x00312a88, 0x915b: 0x4003f820, - 0x915c: 0x4004e420, 0x915d: 0x4003fa20, 0x915e: 0x40062420, 0x915f: 0x40021620, - 0x9160: 0x40061e20, 0x9161: 0xc3a60a51, 0x9162: 0x402c0a20, 0x9163: 0x402c3a20, - 0x9164: 0x402c6220, 0x9165: 0xc4590a11, 0x9166: 0x402d0820, 0x9167: 0x402d2220, - 0x9168: 0x402d6820, 0x9169: 0x402d9a20, 0x916a: 0x402dcc20, 0x916b: 0x402dfe20, - 0x916c: 0xc0000002, 0x916d: 0x402e8220, 0x916e: 0x402e9e20, 0x916f: 0xc45d0f41, - 0x9170: 0x402f2c20, 0x9171: 0x402f5620, 0x9172: 0x402f7a20, 0x9173: 0x402fe620, - 0x9174: 0x40302c20, 0x9175: 0xc3810951, 0x9176: 0x4030be20, 0x9177: 0x4030be21, - 0x9178: 0x4030f620, 0x9179: 0x40310020, 0x917a: 0x40312a20, 0x917b: 0x4003fc20, - 0x917c: 0x40094820, 0x917d: 0x4003fe20, 0x917e: 0x40094c20, 0x917f: 0xa0000000, - // Block 0x246, offset 0x9180 - 0x9180: 0xe00008f5, 0x9181: 0xe00008ef, 0x9182: 0xe0000921, 0x9183: 0xe0000969, - 0x9184: 0x00320e83, 0x9185: 0x00320c83, 0x9186: 0x00320ea3, 0x9187: 0xe0000a53, - 0x9188: 0xe0000ae8, 0x9189: 0xe0000ae2, 0x918a: 0xe0000af4, 0x918b: 0xe0000b20, - 0x918c: 0xe0000c2b, 0x918d: 0xe0000c25, 0x918e: 0xe0000c37, 0x918f: 0xe0000c43, - 0x9190: 0x002c62c3, 0x9191: 0xe0000d63, 0x9192: 0xe0000d9a, 0x9193: 0xe0000d94, - 0x9194: 0x00321103, 0x9195: 0xe0000de6, 0x9196: 0x00321083, 0x9197: 0x40093e20, - 0x9198: 0x003210a3, 0x9199: 0xe0000fe1, 0x919a: 0xe0000fdb, 0x919b: 0xe0000fed, - 0x919c: 0x003100a3, 0x919d: 0xe0001102, 0x919e: 0xe000266d, 0x919f: 0xe0000f7b, - 0x91a0: 0xe00008f2, 0x91a1: 0xe00008ec, 0x91a2: 0xe000091e, 0x91a3: 0xe0000966, - 0x91a4: 0x40320e20, 0x91a5: 0x40320c20, 0x91a6: 0x40320e21, 0x91a7: 0xe0000a4d, - 0x91a8: 0xe0000ae5, 0x91a9: 0xe0000adf, 0x91aa: 0xe0000af1, 0x91ab: 0xe0000b1d, - 0x91ac: 0xe0000c28, 0x91ad: 0xe0000c22, 0x91ae: 0xe0000c34, 0x91af: 0xe0000c40, - 0x91b0: 0x402c6222, 0x91b1: 0xe0000d60, 0x91b2: 0xe0000d97, 0x91b3: 0xe0000d91, - 0x91b4: 0x40321024, 0x91b5: 0xe0000de3, 0x91b6: 0x40321020, 0x91b7: 0x40093c20, - 0x91b8: 0x40321021, 0x91b9: 0xe0000fde, 0x91ba: 0xe0000fd8, 0x91bb: 0xe0000fea, - 0x91bc: 0x40310021, 0x91bd: 0xe00010ff, 0x91be: 0xe000266a, 0x91bf: 0xe0001114, - // Block 0x247, offset 0x91c0 - 0x91c0: 0xe0000983, 0x91c1: 0xe0000980, 0x91c2: 0xe00008fb, 0x91c3: 0xe00008f8, - 0x91c4: 0xe000097d, 0x91c5: 0xe000097a, 0x91c6: 0xe0000a38, 0x91c7: 0xe0000a35, - 0x91c8: 0xe0000a3e, 0x91c9: 0xe0000a3b, 0x91ca: 0xe0000a4a, 0x91cb: 0xe0000a47, - 0x91cc: 0xe0000a44, 0x91cd: 0xe0000a41, 0x91ce: 0xe0000a86, 0x91cf: 0xe0000a83, - 0x91d0: 0x002c62a3, 0x91d1: 0x402c6221, 0x91d2: 0xe0000b46, 0x91d3: 0xe0000b43, - 0x91d4: 0xe0000aee, 0x91d5: 0xe0000aeb, 0x91d6: 0xe0000b2c, 0x91d7: 0xe0000b29, - 0x91d8: 0x00320ec3, 0x91d9: 0x40320e22, 0x91da: 0xe0000b1a, 0x91db: 0xe0000b17, - 0x91dc: 0xe0000bb8, 0x91dd: 0xe0000bb5, 0x91de: 0xe0000bb2, 0x91df: 0xe0000baf, - 0x91e0: 0xe0000bc4, 0x91e1: 0xe0000bc1, 0x91e2: 0xe0000bca, 0x91e3: 0xe0000bc7, - 0x91e4: 0xe0000bee, 0x91e5: 0xe0000beb, 0x91e6: 0xe0000c1b, 0x91e7: 0xe0000c18, - 0x91e8: 0xe0000c51, 0x91e9: 0xe0000c4e, 0x91ea: 0xe0000c60, 0x91eb: 0xe0000c5d, - 0x91ec: 0xe0000c31, 0x91ed: 0xe0000c2e, 0x91ee: 0xe0000c5a, 0x91ef: 0xe0000c57, - 0x91f0: 0xe0000c54, 0x91f1: 0x402da220, 0x91f2: 0xf0000a0a, 0x91f3: 0xf0000404, - 0x91f4: 0xe0000c8a, 0x91f5: 0xe0000c87, 0x91f6: 0xe0000c9f, 0x91f7: 0xe0000c9c, - 0x91f8: 0x402f7220, 0x91f9: 0xe0000ccc, 0x91fa: 0xe0000cc9, 0x91fb: 0xe0000cd8, - 0x91fc: 0xe0000cd5, 0x91fd: 0xe0000cd2, 0x91fe: 0xe0000ccf, 0x91ff: 0xe0000d04, - // Block 0x248, offset 0x9200 - 0x9200: 0xe0000cfe, 0x9201: 0xe0000cf8, 0x9202: 0xe0000cf5, 0x9203: 0xe0000d51, - 0x9204: 0xe0000d4e, 0x9205: 0xe0000d6f, 0x9206: 0xe0000d6c, 0x9207: 0xe0000d5d, - 0x9208: 0xe0000d5a, 0x9209: 0xf0000404, 0x920a: 0x002eda88, 0x920b: 0x402eda20, - 0x920c: 0xe0000e2e, 0x920d: 0xe0000e2b, 0x920e: 0xe0000da0, 0x920f: 0xe0000d9d, - 0x9210: 0x003210c3, 0x9211: 0x40321022, 0x9212: 0x003210e3, 0x9213: 0x40321023, - 0x9214: 0xe0000eca, 0x9215: 0xe0000ec7, 0x9216: 0xe0000edc, 0x9217: 0xe0000ed9, - 0x9218: 0xe0000ed0, 0x9219: 0xe0000ecd, 0x921a: 0xe0000f1f, 0x921b: 0xe0000f1c, - 0x921c: 0xe0000f2d, 0x921d: 0xe0000f2a, 0x921e: 0xe0000f47, 0x921f: 0xe0000f44, - 0x9220: 0xe0000f33, 0x9221: 0xe0000f30, 0x9222: 0xe0000f99, 0x9223: 0xe0000f96, - 0x9224: 0xe0000f8a, 0x9225: 0xe0000f87, 0x9226: 0x00303688, 0x9227: 0x40303620, - 0x9228: 0xe000102b, 0x9229: 0xe0001028, 0x922a: 0xe000103f, 0x922b: 0xe000103c, - 0x922c: 0xe0000fe7, 0x922d: 0xe0000fe4, 0x922e: 0xe0000ff9, 0x922f: 0xe0000ff6, - 0x9230: 0x003100c3, 0x9231: 0x40310022, 0x9232: 0xe0001039, 0x9233: 0xe0001036, - 0x9234: 0xe0002728, 0x9235: 0xe0002725, 0x9236: 0xe000110e, 0x9237: 0xe000110b, - 0x9238: 0xe0001117, 0x9239: 0xe000113b, 0x923a: 0xe0001138, 0x923b: 0xe000114d, - 0x923c: 0xe000114a, 0x923d: 0xe0001147, 0x923e: 0xe0001144, 0x923f: 0xe0000f64, - // Block 0x249, offset 0x9240 - 0x9240: 0xe000098f, 0x9241: 0xe000098c, 0x9242: 0xe0000995, 0x9243: 0xe0000992, - 0x9244: 0xe0000b62, 0x9245: 0xe0000b5f, 0x9246: 0xe0000b68, 0x9247: 0xe0000b65, - 0x9248: 0xe0000c6c, 0x9249: 0xe0000c69, 0x924a: 0xe0000c72, 0x924b: 0xe0000c6f, - 0x924c: 0xe0000e4a, 0x924d: 0xe0000e47, 0x924e: 0xe0000e50, 0x924f: 0xe0000e4d, - 0x9250: 0xe0000ee8, 0x9251: 0xe0000ee5, 0x9252: 0xe0000eee, 0x9253: 0xe0000eeb, - 0x9254: 0xe0001053, 0x9255: 0xe0001050, 0x9256: 0xe0001059, 0x9257: 0xe0001056, - 0x9258: 0xe0000f61, 0x9259: 0xe0000f5e, 0x925a: 0xe0000fa5, 0x925b: 0xe0000fa2, - 0x925c: 0x00312288, 0x925d: 0x40312220, 0x925e: 0xe0000bf4, 0x925f: 0xe0000bf1, - 0x9260: 0x002ebc88, 0x9261: 0x402c8c20, 0x9262: 0x002f2288, 0x9263: 0x402f2220, - 0x9264: 0x00314088, 0x9265: 0x40314020, 0x9266: 0xe000096f, 0x9267: 0xe000096c, - 0x9268: 0xe0000b32, 0x9269: 0xe0000b2f, 0x926a: 0xe0002758, 0x926b: 0xe0002755, - 0x926c: 0xe0000dfd, 0x926d: 0xe0000df9, 0x926e: 0xe0000e04, 0x926f: 0xe0000e01, - 0x9270: 0xe0000e0b, 0x9271: 0xe0000e07, 0x9272: 0xe0001129, 0x9273: 0xe0001126, - 0x9274: 0x402e5e20, 0x9275: 0x402ed020, 0x9276: 0x40305a20, 0x9277: 0x402dd420, - 0x9278: 0xe0000abf, 0x9279: 0xe0000ec4, 0x927a: 0x002be888, 0x927b: 0x002c4488, - 0x927c: 0x402c4420, 0x927d: 0x002e3888, 0x927e: 0x00303e88, 0x927f: 0x402ffc20, - // Block 0x24a, offset 0x9280 - 0x9280: 0xe0000d24, 0x9281: 0xe0000d21, 0x9282: 0xe0000d2a, 0x9283: 0xe0000d27, - 0x9284: 0xe0000d69, 0x9285: 0xe0000d66, 0x9286: 0xe0000d7b, 0x9287: 0xe0000d78, - 0x9288: 0xe0000d87, 0x9289: 0xe0000d84, 0x928a: 0xe0000d81, 0x928b: 0xe0000d7e, - 0x928c: 0xe0000ded, 0x928d: 0xe0000de9, 0x928e: 0xe0002a38, 0x928f: 0xe0002a35, - 0x9290: 0xe0000e3d, 0x9291: 0xe0000e39, 0x9292: 0xe0000e35, 0x9293: 0xe0000e31, - 0x9294: 0xe0000ea7, 0x9295: 0xe0000ea4, 0x9296: 0xe0000ead, 0x9297: 0xe0000eaa, - 0x9298: 0xe0000ed6, 0x9299: 0xe0000ed3, 0x929a: 0xe0000ef4, 0x929b: 0xe0000ef1, - 0x929c: 0xe0000efb, 0x929d: 0xe0000ef7, 0x929e: 0xe0000f02, 0x929f: 0xe0000eff, - 0x92a0: 0xe0000f41, 0x92a1: 0xe0000f3e, 0x92a2: 0xe0000f53, 0x92a3: 0xe0000f50, - 0x92a4: 0xe0000f26, 0x92a5: 0xe0000f22, 0x92a6: 0xe0000f3a, 0x92a7: 0xe0000f36, - 0x92a8: 0xe0000f5a, 0x92a9: 0xe0000f56, 0x92aa: 0xe0000f93, 0x92ab: 0xe0000f90, - 0x92ac: 0xe0000f9f, 0x92ad: 0xe0000f9c, 0x92ae: 0xe0000fb1, 0x92af: 0xe0000fae, - 0x92b0: 0xe0000fab, 0x92b1: 0xe0000fa8, 0x92b2: 0xe0001093, 0x92b3: 0xe0001090, - 0x92b4: 0xe000109f, 0x92b5: 0xe000109c, 0x92b6: 0xe0001099, 0x92b7: 0xe0001096, - 0x92b8: 0xe0001032, 0x92b9: 0xe000102e, 0x92ba: 0xe0002685, 0x92bb: 0xe0002682, - 0x92bc: 0xe0002a2f, 0x92bd: 0xe00010a6, 0x92be: 0xe0002a32, 0x92bf: 0xe00010ac, - // Block 0x24b, offset 0x92c0 - 0x92c0: 0xe0000b03, 0x92c1: 0xe0000aff, 0x92c2: 0xe0000b13, 0x92c3: 0xe0000b0f, - 0x92c4: 0xe0000b0b, 0x92c5: 0xe0000b07, 0x92c6: 0xe0000b75, 0x92c7: 0xe0000b71, - 0x92c8: 0xe0000c66, 0x92c9: 0xe0000c63, 0x92ca: 0xe0000c78, 0x92cb: 0xe0000c75, - 0x92cc: 0xe0000e84, 0x92cd: 0xe0000e81, 0x92ce: 0xe0000e44, 0x92cf: 0xe0000e41, - 0x92d0: 0xe0002a3e, 0x92d1: 0xe0002a3b, 0x92d2: 0xe0002a44, 0x92d3: 0xe0002a41, - 0x92d4: 0xe0002a50, 0x92d5: 0xe0002a4d, 0x92d6: 0xe0002a4a, 0x92d7: 0xe0002a47, - 0x92d8: 0xe0002a56, 0x92d9: 0xe0002a53, 0x92da: 0xe0000e5d, 0x92db: 0xe0000e59, - 0x92dc: 0xe0000e65, 0x92dd: 0xe0000e61, 0x92de: 0xe0000e75, 0x92df: 0xe0000e71, - 0x92e0: 0xe0000e6d, 0x92e1: 0xe0000e69, 0x92e2: 0xe0000e7d, 0x92e3: 0xe0000e79, - 0x92e4: 0xe000108d, 0x92e5: 0xe000108a, 0x92e6: 0xe000104d, 0x92e7: 0xe000104a, - 0x92e8: 0xe0001066, 0x92e9: 0xe0001062, 0x92ea: 0xe000106e, 0x92eb: 0xe000106a, - 0x92ec: 0xe000107e, 0x92ed: 0xe000107a, 0x92ee: 0xe0001076, 0x92ef: 0xe0001072, - 0x92f0: 0xe0001086, 0x92f1: 0xe0001082, 0x92f2: 0xe0001108, 0x92f3: 0xe0001105, - 0x92f4: 0xe0001135, 0x92f5: 0xe0001132, 0x92f6: 0xe000112f, 0x92f7: 0xe000112c, - 0x92f8: 0xe000111d, 0x92f9: 0xe000111a, 0x92fa: 0xe0000d0a, 0x92fb: 0xe0000d07, - 0x92fc: 0x0030d888, 0x92fd: 0x4030d820, 0x92fe: 0x00312088, 0x92ff: 0x40312020, - // Block 0x24c, offset 0x9300 - 0x9300: 0xa0000000, 0x9301: 0xa0000000, 0x9302: 0xa0000000, 0x9303: 0xa0000000, - 0x9304: 0xa0000000, 0x9305: 0xa0000000, 0x9306: 0xa0000000, 0x9307: 0xa0000000, - 0x9308: 0xa0000000, 0x9309: 0x40020020, 0x930a: 0x40020220, 0x930b: 0x40020420, - 0x930c: 0x40020620, 0x930d: 0x40020820, 0x930e: 0xa0000000, 0x930f: 0xa0000000, - 0x9310: 0xa0000000, 0x9311: 0xa0000000, 0x9312: 0xa0000000, 0x9313: 0xa0000000, - 0x9314: 0xa0000000, 0x9315: 0xa0000000, 0x9316: 0xa0000000, 0x9317: 0xa0000000, - 0x9318: 0xa0000000, 0x9319: 0xa0000000, 0x931a: 0xa0000000, 0x931b: 0xa0000000, - 0x931c: 0xa0000000, 0x931d: 0xa0000000, 0x931e: 0xa0000000, 0x931f: 0xa0000000, - 0x9320: 0x40021220, 0x9321: 0x4002ba20, 0x9322: 0x4003e020, 0x9323: 0x4004ea20, - 0x9324: 0x4027de20, 0x9325: 0x4004ec20, 0x9326: 0x4004e620, 0x9327: 0x4003d220, - 0x9328: 0x4003f420, 0x9329: 0x4003f620, 0x932a: 0x4004d820, 0x932b: 0x40093820, - 0x932c: 0x40024020, 0x932d: 0x40021a20, 0x932e: 0x4002e420, 0x932f: 0x4004e220, - 0x9330: 0x4029cc20, 0x9331: 0x4029ce20, 0x9332: 0x4029d020, 0x9333: 0x4029d220, - 0x9334: 0x4029d420, 0x9335: 0x4029d620, 0x9336: 0x4029d820, 0x9337: 0x4029da20, - 0x9338: 0x4029dc20, 0x9339: 0x4029de20, 0x933a: 0x40026c20, 0x933b: 0x40026220, - 0x933c: 0x40094020, 0x933d: 0xc32f0851, 0x933e: 0x40094420, 0x933f: 0x4002c420, - // Block 0x24d, offset 0x9340 - 0x9340: 0x4004d620, 0x9341: 0x002bde88, 0x9342: 0x002c0a88, 0x9343: 0xc3330871, - 0x9344: 0x002c6288, 0x9345: 0x002c9888, 0x9346: 0x002d0888, 0x9347: 0xc33700d1, - 0x9348: 0x002d6888, 0x9349: 0xc3390891, 0x934a: 0x002dcc88, 0x934b: 0x002dfe88, - 0x934c: 0xc0030002, 0x934d: 0x002e8288, 0x934e: 0x002e9e88, 0x934f: 0xc33d0071, - 0x9350: 0x002f2c88, 0x9351: 0x002f5688, 0x9352: 0x002f7a88, 0x9353: 0xc3410871, - 0x9354: 0x00302c88, 0x9355: 0xc3450071, 0x9356: 0x0030be88, 0x9357: 0x0030e288, - 0x9358: 0x0030f688, 0x9359: 0x00310088, 0x935a: 0x00312a88, 0x935b: 0x4003f820, - 0x935c: 0x4004e420, 0x935d: 0x4003fa20, 0x935e: 0x40062420, 0x935f: 0x40021620, - 0x9360: 0x40061e20, 0x9361: 0x402bde20, 0x9362: 0x402c0a20, 0x9363: 0xc3310871, - 0x9364: 0x402c6220, 0x9365: 0x402c9820, 0x9366: 0x402d0820, 0x9367: 0xc33500d1, - 0x9368: 0x402d6820, 0x9369: 0x402d9a20, 0x936a: 0x402dcc20, 0x936b: 0x402dfe20, - 0x936c: 0xc0000002, 0x936d: 0x402e8220, 0x936e: 0x402e9e20, 0x936f: 0xc33b0071, - 0x9370: 0x402f2c20, 0x9371: 0x402f5620, 0x9372: 0x402f7a20, 0x9373: 0xc33f0871, - 0x9374: 0x40302c20, 0x9375: 0xc3430071, 0x9376: 0x4030be20, 0x9377: 0x4030e220, - 0x9378: 0x4030f620, 0x9379: 0x40310020, 0x937a: 0x40312a20, 0x937b: 0x4003fc20, - 0x937c: 0x40094820, 0x937d: 0x4003fe20, 0x937e: 0x40094c20, 0x937f: 0xa0000000, - // Block 0x24e, offset 0x9380 - 0x9380: 0x00093685, 0x9381: 0x40083620, 0x9382: 0x40083820, 0x9383: 0x40083a20, - 0x9384: 0x40083c20, 0x9385: 0x002c628b, 0x9386: 0x002c6285, 0x9387: 0x002c9885, - 0x9388: 0x002d9a85, 0x9389: 0x002dcc85, 0x938a: 0x40083e20, 0x938b: 0x400a6e20, - 0x938c: 0x40084020, 0x938d: 0xe00009c4, 0x938e: 0x402d1e20, 0x938f: 0x40084220, - 0x9390: 0xe00002cb, 0x9391: 0xe00002d3, 0x9392: 0xe00002b2, 0x9393: 0xe00002bb, - 0x9394: 0xe00003cd, 0x9395: 0xe00002c3, 0x9396: 0xe00003d1, 0x9397: 0xe00004ab, - 0x9398: 0xe0000579, 0x9399: 0xe00002c7, 0x939a: 0xe0000640, 0x939b: 0xe00002cf, - 0x939c: 0xe00004af, 0x939d: 0xe0000644, 0x939e: 0xe0000798, 0x939f: 0xf0001e1e, - 0x93a0: 0x002d9a8a, 0x93a1: 0xe00024ff, 0x93a2: 0xe0002502, 0x93a3: 0xe000250c, - 0x93a4: 0x0030be8a, 0x93a5: 0xe000253c, 0x93a6: 0xe000253f, 0x93a7: 0xe00010bb, - 0x93a8: 0xe0002512, 0x93a9: 0x0030f68a, 0x93aa: 0xe0002546, 0x93ab: 0xe000254d, - 0x93ac: 0x002e228a, 0x93ad: 0x002c3a8a, 0x93ae: 0x002c628a, 0x93af: 0x002e828a, - 0x93b0: 0x002d9a84, 0x93b1: 0xf0001f04, 0x93b2: 0xf0000404, 0x93b3: 0xf0001f04, - 0x93b4: 0x0030be84, 0x93b5: 0xf0001f04, 0x93b6: 0xf0000404, 0x93b7: 0xe00010b6, - 0x93b8: 0xf0001f04, 0x93b9: 0x0030f684, 0x93ba: 0xf0001f04, 0x93bb: 0xf0000404, - 0x93bc: 0x002e2284, 0x93bd: 0x002c3a84, 0x93be: 0x002c6284, 0x93bf: 0x002e8284, - // Block 0x24f, offset 0x93c0 - 0x93c0: 0xf0001f04, 0x93c1: 0xf0001f04, 0x93c2: 0xf0001f04, 0x93c3: 0xf0001f04, - 0x93c4: 0xf0001f04, 0x93c5: 0xf0001f04, 0x93c6: 0xf0001f04, 0x93c7: 0xf0001f04, - 0x93c8: 0xf0001f04, 0x93c9: 0xf0001f04, 0x93ca: 0xf0001f04, - 0x93d0: 0xf0000a04, 0x93d1: 0xf0000a04, 0x93d2: 0xf0000a04, 0x93d3: 0xf0000a04, - 0x93d4: 0xf0000a04, 0x93d5: 0xf0000a04, 0x93d6: 0xf0000a04, 0x93d7: 0xf0000a04, - 0x93d8: 0xe00024a8, 0x93d9: 0xf0000a04, 0x93da: 0xf0000a04, 0x93db: 0xf0000a04, - 0x93dc: 0xf0000a04, 0x93dd: 0xf0000a04, 0x93de: 0xf0000a04, 0x93df: 0xf0000a04, - 0x93e0: 0xf0000a04, 0x93e1: 0xf0000a04, 0x93e2: 0xf0000a04, 0x93e3: 0xf0000a04, - 0x93e4: 0xf0000a04, 0x93e5: 0xf0000a04, 0x93e6: 0xf0000a04, 0x93e7: 0xf0000a04, - 0x93e8: 0xf0000a04, 0x93e9: 0xf0000a04, 0x93ea: 0xf0000a04, 0x93eb: 0x002c3a8c, - 0x93ec: 0x002f7a8c, 0x93ed: 0xf0000c0c, 0x93ee: 0xf0000c0c, - 0x93f0: 0x002bde9d, 0x93f1: 0x002c0a9d, 0x93f2: 0x002c3a9d, 0x93f3: 0x002c629d, - 0x93f4: 0x002c989d, 0x93f5: 0x002d089d, 0x93f6: 0x002d229d, 0x93f7: 0x002d689d, - 0x93f8: 0x002d9a9d, 0x93f9: 0x002dcc9d, 0x93fa: 0x002dfe9d, 0x93fb: 0x002e229d, - 0x93fc: 0x002e829d, 0x93fd: 0x002e9e9d, 0x93fe: 0x002ee29d, 0x93ff: 0x002f2c9d, -} - -// mainLookup: 4864 entries, 9728 bytes -// Block 0 is the null block. -var mainLookup = [4864]uint16{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0x0e0: 0x1f, 0x0e1: 0x20, 0x0e2: 0x21, 0x0e3: 0x22, 0x0e4: 0x23, 0x0e5: 0x24, 0x0e6: 0x25, 0x0e7: 0x26, - 0x0e8: 0x27, 0x0e9: 0x28, 0x0ea: 0x29, 0x0eb: 0x2a, 0x0ec: 0x2b, 0x0ed: 0x2c, 0x0ee: 0x2d, 0x0ef: 0x2e, - 0x0f0: 0x2f, 0x0f1: 0x30, 0x0f2: 0x31, 0x0f3: 0x32, 0x0f4: 0x33, 0x0f5: 0x34, 0x0f6: 0x35, 0x0f7: 0x36, - 0x0f8: 0x37, 0x0f9: 0x38, 0x0fa: 0x39, 0x0fb: 0x3a, 0x0fc: 0x3b, 0x0fd: 0x3c, 0x0fe: 0x3d, 0x0ff: 0x3e, - // Block 0x4, offset 0x100 - 0x100: 0x3f, 0x101: 0x40, 0x102: 0x41, 0x103: 0x42, 0x104: 0x43, 0x105: 0x44, 0x106: 0x45, 0x107: 0x46, - 0x108: 0x47, 0x109: 0x48, 0x10a: 0x49, 0x10b: 0x4a, 0x10c: 0x4b, 0x10d: 0x4c, 0x10e: 0x4d, 0x10f: 0x4e, - 0x110: 0x4f, 0x111: 0x50, 0x112: 0x51, 0x113: 0x52, 0x114: 0x53, 0x115: 0x54, 0x116: 0x55, 0x117: 0x56, - 0x118: 0x57, 0x119: 0x58, 0x11a: 0x59, 0x11b: 0x5a, 0x11c: 0x5b, 0x11d: 0x5c, 0x11e: 0x5d, 0x11f: 0x5e, - 0x120: 0x5f, 0x121: 0x60, 0x122: 0x61, 0x123: 0x62, 0x124: 0x63, 0x125: 0x64, 0x126: 0x65, 0x127: 0x66, - 0x128: 0x67, 0x129: 0x68, 0x12a: 0x69, 0x12c: 0x6a, 0x12d: 0x6b, 0x12e: 0x6c, 0x12f: 0x6d, - 0x130: 0x6e, 0x131: 0x6f, 0x133: 0x70, 0x134: 0x71, 0x135: 0x72, 0x136: 0x73, 0x137: 0x74, - 0x138: 0x75, 0x139: 0x76, 0x13a: 0x77, 0x13b: 0x78, 0x13c: 0x79, 0x13d: 0x7a, 0x13e: 0x7b, 0x13f: 0x7c, - // Block 0x5, offset 0x140 - 0x140: 0x7d, 0x141: 0x7e, 0x142: 0x7f, 0x143: 0x80, 0x144: 0x81, 0x145: 0x82, 0x146: 0x83, 0x147: 0x84, - 0x148: 0x85, 0x149: 0x86, 0x14a: 0x87, 0x14b: 0x88, 0x14c: 0x89, 0x14d: 0x8a, 0x14e: 0x8b, 0x14f: 0x8c, - 0x150: 0x8d, 0x151: 0x8e, 0x152: 0x8f, 0x153: 0x90, 0x154: 0x91, 0x155: 0x92, 0x156: 0x93, 0x157: 0x94, - 0x158: 0x95, 0x159: 0x96, 0x15a: 0x97, 0x15b: 0x98, 0x15c: 0x99, 0x15d: 0x9a, 0x15e: 0x9b, 0x15f: 0x9c, - 0x160: 0x9d, 0x161: 0x9e, 0x162: 0x9f, 0x163: 0xa0, 0x164: 0xa1, 0x165: 0xa2, 0x166: 0xa3, 0x167: 0xa4, - 0x168: 0xa5, 0x169: 0xa6, 0x16a: 0xa7, 0x16b: 0xa8, 0x16c: 0xa9, 0x16d: 0xaa, - 0x170: 0xab, 0x171: 0xac, 0x172: 0xad, 0x173: 0xae, 0x174: 0xaf, 0x175: 0xb0, 0x176: 0xb1, 0x177: 0xb2, - 0x178: 0xb3, 0x17a: 0xb4, 0x17b: 0xb5, 0x17c: 0xb6, 0x17d: 0xb7, 0x17e: 0xb8, 0x17f: 0xb9, - // Block 0x6, offset 0x180 - 0x180: 0xba, 0x181: 0xbb, 0x182: 0xbc, 0x183: 0xbd, 0x184: 0xbe, 0x185: 0xbf, 0x186: 0xc0, 0x187: 0xc1, - 0x188: 0xc2, 0x189: 0xc3, 0x18a: 0xc4, 0x18b: 0xc5, 0x18c: 0xc6, 0x18d: 0xc7, 0x18e: 0xc8, 0x18f: 0xc9, - // Block 0x7, offset 0x1c0 - 0x1f7: 0xca, - // Block 0x8, offset 0x200 - 0x200: 0xcb, 0x201: 0xcc, 0x202: 0xcd, 0x203: 0xce, 0x204: 0xcf, 0x205: 0xd0, 0x206: 0xd1, 0x207: 0xd2, - 0x208: 0xd3, 0x209: 0xd4, 0x20a: 0xd5, 0x20b: 0xd6, 0x20c: 0xd7, 0x20d: 0xd8, 0x20e: 0xd9, 0x20f: 0xda, - 0x210: 0xdb, 0x211: 0xdc, 0x212: 0xdd, 0x213: 0xde, 0x214: 0xdf, 0x215: 0xe0, 0x216: 0xe1, 0x217: 0xe2, - 0x218: 0xe3, 0x219: 0xe4, 0x21a: 0xe5, 0x21b: 0xe6, 0x21c: 0xe7, 0x21d: 0xe8, 0x21e: 0xe9, 0x21f: 0xea, - 0x220: 0xeb, 0x221: 0xec, 0x222: 0xed, 0x223: 0xee, 0x224: 0xef, 0x225: 0xf0, 0x226: 0xf1, 0x227: 0xf2, - 0x228: 0xf3, 0x229: 0xf4, 0x22a: 0xf5, 0x22b: 0xf6, 0x22c: 0xf7, 0x22f: 0xf8, - // Block 0x9, offset 0x240 - 0x25e: 0xf9, 0x25f: 0xfa, - // Block 0xa, offset 0x280 - 0x2a4: 0xfb, 0x2a5: 0xfc, 0x2a6: 0xfd, 0x2a7: 0xfe, - 0x2a8: 0xff, 0x2a9: 0x100, 0x2aa: 0x101, 0x2ab: 0x102, 0x2ac: 0x103, 0x2ad: 0x104, 0x2ae: 0x105, 0x2af: 0x106, - 0x2b0: 0x107, 0x2b1: 0x108, 0x2b2: 0x109, 0x2b3: 0x10a, 0x2b4: 0x10b, 0x2b5: 0x10c, 0x2b6: 0x10d, 0x2b7: 0x10e, - 0x2b8: 0x10f, 0x2b9: 0x110, 0x2ba: 0x111, 0x2bb: 0x112, 0x2bc: 0x113, 0x2bd: 0x114, 0x2be: 0x115, 0x2bf: 0x116, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x117, 0x2c1: 0x118, 0x2c2: 0x119, 0x2c3: 0x11a, 0x2c4: 0x11b, 0x2c5: 0x11c, 0x2c6: 0x11d, 0x2c7: 0x11e, - 0x2ca: 0x11f, 0x2cb: 0x120, 0x2cc: 0x121, 0x2cd: 0x122, 0x2ce: 0x123, 0x2cf: 0x124, - 0x2d0: 0x125, 0x2d1: 0x126, 0x2d2: 0x127, - 0x2e0: 0x128, 0x2e1: 0x129, 0x2e4: 0x12a, 0x2e6: 0x12b, - 0x2e8: 0x12c, 0x2e9: 0x12d, 0x2ec: 0x12e, 0x2ed: 0x12f, - 0x2f0: 0x130, 0x2f1: 0x131, - 0x2f9: 0x132, - // Block 0xc, offset 0x300 - 0x300: 0x133, 0x301: 0x134, 0x302: 0x135, 0x303: 0x136, 0x304: 0x137, 0x305: 0x138, 0x306: 0x139, 0x307: 0x13a, - 0x31a: 0x13b, 0x31b: 0x13c, - // Block 0xd, offset 0x340 - 0x340: 0x13d, 0x341: 0x13e, 0x342: 0x13f, 0x343: 0x140, 0x344: 0x141, 0x345: 0x142, 0x346: 0x143, 0x347: 0x144, - 0x348: 0x145, 0x349: 0x146, 0x34a: 0x147, 0x34b: 0x148, 0x34c: 0x149, 0x34d: 0x14a, - 0x350: 0x14b, 0x351: 0x14c, - // Block 0xe, offset 0x380 - 0x380: 0x14d, 0x381: 0x14e, 0x382: 0x14f, 0x383: 0x150, 0x384: 0x151, 0x385: 0x152, 0x386: 0x153, 0x387: 0x154, - 0x388: 0x155, 0x389: 0x156, 0x38a: 0x157, 0x38b: 0x158, 0x38c: 0x159, 0x38d: 0x15a, 0x38e: 0x15b, 0x38f: 0x15c, - 0x390: 0x15d, - // Block 0xf, offset 0x3c0 - 0x3e0: 0x15e, 0x3e1: 0x15f, 0x3e2: 0x160, 0x3e3: 0x161, 0x3e4: 0x162, 0x3e5: 0x163, 0x3e6: 0x164, 0x3e7: 0x165, - 0x3e8: 0x166, - 0x3fc: 0x167, 0x3fd: 0x168, 0x3fe: 0x169, - // Block 0x10, offset 0x400 - 0x400: 0x16a, - // Block 0x11, offset 0x440 - 0x440: 0x16b, 0x441: 0x16c, 0x442: 0x16d, 0x443: 0x16e, 0x444: 0x16f, 0x445: 0x170, 0x446: 0x171, 0x447: 0x172, - 0x448: 0x173, 0x449: 0x174, 0x44c: 0x175, 0x44d: 0x176, - 0x450: 0x177, 0x451: 0x178, 0x452: 0x179, 0x453: 0x17a, 0x454: 0x17b, 0x455: 0x17c, 0x456: 0x17d, 0x457: 0x17e, - 0x458: 0x17f, 0x459: 0x180, 0x45a: 0x181, 0x45b: 0x182, 0x45c: 0x183, 0x45d: 0x184, 0x45e: 0x185, 0x45f: 0x186, - // Block 0x12, offset 0x480 - 0x4b8: 0x187, 0x4b9: 0x188, 0x4ba: 0x189, 0x4bb: 0x18a, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x18b, 0x4c1: 0x18c, 0x4c2: 0x18d, 0x4c3: 0x18e, 0x4c4: 0x18f, 0x4c5: 0x190, 0x4c6: 0x191, 0x4c7: 0x192, - 0x4c8: 0x193, 0x4c9: 0x194, 0x4cc: 0x195, 0x4cd: 0x196, 0x4ce: 0x197, 0x4cf: 0x198, - 0x4d0: 0x199, 0x4d1: 0x19a, 0x4d2: 0x19b, 0x4d3: 0x19c, 0x4d4: 0x19d, 0x4d5: 0x19e, 0x4d7: 0x19f, - 0x4d8: 0x1a0, 0x4d9: 0x1a1, 0x4da: 0x1a2, 0x4db: 0x1a3, 0x4dc: 0x1a4, 0x4dd: 0x1a5, - // Block 0x14, offset 0x500 - 0x520: 0x1a6, 0x521: 0x1a7, 0x522: 0x1a8, 0x523: 0x1a9, 0x524: 0x1aa, 0x525: 0x1ab, 0x526: 0x1ac, 0x527: 0x1ad, - 0x528: 0x1ae, - // Block 0x15, offset 0x540 - 0x550: 0x09, 0x551: 0x0a, 0x552: 0x0b, 0x553: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, - // Block 0x16, offset 0x580 - 0x580: 0x1af, 0x581: 0x1b0, 0x584: 0x1b0, 0x585: 0x1b0, 0x586: 0x1b0, 0x587: 0x1b1, - // Block 0x17, offset 0x5c0 - 0x5e0: 0x14, - // Block 0x18, offset 0x600 - 0x602: 0x01, 0x603: 0x02, 0x604: 0x03, 0x605: 0x04, 0x606: 0x05, 0x607: 0x06, - 0x608: 0x07, 0x609: 0x08, 0x60a: 0x09, 0x60b: 0x0a, 0x60c: 0x0b, 0x60d: 0x0c, 0x60e: 0x0d, 0x60f: 0x0e, - 0x610: 0x0f, 0x611: 0x10, 0x612: 0x11, 0x613: 0x12, 0x614: 0x13, 0x615: 0x14, 0x616: 0x15, 0x617: 0x16, - 0x618: 0x17, 0x619: 0x18, 0x61a: 0x19, 0x61b: 0x1a, 0x61c: 0x1b, 0x61d: 0x1c, 0x61e: 0x1d, 0x61f: 0x1e, - 0x620: 0x01, 0x621: 0x02, 0x622: 0x03, 0x623: 0x04, 0x624: 0x05, - 0x62a: 0x06, 0x62d: 0x07, 0x62f: 0x08, - 0x630: 0x13, 0x633: 0x15, - // Block 0x19, offset 0x640 - 0x660: 0x1f, 0x661: 0x20, 0x662: 0x21, 0x663: 0x22, 0x664: 0x23, 0x665: 0x24, 0x666: 0x25, 0x667: 0x26, - 0x668: 0x27, 0x669: 0x28, 0x66a: 0x29, 0x66b: 0x2a, 0x66c: 0x2b, 0x66d: 0x2c, 0x66e: 0x2d, 0x66f: 0x2e, - 0x670: 0x2f, 0x671: 0x30, 0x672: 0x31, 0x673: 0x32, 0x674: 0x33, 0x675: 0x34, 0x676: 0x35, 0x677: 0x36, - 0x678: 0x1bf, 0x679: 0x38, 0x67a: 0x39, 0x67b: 0x3a, 0x67c: 0x3b, 0x67d: 0x3c, 0x67e: 0x3d, 0x67f: 0x3e, - // Block 0x1a, offset 0x680 - 0x680: 0x3f, 0x681: 0x40, 0x682: 0x41, 0x683: 0x42, 0x684: 0x1c0, 0x685: 0x1c1, 0x686: 0x1c2, 0x687: 0x1c3, - 0x688: 0x47, 0x689: 0x48, 0x68a: 0x49, 0x68b: 0x4a, 0x68c: 0x4b, 0x68d: 0x4c, 0x68e: 0x4d, 0x68f: 0x4e, - 0x690: 0x4f, 0x691: 0x50, 0x692: 0x51, 0x693: 0x52, 0x694: 0x53, 0x695: 0x54, 0x696: 0x55, 0x697: 0x56, - 0x698: 0x57, 0x699: 0x58, 0x69a: 0x59, 0x69b: 0x5a, 0x69c: 0x5b, 0x69d: 0x5c, 0x69e: 0x5d, 0x69f: 0x5e, - 0x6a0: 0x5f, 0x6a1: 0x60, 0x6a2: 0x61, 0x6a3: 0x62, 0x6a4: 0x63, 0x6a5: 0x64, 0x6a6: 0x65, 0x6a7: 0x66, - 0x6a8: 0x67, 0x6a9: 0x68, 0x6aa: 0x69, 0x6ac: 0x6a, 0x6ad: 0x6b, 0x6ae: 0x6c, 0x6af: 0x6d, - 0x6b0: 0x6e, 0x6b1: 0x6f, 0x6b3: 0x70, 0x6b4: 0x71, 0x6b5: 0x72, 0x6b6: 0x73, 0x6b7: 0x74, - 0x6b8: 0x1c4, 0x6b9: 0x1c5, 0x6ba: 0x1c6, 0x6bb: 0x1c7, 0x6bc: 0x79, 0x6bd: 0x7a, 0x6be: 0x7b, 0x6bf: 0x7c, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x7d, 0x6c1: 0x7e, 0x6c2: 0x7f, 0x6c3: 0x80, 0x6c4: 0x81, 0x6c5: 0x1c8, 0x6c6: 0x83, 0x6c7: 0x84, - 0x6c8: 0x85, 0x6c9: 0x1c9, 0x6ca: 0x87, 0x6cb: 0x88, 0x6cc: 0x89, 0x6cd: 0x8a, 0x6ce: 0x8b, 0x6cf: 0x8c, - 0x6d0: 0x8d, 0x6d1: 0x8e, 0x6d2: 0x1ca, 0x6d3: 0x90, 0x6d4: 0x91, 0x6d5: 0x92, 0x6d6: 0x93, 0x6d7: 0x94, - 0x6d8: 0x95, 0x6d9: 0x96, 0x6da: 0x97, 0x6db: 0x98, 0x6dc: 0x99, 0x6dd: 0x9a, 0x6de: 0x9b, 0x6df: 0x9c, - 0x6e0: 0x9d, 0x6e1: 0x9e, 0x6e2: 0x9f, 0x6e3: 0xa0, 0x6e4: 0xa1, 0x6e5: 0xa2, 0x6e6: 0xa3, 0x6e7: 0xa4, - 0x6e8: 0xa5, 0x6e9: 0xa6, 0x6ea: 0xa7, 0x6eb: 0xa8, 0x6ec: 0xa9, 0x6ed: 0xaa, - 0x6f0: 0xab, 0x6f1: 0xac, 0x6f2: 0xad, 0x6f3: 0xae, 0x6f4: 0xaf, 0x6f5: 0xb0, 0x6f6: 0xb1, 0x6f7: 0xb2, - 0x6f8: 0xb3, 0x6fa: 0xb4, 0x6fb: 0xb5, 0x6fc: 0xb6, 0x6fd: 0xb7, 0x6fe: 0xb8, 0x6ff: 0xb9, - // Block 0x1c, offset 0x700 - 0x700: 0xba, 0x701: 0xbb, 0x702: 0xbc, 0x703: 0xbd, 0x704: 0xbe, 0x705: 0xbf, 0x706: 0xc0, 0x707: 0xc1, - 0x708: 0xc2, 0x709: 0xc3, 0x70a: 0xc4, 0x70b: 0xc5, 0x70c: 0xc6, 0x70d: 0x1cb, 0x70e: 0xc8, 0x70f: 0x1cc, - // Block 0x1d, offset 0x740 - 0x764: 0xfb, 0x765: 0xfc, 0x766: 0xfd, 0x767: 0xfe, - 0x768: 0xff, 0x769: 0x100, 0x76a: 0x101, 0x76b: 0x102, 0x76c: 0x103, 0x76d: 0x104, 0x76e: 0x105, 0x76f: 0x1cd, - 0x770: 0x1ce, 0x771: 0x1cf, 0x772: 0x1d0, 0x773: 0x1d1, 0x774: 0x1d2, 0x775: 0x10c, 0x776: 0x10d, 0x777: 0x10e, - 0x778: 0x10f, 0x779: 0x110, 0x77a: 0x1d3, 0x77b: 0x1d4, 0x77c: 0x113, 0x77d: 0x114, 0x77e: 0x115, 0x77f: 0x116, - // Block 0x1e, offset 0x780 - 0x780: 0x18b, 0x781: 0x18c, 0x782: 0x18d, 0x783: 0x18e, 0x784: 0x1d5, 0x785: 0x190, 0x786: 0x191, 0x787: 0x192, - 0x788: 0x193, 0x789: 0x194, 0x78c: 0x195, 0x78d: 0x196, 0x78e: 0x197, 0x78f: 0x198, - 0x790: 0x199, 0x791: 0x19a, 0x792: 0x19b, 0x793: 0x19c, 0x794: 0x19d, 0x795: 0x19e, 0x797: 0x19f, - 0x798: 0x1a0, 0x799: 0x1a1, 0x79a: 0x1a2, 0x79b: 0x1a3, 0x79c: 0x1a4, 0x79d: 0x1a5, - // Block 0x1f, offset 0x7c0 - 0x7d0: 0x09, 0x7d1: 0x0a, 0x7d2: 0x0b, 0x7d3: 0x0c, 0x7d6: 0x0d, - 0x7db: 0x0e, 0x7dd: 0x0f, 0x7de: 0x10, 0x7df: 0x1c, - 0x7ef: 0x12, - // Block 0x20, offset 0x800 - 0x802: 0x01, 0x803: 0x1b4, 0x804: 0x1b5, 0x805: 0x1b6, 0x806: 0x1b7, 0x807: 0x1b8, - 0x808: 0x1b9, 0x809: 0x1ba, 0x80a: 0x09, 0x80b: 0x0a, 0x80c: 0x0b, 0x80d: 0x0c, 0x80e: 0x0d, 0x80f: 0x0e, - 0x810: 0x0f, 0x811: 0x10, 0x812: 0x11, 0x813: 0x12, 0x814: 0x13, 0x815: 0x14, 0x816: 0x15, 0x817: 0x1bb, - 0x818: 0x1bc, 0x819: 0x1bd, 0x81a: 0x19, 0x81b: 0x1be, 0x81c: 0x1b, 0x81d: 0x1c, 0x81e: 0x1d, 0x81f: 0x1e, - 0x820: 0x17, 0x821: 0x18, 0x822: 0x19, 0x823: 0x1a, 0x824: 0x05, - 0x82a: 0x06, 0x82d: 0x07, 0x82f: 0x1b, - 0x830: 0x1d, 0x833: 0x15, - // Block 0x21, offset 0x840 - 0x840: 0x3f, 0x841: 0x40, 0x842: 0x41, 0x843: 0x42, 0x844: 0x1c0, 0x845: 0x1c1, 0x846: 0x1c2, 0x847: 0x1c3, - 0x848: 0x47, 0x849: 0x48, 0x84a: 0x49, 0x84b: 0x4a, 0x84c: 0x4b, 0x84d: 0x4c, 0x84e: 0x4d, 0x84f: 0x4e, - 0x850: 0x4f, 0x851: 0x50, 0x852: 0x51, 0x853: 0x52, 0x854: 0x53, 0x855: 0x54, 0x856: 0x55, 0x857: 0x56, - 0x858: 0x57, 0x859: 0x58, 0x85a: 0x59, 0x85b: 0x5a, 0x85c: 0x5b, 0x85d: 0x5c, 0x85e: 0x5d, 0x85f: 0x5e, - 0x860: 0x5f, 0x861: 0x60, 0x862: 0x61, 0x863: 0x62, 0x864: 0x63, 0x865: 0x64, 0x866: 0x65, 0x867: 0x66, - 0x868: 0x67, 0x869: 0x68, 0x86a: 0x69, 0x86c: 0x6a, 0x86d: 0x6b, 0x86e: 0x6c, 0x86f: 0x6d, - 0x870: 0x6e, 0x871: 0x6f, 0x873: 0x70, 0x874: 0x71, 0x875: 0x72, 0x876: 0x73, 0x877: 0x74, - 0x878: 0x75, 0x879: 0x76, 0x87a: 0x77, 0x87b: 0x78, 0x87c: 0x79, 0x87d: 0x7a, 0x87e: 0x7b, 0x87f: 0x7c, - // Block 0x22, offset 0x880 - 0x880: 0x7d, 0x881: 0x7e, 0x882: 0x7f, 0x883: 0x80, 0x884: 0x81, 0x885: 0x82, 0x886: 0x83, 0x887: 0x84, - 0x888: 0x85, 0x889: 0x1c9, 0x88a: 0x87, 0x88b: 0x88, 0x88c: 0x89, 0x88d: 0x8a, 0x88e: 0x8b, 0x88f: 0x8c, - 0x890: 0x8d, 0x891: 0x8e, 0x892: 0x8f, 0x893: 0x90, 0x894: 0x91, 0x895: 0x92, 0x896: 0x93, 0x897: 0x94, - 0x898: 0x95, 0x899: 0x96, 0x89a: 0x97, 0x89b: 0x98, 0x89c: 0x99, 0x89d: 0x9a, 0x89e: 0x9b, 0x89f: 0x9c, - 0x8a0: 0x9d, 0x8a1: 0x9e, 0x8a2: 0x9f, 0x8a3: 0xa0, 0x8a4: 0xa1, 0x8a5: 0xa2, 0x8a6: 0xa3, 0x8a7: 0xa4, - 0x8a8: 0xa5, 0x8a9: 0xa6, 0x8aa: 0xa7, 0x8ab: 0xa8, 0x8ac: 0xa9, 0x8ad: 0xaa, - 0x8b0: 0xab, 0x8b1: 0xac, 0x8b2: 0xad, 0x8b3: 0xae, 0x8b4: 0xaf, 0x8b5: 0xb0, 0x8b6: 0xb1, 0x8b7: 0xb2, - 0x8b8: 0xb3, 0x8ba: 0xb4, 0x8bb: 0xb5, 0x8bc: 0xb6, 0x8bd: 0xb7, 0x8be: 0xb8, 0x8bf: 0xb9, - // Block 0x23, offset 0x8c0 - 0x8c2: 0x01, 0x8c3: 0x02, 0x8c4: 0x1d8, 0x8c5: 0x1d9, 0x8c6: 0x05, 0x8c7: 0x06, - 0x8c8: 0x07, 0x8c9: 0x08, 0x8ca: 0x09, 0x8cb: 0x0a, 0x8cc: 0x0b, 0x8cd: 0x0c, 0x8ce: 0x0d, 0x8cf: 0x0e, - 0x8d0: 0x0f, 0x8d1: 0x10, 0x8d2: 0x11, 0x8d3: 0x12, 0x8d4: 0x13, 0x8d5: 0x14, 0x8d6: 0x15, 0x8d7: 0x1bb, - 0x8d8: 0x1bc, 0x8d9: 0x1bd, 0x8da: 0x19, 0x8db: 0x1be, 0x8dc: 0x1b, 0x8dd: 0x1c, 0x8de: 0x1d, 0x8df: 0x1e, - 0x8e0: 0x17, 0x8e1: 0x1f, 0x8e2: 0x20, 0x8e3: 0x04, 0x8e4: 0x05, - 0x8ea: 0x06, 0x8ed: 0x07, 0x8ef: 0x1b, - 0x8f0: 0x13, 0x8f3: 0x15, - // Block 0x24, offset 0x900 - 0x900: 0x3f, 0x901: 0x40, 0x902: 0x41, 0x903: 0x42, 0x904: 0x1c0, 0x905: 0x1c1, 0x906: 0x1c2, 0x907: 0x1c3, - 0x908: 0x47, 0x909: 0x48, 0x90a: 0x49, 0x90b: 0x4a, 0x90c: 0x4b, 0x90d: 0x4c, 0x90e: 0x4d, 0x90f: 0x4e, - 0x910: 0x4f, 0x911: 0x50, 0x912: 0x51, 0x913: 0x52, 0x914: 0x53, 0x915: 0x54, 0x916: 0x55, 0x917: 0x56, - 0x918: 0x57, 0x919: 0x58, 0x91a: 0x59, 0x91b: 0x5a, 0x91c: 0x5b, 0x91d: 0x5c, 0x91e: 0x5d, 0x91f: 0x5e, - 0x920: 0x5f, 0x921: 0x60, 0x922: 0x61, 0x923: 0x62, 0x924: 0x63, 0x925: 0x64, 0x926: 0x65, 0x927: 0x66, - 0x928: 0x67, 0x929: 0x68, 0x92a: 0x69, 0x92c: 0x6a, 0x92d: 0x6b, 0x92e: 0x6c, 0x92f: 0x6d, - 0x930: 0x6e, 0x931: 0x6f, 0x933: 0x70, 0x934: 0x71, 0x935: 0x72, 0x936: 0x73, 0x937: 0x74, - 0x938: 0x1e0, 0x939: 0x1e1, 0x93a: 0x1e2, 0x93b: 0x1e3, 0x93c: 0x79, 0x93d: 0x7a, 0x93e: 0x7b, 0x93f: 0x7c, - // Block 0x25, offset 0x940 - 0x942: 0x01, 0x943: 0x1dc, 0x944: 0x1dd, 0x945: 0x1de, 0x946: 0x05, 0x947: 0x1df, - 0x948: 0x07, 0x949: 0x08, 0x94a: 0x09, 0x94b: 0x0a, 0x94c: 0x0b, 0x94d: 0x0c, 0x94e: 0x0d, 0x94f: 0x0e, - 0x950: 0x0f, 0x951: 0x10, 0x952: 0x11, 0x953: 0x12, 0x954: 0x13, 0x955: 0x14, 0x956: 0x15, 0x957: 0x1bb, - 0x958: 0x1bc, 0x959: 0x1bd, 0x95a: 0x19, 0x95b: 0x1be, 0x95c: 0x1b, 0x95d: 0x1c, 0x95e: 0x1d, 0x95f: 0x1e, - 0x960: 0x17, 0x961: 0x22, 0x962: 0x20, 0x963: 0x04, 0x964: 0x05, - 0x96a: 0x06, 0x96d: 0x07, 0x96f: 0x1b, - 0x970: 0x13, 0x973: 0x15, - // Block 0x26, offset 0x980 - 0x980: 0x3f, 0x981: 0x40, 0x982: 0x41, 0x983: 0x42, 0x984: 0x1c0, 0x985: 0x1c1, 0x986: 0x1c2, 0x987: 0x1c3, - 0x988: 0x47, 0x989: 0x48, 0x98a: 0x49, 0x98b: 0x4a, 0x98c: 0x4b, 0x98d: 0x4c, 0x98e: 0x4d, 0x98f: 0x4e, - 0x990: 0x4f, 0x991: 0x50, 0x992: 0x51, 0x993: 0x52, 0x994: 0x53, 0x995: 0x54, 0x996: 0x55, 0x997: 0x56, - 0x998: 0x57, 0x999: 0x58, 0x99a: 0x59, 0x99b: 0x5a, 0x99c: 0x5b, 0x99d: 0x5c, 0x99e: 0x5d, 0x99f: 0x5e, - 0x9a0: 0x5f, 0x9a1: 0x60, 0x9a2: 0x61, 0x9a3: 0x62, 0x9a4: 0x63, 0x9a5: 0x64, 0x9a6: 0x65, 0x9a7: 0x66, - 0x9a8: 0x67, 0x9a9: 0x68, 0x9aa: 0x69, 0x9ac: 0x6a, 0x9ad: 0x6b, 0x9ae: 0x6c, 0x9af: 0x6d, - 0x9b0: 0x6e, 0x9b1: 0x6f, 0x9b3: 0x70, 0x9b4: 0x71, 0x9b5: 0x72, 0x9b6: 0x1eb, 0x9b7: 0x74, - 0x9b8: 0x75, 0x9b9: 0x1ec, 0x9ba: 0x77, 0x9bb: 0x78, 0x9bc: 0x79, 0x9bd: 0x7a, 0x9be: 0x7b, 0x9bf: 0x7c, - // Block 0x27, offset 0x9c0 - 0x9c0: 0x7d, 0x9c1: 0x7e, 0x9c2: 0x7f, 0x9c3: 0x80, 0x9c4: 0x1ed, 0x9c5: 0x82, 0x9c6: 0x83, 0x9c7: 0x84, - 0x9c8: 0x85, 0x9c9: 0x1c9, 0x9ca: 0x87, 0x9cb: 0x88, 0x9cc: 0x89, 0x9cd: 0x8a, 0x9ce: 0x8b, 0x9cf: 0x8c, - 0x9d0: 0x8d, 0x9d1: 0x8e, 0x9d2: 0x8f, 0x9d3: 0x90, 0x9d4: 0x91, 0x9d5: 0x92, 0x9d6: 0x93, 0x9d7: 0x94, - 0x9d8: 0x95, 0x9d9: 0x96, 0x9da: 0x97, 0x9db: 0x98, 0x9dc: 0x99, 0x9dd: 0x9a, 0x9de: 0x9b, 0x9df: 0x9c, - 0x9e0: 0x9d, 0x9e1: 0x9e, 0x9e2: 0x9f, 0x9e3: 0xa0, 0x9e4: 0xa1, 0x9e5: 0xa2, 0x9e6: 0xa3, 0x9e7: 0xa4, - 0x9e8: 0xa5, 0x9e9: 0xa6, 0x9ea: 0xa7, 0x9eb: 0xa8, 0x9ec: 0xa9, 0x9ed: 0xaa, - 0x9f0: 0xab, 0x9f1: 0xac, 0x9f2: 0xad, 0x9f3: 0xae, 0x9f4: 0xaf, 0x9f5: 0xb0, 0x9f6: 0xb1, 0x9f7: 0xb2, - 0x9f8: 0xb3, 0x9fa: 0xb4, 0x9fb: 0xb5, 0x9fc: 0xb6, 0x9fd: 0xb7, 0x9fe: 0xb8, 0x9ff: 0xb9, - // Block 0x28, offset 0xa00 - 0xa02: 0x01, 0xa03: 0x1e6, 0xa04: 0x1e7, 0xa05: 0x1e8, 0xa06: 0x05, 0xa07: 0x1e9, - 0xa08: 0x1ea, 0xa09: 0x08, 0xa0a: 0x09, 0xa0b: 0x0a, 0xa0c: 0x0b, 0xa0d: 0x0c, 0xa0e: 0x0d, 0xa0f: 0x0e, - 0xa10: 0x0f, 0xa11: 0x10, 0xa12: 0x11, 0xa13: 0x12, 0xa14: 0x13, 0xa15: 0x14, 0xa16: 0x15, 0xa17: 0x1bb, - 0xa18: 0x1bc, 0xa19: 0x1bd, 0xa1a: 0x19, 0xa1b: 0x1be, 0xa1c: 0x1b, 0xa1d: 0x1c, 0xa1e: 0x1d, 0xa1f: 0x1e, - 0xa20: 0x17, 0xa21: 0x24, 0xa22: 0x25, 0xa23: 0x04, 0xa24: 0x05, - 0xa2a: 0x06, 0xa2d: 0x07, 0xa2f: 0x1b, - 0xa30: 0x13, 0xa33: 0x15, - // Block 0x29, offset 0xa40 - 0xa40: 0x3f, 0xa41: 0x40, 0xa42: 0x41, 0xa43: 0x42, 0xa44: 0x1c0, 0xa45: 0x1c1, 0xa46: 0x1c2, 0xa47: 0x1c3, - 0xa48: 0x47, 0xa49: 0x48, 0xa4a: 0x49, 0xa4b: 0x4a, 0xa4c: 0x4b, 0xa4d: 0x4c, 0xa4e: 0x4d, 0xa4f: 0x4e, - 0xa50: 0x4f, 0xa51: 0x50, 0xa52: 0x51, 0xa53: 0x52, 0xa54: 0x53, 0xa55: 0x54, 0xa56: 0x55, 0xa57: 0x56, - 0xa58: 0x57, 0xa59: 0x58, 0xa5a: 0x59, 0xa5b: 0x5a, 0xa5c: 0x5b, 0xa5d: 0x5c, 0xa5e: 0x5d, 0xa5f: 0x5e, - 0xa60: 0x5f, 0xa61: 0x60, 0xa62: 0x61, 0xa63: 0x62, 0xa64: 0x63, 0xa65: 0x64, 0xa66: 0x65, 0xa67: 0x66, - 0xa68: 0x67, 0xa69: 0x68, 0xa6a: 0x69, 0xa6c: 0x6a, 0xa6d: 0x6b, 0xa6e: 0x6c, 0xa6f: 0x6d, - 0xa70: 0x6e, 0xa71: 0x6f, 0xa73: 0x70, 0xa74: 0x71, 0xa75: 0x72, 0xa76: 0x73, 0xa77: 0x74, - 0xa78: 0x75, 0xa79: 0x1f3, 0xa7a: 0x77, 0xa7b: 0x78, 0xa7c: 0x79, 0xa7d: 0x7a, 0xa7e: 0x7b, 0xa7f: 0x7c, - // Block 0x2a, offset 0xa80 - 0xa82: 0x01, 0xa83: 0x1f0, 0xa84: 0x03, 0xa85: 0x04, 0xa86: 0x05, 0xa87: 0x1f1, - 0xa88: 0x1f2, 0xa89: 0x08, 0xa8a: 0x09, 0xa8b: 0x0a, 0xa8c: 0x0b, 0xa8d: 0x0c, 0xa8e: 0x0d, 0xa8f: 0x0e, - 0xa90: 0x0f, 0xa91: 0x10, 0xa92: 0x11, 0xa93: 0x12, 0xa94: 0x13, 0xa95: 0x14, 0xa96: 0x15, 0xa97: 0x1bb, - 0xa98: 0x1bc, 0xa99: 0x1bd, 0xa9a: 0x19, 0xa9b: 0x1be, 0xa9c: 0x1b, 0xa9d: 0x1c, 0xa9e: 0x1d, 0xa9f: 0x1e, - 0xaa0: 0x17, 0xaa1: 0x27, 0xaa2: 0x20, 0xaa3: 0x04, 0xaa4: 0x05, - 0xaaa: 0x06, 0xaad: 0x07, 0xaaf: 0x1b, - 0xab0: 0x13, 0xab3: 0x15, - // Block 0x2b, offset 0xac0 - 0xac2: 0x01, 0xac3: 0x02, 0xac4: 0x03, 0xac5: 0x04, 0xac6: 0x05, 0xac7: 0x06, - 0xac8: 0x07, 0xac9: 0x08, 0xaca: 0x09, 0xacb: 0x0a, 0xacc: 0x0b, 0xacd: 0x0c, 0xace: 0x0d, 0xacf: 0x0e, - 0xad0: 0x0f, 0xad1: 0x10, 0xad2: 0x11, 0xad3: 0x12, 0xad4: 0x13, 0xad5: 0x14, 0xad6: 0x15, 0xad7: 0x1bb, - 0xad8: 0x1bc, 0xad9: 0x1bd, 0xada: 0x19, 0xadb: 0x1be, 0xadc: 0x1b, 0xadd: 0x1c, 0xade: 0x1d, 0xadf: 0x1e, - 0xae0: 0x17, 0xae1: 0x1f, 0xae2: 0x20, 0xae3: 0x04, 0xae4: 0x05, - 0xaea: 0x06, 0xaed: 0x07, 0xaef: 0x1b, - 0xaf0: 0x13, 0xaf3: 0x15, - // Block 0x2c, offset 0xb00 - 0xb02: 0x01, 0xb03: 0x1f8, 0xb04: 0x03, 0xb05: 0x04, 0xb06: 0x05, 0xb07: 0x06, - 0xb08: 0x07, 0xb09: 0x08, 0xb0a: 0x09, 0xb0b: 0x0a, 0xb0c: 0x0b, 0xb0d: 0x0c, 0xb0e: 0x0d, 0xb0f: 0x0e, - 0xb10: 0x0f, 0xb11: 0x10, 0xb12: 0x11, 0xb13: 0x12, 0xb14: 0x13, 0xb15: 0x14, 0xb16: 0x15, 0xb17: 0x1bb, - 0xb18: 0x1bc, 0xb19: 0x1bd, 0xb1a: 0x19, 0xb1b: 0x1be, 0xb1c: 0x1b, 0xb1d: 0x1c, 0xb1e: 0x1d, 0xb1f: 0x1e, - 0xb20: 0x17, 0xb21: 0x1f, 0xb22: 0x20, 0xb23: 0x04, 0xb24: 0x05, - 0xb2a: 0x06, 0xb2d: 0x07, 0xb2f: 0x1b, - 0xb30: 0x13, 0xb33: 0x15, - // Block 0x2d, offset 0xb40 - 0xb40: 0x3f, 0xb41: 0x40, 0xb42: 0x41, 0xb43: 0x42, 0xb44: 0x1c0, 0xb45: 0x1c1, 0xb46: 0x1c2, 0xb47: 0x1c3, - 0xb48: 0x47, 0xb49: 0x48, 0xb4a: 0x49, 0xb4b: 0x4a, 0xb4c: 0x4b, 0xb4d: 0x4c, 0xb4e: 0x4d, 0xb4f: 0x4e, - 0xb50: 0x4f, 0xb51: 0x50, 0xb52: 0x51, 0xb53: 0x52, 0xb54: 0x53, 0xb55: 0x54, 0xb56: 0x55, 0xb57: 0x56, - 0xb58: 0x57, 0xb59: 0x58, 0xb5a: 0x59, 0xb5b: 0x5a, 0xb5c: 0x5b, 0xb5d: 0x5c, 0xb5e: 0x5d, 0xb5f: 0x5e, - 0xb60: 0x5f, 0xb61: 0x60, 0xb62: 0x61, 0xb63: 0x62, 0xb64: 0x63, 0xb65: 0x64, 0xb66: 0x65, 0xb67: 0x66, - 0xb68: 0x67, 0xb69: 0x68, 0xb6a: 0x69, 0xb6c: 0x6a, 0xb6d: 0x6b, 0xb6e: 0x6c, 0xb6f: 0x6d, - 0xb70: 0x6e, 0xb71: 0x6f, 0xb73: 0x70, 0xb74: 0x71, 0xb75: 0x72, 0xb76: 0x1eb, 0xb77: 0x74, - 0xb78: 0x75, 0xb79: 0x200, 0xb7a: 0x201, 0xb7b: 0x202, 0xb7c: 0x79, 0xb7d: 0x7a, 0xb7e: 0x7b, 0xb7f: 0x7c, - // Block 0x2e, offset 0xb80 - 0xb80: 0x7d, 0xb81: 0x7e, 0xb82: 0x7f, 0xb83: 0x80, 0xb84: 0x203, 0xb85: 0x82, 0xb86: 0x83, 0xb87: 0x84, - 0xb88: 0x85, 0xb89: 0x1c9, 0xb8a: 0x87, 0xb8b: 0x88, 0xb8c: 0x89, 0xb8d: 0x8a, 0xb8e: 0x8b, 0xb8f: 0x8c, - 0xb90: 0x8d, 0xb91: 0x8e, 0xb92: 0x204, 0xb93: 0x90, 0xb94: 0x91, 0xb95: 0x92, 0xb96: 0x93, 0xb97: 0x94, - 0xb98: 0x95, 0xb99: 0x96, 0xb9a: 0x97, 0xb9b: 0x98, 0xb9c: 0x99, 0xb9d: 0x9a, 0xb9e: 0x9b, 0xb9f: 0x9c, - 0xba0: 0x9d, 0xba1: 0x9e, 0xba2: 0x9f, 0xba3: 0xa0, 0xba4: 0xa1, 0xba5: 0xa2, 0xba6: 0xa3, 0xba7: 0xa4, - 0xba8: 0xa5, 0xba9: 0xa6, 0xbaa: 0xa7, 0xbab: 0xa8, 0xbac: 0xa9, 0xbad: 0xaa, - 0xbb0: 0xab, 0xbb1: 0xac, 0xbb2: 0xad, 0xbb3: 0xae, 0xbb4: 0xaf, 0xbb5: 0xb0, 0xbb6: 0xb1, 0xbb7: 0xb2, - 0xbb8: 0xb3, 0xbba: 0xb4, 0xbbb: 0xb5, 0xbbc: 0xb6, 0xbbd: 0xb7, 0xbbe: 0xb8, 0xbbf: 0xb9, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0xba, 0xbc1: 0xbb, 0xbc2: 0xbc, 0xbc3: 0xbd, 0xbc4: 0xbe, 0xbc5: 0xbf, 0xbc6: 0xc0, 0xbc7: 0xc1, - 0xbc8: 0xc2, 0xbc9: 0xc3, 0xbca: 0xc4, 0xbcb: 0xc5, 0xbcc: 0xc6, 0xbcd: 0xc7, 0xbce: 0x205, 0xbcf: 0x206, - // Block 0x30, offset 0xc00 - 0xc00: 0x18b, 0xc01: 0x18c, 0xc02: 0x18d, 0xc03: 0x18e, 0xc04: 0x207, 0xc05: 0x208, 0xc06: 0x191, 0xc07: 0x192, - 0xc08: 0x193, 0xc09: 0x194, 0xc0c: 0x195, 0xc0d: 0x196, 0xc0e: 0x197, 0xc0f: 0x198, - 0xc10: 0x199, 0xc11: 0x19a, 0xc12: 0x19b, 0xc13: 0x19c, 0xc14: 0x19d, 0xc15: 0x19e, 0xc17: 0x19f, - 0xc18: 0x1a0, 0xc19: 0x1a1, 0xc1a: 0x1a2, 0xc1b: 0x1a3, 0xc1c: 0x1a4, 0xc1d: 0x1a5, - // Block 0x31, offset 0xc40 - 0xc50: 0x09, 0xc51: 0x0a, 0xc52: 0x0b, 0xc53: 0x0c, 0xc56: 0x0d, - 0xc5b: 0x0e, 0xc5d: 0x0f, 0xc5e: 0x10, 0xc5f: 0x2e, - 0xc6f: 0x12, - // Block 0x32, offset 0xc80 - 0xc82: 0x01, 0xc83: 0x1fb, 0xc84: 0x1fc, 0xc85: 0x1fd, 0xc86: 0x05, 0xc87: 0x1fe, - 0xc88: 0x1ff, 0xc89: 0x08, 0xc8a: 0x09, 0xc8b: 0x0a, 0xc8c: 0x0b, 0xc8d: 0x0c, 0xc8e: 0x0d, 0xc8f: 0x0e, - 0xc90: 0x0f, 0xc91: 0x10, 0xc92: 0x11, 0xc93: 0x12, 0xc94: 0x13, 0xc95: 0x14, 0xc96: 0x15, 0xc97: 0x1bb, - 0xc98: 0x1bc, 0xc99: 0x1bd, 0xc9a: 0x19, 0xc9b: 0x1be, 0xc9c: 0x1b, 0xc9d: 0x1c, 0xc9e: 0x1d, 0xc9f: 0x1e, - 0xca0: 0x17, 0xca1: 0x2b, 0xca2: 0x2c, 0xca3: 0x2d, 0xca4: 0x05, - 0xcaa: 0x06, 0xcad: 0x07, 0xcaf: 0x1b, - 0xcb0: 0x2f, 0xcb3: 0x15, - // Block 0x33, offset 0xcc0 - 0xce0: 0x1f, 0xce1: 0x20, 0xce2: 0x21, 0xce3: 0x22, 0xce4: 0x23, 0xce5: 0x24, 0xce6: 0x25, 0xce7: 0x26, - 0xce8: 0x27, 0xce9: 0x28, 0xcea: 0x29, 0xceb: 0x2a, 0xcec: 0x2b, 0xced: 0x2c, 0xcee: 0x2d, 0xcef: 0x2e, - 0xcf0: 0x2f, 0xcf1: 0x30, 0xcf2: 0x31, 0xcf3: 0x32, 0xcf4: 0x33, 0xcf5: 0x34, 0xcf6: 0x35, 0xcf7: 0x36, - 0xcf8: 0x20d, 0xcf9: 0x38, 0xcfa: 0x39, 0xcfb: 0x3a, 0xcfc: 0x3b, 0xcfd: 0x3c, 0xcfe: 0x3d, 0xcff: 0x3e, - // Block 0x34, offset 0xd00 - 0xd02: 0x01, 0xd03: 0x02, 0xd04: 0x03, 0xd05: 0x04, 0xd06: 0x05, 0xd07: 0x06, - 0xd08: 0x07, 0xd09: 0x08, 0xd0a: 0x09, 0xd0b: 0x0a, 0xd0c: 0x0b, 0xd0d: 0x0c, 0xd0e: 0x0d, 0xd0f: 0x0e, - 0xd10: 0x0f, 0xd11: 0x10, 0xd12: 0x11, 0xd13: 0x12, 0xd14: 0x13, 0xd15: 0x14, 0xd16: 0x15, 0xd17: 0x20b, - 0xd18: 0x1bc, 0xd19: 0x20c, 0xd1a: 0x19, 0xd1b: 0x1be, 0xd1c: 0x1b, 0xd1d: 0x1c, 0xd1e: 0x1d, 0xd1f: 0x1e, - 0xd20: 0x31, 0xd21: 0x1f, 0xd22: 0x20, 0xd23: 0x04, 0xd24: 0x05, - 0xd2a: 0x06, 0xd2d: 0x07, 0xd2f: 0x1b, - 0xd30: 0x13, 0xd33: 0x15, - // Block 0x35, offset 0xd40 - 0xd40: 0x3f, 0xd41: 0x40, 0xd42: 0x41, 0xd43: 0x42, 0xd44: 0x1c0, 0xd45: 0x1c1, 0xd46: 0x1c2, 0xd47: 0x1c3, - 0xd48: 0x47, 0xd49: 0x48, 0xd4a: 0x49, 0xd4b: 0x4a, 0xd4c: 0x4b, 0xd4d: 0x4c, 0xd4e: 0x4d, 0xd4f: 0x4e, - 0xd50: 0x4f, 0xd51: 0x50, 0xd52: 0x51, 0xd53: 0x52, 0xd54: 0x53, 0xd55: 0x54, 0xd56: 0x55, 0xd57: 0x56, - 0xd58: 0x57, 0xd59: 0x58, 0xd5a: 0x59, 0xd5b: 0x5a, 0xd5c: 0x5b, 0xd5d: 0x5c, 0xd5e: 0x5d, 0xd5f: 0x5e, - 0xd60: 0x5f, 0xd61: 0x60, 0xd62: 0x61, 0xd63: 0x62, 0xd64: 0x63, 0xd65: 0x64, 0xd66: 0x65, 0xd67: 0x66, - 0xd68: 0x67, 0xd69: 0x68, 0xd6a: 0x69, 0xd6c: 0x6a, 0xd6d: 0x6b, 0xd6e: 0x6c, 0xd6f: 0x6d, - 0xd70: 0x6e, 0xd71: 0x6f, 0xd73: 0x70, 0xd74: 0x71, 0xd75: 0x72, 0xd76: 0x73, 0xd77: 0x74, - 0xd78: 0x213, 0xd79: 0x214, 0xd7a: 0x77, 0xd7b: 0x78, 0xd7c: 0x79, 0xd7d: 0x7a, 0xd7e: 0x7b, 0xd7f: 0x7c, - // Block 0x36, offset 0xd80 - 0xd82: 0x01, 0xd83: 0x02, 0xd84: 0x210, 0xd85: 0x211, 0xd86: 0x05, 0xd87: 0x212, - 0xd88: 0x07, 0xd89: 0x08, 0xd8a: 0x09, 0xd8b: 0x0a, 0xd8c: 0x0b, 0xd8d: 0x0c, 0xd8e: 0x0d, 0xd8f: 0x0e, - 0xd90: 0x0f, 0xd91: 0x10, 0xd92: 0x11, 0xd93: 0x12, 0xd94: 0x13, 0xd95: 0x14, 0xd96: 0x15, 0xd97: 0x1bb, - 0xd98: 0x1bc, 0xd99: 0x1bd, 0xd9a: 0x19, 0xd9b: 0x1be, 0xd9c: 0x1b, 0xd9d: 0x1c, 0xd9e: 0x1d, 0xd9f: 0x1e, - 0xda0: 0x17, 0xda1: 0x33, 0xda2: 0x20, 0xda3: 0x04, 0xda4: 0x05, - 0xdaa: 0x06, 0xdad: 0x07, 0xdaf: 0x1b, - 0xdb0: 0x13, 0xdb3: 0x15, - // Block 0x37, offset 0xdc0 - 0xdc0: 0x3f, 0xdc1: 0x40, 0xdc2: 0x41, 0xdc3: 0x42, 0xdc4: 0x1c0, 0xdc5: 0x1c1, 0xdc6: 0x1c2, 0xdc7: 0x1c3, - 0xdc8: 0x47, 0xdc9: 0x48, 0xdca: 0x49, 0xdcb: 0x4a, 0xdcc: 0x4b, 0xdcd: 0x4c, 0xdce: 0x4d, 0xdcf: 0x4e, - 0xdd0: 0x4f, 0xdd1: 0x50, 0xdd2: 0x51, 0xdd3: 0x52, 0xdd4: 0x53, 0xdd5: 0x54, 0xdd6: 0x55, 0xdd7: 0x56, - 0xdd8: 0x57, 0xdd9: 0x58, 0xdda: 0x59, 0xddb: 0x5a, 0xddc: 0x5b, 0xddd: 0x5c, 0xdde: 0x5d, 0xddf: 0x5e, - 0xde0: 0x5f, 0xde1: 0x60, 0xde2: 0x61, 0xde3: 0x62, 0xde4: 0x63, 0xde5: 0x64, 0xde6: 0x65, 0xde7: 0x66, - 0xde8: 0x67, 0xde9: 0x68, 0xdea: 0x69, 0xdec: 0x6a, 0xded: 0x6b, 0xdee: 0x6c, 0xdef: 0x6d, - 0xdf0: 0x6e, 0xdf1: 0x6f, 0xdf3: 0x70, 0xdf4: 0x71, 0xdf5: 0x72, 0xdf6: 0x1eb, 0xdf7: 0x74, - 0xdf8: 0x21b, 0xdf9: 0x21c, 0xdfa: 0x21d, 0xdfb: 0x21e, 0xdfc: 0x79, 0xdfd: 0x7a, 0xdfe: 0x7b, 0xdff: 0x7c, - // Block 0x38, offset 0xe00 - 0xe02: 0x01, 0xe03: 0x217, 0xe04: 0x218, 0xe05: 0x04, 0xe06: 0x05, 0xe07: 0x219, - 0xe08: 0x21a, 0xe09: 0x08, 0xe0a: 0x09, 0xe0b: 0x0a, 0xe0c: 0x0b, 0xe0d: 0x0c, 0xe0e: 0x0d, 0xe0f: 0x0e, - 0xe10: 0x0f, 0xe11: 0x10, 0xe12: 0x11, 0xe13: 0x12, 0xe14: 0x13, 0xe15: 0x14, 0xe16: 0x15, 0xe17: 0x1bb, - 0xe18: 0x1bc, 0xe19: 0x1bd, 0xe1a: 0x19, 0xe1b: 0x1be, 0xe1c: 0x1b, 0xe1d: 0x1c, 0xe1e: 0x1d, 0xe1f: 0x1e, - 0xe20: 0x17, 0xe21: 0x35, 0xe22: 0x25, 0xe23: 0x04, 0xe24: 0x05, - 0xe2a: 0x06, 0xe2d: 0x07, 0xe2f: 0x1b, - 0xe30: 0x13, 0xe33: 0x15, - // Block 0x39, offset 0xe40 - 0xe42: 0x01, 0xe43: 0x1e6, 0xe44: 0x221, 0xe45: 0x1e8, 0xe46: 0x05, 0xe47: 0x1e9, - 0xe48: 0x1ea, 0xe49: 0x08, 0xe4a: 0x09, 0xe4b: 0x0a, 0xe4c: 0x0b, 0xe4d: 0x0c, 0xe4e: 0x0d, 0xe4f: 0x0e, - 0xe50: 0x0f, 0xe51: 0x10, 0xe52: 0x11, 0xe53: 0x12, 0xe54: 0x13, 0xe55: 0x14, 0xe56: 0x15, 0xe57: 0x1bb, - 0xe58: 0x1bc, 0xe59: 0x1bd, 0xe5a: 0x19, 0xe5b: 0x1be, 0xe5c: 0x1b, 0xe5d: 0x1c, 0xe5e: 0x1d, 0xe5f: 0x1e, - 0xe60: 0x17, 0xe61: 0x24, 0xe62: 0x25, 0xe63: 0x04, 0xe64: 0x05, - 0xe6a: 0x06, 0xe6d: 0x07, 0xe6f: 0x1b, - 0xe70: 0x13, 0xe73: 0x15, - // Block 0x3a, offset 0xe80 - 0xe80: 0x3f, 0xe81: 0x40, 0xe82: 0x41, 0xe83: 0x42, 0xe84: 0x222, 0xe85: 0x223, 0xe86: 0x224, 0xe87: 0x225, - 0xe88: 0x47, 0xe89: 0x48, 0xe8a: 0x49, 0xe8b: 0x4a, 0xe8c: 0x4b, 0xe8d: 0x4c, 0xe8e: 0x4d, 0xe8f: 0x4e, - 0xe90: 0x4f, 0xe91: 0x50, 0xe92: 0x51, 0xe93: 0x52, 0xe94: 0x53, 0xe95: 0x54, 0xe96: 0x55, 0xe97: 0x56, - 0xe98: 0x57, 0xe99: 0x58, 0xe9a: 0x59, 0xe9b: 0x5a, 0xe9c: 0x5b, 0xe9d: 0x5c, 0xe9e: 0x5d, 0xe9f: 0x5e, - 0xea0: 0x5f, 0xea1: 0x60, 0xea2: 0x61, 0xea3: 0x62, 0xea4: 0x63, 0xea5: 0x64, 0xea6: 0x65, 0xea7: 0x66, - 0xea8: 0x67, 0xea9: 0x68, 0xeaa: 0x69, 0xeac: 0x6a, 0xead: 0x6b, 0xeae: 0x6c, 0xeaf: 0x6d, - 0xeb0: 0x6e, 0xeb1: 0x6f, 0xeb3: 0x70, 0xeb4: 0x71, 0xeb5: 0x72, 0xeb6: 0x73, 0xeb7: 0x74, - 0xeb8: 0x75, 0xeb9: 0x76, 0xeba: 0x77, 0xebb: 0x78, 0xebc: 0x79, 0xebd: 0x7a, 0xebe: 0x7b, 0xebf: 0x7c, - // Block 0x3b, offset 0xec0 - 0xec2: 0x01, 0xec3: 0x02, 0xec4: 0x03, 0xec5: 0x04, 0xec6: 0x05, 0xec7: 0x06, - 0xec8: 0x07, 0xec9: 0x08, 0xeca: 0x09, 0xecb: 0x0a, 0xecc: 0x0b, 0xecd: 0x0c, 0xece: 0x0d, 0xecf: 0x0e, - 0xed0: 0x0f, 0xed1: 0x10, 0xed2: 0x11, 0xed3: 0x12, 0xed4: 0x13, 0xed5: 0x14, 0xed6: 0x15, 0xed7: 0x1bb, - 0xed8: 0x1bc, 0xed9: 0x1bd, 0xeda: 0x19, 0xedb: 0x1be, 0xedc: 0x1b, 0xedd: 0x1c, 0xede: 0x1d, 0xedf: 0x1e, - 0xee0: 0x17, 0xee1: 0x38, 0xee2: 0x20, 0xee3: 0x04, 0xee4: 0x05, - 0xeea: 0x06, 0xeed: 0x07, 0xeef: 0x1b, - 0xef0: 0x13, 0xef3: 0x15, - // Block 0x3c, offset 0xf00 - 0xf00: 0x3f, 0xf01: 0x40, 0xf02: 0x41, 0xf03: 0x42, 0xf04: 0x226, 0xf05: 0x227, 0xf06: 0x228, 0xf07: 0x229, - 0xf08: 0x47, 0xf09: 0x48, 0xf0a: 0x49, 0xf0b: 0x4a, 0xf0c: 0x4b, 0xf0d: 0x4c, 0xf0e: 0x4d, 0xf0f: 0x4e, - 0xf10: 0x4f, 0xf11: 0x50, 0xf12: 0x51, 0xf13: 0x52, 0xf14: 0x53, 0xf15: 0x54, 0xf16: 0x55, 0xf17: 0x56, - 0xf18: 0x57, 0xf19: 0x58, 0xf1a: 0x59, 0xf1b: 0x5a, 0xf1c: 0x5b, 0xf1d: 0x5c, 0xf1e: 0x5d, 0xf1f: 0x5e, - 0xf20: 0x5f, 0xf21: 0x60, 0xf22: 0x61, 0xf23: 0x62, 0xf24: 0x63, 0xf25: 0x64, 0xf26: 0x65, 0xf27: 0x66, - 0xf28: 0x67, 0xf29: 0x68, 0xf2a: 0x69, 0xf2c: 0x6a, 0xf2d: 0x6b, 0xf2e: 0x6c, 0xf2f: 0x6d, - 0xf30: 0x6e, 0xf31: 0x6f, 0xf33: 0x70, 0xf34: 0x71, 0xf35: 0x72, 0xf36: 0x73, 0xf37: 0x74, - 0xf38: 0x75, 0xf39: 0x76, 0xf3a: 0x77, 0xf3b: 0x78, 0xf3c: 0x79, 0xf3d: 0x7a, 0xf3e: 0x7b, 0xf3f: 0x7c, - // Block 0x3d, offset 0xf40 - 0xf40: 0xba, 0xf41: 0xbb, 0xf42: 0xbc, 0xf43: 0xbd, 0xf44: 0x22a, 0xf45: 0x22b, 0xf46: 0xc0, 0xf47: 0xc1, - 0xf48: 0xc2, 0xf49: 0x22c, 0xf4a: 0xc4, 0xf4b: 0xc5, 0xf4c: 0xc6, 0xf4d: 0xc7, 0xf4e: 0xc8, 0xf4f: 0xc9, - // Block 0x3e, offset 0xf80 - 0xf82: 0x01, 0xf83: 0x02, 0xf84: 0x03, 0xf85: 0x04, 0xf86: 0x05, 0xf87: 0x06, - 0xf88: 0x07, 0xf89: 0x08, 0xf8a: 0x09, 0xf8b: 0x0a, 0xf8c: 0x0b, 0xf8d: 0x0c, 0xf8e: 0x0d, 0xf8f: 0x0e, - 0xf90: 0x0f, 0xf91: 0x10, 0xf92: 0x11, 0xf93: 0x12, 0xf94: 0x13, 0xf95: 0x14, 0xf96: 0x15, 0xf97: 0x1bb, - 0xf98: 0x1bc, 0xf99: 0x1bd, 0xf9a: 0x19, 0xf9b: 0x1be, 0xf9c: 0x1b, 0xf9d: 0x1c, 0xf9e: 0x1d, 0xf9f: 0x1e, - 0xfa0: 0x17, 0xfa1: 0x3a, 0xfa2: 0x03, 0xfa3: 0x3b, 0xfa4: 0x05, - 0xfaa: 0x06, 0xfad: 0x07, 0xfaf: 0x1b, - 0xfb0: 0x13, 0xfb3: 0x15, - // Block 0x3f, offset 0xfc0 - 0xfc0: 0x3f, 0xfc1: 0x40, 0xfc2: 0x41, 0xfc3: 0x42, 0xfc4: 0x1c0, 0xfc5: 0x1c1, 0xfc6: 0x1c2, 0xfc7: 0x1c3, - 0xfc8: 0x47, 0xfc9: 0x48, 0xfca: 0x49, 0xfcb: 0x4a, 0xfcc: 0x4b, 0xfcd: 0x4c, 0xfce: 0x4d, 0xfcf: 0x4e, - 0xfd0: 0x4f, 0xfd1: 0x50, 0xfd2: 0x51, 0xfd3: 0x52, 0xfd4: 0x53, 0xfd5: 0x54, 0xfd6: 0x55, 0xfd7: 0x56, - 0xfd8: 0x57, 0xfd9: 0x58, 0xfda: 0x59, 0xfdb: 0x5a, 0xfdc: 0x5b, 0xfdd: 0x5c, 0xfde: 0x5d, 0xfdf: 0x5e, - 0xfe0: 0x5f, 0xfe1: 0x60, 0xfe2: 0x61, 0xfe3: 0x62, 0xfe4: 0x63, 0xfe5: 0x64, 0xfe6: 0x65, 0xfe7: 0x66, - 0xfe8: 0x67, 0xfe9: 0x68, 0xfea: 0x69, 0xfec: 0x6a, 0xfed: 0x6b, 0xfee: 0x6c, 0xfef: 0x6d, - 0xff0: 0x6e, 0xff1: 0x6f, 0xff3: 0x70, 0xff4: 0x71, 0xff5: 0x72, 0xff6: 0x1eb, 0xff7: 0x74, - 0xff8: 0x75, 0xff9: 0x238, 0xffa: 0x239, 0xffb: 0x23a, 0xffc: 0x79, 0xffd: 0x7a, 0xffe: 0x7b, 0xfff: 0x7c, - // Block 0x40, offset 0x1000 - 0x1000: 0x7d, 0x1001: 0x7e, 0x1002: 0x7f, 0x1003: 0x80, 0x1004: 0x203, 0x1005: 0x82, 0x1006: 0x83, 0x1007: 0x84, - 0x1008: 0x85, 0x1009: 0x1c9, 0x100a: 0x87, 0x100b: 0x88, 0x100c: 0x89, 0x100d: 0x8a, 0x100e: 0x8b, 0x100f: 0x8c, - 0x1010: 0x8d, 0x1011: 0x8e, 0x1012: 0x8f, 0x1013: 0x90, 0x1014: 0x91, 0x1015: 0x92, 0x1016: 0x93, 0x1017: 0x94, - 0x1018: 0x95, 0x1019: 0x96, 0x101a: 0x97, 0x101b: 0x98, 0x101c: 0x99, 0x101d: 0x9a, 0x101e: 0x9b, 0x101f: 0x9c, - 0x1020: 0x9d, 0x1021: 0x9e, 0x1022: 0x9f, 0x1023: 0xa0, 0x1024: 0xa1, 0x1025: 0xa2, 0x1026: 0xa3, 0x1027: 0xa4, - 0x1028: 0xa5, 0x1029: 0xa6, 0x102a: 0xa7, 0x102b: 0xa8, 0x102c: 0xa9, 0x102d: 0xaa, - 0x1030: 0xab, 0x1031: 0xac, 0x1032: 0xad, 0x1033: 0xae, 0x1034: 0xaf, 0x1035: 0xb0, 0x1036: 0xb1, 0x1037: 0xb2, - 0x1038: 0xb3, 0x103a: 0xb4, 0x103b: 0xb5, 0x103c: 0xb6, 0x103d: 0xb7, 0x103e: 0xb8, 0x103f: 0xb9, - // Block 0x41, offset 0x1040 - 0x1042: 0x01, 0x1043: 0x231, 0x1044: 0x232, 0x1045: 0x233, 0x1046: 0x234, 0x1047: 0x235, - 0x1048: 0x236, 0x1049: 0x08, 0x104a: 0x237, 0x104b: 0x0a, 0x104c: 0x0b, 0x104d: 0x0c, 0x104e: 0x0d, 0x104f: 0x0e, - 0x1050: 0x0f, 0x1051: 0x10, 0x1052: 0x11, 0x1053: 0x12, 0x1054: 0x13, 0x1055: 0x14, 0x1056: 0x15, 0x1057: 0x1bb, - 0x1058: 0x1bc, 0x1059: 0x1bd, 0x105a: 0x19, 0x105b: 0x1be, 0x105c: 0x1b, 0x105d: 0x1c, 0x105e: 0x1d, 0x105f: 0x1e, - 0x1060: 0x17, 0x1061: 0x3d, 0x1062: 0x3e, 0x1063: 0x04, 0x1064: 0x05, - 0x106a: 0x06, 0x106d: 0x07, 0x106f: 0x1b, - 0x1070: 0x13, 0x1073: 0x15, - // Block 0x42, offset 0x1080 - 0x1080: 0x3f, 0x1081: 0x40, 0x1082: 0x41, 0x1083: 0x42, 0x1084: 0x1c0, 0x1085: 0x1c1, 0x1086: 0x1c2, 0x1087: 0x1c3, - 0x1088: 0x47, 0x1089: 0x48, 0x108a: 0x49, 0x108b: 0x4a, 0x108c: 0x4b, 0x108d: 0x4c, 0x108e: 0x4d, 0x108f: 0x4e, - 0x1090: 0x4f, 0x1091: 0x50, 0x1092: 0x51, 0x1093: 0x52, 0x1094: 0x53, 0x1095: 0x54, 0x1096: 0x55, 0x1097: 0x56, - 0x1098: 0x57, 0x1099: 0x58, 0x109a: 0x59, 0x109b: 0x5a, 0x109c: 0x5b, 0x109d: 0x5c, 0x109e: 0x5d, 0x109f: 0x5e, - 0x10a0: 0x5f, 0x10a1: 0x60, 0x10a2: 0x61, 0x10a3: 0x62, 0x10a4: 0x63, 0x10a5: 0x64, 0x10a6: 0x65, 0x10a7: 0x66, - 0x10a8: 0x67, 0x10a9: 0x68, 0x10aa: 0x69, 0x10ac: 0x6a, 0x10ad: 0x6b, 0x10ae: 0x6c, 0x10af: 0x6d, - 0x10b0: 0x6e, 0x10b1: 0x6f, 0x10b3: 0x70, 0x10b4: 0x71, 0x10b5: 0x72, 0x10b6: 0x73, 0x10b7: 0x74, - 0x10b8: 0x1e0, 0x10b9: 0x1e1, 0x10ba: 0x1e2, 0x10bb: 0x241, 0x10bc: 0x79, 0x10bd: 0x7a, 0x10be: 0x7b, 0x10bf: 0x7c, - // Block 0x43, offset 0x10c0 - 0x10c2: 0x01, 0x10c3: 0x23d, 0x10c4: 0x23e, 0x10c5: 0x23f, 0x10c6: 0x05, 0x10c7: 0x240, - 0x10c8: 0x07, 0x10c9: 0x08, 0x10ca: 0x09, 0x10cb: 0x0a, 0x10cc: 0x0b, 0x10cd: 0x0c, 0x10ce: 0x0d, 0x10cf: 0x0e, - 0x10d0: 0x0f, 0x10d1: 0x10, 0x10d2: 0x11, 0x10d3: 0x12, 0x10d4: 0x13, 0x10d5: 0x14, 0x10d6: 0x15, 0x10d7: 0x1bb, - 0x10d8: 0x1bc, 0x10d9: 0x1bd, 0x10da: 0x19, 0x10db: 0x1be, 0x10dc: 0x1b, 0x10dd: 0x1c, 0x10de: 0x1d, 0x10df: 0x1e, - 0x10e0: 0x17, 0x10e1: 0x40, 0x10e2: 0x20, 0x10e3: 0x04, 0x10e4: 0x05, - 0x10ea: 0x06, 0x10ed: 0x07, 0x10ef: 0x1b, - 0x10f0: 0x13, 0x10f3: 0x15, - // Block 0x44, offset 0x1100 - 0x1100: 0x3f, 0x1101: 0x40, 0x1102: 0x41, 0x1103: 0x42, 0x1104: 0x1c0, 0x1105: 0x1c1, 0x1106: 0x1c2, 0x1107: 0x1c3, - 0x1108: 0x47, 0x1109: 0x48, 0x110a: 0x49, 0x110b: 0x4a, 0x110c: 0x4b, 0x110d: 0x4c, 0x110e: 0x4d, 0x110f: 0x4e, - 0x1110: 0x4f, 0x1111: 0x50, 0x1112: 0x51, 0x1113: 0x52, 0x1114: 0x53, 0x1115: 0x54, 0x1116: 0x55, 0x1117: 0x56, - 0x1118: 0x57, 0x1119: 0x58, 0x111a: 0x59, 0x111b: 0x5a, 0x111c: 0x5b, 0x111d: 0x5c, 0x111e: 0x5d, 0x111f: 0x5e, - 0x1120: 0x5f, 0x1121: 0x60, 0x1122: 0x61, 0x1123: 0x62, 0x1124: 0x63, 0x1125: 0x64, 0x1126: 0x65, 0x1127: 0x66, - 0x1128: 0x67, 0x1129: 0x68, 0x112a: 0x69, 0x112c: 0x6a, 0x112d: 0x6b, 0x112e: 0x6c, 0x112f: 0x6d, - 0x1130: 0x6e, 0x1131: 0x6f, 0x1133: 0x70, 0x1134: 0x71, 0x1135: 0x72, 0x1136: 0x1eb, 0x1137: 0x74, - 0x1138: 0x75, 0x1139: 0x248, 0x113a: 0x201, 0x113b: 0x249, 0x113c: 0x79, 0x113d: 0x7a, 0x113e: 0x7b, 0x113f: 0x7c, - // Block 0x45, offset 0x1140 - 0x1142: 0x01, 0x1143: 0x244, 0x1144: 0x245, 0x1145: 0x246, 0x1146: 0x05, 0x1147: 0x1fe, - 0x1148: 0x247, 0x1149: 0x08, 0x114a: 0x09, 0x114b: 0x0a, 0x114c: 0x0b, 0x114d: 0x0c, 0x114e: 0x0d, 0x114f: 0x0e, - 0x1150: 0x0f, 0x1151: 0x10, 0x1152: 0x11, 0x1153: 0x12, 0x1154: 0x13, 0x1155: 0x14, 0x1156: 0x15, 0x1157: 0x1bb, - 0x1158: 0x1bc, 0x1159: 0x1bd, 0x115a: 0x19, 0x115b: 0x1be, 0x115c: 0x1b, 0x115d: 0x1c, 0x115e: 0x1d, 0x115f: 0x1e, - 0x1160: 0x17, 0x1161: 0x42, 0x1162: 0x2c, 0x1163: 0x2d, 0x1164: 0x05, - 0x116a: 0x06, 0x116d: 0x07, 0x116f: 0x1b, - 0x1170: 0x2f, 0x1173: 0x15, - // Block 0x46, offset 0x1180 - 0x1180: 0x3f, 0x1181: 0x40, 0x1182: 0x41, 0x1183: 0x42, 0x1184: 0x1c0, 0x1185: 0x1c1, 0x1186: 0x1c2, 0x1187: 0x1c3, - 0x1188: 0x47, 0x1189: 0x48, 0x118a: 0x49, 0x118b: 0x4a, 0x118c: 0x4b, 0x118d: 0x4c, 0x118e: 0x4d, 0x118f: 0x4e, - 0x1190: 0x4f, 0x1191: 0x50, 0x1192: 0x51, 0x1193: 0x52, 0x1194: 0x53, 0x1195: 0x54, 0x1196: 0x55, 0x1197: 0x56, - 0x1198: 0x57, 0x1199: 0x58, 0x119a: 0x59, 0x119b: 0x5a, 0x119c: 0x5b, 0x119d: 0x5c, 0x119e: 0x5d, 0x119f: 0x5e, - 0x11a0: 0x5f, 0x11a1: 0x60, 0x11a2: 0x61, 0x11a3: 0x62, 0x11a4: 0x63, 0x11a5: 0x64, 0x11a6: 0x65, 0x11a7: 0x66, - 0x11a8: 0x67, 0x11a9: 0x68, 0x11aa: 0x69, 0x11ac: 0x6a, 0x11ad: 0x6b, 0x11ae: 0x6c, 0x11af: 0x6d, - 0x11b0: 0x6e, 0x11b1: 0x6f, 0x11b3: 0x70, 0x11b4: 0x71, 0x11b5: 0x72, 0x11b6: 0x73, 0x11b7: 0x74, - 0x11b8: 0x1c4, 0x11b9: 0x1c5, 0x11ba: 0x77, 0x11bb: 0x1c7, 0x11bc: 0x79, 0x11bd: 0x7a, 0x11be: 0x7b, 0x11bf: 0x7c, - // Block 0x47, offset 0x11c0 - 0x11c0: 0x7d, 0x11c1: 0x7e, 0x11c2: 0x7f, 0x11c3: 0x80, 0x11c4: 0x81, 0x11c5: 0x24c, 0x11c6: 0x83, 0x11c7: 0x84, - 0x11c8: 0x85, 0x11c9: 0x1c9, 0x11ca: 0x87, 0x11cb: 0x88, 0x11cc: 0x89, 0x11cd: 0x8a, 0x11ce: 0x8b, 0x11cf: 0x8c, - 0x11d0: 0x8d, 0x11d1: 0x8e, 0x11d2: 0x8f, 0x11d3: 0x90, 0x11d4: 0x91, 0x11d5: 0x92, 0x11d6: 0x93, 0x11d7: 0x94, - 0x11d8: 0x95, 0x11d9: 0x96, 0x11da: 0x97, 0x11db: 0x98, 0x11dc: 0x99, 0x11dd: 0x9a, 0x11de: 0x9b, 0x11df: 0x9c, - 0x11e0: 0x9d, 0x11e1: 0x9e, 0x11e2: 0x9f, 0x11e3: 0xa0, 0x11e4: 0xa1, 0x11e5: 0xa2, 0x11e6: 0xa3, 0x11e7: 0xa4, - 0x11e8: 0xa5, 0x11e9: 0xa6, 0x11ea: 0xa7, 0x11eb: 0xa8, 0x11ec: 0xa9, 0x11ed: 0xaa, - 0x11f0: 0xab, 0x11f1: 0xac, 0x11f2: 0xad, 0x11f3: 0xae, 0x11f4: 0xaf, 0x11f5: 0xb0, 0x11f6: 0xb1, 0x11f7: 0xb2, - 0x11f8: 0xb3, 0x11fa: 0xb4, 0x11fb: 0xb5, 0x11fc: 0xb6, 0x11fd: 0xb7, 0x11fe: 0xb8, 0x11ff: 0xb9, - // Block 0x48, offset 0x1200 - 0x1200: 0xba, 0x1201: 0xbb, 0x1202: 0xbc, 0x1203: 0xbd, 0x1204: 0xbe, 0x1205: 0xbf, 0x1206: 0xc0, 0x1207: 0xc1, - 0x1208: 0xc2, 0x1209: 0xc3, 0x120a: 0xc4, 0x120b: 0xc5, 0x120c: 0xc6, 0x120d: 0x1cb, 0x120e: 0xc8, 0x120f: 0xc9, - // Block 0x49, offset 0x1240 - 0x1240: 0x18b, 0x1241: 0x18c, 0x1242: 0x18d, 0x1243: 0x18e, 0x1244: 0x24d, 0x1245: 0x190, 0x1246: 0x191, 0x1247: 0x192, - 0x1248: 0x193, 0x1249: 0x194, 0x124c: 0x195, 0x124d: 0x196, 0x124e: 0x197, 0x124f: 0x198, - 0x1250: 0x199, 0x1251: 0x19a, 0x1252: 0x19b, 0x1253: 0x19c, 0x1254: 0x19d, 0x1255: 0x19e, 0x1257: 0x19f, - 0x1258: 0x1a0, 0x1259: 0x1a1, 0x125a: 0x1a2, 0x125b: 0x1a3, 0x125c: 0x1a4, 0x125d: 0x1a5, - // Block 0x4a, offset 0x1280 - 0x1290: 0x09, 0x1291: 0x0a, 0x1292: 0x0b, 0x1293: 0x0c, 0x1296: 0x0d, - 0x129b: 0x0e, 0x129d: 0x0f, 0x129e: 0x10, 0x129f: 0x47, - 0x12af: 0x12, - // Block 0x4b, offset 0x12c0 - 0x12c2: 0x01, 0x12c3: 0x1b4, 0x12c4: 0x1b5, 0x12c5: 0x1b6, 0x12c6: 0x05, 0x12c7: 0x1b8, - 0x12c8: 0x1b9, 0x12c9: 0x08, 0x12ca: 0x09, 0x12cb: 0x0a, 0x12cc: 0x0b, 0x12cd: 0x0c, 0x12ce: 0x0d, 0x12cf: 0x0e, - 0x12d0: 0x0f, 0x12d1: 0x10, 0x12d2: 0x11, 0x12d3: 0x12, 0x12d4: 0x13, 0x12d5: 0x14, 0x12d6: 0x15, 0x12d7: 0x1bb, - 0x12d8: 0x1bc, 0x12d9: 0x1bd, 0x12da: 0x19, 0x12db: 0x1be, 0x12dc: 0x1b, 0x12dd: 0x1c, 0x12de: 0x1d, 0x12df: 0x1e, - 0x12e0: 0x17, 0x12e1: 0x44, 0x12e2: 0x45, 0x12e3: 0x46, 0x12e4: 0x05, - 0x12ea: 0x06, 0x12ed: 0x07, 0x12ef: 0x1b, - 0x12f0: 0x48, 0x12f3: 0x15, -} - -// mainCTEntries: 248 entries, 992 bytes -var mainCTEntries = [248]struct{ l, h, n, i uint8 }{ - {0xCE, 0x1, 1, 255}, - {0xC2, 0x0, 1, 255}, - {0xB7, 0xB7, 0, 1}, - {0x87, 0x87, 0, 2}, - {0xCC, 0x0, 2, 255}, - {0x88, 0x88, 0, 2}, - {0x86, 0x86, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x88, 0x88, 0, 1}, - {0xCD, 0x1, 1, 255}, - {0xCC, 0x0, 1, 255}, - {0x81, 0x81, 0, 1}, - {0x81, 0x81, 0, 2}, - {0xCC, 0x0, 1, 255}, - {0x86, 0x86, 0, 1}, - {0xCC, 0x0, 3, 255}, - {0x8B, 0x8B, 0, 3}, - {0x88, 0x88, 0, 2}, - {0x86, 0x86, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x8F, 0x8F, 0, 1}, - {0xD9, 0x0, 1, 255}, - {0x93, 0x95, 0, 1}, - {0xD9, 0x0, 1, 255}, - {0x94, 0x94, 0, 1}, - {0xE0, 0x0, 2, 255}, - {0xA7, 0x1, 1, 255}, - {0xA6, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0x97, 0x97, 0, 2}, - {0xE0, 0x0, 2, 255}, - {0xAD, 0x1, 1, 255}, - {0xAC, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0x96, 0x97, 0, 2}, - {0xE0, 0x0, 1, 255}, - {0xAF, 0x0, 1, 255}, - {0x97, 0x97, 0, 1}, - {0xE0, 0x0, 2, 255}, - {0xAF, 0x1, 1, 255}, - {0xAE, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0x97, 0x97, 0, 2}, - {0xE0, 0x0, 1, 255}, - {0xAE, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB1, 0x0, 1, 255}, - {0x96, 0x96, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB3, 0x0, 1, 255}, - {0x95, 0x95, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB3, 0x0, 2, 255}, - {0x95, 0x96, 0, 3}, - {0x82, 0x0, 1, 2}, - {0xE0, 0x0, 1, 255}, - {0xB3, 0x0, 1, 255}, - {0x95, 0x95, 0, 1}, - {0xE0, 0x0, 2, 255}, - {0xB5, 0x1, 1, 255}, - {0xB4, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0x97, 0x97, 0, 2}, - {0xE0, 0x0, 1, 255}, - {0xB4, 0x0, 1, 255}, - {0xBE, 0xBE, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB7, 0x0, 3, 255}, - {0x9F, 0x9F, 0, 4}, - {0x8F, 0x0, 1, 3}, - {0x8A, 0x8A, 0, 2}, - {0xE0, 0x0, 1, 255}, - {0xB7, 0x0, 1, 255}, - {0x8A, 0x8A, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB7, 0x0, 1, 255}, - {0x8A, 0x8A, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB8, 0x0, 1, 255}, - {0x81, 0xAE, 0, 1}, - {0xE0, 0x0, 1, 255}, - {0xB8, 0x0, 1, 255}, - {0xB2, 0xB2, 0, 1}, - {0xE0, 0x0, 2, 255}, - {0xBB, 0xC, 1, 255}, - {0xBA, 0x0, 12, 255}, - {0xAD, 0xAE, 0, 26}, - {0xAA, 0xAB, 0, 24}, - {0xA7, 0xA7, 0, 23}, - {0xA5, 0xA5, 0, 22}, - {0xA1, 0xA3, 0, 19}, - {0x99, 0x9F, 0, 12}, - {0x94, 0x97, 0, 8}, - {0x8D, 0x8D, 0, 7}, - {0x8A, 0x8A, 0, 6}, - {0x87, 0x88, 0, 4}, - {0x84, 0x84, 0, 3}, - {0x81, 0x82, 0, 1}, - {0x9C, 0x9F, 0, 28}, - {0xE0, 0x0, 1, 255}, - {0xBA, 0x0, 1, 255}, - {0xB2, 0xB2, 0, 1}, - {0xEA, 0x0, 1, 255}, - {0xAA, 0x0, 1, 255}, - {0x80, 0xAF, 0, 1}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0x7, 1, 255}, - {0xBD, 0x0, 1, 255}, - {0xB1, 0x0, 1, 255}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0x2, 1, 255}, - {0xBD, 0x0, 2, 255}, - {0xB4, 0xB4, 0, 2}, - {0xB2, 0xB2, 0, 1}, - {0x80, 0x80, 0, 3}, - {0x80, 0x81, 0, 4}, - {0xE0, 0x0, 2, 255}, - {0xBE, 0x2, 1, 255}, - {0xBD, 0x0, 2, 255}, - {0xB4, 0xB4, 0, 2}, - {0xB2, 0xB2, 0, 1}, - {0x80, 0x80, 0, 3}, - {0xE1, 0x0, 1, 255}, - {0x80, 0x0, 1, 255}, - {0xAE, 0xAE, 0, 1}, - {0xF0, 0x0, 1, 255}, - {0x91, 0x0, 1, 255}, - {0x84, 0x0, 1, 255}, - {0xA7, 0xA7, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0xAC, 0x0, 1, 255}, - {0xB5, 0xB5, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0xB8, 0xB8, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0xA7, 0xA7, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x87, 0x87, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x81, 0x81, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x8C, 0x8C, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x8C, 0x8C, 0, 2}, - {0x81, 0x81, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x8A, 0x8A, 0, 2}, - {0x81, 0x81, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x8B, 0x8B, 0, 2}, - {0x88, 0x88, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x61, 0x61, 0, 3}, - {0x8A, 0x8A, 0, 2}, - {0x88, 0x88, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x61, 0x61, 0, 4}, - {0x41, 0x41, 0, 3}, - {0x8A, 0x8A, 0, 2}, - {0x88, 0x88, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0xA8, 0xA8, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x83, 0x83, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x8A, 0x8A, 0, 2}, - {0x88, 0x88, 0, 1}, - {0xCC, 0x0, 3, 255}, - {0x8B, 0x8B, 0, 3}, - {0x88, 0x88, 0, 2}, - {0x83, 0x83, 0, 1}, - {0xC5, 0x2, 1, 255}, - {0x7A, 0x0, 1, 255}, - {0xCC, 0x0, 1, 255}, - {0x8C, 0x8C, 0, 1}, - {0xBE, 0xBE, 0, 2}, - {0xC5, 0x4, 1, 255}, - {0x7A, 0x2, 1, 255}, - {0x5A, 0x0, 1, 255}, - {0xCC, 0x0, 1, 255}, - {0x8C, 0x8C, 0, 1}, - {0xCC, 0x0, 1, 255}, - {0x8C, 0x8C, 0, 2}, - {0xBD, 0xBE, 0, 3}, - {0xCE, 0x1, 1, 255}, - {0xC2, 0x0, 1, 255}, - {0x6A, 0x6A, 0, 3}, - {0xB7, 0xB7, 0, 1}, - {0x87, 0x87, 0, 2}, - {0xCE, 0x1, 1, 255}, - {0xC2, 0x0, 1, 255}, - {0x6A, 0x6A, 0, 4}, - {0x4A, 0x4A, 0, 3}, - {0xB7, 0xB7, 0, 1}, - {0x87, 0x87, 0, 2}, - {0x6A, 0x6A, 0, 1}, - {0x6A, 0x6A, 0, 2}, - {0x4A, 0x4A, 0, 1}, - {0xCC, 0x0, 3, 255}, - {0x8A, 0x8A, 0, 3}, - {0x88, 0x88, 0, 2}, - {0x81, 0x81, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x88, 0x88, 0, 2}, - {0x81, 0x81, 0, 1}, - {0x27, 0x27, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x84, 0x0, 1, 255}, - {0x80, 0x80, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x84, 0x0, 1, 255}, - {0x83, 0x83, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x84, 0x0, 1, 255}, - {0x87, 0x87, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x84, 0x0, 1, 255}, - {0x89, 0x89, 0, 1}, - {0xE1, 0x0, 1, 255}, - {0x84, 0x0, 1, 255}, - {0x8C, 0x8C, 0, 1}, - {0xCC, 0x0, 4, 255}, - {0x8A, 0x8A, 0, 5}, - {0x87, 0x88, 0, 3}, - {0x83, 0x83, 0, 2}, - {0x81, 0x81, 0, 1}, - {0xCC, 0x0, 2, 255}, - {0x83, 0x83, 0, 2}, - {0x81, 0x81, 0, 1}, - {0xCC, 0x0, 4, 255}, - {0xA8, 0xA8, 0, 5}, - {0x8B, 0x8B, 0, 4}, - {0x88, 0x88, 0, 3}, - {0x82, 0x83, 0, 1}, - {0xCE, 0x3, 1, 255}, - {0xCC, 0x1, 2, 255}, - {0xC2, 0x0, 1, 255}, - {0xB7, 0xB7, 0, 1}, - {0x8C, 0x8C, 0, 3}, - {0x81, 0x81, 0, 2}, - {0x87, 0x87, 0, 4}, - {0xCC, 0x0, 1, 255}, - {0x81, 0x82, 0, 1}, - {0xCC, 0x0, 3, 255}, - {0x8B, 0x8B, 0, 3}, - {0x88, 0x88, 0, 2}, - {0x82, 0x82, 0, 1}, -} - -// Total size of mainTable is 210136 bytes diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform/examples_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform/examples_test.go deleted file mode 100644 index ffd53968..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform/examples_test.go +++ /dev/null @@ -1,37 +0,0 @@ -// 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_test - -import ( - "fmt" - "unicode" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm" -) - -func ExampleRemoveFunc() { - input := []byte(`tschüß; до ÑвиданиÑ`) - - b := make([]byte, len(input)) - - t := transform.RemoveFunc(unicode.IsSpace) - n, _, _ := t.Transform(b, input, true) - fmt.Println(string(b[:n])) - - t = transform.RemoveFunc(func(r rune) bool { - return !unicode.Is(unicode.Latin, r) - }) - n, _, _ = t.Transform(b, input, true) - fmt.Println(string(b[:n])) - - n, _, _ = t.Transform(b, norm.NFD.Bytes(input), true) - fmt.Println(string(b[:n])) - - // Output: - // tschüß;доÑÐ²Ð¸Ð´Ð°Ð½Ð¸Ñ - // tschüß - // tschuß -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform/transform.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform/transform.go deleted file mode 100644 index 157ee789..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform/transform.go +++ /dev/null @@ -1,616 +0,0 @@ -// 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 ( - "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") - - // 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() -} - -// 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 && 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 - } - } else { - n += nSrc - } - switch { - case err == ErrShortDst && (nDst > 0 || nSrc > 0): - case err == ErrShortSrc && 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 - return n, nil - case err == nil && w.n > 0: - return n, errInconsistentByteCount - default: - return n, err - } - } -} - -// Close implements the io.Closer interface. -func (w *Writer) Close() error { - for src := w.src[:w.n]; len(src) > 0; { - nDst, nSrc, err := w.t.Transform(w.dst, src, true) - if nDst == 0 { - return err - } - if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { - return werr - } - if err != ErrShortDst { - return err - } - src = src[nSrc:] - } - return nil -} - -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 -} - -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 Transformer that copies src to dst. - Nop Transformer = 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 - } -} - -// 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 -} - -// RemoveFunc returns a Transformer that removes from the input all runes r for -// which f(r) is true. Illegal bytes in the input are replaced by RuneError. -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 <= 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) { - if s == "" { - return "", 0, nil - } - - t.Reset() - - // 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] - - // Avoid allocation if the transformed string is identical to the original. - // After this loop, pDst will point to the furthest point in s for which it - // could be detected that t gives equal results, src[:nSrc] will - // indicated the last processed chunk of s for which the output is not equal - // and dst[:nDst] will be the transform of this chunk. - var nDst, nSrc int - pDst := 0 // Used as index in both src and dst in this loop. - for { - n := copy(src, s[pDst:]) - nDst, nSrc, err = t.Transform(dst, src[:n], pDst+n == len(s)) - - // Note 1: we will not enter the loop with pDst == len(s) and we will - // not end the loop with it either. So if nSrc is 0, this means there is - // some kind of error from which we cannot recover given the current - // buffer sizes. We will give up in this case. - // Note 2: it is not entirely correct to simply do a bytes.Equal as - // a Transformer may buffer internally. It will work in most cases, - // though, and no harm is done if it doesn't work. - // TODO: let transformers implement an optional Spanner interface, akin - // to norm's QuickSpan. This would even allow us to avoid any allocation. - if nSrc == 0 || !bytes.Equal(dst[:nDst], src[:nSrc]) { - break - } - - if pDst += nDst; pDst == len(s) { - return s, pDst, nil - } - } - - // Move the bytes seen so far to dst. - pSrc := pDst + nSrc - if pDst+nDst <= initialBufSize { - copy(dst[pDst:], dst[:nDst]) - } else { - b := make([]byte, len(s)+nDst-nSrc) - copy(b[pDst:], dst[:nDst]) - dst = b - } - copy(dst, s[:pDst]) - pDst += nDst - - if err != nil && err != ErrShortDst && err != ErrShortSrc { - return string(dst[:pDst]), pSrc, err - } - - // Complete the string with the remainder. - for { - n := copy(src, s[pSrc:]) - nDst, nSrc, err = t.Transform(dst[pDst:], src[:n], pSrc+n == len(s)) - pDst += nDst - pSrc += nSrc - - switch err { - case nil: - if pSrc == len(s) { - return string(dst[:pDst]), pSrc, nil - } - case ErrShortDst: - // Do not grow as long as we can make progress. This may avoid - // excessive allocations. - if nDst == 0 { - dst = grow(dst, pDst) - } - case ErrShortSrc: - if nSrc == 0 { - src = grow(src, 0) - } - default: - 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) { - t.Reset() - dst := make([]byte, len(b)) - pDst, pSrc := 0, 0 - for { - nDst, nSrc, err := t.Transform(dst[pDst:], b[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/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform/transform_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform/transform_test.go deleted file mode 100644 index b463f4f1..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform/transform_test.go +++ /dev/null @@ -1,1082 +0,0 @@ -// 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 - -import ( - "bytes" - "errors" - "fmt" - "io/ioutil" - "strconv" - "strings" - "testing" - "time" - "unicode/utf8" -) - -type lowerCaseASCII struct{ NopResetter } - -func (lowerCaseASCII) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := len(src) - if n > len(dst) { - n, err = len(dst), ErrShortDst - } - for i, c := range src[:n] { - if 'A' <= c && c <= 'Z' { - c += 'a' - 'A' - } - dst[i] = c - } - return n, n, err -} - -var errYouMentionedX = errors.New("you mentioned X") - -type dontMentionX struct{ NopResetter } - -func (dontMentionX) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := len(src) - if n > len(dst) { - n, err = len(dst), ErrShortDst - } - for i, c := range src[:n] { - if c == 'X' { - return i, i, errYouMentionedX - } - dst[i] = c - } - return n, n, err -} - -// doublerAtEOF is a strange Transformer that transforms "this" to "tthhiiss", -// but only if atEOF is true. -type doublerAtEOF struct{ NopResetter } - -func (doublerAtEOF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if !atEOF { - return 0, 0, ErrShortSrc - } - for i, c := range src { - if 2*i+2 >= len(dst) { - return 2 * i, i, ErrShortDst - } - dst[2*i+0] = c - dst[2*i+1] = c - } - return 2 * len(src), len(src), nil -} - -// rleDecode and rleEncode implement a toy run-length encoding: "aabbbbbbbbbb" -// is encoded as "2a10b". The decoding is assumed to not contain any numbers. - -type rleDecode struct{ NopResetter } - -func (rleDecode) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { -loop: - for len(src) > 0 { - n := 0 - for i, c := range src { - if '0' <= c && c <= '9' { - n = 10*n + int(c-'0') - continue - } - if i == 0 { - return nDst, nSrc, errors.New("rleDecode: bad input") - } - if n > len(dst) { - return nDst, nSrc, ErrShortDst - } - for j := 0; j < n; j++ { - dst[j] = c - } - dst, src = dst[n:], src[i+1:] - nDst, nSrc = nDst+n, nSrc+i+1 - continue loop - } - if atEOF { - return nDst, nSrc, errors.New("rleDecode: bad input") - } - return nDst, nSrc, ErrShortSrc - } - return nDst, nSrc, nil -} - -type rleEncode struct { - NopResetter - - // allowStutter means that "xxxxxxxx" can be encoded as "5x3x" - // instead of always as "8x". - allowStutter bool -} - -func (e rleEncode) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for len(src) > 0 { - n, c0 := len(src), src[0] - for i, c := range src[1:] { - if c != c0 { - n = i + 1 - break - } - } - if n == len(src) && !atEOF && !e.allowStutter { - return nDst, nSrc, ErrShortSrc - } - s := strconv.Itoa(n) - if len(s) >= len(dst) { - return nDst, nSrc, ErrShortDst - } - copy(dst, s) - dst[len(s)] = c0 - dst, src = dst[len(s)+1:], src[n:] - nDst, nSrc = nDst+len(s)+1, nSrc+n - } - return nDst, nSrc, nil -} - -// trickler consumes all input bytes, but writes a single byte at a time to dst. -type trickler []byte - -func (t *trickler) Reset() { - *t = nil -} - -func (t *trickler) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - *t = append(*t, src...) - if len(*t) == 0 { - return 0, 0, nil - } - if len(dst) == 0 { - return 0, len(src), ErrShortDst - } - dst[0] = (*t)[0] - *t = (*t)[1:] - if len(*t) > 0 { - err = ErrShortDst - } - return 1, len(src), err -} - -// delayedTrickler is like trickler, but delays writing output to dst. This is -// highly unlikely to be relevant in practice, but it seems like a good idea -// to have some tolerance as long as progress can be detected. -type delayedTrickler []byte - -func (t *delayedTrickler) Reset() { - *t = nil -} -func (t *delayedTrickler) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if len(*t) > 0 && len(dst) > 0 { - dst[0] = (*t)[0] - *t = (*t)[1:] - nDst = 1 - } - *t = append(*t, src...) - if len(*t) > 0 { - err = ErrShortDst - } - return nDst, len(src), err -} - -type testCase struct { - desc string - t Transformer - src string - dstSize int - srcSize int - ioSize int - wantStr string - wantErr error - wantIter int // number of iterations taken; 0 means we don't care. -} - -func (t testCase) String() string { - return tstr(t.t) + "; " + t.desc -} - -func tstr(t Transformer) string { - if stringer, ok := t.(fmt.Stringer); ok { - return stringer.String() - } - s := fmt.Sprintf("%T", t) - return s[1+strings.Index(s, "."):] -} - -func (c chain) String() string { - buf := &bytes.Buffer{} - buf.WriteString("Chain(") - for i, l := range c.link[:len(c.link)-1] { - if i != 0 { - fmt.Fprint(buf, ", ") - } - buf.WriteString(tstr(l.t)) - } - buf.WriteString(")") - return buf.String() -} - -var testCases = []testCase{ - { - desc: "empty", - t: lowerCaseASCII{}, - src: "", - dstSize: 100, - srcSize: 100, - wantStr: "", - }, - - { - desc: "basic", - t: lowerCaseASCII{}, - src: "Hello WORLD.", - dstSize: 100, - srcSize: 100, - wantStr: "hello world.", - }, - - { - desc: "small dst", - t: lowerCaseASCII{}, - src: "Hello WORLD.", - dstSize: 3, - srcSize: 100, - wantStr: "hello world.", - }, - - { - desc: "small src", - t: lowerCaseASCII{}, - src: "Hello WORLD.", - dstSize: 100, - srcSize: 4, - wantStr: "hello world.", - }, - - { - desc: "small buffers", - t: lowerCaseASCII{}, - src: "Hello WORLD.", - dstSize: 3, - srcSize: 4, - wantStr: "hello world.", - }, - - { - desc: "very small buffers", - t: lowerCaseASCII{}, - src: "Hello WORLD.", - dstSize: 1, - srcSize: 1, - wantStr: "hello world.", - }, - - { - desc: "basic", - t: dontMentionX{}, - src: "The First Rule of Transform Club: don't mention Mister X, ever.", - dstSize: 100, - srcSize: 100, - wantStr: "The First Rule of Transform Club: don't mention Mister ", - wantErr: errYouMentionedX, - }, - - { - desc: "small buffers", - t: dontMentionX{}, - src: "The First Rule of Transform Club: don't mention Mister X, ever.", - dstSize: 10, - srcSize: 10, - wantStr: "The First Rule of Transform Club: don't mention Mister ", - wantErr: errYouMentionedX, - }, - - { - desc: "very small buffers", - t: dontMentionX{}, - src: "The First Rule of Transform Club: don't mention Mister X, ever.", - dstSize: 1, - srcSize: 1, - wantStr: "The First Rule of Transform Club: don't mention Mister ", - wantErr: errYouMentionedX, - }, - - { - desc: "only transform at EOF", - t: doublerAtEOF{}, - src: "this", - dstSize: 100, - srcSize: 100, - wantStr: "tthhiiss", - }, - - { - desc: "basic", - t: rleDecode{}, - src: "1a2b3c10d11e0f1g", - dstSize: 100, - srcSize: 100, - wantStr: "abbcccddddddddddeeeeeeeeeeeg", - }, - - { - desc: "long", - t: rleDecode{}, - src: "12a23b34c45d56e99z", - dstSize: 100, - srcSize: 100, - wantStr: strings.Repeat("a", 12) + - strings.Repeat("b", 23) + - strings.Repeat("c", 34) + - strings.Repeat("d", 45) + - strings.Repeat("e", 56) + - strings.Repeat("z", 99), - }, - - { - desc: "tight buffers", - t: rleDecode{}, - src: "1a2b3c10d11e0f1g", - dstSize: 11, - srcSize: 3, - wantStr: "abbcccddddddddddeeeeeeeeeeeg", - }, - - { - desc: "short dst", - t: rleDecode{}, - src: "1a2b3c10d11e0f1g", - dstSize: 10, - srcSize: 3, - wantStr: "abbcccdddddddddd", - wantErr: ErrShortDst, - }, - - { - desc: "short src", - t: rleDecode{}, - src: "1a2b3c10d11e0f1g", - dstSize: 11, - srcSize: 2, - ioSize: 2, - wantStr: "abbccc", - wantErr: ErrShortSrc, - }, - - { - desc: "basic", - t: rleEncode{}, - src: "abbcccddddddddddeeeeeeeeeeeg", - dstSize: 100, - srcSize: 100, - wantStr: "1a2b3c10d11e1g", - }, - - { - desc: "long", - t: rleEncode{}, - src: strings.Repeat("a", 12) + - strings.Repeat("b", 23) + - strings.Repeat("c", 34) + - strings.Repeat("d", 45) + - strings.Repeat("e", 56) + - strings.Repeat("z", 99), - dstSize: 100, - srcSize: 100, - wantStr: "12a23b34c45d56e99z", - }, - - { - desc: "tight buffers", - t: rleEncode{}, - src: "abbcccddddddddddeeeeeeeeeeeg", - dstSize: 3, - srcSize: 12, - wantStr: "1a2b3c10d11e1g", - }, - - { - desc: "short dst", - t: rleEncode{}, - src: "abbcccddddddddddeeeeeeeeeeeg", - dstSize: 2, - srcSize: 12, - wantStr: "1a2b3c", - wantErr: ErrShortDst, - }, - - { - desc: "short src", - t: rleEncode{}, - src: "abbcccddddddddddeeeeeeeeeeeg", - dstSize: 3, - srcSize: 11, - ioSize: 11, - wantStr: "1a2b3c10d", - wantErr: ErrShortSrc, - }, - - { - desc: "allowStutter = false", - t: rleEncode{allowStutter: false}, - src: "aaaabbbbbbbbccccddddd", - dstSize: 10, - srcSize: 10, - wantStr: "4a8b4c5d", - }, - - { - desc: "allowStutter = true", - t: rleEncode{allowStutter: true}, - src: "aaaabbbbbbbbccccddddd", - dstSize: 10, - srcSize: 10, - ioSize: 10, - wantStr: "4a6b2b4c4d1d", - }, - - { - desc: "trickler", - t: &trickler{}, - src: "abcdefghijklm", - dstSize: 3, - srcSize: 15, - wantStr: "abcdefghijklm", - }, - - { - desc: "delayedTrickler", - t: &delayedTrickler{}, - src: "abcdefghijklm", - dstSize: 3, - srcSize: 15, - wantStr: "abcdefghijklm", - }, -} - -func TestReader(t *testing.T) { - for _, tc := range testCases { - r := NewReader(strings.NewReader(tc.src), tc.t) - // Differently sized dst and src buffers are not part of the - // exported API. We override them manually. - r.dst = make([]byte, tc.dstSize) - r.src = make([]byte, tc.srcSize) - got, err := ioutil.ReadAll(r) - str := string(got) - if str != tc.wantStr || err != tc.wantErr { - t.Errorf("%s:\ngot %q, %v\nwant %q, %v", tc, str, err, tc.wantStr, tc.wantErr) - } - } -} - -func TestWriter(t *testing.T) { - tests := append(testCases, chainTests()...) - for _, tc := range tests { - sizes := []int{1, 2, 3, 4, 5, 10, 100, 1000} - if tc.ioSize > 0 { - sizes = []int{tc.ioSize} - } - for _, sz := range sizes { - bb := &bytes.Buffer{} - w := NewWriter(bb, tc.t) - // Differently sized dst and src buffers are not part of the - // exported API. We override them manually. - w.dst = make([]byte, tc.dstSize) - w.src = make([]byte, tc.srcSize) - src := make([]byte, sz) - var err error - for b := tc.src; len(b) > 0 && err == nil; { - n := copy(src, b) - b = b[n:] - m := 0 - m, err = w.Write(src[:n]) - if m != n && err == nil { - t.Errorf("%s:%d: did not consume all bytes %d < %d", tc, sz, m, n) - } - } - if err == nil { - err = w.Close() - } - str := bb.String() - if str != tc.wantStr || err != tc.wantErr { - t.Errorf("%s:%d:\ngot %q, %v\nwant %q, %v", tc, sz, str, err, tc.wantStr, tc.wantErr) - } - } - } -} - -func TestNop(t *testing.T) { - testCases := []struct { - str string - dstSize int - err error - }{ - {"", 0, nil}, - {"", 10, nil}, - {"a", 0, ErrShortDst}, - {"a", 1, nil}, - {"a", 10, nil}, - } - for i, tc := range testCases { - dst := make([]byte, tc.dstSize) - nDst, nSrc, err := Nop.Transform(dst, []byte(tc.str), true) - want := tc.str - if tc.dstSize < len(want) { - want = want[:tc.dstSize] - } - if got := string(dst[:nDst]); got != want || err != tc.err || nSrc != nDst { - t.Errorf("%d:\ngot %q, %d, %v\nwant %q, %d, %v", i, got, nSrc, err, want, nDst, tc.err) - } - } -} - -func TestDiscard(t *testing.T) { - testCases := []struct { - str string - dstSize int - }{ - {"", 0}, - {"", 10}, - {"a", 0}, - {"ab", 10}, - } - for i, tc := range testCases { - nDst, nSrc, err := Discard.Transform(make([]byte, tc.dstSize), []byte(tc.str), true) - if nDst != 0 || nSrc != len(tc.str) || err != nil { - t.Errorf("%d:\ngot %q, %d, %v\nwant 0, %d, nil", i, nDst, nSrc, err, len(tc.str)) - } - } -} - -// mkChain creates a Chain transformer. x must be alternating between transformer -// and bufSize, like T, (sz, T)* -func mkChain(x ...interface{}) *chain { - t := []Transformer{} - for i := 0; i < len(x); i += 2 { - t = append(t, x[i].(Transformer)) - } - c := Chain(t...).(*chain) - for i, j := 1, 1; i < len(x); i, j = i+2, j+1 { - c.link[j].b = make([]byte, x[i].(int)) - } - return c -} - -func chainTests() []testCase { - return []testCase{ - { - desc: "nil error", - t: mkChain(rleEncode{}, 100, lowerCaseASCII{}), - src: "ABB", - dstSize: 100, - srcSize: 100, - wantStr: "1a2b", - wantErr: nil, - wantIter: 1, - }, - - { - desc: "short dst buffer", - t: mkChain(lowerCaseASCII{}, 3, rleDecode{}), - src: "1a2b3c10d11e0f1g", - dstSize: 10, - srcSize: 3, - wantStr: "abbcccdddddddddd", - wantErr: ErrShortDst, - }, - - { - desc: "short internal dst buffer", - t: mkChain(lowerCaseASCII{}, 3, rleDecode{}, 10, Nop), - src: "1a2b3c10d11e0f1g", - dstSize: 100, - srcSize: 3, - wantStr: "abbcccdddddddddd", - wantErr: errShortInternal, - }, - - { - desc: "short internal dst buffer from input", - t: mkChain(rleDecode{}, 10, Nop), - src: "1a2b3c10d11e0f1g", - dstSize: 100, - srcSize: 3, - wantStr: "abbcccdddddddddd", - wantErr: errShortInternal, - }, - - { - desc: "empty short internal dst buffer", - t: mkChain(lowerCaseASCII{}, 3, rleDecode{}, 10, Nop), - src: "4a7b11e0f1g", - dstSize: 100, - srcSize: 3, - wantStr: "aaaabbbbbbb", - wantErr: errShortInternal, - }, - - { - desc: "empty short internal dst buffer from input", - t: mkChain(rleDecode{}, 10, Nop), - src: "4a7b11e0f1g", - dstSize: 100, - srcSize: 3, - wantStr: "aaaabbbbbbb", - wantErr: errShortInternal, - }, - - { - desc: "short internal src buffer after full dst buffer", - t: mkChain(Nop, 5, rleEncode{}, 10, Nop), - src: "cccccddddd", - dstSize: 100, - srcSize: 100, - wantStr: "", - wantErr: errShortInternal, - wantIter: 1, - }, - - { - desc: "short internal src buffer after short dst buffer; test lastFull", - t: mkChain(rleDecode{}, 5, rleEncode{}, 4, Nop), - src: "2a1b4c6d", - dstSize: 100, - srcSize: 100, - wantStr: "2a1b", - wantErr: errShortInternal, - }, - - { - desc: "short internal src buffer after successful complete fill", - t: mkChain(Nop, 3, rleDecode{}), - src: "123a4b", - dstSize: 4, - srcSize: 3, - wantStr: "", - wantErr: errShortInternal, - wantIter: 1, - }, - - { - desc: "short internal src buffer after short dst buffer; test lastFull", - t: mkChain(rleDecode{}, 5, rleEncode{}), - src: "2a1b4c6d", - dstSize: 4, - srcSize: 100, - wantStr: "2a1b", - wantErr: errShortInternal, - }, - - { - desc: "short src buffer", - t: mkChain(rleEncode{}, 5, Nop), - src: "abbcccddddeeeee", - dstSize: 4, - srcSize: 4, - ioSize: 4, - wantStr: "1a2b3c", - wantErr: ErrShortSrc, - }, - - { - desc: "process all in one go", - t: mkChain(rleEncode{}, 5, Nop), - src: "abbcccddddeeeeeffffff", - dstSize: 100, - srcSize: 100, - wantStr: "1a2b3c4d5e6f", - wantErr: nil, - wantIter: 1, - }, - - { - desc: "complete processing downstream after error", - t: mkChain(dontMentionX{}, 2, rleDecode{}, 5, Nop), - src: "3a4b5eX", - dstSize: 100, - srcSize: 100, - ioSize: 100, - wantStr: "aaabbbbeeeee", - wantErr: errYouMentionedX, - }, - - { - desc: "return downstream fatal errors first (followed by short dst)", - t: mkChain(dontMentionX{}, 8, rleDecode{}, 4, Nop), - src: "3a4b5eX", - dstSize: 100, - srcSize: 100, - ioSize: 100, - wantStr: "aaabbbb", - wantErr: errShortInternal, - }, - - { - desc: "return downstream fatal errors first (followed by short src)", - t: mkChain(dontMentionX{}, 5, Nop, 1, rleDecode{}), - src: "1a5bX", - dstSize: 100, - srcSize: 100, - ioSize: 100, - wantStr: "", - wantErr: errShortInternal, - }, - - { - desc: "short internal", - t: mkChain(Nop, 11, rleEncode{}, 3, Nop), - src: "abbcccddddddddddeeeeeeeeeeeg", - dstSize: 3, - srcSize: 100, - wantStr: "1a2b3c10d", - wantErr: errShortInternal, - }, - } -} - -func doTransform(tc testCase) (res string, iter int, err error) { - tc.t.Reset() - dst := make([]byte, tc.dstSize) - out, in := make([]byte, 0, 2*len(tc.src)), []byte(tc.src) - for { - iter++ - src, atEOF := in, true - if len(src) > tc.srcSize { - src, atEOF = src[:tc.srcSize], false - } - nDst, nSrc, err := tc.t.Transform(dst, src, atEOF) - out = append(out, dst[:nDst]...) - in = in[nSrc:] - switch { - case err == nil && len(in) != 0: - case err == ErrShortSrc && nSrc > 0: - case err == ErrShortDst && (nDst > 0 || nSrc > 0): - default: - return string(out), iter, err - } - } -} - -func TestChain(t *testing.T) { - if c, ok := Chain().(nop); !ok { - t.Errorf("empty chain: %v; want Nop", c) - } - - // Test Chain for a single Transformer. - for _, tc := range testCases { - tc.t = Chain(tc.t) - str, _, err := doTransform(tc) - if str != tc.wantStr || err != tc.wantErr { - t.Errorf("%s:\ngot %q, %v\nwant %q, %v", tc, str, err, tc.wantStr, tc.wantErr) - } - } - - tests := chainTests() - sizes := []int{1, 2, 3, 4, 5, 7, 10, 100, 1000} - addTest := func(tc testCase, t *chain) { - if t.link[0].t != tc.t && tc.wantErr == ErrShortSrc { - tc.wantErr = errShortInternal - } - if t.link[len(t.link)-2].t != tc.t && tc.wantErr == ErrShortDst { - tc.wantErr = errShortInternal - } - tc.t = t - tests = append(tests, tc) - } - for _, tc := range testCases { - for _, sz := range sizes { - tt := tc - tt.dstSize = sz - addTest(tt, mkChain(tc.t, tc.dstSize, Nop)) - addTest(tt, mkChain(tc.t, tc.dstSize, Nop, 2, Nop)) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop)) - if sz >= tc.dstSize && (tc.wantErr != ErrShortDst || sz == tc.dstSize) { - addTest(tt, mkChain(Nop, tc.srcSize, tc.t)) - addTest(tt, mkChain(Nop, 100, Nop, tc.srcSize, tc.t)) - } - } - } - for _, tc := range testCases { - tt := tc - tt.dstSize = 1 - tt.wantStr = "" - addTest(tt, mkChain(tc.t, tc.dstSize, Discard)) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Discard)) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, tc.dstSize, Discard)) - } - for _, tc := range testCases { - tt := tc - tt.dstSize = 100 - tt.wantStr = strings.Replace(tc.src, "0f", "", -1) - // Chain encoders and decoders. - if _, ok := tc.t.(rleEncode); ok && tc.wantErr == nil { - addTest(tt, mkChain(tc.t, tc.dstSize, Nop, 1000, rleDecode{})) - addTest(tt, mkChain(tc.t, tc.dstSize, Nop, tc.dstSize, rleDecode{})) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, 100, rleDecode{})) - // decoding needs larger destinations - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, rleDecode{}, 100, Nop)) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, 100, rleDecode{}, 100, Nop)) - } else if _, ok := tc.t.(rleDecode); ok && tc.wantErr == nil { - // The internal buffer size may need to be the sum of the maximum segment - // size of the two encoders! - addTest(tt, mkChain(tc.t, 2*tc.dstSize, rleEncode{})) - addTest(tt, mkChain(tc.t, tc.dstSize, Nop, 101, rleEncode{})) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, 100, rleEncode{})) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, 200, rleEncode{}, 100, Nop)) - } - } - for _, tc := range tests { - str, iter, err := doTransform(tc) - mi := tc.wantIter != 0 && tc.wantIter != iter - if str != tc.wantStr || err != tc.wantErr || mi { - t.Errorf("%s:\ngot iter:%d, %q, %v\nwant iter:%d, %q, %v", tc, iter, str, err, tc.wantIter, tc.wantStr, tc.wantErr) - } - break - } -} - -func TestRemoveFunc(t *testing.T) { - filter := RemoveFunc(func(r rune) bool { - return strings.IndexRune("ab\u0300\u1234,", r) != -1 - }) - tests := []testCase{ - { - src: ",", - wantStr: "", - }, - - { - src: "c", - wantStr: "c", - }, - - { - src: "\u2345", - wantStr: "\u2345", - }, - - { - src: "tschüß", - wantStr: "tschüß", - }, - - { - src: ",до,ÑвиданиÑ,", - wantStr: "доÑвиданиÑ", - }, - - { - src: "a\xbd\xb2=\xbc ⌘", - wantStr: "\uFFFD\uFFFD=\uFFFD ⌘", - }, - - { - // If we didn't replace illegal bytes with RuneError, the result - // would be \u0300 or the code would need to be more complex. - src: "\xcc\u0300\x80", - wantStr: "\uFFFD\uFFFD", - }, - - { - src: "\xcc\u0300\x80", - dstSize: 3, - wantStr: "\uFFFD\uFFFD", - wantIter: 2, - }, - - { - // Test a long buffer greater than the internal buffer size - src: "hello\xcc\xcc\xccworld", - srcSize: 13, - wantStr: "hello\uFFFD\uFFFD\uFFFDworld", - wantIter: 1, - }, - - { - src: "\u2345", - dstSize: 2, - wantStr: "", - wantErr: ErrShortDst, - }, - - { - src: "\xcc", - dstSize: 2, - wantStr: "", - wantErr: ErrShortDst, - }, - - { - src: "\u0300", - dstSize: 2, - srcSize: 1, - wantStr: "", - wantErr: ErrShortSrc, - }, - - { - t: RemoveFunc(func(r rune) bool { - return r == utf8.RuneError - }), - src: "\xcc\u0300\x80", - wantStr: "\u0300", - }, - } - - for _, tc := range tests { - tc.desc = tc.src - if tc.t == nil { - tc.t = filter - } - if tc.dstSize == 0 { - tc.dstSize = 100 - } - if tc.srcSize == 0 { - tc.srcSize = 100 - } - str, iter, err := doTransform(tc) - mi := tc.wantIter != 0 && tc.wantIter != iter - if str != tc.wantStr || err != tc.wantErr || mi { - t.Errorf("%+q:\ngot iter:%d, %+q, %v\nwant iter:%d, %+q, %v", tc.src, iter, str, err, tc.wantIter, tc.wantStr, tc.wantErr) - } - - tc.src = str - idem, _, _ := doTransform(tc) - if str != idem { - t.Errorf("%+q: found %+q; want %+q", tc.src, idem, str) - } - } -} - -func testString(t *testing.T, f func(Transformer, string) (string, int, error)) { - for _, tt := range append(testCases, chainTests()...) { - if tt.desc == "allowStutter = true" { - // We don't have control over the buffer size, so we eliminate tests - // that depend on a specific buffer size being set. - continue - } - if tt.wantErr == ErrShortDst || tt.wantErr == ErrShortSrc { - // The result string will be different. - continue - } - got, n, err := f(tt.t, tt.src) - if tt.wantErr != err { - t.Errorf("%s:error: got %v; want %v", tt.desc, err, tt.wantErr) - } - if got, want := err == nil, n == len(tt.src); got != want { - t.Errorf("%s:n: got %v; want %v", tt.desc, got, want) - } - if got != tt.wantStr { - t.Errorf("%s:string: got %q; want %q", tt.desc, got, tt.wantStr) - } - } -} - -func TestBytes(t *testing.T) { - testString(t, func(z Transformer, s string) (string, int, error) { - b, n, err := Bytes(z, []byte(s)) - return string(b), n, err - }) -} - -func TestString(t *testing.T) { - testString(t, String) - - // Overrun the internal destination buffer. - for i, s := range []string{ - strings.Repeat("a", initialBufSize-1), - strings.Repeat("a", initialBufSize+0), - strings.Repeat("a", initialBufSize+1), - strings.Repeat("A", initialBufSize-1), - strings.Repeat("A", initialBufSize+0), - strings.Repeat("A", initialBufSize+1), - strings.Repeat("A", 2*initialBufSize-1), - strings.Repeat("A", 2*initialBufSize+0), - strings.Repeat("A", 2*initialBufSize+1), - strings.Repeat("a", initialBufSize-2) + "A", - strings.Repeat("a", initialBufSize-1) + "A", - strings.Repeat("a", initialBufSize+0) + "A", - strings.Repeat("a", initialBufSize+1) + "A", - } { - got, _, _ := String(lowerCaseASCII{}, s) - if want := strings.ToLower(s); got != want { - t.Errorf("%d:dst buffer test: got %s (%d); want %s (%d)", i, got, len(got), want, len(want)) - } - } - - // Overrun the internal source buffer. - for i, s := range []string{ - strings.Repeat("a", initialBufSize-1), - strings.Repeat("a", initialBufSize+0), - strings.Repeat("a", initialBufSize+1), - strings.Repeat("a", 2*initialBufSize+1), - strings.Repeat("a", 2*initialBufSize+0), - strings.Repeat("a", 2*initialBufSize+1), - } { - got, _, _ := String(rleEncode{}, s) - if want := fmt.Sprintf("%da", len(s)); got != want { - t.Errorf("%d:src buffer test: got %s (%d); want %s (%d)", i, got, len(got), want, len(want)) - } - } - - // Test allocations for non-changing strings. - // Note we still need to allocate a single buffer. - for i, s := range []string{ - "", - "123", - "123456789", - strings.Repeat("a", initialBufSize), - strings.Repeat("a", 10*initialBufSize), - } { - if n := testing.AllocsPerRun(5, func() { String(&lowerCaseASCII{}, s) }); n > 1 { - t.Errorf("%d: #allocs was %f; want 1", i, n) - } - } -} - -// TestBytesAllocation tests that buffer growth stays limited with the trickler -// transformer, which behaves oddly but within spec. In case buffer growth is -// not correctly handled, the test will either panic with a failed allocation or -// thrash. To ensure the tests terminate under the last condition, we time out -// after some sufficiently long period of time. -func TestBytesAllocation(t *testing.T) { - done := make(chan bool) - go func() { - in := bytes.Repeat([]byte{'a'}, 1000) - tr := trickler(make([]byte, 1)) - Bytes(&tr, in) - done <- true - }() - select { - case <-done: - case <-time.After(3 * time.Second): - t.Error("time out, likely due to excessive allocation") - } -} - -// TestStringAllocation tests that buffer growth stays limited with the trickler -// transformer, which behaves oddly but within spec. In case buffer growth is -// not correctly handled, the test will either panic with a failed allocation or -// thrash. To ensure the tests terminate under the last condition, we time out -// after some sufficiently long period of time. -func TestStringAllocation(t *testing.T) { - done := make(chan bool) - go func() { - in := strings.Repeat("a", 1000) - tr := trickler(make([]byte, 1)) - String(&tr, in) - done <- true - }() - select { - case <-done: - case <-time.After(3 * time.Second): - t.Error("time out, likely due to excessive allocation") - } -} - -func BenchmarkStringLower(b *testing.B) { - in := strings.Repeat("a", 4096) - for i := 0; i < b.N; i++ { - String(&lowerCaseASCII{}, in) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/composition.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/composition.go deleted file mode 100644 index d17b278a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/composition.go +++ /dev/null @@ -1,514 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import "unicode/utf8" - -const ( - maxNonStarters = 30 - // The maximum number of characters needed for a buffer is - // maxNonStarters + 1 for the starter + 1 for the GCJ - maxBufferSize = maxNonStarters + 2 - maxNFCExpansion = 3 // NFC(0x1D160) - maxNFKCExpansion = 18 // NFKC(0xFDFA) - - maxByteBufferSize = utf8.UTFMax * maxBufferSize // 128 -) - -// ssState is used for reporting the segment state after inserting a rune. -// It is returned by streamSafe.next. -type ssState int - -const ( - // Indicates a rune was successfully added to the segment. - ssSuccess ssState = iota - // Indicates a rune starts a new segment and should not be added. - ssStarter - // Indicates a rune caused a segment overflow and a CGJ should be inserted. - ssOverflow -) - -// streamSafe implements the policy of when a CGJ should be inserted. -type streamSafe uint8 - -// mkStreamSafe is a shorthand for declaring a streamSafe var and calling -// first on it. -func mkStreamSafe(p Properties) streamSafe { - return streamSafe(p.nTrailingNonStarters()) -} - -// first inserts the first rune of a segment. -func (ss *streamSafe) first(p Properties) { - if *ss != 0 { - panic("!= 0") - } - *ss = streamSafe(p.nTrailingNonStarters()) -} - -// insert returns a ssState value to indicate whether a rune represented by p -// can be inserted. -func (ss *streamSafe) next(p Properties) ssState { - if *ss > maxNonStarters { - panic("streamSafe was not reset") - } - n := p.nLeadingNonStarters() - if *ss += streamSafe(n); *ss > maxNonStarters { - *ss = 0 - return ssOverflow - } - // The Stream-Safe Text Processing prescribes that the counting can stop - // as soon as a starter is encountered. However, there are some starters, - // like Jamo V and T, that can combine with other runes, leaving their - // successive non-starters appended to the previous, possibly causing an - // overflow. We will therefore consider any rune with a non-zero nLead to - // be a non-starter. Note that it always hold that if nLead > 0 then - // nLead == nTrail. - if n == 0 { - *ss = 0 - return ssStarter - } - return ssSuccess -} - -// backwards is used for checking for overflow and segment starts -// when traversing a string backwards. Users do not need to call first -// for the first rune. The state of the streamSafe retains the count of -// the non-starters loaded. -func (ss *streamSafe) backwards(p Properties) ssState { - if *ss > maxNonStarters { - panic("streamSafe was not reset") - } - c := *ss + streamSafe(p.nTrailingNonStarters()) - if c > maxNonStarters { - return ssOverflow - } - *ss = c - if p.nLeadingNonStarters() == 0 { - return ssStarter - } - return ssSuccess -} - -func (ss streamSafe) isMax() bool { - return ss == maxNonStarters -} - -// GraphemeJoiner is inserted after maxNonStarters non-starter runes. -const GraphemeJoiner = "\u034F" - -// reorderBuffer is used to normalize a single segment. Characters inserted with -// insert are decomposed and reordered based on CCC. The compose method can -// be used to recombine characters. Note that the byte buffer does not hold -// the UTF-8 characters in order. Only the rune array is maintained in sorted -// order. flush writes the resulting segment to a byte array. -type reorderBuffer struct { - rune [maxBufferSize]Properties // Per character info. - byte [maxByteBufferSize]byte // UTF-8 buffer. Referenced by runeInfo.pos. - nbyte uint8 // Number or bytes. - ss streamSafe // For limiting length of non-starter sequence. - nrune int // Number of runeInfos. - f formInfo - - src input - nsrc int - tmpBytes input - - out []byte - flushF func(*reorderBuffer) bool -} - -func (rb *reorderBuffer) init(f Form, src []byte) { - rb.f = *formTable[f] - rb.src.setBytes(src) - rb.nsrc = len(src) - rb.ss = 0 -} - -func (rb *reorderBuffer) initString(f Form, src string) { - rb.f = *formTable[f] - rb.src.setString(src) - rb.nsrc = len(src) - rb.ss = 0 -} - -func (rb *reorderBuffer) setFlusher(out []byte, f func(*reorderBuffer) bool) { - rb.out = out - rb.flushF = f -} - -// reset discards all characters from the buffer. -func (rb *reorderBuffer) reset() { - rb.nrune = 0 - rb.nbyte = 0 - rb.ss = 0 -} - -func (rb *reorderBuffer) doFlush() bool { - if rb.f.composing { - rb.compose() - } - res := rb.flushF(rb) - rb.reset() - return res -} - -// appendFlush appends the normalized segment to rb.out. -func appendFlush(rb *reorderBuffer) bool { - for i := 0; i < rb.nrune; i++ { - start := rb.rune[i].pos - end := start + rb.rune[i].size - rb.out = append(rb.out, rb.byte[start:end]...) - } - return true -} - -// flush appends the normalized segment to out and resets rb. -func (rb *reorderBuffer) flush(out []byte) []byte { - for i := 0; i < rb.nrune; i++ { - start := rb.rune[i].pos - end := start + rb.rune[i].size - out = append(out, rb.byte[start:end]...) - } - rb.reset() - return out -} - -// flushCopy copies the normalized segment to buf and resets rb. -// It returns the number of bytes written to buf. -func (rb *reorderBuffer) flushCopy(buf []byte) int { - p := 0 - for i := 0; i < rb.nrune; i++ { - runep := rb.rune[i] - p += copy(buf[p:], rb.byte[runep.pos:runep.pos+runep.size]) - } - rb.reset() - return p -} - -// insertOrdered inserts a rune in the buffer, ordered by Canonical Combining Class. -// It returns false if the buffer is not large enough to hold the rune. -// It is used internally by insert and insertString only. -func (rb *reorderBuffer) insertOrdered(info Properties) { - n := rb.nrune - b := rb.rune[:] - cc := info.ccc - if cc > 0 { - // Find insertion position + move elements to make room. - for ; n > 0; n-- { - if b[n-1].ccc <= cc { - break - } - b[n] = b[n-1] - } - } - rb.nrune += 1 - pos := uint8(rb.nbyte) - rb.nbyte += utf8.UTFMax - info.pos = pos - b[n] = info -} - -// insertErr is an error code returned by insert. Using this type instead -// of error improves performance up to 20% for many of the benchmarks. -type insertErr int - -const ( - iSuccess insertErr = -iota - iShortDst - iShortSrc -) - -// insertFlush inserts the given rune in the buffer ordered by CCC. -// If a decomposition with multiple segments are encountered, they leading -// ones are flushed. -// It returns a non-zero error code if the rune was not inserted. -func (rb *reorderBuffer) insertFlush(src input, i int, info Properties) insertErr { - if rune := src.hangul(i); rune != 0 { - rb.decomposeHangul(rune) - return iSuccess - } - if info.hasDecomposition() { - return rb.insertDecomposed(info.Decomposition()) - } - rb.insertSingle(src, i, info) - return iSuccess -} - -// insertUnsafe inserts the given rune in the buffer ordered by CCC. -// It is assumed there is sufficient space to hold the runes. It is the -// responsibility of the caller to ensure this. This can be done by checking -// the state returned by the streamSafe type. -func (rb *reorderBuffer) insertUnsafe(src input, i int, info Properties) { - if rune := src.hangul(i); rune != 0 { - rb.decomposeHangul(rune) - } - if info.hasDecomposition() { - // TODO: inline. - rb.insertDecomposed(info.Decomposition()) - } else { - rb.insertSingle(src, i, info) - } -} - -// insertDecomposed inserts an entry in to the reorderBuffer for each rune -// in dcomp. dcomp must be a sequence of decomposed UTF-8-encoded runes. -// It flushes the buffer on each new segment start. -func (rb *reorderBuffer) insertDecomposed(dcomp []byte) insertErr { - rb.tmpBytes.setBytes(dcomp) - for i := 0; i < len(dcomp); { - info := rb.f.info(rb.tmpBytes, i) - if info.BoundaryBefore() && rb.nrune > 0 && !rb.doFlush() { - return iShortDst - } - i += copy(rb.byte[rb.nbyte:], dcomp[i:i+int(info.size)]) - rb.insertOrdered(info) - } - return iSuccess -} - -// insertSingle inserts an entry in the reorderBuffer for the rune at -// position i. info is the runeInfo for the rune at position i. -func (rb *reorderBuffer) insertSingle(src input, i int, info Properties) { - src.copySlice(rb.byte[rb.nbyte:], i, i+int(info.size)) - rb.insertOrdered(info) -} - -// insertCGJ inserts a Combining Grapheme Joiner (0x034f) into rb. -func (rb *reorderBuffer) insertCGJ() { - rb.insertSingle(input{str: GraphemeJoiner}, 0, Properties{size: uint8(len(GraphemeJoiner))}) -} - -// appendRune inserts a rune at the end of the buffer. It is used for Hangul. -func (rb *reorderBuffer) appendRune(r rune) { - bn := rb.nbyte - sz := utf8.EncodeRune(rb.byte[bn:], rune(r)) - rb.nbyte += utf8.UTFMax - rb.rune[rb.nrune] = Properties{pos: bn, size: uint8(sz)} - rb.nrune++ -} - -// assignRune sets a rune at position pos. It is used for Hangul and recomposition. -func (rb *reorderBuffer) assignRune(pos int, r rune) { - bn := rb.rune[pos].pos - sz := utf8.EncodeRune(rb.byte[bn:], rune(r)) - rb.rune[pos] = Properties{pos: bn, size: uint8(sz)} -} - -// runeAt returns the rune at position n. It is used for Hangul and recomposition. -func (rb *reorderBuffer) runeAt(n int) rune { - inf := rb.rune[n] - r, _ := utf8.DecodeRune(rb.byte[inf.pos : inf.pos+inf.size]) - return r -} - -// bytesAt returns the UTF-8 encoding of the rune at position n. -// It is used for Hangul and recomposition. -func (rb *reorderBuffer) bytesAt(n int) []byte { - inf := rb.rune[n] - return rb.byte[inf.pos : int(inf.pos)+int(inf.size)] -} - -// For Hangul we combine algorithmically, instead of using tables. -const ( - hangulBase = 0xAC00 // UTF-8(hangulBase) -> EA B0 80 - hangulBase0 = 0xEA - hangulBase1 = 0xB0 - hangulBase2 = 0x80 - - hangulEnd = hangulBase + jamoLVTCount // UTF-8(0xD7A4) -> ED 9E A4 - hangulEnd0 = 0xED - hangulEnd1 = 0x9E - hangulEnd2 = 0xA4 - - jamoLBase = 0x1100 // UTF-8(jamoLBase) -> E1 84 00 - jamoLBase0 = 0xE1 - jamoLBase1 = 0x84 - jamoLEnd = 0x1113 - jamoVBase = 0x1161 - jamoVEnd = 0x1176 - jamoTBase = 0x11A7 - jamoTEnd = 0x11C3 - - jamoTCount = 28 - jamoVCount = 21 - jamoVTCount = 21 * 28 - jamoLVTCount = 19 * 21 * 28 -) - -const hangulUTF8Size = 3 - -func isHangul(b []byte) bool { - if len(b) < hangulUTF8Size { - return false - } - b0 := b[0] - if b0 < hangulBase0 { - return false - } - b1 := b[1] - switch { - case b0 == hangulBase0: - return b1 >= hangulBase1 - case b0 < hangulEnd0: - return true - case b0 > hangulEnd0: - return false - case b1 < hangulEnd1: - return true - } - return b1 == hangulEnd1 && b[2] < hangulEnd2 -} - -func isHangulString(b string) bool { - if len(b) < hangulUTF8Size { - return false - } - b0 := b[0] - if b0 < hangulBase0 { - return false - } - b1 := b[1] - switch { - case b0 == hangulBase0: - return b1 >= hangulBase1 - case b0 < hangulEnd0: - return true - case b0 > hangulEnd0: - return false - case b1 < hangulEnd1: - return true - } - return b1 == hangulEnd1 && b[2] < hangulEnd2 -} - -// Caller must ensure len(b) >= 2. -func isJamoVT(b []byte) bool { - // True if (rune & 0xff00) == jamoLBase - return b[0] == jamoLBase0 && (b[1]&0xFC) == jamoLBase1 -} - -func isHangulWithoutJamoT(b []byte) bool { - c, _ := utf8.DecodeRune(b) - c -= hangulBase - return c < jamoLVTCount && c%jamoTCount == 0 -} - -// decomposeHangul writes the decomposed Hangul to buf and returns the number -// of bytes written. len(buf) should be at least 9. -func decomposeHangul(buf []byte, r rune) int { - const JamoUTF8Len = 3 - r -= hangulBase - x := r % jamoTCount - r /= jamoTCount - utf8.EncodeRune(buf, jamoLBase+r/jamoVCount) - utf8.EncodeRune(buf[JamoUTF8Len:], jamoVBase+r%jamoVCount) - if x != 0 { - utf8.EncodeRune(buf[2*JamoUTF8Len:], jamoTBase+x) - return 3 * JamoUTF8Len - } - return 2 * JamoUTF8Len -} - -// decomposeHangul algorithmically decomposes a Hangul rune into -// its Jamo components. -// See http://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul. -func (rb *reorderBuffer) decomposeHangul(r rune) { - r -= hangulBase - x := r % jamoTCount - r /= jamoTCount - rb.appendRune(jamoLBase + r/jamoVCount) - rb.appendRune(jamoVBase + r%jamoVCount) - if x != 0 { - rb.appendRune(jamoTBase + x) - } -} - -// combineHangul algorithmically combines Jamo character components into Hangul. -// See http://unicode.org/reports/tr15/#Hangul for details on combining Hangul. -func (rb *reorderBuffer) combineHangul(s, i, k int) { - b := rb.rune[:] - bn := rb.nrune - for ; i < bn; i++ { - cccB := b[k-1].ccc - cccC := b[i].ccc - if cccB == 0 { - s = k - 1 - } - if s != k-1 && cccB >= cccC { - // b[i] is blocked by greater-equal cccX below it - b[k] = b[i] - k++ - } else { - l := rb.runeAt(s) // also used to compare to hangulBase - v := rb.runeAt(i) // also used to compare to jamoT - switch { - case jamoLBase <= l && l < jamoLEnd && - jamoVBase <= v && v < jamoVEnd: - // 11xx plus 116x to LV - rb.assignRune(s, hangulBase+ - (l-jamoLBase)*jamoVTCount+(v-jamoVBase)*jamoTCount) - case hangulBase <= l && l < hangulEnd && - jamoTBase < v && v < jamoTEnd && - ((l-hangulBase)%jamoTCount) == 0: - // ACxx plus 11Ax to LVT - rb.assignRune(s, l+v-jamoTBase) - default: - b[k] = b[i] - k++ - } - } - } - rb.nrune = k -} - -// compose recombines the runes in the buffer. -// It should only be used to recompose a single segment, as it will not -// handle alternations between Hangul and non-Hangul characters correctly. -func (rb *reorderBuffer) compose() { - // UAX #15, section X5 , including Corrigendum #5 - // "In any character sequence beginning with starter S, a character C is - // blocked from S if and only if there is some character B between S - // and C, and either B is a starter or it has the same or higher - // combining class as C." - bn := rb.nrune - if bn == 0 { - return - } - k := 1 - b := rb.rune[:] - for s, i := 0, 1; i < bn; i++ { - if isJamoVT(rb.bytesAt(i)) { - // Redo from start in Hangul mode. Necessary to support - // U+320E..U+321E in NFKC mode. - rb.combineHangul(s, i, k) - return - } - ii := b[i] - // We can only use combineForward as a filter if we later - // get the info for the combined character. This is more - // expensive than using the filter. Using combinesBackward() - // is safe. - if ii.combinesBackward() { - cccB := b[k-1].ccc - cccC := ii.ccc - blocked := false // b[i] blocked by starter or greater or equal CCC? - if cccB == 0 { - s = k - 1 - } else { - blocked = s != k-1 && cccB >= cccC - } - if !blocked { - combined := combine(rb.runeAt(s), rb.runeAt(i)) - if combined != 0 { - rb.assignRune(s, combined) - continue - } - } - } - b[k] = b[i] - k++ - } - rb.nrune = k -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/composition_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/composition_test.go deleted file mode 100644 index 11684069..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/composition_test.go +++ /dev/null @@ -1,130 +0,0 @@ -// 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 "testing" - -// TestCase is used for most tests. -type TestCase struct { - in []rune - out []rune -} - -func runTests(t *testing.T, name string, fm Form, tests []TestCase) { - rb := reorderBuffer{} - rb.init(fm, nil) - for i, test := range tests { - rb.setFlusher(nil, appendFlush) - for j, rune := range test.in { - b := []byte(string(rune)) - src := inputBytes(b) - info := rb.f.info(src, 0) - if j == 0 { - rb.ss.first(info) - } else { - rb.ss.next(info) - } - if rb.insertFlush(src, 0, info) < 0 { - t.Errorf("%s:%d: insert failed for rune %d", name, i, j) - } - } - rb.doFlush() - was := string(rb.out) - want := string(test.out) - if len(was) != len(want) { - t.Errorf("%s:%d: length = %d; want %d", name, i, len(was), len(want)) - } - if was != want { - k, pfx := pidx(was, want) - t.Errorf("%s:%d: \nwas %s%+q; \nwant %s%+q", name, i, pfx, was[k:], pfx, want[k:]) - } - } -} - -func TestFlush(t *testing.T) { - const ( - hello = "Hello " - world = "world!" - ) - buf := make([]byte, maxByteBufferSize) - p := copy(buf, hello) - out := buf[p:] - rb := reorderBuffer{} - rb.initString(NFC, world) - if i := rb.flushCopy(out); i != 0 { - t.Errorf("wrote bytes on flush of empty buffer. (len(out) = %d)", i) - } - - for i := range world { - // No need to set streamSafe values for this test. - rb.insertFlush(rb.src, i, rb.f.info(rb.src, i)) - n := rb.flushCopy(out) - out = out[n:] - p += n - } - - was := buf[:p] - want := hello + world - if string(was) != want { - t.Errorf(`output after flush was "%s"; want "%s"`, string(was), want) - } - if rb.nrune != 0 { - t.Errorf("non-null size of info buffer (rb.nrune == %d)", rb.nrune) - } - if rb.nbyte != 0 { - t.Errorf("non-null size of byte buffer (rb.nbyte == %d)", rb.nbyte) - } -} - -var insertTests = []TestCase{ - {[]rune{'a'}, []rune{'a'}}, - {[]rune{0x300}, []rune{0x300}}, - {[]rune{0x300, 0x316}, []rune{0x316, 0x300}}, // CCC(0x300)==230; CCC(0x316)==220 - {[]rune{0x316, 0x300}, []rune{0x316, 0x300}}, - {[]rune{0x41, 0x316, 0x300}, []rune{0x41, 0x316, 0x300}}, - {[]rune{0x41, 0x300, 0x316}, []rune{0x41, 0x316, 0x300}}, - {[]rune{0x300, 0x316, 0x41}, []rune{0x316, 0x300, 0x41}}, - {[]rune{0x41, 0x300, 0x40, 0x316}, []rune{0x41, 0x300, 0x40, 0x316}}, -} - -func TestInsert(t *testing.T) { - runTests(t, "TestInsert", NFD, insertTests) -} - -var decompositionNFDTest = []TestCase{ - {[]rune{0xC0}, []rune{0x41, 0x300}}, - {[]rune{0xAC00}, []rune{0x1100, 0x1161}}, - {[]rune{0x01C4}, []rune{0x01C4}}, - {[]rune{0x320E}, []rune{0x320E}}, - {[]rune("ìŒáº»ê³¼"), []rune{0x110B, 0x1173, 0x11B7, 0x65, 0x309, 0x1100, 0x116A}}, -} - -var decompositionNFKDTest = []TestCase{ - {[]rune{0xC0}, []rune{0x41, 0x300}}, - {[]rune{0xAC00}, []rune{0x1100, 0x1161}}, - {[]rune{0x01C4}, []rune{0x44, 0x5A, 0x030C}}, - {[]rune{0x320E}, []rune{0x28, 0x1100, 0x1161, 0x29}}, -} - -func TestDecomposition(t *testing.T) { - runTests(t, "TestDecompositionNFD", NFD, decompositionNFDTest) - runTests(t, "TestDecompositionNFKD", NFKD, decompositionNFKDTest) -} - -var compositionTest = []TestCase{ - {[]rune{0x41, 0x300}, []rune{0xC0}}, - {[]rune{0x41, 0x316}, []rune{0x41, 0x316}}, - {[]rune{0x41, 0x300, 0x35D}, []rune{0xC0, 0x35D}}, - {[]rune{0x41, 0x316, 0x300}, []rune{0xC0, 0x316}}, - // blocking starter - {[]rune{0x41, 0x316, 0x40, 0x300}, []rune{0x41, 0x316, 0x40, 0x300}}, - {[]rune{0x1100, 0x1161}, []rune{0xAC00}}, - // parenthesized Hangul, alternate between ASCII and Hangul. - {[]rune{0x28, 0x1100, 0x1161, 0x29}, []rune{0x28, 0xAC00, 0x29}}, -} - -func TestComposition(t *testing.T) { - runTests(t, "TestComposition", NFC, compositionTest) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/example_iter_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/example_iter_test.go deleted file mode 100644 index d27d9230..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/example_iter_test.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2012 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_test - -import ( - "bytes" - "fmt" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm" -) - -// EqualSimple uses a norm.Iter to compare two non-normalized -// strings for equivalence. -func EqualSimple(a, b string) bool { - var ia, ib norm.Iter - ia.InitString(norm.NFKD, a) - ib.InitString(norm.NFKD, b) - for !ia.Done() && !ib.Done() { - if !bytes.Equal(ia.Next(), ib.Next()) { - return false - } - } - return ia.Done() && ib.Done() -} - -// FindPrefix finds the longest common prefix of ASCII characters -// of a and b. -func FindPrefix(a, b string) int { - i := 0 - for ; i < len(a) && i < len(b) && a[i] < utf8.RuneSelf && a[i] == b[i]; i++ { - } - return i -} - -// EqualOpt is like EqualSimple, but optimizes the special -// case for ASCII characters. -func EqualOpt(a, b string) bool { - n := FindPrefix(a, b) - a, b = a[n:], b[n:] - var ia, ib norm.Iter - ia.InitString(norm.NFKD, a) - ib.InitString(norm.NFKD, b) - for !ia.Done() && !ib.Done() { - if !bytes.Equal(ia.Next(), ib.Next()) { - return false - } - if n := int64(FindPrefix(a[ia.Pos():], b[ib.Pos():])); n != 0 { - ia.Seek(n, 1) - ib.Seek(n, 1) - } - } - return ia.Done() && ib.Done() -} - -var compareTests = []struct{ a, b string }{ - {"aaa", "aaa"}, - {"aaa", "aab"}, - {"a\u0300a", "\u00E0a"}, - {"a\u0300\u0320b", "a\u0320\u0300b"}, - {"\u1E0A\u0323", "\x44\u0323\u0307"}, - // A character that decomposes into multiple segments - // spans several iterations. - {"\u3304", "\u30A4\u30CB\u30F3\u30AF\u3099"}, -} - -func ExampleIter() { - for i, t := range compareTests { - r0 := EqualSimple(t.a, t.b) - r1 := EqualOpt(t.a, t.b) - fmt.Printf("%d: %v %v\n", i, r0, r1) - } - // Output: - // 0: true true - // 1: false false - // 2: true true - // 3: true true - // 4: true true - // 5: true true -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/forminfo.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/forminfo.go deleted file mode 100644 index 15a67c65..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/forminfo.go +++ /dev/null @@ -1,256 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -// This file contains Form-specific logic and wrappers for data in tables.go. - -// Rune info is stored in a separate trie per composing form. A composing form -// and its corresponding decomposing form share the same trie. Each trie maps -// a rune to a uint16. The values take two forms. For v >= 0x8000: -// bits -// 15: 1 (inverse of NFD_QD bit of qcInfo) -// 13..7: qcInfo (see below). isYesD is always true (no decompostion). -// 6..0: ccc (compressed CCC value). -// For v < 0x8000, the respective rune has a decomposition and v is an index -// into a byte array of UTF-8 decomposition sequences and additional info and -// has the form: -// <header> <decomp_byte>* [<tccc> [<lccc>]] -// The header contains the number of bytes in the decomposition (excluding this -// length byte). The two most significant bits of this length byte correspond -// to bit 5 and 4 of qcInfo (see below). The byte sequence itself starts at v+1. -// The byte sequence is followed by a trailing and leading CCC if the values -// for these are not zero. The value of v determines which ccc are appended -// to the sequences. For v < firstCCC, there are none, for v >= firstCCC, -// the sequence is followed by a trailing ccc, and for v >= firstLeadingCC -// there is an additional leading ccc. The value of tccc itself is the -// trailing CCC shifted left 2 bits. The two least-significant bits of tccc -// are the number of trailing non-starters. - -const ( - qcInfoMask = 0x3F // to clear all but the relevant bits in a qcInfo - headerLenMask = 0x3F // extract the length value from the header byte - headerFlagsMask = 0xC0 // extract the qcInfo bits from the header byte -) - -// Properties provides access to normalization properties of a rune. -type Properties struct { - pos uint8 // start position in reorderBuffer; used in composition.go - size uint8 // length of UTF-8 encoding of this rune - ccc uint8 // leading canonical combining class (ccc if not decomposition) - tccc uint8 // trailing canonical combining class (ccc if not decomposition) - nLead uint8 // number of leading non-starters. - flags qcInfo // quick check flags - index uint16 -} - -// functions dispatchable per form -type lookupFunc func(b input, i int) Properties - -// formInfo holds Form-specific functions and tables. -type formInfo struct { - form Form - composing, compatibility bool // form type - info lookupFunc - nextMain iterFunc -} - -var formTable []*formInfo - -func init() { - formTable = make([]*formInfo, 4) - - for i := range formTable { - f := &formInfo{} - formTable[i] = f - f.form = Form(i) - if Form(i) == NFKD || Form(i) == NFKC { - f.compatibility = true - f.info = lookupInfoNFKC - } else { - f.info = lookupInfoNFC - } - f.nextMain = nextDecomposed - if Form(i) == NFC || Form(i) == NFKC { - f.nextMain = nextComposed - f.composing = true - } - } -} - -// We do not distinguish between boundaries for NFC, NFD, etc. to avoid -// unexpected behavior for the user. For example, in NFD, there is a boundary -// after 'a'. However, 'a' might combine with modifiers, so from the application's -// perspective it is not a good boundary. We will therefore always use the -// boundaries for the combining variants. - -// BoundaryBefore returns true if this rune starts a new segment and -// cannot combine with any rune on the left. -func (p Properties) BoundaryBefore() bool { - if p.ccc == 0 && !p.combinesBackward() { - return true - } - // We assume that the CCC of the first character in a decomposition - // is always non-zero if different from info.ccc and that we can return - // false at this point. This is verified by maketables. - return false -} - -// BoundaryAfter returns true if runes cannot combine with or otherwise -// interact with this or previous runes. -func (p Properties) BoundaryAfter() bool { - // TODO: loosen these conditions. - return p.isInert() -} - -// We pack quick check data in 4 bits: -// 5: Combines forward (0 == false, 1 == true) -// 4..3: NFC_QC Yes(00), No (10), or Maybe (11) -// 2: NFD_QC Yes (0) or No (1). No also means there is a decomposition. -// 1..0: Number of trailing non-starters. -// -// When all 4 bits are zero, the character is inert, meaning it is never -// influenced by normalization. -type qcInfo uint8 - -func (p Properties) isYesC() bool { return p.flags&0x10 == 0 } -func (p Properties) isYesD() bool { return p.flags&0x4 == 0 } - -func (p Properties) combinesForward() bool { return p.flags&0x20 != 0 } -func (p Properties) combinesBackward() bool { return p.flags&0x8 != 0 } // == isMaybe -func (p Properties) hasDecomposition() bool { return p.flags&0x4 != 0 } // == isNoD - -func (p Properties) isInert() bool { - return p.flags&qcInfoMask == 0 && p.ccc == 0 -} - -func (p Properties) multiSegment() bool { - return p.index >= firstMulti && p.index < endMulti -} - -func (p Properties) nLeadingNonStarters() uint8 { - return p.nLead -} - -func (p Properties) nTrailingNonStarters() uint8 { - return uint8(p.flags & 0x03) -} - -// Decomposition returns the decomposition for the underlying rune -// or nil if there is none. -func (p Properties) Decomposition() []byte { - // TODO: create the decomposition for Hangul? - if p.index == 0 { - return nil - } - i := p.index - n := decomps[i] & headerLenMask - i++ - return decomps[i : i+uint16(n)] -} - -// Size returns the length of UTF-8 encoding of the rune. -func (p Properties) Size() int { - return int(p.size) -} - -// CCC returns the canonical combining class of the underlying rune. -func (p Properties) CCC() uint8 { - if p.index >= firstCCCZeroExcept { - return 0 - } - return ccc[p.ccc] -} - -// LeadCCC returns the CCC of the first rune in the decomposition. -// If there is no decomposition, LeadCCC equals CCC. -func (p Properties) LeadCCC() uint8 { - return ccc[p.ccc] -} - -// TrailCCC returns the CCC of the last rune in the decomposition. -// If there is no decomposition, TrailCCC equals CCC. -func (p Properties) TrailCCC() uint8 { - return ccc[p.tccc] -} - -// Recomposition -// We use 32-bit keys instead of 64-bit for the two codepoint keys. -// This clips off the bits of three entries, but we know this will not -// result in a collision. In the unlikely event that changes to -// UnicodeData.txt introduce collisions, the compiler will catch it. -// Note that the recomposition map for NFC and NFKC are identical. - -// combine returns the combined rune or 0 if it doesn't exist. -func combine(a, b rune) rune { - key := uint32(uint16(a))<<16 + uint32(uint16(b)) - return recompMap[key] -} - -func lookupInfoNFC(b input, i int) Properties { - v, sz := b.charinfoNFC(i) - return compInfo(v, sz) -} - -func lookupInfoNFKC(b input, i int) Properties { - v, sz := b.charinfoNFKC(i) - return compInfo(v, sz) -} - -// Properties returns properties for the first rune in s. -func (f Form) Properties(s []byte) Properties { - if f == NFC || f == NFD { - return compInfo(nfcData.lookup(s)) - } - return compInfo(nfkcData.lookup(s)) -} - -// PropertiesString returns properties for the first rune in s. -func (f Form) PropertiesString(s string) Properties { - if f == NFC || f == NFD { - return compInfo(nfcData.lookupString(s)) - } - return compInfo(nfkcData.lookupString(s)) -} - -// compInfo converts the information contained in v and sz -// to a Properties. See the comment at the top of the file -// for more information on the format. -func compInfo(v uint16, sz int) Properties { - if v == 0 { - return Properties{size: uint8(sz)} - } else if v >= 0x8000 { - p := Properties{ - size: uint8(sz), - ccc: uint8(v), - tccc: uint8(v), - flags: qcInfo(v >> 8), - } - if p.ccc > 0 || p.combinesBackward() { - p.nLead = uint8(p.flags & 0x3) - } - return p - } - // has decomposition - h := decomps[v] - f := (qcInfo(h&headerFlagsMask) >> 2) | 0x4 - p := Properties{size: uint8(sz), flags: f, index: v} - if v >= firstCCC { - v += uint16(h&headerLenMask) + 1 - c := decomps[v] - p.tccc = c >> 2 - p.flags |= qcInfo(c & 0x3) - if v >= firstLeadingCCC { - p.nLead = c & 0x3 - if v >= firstStarterWithNLead { - // We were tricked. Remove the decomposition. - p.flags &= 0x03 - p.index = 0 - return p - } - p.ccc = decomps[v+1] - } - } - return p -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/forminfo_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/forminfo_test.go deleted file mode 100644 index e15ba9be..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/forminfo_test.go +++ /dev/null @@ -1,54 +0,0 @@ -// 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. - -// +build test - -package norm - -import "testing" - -func TestProperties(t *testing.T) { - var d runeData - CK := [2]string{"C", "K"} - for k, r := 1, rune(0); r < 0x2ffff; r++ { - if k < len(testData) && r == testData[k].r { - d = testData[k] - k++ - } - s := string(r) - for j, p := range []Properties{NFC.PropertiesString(s), NFKC.PropertiesString(s)} { - f := d.f[j] - if p.CCC() != d.ccc { - t.Errorf("%U: ccc(%s): was %d; want %d %X", r, CK[j], p.CCC(), d.ccc, p.index) - } - if p.isYesC() != (f.qc == Yes) { - t.Errorf("%U: YesC(%s): was %v; want %v", r, CK[j], p.isYesC(), f.qc == Yes) - } - if p.combinesBackward() != (f.qc == Maybe) { - t.Errorf("%U: combines backwards(%s): was %v; want %v", r, CK[j], p.combinesBackward(), f.qc == Maybe) - } - if p.nLeadingNonStarters() != d.nLead { - t.Errorf("%U: nLead(%s): was %d; want %d %#v %#v", r, CK[j], p.nLeadingNonStarters(), d.nLead, p, d) - } - if p.nTrailingNonStarters() != d.nTrail { - t.Errorf("%U: nTrail(%s): was %d; want %d %#v %#v", r, CK[j], p.nTrailingNonStarters(), d.nTrail, p, d) - } - if p.combinesForward() != f.combinesForward { - t.Errorf("%U: combines forward(%s): was %v; want %v %#v", r, CK[j], p.combinesForward(), f.combinesForward, p) - } - // Skip Hangul as it is algorithmically computed. - if r >= hangulBase && r < hangulEnd { - continue - } - if p.hasDecomposition() { - if has := f.decomposition != ""; !has { - t.Errorf("%U: hasDecomposition(%s): was %v; want %v", r, CK[j], p.hasDecomposition(), has) - } - if string(p.Decomposition()) != f.decomposition { - t.Errorf("%U: decomp(%s): was %+q; want %+q", r, CK[j], p.Decomposition(), f.decomposition) - } - } - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/input.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/input.go deleted file mode 100644 index 045d4ccc..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/input.go +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import "unicode/utf8" - -type input struct { - str string - bytes []byte -} - -func inputBytes(str []byte) input { - return input{bytes: str} -} - -func inputString(str string) input { - return input{str: str} -} - -func (in *input) setBytes(str []byte) { - in.str = "" - in.bytes = str -} - -func (in *input) setString(str string) { - in.str = str - in.bytes = nil -} - -func (in *input) _byte(p int) byte { - if in.bytes == nil { - return in.str[p] - } - return in.bytes[p] -} - -func (in *input) skipASCII(p, max int) int { - if in.bytes == nil { - for ; p < max && in.str[p] < utf8.RuneSelf; p++ { - } - } else { - for ; p < max && in.bytes[p] < utf8.RuneSelf; p++ { - } - } - return p -} - -func (in *input) skipContinuationBytes(p int) int { - if in.bytes == nil { - for ; p < len(in.str) && !utf8.RuneStart(in.str[p]); p++ { - } - } else { - for ; p < len(in.bytes) && !utf8.RuneStart(in.bytes[p]); p++ { - } - } - return p -} - -func (in *input) appendSlice(buf []byte, b, e int) []byte { - if in.bytes != nil { - return append(buf, in.bytes[b:e]...) - } - for i := b; i < e; i++ { - buf = append(buf, in.str[i]) - } - return buf -} - -func (in *input) copySlice(buf []byte, b, e int) int { - if in.bytes == nil { - return copy(buf, in.str[b:e]) - } - return copy(buf, in.bytes[b:e]) -} - -func (in *input) charinfoNFC(p int) (uint16, int) { - if in.bytes == nil { - return nfcData.lookupString(in.str[p:]) - } - return nfcData.lookup(in.bytes[p:]) -} - -func (in *input) charinfoNFKC(p int) (uint16, int) { - if in.bytes == nil { - return nfkcData.lookupString(in.str[p:]) - } - return nfkcData.lookup(in.bytes[p:]) -} - -func (in *input) hangul(p int) (r rune) { - if in.bytes == nil { - if !isHangulString(in.str[p:]) { - return 0 - } - r, _ = utf8.DecodeRuneInString(in.str[p:]) - } else { - if !isHangul(in.bytes[p:]) { - return 0 - } - r, _ = utf8.DecodeRune(in.bytes[p:]) - } - return r -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/iter.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/iter.go deleted file mode 100644 index 0a42a72d..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/iter.go +++ /dev/null @@ -1,450 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import ( - "fmt" - "unicode/utf8" -) - -// MaxSegmentSize is the maximum size of a byte buffer needed to consider any -// sequence of starter and non-starter runes for the purpose of normalization. -const MaxSegmentSize = maxByteBufferSize - -// An Iter iterates over a string or byte slice, while normalizing it -// to a given Form. -type Iter struct { - rb reorderBuffer - buf [maxByteBufferSize]byte - info Properties // first character saved from previous iteration - next iterFunc // implementation of next depends on form - asciiF iterFunc - - p int // current position in input source - multiSeg []byte // remainder of multi-segment decomposition -} - -type iterFunc func(*Iter) []byte - -// Init initializes i to iterate over src after normalizing it to Form f. -func (i *Iter) Init(f Form, src []byte) { - i.p = 0 - if len(src) == 0 { - i.setDone() - i.rb.nsrc = 0 - return - } - i.multiSeg = nil - i.rb.init(f, src) - i.next = i.rb.f.nextMain - i.asciiF = nextASCIIBytes - i.info = i.rb.f.info(i.rb.src, i.p) -} - -// InitString initializes i to iterate over src after normalizing it to Form f. -func (i *Iter) InitString(f Form, src string) { - i.p = 0 - if len(src) == 0 { - i.setDone() - i.rb.nsrc = 0 - return - } - i.multiSeg = nil - i.rb.initString(f, src) - i.next = i.rb.f.nextMain - i.asciiF = nextASCIIString - i.info = i.rb.f.info(i.rb.src, i.p) -} - -// Seek sets the segment to be returned by the next call to Next to start -// at position p. It is the responsibility of the caller to set p to the -// start of a UTF8 rune. -func (i *Iter) Seek(offset int64, whence int) (int64, error) { - var abs int64 - switch whence { - case 0: - abs = offset - case 1: - abs = int64(i.p) + offset - case 2: - abs = int64(i.rb.nsrc) + offset - default: - return 0, fmt.Errorf("norm: invalid whence") - } - if abs < 0 { - return 0, fmt.Errorf("norm: negative position") - } - if int(abs) >= i.rb.nsrc { - i.setDone() - return int64(i.p), nil - } - i.p = int(abs) - i.multiSeg = nil - i.next = i.rb.f.nextMain - i.info = i.rb.f.info(i.rb.src, i.p) - return abs, nil -} - -// returnSlice returns a slice of the underlying input type as a byte slice. -// If the underlying is of type []byte, it will simply return a slice. -// If the underlying is of type string, it will copy the slice to the buffer -// and return that. -func (i *Iter) returnSlice(a, b int) []byte { - if i.rb.src.bytes == nil { - return i.buf[:copy(i.buf[:], i.rb.src.str[a:b])] - } - return i.rb.src.bytes[a:b] -} - -// Pos returns the byte position at which the next call to Next will commence processing. -func (i *Iter) Pos() int { - return i.p -} - -func (i *Iter) setDone() { - i.next = nextDone - i.p = i.rb.nsrc -} - -// Done returns true if there is no more input to process. -func (i *Iter) Done() bool { - return i.p >= i.rb.nsrc -} - -// Next returns f(i.input[i.Pos():n]), where n is a boundary of i.input. -// For any input a and b for which f(a) == f(b), subsequent calls -// to Next will return the same segments. -// Modifying runes are grouped together with the preceding starter, if such a starter exists. -// Although not guaranteed, n will typically be the smallest possible n. -func (i *Iter) Next() []byte { - return i.next(i) -} - -func nextASCIIBytes(i *Iter) []byte { - p := i.p + 1 - if p >= i.rb.nsrc { - i.setDone() - return i.rb.src.bytes[i.p:p] - } - if i.rb.src.bytes[p] < utf8.RuneSelf { - p0 := i.p - i.p = p - return i.rb.src.bytes[p0:p] - } - i.info = i.rb.f.info(i.rb.src, i.p) - i.next = i.rb.f.nextMain - return i.next(i) -} - -func nextASCIIString(i *Iter) []byte { - p := i.p + 1 - if p >= i.rb.nsrc { - i.buf[0] = i.rb.src.str[i.p] - i.setDone() - return i.buf[:1] - } - if i.rb.src.str[p] < utf8.RuneSelf { - i.buf[0] = i.rb.src.str[i.p] - i.p = p - return i.buf[:1] - } - i.info = i.rb.f.info(i.rb.src, i.p) - i.next = i.rb.f.nextMain - return i.next(i) -} - -func nextHangul(i *Iter) []byte { - p := i.p - next := p + hangulUTF8Size - if next >= i.rb.nsrc { - i.setDone() - } else if i.rb.src.hangul(next) == 0 { - i.info = i.rb.f.info(i.rb.src, i.p) - i.next = i.rb.f.nextMain - return i.next(i) - } - i.p = next - return i.buf[:decomposeHangul(i.buf[:], i.rb.src.hangul(p))] -} - -func nextDone(i *Iter) []byte { - return nil -} - -// nextMulti is used for iterating over multi-segment decompositions -// for decomposing normal forms. -func nextMulti(i *Iter) []byte { - j := 0 - d := i.multiSeg - // skip first rune - for j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ { - } - for j < len(d) { - info := i.rb.f.info(input{bytes: d}, j) - if info.BoundaryBefore() { - i.multiSeg = d[j:] - return d[:j] - } - j += int(info.size) - } - // treat last segment as normal decomposition - i.next = i.rb.f.nextMain - return i.next(i) -} - -// nextMultiNorm is used for iterating over multi-segment decompositions -// for composing normal forms. -func nextMultiNorm(i *Iter) []byte { - j := 0 - d := i.multiSeg - for j < len(d) { - info := i.rb.f.info(input{bytes: d}, j) - if info.BoundaryBefore() { - i.rb.compose() - seg := i.buf[:i.rb.flushCopy(i.buf[:])] - i.rb.ss.first(info) - i.rb.insertUnsafe(input{bytes: d}, j, info) - i.multiSeg = d[j+int(info.size):] - return seg - } - i.rb.ss.next(info) - i.rb.insertUnsafe(input{bytes: d}, j, info) - j += int(info.size) - } - i.multiSeg = nil - i.next = nextComposed - return doNormComposed(i) -} - -// nextDecomposed is the implementation of Next for forms NFD and NFKD. -func nextDecomposed(i *Iter) (next []byte) { - outp := 0 - inCopyStart, outCopyStart := i.p, 0 - ss := mkStreamSafe(i.info) - for { - if sz := int(i.info.size); sz <= 1 { - p := i.p - i.p++ // ASCII or illegal byte. Either way, advance by 1. - if i.p >= i.rb.nsrc { - i.setDone() - return i.returnSlice(p, i.p) - } else if i.rb.src._byte(i.p) < utf8.RuneSelf { - i.next = i.asciiF - return i.returnSlice(p, i.p) - } - outp++ - } else if d := i.info.Decomposition(); d != nil { - // Note: If leading CCC != 0, then len(d) == 2 and last is also non-zero. - // Case 1: there is a leftover to copy. In this case the decomposition - // must begin with a modifier and should always be appended. - // Case 2: no leftover. Simply return d if followed by a ccc == 0 value. - p := outp + len(d) - if outp > 0 { - i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) - if p > len(i.buf) { - return i.buf[:outp] - } - } else if i.info.multiSegment() { - // outp must be 0 as multi-segment decompositions always - // start a new segment. - if i.multiSeg == nil { - i.multiSeg = d - i.next = nextMulti - return nextMulti(i) - } - // We are in the last segment. Treat as normal decomposition. - d = i.multiSeg - i.multiSeg = nil - p = len(d) - } - prevCC := i.info.tccc - if i.p += sz; i.p >= i.rb.nsrc { - i.setDone() - i.info = Properties{} // Force BoundaryBefore to succeed. - } else { - i.info = i.rb.f.info(i.rb.src, i.p) - } - switch ss.next(i.info) { - case ssOverflow: - i.next = nextCGJDecompose - fallthrough - case ssStarter: - if outp > 0 { - copy(i.buf[outp:], d) - return i.buf[:p] - } - return d - } - copy(i.buf[outp:], d) - outp = p - inCopyStart, outCopyStart = i.p, outp - if i.info.ccc < prevCC { - goto doNorm - } - continue - } else if r := i.rb.src.hangul(i.p); r != 0 { - outp = decomposeHangul(i.buf[:], r) - i.p += hangulUTF8Size - inCopyStart, outCopyStart = i.p, outp - if i.p >= i.rb.nsrc { - i.setDone() - break - } else if i.rb.src.hangul(i.p) != 0 { - i.next = nextHangul - return i.buf[:outp] - } - } else { - p := outp + sz - if p > len(i.buf) { - break - } - outp = p - i.p += sz - } - if i.p >= i.rb.nsrc { - i.setDone() - break - } - prevCC := i.info.tccc - i.info = i.rb.f.info(i.rb.src, i.p) - if v := ss.next(i.info); v == ssStarter { - break - } else if v == ssOverflow { - i.next = nextCGJDecompose - break - } - if i.info.ccc < prevCC { - goto doNorm - } - } - if outCopyStart == 0 { - return i.returnSlice(inCopyStart, i.p) - } else if inCopyStart < i.p { - i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) - } - return i.buf[:outp] -doNorm: - // Insert what we have decomposed so far in the reorderBuffer. - // As we will only reorder, there will always be enough room. - i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) - i.rb.insertDecomposed(i.buf[0:outp]) - return doNormDecomposed(i) -} - -func doNormDecomposed(i *Iter) []byte { - for { - if s := i.rb.ss.next(i.info); s == ssOverflow { - i.next = nextCGJDecompose - break - } - i.rb.insertUnsafe(i.rb.src, i.p, i.info) - if i.p += int(i.info.size); i.p >= i.rb.nsrc { - i.setDone() - break - } - i.info = i.rb.f.info(i.rb.src, i.p) - if i.info.ccc == 0 { - break - } - } - // new segment or too many combining characters: exit normalization - return i.buf[:i.rb.flushCopy(i.buf[:])] -} - -func nextCGJDecompose(i *Iter) []byte { - i.rb.ss = 0 - i.rb.insertCGJ() - i.next = nextDecomposed - buf := doNormDecomposed(i) - return buf -} - -// nextComposed is the implementation of Next for forms NFC and NFKC. -func nextComposed(i *Iter) []byte { - outp, startp := 0, i.p - var prevCC uint8 - ss := mkStreamSafe(i.info) - for { - if !i.info.isYesC() { - goto doNorm - } - prevCC = i.info.tccc - sz := int(i.info.size) - if sz == 0 { - sz = 1 // illegal rune: copy byte-by-byte - } - p := outp + sz - if p > len(i.buf) { - break - } - outp = p - i.p += sz - if i.p >= i.rb.nsrc { - i.setDone() - break - } else if i.rb.src._byte(i.p) < utf8.RuneSelf { - i.next = i.asciiF - break - } - i.info = i.rb.f.info(i.rb.src, i.p) - if v := ss.next(i.info); v == ssStarter { - break - } else if v == ssOverflow { - i.next = nextCGJCompose - break - } - if i.info.ccc < prevCC { - goto doNorm - } - } - return i.returnSlice(startp, i.p) -doNorm: - i.p = startp - i.info = i.rb.f.info(i.rb.src, i.p) - if i.info.multiSegment() { - d := i.info.Decomposition() - info := i.rb.f.info(input{bytes: d}, 0) - i.rb.insertUnsafe(input{bytes: d}, 0, info) - i.multiSeg = d[int(info.size):] - i.next = nextMultiNorm - return nextMultiNorm(i) - } - i.rb.ss.first(i.info) - i.rb.insertUnsafe(i.rb.src, i.p, i.info) - return doNormComposed(i) -} - -func doNormComposed(i *Iter) []byte { - // First rune should already be inserted. - for { - if i.p += int(i.info.size); i.p >= i.rb.nsrc { - i.setDone() - break - } - i.info = i.rb.f.info(i.rb.src, i.p) - if s := i.rb.ss.next(i.info); s == ssStarter { - break - } else if s == ssOverflow { - i.next = nextCGJCompose - break - } - i.rb.insertUnsafe(i.rb.src, i.p, i.info) - } - i.rb.compose() - seg := i.buf[:i.rb.flushCopy(i.buf[:])] - return seg -} - -func nextCGJCompose(i *Iter) []byte { - i.rb.ss = 0 // instead of first - i.rb.insertCGJ() - i.next = nextComposed - // Note that we treat any rune with nLeadingNonStarters > 0 as a non-starter, - // even if they are not. This is particularly dubious for U+FF9E and UFF9A. - // If we ever change that, insert a check here. - i.rb.ss.first(i.info) - i.rb.insertUnsafe(i.rb.src, i.p, i.info) - return doNormComposed(i) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/iter_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/iter_test.go deleted file mode 100644 index e2aa6f25..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/iter_test.go +++ /dev/null @@ -1,98 +0,0 @@ -// 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 ( - "strings" - "testing" -) - -func doIterNorm(f Form, s string) []byte { - acc := []byte{} - i := Iter{} - i.InitString(f, s) - for !i.Done() { - acc = append(acc, i.Next()...) - } - return acc -} - -func TestIterNext(t *testing.T) { - runNormTests(t, "IterNext", func(f Form, out []byte, s string) []byte { - return doIterNorm(f, string(append(out, s...))) - }) -} - -type SegmentTest struct { - in string - out []string -} - -var segmentTests = []SegmentTest{ - {"\u1E0A\u0323a", []string{"\x44\u0323\u0307", "a", ""}}, - {rep('a', segSize), append(strings.Split(rep('a', segSize), ""), "")}, - {rep('a', segSize+2), append(strings.Split(rep('a', segSize+2), ""), "")}, - {rep('a', segSize) + "\u0300aa", - append(strings.Split(rep('a', segSize-1), ""), "a\u0300", "a", "a", "")}, - - // U+0f73 is NOT treated as a starter as it is a modifier - {"a" + grave(29) + "\u0f73", []string{"a" + grave(29), cgj + "\u0f73"}}, - {"a\u0f73", []string{"a\u0f73"}}, - - // U+ff9e is treated as a non-starter. - // TODO: should we? Note that this will only affect iteration, as whether - // or not we do so does not affect the normalization output and will either - // way result in consistent iteration output. - {"a" + grave(30) + "\uff9e", []string{"a" + grave(30), cgj + "\uff9e"}}, - {"a\uff9e", []string{"a\uff9e"}}, -} - -var segmentTestsK = []SegmentTest{ - {"\u3332", []string{"\u30D5", "\u30A1", "\u30E9", "\u30C3", "\u30C8\u3099", ""}}, - // last segment of multi-segment decomposition needs normalization - {"\u3332\u093C", []string{"\u30D5", "\u30A1", "\u30E9", "\u30C3", "\u30C8\u093C\u3099", ""}}, - {"\u320E", []string{"\x28", "\uAC00", "\x29"}}, - - // last segment should be copied to start of buffer. - {"\ufdfa", []string{"\u0635", "\u0644", "\u0649", " ", "\u0627", "\u0644", "\u0644", "\u0647", " ", "\u0639", "\u0644", "\u064a", "\u0647", " ", "\u0648", "\u0633", "\u0644", "\u0645", ""}}, - {"\ufdfa" + grave(30), []string{"\u0635", "\u0644", "\u0649", " ", "\u0627", "\u0644", "\u0644", "\u0647", " ", "\u0639", "\u0644", "\u064a", "\u0647", " ", "\u0648", "\u0633", "\u0644", "\u0645" + grave(30), ""}}, - {"\uFDFA" + grave(64), []string{"\u0635", "\u0644", "\u0649", " ", "\u0627", "\u0644", "\u0644", "\u0647", " ", "\u0639", "\u0644", "\u064a", "\u0647", " ", "\u0648", "\u0633", "\u0644", "\u0645" + grave(30), cgj + grave(30), cgj + grave(4), ""}}, - - // Hangul and Jamo are grouped togeter. - {"\uAC00", []string{"\u1100\u1161", ""}}, - {"\uAC01", []string{"\u1100\u1161\u11A8", ""}}, - {"\u1100\u1161", []string{"\u1100\u1161", ""}}, -} - -// Note that, by design, segmentation is equal for composing and decomposing forms. -func TestIterSegmentation(t *testing.T) { - segmentTest(t, "SegmentTestD", NFD, segmentTests) - segmentTest(t, "SegmentTestC", NFC, segmentTests) - segmentTest(t, "SegmentTestKD", NFKD, segmentTestsK) - segmentTest(t, "SegmentTestKC", NFKC, segmentTestsK) -} - -func segmentTest(t *testing.T, name string, f Form, tests []SegmentTest) { - iter := Iter{} - for i, tt := range tests { - iter.InitString(f, tt.in) - for j, seg := range tt.out { - if seg == "" { - if !iter.Done() { - res := string(iter.Next()) - t.Errorf(`%s:%d:%d: expected Done()==true, found segment %+q`, name, i, j, res) - } - continue - } - if iter.Done() { - t.Errorf("%s:%d:%d: Done()==true, want false", name, i, j) - } - seg = f.String(seg) - if res := string(iter.Next()); res != seg { - t.Errorf(`%s:%d:%d" segment was %+q (%d); want %+q (%d)`, name, i, j, pc(res), len(res), pc(seg), len(seg)) - } - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/maketables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/maketables.go deleted file mode 100644 index 07bdff6b..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/maketables.go +++ /dev/null @@ -1,978 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// Normalization table generator. -// Data read from the web. -// See forminfo.go for a description of the trie values associated with each rune. - -package main - -import ( - "bytes" - "flag" - "fmt" - "io" - "log" - "sort" - "strconv" - "strings" - - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/triegen" - "golang.org/x/text/internal/ucd" -) - -func main() { - gen.Init() - loadUnicodeData() - compactCCC() - loadCompositionExclusions() - completeCharFields(FCanonical) - completeCharFields(FCompatibility) - computeNonStarterCounts() - verifyComputed() - printChars() - if *test { - testDerived() - printTestdata() - } else { - makeTables() - } -} - -var ( - tablelist = flag.String("tables", - "all", - "comma-separated list of which tables to generate; "+ - "can be 'decomp', 'recomp', 'info' and 'all'") - test = flag.Bool("test", - false, - "test existing tables against DerivedNormalizationProps and generate test data for regression testing") - verbose = flag.Bool("verbose", - false, - "write data to stdout as it is parsed") -) - -const MaxChar = 0x10FFFF // anything above this shouldn't exist - -// Quick Check properties of runes allow us to quickly -// determine whether a rune may occur in a normal form. -// For a given normal form, a rune may be guaranteed to occur -// verbatim (QC=Yes), may or may not combine with another -// rune (QC=Maybe), or may not occur (QC=No). -type QCResult int - -const ( - QCUnknown QCResult = iota - QCYes - QCNo - QCMaybe -) - -func (r QCResult) String() string { - switch r { - case QCYes: - return "Yes" - case QCNo: - return "No" - case QCMaybe: - return "Maybe" - } - return "***UNKNOWN***" -} - -const ( - FCanonical = iota // NFC or NFD - FCompatibility // NFKC or NFKD - FNumberOfFormTypes -) - -const ( - MComposed = iota // NFC or NFKC - MDecomposed // NFD or NFKD - MNumberOfModes -) - -// This contains only the properties we're interested in. -type Char struct { - name string - codePoint rune // if zero, this index is not a valid code point. - ccc uint8 // canonical combining class - origCCC uint8 - excludeInComp bool // from CompositionExclusions.txt - compatDecomp bool // it has a compatibility expansion - - nTrailingNonStarters uint8 - nLeadingNonStarters uint8 // must be equal to trailing if non-zero - - forms [FNumberOfFormTypes]FormInfo // For FCanonical and FCompatibility - - state State -} - -var chars = make([]Char, MaxChar+1) -var cccMap = make(map[uint8]uint8) - -func (c Char) String() string { - buf := new(bytes.Buffer) - - fmt.Fprintf(buf, "%U [%s]:\n", c.codePoint, c.name) - fmt.Fprintf(buf, " ccc: %v\n", c.ccc) - fmt.Fprintf(buf, " excludeInComp: %v\n", c.excludeInComp) - fmt.Fprintf(buf, " compatDecomp: %v\n", c.compatDecomp) - fmt.Fprintf(buf, " state: %v\n", c.state) - fmt.Fprintf(buf, " NFC:\n") - fmt.Fprint(buf, c.forms[FCanonical]) - fmt.Fprintf(buf, " NFKC:\n") - fmt.Fprint(buf, c.forms[FCompatibility]) - - return buf.String() -} - -// In UnicodeData.txt, some ranges are marked like this: -// 3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;; -// 4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;; -// parseCharacter keeps a state variable indicating the weirdness. -type State int - -const ( - SNormal State = iota // known to be zero for the type - SFirst - SLast - SMissing -) - -var lastChar = rune('\u0000') - -func (c Char) isValid() bool { - return c.codePoint != 0 && c.state != SMissing -} - -type FormInfo struct { - quickCheck [MNumberOfModes]QCResult // index: MComposed or MDecomposed - verified [MNumberOfModes]bool // index: MComposed or MDecomposed - - combinesForward bool // May combine with rune on the right - combinesBackward bool // May combine with rune on the left - isOneWay bool // Never appears in result - inDecomp bool // Some decompositions result in this char. - decomp Decomposition - expandedDecomp Decomposition -} - -func (f FormInfo) String() string { - buf := bytes.NewBuffer(make([]byte, 0)) - - fmt.Fprintf(buf, " quickCheck[C]: %v\n", f.quickCheck[MComposed]) - fmt.Fprintf(buf, " quickCheck[D]: %v\n", f.quickCheck[MDecomposed]) - fmt.Fprintf(buf, " cmbForward: %v\n", f.combinesForward) - fmt.Fprintf(buf, " cmbBackward: %v\n", f.combinesBackward) - fmt.Fprintf(buf, " isOneWay: %v\n", f.isOneWay) - fmt.Fprintf(buf, " inDecomp: %v\n", f.inDecomp) - fmt.Fprintf(buf, " decomposition: %X\n", f.decomp) - fmt.Fprintf(buf, " expandedDecomp: %X\n", f.expandedDecomp) - - return buf.String() -} - -type Decomposition []rune - -func parseDecomposition(s string, skipfirst bool) (a []rune, err error) { - decomp := strings.Split(s, " ") - if len(decomp) > 0 && skipfirst { - decomp = decomp[1:] - } - for _, d := range decomp { - point, err := strconv.ParseUint(d, 16, 64) - if err != nil { - return a, err - } - a = append(a, rune(point)) - } - return a, nil -} - -func loadUnicodeData() { - f := gen.OpenUCDFile("UnicodeData.txt") - defer f.Close() - p := ucd.New(f) - for p.Next() { - r := p.Rune(ucd.CodePoint) - char := &chars[r] - - char.ccc = uint8(p.Uint(ucd.CanonicalCombiningClass)) - decmap := p.String(ucd.DecompMapping) - - exp, err := parseDecomposition(decmap, false) - isCompat := false - if err != nil { - if len(decmap) > 0 { - exp, err = parseDecomposition(decmap, true) - if err != nil { - log.Fatalf(`%U: bad decomp |%v|: "%s"`, r, decmap, err) - } - isCompat = true - } - } - - char.name = p.String(ucd.Name) - char.codePoint = r - char.forms[FCompatibility].decomp = exp - if !isCompat { - char.forms[FCanonical].decomp = exp - } else { - char.compatDecomp = true - } - if len(decmap) > 0 { - char.forms[FCompatibility].decomp = exp - } - } - if err := p.Err(); err != nil { - log.Fatal(err) - } -} - -// compactCCC converts the sparse set of CCC values to a continguous one, -// reducing the number of bits needed from 8 to 6. -func compactCCC() { - m := make(map[uint8]uint8) - for i := range chars { - c := &chars[i] - m[c.ccc] = 0 - } - cccs := []int{} - for v, _ := range m { - cccs = append(cccs, int(v)) - } - sort.Ints(cccs) - for i, c := range cccs { - cccMap[uint8(i)] = uint8(c) - m[uint8(c)] = uint8(i) - } - for i := range chars { - c := &chars[i] - c.origCCC = c.ccc - c.ccc = m[c.ccc] - } - if len(m) >= 1<<6 { - log.Fatalf("too many difference CCC values: %d >= 64", len(m)) - } -} - -// CompositionExclusions.txt has form: -// 0958 # ... -// See http://unicode.org/reports/tr44/ for full explanation -func loadCompositionExclusions() { - f := gen.OpenUCDFile("CompositionExclusions.txt") - defer f.Close() - p := ucd.New(f) - for p.Next() { - c := &chars[p.Rune(0)] - if c.excludeInComp { - log.Fatalf("%U: Duplicate entry in exclusions.", c.codePoint) - } - c.excludeInComp = true - } - if e := p.Err(); e != nil { - log.Fatal(e) - } -} - -// hasCompatDecomp returns true if any of the recursive -// decompositions contains a compatibility expansion. -// In this case, the character may not occur in NFK*. -func hasCompatDecomp(r rune) bool { - c := &chars[r] - if c.compatDecomp { - return true - } - for _, d := range c.forms[FCompatibility].decomp { - if hasCompatDecomp(d) { - return true - } - } - return false -} - -// Hangul related constants. -const ( - HangulBase = 0xAC00 - HangulEnd = 0xD7A4 // hangulBase + Jamo combinations (19 * 21 * 28) - - JamoLBase = 0x1100 - JamoLEnd = 0x1113 - JamoVBase = 0x1161 - JamoVEnd = 0x1176 - JamoTBase = 0x11A8 - JamoTEnd = 0x11C3 - - JamoLVTCount = 19 * 21 * 28 - JamoTCount = 28 -) - -func isHangul(r rune) bool { - return HangulBase <= r && r < HangulEnd -} - -func isHangulWithoutJamoT(r rune) bool { - if !isHangul(r) { - return false - } - r -= HangulBase - return r < JamoLVTCount && r%JamoTCount == 0 -} - -func ccc(r rune) uint8 { - return chars[r].ccc -} - -// Insert a rune in a buffer, ordered by Canonical Combining Class. -func insertOrdered(b Decomposition, r rune) Decomposition { - n := len(b) - b = append(b, 0) - cc := ccc(r) - if cc > 0 { - // Use bubble sort. - for ; n > 0; n-- { - if ccc(b[n-1]) <= cc { - break - } - b[n] = b[n-1] - } - } - b[n] = r - return b -} - -// Recursively decompose. -func decomposeRecursive(form int, r rune, d Decomposition) Decomposition { - dcomp := chars[r].forms[form].decomp - if len(dcomp) == 0 { - return insertOrdered(d, r) - } - for _, c := range dcomp { - d = decomposeRecursive(form, c, d) - } - return d -} - -func completeCharFields(form int) { - // Phase 0: pre-expand decomposition. - for i := range chars { - f := &chars[i].forms[form] - if len(f.decomp) == 0 { - continue - } - exp := make(Decomposition, 0) - for _, c := range f.decomp { - exp = decomposeRecursive(form, c, exp) - } - f.expandedDecomp = exp - } - - // Phase 1: composition exclusion, mark decomposition. - for i := range chars { - c := &chars[i] - f := &c.forms[form] - - // Marks script-specific exclusions and version restricted. - f.isOneWay = c.excludeInComp - - // Singletons - f.isOneWay = f.isOneWay || len(f.decomp) == 1 - - // Non-starter decompositions - if len(f.decomp) > 1 { - chk := c.ccc != 0 || chars[f.decomp[0]].ccc != 0 - f.isOneWay = f.isOneWay || chk - } - - // Runes that decompose into more than two runes. - f.isOneWay = f.isOneWay || len(f.decomp) > 2 - - if form == FCompatibility { - f.isOneWay = f.isOneWay || hasCompatDecomp(c.codePoint) - } - - for _, r := range f.decomp { - chars[r].forms[form].inDecomp = true - } - } - - // Phase 2: forward and backward combining. - for i := range chars { - c := &chars[i] - f := &c.forms[form] - - if !f.isOneWay && len(f.decomp) == 2 { - f0 := &chars[f.decomp[0]].forms[form] - f1 := &chars[f.decomp[1]].forms[form] - if !f0.isOneWay { - f0.combinesForward = true - } - if !f1.isOneWay { - f1.combinesBackward = true - } - } - if isHangulWithoutJamoT(rune(i)) { - f.combinesForward = true - } - } - - // Phase 3: quick check values. - for i := range chars { - c := &chars[i] - f := &c.forms[form] - - switch { - case len(f.decomp) > 0: - f.quickCheck[MDecomposed] = QCNo - case isHangul(rune(i)): - f.quickCheck[MDecomposed] = QCNo - default: - f.quickCheck[MDecomposed] = QCYes - } - switch { - case f.isOneWay: - f.quickCheck[MComposed] = QCNo - case (i & 0xffff00) == JamoLBase: - f.quickCheck[MComposed] = QCYes - if JamoLBase <= i && i < JamoLEnd { - f.combinesForward = true - } - if JamoVBase <= i && i < JamoVEnd { - f.quickCheck[MComposed] = QCMaybe - f.combinesBackward = true - f.combinesForward = true - } - if JamoTBase <= i && i < JamoTEnd { - f.quickCheck[MComposed] = QCMaybe - f.combinesBackward = true - } - case !f.combinesBackward: - f.quickCheck[MComposed] = QCYes - default: - f.quickCheck[MComposed] = QCMaybe - } - } -} - -func computeNonStarterCounts() { - // Phase 4: leading and trailing non-starter count - for i := range chars { - c := &chars[i] - - runes := []rune{rune(i)} - // We always use FCompatibility so that the CGJ insertion points do not - // change for repeated normalizations with different forms. - if exp := c.forms[FCompatibility].expandedDecomp; len(exp) > 0 { - runes = exp - } - // We consider runes that combine backwards to be non-starters for the - // purpose of Stream-Safe Text Processing. - for _, r := range runes { - if cr := &chars[r]; cr.ccc == 0 && !cr.forms[FCompatibility].combinesBackward { - break - } - c.nLeadingNonStarters++ - } - for i := len(runes) - 1; i >= 0; i-- { - if cr := &chars[runes[i]]; cr.ccc == 0 && !cr.forms[FCompatibility].combinesBackward { - break - } - c.nTrailingNonStarters++ - } - if c.nTrailingNonStarters > 3 { - log.Fatalf("%U: Decomposition with more than 3 (%d) trailing modifiers (%U)", i, c.nTrailingNonStarters, runes) - } - - if isHangul(rune(i)) { - c.nTrailingNonStarters = 2 - if isHangulWithoutJamoT(rune(i)) { - c.nTrailingNonStarters = 1 - } - } - - if l, t := c.nLeadingNonStarters, c.nTrailingNonStarters; l > 0 && l != t { - log.Fatalf("%U: number of leading and trailing non-starters should be equal (%d vs %d)", i, l, t) - } - if t := c.nTrailingNonStarters; t > 3 { - log.Fatalf("%U: number of trailing non-starters is %d > 3", t) - } - } -} - -func printBytes(w io.Writer, b []byte, name string) { - fmt.Fprintf(w, "// %s: %d bytes\n", name, len(b)) - fmt.Fprintf(w, "var %s = [...]byte {", name) - for i, c := range b { - switch { - case i%64 == 0: - fmt.Fprintf(w, "\n// Bytes %x - %x\n", i, i+63) - case i%8 == 0: - fmt.Fprintf(w, "\n") - } - fmt.Fprintf(w, "0x%.2X, ", c) - } - fmt.Fprint(w, "\n}\n\n") -} - -// See forminfo.go for format. -func makeEntry(f *FormInfo, c *Char) uint16 { - e := uint16(0) - if r := c.codePoint; HangulBase <= r && r < HangulEnd { - e |= 0x40 - } - if f.combinesForward { - e |= 0x20 - } - if f.quickCheck[MDecomposed] == QCNo { - e |= 0x4 - } - switch f.quickCheck[MComposed] { - case QCYes: - case QCNo: - e |= 0x10 - case QCMaybe: - e |= 0x18 - default: - log.Fatalf("Illegal quickcheck value %v.", f.quickCheck[MComposed]) - } - e |= uint16(c.nTrailingNonStarters) - return e -} - -// decompSet keeps track of unique decompositions, grouped by whether -// the decomposition is followed by a trailing and/or leading CCC. -type decompSet [7]map[string]bool - -const ( - normalDecomp = iota - firstMulti - firstCCC - endMulti - firstLeadingCCC - firstCCCZeroExcept - firstStarterWithNLead - lastDecomp -) - -var cname = []string{"firstMulti", "firstCCC", "endMulti", "firstLeadingCCC", "firstCCCZeroExcept", "firstStarterWithNLead", "lastDecomp"} - -func makeDecompSet() decompSet { - m := decompSet{} - for i := range m { - m[i] = make(map[string]bool) - } - return m -} -func (m *decompSet) insert(key int, s string) { - m[key][s] = true -} - -func printCharInfoTables(w io.Writer) int { - mkstr := func(r rune, f *FormInfo) (int, string) { - d := f.expandedDecomp - s := string([]rune(d)) - if max := 1 << 6; len(s) >= max { - const msg = "%U: too many bytes in decomposition: %d >= %d" - log.Fatalf(msg, r, len(s), max) - } - head := uint8(len(s)) - if f.quickCheck[MComposed] != QCYes { - head |= 0x40 - } - if f.combinesForward { - head |= 0x80 - } - s = string([]byte{head}) + s - - lccc := ccc(d[0]) - tccc := ccc(d[len(d)-1]) - cc := ccc(r) - if cc != 0 && lccc == 0 && tccc == 0 { - log.Fatalf("%U: trailing and leading ccc are 0 for non-zero ccc %d", r, cc) - } - if tccc < lccc && lccc != 0 { - const msg = "%U: lccc (%d) must be <= tcc (%d)" - log.Fatalf(msg, r, lccc, tccc) - } - index := normalDecomp - nTrail := chars[r].nTrailingNonStarters - if tccc > 0 || lccc > 0 || nTrail > 0 { - tccc <<= 2 - tccc |= nTrail - s += string([]byte{tccc}) - index = endMulti - for _, r := range d[1:] { - if ccc(r) == 0 { - index = firstCCC - } - } - if lccc > 0 { - s += string([]byte{lccc}) - if index == firstCCC { - log.Fatalf("%U: multi-segment decomposition not supported for decompositions with leading CCC != 0", r) - } - index = firstLeadingCCC - } - if cc != lccc { - if cc != 0 { - log.Fatalf("%U: for lccc != ccc, expected ccc to be 0; was %d", r, cc) - } - index = firstCCCZeroExcept - } - } else if len(d) > 1 { - index = firstMulti - } - return index, s - } - - decompSet := makeDecompSet() - const nLeadStr = "\x00\x01" // 0-byte length and tccc with nTrail. - decompSet.insert(firstStarterWithNLead, nLeadStr) - - // Store the uniqued decompositions in a byte buffer, - // preceded by their byte length. - for _, c := range chars { - for _, f := range c.forms { - if len(f.expandedDecomp) == 0 { - continue - } - if f.combinesBackward { - log.Fatalf("%U: combinesBackward and decompose", c.codePoint) - } - index, s := mkstr(c.codePoint, &f) - decompSet.insert(index, s) - } - } - - decompositions := bytes.NewBuffer(make([]byte, 0, 10000)) - size := 0 - positionMap := make(map[string]uint16) - decompositions.WriteString("\000") - fmt.Fprintln(w, "const (") - for i, m := range decompSet { - sa := []string{} - for s := range m { - sa = append(sa, s) - } - sort.Strings(sa) - for _, s := range sa { - p := decompositions.Len() - decompositions.WriteString(s) - positionMap[s] = uint16(p) - } - if cname[i] != "" { - fmt.Fprintf(w, "%s = 0x%X\n", cname[i], decompositions.Len()) - } - } - fmt.Fprintln(w, "maxDecomp = 0x8000") - fmt.Fprintln(w, ")") - b := decompositions.Bytes() - printBytes(w, b, "decomps") - size += len(b) - - varnames := []string{"nfc", "nfkc"} - for i := 0; i < FNumberOfFormTypes; i++ { - trie := triegen.NewTrie(varnames[i]) - - for r, c := range chars { - f := c.forms[i] - d := f.expandedDecomp - if len(d) != 0 { - _, key := mkstr(c.codePoint, &f) - trie.Insert(rune(r), uint64(positionMap[key])) - if c.ccc != ccc(d[0]) { - // We assume the lead ccc of a decomposition !=0 in this case. - if ccc(d[0]) == 0 { - log.Fatalf("Expected leading CCC to be non-zero; ccc is %d", c.ccc) - } - } - } else if c.nLeadingNonStarters > 0 && len(f.expandedDecomp) == 0 && c.ccc == 0 && !f.combinesBackward { - // Handle cases where it can't be detected that the nLead should be equal - // to nTrail. - trie.Insert(c.codePoint, uint64(positionMap[nLeadStr])) - } else if v := makeEntry(&f, &c)<<8 | uint16(c.ccc); v != 0 { - trie.Insert(c.codePoint, uint64(0x8000|v)) - } - } - sz, err := trie.Gen(w, triegen.Compact(&normCompacter{name: varnames[i]})) - if err != nil { - log.Fatal(err) - } - size += sz - } - return size -} - -func contains(sa []string, s string) bool { - for _, a := range sa { - if a == s { - return true - } - } - return false -} - -func makeTables() { - w := &bytes.Buffer{} - - size := 0 - if *tablelist == "" { - return - } - list := strings.Split(*tablelist, ",") - if *tablelist == "all" { - list = []string{"recomp", "info"} - } - - // Compute maximum decomposition size. - max := 0 - for _, c := range chars { - if n := len(string(c.forms[FCompatibility].expandedDecomp)); n > max { - max = n - } - } - - fmt.Fprintln(w, "const (") - fmt.Fprintln(w, "\t// Version is the Unicode edition from which the tables are derived.") - fmt.Fprintf(w, "\tVersion = %q\n", gen.UnicodeVersion()) - fmt.Fprintln(w) - fmt.Fprintln(w, "\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform") - fmt.Fprintln(w, "\t// may need to write atomically for any Form. Making a destination buffer at") - fmt.Fprintln(w, "\t// least this size ensures that Transform can always make progress and that") - fmt.Fprintln(w, "\t// the user does not need to grow the buffer on an ErrShortDst.") - fmt.Fprintf(w, "\tMaxTransformChunkSize = %d+maxNonStarters*4\n", len(string(0x034F))+max) - fmt.Fprintln(w, ")\n") - - // Print the CCC remap table. - size += len(cccMap) - fmt.Fprintf(w, "var ccc = [%d]uint8{", len(cccMap)) - for i := 0; i < len(cccMap); i++ { - if i%8 == 0 { - fmt.Fprintln(w) - } - fmt.Fprintf(w, "%3d, ", cccMap[uint8(i)]) - } - fmt.Fprintln(w, "\n}\n") - - if contains(list, "info") { - size += printCharInfoTables(w) - } - - if contains(list, "recomp") { - // Note that we use 32 bit keys, instead of 64 bit. - // This clips the bits of three entries, but we know - // this won't cause a collision. The compiler will catch - // any changes made to UnicodeData.txt that introduces - // a collision. - // Note that the recomposition map for NFC and NFKC - // are identical. - - // Recomposition map - nrentries := 0 - for _, c := range chars { - f := c.forms[FCanonical] - if !f.isOneWay && len(f.decomp) > 0 { - nrentries++ - } - } - sz := nrentries * 8 - size += sz - fmt.Fprintf(w, "// recompMap: %d bytes (entries only)\n", sz) - fmt.Fprintln(w, "var recompMap = map[uint32]rune{") - for i, c := range chars { - f := c.forms[FCanonical] - d := f.decomp - if !f.isOneWay && len(d) > 0 { - key := uint32(uint16(d[0]))<<16 + uint32(uint16(d[1])) - fmt.Fprintf(w, "0x%.8X: 0x%.4X,\n", key, i) - } - } - fmt.Fprintf(w, "}\n\n") - } - - fmt.Fprintf(w, "// Total size of tables: %dKB (%d bytes)\n", (size+512)/1024, size) - gen.WriteGoFile("tables.go", "norm", w.Bytes()) -} - -func printChars() { - if *verbose { - for _, c := range chars { - if !c.isValid() || c.state == SMissing { - continue - } - fmt.Println(c) - } - } -} - -// verifyComputed does various consistency tests. -func verifyComputed() { - for i, c := range chars { - for _, f := range c.forms { - isNo := (f.quickCheck[MDecomposed] == QCNo) - if (len(f.decomp) > 0) != isNo && !isHangul(rune(i)) { - log.Fatalf("%U: NF*D QC must be No if rune decomposes", i) - } - - isMaybe := f.quickCheck[MComposed] == QCMaybe - if f.combinesBackward != isMaybe { - log.Fatalf("%U: NF*C QC must be Maybe if combinesBackward", i) - } - if len(f.decomp) > 0 && f.combinesForward && isMaybe { - log.Fatalf("%U: NF*C QC must be Yes or No if combinesForward and decomposes", i) - } - - if len(f.expandedDecomp) != 0 { - continue - } - if a, b := c.nLeadingNonStarters > 0, (c.ccc > 0 || f.combinesBackward); a != b { - // We accept these runes to be treated differently (it only affects - // segment breaking in iteration, most likely on improper use), but - // reconsider if more characters are added. - // U+FF9E HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L;<narrow> 3099;;;;N;;;;; - // U+FF9F HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L;<narrow> 309A;;;;N;;;;; - // U+3133 HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<compat> 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;; - // U+318E HANGUL LETTER ARAEAE;Lo;0;L;<compat> 11A1;;;;N;HANGUL LETTER ALAE AE;;;; - // U+FFA3 HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<narrow> 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;; - // U+FFDC HALFWIDTH HANGUL LETTER I;Lo;0;L;<narrow> 3163;;;;N;;;;; - if i != 0xFF9E && i != 0xFF9F && !(0x3133 <= i && i <= 0x318E) && !(0xFFA3 <= i && i <= 0xFFDC) { - log.Fatalf("%U: nLead was %v; want %v", i, a, b) - } - } - } - nfc := c.forms[FCanonical] - nfkc := c.forms[FCompatibility] - if nfc.combinesBackward != nfkc.combinesBackward { - log.Fatalf("%U: Cannot combine combinesBackward\n", c.codePoint) - } - } -} - -// Use values in DerivedNormalizationProps.txt to compare against the -// values we computed. -// DerivedNormalizationProps.txt has form: -// 00C0..00C5 ; NFD_QC; N # ... -// 0374 ; NFD_QC; N # ... -// See http://unicode.org/reports/tr44/ for full explanation -func testDerived() { - f := gen.OpenUCDFile("DerivedNormalizationProps.txt") - defer f.Close() - p := ucd.New(f) - for p.Next() { - r := p.Rune(0) - c := &chars[r] - - var ftype, mode int - qt := p.String(1) - switch qt { - case "NFC_QC": - ftype, mode = FCanonical, MComposed - case "NFD_QC": - ftype, mode = FCanonical, MDecomposed - case "NFKC_QC": - ftype, mode = FCompatibility, MComposed - case "NFKD_QC": - ftype, mode = FCompatibility, MDecomposed - default: - continue - } - var qr QCResult - switch p.String(2) { - case "Y": - qr = QCYes - case "N": - qr = QCNo - case "M": - qr = QCMaybe - default: - log.Fatalf(`Unexpected quick check value "%s"`, p.String(2)) - } - if got := c.forms[ftype].quickCheck[mode]; got != qr { - log.Printf("%U: FAILED %s (was %v need %v)\n", r, qt, got, qr) - } - c.forms[ftype].verified[mode] = true - } - if err := p.Err(); err != nil { - log.Fatal(err) - } - // Any unspecified value must be QCYes. Verify this. - for i, c := range chars { - for j, fd := range c.forms { - for k, qr := range fd.quickCheck { - if !fd.verified[k] && qr != QCYes { - m := "%U: FAIL F:%d M:%d (was %v need Yes) %s\n" - log.Printf(m, i, j, k, qr, c.name) - } - } - } - } -} - -var testHeader = `const ( - Yes = iota - No - Maybe -) - -type formData struct { - qc uint8 - combinesForward bool - decomposition string -} - -type runeData struct { - r rune - ccc uint8 - nLead uint8 - nTrail uint8 - f [2]formData // 0: canonical; 1: compatibility -} - -func f(qc uint8, cf bool, dec string) [2]formData { - return [2]formData{{qc, cf, dec}, {qc, cf, dec}} -} - -func g(qc, qck uint8, cf, cfk bool, d, dk string) [2]formData { - return [2]formData{{qc, cf, d}, {qck, cfk, dk}} -} - -var testData = []runeData{ -` - -func printTestdata() { - type lastInfo struct { - ccc uint8 - nLead uint8 - nTrail uint8 - f string - } - - last := lastInfo{} - w := &bytes.Buffer{} - fmt.Fprintf(w, testHeader) - for r, c := range chars { - f := c.forms[FCanonical] - qc, cf, d := f.quickCheck[MComposed], f.combinesForward, string(f.expandedDecomp) - f = c.forms[FCompatibility] - qck, cfk, dk := f.quickCheck[MComposed], f.combinesForward, string(f.expandedDecomp) - s := "" - if d == dk && qc == qck && cf == cfk { - s = fmt.Sprintf("f(%s, %v, %q)", qc, cf, d) - } else { - s = fmt.Sprintf("g(%s, %s, %v, %v, %q, %q)", qc, qck, cf, cfk, d, dk) - } - current := lastInfo{c.ccc, c.nLeadingNonStarters, c.nTrailingNonStarters, s} - if last != current { - fmt.Fprintf(w, "\t{0x%x, %d, %d, %d, %s},\n", r, c.origCCC, c.nLeadingNonStarters, c.nTrailingNonStarters, s) - last = current - } - } - fmt.Fprintln(w, "}") - gen.WriteGoFile("data_test.go", "norm", w.Bytes()) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/norm_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/norm_test.go deleted file mode 100644 index 12dacfcf..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/norm_test.go +++ /dev/null @@ -1,14 +0,0 @@ -// 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_test - -import ( - "testing" -) - -func TestPlaceHolder(t *testing.T) { - // Does nothing, just allows the Makefile to be canonical - // while waiting for the package itself to be written. -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/normalize.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/normalize.go deleted file mode 100644 index bcf8450d..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/normalize.go +++ /dev/null @@ -1,527 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run maketables.go triegen.go -//go:generate go run maketables.go triegen.go -test - -// Package norm contains types and functions for normalizing Unicode strings. -package norm - -import "unicode/utf8" - -// A Form denotes a canonical representation of Unicode code points. -// The Unicode-defined normalization and equivalence forms are: -// -// NFC Unicode Normalization Form C -// NFD Unicode Normalization Form D -// NFKC Unicode Normalization Form KC -// NFKD Unicode Normalization Form KD -// -// For a Form f, this documentation uses the notation f(x) to mean -// the bytes or string x converted to the given form. -// A position n in x is called a boundary if conversion to the form can -// proceed independently on both sides: -// f(x) == append(f(x[0:n]), f(x[n:])...) -// -// References: http://unicode.org/reports/tr15/ and -// http://unicode.org/notes/tn5/. -type Form int - -const ( - NFC Form = iota - NFD - NFKC - NFKD -) - -// Bytes returns f(b). May return b if f(b) = b. -func (f Form) Bytes(b []byte) []byte { - src := inputBytes(b) - ft := formTable[f] - n, ok := ft.quickSpan(src, 0, len(b), true) - if ok { - return b - } - out := make([]byte, n, len(b)) - copy(out, b[0:n]) - rb := reorderBuffer{f: *ft, src: src, nsrc: len(b), out: out, flushF: appendFlush} - return doAppendInner(&rb, n) -} - -// String returns f(s). -func (f Form) String(s string) string { - src := inputString(s) - ft := formTable[f] - n, ok := ft.quickSpan(src, 0, len(s), true) - if ok { - return s - } - out := make([]byte, n, len(s)) - copy(out, s[0:n]) - rb := reorderBuffer{f: *ft, src: src, nsrc: len(s), out: out, flushF: appendFlush} - return string(doAppendInner(&rb, n)) -} - -// IsNormal returns true if b == f(b). -func (f Form) IsNormal(b []byte) bool { - src := inputBytes(b) - ft := formTable[f] - bp, ok := ft.quickSpan(src, 0, len(b), true) - if ok { - return true - } - rb := reorderBuffer{f: *ft, src: src, nsrc: len(b)} - rb.setFlusher(nil, cmpNormalBytes) - for bp < len(b) { - rb.out = b[bp:] - if bp = decomposeSegment(&rb, bp, true); bp < 0 { - return false - } - bp, _ = rb.f.quickSpan(rb.src, bp, len(b), true) - } - return true -} - -func cmpNormalBytes(rb *reorderBuffer) bool { - b := rb.out - for i := 0; i < rb.nrune; i++ { - info := rb.rune[i] - if int(info.size) > len(b) { - return false - } - p := info.pos - pe := p + info.size - for ; p < pe; p++ { - if b[0] != rb.byte[p] { - return false - } - b = b[1:] - } - } - return true -} - -// IsNormalString returns true if s == f(s). -func (f Form) IsNormalString(s string) bool { - src := inputString(s) - ft := formTable[f] - bp, ok := ft.quickSpan(src, 0, len(s), true) - if ok { - return true - } - rb := reorderBuffer{f: *ft, src: src, nsrc: len(s)} - rb.setFlusher(nil, func(rb *reorderBuffer) bool { - for i := 0; i < rb.nrune; i++ { - info := rb.rune[i] - if bp+int(info.size) > len(s) { - return false - } - p := info.pos - pe := p + info.size - for ; p < pe; p++ { - if s[bp] != rb.byte[p] { - return false - } - bp++ - } - } - return true - }) - for bp < len(s) { - if bp = decomposeSegment(&rb, bp, true); bp < 0 { - return false - } - bp, _ = rb.f.quickSpan(rb.src, bp, len(s), true) - } - return true -} - -// patchTail fixes a case where a rune may be incorrectly normalized -// if it is followed by illegal continuation bytes. It returns the -// patched buffer and whether the decomposition is still in progress. -func patchTail(rb *reorderBuffer) bool { - info, p := lastRuneStart(&rb.f, rb.out) - if p == -1 || info.size == 0 { - return true - } - end := p + int(info.size) - extra := len(rb.out) - end - if extra > 0 { - // Potentially allocating memory. However, this only - // happens with ill-formed UTF-8. - x := make([]byte, 0) - x = append(x, rb.out[len(rb.out)-extra:]...) - rb.out = rb.out[:end] - decomposeToLastBoundary(rb) - rb.doFlush() - rb.out = append(rb.out, x...) - return false - } - buf := rb.out[p:] - rb.out = rb.out[:p] - decomposeToLastBoundary(rb) - if s := rb.ss.next(info); s == ssStarter { - rb.doFlush() - rb.ss.first(info) - } else if s == ssOverflow { - rb.doFlush() - rb.insertCGJ() - rb.ss = 0 - } - rb.insertUnsafe(inputBytes(buf), 0, info) - return true -} - -func appendQuick(rb *reorderBuffer, i int) int { - if rb.nsrc == i { - return i - } - end, _ := rb.f.quickSpan(rb.src, i, rb.nsrc, true) - rb.out = rb.src.appendSlice(rb.out, i, end) - return end -} - -// Append returns f(append(out, b...)). -// The buffer out must be nil, empty, or equal to f(out). -func (f Form) Append(out []byte, src ...byte) []byte { - return f.doAppend(out, inputBytes(src), len(src)) -} - -func (f Form) doAppend(out []byte, src input, n int) []byte { - if n == 0 { - return out - } - ft := formTable[f] - // Attempt to do a quickSpan first so we can avoid initializing the reorderBuffer. - if len(out) == 0 { - p, _ := ft.quickSpan(src, 0, n, true) - out = src.appendSlice(out, 0, p) - if p == n { - return out - } - rb := reorderBuffer{f: *ft, src: src, nsrc: n, out: out, flushF: appendFlush} - return doAppendInner(&rb, p) - } - rb := reorderBuffer{f: *ft, src: src, nsrc: n} - return doAppend(&rb, out, 0) -} - -func doAppend(rb *reorderBuffer, out []byte, p int) []byte { - rb.setFlusher(out, appendFlush) - src, n := rb.src, rb.nsrc - doMerge := len(out) > 0 - if q := src.skipContinuationBytes(p); q > p { - // Move leading non-starters to destination. - rb.out = src.appendSlice(rb.out, p, q) - p = q - doMerge = patchTail(rb) - } - fd := &rb.f - if doMerge { - var info Properties - if p < n { - info = fd.info(src, p) - if !info.BoundaryBefore() || info.nLeadingNonStarters() > 0 { - if p == 0 { - decomposeToLastBoundary(rb) - } - p = decomposeSegment(rb, p, true) - } - } - if info.size == 0 { - rb.doFlush() - // Append incomplete UTF-8 encoding. - return src.appendSlice(rb.out, p, n) - } - if rb.nrune > 0 { - return doAppendInner(rb, p) - } - } - p = appendQuick(rb, p) - return doAppendInner(rb, p) -} - -func doAppendInner(rb *reorderBuffer, p int) []byte { - for n := rb.nsrc; p < n; { - p = decomposeSegment(rb, p, true) - p = appendQuick(rb, p) - } - return rb.out -} - -// AppendString returns f(append(out, []byte(s))). -// The buffer out must be nil, empty, or equal to f(out). -func (f Form) AppendString(out []byte, src string) []byte { - return f.doAppend(out, inputString(src), len(src)) -} - -// QuickSpan returns a boundary n such that b[0:n] == f(b[0:n]). -// It is not guaranteed to return the largest such n. -func (f Form) QuickSpan(b []byte) int { - n, _ := formTable[f].quickSpan(inputBytes(b), 0, len(b), true) - return n -} - -// quickSpan returns a boundary n such that src[0:n] == f(src[0:n]) and -// whether any non-normalized parts were found. If atEOF is false, n will -// not point past the last segment if this segment might be become -// non-normalized by appending other runes. -func (f *formInfo) quickSpan(src input, i, end int, atEOF bool) (n int, ok bool) { - var lastCC uint8 - ss := streamSafe(0) - lastSegStart := i - for n = end; i < n; { - if j := src.skipASCII(i, n); i != j { - i = j - lastSegStart = i - 1 - lastCC = 0 - ss = 0 - continue - } - info := f.info(src, i) - if info.size == 0 { - if atEOF { - // include incomplete runes - return n, true - } - return lastSegStart, true - } - // This block needs to be before the next, because it is possible to - // have an overflow for runes that are starters (e.g. with U+FF9E). - switch ss.next(info) { - case ssStarter: - ss.first(info) - lastSegStart = i - case ssOverflow: - return lastSegStart, false - case ssSuccess: - if lastCC > info.ccc { - return lastSegStart, false - } - } - if f.composing { - if !info.isYesC() { - break - } - } else { - if !info.isYesD() { - break - } - } - lastCC = info.ccc - i += int(info.size) - } - if i == n { - if !atEOF { - n = lastSegStart - } - return n, true - } - return lastSegStart, false -} - -// QuickSpanString returns a boundary n such that b[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. - // TODO: consider adding NextBoundary - 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)) -} - -// LastBoundary returns the position i of the last boundary in b -// or -1 if b contains no boundary. -func (f Form) LastBoundary(b []byte) int { - return lastBoundary(formTable[f], b) -} - -func lastBoundary(fd *formInfo, b []byte) int { - i := len(b) - info, p := lastRuneStart(fd, b) - if p == -1 { - return -1 - } - if info.size == 0 { // ends with incomplete rune - if p == 0 { // starts with incomplete rune - return -1 - } - i = p - info, p = lastRuneStart(fd, b[:i]) - if p == -1 { // incomplete UTF-8 encoding or non-starter bytes without a starter - return i - } - } - if p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8 - return i - } - if info.BoundaryAfter() { - return i - } - ss := streamSafe(0) - v := ss.backwards(info) - for i = p; i >= 0 && v != ssStarter; i = p { - info, p = lastRuneStart(fd, b[:i]) - if v = ss.backwards(info); v == ssOverflow { - break - } - if p+int(info.size) != i { - if p == -1 { // no boundary found - return -1 - } - return i // boundary after an illegal UTF-8 encoding - } - } - return i -} - -// decomposeSegment scans the first segment in src into rb. It inserts 0x034f -// (Grapheme Joiner) when it encounters a sequence of more than 30 non-starters -// and returns the number of bytes consumed from src or iShortDst or iShortSrc. -func decomposeSegment(rb *reorderBuffer, sp int, atEOF bool) int { - // Force one character to be consumed. - info := rb.f.info(rb.src, sp) - if info.size == 0 { - return 0 - } - if rb.nrune > 0 { - if s := rb.ss.next(info); s == ssStarter { - goto end - } else if s == ssOverflow { - rb.insertCGJ() - goto end - } - } else { - rb.ss.first(info) - } - if err := rb.insertFlush(rb.src, sp, info); err != iSuccess { - return int(err) - } - for { - sp += int(info.size) - if sp >= rb.nsrc { - if !atEOF && !info.BoundaryAfter() { - return int(iShortSrc) - } - break - } - info = rb.f.info(rb.src, sp) - if info.size == 0 { - if !atEOF { - return int(iShortSrc) - } - break - } - if s := rb.ss.next(info); s == ssStarter { - break - } else if s == ssOverflow { - rb.insertCGJ() - break - } - if err := rb.insertFlush(rb.src, sp, info); err != iSuccess { - return int(err) - } - } -end: - if !rb.doFlush() { - return int(iShortDst) - } - return sp -} - -// lastRuneStart returns the runeInfo and position of the last -// rune in buf or the zero runeInfo and -1 if no rune was found. -func lastRuneStart(fd *formInfo, buf []byte) (Properties, int) { - p := len(buf) - 1 - for ; p >= 0 && !utf8.RuneStart(buf[p]); p-- { - } - if p < 0 { - return Properties{}, -1 - } - return fd.info(inputBytes(buf), p), p -} - -// decomposeToLastBoundary finds an open segment at the end of the buffer -// and scans it into rb. Returns the buffer minus the last segment. -func decomposeToLastBoundary(rb *reorderBuffer) { - fd := &rb.f - info, i := lastRuneStart(fd, rb.out) - if int(info.size) != len(rb.out)-i { - // illegal trailing continuation bytes - return - } - if info.BoundaryAfter() { - return - } - var add [maxNonStarters + 1]Properties // stores runeInfo in reverse order - padd := 0 - ss := streamSafe(0) - p := len(rb.out) - for { - add[padd] = info - v := ss.backwards(info) - if v == ssOverflow { - // Note that if we have an overflow, it the string we are appending to - // is not correctly normalized. In this case the behavior is undefined. - break - } - padd++ - p -= int(info.size) - if v == ssStarter || p < 0 { - break - } - info, i = lastRuneStart(fd, rb.out[:p]) - if int(info.size) != p-i { - break - } - } - rb.ss = ss - // Copy bytes for insertion as we may need to overwrite rb.out. - var buf [maxBufferSize * utf8.UTFMax]byte - cp := buf[:copy(buf[:], rb.out[p:])] - rb.out = rb.out[:p] - for padd--; padd >= 0; padd-- { - info = add[padd] - rb.insertUnsafe(inputBytes(cp), 0, info) - cp = cp[info.size:] - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/normalize_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/normalize_test.go deleted file mode 100644 index 8f2eac61..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/normalize_test.go +++ /dev/null @@ -1,1142 +0,0 @@ -// 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 ( - "bytes" - "flag" - "fmt" - "io" - "log" - "strings" - "testing" - "unicode/utf8" -) - -var ( - testn = flag.Int("testn", -1, "specific test number to run or -1 for all") -) - -// pc replaces any rune r that is repeated n times, for n > 1, with r{n}. -func pc(s string) []byte { - b := bytes.NewBuffer(make([]byte, 0, len(s))) - for i := 0; i < len(s); { - r, sz := utf8.DecodeRuneInString(s[i:]) - n := 0 - if sz == 1 { - // Special-case one-byte case to handle repetition for invalid UTF-8. - for c := s[i]; i+n < len(s) && s[i+n] == c; n++ { - } - } else { - for _, r2 := range s[i:] { - if r2 != r { - break - } - n++ - } - } - b.WriteString(s[i : i+sz]) - if n > 1 { - fmt.Fprintf(b, "{%d}", n) - } - i += sz * n - } - return b.Bytes() -} - -// pidx finds the index from which two strings start to differ, plus context. -// It returns the index and ellipsis if the index is greater than 0. -func pidx(a, b string) (i int, prefix string) { - for ; i < len(a) && i < len(b) && a[i] == b[i]; i++ { - } - if i < 8 { - return 0, "" - } - i -= 3 // ensure taking at least one full rune before the difference. - for k := i - 7; i > k && !utf8.RuneStart(a[i]); i-- { - } - return i, "..." -} - -type PositionTest struct { - input string - pos int - buffer string // expected contents of reorderBuffer, if applicable -} - -type positionFunc func(rb *reorderBuffer, s string) (int, []byte) - -func runPosTests(t *testing.T, name string, f Form, fn positionFunc, tests []PositionTest) { - rb := reorderBuffer{} - rb.init(f, nil) - for i, test := range tests { - rb.reset() - rb.src = inputString(test.input) - rb.nsrc = len(test.input) - pos, out := fn(&rb, test.input) - if pos != test.pos { - t.Errorf("%s:%d: position is %d; want %d", name, i, pos, test.pos) - } - if outs := string(out); outs != test.buffer { - k, pfx := pidx(outs, test.buffer) - t.Errorf("%s:%d: buffer \nwas %s%+q; \nwant %s%+q", name, i, pfx, pc(outs[k:]), pfx, pc(test.buffer[k:])) - } - } -} - -func grave(n int) string { - return rep(0x0300, n) -} - -func rep(r rune, n int) string { - return strings.Repeat(string(r), n) -} - -const segSize = maxByteBufferSize - -var cgj = GraphemeJoiner - -var decomposeSegmentTests = []PositionTest{ - // illegal runes - {"\xC0", 0, ""}, - {"\u00E0\x80", 2, "\u0061\u0300"}, - // starter - {"a", 1, "a"}, - {"ab", 1, "a"}, - // starter + composing - {"a\u0300", 3, "a\u0300"}, - {"a\u0300b", 3, "a\u0300"}, - // with decomposition - {"\u00C0", 2, "A\u0300"}, - {"\u00C0b", 2, "A\u0300"}, - // long - {grave(31), 60, grave(30) + cgj}, - {"a" + grave(31), 61, "a" + grave(30) + cgj}, - - // Stability tests: see http://www.unicode.org/review/pr-29.html. - // U+0300 COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;;;; - // U+0B47 ORIYA VOWEL SIGN E;Mc;0;L;;;;;N;;;;; - // U+0B3E ORIYA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; - // U+1100 HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;;;; - // U+1161 HANGUL JUNGSEONG A;Lo;0;L;;;;;N;;;;; - {"\u0B47\u0300\u0B3E", 8, "\u0B47\u0300\u0B3E"}, - {"\u1100\u0300\u1161", 8, "\u1100\u0300\u1161"}, - {"\u0B47\u0B3E", 6, "\u0B47\u0B3E"}, - {"\u1100\u1161", 6, "\u1100\u1161"}, - - // U+04DA MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;; - // Sequence of decomposing characters that are starters and modifiers. - {"\u0d4a" + strings.Repeat("\u0d3e", 31), 90, "\u0d46" + strings.Repeat("\u0d3e", 30) + cgj}, - - {grave(30), 60, grave(30)}, - // U+FF9E is a starter, but decomposes to U+3099, which is not. - {grave(30) + "\uff9e", 60, grave(30) + cgj}, - // ends with incomplete UTF-8 encoding - {"\xCC", 0, ""}, - {"\u0300\xCC", 2, "\u0300"}, -} - -func decomposeSegmentF(rb *reorderBuffer, s string) (int, []byte) { - rb.initString(NFD, s) - rb.setFlusher(nil, appendFlush) - p := decomposeSegment(rb, 0, true) - return p, rb.out -} - -func TestDecomposeSegment(t *testing.T) { - runPosTests(t, "TestDecomposeSegment", NFC, decomposeSegmentF, decomposeSegmentTests) -} - -var firstBoundaryTests = []PositionTest{ - // no boundary - {"", -1, ""}, - {"\u0300", -1, ""}, - {"\x80\x80", -1, ""}, - // illegal runes - {"\xff", 0, ""}, - {"\u0300\xff", 2, ""}, - {"\u0300\xc0\x80\x80", 2, ""}, - // boundaries - {"a", 0, ""}, - {"\u0300a", 2, ""}, - // Hangul - {"\u1103\u1161", 0, ""}, - {"\u110B\u1173\u11B7", 0, ""}, - {"\u1161\u110B\u1173\u11B7", 3, ""}, - {"\u1173\u11B7\u1103\u1161", 6, ""}, - // too many combining characters. - {grave(maxNonStarters - 1), -1, ""}, - {grave(maxNonStarters), 60, ""}, - {grave(maxNonStarters + 1), 60, ""}, -} - -func firstBoundaryF(rb *reorderBuffer, s string) (int, []byte) { - return rb.f.form.FirstBoundary([]byte(s)), nil -} - -func firstBoundaryStringF(rb *reorderBuffer, s string) (int, []byte) { - return rb.f.form.FirstBoundaryInString(s), nil -} - -func TestFirstBoundary(t *testing.T) { - runPosTests(t, "TestFirstBoundary", NFC, firstBoundaryF, firstBoundaryTests) - runPosTests(t, "TestFirstBoundaryInString", NFC, firstBoundaryStringF, firstBoundaryTests) -} - -var decomposeToLastTests = []PositionTest{ - // ends with inert character - {"Hello!", 6, ""}, - {"\u0632", 2, ""}, - {"a\u0301\u0635", 5, ""}, - // ends with non-inert starter - {"a", 0, "a"}, - {"a\u0301a", 3, "a"}, - {"a\u0301\u03B9", 3, "\u03B9"}, - {"a\u0327", 0, "a\u0327"}, - // illegal runes - {"\xFF", 1, ""}, - {"aa\xFF", 3, ""}, - {"\xC0\x80\x80", 3, ""}, - {"\xCC\x80\x80", 3, ""}, - // ends with incomplete UTF-8 encoding - {"a\xCC", 2, ""}, - // ends with combining characters - {"\u0300\u0301", 0, "\u0300\u0301"}, - {"a\u0300\u0301", 0, "a\u0300\u0301"}, - {"a\u0301\u0308", 0, "a\u0301\u0308"}, - {"a\u0308\u0301", 0, "a\u0308\u0301"}, - {"aaaa\u0300\u0301", 3, "a\u0300\u0301"}, - {"\u0300a\u0300\u0301", 2, "a\u0300\u0301"}, - {"\u00C0", 0, "A\u0300"}, - {"a\u00C0", 1, "A\u0300"}, - // decomposing - {"a\u0300\u00E0", 3, "a\u0300"}, - // multisegment decompositions (flushes leading segments) - {"a\u0300\uFDC0", 7, "\u064A"}, - {"\uFDC0" + grave(29), 4, "\u064A" + grave(29)}, - {"\uFDC0" + grave(30), 4, "\u064A" + grave(30)}, - {"\uFDC0" + grave(31), 5, grave(30)}, - {"\uFDFA" + grave(14), 31, "\u0645" + grave(14)}, - // Overflow - {"\u00E0" + grave(29), 0, "a" + grave(30)}, - {"\u00E0" + grave(30), 2, grave(30)}, - // Hangul - {"a\u1103", 1, "\u1103"}, - {"a\u110B", 1, "\u110B"}, - {"a\u110B\u1173", 1, "\u110B\u1173"}, - // See comment in composition.go:compBoundaryAfter. - {"a\u110B\u1173\u11B7", 1, "\u110B\u1173\u11B7"}, - {"a\uC73C", 1, "\u110B\u1173"}, - {"다ìŒ", 3, "\u110B\u1173\u11B7"}, - {"다", 0, "\u1103\u1161"}, - {"\u1103\u1161\u110B\u1173\u11B7", 6, "\u110B\u1173\u11B7"}, - {"\u110B\u1173\u11B7\u1103\u1161", 9, "\u1103\u1161"}, - {"다ìŒìŒ", 6, "\u110B\u1173\u11B7"}, - {"ìŒë‹¤ë‹¤", 6, "\u1103\u1161"}, - // maximized buffer - {"a" + grave(30), 0, "a" + grave(30)}, - // Buffer overflow - {"a" + grave(31), 3, grave(30)}, - // weird UTF-8 - {"a\u0300\u11B7", 0, "a\u0300\u11B7"}, -} - -func decomposeToLast(rb *reorderBuffer, s string) (int, []byte) { - rb.setFlusher([]byte(s), appendFlush) - decomposeToLastBoundary(rb) - buf := rb.flush(nil) - return len(rb.out), buf -} - -func TestDecomposeToLastBoundary(t *testing.T) { - runPosTests(t, "TestDecomposeToLastBoundary", NFKC, decomposeToLast, decomposeToLastTests) -} - -var lastBoundaryTests = []PositionTest{ - // ends with inert character - {"Hello!", 6, ""}, - {"\u0632", 2, ""}, - // ends with non-inert starter - {"a", 0, ""}, - // illegal runes - {"\xff", 1, ""}, - {"aa\xff", 3, ""}, - {"a\xff\u0300", 1, ""}, - {"\xc0\x80\x80", 3, ""}, - {"\xc0\x80\x80\u0300", 3, ""}, - // ends with incomplete UTF-8 encoding - {"\xCC", -1, ""}, - {"\xE0\x80", -1, ""}, - {"\xF0\x80\x80", -1, ""}, - {"a\xCC", 0, ""}, - {"\x80\xCC", 1, ""}, - {"\xCC\xCC", 1, ""}, - // ends with combining characters - {"a\u0300\u0301", 0, ""}, - {"aaaa\u0300\u0301", 3, ""}, - {"\u0300a\u0300\u0301", 2, ""}, - {"\u00C0", 0, ""}, - {"a\u00C0", 1, ""}, - // decomposition may recombine - {"\u0226", 0, ""}, - // no boundary - {"", -1, ""}, - {"\u0300\u0301", -1, ""}, - {"\u0300", -1, ""}, - {"\x80\x80", -1, ""}, - {"\x80\x80\u0301", -1, ""}, - // Hangul - {"다ìŒ", 3, ""}, - {"다", 0, ""}, - {"\u1103\u1161\u110B\u1173\u11B7", 6, ""}, - {"\u110B\u1173\u11B7\u1103\u1161", 9, ""}, - // too many combining characters. - {grave(maxNonStarters - 1), -1, ""}, - // May still be preceded with a non-starter. - {grave(maxNonStarters), -1, ""}, - // May still need to insert a cgj after the last combiner. - {grave(maxNonStarters + 1), 2, ""}, - {grave(maxNonStarters + 2), 4, ""}, - - {"a" + grave(maxNonStarters-1), 0, ""}, - {"a" + grave(maxNonStarters), 0, ""}, - // May still need to insert a cgj after the last combiner. - {"a" + grave(maxNonStarters+1), 3, ""}, - {"a" + grave(maxNonStarters+2), 5, ""}, -} - -func lastBoundaryF(rb *reorderBuffer, s string) (int, []byte) { - return rb.f.form.LastBoundary([]byte(s)), nil -} - -func TestLastBoundary(t *testing.T) { - runPosTests(t, "TestLastBoundary", NFC, lastBoundaryF, lastBoundaryTests) -} - -var quickSpanTests = []PositionTest{ - {"", 0, ""}, - // starters - {"a", 1, ""}, - {"abc", 3, ""}, - {"\u043Eb", 3, ""}, - // incomplete last rune. - {"\xCC", 1, ""}, - {"a\xCC", 2, ""}, - // incorrectly ordered combining characters - {"\u0300\u0316", 0, ""}, - {"\u0300\u0316cd", 0, ""}, - // have a maximum number of combining characters. - {rep(0x035D, 30) + "\u035B", 0, ""}, - {"a" + rep(0x035D, 30) + "\u035B", 0, ""}, - {"ÆŸ" + rep(0x035D, 30) + "\u035B", 0, ""}, - {"aa" + rep(0x035D, 30) + "\u035B", 1, ""}, - {rep(0x035D, 30) + cgj + "\u035B", 64, ""}, - {"a" + rep(0x035D, 30) + cgj + "\u035B", 65, ""}, - {"ÆŸ" + rep(0x035D, 30) + cgj + "\u035B", 66, ""}, - {"aa" + rep(0x035D, 30) + cgj + "\u035B", 66, ""}, -} - -var quickSpanNFDTests = []PositionTest{ - // needs decomposing - {"\u00C0", 0, ""}, - {"abc\u00C0", 3, ""}, - // correctly ordered combining characters - {"\u0300", 2, ""}, - {"ab\u0300", 4, ""}, - {"ab\u0300cd", 6, ""}, - {"\u0300cd", 4, ""}, - {"\u0316\u0300", 4, ""}, - {"ab\u0316\u0300", 6, ""}, - {"ab\u0316\u0300cd", 8, ""}, - {"ab\u0316\u0300\u00C0", 6, ""}, - {"\u0316\u0300cd", 6, ""}, - {"\u043E\u0308b", 5, ""}, - // incorrectly ordered combining characters - {"ab\u0300\u0316", 1, ""}, // TODO: we could skip 'b' as well. - {"ab\u0300\u0316cd", 1, ""}, - // Hangul - {"ê°™ì€", 0, ""}, -} - -var quickSpanNFCTests = []PositionTest{ - // okay composed - {"\u00C0", 2, ""}, - {"abc\u00C0", 5, ""}, - // correctly ordered combining characters - {"ab\u0300", 1, ""}, - {"ab\u0300cd", 1, ""}, - {"ab\u0316\u0300", 1, ""}, - {"ab\u0316\u0300cd", 1, ""}, - {"\u00C0\u035D", 4, ""}, - // we do not special case leading combining characters - {"\u0300cd", 0, ""}, - {"\u0300", 0, ""}, - {"\u0316\u0300", 0, ""}, - {"\u0316\u0300cd", 0, ""}, - // incorrectly ordered combining characters - {"ab\u0300\u0316", 1, ""}, - {"ab\u0300\u0316cd", 1, ""}, - // Hangul - {"ê°™ì€", 6, ""}, - // We return the start of the violating segment in case of overflow. - {grave(30) + "\uff9e", 0, ""}, - {grave(30), 0, ""}, -} - -func doQuickSpan(rb *reorderBuffer, s string) (int, []byte) { - return rb.f.form.QuickSpan([]byte(s)), nil -} - -func doQuickSpanString(rb *reorderBuffer, s string) (int, []byte) { - return rb.f.form.QuickSpanString(s), nil -} - -func TestQuickSpan(t *testing.T) { - runPosTests(t, "TestQuickSpanNFD1", NFD, doQuickSpan, quickSpanTests) - runPosTests(t, "TestQuickSpanNFD2", NFD, doQuickSpan, quickSpanNFDTests) - runPosTests(t, "TestQuickSpanNFC1", NFC, doQuickSpan, quickSpanTests) - runPosTests(t, "TestQuickSpanNFC2", NFC, doQuickSpan, quickSpanNFCTests) - - runPosTests(t, "TestQuickSpanStringNFD1", NFD, doQuickSpanString, quickSpanTests) - runPosTests(t, "TestQuickSpanStringNFD2", NFD, doQuickSpanString, quickSpanNFDTests) - runPosTests(t, "TestQuickSpanStringNFC1", NFC, doQuickSpanString, quickSpanTests) - runPosTests(t, "TestQuickSpanStringNFC2", NFC, doQuickSpanString, quickSpanNFCTests) -} - -var isNormalTests = []PositionTest{ - {"", 1, ""}, - // illegal runes - {"\xff", 1, ""}, - // starters - {"a", 1, ""}, - {"abc", 1, ""}, - {"\u043Eb", 1, ""}, - // incorrectly ordered combining characters - {"\u0300\u0316", 0, ""}, - {"ab\u0300\u0316", 0, ""}, - {"ab\u0300\u0316cd", 0, ""}, - {"\u0300\u0316cd", 0, ""}, -} -var isNormalNFDTests = []PositionTest{ - // needs decomposing - {"\u00C0", 0, ""}, - {"abc\u00C0", 0, ""}, - // correctly ordered combining characters - {"\u0300", 1, ""}, - {"ab\u0300", 1, ""}, - {"ab\u0300cd", 1, ""}, - {"\u0300cd", 1, ""}, - {"\u0316\u0300", 1, ""}, - {"ab\u0316\u0300", 1, ""}, - {"ab\u0316\u0300cd", 1, ""}, - {"\u0316\u0300cd", 1, ""}, - {"\u043E\u0308b", 1, ""}, - // Hangul - {"ê°™ì€", 0, ""}, -} -var isNormalNFCTests = []PositionTest{ - // okay composed - {"\u00C0", 1, ""}, - {"abc\u00C0", 1, ""}, - // need reordering - {"a\u0300", 0, ""}, - {"a\u0300cd", 0, ""}, - {"a\u0316\u0300", 0, ""}, - {"a\u0316\u0300cd", 0, ""}, - // correctly ordered combining characters - {"ab\u0300", 1, ""}, - {"ab\u0300cd", 1, ""}, - {"ab\u0316\u0300", 1, ""}, - {"ab\u0316\u0300cd", 1, ""}, - {"\u00C0\u035D", 1, ""}, - {"\u0300", 1, ""}, - {"\u0316\u0300cd", 1, ""}, - // Hangul - {"ê°™ì€", 1, ""}, -} - -var isNormalNFKXTests = []PositionTest{ - // Special case. - {"\u00BC", 0, ""}, -} - -func isNormalF(rb *reorderBuffer, s string) (int, []byte) { - if rb.f.form.IsNormal([]byte(s)) { - return 1, nil - } - return 0, nil -} - -func isNormalStringF(rb *reorderBuffer, s string) (int, []byte) { - if rb.f.form.IsNormalString(s) { - return 1, nil - } - return 0, nil -} - -func TestIsNormal(t *testing.T) { - runPosTests(t, "TestIsNormalNFD1", NFD, isNormalF, isNormalTests) - runPosTests(t, "TestIsNormalNFD2", NFD, isNormalF, isNormalNFDTests) - runPosTests(t, "TestIsNormalNFC1", NFC, isNormalF, isNormalTests) - runPosTests(t, "TestIsNormalNFC2", NFC, isNormalF, isNormalNFCTests) - runPosTests(t, "TestIsNormalNFKD1", NFKD, isNormalF, isNormalTests) - runPosTests(t, "TestIsNormalNFKD2", NFKD, isNormalF, isNormalNFDTests) - runPosTests(t, "TestIsNormalNFKD3", NFKD, isNormalF, isNormalNFKXTests) - runPosTests(t, "TestIsNormalNFKC1", NFKC, isNormalF, isNormalTests) - runPosTests(t, "TestIsNormalNFKC2", NFKC, isNormalF, isNormalNFCTests) - runPosTests(t, "TestIsNormalNFKC3", NFKC, isNormalF, isNormalNFKXTests) -} - -func TestIsNormalString(t *testing.T) { - runPosTests(t, "TestIsNormalNFD1", NFD, isNormalStringF, isNormalTests) - runPosTests(t, "TestIsNormalNFD2", NFD, isNormalStringF, isNormalNFDTests) - runPosTests(t, "TestIsNormalNFC1", NFC, isNormalStringF, isNormalTests) - runPosTests(t, "TestIsNormalNFC2", NFC, isNormalStringF, isNormalNFCTests) -} - -type AppendTest struct { - left string - right string - out string -} - -type appendFunc func(f Form, out []byte, s string) []byte - -var fstr = []string{"NFC", "NFD", "NFKC", "NFKD"} - -func runNormTests(t *testing.T, name string, fn appendFunc) { - for f := NFC; f <= NFKD; f++ { - runAppendTests(t, name, f, fn, normTests[f]) - } -} - -func runAppendTests(t *testing.T, name string, f Form, fn appendFunc, tests []AppendTest) { - for i, test := range tests { - if *testn >= 0 && i != *testn { - continue - } - out := []byte(test.left) - have := string(fn(f, out, test.right)) - if len(have) != len(test.out) { - t.Errorf("%s.%s:%d: length is %d; want %d (%+q vs %+q)", fstr[f], name, i, len(have), len(test.out), pc(have), pc(test.out)) - } - if have != test.out { - k, pf := pidx(have, test.out) - t.Errorf("%s.%s:%d: \nwas %s%+q; \nwant %s%+q", fstr[f], name, i, pf, pc(have[k:]), pf, pc(test.out[k:])) - } - - // Bootstrap by normalizing input. Ensures that the various variants - // behave the same. - for g := NFC; g <= NFKD; g++ { - if f == g { - continue - } - want := g.String(test.left + test.right) - have := string(fn(g, g.AppendString(nil, test.left), test.right)) - if len(have) != len(want) { - t.Errorf("%s(%s.%s):%d: length is %d; want %d (%+q vs %+q)", fstr[g], fstr[f], name, i, len(have), len(want), pc(have), pc(want)) - } - if have != want { - k, pf := pidx(have, want) - t.Errorf("%s(%s.%s):%d: \nwas %s%+q; \nwant %s%+q", fstr[g], fstr[f], name, i, pf, pc(have[k:]), pf, pc(want[k:])) - } - } - } -} - -var normTests = [][]AppendTest{ - appendTestsNFC, - appendTestsNFD, - appendTestsNFKC, - appendTestsNFKD, -} - -var appendTestsNFC = []AppendTest{ - {"", ascii, ascii}, - {"", txt_all, txt_all}, - {"\uff9e", grave(30), "\uff9e" + grave(29) + cgj + grave(1)}, - {grave(30), "\uff9e", grave(30) + cgj + "\uff9e"}, - - // Tests designed for Iter. - { // ordering of non-composing combining characters - "", - "\u0305\u0316", - "\u0316\u0305", - }, - { // segment overflow - "", - "a" + rep(0x0305, maxNonStarters+4) + "\u0316", - "a" + rep(0x0305, maxNonStarters) + cgj + "\u0316" + rep(0x305, 4), - }, - - { // Combine across non-blocking non-starters. - // U+0327 COMBINING CEDILLA;Mn;202;NSM;;;;;N;NON-SPACING CEDILLA;;;; - // U+0325 COMBINING RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RING BELOW;;;; - "", "a\u0327\u0325", "\u1e01\u0327", - }, - - { // Jamo V+T does not combine. - "", - "\u1161\u11a8", - "\u1161\u11a8", - }, - - // Stability tests: see http://www.unicode.org/review/pr-29.html. - {"", "\u0b47\u0300\u0b3e", "\u0b47\u0300\u0b3e"}, - {"", "\u1100\u0300\u1161", "\u1100\u0300\u1161"}, - {"", "\u0b47\u0b3e", "\u0b4b"}, - {"", "\u1100\u1161", "\uac00"}, - - // U+04DA MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;; - { // 0d4a starts a new segment. - "", - "\u0d4a" + strings.Repeat("\u0d3e", 15) + "\u0d4a" + strings.Repeat("\u0d3e", 15), - "\u0d4a" + strings.Repeat("\u0d3e", 15) + "\u0d4a" + strings.Repeat("\u0d3e", 15), - }, - - { // Split combining characters. - // TODO: don't insert CGJ before starters. - "", - "\u0d46" + strings.Repeat("\u0d3e", 31), - "\u0d4a" + strings.Repeat("\u0d3e", 29) + cgj + "\u0d3e", - }, - - { // Split combining characters. - "", - "\u0d4a" + strings.Repeat("\u0d3e", 30), - "\u0d4a" + strings.Repeat("\u0d3e", 29) + cgj + "\u0d3e", - }, -} - -var appendTestsNFD = []AppendTest{ -// TODO: Move some of the tests here. -} - -var appendTestsNFKC = []AppendTest{ - // empty buffers - {"", "", ""}, - {"a", "", "a"}, - {"", "a", "a"}, - {"", "\u0041\u0307\u0304", "\u01E0"}, - // segment split across buffers - {"", "a\u0300b", "\u00E0b"}, - {"a", "\u0300b", "\u00E0b"}, - {"a", "\u0300\u0316", "\u00E0\u0316"}, - {"a", "\u0316\u0300", "\u00E0\u0316"}, - {"a", "\u0300a\u0300", "\u00E0\u00E0"}, - {"a", "\u0300a\u0300a\u0300", "\u00E0\u00E0\u00E0"}, - {"a", "\u0300aaa\u0300aaa\u0300", "\u00E0aa\u00E0aa\u00E0"}, - {"a\u0300", "\u0327", "\u00E0\u0327"}, - {"a\u0327", "\u0300", "\u00E0\u0327"}, - {"a\u0316", "\u0300", "\u00E0\u0316"}, - {"\u0041\u0307", "\u0304", "\u01E0"}, - // Hangul - {"", "\u110B\u1173", "\uC73C"}, - {"", "\u1103\u1161", "\uB2E4"}, - {"", "\u110B\u1173\u11B7", "\uC74C"}, - {"", "\u320E", "\x28\uAC00\x29"}, - {"", "\x28\u1100\u1161\x29", "\x28\uAC00\x29"}, - {"\u1103", "\u1161", "\uB2E4"}, - {"\u110B", "\u1173\u11B7", "\uC74C"}, - {"\u110B\u1173", "\u11B7", "\uC74C"}, - {"\uC73C", "\u11B7", "\uC74C"}, - // UTF-8 encoding split across buffers - {"a\xCC", "\x80", "\u00E0"}, - {"a\xCC", "\x80b", "\u00E0b"}, - {"a\xCC", "\x80a\u0300", "\u00E0\u00E0"}, - {"a\xCC", "\x80\x80", "\u00E0\x80"}, - {"a\xCC", "\x80\xCC", "\u00E0\xCC"}, - {"a\u0316\xCC", "\x80a\u0316\u0300", "\u00E0\u0316\u00E0\u0316"}, - // ending in incomplete UTF-8 encoding - {"", "\xCC", "\xCC"}, - {"a", "\xCC", "a\xCC"}, - {"a", "b\xCC", "ab\xCC"}, - {"\u0226", "\xCC", "\u0226\xCC"}, - // illegal runes - {"", "\x80", "\x80"}, - {"", "\x80\x80\x80", "\x80\x80\x80"}, - {"", "\xCC\x80\x80\x80", "\xCC\x80\x80\x80"}, - {"", "a\x80", "a\x80"}, - {"", "a\x80\x80\x80", "a\x80\x80\x80"}, - {"", "a\x80\x80\x80\x80\x80\x80", "a\x80\x80\x80\x80\x80\x80"}, - {"a", "\x80\x80\x80", "a\x80\x80\x80"}, - // overflow - {"", strings.Repeat("\x80", 33), strings.Repeat("\x80", 33)}, - {strings.Repeat("\x80", 33), "", strings.Repeat("\x80", 33)}, - {strings.Repeat("\x80", 33), strings.Repeat("\x80", 33), strings.Repeat("\x80", 66)}, - // overflow of combining characters - {"", grave(34), grave(30) + cgj + grave(4)}, - {"", grave(36), grave(30) + cgj + grave(6)}, - {grave(29), grave(5), grave(30) + cgj + grave(4)}, - {grave(30), grave(4), grave(30) + cgj + grave(4)}, - {grave(30), grave(3), grave(30) + cgj + grave(3)}, - {grave(30) + "\xCC", "\x80", grave(30) + cgj + grave(1)}, - {"", "\uFDFA" + grave(14), "\u0635\u0644\u0649 \u0627\u0644\u0644\u0647 \u0639\u0644\u064a\u0647 \u0648\u0633\u0644\u0645" + grave(14)}, - {"", "\uFDFA" + grave(28) + "\u0316", "\u0635\u0644\u0649 \u0627\u0644\u0644\u0647 \u0639\u0644\u064a\u0647 \u0648\u0633\u0644\u0645\u0316" + grave(28)}, - // - First rune has a trailing non-starter. - {"\u00d5", grave(30), "\u00d5" + grave(29) + cgj + grave(1)}, - // - U+FF9E decomposes into a non-starter in compatibility mode. A CGJ must be - // inserted even when FF9E starts a new segment. - {"\uff9e", grave(30), "\u3099" + grave(29) + cgj + grave(1)}, - {grave(30), "\uff9e", grave(30) + cgj + "\u3099"}, - // - Many non-starter decompositions in a row causing overflow. - {"", rep(0x340, 31), rep(0x300, 30) + cgj + "\u0300"}, - {"", rep(0xFF9E, 31), rep(0x3099, 30) + cgj + "\u3099"}, - // weird UTF-8 - {"\u00E0\xE1", "\x86", "\u00E0\xE1\x86"}, - {"a\u0300\u11B7", "\u0300", "\u00E0\u11B7\u0300"}, - {"a\u0300\u11B7\u0300", "\u0300", "\u00E0\u11B7\u0300\u0300"}, - {"\u0300", "\xF8\x80\x80\x80\x80\u0300", "\u0300\xF8\x80\x80\x80\x80\u0300"}, - {"\u0300", "\xFC\x80\x80\x80\x80\x80\u0300", "\u0300\xFC\x80\x80\x80\x80\x80\u0300"}, - {"\xF8\x80\x80\x80\x80\u0300", "\u0300", "\xF8\x80\x80\x80\x80\u0300\u0300"}, - {"\xFC\x80\x80\x80\x80\x80\u0300", "\u0300", "\xFC\x80\x80\x80\x80\x80\u0300\u0300"}, - {"\xF8\x80\x80\x80", "\x80\u0300\u0300", "\xF8\x80\x80\x80\x80\u0300\u0300"}, - - {"", strings.Repeat("a\u0316\u0300", 6), strings.Repeat("\u00E0\u0316", 6)}, - // large input. - {"", strings.Repeat("a\u0300\u0316", 4000), strings.Repeat("\u00E0\u0316", 4000)}, - {"", strings.Repeat("\x80\x80", 4000), strings.Repeat("\x80\x80", 4000)}, - {"", "\u0041\u0307\u0304", "\u01E0"}, -} - -var appendTestsNFKD = []AppendTest{ - {"", "a" + grave(64), "a" + grave(30) + cgj + grave(30) + cgj + grave(4)}, - - { // segment overflow on unchanged character - "", - "a" + grave(64) + "\u0316", - "a" + grave(30) + cgj + grave(30) + cgj + "\u0316" + grave(4), - }, - { // segment overflow on unchanged character + start value - "", - "a" + grave(98) + "\u0316", - "a" + grave(30) + cgj + grave(30) + cgj + grave(30) + cgj + "\u0316" + grave(8), - }, - { // segment overflow on decomposition. (U+0340 decomposes to U+0300.) - "", - "a" + grave(59) + "\u0340", - "a" + grave(30) + cgj + grave(30), - }, - { // segment overflow on non-starter decomposition - "", - "a" + grave(33) + "\u0340" + grave(30) + "\u0320", - "a" + grave(30) + cgj + grave(30) + cgj + "\u0320" + grave(4), - }, - { // start value after ASCII overflow - "", - rep('a', segSize) + grave(32) + "\u0320", - rep('a', segSize) + grave(30) + cgj + "\u0320" + grave(2), - }, - { // Jamo overflow - "", - "\u1100\u1161" + grave(30) + "\u0320" + grave(2), - "\u1100\u1161" + grave(29) + cgj + "\u0320" + grave(3), - }, - { // Hangul - "", - "\uac00", - "\u1100\u1161", - }, - { // Hangul overflow - "", - "\uac00" + grave(32) + "\u0320", - "\u1100\u1161" + grave(29) + cgj + "\u0320" + grave(3), - }, - { // Hangul overflow in Hangul mode. - "", - "\uac00\uac00" + grave(32) + "\u0320", - "\u1100\u1161\u1100\u1161" + grave(29) + cgj + "\u0320" + grave(3), - }, - { // Hangul overflow in Hangul mode. - "", - strings.Repeat("\uac00", 3) + grave(32) + "\u0320", - strings.Repeat("\u1100\u1161", 3) + grave(29) + cgj + "\u0320" + grave(3), - }, - { // start value after cc=0 - "", - "您您" + grave(34) + "\u0320", - "您您" + grave(30) + cgj + "\u0320" + grave(4), - }, - { // start value after normalization - "", - "\u0300\u0320a" + grave(34) + "\u0320", - "\u0320\u0300a" + grave(30) + cgj + "\u0320" + grave(4), - }, -} - -func TestAppend(t *testing.T) { - runNormTests(t, "Append", func(f Form, out []byte, s string) []byte { - return f.Append(out, []byte(s)...) - }) -} - -func TestAppendString(t *testing.T) { - runNormTests(t, "AppendString", func(f Form, out []byte, s string) []byte { - return f.AppendString(out, s) - }) -} - -func TestBytes(t *testing.T) { - runNormTests(t, "Bytes", func(f Form, out []byte, s string) []byte { - buf := []byte{} - buf = append(buf, out...) - buf = append(buf, s...) - return f.Bytes(buf) - }) -} - -func TestString(t *testing.T) { - runNormTests(t, "String", func(f Form, out []byte, s string) []byte { - outs := string(out) + s - return []byte(f.String(outs)) - }) -} - -func appendBench(f Form, in []byte) func() { - buf := make([]byte, 0, 4*len(in)) - return func() { - f.Append(buf, in...) - } -} - -func bytesBench(f Form, in []byte) func() { - return func() { - f.Bytes(in) - } -} - -func iterBench(f Form, in []byte) func() { - iter := Iter{} - return func() { - iter.Init(f, in) - for !iter.Done() { - iter.Next() - } - } -} - -func transformBench(f Form, in []byte) func() { - buf := make([]byte, 4*len(in)) - return func() { - if _, n, err := f.Transform(buf, in, true); err != nil || len(in) != n { - log.Panic(n, len(in), err) - } - } -} - -func readerBench(f Form, in []byte) func() { - buf := make([]byte, 4*len(in)) - return func() { - r := f.Reader(bytes.NewReader(in)) - var err error - for err == nil { - _, err = r.Read(buf) - } - if err != io.EOF { - panic("") - } - } -} - -func writerBench(f Form, in []byte) func() { - buf := make([]byte, 0, 4*len(in)) - return func() { - r := f.Writer(bytes.NewBuffer(buf)) - if _, err := r.Write(in); err != nil { - panic("") - } - } -} - -func appendBenchmarks(bm []func(), f Form, in []byte) []func() { - bm = append(bm, appendBench(f, in)) - bm = append(bm, iterBench(f, in)) - bm = append(bm, transformBench(f, in)) - bm = append(bm, readerBench(f, in)) - bm = append(bm, writerBench(f, in)) - return bm -} - -func doFormBenchmark(b *testing.B, inf, f Form, s string) { - b.StopTimer() - in := inf.Bytes([]byte(s)) - bm := appendBenchmarks(nil, f, in) - b.SetBytes(int64(len(in) * len(bm))) - b.StartTimer() - for i := 0; i < b.N; i++ { - for _, fn := range bm { - fn() - } - } -} - -func doSingle(b *testing.B, f func(Form, []byte) func(), s []byte) { - b.StopTimer() - fn := f(NFC, s) - b.SetBytes(int64(len(s))) - b.StartTimer() - for i := 0; i < b.N; i++ { - fn() - } -} - -var ( - smallNoChange = []byte("nörmalization") - smallChange = []byte("No\u0308rmalization") - ascii = strings.Repeat("There is nothing to change here! ", 500) -) - -func lowerBench(f Form, in []byte) func() { - // Use package strings instead of bytes as it doesn't allocate memory - // if there aren't any changes. - s := string(in) - return func() { - strings.ToLower(s) - } -} - -func BenchmarkLowerCaseNoChange(b *testing.B) { - doSingle(b, lowerBench, smallNoChange) -} -func BenchmarkLowerCaseChange(b *testing.B) { - doSingle(b, lowerBench, smallChange) -} - -func quickSpanBench(f Form, in []byte) func() { - return func() { - f.QuickSpan(in) - } -} - -func BenchmarkQuickSpanChangeNFC(b *testing.B) { - doSingle(b, quickSpanBench, smallNoChange) -} - -func BenchmarkBytesNoChangeNFC(b *testing.B) { - doSingle(b, bytesBench, smallNoChange) -} -func BenchmarkBytesChangeNFC(b *testing.B) { - doSingle(b, bytesBench, smallChange) -} - -func BenchmarkAppendNoChangeNFC(b *testing.B) { - doSingle(b, appendBench, smallNoChange) -} -func BenchmarkAppendChangeNFC(b *testing.B) { - doSingle(b, appendBench, smallChange) -} -func BenchmarkAppendLargeNFC(b *testing.B) { - doSingle(b, appendBench, txt_all_bytes) -} - -func BenchmarkIterNoChangeNFC(b *testing.B) { - doSingle(b, iterBench, smallNoChange) -} -func BenchmarkIterChangeNFC(b *testing.B) { - doSingle(b, iterBench, smallChange) -} -func BenchmarkIterLargeNFC(b *testing.B) { - doSingle(b, iterBench, txt_all_bytes) -} - -func BenchmarkTransformNoChangeNFC(b *testing.B) { - doSingle(b, transformBench, smallNoChange) -} -func BenchmarkTransformChangeNFC(b *testing.B) { - doSingle(b, transformBench, smallChange) -} -func BenchmarkTransformLargeNFC(b *testing.B) { - doSingle(b, transformBench, txt_all_bytes) -} - -func BenchmarkNormalizeAsciiNFC(b *testing.B) { - doFormBenchmark(b, NFC, NFC, ascii) -} -func BenchmarkNormalizeAsciiNFD(b *testing.B) { - doFormBenchmark(b, NFC, NFD, ascii) -} -func BenchmarkNormalizeAsciiNFKC(b *testing.B) { - doFormBenchmark(b, NFC, NFKC, ascii) -} -func BenchmarkNormalizeAsciiNFKD(b *testing.B) { - doFormBenchmark(b, NFC, NFKD, ascii) -} - -func BenchmarkNormalizeNFC2NFC(b *testing.B) { - doFormBenchmark(b, NFC, NFC, txt_all) -} -func BenchmarkNormalizeNFC2NFD(b *testing.B) { - doFormBenchmark(b, NFC, NFD, txt_all) -} -func BenchmarkNormalizeNFD2NFC(b *testing.B) { - doFormBenchmark(b, NFD, NFC, txt_all) -} -func BenchmarkNormalizeNFD2NFD(b *testing.B) { - doFormBenchmark(b, NFD, NFD, txt_all) -} - -// Hangul is often special-cased, so we test it separately. -func BenchmarkNormalizeHangulNFC2NFC(b *testing.B) { - doFormBenchmark(b, NFC, NFC, txt_kr) -} -func BenchmarkNormalizeHangulNFC2NFD(b *testing.B) { - doFormBenchmark(b, NFC, NFD, txt_kr) -} -func BenchmarkNormalizeHangulNFD2NFC(b *testing.B) { - doFormBenchmark(b, NFD, NFC, txt_kr) -} -func BenchmarkNormalizeHangulNFD2NFD(b *testing.B) { - doFormBenchmark(b, NFD, NFD, txt_kr) -} - -var forms = []Form{NFC, NFD, NFKC, NFKD} - -func doTextBenchmark(b *testing.B, s string) { - b.StopTimer() - in := []byte(s) - bm := []func(){} - for _, f := range forms { - bm = appendBenchmarks(bm, f, in) - } - b.SetBytes(int64(len(s) * len(bm))) - b.StartTimer() - for i := 0; i < b.N; i++ { - for _, f := range bm { - f() - } - } -} - -func BenchmarkCanonicalOrdering(b *testing.B) { - doTextBenchmark(b, txt_canon) -} -func BenchmarkExtendedLatin(b *testing.B) { - doTextBenchmark(b, txt_vn) -} -func BenchmarkMiscTwoByteUtf8(b *testing.B) { - doTextBenchmark(b, twoByteUtf8) -} -func BenchmarkMiscThreeByteUtf8(b *testing.B) { - doTextBenchmark(b, threeByteUtf8) -} -func BenchmarkHangul(b *testing.B) { - doTextBenchmark(b, txt_kr) -} -func BenchmarkJapanese(b *testing.B) { - doTextBenchmark(b, txt_jp) -} -func BenchmarkChinese(b *testing.B) { - doTextBenchmark(b, txt_cn) -} -func BenchmarkOverflow(b *testing.B) { - doTextBenchmark(b, overflow) -} - -var overflow = string(bytes.Repeat([]byte("\u035D"), 4096)) + "\u035B" - -// Tests sampled from the Canonical ordering tests (Part 2) of -// http://unicode.org/Public/UNIDATA/NormalizationTest.txt -const txt_canon = `\u0061\u0315\u0300\u05AE\u0300\u0062 \u0061\u0300\u0315\u0300\u05AE\u0062 -\u0061\u0302\u0315\u0300\u05AE\u0062 \u0061\u0307\u0315\u0300\u05AE\u0062 -\u0061\u0315\u0300\u05AE\u030A\u0062 \u0061\u059A\u0316\u302A\u031C\u0062 -\u0061\u032E\u059A\u0316\u302A\u0062 \u0061\u0338\u093C\u0334\u0062 -\u0061\u059A\u0316\u302A\u0339 \u0061\u0341\u0315\u0300\u05AE\u0062 -\u0061\u0348\u059A\u0316\u302A\u0062 \u0061\u0361\u0345\u035D\u035C\u0062 -\u0061\u0366\u0315\u0300\u05AE\u0062 \u0061\u0315\u0300\u05AE\u0486\u0062 -\u0061\u05A4\u059A\u0316\u302A\u0062 \u0061\u0315\u0300\u05AE\u0613\u0062 -\u0061\u0315\u0300\u05AE\u0615\u0062 \u0061\u0617\u0315\u0300\u05AE\u0062 -\u0061\u0619\u0618\u064D\u064E\u0062 \u0061\u0315\u0300\u05AE\u0654\u0062 -\u0061\u0315\u0300\u05AE\u06DC\u0062 \u0061\u0733\u0315\u0300\u05AE\u0062 -\u0061\u0744\u059A\u0316\u302A\u0062 \u0061\u0315\u0300\u05AE\u0745\u0062 -\u0061\u09CD\u05B0\u094D\u3099\u0062 \u0061\u0E38\u0E48\u0E38\u0C56\u0062 -\u0061\u0EB8\u0E48\u0E38\u0E49\u0062 \u0061\u0F72\u0F71\u0EC8\u0F71\u0062 -\u0061\u1039\u05B0\u094D\u3099\u0062 \u0061\u05B0\u094D\u3099\u1A60\u0062 -\u0061\u3099\u093C\u0334\u1BE6\u0062 \u0061\u3099\u093C\u0334\u1C37\u0062 -\u0061\u1CD9\u059A\u0316\u302A\u0062 \u0061\u2DED\u0315\u0300\u05AE\u0062 -\u0061\u2DEF\u0315\u0300\u05AE\u0062 \u0061\u302D\u302E\u059A\u0316\u0062` - -// Taken from http://creativecommons.org/licenses/by-sa/3.0/vn/ -const txt_vn = `Vá»›i các Ä‘iá»u kiện sau: Ghi nhận công của tác giả. -Nếu bạn sá»­ dụng, chuyển đổi, hoặc xây dá»±ng dá»± án từ -ná»™i dung được chia sẻ này, bạn phải áp dụng giấy phép này hoặc -má»™t giấy phép khác có các Ä‘iá»u khoản tÆ°Æ¡ng tá»± nhÆ° giấy phép này -cho dá»± án của bạn. Hiểu rằng: Miá»…n — Bất kỳ các Ä‘iá»u kiện nào -trên đây cÅ©ng có thể được miá»…n bá» nếu bạn được sá»± cho phép của -ngÆ°á»i sở hữu bản quyá»n. Phạm vi công chúng — Khi tác phẩm hoặc -bất kỳ chÆ°Æ¡ng nào của tác phẩm đã trong vùng dành cho công -chúng theo quy định của pháp luật thì tình trạng của nó không -bị ảnh hưởng bởi giấy phép trong bất kỳ trÆ°á»ng hợp nào.` - -// Taken from http://creativecommons.org/licenses/by-sa/1.0/deed.ru -const txt_ru = `При обÑзательном Ñоблюдении Ñледующих уÑловий: -Attribution — Ð’Ñ‹ должны атрибутировать произведение (указывать -автора и иÑточник) в порÑдке, предуÑмотренном автором или -лицензиаром (но только так, чтобы никоим образом не подразумевалоÑÑŒ, -что они поддерживают Ð²Ð°Ñ Ð¸Ð»Ð¸ иÑпользование вами данного произведениÑ). -Υπό τις ακόλουθες Ï€Ïοϋποθέσεις:` - -// Taken from http://creativecommons.org/licenses/by-sa/3.0/gr/ -const txt_gr = `ΑναφοÏά ΔημιουÏÎ³Î¿Ï â€” Θα Ï€Ïέπει να κάνετε την αναφοÏά στο έÏγο με τον -Ï„Ïόπο που έχει οÏιστεί από το δημιουÏγό ή το χοÏηγοÏντο την άδεια -(χωÏίς όμως να εννοείται με οποιονδήποτε Ï„Ïόπο ότι εγκÏίνουν εσάς ή -τη χÏήση του έÏγου από εσάς). ΠαÏόμοια Διανομή — Εάν αλλοιώσετε, -Ï„Ïοποποιήσετε ή δημιουÏγήσετε πεÏαιτέÏω βασισμένοι στο έÏγο θα -μποÏείτε να διανέμετε το έÏγο που θα Ï€ÏοκÏψει μόνο με την ίδια ή -παÏόμοια άδεια.` - -// Taken from http://creativecommons.org/licenses/by-sa/3.0/deed.ar -const txt_ar = `بموجب الشروط التالية نسب المصن٠— يجب عليك أن -تنسب العمل بالطريقة التي تحددها المؤل٠أو المرخص (ولكن ليس بأي حال من -الأحوال أن توحي وتقترح بتحول أو استخدامك للعمل). -المشاركة على قدم المساواة — إذا كنت يعدل ØŒ والتغيير ØŒ أو الاستÙادة -من هذا العمل ØŒ قد ينتج عن توزيع العمل إلا ÙÙŠ ظل تشابه او تطابق ÙÙ‰ واحد -لهذا الترخيص.` - -// Taken from http://creativecommons.org/licenses/by-sa/1.0/il/ -const txt_il = `בכפוף לתנ××™× ×”×‘××™×: ייחוס — עליך לייחס ×ת היצירה (לתת קרדיט) ב×ופן -המצויין על-ידי היוצר ×ו מעניק הרישיון (×ך ×œ× ×‘×©×•× ×ופן המרמז על כך -×©×”× ×ª×•×ž×›×™× ×‘×š ×ו בשימוש שלך ביצירה). שיתוף ×–×”×” — ×× ×ª×—×œ×™×˜/×™ לשנות, -לעבד ×ו ליצור יצירה נגזרת בהסתמך על יצירה זו, תוכל/×™ להפיץ ×ת יצירתך -החדשה רק תחת ×ותו הרישיון ×ו רישיון דומה לרישיון ×–×”.` - -const twoByteUtf8 = txt_ru + txt_gr + txt_ar + txt_il - -// Taken from http://creativecommons.org/licenses/by-sa/2.0/kr/ -const txt_kr = `다ìŒê³¼ ê°™ì€ ì¡°ê±´ì„ ë”°ë¼ì•¼ 합니다: 저작ìží‘œì‹œ -(Attribution) — 저작ìžë‚˜ ì´ìš©í—ˆë½ìžê°€ ì •í•œ 방법으로 ì €ìž‘ë¬¼ì˜ -ì›ì €ìž‘ìžë¥¼ 표시하여야 합니다(그러나 ì›ì €ìž‘ìžê°€ ì´ìš©ìžë‚˜ ì´ìš©ìžì˜ -ì´ìš©ì„ ë³´ì¦í•˜ê±°ë‚˜ 추천한다는 ì˜ë¯¸ë¡œ 표시해서는 안ë©ë‹ˆë‹¤). -ë™ì¼ì¡°ê±´ë³€ê²½í—ˆë½ — ì´ ì €ìž‘ë¬¼ì„ ì´ìš©í•˜ì—¬ 만든 ì´ì°¨ì  저작물ì—는 본 -ë¼ì´ì„ ìŠ¤ì™€ ë™ì¼í•œ ë¼ì´ì„ ìŠ¤ë¥¼ ì ìš©í•´ì•¼ 합니다.` - -// Taken from http://creativecommons.org/licenses/by-sa/3.0/th/ -const txt_th = `ภายใต้เงื่อนไข ดังต่อไปนี้ : à¹à¸ªà¸”งที่มา — คุณต้องà¹à¸ªà¸”งที่ -มาของงานดังà¸à¸¥à¹ˆà¸²à¸§ ตามรูปà¹à¸šà¸šà¸—ี่ผู้สร้างสรรค์หรือผู้อนุà¸à¸²à¸•à¸à¸³à¸«à¸™à¸” (à¹à¸•à¹ˆ -ไม่ใช่ในลัà¸à¸©à¸“ะที่ว่า พวà¸à¹€à¸‚าสนับสนุนคุณหรือสนับสนุนà¸à¸²à¸£à¸—ี่ -คุณนำงานไปใช้) อนุà¸à¸²à¸•à¹à¸šà¸šà¹€à¸”ียวà¸à¸±à¸™ — หาà¸à¸„ุณดัดà¹à¸›à¸¥à¸‡ เปลี่ยนรูป หรื -อต่อเติมงานนี้ คุณต้องใช้สัà¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•à¹à¸šà¸šà¹€à¸”ียวà¸à¸±à¸™à¸«à¸£à¸·à¸­à¹à¸šà¸šà¸—ี่เหมื -อนà¸à¸±à¸šà¸ªà¸±à¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•à¸—ี่ใช้à¸à¸±à¸šà¸‡à¸²à¸™à¸™à¸µà¹‰à¹€à¸—่านั้น` - -const threeByteUtf8 = txt_th - -// Taken from http://creativecommons.org/licenses/by-sa/2.0/jp/ -const txt_jp = `ã‚ãªãŸã®å¾“ã†ã¹ãæ¡ä»¶ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚ -表示 — ã‚ãªãŸã¯åŽŸè‘—作者ã®ã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã‚’表示ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 -継承 — ã‚‚ã—ã‚ãªãŸãŒã“ã®ä½œå“を改変ã€å¤‰å½¢ã¾ãŸã¯åŠ å·¥ã—ãŸå ´åˆã€ -ã‚ãªãŸã¯ãã®çµæžœç”Ÿã˜ãŸä½œå“ã‚’ã“ã®ä½œå“ã¨åŒä¸€ã®è¨±è«¾æ¡ä»¶ã®ä¸‹ã§ã®ã¿ -頒布ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚` - -// http://creativecommons.org/licenses/by-sa/2.5/cn/ -const txt_cn = `您å¯ä»¥è‡ªç”±ï¼š å¤åˆ¶ã€å‘è¡Œã€å±•è§ˆã€è¡¨æ¼”ã€æ”¾æ˜ ã€ -广播或通过信æ¯ç½‘ç»œä¼ æ’­æœ¬ä½œå“ åˆ›ä½œæ¼”ç»Žä½œå“ -对本作å“进行商业性使用 惟须éµå®ˆä¸‹åˆ—æ¡ä»¶ï¼š -ç½²å — 您必须按照作者或者许å¯äººæŒ‡å®šçš„æ–¹å¼å¯¹ä½œå“进行署å。 -相åŒæ–¹å¼å…±äº« — 如果您改å˜ã€è½¬æ¢æœ¬ä½œå“或者以本作å“为基础进行创作, -您åªèƒ½é‡‡ç”¨ä¸Žæœ¬å议相åŒçš„许å¯åè®®å‘布基于本作å“的演绎作å“。` - -const txt_cjk = txt_cn + txt_jp + txt_kr -const txt_all = txt_vn + twoByteUtf8 + threeByteUtf8 + txt_cjk - -var txt_all_bytes = []byte(txt_all) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/readwriter.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/readwriter.go deleted file mode 100644 index 4fa0e04b..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/readwriter.go +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import "io" - -type normWriter struct { - rb reorderBuffer - w io.Writer - buf []byte -} - -// Write implements the standard write interface. If the last characters are -// not at a normalization boundary, the bytes will be buffered for the next -// write. The remaining bytes will be written on close. -func (w *normWriter) Write(data []byte) (n int, err error) { - // Process data in pieces to keep w.buf size bounded. - const chunk = 4000 - - for len(data) > 0 { - // Normalize into w.buf. - m := len(data) - if m > chunk { - m = chunk - } - w.rb.src = inputBytes(data[:m]) - w.rb.nsrc = m - w.buf = doAppend(&w.rb, w.buf, 0) - data = data[m:] - n += m - - // Write out complete prefix, save remainder. - // Note that lastBoundary looks back at most 31 runes. - i := lastBoundary(&w.rb.f, w.buf) - if i == -1 { - i = 0 - } - if i > 0 { - if _, err = w.w.Write(w.buf[:i]); err != nil { - break - } - bn := copy(w.buf, w.buf[i:]) - w.buf = w.buf[:bn] - } - } - return n, err -} - -// Close forces data that remains in the buffer to be written. -func (w *normWriter) Close() error { - if len(w.buf) > 0 { - _, err := w.w.Write(w.buf) - if err != nil { - return err - } - } - return nil -} - -// Writer returns a new writer that implements Write(b) -// by writing f(b) to w. The returned writer may use an -// an internal buffer to maintain state across Write calls. -// Calling its Close method writes any buffered data to w. -func (f Form) Writer(w io.Writer) io.WriteCloser { - wr := &normWriter{rb: reorderBuffer{}, w: w} - wr.rb.init(f, nil) - return wr -} - -type normReader struct { - rb reorderBuffer - r io.Reader - inbuf []byte - outbuf []byte - bufStart int - lastBoundary int - err error -} - -// Read implements the standard read interface. -func (r *normReader) Read(p []byte) (int, error) { - for { - if r.lastBoundary-r.bufStart > 0 { - n := copy(p, r.outbuf[r.bufStart:r.lastBoundary]) - r.bufStart += n - if r.lastBoundary-r.bufStart > 0 { - return n, nil - } - return n, r.err - } - if r.err != nil { - return 0, r.err - } - outn := copy(r.outbuf, r.outbuf[r.lastBoundary:]) - r.outbuf = r.outbuf[0:outn] - r.bufStart = 0 - - n, err := r.r.Read(r.inbuf) - r.rb.src = inputBytes(r.inbuf[0:n]) - r.rb.nsrc, r.err = n, err - if n > 0 { - r.outbuf = doAppend(&r.rb, r.outbuf, 0) - } - if err == io.EOF { - r.lastBoundary = len(r.outbuf) - } else { - r.lastBoundary = lastBoundary(&r.rb.f, r.outbuf) - if r.lastBoundary == -1 { - r.lastBoundary = 0 - } - } - } - panic("should not reach here") -} - -// Reader returns a new reader that implements Read -// by reading data from r and returning f(data). -func (f Form) Reader(r io.Reader) io.Reader { - const chunk = 4000 - buf := make([]byte, chunk) - rr := &normReader{rb: reorderBuffer{}, r: r, inbuf: buf} - rr.rb.init(f, buf) - return rr -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/readwriter_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/readwriter_test.go deleted file mode 100644 index b7756ba2..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/readwriter_test.go +++ /dev/null @@ -1,56 +0,0 @@ -// 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 ( - "bytes" - "fmt" - "testing" -) - -var bufSizes = []int{1, 2, 3, 4, 5, 6, 7, 8, 100, 101, 102, 103, 4000, 4001, 4002, 4003} - -func readFunc(size int) appendFunc { - return func(f Form, out []byte, s string) []byte { - out = append(out, s...) - r := f.Reader(bytes.NewBuffer(out)) - buf := make([]byte, size) - result := []byte{} - for n, err := 0, error(nil); err == nil; { - n, err = r.Read(buf) - result = append(result, buf[:n]...) - } - return result - } -} - -func TestReader(t *testing.T) { - for _, s := range bufSizes { - name := fmt.Sprintf("TestReader%d", s) - runNormTests(t, name, readFunc(s)) - } -} - -func writeFunc(size int) appendFunc { - return func(f Form, out []byte, s string) []byte { - in := append(out, s...) - result := new(bytes.Buffer) - w := f.Writer(result) - buf := make([]byte, size) - for n := 0; len(in) > 0; in = in[n:] { - n = copy(buf, in) - _, _ = w.Write(buf[:n]) - } - w.Close() - return result.Bytes() - } -} - -func TestWriter(t *testing.T) { - for _, s := range bufSizes { - name := fmt.Sprintf("TestWriter%d", s) - runNormTests(t, name, writeFunc(s)) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/tables.go deleted file mode 100644 index 22508818..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/tables.go +++ /dev/null @@ -1,7587 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package norm - -const ( - // Version is the Unicode edition from which the tables are derived. - Version = "8.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 = 0x1869 - firstCCC = 0x2C9A - endMulti = 0x2F5C - firstLeadingCCC = 0x4A40 - firstCCCZeroExcept = 0x4A56 - firstStarterWithNLead = 0x4A7D - lastDecomp = 0x4A7F - maxDecomp = 0x8000 -) - -// decomps: 19071 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, 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, 0xE9, 0x8D, 0x8A, 0x43, - // Bytes 1480 - 14bf - 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, 0xE9, 0x9A, 0xA3, 0x43, - // Bytes 14c0 - 14ff - 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, 0xE9, 0x9D, 0x9E, 0x43, - // Bytes 1500 - 153f - 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, 0xE9, 0xA2, 0xA8, 0x43, - // Bytes 1540 - 157f - 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, 0xE9, 0xAA, 0xA8, 0x43, - // Bytes 1580 - 15bf - 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, 0xE9, 0xB7, 0xBA, 0x43, - // Bytes 15c0 - 15ff - 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, 0xE9, 0xBC, 0x8E, 0x43, - // Bytes 1600 - 163f - 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, 0xEA, 0xAC, 0xB7, 0x43, - // Bytes 1640 - 167f - 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, 0xA1, 0x9B, 0xAA, 0x44, - // Bytes 1680 - 16bf - 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, 0xF0, 0xA2, 0xAF, 0xB1, - // Bytes 16c0 - 16ff - 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, 0x44, 0xF0, 0xA3, 0xB2, - // Bytes 1700 - 173f - 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, 0x92, 0x44, 0xF0, 0xA4, - // Bytes 1740 - 177f - 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, 0xA5, 0xBC, 0x44, 0xF0, - // Bytes 1780 - 17bf - 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, 0xA6, 0x96, 0xA8, 0x44, - // Bytes 17c0 - 17ff - 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, 0xF0, 0xA7, 0xA5, 0xA6, - // Bytes 1800 - 183f - 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, 0x44, 0xF0, 0xA9, 0x92, - // Bytes 1840 - 187f - 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, 0x31, 0x2E, 0x42, 0x31, - // Bytes 1880 - 18bf - 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, 0x38, 0x42, 0x32, 0x39, - // Bytes 18c0 - 18ff - 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, 0x42, 0x34, 0x36, 0x42, - // Bytes 1900 - 193f - 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, 0x44, 0x4A, 0x42, 0x44, - // Bytes 1940 - 197f - 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, 0x44, 0x42, 0x4D, 0x56, - // Bytes 1980 - 19bf - 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, 0x42, 0x63, 0x6D, 0x42, - // Bytes 19c0 - 19ff - 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, 0x6B, 0x6C, 0x42, 0x6B, - // Bytes 1a00 - 1a3f - 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, 0x6A, 0x42, 0x6E, 0x6D, - // Bytes 1a40 - 1a7f - 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, 0x43, 0x28, 0x37, 0x29, - // Bytes 1a80 - 1abf - 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, 0x43, 0x28, 0x4E, 0x29, - // Bytes 1ac0 - 1aff - 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, 0x43, 0x28, 0x64, 0x29, - // Bytes 1b00 - 1b3f - 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, 0x43, 0x28, 0x74, 0x29, - // Bytes 1b40 - 1b7f - 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, 0x43, 0x31, 0x38, 0x2E, - // Bytes 1b80 - 1bbf - 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, 0x43, 0x50, 0x50, 0x56, - // Bytes 1bc0 - 1bff - 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, 0x43, 0x64, 0x6D, 0x33, - // Bytes 1c00 - 1c3f - 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, 0x43, 0x6D, 0x6D, 0x33, - // Bytes 1c40 - 1c7f - 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, 0x44, 0x28, 0x31, 0x30, - // Bytes 1c80 - 1cbf - 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, 0x84, 0x44, 0x31, 0xE6, - // Bytes 1cc0 - 1cff - 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, 0x97, 0xA5, 0x44, 0x35, - // Bytes 1d00 - 1d3f - 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, 0xE6, 0x9C, 0x88, 0x44, - // Bytes 1d40 - 1d7f - 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, 0xD7, 0x90, 0xD7, 0x9C, - // Bytes 1d80 - 1dbf - 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, 0x44, 0xD8, 0xAA, 0xD8, - // Bytes 1dc0 - 1dff - 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, 0x85, 0x44, 0xD8, 0xAB, - // Bytes 1e00 - 1e3f - 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, 0xD8, 0xAC, 0x44, 0xD8, - // Bytes 1e40 - 1e7f - 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, 0xB4, 0xD8, 0xAC, 0x44, - // Bytes 1e80 - 1ebf - 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, 0xD8, 0xB5, 0xD9, 0x8A, - // Bytes 1ec0 - 1eff - 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, 0x44, 0xD8, 0xB9, 0xD8, - // Bytes 1f00 - 1f3f - 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, 0x89, 0x44, 0xD9, 0x81, - // Bytes 1f40 - 1f7f - 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, 0xD9, 0x8A, 0x44, 0xD9, - // Bytes 1f80 - 1fbf - 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, 0x85, 0xD9, 0x85, 0x44, - // Bytes 1fc0 - 1fff - 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, 0xD9, 0x87, 0xD8, 0xAC, - // Bytes 2000 - 203f - 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, 0x44, 0xD9, 0x8A, 0xD9, - // Bytes 2040 - 207f - 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, 0xE1, 0x84, 0x8B, 0x29, - // Bytes 2080 - 20bf - 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, 0x45, 0x28, 0xE4, 0xBA, - // Bytes 20c0 - 20ff - 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, 0x8D, 0x29, 0x45, 0x28, - // Bytes 2100 - 213f - 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, 0xE7, 0x81, 0xAB, 0x29, - // Bytes 2140 - 217f - 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, 0x45, 0x30, 0xE2, 0x81, - // Bytes 2180 - 21bf - 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, 0x97, 0xA5, 0x45, 0x31, - // Bytes 21c0 - 21ff - 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, 0x38, 0xE7, 0x82, 0xB9, - // Bytes 2200 - 223f - 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, 0x45, 0x32, 0x30, 0xE6, - // Bytes 2240 - 227f - 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, 0x97, 0xA5, 0x45, 0x32, - // Bytes 2280 - 22bf - 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, 0xE2, 0x81, 0x84, 0x38, - // Bytes 22c0 - 22ff - 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, 0x95, 0x73, 0x32, 0x46, - // Bytes 2300 - 233f - 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, 0xD9, 0x89, 0x46, 0xD8, - // Bytes 2340 - 237f - 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, 0xAD, 0x46, 0xD8, 0xAC, - // Bytes 2380 - 23bf - 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, 0x46, 0xD8, 0xB3, 0xD8, - // Bytes 23c0 - 23ff - 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, 0xD8, 0xB5, 0xD8, 0xAD, - // Bytes 2400 - 243f - 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, 0xB7, 0xD9, 0x85, 0xD9, - // Bytes 2440 - 247f - 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, 0xD8, 0xAE, 0xD9, 0x85, - // Bytes 2480 - 24bf - 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, 0xAC, 0xD9, 0x85, 0x46, - // Bytes 24c0 - 24ff - 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, 0xD8, 0xAE, 0x46, 0xD9, - // Bytes 2500 - 253f - 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, 0x8A, 0x46, 0xD9, 0x86, - // Bytes 2540 - 257f - 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, 0x46, 0xD9, 0x87, 0xD9, - // Bytes 2580 - 25bf - 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, 0xD9, 0x8A, 0xD9, 0x94, - // Bytes 25c0 - 25ff - 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, 0x8A, 0xD9, 0x94, 0xDB, - // Bytes 2600 - 263f - 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, 0x80, 0xE0, 0xBE, 0xB5, - // Bytes 2640 - 267f - 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, 0xE0, 0xBE, 0xB7, 0x46, - // Bytes 2680 - 26bf - 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, 0x83, 0xAD, 0x46, 0xE3, - // Bytes 26c0 - 26ff - 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, 0xA3, 0x46, 0xE5, 0xB9, - // Bytes 2700 - 273f - 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, 0x29, 0x48, 0x28, 0xE1, - // Bytes 2740 - 277f - 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, 0x48, 0x28, 0xE1, 0x84, - // Bytes 2780 - 27bf - 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, 0xD8, 0xA7, 0xD9, 0x84, - // Bytes 27c0 - 27ff - 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, 0x80, 0xB2, 0xE2, 0x80, - // Bytes 2800 - 283f - 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, 0x9D, 0xE3, 0x80, 0x95, - // Bytes 2840 - 287f - 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, 0x49, 0xE3, 0x82, 0xA2, - // Bytes 2880 - 28bf - 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, 0xE3, 0x83, 0xBC, 0xE3, - // Bytes 28c0 - 28ff - 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, 0x83, 0x88, 0x49, 0xE3, - // Bytes 2900 - 293f - 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, 0x83, 0x9B, 0xE3, 0x83, - // Bytes 2940 - 297f - 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, 0xA2, 0xE3, 0x83, 0xB3, - // Bytes 2980 - 29bf - 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, 0x83, 0xBC, 0x4C, 0xE3, - // Bytes 29c0 - 29ff - 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, 0xE3, 0x83, 0xBC, 0x4C, - // Bytes 2a00 - 2a3f - 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, 0xBC, 0xE3, 0x82, 0xB9, - // Bytes 2a40 - 2a7f - 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, 0x83, 0x8B, 0xE3, 0x83, - // Bytes 2a80 - 2abf - 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, 0xE3, 0x83, 0x88, 0xE3, - // Bytes 2ac0 - 2aff - 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, 0x84, 0x20, 0xD8, 0xAC, - // Bytes 2b00 - 2b3f - 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, 0xE3, 0x83, 0xB3, 0xE3, - // Bytes 2b40 - 2b7f - 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, 0xE3, 0x83, 0xB3, 0xE3, - // Bytes 2b80 - 2bbf - 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, 0x82, 0xAD, 0xE3, 0x82, - // Bytes 2bc0 - 2bff - 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, 0xA9, 0xE3, 0x83, 0xA0, - // Bytes 2c00 - 2c3f - 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, 0xE3, 0x83, 0xAB, 0x52, - // Bytes 2c40 - 2c7f - 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, 0x84, 0xD9, 0x89, 0x20, - // Bytes 2c80 - 2cbf - 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, 0xAD, 0x87, 0xE0, 0xAD, - // Bytes 2cc0 - 2cff - 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, 0xB5, 0x86, 0xE0, 0xB4, - // Bytes 2d00 - 2d3f - 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, 0xAC, 0x8B, 0xE1, 0xAC, - // Bytes 2d40 - 2d7f - 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, 0x91, 0x84, 0xB1, 0xF0, - // Bytes 2d80 - 2dbf - 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, 0x91, 0x92, 0xBD, 0x01, - // Bytes 2dc0 - 2dff - 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, 0x46, 0xD9, 0x84, 0xD8, - // Bytes 2e00 - 2e3f - 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, 0x46, 0xE1, 0x84, 0x87, - // Bytes 2e40 - 2e7f - 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, 0x46, 0xE1, 0x84, 0x91, - // Bytes 2e80 - 2ebf - 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, 0x9B, 0xE3, 0x82, 0x9A, - // Bytes 2ec0 - 2eff - 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, 0x82, 0xAF, 0xE3, 0x82, - // Bytes 2f00 - 2f3f - 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, 0xE3, 0x82, 0xA1, 0xE3, - // Bytes 2f40 - 2f7f - 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, 0xCC, 0x84, 0xC9, 0x03, - // Bytes 2f80 - 2fbf - 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, 0x43, 0xCC, 0x8C, 0xC9, - // Bytes 2fc0 - 2fff - 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, 0x03, 0x45, 0xCC, 0x89, - // Bytes 3000 - 303f - 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, 0xC9, 0x03, 0x47, 0xCC, - // Bytes 3040 - 307f - 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, 0x83, 0xC9, 0x03, 0x49, - // Bytes 3080 - 30bf - 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, 0xCC, 0x8C, 0xC9, 0x03, - // Bytes 30c0 - 30ff - 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, 0x4E, 0xCC, 0x81, 0xC9, - // Bytes 3100 - 313f - 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, 0x03, 0x4F, 0xCC, 0x8C, - // Bytes 3140 - 317f - 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, 0xC9, 0x03, 0x53, 0xCC, - // Bytes 3180 - 31bf - 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, 0x82, 0xC9, 0x03, 0x55, - // Bytes 31c0 - 31ff - 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, 0xCC, 0x83, 0xC9, 0x03, - // Bytes 3200 - 323f - 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, 0x59, 0xCC, 0x83, 0xC9, - // Bytes 3240 - 327f - 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, 0x03, 0x61, 0xCC, 0x81, - // Bytes 3280 - 32bf - 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, 0xC9, 0x03, 0x63, 0xCC, - // Bytes 32c0 - 32ff - 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, 0x86, 0xC9, 0x03, 0x65, - // Bytes 3300 - 333f - 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, 0xCC, 0x84, 0xC9, 0x03, - // Bytes 3340 - 337f - 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, 0x69, 0xCC, 0x80, 0xC9, - // Bytes 3380 - 33bf - 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, 0x03, 0x6A, 0xCC, 0x82, - // Bytes 33c0 - 33ff - 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, 0xC9, 0x03, 0x6D, 0xCC, - // Bytes 3400 - 343f - 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, 0x81, 0xC9, 0x03, 0x6F, - // Bytes 3440 - 347f - 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, 0xCC, 0x91, 0xC9, 0x03, - // Bytes 3480 - 34bf - 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, 0x74, 0xCC, 0xAD, 0xB5, - // Bytes 34c0 - 34ff - 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, 0x03, 0x75, 0xCC, 0xA4, - // Bytes 3500 - 353f - 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, 0xB5, 0x03, 0x78, 0xCC, - // Bytes 3540 - 357f - 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, 0x81, 0xC9, 0x03, 0x7A, - // Bytes 3580 - 35bf - 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, 0xC3, 0xA6, 0xCC, 0x81, - // Bytes 35c0 - 35ff - 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, 0xD9, 0x04, 0xCE, 0x95, - // Bytes 3600 - 363f - 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, 0xCC, 0x80, 0xC9, 0x04, - // Bytes 3640 - 367f - 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, 0xCE, 0xB1, 0xCC, 0x84, - // Bytes 3680 - 36bf - 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, 0xC9, 0x04, 0xCE, 0xBF, - // Bytes 36c0 - 36ff - 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, 0xCC, 0x81, 0xC9, 0x04, - // Bytes 3700 - 373f - 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, 0xD0, 0x97, 0xCC, 0x88, - // Bytes 3740 - 377f - 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, 0xC9, 0x04, 0xD0, 0xA7, - // Bytes 3780 - 37bf - 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, 0xCC, 0x88, 0xC9, 0x04, - // Bytes 37c0 - 37ff - 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, 0xD1, 0x83, 0xCC, 0x8B, - // Bytes 3800 - 383f - 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, 0xC9, 0x04, 0xD8, 0xA7, - // Bytes 3840 - 387f - 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, 0x41, 0xCC, 0x82, 0xCC, - // Bytes 3880 - 38bf - 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, 0xCC, 0xA3, 0xCC, 0x82, - // Bytes 38c0 - 38ff - 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, 0xA3, 0xCC, 0x82, 0xCA, - // Bytes 3900 - 393f - 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, 0xCC, 0x84, 0xCA, 0x05, - // Bytes 3940 - 397f - 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, 0x89, 0xCA, 0x05, 0x4F, - // Bytes 3980 - 39bf - 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, 0xCA, 0x05, 0x55, 0xCC, - // Bytes 39c0 - 39ff - 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, 0x05, 0x61, 0xCC, 0x82, - // Bytes 3a00 - 3a3f - 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, 0x61, 0xCC, 0x88, 0xCC, - // Bytes 3a40 - 3a7f - 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, 0xCC, 0x84, 0xCC, 0x80, - // Bytes 3a80 - 3abf - 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, 0x82, 0xCC, 0x89, 0xCA, - // Bytes 3ac0 - 3aff - 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, 0xCC, 0x81, 0xCA, 0x05, - // Bytes 3b00 - 3b3f - 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, 0x87, 0xCA, 0x05, 0x75, - // Bytes 3b40 - 3b7f - 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, 0xCA, 0x05, 0x75, 0xCC, - // Bytes 3b80 - 3bbf - 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, 0x05, 0xE2, 0x86, 0x92, - // Bytes 3bc0 - 3bff - 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, 0xE2, 0x88, 0xA5, 0xCC, - // Bytes 3c00 - 3c3f - 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, 0x89, 0xB2, 0xCC, 0xB8, - // Bytes 3c40 - 3c7f - 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, 0x83, 0xCC, 0xB8, 0x05, - // Bytes 3c80 - 3cbf - 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, 0xCC, 0xB8, 0x05, 0x05, - // Bytes 3cc0 - 3cff - 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, 0x06, 0xCE, 0x95, 0xCC, - // Bytes 3d00 - 3d3f - 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, 0x06, 0xCE, 0x99, 0xCC, - // Bytes 3d40 - 3d7f - 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, 0x06, 0xCE, 0xA9, 0xCC, - // Bytes 3d80 - 3dbf - 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, 0x06, 0xCE, 0xB5, 0xCC, - // Bytes 3dc0 - 3dff - 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, 0x06, 0xCE, 0xB9, 0xCC, - // Bytes 3e00 - 3e3f - 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, 0x06, 0xCE, 0xB9, 0xCC, - // Bytes 3e40 - 3e7f - 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, 0x06, 0xCF, 0x85, 0xCC, - // Bytes 3e80 - 3ebf - 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, 0x06, 0xCF, 0x89, 0xCC, - // Bytes 3ec0 - 3eff - 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, 0x06, 0xE3, 0x81, 0x86, - // Bytes 3f00 - 3f3f - 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, 0x06, 0xE3, 0x81, 0x99, - // Bytes 3f40 - 3f7f - 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, 0x06, 0xE3, 0x81, 0xAF, - // Bytes 3f80 - 3fbf - 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, 0x06, 0xE3, 0x81, 0xBB, - // Bytes 3fc0 - 3fff - 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, 0x06, 0xE3, 0x82, 0xB3, - // Bytes 4000 - 403f - 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, 0x06, 0xE3, 0x83, 0x84, - // Bytes 4040 - 407f - 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, 0x06, 0xE3, 0x83, 0x95, - // Bytes 4080 - 40bf - 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, 0x06, 0xE3, 0x83, 0xB2, - // Bytes 40c0 - 40ff - 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, 0x85, 0xDB, 0x08, 0xCE, - // Bytes 4100 - 413f - 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, 0x97, 0xCC, 0x94, 0xCD, - // Bytes 4140 - 417f - 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, 0x82, 0xCD, 0x85, 0xDB, - // Bytes 4180 - 41bf - 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, 0x08, 0xCE, 0xB7, 0xCC, - // Bytes 41c0 - 41ff - 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, 0x93, 0xCC, 0x80, 0xCD, - // Bytes 4200 - 423f - 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, 0xBA, 0x09, 0x08, 0xF0, - // Bytes 4240 - 427f - 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, 0x8A, 0xC9, 0x43, 0x20, - // Bytes 4280 - 42bf - 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, 0xD9, 0x8F, 0x69, 0x43, - // Bytes 42c0 - 42ff - 0x20, 0xD9, 0x90, 0x6D, 0x43, 0x20, 0xD9, 0x91, - 0x71, 0x43, 0x20, 0xD9, 0x92, 0x75, 0x43, 0x41, - 0xCC, 0x8A, 0xC9, 0x43, 0x73, 0xCC, 0x87, 0xC9, - 0x43, 0xE1, 0x85, 0xA1, 0x01, 0x43, 0xE1, 0x85, - 0xA2, 0x01, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x43, - 0xE1, 0x85, 0xA4, 0x01, 0x43, 0xE1, 0x85, 0xA5, - 0x01, 0x43, 0xE1, 0x85, 0xA6, 0x01, 0x43, 0xE1, - 0x85, 0xA7, 0x01, 0x43, 0xE1, 0x85, 0xA8, 0x01, - // Bytes 4300 - 433f - 0x43, 0xE1, 0x85, 0xA9, 0x01, 0x43, 0xE1, 0x85, - 0xAA, 0x01, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x43, - 0xE1, 0x85, 0xAC, 0x01, 0x43, 0xE1, 0x85, 0xAD, - 0x01, 0x43, 0xE1, 0x85, 0xAE, 0x01, 0x43, 0xE1, - 0x85, 0xAF, 0x01, 0x43, 0xE1, 0x85, 0xB0, 0x01, - 0x43, 0xE1, 0x85, 0xB1, 0x01, 0x43, 0xE1, 0x85, - 0xB2, 0x01, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x43, - 0xE1, 0x85, 0xB4, 0x01, 0x43, 0xE1, 0x85, 0xB5, - // Bytes 4340 - 437f - 0x01, 0x43, 0xE1, 0x86, 0xAA, 0x01, 0x43, 0xE1, - 0x86, 0xAC, 0x01, 0x43, 0xE1, 0x86, 0xAD, 0x01, - 0x43, 0xE1, 0x86, 0xB0, 0x01, 0x43, 0xE1, 0x86, - 0xB1, 0x01, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x43, - 0xE1, 0x86, 0xB3, 0x01, 0x43, 0xE1, 0x86, 0xB4, - 0x01, 0x43, 0xE1, 0x86, 0xB5, 0x01, 0x44, 0x20, - 0xE3, 0x82, 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, - 0x9A, 0x0D, 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, - // Bytes 4380 - 43bf - 0x44, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0x95, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, - 0x44, 0xCE, 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0xA5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, - 0x88, 0xC9, 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, - 0x44, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0xB5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, - // Bytes 43c0 - 43ff - 0x81, 0xC9, 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, - 0x44, 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, - 0x85, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, - 0x81, 0xC9, 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, - 0x44, 0xD7, 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, - 0x90, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, - 0x44, 0xD7, 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - // Bytes 4400 - 443f - 0x93, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, - 0x44, 0xD7, 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0x96, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, - 0x44, 0xD7, 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0x9A, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, - // Bytes 4440 - 447f - 0x44, 0xD7, 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0x9E, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0xA4, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, - 0xBF, 0x49, 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0xA8, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, - // Bytes 4480 - 44bf - 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, - 0x44, 0xD7, 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, - 0xAA, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, - 0xB7, 0x31, 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, - 0x44, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, - 0xA7, 0xD9, 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, - 0x95, 0xB5, 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, - 0x44, 0xD8, 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, - // Bytes 44c0 - 44ff - 0x80, 0xD9, 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, - 0x8E, 0x65, 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, - 0x44, 0xD9, 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, - 0x80, 0xD9, 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, - 0x92, 0x75, 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, - 0x44, 0xD9, 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, - 0x89, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, - 0x94, 0xC9, 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, - // Bytes 4500 - 453f - 0x44, 0xDB, 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, - 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, - 0x88, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, - 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, - 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, - 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x45, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, - 0x20, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, - // Bytes 4540 - 457f - 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, - 0x8C, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, - 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, - 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, - 0x72, 0x45, 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, - 0x45, 0x20, 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, - 0xE2, 0xAB, 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, - 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, - // Bytes 4580 - 45bf - 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, - 0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, - 0xA9, 0xD6, 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, - 0x80, 0xD9, 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, - 0x80, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, - 0x80, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, - 0xA4, 0x95, 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, - 0xA4, 0x96, 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, - // Bytes 45c0 - 45ff - 0xA4, 0x97, 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, - 0xA4, 0x9C, 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, - 0xA4, 0xA1, 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, - 0xA4, 0xA2, 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, - 0xA4, 0xAB, 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, - 0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, - 0xA6, 0xA1, 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, - 0xA6, 0xA2, 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, - // Bytes 4600 - 463f - 0xA6, 0xAF, 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, - 0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, - 0xA8, 0x97, 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, - 0xA8, 0x9C, 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, - 0xA8, 0xAB, 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, - 0xA8, 0xB2, 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, - 0xA8, 0xB8, 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, - 0xAC, 0xA1, 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, - // Bytes 4640 - 467f - 0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, - 0xBE, 0xB2, 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, - 0xBE, 0xB3, 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, - 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, - 0x9D, 0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, - 0x48, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, - 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, - 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, - // Bytes 4680 - 46bf - 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, - 0xBE, 0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, - 0x9E, 0x49, 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, - 0xE0, 0xBE, 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, - 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, - 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, - // Bytes 46c0 - 46ff - 0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, - 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - 0xB2, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, - 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, - 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, - // Bytes 4700 - 473f - 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, - 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - 0xAF, 0xAE, 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, - 0x41, 0xCC, 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, - 0xC9, 0x83, 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, - 0xCC, 0x8A, 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, - 0x83, 0x43, 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, - // Bytes 4740 - 477f - 0x82, 0xC9, 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, - 0x45, 0xCC, 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, - 0xA5, 0x83, 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, - 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, - 0x83, 0x4F, 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, - 0x84, 0xC9, 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, - 0x4F, 0xCC, 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, - 0xAD, 0x83, 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, - // Bytes 4780 - 47bf - 0xCC, 0xA8, 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, - 0x83, 0x53, 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, - 0x8C, 0xC9, 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, - 0x55, 0xCC, 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, - 0xC9, 0x83, 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, - 0xCC, 0x9B, 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, - 0x83, 0x61, 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, - 0x87, 0xC9, 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, - // Bytes 47c0 - 47ff - 0x61, 0xCC, 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, - 0xB5, 0x83, 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, - 0xCC, 0x82, 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, - 0x83, 0x65, 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, - 0xA7, 0xA5, 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, - 0x6C, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, - 0xC9, 0x83, 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, - 0xCC, 0x84, 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, - // Bytes 4800 - 483f - 0x83, 0x6F, 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, - 0x9B, 0xAD, 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, - 0x6F, 0xCC, 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, - 0xB5, 0x83, 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, - 0xCC, 0x8C, 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, - 0x83, 0x75, 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, - 0x84, 0xC9, 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, - 0x75, 0xCC, 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, - // Bytes 4840 - 487f - 0x93, 0xC9, 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, - 0x84, 0xCE, 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, - 0x95, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, - 0x93, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, - 0x84, 0xCE, 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, - 0x99, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, - 0x93, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, - 0x84, 0xCE, 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - // Bytes 4880 - 48bf - 0xA9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, - 0x84, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, - 0xB1, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, - 0x84, 0xCE, 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, - 0xB5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, - 0x80, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, - // Bytes 48c0 - 48ff - 0x84, 0xCE, 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, - 0xB7, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, - 0x82, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, - 0x84, 0xCE, 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, - 0xB9, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, - 0x93, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, - 0x84, 0xCF, 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, - 0x85, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, - // Bytes 4900 - 493f - 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, - 0x84, 0xCF, 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, - 0x89, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, - 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, - 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - // Bytes 4940 - 497f - 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - // Bytes 4980 - 49bf - 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - // Bytes 49c0 - 49ff - 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - // Bytes 4a00 - 4a3f - 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - // Bytes 4a40 - 4a7f - 0x42, 0xCC, 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, - 0xC9, 0x32, 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x44, - 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32, 0x43, 0xE3, - 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3, 0x82, 0x9A, - 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, - 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD, 0xB1, 0xE0, - 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0, 0xBD, 0xB1, - 0xE0, 0xBE, 0x80, 0x9E, 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 < 0xC0: - 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 < 0xC0: - 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: 10270 bytes (10.03 KiB). Checksum: d7e415c88f2e510a. -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: 0x2f6b, 0xc1: 0x2f70, 0xc2: 0x471a, 0xc3: 0x2f75, 0xc4: 0x4729, 0xc5: 0x472e, - 0xc6: 0xa000, 0xc7: 0x4738, 0xc8: 0x2fde, 0xc9: 0x2fe3, 0xca: 0x473d, 0xcb: 0x2ff7, - 0xcc: 0x306a, 0xcd: 0x306f, 0xce: 0x3074, 0xcf: 0x4751, 0xd1: 0x3100, - 0xd2: 0x3123, 0xd3: 0x3128, 0xd4: 0x475b, 0xd5: 0x4760, 0xd6: 0x476f, - 0xd8: 0xa000, 0xd9: 0x31af, 0xda: 0x31b4, 0xdb: 0x31b9, 0xdc: 0x47a1, 0xdd: 0x3231, - 0xe0: 0x3277, 0xe1: 0x327c, 0xe2: 0x47ab, 0xe3: 0x3281, - 0xe4: 0x47ba, 0xe5: 0x47bf, 0xe6: 0xa000, 0xe7: 0x47c9, 0xe8: 0x32ea, 0xe9: 0x32ef, - 0xea: 0x47ce, 0xeb: 0x3303, 0xec: 0x337b, 0xed: 0x3380, 0xee: 0x3385, 0xef: 0x47e2, - 0xf1: 0x3411, 0xf2: 0x3434, 0xf3: 0x3439, 0xf4: 0x47ec, 0xf5: 0x47f1, - 0xf6: 0x4800, 0xf8: 0xa000, 0xf9: 0x34c5, 0xfa: 0x34ca, 0xfb: 0x34cf, - 0xfc: 0x4832, 0xfd: 0x354c, 0xff: 0x3565, - // Block 0x4, offset 0x100 - 0x100: 0x2f7a, 0x101: 0x3286, 0x102: 0x471f, 0x103: 0x47b0, 0x104: 0x2f98, 0x105: 0x32a4, - 0x106: 0x2fac, 0x107: 0x32b8, 0x108: 0x2fb1, 0x109: 0x32bd, 0x10a: 0x2fb6, 0x10b: 0x32c2, - 0x10c: 0x2fbb, 0x10d: 0x32c7, 0x10e: 0x2fc5, 0x10f: 0x32d1, - 0x112: 0x4742, 0x113: 0x47d3, 0x114: 0x2fed, 0x115: 0x32f9, 0x116: 0x2ff2, 0x117: 0x32fe, - 0x118: 0x3010, 0x119: 0x331c, 0x11a: 0x3001, 0x11b: 0x330d, 0x11c: 0x3029, 0x11d: 0x3335, - 0x11e: 0x3033, 0x11f: 0x333f, 0x120: 0x3038, 0x121: 0x3344, 0x122: 0x3042, 0x123: 0x334e, - 0x124: 0x3047, 0x125: 0x3353, 0x128: 0x3079, 0x129: 0x338a, - 0x12a: 0x307e, 0x12b: 0x338f, 0x12c: 0x3083, 0x12d: 0x3394, 0x12e: 0x30a6, 0x12f: 0x33b2, - 0x130: 0x3088, 0x134: 0x30b0, 0x135: 0x33bc, - 0x136: 0x30c4, 0x137: 0x33d5, 0x139: 0x30ce, 0x13a: 0x33df, 0x13b: 0x30d8, - 0x13c: 0x33e9, 0x13d: 0x30d3, 0x13e: 0x33e4, - // Block 0x5, offset 0x140 - 0x143: 0x30fb, 0x144: 0x340c, 0x145: 0x3114, - 0x146: 0x3425, 0x147: 0x310a, 0x148: 0x341b, - 0x14c: 0x4765, 0x14d: 0x47f6, 0x14e: 0x312d, 0x14f: 0x343e, 0x150: 0x3137, 0x151: 0x3448, - 0x154: 0x3155, 0x155: 0x3466, 0x156: 0x316e, 0x157: 0x347f, - 0x158: 0x315f, 0x159: 0x3470, 0x15a: 0x4788, 0x15b: 0x4819, 0x15c: 0x3178, 0x15d: 0x3489, - 0x15e: 0x3187, 0x15f: 0x3498, 0x160: 0x478d, 0x161: 0x481e, 0x162: 0x31a0, 0x163: 0x34b6, - 0x164: 0x3191, 0x165: 0x34a7, 0x168: 0x4797, 0x169: 0x4828, - 0x16a: 0x479c, 0x16b: 0x482d, 0x16c: 0x31be, 0x16d: 0x34d4, 0x16e: 0x31c8, 0x16f: 0x34de, - 0x170: 0x31cd, 0x171: 0x34e3, 0x172: 0x31eb, 0x173: 0x3501, 0x174: 0x320e, 0x175: 0x3524, - 0x176: 0x3236, 0x177: 0x3551, 0x178: 0x324a, 0x179: 0x3259, 0x17a: 0x3579, 0x17b: 0x3263, - 0x17c: 0x3583, 0x17d: 0x3268, 0x17e: 0x3588, 0x17f: 0xa000, - // Block 0x6, offset 0x180 - 0x184: 0x8100, 0x185: 0x8100, - 0x186: 0x8100, - 0x18d: 0x2f84, 0x18e: 0x3290, 0x18f: 0x3092, 0x190: 0x339e, 0x191: 0x313c, - 0x192: 0x344d, 0x193: 0x31d2, 0x194: 0x34e8, 0x195: 0x39cb, 0x196: 0x3b5a, 0x197: 0x39c4, - 0x198: 0x3b53, 0x199: 0x39d2, 0x19a: 0x3b61, 0x19b: 0x39bd, 0x19c: 0x3b4c, - 0x19e: 0x38ac, 0x19f: 0x3a3b, 0x1a0: 0x38a5, 0x1a1: 0x3a34, 0x1a2: 0x35af, 0x1a3: 0x35c1, - 0x1a6: 0x303d, 0x1a7: 0x3349, 0x1a8: 0x30ba, 0x1a9: 0x33cb, - 0x1aa: 0x477e, 0x1ab: 0x480f, 0x1ac: 0x398c, 0x1ad: 0x3b1b, 0x1ae: 0x35d3, 0x1af: 0x35d9, - 0x1b0: 0x33c1, 0x1b4: 0x3024, 0x1b5: 0x3330, - 0x1b8: 0x30f6, 0x1b9: 0x3407, 0x1ba: 0x38b3, 0x1bb: 0x3a42, - 0x1bc: 0x35a9, 0x1bd: 0x35bb, 0x1be: 0x35b5, 0x1bf: 0x35c7, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f89, 0x1c1: 0x3295, 0x1c2: 0x2f8e, 0x1c3: 0x329a, 0x1c4: 0x3006, 0x1c5: 0x3312, - 0x1c6: 0x300b, 0x1c7: 0x3317, 0x1c8: 0x3097, 0x1c9: 0x33a3, 0x1ca: 0x309c, 0x1cb: 0x33a8, - 0x1cc: 0x3141, 0x1cd: 0x3452, 0x1ce: 0x3146, 0x1cf: 0x3457, 0x1d0: 0x3164, 0x1d1: 0x3475, - 0x1d2: 0x3169, 0x1d3: 0x347a, 0x1d4: 0x31d7, 0x1d5: 0x34ed, 0x1d6: 0x31dc, 0x1d7: 0x34f2, - 0x1d8: 0x3182, 0x1d9: 0x3493, 0x1da: 0x319b, 0x1db: 0x34b1, - 0x1de: 0x3056, 0x1df: 0x3362, - 0x1e6: 0x4724, 0x1e7: 0x47b5, 0x1e8: 0x474c, 0x1e9: 0x47dd, - 0x1ea: 0x395b, 0x1eb: 0x3aea, 0x1ec: 0x3938, 0x1ed: 0x3ac7, 0x1ee: 0x476a, 0x1ef: 0x47fb, - 0x1f0: 0x3954, 0x1f1: 0x3ae3, 0x1f2: 0x3240, 0x1f3: 0x355b, - // 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: 0x4a40, 0x241: 0x4a45, 0x242: 0x9932, 0x243: 0x4a4a, 0x244: 0x4a4f, 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: 0x359d, - 0x286: 0x35e5, 0x287: 0x00ce, 0x288: 0x3603, 0x289: 0x360f, 0x28a: 0x3621, - 0x28c: 0x363f, 0x28e: 0x3651, 0x28f: 0x366f, 0x290: 0x3e04, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x3633, 0x2ab: 0x3663, 0x2ac: 0x4890, 0x2ad: 0x3693, 0x2ae: 0x48ba, 0x2af: 0x36a5, - 0x2b0: 0x3e6c, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x371d, 0x2c1: 0x3729, 0x2c3: 0x3717, - 0x2c6: 0xa000, 0x2c7: 0x3705, - 0x2cc: 0x3759, 0x2cd: 0x3741, 0x2ce: 0x376b, 0x2d0: 0xa000, - 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, - 0x2d8: 0xa000, 0x2d9: 0x374d, 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: 0x37d1, 0x2fa: 0xa000, - 0x2fe: 0xa000, - // Block 0xc, offset 0x300 - 0x301: 0x372f, 0x302: 0x37b3, - 0x310: 0x370b, 0x311: 0x378f, - 0x312: 0x3711, 0x313: 0x3795, 0x316: 0x3723, 0x317: 0x37a7, - 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3825, 0x31b: 0x382b, 0x31c: 0x3735, 0x31d: 0x37b9, - 0x31e: 0x373b, 0x31f: 0x37bf, 0x322: 0x3747, 0x323: 0x37cb, - 0x324: 0x3753, 0x325: 0x37d7, 0x326: 0x375f, 0x327: 0x37e3, 0x328: 0xa000, 0x329: 0xa000, - 0x32a: 0x3831, 0x32b: 0x3837, 0x32c: 0x3789, 0x32d: 0x380d, 0x32e: 0x3765, 0x32f: 0x37e9, - 0x330: 0x3771, 0x331: 0x37f5, 0x332: 0x3777, 0x333: 0x37fb, 0x334: 0x377d, 0x335: 0x3801, - 0x338: 0x3783, 0x339: 0x3807, - // 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: 0x2d22, 0x3c7: 0xa000, 0x3c8: 0x2d2a, 0x3c9: 0xa000, 0x3ca: 0x2d32, 0x3cb: 0xa000, - 0x3cc: 0x2d3a, 0x3cd: 0xa000, 0x3ce: 0x2d42, 0x3d1: 0xa000, - 0x3d2: 0x2d4a, - 0x3f4: 0x8102, 0x3f5: 0x9900, - 0x3fa: 0xa000, 0x3fb: 0x2d52, - 0x3fc: 0xa000, 0x3fd: 0x2d5a, 0x3fe: 0xa000, 0x3ff: 0xa000, - // Block 0x10, offset 0x400 - 0x400: 0x2f93, 0x401: 0x329f, 0x402: 0x2f9d, 0x403: 0x32a9, 0x404: 0x2fa2, 0x405: 0x32ae, - 0x406: 0x2fa7, 0x407: 0x32b3, 0x408: 0x38c8, 0x409: 0x3a57, 0x40a: 0x2fc0, 0x40b: 0x32cc, - 0x40c: 0x2fca, 0x40d: 0x32d6, 0x40e: 0x2fd9, 0x40f: 0x32e5, 0x410: 0x2fcf, 0x411: 0x32db, - 0x412: 0x2fd4, 0x413: 0x32e0, 0x414: 0x38eb, 0x415: 0x3a7a, 0x416: 0x38f2, 0x417: 0x3a81, - 0x418: 0x3015, 0x419: 0x3321, 0x41a: 0x301a, 0x41b: 0x3326, 0x41c: 0x3900, 0x41d: 0x3a8f, - 0x41e: 0x301f, 0x41f: 0x332b, 0x420: 0x302e, 0x421: 0x333a, 0x422: 0x304c, 0x423: 0x3358, - 0x424: 0x305b, 0x425: 0x3367, 0x426: 0x3051, 0x427: 0x335d, 0x428: 0x3060, 0x429: 0x336c, - 0x42a: 0x3065, 0x42b: 0x3371, 0x42c: 0x30ab, 0x42d: 0x33b7, 0x42e: 0x3907, 0x42f: 0x3a96, - 0x430: 0x30b5, 0x431: 0x33c6, 0x432: 0x30bf, 0x433: 0x33d0, 0x434: 0x30c9, 0x435: 0x33da, - 0x436: 0x4756, 0x437: 0x47e7, 0x438: 0x390e, 0x439: 0x3a9d, 0x43a: 0x30e2, 0x43b: 0x33f3, - 0x43c: 0x30dd, 0x43d: 0x33ee, 0x43e: 0x30e7, 0x43f: 0x33f8, - // Block 0x11, offset 0x440 - 0x440: 0x30ec, 0x441: 0x33fd, 0x442: 0x30f1, 0x443: 0x3402, 0x444: 0x3105, 0x445: 0x3416, - 0x446: 0x310f, 0x447: 0x3420, 0x448: 0x311e, 0x449: 0x342f, 0x44a: 0x3119, 0x44b: 0x342a, - 0x44c: 0x3931, 0x44d: 0x3ac0, 0x44e: 0x393f, 0x44f: 0x3ace, 0x450: 0x3946, 0x451: 0x3ad5, - 0x452: 0x394d, 0x453: 0x3adc, 0x454: 0x314b, 0x455: 0x345c, 0x456: 0x3150, 0x457: 0x3461, - 0x458: 0x315a, 0x459: 0x346b, 0x45a: 0x4783, 0x45b: 0x4814, 0x45c: 0x3993, 0x45d: 0x3b22, - 0x45e: 0x3173, 0x45f: 0x3484, 0x460: 0x317d, 0x461: 0x348e, 0x462: 0x4792, 0x463: 0x4823, - 0x464: 0x399a, 0x465: 0x3b29, 0x466: 0x39a1, 0x467: 0x3b30, 0x468: 0x39a8, 0x469: 0x3b37, - 0x46a: 0x318c, 0x46b: 0x349d, 0x46c: 0x3196, 0x46d: 0x34ac, 0x46e: 0x31aa, 0x46f: 0x34c0, - 0x470: 0x31a5, 0x471: 0x34bb, 0x472: 0x31e6, 0x473: 0x34fc, 0x474: 0x31f5, 0x475: 0x350b, - 0x476: 0x31f0, 0x477: 0x3506, 0x478: 0x39af, 0x479: 0x3b3e, 0x47a: 0x39b6, 0x47b: 0x3b45, - 0x47c: 0x31fa, 0x47d: 0x3510, 0x47e: 0x31ff, 0x47f: 0x3515, - // Block 0x12, offset 0x480 - 0x480: 0x3204, 0x481: 0x351a, 0x482: 0x3209, 0x483: 0x351f, 0x484: 0x3218, 0x485: 0x352e, - 0x486: 0x3213, 0x487: 0x3529, 0x488: 0x321d, 0x489: 0x3538, 0x48a: 0x3222, 0x48b: 0x353d, - 0x48c: 0x3227, 0x48d: 0x3542, 0x48e: 0x3245, 0x48f: 0x3560, 0x490: 0x325e, 0x491: 0x357e, - 0x492: 0x326d, 0x493: 0x358d, 0x494: 0x3272, 0x495: 0x3592, 0x496: 0x3376, 0x497: 0x34a2, - 0x498: 0x3533, 0x499: 0x356f, 0x49b: 0x35cd, - 0x4a0: 0x4733, 0x4a1: 0x47c4, 0x4a2: 0x2f7f, 0x4a3: 0x328b, - 0x4a4: 0x3874, 0x4a5: 0x3a03, 0x4a6: 0x386d, 0x4a7: 0x39fc, 0x4a8: 0x3882, 0x4a9: 0x3a11, - 0x4aa: 0x387b, 0x4ab: 0x3a0a, 0x4ac: 0x38ba, 0x4ad: 0x3a49, 0x4ae: 0x3890, 0x4af: 0x3a1f, - 0x4b0: 0x3889, 0x4b1: 0x3a18, 0x4b2: 0x389e, 0x4b3: 0x3a2d, 0x4b4: 0x3897, 0x4b5: 0x3a26, - 0x4b6: 0x38c1, 0x4b7: 0x3a50, 0x4b8: 0x4747, 0x4b9: 0x47d8, 0x4ba: 0x2ffc, 0x4bb: 0x3308, - 0x4bc: 0x2fe8, 0x4bd: 0x32f4, 0x4be: 0x38d6, 0x4bf: 0x3a65, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x38cf, 0x4c1: 0x3a5e, 0x4c2: 0x38e4, 0x4c3: 0x3a73, 0x4c4: 0x38dd, 0x4c5: 0x3a6c, - 0x4c6: 0x38f9, 0x4c7: 0x3a88, 0x4c8: 0x308d, 0x4c9: 0x3399, 0x4ca: 0x30a1, 0x4cb: 0x33ad, - 0x4cc: 0x4779, 0x4cd: 0x480a, 0x4ce: 0x3132, 0x4cf: 0x3443, 0x4d0: 0x391c, 0x4d1: 0x3aab, - 0x4d2: 0x3915, 0x4d3: 0x3aa4, 0x4d4: 0x392a, 0x4d5: 0x3ab9, 0x4d6: 0x3923, 0x4d7: 0x3ab2, - 0x4d8: 0x3985, 0x4d9: 0x3b14, 0x4da: 0x3969, 0x4db: 0x3af8, 0x4dc: 0x3962, 0x4dd: 0x3af1, - 0x4de: 0x3977, 0x4df: 0x3b06, 0x4e0: 0x3970, 0x4e1: 0x3aff, 0x4e2: 0x397e, 0x4e3: 0x3b0d, - 0x4e4: 0x31e1, 0x4e5: 0x34f7, 0x4e6: 0x31c3, 0x4e7: 0x34d9, 0x4e8: 0x39e0, 0x4e9: 0x3b6f, - 0x4ea: 0x39d9, 0x4eb: 0x3b68, 0x4ec: 0x39ee, 0x4ed: 0x3b7d, 0x4ee: 0x39e7, 0x4ef: 0x3b76, - 0x4f0: 0x39f5, 0x4f1: 0x3b84, 0x4f2: 0x322c, 0x4f3: 0x3547, 0x4f4: 0x3254, 0x4f5: 0x3574, - 0x4f6: 0x324f, 0x4f7: 0x356a, 0x4f8: 0x323b, 0x4f9: 0x3556, - // Block 0x14, offset 0x500 - 0x500: 0x4896, 0x501: 0x489c, 0x502: 0x49b0, 0x503: 0x49c8, 0x504: 0x49b8, 0x505: 0x49d0, - 0x506: 0x49c0, 0x507: 0x49d8, 0x508: 0x483c, 0x509: 0x4842, 0x50a: 0x4920, 0x50b: 0x4938, - 0x50c: 0x4928, 0x50d: 0x4940, 0x50e: 0x4930, 0x50f: 0x4948, 0x510: 0x48a8, 0x511: 0x48ae, - 0x512: 0x3db4, 0x513: 0x3dc4, 0x514: 0x3dbc, 0x515: 0x3dcc, - 0x518: 0x4848, 0x519: 0x484e, 0x51a: 0x3ce4, 0x51b: 0x3cf4, 0x51c: 0x3cec, 0x51d: 0x3cfc, - 0x520: 0x48c0, 0x521: 0x48c6, 0x522: 0x49e0, 0x523: 0x49f8, - 0x524: 0x49e8, 0x525: 0x4a00, 0x526: 0x49f0, 0x527: 0x4a08, 0x528: 0x4854, 0x529: 0x485a, - 0x52a: 0x4950, 0x52b: 0x4968, 0x52c: 0x4958, 0x52d: 0x4970, 0x52e: 0x4960, 0x52f: 0x4978, - 0x530: 0x48d8, 0x531: 0x48de, 0x532: 0x3e14, 0x533: 0x3e2c, 0x534: 0x3e1c, 0x535: 0x3e34, - 0x536: 0x3e24, 0x537: 0x3e3c, 0x538: 0x4860, 0x539: 0x4866, 0x53a: 0x3d14, 0x53b: 0x3d2c, - 0x53c: 0x3d1c, 0x53d: 0x3d34, 0x53e: 0x3d24, 0x53f: 0x3d3c, - // Block 0x15, offset 0x540 - 0x540: 0x48e4, 0x541: 0x48ea, 0x542: 0x3e44, 0x543: 0x3e54, 0x544: 0x3e4c, 0x545: 0x3e5c, - 0x548: 0x486c, 0x549: 0x4872, 0x54a: 0x3d44, 0x54b: 0x3d54, - 0x54c: 0x3d4c, 0x54d: 0x3d5c, 0x550: 0x48f6, 0x551: 0x48fc, - 0x552: 0x3e7c, 0x553: 0x3e94, 0x554: 0x3e84, 0x555: 0x3e9c, 0x556: 0x3e8c, 0x557: 0x3ea4, - 0x559: 0x4878, 0x55b: 0x3d64, 0x55d: 0x3d6c, - 0x55f: 0x3d74, 0x560: 0x490e, 0x561: 0x4914, 0x562: 0x4a10, 0x563: 0x4a28, - 0x564: 0x4a18, 0x565: 0x4a30, 0x566: 0x4a20, 0x567: 0x4a38, 0x568: 0x487e, 0x569: 0x4884, - 0x56a: 0x4980, 0x56b: 0x4998, 0x56c: 0x4988, 0x56d: 0x49a0, 0x56e: 0x4990, 0x56f: 0x49a8, - 0x570: 0x488a, 0x571: 0x43b0, 0x572: 0x368d, 0x573: 0x43b6, 0x574: 0x48b4, 0x575: 0x43bc, - 0x576: 0x369f, 0x577: 0x43c2, 0x578: 0x36bd, 0x579: 0x43c8, 0x57a: 0x36d5, 0x57b: 0x43ce, - 0x57c: 0x4902, 0x57d: 0x43d4, - // Block 0x16, offset 0x580 - 0x580: 0x3d9c, 0x581: 0x3da4, 0x582: 0x4180, 0x583: 0x419e, 0x584: 0x418a, 0x585: 0x41a8, - 0x586: 0x4194, 0x587: 0x41b2, 0x588: 0x3cd4, 0x589: 0x3cdc, 0x58a: 0x40cc, 0x58b: 0x40ea, - 0x58c: 0x40d6, 0x58d: 0x40f4, 0x58e: 0x40e0, 0x58f: 0x40fe, 0x590: 0x3de4, 0x591: 0x3dec, - 0x592: 0x41bc, 0x593: 0x41da, 0x594: 0x41c6, 0x595: 0x41e4, 0x596: 0x41d0, 0x597: 0x41ee, - 0x598: 0x3d04, 0x599: 0x3d0c, 0x59a: 0x4108, 0x59b: 0x4126, 0x59c: 0x4112, 0x59d: 0x4130, - 0x59e: 0x411c, 0x59f: 0x413a, 0x5a0: 0x3ebc, 0x5a1: 0x3ec4, 0x5a2: 0x41f8, 0x5a3: 0x4216, - 0x5a4: 0x4202, 0x5a5: 0x4220, 0x5a6: 0x420c, 0x5a7: 0x422a, 0x5a8: 0x3d7c, 0x5a9: 0x3d84, - 0x5aa: 0x4144, 0x5ab: 0x4162, 0x5ac: 0x414e, 0x5ad: 0x416c, 0x5ae: 0x4158, 0x5af: 0x4176, - 0x5b0: 0x3681, 0x5b1: 0x367b, 0x5b2: 0x3d8c, 0x5b3: 0x3687, 0x5b4: 0x3d94, - 0x5b6: 0x48a2, 0x5b7: 0x3dac, 0x5b8: 0x35f1, 0x5b9: 0x35eb, 0x5ba: 0x35df, 0x5bb: 0x4380, - 0x5bc: 0x35f7, 0x5bd: 0x8100, 0x5be: 0x01d3, 0x5bf: 0xa100, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x8100, 0x5c1: 0x35a3, 0x5c2: 0x3dd4, 0x5c3: 0x3699, 0x5c4: 0x3ddc, - 0x5c6: 0x48cc, 0x5c7: 0x3df4, 0x5c8: 0x35fd, 0x5c9: 0x4386, 0x5ca: 0x3609, 0x5cb: 0x438c, - 0x5cc: 0x3615, 0x5cd: 0x3b8b, 0x5ce: 0x3b92, 0x5cf: 0x3b99, 0x5d0: 0x36b1, 0x5d1: 0x36ab, - 0x5d2: 0x3dfc, 0x5d3: 0x4576, 0x5d6: 0x36b7, 0x5d7: 0x3e0c, - 0x5d8: 0x362d, 0x5d9: 0x3627, 0x5da: 0x361b, 0x5db: 0x4392, 0x5dd: 0x3ba0, - 0x5de: 0x3ba7, 0x5df: 0x3bae, 0x5e0: 0x36e7, 0x5e1: 0x36e1, 0x5e2: 0x3e64, 0x5e3: 0x457e, - 0x5e4: 0x36c9, 0x5e5: 0x36cf, 0x5e6: 0x36ed, 0x5e7: 0x3e74, 0x5e8: 0x365d, 0x5e9: 0x3657, - 0x5ea: 0x364b, 0x5eb: 0x439e, 0x5ec: 0x3645, 0x5ed: 0x3597, 0x5ee: 0x437a, 0x5ef: 0x0081, - 0x5f2: 0x3eac, 0x5f3: 0x36f3, 0x5f4: 0x3eb4, - 0x5f6: 0x491a, 0x5f7: 0x3ecc, 0x5f8: 0x3639, 0x5f9: 0x4398, 0x5fa: 0x3669, 0x5fb: 0x43aa, - 0x5fc: 0x3675, 0x5fd: 0x4252, 0x5fe: 0xa100, - // Block 0x18, offset 0x600 - 0x601: 0x3c02, 0x603: 0xa000, 0x604: 0x3c09, 0x605: 0xa000, - 0x607: 0x3c10, 0x608: 0xa000, 0x609: 0x3c17, - 0x60d: 0xa000, - 0x620: 0x2f61, 0x621: 0xa000, 0x622: 0x3c25, - 0x624: 0xa000, 0x625: 0xa000, - 0x62d: 0x3c1e, 0x62e: 0x2f5c, 0x62f: 0x2f66, - 0x630: 0x3c2c, 0x631: 0x3c33, 0x632: 0xa000, 0x633: 0xa000, 0x634: 0x3c3a, 0x635: 0x3c41, - 0x636: 0xa000, 0x637: 0xa000, 0x638: 0x3c48, 0x639: 0x3c4f, 0x63a: 0xa000, 0x63b: 0xa000, - 0x63c: 0xa000, 0x63d: 0xa000, - // Block 0x19, offset 0x640 - 0x640: 0x3c56, 0x641: 0x3c5d, 0x642: 0xa000, 0x643: 0xa000, 0x644: 0x3c72, 0x645: 0x3c79, - 0x646: 0xa000, 0x647: 0xa000, 0x648: 0x3c80, 0x649: 0x3c87, - 0x651: 0xa000, - 0x652: 0xa000, - 0x662: 0xa000, - 0x668: 0xa000, 0x669: 0xa000, - 0x66b: 0xa000, 0x66c: 0x3c9c, 0x66d: 0x3ca3, 0x66e: 0x3caa, 0x66f: 0x3cb1, - 0x672: 0xa000, 0x673: 0xa000, 0x674: 0xa000, 0x675: 0xa000, - // Block 0x1a, offset 0x680 - 0x686: 0xa000, 0x68b: 0xa000, - 0x68c: 0x3f04, 0x68d: 0xa000, 0x68e: 0x3f0c, 0x68f: 0xa000, 0x690: 0x3f14, 0x691: 0xa000, - 0x692: 0x3f1c, 0x693: 0xa000, 0x694: 0x3f24, 0x695: 0xa000, 0x696: 0x3f2c, 0x697: 0xa000, - 0x698: 0x3f34, 0x699: 0xa000, 0x69a: 0x3f3c, 0x69b: 0xa000, 0x69c: 0x3f44, 0x69d: 0xa000, - 0x69e: 0x3f4c, 0x69f: 0xa000, 0x6a0: 0x3f54, 0x6a1: 0xa000, 0x6a2: 0x3f5c, - 0x6a4: 0xa000, 0x6a5: 0x3f64, 0x6a6: 0xa000, 0x6a7: 0x3f6c, 0x6a8: 0xa000, 0x6a9: 0x3f74, - 0x6af: 0xa000, - 0x6b0: 0x3f7c, 0x6b1: 0x3f84, 0x6b2: 0xa000, 0x6b3: 0x3f8c, 0x6b4: 0x3f94, 0x6b5: 0xa000, - 0x6b6: 0x3f9c, 0x6b7: 0x3fa4, 0x6b8: 0xa000, 0x6b9: 0x3fac, 0x6ba: 0x3fb4, 0x6bb: 0xa000, - 0x6bc: 0x3fbc, 0x6bd: 0x3fc4, - // Block 0x1b, offset 0x6c0 - 0x6d4: 0x3efc, - 0x6d9: 0x9903, 0x6da: 0x9903, 0x6db: 0x8100, 0x6dc: 0x8100, 0x6dd: 0xa000, - 0x6de: 0x3fcc, - 0x6e6: 0xa000, - 0x6eb: 0xa000, 0x6ec: 0x3fdc, 0x6ed: 0xa000, 0x6ee: 0x3fe4, 0x6ef: 0xa000, - 0x6f0: 0x3fec, 0x6f1: 0xa000, 0x6f2: 0x3ff4, 0x6f3: 0xa000, 0x6f4: 0x3ffc, 0x6f5: 0xa000, - 0x6f6: 0x4004, 0x6f7: 0xa000, 0x6f8: 0x400c, 0x6f9: 0xa000, 0x6fa: 0x4014, 0x6fb: 0xa000, - 0x6fc: 0x401c, 0x6fd: 0xa000, 0x6fe: 0x4024, 0x6ff: 0xa000, - // Block 0x1c, offset 0x700 - 0x700: 0x402c, 0x701: 0xa000, 0x702: 0x4034, 0x704: 0xa000, 0x705: 0x403c, - 0x706: 0xa000, 0x707: 0x4044, 0x708: 0xa000, 0x709: 0x404c, - 0x70f: 0xa000, 0x710: 0x4054, 0x711: 0x405c, - 0x712: 0xa000, 0x713: 0x4064, 0x714: 0x406c, 0x715: 0xa000, 0x716: 0x4074, 0x717: 0x407c, - 0x718: 0xa000, 0x719: 0x4084, 0x71a: 0x408c, 0x71b: 0xa000, 0x71c: 0x4094, 0x71d: 0x409c, - 0x72f: 0xa000, - 0x730: 0xa000, 0x731: 0xa000, 0x732: 0xa000, 0x734: 0x3fd4, - 0x737: 0x40a4, 0x738: 0x40ac, 0x739: 0x40b4, 0x73a: 0x40bc, - 0x73d: 0xa000, 0x73e: 0x40c4, - // Block 0x1d, offset 0x740 - 0x740: 0x1377, 0x741: 0x0cfb, 0x742: 0x13d3, 0x743: 0x139f, 0x744: 0x0e57, 0x745: 0x06eb, - 0x746: 0x08df, 0x747: 0x1627, 0x748: 0x1627, 0x749: 0x0a0b, 0x74a: 0x145b, 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: 0x1443, 0x75a: 0x156f, 0x75b: 0x070f, 0x75c: 0x08b3, 0x75d: 0x0d87, - 0x75e: 0x0ecf, 0x75f: 0x1293, 0x760: 0x15bf, 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: 0x14eb, 0x779: 0x159f, 0x77a: 0x15bb, 0x77b: 0x102b, - 0x77c: 0x106b, 0x77d: 0x1123, 0x77e: 0x1243, 0x77f: 0x1477, - // Block 0x1e, offset 0x780 - 0x780: 0x15c7, 0x781: 0x134b, 0x782: 0x09c7, 0x783: 0x0b3b, 0x784: 0x10db, 0x785: 0x119b, - 0x786: 0x0eff, 0x787: 0x1033, 0x788: 0x1397, 0x789: 0x14e3, 0x78a: 0x09c3, 0x78b: 0x0a8f, - 0x78c: 0x0d77, 0x78d: 0x0e2b, 0x78e: 0x0e5f, 0x78f: 0x1113, 0x790: 0x113b, 0x791: 0x14a3, - 0x792: 0x084f, 0x793: 0x11a7, 0x794: 0x07f3, 0x795: 0x07ef, 0x796: 0x1097, 0x797: 0x1127, - 0x798: 0x125b, 0x799: 0x14ab, 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: 0x1457, 0x7bf: 0x085b, - // Block 0x1f, offset 0x7c0 - 0x7c0: 0x090f, 0x7c1: 0x0a17, 0x7c2: 0x0b2f, 0x7c3: 0x0cbf, 0x7c4: 0x0e7b, 0x7c5: 0x103f, - 0x7c6: 0x1493, 0x7c7: 0x1577, 0x7c8: 0x15cb, 0x7c9: 0x15e3, 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: 0x147b, 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: 0x145f, 0x7f2: 0x14df, 0x7f3: 0x14ef, 0x7f4: 0x152b, 0x7f5: 0x0753, - 0x7f6: 0x107f, 0x7f7: 0x144b, 0x7f8: 0x14c7, 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: 0x161f, 0x805: 0x0ce3, - 0x806: 0x149f, 0x807: 0x0833, 0x808: 0x0d2f, 0x809: 0x0d3b, 0x80a: 0x0e0f, 0x80b: 0x0e47, - 0x80c: 0x0f4b, 0x80d: 0x0fa7, 0x80e: 0x1027, 0x80f: 0x110b, 0x810: 0x1537, 0x811: 0x07af, - 0x812: 0x0c03, 0x813: 0x14af, 0x814: 0x0767, 0x815: 0x0aab, 0x816: 0x0e2f, 0x817: 0x13df, - 0x818: 0x0b67, 0x819: 0x0bb7, 0x81a: 0x0d43, 0x81b: 0x0f2f, 0x81c: 0x14b7, 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: 0x1453, - 0x82a: 0x14d3, 0x82b: 0x0883, 0x82c: 0x0e4b, 0x82d: 0x0903, 0x82e: 0x0ec7, 0x82f: 0x0f6b, - 0x830: 0x1287, 0x831: 0x14bb, 0x832: 0x15a7, 0x833: 0x15cf, 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: 0x14a7, 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: 0x14f7, 0x85d: 0x10eb, - 0x85e: 0x116f, 0x860: 0x128f, 0x862: 0x1353, - 0x865: 0x1407, 0x866: 0x1433, - 0x86a: 0x154b, 0x86b: 0x154f, 0x86c: 0x1553, 0x86d: 0x15b7, 0x86e: 0x142b, 0x86f: 0x14c3, - 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: 0x14d7, 0x8a9: 0x151b, - 0x8aa: 0x1533, 0x8ab: 0x0b9b, 0x8ac: 0x171a, 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: 0x1447, 0x905: 0x1467, - 0x906: 0x14b3, 0x907: 0x14d7, 0x908: 0x14f7, 0x909: 0x150b, 0x90a: 0x151b, 0x90b: 0x1527, - 0x90c: 0x1533, 0x90d: 0x1587, 0x90e: 0x1627, 0x90f: 0x16b1, 0x910: 0x16ac, 0x911: 0x16de, - 0x912: 0x0607, 0x913: 0x062f, 0x914: 0x0633, 0x915: 0x1760, 0x916: 0x178d, 0x917: 0x1805, - 0x918: 0x1613, 0x919: 0x1623, - // Block 0x25, offset 0x940 - 0x940: 0x06fb, 0x941: 0x06f3, 0x942: 0x0703, 0x943: 0x1643, 0x944: 0x0747, 0x945: 0x0757, - 0x946: 0x075b, 0x947: 0x0763, 0x948: 0x076b, 0x949: 0x076f, 0x94a: 0x077b, 0x94b: 0x0773, - 0x94c: 0x05b3, 0x94d: 0x1657, 0x94e: 0x078f, 0x94f: 0x0793, 0x950: 0x0797, 0x951: 0x07b3, - 0x952: 0x1648, 0x953: 0x05b7, 0x954: 0x079f, 0x955: 0x07bf, 0x956: 0x1652, 0x957: 0x07cf, - 0x958: 0x07d7, 0x959: 0x0737, 0x95a: 0x07df, 0x95b: 0x07e3, 0x95c: 0x182d, 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: 0x1666, 0x975: 0x0e93, - 0x976: 0x08cf, 0x977: 0x08d7, 0x978: 0x166b, 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: 0x1670, 0x99a: 0x09d7, 0x99b: 0x09db, 0x99c: 0x09e3, 0x99d: 0x09ef, - 0x99e: 0x09f7, 0x99f: 0x0a13, 0x9a0: 0x1675, 0x9a1: 0x167a, 0x9a2: 0x0a1f, 0x9a3: 0x0a23, - 0x9a4: 0x0a27, 0x9a5: 0x0a1b, 0x9a6: 0x0a2f, 0x9a7: 0x05c7, 0x9a8: 0x05cb, 0x9a9: 0x0a37, - 0x9aa: 0x0a3f, 0x9ab: 0x0a3f, 0x9ac: 0x167f, 0x9ad: 0x0a5b, 0x9ae: 0x0a5f, 0x9af: 0x0a63, - 0x9b0: 0x0a6b, 0x9b1: 0x1684, 0x9b2: 0x0a73, 0x9b3: 0x0a77, 0x9b4: 0x0b4f, 0x9b5: 0x0a7f, - 0x9b6: 0x05cf, 0x9b7: 0x0a8b, 0x9b8: 0x0a9b, 0x9b9: 0x0aa7, 0x9ba: 0x0aa3, 0x9bb: 0x168e, - 0x9bc: 0x0aaf, 0x9bd: 0x1693, 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: 0x1698, 0x9ca: 0x05db, 0x9cb: 0x0b0f, - 0x9cc: 0x0b13, 0x9cd: 0x0b17, 0x9ce: 0x0b1f, 0x9cf: 0x185f, 0x9d0: 0x0b37, 0x9d1: 0x16a2, - 0x9d2: 0x16a2, 0x9d3: 0x11d7, 0x9d4: 0x0b47, 0x9d5: 0x0b47, 0x9d6: 0x05df, 0x9d7: 0x16c5, - 0x9d8: 0x1797, 0x9d9: 0x0b57, 0x9da: 0x0b5f, 0x9db: 0x05e3, 0x9dc: 0x0b73, 0x9dd: 0x0b83, - 0x9de: 0x0b87, 0x9df: 0x0b8f, 0x9e0: 0x0b9f, 0x9e1: 0x05eb, 0x9e2: 0x05e7, 0x9e3: 0x0ba3, - 0x9e4: 0x16a7, 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: 0x16b6, 0x9f9: 0x0c3f, 0x9fa: 0x0c33, 0x9fb: 0x0c4b, - 0x9fc: 0x0c53, 0x9fd: 0x0c67, 0x9fe: 0x16bb, 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: 0x16c0, 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: 0x16d9, - 0xa1e: 0x0603, 0xa1f: 0x0d3f, 0xa20: 0x0d33, 0xa21: 0x0d4f, 0xa22: 0x0d57, 0xa23: 0x16e3, - 0xa24: 0x0d5b, 0xa25: 0x0d47, 0xa26: 0x0d63, 0xa27: 0x0607, 0xa28: 0x0d67, 0xa29: 0x0d6b, - 0xa2a: 0x0d6f, 0xa2b: 0x0d7b, 0xa2c: 0x16e8, 0xa2d: 0x0d83, 0xa2e: 0x060b, 0xa2f: 0x0d8f, - 0xa30: 0x16ed, 0xa31: 0x0d93, 0xa32: 0x060f, 0xa33: 0x0d9f, 0xa34: 0x0dab, 0xa35: 0x0db7, - 0xa36: 0x0dbb, 0xa37: 0x16f2, 0xa38: 0x1689, 0xa39: 0x16f7, 0xa3a: 0x0ddb, 0xa3b: 0x16fc, - 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: 0x1701, 0xa47: 0x0e07, 0xa48: 0x0e3b, 0xa49: 0x0e3f, 0xa4a: 0x0613, 0xa4b: 0x0e53, - 0xa4c: 0x0e4f, 0xa4d: 0x1706, 0xa4e: 0x0e33, 0xa4f: 0x0e6f, 0xa50: 0x170b, 0xa51: 0x1710, - 0xa52: 0x0e73, 0xa53: 0x0e87, 0xa54: 0x0e83, 0xa55: 0x0e7f, 0xa56: 0x0617, 0xa57: 0x0e8b, - 0xa58: 0x0e9b, 0xa59: 0x0e97, 0xa5a: 0x0ea3, 0xa5b: 0x164d, 0xa5c: 0x0eb3, 0xa5d: 0x1715, - 0xa5e: 0x0ebf, 0xa5f: 0x171f, 0xa60: 0x0ed3, 0xa61: 0x0edf, 0xa62: 0x0ef3, 0xa63: 0x1724, - 0xa64: 0x0f07, 0xa65: 0x0f0b, 0xa66: 0x1729, 0xa67: 0x172e, 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: 0x1733, - 0xa76: 0x0fa3, 0xa77: 0x1738, 0xa78: 0x0faf, 0xa79: 0x169d, 0xa7a: 0x0fbf, 0xa7b: 0x173d, - 0xa7c: 0x1742, 0xa7d: 0x1747, 0xa7e: 0x0627, 0xa7f: 0x062b, - // Block 0x2a, offset 0xa80 - 0xa80: 0x0ff7, 0xa81: 0x1751, 0xa82: 0x174c, 0xa83: 0x1756, 0xa84: 0x175b, 0xa85: 0x0fff, - 0xa86: 0x1003, 0xa87: 0x1003, 0xa88: 0x100b, 0xa89: 0x0633, 0xa8a: 0x100f, 0xa8b: 0x0637, - 0xa8c: 0x063b, 0xa8d: 0x1765, 0xa8e: 0x1023, 0xa8f: 0x102b, 0xa90: 0x1037, 0xa91: 0x063f, - 0xa92: 0x176a, 0xa93: 0x105b, 0xa94: 0x176f, 0xa95: 0x1774, 0xa96: 0x107b, 0xa97: 0x1093, - 0xa98: 0x0643, 0xa99: 0x109b, 0xa9a: 0x109f, 0xa9b: 0x10a3, 0xa9c: 0x1779, 0xa9d: 0x177e, - 0xa9e: 0x177e, 0xa9f: 0x10bb, 0xaa0: 0x0647, 0xaa1: 0x1783, 0xaa2: 0x10cf, 0xaa3: 0x10d3, - 0xaa4: 0x064b, 0xaa5: 0x1788, 0xaa6: 0x10ef, 0xaa7: 0x064f, 0xaa8: 0x10ff, 0xaa9: 0x10f7, - 0xaaa: 0x1107, 0xaab: 0x1792, 0xaac: 0x111f, 0xaad: 0x0653, 0xaae: 0x112b, 0xaaf: 0x1133, - 0xab0: 0x1143, 0xab1: 0x0657, 0xab2: 0x179c, 0xab3: 0x17a1, 0xab4: 0x065b, 0xab5: 0x17a6, - 0xab6: 0x115b, 0xab7: 0x17ab, 0xab8: 0x1167, 0xab9: 0x1173, 0xaba: 0x117b, 0xabb: 0x17b0, - 0xabc: 0x17b5, 0xabd: 0x118f, 0xabe: 0x17ba, 0xabf: 0x1197, - // Block 0x2b, offset 0xac0 - 0xac0: 0x16ca, 0xac1: 0x065f, 0xac2: 0x11af, 0xac3: 0x11b3, 0xac4: 0x0667, 0xac5: 0x11b7, - 0xac6: 0x0a33, 0xac7: 0x17bf, 0xac8: 0x17c4, 0xac9: 0x16cf, 0xaca: 0x16d4, 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: 0x17c9, - 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: 0x17ce, 0xae5: 0x17d8, 0xae6: 0x17d3, 0xae7: 0x066f, 0xae8: 0x126f, 0xae9: 0x1273, - 0xaea: 0x127b, 0xaeb: 0x17ec, 0xaec: 0x127f, 0xaed: 0x17dd, 0xaee: 0x0673, 0xaef: 0x0677, - 0xaf0: 0x17e2, 0xaf1: 0x17e7, 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: 0x17f1, - 0xb06: 0x12fb, 0xb07: 0x12ff, 0xb08: 0x0687, 0xb09: 0x130b, 0xb0a: 0x05bb, 0xb0b: 0x17f6, - 0xb0c: 0x17fb, 0xb0d: 0x068b, 0xb0e: 0x068f, 0xb0f: 0x1337, 0xb10: 0x134f, 0xb11: 0x136b, - 0xb12: 0x137b, 0xb13: 0x1800, 0xb14: 0x138f, 0xb15: 0x1393, 0xb16: 0x13ab, 0xb17: 0x13b7, - 0xb18: 0x180a, 0xb19: 0x165c, 0xb1a: 0x13c3, 0xb1b: 0x13bf, 0xb1c: 0x13cb, 0xb1d: 0x1661, - 0xb1e: 0x13d7, 0xb1f: 0x13e3, 0xb20: 0x180f, 0xb21: 0x1814, 0xb22: 0x1423, 0xb23: 0x142f, - 0xb24: 0x1437, 0xb25: 0x1819, 0xb26: 0x143b, 0xb27: 0x1463, 0xb28: 0x146f, 0xb29: 0x1473, - 0xb2a: 0x146b, 0xb2b: 0x147f, 0xb2c: 0x1483, 0xb2d: 0x181e, 0xb2e: 0x148f, 0xb2f: 0x0693, - 0xb30: 0x1497, 0xb31: 0x1823, 0xb32: 0x0697, 0xb33: 0x14cf, 0xb34: 0x0ac3, 0xb35: 0x14e7, - 0xb36: 0x1828, 0xb37: 0x1832, 0xb38: 0x069b, 0xb39: 0x069f, 0xb3a: 0x150f, 0xb3b: 0x1837, - 0xb3c: 0x06a3, 0xb3d: 0x183c, 0xb3e: 0x1527, 0xb3f: 0x1527, - // Block 0x2d, offset 0xb40 - 0xb40: 0x152f, 0xb41: 0x1841, 0xb42: 0x1547, 0xb43: 0x06a7, 0xb44: 0x1557, 0xb45: 0x1563, - 0xb46: 0x156b, 0xb47: 0x1573, 0xb48: 0x06ab, 0xb49: 0x1846, 0xb4a: 0x1587, 0xb4b: 0x15a3, - 0xb4c: 0x15af, 0xb4d: 0x06af, 0xb4e: 0x06b3, 0xb4f: 0x15b3, 0xb50: 0x184b, 0xb51: 0x06b7, - 0xb52: 0x1850, 0xb53: 0x1855, 0xb54: 0x185a, 0xb55: 0x15d7, 0xb56: 0x06bb, 0xb57: 0x15eb, - 0xb58: 0x15f3, 0xb59: 0x15f7, 0xb5a: 0x15ff, 0xb5b: 0x1607, 0xb5c: 0x160f, 0xb5d: 0x1864, -} - -// 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, - 0x392: 0xa8, 0x393: 0xa9, 0x396: 0xaa, 0x397: 0xab, - 0x398: 0x73, 0x39a: 0xac, 0x39c: 0xad, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xae, 0x3ec: 0xaf, - // Block 0x10, offset 0x400 - 0x432: 0xb0, - // Block 0x11, offset 0x440 - 0x445: 0xb1, 0x446: 0xb2, 0x447: 0xb3, - 0x449: 0xb4, - // Block 0x12, offset 0x480 - 0x4a3: 0xb5, - // Block 0x13, offset 0x4c0 - 0x4c8: 0xb6, - // 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: 139 entries, 278 bytes -var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x79, 0x81, 0x88, 0x8b, 0x92, 0x96, 0x9a, 0x9c, 0x9e, 0xa7, 0xab, 0xb2, 0xb7, 0xba, 0xc4, 0xc6, 0xcd, 0xd5, 0xd8, 0xda, 0xdc, 0xde, 0xe3, 0xf4, 0x100, 0x102, 0x108, 0x10a, 0x10c, 0x10e, 0x110, 0x112, 0x114, 0x117, 0x11a, 0x11c, 0x11f, 0x122, 0x126, 0x12b, 0x134, 0x136, 0x139, 0x13b, 0x146, 0x155, 0x159, 0x167, 0x16a, 0x170, 0x176, 0x181, 0x185, 0x187, 0x189, 0x18b, 0x18d, 0x18f, 0x195, 0x199, 0x19b, 0x19d, 0x1a5, 0x1a9, 0x1ac, 0x1ae, 0x1b0, 0x1b2, 0x1b5, 0x1b7, 0x1b9, 0x1bb, 0x1bd, 0x1c3, 0x1c6, 0x1c8, 0x1cf, 0x1d5, 0x1db, 0x1e3, 0x1e9, 0x1ef, 0x1f5, 0x1f9, 0x207, 0x210, 0x213, 0x216, 0x218, 0x21b, 0x21d, 0x221, 0x226, 0x228, 0x22a, 0x22f, 0x235, 0x237, 0x239, 0x23b, 0x241, 0x244, 0x247, 0x24f, 0x256, 0x259, 0x25c, 0x25e, 0x266, 0x26d, 0x270, 0x276, 0x278, 0x27b, 0x27d, 0x27f, 0x281, 0x283, 0x290, 0x29a, 0x29c, 0x29e, 0x2a0} - -// nfcSparseValues: 674 entries, 2696 bytes -var nfcSparseValues = [674]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: 0x4774, lo: 0xa0, hi: 0xa1}, - {value: 0x47a6, 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: 0x48d2, lo: 0x8a, hi: 0x8a}, - {value: 0x48f0, lo: 0x8b, hi: 0x8b}, - {value: 0x36c3, lo: 0x8c, hi: 0x8c}, - {value: 0x36db, lo: 0x8d, hi: 0x8d}, - {value: 0x4908, lo: 0x8e, hi: 0x8e}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x36f9, 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: 0x37a1, lo: 0x90, hi: 0x90}, - {value: 0x37ad, lo: 0x91, hi: 0x91}, - {value: 0x379b, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x3813, lo: 0x97, hi: 0x97}, - {value: 0x37dd, lo: 0x9c, hi: 0x9c}, - {value: 0x37c5, lo: 0x9d, hi: 0x9d}, - {value: 0x37ef, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x3819, lo: 0xb6, hi: 0xb6}, - {value: 0x381f, 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: 0x383d, lo: 0xa2, hi: 0xa2}, - {value: 0x3843, lo: 0xa3, hi: 0xa3}, - {value: 0x384f, lo: 0xa4, hi: 0xa4}, - {value: 0x3849, lo: 0xa5, hi: 0xa5}, - {value: 0x3855, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x9, offset 0x3a - {value: 0x0000, lo: 0x0e}, - {value: 0x3867, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x385b, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3861, 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: 0x0f}, - {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 0x79 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3ed4, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3edc, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3ee4, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0x11, offset 0x81 - {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: 0x45ae, lo: 0x98, hi: 0x9f}, - // Block 0x12, offset 0x88 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x13, offset 0x8b - {value: 0x0008, lo: 0x06}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2c9a, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x45ee, lo: 0x9c, hi: 0x9d}, - {value: 0x45fe, lo: 0x9f, hi: 0x9f}, - // Block 0x14, offset 0x92 - {value: 0x0000, lo: 0x03}, - {value: 0x4626, lo: 0xb3, hi: 0xb3}, - {value: 0x462e, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x15, offset 0x96 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4606, lo: 0x99, hi: 0x9b}, - {value: 0x461e, lo: 0x9e, hi: 0x9e}, - // Block 0x16, offset 0x9a - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x17, offset 0x9c - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x18, offset 0x9e - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb2, lo: 0x88, hi: 0x88}, - {value: 0x2caa, lo: 0x8b, hi: 0x8b}, - {value: 0x2cba, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x4636, lo: 0x9c, hi: 0x9c}, - {value: 0x463e, lo: 0x9d, hi: 0x9d}, - // Block 0x19, offset 0xa7 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc2, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1a, offset 0xab - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cca, lo: 0x8a, hi: 0x8a}, - {value: 0x2cda, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd2, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1b, offset 0xb2 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3eec, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1c, offset 0xb7 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1d, offset 0xba - {value: 0x0000, lo: 0x09}, - {value: 0x2ce2, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cea, lo: 0x87, hi: 0x87}, - {value: 0x2cf2, lo: 0x88, hi: 0x88}, - {value: 0x2f4c, lo: 0x8a, hi: 0x8a}, - {value: 0x2dd4, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1e, offset 0xc4 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1f, offset 0xc6 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cfa, lo: 0x8a, hi: 0x8a}, - {value: 0x2d0a, lo: 0x8b, hi: 0x8b}, - {value: 0x2d02, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x20, offset 0xcd - {value: 0x6bee, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3ef4, lo: 0x9a, hi: 0x9a}, - {value: 0x2f54, lo: 0x9c, hi: 0x9c}, - {value: 0x2ddf, lo: 0x9d, hi: 0x9d}, - {value: 0x2d12, lo: 0x9e, hi: 0x9f}, - // Block 0x21, offset 0xd5 - {value: 0x0000, lo: 0x02}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x22, offset 0xd8 - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x23, offset 0xda - {value: 0x0000, lo: 0x01}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - // Block 0x24, offset 0xdc - {value: 0x0000, lo: 0x01}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - // Block 0x25, offset 0xde - {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 0xe3 - {value: 0x0000, lo: 0x10}, - {value: 0x2640, lo: 0x83, hi: 0x83}, - {value: 0x2647, lo: 0x8d, hi: 0x8d}, - {value: 0x264e, lo: 0x92, hi: 0x92}, - {value: 0x2655, lo: 0x97, hi: 0x97}, - {value: 0x265c, lo: 0x9c, hi: 0x9c}, - {value: 0x2639, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a62, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a6b, lo: 0xb5, hi: 0xb5}, - {value: 0x4646, lo: 0xb6, hi: 0xb6}, - {value: 0x8200, lo: 0xb7, hi: 0xb7}, - {value: 0x464e, lo: 0xb8, hi: 0xb8}, - {value: 0x8200, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x27, offset 0xf4 - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a74, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x266a, lo: 0x93, hi: 0x93}, - {value: 0x2671, lo: 0x9d, hi: 0x9d}, - {value: 0x2678, lo: 0xa2, hi: 0xa2}, - {value: 0x267f, lo: 0xa7, hi: 0xa7}, - {value: 0x2686, lo: 0xac, hi: 0xac}, - {value: 0x2663, lo: 0xb9, hi: 0xb9}, - // Block 0x28, offset 0x100 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x29, offset 0x102 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d1a, 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 0x108 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x2b, offset 0x10a - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2c, offset 0x10c - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2d, offset 0x10e - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2e, offset 0x110 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2f, offset 0x112 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x30, offset 0x114 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x31, offset 0x117 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x32, offset 0x11a - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x33, offset 0x11c - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x34, offset 0x11f - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x35, offset 0x122 - {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 0x126 - {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 0x12b - {value: 0x0000, lo: 0x08}, - {value: 0x2d62, lo: 0x80, hi: 0x80}, - {value: 0x2d6a, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d72, 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 0x134 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x39, offset 0x136 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x3a, offset 0x139 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3b, offset 0x13b - {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 0x146 - {value: 0x0000, lo: 0x0e}, - {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: 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 0x155 - {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 0x159 - {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 0x167 - {value: 0x4277, lo: 0x02}, - {value: 0x01b8, lo: 0xa6, hi: 0xa6}, - {value: 0x0057, lo: 0xaa, hi: 0xab}, - // Block 0x40, offset 0x16a - {value: 0x0007, lo: 0x05}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bb5, lo: 0x9a, hi: 0x9b}, - {value: 0x3bc3, lo: 0xae, hi: 0xae}, - // Block 0x41, offset 0x170 - {value: 0x000e, lo: 0x05}, - {value: 0x3bca, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd1, 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 0x176 - {value: 0x640c, lo: 0x0a}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3bdf, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3be6, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bed, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bf4, lo: 0xa4, hi: 0xa5}, - {value: 0x3bfb, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x43, offset 0x181 - {value: 0x0007, lo: 0x03}, - {value: 0x3c64, lo: 0xa0, hi: 0xa1}, - {value: 0x3c8e, lo: 0xa2, hi: 0xa3}, - {value: 0x3cb8, lo: 0xaa, hi: 0xad}, - // Block 0x44, offset 0x185 - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x45, offset 0x187 - {value: 0x0000, lo: 0x01}, - {value: 0x456f, lo: 0x9c, hi: 0x9c}, - // Block 0x46, offset 0x189 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x47, offset 0x18b - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x48, offset 0x18d - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x49, offset 0x18f - {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 0x195 - {value: 0x0000, lo: 0x03}, - {value: 0x4a7d, lo: 0xb3, hi: 0xb3}, - {value: 0x4a7d, lo: 0xb5, hi: 0xb6}, - {value: 0x4a7d, lo: 0xba, hi: 0xbf}, - // Block 0x4b, offset 0x199 - {value: 0x0000, lo: 0x01}, - {value: 0x4a7d, lo: 0x8f, hi: 0xa3}, - // Block 0x4c, offset 0x19b - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xae, hi: 0xbe}, - // Block 0x4d, offset 0x19d - {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 0x1a5 - {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 0x1a9 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x50, offset 0x1ac - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9e, hi: 0x9f}, - // Block 0x51, offset 0x1ae - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x52, offset 0x1b0 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x53, offset 0x1b2 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x54, offset 0x1b5 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x55, offset 0x1b7 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x56, offset 0x1b9 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x57, offset 0x1bb - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x58, offset 0x1bd - {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 0x1c3 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x5a, offset 0x1c6 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x5b, offset 0x1c8 - {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 0x1cf - {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 0x1d5 - {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 0x1db - {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 0x1e3 - {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 0x1e9 - {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 0x1ef - {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 0x1f5 - {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 0x1f9 - {value: 0x0006, lo: 0x0d}, - {value: 0x4422, lo: 0x9d, hi: 0x9d}, - {value: 0x8115, lo: 0x9e, hi: 0x9e}, - {value: 0x4494, lo: 0x9f, hi: 0x9f}, - {value: 0x4482, lo: 0xaa, hi: 0xab}, - {value: 0x4586, lo: 0xac, hi: 0xac}, - {value: 0x458e, lo: 0xad, hi: 0xad}, - {value: 0x43da, lo: 0xae, hi: 0xb1}, - {value: 0x43f8, lo: 0xb2, hi: 0xb4}, - {value: 0x4410, lo: 0xb5, hi: 0xb6}, - {value: 0x441c, lo: 0xb8, hi: 0xb8}, - {value: 0x4428, lo: 0xb9, hi: 0xbb}, - {value: 0x4440, lo: 0xbc, hi: 0xbc}, - {value: 0x4446, lo: 0xbe, hi: 0xbe}, - // Block 0x64, offset 0x207 - {value: 0x0006, lo: 0x08}, - {value: 0x444c, lo: 0x80, hi: 0x81}, - {value: 0x4458, lo: 0x83, hi: 0x84}, - {value: 0x446a, lo: 0x86, hi: 0x89}, - {value: 0x448e, lo: 0x8a, hi: 0x8a}, - {value: 0x440a, lo: 0x8b, hi: 0x8b}, - {value: 0x43f2, lo: 0x8c, hi: 0x8c}, - {value: 0x443a, lo: 0x8d, hi: 0x8d}, - {value: 0x4464, lo: 0x8e, hi: 0x8e}, - // Block 0x65, offset 0x210 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0xa4, hi: 0xa5}, - {value: 0x8100, lo: 0xb0, hi: 0xb1}, - // Block 0x66, offset 0x213 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x9b, hi: 0x9d}, - {value: 0x8200, lo: 0x9e, hi: 0xa3}, - // Block 0x67, offset 0x216 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - // Block 0x68, offset 0x218 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x99, hi: 0x99}, - {value: 0x8200, lo: 0xb2, hi: 0xb4}, - // Block 0x69, offset 0x21b - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xbc, hi: 0xbd}, - // Block 0x6a, offset 0x21d - {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 0x221 - {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 0x226 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x81, hi: 0x8c}, - // Block 0x6d, offset 0x228 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xb5, hi: 0xba}, - // Block 0x6e, offset 0x22a - {value: 0x0000, lo: 0x04}, - {value: 0x4a7d, lo: 0x9e, hi: 0x9f}, - {value: 0x4a7d, lo: 0xa3, hi: 0xa3}, - {value: 0x4a7d, lo: 0xa5, hi: 0xa6}, - {value: 0x4a7d, lo: 0xaa, hi: 0xaf}, - // Block 0x6f, offset 0x22f - {value: 0x0000, lo: 0x05}, - {value: 0x4a7d, lo: 0x82, hi: 0x87}, - {value: 0x4a7d, lo: 0x8a, hi: 0x8f}, - {value: 0x4a7d, lo: 0x92, hi: 0x97}, - {value: 0x4a7d, lo: 0x9a, hi: 0x9c}, - {value: 0x8100, lo: 0xa3, hi: 0xa3}, - // Block 0x70, offset 0x235 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x71, offset 0x237 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x72, offset 0x239 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x73, offset 0x23b - {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 0x241 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x75, offset 0x244 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x76, offset 0x247 - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x4234, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x423e, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x4248, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x77, offset 0x24f - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d7a, lo: 0xae, hi: 0xae}, - {value: 0x2d84, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x78, offset 0x256 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x79, offset 0x259 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x7a, offset 0x25c - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x7b, offset 0x25e - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d8e, lo: 0x8b, hi: 0x8b}, - {value: 0x2d98, 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 0x266 - {value: 0x6b5e, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2dac, lo: 0xbb, hi: 0xbb}, - {value: 0x2da2, lo: 0xbc, hi: 0xbd}, - {value: 0x2db6, lo: 0xbe, hi: 0xbe}, - // Block 0x7d, offset 0x26d - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x7e, offset 0x270 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc0, lo: 0xba, hi: 0xba}, - {value: 0x2dca, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7f, offset 0x276 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x80, offset 0x278 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x81, offset 0x27b - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x82, offset 0x27d - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x83, offset 0x27f - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x84, offset 0x281 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x85, offset 0x283 - {value: 0x0000, lo: 0x0c}, - {value: 0x465e, lo: 0x9e, hi: 0x9e}, - {value: 0x4668, lo: 0x9f, hi: 0x9f}, - {value: 0x469c, lo: 0xa0, hi: 0xa0}, - {value: 0x46aa, lo: 0xa1, hi: 0xa1}, - {value: 0x46b8, lo: 0xa2, hi: 0xa2}, - {value: 0x46c6, lo: 0xa3, hi: 0xa3}, - {value: 0x46d4, 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 0x86, offset 0x290 - {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: 0x4672, lo: 0xbb, hi: 0xbb}, - {value: 0x467c, lo: 0xbc, hi: 0xbc}, - {value: 0x46e2, lo: 0xbd, hi: 0xbd}, - {value: 0x46fe, lo: 0xbe, hi: 0xbe}, - {value: 0x46f0, lo: 0xbf, hi: 0xbf}, - // Block 0x87, offset 0x29a - {value: 0x0000, lo: 0x01}, - {value: 0x470c, lo: 0x80, hi: 0x80}, - // Block 0x88, offset 0x29c - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x89, offset 0x29e - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0x8a, offset 0x2a0 - {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 < 0xC0: - 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 < 0xC0: - 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: 16932 bytes (16.54 KiB). Checksum: 30d032c1800b8f3e. -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: 0x2f6b, 0xc1: 0x2f70, 0xc2: 0x471a, 0xc3: 0x2f75, 0xc4: 0x4729, 0xc5: 0x472e, - 0xc6: 0xa000, 0xc7: 0x4738, 0xc8: 0x2fde, 0xc9: 0x2fe3, 0xca: 0x473d, 0xcb: 0x2ff7, - 0xcc: 0x306a, 0xcd: 0x306f, 0xce: 0x3074, 0xcf: 0x4751, 0xd1: 0x3100, - 0xd2: 0x3123, 0xd3: 0x3128, 0xd4: 0x475b, 0xd5: 0x4760, 0xd6: 0x476f, - 0xd8: 0xa000, 0xd9: 0x31af, 0xda: 0x31b4, 0xdb: 0x31b9, 0xdc: 0x47a1, 0xdd: 0x3231, - 0xe0: 0x3277, 0xe1: 0x327c, 0xe2: 0x47ab, 0xe3: 0x3281, - 0xe4: 0x47ba, 0xe5: 0x47bf, 0xe6: 0xa000, 0xe7: 0x47c9, 0xe8: 0x32ea, 0xe9: 0x32ef, - 0xea: 0x47ce, 0xeb: 0x3303, 0xec: 0x337b, 0xed: 0x3380, 0xee: 0x3385, 0xef: 0x47e2, - 0xf1: 0x3411, 0xf2: 0x3434, 0xf3: 0x3439, 0xf4: 0x47ec, 0xf5: 0x47f1, - 0xf6: 0x4800, 0xf8: 0xa000, 0xf9: 0x34c5, 0xfa: 0x34ca, 0xfb: 0x34cf, - 0xfc: 0x4832, 0xfd: 0x354c, 0xff: 0x3565, - // Block 0x4, offset 0x100 - 0x100: 0x2f7a, 0x101: 0x3286, 0x102: 0x471f, 0x103: 0x47b0, 0x104: 0x2f98, 0x105: 0x32a4, - 0x106: 0x2fac, 0x107: 0x32b8, 0x108: 0x2fb1, 0x109: 0x32bd, 0x10a: 0x2fb6, 0x10b: 0x32c2, - 0x10c: 0x2fbb, 0x10d: 0x32c7, 0x10e: 0x2fc5, 0x10f: 0x32d1, - 0x112: 0x4742, 0x113: 0x47d3, 0x114: 0x2fed, 0x115: 0x32f9, 0x116: 0x2ff2, 0x117: 0x32fe, - 0x118: 0x3010, 0x119: 0x331c, 0x11a: 0x3001, 0x11b: 0x330d, 0x11c: 0x3029, 0x11d: 0x3335, - 0x11e: 0x3033, 0x11f: 0x333f, 0x120: 0x3038, 0x121: 0x3344, 0x122: 0x3042, 0x123: 0x334e, - 0x124: 0x3047, 0x125: 0x3353, 0x128: 0x3079, 0x129: 0x338a, - 0x12a: 0x307e, 0x12b: 0x338f, 0x12c: 0x3083, 0x12d: 0x3394, 0x12e: 0x30a6, 0x12f: 0x33b2, - 0x130: 0x3088, 0x132: 0x1959, 0x133: 0x19e3, 0x134: 0x30b0, 0x135: 0x33bc, - 0x136: 0x30c4, 0x137: 0x33d5, 0x139: 0x30ce, 0x13a: 0x33df, 0x13b: 0x30d8, - 0x13c: 0x33e9, 0x13d: 0x30d3, 0x13e: 0x33e4, 0x13f: 0x1ba8, - // Block 0x5, offset 0x140 - 0x140: 0x1c30, 0x143: 0x30fb, 0x144: 0x340c, 0x145: 0x3114, - 0x146: 0x3425, 0x147: 0x310a, 0x148: 0x341b, 0x149: 0x1c58, - 0x14c: 0x4765, 0x14d: 0x47f6, 0x14e: 0x312d, 0x14f: 0x343e, 0x150: 0x3137, 0x151: 0x3448, - 0x154: 0x3155, 0x155: 0x3466, 0x156: 0x316e, 0x157: 0x347f, - 0x158: 0x315f, 0x159: 0x3470, 0x15a: 0x4788, 0x15b: 0x4819, 0x15c: 0x3178, 0x15d: 0x3489, - 0x15e: 0x3187, 0x15f: 0x3498, 0x160: 0x478d, 0x161: 0x481e, 0x162: 0x31a0, 0x163: 0x34b6, - 0x164: 0x3191, 0x165: 0x34a7, 0x168: 0x4797, 0x169: 0x4828, - 0x16a: 0x479c, 0x16b: 0x482d, 0x16c: 0x31be, 0x16d: 0x34d4, 0x16e: 0x31c8, 0x16f: 0x34de, - 0x170: 0x31cd, 0x171: 0x34e3, 0x172: 0x31eb, 0x173: 0x3501, 0x174: 0x320e, 0x175: 0x3524, - 0x176: 0x3236, 0x177: 0x3551, 0x178: 0x324a, 0x179: 0x3259, 0x17a: 0x3579, 0x17b: 0x3263, - 0x17c: 0x3583, 0x17d: 0x3268, 0x17e: 0x3588, 0x17f: 0x00a7, - // Block 0x6, offset 0x180 - 0x184: 0x2dea, 0x185: 0x2df0, - 0x186: 0x2df6, 0x187: 0x196e, 0x188: 0x1971, 0x189: 0x1a04, 0x18a: 0x1983, 0x18b: 0x1986, - 0x18c: 0x1a3a, 0x18d: 0x2f84, 0x18e: 0x3290, 0x18f: 0x3092, 0x190: 0x339e, 0x191: 0x313c, - 0x192: 0x344d, 0x193: 0x31d2, 0x194: 0x34e8, 0x195: 0x39cb, 0x196: 0x3b5a, 0x197: 0x39c4, - 0x198: 0x3b53, 0x199: 0x39d2, 0x19a: 0x3b61, 0x19b: 0x39bd, 0x19c: 0x3b4c, - 0x19e: 0x38ac, 0x19f: 0x3a3b, 0x1a0: 0x38a5, 0x1a1: 0x3a34, 0x1a2: 0x35af, 0x1a3: 0x35c1, - 0x1a6: 0x303d, 0x1a7: 0x3349, 0x1a8: 0x30ba, 0x1a9: 0x33cb, - 0x1aa: 0x477e, 0x1ab: 0x480f, 0x1ac: 0x398c, 0x1ad: 0x3b1b, 0x1ae: 0x35d3, 0x1af: 0x35d9, - 0x1b0: 0x33c1, 0x1b1: 0x193e, 0x1b2: 0x1941, 0x1b3: 0x19cb, 0x1b4: 0x3024, 0x1b5: 0x3330, - 0x1b8: 0x30f6, 0x1b9: 0x3407, 0x1ba: 0x38b3, 0x1bb: 0x3a42, - 0x1bc: 0x35a9, 0x1bd: 0x35bb, 0x1be: 0x35b5, 0x1bf: 0x35c7, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f89, 0x1c1: 0x3295, 0x1c2: 0x2f8e, 0x1c3: 0x329a, 0x1c4: 0x3006, 0x1c5: 0x3312, - 0x1c6: 0x300b, 0x1c7: 0x3317, 0x1c8: 0x3097, 0x1c9: 0x33a3, 0x1ca: 0x309c, 0x1cb: 0x33a8, - 0x1cc: 0x3141, 0x1cd: 0x3452, 0x1ce: 0x3146, 0x1cf: 0x3457, 0x1d0: 0x3164, 0x1d1: 0x3475, - 0x1d2: 0x3169, 0x1d3: 0x347a, 0x1d4: 0x31d7, 0x1d5: 0x34ed, 0x1d6: 0x31dc, 0x1d7: 0x34f2, - 0x1d8: 0x3182, 0x1d9: 0x3493, 0x1da: 0x319b, 0x1db: 0x34b1, - 0x1de: 0x3056, 0x1df: 0x3362, - 0x1e6: 0x4724, 0x1e7: 0x47b5, 0x1e8: 0x474c, 0x1e9: 0x47dd, - 0x1ea: 0x395b, 0x1eb: 0x3aea, 0x1ec: 0x3938, 0x1ed: 0x3ac7, 0x1ee: 0x476a, 0x1ef: 0x47fb, - 0x1f0: 0x3954, 0x1f1: 0x3ae3, 0x1f2: 0x3240, 0x1f3: 0x355b, - // 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: 0x4a40, 0x241: 0x4a45, 0x242: 0x9932, 0x243: 0x4a4a, 0x244: 0x4a4f, 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: 0x42a1, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x4256, 0x285: 0x450d, - 0x286: 0x35e5, 0x287: 0x00ce, 0x288: 0x3603, 0x289: 0x360f, 0x28a: 0x3621, - 0x28c: 0x363f, 0x28e: 0x3651, 0x28f: 0x366f, 0x290: 0x3e04, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x3633, 0x2ab: 0x3663, 0x2ac: 0x4890, 0x2ad: 0x3693, 0x2ae: 0x48ba, 0x2af: 0x36a5, - 0x2b0: 0x3e6c, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c1: 0xa000, 0x2c5: 0xa000, - 0x2c9: 0xa000, 0x2ca: 0x48d2, 0x2cb: 0x48f0, - 0x2cc: 0x36c3, 0x2cd: 0x36db, 0x2ce: 0x4908, 0x2d0: 0x01be, 0x2d1: 0x01d0, - 0x2d2: 0x01ac, 0x2d3: 0x439e, 0x2d4: 0x43a4, 0x2d5: 0x01fa, 0x2d6: 0x01e8, - 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, - 0x2f9: 0x01a6, - // Block 0xc, offset 0x300 - 0x300: 0x371d, 0x301: 0x3729, 0x303: 0x3717, - 0x306: 0xa000, 0x307: 0x3705, - 0x30c: 0x3759, 0x30d: 0x3741, 0x30e: 0x376b, 0x310: 0xa000, - 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, - 0x318: 0xa000, 0x319: 0x374d, 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: 0x37d1, 0x33a: 0xa000, - 0x33e: 0xa000, - // Block 0xd, offset 0x340 - 0x341: 0x372f, 0x342: 0x37b3, - 0x350: 0x370b, 0x351: 0x378f, - 0x352: 0x3711, 0x353: 0x3795, 0x356: 0x3723, 0x357: 0x37a7, - 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3825, 0x35b: 0x382b, 0x35c: 0x3735, 0x35d: 0x37b9, - 0x35e: 0x373b, 0x35f: 0x37bf, 0x362: 0x3747, 0x363: 0x37cb, - 0x364: 0x3753, 0x365: 0x37d7, 0x366: 0x375f, 0x367: 0x37e3, 0x368: 0xa000, 0x369: 0xa000, - 0x36a: 0x3831, 0x36b: 0x3837, 0x36c: 0x3789, 0x36d: 0x380d, 0x36e: 0x3765, 0x36f: 0x37e9, - 0x370: 0x3771, 0x371: 0x37f5, 0x372: 0x3777, 0x373: 0x37fb, 0x374: 0x377d, 0x375: 0x3801, - 0x378: 0x3783, 0x379: 0x3807, - // Block 0xe, offset 0x380 - 0x387: 0x1d5d, - 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: 0x1d80, - 0x3f6: 0x200f, 0x3f7: 0x204b, 0x3f8: 0x2046, - // Block 0x10, offset 0x400 - 0x405: 0xa000, - 0x406: 0x2d22, 0x407: 0xa000, 0x408: 0x2d2a, 0x409: 0xa000, 0x40a: 0x2d32, 0x40b: 0xa000, - 0x40c: 0x2d3a, 0x40d: 0xa000, 0x40e: 0x2d42, 0x411: 0xa000, - 0x412: 0x2d4a, - 0x434: 0x8102, 0x435: 0x9900, - 0x43a: 0xa000, 0x43b: 0x2d52, - 0x43c: 0xa000, 0x43d: 0x2d5a, 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: 0x2f93, 0x4c1: 0x329f, 0x4c2: 0x2f9d, 0x4c3: 0x32a9, 0x4c4: 0x2fa2, 0x4c5: 0x32ae, - 0x4c6: 0x2fa7, 0x4c7: 0x32b3, 0x4c8: 0x38c8, 0x4c9: 0x3a57, 0x4ca: 0x2fc0, 0x4cb: 0x32cc, - 0x4cc: 0x2fca, 0x4cd: 0x32d6, 0x4ce: 0x2fd9, 0x4cf: 0x32e5, 0x4d0: 0x2fcf, 0x4d1: 0x32db, - 0x4d2: 0x2fd4, 0x4d3: 0x32e0, 0x4d4: 0x38eb, 0x4d5: 0x3a7a, 0x4d6: 0x38f2, 0x4d7: 0x3a81, - 0x4d8: 0x3015, 0x4d9: 0x3321, 0x4da: 0x301a, 0x4db: 0x3326, 0x4dc: 0x3900, 0x4dd: 0x3a8f, - 0x4de: 0x301f, 0x4df: 0x332b, 0x4e0: 0x302e, 0x4e1: 0x333a, 0x4e2: 0x304c, 0x4e3: 0x3358, - 0x4e4: 0x305b, 0x4e5: 0x3367, 0x4e6: 0x3051, 0x4e7: 0x335d, 0x4e8: 0x3060, 0x4e9: 0x336c, - 0x4ea: 0x3065, 0x4eb: 0x3371, 0x4ec: 0x30ab, 0x4ed: 0x33b7, 0x4ee: 0x3907, 0x4ef: 0x3a96, - 0x4f0: 0x30b5, 0x4f1: 0x33c6, 0x4f2: 0x30bf, 0x4f3: 0x33d0, 0x4f4: 0x30c9, 0x4f5: 0x33da, - 0x4f6: 0x4756, 0x4f7: 0x47e7, 0x4f8: 0x390e, 0x4f9: 0x3a9d, 0x4fa: 0x30e2, 0x4fb: 0x33f3, - 0x4fc: 0x30dd, 0x4fd: 0x33ee, 0x4fe: 0x30e7, 0x4ff: 0x33f8, - // Block 0x14, offset 0x500 - 0x500: 0x30ec, 0x501: 0x33fd, 0x502: 0x30f1, 0x503: 0x3402, 0x504: 0x3105, 0x505: 0x3416, - 0x506: 0x310f, 0x507: 0x3420, 0x508: 0x311e, 0x509: 0x342f, 0x50a: 0x3119, 0x50b: 0x342a, - 0x50c: 0x3931, 0x50d: 0x3ac0, 0x50e: 0x393f, 0x50f: 0x3ace, 0x510: 0x3946, 0x511: 0x3ad5, - 0x512: 0x394d, 0x513: 0x3adc, 0x514: 0x314b, 0x515: 0x345c, 0x516: 0x3150, 0x517: 0x3461, - 0x518: 0x315a, 0x519: 0x346b, 0x51a: 0x4783, 0x51b: 0x4814, 0x51c: 0x3993, 0x51d: 0x3b22, - 0x51e: 0x3173, 0x51f: 0x3484, 0x520: 0x317d, 0x521: 0x348e, 0x522: 0x4792, 0x523: 0x4823, - 0x524: 0x399a, 0x525: 0x3b29, 0x526: 0x39a1, 0x527: 0x3b30, 0x528: 0x39a8, 0x529: 0x3b37, - 0x52a: 0x318c, 0x52b: 0x349d, 0x52c: 0x3196, 0x52d: 0x34ac, 0x52e: 0x31aa, 0x52f: 0x34c0, - 0x530: 0x31a5, 0x531: 0x34bb, 0x532: 0x31e6, 0x533: 0x34fc, 0x534: 0x31f5, 0x535: 0x350b, - 0x536: 0x31f0, 0x537: 0x3506, 0x538: 0x39af, 0x539: 0x3b3e, 0x53a: 0x39b6, 0x53b: 0x3b45, - 0x53c: 0x31fa, 0x53d: 0x3510, 0x53e: 0x31ff, 0x53f: 0x3515, - // Block 0x15, offset 0x540 - 0x540: 0x3204, 0x541: 0x351a, 0x542: 0x3209, 0x543: 0x351f, 0x544: 0x3218, 0x545: 0x352e, - 0x546: 0x3213, 0x547: 0x3529, 0x548: 0x321d, 0x549: 0x3538, 0x54a: 0x3222, 0x54b: 0x353d, - 0x54c: 0x3227, 0x54d: 0x3542, 0x54e: 0x3245, 0x54f: 0x3560, 0x550: 0x325e, 0x551: 0x357e, - 0x552: 0x326d, 0x553: 0x358d, 0x554: 0x3272, 0x555: 0x3592, 0x556: 0x3376, 0x557: 0x34a2, - 0x558: 0x3533, 0x559: 0x356f, 0x55a: 0x1bdc, 0x55b: 0x42d3, - 0x560: 0x4733, 0x561: 0x47c4, 0x562: 0x2f7f, 0x563: 0x328b, - 0x564: 0x3874, 0x565: 0x3a03, 0x566: 0x386d, 0x567: 0x39fc, 0x568: 0x3882, 0x569: 0x3a11, - 0x56a: 0x387b, 0x56b: 0x3a0a, 0x56c: 0x38ba, 0x56d: 0x3a49, 0x56e: 0x3890, 0x56f: 0x3a1f, - 0x570: 0x3889, 0x571: 0x3a18, 0x572: 0x389e, 0x573: 0x3a2d, 0x574: 0x3897, 0x575: 0x3a26, - 0x576: 0x38c1, 0x577: 0x3a50, 0x578: 0x4747, 0x579: 0x47d8, 0x57a: 0x2ffc, 0x57b: 0x3308, - 0x57c: 0x2fe8, 0x57d: 0x32f4, 0x57e: 0x38d6, 0x57f: 0x3a65, - // Block 0x16, offset 0x580 - 0x580: 0x38cf, 0x581: 0x3a5e, 0x582: 0x38e4, 0x583: 0x3a73, 0x584: 0x38dd, 0x585: 0x3a6c, - 0x586: 0x38f9, 0x587: 0x3a88, 0x588: 0x308d, 0x589: 0x3399, 0x58a: 0x30a1, 0x58b: 0x33ad, - 0x58c: 0x4779, 0x58d: 0x480a, 0x58e: 0x3132, 0x58f: 0x3443, 0x590: 0x391c, 0x591: 0x3aab, - 0x592: 0x3915, 0x593: 0x3aa4, 0x594: 0x392a, 0x595: 0x3ab9, 0x596: 0x3923, 0x597: 0x3ab2, - 0x598: 0x3985, 0x599: 0x3b14, 0x59a: 0x3969, 0x59b: 0x3af8, 0x59c: 0x3962, 0x59d: 0x3af1, - 0x59e: 0x3977, 0x59f: 0x3b06, 0x5a0: 0x3970, 0x5a1: 0x3aff, 0x5a2: 0x397e, 0x5a3: 0x3b0d, - 0x5a4: 0x31e1, 0x5a5: 0x34f7, 0x5a6: 0x31c3, 0x5a7: 0x34d9, 0x5a8: 0x39e0, 0x5a9: 0x3b6f, - 0x5aa: 0x39d9, 0x5ab: 0x3b68, 0x5ac: 0x39ee, 0x5ad: 0x3b7d, 0x5ae: 0x39e7, 0x5af: 0x3b76, - 0x5b0: 0x39f5, 0x5b1: 0x3b84, 0x5b2: 0x322c, 0x5b3: 0x3547, 0x5b4: 0x3254, 0x5b5: 0x3574, - 0x5b6: 0x324f, 0x5b7: 0x356a, 0x5b8: 0x323b, 0x5b9: 0x3556, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x4896, 0x5c1: 0x489c, 0x5c2: 0x49b0, 0x5c3: 0x49c8, 0x5c4: 0x49b8, 0x5c5: 0x49d0, - 0x5c6: 0x49c0, 0x5c7: 0x49d8, 0x5c8: 0x483c, 0x5c9: 0x4842, 0x5ca: 0x4920, 0x5cb: 0x4938, - 0x5cc: 0x4928, 0x5cd: 0x4940, 0x5ce: 0x4930, 0x5cf: 0x4948, 0x5d0: 0x48a8, 0x5d1: 0x48ae, - 0x5d2: 0x3db4, 0x5d3: 0x3dc4, 0x5d4: 0x3dbc, 0x5d5: 0x3dcc, - 0x5d8: 0x4848, 0x5d9: 0x484e, 0x5da: 0x3ce4, 0x5db: 0x3cf4, 0x5dc: 0x3cec, 0x5dd: 0x3cfc, - 0x5e0: 0x48c0, 0x5e1: 0x48c6, 0x5e2: 0x49e0, 0x5e3: 0x49f8, - 0x5e4: 0x49e8, 0x5e5: 0x4a00, 0x5e6: 0x49f0, 0x5e7: 0x4a08, 0x5e8: 0x4854, 0x5e9: 0x485a, - 0x5ea: 0x4950, 0x5eb: 0x4968, 0x5ec: 0x4958, 0x5ed: 0x4970, 0x5ee: 0x4960, 0x5ef: 0x4978, - 0x5f0: 0x48d8, 0x5f1: 0x48de, 0x5f2: 0x3e14, 0x5f3: 0x3e2c, 0x5f4: 0x3e1c, 0x5f5: 0x3e34, - 0x5f6: 0x3e24, 0x5f7: 0x3e3c, 0x5f8: 0x4860, 0x5f9: 0x4866, 0x5fa: 0x3d14, 0x5fb: 0x3d2c, - 0x5fc: 0x3d1c, 0x5fd: 0x3d34, 0x5fe: 0x3d24, 0x5ff: 0x3d3c, - // Block 0x18, offset 0x600 - 0x600: 0x48e4, 0x601: 0x48ea, 0x602: 0x3e44, 0x603: 0x3e54, 0x604: 0x3e4c, 0x605: 0x3e5c, - 0x608: 0x486c, 0x609: 0x4872, 0x60a: 0x3d44, 0x60b: 0x3d54, - 0x60c: 0x3d4c, 0x60d: 0x3d5c, 0x610: 0x48f6, 0x611: 0x48fc, - 0x612: 0x3e7c, 0x613: 0x3e94, 0x614: 0x3e84, 0x615: 0x3e9c, 0x616: 0x3e8c, 0x617: 0x3ea4, - 0x619: 0x4878, 0x61b: 0x3d64, 0x61d: 0x3d6c, - 0x61f: 0x3d74, 0x620: 0x490e, 0x621: 0x4914, 0x622: 0x4a10, 0x623: 0x4a28, - 0x624: 0x4a18, 0x625: 0x4a30, 0x626: 0x4a20, 0x627: 0x4a38, 0x628: 0x487e, 0x629: 0x4884, - 0x62a: 0x4980, 0x62b: 0x4998, 0x62c: 0x4988, 0x62d: 0x49a0, 0x62e: 0x4990, 0x62f: 0x49a8, - 0x630: 0x488a, 0x631: 0x43b0, 0x632: 0x368d, 0x633: 0x43b6, 0x634: 0x48b4, 0x635: 0x43bc, - 0x636: 0x369f, 0x637: 0x43c2, 0x638: 0x36bd, 0x639: 0x43c8, 0x63a: 0x36d5, 0x63b: 0x43ce, - 0x63c: 0x4902, 0x63d: 0x43d4, - // Block 0x19, offset 0x640 - 0x640: 0x3d9c, 0x641: 0x3da4, 0x642: 0x4180, 0x643: 0x419e, 0x644: 0x418a, 0x645: 0x41a8, - 0x646: 0x4194, 0x647: 0x41b2, 0x648: 0x3cd4, 0x649: 0x3cdc, 0x64a: 0x40cc, 0x64b: 0x40ea, - 0x64c: 0x40d6, 0x64d: 0x40f4, 0x64e: 0x40e0, 0x64f: 0x40fe, 0x650: 0x3de4, 0x651: 0x3dec, - 0x652: 0x41bc, 0x653: 0x41da, 0x654: 0x41c6, 0x655: 0x41e4, 0x656: 0x41d0, 0x657: 0x41ee, - 0x658: 0x3d04, 0x659: 0x3d0c, 0x65a: 0x4108, 0x65b: 0x4126, 0x65c: 0x4112, 0x65d: 0x4130, - 0x65e: 0x411c, 0x65f: 0x413a, 0x660: 0x3ebc, 0x661: 0x3ec4, 0x662: 0x41f8, 0x663: 0x4216, - 0x664: 0x4202, 0x665: 0x4220, 0x666: 0x420c, 0x667: 0x422a, 0x668: 0x3d7c, 0x669: 0x3d84, - 0x66a: 0x4144, 0x66b: 0x4162, 0x66c: 0x414e, 0x66d: 0x416c, 0x66e: 0x4158, 0x66f: 0x4176, - 0x670: 0x3681, 0x671: 0x367b, 0x672: 0x3d8c, 0x673: 0x3687, 0x674: 0x3d94, - 0x676: 0x48a2, 0x677: 0x3dac, 0x678: 0x35f1, 0x679: 0x35eb, 0x67a: 0x35df, 0x67b: 0x4380, - 0x67c: 0x35f7, 0x67d: 0x4283, 0x67e: 0x01d3, 0x67f: 0x4283, - // Block 0x1a, offset 0x680 - 0x680: 0x429c, 0x681: 0x4514, 0x682: 0x3dd4, 0x683: 0x3699, 0x684: 0x3ddc, - 0x686: 0x48cc, 0x687: 0x3df4, 0x688: 0x35fd, 0x689: 0x4386, 0x68a: 0x3609, 0x68b: 0x438c, - 0x68c: 0x3615, 0x68d: 0x451b, 0x68e: 0x4522, 0x68f: 0x4529, 0x690: 0x36b1, 0x691: 0x36ab, - 0x692: 0x3dfc, 0x693: 0x4576, 0x696: 0x36b7, 0x697: 0x3e0c, - 0x698: 0x362d, 0x699: 0x3627, 0x69a: 0x361b, 0x69b: 0x4392, 0x69d: 0x4530, - 0x69e: 0x4537, 0x69f: 0x453e, 0x6a0: 0x36e7, 0x6a1: 0x36e1, 0x6a2: 0x3e64, 0x6a3: 0x457e, - 0x6a4: 0x36c9, 0x6a5: 0x36cf, 0x6a6: 0x36ed, 0x6a7: 0x3e74, 0x6a8: 0x365d, 0x6a9: 0x3657, - 0x6aa: 0x364b, 0x6ab: 0x439e, 0x6ac: 0x3645, 0x6ad: 0x4506, 0x6ae: 0x450d, 0x6af: 0x0081, - 0x6b2: 0x3eac, 0x6b3: 0x36f3, 0x6b4: 0x3eb4, - 0x6b6: 0x491a, 0x6b7: 0x3ecc, 0x6b8: 0x3639, 0x6b9: 0x4398, 0x6ba: 0x3669, 0x6bb: 0x43aa, - 0x6bc: 0x3675, 0x6bd: 0x4256, 0x6be: 0x4288, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x1bd4, 0x6c1: 0x1bd8, 0x6c2: 0x0047, 0x6c3: 0x1c50, 0x6c5: 0x1be4, - 0x6c6: 0x1be8, 0x6c7: 0x00e9, 0x6c9: 0x1c54, 0x6ca: 0x008f, 0x6cb: 0x0051, - 0x6cc: 0x0051, 0x6cd: 0x0051, 0x6ce: 0x0091, 0x6cf: 0x00da, 0x6d0: 0x0053, 0x6d1: 0x0053, - 0x6d2: 0x0059, 0x6d3: 0x0099, 0x6d5: 0x005d, 0x6d6: 0x1989, - 0x6d9: 0x0061, 0x6da: 0x0063, 0x6db: 0x0065, 0x6dc: 0x0065, 0x6dd: 0x0065, - 0x6e0: 0x199b, 0x6e1: 0x1bc4, 0x6e2: 0x19a4, - 0x6e4: 0x0075, 0x6e6: 0x01b8, 0x6e8: 0x0075, - 0x6ea: 0x0057, 0x6eb: 0x42ce, 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: 0x1b94, - 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: 0x222a, 0x711: 0x2236, - 0x712: 0x22ea, 0x713: 0x2212, 0x714: 0x2296, 0x715: 0x221e, 0x716: 0x229c, 0x717: 0x22b4, - 0x718: 0x22c0, 0x719: 0x2224, 0x71a: 0x22c6, 0x71b: 0x2230, 0x71c: 0x22ba, 0x71d: 0x22cc, - 0x71e: 0x22d2, 0x71f: 0x1cb8, 0x720: 0x0053, 0x721: 0x1956, 0x722: 0x1ba0, 0x723: 0x195f, - 0x724: 0x006d, 0x725: 0x19a7, 0x726: 0x1bcc, 0x727: 0x1d44, 0x728: 0x1962, 0x729: 0x0071, - 0x72a: 0x19b3, 0x72b: 0x1bd0, 0x72c: 0x0059, 0x72d: 0x0047, 0x72e: 0x0049, 0x72f: 0x005b, - 0x730: 0x0093, 0x731: 0x19e0, 0x732: 0x1c14, 0x733: 0x19e9, 0x734: 0x00ad, 0x735: 0x1a5e, - 0x736: 0x1c48, 0x737: 0x1d58, 0x738: 0x19ec, 0x739: 0x00b1, 0x73a: 0x1a61, 0x73b: 0x1c4c, - 0x73c: 0x0099, 0x73d: 0x0087, 0x73e: 0x0089, 0x73f: 0x009b, - // Block 0x1d, offset 0x740 - 0x741: 0x3c02, 0x743: 0xa000, 0x744: 0x3c09, 0x745: 0xa000, - 0x747: 0x3c10, 0x748: 0xa000, 0x749: 0x3c17, - 0x74d: 0xa000, - 0x760: 0x2f61, 0x761: 0xa000, 0x762: 0x3c25, - 0x764: 0xa000, 0x765: 0xa000, - 0x76d: 0x3c1e, 0x76e: 0x2f5c, 0x76f: 0x2f66, - 0x770: 0x3c2c, 0x771: 0x3c33, 0x772: 0xa000, 0x773: 0xa000, 0x774: 0x3c3a, 0x775: 0x3c41, - 0x776: 0xa000, 0x777: 0xa000, 0x778: 0x3c48, 0x779: 0x3c4f, 0x77a: 0xa000, 0x77b: 0xa000, - 0x77c: 0xa000, 0x77d: 0xa000, - // Block 0x1e, offset 0x780 - 0x780: 0x3c56, 0x781: 0x3c5d, 0x782: 0xa000, 0x783: 0xa000, 0x784: 0x3c72, 0x785: 0x3c79, - 0x786: 0xa000, 0x787: 0xa000, 0x788: 0x3c80, 0x789: 0x3c87, - 0x791: 0xa000, - 0x792: 0xa000, - 0x7a2: 0xa000, - 0x7a8: 0xa000, 0x7a9: 0xa000, - 0x7ab: 0xa000, 0x7ac: 0x3c9c, 0x7ad: 0x3ca3, 0x7ae: 0x3caa, 0x7af: 0x3cb1, - 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: 0x187e, - 0x7ea: 0x1881, 0x7eb: 0x1884, 0x7ec: 0x1887, 0x7ed: 0x188a, 0x7ee: 0x188d, 0x7ef: 0x1890, - 0x7f0: 0x1893, 0x7f1: 0x1896, 0x7f2: 0x1899, 0x7f3: 0x18a2, 0x7f4: 0x1a64, 0x7f5: 0x1a68, - 0x7f6: 0x1a6c, 0x7f7: 0x1a70, 0x7f8: 0x1a74, 0x7f9: 0x1a78, 0x7fa: 0x1a7c, 0x7fb: 0x1a80, - 0x7fc: 0x1a84, 0x7fd: 0x1c7c, 0x7fe: 0x1c81, 0x7ff: 0x1c86, - // Block 0x20, offset 0x800 - 0x800: 0x1c8b, 0x801: 0x1c90, 0x802: 0x1c95, 0x803: 0x1c9a, 0x804: 0x1c9f, 0x805: 0x1ca4, - 0x806: 0x1ca9, 0x807: 0x1cae, 0x808: 0x187b, 0x809: 0x189f, 0x80a: 0x18c3, 0x80b: 0x18e7, - 0x80c: 0x190b, 0x80d: 0x1914, 0x80e: 0x191a, 0x80f: 0x1920, 0x810: 0x1926, 0x811: 0x1b5c, - 0x812: 0x1b60, 0x813: 0x1b64, 0x814: 0x1b68, 0x815: 0x1b6c, 0x816: 0x1b70, 0x817: 0x1b74, - 0x818: 0x1b78, 0x819: 0x1b7c, 0x81a: 0x1b80, 0x81b: 0x1b84, 0x81c: 0x1af0, 0x81d: 0x1af4, - 0x81e: 0x1af8, 0x81f: 0x1afc, 0x820: 0x1b00, 0x821: 0x1b04, 0x822: 0x1b08, 0x823: 0x1b0c, - 0x824: 0x1b10, 0x825: 0x1b14, 0x826: 0x1b18, 0x827: 0x1b1c, 0x828: 0x1b20, 0x829: 0x1b24, - 0x82a: 0x1b28, 0x82b: 0x1b2c, 0x82c: 0x1b30, 0x82d: 0x1b34, 0x82e: 0x1b38, 0x82f: 0x1b3c, - 0x830: 0x1b40, 0x831: 0x1b44, 0x832: 0x1b48, 0x833: 0x1b4c, 0x834: 0x1b50, 0x835: 0x1b54, - 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: 0x144f, 0x8e5: 0x1453, 0x8e6: 0x145b, 0x8e7: 0x1487, 0x8e8: 0x148b, 0x8e9: 0x149b, - 0x8ea: 0x14bf, 0x8eb: 0x14cb, 0x8ec: 0x14db, 0x8ed: 0x14f3, 0x8ee: 0x14fb, 0x8ef: 0x14ff, - 0x8f0: 0x1503, 0x8f1: 0x1507, 0x8f2: 0x1513, 0x8f3: 0x1517, 0x8f4: 0x151f, 0x8f5: 0x153b, - 0x8f6: 0x153f, 0x8f7: 0x1543, 0x8f8: 0x155b, 0x8f9: 0x155f, 0x8fa: 0x1567, 0x8fb: 0x157b, - 0x8fc: 0x157f, 0x8fd: 0x1583, 0x8fe: 0x158b, 0x8ff: 0x158f, - // Block 0x24, offset 0x900 - 0x906: 0xa000, 0x90b: 0xa000, - 0x90c: 0x3f04, 0x90d: 0xa000, 0x90e: 0x3f0c, 0x90f: 0xa000, 0x910: 0x3f14, 0x911: 0xa000, - 0x912: 0x3f1c, 0x913: 0xa000, 0x914: 0x3f24, 0x915: 0xa000, 0x916: 0x3f2c, 0x917: 0xa000, - 0x918: 0x3f34, 0x919: 0xa000, 0x91a: 0x3f3c, 0x91b: 0xa000, 0x91c: 0x3f44, 0x91d: 0xa000, - 0x91e: 0x3f4c, 0x91f: 0xa000, 0x920: 0x3f54, 0x921: 0xa000, 0x922: 0x3f5c, - 0x924: 0xa000, 0x925: 0x3f64, 0x926: 0xa000, 0x927: 0x3f6c, 0x928: 0xa000, 0x929: 0x3f74, - 0x92f: 0xa000, - 0x930: 0x3f7c, 0x931: 0x3f84, 0x932: 0xa000, 0x933: 0x3f8c, 0x934: 0x3f94, 0x935: 0xa000, - 0x936: 0x3f9c, 0x937: 0x3fa4, 0x938: 0xa000, 0x939: 0x3fac, 0x93a: 0x3fb4, 0x93b: 0xa000, - 0x93c: 0x3fbc, 0x93d: 0x3fc4, - // Block 0x25, offset 0x940 - 0x954: 0x3efc, - 0x959: 0x9903, 0x95a: 0x9903, 0x95b: 0x436e, 0x95c: 0x4374, 0x95d: 0xa000, - 0x95e: 0x3fcc, 0x95f: 0x26b0, - 0x966: 0xa000, - 0x96b: 0xa000, 0x96c: 0x3fdc, 0x96d: 0xa000, 0x96e: 0x3fe4, 0x96f: 0xa000, - 0x970: 0x3fec, 0x971: 0xa000, 0x972: 0x3ff4, 0x973: 0xa000, 0x974: 0x3ffc, 0x975: 0xa000, - 0x976: 0x4004, 0x977: 0xa000, 0x978: 0x400c, 0x979: 0xa000, 0x97a: 0x4014, 0x97b: 0xa000, - 0x97c: 0x401c, 0x97d: 0xa000, 0x97e: 0x4024, 0x97f: 0xa000, - // Block 0x26, offset 0x980 - 0x980: 0x402c, 0x981: 0xa000, 0x982: 0x4034, 0x984: 0xa000, 0x985: 0x403c, - 0x986: 0xa000, 0x987: 0x4044, 0x988: 0xa000, 0x989: 0x404c, - 0x98f: 0xa000, 0x990: 0x4054, 0x991: 0x405c, - 0x992: 0xa000, 0x993: 0x4064, 0x994: 0x406c, 0x995: 0xa000, 0x996: 0x4074, 0x997: 0x407c, - 0x998: 0xa000, 0x999: 0x4084, 0x99a: 0x408c, 0x99b: 0xa000, 0x99c: 0x4094, 0x99d: 0x409c, - 0x9af: 0xa000, - 0x9b0: 0xa000, 0x9b1: 0xa000, 0x9b2: 0xa000, 0x9b4: 0x3fd4, - 0x9b7: 0x40a4, 0x9b8: 0x40ac, 0x9b9: 0x40b4, 0x9ba: 0x40bc, - 0x9bd: 0xa000, 0x9be: 0x40c4, 0x9bf: 0x26c5, - // 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: 0x42d8, 0x9d0: 0x42dd, 0x9d1: 0x42e2, - 0x9d2: 0x42e7, 0x9d3: 0x42ec, 0x9d4: 0x42f1, 0x9d5: 0x42f6, 0x9d6: 0x42fb, 0x9d7: 0x4300, - 0x9d8: 0x4305, 0x9d9: 0x430a, 0x9da: 0x430f, 0x9db: 0x4314, 0x9dc: 0x4319, 0x9dd: 0x431e, - 0x9de: 0x4323, 0x9df: 0x4328, 0x9e0: 0x432d, 0x9e1: 0x4332, 0x9e2: 0x4337, 0x9e3: 0x433c, - 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: 0x2050, 0xa41: 0x2056, 0xa42: 0x205c, 0xa43: 0x2062, 0xa44: 0x2068, 0xa45: 0x206e, - 0xa46: 0x2074, 0xa47: 0x207a, 0xa48: 0x2080, 0xa49: 0x2086, 0xa4a: 0x208c, 0xa4b: 0x2092, - 0xa4c: 0x2098, 0xa4d: 0x209e, 0xa4e: 0x2722, 0xa4f: 0x272b, 0xa50: 0x2734, 0xa51: 0x273d, - 0xa52: 0x2746, 0xa53: 0x274f, 0xa54: 0x2758, 0xa55: 0x2761, 0xa56: 0x276a, 0xa57: 0x277c, - 0xa58: 0x2785, 0xa59: 0x278e, 0xa5a: 0x2797, 0xa5b: 0x27a0, 0xa5c: 0x2773, 0xa5d: 0x2ba8, - 0xa5e: 0x2ae9, 0xa60: 0x20a4, 0xa61: 0x20bc, 0xa62: 0x20b0, 0xa63: 0x2104, - 0xa64: 0x20c2, 0xa65: 0x20e0, 0xa66: 0x20aa, 0xa67: 0x20da, 0xa68: 0x20b6, 0xa69: 0x20ec, - 0xa6a: 0x211c, 0xa6b: 0x213a, 0xa6c: 0x2134, 0xa6d: 0x2128, 0xa6e: 0x2176, 0xa6f: 0x210a, - 0xa70: 0x2116, 0xa71: 0x212e, 0xa72: 0x2122, 0xa73: 0x214c, 0xa74: 0x20f8, 0xa75: 0x2140, - 0xa76: 0x216a, 0xa77: 0x2152, 0xa78: 0x20e6, 0xa79: 0x20c8, 0xa7a: 0x20fe, 0xa7b: 0x2110, - 0xa7c: 0x2146, 0xa7d: 0x20ce, 0xa7e: 0x2170, 0xa7f: 0x20f2, - // Block 0x2a, offset 0xa80 - 0xa80: 0x2158, 0xa81: 0x20d4, 0xa82: 0x215e, 0xa83: 0x2164, 0xa84: 0x092f, 0xa85: 0x0b03, - 0xa86: 0x0ca7, 0xa87: 0x10c7, - 0xa90: 0x1bc0, 0xa91: 0x18a5, - 0xa92: 0x18a8, 0xa93: 0x18ab, 0xa94: 0x18ae, 0xa95: 0x18b1, 0xa96: 0x18b4, 0xa97: 0x18b7, - 0xa98: 0x18ba, 0xa99: 0x18bd, 0xa9a: 0x18c6, 0xa9b: 0x18c9, 0xa9c: 0x18cc, 0xa9d: 0x18cf, - 0xa9e: 0x18d2, 0xa9f: 0x18d5, 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: 0x2e14, 0xaaf: 0x2e1c, - 0xab0: 0x2e24, 0xab1: 0x2e2c, 0xab2: 0x2e34, 0xab3: 0x2e3c, 0xab4: 0x2e44, 0xab5: 0x2e4c, - 0xab6: 0x2e5c, 0xab7: 0x2e64, 0xab8: 0x2e6c, 0xab9: 0x2e74, 0xaba: 0x2e7c, 0xabb: 0x2e84, - 0xabc: 0x2ecf, 0xabd: 0x2e97, 0xabe: 0x2e54, - // 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: 0x145b, 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: 0x1523, 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: 0x18d8, 0xaf2: 0x18db, 0xaf3: 0x18de, 0xaf4: 0x18e1, 0xaf5: 0x18ea, - 0xaf6: 0x18ed, 0xaf7: 0x18f0, 0xaf8: 0x18f3, 0xaf9: 0x18f6, 0xafa: 0x18f9, 0xafb: 0x18fc, - 0xafc: 0x18ff, 0xafd: 0x1902, 0xafe: 0x1905, 0xaff: 0x190e, - // Block 0x2c, offset 0xb00 - 0xb00: 0x1cc2, 0xb01: 0x1cd1, 0xb02: 0x1ce0, 0xb03: 0x1cef, 0xb04: 0x1cfe, 0xb05: 0x1d0d, - 0xb06: 0x1d1c, 0xb07: 0x1d2b, 0xb08: 0x1d3a, 0xb09: 0x2188, 0xb0a: 0x219a, 0xb0b: 0x21ac, - 0xb0c: 0x1950, 0xb0d: 0x1c00, 0xb0e: 0x19ce, 0xb0f: 0x1ba4, 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: 0x2b08, 0xb41: 0x29a4, 0xb42: 0x2b18, 0xb43: 0x287c, 0xb44: 0x2ee0, 0xb45: 0x2886, - 0xb46: 0x2890, 0xb47: 0x2f24, 0xb48: 0x29b1, 0xb49: 0x289a, 0xb4a: 0x28a4, 0xb4b: 0x28ae, - 0xb4c: 0x29d8, 0xb4d: 0x29e5, 0xb4e: 0x29be, 0xb4f: 0x29cb, 0xb50: 0x2ea5, 0xb51: 0x29f2, - 0xb52: 0x29ff, 0xb53: 0x2bba, 0xb54: 0x26b7, 0xb55: 0x2bcd, 0xb56: 0x2be0, 0xb57: 0x2b28, - 0xb58: 0x2a0c, 0xb59: 0x2bf3, 0xb5a: 0x2c06, 0xb5b: 0x2a19, 0xb5c: 0x28b8, 0xb5d: 0x28c2, - 0xb5e: 0x2eb3, 0xb5f: 0x2a26, 0xb60: 0x2b38, 0xb61: 0x2ef1, 0xb62: 0x28cc, 0xb63: 0x28d6, - 0xb64: 0x2a33, 0xb65: 0x28e0, 0xb66: 0x28ea, 0xb67: 0x26cc, 0xb68: 0x26d3, 0xb69: 0x28f4, - 0xb6a: 0x28fe, 0xb6b: 0x2c19, 0xb6c: 0x2a40, 0xb6d: 0x2b48, 0xb6e: 0x2c2c, 0xb6f: 0x2a4d, - 0xb70: 0x2912, 0xb71: 0x2908, 0xb72: 0x2f38, 0xb73: 0x2a5a, 0xb74: 0x2c3f, 0xb75: 0x291c, - 0xb76: 0x2b58, 0xb77: 0x2926, 0xb78: 0x2a74, 0xb79: 0x2930, 0xb7a: 0x2a81, 0xb7b: 0x2f02, - 0xb7c: 0x2a67, 0xb7d: 0x2b68, 0xb7e: 0x2a8e, 0xb7f: 0x26da, - // Block 0x2e, offset 0xb80 - 0xb80: 0x2f13, 0xb81: 0x293a, 0xb82: 0x2944, 0xb83: 0x2a9b, 0xb84: 0x294e, 0xb85: 0x2958, - 0xb86: 0x2962, 0xb87: 0x2b78, 0xb88: 0x2aa8, 0xb89: 0x26e1, 0xb8a: 0x2c52, 0xb8b: 0x2e8c, - 0xb8c: 0x2b88, 0xb8d: 0x2ab5, 0xb8e: 0x2ec1, 0xb8f: 0x296c, 0xb90: 0x2976, 0xb91: 0x2ac2, - 0xb92: 0x26e8, 0xb93: 0x2acf, 0xb94: 0x2b98, 0xb95: 0x26ef, 0xb96: 0x2c65, 0xb97: 0x2980, - 0xb98: 0x1cb3, 0xb99: 0x1cc7, 0xb9a: 0x1cd6, 0xb9b: 0x1ce5, 0xb9c: 0x1cf4, 0xb9d: 0x1d03, - 0xb9e: 0x1d12, 0xb9f: 0x1d21, 0xba0: 0x1d30, 0xba1: 0x1d3f, 0xba2: 0x218e, 0xba3: 0x21a0, - 0xba4: 0x21b2, 0xba5: 0x21be, 0xba6: 0x21ca, 0xba7: 0x21d6, 0xba8: 0x21e2, 0xba9: 0x21ee, - 0xbaa: 0x21fa, 0xbab: 0x2206, 0xbac: 0x2242, 0xbad: 0x224e, 0xbae: 0x225a, 0xbaf: 0x2266, - 0xbb0: 0x2272, 0xbb1: 0x1c10, 0xbb2: 0x19c2, 0xbb3: 0x1932, 0xbb4: 0x1be0, 0xbb5: 0x1a43, - 0xbb6: 0x1a52, 0xbb7: 0x19c8, 0xbb8: 0x1bf8, 0xbb9: 0x1bfc, 0xbba: 0x195c, 0xbbb: 0x26fd, - 0xbbc: 0x270b, 0xbbd: 0x26f6, 0xbbe: 0x2704, 0xbbf: 0x2adc, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x1a46, 0xbc1: 0x1a2e, 0xbc2: 0x1c5c, 0xbc3: 0x1a16, 0xbc4: 0x19ef, 0xbc5: 0x1965, - 0xbc6: 0x1974, 0xbc7: 0x1944, 0xbc8: 0x1bec, 0xbc9: 0x1d4e, 0xbca: 0x1a49, 0xbcb: 0x1a31, - 0xbcc: 0x1c60, 0xbcd: 0x1c6c, 0xbce: 0x1a22, 0xbcf: 0x19f8, 0xbd0: 0x1953, 0xbd1: 0x1c18, - 0xbd2: 0x1bac, 0xbd3: 0x1b98, 0xbd4: 0x1bc8, 0xbd5: 0x1c70, 0xbd6: 0x1a25, 0xbd7: 0x19c5, - 0xbd8: 0x19fb, 0xbd9: 0x19da, 0xbda: 0x1a3d, 0xbdb: 0x1c74, 0xbdc: 0x1a28, 0xbdd: 0x19bc, - 0xbde: 0x19fe, 0xbdf: 0x1c38, 0xbe0: 0x1bf0, 0xbe1: 0x1a10, 0xbe2: 0x1c20, 0xbe3: 0x1c3c, - 0xbe4: 0x1bf4, 0xbe5: 0x1a13, 0xbe6: 0x1c24, 0xbe7: 0x22e4, 0xbe8: 0x22f8, 0xbe9: 0x1992, - 0xbea: 0x1c1c, 0xbeb: 0x1bb0, 0xbec: 0x1b9c, 0xbed: 0x1c44, 0xbee: 0x2712, 0xbef: 0x27a9, - 0xbf0: 0x1a55, 0xbf1: 0x1a40, 0xbf2: 0x1c78, 0xbf3: 0x1a2b, 0xbf4: 0x1a4c, 0xbf5: 0x1a34, - 0xbf6: 0x1c64, 0xbf7: 0x1a19, 0xbf8: 0x19f2, 0xbf9: 0x197d, 0xbfa: 0x1a4f, 0xbfb: 0x1a37, - 0xbfc: 0x1c68, 0xbfd: 0x1a1c, 0xbfe: 0x19f5, 0xbff: 0x1980, - // Block 0x30, offset 0xc00 - 0xc00: 0x1c28, 0xc01: 0x1bb4, 0xc02: 0x1d49, 0xc03: 0x1935, 0xc04: 0x19b6, 0xc05: 0x19b9, - 0xc06: 0x22f1, 0xc07: 0x1b90, 0xc08: 0x19bf, 0xc09: 0x1947, 0xc0a: 0x19dd, 0xc0b: 0x194a, - 0xc0c: 0x19e6, 0xc0d: 0x1968, 0xc0e: 0x196b, 0xc0f: 0x1a01, 0xc10: 0x1a07, 0xc11: 0x1a0a, - 0xc12: 0x1c2c, 0xc13: 0x1a0d, 0xc14: 0x1a1f, 0xc15: 0x1c34, 0xc16: 0x1c40, 0xc17: 0x198c, - 0xc18: 0x1d53, 0xc19: 0x1bb8, 0xc1a: 0x198f, 0xc1b: 0x1a58, 0xc1c: 0x19a1, 0xc1d: 0x19b0, - 0xc1e: 0x22de, 0xc1f: 0x22d8, 0xc20: 0x1cbd, 0xc21: 0x1ccc, 0xc22: 0x1cdb, 0xc23: 0x1cea, - 0xc24: 0x1cf9, 0xc25: 0x1d08, 0xc26: 0x1d17, 0xc27: 0x1d26, 0xc28: 0x1d35, 0xc29: 0x2182, - 0xc2a: 0x2194, 0xc2b: 0x21a6, 0xc2c: 0x21b8, 0xc2d: 0x21c4, 0xc2e: 0x21d0, 0xc2f: 0x21dc, - 0xc30: 0x21e8, 0xc31: 0x21f4, 0xc32: 0x2200, 0xc33: 0x223c, 0xc34: 0x2248, 0xc35: 0x2254, - 0xc36: 0x2260, 0xc37: 0x226c, 0xc38: 0x2278, 0xc39: 0x227e, 0xc3a: 0x2284, 0xc3b: 0x228a, - 0xc3c: 0x2290, 0xc3d: 0x22a2, 0xc3e: 0x22a8, 0xc3f: 0x1c0c, - // Block 0x31, offset 0xc40 - 0xc40: 0x1377, 0xc41: 0x0cfb, 0xc42: 0x13d3, 0xc43: 0x139f, 0xc44: 0x0e57, 0xc45: 0x06eb, - 0xc46: 0x08df, 0xc47: 0x1627, 0xc48: 0x1627, 0xc49: 0x0a0b, 0xc4a: 0x145b, 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: 0x1443, 0xc5a: 0x156f, 0xc5b: 0x070f, 0xc5c: 0x08b3, 0xc5d: 0x0d87, - 0xc5e: 0x0ecf, 0xc5f: 0x1293, 0xc60: 0x15bf, 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: 0x14eb, 0xc79: 0x159f, 0xc7a: 0x15bb, 0xc7b: 0x102b, - 0xc7c: 0x106b, 0xc7d: 0x1123, 0xc7e: 0x1243, 0xc7f: 0x1477, - // Block 0x32, offset 0xc80 - 0xc80: 0x15c7, 0xc81: 0x134b, 0xc82: 0x09c7, 0xc83: 0x0b3b, 0xc84: 0x10db, 0xc85: 0x119b, - 0xc86: 0x0eff, 0xc87: 0x1033, 0xc88: 0x1397, 0xc89: 0x14e3, 0xc8a: 0x09c3, 0xc8b: 0x0a8f, - 0xc8c: 0x0d77, 0xc8d: 0x0e2b, 0xc8e: 0x0e5f, 0xc8f: 0x1113, 0xc90: 0x113b, 0xc91: 0x14a3, - 0xc92: 0x084f, 0xc93: 0x11a7, 0xc94: 0x07f3, 0xc95: 0x07ef, 0xc96: 0x1097, 0xc97: 0x1127, - 0xc98: 0x125b, 0xc99: 0x14ab, 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: 0x1457, 0xcbf: 0x085b, - // Block 0x33, offset 0xcc0 - 0xcc0: 0x090f, 0xcc1: 0x0a17, 0xcc2: 0x0b2f, 0xcc3: 0x0cbf, 0xcc4: 0x0e7b, 0xcc5: 0x103f, - 0xcc6: 0x1493, 0xcc7: 0x1577, 0xcc8: 0x15cb, 0xcc9: 0x15e3, 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: 0x147b, 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: 0x145f, 0xcf2: 0x14df, 0xcf3: 0x14ef, 0xcf4: 0x152b, 0xcf5: 0x0753, - 0xcf6: 0x107f, 0xcf7: 0x144b, 0xcf8: 0x14c7, 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: 0x161f, 0xd05: 0x0ce3, - 0xd06: 0x149f, 0xd07: 0x0833, 0xd08: 0x0d2f, 0xd09: 0x0d3b, 0xd0a: 0x0e0f, 0xd0b: 0x0e47, - 0xd0c: 0x0f4b, 0xd0d: 0x0fa7, 0xd0e: 0x1027, 0xd0f: 0x110b, 0xd10: 0x1537, 0xd11: 0x07af, - 0xd12: 0x0c03, 0xd13: 0x14af, 0xd14: 0x0767, 0xd15: 0x0aab, 0xd16: 0x0e2f, 0xd17: 0x13df, - 0xd18: 0x0b67, 0xd19: 0x0bb7, 0xd1a: 0x0d43, 0xd1b: 0x0f2f, 0xd1c: 0x14b7, 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: 0x1453, - 0xd2a: 0x14d3, 0xd2b: 0x0883, 0xd2c: 0x0e4b, 0xd2d: 0x0903, 0xd2e: 0x0ec7, 0xd2f: 0x0f6b, - 0xd30: 0x1287, 0xd31: 0x14bb, 0xd32: 0x15a7, 0xd33: 0x15cf, 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: 0x14a7, 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: 0x14f7, 0xd5d: 0x10eb, - 0xd5e: 0x116f, 0xd60: 0x128f, 0xd62: 0x1353, - 0xd65: 0x1407, 0xd66: 0x1433, - 0xd6a: 0x154b, 0xd6b: 0x154f, 0xd6c: 0x1553, 0xd6d: 0x15b7, 0xd6e: 0x142b, 0xd6f: 0x14c3, - 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: 0x14d7, 0xda9: 0x151b, - 0xdaa: 0x1533, 0xdab: 0x0b9b, 0xdac: 0x171a, 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: 0x1447, 0xe05: 0x1467, - 0xe06: 0x14b3, 0xe07: 0x14d7, 0xe08: 0x14f7, 0xe09: 0x150b, 0xe0a: 0x151b, 0xe0b: 0x1527, - 0xe0c: 0x1533, 0xe0d: 0x1587, 0xe0e: 0x1627, 0xe0f: 0x16b1, 0xe10: 0x16ac, 0xe11: 0x16de, - 0xe12: 0x0607, 0xe13: 0x062f, 0xe14: 0x0633, 0xe15: 0x1760, 0xe16: 0x178d, 0xe17: 0x1805, - 0xe18: 0x1613, 0xe19: 0x1623, - // Block 0x39, offset 0xe40 - 0xe40: 0x19d1, 0xe41: 0x19d4, 0xe42: 0x19d7, 0xe43: 0x1c04, 0xe44: 0x1c08, 0xe45: 0x1a5b, - 0xe46: 0x1a5b, - 0xe53: 0x1d71, 0xe54: 0x1d62, 0xe55: 0x1d67, 0xe56: 0x1d76, 0xe57: 0x1d6c, - 0xe5d: 0x4422, - 0xe5e: 0x8115, 0xe5f: 0x4494, 0xe60: 0x022d, 0xe61: 0x0215, 0xe62: 0x021e, 0xe63: 0x0221, - 0xe64: 0x0224, 0xe65: 0x0227, 0xe66: 0x022a, 0xe67: 0x0230, 0xe68: 0x0233, 0xe69: 0x0017, - 0xe6a: 0x4482, 0xe6b: 0x4488, 0xe6c: 0x4586, 0xe6d: 0x458e, 0xe6e: 0x43da, 0xe6f: 0x43e0, - 0xe70: 0x43e6, 0xe71: 0x43ec, 0xe72: 0x43f8, 0xe73: 0x43fe, 0xe74: 0x4404, 0xe75: 0x4410, - 0xe76: 0x4416, 0xe78: 0x441c, 0xe79: 0x4428, 0xe7a: 0x442e, 0xe7b: 0x4434, - 0xe7c: 0x4440, 0xe7e: 0x4446, - // Block 0x3a, offset 0xe80 - 0xe80: 0x444c, 0xe81: 0x4452, 0xe83: 0x4458, 0xe84: 0x445e, - 0xe86: 0x446a, 0xe87: 0x4470, 0xe88: 0x4476, 0xe89: 0x447c, 0xe8a: 0x448e, 0xe8b: 0x440a, - 0xe8c: 0x43f2, 0xe8d: 0x443a, 0xe8e: 0x4464, 0xe8f: 0x1d7b, 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: 0x4500, 0xee5: 0x4500, 0xee6: 0x02ed, 0xee7: 0x02ed, 0xee8: 0x02ed, 0xee9: 0x02ed, - 0xeea: 0x02ea, 0xeeb: 0x02ea, 0xeec: 0x02ea, 0xeed: 0x02ea, 0xeee: 0x0308, 0xeef: 0x0308, - 0xef0: 0x44fa, 0xef1: 0x44fa, - // 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: 0x204b, - 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: 0x25a6, 0xf2b: 0x25a6, 0xf2c: 0x2616, 0xf2d: 0x2616, 0xf2e: 0x25e5, 0xf2f: 0x25e5, - 0xf30: 0x2601, 0xf31: 0x2601, 0xf32: 0x25fa, 0xf33: 0x25fa, 0xf34: 0x2608, 0xf35: 0x2608, - 0xf36: 0x260f, 0xf37: 0x260f, 0xf38: 0x260f, 0xf39: 0x25ec, 0xf3a: 0x25ec, 0xf3b: 0x25ec, - 0xf3c: 0x0302, 0xf3d: 0x0302, 0xf3e: 0x0302, 0xf3f: 0x0302, - // Block 0x3d, offset 0xf40 - 0xf40: 0x25ad, 0xf41: 0x25b4, 0xf42: 0x25d0, 0xf43: 0x25ec, 0xf44: 0x25f3, 0xf45: 0x1d85, - 0xf46: 0x1d8a, 0xf47: 0x1d8f, 0xf48: 0x1d9e, 0xf49: 0x1dad, 0xf4a: 0x1db2, 0xf4b: 0x1db7, - 0xf4c: 0x1dbc, 0xf4d: 0x1dc1, 0xf4e: 0x1dd0, 0xf4f: 0x1ddf, 0xf50: 0x1de4, 0xf51: 0x1de9, - 0xf52: 0x1df8, 0xf53: 0x1e07, 0xf54: 0x1e0c, 0xf55: 0x1e11, 0xf56: 0x1e16, 0xf57: 0x1e25, - 0xf58: 0x1e2a, 0xf59: 0x1e39, 0xf5a: 0x1e3e, 0xf5b: 0x1e43, 0xf5c: 0x1e52, 0xf5d: 0x1e57, - 0xf5e: 0x1e5c, 0xf5f: 0x1e66, 0xf60: 0x1ea2, 0xf61: 0x1eb1, 0xf62: 0x1ec0, 0xf63: 0x1ec5, - 0xf64: 0x1eca, 0xf65: 0x1ed4, 0xf66: 0x1ee3, 0xf67: 0x1ee8, 0xf68: 0x1ef7, 0xf69: 0x1efc, - 0xf6a: 0x1f01, 0xf6b: 0x1f10, 0xf6c: 0x1f15, 0xf6d: 0x1f24, 0xf6e: 0x1f29, 0xf6f: 0x1f2e, - 0xf70: 0x1f33, 0xf71: 0x1f38, 0xf72: 0x1f3d, 0xf73: 0x1f42, 0xf74: 0x1f47, 0xf75: 0x1f4c, - 0xf76: 0x1f51, 0xf77: 0x1f56, 0xf78: 0x1f5b, 0xf79: 0x1f60, 0xf7a: 0x1f65, 0xf7b: 0x1f6a, - 0xf7c: 0x1f6f, 0xf7d: 0x1f74, 0xf7e: 0x1f79, 0xf7f: 0x1f83, - // Block 0x3e, offset 0xf80 - 0xf80: 0x1f88, 0xf81: 0x1f8d, 0xf82: 0x1f92, 0xf83: 0x1f9c, 0xf84: 0x1fa1, 0xf85: 0x1fab, - 0xf86: 0x1fb0, 0xf87: 0x1fb5, 0xf88: 0x1fba, 0xf89: 0x1fbf, 0xf8a: 0x1fc4, 0xf8b: 0x1fc9, - 0xf8c: 0x1fce, 0xf8d: 0x1fd3, 0xf8e: 0x1fe2, 0xf8f: 0x1ff1, 0xf90: 0x1ff6, 0xf91: 0x1ffb, - 0xf92: 0x2000, 0xf93: 0x2005, 0xf94: 0x200a, 0xf95: 0x2014, 0xf96: 0x2019, 0xf97: 0x201e, - 0xf98: 0x202d, 0xf99: 0x203c, 0xf9a: 0x2041, 0xf9b: 0x44b2, 0xf9c: 0x44b8, 0xf9d: 0x44ee, - 0xf9e: 0x4545, 0xf9f: 0x454c, 0xfa0: 0x4553, 0xfa1: 0x455a, 0xfa2: 0x4561, 0xfa3: 0x4568, - 0xfa4: 0x25c2, 0xfa5: 0x25c9, 0xfa6: 0x25d0, 0xfa7: 0x25d7, 0xfa8: 0x25ec, 0xfa9: 0x25f3, - 0xfaa: 0x1d94, 0xfab: 0x1d99, 0xfac: 0x1d9e, 0xfad: 0x1da3, 0xfae: 0x1dad, 0xfaf: 0x1db2, - 0xfb0: 0x1dc6, 0xfb1: 0x1dcb, 0xfb2: 0x1dd0, 0xfb3: 0x1dd5, 0xfb4: 0x1ddf, 0xfb5: 0x1de4, - 0xfb6: 0x1dee, 0xfb7: 0x1df3, 0xfb8: 0x1df8, 0xfb9: 0x1dfd, 0xfba: 0x1e07, 0xfbb: 0x1e0c, - 0xfbc: 0x1f38, 0xfbd: 0x1f3d, 0xfbe: 0x1f4c, 0xfbf: 0x1f51, - // Block 0x3f, offset 0xfc0 - 0xfc0: 0x1f56, 0xfc1: 0x1f6a, 0xfc2: 0x1f6f, 0xfc3: 0x1f74, 0xfc4: 0x1f79, 0xfc5: 0x1f92, - 0xfc6: 0x1f9c, 0xfc7: 0x1fa1, 0xfc8: 0x1fa6, 0xfc9: 0x1fba, 0xfca: 0x1fd8, 0xfcb: 0x1fdd, - 0xfcc: 0x1fe2, 0xfcd: 0x1fe7, 0xfce: 0x1ff1, 0xfcf: 0x1ff6, 0xfd0: 0x44ee, 0xfd1: 0x2023, - 0xfd2: 0x2028, 0xfd3: 0x202d, 0xfd4: 0x2032, 0xfd5: 0x203c, 0xfd6: 0x2041, 0xfd7: 0x25ad, - 0xfd8: 0x25b4, 0xfd9: 0x25bb, 0xfda: 0x25d0, 0xfdb: 0x25de, 0xfdc: 0x1d85, 0xfdd: 0x1d8a, - 0xfde: 0x1d8f, 0xfdf: 0x1d9e, 0xfe0: 0x1da8, 0xfe1: 0x1db7, 0xfe2: 0x1dbc, 0xfe3: 0x1dc1, - 0xfe4: 0x1dd0, 0xfe5: 0x1dda, 0xfe6: 0x1df8, 0xfe7: 0x1e11, 0xfe8: 0x1e16, 0xfe9: 0x1e25, - 0xfea: 0x1e2a, 0xfeb: 0x1e39, 0xfec: 0x1e43, 0xfed: 0x1e52, 0xfee: 0x1e57, 0xfef: 0x1e5c, - 0xff0: 0x1e66, 0xff1: 0x1ea2, 0xff2: 0x1ea7, 0xff3: 0x1eb1, 0xff4: 0x1ec0, 0xff5: 0x1ec5, - 0xff6: 0x1eca, 0xff7: 0x1ed4, 0xff8: 0x1ee3, 0xff9: 0x1ef7, 0xffa: 0x1efc, 0xffb: 0x1f01, - 0xffc: 0x1f10, 0xffd: 0x1f15, 0xffe: 0x1f24, 0xfff: 0x1f29, - // Block 0x40, offset 0x1000 - 0x1000: 0x1f2e, 0x1001: 0x1f33, 0x1002: 0x1f42, 0x1003: 0x1f47, 0x1004: 0x1f5b, 0x1005: 0x1f60, - 0x1006: 0x1f65, 0x1007: 0x1f6a, 0x1008: 0x1f6f, 0x1009: 0x1f83, 0x100a: 0x1f88, 0x100b: 0x1f8d, - 0x100c: 0x1f92, 0x100d: 0x1f97, 0x100e: 0x1fab, 0x100f: 0x1fb0, 0x1010: 0x1fb5, 0x1011: 0x1fba, - 0x1012: 0x1fc9, 0x1013: 0x1fce, 0x1014: 0x1fd3, 0x1015: 0x1fe2, 0x1016: 0x1fec, 0x1017: 0x1ffb, - 0x1018: 0x2000, 0x1019: 0x44e2, 0x101a: 0x2014, 0x101b: 0x2019, 0x101c: 0x201e, 0x101d: 0x202d, - 0x101e: 0x2037, 0x101f: 0x25d0, 0x1020: 0x25de, 0x1021: 0x1d9e, 0x1022: 0x1da8, 0x1023: 0x1dd0, - 0x1024: 0x1dda, 0x1025: 0x1df8, 0x1026: 0x1e02, 0x1027: 0x1e66, 0x1028: 0x1e6b, 0x1029: 0x1e8e, - 0x102a: 0x1e93, 0x102b: 0x1f6a, 0x102c: 0x1f6f, 0x102d: 0x1f92, 0x102e: 0x1fe2, 0x102f: 0x1fec, - 0x1030: 0x202d, 0x1031: 0x2037, 0x1032: 0x4596, 0x1033: 0x459e, 0x1034: 0x45a6, 0x1035: 0x1eed, - 0x1036: 0x1ef2, 0x1037: 0x1f06, 0x1038: 0x1f0b, 0x1039: 0x1f1a, 0x103a: 0x1f1f, 0x103b: 0x1e70, - 0x103c: 0x1e75, 0x103d: 0x1e98, 0x103e: 0x1e9d, 0x103f: 0x1e2f, - // Block 0x41, offset 0x1040 - 0x1040: 0x1e34, 0x1041: 0x1e1b, 0x1042: 0x1e20, 0x1043: 0x1e48, 0x1044: 0x1e4d, 0x1045: 0x1eb6, - 0x1046: 0x1ebb, 0x1047: 0x1ed9, 0x1048: 0x1ede, 0x1049: 0x1e7a, 0x104a: 0x1e7f, 0x104b: 0x1e84, - 0x104c: 0x1e8e, 0x104d: 0x1e89, 0x104e: 0x1e61, 0x104f: 0x1eac, 0x1050: 0x1ecf, 0x1051: 0x1eed, - 0x1052: 0x1ef2, 0x1053: 0x1f06, 0x1054: 0x1f0b, 0x1055: 0x1f1a, 0x1056: 0x1f1f, 0x1057: 0x1e70, - 0x1058: 0x1e75, 0x1059: 0x1e98, 0x105a: 0x1e9d, 0x105b: 0x1e2f, 0x105c: 0x1e34, 0x105d: 0x1e1b, - 0x105e: 0x1e20, 0x105f: 0x1e48, 0x1060: 0x1e4d, 0x1061: 0x1eb6, 0x1062: 0x1ebb, 0x1063: 0x1ed9, - 0x1064: 0x1ede, 0x1065: 0x1e7a, 0x1066: 0x1e7f, 0x1067: 0x1e84, 0x1068: 0x1e8e, 0x1069: 0x1e89, - 0x106a: 0x1e61, 0x106b: 0x1eac, 0x106c: 0x1ecf, 0x106d: 0x1e7a, 0x106e: 0x1e7f, 0x106f: 0x1e84, - 0x1070: 0x1e8e, 0x1071: 0x1e6b, 0x1072: 0x1e93, 0x1073: 0x1ee8, 0x1074: 0x1e52, 0x1075: 0x1e57, - 0x1076: 0x1e5c, 0x1077: 0x1e7a, 0x1078: 0x1e7f, 0x1079: 0x1e84, 0x107a: 0x1ee8, 0x107b: 0x1ef7, - 0x107c: 0x449a, 0x107d: 0x449a, - // Block 0x42, offset 0x1080 - 0x1090: 0x230d, 0x1091: 0x2322, - 0x1092: 0x2322, 0x1093: 0x2329, 0x1094: 0x2330, 0x1095: 0x2345, 0x1096: 0x234c, 0x1097: 0x2353, - 0x1098: 0x2376, 0x1099: 0x2376, 0x109a: 0x2399, 0x109b: 0x2392, 0x109c: 0x23ae, 0x109d: 0x23a0, - 0x109e: 0x23a7, 0x109f: 0x23ca, 0x10a0: 0x23ca, 0x10a1: 0x23c3, 0x10a2: 0x23d1, 0x10a3: 0x23d1, - 0x10a4: 0x23fb, 0x10a5: 0x23fb, 0x10a6: 0x2417, 0x10a7: 0x23df, 0x10a8: 0x23df, 0x10a9: 0x23d8, - 0x10aa: 0x23ed, 0x10ab: 0x23ed, 0x10ac: 0x23f4, 0x10ad: 0x23f4, 0x10ae: 0x241e, 0x10af: 0x242c, - 0x10b0: 0x242c, 0x10b1: 0x2433, 0x10b2: 0x2433, 0x10b3: 0x243a, 0x10b4: 0x2441, 0x10b5: 0x2448, - 0x10b6: 0x244f, 0x10b7: 0x244f, 0x10b8: 0x2456, 0x10b9: 0x2464, 0x10ba: 0x2472, 0x10bb: 0x246b, - 0x10bc: 0x2479, 0x10bd: 0x2479, 0x10be: 0x248e, 0x10bf: 0x2495, - // Block 0x43, offset 0x10c0 - 0x10c0: 0x24c6, 0x10c1: 0x24d4, 0x10c2: 0x24cd, 0x10c3: 0x24b1, 0x10c4: 0x24b1, 0x10c5: 0x24db, - 0x10c6: 0x24db, 0x10c7: 0x24e2, 0x10c8: 0x24e2, 0x10c9: 0x250c, 0x10ca: 0x2513, 0x10cb: 0x251a, - 0x10cc: 0x24f0, 0x10cd: 0x24fe, 0x10ce: 0x2521, 0x10cf: 0x2528, - 0x10d2: 0x24f7, 0x10d3: 0x257c, 0x10d4: 0x2583, 0x10d5: 0x2559, 0x10d6: 0x2560, 0x10d7: 0x2544, - 0x10d8: 0x2544, 0x10d9: 0x254b, 0x10da: 0x2575, 0x10db: 0x256e, 0x10dc: 0x2598, 0x10dd: 0x2598, - 0x10de: 0x2306, 0x10df: 0x231b, 0x10e0: 0x2314, 0x10e1: 0x233e, 0x10e2: 0x2337, 0x10e3: 0x2361, - 0x10e4: 0x235a, 0x10e5: 0x2384, 0x10e6: 0x2368, 0x10e7: 0x237d, 0x10e8: 0x23b5, 0x10e9: 0x2402, - 0x10ea: 0x23e6, 0x10eb: 0x2425, 0x10ec: 0x24bf, 0x10ed: 0x24e9, 0x10ee: 0x2591, 0x10ef: 0x258a, - 0x10f0: 0x259f, 0x10f1: 0x2536, 0x10f2: 0x249c, 0x10f3: 0x2567, 0x10f4: 0x248e, 0x10f5: 0x24c6, - 0x10f6: 0x245d, 0x10f7: 0x24aa, 0x10f8: 0x253d, 0x10f9: 0x252f, 0x10fa: 0x24b8, 0x10fb: 0x24a3, - 0x10fc: 0x24b8, 0x10fd: 0x253d, 0x10fe: 0x236f, 0x10ff: 0x238b, - // Block 0x44, offset 0x1100 - 0x1100: 0x2505, 0x1101: 0x2480, 0x1102: 0x22ff, 0x1103: 0x24a3, 0x1104: 0x2448, 0x1105: 0x2417, - 0x1106: 0x23bc, 0x1107: 0x2552, - 0x1130: 0x2410, 0x1131: 0x2487, 0x1132: 0x27bb, 0x1133: 0x27b2, 0x1134: 0x27e8, 0x1135: 0x27d6, - 0x1136: 0x27c4, 0x1137: 0x27df, 0x1138: 0x27f1, 0x1139: 0x2409, 0x113a: 0x2c78, 0x113b: 0x2af8, - 0x113c: 0x27cd, - // Block 0x45, offset 0x1140 - 0x1150: 0x0019, 0x1151: 0x0483, - 0x1152: 0x0487, 0x1153: 0x0035, 0x1154: 0x0037, 0x1155: 0x0003, 0x1156: 0x003f, 0x1157: 0x04bf, - 0x1158: 0x04c3, 0x1159: 0x1b58, - 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: 0x186f, 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: 0x4265, 0x118a: 0x4265, 0x118b: 0x4265, - 0x118c: 0x4265, 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: 0x42a6, 0x11b1: 0x44be, 0x11b2: 0x42ab, 0x11b4: 0x42b0, - 0x11b6: 0x42b5, 0x11b7: 0x44c4, 0x11b8: 0x42ba, 0x11b9: 0x44ca, 0x11ba: 0x42bf, 0x11bb: 0x44d0, - 0x11bc: 0x42c4, 0x11bd: 0x44d6, 0x11be: 0x42c9, 0x11bf: 0x44dc, - // Block 0x47, offset 0x11c0 - 0x11c0: 0x0236, 0x11c1: 0x44a0, 0x11c2: 0x44a0, 0x11c3: 0x44a6, 0x11c4: 0x44a6, 0x11c5: 0x44e8, - 0x11c6: 0x44e8, 0x11c7: 0x44ac, 0x11c8: 0x44ac, 0x11c9: 0x44f4, 0x11ca: 0x44f4, 0x11cb: 0x44f4, - 0x11cc: 0x44f4, 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: 0x2dfc, - 0x1236: 0x2dfc, 0x1237: 0x2e04, 0x1238: 0x2e04, 0x1239: 0x2e0c, 0x123a: 0x2e0c, 0x123b: 0x1f7e, - 0x123c: 0x1f7e, - // 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: 0x4a56, 0x129f: 0x4a5c, 0x12a0: 0x03c3, 0x12a1: 0x0313, 0x12a2: 0x0317, 0x12a3: 0x4341, - 0x12a4: 0x031b, 0x12a5: 0x4346, 0x12a6: 0x434b, 0x12a7: 0x031f, 0x12a8: 0x0323, 0x12a9: 0x0327, - 0x12aa: 0x4350, 0x12ab: 0x4355, 0x12ac: 0x435a, 0x12ad: 0x435f, 0x12ae: 0x4364, 0x12af: 0x4369, - 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: 0x42d8, 0x12c3: 0x42dd, 0x12c4: 0x42e2, 0x12c5: 0x42e7, - 0x12c6: 0x42ec, 0x12c7: 0x42f1, 0x12ca: 0x42f6, 0x12cb: 0x42fb, - 0x12cc: 0x4300, 0x12cd: 0x4305, 0x12ce: 0x430a, 0x12cf: 0x430f, - 0x12d2: 0x4314, 0x12d3: 0x4319, 0x12d4: 0x431e, 0x12d5: 0x4323, 0x12d6: 0x4328, 0x12d7: 0x432d, - 0x12da: 0x4332, 0x12db: 0x4337, 0x12dc: 0x433c, - 0x12e0: 0x00bf, 0x12e1: 0x00c2, 0x12e2: 0x00cb, 0x12e3: 0x4260, - 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: 0x1875, 0x1441: 0x1872, 0x1442: 0x1878, 0x1443: 0x189c, 0x1444: 0x18c0, 0x1445: 0x18e4, - 0x1446: 0x1908, 0x1447: 0x1911, 0x1448: 0x1917, 0x1449: 0x191d, 0x144a: 0x1923, - 0x1450: 0x1a88, 0x1451: 0x1a8c, - 0x1452: 0x1a90, 0x1453: 0x1a94, 0x1454: 0x1a98, 0x1455: 0x1a9c, 0x1456: 0x1aa0, 0x1457: 0x1aa4, - 0x1458: 0x1aa8, 0x1459: 0x1aac, 0x145a: 0x1ab0, 0x145b: 0x1ab4, 0x145c: 0x1ab8, 0x145d: 0x1abc, - 0x145e: 0x1ac0, 0x145f: 0x1ac4, 0x1460: 0x1ac8, 0x1461: 0x1acc, 0x1462: 0x1ad0, 0x1463: 0x1ad4, - 0x1464: 0x1ad8, 0x1465: 0x1adc, 0x1466: 0x1ae0, 0x1467: 0x1ae4, 0x1468: 0x1ae8, 0x1469: 0x1aec, - 0x146a: 0x271a, 0x146b: 0x0047, 0x146c: 0x0065, 0x146d: 0x1938, 0x146e: 0x19ad, - 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: 0x26a9, 0x1481: 0x26be, 0x1482: 0x0503, - 0x1490: 0x0c0f, 0x1491: 0x0a47, - 0x1492: 0x08d3, 0x1493: 0x4656, 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, - // Block 0x53, offset 0x14c0 - 0x14c0: 0x06fb, 0x14c1: 0x06f3, 0x14c2: 0x0703, 0x14c3: 0x1643, 0x14c4: 0x0747, 0x14c5: 0x0757, - 0x14c6: 0x075b, 0x14c7: 0x0763, 0x14c8: 0x076b, 0x14c9: 0x076f, 0x14ca: 0x077b, 0x14cb: 0x0773, - 0x14cc: 0x05b3, 0x14cd: 0x1657, 0x14ce: 0x078f, 0x14cf: 0x0793, 0x14d0: 0x0797, 0x14d1: 0x07b3, - 0x14d2: 0x1648, 0x14d3: 0x05b7, 0x14d4: 0x079f, 0x14d5: 0x07bf, 0x14d6: 0x1652, 0x14d7: 0x07cf, - 0x14d8: 0x07d7, 0x14d9: 0x0737, 0x14da: 0x07df, 0x14db: 0x07e3, 0x14dc: 0x182d, 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: 0x1666, 0x14f5: 0x0e93, - 0x14f6: 0x08cf, 0x14f7: 0x08d7, 0x14f8: 0x166b, 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: 0x1670, 0x151a: 0x09d7, 0x151b: 0x09db, 0x151c: 0x09e3, 0x151d: 0x09ef, - 0x151e: 0x09f7, 0x151f: 0x0a13, 0x1520: 0x1675, 0x1521: 0x167a, 0x1522: 0x0a1f, 0x1523: 0x0a23, - 0x1524: 0x0a27, 0x1525: 0x0a1b, 0x1526: 0x0a2f, 0x1527: 0x05c7, 0x1528: 0x05cb, 0x1529: 0x0a37, - 0x152a: 0x0a3f, 0x152b: 0x0a3f, 0x152c: 0x167f, 0x152d: 0x0a5b, 0x152e: 0x0a5f, 0x152f: 0x0a63, - 0x1530: 0x0a6b, 0x1531: 0x1684, 0x1532: 0x0a73, 0x1533: 0x0a77, 0x1534: 0x0b4f, 0x1535: 0x0a7f, - 0x1536: 0x05cf, 0x1537: 0x0a8b, 0x1538: 0x0a9b, 0x1539: 0x0aa7, 0x153a: 0x0aa3, 0x153b: 0x168e, - 0x153c: 0x0aaf, 0x153d: 0x1693, 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: 0x1698, 0x154a: 0x05db, 0x154b: 0x0b0f, - 0x154c: 0x0b13, 0x154d: 0x0b17, 0x154e: 0x0b1f, 0x154f: 0x185f, 0x1550: 0x0b37, 0x1551: 0x16a2, - 0x1552: 0x16a2, 0x1553: 0x11d7, 0x1554: 0x0b47, 0x1555: 0x0b47, 0x1556: 0x05df, 0x1557: 0x16c5, - 0x1558: 0x1797, 0x1559: 0x0b57, 0x155a: 0x0b5f, 0x155b: 0x05e3, 0x155c: 0x0b73, 0x155d: 0x0b83, - 0x155e: 0x0b87, 0x155f: 0x0b8f, 0x1560: 0x0b9f, 0x1561: 0x05eb, 0x1562: 0x05e7, 0x1563: 0x0ba3, - 0x1564: 0x16a7, 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: 0x16b6, 0x1579: 0x0c3f, 0x157a: 0x0c33, 0x157b: 0x0c4b, - 0x157c: 0x0c53, 0x157d: 0x0c67, 0x157e: 0x16bb, 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: 0x16c0, 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: 0x16d9, - 0x159e: 0x0603, 0x159f: 0x0d3f, 0x15a0: 0x0d33, 0x15a1: 0x0d4f, 0x15a2: 0x0d57, 0x15a3: 0x16e3, - 0x15a4: 0x0d5b, 0x15a5: 0x0d47, 0x15a6: 0x0d63, 0x15a7: 0x0607, 0x15a8: 0x0d67, 0x15a9: 0x0d6b, - 0x15aa: 0x0d6f, 0x15ab: 0x0d7b, 0x15ac: 0x16e8, 0x15ad: 0x0d83, 0x15ae: 0x060b, 0x15af: 0x0d8f, - 0x15b0: 0x16ed, 0x15b1: 0x0d93, 0x15b2: 0x060f, 0x15b3: 0x0d9f, 0x15b4: 0x0dab, 0x15b5: 0x0db7, - 0x15b6: 0x0dbb, 0x15b7: 0x16f2, 0x15b8: 0x1689, 0x15b9: 0x16f7, 0x15ba: 0x0ddb, 0x15bb: 0x16fc, - 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: 0x1701, 0x15c7: 0x0e07, 0x15c8: 0x0e3b, 0x15c9: 0x0e3f, 0x15ca: 0x0613, 0x15cb: 0x0e53, - 0x15cc: 0x0e4f, 0x15cd: 0x1706, 0x15ce: 0x0e33, 0x15cf: 0x0e6f, 0x15d0: 0x170b, 0x15d1: 0x1710, - 0x15d2: 0x0e73, 0x15d3: 0x0e87, 0x15d4: 0x0e83, 0x15d5: 0x0e7f, 0x15d6: 0x0617, 0x15d7: 0x0e8b, - 0x15d8: 0x0e9b, 0x15d9: 0x0e97, 0x15da: 0x0ea3, 0x15db: 0x164d, 0x15dc: 0x0eb3, 0x15dd: 0x1715, - 0x15de: 0x0ebf, 0x15df: 0x171f, 0x15e0: 0x0ed3, 0x15e1: 0x0edf, 0x15e2: 0x0ef3, 0x15e3: 0x1724, - 0x15e4: 0x0f07, 0x15e5: 0x0f0b, 0x15e6: 0x1729, 0x15e7: 0x172e, 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: 0x1733, - 0x15f6: 0x0fa3, 0x15f7: 0x1738, 0x15f8: 0x0faf, 0x15f9: 0x169d, 0x15fa: 0x0fbf, 0x15fb: 0x173d, - 0x15fc: 0x1742, 0x15fd: 0x1747, 0x15fe: 0x0627, 0x15ff: 0x062b, - // Block 0x58, offset 0x1600 - 0x1600: 0x0ff7, 0x1601: 0x1751, 0x1602: 0x174c, 0x1603: 0x1756, 0x1604: 0x175b, 0x1605: 0x0fff, - 0x1606: 0x1003, 0x1607: 0x1003, 0x1608: 0x100b, 0x1609: 0x0633, 0x160a: 0x100f, 0x160b: 0x0637, - 0x160c: 0x063b, 0x160d: 0x1765, 0x160e: 0x1023, 0x160f: 0x102b, 0x1610: 0x1037, 0x1611: 0x063f, - 0x1612: 0x176a, 0x1613: 0x105b, 0x1614: 0x176f, 0x1615: 0x1774, 0x1616: 0x107b, 0x1617: 0x1093, - 0x1618: 0x0643, 0x1619: 0x109b, 0x161a: 0x109f, 0x161b: 0x10a3, 0x161c: 0x1779, 0x161d: 0x177e, - 0x161e: 0x177e, 0x161f: 0x10bb, 0x1620: 0x0647, 0x1621: 0x1783, 0x1622: 0x10cf, 0x1623: 0x10d3, - 0x1624: 0x064b, 0x1625: 0x1788, 0x1626: 0x10ef, 0x1627: 0x064f, 0x1628: 0x10ff, 0x1629: 0x10f7, - 0x162a: 0x1107, 0x162b: 0x1792, 0x162c: 0x111f, 0x162d: 0x0653, 0x162e: 0x112b, 0x162f: 0x1133, - 0x1630: 0x1143, 0x1631: 0x0657, 0x1632: 0x179c, 0x1633: 0x17a1, 0x1634: 0x065b, 0x1635: 0x17a6, - 0x1636: 0x115b, 0x1637: 0x17ab, 0x1638: 0x1167, 0x1639: 0x1173, 0x163a: 0x117b, 0x163b: 0x17b0, - 0x163c: 0x17b5, 0x163d: 0x118f, 0x163e: 0x17ba, 0x163f: 0x1197, - // Block 0x59, offset 0x1640 - 0x1640: 0x16ca, 0x1641: 0x065f, 0x1642: 0x11af, 0x1643: 0x11b3, 0x1644: 0x0667, 0x1645: 0x11b7, - 0x1646: 0x0a33, 0x1647: 0x17bf, 0x1648: 0x17c4, 0x1649: 0x16cf, 0x164a: 0x16d4, 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: 0x17c9, - 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: 0x17ce, 0x1665: 0x17d8, 0x1666: 0x17d3, 0x1667: 0x066f, 0x1668: 0x126f, 0x1669: 0x1273, - 0x166a: 0x127b, 0x166b: 0x17ec, 0x166c: 0x127f, 0x166d: 0x17dd, 0x166e: 0x0673, 0x166f: 0x0677, - 0x1670: 0x17e2, 0x1671: 0x17e7, 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: 0x17f1, - 0x1686: 0x12fb, 0x1687: 0x12ff, 0x1688: 0x0687, 0x1689: 0x130b, 0x168a: 0x05bb, 0x168b: 0x17f6, - 0x168c: 0x17fb, 0x168d: 0x068b, 0x168e: 0x068f, 0x168f: 0x1337, 0x1690: 0x134f, 0x1691: 0x136b, - 0x1692: 0x137b, 0x1693: 0x1800, 0x1694: 0x138f, 0x1695: 0x1393, 0x1696: 0x13ab, 0x1697: 0x13b7, - 0x1698: 0x180a, 0x1699: 0x165c, 0x169a: 0x13c3, 0x169b: 0x13bf, 0x169c: 0x13cb, 0x169d: 0x1661, - 0x169e: 0x13d7, 0x169f: 0x13e3, 0x16a0: 0x180f, 0x16a1: 0x1814, 0x16a2: 0x1423, 0x16a3: 0x142f, - 0x16a4: 0x1437, 0x16a5: 0x1819, 0x16a6: 0x143b, 0x16a7: 0x1463, 0x16a8: 0x146f, 0x16a9: 0x1473, - 0x16aa: 0x146b, 0x16ab: 0x147f, 0x16ac: 0x1483, 0x16ad: 0x181e, 0x16ae: 0x148f, 0x16af: 0x0693, - 0x16b0: 0x1497, 0x16b1: 0x1823, 0x16b2: 0x0697, 0x16b3: 0x14cf, 0x16b4: 0x0ac3, 0x16b5: 0x14e7, - 0x16b6: 0x1828, 0x16b7: 0x1832, 0x16b8: 0x069b, 0x16b9: 0x069f, 0x16ba: 0x150f, 0x16bb: 0x1837, - 0x16bc: 0x06a3, 0x16bd: 0x183c, 0x16be: 0x1527, 0x16bf: 0x1527, - // Block 0x5b, offset 0x16c0 - 0x16c0: 0x152f, 0x16c1: 0x1841, 0x16c2: 0x1547, 0x16c3: 0x06a7, 0x16c4: 0x1557, 0x16c5: 0x1563, - 0x16c6: 0x156b, 0x16c7: 0x1573, 0x16c8: 0x06ab, 0x16c9: 0x1846, 0x16ca: 0x1587, 0x16cb: 0x15a3, - 0x16cc: 0x15af, 0x16cd: 0x06af, 0x16ce: 0x06b3, 0x16cf: 0x15b3, 0x16d0: 0x184b, 0x16d1: 0x06b7, - 0x16d2: 0x1850, 0x16d3: 0x1855, 0x16d4: 0x185a, 0x16d5: 0x15d7, 0x16d6: 0x06bb, 0x16d7: 0x15eb, - 0x16d8: 0x15f3, 0x16d9: 0x15f7, 0x16da: 0x15ff, 0x16db: 0x1607, 0x16dc: 0x160f, 0x16dd: 0x1864, -} - -// 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, - 0x392: 0xd2, 0x393: 0xd3, 0x396: 0xd4, 0x397: 0xd5, - 0x398: 0xd6, 0x39a: 0xd7, 0x39c: 0xd8, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xd9, 0x3ec: 0xda, - // Block 0x10, offset 0x400 - 0x432: 0xdb, - // Block 0x11, offset 0x440 - 0x445: 0xdc, 0x446: 0xdd, 0x447: 0xde, - 0x449: 0xdf, - 0x450: 0xe0, 0x451: 0xe1, 0x452: 0xe2, 0x453: 0xe3, 0x454: 0xe4, 0x455: 0xe5, 0x456: 0xe6, 0x457: 0xe7, - 0x458: 0xe8, 0x459: 0xe9, 0x45a: 0x4a, 0x45b: 0xea, 0x45c: 0xeb, 0x45d: 0xec, 0x45e: 0xed, 0x45f: 0x4b, - // Block 0x12, offset 0x480 - 0x4a3: 0xee, - 0x4b8: 0x4c, 0x4b9: 0x4d, 0x4ba: 0x4e, - // Block 0x13, offset 0x4c0 - 0x4c4: 0x4f, 0x4c5: 0xef, 0x4c6: 0xf0, - 0x4c8: 0x50, 0x4c9: 0xf1, - // 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: 152 entries, 304 bytes -var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x86, 0x8e, 0x95, 0x98, 0x9f, 0xa3, 0xa7, 0xa9, 0xab, 0xb4, 0xb8, 0xbf, 0xc4, 0xc7, 0xd1, 0xd3, 0xda, 0xe2, 0xe6, 0xe8, 0xeb, 0xef, 0xf5, 0x106, 0x112, 0x114, 0x11a, 0x11c, 0x11e, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12b, 0x12e, 0x130, 0x133, 0x136, 0x13a, 0x13f, 0x148, 0x14a, 0x14d, 0x14f, 0x15a, 0x165, 0x174, 0x182, 0x190, 0x1a0, 0x1ae, 0x1b5, 0x1bb, 0x1ca, 0x1ce, 0x1d0, 0x1d4, 0x1d6, 0x1d9, 0x1db, 0x1de, 0x1e0, 0x1e3, 0x1e5, 0x1e7, 0x1e9, 0x1f5, 0x1ff, 0x209, 0x20c, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21b, 0x21d, 0x21f, 0x221, 0x223, 0x229, 0x22c, 0x230, 0x232, 0x239, 0x23f, 0x245, 0x24d, 0x253, 0x259, 0x25f, 0x263, 0x265, 0x267, 0x269, 0x26b, 0x271, 0x274, 0x277, 0x27f, 0x286, 0x289, 0x28c, 0x28e, 0x296, 0x29d, 0x2a0, 0x2a6, 0x2a8, 0x2aa, 0x2ad, 0x2af, 0x2b1, 0x2b3, 0x2b5, 0x2c2, 0x2cc, 0x2ce, 0x2d0, 0x2d4, 0x2d9, 0x2e5, 0x2ea, 0x2f3, 0x2f9, 0x2fe, 0x302, 0x307, 0x30b, 0x31b, 0x329, 0x337, 0x345, 0x347, 0x351, 0x353} - -// nfkcSparseValues: 861 entries, 3444 bytes -var nfkcSparseValues = [861]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0002, lo: 0x0d}, - {value: 0x0001, lo: 0xa0, hi: 0xa0}, - {value: 0x4274, lo: 0xa8, hi: 0xa8}, - {value: 0x0083, lo: 0xaa, hi: 0xaa}, - {value: 0x4260, lo: 0xaf, hi: 0xaf}, - {value: 0x0025, lo: 0xb2, hi: 0xb3}, - {value: 0x4256, lo: 0xb4, hi: 0xb4}, - {value: 0x01dc, lo: 0xb5, hi: 0xb5}, - {value: 0x428d, lo: 0xb8, hi: 0xb8}, - {value: 0x0023, lo: 0xb9, hi: 0xb9}, - {value: 0x009f, lo: 0xba, hi: 0xba}, - {value: 0x2218, lo: 0xbc, hi: 0xbc}, - {value: 0x220c, lo: 0xbd, hi: 0xbd}, - {value: 0x22ae, lo: 0xbe, hi: 0xbe}, - // Block 0x1, offset 0xe - {value: 0x0091, lo: 0x03}, - {value: 0x4774, lo: 0xa0, hi: 0xa1}, - {value: 0x47a6, 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: 0x426a, lo: 0x98, hi: 0x98}, - {value: 0x426f, lo: 0x99, hi: 0x9a}, - {value: 0x4292, lo: 0x9b, hi: 0x9b}, - {value: 0x425b, lo: 0x9c, hi: 0x9c}, - {value: 0x427e, 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: 0x37a1, lo: 0x90, hi: 0x90}, - {value: 0x37ad, lo: 0x91, hi: 0x91}, - {value: 0x379b, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x3813, lo: 0x97, hi: 0x97}, - {value: 0x37dd, lo: 0x9c, hi: 0x9c}, - {value: 0x37c5, lo: 0x9d, hi: 0x9d}, - {value: 0x37ef, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x3819, lo: 0xb6, hi: 0xb6}, - {value: 0x381f, 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: 0x383d, lo: 0xa2, hi: 0xa2}, - {value: 0x3843, lo: 0xa3, hi: 0xa3}, - {value: 0x384f, lo: 0xa4, hi: 0xa4}, - {value: 0x3849, lo: 0xa5, hi: 0xa5}, - {value: 0x3855, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x8, offset 0x47 - {value: 0x0000, lo: 0x0e}, - {value: 0x3867, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x385b, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3861, 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: 0x0f}, - {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 0x86 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3ed4, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3edc, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3ee4, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0x10, offset 0x8e - {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: 0x45ae, lo: 0x98, hi: 0x9f}, - // Block 0x11, offset 0x95 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x12, offset 0x98 - {value: 0x0008, lo: 0x06}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2c9a, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x45ee, lo: 0x9c, hi: 0x9d}, - {value: 0x45fe, lo: 0x9f, hi: 0x9f}, - // Block 0x13, offset 0x9f - {value: 0x0000, lo: 0x03}, - {value: 0x4626, lo: 0xb3, hi: 0xb3}, - {value: 0x462e, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x14, offset 0xa3 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4606, lo: 0x99, hi: 0x9b}, - {value: 0x461e, lo: 0x9e, hi: 0x9e}, - // Block 0x15, offset 0xa7 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x16, offset 0xa9 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x17, offset 0xab - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb2, lo: 0x88, hi: 0x88}, - {value: 0x2caa, lo: 0x8b, hi: 0x8b}, - {value: 0x2cba, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x4636, lo: 0x9c, hi: 0x9c}, - {value: 0x463e, lo: 0x9d, hi: 0x9d}, - // Block 0x18, offset 0xb4 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc2, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x19, offset 0xb8 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cca, lo: 0x8a, hi: 0x8a}, - {value: 0x2cda, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd2, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1a, offset 0xbf - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3eec, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1b, offset 0xc4 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1c, offset 0xc7 - {value: 0x0000, lo: 0x09}, - {value: 0x2ce2, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cea, lo: 0x87, hi: 0x87}, - {value: 0x2cf2, lo: 0x88, hi: 0x88}, - {value: 0x2f4c, lo: 0x8a, hi: 0x8a}, - {value: 0x2dd4, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1d, offset 0xd1 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1e, offset 0xd3 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cfa, lo: 0x8a, hi: 0x8a}, - {value: 0x2d0a, lo: 0x8b, hi: 0x8b}, - {value: 0x2d02, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1f, offset 0xda - {value: 0x6bee, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3ef4, lo: 0x9a, hi: 0x9a}, - {value: 0x2f54, lo: 0x9c, hi: 0x9c}, - {value: 0x2ddf, lo: 0x9d, hi: 0x9d}, - {value: 0x2d12, lo: 0x9e, hi: 0x9f}, - // Block 0x20, offset 0xe2 - {value: 0x0000, lo: 0x03}, - {value: 0x261d, lo: 0xb3, hi: 0xb3}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x21, offset 0xe6 - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x22, offset 0xe8 - {value: 0x0000, lo: 0x02}, - {value: 0x2632, lo: 0xb3, hi: 0xb3}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - // Block 0x23, offset 0xeb - {value: 0x0000, lo: 0x03}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - {value: 0x2624, lo: 0x9c, hi: 0x9c}, - {value: 0x262b, lo: 0x9d, hi: 0x9d}, - // Block 0x24, offset 0xef - {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 0xf5 - {value: 0x0000, lo: 0x10}, - {value: 0x2640, lo: 0x83, hi: 0x83}, - {value: 0x2647, lo: 0x8d, hi: 0x8d}, - {value: 0x264e, lo: 0x92, hi: 0x92}, - {value: 0x2655, lo: 0x97, hi: 0x97}, - {value: 0x265c, lo: 0x9c, hi: 0x9c}, - {value: 0x2639, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a62, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a6b, lo: 0xb5, hi: 0xb5}, - {value: 0x4646, lo: 0xb6, hi: 0xb6}, - {value: 0x4686, lo: 0xb7, hi: 0xb7}, - {value: 0x464e, lo: 0xb8, hi: 0xb8}, - {value: 0x4691, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x26, offset 0x106 - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a74, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x266a, lo: 0x93, hi: 0x93}, - {value: 0x2671, lo: 0x9d, hi: 0x9d}, - {value: 0x2678, lo: 0xa2, hi: 0xa2}, - {value: 0x267f, lo: 0xa7, hi: 0xa7}, - {value: 0x2686, lo: 0xac, hi: 0xac}, - {value: 0x2663, lo: 0xb9, hi: 0xb9}, - // Block 0x27, offset 0x112 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x28, offset 0x114 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d1a, 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 0x11a - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x2a, offset 0x11c - {value: 0x0000, lo: 0x01}, - {value: 0x030f, lo: 0xbc, hi: 0xbc}, - // Block 0x2b, offset 0x11e - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2c, offset 0x120 - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2d, offset 0x122 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2e, offset 0x124 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2f, offset 0x126 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x30, offset 0x128 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x31, offset 0x12b - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x32, offset 0x12e - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x33, offset 0x130 - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x34, offset 0x133 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x35, offset 0x136 - {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 0x13a - {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 0x13f - {value: 0x0000, lo: 0x08}, - {value: 0x2d62, lo: 0x80, hi: 0x80}, - {value: 0x2d6a, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d72, 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 0x148 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x39, offset 0x14a - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x3a, offset 0x14d - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3b, offset 0x14f - {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 0x15a - {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 0x165 - {value: 0x0000, lo: 0x0e}, - {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: 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 0x174 - {value: 0x0000, lo: 0x0d}, - {value: 0x0001, lo: 0x80, hi: 0x8a}, - {value: 0x043b, lo: 0x91, hi: 0x91}, - {value: 0x4297, lo: 0x97, hi: 0x97}, - {value: 0x001d, lo: 0xa4, hi: 0xa4}, - {value: 0x186f, lo: 0xa5, hi: 0xa5}, - {value: 0x1b58, lo: 0xa6, hi: 0xa6}, - {value: 0x0001, lo: 0xaf, hi: 0xaf}, - {value: 0x268d, lo: 0xb3, hi: 0xb3}, - {value: 0x27fa, lo: 0xb4, hi: 0xb4}, - {value: 0x2694, lo: 0xb6, hi: 0xb6}, - {value: 0x2804, lo: 0xb7, hi: 0xb7}, - {value: 0x1869, lo: 0xbc, hi: 0xbc}, - {value: 0x4265, lo: 0xbe, hi: 0xbe}, - // Block 0x3f, offset 0x182 - {value: 0x0002, lo: 0x0d}, - {value: 0x192f, lo: 0x87, hi: 0x87}, - {value: 0x192c, lo: 0x88, hi: 0x88}, - {value: 0x186c, lo: 0x89, hi: 0x89}, - {value: 0x298a, 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 0x190 - {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: 0x1995, lo: 0xa8, hi: 0xa8}, - // Block 0x41, offset 0x1a0 - {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 0x1ae - {value: 0x0007, lo: 0x06}, - {value: 0x217c, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bb5, lo: 0x9a, hi: 0x9b}, - {value: 0x3bc3, lo: 0xae, hi: 0xae}, - // Block 0x43, offset 0x1b5 - {value: 0x000e, lo: 0x05}, - {value: 0x3bca, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd1, 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 0x1bb - {value: 0x0173, lo: 0x0e}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3bdf, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3be6, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bed, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bf4, lo: 0xa4, hi: 0xa4}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x3bfb, lo: 0xa6, hi: 0xa6}, - {value: 0x269b, lo: 0xac, hi: 0xad}, - {value: 0x26a2, lo: 0xaf, hi: 0xaf}, - {value: 0x2818, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x45, offset 0x1ca - {value: 0x0007, lo: 0x03}, - {value: 0x3c64, lo: 0xa0, hi: 0xa1}, - {value: 0x3c8e, lo: 0xa2, hi: 0xa3}, - {value: 0x3cb8, lo: 0xaa, hi: 0xad}, - // Block 0x46, offset 0x1ce - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x47, offset 0x1d0 - {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 0x1d4 - {value: 0x0000, lo: 0x01}, - {value: 0x2997, lo: 0x8c, hi: 0x8c}, - // Block 0x49, offset 0x1d6 - {value: 0x0263, lo: 0x02}, - {value: 0x1b88, lo: 0xb4, hi: 0xb4}, - {value: 0x1929, lo: 0xb5, hi: 0xb6}, - // Block 0x4a, offset 0x1d9 - {value: 0x0000, lo: 0x01}, - {value: 0x456f, lo: 0x9c, hi: 0x9c}, - // Block 0x4b, offset 0x1db - {value: 0x0000, lo: 0x02}, - {value: 0x0095, lo: 0xbc, hi: 0xbc}, - {value: 0x006d, lo: 0xbd, hi: 0xbd}, - // Block 0x4c, offset 0x1de - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x4d, offset 0x1e0 - {value: 0x0000, lo: 0x02}, - {value: 0x047f, lo: 0xaf, hi: 0xaf}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x4e, offset 0x1e3 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x4f, offset 0x1e5 - {value: 0x0000, lo: 0x01}, - {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, - // Block 0x50, offset 0x1e7 - {value: 0x0000, lo: 0x01}, - {value: 0x162b, lo: 0xb3, hi: 0xb3}, - // Block 0x51, offset 0x1e9 - {value: 0x0004, lo: 0x0b}, - {value: 0x1593, lo: 0x80, hi: 0x82}, - {value: 0x15ab, lo: 0x83, hi: 0x83}, - {value: 0x15c3, lo: 0x84, hi: 0x85}, - {value: 0x15d3, lo: 0x86, hi: 0x89}, - {value: 0x15e7, lo: 0x8a, hi: 0x8c}, - {value: 0x15fb, lo: 0x8d, hi: 0x8d}, - {value: 0x1603, lo: 0x8e, hi: 0x8e}, - {value: 0x160b, lo: 0x8f, hi: 0x90}, - {value: 0x1617, lo: 0x91, hi: 0x93}, - {value: 0x1627, lo: 0x94, hi: 0x94}, - {value: 0x162f, lo: 0x95, hi: 0x95}, - // Block 0x52, offset 0x1f5 - {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 0x1ff - {value: 0x0005, lo: 0x09}, - {value: 0x0313, lo: 0xb1, hi: 0xb1}, - {value: 0x0317, lo: 0xb2, hi: 0xb2}, - {value: 0x4341, lo: 0xb3, hi: 0xb3}, - {value: 0x031b, lo: 0xb4, hi: 0xb4}, - {value: 0x4346, lo: 0xb5, hi: 0xb6}, - {value: 0x031f, lo: 0xb7, hi: 0xb7}, - {value: 0x0323, lo: 0xb8, hi: 0xb8}, - {value: 0x0327, lo: 0xb9, hi: 0xb9}, - {value: 0x4350, lo: 0xba, hi: 0xbf}, - // Block 0x54, offset 0x209 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x55, offset 0x20c - {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 0x210 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x57, offset 0x212 - {value: 0x0000, lo: 0x01}, - {value: 0x1637, lo: 0xb0, hi: 0xb0}, - // Block 0x58, offset 0x214 - {value: 0x000c, lo: 0x01}, - {value: 0x00d7, lo: 0xb8, hi: 0xb9}, - // Block 0x59, offset 0x216 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x5a, offset 0x218 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x5b, offset 0x21b - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x5c, offset 0x21d - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x5d, offset 0x21f - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x5e, offset 0x221 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x5f, offset 0x223 - {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 0x229 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x61, offset 0x22c - {value: 0x0008, lo: 0x03}, - {value: 0x1633, lo: 0x9c, hi: 0x9d}, - {value: 0x0125, lo: 0x9e, hi: 0x9e}, - {value: 0x163f, lo: 0x9f, hi: 0x9f}, - // Block 0x62, offset 0x230 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x63, offset 0x232 - {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 0x239 - {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 0x23f - {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 0x245 - {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 0x24d - {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 0x253 - {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 0x259 - {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 0x25f - {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 0x263 - {value: 0x0002, lo: 0x01}, - {value: 0x0003, lo: 0x81, hi: 0xbf}, - // Block 0x6c, offset 0x265 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x6d, offset 0x267 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x6e, offset 0x269 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x6f, offset 0x26b - {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 0x271 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x71, offset 0x274 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x72, offset 0x277 - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x4234, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x423e, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x4248, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x73, offset 0x27f - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d7a, lo: 0xae, hi: 0xae}, - {value: 0x2d84, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x74, offset 0x286 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x75, offset 0x289 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x76, offset 0x28c - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x77, offset 0x28e - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d8e, lo: 0x8b, hi: 0x8b}, - {value: 0x2d98, 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 0x296 - {value: 0x6b5e, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2dac, lo: 0xbb, hi: 0xbb}, - {value: 0x2da2, lo: 0xbc, hi: 0xbd}, - {value: 0x2db6, lo: 0xbe, hi: 0xbe}, - // Block 0x79, offset 0x29d - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x7a, offset 0x2a0 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc0, lo: 0xba, hi: 0xba}, - {value: 0x2dca, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7b, offset 0x2a6 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x7c, offset 0x2a8 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7d, offset 0x2aa - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x7e, offset 0x2ad - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x7f, offset 0x2af - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x80, offset 0x2b1 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x81, offset 0x2b3 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x82, offset 0x2b5 - {value: 0x0000, lo: 0x0c}, - {value: 0x465e, lo: 0x9e, hi: 0x9e}, - {value: 0x4668, lo: 0x9f, hi: 0x9f}, - {value: 0x469c, lo: 0xa0, hi: 0xa0}, - {value: 0x46aa, lo: 0xa1, hi: 0xa1}, - {value: 0x46b8, lo: 0xa2, hi: 0xa2}, - {value: 0x46c6, lo: 0xa3, hi: 0xa3}, - {value: 0x46d4, 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 0x83, offset 0x2c2 - {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: 0x4672, lo: 0xbb, hi: 0xbb}, - {value: 0x467c, lo: 0xbc, hi: 0xbc}, - {value: 0x46e2, lo: 0xbd, hi: 0xbd}, - {value: 0x46fe, lo: 0xbe, hi: 0xbe}, - {value: 0x46f0, lo: 0xbf, hi: 0xbf}, - // Block 0x84, offset 0x2cc - {value: 0x0000, lo: 0x01}, - {value: 0x470c, lo: 0x80, hi: 0x80}, - // Block 0x85, offset 0x2ce - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x86, offset 0x2d0 - {value: 0x0002, lo: 0x03}, - {value: 0x0043, lo: 0x80, hi: 0x99}, - {value: 0x0083, lo: 0x9a, hi: 0xb3}, - {value: 0x0043, lo: 0xb4, hi: 0xbf}, - // Block 0x87, offset 0x2d4 - {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 0x88, offset 0x2d9 - {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 0x89, offset 0x2e5 - {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 0x8a, offset 0x2ea - {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 0x8b, offset 0x2f3 - {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 0x8c, offset 0x2f9 - {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 0x8d, offset 0x2fe - {value: 0x0002, lo: 0x03}, - {value: 0x008f, lo: 0x80, hi: 0x93}, - {value: 0x0043, lo: 0x94, hi: 0xad}, - {value: 0x0083, lo: 0xae, hi: 0xbf}, - // Block 0x8e, offset 0x302 - {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 0x8f, offset 0x307 - {value: 0x0002, lo: 0x03}, - {value: 0x004b, lo: 0x80, hi: 0x95}, - {value: 0x0083, lo: 0x96, hi: 0xaf}, - {value: 0x0043, lo: 0xb0, hi: 0xbf}, - // Block 0x90, offset 0x30b - {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 0x91, offset 0x31b - {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 0x92, offset 0x329 - {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 0x93, offset 0x337 - {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 0x94, offset 0x345 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0x95, offset 0x347 - {value: 0x0002, lo: 0x09}, - {value: 0x0063, lo: 0x80, hi: 0x89}, - {value: 0x194d, lo: 0x8a, hi: 0x8a}, - {value: 0x197d, lo: 0x8b, hi: 0x8b}, - {value: 0x1998, lo: 0x8c, hi: 0x8c}, - {value: 0x199e, lo: 0x8d, hi: 0x8d}, - {value: 0x1bbc, lo: 0x8e, hi: 0x8e}, - {value: 0x19aa, lo: 0x8f, hi: 0x8f}, - {value: 0x1977, lo: 0xaa, hi: 0xaa}, - {value: 0x197a, lo: 0xab, hi: 0xab}, - // Block 0x96, offset 0x351 - {value: 0x0000, lo: 0x01}, - {value: 0x193b, lo: 0x90, hi: 0x90}, - // Block 0x97, offset 0x353 - {value: 0x0028, lo: 0x09}, - {value: 0x285e, lo: 0x80, hi: 0x80}, - {value: 0x2822, lo: 0x81, hi: 0x81}, - {value: 0x282c, lo: 0x82, hi: 0x82}, - {value: 0x2840, lo: 0x83, hi: 0x84}, - {value: 0x284a, lo: 0x85, hi: 0x86}, - {value: 0x2836, lo: 0x87, hi: 0x87}, - {value: 0x2854, lo: 0x88, hi: 0x88}, - {value: 0x0b6f, lo: 0x90, hi: 0x90}, - {value: 0x08e7, lo: 0x91, hi: 0x91}, -} - -// recompMap: 7520 bytes (entries only) -var recompMap = map[uint32]rune{ - 0x00410300: 0x00C0, - 0x00410301: 0x00C1, - 0x00410302: 0x00C2, - 0x00410303: 0x00C3, - 0x00410308: 0x00C4, - 0x0041030A: 0x00C5, - 0x00430327: 0x00C7, - 0x00450300: 0x00C8, - 0x00450301: 0x00C9, - 0x00450302: 0x00CA, - 0x00450308: 0x00CB, - 0x00490300: 0x00CC, - 0x00490301: 0x00CD, - 0x00490302: 0x00CE, - 0x00490308: 0x00CF, - 0x004E0303: 0x00D1, - 0x004F0300: 0x00D2, - 0x004F0301: 0x00D3, - 0x004F0302: 0x00D4, - 0x004F0303: 0x00D5, - 0x004F0308: 0x00D6, - 0x00550300: 0x00D9, - 0x00550301: 0x00DA, - 0x00550302: 0x00DB, - 0x00550308: 0x00DC, - 0x00590301: 0x00DD, - 0x00610300: 0x00E0, - 0x00610301: 0x00E1, - 0x00610302: 0x00E2, - 0x00610303: 0x00E3, - 0x00610308: 0x00E4, - 0x0061030A: 0x00E5, - 0x00630327: 0x00E7, - 0x00650300: 0x00E8, - 0x00650301: 0x00E9, - 0x00650302: 0x00EA, - 0x00650308: 0x00EB, - 0x00690300: 0x00EC, - 0x00690301: 0x00ED, - 0x00690302: 0x00EE, - 0x00690308: 0x00EF, - 0x006E0303: 0x00F1, - 0x006F0300: 0x00F2, - 0x006F0301: 0x00F3, - 0x006F0302: 0x00F4, - 0x006F0303: 0x00F5, - 0x006F0308: 0x00F6, - 0x00750300: 0x00F9, - 0x00750301: 0x00FA, - 0x00750302: 0x00FB, - 0x00750308: 0x00FC, - 0x00790301: 0x00FD, - 0x00790308: 0x00FF, - 0x00410304: 0x0100, - 0x00610304: 0x0101, - 0x00410306: 0x0102, - 0x00610306: 0x0103, - 0x00410328: 0x0104, - 0x00610328: 0x0105, - 0x00430301: 0x0106, - 0x00630301: 0x0107, - 0x00430302: 0x0108, - 0x00630302: 0x0109, - 0x00430307: 0x010A, - 0x00630307: 0x010B, - 0x0043030C: 0x010C, - 0x0063030C: 0x010D, - 0x0044030C: 0x010E, - 0x0064030C: 0x010F, - 0x00450304: 0x0112, - 0x00650304: 0x0113, - 0x00450306: 0x0114, - 0x00650306: 0x0115, - 0x00450307: 0x0116, - 0x00650307: 0x0117, - 0x00450328: 0x0118, - 0x00650328: 0x0119, - 0x0045030C: 0x011A, - 0x0065030C: 0x011B, - 0x00470302: 0x011C, - 0x00670302: 0x011D, - 0x00470306: 0x011E, - 0x00670306: 0x011F, - 0x00470307: 0x0120, - 0x00670307: 0x0121, - 0x00470327: 0x0122, - 0x00670327: 0x0123, - 0x00480302: 0x0124, - 0x00680302: 0x0125, - 0x00490303: 0x0128, - 0x00690303: 0x0129, - 0x00490304: 0x012A, - 0x00690304: 0x012B, - 0x00490306: 0x012C, - 0x00690306: 0x012D, - 0x00490328: 0x012E, - 0x00690328: 0x012F, - 0x00490307: 0x0130, - 0x004A0302: 0x0134, - 0x006A0302: 0x0135, - 0x004B0327: 0x0136, - 0x006B0327: 0x0137, - 0x004C0301: 0x0139, - 0x006C0301: 0x013A, - 0x004C0327: 0x013B, - 0x006C0327: 0x013C, - 0x004C030C: 0x013D, - 0x006C030C: 0x013E, - 0x004E0301: 0x0143, - 0x006E0301: 0x0144, - 0x004E0327: 0x0145, - 0x006E0327: 0x0146, - 0x004E030C: 0x0147, - 0x006E030C: 0x0148, - 0x004F0304: 0x014C, - 0x006F0304: 0x014D, - 0x004F0306: 0x014E, - 0x006F0306: 0x014F, - 0x004F030B: 0x0150, - 0x006F030B: 0x0151, - 0x00520301: 0x0154, - 0x00720301: 0x0155, - 0x00520327: 0x0156, - 0x00720327: 0x0157, - 0x0052030C: 0x0158, - 0x0072030C: 0x0159, - 0x00530301: 0x015A, - 0x00730301: 0x015B, - 0x00530302: 0x015C, - 0x00730302: 0x015D, - 0x00530327: 0x015E, - 0x00730327: 0x015F, - 0x0053030C: 0x0160, - 0x0073030C: 0x0161, - 0x00540327: 0x0162, - 0x00740327: 0x0163, - 0x0054030C: 0x0164, - 0x0074030C: 0x0165, - 0x00550303: 0x0168, - 0x00750303: 0x0169, - 0x00550304: 0x016A, - 0x00750304: 0x016B, - 0x00550306: 0x016C, - 0x00750306: 0x016D, - 0x0055030A: 0x016E, - 0x0075030A: 0x016F, - 0x0055030B: 0x0170, - 0x0075030B: 0x0171, - 0x00550328: 0x0172, - 0x00750328: 0x0173, - 0x00570302: 0x0174, - 0x00770302: 0x0175, - 0x00590302: 0x0176, - 0x00790302: 0x0177, - 0x00590308: 0x0178, - 0x005A0301: 0x0179, - 0x007A0301: 0x017A, - 0x005A0307: 0x017B, - 0x007A0307: 0x017C, - 0x005A030C: 0x017D, - 0x007A030C: 0x017E, - 0x004F031B: 0x01A0, - 0x006F031B: 0x01A1, - 0x0055031B: 0x01AF, - 0x0075031B: 0x01B0, - 0x0041030C: 0x01CD, - 0x0061030C: 0x01CE, - 0x0049030C: 0x01CF, - 0x0069030C: 0x01D0, - 0x004F030C: 0x01D1, - 0x006F030C: 0x01D2, - 0x0055030C: 0x01D3, - 0x0075030C: 0x01D4, - 0x00DC0304: 0x01D5, - 0x00FC0304: 0x01D6, - 0x00DC0301: 0x01D7, - 0x00FC0301: 0x01D8, - 0x00DC030C: 0x01D9, - 0x00FC030C: 0x01DA, - 0x00DC0300: 0x01DB, - 0x00FC0300: 0x01DC, - 0x00C40304: 0x01DE, - 0x00E40304: 0x01DF, - 0x02260304: 0x01E0, - 0x02270304: 0x01E1, - 0x00C60304: 0x01E2, - 0x00E60304: 0x01E3, - 0x0047030C: 0x01E6, - 0x0067030C: 0x01E7, - 0x004B030C: 0x01E8, - 0x006B030C: 0x01E9, - 0x004F0328: 0x01EA, - 0x006F0328: 0x01EB, - 0x01EA0304: 0x01EC, - 0x01EB0304: 0x01ED, - 0x01B7030C: 0x01EE, - 0x0292030C: 0x01EF, - 0x006A030C: 0x01F0, - 0x00470301: 0x01F4, - 0x00670301: 0x01F5, - 0x004E0300: 0x01F8, - 0x006E0300: 0x01F9, - 0x00C50301: 0x01FA, - 0x00E50301: 0x01FB, - 0x00C60301: 0x01FC, - 0x00E60301: 0x01FD, - 0x00D80301: 0x01FE, - 0x00F80301: 0x01FF, - 0x0041030F: 0x0200, - 0x0061030F: 0x0201, - 0x00410311: 0x0202, - 0x00610311: 0x0203, - 0x0045030F: 0x0204, - 0x0065030F: 0x0205, - 0x00450311: 0x0206, - 0x00650311: 0x0207, - 0x0049030F: 0x0208, - 0x0069030F: 0x0209, - 0x00490311: 0x020A, - 0x00690311: 0x020B, - 0x004F030F: 0x020C, - 0x006F030F: 0x020D, - 0x004F0311: 0x020E, - 0x006F0311: 0x020F, - 0x0052030F: 0x0210, - 0x0072030F: 0x0211, - 0x00520311: 0x0212, - 0x00720311: 0x0213, - 0x0055030F: 0x0214, - 0x0075030F: 0x0215, - 0x00550311: 0x0216, - 0x00750311: 0x0217, - 0x00530326: 0x0218, - 0x00730326: 0x0219, - 0x00540326: 0x021A, - 0x00740326: 0x021B, - 0x0048030C: 0x021E, - 0x0068030C: 0x021F, - 0x00410307: 0x0226, - 0x00610307: 0x0227, - 0x00450327: 0x0228, - 0x00650327: 0x0229, - 0x00D60304: 0x022A, - 0x00F60304: 0x022B, - 0x00D50304: 0x022C, - 0x00F50304: 0x022D, - 0x004F0307: 0x022E, - 0x006F0307: 0x022F, - 0x022E0304: 0x0230, - 0x022F0304: 0x0231, - 0x00590304: 0x0232, - 0x00790304: 0x0233, - 0x00A80301: 0x0385, - 0x03910301: 0x0386, - 0x03950301: 0x0388, - 0x03970301: 0x0389, - 0x03990301: 0x038A, - 0x039F0301: 0x038C, - 0x03A50301: 0x038E, - 0x03A90301: 0x038F, - 0x03CA0301: 0x0390, - 0x03990308: 0x03AA, - 0x03A50308: 0x03AB, - 0x03B10301: 0x03AC, - 0x03B50301: 0x03AD, - 0x03B70301: 0x03AE, - 0x03B90301: 0x03AF, - 0x03CB0301: 0x03B0, - 0x03B90308: 0x03CA, - 0x03C50308: 0x03CB, - 0x03BF0301: 0x03CC, - 0x03C50301: 0x03CD, - 0x03C90301: 0x03CE, - 0x03D20301: 0x03D3, - 0x03D20308: 0x03D4, - 0x04150300: 0x0400, - 0x04150308: 0x0401, - 0x04130301: 0x0403, - 0x04060308: 0x0407, - 0x041A0301: 0x040C, - 0x04180300: 0x040D, - 0x04230306: 0x040E, - 0x04180306: 0x0419, - 0x04380306: 0x0439, - 0x04350300: 0x0450, - 0x04350308: 0x0451, - 0x04330301: 0x0453, - 0x04560308: 0x0457, - 0x043A0301: 0x045C, - 0x04380300: 0x045D, - 0x04430306: 0x045E, - 0x0474030F: 0x0476, - 0x0475030F: 0x0477, - 0x04160306: 0x04C1, - 0x04360306: 0x04C2, - 0x04100306: 0x04D0, - 0x04300306: 0x04D1, - 0x04100308: 0x04D2, - 0x04300308: 0x04D3, - 0x04150306: 0x04D6, - 0x04350306: 0x04D7, - 0x04D80308: 0x04DA, - 0x04D90308: 0x04DB, - 0x04160308: 0x04DC, - 0x04360308: 0x04DD, - 0x04170308: 0x04DE, - 0x04370308: 0x04DF, - 0x04180304: 0x04E2, - 0x04380304: 0x04E3, - 0x04180308: 0x04E4, - 0x04380308: 0x04E5, - 0x041E0308: 0x04E6, - 0x043E0308: 0x04E7, - 0x04E80308: 0x04EA, - 0x04E90308: 0x04EB, - 0x042D0308: 0x04EC, - 0x044D0308: 0x04ED, - 0x04230304: 0x04EE, - 0x04430304: 0x04EF, - 0x04230308: 0x04F0, - 0x04430308: 0x04F1, - 0x0423030B: 0x04F2, - 0x0443030B: 0x04F3, - 0x04270308: 0x04F4, - 0x04470308: 0x04F5, - 0x042B0308: 0x04F8, - 0x044B0308: 0x04F9, - 0x06270653: 0x0622, - 0x06270654: 0x0623, - 0x06480654: 0x0624, - 0x06270655: 0x0625, - 0x064A0654: 0x0626, - 0x06D50654: 0x06C0, - 0x06C10654: 0x06C2, - 0x06D20654: 0x06D3, - 0x0928093C: 0x0929, - 0x0930093C: 0x0931, - 0x0933093C: 0x0934, - 0x09C709BE: 0x09CB, - 0x09C709D7: 0x09CC, - 0x0B470B56: 0x0B48, - 0x0B470B3E: 0x0B4B, - 0x0B470B57: 0x0B4C, - 0x0B920BD7: 0x0B94, - 0x0BC60BBE: 0x0BCA, - 0x0BC70BBE: 0x0BCB, - 0x0BC60BD7: 0x0BCC, - 0x0C460C56: 0x0C48, - 0x0CBF0CD5: 0x0CC0, - 0x0CC60CD5: 0x0CC7, - 0x0CC60CD6: 0x0CC8, - 0x0CC60CC2: 0x0CCA, - 0x0CCA0CD5: 0x0CCB, - 0x0D460D3E: 0x0D4A, - 0x0D470D3E: 0x0D4B, - 0x0D460D57: 0x0D4C, - 0x0DD90DCA: 0x0DDA, - 0x0DD90DCF: 0x0DDC, - 0x0DDC0DCA: 0x0DDD, - 0x0DD90DDF: 0x0DDE, - 0x1025102E: 0x1026, - 0x1B051B35: 0x1B06, - 0x1B071B35: 0x1B08, - 0x1B091B35: 0x1B0A, - 0x1B0B1B35: 0x1B0C, - 0x1B0D1B35: 0x1B0E, - 0x1B111B35: 0x1B12, - 0x1B3A1B35: 0x1B3B, - 0x1B3C1B35: 0x1B3D, - 0x1B3E1B35: 0x1B40, - 0x1B3F1B35: 0x1B41, - 0x1B421B35: 0x1B43, - 0x00410325: 0x1E00, - 0x00610325: 0x1E01, - 0x00420307: 0x1E02, - 0x00620307: 0x1E03, - 0x00420323: 0x1E04, - 0x00620323: 0x1E05, - 0x00420331: 0x1E06, - 0x00620331: 0x1E07, - 0x00C70301: 0x1E08, - 0x00E70301: 0x1E09, - 0x00440307: 0x1E0A, - 0x00640307: 0x1E0B, - 0x00440323: 0x1E0C, - 0x00640323: 0x1E0D, - 0x00440331: 0x1E0E, - 0x00640331: 0x1E0F, - 0x00440327: 0x1E10, - 0x00640327: 0x1E11, - 0x0044032D: 0x1E12, - 0x0064032D: 0x1E13, - 0x01120300: 0x1E14, - 0x01130300: 0x1E15, - 0x01120301: 0x1E16, - 0x01130301: 0x1E17, - 0x0045032D: 0x1E18, - 0x0065032D: 0x1E19, - 0x00450330: 0x1E1A, - 0x00650330: 0x1E1B, - 0x02280306: 0x1E1C, - 0x02290306: 0x1E1D, - 0x00460307: 0x1E1E, - 0x00660307: 0x1E1F, - 0x00470304: 0x1E20, - 0x00670304: 0x1E21, - 0x00480307: 0x1E22, - 0x00680307: 0x1E23, - 0x00480323: 0x1E24, - 0x00680323: 0x1E25, - 0x00480308: 0x1E26, - 0x00680308: 0x1E27, - 0x00480327: 0x1E28, - 0x00680327: 0x1E29, - 0x0048032E: 0x1E2A, - 0x0068032E: 0x1E2B, - 0x00490330: 0x1E2C, - 0x00690330: 0x1E2D, - 0x00CF0301: 0x1E2E, - 0x00EF0301: 0x1E2F, - 0x004B0301: 0x1E30, - 0x006B0301: 0x1E31, - 0x004B0323: 0x1E32, - 0x006B0323: 0x1E33, - 0x004B0331: 0x1E34, - 0x006B0331: 0x1E35, - 0x004C0323: 0x1E36, - 0x006C0323: 0x1E37, - 0x1E360304: 0x1E38, - 0x1E370304: 0x1E39, - 0x004C0331: 0x1E3A, - 0x006C0331: 0x1E3B, - 0x004C032D: 0x1E3C, - 0x006C032D: 0x1E3D, - 0x004D0301: 0x1E3E, - 0x006D0301: 0x1E3F, - 0x004D0307: 0x1E40, - 0x006D0307: 0x1E41, - 0x004D0323: 0x1E42, - 0x006D0323: 0x1E43, - 0x004E0307: 0x1E44, - 0x006E0307: 0x1E45, - 0x004E0323: 0x1E46, - 0x006E0323: 0x1E47, - 0x004E0331: 0x1E48, - 0x006E0331: 0x1E49, - 0x004E032D: 0x1E4A, - 0x006E032D: 0x1E4B, - 0x00D50301: 0x1E4C, - 0x00F50301: 0x1E4D, - 0x00D50308: 0x1E4E, - 0x00F50308: 0x1E4F, - 0x014C0300: 0x1E50, - 0x014D0300: 0x1E51, - 0x014C0301: 0x1E52, - 0x014D0301: 0x1E53, - 0x00500301: 0x1E54, - 0x00700301: 0x1E55, - 0x00500307: 0x1E56, - 0x00700307: 0x1E57, - 0x00520307: 0x1E58, - 0x00720307: 0x1E59, - 0x00520323: 0x1E5A, - 0x00720323: 0x1E5B, - 0x1E5A0304: 0x1E5C, - 0x1E5B0304: 0x1E5D, - 0x00520331: 0x1E5E, - 0x00720331: 0x1E5F, - 0x00530307: 0x1E60, - 0x00730307: 0x1E61, - 0x00530323: 0x1E62, - 0x00730323: 0x1E63, - 0x015A0307: 0x1E64, - 0x015B0307: 0x1E65, - 0x01600307: 0x1E66, - 0x01610307: 0x1E67, - 0x1E620307: 0x1E68, - 0x1E630307: 0x1E69, - 0x00540307: 0x1E6A, - 0x00740307: 0x1E6B, - 0x00540323: 0x1E6C, - 0x00740323: 0x1E6D, - 0x00540331: 0x1E6E, - 0x00740331: 0x1E6F, - 0x0054032D: 0x1E70, - 0x0074032D: 0x1E71, - 0x00550324: 0x1E72, - 0x00750324: 0x1E73, - 0x00550330: 0x1E74, - 0x00750330: 0x1E75, - 0x0055032D: 0x1E76, - 0x0075032D: 0x1E77, - 0x01680301: 0x1E78, - 0x01690301: 0x1E79, - 0x016A0308: 0x1E7A, - 0x016B0308: 0x1E7B, - 0x00560303: 0x1E7C, - 0x00760303: 0x1E7D, - 0x00560323: 0x1E7E, - 0x00760323: 0x1E7F, - 0x00570300: 0x1E80, - 0x00770300: 0x1E81, - 0x00570301: 0x1E82, - 0x00770301: 0x1E83, - 0x00570308: 0x1E84, - 0x00770308: 0x1E85, - 0x00570307: 0x1E86, - 0x00770307: 0x1E87, - 0x00570323: 0x1E88, - 0x00770323: 0x1E89, - 0x00580307: 0x1E8A, - 0x00780307: 0x1E8B, - 0x00580308: 0x1E8C, - 0x00780308: 0x1E8D, - 0x00590307: 0x1E8E, - 0x00790307: 0x1E8F, - 0x005A0302: 0x1E90, - 0x007A0302: 0x1E91, - 0x005A0323: 0x1E92, - 0x007A0323: 0x1E93, - 0x005A0331: 0x1E94, - 0x007A0331: 0x1E95, - 0x00680331: 0x1E96, - 0x00740308: 0x1E97, - 0x0077030A: 0x1E98, - 0x0079030A: 0x1E99, - 0x017F0307: 0x1E9B, - 0x00410323: 0x1EA0, - 0x00610323: 0x1EA1, - 0x00410309: 0x1EA2, - 0x00610309: 0x1EA3, - 0x00C20301: 0x1EA4, - 0x00E20301: 0x1EA5, - 0x00C20300: 0x1EA6, - 0x00E20300: 0x1EA7, - 0x00C20309: 0x1EA8, - 0x00E20309: 0x1EA9, - 0x00C20303: 0x1EAA, - 0x00E20303: 0x1EAB, - 0x1EA00302: 0x1EAC, - 0x1EA10302: 0x1EAD, - 0x01020301: 0x1EAE, - 0x01030301: 0x1EAF, - 0x01020300: 0x1EB0, - 0x01030300: 0x1EB1, - 0x01020309: 0x1EB2, - 0x01030309: 0x1EB3, - 0x01020303: 0x1EB4, - 0x01030303: 0x1EB5, - 0x1EA00306: 0x1EB6, - 0x1EA10306: 0x1EB7, - 0x00450323: 0x1EB8, - 0x00650323: 0x1EB9, - 0x00450309: 0x1EBA, - 0x00650309: 0x1EBB, - 0x00450303: 0x1EBC, - 0x00650303: 0x1EBD, - 0x00CA0301: 0x1EBE, - 0x00EA0301: 0x1EBF, - 0x00CA0300: 0x1EC0, - 0x00EA0300: 0x1EC1, - 0x00CA0309: 0x1EC2, - 0x00EA0309: 0x1EC3, - 0x00CA0303: 0x1EC4, - 0x00EA0303: 0x1EC5, - 0x1EB80302: 0x1EC6, - 0x1EB90302: 0x1EC7, - 0x00490309: 0x1EC8, - 0x00690309: 0x1EC9, - 0x00490323: 0x1ECA, - 0x00690323: 0x1ECB, - 0x004F0323: 0x1ECC, - 0x006F0323: 0x1ECD, - 0x004F0309: 0x1ECE, - 0x006F0309: 0x1ECF, - 0x00D40301: 0x1ED0, - 0x00F40301: 0x1ED1, - 0x00D40300: 0x1ED2, - 0x00F40300: 0x1ED3, - 0x00D40309: 0x1ED4, - 0x00F40309: 0x1ED5, - 0x00D40303: 0x1ED6, - 0x00F40303: 0x1ED7, - 0x1ECC0302: 0x1ED8, - 0x1ECD0302: 0x1ED9, - 0x01A00301: 0x1EDA, - 0x01A10301: 0x1EDB, - 0x01A00300: 0x1EDC, - 0x01A10300: 0x1EDD, - 0x01A00309: 0x1EDE, - 0x01A10309: 0x1EDF, - 0x01A00303: 0x1EE0, - 0x01A10303: 0x1EE1, - 0x01A00323: 0x1EE2, - 0x01A10323: 0x1EE3, - 0x00550323: 0x1EE4, - 0x00750323: 0x1EE5, - 0x00550309: 0x1EE6, - 0x00750309: 0x1EE7, - 0x01AF0301: 0x1EE8, - 0x01B00301: 0x1EE9, - 0x01AF0300: 0x1EEA, - 0x01B00300: 0x1EEB, - 0x01AF0309: 0x1EEC, - 0x01B00309: 0x1EED, - 0x01AF0303: 0x1EEE, - 0x01B00303: 0x1EEF, - 0x01AF0323: 0x1EF0, - 0x01B00323: 0x1EF1, - 0x00590300: 0x1EF2, - 0x00790300: 0x1EF3, - 0x00590323: 0x1EF4, - 0x00790323: 0x1EF5, - 0x00590309: 0x1EF6, - 0x00790309: 0x1EF7, - 0x00590303: 0x1EF8, - 0x00790303: 0x1EF9, - 0x03B10313: 0x1F00, - 0x03B10314: 0x1F01, - 0x1F000300: 0x1F02, - 0x1F010300: 0x1F03, - 0x1F000301: 0x1F04, - 0x1F010301: 0x1F05, - 0x1F000342: 0x1F06, - 0x1F010342: 0x1F07, - 0x03910313: 0x1F08, - 0x03910314: 0x1F09, - 0x1F080300: 0x1F0A, - 0x1F090300: 0x1F0B, - 0x1F080301: 0x1F0C, - 0x1F090301: 0x1F0D, - 0x1F080342: 0x1F0E, - 0x1F090342: 0x1F0F, - 0x03B50313: 0x1F10, - 0x03B50314: 0x1F11, - 0x1F100300: 0x1F12, - 0x1F110300: 0x1F13, - 0x1F100301: 0x1F14, - 0x1F110301: 0x1F15, - 0x03950313: 0x1F18, - 0x03950314: 0x1F19, - 0x1F180300: 0x1F1A, - 0x1F190300: 0x1F1B, - 0x1F180301: 0x1F1C, - 0x1F190301: 0x1F1D, - 0x03B70313: 0x1F20, - 0x03B70314: 0x1F21, - 0x1F200300: 0x1F22, - 0x1F210300: 0x1F23, - 0x1F200301: 0x1F24, - 0x1F210301: 0x1F25, - 0x1F200342: 0x1F26, - 0x1F210342: 0x1F27, - 0x03970313: 0x1F28, - 0x03970314: 0x1F29, - 0x1F280300: 0x1F2A, - 0x1F290300: 0x1F2B, - 0x1F280301: 0x1F2C, - 0x1F290301: 0x1F2D, - 0x1F280342: 0x1F2E, - 0x1F290342: 0x1F2F, - 0x03B90313: 0x1F30, - 0x03B90314: 0x1F31, - 0x1F300300: 0x1F32, - 0x1F310300: 0x1F33, - 0x1F300301: 0x1F34, - 0x1F310301: 0x1F35, - 0x1F300342: 0x1F36, - 0x1F310342: 0x1F37, - 0x03990313: 0x1F38, - 0x03990314: 0x1F39, - 0x1F380300: 0x1F3A, - 0x1F390300: 0x1F3B, - 0x1F380301: 0x1F3C, - 0x1F390301: 0x1F3D, - 0x1F380342: 0x1F3E, - 0x1F390342: 0x1F3F, - 0x03BF0313: 0x1F40, - 0x03BF0314: 0x1F41, - 0x1F400300: 0x1F42, - 0x1F410300: 0x1F43, - 0x1F400301: 0x1F44, - 0x1F410301: 0x1F45, - 0x039F0313: 0x1F48, - 0x039F0314: 0x1F49, - 0x1F480300: 0x1F4A, - 0x1F490300: 0x1F4B, - 0x1F480301: 0x1F4C, - 0x1F490301: 0x1F4D, - 0x03C50313: 0x1F50, - 0x03C50314: 0x1F51, - 0x1F500300: 0x1F52, - 0x1F510300: 0x1F53, - 0x1F500301: 0x1F54, - 0x1F510301: 0x1F55, - 0x1F500342: 0x1F56, - 0x1F510342: 0x1F57, - 0x03A50314: 0x1F59, - 0x1F590300: 0x1F5B, - 0x1F590301: 0x1F5D, - 0x1F590342: 0x1F5F, - 0x03C90313: 0x1F60, - 0x03C90314: 0x1F61, - 0x1F600300: 0x1F62, - 0x1F610300: 0x1F63, - 0x1F600301: 0x1F64, - 0x1F610301: 0x1F65, - 0x1F600342: 0x1F66, - 0x1F610342: 0x1F67, - 0x03A90313: 0x1F68, - 0x03A90314: 0x1F69, - 0x1F680300: 0x1F6A, - 0x1F690300: 0x1F6B, - 0x1F680301: 0x1F6C, - 0x1F690301: 0x1F6D, - 0x1F680342: 0x1F6E, - 0x1F690342: 0x1F6F, - 0x03B10300: 0x1F70, - 0x03B50300: 0x1F72, - 0x03B70300: 0x1F74, - 0x03B90300: 0x1F76, - 0x03BF0300: 0x1F78, - 0x03C50300: 0x1F7A, - 0x03C90300: 0x1F7C, - 0x1F000345: 0x1F80, - 0x1F010345: 0x1F81, - 0x1F020345: 0x1F82, - 0x1F030345: 0x1F83, - 0x1F040345: 0x1F84, - 0x1F050345: 0x1F85, - 0x1F060345: 0x1F86, - 0x1F070345: 0x1F87, - 0x1F080345: 0x1F88, - 0x1F090345: 0x1F89, - 0x1F0A0345: 0x1F8A, - 0x1F0B0345: 0x1F8B, - 0x1F0C0345: 0x1F8C, - 0x1F0D0345: 0x1F8D, - 0x1F0E0345: 0x1F8E, - 0x1F0F0345: 0x1F8F, - 0x1F200345: 0x1F90, - 0x1F210345: 0x1F91, - 0x1F220345: 0x1F92, - 0x1F230345: 0x1F93, - 0x1F240345: 0x1F94, - 0x1F250345: 0x1F95, - 0x1F260345: 0x1F96, - 0x1F270345: 0x1F97, - 0x1F280345: 0x1F98, - 0x1F290345: 0x1F99, - 0x1F2A0345: 0x1F9A, - 0x1F2B0345: 0x1F9B, - 0x1F2C0345: 0x1F9C, - 0x1F2D0345: 0x1F9D, - 0x1F2E0345: 0x1F9E, - 0x1F2F0345: 0x1F9F, - 0x1F600345: 0x1FA0, - 0x1F610345: 0x1FA1, - 0x1F620345: 0x1FA2, - 0x1F630345: 0x1FA3, - 0x1F640345: 0x1FA4, - 0x1F650345: 0x1FA5, - 0x1F660345: 0x1FA6, - 0x1F670345: 0x1FA7, - 0x1F680345: 0x1FA8, - 0x1F690345: 0x1FA9, - 0x1F6A0345: 0x1FAA, - 0x1F6B0345: 0x1FAB, - 0x1F6C0345: 0x1FAC, - 0x1F6D0345: 0x1FAD, - 0x1F6E0345: 0x1FAE, - 0x1F6F0345: 0x1FAF, - 0x03B10306: 0x1FB0, - 0x03B10304: 0x1FB1, - 0x1F700345: 0x1FB2, - 0x03B10345: 0x1FB3, - 0x03AC0345: 0x1FB4, - 0x03B10342: 0x1FB6, - 0x1FB60345: 0x1FB7, - 0x03910306: 0x1FB8, - 0x03910304: 0x1FB9, - 0x03910300: 0x1FBA, - 0x03910345: 0x1FBC, - 0x00A80342: 0x1FC1, - 0x1F740345: 0x1FC2, - 0x03B70345: 0x1FC3, - 0x03AE0345: 0x1FC4, - 0x03B70342: 0x1FC6, - 0x1FC60345: 0x1FC7, - 0x03950300: 0x1FC8, - 0x03970300: 0x1FCA, - 0x03970345: 0x1FCC, - 0x1FBF0300: 0x1FCD, - 0x1FBF0301: 0x1FCE, - 0x1FBF0342: 0x1FCF, - 0x03B90306: 0x1FD0, - 0x03B90304: 0x1FD1, - 0x03CA0300: 0x1FD2, - 0x03B90342: 0x1FD6, - 0x03CA0342: 0x1FD7, - 0x03990306: 0x1FD8, - 0x03990304: 0x1FD9, - 0x03990300: 0x1FDA, - 0x1FFE0300: 0x1FDD, - 0x1FFE0301: 0x1FDE, - 0x1FFE0342: 0x1FDF, - 0x03C50306: 0x1FE0, - 0x03C50304: 0x1FE1, - 0x03CB0300: 0x1FE2, - 0x03C10313: 0x1FE4, - 0x03C10314: 0x1FE5, - 0x03C50342: 0x1FE6, - 0x03CB0342: 0x1FE7, - 0x03A50306: 0x1FE8, - 0x03A50304: 0x1FE9, - 0x03A50300: 0x1FEA, - 0x03A10314: 0x1FEC, - 0x00A80300: 0x1FED, - 0x1F7C0345: 0x1FF2, - 0x03C90345: 0x1FF3, - 0x03CE0345: 0x1FF4, - 0x03C90342: 0x1FF6, - 0x1FF60345: 0x1FF7, - 0x039F0300: 0x1FF8, - 0x03A90300: 0x1FFA, - 0x03A90345: 0x1FFC, - 0x21900338: 0x219A, - 0x21920338: 0x219B, - 0x21940338: 0x21AE, - 0x21D00338: 0x21CD, - 0x21D40338: 0x21CE, - 0x21D20338: 0x21CF, - 0x22030338: 0x2204, - 0x22080338: 0x2209, - 0x220B0338: 0x220C, - 0x22230338: 0x2224, - 0x22250338: 0x2226, - 0x223C0338: 0x2241, - 0x22430338: 0x2244, - 0x22450338: 0x2247, - 0x22480338: 0x2249, - 0x003D0338: 0x2260, - 0x22610338: 0x2262, - 0x224D0338: 0x226D, - 0x003C0338: 0x226E, - 0x003E0338: 0x226F, - 0x22640338: 0x2270, - 0x22650338: 0x2271, - 0x22720338: 0x2274, - 0x22730338: 0x2275, - 0x22760338: 0x2278, - 0x22770338: 0x2279, - 0x227A0338: 0x2280, - 0x227B0338: 0x2281, - 0x22820338: 0x2284, - 0x22830338: 0x2285, - 0x22860338: 0x2288, - 0x22870338: 0x2289, - 0x22A20338: 0x22AC, - 0x22A80338: 0x22AD, - 0x22A90338: 0x22AE, - 0x22AB0338: 0x22AF, - 0x227C0338: 0x22E0, - 0x227D0338: 0x22E1, - 0x22910338: 0x22E2, - 0x22920338: 0x22E3, - 0x22B20338: 0x22EA, - 0x22B30338: 0x22EB, - 0x22B40338: 0x22EC, - 0x22B50338: 0x22ED, - 0x304B3099: 0x304C, - 0x304D3099: 0x304E, - 0x304F3099: 0x3050, - 0x30513099: 0x3052, - 0x30533099: 0x3054, - 0x30553099: 0x3056, - 0x30573099: 0x3058, - 0x30593099: 0x305A, - 0x305B3099: 0x305C, - 0x305D3099: 0x305E, - 0x305F3099: 0x3060, - 0x30613099: 0x3062, - 0x30643099: 0x3065, - 0x30663099: 0x3067, - 0x30683099: 0x3069, - 0x306F3099: 0x3070, - 0x306F309A: 0x3071, - 0x30723099: 0x3073, - 0x3072309A: 0x3074, - 0x30753099: 0x3076, - 0x3075309A: 0x3077, - 0x30783099: 0x3079, - 0x3078309A: 0x307A, - 0x307B3099: 0x307C, - 0x307B309A: 0x307D, - 0x30463099: 0x3094, - 0x309D3099: 0x309E, - 0x30AB3099: 0x30AC, - 0x30AD3099: 0x30AE, - 0x30AF3099: 0x30B0, - 0x30B13099: 0x30B2, - 0x30B33099: 0x30B4, - 0x30B53099: 0x30B6, - 0x30B73099: 0x30B8, - 0x30B93099: 0x30BA, - 0x30BB3099: 0x30BC, - 0x30BD3099: 0x30BE, - 0x30BF3099: 0x30C0, - 0x30C13099: 0x30C2, - 0x30C43099: 0x30C5, - 0x30C63099: 0x30C7, - 0x30C83099: 0x30C9, - 0x30CF3099: 0x30D0, - 0x30CF309A: 0x30D1, - 0x30D23099: 0x30D3, - 0x30D2309A: 0x30D4, - 0x30D53099: 0x30D6, - 0x30D5309A: 0x30D7, - 0x30D83099: 0x30D9, - 0x30D8309A: 0x30DA, - 0x30DB3099: 0x30DC, - 0x30DB309A: 0x30DD, - 0x30A63099: 0x30F4, - 0x30EF3099: 0x30F7, - 0x30F03099: 0x30F8, - 0x30F13099: 0x30F9, - 0x30F23099: 0x30FA, - 0x30FD3099: 0x30FE, - 0x109910BA: 0x1109A, - 0x109B10BA: 0x1109C, - 0x10A510BA: 0x110AB, - 0x11311127: 0x1112E, - 0x11321127: 0x1112F, - 0x1347133E: 0x1134B, - 0x13471357: 0x1134C, - 0x14B914BA: 0x114BB, - 0x14B914B0: 0x114BC, - 0x14B914BD: 0x114BE, - 0x15B815AF: 0x115BA, - 0x15B915AF: 0x115BB, -} - -// Total size of tables: 53KB (53848 bytes) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/transform.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/transform.go deleted file mode 100644 index f540cb40..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/transform.go +++ /dev/null @@ -1,88 +0,0 @@ -// 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" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// Reset implements the Reset method of the transform.Transformer interface. -func (Form) Reset() {} - -// Transform implements the Transform method of the transform.Transformer -// interface. It may need to write segments of up to MaxSegmentSize at once. -// Users should either catch ErrShortDst and allow dst to grow or have dst be at -// least of size MaxTransformChunkSize to be guaranteed of progress. -func (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := 0 - // Cap the maximum number of src bytes to check. - b := src - eof := atEOF - if ns := len(dst); ns < len(b) { - err = transform.ErrShortDst - eof = false - b = b[:ns] - } - i, ok := formTable[f].quickSpan(inputBytes(b), n, len(b), eof) - n += copy(dst[n:], b[n:i]) - if !ok { - nDst, nSrc, err = f.transform(dst[n:], src[n:], atEOF) - return nDst + n, nSrc + n, err - } - if n < len(src) && !atEOF { - err = transform.ErrShortSrc - } - return n, n, err -} - -func flushTransform(rb *reorderBuffer) bool { - // Write out (must fully fit in dst, or else it is a ErrShortDst). - if len(rb.out) < rb.nrune*utf8.UTFMax { - return false - } - rb.out = rb.out[rb.flushCopy(rb.out):] - return true -} - -var errs = []error{nil, transform.ErrShortDst, transform.ErrShortSrc} - -// transform implements the transform.Transformer interface. It is only called -// when quickSpan does not pass for a given string. -func (f Form) transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - // TODO: get rid of reorderBuffer. See CL 23460044. - rb := reorderBuffer{} - rb.init(f, src) - for { - // Load segment into reorder buffer. - rb.setFlusher(dst[nDst:], flushTransform) - end := decomposeSegment(&rb, nSrc, atEOF) - if end < 0 { - return nDst, nSrc, errs[-end] - } - nDst = len(dst) - len(rb.out) - nSrc = end - - // Next quickSpan. - end = rb.nsrc - eof := atEOF - if n := nSrc + len(dst) - nDst; n < end { - err = transform.ErrShortDst - end = n - eof = false - } - end, ok := rb.f.quickSpan(rb.src, nSrc, end, eof) - n := copy(dst[nDst:], rb.src.bytes[nSrc:end]) - nSrc += n - nDst += n - if ok { - if n < rb.nsrc && !atEOF { - err = transform.ErrShortSrc - } - return nDst, nSrc, err - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/transform_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/transform_test.go deleted file mode 100644 index 0cfd9a1c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/transform_test.go +++ /dev/null @@ -1,101 +0,0 @@ -// 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" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -func TestTransform(t *testing.T) { - tests := []struct { - f Form - in, out string - eof bool - dstSize int - err error - }{ - {NFC, "ab", "ab", true, 2, nil}, - {NFC, "qx", "qx", true, 2, nil}, - {NFD, "qx", "qx", true, 2, nil}, - {NFC, "", "", true, 1, nil}, - {NFD, "", "", true, 1, nil}, - {NFC, "", "", false, 1, nil}, - {NFD, "", "", false, 1, nil}, - - // Normalized segment does not fit in destination. - {NFD, "ö", "", true, 1, transform.ErrShortDst}, - {NFD, "ö", "", true, 2, transform.ErrShortDst}, - - // As an artifact of the algorithm, only full segments are written. - // This is not strictly required, and some bytes could be written. - // In practice, for Transform to not block, the destination buffer - // should be at least MaxSegmentSize to work anyway and these edge - // conditions will be relatively rare. - {NFC, "ab", "", true, 1, transform.ErrShortDst}, - // This is even true for inert runes. - {NFC, "qx", "", true, 1, transform.ErrShortDst}, - {NFC, "a\u0300abc", "\u00e0a", true, 4, transform.ErrShortDst}, - - // We cannot write a segment if succesive runes could still change the result. - {NFD, "ö", "", false, 3, transform.ErrShortSrc}, - {NFC, "a\u0300", "", false, 4, transform.ErrShortSrc}, - {NFD, "a\u0300", "", false, 4, transform.ErrShortSrc}, - {NFC, "ö", "", false, 3, transform.ErrShortSrc}, - - {NFC, "a\u0300", "", true, 1, transform.ErrShortDst}, - // Theoretically could fit, but won't due to simplified checks. - {NFC, "a\u0300", "", true, 2, transform.ErrShortDst}, - {NFC, "a\u0300", "", true, 3, transform.ErrShortDst}, - {NFC, "a\u0300", "\u00e0", true, 4, nil}, - - {NFD, "öa\u0300", "o\u0308", false, 8, transform.ErrShortSrc}, - {NFD, "öa\u0300ö", "o\u0308a\u0300", true, 8, transform.ErrShortDst}, - {NFD, "öa\u0300ö", "o\u0308a\u0300", false, 12, transform.ErrShortSrc}, - - // Illegal input is copied verbatim. - {NFD, "\xbd\xb2=\xbc ", "\xbd\xb2=\xbc ", true, 8, nil}, - } - b := make([]byte, 100) - for i, tt := range tests { - nDst, _, err := tt.f.Transform(b[:tt.dstSize], []byte(tt.in), tt.eof) - out := string(b[:nDst]) - if out != tt.out || err != tt.err { - t.Errorf("%d: was %+q (%v); want %+q (%v)", i, out, err, tt.out, tt.err) - } - if want := tt.f.String(tt.in)[:nDst]; want != out { - t.Errorf("%d: incorect normalization: was %+q; want %+q", i, out, want) - } - } -} - -var transBufSizes = []int{ - MaxTransformChunkSize, - 3 * MaxTransformChunkSize / 2, - 2 * MaxTransformChunkSize, - 3 * MaxTransformChunkSize, - 100 * MaxTransformChunkSize, -} - -func doTransNorm(f Form, buf []byte, b []byte) []byte { - acc := []byte{} - for p := 0; p < len(b); { - nd, ns, _ := f.Transform(buf[:], b[p:], true) - p += ns - acc = append(acc, buf[:nd]...) - } - return acc -} - -func TestTransformNorm(t *testing.T) { - for _, sz := range transBufSizes { - buf := make([]byte, sz) - runNormTests(t, fmt.Sprintf("Transform:%d", sz), func(f Form, out []byte, s string) []byte { - return doTransNorm(f, buf, append(out, s...)) - }) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/trie.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/trie.go deleted file mode 100644 index 423386bf..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/trie.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -type valueRange struct { - value uint16 // header: value:stride - lo, hi byte // header: lo:n -} - -type sparseBlocks struct { - values []valueRange - offset []uint16 -} - -var nfcSparse = sparseBlocks{ - values: nfcSparseValues[:], - offset: nfcSparseOffset[:], -} - -var nfkcSparse = sparseBlocks{ - values: nfkcSparseValues[:], - offset: nfkcSparseOffset[:], -} - -var ( - nfcData = newNfcTrie(0) - nfkcData = newNfkcTrie(0) -) - -// lookupValue determines the type of block n and looks up the value for b. -// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block -// is a list of ranges with an accompanying value. Given a matching range r, -// the value for b is by r.value + (b - r.lo) * stride. -func (t *sparseBlocks) lookup(n uint32, b byte) uint16 { - offset := t.offset[n] - header := t.values[offset] - lo := offset + 1 - hi := lo + uint16(header.lo) - for lo < hi { - m := lo + (hi-lo)/2 - r := t.values[m] - if r.lo <= b && b <= r.hi { - return r.value + uint16(b-r.lo)*header.value - } - if b < r.lo { - hi = m - } else { - lo = m + 1 - } - } - return 0 -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/triegen.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/triegen.go deleted file mode 100644 index 45d71190..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/triegen.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// Trie table generator. -// Used by make*tables tools to generate a go file with trie data structures -// for mapping UTF-8 to a 16-bit value. All but the last byte in a UTF-8 byte -// sequence are used to lookup offsets in the index table to be used for the -// next byte. The last byte is used to index into a table with 16-bit values. - -package main - -import ( - "fmt" - "io" -) - -const maxSparseEntries = 16 - -type normCompacter struct { - sparseBlocks [][]uint64 - sparseOffset []uint16 - sparseCount int - name string -} - -func mostFrequentStride(a []uint64) int { - counts := make(map[int]int) - var v int - for _, x := range a { - if stride := int(x) - v; v != 0 && stride >= 0 { - counts[stride]++ - } - v = int(x) - } - var maxs, maxc int - for stride, cnt := range counts { - if cnt > maxc || (cnt == maxc && stride < maxs) { - maxs, maxc = stride, cnt - } - } - return maxs -} - -func countSparseEntries(a []uint64) int { - stride := mostFrequentStride(a) - var v, count int - for _, tv := range a { - if int(tv)-v != stride { - if tv != 0 { - count++ - } - } - v = int(tv) - } - return count -} - -func (c *normCompacter) Size(v []uint64) (sz int, ok bool) { - if n := countSparseEntries(v); n <= maxSparseEntries { - return (n+1)*4 + 2, true - } - return 0, false -} - -func (c *normCompacter) Store(v []uint64) uint32 { - h := uint32(len(c.sparseOffset)) - c.sparseBlocks = append(c.sparseBlocks, v) - c.sparseOffset = append(c.sparseOffset, uint16(c.sparseCount)) - c.sparseCount += countSparseEntries(v) + 1 - return h -} - -func (c *normCompacter) Handler() string { - return c.name + "Sparse.lookup" -} - -func (c *normCompacter) Print(w io.Writer) (retErr error) { - p := func(f string, x ...interface{}) { - if _, err := fmt.Fprintf(w, f, x...); retErr == nil && err != nil { - retErr = err - } - } - - ls := len(c.sparseBlocks) - p("// %sSparseOffset: %d entries, %d bytes\n", c.name, ls, ls*2) - p("var %sSparseOffset = %#v\n\n", c.name, c.sparseOffset) - - ns := c.sparseCount - p("// %sSparseValues: %d entries, %d bytes\n", c.name, ns, ns*4) - p("var %sSparseValues = [%d]valueRange {", c.name, ns) - for i, b := range c.sparseBlocks { - p("\n// Block %#x, offset %#x", i, c.sparseOffset[i]) - var v int - stride := mostFrequentStride(b) - n := countSparseEntries(b) - p("\n{value:%#04x,lo:%#02x},", stride, uint8(n)) - for i, nv := range b { - if int(nv)-v != stride { - if v != 0 { - p(",hi:%#02x},", 0x80+i-1) - } - if nv != 0 { - p("\n{value:%#04x,lo:%#02x", nv, 0x80+i) - } - } - v = int(nv) - } - if v != 0 { - p(",hi:%#02x},", 0x80+len(b)-1) - } - } - p("\n}\n\n") - return -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/ucd_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/ucd_test.go deleted file mode 100644 index 065e79c6..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/norm/ucd_test.go +++ /dev/null @@ -1,279 +0,0 @@ -// 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 ( - "bufio" - "bytes" - "flag" - "fmt" - "regexp" - "runtime" - "strconv" - "strings" - "sync" - "testing" - "time" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen" -) - -var long = flag.Bool("long", false, - "run time-consuming tests, such as tests that fetch data online") - -var once sync.Once - -func skipShort(t *testing.T) { - if !gen.IsLocal() && !*long { - t.Skip("skipping test to prevent downloading; to run use -long or use -local to specify a local source") - } - once.Do(func() { loadTestData(t) }) -} - -// This regression test runs the test set in NormalizationTest.txt -// (taken from http://www.unicode.org/Public/<unicode.Version>/ucd/). -// -// NormalizationTest.txt has form: -// @Part0 # Specific cases -// # -// 1E0A;1E0A;0044 0307;1E0A;0044 0307; # (Ḋ; Ḋ; D◌̇; Ḋ; D◌̇; ) LATIN CAPITAL LETTER D WITH DOT ABOVE -// 1E0C;1E0C;0044 0323;1E0C;0044 0323; # (Ḍ; Ḍ; D◌̣; Ḍ; D◌̣; ) LATIN CAPITAL LETTER D WITH DOT BELOW -// -// Each test has 5 columns (c1, c2, c3, c4, c5), where -// (c1, c2, c3, c4, c5) == (c1, NFC(c1), NFD(c1), NFKC(c1), NFKD(c1)) -// -// CONFORMANCE: -// 1. The following invariants must be true for all conformant implementations -// -// NFC -// c2 == NFC(c1) == NFC(c2) == NFC(c3) -// c4 == NFC(c4) == NFC(c5) -// -// NFD -// c3 == NFD(c1) == NFD(c2) == NFD(c3) -// c5 == NFD(c4) == NFD(c5) -// -// NFKC -// c4 == NFKC(c1) == NFKC(c2) == NFKC(c3) == NFKC(c4) == NFKC(c5) -// -// NFKD -// c5 == NFKD(c1) == NFKD(c2) == NFKD(c3) == NFKD(c4) == NFKD(c5) -// -// 2. For every code point X assigned in this version of Unicode that is not -// specifically listed in Part 1, the following invariants must be true -// for all conformant implementations: -// -// X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X) -// - -// Column types. -const ( - cRaw = iota - cNFC - cNFD - cNFKC - cNFKD - cMaxColumns -) - -// Holds data from NormalizationTest.txt -var part []Part - -type Part struct { - name string - number int - tests []Test -} - -type Test struct { - name string - partnr int - number int - r rune // used for character by character test - cols [cMaxColumns]string // Each has 5 entries, see below. -} - -func (t Test) Name() string { - if t.number < 0 { - return part[t.partnr].name - } - return fmt.Sprintf("%s:%d", part[t.partnr].name, t.number) -} - -var partRe = regexp.MustCompile(`@Part(\d) # (.*)$`) -var testRe = regexp.MustCompile(`^` + strings.Repeat(`([\dA-F ]+);`, 5) + ` # (.*)$`) - -var counter int - -// Load the data form NormalizationTest.txt -func loadTestData(t *testing.T) { - f := gen.OpenUCDFile("NormalizationTest.txt") - defer f.Close() - scanner := bufio.NewScanner(f) - for scanner.Scan() { - line := scanner.Text() - if len(line) == 0 || line[0] == '#' { - continue - } - m := partRe.FindStringSubmatch(line) - if m != nil { - if len(m) < 3 { - t.Fatal("Failed to parse Part: ", line) - } - i, err := strconv.Atoi(m[1]) - if err != nil { - t.Fatal(err) - } - name := m[2] - part = append(part, Part{name: name[:len(name)-1], number: i}) - continue - } - m = testRe.FindStringSubmatch(line) - if m == nil || len(m) < 7 { - t.Fatalf(`Failed to parse: "%s" result: %#v`, line, m) - } - test := Test{name: m[6], partnr: len(part) - 1, number: counter} - counter++ - for j := 1; j < len(m)-1; j++ { - for _, split := range strings.Split(m[j], " ") { - r, err := strconv.ParseUint(split, 16, 64) - if err != nil { - t.Fatal(err) - } - if test.r == 0 { - // save for CharacterByCharacterTests - test.r = rune(r) - } - var buf [utf8.UTFMax]byte - sz := utf8.EncodeRune(buf[:], rune(r)) - test.cols[j-1] += string(buf[:sz]) - } - } - part := &part[len(part)-1] - part.tests = append(part.tests, test) - } - if scanner.Err() != nil { - t.Fatal(scanner.Err()) - } -} - -func cmpResult(t *testing.T, tc *Test, name string, f Form, gold, test, result string) { - if gold != result { - t.Errorf("%s:%s: %s(%+q)=%+q; want %+q: %s", - tc.Name(), name, fstr[f], test, result, gold, tc.name) - } -} - -func cmpIsNormal(t *testing.T, tc *Test, name string, f Form, test string, result, want bool) { - if result != want { - t.Errorf("%s:%s: %s(%+q)=%v; want %v", tc.Name(), name, fstr[f], test, result, want) - } -} - -func doTest(t *testing.T, tc *Test, f Form, gold, test string) { - testb := []byte(test) - result := f.Bytes(testb) - cmpResult(t, tc, "Bytes", f, gold, test, string(result)) - - sresult := f.String(test) - cmpResult(t, tc, "String", f, gold, test, sresult) - - acc := []byte{} - i := Iter{} - i.InitString(f, test) - for !i.Done() { - acc = append(acc, i.Next()...) - } - cmpResult(t, tc, "Iter.Next", f, gold, test, string(acc)) - - buf := make([]byte, 128) - acc = nil - for p := 0; p < len(testb); { - nDst, nSrc, _ := f.Transform(buf, testb[p:], true) - acc = append(acc, buf[:nDst]...) - p += nSrc - } - cmpResult(t, tc, "Transform", f, gold, test, string(acc)) - - for i := range test { - out := f.Append(f.Bytes([]byte(test[:i])), []byte(test[i:])...) - cmpResult(t, tc, fmt.Sprintf(":Append:%d", i), f, gold, test, string(out)) - } - cmpIsNormal(t, tc, "IsNormal", f, test, f.IsNormal([]byte(test)), test == gold) - cmpIsNormal(t, tc, "IsNormalString", f, test, f.IsNormalString(test), test == gold) -} - -func doConformanceTests(t *testing.T, tc *Test, partn int) { - for i := 0; i <= 2; i++ { - doTest(t, tc, NFC, tc.cols[1], tc.cols[i]) - doTest(t, tc, NFD, tc.cols[2], tc.cols[i]) - doTest(t, tc, NFKC, tc.cols[3], tc.cols[i]) - doTest(t, tc, NFKD, tc.cols[4], tc.cols[i]) - } - for i := 3; i <= 4; i++ { - doTest(t, tc, NFC, tc.cols[3], tc.cols[i]) - doTest(t, tc, NFD, tc.cols[4], tc.cols[i]) - doTest(t, tc, NFKC, tc.cols[3], tc.cols[i]) - doTest(t, tc, NFKD, tc.cols[4], tc.cols[i]) - } -} - -func TestCharacterByCharacter(t *testing.T) { - skipShort(t) - tests := part[1].tests - var last rune = 0 - for i := 0; i <= len(tests); i++ { // last one is special case - var r rune - if i == len(tests) { - r = 0x2FA1E // Don't have to go to 0x10FFFF - } else { - r = tests[i].r - } - for last++; last < r; last++ { - // Check all characters that were not explicitly listed in the test. - tc := &Test{partnr: 1, number: -1} - char := string(last) - doTest(t, tc, NFC, char, char) - doTest(t, tc, NFD, char, char) - doTest(t, tc, NFKC, char, char) - doTest(t, tc, NFKD, char, char) - } - if i < len(tests) { - doConformanceTests(t, &tests[i], 1) - } - } -} - -func TestStandardTests(t *testing.T) { - skipShort(t) - for _, j := range []int{0, 2, 3} { - for _, test := range part[j].tests { - doConformanceTests(t, &test, j) - } - } -} - -// TestPerformance verifies that normalization is O(n). If any of the -// code does not properly check for maxCombiningChars, normalization -// may exhibit O(n**2) behavior. -func TestPerformance(t *testing.T) { - skipShort(t) - runtime.GOMAXPROCS(2) - success := make(chan bool, 1) - go func() { - buf := bytes.Repeat([]byte("\u035D"), 1024*1024) - buf = append(buf, "\u035B"...) - NFC.Append(nil, buf...) - success <- true - }() - timeout := time.After(1 * time.Second) - select { - case <-success: - // test completed before the timeout - case <-timeout: - t.Errorf(`unexpectedly long time to complete PerformanceTest`) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/gen.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/gen.go deleted file mode 100644 index a6ea172d..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/gen.go +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "bytes" - "flag" - "fmt" - "io" - "log" - "reflect" - "sort" - "strings" - "unicode" - - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/ucd" - "golang.org/x/text/unicode/rangetable" -) - -var versionList = flag.String("versions", "", - "list of versions for which to generate RangeTables") - -const bootstrapMessage = `No versions specified. -To bootstrap the code generation, run: - go run gen.go --versions=4.1.0,5.0.0,6.0.0,6.1.0,6.2.0,6.3.0,7.0.0 - -and ensure that the latest versions are included by checking: - http://www.unicode.org/Public/` - -func getVersions() []string { - if *versionList == "" { - log.Fatal(bootstrapMessage) - } - - versions := strings.Split(*versionList, ",") - sort.Strings(versions) - - // Ensure that at least the current version is included. - for _, v := range versions { - if v == gen.UnicodeVersion() { - return versions - } - } - - versions = append(versions, gen.UnicodeVersion()) - sort.Strings(versions) - return versions -} - -func main() { - gen.Init() - - versions := getVersions() - - w := &bytes.Buffer{} - - fmt.Fprintf(w, "//go:generate go run gen.go --versions=%s\n\n", strings.Join(versions, ",")) - fmt.Fprintf(w, "import \"unicode\"\n\n") - - vstr := func(s string) string { return strings.Replace(s, ".", "_", -1) } - - fmt.Fprintf(w, "var assigned = map[string]*unicode.RangeTable{\n") - for _, v := range versions { - fmt.Fprintf(w, "\t%q: assigned%s,\n", v, vstr(v)) - } - fmt.Fprintf(w, "}\n\n") - - var size int - for _, v := range versions { - assigned := []rune{} - - parse(v, func(p *ucd.Parser) { - assigned = append(assigned, p.Rune(0)) - }) - - rt := rangetable.New(assigned...) - sz := int(reflect.TypeOf(unicode.RangeTable{}).Size()) - sz += int(reflect.TypeOf(unicode.Range16{}).Size()) * len(rt.R16) - sz += int(reflect.TypeOf(unicode.Range32{}).Size()) * len(rt.R32) - - fmt.Fprintf(w, "// size %d bytes (%d KiB)\n", sz, sz/1024) - fmt.Fprintf(w, "var assigned%s = ", vstr(v)) - print(w, rt) - - size += sz - } - - fmt.Fprintf(w, "// Total size %d bytes (%d KiB)\n", size, size/1024) - - gen.WriteGoFile("tables.go", "rangetable", w.Bytes()) -} - -// parse calls f for each entry in the given UCD file. -func parse(version string, f func(p *ucd.Parser)) { - r := gen.Open("http://www.unicode.org/Public/", "", version+"/ucd/UnicodeData.txt") - defer r.Close() - - p := ucd.New(r) - for p.Next() { - f(p) - } - if err := p.Err(); err != nil { - log.Fatal(err) - } -} - -func print(w io.Writer, rt *unicode.RangeTable) { - fmt.Fprintln(w, "&unicode.RangeTable{") - fmt.Fprintln(w, "\tR16: []unicode.Range16{") - for _, r := range rt.R16 { - fmt.Fprintf(w, "\t\t{%#04x, %#04x, %d},\n", r.Lo, r.Hi, r.Stride) - } - fmt.Fprintln(w, "\t},") - fmt.Fprintln(w, "\tR32: []unicode.Range32{") - for _, r := range rt.R32 { - fmt.Fprintf(w, "\t\t{%#08x, %#08x, %d},\n", r.Lo, r.Hi, r.Stride) - } - fmt.Fprintln(w, "\t},") - fmt.Fprintf(w, "\tLatinOffset: %d,\n", rt.LatinOffset) - fmt.Fprintf(w, "}\n\n") -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/merge.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/merge.go deleted file mode 100644 index ea2a0803..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/merge.go +++ /dev/null @@ -1,260 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package rangetable - -import ( - "unicode" -) - -// atEnd is used to mark a completed iteration. -const atEnd = unicode.MaxRune + 1 - -// Merge returns a new RangeTable that is the union of the given tables. -// It can also be used to compact user-created RangeTables. The entries in -// R16 and R32 for any given RangeTable should be sorted and non-overlapping. -// -// A lookup in the resulting table can be several times faster than using In -// directly on the ranges. Merge is an expensive operation, however, and only -// makes sense if one intends to use the result for more than a couple of -// hundred lookups. -func Merge(ranges ...*unicode.RangeTable) *unicode.RangeTable { - rt := &unicode.RangeTable{} - if len(ranges) == 0 { - return rt - } - - iter := tablesIter(make([]tableIndex, len(ranges))) - - for i, t := range ranges { - iter[i] = tableIndex{t, 0, atEnd} - if len(t.R16) > 0 { - iter[i].next = rune(t.R16[0].Lo) - } - } - - if r0 := iter.next16(); r0.Stride != 0 { - for { - r1 := iter.next16() - if r1.Stride == 0 { - rt.R16 = append(rt.R16, r0) - break - } - stride := r1.Lo - r0.Hi - if (r1.Lo == r1.Hi || stride == r1.Stride) && (r0.Lo == r0.Hi || stride == r0.Stride) { - // Fully merge the next range into the previous one. - r0.Hi, r0.Stride = r1.Hi, stride - continue - } else if stride == r0.Stride { - // Move the first element of r1 to r0. This may eliminate an - // entry. - r0.Hi = r1.Lo - r0.Stride = stride - r1.Lo = r1.Lo + r1.Stride - if r1.Lo > r1.Hi { - continue - } - } - rt.R16 = append(rt.R16, r0) - r0 = r1 - } - } - - for i, t := range ranges { - iter[i] = tableIndex{t, 0, atEnd} - if len(t.R32) > 0 { - iter[i].next = rune(t.R32[0].Lo) - } - } - - if r0 := iter.next32(); r0.Stride != 0 { - for { - r1 := iter.next32() - if r1.Stride == 0 { - rt.R32 = append(rt.R32, r0) - break - } - stride := r1.Lo - r0.Hi - if (r1.Lo == r1.Hi || stride == r1.Stride) && (r0.Lo == r0.Hi || stride == r0.Stride) { - // Fully merge the next range into the previous one. - r0.Hi, r0.Stride = r1.Hi, stride - continue - } else if stride == r0.Stride { - // Move the first element of r1 to r0. This may eliminate an - // entry. - r0.Hi = r1.Lo - r1.Lo = r1.Lo + r1.Stride - if r1.Lo > r1.Hi { - continue - } - } - rt.R32 = append(rt.R32, r0) - r0 = r1 - } - } - - for i := 0; i < len(rt.R16) && rt.R16[i].Hi <= unicode.MaxLatin1; i++ { - rt.LatinOffset = i + 1 - } - - return rt -} - -type tableIndex struct { - t *unicode.RangeTable - p uint32 - next rune -} - -type tablesIter []tableIndex - -// sortIter does an insertion sort using the next field of tableIndex. Insertion -// sort is a good sorting algorithm for this case. -func sortIter(t []tableIndex) { - for i := range t { - for j := i; j > 0 && t[j-1].next > t[j].next; j-- { - t[j], t[j-1] = t[j-1], t[j] - } - } -} - -// next16 finds the ranged to be added to the table. If ranges overlap between -// multiple tables it clips the result to a non-overlapping range if the -// elements are not fully subsumed. It returns a zero range if there are no more -// ranges. -func (ti tablesIter) next16() unicode.Range16 { - sortIter(ti) - - t0 := ti[0] - if t0.next == atEnd { - return unicode.Range16{} - } - r0 := t0.t.R16[t0.p] - r0.Lo = uint16(t0.next) - - // We restrict the Hi of the current range if it overlaps with another range. - for i := range ti { - tn := ti[i] - // Since our tableIndices are sorted by next, we can break if the there - // is no overlap. The first value of a next range can always be merged - // into the current one, so we can break in case of equality as well. - if rune(r0.Hi) <= tn.next { - break - } - rn := tn.t.R16[tn.p] - rn.Lo = uint16(tn.next) - - // Limit r0.Hi based on next ranges in list, but allow it to overlap - // with ranges as long as it subsumes it. - m := (rn.Lo - r0.Lo) % r0.Stride - if m == 0 && (rn.Stride == r0.Stride || rn.Lo == rn.Hi) { - // Overlap, take the min of the two Hi values: for simplicity's sake - // we only process one range at a time. - if r0.Hi > rn.Hi { - r0.Hi = rn.Hi - } - } else { - // Not a compatible stride. Set to the last possible value before - // rn.Lo, but ensure there is at least one value. - if x := rn.Lo - m; r0.Lo <= x { - r0.Hi = x - } - break - } - } - - // Update the next values for each table. - for i := range ti { - tn := &ti[i] - if rune(r0.Hi) < tn.next { - break - } - rn := tn.t.R16[tn.p] - stride := rune(rn.Stride) - tn.next += stride * (1 + ((rune(r0.Hi) - tn.next) / stride)) - if rune(rn.Hi) < tn.next { - if tn.p++; int(tn.p) == len(tn.t.R16) { - tn.next = atEnd - } else { - tn.next = rune(tn.t.R16[tn.p].Lo) - } - } - } - - if r0.Lo == r0.Hi { - r0.Stride = 1 - } - - return r0 -} - -// next32 finds the ranged to be added to the table. If ranges overlap between -// multiple tables it clips the result to a non-overlapping range if the -// elements are not fully subsumed. It returns a zero range if there are no more -// ranges. -func (ti tablesIter) next32() unicode.Range32 { - sortIter(ti) - - t0 := ti[0] - if t0.next == atEnd { - return unicode.Range32{} - } - r0 := t0.t.R32[t0.p] - r0.Lo = uint32(t0.next) - - // We restrict the Hi of the current range if it overlaps with another range. - for i := range ti { - tn := ti[i] - // Since our tableIndices are sorted by next, we can break if the there - // is no overlap. The first value of a next range can always be merged - // into the current one, so we can break in case of equality as well. - if rune(r0.Hi) <= tn.next { - break - } - rn := tn.t.R32[tn.p] - rn.Lo = uint32(tn.next) - - // Limit r0.Hi based on next ranges in list, but allow it to overlap - // with ranges as long as it subsumes it. - m := (rn.Lo - r0.Lo) % r0.Stride - if m == 0 && (rn.Stride == r0.Stride || rn.Lo == rn.Hi) { - // Overlap, take the min of the two Hi values: for simplicity's sake - // we only process one range at a time. - if r0.Hi > rn.Hi { - r0.Hi = rn.Hi - } - } else { - // Not a compatible stride. Set to the last possible value before - // rn.Lo, but ensure there is at least one value. - if x := rn.Lo - m; r0.Lo <= x { - r0.Hi = x - } - break - } - } - - // Update the next values for each table. - for i := range ti { - tn := &ti[i] - if rune(r0.Hi) < tn.next { - break - } - rn := tn.t.R32[tn.p] - stride := rune(rn.Stride) - tn.next += stride * (1 + ((rune(r0.Hi) - tn.next) / stride)) - if rune(rn.Hi) < tn.next { - if tn.p++; int(tn.p) == len(tn.t.R32) { - tn.next = atEnd - } else { - tn.next = rune(tn.t.R32[tn.p].Lo) - } - } - } - - if r0.Lo == r0.Hi { - r0.Stride = 1 - } - - return r0 -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/merge_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/merge_test.go deleted file mode 100644 index 93ed0fca..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/merge_test.go +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package rangetable - -import ( - "testing" - "unicode" -) - -var ( - maxRuneTable = &unicode.RangeTable{ - R32: []unicode.Range32{ - {unicode.MaxRune, unicode.MaxRune, 1}, - }, - } - - overlap1 = &unicode.RangeTable{ - R16: []unicode.Range16{ - {0x100, 0xfffc, 4}, - }, - R32: []unicode.Range32{ - {0x100000, 0x10fffc, 4}, - }, - } - - overlap2 = &unicode.RangeTable{ - R16: []unicode.Range16{ - {0x101, 0xfffd, 4}, - }, - R32: []unicode.Range32{ - {0x100001, 0x10fffd, 3}, - }, - } - - // The following table should be compacted into two entries for R16 and R32. - optimize = &unicode.RangeTable{ - R16: []unicode.Range16{ - {0x1, 0x1, 1}, - {0x2, 0x2, 1}, - {0x3, 0x3, 1}, - {0x5, 0x5, 1}, - {0x7, 0x7, 1}, - {0x9, 0x9, 1}, - {0xb, 0xf, 2}, - }, - R32: []unicode.Range32{ - {0x10001, 0x10001, 1}, - {0x10002, 0x10002, 1}, - {0x10003, 0x10003, 1}, - {0x10005, 0x10005, 1}, - {0x10007, 0x10007, 1}, - {0x10009, 0x10009, 1}, - {0x1000b, 0x1000f, 2}, - }, - } -) - -func TestMerge(t *testing.T) { - for i, tt := range [][]*unicode.RangeTable{ - {unicode.Cc, unicode.Cf}, - {unicode.L, unicode.Ll}, - {unicode.L, unicode.Ll, unicode.Lu}, - {unicode.Ll, unicode.Lu}, - {unicode.M}, - unicode.GraphicRanges, - cased, - - // Merge R16 only and R32 only and vice versa. - {unicode.Khmer, unicode.Khudawadi}, - {unicode.Imperial_Aramaic, unicode.Radical}, - - // Merge with empty. - {&unicode.RangeTable{}}, - {&unicode.RangeTable{}, &unicode.RangeTable{}}, - {&unicode.RangeTable{}, &unicode.RangeTable{}, &unicode.RangeTable{}}, - {&unicode.RangeTable{}, unicode.Hiragana}, - {unicode.Inherited, &unicode.RangeTable{}}, - {&unicode.RangeTable{}, unicode.Hanunoo, &unicode.RangeTable{}}, - - // Hypothetical tables. - {maxRuneTable}, - {overlap1, overlap2}, - - // Optimization - {optimize}, - } { - rt := Merge(tt...) - for r := rune(0); r <= unicode.MaxRune; r++ { - if got, want := unicode.Is(rt, r), unicode.In(r, tt...); got != want { - t.Fatalf("%d:%U: got %v; want %v", i, r, got, want) - } - } - // Test optimization and correctness for R16. - for k := 0; k < len(rt.R16)-1; k++ { - if lo, hi := rt.R16[k].Lo, rt.R16[k].Hi; lo > hi { - t.Errorf("%d: Lo (%x) > Hi (%x)", i, lo, hi) - } - if hi, lo := rt.R16[k].Hi, rt.R16[k+1].Lo; hi >= lo { - t.Errorf("%d: Hi (%x) >= next Lo (%x)", i, hi, lo) - } - if rt.R16[k].Hi+rt.R16[k].Stride == rt.R16[k+1].Lo { - t.Errorf("%d: missed optimization for R16 at %d between %X and %x", - i, k, rt.R16[k], rt.R16[k+1]) - } - } - // Test optimization and correctness for R32. - for k := 0; k < len(rt.R32)-1; k++ { - if lo, hi := rt.R32[k].Lo, rt.R32[k].Hi; lo > hi { - t.Errorf("%d: Lo (%x) > Hi (%x)", i, lo, hi) - } - if hi, lo := rt.R32[k].Hi, rt.R32[k+1].Lo; hi >= lo { - t.Errorf("%d: Hi (%x) >= next Lo (%x)", i, hi, lo) - } - if rt.R32[k].Hi+rt.R32[k].Stride == rt.R32[k+1].Lo { - t.Errorf("%d: missed optimization for R32 at %d between %X and %X", - i, k, rt.R32[k], rt.R32[k+1]) - } - } - } -} - -const runes = "Hello World in 2015!,\U0010fffd" - -func BenchmarkNotMerged(t *testing.B) { - for i := 0; i < t.N; i++ { - for _, r := range runes { - unicode.In(r, unicode.GraphicRanges...) - } - } -} - -func BenchmarkMerged(t *testing.B) { - rt := Merge(unicode.GraphicRanges...) - - for i := 0; i < t.N; i++ { - for _, r := range runes { - unicode.Is(rt, r) - } - } -} - -var cased = []*unicode.RangeTable{ - unicode.Lower, - unicode.Upper, - unicode.Title, - unicode.Other_Lowercase, - unicode.Other_Uppercase, -} - -func BenchmarkNotMergedCased(t *testing.B) { - for i := 0; i < t.N; i++ { - for _, r := range runes { - unicode.In(r, cased...) - } - } -} - -func BenchmarkMergedCased(t *testing.B) { - // This reduces len(R16) from 243 to 82 and len(R32) from 65 to 35 for - // Unicode 7.0.0. - rt := Merge(cased...) - - for i := 0; i < t.N; i++ { - for _, r := range runes { - unicode.Is(rt, r) - } - } -} - -func BenchmarkInit(t *testing.B) { - for i := 0; i < t.N; i++ { - Merge(cased...) - Merge(unicode.GraphicRanges...) - } -} - -func BenchmarkInit2(t *testing.B) { - // Hypothetical near-worst-case performance. - for i := 0; i < t.N; i++ { - Merge(overlap1, overlap2) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/rangetable.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/rangetable.go deleted file mode 100644 index 187882cc..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/rangetable.go +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package rangetable provides utilities for creating and inspecting -// unicode.RangeTables. -package rangetable - -import ( - "sort" - "unicode" -) - -// New creates a RangeTable from the given runes, which may contain duplicates. -func New(r ...rune) *unicode.RangeTable { - if len(r) == 0 { - return &unicode.RangeTable{} - } - - sort.Sort(byRune(r)) - - // Remove duplicates. - k := 1 - for i := 1; i < len(r); i++ { - if r[k-1] != r[i] { - r[k] = r[i] - k++ - } - } - - var rt unicode.RangeTable - for _, r := range r[:k] { - if r <= 0xFFFF { - rt.R16 = append(rt.R16, unicode.Range16{Lo: uint16(r), Hi: uint16(r), Stride: 1}) - } else { - rt.R32 = append(rt.R32, unicode.Range32{Lo: uint32(r), Hi: uint32(r), Stride: 1}) - } - } - - // Optimize RangeTable. - return Merge(&rt) -} - -type byRune []rune - -func (r byRune) Len() int { return len(r) } -func (r byRune) Swap(i, j int) { r[i], r[j] = r[j], r[i] } -func (r byRune) Less(i, j int) bool { return r[i] < r[j] } - -// Visit visits all runes in the given RangeTable in order, calling fn for each. -func Visit(rt *unicode.RangeTable, fn func(rune)) { - for _, r16 := range rt.R16 { - for r := rune(r16.Lo); r <= rune(r16.Hi); r += rune(r16.Stride) { - fn(r) - } - } - for _, r32 := range rt.R32 { - for r := rune(r32.Lo); r <= rune(r32.Hi); r += rune(r32.Stride) { - fn(r) - } - } -} - -// Assigned returns a RangeTable with all assigned code points for a given -// Unicode version. This includes graphic, format, control, and private-use -// characters. It returns nil if the data for the given version is not -// available. -func Assigned(version string) *unicode.RangeTable { - return assigned[version] -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/rangetable_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/rangetable_test.go deleted file mode 100644 index 5a355aa3..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/rangetable_test.go +++ /dev/null @@ -1,55 +0,0 @@ -package rangetable - -import ( - "reflect" - "testing" - "unicode" -) - -var ( - empty = &unicode.RangeTable{} - many = &unicode.RangeTable{ - R16: []unicode.Range16{{0, 0xffff, 5}}, - R32: []unicode.Range32{{0x10004, 0x10009, 5}}, - LatinOffset: 0, - } -) - -func TestVisit(t *testing.T) { - Visit(empty, func(got rune) { - t.Error("call from empty RangeTable") - }) - - var want rune - Visit(many, func(got rune) { - if got != want { - t.Errorf("got %U; want %U", got, want) - } - want += 5 - }) - if want -= 5; want != 0x10009 { - t.Errorf("last run was %U; want U+10009", want) - } -} - -func TestNew(t *testing.T) { - for i, rt := range []*unicode.RangeTable{ - empty, - unicode.Co, - unicode.Letter, - unicode.ASCII_Hex_Digit, - many, - maxRuneTable, - } { - var got, want []rune - Visit(rt, func(r rune) { - want = append(want, r) - }) - Visit(New(want...), func(r rune) { - got = append(got, r) - }) - if !reflect.DeepEqual(got, want) { - t.Errorf("%d:\ngot %v;\nwant %v", i, got, want) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/tables.go deleted file mode 100644 index c8bc3ca5..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/unicode/rangetable/tables.go +++ /dev/null @@ -1,5105 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package rangetable - -//go:generate go run gen.go --versions=4.1.0,5.0.0,5.1.0,5.2.0,6.0.0,6.1.0,6.2.0,6.3.0,7.0.0,8.0.0 - -import "unicode" - -var assigned = map[string]*unicode.RangeTable{ - "4.1.0": assigned4_1_0, - "5.0.0": assigned5_0_0, - "5.1.0": assigned5_1_0, - "5.2.0": assigned5_2_0, - "6.0.0": assigned6_0_0, - "6.1.0": assigned6_1_0, - "6.2.0": assigned6_2_0, - "6.3.0": assigned6_3_0, - "7.0.0": assigned7_0_0, - "8.0.0": assigned8_0_0, -} - -// size 2924 bytes (2 KiB) -var assigned4_1_0 = &unicode.RangeTable{ - R16: []unicode.Range16{ - {0x0000, 0x0241, 1}, - {0x0250, 0x036f, 1}, - {0x0374, 0x0375, 1}, - {0x037a, 0x037e, 4}, - {0x0384, 0x038a, 1}, - {0x038c, 0x038e, 2}, - {0x038f, 0x03a1, 1}, - {0x03a3, 0x03ce, 1}, - {0x03d0, 0x0486, 1}, - {0x0488, 0x04ce, 1}, - {0x04d0, 0x04f9, 1}, - {0x0500, 0x050f, 1}, - {0x0531, 0x0556, 1}, - {0x0559, 0x055f, 1}, - {0x0561, 0x0587, 1}, - {0x0589, 0x058a, 1}, - {0x0591, 0x05b9, 1}, - {0x05bb, 0x05c7, 1}, - {0x05d0, 0x05ea, 1}, - {0x05f0, 0x05f4, 1}, - {0x0600, 0x0603, 1}, - {0x060b, 0x0615, 1}, - {0x061b, 0x061e, 3}, - {0x061f, 0x0621, 2}, - {0x0622, 0x063a, 1}, - {0x0640, 0x065e, 1}, - {0x0660, 0x070d, 1}, - {0x070f, 0x074a, 1}, - {0x074d, 0x076d, 1}, - {0x0780, 0x07b1, 1}, - {0x0901, 0x0939, 1}, - {0x093c, 0x094d, 1}, - {0x0950, 0x0954, 1}, - {0x0958, 0x0970, 1}, - {0x097d, 0x0981, 4}, - {0x0982, 0x0983, 1}, - {0x0985, 0x098c, 1}, - {0x098f, 0x0990, 1}, - {0x0993, 0x09a8, 1}, - {0x09aa, 0x09b0, 1}, - {0x09b2, 0x09b6, 4}, - {0x09b7, 0x09b9, 1}, - {0x09bc, 0x09c4, 1}, - {0x09c7, 0x09c8, 1}, - {0x09cb, 0x09ce, 1}, - {0x09d7, 0x09dc, 5}, - {0x09dd, 0x09df, 2}, - {0x09e0, 0x09e3, 1}, - {0x09e6, 0x09fa, 1}, - {0x0a01, 0x0a03, 1}, - {0x0a05, 0x0a0a, 1}, - {0x0a0f, 0x0a10, 1}, - {0x0a13, 0x0a28, 1}, - {0x0a2a, 0x0a30, 1}, - {0x0a32, 0x0a33, 1}, - {0x0a35, 0x0a36, 1}, - {0x0a38, 0x0a39, 1}, - {0x0a3c, 0x0a3e, 2}, - {0x0a3f, 0x0a42, 1}, - {0x0a47, 0x0a48, 1}, - {0x0a4b, 0x0a4d, 1}, - {0x0a59, 0x0a5c, 1}, - {0x0a5e, 0x0a66, 8}, - {0x0a67, 0x0a74, 1}, - {0x0a81, 0x0a83, 1}, - {0x0a85, 0x0a8d, 1}, - {0x0a8f, 0x0a91, 1}, - {0x0a93, 0x0aa8, 1}, - {0x0aaa, 0x0ab0, 1}, - {0x0ab2, 0x0ab3, 1}, - {0x0ab5, 0x0ab9, 1}, - {0x0abc, 0x0ac5, 1}, - {0x0ac7, 0x0ac9, 1}, - {0x0acb, 0x0acd, 1}, - {0x0ad0, 0x0ae0, 16}, - {0x0ae1, 0x0ae3, 1}, - {0x0ae6, 0x0aef, 1}, - {0x0af1, 0x0b01, 16}, - {0x0b02, 0x0b03, 1}, - {0x0b05, 0x0b0c, 1}, - {0x0b0f, 0x0b10, 1}, - {0x0b13, 0x0b28, 1}, - {0x0b2a, 0x0b30, 1}, - {0x0b32, 0x0b33, 1}, - {0x0b35, 0x0b39, 1}, - {0x0b3c, 0x0b43, 1}, - {0x0b47, 0x0b48, 1}, - {0x0b4b, 0x0b4d, 1}, - {0x0b56, 0x0b57, 1}, - {0x0b5c, 0x0b5d, 1}, - {0x0b5f, 0x0b61, 1}, - {0x0b66, 0x0b71, 1}, - {0x0b82, 0x0b83, 1}, - {0x0b85, 0x0b8a, 1}, - {0x0b8e, 0x0b90, 1}, - {0x0b92, 0x0b95, 1}, - {0x0b99, 0x0b9a, 1}, - {0x0b9c, 0x0b9e, 2}, - {0x0b9f, 0x0ba3, 4}, - {0x0ba4, 0x0ba8, 4}, - {0x0ba9, 0x0baa, 1}, - {0x0bae, 0x0bb9, 1}, - {0x0bbe, 0x0bc2, 1}, - {0x0bc6, 0x0bc8, 1}, - {0x0bca, 0x0bcd, 1}, - {0x0bd7, 0x0be6, 15}, - {0x0be7, 0x0bfa, 1}, - {0x0c01, 0x0c03, 1}, - {0x0c05, 0x0c0c, 1}, - {0x0c0e, 0x0c10, 1}, - {0x0c12, 0x0c28, 1}, - {0x0c2a, 0x0c33, 1}, - {0x0c35, 0x0c39, 1}, - {0x0c3e, 0x0c44, 1}, - {0x0c46, 0x0c48, 1}, - {0x0c4a, 0x0c4d, 1}, - {0x0c55, 0x0c56, 1}, - {0x0c60, 0x0c61, 1}, - {0x0c66, 0x0c6f, 1}, - {0x0c82, 0x0c83, 1}, - {0x0c85, 0x0c8c, 1}, - {0x0c8e, 0x0c90, 1}, - {0x0c92, 0x0ca8, 1}, - {0x0caa, 0x0cb3, 1}, - {0x0cb5, 0x0cb9, 1}, - {0x0cbc, 0x0cc4, 1}, - {0x0cc6, 0x0cc8, 1}, - {0x0cca, 0x0ccd, 1}, - {0x0cd5, 0x0cd6, 1}, - {0x0cde, 0x0ce0, 2}, - {0x0ce1, 0x0ce6, 5}, - {0x0ce7, 0x0cef, 1}, - {0x0d02, 0x0d03, 1}, - {0x0d05, 0x0d0c, 1}, - {0x0d0e, 0x0d10, 1}, - {0x0d12, 0x0d28, 1}, - {0x0d2a, 0x0d39, 1}, - {0x0d3e, 0x0d43, 1}, - {0x0d46, 0x0d48, 1}, - {0x0d4a, 0x0d4d, 1}, - {0x0d57, 0x0d60, 9}, - {0x0d61, 0x0d66, 5}, - {0x0d67, 0x0d6f, 1}, - {0x0d82, 0x0d83, 1}, - {0x0d85, 0x0d96, 1}, - {0x0d9a, 0x0db1, 1}, - {0x0db3, 0x0dbb, 1}, - {0x0dbd, 0x0dc0, 3}, - {0x0dc1, 0x0dc6, 1}, - {0x0dca, 0x0dcf, 5}, - {0x0dd0, 0x0dd4, 1}, - {0x0dd6, 0x0dd8, 2}, - {0x0dd9, 0x0ddf, 1}, - {0x0df2, 0x0df4, 1}, - {0x0e01, 0x0e3a, 1}, - {0x0e3f, 0x0e5b, 1}, - {0x0e81, 0x0e82, 1}, - {0x0e84, 0x0e87, 3}, - {0x0e88, 0x0e8a, 2}, - {0x0e8d, 0x0e94, 7}, - {0x0e95, 0x0e97, 1}, - {0x0e99, 0x0e9f, 1}, - {0x0ea1, 0x0ea3, 1}, - {0x0ea5, 0x0ea7, 2}, - {0x0eaa, 0x0eab, 1}, - {0x0ead, 0x0eb9, 1}, - {0x0ebb, 0x0ebd, 1}, - {0x0ec0, 0x0ec4, 1}, - {0x0ec6, 0x0ec8, 2}, - {0x0ec9, 0x0ecd, 1}, - {0x0ed0, 0x0ed9, 1}, - {0x0edc, 0x0edd, 1}, - {0x0f00, 0x0f47, 1}, - {0x0f49, 0x0f6a, 1}, - {0x0f71, 0x0f8b, 1}, - {0x0f90, 0x0f97, 1}, - {0x0f99, 0x0fbc, 1}, - {0x0fbe, 0x0fcc, 1}, - {0x0fcf, 0x0fd1, 1}, - {0x1000, 0x1021, 1}, - {0x1023, 0x1027, 1}, - {0x1029, 0x102a, 1}, - {0x102c, 0x1032, 1}, - {0x1036, 0x1039, 1}, - {0x1040, 0x1059, 1}, - {0x10a0, 0x10c5, 1}, - {0x10d0, 0x10fc, 1}, - {0x1100, 0x1159, 1}, - {0x115f, 0x11a2, 1}, - {0x11a8, 0x11f9, 1}, - {0x1200, 0x1248, 1}, - {0x124a, 0x124d, 1}, - {0x1250, 0x1256, 1}, - {0x1258, 0x125a, 2}, - {0x125b, 0x125d, 1}, - {0x1260, 0x1288, 1}, - {0x128a, 0x128d, 1}, - {0x1290, 0x12b0, 1}, - {0x12b2, 0x12b5, 1}, - {0x12b8, 0x12be, 1}, - {0x12c0, 0x12c2, 2}, - {0x12c3, 0x12c5, 1}, - {0x12c8, 0x12d6, 1}, - {0x12d8, 0x1310, 1}, - {0x1312, 0x1315, 1}, - {0x1318, 0x135a, 1}, - {0x135f, 0x137c, 1}, - {0x1380, 0x1399, 1}, - {0x13a0, 0x13f4, 1}, - {0x1401, 0x1676, 1}, - {0x1680, 0x169c, 1}, - {0x16a0, 0x16f0, 1}, - {0x1700, 0x170c, 1}, - {0x170e, 0x1714, 1}, - {0x1720, 0x1736, 1}, - {0x1740, 0x1753, 1}, - {0x1760, 0x176c, 1}, - {0x176e, 0x1770, 1}, - {0x1772, 0x1773, 1}, - {0x1780, 0x17dd, 1}, - {0x17e0, 0x17e9, 1}, - {0x17f0, 0x17f9, 1}, - {0x1800, 0x180e, 1}, - {0x1810, 0x1819, 1}, - {0x1820, 0x1877, 1}, - {0x1880, 0x18a9, 1}, - {0x1900, 0x191c, 1}, - {0x1920, 0x192b, 1}, - {0x1930, 0x193b, 1}, - {0x1940, 0x1944, 4}, - {0x1945, 0x196d, 1}, - {0x1970, 0x1974, 1}, - {0x1980, 0x19a9, 1}, - {0x19b0, 0x19c9, 1}, - {0x19d0, 0x19d9, 1}, - {0x19de, 0x1a1b, 1}, - {0x1a1e, 0x1a1f, 1}, - {0x1d00, 0x1dc3, 1}, - {0x1e00, 0x1e9b, 1}, - {0x1ea0, 0x1ef9, 1}, - {0x1f00, 0x1f15, 1}, - {0x1f18, 0x1f1d, 1}, - {0x1f20, 0x1f45, 1}, - {0x1f48, 0x1f4d, 1}, - {0x1f50, 0x1f57, 1}, - {0x1f59, 0x1f5f, 2}, - {0x1f60, 0x1f7d, 1}, - {0x1f80, 0x1fb4, 1}, - {0x1fb6, 0x1fc4, 1}, - {0x1fc6, 0x1fd3, 1}, - {0x1fd6, 0x1fdb, 1}, - {0x1fdd, 0x1fef, 1}, - {0x1ff2, 0x1ff4, 1}, - {0x1ff6, 0x1ffe, 1}, - {0x2000, 0x2063, 1}, - {0x206a, 0x2071, 1}, - {0x2074, 0x208e, 1}, - {0x2090, 0x2094, 1}, - {0x20a0, 0x20b5, 1}, - {0x20d0, 0x20eb, 1}, - {0x2100, 0x214c, 1}, - {0x2153, 0x2183, 1}, - {0x2190, 0x23db, 1}, - {0x2400, 0x2426, 1}, - {0x2440, 0x244a, 1}, - {0x2460, 0x269c, 1}, - {0x26a0, 0x26b1, 1}, - {0x2701, 0x2704, 1}, - {0x2706, 0x2709, 1}, - {0x270c, 0x2727, 1}, - {0x2729, 0x274b, 1}, - {0x274d, 0x274f, 2}, - {0x2750, 0x2752, 1}, - {0x2756, 0x2758, 2}, - {0x2759, 0x275e, 1}, - {0x2761, 0x2794, 1}, - {0x2798, 0x27af, 1}, - {0x27b1, 0x27be, 1}, - {0x27c0, 0x27c6, 1}, - {0x27d0, 0x27eb, 1}, - {0x27f0, 0x2b13, 1}, - {0x2c00, 0x2c2e, 1}, - {0x2c30, 0x2c5e, 1}, - {0x2c80, 0x2cea, 1}, - {0x2cf9, 0x2d25, 1}, - {0x2d30, 0x2d65, 1}, - {0x2d6f, 0x2d80, 17}, - {0x2d81, 0x2d96, 1}, - {0x2da0, 0x2da6, 1}, - {0x2da8, 0x2dae, 1}, - {0x2db0, 0x2db6, 1}, - {0x2db8, 0x2dbe, 1}, - {0x2dc0, 0x2dc6, 1}, - {0x2dc8, 0x2dce, 1}, - {0x2dd0, 0x2dd6, 1}, - {0x2dd8, 0x2dde, 1}, - {0x2e00, 0x2e17, 1}, - {0x2e1c, 0x2e1d, 1}, - {0x2e80, 0x2e99, 1}, - {0x2e9b, 0x2ef3, 1}, - {0x2f00, 0x2fd5, 1}, - {0x2ff0, 0x2ffb, 1}, - {0x3000, 0x303f, 1}, - {0x3041, 0x3096, 1}, - {0x3099, 0x30ff, 1}, - {0x3105, 0x312c, 1}, - {0x3131, 0x318e, 1}, - {0x3190, 0x31b7, 1}, - {0x31c0, 0x31cf, 1}, - {0x31f0, 0x321e, 1}, - {0x3220, 0x3243, 1}, - {0x3250, 0x32fe, 1}, - {0x3300, 0x4db5, 1}, - {0x4dc0, 0x9fbb, 1}, - {0xa000, 0xa48c, 1}, - {0xa490, 0xa4c6, 1}, - {0xa700, 0xa716, 1}, - {0xa800, 0xa82b, 1}, - {0xac00, 0xd7a3, 1}, - {0xd800, 0xfa2d, 1}, - {0xfa30, 0xfa6a, 1}, - {0xfa70, 0xfad9, 1}, - {0xfb00, 0xfb06, 1}, - {0xfb13, 0xfb17, 1}, - {0xfb1d, 0xfb36, 1}, - {0xfb38, 0xfb3c, 1}, - {0xfb3e, 0xfb40, 2}, - {0xfb41, 0xfb43, 2}, - {0xfb44, 0xfb46, 2}, - {0xfb47, 0xfbb1, 1}, - {0xfbd3, 0xfd3f, 1}, - {0xfd50, 0xfd8f, 1}, - {0xfd92, 0xfdc7, 1}, - {0xfdf0, 0xfdfd, 1}, - {0xfe00, 0xfe19, 1}, - {0xfe20, 0xfe23, 1}, - {0xfe30, 0xfe52, 1}, - {0xfe54, 0xfe66, 1}, - {0xfe68, 0xfe6b, 1}, - {0xfe70, 0xfe74, 1}, - {0xfe76, 0xfefc, 1}, - {0xfeff, 0xff01, 2}, - {0xff02, 0xffbe, 1}, - {0xffc2, 0xffc7, 1}, - {0xffca, 0xffcf, 1}, - {0xffd2, 0xffd7, 1}, - {0xffda, 0xffdc, 1}, - {0xffe0, 0xffe6, 1}, - {0xffe8, 0xffee, 1}, - {0xfff9, 0xfffd, 1}, - }, - R32: []unicode.Range32{ - {0x00010000, 0x0001000b, 1}, - {0x0001000d, 0x00010026, 1}, - {0x00010028, 0x0001003a, 1}, - {0x0001003c, 0x0001003d, 1}, - {0x0001003f, 0x0001004d, 1}, - {0x00010050, 0x0001005d, 1}, - {0x00010080, 0x000100fa, 1}, - {0x00010100, 0x00010102, 1}, - {0x00010107, 0x00010133, 1}, - {0x00010137, 0x0001018a, 1}, - {0x00010300, 0x0001031e, 1}, - {0x00010320, 0x00010323, 1}, - {0x00010330, 0x0001034a, 1}, - {0x00010380, 0x0001039d, 1}, - {0x0001039f, 0x000103c3, 1}, - {0x000103c8, 0x000103d5, 1}, - {0x00010400, 0x0001049d, 1}, - {0x000104a0, 0x000104a9, 1}, - {0x00010800, 0x00010805, 1}, - {0x00010808, 0x0001080a, 2}, - {0x0001080b, 0x00010835, 1}, - {0x00010837, 0x00010838, 1}, - {0x0001083c, 0x0001083f, 3}, - {0x00010a00, 0x00010a03, 1}, - {0x00010a05, 0x00010a06, 1}, - {0x00010a0c, 0x00010a13, 1}, - {0x00010a15, 0x00010a17, 1}, - {0x00010a19, 0x00010a33, 1}, - {0x00010a38, 0x00010a3a, 1}, - {0x00010a3f, 0x00010a47, 1}, - {0x00010a50, 0x00010a58, 1}, - {0x0001d000, 0x0001d0f5, 1}, - {0x0001d100, 0x0001d126, 1}, - {0x0001d12a, 0x0001d1dd, 1}, - {0x0001d200, 0x0001d245, 1}, - {0x0001d300, 0x0001d356, 1}, - {0x0001d400, 0x0001d454, 1}, - {0x0001d456, 0x0001d49c, 1}, - {0x0001d49e, 0x0001d49f, 1}, - {0x0001d4a2, 0x0001d4a5, 3}, - {0x0001d4a6, 0x0001d4a9, 3}, - {0x0001d4aa, 0x0001d4ac, 1}, - {0x0001d4ae, 0x0001d4b9, 1}, - {0x0001d4bb, 0x0001d4bd, 2}, - {0x0001d4be, 0x0001d4c3, 1}, - {0x0001d4c5, 0x0001d505, 1}, - {0x0001d507, 0x0001d50a, 1}, - {0x0001d50d, 0x0001d514, 1}, - {0x0001d516, 0x0001d51c, 1}, - {0x0001d51e, 0x0001d539, 1}, - {0x0001d53b, 0x0001d53e, 1}, - {0x0001d540, 0x0001d544, 1}, - {0x0001d546, 0x0001d54a, 4}, - {0x0001d54b, 0x0001d550, 1}, - {0x0001d552, 0x0001d6a5, 1}, - {0x0001d6a8, 0x0001d7c9, 1}, - {0x0001d7ce, 0x0001d7ff, 1}, - {0x00020000, 0x0002a6d6, 1}, - {0x0002f800, 0x0002fa1d, 1}, - {0x000e0001, 0x000e0020, 31}, - {0x000e0021, 0x000e007f, 1}, - {0x000e0100, 0x000e01ef, 1}, - {0x000f0000, 0x000ffffd, 1}, - {0x00100000, 0x0010fffd, 1}, - }, - LatinOffset: 0, -} - -// size 3026 bytes (2 KiB) -var assigned5_0_0 = &unicode.RangeTable{ - R16: []unicode.Range16{ - {0x0000, 0x036f, 1}, - {0x0374, 0x0375, 1}, - {0x037a, 0x037e, 1}, - {0x0384, 0x038a, 1}, - {0x038c, 0x038e, 2}, - {0x038f, 0x03a1, 1}, - {0x03a3, 0x03ce, 1}, - {0x03d0, 0x0486, 1}, - {0x0488, 0x0513, 1}, - {0x0531, 0x0556, 1}, - {0x0559, 0x055f, 1}, - {0x0561, 0x0587, 1}, - {0x0589, 0x058a, 1}, - {0x0591, 0x05c7, 1}, - {0x05d0, 0x05ea, 1}, - {0x05f0, 0x05f4, 1}, - {0x0600, 0x0603, 1}, - {0x060b, 0x0615, 1}, - {0x061b, 0x061e, 3}, - {0x061f, 0x0621, 2}, - {0x0622, 0x063a, 1}, - {0x0640, 0x065e, 1}, - {0x0660, 0x070d, 1}, - {0x070f, 0x074a, 1}, - {0x074d, 0x076d, 1}, - {0x0780, 0x07b1, 1}, - {0x07c0, 0x07fa, 1}, - {0x0901, 0x0939, 1}, - {0x093c, 0x094d, 1}, - {0x0950, 0x0954, 1}, - {0x0958, 0x0970, 1}, - {0x097b, 0x097f, 1}, - {0x0981, 0x0983, 1}, - {0x0985, 0x098c, 1}, - {0x098f, 0x0990, 1}, - {0x0993, 0x09a8, 1}, - {0x09aa, 0x09b0, 1}, - {0x09b2, 0x09b6, 4}, - {0x09b7, 0x09b9, 1}, - {0x09bc, 0x09c4, 1}, - {0x09c7, 0x09c8, 1}, - {0x09cb, 0x09ce, 1}, - {0x09d7, 0x09dc, 5}, - {0x09dd, 0x09df, 2}, - {0x09e0, 0x09e3, 1}, - {0x09e6, 0x09fa, 1}, - {0x0a01, 0x0a03, 1}, - {0x0a05, 0x0a0a, 1}, - {0x0a0f, 0x0a10, 1}, - {0x0a13, 0x0a28, 1}, - {0x0a2a, 0x0a30, 1}, - {0x0a32, 0x0a33, 1}, - {0x0a35, 0x0a36, 1}, - {0x0a38, 0x0a39, 1}, - {0x0a3c, 0x0a3e, 2}, - {0x0a3f, 0x0a42, 1}, - {0x0a47, 0x0a48, 1}, - {0x0a4b, 0x0a4d, 1}, - {0x0a59, 0x0a5c, 1}, - {0x0a5e, 0x0a66, 8}, - {0x0a67, 0x0a74, 1}, - {0x0a81, 0x0a83, 1}, - {0x0a85, 0x0a8d, 1}, - {0x0a8f, 0x0a91, 1}, - {0x0a93, 0x0aa8, 1}, - {0x0aaa, 0x0ab0, 1}, - {0x0ab2, 0x0ab3, 1}, - {0x0ab5, 0x0ab9, 1}, - {0x0abc, 0x0ac5, 1}, - {0x0ac7, 0x0ac9, 1}, - {0x0acb, 0x0acd, 1}, - {0x0ad0, 0x0ae0, 16}, - {0x0ae1, 0x0ae3, 1}, - {0x0ae6, 0x0aef, 1}, - {0x0af1, 0x0b01, 16}, - {0x0b02, 0x0b03, 1}, - {0x0b05, 0x0b0c, 1}, - {0x0b0f, 0x0b10, 1}, - {0x0b13, 0x0b28, 1}, - {0x0b2a, 0x0b30, 1}, - {0x0b32, 0x0b33, 1}, - {0x0b35, 0x0b39, 1}, - {0x0b3c, 0x0b43, 1}, - {0x0b47, 0x0b48, 1}, - {0x0b4b, 0x0b4d, 1}, - {0x0b56, 0x0b57, 1}, - {0x0b5c, 0x0b5d, 1}, - {0x0b5f, 0x0b61, 1}, - {0x0b66, 0x0b71, 1}, - {0x0b82, 0x0b83, 1}, - {0x0b85, 0x0b8a, 1}, - {0x0b8e, 0x0b90, 1}, - {0x0b92, 0x0b95, 1}, - {0x0b99, 0x0b9a, 1}, - {0x0b9c, 0x0b9e, 2}, - {0x0b9f, 0x0ba3, 4}, - {0x0ba4, 0x0ba8, 4}, - {0x0ba9, 0x0baa, 1}, - {0x0bae, 0x0bb9, 1}, - {0x0bbe, 0x0bc2, 1}, - {0x0bc6, 0x0bc8, 1}, - {0x0bca, 0x0bcd, 1}, - {0x0bd7, 0x0be6, 15}, - {0x0be7, 0x0bfa, 1}, - {0x0c01, 0x0c03, 1}, - {0x0c05, 0x0c0c, 1}, - {0x0c0e, 0x0c10, 1}, - {0x0c12, 0x0c28, 1}, - {0x0c2a, 0x0c33, 1}, - {0x0c35, 0x0c39, 1}, - {0x0c3e, 0x0c44, 1}, - {0x0c46, 0x0c48, 1}, - {0x0c4a, 0x0c4d, 1}, - {0x0c55, 0x0c56, 1}, - {0x0c60, 0x0c61, 1}, - {0x0c66, 0x0c6f, 1}, - {0x0c82, 0x0c83, 1}, - {0x0c85, 0x0c8c, 1}, - {0x0c8e, 0x0c90, 1}, - {0x0c92, 0x0ca8, 1}, - {0x0caa, 0x0cb3, 1}, - {0x0cb5, 0x0cb9, 1}, - {0x0cbc, 0x0cc4, 1}, - {0x0cc6, 0x0cc8, 1}, - {0x0cca, 0x0ccd, 1}, - {0x0cd5, 0x0cd6, 1}, - {0x0cde, 0x0ce0, 2}, - {0x0ce1, 0x0ce3, 1}, - {0x0ce6, 0x0cef, 1}, - {0x0cf1, 0x0cf2, 1}, - {0x0d02, 0x0d03, 1}, - {0x0d05, 0x0d0c, 1}, - {0x0d0e, 0x0d10, 1}, - {0x0d12, 0x0d28, 1}, - {0x0d2a, 0x0d39, 1}, - {0x0d3e, 0x0d43, 1}, - {0x0d46, 0x0d48, 1}, - {0x0d4a, 0x0d4d, 1}, - {0x0d57, 0x0d60, 9}, - {0x0d61, 0x0d66, 5}, - {0x0d67, 0x0d6f, 1}, - {0x0d82, 0x0d83, 1}, - {0x0d85, 0x0d96, 1}, - {0x0d9a, 0x0db1, 1}, - {0x0db3, 0x0dbb, 1}, - {0x0dbd, 0x0dc0, 3}, - {0x0dc1, 0x0dc6, 1}, - {0x0dca, 0x0dcf, 5}, - {0x0dd0, 0x0dd4, 1}, - {0x0dd6, 0x0dd8, 2}, - {0x0dd9, 0x0ddf, 1}, - {0x0df2, 0x0df4, 1}, - {0x0e01, 0x0e3a, 1}, - {0x0e3f, 0x0e5b, 1}, - {0x0e81, 0x0e82, 1}, - {0x0e84, 0x0e87, 3}, - {0x0e88, 0x0e8a, 2}, - {0x0e8d, 0x0e94, 7}, - {0x0e95, 0x0e97, 1}, - {0x0e99, 0x0e9f, 1}, - {0x0ea1, 0x0ea3, 1}, - {0x0ea5, 0x0ea7, 2}, - {0x0eaa, 0x0eab, 1}, - {0x0ead, 0x0eb9, 1}, - {0x0ebb, 0x0ebd, 1}, - {0x0ec0, 0x0ec4, 1}, - {0x0ec6, 0x0ec8, 2}, - {0x0ec9, 0x0ecd, 1}, - {0x0ed0, 0x0ed9, 1}, - {0x0edc, 0x0edd, 1}, - {0x0f00, 0x0f47, 1}, - {0x0f49, 0x0f6a, 1}, - {0x0f71, 0x0f8b, 1}, - {0x0f90, 0x0f97, 1}, - {0x0f99, 0x0fbc, 1}, - {0x0fbe, 0x0fcc, 1}, - {0x0fcf, 0x0fd1, 1}, - {0x1000, 0x1021, 1}, - {0x1023, 0x1027, 1}, - {0x1029, 0x102a, 1}, - {0x102c, 0x1032, 1}, - {0x1036, 0x1039, 1}, - {0x1040, 0x1059, 1}, - {0x10a0, 0x10c5, 1}, - {0x10d0, 0x10fc, 1}, - {0x1100, 0x1159, 1}, - {0x115f, 0x11a2, 1}, - {0x11a8, 0x11f9, 1}, - {0x1200, 0x1248, 1}, - {0x124a, 0x124d, 1}, - {0x1250, 0x1256, 1}, - {0x1258, 0x125a, 2}, - {0x125b, 0x125d, 1}, - {0x1260, 0x1288, 1}, - {0x128a, 0x128d, 1}, - {0x1290, 0x12b0, 1}, - {0x12b2, 0x12b5, 1}, - {0x12b8, 0x12be, 1}, - {0x12c0, 0x12c2, 2}, - {0x12c3, 0x12c5, 1}, - {0x12c8, 0x12d6, 1}, - {0x12d8, 0x1310, 1}, - {0x1312, 0x1315, 1}, - {0x1318, 0x135a, 1}, - {0x135f, 0x137c, 1}, - {0x1380, 0x1399, 1}, - {0x13a0, 0x13f4, 1}, - {0x1401, 0x1676, 1}, - {0x1680, 0x169c, 1}, - {0x16a0, 0x16f0, 1}, - {0x1700, 0x170c, 1}, - {0x170e, 0x1714, 1}, - {0x1720, 0x1736, 1}, - {0x1740, 0x1753, 1}, - {0x1760, 0x176c, 1}, - {0x176e, 0x1770, 1}, - {0x1772, 0x1773, 1}, - {0x1780, 0x17dd, 1}, - {0x17e0, 0x17e9, 1}, - {0x17f0, 0x17f9, 1}, - {0x1800, 0x180e, 1}, - {0x1810, 0x1819, 1}, - {0x1820, 0x1877, 1}, - {0x1880, 0x18a9, 1}, - {0x1900, 0x191c, 1}, - {0x1920, 0x192b, 1}, - {0x1930, 0x193b, 1}, - {0x1940, 0x1944, 4}, - {0x1945, 0x196d, 1}, - {0x1970, 0x1974, 1}, - {0x1980, 0x19a9, 1}, - {0x19b0, 0x19c9, 1}, - {0x19d0, 0x19d9, 1}, - {0x19de, 0x1a1b, 1}, - {0x1a1e, 0x1a1f, 1}, - {0x1b00, 0x1b4b, 1}, - {0x1b50, 0x1b7c, 1}, - {0x1d00, 0x1dca, 1}, - {0x1dfe, 0x1e9b, 1}, - {0x1ea0, 0x1ef9, 1}, - {0x1f00, 0x1f15, 1}, - {0x1f18, 0x1f1d, 1}, - {0x1f20, 0x1f45, 1}, - {0x1f48, 0x1f4d, 1}, - {0x1f50, 0x1f57, 1}, - {0x1f59, 0x1f5f, 2}, - {0x1f60, 0x1f7d, 1}, - {0x1f80, 0x1fb4, 1}, - {0x1fb6, 0x1fc4, 1}, - {0x1fc6, 0x1fd3, 1}, - {0x1fd6, 0x1fdb, 1}, - {0x1fdd, 0x1fef, 1}, - {0x1ff2, 0x1ff4, 1}, - {0x1ff6, 0x1ffe, 1}, - {0x2000, 0x2063, 1}, - {0x206a, 0x2071, 1}, - {0x2074, 0x208e, 1}, - {0x2090, 0x2094, 1}, - {0x20a0, 0x20b5, 1}, - {0x20d0, 0x20ef, 1}, - {0x2100, 0x214e, 1}, - {0x2153, 0x2184, 1}, - {0x2190, 0x23e7, 1}, - {0x2400, 0x2426, 1}, - {0x2440, 0x244a, 1}, - {0x2460, 0x269c, 1}, - {0x26a0, 0x26b2, 1}, - {0x2701, 0x2704, 1}, - {0x2706, 0x2709, 1}, - {0x270c, 0x2727, 1}, - {0x2729, 0x274b, 1}, - {0x274d, 0x274f, 2}, - {0x2750, 0x2752, 1}, - {0x2756, 0x2758, 2}, - {0x2759, 0x275e, 1}, - {0x2761, 0x2794, 1}, - {0x2798, 0x27af, 1}, - {0x27b1, 0x27be, 1}, - {0x27c0, 0x27ca, 1}, - {0x27d0, 0x27eb, 1}, - {0x27f0, 0x2b1a, 1}, - {0x2b20, 0x2b23, 1}, - {0x2c00, 0x2c2e, 1}, - {0x2c30, 0x2c5e, 1}, - {0x2c60, 0x2c6c, 1}, - {0x2c74, 0x2c77, 1}, - {0x2c80, 0x2cea, 1}, - {0x2cf9, 0x2d25, 1}, - {0x2d30, 0x2d65, 1}, - {0x2d6f, 0x2d80, 17}, - {0x2d81, 0x2d96, 1}, - {0x2da0, 0x2da6, 1}, - {0x2da8, 0x2dae, 1}, - {0x2db0, 0x2db6, 1}, - {0x2db8, 0x2dbe, 1}, - {0x2dc0, 0x2dc6, 1}, - {0x2dc8, 0x2dce, 1}, - {0x2dd0, 0x2dd6, 1}, - {0x2dd8, 0x2dde, 1}, - {0x2e00, 0x2e17, 1}, - {0x2e1c, 0x2e1d, 1}, - {0x2e80, 0x2e99, 1}, - {0x2e9b, 0x2ef3, 1}, - {0x2f00, 0x2fd5, 1}, - {0x2ff0, 0x2ffb, 1}, - {0x3000, 0x303f, 1}, - {0x3041, 0x3096, 1}, - {0x3099, 0x30ff, 1}, - {0x3105, 0x312c, 1}, - {0x3131, 0x318e, 1}, - {0x3190, 0x31b7, 1}, - {0x31c0, 0x31cf, 1}, - {0x31f0, 0x321e, 1}, - {0x3220, 0x3243, 1}, - {0x3250, 0x32fe, 1}, - {0x3300, 0x4db5, 1}, - {0x4dc0, 0x9fbb, 1}, - {0xa000, 0xa48c, 1}, - {0xa490, 0xa4c6, 1}, - {0xa700, 0xa71a, 1}, - {0xa720, 0xa721, 1}, - {0xa800, 0xa82b, 1}, - {0xa840, 0xa877, 1}, - {0xac00, 0xd7a3, 1}, - {0xd800, 0xfa2d, 1}, - {0xfa30, 0xfa6a, 1}, - {0xfa70, 0xfad9, 1}, - {0xfb00, 0xfb06, 1}, - {0xfb13, 0xfb17, 1}, - {0xfb1d, 0xfb36, 1}, - {0xfb38, 0xfb3c, 1}, - {0xfb3e, 0xfb40, 2}, - {0xfb41, 0xfb43, 2}, - {0xfb44, 0xfb46, 2}, - {0xfb47, 0xfbb1, 1}, - {0xfbd3, 0xfd3f, 1}, - {0xfd50, 0xfd8f, 1}, - {0xfd92, 0xfdc7, 1}, - {0xfdf0, 0xfdfd, 1}, - {0xfe00, 0xfe19, 1}, - {0xfe20, 0xfe23, 1}, - {0xfe30, 0xfe52, 1}, - {0xfe54, 0xfe66, 1}, - {0xfe68, 0xfe6b, 1}, - {0xfe70, 0xfe74, 1}, - {0xfe76, 0xfefc, 1}, - {0xfeff, 0xff01, 2}, - {0xff02, 0xffbe, 1}, - {0xffc2, 0xffc7, 1}, - {0xffca, 0xffcf, 1}, - {0xffd2, 0xffd7, 1}, - {0xffda, 0xffdc, 1}, - {0xffe0, 0xffe6, 1}, - {0xffe8, 0xffee, 1}, - {0xfff9, 0xfffd, 1}, - }, - R32: []unicode.Range32{ - {0x00010000, 0x0001000b, 1}, - {0x0001000d, 0x00010026, 1}, - {0x00010028, 0x0001003a, 1}, - {0x0001003c, 0x0001003d, 1}, - {0x0001003f, 0x0001004d, 1}, - {0x00010050, 0x0001005d, 1}, - {0x00010080, 0x000100fa, 1}, - {0x00010100, 0x00010102, 1}, - {0x00010107, 0x00010133, 1}, - {0x00010137, 0x0001018a, 1}, - {0x00010300, 0x0001031e, 1}, - {0x00010320, 0x00010323, 1}, - {0x00010330, 0x0001034a, 1}, - {0x00010380, 0x0001039d, 1}, - {0x0001039f, 0x000103c3, 1}, - {0x000103c8, 0x000103d5, 1}, - {0x00010400, 0x0001049d, 1}, - {0x000104a0, 0x000104a9, 1}, - {0x00010800, 0x00010805, 1}, - {0x00010808, 0x0001080a, 2}, - {0x0001080b, 0x00010835, 1}, - {0x00010837, 0x00010838, 1}, - {0x0001083c, 0x0001083f, 3}, - {0x00010900, 0x00010919, 1}, - {0x0001091f, 0x00010a00, 225}, - {0x00010a01, 0x00010a03, 1}, - {0x00010a05, 0x00010a06, 1}, - {0x00010a0c, 0x00010a13, 1}, - {0x00010a15, 0x00010a17, 1}, - {0x00010a19, 0x00010a33, 1}, - {0x00010a38, 0x00010a3a, 1}, - {0x00010a3f, 0x00010a47, 1}, - {0x00010a50, 0x00010a58, 1}, - {0x00012000, 0x0001236e, 1}, - {0x00012400, 0x00012462, 1}, - {0x00012470, 0x00012473, 1}, - {0x0001d000, 0x0001d0f5, 1}, - {0x0001d100, 0x0001d126, 1}, - {0x0001d12a, 0x0001d1dd, 1}, - {0x0001d200, 0x0001d245, 1}, - {0x0001d300, 0x0001d356, 1}, - {0x0001d360, 0x0001d371, 1}, - {0x0001d400, 0x0001d454, 1}, - {0x0001d456, 0x0001d49c, 1}, - {0x0001d49e, 0x0001d49f, 1}, - {0x0001d4a2, 0x0001d4a5, 3}, - {0x0001d4a6, 0x0001d4a9, 3}, - {0x0001d4aa, 0x0001d4ac, 1}, - {0x0001d4ae, 0x0001d4b9, 1}, - {0x0001d4bb, 0x0001d4bd, 2}, - {0x0001d4be, 0x0001d4c3, 1}, - {0x0001d4c5, 0x0001d505, 1}, - {0x0001d507, 0x0001d50a, 1}, - {0x0001d50d, 0x0001d514, 1}, - {0x0001d516, 0x0001d51c, 1}, - {0x0001d51e, 0x0001d539, 1}, - {0x0001d53b, 0x0001d53e, 1}, - {0x0001d540, 0x0001d544, 1}, - {0x0001d546, 0x0001d54a, 4}, - {0x0001d54b, 0x0001d550, 1}, - {0x0001d552, 0x0001d6a5, 1}, - {0x0001d6a8, 0x0001d7cb, 1}, - {0x0001d7ce, 0x0001d7ff, 1}, - {0x00020000, 0x0002a6d6, 1}, - {0x0002f800, 0x0002fa1d, 1}, - {0x000e0001, 0x000e0020, 31}, - {0x000e0021, 0x000e007f, 1}, - {0x000e0100, 0x000e01ef, 1}, - {0x000f0000, 0x000ffffd, 1}, - {0x00100000, 0x0010fffd, 1}, - }, - LatinOffset: 0, -} - -// size 3152 bytes (3 KiB) -var assigned5_1_0 = &unicode.RangeTable{ - R16: []unicode.Range16{ - {0x0000, 0x0377, 1}, - {0x037a, 0x037e, 1}, - {0x0384, 0x038a, 1}, - {0x038c, 0x038e, 2}, - {0x038f, 0x03a1, 1}, - {0x03a3, 0x0523, 1}, - {0x0531, 0x0556, 1}, - {0x0559, 0x055f, 1}, - {0x0561, 0x0587, 1}, - {0x0589, 0x058a, 1}, - {0x0591, 0x05c7, 1}, - {0x05d0, 0x05ea, 1}, - {0x05f0, 0x05f4, 1}, - {0x0600, 0x0603, 1}, - {0x0606, 0x061b, 1}, - {0x061e, 0x061f, 1}, - {0x0621, 0x065e, 1}, - {0x0660, 0x070d, 1}, - {0x070f, 0x074a, 1}, - {0x074d, 0x07b1, 1}, - {0x07c0, 0x07fa, 1}, - {0x0901, 0x0939, 1}, - {0x093c, 0x094d, 1}, - {0x0950, 0x0954, 1}, - {0x0958, 0x0972, 1}, - {0x097b, 0x097f, 1}, - {0x0981, 0x0983, 1}, - {0x0985, 0x098c, 1}, - {0x098f, 0x0990, 1}, - {0x0993, 0x09a8, 1}, - {0x09aa, 0x09b0, 1}, - {0x09b2, 0x09b6, 4}, - {0x09b7, 0x09b9, 1}, - {0x09bc, 0x09c4, 1}, - {0x09c7, 0x09c8, 1}, - {0x09cb, 0x09ce, 1}, - {0x09d7, 0x09dc, 5}, - {0x09dd, 0x09df, 2}, - {0x09e0, 0x09e3, 1}, - {0x09e6, 0x09fa, 1}, - {0x0a01, 0x0a03, 1}, - {0x0a05, 0x0a0a, 1}, - {0x0a0f, 0x0a10, 1}, - {0x0a13, 0x0a28, 1}, - {0x0a2a, 0x0a30, 1}, - {0x0a32, 0x0a33, 1}, - {0x0a35, 0x0a36, 1}, - {0x0a38, 0x0a39, 1}, - {0x0a3c, 0x0a3e, 2}, - {0x0a3f, 0x0a42, 1}, - {0x0a47, 0x0a48, 1}, - {0x0a4b, 0x0a4d, 1}, - {0x0a51, 0x0a59, 8}, - {0x0a5a, 0x0a5c, 1}, - {0x0a5e, 0x0a66, 8}, - {0x0a67, 0x0a75, 1}, - {0x0a81, 0x0a83, 1}, - {0x0a85, 0x0a8d, 1}, - {0x0a8f, 0x0a91, 1}, - {0x0a93, 0x0aa8, 1}, - {0x0aaa, 0x0ab0, 1}, - {0x0ab2, 0x0ab3, 1}, - {0x0ab5, 0x0ab9, 1}, - {0x0abc, 0x0ac5, 1}, - {0x0ac7, 0x0ac9, 1}, - {0x0acb, 0x0acd, 1}, - {0x0ad0, 0x0ae0, 16}, - {0x0ae1, 0x0ae3, 1}, - {0x0ae6, 0x0aef, 1}, - {0x0af1, 0x0b01, 16}, - {0x0b02, 0x0b03, 1}, - {0x0b05, 0x0b0c, 1}, - {0x0b0f, 0x0b10, 1}, - {0x0b13, 0x0b28, 1}, - {0x0b2a, 0x0b30, 1}, - {0x0b32, 0x0b33, 1}, - {0x0b35, 0x0b39, 1}, - {0x0b3c, 0x0b44, 1}, - {0x0b47, 0x0b48, 1}, - {0x0b4b, 0x0b4d, 1}, - {0x0b56, 0x0b57, 1}, - {0x0b5c, 0x0b5d, 1}, - {0x0b5f, 0x0b63, 1}, - {0x0b66, 0x0b71, 1}, - {0x0b82, 0x0b83, 1}, - {0x0b85, 0x0b8a, 1}, - {0x0b8e, 0x0b90, 1}, - {0x0b92, 0x0b95, 1}, - {0x0b99, 0x0b9a, 1}, - {0x0b9c, 0x0b9e, 2}, - {0x0b9f, 0x0ba3, 4}, - {0x0ba4, 0x0ba8, 4}, - {0x0ba9, 0x0baa, 1}, - {0x0bae, 0x0bb9, 1}, - {0x0bbe, 0x0bc2, 1}, - {0x0bc6, 0x0bc8, 1}, - {0x0bca, 0x0bcd, 1}, - {0x0bd0, 0x0bd7, 7}, - {0x0be6, 0x0bfa, 1}, - {0x0c01, 0x0c03, 1}, - {0x0c05, 0x0c0c, 1}, - {0x0c0e, 0x0c10, 1}, - {0x0c12, 0x0c28, 1}, - {0x0c2a, 0x0c33, 1}, - {0x0c35, 0x0c39, 1}, - {0x0c3d, 0x0c44, 1}, - {0x0c46, 0x0c48, 1}, - {0x0c4a, 0x0c4d, 1}, - {0x0c55, 0x0c56, 1}, - {0x0c58, 0x0c59, 1}, - {0x0c60, 0x0c63, 1}, - {0x0c66, 0x0c6f, 1}, - {0x0c78, 0x0c7f, 1}, - {0x0c82, 0x0c83, 1}, - {0x0c85, 0x0c8c, 1}, - {0x0c8e, 0x0c90, 1}, - {0x0c92, 0x0ca8, 1}, - {0x0caa, 0x0cb3, 1}, - {0x0cb5, 0x0cb9, 1}, - {0x0cbc, 0x0cc4, 1}, - {0x0cc6, 0x0cc8, 1}, - {0x0cca, 0x0ccd, 1}, - {0x0cd5, 0x0cd6, 1}, - {0x0cde, 0x0ce0, 2}, - {0x0ce1, 0x0ce3, 1}, - {0x0ce6, 0x0cef, 1}, - {0x0cf1, 0x0cf2, 1}, - {0x0d02, 0x0d03, 1}, - {0x0d05, 0x0d0c, 1}, - {0x0d0e, 0x0d10, 1}, - {0x0d12, 0x0d28, 1}, - {0x0d2a, 0x0d39, 1}, - {0x0d3d, 0x0d44, 1}, - {0x0d46, 0x0d48, 1}, - {0x0d4a, 0x0d4d, 1}, - {0x0d57, 0x0d60, 9}, - {0x0d61, 0x0d63, 1}, - {0x0d66, 0x0d75, 1}, - {0x0d79, 0x0d7f, 1}, - {0x0d82, 0x0d83, 1}, - {0x0d85, 0x0d96, 1}, - {0x0d9a, 0x0db1, 1}, - {0x0db3, 0x0dbb, 1}, - {0x0dbd, 0x0dc0, 3}, - {0x0dc1, 0x0dc6, 1}, - {0x0dca, 0x0dcf, 5}, - {0x0dd0, 0x0dd4, 1}, - {0x0dd6, 0x0dd8, 2}, - {0x0dd9, 0x0ddf, 1}, - {0x0df2, 0x0df4, 1}, - {0x0e01, 0x0e3a, 1}, - {0x0e3f, 0x0e5b, 1}, - {0x0e81, 0x0e82, 1}, - {0x0e84, 0x0e87, 3}, - {0x0e88, 0x0e8a, 2}, - {0x0e8d, 0x0e94, 7}, - {0x0e95, 0x0e97, 1}, - {0x0e99, 0x0e9f, 1}, - {0x0ea1, 0x0ea3, 1}, - {0x0ea5, 0x0ea7, 2}, - {0x0eaa, 0x0eab, 1}, - {0x0ead, 0x0eb9, 1}, - {0x0ebb, 0x0ebd, 1}, - {0x0ec0, 0x0ec4, 1}, - {0x0ec6, 0x0ec8, 2}, - {0x0ec9, 0x0ecd, 1}, - {0x0ed0, 0x0ed9, 1}, - {0x0edc, 0x0edd, 1}, - {0x0f00, 0x0f47, 1}, - {0x0f49, 0x0f6c, 1}, - {0x0f71, 0x0f8b, 1}, - {0x0f90, 0x0f97, 1}, - {0x0f99, 0x0fbc, 1}, - {0x0fbe, 0x0fcc, 1}, - {0x0fce, 0x0fd4, 1}, - {0x1000, 0x1099, 1}, - {0x109e, 0x10c5, 1}, - {0x10d0, 0x10fc, 1}, - {0x1100, 0x1159, 1}, - {0x115f, 0x11a2, 1}, - {0x11a8, 0x11f9, 1}, - {0x1200, 0x1248, 1}, - {0x124a, 0x124d, 1}, - {0x1250, 0x1256, 1}, - {0x1258, 0x125a, 2}, - {0x125b, 0x125d, 1}, - {0x1260, 0x1288, 1}, - {0x128a, 0x128d, 1}, - {0x1290, 0x12b0, 1}, - {0x12b2, 0x12b5, 1}, - {0x12b8, 0x12be, 1}, - {0x12c0, 0x12c2, 2}, - {0x12c3, 0x12c5, 1}, - {0x12c8, 0x12d6, 1}, - {0x12d8, 0x1310, 1}, - {0x1312, 0x1315, 1}, - {0x1318, 0x135a, 1}, - {0x135f, 0x137c, 1}, - {0x1380, 0x1399, 1}, - {0x13a0, 0x13f4, 1}, - {0x1401, 0x1676, 1}, - {0x1680, 0x169c, 1}, - {0x16a0, 0x16f0, 1}, - {0x1700, 0x170c, 1}, - {0x170e, 0x1714, 1}, - {0x1720, 0x1736, 1}, - {0x1740, 0x1753, 1}, - {0x1760, 0x176c, 1}, - {0x176e, 0x1770, 1}, - {0x1772, 0x1773, 1}, - {0x1780, 0x17dd, 1}, - {0x17e0, 0x17e9, 1}, - {0x17f0, 0x17f9, 1}, - {0x1800, 0x180e, 1}, - {0x1810, 0x1819, 1}, - {0x1820, 0x1877, 1}, - {0x1880, 0x18aa, 1}, - {0x1900, 0x191c, 1}, - {0x1920, 0x192b, 1}, - {0x1930, 0x193b, 1}, - {0x1940, 0x1944, 4}, - {0x1945, 0x196d, 1}, - {0x1970, 0x1974, 1}, - {0x1980, 0x19a9, 1}, - {0x19b0, 0x19c9, 1}, - {0x19d0, 0x19d9, 1}, - {0x19de, 0x1a1b, 1}, - {0x1a1e, 0x1a1f, 1}, - {0x1b00, 0x1b4b, 1}, - {0x1b50, 0x1b7c, 1}, - {0x1b80, 0x1baa, 1}, - {0x1bae, 0x1bb9, 1}, - {0x1c00, 0x1c37, 1}, - {0x1c3b, 0x1c49, 1}, - {0x1c4d, 0x1c7f, 1}, - {0x1d00, 0x1de6, 1}, - {0x1dfe, 0x1f15, 1}, - {0x1f18, 0x1f1d, 1}, - {0x1f20, 0x1f45, 1}, - {0x1f48, 0x1f4d, 1}, - {0x1f50, 0x1f57, 1}, - {0x1f59, 0x1f5f, 2}, - {0x1f60, 0x1f7d, 1}, - {0x1f80, 0x1fb4, 1}, - {0x1fb6, 0x1fc4, 1}, - {0x1fc6, 0x1fd3, 1}, - {0x1fd6, 0x1fdb, 1}, - {0x1fdd, 0x1fef, 1}, - {0x1ff2, 0x1ff4, 1}, - {0x1ff6, 0x1ffe, 1}, - {0x2000, 0x2064, 1}, - {0x206a, 0x2071, 1}, - {0x2074, 0x208e, 1}, - {0x2090, 0x2094, 1}, - {0x20a0, 0x20b5, 1}, - {0x20d0, 0x20f0, 1}, - {0x2100, 0x214f, 1}, - {0x2153, 0x2188, 1}, - {0x2190, 0x23e7, 1}, - {0x2400, 0x2426, 1}, - {0x2440, 0x244a, 1}, - {0x2460, 0x269d, 1}, - {0x26a0, 0x26bc, 1}, - {0x26c0, 0x26c3, 1}, - {0x2701, 0x2704, 1}, - {0x2706, 0x2709, 1}, - {0x270c, 0x2727, 1}, - {0x2729, 0x274b, 1}, - {0x274d, 0x274f, 2}, - {0x2750, 0x2752, 1}, - {0x2756, 0x2758, 2}, - {0x2759, 0x275e, 1}, - {0x2761, 0x2794, 1}, - {0x2798, 0x27af, 1}, - {0x27b1, 0x27be, 1}, - {0x27c0, 0x27ca, 1}, - {0x27cc, 0x27d0, 4}, - {0x27d1, 0x2b4c, 1}, - {0x2b50, 0x2b54, 1}, - {0x2c00, 0x2c2e, 1}, - {0x2c30, 0x2c5e, 1}, - {0x2c60, 0x2c6f, 1}, - {0x2c71, 0x2c7d, 1}, - {0x2c80, 0x2cea, 1}, - {0x2cf9, 0x2d25, 1}, - {0x2d30, 0x2d65, 1}, - {0x2d6f, 0x2d80, 17}, - {0x2d81, 0x2d96, 1}, - {0x2da0, 0x2da6, 1}, - {0x2da8, 0x2dae, 1}, - {0x2db0, 0x2db6, 1}, - {0x2db8, 0x2dbe, 1}, - {0x2dc0, 0x2dc6, 1}, - {0x2dc8, 0x2dce, 1}, - {0x2dd0, 0x2dd6, 1}, - {0x2dd8, 0x2dde, 1}, - {0x2de0, 0x2e30, 1}, - {0x2e80, 0x2e99, 1}, - {0x2e9b, 0x2ef3, 1}, - {0x2f00, 0x2fd5, 1}, - {0x2ff0, 0x2ffb, 1}, - {0x3000, 0x303f, 1}, - {0x3041, 0x3096, 1}, - {0x3099, 0x30ff, 1}, - {0x3105, 0x312d, 1}, - {0x3131, 0x318e, 1}, - {0x3190, 0x31b7, 1}, - {0x31c0, 0x31e3, 1}, - {0x31f0, 0x321e, 1}, - {0x3220, 0x3243, 1}, - {0x3250, 0x32fe, 1}, - {0x3300, 0x4db5, 1}, - {0x4dc0, 0x9fc3, 1}, - {0xa000, 0xa48c, 1}, - {0xa490, 0xa4c6, 1}, - {0xa500, 0xa62b, 1}, - {0xa640, 0xa65f, 1}, - {0xa662, 0xa673, 1}, - {0xa67c, 0xa697, 1}, - {0xa700, 0xa78c, 1}, - {0xa7fb, 0xa82b, 1}, - {0xa840, 0xa877, 1}, - {0xa880, 0xa8c4, 1}, - {0xa8ce, 0xa8d9, 1}, - {0xa900, 0xa953, 1}, - {0xa95f, 0xaa00, 161}, - {0xaa01, 0xaa36, 1}, - {0xaa40, 0xaa4d, 1}, - {0xaa50, 0xaa59, 1}, - {0xaa5c, 0xaa5f, 1}, - {0xac00, 0xd7a3, 1}, - {0xd800, 0xfa2d, 1}, - {0xfa30, 0xfa6a, 1}, - {0xfa70, 0xfad9, 1}, - {0xfb00, 0xfb06, 1}, - {0xfb13, 0xfb17, 1}, - {0xfb1d, 0xfb36, 1}, - {0xfb38, 0xfb3c, 1}, - {0xfb3e, 0xfb40, 2}, - {0xfb41, 0xfb43, 2}, - {0xfb44, 0xfb46, 2}, - {0xfb47, 0xfbb1, 1}, - {0xfbd3, 0xfd3f, 1}, - {0xfd50, 0xfd8f, 1}, - {0xfd92, 0xfdc7, 1}, - {0xfdf0, 0xfdfd, 1}, - {0xfe00, 0xfe19, 1}, - {0xfe20, 0xfe26, 1}, - {0xfe30, 0xfe52, 1}, - {0xfe54, 0xfe66, 1}, - {0xfe68, 0xfe6b, 1}, - {0xfe70, 0xfe74, 1}, - {0xfe76, 0xfefc, 1}, - {0xfeff, 0xff01, 2}, - {0xff02, 0xffbe, 1}, - {0xffc2, 0xffc7, 1}, - {0xffca, 0xffcf, 1}, - {0xffd2, 0xffd7, 1}, - {0xffda, 0xffdc, 1}, - {0xffe0, 0xffe6, 1}, - {0xffe8, 0xffee, 1}, - {0xfff9, 0xfffd, 1}, - }, - R32: []unicode.Range32{ - {0x00010000, 0x0001000b, 1}, - {0x0001000d, 0x00010026, 1}, - {0x00010028, 0x0001003a, 1}, - {0x0001003c, 0x0001003d, 1}, - {0x0001003f, 0x0001004d, 1}, - {0x00010050, 0x0001005d, 1}, - {0x00010080, 0x000100fa, 1}, - {0x00010100, 0x00010102, 1}, - {0x00010107, 0x00010133, 1}, - {0x00010137, 0x0001018a, 1}, - {0x00010190, 0x0001019b, 1}, - {0x000101d0, 0x000101fd, 1}, - {0x00010280, 0x0001029c, 1}, - {0x000102a0, 0x000102d0, 1}, - {0x00010300, 0x0001031e, 1}, - {0x00010320, 0x00010323, 1}, - {0x00010330, 0x0001034a, 1}, - {0x00010380, 0x0001039d, 1}, - {0x0001039f, 0x000103c3, 1}, - {0x000103c8, 0x000103d5, 1}, - {0x00010400, 0x0001049d, 1}, - {0x000104a0, 0x000104a9, 1}, - {0x00010800, 0x00010805, 1}, - {0x00010808, 0x0001080a, 2}, - {0x0001080b, 0x00010835, 1}, - {0x00010837, 0x00010838, 1}, - {0x0001083c, 0x0001083f, 3}, - {0x00010900, 0x00010919, 1}, - {0x0001091f, 0x00010939, 1}, - {0x0001093f, 0x00010a00, 193}, - {0x00010a01, 0x00010a03, 1}, - {0x00010a05, 0x00010a06, 1}, - {0x00010a0c, 0x00010a13, 1}, - {0x00010a15, 0x00010a17, 1}, - {0x00010a19, 0x00010a33, 1}, - {0x00010a38, 0x00010a3a, 1}, - {0x00010a3f, 0x00010a47, 1}, - {0x00010a50, 0x00010a58, 1}, - {0x00012000, 0x0001236e, 1}, - {0x00012400, 0x00012462, 1}, - {0x00012470, 0x00012473, 1}, - {0x0001d000, 0x0001d0f5, 1}, - {0x0001d100, 0x0001d126, 1}, - {0x0001d129, 0x0001d1dd, 1}, - {0x0001d200, 0x0001d245, 1}, - {0x0001d300, 0x0001d356, 1}, - {0x0001d360, 0x0001d371, 1}, - {0x0001d400, 0x0001d454, 1}, - {0x0001d456, 0x0001d49c, 1}, - {0x0001d49e, 0x0001d49f, 1}, - {0x0001d4a2, 0x0001d4a5, 3}, - {0x0001d4a6, 0x0001d4a9, 3}, - {0x0001d4aa, 0x0001d4ac, 1}, - {0x0001d4ae, 0x0001d4b9, 1}, - {0x0001d4bb, 0x0001d4bd, 2}, - {0x0001d4be, 0x0001d4c3, 1}, - {0x0001d4c5, 0x0001d505, 1}, - {0x0001d507, 0x0001d50a, 1}, - {0x0001d50d, 0x0001d514, 1}, - {0x0001d516, 0x0001d51c, 1}, - {0x0001d51e, 0x0001d539, 1}, - {0x0001d53b, 0x0001d53e, 1}, - {0x0001d540, 0x0001d544, 1}, - {0x0001d546, 0x0001d54a, 4}, - {0x0001d54b, 0x0001d550, 1}, - {0x0001d552, 0x0001d6a5, 1}, - {0x0001d6a8, 0x0001d7cb, 1}, - {0x0001d7ce, 0x0001d7ff, 1}, - {0x0001f000, 0x0001f02b, 1}, - {0x0001f030, 0x0001f093, 1}, - {0x00020000, 0x0002a6d6, 1}, - {0x0002f800, 0x0002fa1d, 1}, - {0x000e0001, 0x000e0020, 31}, - {0x000e0021, 0x000e007f, 1}, - {0x000e0100, 0x000e01ef, 1}, - {0x000f0000, 0x000ffffd, 1}, - {0x00100000, 0x0010fffd, 1}, - }, - LatinOffset: 0, -} - -// size 3518 bytes (3 KiB) -var assigned5_2_0 = &unicode.RangeTable{ - R16: []unicode.Range16{ - {0x0000, 0x0377, 1}, - {0x037a, 0x037e, 1}, - {0x0384, 0x038a, 1}, - {0x038c, 0x038e, 2}, - {0x038f, 0x03a1, 1}, - {0x03a3, 0x0525, 1}, - {0x0531, 0x0556, 1}, - {0x0559, 0x055f, 1}, - {0x0561, 0x0587, 1}, - {0x0589, 0x058a, 1}, - {0x0591, 0x05c7, 1}, - {0x05d0, 0x05ea, 1}, - {0x05f0, 0x05f4, 1}, - {0x0600, 0x0603, 1}, - {0x0606, 0x061b, 1}, - {0x061e, 0x061f, 1}, - {0x0621, 0x065e, 1}, - {0x0660, 0x070d, 1}, - {0x070f, 0x074a, 1}, - {0x074d, 0x07b1, 1}, - {0x07c0, 0x07fa, 1}, - {0x0800, 0x082d, 1}, - {0x0830, 0x083e, 1}, - {0x0900, 0x0939, 1}, - {0x093c, 0x094e, 1}, - {0x0950, 0x0955, 1}, - {0x0958, 0x0972, 1}, - {0x0979, 0x097f, 1}, - {0x0981, 0x0983, 1}, - {0x0985, 0x098c, 1}, - {0x098f, 0x0990, 1}, - {0x0993, 0x09a8, 1}, - {0x09aa, 0x09b0, 1}, - {0x09b2, 0x09b6, 4}, - {0x09b7, 0x09b9, 1}, - {0x09bc, 0x09c4, 1}, - {0x09c7, 0x09c8, 1}, - {0x09cb, 0x09ce, 1}, - {0x09d7, 0x09dc, 5}, - {0x09dd, 0x09df, 2}, - {0x09e0, 0x09e3, 1}, - {0x09e6, 0x09fb, 1}, - {0x0a01, 0x0a03, 1}, - {0x0a05, 0x0a0a, 1}, - {0x0a0f, 0x0a10, 1}, - {0x0a13, 0x0a28, 1}, - {0x0a2a, 0x0a30, 1}, - {0x0a32, 0x0a33, 1}, - {0x0a35, 0x0a36, 1}, - {0x0a38, 0x0a39, 1}, - {0x0a3c, 0x0a3e, 2}, - {0x0a3f, 0x0a42, 1}, - {0x0a47, 0x0a48, 1}, - {0x0a4b, 0x0a4d, 1}, - {0x0a51, 0x0a59, 8}, - {0x0a5a, 0x0a5c, 1}, - {0x0a5e, 0x0a66, 8}, - {0x0a67, 0x0a75, 1}, - {0x0a81, 0x0a83, 1}, - {0x0a85, 0x0a8d, 1}, - {0x0a8f, 0x0a91, 1}, - {0x0a93, 0x0aa8, 1}, - {0x0aaa, 0x0ab0, 1}, - {0x0ab2, 0x0ab3, 1}, - {0x0ab5, 0x0ab9, 1}, - {0x0abc, 0x0ac5, 1}, - {0x0ac7, 0x0ac9, 1}, - {0x0acb, 0x0acd, 1}, - {0x0ad0, 0x0ae0, 16}, - {0x0ae1, 0x0ae3, 1}, - {0x0ae6, 0x0aef, 1}, - {0x0af1, 0x0b01, 16}, - {0x0b02, 0x0b03, 1}, - {0x0b05, 0x0b0c, 1}, - {0x0b0f, 0x0b10, 1}, - {0x0b13, 0x0b28, 1}, - {0x0b2a, 0x0b30, 1}, - {0x0b32, 0x0b33, 1}, - {0x0b35, 0x0b39, 1}, - {0x0b3c, 0x0b44, 1}, - {0x0b47, 0x0b48, 1}, - {0x0b4b, 0x0b4d, 1}, - {0x0b56, 0x0b57, 1}, - {0x0b5c, 0x0b5d, 1}, - {0x0b5f, 0x0b63, 1}, - {0x0b66, 0x0b71, 1}, - {0x0b82, 0x0b83, 1}, - {0x0b85, 0x0b8a, 1}, - {0x0b8e, 0x0b90, 1}, - {0x0b92, 0x0b95, 1}, - {0x0b99, 0x0b9a, 1}, - {0x0b9c, 0x0b9e, 2}, - {0x0b9f, 0x0ba3, 4}, - {0x0ba4, 0x0ba8, 4}, - {0x0ba9, 0x0baa, 1}, - {0x0bae, 0x0bb9, 1}, - {0x0bbe, 0x0bc2, 1}, - {0x0bc6, 0x0bc8, 1}, - {0x0bca, 0x0bcd, 1}, - {0x0bd0, 0x0bd7, 7}, - {0x0be6, 0x0bfa, 1}, - {0x0c01, 0x0c03, 1}, - {0x0c05, 0x0c0c, 1}, - {0x0c0e, 0x0c10, 1}, - {0x0c12, 0x0c28, 1}, - {0x0c2a, 0x0c33, 1}, - {0x0c35, 0x0c39, 1}, - {0x0c3d, 0x0c44, 1}, - {0x0c46, 0x0c48, 1}, - {0x0c4a, 0x0c4d, 1}, - {0x0c55, 0x0c56, 1}, - {0x0c58, 0x0c59, 1}, - {0x0c60, 0x0c63, 1}, - {0x0c66, 0x0c6f, 1}, - {0x0c78, 0x0c7f, 1}, - {0x0c82, 0x0c83, 1}, - {0x0c85, 0x0c8c, 1}, - {0x0c8e, 0x0c90, 1}, - {0x0c92, 0x0ca8, 1}, - {0x0caa, 0x0cb3, 1}, - {0x0cb5, 0x0cb9, 1}, - {0x0cbc, 0x0cc4, 1}, - {0x0cc6, 0x0cc8, 1}, - {0x0cca, 0x0ccd, 1}, - {0x0cd5, 0x0cd6, 1}, - {0x0cde, 0x0ce0, 2}, - {0x0ce1, 0x0ce3, 1}, - {0x0ce6, 0x0cef, 1}, - {0x0cf1, 0x0cf2, 1}, - {0x0d02, 0x0d03, 1}, - {0x0d05, 0x0d0c, 1}, - {0x0d0e, 0x0d10, 1}, - {0x0d12, 0x0d28, 1}, - {0x0d2a, 0x0d39, 1}, - {0x0d3d, 0x0d44, 1}, - {0x0d46, 0x0d48, 1}, - {0x0d4a, 0x0d4d, 1}, - {0x0d57, 0x0d60, 9}, - {0x0d61, 0x0d63, 1}, - {0x0d66, 0x0d75, 1}, - {0x0d79, 0x0d7f, 1}, - {0x0d82, 0x0d83, 1}, - {0x0d85, 0x0d96, 1}, - {0x0d9a, 0x0db1, 1}, - {0x0db3, 0x0dbb, 1}, - {0x0dbd, 0x0dc0, 3}, - {0x0dc1, 0x0dc6, 1}, - {0x0dca, 0x0dcf, 5}, - {0x0dd0, 0x0dd4, 1}, - {0x0dd6, 0x0dd8, 2}, - {0x0dd9, 0x0ddf, 1}, - {0x0df2, 0x0df4, 1}, - {0x0e01, 0x0e3a, 1}, - {0x0e3f, 0x0e5b, 1}, - {0x0e81, 0x0e82, 1}, - {0x0e84, 0x0e87, 3}, - {0x0e88, 0x0e8a, 2}, - {0x0e8d, 0x0e94, 7}, - {0x0e95, 0x0e97, 1}, - {0x0e99, 0x0e9f, 1}, - {0x0ea1, 0x0ea3, 1}, - {0x0ea5, 0x0ea7, 2}, - {0x0eaa, 0x0eab, 1}, - {0x0ead, 0x0eb9, 1}, - {0x0ebb, 0x0ebd, 1}, - {0x0ec0, 0x0ec4, 1}, - {0x0ec6, 0x0ec8, 2}, - {0x0ec9, 0x0ecd, 1}, - {0x0ed0, 0x0ed9, 1}, - {0x0edc, 0x0edd, 1}, - {0x0f00, 0x0f47, 1}, - {0x0f49, 0x0f6c, 1}, - {0x0f71, 0x0f8b, 1}, - {0x0f90, 0x0f97, 1}, - {0x0f99, 0x0fbc, 1}, - {0x0fbe, 0x0fcc, 1}, - {0x0fce, 0x0fd8, 1}, - {0x1000, 0x10c5, 1}, - {0x10d0, 0x10fc, 1}, - {0x1100, 0x1248, 1}, - {0x124a, 0x124d, 1}, - {0x1250, 0x1256, 1}, - {0x1258, 0x125a, 2}, - {0x125b, 0x125d, 1}, - {0x1260, 0x1288, 1}, - {0x128a, 0x128d, 1}, - {0x1290, 0x12b0, 1}, - {0x12b2, 0x12b5, 1}, - {0x12b8, 0x12be, 1}, - {0x12c0, 0x12c2, 2}, - {0x12c3, 0x12c5, 1}, - {0x12c8, 0x12d6, 1}, - {0x12d8, 0x1310, 1}, - {0x1312, 0x1315, 1}, - {0x1318, 0x135a, 1}, - {0x135f, 0x137c, 1}, - {0x1380, 0x1399, 1}, - {0x13a0, 0x13f4, 1}, - {0x1400, 0x169c, 1}, - {0x16a0, 0x16f0, 1}, - {0x1700, 0x170c, 1}, - {0x170e, 0x1714, 1}, - {0x1720, 0x1736, 1}, - {0x1740, 0x1753, 1}, - {0x1760, 0x176c, 1}, - {0x176e, 0x1770, 1}, - {0x1772, 0x1773, 1}, - {0x1780, 0x17dd, 1}, - {0x17e0, 0x17e9, 1}, - {0x17f0, 0x17f9, 1}, - {0x1800, 0x180e, 1}, - {0x1810, 0x1819, 1}, - {0x1820, 0x1877, 1}, - {0x1880, 0x18aa, 1}, - {0x18b0, 0x18f5, 1}, - {0x1900, 0x191c, 1}, - {0x1920, 0x192b, 1}, - {0x1930, 0x193b, 1}, - {0x1940, 0x1944, 4}, - {0x1945, 0x196d, 1}, - {0x1970, 0x1974, 1}, - {0x1980, 0x19ab, 1}, - {0x19b0, 0x19c9, 1}, - {0x19d0, 0x19da, 1}, - {0x19de, 0x1a1b, 1}, - {0x1a1e, 0x1a5e, 1}, - {0x1a60, 0x1a7c, 1}, - {0x1a7f, 0x1a89, 1}, - {0x1a90, 0x1a99, 1}, - {0x1aa0, 0x1aad, 1}, - {0x1b00, 0x1b4b, 1}, - {0x1b50, 0x1b7c, 1}, - {0x1b80, 0x1baa, 1}, - {0x1bae, 0x1bb9, 1}, - {0x1c00, 0x1c37, 1}, - {0x1c3b, 0x1c49, 1}, - {0x1c4d, 0x1c7f, 1}, - {0x1cd0, 0x1cf2, 1}, - {0x1d00, 0x1de6, 1}, - {0x1dfd, 0x1f15, 1}, - {0x1f18, 0x1f1d, 1}, - {0x1f20, 0x1f45, 1}, - {0x1f48, 0x1f4d, 1}, - {0x1f50, 0x1f57, 1}, - {0x1f59, 0x1f5f, 2}, - {0x1f60, 0x1f7d, 1}, - {0x1f80, 0x1fb4, 1}, - {0x1fb6, 0x1fc4, 1}, - {0x1fc6, 0x1fd3, 1}, - {0x1fd6, 0x1fdb, 1}, - {0x1fdd, 0x1fef, 1}, - {0x1ff2, 0x1ff4, 1}, - {0x1ff6, 0x1ffe, 1}, - {0x2000, 0x2064, 1}, - {0x206a, 0x2071, 1}, - {0x2074, 0x208e, 1}, - {0x2090, 0x2094, 1}, - {0x20a0, 0x20b8, 1}, - {0x20d0, 0x20f0, 1}, - {0x2100, 0x2189, 1}, - {0x2190, 0x23e8, 1}, - {0x2400, 0x2426, 1}, - {0x2440, 0x244a, 1}, - {0x2460, 0x26cd, 1}, - {0x26cf, 0x26e1, 1}, - {0x26e3, 0x26e8, 5}, - {0x26e9, 0x26ff, 1}, - {0x2701, 0x2704, 1}, - {0x2706, 0x2709, 1}, - {0x270c, 0x2727, 1}, - {0x2729, 0x274b, 1}, - {0x274d, 0x274f, 2}, - {0x2750, 0x2752, 1}, - {0x2756, 0x275e, 1}, - {0x2761, 0x2794, 1}, - {0x2798, 0x27af, 1}, - {0x27b1, 0x27be, 1}, - {0x27c0, 0x27ca, 1}, - {0x27cc, 0x27d0, 4}, - {0x27d1, 0x2b4c, 1}, - {0x2b50, 0x2b59, 1}, - {0x2c00, 0x2c2e, 1}, - {0x2c30, 0x2c5e, 1}, - {0x2c60, 0x2cf1, 1}, - {0x2cf9, 0x2d25, 1}, - {0x2d30, 0x2d65, 1}, - {0x2d6f, 0x2d80, 17}, - {0x2d81, 0x2d96, 1}, - {0x2da0, 0x2da6, 1}, - {0x2da8, 0x2dae, 1}, - {0x2db0, 0x2db6, 1}, - {0x2db8, 0x2dbe, 1}, - {0x2dc0, 0x2dc6, 1}, - {0x2dc8, 0x2dce, 1}, - {0x2dd0, 0x2dd6, 1}, - {0x2dd8, 0x2dde, 1}, - {0x2de0, 0x2e31, 1}, - {0x2e80, 0x2e99, 1}, - {0x2e9b, 0x2ef3, 1}, - {0x2f00, 0x2fd5, 1}, - {0x2ff0, 0x2ffb, 1}, - {0x3000, 0x303f, 1}, - {0x3041, 0x3096, 1}, - {0x3099, 0x30ff, 1}, - {0x3105, 0x312d, 1}, - {0x3131, 0x318e, 1}, - {0x3190, 0x31b7, 1}, - {0x31c0, 0x31e3, 1}, - {0x31f0, 0x321e, 1}, - {0x3220, 0x32fe, 1}, - {0x3300, 0x4db5, 1}, - {0x4dc0, 0x9fcb, 1}, - {0xa000, 0xa48c, 1}, - {0xa490, 0xa4c6, 1}, - {0xa4d0, 0xa62b, 1}, - {0xa640, 0xa65f, 1}, - {0xa662, 0xa673, 1}, - {0xa67c, 0xa697, 1}, - {0xa6a0, 0xa6f7, 1}, - {0xa700, 0xa78c, 1}, - {0xa7fb, 0xa82b, 1}, - {0xa830, 0xa839, 1}, - {0xa840, 0xa877, 1}, - {0xa880, 0xa8c4, 1}, - {0xa8ce, 0xa8d9, 1}, - {0xa8e0, 0xa8fb, 1}, - {0xa900, 0xa953, 1}, - {0xa95f, 0xa97c, 1}, - {0xa980, 0xa9cd, 1}, - {0xa9cf, 0xa9d9, 1}, - {0xa9de, 0xa9df, 1}, - {0xaa00, 0xaa36, 1}, - {0xaa40, 0xaa4d, 1}, - {0xaa50, 0xaa59, 1}, - {0xaa5c, 0xaa7b, 1}, - {0xaa80, 0xaac2, 1}, - {0xaadb, 0xaadf, 1}, - {0xabc0, 0xabed, 1}, - {0xabf0, 0xabf9, 1}, - {0xac00, 0xd7a3, 1}, - {0xd7b0, 0xd7c6, 1}, - {0xd7cb, 0xd7fb, 1}, - {0xd800, 0xfa2d, 1}, - {0xfa30, 0xfa6d, 1}, - {0xfa70, 0xfad9, 1}, - {0xfb00, 0xfb06, 1}, - {0xfb13, 0xfb17, 1}, - {0xfb1d, 0xfb36, 1}, - {0xfb38, 0xfb3c, 1}, - {0xfb3e, 0xfb40, 2}, - {0xfb41, 0xfb43, 2}, - {0xfb44, 0xfb46, 2}, - {0xfb47, 0xfbb1, 1}, - {0xfbd3, 0xfd3f, 1}, - {0xfd50, 0xfd8f, 1}, - {0xfd92, 0xfdc7, 1}, - {0xfdf0, 0xfdfd, 1}, - {0xfe00, 0xfe19, 1}, - {0xfe20, 0xfe26, 1}, - {0xfe30, 0xfe52, 1}, - {0xfe54, 0xfe66, 1}, - {0xfe68, 0xfe6b, 1}, - {0xfe70, 0xfe74, 1}, - {0xfe76, 0xfefc, 1}, - {0xfeff, 0xff01, 2}, - {0xff02, 0xffbe, 1}, - {0xffc2, 0xffc7, 1}, - {0xffca, 0xffcf, 1}, - {0xffd2, 0xffd7, 1}, - {0xffda, 0xffdc, 1}, - {0xffe0, 0xffe6, 1}, - {0xffe8, 0xffee, 1}, - {0xfff9, 0xfffd, 1}, - }, - R32: []unicode.Range32{ - {0x00010000, 0x0001000b, 1}, - {0x0001000d, 0x00010026, 1}, - {0x00010028, 0x0001003a, 1}, - {0x0001003c, 0x0001003d, 1}, - {0x0001003f, 0x0001004d, 1}, - {0x00010050, 0x0001005d, 1}, - {0x00010080, 0x000100fa, 1}, - {0x00010100, 0x00010102, 1}, - {0x00010107, 0x00010133, 1}, - {0x00010137, 0x0001018a, 1}, - {0x00010190, 0x0001019b, 1}, - {0x000101d0, 0x000101fd, 1}, - {0x00010280, 0x0001029c, 1}, - {0x000102a0, 0x000102d0, 1}, - {0x00010300, 0x0001031e, 1}, - {0x00010320, 0x00010323, 1}, - {0x00010330, 0x0001034a, 1}, - {0x00010380, 0x0001039d, 1}, - {0x0001039f, 0x000103c3, 1}, - {0x000103c8, 0x000103d5, 1}, - {0x00010400, 0x0001049d, 1}, - {0x000104a0, 0x000104a9, 1}, - {0x00010800, 0x00010805, 1}, - {0x00010808, 0x0001080a, 2}, - {0x0001080b, 0x00010835, 1}, - {0x00010837, 0x00010838, 1}, - {0x0001083c, 0x0001083f, 3}, - {0x00010840, 0x00010855, 1}, - {0x00010857, 0x0001085f, 1}, - {0x00010900, 0x0001091b, 1}, - {0x0001091f, 0x00010939, 1}, - {0x0001093f, 0x00010a00, 193}, - {0x00010a01, 0x00010a03, 1}, - {0x00010a05, 0x00010a06, 1}, - {0x00010a0c, 0x00010a13, 1}, - {0x00010a15, 0x00010a17, 1}, - {0x00010a19, 0x00010a33, 1}, - {0x00010a38, 0x00010a3a, 1}, - {0x00010a3f, 0x00010a47, 1}, - {0x00010a50, 0x00010a58, 1}, - {0x00010a60, 0x00010a7f, 1}, - {0x00010b00, 0x00010b35, 1}, - {0x00010b39, 0x00010b55, 1}, - {0x00010b58, 0x00010b72, 1}, - {0x00010b78, 0x00010b7f, 1}, - {0x00010c00, 0x00010c48, 1}, - {0x00010e60, 0x00010e7e, 1}, - {0x00011080, 0x000110c1, 1}, - {0x00012000, 0x0001236e, 1}, - {0x00012400, 0x00012462, 1}, - {0x00012470, 0x00012473, 1}, - {0x00013000, 0x0001342e, 1}, - {0x0001d000, 0x0001d0f5, 1}, - {0x0001d100, 0x0001d126, 1}, - {0x0001d129, 0x0001d1dd, 1}, - {0x0001d200, 0x0001d245, 1}, - {0x0001d300, 0x0001d356, 1}, - {0x0001d360, 0x0001d371, 1}, - {0x0001d400, 0x0001d454, 1}, - {0x0001d456, 0x0001d49c, 1}, - {0x0001d49e, 0x0001d49f, 1}, - {0x0001d4a2, 0x0001d4a5, 3}, - {0x0001d4a6, 0x0001d4a9, 3}, - {0x0001d4aa, 0x0001d4ac, 1}, - {0x0001d4ae, 0x0001d4b9, 1}, - {0x0001d4bb, 0x0001d4bd, 2}, - {0x0001d4be, 0x0001d4c3, 1}, - {0x0001d4c5, 0x0001d505, 1}, - {0x0001d507, 0x0001d50a, 1}, - {0x0001d50d, 0x0001d514, 1}, - {0x0001d516, 0x0001d51c, 1}, - {0x0001d51e, 0x0001d539, 1}, - {0x0001d53b, 0x0001d53e, 1}, - {0x0001d540, 0x0001d544, 1}, - {0x0001d546, 0x0001d54a, 4}, - {0x0001d54b, 0x0001d550, 1}, - {0x0001d552, 0x0001d6a5, 1}, - {0x0001d6a8, 0x0001d7cb, 1}, - {0x0001d7ce, 0x0001d7ff, 1}, - {0x0001f000, 0x0001f02b, 1}, - {0x0001f030, 0x0001f093, 1}, - {0x0001f100, 0x0001f10a, 1}, - {0x0001f110, 0x0001f12e, 1}, - {0x0001f131, 0x0001f13d, 12}, - {0x0001f13f, 0x0001f142, 3}, - {0x0001f146, 0x0001f14a, 4}, - {0x0001f14b, 0x0001f14e, 1}, - {0x0001f157, 0x0001f15f, 8}, - {0x0001f179, 0x0001f17b, 2}, - {0x0001f17c, 0x0001f17f, 3}, - {0x0001f18a, 0x0001f18d, 1}, - {0x0001f190, 0x0001f200, 112}, - {0x0001f210, 0x0001f231, 1}, - {0x0001f240, 0x0001f248, 1}, - {0x00020000, 0x0002a6d6, 1}, - {0x0002a700, 0x0002b734, 1}, - {0x0002f800, 0x0002fa1d, 1}, - {0x000e0001, 0x000e0020, 31}, - {0x000e0021, 0x000e007f, 1}, - {0x000e0100, 0x000e01ef, 1}, - {0x000f0000, 0x000ffffd, 1}, - {0x00100000, 0x0010fffd, 1}, - }, - LatinOffset: 0, -} - -// size 3812 bytes (3 KiB) -var assigned6_0_0 = &unicode.RangeTable{ - R16: []unicode.Range16{ - {0x0000, 0x0377, 1}, - {0x037a, 0x037e, 1}, - {0x0384, 0x038a, 1}, - {0x038c, 0x038e, 2}, - {0x038f, 0x03a1, 1}, - {0x03a3, 0x0527, 1}, - {0x0531, 0x0556, 1}, - {0x0559, 0x055f, 1}, - {0x0561, 0x0587, 1}, - {0x0589, 0x058a, 1}, - {0x0591, 0x05c7, 1}, - {0x05d0, 0x05ea, 1}, - {0x05f0, 0x05f4, 1}, - {0x0600, 0x0603, 1}, - {0x0606, 0x061b, 1}, - {0x061e, 0x070d, 1}, - {0x070f, 0x074a, 1}, - {0x074d, 0x07b1, 1}, - {0x07c0, 0x07fa, 1}, - {0x0800, 0x082d, 1}, - {0x0830, 0x083e, 1}, - {0x0840, 0x085b, 1}, - {0x085e, 0x0900, 162}, - {0x0901, 0x0977, 1}, - {0x0979, 0x097f, 1}, - {0x0981, 0x0983, 1}, - {0x0985, 0x098c, 1}, - {0x098f, 0x0990, 1}, - {0x0993, 0x09a8, 1}, - {0x09aa, 0x09b0, 1}, - {0x09b2, 0x09b6, 4}, - {0x09b7, 0x09b9, 1}, - {0x09bc, 0x09c4, 1}, - {0x09c7, 0x09c8, 1}, - {0x09cb, 0x09ce, 1}, - {0x09d7, 0x09dc, 5}, - {0x09dd, 0x09df, 2}, - {0x09e0, 0x09e3, 1}, - {0x09e6, 0x09fb, 1}, - {0x0a01, 0x0a03, 1}, - {0x0a05, 0x0a0a, 1}, - {0x0a0f, 0x0a10, 1}, - {0x0a13, 0x0a28, 1}, - {0x0a2a, 0x0a30, 1}, - {0x0a32, 0x0a33, 1}, - {0x0a35, 0x0a36, 1}, - {0x0a38, 0x0a39, 1}, - {0x0a3c, 0x0a3e, 2}, - {0x0a3f, 0x0a42, 1}, - {0x0a47, 0x0a48, 1}, - {0x0a4b, 0x0a4d, 1}, - {0x0a51, 0x0a59, 8}, - {0x0a5a, 0x0a5c, 1}, - {0x0a5e, 0x0a66, 8}, - {0x0a67, 0x0a75, 1}, - {0x0a81, 0x0a83, 1}, - {0x0a85, 0x0a8d, 1}, - {0x0a8f, 0x0a91, 1}, - {0x0a93, 0x0aa8, 1}, - {0x0aaa, 0x0ab0, 1}, - {0x0ab2, 0x0ab3, 1}, - {0x0ab5, 0x0ab9, 1}, - {0x0abc, 0x0ac5, 1}, - {0x0ac7, 0x0ac9, 1}, - {0x0acb, 0x0acd, 1}, - {0x0ad0, 0x0ae0, 16}, - {0x0ae1, 0x0ae3, 1}, - {0x0ae6, 0x0aef, 1}, - {0x0af1, 0x0b01, 16}, - {0x0b02, 0x0b03, 1}, - {0x0b05, 0x0b0c, 1}, - {0x0b0f, 0x0b10, 1}, - {0x0b13, 0x0b28, 1}, - {0x0b2a, 0x0b30, 1}, - {0x0b32, 0x0b33, 1}, - {0x0b35, 0x0b39, 1}, - {0x0b3c, 0x0b44, 1}, - {0x0b47, 0x0b48, 1}, - {0x0b4b, 0x0b4d, 1}, - {0x0b56, 0x0b57, 1}, - {0x0b5c, 0x0b5d, 1}, - {0x0b5f, 0x0b63, 1}, - {0x0b66, 0x0b77, 1}, - {0x0b82, 0x0b83, 1}, - {0x0b85, 0x0b8a, 1}, - {0x0b8e, 0x0b90, 1}, - {0x0b92, 0x0b95, 1}, - {0x0b99, 0x0b9a, 1}, - {0x0b9c, 0x0b9e, 2}, - {0x0b9f, 0x0ba3, 4}, - {0x0ba4, 0x0ba8, 4}, - {0x0ba9, 0x0baa, 1}, - {0x0bae, 0x0bb9, 1}, - {0x0bbe, 0x0bc2, 1}, - {0x0bc6, 0x0bc8, 1}, - {0x0bca, 0x0bcd, 1}, - {0x0bd0, 0x0bd7, 7}, - {0x0be6, 0x0bfa, 1}, - {0x0c01, 0x0c03, 1}, - {0x0c05, 0x0c0c, 1}, - {0x0c0e, 0x0c10, 1}, - {0x0c12, 0x0c28, 1}, - {0x0c2a, 0x0c33, 1}, - {0x0c35, 0x0c39, 1}, - {0x0c3d, 0x0c44, 1}, - {0x0c46, 0x0c48, 1}, - {0x0c4a, 0x0c4d, 1}, - {0x0c55, 0x0c56, 1}, - {0x0c58, 0x0c59, 1}, - {0x0c60, 0x0c63, 1}, - {0x0c66, 0x0c6f, 1}, - {0x0c78, 0x0c7f, 1}, - {0x0c82, 0x0c83, 1}, - {0x0c85, 0x0c8c, 1}, - {0x0c8e, 0x0c90, 1}, - {0x0c92, 0x0ca8, 1}, - {0x0caa, 0x0cb3, 1}, - {0x0cb5, 0x0cb9, 1}, - {0x0cbc, 0x0cc4, 1}, - {0x0cc6, 0x0cc8, 1}, - {0x0cca, 0x0ccd, 1}, - {0x0cd5, 0x0cd6, 1}, - {0x0cde, 0x0ce0, 2}, - {0x0ce1, 0x0ce3, 1}, - {0x0ce6, 0x0cef, 1}, - {0x0cf1, 0x0cf2, 1}, - {0x0d02, 0x0d03, 1}, - {0x0d05, 0x0d0c, 1}, - {0x0d0e, 0x0d10, 1}, - {0x0d12, 0x0d3a, 1}, - {0x0d3d, 0x0d44, 1}, - {0x0d46, 0x0d48, 1}, - {0x0d4a, 0x0d4e, 1}, - {0x0d57, 0x0d60, 9}, - {0x0d61, 0x0d63, 1}, - {0x0d66, 0x0d75, 1}, - {0x0d79, 0x0d7f, 1}, - {0x0d82, 0x0d83, 1}, - {0x0d85, 0x0d96, 1}, - {0x0d9a, 0x0db1, 1}, - {0x0db3, 0x0dbb, 1}, - {0x0dbd, 0x0dc0, 3}, - {0x0dc1, 0x0dc6, 1}, - {0x0dca, 0x0dcf, 5}, - {0x0dd0, 0x0dd4, 1}, - {0x0dd6, 0x0dd8, 2}, - {0x0dd9, 0x0ddf, 1}, - {0x0df2, 0x0df4, 1}, - {0x0e01, 0x0e3a, 1}, - {0x0e3f, 0x0e5b, 1}, - {0x0e81, 0x0e82, 1}, - {0x0e84, 0x0e87, 3}, - {0x0e88, 0x0e8a, 2}, - {0x0e8d, 0x0e94, 7}, - {0x0e95, 0x0e97, 1}, - {0x0e99, 0x0e9f, 1}, - {0x0ea1, 0x0ea3, 1}, - {0x0ea5, 0x0ea7, 2}, - {0x0eaa, 0x0eab, 1}, - {0x0ead, 0x0eb9, 1}, - {0x0ebb, 0x0ebd, 1}, - {0x0ec0, 0x0ec4, 1}, - {0x0ec6, 0x0ec8, 2}, - {0x0ec9, 0x0ecd, 1}, - {0x0ed0, 0x0ed9, 1}, - {0x0edc, 0x0edd, 1}, - {0x0f00, 0x0f47, 1}, - {0x0f49, 0x0f6c, 1}, - {0x0f71, 0x0f97, 1}, - {0x0f99, 0x0fbc, 1}, - {0x0fbe, 0x0fcc, 1}, - {0x0fce, 0x0fda, 1}, - {0x1000, 0x10c5, 1}, - {0x10d0, 0x10fc, 1}, - {0x1100, 0x1248, 1}, - {0x124a, 0x124d, 1}, - {0x1250, 0x1256, 1}, - {0x1258, 0x125a, 2}, - {0x125b, 0x125d, 1}, - {0x1260, 0x1288, 1}, - {0x128a, 0x128d, 1}, - {0x1290, 0x12b0, 1}, - {0x12b2, 0x12b5, 1}, - {0x12b8, 0x12be, 1}, - {0x12c0, 0x12c2, 2}, - {0x12c3, 0x12c5, 1}, - {0x12c8, 0x12d6, 1}, - {0x12d8, 0x1310, 1}, - {0x1312, 0x1315, 1}, - {0x1318, 0x135a, 1}, - {0x135d, 0x137c, 1}, - {0x1380, 0x1399, 1}, - {0x13a0, 0x13f4, 1}, - {0x1400, 0x169c, 1}, - {0x16a0, 0x16f0, 1}, - {0x1700, 0x170c, 1}, - {0x170e, 0x1714, 1}, - {0x1720, 0x1736, 1}, - {0x1740, 0x1753, 1}, - {0x1760, 0x176c, 1}, - {0x176e, 0x1770, 1}, - {0x1772, 0x1773, 1}, - {0x1780, 0x17dd, 1}, - {0x17e0, 0x17e9, 1}, - {0x17f0, 0x17f9, 1}, - {0x1800, 0x180e, 1}, - {0x1810, 0x1819, 1}, - {0x1820, 0x1877, 1}, - {0x1880, 0x18aa, 1}, - {0x18b0, 0x18f5, 1}, - {0x1900, 0x191c, 1}, - {0x1920, 0x192b, 1}, - {0x1930, 0x193b, 1}, - {0x1940, 0x1944, 4}, - {0x1945, 0x196d, 1}, - {0x1970, 0x1974, 1}, - {0x1980, 0x19ab, 1}, - {0x19b0, 0x19c9, 1}, - {0x19d0, 0x19da, 1}, - {0x19de, 0x1a1b, 1}, - {0x1a1e, 0x1a5e, 1}, - {0x1a60, 0x1a7c, 1}, - {0x1a7f, 0x1a89, 1}, - {0x1a90, 0x1a99, 1}, - {0x1aa0, 0x1aad, 1}, - {0x1b00, 0x1b4b, 1}, - {0x1b50, 0x1b7c, 1}, - {0x1b80, 0x1baa, 1}, - {0x1bae, 0x1bb9, 1}, - {0x1bc0, 0x1bf3, 1}, - {0x1bfc, 0x1c37, 1}, - {0x1c3b, 0x1c49, 1}, - {0x1c4d, 0x1c7f, 1}, - {0x1cd0, 0x1cf2, 1}, - {0x1d00, 0x1de6, 1}, - {0x1dfc, 0x1f15, 1}, - {0x1f18, 0x1f1d, 1}, - {0x1f20, 0x1f45, 1}, - {0x1f48, 0x1f4d, 1}, - {0x1f50, 0x1f57, 1}, - {0x1f59, 0x1f5f, 2}, - {0x1f60, 0x1f7d, 1}, - {0x1f80, 0x1fb4, 1}, - {0x1fb6, 0x1fc4, 1}, - {0x1fc6, 0x1fd3, 1}, - {0x1fd6, 0x1fdb, 1}, - {0x1fdd, 0x1fef, 1}, - {0x1ff2, 0x1ff4, 1}, - {0x1ff6, 0x1ffe, 1}, - {0x2000, 0x2064, 1}, - {0x206a, 0x2071, 1}, - {0x2074, 0x208e, 1}, - {0x2090, 0x209c, 1}, - {0x20a0, 0x20b9, 1}, - {0x20d0, 0x20f0, 1}, - {0x2100, 0x2189, 1}, - {0x2190, 0x23f3, 1}, - {0x2400, 0x2426, 1}, - {0x2440, 0x244a, 1}, - {0x2460, 0x26ff, 1}, - {0x2701, 0x27ca, 1}, - {0x27cc, 0x27ce, 2}, - {0x27cf, 0x2b4c, 1}, - {0x2b50, 0x2b59, 1}, - {0x2c00, 0x2c2e, 1}, - {0x2c30, 0x2c5e, 1}, - {0x2c60, 0x2cf1, 1}, - {0x2cf9, 0x2d25, 1}, - {0x2d30, 0x2d65, 1}, - {0x2d6f, 0x2d70, 1}, - {0x2d7f, 0x2d96, 1}, - {0x2da0, 0x2da6, 1}, - {0x2da8, 0x2dae, 1}, - {0x2db0, 0x2db6, 1}, - {0x2db8, 0x2dbe, 1}, - {0x2dc0, 0x2dc6, 1}, - {0x2dc8, 0x2dce, 1}, - {0x2dd0, 0x2dd6, 1}, - {0x2dd8, 0x2dde, 1}, - {0x2de0, 0x2e31, 1}, - {0x2e80, 0x2e99, 1}, - {0x2e9b, 0x2ef3, 1}, - {0x2f00, 0x2fd5, 1}, - {0x2ff0, 0x2ffb, 1}, - {0x3000, 0x303f, 1}, - {0x3041, 0x3096, 1}, - {0x3099, 0x30ff, 1}, - {0x3105, 0x312d, 1}, - {0x3131, 0x318e, 1}, - {0x3190, 0x31ba, 1}, - {0x31c0, 0x31e3, 1}, - {0x31f0, 0x321e, 1}, - {0x3220, 0x32fe, 1}, - {0x3300, 0x4db5, 1}, - {0x4dc0, 0x9fcb, 1}, - {0xa000, 0xa48c, 1}, - {0xa490, 0xa4c6, 1}, - {0xa4d0, 0xa62b, 1}, - {0xa640, 0xa673, 1}, - {0xa67c, 0xa697, 1}, - {0xa6a0, 0xa6f7, 1}, - {0xa700, 0xa78e, 1}, - {0xa790, 0xa791, 1}, - {0xa7a0, 0xa7a9, 1}, - {0xa7fa, 0xa82b, 1}, - {0xa830, 0xa839, 1}, - {0xa840, 0xa877, 1}, - {0xa880, 0xa8c4, 1}, - {0xa8ce, 0xa8d9, 1}, - {0xa8e0, 0xa8fb, 1}, - {0xa900, 0xa953, 1}, - {0xa95f, 0xa97c, 1}, - {0xa980, 0xa9cd, 1}, - {0xa9cf, 0xa9d9, 1}, - {0xa9de, 0xa9df, 1}, - {0xaa00, 0xaa36, 1}, - {0xaa40, 0xaa4d, 1}, - {0xaa50, 0xaa59, 1}, - {0xaa5c, 0xaa7b, 1}, - {0xaa80, 0xaac2, 1}, - {0xaadb, 0xaadf, 1}, - {0xab01, 0xab06, 1}, - {0xab09, 0xab0e, 1}, - {0xab11, 0xab16, 1}, - {0xab20, 0xab26, 1}, - {0xab28, 0xab2e, 1}, - {0xabc0, 0xabed, 1}, - {0xabf0, 0xabf9, 1}, - {0xac00, 0xd7a3, 1}, - {0xd7b0, 0xd7c6, 1}, - {0xd7cb, 0xd7fb, 1}, - {0xd800, 0xfa2d, 1}, - {0xfa30, 0xfa6d, 1}, - {0xfa70, 0xfad9, 1}, - {0xfb00, 0xfb06, 1}, - {0xfb13, 0xfb17, 1}, - {0xfb1d, 0xfb36, 1}, - {0xfb38, 0xfb3c, 1}, - {0xfb3e, 0xfb40, 2}, - {0xfb41, 0xfb43, 2}, - {0xfb44, 0xfb46, 2}, - {0xfb47, 0xfbc1, 1}, - {0xfbd3, 0xfd3f, 1}, - {0xfd50, 0xfd8f, 1}, - {0xfd92, 0xfdc7, 1}, - {0xfdf0, 0xfdfd, 1}, - {0xfe00, 0xfe19, 1}, - {0xfe20, 0xfe26, 1}, - {0xfe30, 0xfe52, 1}, - {0xfe54, 0xfe66, 1}, - {0xfe68, 0xfe6b, 1}, - {0xfe70, 0xfe74, 1}, - {0xfe76, 0xfefc, 1}, - {0xfeff, 0xff01, 2}, - {0xff02, 0xffbe, 1}, - {0xffc2, 0xffc7, 1}, - {0xffca, 0xffcf, 1}, - {0xffd2, 0xffd7, 1}, - {0xffda, 0xffdc, 1}, - {0xffe0, 0xffe6, 1}, - {0xffe8, 0xffee, 1}, - {0xfff9, 0xfffd, 1}, - }, - R32: []unicode.Range32{ - {0x00010000, 0x0001000b, 1}, - {0x0001000d, 0x00010026, 1}, - {0x00010028, 0x0001003a, 1}, - {0x0001003c, 0x0001003d, 1}, - {0x0001003f, 0x0001004d, 1}, - {0x00010050, 0x0001005d, 1}, - {0x00010080, 0x000100fa, 1}, - {0x00010100, 0x00010102, 1}, - {0x00010107, 0x00010133, 1}, - {0x00010137, 0x0001018a, 1}, - {0x00010190, 0x0001019b, 1}, - {0x000101d0, 0x000101fd, 1}, - {0x00010280, 0x0001029c, 1}, - {0x000102a0, 0x000102d0, 1}, - {0x00010300, 0x0001031e, 1}, - {0x00010320, 0x00010323, 1}, - {0x00010330, 0x0001034a, 1}, - {0x00010380, 0x0001039d, 1}, - {0x0001039f, 0x000103c3, 1}, - {0x000103c8, 0x000103d5, 1}, - {0x00010400, 0x0001049d, 1}, - {0x000104a0, 0x000104a9, 1}, - {0x00010800, 0x00010805, 1}, - {0x00010808, 0x0001080a, 2}, - {0x0001080b, 0x00010835, 1}, - {0x00010837, 0x00010838, 1}, - {0x0001083c, 0x0001083f, 3}, - {0x00010840, 0x00010855, 1}, - {0x00010857, 0x0001085f, 1}, - {0x00010900, 0x0001091b, 1}, - {0x0001091f, 0x00010939, 1}, - {0x0001093f, 0x00010a00, 193}, - {0x00010a01, 0x00010a03, 1}, - {0x00010a05, 0x00010a06, 1}, - {0x00010a0c, 0x00010a13, 1}, - {0x00010a15, 0x00010a17, 1}, - {0x00010a19, 0x00010a33, 1}, - {0x00010a38, 0x00010a3a, 1}, - {0x00010a3f, 0x00010a47, 1}, - {0x00010a50, 0x00010a58, 1}, - {0x00010a60, 0x00010a7f, 1}, - {0x00010b00, 0x00010b35, 1}, - {0x00010b39, 0x00010b55, 1}, - {0x00010b58, 0x00010b72, 1}, - {0x00010b78, 0x00010b7f, 1}, - {0x00010c00, 0x00010c48, 1}, - {0x00010e60, 0x00010e7e, 1}, - {0x00011000, 0x0001104d, 1}, - {0x00011052, 0x0001106f, 1}, - {0x00011080, 0x000110c1, 1}, - {0x00012000, 0x0001236e, 1}, - {0x00012400, 0x00012462, 1}, - {0x00012470, 0x00012473, 1}, - {0x00013000, 0x0001342e, 1}, - {0x00016800, 0x00016a38, 1}, - {0x0001b000, 0x0001b001, 1}, - {0x0001d000, 0x0001d0f5, 1}, - {0x0001d100, 0x0001d126, 1}, - {0x0001d129, 0x0001d1dd, 1}, - {0x0001d200, 0x0001d245, 1}, - {0x0001d300, 0x0001d356, 1}, - {0x0001d360, 0x0001d371, 1}, - {0x0001d400, 0x0001d454, 1}, - {0x0001d456, 0x0001d49c, 1}, - {0x0001d49e, 0x0001d49f, 1}, - {0x0001d4a2, 0x0001d4a5, 3}, - {0x0001d4a6, 0x0001d4a9, 3}, - {0x0001d4aa, 0x0001d4ac, 1}, - {0x0001d4ae, 0x0001d4b9, 1}, - {0x0001d4bb, 0x0001d4bd, 2}, - {0x0001d4be, 0x0001d4c3, 1}, - {0x0001d4c5, 0x0001d505, 1}, - {0x0001d507, 0x0001d50a, 1}, - {0x0001d50d, 0x0001d514, 1}, - {0x0001d516, 0x0001d51c, 1}, - {0x0001d51e, 0x0001d539, 1}, - {0x0001d53b, 0x0001d53e, 1}, - {0x0001d540, 0x0001d544, 1}, - {0x0001d546, 0x0001d54a, 4}, - {0x0001d54b, 0x0001d550, 1}, - {0x0001d552, 0x0001d6a5, 1}, - {0x0001d6a8, 0x0001d7cb, 1}, - {0x0001d7ce, 0x0001d7ff, 1}, - {0x0001f000, 0x0001f02b, 1}, - {0x0001f030, 0x0001f093, 1}, - {0x0001f0a0, 0x0001f0ae, 1}, - {0x0001f0b1, 0x0001f0be, 1}, - {0x0001f0c1, 0x0001f0cf, 1}, - {0x0001f0d1, 0x0001f0df, 1}, - {0x0001f100, 0x0001f10a, 1}, - {0x0001f110, 0x0001f12e, 1}, - {0x0001f130, 0x0001f169, 1}, - {0x0001f170, 0x0001f19a, 1}, - {0x0001f1e6, 0x0001f202, 1}, - {0x0001f210, 0x0001f23a, 1}, - {0x0001f240, 0x0001f248, 1}, - {0x0001f250, 0x0001f251, 1}, - {0x0001f300, 0x0001f320, 1}, - {0x0001f330, 0x0001f335, 1}, - {0x0001f337, 0x0001f37c, 1}, - {0x0001f380, 0x0001f393, 1}, - {0x0001f3a0, 0x0001f3c4, 1}, - {0x0001f3c6, 0x0001f3ca, 1}, - {0x0001f3e0, 0x0001f3f0, 1}, - {0x0001f400, 0x0001f43e, 1}, - {0x0001f440, 0x0001f442, 2}, - {0x0001f443, 0x0001f4f7, 1}, - {0x0001f4f9, 0x0001f4fc, 1}, - {0x0001f500, 0x0001f53d, 1}, - {0x0001f550, 0x0001f567, 1}, - {0x0001f5fb, 0x0001f5ff, 1}, - {0x0001f601, 0x0001f610, 1}, - {0x0001f612, 0x0001f614, 1}, - {0x0001f616, 0x0001f61c, 2}, - {0x0001f61d, 0x0001f61e, 1}, - {0x0001f620, 0x0001f625, 1}, - {0x0001f628, 0x0001f62b, 1}, - {0x0001f62d, 0x0001f630, 3}, - {0x0001f631, 0x0001f633, 1}, - {0x0001f635, 0x0001f640, 1}, - {0x0001f645, 0x0001f64f, 1}, - {0x0001f680, 0x0001f6c5, 1}, - {0x0001f700, 0x0001f773, 1}, - {0x00020000, 0x0002a6d6, 1}, - {0x0002a700, 0x0002b734, 1}, - {0x0002b740, 0x0002b81d, 1}, - {0x0002f800, 0x0002fa1d, 1}, - {0x000e0001, 0x000e0020, 31}, - {0x000e0021, 0x000e007f, 1}, - {0x000e0100, 0x000e01ef, 1}, - {0x000f0000, 0x000ffffd, 1}, - {0x00100000, 0x0010fffd, 1}, - }, - LatinOffset: 0, -} - -// size 4160 bytes (4 KiB) -var assigned6_1_0 = &unicode.RangeTable{ - R16: []unicode.Range16{ - {0x0000, 0x0377, 1}, - {0x037a, 0x037e, 1}, - {0x0384, 0x038a, 1}, - {0x038c, 0x038e, 2}, - {0x038f, 0x03a1, 1}, - {0x03a3, 0x0527, 1}, - {0x0531, 0x0556, 1}, - {0x0559, 0x055f, 1}, - {0x0561, 0x0587, 1}, - {0x0589, 0x058a, 1}, - {0x058f, 0x0591, 2}, - {0x0592, 0x05c7, 1}, - {0x05d0, 0x05ea, 1}, - {0x05f0, 0x05f4, 1}, - {0x0600, 0x0604, 1}, - {0x0606, 0x061b, 1}, - {0x061e, 0x070d, 1}, - {0x070f, 0x074a, 1}, - {0x074d, 0x07b1, 1}, - {0x07c0, 0x07fa, 1}, - {0x0800, 0x082d, 1}, - {0x0830, 0x083e, 1}, - {0x0840, 0x085b, 1}, - {0x085e, 0x08a0, 66}, - {0x08a2, 0x08ac, 1}, - {0x08e4, 0x08fe, 1}, - {0x0900, 0x0977, 1}, - {0x0979, 0x097f, 1}, - {0x0981, 0x0983, 1}, - {0x0985, 0x098c, 1}, - {0x098f, 0x0990, 1}, - {0x0993, 0x09a8, 1}, - {0x09aa, 0x09b0, 1}, - {0x09b2, 0x09b6, 4}, - {0x09b7, 0x09b9, 1}, - {0x09bc, 0x09c4, 1}, - {0x09c7, 0x09c8, 1}, - {0x09cb, 0x09ce, 1}, - {0x09d7, 0x09dc, 5}, - {0x09dd, 0x09df, 2}, - {0x09e0, 0x09e3, 1}, - {0x09e6, 0x09fb, 1}, - {0x0a01, 0x0a03, 1}, - {0x0a05, 0x0a0a, 1}, - {0x0a0f, 0x0a10, 1}, - {0x0a13, 0x0a28, 1}, - {0x0a2a, 0x0a30, 1}, - {0x0a32, 0x0a33, 1}, - {0x0a35, 0x0a36, 1}, - {0x0a38, 0x0a39, 1}, - {0x0a3c, 0x0a3e, 2}, - {0x0a3f, 0x0a42, 1}, - {0x0a47, 0x0a48, 1}, - {0x0a4b, 0x0a4d, 1}, - {0x0a51, 0x0a59, 8}, - {0x0a5a, 0x0a5c, 1}, - {0x0a5e, 0x0a66, 8}, - {0x0a67, 0x0a75, 1}, - {0x0a81, 0x0a83, 1}, - {0x0a85, 0x0a8d, 1}, - {0x0a8f, 0x0a91, 1}, - {0x0a93, 0x0aa8, 1}, - {0x0aaa, 0x0ab0, 1}, - {0x0ab2, 0x0ab3, 1}, - {0x0ab5, 0x0ab9, 1}, - {0x0abc, 0x0ac5, 1}, - {0x0ac7, 0x0ac9, 1}, - {0x0acb, 0x0acd, 1}, - {0x0ad0, 0x0ae0, 16}, - {0x0ae1, 0x0ae3, 1}, - {0x0ae6, 0x0af1, 1}, - {0x0b01, 0x0b03, 1}, - {0x0b05, 0x0b0c, 1}, - {0x0b0f, 0x0b10, 1}, - {0x0b13, 0x0b28, 1}, - {0x0b2a, 0x0b30, 1}, - {0x0b32, 0x0b33, 1}, - {0x0b35, 0x0b39, 1}, - {0x0b3c, 0x0b44, 1}, - {0x0b47, 0x0b48, 1}, - {0x0b4b, 0x0b4d, 1}, - {0x0b56, 0x0b57, 1}, - {0x0b5c, 0x0b5d, 1}, - {0x0b5f, 0x0b63, 1}, - {0x0b66, 0x0b77, 1}, - {0x0b82, 0x0b83, 1}, - {0x0b85, 0x0b8a, 1}, - {0x0b8e, 0x0b90, 1}, - {0x0b92, 0x0b95, 1}, - {0x0b99, 0x0b9a, 1}, - {0x0b9c, 0x0b9e, 2}, - {0x0b9f, 0x0ba3, 4}, - {0x0ba4, 0x0ba8, 4}, - {0x0ba9, 0x0baa, 1}, - {0x0bae, 0x0bb9, 1}, - {0x0bbe, 0x0bc2, 1}, - {0x0bc6, 0x0bc8, 1}, - {0x0bca, 0x0bcd, 1}, - {0x0bd0, 0x0bd7, 7}, - {0x0be6, 0x0bfa, 1}, - {0x0c01, 0x0c03, 1}, - {0x0c05, 0x0c0c, 1}, - {0x0c0e, 0x0c10, 1}, - {0x0c12, 0x0c28, 1}, - {0x0c2a, 0x0c33, 1}, - {0x0c35, 0x0c39, 1}, - {0x0c3d, 0x0c44, 1}, - {0x0c46, 0x0c48, 1}, - {0x0c4a, 0x0c4d, 1}, - {0x0c55, 0x0c56, 1}, - {0x0c58, 0x0c59, 1}, - {0x0c60, 0x0c63, 1}, - {0x0c66, 0x0c6f, 1}, - {0x0c78, 0x0c7f, 1}, - {0x0c82, 0x0c83, 1}, - {0x0c85, 0x0c8c, 1}, - {0x0c8e, 0x0c90, 1}, - {0x0c92, 0x0ca8, 1}, - {0x0caa, 0x0cb3, 1}, - {0x0cb5, 0x0cb9, 1}, - {0x0cbc, 0x0cc4, 1}, - {0x0cc6, 0x0cc8, 1}, - {0x0cca, 0x0ccd, 1}, - {0x0cd5, 0x0cd6, 1}, - {0x0cde, 0x0ce0, 2}, - {0x0ce1, 0x0ce3, 1}, - {0x0ce6, 0x0cef, 1}, - {0x0cf1, 0x0cf2, 1}, - {0x0d02, 0x0d03, 1}, - {0x0d05, 0x0d0c, 1}, - {0x0d0e, 0x0d10, 1}, - {0x0d12, 0x0d3a, 1}, - {0x0d3d, 0x0d44, 1}, - {0x0d46, 0x0d48, 1}, - {0x0d4a, 0x0d4e, 1}, - {0x0d57, 0x0d60, 9}, - {0x0d61, 0x0d63, 1}, - {0x0d66, 0x0d75, 1}, - {0x0d79, 0x0d7f, 1}, - {0x0d82, 0x0d83, 1}, - {0x0d85, 0x0d96, 1}, - {0x0d9a, 0x0db1, 1}, - {0x0db3, 0x0dbb, 1}, - {0x0dbd, 0x0dc0, 3}, - {0x0dc1, 0x0dc6, 1}, - {0x0dca, 0x0dcf, 5}, - {0x0dd0, 0x0dd4, 1}, - {0x0dd6, 0x0dd8, 2}, - {0x0dd9, 0x0ddf, 1}, - {0x0df2, 0x0df4, 1}, - {0x0e01, 0x0e3a, 1}, - {0x0e3f, 0x0e5b, 1}, - {0x0e81, 0x0e82, 1}, - {0x0e84, 0x0e87, 3}, - {0x0e88, 0x0e8a, 2}, - {0x0e8d, 0x0e94, 7}, - {0x0e95, 0x0e97, 1}, - {0x0e99, 0x0e9f, 1}, - {0x0ea1, 0x0ea3, 1}, - {0x0ea5, 0x0ea7, 2}, - {0x0eaa, 0x0eab, 1}, - {0x0ead, 0x0eb9, 1}, - {0x0ebb, 0x0ebd, 1}, - {0x0ec0, 0x0ec4, 1}, - {0x0ec6, 0x0ec8, 2}, - {0x0ec9, 0x0ecd, 1}, - {0x0ed0, 0x0ed9, 1}, - {0x0edc, 0x0edf, 1}, - {0x0f00, 0x0f47, 1}, - {0x0f49, 0x0f6c, 1}, - {0x0f71, 0x0f97, 1}, - {0x0f99, 0x0fbc, 1}, - {0x0fbe, 0x0fcc, 1}, - {0x0fce, 0x0fda, 1}, - {0x1000, 0x10c5, 1}, - {0x10c7, 0x10cd, 6}, - {0x10d0, 0x1248, 1}, - {0x124a, 0x124d, 1}, - {0x1250, 0x1256, 1}, - {0x1258, 0x125a, 2}, - {0x125b, 0x125d, 1}, - {0x1260, 0x1288, 1}, - {0x128a, 0x128d, 1}, - {0x1290, 0x12b0, 1}, - {0x12b2, 0x12b5, 1}, - {0x12b8, 0x12be, 1}, - {0x12c0, 0x12c2, 2}, - {0x12c3, 0x12c5, 1}, - {0x12c8, 0x12d6, 1}, - {0x12d8, 0x1310, 1}, - {0x1312, 0x1315, 1}, - {0x1318, 0x135a, 1}, - {0x135d, 0x137c, 1}, - {0x1380, 0x1399, 1}, - {0x13a0, 0x13f4, 1}, - {0x1400, 0x169c, 1}, - {0x16a0, 0x16f0, 1}, - {0x1700, 0x170c, 1}, - {0x170e, 0x1714, 1}, - {0x1720, 0x1736, 1}, - {0x1740, 0x1753, 1}, - {0x1760, 0x176c, 1}, - {0x176e, 0x1770, 1}, - {0x1772, 0x1773, 1}, - {0x1780, 0x17dd, 1}, - {0x17e0, 0x17e9, 1}, - {0x17f0, 0x17f9, 1}, - {0x1800, 0x180e, 1}, - {0x1810, 0x1819, 1}, - {0x1820, 0x1877, 1}, - {0x1880, 0x18aa, 1}, - {0x18b0, 0x18f5, 1}, - {0x1900, 0x191c, 1}, - {0x1920, 0x192b, 1}, - {0x1930, 0x193b, 1}, - {0x1940, 0x1944, 4}, - {0x1945, 0x196d, 1}, - {0x1970, 0x1974, 1}, - {0x1980, 0x19ab, 1}, - {0x19b0, 0x19c9, 1}, - {0x19d0, 0x19da, 1}, - {0x19de, 0x1a1b, 1}, - {0x1a1e, 0x1a5e, 1}, - {0x1a60, 0x1a7c, 1}, - {0x1a7f, 0x1a89, 1}, - {0x1a90, 0x1a99, 1}, - {0x1aa0, 0x1aad, 1}, - {0x1b00, 0x1b4b, 1}, - {0x1b50, 0x1b7c, 1}, - {0x1b80, 0x1bf3, 1}, - {0x1bfc, 0x1c37, 1}, - {0x1c3b, 0x1c49, 1}, - {0x1c4d, 0x1c7f, 1}, - {0x1cc0, 0x1cc7, 1}, - {0x1cd0, 0x1cf6, 1}, - {0x1d00, 0x1de6, 1}, - {0x1dfc, 0x1f15, 1}, - {0x1f18, 0x1f1d, 1}, - {0x1f20, 0x1f45, 1}, - {0x1f48, 0x1f4d, 1}, - {0x1f50, 0x1f57, 1}, - {0x1f59, 0x1f5f, 2}, - {0x1f60, 0x1f7d, 1}, - {0x1f80, 0x1fb4, 1}, - {0x1fb6, 0x1fc4, 1}, - {0x1fc6, 0x1fd3, 1}, - {0x1fd6, 0x1fdb, 1}, - {0x1fdd, 0x1fef, 1}, - {0x1ff2, 0x1ff4, 1}, - {0x1ff6, 0x1ffe, 1}, - {0x2000, 0x2064, 1}, - {0x206a, 0x2071, 1}, - {0x2074, 0x208e, 1}, - {0x2090, 0x209c, 1}, - {0x20a0, 0x20b9, 1}, - {0x20d0, 0x20f0, 1}, - {0x2100, 0x2189, 1}, - {0x2190, 0x23f3, 1}, - {0x2400, 0x2426, 1}, - {0x2440, 0x244a, 1}, - {0x2460, 0x26ff, 1}, - {0x2701, 0x2b4c, 1}, - {0x2b50, 0x2b59, 1}, - {0x2c00, 0x2c2e, 1}, - {0x2c30, 0x2c5e, 1}, - {0x2c60, 0x2cf3, 1}, - {0x2cf9, 0x2d25, 1}, - {0x2d27, 0x2d2d, 6}, - {0x2d30, 0x2d67, 1}, - {0x2d6f, 0x2d70, 1}, - {0x2d7f, 0x2d96, 1}, - {0x2da0, 0x2da6, 1}, - {0x2da8, 0x2dae, 1}, - {0x2db0, 0x2db6, 1}, - {0x2db8, 0x2dbe, 1}, - {0x2dc0, 0x2dc6, 1}, - {0x2dc8, 0x2dce, 1}, - {0x2dd0, 0x2dd6, 1}, - {0x2dd8, 0x2dde, 1}, - {0x2de0, 0x2e3b, 1}, - {0x2e80, 0x2e99, 1}, - {0x2e9b, 0x2ef3, 1}, - {0x2f00, 0x2fd5, 1}, - {0x2ff0, 0x2ffb, 1}, - {0x3000, 0x303f, 1}, - {0x3041, 0x3096, 1}, - {0x3099, 0x30ff, 1}, - {0x3105, 0x312d, 1}, - {0x3131, 0x318e, 1}, - {0x3190, 0x31ba, 1}, - {0x31c0, 0x31e3, 1}, - {0x31f0, 0x321e, 1}, - {0x3220, 0x32fe, 1}, - {0x3300, 0x4db5, 1}, - {0x4dc0, 0x9fcc, 1}, - {0xa000, 0xa48c, 1}, - {0xa490, 0xa4c6, 1}, - {0xa4d0, 0xa62b, 1}, - {0xa640, 0xa697, 1}, - {0xa69f, 0xa6f7, 1}, - {0xa700, 0xa78e, 1}, - {0xa790, 0xa793, 1}, - {0xa7a0, 0xa7aa, 1}, - {0xa7f8, 0xa82b, 1}, - {0xa830, 0xa839, 1}, - {0xa840, 0xa877, 1}, - {0xa880, 0xa8c4, 1}, - {0xa8ce, 0xa8d9, 1}, - {0xa8e0, 0xa8fb, 1}, - {0xa900, 0xa953, 1}, - {0xa95f, 0xa97c, 1}, - {0xa980, 0xa9cd, 1}, - {0xa9cf, 0xa9d9, 1}, - {0xa9de, 0xa9df, 1}, - {0xaa00, 0xaa36, 1}, - {0xaa40, 0xaa4d, 1}, - {0xaa50, 0xaa59, 1}, - {0xaa5c, 0xaa7b, 1}, - {0xaa80, 0xaac2, 1}, - {0xaadb, 0xaaf6, 1}, - {0xab01, 0xab06, 1}, - {0xab09, 0xab0e, 1}, - {0xab11, 0xab16, 1}, - {0xab20, 0xab26, 1}, - {0xab28, 0xab2e, 1}, - {0xabc0, 0xabed, 1}, - {0xabf0, 0xabf9, 1}, - {0xac00, 0xd7a3, 1}, - {0xd7b0, 0xd7c6, 1}, - {0xd7cb, 0xd7fb, 1}, - {0xd800, 0xfa6d, 1}, - {0xfa70, 0xfad9, 1}, - {0xfb00, 0xfb06, 1}, - {0xfb13, 0xfb17, 1}, - {0xfb1d, 0xfb36, 1}, - {0xfb38, 0xfb3c, 1}, - {0xfb3e, 0xfb40, 2}, - {0xfb41, 0xfb43, 2}, - {0xfb44, 0xfb46, 2}, - {0xfb47, 0xfbc1, 1}, - {0xfbd3, 0xfd3f, 1}, - {0xfd50, 0xfd8f, 1}, - {0xfd92, 0xfdc7, 1}, - {0xfdf0, 0xfdfd, 1}, - {0xfe00, 0xfe19, 1}, - {0xfe20, 0xfe26, 1}, - {0xfe30, 0xfe52, 1}, - {0xfe54, 0xfe66, 1}, - {0xfe68, 0xfe6b, 1}, - {0xfe70, 0xfe74, 1}, - {0xfe76, 0xfefc, 1}, - {0xfeff, 0xff01, 2}, - {0xff02, 0xffbe, 1}, - {0xffc2, 0xffc7, 1}, - {0xffca, 0xffcf, 1}, - {0xffd2, 0xffd7, 1}, - {0xffda, 0xffdc, 1}, - {0xffe0, 0xffe6, 1}, - {0xffe8, 0xffee, 1}, - {0xfff9, 0xfffd, 1}, - }, - R32: []unicode.Range32{ - {0x00010000, 0x0001000b, 1}, - {0x0001000d, 0x00010026, 1}, - {0x00010028, 0x0001003a, 1}, - {0x0001003c, 0x0001003d, 1}, - {0x0001003f, 0x0001004d, 1}, - {0x00010050, 0x0001005d, 1}, - {0x00010080, 0x000100fa, 1}, - {0x00010100, 0x00010102, 1}, - {0x00010107, 0x00010133, 1}, - {0x00010137, 0x0001018a, 1}, - {0x00010190, 0x0001019b, 1}, - {0x000101d0, 0x000101fd, 1}, - {0x00010280, 0x0001029c, 1}, - {0x000102a0, 0x000102d0, 1}, - {0x00010300, 0x0001031e, 1}, - {0x00010320, 0x00010323, 1}, - {0x00010330, 0x0001034a, 1}, - {0x00010380, 0x0001039d, 1}, - {0x0001039f, 0x000103c3, 1}, - {0x000103c8, 0x000103d5, 1}, - {0x00010400, 0x0001049d, 1}, - {0x000104a0, 0x000104a9, 1}, - {0x00010800, 0x00010805, 1}, - {0x00010808, 0x0001080a, 2}, - {0x0001080b, 0x00010835, 1}, - {0x00010837, 0x00010838, 1}, - {0x0001083c, 0x0001083f, 3}, - {0x00010840, 0x00010855, 1}, - {0x00010857, 0x0001085f, 1}, - {0x00010900, 0x0001091b, 1}, - {0x0001091f, 0x00010939, 1}, - {0x0001093f, 0x00010980, 65}, - {0x00010981, 0x000109b7, 1}, - {0x000109be, 0x000109bf, 1}, - {0x00010a00, 0x00010a03, 1}, - {0x00010a05, 0x00010a06, 1}, - {0x00010a0c, 0x00010a13, 1}, - {0x00010a15, 0x00010a17, 1}, - {0x00010a19, 0x00010a33, 1}, - {0x00010a38, 0x00010a3a, 1}, - {0x00010a3f, 0x00010a47, 1}, - {0x00010a50, 0x00010a58, 1}, - {0x00010a60, 0x00010a7f, 1}, - {0x00010b00, 0x00010b35, 1}, - {0x00010b39, 0x00010b55, 1}, - {0x00010b58, 0x00010b72, 1}, - {0x00010b78, 0x00010b7f, 1}, - {0x00010c00, 0x00010c48, 1}, - {0x00010e60, 0x00010e7e, 1}, - {0x00011000, 0x0001104d, 1}, - {0x00011052, 0x0001106f, 1}, - {0x00011080, 0x000110c1, 1}, - {0x000110d0, 0x000110e8, 1}, - {0x000110f0, 0x000110f9, 1}, - {0x00011100, 0x00011134, 1}, - {0x00011136, 0x00011143, 1}, - {0x00011180, 0x000111c8, 1}, - {0x000111d0, 0x000111d9, 1}, - {0x00011680, 0x000116b7, 1}, - {0x000116c0, 0x000116c9, 1}, - {0x00012000, 0x0001236e, 1}, - {0x00012400, 0x00012462, 1}, - {0x00012470, 0x00012473, 1}, - {0x00013000, 0x0001342e, 1}, - {0x00016800, 0x00016a38, 1}, - {0x00016f00, 0x00016f44, 1}, - {0x00016f50, 0x00016f7e, 1}, - {0x00016f8f, 0x00016f9f, 1}, - {0x0001b000, 0x0001b001, 1}, - {0x0001d000, 0x0001d0f5, 1}, - {0x0001d100, 0x0001d126, 1}, - {0x0001d129, 0x0001d1dd, 1}, - {0x0001d200, 0x0001d245, 1}, - {0x0001d300, 0x0001d356, 1}, - {0x0001d360, 0x0001d371, 1}, - {0x0001d400, 0x0001d454, 1}, - {0x0001d456, 0x0001d49c, 1}, - {0x0001d49e, 0x0001d49f, 1}, - {0x0001d4a2, 0x0001d4a5, 3}, - {0x0001d4a6, 0x0001d4a9, 3}, - {0x0001d4aa, 0x0001d4ac, 1}, - {0x0001d4ae, 0x0001d4b9, 1}, - {0x0001d4bb, 0x0001d4bd, 2}, - {0x0001d4be, 0x0001d4c3, 1}, - {0x0001d4c5, 0x0001d505, 1}, - {0x0001d507, 0x0001d50a, 1}, - {0x0001d50d, 0x0001d514, 1}, - {0x0001d516, 0x0001d51c, 1}, - {0x0001d51e, 0x0001d539, 1}, - {0x0001d53b, 0x0001d53e, 1}, - {0x0001d540, 0x0001d544, 1}, - {0x0001d546, 0x0001d54a, 4}, - {0x0001d54b, 0x0001d550, 1}, - {0x0001d552, 0x0001d6a5, 1}, - {0x0001d6a8, 0x0001d7cb, 1}, - {0x0001d7ce, 0x0001d7ff, 1}, - {0x0001ee00, 0x0001ee03, 1}, - {0x0001ee05, 0x0001ee1f, 1}, - {0x0001ee21, 0x0001ee22, 1}, - {0x0001ee24, 0x0001ee27, 3}, - {0x0001ee29, 0x0001ee32, 1}, - {0x0001ee34, 0x0001ee37, 1}, - {0x0001ee39, 0x0001ee3b, 2}, - {0x0001ee42, 0x0001ee47, 5}, - {0x0001ee49, 0x0001ee4d, 2}, - {0x0001ee4e, 0x0001ee4f, 1}, - {0x0001ee51, 0x0001ee52, 1}, - {0x0001ee54, 0x0001ee57, 3}, - {0x0001ee59, 0x0001ee61, 2}, - {0x0001ee62, 0x0001ee64, 2}, - {0x0001ee67, 0x0001ee6a, 1}, - {0x0001ee6c, 0x0001ee72, 1}, - {0x0001ee74, 0x0001ee77, 1}, - {0x0001ee79, 0x0001ee7c, 1}, - {0x0001ee7e, 0x0001ee80, 2}, - {0x0001ee81, 0x0001ee89, 1}, - {0x0001ee8b, 0x0001ee9b, 1}, - {0x0001eea1, 0x0001eea3, 1}, - {0x0001eea5, 0x0001eea9, 1}, - {0x0001eeab, 0x0001eebb, 1}, - {0x0001eef0, 0x0001eef1, 1}, - {0x0001f000, 0x0001f02b, 1}, - {0x0001f030, 0x0001f093, 1}, - {0x0001f0a0, 0x0001f0ae, 1}, - {0x0001f0b1, 0x0001f0be, 1}, - {0x0001f0c1, 0x0001f0cf, 1}, - {0x0001f0d1, 0x0001f0df, 1}, - {0x0001f100, 0x0001f10a, 1}, - {0x0001f110, 0x0001f12e, 1}, - {0x0001f130, 0x0001f16b, 1}, - {0x0001f170, 0x0001f19a, 1}, - {0x0001f1e6, 0x0001f202, 1}, - {0x0001f210, 0x0001f23a, 1}, - {0x0001f240, 0x0001f248, 1}, - {0x0001f250, 0x0001f251, 1}, - {0x0001f300, 0x0001f320, 1}, - {0x0001f330, 0x0001f335, 1}, - {0x0001f337, 0x0001f37c, 1}, - {0x0001f380, 0x0001f393, 1}, - {0x0001f3a0, 0x0001f3c4, 1}, - {0x0001f3c6, 0x0001f3ca, 1}, - {0x0001f3e0, 0x0001f3f0, 1}, - {0x0001f400, 0x0001f43e, 1}, - {0x0001f440, 0x0001f442, 2}, - {0x0001f443, 0x0001f4f7, 1}, - {0x0001f4f9, 0x0001f4fc, 1}, - {0x0001f500, 0x0001f53d, 1}, - {0x0001f540, 0x0001f543, 1}, - {0x0001f550, 0x0001f567, 1}, - {0x0001f5fb, 0x0001f640, 1}, - {0x0001f645, 0x0001f64f, 1}, - {0x0001f680, 0x0001f6c5, 1}, - {0x0001f700, 0x0001f773, 1}, - {0x00020000, 0x0002a6d6, 1}, - {0x0002a700, 0x0002b734, 1}, - {0x0002b740, 0x0002b81d, 1}, - {0x0002f800, 0x0002fa1d, 1}, - {0x000e0001, 0x000e0020, 31}, - {0x000e0021, 0x000e007f, 1}, - {0x000e0100, 0x000e01ef, 1}, - {0x000f0000, 0x000ffffd, 1}, - {0x00100000, 0x0010fffd, 1}, - }, - LatinOffset: 0, -} - -// size 4160 bytes (4 KiB) -var assigned6_2_0 = &unicode.RangeTable{ - R16: []unicode.Range16{ - {0x0000, 0x0377, 1}, - {0x037a, 0x037e, 1}, - {0x0384, 0x038a, 1}, - {0x038c, 0x038e, 2}, - {0x038f, 0x03a1, 1}, - {0x03a3, 0x0527, 1}, - {0x0531, 0x0556, 1}, - {0x0559, 0x055f, 1}, - {0x0561, 0x0587, 1}, - {0x0589, 0x058a, 1}, - {0x058f, 0x0591, 2}, - {0x0592, 0x05c7, 1}, - {0x05d0, 0x05ea, 1}, - {0x05f0, 0x05f4, 1}, - {0x0600, 0x0604, 1}, - {0x0606, 0x061b, 1}, - {0x061e, 0x070d, 1}, - {0x070f, 0x074a, 1}, - {0x074d, 0x07b1, 1}, - {0x07c0, 0x07fa, 1}, - {0x0800, 0x082d, 1}, - {0x0830, 0x083e, 1}, - {0x0840, 0x085b, 1}, - {0x085e, 0x08a0, 66}, - {0x08a2, 0x08ac, 1}, - {0x08e4, 0x08fe, 1}, - {0x0900, 0x0977, 1}, - {0x0979, 0x097f, 1}, - {0x0981, 0x0983, 1}, - {0x0985, 0x098c, 1}, - {0x098f, 0x0990, 1}, - {0x0993, 0x09a8, 1}, - {0x09aa, 0x09b0, 1}, - {0x09b2, 0x09b6, 4}, - {0x09b7, 0x09b9, 1}, - {0x09bc, 0x09c4, 1}, - {0x09c7, 0x09c8, 1}, - {0x09cb, 0x09ce, 1}, - {0x09d7, 0x09dc, 5}, - {0x09dd, 0x09df, 2}, - {0x09e0, 0x09e3, 1}, - {0x09e6, 0x09fb, 1}, - {0x0a01, 0x0a03, 1}, - {0x0a05, 0x0a0a, 1}, - {0x0a0f, 0x0a10, 1}, - {0x0a13, 0x0a28, 1}, - {0x0a2a, 0x0a30, 1}, - {0x0a32, 0x0a33, 1}, - {0x0a35, 0x0a36, 1}, - {0x0a38, 0x0a39, 1}, - {0x0a3c, 0x0a3e, 2}, - {0x0a3f, 0x0a42, 1}, - {0x0a47, 0x0a48, 1}, - {0x0a4b, 0x0a4d, 1}, - {0x0a51, 0x0a59, 8}, - {0x0a5a, 0x0a5c, 1}, - {0x0a5e, 0x0a66, 8}, - {0x0a67, 0x0a75, 1}, - {0x0a81, 0x0a83, 1}, - {0x0a85, 0x0a8d, 1}, - {0x0a8f, 0x0a91, 1}, - {0x0a93, 0x0aa8, 1}, - {0x0aaa, 0x0ab0, 1}, - {0x0ab2, 0x0ab3, 1}, - {0x0ab5, 0x0ab9, 1}, - {0x0abc, 0x0ac5, 1}, - {0x0ac7, 0x0ac9, 1}, - {0x0acb, 0x0acd, 1}, - {0x0ad0, 0x0ae0, 16}, - {0x0ae1, 0x0ae3, 1}, - {0x0ae6, 0x0af1, 1}, - {0x0b01, 0x0b03, 1}, - {0x0b05, 0x0b0c, 1}, - {0x0b0f, 0x0b10, 1}, - {0x0b13, 0x0b28, 1}, - {0x0b2a, 0x0b30, 1}, - {0x0b32, 0x0b33, 1}, - {0x0b35, 0x0b39, 1}, - {0x0b3c, 0x0b44, 1}, - {0x0b47, 0x0b48, 1}, - {0x0b4b, 0x0b4d, 1}, - {0x0b56, 0x0b57, 1}, - {0x0b5c, 0x0b5d, 1}, - {0x0b5f, 0x0b63, 1}, - {0x0b66, 0x0b77, 1}, - {0x0b82, 0x0b83, 1}, - {0x0b85, 0x0b8a, 1}, - {0x0b8e, 0x0b90, 1}, - {0x0b92, 0x0b95, 1}, - {0x0b99, 0x0b9a, 1}, - {0x0b9c, 0x0b9e, 2}, - {0x0b9f, 0x0ba3, 4}, - {0x0ba4, 0x0ba8, 4}, - {0x0ba9, 0x0baa, 1}, - {0x0bae, 0x0bb9, 1}, - {0x0bbe, 0x0bc2, 1}, - {0x0bc6, 0x0bc8, 1}, - {0x0bca, 0x0bcd, 1}, - {0x0bd0, 0x0bd7, 7}, - {0x0be6, 0x0bfa, 1}, - {0x0c01, 0x0c03, 1}, - {0x0c05, 0x0c0c, 1}, - {0x0c0e, 0x0c10, 1}, - {0x0c12, 0x0c28, 1}, - {0x0c2a, 0x0c33, 1}, - {0x0c35, 0x0c39, 1}, - {0x0c3d, 0x0c44, 1}, - {0x0c46, 0x0c48, 1}, - {0x0c4a, 0x0c4d, 1}, - {0x0c55, 0x0c56, 1}, - {0x0c58, 0x0c59, 1}, - {0x0c60, 0x0c63, 1}, - {0x0c66, 0x0c6f, 1}, - {0x0c78, 0x0c7f, 1}, - {0x0c82, 0x0c83, 1}, - {0x0c85, 0x0c8c, 1}, - {0x0c8e, 0x0c90, 1}, - {0x0c92, 0x0ca8, 1}, - {0x0caa, 0x0cb3, 1}, - {0x0cb5, 0x0cb9, 1}, - {0x0cbc, 0x0cc4, 1}, - {0x0cc6, 0x0cc8, 1}, - {0x0cca, 0x0ccd, 1}, - {0x0cd5, 0x0cd6, 1}, - {0x0cde, 0x0ce0, 2}, - {0x0ce1, 0x0ce3, 1}, - {0x0ce6, 0x0cef, 1}, - {0x0cf1, 0x0cf2, 1}, - {0x0d02, 0x0d03, 1}, - {0x0d05, 0x0d0c, 1}, - {0x0d0e, 0x0d10, 1}, - {0x0d12, 0x0d3a, 1}, - {0x0d3d, 0x0d44, 1}, - {0x0d46, 0x0d48, 1}, - {0x0d4a, 0x0d4e, 1}, - {0x0d57, 0x0d60, 9}, - {0x0d61, 0x0d63, 1}, - {0x0d66, 0x0d75, 1}, - {0x0d79, 0x0d7f, 1}, - {0x0d82, 0x0d83, 1}, - {0x0d85, 0x0d96, 1}, - {0x0d9a, 0x0db1, 1}, - {0x0db3, 0x0dbb, 1}, - {0x0dbd, 0x0dc0, 3}, - {0x0dc1, 0x0dc6, 1}, - {0x0dca, 0x0dcf, 5}, - {0x0dd0, 0x0dd4, 1}, - {0x0dd6, 0x0dd8, 2}, - {0x0dd9, 0x0ddf, 1}, - {0x0df2, 0x0df4, 1}, - {0x0e01, 0x0e3a, 1}, - {0x0e3f, 0x0e5b, 1}, - {0x0e81, 0x0e82, 1}, - {0x0e84, 0x0e87, 3}, - {0x0e88, 0x0e8a, 2}, - {0x0e8d, 0x0e94, 7}, - {0x0e95, 0x0e97, 1}, - {0x0e99, 0x0e9f, 1}, - {0x0ea1, 0x0ea3, 1}, - {0x0ea5, 0x0ea7, 2}, - {0x0eaa, 0x0eab, 1}, - {0x0ead, 0x0eb9, 1}, - {0x0ebb, 0x0ebd, 1}, - {0x0ec0, 0x0ec4, 1}, - {0x0ec6, 0x0ec8, 2}, - {0x0ec9, 0x0ecd, 1}, - {0x0ed0, 0x0ed9, 1}, - {0x0edc, 0x0edf, 1}, - {0x0f00, 0x0f47, 1}, - {0x0f49, 0x0f6c, 1}, - {0x0f71, 0x0f97, 1}, - {0x0f99, 0x0fbc, 1}, - {0x0fbe, 0x0fcc, 1}, - {0x0fce, 0x0fda, 1}, - {0x1000, 0x10c5, 1}, - {0x10c7, 0x10cd, 6}, - {0x10d0, 0x1248, 1}, - {0x124a, 0x124d, 1}, - {0x1250, 0x1256, 1}, - {0x1258, 0x125a, 2}, - {0x125b, 0x125d, 1}, - {0x1260, 0x1288, 1}, - {0x128a, 0x128d, 1}, - {0x1290, 0x12b0, 1}, - {0x12b2, 0x12b5, 1}, - {0x12b8, 0x12be, 1}, - {0x12c0, 0x12c2, 2}, - {0x12c3, 0x12c5, 1}, - {0x12c8, 0x12d6, 1}, - {0x12d8, 0x1310, 1}, - {0x1312, 0x1315, 1}, - {0x1318, 0x135a, 1}, - {0x135d, 0x137c, 1}, - {0x1380, 0x1399, 1}, - {0x13a0, 0x13f4, 1}, - {0x1400, 0x169c, 1}, - {0x16a0, 0x16f0, 1}, - {0x1700, 0x170c, 1}, - {0x170e, 0x1714, 1}, - {0x1720, 0x1736, 1}, - {0x1740, 0x1753, 1}, - {0x1760, 0x176c, 1}, - {0x176e, 0x1770, 1}, - {0x1772, 0x1773, 1}, - {0x1780, 0x17dd, 1}, - {0x17e0, 0x17e9, 1}, - {0x17f0, 0x17f9, 1}, - {0x1800, 0x180e, 1}, - {0x1810, 0x1819, 1}, - {0x1820, 0x1877, 1}, - {0x1880, 0x18aa, 1}, - {0x18b0, 0x18f5, 1}, - {0x1900, 0x191c, 1}, - {0x1920, 0x192b, 1}, - {0x1930, 0x193b, 1}, - {0x1940, 0x1944, 4}, - {0x1945, 0x196d, 1}, - {0x1970, 0x1974, 1}, - {0x1980, 0x19ab, 1}, - {0x19b0, 0x19c9, 1}, - {0x19d0, 0x19da, 1}, - {0x19de, 0x1a1b, 1}, - {0x1a1e, 0x1a5e, 1}, - {0x1a60, 0x1a7c, 1}, - {0x1a7f, 0x1a89, 1}, - {0x1a90, 0x1a99, 1}, - {0x1aa0, 0x1aad, 1}, - {0x1b00, 0x1b4b, 1}, - {0x1b50, 0x1b7c, 1}, - {0x1b80, 0x1bf3, 1}, - {0x1bfc, 0x1c37, 1}, - {0x1c3b, 0x1c49, 1}, - {0x1c4d, 0x1c7f, 1}, - {0x1cc0, 0x1cc7, 1}, - {0x1cd0, 0x1cf6, 1}, - {0x1d00, 0x1de6, 1}, - {0x1dfc, 0x1f15, 1}, - {0x1f18, 0x1f1d, 1}, - {0x1f20, 0x1f45, 1}, - {0x1f48, 0x1f4d, 1}, - {0x1f50, 0x1f57, 1}, - {0x1f59, 0x1f5f, 2}, - {0x1f60, 0x1f7d, 1}, - {0x1f80, 0x1fb4, 1}, - {0x1fb6, 0x1fc4, 1}, - {0x1fc6, 0x1fd3, 1}, - {0x1fd6, 0x1fdb, 1}, - {0x1fdd, 0x1fef, 1}, - {0x1ff2, 0x1ff4, 1}, - {0x1ff6, 0x1ffe, 1}, - {0x2000, 0x2064, 1}, - {0x206a, 0x2071, 1}, - {0x2074, 0x208e, 1}, - {0x2090, 0x209c, 1}, - {0x20a0, 0x20ba, 1}, - {0x20d0, 0x20f0, 1}, - {0x2100, 0x2189, 1}, - {0x2190, 0x23f3, 1}, - {0x2400, 0x2426, 1}, - {0x2440, 0x244a, 1}, - {0x2460, 0x26ff, 1}, - {0x2701, 0x2b4c, 1}, - {0x2b50, 0x2b59, 1}, - {0x2c00, 0x2c2e, 1}, - {0x2c30, 0x2c5e, 1}, - {0x2c60, 0x2cf3, 1}, - {0x2cf9, 0x2d25, 1}, - {0x2d27, 0x2d2d, 6}, - {0x2d30, 0x2d67, 1}, - {0x2d6f, 0x2d70, 1}, - {0x2d7f, 0x2d96, 1}, - {0x2da0, 0x2da6, 1}, - {0x2da8, 0x2dae, 1}, - {0x2db0, 0x2db6, 1}, - {0x2db8, 0x2dbe, 1}, - {0x2dc0, 0x2dc6, 1}, - {0x2dc8, 0x2dce, 1}, - {0x2dd0, 0x2dd6, 1}, - {0x2dd8, 0x2dde, 1}, - {0x2de0, 0x2e3b, 1}, - {0x2e80, 0x2e99, 1}, - {0x2e9b, 0x2ef3, 1}, - {0x2f00, 0x2fd5, 1}, - {0x2ff0, 0x2ffb, 1}, - {0x3000, 0x303f, 1}, - {0x3041, 0x3096, 1}, - {0x3099, 0x30ff, 1}, - {0x3105, 0x312d, 1}, - {0x3131, 0x318e, 1}, - {0x3190, 0x31ba, 1}, - {0x31c0, 0x31e3, 1}, - {0x31f0, 0x321e, 1}, - {0x3220, 0x32fe, 1}, - {0x3300, 0x4db5, 1}, - {0x4dc0, 0x9fcc, 1}, - {0xa000, 0xa48c, 1}, - {0xa490, 0xa4c6, 1}, - {0xa4d0, 0xa62b, 1}, - {0xa640, 0xa697, 1}, - {0xa69f, 0xa6f7, 1}, - {0xa700, 0xa78e, 1}, - {0xa790, 0xa793, 1}, - {0xa7a0, 0xa7aa, 1}, - {0xa7f8, 0xa82b, 1}, - {0xa830, 0xa839, 1}, - {0xa840, 0xa877, 1}, - {0xa880, 0xa8c4, 1}, - {0xa8ce, 0xa8d9, 1}, - {0xa8e0, 0xa8fb, 1}, - {0xa900, 0xa953, 1}, - {0xa95f, 0xa97c, 1}, - {0xa980, 0xa9cd, 1}, - {0xa9cf, 0xa9d9, 1}, - {0xa9de, 0xa9df, 1}, - {0xaa00, 0xaa36, 1}, - {0xaa40, 0xaa4d, 1}, - {0xaa50, 0xaa59, 1}, - {0xaa5c, 0xaa7b, 1}, - {0xaa80, 0xaac2, 1}, - {0xaadb, 0xaaf6, 1}, - {0xab01, 0xab06, 1}, - {0xab09, 0xab0e, 1}, - {0xab11, 0xab16, 1}, - {0xab20, 0xab26, 1}, - {0xab28, 0xab2e, 1}, - {0xabc0, 0xabed, 1}, - {0xabf0, 0xabf9, 1}, - {0xac00, 0xd7a3, 1}, - {0xd7b0, 0xd7c6, 1}, - {0xd7cb, 0xd7fb, 1}, - {0xd800, 0xfa6d, 1}, - {0xfa70, 0xfad9, 1}, - {0xfb00, 0xfb06, 1}, - {0xfb13, 0xfb17, 1}, - {0xfb1d, 0xfb36, 1}, - {0xfb38, 0xfb3c, 1}, - {0xfb3e, 0xfb40, 2}, - {0xfb41, 0xfb43, 2}, - {0xfb44, 0xfb46, 2}, - {0xfb47, 0xfbc1, 1}, - {0xfbd3, 0xfd3f, 1}, - {0xfd50, 0xfd8f, 1}, - {0xfd92, 0xfdc7, 1}, - {0xfdf0, 0xfdfd, 1}, - {0xfe00, 0xfe19, 1}, - {0xfe20, 0xfe26, 1}, - {0xfe30, 0xfe52, 1}, - {0xfe54, 0xfe66, 1}, - {0xfe68, 0xfe6b, 1}, - {0xfe70, 0xfe74, 1}, - {0xfe76, 0xfefc, 1}, - {0xfeff, 0xff01, 2}, - {0xff02, 0xffbe, 1}, - {0xffc2, 0xffc7, 1}, - {0xffca, 0xffcf, 1}, - {0xffd2, 0xffd7, 1}, - {0xffda, 0xffdc, 1}, - {0xffe0, 0xffe6, 1}, - {0xffe8, 0xffee, 1}, - {0xfff9, 0xfffd, 1}, - }, - R32: []unicode.Range32{ - {0x00010000, 0x0001000b, 1}, - {0x0001000d, 0x00010026, 1}, - {0x00010028, 0x0001003a, 1}, - {0x0001003c, 0x0001003d, 1}, - {0x0001003f, 0x0001004d, 1}, - {0x00010050, 0x0001005d, 1}, - {0x00010080, 0x000100fa, 1}, - {0x00010100, 0x00010102, 1}, - {0x00010107, 0x00010133, 1}, - {0x00010137, 0x0001018a, 1}, - {0x00010190, 0x0001019b, 1}, - {0x000101d0, 0x000101fd, 1}, - {0x00010280, 0x0001029c, 1}, - {0x000102a0, 0x000102d0, 1}, - {0x00010300, 0x0001031e, 1}, - {0x00010320, 0x00010323, 1}, - {0x00010330, 0x0001034a, 1}, - {0x00010380, 0x0001039d, 1}, - {0x0001039f, 0x000103c3, 1}, - {0x000103c8, 0x000103d5, 1}, - {0x00010400, 0x0001049d, 1}, - {0x000104a0, 0x000104a9, 1}, - {0x00010800, 0x00010805, 1}, - {0x00010808, 0x0001080a, 2}, - {0x0001080b, 0x00010835, 1}, - {0x00010837, 0x00010838, 1}, - {0x0001083c, 0x0001083f, 3}, - {0x00010840, 0x00010855, 1}, - {0x00010857, 0x0001085f, 1}, - {0x00010900, 0x0001091b, 1}, - {0x0001091f, 0x00010939, 1}, - {0x0001093f, 0x00010980, 65}, - {0x00010981, 0x000109b7, 1}, - {0x000109be, 0x000109bf, 1}, - {0x00010a00, 0x00010a03, 1}, - {0x00010a05, 0x00010a06, 1}, - {0x00010a0c, 0x00010a13, 1}, - {0x00010a15, 0x00010a17, 1}, - {0x00010a19, 0x00010a33, 1}, - {0x00010a38, 0x00010a3a, 1}, - {0x00010a3f, 0x00010a47, 1}, - {0x00010a50, 0x00010a58, 1}, - {0x00010a60, 0x00010a7f, 1}, - {0x00010b00, 0x00010b35, 1}, - {0x00010b39, 0x00010b55, 1}, - {0x00010b58, 0x00010b72, 1}, - {0x00010b78, 0x00010b7f, 1}, - {0x00010c00, 0x00010c48, 1}, - {0x00010e60, 0x00010e7e, 1}, - {0x00011000, 0x0001104d, 1}, - {0x00011052, 0x0001106f, 1}, - {0x00011080, 0x000110c1, 1}, - {0x000110d0, 0x000110e8, 1}, - {0x000110f0, 0x000110f9, 1}, - {0x00011100, 0x00011134, 1}, - {0x00011136, 0x00011143, 1}, - {0x00011180, 0x000111c8, 1}, - {0x000111d0, 0x000111d9, 1}, - {0x00011680, 0x000116b7, 1}, - {0x000116c0, 0x000116c9, 1}, - {0x00012000, 0x0001236e, 1}, - {0x00012400, 0x00012462, 1}, - {0x00012470, 0x00012473, 1}, - {0x00013000, 0x0001342e, 1}, - {0x00016800, 0x00016a38, 1}, - {0x00016f00, 0x00016f44, 1}, - {0x00016f50, 0x00016f7e, 1}, - {0x00016f8f, 0x00016f9f, 1}, - {0x0001b000, 0x0001b001, 1}, - {0x0001d000, 0x0001d0f5, 1}, - {0x0001d100, 0x0001d126, 1}, - {0x0001d129, 0x0001d1dd, 1}, - {0x0001d200, 0x0001d245, 1}, - {0x0001d300, 0x0001d356, 1}, - {0x0001d360, 0x0001d371, 1}, - {0x0001d400, 0x0001d454, 1}, - {0x0001d456, 0x0001d49c, 1}, - {0x0001d49e, 0x0001d49f, 1}, - {0x0001d4a2, 0x0001d4a5, 3}, - {0x0001d4a6, 0x0001d4a9, 3}, - {0x0001d4aa, 0x0001d4ac, 1}, - {0x0001d4ae, 0x0001d4b9, 1}, - {0x0001d4bb, 0x0001d4bd, 2}, - {0x0001d4be, 0x0001d4c3, 1}, - {0x0001d4c5, 0x0001d505, 1}, - {0x0001d507, 0x0001d50a, 1}, - {0x0001d50d, 0x0001d514, 1}, - {0x0001d516, 0x0001d51c, 1}, - {0x0001d51e, 0x0001d539, 1}, - {0x0001d53b, 0x0001d53e, 1}, - {0x0001d540, 0x0001d544, 1}, - {0x0001d546, 0x0001d54a, 4}, - {0x0001d54b, 0x0001d550, 1}, - {0x0001d552, 0x0001d6a5, 1}, - {0x0001d6a8, 0x0001d7cb, 1}, - {0x0001d7ce, 0x0001d7ff, 1}, - {0x0001ee00, 0x0001ee03, 1}, - {0x0001ee05, 0x0001ee1f, 1}, - {0x0001ee21, 0x0001ee22, 1}, - {0x0001ee24, 0x0001ee27, 3}, - {0x0001ee29, 0x0001ee32, 1}, - {0x0001ee34, 0x0001ee37, 1}, - {0x0001ee39, 0x0001ee3b, 2}, - {0x0001ee42, 0x0001ee47, 5}, - {0x0001ee49, 0x0001ee4d, 2}, - {0x0001ee4e, 0x0001ee4f, 1}, - {0x0001ee51, 0x0001ee52, 1}, - {0x0001ee54, 0x0001ee57, 3}, - {0x0001ee59, 0x0001ee61, 2}, - {0x0001ee62, 0x0001ee64, 2}, - {0x0001ee67, 0x0001ee6a, 1}, - {0x0001ee6c, 0x0001ee72, 1}, - {0x0001ee74, 0x0001ee77, 1}, - {0x0001ee79, 0x0001ee7c, 1}, - {0x0001ee7e, 0x0001ee80, 2}, - {0x0001ee81, 0x0001ee89, 1}, - {0x0001ee8b, 0x0001ee9b, 1}, - {0x0001eea1, 0x0001eea3, 1}, - {0x0001eea5, 0x0001eea9, 1}, - {0x0001eeab, 0x0001eebb, 1}, - {0x0001eef0, 0x0001eef1, 1}, - {0x0001f000, 0x0001f02b, 1}, - {0x0001f030, 0x0001f093, 1}, - {0x0001f0a0, 0x0001f0ae, 1}, - {0x0001f0b1, 0x0001f0be, 1}, - {0x0001f0c1, 0x0001f0cf, 1}, - {0x0001f0d1, 0x0001f0df, 1}, - {0x0001f100, 0x0001f10a, 1}, - {0x0001f110, 0x0001f12e, 1}, - {0x0001f130, 0x0001f16b, 1}, - {0x0001f170, 0x0001f19a, 1}, - {0x0001f1e6, 0x0001f202, 1}, - {0x0001f210, 0x0001f23a, 1}, - {0x0001f240, 0x0001f248, 1}, - {0x0001f250, 0x0001f251, 1}, - {0x0001f300, 0x0001f320, 1}, - {0x0001f330, 0x0001f335, 1}, - {0x0001f337, 0x0001f37c, 1}, - {0x0001f380, 0x0001f393, 1}, - {0x0001f3a0, 0x0001f3c4, 1}, - {0x0001f3c6, 0x0001f3ca, 1}, - {0x0001f3e0, 0x0001f3f0, 1}, - {0x0001f400, 0x0001f43e, 1}, - {0x0001f440, 0x0001f442, 2}, - {0x0001f443, 0x0001f4f7, 1}, - {0x0001f4f9, 0x0001f4fc, 1}, - {0x0001f500, 0x0001f53d, 1}, - {0x0001f540, 0x0001f543, 1}, - {0x0001f550, 0x0001f567, 1}, - {0x0001f5fb, 0x0001f640, 1}, - {0x0001f645, 0x0001f64f, 1}, - {0x0001f680, 0x0001f6c5, 1}, - {0x0001f700, 0x0001f773, 1}, - {0x00020000, 0x0002a6d6, 1}, - {0x0002a700, 0x0002b734, 1}, - {0x0002b740, 0x0002b81d, 1}, - {0x0002f800, 0x0002fa1d, 1}, - {0x000e0001, 0x000e0020, 31}, - {0x000e0021, 0x000e007f, 1}, - {0x000e0100, 0x000e01ef, 1}, - {0x000f0000, 0x000ffffd, 1}, - {0x00100000, 0x0010fffd, 1}, - }, - LatinOffset: 0, -} - -// size 4160 bytes (4 KiB) -var assigned6_3_0 = &unicode.RangeTable{ - R16: []unicode.Range16{ - {0x0000, 0x0377, 1}, - {0x037a, 0x037e, 1}, - {0x0384, 0x038a, 1}, - {0x038c, 0x038e, 2}, - {0x038f, 0x03a1, 1}, - {0x03a3, 0x0527, 1}, - {0x0531, 0x0556, 1}, - {0x0559, 0x055f, 1}, - {0x0561, 0x0587, 1}, - {0x0589, 0x058a, 1}, - {0x058f, 0x0591, 2}, - {0x0592, 0x05c7, 1}, - {0x05d0, 0x05ea, 1}, - {0x05f0, 0x05f4, 1}, - {0x0600, 0x0604, 1}, - {0x0606, 0x061c, 1}, - {0x061e, 0x070d, 1}, - {0x070f, 0x074a, 1}, - {0x074d, 0x07b1, 1}, - {0x07c0, 0x07fa, 1}, - {0x0800, 0x082d, 1}, - {0x0830, 0x083e, 1}, - {0x0840, 0x085b, 1}, - {0x085e, 0x08a0, 66}, - {0x08a2, 0x08ac, 1}, - {0x08e4, 0x08fe, 1}, - {0x0900, 0x0977, 1}, - {0x0979, 0x097f, 1}, - {0x0981, 0x0983, 1}, - {0x0985, 0x098c, 1}, - {0x098f, 0x0990, 1}, - {0x0993, 0x09a8, 1}, - {0x09aa, 0x09b0, 1}, - {0x09b2, 0x09b6, 4}, - {0x09b7, 0x09b9, 1}, - {0x09bc, 0x09c4, 1}, - {0x09c7, 0x09c8, 1}, - {0x09cb, 0x09ce, 1}, - {0x09d7, 0x09dc, 5}, - {0x09dd, 0x09df, 2}, - {0x09e0, 0x09e3, 1}, - {0x09e6, 0x09fb, 1}, - {0x0a01, 0x0a03, 1}, - {0x0a05, 0x0a0a, 1}, - {0x0a0f, 0x0a10, 1}, - {0x0a13, 0x0a28, 1}, - {0x0a2a, 0x0a30, 1}, - {0x0a32, 0x0a33, 1}, - {0x0a35, 0x0a36, 1}, - {0x0a38, 0x0a39, 1}, - {0x0a3c, 0x0a3e, 2}, - {0x0a3f, 0x0a42, 1}, - {0x0a47, 0x0a48, 1}, - {0x0a4b, 0x0a4d, 1}, - {0x0a51, 0x0a59, 8}, - {0x0a5a, 0x0a5c, 1}, - {0x0a5e, 0x0a66, 8}, - {0x0a67, 0x0a75, 1}, - {0x0a81, 0x0a83, 1}, - {0x0a85, 0x0a8d, 1}, - {0x0a8f, 0x0a91, 1}, - {0x0a93, 0x0aa8, 1}, - {0x0aaa, 0x0ab0, 1}, - {0x0ab2, 0x0ab3, 1}, - {0x0ab5, 0x0ab9, 1}, - {0x0abc, 0x0ac5, 1}, - {0x0ac7, 0x0ac9, 1}, - {0x0acb, 0x0acd, 1}, - {0x0ad0, 0x0ae0, 16}, - {0x0ae1, 0x0ae3, 1}, - {0x0ae6, 0x0af1, 1}, - {0x0b01, 0x0b03, 1}, - {0x0b05, 0x0b0c, 1}, - {0x0b0f, 0x0b10, 1}, - {0x0b13, 0x0b28, 1}, - {0x0b2a, 0x0b30, 1}, - {0x0b32, 0x0b33, 1}, - {0x0b35, 0x0b39, 1}, - {0x0b3c, 0x0b44, 1}, - {0x0b47, 0x0b48, 1}, - {0x0b4b, 0x0b4d, 1}, - {0x0b56, 0x0b57, 1}, - {0x0b5c, 0x0b5d, 1}, - {0x0b5f, 0x0b63, 1}, - {0x0b66, 0x0b77, 1}, - {0x0b82, 0x0b83, 1}, - {0x0b85, 0x0b8a, 1}, - {0x0b8e, 0x0b90, 1}, - {0x0b92, 0x0b95, 1}, - {0x0b99, 0x0b9a, 1}, - {0x0b9c, 0x0b9e, 2}, - {0x0b9f, 0x0ba3, 4}, - {0x0ba4, 0x0ba8, 4}, - {0x0ba9, 0x0baa, 1}, - {0x0bae, 0x0bb9, 1}, - {0x0bbe, 0x0bc2, 1}, - {0x0bc6, 0x0bc8, 1}, - {0x0bca, 0x0bcd, 1}, - {0x0bd0, 0x0bd7, 7}, - {0x0be6, 0x0bfa, 1}, - {0x0c01, 0x0c03, 1}, - {0x0c05, 0x0c0c, 1}, - {0x0c0e, 0x0c10, 1}, - {0x0c12, 0x0c28, 1}, - {0x0c2a, 0x0c33, 1}, - {0x0c35, 0x0c39, 1}, - {0x0c3d, 0x0c44, 1}, - {0x0c46, 0x0c48, 1}, - {0x0c4a, 0x0c4d, 1}, - {0x0c55, 0x0c56, 1}, - {0x0c58, 0x0c59, 1}, - {0x0c60, 0x0c63, 1}, - {0x0c66, 0x0c6f, 1}, - {0x0c78, 0x0c7f, 1}, - {0x0c82, 0x0c83, 1}, - {0x0c85, 0x0c8c, 1}, - {0x0c8e, 0x0c90, 1}, - {0x0c92, 0x0ca8, 1}, - {0x0caa, 0x0cb3, 1}, - {0x0cb5, 0x0cb9, 1}, - {0x0cbc, 0x0cc4, 1}, - {0x0cc6, 0x0cc8, 1}, - {0x0cca, 0x0ccd, 1}, - {0x0cd5, 0x0cd6, 1}, - {0x0cde, 0x0ce0, 2}, - {0x0ce1, 0x0ce3, 1}, - {0x0ce6, 0x0cef, 1}, - {0x0cf1, 0x0cf2, 1}, - {0x0d02, 0x0d03, 1}, - {0x0d05, 0x0d0c, 1}, - {0x0d0e, 0x0d10, 1}, - {0x0d12, 0x0d3a, 1}, - {0x0d3d, 0x0d44, 1}, - {0x0d46, 0x0d48, 1}, - {0x0d4a, 0x0d4e, 1}, - {0x0d57, 0x0d60, 9}, - {0x0d61, 0x0d63, 1}, - {0x0d66, 0x0d75, 1}, - {0x0d79, 0x0d7f, 1}, - {0x0d82, 0x0d83, 1}, - {0x0d85, 0x0d96, 1}, - {0x0d9a, 0x0db1, 1}, - {0x0db3, 0x0dbb, 1}, - {0x0dbd, 0x0dc0, 3}, - {0x0dc1, 0x0dc6, 1}, - {0x0dca, 0x0dcf, 5}, - {0x0dd0, 0x0dd4, 1}, - {0x0dd6, 0x0dd8, 2}, - {0x0dd9, 0x0ddf, 1}, - {0x0df2, 0x0df4, 1}, - {0x0e01, 0x0e3a, 1}, - {0x0e3f, 0x0e5b, 1}, - {0x0e81, 0x0e82, 1}, - {0x0e84, 0x0e87, 3}, - {0x0e88, 0x0e8a, 2}, - {0x0e8d, 0x0e94, 7}, - {0x0e95, 0x0e97, 1}, - {0x0e99, 0x0e9f, 1}, - {0x0ea1, 0x0ea3, 1}, - {0x0ea5, 0x0ea7, 2}, - {0x0eaa, 0x0eab, 1}, - {0x0ead, 0x0eb9, 1}, - {0x0ebb, 0x0ebd, 1}, - {0x0ec0, 0x0ec4, 1}, - {0x0ec6, 0x0ec8, 2}, - {0x0ec9, 0x0ecd, 1}, - {0x0ed0, 0x0ed9, 1}, - {0x0edc, 0x0edf, 1}, - {0x0f00, 0x0f47, 1}, - {0x0f49, 0x0f6c, 1}, - {0x0f71, 0x0f97, 1}, - {0x0f99, 0x0fbc, 1}, - {0x0fbe, 0x0fcc, 1}, - {0x0fce, 0x0fda, 1}, - {0x1000, 0x10c5, 1}, - {0x10c7, 0x10cd, 6}, - {0x10d0, 0x1248, 1}, - {0x124a, 0x124d, 1}, - {0x1250, 0x1256, 1}, - {0x1258, 0x125a, 2}, - {0x125b, 0x125d, 1}, - {0x1260, 0x1288, 1}, - {0x128a, 0x128d, 1}, - {0x1290, 0x12b0, 1}, - {0x12b2, 0x12b5, 1}, - {0x12b8, 0x12be, 1}, - {0x12c0, 0x12c2, 2}, - {0x12c3, 0x12c5, 1}, - {0x12c8, 0x12d6, 1}, - {0x12d8, 0x1310, 1}, - {0x1312, 0x1315, 1}, - {0x1318, 0x135a, 1}, - {0x135d, 0x137c, 1}, - {0x1380, 0x1399, 1}, - {0x13a0, 0x13f4, 1}, - {0x1400, 0x169c, 1}, - {0x16a0, 0x16f0, 1}, - {0x1700, 0x170c, 1}, - {0x170e, 0x1714, 1}, - {0x1720, 0x1736, 1}, - {0x1740, 0x1753, 1}, - {0x1760, 0x176c, 1}, - {0x176e, 0x1770, 1}, - {0x1772, 0x1773, 1}, - {0x1780, 0x17dd, 1}, - {0x17e0, 0x17e9, 1}, - {0x17f0, 0x17f9, 1}, - {0x1800, 0x180e, 1}, - {0x1810, 0x1819, 1}, - {0x1820, 0x1877, 1}, - {0x1880, 0x18aa, 1}, - {0x18b0, 0x18f5, 1}, - {0x1900, 0x191c, 1}, - {0x1920, 0x192b, 1}, - {0x1930, 0x193b, 1}, - {0x1940, 0x1944, 4}, - {0x1945, 0x196d, 1}, - {0x1970, 0x1974, 1}, - {0x1980, 0x19ab, 1}, - {0x19b0, 0x19c9, 1}, - {0x19d0, 0x19da, 1}, - {0x19de, 0x1a1b, 1}, - {0x1a1e, 0x1a5e, 1}, - {0x1a60, 0x1a7c, 1}, - {0x1a7f, 0x1a89, 1}, - {0x1a90, 0x1a99, 1}, - {0x1aa0, 0x1aad, 1}, - {0x1b00, 0x1b4b, 1}, - {0x1b50, 0x1b7c, 1}, - {0x1b80, 0x1bf3, 1}, - {0x1bfc, 0x1c37, 1}, - {0x1c3b, 0x1c49, 1}, - {0x1c4d, 0x1c7f, 1}, - {0x1cc0, 0x1cc7, 1}, - {0x1cd0, 0x1cf6, 1}, - {0x1d00, 0x1de6, 1}, - {0x1dfc, 0x1f15, 1}, - {0x1f18, 0x1f1d, 1}, - {0x1f20, 0x1f45, 1}, - {0x1f48, 0x1f4d, 1}, - {0x1f50, 0x1f57, 1}, - {0x1f59, 0x1f5f, 2}, - {0x1f60, 0x1f7d, 1}, - {0x1f80, 0x1fb4, 1}, - {0x1fb6, 0x1fc4, 1}, - {0x1fc6, 0x1fd3, 1}, - {0x1fd6, 0x1fdb, 1}, - {0x1fdd, 0x1fef, 1}, - {0x1ff2, 0x1ff4, 1}, - {0x1ff6, 0x1ffe, 1}, - {0x2000, 0x2064, 1}, - {0x2066, 0x2071, 1}, - {0x2074, 0x208e, 1}, - {0x2090, 0x209c, 1}, - {0x20a0, 0x20ba, 1}, - {0x20d0, 0x20f0, 1}, - {0x2100, 0x2189, 1}, - {0x2190, 0x23f3, 1}, - {0x2400, 0x2426, 1}, - {0x2440, 0x244a, 1}, - {0x2460, 0x26ff, 1}, - {0x2701, 0x2b4c, 1}, - {0x2b50, 0x2b59, 1}, - {0x2c00, 0x2c2e, 1}, - {0x2c30, 0x2c5e, 1}, - {0x2c60, 0x2cf3, 1}, - {0x2cf9, 0x2d25, 1}, - {0x2d27, 0x2d2d, 6}, - {0x2d30, 0x2d67, 1}, - {0x2d6f, 0x2d70, 1}, - {0x2d7f, 0x2d96, 1}, - {0x2da0, 0x2da6, 1}, - {0x2da8, 0x2dae, 1}, - {0x2db0, 0x2db6, 1}, - {0x2db8, 0x2dbe, 1}, - {0x2dc0, 0x2dc6, 1}, - {0x2dc8, 0x2dce, 1}, - {0x2dd0, 0x2dd6, 1}, - {0x2dd8, 0x2dde, 1}, - {0x2de0, 0x2e3b, 1}, - {0x2e80, 0x2e99, 1}, - {0x2e9b, 0x2ef3, 1}, - {0x2f00, 0x2fd5, 1}, - {0x2ff0, 0x2ffb, 1}, - {0x3000, 0x303f, 1}, - {0x3041, 0x3096, 1}, - {0x3099, 0x30ff, 1}, - {0x3105, 0x312d, 1}, - {0x3131, 0x318e, 1}, - {0x3190, 0x31ba, 1}, - {0x31c0, 0x31e3, 1}, - {0x31f0, 0x321e, 1}, - {0x3220, 0x32fe, 1}, - {0x3300, 0x4db5, 1}, - {0x4dc0, 0x9fcc, 1}, - {0xa000, 0xa48c, 1}, - {0xa490, 0xa4c6, 1}, - {0xa4d0, 0xa62b, 1}, - {0xa640, 0xa697, 1}, - {0xa69f, 0xa6f7, 1}, - {0xa700, 0xa78e, 1}, - {0xa790, 0xa793, 1}, - {0xa7a0, 0xa7aa, 1}, - {0xa7f8, 0xa82b, 1}, - {0xa830, 0xa839, 1}, - {0xa840, 0xa877, 1}, - {0xa880, 0xa8c4, 1}, - {0xa8ce, 0xa8d9, 1}, - {0xa8e0, 0xa8fb, 1}, - {0xa900, 0xa953, 1}, - {0xa95f, 0xa97c, 1}, - {0xa980, 0xa9cd, 1}, - {0xa9cf, 0xa9d9, 1}, - {0xa9de, 0xa9df, 1}, - {0xaa00, 0xaa36, 1}, - {0xaa40, 0xaa4d, 1}, - {0xaa50, 0xaa59, 1}, - {0xaa5c, 0xaa7b, 1}, - {0xaa80, 0xaac2, 1}, - {0xaadb, 0xaaf6, 1}, - {0xab01, 0xab06, 1}, - {0xab09, 0xab0e, 1}, - {0xab11, 0xab16, 1}, - {0xab20, 0xab26, 1}, - {0xab28, 0xab2e, 1}, - {0xabc0, 0xabed, 1}, - {0xabf0, 0xabf9, 1}, - {0xac00, 0xd7a3, 1}, - {0xd7b0, 0xd7c6, 1}, - {0xd7cb, 0xd7fb, 1}, - {0xd800, 0xfa6d, 1}, - {0xfa70, 0xfad9, 1}, - {0xfb00, 0xfb06, 1}, - {0xfb13, 0xfb17, 1}, - {0xfb1d, 0xfb36, 1}, - {0xfb38, 0xfb3c, 1}, - {0xfb3e, 0xfb40, 2}, - {0xfb41, 0xfb43, 2}, - {0xfb44, 0xfb46, 2}, - {0xfb47, 0xfbc1, 1}, - {0xfbd3, 0xfd3f, 1}, - {0xfd50, 0xfd8f, 1}, - {0xfd92, 0xfdc7, 1}, - {0xfdf0, 0xfdfd, 1}, - {0xfe00, 0xfe19, 1}, - {0xfe20, 0xfe26, 1}, - {0xfe30, 0xfe52, 1}, - {0xfe54, 0xfe66, 1}, - {0xfe68, 0xfe6b, 1}, - {0xfe70, 0xfe74, 1}, - {0xfe76, 0xfefc, 1}, - {0xfeff, 0xff01, 2}, - {0xff02, 0xffbe, 1}, - {0xffc2, 0xffc7, 1}, - {0xffca, 0xffcf, 1}, - {0xffd2, 0xffd7, 1}, - {0xffda, 0xffdc, 1}, - {0xffe0, 0xffe6, 1}, - {0xffe8, 0xffee, 1}, - {0xfff9, 0xfffd, 1}, - }, - R32: []unicode.Range32{ - {0x00010000, 0x0001000b, 1}, - {0x0001000d, 0x00010026, 1}, - {0x00010028, 0x0001003a, 1}, - {0x0001003c, 0x0001003d, 1}, - {0x0001003f, 0x0001004d, 1}, - {0x00010050, 0x0001005d, 1}, - {0x00010080, 0x000100fa, 1}, - {0x00010100, 0x00010102, 1}, - {0x00010107, 0x00010133, 1}, - {0x00010137, 0x0001018a, 1}, - {0x00010190, 0x0001019b, 1}, - {0x000101d0, 0x000101fd, 1}, - {0x00010280, 0x0001029c, 1}, - {0x000102a0, 0x000102d0, 1}, - {0x00010300, 0x0001031e, 1}, - {0x00010320, 0x00010323, 1}, - {0x00010330, 0x0001034a, 1}, - {0x00010380, 0x0001039d, 1}, - {0x0001039f, 0x000103c3, 1}, - {0x000103c8, 0x000103d5, 1}, - {0x00010400, 0x0001049d, 1}, - {0x000104a0, 0x000104a9, 1}, - {0x00010800, 0x00010805, 1}, - {0x00010808, 0x0001080a, 2}, - {0x0001080b, 0x00010835, 1}, - {0x00010837, 0x00010838, 1}, - {0x0001083c, 0x0001083f, 3}, - {0x00010840, 0x00010855, 1}, - {0x00010857, 0x0001085f, 1}, - {0x00010900, 0x0001091b, 1}, - {0x0001091f, 0x00010939, 1}, - {0x0001093f, 0x00010980, 65}, - {0x00010981, 0x000109b7, 1}, - {0x000109be, 0x000109bf, 1}, - {0x00010a00, 0x00010a03, 1}, - {0x00010a05, 0x00010a06, 1}, - {0x00010a0c, 0x00010a13, 1}, - {0x00010a15, 0x00010a17, 1}, - {0x00010a19, 0x00010a33, 1}, - {0x00010a38, 0x00010a3a, 1}, - {0x00010a3f, 0x00010a47, 1}, - {0x00010a50, 0x00010a58, 1}, - {0x00010a60, 0x00010a7f, 1}, - {0x00010b00, 0x00010b35, 1}, - {0x00010b39, 0x00010b55, 1}, - {0x00010b58, 0x00010b72, 1}, - {0x00010b78, 0x00010b7f, 1}, - {0x00010c00, 0x00010c48, 1}, - {0x00010e60, 0x00010e7e, 1}, - {0x00011000, 0x0001104d, 1}, - {0x00011052, 0x0001106f, 1}, - {0x00011080, 0x000110c1, 1}, - {0x000110d0, 0x000110e8, 1}, - {0x000110f0, 0x000110f9, 1}, - {0x00011100, 0x00011134, 1}, - {0x00011136, 0x00011143, 1}, - {0x00011180, 0x000111c8, 1}, - {0x000111d0, 0x000111d9, 1}, - {0x00011680, 0x000116b7, 1}, - {0x000116c0, 0x000116c9, 1}, - {0x00012000, 0x0001236e, 1}, - {0x00012400, 0x00012462, 1}, - {0x00012470, 0x00012473, 1}, - {0x00013000, 0x0001342e, 1}, - {0x00016800, 0x00016a38, 1}, - {0x00016f00, 0x00016f44, 1}, - {0x00016f50, 0x00016f7e, 1}, - {0x00016f8f, 0x00016f9f, 1}, - {0x0001b000, 0x0001b001, 1}, - {0x0001d000, 0x0001d0f5, 1}, - {0x0001d100, 0x0001d126, 1}, - {0x0001d129, 0x0001d1dd, 1}, - {0x0001d200, 0x0001d245, 1}, - {0x0001d300, 0x0001d356, 1}, - {0x0001d360, 0x0001d371, 1}, - {0x0001d400, 0x0001d454, 1}, - {0x0001d456, 0x0001d49c, 1}, - {0x0001d49e, 0x0001d49f, 1}, - {0x0001d4a2, 0x0001d4a5, 3}, - {0x0001d4a6, 0x0001d4a9, 3}, - {0x0001d4aa, 0x0001d4ac, 1}, - {0x0001d4ae, 0x0001d4b9, 1}, - {0x0001d4bb, 0x0001d4bd, 2}, - {0x0001d4be, 0x0001d4c3, 1}, - {0x0001d4c5, 0x0001d505, 1}, - {0x0001d507, 0x0001d50a, 1}, - {0x0001d50d, 0x0001d514, 1}, - {0x0001d516, 0x0001d51c, 1}, - {0x0001d51e, 0x0001d539, 1}, - {0x0001d53b, 0x0001d53e, 1}, - {0x0001d540, 0x0001d544, 1}, - {0x0001d546, 0x0001d54a, 4}, - {0x0001d54b, 0x0001d550, 1}, - {0x0001d552, 0x0001d6a5, 1}, - {0x0001d6a8, 0x0001d7cb, 1}, - {0x0001d7ce, 0x0001d7ff, 1}, - {0x0001ee00, 0x0001ee03, 1}, - {0x0001ee05, 0x0001ee1f, 1}, - {0x0001ee21, 0x0001ee22, 1}, - {0x0001ee24, 0x0001ee27, 3}, - {0x0001ee29, 0x0001ee32, 1}, - {0x0001ee34, 0x0001ee37, 1}, - {0x0001ee39, 0x0001ee3b, 2}, - {0x0001ee42, 0x0001ee47, 5}, - {0x0001ee49, 0x0001ee4d, 2}, - {0x0001ee4e, 0x0001ee4f, 1}, - {0x0001ee51, 0x0001ee52, 1}, - {0x0001ee54, 0x0001ee57, 3}, - {0x0001ee59, 0x0001ee61, 2}, - {0x0001ee62, 0x0001ee64, 2}, - {0x0001ee67, 0x0001ee6a, 1}, - {0x0001ee6c, 0x0001ee72, 1}, - {0x0001ee74, 0x0001ee77, 1}, - {0x0001ee79, 0x0001ee7c, 1}, - {0x0001ee7e, 0x0001ee80, 2}, - {0x0001ee81, 0x0001ee89, 1}, - {0x0001ee8b, 0x0001ee9b, 1}, - {0x0001eea1, 0x0001eea3, 1}, - {0x0001eea5, 0x0001eea9, 1}, - {0x0001eeab, 0x0001eebb, 1}, - {0x0001eef0, 0x0001eef1, 1}, - {0x0001f000, 0x0001f02b, 1}, - {0x0001f030, 0x0001f093, 1}, - {0x0001f0a0, 0x0001f0ae, 1}, - {0x0001f0b1, 0x0001f0be, 1}, - {0x0001f0c1, 0x0001f0cf, 1}, - {0x0001f0d1, 0x0001f0df, 1}, - {0x0001f100, 0x0001f10a, 1}, - {0x0001f110, 0x0001f12e, 1}, - {0x0001f130, 0x0001f16b, 1}, - {0x0001f170, 0x0001f19a, 1}, - {0x0001f1e6, 0x0001f202, 1}, - {0x0001f210, 0x0001f23a, 1}, - {0x0001f240, 0x0001f248, 1}, - {0x0001f250, 0x0001f251, 1}, - {0x0001f300, 0x0001f320, 1}, - {0x0001f330, 0x0001f335, 1}, - {0x0001f337, 0x0001f37c, 1}, - {0x0001f380, 0x0001f393, 1}, - {0x0001f3a0, 0x0001f3c4, 1}, - {0x0001f3c6, 0x0001f3ca, 1}, - {0x0001f3e0, 0x0001f3f0, 1}, - {0x0001f400, 0x0001f43e, 1}, - {0x0001f440, 0x0001f442, 2}, - {0x0001f443, 0x0001f4f7, 1}, - {0x0001f4f9, 0x0001f4fc, 1}, - {0x0001f500, 0x0001f53d, 1}, - {0x0001f540, 0x0001f543, 1}, - {0x0001f550, 0x0001f567, 1}, - {0x0001f5fb, 0x0001f640, 1}, - {0x0001f645, 0x0001f64f, 1}, - {0x0001f680, 0x0001f6c5, 1}, - {0x0001f700, 0x0001f773, 1}, - {0x00020000, 0x0002a6d6, 1}, - {0x0002a700, 0x0002b734, 1}, - {0x0002b740, 0x0002b81d, 1}, - {0x0002f800, 0x0002fa1d, 1}, - {0x000e0001, 0x000e0020, 31}, - {0x000e0021, 0x000e007f, 1}, - {0x000e0100, 0x000e01ef, 1}, - {0x000f0000, 0x000ffffd, 1}, - {0x00100000, 0x0010fffd, 1}, - }, - LatinOffset: 0, -} - -// size 4898 bytes (4 KiB) -var assigned7_0_0 = &unicode.RangeTable{ - R16: []unicode.Range16{ - {0x0000, 0x0377, 1}, - {0x037a, 0x037f, 1}, - {0x0384, 0x038a, 1}, - {0x038c, 0x038e, 2}, - {0x038f, 0x03a1, 1}, - {0x03a3, 0x052f, 1}, - {0x0531, 0x0556, 1}, - {0x0559, 0x055f, 1}, - {0x0561, 0x0587, 1}, - {0x0589, 0x058a, 1}, - {0x058d, 0x058f, 1}, - {0x0591, 0x05c7, 1}, - {0x05d0, 0x05ea, 1}, - {0x05f0, 0x05f4, 1}, - {0x0600, 0x061c, 1}, - {0x061e, 0x070d, 1}, - {0x070f, 0x074a, 1}, - {0x074d, 0x07b1, 1}, - {0x07c0, 0x07fa, 1}, - {0x0800, 0x082d, 1}, - {0x0830, 0x083e, 1}, - {0x0840, 0x085b, 1}, - {0x085e, 0x08a0, 66}, - {0x08a1, 0x08b2, 1}, - {0x08e4, 0x0983, 1}, - {0x0985, 0x098c, 1}, - {0x098f, 0x0990, 1}, - {0x0993, 0x09a8, 1}, - {0x09aa, 0x09b0, 1}, - {0x09b2, 0x09b6, 4}, - {0x09b7, 0x09b9, 1}, - {0x09bc, 0x09c4, 1}, - {0x09c7, 0x09c8, 1}, - {0x09cb, 0x09ce, 1}, - {0x09d7, 0x09dc, 5}, - {0x09dd, 0x09df, 2}, - {0x09e0, 0x09e3, 1}, - {0x09e6, 0x09fb, 1}, - {0x0a01, 0x0a03, 1}, - {0x0a05, 0x0a0a, 1}, - {0x0a0f, 0x0a10, 1}, - {0x0a13, 0x0a28, 1}, - {0x0a2a, 0x0a30, 1}, - {0x0a32, 0x0a33, 1}, - {0x0a35, 0x0a36, 1}, - {0x0a38, 0x0a39, 1}, - {0x0a3c, 0x0a3e, 2}, - {0x0a3f, 0x0a42, 1}, - {0x0a47, 0x0a48, 1}, - {0x0a4b, 0x0a4d, 1}, - {0x0a51, 0x0a59, 8}, - {0x0a5a, 0x0a5c, 1}, - {0x0a5e, 0x0a66, 8}, - {0x0a67, 0x0a75, 1}, - {0x0a81, 0x0a83, 1}, - {0x0a85, 0x0a8d, 1}, - {0x0a8f, 0x0a91, 1}, - {0x0a93, 0x0aa8, 1}, - {0x0aaa, 0x0ab0, 1}, - {0x0ab2, 0x0ab3, 1}, - {0x0ab5, 0x0ab9, 1}, - {0x0abc, 0x0ac5, 1}, - {0x0ac7, 0x0ac9, 1}, - {0x0acb, 0x0acd, 1}, - {0x0ad0, 0x0ae0, 16}, - {0x0ae1, 0x0ae3, 1}, - {0x0ae6, 0x0af1, 1}, - {0x0b01, 0x0b03, 1}, - {0x0b05, 0x0b0c, 1}, - {0x0b0f, 0x0b10, 1}, - {0x0b13, 0x0b28, 1}, - {0x0b2a, 0x0b30, 1}, - {0x0b32, 0x0b33, 1}, - {0x0b35, 0x0b39, 1}, - {0x0b3c, 0x0b44, 1}, - {0x0b47, 0x0b48, 1}, - {0x0b4b, 0x0b4d, 1}, - {0x0b56, 0x0b57, 1}, - {0x0b5c, 0x0b5d, 1}, - {0x0b5f, 0x0b63, 1}, - {0x0b66, 0x0b77, 1}, - {0x0b82, 0x0b83, 1}, - {0x0b85, 0x0b8a, 1}, - {0x0b8e, 0x0b90, 1}, - {0x0b92, 0x0b95, 1}, - {0x0b99, 0x0b9a, 1}, - {0x0b9c, 0x0b9e, 2}, - {0x0b9f, 0x0ba3, 4}, - {0x0ba4, 0x0ba8, 4}, - {0x0ba9, 0x0baa, 1}, - {0x0bae, 0x0bb9, 1}, - {0x0bbe, 0x0bc2, 1}, - {0x0bc6, 0x0bc8, 1}, - {0x0bca, 0x0bcd, 1}, - {0x0bd0, 0x0bd7, 7}, - {0x0be6, 0x0bfa, 1}, - {0x0c00, 0x0c03, 1}, - {0x0c05, 0x0c0c, 1}, - {0x0c0e, 0x0c10, 1}, - {0x0c12, 0x0c28, 1}, - {0x0c2a, 0x0c39, 1}, - {0x0c3d, 0x0c44, 1}, - {0x0c46, 0x0c48, 1}, - {0x0c4a, 0x0c4d, 1}, - {0x0c55, 0x0c56, 1}, - {0x0c58, 0x0c59, 1}, - {0x0c60, 0x0c63, 1}, - {0x0c66, 0x0c6f, 1}, - {0x0c78, 0x0c7f, 1}, - {0x0c81, 0x0c83, 1}, - {0x0c85, 0x0c8c, 1}, - {0x0c8e, 0x0c90, 1}, - {0x0c92, 0x0ca8, 1}, - {0x0caa, 0x0cb3, 1}, - {0x0cb5, 0x0cb9, 1}, - {0x0cbc, 0x0cc4, 1}, - {0x0cc6, 0x0cc8, 1}, - {0x0cca, 0x0ccd, 1}, - {0x0cd5, 0x0cd6, 1}, - {0x0cde, 0x0ce0, 2}, - {0x0ce1, 0x0ce3, 1}, - {0x0ce6, 0x0cef, 1}, - {0x0cf1, 0x0cf2, 1}, - {0x0d01, 0x0d03, 1}, - {0x0d05, 0x0d0c, 1}, - {0x0d0e, 0x0d10, 1}, - {0x0d12, 0x0d3a, 1}, - {0x0d3d, 0x0d44, 1}, - {0x0d46, 0x0d48, 1}, - {0x0d4a, 0x0d4e, 1}, - {0x0d57, 0x0d60, 9}, - {0x0d61, 0x0d63, 1}, - {0x0d66, 0x0d75, 1}, - {0x0d79, 0x0d7f, 1}, - {0x0d82, 0x0d83, 1}, - {0x0d85, 0x0d96, 1}, - {0x0d9a, 0x0db1, 1}, - {0x0db3, 0x0dbb, 1}, - {0x0dbd, 0x0dc0, 3}, - {0x0dc1, 0x0dc6, 1}, - {0x0dca, 0x0dcf, 5}, - {0x0dd0, 0x0dd4, 1}, - {0x0dd6, 0x0dd8, 2}, - {0x0dd9, 0x0ddf, 1}, - {0x0de6, 0x0def, 1}, - {0x0df2, 0x0df4, 1}, - {0x0e01, 0x0e3a, 1}, - {0x0e3f, 0x0e5b, 1}, - {0x0e81, 0x0e82, 1}, - {0x0e84, 0x0e87, 3}, - {0x0e88, 0x0e8a, 2}, - {0x0e8d, 0x0e94, 7}, - {0x0e95, 0x0e97, 1}, - {0x0e99, 0x0e9f, 1}, - {0x0ea1, 0x0ea3, 1}, - {0x0ea5, 0x0ea7, 2}, - {0x0eaa, 0x0eab, 1}, - {0x0ead, 0x0eb9, 1}, - {0x0ebb, 0x0ebd, 1}, - {0x0ec0, 0x0ec4, 1}, - {0x0ec6, 0x0ec8, 2}, - {0x0ec9, 0x0ecd, 1}, - {0x0ed0, 0x0ed9, 1}, - {0x0edc, 0x0edf, 1}, - {0x0f00, 0x0f47, 1}, - {0x0f49, 0x0f6c, 1}, - {0x0f71, 0x0f97, 1}, - {0x0f99, 0x0fbc, 1}, - {0x0fbe, 0x0fcc, 1}, - {0x0fce, 0x0fda, 1}, - {0x1000, 0x10c5, 1}, - {0x10c7, 0x10cd, 6}, - {0x10d0, 0x1248, 1}, - {0x124a, 0x124d, 1}, - {0x1250, 0x1256, 1}, - {0x1258, 0x125a, 2}, - {0x125b, 0x125d, 1}, - {0x1260, 0x1288, 1}, - {0x128a, 0x128d, 1}, - {0x1290, 0x12b0, 1}, - {0x12b2, 0x12b5, 1}, - {0x12b8, 0x12be, 1}, - {0x12c0, 0x12c2, 2}, - {0x12c3, 0x12c5, 1}, - {0x12c8, 0x12d6, 1}, - {0x12d8, 0x1310, 1}, - {0x1312, 0x1315, 1}, - {0x1318, 0x135a, 1}, - {0x135d, 0x137c, 1}, - {0x1380, 0x1399, 1}, - {0x13a0, 0x13f4, 1}, - {0x1400, 0x169c, 1}, - {0x16a0, 0x16f8, 1}, - {0x1700, 0x170c, 1}, - {0x170e, 0x1714, 1}, - {0x1720, 0x1736, 1}, - {0x1740, 0x1753, 1}, - {0x1760, 0x176c, 1}, - {0x176e, 0x1770, 1}, - {0x1772, 0x1773, 1}, - {0x1780, 0x17dd, 1}, - {0x17e0, 0x17e9, 1}, - {0x17f0, 0x17f9, 1}, - {0x1800, 0x180e, 1}, - {0x1810, 0x1819, 1}, - {0x1820, 0x1877, 1}, - {0x1880, 0x18aa, 1}, - {0x18b0, 0x18f5, 1}, - {0x1900, 0x191e, 1}, - {0x1920, 0x192b, 1}, - {0x1930, 0x193b, 1}, - {0x1940, 0x1944, 4}, - {0x1945, 0x196d, 1}, - {0x1970, 0x1974, 1}, - {0x1980, 0x19ab, 1}, - {0x19b0, 0x19c9, 1}, - {0x19d0, 0x19da, 1}, - {0x19de, 0x1a1b, 1}, - {0x1a1e, 0x1a5e, 1}, - {0x1a60, 0x1a7c, 1}, - {0x1a7f, 0x1a89, 1}, - {0x1a90, 0x1a99, 1}, - {0x1aa0, 0x1aad, 1}, - {0x1ab0, 0x1abe, 1}, - {0x1b00, 0x1b4b, 1}, - {0x1b50, 0x1b7c, 1}, - {0x1b80, 0x1bf3, 1}, - {0x1bfc, 0x1c37, 1}, - {0x1c3b, 0x1c49, 1}, - {0x1c4d, 0x1c7f, 1}, - {0x1cc0, 0x1cc7, 1}, - {0x1cd0, 0x1cf6, 1}, - {0x1cf8, 0x1cf9, 1}, - {0x1d00, 0x1df5, 1}, - {0x1dfc, 0x1f15, 1}, - {0x1f18, 0x1f1d, 1}, - {0x1f20, 0x1f45, 1}, - {0x1f48, 0x1f4d, 1}, - {0x1f50, 0x1f57, 1}, - {0x1f59, 0x1f5f, 2}, - {0x1f60, 0x1f7d, 1}, - {0x1f80, 0x1fb4, 1}, - {0x1fb6, 0x1fc4, 1}, - {0x1fc6, 0x1fd3, 1}, - {0x1fd6, 0x1fdb, 1}, - {0x1fdd, 0x1fef, 1}, - {0x1ff2, 0x1ff4, 1}, - {0x1ff6, 0x1ffe, 1}, - {0x2000, 0x2064, 1}, - {0x2066, 0x2071, 1}, - {0x2074, 0x208e, 1}, - {0x2090, 0x209c, 1}, - {0x20a0, 0x20bd, 1}, - {0x20d0, 0x20f0, 1}, - {0x2100, 0x2189, 1}, - {0x2190, 0x23fa, 1}, - {0x2400, 0x2426, 1}, - {0x2440, 0x244a, 1}, - {0x2460, 0x2b73, 1}, - {0x2b76, 0x2b95, 1}, - {0x2b98, 0x2bb9, 1}, - {0x2bbd, 0x2bc8, 1}, - {0x2bca, 0x2bd1, 1}, - {0x2c00, 0x2c2e, 1}, - {0x2c30, 0x2c5e, 1}, - {0x2c60, 0x2cf3, 1}, - {0x2cf9, 0x2d25, 1}, - {0x2d27, 0x2d2d, 6}, - {0x2d30, 0x2d67, 1}, - {0x2d6f, 0x2d70, 1}, - {0x2d7f, 0x2d96, 1}, - {0x2da0, 0x2da6, 1}, - {0x2da8, 0x2dae, 1}, - {0x2db0, 0x2db6, 1}, - {0x2db8, 0x2dbe, 1}, - {0x2dc0, 0x2dc6, 1}, - {0x2dc8, 0x2dce, 1}, - {0x2dd0, 0x2dd6, 1}, - {0x2dd8, 0x2dde, 1}, - {0x2de0, 0x2e42, 1}, - {0x2e80, 0x2e99, 1}, - {0x2e9b, 0x2ef3, 1}, - {0x2f00, 0x2fd5, 1}, - {0x2ff0, 0x2ffb, 1}, - {0x3000, 0x303f, 1}, - {0x3041, 0x3096, 1}, - {0x3099, 0x30ff, 1}, - {0x3105, 0x312d, 1}, - {0x3131, 0x318e, 1}, - {0x3190, 0x31ba, 1}, - {0x31c0, 0x31e3, 1}, - {0x31f0, 0x321e, 1}, - {0x3220, 0x32fe, 1}, - {0x3300, 0x4db5, 1}, - {0x4dc0, 0x9fcc, 1}, - {0xa000, 0xa48c, 1}, - {0xa490, 0xa4c6, 1}, - {0xa4d0, 0xa62b, 1}, - {0xa640, 0xa69d, 1}, - {0xa69f, 0xa6f7, 1}, - {0xa700, 0xa78e, 1}, - {0xa790, 0xa7ad, 1}, - {0xa7b0, 0xa7b1, 1}, - {0xa7f7, 0xa82b, 1}, - {0xa830, 0xa839, 1}, - {0xa840, 0xa877, 1}, - {0xa880, 0xa8c4, 1}, - {0xa8ce, 0xa8d9, 1}, - {0xa8e0, 0xa8fb, 1}, - {0xa900, 0xa953, 1}, - {0xa95f, 0xa97c, 1}, - {0xa980, 0xa9cd, 1}, - {0xa9cf, 0xa9d9, 1}, - {0xa9de, 0xa9fe, 1}, - {0xaa00, 0xaa36, 1}, - {0xaa40, 0xaa4d, 1}, - {0xaa50, 0xaa59, 1}, - {0xaa5c, 0xaac2, 1}, - {0xaadb, 0xaaf6, 1}, - {0xab01, 0xab06, 1}, - {0xab09, 0xab0e, 1}, - {0xab11, 0xab16, 1}, - {0xab20, 0xab26, 1}, - {0xab28, 0xab2e, 1}, - {0xab30, 0xab5f, 1}, - {0xab64, 0xab65, 1}, - {0xabc0, 0xabed, 1}, - {0xabf0, 0xabf9, 1}, - {0xac00, 0xd7a3, 1}, - {0xd7b0, 0xd7c6, 1}, - {0xd7cb, 0xd7fb, 1}, - {0xd800, 0xfa6d, 1}, - {0xfa70, 0xfad9, 1}, - {0xfb00, 0xfb06, 1}, - {0xfb13, 0xfb17, 1}, - {0xfb1d, 0xfb36, 1}, - {0xfb38, 0xfb3c, 1}, - {0xfb3e, 0xfb40, 2}, - {0xfb41, 0xfb43, 2}, - {0xfb44, 0xfb46, 2}, - {0xfb47, 0xfbc1, 1}, - {0xfbd3, 0xfd3f, 1}, - {0xfd50, 0xfd8f, 1}, - {0xfd92, 0xfdc7, 1}, - {0xfdf0, 0xfdfd, 1}, - {0xfe00, 0xfe19, 1}, - {0xfe20, 0xfe2d, 1}, - {0xfe30, 0xfe52, 1}, - {0xfe54, 0xfe66, 1}, - {0xfe68, 0xfe6b, 1}, - {0xfe70, 0xfe74, 1}, - {0xfe76, 0xfefc, 1}, - {0xfeff, 0xff01, 2}, - {0xff02, 0xffbe, 1}, - {0xffc2, 0xffc7, 1}, - {0xffca, 0xffcf, 1}, - {0xffd2, 0xffd7, 1}, - {0xffda, 0xffdc, 1}, - {0xffe0, 0xffe6, 1}, - {0xffe8, 0xffee, 1}, - {0xfff9, 0xfffd, 1}, - }, - R32: []unicode.Range32{ - {0x00010000, 0x0001000b, 1}, - {0x0001000d, 0x00010026, 1}, - {0x00010028, 0x0001003a, 1}, - {0x0001003c, 0x0001003d, 1}, - {0x0001003f, 0x0001004d, 1}, - {0x00010050, 0x0001005d, 1}, - {0x00010080, 0x000100fa, 1}, - {0x00010100, 0x00010102, 1}, - {0x00010107, 0x00010133, 1}, - {0x00010137, 0x0001018c, 1}, - {0x00010190, 0x0001019b, 1}, - {0x000101a0, 0x000101d0, 48}, - {0x000101d1, 0x000101fd, 1}, - {0x00010280, 0x0001029c, 1}, - {0x000102a0, 0x000102d0, 1}, - {0x000102e0, 0x000102fb, 1}, - {0x00010300, 0x00010323, 1}, - {0x00010330, 0x0001034a, 1}, - {0x00010350, 0x0001037a, 1}, - {0x00010380, 0x0001039d, 1}, - {0x0001039f, 0x000103c3, 1}, - {0x000103c8, 0x000103d5, 1}, - {0x00010400, 0x0001049d, 1}, - {0x000104a0, 0x000104a9, 1}, - {0x00010500, 0x00010527, 1}, - {0x00010530, 0x00010563, 1}, - {0x0001056f, 0x00010600, 145}, - {0x00010601, 0x00010736, 1}, - {0x00010740, 0x00010755, 1}, - {0x00010760, 0x00010767, 1}, - {0x00010800, 0x00010805, 1}, - {0x00010808, 0x0001080a, 2}, - {0x0001080b, 0x00010835, 1}, - {0x00010837, 0x00010838, 1}, - {0x0001083c, 0x0001083f, 3}, - {0x00010840, 0x00010855, 1}, - {0x00010857, 0x0001089e, 1}, - {0x000108a7, 0x000108af, 1}, - {0x00010900, 0x0001091b, 1}, - {0x0001091f, 0x00010939, 1}, - {0x0001093f, 0x00010980, 65}, - {0x00010981, 0x000109b7, 1}, - {0x000109be, 0x000109bf, 1}, - {0x00010a00, 0x00010a03, 1}, - {0x00010a05, 0x00010a06, 1}, - {0x00010a0c, 0x00010a13, 1}, - {0x00010a15, 0x00010a17, 1}, - {0x00010a19, 0x00010a33, 1}, - {0x00010a38, 0x00010a3a, 1}, - {0x00010a3f, 0x00010a47, 1}, - {0x00010a50, 0x00010a58, 1}, - {0x00010a60, 0x00010a9f, 1}, - {0x00010ac0, 0x00010ae6, 1}, - {0x00010aeb, 0x00010af6, 1}, - {0x00010b00, 0x00010b35, 1}, - {0x00010b39, 0x00010b55, 1}, - {0x00010b58, 0x00010b72, 1}, - {0x00010b78, 0x00010b91, 1}, - {0x00010b99, 0x00010b9c, 1}, - {0x00010ba9, 0x00010baf, 1}, - {0x00010c00, 0x00010c48, 1}, - {0x00010e60, 0x00010e7e, 1}, - {0x00011000, 0x0001104d, 1}, - {0x00011052, 0x0001106f, 1}, - {0x0001107f, 0x000110c1, 1}, - {0x000110d0, 0x000110e8, 1}, - {0x000110f0, 0x000110f9, 1}, - {0x00011100, 0x00011134, 1}, - {0x00011136, 0x00011143, 1}, - {0x00011150, 0x00011176, 1}, - {0x00011180, 0x000111c8, 1}, - {0x000111cd, 0x000111d0, 3}, - {0x000111d1, 0x000111da, 1}, - {0x000111e1, 0x000111f4, 1}, - {0x00011200, 0x00011211, 1}, - {0x00011213, 0x0001123d, 1}, - {0x000112b0, 0x000112ea, 1}, - {0x000112f0, 0x000112f9, 1}, - {0x00011301, 0x00011303, 1}, - {0x00011305, 0x0001130c, 1}, - {0x0001130f, 0x00011310, 1}, - {0x00011313, 0x00011328, 1}, - {0x0001132a, 0x00011330, 1}, - {0x00011332, 0x00011333, 1}, - {0x00011335, 0x00011339, 1}, - {0x0001133c, 0x00011344, 1}, - {0x00011347, 0x00011348, 1}, - {0x0001134b, 0x0001134d, 1}, - {0x00011357, 0x0001135d, 6}, - {0x0001135e, 0x00011363, 1}, - {0x00011366, 0x0001136c, 1}, - {0x00011370, 0x00011374, 1}, - {0x00011480, 0x000114c7, 1}, - {0x000114d0, 0x000114d9, 1}, - {0x00011580, 0x000115b5, 1}, - {0x000115b8, 0x000115c9, 1}, - {0x00011600, 0x00011644, 1}, - {0x00011650, 0x00011659, 1}, - {0x00011680, 0x000116b7, 1}, - {0x000116c0, 0x000116c9, 1}, - {0x000118a0, 0x000118f2, 1}, - {0x000118ff, 0x00011ac0, 449}, - {0x00011ac1, 0x00011af8, 1}, - {0x00012000, 0x00012398, 1}, - {0x00012400, 0x0001246e, 1}, - {0x00012470, 0x00012474, 1}, - {0x00013000, 0x0001342e, 1}, - {0x00016800, 0x00016a38, 1}, - {0x00016a40, 0x00016a5e, 1}, - {0x00016a60, 0x00016a69, 1}, - {0x00016a6e, 0x00016a6f, 1}, - {0x00016ad0, 0x00016aed, 1}, - {0x00016af0, 0x00016af5, 1}, - {0x00016b00, 0x00016b45, 1}, - {0x00016b50, 0x00016b59, 1}, - {0x00016b5b, 0x00016b61, 1}, - {0x00016b63, 0x00016b77, 1}, - {0x00016b7d, 0x00016b8f, 1}, - {0x00016f00, 0x00016f44, 1}, - {0x00016f50, 0x00016f7e, 1}, - {0x00016f8f, 0x00016f9f, 1}, - {0x0001b000, 0x0001b001, 1}, - {0x0001bc00, 0x0001bc6a, 1}, - {0x0001bc70, 0x0001bc7c, 1}, - {0x0001bc80, 0x0001bc88, 1}, - {0x0001bc90, 0x0001bc99, 1}, - {0x0001bc9c, 0x0001bca3, 1}, - {0x0001d000, 0x0001d0f5, 1}, - {0x0001d100, 0x0001d126, 1}, - {0x0001d129, 0x0001d1dd, 1}, - {0x0001d200, 0x0001d245, 1}, - {0x0001d300, 0x0001d356, 1}, - {0x0001d360, 0x0001d371, 1}, - {0x0001d400, 0x0001d454, 1}, - {0x0001d456, 0x0001d49c, 1}, - {0x0001d49e, 0x0001d49f, 1}, - {0x0001d4a2, 0x0001d4a5, 3}, - {0x0001d4a6, 0x0001d4a9, 3}, - {0x0001d4aa, 0x0001d4ac, 1}, - {0x0001d4ae, 0x0001d4b9, 1}, - {0x0001d4bb, 0x0001d4bd, 2}, - {0x0001d4be, 0x0001d4c3, 1}, - {0x0001d4c5, 0x0001d505, 1}, - {0x0001d507, 0x0001d50a, 1}, - {0x0001d50d, 0x0001d514, 1}, - {0x0001d516, 0x0001d51c, 1}, - {0x0001d51e, 0x0001d539, 1}, - {0x0001d53b, 0x0001d53e, 1}, - {0x0001d540, 0x0001d544, 1}, - {0x0001d546, 0x0001d54a, 4}, - {0x0001d54b, 0x0001d550, 1}, - {0x0001d552, 0x0001d6a5, 1}, - {0x0001d6a8, 0x0001d7cb, 1}, - {0x0001d7ce, 0x0001d7ff, 1}, - {0x0001e800, 0x0001e8c4, 1}, - {0x0001e8c7, 0x0001e8d6, 1}, - {0x0001ee00, 0x0001ee03, 1}, - {0x0001ee05, 0x0001ee1f, 1}, - {0x0001ee21, 0x0001ee22, 1}, - {0x0001ee24, 0x0001ee27, 3}, - {0x0001ee29, 0x0001ee32, 1}, - {0x0001ee34, 0x0001ee37, 1}, - {0x0001ee39, 0x0001ee3b, 2}, - {0x0001ee42, 0x0001ee47, 5}, - {0x0001ee49, 0x0001ee4d, 2}, - {0x0001ee4e, 0x0001ee4f, 1}, - {0x0001ee51, 0x0001ee52, 1}, - {0x0001ee54, 0x0001ee57, 3}, - {0x0001ee59, 0x0001ee61, 2}, - {0x0001ee62, 0x0001ee64, 2}, - {0x0001ee67, 0x0001ee6a, 1}, - {0x0001ee6c, 0x0001ee72, 1}, - {0x0001ee74, 0x0001ee77, 1}, - {0x0001ee79, 0x0001ee7c, 1}, - {0x0001ee7e, 0x0001ee80, 2}, - {0x0001ee81, 0x0001ee89, 1}, - {0x0001ee8b, 0x0001ee9b, 1}, - {0x0001eea1, 0x0001eea3, 1}, - {0x0001eea5, 0x0001eea9, 1}, - {0x0001eeab, 0x0001eebb, 1}, - {0x0001eef0, 0x0001eef1, 1}, - {0x0001f000, 0x0001f02b, 1}, - {0x0001f030, 0x0001f093, 1}, - {0x0001f0a0, 0x0001f0ae, 1}, - {0x0001f0b1, 0x0001f0bf, 1}, - {0x0001f0c1, 0x0001f0cf, 1}, - {0x0001f0d1, 0x0001f0f5, 1}, - {0x0001f100, 0x0001f10c, 1}, - {0x0001f110, 0x0001f12e, 1}, - {0x0001f130, 0x0001f16b, 1}, - {0x0001f170, 0x0001f19a, 1}, - {0x0001f1e6, 0x0001f202, 1}, - {0x0001f210, 0x0001f23a, 1}, - {0x0001f240, 0x0001f248, 1}, - {0x0001f250, 0x0001f251, 1}, - {0x0001f300, 0x0001f32c, 1}, - {0x0001f330, 0x0001f37d, 1}, - {0x0001f380, 0x0001f3ce, 1}, - {0x0001f3d4, 0x0001f3f7, 1}, - {0x0001f400, 0x0001f4fe, 1}, - {0x0001f500, 0x0001f54a, 1}, - {0x0001f550, 0x0001f579, 1}, - {0x0001f57b, 0x0001f5a3, 1}, - {0x0001f5a5, 0x0001f642, 1}, - {0x0001f645, 0x0001f6cf, 1}, - {0x0001f6e0, 0x0001f6ec, 1}, - {0x0001f6f0, 0x0001f6f3, 1}, - {0x0001f700, 0x0001f773, 1}, - {0x0001f780, 0x0001f7d4, 1}, - {0x0001f800, 0x0001f80b, 1}, - {0x0001f810, 0x0001f847, 1}, - {0x0001f850, 0x0001f859, 1}, - {0x0001f860, 0x0001f887, 1}, - {0x0001f890, 0x0001f8ad, 1}, - {0x00020000, 0x0002a6d6, 1}, - {0x0002a700, 0x0002b734, 1}, - {0x0002b740, 0x0002b81d, 1}, - {0x0002f800, 0x0002fa1d, 1}, - {0x000e0001, 0x000e0020, 31}, - {0x000e0021, 0x000e007f, 1}, - {0x000e0100, 0x000e01ef, 1}, - {0x000f0000, 0x000ffffd, 1}, - {0x00100000, 0x0010fffd, 1}, - }, - LatinOffset: 0, -} - -// size 5048 bytes (4 KiB) -var assigned8_0_0 = &unicode.RangeTable{ - R16: []unicode.Range16{ - {0x0000, 0x0377, 1}, - {0x037a, 0x037f, 1}, - {0x0384, 0x038a, 1}, - {0x038c, 0x038e, 2}, - {0x038f, 0x03a1, 1}, - {0x03a3, 0x052f, 1}, - {0x0531, 0x0556, 1}, - {0x0559, 0x055f, 1}, - {0x0561, 0x0587, 1}, - {0x0589, 0x058a, 1}, - {0x058d, 0x058f, 1}, - {0x0591, 0x05c7, 1}, - {0x05d0, 0x05ea, 1}, - {0x05f0, 0x05f4, 1}, - {0x0600, 0x061c, 1}, - {0x061e, 0x070d, 1}, - {0x070f, 0x074a, 1}, - {0x074d, 0x07b1, 1}, - {0x07c0, 0x07fa, 1}, - {0x0800, 0x082d, 1}, - {0x0830, 0x083e, 1}, - {0x0840, 0x085b, 1}, - {0x085e, 0x08a0, 66}, - {0x08a1, 0x08b4, 1}, - {0x08e3, 0x0983, 1}, - {0x0985, 0x098c, 1}, - {0x098f, 0x0990, 1}, - {0x0993, 0x09a8, 1}, - {0x09aa, 0x09b0, 1}, - {0x09b2, 0x09b6, 4}, - {0x09b7, 0x09b9, 1}, - {0x09bc, 0x09c4, 1}, - {0x09c7, 0x09c8, 1}, - {0x09cb, 0x09ce, 1}, - {0x09d7, 0x09dc, 5}, - {0x09dd, 0x09df, 2}, - {0x09e0, 0x09e3, 1}, - {0x09e6, 0x09fb, 1}, - {0x0a01, 0x0a03, 1}, - {0x0a05, 0x0a0a, 1}, - {0x0a0f, 0x0a10, 1}, - {0x0a13, 0x0a28, 1}, - {0x0a2a, 0x0a30, 1}, - {0x0a32, 0x0a33, 1}, - {0x0a35, 0x0a36, 1}, - {0x0a38, 0x0a39, 1}, - {0x0a3c, 0x0a3e, 2}, - {0x0a3f, 0x0a42, 1}, - {0x0a47, 0x0a48, 1}, - {0x0a4b, 0x0a4d, 1}, - {0x0a51, 0x0a59, 8}, - {0x0a5a, 0x0a5c, 1}, - {0x0a5e, 0x0a66, 8}, - {0x0a67, 0x0a75, 1}, - {0x0a81, 0x0a83, 1}, - {0x0a85, 0x0a8d, 1}, - {0x0a8f, 0x0a91, 1}, - {0x0a93, 0x0aa8, 1}, - {0x0aaa, 0x0ab0, 1}, - {0x0ab2, 0x0ab3, 1}, - {0x0ab5, 0x0ab9, 1}, - {0x0abc, 0x0ac5, 1}, - {0x0ac7, 0x0ac9, 1}, - {0x0acb, 0x0acd, 1}, - {0x0ad0, 0x0ae0, 16}, - {0x0ae1, 0x0ae3, 1}, - {0x0ae6, 0x0af1, 1}, - {0x0af9, 0x0b01, 8}, - {0x0b02, 0x0b03, 1}, - {0x0b05, 0x0b0c, 1}, - {0x0b0f, 0x0b10, 1}, - {0x0b13, 0x0b28, 1}, - {0x0b2a, 0x0b30, 1}, - {0x0b32, 0x0b33, 1}, - {0x0b35, 0x0b39, 1}, - {0x0b3c, 0x0b44, 1}, - {0x0b47, 0x0b48, 1}, - {0x0b4b, 0x0b4d, 1}, - {0x0b56, 0x0b57, 1}, - {0x0b5c, 0x0b5d, 1}, - {0x0b5f, 0x0b63, 1}, - {0x0b66, 0x0b77, 1}, - {0x0b82, 0x0b83, 1}, - {0x0b85, 0x0b8a, 1}, - {0x0b8e, 0x0b90, 1}, - {0x0b92, 0x0b95, 1}, - {0x0b99, 0x0b9a, 1}, - {0x0b9c, 0x0b9e, 2}, - {0x0b9f, 0x0ba3, 4}, - {0x0ba4, 0x0ba8, 4}, - {0x0ba9, 0x0baa, 1}, - {0x0bae, 0x0bb9, 1}, - {0x0bbe, 0x0bc2, 1}, - {0x0bc6, 0x0bc8, 1}, - {0x0bca, 0x0bcd, 1}, - {0x0bd0, 0x0bd7, 7}, - {0x0be6, 0x0bfa, 1}, - {0x0c00, 0x0c03, 1}, - {0x0c05, 0x0c0c, 1}, - {0x0c0e, 0x0c10, 1}, - {0x0c12, 0x0c28, 1}, - {0x0c2a, 0x0c39, 1}, - {0x0c3d, 0x0c44, 1}, - {0x0c46, 0x0c48, 1}, - {0x0c4a, 0x0c4d, 1}, - {0x0c55, 0x0c56, 1}, - {0x0c58, 0x0c5a, 1}, - {0x0c60, 0x0c63, 1}, - {0x0c66, 0x0c6f, 1}, - {0x0c78, 0x0c7f, 1}, - {0x0c81, 0x0c83, 1}, - {0x0c85, 0x0c8c, 1}, - {0x0c8e, 0x0c90, 1}, - {0x0c92, 0x0ca8, 1}, - {0x0caa, 0x0cb3, 1}, - {0x0cb5, 0x0cb9, 1}, - {0x0cbc, 0x0cc4, 1}, - {0x0cc6, 0x0cc8, 1}, - {0x0cca, 0x0ccd, 1}, - {0x0cd5, 0x0cd6, 1}, - {0x0cde, 0x0ce0, 2}, - {0x0ce1, 0x0ce3, 1}, - {0x0ce6, 0x0cef, 1}, - {0x0cf1, 0x0cf2, 1}, - {0x0d01, 0x0d03, 1}, - {0x0d05, 0x0d0c, 1}, - {0x0d0e, 0x0d10, 1}, - {0x0d12, 0x0d3a, 1}, - {0x0d3d, 0x0d44, 1}, - {0x0d46, 0x0d48, 1}, - {0x0d4a, 0x0d4e, 1}, - {0x0d57, 0x0d5f, 8}, - {0x0d60, 0x0d63, 1}, - {0x0d66, 0x0d75, 1}, - {0x0d79, 0x0d7f, 1}, - {0x0d82, 0x0d83, 1}, - {0x0d85, 0x0d96, 1}, - {0x0d9a, 0x0db1, 1}, - {0x0db3, 0x0dbb, 1}, - {0x0dbd, 0x0dc0, 3}, - {0x0dc1, 0x0dc6, 1}, - {0x0dca, 0x0dcf, 5}, - {0x0dd0, 0x0dd4, 1}, - {0x0dd6, 0x0dd8, 2}, - {0x0dd9, 0x0ddf, 1}, - {0x0de6, 0x0def, 1}, - {0x0df2, 0x0df4, 1}, - {0x0e01, 0x0e3a, 1}, - {0x0e3f, 0x0e5b, 1}, - {0x0e81, 0x0e82, 1}, - {0x0e84, 0x0e87, 3}, - {0x0e88, 0x0e8a, 2}, - {0x0e8d, 0x0e94, 7}, - {0x0e95, 0x0e97, 1}, - {0x0e99, 0x0e9f, 1}, - {0x0ea1, 0x0ea3, 1}, - {0x0ea5, 0x0ea7, 2}, - {0x0eaa, 0x0eab, 1}, - {0x0ead, 0x0eb9, 1}, - {0x0ebb, 0x0ebd, 1}, - {0x0ec0, 0x0ec4, 1}, - {0x0ec6, 0x0ec8, 2}, - {0x0ec9, 0x0ecd, 1}, - {0x0ed0, 0x0ed9, 1}, - {0x0edc, 0x0edf, 1}, - {0x0f00, 0x0f47, 1}, - {0x0f49, 0x0f6c, 1}, - {0x0f71, 0x0f97, 1}, - {0x0f99, 0x0fbc, 1}, - {0x0fbe, 0x0fcc, 1}, - {0x0fce, 0x0fda, 1}, - {0x1000, 0x10c5, 1}, - {0x10c7, 0x10cd, 6}, - {0x10d0, 0x1248, 1}, - {0x124a, 0x124d, 1}, - {0x1250, 0x1256, 1}, - {0x1258, 0x125a, 2}, - {0x125b, 0x125d, 1}, - {0x1260, 0x1288, 1}, - {0x128a, 0x128d, 1}, - {0x1290, 0x12b0, 1}, - {0x12b2, 0x12b5, 1}, - {0x12b8, 0x12be, 1}, - {0x12c0, 0x12c2, 2}, - {0x12c3, 0x12c5, 1}, - {0x12c8, 0x12d6, 1}, - {0x12d8, 0x1310, 1}, - {0x1312, 0x1315, 1}, - {0x1318, 0x135a, 1}, - {0x135d, 0x137c, 1}, - {0x1380, 0x1399, 1}, - {0x13a0, 0x13f5, 1}, - {0x13f8, 0x13fd, 1}, - {0x1400, 0x169c, 1}, - {0x16a0, 0x16f8, 1}, - {0x1700, 0x170c, 1}, - {0x170e, 0x1714, 1}, - {0x1720, 0x1736, 1}, - {0x1740, 0x1753, 1}, - {0x1760, 0x176c, 1}, - {0x176e, 0x1770, 1}, - {0x1772, 0x1773, 1}, - {0x1780, 0x17dd, 1}, - {0x17e0, 0x17e9, 1}, - {0x17f0, 0x17f9, 1}, - {0x1800, 0x180e, 1}, - {0x1810, 0x1819, 1}, - {0x1820, 0x1877, 1}, - {0x1880, 0x18aa, 1}, - {0x18b0, 0x18f5, 1}, - {0x1900, 0x191e, 1}, - {0x1920, 0x192b, 1}, - {0x1930, 0x193b, 1}, - {0x1940, 0x1944, 4}, - {0x1945, 0x196d, 1}, - {0x1970, 0x1974, 1}, - {0x1980, 0x19ab, 1}, - {0x19b0, 0x19c9, 1}, - {0x19d0, 0x19da, 1}, - {0x19de, 0x1a1b, 1}, - {0x1a1e, 0x1a5e, 1}, - {0x1a60, 0x1a7c, 1}, - {0x1a7f, 0x1a89, 1}, - {0x1a90, 0x1a99, 1}, - {0x1aa0, 0x1aad, 1}, - {0x1ab0, 0x1abe, 1}, - {0x1b00, 0x1b4b, 1}, - {0x1b50, 0x1b7c, 1}, - {0x1b80, 0x1bf3, 1}, - {0x1bfc, 0x1c37, 1}, - {0x1c3b, 0x1c49, 1}, - {0x1c4d, 0x1c7f, 1}, - {0x1cc0, 0x1cc7, 1}, - {0x1cd0, 0x1cf6, 1}, - {0x1cf8, 0x1cf9, 1}, - {0x1d00, 0x1df5, 1}, - {0x1dfc, 0x1f15, 1}, - {0x1f18, 0x1f1d, 1}, - {0x1f20, 0x1f45, 1}, - {0x1f48, 0x1f4d, 1}, - {0x1f50, 0x1f57, 1}, - {0x1f59, 0x1f5f, 2}, - {0x1f60, 0x1f7d, 1}, - {0x1f80, 0x1fb4, 1}, - {0x1fb6, 0x1fc4, 1}, - {0x1fc6, 0x1fd3, 1}, - {0x1fd6, 0x1fdb, 1}, - {0x1fdd, 0x1fef, 1}, - {0x1ff2, 0x1ff4, 1}, - {0x1ff6, 0x1ffe, 1}, - {0x2000, 0x2064, 1}, - {0x2066, 0x2071, 1}, - {0x2074, 0x208e, 1}, - {0x2090, 0x209c, 1}, - {0x20a0, 0x20be, 1}, - {0x20d0, 0x20f0, 1}, - {0x2100, 0x218b, 1}, - {0x2190, 0x23fa, 1}, - {0x2400, 0x2426, 1}, - {0x2440, 0x244a, 1}, - {0x2460, 0x2b73, 1}, - {0x2b76, 0x2b95, 1}, - {0x2b98, 0x2bb9, 1}, - {0x2bbd, 0x2bc8, 1}, - {0x2bca, 0x2bd1, 1}, - {0x2bec, 0x2bef, 1}, - {0x2c00, 0x2c2e, 1}, - {0x2c30, 0x2c5e, 1}, - {0x2c60, 0x2cf3, 1}, - {0x2cf9, 0x2d25, 1}, - {0x2d27, 0x2d2d, 6}, - {0x2d30, 0x2d67, 1}, - {0x2d6f, 0x2d70, 1}, - {0x2d7f, 0x2d96, 1}, - {0x2da0, 0x2da6, 1}, - {0x2da8, 0x2dae, 1}, - {0x2db0, 0x2db6, 1}, - {0x2db8, 0x2dbe, 1}, - {0x2dc0, 0x2dc6, 1}, - {0x2dc8, 0x2dce, 1}, - {0x2dd0, 0x2dd6, 1}, - {0x2dd8, 0x2dde, 1}, - {0x2de0, 0x2e42, 1}, - {0x2e80, 0x2e99, 1}, - {0x2e9b, 0x2ef3, 1}, - {0x2f00, 0x2fd5, 1}, - {0x2ff0, 0x2ffb, 1}, - {0x3000, 0x303f, 1}, - {0x3041, 0x3096, 1}, - {0x3099, 0x30ff, 1}, - {0x3105, 0x312d, 1}, - {0x3131, 0x318e, 1}, - {0x3190, 0x31ba, 1}, - {0x31c0, 0x31e3, 1}, - {0x31f0, 0x321e, 1}, - {0x3220, 0x32fe, 1}, - {0x3300, 0x4db5, 1}, - {0x4dc0, 0x9fd5, 1}, - {0xa000, 0xa48c, 1}, - {0xa490, 0xa4c6, 1}, - {0xa4d0, 0xa62b, 1}, - {0xa640, 0xa6f7, 1}, - {0xa700, 0xa7ad, 1}, - {0xa7b0, 0xa7b7, 1}, - {0xa7f7, 0xa82b, 1}, - {0xa830, 0xa839, 1}, - {0xa840, 0xa877, 1}, - {0xa880, 0xa8c4, 1}, - {0xa8ce, 0xa8d9, 1}, - {0xa8e0, 0xa8fd, 1}, - {0xa900, 0xa953, 1}, - {0xa95f, 0xa97c, 1}, - {0xa980, 0xa9cd, 1}, - {0xa9cf, 0xa9d9, 1}, - {0xa9de, 0xa9fe, 1}, - {0xaa00, 0xaa36, 1}, - {0xaa40, 0xaa4d, 1}, - {0xaa50, 0xaa59, 1}, - {0xaa5c, 0xaac2, 1}, - {0xaadb, 0xaaf6, 1}, - {0xab01, 0xab06, 1}, - {0xab09, 0xab0e, 1}, - {0xab11, 0xab16, 1}, - {0xab20, 0xab26, 1}, - {0xab28, 0xab2e, 1}, - {0xab30, 0xab65, 1}, - {0xab70, 0xabed, 1}, - {0xabf0, 0xabf9, 1}, - {0xac00, 0xd7a3, 1}, - {0xd7b0, 0xd7c6, 1}, - {0xd7cb, 0xd7fb, 1}, - {0xd800, 0xfa6d, 1}, - {0xfa70, 0xfad9, 1}, - {0xfb00, 0xfb06, 1}, - {0xfb13, 0xfb17, 1}, - {0xfb1d, 0xfb36, 1}, - {0xfb38, 0xfb3c, 1}, - {0xfb3e, 0xfb40, 2}, - {0xfb41, 0xfb43, 2}, - {0xfb44, 0xfb46, 2}, - {0xfb47, 0xfbc1, 1}, - {0xfbd3, 0xfd3f, 1}, - {0xfd50, 0xfd8f, 1}, - {0xfd92, 0xfdc7, 1}, - {0xfdf0, 0xfdfd, 1}, - {0xfe00, 0xfe19, 1}, - {0xfe20, 0xfe52, 1}, - {0xfe54, 0xfe66, 1}, - {0xfe68, 0xfe6b, 1}, - {0xfe70, 0xfe74, 1}, - {0xfe76, 0xfefc, 1}, - {0xfeff, 0xff01, 2}, - {0xff02, 0xffbe, 1}, - {0xffc2, 0xffc7, 1}, - {0xffca, 0xffcf, 1}, - {0xffd2, 0xffd7, 1}, - {0xffda, 0xffdc, 1}, - {0xffe0, 0xffe6, 1}, - {0xffe8, 0xffee, 1}, - {0xfff9, 0xfffd, 1}, - }, - R32: []unicode.Range32{ - {0x00010000, 0x0001000b, 1}, - {0x0001000d, 0x00010026, 1}, - {0x00010028, 0x0001003a, 1}, - {0x0001003c, 0x0001003d, 1}, - {0x0001003f, 0x0001004d, 1}, - {0x00010050, 0x0001005d, 1}, - {0x00010080, 0x000100fa, 1}, - {0x00010100, 0x00010102, 1}, - {0x00010107, 0x00010133, 1}, - {0x00010137, 0x0001018c, 1}, - {0x00010190, 0x0001019b, 1}, - {0x000101a0, 0x000101d0, 48}, - {0x000101d1, 0x000101fd, 1}, - {0x00010280, 0x0001029c, 1}, - {0x000102a0, 0x000102d0, 1}, - {0x000102e0, 0x000102fb, 1}, - {0x00010300, 0x00010323, 1}, - {0x00010330, 0x0001034a, 1}, - {0x00010350, 0x0001037a, 1}, - {0x00010380, 0x0001039d, 1}, - {0x0001039f, 0x000103c3, 1}, - {0x000103c8, 0x000103d5, 1}, - {0x00010400, 0x0001049d, 1}, - {0x000104a0, 0x000104a9, 1}, - {0x00010500, 0x00010527, 1}, - {0x00010530, 0x00010563, 1}, - {0x0001056f, 0x00010600, 145}, - {0x00010601, 0x00010736, 1}, - {0x00010740, 0x00010755, 1}, - {0x00010760, 0x00010767, 1}, - {0x00010800, 0x00010805, 1}, - {0x00010808, 0x0001080a, 2}, - {0x0001080b, 0x00010835, 1}, - {0x00010837, 0x00010838, 1}, - {0x0001083c, 0x0001083f, 3}, - {0x00010840, 0x00010855, 1}, - {0x00010857, 0x0001089e, 1}, - {0x000108a7, 0x000108af, 1}, - {0x000108e0, 0x000108f2, 1}, - {0x000108f4, 0x000108f5, 1}, - {0x000108fb, 0x0001091b, 1}, - {0x0001091f, 0x00010939, 1}, - {0x0001093f, 0x00010980, 65}, - {0x00010981, 0x000109b7, 1}, - {0x000109bc, 0x000109cf, 1}, - {0x000109d2, 0x00010a03, 1}, - {0x00010a05, 0x00010a06, 1}, - {0x00010a0c, 0x00010a13, 1}, - {0x00010a15, 0x00010a17, 1}, - {0x00010a19, 0x00010a33, 1}, - {0x00010a38, 0x00010a3a, 1}, - {0x00010a3f, 0x00010a47, 1}, - {0x00010a50, 0x00010a58, 1}, - {0x00010a60, 0x00010a9f, 1}, - {0x00010ac0, 0x00010ae6, 1}, - {0x00010aeb, 0x00010af6, 1}, - {0x00010b00, 0x00010b35, 1}, - {0x00010b39, 0x00010b55, 1}, - {0x00010b58, 0x00010b72, 1}, - {0x00010b78, 0x00010b91, 1}, - {0x00010b99, 0x00010b9c, 1}, - {0x00010ba9, 0x00010baf, 1}, - {0x00010c00, 0x00010c48, 1}, - {0x00010c80, 0x00010cb2, 1}, - {0x00010cc0, 0x00010cf2, 1}, - {0x00010cfa, 0x00010cff, 1}, - {0x00010e60, 0x00010e7e, 1}, - {0x00011000, 0x0001104d, 1}, - {0x00011052, 0x0001106f, 1}, - {0x0001107f, 0x000110c1, 1}, - {0x000110d0, 0x000110e8, 1}, - {0x000110f0, 0x000110f9, 1}, - {0x00011100, 0x00011134, 1}, - {0x00011136, 0x00011143, 1}, - {0x00011150, 0x00011176, 1}, - {0x00011180, 0x000111cd, 1}, - {0x000111d0, 0x000111df, 1}, - {0x000111e1, 0x000111f4, 1}, - {0x00011200, 0x00011211, 1}, - {0x00011213, 0x0001123d, 1}, - {0x00011280, 0x00011286, 1}, - {0x00011288, 0x0001128a, 2}, - {0x0001128b, 0x0001128d, 1}, - {0x0001128f, 0x0001129d, 1}, - {0x0001129f, 0x000112a9, 1}, - {0x000112b0, 0x000112ea, 1}, - {0x000112f0, 0x000112f9, 1}, - {0x00011300, 0x00011303, 1}, - {0x00011305, 0x0001130c, 1}, - {0x0001130f, 0x00011310, 1}, - {0x00011313, 0x00011328, 1}, - {0x0001132a, 0x00011330, 1}, - {0x00011332, 0x00011333, 1}, - {0x00011335, 0x00011339, 1}, - {0x0001133c, 0x00011344, 1}, - {0x00011347, 0x00011348, 1}, - {0x0001134b, 0x0001134d, 1}, - {0x00011350, 0x00011357, 7}, - {0x0001135d, 0x00011363, 1}, - {0x00011366, 0x0001136c, 1}, - {0x00011370, 0x00011374, 1}, - {0x00011480, 0x000114c7, 1}, - {0x000114d0, 0x000114d9, 1}, - {0x00011580, 0x000115b5, 1}, - {0x000115b8, 0x000115dd, 1}, - {0x00011600, 0x00011644, 1}, - {0x00011650, 0x00011659, 1}, - {0x00011680, 0x000116b7, 1}, - {0x000116c0, 0x000116c9, 1}, - {0x00011700, 0x00011719, 1}, - {0x0001171d, 0x0001172b, 1}, - {0x00011730, 0x0001173f, 1}, - {0x000118a0, 0x000118f2, 1}, - {0x000118ff, 0x00011ac0, 449}, - {0x00011ac1, 0x00011af8, 1}, - {0x00012000, 0x00012399, 1}, - {0x00012400, 0x0001246e, 1}, - {0x00012470, 0x00012474, 1}, - {0x00012480, 0x00012543, 1}, - {0x00013000, 0x0001342e, 1}, - {0x00014400, 0x00014646, 1}, - {0x00016800, 0x00016a38, 1}, - {0x00016a40, 0x00016a5e, 1}, - {0x00016a60, 0x00016a69, 1}, - {0x00016a6e, 0x00016a6f, 1}, - {0x00016ad0, 0x00016aed, 1}, - {0x00016af0, 0x00016af5, 1}, - {0x00016b00, 0x00016b45, 1}, - {0x00016b50, 0x00016b59, 1}, - {0x00016b5b, 0x00016b61, 1}, - {0x00016b63, 0x00016b77, 1}, - {0x00016b7d, 0x00016b8f, 1}, - {0x00016f00, 0x00016f44, 1}, - {0x00016f50, 0x00016f7e, 1}, - {0x00016f8f, 0x00016f9f, 1}, - {0x0001b000, 0x0001b001, 1}, - {0x0001bc00, 0x0001bc6a, 1}, - {0x0001bc70, 0x0001bc7c, 1}, - {0x0001bc80, 0x0001bc88, 1}, - {0x0001bc90, 0x0001bc99, 1}, - {0x0001bc9c, 0x0001bca3, 1}, - {0x0001d000, 0x0001d0f5, 1}, - {0x0001d100, 0x0001d126, 1}, - {0x0001d129, 0x0001d1e8, 1}, - {0x0001d200, 0x0001d245, 1}, - {0x0001d300, 0x0001d356, 1}, - {0x0001d360, 0x0001d371, 1}, - {0x0001d400, 0x0001d454, 1}, - {0x0001d456, 0x0001d49c, 1}, - {0x0001d49e, 0x0001d49f, 1}, - {0x0001d4a2, 0x0001d4a5, 3}, - {0x0001d4a6, 0x0001d4a9, 3}, - {0x0001d4aa, 0x0001d4ac, 1}, - {0x0001d4ae, 0x0001d4b9, 1}, - {0x0001d4bb, 0x0001d4bd, 2}, - {0x0001d4be, 0x0001d4c3, 1}, - {0x0001d4c5, 0x0001d505, 1}, - {0x0001d507, 0x0001d50a, 1}, - {0x0001d50d, 0x0001d514, 1}, - {0x0001d516, 0x0001d51c, 1}, - {0x0001d51e, 0x0001d539, 1}, - {0x0001d53b, 0x0001d53e, 1}, - {0x0001d540, 0x0001d544, 1}, - {0x0001d546, 0x0001d54a, 4}, - {0x0001d54b, 0x0001d550, 1}, - {0x0001d552, 0x0001d6a5, 1}, - {0x0001d6a8, 0x0001d7cb, 1}, - {0x0001d7ce, 0x0001da8b, 1}, - {0x0001da9b, 0x0001da9f, 1}, - {0x0001daa1, 0x0001daaf, 1}, - {0x0001e800, 0x0001e8c4, 1}, - {0x0001e8c7, 0x0001e8d6, 1}, - {0x0001ee00, 0x0001ee03, 1}, - {0x0001ee05, 0x0001ee1f, 1}, - {0x0001ee21, 0x0001ee22, 1}, - {0x0001ee24, 0x0001ee27, 3}, - {0x0001ee29, 0x0001ee32, 1}, - {0x0001ee34, 0x0001ee37, 1}, - {0x0001ee39, 0x0001ee3b, 2}, - {0x0001ee42, 0x0001ee47, 5}, - {0x0001ee49, 0x0001ee4d, 2}, - {0x0001ee4e, 0x0001ee4f, 1}, - {0x0001ee51, 0x0001ee52, 1}, - {0x0001ee54, 0x0001ee57, 3}, - {0x0001ee59, 0x0001ee61, 2}, - {0x0001ee62, 0x0001ee64, 2}, - {0x0001ee67, 0x0001ee6a, 1}, - {0x0001ee6c, 0x0001ee72, 1}, - {0x0001ee74, 0x0001ee77, 1}, - {0x0001ee79, 0x0001ee7c, 1}, - {0x0001ee7e, 0x0001ee80, 2}, - {0x0001ee81, 0x0001ee89, 1}, - {0x0001ee8b, 0x0001ee9b, 1}, - {0x0001eea1, 0x0001eea3, 1}, - {0x0001eea5, 0x0001eea9, 1}, - {0x0001eeab, 0x0001eebb, 1}, - {0x0001eef0, 0x0001eef1, 1}, - {0x0001f000, 0x0001f02b, 1}, - {0x0001f030, 0x0001f093, 1}, - {0x0001f0a0, 0x0001f0ae, 1}, - {0x0001f0b1, 0x0001f0bf, 1}, - {0x0001f0c1, 0x0001f0cf, 1}, - {0x0001f0d1, 0x0001f0f5, 1}, - {0x0001f100, 0x0001f10c, 1}, - {0x0001f110, 0x0001f12e, 1}, - {0x0001f130, 0x0001f16b, 1}, - {0x0001f170, 0x0001f19a, 1}, - {0x0001f1e6, 0x0001f202, 1}, - {0x0001f210, 0x0001f23a, 1}, - {0x0001f240, 0x0001f248, 1}, - {0x0001f250, 0x0001f251, 1}, - {0x0001f300, 0x0001f579, 1}, - {0x0001f57b, 0x0001f5a3, 1}, - {0x0001f5a5, 0x0001f6d0, 1}, - {0x0001f6e0, 0x0001f6ec, 1}, - {0x0001f6f0, 0x0001f6f3, 1}, - {0x0001f700, 0x0001f773, 1}, - {0x0001f780, 0x0001f7d4, 1}, - {0x0001f800, 0x0001f80b, 1}, - {0x0001f810, 0x0001f847, 1}, - {0x0001f850, 0x0001f859, 1}, - {0x0001f860, 0x0001f887, 1}, - {0x0001f890, 0x0001f8ad, 1}, - {0x0001f910, 0x0001f918, 1}, - {0x0001f980, 0x0001f984, 1}, - {0x0001f9c0, 0x00020000, 1600}, - {0x00020001, 0x0002a6d6, 1}, - {0x0002a700, 0x0002b734, 1}, - {0x0002b740, 0x0002b81d, 1}, - {0x0002b820, 0x0002cea1, 1}, - {0x0002f800, 0x0002fa1d, 1}, - {0x000e0001, 0x000e0020, 31}, - {0x000e0021, 0x000e007f, 1}, - {0x000e0100, 0x000e01ef, 1}, - {0x000f0000, 0x000ffffd, 1}, - {0x00100000, 0x0010fffd, 1}, - }, - LatinOffset: 0, -} - -// Total size 38858 bytes (37 KiB) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/common_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/common_test.go deleted file mode 100644 index a5fe830c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/common_test.go +++ /dev/null @@ -1,106 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package width - -// This code is shared between the main code generator and the test code. - -import ( - "flag" - "log" - "strconv" - "strings" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/ucd" -) - -var ( - outputFile = flag.String("out", "tables.go", "output file") -) - -var typeMap = map[string]elem{ - "A": tagAmbiguous, - "N": tagNeutral, - "Na": tagNarrow, - "W": tagWide, - "F": tagFullwidth, - "H": tagHalfwidth, -} - -// getWidthData calls f for every entry for which it is defined. -// -// f may be called multiple times for the same rune. The last call to f is the -// correct value. f is not called for all runes. The default tag type is -// Neutral. -func getWidthData(f func(r rune, tag elem, alt rune)) { - // Set the default values for Unified Ideographs. In line with Annex 11, - // we encode full ranges instead of the defined runes in Unified_Ideograph. - for _, b := range []struct{ lo, hi rune }{ - {0x4E00, 0x9FFF}, // the CJK Unified Ideographs block, - {0x3400, 0x4DBF}, // the CJK Unified Ideographs Externsion A block, - {0xF900, 0xFAFF}, // the CJK Compatibility Ideographs block, - {0x20000, 0x2FFFF}, // the Supplementary Ideographic Plane, - {0x30000, 0x3FFFF}, // the Tertiary Ideographic Plane, - } { - for r := b.lo; r <= b.hi; r++ { - f(r, tagWide, 0) - } - } - - inverse := map[rune]rune{} - maps := map[string]bool{ - "<wide>": true, - "<narrow>": true, - } - - // We cannot reuse package norm's decomposition, as we need an unexpanded - // decomposition. We make use of the opportunity to verify that the - // decomposition type is as expected. - parse("UnicodeData.txt", func(p *ucd.Parser) { - r := p.Rune(0) - s := strings.SplitN(p.String(ucd.DecompMapping), " ", 2) - if !maps[s[0]] { - return - } - x, err := strconv.ParseUint(s[1], 16, 32) - if err != nil { - log.Fatalf("Error parsing rune %q", s[1]) - } - if inverse[r] != 0 || inverse[rune(x)] != 0 { - log.Fatalf("Circular dependency in mapping between %U and %U", r, x) - } - inverse[r] = rune(x) - inverse[rune(x)] = r - }) - - // <rune range>;<type> - parse("EastAsianWidth.txt", func(p *ucd.Parser) { - tag, ok := typeMap[p.String(1)] - if !ok { - log.Fatalf("Unknown width type %q", p.String(1)) - } - r := p.Rune(0) - alt, ok := inverse[r] - if tag == tagFullwidth || tag == tagHalfwidth && r != wonSign { - tag |= tagNeedsFold - if !ok { - log.Fatalf("Narrow or wide rune %U has no decomposition", r) - } - } - f(r, tag, alt) - }) -} - -// parse calls f for each entry in the given UCD file. -func parse(filename string, f func(p *ucd.Parser)) { - r := gen.OpenUCDFile(filename) - defer r.Close() - - p := ucd.New(r) - for p.Next() { - f(p) - } - if err := p.Err(); err != nil { - log.Fatal(err) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/example_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/example_test.go deleted file mode 100644 index 5a7b1c8a..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/example_test.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package width_test - -import ( - "fmt" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width" -) - -func ExampleTransformer_fold() { - s := "abヲ₩○¥A" - f := width.Fold.String(s) - fmt.Printf("%U: %s\n", []rune(s), s) - fmt.Printf("%U: %s\n", []rune(f), f) - - // Output: - // [U+0061 U+0062 U+FF66 U+FFE6 U+FFEE U+FFE5 U+FF21]: abヲ₩○¥A - // [U+0061 U+0062 U+30F2 U+20A9 U+25CB U+00A5 U+0041]: abヲ₩○¥A -} - -func ExampleTransformer_widen() { - s := "ab¥ヲ₩○" - w := width.Widen.String(s) - fmt.Printf("%U: %s\n", []rune(s), s) - fmt.Printf("%U: %s\n", []rune(w), w) - - // Output: - // [U+0061 U+0062 U+00A5 U+FF66 U+20A9 U+FFEE]: ab¥ヲ₩○ - // [U+FF41 U+FF42 U+FFE5 U+30F2 U+FFE6 U+25CB]: ï½ï½‚¥ヲ₩○ -} - -func ExampleTransformer_narrow() { - s := "abヲ₩○¥A" - n := width.Narrow.String(s) - fmt.Printf("%U: %s\n", []rune(s), s) - fmt.Printf("%U: %s\n", []rune(n), n) - - // Ambiguous characters with a halfwidth equivalent get mapped as well. - s = "â†" - n = width.Narrow.String(s) - fmt.Printf("%U: %s\n", []rune(s), s) - fmt.Printf("%U: %s\n", []rune(n), n) - - // Output: - // [U+0061 U+0062 U+30F2 U+FFE6 U+25CB U+FFE5 U+FF21]: abヲ₩○¥A - // [U+0061 U+0062 U+FF66 U+20A9 U+FFEE U+00A5 U+0041]: abヲ₩○¥A - // [U+2190]: ↠- // [U+FFE9]: ï¿© -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/gen.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/gen.go deleted file mode 100644 index 89aaba82..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/gen.go +++ /dev/null @@ -1,133 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// This program generates the trie for width operations. The generated table -// includes width category information as well as the normalization mappings. -package main - -import ( - "bytes" - "fmt" - "io" - "io/ioutil" - "log" - "math" - "unicode/utf8" - - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/triegen" -) - -// See gen_common.go for flags. - -func main() { - gen.Init() - genTables() - genTests() - repackage("gen_trieval.go", "trieval.go") - repackage("gen_common.go", "common_test.go") -} - -func genTables() { - t := triegen.NewTrie("width") - // fold and inverse mappings. See mapComment for a description of the format - // of each entry. Add dummy value to make an index of 0 mean no mapping. - inverse := [][4]byte{{}} - mapping := map[[4]byte]int{[4]byte{}: 0} - - getWidthData(func(r rune, tag elem, alt rune) { - idx := 0 - if alt != 0 { - var buf [4]byte - buf[0] = byte(utf8.EncodeRune(buf[1:], alt)) - s := string(r) - buf[buf[0]] ^= s[len(s)-1] - var ok bool - if idx, ok = mapping[buf]; !ok { - idx = len(mapping) - if idx > math.MaxUint8 { - log.Fatalf("Index %d does not fit in a byte.", idx) - } - mapping[buf] = idx - inverse = append(inverse, buf) - } - } - t.Insert(r, uint64(tag|elem(idx))) - }) - - w := &bytes.Buffer{} - gen.WriteUnicodeVersion(w) - - sz, err := t.Gen(w) - if err != nil { - log.Fatal(err) - } - - sz += writeMappings(w, inverse) - - fmt.Fprintf(w, "// Total table size %d bytes (%dKiB)\n", sz, sz/1024) - - gen.WriteGoFile(*outputFile, "width", w.Bytes()) -} - -const inverseDataComment = ` -// inverseData contains 4-byte entries of the following format: -// <length> <modified UTF-8-encoded rune> <0 padding> -// The last byte of the UTF-8-encoded rune is xor-ed with the last byte of the -// UTF-8 encoding of the original rune. Mappings often have the following -// pattern: -// A -> A (U+FF21 -> U+0041) -// ï¼¢ -> B (U+FF22 -> U+0042) -// ... -// By xor-ing the last byte the same entry can be shared by many mappings. This -// reduces the total number of distinct entries by about two thirds. -// The resulting entry for the aforementioned mappings is -// { 0x01, 0xE0, 0x00, 0x00 } -// Using this entry to map U+FF21 (UTF-8 [EF BC A1]), we get -// E0 ^ A1 = 41. -// Similarly, for U+FF22 (UTF-8 [EF BC A2]), we get -// E0 ^ A2 = 42. -// Note that because of the xor-ing, the byte sequence stored in the entry is -// not valid UTF-8.` - -func writeMappings(w io.Writer, data [][4]byte) int { - fmt.Fprintln(w, inverseDataComment) - fmt.Fprintf(w, "var inverseData = [%d][4]byte{\n", len(data)) - for _, x := range data { - fmt.Fprintf(w, "{ 0x%02x, 0x%02x, 0x%02x, 0x%02x },\n", x[0], x[1], x[2], x[3]) - } - fmt.Fprintln(w, "}") - return len(data) * 4 -} - -func genTests() { - w := &bytes.Buffer{} - fmt.Fprintf(w, "\nvar mapRunes = map[rune]struct{r rune; e elem}{\n") - getWidthData(func(r rune, tag elem, alt rune) { - if alt != 0 { - fmt.Fprintf(w, "\t0x%X: {0x%X, 0x%X},\n", r, alt, tag) - } - }) - fmt.Fprintln(w, "}") - gen.WriteGoFile("runes_test.go", "width", w.Bytes()) -} - -// repackage rewrites a file from belonging to package main to belonging to -// package width. -func repackage(inFile, outFile string) { - src, err := ioutil.ReadFile(inFile) - if err != nil { - log.Fatalf("reading %s: %v", inFile, err) - } - const toDelete = "package main\n\n" - i := bytes.Index(src, []byte(toDelete)) - if i < 0 { - log.Fatalf("Could not find %q in gen_trieval.go", toDelete) - } - w := &bytes.Buffer{} - w.Write(src[i+len(toDelete):]) - gen.WriteGoFile(outFile, "width", w.Bytes()) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/gen_common.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/gen_common.go deleted file mode 100644 index 813792c9..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/gen_common.go +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This code is shared between the main code generator and the test code. - -import ( - "flag" - "log" - "strconv" - "strings" - - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/ucd" -) - -var ( - outputFile = flag.String("out", "tables.go", "output file") -) - -var typeMap = map[string]elem{ - "A": tagAmbiguous, - "N": tagNeutral, - "Na": tagNarrow, - "W": tagWide, - "F": tagFullwidth, - "H": tagHalfwidth, -} - -// getWidthData calls f for every entry for which it is defined. -// -// f may be called multiple times for the same rune. The last call to f is the -// correct value. f is not called for all runes. The default tag type is -// Neutral. -func getWidthData(f func(r rune, tag elem, alt rune)) { - // Set the default values for Unified Ideographs. In line with Annex 11, - // we encode full ranges instead of the defined runes in Unified_Ideograph. - for _, b := range []struct{ lo, hi rune }{ - {0x4E00, 0x9FFF}, // the CJK Unified Ideographs block, - {0x3400, 0x4DBF}, // the CJK Unified Ideographs Externsion A block, - {0xF900, 0xFAFF}, // the CJK Compatibility Ideographs block, - {0x20000, 0x2FFFF}, // the Supplementary Ideographic Plane, - {0x30000, 0x3FFFF}, // the Tertiary Ideographic Plane, - } { - for r := b.lo; r <= b.hi; r++ { - f(r, tagWide, 0) - } - } - - inverse := map[rune]rune{} - maps := map[string]bool{ - "<wide>": true, - "<narrow>": true, - } - - // We cannot reuse package norm's decomposition, as we need an unexpanded - // decomposition. We make use of the opportunity to verify that the - // decomposition type is as expected. - parse("UnicodeData.txt", func(p *ucd.Parser) { - r := p.Rune(0) - s := strings.SplitN(p.String(ucd.DecompMapping), " ", 2) - if !maps[s[0]] { - return - } - x, err := strconv.ParseUint(s[1], 16, 32) - if err != nil { - log.Fatalf("Error parsing rune %q", s[1]) - } - if inverse[r] != 0 || inverse[rune(x)] != 0 { - log.Fatalf("Circular dependency in mapping between %U and %U", r, x) - } - inverse[r] = rune(x) - inverse[rune(x)] = r - }) - - // <rune range>;<type> - parse("EastAsianWidth.txt", func(p *ucd.Parser) { - tag, ok := typeMap[p.String(1)] - if !ok { - log.Fatalf("Unknown width type %q", p.String(1)) - } - r := p.Rune(0) - alt, ok := inverse[r] - if tag == tagFullwidth || tag == tagHalfwidth && r != wonSign { - tag |= tagNeedsFold - if !ok { - log.Fatalf("Narrow or wide rune %U has no decomposition", r) - } - } - f(r, tag, alt) - }) -} - -// parse calls f for each entry in the given UCD file. -func parse(filename string, f func(p *ucd.Parser)) { - r := gen.OpenUCDFile(filename) - defer r.Close() - - p := ucd.New(r) - for p.Next() { - f(p) - } - if err := p.Err(); err != nil { - log.Fatal(err) - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/gen_trieval.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/gen_trieval.go deleted file mode 100644 index c17334aa..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/gen_trieval.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// elem is an entry of the width trie. The high byte is used to encode the type -// of the rune. The low byte is used to store the index to a mapping entry in -// the inverseData array. -type elem uint16 - -const ( - tagNeutral elem = iota << typeShift - tagAmbiguous - tagWide - tagNarrow - tagFullwidth - tagHalfwidth -) - -const ( - numTypeBits = 3 - typeShift = 16 - numTypeBits - - // tagNeedsFold is true for all fullwidth and halfwidth runes except for - // the Won sign U+20A9. - tagNeedsFold = 0x1000 - - // The Korean Won sign is halfwidth, but SHOULD NOT be mapped to a wide - // variant. - wonSign rune = 0x20A9 -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/kind_string.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/kind_string.go deleted file mode 100644 index 7028c25b..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/kind_string.go +++ /dev/null @@ -1,16 +0,0 @@ -// generated by stringer -type=Kind; DO NOT EDIT - -package width - -import "fmt" - -const _Kind_name = "NeutralEastAsianAmbiguousEastAsianWideEastAsianNarrowEastAsianFullwidthEastAsianHalfwidth" - -var _Kind_index = [...]uint8{0, 7, 25, 38, 53, 71, 89} - -func (i Kind) String() string { - if i < 0 || i+1 >= Kind(len(_Kind_index)) { - return fmt.Sprintf("Kind(%d)", i) - } - return _Kind_name[_Kind_index[i]:_Kind_index[i+1]] -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/runes_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/runes_test.go deleted file mode 100644 index 2a48c404..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/runes_test.go +++ /dev/null @@ -1,461 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package width - -var mapRunes = map[rune]struct { - r rune - e elem -}{ - 0x20: {0x3000, 0x6000}, - 0x21: {0xFF01, 0x6000}, - 0x22: {0xFF02, 0x6000}, - 0x23: {0xFF03, 0x6000}, - 0x24: {0xFF04, 0x6000}, - 0x25: {0xFF05, 0x6000}, - 0x26: {0xFF06, 0x6000}, - 0x27: {0xFF07, 0x6000}, - 0x28: {0xFF08, 0x6000}, - 0x29: {0xFF09, 0x6000}, - 0x2A: {0xFF0A, 0x6000}, - 0x2B: {0xFF0B, 0x6000}, - 0x2C: {0xFF0C, 0x6000}, - 0x2D: {0xFF0D, 0x6000}, - 0x2E: {0xFF0E, 0x6000}, - 0x2F: {0xFF0F, 0x6000}, - 0x30: {0xFF10, 0x6000}, - 0x31: {0xFF11, 0x6000}, - 0x32: {0xFF12, 0x6000}, - 0x33: {0xFF13, 0x6000}, - 0x34: {0xFF14, 0x6000}, - 0x35: {0xFF15, 0x6000}, - 0x36: {0xFF16, 0x6000}, - 0x37: {0xFF17, 0x6000}, - 0x38: {0xFF18, 0x6000}, - 0x39: {0xFF19, 0x6000}, - 0x3A: {0xFF1A, 0x6000}, - 0x3B: {0xFF1B, 0x6000}, - 0x3C: {0xFF1C, 0x6000}, - 0x3D: {0xFF1D, 0x6000}, - 0x3E: {0xFF1E, 0x6000}, - 0x3F: {0xFF1F, 0x6000}, - 0x40: {0xFF20, 0x6000}, - 0x41: {0xFF21, 0x6000}, - 0x42: {0xFF22, 0x6000}, - 0x43: {0xFF23, 0x6000}, - 0x44: {0xFF24, 0x6000}, - 0x45: {0xFF25, 0x6000}, - 0x46: {0xFF26, 0x6000}, - 0x47: {0xFF27, 0x6000}, - 0x48: {0xFF28, 0x6000}, - 0x49: {0xFF29, 0x6000}, - 0x4A: {0xFF2A, 0x6000}, - 0x4B: {0xFF2B, 0x6000}, - 0x4C: {0xFF2C, 0x6000}, - 0x4D: {0xFF2D, 0x6000}, - 0x4E: {0xFF2E, 0x6000}, - 0x4F: {0xFF2F, 0x6000}, - 0x50: {0xFF30, 0x6000}, - 0x51: {0xFF31, 0x6000}, - 0x52: {0xFF32, 0x6000}, - 0x53: {0xFF33, 0x6000}, - 0x54: {0xFF34, 0x6000}, - 0x55: {0xFF35, 0x6000}, - 0x56: {0xFF36, 0x6000}, - 0x57: {0xFF37, 0x6000}, - 0x58: {0xFF38, 0x6000}, - 0x59: {0xFF39, 0x6000}, - 0x5A: {0xFF3A, 0x6000}, - 0x5B: {0xFF3B, 0x6000}, - 0x5C: {0xFF3C, 0x6000}, - 0x5D: {0xFF3D, 0x6000}, - 0x5E: {0xFF3E, 0x6000}, - 0x5F: {0xFF3F, 0x6000}, - 0x60: {0xFF40, 0x6000}, - 0x61: {0xFF41, 0x6000}, - 0x62: {0xFF42, 0x6000}, - 0x63: {0xFF43, 0x6000}, - 0x64: {0xFF44, 0x6000}, - 0x65: {0xFF45, 0x6000}, - 0x66: {0xFF46, 0x6000}, - 0x67: {0xFF47, 0x6000}, - 0x68: {0xFF48, 0x6000}, - 0x69: {0xFF49, 0x6000}, - 0x6A: {0xFF4A, 0x6000}, - 0x6B: {0xFF4B, 0x6000}, - 0x6C: {0xFF4C, 0x6000}, - 0x6D: {0xFF4D, 0x6000}, - 0x6E: {0xFF4E, 0x6000}, - 0x6F: {0xFF4F, 0x6000}, - 0x70: {0xFF50, 0x6000}, - 0x71: {0xFF51, 0x6000}, - 0x72: {0xFF52, 0x6000}, - 0x73: {0xFF53, 0x6000}, - 0x74: {0xFF54, 0x6000}, - 0x75: {0xFF55, 0x6000}, - 0x76: {0xFF56, 0x6000}, - 0x77: {0xFF57, 0x6000}, - 0x78: {0xFF58, 0x6000}, - 0x79: {0xFF59, 0x6000}, - 0x7A: {0xFF5A, 0x6000}, - 0x7B: {0xFF5B, 0x6000}, - 0x7C: {0xFF5C, 0x6000}, - 0x7D: {0xFF5D, 0x6000}, - 0x7E: {0xFF5E, 0x6000}, - 0xA2: {0xFFE0, 0x6000}, - 0xA3: {0xFFE1, 0x6000}, - 0xA5: {0xFFE5, 0x6000}, - 0xA6: {0xFFE4, 0x6000}, - 0xAC: {0xFFE2, 0x6000}, - 0xAF: {0xFFE3, 0x6000}, - 0x20A9: {0xFFE6, 0xA000}, - 0x2190: {0xFFE9, 0x2000}, - 0x2191: {0xFFEA, 0x2000}, - 0x2192: {0xFFEB, 0x2000}, - 0x2193: {0xFFEC, 0x2000}, - 0x2502: {0xFFE8, 0x2000}, - 0x25A0: {0xFFED, 0x2000}, - 0x25CB: {0xFFEE, 0x2000}, - 0x2985: {0xFF5F, 0x6000}, - 0x2986: {0xFF60, 0x6000}, - 0x3000: {0x20, 0x9000}, - 0x3001: {0xFF64, 0x4000}, - 0x3002: {0xFF61, 0x4000}, - 0x300C: {0xFF62, 0x4000}, - 0x300D: {0xFF63, 0x4000}, - 0x3099: {0xFF9E, 0x4000}, - 0x309A: {0xFF9F, 0x4000}, - 0x30A1: {0xFF67, 0x4000}, - 0x30A2: {0xFF71, 0x4000}, - 0x30A3: {0xFF68, 0x4000}, - 0x30A4: {0xFF72, 0x4000}, - 0x30A5: {0xFF69, 0x4000}, - 0x30A6: {0xFF73, 0x4000}, - 0x30A7: {0xFF6A, 0x4000}, - 0x30A8: {0xFF74, 0x4000}, - 0x30A9: {0xFF6B, 0x4000}, - 0x30AA: {0xFF75, 0x4000}, - 0x30AB: {0xFF76, 0x4000}, - 0x30AD: {0xFF77, 0x4000}, - 0x30AF: {0xFF78, 0x4000}, - 0x30B1: {0xFF79, 0x4000}, - 0x30B3: {0xFF7A, 0x4000}, - 0x30B5: {0xFF7B, 0x4000}, - 0x30B7: {0xFF7C, 0x4000}, - 0x30B9: {0xFF7D, 0x4000}, - 0x30BB: {0xFF7E, 0x4000}, - 0x30BD: {0xFF7F, 0x4000}, - 0x30BF: {0xFF80, 0x4000}, - 0x30C1: {0xFF81, 0x4000}, - 0x30C3: {0xFF6F, 0x4000}, - 0x30C4: {0xFF82, 0x4000}, - 0x30C6: {0xFF83, 0x4000}, - 0x30C8: {0xFF84, 0x4000}, - 0x30CA: {0xFF85, 0x4000}, - 0x30CB: {0xFF86, 0x4000}, - 0x30CC: {0xFF87, 0x4000}, - 0x30CD: {0xFF88, 0x4000}, - 0x30CE: {0xFF89, 0x4000}, - 0x30CF: {0xFF8A, 0x4000}, - 0x30D2: {0xFF8B, 0x4000}, - 0x30D5: {0xFF8C, 0x4000}, - 0x30D8: {0xFF8D, 0x4000}, - 0x30DB: {0xFF8E, 0x4000}, - 0x30DE: {0xFF8F, 0x4000}, - 0x30DF: {0xFF90, 0x4000}, - 0x30E0: {0xFF91, 0x4000}, - 0x30E1: {0xFF92, 0x4000}, - 0x30E2: {0xFF93, 0x4000}, - 0x30E3: {0xFF6C, 0x4000}, - 0x30E4: {0xFF94, 0x4000}, - 0x30E5: {0xFF6D, 0x4000}, - 0x30E6: {0xFF95, 0x4000}, - 0x30E7: {0xFF6E, 0x4000}, - 0x30E8: {0xFF96, 0x4000}, - 0x30E9: {0xFF97, 0x4000}, - 0x30EA: {0xFF98, 0x4000}, - 0x30EB: {0xFF99, 0x4000}, - 0x30EC: {0xFF9A, 0x4000}, - 0x30ED: {0xFF9B, 0x4000}, - 0x30EF: {0xFF9C, 0x4000}, - 0x30F2: {0xFF66, 0x4000}, - 0x30F3: {0xFF9D, 0x4000}, - 0x30FB: {0xFF65, 0x4000}, - 0x30FC: {0xFF70, 0x4000}, - 0x3131: {0xFFA1, 0x4000}, - 0x3132: {0xFFA2, 0x4000}, - 0x3133: {0xFFA3, 0x4000}, - 0x3134: {0xFFA4, 0x4000}, - 0x3135: {0xFFA5, 0x4000}, - 0x3136: {0xFFA6, 0x4000}, - 0x3137: {0xFFA7, 0x4000}, - 0x3138: {0xFFA8, 0x4000}, - 0x3139: {0xFFA9, 0x4000}, - 0x313A: {0xFFAA, 0x4000}, - 0x313B: {0xFFAB, 0x4000}, - 0x313C: {0xFFAC, 0x4000}, - 0x313D: {0xFFAD, 0x4000}, - 0x313E: {0xFFAE, 0x4000}, - 0x313F: {0xFFAF, 0x4000}, - 0x3140: {0xFFB0, 0x4000}, - 0x3141: {0xFFB1, 0x4000}, - 0x3142: {0xFFB2, 0x4000}, - 0x3143: {0xFFB3, 0x4000}, - 0x3144: {0xFFB4, 0x4000}, - 0x3145: {0xFFB5, 0x4000}, - 0x3146: {0xFFB6, 0x4000}, - 0x3147: {0xFFB7, 0x4000}, - 0x3148: {0xFFB8, 0x4000}, - 0x3149: {0xFFB9, 0x4000}, - 0x314A: {0xFFBA, 0x4000}, - 0x314B: {0xFFBB, 0x4000}, - 0x314C: {0xFFBC, 0x4000}, - 0x314D: {0xFFBD, 0x4000}, - 0x314E: {0xFFBE, 0x4000}, - 0x314F: {0xFFC2, 0x4000}, - 0x3150: {0xFFC3, 0x4000}, - 0x3151: {0xFFC4, 0x4000}, - 0x3152: {0xFFC5, 0x4000}, - 0x3153: {0xFFC6, 0x4000}, - 0x3154: {0xFFC7, 0x4000}, - 0x3155: {0xFFCA, 0x4000}, - 0x3156: {0xFFCB, 0x4000}, - 0x3157: {0xFFCC, 0x4000}, - 0x3158: {0xFFCD, 0x4000}, - 0x3159: {0xFFCE, 0x4000}, - 0x315A: {0xFFCF, 0x4000}, - 0x315B: {0xFFD2, 0x4000}, - 0x315C: {0xFFD3, 0x4000}, - 0x315D: {0xFFD4, 0x4000}, - 0x315E: {0xFFD5, 0x4000}, - 0x315F: {0xFFD6, 0x4000}, - 0x3160: {0xFFD7, 0x4000}, - 0x3161: {0xFFDA, 0x4000}, - 0x3162: {0xFFDB, 0x4000}, - 0x3163: {0xFFDC, 0x4000}, - 0x3164: {0xFFA0, 0x4000}, - 0xFF01: {0x21, 0x9000}, - 0xFF02: {0x22, 0x9000}, - 0xFF03: {0x23, 0x9000}, - 0xFF04: {0x24, 0x9000}, - 0xFF05: {0x25, 0x9000}, - 0xFF06: {0x26, 0x9000}, - 0xFF07: {0x27, 0x9000}, - 0xFF08: {0x28, 0x9000}, - 0xFF09: {0x29, 0x9000}, - 0xFF0A: {0x2A, 0x9000}, - 0xFF0B: {0x2B, 0x9000}, - 0xFF0C: {0x2C, 0x9000}, - 0xFF0D: {0x2D, 0x9000}, - 0xFF0E: {0x2E, 0x9000}, - 0xFF0F: {0x2F, 0x9000}, - 0xFF10: {0x30, 0x9000}, - 0xFF11: {0x31, 0x9000}, - 0xFF12: {0x32, 0x9000}, - 0xFF13: {0x33, 0x9000}, - 0xFF14: {0x34, 0x9000}, - 0xFF15: {0x35, 0x9000}, - 0xFF16: {0x36, 0x9000}, - 0xFF17: {0x37, 0x9000}, - 0xFF18: {0x38, 0x9000}, - 0xFF19: {0x39, 0x9000}, - 0xFF1A: {0x3A, 0x9000}, - 0xFF1B: {0x3B, 0x9000}, - 0xFF1C: {0x3C, 0x9000}, - 0xFF1D: {0x3D, 0x9000}, - 0xFF1E: {0x3E, 0x9000}, - 0xFF1F: {0x3F, 0x9000}, - 0xFF20: {0x40, 0x9000}, - 0xFF21: {0x41, 0x9000}, - 0xFF22: {0x42, 0x9000}, - 0xFF23: {0x43, 0x9000}, - 0xFF24: {0x44, 0x9000}, - 0xFF25: {0x45, 0x9000}, - 0xFF26: {0x46, 0x9000}, - 0xFF27: {0x47, 0x9000}, - 0xFF28: {0x48, 0x9000}, - 0xFF29: {0x49, 0x9000}, - 0xFF2A: {0x4A, 0x9000}, - 0xFF2B: {0x4B, 0x9000}, - 0xFF2C: {0x4C, 0x9000}, - 0xFF2D: {0x4D, 0x9000}, - 0xFF2E: {0x4E, 0x9000}, - 0xFF2F: {0x4F, 0x9000}, - 0xFF30: {0x50, 0x9000}, - 0xFF31: {0x51, 0x9000}, - 0xFF32: {0x52, 0x9000}, - 0xFF33: {0x53, 0x9000}, - 0xFF34: {0x54, 0x9000}, - 0xFF35: {0x55, 0x9000}, - 0xFF36: {0x56, 0x9000}, - 0xFF37: {0x57, 0x9000}, - 0xFF38: {0x58, 0x9000}, - 0xFF39: {0x59, 0x9000}, - 0xFF3A: {0x5A, 0x9000}, - 0xFF3B: {0x5B, 0x9000}, - 0xFF3C: {0x5C, 0x9000}, - 0xFF3D: {0x5D, 0x9000}, - 0xFF3E: {0x5E, 0x9000}, - 0xFF3F: {0x5F, 0x9000}, - 0xFF40: {0x60, 0x9000}, - 0xFF41: {0x61, 0x9000}, - 0xFF42: {0x62, 0x9000}, - 0xFF43: {0x63, 0x9000}, - 0xFF44: {0x64, 0x9000}, - 0xFF45: {0x65, 0x9000}, - 0xFF46: {0x66, 0x9000}, - 0xFF47: {0x67, 0x9000}, - 0xFF48: {0x68, 0x9000}, - 0xFF49: {0x69, 0x9000}, - 0xFF4A: {0x6A, 0x9000}, - 0xFF4B: {0x6B, 0x9000}, - 0xFF4C: {0x6C, 0x9000}, - 0xFF4D: {0x6D, 0x9000}, - 0xFF4E: {0x6E, 0x9000}, - 0xFF4F: {0x6F, 0x9000}, - 0xFF50: {0x70, 0x9000}, - 0xFF51: {0x71, 0x9000}, - 0xFF52: {0x72, 0x9000}, - 0xFF53: {0x73, 0x9000}, - 0xFF54: {0x74, 0x9000}, - 0xFF55: {0x75, 0x9000}, - 0xFF56: {0x76, 0x9000}, - 0xFF57: {0x77, 0x9000}, - 0xFF58: {0x78, 0x9000}, - 0xFF59: {0x79, 0x9000}, - 0xFF5A: {0x7A, 0x9000}, - 0xFF5B: {0x7B, 0x9000}, - 0xFF5C: {0x7C, 0x9000}, - 0xFF5D: {0x7D, 0x9000}, - 0xFF5E: {0x7E, 0x9000}, - 0xFF5F: {0x2985, 0x9000}, - 0xFF60: {0x2986, 0x9000}, - 0xFF61: {0x3002, 0xB000}, - 0xFF62: {0x300C, 0xB000}, - 0xFF63: {0x300D, 0xB000}, - 0xFF64: {0x3001, 0xB000}, - 0xFF65: {0x30FB, 0xB000}, - 0xFF66: {0x30F2, 0xB000}, - 0xFF67: {0x30A1, 0xB000}, - 0xFF68: {0x30A3, 0xB000}, - 0xFF69: {0x30A5, 0xB000}, - 0xFF6A: {0x30A7, 0xB000}, - 0xFF6B: {0x30A9, 0xB000}, - 0xFF6C: {0x30E3, 0xB000}, - 0xFF6D: {0x30E5, 0xB000}, - 0xFF6E: {0x30E7, 0xB000}, - 0xFF6F: {0x30C3, 0xB000}, - 0xFF70: {0x30FC, 0xB000}, - 0xFF71: {0x30A2, 0xB000}, - 0xFF72: {0x30A4, 0xB000}, - 0xFF73: {0x30A6, 0xB000}, - 0xFF74: {0x30A8, 0xB000}, - 0xFF75: {0x30AA, 0xB000}, - 0xFF76: {0x30AB, 0xB000}, - 0xFF77: {0x30AD, 0xB000}, - 0xFF78: {0x30AF, 0xB000}, - 0xFF79: {0x30B1, 0xB000}, - 0xFF7A: {0x30B3, 0xB000}, - 0xFF7B: {0x30B5, 0xB000}, - 0xFF7C: {0x30B7, 0xB000}, - 0xFF7D: {0x30B9, 0xB000}, - 0xFF7E: {0x30BB, 0xB000}, - 0xFF7F: {0x30BD, 0xB000}, - 0xFF80: {0x30BF, 0xB000}, - 0xFF81: {0x30C1, 0xB000}, - 0xFF82: {0x30C4, 0xB000}, - 0xFF83: {0x30C6, 0xB000}, - 0xFF84: {0x30C8, 0xB000}, - 0xFF85: {0x30CA, 0xB000}, - 0xFF86: {0x30CB, 0xB000}, - 0xFF87: {0x30CC, 0xB000}, - 0xFF88: {0x30CD, 0xB000}, - 0xFF89: {0x30CE, 0xB000}, - 0xFF8A: {0x30CF, 0xB000}, - 0xFF8B: {0x30D2, 0xB000}, - 0xFF8C: {0x30D5, 0xB000}, - 0xFF8D: {0x30D8, 0xB000}, - 0xFF8E: {0x30DB, 0xB000}, - 0xFF8F: {0x30DE, 0xB000}, - 0xFF90: {0x30DF, 0xB000}, - 0xFF91: {0x30E0, 0xB000}, - 0xFF92: {0x30E1, 0xB000}, - 0xFF93: {0x30E2, 0xB000}, - 0xFF94: {0x30E4, 0xB000}, - 0xFF95: {0x30E6, 0xB000}, - 0xFF96: {0x30E8, 0xB000}, - 0xFF97: {0x30E9, 0xB000}, - 0xFF98: {0x30EA, 0xB000}, - 0xFF99: {0x30EB, 0xB000}, - 0xFF9A: {0x30EC, 0xB000}, - 0xFF9B: {0x30ED, 0xB000}, - 0xFF9C: {0x30EF, 0xB000}, - 0xFF9D: {0x30F3, 0xB000}, - 0xFF9E: {0x3099, 0xB000}, - 0xFF9F: {0x309A, 0xB000}, - 0xFFA0: {0x3164, 0xB000}, - 0xFFA1: {0x3131, 0xB000}, - 0xFFA2: {0x3132, 0xB000}, - 0xFFA3: {0x3133, 0xB000}, - 0xFFA4: {0x3134, 0xB000}, - 0xFFA5: {0x3135, 0xB000}, - 0xFFA6: {0x3136, 0xB000}, - 0xFFA7: {0x3137, 0xB000}, - 0xFFA8: {0x3138, 0xB000}, - 0xFFA9: {0x3139, 0xB000}, - 0xFFAA: {0x313A, 0xB000}, - 0xFFAB: {0x313B, 0xB000}, - 0xFFAC: {0x313C, 0xB000}, - 0xFFAD: {0x313D, 0xB000}, - 0xFFAE: {0x313E, 0xB000}, - 0xFFAF: {0x313F, 0xB000}, - 0xFFB0: {0x3140, 0xB000}, - 0xFFB1: {0x3141, 0xB000}, - 0xFFB2: {0x3142, 0xB000}, - 0xFFB3: {0x3143, 0xB000}, - 0xFFB4: {0x3144, 0xB000}, - 0xFFB5: {0x3145, 0xB000}, - 0xFFB6: {0x3146, 0xB000}, - 0xFFB7: {0x3147, 0xB000}, - 0xFFB8: {0x3148, 0xB000}, - 0xFFB9: {0x3149, 0xB000}, - 0xFFBA: {0x314A, 0xB000}, - 0xFFBB: {0x314B, 0xB000}, - 0xFFBC: {0x314C, 0xB000}, - 0xFFBD: {0x314D, 0xB000}, - 0xFFBE: {0x314E, 0xB000}, - 0xFFC2: {0x314F, 0xB000}, - 0xFFC3: {0x3150, 0xB000}, - 0xFFC4: {0x3151, 0xB000}, - 0xFFC5: {0x3152, 0xB000}, - 0xFFC6: {0x3153, 0xB000}, - 0xFFC7: {0x3154, 0xB000}, - 0xFFCA: {0x3155, 0xB000}, - 0xFFCB: {0x3156, 0xB000}, - 0xFFCC: {0x3157, 0xB000}, - 0xFFCD: {0x3158, 0xB000}, - 0xFFCE: {0x3159, 0xB000}, - 0xFFCF: {0x315A, 0xB000}, - 0xFFD2: {0x315B, 0xB000}, - 0xFFD3: {0x315C, 0xB000}, - 0xFFD4: {0x315D, 0xB000}, - 0xFFD5: {0x315E, 0xB000}, - 0xFFD6: {0x315F, 0xB000}, - 0xFFD7: {0x3160, 0xB000}, - 0xFFDA: {0x3161, 0xB000}, - 0xFFDB: {0x3162, 0xB000}, - 0xFFDC: {0x3163, 0xB000}, - 0xFFE0: {0xA2, 0x9000}, - 0xFFE1: {0xA3, 0x9000}, - 0xFFE2: {0xAC, 0x9000}, - 0xFFE3: {0xAF, 0x9000}, - 0xFFE4: {0xA6, 0x9000}, - 0xFFE5: {0xA5, 0x9000}, - 0xFFE6: {0x20A9, 0x9000}, - 0xFFE8: {0x2502, 0xB000}, - 0xFFE9: {0x2190, 0xB000}, - 0xFFEA: {0x2191, 0xB000}, - 0xFFEB: {0x2192, 0xB000}, - 0xFFEC: {0x2193, 0xB000}, - 0xFFED: {0x25A0, 0xB000}, - 0xFFEE: {0x25CB, 0xB000}, -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/tables.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/tables.go deleted file mode 100644 index 7b7f0a94..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/tables.go +++ /dev/null @@ -1,1092 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package width - -// UnicodeVersion is the Unicode version from which the tables in this package are derived. -const UnicodeVersion = "8.0.0" - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *widthTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return widthValues[c0], 1 - case c0 < 0xC0: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := widthIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := widthIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = widthIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := widthIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = widthIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = widthIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *widthTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return widthValues[c0] - } - i := widthIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = widthIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = widthIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *widthTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return widthValues[c0], 1 - case c0 < 0xC0: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := widthIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := widthIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = widthIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := widthIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = widthIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = widthIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *widthTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return widthValues[c0] - } - i := widthIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = widthIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = widthIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// widthTrie. Total size: 10880 bytes (10.62 KiB). Checksum: 7248598b914622aa. -type widthTrie struct{} - -func newWidthTrie(i int) *widthTrie { - return &widthTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *widthTrie) lookupValue(n uint32, b byte) uint16 { - switch { - default: - return uint16(widthValues[n<<6+uint32(b)]) - } -} - -// widthValues: 75 blocks, 4800 entries, 9600 bytes -// The third block is the zero block. -var widthValues = [4800]uint16{ - // Block 0x0, offset 0x0 - 0x20: 0x6001, 0x21: 0x6002, 0x22: 0x6002, 0x23: 0x6002, - 0x24: 0x6002, 0x25: 0x6002, 0x26: 0x6002, 0x27: 0x6002, 0x28: 0x6002, 0x29: 0x6002, - 0x2a: 0x6002, 0x2b: 0x6002, 0x2c: 0x6002, 0x2d: 0x6002, 0x2e: 0x6002, 0x2f: 0x6002, - 0x30: 0x6002, 0x31: 0x6002, 0x32: 0x6002, 0x33: 0x6002, 0x34: 0x6002, 0x35: 0x6002, - 0x36: 0x6002, 0x37: 0x6002, 0x38: 0x6002, 0x39: 0x6002, 0x3a: 0x6002, 0x3b: 0x6002, - 0x3c: 0x6002, 0x3d: 0x6002, 0x3e: 0x6002, 0x3f: 0x6002, - // Block 0x1, offset 0x40 - 0x40: 0x6003, 0x41: 0x6003, 0x42: 0x6003, 0x43: 0x6003, 0x44: 0x6003, 0x45: 0x6003, - 0x46: 0x6003, 0x47: 0x6003, 0x48: 0x6003, 0x49: 0x6003, 0x4a: 0x6003, 0x4b: 0x6003, - 0x4c: 0x6003, 0x4d: 0x6003, 0x4e: 0x6003, 0x4f: 0x6003, 0x50: 0x6003, 0x51: 0x6003, - 0x52: 0x6003, 0x53: 0x6003, 0x54: 0x6003, 0x55: 0x6003, 0x56: 0x6003, 0x57: 0x6003, - 0x58: 0x6003, 0x59: 0x6003, 0x5a: 0x6003, 0x5b: 0x6003, 0x5c: 0x6003, 0x5d: 0x6003, - 0x5e: 0x6003, 0x5f: 0x6003, 0x60: 0x6004, 0x61: 0x6004, 0x62: 0x6004, 0x63: 0x6004, - 0x64: 0x6004, 0x65: 0x6004, 0x66: 0x6004, 0x67: 0x6004, 0x68: 0x6004, 0x69: 0x6004, - 0x6a: 0x6004, 0x6b: 0x6004, 0x6c: 0x6004, 0x6d: 0x6004, 0x6e: 0x6004, 0x6f: 0x6004, - 0x70: 0x6004, 0x71: 0x6004, 0x72: 0x6004, 0x73: 0x6004, 0x74: 0x6004, 0x75: 0x6004, - 0x76: 0x6004, 0x77: 0x6004, 0x78: 0x6004, 0x79: 0x6004, 0x7a: 0x6004, 0x7b: 0x6004, - 0x7c: 0x6004, 0x7d: 0x6004, 0x7e: 0x6004, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xe1: 0x2000, 0xe2: 0x6005, 0xe3: 0x6005, - 0xe4: 0x2000, 0xe5: 0x6006, 0xe6: 0x6005, 0xe7: 0x2000, 0xe8: 0x2000, - 0xea: 0x2000, 0xec: 0x6007, 0xed: 0x2000, 0xee: 0x2000, 0xef: 0x6008, - 0xf0: 0x2000, 0xf1: 0x2000, 0xf2: 0x2000, 0xf3: 0x2000, 0xf4: 0x2000, - 0xf6: 0x2000, 0xf7: 0x2000, 0xf8: 0x2000, 0xf9: 0x2000, 0xfa: 0x2000, - 0xfc: 0x2000, 0xfd: 0x2000, 0xfe: 0x2000, 0xff: 0x2000, - // Block 0x4, offset 0x100 - 0x106: 0x2000, - 0x110: 0x2000, - 0x117: 0x2000, - 0x118: 0x2000, - 0x11e: 0x2000, 0x11f: 0x2000, 0x120: 0x2000, 0x121: 0x2000, - 0x126: 0x2000, 0x128: 0x2000, 0x129: 0x2000, - 0x12a: 0x2000, 0x12c: 0x2000, 0x12d: 0x2000, - 0x130: 0x2000, 0x132: 0x2000, 0x133: 0x2000, - 0x137: 0x2000, 0x138: 0x2000, 0x139: 0x2000, 0x13a: 0x2000, - 0x13c: 0x2000, 0x13e: 0x2000, - // Block 0x5, offset 0x140 - 0x141: 0x2000, - 0x151: 0x2000, - 0x153: 0x2000, - 0x15b: 0x2000, - 0x166: 0x2000, 0x167: 0x2000, - 0x16b: 0x2000, - 0x171: 0x2000, 0x172: 0x2000, 0x173: 0x2000, - 0x178: 0x2000, - 0x17f: 0x2000, - // Block 0x6, offset 0x180 - 0x180: 0x2000, 0x181: 0x2000, 0x182: 0x2000, 0x184: 0x2000, - 0x188: 0x2000, 0x189: 0x2000, 0x18a: 0x2000, 0x18b: 0x2000, - 0x18d: 0x2000, - 0x192: 0x2000, 0x193: 0x2000, - 0x1a6: 0x2000, 0x1a7: 0x2000, - 0x1ab: 0x2000, - // Block 0x7, offset 0x1c0 - 0x1ce: 0x2000, 0x1d0: 0x2000, - 0x1d2: 0x2000, 0x1d4: 0x2000, 0x1d6: 0x2000, - 0x1d8: 0x2000, 0x1da: 0x2000, 0x1dc: 0x2000, - // Block 0x8, offset 0x200 - 0x211: 0x2000, - 0x221: 0x2000, - // Block 0x9, offset 0x240 - 0x244: 0x2000, - 0x247: 0x2000, 0x249: 0x2000, 0x24a: 0x2000, 0x24b: 0x2000, - 0x24d: 0x2000, 0x250: 0x2000, - 0x258: 0x2000, 0x259: 0x2000, 0x25a: 0x2000, 0x25b: 0x2000, 0x25d: 0x2000, - 0x25f: 0x2000, - // Block 0xa, offset 0x280 - 0x280: 0x2000, 0x281: 0x2000, 0x282: 0x2000, 0x283: 0x2000, 0x284: 0x2000, 0x285: 0x2000, - 0x286: 0x2000, 0x287: 0x2000, 0x288: 0x2000, 0x289: 0x2000, 0x28a: 0x2000, 0x28b: 0x2000, - 0x28c: 0x2000, 0x28d: 0x2000, 0x28e: 0x2000, 0x28f: 0x2000, 0x290: 0x2000, 0x291: 0x2000, - 0x292: 0x2000, 0x293: 0x2000, 0x294: 0x2000, 0x295: 0x2000, 0x296: 0x2000, 0x297: 0x2000, - 0x298: 0x2000, 0x299: 0x2000, 0x29a: 0x2000, 0x29b: 0x2000, 0x29c: 0x2000, 0x29d: 0x2000, - 0x29e: 0x2000, 0x29f: 0x2000, 0x2a0: 0x2000, 0x2a1: 0x2000, 0x2a2: 0x2000, 0x2a3: 0x2000, - 0x2a4: 0x2000, 0x2a5: 0x2000, 0x2a6: 0x2000, 0x2a7: 0x2000, 0x2a8: 0x2000, 0x2a9: 0x2000, - 0x2aa: 0x2000, 0x2ab: 0x2000, 0x2ac: 0x2000, 0x2ad: 0x2000, 0x2ae: 0x2000, 0x2af: 0x2000, - 0x2b0: 0x2000, 0x2b1: 0x2000, 0x2b2: 0x2000, 0x2b3: 0x2000, 0x2b4: 0x2000, 0x2b5: 0x2000, - 0x2b6: 0x2000, 0x2b7: 0x2000, 0x2b8: 0x2000, 0x2b9: 0x2000, 0x2ba: 0x2000, 0x2bb: 0x2000, - 0x2bc: 0x2000, 0x2bd: 0x2000, 0x2be: 0x2000, 0x2bf: 0x2000, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x2000, 0x2c1: 0x2000, 0x2c2: 0x2000, 0x2c3: 0x2000, 0x2c4: 0x2000, 0x2c5: 0x2000, - 0x2c6: 0x2000, 0x2c7: 0x2000, 0x2c8: 0x2000, 0x2c9: 0x2000, 0x2ca: 0x2000, 0x2cb: 0x2000, - 0x2cc: 0x2000, 0x2cd: 0x2000, 0x2ce: 0x2000, 0x2cf: 0x2000, 0x2d0: 0x2000, 0x2d1: 0x2000, - 0x2d2: 0x2000, 0x2d3: 0x2000, 0x2d4: 0x2000, 0x2d5: 0x2000, 0x2d6: 0x2000, 0x2d7: 0x2000, - 0x2d8: 0x2000, 0x2d9: 0x2000, 0x2da: 0x2000, 0x2db: 0x2000, 0x2dc: 0x2000, 0x2dd: 0x2000, - 0x2de: 0x2000, 0x2df: 0x2000, 0x2e0: 0x2000, 0x2e1: 0x2000, 0x2e2: 0x2000, 0x2e3: 0x2000, - 0x2e4: 0x2000, 0x2e5: 0x2000, 0x2e6: 0x2000, 0x2e7: 0x2000, 0x2e8: 0x2000, 0x2e9: 0x2000, - 0x2ea: 0x2000, 0x2eb: 0x2000, 0x2ec: 0x2000, 0x2ed: 0x2000, 0x2ee: 0x2000, 0x2ef: 0x2000, - // Block 0xc, offset 0x300 - 0x311: 0x2000, - 0x312: 0x2000, 0x313: 0x2000, 0x314: 0x2000, 0x315: 0x2000, 0x316: 0x2000, 0x317: 0x2000, - 0x318: 0x2000, 0x319: 0x2000, 0x31a: 0x2000, 0x31b: 0x2000, 0x31c: 0x2000, 0x31d: 0x2000, - 0x31e: 0x2000, 0x31f: 0x2000, 0x320: 0x2000, 0x321: 0x2000, 0x323: 0x2000, - 0x324: 0x2000, 0x325: 0x2000, 0x326: 0x2000, 0x327: 0x2000, 0x328: 0x2000, 0x329: 0x2000, - 0x331: 0x2000, 0x332: 0x2000, 0x333: 0x2000, 0x334: 0x2000, 0x335: 0x2000, - 0x336: 0x2000, 0x337: 0x2000, 0x338: 0x2000, 0x339: 0x2000, 0x33a: 0x2000, 0x33b: 0x2000, - 0x33c: 0x2000, 0x33d: 0x2000, 0x33e: 0x2000, 0x33f: 0x2000, - // Block 0xd, offset 0x340 - 0x340: 0x2000, 0x341: 0x2000, 0x343: 0x2000, 0x344: 0x2000, 0x345: 0x2000, - 0x346: 0x2000, 0x347: 0x2000, 0x348: 0x2000, 0x349: 0x2000, - // Block 0xe, offset 0x380 - 0x381: 0x2000, - 0x390: 0x2000, 0x391: 0x2000, - 0x392: 0x2000, 0x393: 0x2000, 0x394: 0x2000, 0x395: 0x2000, 0x396: 0x2000, 0x397: 0x2000, - 0x398: 0x2000, 0x399: 0x2000, 0x39a: 0x2000, 0x39b: 0x2000, 0x39c: 0x2000, 0x39d: 0x2000, - 0x39e: 0x2000, 0x39f: 0x2000, 0x3a0: 0x2000, 0x3a1: 0x2000, 0x3a2: 0x2000, 0x3a3: 0x2000, - 0x3a4: 0x2000, 0x3a5: 0x2000, 0x3a6: 0x2000, 0x3a7: 0x2000, 0x3a8: 0x2000, 0x3a9: 0x2000, - 0x3aa: 0x2000, 0x3ab: 0x2000, 0x3ac: 0x2000, 0x3ad: 0x2000, 0x3ae: 0x2000, 0x3af: 0x2000, - 0x3b0: 0x2000, 0x3b1: 0x2000, 0x3b2: 0x2000, 0x3b3: 0x2000, 0x3b4: 0x2000, 0x3b5: 0x2000, - 0x3b6: 0x2000, 0x3b7: 0x2000, 0x3b8: 0x2000, 0x3b9: 0x2000, 0x3ba: 0x2000, 0x3bb: 0x2000, - 0x3bc: 0x2000, 0x3bd: 0x2000, 0x3be: 0x2000, 0x3bf: 0x2000, - // Block 0xf, offset 0x3c0 - 0x3c0: 0x2000, 0x3c1: 0x2000, 0x3c2: 0x2000, 0x3c3: 0x2000, 0x3c4: 0x2000, 0x3c5: 0x2000, - 0x3c6: 0x2000, 0x3c7: 0x2000, 0x3c8: 0x2000, 0x3c9: 0x2000, 0x3ca: 0x2000, 0x3cb: 0x2000, - 0x3cc: 0x2000, 0x3cd: 0x2000, 0x3ce: 0x2000, 0x3cf: 0x2000, 0x3d1: 0x2000, - // Block 0x10, offset 0x400 - 0x400: 0x4000, 0x401: 0x4000, 0x402: 0x4000, 0x403: 0x4000, 0x404: 0x4000, 0x405: 0x4000, - 0x406: 0x4000, 0x407: 0x4000, 0x408: 0x4000, 0x409: 0x4000, 0x40a: 0x4000, 0x40b: 0x4000, - 0x40c: 0x4000, 0x40d: 0x4000, 0x40e: 0x4000, 0x40f: 0x4000, 0x410: 0x4000, 0x411: 0x4000, - 0x412: 0x4000, 0x413: 0x4000, 0x414: 0x4000, 0x415: 0x4000, 0x416: 0x4000, 0x417: 0x4000, - 0x418: 0x4000, 0x419: 0x4000, 0x41a: 0x4000, 0x41b: 0x4000, 0x41c: 0x4000, 0x41d: 0x4000, - 0x41e: 0x4000, 0x41f: 0x4000, 0x420: 0x4000, 0x421: 0x4000, 0x422: 0x4000, 0x423: 0x4000, - 0x424: 0x4000, 0x425: 0x4000, 0x426: 0x4000, 0x427: 0x4000, 0x428: 0x4000, 0x429: 0x4000, - 0x42a: 0x4000, 0x42b: 0x4000, 0x42c: 0x4000, 0x42d: 0x4000, 0x42e: 0x4000, 0x42f: 0x4000, - 0x430: 0x4000, 0x431: 0x4000, 0x432: 0x4000, 0x433: 0x4000, 0x434: 0x4000, 0x435: 0x4000, - 0x436: 0x4000, 0x437: 0x4000, 0x438: 0x4000, 0x439: 0x4000, 0x43a: 0x4000, 0x43b: 0x4000, - 0x43c: 0x4000, 0x43d: 0x4000, 0x43e: 0x4000, 0x43f: 0x4000, - // Block 0x11, offset 0x440 - 0x440: 0x4000, 0x441: 0x4000, 0x442: 0x4000, 0x443: 0x4000, 0x444: 0x4000, 0x445: 0x4000, - 0x446: 0x4000, 0x447: 0x4000, 0x448: 0x4000, 0x449: 0x4000, 0x44a: 0x4000, 0x44b: 0x4000, - 0x44c: 0x4000, 0x44d: 0x4000, 0x44e: 0x4000, 0x44f: 0x4000, 0x450: 0x4000, 0x451: 0x4000, - 0x452: 0x4000, 0x453: 0x4000, 0x454: 0x4000, 0x455: 0x4000, 0x456: 0x4000, 0x457: 0x4000, - 0x458: 0x4000, 0x459: 0x4000, 0x45a: 0x4000, 0x45b: 0x4000, 0x45c: 0x4000, 0x45d: 0x4000, - 0x45e: 0x4000, 0x45f: 0x4000, - // Block 0x12, offset 0x480 - 0x490: 0x2000, - 0x493: 0x2000, 0x494: 0x2000, 0x495: 0x2000, 0x496: 0x2000, - 0x498: 0x2000, 0x499: 0x2000, 0x49c: 0x2000, 0x49d: 0x2000, - 0x4a0: 0x2000, 0x4a1: 0x2000, 0x4a2: 0x2000, - 0x4a4: 0x2000, 0x4a5: 0x2000, 0x4a6: 0x2000, 0x4a7: 0x2000, - 0x4b0: 0x2000, 0x4b2: 0x2000, 0x4b3: 0x2000, 0x4b5: 0x2000, - 0x4bb: 0x2000, - 0x4be: 0x2000, - // Block 0x13, offset 0x4c0 - 0x4f4: 0x2000, - 0x4ff: 0x2000, - // Block 0x14, offset 0x500 - 0x501: 0x2000, 0x502: 0x2000, 0x503: 0x2000, 0x504: 0x2000, - 0x529: 0xa009, - 0x52c: 0x2000, - // Block 0x15, offset 0x540 - 0x543: 0x2000, 0x545: 0x2000, - 0x549: 0x2000, - 0x553: 0x2000, 0x556: 0x2000, - 0x561: 0x2000, 0x562: 0x2000, - 0x566: 0x2000, - 0x56b: 0x2000, - // Block 0x16, offset 0x580 - 0x593: 0x2000, 0x594: 0x2000, - 0x59b: 0x2000, 0x59c: 0x2000, 0x59d: 0x2000, - 0x59e: 0x2000, 0x5a0: 0x2000, 0x5a1: 0x2000, 0x5a2: 0x2000, 0x5a3: 0x2000, - 0x5a4: 0x2000, 0x5a5: 0x2000, 0x5a6: 0x2000, 0x5a7: 0x2000, 0x5a8: 0x2000, 0x5a9: 0x2000, - 0x5aa: 0x2000, 0x5ab: 0x2000, - 0x5b0: 0x2000, 0x5b1: 0x2000, 0x5b2: 0x2000, 0x5b3: 0x2000, 0x5b4: 0x2000, 0x5b5: 0x2000, - 0x5b6: 0x2000, 0x5b7: 0x2000, 0x5b8: 0x2000, 0x5b9: 0x2000, - // Block 0x17, offset 0x5c0 - 0x5c9: 0x2000, - 0x5d0: 0x200a, 0x5d1: 0x200b, - 0x5d2: 0x200a, 0x5d3: 0x200c, 0x5d4: 0x2000, 0x5d5: 0x2000, 0x5d6: 0x2000, 0x5d7: 0x2000, - 0x5d8: 0x2000, 0x5d9: 0x2000, - 0x5f8: 0x2000, 0x5f9: 0x2000, - // Block 0x18, offset 0x600 - 0x612: 0x2000, 0x614: 0x2000, - 0x627: 0x2000, - // Block 0x19, offset 0x640 - 0x640: 0x2000, 0x642: 0x2000, 0x643: 0x2000, - 0x647: 0x2000, 0x648: 0x2000, 0x64b: 0x2000, - 0x64f: 0x2000, 0x651: 0x2000, - 0x655: 0x2000, - 0x65a: 0x2000, 0x65d: 0x2000, - 0x65e: 0x2000, 0x65f: 0x2000, 0x660: 0x2000, 0x663: 0x2000, - 0x665: 0x2000, 0x667: 0x2000, 0x668: 0x2000, 0x669: 0x2000, - 0x66a: 0x2000, 0x66b: 0x2000, 0x66c: 0x2000, 0x66e: 0x2000, - 0x674: 0x2000, 0x675: 0x2000, - 0x676: 0x2000, 0x677: 0x2000, - 0x67c: 0x2000, 0x67d: 0x2000, - // Block 0x1a, offset 0x680 - 0x688: 0x2000, - 0x68c: 0x2000, - 0x692: 0x2000, - 0x6a0: 0x2000, 0x6a1: 0x2000, - 0x6a4: 0x2000, 0x6a5: 0x2000, 0x6a6: 0x2000, 0x6a7: 0x2000, - 0x6aa: 0x2000, 0x6ab: 0x2000, 0x6ae: 0x2000, 0x6af: 0x2000, - // Block 0x1b, offset 0x6c0 - 0x6c2: 0x2000, 0x6c3: 0x2000, - 0x6c6: 0x2000, 0x6c7: 0x2000, - 0x6d5: 0x2000, - 0x6d9: 0x2000, - 0x6e5: 0x2000, - 0x6ff: 0x2000, - // Block 0x1c, offset 0x700 - 0x712: 0x2000, - 0x729: 0x4000, - 0x72a: 0x4000, - // Block 0x1d, offset 0x740 - 0x760: 0x2000, 0x761: 0x2000, 0x762: 0x2000, 0x763: 0x2000, - 0x764: 0x2000, 0x765: 0x2000, 0x766: 0x2000, 0x767: 0x2000, 0x768: 0x2000, 0x769: 0x2000, - 0x76a: 0x2000, 0x76b: 0x2000, 0x76c: 0x2000, 0x76d: 0x2000, 0x76e: 0x2000, 0x76f: 0x2000, - 0x770: 0x2000, 0x771: 0x2000, 0x772: 0x2000, 0x773: 0x2000, 0x774: 0x2000, 0x775: 0x2000, - 0x776: 0x2000, 0x777: 0x2000, 0x778: 0x2000, 0x779: 0x2000, 0x77a: 0x2000, 0x77b: 0x2000, - 0x77c: 0x2000, 0x77d: 0x2000, 0x77e: 0x2000, 0x77f: 0x2000, - // Block 0x1e, offset 0x780 - 0x780: 0x2000, 0x781: 0x2000, 0x782: 0x2000, 0x783: 0x2000, 0x784: 0x2000, 0x785: 0x2000, - 0x786: 0x2000, 0x787: 0x2000, 0x788: 0x2000, 0x789: 0x2000, 0x78a: 0x2000, 0x78b: 0x2000, - 0x78c: 0x2000, 0x78d: 0x2000, 0x78e: 0x2000, 0x78f: 0x2000, 0x790: 0x2000, 0x791: 0x2000, - 0x792: 0x2000, 0x793: 0x2000, 0x794: 0x2000, 0x795: 0x2000, 0x796: 0x2000, 0x797: 0x2000, - 0x798: 0x2000, 0x799: 0x2000, 0x79a: 0x2000, 0x79b: 0x2000, 0x79c: 0x2000, 0x79d: 0x2000, - 0x79e: 0x2000, 0x79f: 0x2000, 0x7a0: 0x2000, 0x7a1: 0x2000, 0x7a2: 0x2000, 0x7a3: 0x2000, - 0x7a4: 0x2000, 0x7a5: 0x2000, 0x7a6: 0x2000, 0x7a7: 0x2000, 0x7a8: 0x2000, 0x7a9: 0x2000, - 0x7ab: 0x2000, 0x7ac: 0x2000, 0x7ad: 0x2000, 0x7ae: 0x2000, 0x7af: 0x2000, - 0x7b0: 0x2000, 0x7b1: 0x2000, 0x7b2: 0x2000, 0x7b3: 0x2000, 0x7b4: 0x2000, 0x7b5: 0x2000, - 0x7b6: 0x2000, 0x7b7: 0x2000, 0x7b8: 0x2000, 0x7b9: 0x2000, 0x7ba: 0x2000, 0x7bb: 0x2000, - 0x7bc: 0x2000, 0x7bd: 0x2000, 0x7be: 0x2000, 0x7bf: 0x2000, - // Block 0x1f, offset 0x7c0 - 0x7c0: 0x2000, 0x7c1: 0x2000, 0x7c2: 0x200d, 0x7c3: 0x2000, 0x7c4: 0x2000, 0x7c5: 0x2000, - 0x7c6: 0x2000, 0x7c7: 0x2000, 0x7c8: 0x2000, 0x7c9: 0x2000, 0x7ca: 0x2000, 0x7cb: 0x2000, - 0x7cc: 0x2000, 0x7cd: 0x2000, 0x7ce: 0x2000, 0x7cf: 0x2000, 0x7d0: 0x2000, 0x7d1: 0x2000, - 0x7d2: 0x2000, 0x7d3: 0x2000, 0x7d4: 0x2000, 0x7d5: 0x2000, 0x7d6: 0x2000, 0x7d7: 0x2000, - 0x7d8: 0x2000, 0x7d9: 0x2000, 0x7da: 0x2000, 0x7db: 0x2000, 0x7dc: 0x2000, 0x7dd: 0x2000, - 0x7de: 0x2000, 0x7df: 0x2000, 0x7e0: 0x2000, 0x7e1: 0x2000, 0x7e2: 0x2000, 0x7e3: 0x2000, - 0x7e4: 0x2000, 0x7e5: 0x2000, 0x7e6: 0x2000, 0x7e7: 0x2000, 0x7e8: 0x2000, 0x7e9: 0x2000, - 0x7ea: 0x2000, 0x7eb: 0x2000, 0x7ec: 0x2000, 0x7ed: 0x2000, 0x7ee: 0x2000, 0x7ef: 0x2000, - 0x7f0: 0x2000, 0x7f1: 0x2000, 0x7f2: 0x2000, 0x7f3: 0x2000, 0x7f4: 0x2000, 0x7f5: 0x2000, - 0x7f6: 0x2000, 0x7f7: 0x2000, 0x7f8: 0x2000, 0x7f9: 0x2000, 0x7fa: 0x2000, 0x7fb: 0x2000, - 0x7fc: 0x2000, 0x7fd: 0x2000, 0x7fe: 0x2000, 0x7ff: 0x2000, - // Block 0x20, offset 0x800 - 0x800: 0x2000, 0x801: 0x2000, 0x802: 0x2000, 0x803: 0x2000, 0x804: 0x2000, 0x805: 0x2000, - 0x806: 0x2000, 0x807: 0x2000, 0x808: 0x2000, 0x809: 0x2000, 0x80a: 0x2000, 0x80b: 0x2000, - 0x810: 0x2000, 0x811: 0x2000, - 0x812: 0x2000, 0x813: 0x2000, 0x814: 0x2000, 0x815: 0x2000, 0x816: 0x2000, 0x817: 0x2000, - 0x818: 0x2000, 0x819: 0x2000, 0x81a: 0x2000, 0x81b: 0x2000, 0x81c: 0x2000, 0x81d: 0x2000, - 0x81e: 0x2000, 0x81f: 0x2000, 0x820: 0x2000, 0x821: 0x2000, 0x822: 0x2000, 0x823: 0x2000, - 0x824: 0x2000, 0x825: 0x2000, 0x826: 0x2000, 0x827: 0x2000, 0x828: 0x2000, 0x829: 0x2000, - 0x82a: 0x2000, 0x82b: 0x2000, 0x82c: 0x2000, 0x82d: 0x2000, 0x82e: 0x2000, 0x82f: 0x2000, - 0x830: 0x2000, 0x831: 0x2000, 0x832: 0x2000, 0x833: 0x2000, - // Block 0x21, offset 0x840 - 0x840: 0x2000, 0x841: 0x2000, 0x842: 0x2000, 0x843: 0x2000, 0x844: 0x2000, 0x845: 0x2000, - 0x846: 0x2000, 0x847: 0x2000, 0x848: 0x2000, 0x849: 0x2000, 0x84a: 0x2000, 0x84b: 0x2000, - 0x84c: 0x2000, 0x84d: 0x2000, 0x84e: 0x2000, 0x84f: 0x2000, - 0x852: 0x2000, 0x853: 0x2000, 0x854: 0x2000, 0x855: 0x2000, - 0x860: 0x200e, 0x861: 0x2000, 0x863: 0x2000, - 0x864: 0x2000, 0x865: 0x2000, 0x866: 0x2000, 0x867: 0x2000, 0x868: 0x2000, 0x869: 0x2000, - 0x872: 0x2000, 0x873: 0x2000, - 0x876: 0x2000, 0x877: 0x2000, - 0x87c: 0x2000, 0x87d: 0x2000, - // Block 0x22, offset 0x880 - 0x880: 0x2000, 0x881: 0x2000, - 0x886: 0x2000, 0x887: 0x2000, 0x888: 0x2000, 0x88b: 0x200f, - 0x88e: 0x2000, 0x88f: 0x2000, 0x890: 0x2000, 0x891: 0x2000, - 0x8a2: 0x2000, 0x8a3: 0x2000, - 0x8a4: 0x2000, 0x8a5: 0x2000, - 0x8af: 0x2000, - // Block 0x23, offset 0x8c0 - 0x8c5: 0x2000, - 0x8c6: 0x2000, 0x8c9: 0x2000, - 0x8ce: 0x2000, 0x8cf: 0x2000, - 0x8d4: 0x2000, 0x8d5: 0x2000, - 0x8dc: 0x2000, - 0x8de: 0x2000, - // Block 0x24, offset 0x900 - 0x900: 0x2000, 0x902: 0x2000, - 0x920: 0x2000, 0x921: 0x2000, 0x923: 0x2000, - 0x924: 0x2000, 0x925: 0x2000, 0x927: 0x2000, 0x928: 0x2000, 0x929: 0x2000, - 0x92a: 0x2000, 0x92c: 0x2000, 0x92d: 0x2000, 0x92f: 0x2000, - // Block 0x25, offset 0x940 - 0x95e: 0x2000, 0x95f: 0x2000, - 0x97e: 0x2000, 0x97f: 0x2000, - // Block 0x26, offset 0x980 - 0x984: 0x2000, 0x985: 0x2000, - 0x986: 0x2000, 0x987: 0x2000, 0x988: 0x2000, 0x989: 0x2000, 0x98a: 0x2000, 0x98b: 0x2000, - 0x98c: 0x2000, 0x98d: 0x2000, 0x98f: 0x2000, 0x990: 0x2000, 0x991: 0x2000, - 0x992: 0x2000, 0x993: 0x2000, 0x994: 0x2000, 0x995: 0x2000, 0x996: 0x2000, 0x997: 0x2000, - 0x998: 0x2000, 0x999: 0x2000, 0x99a: 0x2000, 0x99b: 0x2000, 0x99c: 0x2000, 0x99d: 0x2000, - 0x99e: 0x2000, 0x99f: 0x2000, 0x9a0: 0x2000, 0x9a1: 0x2000, 0x9a3: 0x2000, - 0x9a8: 0x2000, 0x9a9: 0x2000, - 0x9aa: 0x2000, 0x9ab: 0x2000, 0x9ac: 0x2000, 0x9ad: 0x2000, 0x9ae: 0x2000, 0x9af: 0x2000, - 0x9b0: 0x2000, 0x9b1: 0x2000, 0x9b2: 0x2000, 0x9b3: 0x2000, 0x9b4: 0x2000, 0x9b5: 0x2000, - 0x9b6: 0x2000, 0x9b7: 0x2000, 0x9b8: 0x2000, 0x9b9: 0x2000, 0x9ba: 0x2000, 0x9bb: 0x2000, - 0x9bc: 0x2000, 0x9bd: 0x2000, 0x9be: 0x2000, 0x9bf: 0x2000, - // Block 0x27, offset 0x9c0 - 0x9fd: 0x2000, - // Block 0x28, offset 0xa00 - 0xa17: 0x2000, - 0xa36: 0x2000, 0xa37: 0x2000, 0xa38: 0x2000, 0xa39: 0x2000, 0xa3a: 0x2000, 0xa3b: 0x2000, - 0xa3c: 0x2000, 0xa3d: 0x2000, 0xa3e: 0x2000, 0xa3f: 0x2000, - // Block 0x29, offset 0xa40 - 0xa66: 0x6000, 0xa67: 0x6000, 0xa68: 0x6000, 0xa69: 0x6000, - 0xa6a: 0x6000, 0xa6b: 0x6000, 0xa6c: 0x6000, 0xa6d: 0x6000, - // Block 0x2a, offset 0xa80 - 0xa85: 0x6010, - 0xa86: 0x6011, - // Block 0x2b, offset 0xac0 - 0xad5: 0x2000, 0xad6: 0x2000, 0xad7: 0x2000, - 0xad8: 0x2000, 0xad9: 0x2000, - // Block 0x2c, offset 0xb00 - 0xb00: 0x4000, 0xb01: 0x4000, 0xb02: 0x4000, 0xb03: 0x4000, 0xb04: 0x4000, 0xb05: 0x4000, - 0xb06: 0x4000, 0xb07: 0x4000, 0xb08: 0x4000, 0xb09: 0x4000, 0xb0a: 0x4000, 0xb0b: 0x4000, - 0xb0c: 0x4000, 0xb0d: 0x4000, 0xb0e: 0x4000, 0xb0f: 0x4000, 0xb10: 0x4000, 0xb11: 0x4000, - 0xb12: 0x4000, 0xb13: 0x4000, 0xb14: 0x4000, 0xb15: 0x4000, 0xb16: 0x4000, 0xb17: 0x4000, - 0xb18: 0x4000, 0xb19: 0x4000, 0xb1b: 0x4000, 0xb1c: 0x4000, 0xb1d: 0x4000, - 0xb1e: 0x4000, 0xb1f: 0x4000, 0xb20: 0x4000, 0xb21: 0x4000, 0xb22: 0x4000, 0xb23: 0x4000, - 0xb24: 0x4000, 0xb25: 0x4000, 0xb26: 0x4000, 0xb27: 0x4000, 0xb28: 0x4000, 0xb29: 0x4000, - 0xb2a: 0x4000, 0xb2b: 0x4000, 0xb2c: 0x4000, 0xb2d: 0x4000, 0xb2e: 0x4000, 0xb2f: 0x4000, - 0xb30: 0x4000, 0xb31: 0x4000, 0xb32: 0x4000, 0xb33: 0x4000, 0xb34: 0x4000, 0xb35: 0x4000, - 0xb36: 0x4000, 0xb37: 0x4000, 0xb38: 0x4000, 0xb39: 0x4000, 0xb3a: 0x4000, 0xb3b: 0x4000, - 0xb3c: 0x4000, 0xb3d: 0x4000, 0xb3e: 0x4000, 0xb3f: 0x4000, - // Block 0x2d, offset 0xb40 - 0xb40: 0x4000, 0xb41: 0x4000, 0xb42: 0x4000, 0xb43: 0x4000, 0xb44: 0x4000, 0xb45: 0x4000, - 0xb46: 0x4000, 0xb47: 0x4000, 0xb48: 0x4000, 0xb49: 0x4000, 0xb4a: 0x4000, 0xb4b: 0x4000, - 0xb4c: 0x4000, 0xb4d: 0x4000, 0xb4e: 0x4000, 0xb4f: 0x4000, 0xb50: 0x4000, 0xb51: 0x4000, - 0xb52: 0x4000, 0xb53: 0x4000, 0xb54: 0x4000, 0xb55: 0x4000, 0xb56: 0x4000, 0xb57: 0x4000, - 0xb58: 0x4000, 0xb59: 0x4000, 0xb5a: 0x4000, 0xb5b: 0x4000, 0xb5c: 0x4000, 0xb5d: 0x4000, - 0xb5e: 0x4000, 0xb5f: 0x4000, 0xb60: 0x4000, 0xb61: 0x4000, 0xb62: 0x4000, 0xb63: 0x4000, - 0xb64: 0x4000, 0xb65: 0x4000, 0xb66: 0x4000, 0xb67: 0x4000, 0xb68: 0x4000, 0xb69: 0x4000, - 0xb6a: 0x4000, 0xb6b: 0x4000, 0xb6c: 0x4000, 0xb6d: 0x4000, 0xb6e: 0x4000, 0xb6f: 0x4000, - 0xb70: 0x4000, 0xb71: 0x4000, 0xb72: 0x4000, 0xb73: 0x4000, - // Block 0x2e, offset 0xb80 - 0xb80: 0x4000, 0xb81: 0x4000, 0xb82: 0x4000, 0xb83: 0x4000, 0xb84: 0x4000, 0xb85: 0x4000, - 0xb86: 0x4000, 0xb87: 0x4000, 0xb88: 0x4000, 0xb89: 0x4000, 0xb8a: 0x4000, 0xb8b: 0x4000, - 0xb8c: 0x4000, 0xb8d: 0x4000, 0xb8e: 0x4000, 0xb8f: 0x4000, 0xb90: 0x4000, 0xb91: 0x4000, - 0xb92: 0x4000, 0xb93: 0x4000, 0xb94: 0x4000, 0xb95: 0x4000, - 0xbb0: 0x4000, 0xbb1: 0x4000, 0xbb2: 0x4000, 0xbb3: 0x4000, 0xbb4: 0x4000, 0xbb5: 0x4000, - 0xbb6: 0x4000, 0xbb7: 0x4000, 0xbb8: 0x4000, 0xbb9: 0x4000, 0xbba: 0x4000, 0xbbb: 0x4000, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x9012, 0xbc1: 0x4013, 0xbc2: 0x4014, 0xbc3: 0x4000, 0xbc4: 0x4000, 0xbc5: 0x4000, - 0xbc6: 0x4000, 0xbc7: 0x4000, 0xbc8: 0x4000, 0xbc9: 0x4000, 0xbca: 0x4000, 0xbcb: 0x4000, - 0xbcc: 0x4015, 0xbcd: 0x4015, 0xbce: 0x4000, 0xbcf: 0x4000, 0xbd0: 0x4000, 0xbd1: 0x4000, - 0xbd2: 0x4000, 0xbd3: 0x4000, 0xbd4: 0x4000, 0xbd5: 0x4000, 0xbd6: 0x4000, 0xbd7: 0x4000, - 0xbd8: 0x4000, 0xbd9: 0x4000, 0xbda: 0x4000, 0xbdb: 0x4000, 0xbdc: 0x4000, 0xbdd: 0x4000, - 0xbde: 0x4000, 0xbdf: 0x4000, 0xbe0: 0x4000, 0xbe1: 0x4000, 0xbe2: 0x4000, 0xbe3: 0x4000, - 0xbe4: 0x4000, 0xbe5: 0x4000, 0xbe6: 0x4000, 0xbe7: 0x4000, 0xbe8: 0x4000, 0xbe9: 0x4000, - 0xbea: 0x4000, 0xbeb: 0x4000, 0xbec: 0x4000, 0xbed: 0x4000, 0xbee: 0x4000, 0xbef: 0x4000, - 0xbf0: 0x4000, 0xbf1: 0x4000, 0xbf2: 0x4000, 0xbf3: 0x4000, 0xbf4: 0x4000, 0xbf5: 0x4000, - 0xbf6: 0x4000, 0xbf7: 0x4000, 0xbf8: 0x4000, 0xbf9: 0x4000, 0xbfa: 0x4000, 0xbfb: 0x4000, - 0xbfc: 0x4000, 0xbfd: 0x4000, 0xbfe: 0x4000, - // Block 0x30, offset 0xc00 - 0xc01: 0x4000, 0xc02: 0x4000, 0xc03: 0x4000, 0xc04: 0x4000, 0xc05: 0x4000, - 0xc06: 0x4000, 0xc07: 0x4000, 0xc08: 0x4000, 0xc09: 0x4000, 0xc0a: 0x4000, 0xc0b: 0x4000, - 0xc0c: 0x4000, 0xc0d: 0x4000, 0xc0e: 0x4000, 0xc0f: 0x4000, 0xc10: 0x4000, 0xc11: 0x4000, - 0xc12: 0x4000, 0xc13: 0x4000, 0xc14: 0x4000, 0xc15: 0x4000, 0xc16: 0x4000, 0xc17: 0x4000, - 0xc18: 0x4000, 0xc19: 0x4000, 0xc1a: 0x4000, 0xc1b: 0x4000, 0xc1c: 0x4000, 0xc1d: 0x4000, - 0xc1e: 0x4000, 0xc1f: 0x4000, 0xc20: 0x4000, 0xc21: 0x4000, 0xc22: 0x4000, 0xc23: 0x4000, - 0xc24: 0x4000, 0xc25: 0x4000, 0xc26: 0x4000, 0xc27: 0x4000, 0xc28: 0x4000, 0xc29: 0x4000, - 0xc2a: 0x4000, 0xc2b: 0x4000, 0xc2c: 0x4000, 0xc2d: 0x4000, 0xc2e: 0x4000, 0xc2f: 0x4000, - 0xc30: 0x4000, 0xc31: 0x4000, 0xc32: 0x4000, 0xc33: 0x4000, 0xc34: 0x4000, 0xc35: 0x4000, - 0xc36: 0x4000, 0xc37: 0x4000, 0xc38: 0x4000, 0xc39: 0x4000, 0xc3a: 0x4000, 0xc3b: 0x4000, - 0xc3c: 0x4000, 0xc3d: 0x4000, 0xc3e: 0x4000, 0xc3f: 0x4000, - // Block 0x31, offset 0xc40 - 0xc40: 0x4000, 0xc41: 0x4000, 0xc42: 0x4000, 0xc43: 0x4000, 0xc44: 0x4000, 0xc45: 0x4000, - 0xc46: 0x4000, 0xc47: 0x4000, 0xc48: 0x4000, 0xc49: 0x4000, 0xc4a: 0x4000, 0xc4b: 0x4000, - 0xc4c: 0x4000, 0xc4d: 0x4000, 0xc4e: 0x4000, 0xc4f: 0x4000, 0xc50: 0x4000, 0xc51: 0x4000, - 0xc52: 0x4000, 0xc53: 0x4000, 0xc54: 0x4000, 0xc55: 0x4000, 0xc56: 0x4000, - 0xc59: 0x4016, 0xc5a: 0x4017, 0xc5b: 0x4000, 0xc5c: 0x4000, 0xc5d: 0x4000, - 0xc5e: 0x4000, 0xc5f: 0x4000, 0xc60: 0x4000, 0xc61: 0x4018, 0xc62: 0x4019, 0xc63: 0x401a, - 0xc64: 0x401b, 0xc65: 0x401c, 0xc66: 0x401d, 0xc67: 0x401e, 0xc68: 0x401f, 0xc69: 0x4020, - 0xc6a: 0x4021, 0xc6b: 0x4022, 0xc6c: 0x4000, 0xc6d: 0x4010, 0xc6e: 0x4000, 0xc6f: 0x4023, - 0xc70: 0x4000, 0xc71: 0x4024, 0xc72: 0x4000, 0xc73: 0x4025, 0xc74: 0x4000, 0xc75: 0x4026, - 0xc76: 0x4000, 0xc77: 0x401a, 0xc78: 0x4000, 0xc79: 0x4027, 0xc7a: 0x4000, 0xc7b: 0x4028, - 0xc7c: 0x4000, 0xc7d: 0x4020, 0xc7e: 0x4000, 0xc7f: 0x4029, - // Block 0x32, offset 0xc80 - 0xc80: 0x4000, 0xc81: 0x402a, 0xc82: 0x4000, 0xc83: 0x402b, 0xc84: 0x402c, 0xc85: 0x4000, - 0xc86: 0x4017, 0xc87: 0x4000, 0xc88: 0x402d, 0xc89: 0x4000, 0xc8a: 0x402e, 0xc8b: 0x402f, - 0xc8c: 0x4030, 0xc8d: 0x4017, 0xc8e: 0x4016, 0xc8f: 0x4017, 0xc90: 0x4000, 0xc91: 0x4000, - 0xc92: 0x4031, 0xc93: 0x4000, 0xc94: 0x4000, 0xc95: 0x4031, 0xc96: 0x4000, 0xc97: 0x4000, - 0xc98: 0x4032, 0xc99: 0x4000, 0xc9a: 0x4000, 0xc9b: 0x4032, 0xc9c: 0x4000, 0xc9d: 0x4000, - 0xc9e: 0x4033, 0xc9f: 0x402e, 0xca0: 0x4034, 0xca1: 0x4035, 0xca2: 0x4034, 0xca3: 0x4036, - 0xca4: 0x4037, 0xca5: 0x4024, 0xca6: 0x4035, 0xca7: 0x4025, 0xca8: 0x4038, 0xca9: 0x4038, - 0xcaa: 0x4039, 0xcab: 0x4039, 0xcac: 0x403a, 0xcad: 0x403a, 0xcae: 0x4000, 0xcaf: 0x4035, - 0xcb0: 0x4000, 0xcb1: 0x4000, 0xcb2: 0x403b, 0xcb3: 0x403c, 0xcb4: 0x4000, 0xcb5: 0x4000, - 0xcb6: 0x4000, 0xcb7: 0x4000, 0xcb8: 0x4000, 0xcb9: 0x4000, 0xcba: 0x4000, 0xcbb: 0x403d, - 0xcbc: 0x401c, 0xcbd: 0x4000, 0xcbe: 0x4000, 0xcbf: 0x4000, - // Block 0x33, offset 0xcc0 - 0xcc5: 0x4000, - 0xcc6: 0x4000, 0xcc7: 0x4000, 0xcc8: 0x4000, 0xcc9: 0x4000, 0xcca: 0x4000, 0xccb: 0x4000, - 0xccc: 0x4000, 0xccd: 0x4000, 0xcce: 0x4000, 0xccf: 0x4000, 0xcd0: 0x4000, 0xcd1: 0x4000, - 0xcd2: 0x4000, 0xcd3: 0x4000, 0xcd4: 0x4000, 0xcd5: 0x4000, 0xcd6: 0x4000, 0xcd7: 0x4000, - 0xcd8: 0x4000, 0xcd9: 0x4000, 0xcda: 0x4000, 0xcdb: 0x4000, 0xcdc: 0x4000, 0xcdd: 0x4000, - 0xcde: 0x4000, 0xcdf: 0x4000, 0xce0: 0x4000, 0xce1: 0x4000, 0xce2: 0x4000, 0xce3: 0x4000, - 0xce4: 0x4000, 0xce5: 0x4000, 0xce6: 0x4000, 0xce7: 0x4000, 0xce8: 0x4000, 0xce9: 0x4000, - 0xcea: 0x4000, 0xceb: 0x4000, 0xcec: 0x4000, 0xced: 0x4000, - 0xcf1: 0x403e, 0xcf2: 0x403e, 0xcf3: 0x403e, 0xcf4: 0x403e, 0xcf5: 0x403e, - 0xcf6: 0x403e, 0xcf7: 0x403e, 0xcf8: 0x403e, 0xcf9: 0x403e, 0xcfa: 0x403e, 0xcfb: 0x403e, - 0xcfc: 0x403e, 0xcfd: 0x403e, 0xcfe: 0x403e, 0xcff: 0x403e, - // Block 0x34, offset 0xd00 - 0xd00: 0x4037, 0xd01: 0x4037, 0xd02: 0x4037, 0xd03: 0x4037, 0xd04: 0x4037, 0xd05: 0x4037, - 0xd06: 0x4037, 0xd07: 0x4037, 0xd08: 0x4037, 0xd09: 0x4037, 0xd0a: 0x4037, 0xd0b: 0x4037, - 0xd0c: 0x4037, 0xd0d: 0x4037, 0xd0e: 0x4037, 0xd0f: 0x400e, 0xd10: 0x403f, 0xd11: 0x4040, - 0xd12: 0x4041, 0xd13: 0x4040, 0xd14: 0x403f, 0xd15: 0x4042, 0xd16: 0x4043, 0xd17: 0x4044, - 0xd18: 0x4040, 0xd19: 0x4041, 0xd1a: 0x4040, 0xd1b: 0x4045, 0xd1c: 0x4009, 0xd1d: 0x4045, - 0xd1e: 0x4046, 0xd1f: 0x4045, 0xd20: 0x4047, 0xd21: 0x400b, 0xd22: 0x400a, 0xd23: 0x400c, - 0xd24: 0x4048, 0xd25: 0x4000, 0xd26: 0x4000, 0xd27: 0x4000, 0xd28: 0x4000, 0xd29: 0x4000, - 0xd2a: 0x4000, 0xd2b: 0x4000, 0xd2c: 0x4000, 0xd2d: 0x4000, 0xd2e: 0x4000, 0xd2f: 0x4000, - 0xd30: 0x4000, 0xd31: 0x4000, 0xd32: 0x4000, 0xd33: 0x4000, 0xd34: 0x4000, 0xd35: 0x4000, - 0xd36: 0x4000, 0xd37: 0x4000, 0xd38: 0x4000, 0xd39: 0x4000, 0xd3a: 0x4000, 0xd3b: 0x4000, - 0xd3c: 0x4000, 0xd3d: 0x4000, 0xd3e: 0x4000, 0xd3f: 0x4000, - // Block 0x35, offset 0xd40 - 0xd40: 0x4000, 0xd41: 0x4000, 0xd42: 0x4000, 0xd43: 0x4000, 0xd44: 0x4000, 0xd45: 0x4000, - 0xd46: 0x4000, 0xd47: 0x4000, 0xd48: 0x4000, 0xd49: 0x4000, 0xd4a: 0x4000, 0xd4b: 0x4000, - 0xd4c: 0x4000, 0xd4d: 0x4000, 0xd4e: 0x4000, 0xd50: 0x4000, 0xd51: 0x4000, - 0xd52: 0x4000, 0xd53: 0x4000, 0xd54: 0x4000, 0xd55: 0x4000, 0xd56: 0x4000, 0xd57: 0x4000, - 0xd58: 0x4000, 0xd59: 0x4000, 0xd5a: 0x4000, 0xd5b: 0x4000, 0xd5c: 0x4000, 0xd5d: 0x4000, - 0xd5e: 0x4000, 0xd5f: 0x4000, 0xd60: 0x4000, 0xd61: 0x4000, 0xd62: 0x4000, 0xd63: 0x4000, - 0xd64: 0x4000, 0xd65: 0x4000, 0xd66: 0x4000, 0xd67: 0x4000, 0xd68: 0x4000, 0xd69: 0x4000, - 0xd6a: 0x4000, 0xd6b: 0x4000, 0xd6c: 0x4000, 0xd6d: 0x4000, 0xd6e: 0x4000, 0xd6f: 0x4000, - 0xd70: 0x4000, 0xd71: 0x4000, 0xd72: 0x4000, 0xd73: 0x4000, 0xd74: 0x4000, 0xd75: 0x4000, - 0xd76: 0x4000, 0xd77: 0x4000, 0xd78: 0x4000, 0xd79: 0x4000, 0xd7a: 0x4000, - // Block 0x36, offset 0xd80 - 0xd80: 0x4000, 0xd81: 0x4000, 0xd82: 0x4000, 0xd83: 0x4000, 0xd84: 0x4000, 0xd85: 0x4000, - 0xd86: 0x4000, 0xd87: 0x4000, 0xd88: 0x4000, 0xd89: 0x4000, 0xd8a: 0x4000, 0xd8b: 0x4000, - 0xd8c: 0x4000, 0xd8d: 0x4000, 0xd8e: 0x4000, 0xd8f: 0x4000, 0xd90: 0x4000, 0xd91: 0x4000, - 0xd92: 0x4000, 0xd93: 0x4000, 0xd94: 0x4000, 0xd95: 0x4000, 0xd96: 0x4000, 0xd97: 0x4000, - 0xd98: 0x4000, 0xd99: 0x4000, 0xd9a: 0x4000, 0xd9b: 0x4000, 0xd9c: 0x4000, 0xd9d: 0x4000, - 0xd9e: 0x4000, 0xd9f: 0x4000, 0xda0: 0x4000, 0xda1: 0x4000, 0xda2: 0x4000, 0xda3: 0x4000, - 0xdb0: 0x4000, 0xdb1: 0x4000, 0xdb2: 0x4000, 0xdb3: 0x4000, 0xdb4: 0x4000, 0xdb5: 0x4000, - 0xdb6: 0x4000, 0xdb7: 0x4000, 0xdb8: 0x4000, 0xdb9: 0x4000, 0xdba: 0x4000, 0xdbb: 0x4000, - 0xdbc: 0x4000, 0xdbd: 0x4000, 0xdbe: 0x4000, 0xdbf: 0x4000, - // Block 0x37, offset 0xdc0 - 0xdc0: 0x4000, 0xdc1: 0x4000, 0xdc2: 0x4000, 0xdc3: 0x4000, 0xdc4: 0x4000, 0xdc5: 0x4000, - 0xdc6: 0x4000, 0xdc7: 0x4000, 0xdc8: 0x4000, 0xdc9: 0x4000, 0xdca: 0x4000, 0xdcb: 0x4000, - 0xdcc: 0x4000, 0xdcd: 0x4000, 0xdce: 0x4000, 0xdcf: 0x4000, 0xdd0: 0x4000, 0xdd1: 0x4000, - 0xdd2: 0x4000, 0xdd3: 0x4000, 0xdd4: 0x4000, 0xdd5: 0x4000, 0xdd6: 0x4000, 0xdd7: 0x4000, - 0xdd8: 0x4000, 0xdd9: 0x4000, 0xdda: 0x4000, 0xddb: 0x4000, 0xddc: 0x4000, 0xddd: 0x4000, - 0xdde: 0x4000, 0xde0: 0x4000, 0xde1: 0x4000, 0xde2: 0x4000, 0xde3: 0x4000, - 0xde4: 0x4000, 0xde5: 0x4000, 0xde6: 0x4000, 0xde7: 0x4000, 0xde8: 0x4000, 0xde9: 0x4000, - 0xdea: 0x4000, 0xdeb: 0x4000, 0xdec: 0x4000, 0xded: 0x4000, 0xdee: 0x4000, 0xdef: 0x4000, - 0xdf0: 0x4000, 0xdf1: 0x4000, 0xdf2: 0x4000, 0xdf3: 0x4000, 0xdf4: 0x4000, 0xdf5: 0x4000, - 0xdf6: 0x4000, 0xdf7: 0x4000, 0xdf8: 0x4000, 0xdf9: 0x4000, 0xdfa: 0x4000, 0xdfb: 0x4000, - 0xdfc: 0x4000, 0xdfd: 0x4000, 0xdfe: 0x4000, 0xdff: 0x4000, - // Block 0x38, offset 0xe00 - 0xe00: 0x4000, 0xe01: 0x4000, 0xe02: 0x4000, 0xe03: 0x4000, 0xe04: 0x4000, 0xe05: 0x4000, - 0xe06: 0x4000, 0xe07: 0x4000, 0xe08: 0x2000, 0xe09: 0x2000, 0xe0a: 0x2000, 0xe0b: 0x2000, - 0xe0c: 0x2000, 0xe0d: 0x2000, 0xe0e: 0x2000, 0xe0f: 0x2000, 0xe10: 0x4000, 0xe11: 0x4000, - 0xe12: 0x4000, 0xe13: 0x4000, 0xe14: 0x4000, 0xe15: 0x4000, 0xe16: 0x4000, 0xe17: 0x4000, - 0xe18: 0x4000, 0xe19: 0x4000, 0xe1a: 0x4000, 0xe1b: 0x4000, 0xe1c: 0x4000, 0xe1d: 0x4000, - 0xe1e: 0x4000, 0xe1f: 0x4000, 0xe20: 0x4000, 0xe21: 0x4000, 0xe22: 0x4000, 0xe23: 0x4000, - 0xe24: 0x4000, 0xe25: 0x4000, 0xe26: 0x4000, 0xe27: 0x4000, 0xe28: 0x4000, 0xe29: 0x4000, - 0xe2a: 0x4000, 0xe2b: 0x4000, 0xe2c: 0x4000, 0xe2d: 0x4000, 0xe2e: 0x4000, 0xe2f: 0x4000, - 0xe30: 0x4000, 0xe31: 0x4000, 0xe32: 0x4000, 0xe33: 0x4000, 0xe34: 0x4000, 0xe35: 0x4000, - 0xe36: 0x4000, 0xe37: 0x4000, 0xe38: 0x4000, 0xe39: 0x4000, 0xe3a: 0x4000, 0xe3b: 0x4000, - 0xe3c: 0x4000, 0xe3d: 0x4000, 0xe3e: 0x4000, 0xe3f: 0x4000, - // Block 0x39, offset 0xe40 - 0xe40: 0x4000, 0xe41: 0x4000, 0xe42: 0x4000, 0xe43: 0x4000, 0xe44: 0x4000, 0xe45: 0x4000, - 0xe46: 0x4000, 0xe47: 0x4000, 0xe48: 0x4000, 0xe49: 0x4000, 0xe4a: 0x4000, 0xe4b: 0x4000, - 0xe4c: 0x4000, 0xe4d: 0x4000, 0xe4e: 0x4000, 0xe4f: 0x4000, 0xe50: 0x4000, 0xe51: 0x4000, - 0xe52: 0x4000, 0xe53: 0x4000, 0xe54: 0x4000, 0xe55: 0x4000, 0xe56: 0x4000, 0xe57: 0x4000, - 0xe58: 0x4000, 0xe59: 0x4000, 0xe5a: 0x4000, 0xe5b: 0x4000, 0xe5c: 0x4000, 0xe5d: 0x4000, - 0xe5e: 0x4000, 0xe5f: 0x4000, 0xe60: 0x4000, 0xe61: 0x4000, 0xe62: 0x4000, 0xe63: 0x4000, - 0xe64: 0x4000, 0xe65: 0x4000, 0xe66: 0x4000, 0xe67: 0x4000, 0xe68: 0x4000, 0xe69: 0x4000, - 0xe6a: 0x4000, 0xe6b: 0x4000, 0xe6c: 0x4000, 0xe6d: 0x4000, 0xe6e: 0x4000, 0xe6f: 0x4000, - 0xe70: 0x4000, 0xe71: 0x4000, 0xe72: 0x4000, 0xe73: 0x4000, 0xe74: 0x4000, 0xe75: 0x4000, - 0xe76: 0x4000, 0xe77: 0x4000, 0xe78: 0x4000, 0xe79: 0x4000, 0xe7a: 0x4000, 0xe7b: 0x4000, - 0xe7c: 0x4000, 0xe7d: 0x4000, 0xe7e: 0x4000, - // Block 0x3a, offset 0xe80 - 0xe80: 0x4000, 0xe81: 0x4000, 0xe82: 0x4000, 0xe83: 0x4000, 0xe84: 0x4000, 0xe85: 0x4000, - 0xe86: 0x4000, 0xe87: 0x4000, 0xe88: 0x4000, 0xe89: 0x4000, 0xe8a: 0x4000, 0xe8b: 0x4000, - 0xe8c: 0x4000, 0xe90: 0x4000, 0xe91: 0x4000, - 0xe92: 0x4000, 0xe93: 0x4000, 0xe94: 0x4000, 0xe95: 0x4000, 0xe96: 0x4000, 0xe97: 0x4000, - 0xe98: 0x4000, 0xe99: 0x4000, 0xe9a: 0x4000, 0xe9b: 0x4000, 0xe9c: 0x4000, 0xe9d: 0x4000, - 0xe9e: 0x4000, 0xe9f: 0x4000, 0xea0: 0x4000, 0xea1: 0x4000, 0xea2: 0x4000, 0xea3: 0x4000, - 0xea4: 0x4000, 0xea5: 0x4000, 0xea6: 0x4000, 0xea7: 0x4000, 0xea8: 0x4000, 0xea9: 0x4000, - 0xeaa: 0x4000, 0xeab: 0x4000, 0xeac: 0x4000, 0xead: 0x4000, 0xeae: 0x4000, 0xeaf: 0x4000, - 0xeb0: 0x4000, 0xeb1: 0x4000, 0xeb2: 0x4000, 0xeb3: 0x4000, 0xeb4: 0x4000, 0xeb5: 0x4000, - 0xeb6: 0x4000, 0xeb7: 0x4000, 0xeb8: 0x4000, 0xeb9: 0x4000, 0xeba: 0x4000, 0xebb: 0x4000, - 0xebc: 0x4000, 0xebd: 0x4000, 0xebe: 0x4000, 0xebf: 0x4000, - // Block 0x3b, offset 0xec0 - 0xec0: 0x4000, 0xec1: 0x4000, 0xec2: 0x4000, 0xec3: 0x4000, 0xec4: 0x4000, 0xec5: 0x4000, - 0xec6: 0x4000, - // Block 0x3c, offset 0xf00 - 0xf20: 0x4000, 0xf21: 0x4000, 0xf22: 0x4000, 0xf23: 0x4000, - 0xf24: 0x4000, 0xf25: 0x4000, 0xf26: 0x4000, 0xf27: 0x4000, 0xf28: 0x4000, 0xf29: 0x4000, - 0xf2a: 0x4000, 0xf2b: 0x4000, 0xf2c: 0x4000, 0xf2d: 0x4000, 0xf2e: 0x4000, 0xf2f: 0x4000, - 0xf30: 0x4000, 0xf31: 0x4000, 0xf32: 0x4000, 0xf33: 0x4000, 0xf34: 0x4000, 0xf35: 0x4000, - 0xf36: 0x4000, 0xf37: 0x4000, 0xf38: 0x4000, 0xf39: 0x4000, 0xf3a: 0x4000, 0xf3b: 0x4000, - 0xf3c: 0x4000, - // Block 0x3d, offset 0xf40 - 0xf40: 0x4000, 0xf41: 0x4000, 0xf42: 0x4000, 0xf43: 0x4000, 0xf44: 0x4000, 0xf45: 0x4000, - 0xf46: 0x4000, 0xf47: 0x4000, 0xf48: 0x4000, 0xf49: 0x4000, 0xf4a: 0x4000, 0xf4b: 0x4000, - 0xf4c: 0x4000, 0xf4d: 0x4000, 0xf4e: 0x4000, 0xf4f: 0x4000, 0xf50: 0x4000, 0xf51: 0x4000, - 0xf52: 0x4000, 0xf53: 0x4000, 0xf54: 0x4000, 0xf55: 0x4000, 0xf56: 0x4000, 0xf57: 0x4000, - 0xf58: 0x4000, 0xf59: 0x4000, 0xf5a: 0x4000, 0xf5b: 0x4000, 0xf5c: 0x4000, 0xf5d: 0x4000, - 0xf5e: 0x4000, 0xf5f: 0x4000, 0xf60: 0x4000, 0xf61: 0x4000, 0xf62: 0x4000, 0xf63: 0x4000, - // Block 0x3e, offset 0xf80 - 0xf80: 0x2000, 0xf81: 0x2000, 0xf82: 0x2000, 0xf83: 0x2000, 0xf84: 0x2000, 0xf85: 0x2000, - 0xf86: 0x2000, 0xf87: 0x2000, 0xf88: 0x2000, 0xf89: 0x2000, 0xf8a: 0x2000, 0xf8b: 0x2000, - 0xf8c: 0x2000, 0xf8d: 0x2000, 0xf8e: 0x2000, 0xf8f: 0x2000, 0xf90: 0x4000, 0xf91: 0x4000, - 0xf92: 0x4000, 0xf93: 0x4000, 0xf94: 0x4000, 0xf95: 0x4000, 0xf96: 0x4000, 0xf97: 0x4000, - 0xf98: 0x4000, 0xf99: 0x4000, - 0xfb0: 0x4000, 0xfb1: 0x4000, 0xfb2: 0x4000, 0xfb3: 0x4000, 0xfb4: 0x4000, 0xfb5: 0x4000, - 0xfb6: 0x4000, 0xfb7: 0x4000, 0xfb8: 0x4000, 0xfb9: 0x4000, 0xfba: 0x4000, 0xfbb: 0x4000, - 0xfbc: 0x4000, 0xfbd: 0x4000, 0xfbe: 0x4000, 0xfbf: 0x4000, - // Block 0x3f, offset 0xfc0 - 0xfc0: 0x4000, 0xfc1: 0x4000, 0xfc2: 0x4000, 0xfc3: 0x4000, 0xfc4: 0x4000, 0xfc5: 0x4000, - 0xfc6: 0x4000, 0xfc7: 0x4000, 0xfc8: 0x4000, 0xfc9: 0x4000, 0xfca: 0x4000, 0xfcb: 0x4000, - 0xfcc: 0x4000, 0xfcd: 0x4000, 0xfce: 0x4000, 0xfcf: 0x4000, 0xfd0: 0x4000, 0xfd1: 0x4000, - 0xfd2: 0x4000, 0xfd4: 0x4000, 0xfd5: 0x4000, 0xfd6: 0x4000, 0xfd7: 0x4000, - 0xfd8: 0x4000, 0xfd9: 0x4000, 0xfda: 0x4000, 0xfdb: 0x4000, 0xfdc: 0x4000, 0xfdd: 0x4000, - 0xfde: 0x4000, 0xfdf: 0x4000, 0xfe0: 0x4000, 0xfe1: 0x4000, 0xfe2: 0x4000, 0xfe3: 0x4000, - 0xfe4: 0x4000, 0xfe5: 0x4000, 0xfe6: 0x4000, 0xfe8: 0x4000, 0xfe9: 0x4000, - 0xfea: 0x4000, 0xfeb: 0x4000, - // Block 0x40, offset 0x1000 - 0x1001: 0x9012, 0x1002: 0x9012, 0x1003: 0x9012, 0x1004: 0x9012, 0x1005: 0x9012, - 0x1006: 0x9012, 0x1007: 0x9012, 0x1008: 0x9012, 0x1009: 0x9012, 0x100a: 0x9012, 0x100b: 0x9012, - 0x100c: 0x9012, 0x100d: 0x9012, 0x100e: 0x9012, 0x100f: 0x9012, 0x1010: 0x9012, 0x1011: 0x9012, - 0x1012: 0x9012, 0x1013: 0x9012, 0x1014: 0x9012, 0x1015: 0x9012, 0x1016: 0x9012, 0x1017: 0x9012, - 0x1018: 0x9012, 0x1019: 0x9012, 0x101a: 0x9012, 0x101b: 0x9012, 0x101c: 0x9012, 0x101d: 0x9012, - 0x101e: 0x9012, 0x101f: 0x9012, 0x1020: 0x9049, 0x1021: 0x9049, 0x1022: 0x9049, 0x1023: 0x9049, - 0x1024: 0x9049, 0x1025: 0x9049, 0x1026: 0x9049, 0x1027: 0x9049, 0x1028: 0x9049, 0x1029: 0x9049, - 0x102a: 0x9049, 0x102b: 0x9049, 0x102c: 0x9049, 0x102d: 0x9049, 0x102e: 0x9049, 0x102f: 0x9049, - 0x1030: 0x9049, 0x1031: 0x9049, 0x1032: 0x9049, 0x1033: 0x9049, 0x1034: 0x9049, 0x1035: 0x9049, - 0x1036: 0x9049, 0x1037: 0x9049, 0x1038: 0x9049, 0x1039: 0x9049, 0x103a: 0x9049, 0x103b: 0x9049, - 0x103c: 0x9049, 0x103d: 0x9049, 0x103e: 0x9049, 0x103f: 0x9049, - // Block 0x41, offset 0x1040 - 0x1040: 0x9049, 0x1041: 0x9049, 0x1042: 0x9049, 0x1043: 0x9049, 0x1044: 0x9049, 0x1045: 0x9049, - 0x1046: 0x9049, 0x1047: 0x9049, 0x1048: 0x9049, 0x1049: 0x9049, 0x104a: 0x9049, 0x104b: 0x9049, - 0x104c: 0x9049, 0x104d: 0x9049, 0x104e: 0x9049, 0x104f: 0x9049, 0x1050: 0x9049, 0x1051: 0x9049, - 0x1052: 0x9049, 0x1053: 0x9049, 0x1054: 0x9049, 0x1055: 0x9049, 0x1056: 0x9049, 0x1057: 0x9049, - 0x1058: 0x9049, 0x1059: 0x9049, 0x105a: 0x9049, 0x105b: 0x9049, 0x105c: 0x9049, 0x105d: 0x9049, - 0x105e: 0x9049, 0x105f: 0x904a, 0x1060: 0x904b, 0x1061: 0xb04c, 0x1062: 0xb04d, 0x1063: 0xb04d, - 0x1064: 0xb04e, 0x1065: 0xb04f, 0x1066: 0xb050, 0x1067: 0xb051, 0x1068: 0xb052, 0x1069: 0xb053, - 0x106a: 0xb054, 0x106b: 0xb055, 0x106c: 0xb056, 0x106d: 0xb057, 0x106e: 0xb058, 0x106f: 0xb059, - 0x1070: 0xb05a, 0x1071: 0xb05b, 0x1072: 0xb05c, 0x1073: 0xb05d, 0x1074: 0xb05e, 0x1075: 0xb05f, - 0x1076: 0xb060, 0x1077: 0xb061, 0x1078: 0xb062, 0x1079: 0xb063, 0x107a: 0xb064, 0x107b: 0xb065, - 0x107c: 0xb052, 0x107d: 0xb066, 0x107e: 0xb067, 0x107f: 0xb055, - // Block 0x42, offset 0x1080 - 0x1080: 0xb068, 0x1081: 0xb069, 0x1082: 0xb06a, 0x1083: 0xb06b, 0x1084: 0xb05a, 0x1085: 0xb056, - 0x1086: 0xb06c, 0x1087: 0xb06d, 0x1088: 0xb06b, 0x1089: 0xb06e, 0x108a: 0xb06b, 0x108b: 0xb06f, - 0x108c: 0xb06f, 0x108d: 0xb070, 0x108e: 0xb070, 0x108f: 0xb071, 0x1090: 0xb056, 0x1091: 0xb072, - 0x1092: 0xb073, 0x1093: 0xb072, 0x1094: 0xb074, 0x1095: 0xb073, 0x1096: 0xb075, 0x1097: 0xb075, - 0x1098: 0xb076, 0x1099: 0xb076, 0x109a: 0xb077, 0x109b: 0xb077, 0x109c: 0xb073, 0x109d: 0xb078, - 0x109e: 0xb079, 0x109f: 0xb067, 0x10a0: 0xb07a, 0x10a1: 0xb07b, 0x10a2: 0xb07b, 0x10a3: 0xb07b, - 0x10a4: 0xb07b, 0x10a5: 0xb07b, 0x10a6: 0xb07b, 0x10a7: 0xb07b, 0x10a8: 0xb07b, 0x10a9: 0xb07b, - 0x10aa: 0xb07b, 0x10ab: 0xb07b, 0x10ac: 0xb07b, 0x10ad: 0xb07b, 0x10ae: 0xb07b, 0x10af: 0xb07b, - 0x10b0: 0xb07c, 0x10b1: 0xb07c, 0x10b2: 0xb07c, 0x10b3: 0xb07c, 0x10b4: 0xb07c, 0x10b5: 0xb07c, - 0x10b6: 0xb07c, 0x10b7: 0xb07c, 0x10b8: 0xb07c, 0x10b9: 0xb07c, 0x10ba: 0xb07c, 0x10bb: 0xb07c, - 0x10bc: 0xb07c, 0x10bd: 0xb07c, 0x10be: 0xb07c, - // Block 0x43, offset 0x10c0 - 0x10c2: 0xb07d, 0x10c3: 0xb07e, 0x10c4: 0xb07f, 0x10c5: 0xb080, - 0x10c6: 0xb07f, 0x10c7: 0xb07e, 0x10ca: 0xb081, 0x10cb: 0xb082, - 0x10cc: 0xb083, 0x10cd: 0xb07f, 0x10ce: 0xb080, 0x10cf: 0xb07f, - 0x10d2: 0xb084, 0x10d3: 0xb085, 0x10d4: 0xb084, 0x10d5: 0xb086, 0x10d6: 0xb084, 0x10d7: 0xb087, - 0x10da: 0xb088, 0x10db: 0xb089, 0x10dc: 0xb08a, - 0x10e0: 0x908b, 0x10e1: 0x908b, 0x10e2: 0x908c, 0x10e3: 0x908d, - 0x10e4: 0x908b, 0x10e5: 0x908e, 0x10e6: 0x908f, 0x10e8: 0xb090, 0x10e9: 0xb091, - 0x10ea: 0xb092, 0x10eb: 0xb091, 0x10ec: 0xb093, 0x10ed: 0xb094, 0x10ee: 0xb095, - 0x10fd: 0x2000, - // Block 0x44, offset 0x1100 - 0x1100: 0x4000, 0x1101: 0x4000, - // Block 0x45, offset 0x1140 - 0x1140: 0x2000, 0x1141: 0x2000, 0x1142: 0x2000, 0x1143: 0x2000, 0x1144: 0x2000, 0x1145: 0x2000, - 0x1146: 0x2000, 0x1147: 0x2000, 0x1148: 0x2000, 0x1149: 0x2000, 0x114a: 0x2000, - 0x1150: 0x2000, 0x1151: 0x2000, - 0x1152: 0x2000, 0x1153: 0x2000, 0x1154: 0x2000, 0x1155: 0x2000, 0x1156: 0x2000, 0x1157: 0x2000, - 0x1158: 0x2000, 0x1159: 0x2000, 0x115a: 0x2000, 0x115b: 0x2000, 0x115c: 0x2000, 0x115d: 0x2000, - 0x115e: 0x2000, 0x115f: 0x2000, 0x1160: 0x2000, 0x1161: 0x2000, 0x1162: 0x2000, 0x1163: 0x2000, - 0x1164: 0x2000, 0x1165: 0x2000, 0x1166: 0x2000, 0x1167: 0x2000, 0x1168: 0x2000, 0x1169: 0x2000, - 0x116a: 0x2000, 0x116b: 0x2000, 0x116c: 0x2000, 0x116d: 0x2000, - 0x1170: 0x2000, 0x1171: 0x2000, 0x1172: 0x2000, 0x1173: 0x2000, 0x1174: 0x2000, 0x1175: 0x2000, - 0x1176: 0x2000, 0x1177: 0x2000, 0x1178: 0x2000, 0x1179: 0x2000, 0x117a: 0x2000, 0x117b: 0x2000, - 0x117c: 0x2000, 0x117d: 0x2000, 0x117e: 0x2000, 0x117f: 0x2000, - // Block 0x46, offset 0x1180 - 0x1180: 0x2000, 0x1181: 0x2000, 0x1182: 0x2000, 0x1183: 0x2000, 0x1184: 0x2000, 0x1185: 0x2000, - 0x1186: 0x2000, 0x1187: 0x2000, 0x1188: 0x2000, 0x1189: 0x2000, 0x118a: 0x2000, 0x118b: 0x2000, - 0x118c: 0x2000, 0x118d: 0x2000, 0x118e: 0x2000, 0x118f: 0x2000, 0x1190: 0x2000, 0x1191: 0x2000, - 0x1192: 0x2000, 0x1193: 0x2000, 0x1194: 0x2000, 0x1195: 0x2000, 0x1196: 0x2000, 0x1197: 0x2000, - 0x1198: 0x2000, 0x1199: 0x2000, 0x119a: 0x2000, 0x119b: 0x2000, 0x119c: 0x2000, 0x119d: 0x2000, - 0x119e: 0x2000, 0x119f: 0x2000, 0x11a0: 0x2000, 0x11a1: 0x2000, 0x11a2: 0x2000, 0x11a3: 0x2000, - 0x11a4: 0x2000, 0x11a5: 0x2000, 0x11a6: 0x2000, 0x11a7: 0x2000, 0x11a8: 0x2000, 0x11a9: 0x2000, - 0x11b0: 0x2000, 0x11b1: 0x2000, 0x11b2: 0x2000, 0x11b3: 0x2000, 0x11b4: 0x2000, 0x11b5: 0x2000, - 0x11b6: 0x2000, 0x11b7: 0x2000, 0x11b8: 0x2000, 0x11b9: 0x2000, 0x11ba: 0x2000, 0x11bb: 0x2000, - 0x11bc: 0x2000, 0x11bd: 0x2000, 0x11be: 0x2000, 0x11bf: 0x2000, - // Block 0x47, offset 0x11c0 - 0x11c0: 0x2000, 0x11c1: 0x2000, 0x11c2: 0x2000, 0x11c3: 0x2000, 0x11c4: 0x2000, 0x11c5: 0x2000, - 0x11c6: 0x2000, 0x11c7: 0x2000, 0x11c8: 0x2000, 0x11c9: 0x2000, 0x11ca: 0x2000, 0x11cb: 0x2000, - 0x11cc: 0x2000, 0x11cd: 0x2000, 0x11ce: 0x2000, 0x11cf: 0x2000, 0x11d0: 0x2000, 0x11d1: 0x2000, - 0x11d2: 0x2000, 0x11d3: 0x2000, 0x11d4: 0x2000, 0x11d5: 0x2000, 0x11d6: 0x2000, 0x11d7: 0x2000, - 0x11d8: 0x2000, 0x11d9: 0x2000, 0x11da: 0x2000, - // Block 0x48, offset 0x1200 - 0x1200: 0x4000, 0x1201: 0x4000, 0x1202: 0x4000, - 0x1210: 0x4000, 0x1211: 0x4000, - 0x1212: 0x4000, 0x1213: 0x4000, 0x1214: 0x4000, 0x1215: 0x4000, 0x1216: 0x4000, 0x1217: 0x4000, - 0x1218: 0x4000, 0x1219: 0x4000, 0x121a: 0x4000, 0x121b: 0x4000, 0x121c: 0x4000, 0x121d: 0x4000, - 0x121e: 0x4000, 0x121f: 0x4000, 0x1220: 0x4000, 0x1221: 0x4000, 0x1222: 0x4000, 0x1223: 0x4000, - 0x1224: 0x4000, 0x1225: 0x4000, 0x1226: 0x4000, 0x1227: 0x4000, 0x1228: 0x4000, 0x1229: 0x4000, - 0x122a: 0x4000, 0x122b: 0x4000, 0x122c: 0x4000, 0x122d: 0x4000, 0x122e: 0x4000, 0x122f: 0x4000, - 0x1230: 0x4000, 0x1231: 0x4000, 0x1232: 0x4000, 0x1233: 0x4000, 0x1234: 0x4000, 0x1235: 0x4000, - 0x1236: 0x4000, 0x1237: 0x4000, 0x1238: 0x4000, 0x1239: 0x4000, 0x123a: 0x4000, - // Block 0x49, offset 0x1240 - 0x1240: 0x4000, 0x1241: 0x4000, 0x1242: 0x4000, 0x1243: 0x4000, 0x1244: 0x4000, 0x1245: 0x4000, - 0x1246: 0x4000, 0x1247: 0x4000, 0x1248: 0x4000, - 0x1250: 0x4000, 0x1251: 0x4000, - // Block 0x4a, offset 0x1280 - 0x1280: 0x2000, 0x1281: 0x2000, 0x1282: 0x2000, 0x1283: 0x2000, 0x1284: 0x2000, 0x1285: 0x2000, - 0x1286: 0x2000, 0x1287: 0x2000, 0x1288: 0x2000, 0x1289: 0x2000, 0x128a: 0x2000, 0x128b: 0x2000, - 0x128c: 0x2000, 0x128d: 0x2000, 0x128e: 0x2000, 0x128f: 0x2000, 0x1290: 0x2000, 0x1291: 0x2000, - 0x1292: 0x2000, 0x1293: 0x2000, 0x1294: 0x2000, 0x1295: 0x2000, 0x1296: 0x2000, 0x1297: 0x2000, - 0x1298: 0x2000, 0x1299: 0x2000, 0x129a: 0x2000, 0x129b: 0x2000, 0x129c: 0x2000, 0x129d: 0x2000, - 0x129e: 0x2000, 0x129f: 0x2000, 0x12a0: 0x2000, 0x12a1: 0x2000, 0x12a2: 0x2000, 0x12a3: 0x2000, - 0x12a4: 0x2000, 0x12a5: 0x2000, 0x12a6: 0x2000, 0x12a7: 0x2000, 0x12a8: 0x2000, 0x12a9: 0x2000, - 0x12aa: 0x2000, 0x12ab: 0x2000, 0x12ac: 0x2000, 0x12ad: 0x2000, 0x12ae: 0x2000, 0x12af: 0x2000, - 0x12b0: 0x2000, 0x12b1: 0x2000, 0x12b2: 0x2000, 0x12b3: 0x2000, 0x12b4: 0x2000, 0x12b5: 0x2000, - 0x12b6: 0x2000, 0x12b7: 0x2000, 0x12b8: 0x2000, 0x12b9: 0x2000, 0x12ba: 0x2000, 0x12bb: 0x2000, - 0x12bc: 0x2000, 0x12bd: 0x2000, -} - -// widthIndex: 20 blocks, 1280 entries, 1280 bytes -// Block 0 is the zero block. -var widthIndex = [1280]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x01, 0xc3: 0x02, 0xc4: 0x03, 0xc5: 0x04, 0xc7: 0x05, - 0xc9: 0x06, 0xcb: 0x07, 0xcc: 0x08, 0xcd: 0x09, 0xce: 0x0a, 0xcf: 0x0b, - 0xd0: 0x0c, 0xd1: 0x0d, - 0xe1: 0x02, 0xe2: 0x03, 0xe3: 0x04, 0xe4: 0x05, 0xe5: 0x06, 0xe6: 0x06, 0xe7: 0x06, - 0xe8: 0x06, 0xe9: 0x06, 0xea: 0x07, 0xeb: 0x06, 0xec: 0x06, 0xed: 0x08, 0xee: 0x09, 0xef: 0x0a, - 0xf0: 0x0d, 0xf3: 0x10, 0xf4: 0x11, - // Block 0x4, offset 0x100 - 0x104: 0x0e, 0x105: 0x0f, - // Block 0x5, offset 0x140 - 0x140: 0x10, 0x141: 0x11, 0x142: 0x12, 0x144: 0x13, 0x145: 0x14, 0x146: 0x15, 0x147: 0x16, - 0x148: 0x17, 0x149: 0x18, 0x14a: 0x19, 0x14c: 0x1a, - 0x151: 0x1b, 0x152: 0x08, 0x153: 0x1c, 0x154: 0x1d, 0x155: 0x1e, 0x156: 0x1f, 0x157: 0x20, - 0x158: 0x21, 0x159: 0x22, 0x15a: 0x23, 0x15b: 0x24, 0x15c: 0x25, 0x15d: 0x26, 0x15f: 0x27, - 0x166: 0x28, - 0x16d: 0x29, - 0x17a: 0x2a, 0x17b: 0x2b, 0x17c: 0x0e, 0x17d: 0x0e, 0x17e: 0x0e, 0x17f: 0x2c, - // Block 0x6, offset 0x180 - 0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0x30, 0x184: 0x31, 0x185: 0x32, 0x186: 0x33, 0x187: 0x34, - 0x188: 0x35, 0x189: 0x36, 0x18a: 0x0e, 0x18b: 0x37, 0x18c: 0x0e, 0x18d: 0x0e, 0x18e: 0x0e, 0x18f: 0x0e, - 0x190: 0x0e, 0x191: 0x0e, 0x192: 0x0e, 0x193: 0x0e, 0x194: 0x0e, 0x195: 0x0e, 0x196: 0x0e, 0x197: 0x0e, - 0x198: 0x0e, 0x199: 0x0e, 0x19a: 0x0e, 0x19b: 0x0e, 0x19c: 0x0e, 0x19d: 0x0e, 0x19e: 0x0e, 0x19f: 0x0e, - 0x1a0: 0x0e, 0x1a1: 0x0e, 0x1a2: 0x0e, 0x1a3: 0x0e, 0x1a4: 0x0e, 0x1a5: 0x0e, 0x1a6: 0x0e, 0x1a7: 0x0e, - 0x1a8: 0x0e, 0x1a9: 0x0e, 0x1aa: 0x0e, 0x1ab: 0x0e, 0x1ac: 0x0e, 0x1ad: 0x0e, 0x1ae: 0x0e, 0x1af: 0x0e, - 0x1b0: 0x0e, 0x1b1: 0x0e, 0x1b2: 0x0e, 0x1b3: 0x0e, 0x1b4: 0x0e, 0x1b5: 0x0e, 0x1b6: 0x0e, 0x1b7: 0x0e, - 0x1b8: 0x0e, 0x1b9: 0x0e, 0x1ba: 0x0e, 0x1bb: 0x0e, 0x1bc: 0x0e, 0x1bd: 0x0e, 0x1be: 0x0e, 0x1bf: 0x0e, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x0e, 0x1c1: 0x0e, 0x1c2: 0x0e, 0x1c3: 0x0e, 0x1c4: 0x0e, 0x1c5: 0x0e, 0x1c6: 0x0e, 0x1c7: 0x0e, - 0x1c8: 0x0e, 0x1c9: 0x0e, 0x1ca: 0x0e, 0x1cb: 0x0e, 0x1cc: 0x0e, 0x1cd: 0x0e, 0x1ce: 0x0e, 0x1cf: 0x0e, - 0x1d0: 0x0e, 0x1d1: 0x0e, 0x1d2: 0x0e, 0x1d3: 0x0e, 0x1d4: 0x0e, 0x1d5: 0x0e, 0x1d6: 0x0e, 0x1d7: 0x0e, - 0x1d8: 0x0e, 0x1d9: 0x0e, 0x1da: 0x0e, 0x1db: 0x0e, 0x1dc: 0x0e, 0x1dd: 0x0e, 0x1de: 0x0e, 0x1df: 0x0e, - 0x1e0: 0x0e, 0x1e1: 0x0e, 0x1e2: 0x0e, 0x1e3: 0x0e, 0x1e4: 0x0e, 0x1e5: 0x0e, 0x1e6: 0x0e, 0x1e7: 0x0e, - 0x1e8: 0x0e, 0x1e9: 0x0e, 0x1ea: 0x0e, 0x1eb: 0x0e, 0x1ec: 0x0e, 0x1ed: 0x0e, 0x1ee: 0x0e, 0x1ef: 0x0e, - 0x1f0: 0x0e, 0x1f1: 0x0e, 0x1f2: 0x0e, 0x1f3: 0x0e, 0x1f4: 0x0e, 0x1f5: 0x0e, 0x1f6: 0x0e, - 0x1f8: 0x0e, 0x1f9: 0x0e, 0x1fa: 0x0e, 0x1fb: 0x0e, 0x1fc: 0x0e, 0x1fd: 0x0e, 0x1fe: 0x0e, 0x1ff: 0x0e, - // Block 0x8, offset 0x200 - 0x200: 0x0e, 0x201: 0x0e, 0x202: 0x0e, 0x203: 0x0e, 0x204: 0x0e, 0x205: 0x0e, 0x206: 0x0e, 0x207: 0x0e, - 0x208: 0x0e, 0x209: 0x0e, 0x20a: 0x0e, 0x20b: 0x0e, 0x20c: 0x0e, 0x20d: 0x0e, 0x20e: 0x0e, 0x20f: 0x0e, - 0x210: 0x0e, 0x211: 0x0e, 0x212: 0x0e, 0x213: 0x0e, 0x214: 0x0e, 0x215: 0x0e, 0x216: 0x0e, 0x217: 0x0e, - 0x218: 0x0e, 0x219: 0x0e, 0x21a: 0x0e, 0x21b: 0x0e, 0x21c: 0x0e, 0x21d: 0x0e, 0x21e: 0x0e, 0x21f: 0x0e, - 0x220: 0x0e, 0x221: 0x0e, 0x222: 0x0e, 0x223: 0x0e, 0x224: 0x0e, 0x225: 0x0e, 0x226: 0x0e, 0x227: 0x0e, - 0x228: 0x0e, 0x229: 0x0e, 0x22a: 0x0e, 0x22b: 0x0e, 0x22c: 0x0e, 0x22d: 0x0e, 0x22e: 0x0e, 0x22f: 0x0e, - 0x230: 0x0e, 0x231: 0x0e, 0x232: 0x0e, 0x233: 0x0e, 0x234: 0x0e, 0x235: 0x0e, 0x236: 0x0e, 0x237: 0x0e, - 0x238: 0x0e, 0x239: 0x0e, 0x23a: 0x0e, 0x23b: 0x0e, 0x23c: 0x0e, 0x23d: 0x0e, 0x23e: 0x0e, 0x23f: 0x0e, - // Block 0x9, offset 0x240 - 0x240: 0x0e, 0x241: 0x0e, 0x242: 0x0e, 0x243: 0x0e, 0x244: 0x0e, 0x245: 0x0e, 0x246: 0x0e, 0x247: 0x0e, - 0x248: 0x0e, 0x249: 0x0e, 0x24a: 0x0e, 0x24b: 0x0e, 0x24c: 0x0e, 0x24d: 0x0e, 0x24e: 0x0e, 0x24f: 0x0e, - 0x250: 0x0e, 0x251: 0x0e, 0x252: 0x38, 0x253: 0x39, - 0x265: 0x3a, - 0x270: 0x0e, 0x271: 0x0e, 0x272: 0x0e, 0x273: 0x0e, 0x274: 0x0e, 0x275: 0x0e, 0x276: 0x0e, 0x277: 0x0e, - 0x278: 0x0e, 0x279: 0x0e, 0x27a: 0x0e, 0x27b: 0x0e, 0x27c: 0x0e, 0x27d: 0x0e, 0x27e: 0x0e, 0x27f: 0x0e, - // Block 0xa, offset 0x280 - 0x280: 0x0e, 0x281: 0x0e, 0x282: 0x0e, 0x283: 0x0e, 0x284: 0x0e, 0x285: 0x0e, 0x286: 0x0e, 0x287: 0x0e, - 0x288: 0x0e, 0x289: 0x0e, 0x28a: 0x0e, 0x28b: 0x0e, 0x28c: 0x0e, 0x28d: 0x0e, 0x28e: 0x0e, 0x28f: 0x0e, - 0x290: 0x0e, 0x291: 0x0e, 0x292: 0x0e, 0x293: 0x0e, 0x294: 0x0e, 0x295: 0x0e, 0x296: 0x0e, 0x297: 0x0e, - 0x298: 0x0e, 0x299: 0x0e, 0x29a: 0x0e, 0x29b: 0x0e, 0x29c: 0x0e, 0x29d: 0x0e, 0x29e: 0x3b, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x08, 0x2c1: 0x08, 0x2c2: 0x08, 0x2c3: 0x08, 0x2c4: 0x08, 0x2c5: 0x08, 0x2c6: 0x08, 0x2c7: 0x08, - 0x2c8: 0x08, 0x2c9: 0x08, 0x2ca: 0x08, 0x2cb: 0x08, 0x2cc: 0x08, 0x2cd: 0x08, 0x2ce: 0x08, 0x2cf: 0x08, - 0x2d0: 0x08, 0x2d1: 0x08, 0x2d2: 0x08, 0x2d3: 0x08, 0x2d4: 0x08, 0x2d5: 0x08, 0x2d6: 0x08, 0x2d7: 0x08, - 0x2d8: 0x08, 0x2d9: 0x08, 0x2da: 0x08, 0x2db: 0x08, 0x2dc: 0x08, 0x2dd: 0x08, 0x2de: 0x08, 0x2df: 0x08, - 0x2e0: 0x08, 0x2e1: 0x08, 0x2e2: 0x08, 0x2e3: 0x08, 0x2e4: 0x08, 0x2e5: 0x08, 0x2e6: 0x08, 0x2e7: 0x08, - 0x2e8: 0x08, 0x2e9: 0x08, 0x2ea: 0x08, 0x2eb: 0x08, 0x2ec: 0x08, 0x2ed: 0x08, 0x2ee: 0x08, 0x2ef: 0x08, - 0x2f0: 0x08, 0x2f1: 0x08, 0x2f2: 0x08, 0x2f3: 0x08, 0x2f4: 0x08, 0x2f5: 0x08, 0x2f6: 0x08, 0x2f7: 0x08, - 0x2f8: 0x08, 0x2f9: 0x08, 0x2fa: 0x08, 0x2fb: 0x08, 0x2fc: 0x08, 0x2fd: 0x08, 0x2fe: 0x08, 0x2ff: 0x08, - // Block 0xc, offset 0x300 - 0x300: 0x08, 0x301: 0x08, 0x302: 0x08, 0x303: 0x08, 0x304: 0x08, 0x305: 0x08, 0x306: 0x08, 0x307: 0x08, - 0x308: 0x08, 0x309: 0x08, 0x30a: 0x08, 0x30b: 0x08, 0x30c: 0x08, 0x30d: 0x08, 0x30e: 0x08, 0x30f: 0x08, - 0x310: 0x08, 0x311: 0x08, 0x312: 0x08, 0x313: 0x08, 0x314: 0x08, 0x315: 0x08, 0x316: 0x08, 0x317: 0x08, - 0x318: 0x08, 0x319: 0x08, 0x31a: 0x08, 0x31b: 0x08, 0x31c: 0x08, 0x31d: 0x08, 0x31e: 0x08, 0x31f: 0x08, - 0x320: 0x08, 0x321: 0x08, 0x322: 0x08, 0x323: 0x08, 0x324: 0x0e, 0x325: 0x0e, 0x326: 0x0e, 0x327: 0x0e, - 0x328: 0x0e, 0x329: 0x0e, 0x32a: 0x0e, 0x32b: 0x0e, - 0x338: 0x3c, 0x339: 0x3d, 0x33c: 0x3e, 0x33d: 0x3f, 0x33e: 0x40, 0x33f: 0x41, - // Block 0xd, offset 0x340 - 0x340: 0x42, - // Block 0xe, offset 0x380 - 0x384: 0x43, 0x385: 0x44, 0x386: 0x45, - 0x388: 0x46, 0x389: 0x47, - // Block 0xf, offset 0x3c0 - 0x3db: 0x0b, 0x3df: 0x0c, - 0x3e0: 0x06, 0x3e1: 0x06, 0x3e2: 0x06, 0x3e3: 0x06, 0x3e4: 0x06, 0x3e5: 0x06, 0x3e6: 0x06, 0x3e7: 0x06, - 0x3e8: 0x06, 0x3e9: 0x06, 0x3ea: 0x06, 0x3eb: 0x06, 0x3ec: 0x06, 0x3ed: 0x06, 0x3ee: 0x06, 0x3ef: 0x06, - 0x3f0: 0x06, 0x3f1: 0x06, 0x3f2: 0x06, 0x3f3: 0x06, 0x3f4: 0x06, 0x3f5: 0x06, 0x3f6: 0x06, 0x3f7: 0x06, - 0x3f8: 0x06, 0x3f9: 0x06, 0x3fa: 0x06, 0x3fb: 0x06, 0x3fc: 0x06, 0x3fd: 0x06, 0x3fe: 0x06, 0x3ff: 0x06, - // Block 0x10, offset 0x400 - 0x404: 0x08, 0x405: 0x08, 0x406: 0x08, 0x407: 0x09, - // Block 0x11, offset 0x440 - 0x440: 0x08, 0x441: 0x08, 0x442: 0x08, 0x443: 0x08, 0x444: 0x08, 0x445: 0x08, 0x446: 0x08, 0x447: 0x08, - 0x448: 0x08, 0x449: 0x08, 0x44a: 0x08, 0x44b: 0x08, 0x44c: 0x08, 0x44d: 0x08, 0x44e: 0x08, 0x44f: 0x08, - 0x450: 0x08, 0x451: 0x08, 0x452: 0x08, 0x453: 0x08, 0x454: 0x08, 0x455: 0x08, 0x456: 0x08, 0x457: 0x08, - 0x458: 0x08, 0x459: 0x08, 0x45a: 0x08, 0x45b: 0x08, 0x45c: 0x08, 0x45d: 0x08, 0x45e: 0x08, 0x45f: 0x08, - 0x460: 0x08, 0x461: 0x08, 0x462: 0x08, 0x463: 0x08, 0x464: 0x08, 0x465: 0x08, 0x466: 0x08, 0x467: 0x08, - 0x468: 0x08, 0x469: 0x08, 0x46a: 0x08, 0x46b: 0x08, 0x46c: 0x08, 0x46d: 0x08, 0x46e: 0x08, 0x46f: 0x08, - 0x470: 0x08, 0x471: 0x08, 0x472: 0x08, 0x473: 0x08, 0x474: 0x08, 0x475: 0x08, 0x476: 0x08, 0x477: 0x08, - 0x478: 0x08, 0x479: 0x08, 0x47a: 0x08, 0x47b: 0x08, 0x47c: 0x08, 0x47d: 0x08, 0x47e: 0x08, 0x47f: 0x48, - // Block 0x12, offset 0x480 - 0x4a0: 0x0e, - 0x4b0: 0x09, 0x4b1: 0x09, 0x4b2: 0x09, 0x4b3: 0x09, 0x4b4: 0x09, 0x4b5: 0x09, 0x4b6: 0x09, 0x4b7: 0x09, - 0x4b8: 0x09, 0x4b9: 0x09, 0x4ba: 0x09, 0x4bb: 0x09, 0x4bc: 0x09, 0x4bd: 0x09, 0x4be: 0x09, 0x4bf: 0x0f, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x09, 0x4c1: 0x09, 0x4c2: 0x09, 0x4c3: 0x09, 0x4c4: 0x09, 0x4c5: 0x09, 0x4c6: 0x09, 0x4c7: 0x09, - 0x4c8: 0x09, 0x4c9: 0x09, 0x4ca: 0x09, 0x4cb: 0x09, 0x4cc: 0x09, 0x4cd: 0x09, 0x4ce: 0x09, 0x4cf: 0x0f, -} - -// inverseData contains 4-byte entries of the following format: -// <length> <modified UTF-8-encoded rune> <0 padding> -// The last byte of the UTF-8-encoded rune is xor-ed with the last byte of the -// UTF-8 encoding of the original rune. Mappings often have the following -// pattern: -// A -> A (U+FF21 -> U+0041) -// ï¼¢ -> B (U+FF22 -> U+0042) -// ... -// By xor-ing the last byte the same entry can be shared by many mappings. This -// reduces the total number of distinct entries by about two thirds. -// The resulting entry for the aforementioned mappings is -// { 0x01, 0xE0, 0x00, 0x00 } -// Using this entry to map U+FF21 (UTF-8 [EF BC A1]), we get -// E0 ^ A1 = 41. -// Similarly, for U+FF22 (UTF-8 [EF BC A2]), we get -// E0 ^ A2 = 42. -// Note that because of the xor-ing, the byte sequence stored in the entry is -// not valid UTF-8. -var inverseData = [150][4]byte{ - {0x00, 0x00, 0x00, 0x00}, - {0x03, 0xe3, 0x80, 0xa0}, - {0x03, 0xef, 0xbc, 0xa0}, - {0x03, 0xef, 0xbc, 0xe0}, - {0x03, 0xef, 0xbd, 0xe0}, - {0x03, 0xef, 0xbf, 0x02}, - {0x03, 0xef, 0xbf, 0x00}, - {0x03, 0xef, 0xbf, 0x0e}, - {0x03, 0xef, 0xbf, 0x0c}, - {0x03, 0xef, 0xbf, 0x0f}, - {0x03, 0xef, 0xbf, 0x39}, - {0x03, 0xef, 0xbf, 0x3b}, - {0x03, 0xef, 0xbf, 0x3f}, - {0x03, 0xef, 0xbf, 0x2a}, - {0x03, 0xef, 0xbf, 0x0d}, - {0x03, 0xef, 0xbf, 0x25}, - {0x03, 0xef, 0xbd, 0x1a}, - {0x03, 0xef, 0xbd, 0x26}, - {0x01, 0xa0, 0x00, 0x00}, - {0x03, 0xef, 0xbd, 0x25}, - {0x03, 0xef, 0xbd, 0x23}, - {0x03, 0xef, 0xbd, 0x2e}, - {0x03, 0xef, 0xbe, 0x07}, - {0x03, 0xef, 0xbe, 0x05}, - {0x03, 0xef, 0xbd, 0x06}, - {0x03, 0xef, 0xbd, 0x13}, - {0x03, 0xef, 0xbd, 0x0b}, - {0x03, 0xef, 0xbd, 0x16}, - {0x03, 0xef, 0xbd, 0x0c}, - {0x03, 0xef, 0xbd, 0x15}, - {0x03, 0xef, 0xbd, 0x0d}, - {0x03, 0xef, 0xbd, 0x1c}, - {0x03, 0xef, 0xbd, 0x02}, - {0x03, 0xef, 0xbd, 0x1f}, - {0x03, 0xef, 0xbd, 0x1d}, - {0x03, 0xef, 0xbd, 0x17}, - {0x03, 0xef, 0xbd, 0x08}, - {0x03, 0xef, 0xbd, 0x09}, - {0x03, 0xef, 0xbd, 0x0e}, - {0x03, 0xef, 0xbd, 0x04}, - {0x03, 0xef, 0xbd, 0x05}, - {0x03, 0xef, 0xbe, 0x3f}, - {0x03, 0xef, 0xbe, 0x00}, - {0x03, 0xef, 0xbd, 0x2c}, - {0x03, 0xef, 0xbe, 0x06}, - {0x03, 0xef, 0xbe, 0x0c}, - {0x03, 0xef, 0xbe, 0x0f}, - {0x03, 0xef, 0xbe, 0x0d}, - {0x03, 0xef, 0xbe, 0x0b}, - {0x03, 0xef, 0xbe, 0x19}, - {0x03, 0xef, 0xbe, 0x15}, - {0x03, 0xef, 0xbe, 0x11}, - {0x03, 0xef, 0xbe, 0x31}, - {0x03, 0xef, 0xbe, 0x33}, - {0x03, 0xef, 0xbd, 0x0f}, - {0x03, 0xef, 0xbe, 0x30}, - {0x03, 0xef, 0xbe, 0x3e}, - {0x03, 0xef, 0xbe, 0x32}, - {0x03, 0xef, 0xbe, 0x36}, - {0x03, 0xef, 0xbd, 0x14}, - {0x03, 0xef, 0xbe, 0x2e}, - {0x03, 0xef, 0xbd, 0x1e}, - {0x03, 0xef, 0xbe, 0x10}, - {0x03, 0xef, 0xbf, 0x13}, - {0x03, 0xef, 0xbf, 0x15}, - {0x03, 0xef, 0xbf, 0x17}, - {0x03, 0xef, 0xbf, 0x1f}, - {0x03, 0xef, 0xbf, 0x1d}, - {0x03, 0xef, 0xbf, 0x1b}, - {0x03, 0xef, 0xbf, 0x09}, - {0x03, 0xef, 0xbf, 0x0b}, - {0x03, 0xef, 0xbf, 0x37}, - {0x03, 0xef, 0xbe, 0x04}, - {0x01, 0xe0, 0x00, 0x00}, - {0x03, 0xe2, 0xa6, 0x1a}, - {0x03, 0xe2, 0xa6, 0x26}, - {0x03, 0xe3, 0x80, 0x23}, - {0x03, 0xe3, 0x80, 0x2e}, - {0x03, 0xe3, 0x80, 0x25}, - {0x03, 0xe3, 0x83, 0x1e}, - {0x03, 0xe3, 0x83, 0x14}, - {0x03, 0xe3, 0x82, 0x06}, - {0x03, 0xe3, 0x82, 0x0b}, - {0x03, 0xe3, 0x82, 0x0c}, - {0x03, 0xe3, 0x82, 0x0d}, - {0x03, 0xe3, 0x82, 0x02}, - {0x03, 0xe3, 0x83, 0x0f}, - {0x03, 0xe3, 0x83, 0x08}, - {0x03, 0xe3, 0x83, 0x09}, - {0x03, 0xe3, 0x83, 0x2c}, - {0x03, 0xe3, 0x83, 0x0c}, - {0x03, 0xe3, 0x82, 0x13}, - {0x03, 0xe3, 0x82, 0x16}, - {0x03, 0xe3, 0x82, 0x15}, - {0x03, 0xe3, 0x82, 0x1c}, - {0x03, 0xe3, 0x82, 0x1f}, - {0x03, 0xe3, 0x82, 0x1d}, - {0x03, 0xe3, 0x82, 0x1a}, - {0x03, 0xe3, 0x82, 0x17}, - {0x03, 0xe3, 0x82, 0x08}, - {0x03, 0xe3, 0x82, 0x09}, - {0x03, 0xe3, 0x82, 0x0e}, - {0x03, 0xe3, 0x82, 0x04}, - {0x03, 0xe3, 0x82, 0x05}, - {0x03, 0xe3, 0x82, 0x3f}, - {0x03, 0xe3, 0x83, 0x00}, - {0x03, 0xe3, 0x83, 0x06}, - {0x03, 0xe3, 0x83, 0x05}, - {0x03, 0xe3, 0x83, 0x0d}, - {0x03, 0xe3, 0x83, 0x0b}, - {0x03, 0xe3, 0x83, 0x07}, - {0x03, 0xe3, 0x83, 0x19}, - {0x03, 0xe3, 0x83, 0x15}, - {0x03, 0xe3, 0x83, 0x11}, - {0x03, 0xe3, 0x83, 0x31}, - {0x03, 0xe3, 0x83, 0x33}, - {0x03, 0xe3, 0x83, 0x30}, - {0x03, 0xe3, 0x83, 0x3e}, - {0x03, 0xe3, 0x83, 0x32}, - {0x03, 0xe3, 0x83, 0x36}, - {0x03, 0xe3, 0x83, 0x2e}, - {0x03, 0xe3, 0x82, 0x07}, - {0x03, 0xe3, 0x85, 0x04}, - {0x03, 0xe3, 0x84, 0x10}, - {0x03, 0xe3, 0x85, 0x30}, - {0x03, 0xe3, 0x85, 0x0d}, - {0x03, 0xe3, 0x85, 0x13}, - {0x03, 0xe3, 0x85, 0x15}, - {0x03, 0xe3, 0x85, 0x17}, - {0x03, 0xe3, 0x85, 0x1f}, - {0x03, 0xe3, 0x85, 0x1d}, - {0x03, 0xe3, 0x85, 0x1b}, - {0x03, 0xe3, 0x85, 0x09}, - {0x03, 0xe3, 0x85, 0x0f}, - {0x03, 0xe3, 0x85, 0x0b}, - {0x03, 0xe3, 0x85, 0x37}, - {0x03, 0xe3, 0x85, 0x3b}, - {0x03, 0xe3, 0x85, 0x39}, - {0x03, 0xe3, 0x85, 0x3f}, - {0x02, 0xc2, 0x02, 0x00}, - {0x02, 0xc2, 0x0e, 0x00}, - {0x02, 0xc2, 0x0c, 0x00}, - {0x02, 0xc2, 0x00, 0x00}, - {0x03, 0xe2, 0x82, 0x0f}, - {0x03, 0xe2, 0x94, 0x2a}, - {0x03, 0xe2, 0x86, 0x39}, - {0x03, 0xe2, 0x86, 0x3b}, - {0x03, 0xe2, 0x86, 0x3f}, - {0x03, 0xe2, 0x96, 0x0d}, - {0x03, 0xe2, 0x97, 0x25}, -} - -// Total table size 11480 bytes (11KiB) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/tables_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/tables_test.go deleted file mode 100644 index 54dc07e8..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/tables_test.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package width - -import ( - "flag" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/gen" -) - -var long = flag.Bool("long", false, - "run time-consuming tests, such as tests that fetch data online") - -const ( - loSurrogate = 0xD800 - hiSurrogate = 0xDFFF -) - -func TestTables(t *testing.T) { - if !gen.IsLocal() && !*long { - t.Skip("skipping test to prevent downloading; to run use -long or use -local to specify a local source") - } - runes := map[rune]Kind{} - getWidthData(func(r rune, tag elem, _ rune) { - runes[r] = tag.kind() - }) - for r := rune(0); r < 0x10FFFF; r++ { - if loSurrogate <= r && r <= hiSurrogate { - continue - } - p := LookupRune(r) - if got, want := p.Kind(), runes[r]; got != want { - t.Errorf("Kind of %U was %s; want %s.", r, got, want) - } - want, mapped := foldRune(r) - if got := p.Folded(); (got == 0) == mapped || got != 0 && got != want { - t.Errorf("Folded(%U) = %U; want %U", r, got, want) - } - want, mapped = widenRune(r) - if got := p.Wide(); (got == 0) == mapped || got != 0 && got != want { - t.Errorf("Wide(%U) = %U; want %U", r, got, want) - } - want, mapped = narrowRune(r) - if got := p.Narrow(); (got == 0) == mapped || got != 0 && got != want { - t.Errorf("Narrow(%U) = %U; want %U", r, got, want) - } - } -} - -// TestAmbiguous verifies that that ambiguous runes with a mapping always map to -// a halfwidth rune. -func TestAmbiguous(t *testing.T) { - for r, m := range mapRunes { - if m.e != tagAmbiguous { - continue - } - if k := mapRunes[m.r].e.kind(); k != EastAsianHalfwidth { - t.Errorf("Rune %U is ambiguous and maps to a rune of type %v", r, k) - } - } -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/transform.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/transform.go deleted file mode 100644 index d1f864c0..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/transform.go +++ /dev/null @@ -1,150 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package width - -import ( - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -type foldTransform struct { - transform.NopResetter -} - -func (foldTransform) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for nSrc < len(src) { - if src[nSrc] < utf8.RuneSelf { - // ASCII fast path. - start, end := nSrc, len(src) - if d := len(dst) - nDst; d < end-start { - end = nSrc + d - } - for nSrc++; nSrc < end && src[nSrc] < utf8.RuneSelf; nSrc++ { - } - nDst += copy(dst[nDst:], src[start:nSrc]) - if nDst == len(dst) && nSrc < len(src) && src[nSrc] < utf8.RuneSelf { - return nDst, nSrc, transform.ErrShortDst - } - continue - } - v, size := trie.lookup(src[nSrc:]) - if size == 0 { // incomplete UTF-8 encoding - if !atEOF { - return nDst, nSrc, transform.ErrShortSrc - } - size = 1 // gobble 1 byte - } - if elem(v)&tagNeedsFold == 0 { - if size != copy(dst[nDst:], src[nSrc:nSrc+size]) { - return nDst, nSrc, transform.ErrShortDst - } - nDst += size - } else { - data := inverseData[byte(v)] - if len(dst)-nDst < int(data[0]) { - return nDst, nSrc, transform.ErrShortDst - } - i := 1 - for end := int(data[0]); i < end; i++ { - dst[nDst] = data[i] - nDst++ - } - dst[nDst] = data[i] ^ src[nSrc+size-1] - nDst++ - } - nSrc += size - } - return nDst, nSrc, nil -} - -type narrowTransform struct { - transform.NopResetter -} - -func (narrowTransform) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for nSrc < len(src) { - if src[nSrc] < utf8.RuneSelf { - // ASCII fast path. - start, end := nSrc, len(src) - if d := len(dst) - nDst; d < end-start { - end = nSrc + d - } - for nSrc++; nSrc < end && src[nSrc] < utf8.RuneSelf; nSrc++ { - } - nDst += copy(dst[nDst:], src[start:nSrc]) - if nDst == len(dst) && nSrc < len(src) && src[nSrc] < utf8.RuneSelf { - return nDst, nSrc, transform.ErrShortDst - } - continue - } - v, size := trie.lookup(src[nSrc:]) - if size == 0 { // incomplete UTF-8 encoding - if !atEOF { - return nDst, nSrc, transform.ErrShortSrc - } - size = 1 // gobble 1 byte - } - if k := elem(v).kind(); byte(v) == 0 || k != EastAsianFullwidth && k != EastAsianWide && k != EastAsianAmbiguous { - if size != copy(dst[nDst:], src[nSrc:nSrc+size]) { - return nDst, nSrc, transform.ErrShortDst - } - nDst += size - } else { - data := inverseData[byte(v)] - if len(dst)-nDst < int(data[0]) { - return nDst, nSrc, transform.ErrShortDst - } - i := 1 - for end := int(data[0]); i < end; i++ { - dst[nDst] = data[i] - nDst++ - } - dst[nDst] = data[i] ^ src[nSrc+size-1] - nDst++ - } - nSrc += size - } - return nDst, nSrc, nil -} - -type wideTransform struct { - transform.NopResetter -} - -func (wideTransform) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for nSrc < len(src) { - // TODO: Consider ASCII fast path. Special-casing ASCII handling can - // reduce the ns/op of BenchmarkWideASCII by about 30%. This is probably - // not enough to warrant the extra code and complexity. - v, size := trie.lookup(src[nSrc:]) - if size == 0 { // incomplete UTF-8 encoding - if !atEOF { - return nDst, nSrc, transform.ErrShortSrc - } - size = 1 // gobble 1 byte - } - if k := elem(v).kind(); byte(v) == 0 || k != EastAsianHalfwidth && k != EastAsianNarrow { - if size != copy(dst[nDst:], src[nSrc:nSrc+size]) { - return nDst, nSrc, transform.ErrShortDst - } - nDst += size - } else { - data := inverseData[byte(v)] - if len(dst)-nDst < int(data[0]) { - return nDst, nSrc, transform.ErrShortDst - } - i := 1 - for end := int(data[0]); i < end; i++ { - dst[nDst] = data[i] - nDst++ - } - dst[nDst] = data[i] ^ src[nSrc+size-1] - nDst++ - } - nSrc += size - } - return nDst, nSrc, nil -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/transform_test.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/transform_test.go deleted file mode 100644 index 6aee2428..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/transform_test.go +++ /dev/null @@ -1,467 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package width - -import ( - "bytes" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/internal/testtext" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -func foldRune(r rune) (folded rune, ok bool) { - alt, ok := mapRunes[r] - if ok && alt.e&tagNeedsFold != 0 { - return alt.r, true - } - return r, false -} - -func widenRune(r rune) (wide rune, ok bool) { - alt, ok := mapRunes[r] - if k := alt.e.kind(); k == EastAsianHalfwidth || k == EastAsianNarrow { - return alt.r, true - } - return r, false -} - -func narrowRune(r rune) (narrow rune, ok bool) { - alt, ok := mapRunes[r] - if k := alt.e.kind(); k == EastAsianFullwidth || k == EastAsianWide || k == EastAsianAmbiguous { - return alt.r, true - } - return r, false -} - -func TestFoldSingleRunes(t *testing.T) { - for r := rune(0); r < 0x1FFFF; r++ { - if loSurrogate <= r && r <= hiSurrogate { - continue - } - x, _ := foldRune(r) - want := string(x) - got := Fold.String(string(r)) - if got != want { - t.Errorf("Fold().String(%U) = %+q; want %+q", r, got, want) - } - } -} - -func TestFold(t *testing.T) { - for _, tc := range []struct { - desc string - src string - nDst int - atEOF bool - dst string - nSrc int - err error - }{{ - desc: "empty", - src: "", - dst: "", - nDst: 10, - nSrc: 0, - atEOF: false, - err: nil, - }, { - desc: "short source 1", - src: "a\xc0", - dst: "a", - nDst: 10, - nSrc: 1, - atEOF: false, - err: transform.ErrShortSrc, - }, { - desc: "short source 2", - src: "a\xe0\x80", - dst: "a", - nDst: 10, - nSrc: 1, - atEOF: false, - err: transform.ErrShortSrc, - }, { - desc: "incomplete but terminated source 1", - src: "a\xc0", - dst: "a\xc0", - nDst: 10, - nSrc: 2, - atEOF: true, - err: nil, - }, { - desc: "incomplete but terminated source 2", - src: "a\xe0\x80", - dst: "a\xe0\x80", - nDst: 10, - nSrc: 3, - atEOF: true, - err: nil, - }, { - desc: "exact fit dst", - src: "a\uff01", - dst: "a!", - nDst: 2, - nSrc: 4, - atEOF: false, - err: nil, - }, { - desc: "short dst 1", - src: "a\uffe0", - dst: "a", - nDst: 2, - nSrc: 1, - atEOF: false, - err: transform.ErrShortDst, - }, { - desc: "short dst 2", - src: "ä¸å¤ ", - dst: "ä¸", - nDst: 3, - nSrc: 3, - atEOF: true, - err: transform.ErrShortDst, - }, { - desc: "short dst fast path", - src: "fast", - dst: "fas", - nDst: 3, - nSrc: 3, - atEOF: true, - err: transform.ErrShortDst, - }, { - desc: "fast path alternation", - src: "fast路徑fast路徑", - dst: "fast路徑fast路徑", - nDst: 20, - nSrc: 20, - atEOF: true, - err: nil, - }} { - b := make([]byte, tc.nDst) - nDst, nSrc, err := Fold.Transform(b, []byte(tc.src), tc.atEOF) - if got := string(b[:nDst]); got != tc.dst { - t.Errorf("%s: dst was %+q; want %+q", tc.desc, got, tc.dst) - } - if nSrc != tc.nSrc { - t.Errorf("%s: nSrc was %d; want %d", tc.desc, nSrc, tc.nSrc) - } - if err != tc.err { - t.Errorf("%s: error was %v; want %v", tc.desc, err, tc.err) - } - } -} - -func TestWidenSingleRunes(t *testing.T) { - for r := rune(0); r < 0x1FFFF; r++ { - if loSurrogate <= r && r <= hiSurrogate { - continue - } - alt, _ := widenRune(r) - want := string(alt) - got := Widen.String(string(r)) - if got != want { - t.Errorf("Widen().String(%U) = %+q; want %+q", r, got, want) - } - } -} - -func TestWiden(t *testing.T) { - for _, tc := range []struct { - desc string - src string - nDst int - atEOF bool - dst string - nSrc int - err error - }{{ - desc: "empty", - src: "", - dst: "", - nDst: 10, - nSrc: 0, - atEOF: false, - err: nil, - }, { - desc: "short source 1", - src: "a\xc0", - dst: "ï½", - nDst: 10, - nSrc: 1, - atEOF: false, - err: transform.ErrShortSrc, - }, { - desc: "short source 2", - src: "a\xe0\x80", - dst: "ï½", - nDst: 10, - nSrc: 1, - atEOF: false, - err: transform.ErrShortSrc, - }, { - desc: "incomplete but terminated source 1", - src: "a\xc0", - dst: "ï½\xc0", - nDst: 10, - nSrc: 2, - atEOF: true, - err: nil, - }, { - desc: "incomplete but terminated source 2", - src: "a\xe0\x80", - dst: "ï½\xe0\x80", - nDst: 10, - nSrc: 3, - atEOF: true, - err: nil, - }, { - desc: "exact fit dst", - src: "a!", - dst: "ï½\uff01", - nDst: 6, - nSrc: 2, - atEOF: false, - err: nil, - }, { - desc: "short dst 1", - src: "a\uffe0", - dst: "ï½", - nDst: 4, - nSrc: 1, - atEOF: false, - err: transform.ErrShortDst, - }, { - desc: "short dst 2", - src: "ä¸å¤ ", - dst: "ä¸", - nDst: 3, - nSrc: 3, - atEOF: true, - err: transform.ErrShortDst, - }, { - desc: "short dst ascii", - src: "ascii", - dst: "\uff41", - nDst: 3, - nSrc: 1, - atEOF: true, - err: transform.ErrShortDst, - }, { - desc: "ambiguous", - src: "\uffe9", - dst: "\u2190", - nDst: 4, - nSrc: 3, - atEOF: false, - err: nil, - }} { - b := make([]byte, tc.nDst) - nDst, nSrc, err := Widen.Transform(b, []byte(tc.src), tc.atEOF) - if got := string(b[:nDst]); got != tc.dst { - t.Errorf("%s: dst was %+q; want %+q", tc.desc, got, tc.dst) - } - if nSrc != tc.nSrc { - t.Errorf("%s: nSrc was %d; want %d", tc.desc, nSrc, tc.nSrc) - } - if err != tc.err { - t.Errorf("%s: error was %v; want %v", tc.desc, err, tc.err) - } - } -} - -func TestNarrowSingleRunes(t *testing.T) { - for r := rune(0); r < 0x1FFFF; r++ { - if loSurrogate <= r && r <= hiSurrogate { - continue - } - alt, _ := narrowRune(r) - want := string(alt) - got := Narrow.String(string(r)) - if got != want { - t.Errorf("Narrow().String(%U) = %+q; want %+q", r, got, want) - } - } -} - -func TestNarrow(t *testing.T) { - for _, tc := range []struct { - desc string - src string - nDst int - atEOF bool - dst string - nSrc int - err error - }{{ - desc: "empty", - src: "", - dst: "", - nDst: 10, - nSrc: 0, - atEOF: false, - err: nil, - }, { - desc: "short source 1", - src: "a\xc0", - dst: "a", - nDst: 10, - nSrc: 1, - atEOF: false, - err: transform.ErrShortSrc, - }, { - desc: "short source 2", - src: "ï½\xe0\x80", - dst: "a", - nDst: 10, - nSrc: 3, - atEOF: false, - err: transform.ErrShortSrc, - }, { - desc: "incomplete but terminated source 1", - src: "ï½\xc0", - dst: "a\xc0", - nDst: 10, - nSrc: 4, - atEOF: true, - err: nil, - }, { - desc: "incomplete but terminated source 2", - src: "ï½\xe0\x80", - dst: "a\xe0\x80", - nDst: 10, - nSrc: 5, - atEOF: true, - err: nil, - }, { - desc: "exact fit dst", - src: "ï½\uff01", - dst: "a!", - nDst: 2, - nSrc: 6, - atEOF: false, - err: nil, - }, { - desc: "short dst 1", - src: "ï½\uffe0", - dst: "a", - nDst: 2, - nSrc: 3, - atEOF: false, - err: transform.ErrShortDst, - }, { - desc: "short dst 2", - src: "ä¸å¤ ", - dst: "ä¸", - nDst: 3, - nSrc: 3, - atEOF: true, - err: transform.ErrShortDst, - }, { - // Create a narrow variant of ambiguous runes, if they exist. - desc: "ambiguous", - src: "\u2190", - dst: "\uffe9", - nDst: 4, - nSrc: 3, - atEOF: false, - err: nil, - }, { - desc: "short dst fast path", - src: "fast", - dst: "fas", - nDst: 3, - nSrc: 3, - atEOF: true, - err: transform.ErrShortDst, - }, { - desc: "fast path alternation", - src: "fast路徑fast路徑", - dst: "fast路徑fast路徑", - nDst: 20, - nSrc: 20, - atEOF: true, - err: nil, - }} { - b := make([]byte, tc.nDst) - nDst, nSrc, err := Narrow.Transform(b, []byte(tc.src), tc.atEOF) - if got := string(b[:nDst]); got != tc.dst { - t.Errorf("%s: dst was %+q; want %+q", tc.desc, got, tc.dst) - } - if nSrc != tc.nSrc { - t.Errorf("%s: nSrc was %d; want %d", tc.desc, nSrc, tc.nSrc) - } - if err != tc.err { - t.Errorf("%s: error was %v; want %v", tc.desc, err, tc.err) - } - } -} -func bench(b *testing.B, t Transformer, s string) { - dst := make([]byte, 1024) - src := []byte(s) - b.SetBytes(int64(len(src))) - b.ResetTimer() - for i := 0; i < b.N; i++ { - t.Transform(dst, src, true) - } -} - -func changingRunes(f func(r rune) (rune, bool)) string { - buf := &bytes.Buffer{} - for r := rune(0); r <= 0xFFFF; r++ { - if _, ok := foldRune(r); ok { - buf.WriteRune(r) - } - } - return buf.String() -} - -func BenchmarkFoldASCII(b *testing.B) { - bench(b, Fold, testtext.ASCII) -} - -func BenchmarkFoldCJK(b *testing.B) { - bench(b, Fold, testtext.CJK) -} - -func BenchmarkFoldNonCanonical(b *testing.B) { - bench(b, Fold, changingRunes(foldRune)) -} - -func BenchmarkFoldOther(b *testing.B) { - bench(b, Fold, testtext.TwoByteUTF8+testtext.ThreeByteUTF8) -} - -func BenchmarkWideASCII(b *testing.B) { - bench(b, Widen, testtext.ASCII) -} - -func BenchmarkWideCJK(b *testing.B) { - bench(b, Widen, testtext.CJK) -} - -func BenchmarkWideNonCanonical(b *testing.B) { - bench(b, Widen, changingRunes(widenRune)) -} - -func BenchmarkWideOther(b *testing.B) { - bench(b, Widen, testtext.TwoByteUTF8+testtext.ThreeByteUTF8) -} - -func BenchmarkNarrowASCII(b *testing.B) { - bench(b, Narrow, testtext.ASCII) -} - -func BenchmarkNarrowCJK(b *testing.B) { - bench(b, Narrow, testtext.CJK) -} - -func BenchmarkNarrowNonCanonical(b *testing.B) { - bench(b, Narrow, changingRunes(narrowRune)) -} - -func BenchmarkNarrowOther(b *testing.B) { - bench(b, Narrow, testtext.TwoByteUTF8+testtext.ThreeByteUTF8) -} diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/trieval.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/trieval.go deleted file mode 100644 index 0ecffb4c..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/trieval.go +++ /dev/null @@ -1,30 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package width - -// elem is an entry of the width trie. The high byte is used to encode the type -// of the rune. The low byte is used to store the index to a mapping entry in -// the inverseData array. -type elem uint16 - -const ( - tagNeutral elem = iota << typeShift - tagAmbiguous - tagWide - tagNarrow - tagFullwidth - tagHalfwidth -) - -const ( - numTypeBits = 3 - typeShift = 16 - numTypeBits - - // tagNeedsFold is true for all fullwidth and halfwidth runes except for - // the Won sign U+20A9. - tagNeedsFold = 0x1000 - - // The Korean Won sign is halfwidth, but SHOULD NOT be mapped to a wide - // variant. - wonSign rune = 0x20A9 -) diff --git a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/width.go b/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/width.go deleted file mode 100644 index b9c5269d..00000000 --- a/vendor/gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/width/width.go +++ /dev/null @@ -1,201 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate stringer -type=Kind -//go:generate go run gen.go gen_common.go gen_trieval.go - -// Package width provides functionality for handling different widths in text. -// -// Wide characters behave like ideographs; they tend to allow line breaks after -// each character and remain upright in vertical text layout. Narrow characters -// are kept together in words or runs that are rotated sideways in vertical text -// layout. -// -// For more information, see http://unicode.org/reports/tr11/. -package width - -import ( - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -// TODO -// 1) Reduce table size by compressing blocks. -// 2) API proposition for computing display length -// (approximation, fixed pitch only). -// 3) Implement display length. - -// Kind indicates the type of width property as defined in http://unicode.org/reports/tr11/. -type Kind int - -const ( - // Neutral characters do not occur in legacy East Asian character sets. - Neutral Kind = iota - - // EastAsianAmbiguous characters that can be sometimes wide and sometimes - // narrow and require additional information not contained in the character - // code to further resolve their width. - EastAsianAmbiguous - - // EastAsianWide characters are wide in its usual form. They occur only in - // the context of East Asian typography. These runes may have explicit - // halfwidth counterparts. - EastAsianWide - - // EastAsianNarrow characters are narrow in its usual form. They often have - // fullwidth counterparts. - EastAsianNarrow - - // Note: there exist Narrow runes that do not have fullwidth or wide - // counterparts, despite what the definition says (e.g. U+27E6). - - // EastAsianFullwidth characters have a compatibility decompositions of type - // wide that map to a narrow counterpart. - EastAsianFullwidth - - // EastAsianHalfwidth characters have a compatibility decomposition of type - // narrow that map to a wide or ambiguous counterpart, plus U+20A9 â‚© WON - // SIGN. - EastAsianHalfwidth - - // Note: there exist runes that have a halfwidth counterparts but that are - // classified as Ambiguous, rather than wide (e.g. U+2190). -) - -// TODO: the generated tries need to return size 1 for invalid runes for the -// width to be computed correctly (each byte should render width 1) - -var trie = newWidthTrie(0) - -// Lookup reports the Properties of the first rune in b and the number of bytes -// of its UTF-8 encoding. -func Lookup(b []byte) (p Properties, size int) { - v, sz := trie.lookup(b) - return Properties{elem(v), b[sz-1]}, sz -} - -// LookupString reports the Properties of the first rune in s and the number of -// bytes of its UTF-8 encoding. -func LookupString(s string) (p Properties, size int) { - v, sz := trie.lookupString(s) - return Properties{elem(v), s[sz-1]}, sz -} - -// LookupRune reports the Properties of rune r. -func LookupRune(r rune) Properties { - var buf [4]byte - n := utf8.EncodeRune(buf[:], r) - v, _ := trie.lookup(buf[:n]) - last := byte(r) - if r >= utf8.RuneSelf { - last = 0x80 + byte(r&0x3f) - } - return Properties{elem(v), last} -} - -// Properties provides access to width properties of a rune. -type Properties struct { - elem elem - last byte -} - -func (e elem) kind() Kind { - return Kind(e >> typeShift) -} - -// Kind returns the Kind of a rune as defined in Unicode TR #11. -// See http://unicode.org/reports/tr11/ for more details. -func (p Properties) Kind() Kind { - return p.elem.kind() -} - -// Folded returns the folded variant of a rune or 0 if the rune is canonical. -func (p Properties) Folded() rune { - if p.elem&tagNeedsFold != 0 { - buf := inverseData[byte(p.elem)] - buf[buf[0]] ^= p.last - r, _ := utf8.DecodeRune(buf[1 : 1+buf[0]]) - return r - } - return 0 -} - -// Narrow returns the narrow variant of a rune or 0 if the rune is already -// narrow or doesn't have a narrow variant. -func (p Properties) Narrow() rune { - if k := p.elem.kind(); byte(p.elem) != 0 && (k == EastAsianFullwidth || k == EastAsianWide || k == EastAsianAmbiguous) { - buf := inverseData[byte(p.elem)] - buf[buf[0]] ^= p.last - r, _ := utf8.DecodeRune(buf[1 : 1+buf[0]]) - return r - } - return 0 -} - -// Wide returns the wide variant of a rune or 0 if the rune is already -// wide or doesn't have a wide variant. -func (p Properties) Wide() rune { - if k := p.elem.kind(); byte(p.elem) != 0 && (k == EastAsianHalfwidth || k == EastAsianNarrow) { - buf := inverseData[byte(p.elem)] - buf[buf[0]] ^= p.last - r, _ := utf8.DecodeRune(buf[1 : 1+buf[0]]) - return r - } - return 0 -} - -// TODO for Properties: -// - Add Fullwidth/Halfwidth or Inverted methods for computing variants -// mapping. -// - Add width information (including information on non-spacing runes). - -// Transformer implements the transform.Transformer interface. -type Transformer struct { - t transform.Transformer -} - -// Reset implements the transform.Transformer interface. -func (t Transformer) Reset() { t.t.Reset() } - -// Transform implements the Transformer interface. -func (t Transformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - return t.t.Transform(dst, src, atEOF) -} - -// Bytes returns a new byte slice with the result of applying t to b. -func (t Transformer) Bytes(b []byte) []byte { - b, _, _ = transform.Bytes(t, b) - return b -} - -// String returns a string with the result of applying t to s. -func (t Transformer) String(s string) string { - s, _, _ = transform.String(t, s) - return s -} - -var ( - // Fold is a transform that maps all runes to their canonical width. - // - // Note that the NFKC and NFKD transforms in golang.org/x/text/unicode/norm - // provide a more generic folding mechanism. - Fold Transformer = Transformer{foldTransform{}} - - // Widen is a transform that maps runes to their wide variant, if - // available. - Widen Transformer = Transformer{wideTransform{}} - - // Narrow is a transform that maps runes to their narrow variant, if - // available. - Narrow Transformer = Transformer{narrowTransform{}} -) - -// TODO: Consider the following options: -// - Treat Ambiguous runes that have a halfwidth counterpart as wide, or some -// generalized variant of this. -// - Consider a wide Won character to be the default width (or some generalized -// variant of this). -// - Filter the set of characters that gets converted (the preferred approach is -// to allow applying filters to transforms). diff --git a/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/.gxignore b/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/LICENSE b/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/LICENSE deleted file mode 100644 index 249514b0..00000000 --- a/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ - Copyright 2013 John Howard Palevich - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/README.md b/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/README.md deleted file mode 100644 index 15f72fd8..00000000 --- a/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/README.md +++ /dev/null @@ -1,48 +0,0 @@ -go-nat-pmp -========== - -A Go language client for the NAT-PMP internet protocol for port mapping and discovering the external -IP address of a firewall. - -NAT-PMP is supported by Apple brand routers and open source routers like Tomato and DD-WRT. - -See http://tools.ietf.org/html/draft-cheshire-nat-pmp-03 - -Get the package ---------------- - - go get -u github.com/jackpal/go-nat-pmp - -Usage ------ - - import natpmp "github.com/jackpal/go-nat-pmp" - - client := natpmp.NewClient(gatewayIP) - response, err := client.GetExternalAddress() - if err != nil { - return - } - print("External IP address:", response.ExternalIPAddress) - -Notes ------ - -There doesn't seem to be an easy way to programmatically determine the address of the default gateway. -(Linux and OSX have a "routes" kernel API that can be examined to get this information, but there is -no Go package for getting this information.) - -Clients -------- - -This library is used in the Taipei Torrent BitTorrent client http://github.com/jackpal/Taipei-Torrent - -Complete documentation ----------------------- - - http://godoc.org/github.com/jackpal/go-nat-pmp - -License -------- - -This project is licensed under the Apache License 2.0. diff --git a/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/natpmp.go b/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/natpmp.go deleted file mode 100644 index f303e989..00000000 --- a/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/natpmp.go +++ /dev/null @@ -1,196 +0,0 @@ -package natpmp - -import ( - "fmt" - "gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway" - "log" - "net" - "time" -) - -// Implement the NAT-PMP protocol, typically supported by Apple routers and open source -// routers such as DD-WRT and Tomato. -// -// See http://tools.ietf.org/html/draft-cheshire-nat-pmp-03 -// -// Usage: -// -// client := natpmp.NewClient(gatewayIP) -// response, err := client.GetExternalAddress() - -const nAT_PMP_PORT = 5351 - -const nAT_TRIES = 9 - -const nAT_INITIAL_MS = 250 - -// The recommended mapping lifetime for AddPortMapping -const RECOMMENDED_MAPPING_LIFETIME_SECONDS = 3600 - -// Client is a NAT-PMP protocol client. -type Client struct { - gateway net.IP -} - -// Create a NAT-PMP client for the NAT-PMP server at the gateway. -func NewClient(gateway net.IP) (nat *Client) { - return &Client{gateway} -} - -// Create a NAT-PMP client for the NAT-PMP server at the default gateway. -func NewClientForDefaultGateway() (nat *Client, err error) { - var g net.IP - g, err = gateway.DiscoverGateway() - if err != nil { - return - } - nat = NewClient(g) - return -} - -// Results of the NAT-PMP GetExternalAddress operation -type GetExternalAddressResult struct { - SecondsSinceStartOfEpoc uint32 - ExternalIPAddress [4]byte -} - -// Get the external address of the router. -func (n *Client) GetExternalAddress() (result *GetExternalAddressResult, err error) { - msg := make([]byte, 2) - msg[0] = 0 // Version 0 - msg[1] = 0 // OP Code 0 - response, err := n.rpc(msg, 12) - if err != nil { - return - } - result = &GetExternalAddressResult{} - result.SecondsSinceStartOfEpoc = readNetworkOrderUint32(response[4:8]) - copy(result.ExternalIPAddress[:], response[8:12]) - return -} - -// Results of the NAT-PMP AddPortMapping operation -type AddPortMappingResult struct { - SecondsSinceStartOfEpoc uint32 - InternalPort uint16 - MappedExternalPort uint16 - PortMappingLifetimeInSeconds uint32 -} - -// Add (or delete) a port mapping. To delete a mapping, set the requestedExternalPort and lifetime to 0 -func (n *Client) AddPortMapping(protocol string, internalPort, requestedExternalPort int, lifetime int) (result *AddPortMappingResult, err error) { - var opcode byte - if protocol == "udp" { - opcode = 1 - } else if protocol == "tcp" { - opcode = 2 - } else { - err = fmt.Errorf("unknown protocol %v", protocol) - return - } - msg := make([]byte, 12) - msg[0] = 0 // Version 0 - msg[1] = opcode - writeNetworkOrderUint16(msg[4:6], uint16(internalPort)) - writeNetworkOrderUint16(msg[6:8], uint16(requestedExternalPort)) - writeNetworkOrderUint32(msg[8:12], uint32(lifetime)) - response, err := n.rpc(msg, 16) - if err != nil { - return - } - result = &AddPortMappingResult{} - result.SecondsSinceStartOfEpoc = readNetworkOrderUint32(response[4:8]) - result.InternalPort = readNetworkOrderUint16(response[8:10]) - result.MappedExternalPort = readNetworkOrderUint16(response[10:12]) - result.PortMappingLifetimeInSeconds = readNetworkOrderUint32(response[12:16]) - return -} - -func (n *Client) rpc(msg []byte, resultSize int) (result []byte, err error) { - var server net.UDPAddr - server.IP = n.gateway - server.Port = nAT_PMP_PORT - conn, err := net.DialUDP("udp", nil, &server) - if err != nil { - return - } - defer conn.Close() - - result = make([]byte, resultSize) - - needNewDeadline := true - - var tries uint - for tries = 0; tries < nAT_TRIES; { - if needNewDeadline { - err = conn.SetDeadline(time.Now().Add((nAT_INITIAL_MS << tries) * time.Millisecond)) - if err != nil { - return - } - needNewDeadline = false - } - _, err = conn.Write(msg) - if err != nil { - return - } - var bytesRead int - var remoteAddr *net.UDPAddr - bytesRead, remoteAddr, err = conn.ReadFromUDP(result) - if err != nil { - if err.(net.Error).Timeout() { - tries++ - needNewDeadline = true - continue - } - return - } - if !remoteAddr.IP.Equal(n.gateway) { - log.Printf("Ignoring packet because IPs differ:", remoteAddr, n.gateway) - // Ignore this packet. - // Continue without increasing retransmission timeout or deadline. - continue - } - if bytesRead != resultSize { - err = fmt.Errorf("unexpected result size %d, expected %d", bytesRead, resultSize) - return - } - if result[0] != 0 { - err = fmt.Errorf("unknown protocol version %d", result[0]) - return - } - expectedOp := msg[1] | 0x80 - if result[1] != expectedOp { - err = fmt.Errorf("Unexpected opcode %d. Expected %d", result[1], expectedOp) - return - } - resultCode := readNetworkOrderUint16(result[2:4]) - if resultCode != 0 { - err = fmt.Errorf("Non-zero result code %d", resultCode) - return - } - // If we got here the RPC is good. - return - } - err = fmt.Errorf("Timed out trying to contact gateway") - return -} - -func writeNetworkOrderUint16(buf []byte, d uint16) { - buf[0] = byte(d >> 8) - buf[1] = byte(d) -} - -func writeNetworkOrderUint32(buf []byte, d uint32) { - buf[0] = byte(d >> 24) - buf[1] = byte(d >> 16) - buf[2] = byte(d >> 8) - buf[3] = byte(d) -} - -func readNetworkOrderUint16(buf []byte) uint16 { - return (uint16(buf[0]) << 8) | uint16(buf[1]) -} - -func readNetworkOrderUint32(buf []byte) uint32 { - return (uint32(buf[0]) << 24) | (uint32(buf[1]) << 16) | (uint32(buf[2]) << 8) | uint32(buf[3]) -} diff --git a/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/natpmp_test.go b/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/natpmp_test.go deleted file mode 100644 index 28d28a22..00000000 --- a/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/natpmp_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package natpmp - -import ( - "testing" -) - -func TestNatPMP(t *testing.T) { - client, err := NewClientForDefaultGateway() - if err != nil { - t.Errorf("NewClientForDefaultGateway() = %v,%v", client, err) - return - } -} diff --git a/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/package.json b/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/package.json deleted file mode 100644 index dde18fa6..00000000 --- a/vendor/gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "go-nat-pmp", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "gateway", - "hash": "Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q", - "version": "0.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/jackpal/go-nat-pmp" - } -} \ No newline at end of file diff --git a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/.gxignore b/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/LICENSE b/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/LICENSE deleted file mode 100644 index 37ec93a1..00000000 --- a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and -distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright -owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities -that control, are controlled by, or are under common control with that entity. -For the purposes of this definition, "control" means (i) the power, direct or -indirect, to cause the direction or management of such entity, whether by -contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the -outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising -permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including -but not limited to software source code, documentation source, and configuration -files. - -"Object" form shall mean any form resulting from mechanical transformation or -translation of a Source form, including but not limited to compiled object code, -generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made -available under the License, as indicated by a copyright notice that is included -in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that -is based on (or derived from) the Work and for which the editorial revisions, -annotations, elaborations, or other modifications represent, as a whole, an -original work of authorship. For the purposes of this License, Derivative Works -shall not include works that remain separable from, or merely link (or bind by -name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version -of the Work and any modifications or additions to that Work or Derivative Works -thereof, that is intentionally submitted to Licensor for inclusion in the Work -by the copyright owner or by an individual or Legal Entity authorized to submit -on behalf of the copyright owner. For the purposes of this definition, -"submitted" means any form of electronic, verbal, or written communication sent -to the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control systems, and -issue tracking systems that are managed by, or on behalf of, the Licensor for -the purpose of discussing and improving the Work, but excluding communication -that is conspicuously marked or otherwise designated in writing by the copyright -owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf -of whom a Contribution has been received by Licensor and subsequently -incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby -grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, -irrevocable copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the Work and such -Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor 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, and otherwise transfer the Work, where -such license applies only to those patent claims licensable by such Contributor -that are necessarily infringed by their Contribution(s) alone or by combination -of their Contribution(s) with the Work to which such Contribution(s) was -submitted. If You institute patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the Work or a -Contribution incorporated within the Work constitutes direct or contributory -patent infringement, then any patent licenses granted to You under this License -for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof -in any medium, with or without modifications, and in Source or Object form, -provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of -this License; and -You must cause any modified files to carry prominent notices stating that You -changed the files; and -You must retain, in the Source form of any Derivative Works that You distribute, -all copyright, patent, trademark, and attribution notices from the Source form -of the Work, excluding those notices that do not pertain to any part of the -Derivative Works; and -If the Work includes a "NOTICE" text file as part of its distribution, then any -Derivative Works that You distribute must include a readable copy of the -attribution notices contained within such NOTICE file, excluding those notices -that do not pertain to any part of the Derivative Works, in at least one of the -following places: within a NOTICE text file distributed as part of the -Derivative Works; within the Source form or documentation, if provided along -with the Derivative Works; or, within a display generated by the Derivative -Works, if and wherever such third-party notices normally appear. The contents of -the NOTICE file are for informational purposes only and do not modify the -License. You may add Your own attribution notices within Derivative Works that -You distribute, alongside or as an addendum to the NOTICE text from the Work, -provided that such additional attribution notices cannot be construed as -modifying the License. -You may add Your own copyright statement to Your modifications and may provide -additional or different license terms and conditions for use, reproduction, or -distribution of Your modifications, or for any such Derivative Works as a whole, -provided Your use, reproduction, and distribution of the Work otherwise complies -with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted -for inclusion in the Work by You to the Licensor shall be under the terms and -conditions of this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify the terms of -any separate license agreement you may have executed with Licensor regarding -such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, -service marks, or product names of the Licensor, except as required for -reasonable and customary use in describing the origin of the Work and -reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the -Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, -including, without limitation, any warranties or conditions of TITLE, -NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are -solely responsible for determining the appropriateness of using or -redistributing the Work and assume any risks associated with Your exercise of -permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), -contract, or otherwise, unless required by applicable law (such as deliberate -and grossly negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, incidental, -or consequential damages of any character arising as a result of this License or -out of the use or inability to use the Work (including but not limited to -damages for loss of goodwill, work stoppage, computer failure or malfunction, or -any and all other commercial damages or losses), even if such Contributor has -been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to -offer, and charge a fee for, acceptance of support, warranty, indemnity, or -other liability obligations and/or rights consistent with this License. However, -in accepting such obligations, You may act only on Your own behalf and on Your -sole responsibility, not on behalf of any other Contributor, and only if You -agree to indemnify, defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason of your -accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work - -To apply the Apache License to your work, attach the following boilerplate -notice, with the fields enclosed by brackets "[]" replaced with your own -identifying information. (Don't include the brackets!) The text should be -enclosed in the appropriate comment syntax for the file format. We also -recommend that a file or class name and description of purpose be included on -the same "printed page" as the copyright notice for easier identification within -third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/README.md b/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/README.md deleted file mode 100644 index 24ddea09..00000000 --- a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# go-nat - -[![GoDoc](https://godoc.org/github.com/fd/go-nat?status.svg)](https://godoc.org/github.com/fd/go-nat) [![status](https://sourcegraph.com/api/repos/github.com/fd/go-nat/.badges/status.png)](https://sourcegraph.com/github.com/fd/go-nat) diff --git a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/_examples/nat-tester.go b/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/_examples/nat-tester.go deleted file mode 100644 index de642500..00000000 --- a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/_examples/nat-tester.go +++ /dev/null @@ -1,67 +0,0 @@ -package main - -import ( - "fmt" - "log" - "net/http" - "time" - - "gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat" -) - -func main() { - nat, err := nat.DiscoverGateway() - if err != nil { - log.Fatalf("error: %s", err) - } - log.Printf("nat type: %s", nat.Type()) - - daddr, err := nat.GetDeviceAddress() - if err != nil { - log.Fatalf("error: %s", err) - } - log.Printf("device address: %s", daddr) - - iaddr, err := nat.GetInternalAddress() - if err != nil { - log.Fatalf("error: %s", err) - } - log.Printf("internal address: %s", iaddr) - - eaddr, err := nat.GetExternalAddress() - if err != nil { - log.Fatalf("error: %s", err) - } - log.Printf("external address: %s", eaddr) - - eport, err := nat.AddPortMapping("tcp", 3080, "http", 60) - if err != nil { - log.Fatalf("error: %s", err) - } - - log.Printf("test-page: http://%s:%d/", eaddr, eport) - - go func() { - for { - time.Sleep(30 * time.Second) - - _, err = nat.AddPortMapping("tcp", 3080, "http", 60) - if err != nil { - log.Fatalf("error: %s", err) - } - } - }() - - defer nat.DeletePortMapping("txp", 3080) - - http.ListenAndServe(":3080", http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { - rw.Header().Set("Content-Type", "text/plain") - rw.WriteHeader(200) - fmt.Fprintf(rw, "Hello there!\n") - fmt.Fprintf(rw, "nat type: %s\n", nat.Type()) - fmt.Fprintf(rw, "device address: %s\n", daddr) - fmt.Fprintf(rw, "internal address: %s\n", iaddr) - fmt.Fprintf(rw, "external address: %s\n", eaddr) - fmt.Fprintf(rw, "test-page: http://%s:%d/\n", eaddr, eport) - })) -} diff --git a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/nat.go b/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/nat.go deleted file mode 100644 index 3cf96485..00000000 --- a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/nat.go +++ /dev/null @@ -1,54 +0,0 @@ -// Package nat implements NAT handling facilities -package nat - -import ( - "errors" - "math" - "math/rand" - "net" - "time" -) - -var ErrNoExternalAddress = errors.New("no external address") -var ErrNoInternalAddress = errors.New("no internal address") -var ErrNoNATFound = errors.New("no NAT found") - -// protocol is either "udp" or "tcp" -type NAT interface { - // Type returns the kind of NAT port mapping service that is used - Type() string - - // GetDeviceAddress returns the internal address of the gateway device. - GetDeviceAddress() (addr net.IP, err error) - - // GetExternalAddress returns the external address of the gateway device. - GetExternalAddress() (addr net.IP, err error) - - // GetInternalAddress returns the address of the local host. - GetInternalAddress() (addr net.IP, err error) - - // AddPortMapping maps a port on the local host to an external port. - AddPortMapping(protocol string, internalPort int, description string, timeout time.Duration) (mappedExternalPort int, err error) - - // DeletePortMapping removes a port mapping. - DeletePortMapping(protocol string, internalPort int) (err error) -} - -// DiscoverGateway attempts to find a gateway device. -func DiscoverGateway() (NAT, error) { - select { - case nat := <-discoverUPNP_IG1(): - return nat, nil - case nat := <-discoverUPNP_IG2(): - return nat, nil - case nat := <-discoverNATPMP(): - return nat, nil - case <-time.After(10 * time.Second): - return nil, ErrNoNATFound - } -} - -func randomPort() int { - rand.Seed(time.Now().UnixNano()) - return rand.Intn(math.MaxUint16-10000) + 10000 -} diff --git a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/natpmp.go b/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/natpmp.go deleted file mode 100644 index 96cabe60..00000000 --- a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/natpmp.go +++ /dev/null @@ -1,115 +0,0 @@ -package nat - -import ( - "net" - "time" - - "gx/QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su/go-nat-pmp" - "gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway" -) - -var ( - _ NAT = (*natpmpNAT)(nil) -) - -func discoverNATPMP() <-chan NAT { - res := make(chan NAT, 1) - - ip, err := gateway.DiscoverGateway() - if err == nil { - go discoverNATPMPWithAddr(res, ip) - } - - return res -} - -func discoverNATPMPWithAddr(c chan NAT, ip net.IP) { - client := natpmp.NewClient(ip) - _, err := client.GetExternalAddress() - if err != nil { - return - } - - c <- &natpmpNAT{client, ip, make(map[int]int)} -} - -type natpmpNAT struct { - c *natpmp.Client - gateway net.IP - ports map[int]int -} - -func (n *natpmpNAT) GetDeviceAddress() (addr net.IP, err error) { - return n.gateway, nil -} - -func (n *natpmpNAT) GetInternalAddress() (addr net.IP, err error) { - ifaces, err := net.Interfaces() - if err != nil { - return nil, err - } - - for _, iface := range ifaces { - addrs, err := iface.Addrs() - if err != nil { - return nil, err - } - - for _, addr := range addrs { - switch x := addr.(type) { - case *net.IPNet: - if x.Contains(n.gateway) { - return x.IP, nil - } - } - } - } - - return nil, ErrNoInternalAddress -} - -func (n *natpmpNAT) GetExternalAddress() (addr net.IP, err error) { - res, err := n.c.GetExternalAddress() - if err != nil { - return nil, err - } - - d := res.ExternalIPAddress - return net.IPv4(d[0], d[1], d[2], d[3]), nil -} - -func (n *natpmpNAT) AddPortMapping(protocol string, internalPort int, description string, timeout time.Duration) (int, error) { - var ( - err error - ) - - timeoutInSeconds := int(timeout / time.Second) - - if externalPort := n.ports[internalPort]; externalPort > 0 { - _, err = n.c.AddPortMapping(protocol, internalPort, externalPort, timeoutInSeconds) - if err == nil { - n.ports[internalPort] = externalPort - return externalPort, nil - } - } - - for i := 0; i < 3; i++ { - externalPort := randomPort() - _, err = n.c.AddPortMapping(protocol, internalPort, externalPort, timeoutInSeconds) - if err == nil { - n.ports[internalPort] = externalPort - return externalPort, nil - } - } - - return 0, err -} - -func (n *natpmpNAT) DeletePortMapping(protocol string, internalPort int) (err error) { - delete(n.ports, internalPort) - return nil -} - -func (n *natpmpNAT) Type() string { - return "NAT-PMP" -} diff --git a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/package.json b/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/package.json deleted file mode 100644 index ce406854..00000000 --- a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "go-nat", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "goupnp", - "hash": "QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ", - "version": "0.0.0" - }, - { - "name": "gateway", - "hash": "Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q", - "version": "0.0.0" - }, - { - "name": "go-nat-pmp", - "hash": "QmWLXARhyCVbGpAw6hqJF6zdux7WcTwJMQVBoRGK1433su", - "version": "0.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/fd/go-nat" - } -} \ No newline at end of file diff --git a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/upnp.go b/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/upnp.go deleted file mode 100644 index 576e9599..00000000 --- a/vendor/gx/QmWjjKcvWKtkwzbqF6t3Kz3wXA3Uj8DRAbPaTtcgFnvTQt/go-nat/upnp.go +++ /dev/null @@ -1,239 +0,0 @@ -package nat - -import ( - "net" - "time" - - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp" - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/internetgateway1" - "gx/QmQzr5XPAoSamewaq7HxL2W3fUXrA9gLCQJx4t9PBmdxmQ/goupnp/dcps/internetgateway2" -) - -var ( - _ NAT = (*upnp_NAT)(nil) -) - -func discoverUPNP_IG1() <-chan NAT { - res := make(chan NAT, 1) - go func() { - - // find devices - devs, err := goupnp.DiscoverDevices(internetgateway1.URN_WANConnectionDevice_1) - if err != nil { - return - } - - for _, dev := range devs { - if dev.Root == nil { - continue - } - - dev.Root.Device.VisitServices(func(srv *goupnp.Service) { - switch srv.ServiceType { - case internetgateway1.URN_WANIPConnection_1: - client := &internetgateway1.WANIPConnection1{ServiceClient: goupnp.ServiceClient{ - SOAPClient: srv.NewSOAPClient(), - RootDevice: dev.Root, - Service: srv, - }} - _, isNat, err := client.GetNATRSIPStatus() - if err == nil && isNat { - res <- &upnp_NAT{client, make(map[int]int), "UPNP (IG1-IP1)", dev.Root} - return - } - - case internetgateway1.URN_WANPPPConnection_1: - client := &internetgateway1.WANPPPConnection1{ServiceClient: goupnp.ServiceClient{ - SOAPClient: srv.NewSOAPClient(), - RootDevice: dev.Root, - Service: srv, - }} - _, isNat, err := client.GetNATRSIPStatus() - if err == nil && isNat { - res <- &upnp_NAT{client, make(map[int]int), "UPNP (IG1-PPP1)", dev.Root} - return - } - - } - }) - } - - }() - return res -} - -func discoverUPNP_IG2() <-chan NAT { - res := make(chan NAT, 1) - go func() { - - // find devices - devs, err := goupnp.DiscoverDevices(internetgateway2.URN_WANConnectionDevice_2) - if err != nil { - return - } - - for _, dev := range devs { - if dev.Root == nil { - continue - } - - dev.Root.Device.VisitServices(func(srv *goupnp.Service) { - switch srv.ServiceType { - case internetgateway2.URN_WANIPConnection_1: - client := &internetgateway2.WANIPConnection1{ServiceClient: goupnp.ServiceClient{ - SOAPClient: srv.NewSOAPClient(), - RootDevice: dev.Root, - Service: srv, - }} - _, isNat, err := client.GetNATRSIPStatus() - if err == nil && isNat { - res <- &upnp_NAT{client, make(map[int]int), "UPNP (IG2-IP1)", dev.Root} - return - } - - case internetgateway2.URN_WANIPConnection_2: - client := &internetgateway2.WANIPConnection2{ServiceClient: goupnp.ServiceClient{ - SOAPClient: srv.NewSOAPClient(), - RootDevice: dev.Root, - Service: srv, - }} - _, isNat, err := client.GetNATRSIPStatus() - if err == nil && isNat { - res <- &upnp_NAT{client, make(map[int]int), "UPNP (IG2-IP2)", dev.Root} - return - } - - case internetgateway2.URN_WANPPPConnection_1: - client := &internetgateway2.WANPPPConnection1{ServiceClient: goupnp.ServiceClient{ - SOAPClient: srv.NewSOAPClient(), - RootDevice: dev.Root, - Service: srv, - }} - _, isNat, err := client.GetNATRSIPStatus() - if err == nil && isNat { - res <- &upnp_NAT{client, make(map[int]int), "UPNP (IG2-PPP1)", dev.Root} - return - } - - } - }) - } - - }() - return res -} - -type upnp_NAT_Client interface { - GetExternalIPAddress() (string, error) - AddPortMapping(string, uint16, string, uint16, string, bool, string, uint32) error - DeletePortMapping(string, uint16, string) error -} - -type upnp_NAT struct { - c upnp_NAT_Client - ports map[int]int - typ string - rootDevice *goupnp.RootDevice -} - -func (u *upnp_NAT) GetExternalAddress() (addr net.IP, err error) { - ipString, err := u.c.GetExternalIPAddress() - if err != nil { - return nil, err - } - - ip := net.ParseIP(ipString) - if ip == nil { - return nil, ErrNoExternalAddress - } - - return ip, nil -} - -func mapProtocol(s string) string { - switch s { - case "udp": - return "UDP" - case "tcp": - return "TCP" - default: - panic("invalid protocol: " + s) - } -} - -func (u *upnp_NAT) AddPortMapping(protocol string, internalPort int, description string, timeout time.Duration) (int, error) { - ip, err := u.GetInternalAddress() - if err != nil { - return 0, nil - } - - timeoutInSeconds := uint32(timeout / time.Second) - - if externalPort := u.ports[internalPort]; externalPort > 0 { - err = u.c.AddPortMapping("", uint16(externalPort), mapProtocol(protocol), uint16(internalPort), ip.String(), true, description, timeoutInSeconds) - if err == nil { - return externalPort, nil - } - } - - for i := 0; i < 3; i++ { - externalPort := randomPort() - err = u.c.AddPortMapping("", uint16(externalPort), mapProtocol(protocol), uint16(internalPort), ip.String(), true, description, timeoutInSeconds) - if err == nil { - u.ports[internalPort] = externalPort - return externalPort, nil - } - } - - return 0, err -} - -func (u *upnp_NAT) DeletePortMapping(protocol string, internalPort int) error { - if externalPort := u.ports[internalPort]; externalPort > 0 { - delete(u.ports, internalPort) - return u.c.DeletePortMapping("", uint16(externalPort), mapProtocol(protocol)) - } - - return nil -} - -func (u *upnp_NAT) GetDeviceAddress() (net.IP, error) { - addr, err := net.ResolveUDPAddr("udp4", u.rootDevice.URLBase.Host) - if err != nil { - return nil, err - } - - return addr.IP, nil -} - -func (u *upnp_NAT) GetInternalAddress() (net.IP, error) { - devAddr, err := u.GetDeviceAddress() - if err != nil { - return nil, err - } - - ifaces, err := net.Interfaces() - if err != nil { - return nil, err - } - - for _, iface := range ifaces { - addrs, err := iface.Addrs() - if err != nil { - return nil, err - } - - for _, addr := range addrs { - switch x := addr.(type) { - case *net.IPNet: - if x.Contains(devAddr) { - return x.IP, nil - } - } - } - } - - return nil, ErrNoInternalAddress -} - -func (n *upnp_NAT) Type() string { return n.typ } diff --git a/vendor/gx/QmWsa476RGjb9scWzcRVts3QZsYjU5Kt6Y9qe8Q3vc5FHR/envpprof/envpprof.go b/vendor/gx/QmWsa476RGjb9scWzcRVts3QZsYjU5Kt6Y9qe8Q3vc5FHR/envpprof/envpprof.go deleted file mode 100644 index 8fe356ca..00000000 --- a/vendor/gx/QmWsa476RGjb9scWzcRVts3QZsYjU5Kt6Y9qe8Q3vc5FHR/envpprof/envpprof.go +++ /dev/null @@ -1,92 +0,0 @@ -package envpprof - -import ( - "fmt" - "io/ioutil" - "log" - "net" - "net/http" - _ "net/http/pprof" - "os" - "path/filepath" - "runtime" - "runtime/pprof" - "strings" -) - -var ( - pprofDir = filepath.Join(os.Getenv("HOME"), "pprof") - heap bool -) - -func writeHeapProfile() { - os.Mkdir(pprofDir, 0750) - f, err := ioutil.TempFile(pprofDir, "heap") - if err != nil { - log.Printf("error creating heap profile file: %s", err) - return - } - defer f.Close() - pprof.WriteHeapProfile(f) - log.Printf("wrote heap profile to %q", f.Name()) -} - -func Stop() { - pprof.StopCPUProfile() - if heap { - writeHeapProfile() - } -} - -func init() { - for _, item := range strings.Split(os.Getenv("GOPPROF"), ",") { - equalsPos := strings.IndexByte(item, '=') - var key, value string - if equalsPos < 0 { - key = item - } else { - key = item[:equalsPos] - value = item[equalsPos+1:] - } - if value != "" { - log.Printf("values not yet supported") - } - switch key { - case "http": - go func() { - var l net.Listener - for port := uint16(6061); port != 6060; port++ { - var err error - l, err = net.Listen("tcp", fmt.Sprintf("localhost:%d", port)) - if err == nil { - break - } - } - if l == nil { - log.Print("unable to create envpprof listener for http") - return - } - defer l.Close() - log.Printf("envpprof serving http://%s", l.Addr()) - log.Printf("error serving http on envpprof listener: %s", http.Serve(l, nil)) - }() - case "cpu": - os.Mkdir(pprofDir, 0750) - f, err := ioutil.TempFile(pprofDir, "cpu") - if err != nil { - log.Printf("error creating cpu pprof file: %s", err) - break - } - err = pprof.StartCPUProfile(f) - if err != nil { - log.Printf("error starting cpu profiling: %s", err) - break - } - log.Printf("cpu profiling to file %q", f.Name()) - case "block": - runtime.SetBlockProfileRate(1) - case "heap": - heap = true - } - } -} diff --git a/vendor/gx/QmWsa476RGjb9scWzcRVts3QZsYjU5Kt6Y9qe8Q3vc5FHR/envpprof/package.json b/vendor/gx/QmWsa476RGjb9scWzcRVts3QZsYjU5Kt6Y9qe8Q3vc5FHR/envpprof/package.json deleted file mode 100644 index 9eb05e9d..00000000 --- a/vendor/gx/QmWsa476RGjb9scWzcRVts3QZsYjU5Kt6Y9qe8Q3vc5FHR/envpprof/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "envpprof", - "author": "whyrusleeping", - "version": "1.0.0", - "language": "go", - "gx": { - "dvcsimport": "github.com/anacrolix/envpprof" - } -} \ No newline at end of file diff --git a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/.travis.yml b/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/.travis.yml deleted file mode 100644 index 7b571f40..00000000 --- a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: go - -go: - - 1.3 - - release - - tip - -script: - - go test -race -cpu=5 -v ./... diff --git a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/LICENSE b/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/LICENSE deleted file mode 100644 index c7386b3c..00000000 --- a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Juan Batiz-Benet - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/README.md b/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/README.md deleted file mode 100644 index acd4cf53..00000000 --- a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# go-temp-err-catcher - -This is a little package to use with your net.Listeners. - -Docs: https://godoc.org/github.com/jbenet/go-temp-err-catcher - -Get: - - go get github.com/jbenet/go-temp-err-catcher - -## Examples - -It is meant to be used with things like net.Lister.Accept: - -```go -import ( - tec "github.com/jbenet/go-temp-err-catcher" -) - -func listen(listener net.Listener) { - var c tec.TempErrCatcher - - for { - conn, err := listener.Accept() - if err != nil && c.IsTemporary(c) { - continue - } - return conn, err - } -} -``` - -You can make your errors implement `Temporary`: - -```go -type errTemp struct { - e error -} - -func (e errTemp) Temporary() bool { - return true -} - -func (e errTemp) Error() string { - return e.e.Error() -} - -err := errors.New("beep boop") -var c tec.TempErrCatcher -c.IsTemporary(err) // false -c.IsTemporary(errTemp{err}) // true -``` - -Or just use `ErrTemp`: - -```go -err := errors.New("beep boop") -var c tec.TempErrCatcher -c.IsTemporary(err) // false -c.IsTemporary(tec.ErrTemp{err}) // true -``` - - -You can also define an `IsTemp` function to classify errors: - -```go -var ErrSkip = errors.New("this should be skipped") -var ErrNotSkip = errors.New("this should not be skipped") - -var c tec.TempErrCatcher -c.IsTemp = func(e error) bool { - return e == ErrSkip -} - -c.IsTemporary(ErrSkip) // true -c.IsTemporary(ErrNotSkip) // false -c.IsTemporary(ErrTemp) // false! no longer accepts Temporary() -``` diff --git a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/doc.go b/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/doc.go deleted file mode 100644 index 766c8b6f..00000000 --- a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/doc.go +++ /dev/null @@ -1,62 +0,0 @@ -// Package temperrcatcher provides a TempErrCatcher object, -// which implements simple error-retrying functionality. -// It is meant to be used with things like net.Lister.Accept: -// -// import ( -// tec "github.com/jbenet/go-temp-err-catcher" -// ) -// -// func listen(listener net.Listener) { -// var c tec.TempErrCatcher -// -// for { -// conn, err := listener.Accept() -// if err != nil && c.IsTemporary(c) { -// continue -// } -// return conn, err -// } -// } -// -// You can make your errors implement `Temporary`: -// -// type errTemp struct { -// e error -// } -// -// func (e errTemp) Temporary() bool { -// return true -// } -// -// func (e errTemp) Error() string { -// return e.e.Error() -// } -// -// err := errors.New("beep boop") -// var c tec.TempErrCatcher -// c.IsTemporary(err) // false -// c.IsTemporary(errTemp{err}) // true -// -// Or just use `ErrTemp`: -// -// err := errors.New("beep boop") -// var c tec.TempErrCatcher -// c.IsTemporary(err) // false -// c.IsTemporary(tec.ErrTemp{err}) // true -// -// -// You can also define an `IsTemp` function to classify errors: -// -// var ErrSkip = errors.New("this should be skipped") -// var ErrNotSkip = errors.New("this should not be skipped") -// -// var c tec.TempErrCatcher -// c.IsTemp = func(e error) bool { -// return e == ErrSkip -// } -// -// c.IsTemporary(ErrSkip) // true -// c.IsTemporary(ErrNotSkip) // false -// c.IsTemporary(ErrTemp) // false! no longer accepts Temporary() -// -package temperrcatcher diff --git a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/example/example.go b/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/example/example.go deleted file mode 100644 index 6a34f6fa..00000000 --- a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/example/example.go +++ /dev/null @@ -1,47 +0,0 @@ -package main - -import ( - "fmt" - - tec "gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher" -) - -var ( - ErrTemp = tec.ErrTemporary{fmt.Errorf("ErrTemp")} - ErrSkip = fmt.Errorf("ErrSkip") - ErrOther = fmt.Errorf("ErrOther") -) - -func main() { - var normal tec.TempErrCatcher - var skipper tec.TempErrCatcher - skipper.IsTemp = func(e error) bool { - return e == ErrSkip - } - - fmt.Println("trying normal (uses Temporary interface)") - tryTec(normal) - fmt.Println("") - fmt.Println("trying skipper (uses our IsTemp function)") - tryTec(skipper) -} - -func tryTec(c tec.TempErrCatcher) { - errs := []error{ - ErrTemp, - ErrSkip, - ErrOther, - ErrTemp, - ErrSkip, - ErrOther, - } - - for _, e := range errs { - if c.IsTemporary(e) { - fmt.Printf("\tIsTemporary: true - skipped %s\n", e) - continue - } - - fmt.Printf("\tIsTemporary: false - not skipped %s\n", e) - } -} diff --git a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/package.json b/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/package.json deleted file mode 100644 index 7d6bd493..00000000 --- a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "go-temp-err-catcher", - "author": "whyrusleeping", - "version": "1.0.0", - "language": "go", - "gx": { - "dvcsimport": "github.com/jbenet/go-temp-err-catcher" - } -} \ No newline at end of file diff --git a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/tec_test.go b/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/tec_test.go deleted file mode 100644 index 1cd135c8..00000000 --- a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/tec_test.go +++ /dev/null @@ -1,172 +0,0 @@ -package temperrcatcher - -import ( - "fmt" - "testing" - "time" -) - -var ( - ErrTemp = ErrTemporary{fmt.Errorf("ErrTemp")} - ErrSkip = fmt.Errorf("ErrSkip") - ErrOther = fmt.Errorf("ErrOther") -) - -func testTec(t *testing.T, c TempErrCatcher, errs map[error]bool) { - for e, expected := range errs { - if c.IsTemporary(e) != expected { - t.Error("expected %s to be %v", e, expected) - } - } -} - -func TestNil(t *testing.T) { - var c TempErrCatcher - testTec(t, c, map[error]bool{ - ErrTemp: true, - ErrSkip: false, - ErrOther: false, - }) -} - -func TestWait(t *testing.T) { - var c TempErrCatcher - worked := make(chan time.Duration, 3) - c.Wait = func(t time.Duration) { - worked <- t - } - testTec(t, c, map[error]bool{ - ErrTemp: true, - ErrSkip: false, - ErrOther: false, - }) - - // should've called it once - select { - case <-worked: - default: - t.Error("did not call our Wait func") - } - - // should've called it ONLY once - select { - case <-worked: - t.Error("called our Wait func more than once") - default: - } -} - -func TestTemporary(t *testing.T) { - var c TempErrCatcher - testTec(t, c, map[error]bool{ - ErrTemp: true, - ErrSkip: false, - ErrOther: false, - }) -} - -func TestDoubles(t *testing.T) { - last := time.Now() - diff := func() time.Duration { - now := time.Now() - diff := now.Sub(last) - last = now - return diff - } - - testDiff := func(low, hi time.Duration) { - d := diff() - grace := time.Duration(50 * time.Microsecond) - if (d + grace) < low { - t.Error("time difference is smaller than", low, d) - } - if (d - grace) > hi { - t.Error("time difference is greater than", hi, d) - } - } - - var c TempErrCatcher - testDiff(0, c.Start) - c.IsTemporary(ErrTemp) - testDiff(c.Start, 2*c.Start) // first time. - c.IsTemporary(ErrTemp) - testDiff(2*c.Start, 4*c.Start) // second time. - c.IsTemporary(ErrTemp) - testDiff(4*c.Start, 8*c.Start) // third time. -} - -func TestDifferentStart(t *testing.T) { - last := time.Now() - diff := func() time.Duration { - now := time.Now() - diff := now.Sub(last) - last = now - return diff - } - - testDiff := func(low, hi time.Duration) { - d := diff() - grace := time.Duration(50 * time.Microsecond) - if (d + grace) < low { - t.Error("time difference is smaller than", low, d) - } - if (d - grace) > hi { - t.Error("time difference is greater than", hi, d) - } - } - - var c TempErrCatcher - f := time.Millisecond - testDiff(0, f) - c.IsTemporary(ErrTemp) - testDiff(f, 2*f) // first time. - c.IsTemporary(ErrTemp) - testDiff(2*f, 4*f) // second time. - c.IsTemporary(ErrTemp) - testDiff(4*f, 8*f) // third time. - - c.Reset() - c.Start = 10 * time.Millisecond - f = c.Start - testDiff(0, f) - c.IsTemporary(ErrTemp) - testDiff(f, 2*f) // first time. - c.IsTemporary(ErrTemp) - testDiff(2*f, 4*f) // second time. - c.IsTemporary(ErrTemp) - testDiff(4*f, 8*f) // third time. -} - -func TestDifferentStreaks(t *testing.T) { - var c TempErrCatcher - // one streak - c.IsTemporary(ErrTemp) // 1 - c.IsTemporary(ErrTemp) // 2 - c.IsTemporary(ErrTemp) // 4 - expect := 4 * time.Millisecond - if c.delay != expect { - t.Error("delay should be:", expect, c.delay) - } - - <-time.After(c.delay * 10) - - // a different streak - c.IsTemporary(ErrTemp) // 1 - c.IsTemporary(ErrTemp) // 2 - c.IsTemporary(ErrTemp) // 4 - if c.delay != expect { - t.Error("delay should be:", expect, c.delay) - } -} - -func TestFunc(t *testing.T) { - var c TempErrCatcher - c.IsTemp = func(e error) bool { - return e == ErrSkip - } - testTec(t, c, map[error]bool{ - ErrTemp: false, - ErrSkip: true, - ErrOther: false, - }) -} diff --git a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/temp_err_catcher.go b/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/temp_err_catcher.go deleted file mode 100644 index fe8e780c..00000000 --- a/vendor/gx/QmWtLNgjHvFnRHcHUheAMGx4sLYYYGSacNA3eG52ywy2UQ/go-temp-err-catcher/temp_err_catcher.go +++ /dev/null @@ -1,124 +0,0 @@ -// Package temperrcatcher provides a TempErrCatcher object, -// which implements simple error-retrying functionality. -package temperrcatcher - -import ( - "time" -) - -// InitialDelay governs how long to wait the first time. -// This is defaulted to time.Millisecond, which makes sense -// for network listener failures. You may want a much smaller -// delay. You can configure this package wide, or in each -// TempErrCatcher -var InitialDelay = time.Millisecond - -// Temporary is an interface errors can implement to -// ensure they are correctly classified by the default -// TempErrCatcher classifier -type Temporary interface { - Temporary() bool -} - -// ErrIsTemporary returns whether an error is Temporary(), -// iff it implements the Temporary interface. -func ErrIsTemporary(e error) bool { - te, ok := e.(Temporary) - return ok && te.Temporary() -} - -// TempErrCatcher catches temporary errors for you. It then sleeps -// for a bit before returning (you should then try again). This may -// seem odd, but it's exactly what net/http does: -// http://golang.org/src/net/http/server.go?s=51504:51550#L1728 -// -// You can set a few options in TempErrCatcher. They all have defaults -// so a zero TempErrCatcher is ready to be used: -// -// var c tec.TempErrCatcher -// c.IsTemporary(tempErr) -// -type TempErrCatcher struct { - IsTemp func(error) bool // the classifier to use. default: ErrIsTemporary - Wait func(time.Duration) // the wait func to call. default: time.Sleep - Max time.Duration // the maximum time to wait. default: time.Second - Start time.Duration // the delay to start with. default: InitialDelay - delay time.Duration - last time.Time -} - -func (tec *TempErrCatcher) init() { - if tec.Max == 0 { - tec.Max = time.Second - } - if tec.IsTemp == nil { - tec.IsTemp = ErrIsTemporary - } - if tec.Wait == nil { - tec.Wait = time.Sleep - } - if tec.Start == 0 { - tec.Start = InitialDelay - } -} - -// IsTemporary checks whether an error is temporary. It will call -// tec.Wait before returning, with a delay. The delay is also -// doubled, so we do not constantly spin. This is the strategy -// net.Listener uses. -// -// Note: you will want to call Reset() if you get a success, -// so that the stored delay is brough back to 0. -func (tec *TempErrCatcher) IsTemporary(e error) bool { - tec.init() - if tec.IsTemp(e) { - now := time.Now() - if now.Sub(tec.last) > (tec.delay * 5) { - // this is a "new streak" of temp failures. reset. - tec.Reset() - } - - if tec.delay == 0 { // init case. - tec.delay = tec.Start - } else { - tec.delay *= 2 - } - - if tec.delay > tec.Max { - tec.delay = tec.Max - } - tec.Wait(tec.delay) - tec.last = now - return true - } - tec.Reset() // different failure. call reset - return false -} - -// Reset sets the internal delay counter to 0 -func (tec *TempErrCatcher) Reset() { - tec.delay = 0 -} - -// ErrTemporary wraps any error and implements Temporary function. -// -// err := errors.New("beep boop") -// var c tec.TempErrCatcher -// c.IsTemporary(err) // false -// c.IsTemporary(tec.ErrTemp{err}) // true -// -type ErrTemporary struct { - Err error -} - -func (e ErrTemporary) Temporary() bool { - return true -} - -func (e ErrTemporary) Error() string { - return e.Err.Error() -} - -func (e ErrTemporary) String() string { - return e.Error() -} diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/.gxignore b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/.travis.yml b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/.travis.yml deleted file mode 100644 index 7b4b3695..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: go - -go: - - 1.3 - - 1.4 - - release - -script: - - go test -race -cpu=5 -v ./... diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/README.md b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/README.md deleted file mode 100644 index 2cab8d24..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# go-msgio - Message IO - -This is a simple package that helps read and write length-delimited slices. It's helpful for building wire protocols. - -## Usage - -### Reading - -```go -import "github.com/jbenet/msgio" -rdr := ... // some reader from a wire -mrdr := msgio.NewReader(rdr) - -for { - msg, err := mrdr.ReadMsg() - if err != nil { - return err - } - - doSomething(msg) -} -``` - -### Writing - -```go -import "github.com/jbenet/msgio" -wtr := genReader() -mwtr := msgio.NewWriter(wtr) - -for { - msg := genMessage() - err := mwtr.WriteMsg(msg) - if err != nil { - return err - } -} -``` - -### Duplex - -```go -import "github.com/jbenet/msgio" -rw := genReadWriter() -mrw := msgio.NewReadWriter(rw) - -for { - msg, err := mrdr.ReadMsg() - if err != nil { - return err - } - - // echo it back :) - err = mwtr.WriteMsg(msg) - if err != nil { - return err - } -} -``` - -### Channels - -```go -import "github.com/jbenet/msgio" -rw := genReadWriter() -rch := msgio.NewReadChannel(rw) -wch := msgio.NewWriteChannel(rw) - -for { - msg, err := <-rch - if err != nil { - return err - } - - // echo it back :) - wch<- rw -} -``` diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/chan.go b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/chan.go deleted file mode 100644 index 40293f24..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/chan.go +++ /dev/null @@ -1,114 +0,0 @@ -package msgio - -import ( - "io" - - mpool "gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/mpool" -) - -// Chan is a msgio duplex channel. It is used to have a channel interface -// around a msgio.Reader or Writer. -type Chan struct { - MsgChan chan []byte - ErrChan chan error - CloseChan chan bool -} - -// NewChan constructs a Chan with a given buffer size. -func NewChan(chanSize int) *Chan { - return &Chan{ - MsgChan: make(chan []byte, chanSize), - ErrChan: make(chan error, 1), - CloseChan: make(chan bool, 2), - } -} - -// ReadFrom wraps the given io.Reader with a msgio.Reader, reads all -// messages, ands sends them down the channel. -func (s *Chan) ReadFrom(r io.Reader) { - s.readFrom(NewReader(r)) -} - -// ReadFromWithPool wraps the given io.Reader with a msgio.Reader, reads all -// messages, ands sends them down the channel. Uses given Pool -func (s *Chan) ReadFromWithPool(r io.Reader, p *mpool.Pool) { - s.readFrom(NewReaderWithPool(r, p)) -} - -// ReadFrom wraps the given io.Reader with a msgio.Reader, reads all -// messages, ands sends them down the channel. -func (s *Chan) readFrom(mr Reader) { - // single reader, no need for Mutex - mr.(*reader).lock = new(nullLocker) - -Loop: - for { - buf, err := mr.ReadMsg() - if err != nil { - if err == io.EOF { - break Loop // done - } - - // unexpected error. tell the client. - s.ErrChan <- err - break Loop - } - - select { - case <-s.CloseChan: - break Loop // told we're done - case s.MsgChan <- buf: - // ok seems fine. send it away - } - } - - close(s.MsgChan) - // signal we're done - s.CloseChan <- true -} - -// WriteTo wraps the given io.Writer with a msgio.Writer, listens on the -// channel and writes all messages to the writer. -func (s *Chan) WriteTo(w io.Writer) { - // new buffer per message - // if bottleneck, cycle around a set of buffers - mw := NewWriter(w) - - // single writer, no need for Mutex - mw.(*writer).lock = new(nullLocker) -Loop: - for { - select { - case <-s.CloseChan: - break Loop // told we're done - - case msg, ok := <-s.MsgChan: - if !ok { // chan closed - break Loop - } - - if err := mw.WriteMsg(msg); err != nil { - if err != io.EOF { - // unexpected error. tell the client. - s.ErrChan <- err - } - - break Loop - } - } - } - - // signal we're done - s.CloseChan <- true -} - -// Close the Chan -func (s *Chan) Close() { - s.CloseChan <- true -} - -// nullLocker conforms to the sync.Locker interface but does nothing. -type nullLocker struct{} - -func (l *nullLocker) Lock() {} -func (l *nullLocker) Unlock() {} diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/chan_test.go b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/chan_test.go deleted file mode 100644 index d2f2cb2f..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/chan_test.go +++ /dev/null @@ -1,108 +0,0 @@ -package msgio - -import ( - "bytes" - randbuf "github.com/jbenet/go-randbuf" - "io" - "math/rand" - "testing" - "time" -) - -func TestReadChan(t *testing.T) { - buf := bytes.NewBuffer(nil) - writer := NewWriter(buf) - rchan := NewChan(10) - msgs := [1000][]byte{} - - r := rand.New(rand.NewSource(time.Now().UnixNano())) - for i := range msgs { - msgs[i] = randbuf.RandBuf(r, r.Intn(1000)) - err := writer.WriteMsg(msgs[i]) - if err != nil { - t.Fatal(err) - } - } - - if err := writer.Close(); err != nil { - t.Fatal(err) - } - - go rchan.ReadFrom(buf) - defer rchan.Close() - -Loop: - for i := 0; ; i++ { - select { - case err := <-rchan.ErrChan: - if err != nil { - t.Fatal("unexpected error", err) - } - - case msg2, ok := <-rchan.MsgChan: - if !ok { - if i < len(msg2) { - t.Error("failed to read all messages", len(msgs), i) - } - break Loop - } - - msg1 := msgs[i] - if !bytes.Equal(msg1, msg2) { - t.Fatal("message retrieved not equal\n", msg1, "\n\n", msg2) - } - } - } -} - -func TestWriteChan(t *testing.T) { - buf := bytes.NewBuffer(nil) - reader := NewReader(buf) - wchan := NewChan(10) - msgs := [1000][]byte{} - - go wchan.WriteTo(buf) - - r := rand.New(rand.NewSource(time.Now().UnixNano())) - for i := range msgs { - msgs[i] = randbuf.RandBuf(r, r.Intn(1000)) - - select { - case err := <-wchan.ErrChan: - if err != nil { - t.Fatal("unexpected error", err) - } - - case wchan.MsgChan <- msgs[i]: - } - } - - // tell chan we're done. - close(wchan.MsgChan) - // wait for writing to end - <-wchan.CloseChan - - defer wchan.Close() - - for i := 0; ; i++ { - msg2, err := reader.ReadMsg() - if err != nil { - if err == io.EOF { - if i < len(msg2) { - t.Error("failed to read all messages", len(msgs), i) - } - break - } - t.Error("unexpected error", err) - } - - msg1 := msgs[i] - if !bytes.Equal(msg1, msg2) { - t.Fatal("message retrieved not equal\n", msg1, "\n\n", msg2) - } - } - - if err := reader.Close(); err != nil { - t.Error(err) - } -} diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/fuzz.go b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/fuzz.go deleted file mode 100644 index a60176a7..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/fuzz.go +++ /dev/null @@ -1,23 +0,0 @@ -// +build gofuzz - -package msgio - -import "bytes" - -// get the go-fuzz tools and build a fuzzer -// $ go get -u github.com/dvyukov/go-fuzz/... -// $ go-fuzz-build github.com/jbenet/go-msgio - -// put a corpus of random (even better if actual, structured) data in a corpus directry -// $ go-fuzz -bin ./msgio-fuzz -corpus corpus -workdir=wdir -timeout=15 - -func Fuzz(data []byte) int { - rc := NewReader(bytes.NewReader(data)) - // rc := NewVarintReader(bytes.NewReader(data)) - - if _, err := rc.ReadMsg(); err != nil { - return 0 - } - - return 1 -} diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/fuzz_test.go b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/fuzz_test.go deleted file mode 100644 index 2002b8bb..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/fuzz_test.go +++ /dev/null @@ -1,24 +0,0 @@ -package msgio - -import ( - "strings" - "testing" -) - -func TestReader_CrashOne(t *testing.T) { - rc := NewReader(strings.NewReader("\x83000")) - _, err := rc.ReadMsg() - if err != ErrMsgTooLarge { - t.Error("should get ErrMsgTooLarge") - t.Log(err) - } -} - -func TestVarintReader_CrashOne(t *testing.T) { - rc := NewVarintReader(strings.NewReader("\x9a\xf1\xed\x9a0")) - _, err := rc.ReadMsg() - if err != ErrMsgTooLarge { - t.Error("should get ErrMsgTooLarge") - t.Log(err) - } -} diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/limit.go b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/limit.go deleted file mode 100644 index bce33cff..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/limit.go +++ /dev/null @@ -1,45 +0,0 @@ -package msgio - -import ( - "bytes" - "io" - "sync" -) - -// LimitedReader wraps an io.Reader with a msgio framed reader. The LimitedReader -// will return a reader which will io.EOF when the msg length is done. -func LimitedReader(r io.Reader) (io.Reader, error) { - l, err := ReadLen(r, nil) - return io.LimitReader(r, int64(l)), err -} - -// LimitedWriter wraps an io.Writer with a msgio framed writer. It is the inverse -// of LimitedReader: it will buffer all writes until "Flush" is called. When Flush -// is called, it will write the size of the buffer first, flush the buffer, reset -// the buffer, and begin accept more incoming writes. -func NewLimitedWriter(w io.Writer) *LimitedWriter { - return &LimitedWriter{W: w} -} - -type LimitedWriter struct { - W io.Writer - B bytes.Buffer - M sync.Mutex -} - -func (w *LimitedWriter) Write(buf []byte) (n int, err error) { - w.M.Lock() - n, err = w.B.Write(buf) - w.M.Unlock() - return n, err -} - -func (w *LimitedWriter) Flush() error { - w.M.Lock() - defer w.M.Unlock() - if err := WriteLen(w.W, w.B.Len()); err != nil { - return err - } - _, err := w.B.WriteTo(w.W) - return err -} diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/mpool/pool.go b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/mpool/pool.go deleted file mode 100644 index df8fa922..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/mpool/pool.go +++ /dev/null @@ -1,125 +0,0 @@ -// Package mpool provides a sync.Pool equivalent that buckets incoming -// requests to one of 32 sub-pools, one for each power of 2, 0-32. -// -// import "github.com/jbenet/go-msgio/mpool" -// var p mpool.Pool -// -// small := make([]byte, 1024) -// large := make([]byte, 4194304) -// p.Put(1024, small) -// p.Put(4194304, large) -// -// small2 := p.Get(1024).([]byte) -// large2 := p.Get(4194304).([]byte) -// fmt.Println("small2 len:", len(small2)) -// fmt.Println("large2 len:", len(large2)) -// -// // Output: -// // small2 len: 1024 -// // large2 len: 4194304 -// -package mpool - -import ( - "fmt" - "sync" -) - -// ByteSlicePool is a static Pool for reusing byteslices of various sizes. -var ByteSlicePool Pool - -func init() { - ByteSlicePool.New = func(length int) interface{} { - return make([]byte, length) - } -} - -// MaxLength is the maximum length of an element that can be added to the Pool. -const MaxLength = 1 << 32 - -// Pool is a pool to handle cases of reusing elements of varying sizes. -// It maintains up to 32 internal pools, for each power of 2 in 0-32. -type Pool struct { - small int // the size of the first pool - pools [32]*sync.Pool // a list of singlePools - sync.Mutex // protecting list - - // New is a function that constructs a new element in the pool, with given len - New func(len int) interface{} -} - -func (p *Pool) getPool(idx uint32) *sync.Pool { - if idx > uint32(len(p.pools)) { - panic(fmt.Errorf("index too large: %d", idx)) - } - - p.Lock() - defer p.Unlock() - - sp := p.pools[idx] - if sp == nil { - sp = new(sync.Pool) - p.pools[idx] = sp - } - return sp -} - -// Get selects an arbitrary item from the Pool, removes it from the Pool, -// and returns it to the caller. Get may choose to ignore the pool and -// treat it as empty. Callers should not assume any relation between values -// passed to Put and the values returned by Get. -// -// If Get would otherwise return nil and p.New is non-nil, Get returns the -// result of calling p.New. -func (p *Pool) Get(length uint32) interface{} { - idx := nextPowerOfTwo(length) - sp := p.getPool(idx) - // fmt.Printf("Get(%d) idx(%d)\n", length, idx) - val := sp.Get() - if val == nil && p.New != nil { - val = p.New(0x1 << idx) - } - return val -} - -// Put adds x to the pool. -func (p *Pool) Put(length uint32, val interface{}) { - idx := prevPowerOfTwo(length) - // fmt.Printf("Put(%d, -) idx(%d)\n", length, idx) - sp := p.getPool(idx) - sp.Put(val) -} - -func nextPowerOfTwo(v uint32) uint32 { - // fmt.Printf("nextPowerOfTwo(%d) ", v) - v-- - v |= v >> 1 - v |= v >> 2 - v |= v >> 4 - v |= v >> 8 - v |= v >> 16 - v++ - - // fmt.Printf("-> %d", v) - - i := uint32(0) - for i = 0; v > 1; i++ { - v = v >> 1 - } - - // fmt.Printf("-> %d\n", i) - return i -} - -func prevPowerOfTwo(num uint32) uint32 { - next := nextPowerOfTwo(num) - // fmt.Printf("prevPowerOfTwo(%d) next: %d", num, next) - switch { - case num == (1 << next): // num is a power of 2 - case next == 0: - default: - next = next - 1 // smaller - } - // fmt.Printf(" = %d\n", next) - return next -} diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/mpool/pool_test.go b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/mpool/pool_test.go deleted file mode 100644 index 16811032..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/mpool/pool_test.go +++ /dev/null @@ -1,254 +0,0 @@ -// 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. - -// Pool is no-op under race detector, so all these tests do not work. -// +build !race - -package mpool - -import ( - "fmt" - "math/rand" - "runtime" - "runtime/debug" - "sync/atomic" - "testing" - "time" -) - -func TestPool(t *testing.T) { - // disable GC so we can control when it happens. - defer debug.SetGCPercent(debug.SetGCPercent(-1)) - var p Pool - if p.Get(10) != nil { - t.Fatal("expected empty") - } - p.Put(16, "a") - p.Put(2048, "b") - if g := p.Get(16); g != "a" { - t.Fatalf("got %#v; want a", g) - } - if g := p.Get(2048); g != "b" { - t.Fatalf("got %#v; want b", g) - } - if g := p.Get(16); g != nil { - t.Fatalf("got %#v; want nil", g) - } - if g := p.Get(2048); g != nil { - t.Fatalf("got %#v; want nil", g) - } - if g := p.Get(1); g != nil { - t.Fatalf("got %#v; want nil", g) - } - p.Put(1023, "d") - if g := p.Get(1024); g != nil { - t.Fatalf("got %#v; want nil", g) - } - if g := p.Get(512); g != "d" { - t.Fatalf("got %#v; want d", g) - } - - debug.SetGCPercent(100) // to allow following GC to actually run - runtime.GC() - if g := p.Get(10); g != nil { - t.Fatalf("got %#v; want nil after GC", g) - } -} - -func TestPoolNew(t *testing.T) { - // disable GC so we can control when it happens. - defer debug.SetGCPercent(debug.SetGCPercent(-1)) - - s := [32]int{} - p := Pool{ - New: func(length int) interface{} { - idx := nextPowerOfTwo(uint32(length)) - s[idx]++ - return s[idx] - }, - } - if v := p.Get(1 << 5); v != 1 { - t.Fatalf("got %v; want 1", v) - } - if v := p.Get(1 << 2); v != 1 { - t.Fatalf("got %v; want 1", v) - } - if v := p.Get(1 << 2); v != 2 { - t.Fatalf("got %v; want 2", v) - } - if v := p.Get(1 << 5); v != 2 { - t.Fatalf("got %v; want 2", v) - } - p.Put(1<<2, 42) - p.Put(1<<5, 42) - if v := p.Get(1 << 2); v != 42 { - t.Fatalf("got %v; want 42", v) - } - if v := p.Get(1 << 2); v != 3 { - t.Fatalf("got %v; want 3", v) - } - if v := p.Get(1 << 5); v != 42 { - t.Fatalf("got %v; want 42", v) - } - if v := p.Get(1 << 5); v != 3 { - t.Fatalf("got %v; want 3", v) - } -} - -// Test that Pool does not hold pointers to previously cached -// resources -func TestPoolGC(t *testing.T) { - var p Pool - var fin uint32 - const N = 100 - for i := 0; i < N; i++ { - v := new(string) - runtime.SetFinalizer(v, func(vv *string) { - atomic.AddUint32(&fin, 1) - }) - p.Put(uint32(i), v) - } - for i := 0; i < N; i++ { - p.Get(uint32(i)) - } - for i := 0; i < 5; i++ { - runtime.GC() - time.Sleep(time.Duration(i*100+10) * time.Millisecond) - // 1 pointer can remain on stack or elsewhere - if atomic.LoadUint32(&fin) >= N-1 { - return - } - } - t.Fatalf("only %v out of %v resources are finalized", - atomic.LoadUint32(&fin), N) -} - -func TestPoolStress(t *testing.T) { - const P = 10 - N := int(1e6) - if testing.Short() { - N /= 100 - } - var p Pool - done := make(chan bool) - for i := 0; i < P; i++ { - go func() { - var v interface{} = 0 - for j := 0; j < N; j++ { - if v == nil { - v = 0 - } - p.Put(uint32(j), v) - v = p.Get(uint32(j)) - if v != nil && v.(int) != 0 { - t.Fatalf("expect 0, got %v", v) - } - } - done <- true - }() - } - for i := 0; i < P; i++ { - // fmt.Printf("%d/%d\n", i, P) - <-done - } -} - -func TestPoolStressByteSlicePool(t *testing.T) { - const P = 10 - chs := 10 - maxSize := uint32(1 << 16) - N := int(1e4) - if testing.Short() { - N /= 100 - } - p := ByteSlicePool - done := make(chan bool) - errs := make(chan error) - for i := 0; i < P; i++ { - go func() { - ch := make(chan []byte, chs+1) - - for i := 0; i < chs; i++ { - j := rand.Uint32() % maxSize - ch <- p.Get(j).([]byte) - } - - for j := 0; j < N; j++ { - r := uint32(0) - for i := 0; i < chs; i++ { - v := <-ch - p.Put(uint32(cap(v)), v) - r = rand.Uint32() % maxSize - v = p.Get(r).([]byte) - if uint32(len(v)) < r { - errs <- fmt.Errorf("expect len(v) >= %d, got %d", j, len(v)) - } - ch <- v - } - - if r%1000 == 0 { - runtime.GC() - } - } - done <- true - }() - } - - for i := 0; i < P; { - select { - case <-done: - i++ - // fmt.Printf("%d/%d\n", i, P) - case err := <-errs: - t.Error(err) - } - } -} - -func BenchmarkPool(b *testing.B) { - var p Pool - b.RunParallel(func(pb *testing.PB) { - i := 0 - for pb.Next() { - i = i << 1 - p.Put(uint32(i), 1) - p.Get(uint32(i)) - } - }) -} - -func BenchmarkPoolOverlflow(b *testing.B) { - var p Pool - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - for pow := uint32(0); pow < 32; pow++ { - for b := 0; b < 100; b++ { - p.Put(uint32(1<<pow), 1) - } - } - for pow := uint32(0); pow < 32; pow++ { - for b := 0; b < 100; b++ { - p.Get(uint32(1 << pow)) - } - } - } - }) -} - -func ExamplePool() { - var p Pool - - small := make([]byte, 1024) - large := make([]byte, 4194304) - p.Put(uint32(len(small)), small) - p.Put(uint32(len(large)), large) - - small2 := p.Get(uint32(len(small))).([]byte) - large2 := p.Get(uint32(len(large))).([]byte) - fmt.Println("small2 len:", len(small2)) - fmt.Println("large2 len:", len(large2)) - // Output: - // small2 len: 1024 - // large2 len: 4194304 -} diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio.go b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio.go deleted file mode 100644 index b6fedcd5..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio.go +++ /dev/null @@ -1,284 +0,0 @@ -package msgio - -import ( - "errors" - "io" - "sync" - - mpool "gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/mpool" -) - -// ErrMsgTooLarge is returned when the message length is exessive -var ErrMsgTooLarge = errors.New("message too large") - -const ( - lengthSize = 4 - defaultMaxSize = 8 * 1024 * 1024 // 8mb -) - -// Writer is the msgio Writer interface. It writes len-framed messages. -type Writer interface { - - // Write writes passed in buffer as a single message. - Write([]byte) (int, error) - - // WriteMsg writes the msg in the passed in buffer. - WriteMsg([]byte) error -} - -// WriteCloser is a Writer + Closer interface. Like in `golang/pkg/io` -type WriteCloser interface { - Writer - io.Closer -} - -// Reader is the msgio Reader interface. It reads len-framed messages. -type Reader interface { - - // Read reads the next message from the Reader. - // The client must pass a buffer large enough, or io.ErrShortBuffer will be - // returned. - Read([]byte) (int, error) - - // ReadMsg reads the next message from the Reader. - // Uses a mpool.Pool internally to reuse buffers. io.ErrShortBuffer will - // be returned if the Pool.Get(...) returns nil. - // User may call ReleaseMsg(msg) to signal a buffer can be reused. - ReadMsg() ([]byte, error) - - // ReleaseMsg signals a buffer can be reused. - ReleaseMsg([]byte) - - // NextMsgLen returns the length of the next (peeked) message. Does - // not destroy the message or have other adverse effects - NextMsgLen() (int, error) -} - -// ReadCloser combines a Reader and Closer. -type ReadCloser interface { - Reader - io.Closer -} - -// ReadWriter combines a Reader and Writer. -type ReadWriter interface { - Reader - Writer -} - -// ReadWriteCloser combines a Reader, a Writer, and Closer. -type ReadWriteCloser interface { - Reader - Writer - io.Closer -} - -// writer is the underlying type that implements the Writer interface. -type writer struct { - W io.Writer - - lock sync.Locker -} - -// NewWriter wraps an io.Writer with a msgio framed writer. The msgio.Writer -// will write the length prefix of every message written. -func NewWriter(w io.Writer) WriteCloser { - return &writer{W: w, lock: new(sync.Mutex)} -} - -func (s *writer) Write(msg []byte) (int, error) { - err := s.WriteMsg(msg) - if err != nil { - return 0, err - } - return len(msg), nil -} - -func (s *writer) WriteMsg(msg []byte) (err error) { - s.lock.Lock() - defer s.lock.Unlock() - if err := WriteLen(s.W, len(msg)); err != nil { - return err - } - _, err = s.W.Write(msg) - return err -} - -func (s *writer) Close() error { - s.lock.Lock() - defer s.lock.Unlock() - - if c, ok := s.W.(io.Closer); ok { - return c.Close() - } - return nil -} - -// reader is the underlying type that implements the Reader interface. -type reader struct { - R io.Reader - - lbuf []byte - next int - pool *mpool.Pool - lock sync.Locker - max int // the maximal message size (in bytes) this reader handles -} - -// NewReader wraps an io.Reader with a msgio framed reader. The msgio.Reader -// will read whole messages at a time (using the length). Assumes an equivalent -// writer on the other side. -func NewReader(r io.Reader) ReadCloser { - return NewReaderWithPool(r, &mpool.ByteSlicePool) -} - -// NewReaderWithPool wraps an io.Reader with a msgio framed reader. The msgio.Reader -// will read whole messages at a time (using the length). Assumes an equivalent -// writer on the other side. It uses a given mpool.Pool -func NewReaderWithPool(r io.Reader, p *mpool.Pool) ReadCloser { - if p == nil { - panic("nil pool") - } - return &reader{ - R: r, - lbuf: make([]byte, lengthSize), - next: -1, - pool: p, - lock: new(sync.Mutex), - max: defaultMaxSize, - } -} - -// NextMsgLen reads the length of the next msg into s.lbuf, and returns it. -// WARNING: like Read, NextMsgLen is destructive. It reads from the internal -// reader. -func (s *reader) NextMsgLen() (int, error) { - s.lock.Lock() - defer s.lock.Unlock() - return s.nextMsgLen() -} - -func (s *reader) nextMsgLen() (int, error) { - if s.next == -1 { - n, err := ReadLen(s.R, s.lbuf) - if err != nil { - return 0, err - } - - s.next = n - } - return s.next, nil -} - -func (s *reader) Read(msg []byte) (int, error) { - s.lock.Lock() - defer s.lock.Unlock() - - length, err := s.nextMsgLen() - if err != nil { - return 0, err - } - - if length > len(msg) { - return 0, io.ErrShortBuffer - } - - _, err = io.ReadFull(s.R, msg[:length]) - s.next = -1 // signal we've consumed this msg - return length, err -} - -func (s *reader) ReadMsg() ([]byte, error) { - s.lock.Lock() - defer s.lock.Unlock() - - length, err := s.nextMsgLen() - if err != nil { - return nil, err - } - - if length > s.max || length < 0 { - return nil, ErrMsgTooLarge - } - - msgb := s.pool.Get(uint32(length)) - if msgb == nil { - return nil, io.ErrShortBuffer - } - msg := msgb.([]byte)[:length] - _, err = io.ReadFull(s.R, msg) - s.next = -1 // signal we've consumed this msg - return msg, err -} - -func (s *reader) ReleaseMsg(msg []byte) { - s.pool.Put(uint32(cap(msg)), msg) -} - -func (s *reader) Close() error { - s.lock.Lock() - defer s.lock.Unlock() - - if c, ok := s.R.(io.Closer); ok { - return c.Close() - } - return nil -} - -// readWriter is the underlying type that implements a ReadWriter. -type readWriter struct { - Reader - Writer -} - -// NewReadWriter wraps an io.ReadWriter with a msgio.ReadWriter. Writing -// and Reading will be appropriately framed. -func NewReadWriter(rw io.ReadWriter) ReadWriteCloser { - return &readWriter{ - Reader: NewReader(rw), - Writer: NewWriter(rw), - } -} - -// Combine wraps a pair of msgio.Writer and msgio.Reader with a msgio.ReadWriter. -func Combine(w Writer, r Reader) ReadWriteCloser { - return &readWriter{Reader: r, Writer: w} -} - -func (rw *readWriter) Close() error { - var errs []error - - if w, ok := rw.Writer.(WriteCloser); ok { - if err := w.Close(); err != nil { - errs = append(errs, err) - } - } - if r, ok := rw.Reader.(ReadCloser); ok { - if err := r.Close(); err != nil { - errs = append(errs, err) - } - } - - if len(errs) > 0 { - return multiErr(errs) - } - return nil -} - -// multiErr is a util to return multiple errors -type multiErr []error - -func (m multiErr) Error() string { - if len(m) == 0 { - return "no errors" - } - - s := "Multiple errors: " - for i, e := range m { - if i != 0 { - s += ", " - } - s += e.Error() - } - return s -} diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio/.gitignore b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio/.gitignore deleted file mode 100644 index fc28073b..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio/.gitignore +++ /dev/null @@ -1 +0,0 @@ -msgio diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio/README.md b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio/README.md deleted file mode 100644 index 9a7318f9..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# msgio headers tool - -Conveniently output msgio headers. - -## Install - -``` -go get github.com/jbenet/go-msgio/msgio -``` - -## Usage - -``` -> msgio -h -msgio - tool to wrap messages with msgio header - -Usage - msgio header 1020 >header - cat file | msgio wrap >wrapped - -Commands - header <size> output a msgio header of given size - wrap wrap incoming stream with msgio -``` diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio/msgio.go b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio/msgio.go deleted file mode 100644 index 84669f59..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio/msgio.go +++ /dev/null @@ -1,108 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "io" - "io/ioutil" - "os" - "strconv" - "strings" - - msgio "gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio" -) - -var Args ArgType - -type ArgType struct { - Command string - Args []string -} - -func (a *ArgType) Arg(i int) string { - n := i + 1 - if len(a.Args) < n { - die(fmt.Sprintf("expected %d argument(s)", n)) - } - return a.Args[i] -} - -var usageStr = ` -msgio - tool to wrap messages with msgio header - -Usage - msgio header 1020 >header - cat file | msgio wrap >wrapped - -Commands - header <size> output a msgio header of given size - wrap wrap incoming stream with msgio -` - -func usage() { - fmt.Println(strings.TrimSpace(usageStr)) - os.Exit(0) -} - -func die(err string) { - fmt.Fprintf(os.Stderr, "error: %s\n", err) - os.Exit(-1) -} - -func main() { - if err := run(); err != nil { - die(err.Error()) - } -} - -func argParse() { - flag.Usage = usage - flag.Parse() - - args := flag.Args() - if l := len(args); l < 1 || l > 2 { - usage() - } - - Args.Command = flag.Args()[0] - Args.Args = flag.Args()[1:] -} - -func run() error { - argParse() - - w := os.Stdout - r := os.Stdin - - switch Args.Command { - case "header": - size, err := strconv.Atoi(Args.Arg(0)) - if err != nil { - return err - } - return header(w, size) - case "wrap": - return wrap(w, r) - default: - usage() - return nil - } -} - -func header(w io.Writer, size int) error { - return msgio.WriteLen(w, size) -} - -func wrap(w io.Writer, r io.Reader) error { - buf, err := ioutil.ReadAll(r) - if err != nil { - return err - } - - if err := msgio.WriteLen(w, len(buf)); err != nil { - return err - } - - _, err = w.Write(buf) - return err -} diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio_test.go b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio_test.go deleted file mode 100644 index da1590d6..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/msgio_test.go +++ /dev/null @@ -1,197 +0,0 @@ -package msgio - -import ( - "bytes" - "fmt" - randbuf "github.com/jbenet/go-randbuf" - "io" - "math/rand" - "sync" - "testing" - "time" -) - -func TestReadWrite(t *testing.T) { - buf := bytes.NewBuffer(nil) - writer := NewWriter(buf) - reader := NewReader(buf) - SubtestReadWrite(t, writer, reader) -} - -func TestReadWriteMsg(t *testing.T) { - buf := bytes.NewBuffer(nil) - writer := NewWriter(buf) - reader := NewReader(buf) - SubtestReadWriteMsg(t, writer, reader) -} - -func TestReadWriteMsgSync(t *testing.T) { - buf := bytes.NewBuffer(nil) - writer := NewWriter(buf) - reader := NewReader(buf) - SubtestReadWriteMsgSync(t, writer, reader) -} - -func SubtestReadWrite(t *testing.T, writer WriteCloser, reader ReadCloser) { - msgs := [1000][]byte{} - - r := rand.New(rand.NewSource(time.Now().UnixNano())) - for i := range msgs { - msgs[i] = randbuf.RandBuf(r, r.Intn(1000)) - n, err := writer.Write(msgs[i]) - if err != nil { - t.Fatal(err) - } - if n != len(msgs[i]) { - t.Fatal("wrong length:", n, len(msgs[i])) - } - } - - if err := writer.Close(); err != nil { - t.Fatal(err) - } - - for i := 0; ; i++ { - msg2 := make([]byte, 1000) - n, err := reader.Read(msg2) - if err != nil { - if err == io.EOF { - if i < len(msg2) { - t.Error("failed to read all messages", len(msgs), i) - } - break - } - t.Error("unexpected error", err) - } - - msg1 := msgs[i] - msg2 = msg2[:n] - if !bytes.Equal(msg1, msg2) { - t.Fatal("message retrieved not equal\n", msg1, "\n\n", msg2) - } - } - - if err := reader.Close(); err != nil { - t.Error(err) - } -} - -func SubtestReadWriteMsg(t *testing.T, writer WriteCloser, reader ReadCloser) { - msgs := [1000][]byte{} - - r := rand.New(rand.NewSource(time.Now().UnixNano())) - for i := range msgs { - msgs[i] = randbuf.RandBuf(r, r.Intn(1000)) - err := writer.WriteMsg(msgs[i]) - if err != nil { - t.Fatal(err) - } - } - - if err := writer.Close(); err != nil { - t.Fatal(err) - } - - for i := 0; ; i++ { - msg2, err := reader.ReadMsg() - if err != nil { - if err == io.EOF { - if i < len(msg2) { - t.Error("failed to read all messages", len(msgs), i) - } - break - } - t.Error("unexpected error", err) - } - - msg1 := msgs[i] - if !bytes.Equal(msg1, msg2) { - t.Fatal("message retrieved not equal\n", msg1, "\n\n", msg2) - } - } - - if err := reader.Close(); err != nil { - t.Error(err) - } -} - -func SubtestReadWriteMsgSync(t *testing.T, writer WriteCloser, reader ReadCloser) { - msgs := [1000][]byte{} - - r := rand.New(rand.NewSource(time.Now().UnixNano())) - for i := range msgs { - msgs[i] = randbuf.RandBuf(r, r.Intn(1000)+4) - NBO.PutUint32(msgs[i][:4], uint32(i)) - } - - var wg1 sync.WaitGroup - var wg2 sync.WaitGroup - - errs := make(chan error, 10000) - for i := range msgs { - wg1.Add(1) - go func(i int) { - defer wg1.Done() - - err := writer.WriteMsg(msgs[i]) - if err != nil { - errs <- err - } - }(i) - } - - wg1.Wait() - if err := writer.Close(); err != nil { - t.Fatal(err) - } - - for i := 0; i < len(msgs)+1; i++ { - wg2.Add(1) - go func(i int) { - defer wg2.Done() - - msg2, err := reader.ReadMsg() - if err != nil { - if err == io.EOF { - if i < len(msg2) { - errs <- fmt.Errorf("failed to read all messages", len(msgs), i) - } - return - } - errs <- fmt.Errorf("unexpected error", err) - } - - mi := NBO.Uint32(msg2[:4]) - msg1 := msgs[mi] - if !bytes.Equal(msg1, msg2) { - errs <- fmt.Errorf("message retrieved not equal\n", msg1, "\n\n", msg2) - } - }(i) - } - - wg2.Wait() - close(errs) - - if err := reader.Close(); err != nil { - t.Error(err) - } - - for e := range errs { - t.Error(e) - } -} - -func TestBadSizes(t *testing.T) { - data := make([]byte, 4) - - // on a 64 bit system, this will fail because its too large - // on a 32 bit system, this will fail because its too small - NBO.PutUint32(data, 4000000000) - buf := bytes.NewReader(data) - read := NewReader(buf) - msg, err := read.ReadMsg() - if err == nil { - t.Fatal(err) - } - _ = msg -} diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/num.go b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/num.go deleted file mode 100644 index 513c1994..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/num.go +++ /dev/null @@ -1,33 +0,0 @@ -package msgio - -import ( - "encoding/binary" - "io" -) - -// NBO is NetworkByteOrder -var NBO = binary.BigEndian - -// WriteLen writes a length to the given writer. -func WriteLen(w io.Writer, l int) error { - ul := uint32(l) - return binary.Write(w, NBO, &ul) -} - -// ReadLen reads a length from the given reader. -// if buf is non-nil, it reuses the buffer. Ex: -// l, err := ReadLen(r, nil) -// _, err := ReadLen(r, buf) -func ReadLen(r io.Reader, buf []byte) (int, error) { - if len(buf) < 4 { - buf = make([]byte, 4) - } - buf = buf[:4] - - if _, err := io.ReadFull(r, buf); err != nil { - return 0, err - } - - n := int(NBO.Uint32(buf)) - return n, nil -} diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/package.json b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/package.json deleted file mode 100644 index d07a1457..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "go-msgio", - "author": "whyrusleeping", - "version": "0.0.0", - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/jbenet/go-msgio" - } -} \ No newline at end of file diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/varint.go b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/varint.go deleted file mode 100644 index c57ff6f1..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/varint.go +++ /dev/null @@ -1,188 +0,0 @@ -package msgio - -import ( - "encoding/binary" - "io" - "sync" - - mpool "gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/mpool" -) - -// varintWriter is the underlying type that implements the Writer interface. -type varintWriter struct { - W io.Writer - - lbuf []byte // for encoding varints - lock sync.Locker // for threadsafe writes -} - -// NewVarintWriter wraps an io.Writer with a varint msgio framed writer. -// The msgio.Writer will write the length prefix of every message written -// as a varint, using https://golang.org/pkg/encoding/binary/#PutUvarint -func NewVarintWriter(w io.Writer) WriteCloser { - return &varintWriter{ - W: w, - lbuf: make([]byte, binary.MaxVarintLen64), - lock: new(sync.Mutex), - } -} - -func (s *varintWriter) Write(msg []byte) (int, error) { - err := s.WriteMsg(msg) - if err != nil { - return 0, err - } - return len(msg), nil -} - -func (s *varintWriter) WriteMsg(msg []byte) error { - s.lock.Lock() - defer s.lock.Unlock() - - length := uint64(len(msg)) - n := binary.PutUvarint(s.lbuf, length) - if _, err := s.W.Write(s.lbuf[:n]); err != nil { - return err - } - _, err := s.W.Write(msg) - return err -} - -func (s *varintWriter) Close() error { - s.lock.Lock() - defer s.lock.Unlock() - - if c, ok := s.W.(io.Closer); ok { - return c.Close() - } - return nil -} - -// varintReader is the underlying type that implements the Reader interface. -type varintReader struct { - R io.Reader - br io.ByteReader // for reading varints. - - lbuf []byte - next int - pool *mpool.Pool - lock sync.Locker - max int // the maximal message size (in bytes) this reader handles -} - -// NewVarintReader wraps an io.Reader with a varint msgio framed reader. -// The msgio.Reader will read whole messages at a time (using the length). -// Varints read according to https://golang.org/pkg/encoding/binary/#ReadUvarint -// Assumes an equivalent writer on the other side. -func NewVarintReader(r io.Reader) ReadCloser { - return NewVarintReaderWithPool(r, &mpool.ByteSlicePool) -} - -// NewVarintReaderWithPool wraps an io.Reader with a varint msgio framed reader. -// The msgio.Reader will read whole messages at a time (using the length). -// Varints read according to https://golang.org/pkg/encoding/binary/#ReadUvarint -// Assumes an equivalent writer on the other side. It uses a given mpool.Pool -func NewVarintReaderWithPool(r io.Reader, p *mpool.Pool) ReadCloser { - if p == nil { - panic("nil pool") - } - return &varintReader{ - R: r, - br: &simpleByteReader{R: r}, - lbuf: make([]byte, binary.MaxVarintLen64), - next: -1, - pool: p, - lock: new(sync.Mutex), - max: defaultMaxSize, - } -} - -// NextMsgLen reads the length of the next msg into s.lbuf, and returns it. -// WARNING: like Read, NextMsgLen is destructive. It reads from the internal -// reader. -func (s *varintReader) NextMsgLen() (int, error) { - s.lock.Lock() - defer s.lock.Unlock() - return s.nextMsgLen() -} - -func (s *varintReader) nextMsgLen() (int, error) { - if s.next == -1 { - length, err := binary.ReadUvarint(s.br) - if err != nil { - return 0, err - } - s.next = int(length) - } - return s.next, nil -} - -func (s *varintReader) Read(msg []byte) (int, error) { - s.lock.Lock() - defer s.lock.Unlock() - - length, err := s.nextMsgLen() - if err != nil { - return 0, err - } - - if length > len(msg) { - return 0, io.ErrShortBuffer - } - _, err = io.ReadFull(s.R, msg[:length]) - s.next = -1 // signal we've consumed this msg - return length, err -} - -func (s *varintReader) ReadMsg() ([]byte, error) { - s.lock.Lock() - defer s.lock.Unlock() - - length, err := s.nextMsgLen() - if err != nil { - return nil, err - } - - if length > s.max { - return nil, ErrMsgTooLarge - } - - msgb := s.pool.Get(uint32(length)) - if msgb == nil { - return nil, io.ErrShortBuffer - } - msg := msgb.([]byte)[:length] - _, err = io.ReadFull(s.R, msg) - s.next = -1 // signal we've consumed this msg - return msg, err -} - -func (s *varintReader) ReleaseMsg(msg []byte) { - s.pool.Put(uint32(cap(msg)), msg) -} - -func (s *varintReader) Close() error { - s.lock.Lock() - defer s.lock.Unlock() - - if c, ok := s.R.(io.Closer); ok { - return c.Close() - } - return nil -} - -type simpleByteReader struct { - R io.Reader - buf []byte -} - -func (r *simpleByteReader) ReadByte() (c byte, err error) { - if r.buf == nil { - r.buf = make([]byte, 1) - } - - if _, err := io.ReadFull(r.R, r.buf); err != nil { - return 0, err - } - return r.buf[0], nil -} diff --git a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/varint_test.go b/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/varint_test.go deleted file mode 100644 index c6341508..00000000 --- a/vendor/gx/QmXMkWRYvXJ2NTzHMEz5794997kNPGsVX8EhFiXXpoKDZr/go-msgio/varint_test.go +++ /dev/null @@ -1,66 +0,0 @@ -package msgio - -import ( - "bytes" - "encoding/binary" - "testing" -) - -func TestVarintReadWrite(t *testing.T) { - buf := bytes.NewBuffer(nil) - writer := NewVarintWriter(buf) - reader := NewVarintReader(buf) - SubtestReadWrite(t, writer, reader) -} - -func TestVarintReadWriteMsg(t *testing.T) { - buf := bytes.NewBuffer(nil) - writer := NewVarintWriter(buf) - reader := NewVarintReader(buf) - SubtestReadWriteMsg(t, writer, reader) -} - -func TestVarintReadWriteMsgSync(t *testing.T) { - buf := bytes.NewBuffer(nil) - writer := NewVarintWriter(buf) - reader := NewVarintReader(buf) - SubtestReadWriteMsgSync(t, writer, reader) -} - -func TestVarintWrite(t *testing.T) { - SubtestVarintWrite(t, []byte("hello world")) - SubtestVarintWrite(t, []byte("hello world hello world hello world")) - SubtestVarintWrite(t, make([]byte, 1<<20)) - SubtestVarintWrite(t, []byte("")) -} - -func SubtestVarintWrite(t *testing.T, msg []byte) { - buf := bytes.NewBuffer(nil) - writer := NewVarintWriter(buf) - - if err := writer.WriteMsg(msg); err != nil { - t.Fatal(err) - } - - bb := buf.Bytes() - - sbr := simpleByteReader{R: buf} - length, err := binary.ReadUvarint(&sbr) - if err != nil { - t.Fatal(err) - } - - t.Logf("checking varint is %d", len(msg)) - if int(length) != len(msg) { - t.Fatalf("incorrect varint: %d != %d", length, len(msg)) - } - - lbuf := make([]byte, binary.MaxVarintLen64) - n := binary.PutUvarint(lbuf, length) - - bblen := int(length) + n - t.Logf("checking wrote (%d + %d) bytes", length, n) - if len(bb) != bblen { - t.Fatalf("wrote incorrect number of bytes: %d != %d", len(bb), bblen) - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/.gxignore b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/.travis.yml b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/.travis.yml deleted file mode 100644 index 0012f6ae..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: go -sudo: false -go: - - 1.4 - - 1.5 -script: - - go test -race -v -bench=. diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/AUTHORS b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/AUTHORS deleted file mode 100644 index 19656835..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -Miek Gieben <miek@miek.nl> diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/CONTRIBUTORS b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/CONTRIBUTORS deleted file mode 100644 index f77e8a89..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/CONTRIBUTORS +++ /dev/null @@ -1,9 +0,0 @@ -Alex A. Skinner -Andrew Tunnell-Jones -Ask Bjørn Hansen -Dave Cheney -Dusty Wilson -Marek Majkowski -Peter van Dijk -Omri Bahumi -Alex Sergeyev diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/COPYRIGHT b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/COPYRIGHT deleted file mode 100644 index 35702b10..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/COPYRIGHT +++ /dev/null @@ -1,9 +0,0 @@ -Copyright 2009 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. -Extensions of the original work are copyright (c) 2011 Miek Gieben - -Copyright 2011 Miek Gieben. All rights reserved. Use of this source code is -governed by a BSD-style license that can be found in the LICENSE file. - -Copyright 2014 CloudFlare. All rights reserved. Use of this source code is -governed by a BSD-style license that can be found in the LICENSE file. diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/LICENSE b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/LICENSE deleted file mode 100644 index 5763fa7f..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/LICENSE +++ /dev/null @@ -1,32 +0,0 @@ -Extensions of the original work are copyright (c) 2011 Miek Gieben - -As this is fork of the official Go code the same license applies: - -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/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/README.md b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/README.md deleted file mode 100644 index 1e418dac..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/README.md +++ /dev/null @@ -1,153 +0,0 @@ -[![Build Status](https://travis-ci.org/miekg/dns.svg?branch=master)](https://travis-ci.org/miekg/dns) - -# Alternative (more granular) approach to a DNS library - -> Less is more. - -Complete and usable DNS library. All widely used Resource Records are -supported, including the DNSSEC types. It follows a lean and mean philosophy. -If there is stuff you should know as a DNS programmer there isn't a convenience -function for it. Server side and client side programming is supported, i.e. you -can build servers and resolvers with it. - -We try to keep the "master" branch as sane as possible and at the bleeding edge -of standards, avoiding breaking changes wherever reasonable. We support the last -two versions of Go, currently: 1.4 and 1.5. - -# Goals - -* KISS; -* Fast; -* Small API, if its easy to code in Go, don't make a function for it. - -# Users - -A not-so-up-to-date-list-that-may-be-actually-current: - -* https://cloudflare.com -* https://github.com/abh/geodns -* http://www.statdns.com/ -* http://www.dnsinspect.com/ -* https://github.com/chuangbo/jianbing-dictionary-dns -* http://www.dns-lg.com/ -* https://github.com/fcambus/rrda -* https://github.com/kenshinx/godns -* https://github.com/skynetservices/skydns -* https://github.com/DevelopersPL/godnsagent -* https://github.com/duedil-ltd/discodns -* https://github.com/StalkR/dns-reverse-proxy -* https://github.com/tianon/rawdns -* https://mesosphere.github.io/mesos-dns/ -* https://pulse.turbobytes.com/ -* https://play.google.com/store/apps/details?id=com.turbobytes.dig -* https://github.com/fcambus/statzone -* https://github.com/benschw/dns-clb-go -* https://github.com/corny/dnscheck for http://public-dns.tk/ -* https://namesmith.io -* https://github.com/miekg/unbound -* https://github.com/miekg/exdns - -Send pull request if you want to be listed here. - -# Features - -* UDP/TCP queries, IPv4 and IPv6; -* RFC 1035 zone file parsing ($INCLUDE, $ORIGIN, $TTL and $GENERATE (for all record types) are supported; -* Fast: - * Reply speed around ~ 80K qps (faster hardware results in more qps); - * Parsing RRs ~ 100K RR/s, that's 5M records in about 50 seconds; -* Server side programming (mimicking the net/http package); -* Client side programming; -* DNSSEC: signing, validating and key generation for DSA, RSA and ECDSA; -* EDNS0, NSID; -* AXFR/IXFR; -* TSIG, SIG(0); -* DNS name compression; -* Depends only on the standard library. - -Have fun! - -Miek Gieben - 2010-2012 - <miek@miek.nl> - -# Building - -Building is done with the `go` tool. If you have setup your GOPATH -correctly, the following should work: - - go get github.com/miekg/dns - go build github.com/miekg/dns - -## Examples - -A short "how to use the API" is at the beginning of doc.go (this also will show -when you call `godoc github.com/miekg/dns`). - -Example programs can be found in the `github.com/miekg/exdns` repository. - -## Supported RFCs - -*all of them* - -* 103{4,5} - DNS standard -* 1348 - NSAP record (removed the record) -* 1982 - Serial Arithmetic -* 1876 - LOC record -* 1995 - IXFR -* 1996 - DNS notify -* 2136 - DNS Update (dynamic updates) -* 2181 - RRset definition - there is no RRset type though, just []RR -* 2537 - RSAMD5 DNS keys -* 2065 - DNSSEC (updated in later RFCs) -* 2671 - EDNS record -* 2782 - SRV record -* 2845 - TSIG record -* 2915 - NAPTR record -* 2929 - DNS IANA Considerations -* 3110 - RSASHA1 DNS keys -* 3225 - DO bit (DNSSEC OK) -* 340{1,2,3} - NAPTR record -* 3445 - Limiting the scope of (DNS)KEY -* 3597 - Unknown RRs -* 4025 - IPSECKEY -* 403{3,4,5} - DNSSEC + validation functions -* 4255 - SSHFP record -* 4343 - Case insensitivity -* 4408 - SPF record -* 4509 - SHA256 Hash in DS -* 4592 - Wildcards in the DNS -* 4635 - HMAC SHA TSIG -* 4701 - DHCID -* 4892 - id.server -* 5001 - NSID -* 5155 - NSEC3 record -* 5205 - HIP record -* 5702 - SHA2 in the DNS -* 5936 - AXFR -* 5966 - TCP implementation recommendations -* 6605 - ECDSA -* 6725 - IANA Registry Update -* 6742 - ILNP DNS -* 6840 - Clarifications and Implementation Notes for DNS Security -* 6844 - CAA record -* 6891 - EDNS0 update -* 6895 - DNS IANA considerations -* 6975 - Algorithm Understanding in DNSSEC -* 7043 - EUI48/EUI64 records -* 7314 - DNS (EDNS) EXPIRE Option -* 7553 - URI record -* xxxx - EDNS0 DNS Update Lease (draft) - -## Loosely based upon - -* `ldns` -* `NSD` -* `Net::DNS` -* `GRONG` - -## TODO - -* privatekey.Precompute() when signing? -* Last remaining RRs: APL, ATMA, A6, NSAP and NXT. -* Missing in parsing: ISDN, UNSPEC, NSAP and ATMA. -* NSEC(3) cover/match/closest enclose. -* Replies with TC bit are not parsed to the end. diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/client.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/client.go deleted file mode 100644 index 8d0ef7b8..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/client.go +++ /dev/null @@ -1,385 +0,0 @@ -package dns - -// A client implementation. - -import ( - "bytes" - "io" - "net" - "time" -) - -const dnsTimeout time.Duration = 2 * time.Second -const tcpIdleTimeout time.Duration = 8 * time.Second - -// A Conn represents a connection to a DNS server. -type Conn struct { - net.Conn // a net.Conn holding the connection - UDPSize uint16 // minimum receive buffer for UDP messages - TsigSecret map[string]string // secret(s) for Tsig map[<zonename>]<base64 secret>, zonename must be fully qualified - rtt time.Duration - t time.Time - tsigRequestMAC string -} - -// A Client defines parameters for a DNS client. -type Client struct { - Net string // if "tcp" a TCP query will be initiated, otherwise an UDP one (default is "" for UDP) - UDPSize uint16 // minimum receive buffer for UDP messages - DialTimeout time.Duration // net.DialTimeout, defaults to 2 seconds - ReadTimeout time.Duration // net.Conn.SetReadTimeout value for connections, defaults to 2 seconds - WriteTimeout time.Duration // net.Conn.SetWriteTimeout value for connections, defaults to 2 seconds - TsigSecret map[string]string // secret(s) for Tsig map[<zonename>]<base64 secret>, zonename must be fully qualified - SingleInflight bool // if true suppress multiple outstanding queries for the same Qname, Qtype and Qclass - group singleflight -} - -// Exchange performs a synchronous UDP query. It sends the message m to the address -// contained in a and waits for an reply. Exchange does not retry a failed query, nor -// will it fall back to TCP in case of truncation. -// If you need to send a DNS message on an already existing connection, you can use the -// following: -// -// co := &dns.Conn{Conn: c} // c is your net.Conn -// co.WriteMsg(m) -// in, err := co.ReadMsg() -// co.Close() -// -func Exchange(m *Msg, a string) (r *Msg, err error) { - var co *Conn - co, err = DialTimeout("udp", a, dnsTimeout) - if err != nil { - return nil, err - } - - defer co.Close() - - opt := m.IsEdns0() - // If EDNS0 is used use that for size. - if opt != nil && opt.UDPSize() >= MinMsgSize { - co.UDPSize = opt.UDPSize() - } - - co.SetWriteDeadline(time.Now().Add(dnsTimeout)) - if err = co.WriteMsg(m); err != nil { - return nil, err - } - - co.SetReadDeadline(time.Now().Add(dnsTimeout)) - r, err = co.ReadMsg() - if err == nil && r.Id != m.Id { - err = ErrId - } - return r, err -} - -// ExchangeConn performs a synchronous query. It sends the message m via the connection -// c and waits for a reply. The connection c is not closed by ExchangeConn. -// This function is going away, but can easily be mimicked: -// -// co := &dns.Conn{Conn: c} // c is your net.Conn -// co.WriteMsg(m) -// in, _ := co.ReadMsg() -// co.Close() -// -func ExchangeConn(c net.Conn, m *Msg) (r *Msg, err error) { - println("dns: this function is deprecated") - co := new(Conn) - co.Conn = c - if err = co.WriteMsg(m); err != nil { - return nil, err - } - r, err = co.ReadMsg() - if err == nil && r.Id != m.Id { - err = ErrId - } - return r, err -} - -// Exchange performs an synchronous query. It sends the message m to the address -// contained in a and waits for an reply. Basic use pattern with a *dns.Client: -// -// c := new(dns.Client) -// in, rtt, err := c.Exchange(message, "127.0.0.1:53") -// -// Exchange does not retry a failed query, nor will it fall back to TCP in -// case of truncation. -func (c *Client) Exchange(m *Msg, a string) (r *Msg, rtt time.Duration, err error) { - if !c.SingleInflight { - return c.exchange(m, a) - } - // This adds a bunch of garbage, TODO(miek). - t := "nop" - if t1, ok := TypeToString[m.Question[0].Qtype]; ok { - t = t1 - } - cl := "nop" - if cl1, ok := ClassToString[m.Question[0].Qclass]; ok { - cl = cl1 - } - r, rtt, err, shared := c.group.Do(m.Question[0].Name+t+cl, func() (*Msg, time.Duration, error) { - return c.exchange(m, a) - }) - if err != nil { - return r, rtt, err - } - if shared { - return r.Copy(), rtt, nil - } - return r, rtt, nil -} - -func (c *Client) dialTimeout() time.Duration { - if c.DialTimeout != 0 { - return c.DialTimeout - } - return dnsTimeout -} - -func (c *Client) readTimeout() time.Duration { - if c.ReadTimeout != 0 { - return c.ReadTimeout - } - return dnsTimeout -} - -func (c *Client) writeTimeout() time.Duration { - if c.WriteTimeout != 0 { - return c.WriteTimeout - } - return dnsTimeout -} - -func (c *Client) exchange(m *Msg, a string) (r *Msg, rtt time.Duration, err error) { - var co *Conn - if c.Net == "" { - co, err = DialTimeout("udp", a, c.dialTimeout()) - } else { - co, err = DialTimeout(c.Net, a, c.dialTimeout()) - } - if err != nil { - return nil, 0, err - } - defer co.Close() - - opt := m.IsEdns0() - // If EDNS0 is used use that for size. - if opt != nil && opt.UDPSize() >= MinMsgSize { - co.UDPSize = opt.UDPSize() - } - // Otherwise use the client's configured UDP size. - if opt == nil && c.UDPSize >= MinMsgSize { - co.UDPSize = c.UDPSize - } - - co.TsigSecret = c.TsigSecret - co.SetWriteDeadline(time.Now().Add(c.writeTimeout())) - if err = co.WriteMsg(m); err != nil { - return nil, 0, err - } - - co.SetReadDeadline(time.Now().Add(c.readTimeout())) - r, err = co.ReadMsg() - if err == nil && r.Id != m.Id { - err = ErrId - } - return r, co.rtt, err -} - -// ReadMsg reads a message from the connection co. -// If the received message contains a TSIG record the transaction -// signature is verified. -func (co *Conn) ReadMsg() (*Msg, error) { - p, err := co.ReadMsgHeader(nil) - if err != nil { - return nil, err - } - - m := new(Msg) - if err := m.Unpack(p); err != nil { - // If ErrTruncated was returned, we still want to allow the user to use - // the message, but naively they can just check err if they don't want - // to use a truncated message - if err == ErrTruncated { - return m, err - } - return nil, err - } - if t := m.IsTsig(); t != nil { - if _, ok := co.TsigSecret[t.Hdr.Name]; !ok { - return m, ErrSecret - } - // Need to work on the original message p, as that was used to calculate the tsig. - err = TsigVerify(p, co.TsigSecret[t.Hdr.Name], co.tsigRequestMAC, false) - } - return m, err -} - -// ReadMsgHeader reads a DNS message, parses and populates hdr (when hdr is not nil). -// Returns message as a byte slice to be parsed with Msg.Unpack later on. -// Note that error handling on the message body is not possible as only the header is parsed. -func (co *Conn) ReadMsgHeader(hdr *Header) ([]byte, error) { - var ( - p []byte - n int - err error - ) - - if t, ok := co.Conn.(*net.TCPConn); ok { - // First two bytes specify the length of the entire message. - l, err := tcpMsgLen(t) - if err != nil { - return nil, err - } - p = make([]byte, l) - n, err = tcpRead(t, p) - } else { - if co.UDPSize > MinMsgSize { - p = make([]byte, co.UDPSize) - } else { - p = make([]byte, MinMsgSize) - } - n, err = co.Read(p) - } - - if err != nil { - return nil, err - } else if n < headerSize { - return nil, ErrShortRead - } - - p = p[:n] - if hdr != nil { - if _, err = UnpackStruct(hdr, p, 0); err != nil { - return nil, err - } - } - return p, err -} - -// tcpMsgLen is a helper func to read first two bytes of stream as uint16 packet length. -func tcpMsgLen(t *net.TCPConn) (int, error) { - p := []byte{0, 0} - n, err := t.Read(p) - if err != nil { - return 0, err - } - if n != 2 { - return 0, ErrShortRead - } - l, _ := unpackUint16(p, 0) - if l == 0 { - return 0, ErrShortRead - } - return int(l), nil -} - -// tcpRead calls TCPConn.Read enough times to fill allocated buffer. -func tcpRead(t *net.TCPConn, p []byte) (int, error) { - n, err := t.Read(p) - if err != nil { - return n, err - } - for n < len(p) { - j, err := t.Read(p[n:]) - if err != nil { - return n, err - } - n += j - } - return n, err -} - -// Read implements the net.Conn read method. -func (co *Conn) Read(p []byte) (n int, err error) { - if co.Conn == nil { - return 0, ErrConnEmpty - } - if len(p) < 2 { - return 0, io.ErrShortBuffer - } - if t, ok := co.Conn.(*net.TCPConn); ok { - l, err := tcpMsgLen(t) - if err != nil { - return 0, err - } - if l > len(p) { - return int(l), io.ErrShortBuffer - } - return tcpRead(t, p[:l]) - } - // UDP connection - n, err = co.Conn.Read(p) - if err != nil { - return n, err - } - - co.rtt = time.Since(co.t) - return n, err -} - -// WriteMsg sends a message throught the connection co. -// If the message m contains a TSIG record the transaction -// signature is calculated. -func (co *Conn) WriteMsg(m *Msg) (err error) { - var out []byte - if t := m.IsTsig(); t != nil { - mac := "" - if _, ok := co.TsigSecret[t.Hdr.Name]; !ok { - return ErrSecret - } - out, mac, err = TsigGenerate(m, co.TsigSecret[t.Hdr.Name], co.tsigRequestMAC, false) - // Set for the next read, allthough only used in zone transfers - co.tsigRequestMAC = mac - } else { - out, err = m.Pack() - } - if err != nil { - return err - } - co.t = time.Now() - if _, err = co.Write(out); err != nil { - return err - } - return nil -} - -// Write implements the net.Conn Write method. -func (co *Conn) Write(p []byte) (n int, err error) { - if t, ok := co.Conn.(*net.TCPConn); ok { - lp := len(p) - if lp < 2 { - return 0, io.ErrShortBuffer - } - if lp > MaxMsgSize { - return 0, &Error{err: "message too large"} - } - l := make([]byte, 2, lp+2) - l[0], l[1] = packUint16(uint16(lp)) - p = append(l, p...) - n, err := io.Copy(t, bytes.NewReader(p)) - return int(n), err - } - n, err = co.Conn.(*net.UDPConn).Write(p) - return n, err -} - -// Dial connects to the address on the named network. -func Dial(network, address string) (conn *Conn, err error) { - conn = new(Conn) - conn.Conn, err = net.Dial(network, address) - if err != nil { - return nil, err - } - return conn, nil -} - -// DialTimeout acts like Dial but takes a timeout. -func DialTimeout(network, address string, timeout time.Duration) (conn *Conn, err error) { - conn = new(Conn) - conn.Conn, err = net.DialTimeout(network, address, timeout) - if err != nil { - return nil, err - } - return conn, nil -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/client_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/client_test.go deleted file mode 100644 index 0f7a33bc..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/client_test.go +++ /dev/null @@ -1,383 +0,0 @@ -package dns - -import ( - "fmt" - "net" - "strconv" - "testing" - "time" -) - -func TestClientSync(t *testing.T) { - HandleFunc("miek.nl.", HelloServer) - defer HandleRemove("miek.nl.") - - s, addrstr, err := RunLocalUDPServer("127.0.0.1:0") - if err != nil { - t.Fatalf("Unable to run test server: %v", err) - } - defer s.Shutdown() - - m := new(Msg) - m.SetQuestion("miek.nl.", TypeSOA) - - c := new(Client) - r, _, err := c.Exchange(m, addrstr) - if err != nil { - t.Errorf("failed to exchange: %v", err) - } - if r != nil && r.Rcode != RcodeSuccess { - t.Errorf("failed to get an valid answer\n%v", r) - } - // And now with plain Exchange(). - r, err = Exchange(m, addrstr) - if err != nil { - t.Errorf("failed to exchange: %v", err) - } - if r == nil || r.Rcode != RcodeSuccess { - t.Errorf("failed to get an valid answer\n%v", r) - } -} - -func TestClientSyncBadId(t *testing.T) { - HandleFunc("miek.nl.", HelloServerBadId) - defer HandleRemove("miek.nl.") - - s, addrstr, err := RunLocalUDPServer("127.0.0.1:0") - if err != nil { - t.Fatalf("Unable to run test server: %v", err) - } - defer s.Shutdown() - - m := new(Msg) - m.SetQuestion("miek.nl.", TypeSOA) - - c := new(Client) - if _, _, err := c.Exchange(m, addrstr); err != ErrId { - t.Errorf("did not find a bad Id") - } - // And now with plain Exchange(). - if _, err := Exchange(m, addrstr); err != ErrId { - t.Errorf("did not find a bad Id") - } -} - -func TestClientEDNS0(t *testing.T) { - HandleFunc("miek.nl.", HelloServer) - defer HandleRemove("miek.nl.") - - s, addrstr, err := RunLocalUDPServer("127.0.0.1:0") - if err != nil { - t.Fatalf("Unable to run test server: %v", err) - } - defer s.Shutdown() - - m := new(Msg) - m.SetQuestion("miek.nl.", TypeDNSKEY) - - m.SetEdns0(2048, true) - - c := new(Client) - r, _, err := c.Exchange(m, addrstr) - if err != nil { - t.Errorf("failed to exchange: %v", err) - } - - if r != nil && r.Rcode != RcodeSuccess { - t.Errorf("failed to get an valid answer\n%v", r) - } -} - -// Validates the transmission and parsing of local EDNS0 options. -func TestClientEDNS0Local(t *testing.T) { - optStr1 := "1979:0x0707" - optStr2 := strconv.Itoa(EDNS0LOCALSTART) + ":0x0601" - - handler := func(w ResponseWriter, req *Msg) { - m := new(Msg) - m.SetReply(req) - - m.Extra = make([]RR, 1, 2) - m.Extra[0] = &TXT{Hdr: RR_Header{Name: m.Question[0].Name, Rrtype: TypeTXT, Class: ClassINET, Ttl: 0}, Txt: []string{"Hello local edns"}} - - // If the local options are what we expect, then reflect them back. - ec1 := req.Extra[0].(*OPT).Option[0].(*EDNS0_LOCAL).String() - ec2 := req.Extra[0].(*OPT).Option[1].(*EDNS0_LOCAL).String() - if ec1 == optStr1 && ec2 == optStr2 { - m.Extra = append(m.Extra, req.Extra[0]) - } - - w.WriteMsg(m) - } - - HandleFunc("miek.nl.", handler) - defer HandleRemove("miek.nl.") - - s, addrstr, err := RunLocalUDPServer("127.0.0.1:0") - if err != nil { - t.Fatalf("Unable to run test server: %s", err) - } - defer s.Shutdown() - - m := new(Msg) - m.SetQuestion("miek.nl.", TypeTXT) - - // Add two local edns options to the query. - ec1 := &EDNS0_LOCAL{Code: 1979, Data: []byte{7, 7}} - ec2 := &EDNS0_LOCAL{Code: EDNS0LOCALSTART, Data: []byte{6, 1}} - o := &OPT{Hdr: RR_Header{Name: ".", Rrtype: TypeOPT}, Option: []EDNS0{ec1, ec2}} - m.Extra = append(m.Extra, o) - - c := new(Client) - r, _, e := c.Exchange(m, addrstr) - if e != nil { - t.Logf("failed to exchange: %s", e.Error()) - t.Fail() - } - - if r != nil && r.Rcode != RcodeSuccess { - t.Log("failed to get a valid answer") - t.Fail() - t.Logf("%v\n", r) - } - - txt := r.Extra[0].(*TXT).Txt[0] - if txt != "Hello local edns" { - t.Log("Unexpected result for miek.nl", txt, "!= Hello local edns") - t.Fail() - } - - // Validate the local options in the reply. - got := r.Extra[1].(*OPT).Option[0].(*EDNS0_LOCAL).String() - if got != optStr1 { - t.Logf("failed to get local edns0 answer; got %s, expected %s", got, optStr1) - t.Fail() - t.Logf("%v\n", r) - } - - got = r.Extra[1].(*OPT).Option[1].(*EDNS0_LOCAL).String() - if got != optStr2 { - t.Logf("failed to get local edns0 answer; got %s, expected %s", got, optStr2) - t.Fail() - t.Logf("%v\n", r) - } -} - -// ExampleTsigSecret_updateLeaseTSIG shows how to update a lease signed with TSIG -func ExampleTsigSecret_updateLeaseTSIG() { - m := new(Msg) - m.SetUpdate("t.local.ip6.io.") - rr, _ := NewRR("t.local.ip6.io. 30 A 127.0.0.1") - rrs := make([]RR, 1) - rrs[0] = rr - m.Insert(rrs) - - leaseRr := new(OPT) - leaseRr.Hdr.Name = "." - leaseRr.Hdr.Rrtype = TypeOPT - e := new(EDNS0_UL) - e.Code = EDNS0UL - e.Lease = 120 - leaseRr.Option = append(leaseRr.Option, e) - m.Extra = append(m.Extra, leaseRr) - - c := new(Client) - m.SetTsig("polvi.", HmacMD5, 300, time.Now().Unix()) - c.TsigSecret = map[string]string{"polvi.": "pRZgBrBvI4NAHZYhxmhs/Q=="} - - _, _, err := c.Exchange(m, "127.0.0.1:53") - if err != nil { - panic(err) - } -} - -func TestClientConn(t *testing.T) { - HandleFunc("miek.nl.", HelloServer) - defer HandleRemove("miek.nl.") - - // This uses TCP just to make it slightly different than TestClientSync - s, addrstr, err := RunLocalTCPServer("127.0.0.1:0") - if err != nil { - t.Fatalf("Unable to run test server: %v", err) - } - defer s.Shutdown() - - m := new(Msg) - m.SetQuestion("miek.nl.", TypeSOA) - - cn, err := Dial("tcp", addrstr) - if err != nil { - t.Errorf("failed to dial %s: %v", addrstr, err) - } - - err = cn.WriteMsg(m) - if err != nil { - t.Errorf("failed to exchange: %v", err) - } - r, err := cn.ReadMsg() - if r == nil || r.Rcode != RcodeSuccess { - t.Errorf("failed to get an valid answer\n%v", r) - } - - err = cn.WriteMsg(m) - if err != nil { - t.Errorf("failed to exchange: %v", err) - } - h := new(Header) - buf, err := cn.ReadMsgHeader(h) - if buf == nil { - t.Errorf("failed to get an valid answer\n%v", r) - } - if int(h.Bits&0xF) != RcodeSuccess { - t.Errorf("failed to get an valid answer in ReadMsgHeader\n%v", r) - } - if h.Ancount != 0 || h.Qdcount != 1 || h.Nscount != 0 || h.Arcount != 1 { - t.Errorf("expected to have question and additional in response; got something else: %+v", h) - } - if err = r.Unpack(buf); err != nil { - t.Errorf("unable to unpack message fully: %v", err) - } -} - -func TestTruncatedMsg(t *testing.T) { - m := new(Msg) - m.SetQuestion("miek.nl.", TypeSRV) - cnt := 10 - for i := 0; i < cnt; i++ { - r := &SRV{ - Hdr: RR_Header{Name: m.Question[0].Name, Rrtype: TypeSRV, Class: ClassINET, Ttl: 0}, - Port: uint16(i + 8000), - Target: "target.miek.nl.", - } - m.Answer = append(m.Answer, r) - - re := &A{ - Hdr: RR_Header{Name: m.Question[0].Name, Rrtype: TypeA, Class: ClassINET, Ttl: 0}, - A: net.ParseIP(fmt.Sprintf("127.0.0.%d", i)).To4(), - } - m.Extra = append(m.Extra, re) - } - buf, err := m.Pack() - if err != nil { - t.Errorf("failed to pack: %v", err) - } - - r := new(Msg) - if err = r.Unpack(buf); err != nil { - t.Errorf("unable to unpack message: %v", err) - } - if len(r.Answer) != cnt { - t.Logf("answer count after regular unpack doesn't match: %d", len(r.Answer)) - t.Fail() - } - if len(r.Extra) != cnt { - t.Logf("extra count after regular unpack doesn't match: %d", len(r.Extra)) - t.Fail() - } - - m.Truncated = true - buf, err = m.Pack() - if err != nil { - t.Errorf("failed to pack truncated: %v", err) - } - - r = new(Msg) - if err = r.Unpack(buf); err != nil && err != ErrTruncated { - t.Errorf("unable to unpack truncated message: %v", err) - } - if !r.Truncated { - t.Log("truncated message wasn't unpacked as truncated") - t.Fail() - } - if len(r.Answer) != cnt { - t.Logf("answer count after truncated unpack doesn't match: %d", len(r.Answer)) - t.Fail() - } - if len(r.Extra) != cnt { - t.Logf("extra count after truncated unpack doesn't match: %d", len(r.Extra)) - t.Fail() - } - - // Now we want to remove almost all of the extra records - // We're going to loop over the extra to get the count of the size of all - // of them - off := 0 - buf1 := make([]byte, m.Len()) - for i := 0; i < len(m.Extra); i++ { - off, err = PackRR(m.Extra[i], buf1, off, nil, m.Compress) - if err != nil { - t.Errorf("failed to pack extra: %v", err) - } - } - - // Remove all of the extra bytes but 10 bytes from the end of buf - off -= 10 - buf1 = buf[:len(buf)-off] - - r = new(Msg) - if err = r.Unpack(buf1); err != nil && err != ErrTruncated { - t.Errorf("unable to unpack cutoff message: %v", err) - } - if !r.Truncated { - t.Log("truncated cutoff message wasn't unpacked as truncated") - t.Fail() - } - if len(r.Answer) != cnt { - t.Logf("answer count after cutoff unpack doesn't match: %d", len(r.Answer)) - t.Fail() - } - if len(r.Extra) != 0 { - t.Logf("extra count after cutoff unpack is not zero: %d", len(r.Extra)) - t.Fail() - } - - // Now we want to remove almost all of the answer records too - buf1 = make([]byte, m.Len()) - as := 0 - for i := 0; i < len(m.Extra); i++ { - off1 := off - off, err = PackRR(m.Extra[i], buf1, off, nil, m.Compress) - as = off - off1 - if err != nil { - t.Errorf("failed to pack extra: %v", err) - } - } - - // Keep exactly one answer left - // This should still cause Answer to be nil - off -= as - buf1 = buf[:len(buf)-off] - - r = new(Msg) - if err = r.Unpack(buf1); err != nil && err != ErrTruncated { - t.Errorf("unable to unpack cutoff message: %v", err) - } - if !r.Truncated { - t.Log("truncated cutoff message wasn't unpacked as truncated") - t.Fail() - } - if len(r.Answer) != 0 { - t.Logf("answer count after second cutoff unpack is not zero: %d", len(r.Answer)) - t.Fail() - } - - // Now leave only 1 byte of the question - // Since the header is always 12 bytes, we just need to keep 13 - buf1 = buf[:13] - - r = new(Msg) - err = r.Unpack(buf1) - if err == nil || err == ErrTruncated { - t.Logf("error should not be ErrTruncated from question cutoff unpack: %v", err) - t.Fail() - } - - // Finally, if we only have the header, we should still return an error - buf1 = buf[:12] - - r = new(Msg) - if err = r.Unpack(buf1); err == nil || err != ErrTruncated { - t.Logf("error not ErrTruncated from header-only unpack: %v", err) - t.Fail() - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/clientconfig.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/clientconfig.go deleted file mode 100644 index cfa9ad0b..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/clientconfig.go +++ /dev/null @@ -1,99 +0,0 @@ -package dns - -import ( - "bufio" - "os" - "strconv" - "strings" -) - -// ClientConfig wraps the contents of the /etc/resolv.conf file. -type ClientConfig struct { - Servers []string // servers to use - Search []string // suffixes to append to local name - Port string // what port to use - Ndots int // number of dots in name to trigger absolute lookup - Timeout int // seconds before giving up on packet - Attempts int // lost packets before giving up on server, not used in the package dns -} - -// ClientConfigFromFile parses a resolv.conf(5) like file and returns -// a *ClientConfig. -func ClientConfigFromFile(resolvconf string) (*ClientConfig, error) { - file, err := os.Open(resolvconf) - if err != nil { - return nil, err - } - defer file.Close() - c := new(ClientConfig) - scanner := bufio.NewScanner(file) - c.Servers = make([]string, 0) - c.Search = make([]string, 0) - c.Port = "53" - c.Ndots = 1 - c.Timeout = 5 - c.Attempts = 2 - - for scanner.Scan() { - if err := scanner.Err(); err != nil { - return nil, err - } - line := scanner.Text() - f := strings.Fields(line) - if len(f) < 1 { - continue - } - switch f[0] { - case "nameserver": // add one name server - if len(f) > 1 { - // One more check: make sure server name is - // just an IP address. Otherwise we need DNS - // to look it up. - name := f[1] - c.Servers = append(c.Servers, name) - } - - case "domain": // set search path to just this domain - if len(f) > 1 { - c.Search = make([]string, 1) - c.Search[0] = f[1] - } else { - c.Search = make([]string, 0) - } - - case "search": // set search path to given servers - c.Search = make([]string, len(f)-1) - for i := 0; i < len(c.Search); i++ { - c.Search[i] = f[i+1] - } - - case "options": // magic options - for i := 1; i < len(f); i++ { - s := f[i] - switch { - case len(s) >= 6 && s[:6] == "ndots:": - n, _ := strconv.Atoi(s[6:]) - if n < 1 { - n = 1 - } - c.Ndots = n - case len(s) >= 8 && s[:8] == "timeout:": - n, _ := strconv.Atoi(s[8:]) - if n < 1 { - n = 1 - } - c.Timeout = n - case len(s) >= 8 && s[:9] == "attempts:": - n, _ := strconv.Atoi(s[9:]) - if n < 1 { - n = 1 - } - c.Attempts = n - case s == "rotate": - /* not imp */ - } - } - } - } - return c, nil -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/clientconfig_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/clientconfig_test.go deleted file mode 100644 index f01a59be..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/clientconfig_test.go +++ /dev/null @@ -1,55 +0,0 @@ -package dns - -import ( - "io/ioutil" - "os" - "path/filepath" - "testing" -) - -const normal string = ` -# Comment -domain somedomain.com -nameserver 10.28.10.2 -nameserver 11.28.10.1 -` - -const missingNewline string = ` -domain somedomain.com -nameserver 10.28.10.2 -nameserver 11.28.10.1` // <- NOTE: NO newline. - -func testConfig(t *testing.T, data string) { - tempDir, err := ioutil.TempDir("", "") - if err != nil { - t.Fatalf("TempDir: %v", err) - } - defer os.RemoveAll(tempDir) - - path := filepath.Join(tempDir, "resolv.conf") - if err := ioutil.WriteFile(path, []byte(data), 0644); err != nil { - t.Fatalf("WriteFile: %v", err) - } - cc, err := ClientConfigFromFile(path) - if err != nil { - t.Errorf("error parsing resolv.conf: %v", err) - } - if l := len(cc.Servers); l != 2 { - t.Errorf("incorrect number of nameservers detected: %d", l) - } - if l := len(cc.Search); l != 1 { - t.Errorf("domain directive not parsed correctly: %v", cc.Search) - } else { - if cc.Search[0] != "somedomain.com" { - t.Errorf("domain is unexpected: %v", cc.Search[0]) - } - } -} - -func TestNameserver(t *testing.T) { - testConfig(t, normal) -} - -func TestMissingFinalNewLine(t *testing.T) { - testConfig(t, missingNewline) -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/defaults.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/defaults.go deleted file mode 100644 index 63165b4f..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/defaults.go +++ /dev/null @@ -1,278 +0,0 @@ -package dns - -import ( - "errors" - "net" - "strconv" -) - -const hexDigit = "0123456789abcdef" - -// Everything is assumed in ClassINET. - -// SetReply creates a reply message from a request message. -func (dns *Msg) SetReply(request *Msg) *Msg { - dns.Id = request.Id - dns.RecursionDesired = request.RecursionDesired // Copy rd bit - dns.Response = true - dns.Opcode = OpcodeQuery - dns.Rcode = RcodeSuccess - if len(request.Question) > 0 { - dns.Question = make([]Question, 1) - dns.Question[0] = request.Question[0] - } - return dns -} - -// SetQuestion creates a question message, it sets the Question -// section, generates an Id and sets the RecursionDesired (RD) -// bit to true. -func (dns *Msg) SetQuestion(z string, t uint16) *Msg { - dns.Id = Id() - dns.RecursionDesired = true - dns.Question = make([]Question, 1) - dns.Question[0] = Question{z, t, ClassINET} - return dns -} - -// SetNotify creates a notify message, it sets the Question -// section, generates an Id and sets the Authoritative (AA) -// bit to true. -func (dns *Msg) SetNotify(z string) *Msg { - dns.Opcode = OpcodeNotify - dns.Authoritative = true - dns.Id = Id() - dns.Question = make([]Question, 1) - dns.Question[0] = Question{z, TypeSOA, ClassINET} - return dns -} - -// SetRcode creates an error message suitable for the request. -func (dns *Msg) SetRcode(request *Msg, rcode int) *Msg { - dns.SetReply(request) - dns.Rcode = rcode - return dns -} - -// SetRcodeFormatError creates a message with FormError set. -func (dns *Msg) SetRcodeFormatError(request *Msg) *Msg { - dns.Rcode = RcodeFormatError - dns.Opcode = OpcodeQuery - dns.Response = true - dns.Authoritative = false - dns.Id = request.Id - return dns -} - -// SetUpdate makes the message a dynamic update message. It -// sets the ZONE section to: z, TypeSOA, ClassINET. -func (dns *Msg) SetUpdate(z string) *Msg { - dns.Id = Id() - dns.Response = false - dns.Opcode = OpcodeUpdate - dns.Compress = false // BIND9 cannot handle compression - dns.Question = make([]Question, 1) - dns.Question[0] = Question{z, TypeSOA, ClassINET} - return dns -} - -// SetIxfr creates message for requesting an IXFR. -func (dns *Msg) SetIxfr(z string, serial uint32, ns, mbox string) *Msg { - dns.Id = Id() - dns.Question = make([]Question, 1) - dns.Ns = make([]RR, 1) - s := new(SOA) - s.Hdr = RR_Header{z, TypeSOA, ClassINET, defaultTtl, 0} - s.Serial = serial - s.Ns = ns - s.Mbox = mbox - dns.Question[0] = Question{z, TypeIXFR, ClassINET} - dns.Ns[0] = s - return dns -} - -// SetAxfr creates message for requesting an AXFR. -func (dns *Msg) SetAxfr(z string) *Msg { - dns.Id = Id() - dns.Question = make([]Question, 1) - dns.Question[0] = Question{z, TypeAXFR, ClassINET} - return dns -} - -// SetTsig appends a TSIG RR to the message. -// This is only a skeleton TSIG RR that is added as the last RR in the -// additional section. The Tsig is calculated when the message is being send. -func (dns *Msg) SetTsig(z, algo string, fudge, timesigned int64) *Msg { - t := new(TSIG) - t.Hdr = RR_Header{z, TypeTSIG, ClassANY, 0, 0} - t.Algorithm = algo - t.Fudge = 300 - t.TimeSigned = uint64(timesigned) - t.OrigId = dns.Id - dns.Extra = append(dns.Extra, t) - return dns -} - -// SetEdns0 appends a EDNS0 OPT RR to the message. -// TSIG should always the last RR in a message. -func (dns *Msg) SetEdns0(udpsize uint16, do bool) *Msg { - e := new(OPT) - e.Hdr.Name = "." - e.Hdr.Rrtype = TypeOPT - e.SetUDPSize(udpsize) - if do { - e.SetDo() - } - dns.Extra = append(dns.Extra, e) - return dns -} - -// IsTsig checks if the message has a TSIG record as the last record -// in the additional section. It returns the TSIG record found or nil. -func (dns *Msg) IsTsig() *TSIG { - if len(dns.Extra) > 0 { - if dns.Extra[len(dns.Extra)-1].Header().Rrtype == TypeTSIG { - return dns.Extra[len(dns.Extra)-1].(*TSIG) - } - } - return nil -} - -// IsEdns0 checks if the message has a EDNS0 (OPT) record, any EDNS0 -// record in the additional section will do. It returns the OPT record -// found or nil. -func (dns *Msg) IsEdns0() *OPT { - for _, r := range dns.Extra { - if r.Header().Rrtype == TypeOPT { - return r.(*OPT) - } - } - return nil -} - -// IsDomainName checks if s is a valid domain name, it returns the number of -// labels and true, when a domain name is valid. Note that non fully qualified -// domain name is considered valid, in this case the last label is counted in -// the number of labels. When false is returned the number of labels is not -// defined. Also note that this function is extremely liberal; almost any -// string is a valid domain name as the DNS is 8 bit protocol. It checks if each -// label fits in 63 characters, but there is no length check for the entire -// string s. I.e. a domain name longer than 255 characters is considered valid. -func IsDomainName(s string) (labels int, ok bool) { - _, labels, err := packDomainName(s, nil, 0, nil, false) - return labels, err == nil -} - -// IsSubDomain checks if child is indeed a child of the parent. Both child and -// parent are *not* downcased before doing the comparison. -func IsSubDomain(parent, child string) bool { - // Entire child is contained in parent - return CompareDomainName(parent, child) == CountLabel(parent) -} - -// IsMsg sanity checks buf and returns an error if it isn't a valid DNS packet. -// The checking is performed on the binary payload. -func IsMsg(buf []byte) error { - // Header - if len(buf) < 12 { - return errors.New("dns: bad message header") - } - // Header: Opcode - // TODO(miek): more checks here, e.g. check all header bits. - return nil -} - -// IsFqdn checks if a domain name is fully qualified. -func IsFqdn(s string) bool { - l := len(s) - if l == 0 { - return false - } - return s[l-1] == '.' -} - -// IsRRset checks if a set of RRs is a valid RRset as defined by RFC 2181. -// This means the RRs need to have the same type, name, and class. Returns true -// if the RR set is valid, otherwise false. -func IsRRset(rrset []RR) bool { - if len(rrset) == 0 { - return false - } - if len(rrset) == 1 { - return true - } - rrHeader := rrset[0].Header() - rrType := rrHeader.Rrtype - rrClass := rrHeader.Class - rrName := rrHeader.Name - - for _, rr := range rrset[1:] { - curRRHeader := rr.Header() - if curRRHeader.Rrtype != rrType || curRRHeader.Class != rrClass || curRRHeader.Name != rrName { - // Mismatch between the records, so this is not a valid rrset for - //signing/verifying - return false - } - } - - return true -} - -// Fqdn return the fully qualified domain name from s. -// If s is already fully qualified, it behaves as the identity function. -func Fqdn(s string) string { - if IsFqdn(s) { - return s - } - return s + "." -} - -// Copied from the official Go code. - -// ReverseAddr returns the in-addr.arpa. or ip6.arpa. hostname of the IP -// address suitable for reverse DNS (PTR) record lookups or an error if it fails -// to parse the IP address. -func ReverseAddr(addr string) (arpa string, err error) { - ip := net.ParseIP(addr) - if ip == nil { - return "", &Error{err: "unrecognized address: " + addr} - } - if ip.To4() != nil { - return strconv.Itoa(int(ip[15])) + "." + strconv.Itoa(int(ip[14])) + "." + strconv.Itoa(int(ip[13])) + "." + - strconv.Itoa(int(ip[12])) + ".in-addr.arpa.", nil - } - // Must be IPv6 - buf := make([]byte, 0, len(ip)*4+len("ip6.arpa.")) - // Add it, in reverse, to the buffer - for i := len(ip) - 1; i >= 0; i-- { - v := ip[i] - buf = append(buf, hexDigit[v&0xF]) - buf = append(buf, '.') - buf = append(buf, hexDigit[v>>4]) - buf = append(buf, '.') - } - // Append "ip6.arpa." and return (buf already has the final .) - buf = append(buf, "ip6.arpa."...) - return string(buf), nil -} - -// String returns the string representation for the type t. -func (t Type) String() string { - if t1, ok := TypeToString[uint16(t)]; ok { - return t1 - } - return "TYPE" + strconv.Itoa(int(t)) -} - -// String returns the string representation for the class c. -func (c Class) String() string { - if c1, ok := ClassToString[uint16(c)]; ok { - return c1 - } - return "CLASS" + strconv.Itoa(int(c)) -} - -// String returns the string representation for the name n. -func (n Name) String() string { - return sprintName(string(n)) -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dns.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dns.go deleted file mode 100644 index a3e4a0ef..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dns.go +++ /dev/null @@ -1,100 +0,0 @@ -package dns - -import "strconv" - -const ( - year68 = 1 << 31 // For RFC1982 (Serial Arithmetic) calculations in 32 bits. - // DefaultMsgSize is the standard default for messages larger than 512 bytes. - DefaultMsgSize = 4096 - // MinMsgSize is the minimal size of a DNS packet. - MinMsgSize = 512 - // MaxMsgSize is the largest possible DNS packet. - MaxMsgSize = 65535 - defaultTtl = 3600 // Default internal TTL. -) - -// Error represents a DNS error -type Error struct{ err string } - -func (e *Error) Error() string { - if e == nil { - return "dns: <nil>" - } - return "dns: " + e.err -} - -// An RR represents a resource record. -type RR interface { - // Header returns the header of an resource record. The header contains - // everything up to the rdata. - Header() *RR_Header - // String returns the text representation of the resource record. - String() string - // copy returns a copy of the RR - copy() RR - // len returns the length (in octets) of the uncompressed RR in wire format. - len() int -} - -// RR_Header is the header all DNS resource records share. -type RR_Header struct { - Name string `dns:"cdomain-name"` - Rrtype uint16 - Class uint16 - Ttl uint32 - Rdlength uint16 // length of data after header -} - -// Header returns itself. This is here to make RR_Header implement the RR interface. -func (h *RR_Header) Header() *RR_Header { return h } - -// Just to imlement the RR interface. -func (h *RR_Header) copy() RR { return nil } - -func (h *RR_Header) copyHeader() *RR_Header { - r := new(RR_Header) - r.Name = h.Name - r.Rrtype = h.Rrtype - r.Class = h.Class - r.Ttl = h.Ttl - r.Rdlength = h.Rdlength - return r -} - -func (h *RR_Header) String() string { - var s string - - if h.Rrtype == TypeOPT { - s = ";" - // and maybe other things - } - - s += sprintName(h.Name) + "\t" - s += strconv.FormatInt(int64(h.Ttl), 10) + "\t" - s += Class(h.Class).String() + "\t" - s += Type(h.Rrtype).String() + "\t" - return s -} - -func (h *RR_Header) len() int { - l := len(h.Name) + 1 - l += 10 // rrtype(2) + class(2) + ttl(4) + rdlength(2) - return l -} - -// ToRFC3597 converts a known RR to the unknown RR representation -// from RFC 3597. -func (rr *RFC3597) ToRFC3597(r RR) error { - buf := make([]byte, r.len()*2) - off, err := PackStruct(r, buf, 0) - if err != nil { - return err - } - buf = buf[:off] - rawSetRdlength(buf, 0, off) - _, err = UnpackStruct(rr, buf, 0) - if err != nil { - return err - } - return nil -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dns_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dns_test.go deleted file mode 100644 index 58fab4ca..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dns_test.go +++ /dev/null @@ -1,578 +0,0 @@ -package dns - -import ( - "encoding/hex" - "net" - "testing" -) - -func TestPackUnpack(t *testing.T) { - out := new(Msg) - out.Answer = make([]RR, 1) - key := new(DNSKEY) - key = &DNSKEY{Flags: 257, Protocol: 3, Algorithm: RSASHA1} - key.Hdr = RR_Header{Name: "miek.nl.", Rrtype: TypeDNSKEY, Class: ClassINET, Ttl: 3600} - key.PublicKey = "AwEAAaHIwpx3w4VHKi6i1LHnTaWeHCL154Jug0Rtc9ji5qwPXpBo6A5sRv7cSsPQKPIwxLpyCrbJ4mr2L0EPOdvP6z6YfljK2ZmTbogU9aSU2fiq/4wjxbdkLyoDVgtO+JsxNN4bjr4WcWhsmk1Hg93FV9ZpkWb0Tbad8DFqNDzr//kZ" - - out.Answer[0] = key - msg, err := out.Pack() - if err != nil { - t.Error("failed to pack msg with DNSKEY") - } - in := new(Msg) - if in.Unpack(msg) != nil { - t.Error("failed to unpack msg with DNSKEY") - } - - sig := new(RRSIG) - sig = &RRSIG{TypeCovered: TypeDNSKEY, Algorithm: RSASHA1, Labels: 2, - OrigTtl: 3600, Expiration: 4000, Inception: 4000, KeyTag: 34641, SignerName: "miek.nl.", - Signature: "AwEAAaHIwpx3w4VHKi6i1LHnTaWeHCL154Jug0Rtc9ji5qwPXpBo6A5sRv7cSsPQKPIwxLpyCrbJ4mr2L0EPOdvP6z6YfljK2ZmTbogU9aSU2fiq/4wjxbdkLyoDVgtO+JsxNN4bjr4WcWhsmk1Hg93FV9ZpkWb0Tbad8DFqNDzr//kZ"} - sig.Hdr = RR_Header{Name: "miek.nl.", Rrtype: TypeRRSIG, Class: ClassINET, Ttl: 3600} - - out.Answer[0] = sig - msg, err = out.Pack() - if err != nil { - t.Error("failed to pack msg with RRSIG") - } - - if in.Unpack(msg) != nil { - t.Error("failed to unpack msg with RRSIG") - } -} - -func TestPackUnpack2(t *testing.T) { - m := new(Msg) - m.Extra = make([]RR, 1) - m.Answer = make([]RR, 1) - dom := "miek.nl." - rr := new(A) - rr.Hdr = RR_Header{Name: dom, Rrtype: TypeA, Class: ClassINET, Ttl: 0} - rr.A = net.IPv4(127, 0, 0, 1) - - x := new(TXT) - x.Hdr = RR_Header{Name: dom, Rrtype: TypeTXT, Class: ClassINET, Ttl: 0} - x.Txt = []string{"heelalaollo"} - - m.Extra[0] = x - m.Answer[0] = rr - _, err := m.Pack() - if err != nil { - t.Error("Packing failed: ", err) - return - } -} - -func TestPackUnpack3(t *testing.T) { - m := new(Msg) - m.Extra = make([]RR, 2) - m.Answer = make([]RR, 1) - dom := "miek.nl." - rr := new(A) - rr.Hdr = RR_Header{Name: dom, Rrtype: TypeA, Class: ClassINET, Ttl: 0} - rr.A = net.IPv4(127, 0, 0, 1) - - x1 := new(TXT) - x1.Hdr = RR_Header{Name: dom, Rrtype: TypeTXT, Class: ClassINET, Ttl: 0} - x1.Txt = []string{} - - x2 := new(TXT) - x2.Hdr = RR_Header{Name: dom, Rrtype: TypeTXT, Class: ClassINET, Ttl: 0} - x2.Txt = []string{"heelalaollo"} - - m.Extra[0] = x1 - m.Extra[1] = x2 - m.Answer[0] = rr - b, err := m.Pack() - if err != nil { - t.Error("packing failed: ", err) - return - } - - var unpackMsg Msg - err = unpackMsg.Unpack(b) - if err != nil { - t.Error("unpacking failed") - return - } -} - -func TestBailiwick(t *testing.T) { - yes := map[string]string{ - "miek.nl": "ns.miek.nl", - ".": "miek.nl", - } - for parent, child := range yes { - if !IsSubDomain(parent, child) { - t.Errorf("%s should be child of %s", child, parent) - t.Errorf("comparelabels %d", CompareDomainName(parent, child)) - t.Errorf("lenlabels %d %d", CountLabel(parent), CountLabel(child)) - } - } - no := map[string]string{ - "www.miek.nl": "ns.miek.nl", - "m\\.iek.nl": "ns.miek.nl", - "w\\.iek.nl": "w.iek.nl", - "p\\\\.iek.nl": "ns.p.iek.nl", // p\\.iek.nl , literal \ in domain name - "miek.nl": ".", - } - for parent, child := range no { - if IsSubDomain(parent, child) { - t.Errorf("%s should not be child of %s", child, parent) - t.Errorf("comparelabels %d", CompareDomainName(parent, child)) - t.Errorf("lenlabels %d %d", CountLabel(parent), CountLabel(child)) - } - } -} - -func TestPack(t *testing.T) { - rr := []string{"US. 86400 IN NSEC 0-.us. NS SOA RRSIG NSEC DNSKEY TYPE65534"} - m := new(Msg) - var err error - m.Answer = make([]RR, 1) - for _, r := range rr { - m.Answer[0], err = NewRR(r) - if err != nil { - t.Errorf("failed to create RR: %v", err) - continue - } - if _, err := m.Pack(); err != nil { - t.Errorf("packing failed: %v", err) - } - } - x := new(Msg) - ns, _ := NewRR("pool.ntp.org. 390 IN NS a.ntpns.org") - ns.(*NS).Ns = "a.ntpns.org" - x.Ns = append(m.Ns, ns) - x.Ns = append(m.Ns, ns) - x.Ns = append(m.Ns, ns) - // This crashes due to the fact the a.ntpns.org isn't a FQDN - // How to recover() from a remove panic()? - if _, err := x.Pack(); err == nil { - t.Error("packing should fail") - } - x.Answer = make([]RR, 1) - x.Answer[0], err = NewRR(rr[0]) - if _, err := x.Pack(); err == nil { - t.Error("packing should fail") - } - x.Question = make([]Question, 1) - x.Question[0] = Question{";sd#eddddsé›↙èµÂ‘℅∥↙xzztsestxssweewwsssstx@s@Z嵌e@cn.pool.ntp.org.", TypeA, ClassINET} - if _, err := x.Pack(); err == nil { - t.Error("packing should fail") - } -} - -func TestPackNAPTR(t *testing.T) { - for _, n := range []string{ - `apple.com. IN NAPTR 100 50 "se" "SIP+D2U" "" _sip._udp.apple.com.`, - `apple.com. IN NAPTR 90 50 "se" "SIP+D2T" "" _sip._tcp.apple.com.`, - `apple.com. IN NAPTR 50 50 "se" "SIPS+D2T" "" _sips._tcp.apple.com.`, - } { - rr, _ := NewRR(n) - msg := make([]byte, rr.len()) - if off, err := PackRR(rr, msg, 0, nil, false); err != nil { - t.Errorf("packing failed: %v", err) - t.Errorf("length %d, need more than %d", rr.len(), off) - } else { - t.Logf("buf size needed: %d", off) - } - } -} - -func TestCompressLength(t *testing.T) { - m := new(Msg) - m.SetQuestion("miek.nl", TypeMX) - ul := m.Len() - m.Compress = true - if ul != m.Len() { - t.Fatalf("should be equal") - } -} - -// Does the predicted length match final packed length? -func TestMsgCompressLength(t *testing.T) { - makeMsg := func(question string, ans, ns, e []RR) *Msg { - msg := new(Msg) - msg.SetQuestion(Fqdn(question), TypeANY) - msg.Answer = append(msg.Answer, ans...) - msg.Ns = append(msg.Ns, ns...) - msg.Extra = append(msg.Extra, e...) - msg.Compress = true - return msg - } - - name1 := "12345678901234567890123456789012345.12345678.123." - rrA, _ := NewRR(name1 + " 3600 IN A 192.0.2.1") - rrMx, _ := NewRR(name1 + " 3600 IN MX 10 " + name1) - tests := []*Msg{ - makeMsg(name1, []RR{rrA}, nil, nil), - makeMsg(name1, []RR{rrMx, rrMx}, nil, nil)} - - for _, msg := range tests { - predicted := msg.Len() - buf, err := msg.Pack() - if err != nil { - t.Error(err) - } - if predicted < len(buf) { - t.Errorf("predicted compressed length is wrong: predicted %s (len=%d) %d, actual %d", - msg.Question[0].Name, len(msg.Answer), predicted, len(buf)) - } - } -} - -func TestMsgLength(t *testing.T) { - makeMsg := func(question string, ans, ns, e []RR) *Msg { - msg := new(Msg) - msg.SetQuestion(Fqdn(question), TypeANY) - msg.Answer = append(msg.Answer, ans...) - msg.Ns = append(msg.Ns, ns...) - msg.Extra = append(msg.Extra, e...) - return msg - } - - name1 := "12345678901234567890123456789012345.12345678.123." - rrA, _ := NewRR(name1 + " 3600 IN A 192.0.2.1") - rrMx, _ := NewRR(name1 + " 3600 IN MX 10 " + name1) - tests := []*Msg{ - makeMsg(name1, []RR{rrA}, nil, nil), - makeMsg(name1, []RR{rrMx, rrMx}, nil, nil)} - - for _, msg := range tests { - predicted := msg.Len() - buf, err := msg.Pack() - if err != nil { - t.Error(err) - } - if predicted < len(buf) { - t.Errorf("predicted length is wrong: predicted %s (len=%d), actual %d", - msg.Question[0].Name, predicted, len(buf)) - } - } -} - -func TestMsgLength2(t *testing.T) { - // Serialized replies - var testMessages = []string{ - // google.com. IN A? - "064e81800001000b0004000506676f6f676c6503636f6d0000010001c00c00010001000000050004adc22986c00c00010001000000050004adc22987c00c00010001000000050004adc22988c00c00010001000000050004adc22989c00c00010001000000050004adc2298ec00c00010001000000050004adc22980c00c00010001000000050004adc22981c00c00010001000000050004adc22982c00c00010001000000050004adc22983c00c00010001000000050004adc22984c00c00010001000000050004adc22985c00c00020001000000050006036e7331c00cc00c00020001000000050006036e7332c00cc00c00020001000000050006036e7333c00cc00c00020001000000050006036e7334c00cc0d800010001000000050004d8ef200ac0ea00010001000000050004d8ef220ac0fc00010001000000050004d8ef240ac10e00010001000000050004d8ef260a0000290500000000050000", - // amazon.com. IN A? (reply has no EDNS0 record) - // TODO(miek): this one is off-by-one, need to find out why - //"6de1818000010004000a000806616d617a6f6e03636f6d0000010001c00c000100010000000500044815c2d4c00c000100010000000500044815d7e8c00c00010001000000050004b02062a6c00c00010001000000050004cdfbf236c00c000200010000000500140570646e733408756c747261646e73036f726700c00c000200010000000500150570646e733508756c747261646e7304696e666f00c00c000200010000000500160570646e733608756c747261646e7302636f02756b00c00c00020001000000050014036e7331037033310664796e656374036e657400c00c00020001000000050006036e7332c0cfc00c00020001000000050006036e7333c0cfc00c00020001000000050006036e7334c0cfc00c000200010000000500110570646e733108756c747261646e73c0dac00c000200010000000500080570646e7332c127c00c000200010000000500080570646e7333c06ec0cb00010001000000050004d04e461fc0eb00010001000000050004cc0dfa1fc0fd00010001000000050004d04e471fc10f00010001000000050004cc0dfb1fc12100010001000000050004cc4a6c01c121001c000100000005001020010502f3ff00000000000000000001c13e00010001000000050004cc4a6d01c13e001c0001000000050010261000a1101400000000000000000001", - // yahoo.com. IN A? - "fc2d81800001000300070008057961686f6f03636f6d0000010001c00c00010001000000050004628afd6dc00c00010001000000050004628bb718c00c00010001000000050004cebe242dc00c00020001000000050006036e7336c00cc00c00020001000000050006036e7338c00cc00c00020001000000050006036e7331c00cc00c00020001000000050006036e7332c00cc00c00020001000000050006036e7333c00cc00c00020001000000050006036e7334c00cc00c00020001000000050006036e7335c00cc07b0001000100000005000444b48310c08d00010001000000050004448eff10c09f00010001000000050004cb54dd35c0b100010001000000050004628a0b9dc0c30001000100000005000477a0f77cc05700010001000000050004ca2bdfaac06900010001000000050004caa568160000290500000000050000", - // microsoft.com. IN A? - "f4368180000100020005000b096d6963726f736f667403636f6d0000010001c00c0001000100000005000440040b25c00c0001000100000005000441373ac9c00c0002000100000005000e036e7331046d736674036e657400c00c00020001000000050006036e7332c04fc00c00020001000000050006036e7333c04fc00c00020001000000050006036e7334c04fc00c00020001000000050006036e7335c04fc04b000100010000000500044137253ec04b001c00010000000500102a010111200500000000000000010001c0650001000100000005000440043badc065001c00010000000500102a010111200600060000000000010001c07700010001000000050004d5c7b435c077001c00010000000500102a010111202000000000000000010001c08900010001000000050004cf2e4bfec089001c00010000000500102404f800200300000000000000010001c09b000100010000000500044137e28cc09b001c00010000000500102a010111200f000100000000000100010000290500000000050000", - // google.com. IN MX? - "724b8180000100050004000b06676f6f676c6503636f6d00000f0001c00c000f000100000005000c000a056173706d78016cc00cc00c000f0001000000050009001404616c7431c02ac00c000f0001000000050009001e04616c7432c02ac00c000f0001000000050009002804616c7433c02ac00c000f0001000000050009003204616c7434c02ac00c00020001000000050006036e7332c00cc00c00020001000000050006036e7333c00cc00c00020001000000050006036e7334c00cc00c00020001000000050006036e7331c00cc02a00010001000000050004adc2421bc02a001c00010000000500102a00145040080c01000000000000001bc04200010001000000050004adc2461bc05700010001000000050004adc2451bc06c000100010000000500044a7d8f1bc081000100010000000500044a7d191bc0ca00010001000000050004d8ef200ac09400010001000000050004d8ef220ac0a600010001000000050004d8ef240ac0b800010001000000050004d8ef260a0000290500000000050000", - // reddit.com. IN A? - "12b98180000100080000000c0672656464697403636f6d0000020001c00c0002000100000005000f046175733204616b616d036e657400c00c000200010000000500070475736534c02dc00c000200010000000500070475737733c02dc00c000200010000000500070475737735c02dc00c00020001000000050008056173696131c02dc00c00020001000000050008056173696139c02dc00c00020001000000050008056e73312d31c02dc00c0002000100000005000a076e73312d313935c02dc02800010001000000050004c30a242ec04300010001000000050004451f1d39c05600010001000000050004451f3bc7c0690001000100000005000460073240c07c000100010000000500046007fb81c090000100010000000500047c283484c090001c00010000000500102a0226f0006700000000000000000064c0a400010001000000050004c16c5b01c0a4001c000100000005001026001401000200000000000000000001c0b800010001000000050004c16c5bc3c0b8001c0001000000050010260014010002000000000000000000c30000290500000000050000", - } - - for i, hexData := range testMessages { - // we won't fail the decoding of the hex - input, _ := hex.DecodeString(hexData) - m := new(Msg) - m.Unpack(input) - //println(m.String()) - m.Compress = true - lenComp := m.Len() - b, _ := m.Pack() - pacComp := len(b) - m.Compress = false - lenUnComp := m.Len() - b, _ = m.Pack() - pacUnComp := len(b) - if pacComp+1 != lenComp { - t.Errorf("msg.Len(compressed)=%d actual=%d for test %d", lenComp, pacComp, i) - } - if pacUnComp+1 != lenUnComp { - t.Errorf("msg.Len(uncompressed)=%d actual=%d for test %d", lenUnComp, pacUnComp, i) - } - } -} - -func TestMsgLengthCompressionMalformed(t *testing.T) { - // SOA with empty hostmaster, which is illegal - soa := &SOA{Hdr: RR_Header{Name: ".", Rrtype: TypeSOA, Class: ClassINET, Ttl: 12345}, - Ns: ".", - Mbox: "", - Serial: 0, - Refresh: 28800, - Retry: 7200, - Expire: 604800, - Minttl: 60} - m := new(Msg) - m.Compress = true - m.Ns = []RR{soa} - m.Len() // Should not crash. -} - -func BenchmarkMsgLength(b *testing.B) { - b.StopTimer() - makeMsg := func(question string, ans, ns, e []RR) *Msg { - msg := new(Msg) - msg.SetQuestion(Fqdn(question), TypeANY) - msg.Answer = append(msg.Answer, ans...) - msg.Ns = append(msg.Ns, ns...) - msg.Extra = append(msg.Extra, e...) - msg.Compress = true - return msg - } - name1 := "12345678901234567890123456789012345.12345678.123." - rrMx, _ := NewRR(name1 + " 3600 IN MX 10 " + name1) - msg := makeMsg(name1, []RR{rrMx, rrMx}, nil, nil) - b.StartTimer() - for i := 0; i < b.N; i++ { - msg.Len() - } -} - -func BenchmarkMsgLengthPack(b *testing.B) { - makeMsg := func(question string, ans, ns, e []RR) *Msg { - msg := new(Msg) - msg.SetQuestion(Fqdn(question), TypeANY) - msg.Answer = append(msg.Answer, ans...) - msg.Ns = append(msg.Ns, ns...) - msg.Extra = append(msg.Extra, e...) - msg.Compress = true - return msg - } - name1 := "12345678901234567890123456789012345.12345678.123." - rrMx, _ := NewRR(name1 + " 3600 IN MX 10 " + name1) - msg := makeMsg(name1, []RR{rrMx, rrMx}, nil, nil) - b.ResetTimer() - for i := 0; i < b.N; i++ { - _, _ = msg.Pack() - } -} - -func BenchmarkMsgPackBuffer(b *testing.B) { - makeMsg := func(question string, ans, ns, e []RR) *Msg { - msg := new(Msg) - msg.SetQuestion(Fqdn(question), TypeANY) - msg.Answer = append(msg.Answer, ans...) - msg.Ns = append(msg.Ns, ns...) - msg.Extra = append(msg.Extra, e...) - msg.Compress = true - return msg - } - name1 := "12345678901234567890123456789012345.12345678.123." - rrMx, _ := NewRR(name1 + " 3600 IN MX 10 " + name1) - msg := makeMsg(name1, []RR{rrMx, rrMx}, nil, nil) - buf := make([]byte, 512) - b.ResetTimer() - for i := 0; i < b.N; i++ { - _, _ = msg.PackBuffer(buf) - } -} - -func BenchmarkMsgUnpack(b *testing.B) { - makeMsg := func(question string, ans, ns, e []RR) *Msg { - msg := new(Msg) - msg.SetQuestion(Fqdn(question), TypeANY) - msg.Answer = append(msg.Answer, ans...) - msg.Ns = append(msg.Ns, ns...) - msg.Extra = append(msg.Extra, e...) - msg.Compress = true - return msg - } - name1 := "12345678901234567890123456789012345.12345678.123." - rrMx, _ := NewRR(name1 + " 3600 IN MX 10 " + name1) - msg := makeMsg(name1, []RR{rrMx, rrMx}, nil, nil) - msgBuf, _ := msg.Pack() - b.ResetTimer() - for i := 0; i < b.N; i++ { - _ = msg.Unpack(msgBuf) - } -} - -func BenchmarkPackDomainName(b *testing.B) { - name1 := "12345678901234567890123456789012345.12345678.123." - buf := make([]byte, len(name1)+1) - b.ResetTimer() - for i := 0; i < b.N; i++ { - _, _ = PackDomainName(name1, buf, 0, nil, false) - } -} - -func BenchmarkUnpackDomainName(b *testing.B) { - name1 := "12345678901234567890123456789012345.12345678.123." - buf := make([]byte, len(name1)+1) - _, _ = PackDomainName(name1, buf, 0, nil, false) - b.ResetTimer() - for i := 0; i < b.N; i++ { - _, _, _ = UnpackDomainName(buf, 0) - } -} - -func BenchmarkUnpackDomainNameUnprintable(b *testing.B) { - name1 := "\x02\x02\x02\x025\x02\x02\x02\x02.12345678.123." - buf := make([]byte, len(name1)+1) - _, _ = PackDomainName(name1, buf, 0, nil, false) - b.ResetTimer() - for i := 0; i < b.N; i++ { - _, _, _ = UnpackDomainName(buf, 0) - } -} - -func TestToRFC3597(t *testing.T) { - a, _ := NewRR("miek.nl. IN A 10.0.1.1") - x := new(RFC3597) - x.ToRFC3597(a) - if x.String() != `miek.nl. 3600 CLASS1 TYPE1 \# 4 0a000101` { - t.Error("string mismatch") - } -} - -func TestNoRdataPack(t *testing.T) { - data := make([]byte, 1024) - for typ, fn := range TypeToRR { - r := fn() - *r.Header() = RR_Header{Name: "miek.nl.", Rrtype: typ, Class: ClassINET, Ttl: 3600} - _, err := PackRR(r, data, 0, nil, false) - if err != nil { - t.Errorf("failed to pack RR with zero rdata: %s: %v", TypeToString[typ], err) - } - } -} - -// TODO(miek): fix dns buffer too small errors this throws -func TestNoRdataUnpack(t *testing.T) { - data := make([]byte, 1024) - for typ, fn := range TypeToRR { - if typ == TypeSOA || typ == TypeTSIG || typ == TypeWKS { - // SOA, TSIG will not be seen (like this) in dyn. updates? - // WKS is an bug, but...deprecated record. - continue - } - r := fn() - *r.Header() = RR_Header{Name: "miek.nl.", Rrtype: typ, Class: ClassINET, Ttl: 3600} - off, err := PackRR(r, data, 0, nil, false) - if err != nil { - // Should always works, TestNoDataPack should have caught this - t.Errorf("failed to pack RR: %v", err) - continue - } - rr, _, err := UnpackRR(data[:off], 0) - if err != nil { - t.Errorf("failed to unpack RR with zero rdata: %s: %v", TypeToString[typ], err) - } - t.Log(rr) - } -} - -func TestRdataOverflow(t *testing.T) { - rr := new(RFC3597) - rr.Hdr.Name = "." - rr.Hdr.Class = ClassINET - rr.Hdr.Rrtype = 65280 - rr.Rdata = hex.EncodeToString(make([]byte, 0xFFFF)) - buf := make([]byte, 0xFFFF*2) - if _, err := PackRR(rr, buf, 0, nil, false); err != nil { - t.Fatalf("maximum size rrdata pack failed: %v", err) - } - rr.Rdata += "00" - if _, err := PackRR(rr, buf, 0, nil, false); err != ErrRdata { - t.Fatalf("oversize rrdata pack didn't return ErrRdata - instead: %v", err) - } -} - -func TestCopy(t *testing.T) { - rr, _ := NewRR("miek.nl. 2311 IN A 127.0.0.1") // Weird TTL to avoid catching TTL - rr1 := Copy(rr) - if rr.String() != rr1.String() { - t.Fatalf("Copy() failed %s != %s", rr.String(), rr1.String()) - } -} - -func TestMsgCopy(t *testing.T) { - m := new(Msg) - m.SetQuestion("miek.nl.", TypeA) - rr, _ := NewRR("miek.nl. 2311 IN A 127.0.0.1") - m.Answer = []RR{rr} - rr, _ = NewRR("miek.nl. 2311 IN NS 127.0.0.1") - m.Ns = []RR{rr} - - m1 := m.Copy() - if m.String() != m1.String() { - t.Fatalf("Msg.Copy() failed %s != %s", m.String(), m1.String()) - } - - m1.Answer[0], _ = NewRR("somethingelse.nl. 2311 IN A 127.0.0.1") - if m.String() == m1.String() { - t.Fatalf("Msg.Copy() failed; change to copy changed template %s", m.String()) - } - - rr, _ = NewRR("miek.nl. 2311 IN A 127.0.0.2") - m1.Answer = append(m1.Answer, rr) - if m1.Ns[0].String() == m1.Answer[1].String() { - t.Fatalf("Msg.Copy() failed; append changed underlying array %s", m1.Ns[0].String()) - } -} - -func BenchmarkCopy(b *testing.B) { - b.ReportAllocs() - m := new(Msg) - m.SetQuestion("miek.nl.", TypeA) - rr, _ := NewRR("miek.nl. 2311 IN A 127.0.0.1") - m.Answer = []RR{rr} - rr, _ = NewRR("miek.nl. 2311 IN NS 127.0.0.1") - m.Ns = []RR{rr} - rr, _ = NewRR("miek.nl. 2311 IN A 127.0.0.1") - m.Extra = []RR{rr} - - b.ResetTimer() - for i := 0; i < b.N; i++ { - m.Copy() - } -} - -func TestPackIPSECKEY(t *testing.T) { - tests := []string{ - "38.2.0.192.in-addr.arpa. 7200 IN IPSECKEY ( 10 1 2 192.0.2.38 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ== )", - "38.2.0.192.in-addr.arpa. 7200 IN IPSECKEY ( 10 0 2 . AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ== )", - "38.2.0.192.in-addr.arpa. 7200 IN IPSECKEY ( 10 1 2 192.0.2.3 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ== )", - "38.1.0.192.in-addr.arpa. 7200 IN IPSECKEY ( 10 3 2 mygateway.example.com. AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ== )", - "0.d.4.0.3.0.e.f.f.f.3.f.0.1.2.0 7200 IN IPSECKEY ( 10 2 2 2001:0DB8:0:8002::2000:1 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ== )", - } - buf := make([]byte, 1024) - for _, t1 := range tests { - rr, _ := NewRR(t1) - off, err := PackRR(rr, buf, 0, nil, false) - if err != nil { - t.Errorf("failed to pack IPSECKEY %v: %s", err, t1) - continue - } - - rr, _, err = UnpackRR(buf[:off], 0) - if err != nil { - t.Errorf("failed to unpack IPSECKEY %v: %s", err, t1) - } - t.Log(rr) - } -} - -func TestMsgPackBuffer(t *testing.T) { - var testMessages = []string{ - // news.ycombinator.com.in.escapemg.com. IN A, response - "586285830001000000010000046e6577730b79636f6d62696e61746f7203636f6d02696e086573636170656d6703636f6d0000010001c0210006000100000e10002c036e7332c02103646e730b67726f6f7665736861726bc02d77ed50e600002a3000000e1000093a8000000e10", - - // news.ycombinator.com.in.escapemg.com. IN A, question - "586201000001000000000000046e6577730b79636f6d62696e61746f7203636f6d02696e086573636170656d6703636f6d0000010001", - - "398781020001000000000000046e6577730b79636f6d62696e61746f7203636f6d0000010001", - } - - for i, hexData := range testMessages { - // we won't fail the decoding of the hex - input, _ := hex.DecodeString(hexData) - m := new(Msg) - if err := m.Unpack(input); err != nil { - t.Errorf("packet %d failed to unpack", i) - continue - } - t.Logf("packet %d %s", i, m.String()) - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec.go deleted file mode 100644 index 84cb2142..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec.go +++ /dev/null @@ -1,664 +0,0 @@ -package dns - -import ( - "bytes" - "crypto" - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - _ "crypto/md5" - "crypto/rand" - "crypto/rsa" - _ "crypto/sha1" - _ "crypto/sha256" - _ "crypto/sha512" - "encoding/asn1" - "encoding/hex" - "math/big" - "sort" - "strings" - "time" -) - -// DNSSEC encryption algorithm codes. -const ( - _ uint8 = iota - RSAMD5 - DH - DSA - _ // Skip 4, RFC 6725, section 2.1 - RSASHA1 - DSANSEC3SHA1 - RSASHA1NSEC3SHA1 - RSASHA256 - _ // Skip 9, RFC 6725, section 2.1 - RSASHA512 - _ // Skip 11, RFC 6725, section 2.1 - ECCGOST - ECDSAP256SHA256 - ECDSAP384SHA384 - INDIRECT uint8 = 252 - PRIVATEDNS uint8 = 253 // Private (experimental keys) - PRIVATEOID uint8 = 254 -) - -// Map for algorithm names. -var AlgorithmToString = map[uint8]string{ - RSAMD5: "RSAMD5", - DH: "DH", - DSA: "DSA", - RSASHA1: "RSASHA1", - DSANSEC3SHA1: "DSA-NSEC3-SHA1", - RSASHA1NSEC3SHA1: "RSASHA1-NSEC3-SHA1", - RSASHA256: "RSASHA256", - RSASHA512: "RSASHA512", - ECCGOST: "ECC-GOST", - ECDSAP256SHA256: "ECDSAP256SHA256", - ECDSAP384SHA384: "ECDSAP384SHA384", - INDIRECT: "INDIRECT", - PRIVATEDNS: "PRIVATEDNS", - PRIVATEOID: "PRIVATEOID", -} - -// Map of algorithm strings. -var StringToAlgorithm = reverseInt8(AlgorithmToString) - -// Map of algorithm crypto hashes. -var AlgorithmToHash = map[uint8]crypto.Hash{ - RSAMD5: crypto.MD5, // Deprecated in RFC 6725 - RSASHA1: crypto.SHA1, - RSASHA1NSEC3SHA1: crypto.SHA1, - RSASHA256: crypto.SHA256, - ECDSAP256SHA256: crypto.SHA256, - ECDSAP384SHA384: crypto.SHA384, - RSASHA512: crypto.SHA512, -} - -// DNSSEC hashing algorithm codes. -const ( - _ uint8 = iota - SHA1 // RFC 4034 - SHA256 // RFC 4509 - GOST94 // RFC 5933 - SHA384 // Experimental - SHA512 // Experimental -) - -// Map for hash names. -var HashToString = map[uint8]string{ - SHA1: "SHA1", - SHA256: "SHA256", - GOST94: "GOST94", - SHA384: "SHA384", - SHA512: "SHA512", -} - -// Map of hash strings. -var StringToHash = reverseInt8(HashToString) - -// DNSKEY flag values. -const ( - SEP = 1 - REVOKE = 1 << 7 - ZONE = 1 << 8 -) - -// The RRSIG needs to be converted to wireformat with some of -// the rdata (the signature) missing. Use this struct to ease -// the conversion (and re-use the pack/unpack functions). -type rrsigWireFmt struct { - TypeCovered uint16 - Algorithm uint8 - Labels uint8 - OrigTtl uint32 - Expiration uint32 - Inception uint32 - KeyTag uint16 - SignerName string `dns:"domain-name"` - /* No Signature */ -} - -// Used for converting DNSKEY's rdata to wirefmt. -type dnskeyWireFmt struct { - Flags uint16 - Protocol uint8 - Algorithm uint8 - PublicKey string `dns:"base64"` - /* Nothing is left out */ -} - -func divRoundUp(a, b int) int { - return (a + b - 1) / b -} - -// KeyTag calculates the keytag (or key-id) of the DNSKEY. -func (k *DNSKEY) KeyTag() uint16 { - if k == nil { - return 0 - } - var keytag int - switch k.Algorithm { - case RSAMD5: - // Look at the bottom two bytes of the modules, which the last - // item in the pubkey. We could do this faster by looking directly - // at the base64 values. But I'm lazy. - modulus, _ := fromBase64([]byte(k.PublicKey)) - if len(modulus) > 1 { - x, _ := unpackUint16(modulus, len(modulus)-2) - keytag = int(x) - } - default: - keywire := new(dnskeyWireFmt) - keywire.Flags = k.Flags - keywire.Protocol = k.Protocol - keywire.Algorithm = k.Algorithm - keywire.PublicKey = k.PublicKey - wire := make([]byte, DefaultMsgSize) - n, err := PackStruct(keywire, wire, 0) - if err != nil { - return 0 - } - wire = wire[:n] - for i, v := range wire { - if i&1 != 0 { - keytag += int(v) // must be larger than uint32 - } else { - keytag += int(v) << 8 - } - } - keytag += (keytag >> 16) & 0xFFFF - keytag &= 0xFFFF - } - return uint16(keytag) -} - -// ToDS converts a DNSKEY record to a DS record. -func (k *DNSKEY) ToDS(h uint8) *DS { - if k == nil { - return nil - } - ds := new(DS) - ds.Hdr.Name = k.Hdr.Name - ds.Hdr.Class = k.Hdr.Class - ds.Hdr.Rrtype = TypeDS - ds.Hdr.Ttl = k.Hdr.Ttl - ds.Algorithm = k.Algorithm - ds.DigestType = h - ds.KeyTag = k.KeyTag() - - keywire := new(dnskeyWireFmt) - keywire.Flags = k.Flags - keywire.Protocol = k.Protocol - keywire.Algorithm = k.Algorithm - keywire.PublicKey = k.PublicKey - wire := make([]byte, DefaultMsgSize) - n, err := PackStruct(keywire, wire, 0) - if err != nil { - return nil - } - wire = wire[:n] - - owner := make([]byte, 255) - off, err1 := PackDomainName(strings.ToLower(k.Hdr.Name), owner, 0, nil, false) - if err1 != nil { - return nil - } - owner = owner[:off] - // RFC4034: - // digest = digest_algorithm( DNSKEY owner name | DNSKEY RDATA); - // "|" denotes concatenation - // DNSKEY RDATA = Flags | Protocol | Algorithm | Public Key. - - // digest buffer - digest := append(owner, wire...) // another copy - - var hash crypto.Hash - switch h { - case SHA1: - hash = crypto.SHA1 - case SHA256: - hash = crypto.SHA256 - case SHA384: - hash = crypto.SHA384 - case SHA512: - hash = crypto.SHA512 - default: - return nil - } - - s := hash.New() - s.Write(digest) - ds.Digest = hex.EncodeToString(s.Sum(nil)) - return ds -} - -// ToCDNSKEY converts a DNSKEY record to a CDNSKEY record. -func (k *DNSKEY) ToCDNSKEY() *CDNSKEY { - c := &CDNSKEY{DNSKEY: *k} - c.Hdr = *k.Hdr.copyHeader() - c.Hdr.Rrtype = TypeCDNSKEY - return c -} - -// ToCDS converts a DS record to a CDS record. -func (d *DS) ToCDS() *CDS { - c := &CDS{DS: *d} - c.Hdr = *d.Hdr.copyHeader() - c.Hdr.Rrtype = TypeCDS - return c -} - -// Sign signs an RRSet. The signature needs to be filled in with the values: -// Inception, Expiration, KeyTag, SignerName and Algorithm. The rest is copied -// from the RRset. Sign returns a non-nill error when the signing went OK. -// There is no check if RRSet is a proper (RFC 2181) RRSet. If OrigTTL is non -// zero, it is used as-is, otherwise the TTL of the RRset is used as the -// OrigTTL. -func (rr *RRSIG) Sign(k crypto.Signer, rrset []RR) error { - if k == nil { - return ErrPrivKey - } - // s.Inception and s.Expiration may be 0 (rollover etc.), the rest must be set - if rr.KeyTag == 0 || len(rr.SignerName) == 0 || rr.Algorithm == 0 { - return ErrKey - } - - rr.Hdr.Rrtype = TypeRRSIG - rr.Hdr.Name = rrset[0].Header().Name - rr.Hdr.Class = rrset[0].Header().Class - if rr.OrigTtl == 0 { // If set don't override - rr.OrigTtl = rrset[0].Header().Ttl - } - rr.TypeCovered = rrset[0].Header().Rrtype - rr.Labels = uint8(CountLabel(rrset[0].Header().Name)) - - if strings.HasPrefix(rrset[0].Header().Name, "*") { - rr.Labels-- // wildcard, remove from label count - } - - sigwire := new(rrsigWireFmt) - sigwire.TypeCovered = rr.TypeCovered - sigwire.Algorithm = rr.Algorithm - sigwire.Labels = rr.Labels - sigwire.OrigTtl = rr.OrigTtl - sigwire.Expiration = rr.Expiration - sigwire.Inception = rr.Inception - sigwire.KeyTag = rr.KeyTag - // For signing, lowercase this name - sigwire.SignerName = strings.ToLower(rr.SignerName) - - // Create the desired binary blob - signdata := make([]byte, DefaultMsgSize) - n, err := PackStruct(sigwire, signdata, 0) - if err != nil { - return err - } - signdata = signdata[:n] - wire, err := rawSignatureData(rrset, rr) - if err != nil { - return err - } - signdata = append(signdata, wire...) - - hash, ok := AlgorithmToHash[rr.Algorithm] - if !ok { - return ErrAlg - } - - h := hash.New() - h.Write(signdata) - - signature, err := sign(k, h.Sum(nil), hash, rr.Algorithm) - if err != nil { - return err - } - - rr.Signature = toBase64(signature) - - return nil -} - -func sign(k crypto.Signer, hashed []byte, hash crypto.Hash, alg uint8) ([]byte, error) { - signature, err := k.Sign(rand.Reader, hashed, hash) - if err != nil { - return nil, err - } - - switch alg { - case RSASHA1, RSASHA1NSEC3SHA1, RSASHA256, RSASHA512: - return signature, nil - - case ECDSAP256SHA256, ECDSAP384SHA384: - ecdsaSignature := &struct { - R, S *big.Int - }{} - if _, err := asn1.Unmarshal(signature, ecdsaSignature); err != nil { - return nil, err - } - - var intlen int - switch alg { - case ECDSAP256SHA256: - intlen = 32 - case ECDSAP384SHA384: - intlen = 48 - } - - signature := intToBytes(ecdsaSignature.R, intlen) - signature = append(signature, intToBytes(ecdsaSignature.S, intlen)...) - return signature, nil - - // There is no defined interface for what a DSA backed crypto.Signer returns - case DSA, DSANSEC3SHA1: - // t := divRoundUp(divRoundUp(p.PublicKey.Y.BitLen(), 8)-64, 8) - // signature := []byte{byte(t)} - // signature = append(signature, intToBytes(r1, 20)...) - // signature = append(signature, intToBytes(s1, 20)...) - // rr.Signature = signature - } - - return nil, ErrAlg -} - -// Verify validates an RRSet with the signature and key. This is only the -// cryptographic test, the signature validity period must be checked separately. -// This function copies the rdata of some RRs (to lowercase domain names) for the validation to work. -func (rr *RRSIG) Verify(k *DNSKEY, rrset []RR) error { - // First the easy checks - if !IsRRset(rrset) { - return ErrRRset - } - if rr.KeyTag != k.KeyTag() { - return ErrKey - } - if rr.Hdr.Class != k.Hdr.Class { - return ErrKey - } - if rr.Algorithm != k.Algorithm { - return ErrKey - } - if strings.ToLower(rr.SignerName) != strings.ToLower(k.Hdr.Name) { - return ErrKey - } - if k.Protocol != 3 { - return ErrKey - } - - // IsRRset checked that we have at least one RR and that the RRs in - // the set have consistent type, class, and name. Also check that type and - // class matches the RRSIG record. - if rrset[0].Header().Class != rr.Hdr.Class { - return ErrRRset - } - if rrset[0].Header().Rrtype != rr.TypeCovered { - return ErrRRset - } - - // RFC 4035 5.3.2. Reconstructing the Signed Data - // Copy the sig, except the rrsig data - sigwire := new(rrsigWireFmt) - sigwire.TypeCovered = rr.TypeCovered - sigwire.Algorithm = rr.Algorithm - sigwire.Labels = rr.Labels - sigwire.OrigTtl = rr.OrigTtl - sigwire.Expiration = rr.Expiration - sigwire.Inception = rr.Inception - sigwire.KeyTag = rr.KeyTag - sigwire.SignerName = strings.ToLower(rr.SignerName) - // Create the desired binary blob - signeddata := make([]byte, DefaultMsgSize) - n, err := PackStruct(sigwire, signeddata, 0) - if err != nil { - return err - } - signeddata = signeddata[:n] - wire, err := rawSignatureData(rrset, rr) - if err != nil { - return err - } - signeddata = append(signeddata, wire...) - - sigbuf := rr.sigBuf() // Get the binary signature data - if rr.Algorithm == PRIVATEDNS { // PRIVATEOID - // TODO(miek) - // remove the domain name and assume its ours? - } - - hash, ok := AlgorithmToHash[rr.Algorithm] - if !ok { - return ErrAlg - } - - switch rr.Algorithm { - case RSASHA1, RSASHA1NSEC3SHA1, RSASHA256, RSASHA512, RSAMD5: - // TODO(mg): this can be done quicker, ie. cache the pubkey data somewhere?? - pubkey := k.publicKeyRSA() // Get the key - if pubkey == nil { - return ErrKey - } - - h := hash.New() - h.Write(signeddata) - return rsa.VerifyPKCS1v15(pubkey, hash, h.Sum(nil), sigbuf) - - case ECDSAP256SHA256, ECDSAP384SHA384: - pubkey := k.publicKeyECDSA() - if pubkey == nil { - return ErrKey - } - - // Split sigbuf into the r and s coordinates - r := new(big.Int).SetBytes(sigbuf[:len(sigbuf)/2]) - s := new(big.Int).SetBytes(sigbuf[len(sigbuf)/2:]) - - h := hash.New() - h.Write(signeddata) - if ecdsa.Verify(pubkey, h.Sum(nil), r, s) { - return nil - } - return ErrSig - - default: - return ErrAlg - } -} - -// ValidityPeriod uses RFC1982 serial arithmetic to calculate -// if a signature period is valid. If t is the zero time, the -// current time is taken other t is. Returns true if the signature -// is valid at the given time, otherwise returns false. -func (rr *RRSIG) ValidityPeriod(t time.Time) bool { - var utc int64 - if t.IsZero() { - utc = time.Now().UTC().Unix() - } else { - utc = t.UTC().Unix() - } - modi := (int64(rr.Inception) - utc) / year68 - mode := (int64(rr.Expiration) - utc) / year68 - ti := int64(rr.Inception) + (modi * year68) - te := int64(rr.Expiration) + (mode * year68) - return ti <= utc && utc <= te -} - -// Return the signatures base64 encodedig sigdata as a byte slice. -func (rr *RRSIG) sigBuf() []byte { - sigbuf, err := fromBase64([]byte(rr.Signature)) - if err != nil { - return nil - } - return sigbuf -} - -// publicKeyRSA returns the RSA public key from a DNSKEY record. -func (k *DNSKEY) publicKeyRSA() *rsa.PublicKey { - keybuf, err := fromBase64([]byte(k.PublicKey)) - if err != nil { - return nil - } - - // RFC 2537/3110, section 2. RSA Public KEY Resource Records - // Length is in the 0th byte, unless its zero, then it - // it in bytes 1 and 2 and its a 16 bit number - explen := uint16(keybuf[0]) - keyoff := 1 - if explen == 0 { - explen = uint16(keybuf[1])<<8 | uint16(keybuf[2]) - keyoff = 3 - } - pubkey := new(rsa.PublicKey) - - pubkey.N = big.NewInt(0) - shift := uint64((explen - 1) * 8) - expo := uint64(0) - for i := int(explen - 1); i > 0; i-- { - expo += uint64(keybuf[keyoff+i]) << shift - shift -= 8 - } - // Remainder - expo += uint64(keybuf[keyoff]) - if expo > 2<<31 { - // Larger expo than supported. - // println("dns: F5 primes (or larger) are not supported") - return nil - } - pubkey.E = int(expo) - - pubkey.N.SetBytes(keybuf[keyoff+int(explen):]) - return pubkey -} - -// publicKeyECDSA returns the Curve public key from the DNSKEY record. -func (k *DNSKEY) publicKeyECDSA() *ecdsa.PublicKey { - keybuf, err := fromBase64([]byte(k.PublicKey)) - if err != nil { - return nil - } - pubkey := new(ecdsa.PublicKey) - switch k.Algorithm { - case ECDSAP256SHA256: - pubkey.Curve = elliptic.P256() - if len(keybuf) != 64 { - // wrongly encoded key - return nil - } - case ECDSAP384SHA384: - pubkey.Curve = elliptic.P384() - if len(keybuf) != 96 { - // Wrongly encoded key - return nil - } - } - pubkey.X = big.NewInt(0) - pubkey.X.SetBytes(keybuf[:len(keybuf)/2]) - pubkey.Y = big.NewInt(0) - pubkey.Y.SetBytes(keybuf[len(keybuf)/2:]) - return pubkey -} - -func (k *DNSKEY) publicKeyDSA() *dsa.PublicKey { - keybuf, err := fromBase64([]byte(k.PublicKey)) - if err != nil { - return nil - } - if len(keybuf) < 22 { - return nil - } - t, keybuf := int(keybuf[0]), keybuf[1:] - size := 64 + t*8 - q, keybuf := keybuf[:20], keybuf[20:] - if len(keybuf) != 3*size { - return nil - } - p, keybuf := keybuf[:size], keybuf[size:] - g, y := keybuf[:size], keybuf[size:] - pubkey := new(dsa.PublicKey) - pubkey.Parameters.Q = big.NewInt(0).SetBytes(q) - pubkey.Parameters.P = big.NewInt(0).SetBytes(p) - pubkey.Parameters.G = big.NewInt(0).SetBytes(g) - pubkey.Y = big.NewInt(0).SetBytes(y) - return pubkey -} - -type wireSlice [][]byte - -func (p wireSlice) Len() int { return len(p) } -func (p wireSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } -func (p wireSlice) Less(i, j int) bool { - _, ioff, _ := UnpackDomainName(p[i], 0) - _, joff, _ := UnpackDomainName(p[j], 0) - return bytes.Compare(p[i][ioff+10:], p[j][joff+10:]) < 0 -} - -// Return the raw signature data. -func rawSignatureData(rrset []RR, s *RRSIG) (buf []byte, err error) { - wires := make(wireSlice, len(rrset)) - for i, r := range rrset { - r1 := r.copy() - r1.Header().Ttl = s.OrigTtl - labels := SplitDomainName(r1.Header().Name) - // 6.2. Canonical RR Form. (4) - wildcards - if len(labels) > int(s.Labels) { - // Wildcard - r1.Header().Name = "*." + strings.Join(labels[len(labels)-int(s.Labels):], ".") + "." - } - // RFC 4034: 6.2. Canonical RR Form. (2) - domain name to lowercase - r1.Header().Name = strings.ToLower(r1.Header().Name) - // 6.2. Canonical RR Form. (3) - domain rdata to lowercase. - // NS, MD, MF, CNAME, SOA, MB, MG, MR, PTR, - // HINFO, MINFO, MX, RP, AFSDB, RT, SIG, PX, NXT, NAPTR, KX, - // SRV, DNAME, A6 - // - // RFC 6840 - Clarifications and Implementation Notes for DNS Security (DNSSEC): - // Section 6.2 of [RFC4034] also erroneously lists HINFO as a record - // that needs conversion to lowercase, and twice at that. Since HINFO - // records contain no domain names, they are not subject to case - // conversion. - switch x := r1.(type) { - case *NS: - x.Ns = strings.ToLower(x.Ns) - case *CNAME: - x.Target = strings.ToLower(x.Target) - case *SOA: - x.Ns = strings.ToLower(x.Ns) - x.Mbox = strings.ToLower(x.Mbox) - case *MB: - x.Mb = strings.ToLower(x.Mb) - case *MG: - x.Mg = strings.ToLower(x.Mg) - case *MR: - x.Mr = strings.ToLower(x.Mr) - case *PTR: - x.Ptr = strings.ToLower(x.Ptr) - case *MINFO: - x.Rmail = strings.ToLower(x.Rmail) - x.Email = strings.ToLower(x.Email) - case *MX: - x.Mx = strings.ToLower(x.Mx) - case *NAPTR: - x.Replacement = strings.ToLower(x.Replacement) - case *KX: - x.Exchanger = strings.ToLower(x.Exchanger) - case *SRV: - x.Target = strings.ToLower(x.Target) - case *DNAME: - x.Target = strings.ToLower(x.Target) - } - // 6.2. Canonical RR Form. (5) - origTTL - wire := make([]byte, r1.len()+1) // +1 to be safe(r) - off, err1 := PackRR(r1, wire, 0, nil, false) - if err1 != nil { - return nil, err1 - } - wire = wire[:off] - wires[i] = wire - } - sort.Sort(wires) - for i, wire := range wires { - if i > 0 && bytes.Equal(wire, wires[i-1]) { - continue - } - buf = append(buf, wire...) - } - return buf, nil -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_keygen.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_keygen.go deleted file mode 100644 index 229a0793..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_keygen.go +++ /dev/null @@ -1,156 +0,0 @@ -package dns - -import ( - "crypto" - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rand" - "crypto/rsa" - "math/big" -) - -// Generate generates a DNSKEY of the given bit size. -// The public part is put inside the DNSKEY record. -// The Algorithm in the key must be set as this will define -// what kind of DNSKEY will be generated. -// The ECDSA algorithms imply a fixed keysize, in that case -// bits should be set to the size of the algorithm. -func (k *DNSKEY) Generate(bits int) (crypto.PrivateKey, error) { - switch k.Algorithm { - case DSA, DSANSEC3SHA1: - if bits != 1024 { - return nil, ErrKeySize - } - case RSAMD5, RSASHA1, RSASHA256, RSASHA1NSEC3SHA1: - if bits < 512 || bits > 4096 { - return nil, ErrKeySize - } - case RSASHA512: - if bits < 1024 || bits > 4096 { - return nil, ErrKeySize - } - case ECDSAP256SHA256: - if bits != 256 { - return nil, ErrKeySize - } - case ECDSAP384SHA384: - if bits != 384 { - return nil, ErrKeySize - } - } - - switch k.Algorithm { - case DSA, DSANSEC3SHA1: - params := new(dsa.Parameters) - if err := dsa.GenerateParameters(params, rand.Reader, dsa.L1024N160); err != nil { - return nil, err - } - priv := new(dsa.PrivateKey) - priv.PublicKey.Parameters = *params - err := dsa.GenerateKey(priv, rand.Reader) - if err != nil { - return nil, err - } - k.setPublicKeyDSA(params.Q, params.P, params.G, priv.PublicKey.Y) - return priv, nil - case RSAMD5, RSASHA1, RSASHA256, RSASHA512, RSASHA1NSEC3SHA1: - priv, err := rsa.GenerateKey(rand.Reader, bits) - if err != nil { - return nil, err - } - k.setPublicKeyRSA(priv.PublicKey.E, priv.PublicKey.N) - return priv, nil - case ECDSAP256SHA256, ECDSAP384SHA384: - var c elliptic.Curve - switch k.Algorithm { - case ECDSAP256SHA256: - c = elliptic.P256() - case ECDSAP384SHA384: - c = elliptic.P384() - } - priv, err := ecdsa.GenerateKey(c, rand.Reader) - if err != nil { - return nil, err - } - k.setPublicKeyECDSA(priv.PublicKey.X, priv.PublicKey.Y) - return priv, nil - default: - return nil, ErrAlg - } -} - -// Set the public key (the value E and N) -func (k *DNSKEY) setPublicKeyRSA(_E int, _N *big.Int) bool { - if _E == 0 || _N == nil { - return false - } - buf := exponentToBuf(_E) - buf = append(buf, _N.Bytes()...) - k.PublicKey = toBase64(buf) - return true -} - -// Set the public key for Elliptic Curves -func (k *DNSKEY) setPublicKeyECDSA(_X, _Y *big.Int) bool { - if _X == nil || _Y == nil { - return false - } - var intlen int - switch k.Algorithm { - case ECDSAP256SHA256: - intlen = 32 - case ECDSAP384SHA384: - intlen = 48 - } - k.PublicKey = toBase64(curveToBuf(_X, _Y, intlen)) - return true -} - -// Set the public key for DSA -func (k *DNSKEY) setPublicKeyDSA(_Q, _P, _G, _Y *big.Int) bool { - if _Q == nil || _P == nil || _G == nil || _Y == nil { - return false - } - buf := dsaToBuf(_Q, _P, _G, _Y) - k.PublicKey = toBase64(buf) - return true -} - -// Set the public key (the values E and N) for RSA -// RFC 3110: Section 2. RSA Public KEY Resource Records -func exponentToBuf(_E int) []byte { - var buf []byte - i := big.NewInt(int64(_E)) - if len(i.Bytes()) < 256 { - buf = make([]byte, 1) - buf[0] = uint8(len(i.Bytes())) - } else { - buf = make([]byte, 3) - buf[0] = 0 - buf[1] = uint8(len(i.Bytes()) >> 8) - buf[2] = uint8(len(i.Bytes())) - } - buf = append(buf, i.Bytes()...) - return buf -} - -// Set the public key for X and Y for Curve. The two -// values are just concatenated. -func curveToBuf(_X, _Y *big.Int, intlen int) []byte { - buf := intToBytes(_X, intlen) - buf = append(buf, intToBytes(_Y, intlen)...) - return buf -} - -// Set the public key for X and Y for Curve. The two -// values are just concatenated. -func dsaToBuf(_Q, _P, _G, _Y *big.Int) []byte { - t := divRoundUp(divRoundUp(_G.BitLen(), 8)-64, 8) - buf := []byte{byte(t)} - buf = append(buf, intToBytes(_Q, 20)...) - buf = append(buf, intToBytes(_P, 64+t*8)...) - buf = append(buf, intToBytes(_G, 64+t*8)...) - buf = append(buf, intToBytes(_Y, 64+t*8)...) - return buf -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_keyscan.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_keyscan.go deleted file mode 100644 index 19a78338..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_keyscan.go +++ /dev/null @@ -1,249 +0,0 @@ -package dns - -import ( - "crypto" - "crypto/dsa" - "crypto/ecdsa" - "crypto/rsa" - "io" - "math/big" - "strconv" - "strings" -) - -// NewPrivateKey returns a PrivateKey by parsing the string s. -// s should be in the same form of the BIND private key files. -func (k *DNSKEY) NewPrivateKey(s string) (crypto.PrivateKey, error) { - if s[len(s)-1] != '\n' { // We need a closing newline - return k.ReadPrivateKey(strings.NewReader(s+"\n"), "") - } - return k.ReadPrivateKey(strings.NewReader(s), "") -} - -// ReadPrivateKey reads a private key from the io.Reader q. The string file is -// only used in error reporting. -// The public key must be known, because some cryptographic algorithms embed -// the public inside the privatekey. -func (k *DNSKEY) ReadPrivateKey(q io.Reader, file string) (crypto.PrivateKey, error) { - m, e := parseKey(q, file) - if m == nil { - return nil, e - } - if _, ok := m["private-key-format"]; !ok { - return nil, ErrPrivKey - } - if m["private-key-format"] != "v1.2" && m["private-key-format"] != "v1.3" { - return nil, ErrPrivKey - } - // TODO(mg): check if the pubkey matches the private key - algo, err := strconv.Atoi(strings.SplitN(m["algorithm"], " ", 2)[0]) - if err != nil { - return nil, ErrPrivKey - } - switch uint8(algo) { - case DSA: - priv, e := readPrivateKeyDSA(m) - if e != nil { - return nil, e - } - pub := k.publicKeyDSA() - if pub == nil { - return nil, ErrKey - } - priv.PublicKey = *pub - return priv, e - case RSAMD5: - fallthrough - case RSASHA1: - fallthrough - case RSASHA1NSEC3SHA1: - fallthrough - case RSASHA256: - fallthrough - case RSASHA512: - priv, e := readPrivateKeyRSA(m) - if e != nil { - return nil, e - } - pub := k.publicKeyRSA() - if pub == nil { - return nil, ErrKey - } - priv.PublicKey = *pub - return priv, e - case ECCGOST: - return nil, ErrPrivKey - case ECDSAP256SHA256: - fallthrough - case ECDSAP384SHA384: - priv, e := readPrivateKeyECDSA(m) - if e != nil { - return nil, e - } - pub := k.publicKeyECDSA() - if pub == nil { - return nil, ErrKey - } - priv.PublicKey = *pub - return priv, e - default: - return nil, ErrPrivKey - } -} - -// Read a private key (file) string and create a public key. Return the private key. -func readPrivateKeyRSA(m map[string]string) (*rsa.PrivateKey, error) { - p := new(rsa.PrivateKey) - p.Primes = []*big.Int{nil, nil} - for k, v := range m { - switch k { - case "modulus", "publicexponent", "privateexponent", "prime1", "prime2": - v1, err := fromBase64([]byte(v)) - if err != nil { - return nil, err - } - switch k { - case "modulus": - p.PublicKey.N = big.NewInt(0) - p.PublicKey.N.SetBytes(v1) - case "publicexponent": - i := big.NewInt(0) - i.SetBytes(v1) - p.PublicKey.E = int(i.Int64()) // int64 should be large enough - case "privateexponent": - p.D = big.NewInt(0) - p.D.SetBytes(v1) - case "prime1": - p.Primes[0] = big.NewInt(0) - p.Primes[0].SetBytes(v1) - case "prime2": - p.Primes[1] = big.NewInt(0) - p.Primes[1].SetBytes(v1) - } - case "exponent1", "exponent2", "coefficient": - // not used in Go (yet) - case "created", "publish", "activate": - // not used in Go (yet) - } - } - return p, nil -} - -func readPrivateKeyDSA(m map[string]string) (*dsa.PrivateKey, error) { - p := new(dsa.PrivateKey) - p.X = big.NewInt(0) - for k, v := range m { - switch k { - case "private_value(x)": - v1, err := fromBase64([]byte(v)) - if err != nil { - return nil, err - } - p.X.SetBytes(v1) - case "created", "publish", "activate": - /* not used in Go (yet) */ - } - } - return p, nil -} - -func readPrivateKeyECDSA(m map[string]string) (*ecdsa.PrivateKey, error) { - p := new(ecdsa.PrivateKey) - p.D = big.NewInt(0) - // TODO: validate that the required flags are present - for k, v := range m { - switch k { - case "privatekey": - v1, err := fromBase64([]byte(v)) - if err != nil { - return nil, err - } - p.D.SetBytes(v1) - case "created", "publish", "activate": - /* not used in Go (yet) */ - } - } - return p, nil -} - -// parseKey reads a private key from r. It returns a map[string]string, -// with the key-value pairs, or an error when the file is not correct. -func parseKey(r io.Reader, file string) (map[string]string, error) { - s := scanInit(r) - m := make(map[string]string) - c := make(chan lex) - k := "" - // Start the lexer - go klexer(s, c) - for l := range c { - // It should alternate - switch l.value { - case zKey: - k = l.token - case zValue: - if k == "" { - return nil, &ParseError{file, "no private key seen", l} - } - //println("Setting", strings.ToLower(k), "to", l.token, "b") - m[strings.ToLower(k)] = l.token - k = "" - } - } - return m, nil -} - -// klexer scans the sourcefile and returns tokens on the channel c. -func klexer(s *scan, c chan lex) { - var l lex - str := "" // Hold the current read text - commt := false - key := true - x, err := s.tokenText() - defer close(c) - for err == nil { - l.column = s.position.Column - l.line = s.position.Line - switch x { - case ':': - if commt { - break - } - l.token = str - if key { - l.value = zKey - c <- l - // Next token is a space, eat it - s.tokenText() - key = false - str = "" - } else { - l.value = zValue - } - case ';': - commt = true - case '\n': - if commt { - // Reset a comment - commt = false - } - l.value = zValue - l.token = str - c <- l - str = "" - commt = false - key = true - default: - if commt { - break - } - str += string(x) - } - x, err = s.tokenText() - } - if len(str) > 0 { - // Send remainder - l.token = str - l.value = zValue - c <- l - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_privkey.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_privkey.go deleted file mode 100644 index 56f3ea93..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_privkey.go +++ /dev/null @@ -1,85 +0,0 @@ -package dns - -import ( - "crypto" - "crypto/dsa" - "crypto/ecdsa" - "crypto/rsa" - "math/big" - "strconv" -) - -const format = "Private-key-format: v1.3\n" - -// PrivateKeyString converts a PrivateKey to a string. This string has the same -// format as the private-key-file of BIND9 (Private-key-format: v1.3). -// It needs some info from the key (the algorithm), so its a method of the DNSKEY -// It supports rsa.PrivateKey, ecdsa.PrivateKey and dsa.PrivateKey -func (r *DNSKEY) PrivateKeyString(p crypto.PrivateKey) string { - algorithm := strconv.Itoa(int(r.Algorithm)) - algorithm += " (" + AlgorithmToString[r.Algorithm] + ")" - - switch p := p.(type) { - case *rsa.PrivateKey: - modulus := toBase64(p.PublicKey.N.Bytes()) - e := big.NewInt(int64(p.PublicKey.E)) - publicExponent := toBase64(e.Bytes()) - privateExponent := toBase64(p.D.Bytes()) - prime1 := toBase64(p.Primes[0].Bytes()) - prime2 := toBase64(p.Primes[1].Bytes()) - // Calculate Exponent1/2 and Coefficient as per: http://en.wikipedia.org/wiki/RSA#Using_the_Chinese_remainder_algorithm - // and from: http://code.google.com/p/go/issues/detail?id=987 - one := big.NewInt(1) - p1 := big.NewInt(0).Sub(p.Primes[0], one) - q1 := big.NewInt(0).Sub(p.Primes[1], one) - exp1 := big.NewInt(0).Mod(p.D, p1) - exp2 := big.NewInt(0).Mod(p.D, q1) - coeff := big.NewInt(0).ModInverse(p.Primes[1], p.Primes[0]) - - exponent1 := toBase64(exp1.Bytes()) - exponent2 := toBase64(exp2.Bytes()) - coefficient := toBase64(coeff.Bytes()) - - return format + - "Algorithm: " + algorithm + "\n" + - "Modulus: " + modulus + "\n" + - "PublicExponent: " + publicExponent + "\n" + - "PrivateExponent: " + privateExponent + "\n" + - "Prime1: " + prime1 + "\n" + - "Prime2: " + prime2 + "\n" + - "Exponent1: " + exponent1 + "\n" + - "Exponent2: " + exponent2 + "\n" + - "Coefficient: " + coefficient + "\n" - - case *ecdsa.PrivateKey: - var intlen int - switch r.Algorithm { - case ECDSAP256SHA256: - intlen = 32 - case ECDSAP384SHA384: - intlen = 48 - } - private := toBase64(intToBytes(p.D, intlen)) - return format + - "Algorithm: " + algorithm + "\n" + - "PrivateKey: " + private + "\n" - - case *dsa.PrivateKey: - T := divRoundUp(divRoundUp(p.PublicKey.Parameters.G.BitLen(), 8)-64, 8) - prime := toBase64(intToBytes(p.PublicKey.Parameters.P, 64+T*8)) - subprime := toBase64(intToBytes(p.PublicKey.Parameters.Q, 20)) - base := toBase64(intToBytes(p.PublicKey.Parameters.G, 64+T*8)) - priv := toBase64(intToBytes(p.X, 20)) - pub := toBase64(intToBytes(p.PublicKey.Y, 64+T*8)) - return format + - "Algorithm: " + algorithm + "\n" + - "Prime(p): " + prime + "\n" + - "Subprime(q): " + subprime + "\n" + - "Base(g): " + base + "\n" + - "Private_value(x): " + priv + "\n" + - "Public_value(y): " + pub + "\n" - - default: - return "" - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_test.go deleted file mode 100644 index c3159320..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dnssec_test.go +++ /dev/null @@ -1,733 +0,0 @@ -package dns - -import ( - "crypto" - "crypto/ecdsa" - "crypto/rsa" - "reflect" - "strings" - "testing" - "time" -) - -func getKey() *DNSKEY { - key := new(DNSKEY) - key.Hdr.Name = "miek.nl." - key.Hdr.Class = ClassINET - key.Hdr.Ttl = 14400 - key.Flags = 256 - key.Protocol = 3 - key.Algorithm = RSASHA256 - key.PublicKey = "AwEAAcNEU67LJI5GEgF9QLNqLO1SMq1EdoQ6E9f85ha0k0ewQGCblyW2836GiVsm6k8Kr5ECIoMJ6fZWf3CQSQ9ycWfTyOHfmI3eQ/1Covhb2y4bAmL/07PhrL7ozWBW3wBfM335Ft9xjtXHPy7ztCbV9qZ4TVDTW/Iyg0PiwgoXVesz" - return key -} - -func getSoa() *SOA { - soa := new(SOA) - soa.Hdr = RR_Header{"miek.nl.", TypeSOA, ClassINET, 14400, 0} - soa.Ns = "open.nlnetlabs.nl." - soa.Mbox = "miekg.atoom.net." - soa.Serial = 1293945905 - soa.Refresh = 14400 - soa.Retry = 3600 - soa.Expire = 604800 - soa.Minttl = 86400 - return soa -} - -func TestGenerateEC(t *testing.T) { - if testing.Short() { - t.Skip("skipping test in short mode.") - } - key := new(DNSKEY) - key.Hdr.Rrtype = TypeDNSKEY - key.Hdr.Name = "miek.nl." - key.Hdr.Class = ClassINET - key.Hdr.Ttl = 14400 - key.Flags = 256 - key.Protocol = 3 - key.Algorithm = ECDSAP256SHA256 - privkey, _ := key.Generate(256) - t.Log(key.String()) - t.Log(key.PrivateKeyString(privkey)) -} - -func TestGenerateDSA(t *testing.T) { - if testing.Short() { - t.Skip("skipping test in short mode.") - } - key := new(DNSKEY) - key.Hdr.Rrtype = TypeDNSKEY - key.Hdr.Name = "miek.nl." - key.Hdr.Class = ClassINET - key.Hdr.Ttl = 14400 - key.Flags = 256 - key.Protocol = 3 - key.Algorithm = DSA - privkey, _ := key.Generate(1024) - t.Log(key.String()) - t.Log(key.PrivateKeyString(privkey)) -} - -func TestGenerateRSA(t *testing.T) { - if testing.Short() { - t.Skip("skipping test in short mode.") - } - key := new(DNSKEY) - key.Hdr.Rrtype = TypeDNSKEY - key.Hdr.Name = "miek.nl." - key.Hdr.Class = ClassINET - key.Hdr.Ttl = 14400 - key.Flags = 256 - key.Protocol = 3 - key.Algorithm = RSASHA256 - privkey, _ := key.Generate(1024) - t.Log(key.String()) - t.Log(key.PrivateKeyString(privkey)) -} - -func TestSecure(t *testing.T) { - soa := getSoa() - - sig := new(RRSIG) - sig.Hdr = RR_Header{"miek.nl.", TypeRRSIG, ClassINET, 14400, 0} - sig.TypeCovered = TypeSOA - sig.Algorithm = RSASHA256 - sig.Labels = 2 - sig.Expiration = 1296534305 // date -u '+%s' -d"2011-02-01 04:25:05" - sig.Inception = 1293942305 // date -u '+%s' -d"2011-01-02 04:25:05" - sig.OrigTtl = 14400 - sig.KeyTag = 12051 - sig.SignerName = "miek.nl." - sig.Signature = "oMCbslaAVIp/8kVtLSms3tDABpcPRUgHLrOR48OOplkYo+8TeEGWwkSwaz/MRo2fB4FxW0qj/hTlIjUGuACSd+b1wKdH5GvzRJc2pFmxtCbm55ygAh4EUL0F6U5cKtGJGSXxxg6UFCQ0doJCmiGFa78LolaUOXImJrk6AFrGa0M=" - - key := new(DNSKEY) - key.Hdr.Name = "miek.nl." - key.Hdr.Class = ClassINET - key.Hdr.Ttl = 14400 - key.Flags = 256 - key.Protocol = 3 - key.Algorithm = RSASHA256 - key.PublicKey = "AwEAAcNEU67LJI5GEgF9QLNqLO1SMq1EdoQ6E9f85ha0k0ewQGCblyW2836GiVsm6k8Kr5ECIoMJ6fZWf3CQSQ9ycWfTyOHfmI3eQ/1Covhb2y4bAmL/07PhrL7ozWBW3wBfM335Ft9xjtXHPy7ztCbV9qZ4TVDTW/Iyg0PiwgoXVesz" - - // It should validate. Period is checked separately, so this will keep on working - if sig.Verify(key, []RR{soa}) != nil { - t.Error("failure to validate") - } -} - -func TestSignature(t *testing.T) { - sig := new(RRSIG) - sig.Hdr.Name = "miek.nl." - sig.Hdr.Class = ClassINET - sig.Hdr.Ttl = 3600 - sig.TypeCovered = TypeDNSKEY - sig.Algorithm = RSASHA1 - sig.Labels = 2 - sig.OrigTtl = 4000 - sig.Expiration = 1000 //Thu Jan 1 02:06:40 CET 1970 - sig.Inception = 800 //Thu Jan 1 01:13:20 CET 1970 - sig.KeyTag = 34641 - sig.SignerName = "miek.nl." - sig.Signature = "AwEAAaHIwpx3w4VHKi6i1LHnTaWeHCL154Jug0Rtc9ji5qwPXpBo6A5sRv7cSsPQKPIwxLpyCrbJ4mr2L0EPOdvP6z6YfljK2ZmTbogU9aSU2fiq/4wjxbdkLyoDVgtO+JsxNN4bjr4WcWhsmk1Hg93FV9ZpkWb0Tbad8DFqNDzr//kZ" - - // Should not be valid - if sig.ValidityPeriod(time.Now()) { - t.Error("should not be valid") - } - - sig.Inception = 315565800 //Tue Jan 1 10:10:00 CET 1980 - sig.Expiration = 4102477800 //Fri Jan 1 10:10:00 CET 2100 - if !sig.ValidityPeriod(time.Now()) { - t.Error("should be valid") - } -} - -func TestSignVerify(t *testing.T) { - // The record we want to sign - soa := new(SOA) - soa.Hdr = RR_Header{"miek.nl.", TypeSOA, ClassINET, 14400, 0} - soa.Ns = "open.nlnetlabs.nl." - soa.Mbox = "miekg.atoom.net." - soa.Serial = 1293945905 - soa.Refresh = 14400 - soa.Retry = 3600 - soa.Expire = 604800 - soa.Minttl = 86400 - - soa1 := new(SOA) - soa1.Hdr = RR_Header{"*.miek.nl.", TypeSOA, ClassINET, 14400, 0} - soa1.Ns = "open.nlnetlabs.nl." - soa1.Mbox = "miekg.atoom.net." - soa1.Serial = 1293945905 - soa1.Refresh = 14400 - soa1.Retry = 3600 - soa1.Expire = 604800 - soa1.Minttl = 86400 - - srv := new(SRV) - srv.Hdr = RR_Header{"srv.miek.nl.", TypeSRV, ClassINET, 14400, 0} - srv.Port = 1000 - srv.Weight = 800 - srv.Target = "web1.miek.nl." - - hinfo := &HINFO{ - Hdr: RR_Header{ - Name: "miek.nl.", - Rrtype: TypeHINFO, - Class: ClassINET, - Ttl: 3789, - }, - Cpu: "X", - Os: "Y", - } - - // With this key - key := new(DNSKEY) - key.Hdr.Rrtype = TypeDNSKEY - key.Hdr.Name = "miek.nl." - key.Hdr.Class = ClassINET - key.Hdr.Ttl = 14400 - key.Flags = 256 - key.Protocol = 3 - key.Algorithm = RSASHA256 - privkey, _ := key.Generate(512) - - // Fill in the values of the Sig, before signing - sig := new(RRSIG) - sig.Hdr = RR_Header{"miek.nl.", TypeRRSIG, ClassINET, 14400, 0} - sig.TypeCovered = soa.Hdr.Rrtype - sig.Labels = uint8(CountLabel(soa.Hdr.Name)) // works for all 3 - sig.OrigTtl = soa.Hdr.Ttl - sig.Expiration = 1296534305 // date -u '+%s' -d"2011-02-01 04:25:05" - sig.Inception = 1293942305 // date -u '+%s' -d"2011-01-02 04:25:05" - sig.KeyTag = key.KeyTag() // Get the keyfrom the Key - sig.SignerName = key.Hdr.Name - sig.Algorithm = RSASHA256 - - for _, r := range []RR{soa, soa1, srv, hinfo} { - if err := sig.Sign(privkey.(*rsa.PrivateKey), []RR{r}); err != nil { - t.Error("failure to sign the record:", err) - continue - } - if err := sig.Verify(key, []RR{r}); err != nil { - t.Error("failure to validate") - continue - } - t.Logf("validated: %s", r.Header().Name) - } -} - -func Test65534(t *testing.T) { - t6 := new(RFC3597) - t6.Hdr = RR_Header{"miek.nl.", 65534, ClassINET, 14400, 0} - t6.Rdata = "505D870001" - key := new(DNSKEY) - key.Hdr.Name = "miek.nl." - key.Hdr.Rrtype = TypeDNSKEY - key.Hdr.Class = ClassINET - key.Hdr.Ttl = 14400 - key.Flags = 256 - key.Protocol = 3 - key.Algorithm = RSASHA256 - privkey, _ := key.Generate(1024) - - sig := new(RRSIG) - sig.Hdr = RR_Header{"miek.nl.", TypeRRSIG, ClassINET, 14400, 0} - sig.TypeCovered = t6.Hdr.Rrtype - sig.Labels = uint8(CountLabel(t6.Hdr.Name)) - sig.OrigTtl = t6.Hdr.Ttl - sig.Expiration = 1296534305 // date -u '+%s' -d"2011-02-01 04:25:05" - sig.Inception = 1293942305 // date -u '+%s' -d"2011-01-02 04:25:05" - sig.KeyTag = key.KeyTag() - sig.SignerName = key.Hdr.Name - sig.Algorithm = RSASHA256 - if err := sig.Sign(privkey.(*rsa.PrivateKey), []RR{t6}); err != nil { - t.Error(err) - t.Error("failure to sign the TYPE65534 record") - } - if err := sig.Verify(key, []RR{t6}); err != nil { - t.Error(err) - t.Error("failure to validate") - } else { - t.Logf("validated: %s", t6.Header().Name) - } -} - -func TestDnskey(t *testing.T) { - pubkey, err := ReadRR(strings.NewReader(` -miek.nl. IN DNSKEY 256 3 10 AwEAAZuMCu2FdugHkTrXYgl5qixvcDw1aDDlvL46/xJKbHBAHY16fNUb2b65cwko2Js/aJxUYJbZk5dwCDZxYfrfbZVtDPQuc3o8QaChVxC7/JYz2AHc9qHvqQ1j4VrH71RWINlQo6VYjzN/BGpMhOZoZOEwzp1HfsOE3lNYcoWU1smL ;{id = 5240 (zsk), size = 1024b} -`), "Kmiek.nl.+010+05240.key") - if err != nil { - t.Fatal(err) - } - privStr := `Private-key-format: v1.3 -Algorithm: 10 (RSASHA512) -Modulus: m4wK7YV26AeROtdiCXmqLG9wPDVoMOW8vjr/EkpscEAdjXp81RvZvrlzCSjYmz9onFRgltmTl3AINnFh+t9tlW0M9C5zejxBoKFXELv8ljPYAdz2oe+pDWPhWsfvVFYg2VCjpViPM38EakyE5mhk4TDOnUd+w4TeU1hyhZTWyYs= -PublicExponent: AQAB -PrivateExponent: UfCoIQ/Z38l8vB6SSqOI/feGjHEl/fxIPX4euKf0D/32k30fHbSaNFrFOuIFmWMB3LimWVEs6u3dpbB9CQeCVg7hwU5puG7OtuiZJgDAhNeOnxvo5btp4XzPZrJSxR4WNQnwIiYWbl0aFlL1VGgHC/3By89ENZyWaZcMLW4KGWE= -Prime1: yxwC6ogAu8aVcDx2wg1V0b5M5P6jP8qkRFVMxWNTw60Vkn+ECvw6YAZZBHZPaMyRYZLzPgUlyYRd0cjupy4+fQ== -Prime2: xA1bF8M0RTIQ6+A11AoVG6GIR/aPGg5sogRkIZ7ID/sF6g9HMVU/CM2TqVEBJLRPp73cv6ZeC3bcqOCqZhz+pw== -Exponent1: xzkblyZ96bGYxTVZm2/vHMOXswod4KWIyMoOepK6B/ZPcZoIT6omLCgtypWtwHLfqyCz3MK51Nc0G2EGzg8rFQ== -Exponent2: Pu5+mCEb7T5F+kFNZhQadHUklt0JUHbi3hsEvVoHpEGSw3BGDQrtIflDde0/rbWHgDPM4WQY+hscd8UuTXrvLw== -Coefficient: UuRoNqe7YHnKmQzE6iDWKTMIWTuoqqrFAmXPmKQnC+Y+BQzOVEHUo9bXdDnoI9hzXP1gf8zENMYwYLeWpuYlFQ== -` - privkey, err := pubkey.(*DNSKEY).ReadPrivateKey(strings.NewReader(privStr), - "Kmiek.nl.+010+05240.private") - if err != nil { - t.Fatal(err) - } - if pubkey.(*DNSKEY).PublicKey != "AwEAAZuMCu2FdugHkTrXYgl5qixvcDw1aDDlvL46/xJKbHBAHY16fNUb2b65cwko2Js/aJxUYJbZk5dwCDZxYfrfbZVtDPQuc3o8QaChVxC7/JYz2AHc9qHvqQ1j4VrH71RWINlQo6VYjzN/BGpMhOZoZOEwzp1HfsOE3lNYcoWU1smL" { - t.Error("pubkey is not what we've read") - } - if pubkey.(*DNSKEY).PrivateKeyString(privkey) != privStr { - t.Error("privkey is not what we've read") - t.Errorf("%v", pubkey.(*DNSKEY).PrivateKeyString(privkey)) - } -} - -func TestTag(t *testing.T) { - key := new(DNSKEY) - key.Hdr.Name = "miek.nl." - key.Hdr.Rrtype = TypeDNSKEY - key.Hdr.Class = ClassINET - key.Hdr.Ttl = 3600 - key.Flags = 256 - key.Protocol = 3 - key.Algorithm = RSASHA256 - key.PublicKey = "AwEAAcNEU67LJI5GEgF9QLNqLO1SMq1EdoQ6E9f85ha0k0ewQGCblyW2836GiVsm6k8Kr5ECIoMJ6fZWf3CQSQ9ycWfTyOHfmI3eQ/1Covhb2y4bAmL/07PhrL7ozWBW3wBfM335Ft9xjtXHPy7ztCbV9qZ4TVDTW/Iyg0PiwgoXVesz" - - tag := key.KeyTag() - if tag != 12051 { - t.Errorf("wrong key tag: %d for key %v", tag, key) - } -} - -func TestKeyRSA(t *testing.T) { - if testing.Short() { - t.Skip("skipping test in short mode.") - } - key := new(DNSKEY) - key.Hdr.Name = "miek.nl." - key.Hdr.Rrtype = TypeDNSKEY - key.Hdr.Class = ClassINET - key.Hdr.Ttl = 3600 - key.Flags = 256 - key.Protocol = 3 - key.Algorithm = RSASHA256 - priv, _ := key.Generate(2048) - - soa := new(SOA) - soa.Hdr = RR_Header{"miek.nl.", TypeSOA, ClassINET, 14400, 0} - soa.Ns = "open.nlnetlabs.nl." - soa.Mbox = "miekg.atoom.net." - soa.Serial = 1293945905 - soa.Refresh = 14400 - soa.Retry = 3600 - soa.Expire = 604800 - soa.Minttl = 86400 - - sig := new(RRSIG) - sig.Hdr = RR_Header{"miek.nl.", TypeRRSIG, ClassINET, 14400, 0} - sig.TypeCovered = TypeSOA - sig.Algorithm = RSASHA256 - sig.Labels = 2 - sig.Expiration = 1296534305 // date -u '+%s' -d"2011-02-01 04:25:05" - sig.Inception = 1293942305 // date -u '+%s' -d"2011-01-02 04:25:05" - sig.OrigTtl = soa.Hdr.Ttl - sig.KeyTag = key.KeyTag() - sig.SignerName = key.Hdr.Name - - if err := sig.Sign(priv.(*rsa.PrivateKey), []RR{soa}); err != nil { - t.Error("failed to sign") - return - } - if err := sig.Verify(key, []RR{soa}); err != nil { - t.Error("failed to verify") - } -} - -func TestKeyToDS(t *testing.T) { - key := new(DNSKEY) - key.Hdr.Name = "miek.nl." - key.Hdr.Rrtype = TypeDNSKEY - key.Hdr.Class = ClassINET - key.Hdr.Ttl = 3600 - key.Flags = 256 - key.Protocol = 3 - key.Algorithm = RSASHA256 - key.PublicKey = "AwEAAcNEU67LJI5GEgF9QLNqLO1SMq1EdoQ6E9f85ha0k0ewQGCblyW2836GiVsm6k8Kr5ECIoMJ6fZWf3CQSQ9ycWfTyOHfmI3eQ/1Covhb2y4bAmL/07PhrL7ozWBW3wBfM335Ft9xjtXHPy7ztCbV9qZ4TVDTW/Iyg0PiwgoXVesz" - - ds := key.ToDS(SHA1) - if strings.ToUpper(ds.Digest) != "B5121BDB5B8D86D0CC5FFAFBAAABE26C3E20BAC1" { - t.Errorf("wrong DS digest for SHA1\n%v", ds) - } -} - -func TestSignRSA(t *testing.T) { - pub := "miek.nl. IN DNSKEY 256 3 5 AwEAAb+8lGNCxJgLS8rYVer6EnHVuIkQDghdjdtewDzU3G5R7PbMbKVRvH2Ma7pQyYceoaqWZQirSj72euPWfPxQnMy9ucCylA+FuH9cSjIcPf4PqJfdupHk9X6EBYjxrCLY4p1/yBwgyBIRJtZtAqM3ceAH2WovEJD6rTtOuHo5AluJ" - - priv := `Private-key-format: v1.3 -Algorithm: 5 (RSASHA1) -Modulus: v7yUY0LEmAtLythV6voScdW4iRAOCF2N217APNTcblHs9sxspVG8fYxrulDJhx6hqpZlCKtKPvZ649Z8/FCczL25wLKUD4W4f1xKMhw9/g+ol926keT1foQFiPGsItjinX/IHCDIEhEm1m0Cozdx4AfZai8QkPqtO064ejkCW4k= -PublicExponent: AQAB -PrivateExponent: YPwEmwjk5HuiROKU4xzHQ6l1hG8Iiha4cKRG3P5W2b66/EN/GUh07ZSf0UiYB67o257jUDVEgwCuPJz776zfApcCB4oGV+YDyEu7Hp/rL8KcSN0la0k2r9scKwxTp4BTJT23zyBFXsV/1wRDK1A5NxsHPDMYi2SoK63Enm/1ptk= -Prime1: /wjOG+fD0ybNoSRn7nQ79udGeR1b0YhUA5mNjDx/x2fxtIXzygYk0Rhx9QFfDy6LOBvz92gbNQlzCLz3DJt5hw== -Prime2: wHZsJ8OGhkp5p3mrJFZXMDc2mbYusDVTA+t+iRPdS797Tj0pjvU2HN4vTnTj8KBQp6hmnY7dLp9Y1qserySGbw== -Exponent1: N0A7FsSRIg+IAN8YPQqlawoTtG1t1OkJ+nWrurPootScApX6iMvn8fyvw3p2k51rv84efnzpWAYiC8SUaQDNxQ== -Exponent2: SvuYRaGyvo0zemE3oS+WRm2scxR8eiA8WJGeOc+obwOKCcBgeZblXzfdHGcEC1KaOcetOwNW/vwMA46lpLzJNw== -Coefficient: 8+7ZN/JgByqv0NfULiFKTjtyegUcijRuyij7yNxYbCBneDvZGxJwKNi4YYXWx743pcAj4Oi4Oh86gcmxLs+hGw== -Created: 20110302104537 -Publish: 20110302104537 -Activate: 20110302104537` - - xk, _ := NewRR(pub) - k := xk.(*DNSKEY) - p, err := k.NewPrivateKey(priv) - if err != nil { - t.Error(err) - } - switch priv := p.(type) { - case *rsa.PrivateKey: - if 65537 != priv.PublicKey.E { - t.Error("exponenent should be 65537") - } - default: - t.Errorf("we should have read an RSA key: %v", priv) - } - if k.KeyTag() != 37350 { - t.Errorf("keytag should be 37350, got %d %v", k.KeyTag(), k) - } - - soa := new(SOA) - soa.Hdr = RR_Header{"miek.nl.", TypeSOA, ClassINET, 14400, 0} - soa.Ns = "open.nlnetlabs.nl." - soa.Mbox = "miekg.atoom.net." - soa.Serial = 1293945905 - soa.Refresh = 14400 - soa.Retry = 3600 - soa.Expire = 604800 - soa.Minttl = 86400 - - sig := new(RRSIG) - sig.Hdr = RR_Header{"miek.nl.", TypeRRSIG, ClassINET, 14400, 0} - sig.Expiration = 1296534305 // date -u '+%s' -d"2011-02-01 04:25:05" - sig.Inception = 1293942305 // date -u '+%s' -d"2011-01-02 04:25:05" - sig.KeyTag = k.KeyTag() - sig.SignerName = k.Hdr.Name - sig.Algorithm = k.Algorithm - - sig.Sign(p.(*rsa.PrivateKey), []RR{soa}) - if sig.Signature != "D5zsobpQcmMmYsUMLxCVEtgAdCvTu8V/IEeP4EyLBjqPJmjt96bwM9kqihsccofA5LIJ7DN91qkCORjWSTwNhzCv7bMyr2o5vBZElrlpnRzlvsFIoAZCD9xg6ZY7ZyzUJmU6IcTwG4v3xEYajcpbJJiyaw/RqR90MuRdKPiBzSo=" { - t.Errorf("signature is not correct: %v", sig) - } -} - -func TestSignVerifyECDSA(t *testing.T) { - pub := `example.net. 3600 IN DNSKEY 257 3 14 ( - xKYaNhWdGOfJ+nPrL8/arkwf2EY3MDJ+SErKivBVSum1 - w/egsXvSADtNJhyem5RCOpgQ6K8X1DRSEkrbYQ+OB+v8 - /uX45NBwY8rp65F6Glur8I/mlVNgF6W/qTI37m40 )` - priv := `Private-key-format: v1.2 -Algorithm: 14 (ECDSAP384SHA384) -PrivateKey: WURgWHCcYIYUPWgeLmiPY2DJJk02vgrmTfitxgqcL4vwW7BOrbawVmVe0d9V94SR` - - eckey, err := NewRR(pub) - if err != nil { - t.Fatal(err) - } - privkey, err := eckey.(*DNSKEY).NewPrivateKey(priv) - if err != nil { - t.Fatal(err) - } - // TODO: Create separate test for this - ds := eckey.(*DNSKEY).ToDS(SHA384) - if ds.KeyTag != 10771 { - t.Fatal("wrong keytag on DS") - } - if ds.Digest != "72d7b62976ce06438e9c0bf319013cf801f09ecc84b8d7e9495f27e305c6a9b0563a9b5f4d288405c3008a946df983d6" { - t.Fatal("wrong DS Digest") - } - a, _ := NewRR("www.example.net. 3600 IN A 192.0.2.1") - sig := new(RRSIG) - sig.Hdr = RR_Header{"example.net.", TypeRRSIG, ClassINET, 14400, 0} - sig.Expiration, _ = StringToTime("20100909102025") - sig.Inception, _ = StringToTime("20100812102025") - sig.KeyTag = eckey.(*DNSKEY).KeyTag() - sig.SignerName = eckey.(*DNSKEY).Hdr.Name - sig.Algorithm = eckey.(*DNSKEY).Algorithm - - if sig.Sign(privkey.(*ecdsa.PrivateKey), []RR{a}) != nil { - t.Fatal("failure to sign the record") - } - - if err := sig.Verify(eckey.(*DNSKEY), []RR{a}); err != nil { - t.Fatalf("Failure to validate:\n%s\n%s\n%s\n\n%s\n\n%v", - eckey.(*DNSKEY).String(), - a.String(), - sig.String(), - eckey.(*DNSKEY).PrivateKeyString(privkey), - err, - ) - } -} - -func TestSignVerifyECDSA2(t *testing.T) { - srv1, err := NewRR("srv.miek.nl. IN SRV 1000 800 0 web1.miek.nl.") - if err != nil { - t.Fatal(err) - } - srv := srv1.(*SRV) - - // With this key - key := new(DNSKEY) - key.Hdr.Rrtype = TypeDNSKEY - key.Hdr.Name = "miek.nl." - key.Hdr.Class = ClassINET - key.Hdr.Ttl = 14400 - key.Flags = 256 - key.Protocol = 3 - key.Algorithm = ECDSAP256SHA256 - privkey, err := key.Generate(256) - if err != nil { - t.Fatal("failure to generate key") - } - - // Fill in the values of the Sig, before signing - sig := new(RRSIG) - sig.Hdr = RR_Header{"miek.nl.", TypeRRSIG, ClassINET, 14400, 0} - sig.TypeCovered = srv.Hdr.Rrtype - sig.Labels = uint8(CountLabel(srv.Hdr.Name)) // works for all 3 - sig.OrigTtl = srv.Hdr.Ttl - sig.Expiration = 1296534305 // date -u '+%s' -d"2011-02-01 04:25:05" - sig.Inception = 1293942305 // date -u '+%s' -d"2011-01-02 04:25:05" - sig.KeyTag = key.KeyTag() // Get the keyfrom the Key - sig.SignerName = key.Hdr.Name - sig.Algorithm = ECDSAP256SHA256 - - if sig.Sign(privkey.(*ecdsa.PrivateKey), []RR{srv}) != nil { - t.Fatal("failure to sign the record") - } - - err = sig.Verify(key, []RR{srv}) - if err != nil { - t.Logf("Failure to validate:\n%s\n%s\n%s\n\n%s\n\n%v", - key.String(), - srv.String(), - sig.String(), - key.PrivateKeyString(privkey), - err, - ) - } -} - -// Here the test vectors from the relevant RFCs are checked. -// rfc6605 6.1 -func TestRFC6605P256(t *testing.T) { - exDNSKEY := `example.net. 3600 IN DNSKEY 257 3 13 ( - GojIhhXUN/u4v54ZQqGSnyhWJwaubCvTmeexv7bR6edb - krSqQpF64cYbcB7wNcP+e+MAnLr+Wi9xMWyQLc8NAA== )` - exPriv := `Private-key-format: v1.2 -Algorithm: 13 (ECDSAP256SHA256) -PrivateKey: GU6SnQ/Ou+xC5RumuIUIuJZteXT2z0O/ok1s38Et6mQ=` - rrDNSKEY, err := NewRR(exDNSKEY) - if err != nil { - t.Fatal(err) - } - priv, err := rrDNSKEY.(*DNSKEY).NewPrivateKey(exPriv) - if err != nil { - t.Fatal(err) - } - - exDS := `example.net. 3600 IN DS 55648 13 2 ( - b4c8c1fe2e7477127b27115656ad6256f424625bf5c1 - e2770ce6d6e37df61d17 )` - rrDS, err := NewRR(exDS) - if err != nil { - t.Fatal(err) - } - ourDS := rrDNSKEY.(*DNSKEY).ToDS(SHA256) - if !reflect.DeepEqual(ourDS, rrDS.(*DS)) { - t.Errorf("DS record differs:\n%v\n%v", ourDS, rrDS.(*DS)) - } - - exA := `www.example.net. 3600 IN A 192.0.2.1` - exRRSIG := `www.example.net. 3600 IN RRSIG A 13 3 3600 ( - 20100909100439 20100812100439 55648 example.net. - qx6wLYqmh+l9oCKTN6qIc+bw6ya+KJ8oMz0YP107epXA - yGmt+3SNruPFKG7tZoLBLlUzGGus7ZwmwWep666VCw== )` - rrA, err := NewRR(exA) - if err != nil { - t.Fatal(err) - } - rrRRSIG, err := NewRR(exRRSIG) - if err != nil { - t.Fatal(err) - } - if err = rrRRSIG.(*RRSIG).Verify(rrDNSKEY.(*DNSKEY), []RR{rrA}); err != nil { - t.Errorf("Failure to validate the spec RRSIG: %v", err) - } - - ourRRSIG := &RRSIG{ - Hdr: RR_Header{ - Ttl: rrA.Header().Ttl, - }, - KeyTag: rrDNSKEY.(*DNSKEY).KeyTag(), - SignerName: rrDNSKEY.(*DNSKEY).Hdr.Name, - Algorithm: rrDNSKEY.(*DNSKEY).Algorithm, - } - ourRRSIG.Expiration, _ = StringToTime("20100909100439") - ourRRSIG.Inception, _ = StringToTime("20100812100439") - err = ourRRSIG.Sign(priv.(*ecdsa.PrivateKey), []RR{rrA}) - if err != nil { - t.Fatal(err) - } - - if err = ourRRSIG.Verify(rrDNSKEY.(*DNSKEY), []RR{rrA}); err != nil { - t.Errorf("Failure to validate our RRSIG: %v", err) - } - - // Signatures are randomized - rrRRSIG.(*RRSIG).Signature = "" - ourRRSIG.Signature = "" - if !reflect.DeepEqual(ourRRSIG, rrRRSIG.(*RRSIG)) { - t.Fatalf("RRSIG record differs:\n%v\n%v", ourRRSIG, rrRRSIG.(*RRSIG)) - } -} - -// rfc6605 6.2 -func TestRFC6605P384(t *testing.T) { - exDNSKEY := `example.net. 3600 IN DNSKEY 257 3 14 ( - xKYaNhWdGOfJ+nPrL8/arkwf2EY3MDJ+SErKivBVSum1 - w/egsXvSADtNJhyem5RCOpgQ6K8X1DRSEkrbYQ+OB+v8 - /uX45NBwY8rp65F6Glur8I/mlVNgF6W/qTI37m40 )` - exPriv := `Private-key-format: v1.2 -Algorithm: 14 (ECDSAP384SHA384) -PrivateKey: WURgWHCcYIYUPWgeLmiPY2DJJk02vgrmTfitxgqcL4vwW7BOrbawVmVe0d9V94SR` - rrDNSKEY, err := NewRR(exDNSKEY) - if err != nil { - t.Fatal(err) - } - priv, err := rrDNSKEY.(*DNSKEY).NewPrivateKey(exPriv) - if err != nil { - t.Fatal(err) - } - - exDS := `example.net. 3600 IN DS 10771 14 4 ( - 72d7b62976ce06438e9c0bf319013cf801f09ecc84b8 - d7e9495f27e305c6a9b0563a9b5f4d288405c3008a94 - 6df983d6 )` - rrDS, err := NewRR(exDS) - if err != nil { - t.Fatal(err) - } - ourDS := rrDNSKEY.(*DNSKEY).ToDS(SHA384) - if !reflect.DeepEqual(ourDS, rrDS.(*DS)) { - t.Fatalf("DS record differs:\n%v\n%v", ourDS, rrDS.(*DS)) - } - - exA := `www.example.net. 3600 IN A 192.0.2.1` - exRRSIG := `www.example.net. 3600 IN RRSIG A 14 3 3600 ( - 20100909102025 20100812102025 10771 example.net. - /L5hDKIvGDyI1fcARX3z65qrmPsVz73QD1Mr5CEqOiLP - 95hxQouuroGCeZOvzFaxsT8Glr74hbavRKayJNuydCuz - WTSSPdz7wnqXL5bdcJzusdnI0RSMROxxwGipWcJm )` - rrA, err := NewRR(exA) - if err != nil { - t.Fatal(err) - } - rrRRSIG, err := NewRR(exRRSIG) - if err != nil { - t.Fatal(err) - } - if err = rrRRSIG.(*RRSIG).Verify(rrDNSKEY.(*DNSKEY), []RR{rrA}); err != nil { - t.Errorf("Failure to validate the spec RRSIG: %v", err) - } - - ourRRSIG := &RRSIG{ - Hdr: RR_Header{ - Ttl: rrA.Header().Ttl, - }, - KeyTag: rrDNSKEY.(*DNSKEY).KeyTag(), - SignerName: rrDNSKEY.(*DNSKEY).Hdr.Name, - Algorithm: rrDNSKEY.(*DNSKEY).Algorithm, - } - ourRRSIG.Expiration, _ = StringToTime("20100909102025") - ourRRSIG.Inception, _ = StringToTime("20100812102025") - err = ourRRSIG.Sign(priv.(*ecdsa.PrivateKey), []RR{rrA}) - if err != nil { - t.Fatal(err) - } - - if err = ourRRSIG.Verify(rrDNSKEY.(*DNSKEY), []RR{rrA}); err != nil { - t.Errorf("Failure to validate our RRSIG: %v", err) - } - - // Signatures are randomized - rrRRSIG.(*RRSIG).Signature = "" - ourRRSIG.Signature = "" - if !reflect.DeepEqual(ourRRSIG, rrRRSIG.(*RRSIG)) { - t.Fatalf("RRSIG record differs:\n%v\n%v", ourRRSIG, rrRRSIG.(*RRSIG)) - } -} - -func TestInvalidRRSet(t *testing.T) { - goodRecords := make([]RR, 2) - goodRecords[0] = &TXT{Hdr: RR_Header{Name: "name.cloudflare.com.", Rrtype: TypeTXT, Class: ClassINET, Ttl: 0}, Txt: []string{"Hello world"}} - goodRecords[1] = &TXT{Hdr: RR_Header{Name: "name.cloudflare.com.", Rrtype: TypeTXT, Class: ClassINET, Ttl: 0}, Txt: []string{"_o/"}} - - // Generate key - keyname := "cloudflare.com." - key := &DNSKEY{ - Hdr: RR_Header{Name: keyname, Rrtype: TypeDNSKEY, Class: ClassINET, Ttl: 0}, - Algorithm: ECDSAP256SHA256, - Flags: ZONE, - Protocol: 3, - } - privatekey, err := key.Generate(256) - if err != nil { - t.Fatal(err.Error()) - } - - // Need to fill in: Inception, Expiration, KeyTag, SignerName and Algorithm - curTime := time.Now() - signature := &RRSIG{ - Inception: uint32(curTime.Unix()), - Expiration: uint32(curTime.Add(time.Hour).Unix()), - KeyTag: key.KeyTag(), - SignerName: keyname, - Algorithm: ECDSAP256SHA256, - } - - // Inconsistent name between records - badRecords := make([]RR, 2) - badRecords[0] = &TXT{Hdr: RR_Header{Name: "name.cloudflare.com.", Rrtype: TypeTXT, Class: ClassINET, Ttl: 0}, Txt: []string{"Hello world"}} - badRecords[1] = &TXT{Hdr: RR_Header{Name: "nama.cloudflare.com.", Rrtype: TypeTXT, Class: ClassINET, Ttl: 0}, Txt: []string{"_o/"}} - - if IsRRset(badRecords) { - t.Fatal("Record set with inconsistent names considered valid") - } - - badRecords[0] = &TXT{Hdr: RR_Header{Name: "name.cloudflare.com.", Rrtype: TypeTXT, Class: ClassINET, Ttl: 0}, Txt: []string{"Hello world"}} - badRecords[1] = &A{Hdr: RR_Header{Name: "name.cloudflare.com.", Rrtype: TypeA, Class: ClassINET, Ttl: 0}} - - if IsRRset(badRecords) { - t.Fatal("Record set with inconsistent record types considered valid") - } - - badRecords[0] = &TXT{Hdr: RR_Header{Name: "name.cloudflare.com.", Rrtype: TypeTXT, Class: ClassINET, Ttl: 0}, Txt: []string{"Hello world"}} - badRecords[1] = &TXT{Hdr: RR_Header{Name: "name.cloudflare.com.", Rrtype: TypeTXT, Class: ClassCHAOS, Ttl: 0}, Txt: []string{"_o/"}} - - if IsRRset(badRecords) { - t.Fatal("Record set with inconsistent record class considered valid") - } - - // Sign the good record set and then make sure verification fails on the bad record set - if err := signature.Sign(privatekey.(crypto.Signer), goodRecords); err != nil { - t.Fatal("Signing good records failed") - } - - if err := signature.Verify(key, badRecords); err != ErrRRset { - t.Fatal("Verification did not return ErrRRset with inconsistent records") - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/doc.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/doc.go deleted file mode 100644 index 89eace59..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/doc.go +++ /dev/null @@ -1,251 +0,0 @@ -/* -Package dns implements a full featured interface to the Domain Name System. -Server- and client-side programming is supported. -The package allows complete control over what is send out to the DNS. The package -API follows the less-is-more principle, by presenting a small, clean interface. - -The package dns supports (asynchronous) querying/replying, incoming/outgoing zone transfers, -TSIG, EDNS0, dynamic updates, notifies and DNSSEC validation/signing. -Note that domain names MUST be fully qualified, before sending them, unqualified -names in a message will result in a packing failure. - -Resource records are native types. They are not stored in wire format. -Basic usage pattern for creating a new resource record: - - r := new(dns.MX) - r.Hdr = dns.RR_Header{Name: "miek.nl.", Rrtype: dns.TypeMX, - Class: dns.ClassINET, Ttl: 3600} - r.Preference = 10 - r.Mx = "mx.miek.nl." - -Or directly from a string: - - mx, err := dns.NewRR("miek.nl. 3600 IN MX 10 mx.miek.nl.") - -Or when the default TTL (3600) and class (IN) suit you: - - mx, err := dns.NewRR("miek.nl. MX 10 mx.miek.nl.") - -Or even: - - mx, err := dns.NewRR("$ORIGIN nl.\nmiek 1H IN MX 10 mx.miek") - -In the DNS messages are exchanged, these messages contain resource -records (sets). Use pattern for creating a message: - - m := new(dns.Msg) - m.SetQuestion("miek.nl.", dns.TypeMX) - -Or when not certain if the domain name is fully qualified: - - m.SetQuestion(dns.Fqdn("miek.nl"), dns.TypeMX) - -The message m is now a message with the question section set to ask -the MX records for the miek.nl. zone. - -The following is slightly more verbose, but more flexible: - - m1 := new(dns.Msg) - m1.Id = dns.Id() - m1.RecursionDesired = true - m1.Question = make([]dns.Question, 1) - m1.Question[0] = dns.Question{"miek.nl.", dns.TypeMX, dns.ClassINET} - -After creating a message it can be send. -Basic use pattern for synchronous querying the DNS at a -server configured on 127.0.0.1 and port 53: - - c := new(dns.Client) - in, rtt, err := c.Exchange(m1, "127.0.0.1:53") - -Suppressing multiple outstanding queries (with the same question, type and -class) is as easy as setting: - - c.SingleInflight = true - -If these "advanced" features are not needed, a simple UDP query can be send, -with: - - in, err := dns.Exchange(m1, "127.0.0.1:53") - -When this functions returns you will get dns message. A dns message consists -out of four sections. -The question section: in.Question, the answer section: in.Answer, -the authority section: in.Ns and the additional section: in.Extra. - -Each of these sections (except the Question section) contain a []RR. Basic -use pattern for accessing the rdata of a TXT RR as the first RR in -the Answer section: - - if t, ok := in.Answer[0].(*dns.TXT); ok { - // do something with t.Txt - } - -Domain Name and TXT Character String Representations - -Both domain names and TXT character strings are converted to presentation -form both when unpacked and when converted to strings. - -For TXT character strings, tabs, carriage returns and line feeds will be -converted to \t, \r and \n respectively. Back slashes and quotations marks -will be escaped. Bytes below 32 and above 127 will be converted to \DDD -form. - -For domain names, in addition to the above rules brackets, periods, -spaces, semicolons and the at symbol are escaped. - -DNSSEC - -DNSSEC (DNS Security Extension) adds a layer of security to the DNS. It -uses public key cryptography to sign resource records. The -public keys are stored in DNSKEY records and the signatures in RRSIG records. - -Requesting DNSSEC information for a zone is done by adding the DO (DNSSEC OK) bit -to an request. - - m := new(dns.Msg) - m.SetEdns0(4096, true) - -Signature generation, signature verification and key generation are all supported. - -DYNAMIC UPDATES - -Dynamic updates reuses the DNS message format, but renames three of -the sections. Question is Zone, Answer is Prerequisite, Authority is -Update, only the Additional is not renamed. See RFC 2136 for the gory details. - -You can set a rather complex set of rules for the existence of absence of -certain resource records or names in a zone to specify if resource records -should be added or removed. The table from RFC 2136 supplemented with the Go -DNS function shows which functions exist to specify the prerequisites. - - 3.2.4 - Table Of Metavalues Used In Prerequisite Section - - CLASS TYPE RDATA Meaning Function - -------------------------------------------------------------- - ANY ANY empty Name is in use dns.NameUsed - ANY rrset empty RRset exists (value indep) dns.RRsetUsed - NONE ANY empty Name is not in use dns.NameNotUsed - NONE rrset empty RRset does not exist dns.RRsetNotUsed - zone rrset rr RRset exists (value dep) dns.Used - -The prerequisite section can also be left empty. -If you have decided on the prerequisites you can tell what RRs should -be added or deleted. The next table shows the options you have and -what functions to call. - - 3.4.2.6 - Table Of Metavalues Used In Update Section - - CLASS TYPE RDATA Meaning Function - --------------------------------------------------------------- - ANY ANY empty Delete all RRsets from name dns.RemoveName - ANY rrset empty Delete an RRset dns.RemoveRRset - NONE rrset rr Delete an RR from RRset dns.Remove - zone rrset rr Add to an RRset dns.Insert - -TRANSACTION SIGNATURE - -An TSIG or transaction signature adds a HMAC TSIG record to each message sent. -The supported algorithms include: HmacMD5, HmacSHA1, HmacSHA256 and HmacSHA512. - -Basic use pattern when querying with a TSIG name "axfr." (note that these key names -must be fully qualified - as they are domain names) and the base64 secret -"so6ZGir4GPAqINNh9U5c3A==": - - c := new(dns.Client) - c.TsigSecret = map[string]string{"axfr.": "so6ZGir4GPAqINNh9U5c3A=="} - m := new(dns.Msg) - m.SetQuestion("miek.nl.", dns.TypeMX) - m.SetTsig("axfr.", dns.HmacMD5, 300, time.Now().Unix()) - ... - // When sending the TSIG RR is calculated and filled in before sending - -When requesting an zone transfer (almost all TSIG usage is when requesting zone transfers), with -TSIG, this is the basic use pattern. In this example we request an AXFR for -miek.nl. with TSIG key named "axfr." and secret "so6ZGir4GPAqINNh9U5c3A==" -and using the server 176.58.119.54: - - t := new(dns.Transfer) - m := new(dns.Msg) - t.TsigSecret = map[string]string{"axfr.": "so6ZGir4GPAqINNh9U5c3A=="} - m.SetAxfr("miek.nl.") - m.SetTsig("axfr.", dns.HmacMD5, 300, time.Now().Unix()) - c, err := t.In(m, "176.58.119.54:53") - for r := range c { ... } - -You can now read the records from the transfer as they come in. Each envelope is checked with TSIG. -If something is not correct an error is returned. - -Basic use pattern validating and replying to a message that has TSIG set. - - server := &dns.Server{Addr: ":53", Net: "udp"} - server.TsigSecret = map[string]string{"axfr.": "so6ZGir4GPAqINNh9U5c3A=="} - go server.ListenAndServe() - dns.HandleFunc(".", handleRequest) - - func handleRequest(w dns.ResponseWriter, r *dns.Msg) { - m := new(dns.Msg) - m.SetReply(r) - if r.IsTsig() { - if w.TsigStatus() == nil { - // *Msg r has an TSIG record and it was validated - m.SetTsig("axfr.", dns.HmacMD5, 300, time.Now().Unix()) - } else { - // *Msg r has an TSIG records and it was not valided - } - } - w.WriteMsg(m) - } - -PRIVATE RRS - -RFC 6895 sets aside a range of type codes for private use. This range -is 65,280 - 65,534 (0xFF00 - 0xFFFE). When experimenting with new Resource Records these -can be used, before requesting an official type code from IANA. - -see http://miek.nl/posts/2014/Sep/21/Private%20RRs%20and%20IDN%20in%20Go%20DNS/ for more -information. - -EDNS0 - -EDNS0 is an extension mechanism for the DNS defined in RFC 2671 and updated -by RFC 6891. It defines an new RR type, the OPT RR, which is then completely -abused. -Basic use pattern for creating an (empty) OPT RR: - - o := new(dns.OPT) - o.Hdr.Name = "." // MUST be the root zone, per definition. - o.Hdr.Rrtype = dns.TypeOPT - -The rdata of an OPT RR consists out of a slice of EDNS0 (RFC 6891) -interfaces. Currently only a few have been standardized: EDNS0_NSID -(RFC 5001) and EDNS0_SUBNET (draft-vandergaast-edns-client-subnet-02). Note -that these options may be combined in an OPT RR. -Basic use pattern for a server to check if (and which) options are set: - - // o is a dns.OPT - for _, s := range o.Option { - switch e := s.(type) { - case *dns.EDNS0_NSID: - // do stuff with e.Nsid - case *dns.EDNS0_SUBNET: - // access e.Family, e.Address, etc. - } - } - -SIG(0) - -From RFC 2931: - - SIG(0) provides protection for DNS transactions and requests .... - ... protection for glue records, DNS requests, protection for message headers - on requests and responses, and protection of the overall integrity of a response. - -It works like TSIG, except that SIG(0) uses public key cryptography, instead of the shared -secret approach in TSIG. -Supported algorithms: DSA, ECDSAP256SHA256, ECDSAP384SHA384, RSASHA1, RSASHA256 and -RSASHA512. - -Signing subsequent messages in multi-message sessions is not implemented. -*/ -package dns diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dyn_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dyn_test.go deleted file mode 100644 index 09986a5e..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/dyn_test.go +++ /dev/null @@ -1,3 +0,0 @@ -package dns - -// Find better solution diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/edns.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/edns.go deleted file mode 100644 index 0c47f6ea..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/edns.go +++ /dev/null @@ -1,505 +0,0 @@ -package dns - -import ( - "encoding/hex" - "errors" - "net" - "strconv" -) - -// EDNS0 Option codes. -const ( - EDNS0LLQ = 0x1 // long lived queries: http://tools.ietf.org/html/draft-sekar-dns-llq-01 - EDNS0UL = 0x2 // update lease draft: http://files.dns-sd.org/draft-sekar-dns-ul.txt - EDNS0NSID = 0x3 // nsid (RFC5001) - EDNS0DAU = 0x5 // DNSSEC Algorithm Understood - EDNS0DHU = 0x6 // DS Hash Understood - EDNS0N3U = 0x7 // NSEC3 Hash Understood - EDNS0SUBNET = 0x8 // client-subnet (RFC6891) - EDNS0EXPIRE = 0x9 // EDNS0 expire - EDNS0SUBNETDRAFT = 0x50fa // Don't use! Use EDNS0SUBNET - EDNS0LOCALSTART = 0xFDE9 // Beginning of range reserved for local/experimental use (RFC6891) - EDNS0LOCALEND = 0xFFFE // End of range reserved for local/experimental use (RFC6891) - _DO = 1 << 15 // dnssec ok -) - -// OPT is the EDNS0 RR appended to messages to convey extra (meta) information. -// See RFC 6891. -type OPT struct { - Hdr RR_Header - Option []EDNS0 `dns:"opt"` -} - -func (rr *OPT) String() string { - s := "\n;; OPT PSEUDOSECTION:\n; EDNS: version " + strconv.Itoa(int(rr.Version())) + "; " - if rr.Do() { - s += "flags: do; " - } else { - s += "flags: ; " - } - s += "udp: " + strconv.Itoa(int(rr.UDPSize())) - - for _, o := range rr.Option { - switch o.(type) { - case *EDNS0_NSID: - s += "\n; NSID: " + o.String() - h, e := o.pack() - var r string - if e == nil { - for _, c := range h { - r += "(" + string(c) + ")" - } - s += " " + r - } - case *EDNS0_SUBNET: - s += "\n; SUBNET: " + o.String() - if o.(*EDNS0_SUBNET).DraftOption { - s += " (draft)" - } - case *EDNS0_UL: - s += "\n; UPDATE LEASE: " + o.String() - case *EDNS0_LLQ: - s += "\n; LONG LIVED QUERIES: " + o.String() - case *EDNS0_DAU: - s += "\n; DNSSEC ALGORITHM UNDERSTOOD: " + o.String() - case *EDNS0_DHU: - s += "\n; DS HASH UNDERSTOOD: " + o.String() - case *EDNS0_N3U: - s += "\n; NSEC3 HASH UNDERSTOOD: " + o.String() - case *EDNS0_LOCAL: - s += "\n; LOCAL OPT: " + o.String() - } - } - return s -} - -func (rr *OPT) len() int { - l := rr.Hdr.len() - for i := 0; i < len(rr.Option); i++ { - l += 4 // Account for 2-byte option code and 2-byte option length. - lo, _ := rr.Option[i].pack() - l += len(lo) - } - return l -} - -// return the old value -> delete SetVersion? - -// Version returns the EDNS version used. Only zero is defined. -func (rr *OPT) Version() uint8 { - return uint8((rr.Hdr.Ttl & 0x00FF0000) >> 16) -} - -// SetVersion sets the version of EDNS. This is usually zero. -func (rr *OPT) SetVersion(v uint8) { - rr.Hdr.Ttl = rr.Hdr.Ttl&0xFF00FFFF | (uint32(v) << 16) -} - -// ExtendedRcode returns the EDNS extended RCODE field (the upper 8 bits of the TTL). -func (rr *OPT) ExtendedRcode() uint8 { - return uint8((rr.Hdr.Ttl & 0xFF000000) >> 24) -} - -// SetExtendedRcode sets the EDNS extended RCODE field. -func (rr *OPT) SetExtendedRcode(v uint8) { - rr.Hdr.Ttl = rr.Hdr.Ttl&0x00FFFFFF | (uint32(v) << 24) -} - -// UDPSize returns the UDP buffer size. -func (rr *OPT) UDPSize() uint16 { - return rr.Hdr.Class -} - -// SetUDPSize sets the UDP buffer size. -func (rr *OPT) SetUDPSize(size uint16) { - rr.Hdr.Class = size -} - -// Do returns the value of the DO (DNSSEC OK) bit. -func (rr *OPT) Do() bool { - return rr.Hdr.Ttl&_DO == _DO -} - -// SetDo sets the DO (DNSSEC OK) bit. -func (rr *OPT) SetDo() { - rr.Hdr.Ttl |= _DO -} - -// EDNS0 defines an EDNS0 Option. An OPT RR can have multiple options appended to -// it. -type EDNS0 interface { - // Option returns the option code for the option. - Option() uint16 - // pack returns the bytes of the option data. - pack() ([]byte, error) - // unpack sets the data as found in the buffer. Is also sets - // the length of the slice as the length of the option data. - unpack([]byte) error - // String returns the string representation of the option. - String() string -} - -// The nsid EDNS0 option is used to retrieve a nameserver -// identifier. When sending a request Nsid must be set to the empty string -// The identifier is an opaque string encoded as hex. -// Basic use pattern for creating an nsid option: -// -// o := new(dns.OPT) -// o.Hdr.Name = "." -// o.Hdr.Rrtype = dns.TypeOPT -// e := new(dns.EDNS0_NSID) -// e.Code = dns.EDNS0NSID -// e.Nsid = "AA" -// o.Option = append(o.Option, e) -type EDNS0_NSID struct { - Code uint16 // Always EDNS0NSID - Nsid string // This string needs to be hex encoded -} - -func (e *EDNS0_NSID) pack() ([]byte, error) { - h, err := hex.DecodeString(e.Nsid) - if err != nil { - return nil, err - } - return h, nil -} - -func (e *EDNS0_NSID) Option() uint16 { return EDNS0NSID } -func (e *EDNS0_NSID) unpack(b []byte) error { e.Nsid = hex.EncodeToString(b); return nil } -func (e *EDNS0_NSID) String() string { return string(e.Nsid) } - -// EDNS0_SUBNET is the subnet option that is used to give the remote nameserver -// an idea of where the client lives. It can then give back a different -// answer depending on the location or network topology. -// Basic use pattern for creating an subnet option: -// -// o := new(dns.OPT) -// o.Hdr.Name = "." -// o.Hdr.Rrtype = dns.TypeOPT -// e := new(dns.EDNS0_SUBNET) -// e.Code = dns.EDNS0SUBNET -// e.Family = 1 // 1 for IPv4 source address, 2 for IPv6 -// e.NetMask = 32 // 32 for IPV4, 128 for IPv6 -// e.SourceScope = 0 -// e.Address = net.ParseIP("127.0.0.1").To4() // for IPv4 -// // e.Address = net.ParseIP("2001:7b8:32a::2") // for IPV6 -// o.Option = append(o.Option, e) -// -// Note: the spec (draft-ietf-dnsop-edns-client-subnet-00) has some insane logic -// for which netmask applies to the address. This code will parse all the -// available bits when unpacking (up to optlen). When packing it will apply -// SourceNetmask. If you need more advanced logic, patches welcome and good luck. -type EDNS0_SUBNET struct { - Code uint16 // Always EDNS0SUBNET - Family uint16 // 1 for IP, 2 for IP6 - SourceNetmask uint8 - SourceScope uint8 - Address net.IP - DraftOption bool // Set to true if using the old (0x50fa) option code -} - -func (e *EDNS0_SUBNET) Option() uint16 { - if e.DraftOption { - return EDNS0SUBNETDRAFT - } - return EDNS0SUBNET -} - -func (e *EDNS0_SUBNET) pack() ([]byte, error) { - b := make([]byte, 4) - b[0], b[1] = packUint16(e.Family) - b[2] = e.SourceNetmask - b[3] = e.SourceScope - switch e.Family { - case 1: - if e.SourceNetmask > net.IPv4len*8 { - return nil, errors.New("dns: bad netmask") - } - if len(e.Address.To4()) != net.IPv4len { - return nil, errors.New("dns: bad address") - } - ip := e.Address.To4().Mask(net.CIDRMask(int(e.SourceNetmask), net.IPv4len*8)) - needLength := (e.SourceNetmask + 8 - 1) / 8 // division rounding up - b = append(b, ip[:needLength]...) - case 2: - if e.SourceNetmask > net.IPv6len*8 { - return nil, errors.New("dns: bad netmask") - } - if len(e.Address) != net.IPv6len { - return nil, errors.New("dns: bad address") - } - ip := e.Address.Mask(net.CIDRMask(int(e.SourceNetmask), net.IPv6len*8)) - needLength := (e.SourceNetmask + 8 - 1) / 8 // division rounding up - b = append(b, ip[:needLength]...) - default: - return nil, errors.New("dns: bad address family") - } - return b, nil -} - -func (e *EDNS0_SUBNET) unpack(b []byte) error { - if len(b) < 4 { - return ErrBuf - } - e.Family, _ = unpackUint16(b, 0) - e.SourceNetmask = b[2] - e.SourceScope = b[3] - switch e.Family { - case 1: - if e.SourceNetmask > net.IPv4len*8 || e.SourceScope > net.IPv4len*8 { - return errors.New("dns: bad netmask") - } - addr := make([]byte, net.IPv4len) - for i := 0; i < net.IPv4len && 4+i < len(b); i++ { - addr[i] = b[4+i] - } - e.Address = net.IPv4(addr[0], addr[1], addr[2], addr[3]) - case 2: - if e.SourceNetmask > net.IPv6len*8 || e.SourceScope > net.IPv6len*8 { - return errors.New("dns: bad netmask") - } - addr := make([]byte, net.IPv6len) - for i := 0; i < net.IPv6len && 4+i < len(b); i++ { - addr[i] = b[4+i] - } - e.Address = net.IP{addr[0], addr[1], addr[2], addr[3], addr[4], - addr[5], addr[6], addr[7], addr[8], addr[9], addr[10], - addr[11], addr[12], addr[13], addr[14], addr[15]} - default: - return errors.New("dns: bad address family") - } - return nil -} - -func (e *EDNS0_SUBNET) String() (s string) { - if e.Address == nil { - s = "<nil>" - } else if e.Address.To4() != nil { - s = e.Address.String() - } else { - s = "[" + e.Address.String() + "]" - } - s += "/" + strconv.Itoa(int(e.SourceNetmask)) + "/" + strconv.Itoa(int(e.SourceScope)) - return -} - -// The EDNS0_UL (Update Lease) (draft RFC) option is used to tell the server to set -// an expiration on an update RR. This is helpful for clients that cannot clean -// up after themselves. This is a draft RFC and more information can be found at -// http://files.dns-sd.org/draft-sekar-dns-ul.txt -// -// o := new(dns.OPT) -// o.Hdr.Name = "." -// o.Hdr.Rrtype = dns.TypeOPT -// e := new(dns.EDNS0_UL) -// e.Code = dns.EDNS0UL -// e.Lease = 120 // in seconds -// o.Option = append(o.Option, e) -type EDNS0_UL struct { - Code uint16 // Always EDNS0UL - Lease uint32 -} - -func (e *EDNS0_UL) Option() uint16 { return EDNS0UL } -func (e *EDNS0_UL) String() string { return strconv.FormatUint(uint64(e.Lease), 10) } - -// Copied: http://golang.org/src/pkg/net/dnsmsg.go -func (e *EDNS0_UL) pack() ([]byte, error) { - b := make([]byte, 4) - b[0] = byte(e.Lease >> 24) - b[1] = byte(e.Lease >> 16) - b[2] = byte(e.Lease >> 8) - b[3] = byte(e.Lease) - return b, nil -} - -func (e *EDNS0_UL) unpack(b []byte) error { - if len(b) < 4 { - return ErrBuf - } - e.Lease = uint32(b[0])<<24 | uint32(b[1])<<16 | uint32(b[2])<<8 | uint32(b[3]) - return nil -} - -// EDNS0_LLQ stands for Long Lived Queries: http://tools.ietf.org/html/draft-sekar-dns-llq-01 -// Implemented for completeness, as the EDNS0 type code is assigned. -type EDNS0_LLQ struct { - Code uint16 // Always EDNS0LLQ - Version uint16 - Opcode uint16 - Error uint16 - Id uint64 - LeaseLife uint32 -} - -func (e *EDNS0_LLQ) Option() uint16 { return EDNS0LLQ } - -func (e *EDNS0_LLQ) pack() ([]byte, error) { - b := make([]byte, 18) - b[0], b[1] = packUint16(e.Version) - b[2], b[3] = packUint16(e.Opcode) - b[4], b[5] = packUint16(e.Error) - b[6] = byte(e.Id >> 56) - b[7] = byte(e.Id >> 48) - b[8] = byte(e.Id >> 40) - b[9] = byte(e.Id >> 32) - b[10] = byte(e.Id >> 24) - b[11] = byte(e.Id >> 16) - b[12] = byte(e.Id >> 8) - b[13] = byte(e.Id) - b[14] = byte(e.LeaseLife >> 24) - b[15] = byte(e.LeaseLife >> 16) - b[16] = byte(e.LeaseLife >> 8) - b[17] = byte(e.LeaseLife) - return b, nil -} - -func (e *EDNS0_LLQ) unpack(b []byte) error { - if len(b) < 18 { - return ErrBuf - } - e.Version, _ = unpackUint16(b, 0) - e.Opcode, _ = unpackUint16(b, 2) - e.Error, _ = unpackUint16(b, 4) - e.Id = uint64(b[6])<<56 | uint64(b[6+1])<<48 | uint64(b[6+2])<<40 | - uint64(b[6+3])<<32 | uint64(b[6+4])<<24 | uint64(b[6+5])<<16 | uint64(b[6+6])<<8 | uint64(b[6+7]) - e.LeaseLife = uint32(b[14])<<24 | uint32(b[14+1])<<16 | uint32(b[14+2])<<8 | uint32(b[14+3]) - return nil -} - -func (e *EDNS0_LLQ) String() string { - s := strconv.FormatUint(uint64(e.Version), 10) + " " + strconv.FormatUint(uint64(e.Opcode), 10) + - " " + strconv.FormatUint(uint64(e.Error), 10) + " " + strconv.FormatUint(uint64(e.Id), 10) + - " " + strconv.FormatUint(uint64(e.LeaseLife), 10) - return s -} - -type EDNS0_DAU struct { - Code uint16 // Always EDNS0DAU - AlgCode []uint8 -} - -func (e *EDNS0_DAU) Option() uint16 { return EDNS0DAU } -func (e *EDNS0_DAU) pack() ([]byte, error) { return e.AlgCode, nil } -func (e *EDNS0_DAU) unpack(b []byte) error { e.AlgCode = b; return nil } - -func (e *EDNS0_DAU) String() string { - s := "" - for i := 0; i < len(e.AlgCode); i++ { - if a, ok := AlgorithmToString[e.AlgCode[i]]; ok { - s += " " + a - } else { - s += " " + strconv.Itoa(int(e.AlgCode[i])) - } - } - return s -} - -type EDNS0_DHU struct { - Code uint16 // Always EDNS0DHU - AlgCode []uint8 -} - -func (e *EDNS0_DHU) Option() uint16 { return EDNS0DHU } -func (e *EDNS0_DHU) pack() ([]byte, error) { return e.AlgCode, nil } -func (e *EDNS0_DHU) unpack(b []byte) error { e.AlgCode = b; return nil } - -func (e *EDNS0_DHU) String() string { - s := "" - for i := 0; i < len(e.AlgCode); i++ { - if a, ok := HashToString[e.AlgCode[i]]; ok { - s += " " + a - } else { - s += " " + strconv.Itoa(int(e.AlgCode[i])) - } - } - return s -} - -type EDNS0_N3U struct { - Code uint16 // Always EDNS0N3U - AlgCode []uint8 -} - -func (e *EDNS0_N3U) Option() uint16 { return EDNS0N3U } -func (e *EDNS0_N3U) pack() ([]byte, error) { return e.AlgCode, nil } -func (e *EDNS0_N3U) unpack(b []byte) error { e.AlgCode = b; return nil } - -func (e *EDNS0_N3U) String() string { - // Re-use the hash map - s := "" - for i := 0; i < len(e.AlgCode); i++ { - if a, ok := HashToString[e.AlgCode[i]]; ok { - s += " " + a - } else { - s += " " + strconv.Itoa(int(e.AlgCode[i])) - } - } - return s -} - -type EDNS0_EXPIRE struct { - Code uint16 // Always EDNS0EXPIRE - Expire uint32 -} - -func (e *EDNS0_EXPIRE) Option() uint16 { return EDNS0EXPIRE } -func (e *EDNS0_EXPIRE) String() string { return strconv.FormatUint(uint64(e.Expire), 10) } - -func (e *EDNS0_EXPIRE) pack() ([]byte, error) { - b := make([]byte, 4) - b[0] = byte(e.Expire >> 24) - b[1] = byte(e.Expire >> 16) - b[2] = byte(e.Expire >> 8) - b[3] = byte(e.Expire) - return b, nil -} - -func (e *EDNS0_EXPIRE) unpack(b []byte) error { - if len(b) < 4 { - return ErrBuf - } - e.Expire = uint32(b[0])<<24 | uint32(b[1])<<16 | uint32(b[2])<<8 | uint32(b[3]) - return nil -} - -// The EDNS0_LOCAL option is used for local/experimental purposes. The option -// code is recommended to be within the range [EDNS0LOCALSTART, EDNS0LOCALEND] -// (RFC6891), although any unassigned code can actually be used. The content of -// the option is made available in Data, unaltered. -// Basic use pattern for creating a local option: -// -// o := new(dns.OPT) -// o.Hdr.Name = "." -// o.Hdr.Rrtype = dns.TypeOPT -// e := new(dns.EDNS0_LOCAL) -// e.Code = dns.EDNS0LOCALSTART -// e.Data = []byte{72, 82, 74} -// o.Option = append(o.Option, e) -type EDNS0_LOCAL struct { - Code uint16 - Data []byte -} - -func (e *EDNS0_LOCAL) Option() uint16 { return e.Code } -func (e *EDNS0_LOCAL) String() string { - return strconv.FormatInt(int64(e.Code), 10) + ":0x" + hex.EncodeToString(e.Data) -} - -func (e *EDNS0_LOCAL) pack() ([]byte, error) { - b := make([]byte, len(e.Data)) - copied := copy(b, e.Data) - if copied != len(e.Data) { - return nil, ErrBuf - } - return b, nil -} - -func (e *EDNS0_LOCAL) unpack(b []byte) error { - e.Data = make([]byte, len(b)) - copied := copy(e.Data, b) - if copied != len(b) { - return ErrBuf - } - return nil -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/edns_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/edns_test.go deleted file mode 100644 index 8ee82ab4..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/edns_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package dns - -import "testing" - -func TestOPTTtl(t *testing.T) { - e := &OPT{} - e.Hdr.Name = "." - e.Hdr.Rrtype = TypeOPT - - if e.Do() { - t.Fail() - } - - e.SetDo() - if !e.Do() { - t.Fail() - } - - oldTtl := e.Hdr.Ttl - - if e.Version() != 0 { - t.Fail() - } - - e.SetVersion(42) - if e.Version() != 42 { - t.Fail() - } - - e.SetVersion(0) - if e.Hdr.Ttl != oldTtl { - t.Fail() - } - - if e.ExtendedRcode() != 0 { - t.Fail() - } - - e.SetExtendedRcode(42) - if e.ExtendedRcode() != 42 { - t.Fail() - } - - e.SetExtendedRcode(0) - if e.Hdr.Ttl != oldTtl { - t.Fail() - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/example_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/example_test.go deleted file mode 100644 index e595ddd8..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/example_test.go +++ /dev/null @@ -1,146 +0,0 @@ -package dns_test - -import ( - "errors" - "fmt" - "log" - "net" - - "gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns" -) - -// Retrieve the MX records for miek.nl. -func ExampleMX() { - config, _ := dns.ClientConfigFromFile("/etc/resolv.conf") - c := new(dns.Client) - m := new(dns.Msg) - m.SetQuestion("miek.nl.", dns.TypeMX) - m.RecursionDesired = true - r, _, err := c.Exchange(m, config.Servers[0]+":"+config.Port) - if err != nil { - return - } - if r.Rcode != dns.RcodeSuccess { - return - } - for _, a := range r.Answer { - if mx, ok := a.(*dns.MX); ok { - fmt.Printf("%s\n", mx.String()) - } - } -} - -// Retrieve the DNSKEY records of a zone and convert them -// to DS records for SHA1, SHA256 and SHA384. -func ExampleDS() { - config, _ := dns.ClientConfigFromFile("/etc/resolv.conf") - c := new(dns.Client) - m := new(dns.Msg) - zone := "miek.nl" - m.SetQuestion(dns.Fqdn(zone), dns.TypeDNSKEY) - m.SetEdns0(4096, true) - r, _, err := c.Exchange(m, config.Servers[0]+":"+config.Port) - if err != nil { - return - } - if r.Rcode != dns.RcodeSuccess { - return - } - for _, k := range r.Answer { - if key, ok := k.(*dns.DNSKEY); ok { - for _, alg := range []uint8{dns.SHA1, dns.SHA256, dns.SHA384} { - fmt.Printf("%s; %d\n", key.ToDS(alg).String(), key.Flags) - } - } - } -} - -const TypeAPAIR = 0x0F99 - -type APAIR struct { - addr [2]net.IP -} - -func NewAPAIR() dns.PrivateRdata { return new(APAIR) } - -func (rd *APAIR) String() string { return rd.addr[0].String() + " " + rd.addr[1].String() } -func (rd *APAIR) Parse(txt []string) error { - if len(txt) != 2 { - return errors.New("two addresses required for APAIR") - } - for i, s := range txt { - ip := net.ParseIP(s) - if ip == nil { - return errors.New("invalid IP in APAIR text representation") - } - rd.addr[i] = ip - } - return nil -} - -func (rd *APAIR) Pack(buf []byte) (int, error) { - b := append([]byte(rd.addr[0]), []byte(rd.addr[1])...) - n := copy(buf, b) - if n != len(b) { - return n, dns.ErrBuf - } - return n, nil -} - -func (rd *APAIR) Unpack(buf []byte) (int, error) { - ln := net.IPv4len * 2 - if len(buf) != ln { - return 0, errors.New("invalid length of APAIR rdata") - } - cp := make([]byte, ln) - copy(cp, buf) // clone bytes to use them in IPs - - rd.addr[0] = net.IP(cp[:3]) - rd.addr[1] = net.IP(cp[4:]) - - return len(buf), nil -} - -func (rd *APAIR) Copy(dest dns.PrivateRdata) error { - cp := make([]byte, rd.Len()) - _, err := rd.Pack(cp) - if err != nil { - return err - } - - d := dest.(*APAIR) - d.addr[0] = net.IP(cp[:3]) - d.addr[1] = net.IP(cp[4:]) - return nil -} - -func (rd *APAIR) Len() int { - return net.IPv4len * 2 -} - -func ExamplePrivateHandle() { - dns.PrivateHandle("APAIR", TypeAPAIR, NewAPAIR) - defer dns.PrivateHandleRemove(TypeAPAIR) - - rr, err := dns.NewRR("miek.nl. APAIR (1.2.3.4 1.2.3.5)") - if err != nil { - log.Fatal("could not parse APAIR record: ", err) - } - fmt.Println(rr) - // Output: miek.nl. 3600 IN APAIR 1.2.3.4 1.2.3.5 - - m := new(dns.Msg) - m.Id = 12345 - m.SetQuestion("miek.nl.", TypeAPAIR) - m.Answer = append(m.Answer, rr) - - fmt.Println(m) - // ;; opcode: QUERY, status: NOERROR, id: 12345 - // ;; flags: rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 - // - // ;; QUESTION SECTION: - // ;miek.nl. IN APAIR - // - // ;; ANSWER SECTION: - // miek.nl. 3600 IN APAIR 1.2.3.4 1.2.3.5 -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/format.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/format.go deleted file mode 100644 index 1ac1664f..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/format.go +++ /dev/null @@ -1,96 +0,0 @@ -package dns - -import ( - "net" - "reflect" - "strconv" -) - -// NumField returns the number of rdata fields r has. -func NumField(r RR) int { - return reflect.ValueOf(r).Elem().NumField() - 1 // Remove RR_Header -} - -// Field returns the rdata field i as a string. Fields are indexed starting from 1. -// RR types that holds slice data, for instance the NSEC type bitmap will return a single -// string where the types are concatenated using a space. -// Accessing non existing fields will cause a panic. -func Field(r RR, i int) string { - if i == 0 { - return "" - } - d := reflect.ValueOf(r).Elem().Field(i) - switch k := d.Kind(); k { - case reflect.String: - return d.String() - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return strconv.FormatInt(d.Int(), 10) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - return strconv.FormatUint(d.Uint(), 10) - case reflect.Slice: - switch reflect.ValueOf(r).Elem().Type().Field(i).Tag { - case `dns:"a"`: - // TODO(miek): Hmm store this as 16 bytes - if d.Len() < net.IPv6len { - return net.IPv4(byte(d.Index(0).Uint()), - byte(d.Index(1).Uint()), - byte(d.Index(2).Uint()), - byte(d.Index(3).Uint())).String() - } - return net.IPv4(byte(d.Index(12).Uint()), - byte(d.Index(13).Uint()), - byte(d.Index(14).Uint()), - byte(d.Index(15).Uint())).String() - case `dns:"aaaa"`: - return net.IP{ - byte(d.Index(0).Uint()), - byte(d.Index(1).Uint()), - byte(d.Index(2).Uint()), - byte(d.Index(3).Uint()), - byte(d.Index(4).Uint()), - byte(d.Index(5).Uint()), - byte(d.Index(6).Uint()), - byte(d.Index(7).Uint()), - byte(d.Index(8).Uint()), - byte(d.Index(9).Uint()), - byte(d.Index(10).Uint()), - byte(d.Index(11).Uint()), - byte(d.Index(12).Uint()), - byte(d.Index(13).Uint()), - byte(d.Index(14).Uint()), - byte(d.Index(15).Uint()), - }.String() - case `dns:"nsec"`: - if d.Len() == 0 { - return "" - } - s := Type(d.Index(0).Uint()).String() - for i := 1; i < d.Len(); i++ { - s += " " + Type(d.Index(i).Uint()).String() - } - return s - case `dns:"wks"`: - if d.Len() == 0 { - return "" - } - s := strconv.Itoa(int(d.Index(0).Uint())) - for i := 0; i < d.Len(); i++ { - s += " " + strconv.Itoa(int(d.Index(i).Uint())) - } - return s - default: - // if it does not have a tag its a string slice - fallthrough - case `dns:"txt"`: - if d.Len() == 0 { - return "" - } - s := d.Index(0).String() - for i := 1; i < d.Len(); i++ { - s += " " + d.Index(i).String() - } - return s - } - } - return "" -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/fuzz_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/fuzz_test.go deleted file mode 100644 index 25586973..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/fuzz_test.go +++ /dev/null @@ -1,25 +0,0 @@ -package dns - -import "testing" - -func TestFuzzString(t *testing.T) { - testcases := []string{"", " MINFO ", " RP ", " NSEC 0 0", " \" NSEC 0 0\"", " \" MINFO \"", - ";a ", ";a����������", - " NSAP O ", " NSAP N ", - " TYPE4 TYPE6a789a3bc0045c8a5fb42c7d1bd998f5444 IN 9579b47d46817afbd17273e6", - " TYPE45 3 3 4147994 TYPE\\(\\)\\)\\(\\)\\(\\(\\)\\(\\)\\)\\)\\(\\)\\(\\)\\(\\(\\R 948\"\")\\(\\)\\)\\)\\(\\ ", - "$GENERATE 0-3 ${441189,5039418474430,o}", - "$INCLUDE 00 TYPE00000000000n ", - "$INCLUDE PE4 TYPE061463623/727071511 \\(\\)\\$GENERATE 6-462/0", - } - for i, tc := range testcases { - rr, err := NewRR(tc) - if err == nil { - // rr can be nil because we can (for instance) just parse a comment - if rr == nil { - continue - } - t.Fatalf("parsed mailformed RR %d: %s", i, rr.String()) - } - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/code_points.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/code_points.go deleted file mode 100644 index 129c3742..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/code_points.go +++ /dev/null @@ -1,2346 +0,0 @@ -package idn - -const ( - propertyUnknown property = iota // unknown character property - propertyPVALID // allowed to be used in IDNs - propertyCONTEXTJ // invisible or problematic characters (join controls) - propertyCONTEXTO // invisible or problematic characters (others) - propertyDISALLOWED // should not be included in IDNs - propertyUNASSIGNED // code points that are not designated in the Unicode Standard -) - -// property stores the property of a code point, as described in RFC 5892, -// section 1 -type property int - -// codePoints list all code points in Unicode Character Database (UCD) Format -// according to RFC 5892, appendix B.1. Thanks to libidn2 (GNU) - -// http://www.gnu.org/software/libidn/libidn2/ -var codePoints = []struct { - start rune - end rune - state property -}{ - {0x0000, 0x002C, propertyDISALLOWED}, // <control>..COMMA - {0x002D, 0x0, propertyPVALID}, // HYPHEN-MINUS - {0x002E, 0x002F, propertyDISALLOWED}, // FULL STOP..SOLIDUS - {0x0030, 0x0039, propertyPVALID}, // DIGIT ZERO..DIGIT NINE - {0x003A, 0x0060, propertyDISALLOWED}, // COLON..GRAVE ACCENT - {0x0041, 0x005A, propertyPVALID}, // LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z - {0x0061, 0x007A, propertyPVALID}, // LATIN SMALL LETTER A..LATIN SMALL LETTER Z - {0x007B, 0x00B6, propertyDISALLOWED}, // LEFT CURLY BRACKET..PILCROW SIGN - {0x00B7, 0x0, propertyCONTEXTO}, // MIDDLE DOT - {0x00B8, 0x00DE, propertyDISALLOWED}, // CEDILLA..LATIN CAPITAL LETTER THORN - {0x00DF, 0x00F6, propertyPVALID}, // LATIN SMALL LETTER SHARP S..LATIN SMALL LETT - {0x00F7, 0x0, propertyDISALLOWED}, // DIVISION SIGN - {0x00F8, 0x00FF, propertyPVALID}, // LATIN SMALL LETTER O WITH STROKE..LATIN SMAL - {0x0100, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH MACRON - {0x0101, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH MACRON - {0x0102, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH BREVE - {0x0103, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH BREVE - {0x0104, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH OGONEK - {0x0105, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH OGONEK - {0x0106, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER C WITH ACUTE - {0x0107, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH ACUTE - {0x0108, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER C WITH CIRCUMFLEX - {0x0109, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH CIRCUMFLEX - {0x010A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER C WITH DOT ABOVE - {0x010B, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH DOT ABOVE - {0x010C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER C WITH CARON - {0x010D, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH CARON - {0x010E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH CARON - {0x010F, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH CARON - {0x0110, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH STROKE - {0x0111, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH STROKE - {0x0112, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH MACRON - {0x0113, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH MACRON - {0x0114, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH BREVE - {0x0115, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH BREVE - {0x0116, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH DOT ABOVE - {0x0117, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH DOT ABOVE - {0x0118, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH OGONEK - {0x0119, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH OGONEK - {0x011A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CARON - {0x011B, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CARON - {0x011C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH CIRCUMFLEX - {0x011D, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH CIRCUMFLEX - {0x011E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH BREVE - {0x011F, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH BREVE - {0x0120, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH DOT ABOVE - {0x0121, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH DOT ABOVE - {0x0122, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH CEDILLA - {0x0123, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH CEDILLA - {0x0124, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH CIRCUMFLEX - {0x0125, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH CIRCUMFLEX - {0x0126, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH STROKE - {0x0127, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH STROKE - {0x0128, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH TILDE - {0x0129, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH TILDE - {0x012A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH MACRON - {0x012B, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH MACRON - {0x012C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH BREVE - {0x012D, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH BREVE - {0x012E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH OGONEK - {0x012F, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH OGONEK - {0x0130, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH DOT ABOVE - {0x0131, 0x0, propertyPVALID}, // LATIN SMALL LETTER DOTLESS I - {0x0132, 0x0134, propertyDISALLOWED}, // LATIN CAPITAL LIGATURE IJ..LATIN CAPITAL LET - {0x0135, 0x0, propertyPVALID}, // LATIN SMALL LETTER J WITH CIRCUMFLEX - {0x0136, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH CEDILLA - {0x0137, 0x0138, propertyPVALID}, // LATIN SMALL LETTER K WITH CEDILLA..LATIN SMA - {0x0139, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH ACUTE - {0x013A, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH ACUTE - {0x013B, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH CEDILLA - {0x013C, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH CEDILLA - {0x013D, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH CARON - {0x013E, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH CARON - {0x013F, 0x0141, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATI - {0x0142, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH STROKE - {0x0143, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH ACUTE - {0x0144, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH ACUTE - {0x0145, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH CEDILLA - {0x0146, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH CEDILLA - {0x0147, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH CARON - {0x0148, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH CARON - {0x0149, 0x014A, propertyDISALLOWED}, // LATIN SMALL LETTER N PRECEDED BY APOSTROPHE. - {0x014B, 0x0, propertyPVALID}, // LATIN SMALL LETTER ENG - {0x014C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH MACRON - {0x014D, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH MACRON - {0x014E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH BREVE - {0x014F, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH BREVE - {0x0150, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE - {0x0151, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH DOUBLE ACUTE - {0x0152, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LIGATURE OE - {0x0153, 0x0, propertyPVALID}, // LATIN SMALL LIGATURE OE - {0x0154, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH ACUTE - {0x0155, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH ACUTE - {0x0156, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH CEDILLA - {0x0157, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH CEDILLA - {0x0158, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH CARON - {0x0159, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH CARON - {0x015A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH ACUTE - {0x015B, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH ACUTE - {0x015C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH CIRCUMFLEX - {0x015D, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH CIRCUMFLEX - {0x015E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH CEDILLA - {0x015F, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH CEDILLA - {0x0160, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH CARON - {0x0161, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH CARON - {0x0162, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH CEDILLA - {0x0163, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH CEDILLA - {0x0164, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH CARON - {0x0165, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH CARON - {0x0166, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH STROKE - {0x0167, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH STROKE - {0x0168, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH TILDE - {0x0169, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH TILDE - {0x016A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH MACRON - {0x016B, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH MACRON - {0x016C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH BREVE - {0x016D, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH BREVE - {0x016E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH RING ABOVE - {0x016F, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH RING ABOVE - {0x0170, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE - {0x0171, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DOUBLE ACUTE - {0x0172, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH OGONEK - {0x0173, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH OGONEK - {0x0174, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH CIRCUMFLEX - {0x0175, 0x0, propertyPVALID}, // LATIN SMALL LETTER W WITH CIRCUMFLEX - {0x0176, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH CIRCUMFLEX - {0x0177, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH CIRCUMFLEX - {0x0178, 0x0179, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN - {0x017A, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH ACUTE - {0x017B, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH DOT ABOVE - {0x017C, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH DOT ABOVE - {0x017D, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH CARON - {0x017E, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH CARON - {0x017F, 0x0, propertyDISALLOWED}, // LATIN SMALL LETTER LONG S - {0x0180, 0x0, propertyPVALID}, // LATIN SMALL LETTER B WITH STROKE - {0x0181, 0x0182, propertyDISALLOWED}, // LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPI - {0x0183, 0x0, propertyPVALID}, // LATIN SMALL LETTER B WITH TOPBAR - {0x0184, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER TONE SIX - {0x0185, 0x0, propertyPVALID}, // LATIN SMALL LETTER TONE SIX - {0x0186, 0x0187, propertyDISALLOWED}, // LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL L - {0x0188, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH HOOK - {0x0189, 0x018B, propertyDISALLOWED}, // LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITA - {0x018C, 0x018D, propertyPVALID}, // LATIN SMALL LETTER D WITH TOPBAR..LATIN SMAL - {0x018E, 0x0191, propertyDISALLOWED}, // LATIN CAPITAL LETTER REVERSED E..LATIN CAPIT - {0x0192, 0x0, propertyPVALID}, // LATIN SMALL LETTER F WITH HOOK - {0x0193, 0x0194, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPI - {0x0195, 0x0, propertyPVALID}, // LATIN SMALL LETTER HV - {0x0196, 0x0198, propertyDISALLOWED}, // LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LET - {0x0199, 0x019B, propertyPVALID}, // LATIN SMALL LETTER K WITH HOOK..LATIN SMALL - {0x019C, 0x019D, propertyDISALLOWED}, // LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL - {0x019E, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH LONG RIGHT LEG - {0x019F, 0x01A0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LA - {0x01A1, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HORN - {0x01A2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER OI - {0x01A3, 0x0, propertyPVALID}, // LATIN SMALL LETTER OI - {0x01A4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER P WITH HOOK - {0x01A5, 0x0, propertyPVALID}, // LATIN SMALL LETTER P WITH HOOK - {0x01A6, 0x01A7, propertyDISALLOWED}, // LATIN LETTER YR..LATIN CAPITAL LETTER TONE T - {0x01A8, 0x0, propertyPVALID}, // LATIN SMALL LETTER TONE TWO - {0x01A9, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER ESH - {0x01AA, 0x01AB, propertyPVALID}, // LATIN LETTER REVERSED ESH LOOP..LATIN SMALL - {0x01AC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH HOOK - {0x01AD, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH HOOK - {0x01AE, 0x01AF, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH RETROFLEX HOOK.. - {0x01B0, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HORN - {0x01B1, 0x01B3, propertyDISALLOWED}, // LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL - {0x01B4, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH HOOK - {0x01B5, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH STROKE - {0x01B6, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH STROKE - {0x01B7, 0x01B8, propertyDISALLOWED}, // LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETT - {0x01B9, 0x01BB, propertyPVALID}, // LATIN SMALL LETTER EZH REVERSED..LATIN LETTE - {0x01BC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER TONE FIVE - {0x01BD, 0x01C3, propertyPVALID}, // LATIN SMALL LETTER TONE FIVE..LATIN LETTER R - {0x01C4, 0x01CD, propertyDISALLOWED}, // LATIN CAPITAL LETTER DZ WITH CARON..LATIN CA - {0x01CE, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH CARON - {0x01CF, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH CARON - {0x01D0, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH CARON - {0x01D1, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH CARON - {0x01D2, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH CARON - {0x01D3, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH CARON - {0x01D4, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH CARON - {0x01D5, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DIAERESIS AND MA - {0x01D6, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DIAERESIS AND MACR - {0x01D7, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DIAERESIS AND AC - {0x01D8, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DIAERESIS AND ACUT - {0x01D9, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DIAERESIS AND CA - {0x01DA, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DIAERESIS AND CARO - {0x01DB, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DIAERESIS AND GR - {0x01DC, 0x01DD, propertyPVALID}, // LATIN SMALL LETTER U WITH DIAERESIS AND GRAV - {0x01DE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH DIAERESIS AND MA - {0x01DF, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH DIAERESIS AND MACR - {0x01E0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH DOT ABOVE AND MA - {0x01E1, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH DOT ABOVE AND MACR - {0x01E2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AE WITH MACRON - {0x01E3, 0x0, propertyPVALID}, // LATIN SMALL LETTER AE WITH MACRON - {0x01E4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH STROKE - {0x01E5, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH STROKE - {0x01E6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH CARON - {0x01E7, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH CARON - {0x01E8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH CARON - {0x01E9, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH CARON - {0x01EA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH OGONEK - {0x01EB, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH OGONEK - {0x01EC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH OGONEK AND MACRO - {0x01ED, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH OGONEK AND MACRON - {0x01EE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER EZH WITH CARON - {0x01EF, 0x01F0, propertyPVALID}, // LATIN SMALL LETTER EZH WITH CARON..LATIN SMA - {0x01F1, 0x01F4, propertyDISALLOWED}, // LATIN CAPITAL LETTER DZ..LATIN CAPITAL LETTE - {0x01F5, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH ACUTE - {0x01F6, 0x01F8, propertyDISALLOWED}, // LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LE - {0x01F9, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH GRAVE - {0x01FA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH RING ABOVE AND A - {0x01FB, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH RING ABOVE AND ACU - {0x01FC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AE WITH ACUTE - {0x01FD, 0x0, propertyPVALID}, // LATIN SMALL LETTER AE WITH ACUTE - {0x01FE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH STROKE AND ACUTE - {0x01FF, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH STROKE AND ACUTE - {0x0200, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH DOUBLE GRAVE - {0x0201, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH DOUBLE GRAVE - {0x0202, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH INVERTED BREVE - {0x0203, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH INVERTED BREVE - {0x0204, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH DOUBLE GRAVE - {0x0205, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH DOUBLE GRAVE - {0x0206, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH INVERTED BREVE - {0x0207, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH INVERTED BREVE - {0x0208, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH DOUBLE GRAVE - {0x0209, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH DOUBLE GRAVE - {0x020A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH INVERTED BREVE - {0x020B, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH INVERTED BREVE - {0x020C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH DOUBLE GRAVE - {0x020D, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH DOUBLE GRAVE - {0x020E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH INVERTED BREVE - {0x020F, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH INVERTED BREVE - {0x0210, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH DOUBLE GRAVE - {0x0211, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH DOUBLE GRAVE - {0x0212, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH INVERTED BREVE - {0x0213, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH INVERTED BREVE - {0x0214, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DOUBLE GRAVE - {0x0215, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DOUBLE GRAVE - {0x0216, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH INVERTED BREVE - {0x0217, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH INVERTED BREVE - {0x0218, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH COMMA BELOW - {0x0219, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH COMMA BELOW - {0x021A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH COMMA BELOW - {0x021B, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH COMMA BELOW - {0x021C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER YOGH - {0x021D, 0x0, propertyPVALID}, // LATIN SMALL LETTER YOGH - {0x021E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH CARON - {0x021F, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH CARON - {0x0220, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH LONG RIGHT LEG - {0x0221, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH CURL - {0x0222, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER OU - {0x0223, 0x0, propertyPVALID}, // LATIN SMALL LETTER OU - {0x0224, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH HOOK - {0x0225, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH HOOK - {0x0226, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH DOT ABOVE - {0x0227, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH DOT ABOVE - {0x0228, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CEDILLA - {0x0229, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CEDILLA - {0x022A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH DIAERESIS AND MA - {0x022B, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH DIAERESIS AND MACR - {0x022C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH TILDE AND MACRON - {0x022D, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH TILDE AND MACRON - {0x022E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH DOT ABOVE - {0x022F, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH DOT ABOVE - {0x0230, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH DOT ABOVE AND MA - {0x0231, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH DOT ABOVE AND MACR - {0x0232, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH MACRON - {0x0233, 0x0239, propertyPVALID}, // LATIN SMALL LETTER Y WITH MACRON..LATIN SMAL - {0x023A, 0x023B, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH STROKE..LATIN CA - {0x023C, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH STROKE - {0x023D, 0x023E, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH BAR..LATIN CAPIT - {0x023F, 0x0240, propertyPVALID}, // LATIN SMALL LETTER S WITH SWASH TAIL..LATIN - {0x0241, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER GLOTTAL STOP - {0x0242, 0x0, propertyPVALID}, // LATIN SMALL LETTER GLOTTAL STOP - {0x0243, 0x0246, propertyDISALLOWED}, // LATIN CAPITAL LETTER B WITH STROKE..LATIN CA - {0x0247, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH STROKE - {0x0248, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER J WITH STROKE - {0x0249, 0x0, propertyPVALID}, // LATIN SMALL LETTER J WITH STROKE - {0x024A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL - {0x024B, 0x0, propertyPVALID}, // LATIN SMALL LETTER Q WITH HOOK TAIL - {0x024C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH STROKE - {0x024D, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH STROKE - {0x024E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH STROKE - {0x024F, 0x02AF, propertyPVALID}, // LATIN SMALL LETTER Y WITH STROKE..LATIN SMAL - {0x02B0, 0x02B8, propertyDISALLOWED}, // MODIFIER LETTER SMALL H..MODIFIER LETTER SMA - {0x02B9, 0x02C1, propertyPVALID}, // MODIFIER LETTER PRIME..MODIFIER LETTER REVER - {0x02C2, 0x02C5, propertyDISALLOWED}, // MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LET - {0x02C6, 0x02D1, propertyPVALID}, // MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER - {0x02D2, 0x02EB, propertyDISALLOWED}, // MODIFIER LETTER CENTRED RIGHT HALF RING..MOD - {0x02EC, 0x0, propertyPVALID}, // MODIFIER LETTER VOICING - {0x02ED, 0x0, propertyDISALLOWED}, // MODIFIER LETTER UNASPIRATED - {0x02EE, 0x0, propertyPVALID}, // MODIFIER LETTER DOUBLE APOSTROPHE - {0x02EF, 0x02FF, propertyDISALLOWED}, // MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER - {0x0300, 0x033F, propertyPVALID}, // COMBINING GRAVE ACCENT..COMBINING DOUBLE OVE - {0x0340, 0x0341, propertyDISALLOWED}, // COMBINING GRAVE TONE MARK..COMBINING ACUTE T - {0x0342, 0x0, propertyPVALID}, // COMBINING GREEK PERISPOMENI - {0x0343, 0x0345, propertyDISALLOWED}, // COMBINING GREEK KORONIS..COMBINING GREEK YPO - {0x0346, 0x034E, propertyPVALID}, // COMBINING BRIDGE ABOVE..COMBINING UPWARDS AR - {0x034F, 0x0, propertyDISALLOWED}, // COMBINING GRAPHEME JOINER - {0x0350, 0x036F, propertyPVALID}, // COMBINING RIGHT ARROWHEAD ABOVE..COMBINING L - {0x0370, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER HETA - {0x0371, 0x0, propertyPVALID}, // GREEK SMALL LETTER HETA - {0x0372, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER ARCHAIC SAMPI - {0x0373, 0x0, propertyPVALID}, // GREEK SMALL LETTER ARCHAIC SAMPI - {0x0374, 0x0, propertyDISALLOWED}, // GREEK NUMERAL SIGN - {0x0375, 0x0, propertyCONTEXTO}, // GREEK LOWER NUMERAL SIGN - {0x0376, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA - {0x0377, 0x0, propertyPVALID}, // GREEK SMALL LETTER PAMPHYLIAN DIGAMMA - {0x0378, 0x0379, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x037A, 0x0, propertyDISALLOWED}, // GREEK YPOGEGRAMMENI - {0x037B, 0x037D, propertyPVALID}, // GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GR - {0x037E, 0x0, propertyDISALLOWED}, // GREEK QUESTION MARK - {0x037F, 0x0383, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0384, 0x038A, propertyDISALLOWED}, // GREEK TONOS..GREEK CAPITAL LETTER IOTA WITH - {0x038B, 0x0, propertyUNASSIGNED}, // <reserved> - {0x038C, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER OMICRON WITH TONOS - {0x038D, 0x0, propertyUNASSIGNED}, // <reserved> - {0x038E, 0x038F, propertyDISALLOWED}, // GREEK CAPITAL LETTER UPSILON WITH TONOS..GRE - {0x0390, 0x0, propertyPVALID}, // GREEK SMALL LETTER IOTA WITH DIALYTIKA AND T - {0x0391, 0x03A1, propertyDISALLOWED}, // GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LE - {0x03A2, 0x0, propertyUNASSIGNED}, // <reserved> - {0x03A3, 0x03AB, propertyDISALLOWED}, // GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LE - {0x03AC, 0x03CE, propertyPVALID}, // GREEK SMALL LETTER ALPHA WITH TONOS..GREEK S - {0x03CF, 0x03D6, propertyDISALLOWED}, // GREEK CAPITAL KAI SYMBOL..GREEK PI SYMBOL - {0x03D7, 0x0, propertyPVALID}, // GREEK KAI SYMBOL - {0x03D8, 0x0, propertyDISALLOWED}, // GREEK LETTER ARCHAIC KOPPA - {0x03D9, 0x0, propertyPVALID}, // GREEK SMALL LETTER ARCHAIC KOPPA - {0x03DA, 0x0, propertyDISALLOWED}, // GREEK LETTER STIGMA - {0x03DB, 0x0, propertyPVALID}, // GREEK SMALL LETTER STIGMA - {0x03DC, 0x0, propertyDISALLOWED}, // GREEK LETTER DIGAMMA - {0x03DD, 0x0, propertyPVALID}, // GREEK SMALL LETTER DIGAMMA - {0x03DE, 0x0, propertyDISALLOWED}, // GREEK LETTER KOPPA - {0x03DF, 0x0, propertyPVALID}, // GREEK SMALL LETTER KOPPA - {0x03E0, 0x0, propertyDISALLOWED}, // GREEK LETTER SAMPI - {0x03E1, 0x0, propertyPVALID}, // GREEK SMALL LETTER SAMPI - {0x03E2, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER SHEI - {0x03E3, 0x0, propertyPVALID}, // COPTIC SMALL LETTER SHEI - {0x03E4, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER FEI - {0x03E5, 0x0, propertyPVALID}, // COPTIC SMALL LETTER FEI - {0x03E6, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER KHEI - {0x03E7, 0x0, propertyPVALID}, // COPTIC SMALL LETTER KHEI - {0x03E8, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER HORI - {0x03E9, 0x0, propertyPVALID}, // COPTIC SMALL LETTER HORI - {0x03EA, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER GANGIA - {0x03EB, 0x0, propertyPVALID}, // COPTIC SMALL LETTER GANGIA - {0x03EC, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER SHIMA - {0x03ED, 0x0, propertyPVALID}, // COPTIC SMALL LETTER SHIMA - {0x03EE, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER DEI - {0x03EF, 0x0, propertyPVALID}, // COPTIC SMALL LETTER DEI - {0x03F0, 0x03F2, propertyDISALLOWED}, // GREEK KAPPA SYMBOL..GREEK LUNATE SIGMA SYMBO - {0x03F3, 0x0, propertyPVALID}, // GREEK LETTER YOT - {0x03F4, 0x03F7, propertyDISALLOWED}, // GREEK CAPITAL THETA SYMBOL..GREEK CAPITAL LE - {0x03F8, 0x0, propertyPVALID}, // GREEK SMALL LETTER SHO - {0x03F9, 0x03FA, propertyDISALLOWED}, // GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAP - {0x03FB, 0x03FC, propertyPVALID}, // GREEK SMALL LETTER SAN..GREEK RHO WITH STROK - {0x03FD, 0x042F, propertyDISALLOWED}, // GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL.. - {0x0430, 0x045F, propertyPVALID}, // CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETT - {0x0460, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER OMEGA - {0x0461, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER OMEGA - {0x0462, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER YAT - {0x0463, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER YAT - {0x0464, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTIFIED E - {0x0465, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTIFIED E - {0x0466, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER LITTLE YUS - {0x0467, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER LITTLE YUS - {0x0468, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS - {0x0469, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS - {0x046A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BIG YUS - {0x046B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BIG YUS - {0x046C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS - {0x046D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTIFIED BIG YUS - {0x046E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KSI - {0x046F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KSI - {0x0470, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER PSI - {0x0471, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER PSI - {0x0472, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER FITA - {0x0473, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER FITA - {0x0474, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IZHITSA - {0x0475, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IZHITSA - {0x0476, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE - {0x0477, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GR - {0x0478, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER UK - {0x0479, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER UK - {0x047A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ROUND OMEGA - {0x047B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ROUND OMEGA - {0x047C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER OMEGA WITH TITLO - {0x047D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER OMEGA WITH TITLO - {0x047E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER OT - {0x047F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER OT - {0x0480, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOPPA - {0x0481, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOPPA - {0x0482, 0x0, propertyDISALLOWED}, // CYRILLIC THOUSANDS SIGN - {0x0483, 0x0487, propertyPVALID}, // COMBINING CYRILLIC TITLO..COMBINING CYRILLIC - {0x0488, 0x048A, propertyDISALLOWED}, // COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..C - {0x048B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SHORT I WITH TAIL - {0x048C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SEMISOFT SIGN - {0x048D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SEMISOFT SIGN - {0x048E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ER WITH TICK - {0x048F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ER WITH TICK - {0x0490, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER GHE WITH UPTURN - {0x0491, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER GHE WITH UPTURN - {0x0492, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER GHE WITH STROKE - {0x0493, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER GHE WITH STROKE - {0x0494, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK - {0x0495, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK - {0x0496, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER - {0x0497, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZHE WITH DESCENDER - {0x0498, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ZE WITH DESCENDER - {0x0499, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZE WITH DESCENDER - {0x049A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KA WITH DESCENDER - {0x049B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KA WITH DESCENDER - {0x049C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KA WITH VERTICAL STR - {0x049D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KA WITH VERTICAL STROK - {0x049E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KA WITH STROKE - {0x049F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KA WITH STROKE - {0x04A0, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BASHKIR KA - {0x04A1, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BASHKIR KA - {0x04A2, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EN WITH DESCENDER - {0x04A3, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EN WITH DESCENDER - {0x04A4, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LIGATURE EN GHE - {0x04A5, 0x0, propertyPVALID}, // CYRILLIC SMALL LIGATURE EN GHE - {0x04A6, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK - {0x04A7, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK - {0x04A8, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ABKHASIAN HA - {0x04A9, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ABKHASIAN HA - {0x04AA, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ES WITH DESCENDER - {0x04AB, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ES WITH DESCENDER - {0x04AC, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER TE WITH DESCENDER - {0x04AD, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER TE WITH DESCENDER - {0x04AE, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER STRAIGHT U - {0x04AF, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER STRAIGHT U - {0x04B0, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER STRAIGHT U WITH STRO - {0x04B1, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE - {0x04B2, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER HA WITH DESCENDER - {0x04B3, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER HA WITH DESCENDER - {0x04B4, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LIGATURE TE TSE - {0x04B5, 0x0, propertyPVALID}, // CYRILLIC SMALL LIGATURE TE TSE - {0x04B6, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER CHE WITH DESCENDER - {0x04B7, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER CHE WITH DESCENDER - {0x04B8, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER CHE WITH VERTICAL ST - {0x04B9, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER CHE WITH VERTICAL STRO - {0x04BA, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SHHA - {0x04BB, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SHHA - {0x04BC, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ABKHASIAN CHE - {0x04BD, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ABKHASIAN CHE - {0x04BE, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH D - {0x04BF, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DES - {0x04C0, 0x04C1, propertyDISALLOWED}, // CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL L - {0x04C2, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZHE WITH BREVE - {0x04C3, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KA WITH HOOK - {0x04C4, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KA WITH HOOK - {0x04C5, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EL WITH TAIL - {0x04C6, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EL WITH TAIL - {0x04C7, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EN WITH HOOK - {0x04C8, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EN WITH HOOK - {0x04C9, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EN WITH TAIL - {0x04CA, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EN WITH TAIL - {0x04CB, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KHAKASSIAN CHE - {0x04CC, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KHAKASSIAN CHE - {0x04CD, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EM WITH TAIL - {0x04CE, 0x04CF, propertyPVALID}, // CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC - {0x04D0, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER A WITH BREVE - {0x04D1, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER A WITH BREVE - {0x04D2, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER A WITH DIAERESIS - {0x04D3, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER A WITH DIAERESIS - {0x04D4, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LIGATURE A IE - {0x04D5, 0x0, propertyPVALID}, // CYRILLIC SMALL LIGATURE A IE - {0x04D6, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IE WITH BREVE - {0x04D7, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IE WITH BREVE - {0x04D8, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SCHWA - {0x04D9, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SCHWA - {0x04DA, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS - {0x04DB, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS - {0x04DC, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS - {0x04DD, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZHE WITH DIAERESIS - {0x04DE, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS - {0x04DF, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZE WITH DIAERESIS - {0x04E0, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ABKHASIAN DZE - {0x04E1, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ABKHASIAN DZE - {0x04E2, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER I WITH MACRON - {0x04E3, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER I WITH MACRON - {0x04E4, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER I WITH DIAERESIS - {0x04E5, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER I WITH DIAERESIS - {0x04E6, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER O WITH DIAERESIS - {0x04E7, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER O WITH DIAERESIS - {0x04E8, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BARRED O - {0x04E9, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BARRED O - {0x04EA, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BARRED O WITH DIAERE - {0x04EB, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BARRED O WITH DIAERESI - {0x04EC, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER E WITH DIAERESIS - {0x04ED, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER E WITH DIAERESIS - {0x04EE, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER U WITH MACRON - {0x04EF, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER U WITH MACRON - {0x04F0, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER U WITH DIAERESIS - {0x04F1, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER U WITH DIAERESIS - {0x04F2, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE - {0x04F3, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE - {0x04F4, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS - {0x04F5, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER CHE WITH DIAERESIS - {0x04F6, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER GHE WITH DESCENDER - {0x04F7, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER GHE WITH DESCENDER - {0x04F8, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS - {0x04F9, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER YERU WITH DIAERESIS - {0x04FA, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER GHE WITH STROKE AND - {0x04FB, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER GHE WITH STROKE AND HO - {0x04FC, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER HA WITH HOOK - {0x04FD, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER HA WITH HOOK - {0x04FE, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER HA WITH STROKE - {0x04FF, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER HA WITH STROKE - {0x0500, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI DE - {0x0501, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI DE - {0x0502, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI DJE - {0x0503, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI DJE - {0x0504, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI ZJE - {0x0505, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI ZJE - {0x0506, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI DZJE - {0x0507, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI DZJE - {0x0508, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI LJE - {0x0509, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI LJE - {0x050A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI NJE - {0x050B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI NJE - {0x050C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI SJE - {0x050D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI SJE - {0x050E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI TJE - {0x050F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI TJE - {0x0510, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER REVERSED ZE - {0x0511, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER REVERSED ZE - {0x0512, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EL WITH HOOK - {0x0513, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EL WITH HOOK - {0x0514, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER LHA - {0x0515, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER LHA - {0x0516, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER RHA - {0x0517, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER RHA - {0x0518, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER YAE - {0x0519, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER YAE - {0x051A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER QA - {0x051B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER QA - {0x051C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER WE - {0x051D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER WE - {0x051E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ALEUT KA - {0x051F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ALEUT KA - {0x0520, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK - {0x0521, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK - {0x0522, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK - {0x0523, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK - {0x0524, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER PE WITH DESCENDER - {0x0525, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER PE WITH DESCENDER - {0x0526, 0x0530, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0531, 0x0556, propertyDISALLOWED}, // ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITA - {0x0557, 0x0558, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0559, 0x0, propertyPVALID}, // ARMENIAN MODIFIER LETTER LEFT HALF RING - {0x055A, 0x055F, propertyDISALLOWED}, // ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION M - {0x0560, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0561, 0x0586, propertyPVALID}, // ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LE - {0x0587, 0x0, propertyDISALLOWED}, // ARMENIAN SMALL LIGATURE ECH YIWN - {0x0588, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0589, 0x058A, propertyDISALLOWED}, // ARMENIAN FULL STOP..ARMENIAN HYPHEN - {0x058B, 0x0590, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0591, 0x05BD, propertyPVALID}, // HEBREW ACCENT ETNAHTA..HEBREW POINT METEG - {0x05BE, 0x0, propertyDISALLOWED}, // HEBREW PUNCTUATION MAQAF - {0x05BF, 0x0, propertyPVALID}, // HEBREW POINT RAFE - {0x05C0, 0x0, propertyDISALLOWED}, // HEBREW PUNCTUATION PASEQ - {0x05C1, 0x05C2, propertyPVALID}, // HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT - {0x05C3, 0x0, propertyDISALLOWED}, // HEBREW PUNCTUATION SOF PASUQ - {0x05C4, 0x05C5, propertyPVALID}, // HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT - {0x05C6, 0x0, propertyDISALLOWED}, // HEBREW PUNCTUATION NUN HAFUKHA - {0x05C7, 0x0, propertyPVALID}, // HEBREW POINT QAMATS QATAN - {0x05C8, 0x05CF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x05D0, 0x05EA, propertyPVALID}, // HEBREW LETTER ALEF..HEBREW LETTER TAV - {0x05EB, 0x05EF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x05F0, 0x05F2, propertyPVALID}, // HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW L - {0x05F3, 0x05F4, propertyCONTEXTO}, // HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATIO - {0x05F5, 0x05FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0600, 0x0603, propertyDISALLOWED}, // ARABIC NUMBER SIGN..ARABIC SIGN SAFHA - {0x0604, 0x0605, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0606, 0x060F, propertyDISALLOWED}, // ARABIC-INDIC CUBE ROOT..ARABIC SIGN MISRA - {0x0610, 0x061A, propertyPVALID}, // ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..AR - {0x061B, 0x0, propertyDISALLOWED}, // ARABIC SEMICOLON - {0x061C, 0x061D, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x061E, 0x061F, propertyDISALLOWED}, // ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC Q - {0x0620, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0621, 0x063F, propertyPVALID}, // ARABIC LETTER HAMZA..ARABIC LETTER FARSI YEH - {0x0640, 0x0, propertyDISALLOWED}, // ARABIC TATWEEL - {0x0641, 0x065E, propertyPVALID}, // ARABIC LETTER FEH..ARABIC FATHA WITH TWO DOT - {0x065F, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0660, 0x0669, propertyCONTEXTO}, // ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT - {0x066A, 0x066D, propertyDISALLOWED}, // ARABIC PERCENT SIGN..ARABIC FIVE POINTED STA - {0x066E, 0x0674, propertyPVALID}, // ARABIC LETTER DOTLESS BEH..ARABIC LETTER HIG - {0x0675, 0x0678, propertyDISALLOWED}, // ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER - {0x0679, 0x06D3, propertyPVALID}, // ARABIC LETTER TTEH..ARABIC LETTER YEH BARREE - {0x06D4, 0x0, propertyDISALLOWED}, // ARABIC FULL STOP - {0x06D5, 0x06DC, propertyPVALID}, // ARABIC LETTER AE..ARABIC SMALL HIGH SEEN - {0x06DD, 0x06DE, propertyDISALLOWED}, // ARABIC END OF AYAH..ARABIC START OF RUB EL H - {0x06DF, 0x06E8, propertyPVALID}, // ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL - {0x06E9, 0x0, propertyDISALLOWED}, // ARABIC PLACE OF SAJDAH - {0x06EA, 0x06EF, propertyPVALID}, // ARABIC EMPTY CENTRE LOW STOP..ARABIC LETTER - {0x06F0, 0x06F9, propertyCONTEXTO}, // EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED A - {0x06FA, 0x06FF, propertyPVALID}, // ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC L - {0x0700, 0x070D, propertyDISALLOWED}, // SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN AST - {0x070E, 0x0, propertyUNASSIGNED}, // <reserved> - {0x070F, 0x0, propertyDISALLOWED}, // SYRIAC ABBREVIATION MARK - {0x0710, 0x074A, propertyPVALID}, // SYRIAC LETTER ALAPH..SYRIAC BARREKH - {0x074B, 0x074C, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x074D, 0x07B1, propertyPVALID}, // SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER N - {0x07B2, 0x07BF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x07C0, 0x07F5, propertyPVALID}, // NKO DIGIT ZERO..NKO LOW TONE APOSTROPHE - {0x07F6, 0x07FA, propertyDISALLOWED}, // NKO SYMBOL OO DENNEN..NKO LAJANYALAN - {0x07FB, 0x07FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0800, 0x082D, propertyPVALID}, // SAMARITAN LETTER ALAF..SAMARITAN MARK NEQUDA - {0x082E, 0x082F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0830, 0x083E, propertyDISALLOWED}, // SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUN - {0x083F, 0x08FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0900, 0x0939, propertyPVALID}, // DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANA - {0x093A, 0x093B, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x093C, 0x094E, propertyPVALID}, // DEVANAGARI SIGN NUKTA..DEVANAGARI VOWEL SIGN - {0x094F, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0950, 0x0955, propertyPVALID}, // DEVANAGARI OM..DEVANAGARI VOWEL SIGN CANDRA - {0x0956, 0x0957, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0958, 0x095F, propertyDISALLOWED}, // DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA - {0x0960, 0x0963, propertyPVALID}, // DEVANAGARI LETTER VOCALIC RR..DEVANAGARI VOW - {0x0964, 0x0965, propertyDISALLOWED}, // DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA - {0x0966, 0x096F, propertyPVALID}, // DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE - {0x0970, 0x0, propertyDISALLOWED}, // DEVANAGARI ABBREVIATION SIGN - {0x0971, 0x0972, propertyPVALID}, // DEVANAGARI SIGN HIGH SPACING DOT..DEVANAGARI - {0x0973, 0x0978, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0979, 0x097F, propertyPVALID}, // DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA - {0x0980, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0981, 0x0983, propertyPVALID}, // BENGALI SIGN CANDRABINDU..BENGALI SIGN VISAR - {0x0984, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0985, 0x098C, propertyPVALID}, // BENGALI LETTER A..BENGALI LETTER VOCALIC L - {0x098D, 0x098E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x098F, 0x0990, propertyPVALID}, // BENGALI LETTER E..BENGALI LETTER AI - {0x0991, 0x0992, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0993, 0x09A8, propertyPVALID}, // BENGALI LETTER O..BENGALI LETTER NA - {0x09A9, 0x0, propertyUNASSIGNED}, // <reserved> - {0x09AA, 0x09B0, propertyPVALID}, // BENGALI LETTER PA..BENGALI LETTER RA - {0x09B1, 0x0, propertyUNASSIGNED}, // <reserved> - {0x09B2, 0x0, propertyPVALID}, // BENGALI LETTER LA - {0x09B3, 0x09B5, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x09B6, 0x09B9, propertyPVALID}, // BENGALI LETTER SHA..BENGALI LETTER HA - {0x09BA, 0x09BB, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x09BC, 0x09C4, propertyPVALID}, // BENGALI SIGN NUKTA..BENGALI VOWEL SIGN VOCAL - {0x09C5, 0x09C6, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x09C7, 0x09C8, propertyPVALID}, // BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI - {0x09C9, 0x09CA, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x09CB, 0x09CE, propertyPVALID}, // BENGALI VOWEL SIGN O..BENGALI LETTER KHANDA - {0x09CF, 0x09D6, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x09D7, 0x0, propertyPVALID}, // BENGALI AU LENGTH MARK - {0x09D8, 0x09DB, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x09DC, 0x09DD, propertyDISALLOWED}, // BENGALI LETTER RRA..BENGALI LETTER RHA - {0x09DE, 0x0, propertyUNASSIGNED}, // <reserved> - {0x09DF, 0x0, propertyDISALLOWED}, // BENGALI LETTER YYA - {0x09E0, 0x09E3, propertyPVALID}, // BENGALI LETTER VOCALIC RR..BENGALI VOWEL SIG - {0x09E4, 0x09E5, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x09E6, 0x09F1, propertyPVALID}, // BENGALI DIGIT ZERO..BENGALI LETTER RA WITH L - {0x09F2, 0x09FB, propertyDISALLOWED}, // BENGALI RUPEE MARK..BENGALI GANDA MARK - {0x09FC, 0x0A00, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0A01, 0x0A03, propertyPVALID}, // GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN VISA - {0x0A04, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0A05, 0x0A0A, propertyPVALID}, // GURMUKHI LETTER A..GURMUKHI LETTER UU - {0x0A0B, 0x0A0E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0A0F, 0x0A10, propertyPVALID}, // GURMUKHI LETTER EE..GURMUKHI LETTER AI - {0x0A11, 0x0A12, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0A13, 0x0A28, propertyPVALID}, // GURMUKHI LETTER OO..GURMUKHI LETTER NA - {0x0A29, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0A2A, 0x0A30, propertyPVALID}, // GURMUKHI LETTER PA..GURMUKHI LETTER RA - {0x0A31, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0A32, 0x0, propertyPVALID}, // GURMUKHI LETTER LA - {0x0A33, 0x0, propertyDISALLOWED}, // GURMUKHI LETTER LLA - {0x0A34, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0A35, 0x0, propertyPVALID}, // GURMUKHI LETTER VA - {0x0A36, 0x0, propertyDISALLOWED}, // GURMUKHI LETTER SHA - {0x0A37, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0A38, 0x0A39, propertyPVALID}, // GURMUKHI LETTER SA..GURMUKHI LETTER HA - {0x0A3A, 0x0A3B, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0A3C, 0x0, propertyPVALID}, // GURMUKHI SIGN NUKTA - {0x0A3D, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0A3E, 0x0A42, propertyPVALID}, // GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN - {0x0A43, 0x0A46, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0A47, 0x0A48, propertyPVALID}, // GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN - {0x0A49, 0x0A4A, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0A4B, 0x0A4D, propertyPVALID}, // GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA - {0x0A4E, 0x0A50, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0A51, 0x0, propertyPVALID}, // GURMUKHI SIGN UDAAT - {0x0A52, 0x0A58, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0A59, 0x0A5B, propertyDISALLOWED}, // GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA - {0x0A5C, 0x0, propertyPVALID}, // GURMUKHI LETTER RRA - {0x0A5D, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0A5E, 0x0, propertyDISALLOWED}, // GURMUKHI LETTER FA - {0x0A5F, 0x0A65, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0A66, 0x0A75, propertyPVALID}, // GURMUKHI DIGIT ZERO..GURMUKHI SIGN YAKASH - {0x0A76, 0x0A80, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0A81, 0x0A83, propertyPVALID}, // GUJARATI SIGN CANDRABINDU..GUJARATI SIGN VIS - {0x0A84, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0A85, 0x0A8D, propertyPVALID}, // GUJARATI LETTER A..GUJARATI VOWEL CANDRA E - {0x0A8E, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0A8F, 0x0A91, propertyPVALID}, // GUJARATI LETTER E..GUJARATI VOWEL CANDRA O - {0x0A92, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0A93, 0x0AA8, propertyPVALID}, // GUJARATI LETTER O..GUJARATI LETTER NA - {0x0AA9, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0AAA, 0x0AB0, propertyPVALID}, // GUJARATI LETTER PA..GUJARATI LETTER RA - {0x0AB1, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0AB2, 0x0AB3, propertyPVALID}, // GUJARATI LETTER LA..GUJARATI LETTER LLA - {0x0AB4, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0AB5, 0x0AB9, propertyPVALID}, // GUJARATI LETTER VA..GUJARATI LETTER HA - {0x0ABA, 0x0ABB, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0ABC, 0x0AC5, propertyPVALID}, // GUJARATI SIGN NUKTA..GUJARATI VOWEL SIGN CAN - {0x0AC6, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0AC7, 0x0AC9, propertyPVALID}, // GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN C - {0x0ACA, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0ACB, 0x0ACD, propertyPVALID}, // GUJARATI VOWEL SIGN O..GUJARATI SIGN VIRAMA - {0x0ACE, 0x0ACF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0AD0, 0x0, propertyPVALID}, // GUJARATI OM - {0x0AD1, 0x0ADF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0AE0, 0x0AE3, propertyPVALID}, // GUJARATI LETTER VOCALIC RR..GUJARATI VOWEL S - {0x0AE4, 0x0AE5, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0AE6, 0x0AEF, propertyPVALID}, // GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE - {0x0AF0, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0AF1, 0x0, propertyDISALLOWED}, // GUJARATI RUPEE SIGN - {0x0AF2, 0x0B00, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0B01, 0x0B03, propertyPVALID}, // ORIYA SIGN CANDRABINDU..ORIYA SIGN VISARGA - {0x0B04, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0B05, 0x0B0C, propertyPVALID}, // ORIYA LETTER A..ORIYA LETTER VOCALIC L - {0x0B0D, 0x0B0E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0B0F, 0x0B10, propertyPVALID}, // ORIYA LETTER E..ORIYA LETTER AI - {0x0B11, 0x0B12, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0B13, 0x0B28, propertyPVALID}, // ORIYA LETTER O..ORIYA LETTER NA - {0x0B29, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0B2A, 0x0B30, propertyPVALID}, // ORIYA LETTER PA..ORIYA LETTER RA - {0x0B31, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0B32, 0x0B33, propertyPVALID}, // ORIYA LETTER LA..ORIYA LETTER LLA - {0x0B34, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0B35, 0x0B39, propertyPVALID}, // ORIYA LETTER VA..ORIYA LETTER HA - {0x0B3A, 0x0B3B, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0B3C, 0x0B44, propertyPVALID}, // ORIYA SIGN NUKTA..ORIYA VOWEL SIGN VOCALIC R - {0x0B45, 0x0B46, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0B47, 0x0B48, propertyPVALID}, // ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI - {0x0B49, 0x0B4A, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0B4B, 0x0B4D, propertyPVALID}, // ORIYA VOWEL SIGN O..ORIYA SIGN VIRAMA - {0x0B4E, 0x0B55, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0B56, 0x0B57, propertyPVALID}, // ORIYA AI LENGTH MARK..ORIYA AU LENGTH MARK - {0x0B58, 0x0B5B, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0B5C, 0x0B5D, propertyDISALLOWED}, // ORIYA LETTER RRA..ORIYA LETTER RHA - {0x0B5E, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0B5F, 0x0B63, propertyPVALID}, // ORIYA LETTER YYA..ORIYA VOWEL SIGN VOCALIC L - {0x0B64, 0x0B65, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0B66, 0x0B6F, propertyPVALID}, // ORIYA DIGIT ZERO..ORIYA DIGIT NINE - {0x0B70, 0x0, propertyDISALLOWED}, // ORIYA ISSHAR - {0x0B71, 0x0, propertyPVALID}, // ORIYA LETTER WA - {0x0B72, 0x0B81, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0B82, 0x0B83, propertyPVALID}, // TAMIL SIGN ANUSVARA..TAMIL SIGN VISARGA - {0x0B84, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0B85, 0x0B8A, propertyPVALID}, // TAMIL LETTER A..TAMIL LETTER UU - {0x0B8B, 0x0B8D, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0B8E, 0x0B90, propertyPVALID}, // TAMIL LETTER E..TAMIL LETTER AI - {0x0B91, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0B92, 0x0B95, propertyPVALID}, // TAMIL LETTER O..TAMIL LETTER KA - {0x0B96, 0x0B98, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0B99, 0x0B9A, propertyPVALID}, // TAMIL LETTER NGA..TAMIL LETTER CA - {0x0B9B, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0B9C, 0x0, propertyPVALID}, // TAMIL LETTER JA - {0x0B9D, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0B9E, 0x0B9F, propertyPVALID}, // TAMIL LETTER NYA..TAMIL LETTER TTA - {0x0BA0, 0x0BA2, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0BA3, 0x0BA4, propertyPVALID}, // TAMIL LETTER NNA..TAMIL LETTER TA - {0x0BA5, 0x0BA7, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0BA8, 0x0BAA, propertyPVALID}, // TAMIL LETTER NA..TAMIL LETTER PA - {0x0BAB, 0x0BAD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0BAE, 0x0BB9, propertyPVALID}, // TAMIL LETTER MA..TAMIL LETTER HA - {0x0BBA, 0x0BBD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0BBE, 0x0BC2, propertyPVALID}, // TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN UU - {0x0BC3, 0x0BC5, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0BC6, 0x0BC8, propertyPVALID}, // TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI - {0x0BC9, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0BCA, 0x0BCD, propertyPVALID}, // TAMIL VOWEL SIGN O..TAMIL SIGN VIRAMA - {0x0BCE, 0x0BCF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0BD0, 0x0, propertyPVALID}, // TAMIL OM - {0x0BD1, 0x0BD6, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0BD7, 0x0, propertyPVALID}, // TAMIL AU LENGTH MARK - {0x0BD8, 0x0BE5, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0BE6, 0x0BEF, propertyPVALID}, // TAMIL DIGIT ZERO..TAMIL DIGIT NINE - {0x0BF0, 0x0BFA, propertyDISALLOWED}, // TAMIL NUMBER TEN..TAMIL NUMBER SIGN - {0x0BFB, 0x0C00, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0C01, 0x0C03, propertyPVALID}, // TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA - {0x0C04, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0C05, 0x0C0C, propertyPVALID}, // TELUGU LETTER A..TELUGU LETTER VOCALIC L - {0x0C0D, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0C0E, 0x0C10, propertyPVALID}, // TELUGU LETTER E..TELUGU LETTER AI - {0x0C11, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0C12, 0x0C28, propertyPVALID}, // TELUGU LETTER O..TELUGU LETTER NA - {0x0C29, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0C2A, 0x0C33, propertyPVALID}, // TELUGU LETTER PA..TELUGU LETTER LLA - {0x0C34, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0C35, 0x0C39, propertyPVALID}, // TELUGU LETTER VA..TELUGU LETTER HA - {0x0C3A, 0x0C3C, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0C3D, 0x0C44, propertyPVALID}, // TELUGU SIGN AVAGRAHA..TELUGU VOWEL SIGN VOCA - {0x0C45, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0C46, 0x0C48, propertyPVALID}, // TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI - {0x0C49, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0C4A, 0x0C4D, propertyPVALID}, // TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA - {0x0C4E, 0x0C54, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0C55, 0x0C56, propertyPVALID}, // TELUGU LENGTH MARK..TELUGU AI LENGTH MARK - {0x0C57, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0C58, 0x0C59, propertyPVALID}, // TELUGU LETTER TSA..TELUGU LETTER DZA - {0x0C5A, 0x0C5F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0C60, 0x0C63, propertyPVALID}, // TELUGU LETTER VOCALIC RR..TELUGU VOWEL SIGN - {0x0C64, 0x0C65, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0C66, 0x0C6F, propertyPVALID}, // TELUGU DIGIT ZERO..TELUGU DIGIT NINE - {0x0C70, 0x0C77, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0C78, 0x0C7F, propertyDISALLOWED}, // TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF - {0x0C80, 0x0C81, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0C82, 0x0C83, propertyPVALID}, // KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA - {0x0C84, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0C85, 0x0C8C, propertyPVALID}, // KANNADA LETTER A..KANNADA LETTER VOCALIC L - {0x0C8D, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0C8E, 0x0C90, propertyPVALID}, // KANNADA LETTER E..KANNADA LETTER AI - {0x0C91, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0C92, 0x0CA8, propertyPVALID}, // KANNADA LETTER O..KANNADA LETTER NA - {0x0CA9, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0CAA, 0x0CB3, propertyPVALID}, // KANNADA LETTER PA..KANNADA LETTER LLA - {0x0CB4, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0CB5, 0x0CB9, propertyPVALID}, // KANNADA LETTER VA..KANNADA LETTER HA - {0x0CBA, 0x0CBB, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0CBC, 0x0CC4, propertyPVALID}, // KANNADA SIGN NUKTA..KANNADA VOWEL SIGN VOCAL - {0x0CC5, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0CC6, 0x0CC8, propertyPVALID}, // KANNADA VOWEL SIGN E..KANNADA VOWEL SIGN AI - {0x0CC9, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0CCA, 0x0CCD, propertyPVALID}, // KANNADA VOWEL SIGN O..KANNADA SIGN VIRAMA - {0x0CCE, 0x0CD4, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0CD5, 0x0CD6, propertyPVALID}, // KANNADA LENGTH MARK..KANNADA AI LENGTH MARK - {0x0CD7, 0x0CDD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0CDE, 0x0, propertyPVALID}, // KANNADA LETTER FA - {0x0CDF, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0CE0, 0x0CE3, propertyPVALID}, // KANNADA LETTER VOCALIC RR..KANNADA VOWEL SIG - {0x0CE4, 0x0CE5, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0CE6, 0x0CEF, propertyPVALID}, // KANNADA DIGIT ZERO..KANNADA DIGIT NINE - {0x0CF0, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0CF1, 0x0CF2, propertyDISALLOWED}, // KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADH - {0x0CF3, 0x0D01, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0D02, 0x0D03, propertyPVALID}, // MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISA - {0x0D04, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0D05, 0x0D0C, propertyPVALID}, // MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC - {0x0D0D, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0D0E, 0x0D10, propertyPVALID}, // MALAYALAM LETTER E..MALAYALAM LETTER AI - {0x0D11, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0D12, 0x0D28, propertyPVALID}, // MALAYALAM LETTER O..MALAYALAM LETTER NA - {0x0D29, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0D2A, 0x0D39, propertyPVALID}, // MALAYALAM LETTER PA..MALAYALAM LETTER HA - {0x0D3A, 0x0D3C, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0D3D, 0x0D44, propertyPVALID}, // MALAYALAM SIGN AVAGRAHA..MALAYALAM VOWEL SIG - {0x0D45, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0D46, 0x0D48, propertyPVALID}, // MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN - {0x0D49, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0D4A, 0x0D4D, propertyPVALID}, // MALAYALAM VOWEL SIGN O..MALAYALAM SIGN VIRAM - {0x0D4E, 0x0D56, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0D57, 0x0, propertyPVALID}, // MALAYALAM AU LENGTH MARK - {0x0D58, 0x0D5F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0D60, 0x0D63, propertyPVALID}, // MALAYALAM LETTER VOCALIC RR..MALAYALAM VOWEL - {0x0D64, 0x0D65, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0D66, 0x0D6F, propertyPVALID}, // MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE - {0x0D70, 0x0D75, propertyDISALLOWED}, // MALAYALAM NUMBER TEN..MALAYALAM FRACTION THR - {0x0D76, 0x0D78, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0D79, 0x0, propertyDISALLOWED}, // MALAYALAM DATE MARK - {0x0D7A, 0x0D7F, propertyPVALID}, // MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER - {0x0D80, 0x0D81, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0D82, 0x0D83, propertyPVALID}, // SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARG - {0x0D84, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0D85, 0x0D96, propertyPVALID}, // SINHALA LETTER AYANNA..SINHALA LETTER AUYANN - {0x0D97, 0x0D99, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0D9A, 0x0DB1, propertyPVALID}, // SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA L - {0x0DB2, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0DB3, 0x0DBB, propertyPVALID}, // SINHALA LETTER SANYAKA DAYANNA..SINHALA LETT - {0x0DBC, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0DBD, 0x0, propertyPVALID}, // SINHALA LETTER DANTAJA LAYANNA - {0x0DBE, 0x0DBF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0DC0, 0x0DC6, propertyPVALID}, // SINHALA LETTER VAYANNA..SINHALA LETTER FAYAN - {0x0DC7, 0x0DC9, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0DCA, 0x0, propertyPVALID}, // SINHALA SIGN AL-LAKUNA - {0x0DCB, 0x0DCE, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0DCF, 0x0DD4, propertyPVALID}, // SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL - {0x0DD5, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0DD6, 0x0, propertyPVALID}, // SINHALA VOWEL SIGN DIGA PAA-PILLA - {0x0DD7, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0DD8, 0x0DDF, propertyPVALID}, // SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOW - {0x0DE0, 0x0DF1, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0DF2, 0x0DF3, propertyPVALID}, // SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHAL - {0x0DF4, 0x0, propertyDISALLOWED}, // SINHALA PUNCTUATION KUNDDALIYA - {0x0DF5, 0x0E00, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0E01, 0x0E32, propertyPVALID}, // THAI CHARACTER KO KAI..THAI CHARACTER SARA A - {0x0E33, 0x0, propertyDISALLOWED}, // THAI CHARACTER SARA AM - {0x0E34, 0x0E3A, propertyPVALID}, // THAI CHARACTER SARA I..THAI CHARACTER PHINTH - {0x0E3B, 0x0E3E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0E3F, 0x0, propertyDISALLOWED}, // THAI CURRENCY SYMBOL BAHT - {0x0E40, 0x0E4E, propertyPVALID}, // THAI CHARACTER SARA E..THAI CHARACTER YAMAKK - {0x0E4F, 0x0, propertyDISALLOWED}, // THAI CHARACTER FONGMAN - {0x0E50, 0x0E59, propertyPVALID}, // THAI DIGIT ZERO..THAI DIGIT NINE - {0x0E5A, 0x0E5B, propertyDISALLOWED}, // THAI CHARACTER ANGKHANKHU..THAI CHARACTER KH - {0x0E5C, 0x0E80, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0E81, 0x0E82, propertyPVALID}, // LAO LETTER KO..LAO LETTER KHO SUNG - {0x0E83, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0E84, 0x0, propertyPVALID}, // LAO LETTER KHO TAM - {0x0E85, 0x0E86, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0E87, 0x0E88, propertyPVALID}, // LAO LETTER NGO..LAO LETTER CO - {0x0E89, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0E8A, 0x0, propertyPVALID}, // LAO LETTER SO TAM - {0x0E8B, 0x0E8C, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0E8D, 0x0, propertyPVALID}, // LAO LETTER NYO - {0x0E8E, 0x0E93, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0E94, 0x0E97, propertyPVALID}, // LAO LETTER DO..LAO LETTER THO TAM - {0x0E98, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0E99, 0x0E9F, propertyPVALID}, // LAO LETTER NO..LAO LETTER FO SUNG - {0x0EA0, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0EA1, 0x0EA3, propertyPVALID}, // LAO LETTER MO..LAO LETTER LO LING - {0x0EA4, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0EA5, 0x0, propertyPVALID}, // LAO LETTER LO LOOT - {0x0EA6, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0EA7, 0x0, propertyPVALID}, // LAO LETTER WO - {0x0EA8, 0x0EA9, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0EAA, 0x0EAB, propertyPVALID}, // LAO LETTER SO SUNG..LAO LETTER HO SUNG - {0x0EAC, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0EAD, 0x0EB2, propertyPVALID}, // LAO LETTER O..LAO VOWEL SIGN AA - {0x0EB3, 0x0, propertyDISALLOWED}, // LAO VOWEL SIGN AM - {0x0EB4, 0x0EB9, propertyPVALID}, // LAO VOWEL SIGN I..LAO VOWEL SIGN UU - {0x0EBA, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0EBB, 0x0EBD, propertyPVALID}, // LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN N - {0x0EBE, 0x0EBF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0EC0, 0x0EC4, propertyPVALID}, // LAO VOWEL SIGN E..LAO VOWEL SIGN AI - {0x0EC5, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0EC6, 0x0, propertyPVALID}, // LAO KO LA - {0x0EC7, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0EC8, 0x0ECD, propertyPVALID}, // LAO TONE MAI EK..LAO NIGGAHITA - {0x0ECE, 0x0ECF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0ED0, 0x0ED9, propertyPVALID}, // LAO DIGIT ZERO..LAO DIGIT NINE - {0x0EDA, 0x0EDB, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0EDC, 0x0EDD, propertyDISALLOWED}, // LAO HO NO..LAO HO MO - {0x0EDE, 0x0EFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0F00, 0x0, propertyPVALID}, // TIBETAN SYLLABLE OM - {0x0F01, 0x0F0A, propertyDISALLOWED}, // TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBET - {0x0F0B, 0x0, propertyPVALID}, // TIBETAN MARK INTERSYLLABIC TSHEG - {0x0F0C, 0x0F17, propertyDISALLOWED}, // TIBETAN MARK DELIMITER TSHEG BSTAR..TIBETAN - {0x0F18, 0x0F19, propertyPVALID}, // TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN - {0x0F1A, 0x0F1F, propertyDISALLOWED}, // TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RD - {0x0F20, 0x0F29, propertyPVALID}, // TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE - {0x0F2A, 0x0F34, propertyDISALLOWED}, // TIBETAN DIGIT HALF ONE..TIBETAN MARK BSDUS R - {0x0F35, 0x0, propertyPVALID}, // TIBETAN MARK NGAS BZUNG NYI ZLA - {0x0F36, 0x0, propertyDISALLOWED}, // TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN - {0x0F37, 0x0, propertyPVALID}, // TIBETAN MARK NGAS BZUNG SGOR RTAGS - {0x0F38, 0x0, propertyDISALLOWED}, // TIBETAN MARK CHE MGO - {0x0F39, 0x0, propertyPVALID}, // TIBETAN MARK TSA -PHRU - {0x0F3A, 0x0F3D, propertyDISALLOWED}, // TIBETAN MARK GUG RTAGS GYON..TIBETAN MARK AN - {0x0F3E, 0x0F42, propertyPVALID}, // TIBETAN SIGN YAR TSHES..TIBETAN LETTER GA - {0x0F43, 0x0, propertyDISALLOWED}, // TIBETAN LETTER GHA - {0x0F44, 0x0F47, propertyPVALID}, // TIBETAN LETTER NGA..TIBETAN LETTER JA - {0x0F48, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0F49, 0x0F4C, propertyPVALID}, // TIBETAN LETTER NYA..TIBETAN LETTER DDA - {0x0F4D, 0x0, propertyDISALLOWED}, // TIBETAN LETTER DDHA - {0x0F4E, 0x0F51, propertyPVALID}, // TIBETAN LETTER NNA..TIBETAN LETTER DA - {0x0F52, 0x0, propertyDISALLOWED}, // TIBETAN LETTER DHA - {0x0F53, 0x0F56, propertyPVALID}, // TIBETAN LETTER NA..TIBETAN LETTER BA - {0x0F57, 0x0, propertyDISALLOWED}, // TIBETAN LETTER BHA - {0x0F58, 0x0F5B, propertyPVALID}, // TIBETAN LETTER MA..TIBETAN LETTER DZA - {0x0F5C, 0x0, propertyDISALLOWED}, // TIBETAN LETTER DZHA - {0x0F5D, 0x0F68, propertyPVALID}, // TIBETAN LETTER WA..TIBETAN LETTER A - {0x0F69, 0x0, propertyDISALLOWED}, // TIBETAN LETTER KSSA - {0x0F6A, 0x0F6C, propertyPVALID}, // TIBETAN LETTER FIXED-FORM RA..TIBETAN LETTER - {0x0F6D, 0x0F70, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0F71, 0x0F72, propertyPVALID}, // TIBETAN VOWEL SIGN AA..TIBETAN VOWEL SIGN I - {0x0F73, 0x0, propertyDISALLOWED}, // TIBETAN VOWEL SIGN II - {0x0F74, 0x0, propertyPVALID}, // TIBETAN VOWEL SIGN U - {0x0F75, 0x0F79, propertyDISALLOWED}, // TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VO - {0x0F7A, 0x0F80, propertyPVALID}, // TIBETAN VOWEL SIGN E..TIBETAN VOWEL SIGN REV - {0x0F81, 0x0, propertyDISALLOWED}, // TIBETAN VOWEL SIGN REVERSED II - {0x0F82, 0x0F84, propertyPVALID}, // TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HA - {0x0F85, 0x0, propertyDISALLOWED}, // TIBETAN MARK PALUTA - {0x0F86, 0x0F8B, propertyPVALID}, // TIBETAN SIGN LCI RTAGS..TIBETAN SIGN GRU MED - {0x0F8C, 0x0F8F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x0F90, 0x0F92, propertyPVALID}, // TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOIN - {0x0F93, 0x0, propertyDISALLOWED}, // TIBETAN SUBJOINED LETTER GHA - {0x0F94, 0x0F97, propertyPVALID}, // TIBETAN SUBJOINED LETTER NGA..TIBETAN SUBJOI - {0x0F98, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0F99, 0x0F9C, propertyPVALID}, // TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOI - {0x0F9D, 0x0, propertyDISALLOWED}, // TIBETAN SUBJOINED LETTER DDHA - {0x0F9E, 0x0FA1, propertyPVALID}, // TIBETAN SUBJOINED LETTER NNA..TIBETAN SUBJOI - {0x0FA2, 0x0, propertyDISALLOWED}, // TIBETAN SUBJOINED LETTER DHA - {0x0FA3, 0x0FA6, propertyPVALID}, // TIBETAN SUBJOINED LETTER NA..TIBETAN SUBJOIN - {0x0FA7, 0x0, propertyDISALLOWED}, // TIBETAN SUBJOINED LETTER BHA - {0x0FA8, 0x0FAB, propertyPVALID}, // TIBETAN SUBJOINED LETTER MA..TIBETAN SUBJOIN - {0x0FAC, 0x0, propertyDISALLOWED}, // TIBETAN SUBJOINED LETTER DZHA - {0x0FAD, 0x0FB8, propertyPVALID}, // TIBETAN SUBJOINED LETTER WA..TIBETAN SUBJOIN - {0x0FB9, 0x0, propertyDISALLOWED}, // TIBETAN SUBJOINED LETTER KSSA - {0x0FBA, 0x0FBC, propertyPVALID}, // TIBETAN SUBJOINED LETTER FIXED-FORM WA..TIBE - {0x0FBD, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0FBE, 0x0FC5, propertyDISALLOWED}, // TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE - {0x0FC6, 0x0, propertyPVALID}, // TIBETAN SYMBOL PADMA GDAN - {0x0FC7, 0x0FCC, propertyDISALLOWED}, // TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SY - {0x0FCD, 0x0, propertyUNASSIGNED}, // <reserved> - {0x0FCE, 0x0FD8, propertyDISALLOWED}, // TIBETAN SIGN RDEL NAG RDEL DKAR..LEFT-FACING - {0x0FD9, 0x0FFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1000, 0x1049, propertyPVALID}, // MYANMAR LETTER KA..MYANMAR DIGIT NINE - {0x104A, 0x104F, propertyDISALLOWED}, // MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL - {0x1050, 0x109D, propertyPVALID}, // MYANMAR LETTER SHA..MYANMAR VOWEL SIGN AITON - {0x109E, 0x10C5, propertyDISALLOWED}, // MYANMAR SYMBOL SHAN ONE..GEORGIAN CAPITAL LE - {0x10C6, 0x10CF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10D0, 0x10FA, propertyPVALID}, // GEORGIAN LETTER AN..GEORGIAN LETTER AIN - {0x10FB, 0x10FC, propertyDISALLOWED}, // GEORGIAN PARAGRAPH SEPARATOR..MODIFIER LETTE - {0x10FD, 0x10FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1100, 0x11FF, propertyDISALLOWED}, // HANGUL CHOSEONG KIYEOK..HANGUL JONGSEONG SSA - {0x1200, 0x1248, propertyPVALID}, // ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA - {0x1249, 0x0, propertyUNASSIGNED}, // <reserved> - {0x124A, 0x124D, propertyPVALID}, // ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE - {0x124E, 0x124F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1250, 0x1256, propertyPVALID}, // ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO - {0x1257, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1258, 0x0, propertyPVALID}, // ETHIOPIC SYLLABLE QHWA - {0x1259, 0x0, propertyUNASSIGNED}, // <reserved> - {0x125A, 0x125D, propertyPVALID}, // ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QH - {0x125E, 0x125F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1260, 0x1288, propertyPVALID}, // ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA - {0x1289, 0x0, propertyUNASSIGNED}, // <reserved> - {0x128A, 0x128D, propertyPVALID}, // ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE - {0x128E, 0x128F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1290, 0x12B0, propertyPVALID}, // ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA - {0x12B1, 0x0, propertyUNASSIGNED}, // <reserved> - {0x12B2, 0x12B5, propertyPVALID}, // ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE - {0x12B6, 0x12B7, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x12B8, 0x12BE, propertyPVALID}, // ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO - {0x12BF, 0x0, propertyUNASSIGNED}, // <reserved> - {0x12C0, 0x0, propertyPVALID}, // ETHIOPIC SYLLABLE KXWA - {0x12C1, 0x0, propertyUNASSIGNED}, // <reserved> - {0x12C2, 0x12C5, propertyPVALID}, // ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KX - {0x12C6, 0x12C7, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x12C8, 0x12D6, propertyPVALID}, // ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHAR - {0x12D7, 0x0, propertyUNASSIGNED}, // <reserved> - {0x12D8, 0x1310, propertyPVALID}, // ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA - {0x1311, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1312, 0x1315, propertyPVALID}, // ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE - {0x1316, 0x1317, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1318, 0x135A, propertyPVALID}, // ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA - {0x135B, 0x135E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x135F, 0x0, propertyPVALID}, // ETHIOPIC COMBINING GEMINATION MARK - {0x1360, 0x137C, propertyDISALLOWED}, // ETHIOPIC SECTION MARK..ETHIOPIC NUMBER TEN T - {0x137D, 0x137F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1380, 0x138F, propertyPVALID}, // ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SY - {0x1390, 0x1399, propertyDISALLOWED}, // ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MA - {0x139A, 0x139F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x13A0, 0x13F4, propertyPVALID}, // CHEROKEE LETTER A..CHEROKEE LETTER YV - {0x13F5, 0x13FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1400, 0x0, propertyDISALLOWED}, // CANADIAN SYLLABICS HYPHEN - {0x1401, 0x166C, propertyPVALID}, // CANADIAN SYLLABICS E..CANADIAN SYLLABICS CAR - {0x166D, 0x166E, propertyDISALLOWED}, // CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLAB - {0x166F, 0x167F, propertyPVALID}, // CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS B - {0x1680, 0x0, propertyDISALLOWED}, // OGHAM SPACE MARK - {0x1681, 0x169A, propertyPVALID}, // OGHAM LETTER BEITH..OGHAM LETTER PEITH - {0x169B, 0x169C, propertyDISALLOWED}, // OGHAM FEATHER MARK..OGHAM REVERSED FEATHER M - {0x169D, 0x169F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x16A0, 0x16EA, propertyPVALID}, // RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X - {0x16EB, 0x16F0, propertyDISALLOWED}, // RUNIC SINGLE PUNCTUATION..RUNIC BELGTHOR SYM - {0x16F1, 0x16FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1700, 0x170C, propertyPVALID}, // TAGALOG LETTER A..TAGALOG LETTER YA - {0x170D, 0x0, propertyUNASSIGNED}, // <reserved> - {0x170E, 0x1714, propertyPVALID}, // TAGALOG LETTER LA..TAGALOG SIGN VIRAMA - {0x1715, 0x171F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1720, 0x1734, propertyPVALID}, // HANUNOO LETTER A..HANUNOO SIGN PAMUDPOD - {0x1735, 0x1736, propertyDISALLOWED}, // PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DO - {0x1737, 0x173F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1740, 0x1753, propertyPVALID}, // BUHID LETTER A..BUHID VOWEL SIGN U - {0x1754, 0x175F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1760, 0x176C, propertyPVALID}, // TAGBANWA LETTER A..TAGBANWA LETTER YA - {0x176D, 0x0, propertyUNASSIGNED}, // <reserved> - {0x176E, 0x1770, propertyPVALID}, // TAGBANWA LETTER LA..TAGBANWA LETTER SA - {0x1771, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1772, 0x1773, propertyPVALID}, // TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U - {0x1774, 0x177F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1780, 0x17B3, propertyPVALID}, // KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU - {0x17B4, 0x17B5, propertyDISALLOWED}, // KHMER VOWEL INHERENT AQ..KHMER VOWEL INHEREN - {0x17B6, 0x17D3, propertyPVALID}, // KHMER VOWEL SIGN AA..KHMER SIGN BATHAMASAT - {0x17D4, 0x17D6, propertyDISALLOWED}, // KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH - {0x17D7, 0x0, propertyPVALID}, // KHMER SIGN LEK TOO - {0x17D8, 0x17DB, propertyDISALLOWED}, // KHMER SIGN BEYYAL..KHMER CURRENCY SYMBOL RIE - {0x17DC, 0x17DD, propertyPVALID}, // KHMER SIGN AVAKRAHASANYA..KHMER SIGN ATTHACA - {0x17DE, 0x17DF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x17E0, 0x17E9, propertyPVALID}, // KHMER DIGIT ZERO..KHMER DIGIT NINE - {0x17EA, 0x17EF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x17F0, 0x17F9, propertyDISALLOWED}, // KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK - {0x17FA, 0x17FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1800, 0x180E, propertyDISALLOWED}, // MONGOLIAN BIRGA..MONGOLIAN VOWEL SEPARATOR - {0x180F, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1810, 0x1819, propertyPVALID}, // MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE - {0x181A, 0x181F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1820, 0x1877, propertyPVALID}, // MONGOLIAN LETTER A..MONGOLIAN LETTER MANCHU - {0x1878, 0x187F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1880, 0x18AA, propertyPVALID}, // MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONG - {0x18AB, 0x18AF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x18B0, 0x18F5, propertyPVALID}, // CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CA - {0x18F6, 0x18FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1900, 0x191C, propertyPVALID}, // LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA - {0x191D, 0x191F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1920, 0x192B, propertyPVALID}, // LIMBU VOWEL SIGN A..LIMBU SUBJOINED LETTER W - {0x192C, 0x192F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1930, 0x193B, propertyPVALID}, // LIMBU SMALL LETTER KA..LIMBU SIGN SA-I - {0x193C, 0x193F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1940, 0x0, propertyDISALLOWED}, // LIMBU SIGN LOO - {0x1941, 0x1943, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1944, 0x1945, propertyDISALLOWED}, // LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK - {0x1946, 0x196D, propertyPVALID}, // LIMBU DIGIT ZERO..TAI LE LETTER AI - {0x196E, 0x196F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1970, 0x1974, propertyPVALID}, // TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 - {0x1975, 0x197F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1980, 0x19AB, propertyPVALID}, // NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETT - {0x19AC, 0x19AF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x19B0, 0x19C9, propertyPVALID}, // NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW - {0x19CA, 0x19CF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x19D0, 0x19DA, propertyPVALID}, // NEW TAI LUE DIGIT ZERO..NEW TAI LUE THAM DIG - {0x19DB, 0x19DD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x19DE, 0x19FF, propertyDISALLOWED}, // NEW TAI LUE SIGN LAE..KHMER SYMBOL DAP-PRAM - {0x1A00, 0x1A1B, propertyPVALID}, // BUGINESE LETTER KA..BUGINESE VOWEL SIGN AE - {0x1A1C, 0x1A1D, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1A1E, 0x1A1F, propertyDISALLOWED}, // BUGINESE PALLAWA..BUGINESE END OF SECTION - {0x1A20, 0x1A5E, propertyPVALID}, // TAI THAM LETTER HIGH KA..TAI THAM CONSONANT - {0x1A5F, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1A60, 0x1A7C, propertyPVALID}, // TAI THAM SIGN SAKOT..TAI THAM SIGN KHUEN-LUE - {0x1A7D, 0x1A7E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1A7F, 0x1A89, propertyPVALID}, // TAI THAM COMBINING CRYPTOGRAMMIC DOT..TAI TH - {0x1A8A, 0x1A8F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1A90, 0x1A99, propertyPVALID}, // TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGI - {0x1A9A, 0x1A9F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1AA0, 0x1AA6, propertyDISALLOWED}, // TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED - {0x1AA7, 0x0, propertyPVALID}, // TAI THAM SIGN MAI YAMOK - {0x1AA8, 0x1AAD, propertyDISALLOWED}, // TAI THAM SIGN KAAN..TAI THAM SIGN CAANG - {0x1AAE, 0x1AFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1B00, 0x1B4B, propertyPVALID}, // BALINESE SIGN ULU RICEM..BALINESE LETTER ASY - {0x1B4C, 0x1B4F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1B50, 0x1B59, propertyPVALID}, // BALINESE DIGIT ZERO..BALINESE DIGIT NINE - {0x1B5A, 0x1B6A, propertyDISALLOWED}, // BALINESE PANTI..BALINESE MUSICAL SYMBOL DANG - {0x1B6B, 0x1B73, propertyPVALID}, // BALINESE MUSICAL SYMBOL COMBINING TEGEH..BAL - {0x1B74, 0x1B7C, propertyDISALLOWED}, // BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG. - {0x1B7D, 0x1B7F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1B80, 0x1BAA, propertyPVALID}, // SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PAMA - {0x1BAB, 0x1BAD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1BAE, 0x1BB9, propertyPVALID}, // SUNDANESE LETTER KHA..SUNDANESE DIGIT NINE - {0x1BBA, 0x1BFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1C00, 0x1C37, propertyPVALID}, // LEPCHA LETTER KA..LEPCHA SIGN NUKTA - {0x1C38, 0x1C3A, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1C3B, 0x1C3F, propertyDISALLOWED}, // LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATIO - {0x1C40, 0x1C49, propertyPVALID}, // LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE - {0x1C4A, 0x1C4C, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1C4D, 0x1C7D, propertyPVALID}, // LEPCHA LETTER TTA..OL CHIKI AHAD - {0x1C7E, 0x1C7F, propertyDISALLOWED}, // OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTU - {0x1C80, 0x1CCF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1CD0, 0x1CD2, propertyPVALID}, // VEDIC TONE KARSHANA..VEDIC TONE PRENKHA - {0x1CD3, 0x0, propertyDISALLOWED}, // VEDIC SIGN NIHSHVASA - {0x1CD4, 0x1CF2, propertyPVALID}, // VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC - {0x1CF3, 0x1CFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D00, 0x1D2B, propertyPVALID}, // LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTE - {0x1D2C, 0x1D2E, propertyDISALLOWED}, // MODIFIER LETTER CAPITAL A..MODIFIER LETTER C - {0x1D2F, 0x0, propertyPVALID}, // MODIFIER LETTER CAPITAL BARRED B - {0x1D30, 0x1D3A, propertyDISALLOWED}, // MODIFIER LETTER CAPITAL D..MODIFIER LETTER C - {0x1D3B, 0x0, propertyPVALID}, // MODIFIER LETTER CAPITAL REVERSED N - {0x1D3C, 0x1D4D, propertyDISALLOWED}, // MODIFIER LETTER CAPITAL O..MODIFIER LETTER S - {0x1D4E, 0x0, propertyPVALID}, // MODIFIER LETTER SMALL TURNED I - {0x1D4F, 0x1D6A, propertyDISALLOWED}, // MODIFIER LETTER SMALL K..GREEK SUBSCRIPT SMA - {0x1D6B, 0x1D77, propertyPVALID}, // LATIN SMALL LETTER UE..LATIN SMALL LETTER TU - {0x1D78, 0x0, propertyDISALLOWED}, // MODIFIER LETTER CYRILLIC EN - {0x1D79, 0x1D9A, propertyPVALID}, // LATIN SMALL LETTER INSULAR G..LATIN SMALL LE - {0x1D9B, 0x1DBF, propertyDISALLOWED}, // MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER - {0x1DC0, 0x1DE6, propertyPVALID}, // COMBINING DOTTED GRAVE ACCENT..COMBINING LAT - {0x1DE7, 0x1DFC, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1DFD, 0x1DFF, propertyPVALID}, // COMBINING ALMOST EQUAL TO BELOW..COMBINING R - {0x1E00, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH RING BELOW - {0x1E01, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH RING BELOW - {0x1E02, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER B WITH DOT ABOVE - {0x1E03, 0x0, propertyPVALID}, // LATIN SMALL LETTER B WITH DOT ABOVE - {0x1E04, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER B WITH DOT BELOW - {0x1E05, 0x0, propertyPVALID}, // LATIN SMALL LETTER B WITH DOT BELOW - {0x1E06, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER B WITH LINE BELOW - {0x1E07, 0x0, propertyPVALID}, // LATIN SMALL LETTER B WITH LINE BELOW - {0x1E08, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER C WITH CEDILLA AND ACUT - {0x1E09, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH CEDILLA AND ACUTE - {0x1E0A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH DOT ABOVE - {0x1E0B, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH DOT ABOVE - {0x1E0C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH DOT BELOW - {0x1E0D, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH DOT BELOW - {0x1E0E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH LINE BELOW - {0x1E0F, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH LINE BELOW - {0x1E10, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH CEDILLA - {0x1E11, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH CEDILLA - {0x1E12, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW - {0x1E13, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW - {0x1E14, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH MACRON AND GRAVE - {0x1E15, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH MACRON AND GRAVE - {0x1E16, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH MACRON AND ACUTE - {0x1E17, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH MACRON AND ACUTE - {0x1E18, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW - {0x1E19, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW - {0x1E1A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH TILDE BELOW - {0x1E1B, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH TILDE BELOW - {0x1E1C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CEDILLA AND BREV - {0x1E1D, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CEDILLA AND BREVE - {0x1E1E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER F WITH DOT ABOVE - {0x1E1F, 0x0, propertyPVALID}, // LATIN SMALL LETTER F WITH DOT ABOVE - {0x1E20, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH MACRON - {0x1E21, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH MACRON - {0x1E22, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH DOT ABOVE - {0x1E23, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH DOT ABOVE - {0x1E24, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH DOT BELOW - {0x1E25, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH DOT BELOW - {0x1E26, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH DIAERESIS - {0x1E27, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH DIAERESIS - {0x1E28, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH CEDILLA - {0x1E29, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH CEDILLA - {0x1E2A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH BREVE BELOW - {0x1E2B, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH BREVE BELOW - {0x1E2C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH TILDE BELOW - {0x1E2D, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH TILDE BELOW - {0x1E2E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH DIAERESIS AND AC - {0x1E2F, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH DIAERESIS AND ACUT - {0x1E30, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH ACUTE - {0x1E31, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH ACUTE - {0x1E32, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH DOT BELOW - {0x1E33, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH DOT BELOW - {0x1E34, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH LINE BELOW - {0x1E35, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH LINE BELOW - {0x1E36, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH DOT BELOW - {0x1E37, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH DOT BELOW - {0x1E38, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH DOT BELOW AND MA - {0x1E39, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH DOT BELOW AND MACR - {0x1E3A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH LINE BELOW - {0x1E3B, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH LINE BELOW - {0x1E3C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW - {0x1E3D, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW - {0x1E3E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER M WITH ACUTE - {0x1E3F, 0x0, propertyPVALID}, // LATIN SMALL LETTER M WITH ACUTE - {0x1E40, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER M WITH DOT ABOVE - {0x1E41, 0x0, propertyPVALID}, // LATIN SMALL LETTER M WITH DOT ABOVE - {0x1E42, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER M WITH DOT BELOW - {0x1E43, 0x0, propertyPVALID}, // LATIN SMALL LETTER M WITH DOT BELOW - {0x1E44, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH DOT ABOVE - {0x1E45, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH DOT ABOVE - {0x1E46, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH DOT BELOW - {0x1E47, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH DOT BELOW - {0x1E48, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH LINE BELOW - {0x1E49, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH LINE BELOW - {0x1E4A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW - {0x1E4B, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW - {0x1E4C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH TILDE AND ACUTE - {0x1E4D, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH TILDE AND ACUTE - {0x1E4E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH TILDE AND DIAERE - {0x1E4F, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH TILDE AND DIAERESI - {0x1E50, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH MACRON AND GRAVE - {0x1E51, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH MACRON AND GRAVE - {0x1E52, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH MACRON AND ACUTE - {0x1E53, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH MACRON AND ACUTE - {0x1E54, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER P WITH ACUTE - {0x1E55, 0x0, propertyPVALID}, // LATIN SMALL LETTER P WITH ACUTE - {0x1E56, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER P WITH DOT ABOVE - {0x1E57, 0x0, propertyPVALID}, // LATIN SMALL LETTER P WITH DOT ABOVE - {0x1E58, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH DOT ABOVE - {0x1E59, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH DOT ABOVE - {0x1E5A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH DOT BELOW - {0x1E5B, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH DOT BELOW - {0x1E5C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH DOT BELOW AND MA - {0x1E5D, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH DOT BELOW AND MACR - {0x1E5E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH LINE BELOW - {0x1E5F, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH LINE BELOW - {0x1E60, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH DOT ABOVE - {0x1E61, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH DOT ABOVE - {0x1E62, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH DOT BELOW - {0x1E63, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH DOT BELOW - {0x1E64, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH ACUTE AND DOT AB - {0x1E65, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH ACUTE AND DOT ABOV - {0x1E66, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH CARON AND DOT AB - {0x1E67, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH CARON AND DOT ABOV - {0x1E68, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH DOT BELOW AND DO - {0x1E69, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH DOT BELOW AND DOT - {0x1E6A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH DOT ABOVE - {0x1E6B, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH DOT ABOVE - {0x1E6C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH DOT BELOW - {0x1E6D, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH DOT BELOW - {0x1E6E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH LINE BELOW - {0x1E6F, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH LINE BELOW - {0x1E70, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW - {0x1E71, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW - {0x1E72, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DIAERESIS BELOW - {0x1E73, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DIAERESIS BELOW - {0x1E74, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH TILDE BELOW - {0x1E75, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH TILDE BELOW - {0x1E76, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW - {0x1E77, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW - {0x1E78, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH TILDE AND ACUTE - {0x1E79, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH TILDE AND ACUTE - {0x1E7A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH MACRON AND DIAER - {0x1E7B, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH MACRON AND DIAERES - {0x1E7C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER V WITH TILDE - {0x1E7D, 0x0, propertyPVALID}, // LATIN SMALL LETTER V WITH TILDE - {0x1E7E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER V WITH DOT BELOW - {0x1E7F, 0x0, propertyPVALID}, // LATIN SMALL LETTER V WITH DOT BELOW - {0x1E80, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH GRAVE - {0x1E81, 0x0, propertyPVALID}, // LATIN SMALL LETTER W WITH GRAVE - {0x1E82, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH ACUTE - {0x1E83, 0x0, propertyPVALID}, // LATIN SMALL LETTER W WITH ACUTE - {0x1E84, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH DIAERESIS - {0x1E85, 0x0, propertyPVALID}, // LATIN SMALL LETTER W WITH DIAERESIS - {0x1E86, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH DOT ABOVE - {0x1E87, 0x0, propertyPVALID}, // LATIN SMALL LETTER W WITH DOT ABOVE - {0x1E88, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH DOT BELOW - {0x1E89, 0x0, propertyPVALID}, // LATIN SMALL LETTER W WITH DOT BELOW - {0x1E8A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER X WITH DOT ABOVE - {0x1E8B, 0x0, propertyPVALID}, // LATIN SMALL LETTER X WITH DOT ABOVE - {0x1E8C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER X WITH DIAERESIS - {0x1E8D, 0x0, propertyPVALID}, // LATIN SMALL LETTER X WITH DIAERESIS - {0x1E8E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH DOT ABOVE - {0x1E8F, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH DOT ABOVE - {0x1E90, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH CIRCUMFLEX - {0x1E91, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH CIRCUMFLEX - {0x1E92, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH DOT BELOW - {0x1E93, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH DOT BELOW - {0x1E94, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH LINE BELOW - {0x1E95, 0x1E99, propertyPVALID}, // LATIN SMALL LETTER Z WITH LINE BELOW..LATIN - {0x1E9A, 0x1E9B, propertyDISALLOWED}, // LATIN SMALL LETTER A WITH RIGHT HALF RING..L - {0x1E9C, 0x1E9D, propertyPVALID}, // LATIN SMALL LETTER LONG S WITH DIAGONAL STRO - {0x1E9E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER SHARP S - {0x1E9F, 0x0, propertyPVALID}, // LATIN SMALL LETTER DELTA - {0x1EA0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH DOT BELOW - {0x1EA1, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH DOT BELOW - {0x1EA2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH HOOK ABOVE - {0x1EA3, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH HOOK ABOVE - {0x1EA4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND A - {0x1EA5, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACU - {0x1EA6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND G - {0x1EA7, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRA - {0x1EA8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND H - {0x1EA9, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOO - {0x1EAA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND T - {0x1EAB, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND TIL - {0x1EAC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND D - {0x1EAD, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT - {0x1EAE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH BREVE AND ACUTE - {0x1EAF, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH BREVE AND ACUTE - {0x1EB0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH BREVE AND GRAVE - {0x1EB1, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH BREVE AND GRAVE - {0x1EB2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH BREVE AND HOOK A - {0x1EB3, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH BREVE AND HOOK ABO - {0x1EB4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH BREVE AND TILDE - {0x1EB5, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH BREVE AND TILDE - {0x1EB6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH BREVE AND DOT BE - {0x1EB7, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH BREVE AND DOT BELO - {0x1EB8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH DOT BELOW - {0x1EB9, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH DOT BELOW - {0x1EBA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH HOOK ABOVE - {0x1EBB, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH HOOK ABOVE - {0x1EBC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH TILDE - {0x1EBD, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH TILDE - {0x1EBE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND A - {0x1EBF, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACU - {0x1EC0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND G - {0x1EC1, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRA - {0x1EC2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND H - {0x1EC3, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOO - {0x1EC4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND T - {0x1EC5, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND TIL - {0x1EC6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND D - {0x1EC7, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT - {0x1EC8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH HOOK ABOVE - {0x1EC9, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH HOOK ABOVE - {0x1ECA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH DOT BELOW - {0x1ECB, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH DOT BELOW - {0x1ECC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH DOT BELOW - {0x1ECD, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH DOT BELOW - {0x1ECE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH HOOK ABOVE - {0x1ECF, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HOOK ABOVE - {0x1ED0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND A - {0x1ED1, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACU - {0x1ED2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND G - {0x1ED3, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRA - {0x1ED4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND H - {0x1ED5, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOO - {0x1ED6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND T - {0x1ED7, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND TIL - {0x1ED8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND D - {0x1ED9, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT - {0x1EDA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH HORN AND ACUTE - {0x1EDB, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HORN AND ACUTE - {0x1EDC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH HORN AND GRAVE - {0x1EDD, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HORN AND GRAVE - {0x1EDE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH HORN AND HOOK AB - {0x1EDF, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HORN AND HOOK ABOV - {0x1EE0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH HORN AND TILDE - {0x1EE1, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HORN AND TILDE - {0x1EE2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH HORN AND DOT BEL - {0x1EE3, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HORN AND DOT BELOW - {0x1EE4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DOT BELOW - {0x1EE5, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DOT BELOW - {0x1EE6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH HOOK ABOVE - {0x1EE7, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HOOK ABOVE - {0x1EE8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH HORN AND ACUTE - {0x1EE9, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HORN AND ACUTE - {0x1EEA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH HORN AND GRAVE - {0x1EEB, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HORN AND GRAVE - {0x1EEC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH HORN AND HOOK AB - {0x1EED, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HORN AND HOOK ABOV - {0x1EEE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH HORN AND TILDE - {0x1EEF, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HORN AND TILDE - {0x1EF0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH HORN AND DOT BEL - {0x1EF1, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HORN AND DOT BELOW - {0x1EF2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH GRAVE - {0x1EF3, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH GRAVE - {0x1EF4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH DOT BELOW - {0x1EF5, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH DOT BELOW - {0x1EF6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH HOOK ABOVE - {0x1EF7, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH HOOK ABOVE - {0x1EF8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH TILDE - {0x1EF9, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH TILDE - {0x1EFA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER MIDDLE-WELSH LL - {0x1EFB, 0x0, propertyPVALID}, // LATIN SMALL LETTER MIDDLE-WELSH LL - {0x1EFC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER MIDDLE-WELSH V - {0x1EFD, 0x0, propertyPVALID}, // LATIN SMALL LETTER MIDDLE-WELSH V - {0x1EFE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH LOOP - {0x1EFF, 0x1F07, propertyPVALID}, // LATIN SMALL LETTER Y WITH LOOP..GREEK SMALL - {0x1F08, 0x1F0F, propertyDISALLOWED}, // GREEK CAPITAL LETTER ALPHA WITH PSILI..GREEK - {0x1F10, 0x1F15, propertyPVALID}, // GREEK SMALL LETTER EPSILON WITH PSILI..GREEK - {0x1F16, 0x1F17, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F18, 0x1F1D, propertyDISALLOWED}, // GREEK CAPITAL LETTER EPSILON WITH PSILI..GRE - {0x1F1E, 0x1F1F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F20, 0x1F27, propertyPVALID}, // GREEK SMALL LETTER ETA WITH PSILI..GREEK SMA - {0x1F28, 0x1F2F, propertyDISALLOWED}, // GREEK CAPITAL LETTER ETA WITH PSILI..GREEK C - {0x1F30, 0x1F37, propertyPVALID}, // GREEK SMALL LETTER IOTA WITH PSILI..GREEK SM - {0x1F38, 0x1F3F, propertyDISALLOWED}, // GREEK CAPITAL LETTER IOTA WITH PSILI..GREEK - {0x1F40, 0x1F45, propertyPVALID}, // GREEK SMALL LETTER OMICRON WITH PSILI..GREEK - {0x1F46, 0x1F47, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F48, 0x1F4D, propertyDISALLOWED}, // GREEK CAPITAL LETTER OMICRON WITH PSILI..GRE - {0x1F4E, 0x1F4F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F50, 0x1F57, propertyPVALID}, // GREEK SMALL LETTER UPSILON WITH PSILI..GREEK - {0x1F58, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1F59, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER UPSILON WITH DASIA - {0x1F5A, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1F5B, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER UPSILON WITH DASIA AND - {0x1F5C, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1F5D, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER UPSILON WITH DASIA AND - {0x1F5E, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1F5F, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER UPSILON WITH DASIA AND - {0x1F60, 0x1F67, propertyPVALID}, // GREEK SMALL LETTER OMEGA WITH PSILI..GREEK S - {0x1F68, 0x1F6F, propertyDISALLOWED}, // GREEK CAPITAL LETTER OMEGA WITH PSILI..GREEK - {0x1F70, 0x0, propertyPVALID}, // GREEK SMALL LETTER ALPHA WITH VARIA - {0x1F71, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER ALPHA WITH OXIA - {0x1F72, 0x0, propertyPVALID}, // GREEK SMALL LETTER EPSILON WITH VARIA - {0x1F73, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER EPSILON WITH OXIA - {0x1F74, 0x0, propertyPVALID}, // GREEK SMALL LETTER ETA WITH VARIA - {0x1F75, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER ETA WITH OXIA - {0x1F76, 0x0, propertyPVALID}, // GREEK SMALL LETTER IOTA WITH VARIA - {0x1F77, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER IOTA WITH OXIA - {0x1F78, 0x0, propertyPVALID}, // GREEK SMALL LETTER OMICRON WITH VARIA - {0x1F79, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER OMICRON WITH OXIA - {0x1F7A, 0x0, propertyPVALID}, // GREEK SMALL LETTER UPSILON WITH VARIA - {0x1F7B, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER UPSILON WITH OXIA - {0x1F7C, 0x0, propertyPVALID}, // GREEK SMALL LETTER OMEGA WITH VARIA - {0x1F7D, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER OMEGA WITH OXIA - {0x1F7E, 0x1F7F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F80, 0x1FAF, propertyDISALLOWED}, // GREEK SMALL LETTER ALPHA WITH PSILI AND YPOG - {0x1FB0, 0x1FB1, propertyPVALID}, // GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK - {0x1FB2, 0x1FB4, propertyDISALLOWED}, // GREEK SMALL LETTER ALPHA WITH VARIA AND YPOG - {0x1FB5, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1FB6, 0x0, propertyPVALID}, // GREEK SMALL LETTER ALPHA WITH PERISPOMENI - {0x1FB7, 0x1FC4, propertyDISALLOWED}, // GREEK SMALL LETTER ALPHA WITH PERISPOMENI AN - {0x1FC5, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1FC6, 0x0, propertyPVALID}, // GREEK SMALL LETTER ETA WITH PERISPOMENI - {0x1FC7, 0x1FCF, propertyDISALLOWED}, // GREEK SMALL LETTER ETA WITH PERISPOMENI AND - {0x1FD0, 0x1FD2, propertyPVALID}, // GREEK SMALL LETTER IOTA WITH VRACHY..GREEK S - {0x1FD3, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER IOTA WITH DIALYTIKA AND O - {0x1FD4, 0x1FD5, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1FD6, 0x1FD7, propertyPVALID}, // GREEK SMALL LETTER IOTA WITH PERISPOMENI..GR - {0x1FD8, 0x1FDB, propertyDISALLOWED}, // GREEK CAPITAL LETTER IOTA WITH VRACHY..GREEK - {0x1FDC, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1FDD, 0x1FDF, propertyDISALLOWED}, // GREEK DASIA AND VARIA..GREEK DASIA AND PERIS - {0x1FE0, 0x1FE2, propertyPVALID}, // GREEK SMALL LETTER UPSILON WITH VRACHY..GREE - {0x1FE3, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER UPSILON WITH DIALYTIKA AN - {0x1FE4, 0x1FE7, propertyPVALID}, // GREEK SMALL LETTER RHO WITH PSILI..GREEK SMA - {0x1FE8, 0x1FEF, propertyDISALLOWED}, // GREEK CAPITAL LETTER UPSILON WITH VRACHY..GR - {0x1FF0, 0x1FF1, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1FF2, 0x1FF4, propertyDISALLOWED}, // GREEK SMALL LETTER OMEGA WITH VARIA AND YPOG - {0x1FF5, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1FF6, 0x0, propertyPVALID}, // GREEK SMALL LETTER OMEGA WITH PERISPOMENI - {0x1FF7, 0x1FFE, propertyDISALLOWED}, // GREEK SMALL LETTER OMEGA WITH PERISPOMENI AN - {0x1FFF, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2000, 0x200B, propertyDISALLOWED}, // EN QUAD..ZERO WIDTH SPACE - {0x200C, 0x200D, propertyCONTEXTJ}, // ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER - {0x200E, 0x2064, propertyDISALLOWED}, // LEFT-TO-RIGHT MARK..INVISIBLE PLUS - {0x2065, 0x2069, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x206A, 0x2071, propertyDISALLOWED}, // INHIBIT SYMMETRIC SWAPPING..SUPERSCRIPT LATI - {0x2072, 0x2073, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2074, 0x208E, propertyDISALLOWED}, // SUPERSCRIPT FOUR..SUBSCRIPT RIGHT PARENTHESI - {0x208F, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2090, 0x2094, propertyDISALLOWED}, // LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCR - {0x2095, 0x209F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x20A0, 0x20B8, propertyDISALLOWED}, // EURO-CURRENCY SIGN..TENGE SIGN - {0x20B9, 0x20CF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x20D0, 0x20F0, propertyDISALLOWED}, // COMBINING LEFT HARPOON ABOVE..COMBINING ASTE - {0x20F1, 0x20FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2100, 0x214D, propertyDISALLOWED}, // ACCOUNT OF..AKTIESELSKAB - {0x214E, 0x0, propertyPVALID}, // TURNED SMALL F - {0x214F, 0x2183, propertyDISALLOWED}, // SYMBOL FOR SAMARITAN SOURCE..ROMAN NUMERAL R - {0x2184, 0x0, propertyPVALID}, // LATIN SMALL LETTER REVERSED C - {0x2185, 0x2189, propertyDISALLOWED}, // ROMAN NUMERAL SIX LATE FORM..VULGAR FRACTION - {0x218A, 0x218F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2190, 0x23E8, propertyDISALLOWED}, // LEFTWARDS ARROW..DECIMAL EXPONENT SYMBOL - {0x23E9, 0x23FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2400, 0x2426, propertyDISALLOWED}, // SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM - {0x2427, 0x243F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2440, 0x244A, propertyDISALLOWED}, // OCR HOOK..OCR DOUBLE BACKSLASH - {0x244B, 0x245F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2460, 0x26CD, propertyDISALLOWED}, // CIRCLED DIGIT ONE..DISABLED CAR - {0x26CE, 0x0, propertyUNASSIGNED}, // <reserved> - {0x26CF, 0x26E1, propertyDISALLOWED}, // PICK..RESTRICTED LEFT ENTRY-2 - {0x26E2, 0x0, propertyUNASSIGNED}, // <reserved> - {0x26E3, 0x0, propertyDISALLOWED}, // HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE - {0x26E4, 0x26E7, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x26E8, 0x26FF, propertyDISALLOWED}, // BLACK CROSS ON SHIELD..WHITE FLAG WITH HORIZ - {0x2700, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2701, 0x2704, propertyDISALLOWED}, // UPPER BLADE SCISSORS..WHITE SCISSORS - {0x2705, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2706, 0x2709, propertyDISALLOWED}, // TELEPHONE LOCATION SIGN..ENVELOPE - {0x270A, 0x270B, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x270C, 0x2727, propertyDISALLOWED}, // VICTORY HAND..WHITE FOUR POINTED STAR - {0x2728, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2729, 0x274B, propertyDISALLOWED}, // STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEAR - {0x274C, 0x0, propertyUNASSIGNED}, // <reserved> - {0x274D, 0x0, propertyDISALLOWED}, // SHADOWED WHITE CIRCLE - {0x274E, 0x0, propertyUNASSIGNED}, // <reserved> - {0x274F, 0x2752, propertyDISALLOWED}, // LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPE - {0x2753, 0x2755, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2756, 0x275E, propertyDISALLOWED}, // BLACK DIAMOND MINUS WHITE X..HEAVY DOUBLE CO - {0x275F, 0x2760, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2761, 0x2794, propertyDISALLOWED}, // CURVED STEM PARAGRAPH SIGN ORNAMENT..HEAVY W - {0x2795, 0x2797, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2798, 0x27AF, propertyDISALLOWED}, // HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT- - {0x27B0, 0x0, propertyUNASSIGNED}, // <reserved> - {0x27B1, 0x27BE, propertyDISALLOWED}, // NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARD - {0x27BF, 0x0, propertyUNASSIGNED}, // <reserved> - {0x27C0, 0x27CA, propertyDISALLOWED}, // THREE DIMENSIONAL ANGLE..VERTICAL BAR WITH H - {0x27CB, 0x0, propertyUNASSIGNED}, // <reserved> - {0x27CC, 0x0, propertyDISALLOWED}, // LONG DIVISION - {0x27CD, 0x27CF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x27D0, 0x2B4C, propertyDISALLOWED}, // WHITE DIAMOND WITH CENTRED DOT..RIGHTWARDS A - {0x2B4D, 0x2B4F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2B50, 0x2B59, propertyDISALLOWED}, // WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE - {0x2B5A, 0x2BFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2C00, 0x2C2E, propertyDISALLOWED}, // GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CA - {0x2C2F, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2C30, 0x2C5E, propertyPVALID}, // GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMAL - {0x2C5F, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2C60, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH DOUBLE BAR - {0x2C61, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH DOUBLE BAR - {0x2C62, 0x2C64, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LA - {0x2C65, 0x2C66, propertyPVALID}, // LATIN SMALL LETTER A WITH STROKE..LATIN SMAL - {0x2C67, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH DESCENDER - {0x2C68, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH DESCENDER - {0x2C69, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH DESCENDER - {0x2C6A, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH DESCENDER - {0x2C6B, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH DESCENDER - {0x2C6C, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH DESCENDER - {0x2C6D, 0x2C70, propertyDISALLOWED}, // LATIN CAPITAL LETTER ALPHA..LATIN CAPITAL LE - {0x2C71, 0x0, propertyPVALID}, // LATIN SMALL LETTER V WITH RIGHT HOOK - {0x2C72, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH HOOK - {0x2C73, 0x2C74, propertyPVALID}, // LATIN SMALL LETTER W WITH HOOK..LATIN SMALL - {0x2C75, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER HALF H - {0x2C76, 0x2C7B, propertyPVALID}, // LATIN SMALL LETTER HALF H..LATIN LETTER SMAL - {0x2C7C, 0x2C80, propertyDISALLOWED}, // LATIN SUBSCRIPT SMALL LETTER J..COPTIC CAPIT - {0x2C81, 0x0, propertyPVALID}, // COPTIC SMALL LETTER ALFA - {0x2C82, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER VIDA - {0x2C83, 0x0, propertyPVALID}, // COPTIC SMALL LETTER VIDA - {0x2C84, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER GAMMA - {0x2C85, 0x0, propertyPVALID}, // COPTIC SMALL LETTER GAMMA - {0x2C86, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER DALDA - {0x2C87, 0x0, propertyPVALID}, // COPTIC SMALL LETTER DALDA - {0x2C88, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER EIE - {0x2C89, 0x0, propertyPVALID}, // COPTIC SMALL LETTER EIE - {0x2C8A, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER SOU - {0x2C8B, 0x0, propertyPVALID}, // COPTIC SMALL LETTER SOU - {0x2C8C, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER ZATA - {0x2C8D, 0x0, propertyPVALID}, // COPTIC SMALL LETTER ZATA - {0x2C8E, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER HATE - {0x2C8F, 0x0, propertyPVALID}, // COPTIC SMALL LETTER HATE - {0x2C90, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER THETHE - {0x2C91, 0x0, propertyPVALID}, // COPTIC SMALL LETTER THETHE - {0x2C92, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER IAUDA - {0x2C93, 0x0, propertyPVALID}, // COPTIC SMALL LETTER IAUDA - {0x2C94, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER KAPA - {0x2C95, 0x0, propertyPVALID}, // COPTIC SMALL LETTER KAPA - {0x2C96, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER LAULA - {0x2C97, 0x0, propertyPVALID}, // COPTIC SMALL LETTER LAULA - {0x2C98, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER MI - {0x2C99, 0x0, propertyPVALID}, // COPTIC SMALL LETTER MI - {0x2C9A, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER NI - {0x2C9B, 0x0, propertyPVALID}, // COPTIC SMALL LETTER NI - {0x2C9C, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER KSI - {0x2C9D, 0x0, propertyPVALID}, // COPTIC SMALL LETTER KSI - {0x2C9E, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER O - {0x2C9F, 0x0, propertyPVALID}, // COPTIC SMALL LETTER O - {0x2CA0, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER PI - {0x2CA1, 0x0, propertyPVALID}, // COPTIC SMALL LETTER PI - {0x2CA2, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER RO - {0x2CA3, 0x0, propertyPVALID}, // COPTIC SMALL LETTER RO - {0x2CA4, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER SIMA - {0x2CA5, 0x0, propertyPVALID}, // COPTIC SMALL LETTER SIMA - {0x2CA6, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER TAU - {0x2CA7, 0x0, propertyPVALID}, // COPTIC SMALL LETTER TAU - {0x2CA8, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER UA - {0x2CA9, 0x0, propertyPVALID}, // COPTIC SMALL LETTER UA - {0x2CAA, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER FI - {0x2CAB, 0x0, propertyPVALID}, // COPTIC SMALL LETTER FI - {0x2CAC, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER KHI - {0x2CAD, 0x0, propertyPVALID}, // COPTIC SMALL LETTER KHI - {0x2CAE, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER PSI - {0x2CAF, 0x0, propertyPVALID}, // COPTIC SMALL LETTER PSI - {0x2CB0, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OOU - {0x2CB1, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OOU - {0x2CB2, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER DIALECT-P ALEF - {0x2CB3, 0x0, propertyPVALID}, // COPTIC SMALL LETTER DIALECT-P ALEF - {0x2CB4, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC AIN - {0x2CB5, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC AIN - {0x2CB6, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE - {0x2CB7, 0x0, propertyPVALID}, // COPTIC SMALL LETTER CRYPTOGRAMMIC EIE - {0x2CB8, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER DIALECT-P KAPA - {0x2CB9, 0x0, propertyPVALID}, // COPTIC SMALL LETTER DIALECT-P KAPA - {0x2CBA, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER DIALECT-P NI - {0x2CBB, 0x0, propertyPVALID}, // COPTIC SMALL LETTER DIALECT-P NI - {0x2CBC, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI - {0x2CBD, 0x0, propertyPVALID}, // COPTIC SMALL LETTER CRYPTOGRAMMIC NI - {0x2CBE, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC OOU - {0x2CBF, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC OOU - {0x2CC0, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER SAMPI - {0x2CC1, 0x0, propertyPVALID}, // COPTIC SMALL LETTER SAMPI - {0x2CC2, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER CROSSED SHEI - {0x2CC3, 0x0, propertyPVALID}, // COPTIC SMALL LETTER CROSSED SHEI - {0x2CC4, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC SHEI - {0x2CC5, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC SHEI - {0x2CC6, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC ESH - {0x2CC7, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC ESH - {0x2CC8, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER AKHMIMIC KHEI - {0x2CC9, 0x0, propertyPVALID}, // COPTIC SMALL LETTER AKHMIMIC KHEI - {0x2CCA, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER DIALECT-P HORI - {0x2CCB, 0x0, propertyPVALID}, // COPTIC SMALL LETTER DIALECT-P HORI - {0x2CCC, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC HORI - {0x2CCD, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC HORI - {0x2CCE, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC HA - {0x2CCF, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC HA - {0x2CD0, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER L-SHAPED HA - {0x2CD1, 0x0, propertyPVALID}, // COPTIC SMALL LETTER L-SHAPED HA - {0x2CD2, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC HEI - {0x2CD3, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC HEI - {0x2CD4, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC HAT - {0x2CD5, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC HAT - {0x2CD6, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC GANGIA - {0x2CD7, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC GANGIA - {0x2CD8, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC DJA - {0x2CD9, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC DJA - {0x2CDA, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC SHIMA - {0x2CDB, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC SHIMA - {0x2CDC, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD NUBIAN SHIMA - {0x2CDD, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD NUBIAN SHIMA - {0x2CDE, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD NUBIAN NGI - {0x2CDF, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD NUBIAN NGI - {0x2CE0, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD NUBIAN NYI - {0x2CE1, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD NUBIAN NYI - {0x2CE2, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD NUBIAN WAU - {0x2CE3, 0x2CE4, propertyPVALID}, // COPTIC SMALL LETTER OLD NUBIAN WAU..COPTIC S - {0x2CE5, 0x2CEB, propertyDISALLOWED}, // COPTIC SYMBOL MI RO..COPTIC CAPITAL LETTER C - {0x2CEC, 0x0, propertyPVALID}, // COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI - {0x2CED, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA - {0x2CEE, 0x2CF1, propertyPVALID}, // COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA..CO - {0x2CF2, 0x2CF8, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2CF9, 0x2CFF, propertyDISALLOWED}, // COPTIC OLD NUBIAN FULL STOP..COPTIC MORPHOLO - {0x2D00, 0x2D25, propertyPVALID}, // GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LET - {0x2D26, 0x2D2F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2D30, 0x2D65, propertyPVALID}, // TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ - {0x2D66, 0x2D6E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2D6F, 0x0, propertyDISALLOWED}, // TIFINAGH MODIFIER LETTER LABIALIZATION MARK - {0x2D70, 0x2D7F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2D80, 0x2D96, propertyPVALID}, // ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGW - {0x2D97, 0x2D9F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2DA0, 0x2DA6, propertyPVALID}, // ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO - {0x2DA7, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2DA8, 0x2DAE, propertyPVALID}, // ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO - {0x2DAF, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2DB0, 0x2DB6, propertyPVALID}, // ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO - {0x2DB7, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2DB8, 0x2DBE, propertyPVALID}, // ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CC - {0x2DBF, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2DC0, 0x2DC6, propertyPVALID}, // ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO - {0x2DC7, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2DC8, 0x2DCE, propertyPVALID}, // ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO - {0x2DCF, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2DD0, 0x2DD6, propertyPVALID}, // ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO - {0x2DD7, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2DD8, 0x2DDE, propertyPVALID}, // ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO - {0x2DDF, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2DE0, 0x2DFF, propertyPVALID}, // COMBINING CYRILLIC LETTER BE..COMBINING CYRI - {0x2E00, 0x2E2E, propertyDISALLOWED}, // RIGHT ANGLE SUBSTITUTION MARKER..REVERSED QU - {0x2E2F, 0x0, propertyPVALID}, // VERTICAL TILDE - {0x2E30, 0x2E31, propertyDISALLOWED}, // RING POINT..WORD SEPARATOR MIDDLE DOT - {0x2E32, 0x2E7F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2E80, 0x2E99, propertyDISALLOWED}, // CJK RADICAL REPEAT..CJK RADICAL RAP - {0x2E9A, 0x0, propertyUNASSIGNED}, // <reserved> - {0x2E9B, 0x2EF3, propertyDISALLOWED}, // CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED - {0x2EF4, 0x2EFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2F00, 0x2FD5, propertyDISALLOWED}, // KANGXI RADICAL ONE..KANGXI RADICAL FLUTE - {0x2FD6, 0x2FEF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2FF0, 0x2FFB, propertyDISALLOWED}, // IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RI - {0x2FFC, 0x2FFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x3000, 0x3004, propertyDISALLOWED}, // IDEOGRAPHIC SPACE..JAPANESE INDUSTRIAL STAND - {0x3005, 0x3007, propertyPVALID}, // IDEOGRAPHIC ITERATION MARK..IDEOGRAPHIC NUMB - {0x3008, 0x3029, propertyDISALLOWED}, // LEFT ANGLE BRACKET..HANGZHOU NUMERAL NINE - {0x302A, 0x302D, propertyPVALID}, // IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENT - {0x302E, 0x303B, propertyDISALLOWED}, // HANGUL SINGLE DOT TONE MARK..VERTICAL IDEOGR - {0x303C, 0x0, propertyPVALID}, // MASU MARK - {0x303D, 0x303F, propertyDISALLOWED}, // PART ALTERNATION MARK..IDEOGRAPHIC HALF FILL - {0x3040, 0x0, propertyUNASSIGNED}, // <reserved> - {0x3041, 0x3096, propertyPVALID}, // HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMA - {0x3097, 0x3098, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x3099, 0x309A, propertyPVALID}, // COMBINING KATAKANA-HIRAGANA VOICED SOUND MAR - {0x309B, 0x309C, propertyDISALLOWED}, // KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKAN - {0x309D, 0x309E, propertyPVALID}, // HIRAGANA ITERATION MARK..HIRAGANA VOICED ITE - {0x309F, 0x30A0, propertyDISALLOWED}, // HIRAGANA DIGRAPH YORI..KATAKANA-HIRAGANA DOU - {0x30A1, 0x30FA, propertyPVALID}, // KATAKANA LETTER SMALL A..KATAKANA LETTER VO - {0x30FB, 0x0, propertyCONTEXTO}, // KATAKANA MIDDLE DOT - {0x30FC, 0x30FE, propertyPVALID}, // KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATA - {0x30FF, 0x0, propertyDISALLOWED}, // KATAKANA DIGRAPH KOTO - {0x3100, 0x3104, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x3105, 0x312D, propertyPVALID}, // BOPOMOFO LETTER B..BOPOMOFO LETTER IH - {0x312E, 0x3130, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x3131, 0x318E, propertyDISALLOWED}, // HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE - {0x318F, 0x0, propertyUNASSIGNED}, // <reserved> - {0x3190, 0x319F, propertyDISALLOWED}, // IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRA - {0x31A0, 0x31B7, propertyPVALID}, // BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H - {0x31B8, 0x31BF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x31C0, 0x31E3, propertyDISALLOWED}, // CJK STROKE T..CJK STROKE Q - {0x31E4, 0x31EF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x31F0, 0x31FF, propertyPVALID}, // KATAKANA LETTER SMALL KU..KATAKANA LETTER SM - {0x3200, 0x321E, propertyDISALLOWED}, // PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED K - {0x321F, 0x0, propertyUNASSIGNED}, // <reserved> - {0x3220, 0x32FE, propertyDISALLOWED}, // PARENTHESIZED IDEOGRAPH ONE..CIRCLED KATAKAN - {0x32FF, 0x0, propertyUNASSIGNED}, // <reserved> - {0x3300, 0x33FF, propertyDISALLOWED}, // SQUARE APAATO..SQUARE GAL - {0x3400, 0x4DB5, propertyPVALID}, // <CJK Ideograph Extension A>..<CJK Ideograph - {0x4DB6, 0x4DBF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x4DC0, 0x4DFF, propertyDISALLOWED}, // HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM F - {0x4E00, 0x9FCB, propertyPVALID}, // <CJK Ideograph>..<CJK Ideograph> - {0x9FCC, 0x9FFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA000, 0xA48C, propertyPVALID}, // YI SYLLABLE IT..YI SYLLABLE YYR - {0xA48D, 0xA48F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA490, 0xA4C6, propertyDISALLOWED}, // YI RADICAL QOT..YI RADICAL KE - {0xA4C7, 0xA4CF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA4D0, 0xA4FD, propertyPVALID}, // LISU LETTER BA..LISU LETTER TONE MYA JEU - {0xA4FE, 0xA4FF, propertyDISALLOWED}, // LISU PUNCTUATION COMMA..LISU PUNCTUATION FUL - {0xA500, 0xA60C, propertyPVALID}, // VAI SYLLABLE EE..VAI SYLLABLE LENGTHENER - {0xA60D, 0xA60F, propertyDISALLOWED}, // VAI COMMA..VAI QUESTION MARK - {0xA610, 0xA62B, propertyPVALID}, // VAI SYLLABLE NDOLE FA..VAI SYLLABLE NDOLE DO - {0xA62C, 0xA63F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA640, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ZEMLYA - {0xA641, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZEMLYA - {0xA642, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER DZELO - {0xA643, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER DZELO - {0xA644, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER REVERSED DZE - {0xA645, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER REVERSED DZE - {0xA646, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTA - {0xA647, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTA - {0xA648, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER DJERV - {0xA649, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER DJERV - {0xA64A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER MONOGRAPH UK - {0xA64B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER MONOGRAPH UK - {0xA64C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BROAD OMEGA - {0xA64D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BROAD OMEGA - {0xA64E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER NEUTRAL YER - {0xA64F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER NEUTRAL YER - {0xA650, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER YERU WITH BACK YER - {0xA651, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER YERU WITH BACK YER - {0xA652, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTIFIED YAT - {0xA653, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTIFIED YAT - {0xA654, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER REVERSED YU - {0xA655, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER REVERSED YU - {0xA656, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTIFIED A - {0xA657, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTIFIED A - {0xA658, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS - {0xA659, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER CLOSED LITTLE YUS - {0xA65A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BLENDED YUS - {0xA65B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BLENDED YUS - {0xA65C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITT - {0xA65D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE - {0xA65E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER YN - {0xA65F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER YN - {0xA660, 0xA661, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA662, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SOFT DE - {0xA663, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SOFT DE - {0xA664, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SOFT EL - {0xA665, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SOFT EL - {0xA666, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SOFT EM - {0xA667, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SOFT EM - {0xA668, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER MONOCULAR O - {0xA669, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER MONOCULAR O - {0xA66A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BINOCULAR O - {0xA66B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BINOCULAR O - {0xA66C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O - {0xA66D, 0xA66F, propertyPVALID}, // CYRILLIC SMALL LETTER DOUBLE MONOCULAR O..CO - {0xA670, 0xA673, propertyDISALLOWED}, // COMBINING CYRILLIC TEN MILLIONS SIGN..SLAVON - {0xA674, 0xA67B, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA67C, 0xA67D, propertyPVALID}, // COMBINING CYRILLIC KAVYKA..COMBINING CYRILLI - {0xA67E, 0x0, propertyDISALLOWED}, // CYRILLIC KAVYKA - {0xA67F, 0x0, propertyPVALID}, // CYRILLIC PAYEROK - {0xA680, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER DWE - {0xA681, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER DWE - {0xA682, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER DZWE - {0xA683, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER DZWE - {0xA684, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ZHWE - {0xA685, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZHWE - {0xA686, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER CCHE - {0xA687, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER CCHE - {0xA688, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER DZZE - {0xA689, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER DZZE - {0xA68A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK - {0xA68B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK - {0xA68C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER TWE - {0xA68D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER TWE - {0xA68E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER TSWE - {0xA68F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER TSWE - {0xA690, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER TSSE - {0xA691, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER TSSE - {0xA692, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER TCHE - {0xA693, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER TCHE - {0xA694, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER HWE - {0xA695, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER HWE - {0xA696, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SHWE - {0xA697, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SHWE - {0xA698, 0xA69F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA6A0, 0xA6E5, propertyPVALID}, // BAMUM LETTER A..BAMUM LETTER KI - {0xA6E6, 0xA6EF, propertyDISALLOWED}, // BAMUM LETTER MO..BAMUM LETTER KOGHOM - {0xA6F0, 0xA6F1, propertyPVALID}, // BAMUM COMBINING MARK KOQNDON..BAMUM COMBININ - {0xA6F2, 0xA6F7, propertyDISALLOWED}, // BAMUM NJAEMLI..BAMUM QUESTION MARK - {0xA6F8, 0xA6FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA700, 0xA716, propertyDISALLOWED}, // MODIFIER LETTER CHINESE TONE YIN PING..MODIF - {0xA717, 0xA71F, propertyPVALID}, // MODIFIER LETTER DOT VERTICAL BAR..MODIFIER L - {0xA720, 0xA722, propertyDISALLOWED}, // MODIFIER LETTER STRESS AND HIGH TONE..LATIN - {0xA723, 0x0, propertyPVALID}, // LATIN SMALL LETTER EGYPTOLOGICAL ALEF - {0xA724, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER EGYPTOLOGICAL AIN - {0xA725, 0x0, propertyPVALID}, // LATIN SMALL LETTER EGYPTOLOGICAL AIN - {0xA726, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER HENG - {0xA727, 0x0, propertyPVALID}, // LATIN SMALL LETTER HENG - {0xA728, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER TZ - {0xA729, 0x0, propertyPVALID}, // LATIN SMALL LETTER TZ - {0xA72A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER TRESILLO - {0xA72B, 0x0, propertyPVALID}, // LATIN SMALL LETTER TRESILLO - {0xA72C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER CUATRILLO - {0xA72D, 0x0, propertyPVALID}, // LATIN SMALL LETTER CUATRILLO - {0xA72E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER CUATRILLO WITH COMMA - {0xA72F, 0xA731, propertyPVALID}, // LATIN SMALL LETTER CUATRILLO WITH COMMA..LAT - {0xA732, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AA - {0xA733, 0x0, propertyPVALID}, // LATIN SMALL LETTER AA - {0xA734, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AO - {0xA735, 0x0, propertyPVALID}, // LATIN SMALL LETTER AO - {0xA736, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AU - {0xA737, 0x0, propertyPVALID}, // LATIN SMALL LETTER AU - {0xA738, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AV - {0xA739, 0x0, propertyPVALID}, // LATIN SMALL LETTER AV - {0xA73A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR - {0xA73B, 0x0, propertyPVALID}, // LATIN SMALL LETTER AV WITH HORIZONTAL BAR - {0xA73C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AY - {0xA73D, 0x0, propertyPVALID}, // LATIN SMALL LETTER AY - {0xA73E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER REVERSED C WITH DOT - {0xA73F, 0x0, propertyPVALID}, // LATIN SMALL LETTER REVERSED C WITH DOT - {0xA740, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH STROKE - {0xA741, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH STROKE - {0xA742, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH DIAGONAL STROKE - {0xA743, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH DIAGONAL STROKE - {0xA744, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH STROKE AND DIAGO - {0xA745, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH STROKE AND DIAGONA - {0xA746, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER BROKEN L - {0xA747, 0x0, propertyPVALID}, // LATIN SMALL LETTER BROKEN L - {0xA748, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH HIGH STROKE - {0xA749, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH HIGH STROKE - {0xA74A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH LONG STROKE OVER - {0xA74B, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH LONG STROKE OVERLA - {0xA74C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH LOOP - {0xA74D, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH LOOP - {0xA74E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER OO - {0xA74F, 0x0, propertyPVALID}, // LATIN SMALL LETTER OO - {0xA750, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER P WITH STROKE THROUGH D - {0xA751, 0x0, propertyPVALID}, // LATIN SMALL LETTER P WITH STROKE THROUGH DES - {0xA752, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER P WITH FLOURISH - {0xA753, 0x0, propertyPVALID}, // LATIN SMALL LETTER P WITH FLOURISH - {0xA754, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER P WITH SQUIRREL TAIL - {0xA755, 0x0, propertyPVALID}, // LATIN SMALL LETTER P WITH SQUIRREL TAIL - {0xA756, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Q WITH STROKE THROUGH D - {0xA757, 0x0, propertyPVALID}, // LATIN SMALL LETTER Q WITH STROKE THROUGH DES - {0xA758, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE - {0xA759, 0x0, propertyPVALID}, // LATIN SMALL LETTER Q WITH DIAGONAL STROKE - {0xA75A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R ROTUNDA - {0xA75B, 0x0, propertyPVALID}, // LATIN SMALL LETTER R ROTUNDA - {0xA75C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER RUM ROTUNDA - {0xA75D, 0x0, propertyPVALID}, // LATIN SMALL LETTER RUM ROTUNDA - {0xA75E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER V WITH DIAGONAL STROKE - {0xA75F, 0x0, propertyPVALID}, // LATIN SMALL LETTER V WITH DIAGONAL STROKE - {0xA760, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER VY - {0xA761, 0x0, propertyPVALID}, // LATIN SMALL LETTER VY - {0xA762, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER VISIGOTHIC Z - {0xA763, 0x0, propertyPVALID}, // LATIN SMALL LETTER VISIGOTHIC Z - {0xA764, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER THORN WITH STROKE - {0xA765, 0x0, propertyPVALID}, // LATIN SMALL LETTER THORN WITH STROKE - {0xA766, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER THORN WITH STROKE THROU - {0xA767, 0x0, propertyPVALID}, // LATIN SMALL LETTER THORN WITH STROKE THROUGH - {0xA768, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER VEND - {0xA769, 0x0, propertyPVALID}, // LATIN SMALL LETTER VEND - {0xA76A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER ET - {0xA76B, 0x0, propertyPVALID}, // LATIN SMALL LETTER ET - {0xA76C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER IS - {0xA76D, 0x0, propertyPVALID}, // LATIN SMALL LETTER IS - {0xA76E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER CON - {0xA76F, 0x0, propertyPVALID}, // LATIN SMALL LETTER CON - {0xA770, 0x0, propertyDISALLOWED}, // MODIFIER LETTER US - {0xA771, 0xA778, propertyPVALID}, // LATIN SMALL LETTER DUM..LATIN SMALL LETTER U - {0xA779, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER INSULAR D - {0xA77A, 0x0, propertyPVALID}, // LATIN SMALL LETTER INSULAR D - {0xA77B, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER INSULAR F - {0xA77C, 0x0, propertyPVALID}, // LATIN SMALL LETTER INSULAR F - {0xA77D, 0xA77E, propertyDISALLOWED}, // LATIN CAPITAL LETTER INSULAR G..LATIN CAPITA - {0xA77F, 0x0, propertyPVALID}, // LATIN SMALL LETTER TURNED INSULAR G - {0xA780, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER TURNED L - {0xA781, 0x0, propertyPVALID}, // LATIN SMALL LETTER TURNED L - {0xA782, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER INSULAR R - {0xA783, 0x0, propertyPVALID}, // LATIN SMALL LETTER INSULAR R - {0xA784, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER INSULAR S - {0xA785, 0x0, propertyPVALID}, // LATIN SMALL LETTER INSULAR S - {0xA786, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER INSULAR T - {0xA787, 0xA788, propertyPVALID}, // LATIN SMALL LETTER INSULAR T..MODIFIER LETTE - {0xA789, 0xA78B, propertyDISALLOWED}, // MODIFIER LETTER COLON..LATIN CAPITAL LETTER - {0xA78C, 0x0, propertyPVALID}, // LATIN SMALL LETTER SALTILLO - {0xA78D, 0xA7FA, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA7FB, 0xA827, propertyPVALID}, // LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI N - {0xA828, 0xA82B, propertyDISALLOWED}, // SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POE - {0xA82C, 0xA82F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA830, 0xA839, propertyDISALLOWED}, // NORTH INDIC FRACTION ONE QUARTER..NORTH INDI - {0xA83A, 0xA83F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA840, 0xA873, propertyPVALID}, // PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABI - {0xA874, 0xA877, propertyDISALLOWED}, // PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOU - {0xA878, 0xA87F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA880, 0xA8C4, propertyPVALID}, // SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VI - {0xA8C5, 0xA8CD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA8CE, 0xA8CF, propertyDISALLOWED}, // SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA - {0xA8D0, 0xA8D9, propertyPVALID}, // SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE - {0xA8DA, 0xA8DF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA8E0, 0xA8F7, propertyPVALID}, // COMBINING DEVANAGARI DIGIT ZERO..DEVANAGARI - {0xA8F8, 0xA8FA, propertyDISALLOWED}, // DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET - {0xA8FB, 0x0, propertyPVALID}, // DEVANAGARI HEADSTROKE - {0xA8FC, 0xA8FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA900, 0xA92D, propertyPVALID}, // KAYAH LI DIGIT ZERO..KAYAH LI TONE CALYA PLO - {0xA92E, 0xA92F, propertyDISALLOWED}, // KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA - {0xA930, 0xA953, propertyPVALID}, // REJANG LETTER KA..REJANG VIRAMA - {0xA954, 0xA95E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA95F, 0xA97C, propertyDISALLOWED}, // REJANG SECTION MARK..HANGUL CHOSEONG SSANGYE - {0xA97D, 0xA97F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA980, 0xA9C0, propertyPVALID}, // JAVANESE SIGN PANYANGGA..JAVANESE PANGKON - {0xA9C1, 0xA9CD, propertyDISALLOWED}, // JAVANESE LEFT RERENGGAN..JAVANESE TURNED PAD - {0xA9CE, 0x0, propertyUNASSIGNED}, // <reserved> - {0xA9CF, 0xA9D9, propertyPVALID}, // JAVANESE PANGRANGKEP..JAVANESE DIGIT NINE - {0xA9DA, 0xA9DD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xA9DE, 0xA9DF, propertyDISALLOWED}, // JAVANESE PADA TIRTA TUMETES..JAVANESE PADA I - {0xA9E0, 0xA9FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xAA00, 0xAA36, propertyPVALID}, // CHAM LETTER A..CHAM CONSONANT SIGN WA - {0xAA37, 0xAA3F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xAA40, 0xAA4D, propertyPVALID}, // CHAM LETTER FINAL K..CHAM CONSONANT SIGN FIN - {0xAA4E, 0xAA4F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xAA50, 0xAA59, propertyPVALID}, // CHAM DIGIT ZERO..CHAM DIGIT NINE - {0xAA5A, 0xAA5B, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xAA5C, 0xAA5F, propertyDISALLOWED}, // CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TR - {0xAA60, 0xAA76, propertyPVALID}, // MYANMAR LETTER KHAMTI GA..MYANMAR LOGOGRAM K - {0xAA77, 0xAA79, propertyDISALLOWED}, // MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SY - {0xAA7A, 0xAA7B, propertyPVALID}, // MYANMAR LETTER AITON RA..MYANMAR SIGN PAO KA - {0xAA7C, 0xAA7F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xAA80, 0xAAC2, propertyPVALID}, // TAI VIET LETTER LOW KO..TAI VIET TONE MAI SO - {0xAAC3, 0xAADA, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xAADB, 0xAADD, propertyPVALID}, // TAI VIET SYMBOL KON..TAI VIET SYMBOL SAM - {0xAADE, 0xAADF, propertyDISALLOWED}, // TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI - {0xAAE0, 0xABBF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xABC0, 0xABEA, propertyPVALID}, // MEETEI MAYEK LETTER KOK..MEETEI MAYEK VOWEL - {0xABEB, 0x0, propertyDISALLOWED}, // MEETEI MAYEK CHEIKHEI - {0xABEC, 0xABED, propertyPVALID}, // MEETEI MAYEK LUM IYEK..MEETEI MAYEK APUN IYE - {0xABEE, 0xABEF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xABF0, 0xABF9, propertyPVALID}, // MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT - {0xABFA, 0xABFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xAC00, 0xD7A3, propertyPVALID}, // <Hangul Syllable>..<Hangul Syllable> - {0xD7A4, 0xD7AF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xD7B0, 0xD7C6, propertyDISALLOWED}, // HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARA - {0xD7C7, 0xD7CA, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xD7CB, 0xD7FB, propertyDISALLOWED}, // HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEO - {0xD7FC, 0xD7FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xD800, 0xFA0D, propertyDISALLOWED}, // <Non Private Use High Surrogate>..CJK COMPAT - {0xFA0E, 0xFA0F, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPAT - {0xFA10, 0x0, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA10 - {0xFA11, 0x0, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA11 - {0xFA12, 0x0, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA12 - {0xFA13, 0xFA14, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPAT - {0xFA15, 0xFA1E, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPAT - {0xFA1F, 0x0, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA1F - {0xFA20, 0x0, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA20 - {0xFA21, 0x0, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA21 - {0xFA22, 0x0, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA22 - {0xFA23, 0xFA24, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPAT - {0xFA25, 0xFA26, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPAT - {0xFA27, 0xFA29, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPAT - {0xFA2A, 0xFA2D, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPAT - {0xFA2E, 0xFA2F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFA30, 0xFA6D, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPAT - {0xFA6E, 0xFA6F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFA70, 0xFAD9, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPAT - {0xFADA, 0xFAFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFB00, 0xFB06, propertyDISALLOWED}, // LATIN SMALL LIGATURE FF..LATIN SMALL LIGATUR - {0xFB07, 0xFB12, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFB13, 0xFB17, propertyDISALLOWED}, // ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SM - {0xFB18, 0xFB1C, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFB1D, 0x0, propertyDISALLOWED}, // HEBREW LETTER YOD WITH HIRIQ - {0xFB1E, 0x0, propertyPVALID}, // HEBREW POINT JUDEO-SPANISH VARIKA - {0xFB1F, 0xFB36, propertyDISALLOWED}, // HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBRE - {0xFB37, 0x0, propertyUNASSIGNED}, // <reserved> - {0xFB38, 0xFB3C, propertyDISALLOWED}, // HEBREW LETTER TET WITH DAGESH..HEBREW LETTER - {0xFB3D, 0x0, propertyUNASSIGNED}, // <reserved> - {0xFB3E, 0x0, propertyDISALLOWED}, // HEBREW LETTER MEM WITH DAGESH - {0xFB3F, 0x0, propertyUNASSIGNED}, // <reserved> - {0xFB40, 0xFB41, propertyDISALLOWED}, // HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER - {0xFB42, 0x0, propertyUNASSIGNED}, // <reserved> - {0xFB43, 0xFB44, propertyDISALLOWED}, // HEBREW LETTER FINAL PE WITH DAGESH..HEBREW L - {0xFB45, 0x0, propertyUNASSIGNED}, // <reserved> - {0xFB46, 0xFBB1, propertyDISALLOWED}, // HEBREW LETTER TSADI WITH DAGESH..ARABIC LETT - {0xFBB2, 0xFBD2, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFBD3, 0xFD3F, propertyDISALLOWED}, // ARABIC LETTER NG ISOLATED FORM..ORNATE RIGHT - {0xFD40, 0xFD4F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFD50, 0xFD8F, propertyDISALLOWED}, // ARABIC LIGATURE TEH WITH JEEM WITH MEEM INIT - {0xFD90, 0xFD91, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFD92, 0xFDC7, propertyDISALLOWED}, // ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INI - {0xFDC8, 0xFDCF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFDD0, 0xFDFD, propertyDISALLOWED}, // <noncharacter>..ARABIC LIGATURE BISMILLAH AR - {0xFDFE, 0xFDFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFE00, 0xFE19, propertyDISALLOWED}, // VARIATION SELECTOR-1..PRESENTATION FORM FOR - {0xFE1A, 0xFE1F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFE20, 0xFE26, propertyPVALID}, // COMBINING LIGATURE LEFT HALF..COMBINING CONJ - {0xFE27, 0xFE2F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFE30, 0xFE52, propertyDISALLOWED}, // PRESENTATION FORM FOR VERTICAL TWO DOT LEADE - {0xFE53, 0x0, propertyUNASSIGNED}, // <reserved> - {0xFE54, 0xFE66, propertyDISALLOWED}, // SMALL SEMICOLON..SMALL EQUALS SIGN - {0xFE67, 0x0, propertyUNASSIGNED}, // <reserved> - {0xFE68, 0xFE6B, propertyDISALLOWED}, // SMALL REVERSE SOLIDUS..SMALL COMMERCIAL AT - {0xFE6C, 0xFE6F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFE70, 0xFE72, propertyDISALLOWED}, // ARABIC FATHATAN ISOLATED FORM..ARABIC DAMMAT - {0xFE73, 0x0, propertyPVALID}, // ARABIC TAIL FRAGMENT - {0xFE74, 0x0, propertyDISALLOWED}, // ARABIC KASRATAN ISOLATED FORM - {0xFE75, 0x0, propertyUNASSIGNED}, // <reserved> - {0xFE76, 0xFEFC, propertyDISALLOWED}, // ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE - {0xFEFD, 0xFEFE, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFEFF, 0x0, propertyDISALLOWED}, // ZERO WIDTH NO-BREAK SPACE - {0xFF00, 0x0, propertyUNASSIGNED}, // <reserved> - {0xFF01, 0xFFBE, propertyDISALLOWED}, // FULLWIDTH EXCLAMATION MARK..HALFWIDTH HANGUL - {0xFFBF, 0xFFC1, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFFC2, 0xFFC7, propertyDISALLOWED}, // HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL - {0xFFC8, 0xFFC9, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFFCA, 0xFFCF, propertyDISALLOWED}, // HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGU - {0xFFD0, 0xFFD1, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFFD2, 0xFFD7, propertyDISALLOWED}, // HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL - {0xFFD8, 0xFFD9, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFFDA, 0xFFDC, propertyDISALLOWED}, // HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL - {0xFFDD, 0xFFDF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFFE0, 0xFFE6, propertyDISALLOWED}, // FULLWIDTH CENT SIGN..FULLWIDTH WON SIGN - {0xFFE7, 0x0, propertyUNASSIGNED}, // <reserved> - {0xFFE8, 0xFFEE, propertyDISALLOWED}, // HALFWIDTH FORMS LIGHT VERTICAL..HALFWIDTH WH - {0xFFEF, 0xFFF8, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xFFF9, 0xFFFF, propertyDISALLOWED}, // INTERLINEAR ANNOTATION ANCHOR..<noncharacter - {0x10000, 0x1000B, propertyPVALID}, // LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE - {0x1000C, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1000D, 0x10026, propertyPVALID}, // LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE - {0x10027, 0x0, propertyUNASSIGNED}, // <reserved> - {0x10028, 0x1003A, propertyPVALID}, // LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE - {0x1003B, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1003C, 0x1003D, propertyPVALID}, // LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE - {0x1003E, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1003F, 0x1004D, propertyPVALID}, // LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE - {0x1004E, 0x1004F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10050, 0x1005D, propertyPVALID}, // LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 - {0x1005E, 0x1007F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10080, 0x100FA, propertyPVALID}, // LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRA - {0x100FB, 0x100FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10100, 0x10102, propertyDISALLOWED}, // AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MAR - {0x10103, 0x10106, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10107, 0x10133, propertyDISALLOWED}, // AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOU - {0x10134, 0x10136, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10137, 0x1018A, propertyDISALLOWED}, // AEGEAN WEIGHT BASE UNIT..GREEK ZERO SIGN - {0x1018B, 0x1018F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10190, 0x1019B, propertyDISALLOWED}, // ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN - {0x1019C, 0x101CF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x101D0, 0x101FC, propertyDISALLOWED}, // PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC - {0x101FD, 0x0, propertyPVALID}, // PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE - {0x101FE, 0x1027F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10280, 0x1029C, propertyPVALID}, // LYCIAN LETTER A..LYCIAN LETTER X - {0x1029D, 0x1029F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x102A0, 0x102D0, propertyPVALID}, // CARIAN LETTER A..CARIAN LETTER UUU3 - {0x102D1, 0x102FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10300, 0x1031E, propertyPVALID}, // OLD ITALIC LETTER A..OLD ITALIC LETTER UU - {0x1031F, 0x0, propertyUNASSIGNED}, // <reserved> - {0x10320, 0x10323, propertyDISALLOWED}, // OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL F - {0x10324, 0x1032F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10330, 0x10340, propertyPVALID}, // GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA - {0x10341, 0x0, propertyDISALLOWED}, // GOTHIC LETTER NINETY - {0x10342, 0x10349, propertyPVALID}, // GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL - {0x1034A, 0x0, propertyDISALLOWED}, // GOTHIC LETTER NINE HUNDRED - {0x1034B, 0x1037F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10380, 0x1039D, propertyPVALID}, // UGARITIC LETTER ALPA..UGARITIC LETTER SSU - {0x1039E, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1039F, 0x0, propertyDISALLOWED}, // UGARITIC WORD DIVIDER - {0x103A0, 0x103C3, propertyPVALID}, // OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA - {0x103C4, 0x103C7, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x103C8, 0x103CF, propertyPVALID}, // OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIG - {0x103D0, 0x103D5, propertyDISALLOWED}, // OLD PERSIAN WORD DIVIDER..OLD PERSIAN NUMBER - {0x103D6, 0x103FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10400, 0x10427, propertyDISALLOWED}, // DESERET CAPITAL LETTER LONG I..DESERET CAPIT - {0x10428, 0x1049D, propertyPVALID}, // DESERET SMALL LETTER LONG I..OSMANYA LETTER - {0x1049E, 0x1049F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x104A0, 0x104A9, propertyPVALID}, // OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE - {0x104AA, 0x107FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10800, 0x10805, propertyPVALID}, // CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA - {0x10806, 0x10807, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10808, 0x0, propertyPVALID}, // CYPRIOT SYLLABLE JO - {0x10809, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1080A, 0x10835, propertyPVALID}, // CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO - {0x10836, 0x0, propertyUNASSIGNED}, // <reserved> - {0x10837, 0x10838, propertyPVALID}, // CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE - {0x10839, 0x1083B, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1083C, 0x0, propertyPVALID}, // CYPRIOT SYLLABLE ZA - {0x1083D, 0x1083E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1083F, 0x10855, propertyPVALID}, // CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER - {0x10856, 0x0, propertyUNASSIGNED}, // <reserved> - {0x10857, 0x1085F, propertyDISALLOWED}, // IMPERIAL ARAMAIC SECTION SIGN..IMPERIAL ARAM - {0x10860, 0x108FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10900, 0x10915, propertyPVALID}, // PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU - {0x10916, 0x1091B, propertyDISALLOWED}, // PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THR - {0x1091C, 0x1091E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1091F, 0x0, propertyDISALLOWED}, // PHOENICIAN WORD SEPARATOR - {0x10920, 0x10939, propertyPVALID}, // LYDIAN LETTER A..LYDIAN LETTER C - {0x1093A, 0x1093E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1093F, 0x0, propertyDISALLOWED}, // LYDIAN TRIANGULAR MARK - {0x10940, 0x109FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10A00, 0x10A03, propertyPVALID}, // KHAROSHTHI LETTER A..KHAROSHTHI VOWEL SIGN V - {0x10A04, 0x0, propertyUNASSIGNED}, // <reserved> - {0x10A05, 0x10A06, propertyPVALID}, // KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SI - {0x10A07, 0x10A0B, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10A0C, 0x10A13, propertyPVALID}, // KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI LET - {0x10A14, 0x0, propertyUNASSIGNED}, // <reserved> - {0x10A15, 0x10A17, propertyPVALID}, // KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA - {0x10A18, 0x0, propertyUNASSIGNED}, // <reserved> - {0x10A19, 0x10A33, propertyPVALID}, // KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTT - {0x10A34, 0x10A37, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10A38, 0x10A3A, propertyPVALID}, // KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN D - {0x10A3B, 0x10A3E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10A3F, 0x0, propertyPVALID}, // KHAROSHTHI VIRAMA - {0x10A40, 0x10A47, propertyDISALLOWED}, // KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE - {0x10A48, 0x10A4F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10A50, 0x10A58, propertyDISALLOWED}, // KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCT - {0x10A59, 0x10A5F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10A60, 0x10A7C, propertyPVALID}, // OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABI - {0x10A7D, 0x10A7F, propertyDISALLOWED}, // OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARAB - {0x10A80, 0x10AFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10B00, 0x10B35, propertyPVALID}, // AVESTAN LETTER A..AVESTAN LETTER HE - {0x10B36, 0x10B38, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10B39, 0x10B3F, propertyDISALLOWED}, // AVESTAN ABBREVIATION MARK..LARGE ONE RING OV - {0x10B40, 0x10B55, propertyPVALID}, // INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIP - {0x10B56, 0x10B57, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10B58, 0x10B5F, propertyDISALLOWED}, // INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTI - {0x10B60, 0x10B72, propertyPVALID}, // INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPT - {0x10B73, 0x10B77, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10B78, 0x10B7F, propertyDISALLOWED}, // INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIO - {0x10B80, 0x10BFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10C00, 0x10C48, propertyPVALID}, // OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTE - {0x10C49, 0x10E5F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x10E60, 0x10E7E, propertyDISALLOWED}, // RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS - {0x10E7F, 0x1107F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x11080, 0x110BA, propertyPVALID}, // KAITHI SIGN CANDRABINDU..KAITHI SIGN NUKTA - {0x110BB, 0x110C1, propertyDISALLOWED}, // KAITHI ABBREVIATION SIGN..KAITHI DOUBLE DAND - {0x110C2, 0x11FFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x12000, 0x1236E, propertyPVALID}, // CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM - {0x1236F, 0x123FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x12400, 0x12462, propertyDISALLOWED}, // CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NU - {0x12463, 0x1246F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x12470, 0x12473, propertyDISALLOWED}, // CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD - {0x12474, 0x12FFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x13000, 0x1342E, propertyPVALID}, // EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYP - {0x1342F, 0x1CFFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D000, 0x1D0F5, propertyDISALLOWED}, // BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MU - {0x1D0F6, 0x1D0FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D100, 0x1D126, propertyDISALLOWED}, // MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBO - {0x1D127, 0x1D128, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D129, 0x1D1DD, propertyDISALLOWED}, // MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICA - {0x1D1DE, 0x1D1FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D200, 0x1D245, propertyDISALLOWED}, // GREEK VOCAL NOTATION SYMBOL-1..GREEK MUSICAL - {0x1D246, 0x1D2FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D300, 0x1D356, propertyDISALLOWED}, // MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING - {0x1D357, 0x1D35F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D360, 0x1D371, propertyDISALLOWED}, // COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TE - {0x1D372, 0x1D3FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D400, 0x1D454, propertyDISALLOWED}, // MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL IT - {0x1D455, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1D456, 0x1D49C, propertyDISALLOWED}, // MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SC - {0x1D49D, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1D49E, 0x1D49F, propertyDISALLOWED}, // MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL - {0x1D4A0, 0x1D4A1, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D4A2, 0x0, propertyDISALLOWED}, // MATHEMATICAL SCRIPT CAPITAL G - {0x1D4A3, 0x1D4A4, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D4A5, 0x1D4A6, propertyDISALLOWED}, // MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL - {0x1D4A7, 0x1D4A8, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D4A9, 0x1D4AC, propertyDISALLOWED}, // MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL - {0x1D4AD, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1D4AE, 0x1D4B9, propertyDISALLOWED}, // MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL - {0x1D4BA, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1D4BB, 0x0, propertyDISALLOWED}, // MATHEMATICAL SCRIPT SMALL F - {0x1D4BC, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1D4BD, 0x1D4C3, propertyDISALLOWED}, // MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SC - {0x1D4C4, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1D4C5, 0x1D505, propertyDISALLOWED}, // MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FR - {0x1D506, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1D507, 0x1D50A, propertyDISALLOWED}, // MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL - {0x1D50B, 0x1D50C, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D50D, 0x1D514, propertyDISALLOWED}, // MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL - {0x1D515, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1D516, 0x1D51C, propertyDISALLOWED}, // MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL - {0x1D51D, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1D51E, 0x1D539, propertyDISALLOWED}, // MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL D - {0x1D53A, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1D53B, 0x1D53E, propertyDISALLOWED}, // MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEM - {0x1D53F, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1D540, 0x1D544, propertyDISALLOWED}, // MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEM - {0x1D545, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1D546, 0x0, propertyDISALLOWED}, // MATHEMATICAL DOUBLE-STRUCK CAPITAL O - {0x1D547, 0x1D549, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D54A, 0x1D550, propertyDISALLOWED}, // MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEM - {0x1D551, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1D552, 0x1D6A5, propertyDISALLOWED}, // MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMAT - {0x1D6A6, 0x1D6A7, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D6A8, 0x1D7CB, propertyDISALLOWED}, // MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICA - {0x1D7CC, 0x1D7CD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1D7CE, 0x1D7FF, propertyDISALLOWED}, // MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL M - {0x1D800, 0x1EFFF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F000, 0x1F02B, propertyDISALLOWED}, // MAHJONG TILE EAST WIND..MAHJONG TILE BACK - {0x1F02C, 0x1F02F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F030, 0x1F093, propertyDISALLOWED}, // DOMINO TILE HORIZONTAL BACK..DOMINO TILE VER - {0x1F094, 0x1F0FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F100, 0x1F10A, propertyDISALLOWED}, // DIGIT ZERO FULL STOP..DIGIT NINE COMMA - {0x1F10B, 0x1F10F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F110, 0x1F12E, propertyDISALLOWED}, // PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLE - {0x1F12F, 0x1F130, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F131, 0x0, propertyDISALLOWED}, // SQUARED LATIN CAPITAL LETTER B - {0x1F132, 0x1F13C, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F13D, 0x0, propertyDISALLOWED}, // SQUARED LATIN CAPITAL LETTER N - {0x1F13E, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1F13F, 0x0, propertyDISALLOWED}, // SQUARED LATIN CAPITAL LETTER P - {0x1F140, 0x1F141, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F142, 0x0, propertyDISALLOWED}, // SQUARED LATIN CAPITAL LETTER S - {0x1F143, 0x1F145, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F146, 0x0, propertyDISALLOWED}, // SQUARED LATIN CAPITAL LETTER W - {0x1F147, 0x1F149, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F14A, 0x1F14E, propertyDISALLOWED}, // SQUARED HV..SQUARED PPV - {0x1F14F, 0x1F156, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F157, 0x0, propertyDISALLOWED}, // NEGATIVE CIRCLED LATIN CAPITAL LETTER H - {0x1F158, 0x1F15E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F15F, 0x0, propertyDISALLOWED}, // NEGATIVE CIRCLED LATIN CAPITAL LETTER P - {0x1F160, 0x1F178, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F179, 0x0, propertyDISALLOWED}, // NEGATIVE SQUARED LATIN CAPITAL LETTER J - {0x1F17A, 0x0, propertyUNASSIGNED}, // <reserved> - {0x1F17B, 0x1F17C, propertyDISALLOWED}, // NEGATIVE SQUARED LATIN CAPITAL LETTER L..NEG - {0x1F17D, 0x1F17E, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F17F, 0x0, propertyDISALLOWED}, // NEGATIVE SQUARED LATIN CAPITAL LETTER P - {0x1F180, 0x1F189, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F18A, 0x1F18D, propertyDISALLOWED}, // CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTE - {0x1F18E, 0x1F18F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F190, 0x0, propertyDISALLOWED}, // SQUARE DJ - {0x1F191, 0x1F1FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F200, 0x0, propertyDISALLOWED}, // SQUARE HIRAGANA HOKA - {0x1F201, 0x1F20F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F210, 0x1F231, propertyDISALLOWED}, // SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED - {0x1F232, 0x1F23F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1F240, 0x1F248, propertyDISALLOWED}, // TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRA - {0x1F249, 0x1FFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x1FFFE, 0x1FFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> - {0x20000, 0x2A6D6, propertyPVALID}, // <CJK Ideograph Extension B>..<CJK Ideograph - {0x2A6D7, 0x2A6FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2A700, 0x2B734, propertyPVALID}, // <CJK Ideograph Extension C>..<CJK Ideograph - {0x2B735, 0x2F7FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2F800, 0x2FA1D, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPA - {0x2FA1E, 0x2FFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x2FFFE, 0x2FFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> - {0x30000, 0x3FFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x3FFFE, 0x3FFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> - {0x40000, 0x4FFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x4FFFE, 0x4FFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> - {0x50000, 0x5FFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x5FFFE, 0x5FFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> - {0x60000, 0x6FFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x6FFFE, 0x6FFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> - {0x70000, 0x7FFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x7FFFE, 0x7FFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> - {0x80000, 0x8FFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x8FFFE, 0x8FFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> - {0x90000, 0x9FFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0x9FFFE, 0x9FFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> - {0xA0000, 0xAFFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xAFFFE, 0xAFFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> - {0xB0000, 0xBFFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xBFFFE, 0xBFFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> - {0xC0000, 0xCFFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xCFFFE, 0xCFFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> - {0xD0000, 0xDFFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xDFFFE, 0xDFFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> - {0xE0000, 0x0, propertyUNASSIGNED}, // <reserved> - {0xE0001, 0x0, propertyDISALLOWED}, // LANGUAGE TAG - {0xE0002, 0xE001F, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xE0020, 0xE007F, propertyDISALLOWED}, // TAG SPACE..CANCEL TAG - {0xE0080, 0xE00FF, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xE0100, 0xE01EF, propertyDISALLOWED}, // VARIATION SELECTOR-17..VARIATION SELECTOR-25 - {0xE01F0, 0xEFFFD, propertyUNASSIGNED}, // <reserved>..<reserved> - {0xEFFFE, 0x10FFFF, propertyDISALLOWED}, // <noncharacter>..<noncharacter> -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/example_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/example_test.go deleted file mode 100644 index 7835b6f5..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/example_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package idn_test - -import ( - "fmt" - "gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn" -) - -func ExampleToPunycode() { - name := "インターãƒãƒƒãƒˆ.テスト" - fmt.Printf("%s -> %s", name, idn.ToPunycode(name)) - // Output: インターãƒãƒƒãƒˆ.テスト -> xn--eckucmux0ukc.xn--zckzah -} - -func ExampleFromPunycode() { - name := "xn--mgbaja8a1hpac.xn--mgbachtv" - fmt.Printf("%s -> %s", name, idn.FromPunycode(name)) - // Output: xn--mgbaja8a1hpac.xn--mgbachtv -> الانترنت.اختبار -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/punycode.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/punycode.go deleted file mode 100644 index d98c6042..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/punycode.go +++ /dev/null @@ -1,373 +0,0 @@ -// Package idn implements encoding from and to punycode as speficied by RFC 3492. -package idn - -import ( - "bytes" - "strings" - "unicode" - "unicode/utf8" - - "gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns" -) - -// Implementation idea from RFC itself and from from IDNA::Punycode created by -// Tatsuhiko Miyagawa <miyagawa@bulknews.net> and released under Perl Artistic -// License in 2002. - -const ( - _MIN rune = 1 - _MAX rune = 26 - _SKEW rune = 38 - _BASE rune = 36 - _BIAS rune = 72 - _N rune = 128 - _DAMP rune = 700 - - _DELIMITER = '-' - _PREFIX = "xn--" -) - -// ToPunycode converts unicode domain names to DNS-appropriate punycode names. -// This function will return an empty string result for domain names with -// invalid unicode strings. This function expects domain names in lowercase. -func ToPunycode(s string) string { - // Early check to see if encoding is needed. - // This will prevent making heap allocations when not needed. - if !needToPunycode(s) { - return s - } - - tokens := dns.SplitDomainName(s) - switch { - case s == "": - return "" - case tokens == nil: // s == . - return "." - case s[len(s)-1] == '.': - tokens = append(tokens, "") - } - - for i := range tokens { - t := encode([]byte(tokens[i])) - if t == nil { - return "" - } - tokens[i] = string(t) - } - return strings.Join(tokens, ".") -} - -// FromPunycode returns unicode domain name from provided punycode string. -// This function expects punycode strings in lowercase. -func FromPunycode(s string) string { - // Early check to see if decoding is needed. - // This will prevent making heap allocations when not needed. - if !needFromPunycode(s) { - return s - } - - tokens := dns.SplitDomainName(s) - switch { - case s == "": - return "" - case tokens == nil: // s == . - return "." - case s[len(s)-1] == '.': - tokens = append(tokens, "") - } - for i := range tokens { - tokens[i] = string(decode([]byte(tokens[i]))) - } - return strings.Join(tokens, ".") -} - -// digitval converts single byte into meaningful value that's used to calculate decoded unicode character. -const errdigit = 0xffff - -func digitval(code rune) rune { - switch { - case code >= 'A' && code <= 'Z': - return code - 'A' - case code >= 'a' && code <= 'z': - return code - 'a' - case code >= '0' && code <= '9': - return code - '0' + 26 - } - return errdigit -} - -// lettercode finds BASE36 byte (a-z0-9) based on calculated number. -func lettercode(digit rune) rune { - switch { - case digit >= 0 && digit <= 25: - return digit + 'a' - case digit >= 26 && digit <= 36: - return digit - 26 + '0' - } - panic("dns: not reached") -} - -// adapt calculates next bias to be used for next iteration delta. -func adapt(delta rune, numpoints int, firsttime bool) rune { - if firsttime { - delta /= _DAMP - } else { - delta /= 2 - } - - var k rune - for delta = delta + delta/rune(numpoints); delta > (_BASE-_MIN)*_MAX/2; k += _BASE { - delta /= _BASE - _MIN - } - - return k + ((_BASE-_MIN+1)*delta)/(delta+_SKEW) -} - -// next finds minimal rune (one with lowest codepoint value) that should be equal or above boundary. -func next(b []rune, boundary rune) rune { - if len(b) == 0 { - panic("dns: invalid set of runes to determine next one") - } - m := b[0] - for _, x := range b[1:] { - if x >= boundary && (m < boundary || x < m) { - m = x - } - } - return m -} - -// preprune converts unicode rune to lower case. At this time it's not -// supporting all things described in RFCs. -func preprune(r rune) rune { - if unicode.IsUpper(r) { - r = unicode.ToLower(r) - } - return r -} - -// tfunc is a function that helps calculate each character weight. -func tfunc(k, bias rune) rune { - switch { - case k <= bias: - return _MIN - case k >= bias+_MAX: - return _MAX - } - return k - bias -} - -// needToPunycode returns true for strings that require punycode encoding -// (contain unicode characters). -func needToPunycode(s string) bool { - // This function is very similar to bytes.Runes. We don't use bytes.Runes - // because it makes a heap allocation that's not needed here. - for i := 0; len(s) > 0; i++ { - r, l := utf8.DecodeRuneInString(s) - if r > 0x7f { - return true - } - s = s[l:] - } - return false -} - -// needFromPunycode returns true for strings that require punycode decoding. -func needFromPunycode(s string) bool { - if s == "." { - return false - } - - off := 0 - end := false - pl := len(_PREFIX) - sl := len(s) - - // If s starts with _PREFIX. - if sl > pl && s[off:off+pl] == _PREFIX { - return true - } - - for { - // Find the part after the next ".". - off, end = dns.NextLabel(s, off) - if end { - return false - } - // If this parts starts with _PREFIX. - if sl-off > pl && s[off:off+pl] == _PREFIX { - return true - } - } -} - -// encode transforms Unicode input bytes (that represent DNS label) into -// punycode bytestream. This function would return nil if there's an invalid -// character in the label. -func encode(input []byte) []byte { - n, bias := _N, _BIAS - - b := bytes.Runes(input) - for i := range b { - if !isValidRune(b[i]) { - return nil - } - - b[i] = preprune(b[i]) - } - - basic := make([]byte, 0, len(b)) - for _, ltr := range b { - if ltr <= 0x7f { - basic = append(basic, byte(ltr)) - } - } - basiclen := len(basic) - fulllen := len(b) - if basiclen == fulllen { - return basic - } - - var out bytes.Buffer - - out.WriteString(_PREFIX) - if basiclen > 0 { - out.Write(basic) - out.WriteByte(_DELIMITER) - } - - var ( - ltr, nextltr rune - delta, q rune // delta calculation (see rfc) - t, k, cp rune // weight and codepoint calculation - ) - - s := &bytes.Buffer{} - for h := basiclen; h < fulllen; n, delta = n+1, delta+1 { - nextltr = next(b, n) - s.Truncate(0) - s.WriteRune(nextltr) - delta, n = delta+(nextltr-n)*rune(h+1), nextltr - - for _, ltr = range b { - if ltr < n { - delta++ - } - if ltr == n { - q = delta - for k = _BASE; ; k += _BASE { - t = tfunc(k, bias) - if q < t { - break - } - cp = t + ((q - t) % (_BASE - t)) - out.WriteRune(lettercode(cp)) - q = (q - t) / (_BASE - t) - } - - out.WriteRune(lettercode(q)) - - bias = adapt(delta, h+1, h == basiclen) - h, delta = h+1, 0 - } - } - } - return out.Bytes() -} - -// decode transforms punycode input bytes (that represent DNS label) into Unicode bytestream. -func decode(b []byte) []byte { - src := b // b would move and we need to keep it - - n, bias := _N, _BIAS - if !bytes.HasPrefix(b, []byte(_PREFIX)) { - return b - } - out := make([]rune, 0, len(b)) - b = b[len(_PREFIX):] - for pos := len(b) - 1; pos >= 0; pos-- { - // only last delimiter is our interest - if b[pos] == _DELIMITER { - out = append(out, bytes.Runes(b[:pos])...) - b = b[pos+1:] // trim source string - break - } - } - if len(b) == 0 { - return src - } - var ( - i, oldi, w rune - ch byte - t, digit rune - ln int - ) - - for i = 0; len(b) > 0; i++ { - oldi, w = i, 1 - for k := _BASE; len(b) > 0; k += _BASE { - ch, b = b[0], b[1:] - digit = digitval(rune(ch)) - if digit == errdigit { - return src - } - i += digit * w - if i < 0 { - // safety check for rune overflow - return src - } - - t = tfunc(k, bias) - if digit < t { - break - } - - w *= _BASE - t - } - ln = len(out) + 1 - bias = adapt(i-oldi, ln, oldi == 0) - n += i / rune(ln) - i = i % rune(ln) - // insert - out = append(out, 0) - copy(out[i+1:], out[i:]) - out[i] = n - } - - var ret bytes.Buffer - for _, r := range out { - ret.WriteRune(r) - } - return ret.Bytes() -} - -// isValidRune checks if the character is valid. We will look for the -// character property in the code points list. For now we aren't checking special -// rules in case of contextual property -func isValidRune(r rune) bool { - return findProperty(r) == propertyPVALID -} - -// findProperty will try to check the code point property of the given -// character. It will use a binary search algorithm as we have a slice of -// ordered ranges (average case performance O(log n)) -func findProperty(r rune) property { - imin, imax := 0, len(codePoints) - - for imax >= imin { - imid := (imin + imax) / 2 - - codePoint := codePoints[imid] - if (codePoint.start == r && codePoint.end == 0) || (codePoint.start <= r && codePoint.end >= r) { - return codePoint.state - } - - if (codePoint.end > 0 && codePoint.end < r) || (codePoint.end == 0 && codePoint.start < r) { - imin = imid + 1 - } else { - imax = imid - 1 - } - } - - return propertyUnknown -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/punycode_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/punycode_test.go deleted file mode 100644 index 9c9a15f0..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/idn/punycode_test.go +++ /dev/null @@ -1,116 +0,0 @@ -package idn - -import ( - "strings" - "testing" -) - -var testcases = [][2]string{ - {"", ""}, - {"a", "a"}, - {"a-b", "a-b"}, - {"a-b-c", "a-b-c"}, - {"abc", "abc"}, - {"Ñ", "xn--41a"}, - {"zÑ", "xn--z-0ub"}, - {"ÑZ", "xn--z-zub"}, - {"а-Ñ", "xn----7sb8g"}, - {"إختبار", "xn--kgbechtv"}, - {"آزمایشی", "xn--hgbk6aj7f53bba"}, - {"测试", "xn--0zwm56d"}, - {"測試", "xn--g6w251d"}, - {"иÑпытание", "xn--80akhbyknj4f"}, - {"परीकà¥à¤·à¤¾", "xn--11b5bs3a9aj6g"}, - {"δοκιμή", "xn--jxalpdlp"}, - {"테스트", "xn--9t4b11yi5a"}, - {"טעסט", "xn--deba0ad"}, - {"テスト", "xn--zckzah"}, - {"பரிடà¯à®šà¯ˆ", "xn--hlcj6aya9esc7a"}, - {"mamão-com-açúcar", "xn--mamo-com-acar-yeb1e6q"}, - {"σ", "xn--4xa"}, -} - -func TestEncodeDecodePunycode(t *testing.T) { - for _, tst := range testcases { - enc := encode([]byte(tst[0])) - if string(enc) != tst[1] { - t.Errorf("%s encodeded as %s but should be %s", tst[0], enc, tst[1]) - } - dec := decode([]byte(tst[1])) - if string(dec) != strings.ToLower(tst[0]) { - t.Errorf("%s decoded as %s but should be %s", tst[1], dec, strings.ToLower(tst[0])) - } - } -} - -func TestToFromPunycode(t *testing.T) { - for _, tst := range testcases { - // assert unicode.com == punycode.com - full := ToPunycode(tst[0] + ".com") - if full != tst[1]+".com" { - t.Errorf("invalid result from string conversion to punycode, %s and should be %s.com", full, tst[1]) - } - // assert punycode.punycode == unicode.unicode - decoded := FromPunycode(tst[1] + "." + tst[1]) - if decoded != strings.ToLower(tst[0]+"."+tst[0]) { - t.Errorf("invalid result from string conversion to punycode, %s and should be %s.%s", decoded, tst[0], tst[0]) - } - } -} - -func TestEncodeDecodeFinalPeriod(t *testing.T) { - for _, tst := range testcases { - // assert unicode.com. == punycode.com. - full := ToPunycode(tst[0] + ".") - if full != tst[1]+"." { - t.Errorf("invalid result from string conversion to punycode when period added at the end, %#v and should be %#v", full, tst[1]+".") - } - // assert punycode.com. == unicode.com. - decoded := FromPunycode(tst[1] + ".") - if decoded != strings.ToLower(tst[0]+".") { - t.Errorf("invalid result from string conversion to punycode when period added, %#v and should be %#v", decoded, tst[0]+".") - } - full = ToPunycode(tst[0]) - if full != tst[1] { - t.Errorf("invalid result from string conversion to punycode when no period added at the end, %#v and should be %#v", full, tst[1]+".") - } - // assert punycode.com. == unicode.com. - decoded = FromPunycode(tst[1]) - if decoded != strings.ToLower(tst[0]) { - t.Errorf("invalid result from string conversion to punycode when no period added, %#v and should be %#v", decoded, tst[0]+".") - } - } -} - -var invalidACEs = []string{ - "xn--*", - "xn--", - "xn---", - "xn--a000000000", -} - -func TestInvalidPunycode(t *testing.T) { - for _, d := range invalidACEs { - s := FromPunycode(d) - if s != d { - t.Errorf("Changed invalid name %s to %#v", d, s) - } - } -} - -// You can verify the labels that are valid or not comparing to the Verisign -// website: http://mct.verisign-grs.com/ -var invalidUnicodes = []string{ - "Σ", - "ЯZ", - "ИÑпытание", -} - -func TestInvalidUnicodes(t *testing.T) { - for _, d := range invalidUnicodes { - s := ToPunycode(d) - if s != "" { - t.Errorf("Changed invalid name %s to %#v", d, s) - } - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/labels.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/labels.go deleted file mode 100644 index 3944dd06..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/labels.go +++ /dev/null @@ -1,162 +0,0 @@ -package dns - -// Holds a bunch of helper functions for dealing with labels. - -// SplitDomainName splits a name string into it's labels. -// www.miek.nl. returns []string{"www", "miek", "nl"} -// The root label (.) returns nil. Note that using -// strings.Split(s) will work in most cases, but does not handle -// escaped dots (\.) for instance. -func SplitDomainName(s string) (labels []string) { - if len(s) == 0 { - return nil - } - fqdnEnd := 0 // offset of the final '.' or the length of the name - idx := Split(s) - begin := 0 - if s[len(s)-1] == '.' { - fqdnEnd = len(s) - 1 - } else { - fqdnEnd = len(s) - } - - switch len(idx) { - case 0: - return nil - case 1: - // no-op - default: - end := 0 - for i := 1; i < len(idx); i++ { - end = idx[i] - labels = append(labels, s[begin:end-1]) - begin = end - } - } - - labels = append(labels, s[begin:fqdnEnd]) - return labels -} - -// CompareDomainName compares the names s1 and s2 and -// returns how many labels they have in common starting from the *right*. -// The comparison stops at the first inequality. The names are not downcased -// before the comparison. -// -// www.miek.nl. and miek.nl. have two labels in common: miek and nl -// www.miek.nl. and www.bla.nl. have one label in common: nl -func CompareDomainName(s1, s2 string) (n int) { - s1 = Fqdn(s1) - s2 = Fqdn(s2) - l1 := Split(s1) - l2 := Split(s2) - - // the first check: root label - if l1 == nil || l2 == nil { - return - } - - j1 := len(l1) - 1 // end - i1 := len(l1) - 2 // start - j2 := len(l2) - 1 - i2 := len(l2) - 2 - // the second check can be done here: last/only label - // before we fall through into the for-loop below - if s1[l1[j1]:] == s2[l2[j2]:] { - n++ - } else { - return - } - for { - if i1 < 0 || i2 < 0 { - break - } - if s1[l1[i1]:l1[j1]] == s2[l2[i2]:l2[j2]] { - n++ - } else { - break - } - j1-- - i1-- - j2-- - i2-- - } - return -} - -// CountLabel counts the the number of labels in the string s. -func CountLabel(s string) (labels int) { - if s == "." { - return - } - off := 0 - end := false - for { - off, end = NextLabel(s, off) - labels++ - if end { - return - } - } -} - -// Split splits a name s into its label indexes. -// www.miek.nl. returns []int{0, 4, 9}, www.miek.nl also returns []int{0, 4, 9}. -// The root name (.) returns nil. Also see SplitDomainName. -func Split(s string) []int { - if s == "." { - return nil - } - idx := make([]int, 1, 3) - off := 0 - end := false - - for { - off, end = NextLabel(s, off) - if end { - return idx - } - idx = append(idx, off) - } -} - -// NextLabel returns the index of the start of the next label in the -// string s starting at offset. -// The bool end is true when the end of the string has been reached. -// Also see PrevLabel. -func NextLabel(s string, offset int) (i int, end bool) { - quote := false - for i = offset; i < len(s)-1; i++ { - switch s[i] { - case '\\': - quote = !quote - default: - quote = false - case '.': - if quote { - quote = !quote - continue - } - return i + 1, false - } - } - return i + 1, true -} - -// PrevLabel returns the index of the label when starting from the right and -// jumping n labels to the left. -// The bool start is true when the start of the string has been overshot. -// Also see NextLabel. -func PrevLabel(s string, n int) (i int, start bool) { - if n == 0 { - return len(s), false - } - lab := Split(s) - if lab == nil { - return 0, true - } - if n > len(lab) { - return 0, true - } - return lab[len(lab)-n], false -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/labels_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/labels_test.go deleted file mode 100644 index 2a3f3d05..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/labels_test.go +++ /dev/null @@ -1,199 +0,0 @@ -package dns - -import ( - "testing" -) - -func TestCompareDomainName(t *testing.T) { - s1 := "www.miek.nl." - s2 := "miek.nl." - s3 := "www.bla.nl." - s4 := "nl.www.bla." - s5 := "nl" - s6 := "miek.nl" - - if CompareDomainName(s1, s2) != 2 { - t.Errorf("%s with %s should be %d", s1, s2, 2) - } - if CompareDomainName(s1, s3) != 1 { - t.Errorf("%s with %s should be %d", s1, s3, 1) - } - if CompareDomainName(s3, s4) != 0 { - t.Errorf("%s with %s should be %d", s3, s4, 0) - } - // Non qualified tests - if CompareDomainName(s1, s5) != 1 { - t.Errorf("%s with %s should be %d", s1, s5, 1) - } - if CompareDomainName(s1, s6) != 2 { - t.Errorf("%s with %s should be %d", s1, s5, 2) - } - - if CompareDomainName(s1, ".") != 0 { - t.Errorf("%s with %s should be %d", s1, s5, 0) - } - if CompareDomainName(".", ".") != 0 { - t.Errorf("%s with %s should be %d", ".", ".", 0) - } -} - -func TestSplit(t *testing.T) { - splitter := map[string]int{ - "www.miek.nl.": 3, - "www.miek.nl": 3, - "www..miek.nl": 4, - `www\.miek.nl.`: 2, - `www\\.miek.nl.`: 3, - ".": 0, - "nl.": 1, - "nl": 1, - "com.": 1, - ".com.": 2, - } - for s, i := range splitter { - if x := len(Split(s)); x != i { - t.Errorf("labels should be %d, got %d: %s %v", i, x, s, Split(s)) - } else { - t.Logf("%s %v", s, Split(s)) - } - } -} - -func TestSplit2(t *testing.T) { - splitter := map[string][]int{ - "www.miek.nl.": []int{0, 4, 9}, - "www.miek.nl": []int{0, 4, 9}, - "nl": []int{0}, - } - for s, i := range splitter { - x := Split(s) - switch len(i) { - case 1: - if x[0] != i[0] { - t.Errorf("labels should be %v, got %v: %s", i, x, s) - } - default: - if x[0] != i[0] || x[1] != i[1] || x[2] != i[2] { - t.Errorf("labels should be %v, got %v: %s", i, x, s) - } - } - } -} - -func TestPrevLabel(t *testing.T) { - type prev struct { - string - int - } - prever := map[prev]int{ - prev{"www.miek.nl.", 0}: 12, - prev{"www.miek.nl.", 1}: 9, - prev{"www.miek.nl.", 2}: 4, - - prev{"www.miek.nl", 0}: 11, - prev{"www.miek.nl", 1}: 9, - prev{"www.miek.nl", 2}: 4, - - prev{"www.miek.nl.", 5}: 0, - prev{"www.miek.nl", 5}: 0, - - prev{"www.miek.nl.", 3}: 0, - prev{"www.miek.nl", 3}: 0, - } - for s, i := range prever { - x, ok := PrevLabel(s.string, s.int) - if i != x { - t.Errorf("label should be %d, got %d, %t: preving %d, %s", i, x, ok, s.int, s.string) - } - } -} - -func TestCountLabel(t *testing.T) { - splitter := map[string]int{ - "www.miek.nl.": 3, - "www.miek.nl": 3, - "nl": 1, - ".": 0, - } - for s, i := range splitter { - x := CountLabel(s) - if x != i { - t.Errorf("CountLabel should have %d, got %d", i, x) - } - } -} - -func TestSplitDomainName(t *testing.T) { - labels := map[string][]string{ - "miek.nl": []string{"miek", "nl"}, - ".": nil, - "www.miek.nl.": []string{"www", "miek", "nl"}, - "www.miek.nl": []string{"www", "miek", "nl"}, - "www..miek.nl": []string{"www", "", "miek", "nl"}, - `www\.miek.nl`: []string{`www\.miek`, "nl"}, - `www\\.miek.nl`: []string{`www\\`, "miek", "nl"}, - } -domainLoop: - for domain, splits := range labels { - parts := SplitDomainName(domain) - if len(parts) != len(splits) { - t.Errorf("SplitDomainName returned %v for %s, expected %v", parts, domain, splits) - continue domainLoop - } - for i := range parts { - if parts[i] != splits[i] { - t.Errorf("SplitDomainName returned %v for %s, expected %v", parts, domain, splits) - continue domainLoop - } - } - } -} - -func TestIsDomainName(t *testing.T) { - type ret struct { - ok bool - lab int - } - names := map[string]*ret{ - "..": &ret{false, 1}, - "@.": &ret{true, 1}, - "www.example.com": &ret{true, 3}, - "www.e%ample.com": &ret{true, 3}, - "www.example.com.": &ret{true, 3}, - "mi\\k.nl.": &ret{true, 2}, - "mi\\k.nl": &ret{true, 2}, - } - for d, ok := range names { - l, k := IsDomainName(d) - if ok.ok != k || ok.lab != l { - t.Errorf(" got %v %d for %s ", k, l, d) - t.Errorf("have %v %d for %s ", ok.ok, ok.lab, d) - } - } -} - -func BenchmarkSplitLabels(b *testing.B) { - for i := 0; i < b.N; i++ { - Split("www.example.com") - } -} - -func BenchmarkLenLabels(b *testing.B) { - for i := 0; i < b.N; i++ { - CountLabel("www.example.com") - } -} - -func BenchmarkCompareLabels(b *testing.B) { - for i := 0; i < b.N; i++ { - CompareDomainName("www.example.com", "aa.example.com") - } -} - -func BenchmarkIsSubDomain(b *testing.B) { - for i := 0; i < b.N; i++ { - IsSubDomain("www.example.com", "aa.example.com") - IsSubDomain("example.com", "aa.example.com") - IsSubDomain("miek.nl", "aa.example.com") - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/msg.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/msg.go deleted file mode 100644 index 73ffb616..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/msg.go +++ /dev/null @@ -1,1945 +0,0 @@ -// DNS packet assembly, see RFC 1035. Converting from - Unpack() - -// and to - Pack() - wire format. -// All the packers and unpackers take a (msg []byte, off int) -// and return (off1 int, ok bool). If they return ok==false, they -// also return off1==len(msg), so that the next unpacker will -// also fail. This lets us avoid checks of ok until the end of a -// packing sequence. - -package dns - -import ( - "encoding/base32" - "encoding/base64" - "encoding/hex" - "math/big" - "math/rand" - "net" - "reflect" - "strconv" - "time" -) - -const maxCompressionOffset = 2 << 13 // We have 14 bits for the compression pointer - -var ( - // ErrAlg indicates an error with the (DNSSEC) algorithm. - ErrAlg error = &Error{err: "bad algorithm"} - // ErrAuth indicates an error in the TSIG authentication. - ErrAuth error = &Error{err: "bad authentication"} - // ErrBuf indicates that the buffer used it too small for the message. - ErrBuf error = &Error{err: "buffer size too small"} - // ErrConnEmpty indicates a connection is being uses before it is initialized. - ErrConnEmpty error = &Error{err: "conn has no connection"} - // ErrExtendedRcode ... - ErrExtendedRcode error = &Error{err: "bad extended rcode"} - // ErrFqdn indicates that a domain name does not have a closing dot. - ErrFqdn error = &Error{err: "domain must be fully qualified"} - // ErrId indicates there is a mismatch with the message's ID. - ErrId error = &Error{err: "id mismatch"} - // ErrKeyAlg indicates that the algorithm in the key is not valid. - ErrKeyAlg error = &Error{err: "bad key algorithm"} - ErrKey error = &Error{err: "bad key"} - ErrKeySize error = &Error{err: "bad key size"} - ErrNoSig error = &Error{err: "no signature found"} - ErrPrivKey error = &Error{err: "bad private key"} - ErrRcode error = &Error{err: "bad rcode"} - ErrRdata error = &Error{err: "bad rdata"} - ErrRRset error = &Error{err: "bad rrset"} - ErrSecret error = &Error{err: "no secrets defined"} - ErrShortRead error = &Error{err: "short read"} - // ErrSig indicates that a signature can not be cryptographically validated. - ErrSig error = &Error{err: "bad signature"} - // ErrSOA indicates that no SOA RR was seen when doing zone transfers. - ErrSoa error = &Error{err: "no SOA"} - // ErrTime indicates a timing error in TSIG authentication. - ErrTime error = &Error{err: "bad time"} - // ErrTruncated indicates that we failed to unpack a truncated message. - // We unpacked as much as we had so Msg can still be used, if desired. - ErrTruncated error = &Error{err: "failed to unpack truncated message"} -) - -// Id, by default, returns a 16 bits random number to be used as a -// message id. The random provided should be good enough. This being a -// variable the function can be reassigned to a custom function. -// For instance, to make it return a static value: -// -// dns.Id = func() uint16 { return 3 } -var Id func() uint16 = id - -// MsgHdr is a a manually-unpacked version of (id, bits). -type MsgHdr struct { - Id uint16 - Response bool - Opcode int - Authoritative bool - Truncated bool - RecursionDesired bool - RecursionAvailable bool - Zero bool - AuthenticatedData bool - CheckingDisabled bool - Rcode int -} - -// Msg contains the layout of a DNS message. -type Msg struct { - MsgHdr - Compress bool `json:"-"` // If true, the message will be compressed when converted to wire format. This not part of the official DNS packet format. - Question []Question // Holds the RR(s) of the question section. - Answer []RR // Holds the RR(s) of the answer section. - Ns []RR // Holds the RR(s) of the authority section. - Extra []RR // Holds the RR(s) of the additional section. -} - -// StringToType is the reverse of TypeToString, needed for string parsing. -var StringToType = reverseInt16(TypeToString) - -// StringToClass is the reverse of ClassToString, needed for string parsing. -var StringToClass = reverseInt16(ClassToString) - -// Map of opcodes strings. -var StringToOpcode = reverseInt(OpcodeToString) - -// Map of rcodes strings. -var StringToRcode = reverseInt(RcodeToString) - -// ClassToString is a maps Classes to strings for each CLASS wire type. -var ClassToString = map[uint16]string{ - ClassINET: "IN", - ClassCSNET: "CS", - ClassCHAOS: "CH", - ClassHESIOD: "HS", - ClassNONE: "NONE", - ClassANY: "ANY", -} - -// OpcodeToString maps Opcodes to strings. -var OpcodeToString = map[int]string{ - OpcodeQuery: "QUERY", - OpcodeIQuery: "IQUERY", - OpcodeStatus: "STATUS", - OpcodeNotify: "NOTIFY", - OpcodeUpdate: "UPDATE", -} - -// RcodeToString maps Rcodes to strings. -var RcodeToString = map[int]string{ - RcodeSuccess: "NOERROR", - RcodeFormatError: "FORMERR", - RcodeServerFailure: "SERVFAIL", - RcodeNameError: "NXDOMAIN", - RcodeNotImplemented: "NOTIMPL", - RcodeRefused: "REFUSED", - RcodeYXDomain: "YXDOMAIN", // From RFC 2136 - RcodeYXRrset: "YXRRSET", - RcodeNXRrset: "NXRRSET", - RcodeNotAuth: "NOTAUTH", - RcodeNotZone: "NOTZONE", - RcodeBadSig: "BADSIG", // Also known as RcodeBadVers, see RFC 6891 - // RcodeBadVers: "BADVERS", - RcodeBadKey: "BADKEY", - RcodeBadTime: "BADTIME", - RcodeBadMode: "BADMODE", - RcodeBadName: "BADNAME", - RcodeBadAlg: "BADALG", - RcodeBadTrunc: "BADTRUNC", -} - -// Rather than write the usual handful of routines to pack and -// unpack every message that can appear on the wire, we use -// reflection to write a generic pack/unpack for structs and then -// use it. Thus, if in the future we need to define new message -// structs, no new pack/unpack/printing code needs to be written. - -// Domain names are a sequence of counted strings -// split at the dots. They end with a zero-length string. - -// PackDomainName packs a domain name s into msg[off:]. -// If compression is wanted compress must be true and the compression -// map needs to hold a mapping between domain names and offsets -// pointing into msg. -func PackDomainName(s string, msg []byte, off int, compression map[string]int, compress bool) (off1 int, err error) { - off1, _, err = packDomainName(s, msg, off, compression, compress) - return -} - -func packDomainName(s string, msg []byte, off int, compression map[string]int, compress bool) (off1 int, labels int, err error) { - // special case if msg == nil - lenmsg := 256 - if msg != nil { - lenmsg = len(msg) - } - ls := len(s) - if ls == 0 { // Ok, for instance when dealing with update RR without any rdata. - return off, 0, nil - } - // If not fully qualified, error out, but only if msg == nil #ugly - switch { - case msg == nil: - if s[ls-1] != '.' { - s += "." - ls++ - } - case msg != nil: - if s[ls-1] != '.' { - return lenmsg, 0, ErrFqdn - } - } - // Each dot ends a segment of the name. - // We trade each dot byte for a length byte. - // Except for escaped dots (\.), which are normal dots. - // There is also a trailing zero. - - // Compression - nameoffset := -1 - pointer := -1 - // Emit sequence of counted strings, chopping at dots. - begin := 0 - bs := []byte(s) - roBs, bsFresh, escapedDot := s, true, false - for i := 0; i < ls; i++ { - if bs[i] == '\\' { - for j := i; j < ls-1; j++ { - bs[j] = bs[j+1] - } - ls-- - if off+1 > lenmsg { - return lenmsg, labels, ErrBuf - } - // check for \DDD - if i+2 < ls && isDigit(bs[i]) && isDigit(bs[i+1]) && isDigit(bs[i+2]) { - bs[i] = dddToByte(bs[i:]) - for j := i + 1; j < ls-2; j++ { - bs[j] = bs[j+2] - } - ls -= 2 - } else if bs[i] == 't' { - bs[i] = '\t' - } else if bs[i] == 'r' { - bs[i] = '\r' - } else if bs[i] == 'n' { - bs[i] = '\n' - } - escapedDot = bs[i] == '.' - bsFresh = false - continue - } - - if bs[i] == '.' { - if i > 0 && bs[i-1] == '.' && !escapedDot { - // two dots back to back is not legal - return lenmsg, labels, ErrRdata - } - if i-begin >= 1<<6 { // top two bits of length must be clear - return lenmsg, labels, ErrRdata - } - // off can already (we're in a loop) be bigger than len(msg) - // this happens when a name isn't fully qualified - if off+1 > lenmsg { - return lenmsg, labels, ErrBuf - } - if msg != nil { - msg[off] = byte(i - begin) - } - offset := off - off++ - for j := begin; j < i; j++ { - if off+1 > lenmsg { - return lenmsg, labels, ErrBuf - } - if msg != nil { - msg[off] = bs[j] - } - off++ - } - if compress && !bsFresh { - roBs = string(bs) - bsFresh = true - } - // Dont try to compress '.' - if compress && roBs[begin:] != "." { - if p, ok := compression[roBs[begin:]]; !ok { - // Only offsets smaller than this can be used. - if offset < maxCompressionOffset { - compression[roBs[begin:]] = offset - } - } else { - // The first hit is the longest matching dname - // keep the pointer offset we get back and store - // the offset of the current name, because that's - // where we need to insert the pointer later - - // If compress is true, we're allowed to compress this dname - if pointer == -1 && compress { - pointer = p // Where to point to - nameoffset = offset // Where to point from - break - } - } - } - labels++ - begin = i + 1 - } - escapedDot = false - } - // Root label is special - if len(bs) == 1 && bs[0] == '.' { - return off, labels, nil - } - // If we did compression and we find something add the pointer here - if pointer != -1 { - // We have two bytes (14 bits) to put the pointer in - // if msg == nil, we will never do compression - msg[nameoffset], msg[nameoffset+1] = packUint16(uint16(pointer ^ 0xC000)) - off = nameoffset + 1 - goto End - } - if msg != nil { - msg[off] = 0 - } -End: - off++ - return off, labels, nil -} - -// Unpack a domain name. -// In addition to the simple sequences of counted strings above, -// domain names are allowed to refer to strings elsewhere in the -// packet, to avoid repeating common suffixes when returning -// many entries in a single domain. The pointers are marked -// by a length byte with the top two bits set. Ignoring those -// two bits, that byte and the next give a 14 bit offset from msg[0] -// where we should pick up the trail. -// Note that if we jump elsewhere in the packet, -// we return off1 == the offset after the first pointer we found, -// which is where the next record will start. -// In theory, the pointers are only allowed to jump backward. -// We let them jump anywhere and stop jumping after a while. - -// UnpackDomainName unpacks a domain name into a string. -func UnpackDomainName(msg []byte, off int) (string, int, error) { - s := make([]byte, 0, 64) - off1 := 0 - lenmsg := len(msg) - ptr := 0 // number of pointers followed -Loop: - for { - if off >= lenmsg { - return "", lenmsg, ErrBuf - } - c := int(msg[off]) - off++ - switch c & 0xC0 { - case 0x00: - if c == 0x00 { - // end of name - break Loop - } - // literal string - if off+c > lenmsg { - return "", lenmsg, ErrBuf - } - for j := off; j < off+c; j++ { - switch b := msg[j]; b { - case '.', '(', ')', ';', ' ', '@': - fallthrough - case '"', '\\': - s = append(s, '\\', b) - case '\t': - s = append(s, '\\', 't') - case '\r': - s = append(s, '\\', 'r') - default: - if b < 32 || b >= 127 { // unprintable use \DDD - var buf [3]byte - bufs := strconv.AppendInt(buf[:0], int64(b), 10) - s = append(s, '\\') - for i := 0; i < 3-len(bufs); i++ { - s = append(s, '0') - } - for _, r := range bufs { - s = append(s, r) - } - } else { - s = append(s, b) - } - } - } - s = append(s, '.') - off += c - case 0xC0: - // pointer to somewhere else in msg. - // remember location after first ptr, - // since that's how many bytes we consumed. - // also, don't follow too many pointers -- - // maybe there's a loop. - if off >= lenmsg { - return "", lenmsg, ErrBuf - } - c1 := msg[off] - off++ - if ptr == 0 { - off1 = off - } - if ptr++; ptr > 10 { - return "", lenmsg, &Error{err: "too many compression pointers"} - } - off = (c^0xC0)<<8 | int(c1) - default: - // 0x80 and 0x40 are reserved - return "", lenmsg, ErrRdata - } - } - if ptr == 0 { - off1 = off - } - if len(s) == 0 { - s = []byte(".") - } - return string(s), off1, nil -} - -func packTxt(txt []string, msg []byte, offset int, tmp []byte) (int, error) { - var err error - if len(txt) == 0 { - if offset >= len(msg) { - return offset, ErrBuf - } - msg[offset] = 0 - return offset, nil - } - for i := range txt { - if len(txt[i]) > len(tmp) { - return offset, ErrBuf - } - offset, err = packTxtString(txt[i], msg, offset, tmp) - if err != nil { - return offset, err - } - } - return offset, err -} - -func packTxtString(s string, msg []byte, offset int, tmp []byte) (int, error) { - lenByteOffset := offset - if offset >= len(msg) { - return offset, ErrBuf - } - offset++ - bs := tmp[:len(s)] - copy(bs, s) - for i := 0; i < len(bs); i++ { - if len(msg) <= offset { - return offset, ErrBuf - } - if bs[i] == '\\' { - i++ - if i == len(bs) { - break - } - // check for \DDD - if i+2 < len(bs) && isDigit(bs[i]) && isDigit(bs[i+1]) && isDigit(bs[i+2]) { - msg[offset] = dddToByte(bs[i:]) - i += 2 - } else if bs[i] == 't' { - msg[offset] = '\t' - } else if bs[i] == 'r' { - msg[offset] = '\r' - } else if bs[i] == 'n' { - msg[offset] = '\n' - } else { - msg[offset] = bs[i] - } - } else { - msg[offset] = bs[i] - } - offset++ - } - l := offset - lenByteOffset - 1 - if l > 255 { - return offset, &Error{err: "string exceeded 255 bytes in txt"} - } - msg[lenByteOffset] = byte(l) - return offset, nil -} - -func packOctetString(s string, msg []byte, offset int, tmp []byte) (int, error) { - if offset >= len(msg) { - return offset, ErrBuf - } - bs := tmp[:len(s)] - copy(bs, s) - for i := 0; i < len(bs); i++ { - if len(msg) <= offset { - return offset, ErrBuf - } - if bs[i] == '\\' { - i++ - if i == len(bs) { - break - } - // check for \DDD - if i+2 < len(bs) && isDigit(bs[i]) && isDigit(bs[i+1]) && isDigit(bs[i+2]) { - msg[offset] = dddToByte(bs[i:]) - i += 2 - } else { - msg[offset] = bs[i] - } - } else { - msg[offset] = bs[i] - } - offset++ - } - return offset, nil -} - -func unpackTxt(msg []byte, off0 int) (ss []string, off int, err error) { - off = off0 - var s string - for off < len(msg) && err == nil { - s, off, err = unpackTxtString(msg, off) - if err == nil { - ss = append(ss, s) - } - } - return -} - -func unpackTxtString(msg []byte, offset int) (string, int, error) { - if offset+1 > len(msg) { - return "", offset, &Error{err: "overflow unpacking txt"} - } - l := int(msg[offset]) - if offset+l+1 > len(msg) { - return "", offset, &Error{err: "overflow unpacking txt"} - } - s := make([]byte, 0, l) - for _, b := range msg[offset+1 : offset+1+l] { - switch b { - case '"', '\\': - s = append(s, '\\', b) - case '\t': - s = append(s, `\t`...) - case '\r': - s = append(s, `\r`...) - case '\n': - s = append(s, `\n`...) - default: - if b < 32 || b > 127 { // unprintable - var buf [3]byte - bufs := strconv.AppendInt(buf[:0], int64(b), 10) - s = append(s, '\\') - for i := 0; i < 3-len(bufs); i++ { - s = append(s, '0') - } - for _, r := range bufs { - s = append(s, r) - } - } else { - s = append(s, b) - } - } - } - offset += 1 + l - return string(s), offset, nil -} - -// Pack a reflect.StructValue into msg. Struct members can only be uint8, uint16, uint32, string, -// slices and other (often anonymous) structs. -func packStructValue(val reflect.Value, msg []byte, off int, compression map[string]int, compress bool) (off1 int, err error) { - var txtTmp []byte - lenmsg := len(msg) - numfield := val.NumField() - for i := 0; i < numfield; i++ { - typefield := val.Type().Field(i) - if typefield.Tag == `dns:"-"` { - continue - } - switch fv := val.Field(i); fv.Kind() { - default: - return lenmsg, &Error{err: "bad kind packing"} - case reflect.Interface: - // PrivateRR is the only RR implementation that has interface field. - // therefore it's expected that this interface would be PrivateRdata - switch data := fv.Interface().(type) { - case PrivateRdata: - n, err := data.Pack(msg[off:]) - if err != nil { - return lenmsg, err - } - off += n - default: - return lenmsg, &Error{err: "bad kind interface packing"} - } - case reflect.Slice: - switch typefield.Tag { - default: - return lenmsg, &Error{"bad tag packing slice: " + typefield.Tag.Get("dns")} - case `dns:"domain-name"`: - for j := 0; j < val.Field(i).Len(); j++ { - element := val.Field(i).Index(j).String() - off, err = PackDomainName(element, msg, off, compression, false && compress) - if err != nil { - return lenmsg, err - } - } - case `dns:"txt"`: - if txtTmp == nil { - txtTmp = make([]byte, 256*4+1) - } - off, err = packTxt(fv.Interface().([]string), msg, off, txtTmp) - if err != nil { - return lenmsg, err - } - case `dns:"opt"`: // edns - for j := 0; j < val.Field(i).Len(); j++ { - element := val.Field(i).Index(j).Interface() - b, e := element.(EDNS0).pack() - if e != nil { - return lenmsg, &Error{err: "overflow packing opt"} - } - // Option code - msg[off], msg[off+1] = packUint16(element.(EDNS0).Option()) - // Length - msg[off+2], msg[off+3] = packUint16(uint16(len(b))) - off += 4 - if off+len(b) > lenmsg { - copy(msg[off:], b) - off = lenmsg - continue - } - // Actual data - copy(msg[off:off+len(b)], b) - off += len(b) - } - case `dns:"a"`: - if val.Type().String() == "dns.IPSECKEY" { - // Field(2) is GatewayType, must be 1 - if val.Field(2).Uint() != 1 { - continue - } - } - // It must be a slice of 4, even if it is 16, we encode - // only the first 4 - if off+net.IPv4len > lenmsg { - return lenmsg, &Error{err: "overflow packing a"} - } - switch fv.Len() { - case net.IPv6len: - msg[off] = byte(fv.Index(12).Uint()) - msg[off+1] = byte(fv.Index(13).Uint()) - msg[off+2] = byte(fv.Index(14).Uint()) - msg[off+3] = byte(fv.Index(15).Uint()) - off += net.IPv4len - case net.IPv4len: - msg[off] = byte(fv.Index(0).Uint()) - msg[off+1] = byte(fv.Index(1).Uint()) - msg[off+2] = byte(fv.Index(2).Uint()) - msg[off+3] = byte(fv.Index(3).Uint()) - off += net.IPv4len - case 0: - // Allowed, for dynamic updates - default: - return lenmsg, &Error{err: "overflow packing a"} - } - case `dns:"aaaa"`: - if val.Type().String() == "dns.IPSECKEY" { - // Field(2) is GatewayType, must be 2 - if val.Field(2).Uint() != 2 { - continue - } - } - if fv.Len() == 0 { - break - } - if fv.Len() > net.IPv6len || off+fv.Len() > lenmsg { - return lenmsg, &Error{err: "overflow packing aaaa"} - } - for j := 0; j < net.IPv6len; j++ { - msg[off] = byte(fv.Index(j).Uint()) - off++ - } - case `dns:"wks"`: - // TODO(miek): this is wrong should be lenrd - if off == lenmsg { - break // dyn. updates - } - if val.Field(i).Len() == 0 { - break - } - off1 := off - for j := 0; j < val.Field(i).Len(); j++ { - serv := int(fv.Index(j).Uint()) - if off+serv/8+1 > len(msg) { - return len(msg), &Error{err: "overflow packing wks"} - } - msg[off+serv/8] |= byte(1 << (7 - uint(serv%8))) - if off+serv/8+1 > off1 { - off1 = off + serv/8 + 1 - } - } - off = off1 - case `dns:"nsec"`: // NSEC/NSEC3 - // This is the uint16 type bitmap - if val.Field(i).Len() == 0 { - // Do absolutely nothing - break - } - var lastwindow, lastlength uint16 - for j := 0; j < val.Field(i).Len(); j++ { - t := uint16(fv.Index(j).Uint()) - window := t / 256 - length := (t-window*256)/8 + 1 - if window > lastwindow && lastlength != 0 { - // New window, jump to the new offset - off += int(lastlength) + 2 - lastlength = 0 - } - if window < lastwindow || length < lastlength { - return len(msg), &Error{err: "nsec bits out of order"} - } - if off+2+int(length) > len(msg) { - return len(msg), &Error{err: "overflow packing nsec"} - } - // Setting the window # - msg[off] = byte(window) - // Setting the octets length - msg[off+1] = byte(length) - // Setting the bit value for the type in the right octet - msg[off+1+int(length)] |= byte(1 << (7 - (t % 8))) - lastwindow, lastlength = window, length - } - off += int(lastlength) + 2 - } - case reflect.Struct: - off, err = packStructValue(fv, msg, off, compression, compress) - if err != nil { - return lenmsg, err - } - case reflect.Uint8: - if off+1 > lenmsg { - return lenmsg, &Error{err: "overflow packing uint8"} - } - msg[off] = byte(fv.Uint()) - off++ - case reflect.Uint16: - if off+2 > lenmsg { - return lenmsg, &Error{err: "overflow packing uint16"} - } - i := fv.Uint() - msg[off] = byte(i >> 8) - msg[off+1] = byte(i) - off += 2 - case reflect.Uint32: - if off+4 > lenmsg { - return lenmsg, &Error{err: "overflow packing uint32"} - } - i := fv.Uint() - msg[off] = byte(i >> 24) - msg[off+1] = byte(i >> 16) - msg[off+2] = byte(i >> 8) - msg[off+3] = byte(i) - off += 4 - case reflect.Uint64: - switch typefield.Tag { - default: - if off+8 > lenmsg { - return lenmsg, &Error{err: "overflow packing uint64"} - } - i := fv.Uint() - msg[off] = byte(i >> 56) - msg[off+1] = byte(i >> 48) - msg[off+2] = byte(i >> 40) - msg[off+3] = byte(i >> 32) - msg[off+4] = byte(i >> 24) - msg[off+5] = byte(i >> 16) - msg[off+6] = byte(i >> 8) - msg[off+7] = byte(i) - off += 8 - case `dns:"uint48"`: - // Used in TSIG, where it stops at 48 bits, so we discard the upper 16 - if off+6 > lenmsg { - return lenmsg, &Error{err: "overflow packing uint64 as uint48"} - } - i := fv.Uint() - msg[off] = byte(i >> 40) - msg[off+1] = byte(i >> 32) - msg[off+2] = byte(i >> 24) - msg[off+3] = byte(i >> 16) - msg[off+4] = byte(i >> 8) - msg[off+5] = byte(i) - off += 6 - } - case reflect.String: - // There are multiple string encodings. - // The tag distinguishes ordinary strings from domain names. - s := fv.String() - switch typefield.Tag { - default: - return lenmsg, &Error{"bad tag packing string: " + typefield.Tag.Get("dns")} - case `dns:"base64"`: - b64, e := fromBase64([]byte(s)) - if e != nil { - return lenmsg, e - } - copy(msg[off:off+len(b64)], b64) - off += len(b64) - case `dns:"domain-name"`: - if val.Type().String() == "dns.IPSECKEY" { - // Field(2) is GatewayType, 1 and 2 or used for addresses - x := val.Field(2).Uint() - if x == 1 || x == 2 { - continue - } - } - if off, err = PackDomainName(s, msg, off, compression, false && compress); err != nil { - return lenmsg, err - } - case `dns:"cdomain-name"`: - if off, err = PackDomainName(s, msg, off, compression, true && compress); err != nil { - return lenmsg, err - } - case `dns:"size-base32"`: - // This is purely for NSEC3 atm, the previous byte must - // holds the length of the encoded string. As NSEC3 - // is only defined to SHA1, the hashlength is 20 (160 bits) - msg[off-1] = 20 - fallthrough - case `dns:"base32"`: - b32, e := fromBase32([]byte(s)) - if e != nil { - return lenmsg, e - } - copy(msg[off:off+len(b32)], b32) - off += len(b32) - case `dns:"size-hex"`: - fallthrough - case `dns:"hex"`: - // There is no length encoded here - h, e := hex.DecodeString(s) - if e != nil { - return lenmsg, e - } - if off+hex.DecodedLen(len(s)) > lenmsg { - return lenmsg, &Error{err: "overflow packing hex"} - } - copy(msg[off:off+hex.DecodedLen(len(s))], h) - off += hex.DecodedLen(len(s)) - case `dns:"size"`: - // the size is already encoded in the RR, we can safely use the - // length of string. String is RAW (not encoded in hex, nor base64) - copy(msg[off:off+len(s)], s) - off += len(s) - case `dns:"octet"`: - bytesTmp := make([]byte, 256) - off, err = packOctetString(fv.String(), msg, off, bytesTmp) - if err != nil { - return lenmsg, err - } - case `dns:"txt"`: - fallthrough - case "": - if txtTmp == nil { - txtTmp = make([]byte, 256*4+1) - } - off, err = packTxtString(fv.String(), msg, off, txtTmp) - if err != nil { - return lenmsg, err - } - } - } - } - return off, nil -} - -func structValue(any interface{}) reflect.Value { - return reflect.ValueOf(any).Elem() -} - -// PackStruct packs any structure to wire format. -func PackStruct(any interface{}, msg []byte, off int) (off1 int, err error) { - off, err = packStructValue(structValue(any), msg, off, nil, false) - return off, err -} - -func packStructCompress(any interface{}, msg []byte, off int, compression map[string]int, compress bool) (off1 int, err error) { - off, err = packStructValue(structValue(any), msg, off, compression, compress) - return off, err -} - -// Unpack a reflect.StructValue from msg. -// Same restrictions as packStructValue. -func unpackStructValue(val reflect.Value, msg []byte, off int) (off1 int, err error) { - lenmsg := len(msg) - for i := 0; i < val.NumField(); i++ { - if off > lenmsg { - return lenmsg, &Error{"bad offset unpacking"} - } - switch fv := val.Field(i); fv.Kind() { - default: - return lenmsg, &Error{err: "bad kind unpacking"} - case reflect.Interface: - // PrivateRR is the only RR implementation that has interface field. - // therefore it's expected that this interface would be PrivateRdata - switch data := fv.Interface().(type) { - case PrivateRdata: - n, err := data.Unpack(msg[off:]) - if err != nil { - return lenmsg, err - } - off += n - default: - return lenmsg, &Error{err: "bad kind interface unpacking"} - } - case reflect.Slice: - switch val.Type().Field(i).Tag { - default: - return lenmsg, &Error{"bad tag unpacking slice: " + val.Type().Field(i).Tag.Get("dns")} - case `dns:"domain-name"`: - // HIP record slice of name (or none) - var servers []string - var s string - for off < lenmsg { - s, off, err = UnpackDomainName(msg, off) - if err != nil { - return lenmsg, err - } - servers = append(servers, s) - } - fv.Set(reflect.ValueOf(servers)) - case `dns:"txt"`: - if off == lenmsg { - break - } - var txt []string - txt, off, err = unpackTxt(msg, off) - if err != nil { - return lenmsg, err - } - fv.Set(reflect.ValueOf(txt)) - case `dns:"opt"`: // edns0 - if off == lenmsg { - // This is an EDNS0 (OPT Record) with no rdata - // We can safely return here. - break - } - var edns []EDNS0 - Option: - code := uint16(0) - if off+4 > lenmsg { - return lenmsg, &Error{err: "overflow unpacking opt"} - } - code, off = unpackUint16(msg, off) - optlen, off1 := unpackUint16(msg, off) - if off1+int(optlen) > lenmsg { - return lenmsg, &Error{err: "overflow unpacking opt"} - } - switch code { - case EDNS0NSID: - e := new(EDNS0_NSID) - if err := e.unpack(msg[off1 : off1+int(optlen)]); err != nil { - return lenmsg, err - } - edns = append(edns, e) - off = off1 + int(optlen) - case EDNS0SUBNET, EDNS0SUBNETDRAFT: - e := new(EDNS0_SUBNET) - if err := e.unpack(msg[off1 : off1+int(optlen)]); err != nil { - return lenmsg, err - } - edns = append(edns, e) - off = off1 + int(optlen) - if code == EDNS0SUBNETDRAFT { - e.DraftOption = true - } - case EDNS0UL: - e := new(EDNS0_UL) - if err := e.unpack(msg[off1 : off1+int(optlen)]); err != nil { - return lenmsg, err - } - edns = append(edns, e) - off = off1 + int(optlen) - case EDNS0LLQ: - e := new(EDNS0_LLQ) - if err := e.unpack(msg[off1 : off1+int(optlen)]); err != nil { - return lenmsg, err - } - edns = append(edns, e) - off = off1 + int(optlen) - case EDNS0DAU: - e := new(EDNS0_DAU) - if err := e.unpack(msg[off1 : off1+int(optlen)]); err != nil { - return lenmsg, err - } - edns = append(edns, e) - off = off1 + int(optlen) - case EDNS0DHU: - e := new(EDNS0_DHU) - if err := e.unpack(msg[off1 : off1+int(optlen)]); err != nil { - return lenmsg, err - } - edns = append(edns, e) - off = off1 + int(optlen) - case EDNS0N3U: - e := new(EDNS0_N3U) - if err := e.unpack(msg[off1 : off1+int(optlen)]); err != nil { - return lenmsg, err - } - edns = append(edns, e) - off = off1 + int(optlen) - default: - e := new(EDNS0_LOCAL) - e.Code = code - if err := e.unpack(msg[off1 : off1+int(optlen)]); err != nil { - return lenmsg, err - } - edns = append(edns, e) - off = off1 + int(optlen) - } - if off < lenmsg { - goto Option - } - fv.Set(reflect.ValueOf(edns)) - case `dns:"a"`: - if val.Type().String() == "dns.IPSECKEY" { - // Field(2) is GatewayType, must be 1 - if val.Field(2).Uint() != 1 { - continue - } - } - if off == lenmsg { - break // dyn. update - } - if off+net.IPv4len > lenmsg { - return lenmsg, &Error{err: "overflow unpacking a"} - } - fv.Set(reflect.ValueOf(net.IPv4(msg[off], msg[off+1], msg[off+2], msg[off+3]))) - off += net.IPv4len - case `dns:"aaaa"`: - if val.Type().String() == "dns.IPSECKEY" { - // Field(2) is GatewayType, must be 2 - if val.Field(2).Uint() != 2 { - continue - } - } - if off == lenmsg { - break - } - if off+net.IPv6len > lenmsg { - return lenmsg, &Error{err: "overflow unpacking aaaa"} - } - fv.Set(reflect.ValueOf(net.IP{msg[off], msg[off+1], msg[off+2], msg[off+3], msg[off+4], - msg[off+5], msg[off+6], msg[off+7], msg[off+8], msg[off+9], msg[off+10], - msg[off+11], msg[off+12], msg[off+13], msg[off+14], msg[off+15]})) - off += net.IPv6len - case `dns:"wks"`: - // Rest of the record is the bitmap - var serv []uint16 - j := 0 - for off < lenmsg { - if off+1 > lenmsg { - return lenmsg, &Error{err: "overflow unpacking wks"} - } - b := msg[off] - // Check the bits one by one, and set the type - if b&0x80 == 0x80 { - serv = append(serv, uint16(j*8+0)) - } - if b&0x40 == 0x40 { - serv = append(serv, uint16(j*8+1)) - } - if b&0x20 == 0x20 { - serv = append(serv, uint16(j*8+2)) - } - if b&0x10 == 0x10 { - serv = append(serv, uint16(j*8+3)) - } - if b&0x8 == 0x8 { - serv = append(serv, uint16(j*8+4)) - } - if b&0x4 == 0x4 { - serv = append(serv, uint16(j*8+5)) - } - if b&0x2 == 0x2 { - serv = append(serv, uint16(j*8+6)) - } - if b&0x1 == 0x1 { - serv = append(serv, uint16(j*8+7)) - } - j++ - off++ - } - fv.Set(reflect.ValueOf(serv)) - case `dns:"nsec"`: // NSEC/NSEC3 - if off == len(msg) { - break - } - // Rest of the record is the type bitmap - var nsec []uint16 - length := 0 - window := 0 - lastwindow := -1 - for off < len(msg) { - if off+2 > len(msg) { - return len(msg), &Error{err: "overflow unpacking nsecx"} - } - window = int(msg[off]) - length = int(msg[off+1]) - off += 2 - if window <= lastwindow { - // RFC 4034: Blocks are present in the NSEC RR RDATA in - // increasing numerical order. - return len(msg), &Error{err: "out of order NSEC block"} - } - if length == 0 { - // RFC 4034: Blocks with no types present MUST NOT be included. - return len(msg), &Error{err: "empty NSEC block"} - } - if length > 32 { - return len(msg), &Error{err: "NSEC block too long"} - } - if off+length > len(msg) { - return len(msg), &Error{err: "overflowing NSEC block"} - } - - // Walk the bytes in the window and extract the type bits - for j := 0; j < length; j++ { - b := msg[off+j] - // Check the bits one by one, and set the type - if b&0x80 == 0x80 { - nsec = append(nsec, uint16(window*256+j*8+0)) - } - if b&0x40 == 0x40 { - nsec = append(nsec, uint16(window*256+j*8+1)) - } - if b&0x20 == 0x20 { - nsec = append(nsec, uint16(window*256+j*8+2)) - } - if b&0x10 == 0x10 { - nsec = append(nsec, uint16(window*256+j*8+3)) - } - if b&0x8 == 0x8 { - nsec = append(nsec, uint16(window*256+j*8+4)) - } - if b&0x4 == 0x4 { - nsec = append(nsec, uint16(window*256+j*8+5)) - } - if b&0x2 == 0x2 { - nsec = append(nsec, uint16(window*256+j*8+6)) - } - if b&0x1 == 0x1 { - nsec = append(nsec, uint16(window*256+j*8+7)) - } - } - off += length - lastwindow = window - } - fv.Set(reflect.ValueOf(nsec)) - } - case reflect.Struct: - off, err = unpackStructValue(fv, msg, off) - if err != nil { - return lenmsg, err - } - if val.Type().Field(i).Name == "Hdr" { - lenrd := off + int(val.FieldByName("Hdr").FieldByName("Rdlength").Uint()) - if lenrd > lenmsg { - return lenmsg, &Error{err: "overflowing header size"} - } - msg = msg[:lenrd] - lenmsg = len(msg) - } - case reflect.Uint8: - if off == lenmsg { - break - } - if off+1 > lenmsg { - return lenmsg, &Error{err: "overflow unpacking uint8"} - } - fv.SetUint(uint64(uint8(msg[off]))) - off++ - case reflect.Uint16: - if off == lenmsg { - break - } - var i uint16 - if off+2 > lenmsg { - return lenmsg, &Error{err: "overflow unpacking uint16"} - } - i, off = unpackUint16(msg, off) - fv.SetUint(uint64(i)) - case reflect.Uint32: - if off == lenmsg { - break - } - if off+4 > lenmsg { - return lenmsg, &Error{err: "overflow unpacking uint32"} - } - fv.SetUint(uint64(uint32(msg[off])<<24 | uint32(msg[off+1])<<16 | uint32(msg[off+2])<<8 | uint32(msg[off+3]))) - off += 4 - case reflect.Uint64: - if off == lenmsg { - break - } - switch val.Type().Field(i).Tag { - default: - if off+8 > lenmsg { - return lenmsg, &Error{err: "overflow unpacking uint64"} - } - fv.SetUint(uint64(uint64(msg[off])<<56 | uint64(msg[off+1])<<48 | uint64(msg[off+2])<<40 | - uint64(msg[off+3])<<32 | uint64(msg[off+4])<<24 | uint64(msg[off+5])<<16 | uint64(msg[off+6])<<8 | uint64(msg[off+7]))) - off += 8 - case `dns:"uint48"`: - // Used in TSIG where the last 48 bits are occupied, so for now, assume a uint48 (6 bytes) - if off+6 > lenmsg { - return lenmsg, &Error{err: "overflow unpacking uint64 as uint48"} - } - fv.SetUint(uint64(uint64(msg[off])<<40 | uint64(msg[off+1])<<32 | uint64(msg[off+2])<<24 | uint64(msg[off+3])<<16 | - uint64(msg[off+4])<<8 | uint64(msg[off+5]))) - off += 6 - } - case reflect.String: - var s string - if off == lenmsg { - break - } - switch val.Type().Field(i).Tag { - default: - return lenmsg, &Error{"bad tag unpacking string: " + val.Type().Field(i).Tag.Get("dns")} - case `dns:"octet"`: - s = string(msg[off:]) - off = lenmsg - case `dns:"hex"`: - hexend := lenmsg - if val.FieldByName("Hdr").FieldByName("Rrtype").Uint() == uint64(TypeHIP) { - hexend = off + int(val.FieldByName("HitLength").Uint()) - } - if hexend > lenmsg { - return lenmsg, &Error{err: "overflow unpacking HIP hex"} - } - s = hex.EncodeToString(msg[off:hexend]) - off = hexend - case `dns:"base64"`: - // Rest of the RR is base64 encoded value - b64end := lenmsg - if val.FieldByName("Hdr").FieldByName("Rrtype").Uint() == uint64(TypeHIP) { - b64end = off + int(val.FieldByName("PublicKeyLength").Uint()) - } - if b64end > lenmsg { - return lenmsg, &Error{err: "overflow unpacking HIP base64"} - } - s = toBase64(msg[off:b64end]) - off = b64end - case `dns:"cdomain-name"`: - fallthrough - case `dns:"domain-name"`: - if val.Type().String() == "dns.IPSECKEY" { - // Field(2) is GatewayType, 1 and 2 or used for addresses - x := val.Field(2).Uint() - if x == 1 || x == 2 { - continue - } - } - if off == lenmsg && int(val.FieldByName("Hdr").FieldByName("Rdlength").Uint()) == 0 { - // zero rdata is ok for dyn updates, but only if rdlength is 0 - break - } - s, off, err = UnpackDomainName(msg, off) - if err != nil { - return lenmsg, err - } - case `dns:"size-base32"`: - var size int - switch val.Type().Name() { - case "NSEC3": - switch val.Type().Field(i).Name { - case "NextDomain": - name := val.FieldByName("HashLength") - size = int(name.Uint()) - } - } - if off+size > lenmsg { - return lenmsg, &Error{err: "overflow unpacking base32"} - } - s = toBase32(msg[off : off+size]) - off += size - case `dns:"size-hex"`: - // a "size" string, but it must be encoded in hex in the string - var size int - switch val.Type().Name() { - case "NSEC3": - switch val.Type().Field(i).Name { - case "Salt": - name := val.FieldByName("SaltLength") - size = int(name.Uint()) - case "NextDomain": - name := val.FieldByName("HashLength") - size = int(name.Uint()) - } - case "TSIG": - switch val.Type().Field(i).Name { - case "MAC": - name := val.FieldByName("MACSize") - size = int(name.Uint()) - case "OtherData": - name := val.FieldByName("OtherLen") - size = int(name.Uint()) - } - } - if off+size > lenmsg { - return lenmsg, &Error{err: "overflow unpacking hex"} - } - s = hex.EncodeToString(msg[off : off+size]) - off += size - case `dns:"txt"`: - fallthrough - case "": - s, off, err = unpackTxtString(msg, off) - } - fv.SetString(s) - } - } - return off, nil -} - -// Helpers for dealing with escaped bytes -func isDigit(b byte) bool { return b >= '0' && b <= '9' } - -func dddToByte(s []byte) byte { - return byte((s[0]-'0')*100 + (s[1]-'0')*10 + (s[2] - '0')) -} - -// UnpackStruct unpacks a binary message from offset off to the interface -// value given. -func UnpackStruct(any interface{}, msg []byte, off int) (int, error) { - return unpackStructValue(structValue(any), msg, off) -} - -// Helper function for packing and unpacking -func intToBytes(i *big.Int, length int) []byte { - buf := i.Bytes() - if len(buf) < length { - b := make([]byte, length) - copy(b[length-len(buf):], buf) - return b - } - return buf -} - -func unpackUint16(msg []byte, off int) (uint16, int) { - return uint16(msg[off])<<8 | uint16(msg[off+1]), off + 2 -} - -func packUint16(i uint16) (byte, byte) { - return byte(i >> 8), byte(i) -} - -func toBase32(b []byte) string { - return base32.HexEncoding.EncodeToString(b) -} - -func fromBase32(s []byte) (buf []byte, err error) { - buflen := base32.HexEncoding.DecodedLen(len(s)) - buf = make([]byte, buflen) - n, err := base32.HexEncoding.Decode(buf, s) - buf = buf[:n] - return -} - -func toBase64(b []byte) string { - return base64.StdEncoding.EncodeToString(b) -} - -func fromBase64(s []byte) (buf []byte, err error) { - buflen := base64.StdEncoding.DecodedLen(len(s)) - buf = make([]byte, buflen) - n, err := base64.StdEncoding.Decode(buf, s) - buf = buf[:n] - return -} - -// PackRR packs a resource record rr into msg[off:]. -// See PackDomainName for documentation about the compression. -func PackRR(rr RR, msg []byte, off int, compression map[string]int, compress bool) (off1 int, err error) { - if rr == nil { - return len(msg), &Error{err: "nil rr"} - } - - off1, err = packStructCompress(rr, msg, off, compression, compress) - if err != nil { - return len(msg), err - } - if rawSetRdlength(msg, off, off1) { - return off1, nil - } - return off, ErrRdata -} - -// UnpackRR unpacks msg[off:] into an RR. -func UnpackRR(msg []byte, off int) (rr RR, off1 int, err error) { - // unpack just the header, to find the rr type and length - var h RR_Header - off0 := off - if off, err = UnpackStruct(&h, msg, off); err != nil { - return nil, len(msg), err - } - end := off + int(h.Rdlength) - // make an rr of that type and re-unpack. - mk, known := TypeToRR[h.Rrtype] - if !known { - rr = new(RFC3597) - } else { - rr = mk() - } - off, err = UnpackStruct(rr, msg, off0) - if off != end { - return &h, end, &Error{err: "bad rdlength"} - } - return rr, off, err -} - -// unpackRRslice unpacks msg[off:] into an []RR. -// If we cannot unpack the whole array, then it will return nil -func unpackRRslice(l int, msg []byte, off int) (dst1 []RR, off1 int, err error) { - var r RR - // Optimistically make dst be the length that was sent - dst := make([]RR, 0, l) - for i := 0; i < l; i++ { - off1 := off - r, off, err = UnpackRR(msg, off) - if err != nil { - off = len(msg) - break - } - // If offset does not increase anymore, l is a lie - if off1 == off { - l = i - break - } - dst = append(dst, r) - } - if err != nil && off == len(msg) { - dst = nil - } - return dst, off, err -} - -// Reverse a map -func reverseInt8(m map[uint8]string) map[string]uint8 { - n := make(map[string]uint8) - for u, s := range m { - n[s] = u - } - return n -} - -func reverseInt16(m map[uint16]string) map[string]uint16 { - n := make(map[string]uint16) - for u, s := range m { - n[s] = u - } - return n -} - -func reverseInt(m map[int]string) map[string]int { - n := make(map[string]int) - for u, s := range m { - n[s] = u - } - return n -} - -// Convert a MsgHdr to a string, with dig-like headers: -// -//;; opcode: QUERY, status: NOERROR, id: 48404 -// -//;; flags: qr aa rd ra; -func (h *MsgHdr) String() string { - if h == nil { - return "<nil> MsgHdr" - } - - s := ";; opcode: " + OpcodeToString[h.Opcode] - s += ", status: " + RcodeToString[h.Rcode] - s += ", id: " + strconv.Itoa(int(h.Id)) + "\n" - - s += ";; flags:" - if h.Response { - s += " qr" - } - if h.Authoritative { - s += " aa" - } - if h.Truncated { - s += " tc" - } - if h.RecursionDesired { - s += " rd" - } - if h.RecursionAvailable { - s += " ra" - } - if h.Zero { // Hmm - s += " z" - } - if h.AuthenticatedData { - s += " ad" - } - if h.CheckingDisabled { - s += " cd" - } - - s += ";" - return s -} - -// Pack packs a Msg: it is converted to to wire format. -// If the dns.Compress is true the message will be in compressed wire format. -func (dns *Msg) Pack() (msg []byte, err error) { - return dns.PackBuffer(nil) -} - -// PackBuffer packs a Msg, using the given buffer buf. If buf is too small -// a new buffer is allocated. -func (dns *Msg) PackBuffer(buf []byte) (msg []byte, err error) { - var dh Header - var compression map[string]int - if dns.Compress { - compression = make(map[string]int) // Compression pointer mappings - } - - if dns.Rcode < 0 || dns.Rcode > 0xFFF { - return nil, ErrRcode - } - if dns.Rcode > 0xF { - // Regular RCODE field is 4 bits - opt := dns.IsEdns0() - if opt == nil { - return nil, ErrExtendedRcode - } - opt.SetExtendedRcode(uint8(dns.Rcode >> 4)) - dns.Rcode &= 0xF - } - - // Convert convenient Msg into wire-like Header. - dh.Id = dns.Id - dh.Bits = uint16(dns.Opcode)<<11 | uint16(dns.Rcode) - if dns.Response { - dh.Bits |= _QR - } - if dns.Authoritative { - dh.Bits |= _AA - } - if dns.Truncated { - dh.Bits |= _TC - } - if dns.RecursionDesired { - dh.Bits |= _RD - } - if dns.RecursionAvailable { - dh.Bits |= _RA - } - if dns.Zero { - dh.Bits |= _Z - } - if dns.AuthenticatedData { - dh.Bits |= _AD - } - if dns.CheckingDisabled { - dh.Bits |= _CD - } - - // Prepare variable sized arrays. - question := dns.Question - answer := dns.Answer - ns := dns.Ns - extra := dns.Extra - - dh.Qdcount = uint16(len(question)) - dh.Ancount = uint16(len(answer)) - dh.Nscount = uint16(len(ns)) - dh.Arcount = uint16(len(extra)) - - // We need the uncompressed length here, because we first pack it and then compress it. - msg = buf - compress := dns.Compress - dns.Compress = false - if packLen := dns.Len() + 1; len(msg) < packLen { - msg = make([]byte, packLen) - } - dns.Compress = compress - - // Pack it in: header and then the pieces. - off := 0 - off, err = packStructCompress(&dh, msg, off, compression, dns.Compress) - if err != nil { - return nil, err - } - for i := 0; i < len(question); i++ { - off, err = packStructCompress(&question[i], msg, off, compression, dns.Compress) - if err != nil { - return nil, err - } - } - for i := 0; i < len(answer); i++ { - off, err = PackRR(answer[i], msg, off, compression, dns.Compress) - if err != nil { - return nil, err - } - } - for i := 0; i < len(ns); i++ { - off, err = PackRR(ns[i], msg, off, compression, dns.Compress) - if err != nil { - return nil, err - } - } - for i := 0; i < len(extra); i++ { - off, err = PackRR(extra[i], msg, off, compression, dns.Compress) - if err != nil { - return nil, err - } - } - return msg[:off], nil -} - -// Unpack unpacks a binary message to a Msg structure. -func (dns *Msg) Unpack(msg []byte) (err error) { - // Header. - var dh Header - off := 0 - if off, err = UnpackStruct(&dh, msg, off); err != nil { - return err - } - dns.Id = dh.Id - dns.Response = (dh.Bits & _QR) != 0 - dns.Opcode = int(dh.Bits>>11) & 0xF - dns.Authoritative = (dh.Bits & _AA) != 0 - dns.Truncated = (dh.Bits & _TC) != 0 - dns.RecursionDesired = (dh.Bits & _RD) != 0 - dns.RecursionAvailable = (dh.Bits & _RA) != 0 - dns.Zero = (dh.Bits & _Z) != 0 - dns.AuthenticatedData = (dh.Bits & _AD) != 0 - dns.CheckingDisabled = (dh.Bits & _CD) != 0 - dns.Rcode = int(dh.Bits & 0xF) - - // Optimistically use the count given to us in the header - dns.Question = make([]Question, 0, int(dh.Qdcount)) - - var q Question - for i := 0; i < int(dh.Qdcount); i++ { - off1 := off - off, err = UnpackStruct(&q, msg, off) - if err != nil { - // Even if Truncated is set, we only will set ErrTruncated if we - // actually got the questions - return err - } - if off1 == off { // Offset does not increase anymore, dh.Qdcount is a lie! - dh.Qdcount = uint16(i) - break - } - dns.Question = append(dns.Question, q) - } - - dns.Answer, off, err = unpackRRslice(int(dh.Ancount), msg, off) - // The header counts might have been wrong so we need to update it - dh.Ancount = uint16(len(dns.Answer)) - if err == nil { - dns.Ns, off, err = unpackRRslice(int(dh.Nscount), msg, off) - } - // The header counts might have been wrong so we need to update it - dh.Nscount = uint16(len(dns.Ns)) - if err == nil { - dns.Extra, off, err = unpackRRslice(int(dh.Arcount), msg, off) - } - // The header counts might have been wrong so we need to update it - dh.Arcount = uint16(len(dns.Extra)) - if off != len(msg) { - // TODO(miek) make this an error? - // use PackOpt to let people tell how detailed the error reporting should be? - // println("dns: extra bytes in dns packet", off, "<", len(msg)) - } else if dns.Truncated { - // Whether we ran into a an error or not, we want to return that it - // was truncated - err = ErrTruncated - } - return err -} - -// Convert a complete message to a string with dig-like output. -func (dns *Msg) String() string { - if dns == nil { - return "<nil> MsgHdr" - } - s := dns.MsgHdr.String() + " " - s += "QUERY: " + strconv.Itoa(len(dns.Question)) + ", " - s += "ANSWER: " + strconv.Itoa(len(dns.Answer)) + ", " - s += "AUTHORITY: " + strconv.Itoa(len(dns.Ns)) + ", " - s += "ADDITIONAL: " + strconv.Itoa(len(dns.Extra)) + "\n" - if len(dns.Question) > 0 { - s += "\n;; QUESTION SECTION:\n" - for i := 0; i < len(dns.Question); i++ { - s += dns.Question[i].String() + "\n" - } - } - if len(dns.Answer) > 0 { - s += "\n;; ANSWER SECTION:\n" - for i := 0; i < len(dns.Answer); i++ { - if dns.Answer[i] != nil { - s += dns.Answer[i].String() + "\n" - } - } - } - if len(dns.Ns) > 0 { - s += "\n;; AUTHORITY SECTION:\n" - for i := 0; i < len(dns.Ns); i++ { - if dns.Ns[i] != nil { - s += dns.Ns[i].String() + "\n" - } - } - } - if len(dns.Extra) > 0 { - s += "\n;; ADDITIONAL SECTION:\n" - for i := 0; i < len(dns.Extra); i++ { - if dns.Extra[i] != nil { - s += dns.Extra[i].String() + "\n" - } - } - } - return s -} - -// Len returns the message length when in (un)compressed wire format. -// If dns.Compress is true compression it is taken into account. Len() -// is provided to be a faster way to get the size of the resulting packet, -// than packing it, measuring the size and discarding the buffer. -func (dns *Msg) Len() int { - // We always return one more than needed. - l := 12 // Message header is always 12 bytes - var compression map[string]int - if dns.Compress { - compression = make(map[string]int) - } - for i := 0; i < len(dns.Question); i++ { - l += dns.Question[i].len() - if dns.Compress { - compressionLenHelper(compression, dns.Question[i].Name) - } - } - for i := 0; i < len(dns.Answer); i++ { - l += dns.Answer[i].len() - if dns.Compress { - k, ok := compressionLenSearch(compression, dns.Answer[i].Header().Name) - if ok { - l += 1 - k - } - compressionLenHelper(compression, dns.Answer[i].Header().Name) - k, ok = compressionLenSearchType(compression, dns.Answer[i]) - if ok { - l += 1 - k - } - compressionLenHelperType(compression, dns.Answer[i]) - } - } - for i := 0; i < len(dns.Ns); i++ { - l += dns.Ns[i].len() - if dns.Compress { - k, ok := compressionLenSearch(compression, dns.Ns[i].Header().Name) - if ok { - l += 1 - k - } - compressionLenHelper(compression, dns.Ns[i].Header().Name) - k, ok = compressionLenSearchType(compression, dns.Ns[i]) - if ok { - l += 1 - k - } - compressionLenHelperType(compression, dns.Ns[i]) - } - } - for i := 0; i < len(dns.Extra); i++ { - l += dns.Extra[i].len() - if dns.Compress { - k, ok := compressionLenSearch(compression, dns.Extra[i].Header().Name) - if ok { - l += 1 - k - } - compressionLenHelper(compression, dns.Extra[i].Header().Name) - k, ok = compressionLenSearchType(compression, dns.Extra[i]) - if ok { - l += 1 - k - } - compressionLenHelperType(compression, dns.Extra[i]) - } - } - return l -} - -// Put the parts of the name in the compression map. -func compressionLenHelper(c map[string]int, s string) { - pref := "" - lbs := Split(s) - for j := len(lbs) - 1; j >= 0; j-- { - pref = s[lbs[j]:] - if _, ok := c[pref]; !ok { - c[pref] = len(pref) - } - } -} - -// Look for each part in the compression map and returns its length, -// keep on searching so we get the longest match. -func compressionLenSearch(c map[string]int, s string) (int, bool) { - off := 0 - end := false - if s == "" { // don't bork on bogus data - return 0, false - } - for { - if _, ok := c[s[off:]]; ok { - return len(s[off:]), true - } - if end { - break - } - off, end = NextLabel(s, off) - } - return 0, false -} - -// TODO(miek): should add all types, because the all can be *used* for compression. -func compressionLenHelperType(c map[string]int, r RR) { - switch x := r.(type) { - case *NS: - compressionLenHelper(c, x.Ns) - case *MX: - compressionLenHelper(c, x.Mx) - case *CNAME: - compressionLenHelper(c, x.Target) - case *PTR: - compressionLenHelper(c, x.Ptr) - case *SOA: - compressionLenHelper(c, x.Ns) - compressionLenHelper(c, x.Mbox) - case *MB: - compressionLenHelper(c, x.Mb) - case *MG: - compressionLenHelper(c, x.Mg) - case *MR: - compressionLenHelper(c, x.Mr) - case *MF: - compressionLenHelper(c, x.Mf) - case *MD: - compressionLenHelper(c, x.Md) - case *RT: - compressionLenHelper(c, x.Host) - case *MINFO: - compressionLenHelper(c, x.Rmail) - compressionLenHelper(c, x.Email) - case *AFSDB: - compressionLenHelper(c, x.Hostname) - } -} - -// Only search on compressing these types. -func compressionLenSearchType(c map[string]int, r RR) (int, bool) { - switch x := r.(type) { - case *NS: - return compressionLenSearch(c, x.Ns) - case *MX: - return compressionLenSearch(c, x.Mx) - case *CNAME: - return compressionLenSearch(c, x.Target) - case *PTR: - return compressionLenSearch(c, x.Ptr) - case *SOA: - k, ok := compressionLenSearch(c, x.Ns) - k1, ok1 := compressionLenSearch(c, x.Mbox) - if !ok && !ok1 { - return 0, false - } - return k + k1, true - case *MB: - return compressionLenSearch(c, x.Mb) - case *MG: - return compressionLenSearch(c, x.Mg) - case *MR: - return compressionLenSearch(c, x.Mr) - case *MF: - return compressionLenSearch(c, x.Mf) - case *MD: - return compressionLenSearch(c, x.Md) - case *RT: - return compressionLenSearch(c, x.Host) - case *MINFO: - k, ok := compressionLenSearch(c, x.Rmail) - k1, ok1 := compressionLenSearch(c, x.Email) - if !ok && !ok1 { - return 0, false - } - return k + k1, true - case *AFSDB: - return compressionLenSearch(c, x.Hostname) - } - return 0, false -} - -// id returns a 16 bits random number to be used as a -// message id. The random provided should be good enough. -func id() uint16 { - return uint16(rand.Int()) ^ uint16(time.Now().Nanosecond()) -} - -// Copy returns a new RR which is a deep-copy of r. -func Copy(r RR) RR { - r1 := r.copy() - return r1 -} - -// Copy returns a new *Msg which is a deep-copy of dns. -func (dns *Msg) Copy() *Msg { - return dns.CopyTo(new(Msg)) -} - -// CopyTo copies the contents to the provided message using a deep-copy and returns the copy. -func (dns *Msg) CopyTo(r1 *Msg) *Msg { - r1.MsgHdr = dns.MsgHdr - r1.Compress = dns.Compress - - if len(dns.Question) > 0 { - r1.Question = make([]Question, len(dns.Question)) - copy(r1.Question, dns.Question) // TODO(miek): Question is an immutable value, ok to do a shallow-copy - } - - rrArr := make([]RR, len(dns.Answer)+len(dns.Ns)+len(dns.Extra)) - var rri int - - if len(dns.Answer) > 0 { - rrbegin := rri - for i := 0; i < len(dns.Answer); i++ { - rrArr[rri] = dns.Answer[i].copy() - rri++ - } - r1.Answer = rrArr[rrbegin:rri:rri] - } - - if len(dns.Ns) > 0 { - rrbegin := rri - for i := 0; i < len(dns.Ns); i++ { - rrArr[rri] = dns.Ns[i].copy() - rri++ - } - r1.Ns = rrArr[rrbegin:rri:rri] - } - - if len(dns.Extra) > 0 { - rrbegin := rri - for i := 0; i < len(dns.Extra); i++ { - rrArr[rri] = dns.Extra[i].copy() - rri++ - } - r1.Extra = rrArr[rrbegin:rri:rri] - } - - return r1 -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/nsecx.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/nsecx.go deleted file mode 100644 index d2392c6e..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/nsecx.go +++ /dev/null @@ -1,112 +0,0 @@ -package dns - -import ( - "crypto/sha1" - "hash" - "io" - "strings" -) - -type saltWireFmt struct { - Salt string `dns:"size-hex"` -} - -// HashName hashes a string (label) according to RFC 5155. It returns the hashed string in -// uppercase. -func HashName(label string, ha uint8, iter uint16, salt string) string { - saltwire := new(saltWireFmt) - saltwire.Salt = salt - wire := make([]byte, DefaultMsgSize) - n, err := PackStruct(saltwire, wire, 0) - if err != nil { - return "" - } - wire = wire[:n] - name := make([]byte, 255) - off, err := PackDomainName(strings.ToLower(label), name, 0, nil, false) - if err != nil { - return "" - } - name = name[:off] - var s hash.Hash - switch ha { - case SHA1: - s = sha1.New() - default: - return "" - } - - // k = 0 - name = append(name, wire...) - io.WriteString(s, string(name)) - nsec3 := s.Sum(nil) - // k > 0 - for k := uint16(0); k < iter; k++ { - s.Reset() - nsec3 = append(nsec3, wire...) - io.WriteString(s, string(nsec3)) - nsec3 = s.Sum(nil) - } - return toBase32(nsec3) -} - -// Denialer is an interface that should be implemented by types that are used to denial -// answers in DNSSEC. -type Denialer interface { - // Cover will check if the (unhashed) name is being covered by this NSEC or NSEC3. - Cover(name string) bool - // Match will check if the ownername matches the (unhashed) name for this NSEC3 or NSEC3. - Match(name string) bool -} - -// Cover implements the Denialer interface. -func (rr *NSEC) Cover(name string) bool { - return true -} - -// Match implements the Denialer interface. -func (rr *NSEC) Match(name string) bool { - return true -} - -// Cover implements the Denialer interface. -func (rr *NSEC3) Cover(name string) bool { - // FIXME(miek): check if the zones match - // FIXME(miek): check if we're not dealing with parent nsec3 - hname := HashName(name, rr.Hash, rr.Iterations, rr.Salt) - labels := Split(rr.Hdr.Name) - if len(labels) < 2 { - return false - } - hash := strings.ToUpper(rr.Hdr.Name[labels[0] : labels[1]-1]) // -1 to remove the dot - if hash == rr.NextDomain { - return false // empty interval - } - if hash > rr.NextDomain { // last name, points to apex - // hname > hash - // hname > rr.NextDomain - // TODO(miek) - } - if hname <= hash { - return false - } - if hname >= rr.NextDomain { - return false - } - return true -} - -// Match implements the Denialer interface. -func (rr *NSEC3) Match(name string) bool { - // FIXME(miek): Check if we are in the same zone - hname := HashName(name, rr.Hash, rr.Iterations, rr.Salt) - labels := Split(rr.Hdr.Name) - if len(labels) < 2 { - return false - } - hash := strings.ToUpper(rr.Hdr.Name[labels[0] : labels[1]-1]) // -1 to remove the . - if hash == hname { - return true - } - return false -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/nsecx_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/nsecx_test.go deleted file mode 100644 index 93e0c63f..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/nsecx_test.go +++ /dev/null @@ -1,29 +0,0 @@ -package dns - -import ( - "testing" -) - -func TestPackNsec3(t *testing.T) { - nsec3 := HashName("dnsex.nl.", SHA1, 0, "DEAD") - if nsec3 != "ROCCJAE8BJJU7HN6T7NG3TNM8ACRS87J" { - t.Error(nsec3) - } - - nsec3 = HashName("a.b.c.example.org.", SHA1, 2, "DEAD") - if nsec3 != "6LQ07OAHBTOOEU2R9ANI2AT70K5O0RCG" { - t.Error(nsec3) - } -} - -func TestNsec3(t *testing.T) { - // examples taken from .nl - nsec3, _ := NewRR("39p91242oslggest5e6a7cci4iaeqvnk.nl. IN NSEC3 1 1 5 F10E9F7EA83FC8F3 39P99DCGG0MDLARTCRMCF6OFLLUL7PR6 NS DS RRSIG") - if !nsec3.(*NSEC3).Cover("snasajsksasasa.nl.") { // 39p94jrinub66hnpem8qdpstrec86pg3 - t.Error("39p94jrinub66hnpem8qdpstrec86pg3. should be covered by 39p91242oslggest5e6a7cci4iaeqvnk.nl. - 39P99DCGG0MDLARTCRMCF6OFLLUL7PR6") - } - nsec3, _ = NewRR("sk4e8fj94u78smusb40o1n0oltbblu2r.nl. IN NSEC3 1 1 5 F10E9F7EA83FC8F3 SK4F38CQ0ATIEI8MH3RGD0P5I4II6QAN NS SOA TXT RRSIG DNSKEY NSEC3PARAM") - if !nsec3.(*NSEC3).Match("nl.") { // sk4e8fj94u78smusb40o1n0oltbblu2r.nl. - t.Error("sk4e8fj94u78smusb40o1n0oltbblu2r.nl. should match sk4e8fj94u78smusb40o1n0oltbblu2r.nl.") - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/package.json b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/package.json deleted file mode 100644 index fa884ae4..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "dns", - "author": "whyrusleeping", - "version": "0.0.0", - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/miekg/dns" - } -} \ No newline at end of file diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/parse_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/parse_test.go deleted file mode 100644 index f2922e0b..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/parse_test.go +++ /dev/null @@ -1,1524 +0,0 @@ -package dns - -import ( - "bytes" - "crypto/rsa" - "encoding/hex" - "fmt" - "math/rand" - "net" - "reflect" - "strconv" - "strings" - "testing" - "testing/quick" - "time" -) - -func TestDotInName(t *testing.T) { - buf := make([]byte, 20) - PackDomainName("aa\\.bb.nl.", buf, 0, nil, false) - // index 3 must be a real dot - if buf[3] != '.' { - t.Error("dot should be a real dot") - } - - if buf[6] != 2 { - t.Error("this must have the value 2") - } - dom, _, _ := UnpackDomainName(buf, 0) - // printing it should yield the backspace again - if dom != "aa\\.bb.nl." { - t.Error("dot should have been escaped: ", dom) - } -} - -func TestDotLastInLabel(t *testing.T) { - sample := "aa\\..au." - buf := make([]byte, 20) - _, err := PackDomainName(sample, buf, 0, nil, false) - if err != nil { - t.Fatalf("unexpected error packing domain: %v", err) - } - dom, _, _ := UnpackDomainName(buf, 0) - if dom != sample { - t.Fatalf("unpacked domain `%s' doesn't match packed domain", dom) - } -} - -func TestTooLongDomainName(t *testing.T) { - l := "aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrsssttt." - dom := l + l + l + l + l + l + l - _, err := NewRR(dom + " IN A 127.0.0.1") - if err == nil { - t.Error("should be too long") - } else { - t.Logf("error is %v", err) - } - _, err = NewRR("..com. IN A 127.0.0.1") - if err == nil { - t.Error("should fail") - } else { - t.Logf("error is %v", err) - } -} - -func TestDomainName(t *testing.T) { - tests := []string{"r\\.gieben.miek.nl.", "www\\.www.miek.nl.", - "www.*.miek.nl.", "www.*.miek.nl.", - } - dbuff := make([]byte, 40) - - for _, ts := range tests { - if _, err := PackDomainName(ts, dbuff, 0, nil, false); err != nil { - t.Error("not a valid domain name") - continue - } - n, _, err := UnpackDomainName(dbuff, 0) - if err != nil { - t.Error("failed to unpack packed domain name") - continue - } - if ts != n { - t.Errorf("must be equal: in: %s, out: %s", ts, n) - } - } -} - -func TestDomainNameAndTXTEscapes(t *testing.T) { - tests := []byte{'.', '(', ')', ';', ' ', '@', '"', '\\', '\t', '\r', '\n', 0, 255} - for _, b := range tests { - rrbytes := []byte{ - 1, b, 0, // owner - byte(TypeTXT >> 8), byte(TypeTXT), - byte(ClassINET >> 8), byte(ClassINET), - 0, 0, 0, 1, // TTL - 0, 2, 1, b, // Data - } - rr1, _, err := UnpackRR(rrbytes, 0) - if err != nil { - panic(err) - } - s := rr1.String() - rr2, err := NewRR(s) - if err != nil { - t.Errorf("Error parsing unpacked RR's string: %v", err) - t.Errorf(" Bytes: %v", rrbytes) - t.Errorf("String: %v", s) - } - repacked := make([]byte, len(rrbytes)) - if _, err := PackRR(rr2, repacked, 0, nil, false); err != nil { - t.Errorf("error packing parsed RR: %v", err) - t.Errorf(" original Bytes: %v", rrbytes) - t.Errorf("unpacked Struct: %v", rr1) - t.Errorf(" parsed Struct: %v", rr2) - } - if !bytes.Equal(repacked, rrbytes) { - t.Error("packed bytes don't match original bytes") - t.Errorf(" original bytes: %v", rrbytes) - t.Errorf(" packed bytes: %v", repacked) - t.Errorf("unpacked struct: %v", rr1) - t.Errorf(" parsed struct: %v", rr2) - } - } -} - -func TestTXTEscapeParsing(t *testing.T) { - test := [][]string{ - {`";"`, `";"`}, - {`\;`, `";"`}, - {`"\t"`, `"\t"`}, - {`"\r"`, `"\r"`}, - {`"\ "`, `" "`}, - {`"\;"`, `";"`}, - {`"\;\""`, `";\""`}, - {`"\(a\)"`, `"(a)"`}, - {`"\(a)"`, `"(a)"`}, - {`"(a\)"`, `"(a)"`}, - {`"(a)"`, `"(a)"`}, - {`"\048"`, `"0"`}, - {`"\` + "\n" + `"`, `"\n"`}, - {`"\` + "\r" + `"`, `"\r"`}, - {`"\` + "\x11" + `"`, `"\017"`}, - {`"\'"`, `"'"`}, - } - for _, s := range test { - rr, err := NewRR(fmt.Sprintf("example.com. IN TXT %v", s[0])) - if err != nil { - t.Errorf("Could not parse %v TXT: %s", s[0], err) - continue - } - - txt := sprintTxt(rr.(*TXT).Txt) - if txt != s[1] { - t.Errorf("Mismatch after parsing `%v` TXT record: `%v` != `%v`", s[0], txt, s[1]) - } - } -} - -func GenerateDomain(r *rand.Rand, size int) []byte { - dnLen := size % 70 // artificially limit size so there's less to intrepret if a failure occurs - var dn []byte - done := false - for i := 0; i < dnLen && !done; { - max := dnLen - i - if max > 63 { - max = 63 - } - lLen := max - if lLen != 0 { - lLen = int(r.Int31()) % max - } - done = lLen == 0 - if done { - continue - } - l := make([]byte, lLen+1) - l[0] = byte(lLen) - for j := 0; j < lLen; j++ { - l[j+1] = byte(rand.Int31()) - } - dn = append(dn, l...) - i += 1 + lLen - } - return append(dn, 0) -} - -func TestDomainQuick(t *testing.T) { - r := rand.New(rand.NewSource(0)) - f := func(l int) bool { - db := GenerateDomain(r, l) - ds, _, err := UnpackDomainName(db, 0) - if err != nil { - panic(err) - } - buf := make([]byte, 255) - off, err := PackDomainName(ds, buf, 0, nil, false) - if err != nil { - t.Errorf("error packing domain: %v", err) - t.Errorf(" bytes: %v", db) - t.Errorf("string: %v", ds) - return false - } - if !bytes.Equal(db, buf[:off]) { - t.Errorf("repacked domain doesn't match original:") - t.Errorf("src bytes: %v", db) - t.Errorf(" string: %v", ds) - t.Errorf("out bytes: %v", buf[:off]) - return false - } - return true - } - if err := quick.Check(f, nil); err != nil { - t.Error(err) - } -} - -func GenerateTXT(r *rand.Rand, size int) []byte { - rdLen := size % 300 // artificially limit size so there's less to intrepret if a failure occurs - var rd []byte - for i := 0; i < rdLen; { - max := rdLen - 1 - if max > 255 { - max = 255 - } - sLen := max - if max != 0 { - sLen = int(r.Int31()) % max - } - s := make([]byte, sLen+1) - s[0] = byte(sLen) - for j := 0; j < sLen; j++ { - s[j+1] = byte(rand.Int31()) - } - rd = append(rd, s...) - i += 1 + sLen - } - return rd -} - -// Ok, 2 things. 1) this test breaks with the new functionality of splitting up larger txt -// chunks into 255 byte pieces. 2) I don't like the random nature of this thing, because I can't -// place the quotes where they need to be. -// So either add some code the places the quotes in just the right spots, make this non random -// or do something else. -// Disabled for now. (miek) -func testTXTRRQuick(t *testing.T) { - s := rand.NewSource(0) - r := rand.New(s) - typeAndClass := []byte{ - byte(TypeTXT >> 8), byte(TypeTXT), - byte(ClassINET >> 8), byte(ClassINET), - 0, 0, 0, 1, // TTL - } - f := func(l int) bool { - owner := GenerateDomain(r, l) - rdata := GenerateTXT(r, l) - rrbytes := make([]byte, 0, len(owner)+2+2+4+2+len(rdata)) - rrbytes = append(rrbytes, owner...) - rrbytes = append(rrbytes, typeAndClass...) - rrbytes = append(rrbytes, byte(len(rdata)>>8)) - rrbytes = append(rrbytes, byte(len(rdata))) - rrbytes = append(rrbytes, rdata...) - rr, _, err := UnpackRR(rrbytes, 0) - if err != nil { - panic(err) - } - buf := make([]byte, len(rrbytes)*3) - off, err := PackRR(rr, buf, 0, nil, false) - if err != nil { - t.Errorf("pack Error: %v\nRR: %v", err, rr) - return false - } - buf = buf[:off] - if !bytes.Equal(buf, rrbytes) { - t.Errorf("packed bytes don't match original bytes") - t.Errorf("src bytes: %v", rrbytes) - t.Errorf(" struct: %v", rr) - t.Errorf("out bytes: %v", buf) - return false - } - if len(rdata) == 0 { - // string'ing won't produce any data to parse - return true - } - rrString := rr.String() - rr2, err := NewRR(rrString) - if err != nil { - t.Errorf("error parsing own output: %v", err) - t.Errorf("struct: %v", rr) - t.Errorf("string: %v", rrString) - return false - } - if rr2.String() != rrString { - t.Errorf("parsed rr.String() doesn't match original string") - t.Errorf("original: %v", rrString) - t.Errorf(" parsed: %v", rr2.String()) - return false - } - - buf = make([]byte, len(rrbytes)*3) - off, err = PackRR(rr2, buf, 0, nil, false) - if err != nil { - t.Errorf("error packing parsed rr: %v", err) - t.Errorf("unpacked Struct: %v", rr) - t.Errorf(" string: %v", rrString) - t.Errorf(" parsed Struct: %v", rr2) - return false - } - buf = buf[:off] - if !bytes.Equal(buf, rrbytes) { - t.Errorf("parsed packed bytes don't match original bytes") - t.Errorf(" source bytes: %v", rrbytes) - t.Errorf("unpacked struct: %v", rr) - t.Errorf(" string: %v", rrString) - t.Errorf(" parsed struct: %v", rr2) - t.Errorf(" repacked bytes: %v", buf) - return false - } - return true - } - c := &quick.Config{MaxCountScale: 10} - if err := quick.Check(f, c); err != nil { - t.Error(err) - } -} - -func TestParseDirectiveMisc(t *testing.T) { - tests := map[string]string{ - "$ORIGIN miek.nl.\na IN NS b": "a.miek.nl.\t3600\tIN\tNS\tb.miek.nl.", - "$TTL 2H\nmiek.nl. IN NS b.": "miek.nl.\t7200\tIN\tNS\tb.", - "miek.nl. 1D IN NS b.": "miek.nl.\t86400\tIN\tNS\tb.", - `name. IN SOA a6.nstld.com. hostmaster.nic.name. ( - 203362132 ; serial - 5m ; refresh (5 minutes) - 5m ; retry (5 minutes) - 2w ; expire (2 weeks) - 300 ; minimum (5 minutes) -)`: "name.\t3600\tIN\tSOA\ta6.nstld.com. hostmaster.nic.name. 203362132 300 300 1209600 300", - ". 3600000 IN NS ONE.MY-ROOTS.NET.": ".\t3600000\tIN\tNS\tONE.MY-ROOTS.NET.", - "ONE.MY-ROOTS.NET. 3600000 IN A 192.168.1.1": "ONE.MY-ROOTS.NET.\t3600000\tIN\tA\t192.168.1.1", - } - for i, o := range tests { - rr, err := NewRR(i) - if err != nil { - t.Error("failed to parse RR: ", err) - continue - } - if rr.String() != o { - t.Errorf("`%s' should be equal to\n`%s', but is `%s'", i, o, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} - -func TestNSEC(t *testing.T) { - nsectests := map[string]string{ - "nl. IN NSEC3PARAM 1 0 5 30923C44C6CBBB8F": "nl.\t3600\tIN\tNSEC3PARAM\t1 0 5 30923C44C6CBBB8F", - "p2209hipbpnm681knjnu0m1febshlv4e.nl. IN NSEC3 1 1 5 30923C44C6CBBB8F P90DG1KE8QEAN0B01613LHQDG0SOJ0TA NS SOA TXT RRSIG DNSKEY NSEC3PARAM": "p2209hipbpnm681knjnu0m1febshlv4e.nl.\t3600\tIN\tNSEC3\t1 1 5 30923C44C6CBBB8F P90DG1KE8QEAN0B01613LHQDG0SOJ0TA NS SOA TXT RRSIG DNSKEY NSEC3PARAM", - "localhost.dnssex.nl. IN NSEC www.dnssex.nl. A RRSIG NSEC": "localhost.dnssex.nl.\t3600\tIN\tNSEC\twww.dnssex.nl. A RRSIG NSEC", - "localhost.dnssex.nl. IN NSEC www.dnssex.nl. A RRSIG NSEC TYPE65534": "localhost.dnssex.nl.\t3600\tIN\tNSEC\twww.dnssex.nl. A RRSIG NSEC TYPE65534", - "localhost.dnssex.nl. IN NSEC www.dnssex.nl. A RRSIG NSec Type65534": "localhost.dnssex.nl.\t3600\tIN\tNSEC\twww.dnssex.nl. A RRSIG NSEC TYPE65534", - } - for i, o := range nsectests { - rr, err := NewRR(i) - if err != nil { - t.Error("failed to parse RR: ", err) - continue - } - if rr.String() != o { - t.Errorf("`%s' should be equal to\n`%s', but is `%s'", i, o, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} - -func TestParseLOC(t *testing.T) { - lt := map[string]string{ - "SW1A2AA.find.me.uk. LOC 51 30 12.748 N 00 07 39.611 W 0.00m 0.00m 0.00m 0.00m": "SW1A2AA.find.me.uk.\t3600\tIN\tLOC\t51 30 12.748 N 00 07 39.611 W 0m 0.00m 0.00m 0.00m", - "SW1A2AA.find.me.uk. LOC 51 0 0.0 N 00 07 39.611 W 0.00m 0.00m 0.00m 0.00m": "SW1A2AA.find.me.uk.\t3600\tIN\tLOC\t51 00 0.000 N 00 07 39.611 W 0m 0.00m 0.00m 0.00m", - } - for i, o := range lt { - rr, err := NewRR(i) - if err != nil { - t.Error("failed to parse RR: ", err) - continue - } - if rr.String() != o { - t.Errorf("`%s' should be equal to\n`%s', but is `%s'", i, o, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} - -func TestParseDS(t *testing.T) { - dt := map[string]string{ - "example.net. 3600 IN DS 40692 12 3 22261A8B0E0D799183E35E24E2AD6BB58533CBA7E3B14D659E9CA09B 2071398F": "example.net.\t3600\tIN\tDS\t40692 12 3 22261A8B0E0D799183E35E24E2AD6BB58533CBA7E3B14D659E9CA09B2071398F", - } - for i, o := range dt { - rr, err := NewRR(i) - if err != nil { - t.Error("failed to parse RR: ", err) - continue - } - if rr.String() != o { - t.Errorf("`%s' should be equal to\n`%s', but is `%s'", i, o, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} - -func TestQuotes(t *testing.T) { - tests := map[string]string{ - `t.example.com. IN TXT "a bc"`: "t.example.com.\t3600\tIN\tTXT\t\"a bc\"", - `t.example.com. IN TXT "a - bc"`: "t.example.com.\t3600\tIN\tTXT\t\"a\\n bc\"", - `t.example.com. IN TXT ""`: "t.example.com.\t3600\tIN\tTXT\t\"\"", - `t.example.com. IN TXT "a"`: "t.example.com.\t3600\tIN\tTXT\t\"a\"", - `t.example.com. IN TXT "aa"`: "t.example.com.\t3600\tIN\tTXT\t\"aa\"", - `t.example.com. IN TXT "aaa" ;`: "t.example.com.\t3600\tIN\tTXT\t\"aaa\"", - `t.example.com. IN TXT "abc" "DEF"`: "t.example.com.\t3600\tIN\tTXT\t\"abc\" \"DEF\"", - `t.example.com. IN TXT "abc" ( "DEF" )`: "t.example.com.\t3600\tIN\tTXT\t\"abc\" \"DEF\"", - `t.example.com. IN TXT aaa ;`: "t.example.com.\t3600\tIN\tTXT\t\"aaa \"", - `t.example.com. IN TXT aaa aaa;`: "t.example.com.\t3600\tIN\tTXT\t\"aaa aaa\"", - `t.example.com. IN TXT aaa aaa`: "t.example.com.\t3600\tIN\tTXT\t\"aaa aaa\"", - `t.example.com. IN TXT aaa`: "t.example.com.\t3600\tIN\tTXT\t\"aaa\"", - "cid.urn.arpa. NAPTR 100 50 \"s\" \"z3950+I2L+I2C\" \"\" _z3950._tcp.gatech.edu.": "cid.urn.arpa.\t3600\tIN\tNAPTR\t100 50 \"s\" \"z3950+I2L+I2C\" \"\" _z3950._tcp.gatech.edu.", - "cid.urn.arpa. NAPTR 100 50 \"s\" \"rcds+I2C\" \"\" _rcds._udp.gatech.edu.": "cid.urn.arpa.\t3600\tIN\tNAPTR\t100 50 \"s\" \"rcds+I2C\" \"\" _rcds._udp.gatech.edu.", - "cid.urn.arpa. NAPTR 100 50 \"s\" \"http+I2L+I2C+I2R\" \"\" _http._tcp.gatech.edu.": "cid.urn.arpa.\t3600\tIN\tNAPTR\t100 50 \"s\" \"http+I2L+I2C+I2R\" \"\" _http._tcp.gatech.edu.", - "cid.urn.arpa. NAPTR 100 10 \"\" \"\" \"/urn:cid:.+@([^\\.]+\\.)(.*)$/\\2/i\" .": "cid.urn.arpa.\t3600\tIN\tNAPTR\t100 10 \"\" \"\" \"/urn:cid:.+@([^\\.]+\\.)(.*)$/\\2/i\" .", - } - for i, o := range tests { - rr, err := NewRR(i) - if err != nil { - t.Error("failed to parse RR: ", err) - continue - } - if rr.String() != o { - t.Errorf("`%s' should be equal to\n`%s', but is\n`%s'", i, o, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} - -func TestParseClass(t *testing.T) { - tests := map[string]string{ - "t.example.com. IN A 127.0.0.1": "t.example.com. 3600 IN A 127.0.0.1", - "t.example.com. CS A 127.0.0.1": "t.example.com. 3600 CS A 127.0.0.1", - "t.example.com. CH A 127.0.0.1": "t.example.com. 3600 CH A 127.0.0.1", - // ClassANY can not occur in zone files - // "t.example.com. ANY A 127.0.0.1": "t.example.com. 3600 ANY A 127.0.0.1", - "t.example.com. NONE A 127.0.0.1": "t.example.com. 3600 NONE A 127.0.0.1", - } - for i, o := range tests { - rr, err := NewRR(i) - if err != nil { - t.Error("failed to parse RR: ", err) - continue - } - if rr.String() != o { - t.Errorf("`%s' should be equal to\n`%s', but is\n`%s'", i, o, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} - -func TestBrace(t *testing.T) { - tests := map[string]string{ - "(miek.nl.) 3600 IN A 127.0.1.1": "miek.nl.\t3600\tIN\tA\t127.0.1.1", - "miek.nl. (3600) IN MX (10) elektron.atoom.net.": "miek.nl.\t3600\tIN\tMX\t10 elektron.atoom.net.", - `miek.nl. IN ( - 3600 A 127.0.0.1)`: "miek.nl.\t3600\tIN\tA\t127.0.0.1", - "(miek.nl.) (A) (127.0.2.1)": "miek.nl.\t3600\tIN\tA\t127.0.2.1", - "miek.nl A 127.0.3.1": "miek.nl.\t3600\tIN\tA\t127.0.3.1", - "_ssh._tcp.local. 60 IN (PTR) stora._ssh._tcp.local.": "_ssh._tcp.local.\t60\tIN\tPTR\tstora._ssh._tcp.local.", - "miek.nl. NS ns.miek.nl": "miek.nl.\t3600\tIN\tNS\tns.miek.nl.", - `(miek.nl.) ( - (IN) - (AAAA) - (::1) )`: "miek.nl.\t3600\tIN\tAAAA\t::1", - `(miek.nl.) ( - (IN) - (AAAA) - (::1))`: "miek.nl.\t3600\tIN\tAAAA\t::1", - "miek.nl. IN AAAA ::2": "miek.nl.\t3600\tIN\tAAAA\t::2", - `((m)(i)ek.(n)l.) (SOA) (soa.) (soa.) ( - 2009032802 ; serial - 21600 ; refresh (6 hours) - 7(2)00 ; retry (2 hours) - 604()800 ; expire (1 week) - 3600 ; minimum (1 hour) - )`: "miek.nl.\t3600\tIN\tSOA\tsoa. soa. 2009032802 21600 7200 604800 3600", - "miek\\.nl. IN A 127.0.0.10": "miek\\.nl.\t3600\tIN\tA\t127.0.0.10", - "miek.nl. IN A 127.0.0.11": "miek.nl.\t3600\tIN\tA\t127.0.0.11", - "miek.nl. A 127.0.0.12": "miek.nl.\t3600\tIN\tA\t127.0.0.12", - `miek.nl. 86400 IN SOA elektron.atoom.net. miekg.atoom.net. ( - 2009032802 ; serial - 21600 ; refresh (6 hours) - 7200 ; retry (2 hours) - 604800 ; expire (1 week) - 3600 ; minimum (1 hour) - )`: "miek.nl.\t86400\tIN\tSOA\telektron.atoom.net. miekg.atoom.net. 2009032802 21600 7200 604800 3600", - } - for i, o := range tests { - rr, err := NewRR(i) - if err != nil { - t.Errorf("failed to parse RR: %v\n\t%s", err, i) - continue - } - if rr.String() != o { - t.Errorf("`%s' should be equal to\n`%s', but is `%s'", i, o, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} - -func TestParseFailure(t *testing.T) { - tests := []string{"miek.nl. IN A 327.0.0.1", - "miek.nl. IN AAAA ::x", - "miek.nl. IN MX a0 miek.nl.", - "miek.nl aap IN MX mx.miek.nl.", - "miek.nl 200 IN mxx 10 mx.miek.nl.", - "miek.nl. inn MX 10 mx.miek.nl.", - // "miek.nl. IN CNAME ", // actually valid nowadays, zero size rdata - "miek.nl. IN CNAME ..", - "miek.nl. PA MX 10 miek.nl.", - "miek.nl. ) IN MX 10 miek.nl.", - } - - for _, s := range tests { - _, err := NewRR(s) - if err == nil { - t.Errorf("should have triggered an error: \"%s\"", s) - } - } -} - -func TestZoneParsing(t *testing.T) { - // parse_test.db - db := ` -a.example.com. IN A 127.0.0.1 -8db7._openpgpkey.example.com. IN OPENPGPKEY mQCNAzIG -$ORIGIN a.example.com. -test IN A 127.0.0.1 - IN SSHFP 1 2 ( - BC6533CDC95A79078A39A56EA7635984ED655318ADA9 - B6159E30723665DA95BB ) -$ORIGIN b.example.com. -test IN CNAME test.a.example.com. -` - start := time.Now().UnixNano() - to := ParseZone(strings.NewReader(db), "", "parse_test.db") - var i int - for x := range to { - i++ - if x.Error != nil { - t.Error(x.Error) - continue - } - t.Log(x.RR) - } - delta := time.Now().UnixNano() - start - t.Logf("%d RRs parsed in %.2f s (%.2f RR/s)", i, float32(delta)/1e9, float32(i)/(float32(delta)/1e9)) -} - -func ExampleParseZone() { - zone := `$ORIGIN . -$TTL 3600 ; 1 hour -name IN SOA a6.nstld.com. hostmaster.nic.name. ( - 203362132 ; serial - 300 ; refresh (5 minutes) - 300 ; retry (5 minutes) - 1209600 ; expire (2 weeks) - 300 ; minimum (5 minutes) - ) -$TTL 10800 ; 3 hours -name. 10800 IN NS name. - IN NS g6.nstld.com. - 7200 NS h6.nstld.com. - 3600 IN NS j6.nstld.com. - IN 3600 NS k6.nstld.com. - NS l6.nstld.com. - NS a6.nstld.com. - NS c6.nstld.com. - NS d6.nstld.com. - NS f6.nstld.com. - NS m6.nstld.com. -( - NS m7.nstld.com. -) -$ORIGIN name. -0-0onlus NS ns7.ehiweb.it. - NS ns8.ehiweb.it. -0-g MX 10 mx01.nic - MX 10 mx02.nic - MX 10 mx03.nic - MX 10 mx04.nic -$ORIGIN 0-g.name -moutamassey NS ns01.yahoodomains.jp. - NS ns02.yahoodomains.jp. -` - to := ParseZone(strings.NewReader(zone), "", "testzone") - for x := range to { - fmt.Println(x.RR) - } - // Output: - // name. 3600 IN SOA a6.nstld.com. hostmaster.nic.name. 203362132 300 300 1209600 300 - // name. 10800 IN NS name. - // name. 10800 IN NS g6.nstld.com. - // name. 7200 IN NS h6.nstld.com. - // name. 3600 IN NS j6.nstld.com. - // name. 3600 IN NS k6.nstld.com. - // name. 10800 IN NS l6.nstld.com. - // name. 10800 IN NS a6.nstld.com. - // name. 10800 IN NS c6.nstld.com. - // name. 10800 IN NS d6.nstld.com. - // name. 10800 IN NS f6.nstld.com. - // name. 10800 IN NS m6.nstld.com. - // name. 10800 IN NS m7.nstld.com. - // 0-0onlus.name. 10800 IN NS ns7.ehiweb.it. - // 0-0onlus.name. 10800 IN NS ns8.ehiweb.it. - // 0-g.name. 10800 IN MX 10 mx01.nic.name. - // 0-g.name. 10800 IN MX 10 mx02.nic.name. - // 0-g.name. 10800 IN MX 10 mx03.nic.name. - // 0-g.name. 10800 IN MX 10 mx04.nic.name. - // moutamassey.0-g.name.name. 10800 IN NS ns01.yahoodomains.jp. - // moutamassey.0-g.name.name. 10800 IN NS ns02.yahoodomains.jp. -} - -func ExampleHIP() { - h := `www.example.com IN HIP ( 2 200100107B1A74DF365639CC39F1D578 - AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p -9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQ -b1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D - rvs.example.com. )` - if hip, err := NewRR(h); err == nil { - fmt.Println(hip.String()) - } - // Output: - // www.example.com. 3600 IN HIP 2 200100107B1A74DF365639CC39F1D578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D rvs.example.com. -} - -func TestHIP(t *testing.T) { - h := `www.example.com. IN HIP ( 2 200100107B1A74DF365639CC39F1D578 - AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p -9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQ -b1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D - rvs1.example.com. - rvs2.example.com. )` - rr, err := NewRR(h) - if err != nil { - t.Fatalf("failed to parse RR: %v", err) - } - t.Logf("RR: %s", rr) - msg := new(Msg) - msg.Answer = []RR{rr, rr} - bytes, err := msg.Pack() - if err != nil { - t.Fatalf("failed to pack msg: %v", err) - } - if err := msg.Unpack(bytes); err != nil { - t.Fatalf("failed to unpack msg: %v", err) - } - if len(msg.Answer) != 2 { - t.Fatalf("2 answers expected: %v", msg) - } - for i, rr := range msg.Answer { - rr := rr.(*HIP) - t.Logf("RR: %s", rr) - if l := len(rr.RendezvousServers); l != 2 { - t.Fatalf("2 servers expected, only %d in record %d:\n%v", l, i, msg) - } - for j, s := range []string{"rvs1.example.com.", "rvs2.example.com."} { - if rr.RendezvousServers[j] != s { - t.Fatalf("expected server %d of record %d to be %s:\n%v", j, i, s, msg) - } - } - } -} - -func ExampleSOA() { - s := "example.com. 1000 SOA master.example.com. admin.example.com. 1 4294967294 4294967293 4294967295 100" - if soa, err := NewRR(s); err == nil { - fmt.Println(soa.String()) - } - // Output: - // example.com. 1000 IN SOA master.example.com. admin.example.com. 1 4294967294 4294967293 4294967295 100 -} - -func TestLineNumberError(t *testing.T) { - s := "example.com. 1000 SOA master.example.com. admin.example.com. monkey 4294967294 4294967293 4294967295 100" - if _, err := NewRR(s); err != nil { - if err.Error() != "dns: bad SOA zone parameter: \"monkey\" at line: 1:68" { - t.Error("not expecting this error: ", err) - } - } -} - -// Test with no known RR on the line -func TestLineNumberError2(t *testing.T) { - tests := map[string]string{ - "example.com. 1000 SO master.example.com. admin.example.com. 1 4294967294 4294967293 4294967295 100": "dns: expecting RR type or class, not this...: \"SO\" at line: 1:21", - "example.com 1000 IN TALINK a.example.com. b..example.com.": "dns: bad TALINK NextName: \"b..example.com.\" at line: 1:57", - "example.com 1000 IN TALINK ( a.example.com. b..example.com. )": "dns: bad TALINK NextName: \"b..example.com.\" at line: 1:60", - `example.com 1000 IN TALINK ( a.example.com. - bb..example.com. )`: "dns: bad TALINK NextName: \"bb..example.com.\" at line: 2:18", - // This is a bug, it should report an error on line 1, but the new is already processed. - `example.com 1000 IN TALINK ( a.example.com. b...example.com. - )`: "dns: bad TALINK NextName: \"b...example.com.\" at line: 2:1"} - - for in, errStr := range tests { - _, err := NewRR(in) - if err == nil { - t.Error("err is nil") - } else { - if err.Error() != errStr { - t.Errorf("%s: error should be %s is %v", in, errStr, err) - } - } - } -} - -// Test if the calculations are correct -func TestRfc1982(t *testing.T) { - // If the current time and the timestamp are more than 68 years apart - // it means the date has wrapped. 0 is 1970 - - // fall in the current 68 year span - strtests := []string{"20120525134203", "19700101000000", "20380119031408"} - for _, v := range strtests { - if x, _ := StringToTime(v); v != TimeToString(x) { - t.Errorf("1982 arithmetic string failure %s (%s:%d)", v, TimeToString(x), x) - } - } - - inttests := map[uint32]string{0: "19700101000000", - 1 << 31: "20380119031408", - 1<<32 - 1: "21060207062815", - } - for i, v := range inttests { - if TimeToString(i) != v { - t.Errorf("1982 arithmetic int failure %d:%s (%s)", i, v, TimeToString(i)) - } - } - - // Future tests, these dates get parsed to a date within the current 136 year span - future := map[string]string{"22680119031408": "20631123173144", - "19010101121212": "20370206184028", - "19210101121212": "20570206184028", - "19500101121212": "20860206184028", - "19700101000000": "19700101000000", - "19690101000000": "21050207062816", - "29210101121212": "21040522212236", - } - for from, to := range future { - x, _ := StringToTime(from) - y := TimeToString(x) - if y != to { - t.Errorf("1982 arithmetic future failure %s:%s (%s)", from, to, y) - } - } -} - -func TestEmpty(t *testing.T) { - for _ = range ParseZone(strings.NewReader(""), "", "") { - t.Errorf("should be empty") - } -} - -func TestLowercaseTokens(t *testing.T) { - var testrecords = []string{ - "example.org. 300 IN a 1.2.3.4", - "example.org. 300 in A 1.2.3.4", - "example.org. 300 in a 1.2.3.4", - "example.org. 300 a 1.2.3.4", - "example.org. 300 A 1.2.3.4", - "example.org. IN a 1.2.3.4", - "example.org. in A 1.2.3.4", - "example.org. in a 1.2.3.4", - "example.org. a 1.2.3.4", - "example.org. A 1.2.3.4", - "example.org. a 1.2.3.4", - "$ORIGIN example.org.\n a 1.2.3.4", - "$Origin example.org.\n a 1.2.3.4", - "$origin example.org.\n a 1.2.3.4", - "example.org. Class1 Type1 1.2.3.4", - } - for _, testrr := range testrecords { - _, err := NewRR(testrr) - if err != nil { - t.Errorf("failed to parse %#v, got %v", testrr, err) - } - } -} - -func ExampleParseZone_generate() { - // From the manual: http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.ch06.html#id2566761 - zone := "$GENERATE 1-2 0 NS SERVER$.EXAMPLE.\n$GENERATE 1-8 $ CNAME $.0" - to := ParseZone(strings.NewReader(zone), "0.0.192.IN-ADDR.ARPA.", "") - for x := range to { - if x.Error == nil { - fmt.Println(x.RR.String()) - } - } - // Output: - // 0.0.0.192.IN-ADDR.ARPA. 3600 IN NS SERVER1.EXAMPLE. - // 0.0.0.192.IN-ADDR.ARPA. 3600 IN NS SERVER2.EXAMPLE. - // 1.0.0.192.IN-ADDR.ARPA. 3600 IN CNAME 1.0.0.0.192.IN-ADDR.ARPA. - // 2.0.0.192.IN-ADDR.ARPA. 3600 IN CNAME 2.0.0.0.192.IN-ADDR.ARPA. - // 3.0.0.192.IN-ADDR.ARPA. 3600 IN CNAME 3.0.0.0.192.IN-ADDR.ARPA. - // 4.0.0.192.IN-ADDR.ARPA. 3600 IN CNAME 4.0.0.0.192.IN-ADDR.ARPA. - // 5.0.0.192.IN-ADDR.ARPA. 3600 IN CNAME 5.0.0.0.192.IN-ADDR.ARPA. - // 6.0.0.192.IN-ADDR.ARPA. 3600 IN CNAME 6.0.0.0.192.IN-ADDR.ARPA. - // 7.0.0.192.IN-ADDR.ARPA. 3600 IN CNAME 7.0.0.0.192.IN-ADDR.ARPA. - // 8.0.0.192.IN-ADDR.ARPA. 3600 IN CNAME 8.0.0.0.192.IN-ADDR.ARPA. -} - -func TestSRVPacking(t *testing.T) { - msg := Msg{} - - things := []string{"1.2.3.4:8484", - "45.45.45.45:8484", - "84.84.84.84:8484", - } - - for i, n := range things { - h, p, err := net.SplitHostPort(n) - if err != nil { - continue - } - port := 8484 - tmp, err := strconv.Atoi(p) - if err == nil { - port = tmp - } - - rr := &SRV{ - Hdr: RR_Header{Name: "somename.", - Rrtype: TypeSRV, - Class: ClassINET, - Ttl: 5}, - Priority: uint16(i), - Weight: 5, - Port: uint16(port), - Target: h + ".", - } - - msg.Answer = append(msg.Answer, rr) - } - - _, err := msg.Pack() - if err != nil { - t.Fatalf("couldn't pack %v: %v", msg, err) - } -} - -func TestParseBackslash(t *testing.T) { - if r, err := NewRR("nul\\000gap.test.globnix.net. 600 IN A 192.0.2.10"); err != nil { - t.Errorf("could not create RR with \\000 in it") - } else { - t.Logf("parsed %s", r.String()) - } - if r, err := NewRR(`nul\000gap.test.globnix.net. 600 IN TXT "Hello\123"`); err != nil { - t.Errorf("could not create RR with \\000 in it") - } else { - t.Logf("parsed %s", r.String()) - } - if r, err := NewRR(`m\ @\ iek.nl. IN 3600 A 127.0.0.1`); err != nil { - t.Errorf("could not create RR with \\ and \\@ in it") - } else { - t.Logf("parsed %s", r.String()) - } -} - -func TestILNP(t *testing.T) { - tests := []string{ - "host1.example.com.\t3600\tIN\tNID\t10 0014:4fff:ff20:ee64", - "host1.example.com.\t3600\tIN\tNID\t20 0015:5fff:ff21:ee65", - "host2.example.com.\t3600\tIN\tNID\t10 0016:6fff:ff22:ee66", - "host1.example.com.\t3600\tIN\tL32\t10 10.1.2.0", - "host1.example.com.\t3600\tIN\tL32\t20 10.1.4.0", - "host2.example.com.\t3600\tIN\tL32\t10 10.1.8.0", - "host1.example.com.\t3600\tIN\tL64\t10 2001:0DB8:1140:1000", - "host1.example.com.\t3600\tIN\tL64\t20 2001:0DB8:2140:2000", - "host2.example.com.\t3600\tIN\tL64\t10 2001:0DB8:4140:4000", - "host1.example.com.\t3600\tIN\tLP\t10 l64-subnet1.example.com.", - "host1.example.com.\t3600\tIN\tLP\t10 l64-subnet2.example.com.", - "host1.example.com.\t3600\tIN\tLP\t20 l32-subnet1.example.com.", - } - for _, t1 := range tests { - r, err := NewRR(t1) - if err != nil { - t.Fatalf("an error occurred: %v", err) - } else { - if t1 != r.String() { - t.Fatalf("strings should be equal %s %s", t1, r.String()) - } - } - } -} - -func TestGposEidNimloc(t *testing.T) { - dt := map[string]string{ - "444433332222111199990123000000ff. NSAP-PTR foo.bar.com.": "444433332222111199990123000000ff.\t3600\tIN\tNSAP-PTR\tfoo.bar.com.", - "lillee. IN GPOS -32.6882 116.8652 10.0": "lillee.\t3600\tIN\tGPOS\t-32.6882 116.8652 10.0", - "hinault. IN GPOS -22.6882 116.8652 250.0": "hinault.\t3600\tIN\tGPOS\t-22.6882 116.8652 250.0", - "VENERA. IN NIMLOC 75234159EAC457800920": "VENERA.\t3600\tIN\tNIMLOC\t75234159EAC457800920", - "VAXA. IN EID 3141592653589793": "VAXA.\t3600\tIN\tEID\t3141592653589793", - } - for i, o := range dt { - rr, err := NewRR(i) - if err != nil { - t.Error("failed to parse RR: ", err) - continue - } - if rr.String() != o { - t.Errorf("`%s' should be equal to\n`%s', but is `%s'", i, o, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} - -func TestPX(t *testing.T) { - dt := map[string]string{ - "*.net2.it. IN PX 10 net2.it. PRMD-net2.ADMD-p400.C-it.": "*.net2.it.\t3600\tIN\tPX\t10 net2.it. PRMD-net2.ADMD-p400.C-it.", - "ab.net2.it. IN PX 10 ab.net2.it. O-ab.PRMD-net2.ADMDb.C-it.": "ab.net2.it.\t3600\tIN\tPX\t10 ab.net2.it. O-ab.PRMD-net2.ADMDb.C-it.", - } - for i, o := range dt { - rr, err := NewRR(i) - if err != nil { - t.Error("failed to parse RR: ", err) - continue - } - if rr.String() != o { - t.Errorf("`%s' should be equal to\n`%s', but is `%s'", i, o, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} - -func TestComment(t *testing.T) { - // Comments we must see - comments := map[string]bool{"; this is comment 1": true, - "; this is comment 4": true, "; this is comment 6": true, - "; this is comment 7": true, "; this is comment 8": true} - zone := ` -foo. IN A 10.0.0.1 ; this is comment 1 -foo. IN A ( - 10.0.0.2 ; this is comment2 -) -; this is comment3 -foo. IN A 10.0.0.3 -foo. IN A ( 10.0.0.4 ); this is comment 4 - -foo. IN A 10.0.0.5 -; this is comment5 - -foo. IN A 10.0.0.6 - -foo. IN DNSKEY 256 3 5 AwEAAb+8l ; this is comment 6 -foo. IN NSEC miek.nl. TXT RRSIG NSEC; this is comment 7 -foo. IN TXT "THIS IS TEXT MAN"; this is comment 8 -` - for x := range ParseZone(strings.NewReader(zone), ".", "") { - if x.Error == nil { - if x.Comment != "" { - if _, ok := comments[x.Comment]; !ok { - t.Errorf("wrong comment %s", x.Comment) - } - } - } - } -} - -func TestEUIxx(t *testing.T) { - tests := map[string]string{ - "host.example. IN EUI48 00-00-5e-90-01-2a": "host.example.\t3600\tIN\tEUI48\t00-00-5e-90-01-2a", - "host.example. IN EUI64 00-00-5e-ef-00-00-00-2a": "host.example.\t3600\tIN\tEUI64\t00-00-5e-ef-00-00-00-2a", - } - for i, o := range tests { - r, err := NewRR(i) - if err != nil { - t.Errorf("failed to parse %s: %v", i, err) - } - if r.String() != o { - t.Errorf("want %s, got %s", o, r.String()) - } - } -} - -func TestUserRR(t *testing.T) { - tests := map[string]string{ - "host.example. IN UID 1234": "host.example.\t3600\tIN\tUID\t1234", - "host.example. IN GID 1234556": "host.example.\t3600\tIN\tGID\t1234556", - "host.example. IN UINFO \"Miek Gieben\"": "host.example.\t3600\tIN\tUINFO\t\"Miek Gieben\"", - } - for i, o := range tests { - r, err := NewRR(i) - if err != nil { - t.Errorf("failed to parse %s: %v", i, err) - } - if r.String() != o { - t.Errorf("want %s, got %s", o, r.String()) - } - } -} - -func TestTXT(t *testing.T) { - // Test single entry TXT record - rr, err := NewRR(`_raop._tcp.local. 60 IN TXT "single value"`) - if err != nil { - t.Error("failed to parse single value TXT record", err) - } else if rr, ok := rr.(*TXT); !ok { - t.Error("wrong type, record should be of type TXT") - } else { - if len(rr.Txt) != 1 { - t.Error("bad size of TXT value:", len(rr.Txt)) - } else if rr.Txt[0] != "single value" { - t.Error("bad single value") - } - if rr.String() != `_raop._tcp.local. 60 IN TXT "single value"` { - t.Error("bad representation of TXT record:", rr.String()) - } - if rr.len() != 28+1+12 { - t.Error("bad size of serialized record:", rr.len()) - } - } - - // Test multi entries TXT record - rr, err = NewRR(`_raop._tcp.local. 60 IN TXT "a=1" "b=2" "c=3" "d=4"`) - if err != nil { - t.Error("failed to parse multi-values TXT record", err) - } else if rr, ok := rr.(*TXT); !ok { - t.Error("wrong type, record should be of type TXT") - } else { - if len(rr.Txt) != 4 { - t.Error("bad size of TXT multi-value:", len(rr.Txt)) - } else if rr.Txt[0] != "a=1" || rr.Txt[1] != "b=2" || rr.Txt[2] != "c=3" || rr.Txt[3] != "d=4" { - t.Error("bad values in TXT records") - } - if rr.String() != `_raop._tcp.local. 60 IN TXT "a=1" "b=2" "c=3" "d=4"` { - t.Error("bad representation of TXT multi value record:", rr.String()) - } - if rr.len() != 28+1+3+1+3+1+3+1+3 { - t.Error("bad size of serialized multi value record:", rr.len()) - } - } - - // Test empty-string in TXT record - rr, err = NewRR(`_raop._tcp.local. 60 IN TXT ""`) - if err != nil { - t.Error("failed to parse empty-string TXT record", err) - } else if rr, ok := rr.(*TXT); !ok { - t.Error("wrong type, record should be of type TXT") - } else { - if len(rr.Txt) != 1 { - t.Error("bad size of TXT empty-string value:", len(rr.Txt)) - } else if rr.Txt[0] != "" { - t.Error("bad value for empty-string TXT record") - } - if rr.String() != `_raop._tcp.local. 60 IN TXT ""` { - t.Error("bad representation of empty-string TXT record:", rr.String()) - } - if rr.len() != 28+1 { - t.Error("bad size of serialized record:", rr.len()) - } - } - - // Test TXT record with chunk larger than 255 bytes, they should be split up, by the parser - s := "" - for i := 0; i < 255; i++ { - s += "a" - } - s += "b" - rr, err = NewRR(`test.local. 60 IN TXT "` + s + `"`) - if err != nil { - t.Error("failed to parse empty-string TXT record", err) - } - if rr.(*TXT).Txt[1] != "b" { - t.Errorf("Txt should have two chunk, last one my be 'b', but is %s", rr.(*TXT).Txt[1]) - } - t.Log(rr.String()) -} - -func TestTypeXXXX(t *testing.T) { - _, err := NewRR("example.com IN TYPE1234 \\# 4 aabbccdd") - if err != nil { - t.Errorf("failed to parse TYPE1234 RR: %v", err) - } - _, err = NewRR("example.com IN TYPE655341 \\# 8 aabbccddaabbccdd") - if err == nil { - t.Errorf("this should not work, for TYPE655341") - } - _, err = NewRR("example.com IN TYPE1 \\# 4 0a000001") - if err == nil { - t.Errorf("this should not work") - } -} - -func TestPTR(t *testing.T) { - _, err := NewRR("144.2.0.192.in-addr.arpa. 900 IN PTR ilouse03146p0\\(.example.com.") - if err != nil { - t.Error("failed to parse ", err) - } -} - -func TestDigit(t *testing.T) { - tests := map[string]byte{ - "miek\\000.nl. 100 IN TXT \"A\"": 0, - "miek\\001.nl. 100 IN TXT \"A\"": 1, - "miek\\254.nl. 100 IN TXT \"A\"": 254, - "miek\\255.nl. 100 IN TXT \"A\"": 255, - "miek\\256.nl. 100 IN TXT \"A\"": 0, - "miek\\257.nl. 100 IN TXT \"A\"": 1, - "miek\\004.nl. 100 IN TXT \"A\"": 4, - } - for s, i := range tests { - r, err := NewRR(s) - buf := make([]byte, 40) - if err != nil { - t.Fatalf("failed to parse %v", err) - } - PackRR(r, buf, 0, nil, false) - t.Log(buf) - if buf[5] != i { - t.Fatalf("5 pos must be %d, is %d", i, buf[5]) - } - r1, _, _ := UnpackRR(buf, 0) - if r1.Header().Ttl != 100 { - t.Fatalf("TTL should %d, is %d", 100, r1.Header().Ttl) - } - } -} - -func TestParseRRSIGTimestamp(t *testing.T) { - tests := map[string]bool{ - `miek.nl. IN RRSIG SOA 8 2 43200 20140210031301 20140111031301 12051 miek.nl. MVZUyrYwq0iZhMFDDnVXD2BvuNiUJjSYlJAgzyAE6CF875BMvvZa+Sb0 RlSCL7WODQSQHhCx/fegHhVVF+Iz8N8kOLrmXD1+jO3Bm6Prl5UhcsPx WTBsg/kmxbp8sR1kvH4oZJtVfakG3iDerrxNaf0sQwhZzyfJQAqpC7pcBoc=`: true, - `miek.nl. IN RRSIG SOA 8 2 43200 315565800 4102477800 12051 miek.nl. MVZUyrYwq0iZhMFDDnVXD2BvuNiUJjSYlJAgzyAE6CF875BMvvZa+Sb0 RlSCL7WODQSQHhCx/fegHhVVF+Iz8N8kOLrmXD1+jO3Bm6Prl5UhcsPx WTBsg/kmxbp8sR1kvH4oZJtVfakG3iDerrxNaf0sQwhZzyfJQAqpC7pcBoc=`: true, - } - for r := range tests { - _, err := NewRR(r) - if err != nil { - t.Error(err) - } - } -} - -func TestTxtEqual(t *testing.T) { - rr1 := new(TXT) - rr1.Hdr = RR_Header{Name: ".", Rrtype: TypeTXT, Class: ClassINET, Ttl: 0} - rr1.Txt = []string{"a\"a", "\"", "b"} - rr2, _ := NewRR(rr1.String()) - if rr1.String() != rr2.String() { - // This is not an error, but keep this test. - t.Errorf("these two TXT records should match:\n%s\n%s", rr1.String(), rr2.String()) - } - t.Logf("%s\n%s", rr1.String(), rr2.String()) -} - -func TestTxtLong(t *testing.T) { - rr1 := new(TXT) - rr1.Hdr = RR_Header{Name: ".", Rrtype: TypeTXT, Class: ClassINET, Ttl: 0} - // Make a long txt record, this breaks when sending the packet, - // but not earlier. - rr1.Txt = []string{"start-"} - for i := 0; i < 200; i++ { - rr1.Txt[0] += "start-" - } - str := rr1.String() - if len(str) < len(rr1.Txt[0]) { - t.Error("string conversion should work") - } -} - -// Basically, don't crash. -func TestMalformedPackets(t *testing.T) { - var packets = []string{ - "0021641c0000000100000000000078787878787878787878787303636f6d0000100001", - } - - // com = 63 6f 6d - for _, packet := range packets { - data, _ := hex.DecodeString(packet) - // for _, v := range data { - // t.Log(v) - // } - var msg Msg - msg.Unpack(data) - // println(msg.String()) - } -} - -type algorithm struct { - name uint8 - bits int -} - -func TestNewPrivateKey(t *testing.T) { - if testing.Short() { - t.Skip("skipping test in short mode.") - } - algorithms := []algorithm{ - algorithm{ECDSAP256SHA256, 256}, - algorithm{ECDSAP384SHA384, 384}, - algorithm{RSASHA1, 1024}, - algorithm{RSASHA256, 2048}, - algorithm{DSA, 1024}, - } - - for _, algo := range algorithms { - key := new(DNSKEY) - key.Hdr.Rrtype = TypeDNSKEY - key.Hdr.Name = "miek.nl." - key.Hdr.Class = ClassINET - key.Hdr.Ttl = 14400 - key.Flags = 256 - key.Protocol = 3 - key.Algorithm = algo.name - privkey, err := key.Generate(algo.bits) - if err != nil { - t.Fatal(err) - } - - newPrivKey, err := key.NewPrivateKey(key.PrivateKeyString(privkey)) - if err != nil { - t.Error(key.String()) - t.Error(key.PrivateKeyString(privkey)) - t.Fatal(err) - } - - switch newPrivKey := newPrivKey.(type) { - case *rsa.PrivateKey: - newPrivKey.Precompute() - } - - if !reflect.DeepEqual(privkey, newPrivKey) { - t.Errorf("[%v] Private keys differ:\n%#v\n%#v", AlgorithmToString[algo.name], privkey, newPrivKey) - } - } -} - -// special input test -func TestNewRRSpecial(t *testing.T) { - var ( - rr RR - err error - expect string - ) - - rr, err = NewRR("; comment") - expect = "" - if err != nil { - t.Errorf("unexpected err: %v", err) - } - if rr != nil { - t.Errorf("unexpected result: [%s] != [%s]", rr, expect) - } - - rr, err = NewRR("") - expect = "" - if err != nil { - t.Errorf("unexpected err: %v", err) - } - if rr != nil { - t.Errorf("unexpected result: [%s] != [%s]", rr, expect) - } - - rr, err = NewRR("$ORIGIN foo.") - expect = "" - if err != nil { - t.Errorf("unexpected err: %v", err) - } - if rr != nil { - t.Errorf("unexpected result: [%s] != [%s]", rr, expect) - } - - rr, err = NewRR(" ") - expect = "" - if err != nil { - t.Errorf("unexpected err: %v", err) - } - if rr != nil { - t.Errorf("unexpected result: [%s] != [%s]", rr, expect) - } - - rr, err = NewRR("\n") - expect = "" - if err != nil { - t.Errorf("unexpected err: %v", err) - } - if rr != nil { - t.Errorf("unexpected result: [%s] != [%s]", rr, expect) - } - - rr, err = NewRR("foo. A 1.1.1.1\nbar. A 2.2.2.2") - expect = "foo.\t3600\tIN\tA\t1.1.1.1" - if err != nil { - t.Errorf("unexpected err: %v", err) - } - if rr == nil || rr.String() != expect { - t.Errorf("unexpected result: [%s] != [%s]", rr, expect) - } -} - -func TestPrintfVerbsRdata(t *testing.T) { - x, _ := NewRR("www.miek.nl. IN MX 20 mx.miek.nl.") - if Field(x, 1) != "20" { - t.Errorf("should be 20") - } - if Field(x, 2) != "mx.miek.nl." { - t.Errorf("should be mx.miek.nl.") - } - - x, _ = NewRR("www.miek.nl. IN A 127.0.0.1") - if Field(x, 1) != "127.0.0.1" { - t.Errorf("should be 127.0.0.1") - } - - x, _ = NewRR("www.miek.nl. IN AAAA ::1") - if Field(x, 1) != "::1" { - t.Errorf("should be ::1") - } - - x, _ = NewRR("www.miek.nl. IN NSEC a.miek.nl. A NS SOA MX AAAA") - if Field(x, 1) != "a.miek.nl." { - t.Errorf("should be a.miek.nl.") - } - if Field(x, 2) != "A NS SOA MX AAAA" { - t.Errorf("should be A NS SOA MX AAAA") - } - - x, _ = NewRR("www.miek.nl. IN TXT \"first\" \"second\"") - if Field(x, 1) != "first second" { - t.Errorf("should be first second") - } - if Field(x, 0) != "" { - t.Errorf("should be empty") - } -} - -func TestParseIPSECKEY(t *testing.T) { - tests := []string{ - "38.2.0.192.in-addr.arpa. 7200 IN IPSECKEY ( 10 1 2 192.0.2.38 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ== )", - "38.2.0.192.in-addr.arpa.\t7200\tIN\tIPSECKEY\t10 1 2 192.0.2.38 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==", - - "38.2.0.192.in-addr.arpa. 7200 IN IPSECKEY ( 10 0 2 . AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ== )", - "38.2.0.192.in-addr.arpa.\t7200\tIN\tIPSECKEY\t10 0 2 . AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==", - - "38.2.0.192.in-addr.arpa. 7200 IN IPSECKEY ( 10 1 2 192.0.2.3 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ== )", - "38.2.0.192.in-addr.arpa.\t7200\tIN\tIPSECKEY\t10 1 2 192.0.2.3 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==", - - "38.1.0.192.in-addr.arpa. 7200 IN IPSECKEY ( 10 3 2 mygateway.example.com. AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ== )", - "38.1.0.192.in-addr.arpa.\t7200\tIN\tIPSECKEY\t10 3 2 mygateway.example.com. AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==", - - "0.d.4.0.3.0.e.f.f.f.3.f.0.1.2.0 7200 IN IPSECKEY ( 10 2 2 2001:0DB8:0:8002::2000:1 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ== )", - "0.d.4.0.3.0.e.f.f.f.3.f.0.1.2.0.\t7200\tIN\tIPSECKEY\t10 2 2 2001:db8:0:8002::2000:1 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==", - } - for i := 0; i < len(tests)-1; i++ { - t1 := tests[i] - e1 := tests[i+1] - r, err := NewRR(t1) - if err != nil { - t.Errorf("failed to parse IPSECKEY %v", err) - continue - } - if r.String() != e1 { - t.Errorf("these two IPSECKEY records should match:\n%s\n%s", r.String(), e1) - } - i++ - } -} - -func TestParseTokenOverflow(t *testing.T) { - _, err := NewRR("_443._tcp.example.org. IN TLSA 0 0 0 308205e8308204d0a00302010202100411de8f53b462f6a5a861b712ec6b59300d06092a864886f70d01010b05003070310b300906035504061302555331153013060355040a130c446967694365727420496e6331193017060355040b13107777772e64696769636572742e636f6d312f302d06035504031326446967694365727420534841322048696768204173737572616e636520536572766572204341301e170d3134313130363030303030305a170d3135313131333132303030305a3081a5310b3009060355040613025553311330110603550408130a43616c69666f726e6961311430120603550407130b4c6f7320416e67656c6573313c303a060355040a1333496e7465726e657420436f72706f726174696f6e20666f722041737369676e6564204e616d657320616e64204e756d6265727331133011060355040b130a546563686e6f6c6f6779311830160603550403130f7777772e6578616d706c652e6f726730820122300d06092a864886f70d01010105000382010f003082010a02820101009e663f52a3d18cb67cdfed547408a4e47e4036538988da2798da3b6655f7240d693ed1cb3fe6d6ad3a9e657ff6efa86b83b0cad24e5d31ff2bf70ec3b78b213f1b4bf61bdc669cbbc07d67154128ca92a9b3cbb4213a836fb823ddd4d7cc04918314d25f06086fa9970ba17e357cca9b458c27eb71760ab95e3f9bc898ae89050ae4d09ba2f7e4259d9ff1e072a6971b18355a8b9e53670c3d5dbdbd283f93a764e71b3a4140ca0746090c08510e2e21078d7d07844bf9c03865b531a0bf2ee766bc401f6451c5a1e6f6fb5d5c1d6a97a0abe91ae8b02e89241e07353909ccd5b41c46de207c06801e08f20713603827f2ae3e68cf15ef881d7e0608f70742e30203010001a382024630820242301f0603551d230418301680145168ff90af0207753cccd9656462a212b859723b301d0603551d0e04160414b000a7f422e9b1ce216117c4c46e7164c8e60c553081810603551d11047a3078820f7777772e6578616d706c652e6f7267820b6578616d706c652e636f6d820b6578616d706c652e656475820b6578616d706c652e6e6574820b6578616d706c652e6f7267820f7777772e6578616d706c652e636f6d820f7777772e6578616d706c652e656475820f7777772e6578616d706c652e6e6574300e0603551d0f0101ff0404030205a0301d0603551d250416301406082b0601050507030106082b0601050507030230750603551d1f046e306c3034a032a030862e687474703a2f2f63726c332e64696769636572742e636f6d2f736861322d68612d7365727665722d67332e63726c3034a032a030862e687474703a2f2f63726c342e64696769636572742e636f6d2f736861322d68612d7365727665722d67332e63726c30420603551d20043b3039303706096086480186fd6c0101302a302806082b06010505070201161c68747470733a2f2f7777772e64696769636572742e636f6d2f43505330818306082b0601050507010104773075302406082b060105050730018618687474703a2f2f6f6373702e64696769636572742e636f6d304d06082b060105050730028641687474703a2f2f636163657274732e64696769636572742e636f6d2f446967694365727453484132486967684173737572616e636553657276657243412e637274300c0603551d130101ff04023000300d06092a864886f70d01010b050003820101005eac2124dedb3978a86ff3608406acb542d3cb54cb83facd63aec88144d6a1bf15dbf1f215c4a73e241e582365cba9ea50dd306541653b3513af1a0756c1b2720e8d112b34fb67181efad9c4609bdc670fb025fa6e6d42188161b026cf3089a08369c2f3609fc84bcc3479140c1922ede430ca8dbac2b2a3cdacb305ba15dc7361c4c3a5e6daa99cb446cb221b28078a7a944efba70d96f31ac143d959bccd2fd50e30c325ea2624fb6b6dbe9344dbcf133bfbd5b4e892d635dbf31596451672c6b65ba5ac9b3cddea92b35dab1065cae3c8cb6bb450a62ea2f72ea7c6bdc7b65fa09b012392543734083c7687d243f8d0375304d99ccd2e148966a8637a6797") - if err == nil { - t.Fatalf("token overflow should return an error") - } - t.Logf("err: %s\n", err) -} - -func TestParseTLSA(t *testing.T) { - lt := []string{ - "_443._tcp.example.org.\t3600\tIN\tTLSA\t1 1 1 c22be239f483c08957bc106219cc2d3ac1a308dfbbdd0a365f17b9351234cf00", - "_443._tcp.example.org.\t3600\tIN\tTLSA\t2 1 2 4e85f45179e9cd6e0e68e2eb5be2e85ec9b92d91c609caf3ef0315213e3f92ece92c38397a607214de95c7fadc0ad0f1c604a469a0387959745032c0d51492f3", - "_443._tcp.example.org.\t3600\tIN\tTLSA\t3 0 2 69ec8d2277360b215d0cd956b0e2747108dff34b27d461a41c800629e38ee6c2d1230cc9e8e36711330adc6766e6ff7c5fbb37f106f248337c1a20ad682888d2", - } - for _, o := range lt { - rr, err := NewRR(o) - if err != nil { - t.Error("failed to parse RR: ", err) - continue - } - if rr.String() != o { - t.Errorf("`%s' should be equal to\n`%s', but is `%s'", o, o, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} - -func TestParseSSHFP(t *testing.T) { - lt := []string{ - "test.example.org.\t300\tSSHFP\t1 2 (\n" + - "\t\t\t\t\tBC6533CDC95A79078A39A56EA7635984ED655318ADA9\n" + - "\t\t\t\t\tB6159E30723665DA95BB )", - "test.example.org.\t300\tSSHFP\t1 2 ( BC6533CDC 95A79078A39A56EA7635984ED655318AD A9B6159E3072366 5DA95BB )", - } - result := "test.example.org.\t300\tIN\tSSHFP\t1 2 BC6533CDC95A79078A39A56EA7635984ED655318ADA9B6159E30723665DA95BB" - for _, o := range lt { - rr, err := NewRR(o) - if err != nil { - t.Error("failed to parse RR: ", err) - continue - } - if rr.String() != result { - t.Errorf("`%s' should be equal to\n\n`%s', but is \n`%s'", o, result, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} - -func TestParseHINFO(t *testing.T) { - dt := map[string]string{ - "example.net. HINFO A B": "example.net. 3600 IN HINFO \"A\" \"B\"", - "example.net. HINFO \"A\" \"B\"": "example.net. 3600 IN HINFO \"A\" \"B\"", - "example.net. HINFO A B C D E F": "example.net. 3600 IN HINFO \"A\" \"B C D E F\"", - "example.net. HINFO AB": "example.net. 3600 IN HINFO \"AB\" \"\"", - // "example.net. HINFO PC-Intel-700mhz \"Redhat Linux 7.1\"": "example.net. 3600 IN HINFO \"PC-Intel-700mhz\" \"Redhat Linux 7.1\"", - // This one is recommended in Pro Bind book http://www.zytrax.com/books/dns/ch8/hinfo.html - // but effectively, even Bind would replace it to correctly formed text when you AXFR - // TODO: remove this set of comments or figure support for quoted/unquoted combinations in endingToTxtSlice function - } - for i, o := range dt { - rr, err := NewRR(i) - if err != nil { - t.Error("failed to parse RR: ", err) - continue - } - if rr.String() != o { - t.Errorf("`%s' should be equal to\n`%s', but is `%s'", i, o, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} - -func TestParseCAA(t *testing.T) { - lt := map[string]string{ - "example.net. CAA 0 issue \"symantec.com\"": "example.net.\t3600\tIN\tCAA\t0 issue \"symantec.com\"", - "example.net. CAA 0 issuewild \"symantec.com; stuff\"": "example.net.\t3600\tIN\tCAA\t0 issuewild \"symantec.com; stuff\"", - "example.net. CAA 128 tbs \"critical\"": "example.net.\t3600\tIN\tCAA\t128 tbs \"critical\"", - "example.net. CAA 2 auth \"0>09\\006\\010+\\006\\001\\004\\001\\214y\\002\\003\\001\\006\\009`\\134H\\001e\\003\\004\\002\\001\\004 y\\209\\012\\221r\\220\\156Q\\218\\150\\150{\\166\\245:\\231\\182%\\157:\\133\\179}\\1923r\\238\\151\\255\\128q\\145\\002\\001\\000\"": "example.net.\t3600\tIN\tCAA\t2 auth \"0>09\\006\\010+\\006\\001\\004\\001\\214y\\002\\003\\001\\006\\009`\\134H\\001e\\003\\004\\002\\001\\004 y\\209\\012\\221r\\220\\156Q\\218\\150\\150{\\166\\245:\\231\\182%\\157:\\133\\179}\\1923r\\238\\151\\255\\128q\\145\\002\\001\\000\"", - "example.net. TYPE257 0 issue \"symantec.com\"": "example.net.\t3600\tIN\tCAA\t0 issue \"symantec.com\"", - } - for i, o := range lt { - rr, err := NewRR(i) - if err != nil { - t.Error("failed to parse RR: ", err) - continue - } - if rr.String() != o { - t.Errorf("`%s' should be equal to\n`%s', but is `%s'", i, o, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} - -func TestPackCAA(t *testing.T) { - m := new(Msg) - record := new(CAA) - record.Hdr = RR_Header{Name: "example.com.", Rrtype: TypeCAA, Class: ClassINET, Ttl: 0} - record.Tag = "issue" - record.Value = "symantec.com" - record.Flag = 1 - - m.Answer = append(m.Answer, record) - bytes, err := m.Pack() - if err != nil { - t.Fatalf("failed to pack msg: %v", err) - } - if err := m.Unpack(bytes); err != nil { - t.Fatalf("failed to unpack msg: %v", err) - } - if len(m.Answer) != 1 { - t.Fatalf("incorrect number of answers unpacked") - } - rr := m.Answer[0].(*CAA) - if rr.Tag != "issue" { - t.Fatalf("invalid tag for unpacked answer") - } else if rr.Value != "symantec.com" { - t.Fatalf("invalid value for unpacked answer") - } else if rr.Flag != 1 { - t.Fatalf("invalid flag for unpacked answer") - } -} - -func TestParseURI(t *testing.T) { - lt := map[string]string{ - "_http._tcp. IN URI 10 1 \"http://www.example.com/path\"": "_http._tcp.\t3600\tIN\tURI\t10 1 \"http://www.example.com/path\"", - "_http._tcp. IN URI 10 1 \"\"": "_http._tcp.\t3600\tIN\tURI\t10 1 \"\"", - } - for i, o := range lt { - rr, err := NewRR(i) - if err != nil { - t.Error("failed to parse RR: ", err) - continue - } - if rr.String() != o { - t.Errorf("`%s' should be equal to\n`%s', but is `%s'", i, o, rr.String()) - } else { - t.Logf("RR is OK: `%s'", rr.String()) - } - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/privaterr.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/privaterr.go deleted file mode 100644 index c78f8859..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/privaterr.go +++ /dev/null @@ -1,117 +0,0 @@ -package dns - -import ( - "fmt" - "strings" -) - -// PrivateRdata is an interface used for implementing "Private Use" RR types, see -// RFC 6895. This allows one to experiment with new RR types, without requesting an -// official type code. Also see dns.PrivateHandle and dns.PrivateHandleRemove. -type PrivateRdata interface { - // String returns the text presentaton of the Rdata of the Private RR. - String() string - // Parse parses the Rdata of the private RR. - Parse([]string) error - // Pack is used when packing a private RR into a buffer. - Pack([]byte) (int, error) - // Unpack is used when unpacking a private RR from a buffer. - // TODO(miek): diff. signature than Pack, see edns0.go for instance. - Unpack([]byte) (int, error) - // Copy copies the Rdata. - Copy(PrivateRdata) error - // Len returns the length in octets of the Rdata. - Len() int -} - -// PrivateRR represents an RR that uses a PrivateRdata user-defined type. -// It mocks normal RRs and implements dns.RR interface. -type PrivateRR struct { - Hdr RR_Header - Data PrivateRdata -} - -func mkPrivateRR(rrtype uint16) *PrivateRR { - // Panics if RR is not an instance of PrivateRR. - rrfunc, ok := TypeToRR[rrtype] - if !ok { - panic(fmt.Sprintf("dns: invalid operation with Private RR type %d", rrtype)) - } - - anyrr := rrfunc() - switch rr := anyrr.(type) { - case *PrivateRR: - return rr - } - panic(fmt.Sprintf("dns: RR is not a PrivateRR, TypeToRR[%d] generator returned %T", rrtype, anyrr)) -} - -// Header return the RR header of r. -func (r *PrivateRR) Header() *RR_Header { return &r.Hdr } - -func (r *PrivateRR) String() string { return r.Hdr.String() + r.Data.String() } - -// Private len and copy parts to satisfy RR interface. -func (r *PrivateRR) len() int { return r.Hdr.len() + r.Data.Len() } -func (r *PrivateRR) copy() RR { - // make new RR like this: - rr := mkPrivateRR(r.Hdr.Rrtype) - newh := r.Hdr.copyHeader() - rr.Hdr = *newh - - err := r.Data.Copy(rr.Data) - if err != nil { - panic("dns: got value that could not be used to copy Private rdata") - } - return rr -} - -// PrivateHandle registers a private resource record type. It requires -// string and numeric representation of private RR type and generator function as argument. -func PrivateHandle(rtypestr string, rtype uint16, generator func() PrivateRdata) { - rtypestr = strings.ToUpper(rtypestr) - - TypeToRR[rtype] = func() RR { return &PrivateRR{RR_Header{}, generator()} } - TypeToString[rtype] = rtypestr - StringToType[rtypestr] = rtype - - setPrivateRR := func(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := mkPrivateRR(h.Rrtype) - rr.Hdr = h - - var l lex - text := make([]string, 0, 2) // could be 0..N elements, median is probably 1 - FETCH: - for { - // TODO(miek): we could also be returning _QUOTE, this might or might not - // be an issue (basically parsing TXT becomes hard) - switch l = <-c; l.value { - case zNewline, zEOF: - break FETCH - case zString: - text = append(text, l.token) - } - } - - err := rr.Data.Parse(text) - if err != nil { - return nil, &ParseError{f, err.Error(), l}, "" - } - - return rr, nil, "" - } - - typeToparserFunc[rtype] = parserFunc{setPrivateRR, true} -} - -// PrivateHandleRemove removes defenitions required to support private RR type. -func PrivateHandleRemove(rtype uint16) { - rtypestr, ok := TypeToString[rtype] - if ok { - delete(TypeToRR, rtype) - delete(TypeToString, rtype) - delete(typeToparserFunc, rtype) - delete(StringToType, rtypestr) - } - return -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/privaterr_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/privaterr_test.go deleted file mode 100644 index d3722c65..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/privaterr_test.go +++ /dev/null @@ -1,170 +0,0 @@ -package dns_test - -import ( - "strings" - "testing" - - "gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns" -) - -const TypeISBN uint16 = 0x0F01 - -// A crazy new RR type :) -type ISBN struct { - x string // rdata with 10 or 13 numbers, dashes or spaces allowed -} - -func NewISBN() dns.PrivateRdata { return &ISBN{""} } - -func (rd *ISBN) Len() int { return len([]byte(rd.x)) } -func (rd *ISBN) String() string { return rd.x } - -func (rd *ISBN) Parse(txt []string) error { - rd.x = strings.TrimSpace(strings.Join(txt, " ")) - return nil -} - -func (rd *ISBN) Pack(buf []byte) (int, error) { - b := []byte(rd.x) - n := copy(buf, b) - if n != len(b) { - return n, dns.ErrBuf - } - return n, nil -} - -func (rd *ISBN) Unpack(buf []byte) (int, error) { - rd.x = string(buf) - return len(buf), nil -} - -func (rd *ISBN) Copy(dest dns.PrivateRdata) error { - isbn, ok := dest.(*ISBN) - if !ok { - return dns.ErrRdata - } - isbn.x = rd.x - return nil -} - -var testrecord = strings.Join([]string{"example.org.", "3600", "IN", "ISBN", "12-3 456789-0-123"}, "\t") - -func TestPrivateText(t *testing.T) { - dns.PrivateHandle("ISBN", TypeISBN, NewISBN) - defer dns.PrivateHandleRemove(TypeISBN) - - rr, err := dns.NewRR(testrecord) - if err != nil { - t.Fatal(err) - } - if rr.String() != testrecord { - t.Errorf("record string representation did not match original %#v != %#v", rr.String(), testrecord) - } else { - t.Log(rr.String()) - } -} - -func TestPrivateByteSlice(t *testing.T) { - dns.PrivateHandle("ISBN", TypeISBN, NewISBN) - defer dns.PrivateHandleRemove(TypeISBN) - - rr, err := dns.NewRR(testrecord) - if err != nil { - t.Fatal(err) - } - - buf := make([]byte, 100) - off, err := dns.PackRR(rr, buf, 0, nil, false) - if err != nil { - t.Errorf("got error packing ISBN: %v", err) - } - - custrr := rr.(*dns.PrivateRR) - if ln := custrr.Data.Len() + len(custrr.Header().Name) + 11; ln != off { - t.Errorf("offset is not matching to length of Private RR: %d!=%d", off, ln) - } - - rr1, off1, err := dns.UnpackRR(buf[:off], 0) - if err != nil { - t.Errorf("got error unpacking ISBN: %v", err) - } - - if off1 != off { - t.Errorf("Offset after unpacking differs: %d != %d", off1, off) - } - - if rr1.String() != testrecord { - t.Errorf("Record string representation did not match original %#v != %#v", rr1.String(), testrecord) - } else { - t.Log(rr1.String()) - } -} - -const TypeVERSION uint16 = 0x0F02 - -type VERSION struct { - x string -} - -func NewVersion() dns.PrivateRdata { return &VERSION{""} } - -func (rd *VERSION) String() string { return rd.x } -func (rd *VERSION) Parse(txt []string) error { - rd.x = strings.TrimSpace(strings.Join(txt, " ")) - return nil -} - -func (rd *VERSION) Pack(buf []byte) (int, error) { - b := []byte(rd.x) - n := copy(buf, b) - if n != len(b) { - return n, dns.ErrBuf - } - return n, nil -} - -func (rd *VERSION) Unpack(buf []byte) (int, error) { - rd.x = string(buf) - return len(buf), nil -} - -func (rd *VERSION) Copy(dest dns.PrivateRdata) error { - isbn, ok := dest.(*VERSION) - if !ok { - return dns.ErrRdata - } - isbn.x = rd.x - return nil -} - -func (rd *VERSION) Len() int { - return len([]byte(rd.x)) -} - -var smallzone = `$ORIGIN example.org. -@ SOA sns.dns.icann.org. noc.dns.icann.org. ( - 2014091518 7200 3600 1209600 3600 -) - A 1.2.3.4 -ok ISBN 1231-92110-12 -go VERSION ( - 1.3.1 ; comment -) -www ISBN 1231-92110-16 -* CNAME @ -` - -func TestPrivateZoneParser(t *testing.T) { - dns.PrivateHandle("ISBN", TypeISBN, NewISBN) - dns.PrivateHandle("VERSION", TypeVERSION, NewVersion) - defer dns.PrivateHandleRemove(TypeISBN) - defer dns.PrivateHandleRemove(TypeVERSION) - - r := strings.NewReader(smallzone) - for x := range dns.ParseZone(r, ".", "") { - if err := x.Error; err != nil { - t.Fatal(err) - } - t.Log(x.RR) - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/rawmsg.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/rawmsg.go deleted file mode 100644 index f138b776..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/rawmsg.go +++ /dev/null @@ -1,95 +0,0 @@ -package dns - -// These raw* functions do not use reflection, they directly set the values -// in the buffer. There are faster than their reflection counterparts. - -// RawSetId sets the message id in buf. -func rawSetId(msg []byte, i uint16) bool { - if len(msg) < 2 { - return false - } - msg[0], msg[1] = packUint16(i) - return true -} - -// rawSetQuestionLen sets the length of the question section. -func rawSetQuestionLen(msg []byte, i uint16) bool { - if len(msg) < 6 { - return false - } - msg[4], msg[5] = packUint16(i) - return true -} - -// rawSetAnswerLen sets the lenght of the answer section. -func rawSetAnswerLen(msg []byte, i uint16) bool { - if len(msg) < 8 { - return false - } - msg[6], msg[7] = packUint16(i) - return true -} - -// rawSetsNsLen sets the lenght of the authority section. -func rawSetNsLen(msg []byte, i uint16) bool { - if len(msg) < 10 { - return false - } - msg[8], msg[9] = packUint16(i) - return true -} - -// rawSetExtraLen sets the lenght of the additional section. -func rawSetExtraLen(msg []byte, i uint16) bool { - if len(msg) < 12 { - return false - } - msg[10], msg[11] = packUint16(i) - return true -} - -// rawSetRdlength sets the rdlength in the header of -// the RR. The offset 'off' must be positioned at the -// start of the header of the RR, 'end' must be the -// end of the RR. -func rawSetRdlength(msg []byte, off, end int) bool { - l := len(msg) -Loop: - for { - if off+1 > l { - return false - } - c := int(msg[off]) - off++ - switch c & 0xC0 { - case 0x00: - if c == 0x00 { - // End of the domainname - break Loop - } - if off+c > l { - return false - } - off += c - - case 0xC0: - // pointer, next byte included, ends domainname - off++ - break Loop - } - } - // The domainname has been seen, we at the start of the fixed part in the header. - // Type is 2 bytes, class is 2 bytes, ttl 4 and then 2 bytes for the length. - off += 2 + 2 + 4 - if off+2 > l { - return false - } - //off+1 is the end of the header, 'end' is the end of the rr - //so 'end' - 'off+2' is the length of the rdata - rdatalen := end - (off + 2) - if rdatalen > 0xFFFF { - return false - } - msg[off], msg[off+1] = packUint16(uint16(rdatalen)) - return true -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/remote_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/remote_test.go deleted file mode 100644 index 4cf701fe..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/remote_test.go +++ /dev/null @@ -1,19 +0,0 @@ -package dns - -import "testing" - -const LinodeAddr = "176.58.119.54:53" - -func TestClientRemote(t *testing.T) { - m := new(Msg) - m.SetQuestion("go.dns.miek.nl.", TypeTXT) - - c := new(Client) - r, _, err := c.Exchange(m, LinodeAddr) - if err != nil { - t.Errorf("failed to exchange: %v", err) - } - if r != nil && r.Rcode != RcodeSuccess { - t.Errorf("failed to get an valid answer\n%v", r) - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sanitize.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sanitize.go deleted file mode 100644 index b489f3f0..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sanitize.go +++ /dev/null @@ -1,84 +0,0 @@ -package dns - -// Dedup removes identical RRs from rrs. It preserves the original ordering. -// The lowest TTL of any duplicates is used in the remaining one. Dedup modifies -// rrs. -// m is used to store the RRs temporay. If it is nil a new map will be allocated. -func Dedup(rrs []RR, m map[string]RR) []RR { - if m == nil { - m = make(map[string]RR) - } - // Save the keys, so we don't have to call normalizedString twice. - keys := make([]*string, 0, len(rrs)) - - for _, r := range rrs { - key := normalizedString(r) - keys = append(keys, &key) - if _, ok := m[key]; ok { - // Shortest TTL wins. - if m[key].Header().Ttl > r.Header().Ttl { - m[key].Header().Ttl = r.Header().Ttl - } - continue - } - - m[key] = r - } - // If the length of the result map equals the amount of RRs we got, - // it means they were all different. We can then just return the original rrset. - if len(m) == len(rrs) { - return rrs - } - - j := 0 - for i, r := range rrs { - // If keys[i] lives in the map, we should copy and remove it. - if _, ok := m[*keys[i]]; ok { - delete(m, *keys[i]) - rrs[j] = r - j++ - } - - if len(m) == 0 { - break - } - } - - return rrs[:j] -} - -// normalizedString returns a normalized string from r. The TTL -// is removed and the domain name is lowercased. We go from this: -// DomainName<TAB>TTL<TAB>CLASS<TAB>TYPE<TAB>RDATA to: -// lowercasename<TAB>CLASS<TAB>TYPE... -func normalizedString(r RR) string { - // A string Go DNS makes has: domainname<TAB>TTL<TAB>... - b := []byte(r.String()) - - // find the first non-escaped tab, then another, so we capture where the TTL lives. - esc := false - ttlStart, ttlEnd := 0, 0 - for i := 0; i < len(b) && ttlEnd == 0; i++ { - switch { - case b[i] == '\\': - esc = !esc - case b[i] == '\t' && !esc: - if ttlStart == 0 { - ttlStart = i - continue - } - if ttlEnd == 0 { - ttlEnd = i - } - case b[i] >= 'A' && b[i] <= 'Z' && !esc: - b[i] += 32 - default: - esc = false - } - } - - // remove TTL. - copy(b[ttlStart:], b[ttlEnd:]) - cut := ttlEnd - ttlStart - return string(b[:len(b)-cut]) -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sanitize_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sanitize_test.go deleted file mode 100644 index 79335727..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sanitize_test.go +++ /dev/null @@ -1,85 +0,0 @@ -package dns - -import "testing" - -func TestDedup(t *testing.T) { - // make it []string - testcases := map[[3]RR][]string{ - [...]RR{ - newRR(t, "mIek.nl. IN A 127.0.0.1"), - newRR(t, "mieK.nl. IN A 127.0.0.1"), - newRR(t, "miek.Nl. IN A 127.0.0.1"), - }: []string{"mIek.nl.\t3600\tIN\tA\t127.0.0.1"}, - [...]RR{ - newRR(t, "miEk.nl. 2000 IN A 127.0.0.1"), - newRR(t, "mieK.Nl. 1000 IN A 127.0.0.1"), - newRR(t, "Miek.nL. 500 IN A 127.0.0.1"), - }: []string{"miEk.nl.\t500\tIN\tA\t127.0.0.1"}, - [...]RR{ - newRR(t, "miek.nl. IN A 127.0.0.1"), - newRR(t, "miek.nl. CH A 127.0.0.1"), - newRR(t, "miek.nl. IN A 127.0.0.1"), - }: []string{"miek.nl.\t3600\tIN\tA\t127.0.0.1", - "miek.nl.\t3600\tCH\tA\t127.0.0.1", - }, - [...]RR{ - newRR(t, "miek.nl. CH A 127.0.0.1"), - newRR(t, "miek.nl. IN A 127.0.0.1"), - newRR(t, "miek.de. IN A 127.0.0.1"), - }: []string{"miek.nl.\t3600\tCH\tA\t127.0.0.1", - "miek.nl.\t3600\tIN\tA\t127.0.0.1", - "miek.de.\t3600\tIN\tA\t127.0.0.1", - }, - [...]RR{ - newRR(t, "miek.de. IN A 127.0.0.1"), - newRR(t, "miek.nl. 200 IN A 127.0.0.1"), - newRR(t, "miek.nl. 300 IN A 127.0.0.1"), - }: []string{"miek.de.\t3600\tIN\tA\t127.0.0.1", - "miek.nl.\t200\tIN\tA\t127.0.0.1", - }, - } - - for rr, expected := range testcases { - out := Dedup([]RR{rr[0], rr[1], rr[2]}, nil) - for i, o := range out { - if o.String() != expected[i] { - t.Fatalf("expected %v, got %v", expected[i], o.String()) - } - } - } -} - -func BenchmarkDedup(b *testing.B) { - rrs := []RR{ - newRR(nil, "miEk.nl. 2000 IN A 127.0.0.1"), - newRR(nil, "mieK.Nl. 1000 IN A 127.0.0.1"), - newRR(nil, "Miek.nL. 500 IN A 127.0.0.1"), - } - m := make(map[string]RR) - for i := 0; i < b.N; i++ { - Dedup(rrs,m ) - } -} - -func TestNormalizedString(t *testing.T) { - tests := map[RR]string{ - newRR(t, "mIEk.Nl. 3600 IN A 127.0.0.1"): "miek.nl.\tIN\tA\t127.0.0.1", - newRR(t, "m\\ iek.nL. 3600 IN A 127.0.0.1"): "m\\ iek.nl.\tIN\tA\t127.0.0.1", - newRR(t, "m\\\tIeK.nl. 3600 in A 127.0.0.1"): "m\\tiek.nl.\tIN\tA\t127.0.0.1", - } - for tc, expected := range tests { - n := normalizedString(tc) - if n != expected { - t.Logf("expected %s, got %s", expected, n) - t.Fail() - } - } -} - -func newRR(t *testing.T, s string) RR { - r, e := NewRR(s) - if e != nil { - t.Logf("newRR: %s", e) - } - return r -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/scanner.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/scanner.go deleted file mode 100644 index c29bc2f3..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/scanner.go +++ /dev/null @@ -1,43 +0,0 @@ -package dns - -// Implement a simple scanner, return a byte stream from an io reader. - -import ( - "bufio" - "io" - "text/scanner" -) - -type scan struct { - src *bufio.Reader - position scanner.Position - eof bool // Have we just seen a eof -} - -func scanInit(r io.Reader) *scan { - s := new(scan) - s.src = bufio.NewReader(r) - s.position.Line = 1 - return s -} - -// tokenText returns the next byte from the input -func (s *scan) tokenText() (byte, error) { - c, err := s.src.ReadByte() - if err != nil { - return c, err - } - // delay the newline handling until the next token is delivered, - // fixes off-by-one errors when reporting a parse error. - if s.eof == true { - s.position.Line++ - s.position.Column = 0 - s.eof = false - } - if c == '\n' { - s.eof = true - return c, nil - } - s.position.Column++ - return c, nil -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/server.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/server.go deleted file mode 100644 index b2888f38..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/server.go +++ /dev/null @@ -1,687 +0,0 @@ -// DNS server implementation. - -package dns - -import ( - "bytes" - "io" - "net" - "sync" - "time" -) - -// Maximum number of TCP queries before we close the socket. -const maxTCPQueries = 128 - -// Handler is implemented by any value that implements ServeDNS. -type Handler interface { - ServeDNS(w ResponseWriter, r *Msg) -} - -// A ResponseWriter interface is used by an DNS handler to -// construct an DNS response. -type ResponseWriter interface { - // LocalAddr returns the net.Addr of the server - LocalAddr() net.Addr - // RemoteAddr returns the net.Addr of the client that sent the current request. - RemoteAddr() net.Addr - // WriteMsg writes a reply back to the client. - WriteMsg(*Msg) error - // Write writes a raw buffer back to the client. - Write([]byte) (int, error) - // Close closes the connection. - Close() error - // TsigStatus returns the status of the Tsig. - TsigStatus() error - // TsigTimersOnly sets the tsig timers only boolean. - TsigTimersOnly(bool) - // Hijack lets the caller take over the connection. - // After a call to Hijack(), the DNS package will not do anything with the connection. - Hijack() -} - -type response struct { - hijacked bool // connection has been hijacked by handler - tsigStatus error - tsigTimersOnly bool - tsigRequestMAC string - tsigSecret map[string]string // the tsig secrets - udp *net.UDPConn // i/o connection if UDP was used - tcp *net.TCPConn // i/o connection if TCP was used - udpSession *SessionUDP // oob data to get egress interface right - remoteAddr net.Addr // address of the client - writer Writer // writer to output the raw DNS bits -} - -// ServeMux is an DNS request multiplexer. It matches the -// zone name of each incoming request against a list of -// registered patterns add calls the handler for the pattern -// that most closely matches the zone name. ServeMux is DNSSEC aware, meaning -// that queries for the DS record are redirected to the parent zone (if that -// is also registered), otherwise the child gets the query. -// ServeMux is also safe for concurrent access from multiple goroutines. -type ServeMux struct { - z map[string]Handler - m *sync.RWMutex -} - -// NewServeMux allocates and returns a new ServeMux. -func NewServeMux() *ServeMux { return &ServeMux{z: make(map[string]Handler), m: new(sync.RWMutex)} } - -// DefaultServeMux is the default ServeMux used by Serve. -var DefaultServeMux = NewServeMux() - -// The HandlerFunc type is an adapter to allow the use of -// ordinary functions as DNS handlers. If f is a function -// with the appropriate signature, HandlerFunc(f) is a -// Handler object that calls f. -type HandlerFunc func(ResponseWriter, *Msg) - -// ServeDNS calls f(w, r). -func (f HandlerFunc) ServeDNS(w ResponseWriter, r *Msg) { - f(w, r) -} - -// HandleFailed returns a HandlerFunc that returns SERVFAIL for every request it gets. -func HandleFailed(w ResponseWriter, r *Msg) { - m := new(Msg) - m.SetRcode(r, RcodeServerFailure) - // does not matter if this write fails - w.WriteMsg(m) -} - -func failedHandler() Handler { return HandlerFunc(HandleFailed) } - -// ListenAndServe Starts a server on addresss and network speficied. Invoke handler -// for incoming queries. -func ListenAndServe(addr string, network string, handler Handler) error { - server := &Server{Addr: addr, Net: network, Handler: handler} - return server.ListenAndServe() -} - -// ActivateAndServe activates a server with a listener from systemd, -// l and p should not both be non-nil. -// If both l and p are not nil only p will be used. -// Invoke handler for incoming queries. -func ActivateAndServe(l net.Listener, p net.PacketConn, handler Handler) error { - server := &Server{Listener: l, PacketConn: p, Handler: handler} - return server.ActivateAndServe() -} - -func (mux *ServeMux) match(q string, t uint16) Handler { - mux.m.RLock() - defer mux.m.RUnlock() - var handler Handler - b := make([]byte, len(q)) // worst case, one label of length q - off := 0 - end := false - for { - l := len(q[off:]) - for i := 0; i < l; i++ { - b[i] = q[off+i] - if b[i] >= 'A' && b[i] <= 'Z' { - b[i] |= ('a' - 'A') - } - } - if h, ok := mux.z[string(b[:l])]; ok { // 'causes garbage, might want to change the map key - if t != TypeDS { - return h - } - // Continue for DS to see if we have a parent too, if so delegeate to the parent - handler = h - } - off, end = NextLabel(q, off) - if end { - break - } - } - // Wildcard match, if we have found nothing try the root zone as a last resort. - if h, ok := mux.z["."]; ok { - return h - } - return handler -} - -// Handle adds a handler to the ServeMux for pattern. -func (mux *ServeMux) Handle(pattern string, handler Handler) { - if pattern == "" { - panic("dns: invalid pattern " + pattern) - } - mux.m.Lock() - mux.z[Fqdn(pattern)] = handler - mux.m.Unlock() -} - -// HandleFunc adds a handler function to the ServeMux for pattern. -func (mux *ServeMux) HandleFunc(pattern string, handler func(ResponseWriter, *Msg)) { - mux.Handle(pattern, HandlerFunc(handler)) -} - -// HandleRemove deregistrars the handler specific for pattern from the ServeMux. -func (mux *ServeMux) HandleRemove(pattern string) { - if pattern == "" { - panic("dns: invalid pattern " + pattern) - } - mux.m.Lock() - delete(mux.z, Fqdn(pattern)) - mux.m.Unlock() -} - -// ServeDNS dispatches the request to the handler whose -// pattern most closely matches the request message. If DefaultServeMux -// is used the correct thing for DS queries is done: a possible parent -// is sought. -// If no handler is found a standard SERVFAIL message is returned -// If the request message does not have exactly one question in the -// question section a SERVFAIL is returned, unlesss Unsafe is true. -func (mux *ServeMux) ServeDNS(w ResponseWriter, request *Msg) { - var h Handler - if len(request.Question) < 1 { // allow more than one question - h = failedHandler() - } else { - if h = mux.match(request.Question[0].Name, request.Question[0].Qtype); h == nil { - h = failedHandler() - } - } - h.ServeDNS(w, request) -} - -// Handle registers the handler with the given pattern -// in the DefaultServeMux. The documentation for -// ServeMux explains how patterns are matched. -func Handle(pattern string, handler Handler) { DefaultServeMux.Handle(pattern, handler) } - -// HandleRemove deregisters the handle with the given pattern -// in the DefaultServeMux. -func HandleRemove(pattern string) { DefaultServeMux.HandleRemove(pattern) } - -// HandleFunc registers the handler function with the given pattern -// in the DefaultServeMux. -func HandleFunc(pattern string, handler func(ResponseWriter, *Msg)) { - DefaultServeMux.HandleFunc(pattern, handler) -} - -// Writer writes raw DNS messages; each call to Write should send an entire message. -type Writer interface { - io.Writer -} - -// Reader reads raw DNS messages; each call to ReadTCP or ReadUDP should return an entire message. -type Reader interface { - // ReadTCP reads a raw message from a TCP connection. Implementations may alter - // connection properties, for example the read-deadline. - ReadTCP(conn *net.TCPConn, timeout time.Duration) ([]byte, error) - // ReadUDP reads a raw message from a UDP connection. Implementations may alter - // connection properties, for example the read-deadline. - ReadUDP(conn *net.UDPConn, timeout time.Duration) ([]byte, *SessionUDP, error) -} - -// defaultReader is an adapter for the Server struct that implements the Reader interface -// using the readTCP and readUDP func of the embedded Server. -type defaultReader struct { - *Server -} - -func (dr *defaultReader) ReadTCP(conn *net.TCPConn, timeout time.Duration) ([]byte, error) { - return dr.readTCP(conn, timeout) -} - -func (dr *defaultReader) ReadUDP(conn *net.UDPConn, timeout time.Duration) ([]byte, *SessionUDP, error) { - return dr.readUDP(conn, timeout) -} - -// DecorateReader is a decorator hook for extending or supplanting the functionality of a Reader. -// Implementations should never return a nil Reader. -type DecorateReader func(Reader) Reader - -// DecorateWriter is a decorator hook for extending or supplanting the functionality of a Writer. -// Implementations should never return a nil Writer. -type DecorateWriter func(Writer) Writer - -// A Server defines parameters for running an DNS server. -type Server struct { - // Address to listen on, ":dns" if empty. - Addr string - // if "tcp" it will invoke a TCP listener, otherwise an UDP one. - Net string - // TCP Listener to use, this is to aid in systemd's socket activation. - Listener net.Listener - // UDP "Listener" to use, this is to aid in systemd's socket activation. - PacketConn net.PacketConn - // Handler to invoke, dns.DefaultServeMux if nil. - Handler Handler - // Default buffer size to use to read incoming UDP messages. If not set - // it defaults to MinMsgSize (512 B). - UDPSize int - // The net.Conn.SetReadTimeout value for new connections, defaults to 2 * time.Second. - ReadTimeout time.Duration - // The net.Conn.SetWriteTimeout value for new connections, defaults to 2 * time.Second. - WriteTimeout time.Duration - // TCP idle timeout for multiple queries, if nil, defaults to 8 * time.Second (RFC 5966). - IdleTimeout func() time.Duration - // Secret(s) for Tsig map[<zonename>]<base64 secret>. - TsigSecret map[string]string - // Unsafe instructs the server to disregard any sanity checks and directly hand the message to - // the handler. It will specfically not check if the query has the QR bit not set. - Unsafe bool - // If NotifyStartedFunc is set it is called once the server has started listening. - NotifyStartedFunc func() - // DecorateReader is optional, allows customization of the process that reads raw DNS messages. - DecorateReader DecorateReader - // DecorateWriter is optional, allows customization of the process that writes raw DNS messages. - DecorateWriter DecorateWriter - - // Graceful shutdown handling - - inFlight sync.WaitGroup - - lock sync.RWMutex - started bool -} - -// ListenAndServe starts a nameserver on the configured address in *Server. -func (srv *Server) ListenAndServe() error { - srv.lock.Lock() - defer srv.lock.Unlock() - if srv.started { - return &Error{err: "server already started"} - } - addr := srv.Addr - if addr == "" { - addr = ":domain" - } - if srv.UDPSize == 0 { - srv.UDPSize = MinMsgSize - } - switch srv.Net { - case "tcp", "tcp4", "tcp6": - a, e := net.ResolveTCPAddr(srv.Net, addr) - if e != nil { - return e - } - l, e := net.ListenTCP(srv.Net, a) - if e != nil { - return e - } - srv.Listener = l - srv.started = true - srv.lock.Unlock() - e = srv.serveTCP(l) - srv.lock.Lock() // to satisfy the defer at the top - return e - case "udp", "udp4", "udp6": - a, e := net.ResolveUDPAddr(srv.Net, addr) - if e != nil { - return e - } - l, e := net.ListenUDP(srv.Net, a) - if e != nil { - return e - } - if e := setUDPSocketOptions(l); e != nil { - return e - } - srv.PacketConn = l - srv.started = true - srv.lock.Unlock() - e = srv.serveUDP(l) - srv.lock.Lock() // to satisfy the defer at the top - return e - } - return &Error{err: "bad network"} -} - -// ActivateAndServe starts a nameserver with the PacketConn or Listener -// configured in *Server. Its main use is to start a server from systemd. -func (srv *Server) ActivateAndServe() error { - srv.lock.Lock() - defer srv.lock.Unlock() - if srv.started { - return &Error{err: "server already started"} - } - pConn := srv.PacketConn - l := srv.Listener - if pConn != nil { - if srv.UDPSize == 0 { - srv.UDPSize = MinMsgSize - } - if t, ok := pConn.(*net.UDPConn); ok { - if e := setUDPSocketOptions(t); e != nil { - return e - } - srv.started = true - srv.lock.Unlock() - e := srv.serveUDP(t) - srv.lock.Lock() // to satisfy the defer at the top - return e - } - } - if l != nil { - if t, ok := l.(*net.TCPListener); ok { - srv.started = true - srv.lock.Unlock() - e := srv.serveTCP(t) - srv.lock.Lock() // to satisfy the defer at the top - return e - } - } - return &Error{err: "bad listeners"} -} - -// Shutdown gracefully shuts down a server. After a call to Shutdown, ListenAndServe and -// ActivateAndServe will return. All in progress queries are completed before the server -// is taken down. If the Shutdown is taking longer than the reading timeout an error -// is returned. -func (srv *Server) Shutdown() error { - srv.lock.Lock() - if !srv.started { - srv.lock.Unlock() - return &Error{err: "server not started"} - } - srv.started = false - srv.lock.Unlock() - - if srv.PacketConn != nil { - srv.PacketConn.Close() - } - if srv.Listener != nil { - srv.Listener.Close() - } - - fin := make(chan bool) - go func() { - srv.inFlight.Wait() - fin <- true - }() - - select { - case <-time.After(srv.getReadTimeout()): - return &Error{err: "server shutdown is pending"} - case <-fin: - return nil - } -} - -// getReadTimeout is a helper func to use system timeout if server did not intend to change it. -func (srv *Server) getReadTimeout() time.Duration { - rtimeout := dnsTimeout - if srv.ReadTimeout != 0 { - rtimeout = srv.ReadTimeout - } - return rtimeout -} - -// serveTCP starts a TCP listener for the server. -// Each request is handled in a separate goroutine. -func (srv *Server) serveTCP(l *net.TCPListener) error { - defer l.Close() - - if srv.NotifyStartedFunc != nil { - srv.NotifyStartedFunc() - } - - reader := Reader(&defaultReader{srv}) - if srv.DecorateReader != nil { - reader = srv.DecorateReader(reader) - } - - handler := srv.Handler - if handler == nil { - handler = DefaultServeMux - } - rtimeout := srv.getReadTimeout() - // deadline is not used here - for { - rw, e := l.AcceptTCP() - if e != nil { - if neterr, ok := e.(net.Error); ok && neterr.Temporary() { - continue - } - return e - } - m, e := reader.ReadTCP(rw, rtimeout) - srv.lock.RLock() - if !srv.started { - srv.lock.RUnlock() - return nil - } - srv.lock.RUnlock() - if e != nil { - continue - } - srv.inFlight.Add(1) - go srv.serve(rw.RemoteAddr(), handler, m, nil, nil, rw) - } -} - -// serveUDP starts a UDP listener for the server. -// Each request is handled in a separate goroutine. -func (srv *Server) serveUDP(l *net.UDPConn) error { - defer l.Close() - - if srv.NotifyStartedFunc != nil { - srv.NotifyStartedFunc() - } - - reader := Reader(&defaultReader{srv}) - if srv.DecorateReader != nil { - reader = srv.DecorateReader(reader) - } - - handler := srv.Handler - if handler == nil { - handler = DefaultServeMux - } - rtimeout := srv.getReadTimeout() - // deadline is not used here - for { - m, s, e := reader.ReadUDP(l, rtimeout) - srv.lock.RLock() - if !srv.started { - srv.lock.RUnlock() - return nil - } - srv.lock.RUnlock() - if e != nil { - continue - } - srv.inFlight.Add(1) - go srv.serve(s.RemoteAddr(), handler, m, l, s, nil) - } -} - -// Serve a new connection. -func (srv *Server) serve(a net.Addr, h Handler, m []byte, u *net.UDPConn, s *SessionUDP, t *net.TCPConn) { - defer srv.inFlight.Done() - - w := &response{tsigSecret: srv.TsigSecret, udp: u, tcp: t, remoteAddr: a, udpSession: s} - if srv.DecorateWriter != nil { - w.writer = srv.DecorateWriter(w) - } else { - w.writer = w - } - - q := 0 // counter for the amount of TCP queries we get - - reader := Reader(&defaultReader{srv}) - if srv.DecorateReader != nil { - reader = srv.DecorateReader(reader) - } -Redo: - req := new(Msg) - err := req.Unpack(m) - if err != nil { // Send a FormatError back - x := new(Msg) - x.SetRcodeFormatError(req) - w.WriteMsg(x) - goto Exit - } - if !srv.Unsafe && req.Response { - goto Exit - } - - w.tsigStatus = nil - if w.tsigSecret != nil { - if t := req.IsTsig(); t != nil { - secret := t.Hdr.Name - if _, ok := w.tsigSecret[secret]; !ok { - w.tsigStatus = ErrKeyAlg - } - w.tsigStatus = TsigVerify(m, w.tsigSecret[secret], "", false) - w.tsigTimersOnly = false - w.tsigRequestMAC = req.Extra[len(req.Extra)-1].(*TSIG).MAC - } - } - h.ServeDNS(w, req) // Writes back to the client - -Exit: - // TODO(miek): make this number configurable? - if q > maxTCPQueries { // close socket after this many queries - w.Close() - return - } - - if w.hijacked { - return // client calls Close() - } - if u != nil { // UDP, "close" and return - w.Close() - return - } - idleTimeout := tcpIdleTimeout - if srv.IdleTimeout != nil { - idleTimeout = srv.IdleTimeout() - } - m, e := reader.ReadTCP(w.tcp, idleTimeout) - if e == nil { - q++ - goto Redo - } - w.Close() - return -} - -func (srv *Server) readTCP(conn *net.TCPConn, timeout time.Duration) ([]byte, error) { - conn.SetReadDeadline(time.Now().Add(timeout)) - l := make([]byte, 2) - n, err := conn.Read(l) - if err != nil || n != 2 { - if err != nil { - return nil, err - } - return nil, ErrShortRead - } - length, _ := unpackUint16(l, 0) - if length == 0 { - return nil, ErrShortRead - } - m := make([]byte, int(length)) - n, err = conn.Read(m[:int(length)]) - if err != nil || n == 0 { - if err != nil { - return nil, err - } - return nil, ErrShortRead - } - i := n - for i < int(length) { - j, err := conn.Read(m[i:int(length)]) - if err != nil { - return nil, err - } - i += j - } - n = i - m = m[:n] - return m, nil -} - -func (srv *Server) readUDP(conn *net.UDPConn, timeout time.Duration) ([]byte, *SessionUDP, error) { - conn.SetReadDeadline(time.Now().Add(timeout)) - m := make([]byte, srv.UDPSize) - n, s, e := ReadFromSessionUDP(conn, m) - if e != nil || n == 0 { - if e != nil { - return nil, nil, e - } - return nil, nil, ErrShortRead - } - m = m[:n] - return m, s, nil -} - -// WriteMsg implements the ResponseWriter.WriteMsg method. -func (w *response) WriteMsg(m *Msg) (err error) { - var data []byte - if w.tsigSecret != nil { // if no secrets, dont check for the tsig (which is a longer check) - if t := m.IsTsig(); t != nil { - data, w.tsigRequestMAC, err = TsigGenerate(m, w.tsigSecret[t.Hdr.Name], w.tsigRequestMAC, w.tsigTimersOnly) - if err != nil { - return err - } - _, err = w.writer.Write(data) - return err - } - } - data, err = m.Pack() - if err != nil { - return err - } - _, err = w.writer.Write(data) - return err -} - -// Write implements the ResponseWriter.Write method. -func (w *response) Write(m []byte) (int, error) { - switch { - case w.udp != nil: - n, err := WriteToSessionUDP(w.udp, m, w.udpSession) - return n, err - case w.tcp != nil: - lm := len(m) - if lm < 2 { - return 0, io.ErrShortBuffer - } - if lm > MaxMsgSize { - return 0, &Error{err: "message too large"} - } - l := make([]byte, 2, 2+lm) - l[0], l[1] = packUint16(uint16(lm)) - m = append(l, m...) - - n, err := io.Copy(w.tcp, bytes.NewReader(m)) - return int(n), err - } - panic("not reached") -} - -// LocalAddr implements the ResponseWriter.LocalAddr method. -func (w *response) LocalAddr() net.Addr { - if w.tcp != nil { - return w.tcp.LocalAddr() - } - return w.udp.LocalAddr() -} - -// RemoteAddr implements the ResponseWriter.RemoteAddr method. -func (w *response) RemoteAddr() net.Addr { return w.remoteAddr } - -// TsigStatus implements the ResponseWriter.TsigStatus method. -func (w *response) TsigStatus() error { return w.tsigStatus } - -// TsigTimersOnly implements the ResponseWriter.TsigTimersOnly method. -func (w *response) TsigTimersOnly(b bool) { w.tsigTimersOnly = b } - -// Hijack implements the ResponseWriter.Hijack method. -func (w *response) Hijack() { w.hijacked = true } - -// Close implements the ResponseWriter.Close method -func (w *response) Close() error { - // Can't close the udp conn, as that is actually the listener. - if w.tcp != nil { - e := w.tcp.Close() - w.tcp = nil - return e - } - return nil -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/server_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/server_test.go deleted file mode 100644 index b3e0c72b..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/server_test.go +++ /dev/null @@ -1,453 +0,0 @@ -package dns - -import ( - "fmt" - "net" - "runtime" - "sync" - "testing" - "time" -) - -func HelloServer(w ResponseWriter, req *Msg) { - m := new(Msg) - m.SetReply(req) - - m.Extra = make([]RR, 1) - m.Extra[0] = &TXT{Hdr: RR_Header{Name: m.Question[0].Name, Rrtype: TypeTXT, Class: ClassINET, Ttl: 0}, Txt: []string{"Hello world"}} - w.WriteMsg(m) -} - -func HelloServerBadId(w ResponseWriter, req *Msg) { - m := new(Msg) - m.SetReply(req) - m.Id++ - - m.Extra = make([]RR, 1) - m.Extra[0] = &TXT{Hdr: RR_Header{Name: m.Question[0].Name, Rrtype: TypeTXT, Class: ClassINET, Ttl: 0}, Txt: []string{"Hello world"}} - w.WriteMsg(m) -} - -func AnotherHelloServer(w ResponseWriter, req *Msg) { - m := new(Msg) - m.SetReply(req) - - m.Extra = make([]RR, 1) - m.Extra[0] = &TXT{Hdr: RR_Header{Name: m.Question[0].Name, Rrtype: TypeTXT, Class: ClassINET, Ttl: 0}, Txt: []string{"Hello example"}} - w.WriteMsg(m) -} - -func RunLocalUDPServer(laddr string) (*Server, string, error) { - pc, err := net.ListenPacket("udp", laddr) - if err != nil { - return nil, "", err - } - server := &Server{PacketConn: pc, ReadTimeout: time.Hour, WriteTimeout: time.Hour} - - waitLock := sync.Mutex{} - waitLock.Lock() - server.NotifyStartedFunc = waitLock.Unlock - - go func() { - server.ActivateAndServe() - pc.Close() - }() - - waitLock.Lock() - return server, pc.LocalAddr().String(), nil -} - -func RunLocalUDPServerUnsafe(laddr string) (*Server, string, error) { - pc, err := net.ListenPacket("udp", laddr) - if err != nil { - return nil, "", err - } - server := &Server{PacketConn: pc, Unsafe: true, - ReadTimeout: time.Hour, WriteTimeout: time.Hour} - - waitLock := sync.Mutex{} - waitLock.Lock() - server.NotifyStartedFunc = waitLock.Unlock - - go func() { - server.ActivateAndServe() - pc.Close() - }() - - waitLock.Lock() - return server, pc.LocalAddr().String(), nil -} - -func RunLocalTCPServer(laddr string) (*Server, string, error) { - l, err := net.Listen("tcp", laddr) - if err != nil { - return nil, "", err - } - - server := &Server{Listener: l, ReadTimeout: time.Hour, WriteTimeout: time.Hour} - - waitLock := sync.Mutex{} - waitLock.Lock() - server.NotifyStartedFunc = waitLock.Unlock - - go func() { - server.ActivateAndServe() - l.Close() - }() - - waitLock.Lock() - return server, l.Addr().String(), nil -} - -func TestServing(t *testing.T) { - HandleFunc("miek.nl.", HelloServer) - HandleFunc("example.com.", AnotherHelloServer) - defer HandleRemove("miek.nl.") - defer HandleRemove("example.com.") - - s, addrstr, err := RunLocalUDPServer("127.0.0.1:0") - if err != nil { - t.Fatalf("Unable to run test server: %v", err) - } - defer s.Shutdown() - - c := new(Client) - m := new(Msg) - m.SetQuestion("miek.nl.", TypeTXT) - r, _, err := c.Exchange(m, addrstr) - if err != nil || len(r.Extra) == 0 { - t.Fatal("failed to exchange miek.nl", err) - } - txt := r.Extra[0].(*TXT).Txt[0] - if txt != "Hello world" { - t.Error("Unexpected result for miek.nl", txt, "!= Hello world") - } - - m.SetQuestion("example.com.", TypeTXT) - r, _, err = c.Exchange(m, addrstr) - if err != nil { - t.Fatal("failed to exchange example.com", err) - } - txt = r.Extra[0].(*TXT).Txt[0] - if txt != "Hello example" { - t.Error("Unexpected result for example.com", txt, "!= Hello example") - } - - // Test Mixes cased as noticed by Ask. - m.SetQuestion("eXaMplE.cOm.", TypeTXT) - r, _, err = c.Exchange(m, addrstr) - if err != nil { - t.Error("failed to exchange eXaMplE.cOm", err) - } - txt = r.Extra[0].(*TXT).Txt[0] - if txt != "Hello example" { - t.Error("Unexpected result for example.com", txt, "!= Hello example") - } -} - -func BenchmarkServe(b *testing.B) { - b.StopTimer() - HandleFunc("miek.nl.", HelloServer) - defer HandleRemove("miek.nl.") - a := runtime.GOMAXPROCS(4) - - s, addrstr, err := RunLocalUDPServer("127.0.0.1:0") - if err != nil { - b.Fatalf("Unable to run test server: %v", err) - } - defer s.Shutdown() - - c := new(Client) - m := new(Msg) - m.SetQuestion("miek.nl", TypeSOA) - - b.StartTimer() - for i := 0; i < b.N; i++ { - c.Exchange(m, addrstr) - } - runtime.GOMAXPROCS(a) -} - -func benchmarkServe6(b *testing.B) { - b.StopTimer() - HandleFunc("miek.nl.", HelloServer) - defer HandleRemove("miek.nl.") - a := runtime.GOMAXPROCS(4) - s, addrstr, err := RunLocalUDPServer("[::1]:0") - if err != nil { - b.Fatalf("Unable to run test server: %v", err) - } - defer s.Shutdown() - - c := new(Client) - m := new(Msg) - m.SetQuestion("miek.nl", TypeSOA) - - b.StartTimer() - for i := 0; i < b.N; i++ { - c.Exchange(m, addrstr) - } - runtime.GOMAXPROCS(a) -} - -func HelloServerCompress(w ResponseWriter, req *Msg) { - m := new(Msg) - m.SetReply(req) - m.Extra = make([]RR, 1) - m.Extra[0] = &TXT{Hdr: RR_Header{Name: m.Question[0].Name, Rrtype: TypeTXT, Class: ClassINET, Ttl: 0}, Txt: []string{"Hello world"}} - m.Compress = true - w.WriteMsg(m) -} - -func BenchmarkServeCompress(b *testing.B) { - b.StopTimer() - HandleFunc("miek.nl.", HelloServerCompress) - defer HandleRemove("miek.nl.") - a := runtime.GOMAXPROCS(4) - s, addrstr, err := RunLocalUDPServer("127.0.0.1:0") - if err != nil { - b.Fatalf("Unable to run test server: %v", err) - } - defer s.Shutdown() - - c := new(Client) - m := new(Msg) - m.SetQuestion("miek.nl", TypeSOA) - b.StartTimer() - for i := 0; i < b.N; i++ { - c.Exchange(m, addrstr) - } - runtime.GOMAXPROCS(a) -} - -func TestDotAsCatchAllWildcard(t *testing.T) { - mux := NewServeMux() - mux.Handle(".", HandlerFunc(HelloServer)) - mux.Handle("example.com.", HandlerFunc(AnotherHelloServer)) - - handler := mux.match("www.miek.nl.", TypeTXT) - if handler == nil { - t.Error("wildcard match failed") - } - - handler = mux.match("www.example.com.", TypeTXT) - if handler == nil { - t.Error("example.com match failed") - } - - handler = mux.match("a.www.example.com.", TypeTXT) - if handler == nil { - t.Error("a.www.example.com match failed") - } - - handler = mux.match("boe.", TypeTXT) - if handler == nil { - t.Error("boe. match failed") - } -} - -func TestCaseFolding(t *testing.T) { - mux := NewServeMux() - mux.Handle("_udp.example.com.", HandlerFunc(HelloServer)) - - handler := mux.match("_dns._udp.example.com.", TypeSRV) - if handler == nil { - t.Error("case sensitive characters folded") - } - - handler = mux.match("_DNS._UDP.EXAMPLE.COM.", TypeSRV) - if handler == nil { - t.Error("case insensitive characters not folded") - } -} - -func TestRootServer(t *testing.T) { - mux := NewServeMux() - mux.Handle(".", HandlerFunc(HelloServer)) - - handler := mux.match(".", TypeNS) - if handler == nil { - t.Error("root match failed") - } -} - -type maxRec struct { - max int - sync.RWMutex -} - -var M = new(maxRec) - -func HelloServerLargeResponse(resp ResponseWriter, req *Msg) { - m := new(Msg) - m.SetReply(req) - m.Authoritative = true - m1 := 0 - M.RLock() - m1 = M.max - M.RUnlock() - for i := 0; i < m1; i++ { - aRec := &A{ - Hdr: RR_Header{ - Name: req.Question[0].Name, - Rrtype: TypeA, - Class: ClassINET, - Ttl: 0, - }, - A: net.ParseIP(fmt.Sprintf("127.0.0.%d", i+1)).To4(), - } - m.Answer = append(m.Answer, aRec) - } - resp.WriteMsg(m) -} - -func TestServingLargeResponses(t *testing.T) { - HandleFunc("example.", HelloServerLargeResponse) - defer HandleRemove("example.") - - s, addrstr, err := RunLocalUDPServer("127.0.0.1:0") - if err != nil { - t.Fatalf("Unable to run test server: %v", err) - } - defer s.Shutdown() - - // Create request - m := new(Msg) - m.SetQuestion("web.service.example.", TypeANY) - - c := new(Client) - c.Net = "udp" - M.Lock() - M.max = 2 - M.Unlock() - _, _, err = c.Exchange(m, addrstr) - if err != nil { - t.Errorf("failed to exchange: %v", err) - } - // This must fail - M.Lock() - M.max = 20 - M.Unlock() - _, _, err = c.Exchange(m, addrstr) - if err == nil { - t.Error("failed to fail exchange, this should generate packet error") - } - // But this must work again - c.UDPSize = 7000 - _, _, err = c.Exchange(m, addrstr) - if err != nil { - t.Errorf("failed to exchange: %v", err) - } -} - -func TestServingResponse(t *testing.T) { - if testing.Short() { - t.Skip("skipping test in short mode.") - } - HandleFunc("miek.nl.", HelloServer) - s, addrstr, err := RunLocalUDPServer("127.0.0.1:0") - if err != nil { - t.Fatalf("Unable to run test server: %v", err) - } - - c := new(Client) - m := new(Msg) - m.SetQuestion("miek.nl.", TypeTXT) - m.Response = false - _, _, err = c.Exchange(m, addrstr) - if err != nil { - t.Fatal("failed to exchange", err) - } - m.Response = true - _, _, err = c.Exchange(m, addrstr) - if err == nil { - t.Fatal("exchanged response message") - } - - s.Shutdown() - s, addrstr, err = RunLocalUDPServerUnsafe("127.0.0.1:0") - if err != nil { - t.Fatalf("Unable to run test server: %v", err) - } - defer s.Shutdown() - - m.Response = true - _, _, err = c.Exchange(m, addrstr) - if err != nil { - t.Fatal("could exchanged response message in Unsafe mode") - } -} - -func TestShutdownTCP(t *testing.T) { - s, _, err := RunLocalTCPServer("127.0.0.1:0") - if err != nil { - t.Fatalf("Unable to run test server: %v", err) - } - err = s.Shutdown() - if err != nil { - t.Errorf("Could not shutdown test TCP server, %v", err) - } -} - -func TestShutdownUDP(t *testing.T) { - s, _, err := RunLocalUDPServer("127.0.0.1:0") - if err != nil { - t.Fatalf("Unable to run test server: %v", err) - } - err = s.Shutdown() - if err != nil { - t.Errorf("Could not shutdown test UDP server, %v", err) - } -} - -type ExampleFrameLengthWriter struct { - Writer -} - -func (e *ExampleFrameLengthWriter) Write(m []byte) (int, error) { - fmt.Println("writing raw DNS message of length", len(m)) - return e.Writer.Write(m) -} - -func ExampleDecorateWriter() { - // instrument raw DNS message writing - wf := DecorateWriter(func(w Writer) Writer { - return &ExampleFrameLengthWriter{w} - }) - - // simple UDP server - pc, err := net.ListenPacket("udp", "127.0.0.1:0") - if err != nil { - fmt.Println(err.Error()) - return - } - server := &Server{ - PacketConn: pc, - DecorateWriter: wf, - ReadTimeout: time.Hour, WriteTimeout: time.Hour, - } - - waitLock := sync.Mutex{} - waitLock.Lock() - server.NotifyStartedFunc = waitLock.Unlock - defer server.Shutdown() - - go func() { - server.ActivateAndServe() - pc.Close() - }() - - waitLock.Lock() - - HandleFunc("miek.nl.", HelloServer) - - c := new(Client) - m := new(Msg) - m.SetQuestion("miek.nl.", TypeTXT) - _, _, err = c.Exchange(m, pc.LocalAddr().String()) - if err != nil { - fmt.Println("failed to exchange", err.Error()) - return - } - // Output: writing raw DNS message of length 56 -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sig0.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sig0.go deleted file mode 100644 index 0fccddbc..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sig0.go +++ /dev/null @@ -1,216 +0,0 @@ -package dns - -import ( - "crypto" - "crypto/dsa" - "crypto/ecdsa" - "crypto/rsa" - "math/big" - "strings" - "time" -) - -// Sign signs a dns.Msg. It fills the signature with the appropriate data. -// The SIG record should have the SignerName, KeyTag, Algorithm, Inception -// and Expiration set. -func (rr *SIG) Sign(k crypto.Signer, m *Msg) ([]byte, error) { - if k == nil { - return nil, ErrPrivKey - } - if rr.KeyTag == 0 || len(rr.SignerName) == 0 || rr.Algorithm == 0 { - return nil, ErrKey - } - rr.Header().Rrtype = TypeSIG - rr.Header().Class = ClassANY - rr.Header().Ttl = 0 - rr.Header().Name = "." - rr.OrigTtl = 0 - rr.TypeCovered = 0 - rr.Labels = 0 - - buf := make([]byte, m.Len()+rr.len()) - mbuf, err := m.PackBuffer(buf) - if err != nil { - return nil, err - } - if &buf[0] != &mbuf[0] { - return nil, ErrBuf - } - off, err := PackRR(rr, buf, len(mbuf), nil, false) - if err != nil { - return nil, err - } - buf = buf[:off:cap(buf)] - - hash, ok := AlgorithmToHash[rr.Algorithm] - if !ok { - return nil, ErrAlg - } - - hasher := hash.New() - // Write SIG rdata - hasher.Write(buf[len(mbuf)+1+2+2+4+2:]) - // Write message - hasher.Write(buf[:len(mbuf)]) - - signature, err := sign(k, hasher.Sum(nil), hash, rr.Algorithm) - if err != nil { - return nil, err - } - - rr.Signature = toBase64(signature) - sig := string(signature) - - buf = append(buf, sig...) - if len(buf) > int(^uint16(0)) { - return nil, ErrBuf - } - // Adjust sig data length - rdoff := len(mbuf) + 1 + 2 + 2 + 4 - rdlen, _ := unpackUint16(buf, rdoff) - rdlen += uint16(len(sig)) - buf[rdoff], buf[rdoff+1] = packUint16(rdlen) - // Adjust additional count - adc, _ := unpackUint16(buf, 10) - adc++ - buf[10], buf[11] = packUint16(adc) - return buf, nil -} - -// Verify validates the message buf using the key k. -// It's assumed that buf is a valid message from which rr was unpacked. -func (rr *SIG) Verify(k *KEY, buf []byte) error { - if k == nil { - return ErrKey - } - if rr.KeyTag == 0 || len(rr.SignerName) == 0 || rr.Algorithm == 0 { - return ErrKey - } - - var hash crypto.Hash - switch rr.Algorithm { - case DSA, RSASHA1: - hash = crypto.SHA1 - case RSASHA256, ECDSAP256SHA256: - hash = crypto.SHA256 - case ECDSAP384SHA384: - hash = crypto.SHA384 - case RSASHA512: - hash = crypto.SHA512 - default: - return ErrAlg - } - hasher := hash.New() - - buflen := len(buf) - qdc, _ := unpackUint16(buf, 4) - anc, _ := unpackUint16(buf, 6) - auc, _ := unpackUint16(buf, 8) - adc, offset := unpackUint16(buf, 10) - var err error - for i := uint16(0); i < qdc && offset < buflen; i++ { - _, offset, err = UnpackDomainName(buf, offset) - if err != nil { - return err - } - // Skip past Type and Class - offset += 2 + 2 - } - for i := uint16(1); i < anc+auc+adc && offset < buflen; i++ { - _, offset, err = UnpackDomainName(buf, offset) - if err != nil { - return err - } - // Skip past Type, Class and TTL - offset += 2 + 2 + 4 - if offset+1 >= buflen { - continue - } - var rdlen uint16 - rdlen, offset = unpackUint16(buf, offset) - offset += int(rdlen) - } - if offset >= buflen { - return &Error{err: "overflowing unpacking signed message"} - } - - // offset should be just prior to SIG - bodyend := offset - // owner name SHOULD be root - _, offset, err = UnpackDomainName(buf, offset) - if err != nil { - return err - } - // Skip Type, Class, TTL, RDLen - offset += 2 + 2 + 4 + 2 - sigstart := offset - // Skip Type Covered, Algorithm, Labels, Original TTL - offset += 2 + 1 + 1 + 4 - if offset+4+4 >= buflen { - return &Error{err: "overflow unpacking signed message"} - } - expire := uint32(buf[offset])<<24 | uint32(buf[offset+1])<<16 | uint32(buf[offset+2])<<8 | uint32(buf[offset+3]) - offset += 4 - incept := uint32(buf[offset])<<24 | uint32(buf[offset+1])<<16 | uint32(buf[offset+2])<<8 | uint32(buf[offset+3]) - offset += 4 - now := uint32(time.Now().Unix()) - if now < incept || now > expire { - return ErrTime - } - // Skip key tag - offset += 2 - var signername string - signername, offset, err = UnpackDomainName(buf, offset) - if err != nil { - return err - } - // If key has come from the DNS name compression might - // have mangled the case of the name - if strings.ToLower(signername) != strings.ToLower(k.Header().Name) { - return &Error{err: "signer name doesn't match key name"} - } - sigend := offset - hasher.Write(buf[sigstart:sigend]) - hasher.Write(buf[:10]) - hasher.Write([]byte{ - byte((adc - 1) << 8), - byte(adc - 1), - }) - hasher.Write(buf[12:bodyend]) - - hashed := hasher.Sum(nil) - sig := buf[sigend:] - switch k.Algorithm { - case DSA: - pk := k.publicKeyDSA() - sig = sig[1:] - r := big.NewInt(0) - r.SetBytes(sig[:len(sig)/2]) - s := big.NewInt(0) - s.SetBytes(sig[len(sig)/2:]) - if pk != nil { - if dsa.Verify(pk, hashed, r, s) { - return nil - } - return ErrSig - } - case RSASHA1, RSASHA256, RSASHA512: - pk := k.publicKeyRSA() - if pk != nil { - return rsa.VerifyPKCS1v15(pk, hash, hashed, sig) - } - case ECDSAP256SHA256, ECDSAP384SHA384: - pk := k.publicKeyECDSA() - r := big.NewInt(0) - r.SetBytes(sig[:len(sig)/2]) - s := big.NewInt(0) - s.SetBytes(sig[len(sig)/2:]) - if pk != nil { - if ecdsa.Verify(pk, hashed, r, s) { - return nil - } - return ErrSig - } - } - return ErrKeyAlg -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sig0_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sig0_test.go deleted file mode 100644 index c13adf39..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/sig0_test.go +++ /dev/null @@ -1,89 +0,0 @@ -package dns - -import ( - "crypto" - "testing" - "time" -) - -func TestSIG0(t *testing.T) { - if testing.Short() { - t.Skip("skipping test in short mode.") - } - m := new(Msg) - m.SetQuestion("example.org.", TypeSOA) - for _, alg := range []uint8{ECDSAP256SHA256, ECDSAP384SHA384, RSASHA1, RSASHA256, RSASHA512} { - algstr := AlgorithmToString[alg] - keyrr := new(KEY) - keyrr.Hdr.Name = algstr + "." - keyrr.Hdr.Rrtype = TypeKEY - keyrr.Hdr.Class = ClassINET - keyrr.Algorithm = alg - keysize := 1024 - switch alg { - case ECDSAP256SHA256: - keysize = 256 - case ECDSAP384SHA384: - keysize = 384 - } - pk, err := keyrr.Generate(keysize) - if err != nil { - t.Errorf("Failed to generate key for “%sâ€: %v", algstr, err) - continue - } - now := uint32(time.Now().Unix()) - sigrr := new(SIG) - sigrr.Hdr.Name = "." - sigrr.Hdr.Rrtype = TypeSIG - sigrr.Hdr.Class = ClassANY - sigrr.Algorithm = alg - sigrr.Expiration = now + 300 - sigrr.Inception = now - 300 - sigrr.KeyTag = keyrr.KeyTag() - sigrr.SignerName = keyrr.Hdr.Name - mb, err := sigrr.Sign(pk.(crypto.Signer), m) - if err != nil { - t.Errorf("Failed to sign message using “%sâ€: %v", algstr, err) - continue - } - m := new(Msg) - if err := m.Unpack(mb); err != nil { - t.Errorf("Failed to unpack message signed using “%sâ€: %v", algstr, err) - continue - } - if len(m.Extra) != 1 { - t.Errorf("Missing SIG for message signed using “%sâ€", algstr) - continue - } - var sigrrwire *SIG - switch rr := m.Extra[0].(type) { - case *SIG: - sigrrwire = rr - default: - t.Errorf("Expected SIG RR, instead: %v", rr) - continue - } - for _, rr := range []*SIG{sigrr, sigrrwire} { - id := "sigrr" - if rr == sigrrwire { - id = "sigrrwire" - } - if err := rr.Verify(keyrr, mb); err != nil { - t.Errorf("Failed to verify “%s†signed SIG(%s): %v", algstr, id, err) - continue - } - } - mb[13]++ - if err := sigrr.Verify(keyrr, mb); err == nil { - t.Errorf("Verify succeeded on an altered message using “%sâ€", algstr) - continue - } - sigrr.Expiration = 2 - sigrr.Inception = 1 - mb, _ = sigrr.Sign(pk.(crypto.Signer), m) - if err := sigrr.Verify(keyrr, mb); err == nil { - t.Errorf("Verify succeeded on an expired message using “%sâ€", algstr) - continue - } - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/singleinflight.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/singleinflight.go deleted file mode 100644 index 9573c7d0..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/singleinflight.go +++ /dev/null @@ -1,57 +0,0 @@ -// 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. - -// Adapted for dns package usage by Miek Gieben. - -package dns - -import "sync" -import "time" - -// call is an in-flight or completed singleflight.Do call -type call struct { - wg sync.WaitGroup - val *Msg - rtt time.Duration - err error - dups int -} - -// singleflight represents a class of work and forms a namespace in -// which units of work can be executed with duplicate suppression. -type singleflight struct { - sync.Mutex // protects m - m map[string]*call // lazily initialized -} - -// Do executes and returns the results of the given function, making -// sure that only one execution is in-flight for a given key at a -// time. If a duplicate comes in, the duplicate caller waits for the -// original to complete and receives the same results. -// The return value shared indicates whether v was given to multiple callers. -func (g *singleflight) Do(key string, fn func() (*Msg, time.Duration, error)) (v *Msg, rtt time.Duration, err error, shared bool) { - g.Lock() - if g.m == nil { - g.m = make(map[string]*call) - } - if c, ok := g.m[key]; ok { - c.dups++ - g.Unlock() - c.wg.Wait() - return c.val, c.rtt, c.err, true - } - c := new(call) - c.wg.Add(1) - g.m[key] = c - g.Unlock() - - c.val, c.rtt, c.err = fn() - c.wg.Done() - - g.Lock() - delete(g.m, key) - g.Unlock() - - return c.val, c.rtt, c.err, c.dups > 0 -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/tlsa.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/tlsa.go deleted file mode 100644 index f027787d..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/tlsa.go +++ /dev/null @@ -1,86 +0,0 @@ -package dns - -import ( - "crypto/sha256" - "crypto/sha512" - "crypto/x509" - "encoding/hex" - "errors" - "io" - "net" - "strconv" -) - -// CertificateToDANE converts a certificate to a hex string as used in the TLSA record. -func CertificateToDANE(selector, matchingType uint8, cert *x509.Certificate) (string, error) { - switch matchingType { - case 0: - switch selector { - case 0: - return hex.EncodeToString(cert.Raw), nil - case 1: - return hex.EncodeToString(cert.RawSubjectPublicKeyInfo), nil - } - case 1: - h := sha256.New() - switch selector { - case 0: - io.WriteString(h, string(cert.Raw)) - return hex.EncodeToString(h.Sum(nil)), nil - case 1: - io.WriteString(h, string(cert.RawSubjectPublicKeyInfo)) - return hex.EncodeToString(h.Sum(nil)), nil - } - case 2: - h := sha512.New() - switch selector { - case 0: - io.WriteString(h, string(cert.Raw)) - return hex.EncodeToString(h.Sum(nil)), nil - case 1: - io.WriteString(h, string(cert.RawSubjectPublicKeyInfo)) - return hex.EncodeToString(h.Sum(nil)), nil - } - } - return "", errors.New("dns: bad TLSA MatchingType or TLSA Selector") -} - -// Sign creates a TLSA record from an SSL certificate. -func (r *TLSA) Sign(usage, selector, matchingType int, cert *x509.Certificate) (err error) { - r.Hdr.Rrtype = TypeTLSA - r.Usage = uint8(usage) - r.Selector = uint8(selector) - r.MatchingType = uint8(matchingType) - - r.Certificate, err = CertificateToDANE(r.Selector, r.MatchingType, cert) - if err != nil { - return err - } - return nil -} - -// Verify verifies a TLSA record against an SSL certificate. If it is OK -// a nil error is returned. -func (r *TLSA) Verify(cert *x509.Certificate) error { - c, err := CertificateToDANE(r.Selector, r.MatchingType, cert) - if err != nil { - return err // Not also ErrSig? - } - if r.Certificate == c { - return nil - } - return ErrSig // ErrSig, really? -} - -// TLSAName returns the ownername of a TLSA resource record as per the -// rules specified in RFC 6698, Section 3. -func TLSAName(name, service, network string) (string, error) { - if !IsFqdn(name) { - return "", ErrFqdn - } - p, e := net.LookupPort(network, service) - if e != nil { - return "", e - } - return "_" + strconv.Itoa(p) + "_" + network + "." + name, nil -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/tsig.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/tsig.go deleted file mode 100644 index 32616d2d..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/tsig.go +++ /dev/null @@ -1,320 +0,0 @@ -package dns - -import ( - "crypto/hmac" - "crypto/md5" - "crypto/sha1" - "crypto/sha256" - "crypto/sha512" - "encoding/hex" - "hash" - "io" - "strconv" - "strings" - "time" -) - -// HMAC hashing codes. These are transmitted as domain names. -const ( - HmacMD5 = "hmac-md5.sig-alg.reg.int." - HmacSHA1 = "hmac-sha1." - HmacSHA256 = "hmac-sha256." - HmacSHA512 = "hmac-sha512." -) - -// TSIG is the RR the holds the transaction signature of a message. -// See RFC 2845 and RFC 4635. -type TSIG struct { - Hdr RR_Header - Algorithm string `dns:"domain-name"` - TimeSigned uint64 `dns:"uint48"` - Fudge uint16 - MACSize uint16 - MAC string `dns:"size-hex"` - OrigId uint16 - Error uint16 - OtherLen uint16 - OtherData string `dns:"size-hex"` -} - -// TSIG has no official presentation format, but this will suffice. - -func (rr *TSIG) String() string { - s := "\n;; TSIG PSEUDOSECTION:\n" - s += rr.Hdr.String() + - " " + rr.Algorithm + - " " + tsigTimeToString(rr.TimeSigned) + - " " + strconv.Itoa(int(rr.Fudge)) + - " " + strconv.Itoa(int(rr.MACSize)) + - " " + strings.ToUpper(rr.MAC) + - " " + strconv.Itoa(int(rr.OrigId)) + - " " + strconv.Itoa(int(rr.Error)) + // BIND prints NOERROR - " " + strconv.Itoa(int(rr.OtherLen)) + - " " + rr.OtherData - return s -} - -// The following values must be put in wireformat, so that the MAC can be calculated. -// RFC 2845, section 3.4.2. TSIG Variables. -type tsigWireFmt struct { - // From RR_Header - Name string `dns:"domain-name"` - Class uint16 - Ttl uint32 - // Rdata of the TSIG - Algorithm string `dns:"domain-name"` - TimeSigned uint64 `dns:"uint48"` - Fudge uint16 - // MACSize, MAC and OrigId excluded - Error uint16 - OtherLen uint16 - OtherData string `dns:"size-hex"` -} - -// If we have the MAC use this type to convert it to wiredata. -// Section 3.4.3. Request MAC -type macWireFmt struct { - MACSize uint16 - MAC string `dns:"size-hex"` -} - -// 3.3. Time values used in TSIG calculations -type timerWireFmt struct { - TimeSigned uint64 `dns:"uint48"` - Fudge uint16 -} - -// TsigGenerate fills out the TSIG record attached to the message. -// The message should contain -// a "stub" TSIG RR with the algorithm, key name (owner name of the RR), -// time fudge (defaults to 300 seconds) and the current time -// The TSIG MAC is saved in that Tsig RR. -// When TsigGenerate is called for the first time requestMAC is set to the empty string and -// timersOnly is false. -// If something goes wrong an error is returned, otherwise it is nil. -func TsigGenerate(m *Msg, secret, requestMAC string, timersOnly bool) ([]byte, string, error) { - if m.IsTsig() == nil { - panic("dns: TSIG not last RR in additional") - } - // If we barf here, the caller is to blame - rawsecret, err := fromBase64([]byte(secret)) - if err != nil { - return nil, "", err - } - - rr := m.Extra[len(m.Extra)-1].(*TSIG) - m.Extra = m.Extra[0 : len(m.Extra)-1] // kill the TSIG from the msg - mbuf, err := m.Pack() - if err != nil { - return nil, "", err - } - buf := tsigBuffer(mbuf, rr, requestMAC, timersOnly) - - t := new(TSIG) - var h hash.Hash - switch rr.Algorithm { - case HmacMD5: - h = hmac.New(md5.New, []byte(rawsecret)) - case HmacSHA1: - h = hmac.New(sha1.New, []byte(rawsecret)) - case HmacSHA256: - h = hmac.New(sha256.New, []byte(rawsecret)) - case HmacSHA512: - h = hmac.New(sha512.New, []byte(rawsecret)) - default: - return nil, "", ErrKeyAlg - } - io.WriteString(h, string(buf)) - t.MAC = hex.EncodeToString(h.Sum(nil)) - t.MACSize = uint16(len(t.MAC) / 2) // Size is half! - - t.Hdr = RR_Header{Name: rr.Hdr.Name, Rrtype: TypeTSIG, Class: ClassANY, Ttl: 0} - t.Fudge = rr.Fudge - t.TimeSigned = rr.TimeSigned - t.Algorithm = rr.Algorithm - t.OrigId = m.Id - - tbuf := make([]byte, t.len()) - if off, err := PackRR(t, tbuf, 0, nil, false); err == nil { - tbuf = tbuf[:off] // reset to actual size used - } else { - return nil, "", err - } - mbuf = append(mbuf, tbuf...) - rawSetExtraLen(mbuf, uint16(len(m.Extra)+1)) - return mbuf, t.MAC, nil -} - -// TsigVerify verifies the TSIG on a message. -// If the signature does not validate err contains the -// error, otherwise it is nil. -func TsigVerify(msg []byte, secret, requestMAC string, timersOnly bool) error { - rawsecret, err := fromBase64([]byte(secret)) - if err != nil { - return err - } - // Strip the TSIG from the incoming msg - stripped, tsig, err := stripTsig(msg) - if err != nil { - return err - } - - msgMAC, err := hex.DecodeString(tsig.MAC) - if err != nil { - return err - } - - buf := tsigBuffer(stripped, tsig, requestMAC, timersOnly) - - // Fudge factor works both ways. A message can arrive before it was signed because - // of clock skew. - now := uint64(time.Now().Unix()) - ti := now - tsig.TimeSigned - if now < tsig.TimeSigned { - ti = tsig.TimeSigned - now - } - if uint64(tsig.Fudge) < ti { - return ErrTime - } - - var h hash.Hash - switch tsig.Algorithm { - case HmacMD5: - h = hmac.New(md5.New, rawsecret) - case HmacSHA1: - h = hmac.New(sha1.New, rawsecret) - case HmacSHA256: - h = hmac.New(sha256.New, rawsecret) - case HmacSHA512: - h = hmac.New(sha512.New, rawsecret) - default: - return ErrKeyAlg - } - h.Write(buf) - if !hmac.Equal(h.Sum(nil), msgMAC) { - return ErrSig - } - return nil -} - -// Create a wiredata buffer for the MAC calculation. -func tsigBuffer(msgbuf []byte, rr *TSIG, requestMAC string, timersOnly bool) []byte { - var buf []byte - if rr.TimeSigned == 0 { - rr.TimeSigned = uint64(time.Now().Unix()) - } - if rr.Fudge == 0 { - rr.Fudge = 300 // Standard (RFC) default. - } - - if requestMAC != "" { - m := new(macWireFmt) - m.MACSize = uint16(len(requestMAC) / 2) - m.MAC = requestMAC - buf = make([]byte, len(requestMAC)) // long enough - n, _ := PackStruct(m, buf, 0) - buf = buf[:n] - } - - tsigvar := make([]byte, DefaultMsgSize) - if timersOnly { - tsig := new(timerWireFmt) - tsig.TimeSigned = rr.TimeSigned - tsig.Fudge = rr.Fudge - n, _ := PackStruct(tsig, tsigvar, 0) - tsigvar = tsigvar[:n] - } else { - tsig := new(tsigWireFmt) - tsig.Name = strings.ToLower(rr.Hdr.Name) - tsig.Class = ClassANY - tsig.Ttl = rr.Hdr.Ttl - tsig.Algorithm = strings.ToLower(rr.Algorithm) - tsig.TimeSigned = rr.TimeSigned - tsig.Fudge = rr.Fudge - tsig.Error = rr.Error - tsig.OtherLen = rr.OtherLen - tsig.OtherData = rr.OtherData - n, _ := PackStruct(tsig, tsigvar, 0) - tsigvar = tsigvar[:n] - } - - if requestMAC != "" { - x := append(buf, msgbuf...) - buf = append(x, tsigvar...) - } else { - buf = append(msgbuf, tsigvar...) - } - return buf -} - -// Strip the TSIG from the raw message. -func stripTsig(msg []byte) ([]byte, *TSIG, error) { - // Copied from msg.go's Unpack() - // Header. - var dh Header - var err error - dns := new(Msg) - rr := new(TSIG) - off := 0 - tsigoff := 0 - if off, err = UnpackStruct(&dh, msg, off); err != nil { - return nil, nil, err - } - if dh.Arcount == 0 { - return nil, nil, ErrNoSig - } - // Rcode, see msg.go Unpack() - if int(dh.Bits&0xF) == RcodeNotAuth { - return nil, nil, ErrAuth - } - - // Arrays. - dns.Question = make([]Question, dh.Qdcount) - dns.Answer = make([]RR, dh.Ancount) - dns.Ns = make([]RR, dh.Nscount) - dns.Extra = make([]RR, dh.Arcount) - - for i := 0; i < len(dns.Question); i++ { - off, err = UnpackStruct(&dns.Question[i], msg, off) - if err != nil { - return nil, nil, err - } - } - for i := 0; i < len(dns.Answer); i++ { - dns.Answer[i], off, err = UnpackRR(msg, off) - if err != nil { - return nil, nil, err - } - } - for i := 0; i < len(dns.Ns); i++ { - dns.Ns[i], off, err = UnpackRR(msg, off) - if err != nil { - return nil, nil, err - } - } - for i := 0; i < len(dns.Extra); i++ { - tsigoff = off - dns.Extra[i], off, err = UnpackRR(msg, off) - if err != nil { - return nil, nil, err - } - if dns.Extra[i].Header().Rrtype == TypeTSIG { - rr = dns.Extra[i].(*TSIG) - // Adjust Arcount. - arcount, _ := unpackUint16(msg, 10) - msg[10], msg[11] = packUint16(arcount - 1) - break - } - } - if rr == nil { - return nil, nil, ErrNoSig - } - return msg[:tsigoff], rr, nil -} - -// Translate the TSIG time signed into a date. There is no -// need for RFC1982 calculations as this date is 48 bits. -func tsigTimeToString(t uint64) string { - ti := time.Unix(int64(t), 0).UTC() - return ti.Format("20060102150405") -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/types.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/types.go deleted file mode 100644 index 64143dba..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/types.go +++ /dev/null @@ -1,1328 +0,0 @@ -package dns - -import ( - "encoding/base64" - "fmt" - "net" - "strconv" - "strings" - "time" -) - -type ( - // Type is a DNS type. - Type uint16 - // Class is a DNS class. - Class uint16 - // Name is a DNS domain name. - Name string -) - -// Packet formats - -// Wire constants and supported types. -const ( - // valid RR_Header.Rrtype and Question.qtype - - TypeNone uint16 = 0 - TypeA uint16 = 1 - TypeNS uint16 = 2 - TypeMD uint16 = 3 - TypeMF uint16 = 4 - TypeCNAME uint16 = 5 - TypeSOA uint16 = 6 - TypeMB uint16 = 7 - TypeMG uint16 = 8 - TypeMR uint16 = 9 - TypeNULL uint16 = 10 - TypeWKS uint16 = 11 - TypePTR uint16 = 12 - TypeHINFO uint16 = 13 - TypeMINFO uint16 = 14 - TypeMX uint16 = 15 - TypeTXT uint16 = 16 - TypeRP uint16 = 17 - TypeAFSDB uint16 = 18 - TypeX25 uint16 = 19 - TypeISDN uint16 = 20 - TypeRT uint16 = 21 - TypeNSAPPTR uint16 = 23 - TypeSIG uint16 = 24 - TypeKEY uint16 = 25 - TypePX uint16 = 26 - TypeGPOS uint16 = 27 - TypeAAAA uint16 = 28 - TypeLOC uint16 = 29 - TypeNXT uint16 = 30 - TypeEID uint16 = 31 - TypeNIMLOC uint16 = 32 - TypeSRV uint16 = 33 - TypeATMA uint16 = 34 - TypeNAPTR uint16 = 35 - TypeKX uint16 = 36 - TypeCERT uint16 = 37 - TypeDNAME uint16 = 39 - TypeOPT uint16 = 41 // EDNS - TypeDS uint16 = 43 - TypeSSHFP uint16 = 44 - TypeIPSECKEY uint16 = 45 - TypeRRSIG uint16 = 46 - TypeNSEC uint16 = 47 - TypeDNSKEY uint16 = 48 - TypeDHCID uint16 = 49 - TypeNSEC3 uint16 = 50 - TypeNSEC3PARAM uint16 = 51 - TypeTLSA uint16 = 52 - TypeHIP uint16 = 55 - TypeNINFO uint16 = 56 - TypeRKEY uint16 = 57 - TypeTALINK uint16 = 58 - TypeCDS uint16 = 59 - TypeCDNSKEY uint16 = 60 - TypeOPENPGPKEY uint16 = 61 - TypeSPF uint16 = 99 - TypeUINFO uint16 = 100 - TypeUID uint16 = 101 - TypeGID uint16 = 102 - TypeUNSPEC uint16 = 103 - TypeNID uint16 = 104 - TypeL32 uint16 = 105 - TypeL64 uint16 = 106 - TypeLP uint16 = 107 - TypeEUI48 uint16 = 108 - TypeEUI64 uint16 = 109 - TypeURI uint16 = 256 - TypeCAA uint16 = 257 - - TypeTKEY uint16 = 249 - TypeTSIG uint16 = 250 - - // valid Question.Qtype only - TypeIXFR uint16 = 251 - TypeAXFR uint16 = 252 - TypeMAILB uint16 = 253 - TypeMAILA uint16 = 254 - TypeANY uint16 = 255 - - TypeTA uint16 = 32768 - TypeDLV uint16 = 32769 - TypeReserved uint16 = 65535 - - // valid Question.Qclass - ClassINET = 1 - ClassCSNET = 2 - ClassCHAOS = 3 - ClassHESIOD = 4 - ClassNONE = 254 - ClassANY = 255 - - // Message Response Codes. - RcodeSuccess = 0 - RcodeFormatError = 1 - RcodeServerFailure = 2 - RcodeNameError = 3 - RcodeNotImplemented = 4 - RcodeRefused = 5 - RcodeYXDomain = 6 - RcodeYXRrset = 7 - RcodeNXRrset = 8 - RcodeNotAuth = 9 - RcodeNotZone = 10 - RcodeBadSig = 16 // TSIG - RcodeBadVers = 16 // EDNS0 - RcodeBadKey = 17 - RcodeBadTime = 18 - RcodeBadMode = 19 // TKEY - RcodeBadName = 20 - RcodeBadAlg = 21 - RcodeBadTrunc = 22 // TSIG - - // Message Opcodes. There is no 3. - OpcodeQuery = 0 - OpcodeIQuery = 1 - OpcodeStatus = 2 - OpcodeNotify = 4 - OpcodeUpdate = 5 -) - -// Headers is the wire format for the DNS packet header. -type Header struct { - Id uint16 - Bits uint16 - Qdcount, Ancount, Nscount, Arcount uint16 -} - -const ( - headerSize = 12 - - // Header.Bits - _QR = 1 << 15 // query/response (response=1) - _AA = 1 << 10 // authoritative - _TC = 1 << 9 // truncated - _RD = 1 << 8 // recursion desired - _RA = 1 << 7 // recursion available - _Z = 1 << 6 // Z - _AD = 1 << 5 // authticated data - _CD = 1 << 4 // checking disabled - - LOC_EQUATOR = 1 << 31 // RFC 1876, Section 2. - LOC_PRIMEMERIDIAN = 1 << 31 // RFC 1876, Section 2. - - LOC_HOURS = 60 * 1000 - LOC_DEGREES = 60 * LOC_HOURS - - LOC_ALTITUDEBASE = 100000 -) - -// Different Certificate Types, see RFC 4398, Section 2.1 -const ( - CertPKIX = 1 + iota - CertSPKI - CertPGP - CertIPIX - CertISPKI - CertIPGP - CertACPKIX - CertIACPKIX - CertURI = 253 - CertOID = 254 -) - -// CertTypeToString converts the Cert Type to its string representation. -// See RFC 4398 and RFC 6944. -var CertTypeToString = map[uint16]string{ - CertPKIX: "PKIX", - CertSPKI: "SPKI", - CertPGP: "PGP", - CertIPIX: "IPIX", - CertISPKI: "ISPKI", - CertIPGP: "IPGP", - CertACPKIX: "ACPKIX", - CertIACPKIX: "IACPKIX", - CertURI: "URI", - CertOID: "OID", -} - -// StringToCertType is the reverseof CertTypeToString. -var StringToCertType = reverseInt16(CertTypeToString) - -//go:generate go run types_generate.go - -// Question holds a DNS question. There can be multiple questions in the -// question section of a message. Usually there is just one. -type Question struct { - Name string `dns:"cdomain-name"` // "cdomain-name" specifies encoding (and may be compressed) - Qtype uint16 - Qclass uint16 -} - -func (q *Question) len() int { - return len(q.Name) + 1 + 2 + 2 -} - -func (q *Question) String() (s string) { - // prefix with ; (as in dig) - s = ";" + sprintName(q.Name) + "\t" - s += Class(q.Qclass).String() + "\t" - s += " " + Type(q.Qtype).String() - return s -} - -// ANY is a wildcard record. See RFC 1035, Section 3.2.3. ANY -// is named "*" there. -type ANY struct { - Hdr RR_Header - // Does not have any rdata -} - -func (rr *ANY) String() string { return rr.Hdr.String() } - -type CNAME struct { - Hdr RR_Header - Target string `dns:"cdomain-name"` -} - -func (rr *CNAME) String() string { return rr.Hdr.String() + sprintName(rr.Target) } - -type HINFO struct { - Hdr RR_Header - Cpu string - Os string -} - -func (rr *HINFO) String() string { - return rr.Hdr.String() + sprintTxt([]string{rr.Cpu, rr.Os}) -} - -type MB struct { - Hdr RR_Header - Mb string `dns:"cdomain-name"` -} - -func (rr *MB) String() string { return rr.Hdr.String() + sprintName(rr.Mb) } - -type MG struct { - Hdr RR_Header - Mg string `dns:"cdomain-name"` -} - -func (rr *MG) String() string { return rr.Hdr.String() + sprintName(rr.Mg) } - -type MINFO struct { - Hdr RR_Header - Rmail string `dns:"cdomain-name"` - Email string `dns:"cdomain-name"` -} - -func (rr *MINFO) String() string { - return rr.Hdr.String() + sprintName(rr.Rmail) + " " + sprintName(rr.Email) -} - -type MR struct { - Hdr RR_Header - Mr string `dns:"cdomain-name"` -} - -func (rr *MR) String() string { - return rr.Hdr.String() + sprintName(rr.Mr) -} - -type MF struct { - Hdr RR_Header - Mf string `dns:"cdomain-name"` -} - -func (rr *MF) String() string { - return rr.Hdr.String() + sprintName(rr.Mf) -} - -type MD struct { - Hdr RR_Header - Md string `dns:"cdomain-name"` -} - -func (rr *MD) String() string { - return rr.Hdr.String() + sprintName(rr.Md) -} - -type MX struct { - Hdr RR_Header - Preference uint16 - Mx string `dns:"cdomain-name"` -} - -func (rr *MX) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + " " + sprintName(rr.Mx) -} - -type AFSDB struct { - Hdr RR_Header - Subtype uint16 - Hostname string `dns:"cdomain-name"` -} - -func (rr *AFSDB) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.Subtype)) + " " + sprintName(rr.Hostname) -} - -type X25 struct { - Hdr RR_Header - PSDNAddress string -} - -func (rr *X25) String() string { - return rr.Hdr.String() + rr.PSDNAddress -} - -type RT struct { - Hdr RR_Header - Preference uint16 - Host string `dns:"cdomain-name"` -} - -func (rr *RT) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + " " + sprintName(rr.Host) -} - -type NS struct { - Hdr RR_Header - Ns string `dns:"cdomain-name"` -} - -func (rr *NS) String() string { - return rr.Hdr.String() + sprintName(rr.Ns) -} - -type PTR struct { - Hdr RR_Header - Ptr string `dns:"cdomain-name"` -} - -func (rr *PTR) String() string { - return rr.Hdr.String() + sprintName(rr.Ptr) -} - -type RP struct { - Hdr RR_Header - Mbox string `dns:"domain-name"` - Txt string `dns:"domain-name"` -} - -func (rr *RP) String() string { - return rr.Hdr.String() + rr.Mbox + " " + sprintTxt([]string{rr.Txt}) -} - -type SOA struct { - Hdr RR_Header - Ns string `dns:"cdomain-name"` - Mbox string `dns:"cdomain-name"` - Serial uint32 - Refresh uint32 - Retry uint32 - Expire uint32 - Minttl uint32 -} - -func (rr *SOA) String() string { - return rr.Hdr.String() + sprintName(rr.Ns) + " " + sprintName(rr.Mbox) + - " " + strconv.FormatInt(int64(rr.Serial), 10) + - " " + strconv.FormatInt(int64(rr.Refresh), 10) + - " " + strconv.FormatInt(int64(rr.Retry), 10) + - " " + strconv.FormatInt(int64(rr.Expire), 10) + - " " + strconv.FormatInt(int64(rr.Minttl), 10) -} - -type TXT struct { - Hdr RR_Header - Txt []string `dns:"txt"` -} - -func (rr *TXT) String() string { return rr.Hdr.String() + sprintTxt(rr.Txt) } - -func sprintName(s string) string { - src := []byte(s) - dst := make([]byte, 0, len(src)) - for i := 0; i < len(src); { - if i+1 < len(src) && src[i] == '\\' && src[i+1] == '.' { - dst = append(dst, src[i:i+2]...) - i += 2 - } else { - b, n := nextByte(src, i) - if n == 0 { - i++ // dangling back slash - } else if b == '.' { - dst = append(dst, b) - } else { - dst = appendDomainNameByte(dst, b) - } - i += n - } - } - return string(dst) -} - -func sprintTxtOctet(s string) string { - src := []byte(s) - dst := make([]byte, 0, len(src)) - dst = append(dst, '"') - for i := 0; i < len(src); { - if i+1 < len(src) && src[i] == '\\' && src[i+1] == '.' { - dst = append(dst, src[i:i+2]...) - i += 2 - } else { - b, n := nextByte(src, i) - if n == 0 { - i++ // dangling back slash - } else if b == '.' { - dst = append(dst, b) - } else { - if b < ' ' || b > '~' { - dst = appendByte(dst, b) - } else { - dst = append(dst, b) - } - } - i += n - } - } - dst = append(dst, '"') - return string(dst) -} - -func sprintTxt(txt []string) string { - var out []byte - for i, s := range txt { - if i > 0 { - out = append(out, ` "`...) - } else { - out = append(out, '"') - } - bs := []byte(s) - for j := 0; j < len(bs); { - b, n := nextByte(bs, j) - if n == 0 { - break - } - out = appendTXTStringByte(out, b) - j += n - } - out = append(out, '"') - } - return string(out) -} - -func appendDomainNameByte(s []byte, b byte) []byte { - switch b { - case '.', ' ', '\'', '@', ';', '(', ')': // additional chars to escape - return append(s, '\\', b) - } - return appendTXTStringByte(s, b) -} - -func appendTXTStringByte(s []byte, b byte) []byte { - switch b { - case '\t': - return append(s, '\\', 't') - case '\r': - return append(s, '\\', 'r') - case '\n': - return append(s, '\\', 'n') - case '"', '\\': - return append(s, '\\', b) - } - if b < ' ' || b > '~' { - return appendByte(s, b) - } - return append(s, b) -} - -func appendByte(s []byte, b byte) []byte { - var buf [3]byte - bufs := strconv.AppendInt(buf[:0], int64(b), 10) - s = append(s, '\\') - for i := 0; i < 3-len(bufs); i++ { - s = append(s, '0') - } - for _, r := range bufs { - s = append(s, r) - } - return s -} - -func nextByte(b []byte, offset int) (byte, int) { - if offset >= len(b) { - return 0, 0 - } - if b[offset] != '\\' { - // not an escape sequence - return b[offset], 1 - } - switch len(b) - offset { - case 1: // dangling escape - return 0, 0 - case 2, 3: // too short to be \ddd - default: // maybe \ddd - if isDigit(b[offset+1]) && isDigit(b[offset+2]) && isDigit(b[offset+3]) { - return dddToByte(b[offset+1:]), 4 - } - } - // not \ddd, maybe a control char - switch b[offset+1] { - case 't': - return '\t', 2 - case 'r': - return '\r', 2 - case 'n': - return '\n', 2 - default: - return b[offset+1], 2 - } -} - -type SPF struct { - Hdr RR_Header - Txt []string `dns:"txt"` -} - -func (rr *SPF) String() string { return rr.Hdr.String() + sprintTxt(rr.Txt) } - -type SRV struct { - Hdr RR_Header - Priority uint16 - Weight uint16 - Port uint16 - Target string `dns:"domain-name"` -} - -func (rr *SRV) String() string { - return rr.Hdr.String() + - strconv.Itoa(int(rr.Priority)) + " " + - strconv.Itoa(int(rr.Weight)) + " " + - strconv.Itoa(int(rr.Port)) + " " + sprintName(rr.Target) -} - -type NAPTR struct { - Hdr RR_Header - Order uint16 - Preference uint16 - Flags string - Service string - Regexp string - Replacement string `dns:"domain-name"` -} - -func (rr *NAPTR) String() string { - return rr.Hdr.String() + - strconv.Itoa(int(rr.Order)) + " " + - strconv.Itoa(int(rr.Preference)) + " " + - "\"" + rr.Flags + "\" " + - "\"" + rr.Service + "\" " + - "\"" + rr.Regexp + "\" " + - rr.Replacement -} - -// The CERT resource record, see RFC 4398. -type CERT struct { - Hdr RR_Header - Type uint16 - KeyTag uint16 - Algorithm uint8 - Certificate string `dns:"base64"` -} - -func (rr *CERT) String() string { - var ( - ok bool - certtype, algorithm string - ) - if certtype, ok = CertTypeToString[rr.Type]; !ok { - certtype = strconv.Itoa(int(rr.Type)) - } - if algorithm, ok = AlgorithmToString[rr.Algorithm]; !ok { - algorithm = strconv.Itoa(int(rr.Algorithm)) - } - return rr.Hdr.String() + certtype + - " " + strconv.Itoa(int(rr.KeyTag)) + - " " + algorithm + - " " + rr.Certificate -} - -// The DNAME resource record, see RFC 2672. -type DNAME struct { - Hdr RR_Header - Target string `dns:"domain-name"` -} - -func (rr *DNAME) String() string { - return rr.Hdr.String() + sprintName(rr.Target) -} - -type A struct { - Hdr RR_Header - A net.IP `dns:"a"` -} - -func (rr *A) String() string { - if rr.A == nil { - return rr.Hdr.String() - } - return rr.Hdr.String() + rr.A.String() -} - -type AAAA struct { - Hdr RR_Header - AAAA net.IP `dns:"aaaa"` -} - -func (rr *AAAA) String() string { - if rr.AAAA == nil { - return rr.Hdr.String() - } - return rr.Hdr.String() + rr.AAAA.String() -} - -type PX struct { - Hdr RR_Header - Preference uint16 - Map822 string `dns:"domain-name"` - Mapx400 string `dns:"domain-name"` -} - -func (rr *PX) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + " " + sprintName(rr.Map822) + " " + sprintName(rr.Mapx400) -} - -type GPOS struct { - Hdr RR_Header - Longitude string - Latitude string - Altitude string -} - -func (rr *GPOS) String() string { - return rr.Hdr.String() + rr.Longitude + " " + rr.Latitude + " " + rr.Altitude -} - -type LOC struct { - Hdr RR_Header - Version uint8 - Size uint8 - HorizPre uint8 - VertPre uint8 - Latitude uint32 - Longitude uint32 - Altitude uint32 -} - -// cmToM takes a cm value expressed in RFC1876 SIZE mantissa/exponent -// format and returns a string in m (two decimals for the cm) -func cmToM(m, e uint8) string { - if e < 2 { - if e == 1 { - m *= 10 - } - - return fmt.Sprintf("0.%02d", m) - } - - s := fmt.Sprintf("%d", m) - for e > 2 { - s += "0" - e-- - } - return s -} - -func (rr *LOC) String() string { - s := rr.Hdr.String() - - lat := rr.Latitude - ns := "N" - if lat > LOC_EQUATOR { - lat = lat - LOC_EQUATOR - } else { - ns = "S" - lat = LOC_EQUATOR - lat - } - h := lat / LOC_DEGREES - lat = lat % LOC_DEGREES - m := lat / LOC_HOURS - lat = lat % LOC_HOURS - s += fmt.Sprintf("%02d %02d %0.3f %s ", h, m, (float64(lat) / 1000), ns) - - lon := rr.Longitude - ew := "E" - if lon > LOC_PRIMEMERIDIAN { - lon = lon - LOC_PRIMEMERIDIAN - } else { - ew = "W" - lon = LOC_PRIMEMERIDIAN - lon - } - h = lon / LOC_DEGREES - lon = lon % LOC_DEGREES - m = lon / LOC_HOURS - lon = lon % LOC_HOURS - s += fmt.Sprintf("%02d %02d %0.3f %s ", h, m, (float64(lon) / 1000), ew) - - var alt = float64(rr.Altitude) / 100 - alt -= LOC_ALTITUDEBASE - if rr.Altitude%100 != 0 { - s += fmt.Sprintf("%.2fm ", alt) - } else { - s += fmt.Sprintf("%.0fm ", alt) - } - - s += cmToM((rr.Size&0xf0)>>4, rr.Size&0x0f) + "m " - s += cmToM((rr.HorizPre&0xf0)>>4, rr.HorizPre&0x0f) + "m " - s += cmToM((rr.VertPre&0xf0)>>4, rr.VertPre&0x0f) + "m" - - return s -} - -// SIG is identical to RRSIG and nowadays only used for SIG(0), RFC2931. -type SIG struct { - RRSIG -} - -type RRSIG struct { - Hdr RR_Header - TypeCovered uint16 - Algorithm uint8 - Labels uint8 - OrigTtl uint32 - Expiration uint32 - Inception uint32 - KeyTag uint16 - SignerName string `dns:"domain-name"` - Signature string `dns:"base64"` -} - -func (rr *RRSIG) String() string { - s := rr.Hdr.String() - s += Type(rr.TypeCovered).String() - s += " " + strconv.Itoa(int(rr.Algorithm)) + - " " + strconv.Itoa(int(rr.Labels)) + - " " + strconv.FormatInt(int64(rr.OrigTtl), 10) + - " " + TimeToString(rr.Expiration) + - " " + TimeToString(rr.Inception) + - " " + strconv.Itoa(int(rr.KeyTag)) + - " " + sprintName(rr.SignerName) + - " " + rr.Signature - return s -} - -type NSEC struct { - Hdr RR_Header - NextDomain string `dns:"domain-name"` - TypeBitMap []uint16 `dns:"nsec"` -} - -func (rr *NSEC) String() string { - s := rr.Hdr.String() + sprintName(rr.NextDomain) - for i := 0; i < len(rr.TypeBitMap); i++ { - s += " " + Type(rr.TypeBitMap[i]).String() - } - return s -} - -func (rr *NSEC) len() int { - l := rr.Hdr.len() + len(rr.NextDomain) + 1 - lastwindow := uint32(2 ^ 32 + 1) - for _, t := range rr.TypeBitMap { - window := t / 256 - if uint32(window) != lastwindow { - l += 1 + 32 - } - lastwindow = uint32(window) - } - return l -} - -type DLV struct { - DS -} - -type CDS struct { - DS -} - -type DS struct { - Hdr RR_Header - KeyTag uint16 - Algorithm uint8 - DigestType uint8 - Digest string `dns:"hex"` -} - -func (rr *DS) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.KeyTag)) + - " " + strconv.Itoa(int(rr.Algorithm)) + - " " + strconv.Itoa(int(rr.DigestType)) + - " " + strings.ToUpper(rr.Digest) -} - -type KX struct { - Hdr RR_Header - Preference uint16 - Exchanger string `dns:"domain-name"` -} - -func (rr *KX) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + - " " + sprintName(rr.Exchanger) -} - -type TA struct { - Hdr RR_Header - KeyTag uint16 - Algorithm uint8 - DigestType uint8 - Digest string `dns:"hex"` -} - -func (rr *TA) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.KeyTag)) + - " " + strconv.Itoa(int(rr.Algorithm)) + - " " + strconv.Itoa(int(rr.DigestType)) + - " " + strings.ToUpper(rr.Digest) -} - -type TALINK struct { - Hdr RR_Header - PreviousName string `dns:"domain-name"` - NextName string `dns:"domain-name"` -} - -func (rr *TALINK) String() string { - return rr.Hdr.String() + - sprintName(rr.PreviousName) + " " + sprintName(rr.NextName) -} - -type SSHFP struct { - Hdr RR_Header - Algorithm uint8 - Type uint8 - FingerPrint string `dns:"hex"` -} - -func (rr *SSHFP) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.Algorithm)) + - " " + strconv.Itoa(int(rr.Type)) + - " " + strings.ToUpper(rr.FingerPrint) -} - -type IPSECKEY struct { - Hdr RR_Header - Precedence uint8 - // GatewayType: 1: A record, 2: AAAA record, 3: domainname. - // 0 is use for no type and GatewayName should be "." then. - GatewayType uint8 - Algorithm uint8 - // Gateway can be an A record, AAAA record or a domain name. - GatewayA net.IP `dns:"a"` - GatewayAAAA net.IP `dns:"aaaa"` - GatewayName string `dns:"domain-name"` - PublicKey string `dns:"base64"` -} - -func (rr *IPSECKEY) String() string { - s := rr.Hdr.String() + strconv.Itoa(int(rr.Precedence)) + - " " + strconv.Itoa(int(rr.GatewayType)) + - " " + strconv.Itoa(int(rr.Algorithm)) - switch rr.GatewayType { - case 0: - fallthrough - case 3: - s += " " + rr.GatewayName - case 1: - s += " " + rr.GatewayA.String() - case 2: - s += " " + rr.GatewayAAAA.String() - default: - s += " ." - } - s += " " + rr.PublicKey - return s -} - -func (rr *IPSECKEY) len() int { - l := rr.Hdr.len() + 3 + 1 - switch rr.GatewayType { - default: - fallthrough - case 0: - fallthrough - case 3: - l += len(rr.GatewayName) - case 1: - l += 4 - case 2: - l += 16 - } - return l + base64.StdEncoding.DecodedLen(len(rr.PublicKey)) -} - -type KEY struct { - DNSKEY -} - -type CDNSKEY struct { - DNSKEY -} - -type DNSKEY struct { - Hdr RR_Header - Flags uint16 - Protocol uint8 - Algorithm uint8 - PublicKey string `dns:"base64"` -} - -func (rr *DNSKEY) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.Flags)) + - " " + strconv.Itoa(int(rr.Protocol)) + - " " + strconv.Itoa(int(rr.Algorithm)) + - " " + rr.PublicKey -} - -type RKEY struct { - Hdr RR_Header - Flags uint16 - Protocol uint8 - Algorithm uint8 - PublicKey string `dns:"base64"` -} - -func (rr *RKEY) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.Flags)) + - " " + strconv.Itoa(int(rr.Protocol)) + - " " + strconv.Itoa(int(rr.Algorithm)) + - " " + rr.PublicKey -} - -type NSAPPTR struct { - Hdr RR_Header - Ptr string `dns:"domain-name"` -} - -func (rr *NSAPPTR) String() string { return rr.Hdr.String() + sprintName(rr.Ptr) } - -type NSEC3 struct { - Hdr RR_Header - Hash uint8 - Flags uint8 - Iterations uint16 - SaltLength uint8 - Salt string `dns:"size-hex"` - HashLength uint8 - NextDomain string `dns:"size-base32"` - TypeBitMap []uint16 `dns:"nsec"` -} - -func (rr *NSEC3) String() string { - s := rr.Hdr.String() - s += strconv.Itoa(int(rr.Hash)) + - " " + strconv.Itoa(int(rr.Flags)) + - " " + strconv.Itoa(int(rr.Iterations)) + - " " + saltToString(rr.Salt) + - " " + rr.NextDomain - for i := 0; i < len(rr.TypeBitMap); i++ { - s += " " + Type(rr.TypeBitMap[i]).String() - } - return s -} - -func (rr *NSEC3) len() int { - l := rr.Hdr.len() + 6 + len(rr.Salt)/2 + 1 + len(rr.NextDomain) + 1 - lastwindow := uint32(2 ^ 32 + 1) - for _, t := range rr.TypeBitMap { - window := t / 256 - if uint32(window) != lastwindow { - l += 1 + 32 - } - lastwindow = uint32(window) - } - return l -} - -type NSEC3PARAM struct { - Hdr RR_Header - Hash uint8 - Flags uint8 - Iterations uint16 - SaltLength uint8 - Salt string `dns:"hex"` -} - -func (rr *NSEC3PARAM) String() string { - s := rr.Hdr.String() - s += strconv.Itoa(int(rr.Hash)) + - " " + strconv.Itoa(int(rr.Flags)) + - " " + strconv.Itoa(int(rr.Iterations)) + - " " + saltToString(rr.Salt) - return s -} - -type TKEY struct { - Hdr RR_Header - Algorithm string `dns:"domain-name"` - Inception uint32 - Expiration uint32 - Mode uint16 - Error uint16 - KeySize uint16 - Key string - OtherLen uint16 - OtherData string -} - -func (rr *TKEY) String() string { - // It has no presentation format - return "" -} - -// RFC3597 represents an unknown/generic RR. -type RFC3597 struct { - Hdr RR_Header - Rdata string `dns:"hex"` -} - -func (rr *RFC3597) String() string { - // Let's call it a hack - s := rfc3597Header(rr.Hdr) - - s += "\\# " + strconv.Itoa(len(rr.Rdata)/2) + " " + rr.Rdata - return s -} - -func rfc3597Header(h RR_Header) string { - var s string - - s += sprintName(h.Name) + "\t" - s += strconv.FormatInt(int64(h.Ttl), 10) + "\t" - s += "CLASS" + strconv.Itoa(int(h.Class)) + "\t" - s += "TYPE" + strconv.Itoa(int(h.Rrtype)) + "\t" - return s -} - -type URI struct { - Hdr RR_Header - Priority uint16 - Weight uint16 - Target string `dns:"octet"` -} - -func (rr *URI) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.Priority)) + - " " + strconv.Itoa(int(rr.Weight)) + " " + sprintTxtOctet(rr.Target) -} - -type DHCID struct { - Hdr RR_Header - Digest string `dns:"base64"` -} - -func (rr *DHCID) String() string { return rr.Hdr.String() + rr.Digest } - -type TLSA struct { - Hdr RR_Header - Usage uint8 - Selector uint8 - MatchingType uint8 - Certificate string `dns:"hex"` -} - -func (rr *TLSA) String() string { - return rr.Hdr.String() + - strconv.Itoa(int(rr.Usage)) + - " " + strconv.Itoa(int(rr.Selector)) + - " " + strconv.Itoa(int(rr.MatchingType)) + - " " + rr.Certificate -} - -type HIP struct { - Hdr RR_Header - HitLength uint8 - PublicKeyAlgorithm uint8 - PublicKeyLength uint16 - Hit string `dns:"hex"` - PublicKey string `dns:"base64"` - RendezvousServers []string `dns:"domain-name"` -} - -func (rr *HIP) String() string { - s := rr.Hdr.String() + - strconv.Itoa(int(rr.PublicKeyAlgorithm)) + - " " + rr.Hit + - " " + rr.PublicKey - for _, d := range rr.RendezvousServers { - s += " " + sprintName(d) - } - return s -} - -type NINFO struct { - Hdr RR_Header - ZSData []string `dns:"txt"` -} - -func (rr *NINFO) String() string { return rr.Hdr.String() + sprintTxt(rr.ZSData) } - -type WKS struct { - Hdr RR_Header - Address net.IP `dns:"a"` - Protocol uint8 - BitMap []uint16 `dns:"wks"` -} - -func (rr *WKS) len() int { - // TODO: this is missing something... - return rr.Hdr.len() + net.IPv4len + 1 -} - -func (rr *WKS) String() (s string) { - s = rr.Hdr.String() - if rr.Address != nil { - s += rr.Address.String() - } - // TODO(miek): missing protocol here, see /etc/protocols - for i := 0; i < len(rr.BitMap); i++ { - // should lookup the port - s += " " + strconv.Itoa(int(rr.BitMap[i])) - } - return s -} - -type NID struct { - Hdr RR_Header - Preference uint16 - NodeID uint64 -} - -func (rr *NID) String() string { - s := rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) - node := fmt.Sprintf("%0.16x", rr.NodeID) - s += " " + node[0:4] + ":" + node[4:8] + ":" + node[8:12] + ":" + node[12:16] - return s -} - -type L32 struct { - Hdr RR_Header - Preference uint16 - Locator32 net.IP `dns:"a"` -} - -func (rr *L32) String() string { - if rr.Locator32 == nil { - return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) - } - return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + - " " + rr.Locator32.String() -} - -type L64 struct { - Hdr RR_Header - Preference uint16 - Locator64 uint64 -} - -func (rr *L64) String() string { - s := rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) - node := fmt.Sprintf("%0.16X", rr.Locator64) - s += " " + node[0:4] + ":" + node[4:8] + ":" + node[8:12] + ":" + node[12:16] - return s -} - -type LP struct { - Hdr RR_Header - Preference uint16 - Fqdn string `dns:"domain-name"` -} - -func (rr *LP) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.Preference)) + " " + sprintName(rr.Fqdn) -} - -type EUI48 struct { - Hdr RR_Header - Address uint64 `dns:"uint48"` -} - -func (rr *EUI48) String() string { return rr.Hdr.String() + euiToString(rr.Address, 48) } - -type EUI64 struct { - Hdr RR_Header - Address uint64 -} - -func (rr *EUI64) String() string { return rr.Hdr.String() + euiToString(rr.Address, 64) } - -type CAA struct { - Hdr RR_Header - Flag uint8 - Tag string - Value string `dns:"octet"` -} - -func (rr *CAA) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.Flag)) + " " + rr.Tag + " " + sprintTxtOctet(rr.Value) -} - -type UID struct { - Hdr RR_Header - Uid uint32 -} - -func (rr *UID) String() string { return rr.Hdr.String() + strconv.FormatInt(int64(rr.Uid), 10) } - -type GID struct { - Hdr RR_Header - Gid uint32 -} - -func (rr *GID) String() string { return rr.Hdr.String() + strconv.FormatInt(int64(rr.Gid), 10) } - -type UINFO struct { - Hdr RR_Header - Uinfo string -} - -func (rr *UINFO) String() string { return rr.Hdr.String() + sprintTxt([]string{rr.Uinfo}) } - -type EID struct { - Hdr RR_Header - Endpoint string `dns:"hex"` -} - -func (rr *EID) String() string { return rr.Hdr.String() + strings.ToUpper(rr.Endpoint) } - -type NIMLOC struct { - Hdr RR_Header - Locator string `dns:"hex"` -} - -func (rr *NIMLOC) String() string { return rr.Hdr.String() + strings.ToUpper(rr.Locator) } - -type OPENPGPKEY struct { - Hdr RR_Header - PublicKey string `dns:"base64"` -} - -func (rr *OPENPGPKEY) String() string { return rr.Hdr.String() + rr.PublicKey } - -// TimeToString translates the RRSIG's incep. and expir. times to the -// string representation used when printing the record. -// It takes serial arithmetic (RFC 1982) into account. -func TimeToString(t uint32) string { - mod := ((int64(t) - time.Now().Unix()) / year68) - 1 - if mod < 0 { - mod = 0 - } - ti := time.Unix(int64(t)-(mod*year68), 0).UTC() - return ti.Format("20060102150405") -} - -// StringToTime translates the RRSIG's incep. and expir. times from -// string values like "20110403154150" to an 32 bit integer. -// It takes serial arithmetic (RFC 1982) into account. -func StringToTime(s string) (uint32, error) { - t, e := time.Parse("20060102150405", s) - if e != nil { - return 0, e - } - mod := (t.Unix() / year68) - 1 - if mod < 0 { - mod = 0 - } - return uint32(t.Unix() - (mod * year68)), nil -} - -// saltToString converts a NSECX salt to uppercase and -// returns "-" when it is empty -func saltToString(s string) string { - if len(s) == 0 { - return "-" - } - return strings.ToUpper(s) -} - -func euiToString(eui uint64, bits int) (hex string) { - switch bits { - case 64: - hex = fmt.Sprintf("%16.16x", eui) - hex = hex[0:2] + "-" + hex[2:4] + "-" + hex[4:6] + "-" + hex[6:8] + - "-" + hex[8:10] + "-" + hex[10:12] + "-" + hex[12:14] + "-" + hex[14:16] - case 48: - hex = fmt.Sprintf("%12.12x", eui) - hex = hex[0:2] + "-" + hex[2:4] + "-" + hex[4:6] + "-" + hex[6:8] + - "-" + hex[8:10] + "-" + hex[10:12] - } - return -} - -// copyIP returns a copy of ip. -func copyIP(ip net.IP) net.IP { - p := make(net.IP, len(ip)) - copy(p, ip) - return p -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/types_generate.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/types_generate.go deleted file mode 100644 index 53690141..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/types_generate.go +++ /dev/null @@ -1,266 +0,0 @@ -//+build ignore - -// types_generate.go is meant to run with go generate. It will use -// go/{importer,types} to track down all the RR struct types. Then for each type -// it will generate conversion tables (TypeToRR and TypeToString) and banal -// methods (len, Header, copy) based on the struct tags. The generated source is -// written to ztypes.go, and is meant to be checked into git. -package main - -import ( - "bytes" - "fmt" - "go/format" - "go/importer" - "go/types" - "log" - "os" - "strings" - "text/template" -) - -var skipLen = map[string]struct{}{ - "NSEC": struct{}{}, - "NSEC3": struct{}{}, - "OPT": struct{}{}, - "WKS": struct{}{}, - "IPSECKEY": struct{}{}, -} - -var packageHdr = ` -// *** DO NOT MODIFY *** -// AUTOGENERATED BY go generate - -package dns - -import ( - "encoding/base64" - "net" -) - -` - -var TypeToRR = template.Must(template.New("TypeToRR").Parse(` -// TypeToRR is a map of constructors for each RR type. -var TypeToRR = map[uint16]func() RR{ -{{range .}}{{if ne . "RFC3597"}} Type{{.}}: func() RR { return new({{.}}) }, -{{end}}{{end}} } - -`)) - -var typeToString = template.Must(template.New("typeToString").Parse(` -// TypeToString is a map of strings for each RR type. -var TypeToString = map[uint16]string{ -{{range .}}{{if ne . "NSAPPTR"}} Type{{.}}: "{{.}}", -{{end}}{{end}} TypeNSAPPTR: "NSAP-PTR", -} - -`)) - -var headerFunc = template.Must(template.New("headerFunc").Parse(` -// Header() functions -{{range .}} func (rr *{{.}}) Header() *RR_Header { return &rr.Hdr } -{{end}} - -`)) - -// getTypeStruct will take a type and the package scope, and return the -// (innermost) struct if the type is considered a RR type (currently defined as -// those structs beginning with a RR_Header, could be redefined as implementing -// the RR interface). The bool return value indicates if embedded structs were -// resolved. -func getTypeStruct(t types.Type, scope *types.Scope) (*types.Struct, bool) { - st, ok := t.Underlying().(*types.Struct) - if !ok { - return nil, false - } - if st.Field(0).Type() == scope.Lookup("RR_Header").Type() { - return st, false - } - if st.Field(0).Anonymous() { - st, _ := getTypeStruct(st.Field(0).Type(), scope) - return st, true - } - return nil, false -} - -func main() { - // Import and type-check the package - pkg, err := importer.Default().Import("github.com/miekg/dns") - fatalIfErr(err) - scope := pkg.Scope() - - // Collect constants like TypeX - var numberedTypes []string - for _, name := range scope.Names() { - o := scope.Lookup(name) - if o == nil || !o.Exported() { - continue - } - b, ok := o.Type().(*types.Basic) - if !ok || b.Kind() != types.Uint16 { - continue - } - if !strings.HasPrefix(o.Name(), "Type") { - continue - } - name := strings.TrimPrefix(o.Name(), "Type") - if name == "PrivateRR" { - continue - } - numberedTypes = append(numberedTypes, name) - } - - // Collect actual types (*X) - var namedTypes []string - for _, name := range scope.Names() { - o := scope.Lookup(name) - if o == nil || !o.Exported() { - continue - } - if st, _ := getTypeStruct(o.Type(), scope); st == nil { - continue - } - if name == "PrivateRR" { - continue - } - - // Check if corresponding TypeX exists - if scope.Lookup("Type"+o.Name()) == nil && o.Name() != "RFC3597" { - log.Fatalf("Constant Type%s does not exist.", o.Name()) - } - - namedTypes = append(namedTypes, o.Name()) - } - - b := &bytes.Buffer{} - b.WriteString(packageHdr) - - // Generate TypeToRR - fatalIfErr(TypeToRR.Execute(b, namedTypes)) - - // Generate typeToString - fatalIfErr(typeToString.Execute(b, numberedTypes)) - - // Generate headerFunc - fatalIfErr(headerFunc.Execute(b, namedTypes)) - - // Generate len() - fmt.Fprint(b, "// len() functions\n") - for _, name := range namedTypes { - if _, ok := skipLen[name]; ok { - continue - } - o := scope.Lookup(name) - st, isEmbedded := getTypeStruct(o.Type(), scope) - if isEmbedded { - continue - } - fmt.Fprintf(b, "func (rr *%s) len() int {\n", name) - fmt.Fprintf(b, "l := rr.Hdr.len()\n") - for i := 1; i < st.NumFields(); i++ { - o := func(s string) { fmt.Fprintf(b, s, st.Field(i).Name()) } - - if _, ok := st.Field(i).Type().(*types.Slice); ok { - switch st.Tag(i) { - case `dns:"-"`: - // ignored - case `dns:"cdomain-name"`, `dns:"domain-name"`, `dns:"txt"`: - o("for _, x := range rr.%s { l += len(x) + 1 }\n") - default: - log.Fatalln(name, st.Field(i).Name(), st.Tag(i)) - } - continue - } - - switch st.Tag(i) { - case `dns:"-"`: - // ignored - case `dns:"cdomain-name"`, `dns:"domain-name"`: - o("l += len(rr.%s) + 1\n") - case `dns:"octet"`: - o("l += len(rr.%s)\n") - case `dns:"base64"`: - o("l += base64.StdEncoding.DecodedLen(len(rr.%s))\n") - case `dns:"size-hex"`, `dns:"hex"`: - o("l += len(rr.%s)/2 + 1\n") - case `dns:"a"`: - o("l += net.IPv4len // %s\n") - case `dns:"aaaa"`: - o("l += net.IPv6len // %s\n") - case `dns:"txt"`: - o("for _, t := range rr.%s { l += len(t) + 1 }\n") - case `dns:"uint48"`: - o("l += 6 // %s\n") - case "": - switch st.Field(i).Type().(*types.Basic).Kind() { - case types.Uint8: - o("l += 1 // %s\n") - case types.Uint16: - o("l += 2 // %s\n") - case types.Uint32: - o("l += 4 // %s\n") - case types.Uint64: - o("l += 8 // %s\n") - case types.String: - o("l += len(rr.%s) + 1\n") - default: - log.Fatalln(name, st.Field(i).Name()) - } - default: - log.Fatalln(name, st.Field(i).Name(), st.Tag(i)) - } - } - fmt.Fprintf(b, "return l }\n") - } - - // Generate copy() - fmt.Fprint(b, "// copy() functions\n") - for _, name := range namedTypes { - o := scope.Lookup(name) - st, isEmbedded := getTypeStruct(o.Type(), scope) - if isEmbedded { - continue - } - fmt.Fprintf(b, "func (rr *%s) copy() RR {\n", name) - fields := []string{"*rr.Hdr.copyHeader()"} - for i := 1; i < st.NumFields(); i++ { - f := st.Field(i).Name() - if sl, ok := st.Field(i).Type().(*types.Slice); ok { - t := sl.Underlying().String() - t = strings.TrimPrefix(t, "[]") - t = strings.TrimPrefix(t, "github.com/miekg/dns.") - fmt.Fprintf(b, "%s := make([]%s, len(rr.%s)); copy(%s, rr.%s)\n", - f, t, f, f, f) - fields = append(fields, f) - continue - } - if st.Field(i).Type().String() == "net.IP" { - fields = append(fields, "copyIP(rr."+f+")") - continue - } - fields = append(fields, "rr."+f) - } - fmt.Fprintf(b, "return &%s{%s}\n", name, strings.Join(fields, ",")) - fmt.Fprintf(b, "}\n") - } - - // gofmt - res, err := format.Source(b.Bytes()) - if err != nil { - b.WriteTo(os.Stderr) - log.Fatal(err) - } - - // write result - f, err := os.Create("ztypes.go") - fatalIfErr(err) - defer f.Close() - f.Write(res) -} - -func fatalIfErr(err error) { - if err != nil { - log.Fatal(err) - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/types_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/types_test.go deleted file mode 100644 index 11861294..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/types_test.go +++ /dev/null @@ -1,42 +0,0 @@ -package dns - -import ( - "testing" -) - -func TestCmToM(t *testing.T) { - s := cmToM(0, 0) - if s != "0.00" { - t.Error("0, 0") - } - - s = cmToM(1, 0) - if s != "0.01" { - t.Error("1, 0") - } - - s = cmToM(3, 1) - if s != "0.30" { - t.Error("3, 1") - } - - s = cmToM(4, 2) - if s != "4" { - t.Error("4, 2") - } - - s = cmToM(5, 3) - if s != "50" { - t.Error("5, 3") - } - - s = cmToM(7, 5) - if s != "7000" { - t.Error("7, 5") - } - - s = cmToM(9, 9) - if s != "90000000" { - t.Error("9, 9") - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp.go deleted file mode 100644 index fc865637..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp.go +++ /dev/null @@ -1,58 +0,0 @@ -// +build !windows - -package dns - -import ( - "net" - "syscall" -) - -// SessionUDP holds the remote address and the associated -// out-of-band data. -type SessionUDP struct { - raddr *net.UDPAddr - context []byte -} - -// RemoteAddr returns the remote network address. -func (s *SessionUDP) RemoteAddr() net.Addr { return s.raddr } - -// setUDPSocketOptions sets the UDP socket options. -// This function is implemented on a per platform basis. See udp_*.go for more details -func setUDPSocketOptions(conn *net.UDPConn) error { - sa, err := getUDPSocketName(conn) - if err != nil { - return err - } - switch sa.(type) { - case *syscall.SockaddrInet6: - v6only, err := getUDPSocketOptions6Only(conn) - if err != nil { - return err - } - setUDPSocketOptions6(conn) - if !v6only { - setUDPSocketOptions4(conn) - } - case *syscall.SockaddrInet4: - setUDPSocketOptions4(conn) - } - return nil -} - -// ReadFromSessionUDP acts just like net.UDPConn.ReadFrom(), but returns a session object instead of a -// net.UDPAddr. -func ReadFromSessionUDP(conn *net.UDPConn, b []byte) (int, *SessionUDP, error) { - oob := make([]byte, 40) - n, oobn, _, raddr, err := conn.ReadMsgUDP(b, oob) - if err != nil { - return n, nil, err - } - return n, &SessionUDP{raddr, oob[:oobn]}, err -} - -// WriteToSessionUDP acts just like net.UDPConn.WritetTo(), but uses a *SessionUDP instead of a net.Addr. -func WriteToSessionUDP(conn *net.UDPConn, b []byte, session *SessionUDP) (int, error) { - n, _, err := conn.WriteMsgUDP(b, session.context, session.raddr) - return n, err -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp_linux.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp_linux.go deleted file mode 100644 index 7a107857..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp_linux.go +++ /dev/null @@ -1,63 +0,0 @@ -// +build linux - -package dns - -// See: -// * http://stackoverflow.com/questions/3062205/setting-the-source-ip-for-a-udp-socket and -// * http://blog.powerdns.com/2012/10/08/on-binding-datagram-udp-sockets-to-the-any-addresses/ -// -// Why do we need this: When listening on 0.0.0.0 with UDP so kernel decides what is the outgoing -// interface, this might not always be the correct one. This code will make sure the egress -// packet's interface matched the ingress' one. - -import ( - "net" - "syscall" -) - -// setUDPSocketOptions4 prepares the v4 socket for sessions. -func setUDPSocketOptions4(conn *net.UDPConn) error { - file, err := conn.File() - if err != nil { - return err - } - if err := syscall.SetsockoptInt(int(file.Fd()), syscall.IPPROTO_IP, syscall.IP_PKTINFO, 1); err != nil { - return err - } - return nil -} - -// setUDPSocketOptions6 prepares the v6 socket for sessions. -func setUDPSocketOptions6(conn *net.UDPConn) error { - file, err := conn.File() - if err != nil { - return err - } - if err := syscall.SetsockoptInt(int(file.Fd()), syscall.IPPROTO_IPV6, syscall.IPV6_RECVPKTINFO, 1); err != nil { - return err - } - return nil -} - -// getUDPSocketOption6Only return true if the socket is v6 only and false when it is v4/v6 combined -// (dualstack). -func getUDPSocketOptions6Only(conn *net.UDPConn) (bool, error) { - file, err := conn.File() - if err != nil { - return false, err - } - // dual stack. See http://stackoverflow.com/questions/1618240/how-to-support-both-ipv4-and-ipv6-connections - v6only, err := syscall.GetsockoptInt(int(file.Fd()), syscall.IPPROTO_IPV6, syscall.IPV6_V6ONLY) - if err != nil { - return false, err - } - return v6only == 1, nil -} - -func getUDPSocketName(conn *net.UDPConn) (syscall.Sockaddr, error) { - file, err := conn.File() - if err != nil { - return nil, err - } - return syscall.Getsockname(int(file.Fd())) -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp_other.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp_other.go deleted file mode 100644 index c38dd3e7..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp_other.go +++ /dev/null @@ -1,17 +0,0 @@ -// +build !linux - -package dns - -import ( - "net" - "syscall" -) - -// These do nothing. See udp_linux.go for an example of how to implement this. - -// We tried to adhire to some kind of naming scheme. - -func setUDPSocketOptions4(conn *net.UDPConn) error { return nil } -func setUDPSocketOptions6(conn *net.UDPConn) error { return nil } -func getUDPSocketOptions6Only(conn *net.UDPConn) (bool, error) { return false, nil } -func getUDPSocketName(conn *net.UDPConn) (syscall.Sockaddr, error) { return nil, nil } diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp_windows.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp_windows.go deleted file mode 100644 index 2ce4b330..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/udp_windows.go +++ /dev/null @@ -1,34 +0,0 @@ -// +build windows - -package dns - -import "net" - -type SessionUDP struct { - raddr *net.UDPAddr -} - -// ReadFromSessionUDP acts just like net.UDPConn.ReadFrom(), but returns a session object instead of a -// net.UDPAddr. -func ReadFromSessionUDP(conn *net.UDPConn, b []byte) (int, *SessionUDP, error) { - n, raddr, err := conn.ReadFrom(b) - if err != nil { - return n, nil, err - } - session := &SessionUDP{raddr.(*net.UDPAddr)} - return n, session, err -} - -// WriteToSessionUDP acts just like net.UDPConn.WritetTo(), but uses a *SessionUDP instead of a net.Addr. -func WriteToSessionUDP(conn *net.UDPConn, b []byte, session *SessionUDP) (int, error) { - n, err := conn.WriteTo(b, session.raddr) - return n, err -} - -func (s *SessionUDP) RemoteAddr() net.Addr { return s.raddr } - -// setUDPSocketOptions sets the UDP socket options. -// This function is implemented on a per platform basis. See udp_*.go for more details -func setUDPSocketOptions(conn *net.UDPConn) error { - return nil -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/update.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/update.go deleted file mode 100644 index 3539987c..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/update.go +++ /dev/null @@ -1,94 +0,0 @@ -package dns - -// NameUsed sets the RRs in the prereq section to -// "Name is in use" RRs. RFC 2136 section 2.4.4. -func (u *Msg) NameUsed(rr []RR) { - u.Answer = make([]RR, len(rr)) - for i, r := range rr { - u.Answer[i] = &ANY{Hdr: RR_Header{Name: r.Header().Name, Ttl: 0, Rrtype: TypeANY, Class: ClassANY}} - } -} - -// NameNotUsed sets the RRs in the prereq section to -// "Name is in not use" RRs. RFC 2136 section 2.4.5. -func (u *Msg) NameNotUsed(rr []RR) { - u.Answer = make([]RR, len(rr)) - for i, r := range rr { - u.Answer[i] = &ANY{Hdr: RR_Header{Name: r.Header().Name, Ttl: 0, Rrtype: TypeANY, Class: ClassNONE}} - } -} - -// Used sets the RRs in the prereq section to -// "RRset exists (value dependent -- with rdata)" RRs. RFC 2136 section 2.4.2. -func (u *Msg) Used(rr []RR) { - if len(u.Question) == 0 { - panic("dns: empty question section") - } - u.Answer = make([]RR, len(rr)) - for i, r := range rr { - u.Answer[i] = r - u.Answer[i].Header().Class = u.Question[0].Qclass - } -} - -// RRsetUsed sets the RRs in the prereq section to -// "RRset exists (value independent -- no rdata)" RRs. RFC 2136 section 2.4.1. -func (u *Msg) RRsetUsed(rr []RR) { - u.Answer = make([]RR, len(rr)) - for i, r := range rr { - u.Answer[i] = r - u.Answer[i].Header().Class = ClassANY - u.Answer[i].Header().Ttl = 0 - u.Answer[i].Header().Rdlength = 0 - } -} - -// RRsetNotUsed sets the RRs in the prereq section to -// "RRset does not exist" RRs. RFC 2136 section 2.4.3. -func (u *Msg) RRsetNotUsed(rr []RR) { - u.Answer = make([]RR, len(rr)) - for i, r := range rr { - u.Answer[i] = r - u.Answer[i].Header().Class = ClassNONE - u.Answer[i].Header().Rdlength = 0 - u.Answer[i].Header().Ttl = 0 - } -} - -// Insert creates a dynamic update packet that adds an complete RRset, see RFC 2136 section 2.5.1. -func (u *Msg) Insert(rr []RR) { - if len(u.Question) == 0 { - panic("dns: empty question section") - } - u.Ns = make([]RR, len(rr)) - for i, r := range rr { - u.Ns[i] = r - u.Ns[i].Header().Class = u.Question[0].Qclass - } -} - -// RemoveRRset creates a dynamic update packet that deletes an RRset, see RFC 2136 section 2.5.2. -func (u *Msg) RemoveRRset(rr []RR) { - u.Ns = make([]RR, len(rr)) - for i, r := range rr { - u.Ns[i] = &ANY{Hdr: RR_Header{Name: r.Header().Name, Ttl: 0, Rrtype: r.Header().Rrtype, Class: ClassANY}} - } -} - -// RemoveName creates a dynamic update packet that deletes all RRsets of a name, see RFC 2136 section 2.5.3 -func (u *Msg) RemoveName(rr []RR) { - u.Ns = make([]RR, len(rr)) - for i, r := range rr { - u.Ns[i] = &ANY{Hdr: RR_Header{Name: r.Header().Name, Ttl: 0, Rrtype: TypeANY, Class: ClassANY}} - } -} - -// Remove creates a dynamic update packet deletes RR from the RRSset, see RFC 2136 section 2.5.4 -func (u *Msg) Remove(rr []RR) { - u.Ns = make([]RR, len(rr)) - for i, r := range rr { - u.Ns[i] = r - u.Ns[i].Header().Class = ClassNONE - u.Ns[i].Header().Ttl = 0 - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/update_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/update_test.go deleted file mode 100644 index 8d654185..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/update_test.go +++ /dev/null @@ -1,85 +0,0 @@ -package dns - -import ( - "bytes" - "testing" -) - -func TestDynamicUpdateParsing(t *testing.T) { - prefix := "example.com. IN " - for _, typ := range TypeToString { - if typ == "OPT" || typ == "AXFR" || typ == "IXFR" || typ == "ANY" || typ == "TKEY" || - typ == "TSIG" || typ == "ISDN" || typ == "UNSPEC" || typ == "NULL" || typ == "ATMA" || - typ == "Reserved" || typ == "None" || typ == "NXT" || typ == "MAILB" || typ == "MAILA" { - continue - } - r, err := NewRR(prefix + typ) - if err != nil { - t.Errorf("failure to parse: %s %s: %v", prefix, typ, err) - } else { - t.Logf("parsed: %s", r.String()) - } - } -} - -func TestDynamicUpdateUnpack(t *testing.T) { - // From https://github.com/miekg/dns/issues/150#issuecomment-62296803 - // It should be an update message for the zone "example.", - // deleting the A RRset "example." and then adding an A record at "example.". - // class ANY, TYPE A - buf := []byte{171, 68, 40, 0, 0, 1, 0, 0, 0, 2, 0, 0, 7, 101, 120, 97, 109, 112, 108, 101, 0, 0, 6, 0, 1, 192, 12, 0, 1, 0, 255, 0, 0, 0, 0, 0, 0, 192, 12, 0, 1, 0, 1, 0, 0, 0, 0, 0, 4, 127, 0, 0, 1} - msg := new(Msg) - err := msg.Unpack(buf) - if err != nil { - t.Errorf("failed to unpack: %v\n%s", err, msg.String()) - } -} - -func TestDynamicUpdateZeroRdataUnpack(t *testing.T) { - m := new(Msg) - rr := &RR_Header{Name: ".", Rrtype: 0, Class: 1, Ttl: ^uint32(0), Rdlength: 0} - m.Answer = []RR{rr, rr, rr, rr, rr} - m.Ns = m.Answer - for n, s := range TypeToString { - rr.Rrtype = n - bytes, err := m.Pack() - if err != nil { - t.Errorf("failed to pack %s: %v", s, err) - continue - } - if err := new(Msg).Unpack(bytes); err != nil { - t.Errorf("failed to unpack %s: %v", s, err) - } - } -} - -func TestRemoveRRset(t *testing.T) { - // Should add a zero data RR in Class ANY with a TTL of 0 - // for each set mentioned in the RRs provided to it. - rr, err := NewRR(". 100 IN A 127.0.0.1") - if err != nil { - t.Fatalf("Error constructing RR: %v", err) - } - m := new(Msg) - m.Ns = []RR{&RR_Header{Name: ".", Rrtype: TypeA, Class: ClassANY, Ttl: 0, Rdlength: 0}} - expectstr := m.String() - expect, err := m.Pack() - if err != nil { - t.Fatalf("Error packing expected msg: %v", err) - } - - m.Ns = nil - m.RemoveRRset([]RR{rr}) - actual, err := m.Pack() - if err != nil { - t.Fatalf("Error packing actual msg: %v", err) - } - if !bytes.Equal(actual, expect) { - tmp := new(Msg) - if err := tmp.Unpack(actual); err != nil { - t.Fatalf("Error unpacking actual msg: %v", err) - } - t.Errorf("Expected msg:\n%s", expectstr) - t.Errorf("Actual msg:\n%v", tmp) - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/xfr.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/xfr.go deleted file mode 100644 index 7d3a67b8..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/xfr.go +++ /dev/null @@ -1,244 +0,0 @@ -package dns - -import ( - "time" -) - -// Envelope is used when doing a zone transfer with a remote server. -type Envelope struct { - RR []RR // The set of RRs in the answer section of the xfr reply message. - Error error // If something went wrong, this contains the error. -} - -// A Transfer defines parameters that are used during a zone transfer. -type Transfer struct { - *Conn - DialTimeout time.Duration // net.DialTimeout, defaults to 2 seconds - ReadTimeout time.Duration // net.Conn.SetReadTimeout value for connections, defaults to 2 seconds - WriteTimeout time.Duration // net.Conn.SetWriteTimeout value for connections, defaults to 2 seconds - TsigSecret map[string]string // Secret(s) for Tsig map[<zonename>]<base64 secret>, zonename must be fully qualified - tsigTimersOnly bool -} - -// Think we need to away to stop the transfer - -// In performs an incoming transfer with the server in a. -// If you would like to set the source IP, or some other attribute -// of a Dialer for a Transfer, you can do so by specifying the attributes -// in the Transfer.Conn: -// -// d := net.Dialer{LocalAddr: transfer_source} -// con, err := d.Dial("tcp", master) -// dnscon := &dns.Conn{Conn:con} -// transfer = &dns.Transfer{Conn: dnscon} -// channel, err := transfer.In(message, master) -// -func (t *Transfer) In(q *Msg, a string) (env chan *Envelope, err error) { - timeout := dnsTimeout - if t.DialTimeout != 0 { - timeout = t.DialTimeout - } - if t.Conn == nil { - t.Conn, err = DialTimeout("tcp", a, timeout) - if err != nil { - return nil, err - } - } - if err := t.WriteMsg(q); err != nil { - return nil, err - } - env = make(chan *Envelope) - go func() { - if q.Question[0].Qtype == TypeAXFR { - go t.inAxfr(q.Id, env) - return - } - if q.Question[0].Qtype == TypeIXFR { - go t.inIxfr(q.Id, env) - return - } - }() - return env, nil -} - -func (t *Transfer) inAxfr(id uint16, c chan *Envelope) { - first := true - defer t.Close() - defer close(c) - timeout := dnsTimeout - if t.ReadTimeout != 0 { - timeout = t.ReadTimeout - } - for { - t.Conn.SetReadDeadline(time.Now().Add(timeout)) - in, err := t.ReadMsg() - if err != nil { - c <- &Envelope{nil, err} - return - } - if id != in.Id { - c <- &Envelope{in.Answer, ErrId} - return - } - if first { - if !isSOAFirst(in) { - c <- &Envelope{in.Answer, ErrSoa} - return - } - first = !first - // only one answer that is SOA, receive more - if len(in.Answer) == 1 { - t.tsigTimersOnly = true - c <- &Envelope{in.Answer, nil} - continue - } - } - - if !first { - t.tsigTimersOnly = true // Subsequent envelopes use this. - if isSOALast(in) { - c <- &Envelope{in.Answer, nil} - return - } - c <- &Envelope{in.Answer, nil} - } - } -} - -func (t *Transfer) inIxfr(id uint16, c chan *Envelope) { - serial := uint32(0) // The first serial seen is the current server serial - first := true - defer t.Close() - defer close(c) - timeout := dnsTimeout - if t.ReadTimeout != 0 { - timeout = t.ReadTimeout - } - for { - t.SetReadDeadline(time.Now().Add(timeout)) - in, err := t.ReadMsg() - if err != nil { - c <- &Envelope{nil, err} - return - } - if id != in.Id { - c <- &Envelope{in.Answer, ErrId} - return - } - if first { - // A single SOA RR signals "no changes" - if len(in.Answer) == 1 && isSOAFirst(in) { - c <- &Envelope{in.Answer, nil} - return - } - - // Check if the returned answer is ok - if !isSOAFirst(in) { - c <- &Envelope{in.Answer, ErrSoa} - return - } - // This serial is important - serial = in.Answer[0].(*SOA).Serial - first = !first - } - - // Now we need to check each message for SOA records, to see what we need to do - if !first { - t.tsigTimersOnly = true - // If the last record in the IXFR contains the servers' SOA, we should quit - if v, ok := in.Answer[len(in.Answer)-1].(*SOA); ok { - if v.Serial == serial { - c <- &Envelope{in.Answer, nil} - return - } - } - c <- &Envelope{in.Answer, nil} - } - } -} - -// Out performs an outgoing transfer with the client connecting in w. -// Basic use pattern: -// -// ch := make(chan *dns.Envelope) -// tr := new(dns.Transfer) -// tr.Out(w, r, ch) -// c <- &dns.Envelope{RR: []dns.RR{soa, rr1, rr2, rr3, soa}} -// close(ch) -// w.Hijack() -// // w.Close() // Client closes connection -// -// The server is responsible for sending the correct sequence of RRs through the -// channel ch. -func (t *Transfer) Out(w ResponseWriter, q *Msg, ch chan *Envelope) error { - for x := range ch { - r := new(Msg) - // Compress? - r.SetReply(q) - r.Authoritative = true - // assume it fits TODO(miek): fix - r.Answer = append(r.Answer, x.RR...) - if err := w.WriteMsg(r); err != nil { - return err - } - } - w.TsigTimersOnly(true) - return nil -} - -// ReadMsg reads a message from the transfer connection t. -func (t *Transfer) ReadMsg() (*Msg, error) { - m := new(Msg) - p := make([]byte, MaxMsgSize) - n, err := t.Read(p) - if err != nil && n == 0 { - return nil, err - } - p = p[:n] - if err := m.Unpack(p); err != nil { - return nil, err - } - if ts := m.IsTsig(); ts != nil && t.TsigSecret != nil { - if _, ok := t.TsigSecret[ts.Hdr.Name]; !ok { - return m, ErrSecret - } - // Need to work on the original message p, as that was used to calculate the tsig. - err = TsigVerify(p, t.TsigSecret[ts.Hdr.Name], t.tsigRequestMAC, t.tsigTimersOnly) - t.tsigRequestMAC = ts.MAC - } - return m, err -} - -// WriteMsg writes a message through the transfer connection t. -func (t *Transfer) WriteMsg(m *Msg) (err error) { - var out []byte - if ts := m.IsTsig(); ts != nil && t.TsigSecret != nil { - if _, ok := t.TsigSecret[ts.Hdr.Name]; !ok { - return ErrSecret - } - out, t.tsigRequestMAC, err = TsigGenerate(m, t.TsigSecret[ts.Hdr.Name], t.tsigRequestMAC, t.tsigTimersOnly) - } else { - out, err = m.Pack() - } - if err != nil { - return err - } - if _, err = t.Write(out); err != nil { - return err - } - return nil -} - -func isSOAFirst(in *Msg) bool { - if len(in.Answer) > 0 { - return in.Answer[0].Header().Rrtype == TypeSOA - } - return false -} - -func isSOALast(in *Msg) bool { - if len(in.Answer) > 0 { - return in.Answer[len(in.Answer)-1].Header().Rrtype == TypeSOA - } - return false -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/xfr_test.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/xfr_test.go deleted file mode 100644 index 4917cfec..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/xfr_test.go +++ /dev/null @@ -1,161 +0,0 @@ -// +build net - -package dns - -import ( - "net" - "testing" - "time" -) - -func getIP(s string) string { - a, err := net.LookupAddr(s) - if err != nil { - return "" - } - return a[0] -} - -// flaky, need to setup local server and test from -// that. -func TestAXFR_Miek(t *testing.T) { - // This test runs against a server maintained by Miek - if testing.Short() { - return - } - m := new(Msg) - m.SetAxfr("miek.nl.") - - server := getIP("linode.atoom.net") - - tr := new(Transfer) - - if a, err := tr.In(m, net.JoinHostPort(server, "53")); err != nil { - t.Fatal("failed to setup axfr: ", err) - } else { - for ex := range a { - if ex.Error != nil { - t.Errorf("error %v", ex.Error) - break - } - for _, rr := range ex.RR { - t.Log(rr.String()) - } - } - } -} - -// fails. -func TestAXFR_NLNL_MultipleEnvelopes(t *testing.T) { - // This test runs against a server maintained by NLnet Labs - if testing.Short() { - return - } - m := new(Msg) - m.SetAxfr("nlnetlabs.nl.") - - server := getIP("open.nlnetlabs.nl.") - - tr := new(Transfer) - if a, err := tr.In(m, net.JoinHostPort(server, "53")); err != nil { - t.Fatalf("Failed to setup axfr %v for server: %v", err, server) - } else { - for ex := range a { - if ex.Error != nil { - t.Errorf("Error %v", ex.Error) - break - } - } - } -} - -func TestAXFR_Miek_Tsig(t *testing.T) { - // This test runs against a server maintained by Miek - if testing.Short() { - return - } - m := new(Msg) - m.SetAxfr("example.nl.") - m.SetTsig("axfr.", HmacMD5, 300, time.Now().Unix()) - - tr := new(Transfer) - tr.TsigSecret = map[string]string{"axfr.": "so6ZGir4GPAqINNh9U5c3A=="} - - if a, err := tr.In(m, "176.58.119.54:53"); err != nil { - t.Fatal("failed to setup axfr: ", err) - } else { - for ex := range a { - if ex.Error != nil { - t.Errorf("error %v", ex.Error) - break - } - for _, rr := range ex.RR { - t.Log(rr.String()) - } - } - } -} - -func TestAXFR_SIDN_NSD3_NONE(t *testing.T) { testAXFRSIDN(t, "nsd", "") } -func TestAXFR_SIDN_NSD3_MD5(t *testing.T) { testAXFRSIDN(t, "nsd", HmacMD5) } -func TestAXFR_SIDN_NSD3_SHA1(t *testing.T) { testAXFRSIDN(t, "nsd", HmacSHA1) } -func TestAXFR_SIDN_NSD3_SHA256(t *testing.T) { testAXFRSIDN(t, "nsd", HmacSHA256) } - -func TestAXFR_SIDN_NSD4_NONE(t *testing.T) { testAXFRSIDN(t, "nsd4", "") } -func TestAXFR_SIDN_NSD4_MD5(t *testing.T) { testAXFRSIDN(t, "nsd4", HmacMD5) } -func TestAXFR_SIDN_NSD4_SHA1(t *testing.T) { testAXFRSIDN(t, "nsd4", HmacSHA1) } -func TestAXFR_SIDN_NSD4_SHA256(t *testing.T) { testAXFRSIDN(t, "nsd4", HmacSHA256) } - -func TestAXFR_SIDN_BIND9_NONE(t *testing.T) { testAXFRSIDN(t, "bind9", "") } -func TestAXFR_SIDN_BIND9_MD5(t *testing.T) { testAXFRSIDN(t, "bind9", HmacMD5) } -func TestAXFR_SIDN_BIND9_SHA1(t *testing.T) { testAXFRSIDN(t, "bind9", HmacSHA1) } -func TestAXFR_SIDN_BIND9_SHA256(t *testing.T) { testAXFRSIDN(t, "bind9", HmacSHA256) } - -func TestAXFR_SIDN_KNOT_NONE(t *testing.T) { testAXFRSIDN(t, "knot", "") } -func TestAXFR_SIDN_KNOT_MD5(t *testing.T) { testAXFRSIDN(t, "knot", HmacMD5) } -func TestAXFR_SIDN_KNOT_SHA1(t *testing.T) { testAXFRSIDN(t, "knot", HmacSHA1) } -func TestAXFR_SIDN_KNOT_SHA256(t *testing.T) { testAXFRSIDN(t, "knot", HmacSHA256) } - -func TestAXFR_SIDN_POWERDNS_NONE(t *testing.T) { testAXFRSIDN(t, "powerdns", "") } -func TestAXFR_SIDN_POWERDNS_MD5(t *testing.T) { testAXFRSIDN(t, "powerdns", HmacMD5) } -func TestAXFR_SIDN_POWERDNS_SHA1(t *testing.T) { testAXFRSIDN(t, "powerdns", HmacSHA1) } -func TestAXFR_SIDN_POWERDNS_SHA256(t *testing.T) { testAXFRSIDN(t, "powerdns", HmacSHA256) } - -func TestAXFR_SIDN_YADIFA_NONE(t *testing.T) { testAXFRSIDN(t, "yadifa", "") } -func TestAXFR_SIDN_YADIFA_MD5(t *testing.T) { testAXFRSIDN(t, "yadifa", HmacMD5) } -func TestAXFR_SIDN_YADIFA_SHA1(t *testing.T) { testAXFRSIDN(t, "yadifa", HmacSHA1) } -func TestAXFR_SIDN_YADIFA_SHA256(t *testing.T) { testAXFRSIDN(t, "yadifa", HmacSHA256) } - -func testAXFRSIDN(t *testing.T, host, alg string) { - // This tests run against a server maintained by SIDN labs, see: - // https://workbench.sidnlabs.nl/ - if testing.Short() { - return - } - x := new(Transfer) - x.TsigSecret = map[string]string{ - "wb_md5.": "Wu/utSasZUkoeCNku152Zw==", - "wb_sha1_longkey.": "uhMpEhPq/RAD9Bt4mqhfmi+7ZdKmjLQb/lcrqYPXR4s/nnbsqw==", - "wb_sha256.": "npfrIJjt/MJOjGJoBNZtsjftKMhkSpIYMv2RzRZt1f8=", - } - keyname := map[string]string{ - HmacMD5: "wb_md5.", - HmacSHA1: "wb_sha1_longkey.", - HmacSHA256: "wb_sha256.", - }[alg] - - m := new(Msg) - m.SetAxfr("types.wb.sidnlabs.nl.") - if keyname != "" { - m.SetTsig(keyname, alg, 300, time.Now().Unix()) - } - c, err := x.In(m, host+".sidnlabs.nl:53") - if err != nil { - t.Fatal(err) - } - for e := range c { - if e.Error != nil { - t.Fatal(e.Error) - } - } -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/zgenerate.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/zgenerate.go deleted file mode 100644 index c506e962..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/zgenerate.go +++ /dev/null @@ -1,158 +0,0 @@ -package dns - -import ( - "bytes" - "fmt" - "strconv" - "strings" -) - -// Parse the $GENERATE statement as used in BIND9 zones. -// See http://www.zytrax.com/books/dns/ch8/generate.html for instance. -// We are called after '$GENERATE '. After which we expect: -// * the range (12-24/2) -// * lhs (ownername) -// * [[ttl][class]] -// * type -// * rhs (rdata) -// But we are lazy here, only the range is parsed *all* occurences -// of $ after that are interpreted. -// Any error are returned as a string value, the empty string signals -// "no error". -func generate(l lex, c chan lex, t chan *Token, o string) string { - step := 1 - if i := strings.IndexAny(l.token, "/"); i != -1 { - if i+1 == len(l.token) { - return "bad step in $GENERATE range" - } - if s, e := strconv.Atoi(l.token[i+1:]); e == nil { - if s < 0 { - return "bad step in $GENERATE range" - } - step = s - } else { - return "bad step in $GENERATE range" - } - l.token = l.token[:i] - } - sx := strings.SplitN(l.token, "-", 2) - if len(sx) != 2 { - return "bad start-stop in $GENERATE range" - } - start, err := strconv.Atoi(sx[0]) - if err != nil { - return "bad start in $GENERATE range" - } - end, err := strconv.Atoi(sx[1]) - if err != nil { - return "bad stop in $GENERATE range" - } - if end < 0 || start < 0 || end < start { - return "bad range in $GENERATE range" - } - - <-c // _BLANK - // Create a complete new string, which we then parse again. - s := "" -BuildRR: - l = <-c - if l.value != zNewline && l.value != zEOF { - s += l.token - goto BuildRR - } - for i := start; i <= end; i += step { - var ( - escape bool - dom bytes.Buffer - mod string - err string - offset int - ) - - for j := 0; j < len(s); j++ { // No 'range' because we need to jump around - switch s[j] { - case '\\': - if escape { - dom.WriteByte('\\') - escape = false - continue - } - escape = true - case '$': - mod = "%d" - offset = 0 - if escape { - dom.WriteByte('$') - escape = false - continue - } - escape = false - if j+1 >= len(s) { // End of the string - dom.WriteString(fmt.Sprintf(mod, i+offset)) - continue - } else { - if s[j+1] == '$' { - dom.WriteByte('$') - j++ - continue - } - } - // Search for { and } - if s[j+1] == '{' { // Modifier block - sep := strings.Index(s[j+2:], "}") - if sep == -1 { - return "bad modifier in $GENERATE" - } - mod, offset, err = modToPrintf(s[j+2 : j+2+sep]) - if err != "" { - return err - } - j += 2 + sep // Jump to it - } - dom.WriteString(fmt.Sprintf(mod, i+offset)) - default: - if escape { // Pretty useless here - escape = false - continue - } - dom.WriteByte(s[j]) - } - } - // Re-parse the RR and send it on the current channel t - rx, e := NewRR("$ORIGIN " + o + "\n" + dom.String()) - if e != nil { - return e.(*ParseError).err - } - t <- &Token{RR: rx} - // Its more efficient to first built the rrlist and then parse it in - // one go! But is this a problem? - } - return "" -} - -// Convert a $GENERATE modifier 0,0,d to something Printf can deal with. -func modToPrintf(s string) (string, int, string) { - xs := strings.SplitN(s, ",", 3) - if len(xs) != 3 { - return "", 0, "bad modifier in $GENERATE" - } - // xs[0] is offset, xs[1] is width, xs[2] is base - if xs[2] != "o" && xs[2] != "d" && xs[2] != "x" && xs[2] != "X" { - return "", 0, "bad base in $GENERATE" - } - offset, err := strconv.Atoi(xs[0]) - if err != nil || offset > 255 { - return "", 0, "bad offset in $GENERATE" - } - width, err := strconv.Atoi(xs[1]) - if err != nil || width > 255 { - return "", offset, "bad width in $GENERATE" - } - switch { - case width < 0: - return "", offset, "bad width in $GENERATE" - case width == 0: - return "%" + xs[1] + xs[2], offset, "" - } - return "%0" + xs[1] + xs[2], offset, "" -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/zscan.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/zscan.go deleted file mode 100644 index b0f46b18..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/zscan.go +++ /dev/null @@ -1,974 +0,0 @@ -package dns - -import ( - "io" - "log" - "os" - "strconv" - "strings" -) - -type debugging bool - -const debug debugging = false - -func (d debugging) Printf(format string, args ...interface{}) { - if d { - log.Printf(format, args...) - } -} - -const maxTok = 2048 // Largest token we can return. -const maxUint16 = 1<<16 - 1 - -// Tokinize a RFC 1035 zone file. The tokenizer will normalize it: -// * Add ownernames if they are left blank; -// * Suppress sequences of spaces; -// * Make each RR fit on one line (_NEWLINE is send as last) -// * Handle comments: ; -// * Handle braces - anywhere. -const ( - // Zonefile - zEOF = iota - zString - zBlank - zQuote - zNewline - zRrtpe - zOwner - zClass - zDirOrigin // $ORIGIN - zDirTtl // $TTL - zDirInclude // $INCLUDE - zDirGenerate // $GENERATE - - // Privatekey file - zValue - zKey - - zExpectOwnerDir // Ownername - zExpectOwnerBl // Whitespace after the ownername - zExpectAny // Expect rrtype, ttl or class - zExpectAnyNoClass // Expect rrtype or ttl - zExpectAnyNoClassBl // The whitespace after _EXPECT_ANY_NOCLASS - zExpectAnyNoTtl // Expect rrtype or class - zExpectAnyNoTtlBl // Whitespace after _EXPECT_ANY_NOTTL - zExpectRrtype // Expect rrtype - zExpectRrtypeBl // Whitespace BEFORE rrtype - zExpectRdata // The first element of the rdata - zExpectDirTtlBl // Space after directive $TTL - zExpectDirTtl // Directive $TTL - zExpectDirOriginBl // Space after directive $ORIGIN - zExpectDirOrigin // Directive $ORIGIN - zExpectDirIncludeBl // Space after directive $INCLUDE - zExpectDirInclude // Directive $INCLUDE - zExpectDirGenerate // Directive $GENERATE - zExpectDirGenerateBl // Space after directive $GENERATE -) - -// ParseError is a parsing error. It contains the parse error and the location in the io.Reader -// where the error occured. -type ParseError struct { - file string - err string - lex lex -} - -func (e *ParseError) Error() (s string) { - if e.file != "" { - s = e.file + ": " - } - s += "dns: " + e.err + ": " + strconv.QuoteToASCII(e.lex.token) + " at line: " + - strconv.Itoa(e.lex.line) + ":" + strconv.Itoa(e.lex.column) - return -} - -type lex struct { - token string // text of the token - tokenUpper string // uppercase text of the token - length int // lenght of the token - err bool // when true, token text has lexer error - value uint8 // value: zString, _BLANK, etc. - line int // line in the file - column int // column in the file - torc uint16 // type or class as parsed in the lexer, we only need to look this up in the grammar - comment string // any comment text seen -} - -// Token holds the token that are returned when a zone file is parsed. -type Token struct { - // The scanned resource record when error is not nil. - RR - // When an error occured, this has the error specifics. - Error *ParseError - // A potential comment positioned after the RR and on the same line. - Comment string -} - -// NewRR reads the RR contained in the string s. Only the first RR is -// returned. If s contains no RR, return nil with no error. The class -// defaults to IN and TTL defaults to 3600. The full zone file syntax -// like $TTL, $ORIGIN, etc. is supported. All fields of the returned -// RR are set, except RR.Header().Rdlength which is set to 0. -func NewRR(s string) (RR, error) { - if len(s) > 0 && s[len(s)-1] != '\n' { // We need a closing newline - return ReadRR(strings.NewReader(s+"\n"), "") - } - return ReadRR(strings.NewReader(s), "") -} - -// ReadRR reads the RR contained in q. -// See NewRR for more documentation. -func ReadRR(q io.Reader, filename string) (RR, error) { - r := <-parseZoneHelper(q, ".", filename, 1) - if r == nil { - return nil, nil - } - - if r.Error != nil { - return nil, r.Error - } - return r.RR, nil -} - -// ParseZone reads a RFC 1035 style zonefile from r. It returns *Tokens on the -// returned channel, which consist out the parsed RR, a potential comment or an error. -// If there is an error the RR is nil. The string file is only used -// in error reporting. The string origin is used as the initial origin, as -// if the file would start with: $ORIGIN origin . -// The directives $INCLUDE, $ORIGIN, $TTL and $GENERATE are supported. -// The channel t is closed by ParseZone when the end of r is reached. -// -// Basic usage pattern when reading from a string (z) containing the -// zone data: -// -// for x := range dns.ParseZone(strings.NewReader(z), "", "") { -// if x.Error != nil { -// // log.Println(x.Error) -// } else { -// // Do something with x.RR -// } -// } -// -// Comments specified after an RR (and on the same line!) are returned too: -// -// foo. IN A 10.0.0.1 ; this is a comment -// -// The text "; this is comment" is returned in Token.Comment. Comments inside the -// RR are discarded. Comments on a line by themselves are discarded too. -func ParseZone(r io.Reader, origin, file string) chan *Token { - return parseZoneHelper(r, origin, file, 10000) -} - -func parseZoneHelper(r io.Reader, origin, file string, chansize int) chan *Token { - t := make(chan *Token, chansize) - go parseZone(r, origin, file, t, 0) - return t -} - -func parseZone(r io.Reader, origin, f string, t chan *Token, include int) { - defer func() { - if include == 0 { - close(t) - } - }() - s := scanInit(r) - c := make(chan lex) - // Start the lexer - go zlexer(s, c) - // 6 possible beginnings of a line, _ is a space - // 0. zRRTYPE -> all omitted until the rrtype - // 1. zOwner _ zRrtype -> class/ttl omitted - // 2. zOwner _ zString _ zRrtype -> class omitted - // 3. zOwner _ zString _ zClass _ zRrtype -> ttl/class - // 4. zOwner _ zClass _ zRrtype -> ttl omitted - // 5. zOwner _ zClass _ zString _ zRrtype -> class/ttl (reversed) - // After detecting these, we know the zRrtype so we can jump to functions - // handling the rdata for each of these types. - - if origin == "" { - origin = "." - } - origin = Fqdn(origin) - if _, ok := IsDomainName(origin); !ok { - t <- &Token{Error: &ParseError{f, "bad initial origin name", lex{}}} - return - } - - st := zExpectOwnerDir // initial state - var h RR_Header - var defttl uint32 = defaultTtl - var prevName string - for l := range c { - // Lexer spotted an error already - if l.err == true { - t <- &Token{Error: &ParseError{f, l.token, l}} - return - - } - switch st { - case zExpectOwnerDir: - // We can also expect a directive, like $TTL or $ORIGIN - h.Ttl = defttl - h.Class = ClassINET - switch l.value { - case zNewline: - st = zExpectOwnerDir - case zOwner: - h.Name = l.token - if l.token[0] == '@' { - h.Name = origin - prevName = h.Name - st = zExpectOwnerBl - break - } - if h.Name[l.length-1] != '.' { - h.Name = appendOrigin(h.Name, origin) - } - _, ok := IsDomainName(l.token) - if !ok { - t <- &Token{Error: &ParseError{f, "bad owner name", l}} - return - } - prevName = h.Name - st = zExpectOwnerBl - case zDirTtl: - st = zExpectDirTtlBl - case zDirOrigin: - st = zExpectDirOriginBl - case zDirInclude: - st = zExpectDirIncludeBl - case zDirGenerate: - st = zExpectDirGenerateBl - case zRrtpe: - h.Name = prevName - h.Rrtype = l.torc - st = zExpectRdata - case zClass: - h.Name = prevName - h.Class = l.torc - st = zExpectAnyNoClassBl - case zBlank: - // Discard, can happen when there is nothing on the - // line except the RR type - case zString: - ttl, ok := stringToTtl(l.token) - if !ok { - t <- &Token{Error: &ParseError{f, "not a TTL", l}} - return - } - h.Ttl = ttl - // Don't about the defttl, we should take the $TTL value - // defttl = ttl - st = zExpectAnyNoTtlBl - - default: - t <- &Token{Error: &ParseError{f, "syntax error at beginning", l}} - return - } - case zExpectDirIncludeBl: - if l.value != zBlank { - t <- &Token{Error: &ParseError{f, "no blank after $INCLUDE-directive", l}} - return - } - st = zExpectDirInclude - case zExpectDirInclude: - if l.value != zString { - t <- &Token{Error: &ParseError{f, "expecting $INCLUDE value, not this...", l}} - return - } - neworigin := origin // There may be optionally a new origin set after the filename, if not use current one - l := <-c - switch l.value { - case zBlank: - l := <-c - if l.value == zString { - if _, ok := IsDomainName(l.token); !ok || l.length == 0 || l.err { - t <- &Token{Error: &ParseError{f, "bad origin name", l}} - return - } - // a new origin is specified. - if l.token[l.length-1] != '.' { - if origin != "." { // Prevent .. endings - neworigin = l.token + "." + origin - } else { - neworigin = l.token + origin - } - } else { - neworigin = l.token - } - } - case zNewline, zEOF: - // Ok - default: - t <- &Token{Error: &ParseError{f, "garbage after $INCLUDE", l}} - return - } - // Start with the new file - r1, e1 := os.Open(l.token) - if e1 != nil { - t <- &Token{Error: &ParseError{f, "failed to open `" + l.token + "'", l}} - return - } - if include+1 > 7 { - t <- &Token{Error: &ParseError{f, "too deeply nested $INCLUDE", l}} - return - } - parseZone(r1, l.token, neworigin, t, include+1) - st = zExpectOwnerDir - case zExpectDirTtlBl: - if l.value != zBlank { - t <- &Token{Error: &ParseError{f, "no blank after $TTL-directive", l}} - return - } - st = zExpectDirTtl - case zExpectDirTtl: - if l.value != zString { - t <- &Token{Error: &ParseError{f, "expecting $TTL value, not this...", l}} - return - } - if e, _ := slurpRemainder(c, f); e != nil { - t <- &Token{Error: e} - return - } - ttl, ok := stringToTtl(l.token) - if !ok { - t <- &Token{Error: &ParseError{f, "expecting $TTL value, not this...", l}} - return - } - defttl = ttl - st = zExpectOwnerDir - case zExpectDirOriginBl: - if l.value != zBlank { - t <- &Token{Error: &ParseError{f, "no blank after $ORIGIN-directive", l}} - return - } - st = zExpectDirOrigin - case zExpectDirOrigin: - if l.value != zString { - t <- &Token{Error: &ParseError{f, "expecting $ORIGIN value, not this...", l}} - return - } - if e, _ := slurpRemainder(c, f); e != nil { - t <- &Token{Error: e} - } - if _, ok := IsDomainName(l.token); !ok { - t <- &Token{Error: &ParseError{f, "bad origin name", l}} - return - } - if l.token[l.length-1] != '.' { - if origin != "." { // Prevent .. endings - origin = l.token + "." + origin - } else { - origin = l.token + origin - } - } else { - origin = l.token - } - st = zExpectOwnerDir - case zExpectDirGenerateBl: - if l.value != zBlank { - t <- &Token{Error: &ParseError{f, "no blank after $GENERATE-directive", l}} - return - } - st = zExpectDirGenerate - case zExpectDirGenerate: - if l.value != zString { - t <- &Token{Error: &ParseError{f, "expecting $GENERATE value, not this...", l}} - return - } - if e := generate(l, c, t, origin); e != "" { - t <- &Token{Error: &ParseError{f, e, l}} - return - } - st = zExpectOwnerDir - case zExpectOwnerBl: - if l.value != zBlank { - t <- &Token{Error: &ParseError{f, "no blank after owner", l}} - return - } - st = zExpectAny - case zExpectAny: - switch l.value { - case zRrtpe: - h.Rrtype = l.torc - st = zExpectRdata - case zClass: - h.Class = l.torc - st = zExpectAnyNoClassBl - case zString: - ttl, ok := stringToTtl(l.token) - if !ok { - t <- &Token{Error: &ParseError{f, "not a TTL", l}} - return - } - h.Ttl = ttl - // defttl = ttl // don't set the defttl here - st = zExpectAnyNoTtlBl - default: - t <- &Token{Error: &ParseError{f, "expecting RR type, TTL or class, not this...", l}} - return - } - case zExpectAnyNoClassBl: - if l.value != zBlank { - t <- &Token{Error: &ParseError{f, "no blank before class", l}} - return - } - st = zExpectAnyNoClass - case zExpectAnyNoTtlBl: - if l.value != zBlank { - t <- &Token{Error: &ParseError{f, "no blank before TTL", l}} - return - } - st = zExpectAnyNoTtl - case zExpectAnyNoTtl: - switch l.value { - case zClass: - h.Class = l.torc - st = zExpectRrtypeBl - case zRrtpe: - h.Rrtype = l.torc - st = zExpectRdata - default: - t <- &Token{Error: &ParseError{f, "expecting RR type or class, not this...", l}} - return - } - case zExpectAnyNoClass: - switch l.value { - case zString: - ttl, ok := stringToTtl(l.token) - if !ok { - t <- &Token{Error: &ParseError{f, "not a TTL", l}} - return - } - h.Ttl = ttl - // defttl = ttl // don't set the def ttl anymore - st = zExpectRrtypeBl - case zRrtpe: - h.Rrtype = l.torc - st = zExpectRdata - default: - t <- &Token{Error: &ParseError{f, "expecting RR type or TTL, not this...", l}} - return - } - case zExpectRrtypeBl: - if l.value != zBlank { - t <- &Token{Error: &ParseError{f, "no blank before RR type", l}} - return - } - st = zExpectRrtype - case zExpectRrtype: - if l.value != zRrtpe { - t <- &Token{Error: &ParseError{f, "unknown RR type", l}} - return - } - h.Rrtype = l.torc - st = zExpectRdata - case zExpectRdata: - r, e, c1 := setRR(h, c, origin, f) - if e != nil { - // If e.lex is nil than we have encounter a unknown RR type - // in that case we substitute our current lex token - if e.lex.token == "" && e.lex.value == 0 { - e.lex = l // Uh, dirty - } - t <- &Token{Error: e} - return - } - t <- &Token{RR: r, Comment: c1} - st = zExpectOwnerDir - } - } - // If we get here, we and the h.Rrtype is still zero, we haven't parsed anything, this - // is not an error, because an empty zone file is still a zone file. -} - -// zlexer scans the sourcefile and returns tokens on the channel c. -func zlexer(s *scan, c chan lex) { - var l lex - str := make([]byte, maxTok) // Should be enough for any token - stri := 0 // Offset in str (0 means empty) - com := make([]byte, maxTok) // Hold comment text - comi := 0 - quote := false - escape := false - space := false - commt := false - rrtype := false - owner := true - brace := 0 - x, err := s.tokenText() - defer close(c) - for err == nil { - l.column = s.position.Column - l.line = s.position.Line - if stri >= maxTok { - l.token = "token length insufficient for parsing" - l.err = true - debug.Printf("[%+v]", l.token) - c <- l - return - } - if comi >= maxTok { - l.token = "comment length insufficient for parsing" - l.err = true - debug.Printf("[%+v]", l.token) - c <- l - return - } - - switch x { - case ' ', '\t': - if escape { - escape = false - str[stri] = x - stri++ - break - } - if quote { - // Inside quotes this is legal - str[stri] = x - stri++ - break - } - if commt { - com[comi] = x - comi++ - break - } - if stri == 0 { - // Space directly in the beginning, handled in the grammar - } else if owner { - // If we have a string and its the first, make it an owner - l.value = zOwner - l.token = string(str[:stri]) - l.tokenUpper = strings.ToUpper(l.token) - l.length = stri - // escape $... start with a \ not a $, so this will work - switch l.tokenUpper { - case "$TTL": - l.value = zDirTtl - case "$ORIGIN": - l.value = zDirOrigin - case "$INCLUDE": - l.value = zDirInclude - case "$GENERATE": - l.value = zDirGenerate - } - debug.Printf("[7 %+v]", l.token) - c <- l - } else { - l.value = zString - l.token = string(str[:stri]) - l.tokenUpper = strings.ToUpper(l.token) - l.length = stri - if !rrtype { - if t, ok := StringToType[l.tokenUpper]; ok { - l.value = zRrtpe - l.torc = t - rrtype = true - } else { - if strings.HasPrefix(l.tokenUpper, "TYPE") { - t, ok := typeToInt(l.token) - if !ok { - l.token = "unknown RR type" - l.err = true - c <- l - return - } - l.value = zRrtpe - l.torc = t - } - } - if t, ok := StringToClass[l.tokenUpper]; ok { - l.value = zClass - l.torc = t - } else { - if strings.HasPrefix(l.tokenUpper, "CLASS") { - t, ok := classToInt(l.token) - if !ok { - l.token = "unknown class" - l.err = true - c <- l - return - } - l.value = zClass - l.torc = t - } - } - } - debug.Printf("[6 %+v]", l.token) - c <- l - } - stri = 0 - // I reverse space stuff here - if !space && !commt { - l.value = zBlank - l.token = " " - l.length = 1 - debug.Printf("[5 %+v]", l.token) - c <- l - } - owner = false - space = true - case ';': - if escape { - escape = false - str[stri] = x - stri++ - break - } - if quote { - // Inside quotes this is legal - str[stri] = x - stri++ - break - } - if stri > 0 { - l.value = zString - l.token = string(str[:stri]) - l.length = stri - debug.Printf("[4 %+v]", l.token) - c <- l - stri = 0 - } - commt = true - com[comi] = ';' - comi++ - case '\r': - escape = false - if quote { - str[stri] = x - stri++ - break - } - // discard if outside of quotes - case '\n': - escape = false - // Escaped newline - if quote { - str[stri] = x - stri++ - break - } - // inside quotes this is legal - if commt { - // Reset a comment - commt = false - rrtype = false - stri = 0 - // If not in a brace this ends the comment AND the RR - if brace == 0 { - owner = true - owner = true - l.value = zNewline - l.token = "\n" - l.length = 1 - l.comment = string(com[:comi]) - debug.Printf("[3 %+v %+v]", l.token, l.comment) - c <- l - l.comment = "" - comi = 0 - break - } - com[comi] = ' ' // convert newline to space - comi++ - break - } - - if brace == 0 { - // If there is previous text, we should output it here - if stri != 0 { - l.value = zString - l.token = string(str[:stri]) - l.tokenUpper = strings.ToUpper(l.token) - - l.length = stri - if !rrtype { - if t, ok := StringToType[l.tokenUpper]; ok { - l.value = zRrtpe - l.torc = t - rrtype = true - } - } - debug.Printf("[2 %+v]", l.token) - c <- l - } - l.value = zNewline - l.token = "\n" - l.length = 1 - debug.Printf("[1 %+v]", l.token) - c <- l - stri = 0 - commt = false - rrtype = false - owner = true - comi = 0 - } - case '\\': - // comments do not get escaped chars, everything is copied - if commt { - com[comi] = x - comi++ - break - } - // something already escaped must be in string - if escape { - str[stri] = x - stri++ - escape = false - break - } - // something escaped outside of string gets added to string - str[stri] = x - stri++ - escape = true - case '"': - if commt { - com[comi] = x - comi++ - break - } - if escape { - str[stri] = x - stri++ - escape = false - break - } - space = false - // send previous gathered text and the quote - if stri != 0 { - l.value = zString - l.token = string(str[:stri]) - l.length = stri - - debug.Printf("[%+v]", l.token) - c <- l - stri = 0 - } - - // send quote itself as separate token - l.value = zQuote - l.token = "\"" - l.length = 1 - c <- l - quote = !quote - case '(', ')': - if commt { - com[comi] = x - comi++ - break - } - if escape { - str[stri] = x - stri++ - escape = false - break - } - if quote { - str[stri] = x - stri++ - break - } - switch x { - case ')': - brace-- - if brace < 0 { - l.token = "extra closing brace" - l.err = true - debug.Printf("[%+v]", l.token) - c <- l - return - } - case '(': - brace++ - } - default: - escape = false - if commt { - com[comi] = x - comi++ - break - } - str[stri] = x - stri++ - space = false - } - x, err = s.tokenText() - } - if stri > 0 { - // Send remainder - l.token = string(str[:stri]) - l.length = stri - l.value = zString - debug.Printf("[%+v]", l.token) - c <- l - } -} - -// Extract the class number from CLASSxx -func classToInt(token string) (uint16, bool) { - offset := 5 - if len(token) < offset+1 { - return 0, false - } - class, ok := strconv.Atoi(token[offset:]) - if ok != nil || class > maxUint16 { - return 0, false - } - return uint16(class), true -} - -// Extract the rr number from TYPExxx -func typeToInt(token string) (uint16, bool) { - offset := 4 - if len(token) < offset+1 { - return 0, false - } - typ, ok := strconv.Atoi(token[offset:]) - if ok != nil || typ > maxUint16 { - return 0, false - } - return uint16(typ), true -} - -// Parse things like 2w, 2m, etc, Return the time in seconds. -func stringToTtl(token string) (uint32, bool) { - s := uint32(0) - i := uint32(0) - for _, c := range token { - switch c { - case 's', 'S': - s += i - i = 0 - case 'm', 'M': - s += i * 60 - i = 0 - case 'h', 'H': - s += i * 60 * 60 - i = 0 - case 'd', 'D': - s += i * 60 * 60 * 24 - i = 0 - case 'w', 'W': - s += i * 60 * 60 * 24 * 7 - i = 0 - case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': - i *= 10 - i += uint32(c) - '0' - default: - return 0, false - } - } - return s + i, true -} - -// Parse LOC records' <digits>[.<digits>][mM] into a -// mantissa exponent format. Token should contain the entire -// string (i.e. no spaces allowed) -func stringToCm(token string) (e, m uint8, ok bool) { - if token[len(token)-1] == 'M' || token[len(token)-1] == 'm' { - token = token[0 : len(token)-1] - } - s := strings.SplitN(token, ".", 2) - var meters, cmeters, val int - var err error - switch len(s) { - case 2: - if cmeters, err = strconv.Atoi(s[1]); err != nil { - return - } - fallthrough - case 1: - if meters, err = strconv.Atoi(s[0]); err != nil { - return - } - case 0: - // huh? - return 0, 0, false - } - ok = true - if meters > 0 { - e = 2 - val = meters - } else { - e = 0 - val = cmeters - } - for val > 10 { - e++ - val /= 10 - } - if e > 9 { - ok = false - } - m = uint8(val) - return -} - -func appendOrigin(name, origin string) string { - if origin == "." { - return name + origin - } - return name + "." + origin -} - -// LOC record helper function -func locCheckNorth(token string, latitude uint32) (uint32, bool) { - switch token { - case "n", "N": - return LOC_EQUATOR + latitude, true - case "s", "S": - return LOC_EQUATOR - latitude, true - } - return latitude, false -} - -// LOC record helper function -func locCheckEast(token string, longitude uint32) (uint32, bool) { - switch token { - case "e", "E": - return LOC_EQUATOR + longitude, true - case "w", "W": - return LOC_EQUATOR - longitude, true - } - return longitude, false -} - -// "Eat" the rest of the "line". Return potential comments -func slurpRemainder(c chan lex, f string) (*ParseError, string) { - l := <-c - com := "" - switch l.value { - case zBlank: - l = <-c - com = l.comment - if l.value != zNewline && l.value != zEOF { - return &ParseError{f, "garbage after rdata", l}, "" - } - case zNewline: - com = l.comment - case zEOF: - default: - return &ParseError{f, "garbage after rdata", l}, "" - } - return nil, com -} - -// Parse a 64 bit-like ipv6 address: "0014:4fff:ff20:ee64" -// Used for NID and L64 record. -func stringToNodeID(l lex) (uint64, *ParseError) { - if len(l.token) < 19 { - return 0, &ParseError{l.token, "bad NID/L64 NodeID/Locator64", l} - } - // There must be three colons at fixes postitions, if not its a parse error - if l.token[4] != ':' && l.token[9] != ':' && l.token[14] != ':' { - return 0, &ParseError{l.token, "bad NID/L64 NodeID/Locator64", l} - } - s := l.token[0:4] + l.token[5:9] + l.token[10:14] + l.token[15:19] - u, e := strconv.ParseUint(s, 16, 64) - if e != nil { - return 0, &ParseError{l.token, "bad NID/L64 NodeID/Locator64", l} - } - return u, nil -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/zscan_rr.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/zscan_rr.go deleted file mode 100644 index a2db008f..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/zscan_rr.go +++ /dev/null @@ -1,2270 +0,0 @@ -package dns - -import ( - "encoding/base64" - "net" - "strconv" - "strings" -) - -type parserFunc struct { - // Func defines the function that parses the tokens and returns the RR - // or an error. The last string contains any comments in the line as - // they returned by the lexer as well. - Func func(h RR_Header, c chan lex, origin string, file string) (RR, *ParseError, string) - // Signals if the RR ending is of variable length, like TXT or records - // that have Hexadecimal or Base64 as their last element in the Rdata. Records - // that have a fixed ending or for instance A, AAAA, SOA and etc. - Variable bool -} - -// Parse the rdata of each rrtype. -// All data from the channel c is either zString or zBlank. -// After the rdata there may come a zBlank and then a zNewline -// or immediately a zNewline. If this is not the case we flag -// an *ParseError: garbage after rdata. -func setRR(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - parserfunc, ok := typeToparserFunc[h.Rrtype] - if ok { - r, e, cm := parserfunc.Func(h, c, o, f) - if parserfunc.Variable { - return r, e, cm - } - if e != nil { - return nil, e, "" - } - e, cm = slurpRemainder(c, f) - if e != nil { - return nil, e, "" - } - return r, nil, cm - } - // RFC3957 RR (Unknown RR handling) - return setRFC3597(h, c, o, f) -} - -// A remainder of the rdata with embedded spaces, return the parsed string (sans the spaces) -// or an error -func endingToString(c chan lex, errstr, f string) (string, *ParseError, string) { - s := "" - l := <-c // zString - for l.value != zNewline && l.value != zEOF { - if l.err { - return s, &ParseError{f, errstr, l}, "" - } - switch l.value { - case zString: - s += l.token - case zBlank: // Ok - default: - return "", &ParseError{f, errstr, l}, "" - } - l = <-c - } - return s, nil, l.comment -} - -// A remainder of the rdata with embedded spaces, return the parsed string slice (sans the spaces) -// or an error -func endingToTxtSlice(c chan lex, errstr, f string) ([]string, *ParseError, string) { - // Get the remaining data until we see a zNewline - quote := false - l := <-c - var s []string - if l.err { - return s, &ParseError{f, errstr, l}, "" - } - switch l.value == zQuote { - case true: // A number of quoted string - s = make([]string, 0) - empty := true - for l.value != zNewline && l.value != zEOF { - if l.err { - return nil, &ParseError{f, errstr, l}, "" - } - switch l.value { - case zString: - empty = false - if len(l.token) > 255 { - // split up tokens that are larger than 255 into 255-chunks - sx := []string{} - p, i := 0, 255 - for { - if i <= len(l.token) { - sx = append(sx, l.token[p:i]) - } else { - sx = append(sx, l.token[p:]) - break - - } - p, i = p+255, i+255 - } - s = append(s, sx...) - break - } - - s = append(s, l.token) - case zBlank: - if quote { - // zBlank can only be seen in between txt parts. - return nil, &ParseError{f, errstr, l}, "" - } - case zQuote: - if empty && quote { - s = append(s, "") - } - quote = !quote - empty = true - default: - return nil, &ParseError{f, errstr, l}, "" - } - l = <-c - } - if quote { - return nil, &ParseError{f, errstr, l}, "" - } - case false: // Unquoted text record - s = make([]string, 1) - for l.value != zNewline && l.value != zEOF { - if l.err { - return s, &ParseError{f, errstr, l}, "" - } - s[0] += l.token - l = <-c - } - } - return s, nil, l.comment -} - -func setA(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(A) - rr.Hdr = h - - l := <-c - if l.length == 0 { // Dynamic updates. - return rr, nil, "" - } - rr.A = net.ParseIP(l.token) - if rr.A == nil || l.err { - return nil, &ParseError{f, "bad A A", l}, "" - } - return rr, nil, "" -} - -func setAAAA(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(AAAA) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - rr.AAAA = net.ParseIP(l.token) - if rr.AAAA == nil || l.err { - return nil, &ParseError{f, "bad AAAA AAAA", l}, "" - } - return rr, nil, "" -} - -func setNS(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(NS) - rr.Hdr = h - - l := <-c - rr.Ns = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.Ns = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad NS Ns", l}, "" - } - if rr.Ns[l.length-1] != '.' { - rr.Ns = appendOrigin(rr.Ns, o) - } - return rr, nil, "" -} - -func setPTR(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(PTR) - rr.Hdr = h - - l := <-c - rr.Ptr = l.token - if l.length == 0 { // dynamic update rr. - return rr, nil, "" - } - if l.token == "@" { - rr.Ptr = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad PTR Ptr", l}, "" - } - if rr.Ptr[l.length-1] != '.' { - rr.Ptr = appendOrigin(rr.Ptr, o) - } - return rr, nil, "" -} - -func setNSAPPTR(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(NSAPPTR) - rr.Hdr = h - - l := <-c - rr.Ptr = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.Ptr = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad NSAP-PTR Ptr", l}, "" - } - if rr.Ptr[l.length-1] != '.' { - rr.Ptr = appendOrigin(rr.Ptr, o) - } - return rr, nil, "" -} - -func setRP(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(RP) - rr.Hdr = h - - l := <-c - rr.Mbox = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.Mbox = o - } else { - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad RP Mbox", l}, "" - } - if rr.Mbox[l.length-1] != '.' { - rr.Mbox = appendOrigin(rr.Mbox, o) - } - } - <-c // zBlank - l = <-c - rr.Txt = l.token - if l.token == "@" { - rr.Txt = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad RP Txt", l}, "" - } - if rr.Txt[l.length-1] != '.' { - rr.Txt = appendOrigin(rr.Txt, o) - } - return rr, nil, "" -} - -func setMR(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(MR) - rr.Hdr = h - - l := <-c - rr.Mr = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.Mr = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad MR Mr", l}, "" - } - if rr.Mr[l.length-1] != '.' { - rr.Mr = appendOrigin(rr.Mr, o) - } - return rr, nil, "" -} - -func setMB(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(MB) - rr.Hdr = h - - l := <-c - rr.Mb = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.Mb = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad MB Mb", l}, "" - } - if rr.Mb[l.length-1] != '.' { - rr.Mb = appendOrigin(rr.Mb, o) - } - return rr, nil, "" -} - -func setMG(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(MG) - rr.Hdr = h - - l := <-c - rr.Mg = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.Mg = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad MG Mg", l}, "" - } - if rr.Mg[l.length-1] != '.' { - rr.Mg = appendOrigin(rr.Mg, o) - } - return rr, nil, "" -} - -func setHINFO(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(HINFO) - rr.Hdr = h - - chunks, e, c1 := endingToTxtSlice(c, "bad HINFO Fields", f) - if e != nil { - return nil, e, c1 - } - - if ln := len(chunks); ln == 0 { - return rr, nil, "" - } else if ln == 1 { - // Can we split it? - if out := strings.Fields(chunks[0]); len(out) > 1 { - chunks = out - } else { - chunks = append(chunks, "") - } - } - - rr.Cpu = chunks[0] - rr.Os = strings.Join(chunks[1:], " ") - - return rr, nil, "" -} - -func setMINFO(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(MINFO) - rr.Hdr = h - - l := <-c - rr.Rmail = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.Rmail = o - } else { - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad MINFO Rmail", l}, "" - } - if rr.Rmail[l.length-1] != '.' { - rr.Rmail = appendOrigin(rr.Rmail, o) - } - } - <-c // zBlank - l = <-c - rr.Email = l.token - if l.token == "@" { - rr.Email = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad MINFO Email", l}, "" - } - if rr.Email[l.length-1] != '.' { - rr.Email = appendOrigin(rr.Email, o) - } - return rr, nil, "" -} - -func setMF(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(MF) - rr.Hdr = h - - l := <-c - rr.Mf = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.Mf = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad MF Mf", l}, "" - } - if rr.Mf[l.length-1] != '.' { - rr.Mf = appendOrigin(rr.Mf, o) - } - return rr, nil, "" -} - -func setMD(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(MD) - rr.Hdr = h - - l := <-c - rr.Md = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.Md = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad MD Md", l}, "" - } - if rr.Md[l.length-1] != '.' { - rr.Md = appendOrigin(rr.Md, o) - } - return rr, nil, "" -} - -func setMX(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(MX) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad MX Pref", l}, "" - } - rr.Preference = uint16(i) - <-c // zBlank - l = <-c // zString - rr.Mx = l.token - if l.token == "@" { - rr.Mx = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad MX Mx", l}, "" - } - if rr.Mx[l.length-1] != '.' { - rr.Mx = appendOrigin(rr.Mx, o) - } - return rr, nil, "" -} - -func setRT(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(RT) - rr.Hdr = h - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil { - return nil, &ParseError{f, "bad RT Preference", l}, "" - } - rr.Preference = uint16(i) - <-c // zBlank - l = <-c // zString - rr.Host = l.token - if l.token == "@" { - rr.Host = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad RT Host", l}, "" - } - if rr.Host[l.length-1] != '.' { - rr.Host = appendOrigin(rr.Host, o) - } - return rr, nil, "" -} - -func setAFSDB(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(AFSDB) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad AFSDB Subtype", l}, "" - } - rr.Subtype = uint16(i) - <-c // zBlank - l = <-c // zString - rr.Hostname = l.token - if l.token == "@" { - rr.Hostname = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad AFSDB Hostname", l}, "" - } - if rr.Hostname[l.length-1] != '.' { - rr.Hostname = appendOrigin(rr.Hostname, o) - } - return rr, nil, "" -} - -func setX25(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(X25) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - if l.err { - return nil, &ParseError{f, "bad X25 PSDNAddress", l}, "" - } - rr.PSDNAddress = l.token - return rr, nil, "" -} - -func setKX(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(KX) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad KX Pref", l}, "" - } - rr.Preference = uint16(i) - <-c // zBlank - l = <-c // zString - rr.Exchanger = l.token - if l.token == "@" { - rr.Exchanger = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad KX Exchanger", l}, "" - } - if rr.Exchanger[l.length-1] != '.' { - rr.Exchanger = appendOrigin(rr.Exchanger, o) - } - return rr, nil, "" -} - -func setCNAME(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(CNAME) - rr.Hdr = h - - l := <-c - rr.Target = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.Target = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad CNAME Target", l}, "" - } - if rr.Target[l.length-1] != '.' { - rr.Target = appendOrigin(rr.Target, o) - } - return rr, nil, "" -} - -func setDNAME(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(DNAME) - rr.Hdr = h - - l := <-c - rr.Target = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.Target = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad CNAME Target", l}, "" - } - if rr.Target[l.length-1] != '.' { - rr.Target = appendOrigin(rr.Target, o) - } - return rr, nil, "" -} - -func setSOA(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(SOA) - rr.Hdr = h - - l := <-c - rr.Ns = l.token - if l.length == 0 { - return rr, nil, "" - } - <-c // zBlank - if l.token == "@" { - rr.Ns = o - } else { - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad SOA Ns", l}, "" - } - if rr.Ns[l.length-1] != '.' { - rr.Ns = appendOrigin(rr.Ns, o) - } - } - - l = <-c - rr.Mbox = l.token - if l.token == "@" { - rr.Mbox = o - } else { - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad SOA Mbox", l}, "" - } - if rr.Mbox[l.length-1] != '.' { - rr.Mbox = appendOrigin(rr.Mbox, o) - } - } - <-c // zBlank - - var ( - v uint32 - ok bool - ) - for i := 0; i < 5; i++ { - l = <-c - if l.err { - return nil, &ParseError{f, "bad SOA zone parameter", l}, "" - } - if j, e := strconv.Atoi(l.token); e != nil { - if i == 0 { - // Serial should be a number - return nil, &ParseError{f, "bad SOA zone parameter", l}, "" - } - if v, ok = stringToTtl(l.token); !ok { - return nil, &ParseError{f, "bad SOA zone parameter", l}, "" - - } - } else { - v = uint32(j) - } - switch i { - case 0: - rr.Serial = v - <-c // zBlank - case 1: - rr.Refresh = v - <-c // zBlank - case 2: - rr.Retry = v - <-c // zBlank - case 3: - rr.Expire = v - <-c // zBlank - case 4: - rr.Minttl = v - } - } - return rr, nil, "" -} - -func setSRV(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(SRV) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad SRV Priority", l}, "" - } - rr.Priority = uint16(i) - <-c // zBlank - l = <-c // zString - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad SRV Weight", l}, "" - } - rr.Weight = uint16(i) - <-c // zBlank - l = <-c // zString - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad SRV Port", l}, "" - } - rr.Port = uint16(i) - <-c // zBlank - l = <-c // zString - rr.Target = l.token - if l.token == "@" { - rr.Target = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad SRV Target", l}, "" - } - if rr.Target[l.length-1] != '.' { - rr.Target = appendOrigin(rr.Target, o) - } - return rr, nil, "" -} - -func setNAPTR(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(NAPTR) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad NAPTR Order", l}, "" - } - rr.Order = uint16(i) - <-c // zBlank - l = <-c // zString - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad NAPTR Preference", l}, "" - } - rr.Preference = uint16(i) - // Flags - <-c // zBlank - l = <-c // _QUOTE - if l.value != zQuote { - return nil, &ParseError{f, "bad NAPTR Flags", l}, "" - } - l = <-c // Either String or Quote - if l.value == zString { - rr.Flags = l.token - l = <-c // _QUOTE - if l.value != zQuote { - return nil, &ParseError{f, "bad NAPTR Flags", l}, "" - } - } else if l.value == zQuote { - rr.Flags = "" - } else { - return nil, &ParseError{f, "bad NAPTR Flags", l}, "" - } - - // Service - <-c // zBlank - l = <-c // _QUOTE - if l.value != zQuote { - return nil, &ParseError{f, "bad NAPTR Service", l}, "" - } - l = <-c // Either String or Quote - if l.value == zString { - rr.Service = l.token - l = <-c // _QUOTE - if l.value != zQuote { - return nil, &ParseError{f, "bad NAPTR Service", l}, "" - } - } else if l.value == zQuote { - rr.Service = "" - } else { - return nil, &ParseError{f, "bad NAPTR Service", l}, "" - } - - // Regexp - <-c // zBlank - l = <-c // _QUOTE - if l.value != zQuote { - return nil, &ParseError{f, "bad NAPTR Regexp", l}, "" - } - l = <-c // Either String or Quote - if l.value == zString { - rr.Regexp = l.token - l = <-c // _QUOTE - if l.value != zQuote { - return nil, &ParseError{f, "bad NAPTR Regexp", l}, "" - } - } else if l.value == zQuote { - rr.Regexp = "" - } else { - return nil, &ParseError{f, "bad NAPTR Regexp", l}, "" - } - // After quote no space?? - <-c // zBlank - l = <-c // zString - rr.Replacement = l.token - if l.token == "@" { - rr.Replacement = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad NAPTR Replacement", l}, "" - } - if rr.Replacement[l.length-1] != '.' { - rr.Replacement = appendOrigin(rr.Replacement, o) - } - return rr, nil, "" -} - -func setTALINK(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(TALINK) - rr.Hdr = h - - l := <-c - rr.PreviousName = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.PreviousName = o - } else { - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad TALINK PreviousName", l}, "" - } - if rr.PreviousName[l.length-1] != '.' { - rr.PreviousName = appendOrigin(rr.PreviousName, o) - } - } - <-c // zBlank - l = <-c - rr.NextName = l.token - if l.token == "@" { - rr.NextName = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad TALINK NextName", l}, "" - } - if rr.NextName[l.length-1] != '.' { - rr.NextName = appendOrigin(rr.NextName, o) - } - return rr, nil, "" -} - -func setLOC(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(LOC) - rr.Hdr = h - // Non zero defaults for LOC record, see RFC 1876, Section 3. - rr.HorizPre = 165 // 10000 - rr.VertPre = 162 // 10 - rr.Size = 18 // 1 - ok := false - // North - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad LOC Latitude", l}, "" - } - rr.Latitude = 1000 * 60 * 60 * uint32(i) - - <-c // zBlank - // Either number, 'N' or 'S' - l = <-c - if rr.Latitude, ok = locCheckNorth(l.token, rr.Latitude); ok { - goto East - } - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad LOC Latitude minutes", l}, "" - } - rr.Latitude += 1000 * 60 * uint32(i) - - <-c // zBlank - l = <-c - if i, e := strconv.ParseFloat(l.token, 32); e != nil || l.err { - return nil, &ParseError{f, "bad LOC Latitude seconds", l}, "" - } else { - rr.Latitude += uint32(1000 * i) - } - <-c // zBlank - // Either number, 'N' or 'S' - l = <-c - if rr.Latitude, ok = locCheckNorth(l.token, rr.Latitude); ok { - goto East - } - // If still alive, flag an error - return nil, &ParseError{f, "bad LOC Latitude North/South", l}, "" - -East: - // East - <-c // zBlank - l = <-c - if i, e := strconv.Atoi(l.token); e != nil || l.err { - return nil, &ParseError{f, "bad LOC Longitude", l}, "" - } else { - rr.Longitude = 1000 * 60 * 60 * uint32(i) - } - <-c // zBlank - // Either number, 'E' or 'W' - l = <-c - if rr.Longitude, ok = locCheckEast(l.token, rr.Longitude); ok { - goto Altitude - } - if i, e := strconv.Atoi(l.token); e != nil || l.err { - return nil, &ParseError{f, "bad LOC Longitude minutes", l}, "" - } else { - rr.Longitude += 1000 * 60 * uint32(i) - } - <-c // zBlank - l = <-c - if i, e := strconv.ParseFloat(l.token, 32); e != nil || l.err { - return nil, &ParseError{f, "bad LOC Longitude seconds", l}, "" - } else { - rr.Longitude += uint32(1000 * i) - } - <-c // zBlank - // Either number, 'E' or 'W' - l = <-c - if rr.Longitude, ok = locCheckEast(l.token, rr.Longitude); ok { - goto Altitude - } - // If still alive, flag an error - return nil, &ParseError{f, "bad LOC Longitude East/West", l}, "" - -Altitude: - <-c // zBlank - l = <-c - if l.length == 0 || l.err { - return nil, &ParseError{f, "bad LOC Altitude", l}, "" - } - if l.token[len(l.token)-1] == 'M' || l.token[len(l.token)-1] == 'm' { - l.token = l.token[0 : len(l.token)-1] - } - if i, e := strconv.ParseFloat(l.token, 32); e != nil { - return nil, &ParseError{f, "bad LOC Altitude", l}, "" - } else { - rr.Altitude = uint32(i*100.0 + 10000000.0 + 0.5) - } - - // And now optionally the other values - l = <-c - count := 0 - for l.value != zNewline && l.value != zEOF { - switch l.value { - case zString: - switch count { - case 0: // Size - e, m, ok := stringToCm(l.token) - if !ok { - return nil, &ParseError{f, "bad LOC Size", l}, "" - } - rr.Size = (e & 0x0f) | (m << 4 & 0xf0) - case 1: // HorizPre - e, m, ok := stringToCm(l.token) - if !ok { - return nil, &ParseError{f, "bad LOC HorizPre", l}, "" - } - rr.HorizPre = (e & 0x0f) | (m << 4 & 0xf0) - case 2: // VertPre - e, m, ok := stringToCm(l.token) - if !ok { - return nil, &ParseError{f, "bad LOC VertPre", l}, "" - } - rr.VertPre = (e & 0x0f) | (m << 4 & 0xf0) - } - count++ - case zBlank: - // Ok - default: - return nil, &ParseError{f, "bad LOC Size, HorizPre or VertPre", l}, "" - } - l = <-c - } - return rr, nil, "" -} - -func setHIP(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(HIP) - rr.Hdr = h - - // HitLength is not represented - l := <-c - if l.length == 0 { - return rr, nil, l.comment - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad HIP PublicKeyAlgorithm", l}, "" - } - rr.PublicKeyAlgorithm = uint8(i) - <-c // zBlank - l = <-c // zString - if l.length == 0 || l.err { - return nil, &ParseError{f, "bad HIP Hit", l}, "" - } - rr.Hit = l.token // This can not contain spaces, see RFC 5205 Section 6. - rr.HitLength = uint8(len(rr.Hit)) / 2 - - <-c // zBlank - l = <-c // zString - if l.length == 0 || l.err { - return nil, &ParseError{f, "bad HIP PublicKey", l}, "" - } - rr.PublicKey = l.token // This cannot contain spaces - rr.PublicKeyLength = uint16(base64.StdEncoding.DecodedLen(len(rr.PublicKey))) - - // RendezvousServers (if any) - l = <-c - var xs []string - for l.value != zNewline && l.value != zEOF { - switch l.value { - case zString: - if l.token == "@" { - xs = append(xs, o) - l = <-c - continue - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad HIP RendezvousServers", l}, "" - } - if l.token[l.length-1] != '.' { - l.token = appendOrigin(l.token, o) - } - xs = append(xs, l.token) - case zBlank: - // Ok - default: - return nil, &ParseError{f, "bad HIP RendezvousServers", l}, "" - } - l = <-c - } - rr.RendezvousServers = xs - return rr, nil, l.comment -} - -func setCERT(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(CERT) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, l.comment - } - if v, ok := StringToCertType[l.token]; ok { - rr.Type = v - } else if i, e := strconv.Atoi(l.token); e != nil { - return nil, &ParseError{f, "bad CERT Type", l}, "" - } else { - rr.Type = uint16(i) - } - <-c // zBlank - l = <-c // zString - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad CERT KeyTag", l}, "" - } - rr.KeyTag = uint16(i) - <-c // zBlank - l = <-c // zString - if v, ok := StringToAlgorithm[l.token]; ok { - rr.Algorithm = v - } else if i, e := strconv.Atoi(l.token); e != nil { - return nil, &ParseError{f, "bad CERT Algorithm", l}, "" - } else { - rr.Algorithm = uint8(i) - } - s, e1, c1 := endingToString(c, "bad CERT Certificate", f) - if e1 != nil { - return nil, e1, c1 - } - rr.Certificate = s - return rr, nil, c1 -} - -func setOPENPGPKEY(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(OPENPGPKEY) - rr.Hdr = h - - s, e, c1 := endingToString(c, "bad OPENPGPKEY PublicKey", f) - if e != nil { - return nil, e, c1 - } - rr.PublicKey = s - return rr, nil, c1 -} - -func setSIG(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - r, e, s := setRRSIG(h, c, o, f) - if r != nil { - return &SIG{*r.(*RRSIG)}, e, s - } - return nil, e, s -} - -func setRRSIG(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(RRSIG) - rr.Hdr = h - l := <-c - if l.length == 0 { - return rr, nil, l.comment - } - if t, ok := StringToType[l.tokenUpper]; !ok { - if strings.HasPrefix(l.tokenUpper, "TYPE") { - t, ok = typeToInt(l.tokenUpper) - if !ok { - return nil, &ParseError{f, "bad RRSIG Typecovered", l}, "" - } - rr.TypeCovered = t - } else { - return nil, &ParseError{f, "bad RRSIG Typecovered", l}, "" - } - } else { - rr.TypeCovered = t - } - <-c // zBlank - l = <-c - i, err := strconv.Atoi(l.token) - if err != nil || l.err { - return nil, &ParseError{f, "bad RRSIG Algorithm", l}, "" - } - rr.Algorithm = uint8(i) - <-c // zBlank - l = <-c - i, err = strconv.Atoi(l.token) - if err != nil || l.err { - return nil, &ParseError{f, "bad RRSIG Labels", l}, "" - } - rr.Labels = uint8(i) - <-c // zBlank - l = <-c - i, err = strconv.Atoi(l.token) - if err != nil || l.err { - return nil, &ParseError{f, "bad RRSIG OrigTtl", l}, "" - } - rr.OrigTtl = uint32(i) - <-c // zBlank - l = <-c - if i, err := StringToTime(l.token); err != nil { - // Try to see if all numeric and use it as epoch - if i, err := strconv.ParseInt(l.token, 10, 64); err == nil { - // TODO(miek): error out on > MAX_UINT32, same below - rr.Expiration = uint32(i) - } else { - return nil, &ParseError{f, "bad RRSIG Expiration", l}, "" - } - } else { - rr.Expiration = i - } - <-c // zBlank - l = <-c - if i, err := StringToTime(l.token); err != nil { - if i, err := strconv.ParseInt(l.token, 10, 64); err == nil { - rr.Inception = uint32(i) - } else { - return nil, &ParseError{f, "bad RRSIG Inception", l}, "" - } - } else { - rr.Inception = i - } - <-c // zBlank - l = <-c - i, err = strconv.Atoi(l.token) - if err != nil || l.err { - return nil, &ParseError{f, "bad RRSIG KeyTag", l}, "" - } - rr.KeyTag = uint16(i) - <-c // zBlank - l = <-c - rr.SignerName = l.token - if l.token == "@" { - rr.SignerName = o - } else { - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad RRSIG SignerName", l}, "" - } - if rr.SignerName[l.length-1] != '.' { - rr.SignerName = appendOrigin(rr.SignerName, o) - } - } - s, e, c1 := endingToString(c, "bad RRSIG Signature", f) - if e != nil { - return nil, e, c1 - } - rr.Signature = s - return rr, nil, c1 -} - -func setNSEC(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(NSEC) - rr.Hdr = h - - l := <-c - rr.NextDomain = l.token - if l.length == 0 { - return rr, nil, l.comment - } - if l.token == "@" { - rr.NextDomain = o - } else { - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad NSEC NextDomain", l}, "" - } - if rr.NextDomain[l.length-1] != '.' { - rr.NextDomain = appendOrigin(rr.NextDomain, o) - } - } - - rr.TypeBitMap = make([]uint16, 0) - var ( - k uint16 - ok bool - ) - l = <-c - for l.value != zNewline && l.value != zEOF { - switch l.value { - case zBlank: - // Ok - case zString: - if k, ok = StringToType[l.tokenUpper]; !ok { - if k, ok = typeToInt(l.tokenUpper); !ok { - return nil, &ParseError{f, "bad NSEC TypeBitMap", l}, "" - } - } - rr.TypeBitMap = append(rr.TypeBitMap, k) - default: - return nil, &ParseError{f, "bad NSEC TypeBitMap", l}, "" - } - l = <-c - } - return rr, nil, l.comment -} - -func setNSEC3(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(NSEC3) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, l.comment - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad NSEC3 Hash", l}, "" - } - rr.Hash = uint8(i) - <-c // zBlank - l = <-c - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad NSEC3 Flags", l}, "" - } - rr.Flags = uint8(i) - <-c // zBlank - l = <-c - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad NSEC3 Iterations", l}, "" - } - rr.Iterations = uint16(i) - <-c - l = <-c - if len(l.token) == 0 || l.err { - return nil, &ParseError{f, "bad NSEC3 Salt", l}, "" - } - rr.SaltLength = uint8(len(l.token)) / 2 - rr.Salt = l.token - - <-c - l = <-c - if len(l.token) == 0 || l.err { - return nil, &ParseError{f, "bad NSEC3 NextDomain", l}, "" - } - rr.HashLength = 20 // Fix for NSEC3 (sha1 160 bits) - rr.NextDomain = l.token - - rr.TypeBitMap = make([]uint16, 0) - var ( - k uint16 - ok bool - ) - l = <-c - for l.value != zNewline && l.value != zEOF { - switch l.value { - case zBlank: - // Ok - case zString: - if k, ok = StringToType[l.tokenUpper]; !ok { - if k, ok = typeToInt(l.tokenUpper); !ok { - return nil, &ParseError{f, "bad NSEC3 TypeBitMap", l}, "" - } - } - rr.TypeBitMap = append(rr.TypeBitMap, k) - default: - return nil, &ParseError{f, "bad NSEC3 TypeBitMap", l}, "" - } - l = <-c - } - return rr, nil, l.comment -} - -func setNSEC3PARAM(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(NSEC3PARAM) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad NSEC3PARAM Hash", l}, "" - } - rr.Hash = uint8(i) - <-c // zBlank - l = <-c - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad NSEC3PARAM Flags", l}, "" - } - rr.Flags = uint8(i) - <-c // zBlank - l = <-c - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad NSEC3PARAM Iterations", l}, "" - } - rr.Iterations = uint16(i) - <-c - l = <-c - rr.SaltLength = uint8(len(l.token)) - rr.Salt = l.token - return rr, nil, "" -} - -func setEUI48(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(EUI48) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - if l.length != 17 || l.err { - return nil, &ParseError{f, "bad EUI48 Address", l}, "" - } - addr := make([]byte, 12) - dash := 0 - for i := 0; i < 10; i += 2 { - addr[i] = l.token[i+dash] - addr[i+1] = l.token[i+1+dash] - dash++ - if l.token[i+1+dash] != '-' { - return nil, &ParseError{f, "bad EUI48 Address", l}, "" - } - } - addr[10] = l.token[15] - addr[11] = l.token[16] - - i, e := strconv.ParseUint(string(addr), 16, 48) - if e != nil { - return nil, &ParseError{f, "bad EUI48 Address", l}, "" - } - rr.Address = i - return rr, nil, "" -} - -func setEUI64(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(EUI64) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - if l.length != 23 || l.err { - return nil, &ParseError{f, "bad EUI64 Address", l}, "" - } - addr := make([]byte, 16) - dash := 0 - for i := 0; i < 14; i += 2 { - addr[i] = l.token[i+dash] - addr[i+1] = l.token[i+1+dash] - dash++ - if l.token[i+1+dash] != '-' { - return nil, &ParseError{f, "bad EUI64 Address", l}, "" - } - } - addr[14] = l.token[21] - addr[15] = l.token[22] - - i, e := strconv.ParseUint(string(addr), 16, 64) - if e != nil { - return nil, &ParseError{f, "bad EUI68 Address", l}, "" - } - rr.Address = uint64(i) - return rr, nil, "" -} - -func setWKS(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(WKS) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, l.comment - } - rr.Address = net.ParseIP(l.token) - if rr.Address == nil || l.err { - return nil, &ParseError{f, "bad WKS Address", l}, "" - } - - <-c // zBlank - l = <-c - proto := "tcp" - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad WKS Protocol", l}, "" - } - rr.Protocol = uint8(i) - switch rr.Protocol { - case 17: - proto = "udp" - case 6: - proto = "tcp" - default: - return nil, &ParseError{f, "bad WKS Protocol", l}, "" - } - - <-c - l = <-c - rr.BitMap = make([]uint16, 0) - var ( - k int - err error - ) - for l.value != zNewline && l.value != zEOF { - switch l.value { - case zBlank: - // Ok - case zString: - if k, err = net.LookupPort(proto, l.token); err != nil { - i, e := strconv.Atoi(l.token) // If a number use that - if e != nil { - return nil, &ParseError{f, "bad WKS BitMap", l}, "" - } - rr.BitMap = append(rr.BitMap, uint16(i)) - } - rr.BitMap = append(rr.BitMap, uint16(k)) - default: - return nil, &ParseError{f, "bad WKS BitMap", l}, "" - } - l = <-c - } - return rr, nil, l.comment -} - -func setSSHFP(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(SSHFP) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad SSHFP Algorithm", l}, "" - } - rr.Algorithm = uint8(i) - <-c // zBlank - l = <-c - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad SSHFP Type", l}, "" - } - rr.Type = uint8(i) - <-c // zBlank - s, e1, c1 := endingToString(c, "bad SSHFP Fingerprint", f) - if e1 != nil { - return nil, e1, c1 - } - rr.FingerPrint = s - return rr, nil, "" -} - -func setDNSKEYs(h RR_Header, c chan lex, o, f, typ string) (RR, *ParseError, string) { - rr := new(DNSKEY) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, l.comment - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad " + typ + " Flags", l}, "" - } - rr.Flags = uint16(i) - <-c // zBlank - l = <-c // zString - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad " + typ + " Protocol", l}, "" - } - rr.Protocol = uint8(i) - <-c // zBlank - l = <-c // zString - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad " + typ + " Algorithm", l}, "" - } - rr.Algorithm = uint8(i) - s, e1, c1 := endingToString(c, "bad "+typ+" PublicKey", f) - if e1 != nil { - return nil, e1, c1 - } - rr.PublicKey = s - return rr, nil, c1 -} - -func setKEY(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - r, e, s := setDNSKEYs(h, c, o, f, "KEY") - if r != nil { - return &KEY{*r.(*DNSKEY)}, e, s - } - return nil, e, s -} - -func setDNSKEY(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - r, e, s := setDNSKEYs(h, c, o, f, "DNSKEY") - return r, e, s -} - -func setCDNSKEY(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - r, e, s := setDNSKEYs(h, c, o, f, "CDNSKEY") - if r != nil { - return &CDNSKEY{*r.(*DNSKEY)}, e, s - } - return nil, e, s -} - -func setRKEY(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(RKEY) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, l.comment - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad RKEY Flags", l}, "" - } - rr.Flags = uint16(i) - <-c // zBlank - l = <-c // zString - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad RKEY Protocol", l}, "" - } - rr.Protocol = uint8(i) - <-c // zBlank - l = <-c // zString - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad RKEY Algorithm", l}, "" - } - rr.Algorithm = uint8(i) - s, e1, c1 := endingToString(c, "bad RKEY PublicKey", f) - if e1 != nil { - return nil, e1, c1 - } - rr.PublicKey = s - return rr, nil, c1 -} - -func setEID(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(EID) - rr.Hdr = h - s, e, c1 := endingToString(c, "bad EID Endpoint", f) - if e != nil { - return nil, e, c1 - } - rr.Endpoint = s - return rr, nil, c1 -} - -func setNIMLOC(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(NIMLOC) - rr.Hdr = h - s, e, c1 := endingToString(c, "bad NIMLOC Locator", f) - if e != nil { - return nil, e, c1 - } - rr.Locator = s - return rr, nil, c1 -} - -func setGPOS(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(GPOS) - rr.Hdr = h - l := <-c - if l.length == 0 { - return rr, nil, "" - } - _, e := strconv.ParseFloat(l.token, 64) - if e != nil || l.err { - return nil, &ParseError{f, "bad GPOS Longitude", l}, "" - } - rr.Longitude = l.token - <-c // zBlank - l = <-c - _, e = strconv.ParseFloat(l.token, 64) - if e != nil || l.err { - return nil, &ParseError{f, "bad GPOS Latitude", l}, "" - } - rr.Latitude = l.token - <-c // zBlank - l = <-c - _, e = strconv.ParseFloat(l.token, 64) - if e != nil || l.err { - return nil, &ParseError{f, "bad GPOS Altitude", l}, "" - } - rr.Altitude = l.token - return rr, nil, "" -} - -func setDSs(h RR_Header, c chan lex, o, f, typ string) (RR, *ParseError, string) { - rr := new(DS) - rr.Hdr = h - l := <-c - if l.length == 0 { - return rr, nil, l.comment - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad " + typ + " KeyTag", l}, "" - } - rr.KeyTag = uint16(i) - <-c // zBlank - l = <-c - if i, e := strconv.Atoi(l.token); e != nil { - i, ok := StringToAlgorithm[l.tokenUpper] - if !ok || l.err { - return nil, &ParseError{f, "bad " + typ + " Algorithm", l}, "" - } - rr.Algorithm = i - } else { - rr.Algorithm = uint8(i) - } - <-c // zBlank - l = <-c - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad " + typ + " DigestType", l}, "" - } - rr.DigestType = uint8(i) - s, e1, c1 := endingToString(c, "bad "+typ+" Digest", f) - if e1 != nil { - return nil, e1, c1 - } - rr.Digest = s - return rr, nil, c1 -} - -func setDS(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - r, e, s := setDSs(h, c, o, f, "DS") - return r, e, s -} - -func setDLV(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - r, e, s := setDSs(h, c, o, f, "DLV") - if r != nil { - return &DLV{*r.(*DS)}, e, s - } - return nil, e, s -} - -func setCDS(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - r, e, s := setDSs(h, c, o, f, "CDS") - if r != nil { - return &CDS{*r.(*DS)}, e, s - } - return nil, e, s -} - -func setTA(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(TA) - rr.Hdr = h - l := <-c - if l.length == 0 { - return rr, nil, l.comment - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad TA KeyTag", l}, "" - } - rr.KeyTag = uint16(i) - <-c // zBlank - l = <-c - if i, e := strconv.Atoi(l.token); e != nil { - i, ok := StringToAlgorithm[l.tokenUpper] - if !ok || l.err { - return nil, &ParseError{f, "bad TA Algorithm", l}, "" - } - rr.Algorithm = i - } else { - rr.Algorithm = uint8(i) - } - <-c // zBlank - l = <-c - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad TA DigestType", l}, "" - } - rr.DigestType = uint8(i) - s, e, c1 := endingToString(c, "bad TA Digest", f) - if e != nil { - return nil, e.(*ParseError), c1 - } - rr.Digest = s - return rr, nil, c1 -} - -func setTLSA(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(TLSA) - rr.Hdr = h - l := <-c - if l.length == 0 { - return rr, nil, l.comment - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad TLSA Usage", l}, "" - } - rr.Usage = uint8(i) - <-c // zBlank - l = <-c - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad TLSA Selector", l}, "" - } - rr.Selector = uint8(i) - <-c // zBlank - l = <-c - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad TLSA MatchingType", l}, "" - } - rr.MatchingType = uint8(i) - // So this needs be e2 (i.e. different than e), because...??t - s, e2, c1 := endingToString(c, "bad TLSA Certificate", f) - if e2 != nil { - return nil, e2, c1 - } - rr.Certificate = s - return rr, nil, c1 -} - -func setRFC3597(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(RFC3597) - rr.Hdr = h - l := <-c - if l.token != "\\#" { - return nil, &ParseError{f, "bad RFC3597 Rdata", l}, "" - } - <-c // zBlank - l = <-c - rdlength, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad RFC3597 Rdata ", l}, "" - } - - s, e1, c1 := endingToString(c, "bad RFC3597 Rdata", f) - if e1 != nil { - return nil, e1, c1 - } - if rdlength*2 != len(s) { - return nil, &ParseError{f, "bad RFC3597 Rdata", l}, "" - } - rr.Rdata = s - return rr, nil, c1 -} - -func setSPF(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(SPF) - rr.Hdr = h - - s, e, c1 := endingToTxtSlice(c, "bad SPF Txt", f) - if e != nil { - return nil, e, "" - } - rr.Txt = s - return rr, nil, c1 -} - -func setTXT(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(TXT) - rr.Hdr = h - - // no zBlank reading here, because all this rdata is TXT - s, e, c1 := endingToTxtSlice(c, "bad TXT Txt", f) - if e != nil { - return nil, e, "" - } - rr.Txt = s - return rr, nil, c1 -} - -// identical to setTXT -func setNINFO(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(NINFO) - rr.Hdr = h - - s, e, c1 := endingToTxtSlice(c, "bad NINFO ZSData", f) - if e != nil { - return nil, e, "" - } - rr.ZSData = s - return rr, nil, c1 -} - -func setURI(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(URI) - rr.Hdr = h - - l := <-c - if l.length == 0 { // Dynamic updates. - return rr, nil, "" - } - - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad URI Priority", l}, "" - } - rr.Priority = uint16(i) - <-c // zBlank - l = <-c - i, e = strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad URI Weight", l}, "" - } - rr.Weight = uint16(i) - - <-c // zBlank - s, err, c1 := endingToTxtSlice(c, "bad URI Target", f) - if err != nil { - return nil, err, "" - } - if len(s) > 1 { - return nil, &ParseError{f, "bad URI Target", l}, "" - } - rr.Target = s[0] - return rr, nil, c1 -} - -func setDHCID(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - // awesome record to parse! - rr := new(DHCID) - rr.Hdr = h - - s, e, c1 := endingToString(c, "bad DHCID Digest", f) - if e != nil { - return nil, e, c1 - } - rr.Digest = s - return rr, nil, c1 -} - -func setNID(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(NID) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad NID Preference", l}, "" - } - rr.Preference = uint16(i) - <-c // zBlank - l = <-c // zString - u, err := stringToNodeID(l) - if err != nil || l.err { - return nil, err, "" - } - rr.NodeID = u - return rr, nil, "" -} - -func setL32(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(L32) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad L32 Preference", l}, "" - } - rr.Preference = uint16(i) - <-c // zBlank - l = <-c // zString - rr.Locator32 = net.ParseIP(l.token) - if rr.Locator32 == nil || l.err { - return nil, &ParseError{f, "bad L32 Locator", l}, "" - } - return rr, nil, "" -} - -func setLP(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(LP) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad LP Preference", l}, "" - } - rr.Preference = uint16(i) - <-c // zBlank - l = <-c // zString - rr.Fqdn = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.Fqdn = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad LP Fqdn", l}, "" - } - if rr.Fqdn[l.length-1] != '.' { - rr.Fqdn = appendOrigin(rr.Fqdn, o) - } - return rr, nil, "" -} - -func setL64(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(L64) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad L64 Preference", l}, "" - } - rr.Preference = uint16(i) - <-c // zBlank - l = <-c // zString - u, err := stringToNodeID(l) - if err != nil || l.err { - return nil, err, "" - } - rr.Locator64 = u - return rr, nil, "" -} - -func setUID(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(UID) - rr.Hdr = h - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad UID Uid", l}, "" - } - rr.Uid = uint32(i) - return rr, nil, "" -} - -func setGID(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(GID) - rr.Hdr = h - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad GID Gid", l}, "" - } - rr.Gid = uint32(i) - return rr, nil, "" -} - -func setUINFO(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(UINFO) - rr.Hdr = h - s, e, c1 := endingToTxtSlice(c, "bad UINFO Uinfo", f) - if e != nil { - return nil, e, "" - } - rr.Uinfo = s[0] // silently discard anything above - return rr, nil, c1 -} - -func setPX(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(PX) - rr.Hdr = h - - l := <-c - if l.length == 0 { - return rr, nil, "" - } - i, e := strconv.Atoi(l.token) - if e != nil || l.err { - return nil, &ParseError{f, "bad PX Preference", l}, "" - } - rr.Preference = uint16(i) - <-c // zBlank - l = <-c // zString - rr.Map822 = l.token - if l.length == 0 { - return rr, nil, "" - } - if l.token == "@" { - rr.Map822 = o - return rr, nil, "" - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad PX Map822", l}, "" - } - if rr.Map822[l.length-1] != '.' { - rr.Map822 = appendOrigin(rr.Map822, o) - } - <-c // zBlank - l = <-c // zString - rr.Mapx400 = l.token - if l.token == "@" { - rr.Mapx400 = o - return rr, nil, "" - } - _, ok = IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad PX Mapx400", l}, "" - } - if rr.Mapx400[l.length-1] != '.' { - rr.Mapx400 = appendOrigin(rr.Mapx400, o) - } - return rr, nil, "" -} - -func setIPSECKEY(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(IPSECKEY) - rr.Hdr = h - l := <-c - if l.length == 0 { - return rr, nil, l.comment - } - i, err := strconv.Atoi(l.token) - if err != nil || l.err { - return nil, &ParseError{f, "bad IPSECKEY Precedence", l}, "" - } - rr.Precedence = uint8(i) - <-c // zBlank - l = <-c - i, err = strconv.Atoi(l.token) - if err != nil || l.err { - return nil, &ParseError{f, "bad IPSECKEY GatewayType", l}, "" - } - rr.GatewayType = uint8(i) - <-c // zBlank - l = <-c - i, err = strconv.Atoi(l.token) - if err != nil || l.err { - return nil, &ParseError{f, "bad IPSECKEY Algorithm", l}, "" - } - rr.Algorithm = uint8(i) - - // Now according to GatewayType we can have different elements here - <-c // zBlank - l = <-c - switch rr.GatewayType { - case 0: - fallthrough - case 3: - rr.GatewayName = l.token - if l.token == "@" { - rr.GatewayName = o - } - _, ok := IsDomainName(l.token) - if !ok || l.length == 0 || l.err { - return nil, &ParseError{f, "bad IPSECKEY GatewayName", l}, "" - } - if rr.GatewayName[l.length-1] != '.' { - rr.GatewayName = appendOrigin(rr.GatewayName, o) - } - case 1: - rr.GatewayA = net.ParseIP(l.token) - if rr.GatewayA == nil { - return nil, &ParseError{f, "bad IPSECKEY GatewayA", l}, "" - } - case 2: - rr.GatewayAAAA = net.ParseIP(l.token) - if rr.GatewayAAAA == nil { - return nil, &ParseError{f, "bad IPSECKEY GatewayAAAA", l}, "" - } - default: - return nil, &ParseError{f, "bad IPSECKEY GatewayType", l}, "" - } - - s, e, c1 := endingToString(c, "bad IPSECKEY PublicKey", f) - if e != nil { - return nil, e, c1 - } - rr.PublicKey = s - return rr, nil, c1 -} - -func setCAA(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(CAA) - rr.Hdr = h - l := <-c - if l.length == 0 { - return rr, nil, l.comment - } - i, err := strconv.Atoi(l.token) - if err != nil || l.err { - return nil, &ParseError{f, "bad CAA Flag", l}, "" - } - rr.Flag = uint8(i) - - <-c // zBlank - l = <-c // zString - if l.value != zString { - return nil, &ParseError{f, "bad CAA Tag", l}, "" - } - rr.Tag = l.token - - <-c // zBlank - s, e, c1 := endingToTxtSlice(c, "bad CAA Value", f) - if e != nil { - return nil, e, "" - } - if len(s) > 1 { - return nil, &ParseError{f, "bad CAA Value", l}, "" - } - rr.Value = s[0] - return rr, nil, c1 -} - -var typeToparserFunc = map[uint16]parserFunc{ - TypeAAAA: parserFunc{setAAAA, false}, - TypeAFSDB: parserFunc{setAFSDB, false}, - TypeA: parserFunc{setA, false}, - TypeCAA: parserFunc{setCAA, true}, - TypeCDS: parserFunc{setCDS, true}, - TypeCDNSKEY: parserFunc{setCDNSKEY, true}, - TypeCERT: parserFunc{setCERT, true}, - TypeCNAME: parserFunc{setCNAME, false}, - TypeDHCID: parserFunc{setDHCID, true}, - TypeDLV: parserFunc{setDLV, true}, - TypeDNAME: parserFunc{setDNAME, false}, - TypeKEY: parserFunc{setKEY, true}, - TypeDNSKEY: parserFunc{setDNSKEY, true}, - TypeDS: parserFunc{setDS, true}, - TypeEID: parserFunc{setEID, true}, - TypeEUI48: parserFunc{setEUI48, false}, - TypeEUI64: parserFunc{setEUI64, false}, - TypeGID: parserFunc{setGID, false}, - TypeGPOS: parserFunc{setGPOS, false}, - TypeHINFO: parserFunc{setHINFO, true}, - TypeHIP: parserFunc{setHIP, true}, - TypeIPSECKEY: parserFunc{setIPSECKEY, true}, - TypeKX: parserFunc{setKX, false}, - TypeL32: parserFunc{setL32, false}, - TypeL64: parserFunc{setL64, false}, - TypeLOC: parserFunc{setLOC, true}, - TypeLP: parserFunc{setLP, false}, - TypeMB: parserFunc{setMB, false}, - TypeMD: parserFunc{setMD, false}, - TypeMF: parserFunc{setMF, false}, - TypeMG: parserFunc{setMG, false}, - TypeMINFO: parserFunc{setMINFO, false}, - TypeMR: parserFunc{setMR, false}, - TypeMX: parserFunc{setMX, false}, - TypeNAPTR: parserFunc{setNAPTR, false}, - TypeNID: parserFunc{setNID, false}, - TypeNIMLOC: parserFunc{setNIMLOC, true}, - TypeNINFO: parserFunc{setNINFO, true}, - TypeNSAPPTR: parserFunc{setNSAPPTR, false}, - TypeNSEC3PARAM: parserFunc{setNSEC3PARAM, false}, - TypeNSEC3: parserFunc{setNSEC3, true}, - TypeNSEC: parserFunc{setNSEC, true}, - TypeNS: parserFunc{setNS, false}, - TypeOPENPGPKEY: parserFunc{setOPENPGPKEY, true}, - TypePTR: parserFunc{setPTR, false}, - TypePX: parserFunc{setPX, false}, - TypeSIG: parserFunc{setSIG, true}, - TypeRKEY: parserFunc{setRKEY, true}, - TypeRP: parserFunc{setRP, false}, - TypeRRSIG: parserFunc{setRRSIG, true}, - TypeRT: parserFunc{setRT, false}, - TypeSOA: parserFunc{setSOA, false}, - TypeSPF: parserFunc{setSPF, true}, - TypeSRV: parserFunc{setSRV, false}, - TypeSSHFP: parserFunc{setSSHFP, true}, - TypeTALINK: parserFunc{setTALINK, false}, - TypeTA: parserFunc{setTA, true}, - TypeTLSA: parserFunc{setTLSA, true}, - TypeTXT: parserFunc{setTXT, true}, - TypeUID: parserFunc{setUID, false}, - TypeUINFO: parserFunc{setUINFO, true}, - TypeURI: parserFunc{setURI, true}, - TypeWKS: parserFunc{setWKS, true}, - TypeX25: parserFunc{setX25, false}, -} diff --git a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/ztypes.go b/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/ztypes.go deleted file mode 100644 index 3d0f9aef..00000000 --- a/vendor/gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns/ztypes.go +++ /dev/null @@ -1,842 +0,0 @@ -// *** DO NOT MODIFY *** -// AUTOGENERATED BY go generate - -package dns - -import ( - "encoding/base64" - "net" -) - -// TypeToRR is a map of constructors for each RR type. -var TypeToRR = map[uint16]func() RR{ - TypeA: func() RR { return new(A) }, - TypeAAAA: func() RR { return new(AAAA) }, - TypeAFSDB: func() RR { return new(AFSDB) }, - TypeANY: func() RR { return new(ANY) }, - TypeCAA: func() RR { return new(CAA) }, - TypeCDNSKEY: func() RR { return new(CDNSKEY) }, - TypeCDS: func() RR { return new(CDS) }, - TypeCERT: func() RR { return new(CERT) }, - TypeCNAME: func() RR { return new(CNAME) }, - TypeDHCID: func() RR { return new(DHCID) }, - TypeDLV: func() RR { return new(DLV) }, - TypeDNAME: func() RR { return new(DNAME) }, - TypeDNSKEY: func() RR { return new(DNSKEY) }, - TypeDS: func() RR { return new(DS) }, - TypeEID: func() RR { return new(EID) }, - TypeEUI48: func() RR { return new(EUI48) }, - TypeEUI64: func() RR { return new(EUI64) }, - TypeGID: func() RR { return new(GID) }, - TypeGPOS: func() RR { return new(GPOS) }, - TypeHINFO: func() RR { return new(HINFO) }, - TypeHIP: func() RR { return new(HIP) }, - TypeIPSECKEY: func() RR { return new(IPSECKEY) }, - TypeKEY: func() RR { return new(KEY) }, - TypeKX: func() RR { return new(KX) }, - TypeL32: func() RR { return new(L32) }, - TypeL64: func() RR { return new(L64) }, - TypeLOC: func() RR { return new(LOC) }, - TypeLP: func() RR { return new(LP) }, - TypeMB: func() RR { return new(MB) }, - TypeMD: func() RR { return new(MD) }, - TypeMF: func() RR { return new(MF) }, - TypeMG: func() RR { return new(MG) }, - TypeMINFO: func() RR { return new(MINFO) }, - TypeMR: func() RR { return new(MR) }, - TypeMX: func() RR { return new(MX) }, - TypeNAPTR: func() RR { return new(NAPTR) }, - TypeNID: func() RR { return new(NID) }, - TypeNIMLOC: func() RR { return new(NIMLOC) }, - TypeNINFO: func() RR { return new(NINFO) }, - TypeNS: func() RR { return new(NS) }, - TypeNSAPPTR: func() RR { return new(NSAPPTR) }, - TypeNSEC: func() RR { return new(NSEC) }, - TypeNSEC3: func() RR { return new(NSEC3) }, - TypeNSEC3PARAM: func() RR { return new(NSEC3PARAM) }, - TypeOPENPGPKEY: func() RR { return new(OPENPGPKEY) }, - TypeOPT: func() RR { return new(OPT) }, - TypePTR: func() RR { return new(PTR) }, - TypePX: func() RR { return new(PX) }, - TypeRKEY: func() RR { return new(RKEY) }, - TypeRP: func() RR { return new(RP) }, - TypeRRSIG: func() RR { return new(RRSIG) }, - TypeRT: func() RR { return new(RT) }, - TypeSIG: func() RR { return new(SIG) }, - TypeSOA: func() RR { return new(SOA) }, - TypeSPF: func() RR { return new(SPF) }, - TypeSRV: func() RR { return new(SRV) }, - TypeSSHFP: func() RR { return new(SSHFP) }, - TypeTA: func() RR { return new(TA) }, - TypeTALINK: func() RR { return new(TALINK) }, - TypeTKEY: func() RR { return new(TKEY) }, - TypeTLSA: func() RR { return new(TLSA) }, - TypeTSIG: func() RR { return new(TSIG) }, - TypeTXT: func() RR { return new(TXT) }, - TypeUID: func() RR { return new(UID) }, - TypeUINFO: func() RR { return new(UINFO) }, - TypeURI: func() RR { return new(URI) }, - TypeWKS: func() RR { return new(WKS) }, - TypeX25: func() RR { return new(X25) }, -} - -// TypeToString is a map of strings for each RR type. -var TypeToString = map[uint16]string{ - TypeA: "A", - TypeAAAA: "AAAA", - TypeAFSDB: "AFSDB", - TypeANY: "ANY", - TypeATMA: "ATMA", - TypeAXFR: "AXFR", - TypeCAA: "CAA", - TypeCDNSKEY: "CDNSKEY", - TypeCDS: "CDS", - TypeCERT: "CERT", - TypeCNAME: "CNAME", - TypeDHCID: "DHCID", - TypeDLV: "DLV", - TypeDNAME: "DNAME", - TypeDNSKEY: "DNSKEY", - TypeDS: "DS", - TypeEID: "EID", - TypeEUI48: "EUI48", - TypeEUI64: "EUI64", - TypeGID: "GID", - TypeGPOS: "GPOS", - TypeHINFO: "HINFO", - TypeHIP: "HIP", - TypeIPSECKEY: "IPSECKEY", - TypeISDN: "ISDN", - TypeIXFR: "IXFR", - TypeKEY: "KEY", - TypeKX: "KX", - TypeL32: "L32", - TypeL64: "L64", - TypeLOC: "LOC", - TypeLP: "LP", - TypeMAILA: "MAILA", - TypeMAILB: "MAILB", - TypeMB: "MB", - TypeMD: "MD", - TypeMF: "MF", - TypeMG: "MG", - TypeMINFO: "MINFO", - TypeMR: "MR", - TypeMX: "MX", - TypeNAPTR: "NAPTR", - TypeNID: "NID", - TypeNIMLOC: "NIMLOC", - TypeNINFO: "NINFO", - TypeNS: "NS", - TypeNSEC: "NSEC", - TypeNSEC3: "NSEC3", - TypeNSEC3PARAM: "NSEC3PARAM", - TypeNULL: "NULL", - TypeNXT: "NXT", - TypeNone: "None", - TypeOPENPGPKEY: "OPENPGPKEY", - TypeOPT: "OPT", - TypePTR: "PTR", - TypePX: "PX", - TypeRKEY: "RKEY", - TypeRP: "RP", - TypeRRSIG: "RRSIG", - TypeRT: "RT", - TypeReserved: "Reserved", - TypeSIG: "SIG", - TypeSOA: "SOA", - TypeSPF: "SPF", - TypeSRV: "SRV", - TypeSSHFP: "SSHFP", - TypeTA: "TA", - TypeTALINK: "TALINK", - TypeTKEY: "TKEY", - TypeTLSA: "TLSA", - TypeTSIG: "TSIG", - TypeTXT: "TXT", - TypeUID: "UID", - TypeUINFO: "UINFO", - TypeUNSPEC: "UNSPEC", - TypeURI: "URI", - TypeWKS: "WKS", - TypeX25: "X25", - TypeNSAPPTR: "NSAP-PTR", -} - -// Header() functions -func (rr *A) Header() *RR_Header { return &rr.Hdr } -func (rr *AAAA) Header() *RR_Header { return &rr.Hdr } -func (rr *AFSDB) Header() *RR_Header { return &rr.Hdr } -func (rr *ANY) Header() *RR_Header { return &rr.Hdr } -func (rr *CAA) Header() *RR_Header { return &rr.Hdr } -func (rr *CDNSKEY) Header() *RR_Header { return &rr.Hdr } -func (rr *CDS) Header() *RR_Header { return &rr.Hdr } -func (rr *CERT) Header() *RR_Header { return &rr.Hdr } -func (rr *CNAME) Header() *RR_Header { return &rr.Hdr } -func (rr *DHCID) Header() *RR_Header { return &rr.Hdr } -func (rr *DLV) Header() *RR_Header { return &rr.Hdr } -func (rr *DNAME) Header() *RR_Header { return &rr.Hdr } -func (rr *DNSKEY) Header() *RR_Header { return &rr.Hdr } -func (rr *DS) Header() *RR_Header { return &rr.Hdr } -func (rr *EID) Header() *RR_Header { return &rr.Hdr } -func (rr *EUI48) Header() *RR_Header { return &rr.Hdr } -func (rr *EUI64) Header() *RR_Header { return &rr.Hdr } -func (rr *GID) Header() *RR_Header { return &rr.Hdr } -func (rr *GPOS) Header() *RR_Header { return &rr.Hdr } -func (rr *HINFO) Header() *RR_Header { return &rr.Hdr } -func (rr *HIP) Header() *RR_Header { return &rr.Hdr } -func (rr *IPSECKEY) Header() *RR_Header { return &rr.Hdr } -func (rr *KEY) Header() *RR_Header { return &rr.Hdr } -func (rr *KX) Header() *RR_Header { return &rr.Hdr } -func (rr *L32) Header() *RR_Header { return &rr.Hdr } -func (rr *L64) Header() *RR_Header { return &rr.Hdr } -func (rr *LOC) Header() *RR_Header { return &rr.Hdr } -func (rr *LP) Header() *RR_Header { return &rr.Hdr } -func (rr *MB) Header() *RR_Header { return &rr.Hdr } -func (rr *MD) Header() *RR_Header { return &rr.Hdr } -func (rr *MF) Header() *RR_Header { return &rr.Hdr } -func (rr *MG) Header() *RR_Header { return &rr.Hdr } -func (rr *MINFO) Header() *RR_Header { return &rr.Hdr } -func (rr *MR) Header() *RR_Header { return &rr.Hdr } -func (rr *MX) Header() *RR_Header { return &rr.Hdr } -func (rr *NAPTR) Header() *RR_Header { return &rr.Hdr } -func (rr *NID) Header() *RR_Header { return &rr.Hdr } -func (rr *NIMLOC) Header() *RR_Header { return &rr.Hdr } -func (rr *NINFO) Header() *RR_Header { return &rr.Hdr } -func (rr *NS) Header() *RR_Header { return &rr.Hdr } -func (rr *NSAPPTR) Header() *RR_Header { return &rr.Hdr } -func (rr *NSEC) Header() *RR_Header { return &rr.Hdr } -func (rr *NSEC3) Header() *RR_Header { return &rr.Hdr } -func (rr *NSEC3PARAM) Header() *RR_Header { return &rr.Hdr } -func (rr *OPENPGPKEY) Header() *RR_Header { return &rr.Hdr } -func (rr *OPT) Header() *RR_Header { return &rr.Hdr } -func (rr *PTR) Header() *RR_Header { return &rr.Hdr } -func (rr *PX) Header() *RR_Header { return &rr.Hdr } -func (rr *RFC3597) Header() *RR_Header { return &rr.Hdr } -func (rr *RKEY) Header() *RR_Header { return &rr.Hdr } -func (rr *RP) Header() *RR_Header { return &rr.Hdr } -func (rr *RRSIG) Header() *RR_Header { return &rr.Hdr } -func (rr *RT) Header() *RR_Header { return &rr.Hdr } -func (rr *SIG) Header() *RR_Header { return &rr.Hdr } -func (rr *SOA) Header() *RR_Header { return &rr.Hdr } -func (rr *SPF) Header() *RR_Header { return &rr.Hdr } -func (rr *SRV) Header() *RR_Header { return &rr.Hdr } -func (rr *SSHFP) Header() *RR_Header { return &rr.Hdr } -func (rr *TA) Header() *RR_Header { return &rr.Hdr } -func (rr *TALINK) Header() *RR_Header { return &rr.Hdr } -func (rr *TKEY) Header() *RR_Header { return &rr.Hdr } -func (rr *TLSA) Header() *RR_Header { return &rr.Hdr } -func (rr *TSIG) Header() *RR_Header { return &rr.Hdr } -func (rr *TXT) Header() *RR_Header { return &rr.Hdr } -func (rr *UID) Header() *RR_Header { return &rr.Hdr } -func (rr *UINFO) Header() *RR_Header { return &rr.Hdr } -func (rr *URI) Header() *RR_Header { return &rr.Hdr } -func (rr *WKS) Header() *RR_Header { return &rr.Hdr } -func (rr *X25) Header() *RR_Header { return &rr.Hdr } - -// len() functions -func (rr *A) len() int { - l := rr.Hdr.len() - l += net.IPv4len // A - return l -} -func (rr *AAAA) len() int { - l := rr.Hdr.len() - l += net.IPv6len // AAAA - return l -} -func (rr *AFSDB) len() int { - l := rr.Hdr.len() - l += 2 // Subtype - l += len(rr.Hostname) + 1 - return l -} -func (rr *ANY) len() int { - l := rr.Hdr.len() - return l -} -func (rr *CAA) len() int { - l := rr.Hdr.len() - l += 1 // Flag - l += len(rr.Tag) + 1 - l += len(rr.Value) - return l -} -func (rr *CERT) len() int { - l := rr.Hdr.len() - l += 2 // Type - l += 2 // KeyTag - l += 1 // Algorithm - l += base64.StdEncoding.DecodedLen(len(rr.Certificate)) - return l -} -func (rr *CNAME) len() int { - l := rr.Hdr.len() - l += len(rr.Target) + 1 - return l -} -func (rr *DHCID) len() int { - l := rr.Hdr.len() - l += base64.StdEncoding.DecodedLen(len(rr.Digest)) - return l -} -func (rr *DNAME) len() int { - l := rr.Hdr.len() - l += len(rr.Target) + 1 - return l -} -func (rr *DNSKEY) len() int { - l := rr.Hdr.len() - l += 2 // Flags - l += 1 // Protocol - l += 1 // Algorithm - l += base64.StdEncoding.DecodedLen(len(rr.PublicKey)) - return l -} -func (rr *DS) len() int { - l := rr.Hdr.len() - l += 2 // KeyTag - l += 1 // Algorithm - l += 1 // DigestType - l += len(rr.Digest)/2 + 1 - return l -} -func (rr *EID) len() int { - l := rr.Hdr.len() - l += len(rr.Endpoint)/2 + 1 - return l -} -func (rr *EUI48) len() int { - l := rr.Hdr.len() - l += 6 // Address - return l -} -func (rr *EUI64) len() int { - l := rr.Hdr.len() - l += 8 // Address - return l -} -func (rr *GID) len() int { - l := rr.Hdr.len() - l += 4 // Gid - return l -} -func (rr *GPOS) len() int { - l := rr.Hdr.len() - l += len(rr.Longitude) + 1 - l += len(rr.Latitude) + 1 - l += len(rr.Altitude) + 1 - return l -} -func (rr *HINFO) len() int { - l := rr.Hdr.len() - l += len(rr.Cpu) + 1 - l += len(rr.Os) + 1 - return l -} -func (rr *HIP) len() int { - l := rr.Hdr.len() - l += 1 // HitLength - l += 1 // PublicKeyAlgorithm - l += 2 // PublicKeyLength - l += len(rr.Hit)/2 + 1 - l += base64.StdEncoding.DecodedLen(len(rr.PublicKey)) - for _, x := range rr.RendezvousServers { - l += len(x) + 1 - } - return l -} -func (rr *KX) len() int { - l := rr.Hdr.len() - l += 2 // Preference - l += len(rr.Exchanger) + 1 - return l -} -func (rr *L32) len() int { - l := rr.Hdr.len() - l += 2 // Preference - l += net.IPv4len // Locator32 - return l -} -func (rr *L64) len() int { - l := rr.Hdr.len() - l += 2 // Preference - l += 8 // Locator64 - return l -} -func (rr *LOC) len() int { - l := rr.Hdr.len() - l += 1 // Version - l += 1 // Size - l += 1 // HorizPre - l += 1 // VertPre - l += 4 // Latitude - l += 4 // Longitude - l += 4 // Altitude - return l -} -func (rr *LP) len() int { - l := rr.Hdr.len() - l += 2 // Preference - l += len(rr.Fqdn) + 1 - return l -} -func (rr *MB) len() int { - l := rr.Hdr.len() - l += len(rr.Mb) + 1 - return l -} -func (rr *MD) len() int { - l := rr.Hdr.len() - l += len(rr.Md) + 1 - return l -} -func (rr *MF) len() int { - l := rr.Hdr.len() - l += len(rr.Mf) + 1 - return l -} -func (rr *MG) len() int { - l := rr.Hdr.len() - l += len(rr.Mg) + 1 - return l -} -func (rr *MINFO) len() int { - l := rr.Hdr.len() - l += len(rr.Rmail) + 1 - l += len(rr.Email) + 1 - return l -} -func (rr *MR) len() int { - l := rr.Hdr.len() - l += len(rr.Mr) + 1 - return l -} -func (rr *MX) len() int { - l := rr.Hdr.len() - l += 2 // Preference - l += len(rr.Mx) + 1 - return l -} -func (rr *NAPTR) len() int { - l := rr.Hdr.len() - l += 2 // Order - l += 2 // Preference - l += len(rr.Flags) + 1 - l += len(rr.Service) + 1 - l += len(rr.Regexp) + 1 - l += len(rr.Replacement) + 1 - return l -} -func (rr *NID) len() int { - l := rr.Hdr.len() - l += 2 // Preference - l += 8 // NodeID - return l -} -func (rr *NIMLOC) len() int { - l := rr.Hdr.len() - l += len(rr.Locator)/2 + 1 - return l -} -func (rr *NINFO) len() int { - l := rr.Hdr.len() - for _, x := range rr.ZSData { - l += len(x) + 1 - } - return l -} -func (rr *NS) len() int { - l := rr.Hdr.len() - l += len(rr.Ns) + 1 - return l -} -func (rr *NSAPPTR) len() int { - l := rr.Hdr.len() - l += len(rr.Ptr) + 1 - return l -} -func (rr *NSEC3PARAM) len() int { - l := rr.Hdr.len() - l += 1 // Hash - l += 1 // Flags - l += 2 // Iterations - l += 1 // SaltLength - l += len(rr.Salt)/2 + 1 - return l -} -func (rr *OPENPGPKEY) len() int { - l := rr.Hdr.len() - l += base64.StdEncoding.DecodedLen(len(rr.PublicKey)) - return l -} -func (rr *PTR) len() int { - l := rr.Hdr.len() - l += len(rr.Ptr) + 1 - return l -} -func (rr *PX) len() int { - l := rr.Hdr.len() - l += 2 // Preference - l += len(rr.Map822) + 1 - l += len(rr.Mapx400) + 1 - return l -} -func (rr *RFC3597) len() int { - l := rr.Hdr.len() - l += len(rr.Rdata)/2 + 1 - return l -} -func (rr *RKEY) len() int { - l := rr.Hdr.len() - l += 2 // Flags - l += 1 // Protocol - l += 1 // Algorithm - l += base64.StdEncoding.DecodedLen(len(rr.PublicKey)) - return l -} -func (rr *RP) len() int { - l := rr.Hdr.len() - l += len(rr.Mbox) + 1 - l += len(rr.Txt) + 1 - return l -} -func (rr *RRSIG) len() int { - l := rr.Hdr.len() - l += 2 // TypeCovered - l += 1 // Algorithm - l += 1 // Labels - l += 4 // OrigTtl - l += 4 // Expiration - l += 4 // Inception - l += 2 // KeyTag - l += len(rr.SignerName) + 1 - l += base64.StdEncoding.DecodedLen(len(rr.Signature)) - return l -} -func (rr *RT) len() int { - l := rr.Hdr.len() - l += 2 // Preference - l += len(rr.Host) + 1 - return l -} -func (rr *SOA) len() int { - l := rr.Hdr.len() - l += len(rr.Ns) + 1 - l += len(rr.Mbox) + 1 - l += 4 // Serial - l += 4 // Refresh - l += 4 // Retry - l += 4 // Expire - l += 4 // Minttl - return l -} -func (rr *SPF) len() int { - l := rr.Hdr.len() - for _, x := range rr.Txt { - l += len(x) + 1 - } - return l -} -func (rr *SRV) len() int { - l := rr.Hdr.len() - l += 2 // Priority - l += 2 // Weight - l += 2 // Port - l += len(rr.Target) + 1 - return l -} -func (rr *SSHFP) len() int { - l := rr.Hdr.len() - l += 1 // Algorithm - l += 1 // Type - l += len(rr.FingerPrint)/2 + 1 - return l -} -func (rr *TA) len() int { - l := rr.Hdr.len() - l += 2 // KeyTag - l += 1 // Algorithm - l += 1 // DigestType - l += len(rr.Digest)/2 + 1 - return l -} -func (rr *TALINK) len() int { - l := rr.Hdr.len() - l += len(rr.PreviousName) + 1 - l += len(rr.NextName) + 1 - return l -} -func (rr *TKEY) len() int { - l := rr.Hdr.len() - l += len(rr.Algorithm) + 1 - l += 4 // Inception - l += 4 // Expiration - l += 2 // Mode - l += 2 // Error - l += 2 // KeySize - l += len(rr.Key) + 1 - l += 2 // OtherLen - l += len(rr.OtherData) + 1 - return l -} -func (rr *TLSA) len() int { - l := rr.Hdr.len() - l += 1 // Usage - l += 1 // Selector - l += 1 // MatchingType - l += len(rr.Certificate)/2 + 1 - return l -} -func (rr *TSIG) len() int { - l := rr.Hdr.len() - l += len(rr.Algorithm) + 1 - l += 6 // TimeSigned - l += 2 // Fudge - l += 2 // MACSize - l += len(rr.MAC)/2 + 1 - l += 2 // OrigId - l += 2 // Error - l += 2 // OtherLen - l += len(rr.OtherData)/2 + 1 - return l -} -func (rr *TXT) len() int { - l := rr.Hdr.len() - for _, x := range rr.Txt { - l += len(x) + 1 - } - return l -} -func (rr *UID) len() int { - l := rr.Hdr.len() - l += 4 // Uid - return l -} -func (rr *UINFO) len() int { - l := rr.Hdr.len() - l += len(rr.Uinfo) + 1 - return l -} -func (rr *URI) len() int { - l := rr.Hdr.len() - l += 2 // Priority - l += 2 // Weight - l += len(rr.Target) - return l -} -func (rr *X25) len() int { - l := rr.Hdr.len() - l += len(rr.PSDNAddress) + 1 - return l -} - -// copy() functions -func (rr *A) copy() RR { - return &A{*rr.Hdr.copyHeader(), copyIP(rr.A)} -} -func (rr *AAAA) copy() RR { - return &AAAA{*rr.Hdr.copyHeader(), copyIP(rr.AAAA)} -} -func (rr *AFSDB) copy() RR { - return &AFSDB{*rr.Hdr.copyHeader(), rr.Subtype, rr.Hostname} -} -func (rr *ANY) copy() RR { - return &ANY{*rr.Hdr.copyHeader()} -} -func (rr *CAA) copy() RR { - return &CAA{*rr.Hdr.copyHeader(), rr.Flag, rr.Tag, rr.Value} -} -func (rr *CERT) copy() RR { - return &CERT{*rr.Hdr.copyHeader(), rr.Type, rr.KeyTag, rr.Algorithm, rr.Certificate} -} -func (rr *CNAME) copy() RR { - return &CNAME{*rr.Hdr.copyHeader(), rr.Target} -} -func (rr *DHCID) copy() RR { - return &DHCID{*rr.Hdr.copyHeader(), rr.Digest} -} -func (rr *DNAME) copy() RR { - return &DNAME{*rr.Hdr.copyHeader(), rr.Target} -} -func (rr *DNSKEY) copy() RR { - return &DNSKEY{*rr.Hdr.copyHeader(), rr.Flags, rr.Protocol, rr.Algorithm, rr.PublicKey} -} -func (rr *DS) copy() RR { - return &DS{*rr.Hdr.copyHeader(), rr.KeyTag, rr.Algorithm, rr.DigestType, rr.Digest} -} -func (rr *EID) copy() RR { - return &EID{*rr.Hdr.copyHeader(), rr.Endpoint} -} -func (rr *EUI48) copy() RR { - return &EUI48{*rr.Hdr.copyHeader(), rr.Address} -} -func (rr *EUI64) copy() RR { - return &EUI64{*rr.Hdr.copyHeader(), rr.Address} -} -func (rr *GID) copy() RR { - return &GID{*rr.Hdr.copyHeader(), rr.Gid} -} -func (rr *GPOS) copy() RR { - return &GPOS{*rr.Hdr.copyHeader(), rr.Longitude, rr.Latitude, rr.Altitude} -} -func (rr *HINFO) copy() RR { - return &HINFO{*rr.Hdr.copyHeader(), rr.Cpu, rr.Os} -} -func (rr *HIP) copy() RR { - RendezvousServers := make([]string, len(rr.RendezvousServers)) - copy(RendezvousServers, rr.RendezvousServers) - return &HIP{*rr.Hdr.copyHeader(), rr.HitLength, rr.PublicKeyAlgorithm, rr.PublicKeyLength, rr.Hit, rr.PublicKey, RendezvousServers} -} -func (rr *IPSECKEY) copy() RR { - return &IPSECKEY{*rr.Hdr.copyHeader(), rr.Precedence, rr.GatewayType, rr.Algorithm, copyIP(rr.GatewayA), copyIP(rr.GatewayAAAA), rr.GatewayName, rr.PublicKey} -} -func (rr *KX) copy() RR { - return &KX{*rr.Hdr.copyHeader(), rr.Preference, rr.Exchanger} -} -func (rr *L32) copy() RR { - return &L32{*rr.Hdr.copyHeader(), rr.Preference, copyIP(rr.Locator32)} -} -func (rr *L64) copy() RR { - return &L64{*rr.Hdr.copyHeader(), rr.Preference, rr.Locator64} -} -func (rr *LOC) copy() RR { - return &LOC{*rr.Hdr.copyHeader(), rr.Version, rr.Size, rr.HorizPre, rr.VertPre, rr.Latitude, rr.Longitude, rr.Altitude} -} -func (rr *LP) copy() RR { - return &LP{*rr.Hdr.copyHeader(), rr.Preference, rr.Fqdn} -} -func (rr *MB) copy() RR { - return &MB{*rr.Hdr.copyHeader(), rr.Mb} -} -func (rr *MD) copy() RR { - return &MD{*rr.Hdr.copyHeader(), rr.Md} -} -func (rr *MF) copy() RR { - return &MF{*rr.Hdr.copyHeader(), rr.Mf} -} -func (rr *MG) copy() RR { - return &MG{*rr.Hdr.copyHeader(), rr.Mg} -} -func (rr *MINFO) copy() RR { - return &MINFO{*rr.Hdr.copyHeader(), rr.Rmail, rr.Email} -} -func (rr *MR) copy() RR { - return &MR{*rr.Hdr.copyHeader(), rr.Mr} -} -func (rr *MX) copy() RR { - return &MX{*rr.Hdr.copyHeader(), rr.Preference, rr.Mx} -} -func (rr *NAPTR) copy() RR { - return &NAPTR{*rr.Hdr.copyHeader(), rr.Order, rr.Preference, rr.Flags, rr.Service, rr.Regexp, rr.Replacement} -} -func (rr *NID) copy() RR { - return &NID{*rr.Hdr.copyHeader(), rr.Preference, rr.NodeID} -} -func (rr *NIMLOC) copy() RR { - return &NIMLOC{*rr.Hdr.copyHeader(), rr.Locator} -} -func (rr *NINFO) copy() RR { - ZSData := make([]string, len(rr.ZSData)) - copy(ZSData, rr.ZSData) - return &NINFO{*rr.Hdr.copyHeader(), ZSData} -} -func (rr *NS) copy() RR { - return &NS{*rr.Hdr.copyHeader(), rr.Ns} -} -func (rr *NSAPPTR) copy() RR { - return &NSAPPTR{*rr.Hdr.copyHeader(), rr.Ptr} -} -func (rr *NSEC) copy() RR { - TypeBitMap := make([]uint16, len(rr.TypeBitMap)) - copy(TypeBitMap, rr.TypeBitMap) - return &NSEC{*rr.Hdr.copyHeader(), rr.NextDomain, TypeBitMap} -} -func (rr *NSEC3) copy() RR { - TypeBitMap := make([]uint16, len(rr.TypeBitMap)) - copy(TypeBitMap, rr.TypeBitMap) - return &NSEC3{*rr.Hdr.copyHeader(), rr.Hash, rr.Flags, rr.Iterations, rr.SaltLength, rr.Salt, rr.HashLength, rr.NextDomain, TypeBitMap} -} -func (rr *NSEC3PARAM) copy() RR { - return &NSEC3PARAM{*rr.Hdr.copyHeader(), rr.Hash, rr.Flags, rr.Iterations, rr.SaltLength, rr.Salt} -} -func (rr *OPENPGPKEY) copy() RR { - return &OPENPGPKEY{*rr.Hdr.copyHeader(), rr.PublicKey} -} -func (rr *OPT) copy() RR { - Option := make([]EDNS0, len(rr.Option)) - copy(Option, rr.Option) - return &OPT{*rr.Hdr.copyHeader(), Option} -} -func (rr *PTR) copy() RR { - return &PTR{*rr.Hdr.copyHeader(), rr.Ptr} -} -func (rr *PX) copy() RR { - return &PX{*rr.Hdr.copyHeader(), rr.Preference, rr.Map822, rr.Mapx400} -} -func (rr *RFC3597) copy() RR { - return &RFC3597{*rr.Hdr.copyHeader(), rr.Rdata} -} -func (rr *RKEY) copy() RR { - return &RKEY{*rr.Hdr.copyHeader(), rr.Flags, rr.Protocol, rr.Algorithm, rr.PublicKey} -} -func (rr *RP) copy() RR { - return &RP{*rr.Hdr.copyHeader(), rr.Mbox, rr.Txt} -} -func (rr *RRSIG) copy() RR { - return &RRSIG{*rr.Hdr.copyHeader(), rr.TypeCovered, rr.Algorithm, rr.Labels, rr.OrigTtl, rr.Expiration, rr.Inception, rr.KeyTag, rr.SignerName, rr.Signature} -} -func (rr *RT) copy() RR { - return &RT{*rr.Hdr.copyHeader(), rr.Preference, rr.Host} -} -func (rr *SOA) copy() RR { - return &SOA{*rr.Hdr.copyHeader(), rr.Ns, rr.Mbox, rr.Serial, rr.Refresh, rr.Retry, rr.Expire, rr.Minttl} -} -func (rr *SPF) copy() RR { - Txt := make([]string, len(rr.Txt)) - copy(Txt, rr.Txt) - return &SPF{*rr.Hdr.copyHeader(), Txt} -} -func (rr *SRV) copy() RR { - return &SRV{*rr.Hdr.copyHeader(), rr.Priority, rr.Weight, rr.Port, rr.Target} -} -func (rr *SSHFP) copy() RR { - return &SSHFP{*rr.Hdr.copyHeader(), rr.Algorithm, rr.Type, rr.FingerPrint} -} -func (rr *TA) copy() RR { - return &TA{*rr.Hdr.copyHeader(), rr.KeyTag, rr.Algorithm, rr.DigestType, rr.Digest} -} -func (rr *TALINK) copy() RR { - return &TALINK{*rr.Hdr.copyHeader(), rr.PreviousName, rr.NextName} -} -func (rr *TKEY) copy() RR { - return &TKEY{*rr.Hdr.copyHeader(), rr.Algorithm, rr.Inception, rr.Expiration, rr.Mode, rr.Error, rr.KeySize, rr.Key, rr.OtherLen, rr.OtherData} -} -func (rr *TLSA) copy() RR { - return &TLSA{*rr.Hdr.copyHeader(), rr.Usage, rr.Selector, rr.MatchingType, rr.Certificate} -} -func (rr *TSIG) copy() RR { - return &TSIG{*rr.Hdr.copyHeader(), rr.Algorithm, rr.TimeSigned, rr.Fudge, rr.MACSize, rr.MAC, rr.OrigId, rr.Error, rr.OtherLen, rr.OtherData} -} -func (rr *TXT) copy() RR { - Txt := make([]string, len(rr.Txt)) - copy(Txt, rr.Txt) - return &TXT{*rr.Hdr.copyHeader(), Txt} -} -func (rr *UID) copy() RR { - return &UID{*rr.Hdr.copyHeader(), rr.Uid} -} -func (rr *UINFO) copy() RR { - return &UINFO{*rr.Hdr.copyHeader(), rr.Uinfo} -} -func (rr *URI) copy() RR { - return &URI{*rr.Hdr.copyHeader(), rr.Priority, rr.Weight, rr.Target} -} -func (rr *WKS) copy() RR { - BitMap := make([]uint16, len(rr.BitMap)) - copy(BitMap, rr.BitMap) - return &WKS{*rr.Hdr.copyHeader(), copyIP(rr.Address), rr.Protocol, BitMap} -} -func (rr *X25) copy() RR { - return &X25{*rr.Hdr.copyHeader(), rr.PSDNAddress} -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/.gxignore b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/AUTHORS b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/AUTHORS deleted file mode 100644 index 15167cd7..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# 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/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/CONTRIBUTING.md b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/CONTRIBUTING.md deleted file mode 100644 index 88dff59b..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/CONTRIBUTING.md +++ /dev/null @@ -1,31 +0,0 @@ -# Contributing to Go - -Go is an open source project. - -It is the work of hundreds of contributors. We appreciate your help! - - -## Filing issues - -When [filing an issue](https://golang.org/issue/new), make sure to answer these five questions: - -1. What version of Go are you using (`go version`)? -2. What operating system and processor architecture are you using? -3. What did you do? -4. What did you expect to see? -5. What did you see instead? - -General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker. -The gophers there will answer or ask you to file an issue if you've tripped over a bug. - -## Contributing code - -Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) -before sending patches. - -**We do not accept GitHub pull requests** -(we use [Gerrit](https://code.google.com/p/gerrit/) instead for code review). - -Unless otherwise noted, the Go source files are distributed under -the BSD-style license found in the LICENSE file. - diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/CONTRIBUTORS b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/CONTRIBUTORS deleted file mode 100644 index 1c4577e9..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# 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/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/LICENSE b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/LICENSE deleted file mode 100644 index 6a66aea5..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -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/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/PATENTS b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -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/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/README b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/README deleted file mode 100644 index f1e0cbf9..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/README +++ /dev/null @@ -1,3 +0,0 @@ -This repository holds supplementary Go cryptography libraries. - -To submit changes to this repository, see http://golang.org/doc/contribute.html. diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bcrypt/base64.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bcrypt/base64.go deleted file mode 100644 index fc311609..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bcrypt/base64.go +++ /dev/null @@ -1,35 +0,0 @@ -// 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 bcrypt - -import "encoding/base64" - -const alphabet = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" - -var bcEncoding = base64.NewEncoding(alphabet) - -func base64Encode(src []byte) []byte { - n := bcEncoding.EncodedLen(len(src)) - dst := make([]byte, n) - bcEncoding.Encode(dst, src) - for dst[n-1] == '=' { - n-- - } - return dst[:n] -} - -func base64Decode(src []byte) ([]byte, error) { - numOfEquals := 4 - (len(src) % 4) - for i := 0; i < numOfEquals; i++ { - src = append(src, '=') - } - - dst := make([]byte, bcEncoding.DecodedLen(len(src))) - n, err := bcEncoding.Decode(dst, src) - if err != nil { - return nil, err - } - return dst[:n], nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bcrypt/bcrypt.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bcrypt/bcrypt.go deleted file mode 100644 index 78da19f3..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bcrypt/bcrypt.go +++ /dev/null @@ -1,294 +0,0 @@ -// 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 bcrypt implements Provos and Mazières's bcrypt adaptive hashing -// algorithm. See http://www.usenix.org/event/usenix99/provos/provos.pdf -package bcrypt - -// The code is a port of Provos and Mazières's C implementation. -import ( - "crypto/rand" - "crypto/subtle" - "errors" - "fmt" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish" - "io" - "strconv" -) - -const ( - MinCost int = 4 // the minimum allowable cost as passed in to GenerateFromPassword - MaxCost int = 31 // the maximum allowable cost as passed in to GenerateFromPassword - DefaultCost int = 10 // the cost that will actually be set if a cost below MinCost is passed into GenerateFromPassword -) - -// The error returned from CompareHashAndPassword when a password and hash do -// not match. -var ErrMismatchedHashAndPassword = errors.New("crypto/bcrypt: hashedPassword is not the hash of the given password") - -// The error returned from CompareHashAndPassword when a hash is too short to -// be a bcrypt hash. -var ErrHashTooShort = errors.New("crypto/bcrypt: hashedSecret too short to be a bcrypted password") - -// The error returned from CompareHashAndPassword when a hash was created with -// a bcrypt algorithm newer than this implementation. -type HashVersionTooNewError byte - -func (hv HashVersionTooNewError) Error() string { - return fmt.Sprintf("crypto/bcrypt: bcrypt algorithm version '%c' requested is newer than current version '%c'", byte(hv), majorVersion) -} - -// The error returned from CompareHashAndPassword when a hash starts with something other than '$' -type InvalidHashPrefixError byte - -func (ih InvalidHashPrefixError) Error() string { - return fmt.Sprintf("crypto/bcrypt: bcrypt hashes must start with '$', but hashedSecret started with '%c'", byte(ih)) -} - -type InvalidCostError int - -func (ic InvalidCostError) Error() string { - return fmt.Sprintf("crypto/bcrypt: cost %d is outside allowed range (%d,%d)", int(ic), int(MinCost), int(MaxCost)) -} - -const ( - majorVersion = '2' - minorVersion = 'a' - maxSaltSize = 16 - maxCryptedHashSize = 23 - encodedSaltSize = 22 - encodedHashSize = 31 - minHashSize = 59 -) - -// magicCipherData is an IV for the 64 Blowfish encryption calls in -// bcrypt(). It's the string "OrpheanBeholderScryDoubt" in big-endian bytes. -var magicCipherData = []byte{ - 0x4f, 0x72, 0x70, 0x68, - 0x65, 0x61, 0x6e, 0x42, - 0x65, 0x68, 0x6f, 0x6c, - 0x64, 0x65, 0x72, 0x53, - 0x63, 0x72, 0x79, 0x44, - 0x6f, 0x75, 0x62, 0x74, -} - -type hashed struct { - hash []byte - salt []byte - cost int // allowed range is MinCost to MaxCost - major byte - minor byte -} - -// GenerateFromPassword returns the bcrypt hash of the password at the given -// cost. If the cost given is less than MinCost, the cost will be set to -// DefaultCost, instead. Use CompareHashAndPassword, as defined in this package, -// to compare the returned hashed password with its cleartext version. -func GenerateFromPassword(password []byte, cost int) ([]byte, error) { - p, err := newFromPassword(password, cost) - if err != nil { - return nil, err - } - return p.Hash(), nil -} - -// CompareHashAndPassword compares a bcrypt hashed password with its possible -// plaintext equivalent. Returns nil on success, or an error on failure. -func CompareHashAndPassword(hashedPassword, password []byte) error { - p, err := newFromHash(hashedPassword) - if err != nil { - return err - } - - otherHash, err := bcrypt(password, p.cost, p.salt) - if err != nil { - return err - } - - otherP := &hashed{otherHash, p.salt, p.cost, p.major, p.minor} - if subtle.ConstantTimeCompare(p.Hash(), otherP.Hash()) == 1 { - return nil - } - - return ErrMismatchedHashAndPassword -} - -// Cost returns the hashing cost used to create the given hashed -// password. When, in the future, the hashing cost of a password system needs -// to be increased in order to adjust for greater computational power, this -// function allows one to establish which passwords need to be updated. -func Cost(hashedPassword []byte) (int, error) { - p, err := newFromHash(hashedPassword) - if err != nil { - return 0, err - } - return p.cost, nil -} - -func newFromPassword(password []byte, cost int) (*hashed, error) { - if cost < MinCost { - cost = DefaultCost - } - p := new(hashed) - p.major = majorVersion - p.minor = minorVersion - - err := checkCost(cost) - if err != nil { - return nil, err - } - p.cost = cost - - unencodedSalt := make([]byte, maxSaltSize) - _, err = io.ReadFull(rand.Reader, unencodedSalt) - if err != nil { - return nil, err - } - - p.salt = base64Encode(unencodedSalt) - hash, err := bcrypt(password, p.cost, p.salt) - if err != nil { - return nil, err - } - p.hash = hash - return p, err -} - -func newFromHash(hashedSecret []byte) (*hashed, error) { - if len(hashedSecret) < minHashSize { - return nil, ErrHashTooShort - } - p := new(hashed) - n, err := p.decodeVersion(hashedSecret) - if err != nil { - return nil, err - } - hashedSecret = hashedSecret[n:] - n, err = p.decodeCost(hashedSecret) - if err != nil { - return nil, err - } - hashedSecret = hashedSecret[n:] - - // The "+2" is here because we'll have to append at most 2 '=' to the salt - // when base64 decoding it in expensiveBlowfishSetup(). - p.salt = make([]byte, encodedSaltSize, encodedSaltSize+2) - copy(p.salt, hashedSecret[:encodedSaltSize]) - - hashedSecret = hashedSecret[encodedSaltSize:] - p.hash = make([]byte, len(hashedSecret)) - copy(p.hash, hashedSecret) - - return p, nil -} - -func bcrypt(password []byte, cost int, salt []byte) ([]byte, error) { - cipherData := make([]byte, len(magicCipherData)) - copy(cipherData, magicCipherData) - - c, err := expensiveBlowfishSetup(password, uint32(cost), salt) - if err != nil { - return nil, err - } - - for i := 0; i < 24; i += 8 { - for j := 0; j < 64; j++ { - c.Encrypt(cipherData[i:i+8], cipherData[i:i+8]) - } - } - - // Bug compatibility with C bcrypt implementations. We only encode 23 of - // the 24 bytes encrypted. - hsh := base64Encode(cipherData[:maxCryptedHashSize]) - return hsh, nil -} - -func expensiveBlowfishSetup(key []byte, cost uint32, salt []byte) (*blowfish.Cipher, error) { - - csalt, err := base64Decode(salt) - if err != nil { - return nil, err - } - - // Bug compatibility with C bcrypt implementations. They use the trailing - // NULL in the key string during expansion. - ckey := append(key, 0) - - c, err := blowfish.NewSaltedCipher(ckey, csalt) - if err != nil { - return nil, err - } - - var i, rounds uint64 - rounds = 1 << cost - for i = 0; i < rounds; i++ { - blowfish.ExpandKey(ckey, c) - blowfish.ExpandKey(csalt, c) - } - - return c, nil -} - -func (p *hashed) Hash() []byte { - arr := make([]byte, 60) - arr[0] = '$' - arr[1] = p.major - n := 2 - if p.minor != 0 { - arr[2] = p.minor - n = 3 - } - arr[n] = '$' - n += 1 - copy(arr[n:], []byte(fmt.Sprintf("%02d", p.cost))) - n += 2 - arr[n] = '$' - n += 1 - copy(arr[n:], p.salt) - n += encodedSaltSize - copy(arr[n:], p.hash) - n += encodedHashSize - return arr[:n] -} - -func (p *hashed) decodeVersion(sbytes []byte) (int, error) { - if sbytes[0] != '$' { - return -1, InvalidHashPrefixError(sbytes[0]) - } - if sbytes[1] > majorVersion { - return -1, HashVersionTooNewError(sbytes[1]) - } - p.major = sbytes[1] - n := 3 - if sbytes[2] != '$' { - p.minor = sbytes[2] - n++ - } - return n, nil -} - -// sbytes should begin where decodeVersion left off. -func (p *hashed) decodeCost(sbytes []byte) (int, error) { - cost, err := strconv.Atoi(string(sbytes[0:2])) - if err != nil { - return -1, err - } - err = checkCost(cost) - if err != nil { - return -1, err - } - p.cost = cost - return 3, nil -} - -func (p *hashed) String() string { - return fmt.Sprintf("&{hash: %#v, salt: %#v, cost: %d, major: %c, minor: %c}", string(p.hash), p.salt, p.cost, p.major, p.minor) -} - -func checkCost(cost int) error { - if cost < MinCost || cost > MaxCost { - return InvalidCostError(cost) - } - return nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bcrypt/bcrypt_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bcrypt/bcrypt_test.go deleted file mode 100644 index f08a6f5b..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bcrypt/bcrypt_test.go +++ /dev/null @@ -1,226 +0,0 @@ -// 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 bcrypt - -import ( - "bytes" - "fmt" - "testing" -) - -func TestBcryptingIsEasy(t *testing.T) { - pass := []byte("mypassword") - hp, err := GenerateFromPassword(pass, 0) - if err != nil { - t.Fatalf("GenerateFromPassword error: %s", err) - } - - if CompareHashAndPassword(hp, pass) != nil { - t.Errorf("%v should hash %s correctly", hp, pass) - } - - notPass := "notthepass" - err = CompareHashAndPassword(hp, []byte(notPass)) - if err != ErrMismatchedHashAndPassword { - t.Errorf("%v and %s should be mismatched", hp, notPass) - } -} - -func TestBcryptingIsCorrect(t *testing.T) { - pass := []byte("allmine") - salt := []byte("XajjQvNhvvRt5GSeFk1xFe") - expectedHash := []byte("$2a$10$XajjQvNhvvRt5GSeFk1xFeyqRrsxkhBkUiQeg0dt.wU1qD4aFDcga") - - hash, err := bcrypt(pass, 10, salt) - if err != nil { - t.Fatalf("bcrypt blew up: %v", err) - } - if !bytes.HasSuffix(expectedHash, hash) { - t.Errorf("%v should be the suffix of %v", hash, expectedHash) - } - - h, err := newFromHash(expectedHash) - if err != nil { - t.Errorf("Unable to parse %s: %v", string(expectedHash), err) - } - - // This is not the safe way to compare these hashes. We do this only for - // testing clarity. Use bcrypt.CompareHashAndPassword() - if err == nil && !bytes.Equal(expectedHash, h.Hash()) { - t.Errorf("Parsed hash %v should equal %v", h.Hash(), expectedHash) - } -} - -func TestVeryShortPasswords(t *testing.T) { - key := []byte("k") - salt := []byte("XajjQvNhvvRt5GSeFk1xFe") - _, err := bcrypt(key, 10, salt) - if err != nil { - t.Errorf("One byte key resulted in error: %s", err) - } -} - -func TestTooLongPasswordsWork(t *testing.T) { - salt := []byte("XajjQvNhvvRt5GSeFk1xFe") - // One byte over the usual 56 byte limit that blowfish has - tooLongPass := []byte("012345678901234567890123456789012345678901234567890123456") - tooLongExpected := []byte("$2a$10$XajjQvNhvvRt5GSeFk1xFe5l47dONXg781AmZtd869sO8zfsHuw7C") - hash, err := bcrypt(tooLongPass, 10, salt) - if err != nil { - t.Fatalf("bcrypt blew up on long password: %v", err) - } - if !bytes.HasSuffix(tooLongExpected, hash) { - t.Errorf("%v should be the suffix of %v", hash, tooLongExpected) - } -} - -type InvalidHashTest struct { - err error - hash []byte -} - -var invalidTests = []InvalidHashTest{ - {ErrHashTooShort, []byte("$2a$10$fooo")}, - {ErrHashTooShort, []byte("$2a")}, - {HashVersionTooNewError('3'), []byte("$3a$10$sssssssssssssssssssssshhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh")}, - {InvalidHashPrefixError('%'), []byte("%2a$10$sssssssssssssssssssssshhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh")}, - {InvalidCostError(32), []byte("$2a$32$sssssssssssssssssssssshhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh")}, -} - -func TestInvalidHashErrors(t *testing.T) { - check := func(name string, expected, err error) { - if err == nil { - t.Errorf("%s: Should have returned an error", name) - } - if err != nil && err != expected { - t.Errorf("%s gave err %v but should have given %v", name, err, expected) - } - } - for _, iht := range invalidTests { - _, err := newFromHash(iht.hash) - check("newFromHash", iht.err, err) - err = CompareHashAndPassword(iht.hash, []byte("anything")) - check("CompareHashAndPassword", iht.err, err) - } -} - -func TestUnpaddedBase64Encoding(t *testing.T) { - original := []byte{101, 201, 101, 75, 19, 227, 199, 20, 239, 236, 133, 32, 30, 109, 243, 30} - encodedOriginal := []byte("XajjQvNhvvRt5GSeFk1xFe") - - encoded := base64Encode(original) - - if !bytes.Equal(encodedOriginal, encoded) { - t.Errorf("Encoded %v should have equaled %v", encoded, encodedOriginal) - } - - decoded, err := base64Decode(encodedOriginal) - if err != nil { - t.Fatalf("base64Decode blew up: %s", err) - } - - if !bytes.Equal(decoded, original) { - t.Errorf("Decoded %v should have equaled %v", decoded, original) - } -} - -func TestCost(t *testing.T) { - suffix := "XajjQvNhvvRt5GSeFk1xFe5l47dONXg781AmZtd869sO8zfsHuw7C" - for _, vers := range []string{"2a", "2"} { - for _, cost := range []int{4, 10} { - s := fmt.Sprintf("$%s$%02d$%s", vers, cost, suffix) - h := []byte(s) - actual, err := Cost(h) - if err != nil { - t.Errorf("Cost, error: %s", err) - continue - } - if actual != cost { - t.Errorf("Cost, expected: %d, actual: %d", cost, actual) - } - } - } - _, err := Cost([]byte("$a$a$" + suffix)) - if err == nil { - t.Errorf("Cost, malformed but no error returned") - } -} - -func TestCostValidationInHash(t *testing.T) { - if testing.Short() { - return - } - - pass := []byte("mypassword") - - for c := 0; c < MinCost; c++ { - p, _ := newFromPassword(pass, c) - if p.cost != DefaultCost { - t.Errorf("newFromPassword should default costs below %d to %d, but was %d", MinCost, DefaultCost, p.cost) - } - } - - p, _ := newFromPassword(pass, 14) - if p.cost != 14 { - t.Errorf("newFromPassword should default cost to 14, but was %d", p.cost) - } - - hp, _ := newFromHash(p.Hash()) - if p.cost != hp.cost { - t.Errorf("newFromHash should maintain the cost at %d, but was %d", p.cost, hp.cost) - } - - _, err := newFromPassword(pass, 32) - if err == nil { - t.Fatalf("newFromPassword: should return a cost error") - } - if err != InvalidCostError(32) { - t.Errorf("newFromPassword: should return cost error, got %#v", err) - } -} - -func TestCostReturnsWithLeadingZeroes(t *testing.T) { - hp, _ := newFromPassword([]byte("abcdefgh"), 7) - cost := hp.Hash()[4:7] - expected := []byte("07$") - - if !bytes.Equal(expected, cost) { - t.Errorf("single digit costs in hash should have leading zeros: was %v instead of %v", cost, expected) - } -} - -func TestMinorNotRequired(t *testing.T) { - noMinorHash := []byte("$2$10$XajjQvNhvvRt5GSeFk1xFeyqRrsxkhBkUiQeg0dt.wU1qD4aFDcga") - h, err := newFromHash(noMinorHash) - if err != nil { - t.Fatalf("No minor hash blew up: %s", err) - } - if h.minor != 0 { - t.Errorf("Should leave minor version at 0, but was %d", h.minor) - } - - if !bytes.Equal(noMinorHash, h.Hash()) { - t.Errorf("Should generate hash %v, but created %v", noMinorHash, h.Hash()) - } -} - -func BenchmarkEqual(b *testing.B) { - b.StopTimer() - passwd := []byte("somepasswordyoulike") - hash, _ := GenerateFromPassword(passwd, 10) - b.StartTimer() - for i := 0; i < b.N; i++ { - CompareHashAndPassword(hash, passwd) - } -} - -func BenchmarkGeneration(b *testing.B) { - b.StopTimer() - passwd := []byte("mylongpassword1234") - b.StartTimer() - for i := 0; i < b.N; i++ { - GenerateFromPassword(passwd, 10) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/block.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/block.go deleted file mode 100644 index 9d80f195..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/block.go +++ /dev/null @@ -1,159 +0,0 @@ -// Copyright 2010 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 blowfish - -// getNextWord returns the next big-endian uint32 value from the byte slice -// at the given position in a circular manner, updating the position. -func getNextWord(b []byte, pos *int) uint32 { - var w uint32 - j := *pos - for i := 0; i < 4; i++ { - w = w<<8 | uint32(b[j]) - j++ - if j >= len(b) { - j = 0 - } - } - *pos = j - return w -} - -// ExpandKey performs a key expansion on the given *Cipher. Specifically, it -// performs the Blowfish algorithm's key schedule which sets up the *Cipher's -// pi and substitution tables for calls to Encrypt. This is used, primarily, -// by the bcrypt package to reuse the Blowfish key schedule during its -// set up. It's unlikely that you need to use this directly. -func ExpandKey(key []byte, c *Cipher) { - j := 0 - for i := 0; i < 18; i++ { - // Using inlined getNextWord for performance. - var d uint32 - for k := 0; k < 4; k++ { - d = d<<8 | uint32(key[j]) - j++ - if j >= len(key) { - j = 0 - } - } - c.p[i] ^= d - } - - var l, r uint32 - for i := 0; i < 18; i += 2 { - l, r = encryptBlock(l, r, c) - c.p[i], c.p[i+1] = l, r - } - - for i := 0; i < 256; i += 2 { - l, r = encryptBlock(l, r, c) - c.s0[i], c.s0[i+1] = l, r - } - for i := 0; i < 256; i += 2 { - l, r = encryptBlock(l, r, c) - c.s1[i], c.s1[i+1] = l, r - } - for i := 0; i < 256; i += 2 { - l, r = encryptBlock(l, r, c) - c.s2[i], c.s2[i+1] = l, r - } - for i := 0; i < 256; i += 2 { - l, r = encryptBlock(l, r, c) - c.s3[i], c.s3[i+1] = l, r - } -} - -// This is similar to ExpandKey, but folds the salt during the key -// schedule. While ExpandKey is essentially expandKeyWithSalt with an all-zero -// salt passed in, reusing ExpandKey turns out to be a place of inefficiency -// and specializing it here is useful. -func expandKeyWithSalt(key []byte, salt []byte, c *Cipher) { - j := 0 - for i := 0; i < 18; i++ { - c.p[i] ^= getNextWord(key, &j) - } - - j = 0 - var l, r uint32 - for i := 0; i < 18; i += 2 { - l ^= getNextWord(salt, &j) - r ^= getNextWord(salt, &j) - l, r = encryptBlock(l, r, c) - c.p[i], c.p[i+1] = l, r - } - - for i := 0; i < 256; i += 2 { - l ^= getNextWord(salt, &j) - r ^= getNextWord(salt, &j) - l, r = encryptBlock(l, r, c) - c.s0[i], c.s0[i+1] = l, r - } - - for i := 0; i < 256; i += 2 { - l ^= getNextWord(salt, &j) - r ^= getNextWord(salt, &j) - l, r = encryptBlock(l, r, c) - c.s1[i], c.s1[i+1] = l, r - } - - for i := 0; i < 256; i += 2 { - l ^= getNextWord(salt, &j) - r ^= getNextWord(salt, &j) - l, r = encryptBlock(l, r, c) - c.s2[i], c.s2[i+1] = l, r - } - - for i := 0; i < 256; i += 2 { - l ^= getNextWord(salt, &j) - r ^= getNextWord(salt, &j) - l, r = encryptBlock(l, r, c) - c.s3[i], c.s3[i+1] = l, r - } -} - -func encryptBlock(l, r uint32, c *Cipher) (uint32, uint32) { - xl, xr := l, r - xl ^= c.p[0] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[1] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[2] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[3] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[4] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[5] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[6] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[7] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[8] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[9] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[10] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[11] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[12] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[13] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[14] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[15] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[16] - xr ^= c.p[17] - return xr, xl -} - -func decryptBlock(l, r uint32, c *Cipher) (uint32, uint32) { - xl, xr := l, r - xl ^= c.p[17] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[16] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[15] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[14] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[13] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[12] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[11] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[10] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[9] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[8] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[7] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[6] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[5] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[4] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[3] - xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[2] - xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[1] - xr ^= c.p[0] - return xr, xl -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/blowfish_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/blowfish_test.go deleted file mode 100644 index 7afa1fdf..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/blowfish_test.go +++ /dev/null @@ -1,274 +0,0 @@ -// Copyright 2010 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 blowfish - -import "testing" - -type CryptTest struct { - key []byte - in []byte - out []byte -} - -// Test vector values are from http://www.schneier.com/code/vectors.txt. -var encryptTests = []CryptTest{ - { - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x4E, 0xF9, 0x97, 0x45, 0x61, 0x98, 0xDD, 0x78}}, - { - []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, - []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, - []byte{0x51, 0x86, 0x6F, 0xD5, 0xB8, 0x5E, 0xCB, 0x8A}}, - { - []byte{0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, - []byte{0x7D, 0x85, 0x6F, 0x9A, 0x61, 0x30, 0x63, 0xF2}}, - { - []byte{0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}, - []byte{0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}, - []byte{0x24, 0x66, 0xDD, 0x87, 0x8B, 0x96, 0x3C, 0x9D}}, - - { - []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, - []byte{0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}, - []byte{0x61, 0xF9, 0xC3, 0x80, 0x22, 0x81, 0xB0, 0x96}}, - { - []byte{0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}, - []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, - []byte{0x7D, 0x0C, 0xC6, 0x30, 0xAF, 0xDA, 0x1E, 0xC7}}, - { - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x4E, 0xF9, 0x97, 0x45, 0x61, 0x98, 0xDD, 0x78}}, - { - []byte{0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10}, - []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, - []byte{0x0A, 0xCE, 0xAB, 0x0F, 0xC6, 0xA0, 0xA2, 0x8D}}, - { - []byte{0x7C, 0xA1, 0x10, 0x45, 0x4A, 0x1A, 0x6E, 0x57}, - []byte{0x01, 0xA1, 0xD6, 0xD0, 0x39, 0x77, 0x67, 0x42}, - []byte{0x59, 0xC6, 0x82, 0x45, 0xEB, 0x05, 0x28, 0x2B}}, - { - []byte{0x01, 0x31, 0xD9, 0x61, 0x9D, 0xC1, 0x37, 0x6E}, - []byte{0x5C, 0xD5, 0x4C, 0xA8, 0x3D, 0xEF, 0x57, 0xDA}, - []byte{0xB1, 0xB8, 0xCC, 0x0B, 0x25, 0x0F, 0x09, 0xA0}}, - { - []byte{0x07, 0xA1, 0x13, 0x3E, 0x4A, 0x0B, 0x26, 0x86}, - []byte{0x02, 0x48, 0xD4, 0x38, 0x06, 0xF6, 0x71, 0x72}, - []byte{0x17, 0x30, 0xE5, 0x77, 0x8B, 0xEA, 0x1D, 0xA4}}, - { - []byte{0x38, 0x49, 0x67, 0x4C, 0x26, 0x02, 0x31, 0x9E}, - []byte{0x51, 0x45, 0x4B, 0x58, 0x2D, 0xDF, 0x44, 0x0A}, - []byte{0xA2, 0x5E, 0x78, 0x56, 0xCF, 0x26, 0x51, 0xEB}}, - { - []byte{0x04, 0xB9, 0x15, 0xBA, 0x43, 0xFE, 0xB5, 0xB6}, - []byte{0x42, 0xFD, 0x44, 0x30, 0x59, 0x57, 0x7F, 0xA2}, - []byte{0x35, 0x38, 0x82, 0xB1, 0x09, 0xCE, 0x8F, 0x1A}}, - { - []byte{0x01, 0x13, 0xB9, 0x70, 0xFD, 0x34, 0xF2, 0xCE}, - []byte{0x05, 0x9B, 0x5E, 0x08, 0x51, 0xCF, 0x14, 0x3A}, - []byte{0x48, 0xF4, 0xD0, 0x88, 0x4C, 0x37, 0x99, 0x18}}, - { - []byte{0x01, 0x70, 0xF1, 0x75, 0x46, 0x8F, 0xB5, 0xE6}, - []byte{0x07, 0x56, 0xD8, 0xE0, 0x77, 0x47, 0x61, 0xD2}, - []byte{0x43, 0x21, 0x93, 0xB7, 0x89, 0x51, 0xFC, 0x98}}, - { - []byte{0x43, 0x29, 0x7F, 0xAD, 0x38, 0xE3, 0x73, 0xFE}, - []byte{0x76, 0x25, 0x14, 0xB8, 0x29, 0xBF, 0x48, 0x6A}, - []byte{0x13, 0xF0, 0x41, 0x54, 0xD6, 0x9D, 0x1A, 0xE5}}, - { - []byte{0x07, 0xA7, 0x13, 0x70, 0x45, 0xDA, 0x2A, 0x16}, - []byte{0x3B, 0xDD, 0x11, 0x90, 0x49, 0x37, 0x28, 0x02}, - []byte{0x2E, 0xED, 0xDA, 0x93, 0xFF, 0xD3, 0x9C, 0x79}}, - { - []byte{0x04, 0x68, 0x91, 0x04, 0xC2, 0xFD, 0x3B, 0x2F}, - []byte{0x26, 0x95, 0x5F, 0x68, 0x35, 0xAF, 0x60, 0x9A}, - []byte{0xD8, 0x87, 0xE0, 0x39, 0x3C, 0x2D, 0xA6, 0xE3}}, - { - []byte{0x37, 0xD0, 0x6B, 0xB5, 0x16, 0xCB, 0x75, 0x46}, - []byte{0x16, 0x4D, 0x5E, 0x40, 0x4F, 0x27, 0x52, 0x32}, - []byte{0x5F, 0x99, 0xD0, 0x4F, 0x5B, 0x16, 0x39, 0x69}}, - { - []byte{0x1F, 0x08, 0x26, 0x0D, 0x1A, 0xC2, 0x46, 0x5E}, - []byte{0x6B, 0x05, 0x6E, 0x18, 0x75, 0x9F, 0x5C, 0xCA}, - []byte{0x4A, 0x05, 0x7A, 0x3B, 0x24, 0xD3, 0x97, 0x7B}}, - { - []byte{0x58, 0x40, 0x23, 0x64, 0x1A, 0xBA, 0x61, 0x76}, - []byte{0x00, 0x4B, 0xD6, 0xEF, 0x09, 0x17, 0x60, 0x62}, - []byte{0x45, 0x20, 0x31, 0xC1, 0xE4, 0xFA, 0xDA, 0x8E}}, - { - []byte{0x02, 0x58, 0x16, 0x16, 0x46, 0x29, 0xB0, 0x07}, - []byte{0x48, 0x0D, 0x39, 0x00, 0x6E, 0xE7, 0x62, 0xF2}, - []byte{0x75, 0x55, 0xAE, 0x39, 0xF5, 0x9B, 0x87, 0xBD}}, - { - []byte{0x49, 0x79, 0x3E, 0xBC, 0x79, 0xB3, 0x25, 0x8F}, - []byte{0x43, 0x75, 0x40, 0xC8, 0x69, 0x8F, 0x3C, 0xFA}, - []byte{0x53, 0xC5, 0x5F, 0x9C, 0xB4, 0x9F, 0xC0, 0x19}}, - { - []byte{0x4F, 0xB0, 0x5E, 0x15, 0x15, 0xAB, 0x73, 0xA7}, - []byte{0x07, 0x2D, 0x43, 0xA0, 0x77, 0x07, 0x52, 0x92}, - []byte{0x7A, 0x8E, 0x7B, 0xFA, 0x93, 0x7E, 0x89, 0xA3}}, - { - []byte{0x49, 0xE9, 0x5D, 0x6D, 0x4C, 0xA2, 0x29, 0xBF}, - []byte{0x02, 0xFE, 0x55, 0x77, 0x81, 0x17, 0xF1, 0x2A}, - []byte{0xCF, 0x9C, 0x5D, 0x7A, 0x49, 0x86, 0xAD, 0xB5}}, - { - []byte{0x01, 0x83, 0x10, 0xDC, 0x40, 0x9B, 0x26, 0xD6}, - []byte{0x1D, 0x9D, 0x5C, 0x50, 0x18, 0xF7, 0x28, 0xC2}, - []byte{0xD1, 0xAB, 0xB2, 0x90, 0x65, 0x8B, 0xC7, 0x78}}, - { - []byte{0x1C, 0x58, 0x7F, 0x1C, 0x13, 0x92, 0x4F, 0xEF}, - []byte{0x30, 0x55, 0x32, 0x28, 0x6D, 0x6F, 0x29, 0x5A}, - []byte{0x55, 0xCB, 0x37, 0x74, 0xD1, 0x3E, 0xF2, 0x01}}, - { - []byte{0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}, - []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, - []byte{0xFA, 0x34, 0xEC, 0x48, 0x47, 0xB2, 0x68, 0xB2}}, - { - []byte{0x1F, 0x1F, 0x1F, 0x1F, 0x0E, 0x0E, 0x0E, 0x0E}, - []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, - []byte{0xA7, 0x90, 0x79, 0x51, 0x08, 0xEA, 0x3C, 0xAE}}, - { - []byte{0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1, 0xFE}, - []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, - []byte{0xC3, 0x9E, 0x07, 0x2D, 0x9F, 0xAC, 0x63, 0x1D}}, - { - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, - []byte{0x01, 0x49, 0x33, 0xE0, 0xCD, 0xAF, 0xF6, 0xE4}}, - { - []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0xF2, 0x1E, 0x9A, 0x77, 0xB7, 0x1C, 0x49, 0xBC}}, - { - []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x24, 0x59, 0x46, 0x88, 0x57, 0x54, 0x36, 0x9A}}, - { - []byte{0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10}, - []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, - []byte{0x6B, 0x5C, 0x5A, 0x9C, 0x5D, 0x9E, 0x0A, 0x5A}}, -} - -func TestCipherEncrypt(t *testing.T) { - for i, tt := range encryptTests { - c, err := NewCipher(tt.key) - if err != nil { - t.Errorf("NewCipher(%d bytes) = %s", len(tt.key), err) - continue - } - ct := make([]byte, len(tt.out)) - c.Encrypt(ct, tt.in) - for j, v := range ct { - if v != tt.out[j] { - t.Errorf("Cipher.Encrypt, test vector #%d: cipher-text[%d] = %#x, expected %#x", i, j, v, tt.out[j]) - break - } - } - } -} - -func TestCipherDecrypt(t *testing.T) { - for i, tt := range encryptTests { - c, err := NewCipher(tt.key) - if err != nil { - t.Errorf("NewCipher(%d bytes) = %s", len(tt.key), err) - continue - } - pt := make([]byte, len(tt.in)) - c.Decrypt(pt, tt.out) - for j, v := range pt { - if v != tt.in[j] { - t.Errorf("Cipher.Decrypt, test vector #%d: plain-text[%d] = %#x, expected %#x", i, j, v, tt.in[j]) - break - } - } - } -} - -func TestSaltedCipherKeyLength(t *testing.T) { - if _, err := NewSaltedCipher(nil, []byte{'a'}); err != KeySizeError(0) { - t.Errorf("NewSaltedCipher with short key, gave error %#v, expected %#v", err, KeySizeError(0)) - } - - // A 57-byte key. One over the typical blowfish restriction. - key := []byte("012345678901234567890123456789012345678901234567890123456") - if _, err := NewSaltedCipher(key, []byte{'a'}); err != nil { - t.Errorf("NewSaltedCipher with long key, gave error %#v", err) - } -} - -// Test vectors generated with Blowfish from OpenSSH. -var saltedVectors = [][8]byte{ - {0x0c, 0x82, 0x3b, 0x7b, 0x8d, 0x01, 0x4b, 0x7e}, - {0xd1, 0xe1, 0x93, 0xf0, 0x70, 0xa6, 0xdb, 0x12}, - {0xfc, 0x5e, 0xba, 0xde, 0xcb, 0xf8, 0x59, 0xad}, - {0x8a, 0x0c, 0x76, 0xe7, 0xdd, 0x2c, 0xd3, 0xa8}, - {0x2c, 0xcb, 0x7b, 0xee, 0xac, 0x7b, 0x7f, 0xf8}, - {0xbb, 0xf6, 0x30, 0x6f, 0xe1, 0x5d, 0x62, 0xbf}, - {0x97, 0x1e, 0xc1, 0x3d, 0x3d, 0xe0, 0x11, 0xe9}, - {0x06, 0xd7, 0x4d, 0xb1, 0x80, 0xa3, 0xb1, 0x38}, - {0x67, 0xa1, 0xa9, 0x75, 0x0e, 0x5b, 0xc6, 0xb4}, - {0x51, 0x0f, 0x33, 0x0e, 0x4f, 0x67, 0xd2, 0x0c}, - {0xf1, 0x73, 0x7e, 0xd8, 0x44, 0xea, 0xdb, 0xe5}, - {0x14, 0x0e, 0x16, 0xce, 0x7f, 0x4a, 0x9c, 0x7b}, - {0x4b, 0xfe, 0x43, 0xfd, 0xbf, 0x36, 0x04, 0x47}, - {0xb1, 0xeb, 0x3e, 0x15, 0x36, 0xa7, 0xbb, 0xe2}, - {0x6d, 0x0b, 0x41, 0xdd, 0x00, 0x98, 0x0b, 0x19}, - {0xd3, 0xce, 0x45, 0xce, 0x1d, 0x56, 0xb7, 0xfc}, - {0xd9, 0xf0, 0xfd, 0xda, 0xc0, 0x23, 0xb7, 0x93}, - {0x4c, 0x6f, 0xa1, 0xe4, 0x0c, 0xa8, 0xca, 0x57}, - {0xe6, 0x2f, 0x28, 0xa7, 0x0c, 0x94, 0x0d, 0x08}, - {0x8f, 0xe3, 0xf0, 0xb6, 0x29, 0xe3, 0x44, 0x03}, - {0xff, 0x98, 0xdd, 0x04, 0x45, 0xb4, 0x6d, 0x1f}, - {0x9e, 0x45, 0x4d, 0x18, 0x40, 0x53, 0xdb, 0xef}, - {0xb7, 0x3b, 0xef, 0x29, 0xbe, 0xa8, 0x13, 0x71}, - {0x02, 0x54, 0x55, 0x41, 0x8e, 0x04, 0xfc, 0xad}, - {0x6a, 0x0a, 0xee, 0x7c, 0x10, 0xd9, 0x19, 0xfe}, - {0x0a, 0x22, 0xd9, 0x41, 0xcc, 0x23, 0x87, 0x13}, - {0x6e, 0xff, 0x1f, 0xff, 0x36, 0x17, 0x9c, 0xbe}, - {0x79, 0xad, 0xb7, 0x40, 0xf4, 0x9f, 0x51, 0xa6}, - {0x97, 0x81, 0x99, 0xa4, 0xde, 0x9e, 0x9f, 0xb6}, - {0x12, 0x19, 0x7a, 0x28, 0xd0, 0xdc, 0xcc, 0x92}, - {0x81, 0xda, 0x60, 0x1e, 0x0e, 0xdd, 0x65, 0x56}, - {0x7d, 0x76, 0x20, 0xb2, 0x73, 0xc9, 0x9e, 0xee}, -} - -func TestSaltedCipher(t *testing.T) { - var key, salt [32]byte - for i := range key { - key[i] = byte(i) - salt[i] = byte(i + 32) - } - for i, v := range saltedVectors { - c, err := NewSaltedCipher(key[:], salt[:i]) - if err != nil { - t.Fatal(err) - } - var buf [8]byte - c.Encrypt(buf[:], buf[:]) - if v != buf { - t.Errorf("%d: expected %x, got %x", i, v, buf) - } - } -} - -func BenchmarkExpandKeyWithSalt(b *testing.B) { - key := make([]byte, 32) - salt := make([]byte, 16) - c, _ := NewCipher(key) - for i := 0; i < b.N; i++ { - expandKeyWithSalt(key, salt, c) - } -} - -func BenchmarkExpandKey(b *testing.B) { - key := make([]byte, 32) - c, _ := NewCipher(key) - for i := 0; i < b.N; i++ { - ExpandKey(key, c) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/cipher.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/cipher.go deleted file mode 100644 index 5019658a..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/cipher.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2010 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 blowfish implements Bruce Schneier's Blowfish encryption algorithm. -package blowfish - -// The code is a port of Bruce Schneier's C implementation. -// See http://www.schneier.com/blowfish.html. - -import "strconv" - -// The Blowfish block size in bytes. -const BlockSize = 8 - -// A Cipher is an instance of Blowfish encryption using a particular key. -type Cipher struct { - p [18]uint32 - s0, s1, s2, s3 [256]uint32 -} - -type KeySizeError int - -func (k KeySizeError) Error() string { - return "crypto/blowfish: invalid key size " + strconv.Itoa(int(k)) -} - -// NewCipher creates and returns a Cipher. -// The key argument should be the Blowfish key, from 1 to 56 bytes. -func NewCipher(key []byte) (*Cipher, error) { - var result Cipher - if k := len(key); k < 1 || k > 56 { - return nil, KeySizeError(k) - } - initCipher(&result) - ExpandKey(key, &result) - return &result, nil -} - -// NewSaltedCipher creates a returns a Cipher that folds a salt into its key -// schedule. For most purposes, NewCipher, instead of NewSaltedCipher, is -// sufficient and desirable. For bcrypt compatiblity, the key can be over 56 -// bytes. -func NewSaltedCipher(key, salt []byte) (*Cipher, error) { - if len(salt) == 0 { - return NewCipher(key) - } - var result Cipher - if k := len(key); k < 1 { - return nil, KeySizeError(k) - } - initCipher(&result) - expandKeyWithSalt(key, salt, &result) - return &result, nil -} - -// BlockSize returns the Blowfish block size, 8 bytes. -// It is necessary to satisfy the Block interface in the -// package "crypto/cipher". -func (c *Cipher) BlockSize() int { return BlockSize } - -// Encrypt encrypts the 8-byte buffer src using the key k -// and stores the result in dst. -// Note that for amounts of data larger than a block, -// it is not safe to just call Encrypt on successive blocks; -// instead, use an encryption mode like CBC (see crypto/cipher/cbc.go). -func (c *Cipher) Encrypt(dst, src []byte) { - l := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) - r := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) - l, r = encryptBlock(l, r, c) - dst[0], dst[1], dst[2], dst[3] = byte(l>>24), byte(l>>16), byte(l>>8), byte(l) - dst[4], dst[5], dst[6], dst[7] = byte(r>>24), byte(r>>16), byte(r>>8), byte(r) -} - -// Decrypt decrypts the 8-byte buffer src using the key k -// and stores the result in dst. -func (c *Cipher) Decrypt(dst, src []byte) { - l := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) - r := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) - l, r = decryptBlock(l, r, c) - dst[0], dst[1], dst[2], dst[3] = byte(l>>24), byte(l>>16), byte(l>>8), byte(l) - dst[4], dst[5], dst[6], dst[7] = byte(r>>24), byte(r>>16), byte(r>>8), byte(r) -} - -func initCipher(c *Cipher) { - copy(c.p[0:], p[0:]) - copy(c.s0[0:], s0[0:]) - copy(c.s1[0:], s1[0:]) - copy(c.s2[0:], s2[0:]) - copy(c.s3[0:], s3[0:]) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/const.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/const.go deleted file mode 100644 index 8c5ee4cb..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/blowfish/const.go +++ /dev/null @@ -1,199 +0,0 @@ -// Copyright 2010 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. - -// The startup permutation array and substitution boxes. -// They are the hexadecimal digits of PI; see: -// http://www.schneier.com/code/constants.txt. - -package blowfish - -var s0 = [256]uint32{ - 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, - 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, - 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0x0d95748f, 0x728eb658, - 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, - 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e, - 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, - 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, 0x55ca396a, 0x2aab10b6, - 0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, - 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, - 0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, - 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, 0xe98575b1, - 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, - 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, - 0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, - 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176, - 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, - 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706, - 0x1bfedf72, 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, - 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, - 0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, - 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c, - 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, - 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, - 0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, - 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760, - 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, - 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, 0x695b27b0, 0xbbca58c8, - 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, - 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, - 0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, - 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, 0xafc725e0, - 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, - 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, - 0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, - 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705, - 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, - 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x00250e2d, 0x2071b35e, - 0x226800bb, 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, - 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9, - 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, - 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f, - 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, - 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a, -} - -var s1 = [256]uint32{ - 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, - 0x9cee60b8, 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, - 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, - 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, - 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, 0x3ebaefc9, - 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, - 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37, 0xf0500c0d, - 0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, - 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc, - 0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, - 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, 0x4e548b38, 0x4f6db908, - 0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, - 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, - 0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, - 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, 0x3215d908, - 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, - 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1, 0xd7a3c76b, - 0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, - 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa, - 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, - 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d, - 0x1939260f, 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, - 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5, - 0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, - 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96, - 0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, - 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, - 0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, - 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77, - 0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, - 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb, 0x532e3054, - 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, - 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, - 0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, - 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, 0x5b8d2646, - 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, - 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0x0c55f5ea, - 0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, - 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e, - 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, - 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd, - 0x675fda79, 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, - 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7, -} - -var s2 = [256]uint32{ - 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7, - 0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, - 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af, - 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, - 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4, - 0x0a2c86da, 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, - 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, - 0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, - 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332, - 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, - 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc, 0xa1159a58, - 0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, - 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22, - 0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, - 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, 0x257b7834, 0x602a9c60, - 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115, - 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, - 0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, - 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341, 0x992eff74, - 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, - 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, - 0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, - 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979, - 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, - 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa, - 0x3d25bdd8, 0xe2e1c3c9, 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, - 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, - 0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, - 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24, - 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, - 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, - 0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, - 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09, - 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, - 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, 0xdcb7da83, 0x573906fe, - 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027, - 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, - 0x006058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, - 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, 0x4b7c0188, - 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, - 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, - 0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, - 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0, -} - -var s3 = [256]uint32{ - 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, - 0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, - 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, 0xbc946e79, - 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, - 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, - 0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, - 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1, - 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, - 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797, - 0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, - 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, - 0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, - 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba, - 0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, - 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928, 0xb155fdf5, - 0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, - 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce, - 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, - 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, 0xb39a460a, 0x6445c0dd, - 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, - 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, - 0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, - 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, 0x4eb4e2cc, - 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, - 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc, - 0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, - 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a, - 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, - 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a, - 0x0f91fc71, 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, - 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, - 0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, - 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e, - 0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, - 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357, 0xa6327623, - 0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, - 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a, - 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, - 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0, 0x1640e3d3, - 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, - 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, - 0x01c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, - 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6, -} - -var p = [18]uint32{ - 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0, - 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, - 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b, -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/bn256.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/bn256.go deleted file mode 100644 index bc96e3d3..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/bn256.go +++ /dev/null @@ -1,404 +0,0 @@ -// Copyright 2012 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 bn256 implements a particular bilinear group at the 128-bit security level. -// -// Bilinear groups are the basis of many of the new cryptographic protocols -// that have been proposed over the past decade. They consist of a triplet of -// groups (Gâ‚, Gâ‚‚ and GT) such that there exists a function e(gâ‚Ë£,g₂ʸ)=gTˣʸ -// (where gâ‚“ is a generator of the respective group). That function is called -// a pairing function. -// -// This package specifically implements the Optimal Ate pairing over a 256-bit -// Barreto-Naehrig curve as described in -// http://cryptojedi.org/papers/dclxvi-20100714.pdf. Its output is compatible -// with the implementation described in that paper. -package bn256 - -import ( - "crypto/rand" - "io" - "math/big" -) - -// BUG(agl): this implementation is not constant time. -// TODO(agl): keep GF(p²) elements in Mongomery form. - -// G1 is an abstract cyclic group. The zero value is suitable for use as the -// output of an operation, but cannot be used as an input. -type G1 struct { - p *curvePoint -} - -// RandomG1 returns x and gâ‚Ë£ where x is a random, non-zero number read from r. -func RandomG1(r io.Reader) (*big.Int, *G1, error) { - var k *big.Int - var err error - - for { - k, err = rand.Int(r, Order) - if err != nil { - return nil, nil, err - } - if k.Sign() > 0 { - break - } - } - - return k, new(G1).ScalarBaseMult(k), nil -} - -func (g *G1) String() string { - return "bn256.G1" + g.p.String() -} - -// ScalarBaseMult sets e to g*k where g is the generator of the group and -// then returns e. -func (e *G1) ScalarBaseMult(k *big.Int) *G1 { - if e.p == nil { - e.p = newCurvePoint(nil) - } - e.p.Mul(curveGen, k, new(bnPool)) - return e -} - -// ScalarMult sets e to a*k and then returns e. -func (e *G1) ScalarMult(a *G1, k *big.Int) *G1 { - if e.p == nil { - e.p = newCurvePoint(nil) - } - e.p.Mul(a.p, k, new(bnPool)) - return e -} - -// Add sets e to a+b and then returns e. -// BUG(agl): this function is not complete: a==b fails. -func (e *G1) Add(a, b *G1) *G1 { - if e.p == nil { - e.p = newCurvePoint(nil) - } - e.p.Add(a.p, b.p, new(bnPool)) - return e -} - -// Neg sets e to -a and then returns e. -func (e *G1) Neg(a *G1) *G1 { - if e.p == nil { - e.p = newCurvePoint(nil) - } - e.p.Negative(a.p) - return e -} - -// Marshal converts n to a byte slice. -func (n *G1) Marshal() []byte { - n.p.MakeAffine(nil) - - xBytes := new(big.Int).Mod(n.p.x, p).Bytes() - yBytes := new(big.Int).Mod(n.p.y, p).Bytes() - - // Each value is a 256-bit number. - const numBytes = 256 / 8 - - ret := make([]byte, numBytes*2) - copy(ret[1*numBytes-len(xBytes):], xBytes) - copy(ret[2*numBytes-len(yBytes):], yBytes) - - return ret -} - -// Unmarshal sets e to the result of converting the output of Marshal back into -// a group element and then returns e. -func (e *G1) Unmarshal(m []byte) (*G1, bool) { - // Each value is a 256-bit number. - const numBytes = 256 / 8 - - if len(m) != 2*numBytes { - return nil, false - } - - if e.p == nil { - e.p = newCurvePoint(nil) - } - - e.p.x.SetBytes(m[0*numBytes : 1*numBytes]) - e.p.y.SetBytes(m[1*numBytes : 2*numBytes]) - - if e.p.x.Sign() == 0 && e.p.y.Sign() == 0 { - // This is the point at infinity. - e.p.y.SetInt64(1) - e.p.z.SetInt64(0) - e.p.t.SetInt64(0) - } else { - e.p.z.SetInt64(1) - e.p.t.SetInt64(1) - - if !e.p.IsOnCurve() { - return nil, false - } - } - - return e, true -} - -// G2 is an abstract cyclic group. The zero value is suitable for use as the -// output of an operation, but cannot be used as an input. -type G2 struct { - p *twistPoint -} - -// RandomG1 returns x and gâ‚‚Ë£ where x is a random, non-zero number read from r. -func RandomG2(r io.Reader) (*big.Int, *G2, error) { - var k *big.Int - var err error - - for { - k, err = rand.Int(r, Order) - if err != nil { - return nil, nil, err - } - if k.Sign() > 0 { - break - } - } - - return k, new(G2).ScalarBaseMult(k), nil -} - -func (g *G2) String() string { - return "bn256.G2" + g.p.String() -} - -// ScalarBaseMult sets e to g*k where g is the generator of the group and -// then returns out. -func (e *G2) ScalarBaseMult(k *big.Int) *G2 { - if e.p == nil { - e.p = newTwistPoint(nil) - } - e.p.Mul(twistGen, k, new(bnPool)) - return e -} - -// ScalarMult sets e to a*k and then returns e. -func (e *G2) ScalarMult(a *G2, k *big.Int) *G2 { - if e.p == nil { - e.p = newTwistPoint(nil) - } - e.p.Mul(a.p, k, new(bnPool)) - return e -} - -// Add sets e to a+b and then returns e. -// BUG(agl): this function is not complete: a==b fails. -func (e *G2) Add(a, b *G2) *G2 { - if e.p == nil { - e.p = newTwistPoint(nil) - } - e.p.Add(a.p, b.p, new(bnPool)) - return e -} - -// Marshal converts n into a byte slice. -func (n *G2) Marshal() []byte { - n.p.MakeAffine(nil) - - xxBytes := new(big.Int).Mod(n.p.x.x, p).Bytes() - xyBytes := new(big.Int).Mod(n.p.x.y, p).Bytes() - yxBytes := new(big.Int).Mod(n.p.y.x, p).Bytes() - yyBytes := new(big.Int).Mod(n.p.y.y, p).Bytes() - - // Each value is a 256-bit number. - const numBytes = 256 / 8 - - ret := make([]byte, numBytes*4) - copy(ret[1*numBytes-len(xxBytes):], xxBytes) - copy(ret[2*numBytes-len(xyBytes):], xyBytes) - copy(ret[3*numBytes-len(yxBytes):], yxBytes) - copy(ret[4*numBytes-len(yyBytes):], yyBytes) - - return ret -} - -// Unmarshal sets e to the result of converting the output of Marshal back into -// a group element and then returns e. -func (e *G2) Unmarshal(m []byte) (*G2, bool) { - // Each value is a 256-bit number. - const numBytes = 256 / 8 - - if len(m) != 4*numBytes { - return nil, false - } - - if e.p == nil { - e.p = newTwistPoint(nil) - } - - e.p.x.x.SetBytes(m[0*numBytes : 1*numBytes]) - e.p.x.y.SetBytes(m[1*numBytes : 2*numBytes]) - e.p.y.x.SetBytes(m[2*numBytes : 3*numBytes]) - e.p.y.y.SetBytes(m[3*numBytes : 4*numBytes]) - - if e.p.x.x.Sign() == 0 && - e.p.x.y.Sign() == 0 && - e.p.y.x.Sign() == 0 && - e.p.y.y.Sign() == 0 { - // This is the point at infinity. - e.p.y.SetOne() - e.p.z.SetZero() - e.p.t.SetZero() - } else { - e.p.z.SetOne() - e.p.t.SetOne() - - if !e.p.IsOnCurve() { - return nil, false - } - } - - return e, true -} - -// GT is an abstract cyclic group. The zero value is suitable for use as the -// output of an operation, but cannot be used as an input. -type GT struct { - p *gfP12 -} - -func (g *GT) String() string { - return "bn256.GT" + g.p.String() -} - -// ScalarMult sets e to a*k and then returns e. -func (e *GT) ScalarMult(a *GT, k *big.Int) *GT { - if e.p == nil { - e.p = newGFp12(nil) - } - e.p.Exp(a.p, k, new(bnPool)) - return e -} - -// Add sets e to a+b and then returns e. -func (e *GT) Add(a, b *GT) *GT { - if e.p == nil { - e.p = newGFp12(nil) - } - e.p.Mul(a.p, b.p, new(bnPool)) - return e -} - -// Neg sets e to -a and then returns e. -func (e *GT) Neg(a *GT) *GT { - if e.p == nil { - e.p = newGFp12(nil) - } - e.p.Invert(a.p, new(bnPool)) - return e -} - -// Marshal converts n into a byte slice. -func (n *GT) Marshal() []byte { - n.p.Minimal() - - xxxBytes := n.p.x.x.x.Bytes() - xxyBytes := n.p.x.x.y.Bytes() - xyxBytes := n.p.x.y.x.Bytes() - xyyBytes := n.p.x.y.y.Bytes() - xzxBytes := n.p.x.z.x.Bytes() - xzyBytes := n.p.x.z.y.Bytes() - yxxBytes := n.p.y.x.x.Bytes() - yxyBytes := n.p.y.x.y.Bytes() - yyxBytes := n.p.y.y.x.Bytes() - yyyBytes := n.p.y.y.y.Bytes() - yzxBytes := n.p.y.z.x.Bytes() - yzyBytes := n.p.y.z.y.Bytes() - - // Each value is a 256-bit number. - const numBytes = 256 / 8 - - ret := make([]byte, numBytes*12) - copy(ret[1*numBytes-len(xxxBytes):], xxxBytes) - copy(ret[2*numBytes-len(xxyBytes):], xxyBytes) - copy(ret[3*numBytes-len(xyxBytes):], xyxBytes) - copy(ret[4*numBytes-len(xyyBytes):], xyyBytes) - copy(ret[5*numBytes-len(xzxBytes):], xzxBytes) - copy(ret[6*numBytes-len(xzyBytes):], xzyBytes) - copy(ret[7*numBytes-len(yxxBytes):], yxxBytes) - copy(ret[8*numBytes-len(yxyBytes):], yxyBytes) - copy(ret[9*numBytes-len(yyxBytes):], yyxBytes) - copy(ret[10*numBytes-len(yyyBytes):], yyyBytes) - copy(ret[11*numBytes-len(yzxBytes):], yzxBytes) - copy(ret[12*numBytes-len(yzyBytes):], yzyBytes) - - return ret -} - -// Unmarshal sets e to the result of converting the output of Marshal back into -// a group element and then returns e. -func (e *GT) Unmarshal(m []byte) (*GT, bool) { - // Each value is a 256-bit number. - const numBytes = 256 / 8 - - if len(m) != 12*numBytes { - return nil, false - } - - if e.p == nil { - e.p = newGFp12(nil) - } - - e.p.x.x.x.SetBytes(m[0*numBytes : 1*numBytes]) - e.p.x.x.y.SetBytes(m[1*numBytes : 2*numBytes]) - e.p.x.y.x.SetBytes(m[2*numBytes : 3*numBytes]) - e.p.x.y.y.SetBytes(m[3*numBytes : 4*numBytes]) - e.p.x.z.x.SetBytes(m[4*numBytes : 5*numBytes]) - e.p.x.z.y.SetBytes(m[5*numBytes : 6*numBytes]) - e.p.y.x.x.SetBytes(m[6*numBytes : 7*numBytes]) - e.p.y.x.y.SetBytes(m[7*numBytes : 8*numBytes]) - e.p.y.y.x.SetBytes(m[8*numBytes : 9*numBytes]) - e.p.y.y.y.SetBytes(m[9*numBytes : 10*numBytes]) - e.p.y.z.x.SetBytes(m[10*numBytes : 11*numBytes]) - e.p.y.z.y.SetBytes(m[11*numBytes : 12*numBytes]) - - return e, true -} - -// Pair calculates an Optimal Ate pairing. -func Pair(g1 *G1, g2 *G2) *GT { - return >{optimalAte(g2.p, g1.p, new(bnPool))} -} - -// bnPool implements a tiny cache of *big.Int objects that's used to reduce the -// number of allocations made during processing. -type bnPool struct { - bns []*big.Int - count int -} - -func (pool *bnPool) Get() *big.Int { - if pool == nil { - return new(big.Int) - } - - pool.count++ - l := len(pool.bns) - if l == 0 { - return new(big.Int) - } - - bn := pool.bns[l-1] - pool.bns = pool.bns[:l-1] - return bn -} - -func (pool *bnPool) Put(bn *big.Int) { - if pool == nil { - return - } - pool.bns = append(pool.bns, bn) - pool.count-- -} - -func (pool *bnPool) Count() int { - return pool.count -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/bn256_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/bn256_test.go deleted file mode 100644 index 1cec3884..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/bn256_test.go +++ /dev/null @@ -1,304 +0,0 @@ -// Copyright 2012 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 bn256 - -import ( - "bytes" - "crypto/rand" - "math/big" - "testing" -) - -func TestGFp2Invert(t *testing.T) { - pool := new(bnPool) - - a := newGFp2(pool) - a.x.SetString("23423492374", 10) - a.y.SetString("12934872398472394827398470", 10) - - inv := newGFp2(pool) - inv.Invert(a, pool) - - b := newGFp2(pool).Mul(inv, a, pool) - if b.x.Int64() != 0 || b.y.Int64() != 1 { - t.Fatalf("bad result for a^-1*a: %s %s", b.x, b.y) - } - - a.Put(pool) - b.Put(pool) - inv.Put(pool) - - if c := pool.Count(); c > 0 { - t.Errorf("Pool count non-zero: %d\n", c) - } -} - -func isZero(n *big.Int) bool { - return new(big.Int).Mod(n, p).Int64() == 0 -} - -func isOne(n *big.Int) bool { - return new(big.Int).Mod(n, p).Int64() == 1 -} - -func TestGFp6Invert(t *testing.T) { - pool := new(bnPool) - - a := newGFp6(pool) - a.x.x.SetString("239487238491", 10) - a.x.y.SetString("2356249827341", 10) - a.y.x.SetString("082659782", 10) - a.y.y.SetString("182703523765", 10) - a.z.x.SetString("978236549263", 10) - a.z.y.SetString("64893242", 10) - - inv := newGFp6(pool) - inv.Invert(a, pool) - - b := newGFp6(pool).Mul(inv, a, pool) - if !isZero(b.x.x) || - !isZero(b.x.y) || - !isZero(b.y.x) || - !isZero(b.y.y) || - !isZero(b.z.x) || - !isOne(b.z.y) { - t.Fatalf("bad result for a^-1*a: %s", b) - } - - a.Put(pool) - b.Put(pool) - inv.Put(pool) - - if c := pool.Count(); c > 0 { - t.Errorf("Pool count non-zero: %d\n", c) - } -} - -func TestGFp12Invert(t *testing.T) { - pool := new(bnPool) - - a := newGFp12(pool) - a.x.x.x.SetString("239846234862342323958623", 10) - a.x.x.y.SetString("2359862352529835623", 10) - a.x.y.x.SetString("928836523", 10) - a.x.y.y.SetString("9856234", 10) - a.x.z.x.SetString("235635286", 10) - a.x.z.y.SetString("5628392833", 10) - a.y.x.x.SetString("252936598265329856238956532167968", 10) - a.y.x.y.SetString("23596239865236954178968", 10) - a.y.y.x.SetString("95421692834", 10) - a.y.y.y.SetString("236548", 10) - a.y.z.x.SetString("924523", 10) - a.y.z.y.SetString("12954623", 10) - - inv := newGFp12(pool) - inv.Invert(a, pool) - - b := newGFp12(pool).Mul(inv, a, pool) - if !isZero(b.x.x.x) || - !isZero(b.x.x.y) || - !isZero(b.x.y.x) || - !isZero(b.x.y.y) || - !isZero(b.x.z.x) || - !isZero(b.x.z.y) || - !isZero(b.y.x.x) || - !isZero(b.y.x.y) || - !isZero(b.y.y.x) || - !isZero(b.y.y.y) || - !isZero(b.y.z.x) || - !isOne(b.y.z.y) { - t.Fatalf("bad result for a^-1*a: %s", b) - } - - a.Put(pool) - b.Put(pool) - inv.Put(pool) - - if c := pool.Count(); c > 0 { - t.Errorf("Pool count non-zero: %d\n", c) - } -} - -func TestCurveImpl(t *testing.T) { - pool := new(bnPool) - - g := &curvePoint{ - pool.Get().SetInt64(1), - pool.Get().SetInt64(-2), - pool.Get().SetInt64(1), - pool.Get().SetInt64(0), - } - - x := pool.Get().SetInt64(32498273234) - X := newCurvePoint(pool).Mul(g, x, pool) - - y := pool.Get().SetInt64(98732423523) - Y := newCurvePoint(pool).Mul(g, y, pool) - - s1 := newCurvePoint(pool).Mul(X, y, pool).MakeAffine(pool) - s2 := newCurvePoint(pool).Mul(Y, x, pool).MakeAffine(pool) - - if s1.x.Cmp(s2.x) != 0 || - s2.x.Cmp(s1.x) != 0 { - t.Errorf("DH points don't match: (%s, %s) (%s, %s)", s1.x, s1.y, s2.x, s2.y) - } - - pool.Put(x) - X.Put(pool) - pool.Put(y) - Y.Put(pool) - s1.Put(pool) - s2.Put(pool) - g.Put(pool) - - if c := pool.Count(); c > 0 { - t.Errorf("Pool count non-zero: %d\n", c) - } -} - -func TestOrderG1(t *testing.T) { - g := new(G1).ScalarBaseMult(Order) - if !g.p.IsInfinity() { - t.Error("G1 has incorrect order") - } - - one := new(G1).ScalarBaseMult(new(big.Int).SetInt64(1)) - g.Add(g, one) - g.p.MakeAffine(nil) - if g.p.x.Cmp(one.p.x) != 0 || g.p.y.Cmp(one.p.y) != 0 { - t.Errorf("1+0 != 1 in G1") - } -} - -func TestOrderG2(t *testing.T) { - g := new(G2).ScalarBaseMult(Order) - if !g.p.IsInfinity() { - t.Error("G2 has incorrect order") - } - - one := new(G2).ScalarBaseMult(new(big.Int).SetInt64(1)) - g.Add(g, one) - g.p.MakeAffine(nil) - if g.p.x.x.Cmp(one.p.x.x) != 0 || - g.p.x.y.Cmp(one.p.x.y) != 0 || - g.p.y.x.Cmp(one.p.y.x) != 0 || - g.p.y.y.Cmp(one.p.y.y) != 0 { - t.Errorf("1+0 != 1 in G2") - } -} - -func TestOrderGT(t *testing.T) { - gt := Pair(&G1{curveGen}, &G2{twistGen}) - g := new(GT).ScalarMult(gt, Order) - if !g.p.IsOne() { - t.Error("GT has incorrect order") - } -} - -func TestBilinearity(t *testing.T) { - for i := 0; i < 2; i++ { - a, p1, _ := RandomG1(rand.Reader) - b, p2, _ := RandomG2(rand.Reader) - e1 := Pair(p1, p2) - - e2 := Pair(&G1{curveGen}, &G2{twistGen}) - e2.ScalarMult(e2, a) - e2.ScalarMult(e2, b) - - minusE2 := new(GT).Neg(e2) - e1.Add(e1, minusE2) - - if !e1.p.IsOne() { - t.Fatalf("bad pairing result: %s", e1) - } - } -} - -func TestG1Marshal(t *testing.T) { - g := new(G1).ScalarBaseMult(new(big.Int).SetInt64(1)) - form := g.Marshal() - _, ok := new(G1).Unmarshal(form) - if !ok { - t.Fatalf("failed to unmarshal") - } - - g.ScalarBaseMult(Order) - form = g.Marshal() - g2, ok := new(G1).Unmarshal(form) - if !ok { - t.Fatalf("failed to unmarshal ∞") - } - if !g2.p.IsInfinity() { - t.Fatalf("∞ unmarshaled incorrectly") - } -} - -func TestG2Marshal(t *testing.T) { - g := new(G2).ScalarBaseMult(new(big.Int).SetInt64(1)) - form := g.Marshal() - _, ok := new(G2).Unmarshal(form) - if !ok { - t.Fatalf("failed to unmarshal") - } - - g.ScalarBaseMult(Order) - form = g.Marshal() - g2, ok := new(G2).Unmarshal(form) - if !ok { - t.Fatalf("failed to unmarshal ∞") - } - if !g2.p.IsInfinity() { - t.Fatalf("∞ unmarshaled incorrectly") - } -} - -func TestG1Identity(t *testing.T) { - g := new(G1).ScalarBaseMult(new(big.Int).SetInt64(0)) - if !g.p.IsInfinity() { - t.Error("failure") - } -} - -func TestG2Identity(t *testing.T) { - g := new(G2).ScalarBaseMult(new(big.Int).SetInt64(0)) - if !g.p.IsInfinity() { - t.Error("failure") - } -} - -func TestTripartiteDiffieHellman(t *testing.T) { - a, _ := rand.Int(rand.Reader, Order) - b, _ := rand.Int(rand.Reader, Order) - c, _ := rand.Int(rand.Reader, Order) - - pa, _ := new(G1).Unmarshal(new(G1).ScalarBaseMult(a).Marshal()) - qa, _ := new(G2).Unmarshal(new(G2).ScalarBaseMult(a).Marshal()) - pb, _ := new(G1).Unmarshal(new(G1).ScalarBaseMult(b).Marshal()) - qb, _ := new(G2).Unmarshal(new(G2).ScalarBaseMult(b).Marshal()) - pc, _ := new(G1).Unmarshal(new(G1).ScalarBaseMult(c).Marshal()) - qc, _ := new(G2).Unmarshal(new(G2).ScalarBaseMult(c).Marshal()) - - k1 := Pair(pb, qc) - k1.ScalarMult(k1, a) - k1Bytes := k1.Marshal() - - k2 := Pair(pc, qa) - k2.ScalarMult(k2, b) - k2Bytes := k2.Marshal() - - k3 := Pair(pa, qb) - k3.ScalarMult(k3, c) - k3Bytes := k3.Marshal() - - if !bytes.Equal(k1Bytes, k2Bytes) || !bytes.Equal(k2Bytes, k3Bytes) { - t.Errorf("keys didn't agree") - } -} - -func BenchmarkPairing(b *testing.B) { - for i := 0; i < b.N; i++ { - Pair(&G1{curveGen}, &G2{twistGen}) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/constants.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/constants.go deleted file mode 100644 index 08ccfdf3..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/constants.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2012 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 bn256 - -import ( - "math/big" -) - -func bigFromBase10(s string) *big.Int { - n, _ := new(big.Int).SetString(s, 10) - return n -} - -// u is the BN parameter that determines the prime: 1868033³. -var u = bigFromBase10("6518589491078791937") - -// p is a prime over which we form a basic field: 36uâ´+36u³+24u³+6u+1. -var p = bigFromBase10("65000549695646603732796438742359905742825358107623003571877145026864184071783") - -// Order is the number of elements in both Gâ‚ and Gâ‚‚: 36uâ´+36u³+18u³+6u+1. -var Order = bigFromBase10("65000549695646603732796438742359905742570406053903786389881062969044166799969") - -// xiToPMinus1Over6 is ξ^((p-1)/6) where ξ = i+3. -var xiToPMinus1Over6 = &gfP2{bigFromBase10("8669379979083712429711189836753509758585994370025260553045152614783263110636"), bigFromBase10("19998038925833620163537568958541907098007303196759855091367510456613536016040")} - -// xiToPMinus1Over3 is ξ^((p-1)/3) where ξ = i+3. -var xiToPMinus1Over3 = &gfP2{bigFromBase10("26098034838977895781559542626833399156321265654106457577426020397262786167059"), bigFromBase10("15931493369629630809226283458085260090334794394361662678240713231519278691715")} - -// xiToPMinus1Over2 is ξ^((p-1)/2) where ξ = i+3. -var xiToPMinus1Over2 = &gfP2{bigFromBase10("50997318142241922852281555961173165965672272825141804376761836765206060036244"), bigFromBase10("38665955945962842195025998234511023902832543644254935982879660597356748036009")} - -// xiToPSquaredMinus1Over3 is ξ^((p²-1)/3) where ξ = i+3. -var xiToPSquaredMinus1Over3 = bigFromBase10("65000549695646603727810655408050771481677621702948236658134783353303381437752") - -// xiTo2PSquaredMinus2Over3 is ξ^((2p²-2)/3) where ξ = i+3 (a cubic root of unity, mod p). -var xiTo2PSquaredMinus2Over3 = bigFromBase10("4985783334309134261147736404674766913742361673560802634030") - -// xiToPSquaredMinus1Over6 is ξ^((1p²-1)/6) where ξ = i+3 (a cubic root of -1, mod p). -var xiToPSquaredMinus1Over6 = bigFromBase10("65000549695646603727810655408050771481677621702948236658134783353303381437753") - -// xiTo2PMinus2Over3 is ξ^((2p-2)/3) where ξ = i+3. -var xiTo2PMinus2Over3 = &gfP2{bigFromBase10("19885131339612776214803633203834694332692106372356013117629940868870585019582"), bigFromBase10("21645619881471562101905880913352894726728173167203616652430647841922248593627")} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/curve.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/curve.go deleted file mode 100644 index 55b7063f..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/curve.go +++ /dev/null @@ -1,278 +0,0 @@ -// Copyright 2012 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 bn256 - -import ( - "math/big" -) - -// curvePoint implements the elliptic curve y²=x³+3. Points are kept in -// Jacobian form and t=z² when valid. Gâ‚ is the set of points of this curve on -// GF(p). -type curvePoint struct { - x, y, z, t *big.Int -} - -var curveB = new(big.Int).SetInt64(3) - -// curveGen is the generator of Gâ‚. -var curveGen = &curvePoint{ - new(big.Int).SetInt64(1), - new(big.Int).SetInt64(-2), - new(big.Int).SetInt64(1), - new(big.Int).SetInt64(1), -} - -func newCurvePoint(pool *bnPool) *curvePoint { - return &curvePoint{ - pool.Get(), - pool.Get(), - pool.Get(), - pool.Get(), - } -} - -func (c *curvePoint) String() string { - c.MakeAffine(new(bnPool)) - return "(" + c.x.String() + ", " + c.y.String() + ")" -} - -func (c *curvePoint) Put(pool *bnPool) { - pool.Put(c.x) - pool.Put(c.y) - pool.Put(c.z) - pool.Put(c.t) -} - -func (c *curvePoint) Set(a *curvePoint) { - c.x.Set(a.x) - c.y.Set(a.y) - c.z.Set(a.z) - c.t.Set(a.t) -} - -// IsOnCurve returns true iff c is on the curve where c must be in affine form. -func (c *curvePoint) IsOnCurve() bool { - yy := new(big.Int).Mul(c.y, c.y) - xxx := new(big.Int).Mul(c.x, c.x) - xxx.Mul(xxx, c.x) - yy.Sub(yy, xxx) - yy.Sub(yy, curveB) - if yy.Sign() < 0 || yy.Cmp(p) >= 0 { - yy.Mod(yy, p) - } - return yy.Sign() == 0 -} - -func (c *curvePoint) SetInfinity() { - c.z.SetInt64(0) -} - -func (c *curvePoint) IsInfinity() bool { - return c.z.Sign() == 0 -} - -func (c *curvePoint) Add(a, b *curvePoint, pool *bnPool) { - if a.IsInfinity() { - c.Set(b) - return - } - if b.IsInfinity() { - c.Set(a) - return - } - - // See http://hyperelliptic.org/EFD/g1p/auto-code/shortw/jacobian-0/addition/add-2007-bl.op3 - - // Normalize the points by replacing a = [x1:y1:z1] and b = [x2:y2:z2] - // by [u1:s1:z1·z2] and [u2:s2:z1·z2] - // where u1 = x1·z2², s1 = y1·z2³ and u1 = x2·z1², s2 = y2·z1³ - z1z1 := pool.Get().Mul(a.z, a.z) - z1z1.Mod(z1z1, p) - z2z2 := pool.Get().Mul(b.z, b.z) - z2z2.Mod(z2z2, p) - u1 := pool.Get().Mul(a.x, z2z2) - u1.Mod(u1, p) - u2 := pool.Get().Mul(b.x, z1z1) - u2.Mod(u2, p) - - t := pool.Get().Mul(b.z, z2z2) - t.Mod(t, p) - s1 := pool.Get().Mul(a.y, t) - s1.Mod(s1, p) - - t.Mul(a.z, z1z1) - t.Mod(t, p) - s2 := pool.Get().Mul(b.y, t) - s2.Mod(s2, p) - - // Compute x = (2h)²(s²-u1-u2) - // where s = (s2-s1)/(u2-u1) is the slope of the line through - // (u1,s1) and (u2,s2). The extra factor 2h = 2(u2-u1) comes from the value of z below. - // This is also: - // 4(s2-s1)² - 4h²(u1+u2) = 4(s2-s1)² - 4h³ - 4h²(2u1) - // = r² - j - 2v - // with the notations below. - h := pool.Get().Sub(u2, u1) - xEqual := h.Sign() == 0 - - t.Add(h, h) - // i = 4h² - i := pool.Get().Mul(t, t) - i.Mod(i, p) - // j = 4h³ - j := pool.Get().Mul(h, i) - j.Mod(j, p) - - t.Sub(s2, s1) - yEqual := t.Sign() == 0 - if xEqual && yEqual { - c.Double(a, pool) - return - } - r := pool.Get().Add(t, t) - - v := pool.Get().Mul(u1, i) - v.Mod(v, p) - - // t4 = 4(s2-s1)² - t4 := pool.Get().Mul(r, r) - t4.Mod(t4, p) - t.Add(v, v) - t6 := pool.Get().Sub(t4, j) - c.x.Sub(t6, t) - - // Set y = -(2h)³(s1 + s*(x/4h²-u1)) - // This is also - // y = - 2·s1·j - (s2-s1)(2x - 2i·u1) = r(v-x) - 2·s1·j - t.Sub(v, c.x) // t7 - t4.Mul(s1, j) // t8 - t4.Mod(t4, p) - t6.Add(t4, t4) // t9 - t4.Mul(r, t) // t10 - t4.Mod(t4, p) - c.y.Sub(t4, t6) - - // Set z = 2(u2-u1)·z1·z2 = 2h·z1·z2 - t.Add(a.z, b.z) // t11 - t4.Mul(t, t) // t12 - t4.Mod(t4, p) - t.Sub(t4, z1z1) // t13 - t4.Sub(t, z2z2) // t14 - c.z.Mul(t4, h) - c.z.Mod(c.z, p) - - pool.Put(z1z1) - pool.Put(z2z2) - pool.Put(u1) - pool.Put(u2) - pool.Put(t) - pool.Put(s1) - pool.Put(s2) - pool.Put(h) - pool.Put(i) - pool.Put(j) - pool.Put(r) - pool.Put(v) - pool.Put(t4) - pool.Put(t6) -} - -func (c *curvePoint) Double(a *curvePoint, pool *bnPool) { - // See http://hyperelliptic.org/EFD/g1p/auto-code/shortw/jacobian-0/doubling/dbl-2009-l.op3 - A := pool.Get().Mul(a.x, a.x) - A.Mod(A, p) - B := pool.Get().Mul(a.y, a.y) - B.Mod(B, p) - C := pool.Get().Mul(B, B) - C.Mod(C, p) - - t := pool.Get().Add(a.x, B) - t2 := pool.Get().Mul(t, t) - t2.Mod(t2, p) - t.Sub(t2, A) - t2.Sub(t, C) - d := pool.Get().Add(t2, t2) - t.Add(A, A) - e := pool.Get().Add(t, A) - f := pool.Get().Mul(e, e) - f.Mod(f, p) - - t.Add(d, d) - c.x.Sub(f, t) - - t.Add(C, C) - t2.Add(t, t) - t.Add(t2, t2) - c.y.Sub(d, c.x) - t2.Mul(e, c.y) - t2.Mod(t2, p) - c.y.Sub(t2, t) - - t.Mul(a.y, a.z) - t.Mod(t, p) - c.z.Add(t, t) - - pool.Put(A) - pool.Put(B) - pool.Put(C) - pool.Put(t) - pool.Put(t2) - pool.Put(d) - pool.Put(e) - pool.Put(f) -} - -func (c *curvePoint) Mul(a *curvePoint, scalar *big.Int, pool *bnPool) *curvePoint { - sum := newCurvePoint(pool) - sum.SetInfinity() - t := newCurvePoint(pool) - - for i := scalar.BitLen(); i >= 0; i-- { - t.Double(sum, pool) - if scalar.Bit(i) != 0 { - sum.Add(t, a, pool) - } else { - sum.Set(t) - } - } - - c.Set(sum) - sum.Put(pool) - t.Put(pool) - return c -} - -func (c *curvePoint) MakeAffine(pool *bnPool) *curvePoint { - if words := c.z.Bits(); len(words) == 1 && words[0] == 1 { - return c - } - - zInv := pool.Get().ModInverse(c.z, p) - t := pool.Get().Mul(c.y, zInv) - t.Mod(t, p) - zInv2 := pool.Get().Mul(zInv, zInv) - zInv2.Mod(zInv2, p) - c.y.Mul(t, zInv2) - c.y.Mod(c.y, p) - t.Mul(c.x, zInv2) - t.Mod(t, p) - c.x.Set(t) - c.z.SetInt64(1) - c.t.SetInt64(1) - - pool.Put(zInv) - pool.Put(t) - pool.Put(zInv2) - - return c -} - -func (c *curvePoint) Negative(a *curvePoint) { - c.x.Set(a.x) - c.y.Neg(a.y) - c.z.Set(a.z) - c.t.SetInt64(0) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/example_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/example_test.go deleted file mode 100644 index b2d19807..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/example_test.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2012 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 bn256 - -import ( - "crypto/rand" -) - -func ExamplePair() { - // This implements the tripartite Diffie-Hellman algorithm from "A One - // Round Protocol for Tripartite Diffie-Hellman", A. Joux. - // http://www.springerlink.com/content/cddc57yyva0hburb/fulltext.pdf - - // Each of three parties, a, b and c, generate a private value. - a, _ := rand.Int(rand.Reader, Order) - b, _ := rand.Int(rand.Reader, Order) - c, _ := rand.Int(rand.Reader, Order) - - // Then each party calculates gâ‚ and gâ‚‚ times their private value. - pa := new(G1).ScalarBaseMult(a) - qa := new(G2).ScalarBaseMult(a) - - pb := new(G1).ScalarBaseMult(b) - qb := new(G2).ScalarBaseMult(b) - - pc := new(G1).ScalarBaseMult(c) - qc := new(G2).ScalarBaseMult(c) - - // Now each party exchanges its public values with the other two and - // all parties can calculate the shared key. - k1 := Pair(pb, qc) - k1.ScalarMult(k1, a) - - k2 := Pair(pc, qa) - k2.ScalarMult(k2, b) - - k3 := Pair(pa, qb) - k3.ScalarMult(k3, c) - - // k1, k2 and k3 will all be equal. -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/gfp12.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/gfp12.go deleted file mode 100644 index f084eddf..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/gfp12.go +++ /dev/null @@ -1,200 +0,0 @@ -// Copyright 2012 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 bn256 - -// For details of the algorithms used, see "Multiplication and Squaring on -// Pairing-Friendly Fields, Devegili et al. -// http://eprint.iacr.org/2006/471.pdf. - -import ( - "math/big" -) - -// gfP12 implements the field of size p¹² as a quadratic extension of gfP6 -// where ω²=Ï„. -type gfP12 struct { - x, y *gfP6 // value is xω + y -} - -func newGFp12(pool *bnPool) *gfP12 { - return &gfP12{newGFp6(pool), newGFp6(pool)} -} - -func (e *gfP12) String() string { - return "(" + e.x.String() + "," + e.y.String() + ")" -} - -func (e *gfP12) Put(pool *bnPool) { - e.x.Put(pool) - e.y.Put(pool) -} - -func (e *gfP12) Set(a *gfP12) *gfP12 { - e.x.Set(a.x) - e.y.Set(a.y) - return e -} - -func (e *gfP12) SetZero() *gfP12 { - e.x.SetZero() - e.y.SetZero() - return e -} - -func (e *gfP12) SetOne() *gfP12 { - e.x.SetZero() - e.y.SetOne() - return e -} - -func (e *gfP12) Minimal() { - e.x.Minimal() - e.y.Minimal() -} - -func (e *gfP12) IsZero() bool { - e.Minimal() - return e.x.IsZero() && e.y.IsZero() -} - -func (e *gfP12) IsOne() bool { - e.Minimal() - return e.x.IsZero() && e.y.IsOne() -} - -func (e *gfP12) Conjugate(a *gfP12) *gfP12 { - e.x.Negative(a.x) - e.y.Set(a.y) - return a -} - -func (e *gfP12) Negative(a *gfP12) *gfP12 { - e.x.Negative(a.x) - e.y.Negative(a.y) - return e -} - -// Frobenius computes (xω+y)^p = x^p ω·ξ^((p-1)/6) + y^p -func (e *gfP12) Frobenius(a *gfP12, pool *bnPool) *gfP12 { - e.x.Frobenius(a.x, pool) - e.y.Frobenius(a.y, pool) - e.x.MulScalar(e.x, xiToPMinus1Over6, pool) - return e -} - -// FrobeniusP2 computes (xω+y)^p² = x^p² ω·ξ^((p²-1)/6) + y^p² -func (e *gfP12) FrobeniusP2(a *gfP12, pool *bnPool) *gfP12 { - e.x.FrobeniusP2(a.x) - e.x.MulGFP(e.x, xiToPSquaredMinus1Over6) - e.y.FrobeniusP2(a.y) - return e -} - -func (e *gfP12) Add(a, b *gfP12) *gfP12 { - e.x.Add(a.x, b.x) - e.y.Add(a.y, b.y) - return e -} - -func (e *gfP12) Sub(a, b *gfP12) *gfP12 { - e.x.Sub(a.x, b.x) - e.y.Sub(a.y, b.y) - return e -} - -func (e *gfP12) Mul(a, b *gfP12, pool *bnPool) *gfP12 { - tx := newGFp6(pool) - tx.Mul(a.x, b.y, pool) - t := newGFp6(pool) - t.Mul(b.x, a.y, pool) - tx.Add(tx, t) - - ty := newGFp6(pool) - ty.Mul(a.y, b.y, pool) - t.Mul(a.x, b.x, pool) - t.MulTau(t, pool) - e.y.Add(ty, t) - e.x.Set(tx) - - tx.Put(pool) - ty.Put(pool) - t.Put(pool) - return e -} - -func (e *gfP12) MulScalar(a *gfP12, b *gfP6, pool *bnPool) *gfP12 { - e.x.Mul(e.x, b, pool) - e.y.Mul(e.y, b, pool) - return e -} - -func (c *gfP12) Exp(a *gfP12, power *big.Int, pool *bnPool) *gfP12 { - sum := newGFp12(pool) - sum.SetOne() - t := newGFp12(pool) - - for i := power.BitLen() - 1; i >= 0; i-- { - t.Square(sum, pool) - if power.Bit(i) != 0 { - sum.Mul(t, a, pool) - } else { - sum.Set(t) - } - } - - c.Set(sum) - - sum.Put(pool) - t.Put(pool) - - return c -} - -func (e *gfP12) Square(a *gfP12, pool *bnPool) *gfP12 { - // Complex squaring algorithm - v0 := newGFp6(pool) - v0.Mul(a.x, a.y, pool) - - t := newGFp6(pool) - t.MulTau(a.x, pool) - t.Add(a.y, t) - ty := newGFp6(pool) - ty.Add(a.x, a.y) - ty.Mul(ty, t, pool) - ty.Sub(ty, v0) - t.MulTau(v0, pool) - ty.Sub(ty, t) - - e.y.Set(ty) - e.x.Double(v0) - - v0.Put(pool) - t.Put(pool) - ty.Put(pool) - - return e -} - -func (e *gfP12) Invert(a *gfP12, pool *bnPool) *gfP12 { - // See "Implementing cryptographic pairings", M. Scott, section 3.2. - // ftp://136.206.11.249/pub/crypto/pairings.pdf - t1 := newGFp6(pool) - t2 := newGFp6(pool) - - t1.Square(a.x, pool) - t2.Square(a.y, pool) - t1.MulTau(t1, pool) - t1.Sub(t2, t1) - t2.Invert(t1, pool) - - e.x.Negative(a.x) - e.y.Set(a.y) - e.MulScalar(e, t2, pool) - - t1.Put(pool) - t2.Put(pool) - - return e -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/gfp2.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/gfp2.go deleted file mode 100644 index 97f3f1f3..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/gfp2.go +++ /dev/null @@ -1,219 +0,0 @@ -// Copyright 2012 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 bn256 - -// For details of the algorithms used, see "Multiplication and Squaring on -// Pairing-Friendly Fields, Devegili et al. -// http://eprint.iacr.org/2006/471.pdf. - -import ( - "math/big" -) - -// gfP2 implements a field of size p² as a quadratic extension of the base -// field where i²=-1. -type gfP2 struct { - x, y *big.Int // value is xi+y. -} - -func newGFp2(pool *bnPool) *gfP2 { - return &gfP2{pool.Get(), pool.Get()} -} - -func (e *gfP2) String() string { - x := new(big.Int).Mod(e.x, p) - y := new(big.Int).Mod(e.y, p) - return "(" + x.String() + "," + y.String() + ")" -} - -func (e *gfP2) Put(pool *bnPool) { - pool.Put(e.x) - pool.Put(e.y) -} - -func (e *gfP2) Set(a *gfP2) *gfP2 { - e.x.Set(a.x) - e.y.Set(a.y) - return e -} - -func (e *gfP2) SetZero() *gfP2 { - e.x.SetInt64(0) - e.y.SetInt64(0) - return e -} - -func (e *gfP2) SetOne() *gfP2 { - e.x.SetInt64(0) - e.y.SetInt64(1) - return e -} - -func (e *gfP2) Minimal() { - if e.x.Sign() < 0 || e.x.Cmp(p) >= 0 { - e.x.Mod(e.x, p) - } - if e.y.Sign() < 0 || e.y.Cmp(p) >= 0 { - e.y.Mod(e.y, p) - } -} - -func (e *gfP2) IsZero() bool { - return e.x.Sign() == 0 && e.y.Sign() == 0 -} - -func (e *gfP2) IsOne() bool { - if e.x.Sign() != 0 { - return false - } - words := e.y.Bits() - return len(words) == 1 && words[0] == 1 -} - -func (e *gfP2) Conjugate(a *gfP2) *gfP2 { - e.y.Set(a.y) - e.x.Neg(a.x) - return e -} - -func (e *gfP2) Negative(a *gfP2) *gfP2 { - e.x.Neg(a.x) - e.y.Neg(a.y) - return e -} - -func (e *gfP2) Add(a, b *gfP2) *gfP2 { - e.x.Add(a.x, b.x) - e.y.Add(a.y, b.y) - return e -} - -func (e *gfP2) Sub(a, b *gfP2) *gfP2 { - e.x.Sub(a.x, b.x) - e.y.Sub(a.y, b.y) - return e -} - -func (e *gfP2) Double(a *gfP2) *gfP2 { - e.x.Lsh(a.x, 1) - e.y.Lsh(a.y, 1) - return e -} - -func (c *gfP2) Exp(a *gfP2, power *big.Int, pool *bnPool) *gfP2 { - sum := newGFp2(pool) - sum.SetOne() - t := newGFp2(pool) - - for i := power.BitLen() - 1; i >= 0; i-- { - t.Square(sum, pool) - if power.Bit(i) != 0 { - sum.Mul(t, a, pool) - } else { - sum.Set(t) - } - } - - c.Set(sum) - - sum.Put(pool) - t.Put(pool) - - return c -} - -// See "Multiplication and Squaring in Pairing-Friendly Fields", -// http://eprint.iacr.org/2006/471.pdf -func (e *gfP2) Mul(a, b *gfP2, pool *bnPool) *gfP2 { - tx := pool.Get().Mul(a.x, b.y) - t := pool.Get().Mul(b.x, a.y) - tx.Add(tx, t) - tx.Mod(tx, p) - - ty := pool.Get().Mul(a.y, b.y) - t.Mul(a.x, b.x) - ty.Sub(ty, t) - e.y.Mod(ty, p) - e.x.Set(tx) - - pool.Put(tx) - pool.Put(ty) - pool.Put(t) - - return e -} - -func (e *gfP2) MulScalar(a *gfP2, b *big.Int) *gfP2 { - e.x.Mul(a.x, b) - e.y.Mul(a.y, b) - return e -} - -// MulXi sets e=ξa where ξ=i+3 and then returns e. -func (e *gfP2) MulXi(a *gfP2, pool *bnPool) *gfP2 { - // (xi+y)(i+3) = (3x+y)i+(3y-x) - tx := pool.Get().Lsh(a.x, 1) - tx.Add(tx, a.x) - tx.Add(tx, a.y) - - ty := pool.Get().Lsh(a.y, 1) - ty.Add(ty, a.y) - ty.Sub(ty, a.x) - - e.x.Set(tx) - e.y.Set(ty) - - pool.Put(tx) - pool.Put(ty) - - return e -} - -func (e *gfP2) Square(a *gfP2, pool *bnPool) *gfP2 { - // Complex squaring algorithm: - // (xi+b)² = (x+y)(y-x) + 2*i*x*y - t1 := pool.Get().Sub(a.y, a.x) - t2 := pool.Get().Add(a.x, a.y) - ty := pool.Get().Mul(t1, t2) - ty.Mod(ty, p) - - t1.Mul(a.x, a.y) - t1.Lsh(t1, 1) - - e.x.Mod(t1, p) - e.y.Set(ty) - - pool.Put(t1) - pool.Put(t2) - pool.Put(ty) - - return e -} - -func (e *gfP2) Invert(a *gfP2, pool *bnPool) *gfP2 { - // See "Implementing cryptographic pairings", M. Scott, section 3.2. - // ftp://136.206.11.249/pub/crypto/pairings.pdf - t := pool.Get() - t.Mul(a.y, a.y) - t2 := pool.Get() - t2.Mul(a.x, a.x) - t.Add(t, t2) - - inv := pool.Get() - inv.ModInverse(t, p) - - e.x.Neg(a.x) - e.x.Mul(e.x, inv) - e.x.Mod(e.x, p) - - e.y.Mul(a.y, inv) - e.y.Mod(e.y, p) - - pool.Put(t) - pool.Put(t2) - pool.Put(inv) - - return e -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/gfp6.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/gfp6.go deleted file mode 100644 index f98ae782..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/gfp6.go +++ /dev/null @@ -1,296 +0,0 @@ -// Copyright 2012 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 bn256 - -// For details of the algorithms used, see "Multiplication and Squaring on -// Pairing-Friendly Fields, Devegili et al. -// http://eprint.iacr.org/2006/471.pdf. - -import ( - "math/big" -) - -// gfP6 implements the field of size pⶠas a cubic extension of gfP2 where τ³=ξ -// and ξ=i+3. -type gfP6 struct { - x, y, z *gfP2 // value is xτ² + yÏ„ + z -} - -func newGFp6(pool *bnPool) *gfP6 { - return &gfP6{newGFp2(pool), newGFp2(pool), newGFp2(pool)} -} - -func (e *gfP6) String() string { - return "(" + e.x.String() + "," + e.y.String() + "," + e.z.String() + ")" -} - -func (e *gfP6) Put(pool *bnPool) { - e.x.Put(pool) - e.y.Put(pool) - e.z.Put(pool) -} - -func (e *gfP6) Set(a *gfP6) *gfP6 { - e.x.Set(a.x) - e.y.Set(a.y) - e.z.Set(a.z) - return e -} - -func (e *gfP6) SetZero() *gfP6 { - e.x.SetZero() - e.y.SetZero() - e.z.SetZero() - return e -} - -func (e *gfP6) SetOne() *gfP6 { - e.x.SetZero() - e.y.SetZero() - e.z.SetOne() - return e -} - -func (e *gfP6) Minimal() { - e.x.Minimal() - e.y.Minimal() - e.z.Minimal() -} - -func (e *gfP6) IsZero() bool { - return e.x.IsZero() && e.y.IsZero() && e.z.IsZero() -} - -func (e *gfP6) IsOne() bool { - return e.x.IsZero() && e.y.IsZero() && e.z.IsOne() -} - -func (e *gfP6) Negative(a *gfP6) *gfP6 { - e.x.Negative(a.x) - e.y.Negative(a.y) - e.z.Negative(a.z) - return e -} - -func (e *gfP6) Frobenius(a *gfP6, pool *bnPool) *gfP6 { - e.x.Conjugate(a.x) - e.y.Conjugate(a.y) - e.z.Conjugate(a.z) - - e.x.Mul(e.x, xiTo2PMinus2Over3, pool) - e.y.Mul(e.y, xiToPMinus1Over3, pool) - return e -} - -// FrobeniusP2 computes (xτ²+yÏ„+z)^(p²) = xÏ„^(2p²) + yÏ„^(p²) + z -func (e *gfP6) FrobeniusP2(a *gfP6) *gfP6 { - // Ï„^(2p²) = τ²τ^(2p²-2) = τ²ξ^((2p²-2)/3) - e.x.MulScalar(a.x, xiTo2PSquaredMinus2Over3) - // Ï„^(p²) = Ï„Ï„^(p²-1) = τξ^((p²-1)/3) - e.y.MulScalar(a.y, xiToPSquaredMinus1Over3) - e.z.Set(a.z) - return e -} - -func (e *gfP6) Add(a, b *gfP6) *gfP6 { - e.x.Add(a.x, b.x) - e.y.Add(a.y, b.y) - e.z.Add(a.z, b.z) - return e -} - -func (e *gfP6) Sub(a, b *gfP6) *gfP6 { - e.x.Sub(a.x, b.x) - e.y.Sub(a.y, b.y) - e.z.Sub(a.z, b.z) - return e -} - -func (e *gfP6) Double(a *gfP6) *gfP6 { - e.x.Double(a.x) - e.y.Double(a.y) - e.z.Double(a.z) - return e -} - -func (e *gfP6) Mul(a, b *gfP6, pool *bnPool) *gfP6 { - // "Multiplication and Squaring on Pairing-Friendly Fields" - // Section 4, Karatsuba method. - // http://eprint.iacr.org/2006/471.pdf - - v0 := newGFp2(pool) - v0.Mul(a.z, b.z, pool) - v1 := newGFp2(pool) - v1.Mul(a.y, b.y, pool) - v2 := newGFp2(pool) - v2.Mul(a.x, b.x, pool) - - t0 := newGFp2(pool) - t0.Add(a.x, a.y) - t1 := newGFp2(pool) - t1.Add(b.x, b.y) - tz := newGFp2(pool) - tz.Mul(t0, t1, pool) - - tz.Sub(tz, v1) - tz.Sub(tz, v2) - tz.MulXi(tz, pool) - tz.Add(tz, v0) - - t0.Add(a.y, a.z) - t1.Add(b.y, b.z) - ty := newGFp2(pool) - ty.Mul(t0, t1, pool) - ty.Sub(ty, v0) - ty.Sub(ty, v1) - t0.MulXi(v2, pool) - ty.Add(ty, t0) - - t0.Add(a.x, a.z) - t1.Add(b.x, b.z) - tx := newGFp2(pool) - tx.Mul(t0, t1, pool) - tx.Sub(tx, v0) - tx.Add(tx, v1) - tx.Sub(tx, v2) - - e.x.Set(tx) - e.y.Set(ty) - e.z.Set(tz) - - t0.Put(pool) - t1.Put(pool) - tx.Put(pool) - ty.Put(pool) - tz.Put(pool) - v0.Put(pool) - v1.Put(pool) - v2.Put(pool) - return e -} - -func (e *gfP6) MulScalar(a *gfP6, b *gfP2, pool *bnPool) *gfP6 { - e.x.Mul(a.x, b, pool) - e.y.Mul(a.y, b, pool) - e.z.Mul(a.z, b, pool) - return e -} - -func (e *gfP6) MulGFP(a *gfP6, b *big.Int) *gfP6 { - e.x.MulScalar(a.x, b) - e.y.MulScalar(a.y, b) - e.z.MulScalar(a.z, b) - return e -} - -// MulTau computes τ·(aτ²+bÏ„+c) = bτ²+cÏ„+aξ -func (e *gfP6) MulTau(a *gfP6, pool *bnPool) { - tz := newGFp2(pool) - tz.MulXi(a.x, pool) - ty := newGFp2(pool) - ty.Set(a.y) - e.y.Set(a.z) - e.x.Set(ty) - e.z.Set(tz) - tz.Put(pool) - ty.Put(pool) -} - -func (e *gfP6) Square(a *gfP6, pool *bnPool) *gfP6 { - v0 := newGFp2(pool).Square(a.z, pool) - v1 := newGFp2(pool).Square(a.y, pool) - v2 := newGFp2(pool).Square(a.x, pool) - - c0 := newGFp2(pool).Add(a.x, a.y) - c0.Square(c0, pool) - c0.Sub(c0, v1) - c0.Sub(c0, v2) - c0.MulXi(c0, pool) - c0.Add(c0, v0) - - c1 := newGFp2(pool).Add(a.y, a.z) - c1.Square(c1, pool) - c1.Sub(c1, v0) - c1.Sub(c1, v1) - xiV2 := newGFp2(pool).MulXi(v2, pool) - c1.Add(c1, xiV2) - - c2 := newGFp2(pool).Add(a.x, a.z) - c2.Square(c2, pool) - c2.Sub(c2, v0) - c2.Add(c2, v1) - c2.Sub(c2, v2) - - e.x.Set(c2) - e.y.Set(c1) - e.z.Set(c0) - - v0.Put(pool) - v1.Put(pool) - v2.Put(pool) - c0.Put(pool) - c1.Put(pool) - c2.Put(pool) - xiV2.Put(pool) - - return e -} - -func (e *gfP6) Invert(a *gfP6, pool *bnPool) *gfP6 { - // See "Implementing cryptographic pairings", M. Scott, section 3.2. - // ftp://136.206.11.249/pub/crypto/pairings.pdf - - // Here we can give a short explanation of how it works: let j be a cubic root of - // unity in GF(p²) so that 1+j+j²=0. - // Then (xτ² + yÏ„ + z)(xj²τ² + yjÏ„ + z)(xjτ² + yj²τ + z) - // = (xτ² + yÏ„ + z)(Cτ²+BÏ„+A) - // = (x³ξ²+y³ξ+z³-3ξxyz) = F is an element of the base field (the norm). - // - // On the other hand (xj²τ² + yjÏ„ + z)(xjτ² + yj²τ + z) - // = τ²(y²-ξxz) + Ï„(ξx²-yz) + (z²-ξxy) - // - // So that's why A = (z²-ξxy), B = (ξx²-yz), C = (y²-ξxz) - t1 := newGFp2(pool) - - A := newGFp2(pool) - A.Square(a.z, pool) - t1.Mul(a.x, a.y, pool) - t1.MulXi(t1, pool) - A.Sub(A, t1) - - B := newGFp2(pool) - B.Square(a.x, pool) - B.MulXi(B, pool) - t1.Mul(a.y, a.z, pool) - B.Sub(B, t1) - - C := newGFp2(pool) - C.Square(a.y, pool) - t1.Mul(a.x, a.z, pool) - C.Sub(C, t1) - - F := newGFp2(pool) - F.Mul(C, a.y, pool) - F.MulXi(F, pool) - t1.Mul(A, a.z, pool) - F.Add(F, t1) - t1.Mul(B, a.x, pool) - t1.MulXi(t1, pool) - F.Add(F, t1) - - F.Invert(F, pool) - - e.x.Mul(C, F, pool) - e.y.Mul(B, F, pool) - e.z.Mul(A, F, pool) - - t1.Put(pool) - A.Put(pool) - B.Put(pool) - C.Put(pool) - F.Put(pool) - - return e -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/optate.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/optate.go deleted file mode 100644 index 7ae0746e..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/optate.go +++ /dev/null @@ -1,395 +0,0 @@ -// Copyright 2012 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 bn256 - -func lineFunctionAdd(r, p *twistPoint, q *curvePoint, r2 *gfP2, pool *bnPool) (a, b, c *gfP2, rOut *twistPoint) { - // See the mixed addition algorithm from "Faster Computation of the - // Tate Pairing", http://arxiv.org/pdf/0904.0854v3.pdf - - B := newGFp2(pool).Mul(p.x, r.t, pool) - - D := newGFp2(pool).Add(p.y, r.z) - D.Square(D, pool) - D.Sub(D, r2) - D.Sub(D, r.t) - D.Mul(D, r.t, pool) - - H := newGFp2(pool).Sub(B, r.x) - I := newGFp2(pool).Square(H, pool) - - E := newGFp2(pool).Add(I, I) - E.Add(E, E) - - J := newGFp2(pool).Mul(H, E, pool) - - L1 := newGFp2(pool).Sub(D, r.y) - L1.Sub(L1, r.y) - - V := newGFp2(pool).Mul(r.x, E, pool) - - rOut = newTwistPoint(pool) - rOut.x.Square(L1, pool) - rOut.x.Sub(rOut.x, J) - rOut.x.Sub(rOut.x, V) - rOut.x.Sub(rOut.x, V) - - rOut.z.Add(r.z, H) - rOut.z.Square(rOut.z, pool) - rOut.z.Sub(rOut.z, r.t) - rOut.z.Sub(rOut.z, I) - - t := newGFp2(pool).Sub(V, rOut.x) - t.Mul(t, L1, pool) - t2 := newGFp2(pool).Mul(r.y, J, pool) - t2.Add(t2, t2) - rOut.y.Sub(t, t2) - - rOut.t.Square(rOut.z, pool) - - t.Add(p.y, rOut.z) - t.Square(t, pool) - t.Sub(t, r2) - t.Sub(t, rOut.t) - - t2.Mul(L1, p.x, pool) - t2.Add(t2, t2) - a = newGFp2(pool) - a.Sub(t2, t) - - c = newGFp2(pool) - c.MulScalar(rOut.z, q.y) - c.Add(c, c) - - b = newGFp2(pool) - b.SetZero() - b.Sub(b, L1) - b.MulScalar(b, q.x) - b.Add(b, b) - - B.Put(pool) - D.Put(pool) - H.Put(pool) - I.Put(pool) - E.Put(pool) - J.Put(pool) - L1.Put(pool) - V.Put(pool) - t.Put(pool) - t2.Put(pool) - - return -} - -func lineFunctionDouble(r *twistPoint, q *curvePoint, pool *bnPool) (a, b, c *gfP2, rOut *twistPoint) { - // See the doubling algorithm for a=0 from "Faster Computation of the - // Tate Pairing", http://arxiv.org/pdf/0904.0854v3.pdf - - A := newGFp2(pool).Square(r.x, pool) - B := newGFp2(pool).Square(r.y, pool) - C := newGFp2(pool).Square(B, pool) - - D := newGFp2(pool).Add(r.x, B) - D.Square(D, pool) - D.Sub(D, A) - D.Sub(D, C) - D.Add(D, D) - - E := newGFp2(pool).Add(A, A) - E.Add(E, A) - - G := newGFp2(pool).Square(E, pool) - - rOut = newTwistPoint(pool) - rOut.x.Sub(G, D) - rOut.x.Sub(rOut.x, D) - - rOut.z.Add(r.y, r.z) - rOut.z.Square(rOut.z, pool) - rOut.z.Sub(rOut.z, B) - rOut.z.Sub(rOut.z, r.t) - - rOut.y.Sub(D, rOut.x) - rOut.y.Mul(rOut.y, E, pool) - t := newGFp2(pool).Add(C, C) - t.Add(t, t) - t.Add(t, t) - rOut.y.Sub(rOut.y, t) - - rOut.t.Square(rOut.z, pool) - - t.Mul(E, r.t, pool) - t.Add(t, t) - b = newGFp2(pool) - b.SetZero() - b.Sub(b, t) - b.MulScalar(b, q.x) - - a = newGFp2(pool) - a.Add(r.x, E) - a.Square(a, pool) - a.Sub(a, A) - a.Sub(a, G) - t.Add(B, B) - t.Add(t, t) - a.Sub(a, t) - - c = newGFp2(pool) - c.Mul(rOut.z, r.t, pool) - c.Add(c, c) - c.MulScalar(c, q.y) - - A.Put(pool) - B.Put(pool) - C.Put(pool) - D.Put(pool) - E.Put(pool) - G.Put(pool) - t.Put(pool) - - return -} - -func mulLine(ret *gfP12, a, b, c *gfP2, pool *bnPool) { - a2 := newGFp6(pool) - a2.x.SetZero() - a2.y.Set(a) - a2.z.Set(b) - a2.Mul(a2, ret.x, pool) - t3 := newGFp6(pool).MulScalar(ret.y, c, pool) - - t := newGFp2(pool) - t.Add(b, c) - t2 := newGFp6(pool) - t2.x.SetZero() - t2.y.Set(a) - t2.z.Set(t) - ret.x.Add(ret.x, ret.y) - - ret.y.Set(t3) - - ret.x.Mul(ret.x, t2, pool) - ret.x.Sub(ret.x, a2) - ret.x.Sub(ret.x, ret.y) - a2.MulTau(a2, pool) - ret.y.Add(ret.y, a2) - - a2.Put(pool) - t3.Put(pool) - t2.Put(pool) - t.Put(pool) -} - -// sixuPlus2NAF is 6u+2 in non-adjacent form. -var sixuPlus2NAF = []int8{0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1} - -// miller implements the Miller loop for calculating the Optimal Ate pairing. -// See algorithm 1 from http://cryptojedi.org/papers/dclxvi-20100714.pdf -func miller(q *twistPoint, p *curvePoint, pool *bnPool) *gfP12 { - ret := newGFp12(pool) - ret.SetOne() - - aAffine := newTwistPoint(pool) - aAffine.Set(q) - aAffine.MakeAffine(pool) - - bAffine := newCurvePoint(pool) - bAffine.Set(p) - bAffine.MakeAffine(pool) - - minusA := newTwistPoint(pool) - minusA.Negative(aAffine, pool) - - r := newTwistPoint(pool) - r.Set(aAffine) - - r2 := newGFp2(pool) - r2.Square(aAffine.y, pool) - - for i := len(sixuPlus2NAF) - 1; i > 0; i-- { - a, b, c, newR := lineFunctionDouble(r, bAffine, pool) - if i != len(sixuPlus2NAF)-1 { - ret.Square(ret, pool) - } - - mulLine(ret, a, b, c, pool) - a.Put(pool) - b.Put(pool) - c.Put(pool) - r.Put(pool) - r = newR - - switch sixuPlus2NAF[i-1] { - case 1: - a, b, c, newR = lineFunctionAdd(r, aAffine, bAffine, r2, pool) - case -1: - a, b, c, newR = lineFunctionAdd(r, minusA, bAffine, r2, pool) - default: - continue - } - - mulLine(ret, a, b, c, pool) - a.Put(pool) - b.Put(pool) - c.Put(pool) - r.Put(pool) - r = newR - } - - // In order to calculate Q1 we have to convert q from the sextic twist - // to the full GF(p^12) group, apply the Frobenius there, and convert - // back. - // - // The twist isomorphism is (x', y') -> (xω², yω³). If we consider just - // x for a moment, then after applying the Frobenius, we have x̄ω^(2p) - // where xÌ„ is the conjugate of x. If we are going to apply the inverse - // isomorphism we need a value with a single coefficient of ω² so we - // rewrite this as x̄ω^(2p-2)ω². ξⶠ= ω and, due to the construction of - // p, 2p-2 is a multiple of six. Therefore we can rewrite as - // x̄ξ^((p-1)/3)ω² and applying the inverse isomorphism eliminates the - // ω². - // - // A similar argument can be made for the y value. - - q1 := newTwistPoint(pool) - q1.x.Conjugate(aAffine.x) - q1.x.Mul(q1.x, xiToPMinus1Over3, pool) - q1.y.Conjugate(aAffine.y) - q1.y.Mul(q1.y, xiToPMinus1Over2, pool) - q1.z.SetOne() - q1.t.SetOne() - - // For Q2 we are applying the p² Frobenius. The two conjugations cancel - // out and we are left only with the factors from the isomorphism. In - // the case of x, we end up with a pure number which is why - // xiToPSquaredMinus1Over3 is ∈ GF(p). With y we get a factor of -1. We - // ignore this to end up with -Q2. - - minusQ2 := newTwistPoint(pool) - minusQ2.x.MulScalar(aAffine.x, xiToPSquaredMinus1Over3) - minusQ2.y.Set(aAffine.y) - minusQ2.z.SetOne() - minusQ2.t.SetOne() - - r2.Square(q1.y, pool) - a, b, c, newR := lineFunctionAdd(r, q1, bAffine, r2, pool) - mulLine(ret, a, b, c, pool) - a.Put(pool) - b.Put(pool) - c.Put(pool) - r.Put(pool) - r = newR - - r2.Square(minusQ2.y, pool) - a, b, c, newR = lineFunctionAdd(r, minusQ2, bAffine, r2, pool) - mulLine(ret, a, b, c, pool) - a.Put(pool) - b.Put(pool) - c.Put(pool) - r.Put(pool) - r = newR - - aAffine.Put(pool) - bAffine.Put(pool) - minusA.Put(pool) - r.Put(pool) - r2.Put(pool) - - return ret -} - -// finalExponentiation computes the (p¹²-1)/Order-th power of an element of -// GF(p¹²) to obtain an element of GT (steps 13-15 of algorithm 1 from -// http://cryptojedi.org/papers/dclxvi-20100714.pdf) -func finalExponentiation(in *gfP12, pool *bnPool) *gfP12 { - t1 := newGFp12(pool) - - // This is the p^6-Frobenius - t1.x.Negative(in.x) - t1.y.Set(in.y) - - inv := newGFp12(pool) - inv.Invert(in, pool) - t1.Mul(t1, inv, pool) - - t2 := newGFp12(pool).FrobeniusP2(t1, pool) - t1.Mul(t1, t2, pool) - - fp := newGFp12(pool).Frobenius(t1, pool) - fp2 := newGFp12(pool).FrobeniusP2(t1, pool) - fp3 := newGFp12(pool).Frobenius(fp2, pool) - - fu, fu2, fu3 := newGFp12(pool), newGFp12(pool), newGFp12(pool) - fu.Exp(t1, u, pool) - fu2.Exp(fu, u, pool) - fu3.Exp(fu2, u, pool) - - y3 := newGFp12(pool).Frobenius(fu, pool) - fu2p := newGFp12(pool).Frobenius(fu2, pool) - fu3p := newGFp12(pool).Frobenius(fu3, pool) - y2 := newGFp12(pool).FrobeniusP2(fu2, pool) - - y0 := newGFp12(pool) - y0.Mul(fp, fp2, pool) - y0.Mul(y0, fp3, pool) - - y1, y4, y5 := newGFp12(pool), newGFp12(pool), newGFp12(pool) - y1.Conjugate(t1) - y5.Conjugate(fu2) - y3.Conjugate(y3) - y4.Mul(fu, fu2p, pool) - y4.Conjugate(y4) - - y6 := newGFp12(pool) - y6.Mul(fu3, fu3p, pool) - y6.Conjugate(y6) - - t0 := newGFp12(pool) - t0.Square(y6, pool) - t0.Mul(t0, y4, pool) - t0.Mul(t0, y5, pool) - t1.Mul(y3, y5, pool) - t1.Mul(t1, t0, pool) - t0.Mul(t0, y2, pool) - t1.Square(t1, pool) - t1.Mul(t1, t0, pool) - t1.Square(t1, pool) - t0.Mul(t1, y1, pool) - t1.Mul(t1, y0, pool) - t0.Square(t0, pool) - t0.Mul(t0, t1, pool) - - inv.Put(pool) - t1.Put(pool) - t2.Put(pool) - fp.Put(pool) - fp2.Put(pool) - fp3.Put(pool) - fu.Put(pool) - fu2.Put(pool) - fu3.Put(pool) - fu2p.Put(pool) - fu3p.Put(pool) - y0.Put(pool) - y1.Put(pool) - y2.Put(pool) - y3.Put(pool) - y4.Put(pool) - y5.Put(pool) - y6.Put(pool) - - return t0 -} - -func optimalAte(a *twistPoint, b *curvePoint, pool *bnPool) *gfP12 { - e := miller(a, b, pool) - ret := finalExponentiation(e, pool) - e.Put(pool) - - if a.IsInfinity() || b.IsInfinity() { - ret.SetOne() - } - - return ret -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/twist.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/twist.go deleted file mode 100644 index 4f8b3fed..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/bn256/twist.go +++ /dev/null @@ -1,249 +0,0 @@ -// Copyright 2012 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 bn256 - -import ( - "math/big" -) - -// twistPoint implements the elliptic curve y²=x³+3/ξ over GF(p²). Points are -// kept in Jacobian form and t=z² when valid. The group Gâ‚‚ is the set of -// n-torsion points of this curve over GF(p²) (where n = Order) -type twistPoint struct { - x, y, z, t *gfP2 -} - -var twistB = &gfP2{ - bigFromBase10("6500054969564660373279643874235990574282535810762300357187714502686418407178"), - bigFromBase10("45500384786952622612957507119651934019977750675336102500314001518804928850249"), -} - -// twistGen is the generator of group Gâ‚‚. -var twistGen = &twistPoint{ - &gfP2{ - bigFromBase10("21167961636542580255011770066570541300993051739349375019639421053990175267184"), - bigFromBase10("64746500191241794695844075326670126197795977525365406531717464316923369116492"), - }, - &gfP2{ - bigFromBase10("20666913350058776956210519119118544732556678129809273996262322366050359951122"), - bigFromBase10("17778617556404439934652658462602675281523610326338642107814333856843981424549"), - }, - &gfP2{ - bigFromBase10("0"), - bigFromBase10("1"), - }, - &gfP2{ - bigFromBase10("0"), - bigFromBase10("1"), - }, -} - -func newTwistPoint(pool *bnPool) *twistPoint { - return &twistPoint{ - newGFp2(pool), - newGFp2(pool), - newGFp2(pool), - newGFp2(pool), - } -} - -func (c *twistPoint) String() string { - return "(" + c.x.String() + ", " + c.y.String() + ", " + c.z.String() + ")" -} - -func (c *twistPoint) Put(pool *bnPool) { - c.x.Put(pool) - c.y.Put(pool) - c.z.Put(pool) - c.t.Put(pool) -} - -func (c *twistPoint) Set(a *twistPoint) { - c.x.Set(a.x) - c.y.Set(a.y) - c.z.Set(a.z) - c.t.Set(a.t) -} - -// IsOnCurve returns true iff c is on the curve where c must be in affine form. -func (c *twistPoint) IsOnCurve() bool { - pool := new(bnPool) - yy := newGFp2(pool).Square(c.y, pool) - xxx := newGFp2(pool).Square(c.x, pool) - xxx.Mul(xxx, c.x, pool) - yy.Sub(yy, xxx) - yy.Sub(yy, twistB) - yy.Minimal() - return yy.x.Sign() == 0 && yy.y.Sign() == 0 -} - -func (c *twistPoint) SetInfinity() { - c.z.SetZero() -} - -func (c *twistPoint) IsInfinity() bool { - return c.z.IsZero() -} - -func (c *twistPoint) Add(a, b *twistPoint, pool *bnPool) { - // For additional comments, see the same function in curve.go. - - if a.IsInfinity() { - c.Set(b) - return - } - if b.IsInfinity() { - c.Set(a) - return - } - - // See http://hyperelliptic.org/EFD/g1p/auto-code/shortw/jacobian-0/addition/add-2007-bl.op3 - z1z1 := newGFp2(pool).Square(a.z, pool) - z2z2 := newGFp2(pool).Square(b.z, pool) - u1 := newGFp2(pool).Mul(a.x, z2z2, pool) - u2 := newGFp2(pool).Mul(b.x, z1z1, pool) - - t := newGFp2(pool).Mul(b.z, z2z2, pool) - s1 := newGFp2(pool).Mul(a.y, t, pool) - - t.Mul(a.z, z1z1, pool) - s2 := newGFp2(pool).Mul(b.y, t, pool) - - h := newGFp2(pool).Sub(u2, u1) - xEqual := h.IsZero() - - t.Add(h, h) - i := newGFp2(pool).Square(t, pool) - j := newGFp2(pool).Mul(h, i, pool) - - t.Sub(s2, s1) - yEqual := t.IsZero() - if xEqual && yEqual { - c.Double(a, pool) - return - } - r := newGFp2(pool).Add(t, t) - - v := newGFp2(pool).Mul(u1, i, pool) - - t4 := newGFp2(pool).Square(r, pool) - t.Add(v, v) - t6 := newGFp2(pool).Sub(t4, j) - c.x.Sub(t6, t) - - t.Sub(v, c.x) // t7 - t4.Mul(s1, j, pool) // t8 - t6.Add(t4, t4) // t9 - t4.Mul(r, t, pool) // t10 - c.y.Sub(t4, t6) - - t.Add(a.z, b.z) // t11 - t4.Square(t, pool) // t12 - t.Sub(t4, z1z1) // t13 - t4.Sub(t, z2z2) // t14 - c.z.Mul(t4, h, pool) - - z1z1.Put(pool) - z2z2.Put(pool) - u1.Put(pool) - u2.Put(pool) - t.Put(pool) - s1.Put(pool) - s2.Put(pool) - h.Put(pool) - i.Put(pool) - j.Put(pool) - r.Put(pool) - v.Put(pool) - t4.Put(pool) - t6.Put(pool) -} - -func (c *twistPoint) Double(a *twistPoint, pool *bnPool) { - // See http://hyperelliptic.org/EFD/g1p/auto-code/shortw/jacobian-0/doubling/dbl-2009-l.op3 - A := newGFp2(pool).Square(a.x, pool) - B := newGFp2(pool).Square(a.y, pool) - C := newGFp2(pool).Square(B, pool) - - t := newGFp2(pool).Add(a.x, B) - t2 := newGFp2(pool).Square(t, pool) - t.Sub(t2, A) - t2.Sub(t, C) - d := newGFp2(pool).Add(t2, t2) - t.Add(A, A) - e := newGFp2(pool).Add(t, A) - f := newGFp2(pool).Square(e, pool) - - t.Add(d, d) - c.x.Sub(f, t) - - t.Add(C, C) - t2.Add(t, t) - t.Add(t2, t2) - c.y.Sub(d, c.x) - t2.Mul(e, c.y, pool) - c.y.Sub(t2, t) - - t.Mul(a.y, a.z, pool) - c.z.Add(t, t) - - A.Put(pool) - B.Put(pool) - C.Put(pool) - t.Put(pool) - t2.Put(pool) - d.Put(pool) - e.Put(pool) - f.Put(pool) -} - -func (c *twistPoint) Mul(a *twistPoint, scalar *big.Int, pool *bnPool) *twistPoint { - sum := newTwistPoint(pool) - sum.SetInfinity() - t := newTwistPoint(pool) - - for i := scalar.BitLen(); i >= 0; i-- { - t.Double(sum, pool) - if scalar.Bit(i) != 0 { - sum.Add(t, a, pool) - } else { - sum.Set(t) - } - } - - c.Set(sum) - sum.Put(pool) - t.Put(pool) - return c -} - -func (c *twistPoint) MakeAffine(pool *bnPool) *twistPoint { - if c.z.IsOne() { - return c - } - - zInv := newGFp2(pool).Invert(c.z, pool) - t := newGFp2(pool).Mul(c.y, zInv, pool) - zInv2 := newGFp2(pool).Square(zInv, pool) - c.y.Mul(t, zInv2, pool) - t.Mul(c.x, zInv2, pool) - c.x.Set(t) - c.z.SetOne() - c.t.SetOne() - - zInv.Put(pool) - t.Put(pool) - zInv2.Put(pool) - - return c -} - -func (c *twistPoint) Negative(a *twistPoint, pool *bnPool) { - c.x.Set(a.x) - c.y.SetZero() - c.y.Sub(c.y, a.y) - c.z.Set(a.z) - c.t.SetZero() -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/cast5/cast5.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/cast5/cast5.go deleted file mode 100644 index 8c1b299b..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/cast5/cast5.go +++ /dev/null @@ -1,526 +0,0 @@ -// Copyright 2010 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 cast5 implements CAST5, as defined in RFC 2144. CAST5 is a common -// OpenPGP cipher. -package cast5 - -import "errors" - -const BlockSize = 8 -const KeySize = 16 - -type Cipher struct { - masking [16]uint32 - rotate [16]uint8 -} - -func NewCipher(key []byte) (c *Cipher, err error) { - if len(key) != KeySize { - return nil, errors.New("CAST5: keys must be 16 bytes") - } - - c = new(Cipher) - c.keySchedule(key) - return -} - -func (c *Cipher) BlockSize() int { - return BlockSize -} - -func (c *Cipher) Encrypt(dst, src []byte) { - l := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) - r := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) - - l, r = r, l^f1(r, c.masking[0], c.rotate[0]) - l, r = r, l^f2(r, c.masking[1], c.rotate[1]) - l, r = r, l^f3(r, c.masking[2], c.rotate[2]) - l, r = r, l^f1(r, c.masking[3], c.rotate[3]) - - l, r = r, l^f2(r, c.masking[4], c.rotate[4]) - l, r = r, l^f3(r, c.masking[5], c.rotate[5]) - l, r = r, l^f1(r, c.masking[6], c.rotate[6]) - l, r = r, l^f2(r, c.masking[7], c.rotate[7]) - - l, r = r, l^f3(r, c.masking[8], c.rotate[8]) - l, r = r, l^f1(r, c.masking[9], c.rotate[9]) - l, r = r, l^f2(r, c.masking[10], c.rotate[10]) - l, r = r, l^f3(r, c.masking[11], c.rotate[11]) - - l, r = r, l^f1(r, c.masking[12], c.rotate[12]) - l, r = r, l^f2(r, c.masking[13], c.rotate[13]) - l, r = r, l^f3(r, c.masking[14], c.rotate[14]) - l, r = r, l^f1(r, c.masking[15], c.rotate[15]) - - dst[0] = uint8(r >> 24) - dst[1] = uint8(r >> 16) - dst[2] = uint8(r >> 8) - dst[3] = uint8(r) - dst[4] = uint8(l >> 24) - dst[5] = uint8(l >> 16) - dst[6] = uint8(l >> 8) - dst[7] = uint8(l) -} - -func (c *Cipher) Decrypt(dst, src []byte) { - l := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) - r := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) - - l, r = r, l^f1(r, c.masking[15], c.rotate[15]) - l, r = r, l^f3(r, c.masking[14], c.rotate[14]) - l, r = r, l^f2(r, c.masking[13], c.rotate[13]) - l, r = r, l^f1(r, c.masking[12], c.rotate[12]) - - l, r = r, l^f3(r, c.masking[11], c.rotate[11]) - l, r = r, l^f2(r, c.masking[10], c.rotate[10]) - l, r = r, l^f1(r, c.masking[9], c.rotate[9]) - l, r = r, l^f3(r, c.masking[8], c.rotate[8]) - - l, r = r, l^f2(r, c.masking[7], c.rotate[7]) - l, r = r, l^f1(r, c.masking[6], c.rotate[6]) - l, r = r, l^f3(r, c.masking[5], c.rotate[5]) - l, r = r, l^f2(r, c.masking[4], c.rotate[4]) - - l, r = r, l^f1(r, c.masking[3], c.rotate[3]) - l, r = r, l^f3(r, c.masking[2], c.rotate[2]) - l, r = r, l^f2(r, c.masking[1], c.rotate[1]) - l, r = r, l^f1(r, c.masking[0], c.rotate[0]) - - dst[0] = uint8(r >> 24) - dst[1] = uint8(r >> 16) - dst[2] = uint8(r >> 8) - dst[3] = uint8(r) - dst[4] = uint8(l >> 24) - dst[5] = uint8(l >> 16) - dst[6] = uint8(l >> 8) - dst[7] = uint8(l) -} - -type keyScheduleA [4][7]uint8 -type keyScheduleB [4][5]uint8 - -// keyScheduleRound contains the magic values for a round of the key schedule. -// The keyScheduleA deals with the lines like: -// z0z1z2z3 = x0x1x2x3 ^ S5[xD] ^ S6[xF] ^ S7[xC] ^ S8[xE] ^ S7[x8] -// Conceptually, both x and z are in the same array, x first. The first -// element describes which word of this array gets written to and the -// second, which word gets read. So, for the line above, it's "4, 0", because -// it's writing to the first word of z, which, being after x, is word 4, and -// reading from the first word of x: word 0. -// -// Next are the indexes into the S-boxes. Now the array is treated as bytes. So -// "xD" is 0xd. The first byte of z is written as "16 + 0", just to be clear -// that it's z that we're indexing. -// -// keyScheduleB deals with lines like: -// K1 = S5[z8] ^ S6[z9] ^ S7[z7] ^ S8[z6] ^ S5[z2] -// "K1" is ignored because key words are always written in order. So the five -// elements are the S-box indexes. They use the same form as in keyScheduleA, -// above. - -type keyScheduleRound struct{} -type keySchedule []keyScheduleRound - -var schedule = []struct { - a keyScheduleA - b keyScheduleB -}{ - { - keyScheduleA{ - {4, 0, 0xd, 0xf, 0xc, 0xe, 0x8}, - {5, 2, 16 + 0, 16 + 2, 16 + 1, 16 + 3, 0xa}, - {6, 3, 16 + 7, 16 + 6, 16 + 5, 16 + 4, 9}, - {7, 1, 16 + 0xa, 16 + 9, 16 + 0xb, 16 + 8, 0xb}, - }, - keyScheduleB{ - {16 + 8, 16 + 9, 16 + 7, 16 + 6, 16 + 2}, - {16 + 0xa, 16 + 0xb, 16 + 5, 16 + 4, 16 + 6}, - {16 + 0xc, 16 + 0xd, 16 + 3, 16 + 2, 16 + 9}, - {16 + 0xe, 16 + 0xf, 16 + 1, 16 + 0, 16 + 0xc}, - }, - }, - { - keyScheduleA{ - {0, 6, 16 + 5, 16 + 7, 16 + 4, 16 + 6, 16 + 0}, - {1, 4, 0, 2, 1, 3, 16 + 2}, - {2, 5, 7, 6, 5, 4, 16 + 1}, - {3, 7, 0xa, 9, 0xb, 8, 16 + 3}, - }, - keyScheduleB{ - {3, 2, 0xc, 0xd, 8}, - {1, 0, 0xe, 0xf, 0xd}, - {7, 6, 8, 9, 3}, - {5, 4, 0xa, 0xb, 7}, - }, - }, - { - keyScheduleA{ - {4, 0, 0xd, 0xf, 0xc, 0xe, 8}, - {5, 2, 16 + 0, 16 + 2, 16 + 1, 16 + 3, 0xa}, - {6, 3, 16 + 7, 16 + 6, 16 + 5, 16 + 4, 9}, - {7, 1, 16 + 0xa, 16 + 9, 16 + 0xb, 16 + 8, 0xb}, - }, - keyScheduleB{ - {16 + 3, 16 + 2, 16 + 0xc, 16 + 0xd, 16 + 9}, - {16 + 1, 16 + 0, 16 + 0xe, 16 + 0xf, 16 + 0xc}, - {16 + 7, 16 + 6, 16 + 8, 16 + 9, 16 + 2}, - {16 + 5, 16 + 4, 16 + 0xa, 16 + 0xb, 16 + 6}, - }, - }, - { - keyScheduleA{ - {0, 6, 16 + 5, 16 + 7, 16 + 4, 16 + 6, 16 + 0}, - {1, 4, 0, 2, 1, 3, 16 + 2}, - {2, 5, 7, 6, 5, 4, 16 + 1}, - {3, 7, 0xa, 9, 0xb, 8, 16 + 3}, - }, - keyScheduleB{ - {8, 9, 7, 6, 3}, - {0xa, 0xb, 5, 4, 7}, - {0xc, 0xd, 3, 2, 8}, - {0xe, 0xf, 1, 0, 0xd}, - }, - }, -} - -func (c *Cipher) keySchedule(in []byte) { - var t [8]uint32 - var k [32]uint32 - - for i := 0; i < 4; i++ { - j := i * 4 - t[i] = uint32(in[j])<<24 | uint32(in[j+1])<<16 | uint32(in[j+2])<<8 | uint32(in[j+3]) - } - - x := []byte{6, 7, 4, 5} - ki := 0 - - for half := 0; half < 2; half++ { - for _, round := range schedule { - for j := 0; j < 4; j++ { - var a [7]uint8 - copy(a[:], round.a[j][:]) - w := t[a[1]] - w ^= sBox[4][(t[a[2]>>2]>>(24-8*(a[2]&3)))&0xff] - w ^= sBox[5][(t[a[3]>>2]>>(24-8*(a[3]&3)))&0xff] - w ^= sBox[6][(t[a[4]>>2]>>(24-8*(a[4]&3)))&0xff] - w ^= sBox[7][(t[a[5]>>2]>>(24-8*(a[5]&3)))&0xff] - w ^= sBox[x[j]][(t[a[6]>>2]>>(24-8*(a[6]&3)))&0xff] - t[a[0]] = w - } - - for j := 0; j < 4; j++ { - var b [5]uint8 - copy(b[:], round.b[j][:]) - w := sBox[4][(t[b[0]>>2]>>(24-8*(b[0]&3)))&0xff] - w ^= sBox[5][(t[b[1]>>2]>>(24-8*(b[1]&3)))&0xff] - w ^= sBox[6][(t[b[2]>>2]>>(24-8*(b[2]&3)))&0xff] - w ^= sBox[7][(t[b[3]>>2]>>(24-8*(b[3]&3)))&0xff] - w ^= sBox[4+j][(t[b[4]>>2]>>(24-8*(b[4]&3)))&0xff] - k[ki] = w - ki++ - } - } - } - - for i := 0; i < 16; i++ { - c.masking[i] = k[i] - c.rotate[i] = uint8(k[16+i] & 0x1f) - } -} - -// These are the three 'f' functions. See RFC 2144, section 2.2. -func f1(d, m uint32, r uint8) uint32 { - t := m + d - I := (t << r) | (t >> (32 - r)) - return ((sBox[0][I>>24] ^ sBox[1][(I>>16)&0xff]) - sBox[2][(I>>8)&0xff]) + sBox[3][I&0xff] -} - -func f2(d, m uint32, r uint8) uint32 { - t := m ^ d - I := (t << r) | (t >> (32 - r)) - return ((sBox[0][I>>24] - sBox[1][(I>>16)&0xff]) + sBox[2][(I>>8)&0xff]) ^ sBox[3][I&0xff] -} - -func f3(d, m uint32, r uint8) uint32 { - t := m - d - I := (t << r) | (t >> (32 - r)) - return ((sBox[0][I>>24] + sBox[1][(I>>16)&0xff]) ^ sBox[2][(I>>8)&0xff]) - sBox[3][I&0xff] -} - -var sBox = [8][256]uint32{ - { - 0x30fb40d4, 0x9fa0ff0b, 0x6beccd2f, 0x3f258c7a, 0x1e213f2f, 0x9c004dd3, 0x6003e540, 0xcf9fc949, - 0xbfd4af27, 0x88bbbdb5, 0xe2034090, 0x98d09675, 0x6e63a0e0, 0x15c361d2, 0xc2e7661d, 0x22d4ff8e, - 0x28683b6f, 0xc07fd059, 0xff2379c8, 0x775f50e2, 0x43c340d3, 0xdf2f8656, 0x887ca41a, 0xa2d2bd2d, - 0xa1c9e0d6, 0x346c4819, 0x61b76d87, 0x22540f2f, 0x2abe32e1, 0xaa54166b, 0x22568e3a, 0xa2d341d0, - 0x66db40c8, 0xa784392f, 0x004dff2f, 0x2db9d2de, 0x97943fac, 0x4a97c1d8, 0x527644b7, 0xb5f437a7, - 0xb82cbaef, 0xd751d159, 0x6ff7f0ed, 0x5a097a1f, 0x827b68d0, 0x90ecf52e, 0x22b0c054, 0xbc8e5935, - 0x4b6d2f7f, 0x50bb64a2, 0xd2664910, 0xbee5812d, 0xb7332290, 0xe93b159f, 0xb48ee411, 0x4bff345d, - 0xfd45c240, 0xad31973f, 0xc4f6d02e, 0x55fc8165, 0xd5b1caad, 0xa1ac2dae, 0xa2d4b76d, 0xc19b0c50, - 0x882240f2, 0x0c6e4f38, 0xa4e4bfd7, 0x4f5ba272, 0x564c1d2f, 0xc59c5319, 0xb949e354, 0xb04669fe, - 0xb1b6ab8a, 0xc71358dd, 0x6385c545, 0x110f935d, 0x57538ad5, 0x6a390493, 0xe63d37e0, 0x2a54f6b3, - 0x3a787d5f, 0x6276a0b5, 0x19a6fcdf, 0x7a42206a, 0x29f9d4d5, 0xf61b1891, 0xbb72275e, 0xaa508167, - 0x38901091, 0xc6b505eb, 0x84c7cb8c, 0x2ad75a0f, 0x874a1427, 0xa2d1936b, 0x2ad286af, 0xaa56d291, - 0xd7894360, 0x425c750d, 0x93b39e26, 0x187184c9, 0x6c00b32d, 0x73e2bb14, 0xa0bebc3c, 0x54623779, - 0x64459eab, 0x3f328b82, 0x7718cf82, 0x59a2cea6, 0x04ee002e, 0x89fe78e6, 0x3fab0950, 0x325ff6c2, - 0x81383f05, 0x6963c5c8, 0x76cb5ad6, 0xd49974c9, 0xca180dcf, 0x380782d5, 0xc7fa5cf6, 0x8ac31511, - 0x35e79e13, 0x47da91d0, 0xf40f9086, 0xa7e2419e, 0x31366241, 0x051ef495, 0xaa573b04, 0x4a805d8d, - 0x548300d0, 0x00322a3c, 0xbf64cddf, 0xba57a68e, 0x75c6372b, 0x50afd341, 0xa7c13275, 0x915a0bf5, - 0x6b54bfab, 0x2b0b1426, 0xab4cc9d7, 0x449ccd82, 0xf7fbf265, 0xab85c5f3, 0x1b55db94, 0xaad4e324, - 0xcfa4bd3f, 0x2deaa3e2, 0x9e204d02, 0xc8bd25ac, 0xeadf55b3, 0xd5bd9e98, 0xe31231b2, 0x2ad5ad6c, - 0x954329de, 0xadbe4528, 0xd8710f69, 0xaa51c90f, 0xaa786bf6, 0x22513f1e, 0xaa51a79b, 0x2ad344cc, - 0x7b5a41f0, 0xd37cfbad, 0x1b069505, 0x41ece491, 0xb4c332e6, 0x032268d4, 0xc9600acc, 0xce387e6d, - 0xbf6bb16c, 0x6a70fb78, 0x0d03d9c9, 0xd4df39de, 0xe01063da, 0x4736f464, 0x5ad328d8, 0xb347cc96, - 0x75bb0fc3, 0x98511bfb, 0x4ffbcc35, 0xb58bcf6a, 0xe11f0abc, 0xbfc5fe4a, 0xa70aec10, 0xac39570a, - 0x3f04442f, 0x6188b153, 0xe0397a2e, 0x5727cb79, 0x9ceb418f, 0x1cacd68d, 0x2ad37c96, 0x0175cb9d, - 0xc69dff09, 0xc75b65f0, 0xd9db40d8, 0xec0e7779, 0x4744ead4, 0xb11c3274, 0xdd24cb9e, 0x7e1c54bd, - 0xf01144f9, 0xd2240eb1, 0x9675b3fd, 0xa3ac3755, 0xd47c27af, 0x51c85f4d, 0x56907596, 0xa5bb15e6, - 0x580304f0, 0xca042cf1, 0x011a37ea, 0x8dbfaadb, 0x35ba3e4a, 0x3526ffa0, 0xc37b4d09, 0xbc306ed9, - 0x98a52666, 0x5648f725, 0xff5e569d, 0x0ced63d0, 0x7c63b2cf, 0x700b45e1, 0xd5ea50f1, 0x85a92872, - 0xaf1fbda7, 0xd4234870, 0xa7870bf3, 0x2d3b4d79, 0x42e04198, 0x0cd0ede7, 0x26470db8, 0xf881814c, - 0x474d6ad7, 0x7c0c5e5c, 0xd1231959, 0x381b7298, 0xf5d2f4db, 0xab838653, 0x6e2f1e23, 0x83719c9e, - 0xbd91e046, 0x9a56456e, 0xdc39200c, 0x20c8c571, 0x962bda1c, 0xe1e696ff, 0xb141ab08, 0x7cca89b9, - 0x1a69e783, 0x02cc4843, 0xa2f7c579, 0x429ef47d, 0x427b169c, 0x5ac9f049, 0xdd8f0f00, 0x5c8165bf, - }, - { - 0x1f201094, 0xef0ba75b, 0x69e3cf7e, 0x393f4380, 0xfe61cf7a, 0xeec5207a, 0x55889c94, 0x72fc0651, - 0xada7ef79, 0x4e1d7235, 0xd55a63ce, 0xde0436ba, 0x99c430ef, 0x5f0c0794, 0x18dcdb7d, 0xa1d6eff3, - 0xa0b52f7b, 0x59e83605, 0xee15b094, 0xe9ffd909, 0xdc440086, 0xef944459, 0xba83ccb3, 0xe0c3cdfb, - 0xd1da4181, 0x3b092ab1, 0xf997f1c1, 0xa5e6cf7b, 0x01420ddb, 0xe4e7ef5b, 0x25a1ff41, 0xe180f806, - 0x1fc41080, 0x179bee7a, 0xd37ac6a9, 0xfe5830a4, 0x98de8b7f, 0x77e83f4e, 0x79929269, 0x24fa9f7b, - 0xe113c85b, 0xacc40083, 0xd7503525, 0xf7ea615f, 0x62143154, 0x0d554b63, 0x5d681121, 0xc866c359, - 0x3d63cf73, 0xcee234c0, 0xd4d87e87, 0x5c672b21, 0x071f6181, 0x39f7627f, 0x361e3084, 0xe4eb573b, - 0x602f64a4, 0xd63acd9c, 0x1bbc4635, 0x9e81032d, 0x2701f50c, 0x99847ab4, 0xa0e3df79, 0xba6cf38c, - 0x10843094, 0x2537a95e, 0xf46f6ffe, 0xa1ff3b1f, 0x208cfb6a, 0x8f458c74, 0xd9e0a227, 0x4ec73a34, - 0xfc884f69, 0x3e4de8df, 0xef0e0088, 0x3559648d, 0x8a45388c, 0x1d804366, 0x721d9bfd, 0xa58684bb, - 0xe8256333, 0x844e8212, 0x128d8098, 0xfed33fb4, 0xce280ae1, 0x27e19ba5, 0xd5a6c252, 0xe49754bd, - 0xc5d655dd, 0xeb667064, 0x77840b4d, 0xa1b6a801, 0x84db26a9, 0xe0b56714, 0x21f043b7, 0xe5d05860, - 0x54f03084, 0x066ff472, 0xa31aa153, 0xdadc4755, 0xb5625dbf, 0x68561be6, 0x83ca6b94, 0x2d6ed23b, - 0xeccf01db, 0xa6d3d0ba, 0xb6803d5c, 0xaf77a709, 0x33b4a34c, 0x397bc8d6, 0x5ee22b95, 0x5f0e5304, - 0x81ed6f61, 0x20e74364, 0xb45e1378, 0xde18639b, 0x881ca122, 0xb96726d1, 0x8049a7e8, 0x22b7da7b, - 0x5e552d25, 0x5272d237, 0x79d2951c, 0xc60d894c, 0x488cb402, 0x1ba4fe5b, 0xa4b09f6b, 0x1ca815cf, - 0xa20c3005, 0x8871df63, 0xb9de2fcb, 0x0cc6c9e9, 0x0beeff53, 0xe3214517, 0xb4542835, 0x9f63293c, - 0xee41e729, 0x6e1d2d7c, 0x50045286, 0x1e6685f3, 0xf33401c6, 0x30a22c95, 0x31a70850, 0x60930f13, - 0x73f98417, 0xa1269859, 0xec645c44, 0x52c877a9, 0xcdff33a6, 0xa02b1741, 0x7cbad9a2, 0x2180036f, - 0x50d99c08, 0xcb3f4861, 0xc26bd765, 0x64a3f6ab, 0x80342676, 0x25a75e7b, 0xe4e6d1fc, 0x20c710e6, - 0xcdf0b680, 0x17844d3b, 0x31eef84d, 0x7e0824e4, 0x2ccb49eb, 0x846a3bae, 0x8ff77888, 0xee5d60f6, - 0x7af75673, 0x2fdd5cdb, 0xa11631c1, 0x30f66f43, 0xb3faec54, 0x157fd7fa, 0xef8579cc, 0xd152de58, - 0xdb2ffd5e, 0x8f32ce19, 0x306af97a, 0x02f03ef8, 0x99319ad5, 0xc242fa0f, 0xa7e3ebb0, 0xc68e4906, - 0xb8da230c, 0x80823028, 0xdcdef3c8, 0xd35fb171, 0x088a1bc8, 0xbec0c560, 0x61a3c9e8, 0xbca8f54d, - 0xc72feffa, 0x22822e99, 0x82c570b4, 0xd8d94e89, 0x8b1c34bc, 0x301e16e6, 0x273be979, 0xb0ffeaa6, - 0x61d9b8c6, 0x00b24869, 0xb7ffce3f, 0x08dc283b, 0x43daf65a, 0xf7e19798, 0x7619b72f, 0x8f1c9ba4, - 0xdc8637a0, 0x16a7d3b1, 0x9fc393b7, 0xa7136eeb, 0xc6bcc63e, 0x1a513742, 0xef6828bc, 0x520365d6, - 0x2d6a77ab, 0x3527ed4b, 0x821fd216, 0x095c6e2e, 0xdb92f2fb, 0x5eea29cb, 0x145892f5, 0x91584f7f, - 0x5483697b, 0x2667a8cc, 0x85196048, 0x8c4bacea, 0x833860d4, 0x0d23e0f9, 0x6c387e8a, 0x0ae6d249, - 0xb284600c, 0xd835731d, 0xdcb1c647, 0xac4c56ea, 0x3ebd81b3, 0x230eabb0, 0x6438bc87, 0xf0b5b1fa, - 0x8f5ea2b3, 0xfc184642, 0x0a036b7a, 0x4fb089bd, 0x649da589, 0xa345415e, 0x5c038323, 0x3e5d3bb9, - 0x43d79572, 0x7e6dd07c, 0x06dfdf1e, 0x6c6cc4ef, 0x7160a539, 0x73bfbe70, 0x83877605, 0x4523ecf1, - }, - { - 0x8defc240, 0x25fa5d9f, 0xeb903dbf, 0xe810c907, 0x47607fff, 0x369fe44b, 0x8c1fc644, 0xaececa90, - 0xbeb1f9bf, 0xeefbcaea, 0xe8cf1950, 0x51df07ae, 0x920e8806, 0xf0ad0548, 0xe13c8d83, 0x927010d5, - 0x11107d9f, 0x07647db9, 0xb2e3e4d4, 0x3d4f285e, 0xb9afa820, 0xfade82e0, 0xa067268b, 0x8272792e, - 0x553fb2c0, 0x489ae22b, 0xd4ef9794, 0x125e3fbc, 0x21fffcee, 0x825b1bfd, 0x9255c5ed, 0x1257a240, - 0x4e1a8302, 0xbae07fff, 0x528246e7, 0x8e57140e, 0x3373f7bf, 0x8c9f8188, 0xa6fc4ee8, 0xc982b5a5, - 0xa8c01db7, 0x579fc264, 0x67094f31, 0xf2bd3f5f, 0x40fff7c1, 0x1fb78dfc, 0x8e6bd2c1, 0x437be59b, - 0x99b03dbf, 0xb5dbc64b, 0x638dc0e6, 0x55819d99, 0xa197c81c, 0x4a012d6e, 0xc5884a28, 0xccc36f71, - 0xb843c213, 0x6c0743f1, 0x8309893c, 0x0feddd5f, 0x2f7fe850, 0xd7c07f7e, 0x02507fbf, 0x5afb9a04, - 0xa747d2d0, 0x1651192e, 0xaf70bf3e, 0x58c31380, 0x5f98302e, 0x727cc3c4, 0x0a0fb402, 0x0f7fef82, - 0x8c96fdad, 0x5d2c2aae, 0x8ee99a49, 0x50da88b8, 0x8427f4a0, 0x1eac5790, 0x796fb449, 0x8252dc15, - 0xefbd7d9b, 0xa672597d, 0xada840d8, 0x45f54504, 0xfa5d7403, 0xe83ec305, 0x4f91751a, 0x925669c2, - 0x23efe941, 0xa903f12e, 0x60270df2, 0x0276e4b6, 0x94fd6574, 0x927985b2, 0x8276dbcb, 0x02778176, - 0xf8af918d, 0x4e48f79e, 0x8f616ddf, 0xe29d840e, 0x842f7d83, 0x340ce5c8, 0x96bbb682, 0x93b4b148, - 0xef303cab, 0x984faf28, 0x779faf9b, 0x92dc560d, 0x224d1e20, 0x8437aa88, 0x7d29dc96, 0x2756d3dc, - 0x8b907cee, 0xb51fd240, 0xe7c07ce3, 0xe566b4a1, 0xc3e9615e, 0x3cf8209d, 0x6094d1e3, 0xcd9ca341, - 0x5c76460e, 0x00ea983b, 0xd4d67881, 0xfd47572c, 0xf76cedd9, 0xbda8229c, 0x127dadaa, 0x438a074e, - 0x1f97c090, 0x081bdb8a, 0x93a07ebe, 0xb938ca15, 0x97b03cff, 0x3dc2c0f8, 0x8d1ab2ec, 0x64380e51, - 0x68cc7bfb, 0xd90f2788, 0x12490181, 0x5de5ffd4, 0xdd7ef86a, 0x76a2e214, 0xb9a40368, 0x925d958f, - 0x4b39fffa, 0xba39aee9, 0xa4ffd30b, 0xfaf7933b, 0x6d498623, 0x193cbcfa, 0x27627545, 0x825cf47a, - 0x61bd8ba0, 0xd11e42d1, 0xcead04f4, 0x127ea392, 0x10428db7, 0x8272a972, 0x9270c4a8, 0x127de50b, - 0x285ba1c8, 0x3c62f44f, 0x35c0eaa5, 0xe805d231, 0x428929fb, 0xb4fcdf82, 0x4fb66a53, 0x0e7dc15b, - 0x1f081fab, 0x108618ae, 0xfcfd086d, 0xf9ff2889, 0x694bcc11, 0x236a5cae, 0x12deca4d, 0x2c3f8cc5, - 0xd2d02dfe, 0xf8ef5896, 0xe4cf52da, 0x95155b67, 0x494a488c, 0xb9b6a80c, 0x5c8f82bc, 0x89d36b45, - 0x3a609437, 0xec00c9a9, 0x44715253, 0x0a874b49, 0xd773bc40, 0x7c34671c, 0x02717ef6, 0x4feb5536, - 0xa2d02fff, 0xd2bf60c4, 0xd43f03c0, 0x50b4ef6d, 0x07478cd1, 0x006e1888, 0xa2e53f55, 0xb9e6d4bc, - 0xa2048016, 0x97573833, 0xd7207d67, 0xde0f8f3d, 0x72f87b33, 0xabcc4f33, 0x7688c55d, 0x7b00a6b0, - 0x947b0001, 0x570075d2, 0xf9bb88f8, 0x8942019e, 0x4264a5ff, 0x856302e0, 0x72dbd92b, 0xee971b69, - 0x6ea22fde, 0x5f08ae2b, 0xaf7a616d, 0xe5c98767, 0xcf1febd2, 0x61efc8c2, 0xf1ac2571, 0xcc8239c2, - 0x67214cb8, 0xb1e583d1, 0xb7dc3e62, 0x7f10bdce, 0xf90a5c38, 0x0ff0443d, 0x606e6dc6, 0x60543a49, - 0x5727c148, 0x2be98a1d, 0x8ab41738, 0x20e1be24, 0xaf96da0f, 0x68458425, 0x99833be5, 0x600d457d, - 0x282f9350, 0x8334b362, 0xd91d1120, 0x2b6d8da0, 0x642b1e31, 0x9c305a00, 0x52bce688, 0x1b03588a, - 0xf7baefd5, 0x4142ed9c, 0xa4315c11, 0x83323ec5, 0xdfef4636, 0xa133c501, 0xe9d3531c, 0xee353783, - }, - { - 0x9db30420, 0x1fb6e9de, 0xa7be7bef, 0xd273a298, 0x4a4f7bdb, 0x64ad8c57, 0x85510443, 0xfa020ed1, - 0x7e287aff, 0xe60fb663, 0x095f35a1, 0x79ebf120, 0xfd059d43, 0x6497b7b1, 0xf3641f63, 0x241e4adf, - 0x28147f5f, 0x4fa2b8cd, 0xc9430040, 0x0cc32220, 0xfdd30b30, 0xc0a5374f, 0x1d2d00d9, 0x24147b15, - 0xee4d111a, 0x0fca5167, 0x71ff904c, 0x2d195ffe, 0x1a05645f, 0x0c13fefe, 0x081b08ca, 0x05170121, - 0x80530100, 0xe83e5efe, 0xac9af4f8, 0x7fe72701, 0xd2b8ee5f, 0x06df4261, 0xbb9e9b8a, 0x7293ea25, - 0xce84ffdf, 0xf5718801, 0x3dd64b04, 0xa26f263b, 0x7ed48400, 0x547eebe6, 0x446d4ca0, 0x6cf3d6f5, - 0x2649abdf, 0xaea0c7f5, 0x36338cc1, 0x503f7e93, 0xd3772061, 0x11b638e1, 0x72500e03, 0xf80eb2bb, - 0xabe0502e, 0xec8d77de, 0x57971e81, 0xe14f6746, 0xc9335400, 0x6920318f, 0x081dbb99, 0xffc304a5, - 0x4d351805, 0x7f3d5ce3, 0xa6c866c6, 0x5d5bcca9, 0xdaec6fea, 0x9f926f91, 0x9f46222f, 0x3991467d, - 0xa5bf6d8e, 0x1143c44f, 0x43958302, 0xd0214eeb, 0x022083b8, 0x3fb6180c, 0x18f8931e, 0x281658e6, - 0x26486e3e, 0x8bd78a70, 0x7477e4c1, 0xb506e07c, 0xf32d0a25, 0x79098b02, 0xe4eabb81, 0x28123b23, - 0x69dead38, 0x1574ca16, 0xdf871b62, 0x211c40b7, 0xa51a9ef9, 0x0014377b, 0x041e8ac8, 0x09114003, - 0xbd59e4d2, 0xe3d156d5, 0x4fe876d5, 0x2f91a340, 0x557be8de, 0x00eae4a7, 0x0ce5c2ec, 0x4db4bba6, - 0xe756bdff, 0xdd3369ac, 0xec17b035, 0x06572327, 0x99afc8b0, 0x56c8c391, 0x6b65811c, 0x5e146119, - 0x6e85cb75, 0xbe07c002, 0xc2325577, 0x893ff4ec, 0x5bbfc92d, 0xd0ec3b25, 0xb7801ab7, 0x8d6d3b24, - 0x20c763ef, 0xc366a5fc, 0x9c382880, 0x0ace3205, 0xaac9548a, 0xeca1d7c7, 0x041afa32, 0x1d16625a, - 0x6701902c, 0x9b757a54, 0x31d477f7, 0x9126b031, 0x36cc6fdb, 0xc70b8b46, 0xd9e66a48, 0x56e55a79, - 0x026a4ceb, 0x52437eff, 0x2f8f76b4, 0x0df980a5, 0x8674cde3, 0xedda04eb, 0x17a9be04, 0x2c18f4df, - 0xb7747f9d, 0xab2af7b4, 0xefc34d20, 0x2e096b7c, 0x1741a254, 0xe5b6a035, 0x213d42f6, 0x2c1c7c26, - 0x61c2f50f, 0x6552daf9, 0xd2c231f8, 0x25130f69, 0xd8167fa2, 0x0418f2c8, 0x001a96a6, 0x0d1526ab, - 0x63315c21, 0x5e0a72ec, 0x49bafefd, 0x187908d9, 0x8d0dbd86, 0x311170a7, 0x3e9b640c, 0xcc3e10d7, - 0xd5cad3b6, 0x0caec388, 0xf73001e1, 0x6c728aff, 0x71eae2a1, 0x1f9af36e, 0xcfcbd12f, 0xc1de8417, - 0xac07be6b, 0xcb44a1d8, 0x8b9b0f56, 0x013988c3, 0xb1c52fca, 0xb4be31cd, 0xd8782806, 0x12a3a4e2, - 0x6f7de532, 0x58fd7eb6, 0xd01ee900, 0x24adffc2, 0xf4990fc5, 0x9711aac5, 0x001d7b95, 0x82e5e7d2, - 0x109873f6, 0x00613096, 0xc32d9521, 0xada121ff, 0x29908415, 0x7fbb977f, 0xaf9eb3db, 0x29c9ed2a, - 0x5ce2a465, 0xa730f32c, 0xd0aa3fe8, 0x8a5cc091, 0xd49e2ce7, 0x0ce454a9, 0xd60acd86, 0x015f1919, - 0x77079103, 0xdea03af6, 0x78a8565e, 0xdee356df, 0x21f05cbe, 0x8b75e387, 0xb3c50651, 0xb8a5c3ef, - 0xd8eeb6d2, 0xe523be77, 0xc2154529, 0x2f69efdf, 0xafe67afb, 0xf470c4b2, 0xf3e0eb5b, 0xd6cc9876, - 0x39e4460c, 0x1fda8538, 0x1987832f, 0xca007367, 0xa99144f8, 0x296b299e, 0x492fc295, 0x9266beab, - 0xb5676e69, 0x9bd3ddda, 0xdf7e052f, 0xdb25701c, 0x1b5e51ee, 0xf65324e6, 0x6afce36c, 0x0316cc04, - 0x8644213e, 0xb7dc59d0, 0x7965291f, 0xccd6fd43, 0x41823979, 0x932bcdf6, 0xb657c34d, 0x4edfd282, - 0x7ae5290c, 0x3cb9536b, 0x851e20fe, 0x9833557e, 0x13ecf0b0, 0xd3ffb372, 0x3f85c5c1, 0x0aef7ed2, - }, - { - 0x7ec90c04, 0x2c6e74b9, 0x9b0e66df, 0xa6337911, 0xb86a7fff, 0x1dd358f5, 0x44dd9d44, 0x1731167f, - 0x08fbf1fa, 0xe7f511cc, 0xd2051b00, 0x735aba00, 0x2ab722d8, 0x386381cb, 0xacf6243a, 0x69befd7a, - 0xe6a2e77f, 0xf0c720cd, 0xc4494816, 0xccf5c180, 0x38851640, 0x15b0a848, 0xe68b18cb, 0x4caadeff, - 0x5f480a01, 0x0412b2aa, 0x259814fc, 0x41d0efe2, 0x4e40b48d, 0x248eb6fb, 0x8dba1cfe, 0x41a99b02, - 0x1a550a04, 0xba8f65cb, 0x7251f4e7, 0x95a51725, 0xc106ecd7, 0x97a5980a, 0xc539b9aa, 0x4d79fe6a, - 0xf2f3f763, 0x68af8040, 0xed0c9e56, 0x11b4958b, 0xe1eb5a88, 0x8709e6b0, 0xd7e07156, 0x4e29fea7, - 0x6366e52d, 0x02d1c000, 0xc4ac8e05, 0x9377f571, 0x0c05372a, 0x578535f2, 0x2261be02, 0xd642a0c9, - 0xdf13a280, 0x74b55bd2, 0x682199c0, 0xd421e5ec, 0x53fb3ce8, 0xc8adedb3, 0x28a87fc9, 0x3d959981, - 0x5c1ff900, 0xfe38d399, 0x0c4eff0b, 0x062407ea, 0xaa2f4fb1, 0x4fb96976, 0x90c79505, 0xb0a8a774, - 0xef55a1ff, 0xe59ca2c2, 0xa6b62d27, 0xe66a4263, 0xdf65001f, 0x0ec50966, 0xdfdd55bc, 0x29de0655, - 0x911e739a, 0x17af8975, 0x32c7911c, 0x89f89468, 0x0d01e980, 0x524755f4, 0x03b63cc9, 0x0cc844b2, - 0xbcf3f0aa, 0x87ac36e9, 0xe53a7426, 0x01b3d82b, 0x1a9e7449, 0x64ee2d7e, 0xcddbb1da, 0x01c94910, - 0xb868bf80, 0x0d26f3fd, 0x9342ede7, 0x04a5c284, 0x636737b6, 0x50f5b616, 0xf24766e3, 0x8eca36c1, - 0x136e05db, 0xfef18391, 0xfb887a37, 0xd6e7f7d4, 0xc7fb7dc9, 0x3063fcdf, 0xb6f589de, 0xec2941da, - 0x26e46695, 0xb7566419, 0xf654efc5, 0xd08d58b7, 0x48925401, 0xc1bacb7f, 0xe5ff550f, 0xb6083049, - 0x5bb5d0e8, 0x87d72e5a, 0xab6a6ee1, 0x223a66ce, 0xc62bf3cd, 0x9e0885f9, 0x68cb3e47, 0x086c010f, - 0xa21de820, 0xd18b69de, 0xf3f65777, 0xfa02c3f6, 0x407edac3, 0xcbb3d550, 0x1793084d, 0xb0d70eba, - 0x0ab378d5, 0xd951fb0c, 0xded7da56, 0x4124bbe4, 0x94ca0b56, 0x0f5755d1, 0xe0e1e56e, 0x6184b5be, - 0x580a249f, 0x94f74bc0, 0xe327888e, 0x9f7b5561, 0xc3dc0280, 0x05687715, 0x646c6bd7, 0x44904db3, - 0x66b4f0a3, 0xc0f1648a, 0x697ed5af, 0x49e92ff6, 0x309e374f, 0x2cb6356a, 0x85808573, 0x4991f840, - 0x76f0ae02, 0x083be84d, 0x28421c9a, 0x44489406, 0x736e4cb8, 0xc1092910, 0x8bc95fc6, 0x7d869cf4, - 0x134f616f, 0x2e77118d, 0xb31b2be1, 0xaa90b472, 0x3ca5d717, 0x7d161bba, 0x9cad9010, 0xaf462ba2, - 0x9fe459d2, 0x45d34559, 0xd9f2da13, 0xdbc65487, 0xf3e4f94e, 0x176d486f, 0x097c13ea, 0x631da5c7, - 0x445f7382, 0x175683f4, 0xcdc66a97, 0x70be0288, 0xb3cdcf72, 0x6e5dd2f3, 0x20936079, 0x459b80a5, - 0xbe60e2db, 0xa9c23101, 0xeba5315c, 0x224e42f2, 0x1c5c1572, 0xf6721b2c, 0x1ad2fff3, 0x8c25404e, - 0x324ed72f, 0x4067b7fd, 0x0523138e, 0x5ca3bc78, 0xdc0fd66e, 0x75922283, 0x784d6b17, 0x58ebb16e, - 0x44094f85, 0x3f481d87, 0xfcfeae7b, 0x77b5ff76, 0x8c2302bf, 0xaaf47556, 0x5f46b02a, 0x2b092801, - 0x3d38f5f7, 0x0ca81f36, 0x52af4a8a, 0x66d5e7c0, 0xdf3b0874, 0x95055110, 0x1b5ad7a8, 0xf61ed5ad, - 0x6cf6e479, 0x20758184, 0xd0cefa65, 0x88f7be58, 0x4a046826, 0x0ff6f8f3, 0xa09c7f70, 0x5346aba0, - 0x5ce96c28, 0xe176eda3, 0x6bac307f, 0x376829d2, 0x85360fa9, 0x17e3fe2a, 0x24b79767, 0xf5a96b20, - 0xd6cd2595, 0x68ff1ebf, 0x7555442c, 0xf19f06be, 0xf9e0659a, 0xeeb9491d, 0x34010718, 0xbb30cab8, - 0xe822fe15, 0x88570983, 0x750e6249, 0xda627e55, 0x5e76ffa8, 0xb1534546, 0x6d47de08, 0xefe9e7d4, - }, - { - 0xf6fa8f9d, 0x2cac6ce1, 0x4ca34867, 0xe2337f7c, 0x95db08e7, 0x016843b4, 0xeced5cbc, 0x325553ac, - 0xbf9f0960, 0xdfa1e2ed, 0x83f0579d, 0x63ed86b9, 0x1ab6a6b8, 0xde5ebe39, 0xf38ff732, 0x8989b138, - 0x33f14961, 0xc01937bd, 0xf506c6da, 0xe4625e7e, 0xa308ea99, 0x4e23e33c, 0x79cbd7cc, 0x48a14367, - 0xa3149619, 0xfec94bd5, 0xa114174a, 0xeaa01866, 0xa084db2d, 0x09a8486f, 0xa888614a, 0x2900af98, - 0x01665991, 0xe1992863, 0xc8f30c60, 0x2e78ef3c, 0xd0d51932, 0xcf0fec14, 0xf7ca07d2, 0xd0a82072, - 0xfd41197e, 0x9305a6b0, 0xe86be3da, 0x74bed3cd, 0x372da53c, 0x4c7f4448, 0xdab5d440, 0x6dba0ec3, - 0x083919a7, 0x9fbaeed9, 0x49dbcfb0, 0x4e670c53, 0x5c3d9c01, 0x64bdb941, 0x2c0e636a, 0xba7dd9cd, - 0xea6f7388, 0xe70bc762, 0x35f29adb, 0x5c4cdd8d, 0xf0d48d8c, 0xb88153e2, 0x08a19866, 0x1ae2eac8, - 0x284caf89, 0xaa928223, 0x9334be53, 0x3b3a21bf, 0x16434be3, 0x9aea3906, 0xefe8c36e, 0xf890cdd9, - 0x80226dae, 0xc340a4a3, 0xdf7e9c09, 0xa694a807, 0x5b7c5ecc, 0x221db3a6, 0x9a69a02f, 0x68818a54, - 0xceb2296f, 0x53c0843a, 0xfe893655, 0x25bfe68a, 0xb4628abc, 0xcf222ebf, 0x25ac6f48, 0xa9a99387, - 0x53bddb65, 0xe76ffbe7, 0xe967fd78, 0x0ba93563, 0x8e342bc1, 0xe8a11be9, 0x4980740d, 0xc8087dfc, - 0x8de4bf99, 0xa11101a0, 0x7fd37975, 0xda5a26c0, 0xe81f994f, 0x9528cd89, 0xfd339fed, 0xb87834bf, - 0x5f04456d, 0x22258698, 0xc9c4c83b, 0x2dc156be, 0x4f628daa, 0x57f55ec5, 0xe2220abe, 0xd2916ebf, - 0x4ec75b95, 0x24f2c3c0, 0x42d15d99, 0xcd0d7fa0, 0x7b6e27ff, 0xa8dc8af0, 0x7345c106, 0xf41e232f, - 0x35162386, 0xe6ea8926, 0x3333b094, 0x157ec6f2, 0x372b74af, 0x692573e4, 0xe9a9d848, 0xf3160289, - 0x3a62ef1d, 0xa787e238, 0xf3a5f676, 0x74364853, 0x20951063, 0x4576698d, 0xb6fad407, 0x592af950, - 0x36f73523, 0x4cfb6e87, 0x7da4cec0, 0x6c152daa, 0xcb0396a8, 0xc50dfe5d, 0xfcd707ab, 0x0921c42f, - 0x89dff0bb, 0x5fe2be78, 0x448f4f33, 0x754613c9, 0x2b05d08d, 0x48b9d585, 0xdc049441, 0xc8098f9b, - 0x7dede786, 0xc39a3373, 0x42410005, 0x6a091751, 0x0ef3c8a6, 0x890072d6, 0x28207682, 0xa9a9f7be, - 0xbf32679d, 0xd45b5b75, 0xb353fd00, 0xcbb0e358, 0x830f220a, 0x1f8fb214, 0xd372cf08, 0xcc3c4a13, - 0x8cf63166, 0x061c87be, 0x88c98f88, 0x6062e397, 0x47cf8e7a, 0xb6c85283, 0x3cc2acfb, 0x3fc06976, - 0x4e8f0252, 0x64d8314d, 0xda3870e3, 0x1e665459, 0xc10908f0, 0x513021a5, 0x6c5b68b7, 0x822f8aa0, - 0x3007cd3e, 0x74719eef, 0xdc872681, 0x073340d4, 0x7e432fd9, 0x0c5ec241, 0x8809286c, 0xf592d891, - 0x08a930f6, 0x957ef305, 0xb7fbffbd, 0xc266e96f, 0x6fe4ac98, 0xb173ecc0, 0xbc60b42a, 0x953498da, - 0xfba1ae12, 0x2d4bd736, 0x0f25faab, 0xa4f3fceb, 0xe2969123, 0x257f0c3d, 0x9348af49, 0x361400bc, - 0xe8816f4a, 0x3814f200, 0xa3f94043, 0x9c7a54c2, 0xbc704f57, 0xda41e7f9, 0xc25ad33a, 0x54f4a084, - 0xb17f5505, 0x59357cbe, 0xedbd15c8, 0x7f97c5ab, 0xba5ac7b5, 0xb6f6deaf, 0x3a479c3a, 0x5302da25, - 0x653d7e6a, 0x54268d49, 0x51a477ea, 0x5017d55b, 0xd7d25d88, 0x44136c76, 0x0404a8c8, 0xb8e5a121, - 0xb81a928a, 0x60ed5869, 0x97c55b96, 0xeaec991b, 0x29935913, 0x01fdb7f1, 0x088e8dfa, 0x9ab6f6f5, - 0x3b4cbf9f, 0x4a5de3ab, 0xe6051d35, 0xa0e1d855, 0xd36b4cf1, 0xf544edeb, 0xb0e93524, 0xbebb8fbd, - 0xa2d762cf, 0x49c92f54, 0x38b5f331, 0x7128a454, 0x48392905, 0xa65b1db8, 0x851c97bd, 0xd675cf2f, - }, - { - 0x85e04019, 0x332bf567, 0x662dbfff, 0xcfc65693, 0x2a8d7f6f, 0xab9bc912, 0xde6008a1, 0x2028da1f, - 0x0227bce7, 0x4d642916, 0x18fac300, 0x50f18b82, 0x2cb2cb11, 0xb232e75c, 0x4b3695f2, 0xb28707de, - 0xa05fbcf6, 0xcd4181e9, 0xe150210c, 0xe24ef1bd, 0xb168c381, 0xfde4e789, 0x5c79b0d8, 0x1e8bfd43, - 0x4d495001, 0x38be4341, 0x913cee1d, 0x92a79c3f, 0x089766be, 0xbaeeadf4, 0x1286becf, 0xb6eacb19, - 0x2660c200, 0x7565bde4, 0x64241f7a, 0x8248dca9, 0xc3b3ad66, 0x28136086, 0x0bd8dfa8, 0x356d1cf2, - 0x107789be, 0xb3b2e9ce, 0x0502aa8f, 0x0bc0351e, 0x166bf52a, 0xeb12ff82, 0xe3486911, 0xd34d7516, - 0x4e7b3aff, 0x5f43671b, 0x9cf6e037, 0x4981ac83, 0x334266ce, 0x8c9341b7, 0xd0d854c0, 0xcb3a6c88, - 0x47bc2829, 0x4725ba37, 0xa66ad22b, 0x7ad61f1e, 0x0c5cbafa, 0x4437f107, 0xb6e79962, 0x42d2d816, - 0x0a961288, 0xe1a5c06e, 0x13749e67, 0x72fc081a, 0xb1d139f7, 0xf9583745, 0xcf19df58, 0xbec3f756, - 0xc06eba30, 0x07211b24, 0x45c28829, 0xc95e317f, 0xbc8ec511, 0x38bc46e9, 0xc6e6fa14, 0xbae8584a, - 0xad4ebc46, 0x468f508b, 0x7829435f, 0xf124183b, 0x821dba9f, 0xaff60ff4, 0xea2c4e6d, 0x16e39264, - 0x92544a8b, 0x009b4fc3, 0xaba68ced, 0x9ac96f78, 0x06a5b79a, 0xb2856e6e, 0x1aec3ca9, 0xbe838688, - 0x0e0804e9, 0x55f1be56, 0xe7e5363b, 0xb3a1f25d, 0xf7debb85, 0x61fe033c, 0x16746233, 0x3c034c28, - 0xda6d0c74, 0x79aac56c, 0x3ce4e1ad, 0x51f0c802, 0x98f8f35a, 0x1626a49f, 0xeed82b29, 0x1d382fe3, - 0x0c4fb99a, 0xbb325778, 0x3ec6d97b, 0x6e77a6a9, 0xcb658b5c, 0xd45230c7, 0x2bd1408b, 0x60c03eb7, - 0xb9068d78, 0xa33754f4, 0xf430c87d, 0xc8a71302, 0xb96d8c32, 0xebd4e7be, 0xbe8b9d2d, 0x7979fb06, - 0xe7225308, 0x8b75cf77, 0x11ef8da4, 0xe083c858, 0x8d6b786f, 0x5a6317a6, 0xfa5cf7a0, 0x5dda0033, - 0xf28ebfb0, 0xf5b9c310, 0xa0eac280, 0x08b9767a, 0xa3d9d2b0, 0x79d34217, 0x021a718d, 0x9ac6336a, - 0x2711fd60, 0x438050e3, 0x069908a8, 0x3d7fedc4, 0x826d2bef, 0x4eeb8476, 0x488dcf25, 0x36c9d566, - 0x28e74e41, 0xc2610aca, 0x3d49a9cf, 0xbae3b9df, 0xb65f8de6, 0x92aeaf64, 0x3ac7d5e6, 0x9ea80509, - 0xf22b017d, 0xa4173f70, 0xdd1e16c3, 0x15e0d7f9, 0x50b1b887, 0x2b9f4fd5, 0x625aba82, 0x6a017962, - 0x2ec01b9c, 0x15488aa9, 0xd716e740, 0x40055a2c, 0x93d29a22, 0xe32dbf9a, 0x058745b9, 0x3453dc1e, - 0xd699296e, 0x496cff6f, 0x1c9f4986, 0xdfe2ed07, 0xb87242d1, 0x19de7eae, 0x053e561a, 0x15ad6f8c, - 0x66626c1c, 0x7154c24c, 0xea082b2a, 0x93eb2939, 0x17dcb0f0, 0x58d4f2ae, 0x9ea294fb, 0x52cf564c, - 0x9883fe66, 0x2ec40581, 0x763953c3, 0x01d6692e, 0xd3a0c108, 0xa1e7160e, 0xe4f2dfa6, 0x693ed285, - 0x74904698, 0x4c2b0edd, 0x4f757656, 0x5d393378, 0xa132234f, 0x3d321c5d, 0xc3f5e194, 0x4b269301, - 0xc79f022f, 0x3c997e7e, 0x5e4f9504, 0x3ffafbbd, 0x76f7ad0e, 0x296693f4, 0x3d1fce6f, 0xc61e45be, - 0xd3b5ab34, 0xf72bf9b7, 0x1b0434c0, 0x4e72b567, 0x5592a33d, 0xb5229301, 0xcfd2a87f, 0x60aeb767, - 0x1814386b, 0x30bcc33d, 0x38a0c07d, 0xfd1606f2, 0xc363519b, 0x589dd390, 0x5479f8e6, 0x1cb8d647, - 0x97fd61a9, 0xea7759f4, 0x2d57539d, 0x569a58cf, 0xe84e63ad, 0x462e1b78, 0x6580f87e, 0xf3817914, - 0x91da55f4, 0x40a230f3, 0xd1988f35, 0xb6e318d2, 0x3ffa50bc, 0x3d40f021, 0xc3c0bdae, 0x4958c24c, - 0x518f36b2, 0x84b1d370, 0x0fedce83, 0x878ddada, 0xf2a279c7, 0x94e01be8, 0x90716f4b, 0x954b8aa3, - }, - { - 0xe216300d, 0xbbddfffc, 0xa7ebdabd, 0x35648095, 0x7789f8b7, 0xe6c1121b, 0x0e241600, 0x052ce8b5, - 0x11a9cfb0, 0xe5952f11, 0xece7990a, 0x9386d174, 0x2a42931c, 0x76e38111, 0xb12def3a, 0x37ddddfc, - 0xde9adeb1, 0x0a0cc32c, 0xbe197029, 0x84a00940, 0xbb243a0f, 0xb4d137cf, 0xb44e79f0, 0x049eedfd, - 0x0b15a15d, 0x480d3168, 0x8bbbde5a, 0x669ded42, 0xc7ece831, 0x3f8f95e7, 0x72df191b, 0x7580330d, - 0x94074251, 0x5c7dcdfa, 0xabbe6d63, 0xaa402164, 0xb301d40a, 0x02e7d1ca, 0x53571dae, 0x7a3182a2, - 0x12a8ddec, 0xfdaa335d, 0x176f43e8, 0x71fb46d4, 0x38129022, 0xce949ad4, 0xb84769ad, 0x965bd862, - 0x82f3d055, 0x66fb9767, 0x15b80b4e, 0x1d5b47a0, 0x4cfde06f, 0xc28ec4b8, 0x57e8726e, 0x647a78fc, - 0x99865d44, 0x608bd593, 0x6c200e03, 0x39dc5ff6, 0x5d0b00a3, 0xae63aff2, 0x7e8bd632, 0x70108c0c, - 0xbbd35049, 0x2998df04, 0x980cf42a, 0x9b6df491, 0x9e7edd53, 0x06918548, 0x58cb7e07, 0x3b74ef2e, - 0x522fffb1, 0xd24708cc, 0x1c7e27cd, 0xa4eb215b, 0x3cf1d2e2, 0x19b47a38, 0x424f7618, 0x35856039, - 0x9d17dee7, 0x27eb35e6, 0xc9aff67b, 0x36baf5b8, 0x09c467cd, 0xc18910b1, 0xe11dbf7b, 0x06cd1af8, - 0x7170c608, 0x2d5e3354, 0xd4de495a, 0x64c6d006, 0xbcc0c62c, 0x3dd00db3, 0x708f8f34, 0x77d51b42, - 0x264f620f, 0x24b8d2bf, 0x15c1b79e, 0x46a52564, 0xf8d7e54e, 0x3e378160, 0x7895cda5, 0x859c15a5, - 0xe6459788, 0xc37bc75f, 0xdb07ba0c, 0x0676a3ab, 0x7f229b1e, 0x31842e7b, 0x24259fd7, 0xf8bef472, - 0x835ffcb8, 0x6df4c1f2, 0x96f5b195, 0xfd0af0fc, 0xb0fe134c, 0xe2506d3d, 0x4f9b12ea, 0xf215f225, - 0xa223736f, 0x9fb4c428, 0x25d04979, 0x34c713f8, 0xc4618187, 0xea7a6e98, 0x7cd16efc, 0x1436876c, - 0xf1544107, 0xbedeee14, 0x56e9af27, 0xa04aa441, 0x3cf7c899, 0x92ecbae6, 0xdd67016d, 0x151682eb, - 0xa842eedf, 0xfdba60b4, 0xf1907b75, 0x20e3030f, 0x24d8c29e, 0xe139673b, 0xefa63fb8, 0x71873054, - 0xb6f2cf3b, 0x9f326442, 0xcb15a4cc, 0xb01a4504, 0xf1e47d8d, 0x844a1be5, 0xbae7dfdc, 0x42cbda70, - 0xcd7dae0a, 0x57e85b7a, 0xd53f5af6, 0x20cf4d8c, 0xcea4d428, 0x79d130a4, 0x3486ebfb, 0x33d3cddc, - 0x77853b53, 0x37effcb5, 0xc5068778, 0xe580b3e6, 0x4e68b8f4, 0xc5c8b37e, 0x0d809ea2, 0x398feb7c, - 0x132a4f94, 0x43b7950e, 0x2fee7d1c, 0x223613bd, 0xdd06caa2, 0x37df932b, 0xc4248289, 0xacf3ebc3, - 0x5715f6b7, 0xef3478dd, 0xf267616f, 0xc148cbe4, 0x9052815e, 0x5e410fab, 0xb48a2465, 0x2eda7fa4, - 0xe87b40e4, 0xe98ea084, 0x5889e9e1, 0xefd390fc, 0xdd07d35b, 0xdb485694, 0x38d7e5b2, 0x57720101, - 0x730edebc, 0x5b643113, 0x94917e4f, 0x503c2fba, 0x646f1282, 0x7523d24a, 0xe0779695, 0xf9c17a8f, - 0x7a5b2121, 0xd187b896, 0x29263a4d, 0xba510cdf, 0x81f47c9f, 0xad1163ed, 0xea7b5965, 0x1a00726e, - 0x11403092, 0x00da6d77, 0x4a0cdd61, 0xad1f4603, 0x605bdfb0, 0x9eedc364, 0x22ebe6a8, 0xcee7d28a, - 0xa0e736a0, 0x5564a6b9, 0x10853209, 0xc7eb8f37, 0x2de705ca, 0x8951570f, 0xdf09822b, 0xbd691a6c, - 0xaa12e4f2, 0x87451c0f, 0xe0f6a27a, 0x3ada4819, 0x4cf1764f, 0x0d771c2b, 0x67cdb156, 0x350d8384, - 0x5938fa0f, 0x42399ef3, 0x36997b07, 0x0e84093d, 0x4aa93e61, 0x8360d87b, 0x1fa98b0c, 0x1149382c, - 0xe97625a5, 0x0614d1b7, 0x0e25244b, 0x0c768347, 0x589e8d82, 0x0d2059d1, 0xa466bb1e, 0xf8da0a82, - 0x04f19130, 0xba6e4ec0, 0x99265164, 0x1ee7230d, 0x50b2ad80, 0xeaee6801, 0x8db2a283, 0xea8bf59e, - }, -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/cast5/cast5_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/cast5/cast5_test.go deleted file mode 100644 index 778b272a..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/cast5/cast5_test.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2010 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 cast5 - -import ( - "bytes" - "encoding/hex" - "testing" -) - -// This test vector is taken from RFC 2144, App B.1. -// Since the other two test vectors are for reduced-round variants, we can't -// use them. -var basicTests = []struct { - key, plainText, cipherText string -}{ - { - "0123456712345678234567893456789a", - "0123456789abcdef", - "238b4fe5847e44b2", - }, -} - -func TestBasic(t *testing.T) { - for i, test := range basicTests { - key, _ := hex.DecodeString(test.key) - plainText, _ := hex.DecodeString(test.plainText) - expected, _ := hex.DecodeString(test.cipherText) - - c, err := NewCipher(key) - if err != nil { - t.Errorf("#%d: failed to create Cipher: %s", i, err) - continue - } - var cipherText [BlockSize]byte - c.Encrypt(cipherText[:], plainText) - if !bytes.Equal(cipherText[:], expected) { - t.Errorf("#%d: got:%x want:%x", i, cipherText, expected) - } - - var plainTextAgain [BlockSize]byte - c.Decrypt(plainTextAgain[:], cipherText[:]) - if !bytes.Equal(plainTextAgain[:], plainText) { - t.Errorf("#%d: got:%x want:%x", i, plainTextAgain, plainText) - } - } -} - -// TestFull performs the test specified in RFC 2144, App B.2. -// However, due to the length of time taken, it's disabled here and a more -// limited version is included, below. -func TestFull(t *testing.T) { - if testing.Short() { - // This is too slow for normal testing - return - } - - a, b := iterate(1000000) - - const expectedA = "eea9d0a249fd3ba6b3436fb89d6dca92" - const expectedB = "b2c95eb00c31ad7180ac05b8e83d696e" - - if hex.EncodeToString(a) != expectedA { - t.Errorf("a: got:%x want:%s", a, expectedA) - } - if hex.EncodeToString(b) != expectedB { - t.Errorf("b: got:%x want:%s", b, expectedB) - } -} - -func iterate(iterations int) ([]byte, []byte) { - const initValueHex = "0123456712345678234567893456789a" - - initValue, _ := hex.DecodeString(initValueHex) - - var a, b [16]byte - copy(a[:], initValue) - copy(b[:], initValue) - - for i := 0; i < iterations; i++ { - c, _ := NewCipher(b[:]) - c.Encrypt(a[:8], a[:8]) - c.Encrypt(a[8:], a[8:]) - c, _ = NewCipher(a[:]) - c.Encrypt(b[:8], b[:8]) - c.Encrypt(b[8:], b[8:]) - } - - return a[:], b[:] -} - -func TestLimited(t *testing.T) { - a, b := iterate(1000) - - const expectedA = "23f73b14b02a2ad7dfb9f2c35644798d" - const expectedB = "e5bf37eff14c456a40b21ce369370a9f" - - if hex.EncodeToString(a) != expectedA { - t.Errorf("a: got:%x want:%s", a, expectedA) - } - if hex.EncodeToString(b) != expectedB { - t.Errorf("b: got:%x want:%s", b, expectedB) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/codereview.cfg b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/codereview.cfg deleted file mode 100644 index 3f8b14b6..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/codereview.cfg +++ /dev/null @@ -1 +0,0 @@ -issuerepo: golang/go diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/const_amd64.s b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/const_amd64.s deleted file mode 100644 index 797f9b05..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/const_amd64.s +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2012 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. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -DATA ·REDMASK51(SB)/8, $0x0007FFFFFFFFFFFF -GLOBL ·REDMASK51(SB), 8, $8 - -DATA ·_121666_213(SB)/8, $996687872 -GLOBL ·_121666_213(SB), 8, $8 - -DATA ·_2P0(SB)/8, $0xFFFFFFFFFFFDA -GLOBL ·_2P0(SB), 8, $8 - -DATA ·_2P1234(SB)/8, $0xFFFFFFFFFFFFE -GLOBL ·_2P1234(SB), 8, $8 diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/cswap_amd64.s b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/cswap_amd64.s deleted file mode 100644 index 45484d1b..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/cswap_amd64.s +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2012 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. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -// func cswap(inout *[5]uint64, v uint64) -TEXT ·cswap(SB),7,$0 - MOVQ inout+0(FP),DI - MOVQ v+8(FP),SI - - CMPQ SI,$1 - MOVQ 0(DI),SI - MOVQ 80(DI),DX - MOVQ 8(DI),CX - MOVQ 88(DI),R8 - MOVQ SI,R9 - CMOVQEQ DX,SI - CMOVQEQ R9,DX - MOVQ CX,R9 - CMOVQEQ R8,CX - CMOVQEQ R9,R8 - MOVQ SI,0(DI) - MOVQ DX,80(DI) - MOVQ CX,8(DI) - MOVQ R8,88(DI) - MOVQ 16(DI),SI - MOVQ 96(DI),DX - MOVQ 24(DI),CX - MOVQ 104(DI),R8 - MOVQ SI,R9 - CMOVQEQ DX,SI - CMOVQEQ R9,DX - MOVQ CX,R9 - CMOVQEQ R8,CX - CMOVQEQ R9,R8 - MOVQ SI,16(DI) - MOVQ DX,96(DI) - MOVQ CX,24(DI) - MOVQ R8,104(DI) - MOVQ 32(DI),SI - MOVQ 112(DI),DX - MOVQ 40(DI),CX - MOVQ 120(DI),R8 - MOVQ SI,R9 - CMOVQEQ DX,SI - CMOVQEQ R9,DX - MOVQ CX,R9 - CMOVQEQ R8,CX - CMOVQEQ R9,R8 - MOVQ SI,32(DI) - MOVQ DX,112(DI) - MOVQ CX,40(DI) - MOVQ R8,120(DI) - MOVQ 48(DI),SI - MOVQ 128(DI),DX - MOVQ 56(DI),CX - MOVQ 136(DI),R8 - MOVQ SI,R9 - CMOVQEQ DX,SI - CMOVQEQ R9,DX - MOVQ CX,R9 - CMOVQEQ R8,CX - CMOVQEQ R9,R8 - MOVQ SI,48(DI) - MOVQ DX,128(DI) - MOVQ CX,56(DI) - MOVQ R8,136(DI) - MOVQ 64(DI),SI - MOVQ 144(DI),DX - MOVQ 72(DI),CX - MOVQ 152(DI),R8 - MOVQ SI,R9 - CMOVQEQ DX,SI - CMOVQEQ R9,DX - MOVQ CX,R9 - CMOVQEQ R8,CX - CMOVQEQ R9,R8 - MOVQ SI,64(DI) - MOVQ DX,144(DI) - MOVQ CX,72(DI) - MOVQ R8,152(DI) - MOVQ DI,AX - MOVQ SI,DX - RET diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/curve25519.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/curve25519.go deleted file mode 100644 index 6918c47f..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/curve25519.go +++ /dev/null @@ -1,841 +0,0 @@ -// 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. - -// We have a implementation in amd64 assembly so this code is only run on -// non-amd64 platforms. The amd64 assembly does not support gccgo. -// +build !amd64 gccgo appengine - -package curve25519 - -// This code is a port of the public domain, "ref10" implementation of -// curve25519 from SUPERCOP 20130419 by D. J. Bernstein. - -// fieldElement represents an element of the field GF(2^255 - 19). An element -// t, entries t[0]...t[9], represents the integer t[0]+2^26 t[1]+2^51 t[2]+2^77 -// t[3]+2^102 t[4]+...+2^230 t[9]. Bounds on each t[i] vary depending on -// context. -type fieldElement [10]int32 - -func feZero(fe *fieldElement) { - for i := range fe { - fe[i] = 0 - } -} - -func feOne(fe *fieldElement) { - feZero(fe) - fe[0] = 1 -} - -func feAdd(dst, a, b *fieldElement) { - for i := range dst { - dst[i] = a[i] + b[i] - } -} - -func feSub(dst, a, b *fieldElement) { - for i := range dst { - dst[i] = a[i] - b[i] - } -} - -func feCopy(dst, src *fieldElement) { - for i := range dst { - dst[i] = src[i] - } -} - -// feCSwap replaces (f,g) with (g,f) if b == 1; replaces (f,g) with (f,g) if b == 0. -// -// Preconditions: b in {0,1}. -func feCSwap(f, g *fieldElement, b int32) { - var x fieldElement - b = -b - for i := range x { - x[i] = b & (f[i] ^ g[i]) - } - - for i := range f { - f[i] ^= x[i] - } - for i := range g { - g[i] ^= x[i] - } -} - -// load3 reads a 24-bit, little-endian value from in. -func load3(in []byte) int64 { - var r int64 - r = int64(in[0]) - r |= int64(in[1]) << 8 - r |= int64(in[2]) << 16 - return r -} - -// load4 reads a 32-bit, little-endian value from in. -func load4(in []byte) int64 { - var r int64 - r = int64(in[0]) - r |= int64(in[1]) << 8 - r |= int64(in[2]) << 16 - r |= int64(in[3]) << 24 - return r -} - -func feFromBytes(dst *fieldElement, src *[32]byte) { - h0 := load4(src[:]) - h1 := load3(src[4:]) << 6 - h2 := load3(src[7:]) << 5 - h3 := load3(src[10:]) << 3 - h4 := load3(src[13:]) << 2 - h5 := load4(src[16:]) - h6 := load3(src[20:]) << 7 - h7 := load3(src[23:]) << 5 - h8 := load3(src[26:]) << 4 - h9 := load3(src[29:]) << 2 - - var carry [10]int64 - carry[9] = (h9 + 1<<24) >> 25 - h0 += carry[9] * 19 - h9 -= carry[9] << 25 - carry[1] = (h1 + 1<<24) >> 25 - h2 += carry[1] - h1 -= carry[1] << 25 - carry[3] = (h3 + 1<<24) >> 25 - h4 += carry[3] - h3 -= carry[3] << 25 - carry[5] = (h5 + 1<<24) >> 25 - h6 += carry[5] - h5 -= carry[5] << 25 - carry[7] = (h7 + 1<<24) >> 25 - h8 += carry[7] - h7 -= carry[7] << 25 - - carry[0] = (h0 + 1<<25) >> 26 - h1 += carry[0] - h0 -= carry[0] << 26 - carry[2] = (h2 + 1<<25) >> 26 - h3 += carry[2] - h2 -= carry[2] << 26 - carry[4] = (h4 + 1<<25) >> 26 - h5 += carry[4] - h4 -= carry[4] << 26 - carry[6] = (h6 + 1<<25) >> 26 - h7 += carry[6] - h6 -= carry[6] << 26 - carry[8] = (h8 + 1<<25) >> 26 - h9 += carry[8] - h8 -= carry[8] << 26 - - dst[0] = int32(h0) - dst[1] = int32(h1) - dst[2] = int32(h2) - dst[3] = int32(h3) - dst[4] = int32(h4) - dst[5] = int32(h5) - dst[6] = int32(h6) - dst[7] = int32(h7) - dst[8] = int32(h8) - dst[9] = int32(h9) -} - -// feToBytes marshals h to s. -// Preconditions: -// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -// -// Write p=2^255-19; q=floor(h/p). -// Basic claim: q = floor(2^(-255)(h + 19 2^(-25)h9 + 2^(-1))). -// -// Proof: -// Have |h|<=p so |q|<=1 so |19^2 2^(-255) q|<1/4. -// Also have |h-2^230 h9|<2^230 so |19 2^(-255)(h-2^230 h9)|<1/4. -// -// Write y=2^(-1)-19^2 2^(-255)q-19 2^(-255)(h-2^230 h9). -// Then 0<y<1. -// -// Write r=h-pq. -// Have 0<=r<=p-1=2^255-20. -// Thus 0<=r+19(2^-255)r<r+19(2^-255)2^255<=2^255-1. -// -// Write x=r+19(2^-255)r+y. -// Then 0<x<2^255 so floor(2^(-255)x) = 0 so floor(q+2^(-255)x) = q. -// -// Have q+2^(-255)x = 2^(-255)(h + 19 2^(-25) h9 + 2^(-1)) -// so floor(2^(-255)(h + 19 2^(-25) h9 + 2^(-1))) = q. -func feToBytes(s *[32]byte, h *fieldElement) { - var carry [10]int32 - - q := (19*h[9] + (1 << 24)) >> 25 - q = (h[0] + q) >> 26 - q = (h[1] + q) >> 25 - q = (h[2] + q) >> 26 - q = (h[3] + q) >> 25 - q = (h[4] + q) >> 26 - q = (h[5] + q) >> 25 - q = (h[6] + q) >> 26 - q = (h[7] + q) >> 25 - q = (h[8] + q) >> 26 - q = (h[9] + q) >> 25 - - // Goal: Output h-(2^255-19)q, which is between 0 and 2^255-20. - h[0] += 19 * q - // Goal: Output h-2^255 q, which is between 0 and 2^255-20. - - carry[0] = h[0] >> 26 - h[1] += carry[0] - h[0] -= carry[0] << 26 - carry[1] = h[1] >> 25 - h[2] += carry[1] - h[1] -= carry[1] << 25 - carry[2] = h[2] >> 26 - h[3] += carry[2] - h[2] -= carry[2] << 26 - carry[3] = h[3] >> 25 - h[4] += carry[3] - h[3] -= carry[3] << 25 - carry[4] = h[4] >> 26 - h[5] += carry[4] - h[4] -= carry[4] << 26 - carry[5] = h[5] >> 25 - h[6] += carry[5] - h[5] -= carry[5] << 25 - carry[6] = h[6] >> 26 - h[7] += carry[6] - h[6] -= carry[6] << 26 - carry[7] = h[7] >> 25 - h[8] += carry[7] - h[7] -= carry[7] << 25 - carry[8] = h[8] >> 26 - h[9] += carry[8] - h[8] -= carry[8] << 26 - carry[9] = h[9] >> 25 - h[9] -= carry[9] << 25 - // h10 = carry9 - - // Goal: Output h[0]+...+2^255 h10-2^255 q, which is between 0 and 2^255-20. - // Have h[0]+...+2^230 h[9] between 0 and 2^255-1; - // evidently 2^255 h10-2^255 q = 0. - // Goal: Output h[0]+...+2^230 h[9]. - - s[0] = byte(h[0] >> 0) - s[1] = byte(h[0] >> 8) - s[2] = byte(h[0] >> 16) - s[3] = byte((h[0] >> 24) | (h[1] << 2)) - s[4] = byte(h[1] >> 6) - s[5] = byte(h[1] >> 14) - s[6] = byte((h[1] >> 22) | (h[2] << 3)) - s[7] = byte(h[2] >> 5) - s[8] = byte(h[2] >> 13) - s[9] = byte((h[2] >> 21) | (h[3] << 5)) - s[10] = byte(h[3] >> 3) - s[11] = byte(h[3] >> 11) - s[12] = byte((h[3] >> 19) | (h[4] << 6)) - s[13] = byte(h[4] >> 2) - s[14] = byte(h[4] >> 10) - s[15] = byte(h[4] >> 18) - s[16] = byte(h[5] >> 0) - s[17] = byte(h[5] >> 8) - s[18] = byte(h[5] >> 16) - s[19] = byte((h[5] >> 24) | (h[6] << 1)) - s[20] = byte(h[6] >> 7) - s[21] = byte(h[6] >> 15) - s[22] = byte((h[6] >> 23) | (h[7] << 3)) - s[23] = byte(h[7] >> 5) - s[24] = byte(h[7] >> 13) - s[25] = byte((h[7] >> 21) | (h[8] << 4)) - s[26] = byte(h[8] >> 4) - s[27] = byte(h[8] >> 12) - s[28] = byte((h[8] >> 20) | (h[9] << 6)) - s[29] = byte(h[9] >> 2) - s[30] = byte(h[9] >> 10) - s[31] = byte(h[9] >> 18) -} - -// feMul calculates h = f * g -// Can overlap h with f or g. -// -// Preconditions: -// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -// |g| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -// -// Postconditions: -// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -// -// Notes on implementation strategy: -// -// Using schoolbook multiplication. -// Karatsuba would save a little in some cost models. -// -// Most multiplications by 2 and 19 are 32-bit precomputations; -// cheaper than 64-bit postcomputations. -// -// There is one remaining multiplication by 19 in the carry chain; -// one *19 precomputation can be merged into this, -// but the resulting data flow is considerably less clean. -// -// There are 12 carries below. -// 10 of them are 2-way parallelizable and vectorizable. -// Can get away with 11 carries, but then data flow is much deeper. -// -// With tighter constraints on inputs can squeeze carries into int32. -func feMul(h, f, g *fieldElement) { - f0 := f[0] - f1 := f[1] - f2 := f[2] - f3 := f[3] - f4 := f[4] - f5 := f[5] - f6 := f[6] - f7 := f[7] - f8 := f[8] - f9 := f[9] - g0 := g[0] - g1 := g[1] - g2 := g[2] - g3 := g[3] - g4 := g[4] - g5 := g[5] - g6 := g[6] - g7 := g[7] - g8 := g[8] - g9 := g[9] - g1_19 := 19 * g1 // 1.4*2^29 - g2_19 := 19 * g2 // 1.4*2^30; still ok - g3_19 := 19 * g3 - g4_19 := 19 * g4 - g5_19 := 19 * g5 - g6_19 := 19 * g6 - g7_19 := 19 * g7 - g8_19 := 19 * g8 - g9_19 := 19 * g9 - f1_2 := 2 * f1 - f3_2 := 2 * f3 - f5_2 := 2 * f5 - f7_2 := 2 * f7 - f9_2 := 2 * f9 - f0g0 := int64(f0) * int64(g0) - f0g1 := int64(f0) * int64(g1) - f0g2 := int64(f0) * int64(g2) - f0g3 := int64(f0) * int64(g3) - f0g4 := int64(f0) * int64(g4) - f0g5 := int64(f0) * int64(g5) - f0g6 := int64(f0) * int64(g6) - f0g7 := int64(f0) * int64(g7) - f0g8 := int64(f0) * int64(g8) - f0g9 := int64(f0) * int64(g9) - f1g0 := int64(f1) * int64(g0) - f1g1_2 := int64(f1_2) * int64(g1) - f1g2 := int64(f1) * int64(g2) - f1g3_2 := int64(f1_2) * int64(g3) - f1g4 := int64(f1) * int64(g4) - f1g5_2 := int64(f1_2) * int64(g5) - f1g6 := int64(f1) * int64(g6) - f1g7_2 := int64(f1_2) * int64(g7) - f1g8 := int64(f1) * int64(g8) - f1g9_38 := int64(f1_2) * int64(g9_19) - f2g0 := int64(f2) * int64(g0) - f2g1 := int64(f2) * int64(g1) - f2g2 := int64(f2) * int64(g2) - f2g3 := int64(f2) * int64(g3) - f2g4 := int64(f2) * int64(g4) - f2g5 := int64(f2) * int64(g5) - f2g6 := int64(f2) * int64(g6) - f2g7 := int64(f2) * int64(g7) - f2g8_19 := int64(f2) * int64(g8_19) - f2g9_19 := int64(f2) * int64(g9_19) - f3g0 := int64(f3) * int64(g0) - f3g1_2 := int64(f3_2) * int64(g1) - f3g2 := int64(f3) * int64(g2) - f3g3_2 := int64(f3_2) * int64(g3) - f3g4 := int64(f3) * int64(g4) - f3g5_2 := int64(f3_2) * int64(g5) - f3g6 := int64(f3) * int64(g6) - f3g7_38 := int64(f3_2) * int64(g7_19) - f3g8_19 := int64(f3) * int64(g8_19) - f3g9_38 := int64(f3_2) * int64(g9_19) - f4g0 := int64(f4) * int64(g0) - f4g1 := int64(f4) * int64(g1) - f4g2 := int64(f4) * int64(g2) - f4g3 := int64(f4) * int64(g3) - f4g4 := int64(f4) * int64(g4) - f4g5 := int64(f4) * int64(g5) - f4g6_19 := int64(f4) * int64(g6_19) - f4g7_19 := int64(f4) * int64(g7_19) - f4g8_19 := int64(f4) * int64(g8_19) - f4g9_19 := int64(f4) * int64(g9_19) - f5g0 := int64(f5) * int64(g0) - f5g1_2 := int64(f5_2) * int64(g1) - f5g2 := int64(f5) * int64(g2) - f5g3_2 := int64(f5_2) * int64(g3) - f5g4 := int64(f5) * int64(g4) - f5g5_38 := int64(f5_2) * int64(g5_19) - f5g6_19 := int64(f5) * int64(g6_19) - f5g7_38 := int64(f5_2) * int64(g7_19) - f5g8_19 := int64(f5) * int64(g8_19) - f5g9_38 := int64(f5_2) * int64(g9_19) - f6g0 := int64(f6) * int64(g0) - f6g1 := int64(f6) * int64(g1) - f6g2 := int64(f6) * int64(g2) - f6g3 := int64(f6) * int64(g3) - f6g4_19 := int64(f6) * int64(g4_19) - f6g5_19 := int64(f6) * int64(g5_19) - f6g6_19 := int64(f6) * int64(g6_19) - f6g7_19 := int64(f6) * int64(g7_19) - f6g8_19 := int64(f6) * int64(g8_19) - f6g9_19 := int64(f6) * int64(g9_19) - f7g0 := int64(f7) * int64(g0) - f7g1_2 := int64(f7_2) * int64(g1) - f7g2 := int64(f7) * int64(g2) - f7g3_38 := int64(f7_2) * int64(g3_19) - f7g4_19 := int64(f7) * int64(g4_19) - f7g5_38 := int64(f7_2) * int64(g5_19) - f7g6_19 := int64(f7) * int64(g6_19) - f7g7_38 := int64(f7_2) * int64(g7_19) - f7g8_19 := int64(f7) * int64(g8_19) - f7g9_38 := int64(f7_2) * int64(g9_19) - f8g0 := int64(f8) * int64(g0) - f8g1 := int64(f8) * int64(g1) - f8g2_19 := int64(f8) * int64(g2_19) - f8g3_19 := int64(f8) * int64(g3_19) - f8g4_19 := int64(f8) * int64(g4_19) - f8g5_19 := int64(f8) * int64(g5_19) - f8g6_19 := int64(f8) * int64(g6_19) - f8g7_19 := int64(f8) * int64(g7_19) - f8g8_19 := int64(f8) * int64(g8_19) - f8g9_19 := int64(f8) * int64(g9_19) - f9g0 := int64(f9) * int64(g0) - f9g1_38 := int64(f9_2) * int64(g1_19) - f9g2_19 := int64(f9) * int64(g2_19) - f9g3_38 := int64(f9_2) * int64(g3_19) - f9g4_19 := int64(f9) * int64(g4_19) - f9g5_38 := int64(f9_2) * int64(g5_19) - f9g6_19 := int64(f9) * int64(g6_19) - f9g7_38 := int64(f9_2) * int64(g7_19) - f9g8_19 := int64(f9) * int64(g8_19) - f9g9_38 := int64(f9_2) * int64(g9_19) - h0 := f0g0 + f1g9_38 + f2g8_19 + f3g7_38 + f4g6_19 + f5g5_38 + f6g4_19 + f7g3_38 + f8g2_19 + f9g1_38 - h1 := f0g1 + f1g0 + f2g9_19 + f3g8_19 + f4g7_19 + f5g6_19 + f6g5_19 + f7g4_19 + f8g3_19 + f9g2_19 - h2 := f0g2 + f1g1_2 + f2g0 + f3g9_38 + f4g8_19 + f5g7_38 + f6g6_19 + f7g5_38 + f8g4_19 + f9g3_38 - h3 := f0g3 + f1g2 + f2g1 + f3g0 + f4g9_19 + f5g8_19 + f6g7_19 + f7g6_19 + f8g5_19 + f9g4_19 - h4 := f0g4 + f1g3_2 + f2g2 + f3g1_2 + f4g0 + f5g9_38 + f6g8_19 + f7g7_38 + f8g6_19 + f9g5_38 - h5 := f0g5 + f1g4 + f2g3 + f3g2 + f4g1 + f5g0 + f6g9_19 + f7g8_19 + f8g7_19 + f9g6_19 - h6 := f0g6 + f1g5_2 + f2g4 + f3g3_2 + f4g2 + f5g1_2 + f6g0 + f7g9_38 + f8g8_19 + f9g7_38 - h7 := f0g7 + f1g6 + f2g5 + f3g4 + f4g3 + f5g2 + f6g1 + f7g0 + f8g9_19 + f9g8_19 - h8 := f0g8 + f1g7_2 + f2g6 + f3g5_2 + f4g4 + f5g3_2 + f6g2 + f7g1_2 + f8g0 + f9g9_38 - h9 := f0g9 + f1g8 + f2g7 + f3g6 + f4g5 + f5g4 + f6g3 + f7g2 + f8g1 + f9g0 - var carry [10]int64 - - // |h0| <= (1.1*1.1*2^52*(1+19+19+19+19)+1.1*1.1*2^50*(38+38+38+38+38)) - // i.e. |h0| <= 1.2*2^59; narrower ranges for h2, h4, h6, h8 - // |h1| <= (1.1*1.1*2^51*(1+1+19+19+19+19+19+19+19+19)) - // i.e. |h1| <= 1.5*2^58; narrower ranges for h3, h5, h7, h9 - - carry[0] = (h0 + (1 << 25)) >> 26 - h1 += carry[0] - h0 -= carry[0] << 26 - carry[4] = (h4 + (1 << 25)) >> 26 - h5 += carry[4] - h4 -= carry[4] << 26 - // |h0| <= 2^25 - // |h4| <= 2^25 - // |h1| <= 1.51*2^58 - // |h5| <= 1.51*2^58 - - carry[1] = (h1 + (1 << 24)) >> 25 - h2 += carry[1] - h1 -= carry[1] << 25 - carry[5] = (h5 + (1 << 24)) >> 25 - h6 += carry[5] - h5 -= carry[5] << 25 - // |h1| <= 2^24; from now on fits into int32 - // |h5| <= 2^24; from now on fits into int32 - // |h2| <= 1.21*2^59 - // |h6| <= 1.21*2^59 - - carry[2] = (h2 + (1 << 25)) >> 26 - h3 += carry[2] - h2 -= carry[2] << 26 - carry[6] = (h6 + (1 << 25)) >> 26 - h7 += carry[6] - h6 -= carry[6] << 26 - // |h2| <= 2^25; from now on fits into int32 unchanged - // |h6| <= 2^25; from now on fits into int32 unchanged - // |h3| <= 1.51*2^58 - // |h7| <= 1.51*2^58 - - carry[3] = (h3 + (1 << 24)) >> 25 - h4 += carry[3] - h3 -= carry[3] << 25 - carry[7] = (h7 + (1 << 24)) >> 25 - h8 += carry[7] - h7 -= carry[7] << 25 - // |h3| <= 2^24; from now on fits into int32 unchanged - // |h7| <= 2^24; from now on fits into int32 unchanged - // |h4| <= 1.52*2^33 - // |h8| <= 1.52*2^33 - - carry[4] = (h4 + (1 << 25)) >> 26 - h5 += carry[4] - h4 -= carry[4] << 26 - carry[8] = (h8 + (1 << 25)) >> 26 - h9 += carry[8] - h8 -= carry[8] << 26 - // |h4| <= 2^25; from now on fits into int32 unchanged - // |h8| <= 2^25; from now on fits into int32 unchanged - // |h5| <= 1.01*2^24 - // |h9| <= 1.51*2^58 - - carry[9] = (h9 + (1 << 24)) >> 25 - h0 += carry[9] * 19 - h9 -= carry[9] << 25 - // |h9| <= 2^24; from now on fits into int32 unchanged - // |h0| <= 1.8*2^37 - - carry[0] = (h0 + (1 << 25)) >> 26 - h1 += carry[0] - h0 -= carry[0] << 26 - // |h0| <= 2^25; from now on fits into int32 unchanged - // |h1| <= 1.01*2^24 - - h[0] = int32(h0) - h[1] = int32(h1) - h[2] = int32(h2) - h[3] = int32(h3) - h[4] = int32(h4) - h[5] = int32(h5) - h[6] = int32(h6) - h[7] = int32(h7) - h[8] = int32(h8) - h[9] = int32(h9) -} - -// feSquare calculates h = f*f. Can overlap h with f. -// -// Preconditions: -// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -// -// Postconditions: -// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -func feSquare(h, f *fieldElement) { - f0 := f[0] - f1 := f[1] - f2 := f[2] - f3 := f[3] - f4 := f[4] - f5 := f[5] - f6 := f[6] - f7 := f[7] - f8 := f[8] - f9 := f[9] - f0_2 := 2 * f0 - f1_2 := 2 * f1 - f2_2 := 2 * f2 - f3_2 := 2 * f3 - f4_2 := 2 * f4 - f5_2 := 2 * f5 - f6_2 := 2 * f6 - f7_2 := 2 * f7 - f5_38 := 38 * f5 // 1.31*2^30 - f6_19 := 19 * f6 // 1.31*2^30 - f7_38 := 38 * f7 // 1.31*2^30 - f8_19 := 19 * f8 // 1.31*2^30 - f9_38 := 38 * f9 // 1.31*2^30 - f0f0 := int64(f0) * int64(f0) - f0f1_2 := int64(f0_2) * int64(f1) - f0f2_2 := int64(f0_2) * int64(f2) - f0f3_2 := int64(f0_2) * int64(f3) - f0f4_2 := int64(f0_2) * int64(f4) - f0f5_2 := int64(f0_2) * int64(f5) - f0f6_2 := int64(f0_2) * int64(f6) - f0f7_2 := int64(f0_2) * int64(f7) - f0f8_2 := int64(f0_2) * int64(f8) - f0f9_2 := int64(f0_2) * int64(f9) - f1f1_2 := int64(f1_2) * int64(f1) - f1f2_2 := int64(f1_2) * int64(f2) - f1f3_4 := int64(f1_2) * int64(f3_2) - f1f4_2 := int64(f1_2) * int64(f4) - f1f5_4 := int64(f1_2) * int64(f5_2) - f1f6_2 := int64(f1_2) * int64(f6) - f1f7_4 := int64(f1_2) * int64(f7_2) - f1f8_2 := int64(f1_2) * int64(f8) - f1f9_76 := int64(f1_2) * int64(f9_38) - f2f2 := int64(f2) * int64(f2) - f2f3_2 := int64(f2_2) * int64(f3) - f2f4_2 := int64(f2_2) * int64(f4) - f2f5_2 := int64(f2_2) * int64(f5) - f2f6_2 := int64(f2_2) * int64(f6) - f2f7_2 := int64(f2_2) * int64(f7) - f2f8_38 := int64(f2_2) * int64(f8_19) - f2f9_38 := int64(f2) * int64(f9_38) - f3f3_2 := int64(f3_2) * int64(f3) - f3f4_2 := int64(f3_2) * int64(f4) - f3f5_4 := int64(f3_2) * int64(f5_2) - f3f6_2 := int64(f3_2) * int64(f6) - f3f7_76 := int64(f3_2) * int64(f7_38) - f3f8_38 := int64(f3_2) * int64(f8_19) - f3f9_76 := int64(f3_2) * int64(f9_38) - f4f4 := int64(f4) * int64(f4) - f4f5_2 := int64(f4_2) * int64(f5) - f4f6_38 := int64(f4_2) * int64(f6_19) - f4f7_38 := int64(f4) * int64(f7_38) - f4f8_38 := int64(f4_2) * int64(f8_19) - f4f9_38 := int64(f4) * int64(f9_38) - f5f5_38 := int64(f5) * int64(f5_38) - f5f6_38 := int64(f5_2) * int64(f6_19) - f5f7_76 := int64(f5_2) * int64(f7_38) - f5f8_38 := int64(f5_2) * int64(f8_19) - f5f9_76 := int64(f5_2) * int64(f9_38) - f6f6_19 := int64(f6) * int64(f6_19) - f6f7_38 := int64(f6) * int64(f7_38) - f6f8_38 := int64(f6_2) * int64(f8_19) - f6f9_38 := int64(f6) * int64(f9_38) - f7f7_38 := int64(f7) * int64(f7_38) - f7f8_38 := int64(f7_2) * int64(f8_19) - f7f9_76 := int64(f7_2) * int64(f9_38) - f8f8_19 := int64(f8) * int64(f8_19) - f8f9_38 := int64(f8) * int64(f9_38) - f9f9_38 := int64(f9) * int64(f9_38) - h0 := f0f0 + f1f9_76 + f2f8_38 + f3f7_76 + f4f6_38 + f5f5_38 - h1 := f0f1_2 + f2f9_38 + f3f8_38 + f4f7_38 + f5f6_38 - h2 := f0f2_2 + f1f1_2 + f3f9_76 + f4f8_38 + f5f7_76 + f6f6_19 - h3 := f0f3_2 + f1f2_2 + f4f9_38 + f5f8_38 + f6f7_38 - h4 := f0f4_2 + f1f3_4 + f2f2 + f5f9_76 + f6f8_38 + f7f7_38 - h5 := f0f5_2 + f1f4_2 + f2f3_2 + f6f9_38 + f7f8_38 - h6 := f0f6_2 + f1f5_4 + f2f4_2 + f3f3_2 + f7f9_76 + f8f8_19 - h7 := f0f7_2 + f1f6_2 + f2f5_2 + f3f4_2 + f8f9_38 - h8 := f0f8_2 + f1f7_4 + f2f6_2 + f3f5_4 + f4f4 + f9f9_38 - h9 := f0f9_2 + f1f8_2 + f2f7_2 + f3f6_2 + f4f5_2 - var carry [10]int64 - - carry[0] = (h0 + (1 << 25)) >> 26 - h1 += carry[0] - h0 -= carry[0] << 26 - carry[4] = (h4 + (1 << 25)) >> 26 - h5 += carry[4] - h4 -= carry[4] << 26 - - carry[1] = (h1 + (1 << 24)) >> 25 - h2 += carry[1] - h1 -= carry[1] << 25 - carry[5] = (h5 + (1 << 24)) >> 25 - h6 += carry[5] - h5 -= carry[5] << 25 - - carry[2] = (h2 + (1 << 25)) >> 26 - h3 += carry[2] - h2 -= carry[2] << 26 - carry[6] = (h6 + (1 << 25)) >> 26 - h7 += carry[6] - h6 -= carry[6] << 26 - - carry[3] = (h3 + (1 << 24)) >> 25 - h4 += carry[3] - h3 -= carry[3] << 25 - carry[7] = (h7 + (1 << 24)) >> 25 - h8 += carry[7] - h7 -= carry[7] << 25 - - carry[4] = (h4 + (1 << 25)) >> 26 - h5 += carry[4] - h4 -= carry[4] << 26 - carry[8] = (h8 + (1 << 25)) >> 26 - h9 += carry[8] - h8 -= carry[8] << 26 - - carry[9] = (h9 + (1 << 24)) >> 25 - h0 += carry[9] * 19 - h9 -= carry[9] << 25 - - carry[0] = (h0 + (1 << 25)) >> 26 - h1 += carry[0] - h0 -= carry[0] << 26 - - h[0] = int32(h0) - h[1] = int32(h1) - h[2] = int32(h2) - h[3] = int32(h3) - h[4] = int32(h4) - h[5] = int32(h5) - h[6] = int32(h6) - h[7] = int32(h7) - h[8] = int32(h8) - h[9] = int32(h9) -} - -// feMul121666 calculates h = f * 121666. Can overlap h with f. -// -// Preconditions: -// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -// -// Postconditions: -// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -func feMul121666(h, f *fieldElement) { - h0 := int64(f[0]) * 121666 - h1 := int64(f[1]) * 121666 - h2 := int64(f[2]) * 121666 - h3 := int64(f[3]) * 121666 - h4 := int64(f[4]) * 121666 - h5 := int64(f[5]) * 121666 - h6 := int64(f[6]) * 121666 - h7 := int64(f[7]) * 121666 - h8 := int64(f[8]) * 121666 - h9 := int64(f[9]) * 121666 - var carry [10]int64 - - carry[9] = (h9 + (1 << 24)) >> 25 - h0 += carry[9] * 19 - h9 -= carry[9] << 25 - carry[1] = (h1 + (1 << 24)) >> 25 - h2 += carry[1] - h1 -= carry[1] << 25 - carry[3] = (h3 + (1 << 24)) >> 25 - h4 += carry[3] - h3 -= carry[3] << 25 - carry[5] = (h5 + (1 << 24)) >> 25 - h6 += carry[5] - h5 -= carry[5] << 25 - carry[7] = (h7 + (1 << 24)) >> 25 - h8 += carry[7] - h7 -= carry[7] << 25 - - carry[0] = (h0 + (1 << 25)) >> 26 - h1 += carry[0] - h0 -= carry[0] << 26 - carry[2] = (h2 + (1 << 25)) >> 26 - h3 += carry[2] - h2 -= carry[2] << 26 - carry[4] = (h4 + (1 << 25)) >> 26 - h5 += carry[4] - h4 -= carry[4] << 26 - carry[6] = (h6 + (1 << 25)) >> 26 - h7 += carry[6] - h6 -= carry[6] << 26 - carry[8] = (h8 + (1 << 25)) >> 26 - h9 += carry[8] - h8 -= carry[8] << 26 - - h[0] = int32(h0) - h[1] = int32(h1) - h[2] = int32(h2) - h[3] = int32(h3) - h[4] = int32(h4) - h[5] = int32(h5) - h[6] = int32(h6) - h[7] = int32(h7) - h[8] = int32(h8) - h[9] = int32(h9) -} - -// feInvert sets out = z^-1. -func feInvert(out, z *fieldElement) { - var t0, t1, t2, t3 fieldElement - var i int - - feSquare(&t0, z) - for i = 1; i < 1; i++ { - feSquare(&t0, &t0) - } - feSquare(&t1, &t0) - for i = 1; i < 2; i++ { - feSquare(&t1, &t1) - } - feMul(&t1, z, &t1) - feMul(&t0, &t0, &t1) - feSquare(&t2, &t0) - for i = 1; i < 1; i++ { - feSquare(&t2, &t2) - } - feMul(&t1, &t1, &t2) - feSquare(&t2, &t1) - for i = 1; i < 5; i++ { - feSquare(&t2, &t2) - } - feMul(&t1, &t2, &t1) - feSquare(&t2, &t1) - for i = 1; i < 10; i++ { - feSquare(&t2, &t2) - } - feMul(&t2, &t2, &t1) - feSquare(&t3, &t2) - for i = 1; i < 20; i++ { - feSquare(&t3, &t3) - } - feMul(&t2, &t3, &t2) - feSquare(&t2, &t2) - for i = 1; i < 10; i++ { - feSquare(&t2, &t2) - } - feMul(&t1, &t2, &t1) - feSquare(&t2, &t1) - for i = 1; i < 50; i++ { - feSquare(&t2, &t2) - } - feMul(&t2, &t2, &t1) - feSquare(&t3, &t2) - for i = 1; i < 100; i++ { - feSquare(&t3, &t3) - } - feMul(&t2, &t3, &t2) - feSquare(&t2, &t2) - for i = 1; i < 50; i++ { - feSquare(&t2, &t2) - } - feMul(&t1, &t2, &t1) - feSquare(&t1, &t1) - for i = 1; i < 5; i++ { - feSquare(&t1, &t1) - } - feMul(out, &t1, &t0) -} - -func scalarMult(out, in, base *[32]byte) { - var e [32]byte - - copy(e[:], in[:]) - e[0] &= 248 - e[31] &= 127 - e[31] |= 64 - - var x1, x2, z2, x3, z3, tmp0, tmp1 fieldElement - feFromBytes(&x1, base) - feOne(&x2) - feCopy(&x3, &x1) - feOne(&z3) - - swap := int32(0) - for pos := 254; pos >= 0; pos-- { - b := e[pos/8] >> uint(pos&7) - b &= 1 - swap ^= int32(b) - feCSwap(&x2, &x3, swap) - feCSwap(&z2, &z3, swap) - swap = int32(b) - - feSub(&tmp0, &x3, &z3) - feSub(&tmp1, &x2, &z2) - feAdd(&x2, &x2, &z2) - feAdd(&z2, &x3, &z3) - feMul(&z3, &tmp0, &x2) - feMul(&z2, &z2, &tmp1) - feSquare(&tmp0, &tmp1) - feSquare(&tmp1, &x2) - feAdd(&x3, &z3, &z2) - feSub(&z2, &z3, &z2) - feMul(&x2, &tmp1, &tmp0) - feSub(&tmp1, &tmp1, &tmp0) - feSquare(&z2, &z2) - feMul121666(&z3, &tmp1) - feSquare(&x3, &x3) - feAdd(&tmp0, &tmp0, &z3) - feMul(&z3, &x1, &z2) - feMul(&z2, &tmp1, &tmp0) - } - - feCSwap(&x2, &x3, swap) - feCSwap(&z2, &z3, swap) - - feInvert(&z2, &z2) - feMul(&x2, &x2, &z2) - feToBytes(out, &x2) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/curve25519_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/curve25519_test.go deleted file mode 100644 index 14b0ee87..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/curve25519_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2012 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 curve25519 - -import ( - "fmt" - "testing" -) - -const expectedHex = "89161fde887b2b53de549af483940106ecc114d6982daa98256de23bdf77661a" - -func TestBaseScalarMult(t *testing.T) { - var a, b [32]byte - in := &a - out := &b - a[0] = 1 - - for i := 0; i < 200; i++ { - ScalarBaseMult(out, in) - in, out = out, in - } - - result := fmt.Sprintf("%x", in[:]) - if result != expectedHex { - t.Errorf("incorrect result: got %s, want %s", result, expectedHex) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/doc.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/doc.go deleted file mode 100644 index f7db9c1c..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/doc.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2012 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 curve25519 provides an implementation of scalar multiplication on -// the elliptic curve known as curve25519. See http://cr.yp.to/ecdh.html -package curve25519 - -// basePoint is the x coordinate of the generator of the curve. -var basePoint = [32]byte{9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} - -// ScalarMult sets dst to the product in*base where dst and base are the x -// coordinates of group points and all values are in little-endian form. -func ScalarMult(dst, in, base *[32]byte) { - scalarMult(dst, in, base) -} - -// ScalarBaseMult sets dst to the product in*base where dst and base are the x -// coordinates of group points, base is the standard generator and all values -// are in little-endian form. -func ScalarBaseMult(dst, in *[32]byte) { - ScalarMult(dst, in, &basePoint) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/freeze_amd64.s b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/freeze_amd64.s deleted file mode 100644 index 37599fac..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/freeze_amd64.s +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2012 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. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -// func freeze(inout *[5]uint64) -TEXT ·freeze(SB),7,$96-8 - MOVQ inout+0(FP), DI - - MOVQ SP,R11 - MOVQ $31,CX - NOTQ CX - ANDQ CX,SP - ADDQ $32,SP - - MOVQ R11,0(SP) - MOVQ R12,8(SP) - MOVQ R13,16(SP) - MOVQ R14,24(SP) - MOVQ R15,32(SP) - MOVQ BX,40(SP) - MOVQ BP,48(SP) - MOVQ 0(DI),SI - MOVQ 8(DI),DX - MOVQ 16(DI),CX - MOVQ 24(DI),R8 - MOVQ 32(DI),R9 - MOVQ ·REDMASK51(SB),AX - MOVQ AX,R10 - SUBQ $18,R10 - MOVQ $3,R11 -REDUCELOOP: - MOVQ SI,R12 - SHRQ $51,R12 - ANDQ AX,SI - ADDQ R12,DX - MOVQ DX,R12 - SHRQ $51,R12 - ANDQ AX,DX - ADDQ R12,CX - MOVQ CX,R12 - SHRQ $51,R12 - ANDQ AX,CX - ADDQ R12,R8 - MOVQ R8,R12 - SHRQ $51,R12 - ANDQ AX,R8 - ADDQ R12,R9 - MOVQ R9,R12 - SHRQ $51,R12 - ANDQ AX,R9 - IMUL3Q $19,R12,R12 - ADDQ R12,SI - SUBQ $1,R11 - JA REDUCELOOP - MOVQ $1,R12 - CMPQ R10,SI - CMOVQLT R11,R12 - CMPQ AX,DX - CMOVQNE R11,R12 - CMPQ AX,CX - CMOVQNE R11,R12 - CMPQ AX,R8 - CMOVQNE R11,R12 - CMPQ AX,R9 - CMOVQNE R11,R12 - NEGQ R12 - ANDQ R12,AX - ANDQ R12,R10 - SUBQ R10,SI - SUBQ AX,DX - SUBQ AX,CX - SUBQ AX,R8 - SUBQ AX,R9 - MOVQ SI,0(DI) - MOVQ DX,8(DI) - MOVQ CX,16(DI) - MOVQ R8,24(DI) - MOVQ R9,32(DI) - MOVQ 0(SP),R11 - MOVQ 8(SP),R12 - MOVQ 16(SP),R13 - MOVQ 24(SP),R14 - MOVQ 32(SP),R15 - MOVQ 40(SP),BX - MOVQ 48(SP),BP - MOVQ R11,SP - MOVQ DI,AX - MOVQ SI,DX - RET diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/ladderstep_amd64.s b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/ladderstep_amd64.s deleted file mode 100644 index 3949f9cf..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/ladderstep_amd64.s +++ /dev/null @@ -1,1398 +0,0 @@ -// Copyright 2012 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. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -// func ladderstep(inout *[5][5]uint64) -TEXT ·ladderstep(SB),0,$384-8 - MOVQ inout+0(FP),DI - - MOVQ SP,R11 - MOVQ $31,CX - NOTQ CX - ANDQ CX,SP - ADDQ $32,SP - - MOVQ R11,0(SP) - MOVQ R12,8(SP) - MOVQ R13,16(SP) - MOVQ R14,24(SP) - MOVQ R15,32(SP) - MOVQ BX,40(SP) - MOVQ BP,48(SP) - MOVQ 40(DI),SI - MOVQ 48(DI),DX - MOVQ 56(DI),CX - MOVQ 64(DI),R8 - MOVQ 72(DI),R9 - MOVQ SI,AX - MOVQ DX,R10 - MOVQ CX,R11 - MOVQ R8,R12 - MOVQ R9,R13 - ADDQ ·_2P0(SB),AX - ADDQ ·_2P1234(SB),R10 - ADDQ ·_2P1234(SB),R11 - ADDQ ·_2P1234(SB),R12 - ADDQ ·_2P1234(SB),R13 - ADDQ 80(DI),SI - ADDQ 88(DI),DX - ADDQ 96(DI),CX - ADDQ 104(DI),R8 - ADDQ 112(DI),R9 - SUBQ 80(DI),AX - SUBQ 88(DI),R10 - SUBQ 96(DI),R11 - SUBQ 104(DI),R12 - SUBQ 112(DI),R13 - MOVQ SI,56(SP) - MOVQ DX,64(SP) - MOVQ CX,72(SP) - MOVQ R8,80(SP) - MOVQ R9,88(SP) - MOVQ AX,96(SP) - MOVQ R10,104(SP) - MOVQ R11,112(SP) - MOVQ R12,120(SP) - MOVQ R13,128(SP) - MOVQ 96(SP),AX - MULQ 96(SP) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 96(SP),AX - SHLQ $1,AX - MULQ 104(SP) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 96(SP),AX - SHLQ $1,AX - MULQ 112(SP) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 96(SP),AX - SHLQ $1,AX - MULQ 120(SP) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 96(SP),AX - SHLQ $1,AX - MULQ 128(SP) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 104(SP),AX - MULQ 104(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 104(SP),AX - SHLQ $1,AX - MULQ 112(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 104(SP),AX - SHLQ $1,AX - MULQ 120(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 104(SP),DX - IMUL3Q $38,DX,AX - MULQ 128(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 112(SP),AX - MULQ 112(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 112(SP),DX - IMUL3Q $38,DX,AX - MULQ 120(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 112(SP),DX - IMUL3Q $38,DX,AX - MULQ 128(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 120(SP),DX - IMUL3Q $19,DX,AX - MULQ 120(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 120(SP),DX - IMUL3Q $38,DX,AX - MULQ 128(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 128(SP),DX - IMUL3Q $19,DX,AX - MULQ 128(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - ANDQ DX,SI - MOVQ CX,R8 - SHRQ $51,CX - ADDQ R10,CX - ANDQ DX,R8 - MOVQ CX,R9 - SHRQ $51,CX - ADDQ R12,CX - ANDQ DX,R9 - MOVQ CX,AX - SHRQ $51,CX - ADDQ R14,CX - ANDQ DX,AX - MOVQ CX,R10 - SHRQ $51,CX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,136(SP) - MOVQ R8,144(SP) - MOVQ R9,152(SP) - MOVQ AX,160(SP) - MOVQ R10,168(SP) - MOVQ 56(SP),AX - MULQ 56(SP) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 56(SP),AX - SHLQ $1,AX - MULQ 64(SP) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 56(SP),AX - SHLQ $1,AX - MULQ 72(SP) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 56(SP),AX - SHLQ $1,AX - MULQ 80(SP) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 56(SP),AX - SHLQ $1,AX - MULQ 88(SP) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 64(SP),AX - MULQ 64(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 64(SP),AX - SHLQ $1,AX - MULQ 72(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 64(SP),AX - SHLQ $1,AX - MULQ 80(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 64(SP),DX - IMUL3Q $38,DX,AX - MULQ 88(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 72(SP),AX - MULQ 72(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 72(SP),DX - IMUL3Q $38,DX,AX - MULQ 80(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 72(SP),DX - IMUL3Q $38,DX,AX - MULQ 88(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 80(SP),DX - IMUL3Q $19,DX,AX - MULQ 80(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 80(SP),DX - IMUL3Q $38,DX,AX - MULQ 88(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 88(SP),DX - IMUL3Q $19,DX,AX - MULQ 88(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - ANDQ DX,SI - MOVQ CX,R8 - SHRQ $51,CX - ADDQ R10,CX - ANDQ DX,R8 - MOVQ CX,R9 - SHRQ $51,CX - ADDQ R12,CX - ANDQ DX,R9 - MOVQ CX,AX - SHRQ $51,CX - ADDQ R14,CX - ANDQ DX,AX - MOVQ CX,R10 - SHRQ $51,CX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,176(SP) - MOVQ R8,184(SP) - MOVQ R9,192(SP) - MOVQ AX,200(SP) - MOVQ R10,208(SP) - MOVQ SI,SI - MOVQ R8,DX - MOVQ R9,CX - MOVQ AX,R8 - MOVQ R10,R9 - ADDQ ·_2P0(SB),SI - ADDQ ·_2P1234(SB),DX - ADDQ ·_2P1234(SB),CX - ADDQ ·_2P1234(SB),R8 - ADDQ ·_2P1234(SB),R9 - SUBQ 136(SP),SI - SUBQ 144(SP),DX - SUBQ 152(SP),CX - SUBQ 160(SP),R8 - SUBQ 168(SP),R9 - MOVQ SI,216(SP) - MOVQ DX,224(SP) - MOVQ CX,232(SP) - MOVQ R8,240(SP) - MOVQ R9,248(SP) - MOVQ 120(DI),SI - MOVQ 128(DI),DX - MOVQ 136(DI),CX - MOVQ 144(DI),R8 - MOVQ 152(DI),R9 - MOVQ SI,AX - MOVQ DX,R10 - MOVQ CX,R11 - MOVQ R8,R12 - MOVQ R9,R13 - ADDQ ·_2P0(SB),AX - ADDQ ·_2P1234(SB),R10 - ADDQ ·_2P1234(SB),R11 - ADDQ ·_2P1234(SB),R12 - ADDQ ·_2P1234(SB),R13 - ADDQ 160(DI),SI - ADDQ 168(DI),DX - ADDQ 176(DI),CX - ADDQ 184(DI),R8 - ADDQ 192(DI),R9 - SUBQ 160(DI),AX - SUBQ 168(DI),R10 - SUBQ 176(DI),R11 - SUBQ 184(DI),R12 - SUBQ 192(DI),R13 - MOVQ SI,256(SP) - MOVQ DX,264(SP) - MOVQ CX,272(SP) - MOVQ R8,280(SP) - MOVQ R9,288(SP) - MOVQ AX,296(SP) - MOVQ R10,304(SP) - MOVQ R11,312(SP) - MOVQ R12,320(SP) - MOVQ R13,328(SP) - MOVQ 280(SP),SI - IMUL3Q $19,SI,AX - MOVQ AX,336(SP) - MULQ 112(SP) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 288(SP),DX - IMUL3Q $19,DX,AX - MOVQ AX,344(SP) - MULQ 104(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 256(SP),AX - MULQ 96(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 256(SP),AX - MULQ 104(SP) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 256(SP),AX - MULQ 112(SP) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 256(SP),AX - MULQ 120(SP) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 256(SP),AX - MULQ 128(SP) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 264(SP),AX - MULQ 96(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 264(SP),AX - MULQ 104(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 264(SP),AX - MULQ 112(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 264(SP),AX - MULQ 120(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 264(SP),DX - IMUL3Q $19,DX,AX - MULQ 128(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 272(SP),AX - MULQ 96(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 272(SP),AX - MULQ 104(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 272(SP),AX - MULQ 112(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 272(SP),DX - IMUL3Q $19,DX,AX - MULQ 120(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 272(SP),DX - IMUL3Q $19,DX,AX - MULQ 128(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 280(SP),AX - MULQ 96(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 280(SP),AX - MULQ 104(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 336(SP),AX - MULQ 120(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 336(SP),AX - MULQ 128(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 288(SP),AX - MULQ 96(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 344(SP),AX - MULQ 112(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 344(SP),AX - MULQ 120(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 344(SP),AX - MULQ 128(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - MOVQ CX,R8 - SHRQ $51,CX - ANDQ DX,SI - ADDQ R10,CX - MOVQ CX,R9 - SHRQ $51,CX - ANDQ DX,R8 - ADDQ R12,CX - MOVQ CX,AX - SHRQ $51,CX - ANDQ DX,R9 - ADDQ R14,CX - MOVQ CX,R10 - SHRQ $51,CX - ANDQ DX,AX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,96(SP) - MOVQ R8,104(SP) - MOVQ R9,112(SP) - MOVQ AX,120(SP) - MOVQ R10,128(SP) - MOVQ 320(SP),SI - IMUL3Q $19,SI,AX - MOVQ AX,256(SP) - MULQ 72(SP) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 328(SP),DX - IMUL3Q $19,DX,AX - MOVQ AX,264(SP) - MULQ 64(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 296(SP),AX - MULQ 56(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 296(SP),AX - MULQ 64(SP) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 296(SP),AX - MULQ 72(SP) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 296(SP),AX - MULQ 80(SP) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 296(SP),AX - MULQ 88(SP) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 304(SP),AX - MULQ 56(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 304(SP),AX - MULQ 64(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 304(SP),AX - MULQ 72(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 304(SP),AX - MULQ 80(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 304(SP),DX - IMUL3Q $19,DX,AX - MULQ 88(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 312(SP),AX - MULQ 56(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 312(SP),AX - MULQ 64(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 312(SP),AX - MULQ 72(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 312(SP),DX - IMUL3Q $19,DX,AX - MULQ 80(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 312(SP),DX - IMUL3Q $19,DX,AX - MULQ 88(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 320(SP),AX - MULQ 56(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 320(SP),AX - MULQ 64(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 256(SP),AX - MULQ 80(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 256(SP),AX - MULQ 88(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 328(SP),AX - MULQ 56(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 264(SP),AX - MULQ 72(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 264(SP),AX - MULQ 80(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 264(SP),AX - MULQ 88(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - MOVQ CX,R8 - SHRQ $51,CX - ANDQ DX,SI - ADDQ R10,CX - MOVQ CX,R9 - SHRQ $51,CX - ANDQ DX,R8 - ADDQ R12,CX - MOVQ CX,AX - SHRQ $51,CX - ANDQ DX,R9 - ADDQ R14,CX - MOVQ CX,R10 - SHRQ $51,CX - ANDQ DX,AX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,DX - MOVQ R8,CX - MOVQ R9,R11 - MOVQ AX,R12 - MOVQ R10,R13 - ADDQ ·_2P0(SB),DX - ADDQ ·_2P1234(SB),CX - ADDQ ·_2P1234(SB),R11 - ADDQ ·_2P1234(SB),R12 - ADDQ ·_2P1234(SB),R13 - ADDQ 96(SP),SI - ADDQ 104(SP),R8 - ADDQ 112(SP),R9 - ADDQ 120(SP),AX - ADDQ 128(SP),R10 - SUBQ 96(SP),DX - SUBQ 104(SP),CX - SUBQ 112(SP),R11 - SUBQ 120(SP),R12 - SUBQ 128(SP),R13 - MOVQ SI,120(DI) - MOVQ R8,128(DI) - MOVQ R9,136(DI) - MOVQ AX,144(DI) - MOVQ R10,152(DI) - MOVQ DX,160(DI) - MOVQ CX,168(DI) - MOVQ R11,176(DI) - MOVQ R12,184(DI) - MOVQ R13,192(DI) - MOVQ 120(DI),AX - MULQ 120(DI) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 120(DI),AX - SHLQ $1,AX - MULQ 128(DI) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 120(DI),AX - SHLQ $1,AX - MULQ 136(DI) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 120(DI),AX - SHLQ $1,AX - MULQ 144(DI) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 120(DI),AX - SHLQ $1,AX - MULQ 152(DI) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 128(DI),AX - MULQ 128(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 128(DI),AX - SHLQ $1,AX - MULQ 136(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 128(DI),AX - SHLQ $1,AX - MULQ 144(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 128(DI),DX - IMUL3Q $38,DX,AX - MULQ 152(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 136(DI),AX - MULQ 136(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 136(DI),DX - IMUL3Q $38,DX,AX - MULQ 144(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 136(DI),DX - IMUL3Q $38,DX,AX - MULQ 152(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 144(DI),DX - IMUL3Q $19,DX,AX - MULQ 144(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 144(DI),DX - IMUL3Q $38,DX,AX - MULQ 152(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 152(DI),DX - IMUL3Q $19,DX,AX - MULQ 152(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - ANDQ DX,SI - MOVQ CX,R8 - SHRQ $51,CX - ADDQ R10,CX - ANDQ DX,R8 - MOVQ CX,R9 - SHRQ $51,CX - ADDQ R12,CX - ANDQ DX,R9 - MOVQ CX,AX - SHRQ $51,CX - ADDQ R14,CX - ANDQ DX,AX - MOVQ CX,R10 - SHRQ $51,CX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,120(DI) - MOVQ R8,128(DI) - MOVQ R9,136(DI) - MOVQ AX,144(DI) - MOVQ R10,152(DI) - MOVQ 160(DI),AX - MULQ 160(DI) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 160(DI),AX - SHLQ $1,AX - MULQ 168(DI) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 160(DI),AX - SHLQ $1,AX - MULQ 176(DI) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 160(DI),AX - SHLQ $1,AX - MULQ 184(DI) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 160(DI),AX - SHLQ $1,AX - MULQ 192(DI) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 168(DI),AX - MULQ 168(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 168(DI),AX - SHLQ $1,AX - MULQ 176(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 168(DI),AX - SHLQ $1,AX - MULQ 184(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 168(DI),DX - IMUL3Q $38,DX,AX - MULQ 192(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 176(DI),AX - MULQ 176(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 176(DI),DX - IMUL3Q $38,DX,AX - MULQ 184(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 176(DI),DX - IMUL3Q $38,DX,AX - MULQ 192(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 184(DI),DX - IMUL3Q $19,DX,AX - MULQ 184(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 184(DI),DX - IMUL3Q $38,DX,AX - MULQ 192(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 192(DI),DX - IMUL3Q $19,DX,AX - MULQ 192(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - ANDQ DX,SI - MOVQ CX,R8 - SHRQ $51,CX - ADDQ R10,CX - ANDQ DX,R8 - MOVQ CX,R9 - SHRQ $51,CX - ADDQ R12,CX - ANDQ DX,R9 - MOVQ CX,AX - SHRQ $51,CX - ADDQ R14,CX - ANDQ DX,AX - MOVQ CX,R10 - SHRQ $51,CX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,160(DI) - MOVQ R8,168(DI) - MOVQ R9,176(DI) - MOVQ AX,184(DI) - MOVQ R10,192(DI) - MOVQ 184(DI),SI - IMUL3Q $19,SI,AX - MOVQ AX,56(SP) - MULQ 16(DI) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 192(DI),DX - IMUL3Q $19,DX,AX - MOVQ AX,64(SP) - MULQ 8(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 160(DI),AX - MULQ 0(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 160(DI),AX - MULQ 8(DI) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 160(DI),AX - MULQ 16(DI) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 160(DI),AX - MULQ 24(DI) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 160(DI),AX - MULQ 32(DI) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 168(DI),AX - MULQ 0(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 168(DI),AX - MULQ 8(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 168(DI),AX - MULQ 16(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 168(DI),AX - MULQ 24(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 168(DI),DX - IMUL3Q $19,DX,AX - MULQ 32(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 176(DI),AX - MULQ 0(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 176(DI),AX - MULQ 8(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 176(DI),AX - MULQ 16(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 176(DI),DX - IMUL3Q $19,DX,AX - MULQ 24(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 176(DI),DX - IMUL3Q $19,DX,AX - MULQ 32(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 184(DI),AX - MULQ 0(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 184(DI),AX - MULQ 8(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 56(SP),AX - MULQ 24(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 56(SP),AX - MULQ 32(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 192(DI),AX - MULQ 0(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 64(SP),AX - MULQ 16(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 64(SP),AX - MULQ 24(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 64(SP),AX - MULQ 32(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - MOVQ CX,R8 - SHRQ $51,CX - ANDQ DX,SI - ADDQ R10,CX - MOVQ CX,R9 - SHRQ $51,CX - ANDQ DX,R8 - ADDQ R12,CX - MOVQ CX,AX - SHRQ $51,CX - ANDQ DX,R9 - ADDQ R14,CX - MOVQ CX,R10 - SHRQ $51,CX - ANDQ DX,AX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,160(DI) - MOVQ R8,168(DI) - MOVQ R9,176(DI) - MOVQ AX,184(DI) - MOVQ R10,192(DI) - MOVQ 200(SP),SI - IMUL3Q $19,SI,AX - MOVQ AX,56(SP) - MULQ 152(SP) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 208(SP),DX - IMUL3Q $19,DX,AX - MOVQ AX,64(SP) - MULQ 144(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 176(SP),AX - MULQ 136(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 176(SP),AX - MULQ 144(SP) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 176(SP),AX - MULQ 152(SP) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 176(SP),AX - MULQ 160(SP) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 176(SP),AX - MULQ 168(SP) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 184(SP),AX - MULQ 136(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 184(SP),AX - MULQ 144(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 184(SP),AX - MULQ 152(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 184(SP),AX - MULQ 160(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 184(SP),DX - IMUL3Q $19,DX,AX - MULQ 168(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 192(SP),AX - MULQ 136(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 192(SP),AX - MULQ 144(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 192(SP),AX - MULQ 152(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 192(SP),DX - IMUL3Q $19,DX,AX - MULQ 160(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 192(SP),DX - IMUL3Q $19,DX,AX - MULQ 168(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 200(SP),AX - MULQ 136(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 200(SP),AX - MULQ 144(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 56(SP),AX - MULQ 160(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 56(SP),AX - MULQ 168(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 208(SP),AX - MULQ 136(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 64(SP),AX - MULQ 152(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 64(SP),AX - MULQ 160(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 64(SP),AX - MULQ 168(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - MOVQ CX,R8 - SHRQ $51,CX - ANDQ DX,SI - ADDQ R10,CX - MOVQ CX,R9 - SHRQ $51,CX - ANDQ DX,R8 - ADDQ R12,CX - MOVQ CX,AX - SHRQ $51,CX - ANDQ DX,R9 - ADDQ R14,CX - MOVQ CX,R10 - SHRQ $51,CX - ANDQ DX,AX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,40(DI) - MOVQ R8,48(DI) - MOVQ R9,56(DI) - MOVQ AX,64(DI) - MOVQ R10,72(DI) - MOVQ 216(SP),AX - MULQ ·_121666_213(SB) - SHRQ $13,AX - MOVQ AX,SI - MOVQ DX,CX - MOVQ 224(SP),AX - MULQ ·_121666_213(SB) - SHRQ $13,AX - ADDQ AX,CX - MOVQ DX,R8 - MOVQ 232(SP),AX - MULQ ·_121666_213(SB) - SHRQ $13,AX - ADDQ AX,R8 - MOVQ DX,R9 - MOVQ 240(SP),AX - MULQ ·_121666_213(SB) - SHRQ $13,AX - ADDQ AX,R9 - MOVQ DX,R10 - MOVQ 248(SP),AX - MULQ ·_121666_213(SB) - SHRQ $13,AX - ADDQ AX,R10 - IMUL3Q $19,DX,DX - ADDQ DX,SI - ADDQ 136(SP),SI - ADDQ 144(SP),CX - ADDQ 152(SP),R8 - ADDQ 160(SP),R9 - ADDQ 168(SP),R10 - MOVQ SI,80(DI) - MOVQ CX,88(DI) - MOVQ R8,96(DI) - MOVQ R9,104(DI) - MOVQ R10,112(DI) - MOVQ 104(DI),SI - IMUL3Q $19,SI,AX - MOVQ AX,56(SP) - MULQ 232(SP) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 112(DI),DX - IMUL3Q $19,DX,AX - MOVQ AX,64(SP) - MULQ 224(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 80(DI),AX - MULQ 216(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 80(DI),AX - MULQ 224(SP) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 80(DI),AX - MULQ 232(SP) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 80(DI),AX - MULQ 240(SP) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 80(DI),AX - MULQ 248(SP) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 88(DI),AX - MULQ 216(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 88(DI),AX - MULQ 224(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 88(DI),AX - MULQ 232(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 88(DI),AX - MULQ 240(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 88(DI),DX - IMUL3Q $19,DX,AX - MULQ 248(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 96(DI),AX - MULQ 216(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 96(DI),AX - MULQ 224(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 96(DI),AX - MULQ 232(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 96(DI),DX - IMUL3Q $19,DX,AX - MULQ 240(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 96(DI),DX - IMUL3Q $19,DX,AX - MULQ 248(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 104(DI),AX - MULQ 216(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 104(DI),AX - MULQ 224(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 56(SP),AX - MULQ 240(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 56(SP),AX - MULQ 248(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 112(DI),AX - MULQ 216(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 64(SP),AX - MULQ 232(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 64(SP),AX - MULQ 240(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 64(SP),AX - MULQ 248(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - MOVQ CX,R8 - SHRQ $51,CX - ANDQ DX,SI - ADDQ R10,CX - MOVQ CX,R9 - SHRQ $51,CX - ANDQ DX,R8 - ADDQ R12,CX - MOVQ CX,AX - SHRQ $51,CX - ANDQ DX,R9 - ADDQ R14,CX - MOVQ CX,R10 - SHRQ $51,CX - ANDQ DX,AX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,80(DI) - MOVQ R8,88(DI) - MOVQ R9,96(DI) - MOVQ AX,104(DI) - MOVQ R10,112(DI) - MOVQ 0(SP),R11 - MOVQ 8(SP),R12 - MOVQ 16(SP),R13 - MOVQ 24(SP),R14 - MOVQ 32(SP),R15 - MOVQ 40(SP),BX - MOVQ 48(SP),BP - MOVQ R11,SP - MOVQ DI,AX - MOVQ SI,DX - RET diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/mont25519_amd64.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/mont25519_amd64.go deleted file mode 100644 index 5822bd53..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/mont25519_amd64.go +++ /dev/null @@ -1,240 +0,0 @@ -// Copyright 2012 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 amd64,!gccgo,!appengine - -package curve25519 - -// These functions are implemented in the .s files. The names of the functions -// in the rest of the file are also taken from the SUPERCOP sources to help -// people following along. - -//go:noescape - -func cswap(inout *[5]uint64, v uint64) - -//go:noescape - -func ladderstep(inout *[5][5]uint64) - -//go:noescape - -func freeze(inout *[5]uint64) - -//go:noescape - -func mul(dest, a, b *[5]uint64) - -//go:noescape - -func square(out, in *[5]uint64) - -// mladder uses a Montgomery ladder to calculate (xr/zr) *= s. -func mladder(xr, zr *[5]uint64, s *[32]byte) { - var work [5][5]uint64 - - work[0] = *xr - setint(&work[1], 1) - setint(&work[2], 0) - work[3] = *xr - setint(&work[4], 1) - - j := uint(6) - var prevbit byte - - for i := 31; i >= 0; i-- { - for j < 8 { - bit := ((*s)[i] >> j) & 1 - swap := bit ^ prevbit - prevbit = bit - cswap(&work[1], uint64(swap)) - ladderstep(&work) - j-- - } - j = 7 - } - - *xr = work[1] - *zr = work[2] -} - -func scalarMult(out, in, base *[32]byte) { - var e [32]byte - copy(e[:], (*in)[:]) - e[0] &= 248 - e[31] &= 127 - e[31] |= 64 - - var t, z [5]uint64 - unpack(&t, base) - mladder(&t, &z, &e) - invert(&z, &z) - mul(&t, &t, &z) - pack(out, &t) -} - -func setint(r *[5]uint64, v uint64) { - r[0] = v - r[1] = 0 - r[2] = 0 - r[3] = 0 - r[4] = 0 -} - -// unpack sets r = x where r consists of 5, 51-bit limbs in little-endian -// order. -func unpack(r *[5]uint64, x *[32]byte) { - r[0] = uint64(x[0]) | - uint64(x[1])<<8 | - uint64(x[2])<<16 | - uint64(x[3])<<24 | - uint64(x[4])<<32 | - uint64(x[5])<<40 | - uint64(x[6]&7)<<48 - - r[1] = uint64(x[6])>>3 | - uint64(x[7])<<5 | - uint64(x[8])<<13 | - uint64(x[9])<<21 | - uint64(x[10])<<29 | - uint64(x[11])<<37 | - uint64(x[12]&63)<<45 - - r[2] = uint64(x[12])>>6 | - uint64(x[13])<<2 | - uint64(x[14])<<10 | - uint64(x[15])<<18 | - uint64(x[16])<<26 | - uint64(x[17])<<34 | - uint64(x[18])<<42 | - uint64(x[19]&1)<<50 - - r[3] = uint64(x[19])>>1 | - uint64(x[20])<<7 | - uint64(x[21])<<15 | - uint64(x[22])<<23 | - uint64(x[23])<<31 | - uint64(x[24])<<39 | - uint64(x[25]&15)<<47 - - r[4] = uint64(x[25])>>4 | - uint64(x[26])<<4 | - uint64(x[27])<<12 | - uint64(x[28])<<20 | - uint64(x[29])<<28 | - uint64(x[30])<<36 | - uint64(x[31]&127)<<44 -} - -// pack sets out = x where out is the usual, little-endian form of the 5, -// 51-bit limbs in x. -func pack(out *[32]byte, x *[5]uint64) { - t := *x - freeze(&t) - - out[0] = byte(t[0]) - out[1] = byte(t[0] >> 8) - out[2] = byte(t[0] >> 16) - out[3] = byte(t[0] >> 24) - out[4] = byte(t[0] >> 32) - out[5] = byte(t[0] >> 40) - out[6] = byte(t[0] >> 48) - - out[6] ^= byte(t[1]<<3) & 0xf8 - out[7] = byte(t[1] >> 5) - out[8] = byte(t[1] >> 13) - out[9] = byte(t[1] >> 21) - out[10] = byte(t[1] >> 29) - out[11] = byte(t[1] >> 37) - out[12] = byte(t[1] >> 45) - - out[12] ^= byte(t[2]<<6) & 0xc0 - out[13] = byte(t[2] >> 2) - out[14] = byte(t[2] >> 10) - out[15] = byte(t[2] >> 18) - out[16] = byte(t[2] >> 26) - out[17] = byte(t[2] >> 34) - out[18] = byte(t[2] >> 42) - out[19] = byte(t[2] >> 50) - - out[19] ^= byte(t[3]<<1) & 0xfe - out[20] = byte(t[3] >> 7) - out[21] = byte(t[3] >> 15) - out[22] = byte(t[3] >> 23) - out[23] = byte(t[3] >> 31) - out[24] = byte(t[3] >> 39) - out[25] = byte(t[3] >> 47) - - out[25] ^= byte(t[4]<<4) & 0xf0 - out[26] = byte(t[4] >> 4) - out[27] = byte(t[4] >> 12) - out[28] = byte(t[4] >> 20) - out[29] = byte(t[4] >> 28) - out[30] = byte(t[4] >> 36) - out[31] = byte(t[4] >> 44) -} - -// invert calculates r = x^-1 mod p using Fermat's little theorem. -func invert(r *[5]uint64, x *[5]uint64) { - var z2, z9, z11, z2_5_0, z2_10_0, z2_20_0, z2_50_0, z2_100_0, t [5]uint64 - - square(&z2, x) /* 2 */ - square(&t, &z2) /* 4 */ - square(&t, &t) /* 8 */ - mul(&z9, &t, x) /* 9 */ - mul(&z11, &z9, &z2) /* 11 */ - square(&t, &z11) /* 22 */ - mul(&z2_5_0, &t, &z9) /* 2^5 - 2^0 = 31 */ - - square(&t, &z2_5_0) /* 2^6 - 2^1 */ - for i := 1; i < 5; i++ { /* 2^20 - 2^10 */ - square(&t, &t) - } - mul(&z2_10_0, &t, &z2_5_0) /* 2^10 - 2^0 */ - - square(&t, &z2_10_0) /* 2^11 - 2^1 */ - for i := 1; i < 10; i++ { /* 2^20 - 2^10 */ - square(&t, &t) - } - mul(&z2_20_0, &t, &z2_10_0) /* 2^20 - 2^0 */ - - square(&t, &z2_20_0) /* 2^21 - 2^1 */ - for i := 1; i < 20; i++ { /* 2^40 - 2^20 */ - square(&t, &t) - } - mul(&t, &t, &z2_20_0) /* 2^40 - 2^0 */ - - square(&t, &t) /* 2^41 - 2^1 */ - for i := 1; i < 10; i++ { /* 2^50 - 2^10 */ - square(&t, &t) - } - mul(&z2_50_0, &t, &z2_10_0) /* 2^50 - 2^0 */ - - square(&t, &z2_50_0) /* 2^51 - 2^1 */ - for i := 1; i < 50; i++ { /* 2^100 - 2^50 */ - square(&t, &t) - } - mul(&z2_100_0, &t, &z2_50_0) /* 2^100 - 2^0 */ - - square(&t, &z2_100_0) /* 2^101 - 2^1 */ - for i := 1; i < 100; i++ { /* 2^200 - 2^100 */ - square(&t, &t) - } - mul(&t, &t, &z2_100_0) /* 2^200 - 2^0 */ - - square(&t, &t) /* 2^201 - 2^1 */ - for i := 1; i < 50; i++ { /* 2^250 - 2^50 */ - square(&t, &t) - } - mul(&t, &t, &z2_50_0) /* 2^250 - 2^0 */ - - square(&t, &t) /* 2^251 - 2^1 */ - square(&t, &t) /* 2^252 - 2^2 */ - square(&t, &t) /* 2^253 - 2^3 */ - - square(&t, &t) /* 2^254 - 2^4 */ - - square(&t, &t) /* 2^255 - 2^5 */ - mul(r, &t, &z11) /* 2^255 - 21 */ -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/mul_amd64.s b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/mul_amd64.s deleted file mode 100644 index e48d183e..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/mul_amd64.s +++ /dev/null @@ -1,191 +0,0 @@ -// Copyright 2012 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. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -// func mul(dest, a, b *[5]uint64) -TEXT ·mul(SB),0,$128-24 - MOVQ dest+0(FP), DI - MOVQ a+8(FP), SI - MOVQ b+16(FP), DX - - MOVQ SP,R11 - MOVQ $31,CX - NOTQ CX - ANDQ CX,SP - ADDQ $32,SP - - MOVQ R11,0(SP) - MOVQ R12,8(SP) - MOVQ R13,16(SP) - MOVQ R14,24(SP) - MOVQ R15,32(SP) - MOVQ BX,40(SP) - MOVQ BP,48(SP) - MOVQ DI,56(SP) - MOVQ DX,CX - MOVQ 24(SI),DX - IMUL3Q $19,DX,AX - MOVQ AX,64(SP) - MULQ 16(CX) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 32(SI),DX - IMUL3Q $19,DX,AX - MOVQ AX,72(SP) - MULQ 8(CX) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 0(SI),AX - MULQ 0(CX) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 0(SI),AX - MULQ 8(CX) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 0(SI),AX - MULQ 16(CX) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 0(SI),AX - MULQ 24(CX) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 0(SI),AX - MULQ 32(CX) - MOVQ AX,BX - MOVQ DX,BP - MOVQ 8(SI),AX - MULQ 0(CX) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 8(SI),AX - MULQ 8(CX) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 8(SI),AX - MULQ 16(CX) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 8(SI),AX - MULQ 24(CX) - ADDQ AX,BX - ADCQ DX,BP - MOVQ 8(SI),DX - IMUL3Q $19,DX,AX - MULQ 32(CX) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 16(SI),AX - MULQ 0(CX) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 16(SI),AX - MULQ 8(CX) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 16(SI),AX - MULQ 16(CX) - ADDQ AX,BX - ADCQ DX,BP - MOVQ 16(SI),DX - IMUL3Q $19,DX,AX - MULQ 24(CX) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 16(SI),DX - IMUL3Q $19,DX,AX - MULQ 32(CX) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 24(SI),AX - MULQ 0(CX) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 24(SI),AX - MULQ 8(CX) - ADDQ AX,BX - ADCQ DX,BP - MOVQ 64(SP),AX - MULQ 24(CX) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 64(SP),AX - MULQ 32(CX) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 32(SI),AX - MULQ 0(CX) - ADDQ AX,BX - ADCQ DX,BP - MOVQ 72(SP),AX - MULQ 16(CX) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 72(SP),AX - MULQ 24(CX) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 72(SP),AX - MULQ 32(CX) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ ·REDMASK51(SB),SI - SHLQ $13,R9:R8 - ANDQ SI,R8 - SHLQ $13,R11:R10 - ANDQ SI,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ SI,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ SI,R14 - ADDQ R13,R14 - SHLQ $13,BP:BX - ANDQ SI,BX - ADDQ R15,BX - IMUL3Q $19,BP,DX - ADDQ DX,R8 - MOVQ R8,DX - SHRQ $51,DX - ADDQ R10,DX - MOVQ DX,CX - SHRQ $51,DX - ANDQ SI,R8 - ADDQ R12,DX - MOVQ DX,R9 - SHRQ $51,DX - ANDQ SI,CX - ADDQ R14,DX - MOVQ DX,AX - SHRQ $51,DX - ANDQ SI,R9 - ADDQ BX,DX - MOVQ DX,R10 - SHRQ $51,DX - ANDQ SI,AX - IMUL3Q $19,DX,DX - ADDQ DX,R8 - ANDQ SI,R10 - MOVQ R8,0(DI) - MOVQ CX,8(DI) - MOVQ R9,16(DI) - MOVQ AX,24(DI) - MOVQ R10,32(DI) - MOVQ 0(SP),R11 - MOVQ 8(SP),R12 - MOVQ 16(SP),R13 - MOVQ 24(SP),R14 - MOVQ 32(SP),R15 - MOVQ 40(SP),BX - MOVQ 48(SP),BP - MOVQ R11,SP - MOVQ DI,AX - MOVQ SI,DX - RET diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/square_amd64.s b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/square_amd64.s deleted file mode 100644 index 78d1a50d..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519/square_amd64.s +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright 2012 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. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -// func square(out, in *[5]uint64) -TEXT ·square(SB),7,$96-16 - MOVQ out+0(FP), DI - MOVQ in+8(FP), SI - - MOVQ SP,R11 - MOVQ $31,CX - NOTQ CX - ANDQ CX,SP - ADDQ $32, SP - - MOVQ R11,0(SP) - MOVQ R12,8(SP) - MOVQ R13,16(SP) - MOVQ R14,24(SP) - MOVQ R15,32(SP) - MOVQ BX,40(SP) - MOVQ BP,48(SP) - MOVQ 0(SI),AX - MULQ 0(SI) - MOVQ AX,CX - MOVQ DX,R8 - MOVQ 0(SI),AX - SHLQ $1,AX - MULQ 8(SI) - MOVQ AX,R9 - MOVQ DX,R10 - MOVQ 0(SI),AX - SHLQ $1,AX - MULQ 16(SI) - MOVQ AX,R11 - MOVQ DX,R12 - MOVQ 0(SI),AX - SHLQ $1,AX - MULQ 24(SI) - MOVQ AX,R13 - MOVQ DX,R14 - MOVQ 0(SI),AX - SHLQ $1,AX - MULQ 32(SI) - MOVQ AX,R15 - MOVQ DX,BX - MOVQ 8(SI),AX - MULQ 8(SI) - ADDQ AX,R11 - ADCQ DX,R12 - MOVQ 8(SI),AX - SHLQ $1,AX - MULQ 16(SI) - ADDQ AX,R13 - ADCQ DX,R14 - MOVQ 8(SI),AX - SHLQ $1,AX - MULQ 24(SI) - ADDQ AX,R15 - ADCQ DX,BX - MOVQ 8(SI),DX - IMUL3Q $38,DX,AX - MULQ 32(SI) - ADDQ AX,CX - ADCQ DX,R8 - MOVQ 16(SI),AX - MULQ 16(SI) - ADDQ AX,R15 - ADCQ DX,BX - MOVQ 16(SI),DX - IMUL3Q $38,DX,AX - MULQ 24(SI) - ADDQ AX,CX - ADCQ DX,R8 - MOVQ 16(SI),DX - IMUL3Q $38,DX,AX - MULQ 32(SI) - ADDQ AX,R9 - ADCQ DX,R10 - MOVQ 24(SI),DX - IMUL3Q $19,DX,AX - MULQ 24(SI) - ADDQ AX,R9 - ADCQ DX,R10 - MOVQ 24(SI),DX - IMUL3Q $38,DX,AX - MULQ 32(SI) - ADDQ AX,R11 - ADCQ DX,R12 - MOVQ 32(SI),DX - IMUL3Q $19,DX,AX - MULQ 32(SI) - ADDQ AX,R13 - ADCQ DX,R14 - MOVQ ·REDMASK51(SB),SI - SHLQ $13,R8:CX - ANDQ SI,CX - SHLQ $13,R10:R9 - ANDQ SI,R9 - ADDQ R8,R9 - SHLQ $13,R12:R11 - ANDQ SI,R11 - ADDQ R10,R11 - SHLQ $13,R14:R13 - ANDQ SI,R13 - ADDQ R12,R13 - SHLQ $13,BX:R15 - ANDQ SI,R15 - ADDQ R14,R15 - IMUL3Q $19,BX,DX - ADDQ DX,CX - MOVQ CX,DX - SHRQ $51,DX - ADDQ R9,DX - ANDQ SI,CX - MOVQ DX,R8 - SHRQ $51,DX - ADDQ R11,DX - ANDQ SI,R8 - MOVQ DX,R9 - SHRQ $51,DX - ADDQ R13,DX - ANDQ SI,R9 - MOVQ DX,AX - SHRQ $51,DX - ADDQ R15,DX - ANDQ SI,AX - MOVQ DX,R10 - SHRQ $51,DX - IMUL3Q $19,DX,DX - ADDQ DX,CX - ANDQ SI,R10 - MOVQ CX,0(DI) - MOVQ R8,8(DI) - MOVQ R9,16(DI) - MOVQ AX,24(DI) - MOVQ R10,32(DI) - MOVQ 0(SP),R11 - MOVQ 8(SP),R12 - MOVQ 16(SP),R13 - MOVQ 24(SP),R14 - MOVQ 32(SP),R15 - MOVQ 40(SP),BX - MOVQ 48(SP),BP - MOVQ R11,SP - MOVQ DI,AX - MOVQ SI,DX - RET diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/hkdf/example_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/hkdf/example_test.go deleted file mode 100644 index 632eef4b..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/hkdf/example_test.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package hkdf_test - -import ( - "bytes" - "crypto/rand" - "crypto/sha256" - "fmt" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/hkdf" - "io" -) - -// Usage example that expands one master key into three other cryptographically -// secure keys. -func Example_usage() { - // Underlying hash function to use - hash := sha256.New - - // Cryptographically secure master key. - master := []byte{0x00, 0x01, 0x02, 0x03} // i.e. NOT this. - - // Non secret salt, optional (can be nil) - // Recommended: hash-length sized random - salt := make([]byte, hash().Size()) - n, err := io.ReadFull(rand.Reader, salt) - if n != len(salt) || err != nil { - fmt.Println("error:", err) - return - } - - // Non secret context specific info, optional (can be nil). - // Note, independent from the master key. - info := []byte{0x03, 0x14, 0x15, 0x92, 0x65} - - // Create the key derivation function - hkdf := hkdf.New(hash, master, salt, info) - - // Generate the required keys - keys := make([][]byte, 3) - for i := 0; i < len(keys); i++ { - keys[i] = make([]byte, 24) - n, err := io.ReadFull(hkdf, keys[i]) - if n != len(keys[i]) || err != nil { - fmt.Println("error:", err) - return - } - } - - // Keys should contain 192 bit random keys - for i := 1; i <= len(keys); i++ { - fmt.Printf("Key #%d: %v\n", i, !bytes.Equal(keys[i-1], make([]byte, 24))) - } - - // Output: - // Key #1: true - // Key #2: true - // Key #3: true -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/hkdf/hkdf.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/hkdf/hkdf.go deleted file mode 100644 index 5c6cf6ff..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/hkdf/hkdf.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package hkdf implements the HMAC-based Extract-and-Expand Key Derivation -// Function (HKDF) as defined in RFC 5869. -// -// HKDF is a cryptographic key derivation function (KDF) with the goal of -// expanding limited input keying material into one or more cryptographically -// strong secret keys. -// -// RFC 5869: https://tools.ietf.org/html/rfc5869 -package hkdf - -import ( - "crypto/hmac" - "errors" - "hash" - "io" -) - -type hkdf struct { - expander hash.Hash - size int - - info []byte - counter byte - - prev []byte - cache []byte -} - -func (f *hkdf) Read(p []byte) (int, error) { - // Check whether enough data can be generated - need := len(p) - remains := len(f.cache) + int(255-f.counter+1)*f.size - if remains < need { - return 0, errors.New("hkdf: entropy limit reached") - } - // Read from the cache, if enough data is present - n := copy(p, f.cache) - p = p[n:] - - // Fill the buffer - for len(p) > 0 { - f.expander.Reset() - f.expander.Write(f.prev) - f.expander.Write(f.info) - f.expander.Write([]byte{f.counter}) - f.prev = f.expander.Sum(f.prev[:0]) - f.counter++ - - // Copy the new batch into p - f.cache = f.prev - n = copy(p, f.cache) - p = p[n:] - } - // Save leftovers for next run - f.cache = f.cache[n:] - - return need, nil -} - -// New returns a new HKDF using the given hash, the secret keying material to expand -// and optional salt and info fields. -func New(hash func() hash.Hash, secret, salt, info []byte) io.Reader { - if salt == nil { - salt = make([]byte, hash().Size()) - } - extractor := hmac.New(hash, salt) - extractor.Write(secret) - prk := extractor.Sum(nil) - - return &hkdf{hmac.New(hash, prk), extractor.Size(), info, 1, nil, nil} -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/hkdf/hkdf_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/hkdf/hkdf_test.go deleted file mode 100644 index cee659bc..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/hkdf/hkdf_test.go +++ /dev/null @@ -1,370 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -package hkdf - -import ( - "bytes" - "crypto/md5" - "crypto/sha1" - "crypto/sha256" - "crypto/sha512" - "hash" - "io" - "testing" -) - -type hkdfTest struct { - hash func() hash.Hash - master []byte - salt []byte - info []byte - out []byte -} - -var hkdfTests = []hkdfTest{ - // Tests from RFC 5869 - { - sha256.New, - []byte{ - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, - }, - []byte{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, - }, - []byte{ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, - }, - []byte{ - 0x3c, 0xb2, 0x5f, 0x25, 0xfa, 0xac, 0xd5, 0x7a, - 0x90, 0x43, 0x4f, 0x64, 0xd0, 0x36, 0x2f, 0x2a, - 0x2d, 0x2d, 0x0a, 0x90, 0xcf, 0x1a, 0x5a, 0x4c, - 0x5d, 0xb0, 0x2d, 0x56, 0xec, 0xc4, 0xc5, 0xbf, - 0x34, 0x00, 0x72, 0x08, 0xd5, 0xb8, 0x87, 0x18, - 0x58, 0x65, - }, - }, - { - sha256.New, - []byte{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - }, - []byte{ - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - }, - []byte{ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, - }, - []byte{ - 0xb1, 0x1e, 0x39, 0x8d, 0xc8, 0x03, 0x27, 0xa1, - 0xc8, 0xe7, 0xf7, 0x8c, 0x59, 0x6a, 0x49, 0x34, - 0x4f, 0x01, 0x2e, 0xda, 0x2d, 0x4e, 0xfa, 0xd8, - 0xa0, 0x50, 0xcc, 0x4c, 0x19, 0xaf, 0xa9, 0x7c, - 0x59, 0x04, 0x5a, 0x99, 0xca, 0xc7, 0x82, 0x72, - 0x71, 0xcb, 0x41, 0xc6, 0x5e, 0x59, 0x0e, 0x09, - 0xda, 0x32, 0x75, 0x60, 0x0c, 0x2f, 0x09, 0xb8, - 0x36, 0x77, 0x93, 0xa9, 0xac, 0xa3, 0xdb, 0x71, - 0xcc, 0x30, 0xc5, 0x81, 0x79, 0xec, 0x3e, 0x87, - 0xc1, 0x4c, 0x01, 0xd5, 0xc1, 0xf3, 0x43, 0x4f, - 0x1d, 0x87, - }, - }, - { - sha256.New, - []byte{ - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, - }, - []byte{}, - []byte{}, - []byte{ - 0x8d, 0xa4, 0xe7, 0x75, 0xa5, 0x63, 0xc1, 0x8f, - 0x71, 0x5f, 0x80, 0x2a, 0x06, 0x3c, 0x5a, 0x31, - 0xb8, 0xa1, 0x1f, 0x5c, 0x5e, 0xe1, 0x87, 0x9e, - 0xc3, 0x45, 0x4e, 0x5f, 0x3c, 0x73, 0x8d, 0x2d, - 0x9d, 0x20, 0x13, 0x95, 0xfa, 0xa4, 0xb6, 0x1a, - 0x96, 0xc8, - }, - }, - { - sha1.New, - []byte{ - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, - 0x0b, 0x0b, 0x0b, - }, - []byte{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, - }, - []byte{ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, - }, - []byte{ - 0x08, 0x5a, 0x01, 0xea, 0x1b, 0x10, 0xf3, 0x69, - 0x33, 0x06, 0x8b, 0x56, 0xef, 0xa5, 0xad, 0x81, - 0xa4, 0xf1, 0x4b, 0x82, 0x2f, 0x5b, 0x09, 0x15, - 0x68, 0xa9, 0xcd, 0xd4, 0xf1, 0x55, 0xfd, 0xa2, - 0xc2, 0x2e, 0x42, 0x24, 0x78, 0xd3, 0x05, 0xf3, - 0xf8, 0x96, - }, - }, - { - sha1.New, - []byte{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - }, - []byte{ - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - }, - []byte{ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, - }, - []byte{ - 0x0b, 0xd7, 0x70, 0xa7, 0x4d, 0x11, 0x60, 0xf7, - 0xc9, 0xf1, 0x2c, 0xd5, 0x91, 0x2a, 0x06, 0xeb, - 0xff, 0x6a, 0xdc, 0xae, 0x89, 0x9d, 0x92, 0x19, - 0x1f, 0xe4, 0x30, 0x56, 0x73, 0xba, 0x2f, 0xfe, - 0x8f, 0xa3, 0xf1, 0xa4, 0xe5, 0xad, 0x79, 0xf3, - 0xf3, 0x34, 0xb3, 0xb2, 0x02, 0xb2, 0x17, 0x3c, - 0x48, 0x6e, 0xa3, 0x7c, 0xe3, 0xd3, 0x97, 0xed, - 0x03, 0x4c, 0x7f, 0x9d, 0xfe, 0xb1, 0x5c, 0x5e, - 0x92, 0x73, 0x36, 0xd0, 0x44, 0x1f, 0x4c, 0x43, - 0x00, 0xe2, 0xcf, 0xf0, 0xd0, 0x90, 0x0b, 0x52, - 0xd3, 0xb4, - }, - }, - { - sha1.New, - []byte{ - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, - }, - []byte{}, - []byte{}, - []byte{ - 0x0a, 0xc1, 0xaf, 0x70, 0x02, 0xb3, 0xd7, 0x61, - 0xd1, 0xe5, 0x52, 0x98, 0xda, 0x9d, 0x05, 0x06, - 0xb9, 0xae, 0x52, 0x05, 0x72, 0x20, 0xa3, 0x06, - 0xe0, 0x7b, 0x6b, 0x87, 0xe8, 0xdf, 0x21, 0xd0, - 0xea, 0x00, 0x03, 0x3d, 0xe0, 0x39, 0x84, 0xd3, - 0x49, 0x18, - }, - }, - { - sha1.New, - []byte{ - 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, - 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, - 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, - }, - nil, - []byte{}, - []byte{ - 0x2c, 0x91, 0x11, 0x72, 0x04, 0xd7, 0x45, 0xf3, - 0x50, 0x0d, 0x63, 0x6a, 0x62, 0xf6, 0x4f, 0x0a, - 0xb3, 0xba, 0xe5, 0x48, 0xaa, 0x53, 0xd4, 0x23, - 0xb0, 0xd1, 0xf2, 0x7e, 0xbb, 0xa6, 0xf5, 0xe5, - 0x67, 0x3a, 0x08, 0x1d, 0x70, 0xcc, 0xe7, 0xac, - 0xfc, 0x48, - }, - }, -} - -func TestHKDF(t *testing.T) { - for i, tt := range hkdfTests { - hkdf := New(tt.hash, tt.master, tt.salt, tt.info) - out := make([]byte, len(tt.out)) - - n, err := io.ReadFull(hkdf, out) - if n != len(tt.out) || err != nil { - t.Errorf("test %d: not enough output bytes: %d.", i, n) - } - - if !bytes.Equal(out, tt.out) { - t.Errorf("test %d: incorrect output: have %v, need %v.", i, out, tt.out) - } - } -} - -func TestHKDFMultiRead(t *testing.T) { - for i, tt := range hkdfTests { - hkdf := New(tt.hash, tt.master, tt.salt, tt.info) - out := make([]byte, len(tt.out)) - - for b := 0; b < len(tt.out); b++ { - n, err := io.ReadFull(hkdf, out[b:b+1]) - if n != 1 || err != nil { - t.Errorf("test %d.%d: not enough output bytes: have %d, need %d .", i, b, n, len(tt.out)) - } - } - - if !bytes.Equal(out, tt.out) { - t.Errorf("test %d: incorrect output: have %v, need %v.", i, out, tt.out) - } - } -} - -func TestHKDFLimit(t *testing.T) { - hash := sha1.New - master := []byte{0x00, 0x01, 0x02, 0x03} - info := []byte{} - - hkdf := New(hash, master, nil, info) - limit := hash().Size() * 255 - out := make([]byte, limit) - - // The maximum output bytes should be extractable - n, err := io.ReadFull(hkdf, out) - if n != limit || err != nil { - t.Errorf("not enough output bytes: %d, %v.", n, err) - } - - // Reading one more should fail - n, err = io.ReadFull(hkdf, make([]byte, 1)) - if n > 0 || err == nil { - t.Errorf("key expansion overflowed: n = %d, err = %v", n, err) - } -} - -func Benchmark16ByteMD5Single(b *testing.B) { - benchmarkHKDFSingle(md5.New, 16, b) -} - -func Benchmark20ByteSHA1Single(b *testing.B) { - benchmarkHKDFSingle(sha1.New, 20, b) -} - -func Benchmark32ByteSHA256Single(b *testing.B) { - benchmarkHKDFSingle(sha256.New, 32, b) -} - -func Benchmark64ByteSHA512Single(b *testing.B) { - benchmarkHKDFSingle(sha512.New, 64, b) -} - -func Benchmark8ByteMD5Stream(b *testing.B) { - benchmarkHKDFStream(md5.New, 8, b) -} - -func Benchmark16ByteMD5Stream(b *testing.B) { - benchmarkHKDFStream(md5.New, 16, b) -} - -func Benchmark8ByteSHA1Stream(b *testing.B) { - benchmarkHKDFStream(sha1.New, 8, b) -} - -func Benchmark20ByteSHA1Stream(b *testing.B) { - benchmarkHKDFStream(sha1.New, 20, b) -} - -func Benchmark8ByteSHA256Stream(b *testing.B) { - benchmarkHKDFStream(sha256.New, 8, b) -} - -func Benchmark32ByteSHA256Stream(b *testing.B) { - benchmarkHKDFStream(sha256.New, 32, b) -} - -func Benchmark8ByteSHA512Stream(b *testing.B) { - benchmarkHKDFStream(sha512.New, 8, b) -} - -func Benchmark64ByteSHA512Stream(b *testing.B) { - benchmarkHKDFStream(sha512.New, 64, b) -} - -func benchmarkHKDFSingle(hasher func() hash.Hash, block int, b *testing.B) { - master := []byte{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07} - salt := []byte{0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17} - info := []byte{0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27} - out := make([]byte, block) - - b.SetBytes(int64(block)) - b.ResetTimer() - - for i := 0; i < b.N; i++ { - hkdf := New(hasher, master, salt, info) - io.ReadFull(hkdf, out) - } -} - -func benchmarkHKDFStream(hasher func() hash.Hash, block int, b *testing.B) { - master := []byte{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07} - salt := []byte{0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17} - info := []byte{0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27} - out := make([]byte, block) - - b.SetBytes(int64(block)) - b.ResetTimer() - - hkdf := New(hasher, master, salt, info) - for i := 0; i < b.N; i++ { - _, err := io.ReadFull(hkdf, out) - if err != nil { - hkdf = New(hasher, master, salt, info) - i-- - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/md4/md4.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/md4/md4.go deleted file mode 100644 index c5f7c57d..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/md4/md4.go +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2009 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 md4 implements the MD4 hash algorithm as defined in RFC 1320. -package md4 - -import ( - "crypto" - "hash" -) - -func init() { - crypto.RegisterHash(crypto.MD4, New) -} - -// The size of an MD4 checksum in bytes. -const Size = 16 - -// The blocksize of MD4 in bytes. -const BlockSize = 64 - -const ( - _Chunk = 64 - _Init0 = 0x67452301 - _Init1 = 0xEFCDAB89 - _Init2 = 0x98BADCFE - _Init3 = 0x10325476 -) - -// digest represents the partial evaluation of a checksum. -type digest struct { - s [4]uint32 - x [_Chunk]byte - nx int - len uint64 -} - -func (d *digest) Reset() { - d.s[0] = _Init0 - d.s[1] = _Init1 - d.s[2] = _Init2 - d.s[3] = _Init3 - d.nx = 0 - d.len = 0 -} - -// New returns a new hash.Hash computing the MD4 checksum. -func New() hash.Hash { - d := new(digest) - d.Reset() - return d -} - -func (d *digest) Size() int { return Size } - -func (d *digest) BlockSize() int { return BlockSize } - -func (d *digest) Write(p []byte) (nn int, err error) { - nn = len(p) - d.len += uint64(nn) - if d.nx > 0 { - n := len(p) - if n > _Chunk-d.nx { - n = _Chunk - d.nx - } - for i := 0; i < n; i++ { - d.x[d.nx+i] = p[i] - } - d.nx += n - if d.nx == _Chunk { - _Block(d, d.x[0:]) - d.nx = 0 - } - p = p[n:] - } - n := _Block(d, p) - p = p[n:] - if len(p) > 0 { - d.nx = copy(d.x[:], p) - } - return -} - -func (d0 *digest) Sum(in []byte) []byte { - // Make a copy of d0, so that caller can keep writing and summing. - d := new(digest) - *d = *d0 - - // Padding. Add a 1 bit and 0 bits until 56 bytes mod 64. - len := d.len - var tmp [64]byte - tmp[0] = 0x80 - if len%64 < 56 { - d.Write(tmp[0 : 56-len%64]) - } else { - d.Write(tmp[0 : 64+56-len%64]) - } - - // Length in bits. - len <<= 3 - for i := uint(0); i < 8; i++ { - tmp[i] = byte(len >> (8 * i)) - } - d.Write(tmp[0:8]) - - if d.nx != 0 { - panic("d.nx != 0") - } - - for _, s := range d.s { - in = append(in, byte(s>>0)) - in = append(in, byte(s>>8)) - in = append(in, byte(s>>16)) - in = append(in, byte(s>>24)) - } - return in -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/md4/md4_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/md4/md4_test.go deleted file mode 100644 index b56edd78..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/md4/md4_test.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2009 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 md4 - -import ( - "fmt" - "io" - "testing" -) - -type md4Test struct { - out string - in string -} - -var golden = []md4Test{ - {"31d6cfe0d16ae931b73c59d7e0c089c0", ""}, - {"bde52cb31de33e46245e05fbdbd6fb24", "a"}, - {"ec388dd78999dfc7cf4632465693b6bf", "ab"}, - {"a448017aaf21d8525fc10ae87aa6729d", "abc"}, - {"41decd8f579255c5200f86a4bb3ba740", "abcd"}, - {"9803f4a34e8eb14f96adba49064a0c41", "abcde"}, - {"804e7f1c2586e50b49ac65db5b645131", "abcdef"}, - {"752f4adfe53d1da0241b5bc216d098fc", "abcdefg"}, - {"ad9daf8d49d81988590a6f0e745d15dd", "abcdefgh"}, - {"1e4e28b05464316b56402b3815ed2dfd", "abcdefghi"}, - {"dc959c6f5d6f9e04e4380777cc964b3d", "abcdefghij"}, - {"1b5701e265778898ef7de5623bbe7cc0", "Discard medicine more than two years old."}, - {"d7f087e090fe7ad4a01cb59dacc9a572", "He who has a shady past knows that nice guys finish last."}, - {"a6f8fd6df617c72837592fc3570595c9", "I wouldn't marry him with a ten foot pole."}, - {"c92a84a9526da8abc240c05d6b1a1ce0", "Free! Free!/A trip/to Mars/for 900/empty jars/Burma Shave"}, - {"f6013160c4dcb00847069fee3bb09803", "The days of the digital watch are numbered. -Tom Stoppard"}, - {"2c3bb64f50b9107ed57640fe94bec09f", "Nepal premier won't resign."}, - {"45b7d8a32c7806f2f7f897332774d6e4", "For every action there is an equal and opposite government program."}, - {"b5b4f9026b175c62d7654bdc3a1cd438", "His money is twice tainted: 'taint yours and 'taint mine."}, - {"caf44e80f2c20ce19b5ba1cab766e7bd", "There is no reason for any individual to have a computer in their home. -Ken Olsen, 1977"}, - {"191fae6707f496aa54a6bce9f2ecf74d", "It's a tiny change to the code and not completely disgusting. - Bob Manchek"}, - {"9ddc753e7a4ccee6081cd1b45b23a834", "size: a.out: bad magic"}, - {"8d050f55b1cadb9323474564be08a521", "The major problem is with sendmail. -Mark Horton"}, - {"ad6e2587f74c3e3cc19146f6127fa2e3", "Give me a rock, paper and scissors and I will move the world. CCFestoon"}, - {"1d616d60a5fabe85589c3f1566ca7fca", "If the enemy is within range, then so are you."}, - {"aec3326a4f496a2ced65a1963f84577f", "It's well we cannot hear the screams/That we create in others' dreams."}, - {"77b4fd762d6b9245e61c50bf6ebf118b", "You remind me of a TV show, but that's all right: I watch it anyway."}, - {"e8f48c726bae5e516f6ddb1a4fe62438", "C is as portable as Stonehedge!!"}, - {"a3a84366e7219e887423b01f9be7166e", "Even if I could be Shakespeare, I think I should still choose to be Faraday. - A. Huxley"}, - {"a6b7aa35157e984ef5d9b7f32e5fbb52", "The fugacity of a constituent in a mixture of gases at a given temperature is proportional to its mole fraction. Lewis-Randall Rule"}, - {"75661f0545955f8f9abeeb17845f3fd6", "How can you write a big system without C++? -Paul Glick"}, -} - -func TestGolden(t *testing.T) { - for i := 0; i < len(golden); i++ { - g := golden[i] - c := New() - for j := 0; j < 3; j++ { - if j < 2 { - io.WriteString(c, g.in) - } else { - io.WriteString(c, g.in[0:len(g.in)/2]) - c.Sum(nil) - io.WriteString(c, g.in[len(g.in)/2:]) - } - s := fmt.Sprintf("%x", c.Sum(nil)) - if s != g.out { - t.Fatalf("md4[%d](%s) = %s want %s", j, g.in, s, g.out) - } - c.Reset() - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/md4/md4block.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/md4/md4block.go deleted file mode 100644 index 3fed475f..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/md4/md4block.go +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2009 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. - -// MD4 block step. -// In its own file so that a faster assembly or C version -// can be substituted easily. - -package md4 - -var shift1 = []uint{3, 7, 11, 19} -var shift2 = []uint{3, 5, 9, 13} -var shift3 = []uint{3, 9, 11, 15} - -var xIndex2 = []uint{0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15} -var xIndex3 = []uint{0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15} - -func _Block(dig *digest, p []byte) int { - a := dig.s[0] - b := dig.s[1] - c := dig.s[2] - d := dig.s[3] - n := 0 - var X [16]uint32 - for len(p) >= _Chunk { - aa, bb, cc, dd := a, b, c, d - - j := 0 - for i := 0; i < 16; i++ { - X[i] = uint32(p[j]) | uint32(p[j+1])<<8 | uint32(p[j+2])<<16 | uint32(p[j+3])<<24 - j += 4 - } - - // If this needs to be made faster in the future, - // the usual trick is to unroll each of these - // loops by a factor of 4; that lets you replace - // the shift[] lookups with constants and, - // with suitable variable renaming in each - // unrolled body, delete the a, b, c, d = d, a, b, c - // (or you can let the optimizer do the renaming). - // - // The index variables are uint so that % by a power - // of two can be optimized easily by a compiler. - - // Round 1. - for i := uint(0); i < 16; i++ { - x := i - s := shift1[i%4] - f := ((c ^ d) & b) ^ d - a += f + X[x] - a = a<<s | a>>(32-s) - a, b, c, d = d, a, b, c - } - - // Round 2. - for i := uint(0); i < 16; i++ { - x := xIndex2[i] - s := shift2[i%4] - g := (b & c) | (b & d) | (c & d) - a += g + X[x] + 0x5a827999 - a = a<<s | a>>(32-s) - a, b, c, d = d, a, b, c - } - - // Round 3. - for i := uint(0); i < 16; i++ { - x := xIndex3[i] - s := shift3[i%4] - h := b ^ c ^ d - a += h + X[x] + 0x6ed9eba1 - a = a<<s | a>>(32-s) - a, b, c, d = d, a, b, c - } - - a += aa - b += bb - c += cc - d += dd - - p = p[_Chunk:] - n += _Chunk - } - - dig.s[0] = a - dig.s[1] = b - dig.s[2] = c - dig.s[3] = d - return n -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/box/box.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/box/box.go deleted file mode 100644 index 2907d0ca..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/box/box.go +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2012 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 box authenticates and encrypts messages using public-key cryptography. - -Box uses Curve25519, XSalsa20 and Poly1305 to encrypt and authenticate -messages. The length of messages is not hidden. - -It is the caller's responsibility to ensure the uniqueness of nonces—for -example, by using nonce 1 for the first message, nonce 2 for the second -message, etc. Nonces are long enough that randomly generated nonces have -negligible risk of collision. - -This package is interoperable with NaCl: http://nacl.cr.yp.to/box.html. -*/ -package box - -import ( - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/secretbox" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa" - "io" -) - -// Overhead is the number of bytes of overhead when boxing a message. -const Overhead = secretbox.Overhead - -// GenerateKey generates a new public/private key pair suitable for use with -// Seal and Open. -func GenerateKey(rand io.Reader) (publicKey, privateKey *[32]byte, err error) { - publicKey = new([32]byte) - privateKey = new([32]byte) - _, err = io.ReadFull(rand, privateKey[:]) - if err != nil { - publicKey = nil - privateKey = nil - return - } - - curve25519.ScalarBaseMult(publicKey, privateKey) - return -} - -var zeros [16]byte - -// Precompute calculates the shared key between peersPublicKey and privateKey -// and writes it to sharedKey. The shared key can be used with -// OpenAfterPrecomputation and SealAfterPrecomputation to speed up processing -// when using the same pair of keys repeatedly. -func Precompute(sharedKey, peersPublicKey, privateKey *[32]byte) { - curve25519.ScalarMult(sharedKey, privateKey, peersPublicKey) - salsa.HSalsa20(sharedKey, &zeros, sharedKey, &salsa.Sigma) -} - -// Seal appends an encrypted and authenticated copy of message to out, which -// will be Overhead bytes longer than the original and must not overlap. The -// nonce must be unique for each distinct message for a given pair of keys. -func Seal(out, message []byte, nonce *[24]byte, peersPublicKey, privateKey *[32]byte) []byte { - var sharedKey [32]byte - Precompute(&sharedKey, peersPublicKey, privateKey) - return secretbox.Seal(out, message, nonce, &sharedKey) -} - -// SealAfterPrecomputation performs the same actions as Seal, but takes a -// shared key as generated by Precompute. -func SealAfterPrecomputation(out, message []byte, nonce *[24]byte, sharedKey *[32]byte) []byte { - return secretbox.Seal(out, message, nonce, sharedKey) -} - -// Open authenticates and decrypts a box produced by Seal and appends the -// message to out, which must not overlap box. The output will be Overhead -// bytes smaller than box. -func Open(out, box []byte, nonce *[24]byte, peersPublicKey, privateKey *[32]byte) ([]byte, bool) { - var sharedKey [32]byte - Precompute(&sharedKey, peersPublicKey, privateKey) - return secretbox.Open(out, box, nonce, &sharedKey) -} - -// OpenAfterPrecomputation performs the same actions as Open, but takes a -// shared key as generated by Precompute. -func OpenAfterPrecomputation(out, box []byte, nonce *[24]byte, sharedKey *[32]byte) ([]byte, bool) { - return secretbox.Open(out, box, nonce, sharedKey) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/box/box_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/box/box_test.go deleted file mode 100644 index 7f0f8760..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/box/box_test.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2012 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 box - -import ( - "bytes" - "crypto/rand" - "encoding/hex" - "testing" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519" -) - -func TestSealOpen(t *testing.T) { - publicKey1, privateKey1, _ := GenerateKey(rand.Reader) - publicKey2, privateKey2, _ := GenerateKey(rand.Reader) - - if *privateKey1 == *privateKey2 { - t.Fatalf("private keys are equal!") - } - if *publicKey1 == *publicKey2 { - t.Fatalf("public keys are equal!") - } - message := []byte("test message") - var nonce [24]byte - - box := Seal(nil, message, &nonce, publicKey1, privateKey2) - opened, ok := Open(nil, box, &nonce, publicKey2, privateKey1) - if !ok { - t.Fatalf("failed to open box") - } - - if !bytes.Equal(opened, message) { - t.Fatalf("got %x, want %x", opened, message) - } - - for i := range box { - box[i] ^= 0x40 - _, ok := Open(nil, box, &nonce, publicKey2, privateKey1) - if ok { - t.Fatalf("opened box with byte %d corrupted", i) - } - box[i] ^= 0x40 - } -} - -func TestBox(t *testing.T) { - var privateKey1, privateKey2 [32]byte - for i := range privateKey1[:] { - privateKey1[i] = 1 - } - for i := range privateKey2[:] { - privateKey2[i] = 2 - } - - var publicKey1 [32]byte - curve25519.ScalarBaseMult(&publicKey1, &privateKey1) - var message [64]byte - for i := range message[:] { - message[i] = 3 - } - - var nonce [24]byte - for i := range nonce[:] { - nonce[i] = 4 - } - - box := Seal(nil, message[:], &nonce, &publicKey1, &privateKey2) - - // expected was generated using the C implementation of NaCl. - expected, _ := hex.DecodeString("78ea30b19d2341ebbdba54180f821eec265cf86312549bea8a37652a8bb94f07b78a73ed1708085e6ddd0e943bbdeb8755079a37eb31d86163ce241164a47629c0539f330b4914cd135b3855bc2a2dfc") - - if !bytes.Equal(box, expected) { - t.Fatalf("box didn't match, got\n%x\n, expected\n%x", box, expected) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/secretbox/secretbox.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/secretbox/secretbox.go deleted file mode 100644 index 72ef50ea..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/secretbox/secretbox.go +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2012 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 secretbox encrypts and authenticates small messages. - -Secretbox uses XSalsa20 and Poly1305 to encrypt and authenticate messages with -secret-key cryptography. The length of messages is not hidden. - -It is the caller's responsibility to ensure the uniqueness of nonces—for -example, by using nonce 1 for the first message, nonce 2 for the second -message, etc. Nonces are long enough that randomly generated nonces have -negligible risk of collision. - -This package is interoperable with NaCl: http://nacl.cr.yp.to/secretbox.html. -*/ -package secretbox - -import ( - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa" -) - -// Overhead is the number of bytes of overhead when boxing a message. -const Overhead = poly1305.TagSize - -// setup produces a sub-key and Salsa20 counter given a nonce and key. -func setup(subKey *[32]byte, counter *[16]byte, nonce *[24]byte, key *[32]byte) { - // We use XSalsa20 for encryption so first we need to generate a - // key and nonce with HSalsa20. - var hNonce [16]byte - copy(hNonce[:], nonce[:]) - salsa.HSalsa20(subKey, &hNonce, key, &salsa.Sigma) - - // The final 8 bytes of the original nonce form the new nonce. - copy(counter[:], nonce[16:]) -} - -// sliceForAppend takes a slice and a requested number of bytes. It returns a -// slice with the contents of the given slice followed by that many bytes and a -// second slice that aliases into it and contains only the extra bytes. If the -// original slice has sufficient capacity then no allocation is performed. -func sliceForAppend(in []byte, n int) (head, tail []byte) { - if total := len(in) + n; cap(in) >= total { - head = in[:total] - } else { - head = make([]byte, total) - copy(head, in) - } - tail = head[len(in):] - return -} - -// Seal appends an encrypted and authenticated copy of message to out, which -// must not overlap message. The key and nonce pair must be unique for each -// distinct message and the output will be Overhead bytes longer than message. -func Seal(out, message []byte, nonce *[24]byte, key *[32]byte) []byte { - var subKey [32]byte - var counter [16]byte - setup(&subKey, &counter, nonce, key) - - // The Poly1305 key is generated by encrypting 32 bytes of zeros. Since - // Salsa20 works with 64-byte blocks, we also generate 32 bytes of - // keystream as a side effect. - var firstBlock [64]byte - salsa.XORKeyStream(firstBlock[:], firstBlock[:], &counter, &subKey) - - var poly1305Key [32]byte - copy(poly1305Key[:], firstBlock[:]) - - ret, out := sliceForAppend(out, len(message)+poly1305.TagSize) - - // We XOR up to 32 bytes of message with the keystream generated from - // the first block. - firstMessageBlock := message - if len(firstMessageBlock) > 32 { - firstMessageBlock = firstMessageBlock[:32] - } - - tagOut := out - out = out[poly1305.TagSize:] - for i, x := range firstMessageBlock { - out[i] = firstBlock[32+i] ^ x - } - message = message[len(firstMessageBlock):] - ciphertext := out - out = out[len(firstMessageBlock):] - - // Now encrypt the rest. - counter[8] = 1 - salsa.XORKeyStream(out, message, &counter, &subKey) - - var tag [poly1305.TagSize]byte - poly1305.Sum(&tag, ciphertext, &poly1305Key) - copy(tagOut, tag[:]) - - return ret -} - -// Open authenticates and decrypts a box produced by Seal and appends the -// message to out, which must not overlap box. The output will be Overhead -// bytes smaller than box. -func Open(out []byte, box []byte, nonce *[24]byte, key *[32]byte) ([]byte, bool) { - if len(box) < Overhead { - return nil, false - } - - var subKey [32]byte - var counter [16]byte - setup(&subKey, &counter, nonce, key) - - // The Poly1305 key is generated by encrypting 32 bytes of zeros. Since - // Salsa20 works with 64-byte blocks, we also generate 32 bytes of - // keystream as a side effect. - var firstBlock [64]byte - salsa.XORKeyStream(firstBlock[:], firstBlock[:], &counter, &subKey) - - var poly1305Key [32]byte - copy(poly1305Key[:], firstBlock[:]) - var tag [poly1305.TagSize]byte - copy(tag[:], box) - - if !poly1305.Verify(&tag, box[poly1305.TagSize:], &poly1305Key) { - return nil, false - } - - ret, out := sliceForAppend(out, len(box)-Overhead) - - // We XOR up to 32 bytes of box with the keystream generated from - // the first block. - box = box[Overhead:] - firstMessageBlock := box - if len(firstMessageBlock) > 32 { - firstMessageBlock = firstMessageBlock[:32] - } - for i, x := range firstMessageBlock { - out[i] = firstBlock[32+i] ^ x - } - - box = box[len(firstMessageBlock):] - out = out[len(firstMessageBlock):] - - // Now decrypt the rest. - counter[8] = 1 - salsa.XORKeyStream(out, box, &counter, &subKey) - - return ret, true -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/secretbox/secretbox_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/secretbox/secretbox_test.go deleted file mode 100644 index 664dc152..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/nacl/secretbox/secretbox_test.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2012 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 secretbox - -import ( - "bytes" - "crypto/rand" - "encoding/hex" - "testing" -) - -func TestSealOpen(t *testing.T) { - var key [32]byte - var nonce [24]byte - - rand.Reader.Read(key[:]) - rand.Reader.Read(nonce[:]) - - var box, opened []byte - - for msgLen := 0; msgLen < 128; msgLen += 17 { - message := make([]byte, msgLen) - rand.Reader.Read(message) - - box = Seal(box[:0], message, &nonce, &key) - var ok bool - opened, ok = Open(opened[:0], box, &nonce, &key) - if !ok { - t.Errorf("%d: failed to open box", msgLen) - continue - } - - if !bytes.Equal(opened, message) { - t.Errorf("%d: got %x, expected %x", msgLen, opened, message) - continue - } - } - - for i := range box { - box[i] ^= 0x20 - _, ok := Open(opened[:0], box, &nonce, &key) - if ok { - t.Errorf("box was opened after corrupting byte %d", i) - } - box[i] ^= 0x20 - } -} - -func TestSecretBox(t *testing.T) { - var key [32]byte - var nonce [24]byte - var message [64]byte - - for i := range key[:] { - key[i] = 1 - } - for i := range nonce[:] { - nonce[i] = 2 - } - for i := range message[:] { - message[i] = 3 - } - - box := Seal(nil, message[:], &nonce, &key) - // expected was generated using the C implementation of NaCl. - expected, _ := hex.DecodeString("8442bc313f4626f1359e3b50122b6ce6fe66ddfe7d39d14e637eb4fd5b45beadab55198df6ab5368439792a23c87db70acb6156dc5ef957ac04f6276cf6093b84be77ff0849cc33e34b7254d5a8f65ad") - - if !bytes.Equal(box, expected) { - t.Fatalf("box didn't match, got\n%x\n, expected\n%x", box, expected) - } -} - -func TestAppend(t *testing.T) { - var key [32]byte - var nonce [24]byte - var message [8]byte - - out := make([]byte, 4) - box := Seal(out, message[:], &nonce, &key) - if !bytes.Equal(box[:4], out[:4]) { - t.Fatalf("Seal didn't correctly append") - } - - out = make([]byte, 4, 100) - box = Seal(out, message[:], &nonce, &key) - if !bytes.Equal(box[:4], out[:4]) { - t.Fatalf("Seal didn't correctly append with sufficient capacity.") - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ocsp/ocsp.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ocsp/ocsp.go deleted file mode 100644 index 911caa01..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ocsp/ocsp.go +++ /dev/null @@ -1,608 +0,0 @@ -// 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 ocsp parses OCSP responses as specified in RFC 2560. OCSP responses -// are signed messages attesting to the validity of a certificate for a small -// period of time. This is used to manage revocation for X.509 certificates. -package ocsp - -import ( - "crypto" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rand" - "crypto/rsa" - "crypto/sha1" - "crypto/x509" - "crypto/x509/pkix" - "encoding/asn1" - "errors" - "math/big" - "time" -) - -var idPKIXOCSPBasic = asn1.ObjectIdentifier([]int{1, 3, 6, 1, 5, 5, 7, 48, 1, 1}) - -// These are internal structures that reflect the ASN.1 structure of an OCSP -// response. See RFC 2560, section 4.2. - -const ( - ocspSuccess = 0 - ocspMalformed = 1 - ocspInternalError = 2 - ocspTryLater = 3 - ocspSigRequired = 4 - ocspUnauthorized = 5 -) - -type certID struct { - HashAlgorithm pkix.AlgorithmIdentifier - NameHash []byte - IssuerKeyHash []byte - SerialNumber *big.Int -} - -// https://tools.ietf.org/html/rfc2560#section-4.1.1 -type ocspRequest struct { - TBSRequest tbsRequest -} - -type tbsRequest struct { - Version int `asn1:"explicit,tag:0,default:0,optional"` - RequestorName pkix.RDNSequence `asn1:"explicit,tag:1,optional"` - RequestList []request -} - -type request struct { - Cert certID -} - -type responseASN1 struct { - Status asn1.Enumerated - Response responseBytes `asn1:"explicit,tag:0"` -} - -type responseBytes struct { - ResponseType asn1.ObjectIdentifier - Response []byte -} - -type basicResponse struct { - TBSResponseData responseData - SignatureAlgorithm pkix.AlgorithmIdentifier - Signature asn1.BitString - Certificates []asn1.RawValue `asn1:"explicit,tag:0,optional"` -} - -type responseData struct { - Raw asn1.RawContent - Version int `asn1:"optional,default:1,explicit,tag:0"` - RawResponderName asn1.RawValue `asn1:"optional,explicit,tag:1"` - KeyHash []byte `asn1:"optional,explicit,tag:2"` - ProducedAt time.Time `asn1:"generalized"` - Responses []singleResponse -} - -type singleResponse struct { - CertID certID - Good asn1.Flag `asn1:"tag:0,optional"` - Revoked revokedInfo `asn1:"tag:1,optional"` - Unknown asn1.Flag `asn1:"tag:2,optional"` - ThisUpdate time.Time `asn1:"generalized"` - NextUpdate time.Time `asn1:"generalized,explicit,tag:0,optional"` -} - -type revokedInfo struct { - RevocationTime time.Time `asn1:"generalized"` - Reason asn1.Enumerated `asn1:"explicit,tag:0,optional"` -} - -var ( - oidSignatureMD2WithRSA = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 2} - oidSignatureMD5WithRSA = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 4} - oidSignatureSHA1WithRSA = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 5} - oidSignatureSHA256WithRSA = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 11} - oidSignatureSHA384WithRSA = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 12} - oidSignatureSHA512WithRSA = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 13} - oidSignatureDSAWithSHA1 = asn1.ObjectIdentifier{1, 2, 840, 10040, 4, 3} - oidSignatureDSAWithSHA256 = asn1.ObjectIdentifier{2, 16, 840, 1, 101, 4, 3, 2} - oidSignatureECDSAWithSHA1 = asn1.ObjectIdentifier{1, 2, 840, 10045, 4, 1} - oidSignatureECDSAWithSHA256 = asn1.ObjectIdentifier{1, 2, 840, 10045, 4, 3, 2} - oidSignatureECDSAWithSHA384 = asn1.ObjectIdentifier{1, 2, 840, 10045, 4, 3, 3} - oidSignatureECDSAWithSHA512 = asn1.ObjectIdentifier{1, 2, 840, 10045, 4, 3, 4} -) - -var hashOIDs = map[crypto.Hash]asn1.ObjectIdentifier{ - crypto.SHA1: asn1.ObjectIdentifier([]int{1, 3, 14, 3, 2, 26}), - crypto.SHA256: asn1.ObjectIdentifier([]int{2, 16, 840, 1, 101, 3, 4, 2, 1}), - crypto.SHA384: asn1.ObjectIdentifier([]int{2, 16, 840, 1, 101, 3, 4, 2, 2}), - crypto.SHA512: asn1.ObjectIdentifier([]int{2, 16, 840, 1, 101, 3, 4, 2, 3}), -} - -// TODO(rlb): This is also from crypto/x509, so same comment as AGL's below -var signatureAlgorithmDetails = []struct { - algo x509.SignatureAlgorithm - oid asn1.ObjectIdentifier - pubKeyAlgo x509.PublicKeyAlgorithm - hash crypto.Hash -}{ - {x509.MD2WithRSA, oidSignatureMD2WithRSA, x509.RSA, crypto.Hash(0) /* no value for MD2 */}, - {x509.MD5WithRSA, oidSignatureMD5WithRSA, x509.RSA, crypto.MD5}, - {x509.SHA1WithRSA, oidSignatureSHA1WithRSA, x509.RSA, crypto.SHA1}, - {x509.SHA256WithRSA, oidSignatureSHA256WithRSA, x509.RSA, crypto.SHA256}, - {x509.SHA384WithRSA, oidSignatureSHA384WithRSA, x509.RSA, crypto.SHA384}, - {x509.SHA512WithRSA, oidSignatureSHA512WithRSA, x509.RSA, crypto.SHA512}, - {x509.DSAWithSHA1, oidSignatureDSAWithSHA1, x509.DSA, crypto.SHA1}, - {x509.DSAWithSHA256, oidSignatureDSAWithSHA256, x509.DSA, crypto.SHA256}, - {x509.ECDSAWithSHA1, oidSignatureECDSAWithSHA1, x509.ECDSA, crypto.SHA1}, - {x509.ECDSAWithSHA256, oidSignatureECDSAWithSHA256, x509.ECDSA, crypto.SHA256}, - {x509.ECDSAWithSHA384, oidSignatureECDSAWithSHA384, x509.ECDSA, crypto.SHA384}, - {x509.ECDSAWithSHA512, oidSignatureECDSAWithSHA512, x509.ECDSA, crypto.SHA512}, -} - -// TODO(rlb): This is also from crypto/x509, so same comment as AGL's below -func signingParamsForPublicKey(pub interface{}, requestedSigAlgo x509.SignatureAlgorithm) (hashFunc crypto.Hash, sigAlgo pkix.AlgorithmIdentifier, err error) { - var pubType x509.PublicKeyAlgorithm - - switch pub := pub.(type) { - case *rsa.PublicKey: - pubType = x509.RSA - hashFunc = crypto.SHA256 - sigAlgo.Algorithm = oidSignatureSHA256WithRSA - sigAlgo.Parameters = asn1.RawValue{ - Tag: 5, - } - - case *ecdsa.PublicKey: - pubType = x509.ECDSA - - switch pub.Curve { - case elliptic.P224(), elliptic.P256(): - hashFunc = crypto.SHA256 - sigAlgo.Algorithm = oidSignatureECDSAWithSHA256 - case elliptic.P384(): - hashFunc = crypto.SHA384 - sigAlgo.Algorithm = oidSignatureECDSAWithSHA384 - case elliptic.P521(): - hashFunc = crypto.SHA512 - sigAlgo.Algorithm = oidSignatureECDSAWithSHA512 - default: - err = errors.New("x509: unknown elliptic curve") - } - - default: - err = errors.New("x509: only RSA and ECDSA keys supported") - } - - if err != nil { - return - } - - if requestedSigAlgo == 0 { - return - } - - found := false - for _, details := range signatureAlgorithmDetails { - if details.algo == requestedSigAlgo { - if details.pubKeyAlgo != pubType { - err = errors.New("x509: requested SignatureAlgorithm does not match private key type") - return - } - sigAlgo.Algorithm, hashFunc = details.oid, details.hash - if hashFunc == 0 { - err = errors.New("x509: cannot sign with hash function requested") - return - } - found = true - break - } - } - - if !found { - err = errors.New("x509: unknown SignatureAlgorithm") - } - - return -} - -// TODO(agl): this is taken from crypto/x509 and so should probably be exported -// from crypto/x509 or crypto/x509/pkix. -func getSignatureAlgorithmFromOID(oid asn1.ObjectIdentifier) x509.SignatureAlgorithm { - for _, details := range signatureAlgorithmDetails { - if oid.Equal(details.oid) { - return details.algo - } - } - return x509.UnknownSignatureAlgorithm -} - -// TODO(rlb): This is not taken from crypto/x509, but it's of the same general form. -func getHashAlgorithmFromOID(target asn1.ObjectIdentifier) crypto.Hash { - for hash, oid := range hashOIDs { - if oid.Equal(target) { - return hash - } - } - return crypto.Hash(0) -} - -// This is the exposed reflection of the internal OCSP structures. - -// The status values that can be expressed in OCSP. See RFC 6960. -const ( - // Good means that the certificate is valid. - Good = iota - // Revoked means that the certificate has been deliberately revoked. - Revoked = iota - // Unknown means that the OCSP responder doesn't know about the certificate. - Unknown = iota - // ServerFailed means that the OCSP responder failed to process the request. - ServerFailed = iota -) - -// The enumerated reasons for revoking a certificate. See RFC 5280. -const ( - Unspecified = iota - KeyCompromise = iota - CACompromise = iota - AffiliationChanged = iota - Superseded = iota - CessationOfOperation = iota - CertificateHold = iota - _ = iota - RemoveFromCRL = iota - PrivilegeWithdrawn = iota - AACompromise = iota -) - -// Request represents an OCSP request. See RFC 2560. -type Request struct { - HashAlgorithm crypto.Hash - IssuerNameHash []byte - IssuerKeyHash []byte - SerialNumber *big.Int -} - -// Response represents an OCSP response. See RFC 2560. -type Response struct { - // Status is one of {Good, Revoked, Unknown, ServerFailed} - Status int - SerialNumber *big.Int - ProducedAt, ThisUpdate, NextUpdate, RevokedAt time.Time - RevocationReason int - Certificate *x509.Certificate - // TBSResponseData contains the raw bytes of the signed response. If - // Certificate is nil then this can be used to verify Signature. - TBSResponseData []byte - Signature []byte - SignatureAlgorithm x509.SignatureAlgorithm -} - -// These are pre-serialized error responses for the various non-success codes -// defined by OCSP. The Unauthorized code in particular can be used by an OCSP -// responder that supports only pre-signed responses as a response to requests -// for certificates with unknown status. See RFC 5019. -var ( - MalformedRequestErrorResponse = []byte{0x30, 0x03, 0x0A, 0x01, 0x01} - InternalErrorErrorResponse = []byte{0x30, 0x03, 0x0A, 0x01, 0x02} - TryLaterErrorResponse = []byte{0x30, 0x03, 0x0A, 0x01, 0x03} - SigRequredErrorResponse = []byte{0x30, 0x03, 0x0A, 0x01, 0x05} - UnauthorizedErrorResponse = []byte{0x30, 0x03, 0x0A, 0x01, 0x06} -) - -// CheckSignatureFrom checks that the signature in resp is a valid signature -// from issuer. This should only be used if resp.Certificate is nil. Otherwise, -// the OCSP response contained an intermediate certificate that created the -// signature. That signature is checked by ParseResponse and only -// resp.Certificate remains to be validated. -func (resp *Response) CheckSignatureFrom(issuer *x509.Certificate) error { - return issuer.CheckSignature(resp.SignatureAlgorithm, resp.TBSResponseData, resp.Signature) -} - -// ParseError results from an invalid OCSP response. -type ParseError string - -func (p ParseError) Error() string { - return string(p) -} - -// ParseRequest parses an OCSP request in DER form. It only supports -// requests for a single certificate. Signed requests are not supported. -// If a request includes a signature, it will result in a ParseError. -func ParseRequest(bytes []byte) (*Request, error) { - var req ocspRequest - rest, err := asn1.Unmarshal(bytes, &req) - if err != nil { - return nil, err - } - if len(rest) > 0 { - return nil, ParseError("trailing data in OCSP request") - } - - if len(req.TBSRequest.RequestList) == 0 { - return nil, ParseError("OCSP request contains no request body") - } - innerRequest := req.TBSRequest.RequestList[0] - - hashFunc := getHashAlgorithmFromOID(innerRequest.Cert.HashAlgorithm.Algorithm) - if hashFunc == crypto.Hash(0) { - return nil, ParseError("OCSP request uses unknown hash function") - } - - return &Request{ - HashAlgorithm: hashFunc, - IssuerNameHash: innerRequest.Cert.NameHash, - IssuerKeyHash: innerRequest.Cert.IssuerKeyHash, - SerialNumber: innerRequest.Cert.SerialNumber, - }, nil -} - -// ParseResponse parses an OCSP response in DER form. It only supports -// responses for a single certificate. If the response contains a certificate -// then the signature over the response is checked. If issuer is not nil then -// it will be used to validate the signature or embedded certificate. Invalid -// signatures or parse failures will result in a ParseError. -func ParseResponse(bytes []byte, issuer *x509.Certificate) (*Response, error) { - var resp responseASN1 - rest, err := asn1.Unmarshal(bytes, &resp) - if err != nil { - return nil, err - } - if len(rest) > 0 { - return nil, ParseError("trailing data in OCSP response") - } - - ret := new(Response) - if resp.Status != ocspSuccess { - ret.Status = ServerFailed - return ret, nil - } - - if !resp.Response.ResponseType.Equal(idPKIXOCSPBasic) { - return nil, ParseError("bad OCSP response type") - } - - var basicResp basicResponse - rest, err = asn1.Unmarshal(resp.Response.Response, &basicResp) - if err != nil { - return nil, err - } - - if len(basicResp.Certificates) > 1 { - return nil, ParseError("OCSP response contains bad number of certificates") - } - - if len(basicResp.TBSResponseData.Responses) != 1 { - return nil, ParseError("OCSP response contains bad number of responses") - } - - ret.TBSResponseData = basicResp.TBSResponseData.Raw - ret.Signature = basicResp.Signature.RightAlign() - ret.SignatureAlgorithm = getSignatureAlgorithmFromOID(basicResp.SignatureAlgorithm.Algorithm) - - if len(basicResp.Certificates) > 0 { - ret.Certificate, err = x509.ParseCertificate(basicResp.Certificates[0].FullBytes) - if err != nil { - return nil, err - } - - if err := ret.CheckSignatureFrom(ret.Certificate); err != nil { - return nil, ParseError("bad OCSP signature") - } - - if issuer != nil { - if err := issuer.CheckSignature(ret.Certificate.SignatureAlgorithm, ret.Certificate.RawTBSCertificate, ret.Certificate.Signature); err != nil { - return nil, ParseError("bad signature on embedded certificate") - } - } - } else if issuer != nil { - if err := ret.CheckSignatureFrom(issuer); err != nil { - return nil, ParseError("bad OCSP signature") - } - } - - r := basicResp.TBSResponseData.Responses[0] - - ret.SerialNumber = r.CertID.SerialNumber - - switch { - case bool(r.Good): - ret.Status = Good - case bool(r.Unknown): - ret.Status = Unknown - default: - ret.Status = Revoked - ret.RevokedAt = r.Revoked.RevocationTime - ret.RevocationReason = int(r.Revoked.Reason) - } - - ret.ProducedAt = basicResp.TBSResponseData.ProducedAt - ret.ThisUpdate = r.ThisUpdate - ret.NextUpdate = r.NextUpdate - - return ret, nil -} - -// RequestOptions contains options for constructing OCSP requests. -type RequestOptions struct { - // Hash contains the hash function that should be used when - // constructing the OCSP request. If zero, SHA-1 will be used. - Hash crypto.Hash -} - -func (opts *RequestOptions) hash() crypto.Hash { - if opts == nil || opts.Hash == 0 { - // SHA-1 is nearly universally used in OCSP. - return crypto.SHA1 - } - return opts.Hash -} - -// CreateRequest returns a DER-encoded, OCSP request for the status of cert. If -// opts is nil then sensible defaults are used. -func CreateRequest(cert, issuer *x509.Certificate, opts *RequestOptions) ([]byte, error) { - hashFunc := opts.hash() - - // OCSP seems to be the only place where these raw hash identifiers are - // used. I took the following from - // http://msdn.microsoft.com/en-us/library/ff635603.aspx - var hashOID asn1.ObjectIdentifier - hashOID, ok := hashOIDs[hashFunc] - if !ok { - return nil, x509.ErrUnsupportedAlgorithm - } - - if !hashFunc.Available() { - return nil, x509.ErrUnsupportedAlgorithm - } - h := opts.hash().New() - - var publicKeyInfo struct { - Algorithm pkix.AlgorithmIdentifier - PublicKey asn1.BitString - } - if _, err := asn1.Unmarshal(issuer.RawSubjectPublicKeyInfo, &publicKeyInfo); err != nil { - return nil, err - } - - h.Write(publicKeyInfo.PublicKey.RightAlign()) - issuerKeyHash := h.Sum(nil) - - h.Reset() - h.Write(issuer.RawSubject) - issuerNameHash := h.Sum(nil) - - return asn1.Marshal(ocspRequest{ - tbsRequest{ - Version: 0, - RequestList: []request{ - { - Cert: certID{ - pkix.AlgorithmIdentifier{ - Algorithm: hashOID, - Parameters: asn1.RawValue{Tag: 5 /* ASN.1 NULL */}, - }, - issuerNameHash, - issuerKeyHash, - cert.SerialNumber, - }, - }, - }, - }, - }) -} - -// CreateResponse returns a DER-encoded OCSP response with the specified contents. -// The fields in the response are populated as follows: -// -// The responder cert is used to populate the ResponderName field, and the certificate -// itself is provided alongside the OCSP response signature. -// -// The issuer cert is used to puplate the IssuerNameHash and IssuerKeyHash fields. -// (SHA-1 is used for the hash function; this is not configurable.) -// -// The template is used to populate the SerialNumber, RevocationStatus, RevokedAt, -// RevocationReason, ThisUpdate, and NextUpdate fields. -// -// The ProducedAt date is automatically set to the current date, to the nearest minute. -func CreateResponse(issuer, responderCert *x509.Certificate, template Response, priv crypto.Signer) ([]byte, error) { - var publicKeyInfo struct { - Algorithm pkix.AlgorithmIdentifier - PublicKey asn1.BitString - } - if _, err := asn1.Unmarshal(issuer.RawSubjectPublicKeyInfo, &publicKeyInfo); err != nil { - return nil, err - } - - h := sha1.New() - h.Write(publicKeyInfo.PublicKey.RightAlign()) - issuerKeyHash := h.Sum(nil) - - h.Reset() - h.Write(issuer.RawSubject) - issuerNameHash := h.Sum(nil) - - innerResponse := singleResponse{ - CertID: certID{ - HashAlgorithm: pkix.AlgorithmIdentifier{ - Algorithm: hashOIDs[crypto.SHA1], - Parameters: asn1.RawValue{Tag: 5 /* ASN.1 NULL */}, - }, - NameHash: issuerNameHash, - IssuerKeyHash: issuerKeyHash, - SerialNumber: template.SerialNumber, - }, - ThisUpdate: template.ThisUpdate.UTC(), - NextUpdate: template.NextUpdate.UTC(), - } - - switch template.Status { - case Good: - innerResponse.Good = true - case Unknown: - innerResponse.Unknown = true - case Revoked: - innerResponse.Revoked = revokedInfo{ - RevocationTime: template.RevokedAt.UTC(), - Reason: asn1.Enumerated(template.RevocationReason), - } - } - - responderName := asn1.RawValue{ - Class: 2, // context-specific - Tag: 1, // explicit tag - IsCompound: true, - Bytes: responderCert.RawSubject, - } - tbsResponseData := responseData{ - Version: 0, - RawResponderName: responderName, - ProducedAt: time.Now().Truncate(time.Minute).UTC(), - Responses: []singleResponse{innerResponse}, - } - - tbsResponseDataDER, err := asn1.Marshal(tbsResponseData) - if err != nil { - return nil, err - } - - hashFunc, signatureAlgorithm, err := signingParamsForPublicKey(priv.Public(), template.SignatureAlgorithm) - if err != nil { - return nil, err - } - - responseHash := hashFunc.New() - responseHash.Write(tbsResponseDataDER) - signature, err := priv.Sign(rand.Reader, responseHash.Sum(nil), hashFunc) - if err != nil { - return nil, err - } - - response := basicResponse{ - TBSResponseData: tbsResponseData, - SignatureAlgorithm: signatureAlgorithm, - Signature: asn1.BitString{ - Bytes: signature, - BitLength: 8 * len(signature), - }, - } - if template.Certificate != nil { - response.Certificates = []asn1.RawValue{ - asn1.RawValue{FullBytes: template.Certificate.Raw}, - } - } - responseDER, err := asn1.Marshal(response) - if err != nil { - return nil, err - } - - return asn1.Marshal(responseASN1{ - Status: ocspSuccess, - Response: responseBytes{ - ResponseType: idPKIXOCSPBasic, - Response: responseDER, - }, - }) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ocsp/ocsp_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ocsp/ocsp_test.go deleted file mode 100644 index d55682ff..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ocsp/ocsp_test.go +++ /dev/null @@ -1,453 +0,0 @@ -// 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 ocsp - -import ( - "bytes" - "crypto" - "crypto/sha1" - "crypto/x509" - "crypto/x509/pkix" - "encoding/asn1" - "encoding/hex" - "math/big" - "reflect" - "testing" - "time" -) - -func TestOCSPDecode(t *testing.T) { - responseBytes, _ := hex.DecodeString(ocspResponseHex) - resp, err := ParseResponse(responseBytes, nil) - if err != nil { - t.Error(err) - } - - expected := Response{ - Status: Good, - SerialNumber: big.NewInt(0x1d0fa), - RevocationReason: Unspecified, - ThisUpdate: time.Date(2010, 7, 7, 15, 1, 5, 0, time.UTC), - NextUpdate: time.Date(2010, 7, 7, 18, 35, 17, 0, time.UTC), - } - - if !reflect.DeepEqual(resp.ThisUpdate, expected.ThisUpdate) { - t.Errorf("resp.ThisUpdate: got %d, want %d", resp.ThisUpdate, expected.ThisUpdate) - } - - if !reflect.DeepEqual(resp.NextUpdate, expected.NextUpdate) { - t.Errorf("resp.NextUpdate: got %d, want %d", resp.NextUpdate, expected.NextUpdate) - } - - if resp.Status != expected.Status { - t.Errorf("resp.Status: got %d, want %d", resp.Status, expected.Status) - } - - if resp.SerialNumber.Cmp(expected.SerialNumber) != 0 { - t.Errorf("resp.SerialNumber: got %x, want %x", resp.SerialNumber, expected.SerialNumber) - } - - if resp.RevocationReason != expected.RevocationReason { - t.Errorf("resp.RevocationReason: got %d, want %d", resp.RevocationReason, expected.RevocationReason) - } -} - -func TestOCSPDecodeWithoutCert(t *testing.T) { - responseBytes, _ := hex.DecodeString(ocspResponseWithoutCertHex) - _, err := ParseResponse(responseBytes, nil) - if err != nil { - t.Error(err) - } -} - -func TestOCSPSignature(t *testing.T) { - issuerCert, _ := hex.DecodeString(startComHex) - issuer, err := x509.ParseCertificate(issuerCert) - if err != nil { - t.Fatal(err) - } - - response, _ := hex.DecodeString(ocspResponseHex) - if _, err := ParseResponse(response, issuer); err != nil { - t.Error(err) - } -} - -func TestOCSPRequest(t *testing.T) { - leafCert, _ := hex.DecodeString(leafCertHex) - cert, err := x509.ParseCertificate(leafCert) - if err != nil { - t.Fatal(err) - } - - issuerCert, _ := hex.DecodeString(issuerCertHex) - issuer, err := x509.ParseCertificate(issuerCert) - if err != nil { - t.Fatal(err) - } - - request, err := CreateRequest(cert, issuer, nil) - if err != nil { - t.Fatal(err) - } - - expectedBytes, _ := hex.DecodeString(ocspRequestHex) - if !bytes.Equal(request, expectedBytes) { - t.Errorf("request: got %x, wanted %x", request, expectedBytes) - } - - decodedRequest, err := ParseRequest(expectedBytes) - if err != nil { - t.Fatal(err) - } - - if decodedRequest.HashAlgorithm != crypto.SHA1 { - t.Errorf("request.HashAlgorithm: got %v, want %v", decodedRequest.HashAlgorithm, crypto.SHA1) - } - - var publicKeyInfo struct { - Algorithm pkix.AlgorithmIdentifier - PublicKey asn1.BitString - } - _, err = asn1.Unmarshal(issuer.RawSubjectPublicKeyInfo, &publicKeyInfo) - if err != nil { - t.Fatal(err) - } - - h := sha1.New() - h.Write(publicKeyInfo.PublicKey.RightAlign()) - issuerKeyHash := h.Sum(nil) - - h.Reset() - h.Write(issuer.RawSubject) - issuerNameHash := h.Sum(nil) - - if got := decodedRequest.IssuerKeyHash; !bytes.Equal(got, issuerKeyHash) { - t.Errorf("request.IssuerKeyHash: got %x, want %x", got, issuerKeyHash) - } - - if got := decodedRequest.IssuerNameHash; !bytes.Equal(got, issuerNameHash) { - t.Errorf("request.IssuerKeyHash: got %x, want %x", got, issuerNameHash) - } - - if got := decodedRequest.SerialNumber; got.Cmp(cert.SerialNumber) != 0 { - t.Errorf("request.SerialNumber: got %x, want %x", got, cert.SerialNumber) - } -} - -func TestOCSPResponse(t *testing.T) { - leafCert, _ := hex.DecodeString(leafCertHex) - leaf, err := x509.ParseCertificate(leafCert) - if err != nil { - t.Fatal(err) - } - - issuerCert, _ := hex.DecodeString(issuerCertHex) - issuer, err := x509.ParseCertificate(issuerCert) - if err != nil { - t.Fatal(err) - } - - responderCert, _ := hex.DecodeString(responderCertHex) - responder, err := x509.ParseCertificate(responderCert) - if err != nil { - t.Fatal(err) - } - - responderPrivateKeyDER, _ := hex.DecodeString(responderPrivateKeyHex) - responderPrivateKey, err := x509.ParsePKCS1PrivateKey(responderPrivateKeyDER) - if err != nil { - t.Fatal(err) - } - - producedAt := time.Now().Truncate(time.Minute) - thisUpdate := time.Date(2010, 7, 7, 15, 1, 5, 0, time.UTC) - nextUpdate := time.Date(2010, 7, 7, 18, 35, 17, 0, time.UTC) - template := Response{ - Status: Revoked, - SerialNumber: leaf.SerialNumber, - ThisUpdate: thisUpdate, - NextUpdate: nextUpdate, - RevokedAt: thisUpdate, - RevocationReason: KeyCompromise, - Certificate: responder, - } - - responseBytes, err := CreateResponse(issuer, responder, template, responderPrivateKey) - if err != nil { - t.Fatal(err) - } - - resp, err := ParseResponse(responseBytes, nil) - if err != nil { - t.Fatal(err) - } - - if !reflect.DeepEqual(resp.ThisUpdate, template.ThisUpdate) { - t.Errorf("resp.ThisUpdate: got %d, want %d", resp.ThisUpdate, template.ThisUpdate) - } - - if !reflect.DeepEqual(resp.NextUpdate, template.NextUpdate) { - t.Errorf("resp.NextUpdate: got %d, want %d", resp.NextUpdate, template.NextUpdate) - } - - if !reflect.DeepEqual(resp.RevokedAt, template.RevokedAt) { - t.Errorf("resp.RevokedAt: got %d, want %d", resp.RevokedAt, template.RevokedAt) - } - - if !resp.ProducedAt.Equal(producedAt) { - t.Errorf("resp.ProducedAt: got %d, want %d", resp.ProducedAt, producedAt) - } - - if resp.Status != template.Status { - t.Errorf("resp.Status: got %d, want %d", resp.Status, template.Status) - } - - if resp.SerialNumber.Cmp(template.SerialNumber) != 0 { - t.Errorf("resp.SerialNumber: got %x, want %x", resp.SerialNumber, template.SerialNumber) - } - - if resp.RevocationReason != template.RevocationReason { - t.Errorf("resp.RevocationReason: got %d, want %d", resp.RevocationReason, template.RevocationReason) - } -} - -// This OCSP response was taken from Thawte's public OCSP responder. -// To recreate: -// $ openssl s_client -tls1 -showcerts -servername www.google.com -connect www.google.com:443 -// Copy and paste the first certificate into /tmp/cert.crt and the second into -// /tmp/intermediate.crt -// $ openssl ocsp -issuer /tmp/intermediate.crt -cert /tmp/cert.crt -url http://ocsp.thawte.com -resp_text -respout /tmp/ocsp.der -// Then hex encode the result: -// $ python -c 'print file("/tmp/ocsp.der", "r").read().encode("hex")' - -const ocspResponseHex = "308206bc0a0100a08206b5308206b106092b0601050507300101048206a23082069e3081" + - "c9a14e304c310b300906035504061302494c31163014060355040a130d5374617274436f" + - "6d204c74642e312530230603550403131c5374617274436f6d20436c6173732031204f43" + - "5350205369676e6572180f32303130303730373137333531375a30663064303c30090605" + - "2b0e03021a050004146568874f40750f016a3475625e1f5c93e5a26d580414eb4234d098" + - "b0ab9ff41b6b08f7cc642eef0e2c45020301d0fa8000180f323031303037303731353031" + - "30355aa011180f32303130303730373138333531375a300d06092a864886f70d01010505" + - "000382010100ab557ff070d1d7cebbb5f0ec91a15c3fed22eb2e1b8244f1b84545f013a4" + - "fb46214c5e3fbfbebb8a56acc2b9db19f68fd3c3201046b3824d5ba689f99864328710cb" + - "467195eb37d84f539e49f859316b32964dc3e47e36814ce94d6c56dd02733b1d0802f7ff" + - "4eebdbbd2927dcf580f16cbc290f91e81b53cb365e7223f1d6e20a88ea064104875e0145" + - "672b20fc14829d51ca122f5f5d77d3ad6c83889c55c7dc43680ba2fe3cef8b05dbcabdc0" + - "d3e09aaf9725597f8c858c2fa38c0d6aed2e6318194420dd1a1137445d13e1c97ab47896" + - "17a4e08925f46f867b72e3a4dc1f08cb870b2b0717f7207faa0ac512e628a029aba7457a" + - "e63dcf3281e2162d9349a08204ba308204b6308204b23082039aa003020102020101300d" + - "06092a864886f70d010105050030818c310b300906035504061302494c31163014060355" + - "040a130d5374617274436f6d204c74642e312b3029060355040b13225365637572652044" + - "69676974616c204365727469666963617465205369676e696e6731383036060355040313" + - "2f5374617274436f6d20436c6173732031205072696d61727920496e7465726d65646961" + - "746520536572766572204341301e170d3037313032353030323330365a170d3132313032" + - "333030323330365a304c310b300906035504061302494c31163014060355040a130d5374" + - "617274436f6d204c74642e312530230603550403131c5374617274436f6d20436c617373" + - "2031204f435350205369676e657230820122300d06092a864886f70d0101010500038201" + - "0f003082010a0282010100b9561b4c45318717178084e96e178df2255e18ed8d8ecc7c2b" + - "7b51a6c1c2e6bf0aa3603066f132fe10ae97b50e99fa24b83fc53dd2777496387d14e1c3" + - "a9b6a4933e2ac12413d085570a95b8147414a0bc007c7bcf222446ef7f1a156d7ea1c577" + - "fc5f0facdfd42eb0f5974990cb2f5cefebceef4d1bdc7ae5c1075c5a99a93171f2b0845b" + - "4ff0864e973fcfe32f9d7511ff87a3e943410c90a4493a306b6944359340a9ca96f02b66" + - "ce67f028df2980a6aaee8d5d5d452b8b0eb93f923cc1e23fcccbdbe7ffcb114d08fa7a6a" + - "3c404f825d1a0e715935cf623a8c7b59670014ed0622f6089a9447a7a19010f7fe58f841" + - "29a2765ea367824d1c3bb2fda308530203010001a382015c30820158300c0603551d1301" + - "01ff04023000300b0603551d0f0404030203a8301e0603551d250417301506082b060105" + - "0507030906092b0601050507300105301d0603551d0e0416041445e0a36695414c5dd449" + - "bc00e33cdcdbd2343e173081a80603551d230481a030819d8014eb4234d098b0ab9ff41b" + - "6b08f7cc642eef0e2c45a18181a47f307d310b300906035504061302494c311630140603" + - "55040a130d5374617274436f6d204c74642e312b3029060355040b132253656375726520" + - "4469676974616c204365727469666963617465205369676e696e67312930270603550403" + - "13205374617274436f6d2043657274696669636174696f6e20417574686f726974798201" + - "0a30230603551d12041c301a8618687474703a2f2f7777772e737461727473736c2e636f" + - "6d2f302c06096086480186f842010d041f161d5374617274436f6d205265766f63617469" + - "6f6e20417574686f72697479300d06092a864886f70d01010505000382010100182d2215" + - "8f0fc0291324fa8574c49bb8ff2835085adcbf7b7fc4191c397ab6951328253fffe1e5ec" + - "2a7da0d50fca1a404e6968481366939e666c0a6209073eca57973e2fefa9ed1718e8176f" + - "1d85527ff522c08db702e3b2b180f1cbff05d98128252cf0f450f7dd2772f4188047f19d" + - "c85317366f94bc52d60f453a550af58e308aaab00ced33040b62bf37f5b1ab2a4f7f0f80" + - "f763bf4d707bc8841d7ad9385ee2a4244469260b6f2bf085977af9074796048ecc2f9d48" + - "a1d24ce16e41a9941568fec5b42771e118f16c106a54ccc339a4b02166445a167902e75e" + - "6d8620b0825dcd18a069b90fd851d10fa8effd409deec02860d26d8d833f304b10669b42" - -const startComHex = "308206343082041ca003020102020118300d06092a864886f70d0101050500307d310b30" + - "0906035504061302494c31163014060355040a130d5374617274436f6d204c74642e312b" + - "3029060355040b1322536563757265204469676974616c20436572746966696361746520" + - "5369676e696e6731293027060355040313205374617274436f6d20436572746966696361" + - "74696f6e20417574686f72697479301e170d3037313032343230353431375a170d313731" + - "3032343230353431375a30818c310b300906035504061302494c31163014060355040a13" + - "0d5374617274436f6d204c74642e312b3029060355040b13225365637572652044696769" + - "74616c204365727469666963617465205369676e696e67313830360603550403132f5374" + - "617274436f6d20436c6173732031205072696d61727920496e7465726d65646961746520" + - "53657276657220434130820122300d06092a864886f70d01010105000382010f00308201" + - "0a0282010100b689c6acef09527807ac9263d0f44418188480561f91aee187fa3250b4d3" + - "4706f0e6075f700e10f71dc0ce103634855a0f92ac83c6ac58523fba38e8fce7a724e240" + - "a60876c0926e9e2a6d4d3f6e61200adb59ded27d63b33e46fefa215118d7cd30a6ed076e" + - "3b7087b4f9faebee823c056f92f7a4dc0a301e9373fe07cad75f809d225852ae06da8b87" + - "2369b0e42ad8ea83d2bdf371db705a280faf5a387045123f304dcd3baf17e50fcba0a95d" + - "48aab16150cb34cd3c5cc30be810c08c9bf0030362feb26c3e720eee1c432ac9480e5739" + - "c43121c810c12c87fe5495521f523c31129b7fe7c0a0a559d5e28f3ef0d5a8e1d77031a9" + - "c4b3cfaf6d532f06f4a70203010001a38201ad308201a9300f0603551d130101ff040530" + - "030101ff300e0603551d0f0101ff040403020106301d0603551d0e04160414eb4234d098" + - "b0ab9ff41b6b08f7cc642eef0e2c45301f0603551d230418301680144e0bef1aa4405ba5" + - "17698730ca346843d041aef2306606082b06010505070101045a3058302706082b060105" + - "05073001861b687474703a2f2f6f6373702e737461727473736c2e636f6d2f6361302d06" + - "082b060105050730028621687474703a2f2f7777772e737461727473736c2e636f6d2f73" + - "667363612e637274305b0603551d1f045430523027a025a0238621687474703a2f2f7777" + - "772e737461727473736c2e636f6d2f73667363612e63726c3027a025a023862168747470" + - "3a2f2f63726c2e737461727473736c2e636f6d2f73667363612e63726c3081800603551d" + - "20047930773075060b2b0601040181b5370102013066302e06082b060105050702011622" + - "687474703a2f2f7777772e737461727473736c2e636f6d2f706f6c6963792e7064663034" + - "06082b060105050702011628687474703a2f2f7777772e737461727473736c2e636f6d2f" + - "696e7465726d6564696174652e706466300d06092a864886f70d01010505000382020100" + - "2109493ea5886ee00b8b48da314d8ff75657a2e1d36257e9b556f38545753be5501f048b" + - "e6a05a3ee700ae85d0fbff200364cbad02e1c69172f8a34dd6dee8cc3fa18aa2e37c37a7" + - "c64f8f35d6f4d66e067bdd21d9cf56ffcb302249fe8904f385e5aaf1e71fe875904dddf9" + - "46f74234f745580c110d84b0c6da5d3ef9019ee7e1da5595be741c7bfc4d144fac7e5547" + - "7d7bf4a50d491e95e8f712c1ccff76a62547d0f37535be97b75816ebaa5c786fec5330af" + - "ea044dcca902e3f0b60412f630b1113d904e5664d7dc3c435f7339ef4baf87ebf6fe6888" + - "4472ead207c669b0c1a18bef1749d761b145485f3b2021e95bb2ccf4d7e931f50b15613b" + - "7a94e3ebd9bc7f94ae6ae3626296a8647cb887f399327e92a252bebbf865cfc9f230fc8b" + - "c1c2a696d75f89e15c3480f58f47072fb491bfb1a27e5f4b5ad05b9f248605515a690365" + - "434971c5e06f94346bf61bd8a9b04c7e53eb8f48dfca33b548fa364a1a53a6330cd089cd" + - "4915cd89313c90c072d7654b52358a461144b93d8e2865a63e799e5c084429adb035112e" + - "214eb8d2e7103e5d8483b3c3c2e4d2c6fd094b7409ddf1b3d3193e800da20b19f038e7c5" + - "c2afe223db61e29d5c6e2089492e236ab262c145b49faf8ba7f1223bf87de290d07a19fb" + - "4a4ce3d27d5f4a8303ed27d6239e6b8db459a2d9ef6c8229dd75193c3f4c108defbb7527" + - "d2ae83a7a8ce5ba7" - -const ocspResponseWithoutCertHex = "308201d40a0100a08201cd308201c906092b0601050507300101048201ba3082" + - "01b630819fa2160414884451ff502a695e2d88f421bad90cf2cecbea7c180f3230313330" + - "3631383037323434335a30743072304a300906052b0e03021a0500041448b60d38238df8" + - "456e4ee5843ea394111802979f0414884451ff502a695e2d88f421bad90cf2cecbea7c02" + - "1100f78b13b946fc9635d8ab49de9d2148218000180f3230313330363138303732343433" + - "5aa011180f32303133303632323037323434335a300d06092a864886f70d010105050003" + - "82010100103e18b3d297a5e7a6c07a4fc52ac46a15c0eba96f3be17f0ffe84de5b8c8e05" + - "5a8f577586a849dc4abd6440eb6fedde4622451e2823c1cbf3558b4e8184959c9fe96eff" + - "8bc5f95866c58c6d087519faabfdae37e11d9874f1bc0db292208f645dd848185e4dd38b" + - "6a8547dfa7b74d514a8470015719064d35476b95bebb03d4d2845c5ca15202d2784878f2" + - "0f904c24f09736f044609e9c271381713400e563023d212db422236440c6f377bbf24b2b" + - "9e7dec8698e36a8df68b7592ad3489fb2937afb90eb85d2aa96b81c94c25057dbd4759d9" + - "20a1a65c7f0b6427a224b3c98edd96b9b61f706099951188b0289555ad30a216fb774651" + - "5a35fca2e054dfa8" - -const ocspRequestHex = "3051304f304d304b3049300906052b0e03021a05000414c0fe0278fc99188891b3f212e9" + - "c7e1b21ab7bfc004140dfc1df0a9e0f01ce7f2b213177e6f8d157cd4f60210017f77deb3" + - "bcbb235d44ccc7dba62e72" - -const leafCertHex = "308203c830820331a0030201020210017f77deb3bcbb235d44ccc7dba62e72300d06092a" + - "864886f70d01010505003081ba311f301d060355040a1316566572695369676e20547275" + - "7374204e6574776f726b31173015060355040b130e566572695369676e2c20496e632e31" + - "333031060355040b132a566572695369676e20496e7465726e6174696f6e616c20536572" + - "766572204341202d20436c617373203331493047060355040b13407777772e7665726973" + - "69676e2e636f6d2f43505320496e636f72702e6279205265662e204c494142494c495459" + - "204c54442e286329393720566572695369676e301e170d3132303632313030303030305a" + - "170d3133313233313233353935395a3068310b3009060355040613025553311330110603" + - "550408130a43616c69666f726e6961311230100603550407130950616c6f20416c746f31" + - "173015060355040a130e46616365626f6f6b2c20496e632e311730150603550403140e2a" + - "2e66616365626f6f6b2e636f6d30819f300d06092a864886f70d010101050003818d0030" + - "818902818100ae94b171e2deccc1693e051063240102e0689ae83c39b6b3e74b97d48d7b" + - "23689100b0b496ee62f0e6d356bcf4aa0f50643402f5d1766aa972835a7564723f39bbef" + - "5290ded9bcdbf9d3d55dfad23aa03dc604c54d29cf1d4b3bdbd1a809cfae47b44c7eae17" + - "c5109bee24a9cf4a8d911bb0fd0415ae4c3f430aa12a557e2ae10203010001a382011e30" + - "82011a30090603551d130402300030440603551d20043d303b3039060b6086480186f845" + - "01071703302a302806082b06010505070201161c68747470733a2f2f7777772e76657269" + - "7369676e2e636f6d2f727061303c0603551d1f043530333031a02fa02d862b687474703a" + - "2f2f535652496e746c2d63726c2e766572697369676e2e636f6d2f535652496e746c2e63" + - "726c301d0603551d250416301406082b0601050507030106082b06010505070302300b06" + - "03551d0f0404030205a0303406082b0601050507010104283026302406082b0601050507" + - "30018618687474703a2f2f6f6373702e766572697369676e2e636f6d30270603551d1104" + - "20301e820e2a2e66616365626f6f6b2e636f6d820c66616365626f6f6b2e636f6d300d06" + - "092a864886f70d0101050500038181005b6c2b75f8ed30aa51aad36aba595e555141951f" + - "81a53b447910ac1f76ff78fc2781616b58f3122afc1c87010425e9ed43df1a7ba6498060" + - "67e2688af03db58c7df4ee03309a6afc247ccb134dc33e54c6bc1d5133a532a73273b1d7" + - "9cadc08e7e1a83116d34523340b0305427a21742827c98916698ee7eaf8c3bdd71700817" - -const issuerCertHex = "30820383308202eca003020102021046fcebbab4d02f0f926098233f93078f300d06092a" + - "864886f70d0101050500305f310b300906035504061302555331173015060355040a130e" + - "566572695369676e2c20496e632e31373035060355040b132e436c617373203320507562" + - "6c6963205072696d6172792043657274696669636174696f6e20417574686f7269747930" + - "1e170d3937303431373030303030305a170d3136313032343233353935395a3081ba311f" + - "301d060355040a1316566572695369676e205472757374204e6574776f726b3117301506" + - "0355040b130e566572695369676e2c20496e632e31333031060355040b132a5665726953" + - "69676e20496e7465726e6174696f6e616c20536572766572204341202d20436c61737320" + - "3331493047060355040b13407777772e766572697369676e2e636f6d2f43505320496e63" + - "6f72702e6279205265662e204c494142494c495459204c54442e28632939372056657269" + - "5369676e30819f300d06092a864886f70d010101050003818d0030818902818100d88280" + - "e8d619027d1f85183925a2652be1bfd405d3bce6363baaf04c6c5bb6e7aa3c734555b2f1" + - "bdea9742ed9a340a15d4a95cf54025ddd907c132b2756cc4cabba3fe56277143aa63f530" + - "3e9328e5faf1093bf3b74d4e39f75c495ab8c11dd3b28afe70309542cbfe2b518b5a3c3a" + - "f9224f90b202a7539c4f34e7ab04b27b6f0203010001a381e33081e0300f0603551d1304" + - "0830060101ff02010030440603551d20043d303b3039060b6086480186f8450107010130" + - "2a302806082b06010505070201161c68747470733a2f2f7777772e766572697369676e2e" + - "636f6d2f43505330340603551d25042d302b06082b0601050507030106082b0601050507" + - "030206096086480186f8420401060a6086480186f845010801300b0603551d0f04040302" + - "0106301106096086480186f842010104040302010630310603551d1f042a30283026a024" + - "a0228620687474703a2f2f63726c2e766572697369676e2e636f6d2f706361332e63726c" + - "300d06092a864886f70d010105050003818100408e4997968a73dd8e4def3e61b7caa062" + - "adf40e0abb753de26ed82cc7bff4b98c369bcaa2d09c724639f6a682036511c4bcbf2da6" + - "f5d93b0ab598fab378b91ef22b4c62d5fdb27a1ddf33fd73f9a5d82d8c2aead1fcb028b6" + - "e94948134b838a1b487b24f738de6f4154b8ab576b06dfc7a2d4a9f6f136628088f28b75" + - "d68071" - -// Key and certificate for the OCSP responder were not taken from the Thawte -// responder, since CreateResponse requires that we have the private key. -// Instead, they were generated randomly. -const responderPrivateKeyHex = "308204a40201000282010100e8155f2d3e6f2e8d14c62a788bd462f9f844e7a6977c83ef" + - "1099f0f6616ec5265b56f356e62c5400f0b06a2e7945a82752c636df32a895152d6074df" + - "1701dc6ccfbcbec75a70bd2b55ae2be7e6cad3b5fd4cd5b7790ab401a436d3f5f346074f" + - "fde8a99d5b723350f0a112076614b12ef79c78991b119453445acf2416ab0046b540db14" + - "c9fc0f27b8989ad0f63aa4b8aefc91aa8a72160c36307c60fec78a93d3fddf4259902aa7" + - "7e7332971c7d285b6a04f648993c6922a3e9da9adf5f81508c3228791843e5d49f24db2f" + - "1290bafd97e655b1049a199f652cd603c4fafa330c390b0da78fbbc67e8fa021cbd74eb9" + - "6222b12ace31a77dcf920334dc94581b02030100010282010100bcf0b93d7238bda329a8" + - "72e7149f61bcb37c154330ccb3f42a85c9002c2e2bdea039d77d8581cd19bed94078794e" + - "56293d601547fc4bf6a2f9002fe5772b92b21b254403b403585e3130cc99ccf08f0ef81a" + - "575b38f597ba4660448b54f44bfbb97072b5a2bf043bfeca828cf7741d13698e3f38162b" + - "679faa646b82abd9a72c5c7d722c5fc577a76d2c2daac588accad18516d1bbad10b0dfa2" + - "05cfe246b59e28608a43942e1b71b0c80498075121de5b900d727c31c42c78cf1db5c0aa" + - "5b491e10ea4ed5c0962aaf2ae025dd81fa4ce490d9d6b4a4465411d8e542fc88617e5695" + - "1aa4fc8ea166f2b4d0eb89ef17f2b206bd5f1014bf8fe0e71fe62f2cccf102818100f2dc" + - "ddf878d553286daad68bac4070a82ffec3dc4666a2750f47879eec913f91836f1d976b60" + - "daf9356e078446dafab5bd2e489e5d64f8572ba24a4ba4f3729b5e106c4dd831cc2497a7" + - "e6c7507df05cb64aeb1bbc81c1e340d58b5964cf39cff84ea30c29ec5d3f005ee1362698" + - "07395037955955655292c3e85f6187fa1f9502818100f4a33c102630840705f8c778a47b" + - "87e8da31e68809af981ac5e5999cf1551685d761cdf0d6520361b99aebd5777a940fa64d" + - "327c09fa63746fbb3247ec73a86edf115f1fe5c83598db803881ade71c33c6e956118345" + - "497b98b5e07bb5be75971465ec78f2f9467e1b74956ca9d4c7c3e314e742a72d8b33889c" + - "6c093a466cef0281801d3df0d02124766dd0be98349b19eb36a508c4e679e793ba0a8bef" + - "4d786888c1e9947078b1ea28938716677b4ad8c5052af12eb73ac194915264a913709a0b" + - "7b9f98d4a18edd781a13d49899f91c20dbd8eb2e61d991ba19b5cdc08893f5cb9d39e5a6" + - "0629ea16d426244673b1b3ee72bd30e41fac8395acac40077403de5efd028180050731dd" + - "d71b1a2b96c8d538ba90bb6b62c8b1c74c03aae9a9f59d21a7a82b0d572ef06fa9c807bf" + - "c373d6b30d809c7871df96510c577421d9860c7383fda0919ece19996b3ca13562159193" + - "c0c246471e287f975e8e57034e5136aaf44254e2650def3d51292474c515b1588969112e" + - "0a85cc77073e9d64d2c2fc497844284b02818100d71d63eabf416cf677401ebf965f8314" + - "120b568a57dd3bd9116c629c40dc0c6948bab3a13cc544c31c7da40e76132ef5dd3f7534" + - "45a635930c74326ae3df0edd1bfb1523e3aa259873ac7cf1ac31151ec8f37b528c275622" + - "48f99b8bed59fd4da2576aa6ee20d93a684900bf907e80c66d6e2261ae15e55284b4ed9d" + - "6bdaa059" - -const responderCertHex = "308202e2308201caa003020102020101300d06092a864886f70d01010b05003019311730" + - "150603550403130e4f43535020526573706f6e646572301e170d31353031333031353530" + - "33335a170d3136303133303135353033335a3019311730150603550403130e4f43535020" + - "526573706f6e64657230820122300d06092a864886f70d01010105000382010f00308201" + - "0a0282010100e8155f2d3e6f2e8d14c62a788bd462f9f844e7a6977c83ef1099f0f6616e" + - "c5265b56f356e62c5400f0b06a2e7945a82752c636df32a895152d6074df1701dc6ccfbc" + - "bec75a70bd2b55ae2be7e6cad3b5fd4cd5b7790ab401a436d3f5f346074ffde8a99d5b72" + - "3350f0a112076614b12ef79c78991b119453445acf2416ab0046b540db14c9fc0f27b898" + - "9ad0f63aa4b8aefc91aa8a72160c36307c60fec78a93d3fddf4259902aa77e7332971c7d" + - "285b6a04f648993c6922a3e9da9adf5f81508c3228791843e5d49f24db2f1290bafd97e6" + - "55b1049a199f652cd603c4fafa330c390b0da78fbbc67e8fa021cbd74eb96222b12ace31" + - "a77dcf920334dc94581b0203010001a3353033300e0603551d0f0101ff04040302078030" + - "130603551d25040c300a06082b06010505070309300c0603551d130101ff04023000300d" + - "06092a864886f70d01010b05000382010100718012761b5063e18f0dc44644d8e6ab8612" + - "31c15fd5357805425d82aec1de85bf6d3e30fce205e3e3b8b795bbe52e40a439286d2288" + - "9064f4aeeb150359b9425f1da51b3a5c939018555d13ac42c565a0603786a919328f3267" + - "09dce52c22ad958ecb7873b9771d1148b1c4be2efe80ba868919fc9f68b6090c2f33c156" + - "d67156e42766a50b5d51e79637b7e58af74c2a951b1e642fa7741fec982cc937de37eff5" + - "9e2005d5939bfc031589ca143e6e8ab83f40ee08cc20a6b4a95a318352c28d18528dcaf9" + - "66705de17afa19d6e8ae91ddf33179d16ebb6ac2c69cae8373d408ebf8c55308be6c04d9" + - "3a25439a94299a65a709756c7a3e568be049d5c38839" diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor/armor.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor/armor.go deleted file mode 100644 index 095659f3..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor/armor.go +++ /dev/null @@ -1,219 +0,0 @@ -// Copyright 2010 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 armor implements OpenPGP ASCII Armor, see RFC 4880. OpenPGP Armor is -// very similar to PEM except that it has an additional CRC checksum. -package armor - -import ( - "bufio" - "bytes" - "encoding/base64" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "io" -) - -// A Block represents an OpenPGP armored structure. -// -// The encoded form is: -// -----BEGIN Type----- -// Headers -// -// base64-encoded Bytes -// '=' base64 encoded checksum -// -----END Type----- -// where Headers is a possibly empty sequence of Key: Value lines. -// -// Since the armored data can be very large, this package presents a streaming -// interface. -type Block struct { - Type string // The type, taken from the preamble (i.e. "PGP SIGNATURE"). - Header map[string]string // Optional headers. - Body io.Reader // A Reader from which the contents can be read - lReader lineReader - oReader openpgpReader -} - -var ArmorCorrupt error = errors.StructuralError("armor invalid") - -const crc24Init = 0xb704ce -const crc24Poly = 0x1864cfb -const crc24Mask = 0xffffff - -// crc24 calculates the OpenPGP checksum as specified in RFC 4880, section 6.1 -func crc24(crc uint32, d []byte) uint32 { - for _, b := range d { - crc ^= uint32(b) << 16 - for i := 0; i < 8; i++ { - crc <<= 1 - if crc&0x1000000 != 0 { - crc ^= crc24Poly - } - } - } - return crc -} - -var armorStart = []byte("-----BEGIN ") -var armorEnd = []byte("-----END ") -var armorEndOfLine = []byte("-----") - -// lineReader wraps a line based reader. It watches for the end of an armor -// block and records the expected CRC value. -type lineReader struct { - in *bufio.Reader - buf []byte - eof bool - crc uint32 -} - -func (l *lineReader) Read(p []byte) (n int, err error) { - if l.eof { - return 0, io.EOF - } - - if len(l.buf) > 0 { - n = copy(p, l.buf) - l.buf = l.buf[n:] - return - } - - line, isPrefix, err := l.in.ReadLine() - if err != nil { - return - } - if isPrefix { - return 0, ArmorCorrupt - } - - if len(line) == 5 && line[0] == '=' { - // This is the checksum line - var expectedBytes [3]byte - var m int - m, err = base64.StdEncoding.Decode(expectedBytes[0:], line[1:]) - if m != 3 || err != nil { - return - } - l.crc = uint32(expectedBytes[0])<<16 | - uint32(expectedBytes[1])<<8 | - uint32(expectedBytes[2]) - - line, _, err = l.in.ReadLine() - if err != nil && err != io.EOF { - return - } - if !bytes.HasPrefix(line, armorEnd) { - return 0, ArmorCorrupt - } - - l.eof = true - return 0, io.EOF - } - - if len(line) > 96 { - return 0, ArmorCorrupt - } - - n = copy(p, line) - bytesToSave := len(line) - n - if bytesToSave > 0 { - if cap(l.buf) < bytesToSave { - l.buf = make([]byte, 0, bytesToSave) - } - l.buf = l.buf[0:bytesToSave] - copy(l.buf, line[n:]) - } - - return -} - -// openpgpReader passes Read calls to the underlying base64 decoder, but keeps -// a running CRC of the resulting data and checks the CRC against the value -// found by the lineReader at EOF. -type openpgpReader struct { - lReader *lineReader - b64Reader io.Reader - currentCRC uint32 -} - -func (r *openpgpReader) Read(p []byte) (n int, err error) { - n, err = r.b64Reader.Read(p) - r.currentCRC = crc24(r.currentCRC, p[:n]) - - if err == io.EOF { - if r.lReader.crc != uint32(r.currentCRC&crc24Mask) { - return 0, ArmorCorrupt - } - } - - return -} - -// Decode reads a PGP armored block from the given Reader. It will ignore -// leading garbage. If it doesn't find a block, it will return nil, io.EOF. The -// given Reader is not usable after calling this function: an arbitrary amount -// of data may have been read past the end of the block. -func Decode(in io.Reader) (p *Block, err error) { - r := bufio.NewReaderSize(in, 100) - var line []byte - ignoreNext := false - -TryNextBlock: - p = nil - - // Skip leading garbage - for { - ignoreThis := ignoreNext - line, ignoreNext, err = r.ReadLine() - if err != nil { - return - } - if ignoreNext || ignoreThis { - continue - } - line = bytes.TrimSpace(line) - if len(line) > len(armorStart)+len(armorEndOfLine) && bytes.HasPrefix(line, armorStart) { - break - } - } - - p = new(Block) - p.Type = string(line[len(armorStart) : len(line)-len(armorEndOfLine)]) - p.Header = make(map[string]string) - nextIsContinuation := false - var lastKey string - - // Read headers - for { - isContinuation := nextIsContinuation - line, nextIsContinuation, err = r.ReadLine() - if err != nil { - p = nil - return - } - if isContinuation { - p.Header[lastKey] += string(line) - continue - } - line = bytes.TrimSpace(line) - if len(line) == 0 { - break - } - - i := bytes.Index(line, []byte(": ")) - if i == -1 { - goto TryNextBlock - } - lastKey = string(line[:i]) - p.Header[lastKey] = string(line[i+2:]) - } - - p.lReader.in = r - p.oReader.currentCRC = crc24Init - p.oReader.lReader = &p.lReader - p.oReader.b64Reader = base64.NewDecoder(base64.StdEncoding, &p.lReader) - p.Body = &p.oReader - - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor/armor_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor/armor_test.go deleted file mode 100644 index 9334e94e..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor/armor_test.go +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright 2010 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 armor - -import ( - "bytes" - "hash/adler32" - "io/ioutil" - "testing" -) - -func TestDecodeEncode(t *testing.T) { - buf := bytes.NewBuffer([]byte(armorExample1)) - result, err := Decode(buf) - if err != nil { - t.Error(err) - } - expectedType := "PGP SIGNATURE" - if result.Type != expectedType { - t.Errorf("result.Type: got:%s want:%s", result.Type, expectedType) - } - if len(result.Header) != 1 { - t.Errorf("len(result.Header): got:%d want:1", len(result.Header)) - } - v, ok := result.Header["Version"] - if !ok || v != "GnuPG v1.4.10 (GNU/Linux)" { - t.Errorf("result.Header: got:%#v", result.Header) - } - - contents, err := ioutil.ReadAll(result.Body) - if err != nil { - t.Error(err) - } - - if adler32.Checksum(contents) != 0x27b144be { - t.Errorf("contents: got: %x", contents) - } - - buf = bytes.NewBuffer(nil) - w, err := Encode(buf, result.Type, result.Header) - if err != nil { - t.Error(err) - } - _, err = w.Write(contents) - if err != nil { - t.Error(err) - } - w.Close() - - if !bytes.Equal(buf.Bytes(), []byte(armorExample1)) { - t.Errorf("got: %s\nwant: %s", string(buf.Bytes()), armorExample1) - } -} - -func TestLongHeader(t *testing.T) { - buf := bytes.NewBuffer([]byte(armorLongLine)) - result, err := Decode(buf) - if err != nil { - t.Error(err) - return - } - value, ok := result.Header["Version"] - if !ok { - t.Errorf("missing Version header") - } - if value != longValueExpected { - t.Errorf("got: %s want: %s", value, longValueExpected) - } -} - -const armorExample1 = `-----BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.10 (GNU/Linux) - -iJwEAAECAAYFAk1Fv/0ACgkQo01+GMIMMbsYTwQAiAw+QAaNfY6WBdplZ/uMAccm -4g+81QPmTSGHnetSb6WBiY13kVzK4HQiZH8JSkmmroMLuGeJwsRTEL4wbjRyUKEt -p1xwUZDECs234F1xiG5enc5SGlRtP7foLBz9lOsjx+LEcA4sTl5/2eZR9zyFZqWW -TxRjs+fJCIFuo71xb1g= -=/teI ------END PGP SIGNATURE-----` - -const armorLongLine = `-----BEGIN PGP SIGNATURE----- -Version: 0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz - -iQEcBAABAgAGBQJMtFESAAoJEKsQXJGvOPsVj40H/1WW6jaMXv4BW+1ueDSMDwM8 -kx1fLOXbVM5/Kn5LStZNt1jWWnpxdz7eq3uiqeCQjmqUoRde3YbB2EMnnwRbAhpp -cacnAvy9ZQ78OTxUdNW1mhX5bS6q1MTEJnl+DcyigD70HG/yNNQD7sOPMdYQw0TA -byQBwmLwmTsuZsrYqB68QyLHI+DUugn+kX6Hd2WDB62DKa2suoIUIHQQCd/ofwB3 -WfCYInXQKKOSxu2YOg2Eb4kLNhSMc1i9uKUWAH+sdgJh7NBgdoE4MaNtBFkHXRvv -okWuf3+xA9ksp1npSY/mDvgHijmjvtpRDe6iUeqfCn8N9u9CBg8geANgaG8+QA4= -=wfQG ------END PGP SIGNATURE-----` - -const longValueExpected = "0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz" diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor/encode.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor/encode.go deleted file mode 100644 index 6f07582c..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor/encode.go +++ /dev/null @@ -1,160 +0,0 @@ -// Copyright 2010 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 armor - -import ( - "encoding/base64" - "io" -) - -var armorHeaderSep = []byte(": ") -var blockEnd = []byte("\n=") -var newline = []byte("\n") -var armorEndOfLineOut = []byte("-----\n") - -// writeSlices writes its arguments to the given Writer. -func writeSlices(out io.Writer, slices ...[]byte) (err error) { - for _, s := range slices { - _, err = out.Write(s) - if err != nil { - return err - } - } - return -} - -// lineBreaker breaks data across several lines, all of the same byte length -// (except possibly the last). Lines are broken with a single '\n'. -type lineBreaker struct { - lineLength int - line []byte - used int - out io.Writer - haveWritten bool -} - -func newLineBreaker(out io.Writer, lineLength int) *lineBreaker { - return &lineBreaker{ - lineLength: lineLength, - line: make([]byte, lineLength), - used: 0, - out: out, - } -} - -func (l *lineBreaker) Write(b []byte) (n int, err error) { - n = len(b) - - if n == 0 { - return - } - - if l.used == 0 && l.haveWritten { - _, err = l.out.Write([]byte{'\n'}) - if err != nil { - return - } - } - - if l.used+len(b) < l.lineLength { - l.used += copy(l.line[l.used:], b) - return - } - - l.haveWritten = true - _, err = l.out.Write(l.line[0:l.used]) - if err != nil { - return - } - excess := l.lineLength - l.used - l.used = 0 - - _, err = l.out.Write(b[0:excess]) - if err != nil { - return - } - - _, err = l.Write(b[excess:]) - return -} - -func (l *lineBreaker) Close() (err error) { - if l.used > 0 { - _, err = l.out.Write(l.line[0:l.used]) - if err != nil { - return - } - } - - return -} - -// encoding keeps track of a running CRC24 over the data which has been written -// to it and outputs a OpenPGP checksum when closed, followed by an armor -// trailer. -// -// It's built into a stack of io.Writers: -// encoding -> base64 encoder -> lineBreaker -> out -type encoding struct { - out io.Writer - breaker *lineBreaker - b64 io.WriteCloser - crc uint32 - blockType []byte -} - -func (e *encoding) Write(data []byte) (n int, err error) { - e.crc = crc24(e.crc, data) - return e.b64.Write(data) -} - -func (e *encoding) Close() (err error) { - err = e.b64.Close() - if err != nil { - return - } - e.breaker.Close() - - var checksumBytes [3]byte - checksumBytes[0] = byte(e.crc >> 16) - checksumBytes[1] = byte(e.crc >> 8) - checksumBytes[2] = byte(e.crc) - - var b64ChecksumBytes [4]byte - base64.StdEncoding.Encode(b64ChecksumBytes[:], checksumBytes[:]) - - return writeSlices(e.out, blockEnd, b64ChecksumBytes[:], newline, armorEnd, e.blockType, armorEndOfLine) -} - -// Encode returns a WriteCloser which will encode the data written to it in -// OpenPGP armor. -func Encode(out io.Writer, blockType string, headers map[string]string) (w io.WriteCloser, err error) { - bType := []byte(blockType) - err = writeSlices(out, armorStart, bType, armorEndOfLineOut) - if err != nil { - return - } - - for k, v := range headers { - err = writeSlices(out, []byte(k), armorHeaderSep, []byte(v), newline) - if err != nil { - return - } - } - - _, err = out.Write(newline) - if err != nil { - return - } - - e := &encoding{ - out: out, - breaker: newLineBreaker(out, 64), - crc: crc24Init, - blockType: bType, - } - e.b64 = base64.NewEncoder(base64.StdEncoding, e.breaker) - return e, nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/canonical_text.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/canonical_text.go deleted file mode 100644 index e601e389..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/canonical_text.go +++ /dev/null @@ -1,59 +0,0 @@ -// 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 openpgp - -import "hash" - -// NewCanonicalTextHash reformats text written to it into the canonical -// form and then applies the hash h. See RFC 4880, section 5.2.1. -func NewCanonicalTextHash(h hash.Hash) hash.Hash { - return &canonicalTextHash{h, 0} -} - -type canonicalTextHash struct { - h hash.Hash - s int -} - -var newline = []byte{'\r', '\n'} - -func (cth *canonicalTextHash) Write(buf []byte) (int, error) { - start := 0 - - for i, c := range buf { - switch cth.s { - case 0: - if c == '\r' { - cth.s = 1 - } else if c == '\n' { - cth.h.Write(buf[start:i]) - cth.h.Write(newline) - start = i + 1 - } - case 1: - cth.s = 0 - } - } - - cth.h.Write(buf[start:]) - return len(buf), nil -} - -func (cth *canonicalTextHash) Sum(in []byte) []byte { - return cth.h.Sum(in) -} - -func (cth *canonicalTextHash) Reset() { - cth.h.Reset() - cth.s = 0 -} - -func (cth *canonicalTextHash) Size() int { - return cth.h.Size() -} - -func (cth *canonicalTextHash) BlockSize() int { - return cth.h.BlockSize() -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/canonical_text_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/canonical_text_test.go deleted file mode 100644 index 8f3ba2a8..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/canonical_text_test.go +++ /dev/null @@ -1,52 +0,0 @@ -// 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 openpgp - -import ( - "bytes" - "testing" -) - -type recordingHash struct { - buf *bytes.Buffer -} - -func (r recordingHash) Write(b []byte) (n int, err error) { - return r.buf.Write(b) -} - -func (r recordingHash) Sum(in []byte) []byte { - return append(in, r.buf.Bytes()...) -} - -func (r recordingHash) Reset() { - panic("shouldn't be called") -} - -func (r recordingHash) Size() int { - panic("shouldn't be called") -} - -func (r recordingHash) BlockSize() int { - panic("shouldn't be called") -} - -func testCanonicalText(t *testing.T, input, expected string) { - r := recordingHash{bytes.NewBuffer(nil)} - c := NewCanonicalTextHash(r) - c.Write([]byte(input)) - result := c.Sum(nil) - if expected != string(result) { - t.Errorf("input: %x got: %x want: %x", input, result, expected) - } -} - -func TestCanonicalText(t *testing.T) { - testCanonicalText(t, "foo\n", "foo\r\n") - testCanonicalText(t, "foo", "foo") - testCanonicalText(t, "foo\r\n", "foo\r\n") - testCanonicalText(t, "foo\r\nbar", "foo\r\nbar") - testCanonicalText(t, "foo\r\nbar\n\n", "foo\r\nbar\r\n\r\n") -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/clearsign/clearsign.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/clearsign/clearsign.go deleted file mode 100644 index 44383cc1..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/clearsign/clearsign.go +++ /dev/null @@ -1,372 +0,0 @@ -// Copyright 2012 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 clearsign generates and processes OpenPGP, clear-signed data. See -// RFC 4880, section 7. -// -// Clearsigned messages are cryptographically signed, but the contents of the -// message are kept in plaintext so that it can be read without special tools. -package clearsign - -import ( - "bufio" - "bytes" - "crypto" - "hash" - "io" - "net/textproto" - "strconv" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet" -) - -// A Block represents a clearsigned message. A signature on a Block can -// be checked by passing Bytes into openpgp.CheckDetachedSignature. -type Block struct { - Headers textproto.MIMEHeader // Optional message headers - Plaintext []byte // The original message text - Bytes []byte // The signed message - ArmoredSignature *armor.Block // The signature block -} - -// start is the marker which denotes the beginning of a clearsigned message. -var start = []byte("\n-----BEGIN PGP SIGNED MESSAGE-----") - -// dashEscape is prefixed to any lines that begin with a hyphen so that they -// can't be confused with endText. -var dashEscape = []byte("- ") - -// endText is a marker which denotes the end of the message and the start of -// an armored signature. -var endText = []byte("-----BEGIN PGP SIGNATURE-----") - -// end is a marker which denotes the end of the armored signature. -var end = []byte("\n-----END PGP SIGNATURE-----") - -var crlf = []byte("\r\n") -var lf = byte('\n') - -// getLine returns the first \r\n or \n delineated line from the given byte -// array. The line does not include the \r\n or \n. The remainder of the byte -// array (also not including the new line bytes) is also returned and this will -// always be smaller than the original argument. -func getLine(data []byte) (line, rest []byte) { - i := bytes.Index(data, []byte{'\n'}) - var j int - if i < 0 { - i = len(data) - j = i - } else { - j = i + 1 - if i > 0 && data[i-1] == '\r' { - i-- - } - } - return data[0:i], data[j:] -} - -// Decode finds the first clearsigned message in data and returns it, as well -// as the suffix of data which remains after the message. -func Decode(data []byte) (b *Block, rest []byte) { - // start begins with a newline. However, at the very beginning of - // the byte array, we'll accept the start string without it. - rest = data - if bytes.HasPrefix(data, start[1:]) { - rest = rest[len(start)-1:] - } else if i := bytes.Index(data, start); i >= 0 { - rest = rest[i+len(start):] - } else { - return nil, data - } - - // Consume the start line. - _, rest = getLine(rest) - - var line []byte - b = &Block{ - Headers: make(textproto.MIMEHeader), - } - - // Next come a series of header lines. - for { - // This loop terminates because getLine's second result is - // always smaller than its argument. - if len(rest) == 0 { - return nil, data - } - // An empty line marks the end of the headers. - if line, rest = getLine(rest); len(line) == 0 { - break - } - - i := bytes.Index(line, []byte{':'}) - if i == -1 { - return nil, data - } - - key, val := line[0:i], line[i+1:] - key = bytes.TrimSpace(key) - val = bytes.TrimSpace(val) - b.Headers.Add(string(key), string(val)) - } - - firstLine := true - for { - start := rest - - line, rest = getLine(rest) - if bytes.Equal(line, endText) { - // Back up to the start of the line because armor expects to see the - // header line. - rest = start - break - } - - // The final CRLF isn't included in the hash so we don't write it until - // we've seen the next line. - if firstLine { - firstLine = false - } else { - b.Bytes = append(b.Bytes, crlf...) - } - - if bytes.HasPrefix(line, dashEscape) { - line = line[2:] - } - line = bytes.TrimRight(line, " \t") - b.Bytes = append(b.Bytes, line...) - - b.Plaintext = append(b.Plaintext, line...) - b.Plaintext = append(b.Plaintext, lf) - } - - // We want to find the extent of the armored data (including any newlines at - // the end). - i := bytes.Index(rest, end) - if i == -1 { - return nil, data - } - i += len(end) - for i < len(rest) && (rest[i] == '\r' || rest[i] == '\n') { - i++ - } - armored := rest[:i] - rest = rest[i:] - - var err error - b.ArmoredSignature, err = armor.Decode(bytes.NewBuffer(armored)) - if err != nil { - return nil, data - } - - return b, rest -} - -// A dashEscaper is an io.WriteCloser which processes the body of a clear-signed -// message. The clear-signed message is written to buffered and a hash, suitable -// for signing, is maintained in h. -// -// When closed, an armored signature is created and written to complete the -// message. -type dashEscaper struct { - buffered *bufio.Writer - h hash.Hash - hashType crypto.Hash - - atBeginningOfLine bool - isFirstLine bool - - whitespace []byte - byteBuf []byte // a one byte buffer to save allocations - - privateKey *packet.PrivateKey - config *packet.Config -} - -func (d *dashEscaper) Write(data []byte) (n int, err error) { - for _, b := range data { - d.byteBuf[0] = b - - if d.atBeginningOfLine { - // The final CRLF isn't included in the hash so we have to wait - // until this point (the start of the next line) before writing it. - if !d.isFirstLine { - d.h.Write(crlf) - } - d.isFirstLine = false - } - - // Any whitespace at the end of the line has to be removed so we - // buffer it until we find out whether there's more on this line. - if b == ' ' || b == '\t' || b == '\r' { - d.whitespace = append(d.whitespace, b) - d.atBeginningOfLine = false - continue - } - - if d.atBeginningOfLine { - // At the beginning of a line, hyphens have to be escaped. - if b == '-' { - // The signature isn't calculated over the dash-escaped text so - // the escape is only written to buffered. - if _, err = d.buffered.Write(dashEscape); err != nil { - return - } - d.h.Write(d.byteBuf) - d.atBeginningOfLine = false - } else if b == '\n' { - // Nothing to do because we delay writing CRLF to the hash. - } else { - d.h.Write(d.byteBuf) - d.atBeginningOfLine = false - } - if err = d.buffered.WriteByte(b); err != nil { - return - } - } else { - if b == '\n' { - // We got a raw \n. Drop any trailing whitespace and write a - // CRLF. - d.whitespace = d.whitespace[:0] - // We delay writing CRLF to the hash until the start of the - // next line. - if err = d.buffered.WriteByte(b); err != nil { - return - } - d.atBeginningOfLine = true - } else { - // Any buffered whitespace wasn't at the end of the line so - // we need to write it out. - if len(d.whitespace) > 0 { - d.h.Write(d.whitespace) - if _, err = d.buffered.Write(d.whitespace); err != nil { - return - } - d.whitespace = d.whitespace[:0] - } - d.h.Write(d.byteBuf) - if err = d.buffered.WriteByte(b); err != nil { - return - } - } - } - } - - n = len(data) - return -} - -func (d *dashEscaper) Close() (err error) { - if !d.atBeginningOfLine { - if err = d.buffered.WriteByte(lf); err != nil { - return - } - } - sig := new(packet.Signature) - sig.SigType = packet.SigTypeText - sig.PubKeyAlgo = d.privateKey.PubKeyAlgo - sig.Hash = d.hashType - sig.CreationTime = d.config.Now() - sig.IssuerKeyId = &d.privateKey.KeyId - - if err = sig.Sign(d.h, d.privateKey, d.config); err != nil { - return - } - - out, err := armor.Encode(d.buffered, "PGP SIGNATURE", nil) - if err != nil { - return - } - - if err = sig.Serialize(out); err != nil { - return - } - if err = out.Close(); err != nil { - return - } - if err = d.buffered.Flush(); err != nil { - return - } - return -} - -// Encode returns a WriteCloser which will clear-sign a message with privateKey -// and write it to w. If config is nil, sensible defaults are used. -func Encode(w io.Writer, privateKey *packet.PrivateKey, config *packet.Config) (plaintext io.WriteCloser, err error) { - if privateKey.Encrypted { - return nil, errors.InvalidArgumentError("signing key is encrypted") - } - - hashType := config.Hash() - name := nameOfHash(hashType) - if len(name) == 0 { - return nil, errors.UnsupportedError("unknown hash type: " + strconv.Itoa(int(hashType))) - } - - if !hashType.Available() { - return nil, errors.UnsupportedError("unsupported hash type: " + strconv.Itoa(int(hashType))) - } - h := hashType.New() - - buffered := bufio.NewWriter(w) - // start has a \n at the beginning that we don't want here. - if _, err = buffered.Write(start[1:]); err != nil { - return - } - if err = buffered.WriteByte(lf); err != nil { - return - } - if _, err = buffered.WriteString("Hash: "); err != nil { - return - } - if _, err = buffered.WriteString(name); err != nil { - return - } - if err = buffered.WriteByte(lf); err != nil { - return - } - if err = buffered.WriteByte(lf); err != nil { - return - } - - plaintext = &dashEscaper{ - buffered: buffered, - h: h, - hashType: hashType, - - atBeginningOfLine: true, - isFirstLine: true, - - byteBuf: make([]byte, 1), - - privateKey: privateKey, - config: config, - } - - return -} - -// nameOfHash returns the OpenPGP name for the given hash, or the empty string -// if the name isn't known. See RFC 4880, section 9.4. -func nameOfHash(h crypto.Hash) string { - switch h { - case crypto.MD5: - return "MD5" - case crypto.SHA1: - return "SHA1" - case crypto.RIPEMD160: - return "RIPEMD160" - case crypto.SHA224: - return "SHA224" - case crypto.SHA256: - return "SHA256" - case crypto.SHA384: - return "SHA384" - case crypto.SHA512: - return "SHA512" - } - return "" -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/clearsign/clearsign_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/clearsign/clearsign_test.go deleted file mode 100644 index ba552d09..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/clearsign/clearsign_test.go +++ /dev/null @@ -1,197 +0,0 @@ -// Copyright 2012 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 clearsign - -import ( - "bytes" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp" - "testing" -) - -func testParse(t *testing.T, input []byte, expected, expectedPlaintext string) { - b, rest := Decode(input) - if b == nil { - t.Fatal("failed to decode clearsign message") - } - if !bytes.Equal(rest, []byte("trailing")) { - t.Errorf("unexpected remaining bytes returned: %s", string(rest)) - } - if b.ArmoredSignature.Type != "PGP SIGNATURE" { - t.Errorf("bad armor type, got:%s, want:PGP SIGNATURE", b.ArmoredSignature.Type) - } - if !bytes.Equal(b.Bytes, []byte(expected)) { - t.Errorf("bad body, got:%x want:%x", b.Bytes, expected) - } - - if !bytes.Equal(b.Plaintext, []byte(expectedPlaintext)) { - t.Errorf("bad plaintext, got:%x want:%x", b.Plaintext, expectedPlaintext) - } - - keyring, err := openpgp.ReadArmoredKeyRing(bytes.NewBufferString(signingKey)) - if err != nil { - t.Errorf("failed to parse public key: %s", err) - } - - if _, err := openpgp.CheckDetachedSignature(keyring, bytes.NewBuffer(b.Bytes), b.ArmoredSignature.Body); err != nil { - t.Errorf("failed to check signature: %s", err) - } -} - -func TestParse(t *testing.T) { - testParse(t, clearsignInput, "Hello world\r\nline 2", "Hello world\nline 2\n") - testParse(t, clearsignInput2, "\r\n\r\n(This message has a couple of blank lines at the start and end.)\r\n\r\n", "\n\n(This message has a couple of blank lines at the start and end.)\n\n\n") -} - -func TestParseWithNoNewlineAtEnd(t *testing.T) { - input := clearsignInput - input = input[:len(input)-len("trailing")-1] - b, rest := Decode(input) - if b == nil { - t.Fatal("failed to decode clearsign message") - } - if len(rest) > 0 { - t.Errorf("unexpected remaining bytes returned: %s", string(rest)) - } -} - -var signingTests = []struct { - in, signed, plaintext string -}{ - {"", "", ""}, - {"a", "a", "a\n"}, - {"a\n", "a", "a\n"}, - {"-a\n", "-a", "-a\n"}, - {"--a\nb", "--a\r\nb", "--a\nb\n"}, - // leading whitespace - {" a\n", " a", " a\n"}, - {" a\n", " a", " a\n"}, - // trailing whitespace (should be stripped) - {"a \n", "a", "a\n"}, - {"a ", "a", "a\n"}, - // whitespace-only lines (should be stripped) - {" \n", "", "\n"}, - {" ", "", "\n"}, - {"a\n \n \nb\n", "a\r\n\r\n\r\nb", "a\n\n\nb\n"}, -} - -func TestSigning(t *testing.T) { - keyring, err := openpgp.ReadArmoredKeyRing(bytes.NewBufferString(signingKey)) - if err != nil { - t.Errorf("failed to parse public key: %s", err) - } - - for i, test := range signingTests { - var buf bytes.Buffer - - plaintext, err := Encode(&buf, keyring[0].PrivateKey, nil) - if err != nil { - t.Errorf("#%d: error from Encode: %s", i, err) - continue - } - if _, err := plaintext.Write([]byte(test.in)); err != nil { - t.Errorf("#%d: error from Write: %s", i, err) - continue - } - if err := plaintext.Close(); err != nil { - t.Fatalf("#%d: error from Close: %s", i, err) - continue - } - - b, _ := Decode(buf.Bytes()) - if b == nil { - t.Errorf("#%d: failed to decode clearsign message", i) - continue - } - if !bytes.Equal(b.Bytes, []byte(test.signed)) { - t.Errorf("#%d: bad result, got:%x, want:%x", i, b.Bytes, test.signed) - continue - } - if !bytes.Equal(b.Plaintext, []byte(test.plaintext)) { - t.Errorf("#%d: bad result, got:%x, want:%x", i, b.Plaintext, test.plaintext) - continue - } - - if _, err := openpgp.CheckDetachedSignature(keyring, bytes.NewBuffer(b.Bytes), b.ArmoredSignature.Body); err != nil { - t.Errorf("#%d: failed to check signature: %s", i, err) - } - } -} - -var clearsignInput = []byte(` -;lasjlkfdsa - ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - -Hello world -line 2 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.10 (GNU/Linux) - -iJwEAQECAAYFAk8kMuEACgkQO9o98PRieSpMsAQAhmY/vwmNpflrPgmfWsYhk5O8 -pjnBUzZwqTDoDeINjZEoPDSpQAHGhjFjgaDx/Gj4fAl0dM4D0wuUEBb6QOrwflog -2A2k9kfSOMOtk0IH/H5VuFN1Mie9L/erYXjTQIptv9t9J7NoRBMU0QOOaFU0JaO9 -MyTpno24AjIAGb+mH1U= -=hIJ6 ------END PGP SIGNATURE----- -trailing`) - -var clearsignInput2 = []byte(` -asdlfkjasdlkfjsadf - ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA256 - - - -(This message has a couple of blank lines at the start and end.) - - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.11 (GNU/Linux) - -iJwEAQEIAAYFAlPpSREACgkQO9o98PRieSpZTAP+M8QUoCt/7Rf3YbXPcdzIL32v -pt1I+cMNeopzfLy0u4ioEFi8s5VkwpL1AFmirvgViCwlf82inoRxzZRiW05JQ5LI -ESEzeCoy2LIdRCQ2hcrG8pIUPzUO4TqO5D/dMbdHwNH4h5nNmGJUAEG6FpURlPm+ -qZg6BaTvOxepqOxnhVU= -=e+C6 ------END PGP SIGNATURE----- - -trailing`) - -var signingKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- -Version: GnuPG v1.4.10 (GNU/Linux) - -lQHYBE2rFNoBBADFwqWQIW/DSqcB4yCQqnAFTJ27qS5AnB46ccAdw3u4Greeu3Bp -idpoHdjULy7zSKlwR1EA873dO/k/e11Ml3dlAFUinWeejWaK2ugFP6JjiieSsrKn -vWNicdCS4HTWn0X4sjl0ZiAygw6GNhqEQ3cpLeL0g8E9hnYzJKQ0LWJa0QARAQAB -AAP/TB81EIo2VYNmTq0pK1ZXwUpxCrvAAIG3hwKjEzHcbQznsjNvPUihZ+NZQ6+X -0HCfPAdPkGDCLCb6NavcSW+iNnLTrdDnSI6+3BbIONqWWdRDYJhqZCkqmG6zqSfL -IdkJgCw94taUg5BWP/AAeQrhzjChvpMQTVKQL5mnuZbUCeMCAN5qrYMP2S9iKdnk -VANIFj7656ARKt/nf4CBzxcpHTyB8+d2CtPDKCmlJP6vL8t58Jmih+kHJMvC0dzn -gr5f5+sCAOOe5gt9e0am7AvQWhdbHVfJU0TQJx+m2OiCJAqGTB1nvtBLHdJnfdC9 -TnXXQ6ZXibqLyBies/xeY2sCKL5qtTMCAKnX9+9d/5yQxRyrQUHt1NYhaXZnJbHx -q4ytu0eWz+5i68IYUSK69jJ1NWPM0T6SkqpB3KCAIv68VFm9PxqG1KmhSrQIVGVz -dCBLZXmIuAQTAQIAIgUCTasU2gIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AA -CgkQO9o98PRieSoLhgQAkLEZex02Qt7vGhZzMwuN0R22w3VwyYyjBx+fM3JFETy1 -ut4xcLJoJfIaF5ZS38UplgakHG0FQ+b49i8dMij0aZmDqGxrew1m4kBfjXw9B/v+ -eIqpODryb6cOSwyQFH0lQkXC040pjq9YqDsO5w0WYNXYKDnzRV0p4H1pweo2VDid -AdgETasU2gEEAN46UPeWRqKHvA99arOxee38fBt2CI08iiWyI8T3J6ivtFGixSqV -bRcPxYO/qLpVe5l84Nb3X71GfVXlc9hyv7CD6tcowL59hg1E/DC5ydI8K8iEpUmK -/UnHdIY5h8/kqgGxkY/T/hgp5fRQgW1ZoZxLajVlMRZ8W4tFtT0DeA+JABEBAAEA -A/0bE1jaaZKj6ndqcw86jd+QtD1SF+Cf21CWRNeLKnUds4FRRvclzTyUMuWPkUeX -TaNNsUOFqBsf6QQ2oHUBBK4VCHffHCW4ZEX2cd6umz7mpHW6XzN4DECEzOVksXtc -lUC1j4UB91DC/RNQqwX1IV2QLSwssVotPMPqhOi0ZLNY7wIA3n7DWKInxYZZ4K+6 -rQ+POsz6brEoRHwr8x6XlHenq1Oki855pSa1yXIARoTrSJkBtn5oI+f8AzrnN0BN -oyeQAwIA/7E++3HDi5aweWrViiul9cd3rcsS0dEnksPhvS0ozCJiHsq/6GFmy7J8 -QSHZPteedBnZyNp5jR+H7cIfVN3KgwH/Skq4PsuPhDq5TKK6i8Pc1WW8MA6DXTdU -nLkX7RGmMwjC0DBf7KWAlPjFaONAX3a8ndnz//fy1q7u2l9AZwrj1qa1iJ8EGAEC -AAkFAk2rFNoCGwwACgkQO9o98PRieSo2/QP/WTzr4ioINVsvN1akKuekmEMI3LAp -BfHwatufxxP1U+3Si/6YIk7kuPB9Hs+pRqCXzbvPRrI8NHZBmc8qIGthishdCYad -AHcVnXjtxrULkQFGbGvhKURLvS9WnzD/m1K2zzwxzkPTzT9/Yf06O6Mal5AdugPL -VrM0m72/jnpKo04= -=zNCn ------END PGP PRIVATE KEY BLOCK----- -` diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/elgamal/elgamal.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/elgamal/elgamal.go deleted file mode 100644 index a553bdee..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/elgamal/elgamal.go +++ /dev/null @@ -1,122 +0,0 @@ -// 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 elgamal implements ElGamal encryption, suitable for OpenPGP, -// as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on -// Discrete Logarithms," IEEE Transactions on Information Theory, v. IT-31, -// n. 4, 1985, pp. 469-472. -// -// This form of ElGamal embeds PKCS#1 v1.5 padding, which may make it -// unsuitable for other protocols. RSA should be used in preference in any -// case. -package elgamal - -import ( - "crypto/rand" - "crypto/subtle" - "errors" - "io" - "math/big" -) - -// PublicKey represents an ElGamal public key. -type PublicKey struct { - G, P, Y *big.Int -} - -// PrivateKey represents an ElGamal private key. -type PrivateKey struct { - PublicKey - X *big.Int -} - -// Encrypt encrypts the given message to the given public key. The result is a -// pair of integers. Errors can result from reading random, or because msg is -// too large to be encrypted to the public key. -func Encrypt(random io.Reader, pub *PublicKey, msg []byte) (c1, c2 *big.Int, err error) { - pLen := (pub.P.BitLen() + 7) / 8 - if len(msg) > pLen-11 { - err = errors.New("elgamal: message too long") - return - } - - // EM = 0x02 || PS || 0x00 || M - em := make([]byte, pLen-1) - em[0] = 2 - ps, mm := em[1:len(em)-len(msg)-1], em[len(em)-len(msg):] - err = nonZeroRandomBytes(ps, random) - if err != nil { - return - } - em[len(em)-len(msg)-1] = 0 - copy(mm, msg) - - m := new(big.Int).SetBytes(em) - - k, err := rand.Int(random, pub.P) - if err != nil { - return - } - - c1 = new(big.Int).Exp(pub.G, k, pub.P) - s := new(big.Int).Exp(pub.Y, k, pub.P) - c2 = s.Mul(s, m) - c2.Mod(c2, pub.P) - - return -} - -// Decrypt takes two integers, resulting from an ElGamal encryption, and -// returns the plaintext of the message. An error can result only if the -// ciphertext is invalid. Users should keep in mind that this is a padding -// oracle and thus, if exposed to an adaptive chosen ciphertext attack, can -// be used to break the cryptosystem. See ``Chosen Ciphertext Attacks -// Against Protocols Based on the RSA Encryption Standard PKCS #1'', Daniel -// Bleichenbacher, Advances in Cryptology (Crypto '98), -func Decrypt(priv *PrivateKey, c1, c2 *big.Int) (msg []byte, err error) { - s := new(big.Int).Exp(c1, priv.X, priv.P) - s.ModInverse(s, priv.P) - s.Mul(s, c2) - s.Mod(s, priv.P) - em := s.Bytes() - - firstByteIsTwo := subtle.ConstantTimeByteEq(em[0], 2) - - // The remainder of the plaintext must be a string of non-zero random - // octets, followed by a 0, followed by the message. - // lookingForIndex: 1 iff we are still looking for the zero. - // index: the offset of the first zero byte. - var lookingForIndex, index int - lookingForIndex = 1 - - for i := 1; i < len(em); i++ { - equals0 := subtle.ConstantTimeByteEq(em[i], 0) - index = subtle.ConstantTimeSelect(lookingForIndex&equals0, i, index) - lookingForIndex = subtle.ConstantTimeSelect(equals0, 0, lookingForIndex) - } - - if firstByteIsTwo != 1 || lookingForIndex != 0 || index < 9 { - return nil, errors.New("elgamal: decryption error") - } - return em[index+1:], nil -} - -// nonZeroRandomBytes fills the given slice with non-zero random octets. -func nonZeroRandomBytes(s []byte, rand io.Reader) (err error) { - _, err = io.ReadFull(rand, s) - if err != nil { - return - } - - for i := 0; i < len(s); i++ { - for s[i] == 0 { - _, err = io.ReadFull(rand, s[i:i+1]) - if err != nil { - return - } - } - } - - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/elgamal/elgamal_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/elgamal/elgamal_test.go deleted file mode 100644 index c4f99f5c..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/elgamal/elgamal_test.go +++ /dev/null @@ -1,49 +0,0 @@ -// 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 elgamal - -import ( - "bytes" - "crypto/rand" - "math/big" - "testing" -) - -// This is the 1024-bit MODP group from RFC 5114, section 2.1: -const primeHex = "B10B8F96A080E01DDE92DE5EAE5D54EC52C99FBCFB06A3C69A6A9DCA52D23B616073E28675A23D189838EF1E2EE652C013ECB4AEA906112324975C3CD49B83BFACCBDD7D90C4BD7098488E9C219A73724EFFD6FAE5644738FAA31A4FF55BCCC0A151AF5F0DC8B4BD45BF37DF365C1A65E68CFDA76D4DA708DF1FB2BC2E4A4371" - -const generatorHex = "A4D1CBD5C3FD34126765A442EFB99905F8104DD258AC507FD6406CFF14266D31266FEA1E5C41564B777E690F5504F213160217B4B01B886A5E91547F9E2749F4D7FBD7D3B9A92EE1909D0D2263F80A76A6A24C087A091F531DBF0A0169B6A28AD662A4D18E73AFA32D779D5918D08BC8858F4DCEF97C2A24855E6EEB22B3B2E5" - -func fromHex(hex string) *big.Int { - n, ok := new(big.Int).SetString(hex, 16) - if !ok { - panic("failed to parse hex number") - } - return n -} - -func TestEncryptDecrypt(t *testing.T) { - priv := &PrivateKey{ - PublicKey: PublicKey{ - G: fromHex(generatorHex), - P: fromHex(primeHex), - }, - X: fromHex("42"), - } - priv.Y = new(big.Int).Exp(priv.G, priv.X, priv.P) - - message := []byte("hello world") - c1, c2, err := Encrypt(rand.Reader, &priv.PublicKey, message) - if err != nil { - t.Errorf("error encrypting: %s", err) - } - message2, err := Decrypt(priv, c1, c2) - if err != nil { - t.Errorf("error decrypting: %s", err) - } - if !bytes.Equal(message2, message) { - t.Errorf("decryption failed, got: %x, want: %x", message2, message) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors/errors.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors/errors.go deleted file mode 100644 index 6c4c2f17..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors/errors.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2010 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 errors contains common error types for the OpenPGP packages. -package errors - -import ( - "strconv" -) - -// A StructuralError is returned when OpenPGP data is found to be syntactically -// invalid. -type StructuralError string - -func (s StructuralError) Error() string { - return "openpgp: invalid data: " + string(s) -} - -// UnsupportedError indicates that, although the OpenPGP data is valid, it -// makes use of currently unimplemented features. -type UnsupportedError string - -func (s UnsupportedError) Error() string { - return "openpgp: unsupported feature: " + string(s) -} - -// InvalidArgumentError indicates that the caller is in error and passed an -// incorrect value. -type InvalidArgumentError string - -func (i InvalidArgumentError) Error() string { - return "openpgp: invalid argument: " + string(i) -} - -// SignatureError indicates that a syntactically valid signature failed to -// validate. -type SignatureError string - -func (b SignatureError) Error() string { - return "openpgp: invalid signature: " + string(b) -} - -type keyIncorrectError int - -func (ki keyIncorrectError) Error() string { - return "openpgp: incorrect key" -} - -var ErrKeyIncorrect error = keyIncorrectError(0) - -type unknownIssuerError int - -func (unknownIssuerError) Error() string { - return "openpgp: signature made by unknown entity" -} - -var ErrUnknownIssuer error = unknownIssuerError(0) - -type keyRevokedError int - -func (keyRevokedError) Error() string { - return "openpgp: signature made by revoked key" -} - -var ErrKeyRevoked error = keyRevokedError(0) - -type UnknownPacketTypeError uint8 - -func (upte UnknownPacketTypeError) Error() string { - return "openpgp: unknown packet type: " + strconv.Itoa(int(upte)) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/keys.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/keys.go deleted file mode 100644 index f035ba73..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/keys.go +++ /dev/null @@ -1,633 +0,0 @@ -// 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 openpgp - -import ( - "crypto/rsa" - "io" - "time" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet" -) - -// PublicKeyType is the armor type for a PGP public key. -var PublicKeyType = "PGP PUBLIC KEY BLOCK" - -// PrivateKeyType is the armor type for a PGP private key. -var PrivateKeyType = "PGP PRIVATE KEY BLOCK" - -// An Entity represents the components of an OpenPGP key: a primary public key -// (which must be a signing key), one or more identities claimed by that key, -// and zero or more subkeys, which may be encryption keys. -type Entity struct { - PrimaryKey *packet.PublicKey - PrivateKey *packet.PrivateKey - Identities map[string]*Identity // indexed by Identity.Name - Revocations []*packet.Signature - Subkeys []Subkey -} - -// An Identity represents an identity claimed by an Entity and zero or more -// assertions by other entities about that claim. -type Identity struct { - Name string // by convention, has the form "Full Name (comment) <email@example.com>" - UserId *packet.UserId - SelfSignature *packet.Signature - Signatures []*packet.Signature -} - -// A Subkey is an additional public key in an Entity. Subkeys can be used for -// encryption. -type Subkey struct { - PublicKey *packet.PublicKey - PrivateKey *packet.PrivateKey - Sig *packet.Signature -} - -// A Key identifies a specific public key in an Entity. This is either the -// Entity's primary key or a subkey. -type Key struct { - Entity *Entity - PublicKey *packet.PublicKey - PrivateKey *packet.PrivateKey - SelfSignature *packet.Signature -} - -// A KeyRing provides access to public and private keys. -type KeyRing interface { - // KeysById returns the set of keys that have the given key id. - KeysById(id uint64) []Key - // KeysByIdAndUsage returns the set of keys with the given id - // that also meet the key usage given by requiredUsage. - // The requiredUsage is expressed as the bitwise-OR of - // packet.KeyFlag* values. - KeysByIdUsage(id uint64, requiredUsage byte) []Key - // DecryptionKeys returns all private keys that are valid for - // decryption. - DecryptionKeys() []Key -} - -// primaryIdentity returns the Identity marked as primary or the first identity -// if none are so marked. -func (e *Entity) primaryIdentity() *Identity { - var firstIdentity *Identity - for _, ident := range e.Identities { - if firstIdentity == nil { - firstIdentity = ident - } - if ident.SelfSignature.IsPrimaryId != nil && *ident.SelfSignature.IsPrimaryId { - return ident - } - } - return firstIdentity -} - -// encryptionKey returns the best candidate Key for encrypting a message to the -// given Entity. -func (e *Entity) encryptionKey(now time.Time) (Key, bool) { - candidateSubkey := -1 - - // Iterate the keys to find the newest key - var maxTime time.Time - for i, subkey := range e.Subkeys { - if subkey.Sig.FlagsValid && - subkey.Sig.FlagEncryptCommunications && - subkey.PublicKey.PubKeyAlgo.CanEncrypt() && - !subkey.Sig.KeyExpired(now) && - (maxTime.IsZero() || subkey.Sig.CreationTime.After(maxTime)) { - candidateSubkey = i - maxTime = subkey.Sig.CreationTime - } - } - - if candidateSubkey != -1 { - subkey := e.Subkeys[candidateSubkey] - return Key{e, subkey.PublicKey, subkey.PrivateKey, subkey.Sig}, true - } - - // If we don't have any candidate subkeys for encryption and - // the primary key doesn't have any usage metadata then we - // assume that the primary key is ok. Or, if the primary key is - // marked as ok to encrypt to, then we can obviously use it. - i := e.primaryIdentity() - if !i.SelfSignature.FlagsValid || i.SelfSignature.FlagEncryptCommunications && - e.PrimaryKey.PubKeyAlgo.CanEncrypt() && - !i.SelfSignature.KeyExpired(now) { - return Key{e, e.PrimaryKey, e.PrivateKey, i.SelfSignature}, true - } - - // This Entity appears to be signing only. - return Key{}, false -} - -// signingKey return the best candidate Key for signing a message with this -// Entity. -func (e *Entity) signingKey(now time.Time) (Key, bool) { - candidateSubkey := -1 - - for i, subkey := range e.Subkeys { - if subkey.Sig.FlagsValid && - subkey.Sig.FlagSign && - subkey.PublicKey.PubKeyAlgo.CanSign() && - !subkey.Sig.KeyExpired(now) { - candidateSubkey = i - break - } - } - - if candidateSubkey != -1 { - subkey := e.Subkeys[candidateSubkey] - return Key{e, subkey.PublicKey, subkey.PrivateKey, subkey.Sig}, true - } - - // If we have no candidate subkey then we assume that it's ok to sign - // with the primary key. - i := e.primaryIdentity() - if !i.SelfSignature.FlagsValid || i.SelfSignature.FlagSign && - !i.SelfSignature.KeyExpired(now) { - return Key{e, e.PrimaryKey, e.PrivateKey, i.SelfSignature}, true - } - - return Key{}, false -} - -// An EntityList contains one or more Entities. -type EntityList []*Entity - -// KeysById returns the set of keys that have the given key id. -func (el EntityList) KeysById(id uint64) (keys []Key) { - for _, e := range el { - if e.PrimaryKey.KeyId == id { - var selfSig *packet.Signature - for _, ident := range e.Identities { - if selfSig == nil { - selfSig = ident.SelfSignature - } else if ident.SelfSignature.IsPrimaryId != nil && *ident.SelfSignature.IsPrimaryId { - selfSig = ident.SelfSignature - break - } - } - keys = append(keys, Key{e, e.PrimaryKey, e.PrivateKey, selfSig}) - } - - for _, subKey := range e.Subkeys { - if subKey.PublicKey.KeyId == id { - keys = append(keys, Key{e, subKey.PublicKey, subKey.PrivateKey, subKey.Sig}) - } - } - } - return -} - -// KeysByIdAndUsage returns the set of keys with the given id that also meet -// the key usage given by requiredUsage. The requiredUsage is expressed as -// the bitwise-OR of packet.KeyFlag* values. -func (el EntityList) KeysByIdUsage(id uint64, requiredUsage byte) (keys []Key) { - for _, key := range el.KeysById(id) { - if len(key.Entity.Revocations) > 0 { - continue - } - - if key.SelfSignature.RevocationReason != nil { - continue - } - - if key.SelfSignature.FlagsValid && requiredUsage != 0 { - var usage byte - if key.SelfSignature.FlagCertify { - usage |= packet.KeyFlagCertify - } - if key.SelfSignature.FlagSign { - usage |= packet.KeyFlagSign - } - if key.SelfSignature.FlagEncryptCommunications { - usage |= packet.KeyFlagEncryptCommunications - } - if key.SelfSignature.FlagEncryptStorage { - usage |= packet.KeyFlagEncryptStorage - } - if usage&requiredUsage != requiredUsage { - continue - } - } - - keys = append(keys, key) - } - return -} - -// DecryptionKeys returns all private keys that are valid for decryption. -func (el EntityList) DecryptionKeys() (keys []Key) { - for _, e := range el { - for _, subKey := range e.Subkeys { - if subKey.PrivateKey != nil && (!subKey.Sig.FlagsValid || subKey.Sig.FlagEncryptStorage || subKey.Sig.FlagEncryptCommunications) { - keys = append(keys, Key{e, subKey.PublicKey, subKey.PrivateKey, subKey.Sig}) - } - } - } - return -} - -// ReadArmoredKeyRing reads one or more public/private keys from an armor keyring file. -func ReadArmoredKeyRing(r io.Reader) (EntityList, error) { - block, err := armor.Decode(r) - if err == io.EOF { - return nil, errors.InvalidArgumentError("no armored data found") - } - if err != nil { - return nil, err - } - if block.Type != PublicKeyType && block.Type != PrivateKeyType { - return nil, errors.InvalidArgumentError("expected public or private key block, got: " + block.Type) - } - - return ReadKeyRing(block.Body) -} - -// ReadKeyRing reads one or more public/private keys. Unsupported keys are -// ignored as long as at least a single valid key is found. -func ReadKeyRing(r io.Reader) (el EntityList, err error) { - packets := packet.NewReader(r) - var lastUnsupportedError error - - for { - var e *Entity - e, err = ReadEntity(packets) - if err != nil { - // TODO: warn about skipped unsupported/unreadable keys - if _, ok := err.(errors.UnsupportedError); ok { - lastUnsupportedError = err - err = readToNextPublicKey(packets) - } else if _, ok := err.(errors.StructuralError); ok { - // Skip unreadable, badly-formatted keys - lastUnsupportedError = err - err = readToNextPublicKey(packets) - } - if err == io.EOF { - err = nil - break - } - if err != nil { - el = nil - break - } - } else { - el = append(el, e) - } - } - - if len(el) == 0 && err == nil { - err = lastUnsupportedError - } - return -} - -// readToNextPublicKey reads packets until the start of the entity and leaves -// the first packet of the new entity in the Reader. -func readToNextPublicKey(packets *packet.Reader) (err error) { - var p packet.Packet - for { - p, err = packets.Next() - if err == io.EOF { - return - } else if err != nil { - if _, ok := err.(errors.UnsupportedError); ok { - err = nil - continue - } - return - } - - if pk, ok := p.(*packet.PublicKey); ok && !pk.IsSubkey { - packets.Unread(p) - return - } - } - - panic("unreachable") -} - -// ReadEntity reads an entity (public key, identities, subkeys etc) from the -// given Reader. -func ReadEntity(packets *packet.Reader) (*Entity, error) { - e := new(Entity) - e.Identities = make(map[string]*Identity) - - p, err := packets.Next() - if err != nil { - return nil, err - } - - var ok bool - if e.PrimaryKey, ok = p.(*packet.PublicKey); !ok { - if e.PrivateKey, ok = p.(*packet.PrivateKey); !ok { - packets.Unread(p) - return nil, errors.StructuralError("first packet was not a public/private key") - } else { - e.PrimaryKey = &e.PrivateKey.PublicKey - } - } - - if !e.PrimaryKey.PubKeyAlgo.CanSign() { - return nil, errors.StructuralError("primary key cannot be used for signatures") - } - - var current *Identity - var revocations []*packet.Signature -EachPacket: - for { - p, err := packets.Next() - if err == io.EOF { - break - } else if err != nil { - return nil, err - } - - switch pkt := p.(type) { - case *packet.UserId: - current = new(Identity) - current.Name = pkt.Id - current.UserId = pkt - e.Identities[pkt.Id] = current - - for { - p, err = packets.Next() - if err == io.EOF { - return nil, io.ErrUnexpectedEOF - } else if err != nil { - return nil, err - } - - sig, ok := p.(*packet.Signature) - if !ok { - return nil, errors.StructuralError("user ID packet not followed by self-signature") - } - - if (sig.SigType == packet.SigTypePositiveCert || sig.SigType == packet.SigTypeGenericCert) && sig.IssuerKeyId != nil && *sig.IssuerKeyId == e.PrimaryKey.KeyId { - if err = e.PrimaryKey.VerifyUserIdSignature(pkt.Id, e.PrimaryKey, sig); err != nil { - return nil, errors.StructuralError("user ID self-signature invalid: " + err.Error()) - } - current.SelfSignature = sig - break - } - current.Signatures = append(current.Signatures, sig) - } - case *packet.Signature: - if pkt.SigType == packet.SigTypeKeyRevocation { - revocations = append(revocations, pkt) - } else if pkt.SigType == packet.SigTypeDirectSignature { - // TODO: RFC4880 5.2.1 permits signatures - // directly on keys (eg. to bind additional - // revocation keys). - } else if current == nil { - return nil, errors.StructuralError("signature packet found before user id packet") - } else { - current.Signatures = append(current.Signatures, pkt) - } - case *packet.PrivateKey: - if pkt.IsSubkey == false { - packets.Unread(p) - break EachPacket - } - err = addSubkey(e, packets, &pkt.PublicKey, pkt) - if err != nil { - return nil, err - } - case *packet.PublicKey: - if pkt.IsSubkey == false { - packets.Unread(p) - break EachPacket - } - err = addSubkey(e, packets, pkt, nil) - if err != nil { - return nil, err - } - default: - // we ignore unknown packets - } - } - - if len(e.Identities) == 0 { - return nil, errors.StructuralError("entity without any identities") - } - - for _, revocation := range revocations { - err = e.PrimaryKey.VerifyRevocationSignature(revocation) - if err == nil { - e.Revocations = append(e.Revocations, revocation) - } else { - // TODO: RFC 4880 5.2.3.15 defines revocation keys. - return nil, errors.StructuralError("revocation signature signed by alternate key") - } - } - - return e, nil -} - -func addSubkey(e *Entity, packets *packet.Reader, pub *packet.PublicKey, priv *packet.PrivateKey) error { - var subKey Subkey - subKey.PublicKey = pub - subKey.PrivateKey = priv - p, err := packets.Next() - if err == io.EOF { - return io.ErrUnexpectedEOF - } - if err != nil { - return errors.StructuralError("subkey signature invalid: " + err.Error()) - } - var ok bool - subKey.Sig, ok = p.(*packet.Signature) - if !ok { - return errors.StructuralError("subkey packet not followed by signature") - } - if subKey.Sig.SigType != packet.SigTypeSubkeyBinding && subKey.Sig.SigType != packet.SigTypeSubkeyRevocation { - return errors.StructuralError("subkey signature with wrong type") - } - err = e.PrimaryKey.VerifyKeySignature(subKey.PublicKey, subKey.Sig) - if err != nil { - return errors.StructuralError("subkey signature invalid: " + err.Error()) - } - e.Subkeys = append(e.Subkeys, subKey) - return nil -} - -const defaultRSAKeyBits = 2048 - -// NewEntity returns an Entity that contains a fresh RSA/RSA keypair with a -// single identity composed of the given full name, comment and email, any of -// which may be empty but must not contain any of "()<>\x00". -// If config is nil, sensible defaults will be used. -func NewEntity(name, comment, email string, config *packet.Config) (*Entity, error) { - currentTime := config.Now() - - bits := defaultRSAKeyBits - if config != nil && config.RSABits != 0 { - bits = config.RSABits - } - - uid := packet.NewUserId(name, comment, email) - if uid == nil { - return nil, errors.InvalidArgumentError("user id field contained invalid characters") - } - signingPriv, err := rsa.GenerateKey(config.Random(), bits) - if err != nil { - return nil, err - } - encryptingPriv, err := rsa.GenerateKey(config.Random(), bits) - if err != nil { - return nil, err - } - - e := &Entity{ - PrimaryKey: packet.NewRSAPublicKey(currentTime, &signingPriv.PublicKey), - PrivateKey: packet.NewRSAPrivateKey(currentTime, signingPriv), - Identities: make(map[string]*Identity), - } - isPrimaryId := true - e.Identities[uid.Id] = &Identity{ - Name: uid.Name, - UserId: uid, - SelfSignature: &packet.Signature{ - CreationTime: currentTime, - SigType: packet.SigTypePositiveCert, - PubKeyAlgo: packet.PubKeyAlgoRSA, - Hash: config.Hash(), - IsPrimaryId: &isPrimaryId, - FlagsValid: true, - FlagSign: true, - FlagCertify: true, - IssuerKeyId: &e.PrimaryKey.KeyId, - }, - } - - e.Subkeys = make([]Subkey, 1) - e.Subkeys[0] = Subkey{ - PublicKey: packet.NewRSAPublicKey(currentTime, &encryptingPriv.PublicKey), - PrivateKey: packet.NewRSAPrivateKey(currentTime, encryptingPriv), - Sig: &packet.Signature{ - CreationTime: currentTime, - SigType: packet.SigTypeSubkeyBinding, - PubKeyAlgo: packet.PubKeyAlgoRSA, - Hash: config.Hash(), - FlagsValid: true, - FlagEncryptStorage: true, - FlagEncryptCommunications: true, - IssuerKeyId: &e.PrimaryKey.KeyId, - }, - } - e.Subkeys[0].PublicKey.IsSubkey = true - e.Subkeys[0].PrivateKey.IsSubkey = true - - return e, nil -} - -// SerializePrivate serializes an Entity, including private key material, to -// the given Writer. For now, it must only be used on an Entity returned from -// NewEntity. -// If config is nil, sensible defaults will be used. -func (e *Entity) SerializePrivate(w io.Writer, config *packet.Config) (err error) { - err = e.PrivateKey.Serialize(w) - if err != nil { - return - } - for _, ident := range e.Identities { - err = ident.UserId.Serialize(w) - if err != nil { - return - } - err = ident.SelfSignature.SignUserId(ident.UserId.Id, e.PrimaryKey, e.PrivateKey, config) - if err != nil { - return - } - err = ident.SelfSignature.Serialize(w) - if err != nil { - return - } - } - for _, subkey := range e.Subkeys { - err = subkey.PrivateKey.Serialize(w) - if err != nil { - return - } - err = subkey.Sig.SignKey(subkey.PublicKey, e.PrivateKey, config) - if err != nil { - return - } - err = subkey.Sig.Serialize(w) - if err != nil { - return - } - } - return nil -} - -// Serialize writes the public part of the given Entity to w. (No private -// key material will be output). -func (e *Entity) Serialize(w io.Writer) error { - err := e.PrimaryKey.Serialize(w) - if err != nil { - return err - } - for _, ident := range e.Identities { - err = ident.UserId.Serialize(w) - if err != nil { - return err - } - err = ident.SelfSignature.Serialize(w) - if err != nil { - return err - } - for _, sig := range ident.Signatures { - err = sig.Serialize(w) - if err != nil { - return err - } - } - } - for _, subkey := range e.Subkeys { - err = subkey.PublicKey.Serialize(w) - if err != nil { - return err - } - err = subkey.Sig.Serialize(w) - if err != nil { - return err - } - } - return nil -} - -// SignIdentity adds a signature to e, from signer, attesting that identity is -// associated with e. The provided identity must already be an element of -// e.Identities and the private key of signer must have been decrypted if -// necessary. -// If config is nil, sensible defaults will be used. -func (e *Entity) SignIdentity(identity string, signer *Entity, config *packet.Config) error { - if signer.PrivateKey == nil { - return errors.InvalidArgumentError("signing Entity must have a private key") - } - if signer.PrivateKey.Encrypted { - return errors.InvalidArgumentError("signing Entity's private key must be decrypted") - } - ident, ok := e.Identities[identity] - if !ok { - return errors.InvalidArgumentError("given identity string not found in Entity") - } - - sig := &packet.Signature{ - SigType: packet.SigTypeGenericCert, - PubKeyAlgo: signer.PrivateKey.PubKeyAlgo, - Hash: config.Hash(), - CreationTime: config.Now(), - IssuerKeyId: &signer.PrivateKey.KeyId, - } - if err := sig.SignUserId(identity, e.PrimaryKey, signer.PrivateKey, config); err != nil { - return err - } - ident.Signatures = append(ident.Signatures, sig) - return nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/keys_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/keys_test.go deleted file mode 100644 index 024b4779..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/keys_test.go +++ /dev/null @@ -1,370 +0,0 @@ -package openpgp - -import ( - "bytes" - "strings" - "testing" - "time" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet" -) - -func TestKeyExpiry(t *testing.T) { - kring, _ := ReadKeyRing(readerFromHex(expiringKeyHex)) - entity := kring[0] - - const timeFormat = "2006-01-02" - time1, _ := time.Parse(timeFormat, "2013-07-01") - - // The expiringKeyHex key is structured as: - // - // pub 1024R/5E237D8C created: 2013-07-01 expires: 2013-07-31 usage: SC - // sub 1024R/1ABB25A0 created: 2013-07-01 23:11:07 +0200 CEST expires: 2013-07-08 usage: E - // sub 1024R/96A672F5 created: 2013-07-01 23:11:23 +0200 CEST expires: 2013-07-31 usage: E - // - // So this should select the newest, non-expired encryption key. - key, _ := entity.encryptionKey(time1) - if id := key.PublicKey.KeyIdShortString(); id != "96A672F5" { - t.Errorf("Expected key 1ABB25A0 at time %s, but got key %s", time1.Format(timeFormat), id) - } - - // Once the first encryption subkey has expired, the second should be - // selected. - time2, _ := time.Parse(timeFormat, "2013-07-09") - key, _ = entity.encryptionKey(time2) - if id := key.PublicKey.KeyIdShortString(); id != "96A672F5" { - t.Errorf("Expected key 96A672F5 at time %s, but got key %s", time2.Format(timeFormat), id) - } - - // Once all the keys have expired, nothing should be returned. - time3, _ := time.Parse(timeFormat, "2013-08-01") - if key, ok := entity.encryptionKey(time3); ok { - t.Errorf("Expected no key at time %s, but got key %s", time3.Format(timeFormat), key.PublicKey.KeyIdShortString()) - } -} - -func TestMissingCrossSignature(t *testing.T) { - // This public key has a signing subkey, but the subkey does not - // contain a cross-signature. - keys, err := ReadArmoredKeyRing(bytes.NewBufferString(missingCrossSignatureKey)) - if len(keys) != 0 { - t.Errorf("Accepted key with missing cross signature") - } - if err == nil { - t.Fatal("Failed to detect error in keyring with missing cross signature") - } - structural, ok := err.(errors.StructuralError) - if !ok { - t.Fatalf("Unexpected class of error: %T. Wanted StructuralError", err) - } - const expectedMsg = "signing subkey is missing cross-signature" - if !strings.Contains(string(structural), expectedMsg) { - t.Fatalf("Unexpected error: %q. Expected it to contain %q", err, expectedMsg) - } -} - -func TestInvalidCrossSignature(t *testing.T) { - // This public key has a signing subkey, and the subkey has an - // embedded cross-signature. However, the cross-signature does - // not correctly validate over the primary and subkey. - keys, err := ReadArmoredKeyRing(bytes.NewBufferString(invalidCrossSignatureKey)) - if len(keys) != 0 { - t.Errorf("Accepted key with invalid cross signature") - } - if err == nil { - t.Fatal("Failed to detect error in keyring with an invalid cross signature") - } - structural, ok := err.(errors.StructuralError) - if !ok { - t.Fatalf("Unexpected class of error: %T. Wanted StructuralError", err) - } - const expectedMsg = "subkey signature invalid" - if !strings.Contains(string(structural), expectedMsg) { - t.Fatalf("Unexpected error: %q. Expected it to contain %q", err, expectedMsg) - } -} - -func TestGoodCrossSignature(t *testing.T) { - // This public key has a signing subkey, and the subkey has an - // embedded cross-signature which correctly validates over the - // primary and subkey. - keys, err := ReadArmoredKeyRing(bytes.NewBufferString(goodCrossSignatureKey)) - if err != nil { - t.Fatal(err) - } - if len(keys) != 1 { - t.Errorf("Failed to accept key with good cross signature, %d", len(keys)) - } - if len(keys[0].Subkeys) != 1 { - t.Errorf("Failed to accept good subkey, %d", len(keys[0].Subkeys)) - } -} - -// TestExternallyRevokableKey attempts to load and parse a key with a third party revocation permission. -func TestExternallyRevocableKey(t *testing.T) { - kring, _ := ReadKeyRing(readerFromHex(subkeyUsageHex)) - - // The 0xA42704B92866382A key can be revoked by 0xBE3893CB843D0FE70C - // according to this signature that appears within the key: - // :signature packet: algo 1, keyid A42704B92866382A - // version 4, created 1396409682, md5len 0, sigclass 0x1f - // digest algo 2, begin of digest a9 84 - // hashed subpkt 2 len 4 (sig created 2014-04-02) - // hashed subpkt 12 len 22 (revocation key: c=80 a=1 f=CE094AA433F7040BB2DDF0BE3893CB843D0FE70C) - // hashed subpkt 7 len 1 (not revocable) - // subpkt 16 len 8 (issuer key ID A42704B92866382A) - // data: [1024 bits] - - id := uint64(0xA42704B92866382A) - keys := kring.KeysById(id) - if len(keys) != 1 { - t.Errorf("Expected to find key id %X, but got %d matches", id, len(keys)) - } -} - -func TestKeyRevocation(t *testing.T) { - kring, _ := ReadKeyRing(readerFromHex(revokedKeyHex)) - - // revokedKeyHex contains these keys: - // pub 1024R/9A34F7C0 2014-03-25 [revoked: 2014-03-25] - // sub 1024R/1BA3CD60 2014-03-25 [revoked: 2014-03-25] - ids := []uint64{0xA401D9F09A34F7C0, 0x5CD3BE0A1BA3CD60} - - for _, id := range ids { - keys := kring.KeysById(id) - if len(keys) != 1 { - t.Errorf("Expected KeysById to find revoked key %X, but got %d matches", id, len(keys)) - } - keys = kring.KeysByIdUsage(id, 0) - if len(keys) != 0 { - t.Errorf("Expected KeysByIdUsage to filter out revoked key %X, but got %d matches", id, len(keys)) - } - } -} - -func TestSubkeyRevocation(t *testing.T) { - kring, _ := ReadKeyRing(readerFromHex(revokedSubkeyHex)) - - // revokedSubkeyHex contains these keys: - // pub 1024R/4EF7E4BECCDE97F0 2014-03-25 - // sub 1024R/D63636E2B96AE423 2014-03-25 - // sub 1024D/DBCE4EE19529437F 2014-03-25 - // sub 1024R/677815E371C2FD23 2014-03-25 [revoked: 2014-03-25] - validKeys := []uint64{0x4EF7E4BECCDE97F0, 0xD63636E2B96AE423, 0xDBCE4EE19529437F} - revokedKey := uint64(0x677815E371C2FD23) - - for _, id := range validKeys { - keys := kring.KeysById(id) - if len(keys) != 1 { - t.Errorf("Expected KeysById to find key %X, but got %d matches", id, len(keys)) - } - keys = kring.KeysByIdUsage(id, 0) - if len(keys) != 1 { - t.Errorf("Expected KeysByIdUsage to find key %X, but got %d matches", id, len(keys)) - } - } - - keys := kring.KeysById(revokedKey) - if len(keys) != 1 { - t.Errorf("Expected KeysById to find key %X, but got %d matches", revokedKey, len(keys)) - } - - keys = kring.KeysByIdUsage(revokedKey, 0) - if len(keys) != 0 { - t.Errorf("Expected KeysByIdUsage to filter out revoked key %X, but got %d matches", revokedKey, len(keys)) - } -} - -func TestKeyUsage(t *testing.T) { - kring, _ := ReadKeyRing(readerFromHex(subkeyUsageHex)) - - // subkeyUsageHex contains these keys: - // pub 1024R/2866382A created: 2014-04-01 expires: never usage: SC - // sub 1024R/936C9153 created: 2014-04-01 expires: never usage: E - // sub 1024R/64D5F5BB created: 2014-04-02 expires: never usage: E - // sub 1024D/BC0BA992 created: 2014-04-02 expires: never usage: S - certifiers := []uint64{0xA42704B92866382A} - signers := []uint64{0xA42704B92866382A, 0x42CE2C64BC0BA992} - encrypters := []uint64{0x09C0C7D9936C9153, 0xC104E98664D5F5BB} - - for _, id := range certifiers { - keys := kring.KeysByIdUsage(id, packet.KeyFlagCertify) - if len(keys) == 1 { - if keys[0].PublicKey.KeyId != id { - t.Errorf("Expected to find certifier key id %X, but got %X", id, keys[0].PublicKey.KeyId) - } - } else { - t.Errorf("Expected one match for certifier key id %X, but got %d matches", id, len(keys)) - } - } - - for _, id := range signers { - keys := kring.KeysByIdUsage(id, packet.KeyFlagSign) - if len(keys) == 1 { - if keys[0].PublicKey.KeyId != id { - t.Errorf("Expected to find signing key id %X, but got %X", id, keys[0].PublicKey.KeyId) - } - } else { - t.Errorf("Expected one match for signing key id %X, but got %d matches", id, len(keys)) - } - - // This keyring contains no encryption keys that are also good for signing. - keys = kring.KeysByIdUsage(id, packet.KeyFlagEncryptStorage|packet.KeyFlagEncryptCommunications) - if len(keys) != 0 { - t.Errorf("Unexpected match for encryption key id %X", id) - } - } - - for _, id := range encrypters { - keys := kring.KeysByIdUsage(id, packet.KeyFlagEncryptStorage|packet.KeyFlagEncryptCommunications) - if len(keys) == 1 { - if keys[0].PublicKey.KeyId != id { - t.Errorf("Expected to find encryption key id %X, but got %X", id, keys[0].PublicKey.KeyId) - } - } else { - t.Errorf("Expected one match for encryption key id %X, but got %d matches", id, len(keys)) - } - - // This keyring contains no encryption keys that are also good for signing. - keys = kring.KeysByIdUsage(id, packet.KeyFlagSign) - if len(keys) != 0 { - t.Errorf("Unexpected match for signing key id %X", id) - } - } -} - -func TestIdVerification(t *testing.T) { - kring, err := ReadKeyRing(readerFromHex(testKeys1And2PrivateHex)) - if err != nil { - t.Fatal(err) - } - if err := kring[1].PrivateKey.Decrypt([]byte("passphrase")); err != nil { - t.Fatal(err) - } - - const identity = "Test Key 1 (RSA)" - if err := kring[0].SignIdentity(identity, kring[1], nil); err != nil { - t.Fatal(err) - } - - ident, ok := kring[0].Identities[identity] - if !ok { - t.Fatal("identity missing from key after signing") - } - - checked := false - for _, sig := range ident.Signatures { - if sig.IssuerKeyId == nil || *sig.IssuerKeyId != kring[1].PrimaryKey.KeyId { - continue - } - - if err := kring[1].PrimaryKey.VerifyUserIdSignature(identity, kring[0].PrimaryKey, sig); err != nil { - t.Fatalf("error verifying new identity signature: %s", err) - } - checked = true - break - } - - if !checked { - t.Fatal("didn't find identity signature in Entity") - } -} - -const expiringKeyHex = "988d0451d1ec5d010400ba3385721f2dc3f4ab096b2ee867ab77213f0a27a8538441c35d2fa225b08798a1439a66a5150e6bdc3f40f5d28d588c712394c632b6299f77db8c0d48d37903fb72ebd794d61be6aa774688839e5fdecfe06b2684cc115d240c98c66cb1ef22ae84e3aa0c2b0c28665c1e7d4d044e7f270706193f5223c8d44e0d70b7b8da830011010001b40f4578706972792074657374206b657988be041301020028050251d1ec5d021b03050900278d00060b090807030206150802090a0b0416020301021e01021780000a091072589ad75e237d8c033503fd10506d72837834eb7f994117740723adc39227104b0d326a1161871c0b415d25b4aedef946ca77ea4c05af9c22b32cf98be86ab890111fced1ee3f75e87b7cc3c00dc63bbc85dfab91c0dc2ad9de2c4d13a34659333a85c6acc1a669c5e1d6cecb0cf1e56c10e72d855ae177ddc9e766f9b2dda57ccbb75f57156438bbdb4e42b88d0451d1ec5d0104009c64906559866c5cb61578f5846a94fcee142a489c9b41e67b12bb54cfe86eb9bc8566460f9a720cb00d6526fbccfd4f552071a8e3f7744b1882d01036d811ee5a3fb91a1c568055758f43ba5d2c6a9676b012f3a1a89e47bbf624f1ad571b208f3cc6224eb378f1645dd3d47584463f9eadeacfd1ce6f813064fbfdcc4b5a53001101000188a504180102000f021b0c050251d1f06b050900093e89000a091072589ad75e237d8c20e00400ab8310a41461425b37889c4da28129b5fae6084fafbc0a47dd1adc74a264c6e9c9cc125f40462ee1433072a58384daef88c961c390ed06426a81b464a53194c4e291ddd7e2e2ba3efced01537d713bd111f48437bde2363446200995e8e0d4e528dda377fd1e8f8ede9c8e2198b393bd86852ce7457a7e3daf74d510461a5b77b88d0451d1ece8010400b3a519f83ab0010307e83bca895170acce8964a044190a2b368892f7a244758d9fc193482648acb1fb9780d28cc22d171931f38bb40279389fc9bf2110876d4f3db4fcfb13f22f7083877fe56592b3b65251312c36f83ffcb6d313c6a17f197dd471f0712aad15a8537b435a92471ba2e5b0c72a6c72536c3b567c558d7b6051001101000188a504180102000f021b0c050251d1f07b050900279091000a091072589ad75e237d8ce69e03fe286026afacf7c97ee20673864d4459a2240b5655219950643c7dba0ac384b1d4359c67805b21d98211f7b09c2a0ccf6410c8c04d4ff4a51293725d8d6570d9d8bb0e10c07d22357caeb49626df99c180be02d77d1fe8ed25e7a54481237646083a9f89a11566cd20b9e995b1487c5f9e02aeb434f3a1897cd416dd0a87861838da3e9e" -const subkeyUsageHex = "988d04533a52bc010400d26af43085558f65b9e7dbc90cb9238015259aed5e954637adcfa2181548b2d0b60c65f1f42ec5081cbf1bc0a8aa4900acfb77070837c58f26012fbce297d70afe96e759ad63531f0037538e70dbf8e384569b9720d99d8eb39d8d0a2947233ed242436cb6ac7dfe74123354b3d0119b5c235d3dd9c9d6c004f8ffaf67ad8583001101000188b7041f010200210502533b8552170c8001ce094aa433f7040bb2ddf0be3893cb843d0fe70c020700000a0910a42704b92866382aa98404009d63d916a27543da4221c60087c33f1c44bec9998c5438018ed370cca4962876c748e94b73eb39c58eb698063f3fd6346d58dd2a11c0247934c4a9d71f24754f7468f96fb24c3e791dd2392b62f626148ad724189498cbf993db2df7c0cdc2d677c35da0f16cb16c9ce7c33b4de65a4a91b1d21a130ae9cc26067718910ef8e2b417556d627261203c756d627261407379642e65642e61753e88b80413010200220502533a52bc021b03060b090807030206150802090a0b0416020301021e01021780000a0910a42704b92866382a47840400c0c2bd04f5fca586de408b395b3c280a278259c93eaaa8b79a53b97003f8ed502a8a00446dd9947fb462677e4fcac0dac2f0701847d15130aadb6cd9e0705ea0cf5f92f129136c7be21a718d46c8e641eb7f044f2adae573e11ae423a0a9ca51324f03a8a2f34b91fa40c3cc764bee4dccadedb54c768ba0469b683ea53f1c29b88d04533a52bc01040099c92a5d6f8b744224da27bc2369127c35269b58bec179de6bbc038f749344222f85a31933224f26b70243c4e4b2d242f0c4777eaef7b5502f9dad6d8bf3aaeb471210674b74de2d7078af497d55f5cdad97c7bedfbc1b41e8065a97c9c3d344b21fc81d27723af8e374bc595da26ea242dccb6ae497be26eea57e563ed517e90011010001889f0418010200090502533a52bc021b0c000a0910a42704b92866382afa1403ff70284c2de8a043ff51d8d29772602fa98009b7861c540535f874f2c230af8caf5638151a636b21f8255003997ccd29747fdd06777bb24f9593bd7d98a3e887689bf902f999915fcc94625ae487e5d13e6616f89090ebc4fdc7eb5cad8943e4056995bb61c6af37f8043016876a958ec7ebf39c43d20d53b7f546cfa83e8d2604b88d04533b8283010400c0b529316dbdf58b4c54461e7e669dc11c09eb7f73819f178ccd4177b9182b91d138605fcf1e463262fabefa73f94a52b5e15d1904635541c7ea540f07050ce0fb51b73e6f88644cec86e91107c957a114f69554548a85295d2b70bd0b203992f76eb5d493d86d9eabcaa7ef3fc7db7e458438db3fcdb0ca1cc97c638439a9170011010001889f0418010200090502533b8283021b0c000a0910a42704b92866382adc6d0400cfff6258485a21675adb7a811c3e19ebca18851533f75a7ba317950b9997fda8d1a4c8c76505c08c04b6c2cc31dc704d33da36a21273f2b388a1a706f7c3378b66d887197a525936ed9a69acb57fe7f718133da85ec742001c5d1864e9c6c8ea1b94f1c3759cebfd93b18606066c063a63be86085b7e37bdbc65f9a915bf084bb901a204533b85cd110400aed3d2c52af2b38b5b67904b0ef73d6dd7aef86adb770e2b153cd22489654dcc91730892087bb9856ae2d9f7ed1eb48f214243fe86bfe87b349ebd7c30e630e49c07b21fdabf78b7a95c8b7f969e97e3d33f2e074c63552ba64a2ded7badc05ce0ea2be6d53485f6900c7860c7aa76560376ce963d7271b9b54638a4028b573f00a0d8854bfcdb04986141568046202192263b9b67350400aaa1049dbc7943141ef590a70dcb028d730371d92ea4863de715f7f0f16d168bd3dc266c2450457d46dcbbf0b071547e5fbee7700a820c3750b236335d8d5848adb3c0da010e998908dfd93d961480084f3aea20b247034f8988eccb5546efaa35a92d0451df3aaf1aee5aa36a4c4d462c760ecd9cebcabfbe1412b1f21450f203fd126687cd486496e971a87fd9e1a8a765fe654baa219a6871ab97768596ab05c26c1aeea8f1a2c72395a58dbc12ef9640d2b95784e974a4d2d5a9b17c25fedacfe551bda52602de8f6d2e48443f5dd1a2a2a8e6a5e70ecdb88cd6e766ad9745c7ee91d78cc55c3d06536b49c3fee6c3d0b6ff0fb2bf13a314f57c953b8f4d93bf88e70418010200090502533b85cd021b0200520910a42704b92866382a47200419110200060502533b85cd000a091042ce2c64bc0ba99214b2009e26b26852c8b13b10c35768e40e78fbbb48bd084100a0c79d9ea0844fa5853dd3c85ff3ecae6f2c9dd6c557aa04008bbbc964cd65b9b8299d4ebf31f41cc7264b8cf33a00e82c5af022331fac79efc9563a822497ba012953cefe2629f1242fcdcb911dbb2315985bab060bfd58261ace3c654bdbbe2e8ed27a46e836490145c86dc7bae15c011f7e1ffc33730109b9338cd9f483e7cef3d2f396aab5bd80efb6646d7e778270ee99d934d187dd98" -const revokedKeyHex = "988d045331ce82010400c4fdf7b40a5477f206e6ee278eaef888ca73bf9128a9eef9f2f1ddb8b7b71a4c07cfa241f028a04edb405e4d916c61d6beabc333813dc7b484d2b3c52ee233c6a79b1eea4e9cc51596ba9cd5ac5aeb9df62d86ea051055b79d03f8a4fa9f38386f5bd17529138f3325d46801514ea9047977e0829ed728e68636802796801be10011010001889f04200102000905025331d0e3021d03000a0910a401d9f09a34f7c042aa040086631196405b7e6af71026b88e98012eab44aa9849f6ef3fa930c7c9f23deaedba9db1538830f8652fb7648ec3fcade8dbcbf9eaf428e83c6cbcc272201bfe2fbb90d41963397a7c0637a1a9d9448ce695d9790db2dc95433ad7be19eb3de72dacf1d6db82c3644c13eae2a3d072b99bb341debba012c5ce4006a7d34a1f4b94b444526567205265766f6b657220283c52656727732022424d204261726973746122204b657920262530305c303e5c29203c72656740626d626172697374612e636f2e61753e88b704130102002205025331ce82021b03060b090807030206150802090a0b0416020301021e01021780000a0910a401d9f09a34f7c0019c03f75edfbeb6a73e7225ad3cc52724e2872e04260d7daf0d693c170d8c4b243b8767bc7785763533febc62ec2600c30603c433c095453ede59ff2fcabeb84ce32e0ed9d5cf15ffcbc816202b64370d4d77c1e9077d74e94a16fb4fa2e5bec23a56d7a73cf275f91691ae1801a976fcde09e981a2f6327ac27ea1fecf3185df0d56889c04100102000605025331cfb5000a0910fe9645554e8266b64b4303fc084075396674fb6f778d302ac07cef6bc0b5d07b66b2004c44aef711cbac79617ef06d836b4957522d8772dd94bf41a2f4ac8b1ee6d70c57503f837445a74765a076d07b829b8111fc2a918423ddb817ead7ca2a613ef0bfb9c6b3562aec6c3cf3c75ef3031d81d95f6563e4cdcc9960bcb386c5d757b104fcca5fe11fc709df884604101102000605025331cfe7000a09107b15a67f0b3ddc0317f6009e360beea58f29c1d963a22b962b80788c3fa6c84e009d148cfde6b351469b8eae91187eff07ad9d08fcaab88d045331ce820104009f25e20a42b904f3fa555530fe5c46737cf7bd076c35a2a0d22b11f7e0b61a69320b768f4a80fe13980ce380d1cfc4a0cd8fbe2d2e2ef85416668b77208baa65bf973fe8e500e78cc310d7c8705cdb34328bf80e24f0385fce5845c33bc7943cf6b11b02348a23da0bf6428e57c05135f2dc6bd7c1ce325d666d5a5fd2fd5e410011010001889f04180102000905025331ce82021b0c000a0910a401d9f09a34f7c0418003fe34feafcbeaef348a800a0d908a7a6809cc7304017d820f70f0474d5e23cb17e38b67dc6dca282c6ca00961f4ec9edf2738d0f087b1d81e4871ef08e1798010863afb4eac4c44a376cb343be929c5be66a78cfd4456ae9ec6a99d97f4e1c3ff3583351db2147a65c0acef5c003fb544ab3a2e2dc4d43646f58b811a6c3a369d1f" -const revokedSubkeyHex = "988d04533121f6010400aefc803a3e4bb1a61c86e8a86d2726c6a43e0079e9f2713f1fa017e9854c83877f4aced8e331d675c67ea83ddab80aacbfa0b9040bb12d96f5a3d6be09455e2a76546cbd21677537db941cab710216b6d24ec277ee0bd65b910f416737ed120f6b93a9d3b306245c8cfd8394606fdb462e5cf43c551438d2864506c63367fc890011010001b41d416c696365203c616c69636540626d626172697374612e636f2e61753e88bb041301020025021b03060b090807030206150802090a0b0416020301021e01021780050253312798021901000a09104ef7e4beccde97f015a803ff5448437780f63263b0df8442a995e7f76c221351a51edd06f2063d8166cf3157aada4923dfc44aa0f2a6a4da5cf83b7fe722ba8ab416c976e77c6b5682e7f1069026673bd0de56ba06fd5d7a9f177607f277d9b55ff940a638c3e68525c67517e2b3d976899b93ca267f705b3e5efad7d61220e96b618a4497eab8d04403d23f8846041011020006050253312910000a09107b15a67f0b3ddc03d96e009f50b6365d86c4be5d5e9d0ea42d5e56f5794c617700a0ab274e19c2827780016d23417ce89e0a2c0d987d889c04100102000605025331cf7a000a0910a401d9f09a34f7c0ee970400aca292f213041c9f3b3fc49148cbda9d84afee6183c8dd6c5ff2600b29482db5fecd4303797be1ee6d544a20a858080fec43412061c9a71fae4039fd58013b4ae341273e6c66ad4c7cdd9e68245bedb260562e7b166f2461a1032f2b38c0e0e5715fb3d1656979e052b55ca827a76f872b78a9fdae64bc298170bfcebedc1271b41a416c696365203c616c696365407379646973702e6f722e61753e88b804130102002205025331278b021b03060b090807030206150802090a0b0416020301021e01021780000a09104ef7e4beccde97f06a7003fa03c3af68d272ebc1fa08aa72a03b02189c26496a2833d90450801c4e42c5b5f51ad96ce2d2c9cef4b7c02a6a2fcf1412d6a2d486098eb762f5010a201819c17fd2888aec8eda20c65a3b75744de7ee5cc8ac7bfc470cbe3cb982720405a27a3c6a8c229cfe36905f881b02ed5680f6a8f05866efb9d6c5844897e631deb949ca8846041011020006050253312910000a09107b15a67f0b3ddc0347bc009f7fa35db59147469eb6f2c5aaf6428accb138b22800a0caa2f5f0874bacc5909c652a57a31beda65eddd5889c04100102000605025331cf7a000a0910a401d9f09a34f7c0316403ff46f2a5c101256627f16384d34a38fb47a6c88ba60506843e532d91614339fccae5f884a5741e7582ffaf292ba38ee10a270a05f139bde3814b6a077e8cd2db0f105ebea2a83af70d385f13b507fac2ad93ff79d84950328bb86f3074745a8b7f9b64990fb142e2a12976e27e8d09a28dc5621f957ac49091116da410ac3cbde1b88d04533121f6010400cbd785b56905e4192e2fb62a720727d43c4fa487821203cf72138b884b78b701093243e1d8c92a0248a6c0203a5a88693da34af357499abacaf4b3309c640797d03093870a323b4b6f37865f6eaa2838148a67df4735d43a90ca87942554cdf1c4a751b1e75f9fd4ce4e97e278d6c1c7ed59d33441df7d084f3f02beb68896c70011010001889f0418010200090502533121f6021b0c000a09104ef7e4beccde97f0b98b03fc0a5ccf6a372995835a2f5da33b282a7d612c0ab2a97f59cf9fff73e9110981aac2858c41399afa29624a7fd8a0add11654e3d882c0fd199e161bdad65e5e2548f7b68a437ea64293db1246e3011cbb94dc1bcdeaf0f2539bd88ff16d95547144d97cead6a8c5927660a91e6db0d16eb36b7b49a3525b54d1644e65599b032b7eb901a204533127a0110400bd3edaa09eff9809c4edc2c2a0ebe52e53c50a19c1e49ab78e6167bf61473bb08f2050d78a5cbbc6ed66aff7b42cd503f16b4a0b99fa1609681fca9b7ce2bbb1a5b3864d6cdda4d7ef7849d156d534dea30fb0efb9e4cf8959a2b2ce623905882d5430b995a15c3b9fe92906086788b891002924f94abe139b42cbbfaaabe42f00a0b65dc1a1ad27d798adbcb5b5ad02d2688c89477b03ff4eebb6f7b15a73b96a96bed201c0e5e4ea27e4c6e2dd1005b94d4b90137a5b1cf5e01c6226c070c4cc999938101578877ee76d296b9aab8246d57049caacf489e80a3f40589cade790a020b1ac146d6f7a6241184b8c7fcde680eae3188f5dcbe846d7f7bdad34f6fcfca08413e19c1d5df83fc7c7c627d493492e009c2f52a80400a2fe82de87136fd2e8845888c4431b032ba29d9a29a804277e31002a8201fb8591a3e55c7a0d0881496caf8b9fb07544a5a4879291d0dc026a0ea9e5bd88eb4aa4947bbd694b25012e208a250d65ddc6f1eea59d3aed3b4ec15fcab85e2afaa23a40ab1ef9ce3e11e1bc1c34a0e758e7aa64deb8739276df0af7d4121f834a9b88e70418010200090502533127a0021b02005209104ef7e4beccde97f047200419110200060502533127a0000a0910dbce4ee19529437fe045009c0b32f5ead48ee8a7e98fac0dea3d3e6c0e2c552500a0ad71fadc5007cfaf842d9b7db3335a8cdad15d3d1a6404009b08e2c68fe8f3b45c1bb72a4b3278cdf3012aa0f229883ad74aa1f6000bb90b18301b2f85372ca5d6b9bf478d235b733b1b197d19ccca48e9daf8e890cb64546b4ce1b178faccfff07003c172a2d4f5ebaba9f57153955f3f61a9b80a4f5cb959908f8b211b03b7026a8a82fc612bfedd3794969bcf458c4ce92be215a1176ab88d045331d144010400a5063000c5aaf34953c1aa3bfc95045b3aab9882b9a8027fecfe2142dc6b47ba8aca667399990244d513dd0504716908c17d92c65e74219e004f7b83fc125e575dd58efec3ab6dd22e3580106998523dea42ec75bf9aa111734c82df54630bebdff20fe981cfc36c76f865eb1c2fb62c9e85bc3a6e5015a361a2eb1c8431578d0011010001889f04280102000905025331d433021d03000a09104ef7e4beccde97f02e5503ff5e0630d1b65291f4882b6d40a29da4616bb5088717d469fbcc3648b8276de04a04988b1f1b9f3e18f52265c1f8b6c85861691c1a6b8a3a25a1809a0b32ad330aec5667cb4262f4450649184e8113849b05e5ad06a316ea80c001e8e71838190339a6e48bbde30647bcf245134b9a97fa875c1d83a9862cae87ffd7e2c4ce3a1b89013d04180102000905025331d144021b0200a809104ef7e4beccde97f09d2004190102000605025331d144000a0910677815e371c2fd23522203fe22ab62b8e7a151383cea3edd3a12995693911426f8ccf125e1f6426388c0010f88d9ca7da2224aee8d1c12135998640c5e1813d55a93df472faae75bef858457248db41b4505827590aeccf6f9eb646da7f980655dd3050c6897feddddaca90676dee856d66db8923477d251712bb9b3186b4d0114daf7d6b59272b53218dd1da94a03ff64006fcbe71211e5daecd9961fba66cdb6de3f914882c58ba5beddeba7dcb950c1156d7fba18c19ea880dccc800eae335deec34e3b84ac75ffa24864f782f87815cda1c0f634b3dd2fa67cea30811d21723d21d9551fa12ccbcfa62b6d3a15d01307b99925707992556d50065505b090aadb8579083a20fe65bd2a270da9b011" -const missingCrossSignatureKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- -Charset: UTF-8 - -mQENBFMYynYBCACVOZ3/e8Bm2b9KH9QyIlHGo/i1bnkpqsgXj8tpJ2MIUOnXMMAY -ztW7kKFLCmgVdLIC0vSoLA4yhaLcMojznh/2CcUglZeb6Ao8Gtelr//Rd5DRfPpG -zqcfUo+m+eO1co2Orabw0tZDfGpg5p3AYl0hmxhUyYSc/xUq93xL1UJzBFgYXY54 -QsM8dgeQgFseSk/YvdP5SMx1ev+eraUyiiUtWzWrWC1TdyRa5p4UZg6Rkoppf+WJ -QrW6BWrhAtqATHc8ozV7uJjeONjUEq24roRc/OFZdmQQGK6yrzKnnbA6MdHhqpdo -9kWDcXYb7pSE63Lc+OBa5X2GUVvXJLS/3nrtABEBAAG0F2ludmFsaWQtc2lnbmlu -Zy1zdWJrZXlziQEoBBMBAgASBQJTnKB5AhsBAgsHAhUIAh4BAAoJEO3UDQUIHpI/ -dN4H/idX4FQ1LIZCnpHS/oxoWQWfpRgdKAEM0qCqjMgiipJeEwSQbqjTCynuh5/R -JlODDz85ABR06aoF4l5ebGLQWFCYifPnJZ/Yf5OYcMGtb7dIbqxWVFL9iLMO/oDL -ioI3dotjPui5e+2hI9pVH1UHB/bZ/GvMGo6Zg0XxLPolKQODMVjpjLAQ0YJ3spew -RAmOGre6tIvbDsMBnm8qREt7a07cBJ6XK7xjxYaZHQBiHVxyEWDa6gyANONx8duW -/fhQ/zDTnyVM/ik6VO0Ty9BhPpcEYLFwh5c1ilFari1ta3e6qKo6ZGa9YMk/REhu -yBHd9nTkI+0CiQUmbckUiVjDKKe5AQ0EUxjKdgEIAJcXQeP+NmuciE99YcJoffxv -2gVLU4ZXBNHEaP0mgaJ1+tmMD089vUQAcyGRvw8jfsNsVZQIOAuRxY94aHQhIRHR -bUzBN28ofo/AJJtfx62C15xt6fDKRV6HXYqAiygrHIpEoRLyiN69iScUsjIJeyFL -C8wa72e8pSL6dkHoaV1N9ZH/xmrJ+k0vsgkQaAh9CzYufncDxcwkoP+aOlGtX1gP -WwWoIbz0JwLEMPHBWvDDXQcQPQTYQyj+LGC9U6f9VZHN25E94subM1MjuT9OhN9Y -MLfWaaIc5WyhLFyQKW2Upofn9wSFi8ubyBnv640Dfd0rVmaWv7LNTZpoZ/GbJAMA -EQEAAYkBHwQYAQIACQUCU5ygeQIbAgAKCRDt1A0FCB6SP0zCB/sEzaVR38vpx+OQ -MMynCBJrakiqDmUZv9xtplY7zsHSQjpd6xGflbU2n+iX99Q+nav0ETQZifNUEd4N -1ljDGQejcTyKD6Pkg6wBL3x9/RJye7Zszazm4+toJXZ8xJ3800+BtaPoI39akYJm -+ijzbskvN0v/j5GOFJwQO0pPRAFtdHqRs9Kf4YanxhedB4dIUblzlIJuKsxFit6N -lgGRblagG3Vv2eBszbxzPbJjHCgVLR3RmrVezKOsZjr/2i7X+xLWIR0uD3IN1qOW -CXQxLBizEEmSNVNxsp7KPGTLnqO3bPtqFirxS9PJLIMPTPLNBY7ZYuPNTMqVIUWF -4artDmrG -=7FfJ ------END PGP PUBLIC KEY BLOCK-----` - -const invalidCrossSignatureKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- - -mQENBFMYynYBCACVOZ3/e8Bm2b9KH9QyIlHGo/i1bnkpqsgXj8tpJ2MIUOnXMMAY -ztW7kKFLCmgVdLIC0vSoLA4yhaLcMojznh/2CcUglZeb6Ao8Gtelr//Rd5DRfPpG -zqcfUo+m+eO1co2Orabw0tZDfGpg5p3AYl0hmxhUyYSc/xUq93xL1UJzBFgYXY54 -QsM8dgeQgFseSk/YvdP5SMx1ev+eraUyiiUtWzWrWC1TdyRa5p4UZg6Rkoppf+WJ -QrW6BWrhAtqATHc8ozV7uJjeONjUEq24roRc/OFZdmQQGK6yrzKnnbA6MdHhqpdo -9kWDcXYb7pSE63Lc+OBa5X2GUVvXJLS/3nrtABEBAAG0F2ludmFsaWQtc2lnbmlu -Zy1zdWJrZXlziQEoBBMBAgASBQJTnKB5AhsBAgsHAhUIAh4BAAoJEO3UDQUIHpI/ -dN4H/idX4FQ1LIZCnpHS/oxoWQWfpRgdKAEM0qCqjMgiipJeEwSQbqjTCynuh5/R -JlODDz85ABR06aoF4l5ebGLQWFCYifPnJZ/Yf5OYcMGtb7dIbqxWVFL9iLMO/oDL -ioI3dotjPui5e+2hI9pVH1UHB/bZ/GvMGo6Zg0XxLPolKQODMVjpjLAQ0YJ3spew -RAmOGre6tIvbDsMBnm8qREt7a07cBJ6XK7xjxYaZHQBiHVxyEWDa6gyANONx8duW -/fhQ/zDTnyVM/ik6VO0Ty9BhPpcEYLFwh5c1ilFari1ta3e6qKo6ZGa9YMk/REhu -yBHd9nTkI+0CiQUmbckUiVjDKKe5AQ0EUxjKdgEIAIINDqlj7X6jYKc6DjwrOkjQ -UIRWbQQar0LwmNilehmt70g5DCL1SYm9q4LcgJJ2Nhxj0/5qqsYib50OSWMcKeEe -iRXpXzv1ObpcQtI5ithp0gR53YPXBib80t3bUzomQ5UyZqAAHzMp3BKC54/vUrSK -FeRaxDzNLrCeyI00+LHNUtwghAqHvdNcsIf8VRumK8oTm3RmDh0TyjASWYbrt9c8 -R1Um3zuoACOVy+mEIgIzsfHq0u7dwYwJB5+KeM7ZLx+HGIYdUYzHuUE1sLwVoELh -+SHIGHI1HDicOjzqgajShuIjj5hZTyQySVprrsLKiXS6NEwHAP20+XjayJ/R3tEA -EQEAAYkCPgQYAQIBKAUCU5ygeQIbAsBdIAQZAQIABgUCU5ygeQAKCRCpVlnFZmhO -52RJB/9uD1MSa0wjY6tHOIgquZcP3bHBvHmrHNMw9HR2wRCMO91ZkhrpdS3ZHtgb -u3/55etj0FdvDo1tb8P8FGSVtO5Vcwf5APM8sbbqoi8L951Q3i7qt847lfhu6sMl -w0LWFvPTOLHrliZHItPRjOltS1WAWfr2jUYhsU9ytaDAJmvf9DujxEOsN5G1YJep -54JCKVCkM/y585Zcnn+yxk/XwqoNQ0/iJUT9qRrZWvoeasxhl1PQcwihCwss44A+ -YXaAt3hbk+6LEQuZoYS73yR3WHj+42tfm7YxRGeubXfgCEz/brETEWXMh4pe0vCL -bfWrmfSPq2rDegYcAybxRQz0lF8PAAoJEO3UDQUIHpI/exkH/0vQfdHA8g/N4T6E -i6b1CUVBAkvtdJpCATZjWPhXmShOw62gkDw306vHPilL4SCvEEi4KzG72zkp6VsB -DSRcpxCwT4mHue+duiy53/aRMtSJ+vDfiV1Vhq+3sWAck/yUtfDU9/u4eFaiNok1 -8/Gd7reyuZt5CiJnpdPpjCwelK21l2w7sHAnJF55ITXdOxI8oG3BRKufz0z5lyDY -s2tXYmhhQIggdgelN8LbcMhWs/PBbtUr6uZlNJG2lW1yscD4aI529VjwJlCeo745 -U7pO4eF05VViUJ2mmfoivL3tkhoTUWhx8xs8xCUcCg8DoEoSIhxtOmoTPR22Z9BL -6LCg2mg= -=Dhm4 ------END PGP PUBLIC KEY BLOCK-----` - -const goodCrossSignatureKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1 - -mI0EVUqeVwEEAMufHRrMPWK3gyvi0O0tABCs/oON9zV9KDZlr1a1M91ShCSFwCPo -7r80PxdWVWcj0V5h50/CJYtpN3eE/mUIgW2z1uDYQF1OzrQ8ubrksfsJvpAhENom -lTQEppv9mV8qhcM278teb7TX0pgrUHLYF5CfPdp1L957JLLXoQR/lwLVABEBAAG0 -E2dvb2Qtc2lnbmluZy1zdWJrZXmIuAQTAQIAIgUCVUqeVwIbAwYLCQgHAwIGFQgC -CQoLBBYCAwECHgECF4AACgkQNRjL95IRWP69XQQAlH6+eyXJN4DZTLX78KGjHrsw -6FCvxxClEPtPUjcJy/1KCRQmtLAt9PbbA78dvgzjDeZMZqRAwdjyJhjyg/fkU2OH -7wq4ktjUu+dLcOBb+BFMEY+YjKZhf6EJuVfxoTVr5f82XNPbYHfTho9/OABKH6kv -X70PaKZhbwnwij8Nts65AaIEVUqftREEAJ3WxZfqAX0bTDbQPf2CMT2IVMGDfhK7 -GyubOZgDFFjwUJQvHNvsrbeGLZ0xOBumLINyPO1amIfTgJNm1iiWFWfmnHReGcDl -y5mpYG60Mb79Whdcer7CMm3AqYh/dW4g6IB02NwZMKoUHo3PXmFLxMKXnWyJ0clw -R0LI/Qn509yXAKDh1SO20rqrBM+EAP2c5bfI98kyNwQAi3buu94qo3RR1ZbvfxgW -CKXDVm6N99jdZGNK7FbRifXqzJJDLcXZKLnstnC4Sd3uyfyf1uFhmDLIQRryn5m+ -LBYHfDBPN3kdm7bsZDDq9GbTHiFZUfm/tChVKXWxkhpAmHhU/tH6GGzNSMXuIWSO -aOz3Rqq0ED4NXyNKjdF9MiwD/i83S0ZBc0LmJYt4Z10jtH2B6tYdqnAK29uQaadx -yZCX2scE09UIm32/w7pV77CKr1Cp/4OzAXS1tmFzQ+bX7DR+Gl8t4wxr57VeEMvl -BGw4Vjh3X8//m3xynxycQU18Q1zJ6PkiMyPw2owZ/nss3hpSRKFJsxMLhW3fKmKr -Ey2KiOcEGAECAAkFAlVKn7UCGwIAUgkQNRjL95IRWP5HIAQZEQIABgUCVUqftQAK -CRD98VjDN10SqkWrAKDTpEY8D8HC02E/KVC5YUI01B30wgCgurpILm20kXEDCeHp -C5pygfXw1DJrhAP+NyPJ4um/bU1I+rXaHHJYroYJs8YSweiNcwiHDQn0Engh/mVZ -SqLHvbKh2dL/RXymC3+rjPvQf5cup9bPxNMa6WagdYBNAfzWGtkVISeaQW+cTEp/ -MtgVijRGXR/lGLGETPg2X3Afwn9N9bLMBkBprKgbBqU7lpaoPupxT61bL70= -=vtbN ------END PGP PUBLIC KEY BLOCK-----` diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/compressed.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/compressed.go deleted file mode 100644 index 0e32f87d..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/compressed.go +++ /dev/null @@ -1,123 +0,0 @@ -// 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 packet - -import ( - "compress/bzip2" - "compress/flate" - "compress/zlib" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "io" - "strconv" -) - -// Compressed represents a compressed OpenPGP packet. The decompressed contents -// will contain more OpenPGP packets. See RFC 4880, section 5.6. -type Compressed struct { - Body io.Reader -} - -const ( - NoCompression = flate.NoCompression - BestSpeed = flate.BestSpeed - BestCompression = flate.BestCompression - DefaultCompression = flate.DefaultCompression -) - -// CompressionConfig contains compressor configuration settings. -type CompressionConfig struct { - // Level is the compression level to use. It must be set to - // between -1 and 9, with -1 causing the compressor to use the - // default compression level, 0 causing the compressor to use - // no compression and 1 to 9 representing increasing (better, - // slower) compression levels. If Level is less than -1 or - // more then 9, a non-nil error will be returned during - // encryption. See the constants above for convenient common - // settings for Level. - Level int -} - -func (c *Compressed) parse(r io.Reader) error { - var buf [1]byte - _, err := readFull(r, buf[:]) - if err != nil { - return err - } - - switch buf[0] { - case 1: - c.Body = flate.NewReader(r) - case 2: - c.Body, err = zlib.NewReader(r) - case 3: - c.Body = bzip2.NewReader(r) - default: - err = errors.UnsupportedError("unknown compression algorithm: " + strconv.Itoa(int(buf[0]))) - } - - return err -} - -// compressedWriterCloser represents the serialized compression stream -// header and the compressor. Its Close() method ensures that both the -// compressor and serialized stream header are closed. Its Write() -// method writes to the compressor. -type compressedWriteCloser struct { - sh io.Closer // Stream Header - c io.WriteCloser // Compressor -} - -func (cwc compressedWriteCloser) Write(p []byte) (int, error) { - return cwc.c.Write(p) -} - -func (cwc compressedWriteCloser) Close() (err error) { - err = cwc.c.Close() - if err != nil { - return err - } - - return cwc.sh.Close() -} - -// SerializeCompressed serializes a compressed data packet to w and -// returns a WriteCloser to which the literal data packets themselves -// can be written and which MUST be closed on completion. If cc is -// nil, sensible defaults will be used to configure the compression -// algorithm. -func SerializeCompressed(w io.WriteCloser, algo CompressionAlgo, cc *CompressionConfig) (literaldata io.WriteCloser, err error) { - compressed, err := serializeStreamHeader(w, packetTypeCompressed) - if err != nil { - return - } - - _, err = compressed.Write([]byte{uint8(algo)}) - if err != nil { - return - } - - level := DefaultCompression - if cc != nil { - level = cc.Level - } - - var compressor io.WriteCloser - switch algo { - case CompressionZIP: - compressor, err = flate.NewWriter(compressed, level) - case CompressionZLIB: - compressor, err = zlib.NewWriterLevel(compressed, level) - default: - s := strconv.Itoa(int(algo)) - err = errors.UnsupportedError("Unsupported compression algorithm: " + s) - } - if err != nil { - return - } - - literaldata = compressedWriteCloser{compressed, compressor} - - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/compressed_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/compressed_test.go deleted file mode 100644 index cb2d70bd..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/compressed_test.go +++ /dev/null @@ -1,41 +0,0 @@ -// 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 packet - -import ( - "bytes" - "encoding/hex" - "io" - "io/ioutil" - "testing" -) - -func TestCompressed(t *testing.T) { - packet, err := Read(readerFromHex(compressedHex)) - if err != nil { - t.Errorf("failed to read Compressed: %s", err) - return - } - - c, ok := packet.(*Compressed) - if !ok { - t.Error("didn't find Compressed packet") - return - } - - contents, err := ioutil.ReadAll(c.Body) - if err != nil && err != io.EOF { - t.Error(err) - return - } - - expected, _ := hex.DecodeString(compressedExpectedHex) - if !bytes.Equal(expected, contents) { - t.Errorf("got:%x want:%x", contents, expected) - } -} - -const compressedHex = "a3013b2d90c4e02b72e25f727e5e496a5e49b11e1700" -const compressedExpectedHex = "cb1062004d14c8fe636f6e74656e74732e0a" diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/config.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/config.go deleted file mode 100644 index c76eecc9..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/config.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2012 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 packet - -import ( - "crypto" - "crypto/rand" - "io" - "time" -) - -// Config collects a number of parameters along with sensible defaults. -// A nil *Config is valid and results in all default values. -type Config struct { - // Rand provides the source of entropy. - // If nil, the crypto/rand Reader is used. - Rand io.Reader - // DefaultHash is the default hash function to be used. - // If zero, SHA-256 is used. - DefaultHash crypto.Hash - // DefaultCipher is the cipher to be used. - // If zero, AES-128 is used. - DefaultCipher CipherFunction - // Time returns the current time as the number of seconds since the - // epoch. If Time is nil, time.Now is used. - Time func() time.Time - // DefaultCompressionAlgo is the compression algorithm to be - // applied to the plaintext before encryption. If zero, no - // compression is done. - DefaultCompressionAlgo CompressionAlgo - // CompressionConfig configures the compression settings. - CompressionConfig *CompressionConfig - // S2KCount is only used for symmetric encryption. It - // determines the strength of the passphrase stretching when - // the said passphrase is hashed to produce a key. S2KCount - // should be between 1024 and 65011712, inclusive. If Config - // is nil or S2KCount is 0, the value 65536 used. Not all - // values in the above range can be represented. S2KCount will - // be rounded up to the next representable value if it cannot - // be encoded exactly. When set, it is strongly encrouraged to - // use a value that is at least 65536. See RFC 4880 Section - // 3.7.1.3. - S2KCount int - // RSABits is the number of bits in new RSA keys made with NewEntity. - // If zero, then 2048 bit keys are created. - RSABits int -} - -func (c *Config) Random() io.Reader { - if c == nil || c.Rand == nil { - return rand.Reader - } - return c.Rand -} - -func (c *Config) Hash() crypto.Hash { - if c == nil || uint(c.DefaultHash) == 0 { - return crypto.SHA256 - } - return c.DefaultHash -} - -func (c *Config) Cipher() CipherFunction { - if c == nil || uint8(c.DefaultCipher) == 0 { - return CipherAES128 - } - return c.DefaultCipher -} - -func (c *Config) Now() time.Time { - if c == nil || c.Time == nil { - return time.Now() - } - return c.Time() -} - -func (c *Config) Compression() CompressionAlgo { - if c == nil { - return CompressionNone - } - return c.DefaultCompressionAlgo -} - -func (c *Config) PasswordHashIterations() int { - if c == nil || c.S2KCount == 0 { - return 0 - } - return c.S2KCount -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/encrypted_key.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/encrypted_key.go deleted file mode 100644 index f247b75b..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/encrypted_key.go +++ /dev/null @@ -1,199 +0,0 @@ -// 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 packet - -import ( - "crypto/rsa" - "encoding/binary" - "io" - "math/big" - "strconv" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/elgamal" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" -) - -const encryptedKeyVersion = 3 - -// EncryptedKey represents a public-key encrypted session key. See RFC 4880, -// section 5.1. -type EncryptedKey struct { - KeyId uint64 - Algo PublicKeyAlgorithm - CipherFunc CipherFunction // only valid after a successful Decrypt - Key []byte // only valid after a successful Decrypt - - encryptedMPI1, encryptedMPI2 parsedMPI -} - -func (e *EncryptedKey) parse(r io.Reader) (err error) { - var buf [10]byte - _, err = readFull(r, buf[:]) - if err != nil { - return - } - if buf[0] != encryptedKeyVersion { - return errors.UnsupportedError("unknown EncryptedKey version " + strconv.Itoa(int(buf[0]))) - } - e.KeyId = binary.BigEndian.Uint64(buf[1:9]) - e.Algo = PublicKeyAlgorithm(buf[9]) - switch e.Algo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - e.encryptedMPI1.bytes, e.encryptedMPI1.bitLength, err = readMPI(r) - case PubKeyAlgoElGamal: - e.encryptedMPI1.bytes, e.encryptedMPI1.bitLength, err = readMPI(r) - if err != nil { - return - } - e.encryptedMPI2.bytes, e.encryptedMPI2.bitLength, err = readMPI(r) - } - _, err = consumeAll(r) - return -} - -func checksumKeyMaterial(key []byte) uint16 { - var checksum uint16 - for _, v := range key { - checksum += uint16(v) - } - return checksum -} - -// Decrypt decrypts an encrypted session key with the given private key. The -// private key must have been decrypted first. -// If config is nil, sensible defaults will be used. -func (e *EncryptedKey) Decrypt(priv *PrivateKey, config *Config) error { - var err error - var b []byte - - // TODO(agl): use session key decryption routines here to avoid - // padding oracle attacks. - switch priv.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - b, err = rsa.DecryptPKCS1v15(config.Random(), priv.PrivateKey.(*rsa.PrivateKey), e.encryptedMPI1.bytes) - case PubKeyAlgoElGamal: - c1 := new(big.Int).SetBytes(e.encryptedMPI1.bytes) - c2 := new(big.Int).SetBytes(e.encryptedMPI2.bytes) - b, err = elgamal.Decrypt(priv.PrivateKey.(*elgamal.PrivateKey), c1, c2) - default: - err = errors.InvalidArgumentError("cannot decrypted encrypted session key with private key of type " + strconv.Itoa(int(priv.PubKeyAlgo))) - } - - if err != nil { - return err - } - - e.CipherFunc = CipherFunction(b[0]) - e.Key = b[1 : len(b)-2] - expectedChecksum := uint16(b[len(b)-2])<<8 | uint16(b[len(b)-1]) - checksum := checksumKeyMaterial(e.Key) - if checksum != expectedChecksum { - return errors.StructuralError("EncryptedKey checksum incorrect") - } - - return nil -} - -// Serialize writes the encrypted key packet, e, to w. -func (e *EncryptedKey) Serialize(w io.Writer) error { - var mpiLen int - switch e.Algo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - mpiLen = 2 + len(e.encryptedMPI1.bytes) - case PubKeyAlgoElGamal: - mpiLen = 2 + len(e.encryptedMPI1.bytes) + 2 + len(e.encryptedMPI2.bytes) - default: - return errors.InvalidArgumentError("don't know how to serialize encrypted key type " + strconv.Itoa(int(e.Algo))) - } - - serializeHeader(w, packetTypeEncryptedKey, 1 /* version */ +8 /* key id */ +1 /* algo */ +mpiLen) - - w.Write([]byte{encryptedKeyVersion}) - binary.Write(w, binary.BigEndian, e.KeyId) - w.Write([]byte{byte(e.Algo)}) - - switch e.Algo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - writeMPIs(w, e.encryptedMPI1) - case PubKeyAlgoElGamal: - writeMPIs(w, e.encryptedMPI1, e.encryptedMPI2) - default: - panic("internal error") - } - - return nil -} - -// SerializeEncryptedKey serializes an encrypted key packet to w that contains -// key, encrypted to pub. -// If config is nil, sensible defaults will be used. -func SerializeEncryptedKey(w io.Writer, pub *PublicKey, cipherFunc CipherFunction, key []byte, config *Config) error { - var buf [10]byte - buf[0] = encryptedKeyVersion - binary.BigEndian.PutUint64(buf[1:9], pub.KeyId) - buf[9] = byte(pub.PubKeyAlgo) - - keyBlock := make([]byte, 1 /* cipher type */ +len(key)+2 /* checksum */) - keyBlock[0] = byte(cipherFunc) - copy(keyBlock[1:], key) - checksum := checksumKeyMaterial(key) - keyBlock[1+len(key)] = byte(checksum >> 8) - keyBlock[1+len(key)+1] = byte(checksum) - - switch pub.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - return serializeEncryptedKeyRSA(w, config.Random(), buf, pub.PublicKey.(*rsa.PublicKey), keyBlock) - case PubKeyAlgoElGamal: - return serializeEncryptedKeyElGamal(w, config.Random(), buf, pub.PublicKey.(*elgamal.PublicKey), keyBlock) - case PubKeyAlgoDSA, PubKeyAlgoRSASignOnly: - return errors.InvalidArgumentError("cannot encrypt to public key of type " + strconv.Itoa(int(pub.PubKeyAlgo))) - } - - return errors.UnsupportedError("encrypting a key to public key of type " + strconv.Itoa(int(pub.PubKeyAlgo))) -} - -func serializeEncryptedKeyRSA(w io.Writer, rand io.Reader, header [10]byte, pub *rsa.PublicKey, keyBlock []byte) error { - cipherText, err := rsa.EncryptPKCS1v15(rand, pub, keyBlock) - if err != nil { - return errors.InvalidArgumentError("RSA encryption failed: " + err.Error()) - } - - packetLen := 10 /* header length */ + 2 /* mpi size */ + len(cipherText) - - err = serializeHeader(w, packetTypeEncryptedKey, packetLen) - if err != nil { - return err - } - _, err = w.Write(header[:]) - if err != nil { - return err - } - return writeMPI(w, 8*uint16(len(cipherText)), cipherText) -} - -func serializeEncryptedKeyElGamal(w io.Writer, rand io.Reader, header [10]byte, pub *elgamal.PublicKey, keyBlock []byte) error { - c1, c2, err := elgamal.Encrypt(rand, pub, keyBlock) - if err != nil { - return errors.InvalidArgumentError("ElGamal encryption failed: " + err.Error()) - } - - packetLen := 10 /* header length */ - packetLen += 2 /* mpi size */ + (c1.BitLen()+7)/8 - packetLen += 2 /* mpi size */ + (c2.BitLen()+7)/8 - - err = serializeHeader(w, packetTypeEncryptedKey, packetLen) - if err != nil { - return err - } - _, err = w.Write(header[:]) - if err != nil { - return err - } - err = writeBig(w, c1) - if err != nil { - return err - } - return writeBig(w, c2) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/encrypted_key_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/encrypted_key_test.go deleted file mode 100644 index fee14cf3..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/encrypted_key_test.go +++ /dev/null @@ -1,146 +0,0 @@ -// 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 packet - -import ( - "bytes" - "crypto/rsa" - "encoding/hex" - "fmt" - "math/big" - "testing" -) - -func bigFromBase10(s string) *big.Int { - b, ok := new(big.Int).SetString(s, 10) - if !ok { - panic("bigFromBase10 failed") - } - return b -} - -var encryptedKeyPub = rsa.PublicKey{ - E: 65537, - N: bigFromBase10("115804063926007623305902631768113868327816898845124614648849934718568541074358183759250136204762053879858102352159854352727097033322663029387610959884180306668628526686121021235757016368038585212410610742029286439607686208110250133174279811431933746643015923132833417396844716207301518956640020862630546868823"), -} - -var encryptedKeyRSAPriv = &rsa.PrivateKey{ - PublicKey: encryptedKeyPub, - D: bigFromBase10("32355588668219869544751561565313228297765464314098552250409557267371233892496951383426602439009993875125222579159850054973310859166139474359774543943714622292329487391199285040721944491839695981199720170366763547754915493640685849961780092241140181198779299712578774460837139360803883139311171713302987058393"), -} - -var encryptedKeyPriv = &PrivateKey{ - PublicKey: PublicKey{ - PubKeyAlgo: PubKeyAlgoRSA, - }, - PrivateKey: encryptedKeyRSAPriv, -} - -func TestDecryptingEncryptedKey(t *testing.T) { - const encryptedKeyHex = "c18c032a67d68660df41c70104005789d0de26b6a50c985a02a13131ca829c413a35d0e6fa8d6842599252162808ac7439c72151c8c6183e76923fe3299301414d0c25a2f06a2257db3839e7df0ec964773f6e4c4ac7ff3b48c444237166dd46ba8ff443a5410dc670cb486672fdbe7c9dfafb75b4fea83af3a204fe2a7dfa86bd20122b4f3d2646cbeecb8f7be8" - const expectedKeyHex = "d930363f7e0308c333b9618617ea728963d8df993665ae7be1092d4926fd864b" - - p, err := Read(readerFromHex(encryptedKeyHex)) - if err != nil { - t.Errorf("error from Read: %s", err) - return - } - ek, ok := p.(*EncryptedKey) - if !ok { - t.Errorf("didn't parse an EncryptedKey, got %#v", p) - return - } - - if ek.KeyId != 0x2a67d68660df41c7 || ek.Algo != PubKeyAlgoRSA { - t.Errorf("unexpected EncryptedKey contents: %#v", ek) - return - } - - err = ek.Decrypt(encryptedKeyPriv, nil) - if err != nil { - t.Errorf("error from Decrypt: %s", err) - return - } - - if ek.CipherFunc != CipherAES256 { - t.Errorf("unexpected EncryptedKey contents: %#v", ek) - return - } - - keyHex := fmt.Sprintf("%x", ek.Key) - if keyHex != expectedKeyHex { - t.Errorf("bad key, got %s want %x", keyHex, expectedKeyHex) - } -} - -func TestEncryptingEncryptedKey(t *testing.T) { - key := []byte{1, 2, 3, 4} - const expectedKeyHex = "01020304" - const keyId = 42 - - pub := &PublicKey{ - PublicKey: &encryptedKeyPub, - KeyId: keyId, - PubKeyAlgo: PubKeyAlgoRSAEncryptOnly, - } - - buf := new(bytes.Buffer) - err := SerializeEncryptedKey(buf, pub, CipherAES128, key, nil) - if err != nil { - t.Errorf("error writing encrypted key packet: %s", err) - } - - p, err := Read(buf) - if err != nil { - t.Errorf("error from Read: %s", err) - return - } - ek, ok := p.(*EncryptedKey) - if !ok { - t.Errorf("didn't parse an EncryptedKey, got %#v", p) - return - } - - if ek.KeyId != keyId || ek.Algo != PubKeyAlgoRSAEncryptOnly { - t.Errorf("unexpected EncryptedKey contents: %#v", ek) - return - } - - err = ek.Decrypt(encryptedKeyPriv, nil) - if err != nil { - t.Errorf("error from Decrypt: %s", err) - return - } - - if ek.CipherFunc != CipherAES128 { - t.Errorf("unexpected EncryptedKey contents: %#v", ek) - return - } - - keyHex := fmt.Sprintf("%x", ek.Key) - if keyHex != expectedKeyHex { - t.Errorf("bad key, got %s want %x", keyHex, expectedKeyHex) - } -} - -func TestSerializingEncryptedKey(t *testing.T) { - const encryptedKeyHex = "c18c032a67d68660df41c70104005789d0de26b6a50c985a02a13131ca829c413a35d0e6fa8d6842599252162808ac7439c72151c8c6183e76923fe3299301414d0c25a2f06a2257db3839e7df0ec964773f6e4c4ac7ff3b48c444237166dd46ba8ff443a5410dc670cb486672fdbe7c9dfafb75b4fea83af3a204fe2a7dfa86bd20122b4f3d2646cbeecb8f7be8" - - p, err := Read(readerFromHex(encryptedKeyHex)) - if err != nil { - t.Fatalf("error from Read: %s", err) - } - ek, ok := p.(*EncryptedKey) - if !ok { - t.Fatalf("didn't parse an EncryptedKey, got %#v", p) - } - - var buf bytes.Buffer - ek.Serialize(&buf) - - if bufHex := hex.EncodeToString(buf.Bytes()); bufHex != encryptedKeyHex { - t.Fatalf("serialization of encrypted key differed from original. Original was %s, but reserialized as %s", encryptedKeyHex, bufHex) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/literal.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/literal.go deleted file mode 100644 index 1a9ec6e5..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/literal.go +++ /dev/null @@ -1,89 +0,0 @@ -// 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 packet - -import ( - "encoding/binary" - "io" -) - -// LiteralData represents an encrypted file. See RFC 4880, section 5.9. -type LiteralData struct { - IsBinary bool - FileName string - Time uint32 // Unix epoch time. Either creation time or modification time. 0 means undefined. - Body io.Reader -} - -// ForEyesOnly returns whether the contents of the LiteralData have been marked -// as especially sensitive. -func (l *LiteralData) ForEyesOnly() bool { - return l.FileName == "_CONSOLE" -} - -func (l *LiteralData) parse(r io.Reader) (err error) { - var buf [256]byte - - _, err = readFull(r, buf[:2]) - if err != nil { - return - } - - l.IsBinary = buf[0] == 'b' - fileNameLen := int(buf[1]) - - _, err = readFull(r, buf[:fileNameLen]) - if err != nil { - return - } - - l.FileName = string(buf[:fileNameLen]) - - _, err = readFull(r, buf[:4]) - if err != nil { - return - } - - l.Time = binary.BigEndian.Uint32(buf[:4]) - l.Body = r - return -} - -// SerializeLiteral serializes a literal data packet to w and returns a -// WriteCloser to which the data itself can be written and which MUST be closed -// on completion. The fileName is truncated to 255 bytes. -func SerializeLiteral(w io.WriteCloser, isBinary bool, fileName string, time uint32) (plaintext io.WriteCloser, err error) { - var buf [4]byte - buf[0] = 't' - if isBinary { - buf[0] = 'b' - } - if len(fileName) > 255 { - fileName = fileName[:255] - } - buf[1] = byte(len(fileName)) - - inner, err := serializeStreamHeader(w, packetTypeLiteralData) - if err != nil { - return - } - - _, err = inner.Write(buf[:2]) - if err != nil { - return - } - _, err = inner.Write([]byte(fileName)) - if err != nil { - return - } - binary.BigEndian.PutUint32(buf[:], time) - _, err = inner.Write(buf[:]) - if err != nil { - return - } - - plaintext = inner - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/ocfb.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/ocfb.go deleted file mode 100644 index ce2a33a5..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/ocfb.go +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2010 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. - -// OpenPGP CFB Mode. http://tools.ietf.org/html/rfc4880#section-13.9 - -package packet - -import ( - "crypto/cipher" -) - -type ocfbEncrypter struct { - b cipher.Block - fre []byte - outUsed int -} - -// An OCFBResyncOption determines if the "resynchronization step" of OCFB is -// performed. -type OCFBResyncOption bool - -const ( - OCFBResync OCFBResyncOption = true - OCFBNoResync OCFBResyncOption = false -) - -// NewOCFBEncrypter returns a cipher.Stream which encrypts data with OpenPGP's -// cipher feedback mode using the given cipher.Block, and an initial amount of -// ciphertext. randData must be random bytes and be the same length as the -// cipher.Block's block size. Resync determines if the "resynchronization step" -// from RFC 4880, 13.9 step 7 is performed. Different parts of OpenPGP vary on -// this point. -func NewOCFBEncrypter(block cipher.Block, randData []byte, resync OCFBResyncOption) (cipher.Stream, []byte) { - blockSize := block.BlockSize() - if len(randData) != blockSize { - return nil, nil - } - - x := &ocfbEncrypter{ - b: block, - fre: make([]byte, blockSize), - outUsed: 0, - } - prefix := make([]byte, blockSize+2) - - block.Encrypt(x.fre, x.fre) - for i := 0; i < blockSize; i++ { - prefix[i] = randData[i] ^ x.fre[i] - } - - block.Encrypt(x.fre, prefix[:blockSize]) - prefix[blockSize] = x.fre[0] ^ randData[blockSize-2] - prefix[blockSize+1] = x.fre[1] ^ randData[blockSize-1] - - if resync { - block.Encrypt(x.fre, prefix[2:]) - } else { - x.fre[0] = prefix[blockSize] - x.fre[1] = prefix[blockSize+1] - x.outUsed = 2 - } - return x, prefix -} - -func (x *ocfbEncrypter) XORKeyStream(dst, src []byte) { - for i := 0; i < len(src); i++ { - if x.outUsed == len(x.fre) { - x.b.Encrypt(x.fre, x.fre) - x.outUsed = 0 - } - - x.fre[x.outUsed] ^= src[i] - dst[i] = x.fre[x.outUsed] - x.outUsed++ - } -} - -type ocfbDecrypter struct { - b cipher.Block - fre []byte - outUsed int -} - -// NewOCFBDecrypter returns a cipher.Stream which decrypts data with OpenPGP's -// cipher feedback mode using the given cipher.Block. Prefix must be the first -// blockSize + 2 bytes of the ciphertext, where blockSize is the cipher.Block's -// block size. If an incorrect key is detected then nil is returned. On -// successful exit, blockSize+2 bytes of decrypted data are written into -// prefix. Resync determines if the "resynchronization step" from RFC 4880, -// 13.9 step 7 is performed. Different parts of OpenPGP vary on this point. -func NewOCFBDecrypter(block cipher.Block, prefix []byte, resync OCFBResyncOption) cipher.Stream { - blockSize := block.BlockSize() - if len(prefix) != blockSize+2 { - return nil - } - - x := &ocfbDecrypter{ - b: block, - fre: make([]byte, blockSize), - outUsed: 0, - } - prefixCopy := make([]byte, len(prefix)) - copy(prefixCopy, prefix) - - block.Encrypt(x.fre, x.fre) - for i := 0; i < blockSize; i++ { - prefixCopy[i] ^= x.fre[i] - } - - block.Encrypt(x.fre, prefix[:blockSize]) - prefixCopy[blockSize] ^= x.fre[0] - prefixCopy[blockSize+1] ^= x.fre[1] - - if prefixCopy[blockSize-2] != prefixCopy[blockSize] || - prefixCopy[blockSize-1] != prefixCopy[blockSize+1] { - return nil - } - - if resync { - block.Encrypt(x.fre, prefix[2:]) - } else { - x.fre[0] = prefix[blockSize] - x.fre[1] = prefix[blockSize+1] - x.outUsed = 2 - } - copy(prefix, prefixCopy) - return x -} - -func (x *ocfbDecrypter) XORKeyStream(dst, src []byte) { - for i := 0; i < len(src); i++ { - if x.outUsed == len(x.fre) { - x.b.Encrypt(x.fre, x.fre) - x.outUsed = 0 - } - - c := src[i] - dst[i] = x.fre[x.outUsed] ^ src[i] - x.fre[x.outUsed] = c - x.outUsed++ - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/ocfb_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/ocfb_test.go deleted file mode 100644 index 91022c04..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/ocfb_test.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2010 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 packet - -import ( - "bytes" - "crypto/aes" - "crypto/rand" - "testing" -) - -var commonKey128 = []byte{0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c} - -func testOCFB(t *testing.T, resync OCFBResyncOption) { - block, err := aes.NewCipher(commonKey128) - if err != nil { - t.Error(err) - return - } - - plaintext := []byte("this is the plaintext, which is long enough to span several blocks.") - randData := make([]byte, block.BlockSize()) - rand.Reader.Read(randData) - ocfb, prefix := NewOCFBEncrypter(block, randData, resync) - ciphertext := make([]byte, len(plaintext)) - ocfb.XORKeyStream(ciphertext, plaintext) - - ocfbdec := NewOCFBDecrypter(block, prefix, resync) - if ocfbdec == nil { - t.Errorf("NewOCFBDecrypter failed (resync: %t)", resync) - return - } - plaintextCopy := make([]byte, len(plaintext)) - ocfbdec.XORKeyStream(plaintextCopy, ciphertext) - - if !bytes.Equal(plaintextCopy, plaintext) { - t.Errorf("got: %x, want: %x (resync: %t)", plaintextCopy, plaintext, resync) - } -} - -func TestOCFB(t *testing.T) { - testOCFB(t, OCFBNoResync) - testOCFB(t, OCFBResync) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/one_pass_signature.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/one_pass_signature.go deleted file mode 100644 index ed8179d7..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/one_pass_signature.go +++ /dev/null @@ -1,73 +0,0 @@ -// 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 packet - -import ( - "crypto" - "encoding/binary" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k" - "io" - "strconv" -) - -// OnePassSignature represents a one-pass signature packet. See RFC 4880, -// section 5.4. -type OnePassSignature struct { - SigType SignatureType - Hash crypto.Hash - PubKeyAlgo PublicKeyAlgorithm - KeyId uint64 - IsLast bool -} - -const onePassSignatureVersion = 3 - -func (ops *OnePassSignature) parse(r io.Reader) (err error) { - var buf [13]byte - - _, err = readFull(r, buf[:]) - if err != nil { - return - } - if buf[0] != onePassSignatureVersion { - err = errors.UnsupportedError("one-pass-signature packet version " + strconv.Itoa(int(buf[0]))) - } - - var ok bool - ops.Hash, ok = s2k.HashIdToHash(buf[2]) - if !ok { - return errors.UnsupportedError("hash function: " + strconv.Itoa(int(buf[2]))) - } - - ops.SigType = SignatureType(buf[1]) - ops.PubKeyAlgo = PublicKeyAlgorithm(buf[3]) - ops.KeyId = binary.BigEndian.Uint64(buf[4:12]) - ops.IsLast = buf[12] != 0 - return -} - -// Serialize marshals the given OnePassSignature to w. -func (ops *OnePassSignature) Serialize(w io.Writer) error { - var buf [13]byte - buf[0] = onePassSignatureVersion - buf[1] = uint8(ops.SigType) - var ok bool - buf[2], ok = s2k.HashToHashId(ops.Hash) - if !ok { - return errors.UnsupportedError("hash type: " + strconv.Itoa(int(ops.Hash))) - } - buf[3] = uint8(ops.PubKeyAlgo) - binary.BigEndian.PutUint64(buf[4:12], ops.KeyId) - if ops.IsLast { - buf[12] = 1 - } - - if err := serializeHeader(w, packetTypeOnePassSignature, len(buf)); err != nil { - return err - } - _, err := w.Write(buf[:]) - return err -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/opaque.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/opaque.go deleted file mode 100644 index 5df8e26c..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/opaque.go +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright 2012 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 packet - -import ( - "bytes" - "io" - "io/ioutil" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" -) - -// OpaquePacket represents an OpenPGP packet as raw, unparsed data. This is -// useful for splitting and storing the original packet contents separately, -// handling unsupported packet types or accessing parts of the packet not yet -// implemented by this package. -type OpaquePacket struct { - // Packet type - Tag uint8 - // Reason why the packet was parsed opaquely - Reason error - // Binary contents of the packet data - Contents []byte -} - -func (op *OpaquePacket) parse(r io.Reader) (err error) { - op.Contents, err = ioutil.ReadAll(r) - return -} - -// Serialize marshals the packet to a writer in its original form, including -// the packet header. -func (op *OpaquePacket) Serialize(w io.Writer) (err error) { - err = serializeHeader(w, packetType(op.Tag), len(op.Contents)) - if err == nil { - _, err = w.Write(op.Contents) - } - return -} - -// Parse attempts to parse the opaque contents into a structure supported by -// this package. If the packet is not known then the result will be another -// OpaquePacket. -func (op *OpaquePacket) Parse() (p Packet, err error) { - hdr := bytes.NewBuffer(nil) - err = serializeHeader(hdr, packetType(op.Tag), len(op.Contents)) - if err != nil { - op.Reason = err - return op, err - } - p, err = Read(io.MultiReader(hdr, bytes.NewBuffer(op.Contents))) - if err != nil { - op.Reason = err - p = op - } - return -} - -// OpaqueReader reads OpaquePackets from an io.Reader. -type OpaqueReader struct { - r io.Reader -} - -func NewOpaqueReader(r io.Reader) *OpaqueReader { - return &OpaqueReader{r: r} -} - -// Read the next OpaquePacket. -func (or *OpaqueReader) Next() (op *OpaquePacket, err error) { - tag, _, contents, err := readHeader(or.r) - if err != nil { - return - } - op = &OpaquePacket{Tag: uint8(tag), Reason: err} - err = op.parse(contents) - if err != nil { - consumeAll(contents) - } - return -} - -// OpaqueSubpacket represents an unparsed OpenPGP subpacket, -// as found in signature and user attribute packets. -type OpaqueSubpacket struct { - SubType uint8 - Contents []byte -} - -// OpaqueSubpackets extracts opaque, unparsed OpenPGP subpackets from -// their byte representation. -func OpaqueSubpackets(contents []byte) (result []*OpaqueSubpacket, err error) { - var ( - subHeaderLen int - subPacket *OpaqueSubpacket - ) - for len(contents) > 0 { - subHeaderLen, subPacket, err = nextSubpacket(contents) - if err != nil { - break - } - result = append(result, subPacket) - contents = contents[subHeaderLen+len(subPacket.Contents):] - } - return -} - -func nextSubpacket(contents []byte) (subHeaderLen int, subPacket *OpaqueSubpacket, err error) { - // RFC 4880, section 5.2.3.1 - var subLen uint32 - if len(contents) < 1 { - goto Truncated - } - subPacket = &OpaqueSubpacket{} - switch { - case contents[0] < 192: - subHeaderLen = 2 // 1 length byte, 1 subtype byte - if len(contents) < subHeaderLen { - goto Truncated - } - subLen = uint32(contents[0]) - contents = contents[1:] - case contents[0] < 255: - subHeaderLen = 3 // 2 length bytes, 1 subtype - if len(contents) < subHeaderLen { - goto Truncated - } - subLen = uint32(contents[0]-192)<<8 + uint32(contents[1]) + 192 - contents = contents[2:] - default: - subHeaderLen = 6 // 5 length bytes, 1 subtype - if len(contents) < subHeaderLen { - goto Truncated - } - subLen = uint32(contents[1])<<24 | - uint32(contents[2])<<16 | - uint32(contents[3])<<8 | - uint32(contents[4]) - contents = contents[5:] - } - if subLen > uint32(len(contents)) || subLen == 0 { - goto Truncated - } - subPacket.SubType = contents[0] - subPacket.Contents = contents[1:subLen] - return -Truncated: - err = errors.StructuralError("subpacket truncated") - return -} - -func (osp *OpaqueSubpacket) Serialize(w io.Writer) (err error) { - buf := make([]byte, 6) - n := serializeSubpacketLength(buf, len(osp.Contents)+1) - buf[n] = osp.SubType - if _, err = w.Write(buf[:n+1]); err != nil { - return - } - _, err = w.Write(osp.Contents) - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/opaque_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/opaque_test.go deleted file mode 100644 index f27bbfe0..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/opaque_test.go +++ /dev/null @@ -1,67 +0,0 @@ -// 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 packet - -import ( - "bytes" - "encoding/hex" - "io" - "testing" -) - -// Test packet.Read error handling in OpaquePacket.Parse, -// which attempts to re-read an OpaquePacket as a supported -// Packet type. -func TestOpaqueParseReason(t *testing.T) { - buf, err := hex.DecodeString(UnsupportedKeyHex) - if err != nil { - t.Fatal(err) - } - or := NewOpaqueReader(bytes.NewBuffer(buf)) - count := 0 - badPackets := 0 - var uid *UserId - for { - op, err := or.Next() - if err == io.EOF { - break - } else if err != nil { - t.Errorf("#%d: opaque read error: %v", count, err) - break - } - // try to parse opaque packet - p, err := op.Parse() - switch pkt := p.(type) { - case *UserId: - uid = pkt - case *OpaquePacket: - // If an OpaquePacket can't re-parse, packet.Read - // certainly had its reasons. - if pkt.Reason == nil { - t.Errorf("#%d: opaque packet, no reason", count) - } else { - badPackets++ - } - } - count++ - } - - const expectedBad = 3 - // Test post-conditions, make sure we actually parsed packets as expected. - if badPackets != expectedBad { - t.Errorf("unexpected # unparseable packets: %d (want %d)", badPackets, expectedBad) - } - if uid == nil { - t.Errorf("failed to find expected UID in unsupported keyring") - } else if uid.Id != "Armin M. Warda <warda@nephilim.ruhr.de>" { - t.Errorf("unexpected UID: %v", uid.Id) - } -} - -// This key material has public key and signature packet versions modified to -// an unsupported value (1), so that trying to parse the OpaquePacket to -// a typed packet will get an error. It also contains a GnuPG trust packet. -// (Created with: od -An -t x1 pubring.gpg | xargs | sed 's/ //g') -const UnsupportedKeyHex = `988d012e7a18a20000010400d6ac00d92b89c1f4396c243abb9b76d2e9673ad63483291fed88e22b82e255e441c078c6abbbf7d2d195e50b62eeaa915b85b0ec20c225ce2c64c167cacb6e711daf2e45da4a8356a059b8160e3b3628ac0dd8437b31f06d53d6e8ea4214d4a26406a6b63e1001406ef23e0bb3069fac9a99a91f77dfafd5de0f188a5da5e3c9000511b42741726d696e204d2e205761726461203c7761726461406e657068696c696d2e727568722e64653e8900950105102e8936c705d1eb399e58489901013f0e03ff5a0c4f421e34fcfa388129166420c08cd76987bcdec6f01bd0271459a85cc22048820dd4e44ac2c7d23908d540f54facf1b36b0d9c20488781ce9dca856531e76e2e846826e9951338020a03a09b57aa5faa82e9267458bd76105399885ac35af7dc1cbb6aaed7c39e1039f3b5beda2c0e916bd38560509bab81235d1a0ead83b0020000` diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/packet.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/packet.go deleted file mode 100644 index 17b00bf5..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/packet.go +++ /dev/null @@ -1,539 +0,0 @@ -// 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 packet implements parsing and serialization of OpenPGP packets, as -// specified in RFC 4880. -package packet - -import ( - "bufio" - "crypto/aes" - "crypto/cipher" - "crypto/des" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/cast5" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "io" - "math/big" -) - -// readFull is the same as io.ReadFull except that reading zero bytes returns -// ErrUnexpectedEOF rather than EOF. -func readFull(r io.Reader, buf []byte) (n int, err error) { - n, err = io.ReadFull(r, buf) - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return -} - -// readLength reads an OpenPGP length from r. See RFC 4880, section 4.2.2. -func readLength(r io.Reader) (length int64, isPartial bool, err error) { - var buf [4]byte - _, err = readFull(r, buf[:1]) - if err != nil { - return - } - switch { - case buf[0] < 192: - length = int64(buf[0]) - case buf[0] < 224: - length = int64(buf[0]-192) << 8 - _, err = readFull(r, buf[0:1]) - if err != nil { - return - } - length += int64(buf[0]) + 192 - case buf[0] < 255: - length = int64(1) << (buf[0] & 0x1f) - isPartial = true - default: - _, err = readFull(r, buf[0:4]) - if err != nil { - return - } - length = int64(buf[0])<<24 | - int64(buf[1])<<16 | - int64(buf[2])<<8 | - int64(buf[3]) - } - return -} - -// partialLengthReader wraps an io.Reader and handles OpenPGP partial lengths. -// The continuation lengths are parsed and removed from the stream and EOF is -// returned at the end of the packet. See RFC 4880, section 4.2.2.4. -type partialLengthReader struct { - r io.Reader - remaining int64 - isPartial bool -} - -func (r *partialLengthReader) Read(p []byte) (n int, err error) { - for r.remaining == 0 { - if !r.isPartial { - return 0, io.EOF - } - r.remaining, r.isPartial, err = readLength(r.r) - if err != nil { - return 0, err - } - } - - toRead := int64(len(p)) - if toRead > r.remaining { - toRead = r.remaining - } - - n, err = r.r.Read(p[:int(toRead)]) - r.remaining -= int64(n) - if n < int(toRead) && err == io.EOF { - err = io.ErrUnexpectedEOF - } - return -} - -// partialLengthWriter writes a stream of data using OpenPGP partial lengths. -// See RFC 4880, section 4.2.2.4. -type partialLengthWriter struct { - w io.WriteCloser - lengthByte [1]byte -} - -func (w *partialLengthWriter) Write(p []byte) (n int, err error) { - for len(p) > 0 { - for power := uint(14); power < 32; power-- { - l := 1 << power - if len(p) >= l { - w.lengthByte[0] = 224 + uint8(power) - _, err = w.w.Write(w.lengthByte[:]) - if err != nil { - return - } - var m int - m, err = w.w.Write(p[:l]) - n += m - if err != nil { - return - } - p = p[l:] - break - } - } - } - return -} - -func (w *partialLengthWriter) Close() error { - w.lengthByte[0] = 0 - _, err := w.w.Write(w.lengthByte[:]) - if err != nil { - return err - } - return w.w.Close() -} - -// A spanReader is an io.LimitReader, but it returns ErrUnexpectedEOF if the -// underlying Reader returns EOF before the limit has been reached. -type spanReader struct { - r io.Reader - n int64 -} - -func (l *spanReader) Read(p []byte) (n int, err error) { - if l.n <= 0 { - return 0, io.EOF - } - if int64(len(p)) > l.n { - p = p[0:l.n] - } - n, err = l.r.Read(p) - l.n -= int64(n) - if l.n > 0 && err == io.EOF { - err = io.ErrUnexpectedEOF - } - return -} - -// readHeader parses a packet header and returns an io.Reader which will return -// the contents of the packet. See RFC 4880, section 4.2. -func readHeader(r io.Reader) (tag packetType, length int64, contents io.Reader, err error) { - var buf [4]byte - _, err = io.ReadFull(r, buf[:1]) - if err != nil { - return - } - if buf[0]&0x80 == 0 { - err = errors.StructuralError("tag byte does not have MSB set") - return - } - if buf[0]&0x40 == 0 { - // Old format packet - tag = packetType((buf[0] & 0x3f) >> 2) - lengthType := buf[0] & 3 - if lengthType == 3 { - length = -1 - contents = r - return - } - lengthBytes := 1 << lengthType - _, err = readFull(r, buf[0:lengthBytes]) - if err != nil { - return - } - for i := 0; i < lengthBytes; i++ { - length <<= 8 - length |= int64(buf[i]) - } - contents = &spanReader{r, length} - return - } - - // New format packet - tag = packetType(buf[0] & 0x3f) - length, isPartial, err := readLength(r) - if err != nil { - return - } - if isPartial { - contents = &partialLengthReader{ - remaining: length, - isPartial: true, - r: r, - } - length = -1 - } else { - contents = &spanReader{r, length} - } - return -} - -// serializeHeader writes an OpenPGP packet header to w. See RFC 4880, section -// 4.2. -func serializeHeader(w io.Writer, ptype packetType, length int) (err error) { - var buf [6]byte - var n int - - buf[0] = 0x80 | 0x40 | byte(ptype) - if length < 192 { - buf[1] = byte(length) - n = 2 - } else if length < 8384 { - length -= 192 - buf[1] = 192 + byte(length>>8) - buf[2] = byte(length) - n = 3 - } else { - buf[1] = 255 - buf[2] = byte(length >> 24) - buf[3] = byte(length >> 16) - buf[4] = byte(length >> 8) - buf[5] = byte(length) - n = 6 - } - - _, err = w.Write(buf[:n]) - return -} - -// serializeStreamHeader writes an OpenPGP packet header to w where the -// length of the packet is unknown. It returns a io.WriteCloser which can be -// used to write the contents of the packet. See RFC 4880, section 4.2. -func serializeStreamHeader(w io.WriteCloser, ptype packetType) (out io.WriteCloser, err error) { - var buf [1]byte - buf[0] = 0x80 | 0x40 | byte(ptype) - _, err = w.Write(buf[:]) - if err != nil { - return - } - out = &partialLengthWriter{w: w} - return -} - -// Packet represents an OpenPGP packet. Users are expected to try casting -// instances of this interface to specific packet types. -type Packet interface { - parse(io.Reader) error -} - -// consumeAll reads from the given Reader until error, returning the number of -// bytes read. -func consumeAll(r io.Reader) (n int64, err error) { - var m int - var buf [1024]byte - - for { - m, err = r.Read(buf[:]) - n += int64(m) - if err == io.EOF { - err = nil - return - } - if err != nil { - return - } - } - - panic("unreachable") -} - -// packetType represents the numeric ids of the different OpenPGP packet types. See -// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-2 -type packetType uint8 - -const ( - packetTypeEncryptedKey packetType = 1 - packetTypeSignature packetType = 2 - packetTypeSymmetricKeyEncrypted packetType = 3 - packetTypeOnePassSignature packetType = 4 - packetTypePrivateKey packetType = 5 - packetTypePublicKey packetType = 6 - packetTypePrivateSubkey packetType = 7 - packetTypeCompressed packetType = 8 - packetTypeSymmetricallyEncrypted packetType = 9 - packetTypeLiteralData packetType = 11 - packetTypeUserId packetType = 13 - packetTypePublicSubkey packetType = 14 - packetTypeUserAttribute packetType = 17 - packetTypeSymmetricallyEncryptedMDC packetType = 18 -) - -// peekVersion detects the version of a public key packet about to -// be read. A bufio.Reader at the original position of the io.Reader -// is returned. -func peekVersion(r io.Reader) (bufr *bufio.Reader, ver byte, err error) { - bufr = bufio.NewReader(r) - var verBuf []byte - if verBuf, err = bufr.Peek(1); err != nil { - return - } - ver = verBuf[0] - return -} - -// Read reads a single OpenPGP packet from the given io.Reader. If there is an -// error parsing a packet, the whole packet is consumed from the input. -func Read(r io.Reader) (p Packet, err error) { - tag, _, contents, err := readHeader(r) - if err != nil { - return - } - - switch tag { - case packetTypeEncryptedKey: - p = new(EncryptedKey) - case packetTypeSignature: - var version byte - // Detect signature version - if contents, version, err = peekVersion(contents); err != nil { - return - } - if version < 4 { - p = new(SignatureV3) - } else { - p = new(Signature) - } - case packetTypeSymmetricKeyEncrypted: - p = new(SymmetricKeyEncrypted) - case packetTypeOnePassSignature: - p = new(OnePassSignature) - case packetTypePrivateKey, packetTypePrivateSubkey: - pk := new(PrivateKey) - if tag == packetTypePrivateSubkey { - pk.IsSubkey = true - } - p = pk - case packetTypePublicKey, packetTypePublicSubkey: - var version byte - if contents, version, err = peekVersion(contents); err != nil { - return - } - isSubkey := tag == packetTypePublicSubkey - if version < 4 { - p = &PublicKeyV3{IsSubkey: isSubkey} - } else { - p = &PublicKey{IsSubkey: isSubkey} - } - case packetTypeCompressed: - p = new(Compressed) - case packetTypeSymmetricallyEncrypted: - p = new(SymmetricallyEncrypted) - case packetTypeLiteralData: - p = new(LiteralData) - case packetTypeUserId: - p = new(UserId) - case packetTypeUserAttribute: - p = new(UserAttribute) - case packetTypeSymmetricallyEncryptedMDC: - se := new(SymmetricallyEncrypted) - se.MDC = true - p = se - default: - err = errors.UnknownPacketTypeError(tag) - } - if p != nil { - err = p.parse(contents) - } - if err != nil { - consumeAll(contents) - } - return -} - -// SignatureType represents the different semantic meanings of an OpenPGP -// signature. See RFC 4880, section 5.2.1. -type SignatureType uint8 - -const ( - SigTypeBinary SignatureType = 0 - SigTypeText = 1 - SigTypeGenericCert = 0x10 - SigTypePersonaCert = 0x11 - SigTypeCasualCert = 0x12 - SigTypePositiveCert = 0x13 - SigTypeSubkeyBinding = 0x18 - SigTypePrimaryKeyBinding = 0x19 - SigTypeDirectSignature = 0x1F - SigTypeKeyRevocation = 0x20 - SigTypeSubkeyRevocation = 0x28 -) - -// PublicKeyAlgorithm represents the different public key system specified for -// OpenPGP. See -// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-12 -type PublicKeyAlgorithm uint8 - -const ( - PubKeyAlgoRSA PublicKeyAlgorithm = 1 - PubKeyAlgoRSAEncryptOnly PublicKeyAlgorithm = 2 - PubKeyAlgoRSASignOnly PublicKeyAlgorithm = 3 - PubKeyAlgoElGamal PublicKeyAlgorithm = 16 - PubKeyAlgoDSA PublicKeyAlgorithm = 17 - // RFC 6637, Section 5. - PubKeyAlgoECDH PublicKeyAlgorithm = 18 - PubKeyAlgoECDSA PublicKeyAlgorithm = 19 -) - -// CanEncrypt returns true if it's possible to encrypt a message to a public -// key of the given type. -func (pka PublicKeyAlgorithm) CanEncrypt() bool { - switch pka { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoElGamal: - return true - } - return false -} - -// CanSign returns true if it's possible for a public key of the given type to -// sign a message. -func (pka PublicKeyAlgorithm) CanSign() bool { - switch pka { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA, PubKeyAlgoECDSA: - return true - } - return false -} - -// CipherFunction represents the different block ciphers specified for OpenPGP. See -// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-13 -type CipherFunction uint8 - -const ( - Cipher3DES CipherFunction = 2 - CipherCAST5 CipherFunction = 3 - CipherAES128 CipherFunction = 7 - CipherAES192 CipherFunction = 8 - CipherAES256 CipherFunction = 9 -) - -// KeySize returns the key size, in bytes, of cipher. -func (cipher CipherFunction) KeySize() int { - switch cipher { - case Cipher3DES: - return 24 - case CipherCAST5: - return cast5.KeySize - case CipherAES128: - return 16 - case CipherAES192: - return 24 - case CipherAES256: - return 32 - } - return 0 -} - -// blockSize returns the block size, in bytes, of cipher. -func (cipher CipherFunction) blockSize() int { - switch cipher { - case Cipher3DES: - return des.BlockSize - case CipherCAST5: - return 8 - case CipherAES128, CipherAES192, CipherAES256: - return 16 - } - return 0 -} - -// new returns a fresh instance of the given cipher. -func (cipher CipherFunction) new(key []byte) (block cipher.Block) { - switch cipher { - case Cipher3DES: - block, _ = des.NewTripleDESCipher(key) - case CipherCAST5: - block, _ = cast5.NewCipher(key) - case CipherAES128, CipherAES192, CipherAES256: - block, _ = aes.NewCipher(key) - } - return -} - -// readMPI reads a big integer from r. The bit length returned is the bit -// length that was specified in r. This is preserved so that the integer can be -// reserialized exactly. -func readMPI(r io.Reader) (mpi []byte, bitLength uint16, err error) { - var buf [2]byte - _, err = readFull(r, buf[0:]) - if err != nil { - return - } - bitLength = uint16(buf[0])<<8 | uint16(buf[1]) - numBytes := (int(bitLength) + 7) / 8 - mpi = make([]byte, numBytes) - _, err = readFull(r, mpi) - return -} - -// mpiLength returns the length of the given *big.Int when serialized as an -// MPI. -func mpiLength(n *big.Int) (mpiLengthInBytes int) { - mpiLengthInBytes = 2 /* MPI length */ - mpiLengthInBytes += (n.BitLen() + 7) / 8 - return -} - -// writeMPI serializes a big integer to w. -func writeMPI(w io.Writer, bitLength uint16, mpiBytes []byte) (err error) { - _, err = w.Write([]byte{byte(bitLength >> 8), byte(bitLength)}) - if err == nil { - _, err = w.Write(mpiBytes) - } - return -} - -// writeBig serializes a *big.Int to w. -func writeBig(w io.Writer, i *big.Int) error { - return writeMPI(w, uint16(i.BitLen()), i.Bytes()) -} - -// CompressionAlgo Represents the different compression algorithms -// supported by OpenPGP (except for BZIP2, which is not currently -// supported). See Section 9.3 of RFC 4880. -type CompressionAlgo uint8 - -const ( - CompressionNone CompressionAlgo = 0 - CompressionZIP CompressionAlgo = 1 - CompressionZLIB CompressionAlgo = 2 -) diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/packet_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/packet_test.go deleted file mode 100644 index 2bee9a5c..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/packet_test.go +++ /dev/null @@ -1,255 +0,0 @@ -// 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 packet - -import ( - "bytes" - "encoding/hex" - "fmt" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "io" - "io/ioutil" - "testing" -) - -func TestReadFull(t *testing.T) { - var out [4]byte - - b := bytes.NewBufferString("foo") - n, err := readFull(b, out[:3]) - if n != 3 || err != nil { - t.Errorf("full read failed n:%d err:%s", n, err) - } - - b = bytes.NewBufferString("foo") - n, err = readFull(b, out[:4]) - if n != 3 || err != io.ErrUnexpectedEOF { - t.Errorf("partial read failed n:%d err:%s", n, err) - } - - b = bytes.NewBuffer(nil) - n, err = readFull(b, out[:3]) - if n != 0 || err != io.ErrUnexpectedEOF { - t.Errorf("empty read failed n:%d err:%s", n, err) - } -} - -func readerFromHex(s string) io.Reader { - data, err := hex.DecodeString(s) - if err != nil { - panic("readerFromHex: bad input") - } - return bytes.NewBuffer(data) -} - -var readLengthTests = []struct { - hexInput string - length int64 - isPartial bool - err error -}{ - {"", 0, false, io.ErrUnexpectedEOF}, - {"1f", 31, false, nil}, - {"c0", 0, false, io.ErrUnexpectedEOF}, - {"c101", 256 + 1 + 192, false, nil}, - {"e0", 1, true, nil}, - {"e1", 2, true, nil}, - {"e2", 4, true, nil}, - {"ff", 0, false, io.ErrUnexpectedEOF}, - {"ff00", 0, false, io.ErrUnexpectedEOF}, - {"ff0000", 0, false, io.ErrUnexpectedEOF}, - {"ff000000", 0, false, io.ErrUnexpectedEOF}, - {"ff00000000", 0, false, nil}, - {"ff01020304", 16909060, false, nil}, -} - -func TestReadLength(t *testing.T) { - for i, test := range readLengthTests { - length, isPartial, err := readLength(readerFromHex(test.hexInput)) - if test.err != nil { - if err != test.err { - t.Errorf("%d: expected different error got:%s want:%s", i, err, test.err) - } - continue - } - if err != nil { - t.Errorf("%d: unexpected error: %s", i, err) - continue - } - if length != test.length || isPartial != test.isPartial { - t.Errorf("%d: bad result got:(%d,%t) want:(%d,%t)", i, length, isPartial, test.length, test.isPartial) - } - } -} - -var partialLengthReaderTests = []struct { - hexInput string - err error - hexOutput string -}{ - {"e0", io.ErrUnexpectedEOF, ""}, - {"e001", io.ErrUnexpectedEOF, ""}, - {"e0010102", nil, "0102"}, - {"ff00000000", nil, ""}, - {"e10102e1030400", nil, "01020304"}, - {"e101", io.ErrUnexpectedEOF, ""}, -} - -func TestPartialLengthReader(t *testing.T) { - for i, test := range partialLengthReaderTests { - r := &partialLengthReader{readerFromHex(test.hexInput), 0, true} - out, err := ioutil.ReadAll(r) - if test.err != nil { - if err != test.err { - t.Errorf("%d: expected different error got:%s want:%s", i, err, test.err) - } - continue - } - if err != nil { - t.Errorf("%d: unexpected error: %s", i, err) - continue - } - - got := fmt.Sprintf("%x", out) - if got != test.hexOutput { - t.Errorf("%d: got:%s want:%s", i, test.hexOutput, got) - } - } -} - -var readHeaderTests = []struct { - hexInput string - structuralError bool - unexpectedEOF bool - tag int - length int64 - hexOutput string -}{ - {"", false, false, 0, 0, ""}, - {"7f", true, false, 0, 0, ""}, - - // Old format headers - {"80", false, true, 0, 0, ""}, - {"8001", false, true, 0, 1, ""}, - {"800102", false, false, 0, 1, "02"}, - {"81000102", false, false, 0, 1, "02"}, - {"820000000102", false, false, 0, 1, "02"}, - {"860000000102", false, false, 1, 1, "02"}, - {"83010203", false, false, 0, -1, "010203"}, - - // New format headers - {"c0", false, true, 0, 0, ""}, - {"c000", false, false, 0, 0, ""}, - {"c00102", false, false, 0, 1, "02"}, - {"c0020203", false, false, 0, 2, "0203"}, - {"c00202", false, true, 0, 2, ""}, - {"c3020203", false, false, 3, 2, "0203"}, -} - -func TestReadHeader(t *testing.T) { - for i, test := range readHeaderTests { - tag, length, contents, err := readHeader(readerFromHex(test.hexInput)) - if test.structuralError { - if _, ok := err.(errors.StructuralError); ok { - continue - } - t.Errorf("%d: expected StructuralError, got:%s", i, err) - continue - } - if err != nil { - if len(test.hexInput) == 0 && err == io.EOF { - continue - } - if !test.unexpectedEOF || err != io.ErrUnexpectedEOF { - t.Errorf("%d: unexpected error from readHeader: %s", i, err) - } - continue - } - if int(tag) != test.tag || length != test.length { - t.Errorf("%d: got:(%d,%d) want:(%d,%d)", i, int(tag), length, test.tag, test.length) - continue - } - - body, err := ioutil.ReadAll(contents) - if err != nil { - if !test.unexpectedEOF || err != io.ErrUnexpectedEOF { - t.Errorf("%d: unexpected error from contents: %s", i, err) - } - continue - } - if test.unexpectedEOF { - t.Errorf("%d: expected ErrUnexpectedEOF from contents but got no error", i) - continue - } - got := fmt.Sprintf("%x", body) - if got != test.hexOutput { - t.Errorf("%d: got:%s want:%s", i, got, test.hexOutput) - } - } -} - -func TestSerializeHeader(t *testing.T) { - tag := packetTypePublicKey - lengths := []int{0, 1, 2, 64, 192, 193, 8000, 8384, 8385, 10000} - - for _, length := range lengths { - buf := bytes.NewBuffer(nil) - serializeHeader(buf, tag, length) - tag2, length2, _, err := readHeader(buf) - if err != nil { - t.Errorf("length %d, err: %s", length, err) - } - if tag2 != tag { - t.Errorf("length %d, tag incorrect (got %d, want %d)", length, tag2, tag) - } - if int(length2) != length { - t.Errorf("length %d, length incorrect (got %d)", length, length2) - } - } -} - -func TestPartialLengths(t *testing.T) { - buf := bytes.NewBuffer(nil) - w := new(partialLengthWriter) - w.w = noOpCloser{buf} - - const maxChunkSize = 64 - - var b [maxChunkSize]byte - var n uint8 - for l := 1; l <= maxChunkSize; l++ { - for i := 0; i < l; i++ { - b[i] = n - n++ - } - m, err := w.Write(b[:l]) - if m != l { - t.Errorf("short write got: %d want: %d", m, l) - } - if err != nil { - t.Errorf("error from write: %s", err) - } - } - w.Close() - - want := (maxChunkSize * (maxChunkSize + 1)) / 2 - copyBuf := bytes.NewBuffer(nil) - r := &partialLengthReader{buf, 0, true} - m, err := io.Copy(copyBuf, r) - if m != int64(want) { - t.Errorf("short copy got: %d want: %d", m, want) - } - if err != nil { - t.Errorf("error from copy: %s", err) - } - - copyBytes := copyBuf.Bytes() - for i := 0; i < want; i++ { - if copyBytes[i] != uint8(i) { - t.Errorf("bad pattern in copy at %d", i) - break - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/private_key.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/private_key.go deleted file mode 100644 index 4fb6ff8f..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/private_key.go +++ /dev/null @@ -1,313 +0,0 @@ -// 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 packet - -import ( - "bytes" - "crypto/cipher" - "crypto/dsa" - "crypto/rsa" - "crypto/sha1" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/elgamal" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k" - "io" - "io/ioutil" - "math/big" - "strconv" - "time" -) - -// PrivateKey represents a possibly encrypted private key. See RFC 4880, -// section 5.5.3. -type PrivateKey struct { - PublicKey - Encrypted bool // if true then the private key is unavailable until Decrypt has been called. - encryptedData []byte - cipher CipherFunction - s2k func(out, in []byte) - PrivateKey interface{} // An *rsa.PrivateKey or *dsa.PrivateKey. - sha1Checksum bool - iv []byte -} - -func NewRSAPrivateKey(currentTime time.Time, priv *rsa.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewRSAPublicKey(currentTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -func NewDSAPrivateKey(currentTime time.Time, priv *dsa.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewDSAPublicKey(currentTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -func (pk *PrivateKey) parse(r io.Reader) (err error) { - err = (&pk.PublicKey).parse(r) - if err != nil { - return - } - var buf [1]byte - _, err = readFull(r, buf[:]) - if err != nil { - return - } - - s2kType := buf[0] - - switch s2kType { - case 0: - pk.s2k = nil - pk.Encrypted = false - case 254, 255: - _, err = readFull(r, buf[:]) - if err != nil { - return - } - pk.cipher = CipherFunction(buf[0]) - pk.Encrypted = true - pk.s2k, err = s2k.Parse(r) - if err != nil { - return - } - if s2kType == 254 { - pk.sha1Checksum = true - } - default: - return errors.UnsupportedError("deprecated s2k function in private key") - } - - if pk.Encrypted { - blockSize := pk.cipher.blockSize() - if blockSize == 0 { - return errors.UnsupportedError("unsupported cipher in private key: " + strconv.Itoa(int(pk.cipher))) - } - pk.iv = make([]byte, blockSize) - _, err = readFull(r, pk.iv) - if err != nil { - return - } - } - - pk.encryptedData, err = ioutil.ReadAll(r) - if err != nil { - return - } - - if !pk.Encrypted { - return pk.parsePrivateKey(pk.encryptedData) - } - - return -} - -func mod64kHash(d []byte) uint16 { - var h uint16 - for _, b := range d { - h += uint16(b) - } - return h -} - -func (pk *PrivateKey) Serialize(w io.Writer) (err error) { - // TODO(agl): support encrypted private keys - buf := bytes.NewBuffer(nil) - err = pk.PublicKey.serializeWithoutHeaders(buf) - if err != nil { - return - } - buf.WriteByte(0 /* no encryption */) - - privateKeyBuf := bytes.NewBuffer(nil) - - switch priv := pk.PrivateKey.(type) { - case *rsa.PrivateKey: - err = serializeRSAPrivateKey(privateKeyBuf, priv) - case *dsa.PrivateKey: - err = serializeDSAPrivateKey(privateKeyBuf, priv) - default: - err = errors.InvalidArgumentError("unknown private key type") - } - if err != nil { - return - } - - ptype := packetTypePrivateKey - contents := buf.Bytes() - privateKeyBytes := privateKeyBuf.Bytes() - if pk.IsSubkey { - ptype = packetTypePrivateSubkey - } - err = serializeHeader(w, ptype, len(contents)+len(privateKeyBytes)+2) - if err != nil { - return - } - _, err = w.Write(contents) - if err != nil { - return - } - _, err = w.Write(privateKeyBytes) - if err != nil { - return - } - - checksum := mod64kHash(privateKeyBytes) - var checksumBytes [2]byte - checksumBytes[0] = byte(checksum >> 8) - checksumBytes[1] = byte(checksum) - _, err = w.Write(checksumBytes[:]) - - return -} - -func serializeRSAPrivateKey(w io.Writer, priv *rsa.PrivateKey) error { - err := writeBig(w, priv.D) - if err != nil { - return err - } - err = writeBig(w, priv.Primes[1]) - if err != nil { - return err - } - err = writeBig(w, priv.Primes[0]) - if err != nil { - return err - } - return writeBig(w, priv.Precomputed.Qinv) -} - -func serializeDSAPrivateKey(w io.Writer, priv *dsa.PrivateKey) error { - return writeBig(w, priv.X) -} - -// Decrypt decrypts an encrypted private key using a passphrase. -func (pk *PrivateKey) Decrypt(passphrase []byte) error { - if !pk.Encrypted { - return nil - } - - key := make([]byte, pk.cipher.KeySize()) - pk.s2k(key, passphrase) - block := pk.cipher.new(key) - cfb := cipher.NewCFBDecrypter(block, pk.iv) - - data := make([]byte, len(pk.encryptedData)) - cfb.XORKeyStream(data, pk.encryptedData) - - if pk.sha1Checksum { - if len(data) < sha1.Size { - return errors.StructuralError("truncated private key data") - } - h := sha1.New() - h.Write(data[:len(data)-sha1.Size]) - sum := h.Sum(nil) - if !bytes.Equal(sum, data[len(data)-sha1.Size:]) { - return errors.StructuralError("private key checksum failure") - } - data = data[:len(data)-sha1.Size] - } else { - if len(data) < 2 { - return errors.StructuralError("truncated private key data") - } - var sum uint16 - for i := 0; i < len(data)-2; i++ { - sum += uint16(data[i]) - } - if data[len(data)-2] != uint8(sum>>8) || - data[len(data)-1] != uint8(sum) { - return errors.StructuralError("private key checksum failure") - } - data = data[:len(data)-2] - } - - return pk.parsePrivateKey(data) -} - -func (pk *PrivateKey) parsePrivateKey(data []byte) (err error) { - switch pk.PublicKey.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoRSAEncryptOnly: - return pk.parseRSAPrivateKey(data) - case PubKeyAlgoDSA: - return pk.parseDSAPrivateKey(data) - case PubKeyAlgoElGamal: - return pk.parseElGamalPrivateKey(data) - } - panic("impossible") -} - -func (pk *PrivateKey) parseRSAPrivateKey(data []byte) (err error) { - rsaPub := pk.PublicKey.PublicKey.(*rsa.PublicKey) - rsaPriv := new(rsa.PrivateKey) - rsaPriv.PublicKey = *rsaPub - - buf := bytes.NewBuffer(data) - d, _, err := readMPI(buf) - if err != nil { - return - } - p, _, err := readMPI(buf) - if err != nil { - return - } - q, _, err := readMPI(buf) - if err != nil { - return - } - - rsaPriv.D = new(big.Int).SetBytes(d) - rsaPriv.Primes = make([]*big.Int, 2) - rsaPriv.Primes[0] = new(big.Int).SetBytes(p) - rsaPriv.Primes[1] = new(big.Int).SetBytes(q) - if err := rsaPriv.Validate(); err != nil { - return err - } - rsaPriv.Precompute() - pk.PrivateKey = rsaPriv - pk.Encrypted = false - pk.encryptedData = nil - - return nil -} - -func (pk *PrivateKey) parseDSAPrivateKey(data []byte) (err error) { - dsaPub := pk.PublicKey.PublicKey.(*dsa.PublicKey) - dsaPriv := new(dsa.PrivateKey) - dsaPriv.PublicKey = *dsaPub - - buf := bytes.NewBuffer(data) - x, _, err := readMPI(buf) - if err != nil { - return - } - - dsaPriv.X = new(big.Int).SetBytes(x) - pk.PrivateKey = dsaPriv - pk.Encrypted = false - pk.encryptedData = nil - - return nil -} - -func (pk *PrivateKey) parseElGamalPrivateKey(data []byte) (err error) { - pub := pk.PublicKey.PublicKey.(*elgamal.PublicKey) - priv := new(elgamal.PrivateKey) - priv.PublicKey = *pub - - buf := bytes.NewBuffer(data) - x, _, err := readMPI(buf) - if err != nil { - return - } - - priv.X = new(big.Int).SetBytes(x) - pk.PrivateKey = priv - pk.Encrypted = false - pk.encryptedData = nil - - return nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/private_key_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/private_key_test.go deleted file mode 100644 index 25c8931f..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/private_key_test.go +++ /dev/null @@ -1,69 +0,0 @@ -// 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 packet - -import ( - "testing" - "time" -) - -var privateKeyTests = []struct { - privateKeyHex string - creationTime time.Time -}{ - { - privKeyRSAHex, - time.Unix(0x4cc349a8, 0), - }, - { - privKeyElGamalHex, - time.Unix(0x4df9ee1a, 0), - }, -} - -func TestPrivateKeyRead(t *testing.T) { - for i, test := range privateKeyTests { - packet, err := Read(readerFromHex(test.privateKeyHex)) - if err != nil { - t.Errorf("#%d: failed to parse: %s", i, err) - continue - } - - privKey := packet.(*PrivateKey) - - if !privKey.Encrypted { - t.Errorf("#%d: private key isn't encrypted", i) - continue - } - - err = privKey.Decrypt([]byte("wrong password")) - if err == nil { - t.Errorf("#%d: decrypted with incorrect key", i) - continue - } - - err = privKey.Decrypt([]byte("testing")) - if err != nil { - t.Errorf("#%d: failed to decrypt: %s", i, err) - continue - } - - if !privKey.CreationTime.Equal(test.creationTime) || privKey.Encrypted { - t.Errorf("#%d: bad result, got: %#v", i, privKey) - } - } -} - -func TestIssue11505(t *testing.T) { - // parsing a rsa private key with p or q == 1 used to panic due to a divide by zero - _, _ = Read(readerFromHex("9c3004303030300100000011303030000000000000010130303030303030303030303030303030303030303030303030303030303030303030303030303030303030")) -} - -// Generated with `gpg --export-secret-keys "Test Key 2"` -const privKeyRSAHex = "9501fe044cc349a8010400b70ca0010e98c090008d45d1ee8f9113bd5861fd57b88bacb7c68658747663f1e1a3b5a98f32fda6472373c024b97359cd2efc88ff60f77751adfbf6af5e615e6a1408cfad8bf0cea30b0d5f53aa27ad59089ba9b15b7ebc2777a25d7b436144027e3bcd203909f147d0e332b240cf63d3395f5dfe0df0a6c04e8655af7eacdf0011010001fe0303024a252e7d475fd445607de39a265472aa74a9320ba2dac395faa687e9e0336aeb7e9a7397e511b5afd9dc84557c80ac0f3d4d7bfec5ae16f20d41c8c84a04552a33870b930420e230e179564f6d19bb153145e76c33ae993886c388832b0fa042ddda7f133924f3854481533e0ede31d51278c0519b29abc3bf53da673e13e3e1214b52413d179d7f66deee35cac8eacb060f78379d70ef4af8607e68131ff529439668fc39c9ce6dfef8a5ac234d234802cbfb749a26107db26406213ae5c06d4673253a3cbee1fcbae58d6ab77e38d6e2c0e7c6317c48e054edadb5a40d0d48acb44643d998139a8a66bb820be1f3f80185bc777d14b5954b60effe2448a036d565c6bc0b915fcea518acdd20ab07bc1529f561c58cd044f723109b93f6fd99f876ff891d64306b5d08f48bab59f38695e9109c4dec34013ba3153488ce070268381ba923ee1eb77125b36afcb4347ec3478c8f2735b06ef17351d872e577fa95d0c397c88c71b59629a36aec" - -// Generated by `gpg --export-secret-keys` followed by a manual extraction of -// the ElGamal subkey from the packets. -const privKeyElGamalHex = "9d0157044df9ee1a100400eb8e136a58ec39b582629cdadf830bc64e0a94ed8103ca8bb247b27b11b46d1d25297ef4bcc3071785ba0c0bedfe89eabc5287fcc0edf81ab5896c1c8e4b20d27d79813c7aede75320b33eaeeaa586edc00fd1036c10133e6ba0ff277245d0d59d04b2b3421b7244aca5f4a8d870c6f1c1fbff9e1c26699a860b9504f35ca1d700030503fd1ededd3b840795be6d9ccbe3c51ee42e2f39233c432b831ddd9c4e72b7025a819317e47bf94f9ee316d7273b05d5fcf2999c3a681f519b1234bbfa6d359b4752bd9c3f77d6b6456cde152464763414ca130f4e91d91041432f90620fec0e6d6b5116076c2985d5aeaae13be492b9b329efcaf7ee25120159a0a30cd976b42d7afe030302dae7eb80db744d4960c4df930d57e87fe81412eaace9f900e6c839817a614ddb75ba6603b9417c33ea7b6c93967dfa2bcff3fa3c74a5ce2c962db65b03aece14c96cbd0038fc" diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key.go deleted file mode 100644 index e6bf55a4..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key.go +++ /dev/null @@ -1,709 +0,0 @@ -// 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 packet - -import ( - "bytes" - "crypto" - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rsa" - "crypto/sha1" - _ "crypto/sha256" - _ "crypto/sha512" - "encoding/binary" - "fmt" - "hash" - "io" - "math/big" - "strconv" - "time" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/elgamal" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" -) - -var ( - // NIST curve P-256 - oidCurveP256 []byte = []byte{0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07} - // NIST curve P-384 - oidCurveP384 []byte = []byte{0x2B, 0x81, 0x04, 0x00, 0x22} - // NIST curve P-521 - oidCurveP521 []byte = []byte{0x2B, 0x81, 0x04, 0x00, 0x23} -) - -const maxOIDLength = 8 - -// ecdsaKey stores the algorithm-specific fields for ECDSA keys. -// as defined in RFC 6637, Section 9. -type ecdsaKey struct { - // oid contains the OID byte sequence identifying the elliptic curve used - oid []byte - // p contains the elliptic curve point that represents the public key - p parsedMPI -} - -// parseOID reads the OID for the curve as defined in RFC 6637, Section 9. -func parseOID(r io.Reader) (oid []byte, err error) { - buf := make([]byte, maxOIDLength) - if _, err = readFull(r, buf[:1]); err != nil { - return - } - oidLen := buf[0] - if int(oidLen) > len(buf) { - err = errors.UnsupportedError("invalid oid length: " + strconv.Itoa(int(oidLen))) - return - } - oid = buf[:oidLen] - _, err = readFull(r, oid) - return -} - -func (f *ecdsaKey) parse(r io.Reader) (err error) { - if f.oid, err = parseOID(r); err != nil { - return err - } - f.p.bytes, f.p.bitLength, err = readMPI(r) - return -} - -func (f *ecdsaKey) serialize(w io.Writer) (err error) { - buf := make([]byte, maxOIDLength+1) - buf[0] = byte(len(f.oid)) - copy(buf[1:], f.oid) - if _, err = w.Write(buf[:len(f.oid)+1]); err != nil { - return - } - return writeMPIs(w, f.p) -} - -func (f *ecdsaKey) newECDSA() (*ecdsa.PublicKey, error) { - var c elliptic.Curve - if bytes.Equal(f.oid, oidCurveP256) { - c = elliptic.P256() - } else if bytes.Equal(f.oid, oidCurveP384) { - c = elliptic.P384() - } else if bytes.Equal(f.oid, oidCurveP521) { - c = elliptic.P521() - } else { - return nil, errors.UnsupportedError(fmt.Sprintf("unsupported oid: %x", f.oid)) - } - x, y := elliptic.Unmarshal(c, f.p.bytes) - if x == nil { - return nil, errors.UnsupportedError("failed to parse EC point") - } - return &ecdsa.PublicKey{Curve: c, X: x, Y: y}, nil -} - -func (f *ecdsaKey) byteLen() int { - return 1 + len(f.oid) + 2 + len(f.p.bytes) -} - -type kdfHashFunction byte -type kdfAlgorithm byte - -// ecdhKdf stores key derivation function parameters -// used for ECDH encryption. See RFC 6637, Section 9. -type ecdhKdf struct { - KdfHash kdfHashFunction - KdfAlgo kdfAlgorithm -} - -func (f *ecdhKdf) parse(r io.Reader) (err error) { - buf := make([]byte, 1) - if _, err = readFull(r, buf); err != nil { - return - } - kdfLen := int(buf[0]) - if kdfLen < 3 { - return errors.UnsupportedError("Unsupported ECDH KDF length: " + strconv.Itoa(kdfLen)) - } - buf = make([]byte, kdfLen) - if _, err = readFull(r, buf); err != nil { - return - } - reserved := int(buf[0]) - f.KdfHash = kdfHashFunction(buf[1]) - f.KdfAlgo = kdfAlgorithm(buf[2]) - if reserved != 0x01 { - return errors.UnsupportedError("Unsupported KDF reserved field: " + strconv.Itoa(reserved)) - } - return -} - -func (f *ecdhKdf) serialize(w io.Writer) (err error) { - buf := make([]byte, 4) - // See RFC 6637, Section 9, Algorithm-Specific Fields for ECDH keys. - buf[0] = byte(0x03) // Length of the following fields - buf[1] = byte(0x01) // Reserved for future extensions, must be 1 for now - buf[2] = byte(f.KdfHash) - buf[3] = byte(f.KdfAlgo) - _, err = w.Write(buf[:]) - return -} - -func (f *ecdhKdf) byteLen() int { - return 4 -} - -// PublicKey represents an OpenPGP public key. See RFC 4880, section 5.5.2. -type PublicKey struct { - CreationTime time.Time - PubKeyAlgo PublicKeyAlgorithm - PublicKey interface{} // *rsa.PublicKey, *dsa.PublicKey or *ecdsa.PublicKey - Fingerprint [20]byte - KeyId uint64 - IsSubkey bool - - n, e, p, q, g, y parsedMPI - - // RFC 6637 fields - ec *ecdsaKey - ecdh *ecdhKdf -} - -// signingKey provides a convenient abstraction over signature verification -// for v3 and v4 public keys. -type signingKey interface { - SerializeSignaturePrefix(io.Writer) - serializeWithoutHeaders(io.Writer) error -} - -func fromBig(n *big.Int) parsedMPI { - return parsedMPI{ - bytes: n.Bytes(), - bitLength: uint16(n.BitLen()), - } -} - -// NewRSAPublicKey returns a PublicKey that wraps the given rsa.PublicKey. -func NewRSAPublicKey(creationTime time.Time, pub *rsa.PublicKey) *PublicKey { - pk := &PublicKey{ - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoRSA, - PublicKey: pub, - n: fromBig(pub.N), - e: fromBig(big.NewInt(int64(pub.E))), - } - - pk.setFingerPrintAndKeyId() - return pk -} - -// NewDSAPublicKey returns a PublicKey that wraps the given dsa.PublicKey. -func NewDSAPublicKey(creationTime time.Time, pub *dsa.PublicKey) *PublicKey { - pk := &PublicKey{ - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoDSA, - PublicKey: pub, - p: fromBig(pub.P), - q: fromBig(pub.Q), - g: fromBig(pub.G), - y: fromBig(pub.Y), - } - - pk.setFingerPrintAndKeyId() - return pk -} - -func (pk *PublicKey) parse(r io.Reader) (err error) { - // RFC 4880, section 5.5.2 - var buf [6]byte - _, err = readFull(r, buf[:]) - if err != nil { - return - } - if buf[0] != 4 { - return errors.UnsupportedError("public key version") - } - pk.CreationTime = time.Unix(int64(uint32(buf[1])<<24|uint32(buf[2])<<16|uint32(buf[3])<<8|uint32(buf[4])), 0) - pk.PubKeyAlgo = PublicKeyAlgorithm(buf[5]) - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - err = pk.parseRSA(r) - case PubKeyAlgoDSA: - err = pk.parseDSA(r) - case PubKeyAlgoElGamal: - err = pk.parseElGamal(r) - case PubKeyAlgoECDSA: - pk.ec = new(ecdsaKey) - if err = pk.ec.parse(r); err != nil { - return err - } - pk.PublicKey, err = pk.ec.newECDSA() - case PubKeyAlgoECDH: - pk.ec = new(ecdsaKey) - if err = pk.ec.parse(r); err != nil { - return - } - pk.ecdh = new(ecdhKdf) - if err = pk.ecdh.parse(r); err != nil { - return - } - // The ECDH key is stored in an ecdsa.PublicKey for convenience. - pk.PublicKey, err = pk.ec.newECDSA() - default: - err = errors.UnsupportedError("public key type: " + strconv.Itoa(int(pk.PubKeyAlgo))) - } - if err != nil { - return - } - - pk.setFingerPrintAndKeyId() - return -} - -func (pk *PublicKey) setFingerPrintAndKeyId() { - // RFC 4880, section 12.2 - fingerPrint := sha1.New() - pk.SerializeSignaturePrefix(fingerPrint) - pk.serializeWithoutHeaders(fingerPrint) - copy(pk.Fingerprint[:], fingerPrint.Sum(nil)) - pk.KeyId = binary.BigEndian.Uint64(pk.Fingerprint[12:20]) -} - -// parseRSA parses RSA public key material from the given Reader. See RFC 4880, -// section 5.5.2. -func (pk *PublicKey) parseRSA(r io.Reader) (err error) { - pk.n.bytes, pk.n.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.e.bytes, pk.e.bitLength, err = readMPI(r) - if err != nil { - return - } - - if len(pk.e.bytes) > 3 { - err = errors.UnsupportedError("large public exponent") - return - } - rsa := &rsa.PublicKey{ - N: new(big.Int).SetBytes(pk.n.bytes), - E: 0, - } - for i := 0; i < len(pk.e.bytes); i++ { - rsa.E <<= 8 - rsa.E |= int(pk.e.bytes[i]) - } - pk.PublicKey = rsa - return -} - -// parseDSA parses DSA public key material from the given Reader. See RFC 4880, -// section 5.5.2. -func (pk *PublicKey) parseDSA(r io.Reader) (err error) { - pk.p.bytes, pk.p.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.q.bytes, pk.q.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.g.bytes, pk.g.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.y.bytes, pk.y.bitLength, err = readMPI(r) - if err != nil { - return - } - - dsa := new(dsa.PublicKey) - dsa.P = new(big.Int).SetBytes(pk.p.bytes) - dsa.Q = new(big.Int).SetBytes(pk.q.bytes) - dsa.G = new(big.Int).SetBytes(pk.g.bytes) - dsa.Y = new(big.Int).SetBytes(pk.y.bytes) - pk.PublicKey = dsa - return -} - -// parseElGamal parses ElGamal public key material from the given Reader. See -// RFC 4880, section 5.5.2. -func (pk *PublicKey) parseElGamal(r io.Reader) (err error) { - pk.p.bytes, pk.p.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.g.bytes, pk.g.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.y.bytes, pk.y.bitLength, err = readMPI(r) - if err != nil { - return - } - - elgamal := new(elgamal.PublicKey) - elgamal.P = new(big.Int).SetBytes(pk.p.bytes) - elgamal.G = new(big.Int).SetBytes(pk.g.bytes) - elgamal.Y = new(big.Int).SetBytes(pk.y.bytes) - pk.PublicKey = elgamal - return -} - -// SerializeSignaturePrefix writes the prefix for this public key to the given Writer. -// The prefix is used when calculating a signature over this public key. See -// RFC 4880, section 5.2.4. -func (pk *PublicKey) SerializeSignaturePrefix(h io.Writer) { - var pLength uint16 - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - pLength += 2 + uint16(len(pk.n.bytes)) - pLength += 2 + uint16(len(pk.e.bytes)) - case PubKeyAlgoDSA: - pLength += 2 + uint16(len(pk.p.bytes)) - pLength += 2 + uint16(len(pk.q.bytes)) - pLength += 2 + uint16(len(pk.g.bytes)) - pLength += 2 + uint16(len(pk.y.bytes)) - case PubKeyAlgoElGamal: - pLength += 2 + uint16(len(pk.p.bytes)) - pLength += 2 + uint16(len(pk.g.bytes)) - pLength += 2 + uint16(len(pk.y.bytes)) - case PubKeyAlgoECDSA: - pLength += uint16(pk.ec.byteLen()) - case PubKeyAlgoECDH: - pLength += uint16(pk.ec.byteLen()) - pLength += uint16(pk.ecdh.byteLen()) - default: - panic("unknown public key algorithm") - } - pLength += 6 - h.Write([]byte{0x99, byte(pLength >> 8), byte(pLength)}) - return -} - -func (pk *PublicKey) Serialize(w io.Writer) (err error) { - length := 6 // 6 byte header - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - length += 2 + len(pk.n.bytes) - length += 2 + len(pk.e.bytes) - case PubKeyAlgoDSA: - length += 2 + len(pk.p.bytes) - length += 2 + len(pk.q.bytes) - length += 2 + len(pk.g.bytes) - length += 2 + len(pk.y.bytes) - case PubKeyAlgoElGamal: - length += 2 + len(pk.p.bytes) - length += 2 + len(pk.g.bytes) - length += 2 + len(pk.y.bytes) - case PubKeyAlgoECDSA: - length += pk.ec.byteLen() - case PubKeyAlgoECDH: - length += pk.ec.byteLen() - length += pk.ecdh.byteLen() - default: - panic("unknown public key algorithm") - } - - packetType := packetTypePublicKey - if pk.IsSubkey { - packetType = packetTypePublicSubkey - } - err = serializeHeader(w, packetType, length) - if err != nil { - return - } - return pk.serializeWithoutHeaders(w) -} - -// serializeWithoutHeaders marshals the PublicKey to w in the form of an -// OpenPGP public key packet, not including the packet header. -func (pk *PublicKey) serializeWithoutHeaders(w io.Writer) (err error) { - var buf [6]byte - buf[0] = 4 - t := uint32(pk.CreationTime.Unix()) - buf[1] = byte(t >> 24) - buf[2] = byte(t >> 16) - buf[3] = byte(t >> 8) - buf[4] = byte(t) - buf[5] = byte(pk.PubKeyAlgo) - - _, err = w.Write(buf[:]) - if err != nil { - return - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - return writeMPIs(w, pk.n, pk.e) - case PubKeyAlgoDSA: - return writeMPIs(w, pk.p, pk.q, pk.g, pk.y) - case PubKeyAlgoElGamal: - return writeMPIs(w, pk.p, pk.g, pk.y) - case PubKeyAlgoECDSA: - return pk.ec.serialize(w) - case PubKeyAlgoECDH: - if err = pk.ec.serialize(w); err != nil { - return - } - return pk.ecdh.serialize(w) - } - return errors.InvalidArgumentError("bad public-key algorithm") -} - -// CanSign returns true iff this public key can generate signatures -func (pk *PublicKey) CanSign() bool { - return pk.PubKeyAlgo != PubKeyAlgoRSAEncryptOnly && pk.PubKeyAlgo != PubKeyAlgoElGamal -} - -// VerifySignature returns nil iff sig is a valid signature, made by this -// public key, of the data hashed into signed. signed is mutated by this call. -func (pk *PublicKey) VerifySignature(signed hash.Hash, sig *Signature) (err error) { - if !pk.CanSign() { - return errors.InvalidArgumentError("public key cannot generate signatures") - } - - signed.Write(sig.HashSuffix) - hashBytes := signed.Sum(nil) - - if hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1] { - return errors.SignatureError("hash tag doesn't match") - } - - if pk.PubKeyAlgo != sig.PubKeyAlgo { - return errors.InvalidArgumentError("public key and signature use different algorithms") - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - rsaPublicKey, _ := pk.PublicKey.(*rsa.PublicKey) - err = rsa.VerifyPKCS1v15(rsaPublicKey, sig.Hash, hashBytes, sig.RSASignature.bytes) - if err != nil { - return errors.SignatureError("RSA verification failure") - } - return nil - case PubKeyAlgoDSA: - dsaPublicKey, _ := pk.PublicKey.(*dsa.PublicKey) - // Need to truncate hashBytes to match FIPS 186-3 section 4.6. - subgroupSize := (dsaPublicKey.Q.BitLen() + 7) / 8 - if len(hashBytes) > subgroupSize { - hashBytes = hashBytes[:subgroupSize] - } - if !dsa.Verify(dsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.DSASigR.bytes), new(big.Int).SetBytes(sig.DSASigS.bytes)) { - return errors.SignatureError("DSA verification failure") - } - return nil - case PubKeyAlgoECDSA: - ecdsaPublicKey := pk.PublicKey.(*ecdsa.PublicKey) - if !ecdsa.Verify(ecdsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.ECDSASigR.bytes), new(big.Int).SetBytes(sig.ECDSASigS.bytes)) { - return errors.SignatureError("ECDSA verification failure") - } - return nil - default: - return errors.SignatureError("Unsupported public key algorithm used in signature") - } - panic("unreachable") -} - -// VerifySignatureV3 returns nil iff sig is a valid signature, made by this -// public key, of the data hashed into signed. signed is mutated by this call. -func (pk *PublicKey) VerifySignatureV3(signed hash.Hash, sig *SignatureV3) (err error) { - if !pk.CanSign() { - return errors.InvalidArgumentError("public key cannot generate signatures") - } - - suffix := make([]byte, 5) - suffix[0] = byte(sig.SigType) - binary.BigEndian.PutUint32(suffix[1:], uint32(sig.CreationTime.Unix())) - signed.Write(suffix) - hashBytes := signed.Sum(nil) - - if hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1] { - return errors.SignatureError("hash tag doesn't match") - } - - if pk.PubKeyAlgo != sig.PubKeyAlgo { - return errors.InvalidArgumentError("public key and signature use different algorithms") - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - rsaPublicKey := pk.PublicKey.(*rsa.PublicKey) - if err = rsa.VerifyPKCS1v15(rsaPublicKey, sig.Hash, hashBytes, sig.RSASignature.bytes); err != nil { - return errors.SignatureError("RSA verification failure") - } - return - case PubKeyAlgoDSA: - dsaPublicKey := pk.PublicKey.(*dsa.PublicKey) - // Need to truncate hashBytes to match FIPS 186-3 section 4.6. - subgroupSize := (dsaPublicKey.Q.BitLen() + 7) / 8 - if len(hashBytes) > subgroupSize { - hashBytes = hashBytes[:subgroupSize] - } - if !dsa.Verify(dsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.DSASigR.bytes), new(big.Int).SetBytes(sig.DSASigS.bytes)) { - return errors.SignatureError("DSA verification failure") - } - return nil - default: - panic("shouldn't happen") - } - panic("unreachable") -} - -// keySignatureHash returns a Hash of the message that needs to be signed for -// pk to assert a subkey relationship to signed. -func keySignatureHash(pk, signed signingKey, hashFunc crypto.Hash) (h hash.Hash, err error) { - if !hashFunc.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hashFunc.New() - - // RFC 4880, section 5.2.4 - pk.SerializeSignaturePrefix(h) - pk.serializeWithoutHeaders(h) - signed.SerializeSignaturePrefix(h) - signed.serializeWithoutHeaders(h) - return -} - -// VerifyKeySignature returns nil iff sig is a valid signature, made by this -// public key, of signed. -func (pk *PublicKey) VerifyKeySignature(signed *PublicKey, sig *Signature) error { - h, err := keySignatureHash(pk, signed, sig.Hash) - if err != nil { - return err - } - if err = pk.VerifySignature(h, sig); err != nil { - return err - } - - if sig.FlagSign { - // Signing subkeys must be cross-signed. See - // https://www.gnupg.org/faq/subkey-cross-certify.html. - if sig.EmbeddedSignature == nil { - return errors.StructuralError("signing subkey is missing cross-signature") - } - // Verify the cross-signature. This is calculated over the same - // data as the main signature, so we cannot just recursively - // call signed.VerifyKeySignature(...) - if h, err = keySignatureHash(pk, signed, sig.EmbeddedSignature.Hash); err != nil { - return errors.StructuralError("error while hashing for cross-signature: " + err.Error()) - } - if err := signed.VerifySignature(h, sig.EmbeddedSignature); err != nil { - return errors.StructuralError("error while verifying cross-signature: " + err.Error()) - } - } - - return nil -} - -func keyRevocationHash(pk signingKey, hashFunc crypto.Hash) (h hash.Hash, err error) { - if !hashFunc.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hashFunc.New() - - // RFC 4880, section 5.2.4 - pk.SerializeSignaturePrefix(h) - pk.serializeWithoutHeaders(h) - - return -} - -// VerifyRevocationSignature returns nil iff sig is a valid signature, made by this -// public key. -func (pk *PublicKey) VerifyRevocationSignature(sig *Signature) (err error) { - h, err := keyRevocationHash(pk, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignature(h, sig) -} - -// userIdSignatureHash returns a Hash of the message that needs to be signed -// to assert that pk is a valid key for id. -func userIdSignatureHash(id string, pk *PublicKey, hashFunc crypto.Hash) (h hash.Hash, err error) { - if !hashFunc.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hashFunc.New() - - // RFC 4880, section 5.2.4 - pk.SerializeSignaturePrefix(h) - pk.serializeWithoutHeaders(h) - - var buf [5]byte - buf[0] = 0xb4 - buf[1] = byte(len(id) >> 24) - buf[2] = byte(len(id) >> 16) - buf[3] = byte(len(id) >> 8) - buf[4] = byte(len(id)) - h.Write(buf[:]) - h.Write([]byte(id)) - - return -} - -// VerifyUserIdSignature returns nil iff sig is a valid signature, made by this -// public key, that id is the identity of pub. -func (pk *PublicKey) VerifyUserIdSignature(id string, pub *PublicKey, sig *Signature) (err error) { - h, err := userIdSignatureHash(id, pub, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignature(h, sig) -} - -// VerifyUserIdSignatureV3 returns nil iff sig is a valid signature, made by this -// public key, that id is the identity of pub. -func (pk *PublicKey) VerifyUserIdSignatureV3(id string, pub *PublicKey, sig *SignatureV3) (err error) { - h, err := userIdSignatureV3Hash(id, pub, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignatureV3(h, sig) -} - -// KeyIdString returns the public key's fingerprint in capital hex -// (e.g. "6C7EE1B8621CC013"). -func (pk *PublicKey) KeyIdString() string { - return fmt.Sprintf("%X", pk.Fingerprint[12:20]) -} - -// KeyIdShortString returns the short form of public key's fingerprint -// in capital hex, as shown by gpg --list-keys (e.g. "621CC013"). -func (pk *PublicKey) KeyIdShortString() string { - return fmt.Sprintf("%X", pk.Fingerprint[16:20]) -} - -// A parsedMPI is used to store the contents of a big integer, along with the -// bit length that was specified in the original input. This allows the MPI to -// be reserialized exactly. -type parsedMPI struct { - bytes []byte - bitLength uint16 -} - -// writeMPIs is a utility function for serializing several big integers to the -// given Writer. -func writeMPIs(w io.Writer, mpis ...parsedMPI) (err error) { - for _, mpi := range mpis { - err = writeMPI(w, mpi.bitLength, mpi.bytes) - if err != nil { - return - } - } - return -} - -// BitLength returns the bit length for the given public key. -func (pk *PublicKey) BitLength() (bitLength uint16, err error) { - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - bitLength = pk.n.bitLength - case PubKeyAlgoDSA: - bitLength = pk.p.bitLength - case PubKeyAlgoElGamal: - bitLength = pk.p.bitLength - default: - err = errors.InvalidArgumentError("bad public-key algorithm") - } - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key_test.go deleted file mode 100644 index 7ad7d918..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key_test.go +++ /dev/null @@ -1,202 +0,0 @@ -// 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 packet - -import ( - "bytes" - "encoding/hex" - "testing" - "time" -) - -var pubKeyTests = []struct { - hexData string - hexFingerprint string - creationTime time.Time - pubKeyAlgo PublicKeyAlgorithm - keyId uint64 - keyIdString string - keyIdShort string -}{ - {rsaPkDataHex, rsaFingerprintHex, time.Unix(0x4d3c5c10, 0), PubKeyAlgoRSA, 0xa34d7e18c20c31bb, "A34D7E18C20C31BB", "C20C31BB"}, - {dsaPkDataHex, dsaFingerprintHex, time.Unix(0x4d432f89, 0), PubKeyAlgoDSA, 0x8e8fbe54062f19ed, "8E8FBE54062F19ED", "062F19ED"}, - {ecdsaPkDataHex, ecdsaFingerprintHex, time.Unix(0x5071c294, 0), PubKeyAlgoECDSA, 0x43fe956c542ca00b, "43FE956C542CA00B", "542CA00B"}, -} - -func TestPublicKeyRead(t *testing.T) { - for i, test := range pubKeyTests { - packet, err := Read(readerFromHex(test.hexData)) - if err != nil { - t.Errorf("#%d: Read error: %s", i, err) - continue - } - pk, ok := packet.(*PublicKey) - if !ok { - t.Errorf("#%d: failed to parse, got: %#v", i, packet) - continue - } - if pk.PubKeyAlgo != test.pubKeyAlgo { - t.Errorf("#%d: bad public key algorithm got:%x want:%x", i, pk.PubKeyAlgo, test.pubKeyAlgo) - } - if !pk.CreationTime.Equal(test.creationTime) { - t.Errorf("#%d: bad creation time got:%v want:%v", i, pk.CreationTime, test.creationTime) - } - expectedFingerprint, _ := hex.DecodeString(test.hexFingerprint) - if !bytes.Equal(expectedFingerprint, pk.Fingerprint[:]) { - t.Errorf("#%d: bad fingerprint got:%x want:%x", i, pk.Fingerprint[:], expectedFingerprint) - } - if pk.KeyId != test.keyId { - t.Errorf("#%d: bad keyid got:%x want:%x", i, pk.KeyId, test.keyId) - } - if g, e := pk.KeyIdString(), test.keyIdString; g != e { - t.Errorf("#%d: bad KeyIdString got:%q want:%q", i, g, e) - } - if g, e := pk.KeyIdShortString(), test.keyIdShort; g != e { - t.Errorf("#%d: bad KeyIdShortString got:%q want:%q", i, g, e) - } - } -} - -func TestPublicKeySerialize(t *testing.T) { - for i, test := range pubKeyTests { - packet, err := Read(readerFromHex(test.hexData)) - if err != nil { - t.Errorf("#%d: Read error: %s", i, err) - continue - } - pk, ok := packet.(*PublicKey) - if !ok { - t.Errorf("#%d: failed to parse, got: %#v", i, packet) - continue - } - serializeBuf := bytes.NewBuffer(nil) - err = pk.Serialize(serializeBuf) - if err != nil { - t.Errorf("#%d: failed to serialize: %s", i, err) - continue - } - - packet, err = Read(serializeBuf) - if err != nil { - t.Errorf("#%d: Read error (from serialized data): %s", i, err) - continue - } - pk, ok = packet.(*PublicKey) - if !ok { - t.Errorf("#%d: failed to parse serialized data, got: %#v", i, packet) - continue - } - } -} - -func TestEcc384Serialize(t *testing.T) { - r := readerFromHex(ecc384PubHex) - var w bytes.Buffer - for i := 0; i < 2; i++ { - // Public key - p, err := Read(r) - if err != nil { - t.Error(err) - } - pubkey := p.(*PublicKey) - if !bytes.Equal(pubkey.ec.oid, []byte{0x2b, 0x81, 0x04, 0x00, 0x22}) { - t.Errorf("Unexpected pubkey OID: %x", pubkey.ec.oid) - } - if !bytes.Equal(pubkey.ec.p.bytes[:5], []byte{0x04, 0xf6, 0xb8, 0xc5, 0xac}) { - t.Errorf("Unexpected pubkey P[:5]: %x", pubkey.ec.p.bytes) - } - if pubkey.KeyId != 0x098033880F54719F { - t.Errorf("Unexpected pubkey ID: %x", pubkey.KeyId) - } - err = pubkey.Serialize(&w) - if err != nil { - t.Error(err) - } - // User ID - p, err = Read(r) - if err != nil { - t.Error(err) - } - uid := p.(*UserId) - if uid.Id != "ec_dsa_dh_384 <openpgp@brainhub.org>" { - t.Error("Unexpected UID:", uid.Id) - } - err = uid.Serialize(&w) - if err != nil { - t.Error(err) - } - // User ID Sig - p, err = Read(r) - if err != nil { - t.Error(err) - } - uidSig := p.(*Signature) - err = pubkey.VerifyUserIdSignature(uid.Id, pubkey, uidSig) - if err != nil { - t.Error(err, ": UID") - } - err = uidSig.Serialize(&w) - if err != nil { - t.Error(err) - } - // Subkey - p, err = Read(r) - if err != nil { - t.Error(err) - } - subkey := p.(*PublicKey) - if !bytes.Equal(subkey.ec.oid, []byte{0x2b, 0x81, 0x04, 0x00, 0x22}) { - t.Errorf("Unexpected subkey OID: %x", subkey.ec.oid) - } - if !bytes.Equal(subkey.ec.p.bytes[:5], []byte{0x04, 0x2f, 0xaa, 0x84, 0x02}) { - t.Errorf("Unexpected subkey P[:5]: %x", subkey.ec.p.bytes) - } - if subkey.ecdh.KdfHash != 0x09 { - t.Error("Expected KDF hash function SHA384 (0x09), got", subkey.ecdh.KdfHash) - } - if subkey.ecdh.KdfAlgo != 0x09 { - t.Error("Expected KDF symmetric alg AES256 (0x09), got", subkey.ecdh.KdfAlgo) - } - if subkey.KeyId != 0xAA8B938F9A201946 { - t.Errorf("Unexpected subkey ID: %x", subkey.KeyId) - } - err = subkey.Serialize(&w) - if err != nil { - t.Error(err) - } - // Subkey Sig - p, err = Read(r) - if err != nil { - t.Error(err) - } - subkeySig := p.(*Signature) - err = pubkey.VerifyKeySignature(subkey, subkeySig) - if err != nil { - t.Error(err) - } - err = subkeySig.Serialize(&w) - if err != nil { - t.Error(err) - } - // Now read back what we've written again - r = bytes.NewBuffer(w.Bytes()) - w.Reset() - } -} - -const rsaFingerprintHex = "5fb74b1d03b1e3cb31bc2f8aa34d7e18c20c31bb" - -const rsaPkDataHex = "988d044d3c5c10010400b1d13382944bd5aba23a4312968b5095d14f947f600eb478e14a6fcb16b0e0cac764884909c020bc495cfcc39a935387c661507bdb236a0612fb582cac3af9b29cc2c8c70090616c41b662f4da4c1201e195472eb7f4ae1ccbcbf9940fe21d985e379a5563dde5b9a23d35f1cfaa5790da3b79db26f23695107bfaca8e7b5bcd0011010001" - -const dsaFingerprintHex = "eece4c094db002103714c63c8e8fbe54062f19ed" - -const dsaPkDataHex = "9901a2044d432f89110400cd581334f0d7a1e1bdc8b9d6d8c0baf68793632735d2bb0903224cbaa1dfbf35a60ee7a13b92643421e1eb41aa8d79bea19a115a677f6b8ba3c7818ce53a6c2a24a1608bd8b8d6e55c5090cbde09dd26e356267465ae25e69ec8bdd57c7bbb2623e4d73336f73a0a9098f7f16da2e25252130fd694c0e8070c55a812a423ae7f00a0ebf50e70c2f19c3520a551bd4b08d30f23530d3d03ff7d0bf4a53a64a09dc5e6e6e35854b7d70c882b0c60293401958b1bd9e40abec3ea05ba87cf64899299d4bd6aa7f459c201d3fbbd6c82004bdc5e8a9eb8082d12054cc90fa9d4ec251a843236a588bf49552441817436c4f43326966fe85447d4e6d0acf8fa1ef0f014730770603ad7634c3088dc52501c237328417c31c89ed70400b2f1a98b0bf42f11fefc430704bebbaa41d9f355600c3facee1e490f64208e0e094ea55e3a598a219a58500bf78ac677b670a14f4e47e9cf8eab4f368cc1ddcaa18cc59309d4cc62dd4f680e73e6cc3e1ce87a84d0925efbcb26c575c093fc42eecf45135fabf6403a25c2016e1774c0484e440a18319072c617cc97ac0a3bb0" - -const ecdsaFingerprintHex = "9892270b38b8980b05c8d56d43fe956c542ca00b" - -const ecdsaPkDataHex = "9893045071c29413052b8104002304230401f4867769cedfa52c325018896245443968e52e51d0c2df8d939949cb5b330f2921711fbee1c9b9dddb95d15cb0255e99badeddda7cc23d9ddcaacbc290969b9f24019375d61c2e4e3b36953a28d8b2bc95f78c3f1d592fb24499be348656a7b17e3963187b4361afe497bc5f9f81213f04069f8e1fb9e6a6290ae295ca1a92b894396cb4" - -// Source: https://sites.google.com/site/brainhub/pgpecckeys#TOC-ECC-NIST-P-384-key -const ecc384PubHex = `99006f044d53059213052b81040022030304f6b8c5aced5b84ef9f4a209db2e4a9dfb70d28cb8c10ecd57674a9fa5a67389942b62d5e51367df4c7bfd3f8e500feecf07ed265a621a8ebbbe53e947ec78c677eba143bd1533c2b350e1c29f82313e1e1108eba063be1e64b10e6950e799c2db42465635f6473615f64685f333834203c6f70656e70677040627261696e6875622e6f72673e8900cb04101309005305024d530592301480000000002000077072656665727265642d656d61696c2d656e636f64696e67407067702e636f6d7067706d696d65040b090807021901051b03000000021602051e010000000415090a08000a0910098033880f54719fca2b0180aa37350968bd5f115afd8ce7bc7b103822152dbff06d0afcda835329510905b98cb469ba208faab87c7412b799e7b633017f58364ea480e8a1a3f253a0c5f22c446e8be9a9fce6210136ee30811abbd49139de28b5bdf8dc36d06ae748579e9ff503b90073044d53059212052b810400220303042faa84024a20b6735c4897efa5bfb41bf85b7eefeab5ca0cb9ffc8ea04a46acb25534a577694f9e25340a4ab5223a9dd1eda530c8aa2e6718db10d7e672558c7736fe09369ea5739a2a3554bf16d41faa50562f11c6d39bbd5dffb6b9a9ec9180301090989008404181309000c05024d530592051b0c000000000a0910098033880f54719f80970180eee7a6d8fcee41ee4f9289df17f9bcf9d955dca25c583b94336f3a2b2d4986dc5cf417b8d2dc86f741a9e1a6d236c0e3017d1c76575458a0cfb93ae8a2b274fcc65ceecd7a91eec83656ba13219969f06945b48c56bd04152c3a0553c5f2f4bd1267` diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key_v3.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key_v3.go deleted file mode 100644 index dba231d2..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key_v3.go +++ /dev/null @@ -1,280 +0,0 @@ -// 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 packet - -import ( - "crypto" - "crypto/md5" - "crypto/rsa" - "encoding/binary" - "fmt" - "hash" - "io" - "math/big" - "strconv" - "time" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" -) - -// PublicKeyV3 represents older, version 3 public keys. These keys are less secure and -// should not be used for signing or encrypting. They are supported here only for -// parsing version 3 key material and validating signatures. -// See RFC 4880, section 5.5.2. -type PublicKeyV3 struct { - CreationTime time.Time - DaysToExpire uint16 - PubKeyAlgo PublicKeyAlgorithm - PublicKey *rsa.PublicKey - Fingerprint [16]byte - KeyId uint64 - IsSubkey bool - - n, e parsedMPI -} - -// newRSAPublicKeyV3 returns a PublicKey that wraps the given rsa.PublicKey. -// Included here for testing purposes only. RFC 4880, section 5.5.2: -// "an implementation MUST NOT generate a V3 key, but MAY accept it." -func newRSAPublicKeyV3(creationTime time.Time, pub *rsa.PublicKey) *PublicKeyV3 { - pk := &PublicKeyV3{ - CreationTime: creationTime, - PublicKey: pub, - n: fromBig(pub.N), - e: fromBig(big.NewInt(int64(pub.E))), - } - - pk.setFingerPrintAndKeyId() - return pk -} - -func (pk *PublicKeyV3) parse(r io.Reader) (err error) { - // RFC 4880, section 5.5.2 - var buf [8]byte - if _, err = readFull(r, buf[:]); err != nil { - return - } - if buf[0] < 2 || buf[0] > 3 { - return errors.UnsupportedError("public key version") - } - pk.CreationTime = time.Unix(int64(uint32(buf[1])<<24|uint32(buf[2])<<16|uint32(buf[3])<<8|uint32(buf[4])), 0) - pk.DaysToExpire = binary.BigEndian.Uint16(buf[5:7]) - pk.PubKeyAlgo = PublicKeyAlgorithm(buf[7]) - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - err = pk.parseRSA(r) - default: - err = errors.UnsupportedError("public key type: " + strconv.Itoa(int(pk.PubKeyAlgo))) - } - if err != nil { - return - } - - pk.setFingerPrintAndKeyId() - return -} - -func (pk *PublicKeyV3) setFingerPrintAndKeyId() { - // RFC 4880, section 12.2 - fingerPrint := md5.New() - fingerPrint.Write(pk.n.bytes) - fingerPrint.Write(pk.e.bytes) - fingerPrint.Sum(pk.Fingerprint[:0]) - pk.KeyId = binary.BigEndian.Uint64(pk.n.bytes[len(pk.n.bytes)-8:]) -} - -// parseRSA parses RSA public key material from the given Reader. See RFC 4880, -// section 5.5.2. -func (pk *PublicKeyV3) parseRSA(r io.Reader) (err error) { - if pk.n.bytes, pk.n.bitLength, err = readMPI(r); err != nil { - return - } - if pk.e.bytes, pk.e.bitLength, err = readMPI(r); err != nil { - return - } - - // RFC 4880 Section 12.2 requires the low 8 bytes of the - // modulus to form the key id. - if len(pk.n.bytes) < 8 { - return errors.StructuralError("v3 public key modulus is too short") - } - if len(pk.e.bytes) > 3 { - err = errors.UnsupportedError("large public exponent") - return - } - rsa := &rsa.PublicKey{N: new(big.Int).SetBytes(pk.n.bytes)} - for i := 0; i < len(pk.e.bytes); i++ { - rsa.E <<= 8 - rsa.E |= int(pk.e.bytes[i]) - } - pk.PublicKey = rsa - return -} - -// SerializeSignaturePrefix writes the prefix for this public key to the given Writer. -// The prefix is used when calculating a signature over this public key. See -// RFC 4880, section 5.2.4. -func (pk *PublicKeyV3) SerializeSignaturePrefix(w io.Writer) { - var pLength uint16 - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - pLength += 2 + uint16(len(pk.n.bytes)) - pLength += 2 + uint16(len(pk.e.bytes)) - default: - panic("unknown public key algorithm") - } - pLength += 6 - w.Write([]byte{0x99, byte(pLength >> 8), byte(pLength)}) - return -} - -func (pk *PublicKeyV3) Serialize(w io.Writer) (err error) { - length := 8 // 8 byte header - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - length += 2 + len(pk.n.bytes) - length += 2 + len(pk.e.bytes) - default: - panic("unknown public key algorithm") - } - - packetType := packetTypePublicKey - if pk.IsSubkey { - packetType = packetTypePublicSubkey - } - if err = serializeHeader(w, packetType, length); err != nil { - return - } - return pk.serializeWithoutHeaders(w) -} - -// serializeWithoutHeaders marshals the PublicKey to w in the form of an -// OpenPGP public key packet, not including the packet header. -func (pk *PublicKeyV3) serializeWithoutHeaders(w io.Writer) (err error) { - var buf [8]byte - // Version 3 - buf[0] = 3 - // Creation time - t := uint32(pk.CreationTime.Unix()) - buf[1] = byte(t >> 24) - buf[2] = byte(t >> 16) - buf[3] = byte(t >> 8) - buf[4] = byte(t) - // Days to expire - buf[5] = byte(pk.DaysToExpire >> 8) - buf[6] = byte(pk.DaysToExpire) - // Public key algorithm - buf[7] = byte(pk.PubKeyAlgo) - - if _, err = w.Write(buf[:]); err != nil { - return - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - return writeMPIs(w, pk.n, pk.e) - } - return errors.InvalidArgumentError("bad public-key algorithm") -} - -// CanSign returns true iff this public key can generate signatures -func (pk *PublicKeyV3) CanSign() bool { - return pk.PubKeyAlgo != PubKeyAlgoRSAEncryptOnly -} - -// VerifySignatureV3 returns nil iff sig is a valid signature, made by this -// public key, of the data hashed into signed. signed is mutated by this call. -func (pk *PublicKeyV3) VerifySignatureV3(signed hash.Hash, sig *SignatureV3) (err error) { - if !pk.CanSign() { - return errors.InvalidArgumentError("public key cannot generate signatures") - } - - suffix := make([]byte, 5) - suffix[0] = byte(sig.SigType) - binary.BigEndian.PutUint32(suffix[1:], uint32(sig.CreationTime.Unix())) - signed.Write(suffix) - hashBytes := signed.Sum(nil) - - if hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1] { - return errors.SignatureError("hash tag doesn't match") - } - - if pk.PubKeyAlgo != sig.PubKeyAlgo { - return errors.InvalidArgumentError("public key and signature use different algorithms") - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - if err = rsa.VerifyPKCS1v15(pk.PublicKey, sig.Hash, hashBytes, sig.RSASignature.bytes); err != nil { - return errors.SignatureError("RSA verification failure") - } - return - default: - // V3 public keys only support RSA. - panic("shouldn't happen") - } - panic("unreachable") -} - -// VerifyUserIdSignatureV3 returns nil iff sig is a valid signature, made by this -// public key, that id is the identity of pub. -func (pk *PublicKeyV3) VerifyUserIdSignatureV3(id string, pub *PublicKeyV3, sig *SignatureV3) (err error) { - h, err := userIdSignatureV3Hash(id, pk, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignatureV3(h, sig) -} - -// VerifyKeySignatureV3 returns nil iff sig is a valid signature, made by this -// public key, of signed. -func (pk *PublicKeyV3) VerifyKeySignatureV3(signed *PublicKeyV3, sig *SignatureV3) (err error) { - h, err := keySignatureHash(pk, signed, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignatureV3(h, sig) -} - -// userIdSignatureV3Hash returns a Hash of the message that needs to be signed -// to assert that pk is a valid key for id. -func userIdSignatureV3Hash(id string, pk signingKey, hfn crypto.Hash) (h hash.Hash, err error) { - if !hfn.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hfn.New() - - // RFC 4880, section 5.2.4 - pk.SerializeSignaturePrefix(h) - pk.serializeWithoutHeaders(h) - - h.Write([]byte(id)) - - return -} - -// KeyIdString returns the public key's fingerprint in capital hex -// (e.g. "6C7EE1B8621CC013"). -func (pk *PublicKeyV3) KeyIdString() string { - return fmt.Sprintf("%X", pk.KeyId) -} - -// KeyIdShortString returns the short form of public key's fingerprint -// in capital hex, as shown by gpg --list-keys (e.g. "621CC013"). -func (pk *PublicKeyV3) KeyIdShortString() string { - return fmt.Sprintf("%X", pk.KeyId&0xFFFFFFFF) -} - -// BitLength returns the bit length for the given public key. -func (pk *PublicKeyV3) BitLength() (bitLength uint16, err error) { - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - bitLength = pk.n.bitLength - default: - err = errors.InvalidArgumentError("bad public-key algorithm") - } - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key_v3_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key_v3_test.go deleted file mode 100644 index e0640590..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/public_key_v3_test.go +++ /dev/null @@ -1,82 +0,0 @@ -// 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 packet - -import ( - "bytes" - "encoding/hex" - "testing" - "time" -) - -var pubKeyV3Test = struct { - hexFingerprint string - creationTime time.Time - pubKeyAlgo PublicKeyAlgorithm - keyId uint64 - keyIdString string - keyIdShort string -}{ - "103BECF5BD1E837C89D19E98487767F7", - time.Unix(779753634, 0), - PubKeyAlgoRSA, - 0xDE0F188A5DA5E3C9, - "DE0F188A5DA5E3C9", - "5DA5E3C9"} - -func TestPublicKeyV3Read(t *testing.T) { - i, test := 0, pubKeyV3Test - packet, err := Read(v3KeyReader(t)) - if err != nil { - t.Fatalf("#%d: Read error: %s", i, err) - } - pk, ok := packet.(*PublicKeyV3) - if !ok { - t.Fatalf("#%d: failed to parse, got: %#v", i, packet) - } - if pk.PubKeyAlgo != test.pubKeyAlgo { - t.Errorf("#%d: bad public key algorithm got:%x want:%x", i, pk.PubKeyAlgo, test.pubKeyAlgo) - } - if !pk.CreationTime.Equal(test.creationTime) { - t.Errorf("#%d: bad creation time got:%v want:%v", i, pk.CreationTime, test.creationTime) - } - expectedFingerprint, _ := hex.DecodeString(test.hexFingerprint) - if !bytes.Equal(expectedFingerprint, pk.Fingerprint[:]) { - t.Errorf("#%d: bad fingerprint got:%x want:%x", i, pk.Fingerprint[:], expectedFingerprint) - } - if pk.KeyId != test.keyId { - t.Errorf("#%d: bad keyid got:%x want:%x", i, pk.KeyId, test.keyId) - } - if g, e := pk.KeyIdString(), test.keyIdString; g != e { - t.Errorf("#%d: bad KeyIdString got:%q want:%q", i, g, e) - } - if g, e := pk.KeyIdShortString(), test.keyIdShort; g != e { - t.Errorf("#%d: bad KeyIdShortString got:%q want:%q", i, g, e) - } -} - -func TestPublicKeyV3Serialize(t *testing.T) { - //for i, test := range pubKeyV3Tests { - i := 0 - packet, err := Read(v3KeyReader(t)) - if err != nil { - t.Fatalf("#%d: Read error: %s", i, err) - } - pk, ok := packet.(*PublicKeyV3) - if !ok { - t.Fatalf("#%d: failed to parse, got: %#v", i, packet) - } - var serializeBuf bytes.Buffer - if err = pk.Serialize(&serializeBuf); err != nil { - t.Fatalf("#%d: failed to serialize: %s", i, err) - } - - if packet, err = Read(bytes.NewBuffer(serializeBuf.Bytes())); err != nil { - t.Fatalf("#%d: Read error (from serialized data): %s", i, err) - } - if pk, ok = packet.(*PublicKeyV3); !ok { - t.Fatalf("#%d: failed to parse serialized data, got: %#v", i, packet) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/reader.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/reader.go deleted file mode 100644 index 0b899632..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/reader.go +++ /dev/null @@ -1,76 +0,0 @@ -// 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 packet - -import ( - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "io" -) - -// Reader reads packets from an io.Reader and allows packets to be 'unread' so -// that they result from the next call to Next. -type Reader struct { - q []Packet - readers []io.Reader -} - -// New io.Readers are pushed when a compressed or encrypted packet is processed -// and recursively treated as a new source of packets. However, a carefully -// crafted packet can trigger an infinite recursive sequence of packets. See -// http://mumble.net/~campbell/misc/pgp-quine -// https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-4402 -// This constant limits the number of recursive packets that may be pushed. -const maxReaders = 32 - -// Next returns the most recently unread Packet, or reads another packet from -// the top-most io.Reader. Unknown packet types are skipped. -func (r *Reader) Next() (p Packet, err error) { - if len(r.q) > 0 { - p = r.q[len(r.q)-1] - r.q = r.q[:len(r.q)-1] - return - } - - for len(r.readers) > 0 { - p, err = Read(r.readers[len(r.readers)-1]) - if err == nil { - return - } - if err == io.EOF { - r.readers = r.readers[:len(r.readers)-1] - continue - } - if _, ok := err.(errors.UnknownPacketTypeError); !ok { - return nil, err - } - } - - return nil, io.EOF -} - -// Push causes the Reader to start reading from a new io.Reader. When an EOF -// error is seen from the new io.Reader, it is popped and the Reader continues -// to read from the next most recent io.Reader. Push returns a StructuralError -// if pushing the reader would exceed the maximum recursion level, otherwise it -// returns nil. -func (r *Reader) Push(reader io.Reader) (err error) { - if len(r.readers) >= maxReaders { - return errors.StructuralError("too many layers of packets") - } - r.readers = append(r.readers, reader) - return nil -} - -// Unread causes the given Packet to be returned from the next call to Next. -func (r *Reader) Unread(p Packet) { - r.q = append(r.q, p) -} - -func NewReader(r io.Reader) *Reader { - return &Reader{ - q: nil, - readers: []io.Reader{r}, - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature.go deleted file mode 100644 index 6ed03667..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature.go +++ /dev/null @@ -1,699 +0,0 @@ -// 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 packet - -import ( - "bytes" - "crypto" - "crypto/dsa" - "crypto/rsa" - "encoding/binary" - "hash" - "io" - "strconv" - "time" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k" -) - -const ( - // See RFC 4880, section 5.2.3.21 for details. - KeyFlagCertify = 1 << iota - KeyFlagSign - KeyFlagEncryptCommunications - KeyFlagEncryptStorage -) - -// Signature represents a signature. See RFC 4880, section 5.2. -type Signature struct { - SigType SignatureType - PubKeyAlgo PublicKeyAlgorithm - Hash crypto.Hash - - // HashSuffix is extra data that is hashed in after the signed data. - HashSuffix []byte - // HashTag contains the first two bytes of the hash for fast rejection - // of bad signed data. - HashTag [2]byte - CreationTime time.Time - - RSASignature parsedMPI - DSASigR, DSASigS parsedMPI - ECDSASigR, ECDSASigS parsedMPI - - // rawSubpackets contains the unparsed subpackets, in order. - rawSubpackets []outputSubpacket - - // The following are optional so are nil when not included in the - // signature. - - SigLifetimeSecs, KeyLifetimeSecs *uint32 - PreferredSymmetric, PreferredHash, PreferredCompression []uint8 - IssuerKeyId *uint64 - IsPrimaryId *bool - - // FlagsValid is set if any flags were given. See RFC 4880, section - // 5.2.3.21 for details. - FlagsValid bool - FlagCertify, FlagSign, FlagEncryptCommunications, FlagEncryptStorage bool - - // RevocationReason is set if this signature has been revoked. - // See RFC 4880, section 5.2.3.23 for details. - RevocationReason *uint8 - RevocationReasonText string - - // MDC is set if this signature has a feature packet that indicates - // support for MDC subpackets. - MDC bool - - // EmbeddedSignature, if non-nil, is a signature of the parent key, by - // this key. This prevents an attacker from claiming another's signing - // subkey as their own. - EmbeddedSignature *Signature - - outSubpackets []outputSubpacket -} - -func (sig *Signature) parse(r io.Reader) (err error) { - // RFC 4880, section 5.2.3 - var buf [5]byte - _, err = readFull(r, buf[:1]) - if err != nil { - return - } - if buf[0] != 4 { - err = errors.UnsupportedError("signature packet version " + strconv.Itoa(int(buf[0]))) - return - } - - _, err = readFull(r, buf[:5]) - if err != nil { - return - } - sig.SigType = SignatureType(buf[0]) - sig.PubKeyAlgo = PublicKeyAlgorithm(buf[1]) - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA, PubKeyAlgoECDSA: - default: - err = errors.UnsupportedError("public key algorithm " + strconv.Itoa(int(sig.PubKeyAlgo))) - return - } - - var ok bool - sig.Hash, ok = s2k.HashIdToHash(buf[2]) - if !ok { - return errors.UnsupportedError("hash function " + strconv.Itoa(int(buf[2]))) - } - - hashedSubpacketsLength := int(buf[3])<<8 | int(buf[4]) - l := 6 + hashedSubpacketsLength - sig.HashSuffix = make([]byte, l+6) - sig.HashSuffix[0] = 4 - copy(sig.HashSuffix[1:], buf[:5]) - hashedSubpackets := sig.HashSuffix[6:l] - _, err = readFull(r, hashedSubpackets) - if err != nil { - return - } - // See RFC 4880, section 5.2.4 - trailer := sig.HashSuffix[l:] - trailer[0] = 4 - trailer[1] = 0xff - trailer[2] = uint8(l >> 24) - trailer[3] = uint8(l >> 16) - trailer[4] = uint8(l >> 8) - trailer[5] = uint8(l) - - err = parseSignatureSubpackets(sig, hashedSubpackets, true) - if err != nil { - return - } - - _, err = readFull(r, buf[:2]) - if err != nil { - return - } - unhashedSubpacketsLength := int(buf[0])<<8 | int(buf[1]) - unhashedSubpackets := make([]byte, unhashedSubpacketsLength) - _, err = readFull(r, unhashedSubpackets) - if err != nil { - return - } - err = parseSignatureSubpackets(sig, unhashedSubpackets, false) - if err != nil { - return - } - - _, err = readFull(r, sig.HashTag[:2]) - if err != nil { - return - } - - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - sig.RSASignature.bytes, sig.RSASignature.bitLength, err = readMPI(r) - case PubKeyAlgoDSA: - sig.DSASigR.bytes, sig.DSASigR.bitLength, err = readMPI(r) - if err == nil { - sig.DSASigS.bytes, sig.DSASigS.bitLength, err = readMPI(r) - } - case PubKeyAlgoECDSA: - sig.ECDSASigR.bytes, sig.ECDSASigR.bitLength, err = readMPI(r) - if err == nil { - sig.ECDSASigS.bytes, sig.ECDSASigS.bitLength, err = readMPI(r) - } - default: - panic("unreachable") - } - return -} - -// parseSignatureSubpackets parses subpackets of the main signature packet. See -// RFC 4880, section 5.2.3.1. -func parseSignatureSubpackets(sig *Signature, subpackets []byte, isHashed bool) (err error) { - for len(subpackets) > 0 { - subpackets, err = parseSignatureSubpacket(sig, subpackets, isHashed) - if err != nil { - return - } - } - - if sig.CreationTime.IsZero() { - err = errors.StructuralError("no creation time in signature") - } - - return -} - -type signatureSubpacketType uint8 - -const ( - creationTimeSubpacket signatureSubpacketType = 2 - signatureExpirationSubpacket signatureSubpacketType = 3 - keyExpirationSubpacket signatureSubpacketType = 9 - prefSymmetricAlgosSubpacket signatureSubpacketType = 11 - issuerSubpacket signatureSubpacketType = 16 - prefHashAlgosSubpacket signatureSubpacketType = 21 - prefCompressionSubpacket signatureSubpacketType = 22 - primaryUserIdSubpacket signatureSubpacketType = 25 - keyFlagsSubpacket signatureSubpacketType = 27 - reasonForRevocationSubpacket signatureSubpacketType = 29 - featuresSubpacket signatureSubpacketType = 30 - embeddedSignatureSubpacket signatureSubpacketType = 32 -) - -// parseSignatureSubpacket parses a single subpacket. len(subpacket) is >= 1. -func parseSignatureSubpacket(sig *Signature, subpacket []byte, isHashed bool) (rest []byte, err error) { - // RFC 4880, section 5.2.3.1 - var ( - length uint32 - packetType signatureSubpacketType - isCritical bool - ) - switch { - case subpacket[0] < 192: - length = uint32(subpacket[0]) - subpacket = subpacket[1:] - case subpacket[0] < 255: - if len(subpacket) < 2 { - goto Truncated - } - length = uint32(subpacket[0]-192)<<8 + uint32(subpacket[1]) + 192 - subpacket = subpacket[2:] - default: - if len(subpacket) < 5 { - goto Truncated - } - length = uint32(subpacket[1])<<24 | - uint32(subpacket[2])<<16 | - uint32(subpacket[3])<<8 | - uint32(subpacket[4]) - subpacket = subpacket[5:] - } - if length > uint32(len(subpacket)) { - goto Truncated - } - rest = subpacket[length:] - subpacket = subpacket[:length] - if len(subpacket) == 0 { - err = errors.StructuralError("zero length signature subpacket") - return - } - packetType = signatureSubpacketType(subpacket[0] & 0x7f) - isCritical = subpacket[0]&0x80 == 0x80 - subpacket = subpacket[1:] - sig.rawSubpackets = append(sig.rawSubpackets, outputSubpacket{isHashed, packetType, isCritical, subpacket}) - switch packetType { - case creationTimeSubpacket: - if !isHashed { - err = errors.StructuralError("signature creation time in non-hashed area") - return - } - if len(subpacket) != 4 { - err = errors.StructuralError("signature creation time not four bytes") - return - } - t := binary.BigEndian.Uint32(subpacket) - sig.CreationTime = time.Unix(int64(t), 0) - case signatureExpirationSubpacket: - // Signature expiration time, section 5.2.3.10 - if !isHashed { - return - } - if len(subpacket) != 4 { - err = errors.StructuralError("expiration subpacket with bad length") - return - } - sig.SigLifetimeSecs = new(uint32) - *sig.SigLifetimeSecs = binary.BigEndian.Uint32(subpacket) - case keyExpirationSubpacket: - // Key expiration time, section 5.2.3.6 - if !isHashed { - return - } - if len(subpacket) != 4 { - err = errors.StructuralError("key expiration subpacket with bad length") - return - } - sig.KeyLifetimeSecs = new(uint32) - *sig.KeyLifetimeSecs = binary.BigEndian.Uint32(subpacket) - case prefSymmetricAlgosSubpacket: - // Preferred symmetric algorithms, section 5.2.3.7 - if !isHashed { - return - } - sig.PreferredSymmetric = make([]byte, len(subpacket)) - copy(sig.PreferredSymmetric, subpacket) - case issuerSubpacket: - // Issuer, section 5.2.3.5 - if len(subpacket) != 8 { - err = errors.StructuralError("issuer subpacket with bad length") - return - } - sig.IssuerKeyId = new(uint64) - *sig.IssuerKeyId = binary.BigEndian.Uint64(subpacket) - case prefHashAlgosSubpacket: - // Preferred hash algorithms, section 5.2.3.8 - if !isHashed { - return - } - sig.PreferredHash = make([]byte, len(subpacket)) - copy(sig.PreferredHash, subpacket) - case prefCompressionSubpacket: - // Preferred compression algorithms, section 5.2.3.9 - if !isHashed { - return - } - sig.PreferredCompression = make([]byte, len(subpacket)) - copy(sig.PreferredCompression, subpacket) - case primaryUserIdSubpacket: - // Primary User ID, section 5.2.3.19 - if !isHashed { - return - } - if len(subpacket) != 1 { - err = errors.StructuralError("primary user id subpacket with bad length") - return - } - sig.IsPrimaryId = new(bool) - if subpacket[0] > 0 { - *sig.IsPrimaryId = true - } - case keyFlagsSubpacket: - // Key flags, section 5.2.3.21 - if !isHashed { - return - } - if len(subpacket) == 0 { - err = errors.StructuralError("empty key flags subpacket") - return - } - sig.FlagsValid = true - if subpacket[0]&KeyFlagCertify != 0 { - sig.FlagCertify = true - } - if subpacket[0]&KeyFlagSign != 0 { - sig.FlagSign = true - } - if subpacket[0]&KeyFlagEncryptCommunications != 0 { - sig.FlagEncryptCommunications = true - } - if subpacket[0]&KeyFlagEncryptStorage != 0 { - sig.FlagEncryptStorage = true - } - case reasonForRevocationSubpacket: - // Reason For Revocation, section 5.2.3.23 - if !isHashed { - return - } - if len(subpacket) == 0 { - err = errors.StructuralError("empty revocation reason subpacket") - return - } - sig.RevocationReason = new(uint8) - *sig.RevocationReason = subpacket[0] - sig.RevocationReasonText = string(subpacket[1:]) - case featuresSubpacket: - // Features subpacket, section 5.2.3.24 specifies a very general - // mechanism for OpenPGP implementations to signal support for new - // features. In practice, the subpacket is used exclusively to - // indicate support for MDC-protected encryption. - sig.MDC = len(subpacket) >= 1 && subpacket[0]&1 == 1 - case embeddedSignatureSubpacket: - // Only usage is in signatures that cross-certify - // signing subkeys. section 5.2.3.26 describes the - // format, with its usage described in section 11.1 - if sig.EmbeddedSignature != nil { - err = errors.StructuralError("Cannot have multiple embedded signatures") - return - } - sig.EmbeddedSignature = new(Signature) - // Embedded signatures are required to be v4 signatures see - // section 12.1. However, we only parse v4 signatures in this - // file anyway. - if err := sig.EmbeddedSignature.parse(bytes.NewBuffer(subpacket)); err != nil { - return nil, err - } - if sigType := sig.EmbeddedSignature.SigType; sigType != SigTypePrimaryKeyBinding { - return nil, errors.StructuralError("cross-signature has unexpected type " + strconv.Itoa(int(sigType))) - } - default: - if isCritical { - err = errors.UnsupportedError("unknown critical signature subpacket type " + strconv.Itoa(int(packetType))) - return - } - } - return - -Truncated: - err = errors.StructuralError("signature subpacket truncated") - return -} - -// subpacketLengthLength returns the length, in bytes, of an encoded length value. -func subpacketLengthLength(length int) int { - if length < 192 { - return 1 - } - if length < 16320 { - return 2 - } - return 5 -} - -// serializeSubpacketLength marshals the given length into to. -func serializeSubpacketLength(to []byte, length int) int { - // RFC 4880, Section 4.2.2. - if length < 192 { - to[0] = byte(length) - return 1 - } - if length < 16320 { - length -= 192 - to[0] = byte((length >> 8) + 192) - to[1] = byte(length) - return 2 - } - to[0] = 255 - to[1] = byte(length >> 24) - to[2] = byte(length >> 16) - to[3] = byte(length >> 8) - to[4] = byte(length) - return 5 -} - -// subpacketsLength returns the serialized length, in bytes, of the given -// subpackets. -func subpacketsLength(subpackets []outputSubpacket, hashed bool) (length int) { - for _, subpacket := range subpackets { - if subpacket.hashed == hashed { - length += subpacketLengthLength(len(subpacket.contents) + 1) - length += 1 // type byte - length += len(subpacket.contents) - } - } - return -} - -// serializeSubpackets marshals the given subpackets into to. -func serializeSubpackets(to []byte, subpackets []outputSubpacket, hashed bool) { - for _, subpacket := range subpackets { - if subpacket.hashed == hashed { - n := serializeSubpacketLength(to, len(subpacket.contents)+1) - to[n] = byte(subpacket.subpacketType) - to = to[1+n:] - n = copy(to, subpacket.contents) - to = to[n:] - } - } - return -} - -// KeyExpired returns whether sig is a self-signature of a key that has -// expired. -func (sig *Signature) KeyExpired(currentTime time.Time) bool { - if sig.KeyLifetimeSecs == nil { - return false - } - expiry := sig.CreationTime.Add(time.Duration(*sig.KeyLifetimeSecs) * time.Second) - return currentTime.After(expiry) -} - -// buildHashSuffix constructs the HashSuffix member of sig in preparation for signing. -func (sig *Signature) buildHashSuffix() (err error) { - hashedSubpacketsLen := subpacketsLength(sig.outSubpackets, true) - - var ok bool - l := 6 + hashedSubpacketsLen - sig.HashSuffix = make([]byte, l+6) - sig.HashSuffix[0] = 4 - sig.HashSuffix[1] = uint8(sig.SigType) - sig.HashSuffix[2] = uint8(sig.PubKeyAlgo) - sig.HashSuffix[3], ok = s2k.HashToHashId(sig.Hash) - if !ok { - sig.HashSuffix = nil - return errors.InvalidArgumentError("hash cannot be represented in OpenPGP: " + strconv.Itoa(int(sig.Hash))) - } - sig.HashSuffix[4] = byte(hashedSubpacketsLen >> 8) - sig.HashSuffix[5] = byte(hashedSubpacketsLen) - serializeSubpackets(sig.HashSuffix[6:l], sig.outSubpackets, true) - trailer := sig.HashSuffix[l:] - trailer[0] = 4 - trailer[1] = 0xff - trailer[2] = byte(l >> 24) - trailer[3] = byte(l >> 16) - trailer[4] = byte(l >> 8) - trailer[5] = byte(l) - return -} - -func (sig *Signature) signPrepareHash(h hash.Hash) (digest []byte, err error) { - err = sig.buildHashSuffix() - if err != nil { - return - } - - h.Write(sig.HashSuffix) - digest = h.Sum(nil) - copy(sig.HashTag[:], digest) - return -} - -// Sign signs a message with a private key. The hash, h, must contain -// the hash of the message to be signed and will be mutated by this function. -// On success, the signature is stored in sig. Call Serialize to write it out. -// If config is nil, sensible defaults will be used. -func (sig *Signature) Sign(h hash.Hash, priv *PrivateKey, config *Config) (err error) { - sig.outSubpackets = sig.buildSubpackets() - digest, err := sig.signPrepareHash(h) - if err != nil { - return - } - - switch priv.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - sig.RSASignature.bytes, err = rsa.SignPKCS1v15(config.Random(), priv.PrivateKey.(*rsa.PrivateKey), sig.Hash, digest) - sig.RSASignature.bitLength = uint16(8 * len(sig.RSASignature.bytes)) - case PubKeyAlgoDSA: - dsaPriv := priv.PrivateKey.(*dsa.PrivateKey) - - // Need to truncate hashBytes to match FIPS 186-3 section 4.6. - subgroupSize := (dsaPriv.Q.BitLen() + 7) / 8 - if len(digest) > subgroupSize { - digest = digest[:subgroupSize] - } - r, s, err := dsa.Sign(config.Random(), dsaPriv, digest) - if err == nil { - sig.DSASigR.bytes = r.Bytes() - sig.DSASigR.bitLength = uint16(8 * len(sig.DSASigR.bytes)) - sig.DSASigS.bytes = s.Bytes() - sig.DSASigS.bitLength = uint16(8 * len(sig.DSASigS.bytes)) - } - default: - err = errors.UnsupportedError("public key algorithm: " + strconv.Itoa(int(sig.PubKeyAlgo))) - } - - return -} - -// SignUserId computes a signature from priv, asserting that pub is a valid -// key for the identity id. On success, the signature is stored in sig. Call -// Serialize to write it out. -// If config is nil, sensible defaults will be used. -func (sig *Signature) SignUserId(id string, pub *PublicKey, priv *PrivateKey, config *Config) error { - h, err := userIdSignatureHash(id, pub, sig.Hash) - if err != nil { - return nil - } - return sig.Sign(h, priv, config) -} - -// SignKey computes a signature from priv, asserting that pub is a subkey. On -// success, the signature is stored in sig. Call Serialize to write it out. -// If config is nil, sensible defaults will be used. -func (sig *Signature) SignKey(pub *PublicKey, priv *PrivateKey, config *Config) error { - h, err := keySignatureHash(&priv.PublicKey, pub, sig.Hash) - if err != nil { - return err - } - return sig.Sign(h, priv, config) -} - -// Serialize marshals sig to w. Sign, SignUserId or SignKey must have been -// called first. -func (sig *Signature) Serialize(w io.Writer) (err error) { - if len(sig.outSubpackets) == 0 { - sig.outSubpackets = sig.rawSubpackets - } - if sig.RSASignature.bytes == nil && sig.DSASigR.bytes == nil && sig.ECDSASigR.bytes == nil { - return errors.InvalidArgumentError("Signature: need to call Sign, SignUserId or SignKey before Serialize") - } - - sigLength := 0 - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - sigLength = 2 + len(sig.RSASignature.bytes) - case PubKeyAlgoDSA: - sigLength = 2 + len(sig.DSASigR.bytes) - sigLength += 2 + len(sig.DSASigS.bytes) - case PubKeyAlgoECDSA: - sigLength = 2 + len(sig.ECDSASigR.bytes) - sigLength += 2 + len(sig.ECDSASigS.bytes) - default: - panic("impossible") - } - - unhashedSubpacketsLen := subpacketsLength(sig.outSubpackets, false) - length := len(sig.HashSuffix) - 6 /* trailer not included */ + - 2 /* length of unhashed subpackets */ + unhashedSubpacketsLen + - 2 /* hash tag */ + sigLength - err = serializeHeader(w, packetTypeSignature, length) - if err != nil { - return - } - - _, err = w.Write(sig.HashSuffix[:len(sig.HashSuffix)-6]) - if err != nil { - return - } - - unhashedSubpackets := make([]byte, 2+unhashedSubpacketsLen) - unhashedSubpackets[0] = byte(unhashedSubpacketsLen >> 8) - unhashedSubpackets[1] = byte(unhashedSubpacketsLen) - serializeSubpackets(unhashedSubpackets[2:], sig.outSubpackets, false) - - _, err = w.Write(unhashedSubpackets) - if err != nil { - return - } - _, err = w.Write(sig.HashTag[:]) - if err != nil { - return - } - - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - err = writeMPIs(w, sig.RSASignature) - case PubKeyAlgoDSA: - err = writeMPIs(w, sig.DSASigR, sig.DSASigS) - case PubKeyAlgoECDSA: - err = writeMPIs(w, sig.ECDSASigR, sig.ECDSASigS) - default: - panic("impossible") - } - return -} - -// outputSubpacket represents a subpacket to be marshaled. -type outputSubpacket struct { - hashed bool // true if this subpacket is in the hashed area. - subpacketType signatureSubpacketType - isCritical bool - contents []byte -} - -func (sig *Signature) buildSubpackets() (subpackets []outputSubpacket) { - creationTime := make([]byte, 4) - binary.BigEndian.PutUint32(creationTime, uint32(sig.CreationTime.Unix())) - subpackets = append(subpackets, outputSubpacket{true, creationTimeSubpacket, false, creationTime}) - - if sig.IssuerKeyId != nil { - keyId := make([]byte, 8) - binary.BigEndian.PutUint64(keyId, *sig.IssuerKeyId) - subpackets = append(subpackets, outputSubpacket{true, issuerSubpacket, false, keyId}) - } - - if sig.SigLifetimeSecs != nil && *sig.SigLifetimeSecs != 0 { - sigLifetime := make([]byte, 4) - binary.BigEndian.PutUint32(sigLifetime, *sig.SigLifetimeSecs) - subpackets = append(subpackets, outputSubpacket{true, signatureExpirationSubpacket, true, sigLifetime}) - } - - // Key flags may only appear in self-signatures or certification signatures. - - if sig.FlagsValid { - var flags byte - if sig.FlagCertify { - flags |= KeyFlagCertify - } - if sig.FlagSign { - flags |= KeyFlagSign - } - if sig.FlagEncryptCommunications { - flags |= KeyFlagEncryptCommunications - } - if sig.FlagEncryptStorage { - flags |= KeyFlagEncryptStorage - } - subpackets = append(subpackets, outputSubpacket{true, keyFlagsSubpacket, false, []byte{flags}}) - } - - // The following subpackets may only appear in self-signatures - - if sig.KeyLifetimeSecs != nil && *sig.KeyLifetimeSecs != 0 { - keyLifetime := make([]byte, 4) - binary.BigEndian.PutUint32(keyLifetime, *sig.KeyLifetimeSecs) - subpackets = append(subpackets, outputSubpacket{true, keyExpirationSubpacket, true, keyLifetime}) - } - - if sig.IsPrimaryId != nil && *sig.IsPrimaryId { - subpackets = append(subpackets, outputSubpacket{true, primaryUserIdSubpacket, false, []byte{1}}) - } - - if len(sig.PreferredSymmetric) > 0 { - subpackets = append(subpackets, outputSubpacket{true, prefSymmetricAlgosSubpacket, false, sig.PreferredSymmetric}) - } - - if len(sig.PreferredHash) > 0 { - subpackets = append(subpackets, outputSubpacket{true, prefHashAlgosSubpacket, false, sig.PreferredHash}) - } - - if len(sig.PreferredCompression) > 0 { - subpackets = append(subpackets, outputSubpacket{true, prefCompressionSubpacket, false, sig.PreferredCompression}) - } - - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature_test.go deleted file mode 100644 index c1bbde8b..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature_test.go +++ /dev/null @@ -1,42 +0,0 @@ -// 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 packet - -import ( - "bytes" - "crypto" - "encoding/hex" - "testing" -) - -func TestSignatureRead(t *testing.T) { - packet, err := Read(readerFromHex(signatureDataHex)) - if err != nil { - t.Error(err) - return - } - sig, ok := packet.(*Signature) - if !ok || sig.SigType != SigTypeBinary || sig.PubKeyAlgo != PubKeyAlgoRSA || sig.Hash != crypto.SHA1 { - t.Errorf("failed to parse, got: %#v", packet) - } -} - -func TestSignatureReserialize(t *testing.T) { - packet, _ := Read(readerFromHex(signatureDataHex)) - sig := packet.(*Signature) - out := new(bytes.Buffer) - err := sig.Serialize(out) - if err != nil { - t.Errorf("error reserializing: %s", err) - return - } - - expected, _ := hex.DecodeString(signatureDataHex) - if !bytes.Equal(expected, out.Bytes()) { - t.Errorf("output doesn't match input (got vs expected):\n%s\n%s", hex.Dump(out.Bytes()), hex.Dump(expected)) - } -} - -const signatureDataHex = "c2c05c04000102000605024cb45112000a0910ab105c91af38fb158f8d07ff5596ea368c5efe015bed6e78348c0f033c931d5f2ce5db54ce7f2a7e4b4ad64db758d65a7a71773edeab7ba2a9e0908e6a94a1175edd86c1d843279f045b021a6971a72702fcbd650efc393c5474d5b59a15f96d2eaad4c4c426797e0dcca2803ef41c6ff234d403eec38f31d610c344c06f2401c262f0993b2e66cad8a81ebc4322c723e0d4ba09fe917e8777658307ad8329adacba821420741009dfe87f007759f0982275d028a392c6ed983a0d846f890b36148c7358bdb8a516007fac760261ecd06076813831a36d0459075d1befa245ae7f7fb103d92ca759e9498fe60ef8078a39a3beda510deea251ea9f0a7f0df6ef42060f20780360686f3e400e" diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature_v3.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature_v3.go deleted file mode 100644 index af726193..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature_v3.go +++ /dev/null @@ -1,146 +0,0 @@ -// 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 packet - -import ( - "crypto" - "encoding/binary" - "fmt" - "io" - "strconv" - "time" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k" -) - -// SignatureV3 represents older version 3 signatures. These signatures are less secure -// than version 4 and should not be used to create new signatures. They are included -// here for backwards compatibility to read and validate with older key material. -// See RFC 4880, section 5.2.2. -type SignatureV3 struct { - SigType SignatureType - CreationTime time.Time - IssuerKeyId uint64 - PubKeyAlgo PublicKeyAlgorithm - Hash crypto.Hash - HashTag [2]byte - - RSASignature parsedMPI - DSASigR, DSASigS parsedMPI -} - -func (sig *SignatureV3) parse(r io.Reader) (err error) { - // RFC 4880, section 5.2.2 - var buf [8]byte - if _, err = readFull(r, buf[:1]); err != nil { - return - } - if buf[0] < 2 || buf[0] > 3 { - err = errors.UnsupportedError("signature packet version " + strconv.Itoa(int(buf[0]))) - return - } - if _, err = readFull(r, buf[:1]); err != nil { - return - } - if buf[0] != 5 { - err = errors.UnsupportedError( - "invalid hashed material length " + strconv.Itoa(int(buf[0]))) - return - } - - // Read hashed material: signature type + creation time - if _, err = readFull(r, buf[:5]); err != nil { - return - } - sig.SigType = SignatureType(buf[0]) - t := binary.BigEndian.Uint32(buf[1:5]) - sig.CreationTime = time.Unix(int64(t), 0) - - // Eight-octet Key ID of signer. - if _, err = readFull(r, buf[:8]); err != nil { - return - } - sig.IssuerKeyId = binary.BigEndian.Uint64(buf[:]) - - // Public-key and hash algorithm - if _, err = readFull(r, buf[:2]); err != nil { - return - } - sig.PubKeyAlgo = PublicKeyAlgorithm(buf[0]) - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA: - default: - err = errors.UnsupportedError("public key algorithm " + strconv.Itoa(int(sig.PubKeyAlgo))) - return - } - var ok bool - if sig.Hash, ok = s2k.HashIdToHash(buf[1]); !ok { - return errors.UnsupportedError("hash function " + strconv.Itoa(int(buf[2]))) - } - - // Two-octet field holding left 16 bits of signed hash value. - if _, err = readFull(r, sig.HashTag[:2]); err != nil { - return - } - - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - sig.RSASignature.bytes, sig.RSASignature.bitLength, err = readMPI(r) - case PubKeyAlgoDSA: - if sig.DSASigR.bytes, sig.DSASigR.bitLength, err = readMPI(r); err != nil { - return - } - sig.DSASigS.bytes, sig.DSASigS.bitLength, err = readMPI(r) - default: - panic("unreachable") - } - return -} - -// Serialize marshals sig to w. Sign, SignUserId or SignKey must have been -// called first. -func (sig *SignatureV3) Serialize(w io.Writer) (err error) { - buf := make([]byte, 8) - - // Write the sig type and creation time - buf[0] = byte(sig.SigType) - binary.BigEndian.PutUint32(buf[1:5], uint32(sig.CreationTime.Unix())) - if _, err = w.Write(buf[:5]); err != nil { - return - } - - // Write the issuer long key ID - binary.BigEndian.PutUint64(buf[:8], sig.IssuerKeyId) - if _, err = w.Write(buf[:8]); err != nil { - return - } - - // Write public key algorithm, hash ID, and hash value - buf[0] = byte(sig.PubKeyAlgo) - hashId, ok := s2k.HashToHashId(sig.Hash) - if !ok { - return errors.UnsupportedError(fmt.Sprintf("hash function %v", sig.Hash)) - } - buf[1] = hashId - copy(buf[2:4], sig.HashTag[:]) - if _, err = w.Write(buf[:4]); err != nil { - return - } - - if sig.RSASignature.bytes == nil && sig.DSASigR.bytes == nil { - return errors.InvalidArgumentError("Signature: need to call Sign, SignUserId or SignKey before Serialize") - } - - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - err = writeMPIs(w, sig.RSASignature) - case PubKeyAlgoDSA: - err = writeMPIs(w, sig.DSASigR, sig.DSASigS) - default: - panic("impossible") - } - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature_v3_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature_v3_test.go deleted file mode 100644 index e46ea27a..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/signature_v3_test.go +++ /dev/null @@ -1,92 +0,0 @@ -// 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 packet - -import ( - "bytes" - "crypto" - "encoding/hex" - "io" - "io/ioutil" - "testing" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor" -) - -func TestSignatureV3Read(t *testing.T) { - r := v3KeyReader(t) - Read(r) // Skip public key - Read(r) // Skip uid - packet, err := Read(r) // Signature - if err != nil { - t.Error(err) - return - } - sig, ok := packet.(*SignatureV3) - if !ok || sig.SigType != SigTypeGenericCert || sig.PubKeyAlgo != PubKeyAlgoRSA || sig.Hash != crypto.MD5 { - t.Errorf("failed to parse, got: %#v", packet) - } -} - -func TestSignatureV3Reserialize(t *testing.T) { - r := v3KeyReader(t) - Read(r) // Skip public key - Read(r) // Skip uid - packet, err := Read(r) - if err != nil { - t.Error(err) - return - } - sig := packet.(*SignatureV3) - out := new(bytes.Buffer) - if err = sig.Serialize(out); err != nil { - t.Errorf("error reserializing: %s", err) - return - } - expected, err := ioutil.ReadAll(v3KeyReader(t)) - if err != nil { - t.Error(err) - return - } - expected = expected[4+141+4+39:] // See pgpdump offsets below, this is where the sig starts - if !bytes.Equal(expected, out.Bytes()) { - t.Errorf("output doesn't match input (got vs expected):\n%s\n%s", hex.Dump(out.Bytes()), hex.Dump(expected)) - } -} - -func v3KeyReader(t *testing.T) io.Reader { - armorBlock, err := armor.Decode(bytes.NewBufferString(keySigV3Armor)) - if err != nil { - t.Fatalf("armor Decode failed: %v", err) - } - return armorBlock.Body -} - -// keySigV3Armor is some V3 public key I found in an SKS dump. -// Old: Public Key Packet(tag 6)(141 bytes) -// Ver 4 - new -// Public key creation time - Fri Sep 16 17:13:54 CDT 1994 -// Pub alg - unknown(pub 0) -// Unknown public key(pub 0) -// Old: User ID Packet(tag 13)(39 bytes) -// User ID - Armin M. Warda <warda@nephilim.ruhr.de> -// Old: Signature Packet(tag 2)(149 bytes) -// Ver 4 - new -// Sig type - unknown(05) -// Pub alg - ElGamal Encrypt-Only(pub 16) -// Hash alg - unknown(hash 46) -// Hashed Sub: unknown(sub 81, critical)(1988 bytes) -const keySigV3Armor = `-----BEGIN PGP PUBLIC KEY BLOCK----- -Version: SKS 1.0.10 - -mI0CLnoYogAAAQQA1qwA2SuJwfQ5bCQ6u5t20ulnOtY0gykf7YjiK4LiVeRBwHjGq7v30tGV -5Qti7qqRW4Ww7CDCJc4sZMFnystucR2vLkXaSoNWoFm4Fg47NiisDdhDezHwbVPW6OpCFNSi -ZAamtj4QAUBu8j4LswafrJqZqR9336/V3g8Yil2l48kABRG0J0FybWluIE0uIFdhcmRhIDx3 -YXJkYUBuZXBoaWxpbS5ydWhyLmRlPoiVAgUQLok2xwXR6zmeWEiZAQE/DgP/WgxPQh40/Po4 -gSkWZCDAjNdph7zexvAb0CcUWahcwiBIgg3U5ErCx9I5CNVA9U+s8bNrDZwgSIeBzp3KhWUx -524uhGgm6ZUTOAIKA6CbV6pfqoLpJnRYvXYQU5mIWsNa99wcu2qu18OeEDnztb7aLA6Ra9OF -YFCbq4EjXRoOrYM= -=LPjs ------END PGP PUBLIC KEY BLOCK-----` diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetric_key_encrypted.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetric_key_encrypted.go deleted file mode 100644 index 98be88b0..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetric_key_encrypted.go +++ /dev/null @@ -1,155 +0,0 @@ -// 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 packet - -import ( - "bytes" - "crypto/cipher" - "io" - "strconv" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k" -) - -// This is the largest session key that we'll support. Since no 512-bit cipher -// has even been seriously used, this is comfortably large. -const maxSessionKeySizeInBytes = 64 - -// SymmetricKeyEncrypted represents a passphrase protected session key. See RFC -// 4880, section 5.3. -type SymmetricKeyEncrypted struct { - CipherFunc CipherFunction - s2k func(out, in []byte) - encryptedKey []byte -} - -const symmetricKeyEncryptedVersion = 4 - -func (ske *SymmetricKeyEncrypted) parse(r io.Reader) error { - // RFC 4880, section 5.3. - var buf [2]byte - if _, err := readFull(r, buf[:]); err != nil { - return err - } - if buf[0] != symmetricKeyEncryptedVersion { - return errors.UnsupportedError("SymmetricKeyEncrypted version") - } - ske.CipherFunc = CipherFunction(buf[1]) - - if ske.CipherFunc.KeySize() == 0 { - return errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(buf[1]))) - } - - var err error - ske.s2k, err = s2k.Parse(r) - if err != nil { - return err - } - - encryptedKey := make([]byte, maxSessionKeySizeInBytes) - // The session key may follow. We just have to try and read to find - // out. If it exists then we limit it to maxSessionKeySizeInBytes. - n, err := readFull(r, encryptedKey) - if err != nil && err != io.ErrUnexpectedEOF { - return err - } - - if n != 0 { - if n == maxSessionKeySizeInBytes { - return errors.UnsupportedError("oversized encrypted session key") - } - ske.encryptedKey = encryptedKey[:n] - } - - return nil -} - -// Decrypt attempts to decrypt an encrypted session key and returns the key and -// the cipher to use when decrypting a subsequent Symmetrically Encrypted Data -// packet. -func (ske *SymmetricKeyEncrypted) Decrypt(passphrase []byte) ([]byte, CipherFunction, error) { - key := make([]byte, ske.CipherFunc.KeySize()) - ske.s2k(key, passphrase) - - if len(ske.encryptedKey) == 0 { - return key, ske.CipherFunc, nil - } - - // the IV is all zeros - iv := make([]byte, ske.CipherFunc.blockSize()) - c := cipher.NewCFBDecrypter(ske.CipherFunc.new(key), iv) - plaintextKey := make([]byte, len(ske.encryptedKey)) - c.XORKeyStream(plaintextKey, ske.encryptedKey) - cipherFunc := CipherFunction(plaintextKey[0]) - if cipherFunc.blockSize() == 0 { - return nil, ske.CipherFunc, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(cipherFunc))) - } - plaintextKey = plaintextKey[1:] - if l := len(plaintextKey); l == 0 || l%cipherFunc.blockSize() != 0 { - return nil, cipherFunc, errors.StructuralError("length of decrypted key not a multiple of block size") - } - - return plaintextKey, cipherFunc, nil -} - -// SerializeSymmetricKeyEncrypted serializes a symmetric key packet to w. The -// packet contains a random session key, encrypted by a key derived from the -// given passphrase. The session key is returned and must be passed to -// SerializeSymmetricallyEncrypted. -// If config is nil, sensible defaults will be used. -func SerializeSymmetricKeyEncrypted(w io.Writer, passphrase []byte, config *Config) (key []byte, err error) { - cipherFunc := config.Cipher() - keySize := cipherFunc.KeySize() - if keySize == 0 { - return nil, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(cipherFunc))) - } - - s2kBuf := new(bytes.Buffer) - keyEncryptingKey := make([]byte, keySize) - // s2k.Serialize salts and stretches the passphrase, and writes the - // resulting key to keyEncryptingKey and the s2k descriptor to s2kBuf. - err = s2k.Serialize(s2kBuf, keyEncryptingKey, config.Random(), passphrase, &s2k.Config{Hash: config.Hash(), S2KCount: config.PasswordHashIterations()}) - if err != nil { - return - } - s2kBytes := s2kBuf.Bytes() - - packetLength := 2 /* header */ + len(s2kBytes) + 1 /* cipher type */ + keySize - err = serializeHeader(w, packetTypeSymmetricKeyEncrypted, packetLength) - if err != nil { - return - } - - var buf [2]byte - buf[0] = symmetricKeyEncryptedVersion - buf[1] = byte(cipherFunc) - _, err = w.Write(buf[:]) - if err != nil { - return - } - _, err = w.Write(s2kBytes) - if err != nil { - return - } - - sessionKey := make([]byte, keySize) - _, err = io.ReadFull(config.Random(), sessionKey) - if err != nil { - return - } - iv := make([]byte, cipherFunc.blockSize()) - c := cipher.NewCFBEncrypter(cipherFunc.new(keyEncryptingKey), iv) - encryptedCipherAndKey := make([]byte, keySize+1) - c.XORKeyStream(encryptedCipherAndKey, buf[1:]) - c.XORKeyStream(encryptedCipherAndKey[1:], sessionKey) - _, err = w.Write(encryptedCipherAndKey) - if err != nil { - return - } - - key = sessionKey - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetric_key_encrypted_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetric_key_encrypted_test.go deleted file mode 100644 index 19538df7..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetric_key_encrypted_test.go +++ /dev/null @@ -1,103 +0,0 @@ -// 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 packet - -import ( - "bytes" - "encoding/hex" - "io" - "io/ioutil" - "testing" -) - -func TestSymmetricKeyEncrypted(t *testing.T) { - buf := readerFromHex(symmetricallyEncryptedHex) - packet, err := Read(buf) - if err != nil { - t.Errorf("failed to read SymmetricKeyEncrypted: %s", err) - return - } - ske, ok := packet.(*SymmetricKeyEncrypted) - if !ok { - t.Error("didn't find SymmetricKeyEncrypted packet") - return - } - key, cipherFunc, err := ske.Decrypt([]byte("password")) - if err != nil { - t.Error(err) - return - } - - packet, err = Read(buf) - if err != nil { - t.Errorf("failed to read SymmetricallyEncrypted: %s", err) - return - } - se, ok := packet.(*SymmetricallyEncrypted) - if !ok { - t.Error("didn't find SymmetricallyEncrypted packet") - return - } - r, err := se.Decrypt(cipherFunc, key) - if err != nil { - t.Error(err) - return - } - - contents, err := ioutil.ReadAll(r) - if err != nil && err != io.EOF { - t.Error(err) - return - } - - expectedContents, _ := hex.DecodeString(symmetricallyEncryptedContentsHex) - if !bytes.Equal(expectedContents, contents) { - t.Errorf("bad contents got:%x want:%x", contents, expectedContents) - } -} - -const symmetricallyEncryptedHex = "8c0d04030302371a0b38d884f02060c91cf97c9973b8e58e028e9501708ccfe618fb92afef7fa2d80ddadd93cf" -const symmetricallyEncryptedContentsHex = "cb1062004d14c4df636f6e74656e74732e0a" - -func TestSerializeSymmetricKeyEncrypted(t *testing.T) { - buf := bytes.NewBuffer(nil) - passphrase := []byte("testing") - const cipherFunc = CipherAES128 - config := &Config{ - DefaultCipher: cipherFunc, - } - - key, err := SerializeSymmetricKeyEncrypted(buf, passphrase, config) - if err != nil { - t.Errorf("failed to serialize: %s", err) - return - } - - p, err := Read(buf) - if err != nil { - t.Errorf("failed to reparse: %s", err) - return - } - ske, ok := p.(*SymmetricKeyEncrypted) - if !ok { - t.Errorf("parsed a different packet type: %#v", p) - return - } - - if ske.CipherFunc != config.DefaultCipher { - t.Errorf("SKE cipher function is %d (expected %d)", ske.CipherFunc, config.DefaultCipher) - } - parsedKey, parsedCipherFunc, err := ske.Decrypt(passphrase) - if err != nil { - t.Errorf("failed to decrypt reparsed SKE: %s", err) - return - } - if !bytes.Equal(key, parsedKey) { - t.Errorf("keys don't match after Decrypt: %x (original) vs %x (parsed)", key, parsedKey) - } - if parsedCipherFunc != cipherFunc { - t.Errorf("cipher function doesn't match after Decrypt: %d (original) vs %d (parsed)", cipherFunc, parsedCipherFunc) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetrically_encrypted.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetrically_encrypted.go deleted file mode 100644 index 66d22844..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetrically_encrypted.go +++ /dev/null @@ -1,290 +0,0 @@ -// 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 packet - -import ( - "crypto/cipher" - "crypto/sha1" - "crypto/subtle" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "hash" - "io" - "strconv" -) - -// SymmetricallyEncrypted represents a symmetrically encrypted byte string. The -// encrypted contents will consist of more OpenPGP packets. See RFC 4880, -// sections 5.7 and 5.13. -type SymmetricallyEncrypted struct { - MDC bool // true iff this is a type 18 packet and thus has an embedded MAC. - contents io.Reader - prefix []byte -} - -const symmetricallyEncryptedVersion = 1 - -func (se *SymmetricallyEncrypted) parse(r io.Reader) error { - if se.MDC { - // See RFC 4880, section 5.13. - var buf [1]byte - _, err := readFull(r, buf[:]) - if err != nil { - return err - } - if buf[0] != symmetricallyEncryptedVersion { - return errors.UnsupportedError("unknown SymmetricallyEncrypted version") - } - } - se.contents = r - return nil -} - -// Decrypt returns a ReadCloser, from which the decrypted contents of the -// packet can be read. An incorrect key can, with high probability, be detected -// immediately and this will result in a KeyIncorrect error being returned. -func (se *SymmetricallyEncrypted) Decrypt(c CipherFunction, key []byte) (io.ReadCloser, error) { - keySize := c.KeySize() - if keySize == 0 { - return nil, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(c))) - } - if len(key) != keySize { - return nil, errors.InvalidArgumentError("SymmetricallyEncrypted: incorrect key length") - } - - if se.prefix == nil { - se.prefix = make([]byte, c.blockSize()+2) - _, err := readFull(se.contents, se.prefix) - if err != nil { - return nil, err - } - } else if len(se.prefix) != c.blockSize()+2 { - return nil, errors.InvalidArgumentError("can't try ciphers with different block lengths") - } - - ocfbResync := OCFBResync - if se.MDC { - // MDC packets use a different form of OCFB mode. - ocfbResync = OCFBNoResync - } - - s := NewOCFBDecrypter(c.new(key), se.prefix, ocfbResync) - if s == nil { - return nil, errors.ErrKeyIncorrect - } - - plaintext := cipher.StreamReader{S: s, R: se.contents} - - if se.MDC { - // MDC packets have an embedded hash that we need to check. - h := sha1.New() - h.Write(se.prefix) - return &seMDCReader{in: plaintext, h: h}, nil - } - - // Otherwise, we just need to wrap plaintext so that it's a valid ReadCloser. - return seReader{plaintext}, nil -} - -// seReader wraps an io.Reader with a no-op Close method. -type seReader struct { - in io.Reader -} - -func (ser seReader) Read(buf []byte) (int, error) { - return ser.in.Read(buf) -} - -func (ser seReader) Close() error { - return nil -} - -const mdcTrailerSize = 1 /* tag byte */ + 1 /* length byte */ + sha1.Size - -// An seMDCReader wraps an io.Reader, maintains a running hash and keeps hold -// of the most recent 22 bytes (mdcTrailerSize). Upon EOF, those bytes form an -// MDC packet containing a hash of the previous contents which is checked -// against the running hash. See RFC 4880, section 5.13. -type seMDCReader struct { - in io.Reader - h hash.Hash - trailer [mdcTrailerSize]byte - scratch [mdcTrailerSize]byte - trailerUsed int - error bool - eof bool -} - -func (ser *seMDCReader) Read(buf []byte) (n int, err error) { - if ser.error { - err = io.ErrUnexpectedEOF - return - } - if ser.eof { - err = io.EOF - return - } - - // If we haven't yet filled the trailer buffer then we must do that - // first. - for ser.trailerUsed < mdcTrailerSize { - n, err = ser.in.Read(ser.trailer[ser.trailerUsed:]) - ser.trailerUsed += n - if err == io.EOF { - if ser.trailerUsed != mdcTrailerSize { - n = 0 - err = io.ErrUnexpectedEOF - ser.error = true - return - } - ser.eof = true - n = 0 - return - } - - if err != nil { - n = 0 - return - } - } - - // If it's a short read then we read into a temporary buffer and shift - // the data into the caller's buffer. - if len(buf) <= mdcTrailerSize { - n, err = readFull(ser.in, ser.scratch[:len(buf)]) - copy(buf, ser.trailer[:n]) - ser.h.Write(buf[:n]) - copy(ser.trailer[:], ser.trailer[n:]) - copy(ser.trailer[mdcTrailerSize-n:], ser.scratch[:]) - if n < len(buf) { - ser.eof = true - err = io.EOF - } - return - } - - n, err = ser.in.Read(buf[mdcTrailerSize:]) - copy(buf, ser.trailer[:]) - ser.h.Write(buf[:n]) - copy(ser.trailer[:], buf[n:]) - - if err == io.EOF { - ser.eof = true - } - return -} - -// This is a new-format packet tag byte for a type 19 (MDC) packet. -const mdcPacketTagByte = byte(0x80) | 0x40 | 19 - -func (ser *seMDCReader) Close() error { - if ser.error { - return errors.SignatureError("error during reading") - } - - for !ser.eof { - // We haven't seen EOF so we need to read to the end - var buf [1024]byte - _, err := ser.Read(buf[:]) - if err == io.EOF { - break - } - if err != nil { - return errors.SignatureError("error during reading") - } - } - - if ser.trailer[0] != mdcPacketTagByte || ser.trailer[1] != sha1.Size { - return errors.SignatureError("MDC packet not found") - } - ser.h.Write(ser.trailer[:2]) - - final := ser.h.Sum(nil) - if subtle.ConstantTimeCompare(final, ser.trailer[2:]) != 1 { - return errors.SignatureError("hash mismatch") - } - return nil -} - -// An seMDCWriter writes through to an io.WriteCloser while maintains a running -// hash of the data written. On close, it emits an MDC packet containing the -// running hash. -type seMDCWriter struct { - w io.WriteCloser - h hash.Hash -} - -func (w *seMDCWriter) Write(buf []byte) (n int, err error) { - w.h.Write(buf) - return w.w.Write(buf) -} - -func (w *seMDCWriter) Close() (err error) { - var buf [mdcTrailerSize]byte - - buf[0] = mdcPacketTagByte - buf[1] = sha1.Size - w.h.Write(buf[:2]) - digest := w.h.Sum(nil) - copy(buf[2:], digest) - - _, err = w.w.Write(buf[:]) - if err != nil { - return - } - return w.w.Close() -} - -// noOpCloser is like an ioutil.NopCloser, but for an io.Writer. -type noOpCloser struct { - w io.Writer -} - -func (c noOpCloser) Write(data []byte) (n int, err error) { - return c.w.Write(data) -} - -func (c noOpCloser) Close() error { - return nil -} - -// SerializeSymmetricallyEncrypted serializes a symmetrically encrypted packet -// to w and returns a WriteCloser to which the to-be-encrypted packets can be -// written. -// If config is nil, sensible defaults will be used. -func SerializeSymmetricallyEncrypted(w io.Writer, c CipherFunction, key []byte, config *Config) (contents io.WriteCloser, err error) { - if c.KeySize() != len(key) { - return nil, errors.InvalidArgumentError("SymmetricallyEncrypted.Serialize: bad key length") - } - writeCloser := noOpCloser{w} - ciphertext, err := serializeStreamHeader(writeCloser, packetTypeSymmetricallyEncryptedMDC) - if err != nil { - return - } - - _, err = ciphertext.Write([]byte{symmetricallyEncryptedVersion}) - if err != nil { - return - } - - block := c.new(key) - blockSize := block.BlockSize() - iv := make([]byte, blockSize) - _, err = config.Random().Read(iv) - if err != nil { - return - } - s, prefix := NewOCFBEncrypter(block, iv, OCFBNoResync) - _, err = ciphertext.Write(prefix) - if err != nil { - return - } - plaintext := cipher.StreamWriter{S: s, W: ciphertext} - - h := sha1.New() - h.Write(iv) - h.Write(iv[blockSize-2:]) - contents = &seMDCWriter{w: plaintext, h: h} - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetrically_encrypted_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetrically_encrypted_test.go deleted file mode 100644 index 783d600f..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/symmetrically_encrypted_test.go +++ /dev/null @@ -1,123 +0,0 @@ -// 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 packet - -import ( - "bytes" - "crypto/sha1" - "encoding/hex" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "io" - "io/ioutil" - "testing" -) - -// TestReader wraps a []byte and returns reads of a specific length. -type testReader struct { - data []byte - stride int -} - -func (t *testReader) Read(buf []byte) (n int, err error) { - n = t.stride - if n > len(t.data) { - n = len(t.data) - } - if n > len(buf) { - n = len(buf) - } - copy(buf, t.data) - t.data = t.data[n:] - if len(t.data) == 0 { - err = io.EOF - } - return -} - -func testMDCReader(t *testing.T) { - mdcPlaintext, _ := hex.DecodeString(mdcPlaintextHex) - - for stride := 1; stride < len(mdcPlaintext)/2; stride++ { - r := &testReader{data: mdcPlaintext, stride: stride} - mdcReader := &seMDCReader{in: r, h: sha1.New()} - body, err := ioutil.ReadAll(mdcReader) - if err != nil { - t.Errorf("stride: %d, error: %s", stride, err) - continue - } - if !bytes.Equal(body, mdcPlaintext[:len(mdcPlaintext)-22]) { - t.Errorf("stride: %d: bad contents %x", stride, body) - continue - } - - err = mdcReader.Close() - if err != nil { - t.Errorf("stride: %d, error on Close: %s", stride, err) - } - } - - mdcPlaintext[15] ^= 80 - - r := &testReader{data: mdcPlaintext, stride: 2} - mdcReader := &seMDCReader{in: r, h: sha1.New()} - _, err := ioutil.ReadAll(mdcReader) - if err != nil { - t.Errorf("corruption test, error: %s", err) - return - } - err = mdcReader.Close() - if err == nil { - t.Error("corruption: no error") - } else if _, ok := err.(*errors.SignatureError); !ok { - t.Errorf("corruption: expected SignatureError, got: %s", err) - } -} - -const mdcPlaintextHex = "a302789c3b2d93c4e0eb9aba22283539b3203335af44a134afb800c849cb4c4de10200aff40b45d31432c80cb384299a0655966d6939dfdeed1dddf980" - -func TestSerialize(t *testing.T) { - buf := bytes.NewBuffer(nil) - c := CipherAES128 - key := make([]byte, c.KeySize()) - - w, err := SerializeSymmetricallyEncrypted(buf, c, key, nil) - if err != nil { - t.Errorf("error from SerializeSymmetricallyEncrypted: %s", err) - return - } - - contents := []byte("hello world\n") - - w.Write(contents) - w.Close() - - p, err := Read(buf) - if err != nil { - t.Errorf("error from Read: %s", err) - return - } - - se, ok := p.(*SymmetricallyEncrypted) - if !ok { - t.Errorf("didn't read a *SymmetricallyEncrypted") - return - } - - r, err := se.Decrypt(c, key) - if err != nil { - t.Errorf("error from Decrypt: %s", err) - return - } - - contentsCopy := bytes.NewBuffer(nil) - _, err = io.Copy(contentsCopy, r) - if err != nil { - t.Errorf("error from io.Copy: %s", err) - return - } - if !bytes.Equal(contentsCopy.Bytes(), contents) { - t.Errorf("contents not equal got: %x want: %x", contentsCopy.Bytes(), contents) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userattribute.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userattribute.go deleted file mode 100644 index 96a2b382..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userattribute.go +++ /dev/null @@ -1,91 +0,0 @@ -// 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 packet - -import ( - "bytes" - "image" - "image/jpeg" - "io" - "io/ioutil" -) - -const UserAttrImageSubpacket = 1 - -// UserAttribute is capable of storing other types of data about a user -// beyond name, email and a text comment. In practice, user attributes are typically used -// to store a signed thumbnail photo JPEG image of the user. -// See RFC 4880, section 5.12. -type UserAttribute struct { - Contents []*OpaqueSubpacket -} - -// NewUserAttributePhoto creates a user attribute packet -// containing the given images. -func NewUserAttributePhoto(photos ...image.Image) (uat *UserAttribute, err error) { - uat = new(UserAttribute) - for _, photo := range photos { - var buf bytes.Buffer - // RFC 4880, Section 5.12.1. - data := []byte{ - 0x10, 0x00, // Little-endian image header length (16 bytes) - 0x01, // Image header version 1 - 0x01, // JPEG - 0, 0, 0, 0, // 12 reserved octets, must be all zero. - 0, 0, 0, 0, - 0, 0, 0, 0} - if _, err = buf.Write(data); err != nil { - return - } - if err = jpeg.Encode(&buf, photo, nil); err != nil { - return - } - uat.Contents = append(uat.Contents, &OpaqueSubpacket{ - SubType: UserAttrImageSubpacket, - Contents: buf.Bytes()}) - } - return -} - -// NewUserAttribute creates a new user attribute packet containing the given subpackets. -func NewUserAttribute(contents ...*OpaqueSubpacket) *UserAttribute { - return &UserAttribute{Contents: contents} -} - -func (uat *UserAttribute) parse(r io.Reader) (err error) { - // RFC 4880, section 5.13 - b, err := ioutil.ReadAll(r) - if err != nil { - return - } - uat.Contents, err = OpaqueSubpackets(b) - return -} - -// Serialize marshals the user attribute to w in the form of an OpenPGP packet, including -// header. -func (uat *UserAttribute) Serialize(w io.Writer) (err error) { - var buf bytes.Buffer - for _, sp := range uat.Contents { - sp.Serialize(&buf) - } - if err = serializeHeader(w, packetTypeUserAttribute, buf.Len()); err != nil { - return err - } - _, err = w.Write(buf.Bytes()) - return -} - -// ImageData returns zero or more byte slices, each containing -// JPEG File Interchange Format (JFIF), for each photo in the -// the user attribute packet. -func (uat *UserAttribute) ImageData() (imageData [][]byte) { - for _, sp := range uat.Contents { - if sp.SubType == UserAttrImageSubpacket && len(sp.Contents) > 16 { - imageData = append(imageData, sp.Contents[16:]) - } - } - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userattribute_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userattribute_test.go deleted file mode 100644 index 13ca5143..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userattribute_test.go +++ /dev/null @@ -1,109 +0,0 @@ -// 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 packet - -import ( - "bytes" - "encoding/base64" - "image/color" - "image/jpeg" - "testing" -) - -func TestParseUserAttribute(t *testing.T) { - r := base64.NewDecoder(base64.StdEncoding, bytes.NewBufferString(userAttributePacket)) - for i := 0; i < 2; i++ { - p, err := Read(r) - if err != nil { - t.Fatal(err) - } - uat := p.(*UserAttribute) - imgs := uat.ImageData() - if len(imgs) != 1 { - t.Errorf("Unexpected number of images in user attribute packet: %d", len(imgs)) - } - if len(imgs[0]) != 3395 { - t.Errorf("Unexpected JPEG image size: %d", len(imgs[0])) - } - img, err := jpeg.Decode(bytes.NewBuffer(imgs[0])) - if err != nil { - t.Errorf("Error decoding JPEG image: %v", err) - } - // A pixel in my right eye. - pixel := color.NRGBAModel.Convert(img.At(56, 36)) - ref := color.NRGBA{R: 157, G: 128, B: 124, A: 255} - if pixel != ref { - t.Errorf("Unexpected pixel color: %v", pixel) - } - w := bytes.NewBuffer(nil) - err = uat.Serialize(w) - if err != nil { - t.Errorf("Error writing user attribute: %v", err) - } - r = bytes.NewBuffer(w.Bytes()) - } -} - -const userAttributePacket = ` -0cyWzJQBEAABAQAAAAAAAAAAAAAAAP/Y/+AAEEpGSUYAAQIAAAEAAQAA/9sAQwAFAwQEBAMFBAQE -BQUFBgcMCAcHBwcPCgsJDBEPEhIRDxEQExYcFxMUGhUQERghGBocHR8fHxMXIiQiHiQcHh8e/9sA -QwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e -Hh4eHh4eHh4e/8AAEQgAZABkAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH -CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw -JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6 -g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk -5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB -AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX -GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT -lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2 -9/j5+v/aAAwDAQACEQMRAD8A5uGP06VehQ4pIox04q5EnHSvAep+hIIl4zVuMHGPWmRrUWtalaaN -pU2oXsgSGJSxPr6ClvoitErs0Itqjc7BQOpPAFYmrfEnwjojtHNqaXEynBjtx5hH4jj9a8B8d+Od -W8UXZjWR4LJT+7t0Jwfc+prnIdO1CWZEW2mZ3HyDactXXDB3V5s8evm1namj6r0H4weCLtxG+ova -ueP30RA/MV6not1bX0Ed1ZzxzwyDKvGwZSPqK+Ff+ES8R8t/ZV2oHUmM10Hgbxp4m8BatEfNnWBH -/eWshOxx9Kmpg4te49RUM1kn+8Wh9zQ4P1FaMC7l465rjPh14y0fxnoseoaXOpfaPOgJ+eI98j09 -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` diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userid.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userid.go deleted file mode 100644 index d6bea7d4..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userid.go +++ /dev/null @@ -1,160 +0,0 @@ -// 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 packet - -import ( - "io" - "io/ioutil" - "strings" -) - -// UserId contains text that is intended to represent the name and email -// address of the key holder. See RFC 4880, section 5.11. By convention, this -// takes the form "Full Name (Comment) <email@example.com>" -type UserId struct { - Id string // By convention, this takes the form "Full Name (Comment) <email@example.com>" which is split out in the fields below. - - Name, Comment, Email string -} - -func hasInvalidCharacters(s string) bool { - for _, c := range s { - switch c { - case '(', ')', '<', '>', 0: - return true - } - } - return false -} - -// NewUserId returns a UserId or nil if any of the arguments contain invalid -// characters. The invalid characters are '\x00', '(', ')', '<' and '>' -func NewUserId(name, comment, email string) *UserId { - // RFC 4880 doesn't deal with the structure of userid strings; the - // name, comment and email form is just a convention. However, there's - // no convention about escaping the metacharacters and GPG just refuses - // to create user ids where, say, the name contains a '('. We mirror - // this behaviour. - - if hasInvalidCharacters(name) || hasInvalidCharacters(comment) || hasInvalidCharacters(email) { - return nil - } - - uid := new(UserId) - uid.Name, uid.Comment, uid.Email = name, comment, email - uid.Id = name - if len(comment) > 0 { - if len(uid.Id) > 0 { - uid.Id += " " - } - uid.Id += "(" - uid.Id += comment - uid.Id += ")" - } - if len(email) > 0 { - if len(uid.Id) > 0 { - uid.Id += " " - } - uid.Id += "<" - uid.Id += email - uid.Id += ">" - } - return uid -} - -func (uid *UserId) parse(r io.Reader) (err error) { - // RFC 4880, section 5.11 - b, err := ioutil.ReadAll(r) - if err != nil { - return - } - uid.Id = string(b) - uid.Name, uid.Comment, uid.Email = parseUserId(uid.Id) - return -} - -// Serialize marshals uid to w in the form of an OpenPGP packet, including -// header. -func (uid *UserId) Serialize(w io.Writer) error { - err := serializeHeader(w, packetTypeUserId, len(uid.Id)) - if err != nil { - return err - } - _, err = w.Write([]byte(uid.Id)) - return err -} - -// parseUserId extracts the name, comment and email from a user id string that -// is formatted as "Full Name (Comment) <email@example.com>". -func parseUserId(id string) (name, comment, email string) { - var n, c, e struct { - start, end int - } - var state int - - for offset, rune := range id { - switch state { - case 0: - // Entering name - n.start = offset - state = 1 - fallthrough - case 1: - // In name - if rune == '(' { - state = 2 - n.end = offset - } else if rune == '<' { - state = 5 - n.end = offset - } - case 2: - // Entering comment - c.start = offset - state = 3 - fallthrough - case 3: - // In comment - if rune == ')' { - state = 4 - c.end = offset - } - case 4: - // Between comment and email - if rune == '<' { - state = 5 - } - case 5: - // Entering email - e.start = offset - state = 6 - fallthrough - case 6: - // In email - if rune == '>' { - state = 7 - e.end = offset - } - default: - // After email - } - } - switch state { - case 1: - // ended in the name - n.end = len(id) - case 3: - // ended in comment - c.end = len(id) - case 6: - // ended in email - e.end = len(id) - } - - name = strings.TrimSpace(id[n.start:n.end]) - comment = strings.TrimSpace(id[c.start:c.end]) - email = strings.TrimSpace(id[e.start:e.end]) - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userid_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userid_test.go deleted file mode 100644 index 29681938..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet/userid_test.go +++ /dev/null @@ -1,87 +0,0 @@ -// 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 packet - -import ( - "testing" -) - -var userIdTests = []struct { - id string - name, comment, email string -}{ - {"", "", "", ""}, - {"John Smith", "John Smith", "", ""}, - {"John Smith ()", "John Smith", "", ""}, - {"John Smith () <>", "John Smith", "", ""}, - {"(comment", "", "comment", ""}, - {"(comment)", "", "comment", ""}, - {"<email", "", "", "email"}, - {"<email> sdfk", "", "", "email"}, - {" John Smith ( Comment ) asdkflj < email > lksdfj", "John Smith", "Comment", "email"}, - {" John Smith < email > lksdfj", "John Smith", "", "email"}, - {"(<foo", "", "<foo", ""}, - {"René Descartes (العربي)", "René Descartes", "العربي", ""}, -} - -func TestParseUserId(t *testing.T) { - for i, test := range userIdTests { - name, comment, email := parseUserId(test.id) - if name != test.name { - t.Errorf("%d: name mismatch got:%s want:%s", i, name, test.name) - } - if comment != test.comment { - t.Errorf("%d: comment mismatch got:%s want:%s", i, comment, test.comment) - } - if email != test.email { - t.Errorf("%d: email mismatch got:%s want:%s", i, email, test.email) - } - } -} - -var newUserIdTests = []struct { - name, comment, email, id string -}{ - {"foo", "", "", "foo"}, - {"", "bar", "", "(bar)"}, - {"", "", "baz", "<baz>"}, - {"foo", "bar", "", "foo (bar)"}, - {"foo", "", "baz", "foo <baz>"}, - {"", "bar", "baz", "(bar) <baz>"}, - {"foo", "bar", "baz", "foo (bar) <baz>"}, -} - -func TestNewUserId(t *testing.T) { - for i, test := range newUserIdTests { - uid := NewUserId(test.name, test.comment, test.email) - if uid == nil { - t.Errorf("#%d: returned nil", i) - continue - } - if uid.Id != test.id { - t.Errorf("#%d: got '%s', want '%s'", i, uid.Id, test.id) - } - } -} - -var invalidNewUserIdTests = []struct { - name, comment, email string -}{ - {"foo(", "", ""}, - {"foo<", "", ""}, - {"", "bar)", ""}, - {"", "bar<", ""}, - {"", "", "baz>"}, - {"", "", "baz)"}, - {"", "", "baz\x00"}, -} - -func TestNewUserIdWithInvalidInput(t *testing.T) { - for i, test := range invalidNewUserIdTests { - if uid := NewUserId(test.name, test.comment, test.email); uid != nil { - t.Errorf("#%d: returned non-nil value: %#v", i, uid) - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/read.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/read.go deleted file mode 100644 index ee17ec49..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/read.go +++ /dev/null @@ -1,439 +0,0 @@ -// 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 openpgp implements high level operations on OpenPGP messages. -package openpgp - -import ( - "crypto" - _ "crypto/sha256" - "hash" - "io" - "strconv" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet" -) - -// SignatureType is the armor type for a PGP signature. -var SignatureType = "PGP SIGNATURE" - -// readArmored reads an armored block with the given type. -func readArmored(r io.Reader, expectedType string) (body io.Reader, err error) { - block, err := armor.Decode(r) - if err != nil { - return - } - - if block.Type != expectedType { - return nil, errors.InvalidArgumentError("expected '" + expectedType + "', got: " + block.Type) - } - - return block.Body, nil -} - -// MessageDetails contains the result of parsing an OpenPGP encrypted and/or -// signed message. -type MessageDetails struct { - IsEncrypted bool // true if the message was encrypted. - EncryptedToKeyIds []uint64 // the list of recipient key ids. - IsSymmetricallyEncrypted bool // true if a passphrase could have decrypted the message. - DecryptedWith Key // the private key used to decrypt the message, if any. - IsSigned bool // true if the message is signed. - SignedByKeyId uint64 // the key id of the signer, if any. - SignedBy *Key // the key of the signer, if available. - LiteralData *packet.LiteralData // the metadata of the contents - UnverifiedBody io.Reader // the contents of the message. - - // If IsSigned is true and SignedBy is non-zero then the signature will - // be verified as UnverifiedBody is read. The signature cannot be - // checked until the whole of UnverifiedBody is read so UnverifiedBody - // must be consumed until EOF before the data can trusted. Even if a - // message isn't signed (or the signer is unknown) the data may contain - // an authentication code that is only checked once UnverifiedBody has - // been consumed. Once EOF has been seen, the following fields are - // valid. (An authentication code failure is reported as a - // SignatureError error when reading from UnverifiedBody.) - SignatureError error // nil if the signature is good. - Signature *packet.Signature // the signature packet itself. - - decrypted io.ReadCloser -} - -// A PromptFunction is used as a callback by functions that may need to decrypt -// a private key, or prompt for a passphrase. It is called with a list of -// acceptable, encrypted private keys and a boolean that indicates whether a -// passphrase is usable. It should either decrypt a private key or return a -// passphrase to try. If the decrypted private key or given passphrase isn't -// correct, the function will be called again, forever. Any error returned will -// be passed up. -type PromptFunction func(keys []Key, symmetric bool) ([]byte, error) - -// A keyEnvelopePair is used to store a private key with the envelope that -// contains a symmetric key, encrypted with that key. -type keyEnvelopePair struct { - key Key - encryptedKey *packet.EncryptedKey -} - -// ReadMessage parses an OpenPGP message that may be signed and/or encrypted. -// The given KeyRing should contain both public keys (for signature -// verification) and, possibly encrypted, private keys for decrypting. -// If config is nil, sensible defaults will be used. -func ReadMessage(r io.Reader, keyring KeyRing, prompt PromptFunction, config *packet.Config) (md *MessageDetails, err error) { - var p packet.Packet - - var symKeys []*packet.SymmetricKeyEncrypted - var pubKeys []keyEnvelopePair - var se *packet.SymmetricallyEncrypted - - packets := packet.NewReader(r) - md = new(MessageDetails) - md.IsEncrypted = true - - // The message, if encrypted, starts with a number of packets - // containing an encrypted decryption key. The decryption key is either - // encrypted to a public key, or with a passphrase. This loop - // collects these packets. -ParsePackets: - for { - p, err = packets.Next() - if err != nil { - return nil, err - } - switch p := p.(type) { - case *packet.SymmetricKeyEncrypted: - // This packet contains the decryption key encrypted with a passphrase. - md.IsSymmetricallyEncrypted = true - symKeys = append(symKeys, p) - case *packet.EncryptedKey: - // This packet contains the decryption key encrypted to a public key. - md.EncryptedToKeyIds = append(md.EncryptedToKeyIds, p.KeyId) - switch p.Algo { - case packet.PubKeyAlgoRSA, packet.PubKeyAlgoRSAEncryptOnly, packet.PubKeyAlgoElGamal: - break - default: - continue - } - var keys []Key - if p.KeyId == 0 { - keys = keyring.DecryptionKeys() - } else { - keys = keyring.KeysById(p.KeyId) - } - for _, k := range keys { - pubKeys = append(pubKeys, keyEnvelopePair{k, p}) - } - case *packet.SymmetricallyEncrypted: - se = p - break ParsePackets - case *packet.Compressed, *packet.LiteralData, *packet.OnePassSignature: - // This message isn't encrypted. - if len(symKeys) != 0 || len(pubKeys) != 0 { - return nil, errors.StructuralError("key material not followed by encrypted message") - } - packets.Unread(p) - return readSignedMessage(packets, nil, keyring) - } - } - - var candidates []Key - var decrypted io.ReadCloser - - // Now that we have the list of encrypted keys we need to decrypt at - // least one of them or, if we cannot, we need to call the prompt - // function so that it can decrypt a key or give us a passphrase. -FindKey: - for { - // See if any of the keys already have a private key available - candidates = candidates[:0] - candidateFingerprints := make(map[string]bool) - - for _, pk := range pubKeys { - if pk.key.PrivateKey == nil { - continue - } - if !pk.key.PrivateKey.Encrypted { - if len(pk.encryptedKey.Key) == 0 { - pk.encryptedKey.Decrypt(pk.key.PrivateKey, config) - } - if len(pk.encryptedKey.Key) == 0 { - continue - } - decrypted, err = se.Decrypt(pk.encryptedKey.CipherFunc, pk.encryptedKey.Key) - if err != nil && err != errors.ErrKeyIncorrect { - return nil, err - } - if decrypted != nil { - md.DecryptedWith = pk.key - break FindKey - } - } else { - fpr := string(pk.key.PublicKey.Fingerprint[:]) - if v := candidateFingerprints[fpr]; v { - continue - } - candidates = append(candidates, pk.key) - candidateFingerprints[fpr] = true - } - } - - if len(candidates) == 0 && len(symKeys) == 0 { - return nil, errors.ErrKeyIncorrect - } - - if prompt == nil { - return nil, errors.ErrKeyIncorrect - } - - passphrase, err := prompt(candidates, len(symKeys) != 0) - if err != nil { - return nil, err - } - - // Try the symmetric passphrase first - if len(symKeys) != 0 && passphrase != nil { - for _, s := range symKeys { - key, cipherFunc, err := s.Decrypt(passphrase) - if err == nil { - decrypted, err = se.Decrypt(cipherFunc, key) - if err != nil && err != errors.ErrKeyIncorrect { - return nil, err - } - if decrypted != nil { - break FindKey - } - } - - } - } - } - - md.decrypted = decrypted - if err := packets.Push(decrypted); err != nil { - return nil, err - } - return readSignedMessage(packets, md, keyring) -} - -// readSignedMessage reads a possibly signed message if mdin is non-zero then -// that structure is updated and returned. Otherwise a fresh MessageDetails is -// used. -func readSignedMessage(packets *packet.Reader, mdin *MessageDetails, keyring KeyRing) (md *MessageDetails, err error) { - if mdin == nil { - mdin = new(MessageDetails) - } - md = mdin - - var p packet.Packet - var h hash.Hash - var wrappedHash hash.Hash -FindLiteralData: - for { - p, err = packets.Next() - if err != nil { - return nil, err - } - switch p := p.(type) { - case *packet.Compressed: - if err := packets.Push(p.Body); err != nil { - return nil, err - } - case *packet.OnePassSignature: - if !p.IsLast { - return nil, errors.UnsupportedError("nested signatures") - } - - h, wrappedHash, err = hashForSignature(p.Hash, p.SigType) - if err != nil { - md = nil - return - } - - md.IsSigned = true - md.SignedByKeyId = p.KeyId - keys := keyring.KeysByIdUsage(p.KeyId, packet.KeyFlagSign) - if len(keys) > 0 { - md.SignedBy = &keys[0] - } - case *packet.LiteralData: - md.LiteralData = p - break FindLiteralData - } - } - - if md.SignedBy != nil { - md.UnverifiedBody = &signatureCheckReader{packets, h, wrappedHash, md} - } else if md.decrypted != nil { - md.UnverifiedBody = checkReader{md} - } else { - md.UnverifiedBody = md.LiteralData.Body - } - - return md, nil -} - -// hashForSignature returns a pair of hashes that can be used to verify a -// signature. The signature may specify that the contents of the signed message -// should be preprocessed (i.e. to normalize line endings). Thus this function -// returns two hashes. The second should be used to hash the message itself and -// performs any needed preprocessing. -func hashForSignature(hashId crypto.Hash, sigType packet.SignatureType) (hash.Hash, hash.Hash, error) { - if !hashId.Available() { - return nil, nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hashId))) - } - h := hashId.New() - - switch sigType { - case packet.SigTypeBinary: - return h, h, nil - case packet.SigTypeText: - return h, NewCanonicalTextHash(h), nil - } - - return nil, nil, errors.UnsupportedError("unsupported signature type: " + strconv.Itoa(int(sigType))) -} - -// checkReader wraps an io.Reader from a LiteralData packet. When it sees EOF -// it closes the ReadCloser from any SymmetricallyEncrypted packet to trigger -// MDC checks. -type checkReader struct { - md *MessageDetails -} - -func (cr checkReader) Read(buf []byte) (n int, err error) { - n, err = cr.md.LiteralData.Body.Read(buf) - if err == io.EOF { - mdcErr := cr.md.decrypted.Close() - if mdcErr != nil { - err = mdcErr - } - } - return -} - -// signatureCheckReader wraps an io.Reader from a LiteralData packet and hashes -// the data as it is read. When it sees an EOF from the underlying io.Reader -// it parses and checks a trailing Signature packet and triggers any MDC checks. -type signatureCheckReader struct { - packets *packet.Reader - h, wrappedHash hash.Hash - md *MessageDetails -} - -func (scr *signatureCheckReader) Read(buf []byte) (n int, err error) { - n, err = scr.md.LiteralData.Body.Read(buf) - scr.wrappedHash.Write(buf[:n]) - if err == io.EOF { - var p packet.Packet - p, scr.md.SignatureError = scr.packets.Next() - if scr.md.SignatureError != nil { - return - } - - var ok bool - if scr.md.Signature, ok = p.(*packet.Signature); !ok { - scr.md.SignatureError = errors.StructuralError("LiteralData not followed by Signature") - return - } - - scr.md.SignatureError = scr.md.SignedBy.PublicKey.VerifySignature(scr.h, scr.md.Signature) - - // The SymmetricallyEncrypted packet, if any, might have an - // unsigned hash of its own. In order to check this we need to - // close that Reader. - if scr.md.decrypted != nil { - mdcErr := scr.md.decrypted.Close() - if mdcErr != nil { - err = mdcErr - } - } - } - return -} - -// CheckDetachedSignature takes a signed file and a detached signature and -// returns the signer if the signature is valid. If the signer isn't known, -// ErrUnknownIssuer is returned. -func CheckDetachedSignature(keyring KeyRing, signed, signature io.Reader) (signer *Entity, err error) { - var issuerKeyId uint64 - var hashFunc crypto.Hash - var sigType packet.SignatureType - var keys []Key - var p packet.Packet - - packets := packet.NewReader(signature) - for { - p, err = packets.Next() - if err == io.EOF { - return nil, errors.ErrUnknownIssuer - } - if err != nil { - return nil, err - } - - switch sig := p.(type) { - case *packet.Signature: - if sig.IssuerKeyId == nil { - return nil, errors.StructuralError("signature doesn't have an issuer") - } - issuerKeyId = *sig.IssuerKeyId - hashFunc = sig.Hash - sigType = sig.SigType - case *packet.SignatureV3: - issuerKeyId = sig.IssuerKeyId - hashFunc = sig.Hash - sigType = sig.SigType - default: - return nil, errors.StructuralError("non signature packet found") - } - - keys = keyring.KeysByIdUsage(issuerKeyId, packet.KeyFlagSign) - if len(keys) > 0 { - break - } - } - - if len(keys) == 0 { - panic("unreachable") - } - - h, wrappedHash, err := hashForSignature(hashFunc, sigType) - if err != nil { - return nil, err - } - - if _, err := io.Copy(wrappedHash, signed); err != nil && err != io.EOF { - return nil, err - } - - for _, key := range keys { - switch sig := p.(type) { - case *packet.Signature: - err = key.PublicKey.VerifySignature(h, sig) - case *packet.SignatureV3: - err = key.PublicKey.VerifySignatureV3(h, sig) - default: - panic("unreachable") - } - - if err == nil { - return key.Entity, nil - } - } - - return nil, err -} - -// CheckArmoredDetachedSignature performs the same actions as -// CheckDetachedSignature but expects the signature to be armored. -func CheckArmoredDetachedSignature(keyring KeyRing, signed, signature io.Reader) (signer *Entity, err error) { - body, err := readArmored(signature, SignatureType) - if err != nil { - return - } - - return CheckDetachedSignature(keyring, signed, body) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/read_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/read_test.go deleted file mode 100644 index 62ba5ac2..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/read_test.go +++ /dev/null @@ -1,512 +0,0 @@ -// 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 openpgp - -import ( - "bytes" - _ "crypto/sha512" - "encoding/hex" - "io" - "io/ioutil" - "strings" - "testing" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" -) - -func readerFromHex(s string) io.Reader { - data, err := hex.DecodeString(s) - if err != nil { - panic("readerFromHex: bad input") - } - return bytes.NewBuffer(data) -} - -func TestReadKeyRing(t *testing.T) { - kring, err := ReadKeyRing(readerFromHex(testKeys1And2Hex)) - if err != nil { - t.Error(err) - return - } - if len(kring) != 2 || uint32(kring[0].PrimaryKey.KeyId) != 0xC20C31BB || uint32(kring[1].PrimaryKey.KeyId) != 0x1E35246B { - t.Errorf("bad keyring: %#v", kring) - } -} - -func TestRereadKeyRing(t *testing.T) { - kring, err := ReadKeyRing(readerFromHex(testKeys1And2Hex)) - if err != nil { - t.Errorf("error in initial parse: %s", err) - return - } - out := new(bytes.Buffer) - err = kring[0].Serialize(out) - if err != nil { - t.Errorf("error in serialization: %s", err) - return - } - kring, err = ReadKeyRing(out) - if err != nil { - t.Errorf("error in second parse: %s", err) - return - } - - if len(kring) != 1 || uint32(kring[0].PrimaryKey.KeyId) != 0xC20C31BB { - t.Errorf("bad keyring: %#v", kring) - } -} - -func TestReadPrivateKeyRing(t *testing.T) { - kring, err := ReadKeyRing(readerFromHex(testKeys1And2PrivateHex)) - if err != nil { - t.Error(err) - return - } - if len(kring) != 2 || uint32(kring[0].PrimaryKey.KeyId) != 0xC20C31BB || uint32(kring[1].PrimaryKey.KeyId) != 0x1E35246B || kring[0].PrimaryKey == nil { - t.Errorf("bad keyring: %#v", kring) - } -} - -func TestReadDSAKey(t *testing.T) { - kring, err := ReadKeyRing(readerFromHex(dsaTestKeyHex)) - if err != nil { - t.Error(err) - return - } - if len(kring) != 1 || uint32(kring[0].PrimaryKey.KeyId) != 0x0CCC0360 { - t.Errorf("bad parse: %#v", kring) - } -} - -func TestDSAHashTruncatation(t *testing.T) { - // dsaKeyWithSHA512 was generated with GnuPG and --cert-digest-algo - // SHA512 in order to require DSA hash truncation to verify correctly. - _, err := ReadKeyRing(readerFromHex(dsaKeyWithSHA512)) - if err != nil { - t.Error(err) - } -} - -func TestGetKeyById(t *testing.T) { - kring, _ := ReadKeyRing(readerFromHex(testKeys1And2Hex)) - - keys := kring.KeysById(0xa34d7e18c20c31bb) - if len(keys) != 1 || keys[0].Entity != kring[0] { - t.Errorf("bad result for 0xa34d7e18c20c31bb: %#v", keys) - } - - keys = kring.KeysById(0xfd94408d4543314f) - if len(keys) != 1 || keys[0].Entity != kring[0] { - t.Errorf("bad result for 0xa34d7e18c20c31bb: %#v", keys) - } -} - -func checkSignedMessage(t *testing.T, signedHex, expected string) { - kring, _ := ReadKeyRing(readerFromHex(testKeys1And2Hex)) - - md, err := ReadMessage(readerFromHex(signedHex), kring, nil, nil) - if err != nil { - t.Error(err) - return - } - - if !md.IsSigned || md.SignedByKeyId != 0xa34d7e18c20c31bb || md.SignedBy == nil || md.IsEncrypted || md.IsSymmetricallyEncrypted || len(md.EncryptedToKeyIds) != 0 || md.IsSymmetricallyEncrypted { - t.Errorf("bad MessageDetails: %#v", md) - } - - contents, err := ioutil.ReadAll(md.UnverifiedBody) - if err != nil { - t.Errorf("error reading UnverifiedBody: %s", err) - } - if string(contents) != expected { - t.Errorf("bad UnverifiedBody got:%s want:%s", string(contents), expected) - } - if md.SignatureError != nil || md.Signature == nil { - t.Errorf("failed to validate: %s", md.SignatureError) - } -} - -func TestSignedMessage(t *testing.T) { - checkSignedMessage(t, signedMessageHex, signedInput) -} - -func TestTextSignedMessage(t *testing.T) { - checkSignedMessage(t, signedTextMessageHex, signedTextInput) -} - -// The reader should detect "compressed quines", which are compressed -// packets that expand into themselves and cause an infinite recursive -// parsing loop. -// The packet in this test case comes from Taylor R. Campbell at -// http://mumble.net/~campbell/misc/pgp-quine/ -func TestCampbellQuine(t *testing.T) { - md, err := ReadMessage(readerFromHex(campbellQuine), nil, nil, nil) - if md != nil { - t.Errorf("Reading a compressed quine should not return any data: %#v", md) - } - structural, ok := err.(errors.StructuralError) - if !ok { - t.Fatalf("Unexpected class of error: %T", err) - } - if !strings.Contains(string(structural), "too many layers of packets") { - t.Fatalf("Unexpected error: %s", err) - } -} - -var signedEncryptedMessageTests = []struct { - keyRingHex string - messageHex string - signedByKeyId uint64 - encryptedToKeyId uint64 -}{ - { - testKeys1And2PrivateHex, - signedEncryptedMessageHex, - 0xa34d7e18c20c31bb, - 0x2a67d68660df41c7, - }, - { - dsaElGamalTestKeysHex, - signedEncryptedMessage2Hex, - 0x33af447ccd759b09, - 0xcf6a7abcd43e3673, - }, -} - -func TestSignedEncryptedMessage(t *testing.T) { - for i, test := range signedEncryptedMessageTests { - expected := "Signed and encrypted message\n" - kring, _ := ReadKeyRing(readerFromHex(test.keyRingHex)) - prompt := func(keys []Key, symmetric bool) ([]byte, error) { - if symmetric { - t.Errorf("prompt: message was marked as symmetrically encrypted") - return nil, errors.ErrKeyIncorrect - } - - if len(keys) == 0 { - t.Error("prompt: no keys requested") - return nil, errors.ErrKeyIncorrect - } - - err := keys[0].PrivateKey.Decrypt([]byte("passphrase")) - if err != nil { - t.Errorf("prompt: error decrypting key: %s", err) - return nil, errors.ErrKeyIncorrect - } - - return nil, nil - } - - md, err := ReadMessage(readerFromHex(test.messageHex), kring, prompt, nil) - if err != nil { - t.Errorf("#%d: error reading message: %s", i, err) - return - } - - if !md.IsSigned || md.SignedByKeyId != test.signedByKeyId || md.SignedBy == nil || !md.IsEncrypted || md.IsSymmetricallyEncrypted || len(md.EncryptedToKeyIds) == 0 || md.EncryptedToKeyIds[0] != test.encryptedToKeyId { - t.Errorf("#%d: bad MessageDetails: %#v", i, md) - } - - contents, err := ioutil.ReadAll(md.UnverifiedBody) - if err != nil { - t.Errorf("#%d: error reading UnverifiedBody: %s", i, err) - } - if string(contents) != expected { - t.Errorf("#%d: bad UnverifiedBody got:%s want:%s", i, string(contents), expected) - } - - if md.SignatureError != nil || md.Signature == nil { - t.Errorf("#%d: failed to validate: %s", i, md.SignatureError) - } - } -} - -func TestUnspecifiedRecipient(t *testing.T) { - expected := "Recipient unspecified\n" - kring, _ := ReadKeyRing(readerFromHex(testKeys1And2PrivateHex)) - - md, err := ReadMessage(readerFromHex(recipientUnspecifiedHex), kring, nil, nil) - if err != nil { - t.Errorf("error reading message: %s", err) - return - } - - contents, err := ioutil.ReadAll(md.UnverifiedBody) - if err != nil { - t.Errorf("error reading UnverifiedBody: %s", err) - } - if string(contents) != expected { - t.Errorf("bad UnverifiedBody got:%s want:%s", string(contents), expected) - } -} - -func TestSymmetricallyEncrypted(t *testing.T) { - firstTimeCalled := true - - prompt := func(keys []Key, symmetric bool) ([]byte, error) { - if len(keys) != 0 { - t.Errorf("prompt: len(keys) = %d (want 0)", len(keys)) - } - - if !symmetric { - t.Errorf("symmetric is not set") - } - - if firstTimeCalled { - firstTimeCalled = false - return []byte("wrongpassword"), nil - } - - return []byte("password"), nil - } - - md, err := ReadMessage(readerFromHex(symmetricallyEncryptedCompressedHex), nil, prompt, nil) - if err != nil { - t.Errorf("ReadMessage: %s", err) - return - } - - contents, err := ioutil.ReadAll(md.UnverifiedBody) - if err != nil { - t.Errorf("ReadAll: %s", err) - } - - expectedCreationTime := uint32(1295992998) - if md.LiteralData.Time != expectedCreationTime { - t.Errorf("LiteralData.Time is %d, want %d", md.LiteralData.Time, expectedCreationTime) - } - - const expected = "Symmetrically encrypted.\n" - if string(contents) != expected { - t.Errorf("contents got: %s want: %s", string(contents), expected) - } -} - -func testDetachedSignature(t *testing.T, kring KeyRing, signature io.Reader, sigInput, tag string, expectedSignerKeyId uint64) { - signed := bytes.NewBufferString(sigInput) - signer, err := CheckDetachedSignature(kring, signed, signature) - if err != nil { - t.Errorf("%s: signature error: %s", tag, err) - return - } - if signer == nil { - t.Errorf("%s: signer is nil", tag) - return - } - if signer.PrimaryKey.KeyId != expectedSignerKeyId { - t.Errorf("%s: wrong signer got:%x want:%x", tag, signer.PrimaryKey.KeyId, expectedSignerKeyId) - } -} - -func TestDetachedSignature(t *testing.T) { - kring, _ := ReadKeyRing(readerFromHex(testKeys1And2Hex)) - testDetachedSignature(t, kring, readerFromHex(detachedSignatureHex), signedInput, "binary", testKey1KeyId) - testDetachedSignature(t, kring, readerFromHex(detachedSignatureTextHex), signedInput, "text", testKey1KeyId) - testDetachedSignature(t, kring, readerFromHex(detachedSignatureV3TextHex), signedInput, "v3", testKey1KeyId) - - incorrectSignedInput := signedInput + "X" - _, err := CheckDetachedSignature(kring, bytes.NewBufferString(incorrectSignedInput), readerFromHex(detachedSignatureHex)) - if err == nil { - t.Fatal("CheckDetachedSignature returned without error for bad signature") - } - if err == errors.ErrUnknownIssuer { - t.Fatal("CheckDetachedSignature returned ErrUnknownIssuer when the signer was known, but the signature invalid") - } -} - -func TestDetachedSignatureDSA(t *testing.T) { - kring, _ := ReadKeyRing(readerFromHex(dsaTestKeyHex)) - testDetachedSignature(t, kring, readerFromHex(detachedSignatureDSAHex), signedInput, "binary", testKey3KeyId) -} - -func TestMultipleSignaturePacketsDSA(t *testing.T) { - kring, _ := ReadKeyRing(readerFromHex(dsaTestKeyHex)) - testDetachedSignature(t, kring, readerFromHex(missingHashFunctionHex+detachedSignatureDSAHex), signedInput, "binary", testKey3KeyId) -} - -func testHashFunctionError(t *testing.T, signatureHex string) { - kring, _ := ReadKeyRing(readerFromHex(testKeys1And2Hex)) - _, err := CheckDetachedSignature(kring, nil, readerFromHex(signatureHex)) - if err == nil { - t.Fatal("Packet with bad hash type was correctly parsed") - } - unsupported, ok := err.(errors.UnsupportedError) - if !ok { - t.Fatalf("Unexpected class of error: %s", err) - } - if !strings.Contains(string(unsupported), "hash ") { - t.Fatalf("Unexpected error: %s", err) - } -} - -func TestUnknownHashFunction(t *testing.T) { - // unknownHashFunctionHex contains a signature packet with hash - // function type 153 (which isn't a real hash function id). - testHashFunctionError(t, unknownHashFunctionHex) -} - -func TestMissingHashFunction(t *testing.T) { - // missingHashFunctionHex contains a signature packet that uses - // RIPEMD160, which isn't compiled in. Since that's the only signature - // packet we don't find any suitable packets and end up with ErrUnknownIssuer - kring, _ := ReadKeyRing(readerFromHex(testKeys1And2Hex)) - _, err := CheckDetachedSignature(kring, nil, readerFromHex(missingHashFunctionHex)) - if err == nil { - t.Fatal("Packet with missing hash type was correctly parsed") - } - if err != errors.ErrUnknownIssuer { - t.Fatalf("Unexpected class of error: %s", err) - } -} - -func TestReadingArmoredPrivateKey(t *testing.T) { - el, err := ReadArmoredKeyRing(bytes.NewBufferString(armoredPrivateKeyBlock)) - if err != nil { - t.Error(err) - } - if len(el) != 1 { - t.Errorf("got %d entities, wanted 1\n", len(el)) - } -} - -func TestReadingArmoredPublicKey(t *testing.T) { - el, err := ReadArmoredKeyRing(bytes.NewBufferString(e2ePublicKey)) - if err != nil { - t.Error(err) - } - if len(el) != 1 { - t.Errorf("didn't get a valid entity") - } -} - -func TestNoArmoredData(t *testing.T) { - _, err := ReadArmoredKeyRing(bytes.NewBufferString("foo")) - if _, ok := err.(errors.InvalidArgumentError); !ok { - t.Errorf("error was not an InvalidArgumentError: %s", err) - } -} - -func testReadMessageError(t *testing.T, messageHex string) { - buf, err := hex.DecodeString(messageHex) - if err != nil { - t.Errorf("hex.DecodeString(): %v", err) - } - - kr, err := ReadKeyRing(new(bytes.Buffer)) - if err != nil { - t.Errorf("ReadKeyring(): %v", err) - } - - _, err = ReadMessage(bytes.NewBuffer(buf), kr, - func([]Key, bool) ([]byte, error) { - return []byte("insecure"), nil - }, nil) - - if err == nil { - t.Errorf("ReadMessage(): Unexpected nil error") - } -} - -func TestIssue11503(t *testing.T) { - testReadMessageError(t, "8c040402000aa430aa8228b9248b01fc899a91197130303030") -} - -func TestIssue11504(t *testing.T) { - testReadMessageError(t, "9303000130303030303030303030983002303030303030030000000130") -} - -const testKey1KeyId = 0xA34D7E18C20C31BB -const testKey3KeyId = 0x338934250CCC0360 - -const signedInput = "Signed message\nline 2\nline 3\n" -const signedTextInput = "Signed message\r\nline 2\r\nline 3\r\n" - -const recipientUnspecifiedHex = "848c0300000000000000000103ff62d4d578d03cf40c3da998dfe216c074fa6ddec5e31c197c9666ba292830d91d18716a80f699f9d897389a90e6d62d0238f5f07a5248073c0f24920e4bc4a30c2d17ee4e0cae7c3d4aaa4e8dced50e3010a80ee692175fa0385f62ecca4b56ee6e9980aa3ec51b61b077096ac9e800edaf161268593eedb6cc7027ff5cb32745d250010d407a6221ae22ef18469b444f2822478c4d190b24d36371a95cb40087cdd42d9399c3d06a53c0673349bfb607927f20d1e122bde1e2bf3aa6cae6edf489629bcaa0689539ae3b718914d88ededc3b" - -const detachedSignatureHex = "889c04000102000605024d449cd1000a0910a34d7e18c20c31bb167603ff57718d09f28a519fdc7b5a68b6a3336da04df85e38c5cd5d5bd2092fa4629848a33d85b1729402a2aab39c3ac19f9d573f773cc62c264dc924c067a79dfd8a863ae06c7c8686120760749f5fd9b1e03a64d20a7df3446ddc8f0aeadeaeba7cbaee5c1e366d65b6a0c6cc749bcb912d2f15013f812795c2e29eb7f7b77f39ce77" - -const detachedSignatureTextHex = "889c04010102000605024d449d21000a0910a34d7e18c20c31bbc8c60400a24fbef7342603a41cb1165767bd18985d015fb72fe05db42db36cfb2f1d455967f1e491194fbf6cf88146222b23bf6ffbd50d17598d976a0417d3192ff9cc0034fd00f287b02e90418bbefe609484b09231e4e7a5f3562e199bf39909ab5276c4d37382fe088f6b5c3426fc1052865da8b3ab158672d58b6264b10823dc4b39" - -const detachedSignatureV3TextHex = "8900950305005255c25ca34d7e18c20c31bb0102bb3f04009f6589ef8a028d6e54f6eaf25432e590d31c3a41f4710897585e10c31e5e332c7f9f409af8512adceaff24d0da1474ab07aa7bce4f674610b010fccc5b579ae5eb00a127f272fb799f988ab8e4574c141da6dbfecfef7e6b2c478d9a3d2551ba741f260ee22bec762812f0053e05380bfdd55ad0f22d8cdf71b233fe51ae8a24" - -const detachedSignatureDSAHex = "884604001102000605024d6c4eac000a0910338934250ccc0360f18d00a087d743d6405ed7b87755476629600b8b694a39e900a0abff8126f46faf1547c1743c37b21b4ea15b8f83" - -const testKeys1And2Hex = "988d044d3c5c10010400b1d13382944bd5aba23a4312968b5095d14f947f600eb478e14a6fcb16b0e0cac764884909c020bc495cfcc39a935387c661507bdb236a0612fb582cac3af9b29cc2c8c70090616c41b662f4da4c1201e195472eb7f4ae1ccbcbf9940fe21d985e379a5563dde5b9a23d35f1cfaa5790da3b79db26f23695107bfaca8e7b5bcd0011010001b41054657374204b6579203120285253412988b804130102002205024d3c5c10021b03060b090807030206150802090a0b0416020301021e01021780000a0910a34d7e18c20c31bbb5b304009cc45fe610b641a2c146331be94dade0a396e73ca725e1b25c21708d9cab46ecca5ccebc23055879df8f99eea39b377962a400f2ebdc36a7c99c333d74aeba346315137c3ff9d0a09b0273299090343048afb8107cf94cbd1400e3026f0ccac7ecebbc4d78588eb3e478fe2754d3ca664bcf3eac96ca4a6b0c8d7df5102f60f6b0020003b88d044d3c5c10010400b201df61d67487301f11879d514f4248ade90c8f68c7af1284c161098de4c28c2850f1ec7b8e30f959793e571542ffc6532189409cb51c3d30dad78c4ad5165eda18b20d9826d8707d0f742e2ab492103a85bbd9ddf4f5720f6de7064feb0d39ee002219765bb07bcfb8b877f47abe270ddeda4f676108cecb6b9bb2ad484a4f0011010001889f04180102000905024d3c5c10021b0c000a0910a34d7e18c20c31bb1a03040085c8d62e16d05dc4e9dad64953c8a2eed8b6c12f92b1575eeaa6dcf7be9473dd5b24b37b6dffbb4e7c99ed1bd3cb11634be19b3e6e207bed7505c7ca111ccf47cb323bf1f8851eb6360e8034cbff8dd149993c959de89f8f77f38e7e98b8e3076323aa719328e2b408db5ec0d03936efd57422ba04f925cdc7b4c1af7590e40ab0020003988d044d3c5c33010400b488c3e5f83f4d561f317817538d9d0397981e9aef1321ca68ebfae1cf8b7d388e19f4b5a24a82e2fbbf1c6c26557a6c5845307a03d815756f564ac7325b02bc83e87d5480a8fae848f07cb891f2d51ce7df83dcafdc12324517c86d472cc0ee10d47a68fd1d9ae49a6c19bbd36d82af597a0d88cc9c49de9df4e696fc1f0b5d0011010001b42754657374204b6579203220285253412c20656e637279707465642070726976617465206b65792988b804130102002205024d3c5c33021b03060b090807030206150802090a0b0416020301021e01021780000a0910d4984f961e35246b98940400908a73b6a6169f700434f076c6c79015a49bee37130eaf23aaa3cfa9ce60bfe4acaa7bc95f1146ada5867e0079babb38804891f4f0b8ebca57a86b249dee786161a755b7a342e68ccf3f78ed6440a93a6626beb9a37aa66afcd4f888790cb4bb46d94a4ae3eb3d7d3e6b00f6bfec940303e89ec5b32a1eaaacce66497d539328b0020003b88d044d3c5c33010400a4e913f9442abcc7f1804ccab27d2f787ffa592077ca935a8bb23165bd8d57576acac647cc596b2c3f814518cc8c82953c7a4478f32e0cf645630a5ba38d9618ef2bc3add69d459ae3dece5cab778938d988239f8c5ae437807075e06c828019959c644ff05ef6a5a1dab72227c98e3a040b0cf219026640698d7a13d8538a570011010001889f04180102000905024d3c5c33021b0c000a0910d4984f961e35246b26c703ff7ee29ef53bc1ae1ead533c408fa136db508434e233d6e62be621e031e5940bbd4c08142aed0f82217e7c3e1ec8de574bc06ccf3c36633be41ad78a9eacd209f861cae7b064100758545cc9dd83db71806dc1cfd5fb9ae5c7474bba0c19c44034ae61bae5eca379383339dece94ff56ff7aa44a582f3e5c38f45763af577c0934b0020003" - -const testKeys1And2PrivateHex = "9501d8044d3c5c10010400b1d13382944bd5aba23a4312968b5095d14f947f600eb478e14a6fcb16b0e0cac764884909c020bc495cfcc39a935387c661507bdb236a0612fb582cac3af9b29cc2c8c70090616c41b662f4da4c1201e195472eb7f4ae1ccbcbf9940fe21d985e379a5563dde5b9a23d35f1cfaa5790da3b79db26f23695107bfaca8e7b5bcd00110100010003ff4d91393b9a8e3430b14d6209df42f98dc927425b881f1209f319220841273a802a97c7bdb8b3a7740b3ab5866c4d1d308ad0d3a79bd1e883aacf1ac92dfe720285d10d08752a7efe3c609b1d00f17f2805b217be53999a7da7e493bfc3e9618fd17018991b8128aea70a05dbce30e4fbe626aa45775fa255dd9177aabf4df7cf0200c1ded12566e4bc2bb590455e5becfb2e2c9796482270a943343a7835de41080582c2be3caf5981aa838140e97afa40ad652a0b544f83eb1833b0957dce26e47b0200eacd6046741e9ce2ec5beb6fb5e6335457844fb09477f83b050a96be7da043e17f3a9523567ed40e7a521f818813a8b8a72209f1442844843ccc7eb9805442570200bdafe0438d97ac36e773c7162028d65844c4d463e2420aa2228c6e50dc2743c3d6c72d0d782a5173fe7be2169c8a9f4ef8a7cf3e37165e8c61b89c346cdc6c1799d2b41054657374204b6579203120285253412988b804130102002205024d3c5c10021b03060b090807030206150802090a0b0416020301021e01021780000a0910a34d7e18c20c31bbb5b304009cc45fe610b641a2c146331be94dade0a396e73ca725e1b25c21708d9cab46ecca5ccebc23055879df8f99eea39b377962a400f2ebdc36a7c99c333d74aeba346315137c3ff9d0a09b0273299090343048afb8107cf94cbd1400e3026f0ccac7ecebbc4d78588eb3e478fe2754d3ca664bcf3eac96ca4a6b0c8d7df5102f60f6b00200009d01d8044d3c5c10010400b201df61d67487301f11879d514f4248ade90c8f68c7af1284c161098de4c28c2850f1ec7b8e30f959793e571542ffc6532189409cb51c3d30dad78c4ad5165eda18b20d9826d8707d0f742e2ab492103a85bbd9ddf4f5720f6de7064feb0d39ee002219765bb07bcfb8b877f47abe270ddeda4f676108cecb6b9bb2ad484a4f00110100010003fd17a7490c22a79c59281fb7b20f5e6553ec0c1637ae382e8adaea295f50241037f8997cf42c1ce26417e015091451b15424b2c59eb8d4161b0975630408e394d3b00f88d4b4e18e2cc85e8251d4753a27c639c83f5ad4a571c4f19d7cd460b9b73c25ade730c99df09637bd173d8e3e981ac64432078263bb6dc30d3e974150dd0200d0ee05be3d4604d2146fb0457f31ba17c057560785aa804e8ca5530a7cd81d3440d0f4ba6851efcfd3954b7e68908fc0ba47f7ac37bf559c6c168b70d3a7c8cd0200da1c677c4bce06a068070f2b3733b0a714e88d62aa3f9a26c6f5216d48d5c2b5624144f3807c0df30be66b3268eeeca4df1fbded58faf49fc95dc3c35f134f8b01fd1396b6c0fc1b6c4f0eb8f5e44b8eace1e6073e20d0b8bc5385f86f1cf3f050f66af789f3ef1fc107b7f4421e19e0349c730c68f0a226981f4e889054fdb4dc149e8e889f04180102000905024d3c5c10021b0c000a0910a34d7e18c20c31bb1a03040085c8d62e16d05dc4e9dad64953c8a2eed8b6c12f92b1575eeaa6dcf7be9473dd5b24b37b6dffbb4e7c99ed1bd3cb11634be19b3e6e207bed7505c7ca111ccf47cb323bf1f8851eb6360e8034cbff8dd149993c959de89f8f77f38e7e98b8e3076323aa719328e2b408db5ec0d03936efd57422ba04f925cdc7b4c1af7590e40ab00200009501fe044d3c5c33010400b488c3e5f83f4d561f317817538d9d0397981e9aef1321ca68ebfae1cf8b7d388e19f4b5a24a82e2fbbf1c6c26557a6c5845307a03d815756f564ac7325b02bc83e87d5480a8fae848f07cb891f2d51ce7df83dcafdc12324517c86d472cc0ee10d47a68fd1d9ae49a6c19bbd36d82af597a0d88cc9c49de9df4e696fc1f0b5d0011010001fe030302e9030f3c783e14856063f16938530e148bc57a7aa3f3e4f90df9dceccdc779bc0835e1ad3d006e4a8d7b36d08b8e0de5a0d947254ecfbd22037e6572b426bcfdc517796b224b0036ff90bc574b5509bede85512f2eefb520fb4b02aa523ba739bff424a6fe81c5041f253f8d757e69a503d3563a104d0d49e9e890b9d0c26f96b55b743883b472caa7050c4acfd4a21f875bdf1258d88bd61224d303dc9df77f743137d51e6d5246b88c406780528fd9a3e15bab5452e5b93970d9dcc79f48b38651b9f15bfbcf6da452837e9cc70683d1bdca94507870f743e4ad902005812488dd342f836e72869afd00ce1850eea4cfa53ce10e3608e13d3c149394ee3cbd0e23d018fcbcb6e2ec5a1a22972d1d462ca05355d0d290dd2751e550d5efb38c6c89686344df64852bf4ff86638708f644e8ec6bd4af9b50d8541cb91891a431326ab2e332faa7ae86cfb6e0540aa63160c1e5cdd5a4add518b303fff0a20117c6bc77f7cfbaf36b04c865c6c2b42754657374204b6579203220285253412c20656e637279707465642070726976617465206b65792988b804130102002205024d3c5c33021b03060b090807030206150802090a0b0416020301021e01021780000a0910d4984f961e35246b98940400908a73b6a6169f700434f076c6c79015a49bee37130eaf23aaa3cfa9ce60bfe4acaa7bc95f1146ada5867e0079babb38804891f4f0b8ebca57a86b249dee786161a755b7a342e68ccf3f78ed6440a93a6626beb9a37aa66afcd4f888790cb4bb46d94a4ae3eb3d7d3e6b00f6bfec940303e89ec5b32a1eaaacce66497d539328b00200009d01fe044d3c5c33010400a4e913f9442abcc7f1804ccab27d2f787ffa592077ca935a8bb23165bd8d57576acac647cc596b2c3f814518cc8c82953c7a4478f32e0cf645630a5ba38d9618ef2bc3add69d459ae3dece5cab778938d988239f8c5ae437807075e06c828019959c644ff05ef6a5a1dab72227c98e3a040b0cf219026640698d7a13d8538a570011010001fe030302e9030f3c783e148560f936097339ae381d63116efcf802ff8b1c9360767db5219cc987375702a4123fd8657d3e22700f23f95020d1b261eda5257e9a72f9a918e8ef22dd5b3323ae03bbc1923dd224db988cadc16acc04b120a9f8b7e84da9716c53e0334d7b66586ddb9014df604b41be1e960dcfcbc96f4ed150a1a0dd070b9eb14276b9b6be413a769a75b519a53d3ecc0c220e85cd91ca354d57e7344517e64b43b6e29823cbd87eae26e2b2e78e6dedfbb76e3e9f77bcb844f9a8932eb3db2c3f9e44316e6f5d60e9e2a56e46b72abe6b06dc9a31cc63f10023d1f5e12d2a3ee93b675c96f504af0001220991c88db759e231b3320dcedf814dcf723fd9857e3d72d66a0f2af26950b915abdf56c1596f46a325bf17ad4810d3535fb02a259b247ac3dbd4cc3ecf9c51b6c07cebb009c1506fba0a89321ec8683e3fd009a6e551d50243e2d5092fefb3321083a4bad91320dc624bd6b5dddf93553e3d53924c05bfebec1fb4bd47e89a1a889f04180102000905024d3c5c33021b0c000a0910d4984f961e35246b26c703ff7ee29ef53bc1ae1ead533c408fa136db508434e233d6e62be621e031e5940bbd4c08142aed0f82217e7c3e1ec8de574bc06ccf3c36633be41ad78a9eacd209f861cae7b064100758545cc9dd83db71806dc1cfd5fb9ae5c7474bba0c19c44034ae61bae5eca379383339dece94ff56ff7aa44a582f3e5c38f45763af577c0934b0020000" - -const dsaElGamalTestKeysHex = "9501e1044dfcb16a110400aa3e5c1a1f43dd28c2ffae8abf5cfce555ee874134d8ba0a0f7b868ce2214beddc74e5e1e21ded354a95d18acdaf69e5e342371a71fbb9093162e0c5f3427de413a7f2c157d83f5cd2f9d791256dc4f6f0e13f13c3302af27f2384075ab3021dff7a050e14854bbde0a1094174855fc02f0bae8e00a340d94a1f22b32e48485700a0cec672ac21258fb95f61de2ce1af74b2c4fa3e6703ff698edc9be22c02ae4d916e4fa223f819d46582c0516235848a77b577ea49018dcd5e9e15cff9dbb4663a1ae6dd7580fa40946d40c05f72814b0f88481207e6c0832c3bded4853ebba0a7e3bd8e8c66df33d5a537cd4acf946d1080e7a3dcea679cb2b11a72a33a2b6a9dc85f466ad2ddf4c3db6283fa645343286971e3dd700703fc0c4e290d45767f370831a90187e74e9972aae5bff488eeff7d620af0362bfb95c1a6c3413ab5d15a2e4139e5d07a54d72583914661ed6a87cce810be28a0aa8879a2dd39e52fb6fe800f4f181ac7e328f740cde3d09a05cecf9483e4cca4253e60d4429ffd679d9996a520012aad119878c941e3cf151459873bdfc2a9563472fe0303027a728f9feb3b864260a1babe83925ce794710cfd642ee4ae0e5b9d74cee49e9c67b6cd0ea5dfbb582132195a121356a1513e1bca73e5b80c58c7ccb4164453412f456c47616d616c2054657374204b65792031886204131102002205024dfcb16a021b03060b090807030206150802090a0b0416020301021e01021780000a091033af447ccd759b09fadd00a0b8fd6f5a790bad7e9f2dbb7632046dc4493588db009c087c6a9ba9f7f49fab221587a74788c00db4889ab00200009d0157044dfcb16a1004008dec3f9291205255ccff8c532318133a6840739dd68b03ba942676f9038612071447bf07d00d559c5c0875724ea16a4c774f80d8338b55fca691a0522e530e604215b467bbc9ccfd483a1da99d7bc2648b4318fdbd27766fc8bfad3fddb37c62b8ae7ccfe9577e9b8d1e77c1d417ed2c2ef02d52f4da11600d85d3229607943700030503ff506c94c87c8cab778e963b76cf63770f0a79bf48fb49d3b4e52234620fc9f7657f9f8d56c96a2b7c7826ae6b57ebb2221a3fe154b03b6637cea7e6d98e3e45d87cf8dc432f723d3d71f89c5192ac8d7290684d2c25ce55846a80c9a7823f6acd9bb29fa6cd71f20bc90eccfca20451d0c976e460e672b000df49466408d527affe0303027a728f9feb3b864260abd761730327bca2aaa4ea0525c175e92bf240682a0e83b226f97ecb2e935b62c9a133858ce31b271fa8eb41f6a1b3cd72a63025ce1a75ee4180dcc284884904181102000905024dfcb16a021b0c000a091033af447ccd759b09dd0b009e3c3e7296092c81bee5a19929462caaf2fff3ae26009e218c437a2340e7ea628149af1ec98ec091a43992b00200009501e1044dfcb1be1104009f61faa61aa43df75d128cbe53de528c4aec49ce9360c992e70c77072ad5623de0a3a6212771b66b39a30dad6781799e92608316900518ec01184a85d872365b7d2ba4bacfb5882ea3c2473d3750dc6178cc1cf82147fb58caa28b28e9f12f6d1efcb0534abed644156c91cca4ab78834268495160b2400bc422beb37d237c2300a0cac94911b6d493bda1e1fbc6feeca7cb7421d34b03fe22cec6ccb39675bb7b94a335c2b7be888fd3906a1125f33301d8aa6ec6ee6878f46f73961c8d57a3e9544d8ef2a2cbfd4d52da665b1266928cfe4cb347a58c412815f3b2d2369dec04b41ac9a71cc9547426d5ab941cccf3b18575637ccfb42df1a802df3cfe0a999f9e7109331170e3a221991bf868543960f8c816c28097e503fe319db10fb98049f3a57d7c80c420da66d56f3644371631fad3f0ff4040a19a4fedc2d07727a1b27576f75a4d28c47d8246f27071e12d7a8de62aad216ddbae6aa02efd6b8a3e2818cda48526549791ab277e447b3a36c57cefe9b592f5eab73959743fcc8e83cbefec03a329b55018b53eec196765ae40ef9e20521a603c551efe0303020950d53a146bf9c66034d00c23130cce95576a2ff78016ca471276e8227fb30b1ffbd92e61804fb0c3eff9e30b1a826ee8f3e4730b4d86273ca977b4164453412f456c47616d616c2054657374204b65792032886204131102002205024dfcb1be021b03060b090807030206150802090a0b0416020301021e01021780000a0910a86bf526325b21b22bd9009e34511620415c974750a20df5cb56b182f3b48e6600a0a9466cb1a1305a84953445f77d461593f1d42bc1b00200009d0157044dfcb1be1004009565a951da1ee87119d600c077198f1c1bceb0f7aa54552489298e41ff788fa8f0d43a69871f0f6f77ebdfb14a4260cf9fbeb65d5844b4272a1904dd95136d06c3da745dc46327dd44a0f16f60135914368c8039a34033862261806bb2c5ce1152e2840254697872c85441ccb7321431d75a747a4bfb1d2c66362b51ce76311700030503fc0ea76601c196768070b7365a200e6ddb09307f262d5f39eec467b5f5784e22abdf1aa49226f59ab37cb49969d8f5230ea65caf56015abda62604544ed526c5c522bf92bed178a078789f6c807b6d34885688024a5bed9e9f8c58d11d4b82487b44c5f470c5606806a0443b79cadb45e0f897a561a53f724e5349b9267c75ca17fe0303020950d53a146bf9c660bc5f4ce8f072465e2d2466434320c1e712272fafc20e342fe7608101580fa1a1a367e60486a7cd1246b7ef5586cf5e10b32762b710a30144f12dd17dd4884904181102000905024dfcb1be021b0c000a0910a86bf526325b21b2904c00a0b2b66b4b39ccffda1d10f3ea8d58f827e30a8b8e009f4255b2d8112a184e40cde43a34e8655ca7809370b0020000" - -const signedMessageHex = "a3019bc0cbccc0c4b8d8b74ee2108fe16ec6d3ca490cbe362d3f8333d3f352531472538b8b13d353b97232f352158c20943157c71c16064626063656269052062e4e01987e9b6fccff4b7df3a34c534b23e679cbec3bc0f8f6e64dfb4b55fe3f8efa9ce110ddb5cd79faf1d753c51aecfa669f7e7aa043436596cccc3359cb7dd6bbe9ecaa69e5989d9e57209571edc0b2fa7f57b9b79a64ee6e99ce1371395fee92fec2796f7b15a77c386ff668ee27f6d38f0baa6c438b561657377bf6acff3c5947befd7bf4c196252f1d6e5c524d0300" - -const signedTextMessageHex = "a3019bc0cbccc8c4b8d8b74ee2108fe16ec6d36a250cbece0c178233d3f352531472538b8b13d35379b97232f352158ca0b4312f57c71c1646462606365626906a062e4e019811591798ff99bf8afee860b0d8a8c2a85c3387e3bcf0bb3b17987f2bbcfab2aa526d930cbfd3d98757184df3995c9f3e7790e36e3e9779f06089d4c64e9e47dd6202cb6e9bc73c5d11bb59fbaf89d22d8dc7cf199ddf17af96e77c5f65f9bbed56f427bd8db7af37f6c9984bf9385efaf5f184f986fb3e6adb0ecfe35bbf92d16a7aa2a344fb0bc52fb7624f0200" - -const signedEncryptedMessageHex = "848c032a67d68660df41c70103ff5789d0de26b6a50c985a02a13131ca829c413a35d0e6fa8d6842599252162808ac7439c72151c8c6183e76923fe3299301414d0c25a2f06a2257db3839e7df0ec964773f6e4c4ac7ff3b48c444237166dd46ba8ff443a5410dc670cb486672fdbe7c9dfafb75b4fea83af3a204fe2a7dfa86bd20122b4f3d2646cbeecb8f7be8d2c03b018bd210b1d3791e1aba74b0f1034e122ab72e760492c192383cf5e20b5628bd043272d63df9b923f147eb6091cd897553204832aba48fec54aa447547bb16305a1024713b90e77fd0065f1918271947549205af3c74891af22ee0b56cd29bfec6d6e351901cd4ab3ece7c486f1e32a792d4e474aed98ee84b3f591c7dff37b64e0ecd68fd036d517e412dcadf85840ce184ad7921ad446c4ee28db80447aea1ca8d4f574db4d4e37688158ddd19e14ee2eab4873d46947d65d14a23e788d912cf9a19624ca7352469b72a83866b7c23cb5ace3deab3c7018061b0ba0f39ed2befe27163e5083cf9b8271e3e3d52cc7ad6e2a3bd81d4c3d7022f8d" - -const signedEncryptedMessage2Hex = "85010e03cf6a7abcd43e36731003fb057f5495b79db367e277cdbe4ab90d924ddee0c0381494112ff8c1238fb0184af35d1731573b01bc4c55ecacd2aafbe2003d36310487d1ecc9ac994f3fada7f9f7f5c3a64248ab7782906c82c6ff1303b69a84d9a9529c31ecafbcdb9ba87e05439897d87e8a2a3dec55e14df19bba7f7bd316291c002ae2efd24f83f9e3441203fc081c0c23dc3092a454ca8a082b27f631abf73aca341686982e8fbda7e0e7d863941d68f3de4a755c2964407f4b5e0477b3196b8c93d551dd23c8beef7d0f03fbb1b6066f78907faf4bf1677d8fcec72651124080e0b7feae6b476e72ab207d38d90b958759fdedfc3c6c35717c9dbfc979b3cfbbff0a76d24a5e57056bb88acbd2a901ef64bc6e4db02adc05b6250ff378de81dca18c1910ab257dff1b9771b85bb9bbe0a69f5989e6d1710a35e6dfcceb7d8fb5ccea8db3932b3d9ff3fe0d327597c68b3622aec8e3716c83a6c93f497543b459b58ba504ed6bcaa747d37d2ca746fe49ae0a6ce4a8b694234e941b5159ff8bd34b9023da2814076163b86f40eed7c9472f81b551452d5ab87004a373c0172ec87ea6ce42ccfa7dbdad66b745496c4873d8019e8c28d6b3" - -const symmetricallyEncryptedCompressedHex = "8c0d04030302eb4a03808145d0d260c92f714339e13de5a79881216431925bf67ee2898ea61815f07894cd0703c50d0a76ef64d482196f47a8bc729af9b80bb6" - -const dsaTestKeyHex = "9901a2044d6c49de110400cb5ce438cf9250907ac2ba5bf6547931270b89f7c4b53d9d09f4d0213a5ef2ec1f26806d3d259960f872a4a102ef1581ea3f6d6882d15134f21ef6a84de933cc34c47cc9106efe3bd84c6aec12e78523661e29bc1a61f0aab17fa58a627fd5fd33f5149153fbe8cd70edf3d963bc287ef875270ff14b5bfdd1bca4483793923b00a0fe46d76cb6e4cbdc568435cd5480af3266d610d303fe33ae8273f30a96d4d34f42fa28ce1112d425b2e3bf7ea553d526e2db6b9255e9dc7419045ce817214d1a0056dbc8d5289956a4b1b69f20f1105124096e6a438f41f2e2495923b0f34b70642607d45559595c7fe94d7fa85fc41bf7d68c1fd509ebeaa5f315f6059a446b9369c277597e4f474a9591535354c7e7f4fd98a08aa60400b130c24ff20bdfbf683313f5daebf1c9b34b3bdadfc77f2ddd72ee1fb17e56c473664bc21d66467655dd74b9005e3a2bacce446f1920cd7017231ae447b67036c9b431b8179deacd5120262d894c26bc015bffe3d827ba7087ad9b700d2ca1f6d16cc1786581e5dd065f293c31209300f9b0afcc3f7c08dd26d0a22d87580b4db41054657374204b65792033202844534129886204131102002205024d6c49de021b03060b090807030206150802090a0b0416020301021e01021780000a0910338934250ccc03607e0400a0bdb9193e8a6b96fc2dfc108ae848914b504481f100a09c4dc148cb693293a67af24dd40d2b13a9e36794" - -const dsaTestKeyPrivateHex = "9501bb044d6c49de110400cb5ce438cf9250907ac2ba5bf6547931270b89f7c4b53d9d09f4d0213a5ef2ec1f26806d3d259960f872a4a102ef1581ea3f6d6882d15134f21ef6a84de933cc34c47cc9106efe3bd84c6aec12e78523661e29bc1a61f0aab17fa58a627fd5fd33f5149153fbe8cd70edf3d963bc287ef875270ff14b5bfdd1bca4483793923b00a0fe46d76cb6e4cbdc568435cd5480af3266d610d303fe33ae8273f30a96d4d34f42fa28ce1112d425b2e3bf7ea553d526e2db6b9255e9dc7419045ce817214d1a0056dbc8d5289956a4b1b69f20f1105124096e6a438f41f2e2495923b0f34b70642607d45559595c7fe94d7fa85fc41bf7d68c1fd509ebeaa5f315f6059a446b9369c277597e4f474a9591535354c7e7f4fd98a08aa60400b130c24ff20bdfbf683313f5daebf1c9b34b3bdadfc77f2ddd72ee1fb17e56c473664bc21d66467655dd74b9005e3a2bacce446f1920cd7017231ae447b67036c9b431b8179deacd5120262d894c26bc015bffe3d827ba7087ad9b700d2ca1f6d16cc1786581e5dd065f293c31209300f9b0afcc3f7c08dd26d0a22d87580b4d00009f592e0619d823953577d4503061706843317e4fee083db41054657374204b65792033202844534129886204131102002205024d6c49de021b03060b090807030206150802090a0b0416020301021e01021780000a0910338934250ccc03607e0400a0bdb9193e8a6b96fc2dfc108ae848914b504481f100a09c4dc148cb693293a67af24dd40d2b13a9e36794" - -const armoredPrivateKeyBlock = `-----BEGIN PGP PRIVATE KEY BLOCK----- -Version: GnuPG v1.4.10 (GNU/Linux) - -lQHYBE2rFNoBBADFwqWQIW/DSqcB4yCQqnAFTJ27qS5AnB46ccAdw3u4Greeu3Bp -idpoHdjULy7zSKlwR1EA873dO/k/e11Ml3dlAFUinWeejWaK2ugFP6JjiieSsrKn -vWNicdCS4HTWn0X4sjl0ZiAygw6GNhqEQ3cpLeL0g8E9hnYzJKQ0LWJa0QARAQAB -AAP/TB81EIo2VYNmTq0pK1ZXwUpxCrvAAIG3hwKjEzHcbQznsjNvPUihZ+NZQ6+X -0HCfPAdPkGDCLCb6NavcSW+iNnLTrdDnSI6+3BbIONqWWdRDYJhqZCkqmG6zqSfL -IdkJgCw94taUg5BWP/AAeQrhzjChvpMQTVKQL5mnuZbUCeMCAN5qrYMP2S9iKdnk -VANIFj7656ARKt/nf4CBzxcpHTyB8+d2CtPDKCmlJP6vL8t58Jmih+kHJMvC0dzn -gr5f5+sCAOOe5gt9e0am7AvQWhdbHVfJU0TQJx+m2OiCJAqGTB1nvtBLHdJnfdC9 -TnXXQ6ZXibqLyBies/xeY2sCKL5qtTMCAKnX9+9d/5yQxRyrQUHt1NYhaXZnJbHx -q4ytu0eWz+5i68IYUSK69jJ1NWPM0T6SkqpB3KCAIv68VFm9PxqG1KmhSrQIVGVz -dCBLZXmIuAQTAQIAIgUCTasU2gIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AA -CgkQO9o98PRieSoLhgQAkLEZex02Qt7vGhZzMwuN0R22w3VwyYyjBx+fM3JFETy1 -ut4xcLJoJfIaF5ZS38UplgakHG0FQ+b49i8dMij0aZmDqGxrew1m4kBfjXw9B/v+ -eIqpODryb6cOSwyQFH0lQkXC040pjq9YqDsO5w0WYNXYKDnzRV0p4H1pweo2VDid -AdgETasU2gEEAN46UPeWRqKHvA99arOxee38fBt2CI08iiWyI8T3J6ivtFGixSqV -bRcPxYO/qLpVe5l84Nb3X71GfVXlc9hyv7CD6tcowL59hg1E/DC5ydI8K8iEpUmK -/UnHdIY5h8/kqgGxkY/T/hgp5fRQgW1ZoZxLajVlMRZ8W4tFtT0DeA+JABEBAAEA -A/0bE1jaaZKj6ndqcw86jd+QtD1SF+Cf21CWRNeLKnUds4FRRvclzTyUMuWPkUeX -TaNNsUOFqBsf6QQ2oHUBBK4VCHffHCW4ZEX2cd6umz7mpHW6XzN4DECEzOVksXtc -lUC1j4UB91DC/RNQqwX1IV2QLSwssVotPMPqhOi0ZLNY7wIA3n7DWKInxYZZ4K+6 -rQ+POsz6brEoRHwr8x6XlHenq1Oki855pSa1yXIARoTrSJkBtn5oI+f8AzrnN0BN -oyeQAwIA/7E++3HDi5aweWrViiul9cd3rcsS0dEnksPhvS0ozCJiHsq/6GFmy7J8 -QSHZPteedBnZyNp5jR+H7cIfVN3KgwH/Skq4PsuPhDq5TKK6i8Pc1WW8MA6DXTdU -nLkX7RGmMwjC0DBf7KWAlPjFaONAX3a8ndnz//fy1q7u2l9AZwrj1qa1iJ8EGAEC -AAkFAk2rFNoCGwwACgkQO9o98PRieSo2/QP/WTzr4ioINVsvN1akKuekmEMI3LAp -BfHwatufxxP1U+3Si/6YIk7kuPB9Hs+pRqCXzbvPRrI8NHZBmc8qIGthishdCYad -AHcVnXjtxrULkQFGbGvhKURLvS9WnzD/m1K2zzwxzkPTzT9/Yf06O6Mal5AdugPL -VrM0m72/jnpKo04= -=zNCn ------END PGP PRIVATE KEY BLOCK-----` - -const e2ePublicKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- -Charset: UTF-8 - -xv8AAABSBAAAAAATCCqGSM49AwEHAgME1LRoXSpOxtHXDUdmuvzchyg6005qIBJ4 -sfaSxX7QgH9RV2ONUhC+WiayCNADq+UMzuR/vunSr4aQffXvuGnR383/AAAAFDxk -Z2lsQHlhaG9vLWluYy5jb20+wv8AAACGBBATCAA4/wAAAAWCVGvAG/8AAAACiwn/ -AAAACZC2VkQCOjdvYf8AAAAFlQgJCgv/AAAAA5YBAv8AAAACngEAAE1BAP0X8veD -24IjmI5/C6ZAfVNXxgZZFhTAACFX75jUA3oD6AEAzoSwKf1aqH6oq62qhCN/pekX -+WAsVMBhNwzLpqtCRjLO/wAAAFYEAAAAABIIKoZIzj0DAQcCAwT50ain7vXiIRv8 -B1DO3x3cE/aattZ5sHNixJzRCXi2vQIA5QmOxZ6b5jjUekNbdHG3SZi1a2Ak5mfX -fRxC/5VGAwEIB8L/AAAAZQQYEwgAGP8AAAAFglRrwBz/AAAACZC2VkQCOjdvYQAA -FJAA9isX3xtGyMLYwp2F3nXm7QEdY5bq5VUcD/RJlj792VwA/1wH0pCzVLl4Q9F9 -ex7En5r7rHR5xwX82Msc+Rq9dSyO -=7MrZ ------END PGP PUBLIC KEY BLOCK-----` - -const dsaKeyWithSHA512 = `9901a2044f04b07f110400db244efecc7316553ee08d179972aab87bb1214de7692593fcf5b6feb1c80fba268722dd464748539b85b81d574cd2d7ad0ca2444de4d849b8756bad7768c486c83a824f9bba4af773d11742bdfb4ac3b89ef8cc9452d4aad31a37e4b630d33927bff68e879284a1672659b8b298222fc68f370f3e24dccacc4a862442b9438b00a0ea444a24088dc23e26df7daf8f43cba3bffc4fe703fe3d6cd7fdca199d54ed8ae501c30e3ec7871ea9cdd4cf63cfe6fc82281d70a5b8bb493f922cd99fba5f088935596af087c8d818d5ec4d0b9afa7f070b3d7c1dd32a84fca08d8280b4890c8da1dde334de8e3cad8450eed2a4a4fcc2db7b8e5528b869a74a7f0189e11ef097ef1253582348de072bb07a9fa8ab838e993cef0ee203ff49298723e2d1f549b00559f886cd417a41692ce58d0ac1307dc71d85a8af21b0cf6eaa14baf2922d3a70389bedf17cc514ba0febbd107675a372fe84b90162a9e88b14d4b1c6be855b96b33fb198c46f058568817780435b6936167ebb3724b680f32bf27382ada2e37a879b3d9de2abe0c3f399350afd1ad438883f4791e2e3b4184453412068617368207472756e636174696f6e207465737488620413110a002205024f04b07f021b03060b090807030206150802090a0b0416020301021e01021780000a0910ef20e0cefca131581318009e2bf3bf047a44d75a9bacd00161ee04d435522397009a03a60d51bd8a568c6c021c8d7cf1be8d990d6417b0020003` - -const unknownHashFunctionHex = `8a00000040040001990006050253863c24000a09103b4fe6acc0b21f32ffff01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101` - -const missingHashFunctionHex = `8a00000040040001030006050253863c24000a09103b4fe6acc0b21f32ffff0101010101010101010101010101010101010101010101010101010101010101010101010101` - -const campbellQuine = `a0b001000300fcffa0b001000d00f2ff000300fcffa0b001000d00f2ff8270a01c00000500faff8270a01c00000500faff000500faff001400ebff8270a01c00000500faff000500faff001400ebff428821c400001400ebff428821c400001400ebff428821c400001400ebff428821c400001400ebff428821c400000000ffff000000ffff000b00f4ff428821c400000000ffff000000ffff000b00f4ff0233214c40000100feff000233214c40000100feff0000` diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k/s2k.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k/s2k.go deleted file mode 100644 index 62d0249d..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k/s2k.go +++ /dev/null @@ -1,273 +0,0 @@ -// 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 s2k implements the various OpenPGP string-to-key transforms as -// specified in RFC 4800 section 3.7.1. -package s2k - -import ( - "crypto" - "hash" - "io" - "strconv" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" -) - -// Config collects configuration parameters for s2k key-stretching -// transformatioms. A nil *Config is valid and results in all default -// values. Currently, Config is used only by the Serialize function in -// this package. -type Config struct { - // Hash is the default hash function to be used. If - // nil, SHA1 is used. - Hash crypto.Hash - // S2KCount is only used for symmetric encryption. It - // determines the strength of the passphrase stretching when - // the said passphrase is hashed to produce a key. S2KCount - // should be between 1024 and 65011712, inclusive. If Config - // is nil or S2KCount is 0, the value 65536 used. Not all - // values in the above range can be represented. S2KCount will - // be rounded up to the next representable value if it cannot - // be encoded exactly. When set, it is strongly encrouraged to - // use a value that is at least 65536. See RFC 4880 Section - // 3.7.1.3. - S2KCount int -} - -func (c *Config) hash() crypto.Hash { - if c == nil || uint(c.Hash) == 0 { - // SHA1 is the historical default in this package. - return crypto.SHA1 - } - - return c.Hash -} - -func (c *Config) encodedCount() uint8 { - if c == nil || c.S2KCount == 0 { - return 96 // The common case. Correspoding to 65536 - } - - i := c.S2KCount - switch { - // Behave like GPG. Should we make 65536 the lowest value used? - case i < 1024: - i = 1024 - case i > 65011712: - i = 65011712 - } - - return encodeCount(i) -} - -// encodeCount converts an iterative "count" in the range 1024 to -// 65011712, inclusive, to an encoded count. The return value is the -// octet that is actually stored in the GPG file. encodeCount panics -// if i is not in the above range (encodedCount above takes care to -// pass i in the correct range). See RFC 4880 Section 3.7.7.1. -func encodeCount(i int) uint8 { - if i < 1024 || i > 65011712 { - panic("count arg i outside the required range") - } - - for encoded := 0; encoded < 256; encoded++ { - count := decodeCount(uint8(encoded)) - if count >= i { - return uint8(encoded) - } - } - - return 255 -} - -// decodeCount returns the s2k mode 3 iterative "count" corresponding to -// the encoded octet c. -func decodeCount(c uint8) int { - return (16 + int(c&15)) << (uint32(c>>4) + 6) -} - -// Simple writes to out the result of computing the Simple S2K function (RFC -// 4880, section 3.7.1.1) using the given hash and input passphrase. -func Simple(out []byte, h hash.Hash, in []byte) { - Salted(out, h, in, nil) -} - -var zero [1]byte - -// Salted writes to out the result of computing the Salted S2K function (RFC -// 4880, section 3.7.1.2) using the given hash, input passphrase and salt. -func Salted(out []byte, h hash.Hash, in []byte, salt []byte) { - done := 0 - var digest []byte - - for i := 0; done < len(out); i++ { - h.Reset() - for j := 0; j < i; j++ { - h.Write(zero[:]) - } - h.Write(salt) - h.Write(in) - digest = h.Sum(digest[:0]) - n := copy(out[done:], digest) - done += n - } -} - -// Iterated writes to out the result of computing the Iterated and Salted S2K -// function (RFC 4880, section 3.7.1.3) using the given hash, input passphrase, -// salt and iteration count. -func Iterated(out []byte, h hash.Hash, in []byte, salt []byte, count int) { - combined := make([]byte, len(in)+len(salt)) - copy(combined, salt) - copy(combined[len(salt):], in) - - if count < len(combined) { - count = len(combined) - } - - done := 0 - var digest []byte - for i := 0; done < len(out); i++ { - h.Reset() - for j := 0; j < i; j++ { - h.Write(zero[:]) - } - written := 0 - for written < count { - if written+len(combined) > count { - todo := count - written - h.Write(combined[:todo]) - written = count - } else { - h.Write(combined) - written += len(combined) - } - } - digest = h.Sum(digest[:0]) - n := copy(out[done:], digest) - done += n - } -} - -// Parse reads a binary specification for a string-to-key transformation from r -// and returns a function which performs that transform. -func Parse(r io.Reader) (f func(out, in []byte), err error) { - var buf [9]byte - - _, err = io.ReadFull(r, buf[:2]) - if err != nil { - return - } - - hash, ok := HashIdToHash(buf[1]) - if !ok { - return nil, errors.UnsupportedError("hash for S2K function: " + strconv.Itoa(int(buf[1]))) - } - if !hash.Available() { - return nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hash))) - } - h := hash.New() - - switch buf[0] { - case 0: - f := func(out, in []byte) { - Simple(out, h, in) - } - return f, nil - case 1: - _, err = io.ReadFull(r, buf[:8]) - if err != nil { - return - } - f := func(out, in []byte) { - Salted(out, h, in, buf[:8]) - } - return f, nil - case 3: - _, err = io.ReadFull(r, buf[:9]) - if err != nil { - return - } - count := decodeCount(buf[8]) - f := func(out, in []byte) { - Iterated(out, h, in, buf[:8], count) - } - return f, nil - } - - return nil, errors.UnsupportedError("S2K function") -} - -// Serialize salts and stretches the given passphrase and writes the -// resulting key into key. It also serializes an S2K descriptor to -// w. The key stretching can be configured with c, which may be -// nil. In that case, sensible defaults will be used. -func Serialize(w io.Writer, key []byte, rand io.Reader, passphrase []byte, c *Config) error { - var buf [11]byte - buf[0] = 3 /* iterated and salted */ - buf[1], _ = HashToHashId(c.hash()) - salt := buf[2:10] - if _, err := io.ReadFull(rand, salt); err != nil { - return err - } - encodedCount := c.encodedCount() - count := decodeCount(encodedCount) - buf[10] = encodedCount - if _, err := w.Write(buf[:]); err != nil { - return err - } - - Iterated(key, c.hash().New(), passphrase, salt, count) - return nil -} - -// hashToHashIdMapping contains pairs relating OpenPGP's hash identifier with -// Go's crypto.Hash type. See RFC 4880, section 9.4. -var hashToHashIdMapping = []struct { - id byte - hash crypto.Hash - name string -}{ - {1, crypto.MD5, "MD5"}, - {2, crypto.SHA1, "SHA1"}, - {3, crypto.RIPEMD160, "RIPEMD160"}, - {8, crypto.SHA256, "SHA256"}, - {9, crypto.SHA384, "SHA384"}, - {10, crypto.SHA512, "SHA512"}, - {11, crypto.SHA224, "SHA224"}, -} - -// HashIdToHash returns a crypto.Hash which corresponds to the given OpenPGP -// hash id. -func HashIdToHash(id byte) (h crypto.Hash, ok bool) { - for _, m := range hashToHashIdMapping { - if m.id == id { - return m.hash, true - } - } - return 0, false -} - -// HashIdToString returns the name of the hash function corresponding to the -// given OpenPGP hash id, or panics if id is unknown. -func HashIdToString(id byte) (name string, ok bool) { - for _, m := range hashToHashIdMapping { - if m.id == id { - return m.name, true - } - } - - return "", false -} - -// HashIdToHash returns an OpenPGP hash id which corresponds the given Hash. -func HashToHashId(h crypto.Hash) (id byte, ok bool) { - for _, m := range hashToHashIdMapping { - if m.hash == h { - return m.id, true - } - } - return 0, false -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k/s2k_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k/s2k_test.go deleted file mode 100644 index eee10b98..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k/s2k_test.go +++ /dev/null @@ -1,137 +0,0 @@ -// 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 s2k - -import ( - "bytes" - "crypto" - _ "crypto/md5" - "crypto/rand" - "crypto/sha1" - _ "crypto/sha256" - _ "crypto/sha512" - "encoding/hex" - "testing" - - _ "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ripemd160" -) - -var saltedTests = []struct { - in, out string -}{ - {"hello", "10295ac1"}, - {"world", "ac587a5e"}, - {"foo", "4dda8077"}, - {"bar", "bd8aac6b9ea9cae04eae6a91c6133b58b5d9a61c14f355516ed9370456"}, - {"x", "f1d3f289"}, - {"xxxxxxxxxxxxxxxxxxxxxxx", "e00d7b45"}, -} - -func TestSalted(t *testing.T) { - h := sha1.New() - salt := [4]byte{1, 2, 3, 4} - - for i, test := range saltedTests { - expected, _ := hex.DecodeString(test.out) - out := make([]byte, len(expected)) - Salted(out, h, []byte(test.in), salt[:]) - if !bytes.Equal(expected, out) { - t.Errorf("#%d, got: %x want: %x", i, out, expected) - } - } -} - -var iteratedTests = []struct { - in, out string -}{ - {"hello", "83126105"}, - {"world", "6fa317f9"}, - {"foo", "8fbc35b9"}, - {"bar", "2af5a99b54f093789fd657f19bd245af7604d0f6ae06f66602a46a08ae"}, - {"x", "5a684dfe"}, - {"xxxxxxxxxxxxxxxxxxxxxxx", "18955174"}, -} - -func TestIterated(t *testing.T) { - h := sha1.New() - salt := [4]byte{4, 3, 2, 1} - - for i, test := range iteratedTests { - expected, _ := hex.DecodeString(test.out) - out := make([]byte, len(expected)) - Iterated(out, h, []byte(test.in), salt[:], 31) - if !bytes.Equal(expected, out) { - t.Errorf("#%d, got: %x want: %x", i, out, expected) - } - } -} - -var parseTests = []struct { - spec, in, out string -}{ - /* Simple with SHA1 */ - {"0002", "hello", "aaf4c61d"}, - /* Salted with SHA1 */ - {"01020102030405060708", "hello", "f4f7d67e"}, - /* Iterated with SHA1 */ - {"03020102030405060708f1", "hello", "f2a57b7c"}, -} - -func TestParse(t *testing.T) { - for i, test := range parseTests { - spec, _ := hex.DecodeString(test.spec) - buf := bytes.NewBuffer(spec) - f, err := Parse(buf) - if err != nil { - t.Errorf("%d: Parse returned error: %s", i, err) - continue - } - - expected, _ := hex.DecodeString(test.out) - out := make([]byte, len(expected)) - f(out, []byte(test.in)) - if !bytes.Equal(out, expected) { - t.Errorf("%d: output got: %x want: %x", i, out, expected) - } - if testing.Short() { - break - } - } -} - -func TestSerialize(t *testing.T) { - hashes := []crypto.Hash{crypto.MD5, crypto.SHA1, crypto.RIPEMD160, - crypto.SHA256, crypto.SHA384, crypto.SHA512, crypto.SHA224} - testCounts := []int{-1, 0, 1024, 65536, 4063232, 65011712} - for _, h := range hashes { - for _, c := range testCounts { - testSerializeConfig(t, &Config{Hash: h, S2KCount: c}) - } - } -} - -func testSerializeConfig(t *testing.T, c *Config) { - t.Logf("Running testSerializeConfig() with config: %+v", c) - - buf := bytes.NewBuffer(nil) - key := make([]byte, 16) - passphrase := []byte("testing") - err := Serialize(buf, key, rand.Reader, passphrase, c) - if err != nil { - t.Errorf("failed to serialize: %s", err) - return - } - - f, err := Parse(buf) - if err != nil { - t.Errorf("failed to reparse: %s", err) - return - } - key2 := make([]byte, len(key)) - f(key2, passphrase) - if !bytes.Equal(key2, key) { - t.Errorf("keys don't match: %x (serialied) vs %x (parsed)", key, key2) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/write.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/write.go deleted file mode 100644 index f13f5258..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/write.go +++ /dev/null @@ -1,378 +0,0 @@ -// 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 openpgp - -import ( - "crypto" - "hash" - "io" - "strconv" - "time" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/armor" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/errors" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/s2k" -) - -// DetachSign signs message with the private key from signer (which must -// already have been decrypted) and writes the signature to w. -// If config is nil, sensible defaults will be used. -func DetachSign(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error { - return detachSign(w, signer, message, packet.SigTypeBinary, config) -} - -// ArmoredDetachSign signs message with the private key from signer (which -// must already have been decrypted) and writes an armored signature to w. -// If config is nil, sensible defaults will be used. -func ArmoredDetachSign(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) (err error) { - return armoredDetachSign(w, signer, message, packet.SigTypeBinary, config) -} - -// DetachSignText signs message (after canonicalising the line endings) with -// the private key from signer (which must already have been decrypted) and -// writes the signature to w. -// If config is nil, sensible defaults will be used. -func DetachSignText(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error { - return detachSign(w, signer, message, packet.SigTypeText, config) -} - -// ArmoredDetachSignText signs message (after canonicalising the line endings) -// with the private key from signer (which must already have been decrypted) -// and writes an armored signature to w. -// If config is nil, sensible defaults will be used. -func ArmoredDetachSignText(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error { - return armoredDetachSign(w, signer, message, packet.SigTypeText, config) -} - -func armoredDetachSign(w io.Writer, signer *Entity, message io.Reader, sigType packet.SignatureType, config *packet.Config) (err error) { - out, err := armor.Encode(w, SignatureType, nil) - if err != nil { - return - } - err = detachSign(out, signer, message, sigType, config) - if err != nil { - return - } - return out.Close() -} - -func detachSign(w io.Writer, signer *Entity, message io.Reader, sigType packet.SignatureType, config *packet.Config) (err error) { - if signer.PrivateKey == nil { - return errors.InvalidArgumentError("signing key doesn't have a private key") - } - if signer.PrivateKey.Encrypted { - return errors.InvalidArgumentError("signing key is encrypted") - } - - sig := new(packet.Signature) - sig.SigType = sigType - sig.PubKeyAlgo = signer.PrivateKey.PubKeyAlgo - sig.Hash = config.Hash() - sig.CreationTime = config.Now() - sig.IssuerKeyId = &signer.PrivateKey.KeyId - - h, wrappedHash, err := hashForSignature(sig.Hash, sig.SigType) - if err != nil { - return - } - io.Copy(wrappedHash, message) - - err = sig.Sign(h, signer.PrivateKey, config) - if err != nil { - return - } - - return sig.Serialize(w) -} - -// FileHints contains metadata about encrypted files. This metadata is, itself, -// encrypted. -type FileHints struct { - // IsBinary can be set to hint that the contents are binary data. - IsBinary bool - // FileName hints at the name of the file that should be written. It's - // truncated to 255 bytes if longer. It may be empty to suggest that the - // file should not be written to disk. It may be equal to "_CONSOLE" to - // suggest the data should not be written to disk. - FileName string - // ModTime contains the modification time of the file, or the zero time if not applicable. - ModTime time.Time -} - -// SymmetricallyEncrypt acts like gpg -c: it encrypts a file with a passphrase. -// The resulting WriteCloser must be closed after the contents of the file have -// been written. -// If config is nil, sensible defaults will be used. -func SymmetricallyEncrypt(ciphertext io.Writer, passphrase []byte, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { - if hints == nil { - hints = &FileHints{} - } - - key, err := packet.SerializeSymmetricKeyEncrypted(ciphertext, passphrase, config) - if err != nil { - return - } - w, err := packet.SerializeSymmetricallyEncrypted(ciphertext, config.Cipher(), key, config) - if err != nil { - return - } - - literaldata := w - if algo := config.Compression(); algo != packet.CompressionNone { - var compConfig *packet.CompressionConfig - if config != nil { - compConfig = config.CompressionConfig - } - literaldata, err = packet.SerializeCompressed(w, algo, compConfig) - if err != nil { - return - } - } - - var epochSeconds uint32 - if !hints.ModTime.IsZero() { - epochSeconds = uint32(hints.ModTime.Unix()) - } - return packet.SerializeLiteral(literaldata, hints.IsBinary, hints.FileName, epochSeconds) -} - -// intersectPreferences mutates and returns a prefix of a that contains only -// the values in the intersection of a and b. The order of a is preserved. -func intersectPreferences(a []uint8, b []uint8) (intersection []uint8) { - var j int - for _, v := range a { - for _, v2 := range b { - if v == v2 { - a[j] = v - j++ - break - } - } - } - - return a[:j] -} - -func hashToHashId(h crypto.Hash) uint8 { - v, ok := s2k.HashToHashId(h) - if !ok { - panic("tried to convert unknown hash") - } - return v -} - -// Encrypt encrypts a message to a number of recipients and, optionally, signs -// it. hints contains optional information, that is also encrypted, that aids -// the recipients in processing the message. The resulting WriteCloser must -// be closed after the contents of the file have been written. -// If config is nil, sensible defaults will be used. -func Encrypt(ciphertext io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { - var signer *packet.PrivateKey - if signed != nil { - signKey, ok := signed.signingKey(config.Now()) - if !ok { - return nil, errors.InvalidArgumentError("no valid signing keys") - } - signer = signKey.PrivateKey - if signer == nil { - return nil, errors.InvalidArgumentError("no private key in signing key") - } - if signer.Encrypted { - return nil, errors.InvalidArgumentError("signing key must be decrypted") - } - } - - // These are the possible ciphers that we'll use for the message. - candidateCiphers := []uint8{ - uint8(packet.CipherAES128), - uint8(packet.CipherAES256), - uint8(packet.CipherCAST5), - } - // These are the possible hash functions that we'll use for the signature. - candidateHashes := []uint8{ - hashToHashId(crypto.SHA256), - hashToHashId(crypto.SHA512), - hashToHashId(crypto.SHA1), - hashToHashId(crypto.RIPEMD160), - } - // In the event that a recipient doesn't specify any supported ciphers - // or hash functions, these are the ones that we assume that every - // implementation supports. - defaultCiphers := candidateCiphers[len(candidateCiphers)-1:] - defaultHashes := candidateHashes[len(candidateHashes)-1:] - - encryptKeys := make([]Key, len(to)) - for i := range to { - var ok bool - encryptKeys[i], ok = to[i].encryptionKey(config.Now()) - if !ok { - return nil, errors.InvalidArgumentError("cannot encrypt a message to key id " + strconv.FormatUint(to[i].PrimaryKey.KeyId, 16) + " because it has no encryption keys") - } - - sig := to[i].primaryIdentity().SelfSignature - - preferredSymmetric := sig.PreferredSymmetric - if len(preferredSymmetric) == 0 { - preferredSymmetric = defaultCiphers - } - preferredHashes := sig.PreferredHash - if len(preferredHashes) == 0 { - preferredHashes = defaultHashes - } - candidateCiphers = intersectPreferences(candidateCiphers, preferredSymmetric) - candidateHashes = intersectPreferences(candidateHashes, preferredHashes) - } - - if len(candidateCiphers) == 0 || len(candidateHashes) == 0 { - return nil, errors.InvalidArgumentError("cannot encrypt because recipient set shares no common algorithms") - } - - cipher := packet.CipherFunction(candidateCiphers[0]) - // If the cipher specifed by config is a candidate, we'll use that. - configuredCipher := config.Cipher() - for _, c := range candidateCiphers { - cipherFunc := packet.CipherFunction(c) - if cipherFunc == configuredCipher { - cipher = cipherFunc - break - } - } - - var hash crypto.Hash - for _, hashId := range candidateHashes { - if h, ok := s2k.HashIdToHash(hashId); ok && h.Available() { - hash = h - break - } - } - - // If the hash specified by config is a candidate, we'll use that. - if configuredHash := config.Hash(); configuredHash.Available() { - for _, hashId := range candidateHashes { - if h, ok := s2k.HashIdToHash(hashId); ok && h == configuredHash { - hash = h - break - } - } - } - - if hash == 0 { - hashId := candidateHashes[0] - name, ok := s2k.HashIdToString(hashId) - if !ok { - name = "#" + strconv.Itoa(int(hashId)) - } - return nil, errors.InvalidArgumentError("cannot encrypt because no candidate hash functions are compiled in. (Wanted " + name + " in this case.)") - } - - symKey := make([]byte, cipher.KeySize()) - if _, err := io.ReadFull(config.Random(), symKey); err != nil { - return nil, err - } - - for _, key := range encryptKeys { - if err := packet.SerializeEncryptedKey(ciphertext, key.PublicKey, cipher, symKey, config); err != nil { - return nil, err - } - } - - encryptedData, err := packet.SerializeSymmetricallyEncrypted(ciphertext, cipher, symKey, config) - if err != nil { - return - } - - if signer != nil { - ops := &packet.OnePassSignature{ - SigType: packet.SigTypeBinary, - Hash: hash, - PubKeyAlgo: signer.PubKeyAlgo, - KeyId: signer.KeyId, - IsLast: true, - } - if err := ops.Serialize(encryptedData); err != nil { - return nil, err - } - } - - if hints == nil { - hints = &FileHints{} - } - - w := encryptedData - if signer != nil { - // If we need to write a signature packet after the literal - // data then we need to stop literalData from closing - // encryptedData. - w = noOpCloser{encryptedData} - - } - var epochSeconds uint32 - if !hints.ModTime.IsZero() { - epochSeconds = uint32(hints.ModTime.Unix()) - } - literalData, err := packet.SerializeLiteral(w, hints.IsBinary, hints.FileName, epochSeconds) - if err != nil { - return nil, err - } - - if signer != nil { - return signatureWriter{encryptedData, literalData, hash, hash.New(), signer, config}, nil - } - return literalData, nil -} - -// signatureWriter hashes the contents of a message while passing it along to -// literalData. When closed, it closes literalData, writes a signature packet -// to encryptedData and then also closes encryptedData. -type signatureWriter struct { - encryptedData io.WriteCloser - literalData io.WriteCloser - hashType crypto.Hash - h hash.Hash - signer *packet.PrivateKey - config *packet.Config -} - -func (s signatureWriter) Write(data []byte) (int, error) { - s.h.Write(data) - return s.literalData.Write(data) -} - -func (s signatureWriter) Close() error { - sig := &packet.Signature{ - SigType: packet.SigTypeBinary, - PubKeyAlgo: s.signer.PubKeyAlgo, - Hash: s.hashType, - CreationTime: s.config.Now(), - IssuerKeyId: &s.signer.KeyId, - } - - if err := sig.Sign(s.h, s.signer, s.config); err != nil { - return err - } - if err := s.literalData.Close(); err != nil { - return err - } - if err := sig.Serialize(s.encryptedData); err != nil { - return err - } - return s.encryptedData.Close() -} - -// noOpCloser is like an ioutil.NopCloser, but for an io.Writer. -// TODO: we have two of these in OpenPGP packages alone. This probably needs -// to be promoted somewhere more common. -type noOpCloser struct { - w io.Writer -} - -func (c noOpCloser) Write(data []byte) (n int, err error) { - return c.w.Write(data) -} - -func (c noOpCloser) Close() error { - return nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/write_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/write_test.go deleted file mode 100644 index f91b2220..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/write_test.go +++ /dev/null @@ -1,259 +0,0 @@ -// 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 openpgp - -import ( - "bytes" - "io" - "io/ioutil" - "testing" - "time" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/openpgp/packet" -) - -func TestSignDetached(t *testing.T) { - kring, _ := ReadKeyRing(readerFromHex(testKeys1And2PrivateHex)) - out := bytes.NewBuffer(nil) - message := bytes.NewBufferString(signedInput) - err := DetachSign(out, kring[0], message, nil) - if err != nil { - t.Error(err) - } - - testDetachedSignature(t, kring, out, signedInput, "check", testKey1KeyId) -} - -func TestSignTextDetached(t *testing.T) { - kring, _ := ReadKeyRing(readerFromHex(testKeys1And2PrivateHex)) - out := bytes.NewBuffer(nil) - message := bytes.NewBufferString(signedInput) - err := DetachSignText(out, kring[0], message, nil) - if err != nil { - t.Error(err) - } - - testDetachedSignature(t, kring, out, signedInput, "check", testKey1KeyId) -} - -func TestSignDetachedDSA(t *testing.T) { - kring, _ := ReadKeyRing(readerFromHex(dsaTestKeyPrivateHex)) - out := bytes.NewBuffer(nil) - message := bytes.NewBufferString(signedInput) - err := DetachSign(out, kring[0], message, nil) - if err != nil { - t.Error(err) - } - - testDetachedSignature(t, kring, out, signedInput, "check", testKey3KeyId) -} - -func TestNewEntity(t *testing.T) { - if testing.Short() { - return - } - - // Check bit-length with no config. - e, err := NewEntity("Test User", "test", "test@example.com", nil) - if err != nil { - t.Errorf("failed to create entity: %s", err) - return - } - bl, err := e.PrimaryKey.BitLength() - if err != nil { - t.Errorf("failed to find bit length: %s", err) - } - if int(bl) != defaultRSAKeyBits { - t.Errorf("BitLength %v, expected %v", defaultRSAKeyBits) - } - - // Check bit-length with a config. - cfg := &packet.Config{RSABits: 1024} - e, err = NewEntity("Test User", "test", "test@example.com", cfg) - if err != nil { - t.Errorf("failed to create entity: %s", err) - return - } - bl, err = e.PrimaryKey.BitLength() - if err != nil { - t.Errorf("failed to find bit length: %s", err) - } - if int(bl) != cfg.RSABits { - t.Errorf("BitLength %v, expected %v", bl, cfg.RSABits) - } - - w := bytes.NewBuffer(nil) - if err := e.SerializePrivate(w, nil); err != nil { - t.Errorf("failed to serialize entity: %s", err) - return - } - serialized := w.Bytes() - - el, err := ReadKeyRing(w) - if err != nil { - t.Errorf("failed to reparse entity: %s", err) - return - } - - if len(el) != 1 { - t.Errorf("wrong number of entities found, got %d, want 1", len(el)) - } - - w = bytes.NewBuffer(nil) - if err := e.SerializePrivate(w, nil); err != nil { - t.Errorf("failed to serialize entity second time: %s", err) - return - } - - if !bytes.Equal(w.Bytes(), serialized) { - t.Errorf("results differed") - } -} - -func TestSymmetricEncryption(t *testing.T) { - buf := new(bytes.Buffer) - plaintext, err := SymmetricallyEncrypt(buf, []byte("testing"), nil, nil) - if err != nil { - t.Errorf("error writing headers: %s", err) - return - } - message := []byte("hello world\n") - _, err = plaintext.Write(message) - if err != nil { - t.Errorf("error writing to plaintext writer: %s", err) - } - err = plaintext.Close() - if err != nil { - t.Errorf("error closing plaintext writer: %s", err) - } - - md, err := ReadMessage(buf, nil, func(keys []Key, symmetric bool) ([]byte, error) { - return []byte("testing"), nil - }, nil) - if err != nil { - t.Errorf("error rereading message: %s", err) - } - messageBuf := bytes.NewBuffer(nil) - _, err = io.Copy(messageBuf, md.UnverifiedBody) - if err != nil { - t.Errorf("error rereading message: %s", err) - } - if !bytes.Equal(message, messageBuf.Bytes()) { - t.Errorf("recovered message incorrect got '%s', want '%s'", messageBuf.Bytes(), message) - } -} - -var testEncryptionTests = []struct { - keyRingHex string - isSigned bool -}{ - { - testKeys1And2PrivateHex, - false, - }, - { - testKeys1And2PrivateHex, - true, - }, - { - dsaElGamalTestKeysHex, - false, - }, - { - dsaElGamalTestKeysHex, - true, - }, -} - -func TestEncryption(t *testing.T) { - for i, test := range testEncryptionTests { - kring, _ := ReadKeyRing(readerFromHex(test.keyRingHex)) - - passphrase := []byte("passphrase") - for _, entity := range kring { - if entity.PrivateKey != nil && entity.PrivateKey.Encrypted { - err := entity.PrivateKey.Decrypt(passphrase) - if err != nil { - t.Errorf("#%d: failed to decrypt key", i) - } - } - for _, subkey := range entity.Subkeys { - if subkey.PrivateKey != nil && subkey.PrivateKey.Encrypted { - err := subkey.PrivateKey.Decrypt(passphrase) - if err != nil { - t.Errorf("#%d: failed to decrypt subkey", i) - } - } - } - } - - var signed *Entity - if test.isSigned { - signed = kring[0] - } - - buf := new(bytes.Buffer) - w, err := Encrypt(buf, kring[:1], signed, nil /* no hints */, nil) - if err != nil { - t.Errorf("#%d: error in Encrypt: %s", i, err) - continue - } - - const message = "testing" - _, err = w.Write([]byte(message)) - if err != nil { - t.Errorf("#%d: error writing plaintext: %s", i, err) - continue - } - err = w.Close() - if err != nil { - t.Errorf("#%d: error closing WriteCloser: %s", i, err) - continue - } - - md, err := ReadMessage(buf, kring, nil /* no prompt */, nil) - if err != nil { - t.Errorf("#%d: error reading message: %s", i, err) - continue - } - - testTime, _ := time.Parse("2006-01-02", "2013-07-01") - if test.isSigned { - signKey, _ := kring[0].signingKey(testTime) - expectedKeyId := signKey.PublicKey.KeyId - if md.SignedByKeyId != expectedKeyId { - t.Errorf("#%d: message signed by wrong key id, got: %d, want: %d", i, *md.SignedBy, expectedKeyId) - } - if md.SignedBy == nil { - t.Errorf("#%d: failed to find the signing Entity", i) - } - } - - plaintext, err := ioutil.ReadAll(md.UnverifiedBody) - if err != nil { - t.Errorf("#%d: error reading encrypted contents: %s", i, err) - continue - } - - encryptKey, _ := kring[0].encryptionKey(testTime) - expectedKeyId := encryptKey.PublicKey.KeyId - if len(md.EncryptedToKeyIds) != 1 || md.EncryptedToKeyIds[0] != expectedKeyId { - t.Errorf("#%d: expected message to be encrypted to %v, but got %#v", i, expectedKeyId, md.EncryptedToKeyIds) - } - - if string(plaintext) != message { - t.Errorf("#%d: got: %s, want: %s", i, string(plaintext), message) - } - - if test.isSigned { - if md.SignatureError != nil { - t.Errorf("#%d: signature error: %s", i, md.SignatureError) - } - if md.Signature == nil { - t.Error("signature missing") - } - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/libotr_test_helper.c b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/libotr_test_helper.c deleted file mode 100644 index 6423eeda..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/libotr_test_helper.c +++ /dev/null @@ -1,171 +0,0 @@ -// Copyright 2012 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. - -// This code can be compiled and used to test the otr package against libotr. -// See otr_test.go. - -// +build ignore - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - -#include <proto.h> -#include <message.h> - -static int g_session_established = 0; - -OtrlPolicy policy(void *opdata, ConnContext *context) { - return OTRL_POLICY_ALWAYS; -} - -int is_logged_in(void *opdata, const char *accountname, const char *protocol, const char *recipient) { - return 1; -} - -void inject_message(void *opdata, const char *accountname, const char *protocol, const char *recipient, const char *message) { - printf("%s\n", message); - fflush(stdout); - fprintf(stderr, "libotr helper sent: %s\n", message); -} - -void notify(void *opdata, OtrlNotifyLevel level, const char *accountname, const char *protocol, const char *username, const char *title, const char *primary, const char *secondary) { - fprintf(stderr, "NOTIFY: %s %s %s %s\n", username, title, primary, secondary); -} - -int display_otr_message(void *opdata, const char *accountname, const char *protocol, const char *username, const char *msg) { - fprintf(stderr, "MESSAGE: %s %s\n", username, msg); - return 1; -} - -void update_context_list(void *opdata) { -} - -const char *protocol_name(void *opdata, const char *protocol) { - return "PROTOCOL"; -} - -void protocol_name_free(void *opdata, const char *protocol_name) { -} - -void new_fingerprint(void *opdata, OtrlUserState us, const char *accountname, const char *protocol, const char *username, unsigned char fingerprint[20]) { - fprintf(stderr, "NEW FINGERPRINT\n"); - g_session_established = 1; -} - -void write_fingerprints(void *opdata) { -} - -void gone_secure(void *opdata, ConnContext *context) { -} - -void gone_insecure(void *opdata, ConnContext *context) { -} - -void still_secure(void *opdata, ConnContext *context, int is_reply) { -} - -void log_message(void *opdata, const char *message) { - fprintf(stderr, "MESSAGE: %s\n", message); -} - -int max_message_size(void *opdata, ConnContext *context) { - return 99999; -} - -const char *account_name(void *opdata, const char *account, const char *protocol) { - return "ACCOUNT"; -} - -void account_name_free(void *opdata, const char *account_name) { -} - -OtrlMessageAppOps uiops = { - policy, - NULL, - is_logged_in, - inject_message, - notify, - display_otr_message, - update_context_list, - protocol_name, - protocol_name_free, - new_fingerprint, - write_fingerprints, - gone_secure, - gone_insecure, - still_secure, - log_message, - max_message_size, - account_name, - account_name_free, -}; - -static const char kPrivateKeyData[] = "(privkeys (account (name \"account\") (protocol proto) (private-key (dsa (p #00FC07ABCF0DC916AFF6E9AE47BEF60C7AB9B4D6B2469E436630E36F8A489BE812486A09F30B71224508654940A835301ACC525A4FF133FC152CC53DCC59D65C30A54F1993FE13FE63E5823D4C746DB21B90F9B9C00B49EC7404AB1D929BA7FBA12F2E45C6E0A651689750E8528AB8C031D3561FECEE72EBB4A090D450A9B7A857#) (q #00997BD266EF7B1F60A5C23F3A741F2AEFD07A2081#) (g #535E360E8A95EBA46A4F7DE50AD6E9B2A6DB785A66B64EB9F20338D2A3E8FB0E94725848F1AA6CC567CB83A1CC517EC806F2E92EAE71457E80B2210A189B91250779434B41FC8A8873F6DB94BEA7D177F5D59E7E114EE10A49CFD9CEF88AE43387023B672927BA74B04EB6BBB5E57597766A2F9CE3857D7ACE3E1E3BC1FC6F26#) (y #0AC8670AD767D7A8D9D14CC1AC6744CD7D76F993B77FFD9E39DF01E5A6536EF65E775FCEF2A983E2A19BD6415500F6979715D9FD1257E1FE2B6F5E1E74B333079E7C880D39868462A93454B41877BE62E5EF0A041C2EE9C9E76BD1E12AE25D9628DECB097025DD625EF49C3258A1A3C0FF501E3DC673B76D7BABF349009B6ECF#) (x #14D0345A3562C480A039E3C72764F72D79043216#)))))\n"; - -int -main() { - OTRL_INIT; - - // We have to write the private key information to a file because the libotr - // API demands a filename to read from. - const char *tmpdir = "/tmp"; - if (getenv("TMP")) { - tmpdir = getenv("TMP"); - } - - char private_key_file[256]; - snprintf(private_key_file, sizeof(private_key_file), "%s/libotr_test_helper_privatekeys-XXXXXX", tmpdir); - int fd = mkstemp(private_key_file); - if (fd == -1) { - perror("creating temp file"); - } - write(fd, kPrivateKeyData, sizeof(kPrivateKeyData)-1); - close(fd); - - OtrlUserState userstate = otrl_userstate_create(); - otrl_privkey_read(userstate, private_key_file); - unlink(private_key_file); - - fprintf(stderr, "libotr helper started\n"); - - char buf[4096]; - - for (;;) { - char* message = fgets(buf, sizeof(buf), stdin); - if (strlen(message) == 0) { - break; - } - message[strlen(message) - 1] = 0; - fprintf(stderr, "libotr helper got: %s\n", message); - - char *newmessage = NULL; - OtrlTLV *tlvs; - int ignore_message = otrl_message_receiving(userstate, &uiops, NULL, "account", "proto", "peer", message, &newmessage, &tlvs, NULL, NULL); - if (tlvs) { - otrl_tlv_free(tlvs); - } - - if (newmessage != NULL) { - fprintf(stderr, "libotr got: %s\n", newmessage); - otrl_message_free(newmessage); - - gcry_error_t err; - char *newmessage = NULL; - - err = otrl_message_sending(userstate, &uiops, NULL, "account", "proto", "peer", "test message", NULL, &newmessage, NULL, NULL); - if (newmessage == NULL) { - fprintf(stderr, "libotr didn't encrypt message\n"); - return 1; - } - write(1, newmessage, strlen(newmessage)); - write(1, "\n", 1); - g_session_established = 0; - otrl_message_free(newmessage); - write(1, "?OTRv2?\n", 8); - } - } - - return 0; -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/otr.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/otr.go deleted file mode 100644 index c89c659a..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/otr.go +++ /dev/null @@ -1,1401 +0,0 @@ -// Copyright 2012 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 otr implements the Off The Record protocol as specified in -// http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html -package otr - -import ( - "bytes" - "crypto/aes" - "crypto/cipher" - "crypto/dsa" - "crypto/hmac" - "crypto/rand" - "crypto/sha1" - "crypto/sha256" - "crypto/subtle" - "encoding/base64" - "encoding/hex" - "errors" - "hash" - "io" - "math/big" - "strconv" -) - -// SecurityChange describes a change in the security state of a Conversation. -type SecurityChange int - -const ( - NoChange SecurityChange = iota - // NewKeys indicates that a key exchange has completed. This occurs - // when a conversation first becomes encrypted, and when the keys are - // renegotiated within an encrypted conversation. - NewKeys - // SMPSecretNeeded indicates that the peer has started an - // authentication and that we need to supply a secret. Call SMPQuestion - // to get the optional, human readable challenge and then Authenticate - // to supply the matching secret. - SMPSecretNeeded - // SMPComplete indicates that an authentication completed. The identity - // of the peer has now been confirmed. - SMPComplete - // SMPFailed indicates that an authentication failed. - SMPFailed - // ConversationEnded indicates that the peer ended the secure - // conversation. - ConversationEnded -) - -// QueryMessage can be sent to a peer to start an OTR conversation. -var QueryMessage = "?OTRv2?" - -// ErrorPrefix can be used to make an OTR error by appending an error message -// to it. -var ErrorPrefix = "?OTR Error:" - -var ( - fragmentPartSeparator = []byte(",") - fragmentPrefix = []byte("?OTR,") - msgPrefix = []byte("?OTR:") - queryMarker = []byte("?OTR") -) - -// isQuery attempts to parse an OTR query from msg and returns the greatest -// common version, or 0 if msg is not an OTR query. -func isQuery(msg []byte) (greatestCommonVersion int) { - pos := bytes.Index(msg, queryMarker) - if pos == -1 { - return 0 - } - for i, c := range msg[pos+len(queryMarker):] { - if i == 0 { - if c == '?' { - // Indicates support for version 1, but we don't - // implement that. - continue - } - - if c != 'v' { - // Invalid message - return 0 - } - - continue - } - - if c == '?' { - // End of message - return - } - - if c == ' ' || c == '\t' { - // Probably an invalid message - return 0 - } - - if c == '2' { - greatestCommonVersion = 2 - } - } - - return 0 -} - -const ( - statePlaintext = iota - stateEncrypted - stateFinished -) - -const ( - authStateNone = iota - authStateAwaitingDHKey - authStateAwaitingRevealSig - authStateAwaitingSig -) - -const ( - msgTypeDHCommit = 2 - msgTypeData = 3 - msgTypeDHKey = 10 - msgTypeRevealSig = 17 - msgTypeSig = 18 -) - -const ( - // If the requested fragment size is less than this, it will be ignored. - minFragmentSize = 18 - // Messages are padded to a multiple of this number of bytes. - paddingGranularity = 256 - // The number of bytes in a Diffie-Hellman private value (320-bits). - dhPrivateBytes = 40 - // The number of bytes needed to represent an element of the DSA - // subgroup (160-bits). - dsaSubgroupBytes = 20 - // The number of bytes of the MAC that are sent on the wire (160-bits). - macPrefixBytes = 20 -) - -// These are the global, common group parameters for OTR. -var ( - p *big.Int // group prime - g *big.Int // group generator - q *big.Int // group order - pMinus2 *big.Int -) - -func init() { - p, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF", 16) - q, _ = new(big.Int).SetString("7FFFFFFFFFFFFFFFE487ED5110B4611A62633145C06E0E68948127044533E63A0105DF531D89CD9128A5043CC71A026EF7CA8CD9E69D218D98158536F92F8A1BA7F09AB6B6A8E122F242DABB312F3F637A262174D31BF6B585FFAE5B7A035BF6F71C35FDAD44CFD2D74F9208BE258FF324943328F6722D9EE1003E5C50B1DF82CC6D241B0E2AE9CD348B1FD47E9267AFC1B2AE91EE51D6CB0E3179AB1042A95DCF6A9483B84B4B36B3861AA7255E4C0278BA36046511B993FFFFFFFFFFFFFFFF", 16) - g = new(big.Int).SetInt64(2) - pMinus2 = new(big.Int).Sub(p, g) -} - -// Conversation represents a relation with a peer. The zero value is a valid -// Conversation, although PrivateKey must be set. -// -// When communicating with a peer, all inbound messages should be passed to -// Conversation.Receive and all outbound messages to Conversation.Send. The -// Conversation will take care of maintaining the encryption state and -// negotiating encryption as needed. -type Conversation struct { - // PrivateKey contains the private key to use to sign key exchanges. - PrivateKey *PrivateKey - - // Rand can be set to override the entropy source. Otherwise, - // crypto/rand will be used. - Rand io.Reader - // If FragmentSize is set, all messages produced by Receive and Send - // will be fragmented into messages of, at most, this number of bytes. - FragmentSize int - - // Once Receive has returned NewKeys once, the following fields are - // valid. - SSID [8]byte - TheirPublicKey PublicKey - - state, authState int - - r [16]byte - x, y *big.Int - gx, gy *big.Int - gxBytes []byte - digest [sha256.Size]byte - - revealKeys, sigKeys akeKeys - - myKeyId uint32 - myCurrentDHPub *big.Int - myCurrentDHPriv *big.Int - myLastDHPub *big.Int - myLastDHPriv *big.Int - - theirKeyId uint32 - theirCurrentDHPub *big.Int - theirLastDHPub *big.Int - - keySlots [4]keySlot - - myCounter [8]byte - theirLastCtr [8]byte - oldMACs []byte - - k, n int // fragment state - frag []byte - - smp smpState -} - -// A keySlot contains key material for a specific (their keyid, my keyid) pair. -type keySlot struct { - // used is true if this slot is valid. If false, it's free for reuse. - used bool - theirKeyId uint32 - myKeyId uint32 - sendAESKey, recvAESKey []byte - sendMACKey, recvMACKey []byte - theirLastCtr [8]byte -} - -// akeKeys are generated during key exchange. There's one set for the reveal -// signature message and another for the signature message. In the protocol -// spec the latter are indicated with a prime mark. -type akeKeys struct { - c [16]byte - m1, m2 [32]byte -} - -func (c *Conversation) rand() io.Reader { - if c.Rand != nil { - return c.Rand - } - return rand.Reader -} - -func (c *Conversation) randMPI(buf []byte) *big.Int { - _, err := io.ReadFull(c.rand(), buf) - if err != nil { - panic("otr: short read from random source") - } - - return new(big.Int).SetBytes(buf) -} - -// tlv represents the type-length value from the protocol. -type tlv struct { - typ, length uint16 - data []byte -} - -const ( - tlvTypePadding = 0 - tlvTypeDisconnected = 1 - tlvTypeSMP1 = 2 - tlvTypeSMP2 = 3 - tlvTypeSMP3 = 4 - tlvTypeSMP4 = 5 - tlvTypeSMPAbort = 6 - tlvTypeSMP1WithQuestion = 7 -) - -// Receive handles a message from a peer. It returns a human readable message, -// an indicator of whether that message was encrypted, a hint about the -// encryption state and zero or more messages to send back to the peer. -// These messages do not need to be passed to Send before transmission. -func (c *Conversation) Receive(in []byte) (out []byte, encrypted bool, change SecurityChange, toSend [][]byte, err error) { - if bytes.HasPrefix(in, fragmentPrefix) { - in, err = c.processFragment(in) - if in == nil || err != nil { - return - } - } - - if bytes.HasPrefix(in, msgPrefix) && in[len(in)-1] == '.' { - in = in[len(msgPrefix) : len(in)-1] - } else if version := isQuery(in); version > 0 { - c.authState = authStateAwaitingDHKey - c.myKeyId = 0 - toSend = c.encode(c.generateDHCommit()) - return - } else { - // plaintext message - out = in - return - } - - msg := make([]byte, base64.StdEncoding.DecodedLen(len(in))) - msgLen, err := base64.StdEncoding.Decode(msg, in) - if err != nil { - err = errors.New("otr: invalid base64 encoding in message") - return - } - msg = msg[:msgLen] - - // The first two bytes are the protocol version (2) - if len(msg) < 3 || msg[0] != 0 || msg[1] != 2 { - err = errors.New("otr: invalid OTR message") - return - } - - msgType := int(msg[2]) - msg = msg[3:] - - switch msgType { - case msgTypeDHCommit: - switch c.authState { - case authStateNone: - c.authState = authStateAwaitingRevealSig - if err = c.processDHCommit(msg); err != nil { - return - } - c.myKeyId = 0 - toSend = c.encode(c.generateDHKey()) - return - case authStateAwaitingDHKey: - // This is a 'SYN-crossing'. The greater digest wins. - var cmp int - if cmp, err = c.compareToDHCommit(msg); err != nil { - return - } - if cmp > 0 { - // We win. Retransmit DH commit. - toSend = c.encode(c.serializeDHCommit()) - return - } else { - // They win. We forget about our DH commit. - c.authState = authStateAwaitingRevealSig - if err = c.processDHCommit(msg); err != nil { - return - } - c.myKeyId = 0 - toSend = c.encode(c.generateDHKey()) - return - } - case authStateAwaitingRevealSig: - if err = c.processDHCommit(msg); err != nil { - return - } - toSend = c.encode(c.serializeDHKey()) - case authStateAwaitingSig: - if err = c.processDHCommit(msg); err != nil { - return - } - c.myKeyId = 0 - toSend = c.encode(c.generateDHKey()) - c.authState = authStateAwaitingRevealSig - default: - panic("bad state") - } - case msgTypeDHKey: - switch c.authState { - case authStateAwaitingDHKey: - var isSame bool - if isSame, err = c.processDHKey(msg); err != nil { - return - } - if isSame { - err = errors.New("otr: unexpected duplicate DH key") - return - } - toSend = c.encode(c.generateRevealSig()) - c.authState = authStateAwaitingSig - case authStateAwaitingSig: - var isSame bool - if isSame, err = c.processDHKey(msg); err != nil { - return - } - if isSame { - toSend = c.encode(c.serializeDHKey()) - } - } - case msgTypeRevealSig: - if c.authState != authStateAwaitingRevealSig { - return - } - if err = c.processRevealSig(msg); err != nil { - return - } - toSend = c.encode(c.generateSig()) - c.authState = authStateNone - c.state = stateEncrypted - change = NewKeys - case msgTypeSig: - if c.authState != authStateAwaitingSig { - return - } - if err = c.processSig(msg); err != nil { - return - } - c.authState = authStateNone - c.state = stateEncrypted - change = NewKeys - case msgTypeData: - if c.state != stateEncrypted { - err = errors.New("otr: encrypted message received without encrypted session established") - return - } - var tlvs []tlv - out, tlvs, err = c.processData(msg) - encrypted = true - - EachTLV: - for _, inTLV := range tlvs { - switch inTLV.typ { - case tlvTypeDisconnected: - change = ConversationEnded - c.state = stateFinished - break EachTLV - case tlvTypeSMP1, tlvTypeSMP2, tlvTypeSMP3, tlvTypeSMP4, tlvTypeSMPAbort, tlvTypeSMP1WithQuestion: - var reply tlv - var complete bool - reply, complete, err = c.processSMP(inTLV) - if err == smpSecretMissingError { - err = nil - change = SMPSecretNeeded - c.smp.saved = &inTLV - return - } - if err == smpFailureError { - err = nil - change = SMPFailed - } else if complete { - change = SMPComplete - } - if reply.typ != 0 { - toSend = c.encode(c.generateData(nil, &reply)) - } - break EachTLV - default: - // skip unknown TLVs - } - } - default: - err = errors.New("otr: unknown message type " + strconv.Itoa(msgType)) - } - - return -} - -// Send takes a human readable message from the local user, possibly encrypts -// it and returns zero one or more messages to send to the peer. -func (c *Conversation) Send(msg []byte) ([][]byte, error) { - switch c.state { - case statePlaintext: - return [][]byte{msg}, nil - case stateEncrypted: - return c.encode(c.generateData(msg, nil)), nil - case stateFinished: - return nil, errors.New("otr: cannot send message because secure conversation has finished") - } - - return nil, errors.New("otr: cannot send message in current state") -} - -// SMPQuestion returns the human readable challenge question from the peer. -// It's only valid after Receive has returned SMPSecretNeeded. -func (c *Conversation) SMPQuestion() string { - return c.smp.question -} - -// Authenticate begins an authentication with the peer. Authentication involves -// an optional challenge message and a shared secret. The authentication -// proceeds until either Receive returns SMPComplete, SMPSecretNeeded (which -// indicates that a new authentication is happening and thus this one was -// aborted) or SMPFailed. -func (c *Conversation) Authenticate(question string, mutualSecret []byte) (toSend [][]byte, err error) { - if c.state != stateEncrypted { - err = errors.New("otr: can't authenticate a peer without a secure conversation established") - return - } - - if c.smp.saved != nil { - c.calcSMPSecret(mutualSecret, false /* they started it */) - - var out tlv - var complete bool - out, complete, err = c.processSMP(*c.smp.saved) - if complete { - panic("SMP completed on the first message") - } - c.smp.saved = nil - if out.typ != 0 { - toSend = c.encode(c.generateData(nil, &out)) - } - return - } - - c.calcSMPSecret(mutualSecret, true /* we started it */) - outs := c.startSMP(question) - for _, out := range outs { - toSend = append(toSend, c.encode(c.generateData(nil, &out))...) - } - return -} - -// End ends a secure conversation by generating a termination message for -// the peer and switches to unencrypted communication. -func (c *Conversation) End() (toSend [][]byte) { - switch c.state { - case statePlaintext: - return nil - case stateEncrypted: - c.state = statePlaintext - return c.encode(c.generateData(nil, &tlv{typ: tlvTypeDisconnected})) - case stateFinished: - c.state = statePlaintext - return nil - } - panic("unreachable") -} - -// IsEncrypted returns true if a message passed to Send would be encrypted -// before transmission. This result remains valid until the next call to -// Receive or End, which may change the state of the Conversation. -func (c *Conversation) IsEncrypted() bool { - return c.state == stateEncrypted -} - -var fragmentError = errors.New("otr: invalid OTR fragment") - -// processFragment processes a fragmented OTR message and possibly returns a -// complete message. Fragmented messages look like "?OTR,k,n,msg," where k is -// the fragment number (starting from 1), n is the number of fragments in this -// message and msg is a substring of the base64 encoded message. -func (c *Conversation) processFragment(in []byte) (out []byte, err error) { - in = in[len(fragmentPrefix):] // remove "?OTR," - parts := bytes.Split(in, fragmentPartSeparator) - if len(parts) != 4 || len(parts[3]) != 0 { - return nil, fragmentError - } - - k, err := strconv.Atoi(string(parts[0])) - if err != nil { - return nil, fragmentError - } - - n, err := strconv.Atoi(string(parts[1])) - if err != nil { - return nil, fragmentError - } - - if k < 1 || n < 1 || k > n { - return nil, fragmentError - } - - if k == 1 { - c.frag = append(c.frag[:0], parts[2]...) - c.k, c.n = k, n - } else if n == c.n && k == c.k+1 { - c.frag = append(c.frag, parts[2]...) - c.k++ - } else { - c.frag = c.frag[:0] - c.n, c.k = 0, 0 - } - - if c.n > 0 && c.k == c.n { - c.n, c.k = 0, 0 - return c.frag, nil - } - - return nil, nil -} - -func (c *Conversation) generateDHCommit() []byte { - _, err := io.ReadFull(c.rand(), c.r[:]) - if err != nil { - panic("otr: short read from random source") - } - - var xBytes [dhPrivateBytes]byte - c.x = c.randMPI(xBytes[:]) - c.gx = new(big.Int).Exp(g, c.x, p) - c.gy = nil - c.gxBytes = appendMPI(nil, c.gx) - - h := sha256.New() - h.Write(c.gxBytes) - h.Sum(c.digest[:0]) - - aesCipher, err := aes.NewCipher(c.r[:]) - if err != nil { - panic(err.Error()) - } - - var iv [aes.BlockSize]byte - ctr := cipher.NewCTR(aesCipher, iv[:]) - ctr.XORKeyStream(c.gxBytes, c.gxBytes) - - return c.serializeDHCommit() -} - -func (c *Conversation) serializeDHCommit() []byte { - var ret []byte - ret = appendU16(ret, 2) // protocol version - ret = append(ret, msgTypeDHCommit) - ret = appendData(ret, c.gxBytes) - ret = appendData(ret, c.digest[:]) - return ret -} - -func (c *Conversation) processDHCommit(in []byte) error { - var ok1, ok2 bool - c.gxBytes, in, ok1 = getData(in) - digest, in, ok2 := getData(in) - if !ok1 || !ok2 || len(in) > 0 { - return errors.New("otr: corrupt DH commit message") - } - copy(c.digest[:], digest) - return nil -} - -func (c *Conversation) compareToDHCommit(in []byte) (int, error) { - _, in, ok1 := getData(in) - digest, in, ok2 := getData(in) - if !ok1 || !ok2 || len(in) > 0 { - return 0, errors.New("otr: corrupt DH commit message") - } - return bytes.Compare(c.digest[:], digest), nil -} - -func (c *Conversation) generateDHKey() []byte { - var yBytes [dhPrivateBytes]byte - c.y = c.randMPI(yBytes[:]) - c.gy = new(big.Int).Exp(g, c.y, p) - return c.serializeDHKey() -} - -func (c *Conversation) serializeDHKey() []byte { - var ret []byte - ret = appendU16(ret, 2) // protocol version - ret = append(ret, msgTypeDHKey) - ret = appendMPI(ret, c.gy) - return ret -} - -func (c *Conversation) processDHKey(in []byte) (isSame bool, err error) { - gy, in, ok := getMPI(in) - if !ok { - err = errors.New("otr: corrupt DH key message") - return - } - if gy.Cmp(g) < 0 || gy.Cmp(pMinus2) > 0 { - err = errors.New("otr: DH value out of range") - return - } - if c.gy != nil { - isSame = c.gy.Cmp(gy) == 0 - return - } - c.gy = gy - return -} - -func (c *Conversation) generateEncryptedSignature(keys *akeKeys, xFirst bool) ([]byte, []byte) { - var xb []byte - xb = c.PrivateKey.PublicKey.Serialize(xb) - - var verifyData []byte - if xFirst { - verifyData = appendMPI(verifyData, c.gx) - verifyData = appendMPI(verifyData, c.gy) - } else { - verifyData = appendMPI(verifyData, c.gy) - verifyData = appendMPI(verifyData, c.gx) - } - verifyData = append(verifyData, xb...) - verifyData = appendU32(verifyData, c.myKeyId) - - mac := hmac.New(sha256.New, keys.m1[:]) - mac.Write(verifyData) - mb := mac.Sum(nil) - - xb = appendU32(xb, c.myKeyId) - xb = append(xb, c.PrivateKey.Sign(c.rand(), mb)...) - - aesCipher, err := aes.NewCipher(keys.c[:]) - if err != nil { - panic(err.Error()) - } - var iv [aes.BlockSize]byte - ctr := cipher.NewCTR(aesCipher, iv[:]) - ctr.XORKeyStream(xb, xb) - - mac = hmac.New(sha256.New, keys.m2[:]) - encryptedSig := appendData(nil, xb) - mac.Write(encryptedSig) - - return encryptedSig, mac.Sum(nil) -} - -func (c *Conversation) generateRevealSig() []byte { - s := new(big.Int).Exp(c.gy, c.x, p) - c.calcAKEKeys(s) - c.myKeyId++ - - encryptedSig, mac := c.generateEncryptedSignature(&c.revealKeys, true /* gx comes first */) - - c.myCurrentDHPub = c.gx - c.myCurrentDHPriv = c.x - c.rotateDHKeys() - incCounter(&c.myCounter) - - var ret []byte - ret = appendU16(ret, 2) - ret = append(ret, msgTypeRevealSig) - ret = appendData(ret, c.r[:]) - ret = append(ret, encryptedSig...) - ret = append(ret, mac[:20]...) - return ret -} - -func (c *Conversation) processEncryptedSig(encryptedSig, theirMAC []byte, keys *akeKeys, xFirst bool) error { - mac := hmac.New(sha256.New, keys.m2[:]) - mac.Write(appendData(nil, encryptedSig)) - myMAC := mac.Sum(nil)[:20] - - if len(myMAC) != len(theirMAC) || subtle.ConstantTimeCompare(myMAC, theirMAC) == 0 { - return errors.New("bad signature MAC in encrypted signature") - } - - aesCipher, err := aes.NewCipher(keys.c[:]) - if err != nil { - panic(err.Error()) - } - var iv [aes.BlockSize]byte - ctr := cipher.NewCTR(aesCipher, iv[:]) - ctr.XORKeyStream(encryptedSig, encryptedSig) - - sig := encryptedSig - sig, ok1 := c.TheirPublicKey.Parse(sig) - keyId, sig, ok2 := getU32(sig) - if !ok1 || !ok2 { - return errors.New("otr: corrupt encrypted signature") - } - - var verifyData []byte - if xFirst { - verifyData = appendMPI(verifyData, c.gx) - verifyData = appendMPI(verifyData, c.gy) - } else { - verifyData = appendMPI(verifyData, c.gy) - verifyData = appendMPI(verifyData, c.gx) - } - verifyData = c.TheirPublicKey.Serialize(verifyData) - verifyData = appendU32(verifyData, keyId) - - mac = hmac.New(sha256.New, keys.m1[:]) - mac.Write(verifyData) - mb := mac.Sum(nil) - - sig, ok1 = c.TheirPublicKey.Verify(mb, sig) - if !ok1 { - return errors.New("bad signature in encrypted signature") - } - if len(sig) > 0 { - return errors.New("corrupt encrypted signature") - } - - c.theirKeyId = keyId - zero(c.theirLastCtr[:]) - return nil -} - -func (c *Conversation) processRevealSig(in []byte) error { - r, in, ok1 := getData(in) - encryptedSig, in, ok2 := getData(in) - theirMAC := in - if !ok1 || !ok2 || len(theirMAC) != 20 { - return errors.New("otr: corrupt reveal signature message") - } - - aesCipher, err := aes.NewCipher(r) - if err != nil { - return errors.New("otr: cannot create AES cipher from reveal signature message: " + err.Error()) - } - var iv [aes.BlockSize]byte - ctr := cipher.NewCTR(aesCipher, iv[:]) - ctr.XORKeyStream(c.gxBytes, c.gxBytes) - h := sha256.New() - h.Write(c.gxBytes) - digest := h.Sum(nil) - if len(digest) != len(c.digest) || subtle.ConstantTimeCompare(digest, c.digest[:]) == 0 { - return errors.New("otr: bad commit MAC in reveal signature message") - } - var rest []byte - c.gx, rest, ok1 = getMPI(c.gxBytes) - if !ok1 || len(rest) > 0 { - return errors.New("otr: gx corrupt after decryption") - } - if c.gx.Cmp(g) < 0 || c.gx.Cmp(pMinus2) > 0 { - return errors.New("otr: DH value out of range") - } - s := new(big.Int).Exp(c.gx, c.y, p) - c.calcAKEKeys(s) - - if err := c.processEncryptedSig(encryptedSig, theirMAC, &c.revealKeys, true /* gx comes first */); err != nil { - return errors.New("otr: in reveal signature message: " + err.Error()) - } - - c.theirCurrentDHPub = c.gx - c.theirLastDHPub = nil - - return nil -} - -func (c *Conversation) generateSig() []byte { - c.myKeyId++ - - encryptedSig, mac := c.generateEncryptedSignature(&c.sigKeys, false /* gy comes first */) - - c.myCurrentDHPub = c.gy - c.myCurrentDHPriv = c.y - c.rotateDHKeys() - incCounter(&c.myCounter) - - var ret []byte - ret = appendU16(ret, 2) - ret = append(ret, msgTypeSig) - ret = append(ret, encryptedSig...) - ret = append(ret, mac[:macPrefixBytes]...) - return ret -} - -func (c *Conversation) processSig(in []byte) error { - encryptedSig, in, ok1 := getData(in) - theirMAC := in - if !ok1 || len(theirMAC) != macPrefixBytes { - return errors.New("otr: corrupt signature message") - } - - if err := c.processEncryptedSig(encryptedSig, theirMAC, &c.sigKeys, false /* gy comes first */); err != nil { - return errors.New("otr: in signature message: " + err.Error()) - } - - c.theirCurrentDHPub = c.gy - c.theirLastDHPub = nil - - return nil -} - -func (c *Conversation) rotateDHKeys() { - // evict slots using our retired key id - for i := range c.keySlots { - slot := &c.keySlots[i] - if slot.used && slot.myKeyId == c.myKeyId-1 { - slot.used = false - c.oldMACs = append(c.oldMACs, slot.recvMACKey...) - } - } - - c.myLastDHPriv = c.myCurrentDHPriv - c.myLastDHPub = c.myCurrentDHPub - - var xBytes [dhPrivateBytes]byte - c.myCurrentDHPriv = c.randMPI(xBytes[:]) - c.myCurrentDHPub = new(big.Int).Exp(g, c.myCurrentDHPriv, p) - c.myKeyId++ -} - -func (c *Conversation) processData(in []byte) (out []byte, tlvs []tlv, err error) { - origIn := in - flags, in, ok1 := getU8(in) - theirKeyId, in, ok2 := getU32(in) - myKeyId, in, ok3 := getU32(in) - y, in, ok4 := getMPI(in) - counter, in, ok5 := getNBytes(in, 8) - encrypted, in, ok6 := getData(in) - macedData := origIn[:len(origIn)-len(in)] - theirMAC, in, ok7 := getNBytes(in, macPrefixBytes) - _, in, ok8 := getData(in) - if !ok1 || !ok2 || !ok3 || !ok4 || !ok5 || !ok6 || !ok7 || !ok8 || len(in) > 0 { - err = errors.New("otr: corrupt data message") - return - } - - ignoreErrors := flags&1 != 0 - - slot, err := c.calcDataKeys(myKeyId, theirKeyId) - if err != nil { - if ignoreErrors { - err = nil - } - return - } - - mac := hmac.New(sha1.New, slot.recvMACKey) - mac.Write([]byte{0, 2, 3}) - mac.Write(macedData) - myMAC := mac.Sum(nil) - if len(myMAC) != len(theirMAC) || subtle.ConstantTimeCompare(myMAC, theirMAC) == 0 { - if !ignoreErrors { - err = errors.New("otr: bad MAC on data message") - } - return - } - - if bytes.Compare(counter, slot.theirLastCtr[:]) <= 0 { - err = errors.New("otr: counter regressed") - return - } - copy(slot.theirLastCtr[:], counter) - - var iv [aes.BlockSize]byte - copy(iv[:], counter) - aesCipher, err := aes.NewCipher(slot.recvAESKey) - if err != nil { - panic(err.Error()) - } - ctr := cipher.NewCTR(aesCipher, iv[:]) - ctr.XORKeyStream(encrypted, encrypted) - decrypted := encrypted - - if myKeyId == c.myKeyId { - c.rotateDHKeys() - } - if theirKeyId == c.theirKeyId { - // evict slots using their retired key id - for i := range c.keySlots { - slot := &c.keySlots[i] - if slot.used && slot.theirKeyId == theirKeyId-1 { - slot.used = false - c.oldMACs = append(c.oldMACs, slot.recvMACKey...) - } - } - - c.theirLastDHPub = c.theirCurrentDHPub - c.theirKeyId++ - c.theirCurrentDHPub = y - } - - if nulPos := bytes.IndexByte(decrypted, 0); nulPos >= 0 { - out = decrypted[:nulPos] - tlvData := decrypted[nulPos+1:] - for len(tlvData) > 0 { - var t tlv - var ok1, ok2, ok3 bool - - t.typ, tlvData, ok1 = getU16(tlvData) - t.length, tlvData, ok2 = getU16(tlvData) - t.data, tlvData, ok3 = getNBytes(tlvData, int(t.length)) - if !ok1 || !ok2 || !ok3 { - err = errors.New("otr: corrupt tlv data") - } - tlvs = append(tlvs, t) - } - } else { - out = decrypted - } - - return -} - -func (c *Conversation) generateData(msg []byte, extra *tlv) []byte { - slot, err := c.calcDataKeys(c.myKeyId-1, c.theirKeyId) - if err != nil { - panic("otr: failed to generate sending keys: " + err.Error()) - } - - var plaintext []byte - plaintext = append(plaintext, msg...) - plaintext = append(plaintext, 0) - - padding := paddingGranularity - ((len(plaintext) + 4) % paddingGranularity) - plaintext = appendU16(plaintext, tlvTypePadding) - plaintext = appendU16(plaintext, uint16(padding)) - for i := 0; i < padding; i++ { - plaintext = append(plaintext, 0) - } - - if extra != nil { - plaintext = appendU16(plaintext, extra.typ) - plaintext = appendU16(plaintext, uint16(len(extra.data))) - plaintext = append(plaintext, extra.data...) - } - - encrypted := make([]byte, len(plaintext)) - - var iv [aes.BlockSize]byte - copy(iv[:], c.myCounter[:]) - aesCipher, err := aes.NewCipher(slot.sendAESKey) - if err != nil { - panic(err.Error()) - } - ctr := cipher.NewCTR(aesCipher, iv[:]) - ctr.XORKeyStream(encrypted, plaintext) - - var ret []byte - ret = appendU16(ret, 2) - ret = append(ret, msgTypeData) - ret = append(ret, 0 /* flags */) - ret = appendU32(ret, c.myKeyId-1) - ret = appendU32(ret, c.theirKeyId) - ret = appendMPI(ret, c.myCurrentDHPub) - ret = append(ret, c.myCounter[:]...) - ret = appendData(ret, encrypted) - - mac := hmac.New(sha1.New, slot.sendMACKey) - mac.Write(ret) - ret = append(ret, mac.Sum(nil)[:macPrefixBytes]...) - ret = appendData(ret, c.oldMACs) - c.oldMACs = nil - incCounter(&c.myCounter) - - return ret -} - -func incCounter(counter *[8]byte) { - for i := 7; i >= 0; i-- { - counter[i]++ - if counter[i] > 0 { - break - } - } -} - -// calcDataKeys computes the keys used to encrypt a data message given the key -// IDs. -func (c *Conversation) calcDataKeys(myKeyId, theirKeyId uint32) (slot *keySlot, err error) { - // Check for a cache hit. - for i := range c.keySlots { - slot = &c.keySlots[i] - if slot.used && slot.theirKeyId == theirKeyId && slot.myKeyId == myKeyId { - return - } - } - - // Find an empty slot to write into. - slot = nil - for i := range c.keySlots { - if !c.keySlots[i].used { - slot = &c.keySlots[i] - break - } - } - if slot == nil { - err = errors.New("otr: internal error: no key slots") - return - } - - var myPriv, myPub, theirPub *big.Int - - if myKeyId == c.myKeyId { - myPriv = c.myCurrentDHPriv - myPub = c.myCurrentDHPub - } else if myKeyId == c.myKeyId-1 { - myPriv = c.myLastDHPriv - myPub = c.myLastDHPub - } else { - err = errors.New("otr: peer requested keyid " + strconv.FormatUint(uint64(myKeyId), 10) + " when I'm on " + strconv.FormatUint(uint64(c.myKeyId), 10)) - return - } - - if theirKeyId == c.theirKeyId { - theirPub = c.theirCurrentDHPub - } else if theirKeyId == c.theirKeyId-1 && c.theirLastDHPub != nil { - theirPub = c.theirLastDHPub - } else { - err = errors.New("otr: peer requested keyid " + strconv.FormatUint(uint64(myKeyId), 10) + " when they're on " + strconv.FormatUint(uint64(c.myKeyId), 10)) - return - } - - var sendPrefixByte, recvPrefixByte [1]byte - - if myPub.Cmp(theirPub) > 0 { - // we're the high end - sendPrefixByte[0], recvPrefixByte[0] = 1, 2 - } else { - // we're the low end - sendPrefixByte[0], recvPrefixByte[0] = 2, 1 - } - - s := new(big.Int).Exp(theirPub, myPriv, p) - sBytes := appendMPI(nil, s) - - h := sha1.New() - h.Write(sendPrefixByte[:]) - h.Write(sBytes) - slot.sendAESKey = h.Sum(slot.sendAESKey[:0])[:16] - - h.Reset() - h.Write(slot.sendAESKey) - slot.sendMACKey = h.Sum(slot.sendMACKey[:0]) - - h.Reset() - h.Write(recvPrefixByte[:]) - h.Write(sBytes) - slot.recvAESKey = h.Sum(slot.recvAESKey[:0])[:16] - - h.Reset() - h.Write(slot.recvAESKey) - slot.recvMACKey = h.Sum(slot.recvMACKey[:0]) - - slot.theirKeyId = theirKeyId - slot.myKeyId = myKeyId - slot.used = true - - zero(slot.theirLastCtr[:]) - return -} - -func (c *Conversation) calcAKEKeys(s *big.Int) { - mpi := appendMPI(nil, s) - h := sha256.New() - - var cBytes [32]byte - hashWithPrefix(c.SSID[:], 0, mpi, h) - - hashWithPrefix(cBytes[:], 1, mpi, h) - copy(c.revealKeys.c[:], cBytes[:16]) - copy(c.sigKeys.c[:], cBytes[16:]) - - hashWithPrefix(c.revealKeys.m1[:], 2, mpi, h) - hashWithPrefix(c.revealKeys.m2[:], 3, mpi, h) - hashWithPrefix(c.sigKeys.m1[:], 4, mpi, h) - hashWithPrefix(c.sigKeys.m2[:], 5, mpi, h) -} - -func hashWithPrefix(out []byte, prefix byte, in []byte, h hash.Hash) { - h.Reset() - var p [1]byte - p[0] = prefix - h.Write(p[:]) - h.Write(in) - if len(out) == h.Size() { - h.Sum(out[:0]) - } else { - digest := h.Sum(nil) - copy(out, digest) - } -} - -func (c *Conversation) encode(msg []byte) [][]byte { - b64 := make([]byte, base64.StdEncoding.EncodedLen(len(msg))+len(msgPrefix)+1) - base64.StdEncoding.Encode(b64[len(msgPrefix):], msg) - copy(b64, msgPrefix) - b64[len(b64)-1] = '.' - - if c.FragmentSize < minFragmentSize || len(b64) <= c.FragmentSize { - // We can encode this in a single fragment. - return [][]byte{b64} - } - - // We have to fragment this message. - var ret [][]byte - bytesPerFragment := c.FragmentSize - minFragmentSize - numFragments := (len(b64) + bytesPerFragment) / bytesPerFragment - - for i := 0; i < numFragments; i++ { - frag := []byte("?OTR," + strconv.Itoa(i+1) + "," + strconv.Itoa(numFragments) + ",") - todo := bytesPerFragment - if todo > len(b64) { - todo = len(b64) - } - frag = append(frag, b64[:todo]...) - b64 = b64[todo:] - frag = append(frag, ',') - ret = append(ret, frag) - } - - return ret -} - -type PublicKey struct { - dsa.PublicKey -} - -func (pk *PublicKey) Parse(in []byte) ([]byte, bool) { - var ok bool - var pubKeyType uint16 - - if pubKeyType, in, ok = getU16(in); !ok || pubKeyType != 0 { - return nil, false - } - if pk.P, in, ok = getMPI(in); !ok { - return nil, false - } - if pk.Q, in, ok = getMPI(in); !ok { - return nil, false - } - if pk.G, in, ok = getMPI(in); !ok { - return nil, false - } - if pk.Y, in, ok = getMPI(in); !ok { - return nil, false - } - - return in, true -} - -func (pk *PublicKey) Serialize(in []byte) []byte { - in = appendU16(in, 0) - in = appendMPI(in, pk.P) - in = appendMPI(in, pk.Q) - in = appendMPI(in, pk.G) - in = appendMPI(in, pk.Y) - return in -} - -// Fingerprint returns the 20-byte, binary fingerprint of the PublicKey. -func (pk *PublicKey) Fingerprint() []byte { - b := pk.Serialize(nil) - h := sha1.New() - h.Write(b[2:]) - return h.Sum(nil) -} - -func (pk *PublicKey) Verify(hashed, sig []byte) ([]byte, bool) { - if len(sig) != 2*dsaSubgroupBytes { - return nil, false - } - r := new(big.Int).SetBytes(sig[:dsaSubgroupBytes]) - s := new(big.Int).SetBytes(sig[dsaSubgroupBytes:]) - ok := dsa.Verify(&pk.PublicKey, hashed, r, s) - return sig[dsaSubgroupBytes*2:], ok -} - -type PrivateKey struct { - PublicKey - dsa.PrivateKey -} - -func (priv *PrivateKey) Sign(rand io.Reader, hashed []byte) []byte { - r, s, err := dsa.Sign(rand, &priv.PrivateKey, hashed) - if err != nil { - panic(err.Error()) - } - rBytes := r.Bytes() - sBytes := s.Bytes() - if len(rBytes) > dsaSubgroupBytes || len(sBytes) > dsaSubgroupBytes { - panic("DSA signature too large") - } - - out := make([]byte, 2*dsaSubgroupBytes) - copy(out[dsaSubgroupBytes-len(rBytes):], rBytes) - copy(out[len(out)-len(sBytes):], sBytes) - return out -} - -func (priv *PrivateKey) Serialize(in []byte) []byte { - in = priv.PublicKey.Serialize(in) - in = appendMPI(in, priv.PrivateKey.X) - return in -} - -func (priv *PrivateKey) Parse(in []byte) ([]byte, bool) { - in, ok := priv.PublicKey.Parse(in) - if !ok { - return in, ok - } - priv.PrivateKey.PublicKey = priv.PublicKey.PublicKey - priv.PrivateKey.X, in, ok = getMPI(in) - return in, ok -} - -func (priv *PrivateKey) Generate(rand io.Reader) { - if err := dsa.GenerateParameters(&priv.PrivateKey.PublicKey.Parameters, rand, dsa.L1024N160); err != nil { - panic(err.Error()) - } - if err := dsa.GenerateKey(&priv.PrivateKey, rand); err != nil { - panic(err.Error()) - } - priv.PublicKey.PublicKey = priv.PrivateKey.PublicKey -} - -func notHex(r rune) bool { - if r >= '0' && r <= '9' || - r >= 'a' && r <= 'f' || - r >= 'A' && r <= 'F' { - return false - } - - return true -} - -// Import parses the contents of a libotr private key file. -func (priv *PrivateKey) Import(in []byte) bool { - mpiStart := []byte(" #") - - mpis := make([]*big.Int, 5) - - for i := 0; i < len(mpis); i++ { - start := bytes.Index(in, mpiStart) - if start == -1 { - return false - } - in = in[start+len(mpiStart):] - end := bytes.IndexFunc(in, notHex) - if end == -1 { - return false - } - hexBytes := in[:end] - in = in[end:] - - if len(hexBytes)&1 != 0 { - return false - } - - mpiBytes := make([]byte, len(hexBytes)/2) - if _, err := hex.Decode(mpiBytes, hexBytes); err != nil { - return false - } - - mpis[i] = new(big.Int).SetBytes(mpiBytes) - } - - priv.PrivateKey.P = mpis[0] - priv.PrivateKey.Q = mpis[1] - priv.PrivateKey.G = mpis[2] - priv.PrivateKey.Y = mpis[3] - priv.PrivateKey.X = mpis[4] - priv.PublicKey.PublicKey = priv.PrivateKey.PublicKey - - a := new(big.Int).Exp(priv.PrivateKey.G, priv.PrivateKey.X, priv.PrivateKey.P) - return a.Cmp(priv.PrivateKey.Y) == 0 -} - -func getU8(in []byte) (uint8, []byte, bool) { - if len(in) < 1 { - return 0, in, false - } - return in[0], in[1:], true -} - -func getU16(in []byte) (uint16, []byte, bool) { - if len(in) < 2 { - return 0, in, false - } - r := uint16(in[0])<<8 | uint16(in[1]) - return r, in[2:], true -} - -func getU32(in []byte) (uint32, []byte, bool) { - if len(in) < 4 { - return 0, in, false - } - r := uint32(in[0])<<24 | uint32(in[1])<<16 | uint32(in[2])<<8 | uint32(in[3]) - return r, in[4:], true -} - -func getMPI(in []byte) (*big.Int, []byte, bool) { - l, in, ok := getU32(in) - if !ok || uint32(len(in)) < l { - return nil, in, false - } - r := new(big.Int).SetBytes(in[:l]) - return r, in[l:], true -} - -func getData(in []byte) ([]byte, []byte, bool) { - l, in, ok := getU32(in) - if !ok || uint32(len(in)) < l { - return nil, in, false - } - return in[:l], in[l:], true -} - -func getNBytes(in []byte, n int) ([]byte, []byte, bool) { - if len(in) < n { - return nil, in, false - } - return in[:n], in[n:], true -} - -func appendU16(out []byte, v uint16) []byte { - out = append(out, byte(v>>8), byte(v)) - return out -} - -func appendU32(out []byte, v uint32) []byte { - out = append(out, byte(v>>24), byte(v>>16), byte(v>>8), byte(v)) - return out -} - -func appendData(out, v []byte) []byte { - out = appendU32(out, uint32(len(v))) - out = append(out, v...) - return out -} - -func appendMPI(out []byte, v *big.Int) []byte { - vBytes := v.Bytes() - out = appendU32(out, uint32(len(vBytes))) - out = append(out, vBytes...) - return out -} - -func appendMPIs(out []byte, mpis ...*big.Int) []byte { - for _, mpi := range mpis { - out = appendMPI(out, mpi) - } - return out -} - -func zero(b []byte) { - for i := range b { - b[i] = 0 - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/otr_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/otr_test.go deleted file mode 100644 index 417a7939..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/otr_test.go +++ /dev/null @@ -1,420 +0,0 @@ -// Copyright 2012 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 otr - -import ( - "bufio" - "bytes" - "crypto/rand" - "encoding/hex" - "math/big" - "os" - "os/exec" - "testing" -) - -var isQueryTests = []struct { - msg string - expectedVersion int -}{ - {"foo", 0}, - {"?OtR", 0}, - {"?OtR?", 0}, - {"?OTR?", 0}, - {"?OTRv?", 0}, - {"?OTRv1?", 0}, - {"?OTR?v1?", 0}, - {"?OTR?v?", 0}, - {"?OTR?v2?", 2}, - {"?OTRv2?", 2}, - {"?OTRv23?", 2}, - {"?OTRv23 ?", 0}, -} - -func TestIsQuery(t *testing.T) { - for i, test := range isQueryTests { - version := isQuery([]byte(test.msg)) - if version != test.expectedVersion { - t.Errorf("#%d: got %d, want %d", i, version, test.expectedVersion) - } - } -} - -var alicePrivateKeyHex = "000000000080c81c2cb2eb729b7e6fd48e975a932c638b3a9055478583afa46755683e30102447f6da2d8bec9f386bbb5da6403b0040fee8650b6ab2d7f32c55ab017ae9b6aec8c324ab5844784e9a80e194830d548fb7f09a0410df2c4d5c8bc2b3e9ad484e65412be689cf0834694e0839fb2954021521ffdffb8f5c32c14dbf2020b3ce7500000014da4591d58def96de61aea7b04a8405fe1609308d000000808ddd5cb0b9d66956e3dea5a915d9aba9d8a6e7053b74dadb2fc52f9fe4e5bcc487d2305485ed95fed026ad93f06ebb8c9e8baf693b7887132c7ffdd3b0f72f4002ff4ed56583ca7c54458f8c068ca3e8a4dfa309d1dd5d34e2a4b68e6f4338835e5e0fb4317c9e4c7e4806dafda3ef459cd563775a586dd91b1319f72621bf3f00000080b8147e74d8c45e6318c37731b8b33b984a795b3653c2cd1d65cc99efe097cb7eb2fa49569bab5aab6e8a1c261a27d0f7840a5e80b317e6683042b59b6dceca2879c6ffc877a465be690c15e4a42f9a7588e79b10faac11b1ce3741fcef7aba8ce05327a2c16d279ee1b3d77eb783fb10e3356caa25635331e26dd42b8396c4d00000001420bec691fea37ecea58a5c717142f0b804452f57" - -var aliceFingerprintHex = "0bb01c360424522e94ee9c346ce877a1a4288b2f" - -var bobPrivateKeyHex = "000000000080a5138eb3d3eb9c1d85716faecadb718f87d31aaed1157671d7fee7e488f95e8e0ba60ad449ec732710a7dec5190f7182af2e2f98312d98497221dff160fd68033dd4f3a33b7c078d0d9f66e26847e76ca7447d4bab35486045090572863d9e4454777f24d6706f63e02548dfec2d0a620af37bbc1d24f884708a212c343b480d00000014e9c58f0ea21a5e4dfd9f44b6a9f7f6a9961a8fa9000000803c4d111aebd62d3c50c2889d420a32cdf1e98b70affcc1fcf44d59cca2eb019f6b774ef88153fb9b9615441a5fe25ea2d11b74ce922ca0232bd81b3c0fcac2a95b20cb6e6c0c5c1ace2e26f65dc43c751af0edbb10d669890e8ab6beea91410b8b2187af1a8347627a06ecea7e0f772c28aae9461301e83884860c9b656c722f0000008065af8625a555ea0e008cd04743671a3cda21162e83af045725db2eb2bb52712708dc0cc1a84c08b3649b88a966974bde27d8612c2861792ec9f08786a246fcadd6d8d3a81a32287745f309238f47618c2bd7612cb8b02d940571e0f30b96420bcd462ff542901b46109b1e5ad6423744448d20a57818a8cbb1647d0fea3b664e0000001440f9f2eb554cb00d45a5826b54bfa419b6980e48" - -func TestKeySerialization(t *testing.T) { - var priv PrivateKey - alicePrivateKey, _ := hex.DecodeString(alicePrivateKeyHex) - rest, ok := priv.Parse(alicePrivateKey) - if !ok { - t.Error("failed to parse private key") - } - if len(rest) > 0 { - t.Error("data remaining after parsing private key") - } - - out := priv.Serialize(nil) - if !bytes.Equal(alicePrivateKey, out) { - t.Errorf("serialization (%x) is not equal to original (%x)", out, alicePrivateKey) - } - - aliceFingerprint, _ := hex.DecodeString(aliceFingerprintHex) - fingerprint := priv.PublicKey.Fingerprint() - if !bytes.Equal(aliceFingerprint, fingerprint) { - t.Errorf("fingerprint (%x) is not equal to expected value (%x)", fingerprint, aliceFingerprint) - } -} - -const libOTRPrivateKey = `(privkeys - (account -(name "foo@example.com") -(protocol prpl-jabber) -(private-key - (dsa - (p #00FC07ABCF0DC916AFF6E9AE47BEF60C7AB9B4D6B2469E436630E36F8A489BE812486A09F30B71224508654940A835301ACC525A4FF133FC152CC53DCC59D65C30A54F1993FE13FE63E5823D4C746DB21B90F9B9C00B49EC7404AB1D929BA7FBA12F2E45C6E0A651689750E8528AB8C031D3561FECEE72EBB4A090D450A9B7A857#) - (q #00997BD266EF7B1F60A5C23F3A741F2AEFD07A2081#) - (g #535E360E8A95EBA46A4F7DE50AD6E9B2A6DB785A66B64EB9F20338D2A3E8FB0E94725848F1AA6CC567CB83A1CC517EC806F2E92EAE71457E80B2210A189B91250779434B41FC8A8873F6DB94BEA7D177F5D59E7E114EE10A49CFD9CEF88AE43387023B672927BA74B04EB6BBB5E57597766A2F9CE3857D7ACE3E1E3BC1FC6F26#) - (y #0AC8670AD767D7A8D9D14CC1AC6744CD7D76F993B77FFD9E39DF01E5A6536EF65E775FCEF2A983E2A19BD6415500F6979715D9FD1257E1FE2B6F5E1E74B333079E7C880D39868462A93454B41877BE62E5EF0A041C2EE9C9E76BD1E12AE25D9628DECB097025DD625EF49C3258A1A3C0FF501E3DC673B76D7BABF349009B6ECF#) - (x #14D0345A3562C480A039E3C72764F72D79043216#) - ) - ) - ) -)` - -func TestParseLibOTRPrivateKey(t *testing.T) { - var priv PrivateKey - - if !priv.Import([]byte(libOTRPrivateKey)) { - t.Fatalf("Failed to import sample private key") - } -} - -func TestSignVerify(t *testing.T) { - var priv PrivateKey - alicePrivateKey, _ := hex.DecodeString(alicePrivateKeyHex) - _, ok := priv.Parse(alicePrivateKey) - if !ok { - t.Error("failed to parse private key") - } - - var msg [32]byte - rand.Reader.Read(msg[:]) - - sig := priv.Sign(rand.Reader, msg[:]) - rest, ok := priv.PublicKey.Verify(msg[:], sig) - if !ok { - t.Errorf("signature (%x) of %x failed to verify", sig, msg[:]) - } else if len(rest) > 0 { - t.Error("signature data remains after verification") - } - - sig[10] ^= 80 - _, ok = priv.PublicKey.Verify(msg[:], sig) - if ok { - t.Errorf("corrupted signature (%x) of %x verified", sig, msg[:]) - } -} - -func TestConversation(t *testing.T) { - alicePrivateKey, _ := hex.DecodeString(alicePrivateKeyHex) - bobPrivateKey, _ := hex.DecodeString(bobPrivateKeyHex) - - var alice, bob Conversation - alice.PrivateKey = new(PrivateKey) - bob.PrivateKey = new(PrivateKey) - alice.PrivateKey.Parse(alicePrivateKey) - bob.PrivateKey.Parse(bobPrivateKey) - alice.FragmentSize = 100 - bob.FragmentSize = 100 - - var alicesMessage, bobsMessage [][]byte - var out []byte - var aliceChange, bobChange SecurityChange - var err error - alicesMessage = append(alicesMessage, []byte(QueryMessage)) - - if alice.IsEncrypted() { - t.Error("Alice believes that the conversation is secure before we've started") - } - if bob.IsEncrypted() { - t.Error("Bob believes that the conversation is secure before we've started") - } - - for round := 0; len(alicesMessage) > 0 || len(bobsMessage) > 0; round++ { - bobsMessage = nil - for i, msg := range alicesMessage { - out, _, bobChange, bobsMessage, err = bob.Receive(msg) - if len(out) > 0 { - t.Errorf("Bob generated output during key exchange, round %d, message %d", round, i) - } - if err != nil { - t.Fatalf("Bob returned an error, round %d, message %d (%x): %s", round, i, msg, err) - } - if len(bobsMessage) > 0 && i != len(alicesMessage)-1 { - t.Errorf("Bob produced output while processing a fragment, round %d, message %d", round, i) - } - } - - alicesMessage = nil - for i, msg := range bobsMessage { - out, _, aliceChange, alicesMessage, err = alice.Receive(msg) - if len(out) > 0 { - t.Errorf("Alice generated output during key exchange, round %d, message %d", round, i) - } - if err != nil { - t.Fatalf("Alice returned an error, round %d, message %d (%x): %s", round, i, msg, err) - } - if len(alicesMessage) > 0 && i != len(bobsMessage)-1 { - t.Errorf("Alice produced output while processing a fragment, round %d, message %d", round, i) - } - } - } - - if aliceChange != NewKeys { - t.Errorf("Alice terminated without signaling new keys") - } - if bobChange != NewKeys { - t.Errorf("Bob terminated without signaling new keys") - } - - if !bytes.Equal(alice.SSID[:], bob.SSID[:]) { - t.Errorf("Session identifiers don't match. Alice has %x, Bob has %x", alice.SSID[:], bob.SSID[:]) - } - - if !alice.IsEncrypted() { - t.Error("Alice doesn't believe that the conversation is secure") - } - if !bob.IsEncrypted() { - t.Error("Bob doesn't believe that the conversation is secure") - } - - var testMessages = [][]byte{ - []byte("hello"), []byte("bye"), - } - - for j, testMessage := range testMessages { - alicesMessage, err = alice.Send(testMessage) - - if len(alice.oldMACs) != 0 { - t.Errorf("Alice has not revealed all MAC keys") - } - - for i, msg := range alicesMessage { - out, encrypted, _, _, err := bob.Receive(msg) - - if err != nil { - t.Errorf("Error generated while processing test message: %s", err.Error()) - } - if len(out) > 0 { - if i != len(alicesMessage)-1 { - t.Fatal("Bob produced a message while processing a fragment of Alice's") - } - if !encrypted { - t.Errorf("Message was not marked as encrypted") - } - if !bytes.Equal(out, testMessage) { - t.Errorf("Message corrupted: got %x, want %x", out, testMessage) - } - } - } - - if j == 0 { - if len(bob.oldMACs) != 0 { - t.Errorf("Bob should not have MAC keys to reveal") - } - } else if len(bob.oldMACs) != 40 { - t.Errorf("Bob does not have MAC keys to reveal") - } - - bobsMessage, err = bob.Send(testMessage) - - if len(bob.oldMACs) != 0 { - t.Errorf("Bob has not revealed all MAC keys") - } - - for i, msg := range bobsMessage { - out, encrypted, _, _, err := alice.Receive(msg) - - if err != nil { - t.Errorf("Error generated while processing test message: %s", err.Error()) - } - if len(out) > 0 { - if i != len(bobsMessage)-1 { - t.Fatal("Alice produced a message while processing a fragment of Bob's") - } - if !encrypted { - t.Errorf("Message was not marked as encrypted") - } - if !bytes.Equal(out, testMessage) { - t.Errorf("Message corrupted: got %x, want %x", out, testMessage) - } - } - } - - if j == 0 { - if len(alice.oldMACs) != 20 { - t.Errorf("Alice does not have MAC keys to reveal") - } - } else if len(alice.oldMACs) != 40 { - t.Errorf("Alice does not have MAC keys to reveal") - } - } -} - -func TestGoodSMP(t *testing.T) { - var alice, bob Conversation - - alice.smp.secret = new(big.Int).SetInt64(42) - bob.smp.secret = alice.smp.secret - - var alicesMessages, bobsMessages []tlv - var aliceComplete, bobComplete bool - var err error - var out tlv - - alicesMessages = alice.startSMP("") - for round := 0; len(alicesMessages) > 0 || len(bobsMessages) > 0; round++ { - bobsMessages = bobsMessages[:0] - for i, msg := range alicesMessages { - out, bobComplete, err = bob.processSMP(msg) - if err != nil { - t.Errorf("Error from Bob in round %d: %s", round, err) - } - if bobComplete && i != len(alicesMessages)-1 { - t.Errorf("Bob returned a completed signal before processing all of Alice's messages in round %d", round) - } - if out.typ != 0 { - bobsMessages = append(bobsMessages, out) - } - } - - alicesMessages = alicesMessages[:0] - for i, msg := range bobsMessages { - out, aliceComplete, err = alice.processSMP(msg) - if err != nil { - t.Errorf("Error from Alice in round %d: %s", round, err) - } - if aliceComplete && i != len(bobsMessages)-1 { - t.Errorf("Alice returned a completed signal before processing all of Bob's messages in round %d", round) - } - if out.typ != 0 { - alicesMessages = append(alicesMessages, out) - } - } - } - - if !aliceComplete || !bobComplete { - t.Errorf("SMP completed without both sides reporting success: alice: %v, bob: %v\n", aliceComplete, bobComplete) - } -} - -func TestBadSMP(t *testing.T) { - var alice, bob Conversation - - alice.smp.secret = new(big.Int).SetInt64(42) - bob.smp.secret = new(big.Int).SetInt64(43) - - var alicesMessages, bobsMessages []tlv - - alicesMessages = alice.startSMP("") - for round := 0; len(alicesMessages) > 0 || len(bobsMessages) > 0; round++ { - bobsMessages = bobsMessages[:0] - for _, msg := range alicesMessages { - out, complete, _ := bob.processSMP(msg) - if complete { - t.Errorf("Bob signaled completion in round %d", round) - } - if out.typ != 0 { - bobsMessages = append(bobsMessages, out) - } - } - - alicesMessages = alicesMessages[:0] - for _, msg := range bobsMessages { - out, complete, _ := alice.processSMP(msg) - if complete { - t.Errorf("Alice signaled completion in round %d", round) - } - if out.typ != 0 { - alicesMessages = append(alicesMessages, out) - } - } - } -} - -func TestAgainstLibOTR(t *testing.T) { - // This test requires otr.c.test to be built as /tmp/a.out. - // If enabled, this tests runs forever performing OTR handshakes in a - // loop. - return - - alicePrivateKey, _ := hex.DecodeString(alicePrivateKeyHex) - var alice Conversation - alice.PrivateKey = new(PrivateKey) - alice.PrivateKey.Parse(alicePrivateKey) - - cmd := exec.Command("/tmp/a.out") - cmd.Stderr = os.Stderr - - out, err := cmd.StdinPipe() - if err != nil { - t.Fatal(err) - } - defer out.Close() - stdout, err := cmd.StdoutPipe() - if err != nil { - t.Fatal(err) - } - in := bufio.NewReader(stdout) - - if err := cmd.Start(); err != nil { - t.Fatal(err) - } - - out.Write([]byte(QueryMessage)) - out.Write([]byte("\n")) - var expectedText = []byte("test message") - - for { - line, isPrefix, err := in.ReadLine() - if isPrefix { - t.Fatal("line from subprocess too long") - } - if err != nil { - t.Fatal(err) - } - text, encrypted, change, alicesMessage, err := alice.Receive(line) - if err != nil { - t.Fatal(err) - } - for _, msg := range alicesMessage { - out.Write(msg) - out.Write([]byte("\n")) - } - if change == NewKeys { - alicesMessage, err := alice.Send([]byte("Go -> libotr test message")) - if err != nil { - t.Errorf("error sending message: %s", err.Error()) - } else { - for _, msg := range alicesMessage { - out.Write(msg) - out.Write([]byte("\n")) - } - } - } - if len(text) > 0 { - if !bytes.Equal(text, expectedText) { - t.Errorf("expected %x, but got %x", expectedText, text) - } - if !encrypted { - t.Error("message wasn't encrypted") - } - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/smp.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/smp.go deleted file mode 100644 index dc6de4ee..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/otr/smp.go +++ /dev/null @@ -1,572 +0,0 @@ -// Copyright 2012 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. - -// This file implements the Socialist Millionaires Protocol as described in -// http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html. The protocol -// specification is required in order to understand this code and, where -// possible, the variable names in the code match up with the spec. - -package otr - -import ( - "bytes" - "crypto/sha256" - "errors" - "hash" - "math/big" -) - -type smpFailure string - -func (s smpFailure) Error() string { - return string(s) -} - -var smpFailureError = smpFailure("otr: SMP protocol failed") -var smpSecretMissingError = smpFailure("otr: mutual secret needed") - -const smpVersion = 1 - -const ( - smpState1 = iota - smpState2 - smpState3 - smpState4 -) - -type smpState struct { - state int - a2, a3, b2, b3, pb, qb *big.Int - g2a, g3a *big.Int - g2, g3 *big.Int - g3b, papb, qaqb, ra *big.Int - saved *tlv - secret *big.Int - question string -} - -func (c *Conversation) startSMP(question string) (tlvs []tlv) { - if c.smp.state != smpState1 { - tlvs = append(tlvs, c.generateSMPAbort()) - } - tlvs = append(tlvs, c.generateSMP1(question)) - c.smp.question = "" - c.smp.state = smpState2 - return -} - -func (c *Conversation) resetSMP() { - c.smp.state = smpState1 - c.smp.secret = nil - c.smp.question = "" -} - -func (c *Conversation) processSMP(in tlv) (out tlv, complete bool, err error) { - data := in.data - - switch in.typ { - case tlvTypeSMPAbort: - if c.smp.state != smpState1 { - err = smpFailureError - } - c.resetSMP() - return - case tlvTypeSMP1WithQuestion: - // We preprocess this into a SMP1 message. - nulPos := bytes.IndexByte(data, 0) - if nulPos == -1 { - err = errors.New("otr: SMP message with question didn't contain a NUL byte") - return - } - c.smp.question = string(data[:nulPos]) - data = data[nulPos+1:] - } - - numMPIs, data, ok := getU32(data) - if !ok || numMPIs > 20 { - err = errors.New("otr: corrupt SMP message") - return - } - - mpis := make([]*big.Int, numMPIs) - for i := range mpis { - var ok bool - mpis[i], data, ok = getMPI(data) - if !ok { - err = errors.New("otr: corrupt SMP message") - return - } - } - - switch in.typ { - case tlvTypeSMP1, tlvTypeSMP1WithQuestion: - if c.smp.state != smpState1 { - c.resetSMP() - out = c.generateSMPAbort() - return - } - if c.smp.secret == nil { - err = smpSecretMissingError - return - } - if err = c.processSMP1(mpis); err != nil { - return - } - c.smp.state = smpState3 - out = c.generateSMP2() - case tlvTypeSMP2: - if c.smp.state != smpState2 { - c.resetSMP() - out = c.generateSMPAbort() - return - } - if out, err = c.processSMP2(mpis); err != nil { - out = c.generateSMPAbort() - return - } - c.smp.state = smpState4 - case tlvTypeSMP3: - if c.smp.state != smpState3 { - c.resetSMP() - out = c.generateSMPAbort() - return - } - if out, err = c.processSMP3(mpis); err != nil { - return - } - c.smp.state = smpState1 - c.smp.secret = nil - complete = true - case tlvTypeSMP4: - if c.smp.state != smpState4 { - c.resetSMP() - out = c.generateSMPAbort() - return - } - if err = c.processSMP4(mpis); err != nil { - out = c.generateSMPAbort() - return - } - c.smp.state = smpState1 - c.smp.secret = nil - complete = true - default: - panic("unknown SMP message") - } - - return -} - -func (c *Conversation) calcSMPSecret(mutualSecret []byte, weStarted bool) { - h := sha256.New() - h.Write([]byte{smpVersion}) - if weStarted { - h.Write(c.PrivateKey.PublicKey.Fingerprint()) - h.Write(c.TheirPublicKey.Fingerprint()) - } else { - h.Write(c.TheirPublicKey.Fingerprint()) - h.Write(c.PrivateKey.PublicKey.Fingerprint()) - } - h.Write(c.SSID[:]) - h.Write(mutualSecret) - c.smp.secret = new(big.Int).SetBytes(h.Sum(nil)) -} - -func (c *Conversation) generateSMP1(question string) tlv { - var randBuf [16]byte - c.smp.a2 = c.randMPI(randBuf[:]) - c.smp.a3 = c.randMPI(randBuf[:]) - g2a := new(big.Int).Exp(g, c.smp.a2, p) - g3a := new(big.Int).Exp(g, c.smp.a3, p) - h := sha256.New() - - r2 := c.randMPI(randBuf[:]) - r := new(big.Int).Exp(g, r2, p) - c2 := new(big.Int).SetBytes(hashMPIs(h, 1, r)) - d2 := new(big.Int).Mul(c.smp.a2, c2) - d2.Sub(r2, d2) - d2.Mod(d2, q) - if d2.Sign() < 0 { - d2.Add(d2, q) - } - - r3 := c.randMPI(randBuf[:]) - r.Exp(g, r3, p) - c3 := new(big.Int).SetBytes(hashMPIs(h, 2, r)) - d3 := new(big.Int).Mul(c.smp.a3, c3) - d3.Sub(r3, d3) - d3.Mod(d3, q) - if d3.Sign() < 0 { - d3.Add(d3, q) - } - - var ret tlv - if len(question) > 0 { - ret.typ = tlvTypeSMP1WithQuestion - ret.data = append(ret.data, question...) - ret.data = append(ret.data, 0) - } else { - ret.typ = tlvTypeSMP1 - } - ret.data = appendU32(ret.data, 6) - ret.data = appendMPIs(ret.data, g2a, c2, d2, g3a, c3, d3) - return ret -} - -func (c *Conversation) processSMP1(mpis []*big.Int) error { - if len(mpis) != 6 { - return errors.New("otr: incorrect number of arguments in SMP1 message") - } - g2a := mpis[0] - c2 := mpis[1] - d2 := mpis[2] - g3a := mpis[3] - c3 := mpis[4] - d3 := mpis[5] - h := sha256.New() - - r := new(big.Int).Exp(g, d2, p) - s := new(big.Int).Exp(g2a, c2, p) - r.Mul(r, s) - r.Mod(r, p) - t := new(big.Int).SetBytes(hashMPIs(h, 1, r)) - if c2.Cmp(t) != 0 { - return errors.New("otr: ZKP c2 incorrect in SMP1 message") - } - r.Exp(g, d3, p) - s.Exp(g3a, c3, p) - r.Mul(r, s) - r.Mod(r, p) - t.SetBytes(hashMPIs(h, 2, r)) - if c3.Cmp(t) != 0 { - return errors.New("otr: ZKP c3 incorrect in SMP1 message") - } - - c.smp.g2a = g2a - c.smp.g3a = g3a - return nil -} - -func (c *Conversation) generateSMP2() tlv { - var randBuf [16]byte - b2 := c.randMPI(randBuf[:]) - c.smp.b3 = c.randMPI(randBuf[:]) - r2 := c.randMPI(randBuf[:]) - r3 := c.randMPI(randBuf[:]) - r4 := c.randMPI(randBuf[:]) - r5 := c.randMPI(randBuf[:]) - r6 := c.randMPI(randBuf[:]) - - g2b := new(big.Int).Exp(g, b2, p) - g3b := new(big.Int).Exp(g, c.smp.b3, p) - - r := new(big.Int).Exp(g, r2, p) - h := sha256.New() - c2 := new(big.Int).SetBytes(hashMPIs(h, 3, r)) - d2 := new(big.Int).Mul(b2, c2) - d2.Sub(r2, d2) - d2.Mod(d2, q) - if d2.Sign() < 0 { - d2.Add(d2, q) - } - - r.Exp(g, r3, p) - c3 := new(big.Int).SetBytes(hashMPIs(h, 4, r)) - d3 := new(big.Int).Mul(c.smp.b3, c3) - d3.Sub(r3, d3) - d3.Mod(d3, q) - if d3.Sign() < 0 { - d3.Add(d3, q) - } - - c.smp.g2 = new(big.Int).Exp(c.smp.g2a, b2, p) - c.smp.g3 = new(big.Int).Exp(c.smp.g3a, c.smp.b3, p) - c.smp.pb = new(big.Int).Exp(c.smp.g3, r4, p) - c.smp.qb = new(big.Int).Exp(g, r4, p) - r.Exp(c.smp.g2, c.smp.secret, p) - c.smp.qb.Mul(c.smp.qb, r) - c.smp.qb.Mod(c.smp.qb, p) - - s := new(big.Int) - s.Exp(c.smp.g2, r6, p) - r.Exp(g, r5, p) - s.Mul(r, s) - s.Mod(s, p) - r.Exp(c.smp.g3, r5, p) - cp := new(big.Int).SetBytes(hashMPIs(h, 5, r, s)) - - // D5 = r5 - r4 cP mod q and D6 = r6 - y cP mod q - - s.Mul(r4, cp) - r.Sub(r5, s) - d5 := new(big.Int).Mod(r, q) - if d5.Sign() < 0 { - d5.Add(d5, q) - } - - s.Mul(c.smp.secret, cp) - r.Sub(r6, s) - d6 := new(big.Int).Mod(r, q) - if d6.Sign() < 0 { - d6.Add(d6, q) - } - - var ret tlv - ret.typ = tlvTypeSMP2 - ret.data = appendU32(ret.data, 11) - ret.data = appendMPIs(ret.data, g2b, c2, d2, g3b, c3, d3, c.smp.pb, c.smp.qb, cp, d5, d6) - return ret -} - -func (c *Conversation) processSMP2(mpis []*big.Int) (out tlv, err error) { - if len(mpis) != 11 { - err = errors.New("otr: incorrect number of arguments in SMP2 message") - return - } - g2b := mpis[0] - c2 := mpis[1] - d2 := mpis[2] - g3b := mpis[3] - c3 := mpis[4] - d3 := mpis[5] - pb := mpis[6] - qb := mpis[7] - cp := mpis[8] - d5 := mpis[9] - d6 := mpis[10] - h := sha256.New() - - r := new(big.Int).Exp(g, d2, p) - s := new(big.Int).Exp(g2b, c2, p) - r.Mul(r, s) - r.Mod(r, p) - s.SetBytes(hashMPIs(h, 3, r)) - if c2.Cmp(s) != 0 { - err = errors.New("otr: ZKP c2 failed in SMP2 message") - return - } - - r.Exp(g, d3, p) - s.Exp(g3b, c3, p) - r.Mul(r, s) - r.Mod(r, p) - s.SetBytes(hashMPIs(h, 4, r)) - if c3.Cmp(s) != 0 { - err = errors.New("otr: ZKP c3 failed in SMP2 message") - return - } - - c.smp.g2 = new(big.Int).Exp(g2b, c.smp.a2, p) - c.smp.g3 = new(big.Int).Exp(g3b, c.smp.a3, p) - - r.Exp(g, d5, p) - s.Exp(c.smp.g2, d6, p) - r.Mul(r, s) - s.Exp(qb, cp, p) - r.Mul(r, s) - r.Mod(r, p) - - s.Exp(c.smp.g3, d5, p) - t := new(big.Int).Exp(pb, cp, p) - s.Mul(s, t) - s.Mod(s, p) - t.SetBytes(hashMPIs(h, 5, s, r)) - if cp.Cmp(t) != 0 { - err = errors.New("otr: ZKP cP failed in SMP2 message") - return - } - - var randBuf [16]byte - r4 := c.randMPI(randBuf[:]) - r5 := c.randMPI(randBuf[:]) - r6 := c.randMPI(randBuf[:]) - r7 := c.randMPI(randBuf[:]) - - pa := new(big.Int).Exp(c.smp.g3, r4, p) - r.Exp(c.smp.g2, c.smp.secret, p) - qa := new(big.Int).Exp(g, r4, p) - qa.Mul(qa, r) - qa.Mod(qa, p) - - r.Exp(g, r5, p) - s.Exp(c.smp.g2, r6, p) - r.Mul(r, s) - r.Mod(r, p) - - s.Exp(c.smp.g3, r5, p) - cp.SetBytes(hashMPIs(h, 6, s, r)) - - r.Mul(r4, cp) - d5 = new(big.Int).Sub(r5, r) - d5.Mod(d5, q) - if d5.Sign() < 0 { - d5.Add(d5, q) - } - - r.Mul(c.smp.secret, cp) - d6 = new(big.Int).Sub(r6, r) - d6.Mod(d6, q) - if d6.Sign() < 0 { - d6.Add(d6, q) - } - - r.ModInverse(qb, p) - qaqb := new(big.Int).Mul(qa, r) - qaqb.Mod(qaqb, p) - - ra := new(big.Int).Exp(qaqb, c.smp.a3, p) - r.Exp(qaqb, r7, p) - s.Exp(g, r7, p) - cr := new(big.Int).SetBytes(hashMPIs(h, 7, s, r)) - - r.Mul(c.smp.a3, cr) - d7 := new(big.Int).Sub(r7, r) - d7.Mod(d7, q) - if d7.Sign() < 0 { - d7.Add(d7, q) - } - - c.smp.g3b = g3b - c.smp.qaqb = qaqb - - r.ModInverse(pb, p) - c.smp.papb = new(big.Int).Mul(pa, r) - c.smp.papb.Mod(c.smp.papb, p) - c.smp.ra = ra - - out.typ = tlvTypeSMP3 - out.data = appendU32(out.data, 8) - out.data = appendMPIs(out.data, pa, qa, cp, d5, d6, ra, cr, d7) - return -} - -func (c *Conversation) processSMP3(mpis []*big.Int) (out tlv, err error) { - if len(mpis) != 8 { - err = errors.New("otr: incorrect number of arguments in SMP3 message") - return - } - pa := mpis[0] - qa := mpis[1] - cp := mpis[2] - d5 := mpis[3] - d6 := mpis[4] - ra := mpis[5] - cr := mpis[6] - d7 := mpis[7] - h := sha256.New() - - r := new(big.Int).Exp(g, d5, p) - s := new(big.Int).Exp(c.smp.g2, d6, p) - r.Mul(r, s) - s.Exp(qa, cp, p) - r.Mul(r, s) - r.Mod(r, p) - - s.Exp(c.smp.g3, d5, p) - t := new(big.Int).Exp(pa, cp, p) - s.Mul(s, t) - s.Mod(s, p) - t.SetBytes(hashMPIs(h, 6, s, r)) - if t.Cmp(cp) != 0 { - err = errors.New("otr: ZKP cP failed in SMP3 message") - return - } - - r.ModInverse(c.smp.qb, p) - qaqb := new(big.Int).Mul(qa, r) - qaqb.Mod(qaqb, p) - - r.Exp(qaqb, d7, p) - s.Exp(ra, cr, p) - r.Mul(r, s) - r.Mod(r, p) - - s.Exp(g, d7, p) - t.Exp(c.smp.g3a, cr, p) - s.Mul(s, t) - s.Mod(s, p) - t.SetBytes(hashMPIs(h, 7, s, r)) - if t.Cmp(cr) != 0 { - err = errors.New("otr: ZKP cR failed in SMP3 message") - return - } - - var randBuf [16]byte - r7 := c.randMPI(randBuf[:]) - rb := new(big.Int).Exp(qaqb, c.smp.b3, p) - - r.Exp(qaqb, r7, p) - s.Exp(g, r7, p) - cr = new(big.Int).SetBytes(hashMPIs(h, 8, s, r)) - - r.Mul(c.smp.b3, cr) - d7 = new(big.Int).Sub(r7, r) - d7.Mod(d7, q) - if d7.Sign() < 0 { - d7.Add(d7, q) - } - - out.typ = tlvTypeSMP4 - out.data = appendU32(out.data, 3) - out.data = appendMPIs(out.data, rb, cr, d7) - - r.ModInverse(c.smp.pb, p) - r.Mul(pa, r) - r.Mod(r, p) - s.Exp(ra, c.smp.b3, p) - if r.Cmp(s) != 0 { - err = smpFailureError - } - - return -} - -func (c *Conversation) processSMP4(mpis []*big.Int) error { - if len(mpis) != 3 { - return errors.New("otr: incorrect number of arguments in SMP4 message") - } - rb := mpis[0] - cr := mpis[1] - d7 := mpis[2] - h := sha256.New() - - r := new(big.Int).Exp(c.smp.qaqb, d7, p) - s := new(big.Int).Exp(rb, cr, p) - r.Mul(r, s) - r.Mod(r, p) - - s.Exp(g, d7, p) - t := new(big.Int).Exp(c.smp.g3b, cr, p) - s.Mul(s, t) - s.Mod(s, p) - t.SetBytes(hashMPIs(h, 8, s, r)) - if t.Cmp(cr) != 0 { - return errors.New("otr: ZKP cR failed in SMP4 message") - } - - r.Exp(rb, c.smp.a3, p) - if r.Cmp(c.smp.papb) != 0 { - return smpFailureError - } - - return nil -} - -func (c *Conversation) generateSMPAbort() tlv { - return tlv{typ: tlvTypeSMPAbort} -} - -func hashMPIs(h hash.Hash, magic byte, mpis ...*big.Int) []byte { - if h != nil { - h.Reset() - } else { - h = sha256.New() - } - - h.Write([]byte{magic}) - for _, mpi := range mpis { - h.Write(appendMPI(nil, mpi)) - } - return h.Sum(nil) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/package.json b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/package.json deleted file mode 100644 index 12c63244..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "go-crypto", - "author": "whyrusleeping", - "version": "0.0.0", - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "golang.org/x/crypto" - } -} \ No newline at end of file diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pbkdf2/pbkdf2.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pbkdf2/pbkdf2.go deleted file mode 100644 index c02b4d5a..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pbkdf2/pbkdf2.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2012 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 pbkdf2 implements the key derivation function PBKDF2 as defined in RFC -2898 / PKCS #5 v2.0. - -A key derivation function is useful when encrypting data based on a password -or any other not-fully-random data. It uses a pseudorandom function to derive -a secure encryption key based on the password. - -While v2.0 of the standard defines only one pseudorandom function to use, -HMAC-SHA1, the drafted v2.1 specification allows use of all five FIPS Approved -Hash Functions SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 for HMAC. To -choose, you can pass the `New` functions from the different SHA packages to -pbkdf2.Key. -*/ -package pbkdf2 - -import ( - "crypto/hmac" - "hash" -) - -// Key derives a key from the password, salt and iteration count, returning a -// []byte of length keylen that can be used as cryptographic key. The key is -// derived based on the method described as PBKDF2 with the HMAC variant using -// the supplied hash function. -// -// For example, to use a HMAC-SHA-1 based PBKDF2 key derivation function, you -// can get a derived key for e.g. AES-256 (which needs a 32-byte key) by -// doing: -// -// dk := pbkdf2.Key([]byte("some password"), salt, 4096, 32, sha1.New) -// -// Remember to get a good random salt. At least 8 bytes is recommended by the -// RFC. -// -// Using a higher iteration count will increase the cost of an exhaustive -// search but will also make derivation proportionally slower. -func Key(password, salt []byte, iter, keyLen int, h func() hash.Hash) []byte { - prf := hmac.New(h, password) - hashLen := prf.Size() - numBlocks := (keyLen + hashLen - 1) / hashLen - - var buf [4]byte - dk := make([]byte, 0, numBlocks*hashLen) - U := make([]byte, hashLen) - for block := 1; block <= numBlocks; block++ { - // N.B.: || means concatenation, ^ means XOR - // for each block T_i = U_1 ^ U_2 ^ ... ^ U_iter - // U_1 = PRF(password, salt || uint(i)) - prf.Reset() - prf.Write(salt) - buf[0] = byte(block >> 24) - buf[1] = byte(block >> 16) - buf[2] = byte(block >> 8) - buf[3] = byte(block) - prf.Write(buf[:4]) - dk = prf.Sum(dk) - T := dk[len(dk)-hashLen:] - copy(U, T) - - // U_n = PRF(password, U_(n-1)) - for n := 2; n <= iter; n++ { - prf.Reset() - prf.Write(U) - U = U[:0] - U = prf.Sum(U) - for x := range U { - T[x] ^= U[x] - } - } - } - return dk[:keyLen] -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pbkdf2/pbkdf2_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pbkdf2/pbkdf2_test.go deleted file mode 100644 index 13792406..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pbkdf2/pbkdf2_test.go +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright 2012 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 pbkdf2 - -import ( - "bytes" - "crypto/sha1" - "crypto/sha256" - "hash" - "testing" -) - -type testVector struct { - password string - salt string - iter int - output []byte -} - -// Test vectors from RFC 6070, http://tools.ietf.org/html/rfc6070 -var sha1TestVectors = []testVector{ - { - "password", - "salt", - 1, - []byte{ - 0x0c, 0x60, 0xc8, 0x0f, 0x96, 0x1f, 0x0e, 0x71, - 0xf3, 0xa9, 0xb5, 0x24, 0xaf, 0x60, 0x12, 0x06, - 0x2f, 0xe0, 0x37, 0xa6, - }, - }, - { - "password", - "salt", - 2, - []byte{ - 0xea, 0x6c, 0x01, 0x4d, 0xc7, 0x2d, 0x6f, 0x8c, - 0xcd, 0x1e, 0xd9, 0x2a, 0xce, 0x1d, 0x41, 0xf0, - 0xd8, 0xde, 0x89, 0x57, - }, - }, - { - "password", - "salt", - 4096, - []byte{ - 0x4b, 0x00, 0x79, 0x01, 0xb7, 0x65, 0x48, 0x9a, - 0xbe, 0xad, 0x49, 0xd9, 0x26, 0xf7, 0x21, 0xd0, - 0x65, 0xa4, 0x29, 0xc1, - }, - }, - // // This one takes too long - // { - // "password", - // "salt", - // 16777216, - // []byte{ - // 0xee, 0xfe, 0x3d, 0x61, 0xcd, 0x4d, 0xa4, 0xe4, - // 0xe9, 0x94, 0x5b, 0x3d, 0x6b, 0xa2, 0x15, 0x8c, - // 0x26, 0x34, 0xe9, 0x84, - // }, - // }, - { - "passwordPASSWORDpassword", - "saltSALTsaltSALTsaltSALTsaltSALTsalt", - 4096, - []byte{ - 0x3d, 0x2e, 0xec, 0x4f, 0xe4, 0x1c, 0x84, 0x9b, - 0x80, 0xc8, 0xd8, 0x36, 0x62, 0xc0, 0xe4, 0x4a, - 0x8b, 0x29, 0x1a, 0x96, 0x4c, 0xf2, 0xf0, 0x70, - 0x38, - }, - }, - { - "pass\000word", - "sa\000lt", - 4096, - []byte{ - 0x56, 0xfa, 0x6a, 0xa7, 0x55, 0x48, 0x09, 0x9d, - 0xcc, 0x37, 0xd7, 0xf0, 0x34, 0x25, 0xe0, 0xc3, - }, - }, -} - -// Test vectors from -// http://stackoverflow.com/questions/5130513/pbkdf2-hmac-sha2-test-vectors -var sha256TestVectors = []testVector{ - { - "password", - "salt", - 1, - []byte{ - 0x12, 0x0f, 0xb6, 0xcf, 0xfc, 0xf8, 0xb3, 0x2c, - 0x43, 0xe7, 0x22, 0x52, 0x56, 0xc4, 0xf8, 0x37, - 0xa8, 0x65, 0x48, 0xc9, - }, - }, - { - "password", - "salt", - 2, - []byte{ - 0xae, 0x4d, 0x0c, 0x95, 0xaf, 0x6b, 0x46, 0xd3, - 0x2d, 0x0a, 0xdf, 0xf9, 0x28, 0xf0, 0x6d, 0xd0, - 0x2a, 0x30, 0x3f, 0x8e, - }, - }, - { - "password", - "salt", - 4096, - []byte{ - 0xc5, 0xe4, 0x78, 0xd5, 0x92, 0x88, 0xc8, 0x41, - 0xaa, 0x53, 0x0d, 0xb6, 0x84, 0x5c, 0x4c, 0x8d, - 0x96, 0x28, 0x93, 0xa0, - }, - }, - { - "passwordPASSWORDpassword", - "saltSALTsaltSALTsaltSALTsaltSALTsalt", - 4096, - []byte{ - 0x34, 0x8c, 0x89, 0xdb, 0xcb, 0xd3, 0x2b, 0x2f, - 0x32, 0xd8, 0x14, 0xb8, 0x11, 0x6e, 0x84, 0xcf, - 0x2b, 0x17, 0x34, 0x7e, 0xbc, 0x18, 0x00, 0x18, - 0x1c, - }, - }, - { - "pass\000word", - "sa\000lt", - 4096, - []byte{ - 0x89, 0xb6, 0x9d, 0x05, 0x16, 0xf8, 0x29, 0x89, - 0x3c, 0x69, 0x62, 0x26, 0x65, 0x0a, 0x86, 0x87, - }, - }, -} - -func testHash(t *testing.T, h func() hash.Hash, hashName string, vectors []testVector) { - for i, v := range vectors { - o := Key([]byte(v.password), []byte(v.salt), v.iter, len(v.output), h) - if !bytes.Equal(o, v.output) { - t.Errorf("%s %d: expected %x, got %x", hashName, i, v.output, o) - } - } -} - -func TestWithHMACSHA1(t *testing.T) { - testHash(t, sha1.New, "SHA1", sha1TestVectors) -} - -func TestWithHMACSHA256(t *testing.T) { - testHash(t, sha256.New, "SHA256", sha256TestVectors) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/bmp-string.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/bmp-string.go deleted file mode 100644 index 284d2a68..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/bmp-string.go +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkcs12 - -import ( - "errors" - "unicode/utf16" -) - -// bmpString returns s encoded in UCS-2 with a zero terminator. -func bmpString(s string) ([]byte, error) { - // References: - // https://tools.ietf.org/html/rfc7292#appendix-B.1 - // http://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane - // - non-BMP characters are encoded in UTF 16 by using a surrogate pair of 16-bit codes - // EncodeRune returns 0xfffd if the rune does not need special encoding - // - the above RFC provides the info that BMPStrings are NULL terminated. - - ret := make([]byte, 0, 2*len(s)+2) - - for _, r := range s { - if t, _ := utf16.EncodeRune(r); t != 0xfffd { - return nil, errors.New("pkcs12: string contains characters that cannot be encoded in UCS-2") - } - ret = append(ret, byte(r/256), byte(r%256)) - } - - return append(ret, 0, 0), nil -} - -func decodeBMPString(bmpString []byte) (string, error) { - if len(bmpString)%2 != 0 { - return "", errors.New("pkcs12: odd-length BMP string") - } - - // strip terminator if present - if l := len(bmpString); l >= 2 && bmpString[l-1] == 0 && bmpString[l-2] == 0 { - bmpString = bmpString[:l-2] - } - - s := make([]uint16, 0, len(bmpString)/2) - for len(bmpString) > 0 { - s = append(s, uint16(bmpString[0])<<8+uint16(bmpString[1])) - bmpString = bmpString[2:] - } - - return string(utf16.Decode(s)), nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/bmp-string_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/bmp-string_test.go deleted file mode 100644 index 7fca55f4..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/bmp-string_test.go +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkcs12 - -import ( - "bytes" - "encoding/hex" - "testing" -) - -var bmpStringTests = []struct { - in string - expectedHex string - shouldFail bool -}{ - {"", "0000", false}, - // Example from https://tools.ietf.org/html/rfc7292#appendix-B. - {"Beavis", "0042006500610076006900730000", false}, - // Some characters from the "Letterlike Symbols Unicode block". - {"\u2115 - Double-struck N", "21150020002d00200044006f00750062006c0065002d00730074007200750063006b0020004e0000", false}, - // any character outside the BMP should trigger an error. - {"\U0001f000 East wind (Mahjong)", "", true}, -} - -func TestBMPString(t *testing.T) { - for i, test := range bmpStringTests { - expected, err := hex.DecodeString(test.expectedHex) - if err != nil { - t.Fatalf("#%d: failed to decode expectation", i) - } - - out, err := bmpString(test.in) - if err == nil && test.shouldFail { - t.Errorf("#%d: expected to fail, but produced %x", i, out) - continue - } - - if err != nil && !test.shouldFail { - t.Errorf("#%d: failed unexpectedly: %s", i, err) - continue - } - - if !test.shouldFail { - if !bytes.Equal(out, expected) { - t.Errorf("#%d: expected %s, got %x", i, test.expectedHex, out) - continue - } - - roundTrip, err := decodeBMPString(out) - if err != nil { - t.Errorf("#%d: decoding output gave an error: %s", i, err) - continue - } - - if roundTrip != test.in { - t.Errorf("#%d: decoding output resulted in %q, but it should have been %q", i, roundTrip, test.in) - continue - } - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/crypto.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/crypto.go deleted file mode 100644 index 46b1a117..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/crypto.go +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkcs12 - -import ( - "bytes" - "crypto/cipher" - "crypto/des" - "crypto/x509/pkix" - "encoding/asn1" - "errors" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/internal/rc2" -) - -var ( - oidPBEWithSHAAnd3KeyTripleDESCBC = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 1, 3}) - oidPBEWithSHAAnd40BitRC2CBC = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 1, 6}) -) - -// pbeCipher is an abstraction of a PKCS#12 cipher. -type pbeCipher interface { - // create returns a cipher.Block given a key. - create(key []byte) (cipher.Block, error) - // deriveKey returns a key derived from the given password and salt. - deriveKey(salt, password []byte, iterations int) []byte - // deriveKey returns an IV derived from the given password and salt. - deriveIV(salt, password []byte, iterations int) []byte -} - -type shaWithTripleDESCBC struct{} - -func (shaWithTripleDESCBC) create(key []byte) (cipher.Block, error) { - return des.NewTripleDESCipher(key) -} - -func (shaWithTripleDESCBC) deriveKey(salt, password []byte, iterations int) []byte { - return pbkdf(sha1Sum, 20, 64, salt, password, iterations, 1, 24) -} - -func (shaWithTripleDESCBC) deriveIV(salt, password []byte, iterations int) []byte { - return pbkdf(sha1Sum, 20, 64, salt, password, iterations, 2, 8) -} - -type shaWith40BitRC2CBC struct{} - -func (shaWith40BitRC2CBC) create(key []byte) (cipher.Block, error) { - return rc2.New(key, len(key)*8) -} - -func (shaWith40BitRC2CBC) deriveKey(salt, password []byte, iterations int) []byte { - return pbkdf(sha1Sum, 20, 64, salt, password, iterations, 1, 5) -} - -func (shaWith40BitRC2CBC) deriveIV(salt, password []byte, iterations int) []byte { - return pbkdf(sha1Sum, 20, 64, salt, password, iterations, 2, 8) -} - -type pbeParams struct { - Salt []byte - Iterations int -} - -func pbDecrypterFor(algorithm pkix.AlgorithmIdentifier, password []byte) (cipher.BlockMode, int, error) { - var cipherType pbeCipher - - switch { - case algorithm.Algorithm.Equal(oidPBEWithSHAAnd3KeyTripleDESCBC): - cipherType = shaWithTripleDESCBC{} - case algorithm.Algorithm.Equal(oidPBEWithSHAAnd40BitRC2CBC): - cipherType = shaWith40BitRC2CBC{} - default: - return nil, 0, NotImplementedError("algorithm " + algorithm.Algorithm.String() + " is not supported") - } - - var params pbeParams - if err := unmarshal(algorithm.Parameters.FullBytes, ¶ms); err != nil { - return nil, 0, err - } - - key := cipherType.deriveKey(params.Salt, password, params.Iterations) - iv := cipherType.deriveIV(params.Salt, password, params.Iterations) - - block, err := cipherType.create(key) - if err != nil { - return nil, 0, err - } - - return cipher.NewCBCDecrypter(block, iv), block.BlockSize(), nil -} - -func pbDecrypt(info decryptable, password []byte) (decrypted []byte, err error) { - cbc, blockSize, err := pbDecrypterFor(info.Algorithm(), password) - if err != nil { - return nil, err - } - - encrypted := info.Data() - if len(encrypted) == 0 { - return nil, errors.New("pkcs12: empty encrypted data") - } - if len(encrypted)%blockSize != 0 { - return nil, errors.New("pkcs12: input is not a multiple of the block size") - } - decrypted = make([]byte, len(encrypted)) - cbc.CryptBlocks(decrypted, encrypted) - - psLen := int(decrypted[len(decrypted)-1]) - if psLen == 0 || psLen > blockSize { - return nil, ErrDecryption - } - - if len(decrypted) < psLen { - return nil, ErrDecryption - } - ps := decrypted[len(decrypted)-psLen:] - decrypted = decrypted[:len(decrypted)-psLen] - if bytes.Compare(ps, bytes.Repeat([]byte{byte(psLen)}, psLen)) != 0 { - return nil, ErrDecryption - } - - return -} - -// decryptable abstracts a object that contains ciphertext. -type decryptable interface { - Algorithm() pkix.AlgorithmIdentifier - Data() []byte -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/crypto_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/crypto_test.go deleted file mode 100644 index eb4dae8f..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/crypto_test.go +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkcs12 - -import ( - "bytes" - "crypto/x509/pkix" - "encoding/asn1" - "testing" -) - -var sha1WithTripleDES = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 1, 3}) - -func TestPbDecrypterFor(t *testing.T) { - params, _ := asn1.Marshal(pbeParams{ - Salt: []byte{1, 2, 3, 4, 5, 6, 7, 8}, - Iterations: 2048, - }) - alg := pkix.AlgorithmIdentifier{ - Algorithm: asn1.ObjectIdentifier([]int{1, 2, 3}), - Parameters: asn1.RawValue{ - FullBytes: params, - }, - } - - pass, _ := bmpString("Sesame open") - - _, _, err := pbDecrypterFor(alg, pass) - if _, ok := err.(NotImplementedError); !ok { - t.Errorf("expected not implemented error, got: %T %s", err, err) - } - - alg.Algorithm = sha1WithTripleDES - cbc, blockSize, err := pbDecrypterFor(alg, pass) - if err != nil { - t.Errorf("unexpected error from pbDecrypterFor %v", err) - } - if blockSize != 8 { - t.Errorf("unexpected block size %d, wanted 8", blockSize) - } - - plaintext := []byte{1, 2, 3, 4, 5, 6, 7, 8} - expectedCiphertext := []byte{185, 73, 135, 249, 137, 1, 122, 247} - ciphertext := make([]byte, len(plaintext)) - cbc.CryptBlocks(ciphertext, plaintext) - - if bytes.Compare(ciphertext, expectedCiphertext) != 0 { - t.Errorf("bad ciphertext, got %x but wanted %x", ciphertext, expectedCiphertext) - } -} - -var pbDecryptTests = []struct { - in []byte - expected []byte - expectedError error -}{ - { - []byte("\x33\x73\xf3\x9f\xda\x49\xae\xfc\xa0\x9a\xdf\x5a\x58\xa0\xea\x46"), // 7 padding bytes - []byte("A secret!"), - nil, - }, - { - []byte("\x33\x73\xf3\x9f\xda\x49\xae\xfc\x96\x24\x2f\x71\x7e\x32\x3f\xe7"), // 8 padding bytes - []byte("A secret"), - nil, - }, - { - []byte("\x35\x0c\xc0\x8d\xab\xa9\x5d\x30\x7f\x9a\xec\x6a\xd8\x9b\x9c\xd9"), // 9 padding bytes, incorrect - nil, - ErrDecryption, - }, - { - []byte("\xb2\xf9\x6e\x06\x60\xae\x20\xcf\x08\xa0\x7b\xd9\x6b\x20\xef\x41"), // incorrect padding bytes: [ ... 0x04 0x02 ] - nil, - ErrDecryption, - }, -} - -func TestPbDecrypt(t *testing.T) { - for i, test := range pbDecryptTests { - decryptable := testDecryptable{ - data: test.in, - algorithm: pkix.AlgorithmIdentifier{ - Algorithm: sha1WithTripleDES, - Parameters: pbeParams{ - Salt: []byte("\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8"), - Iterations: 4096, - }.RawASN1(), - }, - } - password, _ := bmpString("sesame") - - plaintext, err := pbDecrypt(decryptable, password) - if err != test.expectedError { - t.Errorf("#%d: got error %q, but wanted %q", i, err, test.expectedError) - continue - } - - if !bytes.Equal(plaintext, test.expected) { - t.Errorf("#%d: got %x, but wanted %x", i, plaintext, test.expected) - } - } -} - -type testDecryptable struct { - data []byte - algorithm pkix.AlgorithmIdentifier -} - -func (d testDecryptable) Algorithm() pkix.AlgorithmIdentifier { return d.algorithm } -func (d testDecryptable) Data() []byte { return d.data } - -func (params pbeParams) RawASN1() (raw asn1.RawValue) { - asn1Bytes, err := asn1.Marshal(params) - if err != nil { - panic(err) - } - _, err = asn1.Unmarshal(asn1Bytes, &raw) - if err != nil { - panic(err) - } - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/errors.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/errors.go deleted file mode 100644 index 7377ce6f..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/errors.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkcs12 - -import "errors" - -var ( - // ErrDecryption represents a failure to decrypt the input. - ErrDecryption = errors.New("pkcs12: decryption error, incorrect padding") - - // ErrIncorrectPassword is returned when an incorrect password is detected. - // Usually, P12/PFX data is signed to be able to verify the password. - ErrIncorrectPassword = errors.New("pkcs12: decryption password incorrect") -) - -// NotImplementedError indicates that the input is not currently supported. -type NotImplementedError string - -func (e NotImplementedError) Error() string { - return "pkcs12: " + string(e) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/internal/rc2/bench_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/internal/rc2/bench_test.go deleted file mode 100644 index 3347f338..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/internal/rc2/bench_test.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package rc2 - -import ( - "testing" -) - -func BenchmarkEncrypt(b *testing.B) { - r, _ := New([]byte{0, 0, 0, 0, 0, 0, 0, 0}, 64) - b.ResetTimer() - var src [8]byte - for i := 0; i < b.N; i++ { - r.Encrypt(src[:], src[:]) - } -} - -func BenchmarkDecrypt(b *testing.B) { - r, _ := New([]byte{0, 0, 0, 0, 0, 0, 0, 0}, 64) - b.ResetTimer() - var src [8]byte - for i := 0; i < b.N; i++ { - r.Decrypt(src[:], src[:]) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/internal/rc2/rc2.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/internal/rc2/rc2.go deleted file mode 100644 index 8c709025..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/internal/rc2/rc2.go +++ /dev/null @@ -1,274 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package rc2 implements the RC2 cipher -/* -https://www.ietf.org/rfc/rfc2268.txt -http://people.csail.mit.edu/rivest/pubs/KRRR98.pdf - -This code is licensed under the MIT license. -*/ -package rc2 - -import ( - "crypto/cipher" - "encoding/binary" -) - -// The rc2 block size in bytes -const BlockSize = 8 - -type rc2Cipher struct { - k [64]uint16 -} - -// New returns a new rc2 cipher with the given key and effective key length t1 -func New(key []byte, t1 int) (cipher.Block, error) { - // TODO(dgryski): error checking for key length - return &rc2Cipher{ - k: expandKey(key, t1), - }, nil -} - -func (*rc2Cipher) BlockSize() int { return BlockSize } - -var piTable = [256]byte{ - 0xd9, 0x78, 0xf9, 0xc4, 0x19, 0xdd, 0xb5, 0xed, 0x28, 0xe9, 0xfd, 0x79, 0x4a, 0xa0, 0xd8, 0x9d, - 0xc6, 0x7e, 0x37, 0x83, 0x2b, 0x76, 0x53, 0x8e, 0x62, 0x4c, 0x64, 0x88, 0x44, 0x8b, 0xfb, 0xa2, - 0x17, 0x9a, 0x59, 0xf5, 0x87, 0xb3, 0x4f, 0x13, 0x61, 0x45, 0x6d, 0x8d, 0x09, 0x81, 0x7d, 0x32, - 0xbd, 0x8f, 0x40, 0xeb, 0x86, 0xb7, 0x7b, 0x0b, 0xf0, 0x95, 0x21, 0x22, 0x5c, 0x6b, 0x4e, 0x82, - 0x54, 0xd6, 0x65, 0x93, 0xce, 0x60, 0xb2, 0x1c, 0x73, 0x56, 0xc0, 0x14, 0xa7, 0x8c, 0xf1, 0xdc, - 0x12, 0x75, 0xca, 0x1f, 0x3b, 0xbe, 0xe4, 0xd1, 0x42, 0x3d, 0xd4, 0x30, 0xa3, 0x3c, 0xb6, 0x26, - 0x6f, 0xbf, 0x0e, 0xda, 0x46, 0x69, 0x07, 0x57, 0x27, 0xf2, 0x1d, 0x9b, 0xbc, 0x94, 0x43, 0x03, - 0xf8, 0x11, 0xc7, 0xf6, 0x90, 0xef, 0x3e, 0xe7, 0x06, 0xc3, 0xd5, 0x2f, 0xc8, 0x66, 0x1e, 0xd7, - 0x08, 0xe8, 0xea, 0xde, 0x80, 0x52, 0xee, 0xf7, 0x84, 0xaa, 0x72, 0xac, 0x35, 0x4d, 0x6a, 0x2a, - 0x96, 0x1a, 0xd2, 0x71, 0x5a, 0x15, 0x49, 0x74, 0x4b, 0x9f, 0xd0, 0x5e, 0x04, 0x18, 0xa4, 0xec, - 0xc2, 0xe0, 0x41, 0x6e, 0x0f, 0x51, 0xcb, 0xcc, 0x24, 0x91, 0xaf, 0x50, 0xa1, 0xf4, 0x70, 0x39, - 0x99, 0x7c, 0x3a, 0x85, 0x23, 0xb8, 0xb4, 0x7a, 0xfc, 0x02, 0x36, 0x5b, 0x25, 0x55, 0x97, 0x31, - 0x2d, 0x5d, 0xfa, 0x98, 0xe3, 0x8a, 0x92, 0xae, 0x05, 0xdf, 0x29, 0x10, 0x67, 0x6c, 0xba, 0xc9, - 0xd3, 0x00, 0xe6, 0xcf, 0xe1, 0x9e, 0xa8, 0x2c, 0x63, 0x16, 0x01, 0x3f, 0x58, 0xe2, 0x89, 0xa9, - 0x0d, 0x38, 0x34, 0x1b, 0xab, 0x33, 0xff, 0xb0, 0xbb, 0x48, 0x0c, 0x5f, 0xb9, 0xb1, 0xcd, 0x2e, - 0xc5, 0xf3, 0xdb, 0x47, 0xe5, 0xa5, 0x9c, 0x77, 0x0a, 0xa6, 0x20, 0x68, 0xfe, 0x7f, 0xc1, 0xad, -} - -func expandKey(key []byte, t1 int) [64]uint16 { - - l := make([]byte, 128) - copy(l, key) - - var t = len(key) - var t8 = (t1 + 7) / 8 - var tm = byte(255 % uint(1<<(8+uint(t1)-8*uint(t8)))) - - for i := len(key); i < 128; i++ { - l[i] = piTable[l[i-1]+l[uint8(i-t)]] - } - - l[128-t8] = piTable[l[128-t8]&tm] - - for i := 127 - t8; i >= 0; i-- { - l[i] = piTable[l[i+1]^l[i+t8]] - } - - var k [64]uint16 - - for i := range k { - k[i] = uint16(l[2*i]) + uint16(l[2*i+1])*256 - } - - return k -} - -func rotl16(x uint16, b uint) uint16 { - return (x >> (16 - b)) | (x << b) -} - -func (c *rc2Cipher) Encrypt(dst, src []byte) { - - r0 := binary.LittleEndian.Uint16(src[0:]) - r1 := binary.LittleEndian.Uint16(src[2:]) - r2 := binary.LittleEndian.Uint16(src[4:]) - r3 := binary.LittleEndian.Uint16(src[6:]) - - var j int - - for j <= 16 { - // mix r0 - r0 = r0 + c.k[j] + (r3 & r2) + ((^r3) & r1) - r0 = rotl16(r0, 1) - j++ - - // mix r1 - r1 = r1 + c.k[j] + (r0 & r3) + ((^r0) & r2) - r1 = rotl16(r1, 2) - j++ - - // mix r2 - r2 = r2 + c.k[j] + (r1 & r0) + ((^r1) & r3) - r2 = rotl16(r2, 3) - j++ - - // mix r3 - r3 = r3 + c.k[j] + (r2 & r1) + ((^r2) & r0) - r3 = rotl16(r3, 5) - j++ - - } - - r0 = r0 + c.k[r3&63] - r1 = r1 + c.k[r0&63] - r2 = r2 + c.k[r1&63] - r3 = r3 + c.k[r2&63] - - for j <= 40 { - - // mix r0 - r0 = r0 + c.k[j] + (r3 & r2) + ((^r3) & r1) - r0 = rotl16(r0, 1) - j++ - - // mix r1 - r1 = r1 + c.k[j] + (r0 & r3) + ((^r0) & r2) - r1 = rotl16(r1, 2) - j++ - - // mix r2 - r2 = r2 + c.k[j] + (r1 & r0) + ((^r1) & r3) - r2 = rotl16(r2, 3) - j++ - - // mix r3 - r3 = r3 + c.k[j] + (r2 & r1) + ((^r2) & r0) - r3 = rotl16(r3, 5) - j++ - - } - - r0 = r0 + c.k[r3&63] - r1 = r1 + c.k[r0&63] - r2 = r2 + c.k[r1&63] - r3 = r3 + c.k[r2&63] - - for j <= 60 { - - // mix r0 - r0 = r0 + c.k[j] + (r3 & r2) + ((^r3) & r1) - r0 = rotl16(r0, 1) - j++ - - // mix r1 - r1 = r1 + c.k[j] + (r0 & r3) + ((^r0) & r2) - r1 = rotl16(r1, 2) - j++ - - // mix r2 - r2 = r2 + c.k[j] + (r1 & r0) + ((^r1) & r3) - r2 = rotl16(r2, 3) - j++ - - // mix r3 - r3 = r3 + c.k[j] + (r2 & r1) + ((^r2) & r0) - r3 = rotl16(r3, 5) - j++ - } - - binary.LittleEndian.PutUint16(dst[0:], r0) - binary.LittleEndian.PutUint16(dst[2:], r1) - binary.LittleEndian.PutUint16(dst[4:], r2) - binary.LittleEndian.PutUint16(dst[6:], r3) -} - -func (c *rc2Cipher) Decrypt(dst, src []byte) { - - r0 := binary.LittleEndian.Uint16(src[0:]) - r1 := binary.LittleEndian.Uint16(src[2:]) - r2 := binary.LittleEndian.Uint16(src[4:]) - r3 := binary.LittleEndian.Uint16(src[6:]) - - j := 63 - - for j >= 44 { - // unmix r3 - r3 = rotl16(r3, 16-5) - r3 = r3 - c.k[j] - (r2 & r1) - ((^r2) & r0) - j-- - - // unmix r2 - r2 = rotl16(r2, 16-3) - r2 = r2 - c.k[j] - (r1 & r0) - ((^r1) & r3) - j-- - - // unmix r1 - r1 = rotl16(r1, 16-2) - r1 = r1 - c.k[j] - (r0 & r3) - ((^r0) & r2) - j-- - - // unmix r0 - r0 = rotl16(r0, 16-1) - r0 = r0 - c.k[j] - (r3 & r2) - ((^r3) & r1) - j-- - } - - r3 = r3 - c.k[r2&63] - r2 = r2 - c.k[r1&63] - r1 = r1 - c.k[r0&63] - r0 = r0 - c.k[r3&63] - - for j >= 20 { - // unmix r3 - r3 = rotl16(r3, 16-5) - r3 = r3 - c.k[j] - (r2 & r1) - ((^r2) & r0) - j-- - - // unmix r2 - r2 = rotl16(r2, 16-3) - r2 = r2 - c.k[j] - (r1 & r0) - ((^r1) & r3) - j-- - - // unmix r1 - r1 = rotl16(r1, 16-2) - r1 = r1 - c.k[j] - (r0 & r3) - ((^r0) & r2) - j-- - - // unmix r0 - r0 = rotl16(r0, 16-1) - r0 = r0 - c.k[j] - (r3 & r2) - ((^r3) & r1) - j-- - - } - - r3 = r3 - c.k[r2&63] - r2 = r2 - c.k[r1&63] - r1 = r1 - c.k[r0&63] - r0 = r0 - c.k[r3&63] - - for j >= 0 { - - // unmix r3 - r3 = rotl16(r3, 16-5) - r3 = r3 - c.k[j] - (r2 & r1) - ((^r2) & r0) - j-- - - // unmix r2 - r2 = rotl16(r2, 16-3) - r2 = r2 - c.k[j] - (r1 & r0) - ((^r1) & r3) - j-- - - // unmix r1 - r1 = rotl16(r1, 16-2) - r1 = r1 - c.k[j] - (r0 & r3) - ((^r0) & r2) - j-- - - // unmix r0 - r0 = rotl16(r0, 16-1) - r0 = r0 - c.k[j] - (r3 & r2) - ((^r3) & r1) - j-- - - } - - binary.LittleEndian.PutUint16(dst[0:], r0) - binary.LittleEndian.PutUint16(dst[2:], r1) - binary.LittleEndian.PutUint16(dst[4:], r2) - binary.LittleEndian.PutUint16(dst[6:], r3) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/internal/rc2/rc2_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/internal/rc2/rc2_test.go deleted file mode 100644 index 8a49dfaf..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/internal/rc2/rc2_test.go +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package rc2 - -import ( - "bytes" - "encoding/hex" - "testing" -) - -func TestEncryptDecrypt(t *testing.T) { - - // TODO(dgryski): add the rest of the test vectors from the RFC - var tests = []struct { - key string - plain string - cipher string - t1 int - }{ - { - "0000000000000000", - "0000000000000000", - "ebb773f993278eff", - 63, - }, - { - "ffffffffffffffff", - "ffffffffffffffff", - "278b27e42e2f0d49", - 64, - }, - { - "3000000000000000", - "1000000000000001", - "30649edf9be7d2c2", - 64, - }, - { - "88", - "0000000000000000", - "61a8a244adacccf0", - 64, - }, - { - "88bca90e90875a", - "0000000000000000", - "6ccf4308974c267f", - 64, - }, - { - "88bca90e90875a7f0f79c384627bafb2", - "0000000000000000", - "1a807d272bbe5db1", - 64, - }, - { - "88bca90e90875a7f0f79c384627bafb2", - "0000000000000000", - "2269552ab0f85ca6", - 128, - }, - { - "88bca90e90875a7f0f79c384627bafb216f80a6f85920584c42fceb0be255daf1e", - "0000000000000000", - "5b78d3a43dfff1f1", - 129, - }, - } - - for _, tt := range tests { - k, _ := hex.DecodeString(tt.key) - p, _ := hex.DecodeString(tt.plain) - c, _ := hex.DecodeString(tt.cipher) - - b, _ := New(k, tt.t1) - - var dst [8]byte - - b.Encrypt(dst[:], p) - - if !bytes.Equal(dst[:], c) { - t.Errorf("encrypt failed: got % 2x wanted % 2x\n", dst, c) - } - - b.Decrypt(dst[:], c) - - if !bytes.Equal(dst[:], p) { - t.Errorf("decrypt failed: got % 2x wanted % 2x\n", dst, p) - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/mac.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/mac.go deleted file mode 100644 index 5f38aa7d..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/mac.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkcs12 - -import ( - "crypto/hmac" - "crypto/sha1" - "crypto/x509/pkix" - "encoding/asn1" -) - -type macData struct { - Mac digestInfo - MacSalt []byte - Iterations int `asn1:"optional,default:1"` -} - -// from PKCS#7: -type digestInfo struct { - Algorithm pkix.AlgorithmIdentifier - Digest []byte -} - -var ( - oidSHA1 = asn1.ObjectIdentifier([]int{1, 3, 14, 3, 2, 26}) -) - -func verifyMac(macData *macData, message, password []byte) error { - if !macData.Mac.Algorithm.Algorithm.Equal(oidSHA1) { - return NotImplementedError("unknown digest algorithm: " + macData.Mac.Algorithm.Algorithm.String()) - } - - key := pbkdf(sha1Sum, 20, 64, macData.MacSalt, password, macData.Iterations, 3, 20) - - mac := hmac.New(sha1.New, key) - mac.Write(message) - expectedMAC := mac.Sum(nil) - - if !hmac.Equal(macData.Mac.Digest, expectedMAC) { - return ErrIncorrectPassword - } - return nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/mac_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/mac_test.go deleted file mode 100644 index 1ed4ff21..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/mac_test.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkcs12 - -import ( - "encoding/asn1" - "testing" -) - -func TestVerifyMac(t *testing.T) { - td := macData{ - Mac: digestInfo{ - Digest: []byte{0x18, 0x20, 0x3d, 0xff, 0x1e, 0x16, 0xf4, 0x92, 0xf2, 0xaf, 0xc8, 0x91, 0xa9, 0xba, 0xd6, 0xca, 0x9d, 0xee, 0x51, 0x93}, - }, - MacSalt: []byte{1, 2, 3, 4, 5, 6, 7, 8}, - Iterations: 2048, - } - - message := []byte{11, 12, 13, 14, 15} - password, _ := bmpString("") - - td.Mac.Algorithm.Algorithm = asn1.ObjectIdentifier([]int{1, 2, 3}) - err := verifyMac(&td, message, password) - if _, ok := err.(NotImplementedError); !ok { - t.Errorf("err: %v", err) - } - - td.Mac.Algorithm.Algorithm = asn1.ObjectIdentifier([]int{1, 3, 14, 3, 2, 26}) - err = verifyMac(&td, message, password) - if err != ErrIncorrectPassword { - t.Errorf("Expected incorrect password, got err: %v", err) - } - - password, _ = bmpString("Sesame open") - err = verifyMac(&td, message, password) - if err != nil { - t.Errorf("err: %v", err) - } - -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pbkdf.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pbkdf.go deleted file mode 100644 index 5c419d41..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pbkdf.go +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkcs12 - -import ( - "bytes" - "crypto/sha1" - "math/big" -) - -var ( - one = big.NewInt(1) -) - -// sha1Sum returns the SHA-1 hash of in. -func sha1Sum(in []byte) []byte { - sum := sha1.Sum(in) - return sum[:] -} - -// fillWithRepeats returns v*ceiling(len(pattern) / v) bytes consisting of -// repeats of pattern. -func fillWithRepeats(pattern []byte, v int) []byte { - if len(pattern) == 0 { - return nil - } - outputLen := v * ((len(pattern) + v - 1) / v) - return bytes.Repeat(pattern, (outputLen+len(pattern)-1)/len(pattern))[:outputLen] -} - -func pbkdf(hash func([]byte) []byte, u, v int, salt, password []byte, r int, ID byte, size int) (key []byte) { - // implementation of https://tools.ietf.org/html/rfc7292#appendix-B.2 , RFC text verbatim in comments - - // Let H be a hash function built around a compression function f: - - // Z_2^u x Z_2^v -> Z_2^u - - // (that is, H has a chaining variable and output of length u bits, and - // the message input to the compression function of H is v bits). The - // values for u and v are as follows: - - // HASH FUNCTION VALUE u VALUE v - // MD2, MD5 128 512 - // SHA-1 160 512 - // SHA-224 224 512 - // SHA-256 256 512 - // SHA-384 384 1024 - // SHA-512 512 1024 - // SHA-512/224 224 1024 - // SHA-512/256 256 1024 - - // Furthermore, let r be the iteration count. - - // We assume here that u and v are both multiples of 8, as are the - // lengths of the password and salt strings (which we denote by p and s, - // respectively) and the number n of pseudorandom bits required. In - // addition, u and v are of course non-zero. - - // For information on security considerations for MD5 [19], see [25] and - // [1], and on those for MD2, see [18]. - - // The following procedure can be used to produce pseudorandom bits for - // a particular "purpose" that is identified by a byte called "ID". - // This standard specifies 3 different values for the ID byte: - - // 1. If ID=1, then the pseudorandom bits being produced are to be used - // as key material for performing encryption or decryption. - - // 2. If ID=2, then the pseudorandom bits being produced are to be used - // as an IV (Initial Value) for encryption or decryption. - - // 3. If ID=3, then the pseudorandom bits being produced are to be used - // as an integrity key for MACing. - - // 1. Construct a string, D (the "diversifier"), by concatenating v/8 - // copies of ID. - var D []byte - for i := 0; i < v; i++ { - D = append(D, ID) - } - - // 2. Concatenate copies of the salt together to create a string S of - // length v(ceiling(s/v)) bits (the final copy of the salt may be - // truncated to create S). Note that if the salt is the empty - // string, then so is S. - - S := fillWithRepeats(salt, v) - - // 3. Concatenate copies of the password together to create a string P - // of length v(ceiling(p/v)) bits (the final copy of the password - // may be truncated to create P). Note that if the password is the - // empty string, then so is P. - - P := fillWithRepeats(password, v) - - // 4. Set I=S||P to be the concatenation of S and P. - I := append(S, P...) - - // 5. Set c=ceiling(n/u). - c := (size + u - 1) / u - - // 6. For i=1, 2, ..., c, do the following: - A := make([]byte, c*20) - var IjBuf []byte - for i := 0; i < c; i++ { - // A. Set A2=H^r(D||I). (i.e., the r-th hash of D||1, - // H(H(H(... H(D||I)))) - Ai := hash(append(D, I...)) - for j := 1; j < r; j++ { - Ai = hash(Ai) - } - copy(A[i*20:], Ai[:]) - - if i < c-1 { // skip on last iteration - // B. Concatenate copies of Ai to create a string B of length v - // bits (the final copy of Ai may be truncated to create B). - var B []byte - for len(B) < v { - B = append(B, Ai[:]...) - } - B = B[:v] - - // C. Treating I as a concatenation I_0, I_1, ..., I_(k-1) of v-bit - // blocks, where k=ceiling(s/v)+ceiling(p/v), modify I by - // setting I_j=(I_j+B+1) mod 2^v for each j. - { - Bbi := new(big.Int).SetBytes(B) - Ij := new(big.Int) - - for j := 0; j < len(I)/v; j++ { - Ij.SetBytes(I[j*v : (j+1)*v]) - Ij.Add(Ij, Bbi) - Ij.Add(Ij, one) - Ijb := Ij.Bytes() - // We expect Ijb to be exactly v bytes, - // if it is longer or shorter we must - // adjust it accordingly. - if len(Ijb) > v { - Ijb = Ijb[len(Ijb)-v:] - } - if len(Ijb) < v { - if IjBuf == nil { - IjBuf = make([]byte, v) - } - bytesShort := v - len(Ijb) - for i := 0; i < bytesShort; i++ { - IjBuf[i] = 0 - } - copy(IjBuf[bytesShort:], Ijb) - Ijb = IjBuf - } - copy(I[j*v:(j+1)*v], Ijb) - } - } - } - } - // 7. Concatenate A_1, A_2, ..., A_c together to form a pseudorandom - // bit string, A. - - // 8. Use the first n bits of A as the output of this entire process. - return A[:size] - - // If the above process is being used to generate a DES key, the process - // should be used to create 64 random bits, and the key's parity bits - // should be set after the 64 bits have been produced. Similar concerns - // hold for 2-key and 3-key triple-DES keys, for CDMF keys, and for any - // similar keys with parity bits "built into them". -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pbkdf_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pbkdf_test.go deleted file mode 100644 index 262037d7..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pbkdf_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkcs12 - -import ( - "bytes" - "testing" -) - -func TestThatPBKDFWorksCorrectlyForLongKeys(t *testing.T) { - cipherInfo := shaWithTripleDESCBC{} - - salt := []byte("\xff\xff\xff\xff\xff\xff\xff\xff") - password, _ := bmpString("sesame") - key := cipherInfo.deriveKey(salt, password, 2048) - - if expected := []byte("\x7c\xd9\xfd\x3e\x2b\x3b\xe7\x69\x1a\x44\xe3\xbe\xf0\xf9\xea\x0f\xb9\xb8\x97\xd4\xe3\x25\xd9\xd1"); bytes.Compare(key, expected) != 0 { - t.Fatalf("expected key '%x', but found '%x'", expected, key) - } -} - -func TestThatPBKDFHandlesLeadingZeros(t *testing.T) { - // This test triggers a case where I_j (in step 6C) ends up with leading zero - // byte, meaning that len(Ijb) < v (leading zeros get stripped by big.Int). - // This was previously causing bug whereby certain inputs would break the - // derivation and produce the wrong output. - key := pbkdf(sha1Sum, 20, 64, []byte("\xf3\x7e\x05\xb5\x18\x32\x4b\x4b"), []byte("\x00\x00"), 2048, 1, 24) - expected := []byte("\x00\xf7\x59\xff\x47\xd1\x4d\xd0\x36\x65\xd5\x94\x3c\xb3\xc4\xa3\x9a\x25\x55\xc0\x2a\xed\x66\xe1") - if bytes.Compare(key, expected) != 0 { - t.Fatalf("expected key '%x', but found '%x'", expected, key) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pkcs12.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pkcs12.go deleted file mode 100644 index e8e17998..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pkcs12.go +++ /dev/null @@ -1,342 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package pkcs12 implements some of PKCS#12. -// -// This implementation is distilled from https://tools.ietf.org/html/rfc7292 -// and referenced documents. It is intended for decoding P12/PFX-stored -// certificates and keys for use with the crypto/tls package. -package pkcs12 - -import ( - "crypto/ecdsa" - "crypto/rsa" - "crypto/x509" - "crypto/x509/pkix" - "encoding/asn1" - "encoding/hex" - "encoding/pem" - "errors" -) - -var ( - oidDataContentType = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 7, 1}) - oidEncryptedDataContentType = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 7, 6}) - - oidFriendlyName = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 9, 20}) - oidLocalKeyID = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 9, 21}) - oidMicrosoftCSPName = asn1.ObjectIdentifier([]int{1, 3, 6, 1, 4, 1, 311, 17, 1}) -) - -type pfxPdu struct { - Version int - AuthSafe contentInfo - MacData macData `asn1:"optional"` -} - -type contentInfo struct { - ContentType asn1.ObjectIdentifier - Content asn1.RawValue `asn1:"tag:0,explicit,optional"` -} - -type encryptedData struct { - Version int - EncryptedContentInfo encryptedContentInfo -} - -type encryptedContentInfo struct { - ContentType asn1.ObjectIdentifier - ContentEncryptionAlgorithm pkix.AlgorithmIdentifier - EncryptedContent []byte `asn1:"tag:0,optional"` -} - -func (i encryptedContentInfo) Algorithm() pkix.AlgorithmIdentifier { - return i.ContentEncryptionAlgorithm -} - -func (i encryptedContentInfo) Data() []byte { return i.EncryptedContent } - -type safeBag struct { - Id asn1.ObjectIdentifier - Value asn1.RawValue `asn1:"tag:0,explicit"` - Attributes []pkcs12Attribute `asn1:"set,optional"` -} - -type pkcs12Attribute struct { - Id asn1.ObjectIdentifier - Value asn1.RawValue `ans1:"set"` -} - -type encryptedPrivateKeyInfo struct { - AlgorithmIdentifier pkix.AlgorithmIdentifier - EncryptedData []byte -} - -func (i encryptedPrivateKeyInfo) Algorithm() pkix.AlgorithmIdentifier { - return i.AlgorithmIdentifier -} - -func (i encryptedPrivateKeyInfo) Data() []byte { - return i.EncryptedData -} - -// PEM block types -const ( - certificateType = "CERTIFICATE" - privateKeyType = "PRIVATE KEY" -) - -// unmarshal calls asn1.Unmarshal, but also returns an error if there is any -// trailing data after unmarshaling. -func unmarshal(in []byte, out interface{}) error { - trailing, err := asn1.Unmarshal(in, out) - if err != nil { - return err - } - if len(trailing) != 0 { - return errors.New("pkcs12: trailing data found") - } - return nil -} - -// ConvertToPEM converts all "safe bags" contained in pfxData to PEM blocks. -func ToPEM(pfxData []byte, password string) ([]*pem.Block, error) { - encodedPassword, err := bmpString(password) - if err != nil { - return nil, ErrIncorrectPassword - } - - bags, encodedPassword, err := getSafeContents(pfxData, encodedPassword) - - blocks := make([]*pem.Block, 0, len(bags)) - for _, bag := range bags { - block, err := convertBag(&bag, encodedPassword) - if err != nil { - return nil, err - } - blocks = append(blocks, block) - } - - return blocks, nil -} - -func convertBag(bag *safeBag, password []byte) (*pem.Block, error) { - block := &pem.Block{ - Headers: make(map[string]string), - } - - for _, attribute := range bag.Attributes { - k, v, err := convertAttribute(&attribute) - if err != nil { - return nil, err - } - block.Headers[k] = v - } - - switch { - case bag.Id.Equal(oidCertBag): - block.Type = certificateType - certsData, err := decodeCertBag(bag.Value.Bytes) - if err != nil { - return nil, err - } - block.Bytes = certsData - case bag.Id.Equal(oidPKCS8ShroundedKeyBag): - block.Type = privateKeyType - - key, err := decodePkcs8ShroudedKeyBag(bag.Value.Bytes, password) - if err != nil { - return nil, err - } - - switch key := key.(type) { - case *rsa.PrivateKey: - block.Bytes = x509.MarshalPKCS1PrivateKey(key) - case *ecdsa.PrivateKey: - block.Bytes, err = x509.MarshalECPrivateKey(key) - if err != nil { - return nil, err - } - default: - return nil, errors.New("found unknown private key type in PKCS#8 wrapping") - } - default: - return nil, errors.New("don't know how to convert a safe bag of type " + bag.Id.String()) - } - return block, nil -} - -func convertAttribute(attribute *pkcs12Attribute) (key, value string, err error) { - isString := false - - switch { - case attribute.Id.Equal(oidFriendlyName): - key = "friendlyName" - isString = true - case attribute.Id.Equal(oidLocalKeyID): - key = "localKeyId" - case attribute.Id.Equal(oidMicrosoftCSPName): - // This key is chosen to match OpenSSL. - key = "Microsoft CSP Name" - isString = true - default: - return "", "", errors.New("pkcs12: unknown attribute with OID " + attribute.Id.String()) - } - - if isString { - if err := unmarshal(attribute.Value.Bytes, &attribute.Value); err != nil { - return "", "", err - } - if value, err = decodeBMPString(attribute.Value.Bytes); err != nil { - return "", "", err - } - } else { - var id []byte - if err := unmarshal(attribute.Value.Bytes, &id); err != nil { - return "", "", err - } - value = hex.EncodeToString(id) - } - - return key, value, nil -} - -// Decode extracts a certificate and private key from pfxData. This function -// assumes that there is only one certificate and only one private key in the -// pfxData. -func Decode(pfxData []byte, password string) (privateKey interface{}, certificate *x509.Certificate, err error) { - encodedPassword, err := bmpString(password) - if err != nil { - return nil, nil, err - } - - bags, encodedPassword, err := getSafeContents(pfxData, encodedPassword) - if err != nil { - return nil, nil, err - } - - if len(bags) != 2 { - err = errors.New("pkcs12: expected exactly two safe bags in the PFX PDU") - return - } - - for _, bag := range bags { - switch { - case bag.Id.Equal(oidCertBag): - if certificate != nil { - err = errors.New("pkcs12: expected exactly one certificate bag") - } - - certsData, err := decodeCertBag(bag.Value.Bytes) - if err != nil { - return nil, nil, err - } - certs, err := x509.ParseCertificates(certsData) - if err != nil { - return nil, nil, err - } - if len(certs) != 1 { - err = errors.New("pkcs12: expected exactly one certificate in the certBag") - return nil, nil, err - } - certificate = certs[0] - - case bag.Id.Equal(oidPKCS8ShroundedKeyBag): - if privateKey != nil { - err = errors.New("pkcs12: expected exactly one key bag") - } - - if privateKey, err = decodePkcs8ShroudedKeyBag(bag.Value.Bytes, encodedPassword); err != nil { - return nil, nil, err - } - } - } - - if certificate == nil { - return nil, nil, errors.New("pkcs12: certificate missing") - } - if privateKey == nil { - return nil, nil, errors.New("pkcs12: private key missing") - } - - return -} - -func getSafeContents(p12Data, password []byte) (bags []safeBag, updatedPassword []byte, err error) { - pfx := new(pfxPdu) - if err := unmarshal(p12Data, pfx); err != nil { - return nil, nil, errors.New("pkcs12: error reading P12 data: " + err.Error()) - } - - if pfx.Version != 3 { - return nil, nil, NotImplementedError("can only decode v3 PFX PDU's") - } - - if !pfx.AuthSafe.ContentType.Equal(oidDataContentType) { - return nil, nil, NotImplementedError("only password-protected PFX is implemented") - } - - // unmarshal the explicit bytes in the content for type 'data' - if err := unmarshal(pfx.AuthSafe.Content.Bytes, &pfx.AuthSafe.Content); err != nil { - return nil, nil, err - } - - if len(pfx.MacData.Mac.Algorithm.Algorithm) == 0 { - return nil, nil, errors.New("pkcs12: no MAC in data") - } - - if err := verifyMac(&pfx.MacData, pfx.AuthSafe.Content.Bytes, password); err != nil { - if err == ErrIncorrectPassword && len(password) == 2 && password[0] == 0 && password[1] == 0 { - // some implementations use an empty byte array - // for the empty string password try one more - // time with empty-empty password - password = nil - err = verifyMac(&pfx.MacData, pfx.AuthSafe.Content.Bytes, password) - } - if err != nil { - return nil, nil, err - } - } - - var authenticatedSafe []contentInfo - if err := unmarshal(pfx.AuthSafe.Content.Bytes, &authenticatedSafe); err != nil { - return nil, nil, err - } - - if len(authenticatedSafe) != 2 { - return nil, nil, NotImplementedError("expected exactly two items in the authenticated safe") - } - - for _, ci := range authenticatedSafe { - var data []byte - - switch { - case ci.ContentType.Equal(oidDataContentType): - if err := unmarshal(ci.Content.Bytes, &data); err != nil { - return nil, nil, err - } - case ci.ContentType.Equal(oidEncryptedDataContentType): - var encryptedData encryptedData - if err := unmarshal(ci.Content.Bytes, &encryptedData); err != nil { - return nil, nil, err - } - if encryptedData.Version != 0 { - return nil, nil, NotImplementedError("only version 0 of EncryptedData is supported") - } - if data, err = pbDecrypt(encryptedData.EncryptedContentInfo, password); err != nil { - return nil, nil, err - } - default: - return nil, nil, NotImplementedError("only data and encryptedData content types are supported in authenticated safe") - } - - var safeContents []safeBag - if err := unmarshal(data, &safeContents); err != nil { - return nil, nil, err - } - bags = append(bags, safeContents...) - } - - return bags, password, nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pkcs12_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pkcs12_test.go deleted file mode 100644 index 14dd2a6c..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/pkcs12_test.go +++ /dev/null @@ -1,138 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkcs12 - -import ( - "crypto/rsa" - "crypto/tls" - "encoding/base64" - "encoding/pem" - "testing" -) - -func TestPfx(t *testing.T) { - for commonName, base64P12 := range testdata { - p12, _ := base64.StdEncoding.DecodeString(base64P12) - - priv, cert, err := Decode(p12, "") - if err != nil { - t.Fatal(err) - } - - if err := priv.(*rsa.PrivateKey).Validate(); err != nil { - t.Errorf("error while validating private key: %v", err) - } - - if cert.Subject.CommonName != commonName { - t.Errorf("expected common name to be %q, but found %q", commonName, cert.Subject.CommonName) - } - } -} - -func TestPEM(t *testing.T) { - for commonName, base64P12 := range testdata { - p12, _ := base64.StdEncoding.DecodeString(base64P12) - - blocks, err := ToPEM(p12, "") - if err != nil { - t.Fatalf("error while converting to PEM: %s", err) - } - - var pemData []byte - for _, b := range blocks { - pemData = append(pemData, pem.EncodeToMemory(b)...) - } - - cert, err := tls.X509KeyPair(pemData, pemData) - if err != nil { - t.Errorf("err while converting to key pair: %v", err) - } - config := tls.Config{ - Certificates: []tls.Certificate{cert}, - } - config.BuildNameToCertificate() - - if _, exists := config.NameToCertificate[commonName]; !exists { - t.Errorf("did not find our cert in PEM?: %v", config.NameToCertificate) - } - } -} - -func ExampleToPEM() { - p12, _ := base64.StdEncoding.DecodeString(`MIIJzgIBAzCCCZQGCS ... CA+gwggPk==`) - - blocks, err := ToPEM(p12, "password") - if err != nil { - panic(err) - } - - var pemData []byte - for _, b := range blocks { - pemData = append(pemData, pem.EncodeToMemory(b)...) - } - - // then use PEM data for tls to construct tls certificate: - cert, err := tls.X509KeyPair(pemData, pemData) - if err != nil { - panic(err) - } - - config := &tls.Config{ - Certificates: []tls.Certificate{cert}, - } - - _ = config -} - -var testdata = map[string]string{ - // 'null' password test case - "Windows Azure Tools": `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`, - // empty string password test case - "testing@example.com": `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 -HQ8CAggA`, -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/safebags.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/safebags.go deleted file mode 100644 index def1f7b9..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pkcs12/safebags.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkcs12 - -import ( - "crypto/x509" - "encoding/asn1" - "errors" -) - -var ( - // see https://tools.ietf.org/html/rfc7292#appendix-D - oidCertTypeX509Certificate = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 9, 22, 1}) - oidPKCS8ShroundedKeyBag = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 10, 1, 2}) - oidCertBag = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 10, 1, 3}) -) - -type certBag struct { - Id asn1.ObjectIdentifier - Data []byte `asn1:"tag:0,explicit"` -} - -func decodePkcs8ShroudedKeyBag(asn1Data, password []byte) (privateKey interface{}, err error) { - pkinfo := new(encryptedPrivateKeyInfo) - if err = unmarshal(asn1Data, pkinfo); err != nil { - return nil, errors.New("pkcs12: error decoding PKCS#8 shrouded key bag: " + err.Error()) - } - - pkData, err := pbDecrypt(pkinfo, password) - if err != nil { - return nil, errors.New("pkcs12: error decrypting PKCS#8 shrouded key bag: " + err.Error()) - } - - ret := new(asn1.RawValue) - if err = unmarshal(pkData, ret); err != nil { - return nil, errors.New("pkcs12: error unmarshaling decrypted private key: " + err.Error()) - } - - if privateKey, err = x509.ParsePKCS8PrivateKey(pkData); err != nil { - return nil, errors.New("pkcs12: error parsing PKCS#8 private key: " + err.Error()) - } - - return privateKey, nil -} - -func decodeCertBag(asn1Data []byte) (x509Certificates []byte, err error) { - bag := new(certBag) - if err := unmarshal(asn1Data, bag); err != nil { - return nil, errors.New("pkcs12: error decoding cert bag: " + err.Error()) - } - if !bag.Id.Equal(oidCertTypeX509Certificate) { - return nil, NotImplementedError("only X509 certificates are supported") - } - return bag.Data, nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/const_amd64.s b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/const_amd64.s deleted file mode 100644 index 8e861f33..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/const_amd64.s +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2012 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. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -DATA ·SCALE(SB)/8, $0x37F4000000000000 -GLOBL ·SCALE(SB), 8, $8 -DATA ·TWO32(SB)/8, $0x41F0000000000000 -GLOBL ·TWO32(SB), 8, $8 -DATA ·TWO64(SB)/8, $0x43F0000000000000 -GLOBL ·TWO64(SB), 8, $8 -DATA ·TWO96(SB)/8, $0x45F0000000000000 -GLOBL ·TWO96(SB), 8, $8 -DATA ·ALPHA32(SB)/8, $0x45E8000000000000 -GLOBL ·ALPHA32(SB), 8, $8 -DATA ·ALPHA64(SB)/8, $0x47E8000000000000 -GLOBL ·ALPHA64(SB), 8, $8 -DATA ·ALPHA96(SB)/8, $0x49E8000000000000 -GLOBL ·ALPHA96(SB), 8, $8 -DATA ·ALPHA130(SB)/8, $0x4C08000000000000 -GLOBL ·ALPHA130(SB), 8, $8 -DATA ·DOFFSET0(SB)/8, $0x4330000000000000 -GLOBL ·DOFFSET0(SB), 8, $8 -DATA ·DOFFSET1(SB)/8, $0x4530000000000000 -GLOBL ·DOFFSET1(SB), 8, $8 -DATA ·DOFFSET2(SB)/8, $0x4730000000000000 -GLOBL ·DOFFSET2(SB), 8, $8 -DATA ·DOFFSET3(SB)/8, $0x4930000000000000 -GLOBL ·DOFFSET3(SB), 8, $8 -DATA ·DOFFSET3MINUSTWO128(SB)/8, $0x492FFFFE00000000 -GLOBL ·DOFFSET3MINUSTWO128(SB), 8, $8 -DATA ·HOFFSET0(SB)/8, $0x43300001FFFFFFFB -GLOBL ·HOFFSET0(SB), 8, $8 -DATA ·HOFFSET1(SB)/8, $0x45300001FFFFFFFE -GLOBL ·HOFFSET1(SB), 8, $8 -DATA ·HOFFSET2(SB)/8, $0x47300001FFFFFFFE -GLOBL ·HOFFSET2(SB), 8, $8 -DATA ·HOFFSET3(SB)/8, $0x49300003FFFFFFFE -GLOBL ·HOFFSET3(SB), 8, $8 -DATA ·ROUNDING(SB)/2, $0x137f -GLOBL ·ROUNDING(SB), 8, $2 diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305.go deleted file mode 100644 index 2270d2b3..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2012 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 poly1305 implements Poly1305 one-time message authentication code as specified in http://cr.yp.to/mac/poly1305-20050329.pdf. - -Poly1305 is a fast, one-time authentication function. It is infeasible for an -attacker to generate an authenticator for a message without the key. However, a -key must only be used for a single message. Authenticating two different -messages with the same key allows an attacker to forge authenticators for other -messages with the same key. - -Poly1305 was originally coupled with AES in order to make Poly1305-AES. AES was -used with a fixed key in order to generate one-time keys from an nonce. -However, in this package AES isn't used and the one-time key is specified -directly. -*/ -package poly1305 - -import "crypto/subtle" - -// TagSize is the size, in bytes, of a poly1305 authenticator. -const TagSize = 16 - -// Verify returns true if mac is a valid authenticator for m with the given -// key. -func Verify(mac *[16]byte, m []byte, key *[32]byte) bool { - var tmp [16]byte - Sum(&tmp, m, key) - return subtle.ConstantTimeCompare(tmp[:], mac[:]) == 1 -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305_amd64.s b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305_amd64.s deleted file mode 100644 index f8d4ee92..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305_amd64.s +++ /dev/null @@ -1,497 +0,0 @@ -// Copyright 2012 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. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -// func poly1305(out *[16]byte, m *byte, mlen uint64, key *[32]key) -TEXT ·poly1305(SB),0,$224-32 - MOVQ out+0(FP),DI - MOVQ m+8(FP),SI - MOVQ mlen+16(FP),DX - MOVQ key+24(FP),CX - - MOVQ SP,R11 - MOVQ $31,R9 - NOTQ R9 - ANDQ R9,SP - ADDQ $32,SP - - MOVQ R11,32(SP) - MOVQ R12,40(SP) - MOVQ R13,48(SP) - MOVQ R14,56(SP) - MOVQ R15,64(SP) - MOVQ BX,72(SP) - MOVQ BP,80(SP) - FLDCW ·ROUNDING(SB) - MOVL 0(CX),R8 - MOVL 4(CX),R9 - MOVL 8(CX),AX - MOVL 12(CX),R10 - MOVQ DI,88(SP) - MOVQ CX,96(SP) - MOVL $0X43300000,108(SP) - MOVL $0X45300000,116(SP) - MOVL $0X47300000,124(SP) - MOVL $0X49300000,132(SP) - ANDL $0X0FFFFFFF,R8 - ANDL $0X0FFFFFFC,R9 - ANDL $0X0FFFFFFC,AX - ANDL $0X0FFFFFFC,R10 - MOVL R8,104(SP) - MOVL R9,112(SP) - MOVL AX,120(SP) - MOVL R10,128(SP) - FMOVD 104(SP), F0 - FSUBD ·DOFFSET0(SB), F0 - FMOVD 112(SP), F0 - FSUBD ·DOFFSET1(SB), F0 - FMOVD 120(SP), F0 - FSUBD ·DOFFSET2(SB), F0 - FMOVD 128(SP), F0 - FSUBD ·DOFFSET3(SB), F0 - FXCHD F0, F3 - FMOVDP F0, 136(SP) - FXCHD F0, F1 - FMOVD F0, 144(SP) - FMULD ·SCALE(SB), F0 - FMOVDP F0, 152(SP) - FMOVD F0, 160(SP) - FMULD ·SCALE(SB), F0 - FMOVDP F0, 168(SP) - FMOVD F0, 176(SP) - FMULD ·SCALE(SB), F0 - FMOVDP F0, 184(SP) - FLDZ - FLDZ - FLDZ - FLDZ - CMPQ DX,$16 - JB ADDATMOST15BYTES - INITIALATLEAST16BYTES: - MOVL 12(SI),DI - MOVL 8(SI),CX - MOVL 4(SI),R8 - MOVL 0(SI),R9 - MOVL DI,128(SP) - MOVL CX,120(SP) - MOVL R8,112(SP) - MOVL R9,104(SP) - ADDQ $16,SI - SUBQ $16,DX - FXCHD F0, F3 - FADDD 128(SP), F0 - FSUBD ·DOFFSET3MINUSTWO128(SB), F0 - FXCHD F0, F1 - FADDD 112(SP), F0 - FSUBD ·DOFFSET1(SB), F0 - FXCHD F0, F2 - FADDD 120(SP), F0 - FSUBD ·DOFFSET2(SB), F0 - FXCHD F0, F3 - FADDD 104(SP), F0 - FSUBD ·DOFFSET0(SB), F0 - CMPQ DX,$16 - JB MULTIPLYADDATMOST15BYTES - MULTIPLYADDATLEAST16BYTES: - MOVL 12(SI),DI - MOVL 8(SI),CX - MOVL 4(SI),R8 - MOVL 0(SI),R9 - MOVL DI,128(SP) - MOVL CX,120(SP) - MOVL R8,112(SP) - MOVL R9,104(SP) - ADDQ $16,SI - SUBQ $16,DX - FMOVD ·ALPHA130(SB), F0 - FADDD F2,F0 - FSUBD ·ALPHA130(SB), F0 - FSUBD F0,F2 - FMULD ·SCALE(SB), F0 - FMOVD ·ALPHA32(SB), F0 - FADDD F2,F0 - FSUBD ·ALPHA32(SB), F0 - FSUBD F0,F2 - FXCHD F0, F2 - FADDDP F0,F1 - FMOVD ·ALPHA64(SB), F0 - FADDD F4,F0 - FSUBD ·ALPHA64(SB), F0 - FSUBD F0,F4 - FMOVD ·ALPHA96(SB), F0 - FADDD F6,F0 - FSUBD ·ALPHA96(SB), F0 - FSUBD F0,F6 - FXCHD F0, F6 - FADDDP F0,F1 - FXCHD F0, F3 - FADDDP F0,F5 - FXCHD F0, F3 - FADDDP F0,F1 - FMOVD 176(SP), F0 - FMULD F3,F0 - FMOVD 160(SP), F0 - FMULD F4,F0 - FMOVD 144(SP), F0 - FMULD F5,F0 - FMOVD 136(SP), F0 - FMULDP F0,F6 - FMOVD 160(SP), F0 - FMULD F4,F0 - FADDDP F0,F3 - FMOVD 144(SP), F0 - FMULD F4,F0 - FADDDP F0,F2 - FMOVD 136(SP), F0 - FMULD F4,F0 - FADDDP F0,F1 - FMOVD 184(SP), F0 - FMULDP F0,F4 - FXCHD F0, F3 - FADDDP F0,F5 - FMOVD 144(SP), F0 - FMULD F4,F0 - FADDDP F0,F2 - FMOVD 136(SP), F0 - FMULD F4,F0 - FADDDP F0,F1 - FMOVD 184(SP), F0 - FMULD F4,F0 - FADDDP F0,F3 - FMOVD 168(SP), F0 - FMULDP F0,F4 - FXCHD F0, F3 - FADDDP F0,F4 - FMOVD 136(SP), F0 - FMULD F5,F0 - FADDDP F0,F1 - FXCHD F0, F3 - FMOVD 184(SP), F0 - FMULD F5,F0 - FADDDP F0,F3 - FXCHD F0, F1 - FMOVD 168(SP), F0 - FMULD F5,F0 - FADDDP F0,F1 - FMOVD 152(SP), F0 - FMULDP F0,F5 - FXCHD F0, F4 - FADDDP F0,F1 - CMPQ DX,$16 - FXCHD F0, F2 - FMOVD 128(SP), F0 - FSUBD ·DOFFSET3MINUSTWO128(SB), F0 - FADDDP F0,F1 - FXCHD F0, F1 - FMOVD 120(SP), F0 - FSUBD ·DOFFSET2(SB), F0 - FADDDP F0,F1 - FXCHD F0, F3 - FMOVD 112(SP), F0 - FSUBD ·DOFFSET1(SB), F0 - FADDDP F0,F1 - FXCHD F0, F2 - FMOVD 104(SP), F0 - FSUBD ·DOFFSET0(SB), F0 - FADDDP F0,F1 - JAE MULTIPLYADDATLEAST16BYTES - MULTIPLYADDATMOST15BYTES: - FMOVD ·ALPHA130(SB), F0 - FADDD F2,F0 - FSUBD ·ALPHA130(SB), F0 - FSUBD F0,F2 - FMULD ·SCALE(SB), F0 - FMOVD ·ALPHA32(SB), F0 - FADDD F2,F0 - FSUBD ·ALPHA32(SB), F0 - FSUBD F0,F2 - FMOVD ·ALPHA64(SB), F0 - FADDD F5,F0 - FSUBD ·ALPHA64(SB), F0 - FSUBD F0,F5 - FMOVD ·ALPHA96(SB), F0 - FADDD F7,F0 - FSUBD ·ALPHA96(SB), F0 - FSUBD F0,F7 - FXCHD F0, F7 - FADDDP F0,F1 - FXCHD F0, F5 - FADDDP F0,F1 - FXCHD F0, F3 - FADDDP F0,F5 - FADDDP F0,F1 - FMOVD 176(SP), F0 - FMULD F1,F0 - FMOVD 160(SP), F0 - FMULD F2,F0 - FMOVD 144(SP), F0 - FMULD F3,F0 - FMOVD 136(SP), F0 - FMULDP F0,F4 - FMOVD 160(SP), F0 - FMULD F5,F0 - FADDDP F0,F3 - FMOVD 144(SP), F0 - FMULD F5,F0 - FADDDP F0,F2 - FMOVD 136(SP), F0 - FMULD F5,F0 - FADDDP F0,F1 - FMOVD 184(SP), F0 - FMULDP F0,F5 - FXCHD F0, F4 - FADDDP F0,F3 - FMOVD 144(SP), F0 - FMULD F5,F0 - FADDDP F0,F2 - FMOVD 136(SP), F0 - FMULD F5,F0 - FADDDP F0,F1 - FMOVD 184(SP), F0 - FMULD F5,F0 - FADDDP F0,F4 - FMOVD 168(SP), F0 - FMULDP F0,F5 - FXCHD F0, F4 - FADDDP F0,F2 - FMOVD 136(SP), F0 - FMULD F5,F0 - FADDDP F0,F1 - FMOVD 184(SP), F0 - FMULD F5,F0 - FADDDP F0,F4 - FMOVD 168(SP), F0 - FMULD F5,F0 - FADDDP F0,F3 - FMOVD 152(SP), F0 - FMULDP F0,F5 - FXCHD F0, F4 - FADDDP F0,F1 - ADDATMOST15BYTES: - CMPQ DX,$0 - JE NOMOREBYTES - MOVL $0,0(SP) - MOVL $0, 4 (SP) - MOVL $0, 8 (SP) - MOVL $0, 12 (SP) - LEAQ 0(SP),DI - MOVQ DX,CX - REP; MOVSB - MOVB $1,0(DI) - MOVL 12 (SP),DI - MOVL 8 (SP),SI - MOVL 4 (SP),DX - MOVL 0(SP),CX - MOVL DI,128(SP) - MOVL SI,120(SP) - MOVL DX,112(SP) - MOVL CX,104(SP) - FXCHD F0, F3 - FADDD 128(SP), F0 - FSUBD ·DOFFSET3(SB), F0 - FXCHD F0, F2 - FADDD 120(SP), F0 - FSUBD ·DOFFSET2(SB), F0 - FXCHD F0, F1 - FADDD 112(SP), F0 - FSUBD ·DOFFSET1(SB), F0 - FXCHD F0, F3 - FADDD 104(SP), F0 - FSUBD ·DOFFSET0(SB), F0 - FMOVD ·ALPHA130(SB), F0 - FADDD F3,F0 - FSUBD ·ALPHA130(SB), F0 - FSUBD F0,F3 - FMULD ·SCALE(SB), F0 - FMOVD ·ALPHA32(SB), F0 - FADDD F2,F0 - FSUBD ·ALPHA32(SB), F0 - FSUBD F0,F2 - FMOVD ·ALPHA64(SB), F0 - FADDD F6,F0 - FSUBD ·ALPHA64(SB), F0 - FSUBD F0,F6 - FMOVD ·ALPHA96(SB), F0 - FADDD F5,F0 - FSUBD ·ALPHA96(SB), F0 - FSUBD F0,F5 - FXCHD F0, F4 - FADDDP F0,F3 - FXCHD F0, F6 - FADDDP F0,F1 - FXCHD F0, F3 - FADDDP F0,F5 - FXCHD F0, F3 - FADDDP F0,F1 - FMOVD 176(SP), F0 - FMULD F3,F0 - FMOVD 160(SP), F0 - FMULD F4,F0 - FMOVD 144(SP), F0 - FMULD F5,F0 - FMOVD 136(SP), F0 - FMULDP F0,F6 - FMOVD 160(SP), F0 - FMULD F5,F0 - FADDDP F0,F3 - FMOVD 144(SP), F0 - FMULD F5,F0 - FADDDP F0,F2 - FMOVD 136(SP), F0 - FMULD F5,F0 - FADDDP F0,F1 - FMOVD 184(SP), F0 - FMULDP F0,F5 - FXCHD F0, F4 - FADDDP F0,F5 - FMOVD 144(SP), F0 - FMULD F6,F0 - FADDDP F0,F2 - FMOVD 136(SP), F0 - FMULD F6,F0 - FADDDP F0,F1 - FMOVD 184(SP), F0 - FMULD F6,F0 - FADDDP F0,F4 - FMOVD 168(SP), F0 - FMULDP F0,F6 - FXCHD F0, F5 - FADDDP F0,F4 - FMOVD 136(SP), F0 - FMULD F2,F0 - FADDDP F0,F1 - FMOVD 184(SP), F0 - FMULD F2,F0 - FADDDP F0,F5 - FMOVD 168(SP), F0 - FMULD F2,F0 - FADDDP F0,F3 - FMOVD 152(SP), F0 - FMULDP F0,F2 - FXCHD F0, F1 - FADDDP F0,F3 - FXCHD F0, F3 - FXCHD F0, F2 - NOMOREBYTES: - MOVL $0,R10 - FMOVD ·ALPHA130(SB), F0 - FADDD F4,F0 - FSUBD ·ALPHA130(SB), F0 - FSUBD F0,F4 - FMULD ·SCALE(SB), F0 - FMOVD ·ALPHA32(SB), F0 - FADDD F2,F0 - FSUBD ·ALPHA32(SB), F0 - FSUBD F0,F2 - FMOVD ·ALPHA64(SB), F0 - FADDD F4,F0 - FSUBD ·ALPHA64(SB), F0 - FSUBD F0,F4 - FMOVD ·ALPHA96(SB), F0 - FADDD F6,F0 - FSUBD ·ALPHA96(SB), F0 - FXCHD F0, F6 - FSUBD F6,F0 - FXCHD F0, F4 - FADDDP F0,F3 - FXCHD F0, F4 - FADDDP F0,F1 - FXCHD F0, F2 - FADDDP F0,F3 - FXCHD F0, F4 - FADDDP F0,F3 - FXCHD F0, F3 - FADDD ·HOFFSET0(SB), F0 - FXCHD F0, F3 - FADDD ·HOFFSET1(SB), F0 - FXCHD F0, F1 - FADDD ·HOFFSET2(SB), F0 - FXCHD F0, F2 - FADDD ·HOFFSET3(SB), F0 - FXCHD F0, F3 - FMOVDP F0, 104(SP) - FMOVDP F0, 112(SP) - FMOVDP F0, 120(SP) - FMOVDP F0, 128(SP) - MOVL 108(SP),DI - ANDL $63,DI - MOVL 116(SP),SI - ANDL $63,SI - MOVL 124(SP),DX - ANDL $63,DX - MOVL 132(SP),CX - ANDL $63,CX - MOVL 112(SP),R8 - ADDL DI,R8 - MOVQ R8,112(SP) - MOVL 120(SP),DI - ADCL SI,DI - MOVQ DI,120(SP) - MOVL 128(SP),DI - ADCL DX,DI - MOVQ DI,128(SP) - MOVL R10,DI - ADCL CX,DI - MOVQ DI,136(SP) - MOVQ $5,DI - MOVL 104(SP),SI - ADDL SI,DI - MOVQ DI,104(SP) - MOVL R10,DI - MOVQ 112(SP),DX - ADCL DX,DI - MOVQ DI,112(SP) - MOVL R10,DI - MOVQ 120(SP),CX - ADCL CX,DI - MOVQ DI,120(SP) - MOVL R10,DI - MOVQ 128(SP),R8 - ADCL R8,DI - MOVQ DI,128(SP) - MOVQ $0XFFFFFFFC,DI - MOVQ 136(SP),R9 - ADCL R9,DI - SARL $16,DI - MOVQ DI,R9 - XORL $0XFFFFFFFF,R9 - ANDQ DI,SI - MOVQ 104(SP),AX - ANDQ R9,AX - ORQ AX,SI - ANDQ DI,DX - MOVQ 112(SP),AX - ANDQ R9,AX - ORQ AX,DX - ANDQ DI,CX - MOVQ 120(SP),AX - ANDQ R9,AX - ORQ AX,CX - ANDQ DI,R8 - MOVQ 128(SP),DI - ANDQ R9,DI - ORQ DI,R8 - MOVQ 88(SP),DI - MOVQ 96(SP),R9 - ADDL 16(R9),SI - ADCL 20(R9),DX - ADCL 24(R9),CX - ADCL 28(R9),R8 - MOVL SI,0(DI) - MOVL DX,4(DI) - MOVL CX,8(DI) - MOVL R8,12(DI) - MOVQ 32(SP),R11 - MOVQ 40(SP),R12 - MOVQ 48(SP),R13 - MOVQ 56(SP),R14 - MOVQ 64(SP),R15 - MOVQ 72(SP),BX - MOVQ 80(SP),BP - MOVQ R11,SP - RET diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305_arm.s b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305_arm.s deleted file mode 100644 index c1538674..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305_arm.s +++ /dev/null @@ -1,379 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This code was translated into a form compatible with 5a from the public -// domain source by Andrew Moon: github.com/floodyberry/poly1305-opt/blob/master/app/extensions/poly1305. - -// +build arm,!gccgo,!appengine - -DATA poly1305_init_constants_armv6<>+0x00(SB)/4, $0x3ffffff -DATA poly1305_init_constants_armv6<>+0x04(SB)/4, $0x3ffff03 -DATA poly1305_init_constants_armv6<>+0x08(SB)/4, $0x3ffc0ff -DATA poly1305_init_constants_armv6<>+0x0c(SB)/4, $0x3f03fff -DATA poly1305_init_constants_armv6<>+0x10(SB)/4, $0x00fffff -GLOBL poly1305_init_constants_armv6<>(SB), 8, $20 - -// Warning: the linker may use R11 to synthesize certain instructions. Please -// take care and verify that no synthetic instructions use it. - -TEXT poly1305_init_ext_armv6<>(SB),4,$-4 - MOVM.DB.W [R4-R11], (R13) - MOVM.IA.W (R1), [R2-R5] - MOVW $poly1305_init_constants_armv6<>(SB), R7 - MOVW R2, R8 - MOVW R2>>26, R9 - MOVW R3>>20, g - MOVW R4>>14, R11 - MOVW R5>>8, R12 - ORR R3<<6, R9, R9 - ORR R4<<12, g, g - ORR R5<<18, R11, R11 - MOVM.IA (R7), [R2-R6] - AND R8, R2, R2 - AND R9, R3, R3 - AND g, R4, R4 - AND R11, R5, R5 - AND R12, R6, R6 - MOVM.IA.W [R2-R6], (R0) - EOR R2, R2, R2 - EOR R3, R3, R3 - EOR R4, R4, R4 - EOR R5, R5, R5 - EOR R6, R6, R6 - MOVM.IA.W [R2-R6], (R0) - MOVM.IA.W (R1), [R2-R5] - MOVM.IA [R2-R6], (R0) - MOVM.IA.W (R13), [R4-R11] - RET - -#define MOVW_UNALIGNED(Rsrc, Rdst, Rtmp, offset) \ - MOVBU (offset+0)(Rsrc), Rtmp; \ - MOVBU Rtmp, (offset+0)(Rdst); \ - MOVBU (offset+1)(Rsrc), Rtmp; \ - MOVBU Rtmp, (offset+1)(Rdst); \ - MOVBU (offset+2)(Rsrc), Rtmp; \ - MOVBU Rtmp, (offset+2)(Rdst); \ - MOVBU (offset+3)(Rsrc), Rtmp; \ - MOVBU Rtmp, (offset+3)(Rdst) - -TEXT poly1305_blocks_armv6<>(SB),4,$-4 - MOVM.DB.W [R4, R5, R6, R7, R8, R9, g, R11, R14], (R13) - SUB $128, R13 - MOVW R0, 36(R13) - MOVW R1, 40(R13) - MOVW R2, 44(R13) - MOVW R1, R14 - MOVW R2, R12 - MOVW 56(R0), R8 - WORD $0xe1180008 // TST R8, R8 not working see issue 5921 - EOR R6, R6, R6 - MOVW.EQ $(1<<24), R6 - MOVW R6, 32(R13) - ADD $64, R13, g - MOVM.IA (R0), [R0-R9] - MOVM.IA [R0-R4], (g) - CMP $16, R12 - BLO poly1305_blocks_armv6_done -poly1305_blocks_armv6_mainloop: - WORD $0xe31e0003 // TST R14, #3 not working see issue 5921 - BEQ poly1305_blocks_armv6_mainloop_aligned - ADD $48, R13, g - MOVW_UNALIGNED(R14, g, R0, 0) - MOVW_UNALIGNED(R14, g, R0, 4) - MOVW_UNALIGNED(R14, g, R0, 8) - MOVW_UNALIGNED(R14, g, R0, 12) - MOVM.IA (g), [R0-R3] - ADD $16, R14 - B poly1305_blocks_armv6_mainloop_loaded -poly1305_blocks_armv6_mainloop_aligned: - MOVM.IA.W (R14), [R0-R3] -poly1305_blocks_armv6_mainloop_loaded: - MOVW R0>>26, g - MOVW R1>>20, R11 - MOVW R2>>14, R12 - MOVW R14, 40(R13) - MOVW R3>>8, R4 - ORR R1<<6, g, g - ORR R2<<12, R11, R11 - ORR R3<<18, R12, R12 - BIC $0xfc000000, R0, R0 - BIC $0xfc000000, g, g - MOVW 32(R13), R3 - BIC $0xfc000000, R11, R11 - BIC $0xfc000000, R12, R12 - ADD R0, R5, R5 - ADD g, R6, R6 - ORR R3, R4, R4 - ADD R11, R7, R7 - ADD $64, R13, R14 - ADD R12, R8, R8 - ADD R4, R9, R9 - MOVM.IA (R14), [R0-R4] - MULLU R4, R5, (R11, g) - MULLU R3, R5, (R14, R12) - MULALU R3, R6, (R11, g) - MULALU R2, R6, (R14, R12) - MULALU R2, R7, (R11, g) - MULALU R1, R7, (R14, R12) - ADD R4<<2, R4, R4 - ADD R3<<2, R3, R3 - MULALU R1, R8, (R11, g) - MULALU R0, R8, (R14, R12) - MULALU R0, R9, (R11, g) - MULALU R4, R9, (R14, R12) - MOVW g, 24(R13) - MOVW R11, 28(R13) - MOVW R12, 16(R13) - MOVW R14, 20(R13) - MULLU R2, R5, (R11, g) - MULLU R1, R5, (R14, R12) - MULALU R1, R6, (R11, g) - MULALU R0, R6, (R14, R12) - MULALU R0, R7, (R11, g) - MULALU R4, R7, (R14, R12) - ADD R2<<2, R2, R2 - ADD R1<<2, R1, R1 - MULALU R4, R8, (R11, g) - MULALU R3, R8, (R14, R12) - MULALU R3, R9, (R11, g) - MULALU R2, R9, (R14, R12) - MOVW g, 8(R13) - MOVW R11, 12(R13) - MOVW R12, 0(R13) - MOVW R14, w+4(SP) - MULLU R0, R5, (R11, g) - MULALU R4, R6, (R11, g) - MULALU R3, R7, (R11, g) - MULALU R2, R8, (R11, g) - MULALU R1, R9, (R11, g) - MOVM.IA (R13), [R0-R7] - MOVW g>>26, R12 - MOVW R4>>26, R14 - ORR R11<<6, R12, R12 - ORR R5<<6, R14, R14 - BIC $0xfc000000, g, g - BIC $0xfc000000, R4, R4 - ADD.S R12, R0, R0 - ADC $0, R1, R1 - ADD.S R14, R6, R6 - ADC $0, R7, R7 - MOVW R0>>26, R12 - MOVW R6>>26, R14 - ORR R1<<6, R12, R12 - ORR R7<<6, R14, R14 - BIC $0xfc000000, R0, R0 - BIC $0xfc000000, R6, R6 - ADD R14<<2, R14, R14 - ADD.S R12, R2, R2 - ADC $0, R3, R3 - ADD R14, g, g - MOVW R2>>26, R12 - MOVW g>>26, R14 - ORR R3<<6, R12, R12 - BIC $0xfc000000, g, R5 - BIC $0xfc000000, R2, R7 - ADD R12, R4, R4 - ADD R14, R0, R0 - MOVW R4>>26, R12 - BIC $0xfc000000, R4, R8 - ADD R12, R6, R9 - MOVW w+44(SP), R12 - MOVW w+40(SP), R14 - MOVW R0, R6 - CMP $32, R12 - SUB $16, R12, R12 - MOVW R12, 44(R13) - BHS poly1305_blocks_armv6_mainloop -poly1305_blocks_armv6_done: - MOVW 36(R13), R12 - MOVW R5, 20(R12) - MOVW R6, 24(R12) - MOVW R7, 28(R12) - MOVW R8, 32(R12) - MOVW R9, 36(R12) - ADD $128, R13, R13 - MOVM.IA.W (R13), [R4, R5, R6, R7, R8, R9, g, R11, R14] - RET - -#define MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp) \ - MOVBU.P 1(Rsrc), Rtmp; \ - MOVBU.P Rtmp, 1(Rdst); \ - MOVBU.P 1(Rsrc), Rtmp; \ - MOVBU.P Rtmp, 1(Rdst) - -#define MOVWP_UNALIGNED(Rsrc, Rdst, Rtmp) \ - MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp); \ - MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp) - -TEXT poly1305_finish_ext_armv6<>(SB),4,$-4 - MOVM.DB.W [R4, R5, R6, R7, R8, R9, g, R11, R14], (R13) - SUB $16, R13, R13 - MOVW R0, R5 - MOVW R1, R6 - MOVW R2, R7 - MOVW R3, R8 - AND.S R2, R2, R2 - BEQ poly1305_finish_ext_armv6_noremaining - EOR R0, R0 - MOVW R13, R9 - MOVW R0, 0(R13) - MOVW R0, 4(R13) - MOVW R0, 8(R13) - MOVW R0, 12(R13) - WORD $0xe3110003 // TST R1, #3 not working see issue 5921 - BEQ poly1305_finish_ext_armv6_aligned - WORD $0xe3120008 // TST R2, #8 not working see issue 5921 - BEQ poly1305_finish_ext_armv6_skip8 - MOVWP_UNALIGNED(R1, R9, g) - MOVWP_UNALIGNED(R1, R9, g) -poly1305_finish_ext_armv6_skip8: - WORD $0xe3120004 // TST $4, R2 not working see issue 5921 - BEQ poly1305_finish_ext_armv6_skip4 - MOVWP_UNALIGNED(R1, R9, g) -poly1305_finish_ext_armv6_skip4: - WORD $0xe3120002 // TST $2, R2 not working see issue 5921 - BEQ poly1305_finish_ext_armv6_skip2 - MOVHUP_UNALIGNED(R1, R9, g) - B poly1305_finish_ext_armv6_skip2 -poly1305_finish_ext_armv6_aligned: - WORD $0xe3120008 // TST R2, #8 not working see issue 5921 - BEQ poly1305_finish_ext_armv6_skip8_aligned - MOVM.IA.W (R1), [g-R11] - MOVM.IA.W [g-R11], (R9) -poly1305_finish_ext_armv6_skip8_aligned: - WORD $0xe3120004 // TST $4, R2 not working see issue 5921 - BEQ poly1305_finish_ext_armv6_skip4_aligned - MOVW.P 4(R1), g - MOVW.P g, 4(R9) -poly1305_finish_ext_armv6_skip4_aligned: - WORD $0xe3120002 // TST $2, R2 not working see issue 5921 - BEQ poly1305_finish_ext_armv6_skip2 - MOVHU.P 2(R1), g - MOVH.P g, 2(R9) -poly1305_finish_ext_armv6_skip2: - WORD $0xe3120001 // TST $1, R2 not working see issue 5921 - BEQ poly1305_finish_ext_armv6_skip1 - MOVBU.P 1(R1), g - MOVBU.P g, 1(R9) -poly1305_finish_ext_armv6_skip1: - MOVW $1, R11 - MOVBU R11, 0(R9) - MOVW R11, 56(R5) - MOVW R5, R0 - MOVW R13, R1 - MOVW $16, R2 - BL poly1305_blocks_armv6<>(SB) -poly1305_finish_ext_armv6_noremaining: - MOVW 20(R5), R0 - MOVW 24(R5), R1 - MOVW 28(R5), R2 - MOVW 32(R5), R3 - MOVW 36(R5), R4 - MOVW R4>>26, R12 - BIC $0xfc000000, R4, R4 - ADD R12<<2, R12, R12 - ADD R12, R0, R0 - MOVW R0>>26, R12 - BIC $0xfc000000, R0, R0 - ADD R12, R1, R1 - MOVW R1>>26, R12 - BIC $0xfc000000, R1, R1 - ADD R12, R2, R2 - MOVW R2>>26, R12 - BIC $0xfc000000, R2, R2 - ADD R12, R3, R3 - MOVW R3>>26, R12 - BIC $0xfc000000, R3, R3 - ADD R12, R4, R4 - ADD $5, R0, R6 - MOVW R6>>26, R12 - BIC $0xfc000000, R6, R6 - ADD R12, R1, R7 - MOVW R7>>26, R12 - BIC $0xfc000000, R7, R7 - ADD R12, R2, g - MOVW g>>26, R12 - BIC $0xfc000000, g, g - ADD R12, R3, R11 - MOVW $-(1<<26), R12 - ADD R11>>26, R12, R12 - BIC $0xfc000000, R11, R11 - ADD R12, R4, R14 - MOVW R14>>31, R12 - SUB $1, R12 - AND R12, R6, R6 - AND R12, R7, R7 - AND R12, g, g - AND R12, R11, R11 - AND R12, R14, R14 - MVN R12, R12 - AND R12, R0, R0 - AND R12, R1, R1 - AND R12, R2, R2 - AND R12, R3, R3 - AND R12, R4, R4 - ORR R6, R0, R0 - ORR R7, R1, R1 - ORR g, R2, R2 - ORR R11, R3, R3 - ORR R14, R4, R4 - ORR R1<<26, R0, R0 - MOVW R1>>6, R1 - ORR R2<<20, R1, R1 - MOVW R2>>12, R2 - ORR R3<<14, R2, R2 - MOVW R3>>18, R3 - ORR R4<<8, R3, R3 - MOVW 40(R5), R6 - MOVW 44(R5), R7 - MOVW 48(R5), g - MOVW 52(R5), R11 - ADD.S R6, R0, R0 - ADC.S R7, R1, R1 - ADC.S g, R2, R2 - ADC.S R11, R3, R3 - MOVM.IA [R0-R3], (R8) - MOVW R5, R12 - EOR R0, R0, R0 - EOR R1, R1, R1 - EOR R2, R2, R2 - EOR R3, R3, R3 - EOR R4, R4, R4 - EOR R5, R5, R5 - EOR R6, R6, R6 - EOR R7, R7, R7 - MOVM.IA.W [R0-R7], (R12) - MOVM.IA [R0-R7], (R12) - ADD $16, R13, R13 - MOVM.IA.W (R13), [R4, R5, R6, R7, R8, R9, g, R11, R14] - RET - -// func poly1305_auth_armv6(out *[16]byte, m *byte, mlen uint32, key *[32]key) -TEXT ·poly1305_auth_armv6(SB),0,$280-16 - MOVW out+0(FP), R4 - MOVW m+4(FP), R5 - MOVW mlen+8(FP), R6 - MOVW key+12(FP), R7 - - MOVW R13, R8 - BIC $63, R13 - SUB $64, R13, R13 - MOVW R13, R0 - MOVW R7, R1 - BL poly1305_init_ext_armv6<>(SB) - BIC.S $15, R6, R2 - BEQ poly1305_auth_armv6_noblocks - MOVW R13, R0 - MOVW R5, R1 - ADD R2, R5, R5 - SUB R2, R6, R6 - BL poly1305_blocks_armv6<>(SB) -poly1305_auth_armv6_noblocks: - MOVW R13, R0 - MOVW R5, R1 - MOVW R6, R2 - MOVW R4, R3 - BL poly1305_finish_ext_armv6<>(SB) - MOVW R8, R13 - RET diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305_test.go deleted file mode 100644 index b3e92310..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/poly1305_test.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2012 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 poly1305 - -import ( - "bytes" - "testing" - "unsafe" -) - -var testData = []struct { - in, k, correct []byte -}{ - { - []byte("Hello world!"), - []byte("this is 32-byte key for Poly1305"), - []byte{0xa6, 0xf7, 0x45, 0x00, 0x8f, 0x81, 0xc9, 0x16, 0xa2, 0x0d, 0xcc, 0x74, 0xee, 0xf2, 0xb2, 0xf0}, - }, - { - make([]byte, 32), - []byte("this is 32-byte key for Poly1305"), - []byte{0x49, 0xec, 0x78, 0x09, 0x0e, 0x48, 0x1e, 0xc6, 0xc2, 0x6b, 0x33, 0xb9, 0x1c, 0xcc, 0x03, 0x07}, - }, - { - make([]byte, 2007), - []byte("this is 32-byte key for Poly1305"), - []byte{0xda, 0x84, 0xbc, 0xab, 0x02, 0x67, 0x6c, 0x38, 0xcd, 0xb0, 0x15, 0x60, 0x42, 0x74, 0xc2, 0xaa}, - }, - { - make([]byte, 2007), - make([]byte, 32), - make([]byte, 16), - }, -} - -func testSum(t *testing.T, unaligned bool) { - var out [16]byte - var key [32]byte - - for i, v := range testData { - in := v.in - if unaligned { - in = unalignBytes(in) - } - copy(key[:], v.k) - Sum(&out, in, &key) - if !bytes.Equal(out[:], v.correct) { - t.Errorf("%d: expected %x, got %x", i, v.correct, out[:]) - } - } -} - -func TestSum(t *testing.T) { testSum(t, false) } -func TestSumUnaligned(t *testing.T) { testSum(t, true) } - -func benchmark(b *testing.B, size int, unaligned bool) { - var out [16]byte - var key [32]byte - in := make([]byte, size) - if unaligned { - in = unalignBytes(in) - } - b.SetBytes(int64(len(in))) - b.ResetTimer() - for i := 0; i < b.N; i++ { - Sum(&out, in, &key) - } -} - -func Benchmark64(b *testing.B) { benchmark(b, 64, false) } -func Benchmark1K(b *testing.B) { benchmark(b, 1024, false) } -func Benchmark64Unaligned(b *testing.B) { benchmark(b, 64, true) } -func Benchmark1KUnaligned(b *testing.B) { benchmark(b, 1024, true) } - -func unalignBytes(in []byte) []byte { - out := make([]byte, len(in)+1) - if uintptr(unsafe.Pointer(&out[0]))&(unsafe.Alignof(uint32(0))-1) == 0 { - out = out[1:] - } else { - out = out[:len(in)] - } - copy(out, in) - return out -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/sum_amd64.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/sum_amd64.go deleted file mode 100644 index 6775c703..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/sum_amd64.go +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2012 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 amd64,!gccgo,!appengine - -package poly1305 - -// This function is implemented in poly1305_amd64.s - -//go:noescape - -func poly1305(out *[16]byte, m *byte, mlen uint64, key *[32]byte) - -// Sum generates an authenticator for m using a one-time key and puts the -// 16-byte result into out. Authenticating two different messages with the same -// key allows an attacker to forge messages at will. -func Sum(out *[16]byte, m []byte, key *[32]byte) { - var mPtr *byte - if len(m) > 0 { - mPtr = &m[0] - } - poly1305(out, mPtr, uint64(len(m)), key) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/sum_arm.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/sum_arm.go deleted file mode 100644 index 50b979c2..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/sum_arm.go +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build arm,!gccgo,!appengine - -package poly1305 - -// This function is implemented in poly1305_arm.s - -//go:noescape - -func poly1305_auth_armv6(out *[16]byte, m *byte, mlen uint32, key *[32]byte) - -// Sum generates an authenticator for m using a one-time key and puts the -// 16-byte result into out. Authenticating two different messages with the same -// key allows an attacker to forge messages at will. -func Sum(out *[16]byte, m []byte, key *[32]byte) { - var mPtr *byte - if len(m) > 0 { - mPtr = &m[0] - } - poly1305_auth_armv6(out, mPtr, uint32(len(m)), key) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/sum_ref.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/sum_ref.go deleted file mode 100644 index 0b24fc78..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/poly1305/sum_ref.go +++ /dev/null @@ -1,1531 +0,0 @@ -// Copyright 2012 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 !amd64,!arm gccgo appengine - -package poly1305 - -// Based on original, public domain implementation from NaCl by D. J. -// Bernstein. - -import "math" - -const ( - alpham80 = 0.00000000558793544769287109375 - alpham48 = 24.0 - alpham16 = 103079215104.0 - alpha0 = 6755399441055744.0 - alpha18 = 1770887431076116955136.0 - alpha32 = 29014219670751100192948224.0 - alpha50 = 7605903601369376408980219232256.0 - alpha64 = 124615124604835863084731911901282304.0 - alpha82 = 32667107224410092492483962313449748299776.0 - alpha96 = 535217884764734955396857238543560676143529984.0 - alpha112 = 35076039295941670036888435985190792471742381031424.0 - alpha130 = 9194973245195333150150082162901855101712434733101613056.0 - scale = 0.0000000000000000000000000000000000000036734198463196484624023016788195177431833298649127735047148490821200539357960224151611328125 - offset0 = 6755408030990331.0 - offset1 = 29014256564239239022116864.0 - offset2 = 124615283061160854719918951570079744.0 - offset3 = 535219245894202480694386063513315216128475136.0 -) - -// Sum generates an authenticator for m using a one-time key and puts the -// 16-byte result into out. Authenticating two different messages with the same -// key allows an attacker to forge messages at will. -func Sum(out *[16]byte, m []byte, key *[32]byte) { - r := key - s := key[16:] - var ( - y7 float64 - y6 float64 - y1 float64 - y0 float64 - y5 float64 - y4 float64 - x7 float64 - x6 float64 - x1 float64 - x0 float64 - y3 float64 - y2 float64 - x5 float64 - r3lowx0 float64 - x4 float64 - r0lowx6 float64 - x3 float64 - r3highx0 float64 - x2 float64 - r0highx6 float64 - r0lowx0 float64 - sr1lowx6 float64 - r0highx0 float64 - sr1highx6 float64 - sr3low float64 - r1lowx0 float64 - sr2lowx6 float64 - r1highx0 float64 - sr2highx6 float64 - r2lowx0 float64 - sr3lowx6 float64 - r2highx0 float64 - sr3highx6 float64 - r1highx4 float64 - r1lowx4 float64 - r0highx4 float64 - r0lowx4 float64 - sr3highx4 float64 - sr3lowx4 float64 - sr2highx4 float64 - sr2lowx4 float64 - r0lowx2 float64 - r0highx2 float64 - r1lowx2 float64 - r1highx2 float64 - r2lowx2 float64 - r2highx2 float64 - sr3lowx2 float64 - sr3highx2 float64 - z0 float64 - z1 float64 - z2 float64 - z3 float64 - m0 int64 - m1 int64 - m2 int64 - m3 int64 - m00 uint32 - m01 uint32 - m02 uint32 - m03 uint32 - m10 uint32 - m11 uint32 - m12 uint32 - m13 uint32 - m20 uint32 - m21 uint32 - m22 uint32 - m23 uint32 - m30 uint32 - m31 uint32 - m32 uint32 - m33 uint64 - lbelow2 int32 - lbelow3 int32 - lbelow4 int32 - lbelow5 int32 - lbelow6 int32 - lbelow7 int32 - lbelow8 int32 - lbelow9 int32 - lbelow10 int32 - lbelow11 int32 - lbelow12 int32 - lbelow13 int32 - lbelow14 int32 - lbelow15 int32 - s00 uint32 - s01 uint32 - s02 uint32 - s03 uint32 - s10 uint32 - s11 uint32 - s12 uint32 - s13 uint32 - s20 uint32 - s21 uint32 - s22 uint32 - s23 uint32 - s30 uint32 - s31 uint32 - s32 uint32 - s33 uint32 - bits32 uint64 - f uint64 - f0 uint64 - f1 uint64 - f2 uint64 - f3 uint64 - f4 uint64 - g uint64 - g0 uint64 - g1 uint64 - g2 uint64 - g3 uint64 - g4 uint64 - ) - - var p int32 - - l := int32(len(m)) - - r00 := uint32(r[0]) - - r01 := uint32(r[1]) - - r02 := uint32(r[2]) - r0 := int64(2151) - - r03 := uint32(r[3]) - r03 &= 15 - r0 <<= 51 - - r10 := uint32(r[4]) - r10 &= 252 - r01 <<= 8 - r0 += int64(r00) - - r11 := uint32(r[5]) - r02 <<= 16 - r0 += int64(r01) - - r12 := uint32(r[6]) - r03 <<= 24 - r0 += int64(r02) - - r13 := uint32(r[7]) - r13 &= 15 - r1 := int64(2215) - r0 += int64(r03) - - d0 := r0 - r1 <<= 51 - r2 := int64(2279) - - r20 := uint32(r[8]) - r20 &= 252 - r11 <<= 8 - r1 += int64(r10) - - r21 := uint32(r[9]) - r12 <<= 16 - r1 += int64(r11) - - r22 := uint32(r[10]) - r13 <<= 24 - r1 += int64(r12) - - r23 := uint32(r[11]) - r23 &= 15 - r2 <<= 51 - r1 += int64(r13) - - d1 := r1 - r21 <<= 8 - r2 += int64(r20) - - r30 := uint32(r[12]) - r30 &= 252 - r22 <<= 16 - r2 += int64(r21) - - r31 := uint32(r[13]) - r23 <<= 24 - r2 += int64(r22) - - r32 := uint32(r[14]) - r2 += int64(r23) - r3 := int64(2343) - - d2 := r2 - r3 <<= 51 - - r33 := uint32(r[15]) - r33 &= 15 - r31 <<= 8 - r3 += int64(r30) - - r32 <<= 16 - r3 += int64(r31) - - r33 <<= 24 - r3 += int64(r32) - - r3 += int64(r33) - h0 := alpha32 - alpha32 - - d3 := r3 - h1 := alpha32 - alpha32 - - h2 := alpha32 - alpha32 - - h3 := alpha32 - alpha32 - - h4 := alpha32 - alpha32 - - r0low := math.Float64frombits(uint64(d0)) - h5 := alpha32 - alpha32 - - r1low := math.Float64frombits(uint64(d1)) - h6 := alpha32 - alpha32 - - r2low := math.Float64frombits(uint64(d2)) - h7 := alpha32 - alpha32 - - r0low -= alpha0 - - r1low -= alpha32 - - r2low -= alpha64 - - r0high := r0low + alpha18 - - r3low := math.Float64frombits(uint64(d3)) - - r1high := r1low + alpha50 - sr1low := scale * r1low - - r2high := r2low + alpha82 - sr2low := scale * r2low - - r0high -= alpha18 - r0high_stack := r0high - - r3low -= alpha96 - - r1high -= alpha50 - r1high_stack := r1high - - sr1high := sr1low + alpham80 - - r0low -= r0high - - r2high -= alpha82 - sr3low = scale * r3low - - sr2high := sr2low + alpham48 - - r1low -= r1high - r1low_stack := r1low - - sr1high -= alpham80 - sr1high_stack := sr1high - - r2low -= r2high - r2low_stack := r2low - - sr2high -= alpham48 - sr2high_stack := sr2high - - r3high := r3low + alpha112 - r0low_stack := r0low - - sr1low -= sr1high - sr1low_stack := sr1low - - sr3high := sr3low + alpham16 - r2high_stack := r2high - - sr2low -= sr2high - sr2low_stack := sr2low - - r3high -= alpha112 - r3high_stack := r3high - - sr3high -= alpham16 - sr3high_stack := sr3high - - r3low -= r3high - r3low_stack := r3low - - sr3low -= sr3high - sr3low_stack := sr3low - - if l < 16 { - goto addatmost15bytes - } - - m00 = uint32(m[p+0]) - m0 = 2151 - - m0 <<= 51 - m1 = 2215 - m01 = uint32(m[p+1]) - - m1 <<= 51 - m2 = 2279 - m02 = uint32(m[p+2]) - - m2 <<= 51 - m3 = 2343 - m03 = uint32(m[p+3]) - - m10 = uint32(m[p+4]) - m01 <<= 8 - m0 += int64(m00) - - m11 = uint32(m[p+5]) - m02 <<= 16 - m0 += int64(m01) - - m12 = uint32(m[p+6]) - m03 <<= 24 - m0 += int64(m02) - - m13 = uint32(m[p+7]) - m3 <<= 51 - m0 += int64(m03) - - m20 = uint32(m[p+8]) - m11 <<= 8 - m1 += int64(m10) - - m21 = uint32(m[p+9]) - m12 <<= 16 - m1 += int64(m11) - - m22 = uint32(m[p+10]) - m13 <<= 24 - m1 += int64(m12) - - m23 = uint32(m[p+11]) - m1 += int64(m13) - - m30 = uint32(m[p+12]) - m21 <<= 8 - m2 += int64(m20) - - m31 = uint32(m[p+13]) - m22 <<= 16 - m2 += int64(m21) - - m32 = uint32(m[p+14]) - m23 <<= 24 - m2 += int64(m22) - - m33 = uint64(m[p+15]) - m2 += int64(m23) - - d0 = m0 - m31 <<= 8 - m3 += int64(m30) - - d1 = m1 - m32 <<= 16 - m3 += int64(m31) - - d2 = m2 - m33 += 256 - - m33 <<= 24 - m3 += int64(m32) - - m3 += int64(m33) - d3 = m3 - - p += 16 - l -= 16 - - z0 = math.Float64frombits(uint64(d0)) - - z1 = math.Float64frombits(uint64(d1)) - - z2 = math.Float64frombits(uint64(d2)) - - z3 = math.Float64frombits(uint64(d3)) - - z0 -= alpha0 - - z1 -= alpha32 - - z2 -= alpha64 - - z3 -= alpha96 - - h0 += z0 - - h1 += z1 - - h3 += z2 - - h5 += z3 - - if l < 16 { - goto multiplyaddatmost15bytes - } - -multiplyaddatleast16bytes: - - m2 = 2279 - m20 = uint32(m[p+8]) - y7 = h7 + alpha130 - - m2 <<= 51 - m3 = 2343 - m21 = uint32(m[p+9]) - y6 = h6 + alpha130 - - m3 <<= 51 - m0 = 2151 - m22 = uint32(m[p+10]) - y1 = h1 + alpha32 - - m0 <<= 51 - m1 = 2215 - m23 = uint32(m[p+11]) - y0 = h0 + alpha32 - - m1 <<= 51 - m30 = uint32(m[p+12]) - y7 -= alpha130 - - m21 <<= 8 - m2 += int64(m20) - m31 = uint32(m[p+13]) - y6 -= alpha130 - - m22 <<= 16 - m2 += int64(m21) - m32 = uint32(m[p+14]) - y1 -= alpha32 - - m23 <<= 24 - m2 += int64(m22) - m33 = uint64(m[p+15]) - y0 -= alpha32 - - m2 += int64(m23) - m00 = uint32(m[p+0]) - y5 = h5 + alpha96 - - m31 <<= 8 - m3 += int64(m30) - m01 = uint32(m[p+1]) - y4 = h4 + alpha96 - - m32 <<= 16 - m02 = uint32(m[p+2]) - x7 = h7 - y7 - y7 *= scale - - m33 += 256 - m03 = uint32(m[p+3]) - x6 = h6 - y6 - y6 *= scale - - m33 <<= 24 - m3 += int64(m31) - m10 = uint32(m[p+4]) - x1 = h1 - y1 - - m01 <<= 8 - m3 += int64(m32) - m11 = uint32(m[p+5]) - x0 = h0 - y0 - - m3 += int64(m33) - m0 += int64(m00) - m12 = uint32(m[p+6]) - y5 -= alpha96 - - m02 <<= 16 - m0 += int64(m01) - m13 = uint32(m[p+7]) - y4 -= alpha96 - - m03 <<= 24 - m0 += int64(m02) - d2 = m2 - x1 += y7 - - m0 += int64(m03) - d3 = m3 - x0 += y6 - - m11 <<= 8 - m1 += int64(m10) - d0 = m0 - x7 += y5 - - m12 <<= 16 - m1 += int64(m11) - x6 += y4 - - m13 <<= 24 - m1 += int64(m12) - y3 = h3 + alpha64 - - m1 += int64(m13) - d1 = m1 - y2 = h2 + alpha64 - - x0 += x1 - - x6 += x7 - - y3 -= alpha64 - r3low = r3low_stack - - y2 -= alpha64 - r0low = r0low_stack - - x5 = h5 - y5 - r3lowx0 = r3low * x0 - r3high = r3high_stack - - x4 = h4 - y4 - r0lowx6 = r0low * x6 - r0high = r0high_stack - - x3 = h3 - y3 - r3highx0 = r3high * x0 - sr1low = sr1low_stack - - x2 = h2 - y2 - r0highx6 = r0high * x6 - sr1high = sr1high_stack - - x5 += y3 - r0lowx0 = r0low * x0 - r1low = r1low_stack - - h6 = r3lowx0 + r0lowx6 - sr1lowx6 = sr1low * x6 - r1high = r1high_stack - - x4 += y2 - r0highx0 = r0high * x0 - sr2low = sr2low_stack - - h7 = r3highx0 + r0highx6 - sr1highx6 = sr1high * x6 - sr2high = sr2high_stack - - x3 += y1 - r1lowx0 = r1low * x0 - r2low = r2low_stack - - h0 = r0lowx0 + sr1lowx6 - sr2lowx6 = sr2low * x6 - r2high = r2high_stack - - x2 += y0 - r1highx0 = r1high * x0 - sr3low = sr3low_stack - - h1 = r0highx0 + sr1highx6 - sr2highx6 = sr2high * x6 - sr3high = sr3high_stack - - x4 += x5 - r2lowx0 = r2low * x0 - z2 = math.Float64frombits(uint64(d2)) - - h2 = r1lowx0 + sr2lowx6 - sr3lowx6 = sr3low * x6 - - x2 += x3 - r2highx0 = r2high * x0 - z3 = math.Float64frombits(uint64(d3)) - - h3 = r1highx0 + sr2highx6 - sr3highx6 = sr3high * x6 - - r1highx4 = r1high * x4 - z2 -= alpha64 - - h4 = r2lowx0 + sr3lowx6 - r1lowx4 = r1low * x4 - - r0highx4 = r0high * x4 - z3 -= alpha96 - - h5 = r2highx0 + sr3highx6 - r0lowx4 = r0low * x4 - - h7 += r1highx4 - sr3highx4 = sr3high * x4 - - h6 += r1lowx4 - sr3lowx4 = sr3low * x4 - - h5 += r0highx4 - sr2highx4 = sr2high * x4 - - h4 += r0lowx4 - sr2lowx4 = sr2low * x4 - - h3 += sr3highx4 - r0lowx2 = r0low * x2 - - h2 += sr3lowx4 - r0highx2 = r0high * x2 - - h1 += sr2highx4 - r1lowx2 = r1low * x2 - - h0 += sr2lowx4 - r1highx2 = r1high * x2 - - h2 += r0lowx2 - r2lowx2 = r2low * x2 - - h3 += r0highx2 - r2highx2 = r2high * x2 - - h4 += r1lowx2 - sr3lowx2 = sr3low * x2 - - h5 += r1highx2 - sr3highx2 = sr3high * x2 - - p += 16 - l -= 16 - h6 += r2lowx2 - - h7 += r2highx2 - - z1 = math.Float64frombits(uint64(d1)) - h0 += sr3lowx2 - - z0 = math.Float64frombits(uint64(d0)) - h1 += sr3highx2 - - z1 -= alpha32 - - z0 -= alpha0 - - h5 += z3 - - h3 += z2 - - h1 += z1 - - h0 += z0 - - if l >= 16 { - goto multiplyaddatleast16bytes - } - -multiplyaddatmost15bytes: - - y7 = h7 + alpha130 - - y6 = h6 + alpha130 - - y1 = h1 + alpha32 - - y0 = h0 + alpha32 - - y7 -= alpha130 - - y6 -= alpha130 - - y1 -= alpha32 - - y0 -= alpha32 - - y5 = h5 + alpha96 - - y4 = h4 + alpha96 - - x7 = h7 - y7 - y7 *= scale - - x6 = h6 - y6 - y6 *= scale - - x1 = h1 - y1 - - x0 = h0 - y0 - - y5 -= alpha96 - - y4 -= alpha96 - - x1 += y7 - - x0 += y6 - - x7 += y5 - - x6 += y4 - - y3 = h3 + alpha64 - - y2 = h2 + alpha64 - - x0 += x1 - - x6 += x7 - - y3 -= alpha64 - r3low = r3low_stack - - y2 -= alpha64 - r0low = r0low_stack - - x5 = h5 - y5 - r3lowx0 = r3low * x0 - r3high = r3high_stack - - x4 = h4 - y4 - r0lowx6 = r0low * x6 - r0high = r0high_stack - - x3 = h3 - y3 - r3highx0 = r3high * x0 - sr1low = sr1low_stack - - x2 = h2 - y2 - r0highx6 = r0high * x6 - sr1high = sr1high_stack - - x5 += y3 - r0lowx0 = r0low * x0 - r1low = r1low_stack - - h6 = r3lowx0 + r0lowx6 - sr1lowx6 = sr1low * x6 - r1high = r1high_stack - - x4 += y2 - r0highx0 = r0high * x0 - sr2low = sr2low_stack - - h7 = r3highx0 + r0highx6 - sr1highx6 = sr1high * x6 - sr2high = sr2high_stack - - x3 += y1 - r1lowx0 = r1low * x0 - r2low = r2low_stack - - h0 = r0lowx0 + sr1lowx6 - sr2lowx6 = sr2low * x6 - r2high = r2high_stack - - x2 += y0 - r1highx0 = r1high * x0 - sr3low = sr3low_stack - - h1 = r0highx0 + sr1highx6 - sr2highx6 = sr2high * x6 - sr3high = sr3high_stack - - x4 += x5 - r2lowx0 = r2low * x0 - - h2 = r1lowx0 + sr2lowx6 - sr3lowx6 = sr3low * x6 - - x2 += x3 - r2highx0 = r2high * x0 - - h3 = r1highx0 + sr2highx6 - sr3highx6 = sr3high * x6 - - r1highx4 = r1high * x4 - - h4 = r2lowx0 + sr3lowx6 - r1lowx4 = r1low * x4 - - r0highx4 = r0high * x4 - - h5 = r2highx0 + sr3highx6 - r0lowx4 = r0low * x4 - - h7 += r1highx4 - sr3highx4 = sr3high * x4 - - h6 += r1lowx4 - sr3lowx4 = sr3low * x4 - - h5 += r0highx4 - sr2highx4 = sr2high * x4 - - h4 += r0lowx4 - sr2lowx4 = sr2low * x4 - - h3 += sr3highx4 - r0lowx2 = r0low * x2 - - h2 += sr3lowx4 - r0highx2 = r0high * x2 - - h1 += sr2highx4 - r1lowx2 = r1low * x2 - - h0 += sr2lowx4 - r1highx2 = r1high * x2 - - h2 += r0lowx2 - r2lowx2 = r2low * x2 - - h3 += r0highx2 - r2highx2 = r2high * x2 - - h4 += r1lowx2 - sr3lowx2 = sr3low * x2 - - h5 += r1highx2 - sr3highx2 = sr3high * x2 - - h6 += r2lowx2 - - h7 += r2highx2 - - h0 += sr3lowx2 - - h1 += sr3highx2 - -addatmost15bytes: - - if l == 0 { - goto nomorebytes - } - - lbelow2 = l - 2 - - lbelow3 = l - 3 - - lbelow2 >>= 31 - lbelow4 = l - 4 - - m00 = uint32(m[p+0]) - lbelow3 >>= 31 - p += lbelow2 - - m01 = uint32(m[p+1]) - lbelow4 >>= 31 - p += lbelow3 - - m02 = uint32(m[p+2]) - p += lbelow4 - m0 = 2151 - - m03 = uint32(m[p+3]) - m0 <<= 51 - m1 = 2215 - - m0 += int64(m00) - m01 &^= uint32(lbelow2) - - m02 &^= uint32(lbelow3) - m01 -= uint32(lbelow2) - - m01 <<= 8 - m03 &^= uint32(lbelow4) - - m0 += int64(m01) - lbelow2 -= lbelow3 - - m02 += uint32(lbelow2) - lbelow3 -= lbelow4 - - m02 <<= 16 - m03 += uint32(lbelow3) - - m03 <<= 24 - m0 += int64(m02) - - m0 += int64(m03) - lbelow5 = l - 5 - - lbelow6 = l - 6 - lbelow7 = l - 7 - - lbelow5 >>= 31 - lbelow8 = l - 8 - - lbelow6 >>= 31 - p += lbelow5 - - m10 = uint32(m[p+4]) - lbelow7 >>= 31 - p += lbelow6 - - m11 = uint32(m[p+5]) - lbelow8 >>= 31 - p += lbelow7 - - m12 = uint32(m[p+6]) - m1 <<= 51 - p += lbelow8 - - m13 = uint32(m[p+7]) - m10 &^= uint32(lbelow5) - lbelow4 -= lbelow5 - - m10 += uint32(lbelow4) - lbelow5 -= lbelow6 - - m11 &^= uint32(lbelow6) - m11 += uint32(lbelow5) - - m11 <<= 8 - m1 += int64(m10) - - m1 += int64(m11) - m12 &^= uint32(lbelow7) - - lbelow6 -= lbelow7 - m13 &^= uint32(lbelow8) - - m12 += uint32(lbelow6) - lbelow7 -= lbelow8 - - m12 <<= 16 - m13 += uint32(lbelow7) - - m13 <<= 24 - m1 += int64(m12) - - m1 += int64(m13) - m2 = 2279 - - lbelow9 = l - 9 - m3 = 2343 - - lbelow10 = l - 10 - lbelow11 = l - 11 - - lbelow9 >>= 31 - lbelow12 = l - 12 - - lbelow10 >>= 31 - p += lbelow9 - - m20 = uint32(m[p+8]) - lbelow11 >>= 31 - p += lbelow10 - - m21 = uint32(m[p+9]) - lbelow12 >>= 31 - p += lbelow11 - - m22 = uint32(m[p+10]) - m2 <<= 51 - p += lbelow12 - - m23 = uint32(m[p+11]) - m20 &^= uint32(lbelow9) - lbelow8 -= lbelow9 - - m20 += uint32(lbelow8) - lbelow9 -= lbelow10 - - m21 &^= uint32(lbelow10) - m21 += uint32(lbelow9) - - m21 <<= 8 - m2 += int64(m20) - - m2 += int64(m21) - m22 &^= uint32(lbelow11) - - lbelow10 -= lbelow11 - m23 &^= uint32(lbelow12) - - m22 += uint32(lbelow10) - lbelow11 -= lbelow12 - - m22 <<= 16 - m23 += uint32(lbelow11) - - m23 <<= 24 - m2 += int64(m22) - - m3 <<= 51 - lbelow13 = l - 13 - - lbelow13 >>= 31 - lbelow14 = l - 14 - - lbelow14 >>= 31 - p += lbelow13 - lbelow15 = l - 15 - - m30 = uint32(m[p+12]) - lbelow15 >>= 31 - p += lbelow14 - - m31 = uint32(m[p+13]) - p += lbelow15 - m2 += int64(m23) - - m32 = uint32(m[p+14]) - m30 &^= uint32(lbelow13) - lbelow12 -= lbelow13 - - m30 += uint32(lbelow12) - lbelow13 -= lbelow14 - - m3 += int64(m30) - m31 &^= uint32(lbelow14) - - m31 += uint32(lbelow13) - m32 &^= uint32(lbelow15) - - m31 <<= 8 - lbelow14 -= lbelow15 - - m3 += int64(m31) - m32 += uint32(lbelow14) - d0 = m0 - - m32 <<= 16 - m33 = uint64(lbelow15 + 1) - d1 = m1 - - m33 <<= 24 - m3 += int64(m32) - d2 = m2 - - m3 += int64(m33) - d3 = m3 - - z3 = math.Float64frombits(uint64(d3)) - - z2 = math.Float64frombits(uint64(d2)) - - z1 = math.Float64frombits(uint64(d1)) - - z0 = math.Float64frombits(uint64(d0)) - - z3 -= alpha96 - - z2 -= alpha64 - - z1 -= alpha32 - - z0 -= alpha0 - - h5 += z3 - - h3 += z2 - - h1 += z1 - - h0 += z0 - - y7 = h7 + alpha130 - - y6 = h6 + alpha130 - - y1 = h1 + alpha32 - - y0 = h0 + alpha32 - - y7 -= alpha130 - - y6 -= alpha130 - - y1 -= alpha32 - - y0 -= alpha32 - - y5 = h5 + alpha96 - - y4 = h4 + alpha96 - - x7 = h7 - y7 - y7 *= scale - - x6 = h6 - y6 - y6 *= scale - - x1 = h1 - y1 - - x0 = h0 - y0 - - y5 -= alpha96 - - y4 -= alpha96 - - x1 += y7 - - x0 += y6 - - x7 += y5 - - x6 += y4 - - y3 = h3 + alpha64 - - y2 = h2 + alpha64 - - x0 += x1 - - x6 += x7 - - y3 -= alpha64 - r3low = r3low_stack - - y2 -= alpha64 - r0low = r0low_stack - - x5 = h5 - y5 - r3lowx0 = r3low * x0 - r3high = r3high_stack - - x4 = h4 - y4 - r0lowx6 = r0low * x6 - r0high = r0high_stack - - x3 = h3 - y3 - r3highx0 = r3high * x0 - sr1low = sr1low_stack - - x2 = h2 - y2 - r0highx6 = r0high * x6 - sr1high = sr1high_stack - - x5 += y3 - r0lowx0 = r0low * x0 - r1low = r1low_stack - - h6 = r3lowx0 + r0lowx6 - sr1lowx6 = sr1low * x6 - r1high = r1high_stack - - x4 += y2 - r0highx0 = r0high * x0 - sr2low = sr2low_stack - - h7 = r3highx0 + r0highx6 - sr1highx6 = sr1high * x6 - sr2high = sr2high_stack - - x3 += y1 - r1lowx0 = r1low * x0 - r2low = r2low_stack - - h0 = r0lowx0 + sr1lowx6 - sr2lowx6 = sr2low * x6 - r2high = r2high_stack - - x2 += y0 - r1highx0 = r1high * x0 - sr3low = sr3low_stack - - h1 = r0highx0 + sr1highx6 - sr2highx6 = sr2high * x6 - sr3high = sr3high_stack - - x4 += x5 - r2lowx0 = r2low * x0 - - h2 = r1lowx0 + sr2lowx6 - sr3lowx6 = sr3low * x6 - - x2 += x3 - r2highx0 = r2high * x0 - - h3 = r1highx0 + sr2highx6 - sr3highx6 = sr3high * x6 - - r1highx4 = r1high * x4 - - h4 = r2lowx0 + sr3lowx6 - r1lowx4 = r1low * x4 - - r0highx4 = r0high * x4 - - h5 = r2highx0 + sr3highx6 - r0lowx4 = r0low * x4 - - h7 += r1highx4 - sr3highx4 = sr3high * x4 - - h6 += r1lowx4 - sr3lowx4 = sr3low * x4 - - h5 += r0highx4 - sr2highx4 = sr2high * x4 - - h4 += r0lowx4 - sr2lowx4 = sr2low * x4 - - h3 += sr3highx4 - r0lowx2 = r0low * x2 - - h2 += sr3lowx4 - r0highx2 = r0high * x2 - - h1 += sr2highx4 - r1lowx2 = r1low * x2 - - h0 += sr2lowx4 - r1highx2 = r1high * x2 - - h2 += r0lowx2 - r2lowx2 = r2low * x2 - - h3 += r0highx2 - r2highx2 = r2high * x2 - - h4 += r1lowx2 - sr3lowx2 = sr3low * x2 - - h5 += r1highx2 - sr3highx2 = sr3high * x2 - - h6 += r2lowx2 - - h7 += r2highx2 - - h0 += sr3lowx2 - - h1 += sr3highx2 - -nomorebytes: - - y7 = h7 + alpha130 - - y0 = h0 + alpha32 - - y1 = h1 + alpha32 - - y2 = h2 + alpha64 - - y7 -= alpha130 - - y3 = h3 + alpha64 - - y4 = h4 + alpha96 - - y5 = h5 + alpha96 - - x7 = h7 - y7 - y7 *= scale - - y0 -= alpha32 - - y1 -= alpha32 - - y2 -= alpha64 - - h6 += x7 - - y3 -= alpha64 - - y4 -= alpha96 - - y5 -= alpha96 - - y6 = h6 + alpha130 - - x0 = h0 - y0 - - x1 = h1 - y1 - - x2 = h2 - y2 - - y6 -= alpha130 - - x0 += y7 - - x3 = h3 - y3 - - x4 = h4 - y4 - - x5 = h5 - y5 - - x6 = h6 - y6 - - y6 *= scale - - x2 += y0 - - x3 += y1 - - x4 += y2 - - x0 += y6 - - x5 += y3 - - x6 += y4 - - x2 += x3 - - x0 += x1 - - x4 += x5 - - x6 += y5 - - x2 += offset1 - d1 = int64(math.Float64bits(x2)) - - x0 += offset0 - d0 = int64(math.Float64bits(x0)) - - x4 += offset2 - d2 = int64(math.Float64bits(x4)) - - x6 += offset3 - d3 = int64(math.Float64bits(x6)) - - f0 = uint64(d0) - - f1 = uint64(d1) - bits32 = math.MaxUint64 - - f2 = uint64(d2) - bits32 >>= 32 - - f3 = uint64(d3) - f = f0 >> 32 - - f0 &= bits32 - f &= 255 - - f1 += f - g0 = f0 + 5 - - g = g0 >> 32 - g0 &= bits32 - - f = f1 >> 32 - f1 &= bits32 - - f &= 255 - g1 = f1 + g - - g = g1 >> 32 - f2 += f - - f = f2 >> 32 - g1 &= bits32 - - f2 &= bits32 - f &= 255 - - f3 += f - g2 = f2 + g - - g = g2 >> 32 - g2 &= bits32 - - f4 = f3 >> 32 - f3 &= bits32 - - f4 &= 255 - g3 = f3 + g - - g = g3 >> 32 - g3 &= bits32 - - g4 = f4 + g - - g4 = g4 - 4 - s00 = uint32(s[0]) - - f = uint64(int64(g4) >> 63) - s01 = uint32(s[1]) - - f0 &= f - g0 &^= f - s02 = uint32(s[2]) - - f1 &= f - f0 |= g0 - s03 = uint32(s[3]) - - g1 &^= f - f2 &= f - s10 = uint32(s[4]) - - f3 &= f - g2 &^= f - s11 = uint32(s[5]) - - g3 &^= f - f1 |= g1 - s12 = uint32(s[6]) - - f2 |= g2 - f3 |= g3 - s13 = uint32(s[7]) - - s01 <<= 8 - f0 += uint64(s00) - s20 = uint32(s[8]) - - s02 <<= 16 - f0 += uint64(s01) - s21 = uint32(s[9]) - - s03 <<= 24 - f0 += uint64(s02) - s22 = uint32(s[10]) - - s11 <<= 8 - f1 += uint64(s10) - s23 = uint32(s[11]) - - s12 <<= 16 - f1 += uint64(s11) - s30 = uint32(s[12]) - - s13 <<= 24 - f1 += uint64(s12) - s31 = uint32(s[13]) - - f0 += uint64(s03) - f1 += uint64(s13) - s32 = uint32(s[14]) - - s21 <<= 8 - f2 += uint64(s20) - s33 = uint32(s[15]) - - s22 <<= 16 - f2 += uint64(s21) - - s23 <<= 24 - f2 += uint64(s22) - - s31 <<= 8 - f3 += uint64(s30) - - s32 <<= 16 - f3 += uint64(s31) - - s33 <<= 24 - f3 += uint64(s32) - - f2 += uint64(s23) - f3 += uint64(s33) - - out[0] = byte(f0) - f0 >>= 8 - out[1] = byte(f0) - f0 >>= 8 - out[2] = byte(f0) - f0 >>= 8 - out[3] = byte(f0) - f0 >>= 8 - f1 += f0 - - out[4] = byte(f1) - f1 >>= 8 - out[5] = byte(f1) - f1 >>= 8 - out[6] = byte(f1) - f1 >>= 8 - out[7] = byte(f1) - f1 >>= 8 - f2 += f1 - - out[8] = byte(f2) - f2 >>= 8 - out[9] = byte(f2) - f2 >>= 8 - out[10] = byte(f2) - f2 >>= 8 - out[11] = byte(f2) - f2 >>= 8 - f3 += f2 - - out[12] = byte(f3) - f3 >>= 8 - out[13] = byte(f3) - f3 >>= 8 - out[14] = byte(f3) - f3 >>= 8 - out[15] = byte(f3) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ripemd160/ripemd160.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ripemd160/ripemd160.go deleted file mode 100644 index da690f0b..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ripemd160/ripemd160.go +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2010 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 ripemd160 implements the RIPEMD-160 hash algorithm. -package ripemd160 - -// RIPEMD-160 is designed by by Hans Dobbertin, Antoon Bosselaers, and Bart -// Preneel with specifications available at: -// http://homes.esat.kuleuven.be/~cosicart/pdf/AB-9601/AB-9601.pdf. - -import ( - "crypto" - "hash" -) - -func init() { - crypto.RegisterHash(crypto.RIPEMD160, New) -} - -// The size of the checksum in bytes. -const Size = 20 - -// The block size of the hash algorithm in bytes. -const BlockSize = 64 - -const ( - _s0 = 0x67452301 - _s1 = 0xefcdab89 - _s2 = 0x98badcfe - _s3 = 0x10325476 - _s4 = 0xc3d2e1f0 -) - -// digest represents the partial evaluation of a checksum. -type digest struct { - s [5]uint32 // running context - x [BlockSize]byte // temporary buffer - nx int // index into x - tc uint64 // total count of bytes processed -} - -func (d *digest) Reset() { - d.s[0], d.s[1], d.s[2], d.s[3], d.s[4] = _s0, _s1, _s2, _s3, _s4 - d.nx = 0 - d.tc = 0 -} - -// New returns a new hash.Hash computing the checksum. -func New() hash.Hash { - result := new(digest) - result.Reset() - return result -} - -func (d *digest) Size() int { return Size } - -func (d *digest) BlockSize() int { return BlockSize } - -func (d *digest) Write(p []byte) (nn int, err error) { - nn = len(p) - d.tc += uint64(nn) - if d.nx > 0 { - n := len(p) - if n > BlockSize-d.nx { - n = BlockSize - d.nx - } - for i := 0; i < n; i++ { - d.x[d.nx+i] = p[i] - } - d.nx += n - if d.nx == BlockSize { - _Block(d, d.x[0:]) - d.nx = 0 - } - p = p[n:] - } - n := _Block(d, p) - p = p[n:] - if len(p) > 0 { - d.nx = copy(d.x[:], p) - } - return -} - -func (d0 *digest) Sum(in []byte) []byte { - // Make a copy of d0 so that caller can keep writing and summing. - d := *d0 - - // Padding. Add a 1 bit and 0 bits until 56 bytes mod 64. - tc := d.tc - var tmp [64]byte - tmp[0] = 0x80 - if tc%64 < 56 { - d.Write(tmp[0 : 56-tc%64]) - } else { - d.Write(tmp[0 : 64+56-tc%64]) - } - - // Length in bits. - tc <<= 3 - for i := uint(0); i < 8; i++ { - tmp[i] = byte(tc >> (8 * i)) - } - d.Write(tmp[0:8]) - - if d.nx != 0 { - panic("d.nx != 0") - } - - var digest [Size]byte - for i, s := range d.s { - digest[i*4] = byte(s) - digest[i*4+1] = byte(s >> 8) - digest[i*4+2] = byte(s >> 16) - digest[i*4+3] = byte(s >> 24) - } - - return append(in, digest[:]...) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ripemd160/ripemd160_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ripemd160/ripemd160_test.go deleted file mode 100644 index 5df1b259..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ripemd160/ripemd160_test.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2010 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 ripemd160 - -// Test vectors are from: -// http://homes.esat.kuleuven.be/~bosselae/ripemd160.html - -import ( - "fmt" - "io" - "testing" -) - -type mdTest struct { - out string - in string -} - -var vectors = [...]mdTest{ - {"9c1185a5c5e9fc54612808977ee8f548b2258d31", ""}, - {"0bdc9d2d256b3ee9daae347be6f4dc835a467ffe", "a"}, - {"8eb208f7e05d987a9b044a8e98c6b087f15a0bfc", "abc"}, - {"5d0689ef49d2fae572b881b123a85ffa21595f36", "message digest"}, - {"f71c27109c692c1b56bbdceb5b9d2865b3708dbc", "abcdefghijklmnopqrstuvwxyz"}, - {"12a053384a9c0c88e405a06c27dcf49ada62eb2b", "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"}, - {"b0e20b6e3116640286ed3a87a5713079b21f5189", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"}, - {"9b752e45573d4b39f4dbd3323cab82bf63326bfb", "12345678901234567890123456789012345678901234567890123456789012345678901234567890"}, -} - -func TestVectors(t *testing.T) { - for i := 0; i < len(vectors); i++ { - tv := vectors[i] - md := New() - for j := 0; j < 3; j++ { - if j < 2 { - io.WriteString(md, tv.in) - } else { - io.WriteString(md, tv.in[0:len(tv.in)/2]) - md.Sum(nil) - io.WriteString(md, tv.in[len(tv.in)/2:]) - } - s := fmt.Sprintf("%x", md.Sum(nil)) - if s != tv.out { - t.Fatalf("RIPEMD-160[%d](%s) = %s, expected %s", j, tv.in, s, tv.out) - } - md.Reset() - } - } -} - -func TestMillionA(t *testing.T) { - md := New() - for i := 0; i < 100000; i++ { - io.WriteString(md, "aaaaaaaaaa") - } - out := "52783243c1697bdbe16d37f97f68f08325dc1528" - s := fmt.Sprintf("%x", md.Sum(nil)) - if s != out { - t.Fatalf("RIPEMD-160 (1 million 'a') = %s, expected %s", s, out) - } - md.Reset() -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ripemd160/ripemd160block.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ripemd160/ripemd160block.go deleted file mode 100644 index 7bc8e6c4..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ripemd160/ripemd160block.go +++ /dev/null @@ -1,161 +0,0 @@ -// Copyright 2010 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. - -// RIPEMD-160 block step. -// In its own file so that a faster assembly or C version -// can be substituted easily. - -package ripemd160 - -// work buffer indices and roll amounts for one line -var _n = [80]uint{ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, - 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, - 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, - 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13, -} - -var _r = [80]uint{ - 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, - 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, - 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, - 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, - 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6, -} - -// same for the other parallel one -var n_ = [80]uint{ - 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, - 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, - 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, - 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, - 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11, -} - -var r_ = [80]uint{ - 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, - 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, - 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, - 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, - 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11, -} - -func _Block(md *digest, p []byte) int { - n := 0 - var x [16]uint32 - var alpha, beta uint32 - for len(p) >= BlockSize { - a, b, c, d, e := md.s[0], md.s[1], md.s[2], md.s[3], md.s[4] - aa, bb, cc, dd, ee := a, b, c, d, e - j := 0 - for i := 0; i < 16; i++ { - x[i] = uint32(p[j]) | uint32(p[j+1])<<8 | uint32(p[j+2])<<16 | uint32(p[j+3])<<24 - j += 4 - } - - // round 1 - i := 0 - for i < 16 { - alpha = a + (b ^ c ^ d) + x[_n[i]] - s := _r[i] - alpha = (alpha<<s | alpha>>(32-s)) + e - beta = c<<10 | c>>22 - a, b, c, d, e = e, alpha, b, beta, d - - // parallel line - alpha = aa + (bb ^ (cc | ^dd)) + x[n_[i]] + 0x50a28be6 - s = r_[i] - alpha = (alpha<<s | alpha>>(32-s)) + ee - beta = cc<<10 | cc>>22 - aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd - - i++ - } - - // round 2 - for i < 32 { - alpha = a + (b&c | ^b&d) + x[_n[i]] + 0x5a827999 - s := _r[i] - alpha = (alpha<<s | alpha>>(32-s)) + e - beta = c<<10 | c>>22 - a, b, c, d, e = e, alpha, b, beta, d - - // parallel line - alpha = aa + (bb&dd | cc&^dd) + x[n_[i]] + 0x5c4dd124 - s = r_[i] - alpha = (alpha<<s | alpha>>(32-s)) + ee - beta = cc<<10 | cc>>22 - aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd - - i++ - } - - // round 3 - for i < 48 { - alpha = a + (b | ^c ^ d) + x[_n[i]] + 0x6ed9eba1 - s := _r[i] - alpha = (alpha<<s | alpha>>(32-s)) + e - beta = c<<10 | c>>22 - a, b, c, d, e = e, alpha, b, beta, d - - // parallel line - alpha = aa + (bb | ^cc ^ dd) + x[n_[i]] + 0x6d703ef3 - s = r_[i] - alpha = (alpha<<s | alpha>>(32-s)) + ee - beta = cc<<10 | cc>>22 - aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd - - i++ - } - - // round 4 - for i < 64 { - alpha = a + (b&d | c&^d) + x[_n[i]] + 0x8f1bbcdc - s := _r[i] - alpha = (alpha<<s | alpha>>(32-s)) + e - beta = c<<10 | c>>22 - a, b, c, d, e = e, alpha, b, beta, d - - // parallel line - alpha = aa + (bb&cc | ^bb&dd) + x[n_[i]] + 0x7a6d76e9 - s = r_[i] - alpha = (alpha<<s | alpha>>(32-s)) + ee - beta = cc<<10 | cc>>22 - aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd - - i++ - } - - // round 5 - for i < 80 { - alpha = a + (b ^ (c | ^d)) + x[_n[i]] + 0xa953fd4e - s := _r[i] - alpha = (alpha<<s | alpha>>(32-s)) + e - beta = c<<10 | c>>22 - a, b, c, d, e = e, alpha, b, beta, d - - // parallel line - alpha = aa + (bb ^ cc ^ dd) + x[n_[i]] - s = r_[i] - alpha = (alpha<<s | alpha>>(32-s)) + ee - beta = cc<<10 | cc>>22 - aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd - - i++ - } - - // combine results - dd += c + md.s[1] - md.s[1] = md.s[2] + d + ee - md.s[2] = md.s[3] + e + aa - md.s[3] = md.s[4] + a + bb - md.s[4] = md.s[0] + b + cc - md.s[0] = dd - - p = p[BlockSize:] - n += BlockSize - } - return n -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/hsalsa20.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/hsalsa20.go deleted file mode 100644 index 4ba47d59..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/hsalsa20.go +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright 2012 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 salsa provides low-level access to functions in the Salsa family. -package salsa - -// Sigma is the Salsa20 constant for 256-bit keys. -var Sigma = [16]byte{'e', 'x', 'p', 'a', 'n', 'd', ' ', '3', '2', '-', 'b', 'y', 't', 'e', ' ', 'k'} - -// HSalsa20 applies the HSalsa20 core function to a 16-byte input in, 32-byte -// key k, and 16-byte constant c, and puts the result into the 32-byte array -// out. -func HSalsa20(out *[32]byte, in *[16]byte, k *[32]byte, c *[16]byte) { - x0 := uint32(c[0]) | uint32(c[1])<<8 | uint32(c[2])<<16 | uint32(c[3])<<24 - x1 := uint32(k[0]) | uint32(k[1])<<8 | uint32(k[2])<<16 | uint32(k[3])<<24 - x2 := uint32(k[4]) | uint32(k[5])<<8 | uint32(k[6])<<16 | uint32(k[7])<<24 - x3 := uint32(k[8]) | uint32(k[9])<<8 | uint32(k[10])<<16 | uint32(k[11])<<24 - x4 := uint32(k[12]) | uint32(k[13])<<8 | uint32(k[14])<<16 | uint32(k[15])<<24 - x5 := uint32(c[4]) | uint32(c[5])<<8 | uint32(c[6])<<16 | uint32(c[7])<<24 - x6 := uint32(in[0]) | uint32(in[1])<<8 | uint32(in[2])<<16 | uint32(in[3])<<24 - x7 := uint32(in[4]) | uint32(in[5])<<8 | uint32(in[6])<<16 | uint32(in[7])<<24 - x8 := uint32(in[8]) | uint32(in[9])<<8 | uint32(in[10])<<16 | uint32(in[11])<<24 - x9 := uint32(in[12]) | uint32(in[13])<<8 | uint32(in[14])<<16 | uint32(in[15])<<24 - x10 := uint32(c[8]) | uint32(c[9])<<8 | uint32(c[10])<<16 | uint32(c[11])<<24 - x11 := uint32(k[16]) | uint32(k[17])<<8 | uint32(k[18])<<16 | uint32(k[19])<<24 - x12 := uint32(k[20]) | uint32(k[21])<<8 | uint32(k[22])<<16 | uint32(k[23])<<24 - x13 := uint32(k[24]) | uint32(k[25])<<8 | uint32(k[26])<<16 | uint32(k[27])<<24 - x14 := uint32(k[28]) | uint32(k[29])<<8 | uint32(k[30])<<16 | uint32(k[31])<<24 - x15 := uint32(c[12]) | uint32(c[13])<<8 | uint32(c[14])<<16 | uint32(c[15])<<24 - - for i := 0; i < 20; i += 2 { - u := x0 + x12 - x4 ^= u<<7 | u>>(32-7) - u = x4 + x0 - x8 ^= u<<9 | u>>(32-9) - u = x8 + x4 - x12 ^= u<<13 | u>>(32-13) - u = x12 + x8 - x0 ^= u<<18 | u>>(32-18) - - u = x5 + x1 - x9 ^= u<<7 | u>>(32-7) - u = x9 + x5 - x13 ^= u<<9 | u>>(32-9) - u = x13 + x9 - x1 ^= u<<13 | u>>(32-13) - u = x1 + x13 - x5 ^= u<<18 | u>>(32-18) - - u = x10 + x6 - x14 ^= u<<7 | u>>(32-7) - u = x14 + x10 - x2 ^= u<<9 | u>>(32-9) - u = x2 + x14 - x6 ^= u<<13 | u>>(32-13) - u = x6 + x2 - x10 ^= u<<18 | u>>(32-18) - - u = x15 + x11 - x3 ^= u<<7 | u>>(32-7) - u = x3 + x15 - x7 ^= u<<9 | u>>(32-9) - u = x7 + x3 - x11 ^= u<<13 | u>>(32-13) - u = x11 + x7 - x15 ^= u<<18 | u>>(32-18) - - u = x0 + x3 - x1 ^= u<<7 | u>>(32-7) - u = x1 + x0 - x2 ^= u<<9 | u>>(32-9) - u = x2 + x1 - x3 ^= u<<13 | u>>(32-13) - u = x3 + x2 - x0 ^= u<<18 | u>>(32-18) - - u = x5 + x4 - x6 ^= u<<7 | u>>(32-7) - u = x6 + x5 - x7 ^= u<<9 | u>>(32-9) - u = x7 + x6 - x4 ^= u<<13 | u>>(32-13) - u = x4 + x7 - x5 ^= u<<18 | u>>(32-18) - - u = x10 + x9 - x11 ^= u<<7 | u>>(32-7) - u = x11 + x10 - x8 ^= u<<9 | u>>(32-9) - u = x8 + x11 - x9 ^= u<<13 | u>>(32-13) - u = x9 + x8 - x10 ^= u<<18 | u>>(32-18) - - u = x15 + x14 - x12 ^= u<<7 | u>>(32-7) - u = x12 + x15 - x13 ^= u<<9 | u>>(32-9) - u = x13 + x12 - x14 ^= u<<13 | u>>(32-13) - u = x14 + x13 - x15 ^= u<<18 | u>>(32-18) - } - out[0] = byte(x0) - out[1] = byte(x0 >> 8) - out[2] = byte(x0 >> 16) - out[3] = byte(x0 >> 24) - - out[4] = byte(x5) - out[5] = byte(x5 >> 8) - out[6] = byte(x5 >> 16) - out[7] = byte(x5 >> 24) - - out[8] = byte(x10) - out[9] = byte(x10 >> 8) - out[10] = byte(x10 >> 16) - out[11] = byte(x10 >> 24) - - out[12] = byte(x15) - out[13] = byte(x15 >> 8) - out[14] = byte(x15 >> 16) - out[15] = byte(x15 >> 24) - - out[16] = byte(x6) - out[17] = byte(x6 >> 8) - out[18] = byte(x6 >> 16) - out[19] = byte(x6 >> 24) - - out[20] = byte(x7) - out[21] = byte(x7 >> 8) - out[22] = byte(x7 >> 16) - out[23] = byte(x7 >> 24) - - out[24] = byte(x8) - out[25] = byte(x8 >> 8) - out[26] = byte(x8 >> 16) - out[27] = byte(x8 >> 24) - - out[28] = byte(x9) - out[29] = byte(x9 >> 8) - out[30] = byte(x9 >> 16) - out[31] = byte(x9 >> 24) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa2020_amd64.s b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa2020_amd64.s deleted file mode 100644 index 6e1df963..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa2020_amd64.s +++ /dev/null @@ -1,902 +0,0 @@ -// Copyright 2012 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 amd64,!appengine,!gccgo - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// func salsa2020XORKeyStream(out, in *byte, n uint64, nonce, key *byte) -TEXT ·salsa2020XORKeyStream(SB),0,$512-40 - MOVQ out+0(FP),DI - MOVQ in+8(FP),SI - MOVQ n+16(FP),DX - MOVQ nonce+24(FP),CX - MOVQ key+32(FP),R8 - - MOVQ SP,R11 - MOVQ $31,R9 - NOTQ R9 - ANDQ R9,SP - ADDQ $32,SP - - MOVQ R11,352(SP) - MOVQ R12,360(SP) - MOVQ R13,368(SP) - MOVQ R14,376(SP) - MOVQ R15,384(SP) - MOVQ BX,392(SP) - MOVQ BP,400(SP) - MOVQ DX,R9 - MOVQ CX,DX - MOVQ R8,R10 - CMPQ R9,$0 - JBE DONE - START: - MOVL 20(R10),CX - MOVL 0(R10),R8 - MOVL 0(DX),AX - MOVL 16(R10),R11 - MOVL CX,0(SP) - MOVL R8, 4 (SP) - MOVL AX, 8 (SP) - MOVL R11, 12 (SP) - MOVL 8(DX),CX - MOVL 24(R10),R8 - MOVL 4(R10),AX - MOVL 4(DX),R11 - MOVL CX,16(SP) - MOVL R8, 20 (SP) - MOVL AX, 24 (SP) - MOVL R11, 28 (SP) - MOVL 12(DX),CX - MOVL 12(R10),DX - MOVL 28(R10),R8 - MOVL 8(R10),AX - MOVL DX,32(SP) - MOVL CX, 36 (SP) - MOVL R8, 40 (SP) - MOVL AX, 44 (SP) - MOVQ $1634760805,DX - MOVQ $857760878,CX - MOVQ $2036477234,R8 - MOVQ $1797285236,AX - MOVL DX,48(SP) - MOVL CX, 52 (SP) - MOVL R8, 56 (SP) - MOVL AX, 60 (SP) - CMPQ R9,$256 - JB BYTESBETWEEN1AND255 - MOVOA 48(SP),X0 - PSHUFL $0X55,X0,X1 - PSHUFL $0XAA,X0,X2 - PSHUFL $0XFF,X0,X3 - PSHUFL $0X00,X0,X0 - MOVOA X1,64(SP) - MOVOA X2,80(SP) - MOVOA X3,96(SP) - MOVOA X0,112(SP) - MOVOA 0(SP),X0 - PSHUFL $0XAA,X0,X1 - PSHUFL $0XFF,X0,X2 - PSHUFL $0X00,X0,X3 - PSHUFL $0X55,X0,X0 - MOVOA X1,128(SP) - MOVOA X2,144(SP) - MOVOA X3,160(SP) - MOVOA X0,176(SP) - MOVOA 16(SP),X0 - PSHUFL $0XFF,X0,X1 - PSHUFL $0X55,X0,X2 - PSHUFL $0XAA,X0,X0 - MOVOA X1,192(SP) - MOVOA X2,208(SP) - MOVOA X0,224(SP) - MOVOA 32(SP),X0 - PSHUFL $0X00,X0,X1 - PSHUFL $0XAA,X0,X2 - PSHUFL $0XFF,X0,X0 - MOVOA X1,240(SP) - MOVOA X2,256(SP) - MOVOA X0,272(SP) - BYTESATLEAST256: - MOVL 16(SP),DX - MOVL 36 (SP),CX - MOVL DX,288(SP) - MOVL CX,304(SP) - ADDQ $1,DX - SHLQ $32,CX - ADDQ CX,DX - MOVQ DX,CX - SHRQ $32,CX - MOVL DX, 292 (SP) - MOVL CX, 308 (SP) - ADDQ $1,DX - SHLQ $32,CX - ADDQ CX,DX - MOVQ DX,CX - SHRQ $32,CX - MOVL DX, 296 (SP) - MOVL CX, 312 (SP) - ADDQ $1,DX - SHLQ $32,CX - ADDQ CX,DX - MOVQ DX,CX - SHRQ $32,CX - MOVL DX, 300 (SP) - MOVL CX, 316 (SP) - ADDQ $1,DX - SHLQ $32,CX - ADDQ CX,DX - MOVQ DX,CX - SHRQ $32,CX - MOVL DX,16(SP) - MOVL CX, 36 (SP) - MOVQ R9,408(SP) - MOVQ $20,DX - MOVOA 64(SP),X0 - MOVOA 80(SP),X1 - MOVOA 96(SP),X2 - MOVOA 256(SP),X3 - MOVOA 272(SP),X4 - MOVOA 128(SP),X5 - MOVOA 144(SP),X6 - MOVOA 176(SP),X7 - MOVOA 192(SP),X8 - MOVOA 208(SP),X9 - MOVOA 224(SP),X10 - MOVOA 304(SP),X11 - MOVOA 112(SP),X12 - MOVOA 160(SP),X13 - MOVOA 240(SP),X14 - MOVOA 288(SP),X15 - MAINLOOP1: - MOVOA X1,320(SP) - MOVOA X2,336(SP) - MOVOA X13,X1 - PADDL X12,X1 - MOVOA X1,X2 - PSLLL $7,X1 - PXOR X1,X14 - PSRLL $25,X2 - PXOR X2,X14 - MOVOA X7,X1 - PADDL X0,X1 - MOVOA X1,X2 - PSLLL $7,X1 - PXOR X1,X11 - PSRLL $25,X2 - PXOR X2,X11 - MOVOA X12,X1 - PADDL X14,X1 - MOVOA X1,X2 - PSLLL $9,X1 - PXOR X1,X15 - PSRLL $23,X2 - PXOR X2,X15 - MOVOA X0,X1 - PADDL X11,X1 - MOVOA X1,X2 - PSLLL $9,X1 - PXOR X1,X9 - PSRLL $23,X2 - PXOR X2,X9 - MOVOA X14,X1 - PADDL X15,X1 - MOVOA X1,X2 - PSLLL $13,X1 - PXOR X1,X13 - PSRLL $19,X2 - PXOR X2,X13 - MOVOA X11,X1 - PADDL X9,X1 - MOVOA X1,X2 - PSLLL $13,X1 - PXOR X1,X7 - PSRLL $19,X2 - PXOR X2,X7 - MOVOA X15,X1 - PADDL X13,X1 - MOVOA X1,X2 - PSLLL $18,X1 - PXOR X1,X12 - PSRLL $14,X2 - PXOR X2,X12 - MOVOA 320(SP),X1 - MOVOA X12,320(SP) - MOVOA X9,X2 - PADDL X7,X2 - MOVOA X2,X12 - PSLLL $18,X2 - PXOR X2,X0 - PSRLL $14,X12 - PXOR X12,X0 - MOVOA X5,X2 - PADDL X1,X2 - MOVOA X2,X12 - PSLLL $7,X2 - PXOR X2,X3 - PSRLL $25,X12 - PXOR X12,X3 - MOVOA 336(SP),X2 - MOVOA X0,336(SP) - MOVOA X6,X0 - PADDL X2,X0 - MOVOA X0,X12 - PSLLL $7,X0 - PXOR X0,X4 - PSRLL $25,X12 - PXOR X12,X4 - MOVOA X1,X0 - PADDL X3,X0 - MOVOA X0,X12 - PSLLL $9,X0 - PXOR X0,X10 - PSRLL $23,X12 - PXOR X12,X10 - MOVOA X2,X0 - PADDL X4,X0 - MOVOA X0,X12 - PSLLL $9,X0 - PXOR X0,X8 - PSRLL $23,X12 - PXOR X12,X8 - MOVOA X3,X0 - PADDL X10,X0 - MOVOA X0,X12 - PSLLL $13,X0 - PXOR X0,X5 - PSRLL $19,X12 - PXOR X12,X5 - MOVOA X4,X0 - PADDL X8,X0 - MOVOA X0,X12 - PSLLL $13,X0 - PXOR X0,X6 - PSRLL $19,X12 - PXOR X12,X6 - MOVOA X10,X0 - PADDL X5,X0 - MOVOA X0,X12 - PSLLL $18,X0 - PXOR X0,X1 - PSRLL $14,X12 - PXOR X12,X1 - MOVOA 320(SP),X0 - MOVOA X1,320(SP) - MOVOA X4,X1 - PADDL X0,X1 - MOVOA X1,X12 - PSLLL $7,X1 - PXOR X1,X7 - PSRLL $25,X12 - PXOR X12,X7 - MOVOA X8,X1 - PADDL X6,X1 - MOVOA X1,X12 - PSLLL $18,X1 - PXOR X1,X2 - PSRLL $14,X12 - PXOR X12,X2 - MOVOA 336(SP),X12 - MOVOA X2,336(SP) - MOVOA X14,X1 - PADDL X12,X1 - MOVOA X1,X2 - PSLLL $7,X1 - PXOR X1,X5 - PSRLL $25,X2 - PXOR X2,X5 - MOVOA X0,X1 - PADDL X7,X1 - MOVOA X1,X2 - PSLLL $9,X1 - PXOR X1,X10 - PSRLL $23,X2 - PXOR X2,X10 - MOVOA X12,X1 - PADDL X5,X1 - MOVOA X1,X2 - PSLLL $9,X1 - PXOR X1,X8 - PSRLL $23,X2 - PXOR X2,X8 - MOVOA X7,X1 - PADDL X10,X1 - MOVOA X1,X2 - PSLLL $13,X1 - PXOR X1,X4 - PSRLL $19,X2 - PXOR X2,X4 - MOVOA X5,X1 - PADDL X8,X1 - MOVOA X1,X2 - PSLLL $13,X1 - PXOR X1,X14 - PSRLL $19,X2 - PXOR X2,X14 - MOVOA X10,X1 - PADDL X4,X1 - MOVOA X1,X2 - PSLLL $18,X1 - PXOR X1,X0 - PSRLL $14,X2 - PXOR X2,X0 - MOVOA 320(SP),X1 - MOVOA X0,320(SP) - MOVOA X8,X0 - PADDL X14,X0 - MOVOA X0,X2 - PSLLL $18,X0 - PXOR X0,X12 - PSRLL $14,X2 - PXOR X2,X12 - MOVOA X11,X0 - PADDL X1,X0 - MOVOA X0,X2 - PSLLL $7,X0 - PXOR X0,X6 - PSRLL $25,X2 - PXOR X2,X6 - MOVOA 336(SP),X2 - MOVOA X12,336(SP) - MOVOA X3,X0 - PADDL X2,X0 - MOVOA X0,X12 - PSLLL $7,X0 - PXOR X0,X13 - PSRLL $25,X12 - PXOR X12,X13 - MOVOA X1,X0 - PADDL X6,X0 - MOVOA X0,X12 - PSLLL $9,X0 - PXOR X0,X15 - PSRLL $23,X12 - PXOR X12,X15 - MOVOA X2,X0 - PADDL X13,X0 - MOVOA X0,X12 - PSLLL $9,X0 - PXOR X0,X9 - PSRLL $23,X12 - PXOR X12,X9 - MOVOA X6,X0 - PADDL X15,X0 - MOVOA X0,X12 - PSLLL $13,X0 - PXOR X0,X11 - PSRLL $19,X12 - PXOR X12,X11 - MOVOA X13,X0 - PADDL X9,X0 - MOVOA X0,X12 - PSLLL $13,X0 - PXOR X0,X3 - PSRLL $19,X12 - PXOR X12,X3 - MOVOA X15,X0 - PADDL X11,X0 - MOVOA X0,X12 - PSLLL $18,X0 - PXOR X0,X1 - PSRLL $14,X12 - PXOR X12,X1 - MOVOA X9,X0 - PADDL X3,X0 - MOVOA X0,X12 - PSLLL $18,X0 - PXOR X0,X2 - PSRLL $14,X12 - PXOR X12,X2 - MOVOA 320(SP),X12 - MOVOA 336(SP),X0 - SUBQ $2,DX - JA MAINLOOP1 - PADDL 112(SP),X12 - PADDL 176(SP),X7 - PADDL 224(SP),X10 - PADDL 272(SP),X4 - MOVD X12,DX - MOVD X7,CX - MOVD X10,R8 - MOVD X4,R9 - PSHUFL $0X39,X12,X12 - PSHUFL $0X39,X7,X7 - PSHUFL $0X39,X10,X10 - PSHUFL $0X39,X4,X4 - XORL 0(SI),DX - XORL 4(SI),CX - XORL 8(SI),R8 - XORL 12(SI),R9 - MOVL DX,0(DI) - MOVL CX,4(DI) - MOVL R8,8(DI) - MOVL R9,12(DI) - MOVD X12,DX - MOVD X7,CX - MOVD X10,R8 - MOVD X4,R9 - PSHUFL $0X39,X12,X12 - PSHUFL $0X39,X7,X7 - PSHUFL $0X39,X10,X10 - PSHUFL $0X39,X4,X4 - XORL 64(SI),DX - XORL 68(SI),CX - XORL 72(SI),R8 - XORL 76(SI),R9 - MOVL DX,64(DI) - MOVL CX,68(DI) - MOVL R8,72(DI) - MOVL R9,76(DI) - MOVD X12,DX - MOVD X7,CX - MOVD X10,R8 - MOVD X4,R9 - PSHUFL $0X39,X12,X12 - PSHUFL $0X39,X7,X7 - PSHUFL $0X39,X10,X10 - PSHUFL $0X39,X4,X4 - XORL 128(SI),DX - XORL 132(SI),CX - XORL 136(SI),R8 - XORL 140(SI),R9 - MOVL DX,128(DI) - MOVL CX,132(DI) - MOVL R8,136(DI) - MOVL R9,140(DI) - MOVD X12,DX - MOVD X7,CX - MOVD X10,R8 - MOVD X4,R9 - XORL 192(SI),DX - XORL 196(SI),CX - XORL 200(SI),R8 - XORL 204(SI),R9 - MOVL DX,192(DI) - MOVL CX,196(DI) - MOVL R8,200(DI) - MOVL R9,204(DI) - PADDL 240(SP),X14 - PADDL 64(SP),X0 - PADDL 128(SP),X5 - PADDL 192(SP),X8 - MOVD X14,DX - MOVD X0,CX - MOVD X5,R8 - MOVD X8,R9 - PSHUFL $0X39,X14,X14 - PSHUFL $0X39,X0,X0 - PSHUFL $0X39,X5,X5 - PSHUFL $0X39,X8,X8 - XORL 16(SI),DX - XORL 20(SI),CX - XORL 24(SI),R8 - XORL 28(SI),R9 - MOVL DX,16(DI) - MOVL CX,20(DI) - MOVL R8,24(DI) - MOVL R9,28(DI) - MOVD X14,DX - MOVD X0,CX - MOVD X5,R8 - MOVD X8,R9 - PSHUFL $0X39,X14,X14 - PSHUFL $0X39,X0,X0 - PSHUFL $0X39,X5,X5 - PSHUFL $0X39,X8,X8 - XORL 80(SI),DX - XORL 84(SI),CX - XORL 88(SI),R8 - XORL 92(SI),R9 - MOVL DX,80(DI) - MOVL CX,84(DI) - MOVL R8,88(DI) - MOVL R9,92(DI) - MOVD X14,DX - MOVD X0,CX - MOVD X5,R8 - MOVD X8,R9 - PSHUFL $0X39,X14,X14 - PSHUFL $0X39,X0,X0 - PSHUFL $0X39,X5,X5 - PSHUFL $0X39,X8,X8 - XORL 144(SI),DX - XORL 148(SI),CX - XORL 152(SI),R8 - XORL 156(SI),R9 - MOVL DX,144(DI) - MOVL CX,148(DI) - MOVL R8,152(DI) - MOVL R9,156(DI) - MOVD X14,DX - MOVD X0,CX - MOVD X5,R8 - MOVD X8,R9 - XORL 208(SI),DX - XORL 212(SI),CX - XORL 216(SI),R8 - XORL 220(SI),R9 - MOVL DX,208(DI) - MOVL CX,212(DI) - MOVL R8,216(DI) - MOVL R9,220(DI) - PADDL 288(SP),X15 - PADDL 304(SP),X11 - PADDL 80(SP),X1 - PADDL 144(SP),X6 - MOVD X15,DX - MOVD X11,CX - MOVD X1,R8 - MOVD X6,R9 - PSHUFL $0X39,X15,X15 - PSHUFL $0X39,X11,X11 - PSHUFL $0X39,X1,X1 - PSHUFL $0X39,X6,X6 - XORL 32(SI),DX - XORL 36(SI),CX - XORL 40(SI),R8 - XORL 44(SI),R9 - MOVL DX,32(DI) - MOVL CX,36(DI) - MOVL R8,40(DI) - MOVL R9,44(DI) - MOVD X15,DX - MOVD X11,CX - MOVD X1,R8 - MOVD X6,R9 - PSHUFL $0X39,X15,X15 - PSHUFL $0X39,X11,X11 - PSHUFL $0X39,X1,X1 - PSHUFL $0X39,X6,X6 - XORL 96(SI),DX - XORL 100(SI),CX - XORL 104(SI),R8 - XORL 108(SI),R9 - MOVL DX,96(DI) - MOVL CX,100(DI) - MOVL R8,104(DI) - MOVL R9,108(DI) - MOVD X15,DX - MOVD X11,CX - MOVD X1,R8 - MOVD X6,R9 - PSHUFL $0X39,X15,X15 - PSHUFL $0X39,X11,X11 - PSHUFL $0X39,X1,X1 - PSHUFL $0X39,X6,X6 - XORL 160(SI),DX - XORL 164(SI),CX - XORL 168(SI),R8 - XORL 172(SI),R9 - MOVL DX,160(DI) - MOVL CX,164(DI) - MOVL R8,168(DI) - MOVL R9,172(DI) - MOVD X15,DX - MOVD X11,CX - MOVD X1,R8 - MOVD X6,R9 - XORL 224(SI),DX - XORL 228(SI),CX - XORL 232(SI),R8 - XORL 236(SI),R9 - MOVL DX,224(DI) - MOVL CX,228(DI) - MOVL R8,232(DI) - MOVL R9,236(DI) - PADDL 160(SP),X13 - PADDL 208(SP),X9 - PADDL 256(SP),X3 - PADDL 96(SP),X2 - MOVD X13,DX - MOVD X9,CX - MOVD X3,R8 - MOVD X2,R9 - PSHUFL $0X39,X13,X13 - PSHUFL $0X39,X9,X9 - PSHUFL $0X39,X3,X3 - PSHUFL $0X39,X2,X2 - XORL 48(SI),DX - XORL 52(SI),CX - XORL 56(SI),R8 - XORL 60(SI),R9 - MOVL DX,48(DI) - MOVL CX,52(DI) - MOVL R8,56(DI) - MOVL R9,60(DI) - MOVD X13,DX - MOVD X9,CX - MOVD X3,R8 - MOVD X2,R9 - PSHUFL $0X39,X13,X13 - PSHUFL $0X39,X9,X9 - PSHUFL $0X39,X3,X3 - PSHUFL $0X39,X2,X2 - XORL 112(SI),DX - XORL 116(SI),CX - XORL 120(SI),R8 - XORL 124(SI),R9 - MOVL DX,112(DI) - MOVL CX,116(DI) - MOVL R8,120(DI) - MOVL R9,124(DI) - MOVD X13,DX - MOVD X9,CX - MOVD X3,R8 - MOVD X2,R9 - PSHUFL $0X39,X13,X13 - PSHUFL $0X39,X9,X9 - PSHUFL $0X39,X3,X3 - PSHUFL $0X39,X2,X2 - XORL 176(SI),DX - XORL 180(SI),CX - XORL 184(SI),R8 - XORL 188(SI),R9 - MOVL DX,176(DI) - MOVL CX,180(DI) - MOVL R8,184(DI) - MOVL R9,188(DI) - MOVD X13,DX - MOVD X9,CX - MOVD X3,R8 - MOVD X2,R9 - XORL 240(SI),DX - XORL 244(SI),CX - XORL 248(SI),R8 - XORL 252(SI),R9 - MOVL DX,240(DI) - MOVL CX,244(DI) - MOVL R8,248(DI) - MOVL R9,252(DI) - MOVQ 408(SP),R9 - SUBQ $256,R9 - ADDQ $256,SI - ADDQ $256,DI - CMPQ R9,$256 - JAE BYTESATLEAST256 - CMPQ R9,$0 - JBE DONE - BYTESBETWEEN1AND255: - CMPQ R9,$64 - JAE NOCOPY - MOVQ DI,DX - LEAQ 416(SP),DI - MOVQ R9,CX - REP; MOVSB - LEAQ 416(SP),DI - LEAQ 416(SP),SI - NOCOPY: - MOVQ R9,408(SP) - MOVOA 48(SP),X0 - MOVOA 0(SP),X1 - MOVOA 16(SP),X2 - MOVOA 32(SP),X3 - MOVOA X1,X4 - MOVQ $20,CX - MAINLOOP2: - PADDL X0,X4 - MOVOA X0,X5 - MOVOA X4,X6 - PSLLL $7,X4 - PSRLL $25,X6 - PXOR X4,X3 - PXOR X6,X3 - PADDL X3,X5 - MOVOA X3,X4 - MOVOA X5,X6 - PSLLL $9,X5 - PSRLL $23,X6 - PXOR X5,X2 - PSHUFL $0X93,X3,X3 - PXOR X6,X2 - PADDL X2,X4 - MOVOA X2,X5 - MOVOA X4,X6 - PSLLL $13,X4 - PSRLL $19,X6 - PXOR X4,X1 - PSHUFL $0X4E,X2,X2 - PXOR X6,X1 - PADDL X1,X5 - MOVOA X3,X4 - MOVOA X5,X6 - PSLLL $18,X5 - PSRLL $14,X6 - PXOR X5,X0 - PSHUFL $0X39,X1,X1 - PXOR X6,X0 - PADDL X0,X4 - MOVOA X0,X5 - MOVOA X4,X6 - PSLLL $7,X4 - PSRLL $25,X6 - PXOR X4,X1 - PXOR X6,X1 - PADDL X1,X5 - MOVOA X1,X4 - MOVOA X5,X6 - PSLLL $9,X5 - PSRLL $23,X6 - PXOR X5,X2 - PSHUFL $0X93,X1,X1 - PXOR X6,X2 - PADDL X2,X4 - MOVOA X2,X5 - MOVOA X4,X6 - PSLLL $13,X4 - PSRLL $19,X6 - PXOR X4,X3 - PSHUFL $0X4E,X2,X2 - PXOR X6,X3 - PADDL X3,X5 - MOVOA X1,X4 - MOVOA X5,X6 - PSLLL $18,X5 - PSRLL $14,X6 - PXOR X5,X0 - PSHUFL $0X39,X3,X3 - PXOR X6,X0 - PADDL X0,X4 - MOVOA X0,X5 - MOVOA X4,X6 - PSLLL $7,X4 - PSRLL $25,X6 - PXOR X4,X3 - PXOR X6,X3 - PADDL X3,X5 - MOVOA X3,X4 - MOVOA X5,X6 - PSLLL $9,X5 - PSRLL $23,X6 - PXOR X5,X2 - PSHUFL $0X93,X3,X3 - PXOR X6,X2 - PADDL X2,X4 - MOVOA X2,X5 - MOVOA X4,X6 - PSLLL $13,X4 - PSRLL $19,X6 - PXOR X4,X1 - PSHUFL $0X4E,X2,X2 - PXOR X6,X1 - PADDL X1,X5 - MOVOA X3,X4 - MOVOA X5,X6 - PSLLL $18,X5 - PSRLL $14,X6 - PXOR X5,X0 - PSHUFL $0X39,X1,X1 - PXOR X6,X0 - PADDL X0,X4 - MOVOA X0,X5 - MOVOA X4,X6 - PSLLL $7,X4 - PSRLL $25,X6 - PXOR X4,X1 - PXOR X6,X1 - PADDL X1,X5 - MOVOA X1,X4 - MOVOA X5,X6 - PSLLL $9,X5 - PSRLL $23,X6 - PXOR X5,X2 - PSHUFL $0X93,X1,X1 - PXOR X6,X2 - PADDL X2,X4 - MOVOA X2,X5 - MOVOA X4,X6 - PSLLL $13,X4 - PSRLL $19,X6 - PXOR X4,X3 - PSHUFL $0X4E,X2,X2 - PXOR X6,X3 - SUBQ $4,CX - PADDL X3,X5 - MOVOA X1,X4 - MOVOA X5,X6 - PSLLL $18,X5 - PXOR X7,X7 - PSRLL $14,X6 - PXOR X5,X0 - PSHUFL $0X39,X3,X3 - PXOR X6,X0 - JA MAINLOOP2 - PADDL 48(SP),X0 - PADDL 0(SP),X1 - PADDL 16(SP),X2 - PADDL 32(SP),X3 - MOVD X0,CX - MOVD X1,R8 - MOVD X2,R9 - MOVD X3,AX - PSHUFL $0X39,X0,X0 - PSHUFL $0X39,X1,X1 - PSHUFL $0X39,X2,X2 - PSHUFL $0X39,X3,X3 - XORL 0(SI),CX - XORL 48(SI),R8 - XORL 32(SI),R9 - XORL 16(SI),AX - MOVL CX,0(DI) - MOVL R8,48(DI) - MOVL R9,32(DI) - MOVL AX,16(DI) - MOVD X0,CX - MOVD X1,R8 - MOVD X2,R9 - MOVD X3,AX - PSHUFL $0X39,X0,X0 - PSHUFL $0X39,X1,X1 - PSHUFL $0X39,X2,X2 - PSHUFL $0X39,X3,X3 - XORL 20(SI),CX - XORL 4(SI),R8 - XORL 52(SI),R9 - XORL 36(SI),AX - MOVL CX,20(DI) - MOVL R8,4(DI) - MOVL R9,52(DI) - MOVL AX,36(DI) - MOVD X0,CX - MOVD X1,R8 - MOVD X2,R9 - MOVD X3,AX - PSHUFL $0X39,X0,X0 - PSHUFL $0X39,X1,X1 - PSHUFL $0X39,X2,X2 - PSHUFL $0X39,X3,X3 - XORL 40(SI),CX - XORL 24(SI),R8 - XORL 8(SI),R9 - XORL 56(SI),AX - MOVL CX,40(DI) - MOVL R8,24(DI) - MOVL R9,8(DI) - MOVL AX,56(DI) - MOVD X0,CX - MOVD X1,R8 - MOVD X2,R9 - MOVD X3,AX - XORL 60(SI),CX - XORL 44(SI),R8 - XORL 28(SI),R9 - XORL 12(SI),AX - MOVL CX,60(DI) - MOVL R8,44(DI) - MOVL R9,28(DI) - MOVL AX,12(DI) - MOVQ 408(SP),R9 - MOVL 16(SP),CX - MOVL 36 (SP),R8 - ADDQ $1,CX - SHLQ $32,R8 - ADDQ R8,CX - MOVQ CX,R8 - SHRQ $32,R8 - MOVL CX,16(SP) - MOVL R8, 36 (SP) - CMPQ R9,$64 - JA BYTESATLEAST65 - JAE BYTESATLEAST64 - MOVQ DI,SI - MOVQ DX,DI - MOVQ R9,CX - REP; MOVSB - BYTESATLEAST64: - DONE: - MOVQ 352(SP),R11 - MOVQ 360(SP),R12 - MOVQ 368(SP),R13 - MOVQ 376(SP),R14 - MOVQ 384(SP),R15 - MOVQ 392(SP),BX - MOVQ 400(SP),BP - MOVQ R11,SP - RET - BYTESATLEAST65: - SUBQ $64,R9 - ADDQ $64,DI - ADDQ $64,SI - JMP BYTESBETWEEN1AND255 diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa208.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa208.go deleted file mode 100644 index 9bfc0927..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa208.go +++ /dev/null @@ -1,199 +0,0 @@ -// Copyright 2012 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 salsa - -// Core208 applies the Salsa20/8 core function to the 64-byte array in and puts -// the result into the 64-byte array out. The input and output may be the same array. -func Core208(out *[64]byte, in *[64]byte) { - j0 := uint32(in[0]) | uint32(in[1])<<8 | uint32(in[2])<<16 | uint32(in[3])<<24 - j1 := uint32(in[4]) | uint32(in[5])<<8 | uint32(in[6])<<16 | uint32(in[7])<<24 - j2 := uint32(in[8]) | uint32(in[9])<<8 | uint32(in[10])<<16 | uint32(in[11])<<24 - j3 := uint32(in[12]) | uint32(in[13])<<8 | uint32(in[14])<<16 | uint32(in[15])<<24 - j4 := uint32(in[16]) | uint32(in[17])<<8 | uint32(in[18])<<16 | uint32(in[19])<<24 - j5 := uint32(in[20]) | uint32(in[21])<<8 | uint32(in[22])<<16 | uint32(in[23])<<24 - j6 := uint32(in[24]) | uint32(in[25])<<8 | uint32(in[26])<<16 | uint32(in[27])<<24 - j7 := uint32(in[28]) | uint32(in[29])<<8 | uint32(in[30])<<16 | uint32(in[31])<<24 - j8 := uint32(in[32]) | uint32(in[33])<<8 | uint32(in[34])<<16 | uint32(in[35])<<24 - j9 := uint32(in[36]) | uint32(in[37])<<8 | uint32(in[38])<<16 | uint32(in[39])<<24 - j10 := uint32(in[40]) | uint32(in[41])<<8 | uint32(in[42])<<16 | uint32(in[43])<<24 - j11 := uint32(in[44]) | uint32(in[45])<<8 | uint32(in[46])<<16 | uint32(in[47])<<24 - j12 := uint32(in[48]) | uint32(in[49])<<8 | uint32(in[50])<<16 | uint32(in[51])<<24 - j13 := uint32(in[52]) | uint32(in[53])<<8 | uint32(in[54])<<16 | uint32(in[55])<<24 - j14 := uint32(in[56]) | uint32(in[57])<<8 | uint32(in[58])<<16 | uint32(in[59])<<24 - j15 := uint32(in[60]) | uint32(in[61])<<8 | uint32(in[62])<<16 | uint32(in[63])<<24 - - x0, x1, x2, x3, x4, x5, x6, x7, x8 := j0, j1, j2, j3, j4, j5, j6, j7, j8 - x9, x10, x11, x12, x13, x14, x15 := j9, j10, j11, j12, j13, j14, j15 - - for i := 0; i < 8; i += 2 { - u := x0 + x12 - x4 ^= u<<7 | u>>(32-7) - u = x4 + x0 - x8 ^= u<<9 | u>>(32-9) - u = x8 + x4 - x12 ^= u<<13 | u>>(32-13) - u = x12 + x8 - x0 ^= u<<18 | u>>(32-18) - - u = x5 + x1 - x9 ^= u<<7 | u>>(32-7) - u = x9 + x5 - x13 ^= u<<9 | u>>(32-9) - u = x13 + x9 - x1 ^= u<<13 | u>>(32-13) - u = x1 + x13 - x5 ^= u<<18 | u>>(32-18) - - u = x10 + x6 - x14 ^= u<<7 | u>>(32-7) - u = x14 + x10 - x2 ^= u<<9 | u>>(32-9) - u = x2 + x14 - x6 ^= u<<13 | u>>(32-13) - u = x6 + x2 - x10 ^= u<<18 | u>>(32-18) - - u = x15 + x11 - x3 ^= u<<7 | u>>(32-7) - u = x3 + x15 - x7 ^= u<<9 | u>>(32-9) - u = x7 + x3 - x11 ^= u<<13 | u>>(32-13) - u = x11 + x7 - x15 ^= u<<18 | u>>(32-18) - - u = x0 + x3 - x1 ^= u<<7 | u>>(32-7) - u = x1 + x0 - x2 ^= u<<9 | u>>(32-9) - u = x2 + x1 - x3 ^= u<<13 | u>>(32-13) - u = x3 + x2 - x0 ^= u<<18 | u>>(32-18) - - u = x5 + x4 - x6 ^= u<<7 | u>>(32-7) - u = x6 + x5 - x7 ^= u<<9 | u>>(32-9) - u = x7 + x6 - x4 ^= u<<13 | u>>(32-13) - u = x4 + x7 - x5 ^= u<<18 | u>>(32-18) - - u = x10 + x9 - x11 ^= u<<7 | u>>(32-7) - u = x11 + x10 - x8 ^= u<<9 | u>>(32-9) - u = x8 + x11 - x9 ^= u<<13 | u>>(32-13) - u = x9 + x8 - x10 ^= u<<18 | u>>(32-18) - - u = x15 + x14 - x12 ^= u<<7 | u>>(32-7) - u = x12 + x15 - x13 ^= u<<9 | u>>(32-9) - u = x13 + x12 - x14 ^= u<<13 | u>>(32-13) - u = x14 + x13 - x15 ^= u<<18 | u>>(32-18) - } - x0 += j0 - x1 += j1 - x2 += j2 - x3 += j3 - x4 += j4 - x5 += j5 - x6 += j6 - x7 += j7 - x8 += j8 - x9 += j9 - x10 += j10 - x11 += j11 - x12 += j12 - x13 += j13 - x14 += j14 - x15 += j15 - - out[0] = byte(x0) - out[1] = byte(x0 >> 8) - out[2] = byte(x0 >> 16) - out[3] = byte(x0 >> 24) - - out[4] = byte(x1) - out[5] = byte(x1 >> 8) - out[6] = byte(x1 >> 16) - out[7] = byte(x1 >> 24) - - out[8] = byte(x2) - out[9] = byte(x2 >> 8) - out[10] = byte(x2 >> 16) - out[11] = byte(x2 >> 24) - - out[12] = byte(x3) - out[13] = byte(x3 >> 8) - out[14] = byte(x3 >> 16) - out[15] = byte(x3 >> 24) - - out[16] = byte(x4) - out[17] = byte(x4 >> 8) - out[18] = byte(x4 >> 16) - out[19] = byte(x4 >> 24) - - out[20] = byte(x5) - out[21] = byte(x5 >> 8) - out[22] = byte(x5 >> 16) - out[23] = byte(x5 >> 24) - - out[24] = byte(x6) - out[25] = byte(x6 >> 8) - out[26] = byte(x6 >> 16) - out[27] = byte(x6 >> 24) - - out[28] = byte(x7) - out[29] = byte(x7 >> 8) - out[30] = byte(x7 >> 16) - out[31] = byte(x7 >> 24) - - out[32] = byte(x8) - out[33] = byte(x8 >> 8) - out[34] = byte(x8 >> 16) - out[35] = byte(x8 >> 24) - - out[36] = byte(x9) - out[37] = byte(x9 >> 8) - out[38] = byte(x9 >> 16) - out[39] = byte(x9 >> 24) - - out[40] = byte(x10) - out[41] = byte(x10 >> 8) - out[42] = byte(x10 >> 16) - out[43] = byte(x10 >> 24) - - out[44] = byte(x11) - out[45] = byte(x11 >> 8) - out[46] = byte(x11 >> 16) - out[47] = byte(x11 >> 24) - - out[48] = byte(x12) - out[49] = byte(x12 >> 8) - out[50] = byte(x12 >> 16) - out[51] = byte(x12 >> 24) - - out[52] = byte(x13) - out[53] = byte(x13 >> 8) - out[54] = byte(x13 >> 16) - out[55] = byte(x13 >> 24) - - out[56] = byte(x14) - out[57] = byte(x14 >> 8) - out[58] = byte(x14 >> 16) - out[59] = byte(x14 >> 24) - - out[60] = byte(x15) - out[61] = byte(x15 >> 8) - out[62] = byte(x15 >> 16) - out[63] = byte(x15 >> 24) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa20_amd64.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa20_amd64.go deleted file mode 100644 index 903c7858..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa20_amd64.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2012 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 amd64,!appengine,!gccgo - -package salsa - -// This function is implemented in salsa2020_amd64.s. - -//go:noescape - -func salsa2020XORKeyStream(out, in *byte, n uint64, nonce, key *byte) - -// XORKeyStream crypts bytes from in to out using the given key and counters. -// In and out may be the same slice but otherwise should not overlap. Counter -// contains the raw salsa20 counter bytes (both nonce and block counter). -func XORKeyStream(out, in []byte, counter *[16]byte, key *[32]byte) { - if len(in) == 0 { - return - } - salsa2020XORKeyStream(&out[0], &in[0], uint64(len(in)), &counter[0], &key[0]) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa20_ref.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa20_ref.go deleted file mode 100644 index 95f8ca5b..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa20_ref.go +++ /dev/null @@ -1,234 +0,0 @@ -// Copyright 2012 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 !amd64 appengine gccgo - -package salsa - -const rounds = 20 - -// core applies the Salsa20 core function to 16-byte input in, 32-byte key k, -// and 16-byte constant c, and puts the result into 64-byte array out. -func core(out *[64]byte, in *[16]byte, k *[32]byte, c *[16]byte) { - j0 := uint32(c[0]) | uint32(c[1])<<8 | uint32(c[2])<<16 | uint32(c[3])<<24 - j1 := uint32(k[0]) | uint32(k[1])<<8 | uint32(k[2])<<16 | uint32(k[3])<<24 - j2 := uint32(k[4]) | uint32(k[5])<<8 | uint32(k[6])<<16 | uint32(k[7])<<24 - j3 := uint32(k[8]) | uint32(k[9])<<8 | uint32(k[10])<<16 | uint32(k[11])<<24 - j4 := uint32(k[12]) | uint32(k[13])<<8 | uint32(k[14])<<16 | uint32(k[15])<<24 - j5 := uint32(c[4]) | uint32(c[5])<<8 | uint32(c[6])<<16 | uint32(c[7])<<24 - j6 := uint32(in[0]) | uint32(in[1])<<8 | uint32(in[2])<<16 | uint32(in[3])<<24 - j7 := uint32(in[4]) | uint32(in[5])<<8 | uint32(in[6])<<16 | uint32(in[7])<<24 - j8 := uint32(in[8]) | uint32(in[9])<<8 | uint32(in[10])<<16 | uint32(in[11])<<24 - j9 := uint32(in[12]) | uint32(in[13])<<8 | uint32(in[14])<<16 | uint32(in[15])<<24 - j10 := uint32(c[8]) | uint32(c[9])<<8 | uint32(c[10])<<16 | uint32(c[11])<<24 - j11 := uint32(k[16]) | uint32(k[17])<<8 | uint32(k[18])<<16 | uint32(k[19])<<24 - j12 := uint32(k[20]) | uint32(k[21])<<8 | uint32(k[22])<<16 | uint32(k[23])<<24 - j13 := uint32(k[24]) | uint32(k[25])<<8 | uint32(k[26])<<16 | uint32(k[27])<<24 - j14 := uint32(k[28]) | uint32(k[29])<<8 | uint32(k[30])<<16 | uint32(k[31])<<24 - j15 := uint32(c[12]) | uint32(c[13])<<8 | uint32(c[14])<<16 | uint32(c[15])<<24 - - x0, x1, x2, x3, x4, x5, x6, x7, x8 := j0, j1, j2, j3, j4, j5, j6, j7, j8 - x9, x10, x11, x12, x13, x14, x15 := j9, j10, j11, j12, j13, j14, j15 - - for i := 0; i < rounds; i += 2 { - u := x0 + x12 - x4 ^= u<<7 | u>>(32-7) - u = x4 + x0 - x8 ^= u<<9 | u>>(32-9) - u = x8 + x4 - x12 ^= u<<13 | u>>(32-13) - u = x12 + x8 - x0 ^= u<<18 | u>>(32-18) - - u = x5 + x1 - x9 ^= u<<7 | u>>(32-7) - u = x9 + x5 - x13 ^= u<<9 | u>>(32-9) - u = x13 + x9 - x1 ^= u<<13 | u>>(32-13) - u = x1 + x13 - x5 ^= u<<18 | u>>(32-18) - - u = x10 + x6 - x14 ^= u<<7 | u>>(32-7) - u = x14 + x10 - x2 ^= u<<9 | u>>(32-9) - u = x2 + x14 - x6 ^= u<<13 | u>>(32-13) - u = x6 + x2 - x10 ^= u<<18 | u>>(32-18) - - u = x15 + x11 - x3 ^= u<<7 | u>>(32-7) - u = x3 + x15 - x7 ^= u<<9 | u>>(32-9) - u = x7 + x3 - x11 ^= u<<13 | u>>(32-13) - u = x11 + x7 - x15 ^= u<<18 | u>>(32-18) - - u = x0 + x3 - x1 ^= u<<7 | u>>(32-7) - u = x1 + x0 - x2 ^= u<<9 | u>>(32-9) - u = x2 + x1 - x3 ^= u<<13 | u>>(32-13) - u = x3 + x2 - x0 ^= u<<18 | u>>(32-18) - - u = x5 + x4 - x6 ^= u<<7 | u>>(32-7) - u = x6 + x5 - x7 ^= u<<9 | u>>(32-9) - u = x7 + x6 - x4 ^= u<<13 | u>>(32-13) - u = x4 + x7 - x5 ^= u<<18 | u>>(32-18) - - u = x10 + x9 - x11 ^= u<<7 | u>>(32-7) - u = x11 + x10 - x8 ^= u<<9 | u>>(32-9) - u = x8 + x11 - x9 ^= u<<13 | u>>(32-13) - u = x9 + x8 - x10 ^= u<<18 | u>>(32-18) - - u = x15 + x14 - x12 ^= u<<7 | u>>(32-7) - u = x12 + x15 - x13 ^= u<<9 | u>>(32-9) - u = x13 + x12 - x14 ^= u<<13 | u>>(32-13) - u = x14 + x13 - x15 ^= u<<18 | u>>(32-18) - } - x0 += j0 - x1 += j1 - x2 += j2 - x3 += j3 - x4 += j4 - x5 += j5 - x6 += j6 - x7 += j7 - x8 += j8 - x9 += j9 - x10 += j10 - x11 += j11 - x12 += j12 - x13 += j13 - x14 += j14 - x15 += j15 - - out[0] = byte(x0) - out[1] = byte(x0 >> 8) - out[2] = byte(x0 >> 16) - out[3] = byte(x0 >> 24) - - out[4] = byte(x1) - out[5] = byte(x1 >> 8) - out[6] = byte(x1 >> 16) - out[7] = byte(x1 >> 24) - - out[8] = byte(x2) - out[9] = byte(x2 >> 8) - out[10] = byte(x2 >> 16) - out[11] = byte(x2 >> 24) - - out[12] = byte(x3) - out[13] = byte(x3 >> 8) - out[14] = byte(x3 >> 16) - out[15] = byte(x3 >> 24) - - out[16] = byte(x4) - out[17] = byte(x4 >> 8) - out[18] = byte(x4 >> 16) - out[19] = byte(x4 >> 24) - - out[20] = byte(x5) - out[21] = byte(x5 >> 8) - out[22] = byte(x5 >> 16) - out[23] = byte(x5 >> 24) - - out[24] = byte(x6) - out[25] = byte(x6 >> 8) - out[26] = byte(x6 >> 16) - out[27] = byte(x6 >> 24) - - out[28] = byte(x7) - out[29] = byte(x7 >> 8) - out[30] = byte(x7 >> 16) - out[31] = byte(x7 >> 24) - - out[32] = byte(x8) - out[33] = byte(x8 >> 8) - out[34] = byte(x8 >> 16) - out[35] = byte(x8 >> 24) - - out[36] = byte(x9) - out[37] = byte(x9 >> 8) - out[38] = byte(x9 >> 16) - out[39] = byte(x9 >> 24) - - out[40] = byte(x10) - out[41] = byte(x10 >> 8) - out[42] = byte(x10 >> 16) - out[43] = byte(x10 >> 24) - - out[44] = byte(x11) - out[45] = byte(x11 >> 8) - out[46] = byte(x11 >> 16) - out[47] = byte(x11 >> 24) - - out[48] = byte(x12) - out[49] = byte(x12 >> 8) - out[50] = byte(x12 >> 16) - out[51] = byte(x12 >> 24) - - out[52] = byte(x13) - out[53] = byte(x13 >> 8) - out[54] = byte(x13 >> 16) - out[55] = byte(x13 >> 24) - - out[56] = byte(x14) - out[57] = byte(x14 >> 8) - out[58] = byte(x14 >> 16) - out[59] = byte(x14 >> 24) - - out[60] = byte(x15) - out[61] = byte(x15 >> 8) - out[62] = byte(x15 >> 16) - out[63] = byte(x15 >> 24) -} - -// XORKeyStream crypts bytes from in to out using the given key and counters. -// In and out may be the same slice but otherwise should not overlap. Counter -// contains the raw salsa20 counter bytes (both nonce and block counter). -func XORKeyStream(out, in []byte, counter *[16]byte, key *[32]byte) { - var block [64]byte - var counterCopy [16]byte - copy(counterCopy[:], counter[:]) - - for len(in) >= 64 { - core(&block, &counterCopy, key, &Sigma) - for i, x := range block { - out[i] = in[i] ^ x - } - u := uint32(1) - for i := 8; i < 16; i++ { - u += uint32(counterCopy[i]) - counterCopy[i] = byte(u) - u >>= 8 - } - in = in[64:] - out = out[64:] - } - - if len(in) > 0 { - core(&block, &counterCopy, key, &Sigma) - for i, v := range in { - out[i] = v ^ block[i] - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa_test.go deleted file mode 100644 index f8cecd9e..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa/salsa_test.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2012 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 salsa - -import "testing" - -func TestCore208(t *testing.T) { - in := [64]byte{ - 0x7e, 0x87, 0x9a, 0x21, 0x4f, 0x3e, 0xc9, 0x86, - 0x7c, 0xa9, 0x40, 0xe6, 0x41, 0x71, 0x8f, 0x26, - 0xba, 0xee, 0x55, 0x5b, 0x8c, 0x61, 0xc1, 0xb5, - 0x0d, 0xf8, 0x46, 0x11, 0x6d, 0xcd, 0x3b, 0x1d, - 0xee, 0x24, 0xf3, 0x19, 0xdf, 0x9b, 0x3d, 0x85, - 0x14, 0x12, 0x1e, 0x4b, 0x5a, 0xc5, 0xaa, 0x32, - 0x76, 0x02, 0x1d, 0x29, 0x09, 0xc7, 0x48, 0x29, - 0xed, 0xeb, 0xc6, 0x8d, 0xb8, 0xb8, 0xc2, 0x5e} - - out := [64]byte{ - 0xa4, 0x1f, 0x85, 0x9c, 0x66, 0x08, 0xcc, 0x99, - 0x3b, 0x81, 0xca, 0xcb, 0x02, 0x0c, 0xef, 0x05, - 0x04, 0x4b, 0x21, 0x81, 0xa2, 0xfd, 0x33, 0x7d, - 0xfd, 0x7b, 0x1c, 0x63, 0x96, 0x68, 0x2f, 0x29, - 0xb4, 0x39, 0x31, 0x68, 0xe3, 0xc9, 0xe6, 0xbc, - 0xfe, 0x6b, 0xc5, 0xb7, 0xa0, 0x6d, 0x96, 0xba, - 0xe4, 0x24, 0xcc, 0x10, 0x2c, 0x91, 0x74, 0x5c, - 0x24, 0xad, 0x67, 0x3d, 0xc7, 0x61, 0x8f, 0x81, - } - - Core208(&in, &in) - if in != out { - t.Errorf("expected %x, got %x", out, in) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa20.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa20.go deleted file mode 100644 index 5c26a105..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa20.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2012 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 salsa20 implements the Salsa20 stream cipher as specified in http://cr.yp.to/snuffle/spec.pdf. - -Salsa20 differs from many other stream ciphers in that it is message orientated -rather than byte orientated. Keystream blocks are not preserved between calls, -therefore each side must encrypt/decrypt data with the same segmentation. - -Another aspect of this difference is that part of the counter is exposed as -an nonce in each call. Encrypting two different messages with the same (key, -nonce) pair leads to trivial plaintext recovery. This is analogous to -encrypting two different messages with the same key with a traditional stream -cipher. - -This package also implements XSalsa20: a version of Salsa20 with a 24-byte -nonce as specified in http://cr.yp.to/snuffle/xsalsa-20081128.pdf. Simply -passing a 24-byte slice as the nonce triggers XSalsa20. -*/ -package salsa20 - -// TODO(agl): implement XORKeyStream12 and XORKeyStream8 - the reduced round variants of Salsa20. - -import ( - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa" -) - -// XORKeyStream crypts bytes from in to out using the given key and nonce. In -// and out may be the same slice but otherwise should not overlap. Nonce must -// be either 8 or 24 bytes long. -func XORKeyStream(out, in []byte, nonce []byte, key *[32]byte) { - if len(out) < len(in) { - in = in[:len(out)] - } - - var subNonce [16]byte - - if len(nonce) == 24 { - var subKey [32]byte - var hNonce [16]byte - copy(hNonce[:], nonce[:16]) - salsa.HSalsa20(&subKey, &hNonce, key, &salsa.Sigma) - copy(subNonce[:], nonce[16:]) - key = &subKey - } else if len(nonce) == 8 { - copy(subNonce[:], nonce[:]) - } else { - panic("salsa20: nonce must be 8 or 24 bytes") - } - - salsa.XORKeyStream(out, in, &subNonce, key) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa20_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa20_test.go deleted file mode 100644 index 0ef3328e..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/salsa20/salsa20_test.go +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright 2012 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 salsa20 - -import ( - "bytes" - "encoding/hex" - "testing" -) - -func fromHex(s string) []byte { - ret, err := hex.DecodeString(s) - if err != nil { - panic(err) - } - return ret -} - -// testVectors was taken from set 6 of the ECRYPT test vectors: -// http://www.ecrypt.eu.org/stream/svn/viewcvs.cgi/ecrypt/trunk/submissions/salsa20/full/verified.test-vectors?logsort=rev&rev=210&view=markup -var testVectors = []struct { - key []byte - iv []byte - numBytes int - xor []byte -}{ - { - fromHex("0053A6F94C9FF24598EB3E91E4378ADD3083D6297CCF2275C81B6EC11467BA0D"), - fromHex("0D74DB42A91077DE"), - 131072, - fromHex("C349B6A51A3EC9B712EAED3F90D8BCEE69B7628645F251A996F55260C62EF31FD6C6B0AEA94E136C9D984AD2DF3578F78E457527B03A0450580DD874F63B1AB9"), - }, - { - fromHex("0558ABFE51A4F74A9DF04396E93C8FE23588DB2E81D4277ACD2073C6196CBF12"), - fromHex("167DE44BB21980E7"), - 131072, - fromHex("C3EAAF32836BACE32D04E1124231EF47E101367D6305413A0EEB07C60698A2876E4D031870A739D6FFDDD208597AFF0A47AC17EDB0167DD67EBA84F1883D4DFD"), - }, - { - fromHex("0A5DB00356A9FC4FA2F5489BEE4194E73A8DE03386D92C7FD22578CB1E71C417"), - fromHex("1F86ED54BB2289F0"), - 131072, - fromHex("3CD23C3DC90201ACC0CF49B440B6C417F0DC8D8410A716D5314C059E14B1A8D9A9FB8EA3D9C8DAE12B21402F674AA95C67B1FC514E994C9D3F3A6E41DFF5BBA6"), - }, - { - fromHex("0F62B5085BAE0154A7FA4DA0F34699EC3F92E5388BDE3184D72A7DD02376C91C"), - fromHex("288FF65DC42B92F9"), - 131072, - fromHex("E00EBCCD70D69152725F9987982178A2E2E139C7BCBE04CA8A0E99E318D9AB76F988C8549F75ADD790BA4F81C176DA653C1A043F11A958E169B6D2319F4EEC1A"), - }, -} - -func TestSalsa20(t *testing.T) { - var inBuf, outBuf []byte - var key [32]byte - - for i, test := range testVectors { - if test.numBytes%64 != 0 { - t.Errorf("#%d: numBytes is not a multiple of 64", i) - continue - } - - if test.numBytes > len(inBuf) { - inBuf = make([]byte, test.numBytes) - outBuf = make([]byte, test.numBytes) - } - in := inBuf[:test.numBytes] - out := outBuf[:test.numBytes] - copy(key[:], test.key) - XORKeyStream(out, in, test.iv, &key) - - var xor [64]byte - for len(out) > 0 { - for i := 0; i < 64; i++ { - xor[i] ^= out[i] - } - out = out[64:] - } - - if !bytes.Equal(xor[:], test.xor) { - t.Errorf("#%d: bad result", i) - } - } -} - -var xSalsa20TestData = []struct { - in, nonce, key, out []byte -}{ - { - []byte("Hello world!"), - []byte("24-byte nonce for xsalsa"), - []byte("this is 32-byte key for xsalsa20"), - []byte{0x00, 0x2d, 0x45, 0x13, 0x84, 0x3f, 0xc2, 0x40, 0xc4, 0x01, 0xe5, 0x41}, - }, - { - make([]byte, 64), - []byte("24-byte nonce for xsalsa"), - []byte("this is 32-byte key for xsalsa20"), - []byte{0x48, 0x48, 0x29, 0x7f, 0xeb, 0x1f, 0xb5, 0x2f, 0xb6, - 0x6d, 0x81, 0x60, 0x9b, 0xd5, 0x47, 0xfa, 0xbc, 0xbe, 0x70, - 0x26, 0xed, 0xc8, 0xb5, 0xe5, 0xe4, 0x49, 0xd0, 0x88, 0xbf, - 0xa6, 0x9c, 0x08, 0x8f, 0x5d, 0x8d, 0xa1, 0xd7, 0x91, 0x26, - 0x7c, 0x2c, 0x19, 0x5a, 0x7f, 0x8c, 0xae, 0x9c, 0x4b, 0x40, - 0x50, 0xd0, 0x8c, 0xe6, 0xd3, 0xa1, 0x51, 0xec, 0x26, 0x5f, - 0x3a, 0x58, 0xe4, 0x76, 0x48}, - }, -} - -func TestXSalsa20(t *testing.T) { - var key [32]byte - - for i, test := range xSalsa20TestData { - out := make([]byte, len(test.in)) - copy(key[:], test.key) - XORKeyStream(out, test.in, test.nonce, &key) - if !bytes.Equal(out, test.out) { - t.Errorf("%d: expected %x, got %x", i, test.out, out) - } - } -} - -var ( - keyArray [32]byte - key = &keyArray - nonce [8]byte - msg = make([]byte, 1<<10) -) - -func BenchmarkXOR1K(b *testing.B) { - b.StopTimer() - out := make([]byte, 1024) - b.StartTimer() - for i := 0; i < b.N; i++ { - XORKeyStream(out, msg[:1024], nonce[:], key) - } - b.SetBytes(1024) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/scrypt/scrypt.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/scrypt/scrypt.go deleted file mode 100644 index d21a6db6..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/scrypt/scrypt.go +++ /dev/null @@ -1,243 +0,0 @@ -// Copyright 2012 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 scrypt implements the scrypt key derivation function as defined in -// Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard -// Functions" (http://www.tarsnap.com/scrypt/scrypt.pdf). -package scrypt - -import ( - "crypto/sha256" - "errors" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/pbkdf2" -) - -const maxInt = int(^uint(0) >> 1) - -// blockCopy copies n numbers from src into dst. -func blockCopy(dst, src []uint32, n int) { - copy(dst, src[:n]) -} - -// blockXOR XORs numbers from dst with n numbers from src. -func blockXOR(dst, src []uint32, n int) { - for i, v := range src[:n] { - dst[i] ^= v - } -} - -// salsaXOR applies Salsa20/8 to the XOR of 16 numbers from tmp and in, -// and puts the result into both both tmp and out. -func salsaXOR(tmp *[16]uint32, in, out []uint32) { - w0 := tmp[0] ^ in[0] - w1 := tmp[1] ^ in[1] - w2 := tmp[2] ^ in[2] - w3 := tmp[3] ^ in[3] - w4 := tmp[4] ^ in[4] - w5 := tmp[5] ^ in[5] - w6 := tmp[6] ^ in[6] - w7 := tmp[7] ^ in[7] - w8 := tmp[8] ^ in[8] - w9 := tmp[9] ^ in[9] - w10 := tmp[10] ^ in[10] - w11 := tmp[11] ^ in[11] - w12 := tmp[12] ^ in[12] - w13 := tmp[13] ^ in[13] - w14 := tmp[14] ^ in[14] - w15 := tmp[15] ^ in[15] - - x0, x1, x2, x3, x4, x5, x6, x7, x8 := w0, w1, w2, w3, w4, w5, w6, w7, w8 - x9, x10, x11, x12, x13, x14, x15 := w9, w10, w11, w12, w13, w14, w15 - - for i := 0; i < 8; i += 2 { - u := x0 + x12 - x4 ^= u<<7 | u>>(32-7) - u = x4 + x0 - x8 ^= u<<9 | u>>(32-9) - u = x8 + x4 - x12 ^= u<<13 | u>>(32-13) - u = x12 + x8 - x0 ^= u<<18 | u>>(32-18) - - u = x5 + x1 - x9 ^= u<<7 | u>>(32-7) - u = x9 + x5 - x13 ^= u<<9 | u>>(32-9) - u = x13 + x9 - x1 ^= u<<13 | u>>(32-13) - u = x1 + x13 - x5 ^= u<<18 | u>>(32-18) - - u = x10 + x6 - x14 ^= u<<7 | u>>(32-7) - u = x14 + x10 - x2 ^= u<<9 | u>>(32-9) - u = x2 + x14 - x6 ^= u<<13 | u>>(32-13) - u = x6 + x2 - x10 ^= u<<18 | u>>(32-18) - - u = x15 + x11 - x3 ^= u<<7 | u>>(32-7) - u = x3 + x15 - x7 ^= u<<9 | u>>(32-9) - u = x7 + x3 - x11 ^= u<<13 | u>>(32-13) - u = x11 + x7 - x15 ^= u<<18 | u>>(32-18) - - u = x0 + x3 - x1 ^= u<<7 | u>>(32-7) - u = x1 + x0 - x2 ^= u<<9 | u>>(32-9) - u = x2 + x1 - x3 ^= u<<13 | u>>(32-13) - u = x3 + x2 - x0 ^= u<<18 | u>>(32-18) - - u = x5 + x4 - x6 ^= u<<7 | u>>(32-7) - u = x6 + x5 - x7 ^= u<<9 | u>>(32-9) - u = x7 + x6 - x4 ^= u<<13 | u>>(32-13) - u = x4 + x7 - x5 ^= u<<18 | u>>(32-18) - - u = x10 + x9 - x11 ^= u<<7 | u>>(32-7) - u = x11 + x10 - x8 ^= u<<9 | u>>(32-9) - u = x8 + x11 - x9 ^= u<<13 | u>>(32-13) - u = x9 + x8 - x10 ^= u<<18 | u>>(32-18) - - u = x15 + x14 - x12 ^= u<<7 | u>>(32-7) - u = x12 + x15 - x13 ^= u<<9 | u>>(32-9) - u = x13 + x12 - x14 ^= u<<13 | u>>(32-13) - u = x14 + x13 - x15 ^= u<<18 | u>>(32-18) - } - x0 += w0 - x1 += w1 - x2 += w2 - x3 += w3 - x4 += w4 - x5 += w5 - x6 += w6 - x7 += w7 - x8 += w8 - x9 += w9 - x10 += w10 - x11 += w11 - x12 += w12 - x13 += w13 - x14 += w14 - x15 += w15 - - out[0], tmp[0] = x0, x0 - out[1], tmp[1] = x1, x1 - out[2], tmp[2] = x2, x2 - out[3], tmp[3] = x3, x3 - out[4], tmp[4] = x4, x4 - out[5], tmp[5] = x5, x5 - out[6], tmp[6] = x6, x6 - out[7], tmp[7] = x7, x7 - out[8], tmp[8] = x8, x8 - out[9], tmp[9] = x9, x9 - out[10], tmp[10] = x10, x10 - out[11], tmp[11] = x11, x11 - out[12], tmp[12] = x12, x12 - out[13], tmp[13] = x13, x13 - out[14], tmp[14] = x14, x14 - out[15], tmp[15] = x15, x15 -} - -func blockMix(tmp *[16]uint32, in, out []uint32, r int) { - blockCopy(tmp[:], in[(2*r-1)*16:], 16) - for i := 0; i < 2*r; i += 2 { - salsaXOR(tmp, in[i*16:], out[i*8:]) - salsaXOR(tmp, in[i*16+16:], out[i*8+r*16:]) - } -} - -func integer(b []uint32, r int) uint64 { - j := (2*r - 1) * 16 - return uint64(b[j]) | uint64(b[j+1])<<32 -} - -func smix(b []byte, r, N int, v, xy []uint32) { - var tmp [16]uint32 - x := xy - y := xy[32*r:] - - j := 0 - for i := 0; i < 32*r; i++ { - x[i] = uint32(b[j]) | uint32(b[j+1])<<8 | uint32(b[j+2])<<16 | uint32(b[j+3])<<24 - j += 4 - } - for i := 0; i < N; i += 2 { - blockCopy(v[i*(32*r):], x, 32*r) - blockMix(&tmp, x, y, r) - - blockCopy(v[(i+1)*(32*r):], y, 32*r) - blockMix(&tmp, y, x, r) - } - for i := 0; i < N; i += 2 { - j := int(integer(x, r) & uint64(N-1)) - blockXOR(x, v[j*(32*r):], 32*r) - blockMix(&tmp, x, y, r) - - j = int(integer(y, r) & uint64(N-1)) - blockXOR(y, v[j*(32*r):], 32*r) - blockMix(&tmp, y, x, r) - } - j = 0 - for _, v := range x[:32*r] { - b[j+0] = byte(v >> 0) - b[j+1] = byte(v >> 8) - b[j+2] = byte(v >> 16) - b[j+3] = byte(v >> 24) - j += 4 - } -} - -// Key derives a key from the password, salt, and cost parameters, returning -// a byte slice of length keyLen that can be used as cryptographic key. -// -// N is a CPU/memory cost parameter, which must be a power of two greater than 1. -// r and p must satisfy r * p < 2³â°. If the parameters do not satisfy the -// limits, the function returns a nil byte slice and an error. -// -// For example, you can get a derived key for e.g. AES-256 (which needs a -// 32-byte key) by doing: -// -// dk := scrypt.Key([]byte("some password"), salt, 16384, 8, 1, 32) -// -// The recommended parameters for interactive logins as of 2009 are N=16384, -// r=8, p=1. They should be increased as memory latency and CPU parallelism -// increases. Remember to get a good random salt. -func Key(password, salt []byte, N, r, p, keyLen int) ([]byte, error) { - if N <= 1 || N&(N-1) != 0 { - return nil, errors.New("scrypt: N must be > 1 and a power of 2") - } - if uint64(r)*uint64(p) >= 1<<30 || r > maxInt/128/p || r > maxInt/256 || N > maxInt/128/r { - return nil, errors.New("scrypt: parameters are too large") - } - - xy := make([]uint32, 64*r) - v := make([]uint32, 32*N*r) - b := pbkdf2.Key(password, salt, 1, p*128*r, sha256.New) - - for i := 0; i < p; i++ { - smix(b[i*128*r:], r, N, v, xy) - } - - return pbkdf2.Key(password, b, 1, keyLen, sha256.New), nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/scrypt/scrypt_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/scrypt/scrypt_test.go deleted file mode 100644 index e096c3a3..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/scrypt/scrypt_test.go +++ /dev/null @@ -1,160 +0,0 @@ -// Copyright 2012 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 scrypt - -import ( - "bytes" - "testing" -) - -type testVector struct { - password string - salt string - N, r, p int - output []byte -} - -var good = []testVector{ - { - "password", - "salt", - 2, 10, 10, - []byte{ - 0x48, 0x2c, 0x85, 0x8e, 0x22, 0x90, 0x55, 0xe6, 0x2f, - 0x41, 0xe0, 0xec, 0x81, 0x9a, 0x5e, 0xe1, 0x8b, 0xdb, - 0x87, 0x25, 0x1a, 0x53, 0x4f, 0x75, 0xac, 0xd9, 0x5a, - 0xc5, 0xe5, 0xa, 0xa1, 0x5f, - }, - }, - { - "password", - "salt", - 16, 100, 100, - []byte{ - 0x88, 0xbd, 0x5e, 0xdb, 0x52, 0xd1, 0xdd, 0x0, 0x18, - 0x87, 0x72, 0xad, 0x36, 0x17, 0x12, 0x90, 0x22, 0x4e, - 0x74, 0x82, 0x95, 0x25, 0xb1, 0x8d, 0x73, 0x23, 0xa5, - 0x7f, 0x91, 0x96, 0x3c, 0x37, - }, - }, - { - "this is a long \000 password", - "and this is a long \000 salt", - 16384, 8, 1, - []byte{ - 0xc3, 0xf1, 0x82, 0xee, 0x2d, 0xec, 0x84, 0x6e, 0x70, - 0xa6, 0x94, 0x2f, 0xb5, 0x29, 0x98, 0x5a, 0x3a, 0x09, - 0x76, 0x5e, 0xf0, 0x4c, 0x61, 0x29, 0x23, 0xb1, 0x7f, - 0x18, 0x55, 0x5a, 0x37, 0x07, 0x6d, 0xeb, 0x2b, 0x98, - 0x30, 0xd6, 0x9d, 0xe5, 0x49, 0x26, 0x51, 0xe4, 0x50, - 0x6a, 0xe5, 0x77, 0x6d, 0x96, 0xd4, 0x0f, 0x67, 0xaa, - 0xee, 0x37, 0xe1, 0x77, 0x7b, 0x8a, 0xd5, 0xc3, 0x11, - 0x14, 0x32, 0xbb, 0x3b, 0x6f, 0x7e, 0x12, 0x64, 0x40, - 0x18, 0x79, 0xe6, 0x41, 0xae, - }, - }, - { - "p", - "s", - 2, 1, 1, - []byte{ - 0x48, 0xb0, 0xd2, 0xa8, 0xa3, 0x27, 0x26, 0x11, 0x98, - 0x4c, 0x50, 0xeb, 0xd6, 0x30, 0xaf, 0x52, - }, - }, - - { - "", - "", - 16, 1, 1, - []byte{ - 0x77, 0xd6, 0x57, 0x62, 0x38, 0x65, 0x7b, 0x20, 0x3b, - 0x19, 0xca, 0x42, 0xc1, 0x8a, 0x04, 0x97, 0xf1, 0x6b, - 0x48, 0x44, 0xe3, 0x07, 0x4a, 0xe8, 0xdf, 0xdf, 0xfa, - 0x3f, 0xed, 0xe2, 0x14, 0x42, 0xfc, 0xd0, 0x06, 0x9d, - 0xed, 0x09, 0x48, 0xf8, 0x32, 0x6a, 0x75, 0x3a, 0x0f, - 0xc8, 0x1f, 0x17, 0xe8, 0xd3, 0xe0, 0xfb, 0x2e, 0x0d, - 0x36, 0x28, 0xcf, 0x35, 0xe2, 0x0c, 0x38, 0xd1, 0x89, - 0x06, - }, - }, - { - "password", - "NaCl", - 1024, 8, 16, - []byte{ - 0xfd, 0xba, 0xbe, 0x1c, 0x9d, 0x34, 0x72, 0x00, 0x78, - 0x56, 0xe7, 0x19, 0x0d, 0x01, 0xe9, 0xfe, 0x7c, 0x6a, - 0xd7, 0xcb, 0xc8, 0x23, 0x78, 0x30, 0xe7, 0x73, 0x76, - 0x63, 0x4b, 0x37, 0x31, 0x62, 0x2e, 0xaf, 0x30, 0xd9, - 0x2e, 0x22, 0xa3, 0x88, 0x6f, 0xf1, 0x09, 0x27, 0x9d, - 0x98, 0x30, 0xda, 0xc7, 0x27, 0xaf, 0xb9, 0x4a, 0x83, - 0xee, 0x6d, 0x83, 0x60, 0xcb, 0xdf, 0xa2, 0xcc, 0x06, - 0x40, - }, - }, - { - "pleaseletmein", "SodiumChloride", - 16384, 8, 1, - []byte{ - 0x70, 0x23, 0xbd, 0xcb, 0x3a, 0xfd, 0x73, 0x48, 0x46, - 0x1c, 0x06, 0xcd, 0x81, 0xfd, 0x38, 0xeb, 0xfd, 0xa8, - 0xfb, 0xba, 0x90, 0x4f, 0x8e, 0x3e, 0xa9, 0xb5, 0x43, - 0xf6, 0x54, 0x5d, 0xa1, 0xf2, 0xd5, 0x43, 0x29, 0x55, - 0x61, 0x3f, 0x0f, 0xcf, 0x62, 0xd4, 0x97, 0x05, 0x24, - 0x2a, 0x9a, 0xf9, 0xe6, 0x1e, 0x85, 0xdc, 0x0d, 0x65, - 0x1e, 0x40, 0xdf, 0xcf, 0x01, 0x7b, 0x45, 0x57, 0x58, - 0x87, - }, - }, - /* - // Disabled: needs 1 GiB RAM and takes too long for a simple test. - { - "pleaseletmein", "SodiumChloride", - 1048576, 8, 1, - []byte{ - 0x21, 0x01, 0xcb, 0x9b, 0x6a, 0x51, 0x1a, 0xae, 0xad, - 0xdb, 0xbe, 0x09, 0xcf, 0x70, 0xf8, 0x81, 0xec, 0x56, - 0x8d, 0x57, 0x4a, 0x2f, 0xfd, 0x4d, 0xab, 0xe5, 0xee, - 0x98, 0x20, 0xad, 0xaa, 0x47, 0x8e, 0x56, 0xfd, 0x8f, - 0x4b, 0xa5, 0xd0, 0x9f, 0xfa, 0x1c, 0x6d, 0x92, 0x7c, - 0x40, 0xf4, 0xc3, 0x37, 0x30, 0x40, 0x49, 0xe8, 0xa9, - 0x52, 0xfb, 0xcb, 0xf4, 0x5c, 0x6f, 0xa7, 0x7a, 0x41, - 0xa4, - }, - }, - */ -} - -var bad = []testVector{ - {"p", "s", 0, 1, 1, nil}, // N == 0 - {"p", "s", 1, 1, 1, nil}, // N == 1 - {"p", "s", 7, 8, 1, nil}, // N is not power of 2 - {"p", "s", 16, maxInt / 2, maxInt / 2, nil}, // p * r too large -} - -func TestKey(t *testing.T) { - for i, v := range good { - k, err := Key([]byte(v.password), []byte(v.salt), v.N, v.r, v.p, len(v.output)) - if err != nil { - t.Errorf("%d: got unexpected error: %s", i, err) - } - if !bytes.Equal(k, v.output) { - t.Errorf("%d: expected %x, got %x", i, v.output, k) - } - } - for i, v := range bad { - _, err := Key([]byte(v.password), []byte(v.salt), v.N, v.r, v.p, 32) - if err == nil { - t.Errorf("%d: expected error, got nil", i) - } - } -} - -func BenchmarkKey(b *testing.B) { - for i := 0; i < b.N; i++ { - Key([]byte("password"), []byte("salt"), 16384, 8, 1, 64) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/doc.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/doc.go deleted file mode 100644 index 3dab530f..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/doc.go +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package sha3 implements the SHA-3 fixed-output-length hash functions and -// the SHAKE variable-output-length hash functions defined by FIPS-202. -// -// Both types of hash function use the "sponge" construction and the Keccak -// permutation. For a detailed specification see http://keccak.noekeon.org/ -// -// -// Guidance -// -// If you aren't sure what function you need, use SHAKE256 with at least 64 -// bytes of output. The SHAKE instances are faster than the SHA3 instances; -// the latter have to allocate memory to conform to the hash.Hash interface. -// -// If you need a secret-key MAC (message authentication code), prepend the -// secret key to the input, hash with SHAKE256 and read at least 32 bytes of -// output. -// -// -// Security strengths -// -// The SHA3-x (x equals 224, 256, 384, or 512) functions have a security -// strength against preimage attacks of x bits. Since they only produce "x" -// bits of output, their collision-resistance is only "x/2" bits. -// -// The SHAKE-256 and -128 functions have a generic security strength of 256 and -// 128 bits against all attacks, provided that at least 2x bits of their output -// is used. Requesting more than 64 or 32 bytes of output, respectively, does -// not increase the collision-resistance of the SHAKE functions. -// -// -// The sponge construction -// -// A sponge builds a pseudo-random function from a public pseudo-random -// permutation, by applying the permutation to a state of "rate + capacity" -// bytes, but hiding "capacity" of the bytes. -// -// A sponge starts out with a zero state. To hash an input using a sponge, up -// to "rate" bytes of the input are XORed into the sponge's state. The sponge -// is then "full" and the permutation is applied to "empty" it. This process is -// repeated until all the input has been "absorbed". The input is then padded. -// The digest is "squeezed" from the sponge in the same way, except that output -// output is copied out instead of input being XORed in. -// -// A sponge is parameterized by its generic security strength, which is equal -// to half its capacity; capacity + rate is equal to the permutation's width. -// Since the KeccakF-1600 permutation is 1600 bits (200 bytes) wide, this means -// that the security strength of a sponge instance is equal to (1600 - bitrate) / 2. -// -// -// Recommendations -// -// The SHAKE functions are recommended for most new uses. They can produce -// output of arbitrary length. SHAKE256, with an output length of at least -// 64 bytes, provides 256-bit security against all attacks. The Keccak team -// recommends it for most applications upgrading from SHA2-512. (NIST chose a -// much stronger, but much slower, sponge instance for SHA3-512.) -// -// The SHA-3 functions are "drop-in" replacements for the SHA-2 functions. -// They produce output of the same length, with the same security strengths -// against all attacks. This means, in particular, that SHA3-256 only has -// 128-bit collision resistance, because its output length is 32 bytes. -package sha3 diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/hashes.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/hashes.go deleted file mode 100644 index 2b51cf4e..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/hashes.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// This file provides functions for creating instances of the SHA-3 -// and SHAKE hash functions, as well as utility functions for hashing -// bytes. - -import ( - "hash" -) - -// New224 creates a new SHA3-224 hash. -// Its generic security strength is 224 bits against preimage attacks, -// and 112 bits against collision attacks. -func New224() hash.Hash { return &state{rate: 144, outputLen: 28, dsbyte: 0x06} } - -// New256 creates a new SHA3-256 hash. -// Its generic security strength is 256 bits against preimage attacks, -// and 128 bits against collision attacks. -func New256() hash.Hash { return &state{rate: 136, outputLen: 32, dsbyte: 0x06} } - -// New384 creates a new SHA3-384 hash. -// Its generic security strength is 384 bits against preimage attacks, -// and 192 bits against collision attacks. -func New384() hash.Hash { return &state{rate: 104, outputLen: 48, dsbyte: 0x06} } - -// New512 creates a new SHA3-512 hash. -// Its generic security strength is 512 bits against preimage attacks, -// and 256 bits against collision attacks. -func New512() hash.Hash { return &state{rate: 72, outputLen: 64, dsbyte: 0x06} } - -// Sum224 returns the SHA3-224 digest of the data. -func Sum224(data []byte) (digest [28]byte) { - h := New224() - h.Write(data) - h.Sum(digest[:0]) - return -} - -// Sum256 returns the SHA3-256 digest of the data. -func Sum256(data []byte) (digest [32]byte) { - h := New256() - h.Write(data) - h.Sum(digest[:0]) - return -} - -// Sum384 returns the SHA3-384 digest of the data. -func Sum384(data []byte) (digest [48]byte) { - h := New384() - h.Write(data) - h.Sum(digest[:0]) - return -} - -// Sum512 returns the SHA3-512 digest of the data. -func Sum512(data []byte) (digest [64]byte) { - h := New512() - h.Write(data) - h.Sum(digest[:0]) - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/keccakf.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/keccakf.go deleted file mode 100644 index 13e7058f..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/keccakf.go +++ /dev/null @@ -1,410 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// rc stores the round constants for use in the ι step. -var rc = [24]uint64{ - 0x0000000000000001, - 0x0000000000008082, - 0x800000000000808A, - 0x8000000080008000, - 0x000000000000808B, - 0x0000000080000001, - 0x8000000080008081, - 0x8000000000008009, - 0x000000000000008A, - 0x0000000000000088, - 0x0000000080008009, - 0x000000008000000A, - 0x000000008000808B, - 0x800000000000008B, - 0x8000000000008089, - 0x8000000000008003, - 0x8000000000008002, - 0x8000000000000080, - 0x000000000000800A, - 0x800000008000000A, - 0x8000000080008081, - 0x8000000000008080, - 0x0000000080000001, - 0x8000000080008008, -} - -// keccakF1600 applies the Keccak permutation to a 1600b-wide -// state represented as a slice of 25 uint64s. -func keccakF1600(a *[25]uint64) { - // Implementation translated from Keccak-inplace.c - // in the keccak reference code. - var t, bc0, bc1, bc2, bc3, bc4, d0, d1, d2, d3, d4 uint64 - - for i := 0; i < 24; i += 4 { - // Combines the 5 steps in each round into 2 steps. - // Unrolls 4 rounds per loop and spreads some steps across rounds. - - // Round 1 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[6] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[12] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[18] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[24] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i] - a[6] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[16] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[22] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[3] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[10] = bc0 ^ (bc2 &^ bc1) - a[16] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[1] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[7] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[19] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[20] = bc0 ^ (bc2 &^ bc1) - a[1] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[11] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[23] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[4] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[5] = bc0 ^ (bc2 &^ bc1) - a[11] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[2] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[8] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[14] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[15] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - // Round 2 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[16] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[7] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[23] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[14] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+1] - a[16] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[11] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[2] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[18] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[20] = bc0 ^ (bc2 &^ bc1) - a[11] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[6] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[22] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[4] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[15] = bc0 ^ (bc2 &^ bc1) - a[6] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[1] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[8] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[24] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[10] = bc0 ^ (bc2 &^ bc1) - a[1] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[12] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[3] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[19] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[5] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - // Round 3 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[11] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[22] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[8] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[19] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+2] - a[11] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[1] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[12] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[23] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[15] = bc0 ^ (bc2 &^ bc1) - a[1] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[16] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[2] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[24] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[5] = bc0 ^ (bc2 &^ bc1) - a[16] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[6] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[3] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[14] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[20] = bc0 ^ (bc2 &^ bc1) - a[6] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[7] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[18] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[4] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[10] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - // Round 4 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[1] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[2] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[3] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[4] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+3] - a[1] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[6] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[7] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[8] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[5] = bc0 ^ (bc2 &^ bc1) - a[6] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[11] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[12] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[14] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[10] = bc0 ^ (bc2 &^ bc1) - a[11] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[16] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[18] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[19] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[15] = bc0 ^ (bc2 &^ bc1) - a[16] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[22] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[23] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[24] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[20] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/register.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/register.go deleted file mode 100644 index 3cf6a22e..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/register.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.4 - -package sha3 - -import ( - "crypto" -) - -func init() { - crypto.RegisterHash(crypto.SHA3_224, New224) - crypto.RegisterHash(crypto.SHA3_256, New256) - crypto.RegisterHash(crypto.SHA3_384, New384) - crypto.RegisterHash(crypto.SHA3_512, New512) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/sha3.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/sha3.go deleted file mode 100644 index c8fd31cb..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/sha3.go +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// spongeDirection indicates the direction bytes are flowing through the sponge. -type spongeDirection int - -const ( - // spongeAbsorbing indicates that the sponge is absorbing input. - spongeAbsorbing spongeDirection = iota - // spongeSqueezing indicates that the sponge is being squeezed. - spongeSqueezing -) - -const ( - // maxRate is the maximum size of the internal buffer. SHAKE-256 - // currently needs the largest buffer. - maxRate = 168 -) - -type state struct { - // Generic sponge components. - a [25]uint64 // main state of the hash - buf []byte // points into storage - rate int // the number of bytes of state to use - - // dsbyte contains the "domain separation" bits and the first bit of - // the padding. Sections 6.1 and 6.2 of [1] separate the outputs of the - // SHA-3 and SHAKE functions by appending bitstrings to the message. - // Using a little-endian bit-ordering convention, these are "01" for SHA-3 - // and "1111" for SHAKE, or 00000010b and 00001111b, respectively. Then the - // padding rule from section 5.1 is applied to pad the message to a multiple - // of the rate, which involves adding a "1" bit, zero or more "0" bits, and - // a final "1" bit. We merge the first "1" bit from the padding into dsbyte, - // giving 00000110b (0x06) and 00011111b (0x1f). - // [1] http://csrc.nist.gov/publications/drafts/fips-202/fips_202_draft.pdf - // "Draft FIPS 202: SHA-3 Standard: Permutation-Based Hash and - // Extendable-Output Functions (May 2014)" - dsbyte byte - storage [maxRate]byte - - // Specific to SHA-3 and SHAKE. - fixedOutput bool // whether this is a fixed-ouput-length instance - outputLen int // the default output size in bytes - state spongeDirection // whether the sponge is absorbing or squeezing -} - -// BlockSize returns the rate of sponge underlying this hash function. -func (d *state) BlockSize() int { return d.rate } - -// Size returns the output size of the hash function in bytes. -func (d *state) Size() int { return d.outputLen } - -// Reset clears the internal state by zeroing the sponge state and -// the byte buffer, and setting Sponge.state to absorbing. -func (d *state) Reset() { - // Zero the permutation's state. - for i := range d.a { - d.a[i] = 0 - } - d.state = spongeAbsorbing - d.buf = d.storage[:0] -} - -func (d *state) clone() *state { - ret := *d - if ret.state == spongeAbsorbing { - ret.buf = ret.storage[:len(ret.buf)] - } else { - ret.buf = ret.storage[d.rate-cap(d.buf) : d.rate] - } - - return &ret -} - -// permute applies the KeccakF-1600 permutation. It handles -// any input-output buffering. -func (d *state) permute() { - switch d.state { - case spongeAbsorbing: - // If we're absorbing, we need to xor the input into the state - // before applying the permutation. - xorIn(d, d.buf) - d.buf = d.storage[:0] - keccakF1600(&d.a) - case spongeSqueezing: - // If we're squeezing, we need to apply the permutatin before - // copying more output. - keccakF1600(&d.a) - d.buf = d.storage[:d.rate] - copyOut(d, d.buf) - } -} - -// pads appends the domain separation bits in dsbyte, applies -// the multi-bitrate 10..1 padding rule, and permutes the state. -func (d *state) padAndPermute(dsbyte byte) { - if d.buf == nil { - d.buf = d.storage[:0] - } - // Pad with this instance's domain-separator bits. We know that there's - // at least one byte of space in d.buf because, if it were full, - // permute would have been called to empty it. dsbyte also contains the - // first one bit for the padding. See the comment in the state struct. - d.buf = append(d.buf, dsbyte) - zerosStart := len(d.buf) - d.buf = d.storage[:d.rate] - for i := zerosStart; i < d.rate; i++ { - d.buf[i] = 0 - } - // This adds the final one bit for the padding. Because of the way that - // bits are numbered from the LSB upwards, the final bit is the MSB of - // the last byte. - d.buf[d.rate-1] ^= 0x80 - // Apply the permutation - d.permute() - d.state = spongeSqueezing - d.buf = d.storage[:d.rate] - copyOut(d, d.buf) -} - -// Write absorbs more data into the hash's state. It produces an error -// if more data is written to the ShakeHash after writing -func (d *state) Write(p []byte) (written int, err error) { - if d.state != spongeAbsorbing { - panic("sha3: write to sponge after read") - } - if d.buf == nil { - d.buf = d.storage[:0] - } - written = len(p) - - for len(p) > 0 { - if len(d.buf) == 0 && len(p) >= d.rate { - // The fast path; absorb a full "rate" bytes of input and apply the permutation. - xorIn(d, p[:d.rate]) - p = p[d.rate:] - keccakF1600(&d.a) - } else { - // The slow path; buffer the input until we can fill the sponge, and then xor it in. - todo := d.rate - len(d.buf) - if todo > len(p) { - todo = len(p) - } - d.buf = append(d.buf, p[:todo]...) - p = p[todo:] - - // If the sponge is full, apply the permutation. - if len(d.buf) == d.rate { - d.permute() - } - } - } - - return -} - -// Read squeezes an arbitrary number of bytes from the sponge. -func (d *state) Read(out []byte) (n int, err error) { - // If we're still absorbing, pad and apply the permutation. - if d.state == spongeAbsorbing { - d.padAndPermute(d.dsbyte) - } - - n = len(out) - - // Now, do the squeezing. - for len(out) > 0 { - n := copy(out, d.buf) - d.buf = d.buf[n:] - out = out[n:] - - // Apply the permutation if we've squeezed the sponge dry. - if len(d.buf) == 0 { - d.permute() - } - } - - return -} - -// Sum applies padding to the hash state and then squeezes out the desired -// number of output bytes. -func (d *state) Sum(in []byte) []byte { - // Make a copy of the original hash so that caller can keep writing - // and summing. - dup := d.clone() - hash := make([]byte, dup.outputLen) - dup.Read(hash) - return append(in, hash...) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/sha3_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/sha3_test.go deleted file mode 100644 index caf72f27..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/sha3_test.go +++ /dev/null @@ -1,306 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// Tests include all the ShortMsgKATs provided by the Keccak team at -// https://github.com/gvanas/KeccakCodePackage -// -// They only include the zero-bit case of the bitwise testvectors -// published by NIST in the draft of FIPS-202. - -import ( - "bytes" - "compress/flate" - "encoding/hex" - "encoding/json" - "hash" - "os" - "strings" - "testing" -) - -const ( - testString = "brekeccakkeccak koax koax" - katFilename = "testdata/keccakKats.json.deflate" -) - -// Internal-use instances of SHAKE used to test against KATs. -func newHashShake128() hash.Hash { - return &state{rate: 168, dsbyte: 0x1f, outputLen: 512} -} -func newHashShake256() hash.Hash { - return &state{rate: 136, dsbyte: 0x1f, outputLen: 512} -} - -// testDigests contains functions returning hash.Hash instances -// with output-length equal to the KAT length for both SHA-3 and -// SHAKE instances. -var testDigests = map[string]func() hash.Hash{ - "SHA3-224": New224, - "SHA3-256": New256, - "SHA3-384": New384, - "SHA3-512": New512, - "SHAKE128": newHashShake128, - "SHAKE256": newHashShake256, -} - -// testShakes contains functions that return ShakeHash instances for -// testing the ShakeHash-specific interface. -var testShakes = map[string]func() ShakeHash{ - "SHAKE128": NewShake128, - "SHAKE256": NewShake256, -} - -// decodeHex converts a hex-encoded string into a raw byte string. -func decodeHex(s string) []byte { - b, err := hex.DecodeString(s) - if err != nil { - panic(err) - } - return b -} - -// structs used to marshal JSON test-cases. -type KeccakKats struct { - Kats map[string][]struct { - Digest string `json:"digest"` - Length int64 `json:"length"` - Message string `json:"message"` - } -} - -func testUnalignedAndGeneric(t *testing.T, testf func(impl string)) { - xorInOrig, copyOutOrig := xorIn, copyOut - xorIn, copyOut = xorInGeneric, copyOutGeneric - testf("generic") - if xorImplementationUnaligned != "generic" { - xorIn, copyOut = xorInUnaligned, copyOutUnaligned - testf("unaligned") - } - xorIn, copyOut = xorInOrig, copyOutOrig -} - -// TestKeccakKats tests the SHA-3 and Shake implementations against all the -// ShortMsgKATs from https://github.com/gvanas/KeccakCodePackage -// (The testvectors are stored in keccakKats.json.deflate due to their length.) -func TestKeccakKats(t *testing.T) { - testUnalignedAndGeneric(t, func(impl string) { - // Read the KATs. - deflated, err := os.Open(katFilename) - if err != nil { - t.Errorf("error opening %s: %s", katFilename, err) - } - file := flate.NewReader(deflated) - dec := json.NewDecoder(file) - var katSet KeccakKats - err = dec.Decode(&katSet) - if err != nil { - t.Errorf("error decoding KATs: %s", err) - } - - // Do the KATs. - for functionName, kats := range katSet.Kats { - d := testDigests[functionName]() - for _, kat := range kats { - d.Reset() - in, err := hex.DecodeString(kat.Message) - if err != nil { - t.Errorf("error decoding KAT: %s", err) - } - d.Write(in[:kat.Length/8]) - got := strings.ToUpper(hex.EncodeToString(d.Sum(nil))) - if got != kat.Digest { - t.Errorf("function=%s, implementation=%s, length=%d\nmessage:\n %s\ngot:\n %s\nwanted:\n %s", - functionName, impl, kat.Length, kat.Message, got, kat.Digest) - t.Logf("wanted %+v", kat) - t.FailNow() - } - continue - } - } - }) -} - -// TestUnalignedWrite tests that writing data in an arbitrary pattern with -// small input buffers. -func testUnalignedWrite(t *testing.T) { - testUnalignedAndGeneric(t, func(impl string) { - buf := sequentialBytes(0x10000) - for alg, df := range testDigests { - d := df() - d.Reset() - d.Write(buf) - want := d.Sum(nil) - d.Reset() - for i := 0; i < len(buf); { - // Cycle through offsets which make a 137 byte sequence. - // Because 137 is prime this sequence should exercise all corner cases. - offsets := [17]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1} - for _, j := range offsets { - if v := len(buf) - i; v < j { - j = v - } - d.Write(buf[i : i+j]) - i += j - } - } - got := d.Sum(nil) - if !bytes.Equal(got, want) { - t.Errorf("Unaligned writes, implementation=%s, alg=%s\ngot %q, want %q", impl, alg, got, want) - } - } - }) -} - -// TestAppend checks that appending works when reallocation is necessary. -func TestAppend(t *testing.T) { - testUnalignedAndGeneric(t, func(impl string) { - d := New224() - - for capacity := 2; capacity <= 66; capacity += 64 { - // The first time around the loop, Sum will have to reallocate. - // The second time, it will not. - buf := make([]byte, 2, capacity) - d.Reset() - d.Write([]byte{0xcc}) - buf = d.Sum(buf) - expected := "0000DF70ADC49B2E76EEE3A6931B93FA41841C3AF2CDF5B32A18B5478C39" - if got := strings.ToUpper(hex.EncodeToString(buf)); got != expected { - t.Errorf("got %s, want %s", got, expected) - } - } - }) -} - -// TestAppendNoRealloc tests that appending works when no reallocation is necessary. -func TestAppendNoRealloc(t *testing.T) { - testUnalignedAndGeneric(t, func(impl string) { - buf := make([]byte, 1, 200) - d := New224() - d.Write([]byte{0xcc}) - buf = d.Sum(buf) - expected := "00DF70ADC49B2E76EEE3A6931B93FA41841C3AF2CDF5B32A18B5478C39" - if got := strings.ToUpper(hex.EncodeToString(buf)); got != expected { - t.Errorf("%s: got %s, want %s", impl, got, expected) - } - }) -} - -// TestSqueezing checks that squeezing the full output a single time produces -// the same output as repeatedly squeezing the instance. -func TestSqueezing(t *testing.T) { - testUnalignedAndGeneric(t, func(impl string) { - for functionName, newShakeHash := range testShakes { - d0 := newShakeHash() - d0.Write([]byte(testString)) - ref := make([]byte, 32) - d0.Read(ref) - - d1 := newShakeHash() - d1.Write([]byte(testString)) - var multiple []byte - for _ = range ref { - one := make([]byte, 1) - d1.Read(one) - multiple = append(multiple, one...) - } - if !bytes.Equal(ref, multiple) { - t.Errorf("%s (%s): squeezing %d bytes one at a time failed", functionName, impl, len(ref)) - } - } - }) -} - -// sequentialBytes produces a buffer of size consecutive bytes 0x00, 0x01, ..., used for testing. -func sequentialBytes(size int) []byte { - result := make([]byte, size) - for i := range result { - result[i] = byte(i) - } - return result -} - -// BenchmarkPermutationFunction measures the speed of the permutation function -// with no input data. -func BenchmarkPermutationFunction(b *testing.B) { - b.SetBytes(int64(200)) - var lanes [25]uint64 - for i := 0; i < b.N; i++ { - keccakF1600(&lanes) - } -} - -// benchmarkHash tests the speed to hash num buffers of buflen each. -func benchmarkHash(b *testing.B, h hash.Hash, size, num int) { - b.StopTimer() - h.Reset() - data := sequentialBytes(size) - b.SetBytes(int64(size * num)) - b.StartTimer() - - var state []byte - for i := 0; i < b.N; i++ { - for j := 0; j < num; j++ { - h.Write(data) - } - state = h.Sum(state[:0]) - } - b.StopTimer() - h.Reset() -} - -// benchmarkShake is specialized to the Shake instances, which don't -// require a copy on reading output. -func benchmarkShake(b *testing.B, h ShakeHash, size, num int) { - b.StopTimer() - h.Reset() - data := sequentialBytes(size) - d := make([]byte, 32) - - b.SetBytes(int64(size * num)) - b.StartTimer() - - for i := 0; i < b.N; i++ { - h.Reset() - for j := 0; j < num; j++ { - h.Write(data) - } - h.Read(d) - } -} - -func BenchmarkSha3_512_MTU(b *testing.B) { benchmarkHash(b, New512(), 1350, 1) } -func BenchmarkSha3_384_MTU(b *testing.B) { benchmarkHash(b, New384(), 1350, 1) } -func BenchmarkSha3_256_MTU(b *testing.B) { benchmarkHash(b, New256(), 1350, 1) } -func BenchmarkSha3_224_MTU(b *testing.B) { benchmarkHash(b, New224(), 1350, 1) } - -func BenchmarkShake128_MTU(b *testing.B) { benchmarkShake(b, NewShake128(), 1350, 1) } -func BenchmarkShake256_MTU(b *testing.B) { benchmarkShake(b, NewShake256(), 1350, 1) } -func BenchmarkShake256_16x(b *testing.B) { benchmarkShake(b, NewShake256(), 16, 1024) } -func BenchmarkShake256_1MiB(b *testing.B) { benchmarkShake(b, NewShake256(), 1024, 1024) } - -func BenchmarkSha3_512_1MiB(b *testing.B) { benchmarkHash(b, New512(), 1024, 1024) } - -func Example_sum() { - buf := []byte("some data to hash") - // A hash needs to be 64 bytes long to have 256-bit collision resistance. - h := make([]byte, 64) - // Compute a 64-byte hash of buf and put it in h. - ShakeSum256(h, buf) -} - -func Example_mac() { - k := []byte("this is a secret key; you should generate a strong random key that's at least 32 bytes long") - buf := []byte("and this is some data to authenticate") - // A MAC with 32 bytes of output has 256-bit security strength -- if you use at least a 32-byte-long key. - h := make([]byte, 32) - d := NewShake256() - // Write the key into the hash. - d.Write(k) - // Now write the data. - d.Write(buf) - // Read 32 bytes of output from the hash into h. - d.Read(h) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/shake.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/shake.go deleted file mode 100644 index 841f9860..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/shake.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// This file defines the ShakeHash interface, and provides -// functions for creating SHAKE instances, as well as utility -// functions for hashing bytes to arbitrary-length output. - -import ( - "io" -) - -// ShakeHash defines the interface to hash functions that -// support arbitrary-length output. -type ShakeHash interface { - // Write absorbs more data into the hash's state. It panics if input is - // written to it after output has been read from it. - io.Writer - - // Read reads more output from the hash; reading affects the hash's - // state. (ShakeHash.Read is thus very different from Hash.Sum) - // It never returns an error. - io.Reader - - // Clone returns a copy of the ShakeHash in its current state. - Clone() ShakeHash - - // Reset resets the ShakeHash to its initial state. - Reset() -} - -func (d *state) Clone() ShakeHash { - return d.clone() -} - -// NewShake128 creates a new SHAKE128 variable-output-length ShakeHash. -// Its generic security strength is 128 bits against all attacks if at -// least 32 bytes of its output are used. -func NewShake128() ShakeHash { return &state{rate: 168, dsbyte: 0x1f} } - -// NewShake256 creates a new SHAKE128 variable-output-length ShakeHash. -// Its generic security strength is 256 bits against all attacks if -// at least 64 bytes of its output are used. -func NewShake256() ShakeHash { return &state{rate: 136, dsbyte: 0x1f} } - -// ShakeSum128 writes an arbitrary-length digest of data into hash. -func ShakeSum128(hash, data []byte) { - h := NewShake128() - h.Write(data) - h.Read(hash) -} - -// ShakeSum256 writes an arbitrary-length digest of data into hash. -func ShakeSum256(hash, data []byte) { - h := NewShake256() - h.Write(data) - h.Read(hash) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/testdata/keccakKats.json.deflate b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/testdata/keccakKats.json.deflate deleted file mode 100644 index 62e85ae24236b46c09e5cfa84c71c69f5cc33cf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521342 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%0A)?mb&HqO@U4K=5g;iagFJQ& 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%0DdSPIES;LF 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 luDc`(pW0__Rz?Wm6SpPLnlNMd7* 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�V!J0KT+&BAH1v#`|8Nt$2;F?gj)~q5^Xv&)sE# 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 diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/xor.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/xor.go deleted file mode 100644 index d622979c..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/xor.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !amd64,!386 appengine - -package sha3 - -var ( - xorIn = xorInGeneric - copyOut = copyOutGeneric - xorInUnaligned = xorInGeneric - copyOutUnaligned = copyOutGeneric -) - -const xorImplementationUnaligned = "generic" diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/xor_generic.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/xor_generic.go deleted file mode 100644 index fd35f02e..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/xor_generic.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -import "encoding/binary" - -// xorInGeneric xors the bytes in buf into the state; it -// makes no non-portable assumptions about memory layout -// or alignment. -func xorInGeneric(d *state, buf []byte) { - n := len(buf) / 8 - - for i := 0; i < n; i++ { - a := binary.LittleEndian.Uint64(buf) - d.a[i] ^= a - buf = buf[8:] - } -} - -// copyOutGeneric copies ulint64s to a byte buffer. -func copyOutGeneric(d *state, b []byte) { - for i := 0; len(b) >= 8; i++ { - binary.LittleEndian.PutUint64(b, d.a[i]) - b = b[8:] - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/xor_unaligned.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/xor_unaligned.go deleted file mode 100644 index c7851a1d..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/sha3/xor_unaligned.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build amd64 386 -// +build !appengine - -package sha3 - -import "unsafe" - -func xorInUnaligned(d *state, buf []byte) { - bw := (*[maxRate / 8]uint64)(unsafe.Pointer(&buf[0])) - n := len(buf) - if n >= 72 { - d.a[0] ^= bw[0] - d.a[1] ^= bw[1] - d.a[2] ^= bw[2] - d.a[3] ^= bw[3] - d.a[4] ^= bw[4] - d.a[5] ^= bw[5] - d.a[6] ^= bw[6] - d.a[7] ^= bw[7] - d.a[8] ^= bw[8] - } - if n >= 104 { - d.a[9] ^= bw[9] - d.a[10] ^= bw[10] - d.a[11] ^= bw[11] - d.a[12] ^= bw[12] - } - if n >= 136 { - d.a[13] ^= bw[13] - d.a[14] ^= bw[14] - d.a[15] ^= bw[15] - d.a[16] ^= bw[16] - } - if n >= 144 { - d.a[17] ^= bw[17] - } - if n >= 168 { - d.a[18] ^= bw[18] - d.a[19] ^= bw[19] - d.a[20] ^= bw[20] - } -} - -func copyOutUnaligned(d *state, buf []byte) { - ab := (*[maxRate]uint8)(unsafe.Pointer(&d.a[0])) - copy(buf, ab[:]) -} - -var ( - xorIn = xorInUnaligned - copyOut = copyOutUnaligned -) - -const xorImplementationUnaligned = "unaligned" diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/client.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/client.go deleted file mode 100644 index 73e9d96b..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/client.go +++ /dev/null @@ -1,615 +0,0 @@ -// Copyright 2012 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 agent implements a client to an ssh-agent daemon. - -References: - [PROTOCOL.agent]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.agent?rev=HEAD -*/ -package agent - -import ( - "bytes" - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rsa" - "encoding/base64" - "encoding/binary" - "errors" - "fmt" - "io" - "math/big" - "sync" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh" -) - -// Agent represents the capabilities of an ssh-agent. -type Agent interface { - // List returns the identities known to the agent. - List() ([]*Key, error) - - // Sign has the agent sign the data using a protocol 2 key as defined - // in [PROTOCOL.agent] section 2.6.2. - Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) - - // Add adds a private key to the agent. - Add(key AddedKey) error - - // Remove removes all identities with the given public key. - Remove(key ssh.PublicKey) error - - // RemoveAll removes all identities. - RemoveAll() error - - // Lock locks the agent. Sign and Remove will fail, and List will empty an empty list. - Lock(passphrase []byte) error - - // Unlock undoes the effect of Lock - Unlock(passphrase []byte) error - - // Signers returns signers for all the known keys. - Signers() ([]ssh.Signer, error) -} - -// AddedKey describes an SSH key to be added to an Agent. -type AddedKey struct { - // PrivateKey must be a *rsa.PrivateKey, *dsa.PrivateKey or - // *ecdsa.PrivateKey, which will be inserted into the agent. - PrivateKey interface{} - // Certificate, if not nil, is communicated to the agent and will be - // stored with the key. - Certificate *ssh.Certificate - // Comment is an optional, free-form string. - Comment string - // LifetimeSecs, if not zero, is the number of seconds that the - // agent will store the key for. - LifetimeSecs uint32 - // ConfirmBeforeUse, if true, requests that the agent confirm with the - // user before each use of this key. - ConfirmBeforeUse bool -} - -// See [PROTOCOL.agent], section 3. -const ( - agentRequestV1Identities = 1 - - // 3.2 Requests from client to agent for protocol 2 key operations - agentAddIdentity = 17 - agentRemoveIdentity = 18 - agentRemoveAllIdentities = 19 - agentAddIdConstrained = 25 - - // 3.3 Key-type independent requests from client to agent - agentAddSmartcardKey = 20 - agentRemoveSmartcardKey = 21 - agentLock = 22 - agentUnlock = 23 - agentAddSmartcardKeyConstrained = 26 - - // 3.7 Key constraint identifiers - agentConstrainLifetime = 1 - agentConstrainConfirm = 2 -) - -// maxAgentResponseBytes is the maximum agent reply size that is accepted. This -// is a sanity check, not a limit in the spec. -const maxAgentResponseBytes = 16 << 20 - -// Agent messages: -// These structures mirror the wire format of the corresponding ssh agent -// messages found in [PROTOCOL.agent]. - -// 3.4 Generic replies from agent to client -const agentFailure = 5 - -type failureAgentMsg struct{} - -const agentSuccess = 6 - -type successAgentMsg struct{} - -// See [PROTOCOL.agent], section 2.5.2. -const agentRequestIdentities = 11 - -type requestIdentitiesAgentMsg struct{} - -// See [PROTOCOL.agent], section 2.5.2. -const agentIdentitiesAnswer = 12 - -type identitiesAnswerAgentMsg struct { - NumKeys uint32 `sshtype:"12"` - Keys []byte `ssh:"rest"` -} - -// See [PROTOCOL.agent], section 2.6.2. -const agentSignRequest = 13 - -type signRequestAgentMsg struct { - KeyBlob []byte `sshtype:"13"` - Data []byte - Flags uint32 -} - -// See [PROTOCOL.agent], section 2.6.2. - -// 3.6 Replies from agent to client for protocol 2 key operations -const agentSignResponse = 14 - -type signResponseAgentMsg struct { - SigBlob []byte `sshtype:"14"` -} - -type publicKey struct { - Format string - Rest []byte `ssh:"rest"` -} - -// Key represents a protocol 2 public key as defined in -// [PROTOCOL.agent], section 2.5.2. -type Key struct { - Format string - Blob []byte - Comment string -} - -func clientErr(err error) error { - return fmt.Errorf("agent: client error: %v", err) -} - -// String returns the storage form of an agent key with the format, base64 -// encoded serialized key, and the comment if it is not empty. -func (k *Key) String() string { - s := string(k.Format) + " " + base64.StdEncoding.EncodeToString(k.Blob) - - if k.Comment != "" { - s += " " + k.Comment - } - - return s -} - -// Type returns the public key type. -func (k *Key) Type() string { - return k.Format -} - -// Marshal returns key blob to satisfy the ssh.PublicKey interface. -func (k *Key) Marshal() []byte { - return k.Blob -} - -// Verify satisfies the ssh.PublicKey interface, but is not -// implemented for agent keys. -func (k *Key) Verify(data []byte, sig *ssh.Signature) error { - return errors.New("agent: agent key does not know how to verify") -} - -type wireKey struct { - Format string - Rest []byte `ssh:"rest"` -} - -func parseKey(in []byte) (out *Key, rest []byte, err error) { - var record struct { - Blob []byte - Comment string - Rest []byte `ssh:"rest"` - } - - if err := ssh.Unmarshal(in, &record); err != nil { - return nil, nil, err - } - - var wk wireKey - if err := ssh.Unmarshal(record.Blob, &wk); err != nil { - return nil, nil, err - } - - return &Key{ - Format: wk.Format, - Blob: record.Blob, - Comment: record.Comment, - }, record.Rest, nil -} - -// client is a client for an ssh-agent process. -type client struct { - // conn is typically a *net.UnixConn - conn io.ReadWriter - // mu is used to prevent concurrent access to the agent - mu sync.Mutex -} - -// NewClient returns an Agent that talks to an ssh-agent process over -// the given connection. -func NewClient(rw io.ReadWriter) Agent { - return &client{conn: rw} -} - -// call sends an RPC to the agent. On success, the reply is -// unmarshaled into reply and replyType is set to the first byte of -// the reply, which contains the type of the message. -func (c *client) call(req []byte) (reply interface{}, err error) { - c.mu.Lock() - defer c.mu.Unlock() - - msg := make([]byte, 4+len(req)) - binary.BigEndian.PutUint32(msg, uint32(len(req))) - copy(msg[4:], req) - if _, err = c.conn.Write(msg); err != nil { - return nil, clientErr(err) - } - - var respSizeBuf [4]byte - if _, err = io.ReadFull(c.conn, respSizeBuf[:]); err != nil { - return nil, clientErr(err) - } - respSize := binary.BigEndian.Uint32(respSizeBuf[:]) - if respSize > maxAgentResponseBytes { - return nil, clientErr(err) - } - - buf := make([]byte, respSize) - if _, err = io.ReadFull(c.conn, buf); err != nil { - return nil, clientErr(err) - } - reply, err = unmarshal(buf) - if err != nil { - return nil, clientErr(err) - } - return reply, err -} - -func (c *client) simpleCall(req []byte) error { - resp, err := c.call(req) - if err != nil { - return err - } - if _, ok := resp.(*successAgentMsg); ok { - return nil - } - return errors.New("agent: failure") -} - -func (c *client) RemoveAll() error { - return c.simpleCall([]byte{agentRemoveAllIdentities}) -} - -func (c *client) Remove(key ssh.PublicKey) error { - req := ssh.Marshal(&agentRemoveIdentityMsg{ - KeyBlob: key.Marshal(), - }) - return c.simpleCall(req) -} - -func (c *client) Lock(passphrase []byte) error { - req := ssh.Marshal(&agentLockMsg{ - Passphrase: passphrase, - }) - return c.simpleCall(req) -} - -func (c *client) Unlock(passphrase []byte) error { - req := ssh.Marshal(&agentUnlockMsg{ - Passphrase: passphrase, - }) - return c.simpleCall(req) -} - -// List returns the identities known to the agent. -func (c *client) List() ([]*Key, error) { - // see [PROTOCOL.agent] section 2.5.2. - req := []byte{agentRequestIdentities} - - msg, err := c.call(req) - if err != nil { - return nil, err - } - - switch msg := msg.(type) { - case *identitiesAnswerAgentMsg: - if msg.NumKeys > maxAgentResponseBytes/8 { - return nil, errors.New("agent: too many keys in agent reply") - } - keys := make([]*Key, msg.NumKeys) - data := msg.Keys - for i := uint32(0); i < msg.NumKeys; i++ { - var key *Key - var err error - if key, data, err = parseKey(data); err != nil { - return nil, err - } - keys[i] = key - } - return keys, nil - case *failureAgentMsg: - return nil, errors.New("agent: failed to list keys") - } - panic("unreachable") -} - -// Sign has the agent sign the data using a protocol 2 key as defined -// in [PROTOCOL.agent] section 2.6.2. -func (c *client) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) { - req := ssh.Marshal(signRequestAgentMsg{ - KeyBlob: key.Marshal(), - Data: data, - }) - - msg, err := c.call(req) - if err != nil { - return nil, err - } - - switch msg := msg.(type) { - case *signResponseAgentMsg: - var sig ssh.Signature - if err := ssh.Unmarshal(msg.SigBlob, &sig); err != nil { - return nil, err - } - - return &sig, nil - case *failureAgentMsg: - return nil, errors.New("agent: failed to sign challenge") - } - panic("unreachable") -} - -// unmarshal parses an agent message in packet, returning the parsed -// form and the message type of packet. -func unmarshal(packet []byte) (interface{}, error) { - if len(packet) < 1 { - return nil, errors.New("agent: empty packet") - } - var msg interface{} - switch packet[0] { - case agentFailure: - return new(failureAgentMsg), nil - case agentSuccess: - return new(successAgentMsg), nil - case agentIdentitiesAnswer: - msg = new(identitiesAnswerAgentMsg) - case agentSignResponse: - msg = new(signResponseAgentMsg) - default: - return nil, fmt.Errorf("agent: unknown type tag %d", packet[0]) - } - if err := ssh.Unmarshal(packet, msg); err != nil { - return nil, err - } - return msg, nil -} - -type rsaKeyMsg struct { - Type string `sshtype:"17"` - N *big.Int - E *big.Int - D *big.Int - Iqmp *big.Int // IQMP = Inverse Q Mod P - P *big.Int - Q *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type dsaKeyMsg struct { - Type string `sshtype:"17"` - P *big.Int - Q *big.Int - G *big.Int - Y *big.Int - X *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type ecdsaKeyMsg struct { - Type string `sshtype:"17"` - Curve string - KeyBytes []byte - D *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -// Insert adds a private key to the agent. -func (c *client) insertKey(s interface{}, comment string, constraints []byte) error { - var req []byte - switch k := s.(type) { - case *rsa.PrivateKey: - if len(k.Primes) != 2 { - return fmt.Errorf("agent: unsupported RSA key with %d primes", len(k.Primes)) - } - k.Precompute() - req = ssh.Marshal(rsaKeyMsg{ - Type: ssh.KeyAlgoRSA, - N: k.N, - E: big.NewInt(int64(k.E)), - D: k.D, - Iqmp: k.Precomputed.Qinv, - P: k.Primes[0], - Q: k.Primes[1], - Comments: comment, - Constraints: constraints, - }) - case *dsa.PrivateKey: - req = ssh.Marshal(dsaKeyMsg{ - Type: ssh.KeyAlgoDSA, - P: k.P, - Q: k.Q, - G: k.G, - Y: k.Y, - X: k.X, - Comments: comment, - Constraints: constraints, - }) - case *ecdsa.PrivateKey: - nistID := fmt.Sprintf("nistp%d", k.Params().BitSize) - req = ssh.Marshal(ecdsaKeyMsg{ - Type: "ecdsa-sha2-" + nistID, - Curve: nistID, - KeyBytes: elliptic.Marshal(k.Curve, k.X, k.Y), - D: k.D, - Comments: comment, - Constraints: constraints, - }) - default: - return fmt.Errorf("agent: unsupported key type %T", s) - } - - // if constraints are present then the message type needs to be changed. - if len(constraints) != 0 { - req[0] = agentAddIdConstrained - } - - resp, err := c.call(req) - if err != nil { - return err - } - if _, ok := resp.(*successAgentMsg); ok { - return nil - } - return errors.New("agent: failure") -} - -type rsaCertMsg struct { - Type string `sshtype:"17"` - CertBytes []byte - D *big.Int - Iqmp *big.Int // IQMP = Inverse Q Mod P - P *big.Int - Q *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type dsaCertMsg struct { - Type string `sshtype:"17"` - CertBytes []byte - X *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type ecdsaCertMsg struct { - Type string `sshtype:"17"` - CertBytes []byte - D *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -// Insert adds a private key to the agent. If a certificate is given, -// that certificate is added instead as public key. -func (c *client) Add(key AddedKey) error { - var constraints []byte - - if secs := key.LifetimeSecs; secs != 0 { - constraints = append(constraints, agentConstrainLifetime) - - var secsBytes [4]byte - binary.BigEndian.PutUint32(secsBytes[:], secs) - constraints = append(constraints, secsBytes[:]...) - } - - if key.ConfirmBeforeUse { - constraints = append(constraints, agentConstrainConfirm) - } - - if cert := key.Certificate; cert == nil { - return c.insertKey(key.PrivateKey, key.Comment, constraints) - } else { - return c.insertCert(key.PrivateKey, cert, key.Comment, constraints) - } -} - -func (c *client) insertCert(s interface{}, cert *ssh.Certificate, comment string, constraints []byte) error { - var req []byte - switch k := s.(type) { - case *rsa.PrivateKey: - if len(k.Primes) != 2 { - return fmt.Errorf("agent: unsupported RSA key with %d primes", len(k.Primes)) - } - k.Precompute() - req = ssh.Marshal(rsaCertMsg{ - Type: cert.Type(), - CertBytes: cert.Marshal(), - D: k.D, - Iqmp: k.Precomputed.Qinv, - P: k.Primes[0], - Q: k.Primes[1], - Comments: comment, - Constraints: constraints, - }) - case *dsa.PrivateKey: - req = ssh.Marshal(dsaCertMsg{ - Type: cert.Type(), - CertBytes: cert.Marshal(), - X: k.X, - Comments: comment, - }) - case *ecdsa.PrivateKey: - req = ssh.Marshal(ecdsaCertMsg{ - Type: cert.Type(), - CertBytes: cert.Marshal(), - D: k.D, - Comments: comment, - }) - default: - return fmt.Errorf("agent: unsupported key type %T", s) - } - - // if constraints are present then the message type needs to be changed. - if len(constraints) != 0 { - req[0] = agentAddIdConstrained - } - - signer, err := ssh.NewSignerFromKey(s) - if err != nil { - return err - } - if bytes.Compare(cert.Key.Marshal(), signer.PublicKey().Marshal()) != 0 { - return errors.New("agent: signer and cert have different public key") - } - - resp, err := c.call(req) - if err != nil { - return err - } - if _, ok := resp.(*successAgentMsg); ok { - return nil - } - return errors.New("agent: failure") -} - -// Signers provides a callback for client authentication. -func (c *client) Signers() ([]ssh.Signer, error) { - keys, err := c.List() - if err != nil { - return nil, err - } - - var result []ssh.Signer - for _, k := range keys { - result = append(result, &agentKeyringSigner{c, k}) - } - return result, nil -} - -type agentKeyringSigner struct { - agent *client - pub ssh.PublicKey -} - -func (s *agentKeyringSigner) PublicKey() ssh.PublicKey { - return s.pub -} - -func (s *agentKeyringSigner) Sign(rand io.Reader, data []byte) (*ssh.Signature, error) { - // The agent has its own entropy source, so the rand argument is ignored. - return s.agent.Sign(s.pub, data) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/client_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/client_test.go deleted file mode 100644 index 8c29da85..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/client_test.go +++ /dev/null @@ -1,287 +0,0 @@ -// Copyright 2012 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 agent - -import ( - "bytes" - "crypto/rand" - "errors" - "net" - "os" - "os/exec" - "path/filepath" - "strconv" - "testing" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh" -) - -// startAgent executes ssh-agent, and returns a Agent interface to it. -func startAgent(t *testing.T) (client Agent, socket string, cleanup func()) { - if testing.Short() { - // ssh-agent is not always available, and the key - // types supported vary by platform. - t.Skip("skipping test due to -short") - } - - bin, err := exec.LookPath("ssh-agent") - if err != nil { - t.Skip("could not find ssh-agent") - } - - cmd := exec.Command(bin, "-s") - out, err := cmd.Output() - if err != nil { - t.Fatalf("cmd.Output: %v", err) - } - - /* Output looks like: - - SSH_AUTH_SOCK=/tmp/ssh-P65gpcqArqvH/agent.15541; export SSH_AUTH_SOCK; - SSH_AGENT_PID=15542; export SSH_AGENT_PID; - echo Agent pid 15542; - */ - fields := bytes.Split(out, []byte(";")) - line := bytes.SplitN(fields[0], []byte("="), 2) - line[0] = bytes.TrimLeft(line[0], "\n") - if string(line[0]) != "SSH_AUTH_SOCK" { - t.Fatalf("could not find key SSH_AUTH_SOCK in %q", fields[0]) - } - socket = string(line[1]) - - line = bytes.SplitN(fields[2], []byte("="), 2) - line[0] = bytes.TrimLeft(line[0], "\n") - if string(line[0]) != "SSH_AGENT_PID" { - t.Fatalf("could not find key SSH_AGENT_PID in %q", fields[2]) - } - pidStr := line[1] - pid, err := strconv.Atoi(string(pidStr)) - if err != nil { - t.Fatalf("Atoi(%q): %v", pidStr, err) - } - - conn, err := net.Dial("unix", string(socket)) - if err != nil { - t.Fatalf("net.Dial: %v", err) - } - - ac := NewClient(conn) - return ac, socket, func() { - proc, _ := os.FindProcess(pid) - if proc != nil { - proc.Kill() - } - conn.Close() - os.RemoveAll(filepath.Dir(socket)) - } -} - -func testAgent(t *testing.T, key interface{}, cert *ssh.Certificate, lifetimeSecs uint32) { - agent, _, cleanup := startAgent(t) - defer cleanup() - - testAgentInterface(t, agent, key, cert, lifetimeSecs) -} - -func testAgentInterface(t *testing.T, agent Agent, key interface{}, cert *ssh.Certificate, lifetimeSecs uint32) { - signer, err := ssh.NewSignerFromKey(key) - if err != nil { - t.Fatalf("NewSignerFromKey(%T): %v", key, err) - } - // The agent should start up empty. - if keys, err := agent.List(); err != nil { - t.Fatalf("RequestIdentities: %v", err) - } else if len(keys) > 0 { - t.Fatalf("got %d keys, want 0: %v", len(keys), keys) - } - - // Attempt to insert the key, with certificate if specified. - var pubKey ssh.PublicKey - if cert != nil { - err = agent.Add(AddedKey{ - PrivateKey: key, - Certificate: cert, - Comment: "comment", - LifetimeSecs: lifetimeSecs, - }) - pubKey = cert - } else { - err = agent.Add(AddedKey{PrivateKey: key, Comment: "comment", LifetimeSecs: lifetimeSecs}) - pubKey = signer.PublicKey() - } - if err != nil { - t.Fatalf("insert(%T): %v", key, err) - } - - // Did the key get inserted successfully? - if keys, err := agent.List(); err != nil { - t.Fatalf("List: %v", err) - } else if len(keys) != 1 { - t.Fatalf("got %v, want 1 key", keys) - } else if keys[0].Comment != "comment" { - t.Fatalf("key comment: got %v, want %v", keys[0].Comment, "comment") - } else if !bytes.Equal(keys[0].Blob, pubKey.Marshal()) { - t.Fatalf("key mismatch") - } - - // Can the agent make a valid signature? - data := []byte("hello") - sig, err := agent.Sign(pubKey, data) - if err != nil { - t.Fatalf("Sign(%s): %v", pubKey.Type(), err) - } - - if err := pubKey.Verify(data, sig); err != nil { - t.Fatalf("Verify(%s): %v", pubKey.Type(), err) - } -} - -func TestAgent(t *testing.T) { - for _, keyType := range []string{"rsa", "dsa", "ecdsa"} { - testAgent(t, testPrivateKeys[keyType], nil, 0) - } -} - -func TestCert(t *testing.T) { - cert := &ssh.Certificate{ - Key: testPublicKeys["rsa"], - ValidBefore: ssh.CertTimeInfinity, - CertType: ssh.UserCert, - } - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - - testAgent(t, testPrivateKeys["rsa"], cert, 0) -} - -func TestConstraints(t *testing.T) { - testAgent(t, testPrivateKeys["rsa"], nil, 3600 /* lifetime in seconds */) -} - -// netPipe is analogous to net.Pipe, but it uses a real net.Conn, and -// therefore is buffered (net.Pipe deadlocks if both sides start with -// a write.) -func netPipe() (net.Conn, net.Conn, error) { - listener, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - return nil, nil, err - } - defer listener.Close() - c1, err := net.Dial("tcp", listener.Addr().String()) - if err != nil { - return nil, nil, err - } - - c2, err := listener.Accept() - if err != nil { - c1.Close() - return nil, nil, err - } - - return c1, c2, nil -} - -func TestAuth(t *testing.T) { - a, b, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - - defer a.Close() - defer b.Close() - - agent, _, cleanup := startAgent(t) - defer cleanup() - - if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["rsa"], Comment: "comment"}); err != nil { - t.Errorf("Add: %v", err) - } - - serverConf := ssh.ServerConfig{} - serverConf.AddHostKey(testSigners["rsa"]) - serverConf.PublicKeyCallback = func(c ssh.ConnMetadata, key ssh.PublicKey) (*ssh.Permissions, error) { - if bytes.Equal(key.Marshal(), testPublicKeys["rsa"].Marshal()) { - return nil, nil - } - - return nil, errors.New("pubkey rejected") - } - - go func() { - conn, _, _, err := ssh.NewServerConn(a, &serverConf) - if err != nil { - t.Fatalf("Server: %v", err) - } - conn.Close() - }() - - conf := ssh.ClientConfig{} - conf.Auth = append(conf.Auth, ssh.PublicKeysCallback(agent.Signers)) - conn, _, _, err := ssh.NewClientConn(b, "", &conf) - if err != nil { - t.Fatalf("NewClientConn: %v", err) - } - conn.Close() -} - -func TestLockClient(t *testing.T) { - agent, _, cleanup := startAgent(t) - defer cleanup() - testLockAgent(agent, t) -} - -func testLockAgent(agent Agent, t *testing.T) { - if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["rsa"], Comment: "comment 1"}); err != nil { - t.Errorf("Add: %v", err) - } - if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["dsa"], Comment: "comment dsa"}); err != nil { - t.Errorf("Add: %v", err) - } - if keys, err := agent.List(); err != nil { - t.Errorf("List: %v", err) - } else if len(keys) != 2 { - t.Errorf("Want 2 keys, got %v", keys) - } - - passphrase := []byte("secret") - if err := agent.Lock(passphrase); err != nil { - t.Errorf("Lock: %v", err) - } - - if keys, err := agent.List(); err != nil { - t.Errorf("List: %v", err) - } else if len(keys) != 0 { - t.Errorf("Want 0 keys, got %v", keys) - } - - signer, _ := ssh.NewSignerFromKey(testPrivateKeys["rsa"]) - if _, err := agent.Sign(signer.PublicKey(), []byte("hello")); err == nil { - t.Fatalf("Sign did not fail") - } - - if err := agent.Remove(signer.PublicKey()); err == nil { - t.Fatalf("Remove did not fail") - } - - if err := agent.RemoveAll(); err == nil { - t.Fatalf("RemoveAll did not fail") - } - - if err := agent.Unlock(nil); err == nil { - t.Errorf("Unlock with wrong passphrase succeeded") - } - if err := agent.Unlock(passphrase); err != nil { - t.Errorf("Unlock: %v", err) - } - - if err := agent.Remove(signer.PublicKey()); err != nil { - t.Fatalf("Remove: %v", err) - } - - if keys, err := agent.List(); err != nil { - t.Errorf("List: %v", err) - } else if len(keys) != 1 { - t.Errorf("Want 1 keys, got %v", keys) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/forward.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/forward.go deleted file mode 100644 index 65cd5f42..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/forward.go +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package agent - -import ( - "errors" - "io" - "net" - "sync" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh" -) - -// RequestAgentForwarding sets up agent forwarding for the session. -// ForwardToAgent or ForwardToRemote should be called to route -// the authentication requests. -func RequestAgentForwarding(session *ssh.Session) error { - ok, err := session.SendRequest("auth-agent-req@openssh.com", true, nil) - if err != nil { - return err - } - if !ok { - return errors.New("forwarding request denied") - } - return nil -} - -// ForwardToAgent routes authentication requests to the given keyring. -func ForwardToAgent(client *ssh.Client, keyring Agent) error { - channels := client.HandleChannelOpen(channelType) - if channels == nil { - return errors.New("agent: already have handler for " + channelType) - } - - go func() { - for ch := range channels { - channel, reqs, err := ch.Accept() - if err != nil { - continue - } - go ssh.DiscardRequests(reqs) - go func() { - ServeAgent(keyring, channel) - channel.Close() - }() - } - }() - return nil -} - -const channelType = "auth-agent@openssh.com" - -// ForwardToRemote routes authentication requests to the ssh-agent -// process serving on the given unix socket. -func ForwardToRemote(client *ssh.Client, addr string) error { - channels := client.HandleChannelOpen(channelType) - if channels == nil { - return errors.New("agent: already have handler for " + channelType) - } - conn, err := net.Dial("unix", addr) - if err != nil { - return err - } - conn.Close() - - go func() { - for ch := range channels { - channel, reqs, err := ch.Accept() - if err != nil { - continue - } - go ssh.DiscardRequests(reqs) - go forwardUnixSocket(channel, addr) - } - }() - return nil -} - -func forwardUnixSocket(channel ssh.Channel, addr string) { - conn, err := net.Dial("unix", addr) - if err != nil { - return - } - - var wg sync.WaitGroup - wg.Add(2) - go func() { - io.Copy(conn, channel) - conn.(*net.UnixConn).CloseWrite() - wg.Done() - }() - go func() { - io.Copy(channel, conn) - channel.CloseWrite() - wg.Done() - }() - - wg.Wait() - conn.Close() - channel.Close() -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/keyring.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/keyring.go deleted file mode 100644 index f3b2530e..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/keyring.go +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package agent - -import ( - "bytes" - "crypto/rand" - "crypto/subtle" - "errors" - "fmt" - "sync" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh" -) - -type privKey struct { - signer ssh.Signer - comment string -} - -type keyring struct { - mu sync.Mutex - keys []privKey - - locked bool - passphrase []byte -} - -var errLocked = errors.New("agent: locked") - -// NewKeyring returns an Agent that holds keys in memory. It is safe -// for concurrent use by multiple goroutines. -func NewKeyring() Agent { - return &keyring{} -} - -// RemoveAll removes all identities. -func (r *keyring) RemoveAll() error { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return errLocked - } - - r.keys = nil - return nil -} - -// Remove removes all identities with the given public key. -func (r *keyring) Remove(key ssh.PublicKey) error { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return errLocked - } - - want := key.Marshal() - found := false - for i := 0; i < len(r.keys); { - if bytes.Equal(r.keys[i].signer.PublicKey().Marshal(), want) { - found = true - r.keys[i] = r.keys[len(r.keys)-1] - r.keys = r.keys[len(r.keys)-1:] - continue - } else { - i++ - } - } - - if !found { - return errors.New("agent: key not found") - } - return nil -} - -// Lock locks the agent. Sign and Remove will fail, and List will empty an empty list. -func (r *keyring) Lock(passphrase []byte) error { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return errLocked - } - - r.locked = true - r.passphrase = passphrase - return nil -} - -// Unlock undoes the effect of Lock -func (r *keyring) Unlock(passphrase []byte) error { - r.mu.Lock() - defer r.mu.Unlock() - if !r.locked { - return errors.New("agent: not locked") - } - if len(passphrase) != len(r.passphrase) || 1 != subtle.ConstantTimeCompare(passphrase, r.passphrase) { - return fmt.Errorf("agent: incorrect passphrase") - } - - r.locked = false - r.passphrase = nil - return nil -} - -// List returns the identities known to the agent. -func (r *keyring) List() ([]*Key, error) { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - // section 2.7: locked agents return empty. - return nil, nil - } - - var ids []*Key - for _, k := range r.keys { - pub := k.signer.PublicKey() - ids = append(ids, &Key{ - Format: pub.Type(), - Blob: pub.Marshal(), - Comment: k.comment}) - } - return ids, nil -} - -// Insert adds a private key to the keyring. If a certificate -// is given, that certificate is added as public key. Note that -// any constraints given are ignored. -func (r *keyring) Add(key AddedKey) error { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return errLocked - } - signer, err := ssh.NewSignerFromKey(key.PrivateKey) - - if err != nil { - return err - } - - if cert := key.Certificate; cert != nil { - signer, err = ssh.NewCertSigner(cert, signer) - if err != nil { - return err - } - } - - r.keys = append(r.keys, privKey{signer, key.Comment}) - - return nil -} - -// Sign returns a signature for the data. -func (r *keyring) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return nil, errLocked - } - - wanted := key.Marshal() - for _, k := range r.keys { - if bytes.Equal(k.signer.PublicKey().Marshal(), wanted) { - return k.signer.Sign(rand.Reader, data) - } - } - return nil, errors.New("not found") -} - -// Signers returns signers for all the known keys. -func (r *keyring) Signers() ([]ssh.Signer, error) { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return nil, errLocked - } - - s := make([]ssh.Signer, 0, len(r.keys)) - for _, k := range r.keys { - s = append(s, k.signer) - } - return s, nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/server.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/server.go deleted file mode 100644 index bbe025a3..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/server.go +++ /dev/null @@ -1,209 +0,0 @@ -// Copyright 2012 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 agent - -import ( - "crypto/rsa" - "encoding/binary" - "fmt" - "io" - "log" - "math/big" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh" -) - -// Server wraps an Agent and uses it to implement the agent side of -// the SSH-agent, wire protocol. -type server struct { - agent Agent -} - -func (s *server) processRequestBytes(reqData []byte) []byte { - rep, err := s.processRequest(reqData) - if err != nil { - if err != errLocked { - // TODO(hanwen): provide better logging interface? - log.Printf("agent %d: %v", reqData[0], err) - } - return []byte{agentFailure} - } - - if err == nil && rep == nil { - return []byte{agentSuccess} - } - - return ssh.Marshal(rep) -} - -func marshalKey(k *Key) []byte { - var record struct { - Blob []byte - Comment string - } - record.Blob = k.Marshal() - record.Comment = k.Comment - - return ssh.Marshal(&record) -} - -type agentV1IdentityMsg struct { - Numkeys uint32 `sshtype:"2"` -} - -type agentRemoveIdentityMsg struct { - KeyBlob []byte `sshtype:"18"` -} - -type agentLockMsg struct { - Passphrase []byte `sshtype:"22"` -} - -type agentUnlockMsg struct { - Passphrase []byte `sshtype:"23"` -} - -func (s *server) processRequest(data []byte) (interface{}, error) { - switch data[0] { - case agentRequestV1Identities: - return &agentV1IdentityMsg{0}, nil - case agentRemoveIdentity: - var req agentRemoveIdentityMsg - if err := ssh.Unmarshal(data, &req); err != nil { - return nil, err - } - - var wk wireKey - if err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil { - return nil, err - } - - return nil, s.agent.Remove(&Key{Format: wk.Format, Blob: req.KeyBlob}) - - case agentRemoveAllIdentities: - return nil, s.agent.RemoveAll() - - case agentLock: - var req agentLockMsg - if err := ssh.Unmarshal(data, &req); err != nil { - return nil, err - } - - return nil, s.agent.Lock(req.Passphrase) - - case agentUnlock: - var req agentLockMsg - if err := ssh.Unmarshal(data, &req); err != nil { - return nil, err - } - return nil, s.agent.Unlock(req.Passphrase) - - case agentSignRequest: - var req signRequestAgentMsg - if err := ssh.Unmarshal(data, &req); err != nil { - return nil, err - } - - var wk wireKey - if err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil { - return nil, err - } - - k := &Key{ - Format: wk.Format, - Blob: req.KeyBlob, - } - - sig, err := s.agent.Sign(k, req.Data) // TODO(hanwen): flags. - if err != nil { - return nil, err - } - return &signResponseAgentMsg{SigBlob: ssh.Marshal(sig)}, nil - case agentRequestIdentities: - keys, err := s.agent.List() - if err != nil { - return nil, err - } - - rep := identitiesAnswerAgentMsg{ - NumKeys: uint32(len(keys)), - } - for _, k := range keys { - rep.Keys = append(rep.Keys, marshalKey(k)...) - } - return rep, nil - case agentAddIdentity: - return nil, s.insertIdentity(data) - } - - return nil, fmt.Errorf("unknown opcode %d", data[0]) -} - -func (s *server) insertIdentity(req []byte) error { - var record struct { - Type string `sshtype:"17"` - Rest []byte `ssh:"rest"` - } - if err := ssh.Unmarshal(req, &record); err != nil { - return err - } - - switch record.Type { - case ssh.KeyAlgoRSA: - var k rsaKeyMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return err - } - - priv := rsa.PrivateKey{ - PublicKey: rsa.PublicKey{ - E: int(k.E.Int64()), - N: k.N, - }, - D: k.D, - Primes: []*big.Int{k.P, k.Q}, - } - priv.Precompute() - - return s.agent.Add(AddedKey{PrivateKey: &priv, Comment: k.Comments}) - } - return fmt.Errorf("not implemented: %s", record.Type) -} - -// ServeAgent serves the agent protocol on the given connection. It -// returns when an I/O error occurs. -func ServeAgent(agent Agent, c io.ReadWriter) error { - s := &server{agent} - - var length [4]byte - for { - if _, err := io.ReadFull(c, length[:]); err != nil { - return err - } - l := binary.BigEndian.Uint32(length[:]) - if l > maxAgentResponseBytes { - // We also cap requests. - return fmt.Errorf("agent: request too large: %d", l) - } - - req := make([]byte, l) - if _, err := io.ReadFull(c, req); err != nil { - return err - } - - repData := s.processRequestBytes(req) - if len(repData) > maxAgentResponseBytes { - return fmt.Errorf("agent: reply too large: %d bytes", len(repData)) - } - - binary.BigEndian.PutUint32(length[:], uint32(len(repData))) - if _, err := c.Write(length[:]); err != nil { - return err - } - if _, err := c.Write(repData); err != nil { - return err - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/server_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/server_test.go deleted file mode 100644 index 1b5931f5..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/server_test.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2012 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 agent - -import ( - "testing" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh" -) - -func TestServer(t *testing.T) { - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - client := NewClient(c1) - - go ServeAgent(NewKeyring(), c2) - - testAgentInterface(t, client, testPrivateKeys["rsa"], nil, 0) -} - -func TestLockServer(t *testing.T) { - testLockAgent(NewKeyring(), t) -} - -func TestSetupForwardAgent(t *testing.T) { - a, b, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - - defer a.Close() - defer b.Close() - - _, socket, cleanup := startAgent(t) - defer cleanup() - - serverConf := ssh.ServerConfig{ - NoClientAuth: true, - } - serverConf.AddHostKey(testSigners["rsa"]) - incoming := make(chan *ssh.ServerConn, 1) - go func() { - conn, _, _, err := ssh.NewServerConn(a, &serverConf) - if err != nil { - t.Fatalf("Server: %v", err) - } - incoming <- conn - }() - - conf := ssh.ClientConfig{} - conn, chans, reqs, err := ssh.NewClientConn(b, "", &conf) - if err != nil { - t.Fatalf("NewClientConn: %v", err) - } - client := ssh.NewClient(conn, chans, reqs) - - if err := ForwardToRemote(client, socket); err != nil { - t.Fatalf("SetupForwardAgent: %v", err) - } - - server := <-incoming - ch, reqs, err := server.OpenChannel(channelType, nil) - if err != nil { - t.Fatalf("OpenChannel(%q): %v", channelType, err) - } - go ssh.DiscardRequests(reqs) - - agentClient := NewClient(ch) - testAgentInterface(t, agentClient, testPrivateKeys["rsa"], nil, 0) - conn.Close() -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/testdata_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/testdata_test.go deleted file mode 100644 index 47769ad3..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent/testdata_test.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// IMPLEMENTOR NOTE: To avoid a package loop, this file is in three places: -// ssh/, ssh/agent, and ssh/test/. It should be kept in sync across all three -// instances. - -package agent - -import ( - "crypto/rand" - "fmt" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata" -) - -var ( - testPrivateKeys map[string]interface{} - testSigners map[string]ssh.Signer - testPublicKeys map[string]ssh.PublicKey -) - -func init() { - var err error - - n := len(testdata.PEMBytes) - testPrivateKeys = make(map[string]interface{}, n) - testSigners = make(map[string]ssh.Signer, n) - testPublicKeys = make(map[string]ssh.PublicKey, n) - for t, k := range testdata.PEMBytes { - testPrivateKeys[t], err = ssh.ParseRawPrivateKey(k) - if err != nil { - panic(fmt.Sprintf("Unable to parse test key %s: %v", t, err)) - } - testSigners[t], err = ssh.NewSignerFromKey(testPrivateKeys[t]) - if err != nil { - panic(fmt.Sprintf("Unable to create signer for test key %s: %v", t, err)) - } - testPublicKeys[t] = testSigners[t].PublicKey() - } - - // Create a cert and sign it for use in tests. - testCert := &ssh.Certificate{ - Nonce: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil - ValidPrincipals: []string{"gopher1", "gopher2"}, // increases test coverage - ValidAfter: 0, // unix epoch - ValidBefore: ssh.CertTimeInfinity, // The end of currently representable time. - Reserved: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil - Key: testPublicKeys["ecdsa"], - SignatureKey: testPublicKeys["rsa"], - Permissions: ssh.Permissions{ - CriticalOptions: map[string]string{}, - Extensions: map[string]string{}, - }, - } - testCert.SignCert(rand.Reader, testSigners["rsa"]) - testPrivateKeys["cert"] = testPrivateKeys["ecdsa"] - testSigners["cert"], err = ssh.NewCertSigner(testCert, testSigners["ecdsa"]) - if err != nil { - panic(fmt.Sprintf("Unable to create certificate signer: %v", err)) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/benchmark_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/benchmark_test.go deleted file mode 100644 index d9f7eb9b..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/benchmark_test.go +++ /dev/null @@ -1,122 +0,0 @@ -// 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 ssh - -import ( - "errors" - "io" - "net" - "testing" -) - -type server struct { - *ServerConn - chans <-chan NewChannel -} - -func newServer(c net.Conn, conf *ServerConfig) (*server, error) { - sconn, chans, reqs, err := NewServerConn(c, conf) - if err != nil { - return nil, err - } - go DiscardRequests(reqs) - return &server{sconn, chans}, nil -} - -func (s *server) Accept() (NewChannel, error) { - n, ok := <-s.chans - if !ok { - return nil, io.EOF - } - return n, nil -} - -func sshPipe() (Conn, *server, error) { - c1, c2, err := netPipe() - if err != nil { - return nil, nil, err - } - - clientConf := ClientConfig{ - User: "user", - } - serverConf := ServerConfig{ - NoClientAuth: true, - } - serverConf.AddHostKey(testSigners["ecdsa"]) - done := make(chan *server, 1) - go func() { - server, err := newServer(c2, &serverConf) - if err != nil { - done <- nil - } - done <- server - }() - - client, _, reqs, err := NewClientConn(c1, "", &clientConf) - if err != nil { - return nil, nil, err - } - - server := <-done - if server == nil { - return nil, nil, errors.New("server handshake failed.") - } - go DiscardRequests(reqs) - - return client, server, nil -} - -func BenchmarkEndToEnd(b *testing.B) { - b.StopTimer() - - client, server, err := sshPipe() - if err != nil { - b.Fatalf("sshPipe: %v", err) - } - - defer client.Close() - defer server.Close() - - size := (1 << 20) - input := make([]byte, size) - output := make([]byte, size) - b.SetBytes(int64(size)) - done := make(chan int, 1) - - go func() { - newCh, err := server.Accept() - if err != nil { - b.Fatalf("Client: %v", err) - } - ch, incoming, err := newCh.Accept() - go DiscardRequests(incoming) - for i := 0; i < b.N; i++ { - if _, err := io.ReadFull(ch, output); err != nil { - b.Fatalf("ReadFull: %v", err) - } - } - ch.Close() - done <- 1 - }() - - ch, in, err := client.OpenChannel("speed", nil) - if err != nil { - b.Fatalf("OpenChannel: %v", err) - } - go DiscardRequests(in) - - b.ResetTimer() - b.StartTimer() - for i := 0; i < b.N; i++ { - if _, err := ch.Write(input); err != nil { - b.Fatalf("WriteFull: %v", err) - } - } - ch.Close() - b.StopTimer() - - <-done -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/buffer.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/buffer.go deleted file mode 100644 index 6931b511..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/buffer.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2012 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 ssh - -import ( - "io" - "sync" -) - -// buffer provides a linked list buffer for data exchange -// between producer and consumer. Theoretically the buffer is -// of unlimited capacity as it does no allocation of its own. -type buffer struct { - // protects concurrent access to head, tail and closed - *sync.Cond - - head *element // the buffer that will be read first - tail *element // the buffer that will be read last - - closed bool -} - -// An element represents a single link in a linked list. -type element struct { - buf []byte - next *element -} - -// newBuffer returns an empty buffer that is not closed. -func newBuffer() *buffer { - e := new(element) - b := &buffer{ - Cond: newCond(), - head: e, - tail: e, - } - return b -} - -// write makes buf available for Read to receive. -// buf must not be modified after the call to write. -func (b *buffer) write(buf []byte) { - b.Cond.L.Lock() - e := &element{buf: buf} - b.tail.next = e - b.tail = e - b.Cond.Signal() - b.Cond.L.Unlock() -} - -// eof closes the buffer. Reads from the buffer once all -// the data has been consumed will receive os.EOF. -func (b *buffer) eof() error { - b.Cond.L.Lock() - b.closed = true - b.Cond.Signal() - b.Cond.L.Unlock() - return nil -} - -// Read reads data from the internal buffer in buf. Reads will block -// if no data is available, or until the buffer is closed. -func (b *buffer) Read(buf []byte) (n int, err error) { - b.Cond.L.Lock() - defer b.Cond.L.Unlock() - - for len(buf) > 0 { - // if there is data in b.head, copy it - if len(b.head.buf) > 0 { - r := copy(buf, b.head.buf) - buf, b.head.buf = buf[r:], b.head.buf[r:] - n += r - continue - } - // if there is a next buffer, make it the head - if len(b.head.buf) == 0 && b.head != b.tail { - b.head = b.head.next - continue - } - - // if at least one byte has been copied, return - if n > 0 { - break - } - - // if nothing was read, and there is nothing outstanding - // check to see if the buffer is closed. - if b.closed { - err = io.EOF - break - } - // out of buffers, wait for producer - b.Cond.Wait() - } - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/buffer_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/buffer_test.go deleted file mode 100644 index d5781cb3..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/buffer_test.go +++ /dev/null @@ -1,87 +0,0 @@ -// 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 ssh - -import ( - "io" - "testing" -) - -var alphabet = []byte("abcdefghijklmnopqrstuvwxyz") - -func TestBufferReadwrite(t *testing.T) { - b := newBuffer() - b.write(alphabet[:10]) - r, _ := b.Read(make([]byte, 10)) - if r != 10 { - t.Fatalf("Expected written == read == 10, written: 10, read %d", r) - } - - b = newBuffer() - b.write(alphabet[:5]) - r, _ = b.Read(make([]byte, 10)) - if r != 5 { - t.Fatalf("Expected written == read == 5, written: 5, read %d", r) - } - - b = newBuffer() - b.write(alphabet[:10]) - r, _ = b.Read(make([]byte, 5)) - if r != 5 { - t.Fatalf("Expected written == 10, read == 5, written: 10, read %d", r) - } - - b = newBuffer() - b.write(alphabet[:5]) - b.write(alphabet[5:15]) - r, _ = b.Read(make([]byte, 10)) - r2, _ := b.Read(make([]byte, 10)) - if r != 10 || r2 != 5 || 15 != r+r2 { - t.Fatal("Expected written == read == 15") - } -} - -func TestBufferClose(t *testing.T) { - b := newBuffer() - b.write(alphabet[:10]) - b.eof() - _, err := b.Read(make([]byte, 5)) - if err != nil { - t.Fatal("expected read of 5 to not return EOF") - } - b = newBuffer() - b.write(alphabet[:10]) - b.eof() - r, err := b.Read(make([]byte, 5)) - r2, err2 := b.Read(make([]byte, 10)) - if r != 5 || r2 != 5 || err != nil || err2 != nil { - t.Fatal("expected reads of 5 and 5") - } - - b = newBuffer() - b.write(alphabet[:10]) - b.eof() - r, err = b.Read(make([]byte, 5)) - r2, err2 = b.Read(make([]byte, 10)) - r3, err3 := b.Read(make([]byte, 10)) - if r != 5 || r2 != 5 || r3 != 0 || err != nil || err2 != nil || err3 != io.EOF { - t.Fatal("expected reads of 5 and 5 and 0, with EOF") - } - - b = newBuffer() - b.write(make([]byte, 5)) - b.write(make([]byte, 10)) - b.eof() - r, err = b.Read(make([]byte, 9)) - r2, err2 = b.Read(make([]byte, 3)) - r3, err3 = b.Read(make([]byte, 3)) - r4, err4 := b.Read(make([]byte, 10)) - if err != nil || err2 != nil || err3 != nil || err4 != io.EOF { - t.Fatalf("Expected EOF on forth read only, err=%v, err2=%v, err3=%v, err4=%v", err, err2, err3, err4) - } - if r != 9 || r2 != 3 || r3 != 3 || r4 != 0 { - t.Fatal("Expected written == read == 15", r, r2, r3, r4) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/certs.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/certs.go deleted file mode 100644 index 38577003..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/certs.go +++ /dev/null @@ -1,501 +0,0 @@ -// Copyright 2012 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 ssh - -import ( - "bytes" - "errors" - "fmt" - "io" - "net" - "sort" - "time" -) - -// These constants from [PROTOCOL.certkeys] represent the algorithm names -// for certificate types supported by this package. -const ( - CertAlgoRSAv01 = "ssh-rsa-cert-v01@openssh.com" - CertAlgoDSAv01 = "ssh-dss-cert-v01@openssh.com" - CertAlgoECDSA256v01 = "ecdsa-sha2-nistp256-cert-v01@openssh.com" - CertAlgoECDSA384v01 = "ecdsa-sha2-nistp384-cert-v01@openssh.com" - CertAlgoECDSA521v01 = "ecdsa-sha2-nistp521-cert-v01@openssh.com" -) - -// Certificate types distinguish between host and user -// certificates. The values can be set in the CertType field of -// Certificate. -const ( - UserCert = 1 - HostCert = 2 -) - -// Signature represents a cryptographic signature. -type Signature struct { - Format string - Blob []byte -} - -// CertTimeInfinity can be used for OpenSSHCertV01.ValidBefore to indicate that -// a certificate does not expire. -const CertTimeInfinity = 1<<64 - 1 - -// An Certificate represents an OpenSSH certificate as defined in -// [PROTOCOL.certkeys]?rev=1.8. -type Certificate struct { - Nonce []byte - Key PublicKey - Serial uint64 - CertType uint32 - KeyId string - ValidPrincipals []string - ValidAfter uint64 - ValidBefore uint64 - Permissions - Reserved []byte - SignatureKey PublicKey - Signature *Signature -} - -// genericCertData holds the key-independent part of the certificate data. -// Overall, certificates contain an nonce, public key fields and -// key-independent fields. -type genericCertData struct { - Serial uint64 - CertType uint32 - KeyId string - ValidPrincipals []byte - ValidAfter uint64 - ValidBefore uint64 - CriticalOptions []byte - Extensions []byte - Reserved []byte - SignatureKey []byte - Signature []byte -} - -func marshalStringList(namelist []string) []byte { - var to []byte - for _, name := range namelist { - s := struct{ N string }{name} - to = append(to, Marshal(&s)...) - } - return to -} - -type optionsTuple struct { - Key string - Value []byte -} - -type optionsTupleValue struct { - Value string -} - -// serialize a map of critical options or extensions -// issue #10569 - per [PROTOCOL.certkeys] and SSH implementation, -// we need two length prefixes for a non-empty string value -func marshalTuples(tups map[string]string) []byte { - keys := make([]string, 0, len(tups)) - for key := range tups { - keys = append(keys, key) - } - sort.Strings(keys) - - var ret []byte - for _, key := range keys { - s := optionsTuple{Key: key} - if value := tups[key]; len(value) > 0 { - s.Value = Marshal(&optionsTupleValue{value}) - } - ret = append(ret, Marshal(&s)...) - } - return ret -} - -// issue #10569 - per [PROTOCOL.certkeys] and SSH implementation, -// we need two length prefixes for a non-empty option value -func parseTuples(in []byte) (map[string]string, error) { - tups := map[string]string{} - var lastKey string - var haveLastKey bool - - for len(in) > 0 { - var key, val, extra []byte - var ok bool - - if key, in, ok = parseString(in); !ok { - return nil, errShortRead - } - keyStr := string(key) - // according to [PROTOCOL.certkeys], the names must be in - // lexical order. - if haveLastKey && keyStr <= lastKey { - return nil, fmt.Errorf("ssh: certificate options are not in lexical order") - } - lastKey, haveLastKey = keyStr, true - // the next field is a data field, which if non-empty has a string embedded - if val, in, ok = parseString(in); !ok { - return nil, errShortRead - } - if len(val) > 0 { - val, extra, ok = parseString(val) - if !ok { - return nil, errShortRead - } - if len(extra) > 0 { - return nil, fmt.Errorf("ssh: unexpected trailing data after certificate option value") - } - tups[keyStr] = string(val) - } else { - tups[keyStr] = "" - } - } - return tups, nil -} - -func parseCert(in []byte, privAlgo string) (*Certificate, error) { - nonce, rest, ok := parseString(in) - if !ok { - return nil, errShortRead - } - - key, rest, err := parsePubKey(rest, privAlgo) - if err != nil { - return nil, err - } - - var g genericCertData - if err := Unmarshal(rest, &g); err != nil { - return nil, err - } - - c := &Certificate{ - Nonce: nonce, - Key: key, - Serial: g.Serial, - CertType: g.CertType, - KeyId: g.KeyId, - ValidAfter: g.ValidAfter, - ValidBefore: g.ValidBefore, - } - - for principals := g.ValidPrincipals; len(principals) > 0; { - principal, rest, ok := parseString(principals) - if !ok { - return nil, errShortRead - } - c.ValidPrincipals = append(c.ValidPrincipals, string(principal)) - principals = rest - } - - c.CriticalOptions, err = parseTuples(g.CriticalOptions) - if err != nil { - return nil, err - } - c.Extensions, err = parseTuples(g.Extensions) - if err != nil { - return nil, err - } - c.Reserved = g.Reserved - k, err := ParsePublicKey(g.SignatureKey) - if err != nil { - return nil, err - } - - c.SignatureKey = k - c.Signature, rest, ok = parseSignatureBody(g.Signature) - if !ok || len(rest) > 0 { - return nil, errors.New("ssh: signature parse error") - } - - return c, nil -} - -type openSSHCertSigner struct { - pub *Certificate - signer Signer -} - -// NewCertSigner returns a Signer that signs with the given Certificate, whose -// private key is held by signer. It returns an error if the public key in cert -// doesn't match the key used by signer. -func NewCertSigner(cert *Certificate, signer Signer) (Signer, error) { - if bytes.Compare(cert.Key.Marshal(), signer.PublicKey().Marshal()) != 0 { - return nil, errors.New("ssh: signer and cert have different public key") - } - - return &openSSHCertSigner{cert, signer}, nil -} - -func (s *openSSHCertSigner) Sign(rand io.Reader, data []byte) (*Signature, error) { - return s.signer.Sign(rand, data) -} - -func (s *openSSHCertSigner) PublicKey() PublicKey { - return s.pub -} - -const sourceAddressCriticalOption = "source-address" - -// CertChecker does the work of verifying a certificate. Its methods -// can be plugged into ClientConfig.HostKeyCallback and -// ServerConfig.PublicKeyCallback. For the CertChecker to work, -// minimally, the IsAuthority callback should be set. -type CertChecker struct { - // SupportedCriticalOptions lists the CriticalOptions that the - // server application layer understands. These are only used - // for user certificates. - SupportedCriticalOptions []string - - // IsAuthority should return true if the key is recognized as - // an authority. This allows for certificates to be signed by other - // certificates. - IsAuthority func(auth PublicKey) bool - - // Clock is used for verifying time stamps. If nil, time.Now - // is used. - Clock func() time.Time - - // UserKeyFallback is called when CertChecker.Authenticate encounters a - // public key that is not a certificate. It must implement validation - // of user keys or else, if nil, all such keys are rejected. - UserKeyFallback func(conn ConnMetadata, key PublicKey) (*Permissions, error) - - // HostKeyFallback is called when CertChecker.CheckHostKey encounters a - // public key that is not a certificate. It must implement host key - // validation or else, if nil, all such keys are rejected. - HostKeyFallback func(addr string, remote net.Addr, key PublicKey) error - - // IsRevoked is called for each certificate so that revocation checking - // can be implemented. It should return true if the given certificate - // is revoked and false otherwise. If nil, no certificates are - // considered to have been revoked. - IsRevoked func(cert *Certificate) bool -} - -// CheckHostKey checks a host key certificate. This method can be -// plugged into ClientConfig.HostKeyCallback. -func (c *CertChecker) CheckHostKey(addr string, remote net.Addr, key PublicKey) error { - cert, ok := key.(*Certificate) - if !ok { - if c.HostKeyFallback != nil { - return c.HostKeyFallback(addr, remote, key) - } - return errors.New("ssh: non-certificate host key") - } - if cert.CertType != HostCert { - return fmt.Errorf("ssh: certificate presented as a host key has type %d", cert.CertType) - } - - return c.CheckCert(addr, cert) -} - -// Authenticate checks a user certificate. Authenticate can be used as -// a value for ServerConfig.PublicKeyCallback. -func (c *CertChecker) Authenticate(conn ConnMetadata, pubKey PublicKey) (*Permissions, error) { - cert, ok := pubKey.(*Certificate) - if !ok { - if c.UserKeyFallback != nil { - return c.UserKeyFallback(conn, pubKey) - } - return nil, errors.New("ssh: normal key pairs not accepted") - } - - if cert.CertType != UserCert { - return nil, fmt.Errorf("ssh: cert has type %d", cert.CertType) - } - - if err := c.CheckCert(conn.User(), cert); err != nil { - return nil, err - } - - return &cert.Permissions, nil -} - -// CheckCert checks CriticalOptions, ValidPrincipals, revocation, timestamp and -// the signature of the certificate. -func (c *CertChecker) CheckCert(principal string, cert *Certificate) error { - if c.IsRevoked != nil && c.IsRevoked(cert) { - return fmt.Errorf("ssh: certicate serial %d revoked", cert.Serial) - } - - for opt, _ := range cert.CriticalOptions { - // sourceAddressCriticalOption will be enforced by - // serverAuthenticate - if opt == sourceAddressCriticalOption { - continue - } - - found := false - for _, supp := range c.SupportedCriticalOptions { - if supp == opt { - found = true - break - } - } - if !found { - return fmt.Errorf("ssh: unsupported critical option %q in certificate", opt) - } - } - - if len(cert.ValidPrincipals) > 0 { - // By default, certs are valid for all users/hosts. - found := false - for _, p := range cert.ValidPrincipals { - if p == principal { - found = true - break - } - } - if !found { - return fmt.Errorf("ssh: principal %q not in the set of valid principals for given certificate: %q", principal, cert.ValidPrincipals) - } - } - - if !c.IsAuthority(cert.SignatureKey) { - return fmt.Errorf("ssh: certificate signed by unrecognized authority") - } - - clock := c.Clock - if clock == nil { - clock = time.Now - } - - unixNow := clock().Unix() - if after := int64(cert.ValidAfter); after < 0 || unixNow < int64(cert.ValidAfter) { - return fmt.Errorf("ssh: cert is not yet valid") - } - if before := int64(cert.ValidBefore); cert.ValidBefore != uint64(CertTimeInfinity) && (unixNow >= before || before < 0) { - return fmt.Errorf("ssh: cert has expired") - } - if err := cert.SignatureKey.Verify(cert.bytesForSigning(), cert.Signature); err != nil { - return fmt.Errorf("ssh: certificate signature does not verify") - } - - return nil -} - -// SignCert sets c.SignatureKey to the authority's public key and stores a -// Signature, by authority, in the certificate. -func (c *Certificate) SignCert(rand io.Reader, authority Signer) error { - c.Nonce = make([]byte, 32) - if _, err := io.ReadFull(rand, c.Nonce); err != nil { - return err - } - c.SignatureKey = authority.PublicKey() - - sig, err := authority.Sign(rand, c.bytesForSigning()) - if err != nil { - return err - } - c.Signature = sig - return nil -} - -var certAlgoNames = map[string]string{ - KeyAlgoRSA: CertAlgoRSAv01, - KeyAlgoDSA: CertAlgoDSAv01, - KeyAlgoECDSA256: CertAlgoECDSA256v01, - KeyAlgoECDSA384: CertAlgoECDSA384v01, - KeyAlgoECDSA521: CertAlgoECDSA521v01, -} - -// certToPrivAlgo returns the underlying algorithm for a certificate algorithm. -// Panics if a non-certificate algorithm is passed. -func certToPrivAlgo(algo string) string { - for privAlgo, pubAlgo := range certAlgoNames { - if pubAlgo == algo { - return privAlgo - } - } - panic("unknown cert algorithm") -} - -func (cert *Certificate) bytesForSigning() []byte { - c2 := *cert - c2.Signature = nil - out := c2.Marshal() - // Drop trailing signature length. - return out[:len(out)-4] -} - -// Marshal serializes c into OpenSSH's wire format. It is part of the -// PublicKey interface. -func (c *Certificate) Marshal() []byte { - generic := genericCertData{ - Serial: c.Serial, - CertType: c.CertType, - KeyId: c.KeyId, - ValidPrincipals: marshalStringList(c.ValidPrincipals), - ValidAfter: uint64(c.ValidAfter), - ValidBefore: uint64(c.ValidBefore), - CriticalOptions: marshalTuples(c.CriticalOptions), - Extensions: marshalTuples(c.Extensions), - Reserved: c.Reserved, - SignatureKey: c.SignatureKey.Marshal(), - } - if c.Signature != nil { - generic.Signature = Marshal(c.Signature) - } - genericBytes := Marshal(&generic) - keyBytes := c.Key.Marshal() - _, keyBytes, _ = parseString(keyBytes) - prefix := Marshal(&struct { - Name string - Nonce []byte - Key []byte `ssh:"rest"` - }{c.Type(), c.Nonce, keyBytes}) - - result := make([]byte, 0, len(prefix)+len(genericBytes)) - result = append(result, prefix...) - result = append(result, genericBytes...) - return result -} - -// Type returns the key name. It is part of the PublicKey interface. -func (c *Certificate) Type() string { - algo, ok := certAlgoNames[c.Key.Type()] - if !ok { - panic("unknown cert key type") - } - return algo -} - -// Verify verifies a signature against the certificate's public -// key. It is part of the PublicKey interface. -func (c *Certificate) Verify(data []byte, sig *Signature) error { - return c.Key.Verify(data, sig) -} - -func parseSignatureBody(in []byte) (out *Signature, rest []byte, ok bool) { - format, in, ok := parseString(in) - if !ok { - return - } - - out = &Signature{ - Format: string(format), - } - - if out.Blob, in, ok = parseString(in); !ok { - return - } - - return out, in, ok -} - -func parseSignature(in []byte) (out *Signature, rest []byte, ok bool) { - sigBytes, rest, ok := parseString(in) - if !ok { - return - } - - out, trailing, ok := parseSignatureBody(sigBytes) - if !ok || len(trailing) > 0 { - return nil, nil, false - } - return -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/certs_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/certs_test.go deleted file mode 100644 index c5f2e533..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/certs_test.go +++ /dev/null @@ -1,216 +0,0 @@ -// 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 ssh - -import ( - "bytes" - "crypto/rand" - "reflect" - "testing" - "time" -) - -// Cert generated by ssh-keygen 6.0p1 Debian-4. -// % ssh-keygen -s ca-key -I test user-key -const exampleSSHCert = `ssh-rsa-cert-v01@openssh.com AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgb1srW/W3ZDjYAO45xLYAwzHBDLsJ4Ux6ICFIkTjb1LEAAAADAQABAAAAYQCkoR51poH0wE8w72cqSB8Sszx+vAhzcMdCO0wqHTj7UNENHWEXGrU0E0UQekD7U+yhkhtoyjbPOVIP7hNa6aRk/ezdh/iUnCIt4Jt1v3Z1h1P+hA4QuYFMHNB+rmjPwAcAAAAAAAAAAAAAAAEAAAAEdGVzdAAAAAAAAAAAAAAAAP//////////AAAAAAAAAIIAAAAVcGVybWl0LVgxMS1mb3J3YXJkaW5nAAAAAAAAABdwZXJtaXQtYWdlbnQtZm9yd2FyZGluZwAAAAAAAAAWcGVybWl0LXBvcnQtZm9yd2FyZGluZwAAAAAAAAAKcGVybWl0LXB0eQAAAAAAAAAOcGVybWl0LXVzZXItcmMAAAAAAAAAAAAAAHcAAAAHc3NoLXJzYQAAAAMBAAEAAABhANFS2kaktpSGc+CcmEKPyw9mJC4nZKxHKTgLVZeaGbFZOvJTNzBspQHdy7Q1uKSfktxpgjZnksiu/tFF9ngyY2KFoc+U88ya95IZUycBGCUbBQ8+bhDtw/icdDGQD5WnUwAAAG8AAAAHc3NoLXJzYQAAAGC8Y9Z2LQKhIhxf52773XaWrXdxP0t3GBVo4A10vUWiYoAGepr6rQIoGGXFxT4B9Gp+nEBJjOwKDXPrAevow0T9ca8gZN+0ykbhSrXLE5Ao48rqr3zP4O1/9P7e6gp0gw8=` - -func TestParseCert(t *testing.T) { - authKeyBytes := []byte(exampleSSHCert) - - key, _, _, rest, err := ParseAuthorizedKey(authKeyBytes) - if err != nil { - t.Fatalf("ParseAuthorizedKey: %v", err) - } - if len(rest) > 0 { - t.Errorf("rest: got %q, want empty", rest) - } - - if _, ok := key.(*Certificate); !ok { - t.Fatalf("got %v (%T), want *Certificate", key, key) - } - - marshaled := MarshalAuthorizedKey(key) - // Before comparison, remove the trailing newline that - // MarshalAuthorizedKey adds. - marshaled = marshaled[:len(marshaled)-1] - if !bytes.Equal(authKeyBytes, marshaled) { - t.Errorf("marshaled certificate does not match original: got %q, want %q", marshaled, authKeyBytes) - } -} - -// Cert generated by ssh-keygen OpenSSH_6.8p1 OS X 10.10.3 -// % ssh-keygen -s ca -I testcert -O source-address=192.168.1.0/24 -O force-command=/bin/sleep user.pub -// user.pub key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDACh1rt2DXfV3hk6fszSQcQ/rueMId0kVD9U7nl8cfEnFxqOCrNT92g4laQIGl2mn8lsGZfTLg8ksHq3gkvgO3oo/0wHy4v32JeBOHTsN5AL4gfHNEhWeWb50ev47hnTsRIt9P4dxogeUo/hTu7j9+s9lLpEQXCvq6xocXQt0j8MV9qZBBXFLXVT3cWIkSqOdwt/5ZBg+1GSrc7WfCXVWgTk4a20uPMuJPxU4RQwZW6X3+O8Pqo8C3cW0OzZRFP6gUYUKUsTI5WntlS+LAxgw1mZNsozFGdbiOPRnEryE3SRldh9vjDR3tin1fGpA5P7+CEB/bqaXtG3V+F2OkqaMN -// Critical Options: -// force-command /bin/sleep -// source-address 192.168.1.0/24 -// Extensions: -// permit-X11-forwarding -// permit-agent-forwarding -// permit-port-forwarding -// permit-pty -// permit-user-rc -const exampleSSHCertWithOptions = `ssh-rsa-cert-v01@openssh.com AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgDyysCJY0XrO1n03EeRRoITnTPdjENFmWDs9X58PP3VUAAAADAQABAAABAQDACh1rt2DXfV3hk6fszSQcQ/rueMId0kVD9U7nl8cfEnFxqOCrNT92g4laQIGl2mn8lsGZfTLg8ksHq3gkvgO3oo/0wHy4v32JeBOHTsN5AL4gfHNEhWeWb50ev47hnTsRIt9P4dxogeUo/hTu7j9+s9lLpEQXCvq6xocXQt0j8MV9qZBBXFLXVT3cWIkSqOdwt/5ZBg+1GSrc7WfCXVWgTk4a20uPMuJPxU4RQwZW6X3+O8Pqo8C3cW0OzZRFP6gUYUKUsTI5WntlS+LAxgw1mZNsozFGdbiOPRnEryE3SRldh9vjDR3tin1fGpA5P7+CEB/bqaXtG3V+F2OkqaMNAAAAAAAAAAAAAAABAAAACHRlc3RjZXJ0AAAAAAAAAAAAAAAA//////////8AAABLAAAADWZvcmNlLWNvbW1hbmQAAAAOAAAACi9iaW4vc2xlZXAAAAAOc291cmNlLWFkZHJlc3MAAAASAAAADjE5Mi4xNjguMS4wLzI0AAAAggAAABVwZXJtaXQtWDExLWZvcndhcmRpbmcAAAAAAAAAF3Blcm1pdC1hZ2VudC1mb3J3YXJkaW5nAAAAAAAAABZwZXJtaXQtcG9ydC1mb3J3YXJkaW5nAAAAAAAAAApwZXJtaXQtcHR5AAAAAAAAAA5wZXJtaXQtdXNlci1yYwAAAAAAAAAAAAABFwAAAAdzc2gtcnNhAAAAAwEAAQAAAQEAwU+c5ui5A8+J/CFpjW8wCa52bEODA808WWQDCSuTG/eMXNf59v9Y8Pk0F1E9dGCosSNyVcB/hacUrc6He+i97+HJCyKavBsE6GDxrjRyxYqAlfcOXi/IVmaUGiO8OQ39d4GHrjToInKvExSUeleQyH4Y4/e27T/pILAqPFL3fyrvMLT5qU9QyIt6zIpa7GBP5+urouNavMprV3zsfIqNBbWypinOQAw823a5wN+zwXnhZrgQiHZ/USG09Y6k98y1dTVz8YHlQVR4D3lpTAsKDKJ5hCH9WU4fdf+lU8OyNGaJ/vz0XNqxcToe1l4numLTnaoSuH89pHryjqurB7lJKwAAAQ8AAAAHc3NoLXJzYQAAAQCaHvUIoPL1zWUHIXLvu96/HU1s/i4CAW2IIEuGgxCUCiFj6vyTyYtgxQxcmbfZf6eaITlS6XJZa7Qq4iaFZh75C1DXTX8labXhRSD4E2t//AIP9MC1rtQC5xo6FmbQ+BoKcDskr+mNACcbRSxs3IL3bwCfWDnIw2WbVox9ZdcthJKk4UoCW4ix4QwdHw7zlddlz++fGEEVhmTbll1SUkycGApPFBsAYRTMupUJcYPIeReBI/m8XfkoMk99bV8ZJQTAd7OekHY2/48Ff53jLmyDjP7kNw1F8OaPtkFs6dGJXta4krmaekPy87j+35In5hFj7yoOqvSbmYUkeX70/GGQ` - -func TestParseCertWithOptions(t *testing.T) { - opts := map[string]string{ - "source-address": "192.168.1.0/24", - "force-command": "/bin/sleep", - } - exts := map[string]string{ - "permit-X11-forwarding": "", - "permit-agent-forwarding": "", - "permit-port-forwarding": "", - "permit-pty": "", - "permit-user-rc": "", - } - authKeyBytes := []byte(exampleSSHCertWithOptions) - - key, _, _, rest, err := ParseAuthorizedKey(authKeyBytes) - if err != nil { - t.Fatalf("ParseAuthorizedKey: %v", err) - } - if len(rest) > 0 { - t.Errorf("rest: got %q, want empty", rest) - } - cert, ok := key.(*Certificate) - if !ok { - t.Fatalf("got %v (%T), want *Certificate", key, key) - } - if !reflect.DeepEqual(cert.CriticalOptions, opts) { - t.Errorf("unexpected critical options - got %v, want %v", cert.CriticalOptions, opts) - } - if !reflect.DeepEqual(cert.Extensions, exts) { - t.Errorf("unexpected Extensions - got %v, want %v", cert.Extensions, exts) - } - marshaled := MarshalAuthorizedKey(key) - // Before comparison, remove the trailing newline that - // MarshalAuthorizedKey adds. - marshaled = marshaled[:len(marshaled)-1] - if !bytes.Equal(authKeyBytes, marshaled) { - t.Errorf("marshaled certificate does not match original: got %q, want %q", marshaled, authKeyBytes) - } -} - -func TestValidateCert(t *testing.T) { - key, _, _, _, err := ParseAuthorizedKey([]byte(exampleSSHCert)) - if err != nil { - t.Fatalf("ParseAuthorizedKey: %v", err) - } - validCert, ok := key.(*Certificate) - if !ok { - t.Fatalf("got %v (%T), want *Certificate", key, key) - } - checker := CertChecker{} - checker.IsAuthority = func(k PublicKey) bool { - return bytes.Equal(k.Marshal(), validCert.SignatureKey.Marshal()) - } - - if err := checker.CheckCert("user", validCert); err != nil { - t.Errorf("Unable to validate certificate: %v", err) - } - invalidCert := &Certificate{ - Key: testPublicKeys["rsa"], - SignatureKey: testPublicKeys["ecdsa"], - ValidBefore: CertTimeInfinity, - Signature: &Signature{}, - } - if err := checker.CheckCert("user", invalidCert); err == nil { - t.Error("Invalid cert signature passed validation") - } -} - -func TestValidateCertTime(t *testing.T) { - cert := Certificate{ - ValidPrincipals: []string{"user"}, - Key: testPublicKeys["rsa"], - ValidAfter: 50, - ValidBefore: 100, - } - - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - - for ts, ok := range map[int64]bool{ - 25: false, - 50: true, - 99: true, - 100: false, - 125: false, - } { - checker := CertChecker{ - Clock: func() time.Time { return time.Unix(ts, 0) }, - } - checker.IsAuthority = func(k PublicKey) bool { - return bytes.Equal(k.Marshal(), - testPublicKeys["ecdsa"].Marshal()) - } - - if v := checker.CheckCert("user", &cert); (v == nil) != ok { - t.Errorf("Authenticate(%d): %v", ts, v) - } - } -} - -// TODO(hanwen): tests for -// -// host keys: -// * fallbacks - -func TestHostKeyCert(t *testing.T) { - cert := &Certificate{ - ValidPrincipals: []string{"hostname", "hostname.domain"}, - Key: testPublicKeys["rsa"], - ValidBefore: CertTimeInfinity, - CertType: HostCert, - } - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - - checker := &CertChecker{ - IsAuthority: func(p PublicKey) bool { - return bytes.Equal(testPublicKeys["ecdsa"].Marshal(), p.Marshal()) - }, - } - - certSigner, err := NewCertSigner(cert, testSigners["rsa"]) - if err != nil { - t.Errorf("NewCertSigner: %v", err) - } - - for _, name := range []string{"hostname", "otherhost"} { - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - errc := make(chan error) - - go func() { - conf := ServerConfig{ - NoClientAuth: true, - } - conf.AddHostKey(certSigner) - _, _, _, err := NewServerConn(c1, &conf) - errc <- err - }() - - config := &ClientConfig{ - User: "user", - HostKeyCallback: checker.CheckHostKey, - } - _, _, _, err = NewClientConn(c2, name, config) - - succeed := name == "hostname" - if (err == nil) != succeed { - t.Fatalf("NewClientConn(%q): %v", name, err) - } - - err = <-errc - if (err == nil) != succeed { - t.Fatalf("NewServerConn(%q): %v", name, err) - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/channel.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/channel.go deleted file mode 100644 index 5403c7e4..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/channel.go +++ /dev/null @@ -1,631 +0,0 @@ -// 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 ssh - -import ( - "encoding/binary" - "errors" - "fmt" - "io" - "log" - "sync" -) - -const ( - minPacketLength = 9 - // channelMaxPacket contains the maximum number of bytes that will be - // sent in a single packet. As per RFC 4253, section 6.1, 32k is also - // the minimum. - channelMaxPacket = 1 << 15 - // We follow OpenSSH here. - channelWindowSize = 64 * channelMaxPacket -) - -// NewChannel represents an incoming request to a channel. It must either be -// accepted for use by calling Accept, or rejected by calling Reject. -type NewChannel interface { - // Accept accepts the channel creation request. It returns the Channel - // and a Go channel containing SSH requests. The Go channel must be - // serviced otherwise the Channel will hang. - Accept() (Channel, <-chan *Request, error) - - // Reject rejects the channel creation request. After calling - // this, no other methods on the Channel may be called. - Reject(reason RejectionReason, message string) error - - // ChannelType returns the type of the channel, as supplied by the - // client. - ChannelType() string - - // ExtraData returns the arbitrary payload for this channel, as supplied - // by the client. This data is specific to the channel type. - ExtraData() []byte -} - -// A Channel is an ordered, reliable, flow-controlled, duplex stream -// that is multiplexed over an SSH connection. -type Channel interface { - // Read reads up to len(data) bytes from the channel. - Read(data []byte) (int, error) - - // Write writes len(data) bytes to the channel. - Write(data []byte) (int, error) - - // Close signals end of channel use. No data may be sent after this - // call. - Close() error - - // CloseWrite signals the end of sending in-band - // data. Requests may still be sent, and the other side may - // still send data - CloseWrite() error - - // SendRequest sends a channel request. If wantReply is true, - // it will wait for a reply and return the result as a - // boolean, otherwise the return value will be false. Channel - // requests are out-of-band messages so they may be sent even - // if the data stream is closed or blocked by flow control. - SendRequest(name string, wantReply bool, payload []byte) (bool, error) - - // Stderr returns an io.ReadWriter that writes to this channel - // with the extended data type set to stderr. Stderr may - // safely be read and written from a different goroutine than - // Read and Write respectively. - Stderr() io.ReadWriter -} - -// Request is a request sent outside of the normal stream of -// data. Requests can either be specific to an SSH channel, or they -// can be global. -type Request struct { - Type string - WantReply bool - Payload []byte - - ch *channel - mux *mux -} - -// Reply sends a response to a request. It must be called for all requests -// where WantReply is true and is a no-op otherwise. The payload argument is -// ignored for replies to channel-specific requests. -func (r *Request) Reply(ok bool, payload []byte) error { - if !r.WantReply { - return nil - } - - if r.ch == nil { - return r.mux.ackRequest(ok, payload) - } - - return r.ch.ackRequest(ok) -} - -// RejectionReason is an enumeration used when rejecting channel creation -// requests. See RFC 4254, section 5.1. -type RejectionReason uint32 - -const ( - Prohibited RejectionReason = iota + 1 - ConnectionFailed - UnknownChannelType - ResourceShortage -) - -// String converts the rejection reason to human readable form. -func (r RejectionReason) String() string { - switch r { - case Prohibited: - return "administratively prohibited" - case ConnectionFailed: - return "connect failed" - case UnknownChannelType: - return "unknown channel type" - case ResourceShortage: - return "resource shortage" - } - return fmt.Sprintf("unknown reason %d", int(r)) -} - -func min(a uint32, b int) uint32 { - if a < uint32(b) { - return a - } - return uint32(b) -} - -type channelDirection uint8 - -const ( - channelInbound channelDirection = iota - channelOutbound -) - -// channel is an implementation of the Channel interface that works -// with the mux class. -type channel struct { - // R/O after creation - chanType string - extraData []byte - localId, remoteId uint32 - - // maxIncomingPayload and maxRemotePayload are the maximum - // payload sizes of normal and extended data packets for - // receiving and sending, respectively. The wire packet will - // be 9 or 13 bytes larger (excluding encryption overhead). - maxIncomingPayload uint32 - maxRemotePayload uint32 - - mux *mux - - // decided is set to true if an accept or reject message has been sent - // (for outbound channels) or received (for inbound channels). - decided bool - - // direction contains either channelOutbound, for channels created - // locally, or channelInbound, for channels created by the peer. - direction channelDirection - - // Pending internal channel messages. - msg chan interface{} - - // Since requests have no ID, there can be only one request - // with WantReply=true outstanding. This lock is held by a - // goroutine that has such an outgoing request pending. - sentRequestMu sync.Mutex - - incomingRequests chan *Request - - sentEOF bool - - // thread-safe data - remoteWin window - pending *buffer - extPending *buffer - - // windowMu protects myWindow, the flow-control window. - windowMu sync.Mutex - myWindow uint32 - - // writeMu serializes calls to mux.conn.writePacket() and - // protects sentClose and packetPool. This mutex must be - // different from windowMu, as writePacket can block if there - // is a key exchange pending. - writeMu sync.Mutex - sentClose bool - - // packetPool has a buffer for each extended channel ID to - // save allocations during writes. - packetPool map[uint32][]byte -} - -// writePacket sends a packet. If the packet is a channel close, it updates -// sentClose. This method takes the lock c.writeMu. -func (c *channel) writePacket(packet []byte) error { - c.writeMu.Lock() - if c.sentClose { - c.writeMu.Unlock() - return io.EOF - } - c.sentClose = (packet[0] == msgChannelClose) - err := c.mux.conn.writePacket(packet) - c.writeMu.Unlock() - return err -} - -func (c *channel) sendMessage(msg interface{}) error { - if debugMux { - log.Printf("send %d: %#v", c.mux.chanList.offset, msg) - } - - p := Marshal(msg) - binary.BigEndian.PutUint32(p[1:], c.remoteId) - return c.writePacket(p) -} - -// WriteExtended writes data to a specific extended stream. These streams are -// used, for example, for stderr. -func (c *channel) WriteExtended(data []byte, extendedCode uint32) (n int, err error) { - if c.sentEOF { - return 0, io.EOF - } - // 1 byte message type, 4 bytes remoteId, 4 bytes data length - opCode := byte(msgChannelData) - headerLength := uint32(9) - if extendedCode > 0 { - headerLength += 4 - opCode = msgChannelExtendedData - } - - c.writeMu.Lock() - packet := c.packetPool[extendedCode] - // We don't remove the buffer from packetPool, so - // WriteExtended calls from different goroutines will be - // flagged as errors by the race detector. - c.writeMu.Unlock() - - for len(data) > 0 { - space := min(c.maxRemotePayload, len(data)) - if space, err = c.remoteWin.reserve(space); err != nil { - return n, err - } - if want := headerLength + space; uint32(cap(packet)) < want { - packet = make([]byte, want) - } else { - packet = packet[:want] - } - - todo := data[:space] - - packet[0] = opCode - binary.BigEndian.PutUint32(packet[1:], c.remoteId) - if extendedCode > 0 { - binary.BigEndian.PutUint32(packet[5:], uint32(extendedCode)) - } - binary.BigEndian.PutUint32(packet[headerLength-4:], uint32(len(todo))) - copy(packet[headerLength:], todo) - if err = c.writePacket(packet); err != nil { - return n, err - } - - n += len(todo) - data = data[len(todo):] - } - - c.writeMu.Lock() - c.packetPool[extendedCode] = packet - c.writeMu.Unlock() - - return n, err -} - -func (c *channel) handleData(packet []byte) error { - headerLen := 9 - isExtendedData := packet[0] == msgChannelExtendedData - if isExtendedData { - headerLen = 13 - } - if len(packet) < headerLen { - // malformed data packet - return parseError(packet[0]) - } - - var extended uint32 - if isExtendedData { - extended = binary.BigEndian.Uint32(packet[5:]) - } - - length := binary.BigEndian.Uint32(packet[headerLen-4 : headerLen]) - if length == 0 { - return nil - } - if length > c.maxIncomingPayload { - // TODO(hanwen): should send Disconnect? - return errors.New("ssh: incoming packet exceeds maximum payload size") - } - - data := packet[headerLen:] - if length != uint32(len(data)) { - return errors.New("ssh: wrong packet length") - } - - c.windowMu.Lock() - if c.myWindow < length { - c.windowMu.Unlock() - // TODO(hanwen): should send Disconnect with reason? - return errors.New("ssh: remote side wrote too much") - } - c.myWindow -= length - c.windowMu.Unlock() - - if extended == 1 { - c.extPending.write(data) - } else if extended > 0 { - // discard other extended data. - } else { - c.pending.write(data) - } - return nil -} - -func (c *channel) adjustWindow(n uint32) error { - c.windowMu.Lock() - // Since myWindow is managed on our side, and can never exceed - // the initial window setting, we don't worry about overflow. - c.myWindow += uint32(n) - c.windowMu.Unlock() - return c.sendMessage(windowAdjustMsg{ - AdditionalBytes: uint32(n), - }) -} - -func (c *channel) ReadExtended(data []byte, extended uint32) (n int, err error) { - switch extended { - case 1: - n, err = c.extPending.Read(data) - case 0: - n, err = c.pending.Read(data) - default: - return 0, fmt.Errorf("ssh: extended code %d unimplemented", extended) - } - - if n > 0 { - err = c.adjustWindow(uint32(n)) - // sendWindowAdjust can return io.EOF if the remote - // peer has closed the connection, however we want to - // defer forwarding io.EOF to the caller of Read until - // the buffer has been drained. - if n > 0 && err == io.EOF { - err = nil - } - } - - return n, err -} - -func (c *channel) close() { - c.pending.eof() - c.extPending.eof() - close(c.msg) - close(c.incomingRequests) - c.writeMu.Lock() - // This is not necesary for a normal channel teardown, but if - // there was another error, it is. - c.sentClose = true - c.writeMu.Unlock() - // Unblock writers. - c.remoteWin.close() -} - -// responseMessageReceived is called when a success or failure message is -// received on a channel to check that such a message is reasonable for the -// given channel. -func (c *channel) responseMessageReceived() error { - if c.direction == channelInbound { - return errors.New("ssh: channel response message received on inbound channel") - } - if c.decided { - return errors.New("ssh: duplicate response received for channel") - } - c.decided = true - return nil -} - -func (c *channel) handlePacket(packet []byte) error { - switch packet[0] { - case msgChannelData, msgChannelExtendedData: - return c.handleData(packet) - case msgChannelClose: - c.sendMessage(channelCloseMsg{PeersId: c.remoteId}) - c.mux.chanList.remove(c.localId) - c.close() - return nil - case msgChannelEOF: - // RFC 4254 is mute on how EOF affects dataExt messages but - // it is logical to signal EOF at the same time. - c.extPending.eof() - c.pending.eof() - return nil - } - - decoded, err := decode(packet) - if err != nil { - return err - } - - switch msg := decoded.(type) { - case *channelOpenFailureMsg: - if err := c.responseMessageReceived(); err != nil { - return err - } - c.mux.chanList.remove(msg.PeersId) - c.msg <- msg - case *channelOpenConfirmMsg: - if err := c.responseMessageReceived(); err != nil { - return err - } - if msg.MaxPacketSize < minPacketLength || msg.MaxPacketSize > 1<<31 { - return fmt.Errorf("ssh: invalid MaxPacketSize %d from peer", msg.MaxPacketSize) - } - c.remoteId = msg.MyId - c.maxRemotePayload = msg.MaxPacketSize - c.remoteWin.add(msg.MyWindow) - c.msg <- msg - case *windowAdjustMsg: - if !c.remoteWin.add(msg.AdditionalBytes) { - return fmt.Errorf("ssh: invalid window update for %d bytes", msg.AdditionalBytes) - } - case *channelRequestMsg: - req := Request{ - Type: msg.Request, - WantReply: msg.WantReply, - Payload: msg.RequestSpecificData, - ch: c, - } - - c.incomingRequests <- &req - default: - c.msg <- msg - } - return nil -} - -func (m *mux) newChannel(chanType string, direction channelDirection, extraData []byte) *channel { - ch := &channel{ - remoteWin: window{Cond: newCond()}, - myWindow: channelWindowSize, - pending: newBuffer(), - extPending: newBuffer(), - direction: direction, - incomingRequests: make(chan *Request, 16), - msg: make(chan interface{}, 16), - chanType: chanType, - extraData: extraData, - mux: m, - packetPool: make(map[uint32][]byte), - } - ch.localId = m.chanList.add(ch) - return ch -} - -var errUndecided = errors.New("ssh: must Accept or Reject channel") -var errDecidedAlready = errors.New("ssh: can call Accept or Reject only once") - -type extChannel struct { - code uint32 - ch *channel -} - -func (e *extChannel) Write(data []byte) (n int, err error) { - return e.ch.WriteExtended(data, e.code) -} - -func (e *extChannel) Read(data []byte) (n int, err error) { - return e.ch.ReadExtended(data, e.code) -} - -func (c *channel) Accept() (Channel, <-chan *Request, error) { - if c.decided { - return nil, nil, errDecidedAlready - } - c.maxIncomingPayload = channelMaxPacket - confirm := channelOpenConfirmMsg{ - PeersId: c.remoteId, - MyId: c.localId, - MyWindow: c.myWindow, - MaxPacketSize: c.maxIncomingPayload, - } - c.decided = true - if err := c.sendMessage(confirm); err != nil { - return nil, nil, err - } - - return c, c.incomingRequests, nil -} - -func (ch *channel) Reject(reason RejectionReason, message string) error { - if ch.decided { - return errDecidedAlready - } - reject := channelOpenFailureMsg{ - PeersId: ch.remoteId, - Reason: reason, - Message: message, - Language: "en", - } - ch.decided = true - return ch.sendMessage(reject) -} - -func (ch *channel) Read(data []byte) (int, error) { - if !ch.decided { - return 0, errUndecided - } - return ch.ReadExtended(data, 0) -} - -func (ch *channel) Write(data []byte) (int, error) { - if !ch.decided { - return 0, errUndecided - } - return ch.WriteExtended(data, 0) -} - -func (ch *channel) CloseWrite() error { - if !ch.decided { - return errUndecided - } - ch.sentEOF = true - return ch.sendMessage(channelEOFMsg{ - PeersId: ch.remoteId}) -} - -func (ch *channel) Close() error { - if !ch.decided { - return errUndecided - } - - return ch.sendMessage(channelCloseMsg{ - PeersId: ch.remoteId}) -} - -// Extended returns an io.ReadWriter that sends and receives data on the given, -// SSH extended stream. Such streams are used, for example, for stderr. -func (ch *channel) Extended(code uint32) io.ReadWriter { - if !ch.decided { - return nil - } - return &extChannel{code, ch} -} - -func (ch *channel) Stderr() io.ReadWriter { - return ch.Extended(1) -} - -func (ch *channel) SendRequest(name string, wantReply bool, payload []byte) (bool, error) { - if !ch.decided { - return false, errUndecided - } - - if wantReply { - ch.sentRequestMu.Lock() - defer ch.sentRequestMu.Unlock() - } - - msg := channelRequestMsg{ - PeersId: ch.remoteId, - Request: name, - WantReply: wantReply, - RequestSpecificData: payload, - } - - if err := ch.sendMessage(msg); err != nil { - return false, err - } - - if wantReply { - m, ok := (<-ch.msg) - if !ok { - return false, io.EOF - } - switch m.(type) { - case *channelRequestFailureMsg: - return false, nil - case *channelRequestSuccessMsg: - return true, nil - default: - return false, fmt.Errorf("ssh: unexpected response to channel request: %#v", m) - } - } - - return false, nil -} - -// ackRequest either sends an ack or nack to the channel request. -func (ch *channel) ackRequest(ok bool) error { - if !ch.decided { - return errUndecided - } - - var msg interface{} - if !ok { - msg = channelRequestFailureMsg{ - PeersId: ch.remoteId, - } - } else { - msg = channelRequestSuccessMsg{ - PeersId: ch.remoteId, - } - } - return ch.sendMessage(msg) -} - -func (ch *channel) ChannelType() string { - return ch.chanType -} - -func (ch *channel) ExtraData() []byte { - return ch.extraData -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/cipher.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/cipher.go deleted file mode 100644 index 3e06da0d..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/cipher.go +++ /dev/null @@ -1,549 +0,0 @@ -// 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 ssh - -import ( - "crypto/aes" - "crypto/cipher" - "crypto/rc4" - "crypto/subtle" - "encoding/binary" - "errors" - "fmt" - "hash" - "io" - "io/ioutil" -) - -const ( - packetSizeMultiple = 16 // TODO(huin) this should be determined by the cipher. - - // RFC 4253 section 6.1 defines a minimum packet size of 32768 that implementations - // MUST be able to process (plus a few more kilobytes for padding and mac). The RFC - // indicates implementations SHOULD be able to handle larger packet sizes, but then - // waffles on about reasonable limits. - // - // OpenSSH caps their maxPacket at 256kB so we choose to do - // the same. maxPacket is also used to ensure that uint32 - // length fields do not overflow, so it should remain well - // below 4G. - maxPacket = 256 * 1024 -) - -// noneCipher implements cipher.Stream and provides no encryption. It is used -// by the transport before the first key-exchange. -type noneCipher struct{} - -func (c noneCipher) XORKeyStream(dst, src []byte) { - copy(dst, src) -} - -func newAESCTR(key, iv []byte) (cipher.Stream, error) { - c, err := aes.NewCipher(key) - if err != nil { - return nil, err - } - return cipher.NewCTR(c, iv), nil -} - -func newRC4(key, iv []byte) (cipher.Stream, error) { - return rc4.NewCipher(key) -} - -type streamCipherMode struct { - keySize int - ivSize int - skip int - createFunc func(key, iv []byte) (cipher.Stream, error) -} - -func (c *streamCipherMode) createStream(key, iv []byte) (cipher.Stream, error) { - if len(key) < c.keySize { - panic("ssh: key length too small for cipher") - } - if len(iv) < c.ivSize { - panic("ssh: iv too small for cipher") - } - - stream, err := c.createFunc(key[:c.keySize], iv[:c.ivSize]) - if err != nil { - return nil, err - } - - var streamDump []byte - if c.skip > 0 { - streamDump = make([]byte, 512) - } - - for remainingToDump := c.skip; remainingToDump > 0; { - dumpThisTime := remainingToDump - if dumpThisTime > len(streamDump) { - dumpThisTime = len(streamDump) - } - stream.XORKeyStream(streamDump[:dumpThisTime], streamDump[:dumpThisTime]) - remainingToDump -= dumpThisTime - } - - return stream, nil -} - -// cipherModes documents properties of supported ciphers. Ciphers not included -// are not supported and will not be negotiated, even if explicitly requested in -// ClientConfig.Crypto.Ciphers. -var cipherModes = map[string]*streamCipherMode{ - // Ciphers from RFC4344, which introduced many CTR-based ciphers. Algorithms - // are defined in the order specified in the RFC. - "aes128-ctr": {16, aes.BlockSize, 0, newAESCTR}, - "aes192-ctr": {24, aes.BlockSize, 0, newAESCTR}, - "aes256-ctr": {32, aes.BlockSize, 0, newAESCTR}, - - // Ciphers from RFC4345, which introduces security-improved arcfour ciphers. - // They are defined in the order specified in the RFC. - "arcfour128": {16, 0, 1536, newRC4}, - "arcfour256": {32, 0, 1536, newRC4}, - - // Cipher defined in RFC 4253, which describes SSH Transport Layer Protocol. - // Note that this cipher is not safe, as stated in RFC 4253: "Arcfour (and - // RC4) has problems with weak keys, and should be used with caution." - // RFC4345 introduces improved versions of Arcfour. - "arcfour": {16, 0, 0, newRC4}, - - // AES-GCM is not a stream cipher, so it is constructed with a - // special case. If we add any more non-stream ciphers, we - // should invest a cleaner way to do this. - gcmCipherID: {16, 12, 0, nil}, - - // insecure cipher, see http://www.isg.rhul.ac.uk/~kp/SandPfinal.pdf - // uncomment below to enable it. - // aes128cbcID: {16, aes.BlockSize, 0, nil}, -} - -// prefixLen is the length of the packet prefix that contains the packet length -// and number of padding bytes. -const prefixLen = 5 - -// streamPacketCipher is a packetCipher using a stream cipher. -type streamPacketCipher struct { - mac hash.Hash - cipher cipher.Stream - - // The following members are to avoid per-packet allocations. - prefix [prefixLen]byte - seqNumBytes [4]byte - padding [2 * packetSizeMultiple]byte - packetData []byte - macResult []byte -} - -// readPacket reads and decrypt a single packet from the reader argument. -func (s *streamPacketCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { - if _, err := io.ReadFull(r, s.prefix[:]); err != nil { - return nil, err - } - - s.cipher.XORKeyStream(s.prefix[:], s.prefix[:]) - length := binary.BigEndian.Uint32(s.prefix[0:4]) - paddingLength := uint32(s.prefix[4]) - - var macSize uint32 - if s.mac != nil { - s.mac.Reset() - binary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum) - s.mac.Write(s.seqNumBytes[:]) - s.mac.Write(s.prefix[:]) - macSize = uint32(s.mac.Size()) - } - - if length <= paddingLength+1 { - return nil, errors.New("ssh: invalid packet length, packet too small") - } - - if length > maxPacket { - return nil, errors.New("ssh: invalid packet length, packet too large") - } - - // the maxPacket check above ensures that length-1+macSize - // does not overflow. - if uint32(cap(s.packetData)) < length-1+macSize { - s.packetData = make([]byte, length-1+macSize) - } else { - s.packetData = s.packetData[:length-1+macSize] - } - - if _, err := io.ReadFull(r, s.packetData); err != nil { - return nil, err - } - mac := s.packetData[length-1:] - data := s.packetData[:length-1] - s.cipher.XORKeyStream(data, data) - - if s.mac != nil { - s.mac.Write(data) - s.macResult = s.mac.Sum(s.macResult[:0]) - if subtle.ConstantTimeCompare(s.macResult, mac) != 1 { - return nil, errors.New("ssh: MAC failure") - } - } - - return s.packetData[:length-paddingLength-1], nil -} - -// writePacket encrypts and sends a packet of data to the writer argument -func (s *streamPacketCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { - if len(packet) > maxPacket { - return errors.New("ssh: packet too large") - } - - paddingLength := packetSizeMultiple - (prefixLen+len(packet))%packetSizeMultiple - if paddingLength < 4 { - paddingLength += packetSizeMultiple - } - - length := len(packet) + 1 + paddingLength - binary.BigEndian.PutUint32(s.prefix[:], uint32(length)) - s.prefix[4] = byte(paddingLength) - padding := s.padding[:paddingLength] - if _, err := io.ReadFull(rand, padding); err != nil { - return err - } - - if s.mac != nil { - s.mac.Reset() - binary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum) - s.mac.Write(s.seqNumBytes[:]) - s.mac.Write(s.prefix[:]) - s.mac.Write(packet) - s.mac.Write(padding) - } - - s.cipher.XORKeyStream(s.prefix[:], s.prefix[:]) - s.cipher.XORKeyStream(packet, packet) - s.cipher.XORKeyStream(padding, padding) - - if _, err := w.Write(s.prefix[:]); err != nil { - return err - } - if _, err := w.Write(packet); err != nil { - return err - } - if _, err := w.Write(padding); err != nil { - return err - } - - if s.mac != nil { - s.macResult = s.mac.Sum(s.macResult[:0]) - if _, err := w.Write(s.macResult); err != nil { - return err - } - } - - return nil -} - -type gcmCipher struct { - aead cipher.AEAD - prefix [4]byte - iv []byte - buf []byte -} - -func newGCMCipher(iv, key, macKey []byte) (packetCipher, error) { - c, err := aes.NewCipher(key) - if err != nil { - return nil, err - } - - aead, err := cipher.NewGCM(c) - if err != nil { - return nil, err - } - - return &gcmCipher{ - aead: aead, - iv: iv, - }, nil -} - -const gcmTagSize = 16 - -func (c *gcmCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { - // Pad out to multiple of 16 bytes. This is different from the - // stream cipher because that encrypts the length too. - padding := byte(packetSizeMultiple - (1+len(packet))%packetSizeMultiple) - if padding < 4 { - padding += packetSizeMultiple - } - - length := uint32(len(packet) + int(padding) + 1) - binary.BigEndian.PutUint32(c.prefix[:], length) - if _, err := w.Write(c.prefix[:]); err != nil { - return err - } - - if cap(c.buf) < int(length) { - c.buf = make([]byte, length) - } else { - c.buf = c.buf[:length] - } - - c.buf[0] = padding - copy(c.buf[1:], packet) - if _, err := io.ReadFull(rand, c.buf[1+len(packet):]); err != nil { - return err - } - c.buf = c.aead.Seal(c.buf[:0], c.iv, c.buf, c.prefix[:]) - if _, err := w.Write(c.buf); err != nil { - return err - } - c.incIV() - - return nil -} - -func (c *gcmCipher) incIV() { - for i := 4 + 7; i >= 4; i-- { - c.iv[i]++ - if c.iv[i] != 0 { - break - } - } -} - -func (c *gcmCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { - if _, err := io.ReadFull(r, c.prefix[:]); err != nil { - return nil, err - } - length := binary.BigEndian.Uint32(c.prefix[:]) - if length > maxPacket { - return nil, errors.New("ssh: max packet length exceeded.") - } - - if cap(c.buf) < int(length+gcmTagSize) { - c.buf = make([]byte, length+gcmTagSize) - } else { - c.buf = c.buf[:length+gcmTagSize] - } - - if _, err := io.ReadFull(r, c.buf); err != nil { - return nil, err - } - - plain, err := c.aead.Open(c.buf[:0], c.iv, c.buf, c.prefix[:]) - if err != nil { - return nil, err - } - c.incIV() - - padding := plain[0] - if padding < 4 || padding >= 20 { - return nil, fmt.Errorf("ssh: illegal padding %d", padding) - } - - if int(padding+1) >= len(plain) { - return nil, fmt.Errorf("ssh: padding %d too large", padding) - } - plain = plain[1 : length-uint32(padding)] - return plain, nil -} - -// cbcCipher implements aes128-cbc cipher defined in RFC 4253 section 6.1 -type cbcCipher struct { - mac hash.Hash - macSize uint32 - decrypter cipher.BlockMode - encrypter cipher.BlockMode - - // The following members are to avoid per-packet allocations. - seqNumBytes [4]byte - packetData []byte - macResult []byte - - // Amount of data we should still read to hide which - // verification error triggered. - oracleCamouflage uint32 -} - -func newAESCBCCipher(iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { - c, err := aes.NewCipher(key) - if err != nil { - return nil, err - } - - cbc := &cbcCipher{ - mac: macModes[algs.MAC].new(macKey), - decrypter: cipher.NewCBCDecrypter(c, iv), - encrypter: cipher.NewCBCEncrypter(c, iv), - packetData: make([]byte, 1024), - } - if cbc.mac != nil { - cbc.macSize = uint32(cbc.mac.Size()) - } - - return cbc, nil -} - -func maxUInt32(a, b int) uint32 { - if a > b { - return uint32(a) - } - return uint32(b) -} - -const ( - cbcMinPacketSizeMultiple = 8 - cbcMinPacketSize = 16 - cbcMinPaddingSize = 4 -) - -// cbcError represents a verification error that may leak information. -type cbcError string - -func (e cbcError) Error() string { return string(e) } - -func (c *cbcCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { - p, err := c.readPacketLeaky(seqNum, r) - if err != nil { - if _, ok := err.(cbcError); ok { - // Verification error: read a fixed amount of - // data, to make distinguishing between - // failing MAC and failing length check more - // difficult. - io.CopyN(ioutil.Discard, r, int64(c.oracleCamouflage)) - } - } - return p, err -} - -func (c *cbcCipher) readPacketLeaky(seqNum uint32, r io.Reader) ([]byte, error) { - blockSize := c.decrypter.BlockSize() - - // Read the header, which will include some of the subsequent data in the - // case of block ciphers - this is copied back to the payload later. - // How many bytes of payload/padding will be read with this first read. - firstBlockLength := uint32((prefixLen + blockSize - 1) / blockSize * blockSize) - firstBlock := c.packetData[:firstBlockLength] - if _, err := io.ReadFull(r, firstBlock); err != nil { - return nil, err - } - - c.oracleCamouflage = maxPacket + 4 + c.macSize - firstBlockLength - - c.decrypter.CryptBlocks(firstBlock, firstBlock) - length := binary.BigEndian.Uint32(firstBlock[:4]) - if length > maxPacket { - return nil, cbcError("ssh: packet too large") - } - if length+4 < maxUInt32(cbcMinPacketSize, blockSize) { - // The minimum size of a packet is 16 (or the cipher block size, whichever - // is larger) bytes. - return nil, cbcError("ssh: packet too small") - } - // The length of the packet (including the length field but not the MAC) must - // be a multiple of the block size or 8, whichever is larger. - if (length+4)%maxUInt32(cbcMinPacketSizeMultiple, blockSize) != 0 { - return nil, cbcError("ssh: invalid packet length multiple") - } - - paddingLength := uint32(firstBlock[4]) - if paddingLength < cbcMinPaddingSize || length <= paddingLength+1 { - return nil, cbcError("ssh: invalid packet length") - } - - // Positions within the c.packetData buffer: - macStart := 4 + length - paddingStart := macStart - paddingLength - - // Entire packet size, starting before length, ending at end of mac. - entirePacketSize := macStart + c.macSize - - // Ensure c.packetData is large enough for the entire packet data. - if uint32(cap(c.packetData)) < entirePacketSize { - // Still need to upsize and copy, but this should be rare at runtime, only - // on upsizing the packetData buffer. - c.packetData = make([]byte, entirePacketSize) - copy(c.packetData, firstBlock) - } else { - c.packetData = c.packetData[:entirePacketSize] - } - - if n, err := io.ReadFull(r, c.packetData[firstBlockLength:]); err != nil { - return nil, err - } else { - c.oracleCamouflage -= uint32(n) - } - - remainingCrypted := c.packetData[firstBlockLength:macStart] - c.decrypter.CryptBlocks(remainingCrypted, remainingCrypted) - - mac := c.packetData[macStart:] - if c.mac != nil { - c.mac.Reset() - binary.BigEndian.PutUint32(c.seqNumBytes[:], seqNum) - c.mac.Write(c.seqNumBytes[:]) - c.mac.Write(c.packetData[:macStart]) - c.macResult = c.mac.Sum(c.macResult[:0]) - if subtle.ConstantTimeCompare(c.macResult, mac) != 1 { - return nil, cbcError("ssh: MAC failure") - } - } - - return c.packetData[prefixLen:paddingStart], nil -} - -func (c *cbcCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { - effectiveBlockSize := maxUInt32(cbcMinPacketSizeMultiple, c.encrypter.BlockSize()) - - // Length of encrypted portion of the packet (header, payload, padding). - // Enforce minimum padding and packet size. - encLength := maxUInt32(prefixLen+len(packet)+cbcMinPaddingSize, cbcMinPaddingSize) - // Enforce block size. - encLength = (encLength + effectiveBlockSize - 1) / effectiveBlockSize * effectiveBlockSize - - length := encLength - 4 - paddingLength := int(length) - (1 + len(packet)) - - // Overall buffer contains: header, payload, padding, mac. - // Space for the MAC is reserved in the capacity but not the slice length. - bufferSize := encLength + c.macSize - if uint32(cap(c.packetData)) < bufferSize { - c.packetData = make([]byte, encLength, bufferSize) - } else { - c.packetData = c.packetData[:encLength] - } - - p := c.packetData - - // Packet header. - binary.BigEndian.PutUint32(p, length) - p = p[4:] - p[0] = byte(paddingLength) - - // Payload. - p = p[1:] - copy(p, packet) - - // Padding. - p = p[len(packet):] - if _, err := io.ReadFull(rand, p); err != nil { - return err - } - - if c.mac != nil { - c.mac.Reset() - binary.BigEndian.PutUint32(c.seqNumBytes[:], seqNum) - c.mac.Write(c.seqNumBytes[:]) - c.mac.Write(c.packetData) - // The MAC is now appended into the capacity reserved for it earlier. - c.packetData = c.mac.Sum(c.packetData) - } - - c.encrypter.CryptBlocks(c.packetData[:encLength], c.packetData[:encLength]) - - if _, err := w.Write(c.packetData); err != nil { - return err - } - - return nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/cipher_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/cipher_test.go deleted file mode 100644 index 54b92b6e..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/cipher_test.go +++ /dev/null @@ -1,127 +0,0 @@ -// 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 ssh - -import ( - "bytes" - "crypto" - "crypto/aes" - "crypto/rand" - "testing" -) - -func TestDefaultCiphersExist(t *testing.T) { - for _, cipherAlgo := range supportedCiphers { - if _, ok := cipherModes[cipherAlgo]; !ok { - t.Errorf("default cipher %q is unknown", cipherAlgo) - } - } -} - -func TestPacketCiphers(t *testing.T) { - // Still test aes128cbc cipher althought it's commented out. - cipherModes[aes128cbcID] = &streamCipherMode{16, aes.BlockSize, 0, nil} - defer delete(cipherModes, aes128cbcID) - - for cipher := range cipherModes { - kr := &kexResult{Hash: crypto.SHA1} - algs := directionAlgorithms{ - Cipher: cipher, - MAC: "hmac-sha1", - Compression: "none", - } - client, err := newPacketCipher(clientKeys, algs, kr) - if err != nil { - t.Errorf("newPacketCipher(client, %q): %v", cipher, err) - continue - } - server, err := newPacketCipher(clientKeys, algs, kr) - if err != nil { - t.Errorf("newPacketCipher(client, %q): %v", cipher, err) - continue - } - - want := "bla bla" - input := []byte(want) - buf := &bytes.Buffer{} - if err := client.writePacket(0, buf, rand.Reader, input); err != nil { - t.Errorf("writePacket(%q): %v", cipher, err) - continue - } - - packet, err := server.readPacket(0, buf) - if err != nil { - t.Errorf("readPacket(%q): %v", cipher, err) - continue - } - - if string(packet) != want { - t.Errorf("roundtrip(%q): got %q, want %q", cipher, packet, want) - } - } -} - -func TestCBCOracleCounterMeasure(t *testing.T) { - cipherModes[aes128cbcID] = &streamCipherMode{16, aes.BlockSize, 0, nil} - defer delete(cipherModes, aes128cbcID) - - kr := &kexResult{Hash: crypto.SHA1} - algs := directionAlgorithms{ - Cipher: aes128cbcID, - MAC: "hmac-sha1", - Compression: "none", - } - client, err := newPacketCipher(clientKeys, algs, kr) - if err != nil { - t.Fatalf("newPacketCipher(client): %v", err) - } - - want := "bla bla" - input := []byte(want) - buf := &bytes.Buffer{} - if err := client.writePacket(0, buf, rand.Reader, input); err != nil { - t.Errorf("writePacket: %v", err) - } - - packetSize := buf.Len() - buf.Write(make([]byte, 2*maxPacket)) - - // We corrupt each byte, but this usually will only test the - // 'packet too large' or 'MAC failure' cases. - lastRead := -1 - for i := 0; i < packetSize; i++ { - server, err := newPacketCipher(clientKeys, algs, kr) - if err != nil { - t.Fatalf("newPacketCipher(client): %v", err) - } - - fresh := &bytes.Buffer{} - fresh.Write(buf.Bytes()) - fresh.Bytes()[i] ^= 0x01 - - before := fresh.Len() - _, err = server.readPacket(0, fresh) - if err == nil { - t.Errorf("corrupt byte %d: readPacket succeeded ", i) - continue - } - if _, ok := err.(cbcError); !ok { - t.Errorf("corrupt byte %d: got %v (%T), want cbcError", i, err, err) - continue - } - - after := fresh.Len() - bytesRead := before - after - if bytesRead < maxPacket { - t.Errorf("corrupt byte %d: read %d bytes, want more than %d", i, bytesRead, maxPacket) - continue - } - - if i > 0 && bytesRead != lastRead { - t.Errorf("corrupt byte %d: read %d bytes, want %d bytes read", i, bytesRead, lastRead) - } - lastRead = bytesRead - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client.go deleted file mode 100644 index 0b9fbe50..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client.go +++ /dev/null @@ -1,213 +0,0 @@ -// 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 ssh - -import ( - "errors" - "fmt" - "net" - "sync" -) - -// Client implements a traditional SSH client that supports shells, -// subprocesses, port forwarding and tunneled dialing. -type Client struct { - Conn - - forwards forwardList // forwarded tcpip connections from the remote side - mu sync.Mutex - channelHandlers map[string]chan NewChannel -} - -// HandleChannelOpen returns a channel on which NewChannel requests -// for the given type are sent. If the type already is being handled, -// nil is returned. The channel is closed when the connection is closed. -func (c *Client) HandleChannelOpen(channelType string) <-chan NewChannel { - c.mu.Lock() - defer c.mu.Unlock() - if c.channelHandlers == nil { - // The SSH channel has been closed. - c := make(chan NewChannel) - close(c) - return c - } - - ch := c.channelHandlers[channelType] - if ch != nil { - return nil - } - - ch = make(chan NewChannel, 16) - c.channelHandlers[channelType] = ch - return ch -} - -// NewClient creates a Client on top of the given connection. -func NewClient(c Conn, chans <-chan NewChannel, reqs <-chan *Request) *Client { - conn := &Client{ - Conn: c, - channelHandlers: make(map[string]chan NewChannel, 1), - } - - go conn.handleGlobalRequests(reqs) - go conn.handleChannelOpens(chans) - go func() { - conn.Wait() - conn.forwards.closeAll() - }() - go conn.forwards.handleChannels(conn.HandleChannelOpen("forwarded-tcpip")) - return conn -} - -// NewClientConn establishes an authenticated SSH connection using c -// as the underlying transport. The Request and NewChannel channels -// must be serviced or the connection will hang. -func NewClientConn(c net.Conn, addr string, config *ClientConfig) (Conn, <-chan NewChannel, <-chan *Request, error) { - fullConf := *config - fullConf.SetDefaults() - conn := &connection{ - sshConn: sshConn{conn: c}, - } - - if err := conn.clientHandshake(addr, &fullConf); err != nil { - c.Close() - return nil, nil, nil, fmt.Errorf("ssh: handshake failed: %v", err) - } - conn.mux = newMux(conn.transport) - return conn, conn.mux.incomingChannels, conn.mux.incomingRequests, nil -} - -// clientHandshake performs the client side key exchange. See RFC 4253 Section -// 7. -func (c *connection) clientHandshake(dialAddress string, config *ClientConfig) error { - if config.ClientVersion != "" { - c.clientVersion = []byte(config.ClientVersion) - } else { - c.clientVersion = []byte(packageVersion) - } - var err error - c.serverVersion, err = exchangeVersions(c.sshConn.conn, c.clientVersion) - if err != nil { - return err - } - - c.transport = newClientTransport( - newTransport(c.sshConn.conn, config.Rand, true /* is client */), - c.clientVersion, c.serverVersion, config, dialAddress, c.sshConn.RemoteAddr()) - if err := c.transport.requestKeyChange(); err != nil { - return err - } - - if packet, err := c.transport.readPacket(); err != nil { - return err - } else if packet[0] != msgNewKeys { - return unexpectedMessageError(msgNewKeys, packet[0]) - } - - // We just did the key change, so the session ID is established. - c.sessionID = c.transport.getSessionID() - - return c.clientAuthenticate(config) -} - -// verifyHostKeySignature verifies the host key obtained in the key -// exchange. -func verifyHostKeySignature(hostKey PublicKey, result *kexResult) error { - sig, rest, ok := parseSignatureBody(result.Signature) - if len(rest) > 0 || !ok { - return errors.New("ssh: signature parse error") - } - - return hostKey.Verify(result.H, sig) -} - -// NewSession opens a new Session for this client. (A session is a remote -// execution of a program.) -func (c *Client) NewSession() (*Session, error) { - ch, in, err := c.OpenChannel("session", nil) - if err != nil { - return nil, err - } - return newSession(ch, in) -} - -func (c *Client) handleGlobalRequests(incoming <-chan *Request) { - for r := range incoming { - // This handles keepalive messages and matches - // the behaviour of OpenSSH. - r.Reply(false, nil) - } -} - -// handleChannelOpens channel open messages from the remote side. -func (c *Client) handleChannelOpens(in <-chan NewChannel) { - for ch := range in { - c.mu.Lock() - handler := c.channelHandlers[ch.ChannelType()] - c.mu.Unlock() - - if handler != nil { - handler <- ch - } else { - ch.Reject(UnknownChannelType, fmt.Sprintf("unknown channel type: %v", ch.ChannelType())) - } - } - - c.mu.Lock() - for _, ch := range c.channelHandlers { - close(ch) - } - c.channelHandlers = nil - c.mu.Unlock() -} - -// Dial starts a client connection to the given SSH server. It is a -// convenience function that connects to the given network address, -// initiates the SSH handshake, and then sets up a Client. For access -// to incoming channels and requests, use net.Dial with NewClientConn -// instead. -func Dial(network, addr string, config *ClientConfig) (*Client, error) { - conn, err := net.Dial(network, addr) - if err != nil { - return nil, err - } - c, chans, reqs, err := NewClientConn(conn, addr, config) - if err != nil { - return nil, err - } - return NewClient(c, chans, reqs), nil -} - -// A ClientConfig structure is used to configure a Client. It must not be -// modified after having been passed to an SSH function. -type ClientConfig struct { - // Config contains configuration that is shared between clients and - // servers. - Config - - // User contains the username to authenticate as. - User string - - // Auth contains possible authentication methods to use with the - // server. Only the first instance of a particular RFC 4252 method will - // be used during authentication. - Auth []AuthMethod - - // HostKeyCallback, if not nil, is called during the cryptographic - // handshake to validate the server's host key. A nil HostKeyCallback - // implies that all host keys are accepted. - HostKeyCallback func(hostname string, remote net.Addr, key PublicKey) error - - // ClientVersion contains the version identification string that will - // be used for the connection. If empty, a reasonable default is used. - ClientVersion string - - // HostKeyAlgorithms lists the key types that the client will - // accept from the server as host key, in order of - // preference. If empty, a reasonable default is used. Any - // string returned from PublicKey.Type method may be used, or - // any of the CertAlgoXxxx and KeyAlgoXxxx constants. - HostKeyAlgorithms []string -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client_auth.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client_auth.go deleted file mode 100644 index e15be3ef..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client_auth.go +++ /dev/null @@ -1,441 +0,0 @@ -// 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 ssh - -import ( - "bytes" - "errors" - "fmt" - "io" -) - -// clientAuthenticate authenticates with the remote server. See RFC 4252. -func (c *connection) clientAuthenticate(config *ClientConfig) error { - // initiate user auth session - if err := c.transport.writePacket(Marshal(&serviceRequestMsg{serviceUserAuth})); err != nil { - return err - } - packet, err := c.transport.readPacket() - if err != nil { - return err - } - var serviceAccept serviceAcceptMsg - if err := Unmarshal(packet, &serviceAccept); err != nil { - return err - } - - // during the authentication phase the client first attempts the "none" method - // then any untried methods suggested by the server. - tried := make(map[string]bool) - var lastMethods []string - for auth := AuthMethod(new(noneAuth)); auth != nil; { - ok, methods, err := auth.auth(c.transport.getSessionID(), config.User, c.transport, config.Rand) - if err != nil { - return err - } - if ok { - // success - return nil - } - tried[auth.method()] = true - if methods == nil { - methods = lastMethods - } - lastMethods = methods - - auth = nil - - findNext: - for _, a := range config.Auth { - candidateMethod := a.method() - if tried[candidateMethod] { - continue - } - for _, meth := range methods { - if meth == candidateMethod { - auth = a - break findNext - } - } - } - } - return fmt.Errorf("ssh: unable to authenticate, attempted methods %v, no supported methods remain", keys(tried)) -} - -func keys(m map[string]bool) []string { - s := make([]string, 0, len(m)) - - for key := range m { - s = append(s, key) - } - return s -} - -// An AuthMethod represents an instance of an RFC 4252 authentication method. -type AuthMethod interface { - // auth authenticates user over transport t. - // Returns true if authentication is successful. - // If authentication is not successful, a []string of alternative - // method names is returned. If the slice is nil, it will be ignored - // and the previous set of possible methods will be reused. - auth(session []byte, user string, p packetConn, rand io.Reader) (bool, []string, error) - - // method returns the RFC 4252 method name. - method() string -} - -// "none" authentication, RFC 4252 section 5.2. -type noneAuth int - -func (n *noneAuth) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { - if err := c.writePacket(Marshal(&userAuthRequestMsg{ - User: user, - Service: serviceSSH, - Method: "none", - })); err != nil { - return false, nil, err - } - - return handleAuthResponse(c) -} - -func (n *noneAuth) method() string { - return "none" -} - -// passwordCallback is an AuthMethod that fetches the password through -// a function call, e.g. by prompting the user. -type passwordCallback func() (password string, err error) - -func (cb passwordCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { - type passwordAuthMsg struct { - User string `sshtype:"50"` - Service string - Method string - Reply bool - Password string - } - - pw, err := cb() - // REVIEW NOTE: is there a need to support skipping a password attempt? - // The program may only find out that the user doesn't have a password - // when prompting. - if err != nil { - return false, nil, err - } - - if err := c.writePacket(Marshal(&passwordAuthMsg{ - User: user, - Service: serviceSSH, - Method: cb.method(), - Reply: false, - Password: pw, - })); err != nil { - return false, nil, err - } - - return handleAuthResponse(c) -} - -func (cb passwordCallback) method() string { - return "password" -} - -// Password returns an AuthMethod using the given password. -func Password(secret string) AuthMethod { - return passwordCallback(func() (string, error) { return secret, nil }) -} - -// PasswordCallback returns an AuthMethod that uses a callback for -// fetching a password. -func PasswordCallback(prompt func() (secret string, err error)) AuthMethod { - return passwordCallback(prompt) -} - -type publickeyAuthMsg struct { - User string `sshtype:"50"` - Service string - Method string - // HasSig indicates to the receiver packet that the auth request is signed and - // should be used for authentication of the request. - HasSig bool - Algoname string - PubKey []byte - // Sig is tagged with "rest" so Marshal will exclude it during - // validateKey - Sig []byte `ssh:"rest"` -} - -// publicKeyCallback is an AuthMethod that uses a set of key -// pairs for authentication. -type publicKeyCallback func() ([]Signer, error) - -func (cb publicKeyCallback) method() string { - return "publickey" -} - -func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { - // Authentication is performed in two stages. The first stage sends an - // enquiry to test if each key is acceptable to the remote. The second - // stage attempts to authenticate with the valid keys obtained in the - // first stage. - - signers, err := cb() - if err != nil { - return false, nil, err - } - var validKeys []Signer - for _, signer := range signers { - if ok, err := validateKey(signer.PublicKey(), user, c); ok { - validKeys = append(validKeys, signer) - } else { - if err != nil { - return false, nil, err - } - } - } - - // methods that may continue if this auth is not successful. - var methods []string - for _, signer := range validKeys { - pub := signer.PublicKey() - - pubKey := pub.Marshal() - sign, err := signer.Sign(rand, buildDataSignedForAuth(session, userAuthRequestMsg{ - User: user, - Service: serviceSSH, - Method: cb.method(), - }, []byte(pub.Type()), pubKey)) - if err != nil { - return false, nil, err - } - - // manually wrap the serialized signature in a string - s := Marshal(sign) - sig := make([]byte, stringLength(len(s))) - marshalString(sig, s) - msg := publickeyAuthMsg{ - User: user, - Service: serviceSSH, - Method: cb.method(), - HasSig: true, - Algoname: pub.Type(), - PubKey: pubKey, - Sig: sig, - } - p := Marshal(&msg) - if err := c.writePacket(p); err != nil { - return false, nil, err - } - var success bool - success, methods, err = handleAuthResponse(c) - if err != nil { - return false, nil, err - } - if success { - return success, methods, err - } - } - return false, methods, nil -} - -// validateKey validates the key provided is acceptable to the server. -func validateKey(key PublicKey, user string, c packetConn) (bool, error) { - pubKey := key.Marshal() - msg := publickeyAuthMsg{ - User: user, - Service: serviceSSH, - Method: "publickey", - HasSig: false, - Algoname: key.Type(), - PubKey: pubKey, - } - if err := c.writePacket(Marshal(&msg)); err != nil { - return false, err - } - - return confirmKeyAck(key, c) -} - -func confirmKeyAck(key PublicKey, c packetConn) (bool, error) { - pubKey := key.Marshal() - algoname := key.Type() - - for { - packet, err := c.readPacket() - if err != nil { - return false, err - } - switch packet[0] { - case msgUserAuthBanner: - // TODO(gpaul): add callback to present the banner to the user - case msgUserAuthPubKeyOk: - var msg userAuthPubKeyOkMsg - if err := Unmarshal(packet, &msg); err != nil { - return false, err - } - if msg.Algo != algoname || !bytes.Equal(msg.PubKey, pubKey) { - return false, nil - } - return true, nil - case msgUserAuthFailure: - return false, nil - default: - return false, unexpectedMessageError(msgUserAuthSuccess, packet[0]) - } - } -} - -// PublicKeys returns an AuthMethod that uses the given key -// pairs. -func PublicKeys(signers ...Signer) AuthMethod { - return publicKeyCallback(func() ([]Signer, error) { return signers, nil }) -} - -// PublicKeysCallback returns an AuthMethod that runs the given -// function to obtain a list of key pairs. -func PublicKeysCallback(getSigners func() (signers []Signer, err error)) AuthMethod { - return publicKeyCallback(getSigners) -} - -// handleAuthResponse returns whether the preceding authentication request succeeded -// along with a list of remaining authentication methods to try next and -// an error if an unexpected response was received. -func handleAuthResponse(c packetConn) (bool, []string, error) { - for { - packet, err := c.readPacket() - if err != nil { - return false, nil, err - } - - switch packet[0] { - case msgUserAuthBanner: - // TODO: add callback to present the banner to the user - case msgUserAuthFailure: - var msg userAuthFailureMsg - if err := Unmarshal(packet, &msg); err != nil { - return false, nil, err - } - return false, msg.Methods, nil - case msgUserAuthSuccess: - return true, nil, nil - case msgDisconnect: - return false, nil, io.EOF - default: - return false, nil, unexpectedMessageError(msgUserAuthSuccess, packet[0]) - } - } -} - -// KeyboardInteractiveChallenge should print questions, optionally -// disabling echoing (e.g. for passwords), and return all the answers. -// Challenge may be called multiple times in a single session. After -// successful authentication, the server may send a challenge with no -// questions, for which the user and instruction messages should be -// printed. RFC 4256 section 3.3 details how the UI should behave for -// both CLI and GUI environments. -type KeyboardInteractiveChallenge func(user, instruction string, questions []string, echos []bool) (answers []string, err error) - -// KeyboardInteractive returns a AuthMethod using a prompt/response -// sequence controlled by the server. -func KeyboardInteractive(challenge KeyboardInteractiveChallenge) AuthMethod { - return challenge -} - -func (cb KeyboardInteractiveChallenge) method() string { - return "keyboard-interactive" -} - -func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { - type initiateMsg struct { - User string `sshtype:"50"` - Service string - Method string - Language string - Submethods string - } - - if err := c.writePacket(Marshal(&initiateMsg{ - User: user, - Service: serviceSSH, - Method: "keyboard-interactive", - })); err != nil { - return false, nil, err - } - - for { - packet, err := c.readPacket() - if err != nil { - return false, nil, err - } - - // like handleAuthResponse, but with less options. - switch packet[0] { - case msgUserAuthBanner: - // TODO: Print banners during userauth. - continue - case msgUserAuthInfoRequest: - // OK - case msgUserAuthFailure: - var msg userAuthFailureMsg - if err := Unmarshal(packet, &msg); err != nil { - return false, nil, err - } - return false, msg.Methods, nil - case msgUserAuthSuccess: - return true, nil, nil - default: - return false, nil, unexpectedMessageError(msgUserAuthInfoRequest, packet[0]) - } - - var msg userAuthInfoRequestMsg - if err := Unmarshal(packet, &msg); err != nil { - return false, nil, err - } - - // Manually unpack the prompt/echo pairs. - rest := msg.Prompts - var prompts []string - var echos []bool - for i := 0; i < int(msg.NumPrompts); i++ { - prompt, r, ok := parseString(rest) - if !ok || len(r) == 0 { - return false, nil, errors.New("ssh: prompt format error") - } - prompts = append(prompts, string(prompt)) - echos = append(echos, r[0] != 0) - rest = r[1:] - } - - if len(rest) != 0 { - return false, nil, errors.New("ssh: extra data following keyboard-interactive pairs") - } - - answers, err := cb(msg.User, msg.Instruction, prompts, echos) - if err != nil { - return false, nil, err - } - - if len(answers) != len(prompts) { - return false, nil, errors.New("ssh: not enough answers from keyboard-interactive callback") - } - responseLength := 1 + 4 - for _, a := range answers { - responseLength += stringLength(len(a)) - } - serialized := make([]byte, responseLength) - p := serialized - p[0] = msgUserAuthInfoResponse - p = p[1:] - p = marshalUint32(p, uint32(len(answers))) - for _, a := range answers { - p = marshalString(p, []byte(a)) - } - - if err := c.writePacket(serialized); err != nil { - return false, nil, err - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client_auth_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client_auth_test.go deleted file mode 100644 index 2ea44624..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client_auth_test.go +++ /dev/null @@ -1,393 +0,0 @@ -// 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 ssh - -import ( - "bytes" - "crypto/rand" - "errors" - "fmt" - "strings" - "testing" -) - -type keyboardInteractive map[string]string - -func (cr keyboardInteractive) Challenge(user string, instruction string, questions []string, echos []bool) ([]string, error) { - var answers []string - for _, q := range questions { - answers = append(answers, cr[q]) - } - return answers, nil -} - -// reused internally by tests -var clientPassword = "tiger" - -// tryAuth runs a handshake with a given config against an SSH server -// with config serverConfig -func tryAuth(t *testing.T, config *ClientConfig) error { - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - certChecker := CertChecker{ - IsAuthority: func(k PublicKey) bool { - return bytes.Equal(k.Marshal(), testPublicKeys["ecdsa"].Marshal()) - }, - UserKeyFallback: func(conn ConnMetadata, key PublicKey) (*Permissions, error) { - if conn.User() == "testuser" && bytes.Equal(key.Marshal(), testPublicKeys["rsa"].Marshal()) { - return nil, nil - } - - return nil, fmt.Errorf("pubkey for %q not acceptable", conn.User()) - }, - IsRevoked: func(c *Certificate) bool { - return c.Serial == 666 - }, - } - - serverConfig := &ServerConfig{ - PasswordCallback: func(conn ConnMetadata, pass []byte) (*Permissions, error) { - if conn.User() == "testuser" && string(pass) == clientPassword { - return nil, nil - } - return nil, errors.New("password auth failed") - }, - PublicKeyCallback: certChecker.Authenticate, - KeyboardInteractiveCallback: func(conn ConnMetadata, challenge KeyboardInteractiveChallenge) (*Permissions, error) { - ans, err := challenge("user", - "instruction", - []string{"question1", "question2"}, - []bool{true, true}) - if err != nil { - return nil, err - } - ok := conn.User() == "testuser" && ans[0] == "answer1" && ans[1] == "answer2" - if ok { - challenge("user", "motd", nil, nil) - return nil, nil - } - return nil, errors.New("keyboard-interactive failed") - }, - AuthLogCallback: func(conn ConnMetadata, method string, err error) { - t.Logf("user %q, method %q: %v", conn.User(), method, err) - }, - } - serverConfig.AddHostKey(testSigners["rsa"]) - - go newServer(c1, serverConfig) - _, _, _, err = NewClientConn(c2, "", config) - return err -} - -func TestClientAuthPublicKey(t *testing.T) { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(testSigners["rsa"]), - }, - } - if err := tryAuth(t, config); err != nil { - t.Fatalf("unable to dial remote side: %s", err) - } -} - -func TestAuthMethodPassword(t *testing.T) { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - Password(clientPassword), - }, - } - - if err := tryAuth(t, config); err != nil { - t.Fatalf("unable to dial remote side: %s", err) - } -} - -func TestAuthMethodFallback(t *testing.T) { - var passwordCalled bool - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(testSigners["rsa"]), - PasswordCallback( - func() (string, error) { - passwordCalled = true - return "WRONG", nil - }), - }, - } - - if err := tryAuth(t, config); err != nil { - t.Fatalf("unable to dial remote side: %s", err) - } - - if passwordCalled { - t.Errorf("password auth tried before public-key auth.") - } -} - -func TestAuthMethodWrongPassword(t *testing.T) { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - Password("wrong"), - PublicKeys(testSigners["rsa"]), - }, - } - - if err := tryAuth(t, config); err != nil { - t.Fatalf("unable to dial remote side: %s", err) - } -} - -func TestAuthMethodKeyboardInteractive(t *testing.T) { - answers := keyboardInteractive(map[string]string{ - "question1": "answer1", - "question2": "answer2", - }) - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - KeyboardInteractive(answers.Challenge), - }, - } - - if err := tryAuth(t, config); err != nil { - t.Fatalf("unable to dial remote side: %s", err) - } -} - -func TestAuthMethodWrongKeyboardInteractive(t *testing.T) { - answers := keyboardInteractive(map[string]string{ - "question1": "answer1", - "question2": "WRONG", - }) - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - KeyboardInteractive(answers.Challenge), - }, - } - - if err := tryAuth(t, config); err == nil { - t.Fatalf("wrong answers should not have authenticated with KeyboardInteractive") - } -} - -// the mock server will only authenticate ssh-rsa keys -func TestAuthMethodInvalidPublicKey(t *testing.T) { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(testSigners["dsa"]), - }, - } - - if err := tryAuth(t, config); err == nil { - t.Fatalf("dsa private key should not have authenticated with rsa public key") - } -} - -// the client should authenticate with the second key -func TestAuthMethodRSAandDSA(t *testing.T) { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(testSigners["dsa"], testSigners["rsa"]), - }, - } - if err := tryAuth(t, config); err != nil { - t.Fatalf("client could not authenticate with rsa key: %v", err) - } -} - -func TestClientHMAC(t *testing.T) { - for _, mac := range supportedMACs { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(testSigners["rsa"]), - }, - Config: Config{ - MACs: []string{mac}, - }, - } - if err := tryAuth(t, config); err != nil { - t.Fatalf("client could not authenticate with mac algo %s: %v", mac, err) - } - } -} - -// issue 4285. -func TestClientUnsupportedCipher(t *testing.T) { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(), - }, - Config: Config{ - Ciphers: []string{"aes128-cbc"}, // not currently supported - }, - } - if err := tryAuth(t, config); err == nil { - t.Errorf("expected no ciphers in common") - } -} - -func TestClientUnsupportedKex(t *testing.T) { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(), - }, - Config: Config{ - KeyExchanges: []string{"diffie-hellman-group-exchange-sha256"}, // not currently supported - }, - } - if err := tryAuth(t, config); err == nil || !strings.Contains(err.Error(), "common algorithm") { - t.Errorf("got %v, expected 'common algorithm'", err) - } -} - -func TestClientLoginCert(t *testing.T) { - cert := &Certificate{ - Key: testPublicKeys["rsa"], - ValidBefore: CertTimeInfinity, - CertType: UserCert, - } - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - certSigner, err := NewCertSigner(cert, testSigners["rsa"]) - if err != nil { - t.Fatalf("NewCertSigner: %v", err) - } - - clientConfig := &ClientConfig{ - User: "user", - } - clientConfig.Auth = append(clientConfig.Auth, PublicKeys(certSigner)) - - t.Log("should succeed") - if err := tryAuth(t, clientConfig); err != nil { - t.Errorf("cert login failed: %v", err) - } - - t.Log("corrupted signature") - cert.Signature.Blob[0]++ - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("cert login passed with corrupted sig") - } - - t.Log("revoked") - cert.Serial = 666 - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("revoked cert login succeeded") - } - cert.Serial = 1 - - t.Log("sign with wrong key") - cert.SignCert(rand.Reader, testSigners["dsa"]) - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("cert login passed with non-authoritive key") - } - - t.Log("host cert") - cert.CertType = HostCert - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("cert login passed with wrong type") - } - cert.CertType = UserCert - - t.Log("principal specified") - cert.ValidPrincipals = []string{"user"} - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err != nil { - t.Errorf("cert login failed: %v", err) - } - - t.Log("wrong principal specified") - cert.ValidPrincipals = []string{"fred"} - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("cert login passed with wrong principal") - } - cert.ValidPrincipals = nil - - t.Log("added critical option") - cert.CriticalOptions = map[string]string{"root-access": "yes"} - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("cert login passed with unrecognized critical option") - } - - t.Log("allowed source address") - cert.CriticalOptions = map[string]string{"source-address": "127.0.0.42/24"} - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err != nil { - t.Errorf("cert login with source-address failed: %v", err) - } - - t.Log("disallowed source address") - cert.CriticalOptions = map[string]string{"source-address": "127.0.0.42"} - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("cert login with source-address succeeded") - } -} - -func testPermissionsPassing(withPermissions bool, t *testing.T) { - serverConfig := &ServerConfig{ - PublicKeyCallback: func(conn ConnMetadata, key PublicKey) (*Permissions, error) { - if conn.User() == "nopermissions" { - return nil, nil - } else { - return &Permissions{}, nil - } - }, - } - serverConfig.AddHostKey(testSigners["rsa"]) - - clientConfig := &ClientConfig{ - Auth: []AuthMethod{ - PublicKeys(testSigners["rsa"]), - }, - } - if withPermissions { - clientConfig.User = "permissions" - } else { - clientConfig.User = "nopermissions" - } - - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - go NewClientConn(c2, "", clientConfig) - serverConn, err := newServer(c1, serverConfig) - if err != nil { - t.Fatal(err) - } - if p := serverConn.Permissions; (p != nil) != withPermissions { - t.Fatalf("withPermissions is %t, but Permissions object is %#v", withPermissions, p) - } -} - -func TestPermissionsPassing(t *testing.T) { - testPermissionsPassing(true, t) -} - -func TestNoPermissionsPassing(t *testing.T) { - testPermissionsPassing(false, t) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client_test.go deleted file mode 100644 index 1fe790cb..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/client_test.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "net" - "testing" -) - -func testClientVersion(t *testing.T, config *ClientConfig, expected string) { - clientConn, serverConn := net.Pipe() - defer clientConn.Close() - receivedVersion := make(chan string, 1) - go func() { - version, err := readVersion(serverConn) - if err != nil { - receivedVersion <- "" - } else { - receivedVersion <- string(version) - } - serverConn.Close() - }() - NewClientConn(clientConn, "", config) - actual := <-receivedVersion - if actual != expected { - t.Fatalf("got %s; want %s", actual, expected) - } -} - -func TestCustomClientVersion(t *testing.T) { - version := "Test-Client-Version-0.0" - testClientVersion(t, &ClientConfig{ClientVersion: version}, version) -} - -func TestDefaultClientVersion(t *testing.T) { - testClientVersion(t, &ClientConfig{}, packageVersion) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/common.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/common.go deleted file mode 100644 index 9fc739e1..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/common.go +++ /dev/null @@ -1,354 +0,0 @@ -// 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 ssh - -import ( - "crypto" - "crypto/rand" - "fmt" - "io" - "sync" - - _ "crypto/sha1" - _ "crypto/sha256" - _ "crypto/sha512" -) - -// These are string constants in the SSH protocol. -const ( - compressionNone = "none" - serviceUserAuth = "ssh-userauth" - serviceSSH = "ssh-connection" -) - -// supportedCiphers specifies the supported ciphers in preference order. -var supportedCiphers = []string{ - "aes128-ctr", "aes192-ctr", "aes256-ctr", - "aes128-gcm@openssh.com", - "arcfour256", "arcfour128", -} - -// supportedKexAlgos specifies the supported key-exchange algorithms in -// preference order. -var supportedKexAlgos = []string{ - kexAlgoCurve25519SHA256, - // P384 and P521 are not constant-time yet, but since we don't - // reuse ephemeral keys, using them for ECDH should be OK. - kexAlgoECDH256, kexAlgoECDH384, kexAlgoECDH521, - kexAlgoDH14SHA1, kexAlgoDH1SHA1, -} - -// supportedKexAlgos specifies the supported host-key algorithms (i.e. methods -// of authenticating servers) in preference order. -var supportedHostKeyAlgos = []string{ - CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, - CertAlgoECDSA384v01, CertAlgoECDSA521v01, - - KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521, - KeyAlgoRSA, KeyAlgoDSA, -} - -// supportedMACs specifies a default set of MAC algorithms in preference order. -// This is based on RFC 4253, section 6.4, but with hmac-md5 variants removed -// because they have reached the end of their useful life. -var supportedMACs = []string{ - "hmac-sha2-256", "hmac-sha1", "hmac-sha1-96", -} - -var supportedCompressions = []string{compressionNone} - -// hashFuncs keeps the mapping of supported algorithms to their respective -// hashes needed for signature verification. -var hashFuncs = map[string]crypto.Hash{ - KeyAlgoRSA: crypto.SHA1, - KeyAlgoDSA: crypto.SHA1, - KeyAlgoECDSA256: crypto.SHA256, - KeyAlgoECDSA384: crypto.SHA384, - KeyAlgoECDSA521: crypto.SHA512, - CertAlgoRSAv01: crypto.SHA1, - CertAlgoDSAv01: crypto.SHA1, - CertAlgoECDSA256v01: crypto.SHA256, - CertAlgoECDSA384v01: crypto.SHA384, - CertAlgoECDSA521v01: crypto.SHA512, -} - -// unexpectedMessageError results when the SSH message that we received didn't -// match what we wanted. -func unexpectedMessageError(expected, got uint8) error { - return fmt.Errorf("ssh: unexpected message type %d (expected %d)", got, expected) -} - -// parseError results from a malformed SSH message. -func parseError(tag uint8) error { - return fmt.Errorf("ssh: parse error in message type %d", tag) -} - -func findCommon(what string, client []string, server []string) (common string, err error) { - for _, c := range client { - for _, s := range server { - if c == s { - return c, nil - } - } - } - return "", fmt.Errorf("ssh: no common algorithm for %s; client offered: %v, server offered: %v", what, client, server) -} - -type directionAlgorithms struct { - Cipher string - MAC string - Compression string -} - -type algorithms struct { - kex string - hostKey string - w directionAlgorithms - r directionAlgorithms -} - -func findAgreedAlgorithms(clientKexInit, serverKexInit *kexInitMsg) (algs *algorithms, err error) { - result := &algorithms{} - - result.kex, err = findCommon("key exchange", clientKexInit.KexAlgos, serverKexInit.KexAlgos) - if err != nil { - return - } - - result.hostKey, err = findCommon("host key", clientKexInit.ServerHostKeyAlgos, serverKexInit.ServerHostKeyAlgos) - if err != nil { - return - } - - result.w.Cipher, err = findCommon("client to server cipher", clientKexInit.CiphersClientServer, serverKexInit.CiphersClientServer) - if err != nil { - return - } - - result.r.Cipher, err = findCommon("server to client cipher", clientKexInit.CiphersServerClient, serverKexInit.CiphersServerClient) - if err != nil { - return - } - - result.w.MAC, err = findCommon("client to server MAC", clientKexInit.MACsClientServer, serverKexInit.MACsClientServer) - if err != nil { - return - } - - result.r.MAC, err = findCommon("server to client MAC", clientKexInit.MACsServerClient, serverKexInit.MACsServerClient) - if err != nil { - return - } - - result.w.Compression, err = findCommon("client to server compression", clientKexInit.CompressionClientServer, serverKexInit.CompressionClientServer) - if err != nil { - return - } - - result.r.Compression, err = findCommon("server to client compression", clientKexInit.CompressionServerClient, serverKexInit.CompressionServerClient) - if err != nil { - return - } - - return result, nil -} - -// If rekeythreshold is too small, we can't make any progress sending -// stuff. -const minRekeyThreshold uint64 = 256 - -// Config contains configuration data common to both ServerConfig and -// ClientConfig. -type Config struct { - // Rand provides the source of entropy for cryptographic - // primitives. If Rand is nil, the cryptographic random reader - // in package crypto/rand will be used. - Rand io.Reader - - // The maximum number of bytes sent or received after which a - // new key is negotiated. It must be at least 256. If - // unspecified, 1 gigabyte is used. - RekeyThreshold uint64 - - // The allowed key exchanges algorithms. If unspecified then a - // default set of algorithms is used. - KeyExchanges []string - - // The allowed cipher algorithms. If unspecified then a sensible - // default is used. - Ciphers []string - - // The allowed MAC algorithms. If unspecified then a sensible default - // is used. - MACs []string -} - -// SetDefaults sets sensible values for unset fields in config. This is -// exported for testing: Configs passed to SSH functions are copied and have -// default values set automatically. -func (c *Config) SetDefaults() { - if c.Rand == nil { - c.Rand = rand.Reader - } - if c.Ciphers == nil { - c.Ciphers = supportedCiphers - } - var ciphers []string - for _, c := range c.Ciphers { - if cipherModes[c] != nil { - // reject the cipher if we have no cipherModes definition - ciphers = append(ciphers, c) - } - } - c.Ciphers = ciphers - - if c.KeyExchanges == nil { - c.KeyExchanges = supportedKexAlgos - } - - if c.MACs == nil { - c.MACs = supportedMACs - } - - if c.RekeyThreshold == 0 { - // RFC 4253, section 9 suggests rekeying after 1G. - c.RekeyThreshold = 1 << 30 - } - if c.RekeyThreshold < minRekeyThreshold { - c.RekeyThreshold = minRekeyThreshold - } -} - -// buildDataSignedForAuth returns the data that is signed in order to prove -// possession of a private key. See RFC 4252, section 7. -func buildDataSignedForAuth(sessionId []byte, req userAuthRequestMsg, algo, pubKey []byte) []byte { - data := struct { - Session []byte - Type byte - User string - Service string - Method string - Sign bool - Algo []byte - PubKey []byte - }{ - sessionId, - msgUserAuthRequest, - req.User, - req.Service, - req.Method, - true, - algo, - pubKey, - } - return Marshal(data) -} - -func appendU16(buf []byte, n uint16) []byte { - return append(buf, byte(n>>8), byte(n)) -} - -func appendU32(buf []byte, n uint32) []byte { - return append(buf, byte(n>>24), byte(n>>16), byte(n>>8), byte(n)) -} - -func appendU64(buf []byte, n uint64) []byte { - return append(buf, - byte(n>>56), byte(n>>48), byte(n>>40), byte(n>>32), - byte(n>>24), byte(n>>16), byte(n>>8), byte(n)) -} - -func appendInt(buf []byte, n int) []byte { - return appendU32(buf, uint32(n)) -} - -func appendString(buf []byte, s string) []byte { - buf = appendU32(buf, uint32(len(s))) - buf = append(buf, s...) - return buf -} - -func appendBool(buf []byte, b bool) []byte { - if b { - return append(buf, 1) - } - return append(buf, 0) -} - -// newCond is a helper to hide the fact that there is no usable zero -// value for sync.Cond. -func newCond() *sync.Cond { return sync.NewCond(new(sync.Mutex)) } - -// window represents the buffer available to clients -// wishing to write to a channel. -type window struct { - *sync.Cond - win uint32 // RFC 4254 5.2 says the window size can grow to 2^32-1 - writeWaiters int - closed bool -} - -// add adds win to the amount of window available -// for consumers. -func (w *window) add(win uint32) bool { - // a zero sized window adjust is a noop. - if win == 0 { - return true - } - w.L.Lock() - if w.win+win < win { - w.L.Unlock() - return false - } - w.win += win - // It is unusual that multiple goroutines would be attempting to reserve - // window space, but not guaranteed. Use broadcast to notify all waiters - // that additional window is available. - w.Broadcast() - w.L.Unlock() - return true -} - -// close sets the window to closed, so all reservations fail -// immediately. -func (w *window) close() { - w.L.Lock() - w.closed = true - w.Broadcast() - w.L.Unlock() -} - -// reserve reserves win from the available window capacity. -// If no capacity remains, reserve will block. reserve may -// return less than requested. -func (w *window) reserve(win uint32) (uint32, error) { - var err error - w.L.Lock() - w.writeWaiters++ - w.Broadcast() - for w.win == 0 && !w.closed { - w.Wait() - } - w.writeWaiters-- - if w.win < win { - win = w.win - } - w.win -= win - if w.closed { - err = io.EOF - } - w.L.Unlock() - return win, err -} - -// waitWriterBlocked waits until some goroutine is blocked for further -// writes. It is used in tests only. -func (w *window) waitWriterBlocked() { - w.Cond.L.Lock() - for w.writeWaiters == 0 { - w.Cond.Wait() - } - w.Cond.L.Unlock() -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/connection.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/connection.go deleted file mode 100644 index 979d919e..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/connection.go +++ /dev/null @@ -1,144 +0,0 @@ -// 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 ssh - -import ( - "fmt" - "net" -) - -// OpenChannelError is returned if the other side rejects an -// OpenChannel request. -type OpenChannelError struct { - Reason RejectionReason - Message string -} - -func (e *OpenChannelError) Error() string { - return fmt.Sprintf("ssh: rejected: %s (%s)", e.Reason, e.Message) -} - -// ConnMetadata holds metadata for the connection. -type ConnMetadata interface { - // User returns the user ID for this connection. - // It is empty if no authentication is used. - User() string - - // SessionID returns the sesson hash, also denoted by H. - SessionID() []byte - - // ClientVersion returns the client's version string as hashed - // into the session ID. - ClientVersion() []byte - - // ServerVersion returns the server's version string as hashed - // into the session ID. - ServerVersion() []byte - - // RemoteAddr returns the remote address for this connection. - RemoteAddr() net.Addr - - // LocalAddr returns the local address for this connection. - LocalAddr() net.Addr -} - -// Conn represents an SSH connection for both server and client roles. -// Conn is the basis for implementing an application layer, such -// as ClientConn, which implements the traditional shell access for -// clients. -type Conn interface { - ConnMetadata - - // SendRequest sends a global request, and returns the - // reply. If wantReply is true, it returns the response status - // and payload. See also RFC4254, section 4. - SendRequest(name string, wantReply bool, payload []byte) (bool, []byte, error) - - // OpenChannel tries to open an channel. If the request is - // rejected, it returns *OpenChannelError. On success it returns - // the SSH Channel and a Go channel for incoming, out-of-band - // requests. The Go channel must be serviced, or the - // connection will hang. - OpenChannel(name string, data []byte) (Channel, <-chan *Request, error) - - // Close closes the underlying network connection - Close() error - - // Wait blocks until the connection has shut down, and returns the - // error causing the shutdown. - Wait() error - - // TODO(hanwen): consider exposing: - // RequestKeyChange - // Disconnect -} - -// DiscardRequests consumes and rejects all requests from the -// passed-in channel. -func DiscardRequests(in <-chan *Request) { - for req := range in { - if req.WantReply { - req.Reply(false, nil) - } - } -} - -// A connection represents an incoming connection. -type connection struct { - transport *handshakeTransport - sshConn - - // The connection protocol. - *mux -} - -func (c *connection) Close() error { - return c.sshConn.conn.Close() -} - -// sshconn provides net.Conn metadata, but disallows direct reads and -// writes. -type sshConn struct { - conn net.Conn - - user string - sessionID []byte - clientVersion []byte - serverVersion []byte -} - -func dup(src []byte) []byte { - dst := make([]byte, len(src)) - copy(dst, src) - return dst -} - -func (c *sshConn) User() string { - return c.user -} - -func (c *sshConn) RemoteAddr() net.Addr { - return c.conn.RemoteAddr() -} - -func (c *sshConn) Close() error { - return c.conn.Close() -} - -func (c *sshConn) LocalAddr() net.Addr { - return c.conn.LocalAddr() -} - -func (c *sshConn) SessionID() []byte { - return dup(c.sessionID) -} - -func (c *sshConn) ClientVersion() []byte { - return dup(c.clientVersion) -} - -func (c *sshConn) ServerVersion() []byte { - return dup(c.serverVersion) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/doc.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/doc.go deleted file mode 100644 index a5ff8af6..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/doc.go +++ /dev/null @@ -1,18 +0,0 @@ -// 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 ssh implements an SSH client and server. - -SSH is a transport security protocol, an authentication protocol and a -family of application protocols. The most typical application level -protocol is a remote shell and this is specifically implemented. However, -the multiplexed nature of SSH is exposed to users that wish to support -others. - -References: - [PROTOCOL.certkeys]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.certkeys?rev=HEAD - [SSH-PARAMETERS]: http://www.iana.org/assignments/ssh-parameters/ssh-parameters.xml#ssh-parameters-1 -*/ -package ssh diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/example_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/example_test.go deleted file mode 100644 index fccc01a4..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/example_test.go +++ /dev/null @@ -1,211 +0,0 @@ -// 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 ssh_test - -import ( - "bytes" - "fmt" - "io/ioutil" - "log" - "net" - "net/http" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal" -) - -func ExampleNewServerConn() { - // An SSH server is represented by a ServerConfig, which holds - // certificate details and handles authentication of ServerConns. - config := &ssh.ServerConfig{ - PasswordCallback: func(c ssh.ConnMetadata, pass []byte) (*ssh.Permissions, error) { - // Should use constant-time compare (or better, salt+hash) in - // a production setting. - if c.User() == "testuser" && string(pass) == "tiger" { - return nil, nil - } - return nil, fmt.Errorf("password rejected for %q", c.User()) - }, - } - - privateBytes, err := ioutil.ReadFile("id_rsa") - if err != nil { - panic("Failed to load private key") - } - - private, err := ssh.ParsePrivateKey(privateBytes) - if err != nil { - panic("Failed to parse private key") - } - - config.AddHostKey(private) - - // Once a ServerConfig has been configured, connections can be - // accepted. - listener, err := net.Listen("tcp", "0.0.0.0:2022") - if err != nil { - panic("failed to listen for connection") - } - nConn, err := listener.Accept() - if err != nil { - panic("failed to accept incoming connection") - } - - // Before use, a handshake must be performed on the incoming - // net.Conn. - _, chans, reqs, err := ssh.NewServerConn(nConn, config) - if err != nil { - panic("failed to handshake") - } - // The incoming Request channel must be serviced. - go ssh.DiscardRequests(reqs) - - // Service the incoming Channel channel. - for newChannel := range chans { - // Channels have a type, depending on the application level - // protocol intended. In the case of a shell, the type is - // "session" and ServerShell may be used to present a simple - // terminal interface. - if newChannel.ChannelType() != "session" { - newChannel.Reject(ssh.UnknownChannelType, "unknown channel type") - continue - } - channel, requests, err := newChannel.Accept() - if err != nil { - panic("could not accept channel.") - } - - // Sessions have out-of-band requests such as "shell", - // "pty-req" and "env". Here we handle only the - // "shell" request. - go func(in <-chan *ssh.Request) { - for req := range in { - ok := false - switch req.Type { - case "shell": - ok = true - if len(req.Payload) > 0 { - // We don't accept any - // commands, only the - // default shell. - ok = false - } - } - req.Reply(ok, nil) - } - }(requests) - - term := terminal.NewTerminal(channel, "> ") - - go func() { - defer channel.Close() - for { - line, err := term.ReadLine() - if err != nil { - break - } - fmt.Println(line) - } - }() - } -} - -func ExampleDial() { - // An SSH client is represented with a ClientConn. Currently only - // the "password" authentication method is supported. - // - // To authenticate with the remote server you must pass at least one - // implementation of AuthMethod via the Auth field in ClientConfig. - config := &ssh.ClientConfig{ - User: "username", - Auth: []ssh.AuthMethod{ - ssh.Password("yourpassword"), - }, - } - client, err := ssh.Dial("tcp", "yourserver.com:22", config) - if err != nil { - panic("Failed to dial: " + err.Error()) - } - - // Each ClientConn can support multiple interactive sessions, - // represented by a Session. - session, err := client.NewSession() - if err != nil { - panic("Failed to create session: " + err.Error()) - } - defer session.Close() - - // Once a Session is created, you can execute a single command on - // the remote side using the Run method. - var b bytes.Buffer - session.Stdout = &b - if err := session.Run("/usr/bin/whoami"); err != nil { - panic("Failed to run: " + err.Error()) - } - fmt.Println(b.String()) -} - -func ExampleClient_Listen() { - config := &ssh.ClientConfig{ - User: "username", - Auth: []ssh.AuthMethod{ - ssh.Password("password"), - }, - } - // Dial your ssh server. - conn, err := ssh.Dial("tcp", "localhost:22", config) - if err != nil { - log.Fatalf("unable to connect: %s", err) - } - defer conn.Close() - - // Request the remote side to open port 8080 on all interfaces. - l, err := conn.Listen("tcp", "0.0.0.0:8080") - if err != nil { - log.Fatalf("unable to register tcp forward: %v", err) - } - defer l.Close() - - // Serve HTTP with your SSH server acting as a reverse proxy. - http.Serve(l, http.HandlerFunc(func(resp http.ResponseWriter, req *http.Request) { - fmt.Fprintf(resp, "Hello world!\n") - })) -} - -func ExampleSession_RequestPty() { - // Create client config - config := &ssh.ClientConfig{ - User: "username", - Auth: []ssh.AuthMethod{ - ssh.Password("password"), - }, - } - // Connect to ssh server - conn, err := ssh.Dial("tcp", "localhost:22", config) - if err != nil { - log.Fatalf("unable to connect: %s", err) - } - defer conn.Close() - // Create a session - session, err := conn.NewSession() - if err != nil { - log.Fatalf("unable to create session: %s", err) - } - defer session.Close() - // Set up terminal modes - modes := ssh.TerminalModes{ - ssh.ECHO: 0, // disable echoing - ssh.TTY_OP_ISPEED: 14400, // input speed = 14.4kbaud - ssh.TTY_OP_OSPEED: 14400, // output speed = 14.4kbaud - } - // Request pseudo terminal - if err := session.RequestPty("xterm", 80, 40, modes); err != nil { - log.Fatalf("request for pseudo terminal failed: %s", err) - } - // Start remote shell - if err := session.Shell(); err != nil { - log.Fatalf("failed to start shell: %s", err) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/handshake.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/handshake.go deleted file mode 100644 index 1c54f758..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/handshake.go +++ /dev/null @@ -1,412 +0,0 @@ -// 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 ssh - -import ( - "crypto/rand" - "errors" - "fmt" - "io" - "log" - "net" - "sync" -) - -// debugHandshake, if set, prints messages sent and received. Key -// exchange messages are printed as if DH were used, so the debug -// messages are wrong when using ECDH. -const debugHandshake = false - -// keyingTransport is a packet based transport that supports key -// changes. It need not be thread-safe. It should pass through -// msgNewKeys in both directions. -type keyingTransport interface { - packetConn - - // prepareKeyChange sets up a key change. The key change for a - // direction will be effected if a msgNewKeys message is sent - // or received. - prepareKeyChange(*algorithms, *kexResult) error - - // getSessionID returns the session ID. prepareKeyChange must - // have been called once. - getSessionID() []byte -} - -// rekeyingTransport is the interface of handshakeTransport that we -// (internally) expose to ClientConn and ServerConn. -type rekeyingTransport interface { - packetConn - - // requestKeyChange asks the remote side to change keys. All - // writes are blocked until the key change succeeds, which is - // signaled by reading a msgNewKeys. - requestKeyChange() error - - // getSessionID returns the session ID. This is only valid - // after the first key change has completed. - getSessionID() []byte -} - -// handshakeTransport implements rekeying on top of a keyingTransport -// and offers a thread-safe writePacket() interface. -type handshakeTransport struct { - conn keyingTransport - config *Config - - serverVersion []byte - clientVersion []byte - - // hostKeys is non-empty if we are the server. In that case, - // it contains all host keys that can be used to sign the - // connection. - hostKeys []Signer - - // hostKeyAlgorithms is non-empty if we are the client. In that case, - // we accept these key types from the server as host key. - hostKeyAlgorithms []string - - // On read error, incoming is closed, and readError is set. - incoming chan []byte - readError error - - // data for host key checking - hostKeyCallback func(hostname string, remote net.Addr, key PublicKey) error - dialAddress string - remoteAddr net.Addr - - readSinceKex uint64 - - // Protects the writing side of the connection - mu sync.Mutex - cond *sync.Cond - sentInitPacket []byte - sentInitMsg *kexInitMsg - writtenSinceKex uint64 - writeError error -} - -func newHandshakeTransport(conn keyingTransport, config *Config, clientVersion, serverVersion []byte) *handshakeTransport { - t := &handshakeTransport{ - conn: conn, - serverVersion: serverVersion, - clientVersion: clientVersion, - incoming: make(chan []byte, 16), - config: config, - } - t.cond = sync.NewCond(&t.mu) - return t -} - -func newClientTransport(conn keyingTransport, clientVersion, serverVersion []byte, config *ClientConfig, dialAddr string, addr net.Addr) *handshakeTransport { - t := newHandshakeTransport(conn, &config.Config, clientVersion, serverVersion) - t.dialAddress = dialAddr - t.remoteAddr = addr - t.hostKeyCallback = config.HostKeyCallback - if config.HostKeyAlgorithms != nil { - t.hostKeyAlgorithms = config.HostKeyAlgorithms - } else { - t.hostKeyAlgorithms = supportedHostKeyAlgos - } - go t.readLoop() - return t -} - -func newServerTransport(conn keyingTransport, clientVersion, serverVersion []byte, config *ServerConfig) *handshakeTransport { - t := newHandshakeTransport(conn, &config.Config, clientVersion, serverVersion) - t.hostKeys = config.hostKeys - go t.readLoop() - return t -} - -func (t *handshakeTransport) getSessionID() []byte { - return t.conn.getSessionID() -} - -func (t *handshakeTransport) id() string { - if len(t.hostKeys) > 0 { - return "server" - } - return "client" -} - -func (t *handshakeTransport) readPacket() ([]byte, error) { - p, ok := <-t.incoming - if !ok { - return nil, t.readError - } - return p, nil -} - -func (t *handshakeTransport) readLoop() { - for { - p, err := t.readOnePacket() - if err != nil { - t.readError = err - close(t.incoming) - break - } - if p[0] == msgIgnore || p[0] == msgDebug { - continue - } - t.incoming <- p - } - - // If we can't read, declare the writing part dead too. - t.mu.Lock() - defer t.mu.Unlock() - if t.writeError == nil { - t.writeError = t.readError - } - t.cond.Broadcast() -} - -func (t *handshakeTransport) readOnePacket() ([]byte, error) { - if t.readSinceKex > t.config.RekeyThreshold { - if err := t.requestKeyChange(); err != nil { - return nil, err - } - } - - p, err := t.conn.readPacket() - if err != nil { - return nil, err - } - - t.readSinceKex += uint64(len(p)) - if debugHandshake { - msg, err := decode(p) - log.Printf("%s got %T %v (%v)", t.id(), msg, msg, err) - } - if p[0] != msgKexInit { - return p, nil - } - err = t.enterKeyExchange(p) - - t.mu.Lock() - if err != nil { - // drop connection - t.conn.Close() - t.writeError = err - } - - if debugHandshake { - log.Printf("%s exited key exchange, err %v", t.id(), err) - } - - // Unblock writers. - t.sentInitMsg = nil - t.sentInitPacket = nil - t.cond.Broadcast() - t.writtenSinceKex = 0 - t.mu.Unlock() - - if err != nil { - return nil, err - } - - t.readSinceKex = 0 - return []byte{msgNewKeys}, nil -} - -// sendKexInit sends a key change message, and returns the message -// that was sent. After initiating the key change, all writes will be -// blocked until the change is done, and a failed key change will -// close the underlying transport. This function is safe for -// concurrent use by multiple goroutines. -func (t *handshakeTransport) sendKexInit() (*kexInitMsg, []byte, error) { - t.mu.Lock() - defer t.mu.Unlock() - return t.sendKexInitLocked() -} - -func (t *handshakeTransport) requestKeyChange() error { - _, _, err := t.sendKexInit() - return err -} - -// sendKexInitLocked sends a key change message. t.mu must be locked -// while this happens. -func (t *handshakeTransport) sendKexInitLocked() (*kexInitMsg, []byte, error) { - // kexInits may be sent either in response to the other side, - // or because our side wants to initiate a key change, so we - // may have already sent a kexInit. In that case, don't send a - // second kexInit. - if t.sentInitMsg != nil { - return t.sentInitMsg, t.sentInitPacket, nil - } - msg := &kexInitMsg{ - KexAlgos: t.config.KeyExchanges, - CiphersClientServer: t.config.Ciphers, - CiphersServerClient: t.config.Ciphers, - MACsClientServer: t.config.MACs, - MACsServerClient: t.config.MACs, - CompressionClientServer: supportedCompressions, - CompressionServerClient: supportedCompressions, - } - io.ReadFull(rand.Reader, msg.Cookie[:]) - - if len(t.hostKeys) > 0 { - for _, k := range t.hostKeys { - msg.ServerHostKeyAlgos = append( - msg.ServerHostKeyAlgos, k.PublicKey().Type()) - } - } else { - msg.ServerHostKeyAlgos = t.hostKeyAlgorithms - } - packet := Marshal(msg) - - // writePacket destroys the contents, so save a copy. - packetCopy := make([]byte, len(packet)) - copy(packetCopy, packet) - - if err := t.conn.writePacket(packetCopy); err != nil { - return nil, nil, err - } - - t.sentInitMsg = msg - t.sentInitPacket = packet - return msg, packet, nil -} - -func (t *handshakeTransport) writePacket(p []byte) error { - t.mu.Lock() - defer t.mu.Unlock() - - if t.writtenSinceKex > t.config.RekeyThreshold { - t.sendKexInitLocked() - } - for t.sentInitMsg != nil && t.writeError == nil { - t.cond.Wait() - } - if t.writeError != nil { - return t.writeError - } - t.writtenSinceKex += uint64(len(p)) - - switch p[0] { - case msgKexInit: - return errors.New("ssh: only handshakeTransport can send kexInit") - case msgNewKeys: - return errors.New("ssh: only handshakeTransport can send newKeys") - default: - return t.conn.writePacket(p) - } -} - -func (t *handshakeTransport) Close() error { - return t.conn.Close() -} - -// enterKeyExchange runs the key exchange. -func (t *handshakeTransport) enterKeyExchange(otherInitPacket []byte) error { - if debugHandshake { - log.Printf("%s entered key exchange", t.id()) - } - myInit, myInitPacket, err := t.sendKexInit() - if err != nil { - return err - } - - otherInit := &kexInitMsg{} - if err := Unmarshal(otherInitPacket, otherInit); err != nil { - return err - } - - magics := handshakeMagics{ - clientVersion: t.clientVersion, - serverVersion: t.serverVersion, - clientKexInit: otherInitPacket, - serverKexInit: myInitPacket, - } - - clientInit := otherInit - serverInit := myInit - if len(t.hostKeys) == 0 { - clientInit = myInit - serverInit = otherInit - - magics.clientKexInit = myInitPacket - magics.serverKexInit = otherInitPacket - } - - algs, err := findAgreedAlgorithms(clientInit, serverInit) - if err != nil { - return err - } - - // We don't send FirstKexFollows, but we handle receiving it. - if otherInit.FirstKexFollows && algs.kex != otherInit.KexAlgos[0] { - // other side sent a kex message for the wrong algorithm, - // which we have to ignore. - if _, err := t.conn.readPacket(); err != nil { - return err - } - } - - kex, ok := kexAlgoMap[algs.kex] - if !ok { - return fmt.Errorf("ssh: unexpected key exchange algorithm %v", algs.kex) - } - - var result *kexResult - if len(t.hostKeys) > 0 { - result, err = t.server(kex, algs, &magics) - } else { - result, err = t.client(kex, algs, &magics) - } - - if err != nil { - return err - } - - t.conn.prepareKeyChange(algs, result) - if err = t.conn.writePacket([]byte{msgNewKeys}); err != nil { - return err - } - if packet, err := t.conn.readPacket(); err != nil { - return err - } else if packet[0] != msgNewKeys { - return unexpectedMessageError(msgNewKeys, packet[0]) - } - return nil -} - -func (t *handshakeTransport) server(kex kexAlgorithm, algs *algorithms, magics *handshakeMagics) (*kexResult, error) { - var hostKey Signer - for _, k := range t.hostKeys { - if algs.hostKey == k.PublicKey().Type() { - hostKey = k - } - } - - r, err := kex.Server(t.conn, t.config.Rand, magics, hostKey) - return r, err -} - -func (t *handshakeTransport) client(kex kexAlgorithm, algs *algorithms, magics *handshakeMagics) (*kexResult, error) { - result, err := kex.Client(t.conn, t.config.Rand, magics) - if err != nil { - return nil, err - } - - hostKey, err := ParsePublicKey(result.HostKey) - if err != nil { - return nil, err - } - - if err := verifyHostKeySignature(hostKey, result); err != nil { - return nil, err - } - - if t.hostKeyCallback != nil { - err = t.hostKeyCallback(t.dialAddress, t.remoteAddr, hostKey) - if err != nil { - return nil, err - } - } - - return result, nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/handshake_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/handshake_test.go deleted file mode 100644 index b86d369c..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/handshake_test.go +++ /dev/null @@ -1,415 +0,0 @@ -// 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 ssh - -import ( - "bytes" - "crypto/rand" - "errors" - "fmt" - "net" - "runtime" - "strings" - "sync" - "testing" -) - -type testChecker struct { - calls []string -} - -func (t *testChecker) Check(dialAddr string, addr net.Addr, key PublicKey) error { - if dialAddr == "bad" { - return fmt.Errorf("dialAddr is bad") - } - - if tcpAddr, ok := addr.(*net.TCPAddr); !ok || tcpAddr == nil { - return fmt.Errorf("testChecker: got %T want *net.TCPAddr", addr) - } - - t.calls = append(t.calls, fmt.Sprintf("%s %v %s %x", dialAddr, addr, key.Type(), key.Marshal())) - - return nil -} - -// netPipe is analogous to net.Pipe, but it uses a real net.Conn, and -// therefore is buffered (net.Pipe deadlocks if both sides start with -// a write.) -func netPipe() (net.Conn, net.Conn, error) { - listener, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - return nil, nil, err - } - defer listener.Close() - c1, err := net.Dial("tcp", listener.Addr().String()) - if err != nil { - return nil, nil, err - } - - c2, err := listener.Accept() - if err != nil { - c1.Close() - return nil, nil, err - } - - return c1, c2, nil -} - -func handshakePair(clientConf *ClientConfig, addr string) (client *handshakeTransport, server *handshakeTransport, err error) { - a, b, err := netPipe() - if err != nil { - return nil, nil, err - } - - trC := newTransport(a, rand.Reader, true) - trS := newTransport(b, rand.Reader, false) - clientConf.SetDefaults() - - v := []byte("version") - client = newClientTransport(trC, v, v, clientConf, addr, a.RemoteAddr()) - - serverConf := &ServerConfig{} - serverConf.AddHostKey(testSigners["ecdsa"]) - serverConf.AddHostKey(testSigners["rsa"]) - serverConf.SetDefaults() - server = newServerTransport(trS, v, v, serverConf) - - return client, server, nil -} - -func TestHandshakeBasic(t *testing.T) { - if runtime.GOOS == "plan9" { - t.Skip("see golang.org/issue/7237") - } - checker := &testChecker{} - trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "addr") - if err != nil { - t.Fatalf("handshakePair: %v", err) - } - - defer trC.Close() - defer trS.Close() - - go func() { - // Client writes a bunch of stuff, and does a key - // change in the middle. This should not confuse the - // handshake in progress - for i := 0; i < 10; i++ { - p := []byte{msgRequestSuccess, byte(i)} - if err := trC.writePacket(p); err != nil { - t.Fatalf("sendPacket: %v", err) - } - if i == 5 { - // halfway through, we request a key change. - _, _, err := trC.sendKexInit() - if err != nil { - t.Fatalf("sendKexInit: %v", err) - } - } - } - trC.Close() - }() - - // Server checks that client messages come in cleanly - i := 0 - for { - p, err := trS.readPacket() - if err != nil { - break - } - if p[0] == msgNewKeys { - continue - } - want := []byte{msgRequestSuccess, byte(i)} - if bytes.Compare(p, want) != 0 { - t.Errorf("message %d: got %q, want %q", i, p, want) - } - i++ - } - if i != 10 { - t.Errorf("received %d messages, want 10.", i) - } - - // If all went well, we registered exactly 1 key change. - if len(checker.calls) != 1 { - t.Fatalf("got %d host key checks, want 1", len(checker.calls)) - } - - pub := testSigners["ecdsa"].PublicKey() - want := fmt.Sprintf("%s %v %s %x", "addr", trC.remoteAddr, pub.Type(), pub.Marshal()) - if want != checker.calls[0] { - t.Errorf("got %q want %q for host key check", checker.calls[0], want) - } -} - -func TestHandshakeError(t *testing.T) { - checker := &testChecker{} - trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "bad") - if err != nil { - t.Fatalf("handshakePair: %v", err) - } - defer trC.Close() - defer trS.Close() - - // send a packet - packet := []byte{msgRequestSuccess, 42} - if err := trC.writePacket(packet); err != nil { - t.Errorf("writePacket: %v", err) - } - - // Now request a key change. - _, _, err = trC.sendKexInit() - if err != nil { - t.Errorf("sendKexInit: %v", err) - } - - // the key change will fail, and afterwards we can't write. - if err := trC.writePacket([]byte{msgRequestSuccess, 43}); err == nil { - t.Errorf("writePacket after botched rekey succeeded.") - } - - readback, err := trS.readPacket() - if err != nil { - t.Fatalf("server closed too soon: %v", err) - } - if bytes.Compare(readback, packet) != 0 { - t.Errorf("got %q want %q", readback, packet) - } - readback, err = trS.readPacket() - if err == nil { - t.Errorf("got a message %q after failed key change", readback) - } -} - -func TestHandshakeTwice(t *testing.T) { - checker := &testChecker{} - trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "addr") - if err != nil { - t.Fatalf("handshakePair: %v", err) - } - - defer trC.Close() - defer trS.Close() - - // send a packet - packet := make([]byte, 5) - packet[0] = msgRequestSuccess - if err := trC.writePacket(packet); err != nil { - t.Errorf("writePacket: %v", err) - } - - // Now request a key change. - _, _, err = trC.sendKexInit() - if err != nil { - t.Errorf("sendKexInit: %v", err) - } - - // Send another packet. Use a fresh one, since writePacket destroys. - packet = make([]byte, 5) - packet[0] = msgRequestSuccess - if err := trC.writePacket(packet); err != nil { - t.Errorf("writePacket: %v", err) - } - - // 2nd key change. - _, _, err = trC.sendKexInit() - if err != nil { - t.Errorf("sendKexInit: %v", err) - } - - packet = make([]byte, 5) - packet[0] = msgRequestSuccess - if err := trC.writePacket(packet); err != nil { - t.Errorf("writePacket: %v", err) - } - - packet = make([]byte, 5) - packet[0] = msgRequestSuccess - for i := 0; i < 5; i++ { - msg, err := trS.readPacket() - if err != nil { - t.Fatalf("server closed too soon: %v", err) - } - if msg[0] == msgNewKeys { - continue - } - - if bytes.Compare(msg, packet) != 0 { - t.Errorf("packet %d: got %q want %q", i, msg, packet) - } - } - if len(checker.calls) != 2 { - t.Errorf("got %d key changes, want 2", len(checker.calls)) - } -} - -func TestHandshakeAutoRekeyWrite(t *testing.T) { - checker := &testChecker{} - clientConf := &ClientConfig{HostKeyCallback: checker.Check} - clientConf.RekeyThreshold = 500 - trC, trS, err := handshakePair(clientConf, "addr") - if err != nil { - t.Fatalf("handshakePair: %v", err) - } - defer trC.Close() - defer trS.Close() - - for i := 0; i < 5; i++ { - packet := make([]byte, 251) - packet[0] = msgRequestSuccess - if err := trC.writePacket(packet); err != nil { - t.Errorf("writePacket: %v", err) - } - } - - j := 0 - for ; j < 5; j++ { - _, err := trS.readPacket() - if err != nil { - break - } - } - - if j != 5 { - t.Errorf("got %d, want 5 messages", j) - } - - if len(checker.calls) != 2 { - t.Errorf("got %d key changes, wanted 2", len(checker.calls)) - } -} - -type syncChecker struct { - called chan int -} - -func (t *syncChecker) Check(dialAddr string, addr net.Addr, key PublicKey) error { - t.called <- 1 - return nil -} - -func TestHandshakeAutoRekeyRead(t *testing.T) { - sync := &syncChecker{make(chan int, 2)} - clientConf := &ClientConfig{ - HostKeyCallback: sync.Check, - } - clientConf.RekeyThreshold = 500 - - trC, trS, err := handshakePair(clientConf, "addr") - if err != nil { - t.Fatalf("handshakePair: %v", err) - } - defer trC.Close() - defer trS.Close() - - packet := make([]byte, 501) - packet[0] = msgRequestSuccess - if err := trS.writePacket(packet); err != nil { - t.Fatalf("writePacket: %v", err) - } - // While we read out the packet, a key change will be - // initiated. - if _, err := trC.readPacket(); err != nil { - t.Fatalf("readPacket(client): %v", err) - } - - <-sync.called -} - -// errorKeyingTransport generates errors after a given number of -// read/write operations. -type errorKeyingTransport struct { - packetConn - readLeft, writeLeft int -} - -func (n *errorKeyingTransport) prepareKeyChange(*algorithms, *kexResult) error { - return nil -} -func (n *errorKeyingTransport) getSessionID() []byte { - return nil -} - -func (n *errorKeyingTransport) writePacket(packet []byte) error { - if n.writeLeft == 0 { - n.Close() - return errors.New("barf") - } - - n.writeLeft-- - return n.packetConn.writePacket(packet) -} - -func (n *errorKeyingTransport) readPacket() ([]byte, error) { - if n.readLeft == 0 { - n.Close() - return nil, errors.New("barf") - } - - n.readLeft-- - return n.packetConn.readPacket() -} - -func TestHandshakeErrorHandlingRead(t *testing.T) { - for i := 0; i < 20; i++ { - testHandshakeErrorHandlingN(t, i, -1) - } -} - -func TestHandshakeErrorHandlingWrite(t *testing.T) { - for i := 0; i < 20; i++ { - testHandshakeErrorHandlingN(t, -1, i) - } -} - -// testHandshakeErrorHandlingN runs handshakes, injecting errors. If -// handshakeTransport deadlocks, the go runtime will detect it and -// panic. -func testHandshakeErrorHandlingN(t *testing.T, readLimit, writeLimit int) { - msg := Marshal(&serviceRequestMsg{strings.Repeat("x", int(minRekeyThreshold)/4)}) - - a, b := memPipe() - defer a.Close() - defer b.Close() - - key := testSigners["ecdsa"] - serverConf := Config{RekeyThreshold: minRekeyThreshold} - serverConf.SetDefaults() - serverConn := newHandshakeTransport(&errorKeyingTransport{a, readLimit, writeLimit}, &serverConf, []byte{'a'}, []byte{'b'}) - serverConn.hostKeys = []Signer{key} - go serverConn.readLoop() - - clientConf := Config{RekeyThreshold: 10 * minRekeyThreshold} - clientConf.SetDefaults() - clientConn := newHandshakeTransport(&errorKeyingTransport{b, -1, -1}, &clientConf, []byte{'a'}, []byte{'b'}) - clientConn.hostKeyAlgorithms = []string{key.PublicKey().Type()} - go clientConn.readLoop() - - var wg sync.WaitGroup - wg.Add(4) - - for _, hs := range []packetConn{serverConn, clientConn} { - go func(c packetConn) { - for { - err := c.writePacket(msg) - if err != nil { - break - } - } - wg.Done() - }(hs) - go func(c packetConn) { - for { - _, err := c.readPacket() - if err != nil { - break - } - } - wg.Done() - }(hs) - } - - wg.Wait() -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/kex.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/kex.go deleted file mode 100644 index 391a97e9..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/kex.go +++ /dev/null @@ -1,526 +0,0 @@ -// 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 ssh - -import ( - "crypto" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rand" - "crypto/subtle" - "errors" - "io" - "math/big" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/curve25519" -) - -const ( - kexAlgoDH1SHA1 = "diffie-hellman-group1-sha1" - kexAlgoDH14SHA1 = "diffie-hellman-group14-sha1" - kexAlgoECDH256 = "ecdh-sha2-nistp256" - kexAlgoECDH384 = "ecdh-sha2-nistp384" - kexAlgoECDH521 = "ecdh-sha2-nistp521" - kexAlgoCurve25519SHA256 = "curve25519-sha256@libssh.org" -) - -// kexResult captures the outcome of a key exchange. -type kexResult struct { - // Session hash. See also RFC 4253, section 8. - H []byte - - // Shared secret. See also RFC 4253, section 8. - K []byte - - // Host key as hashed into H. - HostKey []byte - - // Signature of H. - Signature []byte - - // A cryptographic hash function that matches the security - // level of the key exchange algorithm. It is used for - // calculating H, and for deriving keys from H and K. - Hash crypto.Hash - - // The session ID, which is the first H computed. This is used - // to signal data inside transport. - SessionID []byte -} - -// handshakeMagics contains data that is always included in the -// session hash. -type handshakeMagics struct { - clientVersion, serverVersion []byte - clientKexInit, serverKexInit []byte -} - -func (m *handshakeMagics) write(w io.Writer) { - writeString(w, m.clientVersion) - writeString(w, m.serverVersion) - writeString(w, m.clientKexInit) - writeString(w, m.serverKexInit) -} - -// kexAlgorithm abstracts different key exchange algorithms. -type kexAlgorithm interface { - // Server runs server-side key agreement, signing the result - // with a hostkey. - Server(p packetConn, rand io.Reader, magics *handshakeMagics, s Signer) (*kexResult, error) - - // Client runs the client-side key agreement. Caller is - // responsible for verifying the host key signature. - Client(p packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) -} - -// dhGroup is a multiplicative group suitable for implementing Diffie-Hellman key agreement. -type dhGroup struct { - g, p *big.Int -} - -func (group *dhGroup) diffieHellman(theirPublic, myPrivate *big.Int) (*big.Int, error) { - if theirPublic.Sign() <= 0 || theirPublic.Cmp(group.p) >= 0 { - return nil, errors.New("ssh: DH parameter out of bounds") - } - return new(big.Int).Exp(theirPublic, myPrivate, group.p), nil -} - -func (group *dhGroup) Client(c packetConn, randSource io.Reader, magics *handshakeMagics) (*kexResult, error) { - hashFunc := crypto.SHA1 - - x, err := rand.Int(randSource, group.p) - if err != nil { - return nil, err - } - X := new(big.Int).Exp(group.g, x, group.p) - kexDHInit := kexDHInitMsg{ - X: X, - } - if err := c.writePacket(Marshal(&kexDHInit)); err != nil { - return nil, err - } - - packet, err := c.readPacket() - if err != nil { - return nil, err - } - - var kexDHReply kexDHReplyMsg - if err = Unmarshal(packet, &kexDHReply); err != nil { - return nil, err - } - - kInt, err := group.diffieHellman(kexDHReply.Y, x) - if err != nil { - return nil, err - } - - h := hashFunc.New() - magics.write(h) - writeString(h, kexDHReply.HostKey) - writeInt(h, X) - writeInt(h, kexDHReply.Y) - K := make([]byte, intLength(kInt)) - marshalInt(K, kInt) - h.Write(K) - - return &kexResult{ - H: h.Sum(nil), - K: K, - HostKey: kexDHReply.HostKey, - Signature: kexDHReply.Signature, - Hash: crypto.SHA1, - }, nil -} - -func (group *dhGroup) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { - hashFunc := crypto.SHA1 - packet, err := c.readPacket() - if err != nil { - return - } - var kexDHInit kexDHInitMsg - if err = Unmarshal(packet, &kexDHInit); err != nil { - return - } - - y, err := rand.Int(randSource, group.p) - if err != nil { - return - } - - Y := new(big.Int).Exp(group.g, y, group.p) - kInt, err := group.diffieHellman(kexDHInit.X, y) - if err != nil { - return nil, err - } - - hostKeyBytes := priv.PublicKey().Marshal() - - h := hashFunc.New() - magics.write(h) - writeString(h, hostKeyBytes) - writeInt(h, kexDHInit.X) - writeInt(h, Y) - - K := make([]byte, intLength(kInt)) - marshalInt(K, kInt) - h.Write(K) - - H := h.Sum(nil) - - // H is already a hash, but the hostkey signing will apply its - // own key-specific hash algorithm. - sig, err := signAndMarshal(priv, randSource, H) - if err != nil { - return nil, err - } - - kexDHReply := kexDHReplyMsg{ - HostKey: hostKeyBytes, - Y: Y, - Signature: sig, - } - packet = Marshal(&kexDHReply) - - err = c.writePacket(packet) - return &kexResult{ - H: H, - K: K, - HostKey: hostKeyBytes, - Signature: sig, - Hash: crypto.SHA1, - }, nil -} - -// ecdh performs Elliptic Curve Diffie-Hellman key exchange as -// described in RFC 5656, section 4. -type ecdh struct { - curve elliptic.Curve -} - -func (kex *ecdh) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { - ephKey, err := ecdsa.GenerateKey(kex.curve, rand) - if err != nil { - return nil, err - } - - kexInit := kexECDHInitMsg{ - ClientPubKey: elliptic.Marshal(kex.curve, ephKey.PublicKey.X, ephKey.PublicKey.Y), - } - - serialized := Marshal(&kexInit) - if err := c.writePacket(serialized); err != nil { - return nil, err - } - - packet, err := c.readPacket() - if err != nil { - return nil, err - } - - var reply kexECDHReplyMsg - if err = Unmarshal(packet, &reply); err != nil { - return nil, err - } - - x, y, err := unmarshalECKey(kex.curve, reply.EphemeralPubKey) - if err != nil { - return nil, err - } - - // generate shared secret - secret, _ := kex.curve.ScalarMult(x, y, ephKey.D.Bytes()) - - h := ecHash(kex.curve).New() - magics.write(h) - writeString(h, reply.HostKey) - writeString(h, kexInit.ClientPubKey) - writeString(h, reply.EphemeralPubKey) - K := make([]byte, intLength(secret)) - marshalInt(K, secret) - h.Write(K) - - return &kexResult{ - H: h.Sum(nil), - K: K, - HostKey: reply.HostKey, - Signature: reply.Signature, - Hash: ecHash(kex.curve), - }, nil -} - -// unmarshalECKey parses and checks an EC key. -func unmarshalECKey(curve elliptic.Curve, pubkey []byte) (x, y *big.Int, err error) { - x, y = elliptic.Unmarshal(curve, pubkey) - if x == nil { - return nil, nil, errors.New("ssh: elliptic.Unmarshal failure") - } - if !validateECPublicKey(curve, x, y) { - return nil, nil, errors.New("ssh: public key not on curve") - } - return x, y, nil -} - -// validateECPublicKey checks that the point is a valid public key for -// the given curve. See [SEC1], 3.2.2 -func validateECPublicKey(curve elliptic.Curve, x, y *big.Int) bool { - if x.Sign() == 0 && y.Sign() == 0 { - return false - } - - if x.Cmp(curve.Params().P) >= 0 { - return false - } - - if y.Cmp(curve.Params().P) >= 0 { - return false - } - - if !curve.IsOnCurve(x, y) { - return false - } - - // We don't check if N * PubKey == 0, since - // - // - the NIST curves have cofactor = 1, so this is implicit. - // (We don't foresee an implementation that supports non NIST - // curves) - // - // - for ephemeral keys, we don't need to worry about small - // subgroup attacks. - return true -} - -func (kex *ecdh) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { - packet, err := c.readPacket() - if err != nil { - return nil, err - } - - var kexECDHInit kexECDHInitMsg - if err = Unmarshal(packet, &kexECDHInit); err != nil { - return nil, err - } - - clientX, clientY, err := unmarshalECKey(kex.curve, kexECDHInit.ClientPubKey) - if err != nil { - return nil, err - } - - // We could cache this key across multiple users/multiple - // connection attempts, but the benefit is small. OpenSSH - // generates a new key for each incoming connection. - ephKey, err := ecdsa.GenerateKey(kex.curve, rand) - if err != nil { - return nil, err - } - - hostKeyBytes := priv.PublicKey().Marshal() - - serializedEphKey := elliptic.Marshal(kex.curve, ephKey.PublicKey.X, ephKey.PublicKey.Y) - - // generate shared secret - secret, _ := kex.curve.ScalarMult(clientX, clientY, ephKey.D.Bytes()) - - h := ecHash(kex.curve).New() - magics.write(h) - writeString(h, hostKeyBytes) - writeString(h, kexECDHInit.ClientPubKey) - writeString(h, serializedEphKey) - - K := make([]byte, intLength(secret)) - marshalInt(K, secret) - h.Write(K) - - H := h.Sum(nil) - - // H is already a hash, but the hostkey signing will apply its - // own key-specific hash algorithm. - sig, err := signAndMarshal(priv, rand, H) - if err != nil { - return nil, err - } - - reply := kexECDHReplyMsg{ - EphemeralPubKey: serializedEphKey, - HostKey: hostKeyBytes, - Signature: sig, - } - - serialized := Marshal(&reply) - if err := c.writePacket(serialized); err != nil { - return nil, err - } - - return &kexResult{ - H: H, - K: K, - HostKey: reply.HostKey, - Signature: sig, - Hash: ecHash(kex.curve), - }, nil -} - -var kexAlgoMap = map[string]kexAlgorithm{} - -func init() { - // This is the group called diffie-hellman-group1-sha1 in RFC - // 4253 and Oakley Group 2 in RFC 2409. - p, _ := new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF", 16) - kexAlgoMap[kexAlgoDH1SHA1] = &dhGroup{ - g: new(big.Int).SetInt64(2), - p: p, - } - - // This is the group called diffie-hellman-group14-sha1 in RFC - // 4253 and Oakley Group 14 in RFC 3526. - p, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF", 16) - - kexAlgoMap[kexAlgoDH14SHA1] = &dhGroup{ - g: new(big.Int).SetInt64(2), - p: p, - } - - kexAlgoMap[kexAlgoECDH521] = &ecdh{elliptic.P521()} - kexAlgoMap[kexAlgoECDH384] = &ecdh{elliptic.P384()} - kexAlgoMap[kexAlgoECDH256] = &ecdh{elliptic.P256()} - kexAlgoMap[kexAlgoCurve25519SHA256] = &curve25519sha256{} -} - -// curve25519sha256 implements the curve25519-sha256@libssh.org key -// agreement protocol, as described in -// https://git.libssh.org/projects/libssh.git/tree/doc/curve25519-sha256@libssh.org.txt -type curve25519sha256 struct{} - -type curve25519KeyPair struct { - priv [32]byte - pub [32]byte -} - -func (kp *curve25519KeyPair) generate(rand io.Reader) error { - if _, err := io.ReadFull(rand, kp.priv[:]); err != nil { - return err - } - curve25519.ScalarBaseMult(&kp.pub, &kp.priv) - return nil -} - -// curve25519Zeros is just an array of 32 zero bytes so that we have something -// convenient to compare against in order to reject curve25519 points with the -// wrong order. -var curve25519Zeros [32]byte - -func (kex *curve25519sha256) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { - var kp curve25519KeyPair - if err := kp.generate(rand); err != nil { - return nil, err - } - if err := c.writePacket(Marshal(&kexECDHInitMsg{kp.pub[:]})); err != nil { - return nil, err - } - - packet, err := c.readPacket() - if err != nil { - return nil, err - } - - var reply kexECDHReplyMsg - if err = Unmarshal(packet, &reply); err != nil { - return nil, err - } - if len(reply.EphemeralPubKey) != 32 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong length") - } - - var servPub, secret [32]byte - copy(servPub[:], reply.EphemeralPubKey) - curve25519.ScalarMult(&secret, &kp.priv, &servPub) - if subtle.ConstantTimeCompare(secret[:], curve25519Zeros[:]) == 1 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong order") - } - - h := crypto.SHA256.New() - magics.write(h) - writeString(h, reply.HostKey) - writeString(h, kp.pub[:]) - writeString(h, reply.EphemeralPubKey) - - kInt := new(big.Int).SetBytes(secret[:]) - K := make([]byte, intLength(kInt)) - marshalInt(K, kInt) - h.Write(K) - - return &kexResult{ - H: h.Sum(nil), - K: K, - HostKey: reply.HostKey, - Signature: reply.Signature, - Hash: crypto.SHA256, - }, nil -} - -func (kex *curve25519sha256) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { - packet, err := c.readPacket() - if err != nil { - return - } - var kexInit kexECDHInitMsg - if err = Unmarshal(packet, &kexInit); err != nil { - return - } - - if len(kexInit.ClientPubKey) != 32 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong length") - } - - var kp curve25519KeyPair - if err := kp.generate(rand); err != nil { - return nil, err - } - - var clientPub, secret [32]byte - copy(clientPub[:], kexInit.ClientPubKey) - curve25519.ScalarMult(&secret, &kp.priv, &clientPub) - if subtle.ConstantTimeCompare(secret[:], curve25519Zeros[:]) == 1 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong order") - } - - hostKeyBytes := priv.PublicKey().Marshal() - - h := crypto.SHA256.New() - magics.write(h) - writeString(h, hostKeyBytes) - writeString(h, kexInit.ClientPubKey) - writeString(h, kp.pub[:]) - - kInt := new(big.Int).SetBytes(secret[:]) - K := make([]byte, intLength(kInt)) - marshalInt(K, kInt) - h.Write(K) - - H := h.Sum(nil) - - sig, err := signAndMarshal(priv, rand, H) - if err != nil { - return nil, err - } - - reply := kexECDHReplyMsg{ - EphemeralPubKey: kp.pub[:], - HostKey: hostKeyBytes, - Signature: sig, - } - if err := c.writePacket(Marshal(&reply)); err != nil { - return nil, err - } - return &kexResult{ - H: H, - K: K, - HostKey: hostKeyBytes, - Signature: sig, - Hash: crypto.SHA256, - }, nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/kex_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/kex_test.go deleted file mode 100644 index 12ca0acd..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/kex_test.go +++ /dev/null @@ -1,50 +0,0 @@ -// 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 ssh - -// Key exchange tests. - -import ( - "crypto/rand" - "reflect" - "testing" -) - -func TestKexes(t *testing.T) { - type kexResultErr struct { - result *kexResult - err error - } - - for name, kex := range kexAlgoMap { - a, b := memPipe() - - s := make(chan kexResultErr, 1) - c := make(chan kexResultErr, 1) - var magics handshakeMagics - go func() { - r, e := kex.Client(a, rand.Reader, &magics) - a.Close() - c <- kexResultErr{r, e} - }() - go func() { - r, e := kex.Server(b, rand.Reader, &magics, testSigners["ecdsa"]) - b.Close() - s <- kexResultErr{r, e} - }() - - clientRes := <-c - serverRes := <-s - if clientRes.err != nil { - t.Errorf("client: %v", clientRes.err) - } - if serverRes.err != nil { - t.Errorf("server: %v", serverRes.err) - } - if !reflect.DeepEqual(clientRes.result, serverRes.result) { - t.Errorf("kex %q: mismatch %#v, %#v", name, clientRes.result, serverRes.result) - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/keys.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/keys.go deleted file mode 100644 index 8ce41858..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/keys.go +++ /dev/null @@ -1,646 +0,0 @@ -// Copyright 2012 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 ssh - -import ( - "bytes" - "crypto" - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rsa" - "crypto/x509" - "encoding/asn1" - "encoding/base64" - "encoding/pem" - "errors" - "fmt" - "io" - "math/big" -) - -// These constants represent the algorithm names for key types supported by this -// package. -const ( - KeyAlgoRSA = "ssh-rsa" - KeyAlgoDSA = "ssh-dss" - KeyAlgoECDSA256 = "ecdsa-sha2-nistp256" - KeyAlgoECDSA384 = "ecdsa-sha2-nistp384" - KeyAlgoECDSA521 = "ecdsa-sha2-nistp521" -) - -// parsePubKey parses a public key of the given algorithm. -// Use ParsePublicKey for keys with prepended algorithm. -func parsePubKey(in []byte, algo string) (pubKey PublicKey, rest []byte, err error) { - switch algo { - case KeyAlgoRSA: - return parseRSA(in) - case KeyAlgoDSA: - return parseDSA(in) - case KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521: - return parseECDSA(in) - case CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01: - cert, err := parseCert(in, certToPrivAlgo(algo)) - if err != nil { - return nil, nil, err - } - return cert, nil, nil - } - return nil, nil, fmt.Errorf("ssh: unknown key algorithm: %v", err) -} - -// parseAuthorizedKey parses a public key in OpenSSH authorized_keys format -// (see sshd(8) manual page) once the options and key type fields have been -// removed. -func parseAuthorizedKey(in []byte) (out PublicKey, comment string, err error) { - in = bytes.TrimSpace(in) - - i := bytes.IndexAny(in, " \t") - if i == -1 { - i = len(in) - } - base64Key := in[:i] - - key := make([]byte, base64.StdEncoding.DecodedLen(len(base64Key))) - n, err := base64.StdEncoding.Decode(key, base64Key) - if err != nil { - return nil, "", err - } - key = key[:n] - out, err = ParsePublicKey(key) - if err != nil { - return nil, "", err - } - comment = string(bytes.TrimSpace(in[i:])) - return out, comment, nil -} - -// ParseAuthorizedKeys parses a public key from an authorized_keys -// file used in OpenSSH according to the sshd(8) manual page. -func ParseAuthorizedKey(in []byte) (out PublicKey, comment string, options []string, rest []byte, err error) { - for len(in) > 0 { - end := bytes.IndexByte(in, '\n') - if end != -1 { - rest = in[end+1:] - in = in[:end] - } else { - rest = nil - } - - end = bytes.IndexByte(in, '\r') - if end != -1 { - in = in[:end] - } - - in = bytes.TrimSpace(in) - if len(in) == 0 || in[0] == '#' { - in = rest - continue - } - - i := bytes.IndexAny(in, " \t") - if i == -1 { - in = rest - continue - } - - if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { - return out, comment, options, rest, nil - } - - // No key type recognised. Maybe there's an options field at - // the beginning. - var b byte - inQuote := false - var candidateOptions []string - optionStart := 0 - for i, b = range in { - isEnd := !inQuote && (b == ' ' || b == '\t') - if (b == ',' && !inQuote) || isEnd { - if i-optionStart > 0 { - candidateOptions = append(candidateOptions, string(in[optionStart:i])) - } - optionStart = i + 1 - } - if isEnd { - break - } - if b == '"' && (i == 0 || (i > 0 && in[i-1] != '\\')) { - inQuote = !inQuote - } - } - for i < len(in) && (in[i] == ' ' || in[i] == '\t') { - i++ - } - if i == len(in) { - // Invalid line: unmatched quote - in = rest - continue - } - - in = in[i:] - i = bytes.IndexAny(in, " \t") - if i == -1 { - in = rest - continue - } - - if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { - options = candidateOptions - return out, comment, options, rest, nil - } - - in = rest - continue - } - - return nil, "", nil, nil, errors.New("ssh: no key found") -} - -// ParsePublicKey parses an SSH public key formatted for use in -// the SSH wire protocol according to RFC 4253, section 6.6. -func ParsePublicKey(in []byte) (out PublicKey, err error) { - algo, in, ok := parseString(in) - if !ok { - return nil, errShortRead - } - var rest []byte - out, rest, err = parsePubKey(in, string(algo)) - if len(rest) > 0 { - return nil, errors.New("ssh: trailing junk in public key") - } - - return out, err -} - -// MarshalAuthorizedKey serializes key for inclusion in an OpenSSH -// authorized_keys file. The return value ends with newline. -func MarshalAuthorizedKey(key PublicKey) []byte { - b := &bytes.Buffer{} - b.WriteString(key.Type()) - b.WriteByte(' ') - e := base64.NewEncoder(base64.StdEncoding, b) - e.Write(key.Marshal()) - e.Close() - b.WriteByte('\n') - return b.Bytes() -} - -// PublicKey is an abstraction of different types of public keys. -type PublicKey interface { - // Type returns the key's type, e.g. "ssh-rsa". - Type() string - - // Marshal returns the serialized key data in SSH wire format, - // with the name prefix. - Marshal() []byte - - // Verify that sig is a signature on the given data using this - // key. This function will hash the data appropriately first. - Verify(data []byte, sig *Signature) error -} - -// A Signer can create signatures that verify against a public key. -type Signer interface { - // PublicKey returns an associated PublicKey instance. - PublicKey() PublicKey - - // Sign returns raw signature for the given data. This method - // will apply the hash specified for the keytype to the data. - Sign(rand io.Reader, data []byte) (*Signature, error) -} - -type rsaPublicKey rsa.PublicKey - -func (r *rsaPublicKey) Type() string { - return "ssh-rsa" -} - -// parseRSA parses an RSA key according to RFC 4253, section 6.6. -func parseRSA(in []byte) (out PublicKey, rest []byte, err error) { - var w struct { - E *big.Int - N *big.Int - Rest []byte `ssh:"rest"` - } - if err := Unmarshal(in, &w); err != nil { - return nil, nil, err - } - - if w.E.BitLen() > 24 { - return nil, nil, errors.New("ssh: exponent too large") - } - e := w.E.Int64() - if e < 3 || e&1 == 0 { - return nil, nil, errors.New("ssh: incorrect exponent") - } - - var key rsa.PublicKey - key.E = int(e) - key.N = w.N - return (*rsaPublicKey)(&key), w.Rest, nil -} - -func (r *rsaPublicKey) Marshal() []byte { - e := new(big.Int).SetInt64(int64(r.E)) - wirekey := struct { - Name string - E *big.Int - N *big.Int - }{ - KeyAlgoRSA, - e, - r.N, - } - return Marshal(&wirekey) -} - -func (r *rsaPublicKey) Verify(data []byte, sig *Signature) error { - if sig.Format != r.Type() { - return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, r.Type()) - } - h := crypto.SHA1.New() - h.Write(data) - digest := h.Sum(nil) - return rsa.VerifyPKCS1v15((*rsa.PublicKey)(r), crypto.SHA1, digest, sig.Blob) -} - -type dsaPublicKey dsa.PublicKey - -func (r *dsaPublicKey) Type() string { - return "ssh-dss" -} - -// parseDSA parses an DSA key according to RFC 4253, section 6.6. -func parseDSA(in []byte) (out PublicKey, rest []byte, err error) { - var w struct { - P, Q, G, Y *big.Int - Rest []byte `ssh:"rest"` - } - if err := Unmarshal(in, &w); err != nil { - return nil, nil, err - } - - key := &dsaPublicKey{ - Parameters: dsa.Parameters{ - P: w.P, - Q: w.Q, - G: w.G, - }, - Y: w.Y, - } - return key, w.Rest, nil -} - -func (k *dsaPublicKey) Marshal() []byte { - w := struct { - Name string - P, Q, G, Y *big.Int - }{ - k.Type(), - k.P, - k.Q, - k.G, - k.Y, - } - - return Marshal(&w) -} - -func (k *dsaPublicKey) Verify(data []byte, sig *Signature) error { - if sig.Format != k.Type() { - return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, k.Type()) - } - h := crypto.SHA1.New() - h.Write(data) - digest := h.Sum(nil) - - // Per RFC 4253, section 6.6, - // The value for 'dss_signature_blob' is encoded as a string containing - // r, followed by s (which are 160-bit integers, without lengths or - // padding, unsigned, and in network byte order). - // For DSS purposes, sig.Blob should be exactly 40 bytes in length. - if len(sig.Blob) != 40 { - return errors.New("ssh: DSA signature parse error") - } - r := new(big.Int).SetBytes(sig.Blob[:20]) - s := new(big.Int).SetBytes(sig.Blob[20:]) - if dsa.Verify((*dsa.PublicKey)(k), digest, r, s) { - return nil - } - return errors.New("ssh: signature did not verify") -} - -type dsaPrivateKey struct { - *dsa.PrivateKey -} - -func (k *dsaPrivateKey) PublicKey() PublicKey { - return (*dsaPublicKey)(&k.PrivateKey.PublicKey) -} - -func (k *dsaPrivateKey) Sign(rand io.Reader, data []byte) (*Signature, error) { - h := crypto.SHA1.New() - h.Write(data) - digest := h.Sum(nil) - r, s, err := dsa.Sign(rand, k.PrivateKey, digest) - if err != nil { - return nil, err - } - - sig := make([]byte, 40) - rb := r.Bytes() - sb := s.Bytes() - - copy(sig[20-len(rb):20], rb) - copy(sig[40-len(sb):], sb) - - return &Signature{ - Format: k.PublicKey().Type(), - Blob: sig, - }, nil -} - -type ecdsaPublicKey ecdsa.PublicKey - -func (key *ecdsaPublicKey) Type() string { - return "ecdsa-sha2-" + key.nistID() -} - -func (key *ecdsaPublicKey) nistID() string { - switch key.Params().BitSize { - case 256: - return "nistp256" - case 384: - return "nistp384" - case 521: - return "nistp521" - } - panic("ssh: unsupported ecdsa key size") -} - -func supportedEllipticCurve(curve elliptic.Curve) bool { - return curve == elliptic.P256() || curve == elliptic.P384() || curve == elliptic.P521() -} - -// ecHash returns the hash to match the given elliptic curve, see RFC -// 5656, section 6.2.1 -func ecHash(curve elliptic.Curve) crypto.Hash { - bitSize := curve.Params().BitSize - switch { - case bitSize <= 256: - return crypto.SHA256 - case bitSize <= 384: - return crypto.SHA384 - } - return crypto.SHA512 -} - -// parseECDSA parses an ECDSA key according to RFC 5656, section 3.1. -func parseECDSA(in []byte) (out PublicKey, rest []byte, err error) { - var w struct { - Curve string - KeyBytes []byte - Rest []byte `ssh:"rest"` - } - - if err := Unmarshal(in, &w); err != nil { - return nil, nil, err - } - - key := new(ecdsa.PublicKey) - - switch w.Curve { - case "nistp256": - key.Curve = elliptic.P256() - case "nistp384": - key.Curve = elliptic.P384() - case "nistp521": - key.Curve = elliptic.P521() - default: - return nil, nil, errors.New("ssh: unsupported curve") - } - - key.X, key.Y = elliptic.Unmarshal(key.Curve, w.KeyBytes) - if key.X == nil || key.Y == nil { - return nil, nil, errors.New("ssh: invalid curve point") - } - return (*ecdsaPublicKey)(key), w.Rest, nil -} - -func (key *ecdsaPublicKey) Marshal() []byte { - // See RFC 5656, section 3.1. - keyBytes := elliptic.Marshal(key.Curve, key.X, key.Y) - w := struct { - Name string - ID string - Key []byte - }{ - key.Type(), - key.nistID(), - keyBytes, - } - - return Marshal(&w) -} - -func (key *ecdsaPublicKey) Verify(data []byte, sig *Signature) error { - if sig.Format != key.Type() { - return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, key.Type()) - } - - h := ecHash(key.Curve).New() - h.Write(data) - digest := h.Sum(nil) - - // Per RFC 5656, section 3.1.2, - // The ecdsa_signature_blob value has the following specific encoding: - // mpint r - // mpint s - var ecSig struct { - R *big.Int - S *big.Int - } - - if err := Unmarshal(sig.Blob, &ecSig); err != nil { - return err - } - - if ecdsa.Verify((*ecdsa.PublicKey)(key), digest, ecSig.R, ecSig.S) { - return nil - } - return errors.New("ssh: signature did not verify") -} - -// NewSignerFromKey takes an *rsa.PrivateKey, *dsa.PrivateKey, -// *ecdsa.PrivateKey or any other crypto.Signer and returns a corresponding -// Signer instance. ECDSA keys must use P-256, P-384 or P-521. -func NewSignerFromKey(key interface{}) (Signer, error) { - switch key := key.(type) { - case crypto.Signer: - return NewSignerFromSigner(key) - case *dsa.PrivateKey: - return &dsaPrivateKey{key}, nil - default: - return nil, fmt.Errorf("ssh: unsupported key type %T", key) - } -} - -type wrappedSigner struct { - signer crypto.Signer - pubKey PublicKey -} - -// NewSignerFromSigner takes any crypto.Signer implementation and -// returns a corresponding Signer interface. This can be used, for -// example, with keys kept in hardware modules. -func NewSignerFromSigner(signer crypto.Signer) (Signer, error) { - pubKey, err := NewPublicKey(signer.Public()) - if err != nil { - return nil, err - } - - return &wrappedSigner{signer, pubKey}, nil -} - -func (s *wrappedSigner) PublicKey() PublicKey { - return s.pubKey -} - -func (s *wrappedSigner) Sign(rand io.Reader, data []byte) (*Signature, error) { - var hashFunc crypto.Hash - - switch key := s.pubKey.(type) { - case *rsaPublicKey, *dsaPublicKey: - hashFunc = crypto.SHA1 - case *ecdsaPublicKey: - hashFunc = ecHash(key.Curve) - default: - return nil, fmt.Errorf("ssh: unsupported key type %T", key) - } - - h := hashFunc.New() - h.Write(data) - digest := h.Sum(nil) - - signature, err := s.signer.Sign(rand, digest, hashFunc) - if err != nil { - return nil, err - } - - // crypto.Signer.Sign is expected to return an ASN.1-encoded signature - // for ECDSA and DSA, but that's not the encoding expected by SSH, so - // re-encode. - switch s.pubKey.(type) { - case *ecdsaPublicKey, *dsaPublicKey: - type asn1Signature struct { - R, S *big.Int - } - asn1Sig := new(asn1Signature) - _, err := asn1.Unmarshal(signature, asn1Sig) - if err != nil { - return nil, err - } - - switch s.pubKey.(type) { - case *ecdsaPublicKey: - signature = Marshal(asn1Sig) - - case *dsaPublicKey: - signature = make([]byte, 40) - r := asn1Sig.R.Bytes() - s := asn1Sig.S.Bytes() - copy(signature[20-len(r):20], r) - copy(signature[40-len(s):40], s) - } - } - - return &Signature{ - Format: s.pubKey.Type(), - Blob: signature, - }, nil -} - -// NewPublicKey takes an *rsa.PublicKey, *dsa.PublicKey, *ecdsa.PublicKey or -// any other crypto.Signer and returns a corresponding Signer instance. ECDSA -// keys must use P-256, P-384 or P-521. -func NewPublicKey(key interface{}) (PublicKey, error) { - switch key := key.(type) { - case *rsa.PublicKey: - return (*rsaPublicKey)(key), nil - case *ecdsa.PublicKey: - if !supportedEllipticCurve(key.Curve) { - return nil, errors.New("ssh: only P-256, P-384 and P-521 EC keys are supported.") - } - return (*ecdsaPublicKey)(key), nil - case *dsa.PublicKey: - return (*dsaPublicKey)(key), nil - default: - return nil, fmt.Errorf("ssh: unsupported key type %T", key) - } -} - -// ParsePrivateKey returns a Signer from a PEM encoded private key. It supports -// the same keys as ParseRawPrivateKey. -func ParsePrivateKey(pemBytes []byte) (Signer, error) { - key, err := ParseRawPrivateKey(pemBytes) - if err != nil { - return nil, err - } - - return NewSignerFromKey(key) -} - -// ParseRawPrivateKey returns a private key from a PEM encoded private key. It -// supports RSA (PKCS#1), DSA (OpenSSL), and ECDSA private keys. -func ParseRawPrivateKey(pemBytes []byte) (interface{}, error) { - block, _ := pem.Decode(pemBytes) - if block == nil { - return nil, errors.New("ssh: no key found") - } - - switch block.Type { - case "RSA PRIVATE KEY": - return x509.ParsePKCS1PrivateKey(block.Bytes) - case "EC PRIVATE KEY": - return x509.ParseECPrivateKey(block.Bytes) - case "DSA PRIVATE KEY": - return ParseDSAPrivateKey(block.Bytes) - default: - return nil, fmt.Errorf("ssh: unsupported key type %q", block.Type) - } -} - -// ParseDSAPrivateKey returns a DSA private key from its ASN.1 DER encoding, as -// specified by the OpenSSL DSA man page. -func ParseDSAPrivateKey(der []byte) (*dsa.PrivateKey, error) { - var k struct { - Version int - P *big.Int - Q *big.Int - G *big.Int - Priv *big.Int - Pub *big.Int - } - rest, err := asn1.Unmarshal(der, &k) - if err != nil { - return nil, errors.New("ssh: failed to parse DSA key: " + err.Error()) - } - if len(rest) > 0 { - return nil, errors.New("ssh: garbage after DSA key") - } - - return &dsa.PrivateKey{ - PublicKey: dsa.PublicKey{ - Parameters: dsa.Parameters{ - P: k.P, - Q: k.Q, - G: k.G, - }, - Y: k.Priv, - }, - X: k.Pub, - }, nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/keys_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/keys_test.go deleted file mode 100644 index 977301b2..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/keys_test.go +++ /dev/null @@ -1,306 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rand" - "crypto/rsa" - "encoding/base64" - "fmt" - "reflect" - "strings" - "testing" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata" -) - -func rawKey(pub PublicKey) interface{} { - switch k := pub.(type) { - case *rsaPublicKey: - return (*rsa.PublicKey)(k) - case *dsaPublicKey: - return (*dsa.PublicKey)(k) - case *ecdsaPublicKey: - return (*ecdsa.PublicKey)(k) - case *Certificate: - return k - } - panic("unknown key type") -} - -func TestKeyMarshalParse(t *testing.T) { - for _, priv := range testSigners { - pub := priv.PublicKey() - roundtrip, err := ParsePublicKey(pub.Marshal()) - if err != nil { - t.Errorf("ParsePublicKey(%T): %v", pub, err) - } - - k1 := rawKey(pub) - k2 := rawKey(roundtrip) - - if !reflect.DeepEqual(k1, k2) { - t.Errorf("got %#v in roundtrip, want %#v", k2, k1) - } - } -} - -func TestUnsupportedCurves(t *testing.T) { - raw, err := ecdsa.GenerateKey(elliptic.P224(), rand.Reader) - if err != nil { - t.Fatalf("GenerateKey: %v", err) - } - - if _, err = NewSignerFromKey(raw); err == nil || !strings.Contains(err.Error(), "only P-256") { - t.Fatalf("NewPrivateKey should not succeed with P-224, got: %v", err) - } - - if _, err = NewPublicKey(&raw.PublicKey); err == nil || !strings.Contains(err.Error(), "only P-256") { - t.Fatalf("NewPublicKey should not succeed with P-224, got: %v", err) - } -} - -func TestNewPublicKey(t *testing.T) { - for _, k := range testSigners { - raw := rawKey(k.PublicKey()) - // Skip certificates, as NewPublicKey does not support them. - if _, ok := raw.(*Certificate); ok { - continue - } - pub, err := NewPublicKey(raw) - if err != nil { - t.Errorf("NewPublicKey(%#v): %v", raw, err) - } - if !reflect.DeepEqual(k.PublicKey(), pub) { - t.Errorf("NewPublicKey(%#v) = %#v, want %#v", raw, pub, k.PublicKey()) - } - } -} - -func TestKeySignVerify(t *testing.T) { - for _, priv := range testSigners { - pub := priv.PublicKey() - - data := []byte("sign me") - sig, err := priv.Sign(rand.Reader, data) - if err != nil { - t.Fatalf("Sign(%T): %v", priv, err) - } - - if err := pub.Verify(data, sig); err != nil { - t.Errorf("publicKey.Verify(%T): %v", priv, err) - } - sig.Blob[5]++ - if err := pub.Verify(data, sig); err == nil { - t.Errorf("publicKey.Verify on broken sig did not fail") - } - } -} - -func TestParseRSAPrivateKey(t *testing.T) { - key := testPrivateKeys["rsa"] - - rsa, ok := key.(*rsa.PrivateKey) - if !ok { - t.Fatalf("got %T, want *rsa.PrivateKey", rsa) - } - - if err := rsa.Validate(); err != nil { - t.Errorf("Validate: %v", err) - } -} - -func TestParseECPrivateKey(t *testing.T) { - key := testPrivateKeys["ecdsa"] - - ecKey, ok := key.(*ecdsa.PrivateKey) - if !ok { - t.Fatalf("got %T, want *ecdsa.PrivateKey", ecKey) - } - - if !validateECPublicKey(ecKey.Curve, ecKey.X, ecKey.Y) { - t.Fatalf("public key does not validate.") - } -} - -func TestParseDSA(t *testing.T) { - // We actually exercise the ParsePrivateKey codepath here, as opposed to - // using the ParseRawPrivateKey+NewSignerFromKey path that testdata_test.go - // uses. - s, err := ParsePrivateKey(testdata.PEMBytes["dsa"]) - if err != nil { - t.Fatalf("ParsePrivateKey returned error: %s", err) - } - - data := []byte("sign me") - sig, err := s.Sign(rand.Reader, data) - if err != nil { - t.Fatalf("dsa.Sign: %v", err) - } - - if err := s.PublicKey().Verify(data, sig); err != nil { - t.Errorf("Verify failed: %v", err) - } -} - -// Tests for authorized_keys parsing. - -// getTestKey returns a public key, and its base64 encoding. -func getTestKey() (PublicKey, string) { - k := testPublicKeys["rsa"] - - b := &bytes.Buffer{} - e := base64.NewEncoder(base64.StdEncoding, b) - e.Write(k.Marshal()) - e.Close() - - return k, b.String() -} - -func TestMarshalParsePublicKey(t *testing.T) { - pub, pubSerialized := getTestKey() - line := fmt.Sprintf("%s %s user@host", pub.Type(), pubSerialized) - - authKeys := MarshalAuthorizedKey(pub) - actualFields := strings.Fields(string(authKeys)) - if len(actualFields) == 0 { - t.Fatalf("failed authKeys: %v", authKeys) - } - - // drop the comment - expectedFields := strings.Fields(line)[0:2] - - if !reflect.DeepEqual(actualFields, expectedFields) { - t.Errorf("got %v, expected %v", actualFields, expectedFields) - } - - actPub, _, _, _, err := ParseAuthorizedKey([]byte(line)) - if err != nil { - t.Fatalf("cannot parse %v: %v", line, err) - } - if !reflect.DeepEqual(actPub, pub) { - t.Errorf("got %v, expected %v", actPub, pub) - } -} - -type authResult struct { - pubKey PublicKey - options []string - comments string - rest string - ok bool -} - -func testAuthorizedKeys(t *testing.T, authKeys []byte, expected []authResult) { - rest := authKeys - var values []authResult - for len(rest) > 0 { - var r authResult - var err error - r.pubKey, r.comments, r.options, rest, err = ParseAuthorizedKey(rest) - r.ok = (err == nil) - t.Log(err) - r.rest = string(rest) - values = append(values, r) - } - - if !reflect.DeepEqual(values, expected) { - t.Errorf("got %#v, expected %#v", values, expected) - } -} - -func TestAuthorizedKeyBasic(t *testing.T) { - pub, pubSerialized := getTestKey() - line := "ssh-rsa " + pubSerialized + " user@host" - testAuthorizedKeys(t, []byte(line), - []authResult{ - {pub, nil, "user@host", "", true}, - }) -} - -func TestAuth(t *testing.T) { - pub, pubSerialized := getTestKey() - authWithOptions := []string{ - `# comments to ignore before any keys...`, - ``, - `env="HOME=/home/root",no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host`, - `# comments to ignore, along with a blank line`, - ``, - `env="HOME=/home/root2" ssh-rsa ` + pubSerialized + ` user2@host2`, - ``, - `# more comments, plus a invalid entry`, - `ssh-rsa data-that-will-not-parse user@host3`, - } - for _, eol := range []string{"\n", "\r\n"} { - authOptions := strings.Join(authWithOptions, eol) - rest2 := strings.Join(authWithOptions[3:], eol) - rest3 := strings.Join(authWithOptions[6:], eol) - testAuthorizedKeys(t, []byte(authOptions), []authResult{ - {pub, []string{`env="HOME=/home/root"`, "no-port-forwarding"}, "user@host", rest2, true}, - {pub, []string{`env="HOME=/home/root2"`}, "user2@host2", rest3, true}, - {nil, nil, "", "", false}, - }) - } -} - -func TestAuthWithQuotedSpaceInEnv(t *testing.T) { - pub, pubSerialized := getTestKey() - authWithQuotedSpaceInEnv := []byte(`env="HOME=/home/root dir",no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host`) - testAuthorizedKeys(t, []byte(authWithQuotedSpaceInEnv), []authResult{ - {pub, []string{`env="HOME=/home/root dir"`, "no-port-forwarding"}, "user@host", "", true}, - }) -} - -func TestAuthWithQuotedCommaInEnv(t *testing.T) { - pub, pubSerialized := getTestKey() - authWithQuotedCommaInEnv := []byte(`env="HOME=/home/root,dir",no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host`) - testAuthorizedKeys(t, []byte(authWithQuotedCommaInEnv), []authResult{ - {pub, []string{`env="HOME=/home/root,dir"`, "no-port-forwarding"}, "user@host", "", true}, - }) -} - -func TestAuthWithQuotedQuoteInEnv(t *testing.T) { - pub, pubSerialized := getTestKey() - authWithQuotedQuoteInEnv := []byte(`env="HOME=/home/\"root dir",no-port-forwarding` + "\t" + `ssh-rsa` + "\t" + pubSerialized + ` user@host`) - authWithDoubleQuotedQuote := []byte(`no-port-forwarding,env="HOME=/home/ \"root dir\"" ssh-rsa ` + pubSerialized + "\t" + `user@host`) - testAuthorizedKeys(t, []byte(authWithQuotedQuoteInEnv), []authResult{ - {pub, []string{`env="HOME=/home/\"root dir"`, "no-port-forwarding"}, "user@host", "", true}, - }) - - testAuthorizedKeys(t, []byte(authWithDoubleQuotedQuote), []authResult{ - {pub, []string{"no-port-forwarding", `env="HOME=/home/ \"root dir\""`}, "user@host", "", true}, - }) -} - -func TestAuthWithInvalidSpace(t *testing.T) { - _, pubSerialized := getTestKey() - authWithInvalidSpace := []byte(`env="HOME=/home/root dir", no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host -#more to follow but still no valid keys`) - testAuthorizedKeys(t, []byte(authWithInvalidSpace), []authResult{ - {nil, nil, "", "", false}, - }) -} - -func TestAuthWithMissingQuote(t *testing.T) { - pub, pubSerialized := getTestKey() - authWithMissingQuote := []byte(`env="HOME=/home/root,no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host -env="HOME=/home/root",shared-control ssh-rsa ` + pubSerialized + ` user@host`) - - testAuthorizedKeys(t, []byte(authWithMissingQuote), []authResult{ - {pub, []string{`env="HOME=/home/root"`, `shared-control`}, "user@host", "", true}, - }) -} - -func TestInvalidEntry(t *testing.T) { - authInvalid := []byte(`ssh-rsa`) - _, _, _, _, err := ParseAuthorizedKey(authInvalid) - if err == nil { - t.Errorf("got valid entry for %q", authInvalid) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mac.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mac.go deleted file mode 100644 index 07744ad6..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mac.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2012 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 ssh - -// Message authentication support - -import ( - "crypto/hmac" - "crypto/sha1" - "crypto/sha256" - "hash" -) - -type macMode struct { - keySize int - new func(key []byte) hash.Hash -} - -// truncatingMAC wraps around a hash.Hash and truncates the output digest to -// a given size. -type truncatingMAC struct { - length int - hmac hash.Hash -} - -func (t truncatingMAC) Write(data []byte) (int, error) { - return t.hmac.Write(data) -} - -func (t truncatingMAC) Sum(in []byte) []byte { - out := t.hmac.Sum(in) - return out[:len(in)+t.length] -} - -func (t truncatingMAC) Reset() { - t.hmac.Reset() -} - -func (t truncatingMAC) Size() int { - return t.length -} - -func (t truncatingMAC) BlockSize() int { return t.hmac.BlockSize() } - -var macModes = map[string]*macMode{ - "hmac-sha2-256": {32, func(key []byte) hash.Hash { - return hmac.New(sha256.New, key) - }}, - "hmac-sha1": {20, func(key []byte) hash.Hash { - return hmac.New(sha1.New, key) - }}, - "hmac-sha1-96": {20, func(key []byte) hash.Hash { - return truncatingMAC{12, hmac.New(sha1.New, key)} - }}, -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mempipe_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mempipe_test.go deleted file mode 100644 index 8697cd61..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mempipe_test.go +++ /dev/null @@ -1,110 +0,0 @@ -// 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 ssh - -import ( - "io" - "sync" - "testing" -) - -// An in-memory packetConn. It is safe to call Close and writePacket -// from different goroutines. -type memTransport struct { - eof bool - pending [][]byte - write *memTransport - sync.Mutex - *sync.Cond -} - -func (t *memTransport) readPacket() ([]byte, error) { - t.Lock() - defer t.Unlock() - for { - if len(t.pending) > 0 { - r := t.pending[0] - t.pending = t.pending[1:] - return r, nil - } - if t.eof { - return nil, io.EOF - } - t.Cond.Wait() - } -} - -func (t *memTransport) closeSelf() error { - t.Lock() - defer t.Unlock() - if t.eof { - return io.EOF - } - t.eof = true - t.Cond.Broadcast() - return nil -} - -func (t *memTransport) Close() error { - err := t.write.closeSelf() - t.closeSelf() - return err -} - -func (t *memTransport) writePacket(p []byte) error { - t.write.Lock() - defer t.write.Unlock() - if t.write.eof { - return io.EOF - } - c := make([]byte, len(p)) - copy(c, p) - t.write.pending = append(t.write.pending, c) - t.write.Cond.Signal() - return nil -} - -func memPipe() (a, b packetConn) { - t1 := memTransport{} - t2 := memTransport{} - t1.write = &t2 - t2.write = &t1 - t1.Cond = sync.NewCond(&t1.Mutex) - t2.Cond = sync.NewCond(&t2.Mutex) - return &t1, &t2 -} - -func TestMemPipe(t *testing.T) { - a, b := memPipe() - if err := a.writePacket([]byte{42}); err != nil { - t.Fatalf("writePacket: %v", err) - } - if err := a.Close(); err != nil { - t.Fatal("Close: ", err) - } - p, err := b.readPacket() - if err != nil { - t.Fatal("readPacket: ", err) - } - if len(p) != 1 || p[0] != 42 { - t.Fatalf("got %v, want {42}", p) - } - p, err = b.readPacket() - if err != io.EOF { - t.Fatalf("got %v, %v, want EOF", p, err) - } -} - -func TestDoubleClose(t *testing.T) { - a, _ := memPipe() - err := a.Close() - if err != nil { - t.Errorf("Close: %v", err) - } - err = a.Close() - if err != io.EOF { - t.Errorf("expect EOF on double close.") - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/messages.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/messages.go deleted file mode 100644 index eaf61066..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/messages.go +++ /dev/null @@ -1,725 +0,0 @@ -// 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 ssh - -import ( - "bytes" - "encoding/binary" - "errors" - "fmt" - "io" - "math/big" - "reflect" - "strconv" -) - -// These are SSH message type numbers. They are scattered around several -// documents but many were taken from [SSH-PARAMETERS]. -const ( - msgIgnore = 2 - msgUnimplemented = 3 - msgDebug = 4 - msgNewKeys = 21 - - // Standard authentication messages - msgUserAuthSuccess = 52 - msgUserAuthBanner = 53 -) - -// SSH messages: -// -// These structures mirror the wire format of the corresponding SSH messages. -// They are marshaled using reflection with the marshal and unmarshal functions -// in this file. The only wrinkle is that a final member of type []byte with a -// ssh tag of "rest" receives the remainder of a packet when unmarshaling. - -// See RFC 4253, section 11.1. -const msgDisconnect = 1 - -// disconnectMsg is the message that signals a disconnect. It is also -// the error type returned from mux.Wait() -type disconnectMsg struct { - Reason uint32 `sshtype:"1"` - Message string - Language string -} - -func (d *disconnectMsg) Error() string { - return fmt.Sprintf("ssh: disconnect reason %d: %s", d.Reason, d.Message) -} - -// See RFC 4253, section 7.1. -const msgKexInit = 20 - -type kexInitMsg struct { - Cookie [16]byte `sshtype:"20"` - KexAlgos []string - ServerHostKeyAlgos []string - CiphersClientServer []string - CiphersServerClient []string - MACsClientServer []string - MACsServerClient []string - CompressionClientServer []string - CompressionServerClient []string - LanguagesClientServer []string - LanguagesServerClient []string - FirstKexFollows bool - Reserved uint32 -} - -// See RFC 4253, section 8. - -// Diffie-Helman -const msgKexDHInit = 30 - -type kexDHInitMsg struct { - X *big.Int `sshtype:"30"` -} - -const msgKexECDHInit = 30 - -type kexECDHInitMsg struct { - ClientPubKey []byte `sshtype:"30"` -} - -const msgKexECDHReply = 31 - -type kexECDHReplyMsg struct { - HostKey []byte `sshtype:"31"` - EphemeralPubKey []byte - Signature []byte -} - -const msgKexDHReply = 31 - -type kexDHReplyMsg struct { - HostKey []byte `sshtype:"31"` - Y *big.Int - Signature []byte -} - -// See RFC 4253, section 10. -const msgServiceRequest = 5 - -type serviceRequestMsg struct { - Service string `sshtype:"5"` -} - -// See RFC 4253, section 10. -const msgServiceAccept = 6 - -type serviceAcceptMsg struct { - Service string `sshtype:"6"` -} - -// See RFC 4252, section 5. -const msgUserAuthRequest = 50 - -type userAuthRequestMsg struct { - User string `sshtype:"50"` - Service string - Method string - Payload []byte `ssh:"rest"` -} - -// See RFC 4252, section 5.1 -const msgUserAuthFailure = 51 - -type userAuthFailureMsg struct { - Methods []string `sshtype:"51"` - PartialSuccess bool -} - -// See RFC 4256, section 3.2 -const msgUserAuthInfoRequest = 60 -const msgUserAuthInfoResponse = 61 - -type userAuthInfoRequestMsg struct { - User string `sshtype:"60"` - Instruction string - DeprecatedLanguage string - NumPrompts uint32 - Prompts []byte `ssh:"rest"` -} - -// See RFC 4254, section 5.1. -const msgChannelOpen = 90 - -type channelOpenMsg struct { - ChanType string `sshtype:"90"` - PeersId uint32 - PeersWindow uint32 - MaxPacketSize uint32 - TypeSpecificData []byte `ssh:"rest"` -} - -const msgChannelExtendedData = 95 -const msgChannelData = 94 - -// See RFC 4254, section 5.1. -const msgChannelOpenConfirm = 91 - -type channelOpenConfirmMsg struct { - PeersId uint32 `sshtype:"91"` - MyId uint32 - MyWindow uint32 - MaxPacketSize uint32 - TypeSpecificData []byte `ssh:"rest"` -} - -// See RFC 4254, section 5.1. -const msgChannelOpenFailure = 92 - -type channelOpenFailureMsg struct { - PeersId uint32 `sshtype:"92"` - Reason RejectionReason - Message string - Language string -} - -const msgChannelRequest = 98 - -type channelRequestMsg struct { - PeersId uint32 `sshtype:"98"` - Request string - WantReply bool - RequestSpecificData []byte `ssh:"rest"` -} - -// See RFC 4254, section 5.4. -const msgChannelSuccess = 99 - -type channelRequestSuccessMsg struct { - PeersId uint32 `sshtype:"99"` -} - -// See RFC 4254, section 5.4. -const msgChannelFailure = 100 - -type channelRequestFailureMsg struct { - PeersId uint32 `sshtype:"100"` -} - -// See RFC 4254, section 5.3 -const msgChannelClose = 97 - -type channelCloseMsg struct { - PeersId uint32 `sshtype:"97"` -} - -// See RFC 4254, section 5.3 -const msgChannelEOF = 96 - -type channelEOFMsg struct { - PeersId uint32 `sshtype:"96"` -} - -// See RFC 4254, section 4 -const msgGlobalRequest = 80 - -type globalRequestMsg struct { - Type string `sshtype:"80"` - WantReply bool - Data []byte `ssh:"rest"` -} - -// See RFC 4254, section 4 -const msgRequestSuccess = 81 - -type globalRequestSuccessMsg struct { - Data []byte `ssh:"rest" sshtype:"81"` -} - -// See RFC 4254, section 4 -const msgRequestFailure = 82 - -type globalRequestFailureMsg struct { - Data []byte `ssh:"rest" sshtype:"82"` -} - -// See RFC 4254, section 5.2 -const msgChannelWindowAdjust = 93 - -type windowAdjustMsg struct { - PeersId uint32 `sshtype:"93"` - AdditionalBytes uint32 -} - -// See RFC 4252, section 7 -const msgUserAuthPubKeyOk = 60 - -type userAuthPubKeyOkMsg struct { - Algo string `sshtype:"60"` - PubKey []byte -} - -// typeTag returns the type byte for the given type. The type should -// be struct. -func typeTag(structType reflect.Type) byte { - var tag byte - var tagStr string - tagStr = structType.Field(0).Tag.Get("sshtype") - i, err := strconv.Atoi(tagStr) - if err == nil { - tag = byte(i) - } - return tag -} - -func fieldError(t reflect.Type, field int, problem string) error { - if problem != "" { - problem = ": " + problem - } - return fmt.Errorf("ssh: unmarshal error for field %s of type %s%s", t.Field(field).Name, t.Name(), problem) -} - -var errShortRead = errors.New("ssh: short read") - -// Unmarshal parses data in SSH wire format into a structure. The out -// argument should be a pointer to struct. If the first member of the -// struct has the "sshtype" tag set to a number in decimal, the packet -// must start that number. In case of error, Unmarshal returns a -// ParseError or UnexpectedMessageError. -func Unmarshal(data []byte, out interface{}) error { - v := reflect.ValueOf(out).Elem() - structType := v.Type() - expectedType := typeTag(structType) - if len(data) == 0 { - return parseError(expectedType) - } - if expectedType > 0 { - if data[0] != expectedType { - return unexpectedMessageError(expectedType, data[0]) - } - data = data[1:] - } - - var ok bool - for i := 0; i < v.NumField(); i++ { - field := v.Field(i) - t := field.Type() - switch t.Kind() { - case reflect.Bool: - if len(data) < 1 { - return errShortRead - } - field.SetBool(data[0] != 0) - data = data[1:] - case reflect.Array: - if t.Elem().Kind() != reflect.Uint8 { - return fieldError(structType, i, "array of unsupported type") - } - if len(data) < t.Len() { - return errShortRead - } - for j, n := 0, t.Len(); j < n; j++ { - field.Index(j).Set(reflect.ValueOf(data[j])) - } - data = data[t.Len():] - case reflect.Uint64: - var u64 uint64 - if u64, data, ok = parseUint64(data); !ok { - return errShortRead - } - field.SetUint(u64) - case reflect.Uint32: - var u32 uint32 - if u32, data, ok = parseUint32(data); !ok { - return errShortRead - } - field.SetUint(uint64(u32)) - case reflect.Uint8: - if len(data) < 1 { - return errShortRead - } - field.SetUint(uint64(data[0])) - data = data[1:] - case reflect.String: - var s []byte - if s, data, ok = parseString(data); !ok { - return fieldError(structType, i, "") - } - field.SetString(string(s)) - case reflect.Slice: - switch t.Elem().Kind() { - case reflect.Uint8: - if structType.Field(i).Tag.Get("ssh") == "rest" { - field.Set(reflect.ValueOf(data)) - data = nil - } else { - var s []byte - if s, data, ok = parseString(data); !ok { - return errShortRead - } - field.Set(reflect.ValueOf(s)) - } - case reflect.String: - var nl []string - if nl, data, ok = parseNameList(data); !ok { - return errShortRead - } - field.Set(reflect.ValueOf(nl)) - default: - return fieldError(structType, i, "slice of unsupported type") - } - case reflect.Ptr: - if t == bigIntType { - var n *big.Int - if n, data, ok = parseInt(data); !ok { - return errShortRead - } - field.Set(reflect.ValueOf(n)) - } else { - return fieldError(structType, i, "pointer to unsupported type") - } - default: - return fieldError(structType, i, "unsupported type") - } - } - - if len(data) != 0 { - return parseError(expectedType) - } - - return nil -} - -// Marshal serializes the message in msg to SSH wire format. The msg -// argument should be a struct or pointer to struct. If the first -// member has the "sshtype" tag set to a number in decimal, that -// number is prepended to the result. If the last of member has the -// "ssh" tag set to "rest", its contents are appended to the output. -func Marshal(msg interface{}) []byte { - out := make([]byte, 0, 64) - return marshalStruct(out, msg) -} - -func marshalStruct(out []byte, msg interface{}) []byte { - v := reflect.Indirect(reflect.ValueOf(msg)) - msgType := typeTag(v.Type()) - if msgType > 0 { - out = append(out, msgType) - } - - for i, n := 0, v.NumField(); i < n; i++ { - field := v.Field(i) - switch t := field.Type(); t.Kind() { - case reflect.Bool: - var v uint8 - if field.Bool() { - v = 1 - } - out = append(out, v) - case reflect.Array: - if t.Elem().Kind() != reflect.Uint8 { - panic(fmt.Sprintf("array of non-uint8 in field %d: %T", i, field.Interface())) - } - for j, l := 0, t.Len(); j < l; j++ { - out = append(out, uint8(field.Index(j).Uint())) - } - case reflect.Uint32: - out = appendU32(out, uint32(field.Uint())) - case reflect.Uint64: - out = appendU64(out, uint64(field.Uint())) - case reflect.Uint8: - out = append(out, uint8(field.Uint())) - case reflect.String: - s := field.String() - out = appendInt(out, len(s)) - out = append(out, s...) - case reflect.Slice: - switch t.Elem().Kind() { - case reflect.Uint8: - if v.Type().Field(i).Tag.Get("ssh") != "rest" { - out = appendInt(out, field.Len()) - } - out = append(out, field.Bytes()...) - case reflect.String: - offset := len(out) - out = appendU32(out, 0) - if n := field.Len(); n > 0 { - for j := 0; j < n; j++ { - f := field.Index(j) - if j != 0 { - out = append(out, ',') - } - out = append(out, f.String()...) - } - // overwrite length value - binary.BigEndian.PutUint32(out[offset:], uint32(len(out)-offset-4)) - } - default: - panic(fmt.Sprintf("slice of unknown type in field %d: %T", i, field.Interface())) - } - case reflect.Ptr: - if t == bigIntType { - var n *big.Int - nValue := reflect.ValueOf(&n) - nValue.Elem().Set(field) - needed := intLength(n) - oldLength := len(out) - - if cap(out)-len(out) < needed { - newOut := make([]byte, len(out), 2*(len(out)+needed)) - copy(newOut, out) - out = newOut - } - out = out[:oldLength+needed] - marshalInt(out[oldLength:], n) - } else { - panic(fmt.Sprintf("pointer to unknown type in field %d: %T", i, field.Interface())) - } - } - } - - return out -} - -var bigOne = big.NewInt(1) - -func parseString(in []byte) (out, rest []byte, ok bool) { - if len(in) < 4 { - return - } - length := binary.BigEndian.Uint32(in) - in = in[4:] - if uint32(len(in)) < length { - return - } - out = in[:length] - rest = in[length:] - ok = true - return -} - -var ( - comma = []byte{','} - emptyNameList = []string{} -) - -func parseNameList(in []byte) (out []string, rest []byte, ok bool) { - contents, rest, ok := parseString(in) - if !ok { - return - } - if len(contents) == 0 { - out = emptyNameList - return - } - parts := bytes.Split(contents, comma) - out = make([]string, len(parts)) - for i, part := range parts { - out[i] = string(part) - } - return -} - -func parseInt(in []byte) (out *big.Int, rest []byte, ok bool) { - contents, rest, ok := parseString(in) - if !ok { - return - } - out = new(big.Int) - - if len(contents) > 0 && contents[0]&0x80 == 0x80 { - // This is a negative number - notBytes := make([]byte, len(contents)) - for i := range notBytes { - notBytes[i] = ^contents[i] - } - out.SetBytes(notBytes) - out.Add(out, bigOne) - out.Neg(out) - } else { - // Positive number - out.SetBytes(contents) - } - ok = true - return -} - -func parseUint32(in []byte) (uint32, []byte, bool) { - if len(in) < 4 { - return 0, nil, false - } - return binary.BigEndian.Uint32(in), in[4:], true -} - -func parseUint64(in []byte) (uint64, []byte, bool) { - if len(in) < 8 { - return 0, nil, false - } - return binary.BigEndian.Uint64(in), in[8:], true -} - -func intLength(n *big.Int) int { - length := 4 /* length bytes */ - if n.Sign() < 0 { - nMinus1 := new(big.Int).Neg(n) - nMinus1.Sub(nMinus1, bigOne) - bitLen := nMinus1.BitLen() - if bitLen%8 == 0 { - // The number will need 0xff padding - length++ - } - length += (bitLen + 7) / 8 - } else if n.Sign() == 0 { - // A zero is the zero length string - } else { - bitLen := n.BitLen() - if bitLen%8 == 0 { - // The number will need 0x00 padding - length++ - } - length += (bitLen + 7) / 8 - } - - return length -} - -func marshalUint32(to []byte, n uint32) []byte { - binary.BigEndian.PutUint32(to, n) - return to[4:] -} - -func marshalUint64(to []byte, n uint64) []byte { - binary.BigEndian.PutUint64(to, n) - return to[8:] -} - -func marshalInt(to []byte, n *big.Int) []byte { - lengthBytes := to - to = to[4:] - length := 0 - - if n.Sign() < 0 { - // A negative number has to be converted to two's-complement - // form. So we'll subtract 1 and invert. If the - // most-significant-bit isn't set then we'll need to pad the - // beginning with 0xff in order to keep the number negative. - nMinus1 := new(big.Int).Neg(n) - nMinus1.Sub(nMinus1, bigOne) - bytes := nMinus1.Bytes() - for i := range bytes { - bytes[i] ^= 0xff - } - if len(bytes) == 0 || bytes[0]&0x80 == 0 { - to[0] = 0xff - to = to[1:] - length++ - } - nBytes := copy(to, bytes) - to = to[nBytes:] - length += nBytes - } else if n.Sign() == 0 { - // A zero is the zero length string - } else { - bytes := n.Bytes() - if len(bytes) > 0 && bytes[0]&0x80 != 0 { - // We'll have to pad this with a 0x00 in order to - // stop it looking like a negative number. - to[0] = 0 - to = to[1:] - length++ - } - nBytes := copy(to, bytes) - to = to[nBytes:] - length += nBytes - } - - lengthBytes[0] = byte(length >> 24) - lengthBytes[1] = byte(length >> 16) - lengthBytes[2] = byte(length >> 8) - lengthBytes[3] = byte(length) - return to -} - -func writeInt(w io.Writer, n *big.Int) { - length := intLength(n) - buf := make([]byte, length) - marshalInt(buf, n) - w.Write(buf) -} - -func writeString(w io.Writer, s []byte) { - var lengthBytes [4]byte - lengthBytes[0] = byte(len(s) >> 24) - lengthBytes[1] = byte(len(s) >> 16) - lengthBytes[2] = byte(len(s) >> 8) - lengthBytes[3] = byte(len(s)) - w.Write(lengthBytes[:]) - w.Write(s) -} - -func stringLength(n int) int { - return 4 + n -} - -func marshalString(to []byte, s []byte) []byte { - to[0] = byte(len(s) >> 24) - to[1] = byte(len(s) >> 16) - to[2] = byte(len(s) >> 8) - to[3] = byte(len(s)) - to = to[4:] - copy(to, s) - return to[len(s):] -} - -var bigIntType = reflect.TypeOf((*big.Int)(nil)) - -// Decode a packet into its corresponding message. -func decode(packet []byte) (interface{}, error) { - var msg interface{} - switch packet[0] { - case msgDisconnect: - msg = new(disconnectMsg) - case msgServiceRequest: - msg = new(serviceRequestMsg) - case msgServiceAccept: - msg = new(serviceAcceptMsg) - case msgKexInit: - msg = new(kexInitMsg) - case msgKexDHInit: - msg = new(kexDHInitMsg) - case msgKexDHReply: - msg = new(kexDHReplyMsg) - case msgUserAuthRequest: - msg = new(userAuthRequestMsg) - case msgUserAuthFailure: - msg = new(userAuthFailureMsg) - case msgUserAuthPubKeyOk: - msg = new(userAuthPubKeyOkMsg) - case msgGlobalRequest: - msg = new(globalRequestMsg) - case msgRequestSuccess: - msg = new(globalRequestSuccessMsg) - case msgRequestFailure: - msg = new(globalRequestFailureMsg) - case msgChannelOpen: - msg = new(channelOpenMsg) - case msgChannelOpenConfirm: - msg = new(channelOpenConfirmMsg) - case msgChannelOpenFailure: - msg = new(channelOpenFailureMsg) - case msgChannelWindowAdjust: - msg = new(windowAdjustMsg) - case msgChannelEOF: - msg = new(channelEOFMsg) - case msgChannelClose: - msg = new(channelCloseMsg) - case msgChannelRequest: - msg = new(channelRequestMsg) - case msgChannelSuccess: - msg = new(channelRequestSuccessMsg) - case msgChannelFailure: - msg = new(channelRequestFailureMsg) - default: - return nil, unexpectedMessageError(0, packet[0]) - } - if err := Unmarshal(packet, msg); err != nil { - return nil, err - } - return msg, nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/messages_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/messages_test.go deleted file mode 100644 index 955b5127..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/messages_test.go +++ /dev/null @@ -1,254 +0,0 @@ -// 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 ssh - -import ( - "bytes" - "math/big" - "math/rand" - "reflect" - "testing" - "testing/quick" -) - -var intLengthTests = []struct { - val, length int -}{ - {0, 4 + 0}, - {1, 4 + 1}, - {127, 4 + 1}, - {128, 4 + 2}, - {-1, 4 + 1}, -} - -func TestIntLength(t *testing.T) { - for _, test := range intLengthTests { - v := new(big.Int).SetInt64(int64(test.val)) - length := intLength(v) - if length != test.length { - t.Errorf("For %d, got length %d but expected %d", test.val, length, test.length) - } - } -} - -type msgAllTypes struct { - Bool bool `sshtype:"21"` - Array [16]byte - Uint64 uint64 - Uint32 uint32 - Uint8 uint8 - String string - Strings []string - Bytes []byte - Int *big.Int - Rest []byte `ssh:"rest"` -} - -func (t *msgAllTypes) Generate(rand *rand.Rand, size int) reflect.Value { - m := &msgAllTypes{} - m.Bool = rand.Intn(2) == 1 - randomBytes(m.Array[:], rand) - m.Uint64 = uint64(rand.Int63n(1<<63 - 1)) - m.Uint32 = uint32(rand.Intn((1 << 31) - 1)) - m.Uint8 = uint8(rand.Intn(1 << 8)) - m.String = string(m.Array[:]) - m.Strings = randomNameList(rand) - m.Bytes = m.Array[:] - m.Int = randomInt(rand) - m.Rest = m.Array[:] - return reflect.ValueOf(m) -} - -func TestMarshalUnmarshal(t *testing.T) { - rand := rand.New(rand.NewSource(0)) - iface := &msgAllTypes{} - ty := reflect.ValueOf(iface).Type() - - n := 100 - if testing.Short() { - n = 5 - } - for j := 0; j < n; j++ { - v, ok := quick.Value(ty, rand) - if !ok { - t.Errorf("failed to create value") - break - } - - m1 := v.Elem().Interface() - m2 := iface - - marshaled := Marshal(m1) - if err := Unmarshal(marshaled, m2); err != nil { - t.Errorf("Unmarshal %#v: %s", m1, err) - break - } - - if !reflect.DeepEqual(v.Interface(), m2) { - t.Errorf("got: %#v\nwant:%#v\n%x", m2, m1, marshaled) - break - } - } -} - -func TestUnmarshalEmptyPacket(t *testing.T) { - var b []byte - var m channelRequestSuccessMsg - if err := Unmarshal(b, &m); err == nil { - t.Fatalf("unmarshal of empty slice succeeded") - } -} - -func TestUnmarshalUnexpectedPacket(t *testing.T) { - type S struct { - I uint32 `sshtype:"43"` - S string - B bool - } - - s := S{11, "hello", true} - packet := Marshal(s) - packet[0] = 42 - roundtrip := S{} - err := Unmarshal(packet, &roundtrip) - if err == nil { - t.Fatal("expected error, not nil") - } -} - -func TestMarshalPtr(t *testing.T) { - s := struct { - S string - }{"hello"} - - m1 := Marshal(s) - m2 := Marshal(&s) - if !bytes.Equal(m1, m2) { - t.Errorf("got %q, want %q for marshaled pointer", m2, m1) - } -} - -func TestBareMarshalUnmarshal(t *testing.T) { - type S struct { - I uint32 - S string - B bool - } - - s := S{42, "hello", true} - packet := Marshal(s) - roundtrip := S{} - Unmarshal(packet, &roundtrip) - - if !reflect.DeepEqual(s, roundtrip) { - t.Errorf("got %#v, want %#v", roundtrip, s) - } -} - -func TestBareMarshal(t *testing.T) { - type S2 struct { - I uint32 - } - s := S2{42} - packet := Marshal(s) - i, rest, ok := parseUint32(packet) - if len(rest) > 0 || !ok { - t.Errorf("parseInt(%q): parse error", packet) - } - if i != s.I { - t.Errorf("got %d, want %d", i, s.I) - } -} - -func TestUnmarshalShortKexInitPacket(t *testing.T) { - // This used to panic. - // Issue 11348 - packet := []byte{0x14, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xff, 0xff, 0xff, 0xff} - kim := &kexInitMsg{} - if err := Unmarshal(packet, kim); err == nil { - t.Error("truncated packet unmarshaled without error") - } -} - -func randomBytes(out []byte, rand *rand.Rand) { - for i := 0; i < len(out); i++ { - out[i] = byte(rand.Int31()) - } -} - -func randomNameList(rand *rand.Rand) []string { - ret := make([]string, rand.Int31()&15) - for i := range ret { - s := make([]byte, 1+(rand.Int31()&15)) - for j := range s { - s[j] = 'a' + uint8(rand.Int31()&15) - } - ret[i] = string(s) - } - return ret -} - -func randomInt(rand *rand.Rand) *big.Int { - return new(big.Int).SetInt64(int64(int32(rand.Uint32()))) -} - -func (*kexInitMsg) Generate(rand *rand.Rand, size int) reflect.Value { - ki := &kexInitMsg{} - randomBytes(ki.Cookie[:], rand) - ki.KexAlgos = randomNameList(rand) - ki.ServerHostKeyAlgos = randomNameList(rand) - ki.CiphersClientServer = randomNameList(rand) - ki.CiphersServerClient = randomNameList(rand) - ki.MACsClientServer = randomNameList(rand) - ki.MACsServerClient = randomNameList(rand) - ki.CompressionClientServer = randomNameList(rand) - ki.CompressionServerClient = randomNameList(rand) - ki.LanguagesClientServer = randomNameList(rand) - ki.LanguagesServerClient = randomNameList(rand) - if rand.Int31()&1 == 1 { - ki.FirstKexFollows = true - } - return reflect.ValueOf(ki) -} - -func (*kexDHInitMsg) Generate(rand *rand.Rand, size int) reflect.Value { - dhi := &kexDHInitMsg{} - dhi.X = randomInt(rand) - return reflect.ValueOf(dhi) -} - -var ( - _kexInitMsg = new(kexInitMsg).Generate(rand.New(rand.NewSource(0)), 10).Elem().Interface() - _kexDHInitMsg = new(kexDHInitMsg).Generate(rand.New(rand.NewSource(0)), 10).Elem().Interface() - - _kexInit = Marshal(_kexInitMsg) - _kexDHInit = Marshal(_kexDHInitMsg) -) - -func BenchmarkMarshalKexInitMsg(b *testing.B) { - for i := 0; i < b.N; i++ { - Marshal(_kexInitMsg) - } -} - -func BenchmarkUnmarshalKexInitMsg(b *testing.B) { - m := new(kexInitMsg) - for i := 0; i < b.N; i++ { - Unmarshal(_kexInit, m) - } -} - -func BenchmarkMarshalKexDHInitMsg(b *testing.B) { - for i := 0; i < b.N; i++ { - Marshal(_kexDHInitMsg) - } -} - -func BenchmarkUnmarshalKexDHInitMsg(b *testing.B) { - m := new(kexDHInitMsg) - for i := 0; i < b.N; i++ { - Unmarshal(_kexDHInit, m) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mux.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mux.go deleted file mode 100644 index 321880ad..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mux.go +++ /dev/null @@ -1,356 +0,0 @@ -// 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 ssh - -import ( - "encoding/binary" - "fmt" - "io" - "log" - "sync" - "sync/atomic" -) - -// debugMux, if set, causes messages in the connection protocol to be -// logged. -const debugMux = false - -// chanList is a thread safe channel list. -type chanList struct { - // protects concurrent access to chans - sync.Mutex - - // chans are indexed by the local id of the channel, which the - // other side should send in the PeersId field. - chans []*channel - - // This is a debugging aid: it offsets all IDs by this - // amount. This helps distinguish otherwise identical - // server/client muxes - offset uint32 -} - -// Assigns a channel ID to the given channel. -func (c *chanList) add(ch *channel) uint32 { - c.Lock() - defer c.Unlock() - for i := range c.chans { - if c.chans[i] == nil { - c.chans[i] = ch - return uint32(i) + c.offset - } - } - c.chans = append(c.chans, ch) - return uint32(len(c.chans)-1) + c.offset -} - -// getChan returns the channel for the given ID. -func (c *chanList) getChan(id uint32) *channel { - id -= c.offset - - c.Lock() - defer c.Unlock() - if id < uint32(len(c.chans)) { - return c.chans[id] - } - return nil -} - -func (c *chanList) remove(id uint32) { - id -= c.offset - c.Lock() - if id < uint32(len(c.chans)) { - c.chans[id] = nil - } - c.Unlock() -} - -// dropAll forgets all channels it knows, returning them in a slice. -func (c *chanList) dropAll() []*channel { - c.Lock() - defer c.Unlock() - var r []*channel - - for _, ch := range c.chans { - if ch == nil { - continue - } - r = append(r, ch) - } - c.chans = nil - return r -} - -// mux represents the state for the SSH connection protocol, which -// multiplexes many channels onto a single packet transport. -type mux struct { - conn packetConn - chanList chanList - - incomingChannels chan NewChannel - - globalSentMu sync.Mutex - globalResponses chan interface{} - incomingRequests chan *Request - - errCond *sync.Cond - err error -} - -// When debugging, each new chanList instantiation has a different -// offset. -var globalOff uint32 - -func (m *mux) Wait() error { - m.errCond.L.Lock() - defer m.errCond.L.Unlock() - for m.err == nil { - m.errCond.Wait() - } - return m.err -} - -// newMux returns a mux that runs over the given connection. -func newMux(p packetConn) *mux { - m := &mux{ - conn: p, - incomingChannels: make(chan NewChannel, 16), - globalResponses: make(chan interface{}, 1), - incomingRequests: make(chan *Request, 16), - errCond: newCond(), - } - if debugMux { - m.chanList.offset = atomic.AddUint32(&globalOff, 1) - } - - go m.loop() - return m -} - -func (m *mux) sendMessage(msg interface{}) error { - p := Marshal(msg) - return m.conn.writePacket(p) -} - -func (m *mux) SendRequest(name string, wantReply bool, payload []byte) (bool, []byte, error) { - if wantReply { - m.globalSentMu.Lock() - defer m.globalSentMu.Unlock() - } - - if err := m.sendMessage(globalRequestMsg{ - Type: name, - WantReply: wantReply, - Data: payload, - }); err != nil { - return false, nil, err - } - - if !wantReply { - return false, nil, nil - } - - msg, ok := <-m.globalResponses - if !ok { - return false, nil, io.EOF - } - switch msg := msg.(type) { - case *globalRequestFailureMsg: - return false, msg.Data, nil - case *globalRequestSuccessMsg: - return true, msg.Data, nil - default: - return false, nil, fmt.Errorf("ssh: unexpected response to request: %#v", msg) - } -} - -// ackRequest must be called after processing a global request that -// has WantReply set. -func (m *mux) ackRequest(ok bool, data []byte) error { - if ok { - return m.sendMessage(globalRequestSuccessMsg{Data: data}) - } - return m.sendMessage(globalRequestFailureMsg{Data: data}) -} - -// TODO(hanwen): Disconnect is a transport layer message. We should -// probably send and receive Disconnect somewhere in the transport -// code. - -// Disconnect sends a disconnect message. -func (m *mux) Disconnect(reason uint32, message string) error { - return m.sendMessage(disconnectMsg{ - Reason: reason, - Message: message, - }) -} - -func (m *mux) Close() error { - return m.conn.Close() -} - -// loop runs the connection machine. It will process packets until an -// error is encountered. To synchronize on loop exit, use mux.Wait. -func (m *mux) loop() { - var err error - for err == nil { - err = m.onePacket() - } - - for _, ch := range m.chanList.dropAll() { - ch.close() - } - - close(m.incomingChannels) - close(m.incomingRequests) - close(m.globalResponses) - - m.conn.Close() - - m.errCond.L.Lock() - m.err = err - m.errCond.Broadcast() - m.errCond.L.Unlock() - - if debugMux { - log.Println("loop exit", err) - } -} - -// onePacket reads and processes one packet. -func (m *mux) onePacket() error { - packet, err := m.conn.readPacket() - if err != nil { - return err - } - - if debugMux { - if packet[0] == msgChannelData || packet[0] == msgChannelExtendedData { - log.Printf("decoding(%d): data packet - %d bytes", m.chanList.offset, len(packet)) - } else { - p, _ := decode(packet) - log.Printf("decoding(%d): %d %#v - %d bytes", m.chanList.offset, packet[0], p, len(packet)) - } - } - - switch packet[0] { - case msgNewKeys: - // Ignore notification of key change. - return nil - case msgDisconnect: - return m.handleDisconnect(packet) - case msgChannelOpen: - return m.handleChannelOpen(packet) - case msgGlobalRequest, msgRequestSuccess, msgRequestFailure: - return m.handleGlobalPacket(packet) - } - - // assume a channel packet. - if len(packet) < 5 { - return parseError(packet[0]) - } - id := binary.BigEndian.Uint32(packet[1:]) - ch := m.chanList.getChan(id) - if ch == nil { - return fmt.Errorf("ssh: invalid channel %d", id) - } - - return ch.handlePacket(packet) -} - -func (m *mux) handleDisconnect(packet []byte) error { - var d disconnectMsg - if err := Unmarshal(packet, &d); err != nil { - return err - } - - if debugMux { - log.Printf("caught disconnect: %v", d) - } - return &d -} - -func (m *mux) handleGlobalPacket(packet []byte) error { - msg, err := decode(packet) - if err != nil { - return err - } - - switch msg := msg.(type) { - case *globalRequestMsg: - m.incomingRequests <- &Request{ - Type: msg.Type, - WantReply: msg.WantReply, - Payload: msg.Data, - mux: m, - } - case *globalRequestSuccessMsg, *globalRequestFailureMsg: - m.globalResponses <- msg - default: - panic(fmt.Sprintf("not a global message %#v", msg)) - } - - return nil -} - -// handleChannelOpen schedules a channel to be Accept()ed. -func (m *mux) handleChannelOpen(packet []byte) error { - var msg channelOpenMsg - if err := Unmarshal(packet, &msg); err != nil { - return err - } - - if msg.MaxPacketSize < minPacketLength || msg.MaxPacketSize > 1<<31 { - failMsg := channelOpenFailureMsg{ - PeersId: msg.PeersId, - Reason: ConnectionFailed, - Message: "invalid request", - Language: "en_US.UTF-8", - } - return m.sendMessage(failMsg) - } - - c := m.newChannel(msg.ChanType, channelInbound, msg.TypeSpecificData) - c.remoteId = msg.PeersId - c.maxRemotePayload = msg.MaxPacketSize - c.remoteWin.add(msg.PeersWindow) - m.incomingChannels <- c - return nil -} - -func (m *mux) OpenChannel(chanType string, extra []byte) (Channel, <-chan *Request, error) { - ch, err := m.openChannel(chanType, extra) - if err != nil { - return nil, nil, err - } - - return ch, ch.incomingRequests, nil -} - -func (m *mux) openChannel(chanType string, extra []byte) (*channel, error) { - ch := m.newChannel(chanType, channelOutbound, extra) - - ch.maxIncomingPayload = channelMaxPacket - - open := channelOpenMsg{ - ChanType: chanType, - PeersWindow: ch.myWindow, - MaxPacketSize: ch.maxIncomingPayload, - TypeSpecificData: extra, - PeersId: ch.localId, - } - if err := m.sendMessage(open); err != nil { - return nil, err - } - - switch msg := (<-ch.msg).(type) { - case *channelOpenConfirmMsg: - return ch, nil - case *channelOpenFailureMsg: - return nil, &OpenChannelError{msg.Reason, msg.Message} - default: - return nil, fmt.Errorf("ssh: unexpected packet in response to channel open: %T", msg) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mux_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mux_test.go deleted file mode 100644 index 52303896..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/mux_test.go +++ /dev/null @@ -1,525 +0,0 @@ -// 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 ssh - -import ( - "io" - "io/ioutil" - "sync" - "testing" -) - -func muxPair() (*mux, *mux) { - a, b := memPipe() - - s := newMux(a) - c := newMux(b) - - return s, c -} - -// Returns both ends of a channel, and the mux for the the 2nd -// channel. -func channelPair(t *testing.T) (*channel, *channel, *mux) { - c, s := muxPair() - - res := make(chan *channel, 1) - go func() { - newCh, ok := <-s.incomingChannels - if !ok { - t.Fatalf("No incoming channel") - } - if newCh.ChannelType() != "chan" { - t.Fatalf("got type %q want chan", newCh.ChannelType()) - } - ch, _, err := newCh.Accept() - if err != nil { - t.Fatalf("Accept %v", err) - } - res <- ch.(*channel) - }() - - ch, err := c.openChannel("chan", nil) - if err != nil { - t.Fatalf("OpenChannel: %v", err) - } - - return <-res, ch, c -} - -// Test that stderr and stdout can be addressed from different -// goroutines. This is intended for use with the race detector. -func TestMuxChannelExtendedThreadSafety(t *testing.T) { - writer, reader, mux := channelPair(t) - defer writer.Close() - defer reader.Close() - defer mux.Close() - - var wr, rd sync.WaitGroup - magic := "hello world" - - wr.Add(2) - go func() { - io.WriteString(writer, magic) - wr.Done() - }() - go func() { - io.WriteString(writer.Stderr(), magic) - wr.Done() - }() - - rd.Add(2) - go func() { - c, err := ioutil.ReadAll(reader) - if string(c) != magic { - t.Fatalf("stdout read got %q, want %q (error %s)", c, magic, err) - } - rd.Done() - }() - go func() { - c, err := ioutil.ReadAll(reader.Stderr()) - if string(c) != magic { - t.Fatalf("stderr read got %q, want %q (error %s)", c, magic, err) - } - rd.Done() - }() - - wr.Wait() - writer.CloseWrite() - rd.Wait() -} - -func TestMuxReadWrite(t *testing.T) { - s, c, mux := channelPair(t) - defer s.Close() - defer c.Close() - defer mux.Close() - - magic := "hello world" - magicExt := "hello stderr" - go func() { - _, err := s.Write([]byte(magic)) - if err != nil { - t.Fatalf("Write: %v", err) - } - _, err = s.Extended(1).Write([]byte(magicExt)) - if err != nil { - t.Fatalf("Write: %v", err) - } - err = s.Close() - if err != nil { - t.Fatalf("Close: %v", err) - } - }() - - var buf [1024]byte - n, err := c.Read(buf[:]) - if err != nil { - t.Fatalf("server Read: %v", err) - } - got := string(buf[:n]) - if got != magic { - t.Fatalf("server: got %q want %q", got, magic) - } - - n, err = c.Extended(1).Read(buf[:]) - if err != nil { - t.Fatalf("server Read: %v", err) - } - - got = string(buf[:n]) - if got != magicExt { - t.Fatalf("server: got %q want %q", got, magic) - } -} - -func TestMuxChannelOverflow(t *testing.T) { - reader, writer, mux := channelPair(t) - defer reader.Close() - defer writer.Close() - defer mux.Close() - - wDone := make(chan int, 1) - go func() { - if _, err := writer.Write(make([]byte, channelWindowSize)); err != nil { - t.Errorf("could not fill window: %v", err) - } - writer.Write(make([]byte, 1)) - wDone <- 1 - }() - writer.remoteWin.waitWriterBlocked() - - // Send 1 byte. - packet := make([]byte, 1+4+4+1) - packet[0] = msgChannelData - marshalUint32(packet[1:], writer.remoteId) - marshalUint32(packet[5:], uint32(1)) - packet[9] = 42 - - if err := writer.mux.conn.writePacket(packet); err != nil { - t.Errorf("could not send packet") - } - if _, err := reader.SendRequest("hello", true, nil); err == nil { - t.Errorf("SendRequest succeeded.") - } - <-wDone -} - -func TestMuxChannelCloseWriteUnblock(t *testing.T) { - reader, writer, mux := channelPair(t) - defer reader.Close() - defer writer.Close() - defer mux.Close() - - wDone := make(chan int, 1) - go func() { - if _, err := writer.Write(make([]byte, channelWindowSize)); err != nil { - t.Errorf("could not fill window: %v", err) - } - if _, err := writer.Write(make([]byte, 1)); err != io.EOF { - t.Errorf("got %v, want EOF for unblock write", err) - } - wDone <- 1 - }() - - writer.remoteWin.waitWriterBlocked() - reader.Close() - <-wDone -} - -func TestMuxConnectionCloseWriteUnblock(t *testing.T) { - reader, writer, mux := channelPair(t) - defer reader.Close() - defer writer.Close() - defer mux.Close() - - wDone := make(chan int, 1) - go func() { - if _, err := writer.Write(make([]byte, channelWindowSize)); err != nil { - t.Errorf("could not fill window: %v", err) - } - if _, err := writer.Write(make([]byte, 1)); err != io.EOF { - t.Errorf("got %v, want EOF for unblock write", err) - } - wDone <- 1 - }() - - writer.remoteWin.waitWriterBlocked() - mux.Close() - <-wDone -} - -func TestMuxReject(t *testing.T) { - client, server := muxPair() - defer server.Close() - defer client.Close() - - go func() { - ch, ok := <-server.incomingChannels - if !ok { - t.Fatalf("Accept") - } - if ch.ChannelType() != "ch" || string(ch.ExtraData()) != "extra" { - t.Fatalf("unexpected channel: %q, %q", ch.ChannelType(), ch.ExtraData()) - } - ch.Reject(RejectionReason(42), "message") - }() - - ch, err := client.openChannel("ch", []byte("extra")) - if ch != nil { - t.Fatal("openChannel not rejected") - } - - ocf, ok := err.(*OpenChannelError) - if !ok { - t.Errorf("got %#v want *OpenChannelError", err) - } else if ocf.Reason != 42 || ocf.Message != "message" { - t.Errorf("got %#v, want {Reason: 42, Message: %q}", ocf, "message") - } - - want := "ssh: rejected: unknown reason 42 (message)" - if err.Error() != want { - t.Errorf("got %q, want %q", err.Error(), want) - } -} - -func TestMuxChannelRequest(t *testing.T) { - client, server, mux := channelPair(t) - defer server.Close() - defer client.Close() - defer mux.Close() - - var received int - var wg sync.WaitGroup - wg.Add(1) - go func() { - for r := range server.incomingRequests { - received++ - r.Reply(r.Type == "yes", nil) - } - wg.Done() - }() - _, err := client.SendRequest("yes", false, nil) - if err != nil { - t.Fatalf("SendRequest: %v", err) - } - ok, err := client.SendRequest("yes", true, nil) - if err != nil { - t.Fatalf("SendRequest: %v", err) - } - - if !ok { - t.Errorf("SendRequest(yes): %v", ok) - - } - - ok, err = client.SendRequest("no", true, nil) - if err != nil { - t.Fatalf("SendRequest: %v", err) - } - if ok { - t.Errorf("SendRequest(no): %v", ok) - - } - - client.Close() - wg.Wait() - - if received != 3 { - t.Errorf("got %d requests, want %d", received, 3) - } -} - -func TestMuxGlobalRequest(t *testing.T) { - clientMux, serverMux := muxPair() - defer serverMux.Close() - defer clientMux.Close() - - var seen bool - go func() { - for r := range serverMux.incomingRequests { - seen = seen || r.Type == "peek" - if r.WantReply { - err := r.Reply(r.Type == "yes", - append([]byte(r.Type), r.Payload...)) - if err != nil { - t.Errorf("AckRequest: %v", err) - } - } - } - }() - - _, _, err := clientMux.SendRequest("peek", false, nil) - if err != nil { - t.Errorf("SendRequest: %v", err) - } - - ok, data, err := clientMux.SendRequest("yes", true, []byte("a")) - if !ok || string(data) != "yesa" || err != nil { - t.Errorf("SendRequest(\"yes\", true, \"a\"): %v %v %v", - ok, data, err) - } - if ok, data, err := clientMux.SendRequest("yes", true, []byte("a")); !ok || string(data) != "yesa" || err != nil { - t.Errorf("SendRequest(\"yes\", true, \"a\"): %v %v %v", - ok, data, err) - } - - if ok, data, err := clientMux.SendRequest("no", true, []byte("a")); ok || string(data) != "noa" || err != nil { - t.Errorf("SendRequest(\"no\", true, \"a\"): %v %v %v", - ok, data, err) - } - - clientMux.Disconnect(0, "") - if !seen { - t.Errorf("never saw 'peek' request") - } -} - -func TestMuxGlobalRequestUnblock(t *testing.T) { - clientMux, serverMux := muxPair() - defer serverMux.Close() - defer clientMux.Close() - - result := make(chan error, 1) - go func() { - _, _, err := clientMux.SendRequest("hello", true, nil) - result <- err - }() - - <-serverMux.incomingRequests - serverMux.conn.Close() - err := <-result - - if err != io.EOF { - t.Errorf("want EOF, got %v", io.EOF) - } -} - -func TestMuxChannelRequestUnblock(t *testing.T) { - a, b, connB := channelPair(t) - defer a.Close() - defer b.Close() - defer connB.Close() - - result := make(chan error, 1) - go func() { - _, err := a.SendRequest("hello", true, nil) - result <- err - }() - - <-b.incomingRequests - connB.conn.Close() - err := <-result - - if err != io.EOF { - t.Errorf("want EOF, got %v", err) - } -} - -func TestMuxDisconnect(t *testing.T) { - a, b := muxPair() - defer a.Close() - defer b.Close() - - go func() { - for r := range b.incomingRequests { - r.Reply(true, nil) - } - }() - - a.Disconnect(42, "whatever") - ok, _, err := a.SendRequest("hello", true, nil) - if ok || err == nil { - t.Errorf("got reply after disconnecting") - } - err = b.Wait() - if d, ok := err.(*disconnectMsg); !ok || d.Reason != 42 { - t.Errorf("got %#v, want disconnectMsg{Reason:42}", err) - } -} - -func TestMuxCloseChannel(t *testing.T) { - r, w, mux := channelPair(t) - defer mux.Close() - defer r.Close() - defer w.Close() - - result := make(chan error, 1) - go func() { - var b [1024]byte - _, err := r.Read(b[:]) - result <- err - }() - if err := w.Close(); err != nil { - t.Errorf("w.Close: %v", err) - } - - if _, err := w.Write([]byte("hello")); err != io.EOF { - t.Errorf("got err %v, want io.EOF after Close", err) - } - - if err := <-result; err != io.EOF { - t.Errorf("got %v (%T), want io.EOF", err, err) - } -} - -func TestMuxCloseWriteChannel(t *testing.T) { - r, w, mux := channelPair(t) - defer mux.Close() - - result := make(chan error, 1) - go func() { - var b [1024]byte - _, err := r.Read(b[:]) - result <- err - }() - if err := w.CloseWrite(); err != nil { - t.Errorf("w.CloseWrite: %v", err) - } - - if _, err := w.Write([]byte("hello")); err != io.EOF { - t.Errorf("got err %v, want io.EOF after CloseWrite", err) - } - - if err := <-result; err != io.EOF { - t.Errorf("got %v (%T), want io.EOF", err, err) - } -} - -func TestMuxInvalidRecord(t *testing.T) { - a, b := muxPair() - defer a.Close() - defer b.Close() - - packet := make([]byte, 1+4+4+1) - packet[0] = msgChannelData - marshalUint32(packet[1:], 29348723 /* invalid channel id */) - marshalUint32(packet[5:], 1) - packet[9] = 42 - - a.conn.writePacket(packet) - go a.SendRequest("hello", false, nil) - // 'a' wrote an invalid packet, so 'b' has exited. - req, ok := <-b.incomingRequests - if ok { - t.Errorf("got request %#v after receiving invalid packet", req) - } -} - -func TestZeroWindowAdjust(t *testing.T) { - a, b, mux := channelPair(t) - defer a.Close() - defer b.Close() - defer mux.Close() - - go func() { - io.WriteString(a, "hello") - // bogus adjust. - a.sendMessage(windowAdjustMsg{}) - io.WriteString(a, "world") - a.Close() - }() - - want := "helloworld" - c, _ := ioutil.ReadAll(b) - if string(c) != want { - t.Errorf("got %q want %q", c, want) - } -} - -func TestMuxMaxPacketSize(t *testing.T) { - a, b, mux := channelPair(t) - defer a.Close() - defer b.Close() - defer mux.Close() - - large := make([]byte, a.maxRemotePayload+1) - packet := make([]byte, 1+4+4+1+len(large)) - packet[0] = msgChannelData - marshalUint32(packet[1:], a.remoteId) - marshalUint32(packet[5:], uint32(len(large))) - packet[9] = 42 - - if err := a.mux.conn.writePacket(packet); err != nil { - t.Errorf("could not send packet") - } - - go a.SendRequest("hello", false, nil) - - _, ok := <-b.incomingRequests - if ok { - t.Errorf("connection still alive after receiving large packet.") - } -} - -// Don't ship code with debug=true. -func TestDebug(t *testing.T) { - if debugMux { - t.Error("mux debug switched on") - } - if debugHandshake { - t.Error("handshake debug switched on") - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/server.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/server.go deleted file mode 100644 index 4781eb78..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/server.go +++ /dev/null @@ -1,495 +0,0 @@ -// 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 ssh - -import ( - "bytes" - "errors" - "fmt" - "io" - "net" -) - -// The Permissions type holds fine-grained permissions that are -// specific to a user or a specific authentication method for a -// user. Permissions, except for "source-address", must be enforced in -// the server application layer, after successful authentication. The -// Permissions are passed on in ServerConn so a server implementation -// can honor them. -type Permissions struct { - // Critical options restrict default permissions. Common - // restrictions are "source-address" and "force-command". If - // the server cannot enforce the restriction, or does not - // recognize it, the user should not authenticate. - CriticalOptions map[string]string - - // Extensions are extra functionality that the server may - // offer on authenticated connections. Common extensions are - // "permit-agent-forwarding", "permit-X11-forwarding". Lack of - // support for an extension does not preclude authenticating a - // user. - Extensions map[string]string -} - -// ServerConfig holds server specific configuration data. -type ServerConfig struct { - // Config contains configuration shared between client and server. - Config - - hostKeys []Signer - - // NoClientAuth is true if clients are allowed to connect without - // authenticating. - NoClientAuth bool - - // PasswordCallback, if non-nil, is called when a user - // attempts to authenticate using a password. - PasswordCallback func(conn ConnMetadata, password []byte) (*Permissions, error) - - // PublicKeyCallback, if non-nil, is called when a client attempts public - // key authentication. It must return true if the given public key is - // valid for the given user. For example, see CertChecker.Authenticate. - PublicKeyCallback func(conn ConnMetadata, key PublicKey) (*Permissions, error) - - // KeyboardInteractiveCallback, if non-nil, is called when - // keyboard-interactive authentication is selected (RFC - // 4256). The client object's Challenge function should be - // used to query the user. The callback may offer multiple - // Challenge rounds. To avoid information leaks, the client - // should be presented a challenge even if the user is - // unknown. - KeyboardInteractiveCallback func(conn ConnMetadata, client KeyboardInteractiveChallenge) (*Permissions, error) - - // AuthLogCallback, if non-nil, is called to log all authentication - // attempts. - AuthLogCallback func(conn ConnMetadata, method string, err error) - - // ServerVersion is the version identification string to announce in - // the public handshake. - // If empty, a reasonable default is used. - // Note that RFC 4253 section 4.2 requires that this string start with - // "SSH-2.0-". - ServerVersion string -} - -// AddHostKey adds a private key as a host key. If an existing host -// key exists with the same algorithm, it is overwritten. Each server -// config must have at least one host key. -func (s *ServerConfig) AddHostKey(key Signer) { - for i, k := range s.hostKeys { - if k.PublicKey().Type() == key.PublicKey().Type() { - s.hostKeys[i] = key - return - } - } - - s.hostKeys = append(s.hostKeys, key) -} - -// cachedPubKey contains the results of querying whether a public key is -// acceptable for a user. -type cachedPubKey struct { - user string - pubKeyData []byte - result error - perms *Permissions -} - -const maxCachedPubKeys = 16 - -// pubKeyCache caches tests for public keys. Since SSH clients -// will query whether a public key is acceptable before attempting to -// authenticate with it, we end up with duplicate queries for public -// key validity. The cache only applies to a single ServerConn. -type pubKeyCache struct { - keys []cachedPubKey -} - -// get returns the result for a given user/algo/key tuple. -func (c *pubKeyCache) get(user string, pubKeyData []byte) (cachedPubKey, bool) { - for _, k := range c.keys { - if k.user == user && bytes.Equal(k.pubKeyData, pubKeyData) { - return k, true - } - } - return cachedPubKey{}, false -} - -// add adds the given tuple to the cache. -func (c *pubKeyCache) add(candidate cachedPubKey) { - if len(c.keys) < maxCachedPubKeys { - c.keys = append(c.keys, candidate) - } -} - -// ServerConn is an authenticated SSH connection, as seen from the -// server -type ServerConn struct { - Conn - - // If the succeeding authentication callback returned a - // non-nil Permissions pointer, it is stored here. - Permissions *Permissions -} - -// NewServerConn starts a new SSH server with c as the underlying -// transport. It starts with a handshake and, if the handshake is -// unsuccessful, it closes the connection and returns an error. The -// Request and NewChannel channels must be serviced, or the connection -// will hang. -func NewServerConn(c net.Conn, config *ServerConfig) (*ServerConn, <-chan NewChannel, <-chan *Request, error) { - fullConf := *config - fullConf.SetDefaults() - s := &connection{ - sshConn: sshConn{conn: c}, - } - perms, err := s.serverHandshake(&fullConf) - if err != nil { - c.Close() - return nil, nil, nil, err - } - return &ServerConn{s, perms}, s.mux.incomingChannels, s.mux.incomingRequests, nil -} - -// signAndMarshal signs the data with the appropriate algorithm, -// and serializes the result in SSH wire format. -func signAndMarshal(k Signer, rand io.Reader, data []byte) ([]byte, error) { - sig, err := k.Sign(rand, data) - if err != nil { - return nil, err - } - - return Marshal(sig), nil -} - -// handshake performs key exchange and user authentication. -func (s *connection) serverHandshake(config *ServerConfig) (*Permissions, error) { - if len(config.hostKeys) == 0 { - return nil, errors.New("ssh: server has no host keys") - } - - if !config.NoClientAuth && config.PasswordCallback == nil && config.PublicKeyCallback == nil && config.KeyboardInteractiveCallback == nil { - return nil, errors.New("ssh: no authentication methods configured but NoClientAuth is also false") - } - - if config.ServerVersion != "" { - s.serverVersion = []byte(config.ServerVersion) - } else { - s.serverVersion = []byte(packageVersion) - } - var err error - s.clientVersion, err = exchangeVersions(s.sshConn.conn, s.serverVersion) - if err != nil { - return nil, err - } - - tr := newTransport(s.sshConn.conn, config.Rand, false /* not client */) - s.transport = newServerTransport(tr, s.clientVersion, s.serverVersion, config) - - if err := s.transport.requestKeyChange(); err != nil { - return nil, err - } - - if packet, err := s.transport.readPacket(); err != nil { - return nil, err - } else if packet[0] != msgNewKeys { - return nil, unexpectedMessageError(msgNewKeys, packet[0]) - } - - // We just did the key change, so the session ID is established. - s.sessionID = s.transport.getSessionID() - - var packet []byte - if packet, err = s.transport.readPacket(); err != nil { - return nil, err - } - - var serviceRequest serviceRequestMsg - if err = Unmarshal(packet, &serviceRequest); err != nil { - return nil, err - } - if serviceRequest.Service != serviceUserAuth { - return nil, errors.New("ssh: requested service '" + serviceRequest.Service + "' before authenticating") - } - serviceAccept := serviceAcceptMsg{ - Service: serviceUserAuth, - } - if err := s.transport.writePacket(Marshal(&serviceAccept)); err != nil { - return nil, err - } - - perms, err := s.serverAuthenticate(config) - if err != nil { - return nil, err - } - s.mux = newMux(s.transport) - return perms, err -} - -func isAcceptableAlgo(algo string) bool { - switch algo { - case KeyAlgoRSA, KeyAlgoDSA, KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521, - CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01: - return true - } - return false -} - -func checkSourceAddress(addr net.Addr, sourceAddr string) error { - if addr == nil { - return errors.New("ssh: no address known for client, but source-address match required") - } - - tcpAddr, ok := addr.(*net.TCPAddr) - if !ok { - return fmt.Errorf("ssh: remote address %v is not an TCP address when checking source-address match", addr) - } - - if allowedIP := net.ParseIP(sourceAddr); allowedIP != nil { - if bytes.Equal(allowedIP, tcpAddr.IP) { - return nil - } - } else { - _, ipNet, err := net.ParseCIDR(sourceAddr) - if err != nil { - return fmt.Errorf("ssh: error parsing source-address restriction %q: %v", sourceAddr, err) - } - - if ipNet.Contains(tcpAddr.IP) { - return nil - } - } - - return fmt.Errorf("ssh: remote address %v is not allowed because of source-address restriction", addr) -} - -func (s *connection) serverAuthenticate(config *ServerConfig) (*Permissions, error) { - var err error - var cache pubKeyCache - var perms *Permissions - -userAuthLoop: - for { - var userAuthReq userAuthRequestMsg - if packet, err := s.transport.readPacket(); err != nil { - return nil, err - } else if err = Unmarshal(packet, &userAuthReq); err != nil { - return nil, err - } - - if userAuthReq.Service != serviceSSH { - return nil, errors.New("ssh: client attempted to negotiate for unknown service: " + userAuthReq.Service) - } - - s.user = userAuthReq.User - perms = nil - authErr := errors.New("no auth passed yet") - - switch userAuthReq.Method { - case "none": - if config.NoClientAuth { - s.user = "" - authErr = nil - } - case "password": - if config.PasswordCallback == nil { - authErr = errors.New("ssh: password auth not configured") - break - } - payload := userAuthReq.Payload - if len(payload) < 1 || payload[0] != 0 { - return nil, parseError(msgUserAuthRequest) - } - payload = payload[1:] - password, payload, ok := parseString(payload) - if !ok || len(payload) > 0 { - return nil, parseError(msgUserAuthRequest) - } - - perms, authErr = config.PasswordCallback(s, password) - case "keyboard-interactive": - if config.KeyboardInteractiveCallback == nil { - authErr = errors.New("ssh: keyboard-interactive auth not configubred") - break - } - - prompter := &sshClientKeyboardInteractive{s} - perms, authErr = config.KeyboardInteractiveCallback(s, prompter.Challenge) - case "publickey": - if config.PublicKeyCallback == nil { - authErr = errors.New("ssh: publickey auth not configured") - break - } - payload := userAuthReq.Payload - if len(payload) < 1 { - return nil, parseError(msgUserAuthRequest) - } - isQuery := payload[0] == 0 - payload = payload[1:] - algoBytes, payload, ok := parseString(payload) - if !ok { - return nil, parseError(msgUserAuthRequest) - } - algo := string(algoBytes) - if !isAcceptableAlgo(algo) { - authErr = fmt.Errorf("ssh: algorithm %q not accepted", algo) - break - } - - pubKeyData, payload, ok := parseString(payload) - if !ok { - return nil, parseError(msgUserAuthRequest) - } - - pubKey, err := ParsePublicKey(pubKeyData) - if err != nil { - return nil, err - } - - candidate, ok := cache.get(s.user, pubKeyData) - if !ok { - candidate.user = s.user - candidate.pubKeyData = pubKeyData - candidate.perms, candidate.result = config.PublicKeyCallback(s, pubKey) - if candidate.result == nil && candidate.perms != nil && candidate.perms.CriticalOptions != nil && candidate.perms.CriticalOptions[sourceAddressCriticalOption] != "" { - candidate.result = checkSourceAddress( - s.RemoteAddr(), - candidate.perms.CriticalOptions[sourceAddressCriticalOption]) - } - cache.add(candidate) - } - - if isQuery { - // The client can query if the given public key - // would be okay. - if len(payload) > 0 { - return nil, parseError(msgUserAuthRequest) - } - - if candidate.result == nil { - okMsg := userAuthPubKeyOkMsg{ - Algo: algo, - PubKey: pubKeyData, - } - if err = s.transport.writePacket(Marshal(&okMsg)); err != nil { - return nil, err - } - continue userAuthLoop - } - authErr = candidate.result - } else { - sig, payload, ok := parseSignature(payload) - if !ok || len(payload) > 0 { - return nil, parseError(msgUserAuthRequest) - } - // Ensure the public key algo and signature algo - // are supported. Compare the private key - // algorithm name that corresponds to algo with - // sig.Format. This is usually the same, but - // for certs, the names differ. - if !isAcceptableAlgo(sig.Format) { - break - } - signedData := buildDataSignedForAuth(s.transport.getSessionID(), userAuthReq, algoBytes, pubKeyData) - - if err := pubKey.Verify(signedData, sig); err != nil { - return nil, err - } - - authErr = candidate.result - perms = candidate.perms - } - default: - authErr = fmt.Errorf("ssh: unknown method %q", userAuthReq.Method) - } - - if config.AuthLogCallback != nil { - config.AuthLogCallback(s, userAuthReq.Method, authErr) - } - - if authErr == nil { - break userAuthLoop - } - - var failureMsg userAuthFailureMsg - if config.PasswordCallback != nil { - failureMsg.Methods = append(failureMsg.Methods, "password") - } - if config.PublicKeyCallback != nil { - failureMsg.Methods = append(failureMsg.Methods, "publickey") - } - if config.KeyboardInteractiveCallback != nil { - failureMsg.Methods = append(failureMsg.Methods, "keyboard-interactive") - } - - if len(failureMsg.Methods) == 0 { - return nil, errors.New("ssh: no authentication methods configured but NoClientAuth is also false") - } - - if err = s.transport.writePacket(Marshal(&failureMsg)); err != nil { - return nil, err - } - } - - if err = s.transport.writePacket([]byte{msgUserAuthSuccess}); err != nil { - return nil, err - } - return perms, nil -} - -// sshClientKeyboardInteractive implements a ClientKeyboardInteractive by -// asking the client on the other side of a ServerConn. -type sshClientKeyboardInteractive struct { - *connection -} - -func (c *sshClientKeyboardInteractive) Challenge(user, instruction string, questions []string, echos []bool) (answers []string, err error) { - if len(questions) != len(echos) { - return nil, errors.New("ssh: echos and questions must have equal length") - } - - var prompts []byte - for i := range questions { - prompts = appendString(prompts, questions[i]) - prompts = appendBool(prompts, echos[i]) - } - - if err := c.transport.writePacket(Marshal(&userAuthInfoRequestMsg{ - Instruction: instruction, - NumPrompts: uint32(len(questions)), - Prompts: prompts, - })); err != nil { - return nil, err - } - - packet, err := c.transport.readPacket() - if err != nil { - return nil, err - } - if packet[0] != msgUserAuthInfoResponse { - return nil, unexpectedMessageError(msgUserAuthInfoResponse, packet[0]) - } - packet = packet[1:] - - n, packet, ok := parseUint32(packet) - if !ok || int(n) != len(questions) { - return nil, parseError(msgUserAuthInfoResponse) - } - - for i := uint32(0); i < n; i++ { - ans, rest, ok := parseString(packet) - if !ok { - return nil, parseError(msgUserAuthInfoResponse) - } - - answers = append(answers, string(ans)) - packet = rest - } - if len(packet) != 0 { - return nil, errors.New("ssh: junk at end of message") - } - - return answers, nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/session.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/session.go deleted file mode 100644 index fd10cd1a..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/session.go +++ /dev/null @@ -1,605 +0,0 @@ -// 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 ssh - -// Session implements an interactive session described in -// "RFC 4254, section 6". - -import ( - "bytes" - "errors" - "fmt" - "io" - "io/ioutil" - "sync" -) - -type Signal string - -// POSIX signals as listed in RFC 4254 Section 6.10. -const ( - SIGABRT Signal = "ABRT" - SIGALRM Signal = "ALRM" - SIGFPE Signal = "FPE" - SIGHUP Signal = "HUP" - SIGILL Signal = "ILL" - SIGINT Signal = "INT" - SIGKILL Signal = "KILL" - SIGPIPE Signal = "PIPE" - SIGQUIT Signal = "QUIT" - SIGSEGV Signal = "SEGV" - SIGTERM Signal = "TERM" - SIGUSR1 Signal = "USR1" - SIGUSR2 Signal = "USR2" -) - -var signals = map[Signal]int{ - SIGABRT: 6, - SIGALRM: 14, - SIGFPE: 8, - SIGHUP: 1, - SIGILL: 4, - SIGINT: 2, - SIGKILL: 9, - SIGPIPE: 13, - SIGQUIT: 3, - SIGSEGV: 11, - SIGTERM: 15, -} - -type TerminalModes map[uint8]uint32 - -// POSIX terminal mode flags as listed in RFC 4254 Section 8. -const ( - tty_OP_END = 0 - VINTR = 1 - VQUIT = 2 - VERASE = 3 - VKILL = 4 - VEOF = 5 - VEOL = 6 - VEOL2 = 7 - VSTART = 8 - VSTOP = 9 - VSUSP = 10 - VDSUSP = 11 - VREPRINT = 12 - VWERASE = 13 - VLNEXT = 14 - VFLUSH = 15 - VSWTCH = 16 - VSTATUS = 17 - VDISCARD = 18 - IGNPAR = 30 - PARMRK = 31 - INPCK = 32 - ISTRIP = 33 - INLCR = 34 - IGNCR = 35 - ICRNL = 36 - IUCLC = 37 - IXON = 38 - IXANY = 39 - IXOFF = 40 - IMAXBEL = 41 - ISIG = 50 - ICANON = 51 - XCASE = 52 - ECHO = 53 - ECHOE = 54 - ECHOK = 55 - ECHONL = 56 - NOFLSH = 57 - TOSTOP = 58 - IEXTEN = 59 - ECHOCTL = 60 - ECHOKE = 61 - PENDIN = 62 - OPOST = 70 - OLCUC = 71 - ONLCR = 72 - OCRNL = 73 - ONOCR = 74 - ONLRET = 75 - CS7 = 90 - CS8 = 91 - PARENB = 92 - PARODD = 93 - TTY_OP_ISPEED = 128 - TTY_OP_OSPEED = 129 -) - -// A Session represents a connection to a remote command or shell. -type Session struct { - // Stdin specifies the remote process's standard input. - // If Stdin is nil, the remote process reads from an empty - // bytes.Buffer. - Stdin io.Reader - - // Stdout and Stderr specify the remote process's standard - // output and error. - // - // If either is nil, Run connects the corresponding file - // descriptor to an instance of ioutil.Discard. There is a - // fixed amount of buffering that is shared for the two streams. - // If either blocks it may eventually cause the remote - // command to block. - Stdout io.Writer - Stderr io.Writer - - ch Channel // the channel backing this session - started bool // true once Start, Run or Shell is invoked. - copyFuncs []func() error - errors chan error // one send per copyFunc - - // true if pipe method is active - stdinpipe, stdoutpipe, stderrpipe bool - - // stdinPipeWriter is non-nil if StdinPipe has not been called - // and Stdin was specified by the user; it is the write end of - // a pipe connecting Session.Stdin to the stdin channel. - stdinPipeWriter io.WriteCloser - - exitStatus chan error -} - -// SendRequest sends an out-of-band channel request on the SSH channel -// underlying the session. -func (s *Session) SendRequest(name string, wantReply bool, payload []byte) (bool, error) { - return s.ch.SendRequest(name, wantReply, payload) -} - -func (s *Session) Close() error { - return s.ch.Close() -} - -// RFC 4254 Section 6.4. -type setenvRequest struct { - Name string - Value string -} - -// Setenv sets an environment variable that will be applied to any -// command executed by Shell or Run. -func (s *Session) Setenv(name, value string) error { - msg := setenvRequest{ - Name: name, - Value: value, - } - ok, err := s.ch.SendRequest("env", true, Marshal(&msg)) - if err == nil && !ok { - err = errors.New("ssh: setenv failed") - } - return err -} - -// RFC 4254 Section 6.2. -type ptyRequestMsg struct { - Term string - Columns uint32 - Rows uint32 - Width uint32 - Height uint32 - Modelist string -} - -// RequestPty requests the association of a pty with the session on the remote host. -func (s *Session) RequestPty(term string, h, w int, termmodes TerminalModes) error { - var tm []byte - for k, v := range termmodes { - kv := struct { - Key byte - Val uint32 - }{k, v} - - tm = append(tm, Marshal(&kv)...) - } - tm = append(tm, tty_OP_END) - req := ptyRequestMsg{ - Term: term, - Columns: uint32(w), - Rows: uint32(h), - Width: uint32(w * 8), - Height: uint32(h * 8), - Modelist: string(tm), - } - ok, err := s.ch.SendRequest("pty-req", true, Marshal(&req)) - if err == nil && !ok { - err = errors.New("ssh: pty-req failed") - } - return err -} - -// RFC 4254 Section 6.5. -type subsystemRequestMsg struct { - Subsystem string -} - -// RequestSubsystem requests the association of a subsystem with the session on the remote host. -// A subsystem is a predefined command that runs in the background when the ssh session is initiated -func (s *Session) RequestSubsystem(subsystem string) error { - msg := subsystemRequestMsg{ - Subsystem: subsystem, - } - ok, err := s.ch.SendRequest("subsystem", true, Marshal(&msg)) - if err == nil && !ok { - err = errors.New("ssh: subsystem request failed") - } - return err -} - -// RFC 4254 Section 6.9. -type signalMsg struct { - Signal string -} - -// Signal sends the given signal to the remote process. -// sig is one of the SIG* constants. -func (s *Session) Signal(sig Signal) error { - msg := signalMsg{ - Signal: string(sig), - } - - _, err := s.ch.SendRequest("signal", false, Marshal(&msg)) - return err -} - -// RFC 4254 Section 6.5. -type execMsg struct { - Command string -} - -// Start runs cmd on the remote host. Typically, the remote -// server passes cmd to the shell for interpretation. -// A Session only accepts one call to Run, Start or Shell. -func (s *Session) Start(cmd string) error { - if s.started { - return errors.New("ssh: session already started") - } - req := execMsg{ - Command: cmd, - } - - ok, err := s.ch.SendRequest("exec", true, Marshal(&req)) - if err == nil && !ok { - err = fmt.Errorf("ssh: command %v failed", cmd) - } - if err != nil { - return err - } - return s.start() -} - -// Run runs cmd on the remote host. Typically, the remote -// server passes cmd to the shell for interpretation. -// A Session only accepts one call to Run, Start, Shell, Output, -// or CombinedOutput. -// -// The returned error is nil if the command runs, has no problems -// copying stdin, stdout, and stderr, and exits with a zero exit -// status. -// -// If the command fails to run or doesn't complete successfully, the -// error is of type *ExitError. Other error types may be -// returned for I/O problems. -func (s *Session) Run(cmd string) error { - err := s.Start(cmd) - if err != nil { - return err - } - return s.Wait() -} - -// Output runs cmd on the remote host and returns its standard output. -func (s *Session) Output(cmd string) ([]byte, error) { - if s.Stdout != nil { - return nil, errors.New("ssh: Stdout already set") - } - var b bytes.Buffer - s.Stdout = &b - err := s.Run(cmd) - return b.Bytes(), err -} - -type singleWriter struct { - b bytes.Buffer - mu sync.Mutex -} - -func (w *singleWriter) Write(p []byte) (int, error) { - w.mu.Lock() - defer w.mu.Unlock() - return w.b.Write(p) -} - -// CombinedOutput runs cmd on the remote host and returns its combined -// standard output and standard error. -func (s *Session) CombinedOutput(cmd string) ([]byte, error) { - if s.Stdout != nil { - return nil, errors.New("ssh: Stdout already set") - } - if s.Stderr != nil { - return nil, errors.New("ssh: Stderr already set") - } - var b singleWriter - s.Stdout = &b - s.Stderr = &b - err := s.Run(cmd) - return b.b.Bytes(), err -} - -// Shell starts a login shell on the remote host. A Session only -// accepts one call to Run, Start, Shell, Output, or CombinedOutput. -func (s *Session) Shell() error { - if s.started { - return errors.New("ssh: session already started") - } - - ok, err := s.ch.SendRequest("shell", true, nil) - if err == nil && !ok { - return errors.New("ssh: could not start shell") - } - if err != nil { - return err - } - return s.start() -} - -func (s *Session) start() error { - s.started = true - - type F func(*Session) - for _, setupFd := range []F{(*Session).stdin, (*Session).stdout, (*Session).stderr} { - setupFd(s) - } - - s.errors = make(chan error, len(s.copyFuncs)) - for _, fn := range s.copyFuncs { - go func(fn func() error) { - s.errors <- fn() - }(fn) - } - return nil -} - -// Wait waits for the remote command to exit. -// -// The returned error is nil if the command runs, has no problems -// copying stdin, stdout, and stderr, and exits with a zero exit -// status. -// -// If the command fails to run or doesn't complete successfully, the -// error is of type *ExitError. Other error types may be -// returned for I/O problems. -func (s *Session) Wait() error { - if !s.started { - return errors.New("ssh: session not started") - } - waitErr := <-s.exitStatus - - if s.stdinPipeWriter != nil { - s.stdinPipeWriter.Close() - } - var copyError error - for _ = range s.copyFuncs { - if err := <-s.errors; err != nil && copyError == nil { - copyError = err - } - } - if waitErr != nil { - return waitErr - } - return copyError -} - -func (s *Session) wait(reqs <-chan *Request) error { - wm := Waitmsg{status: -1} - // Wait for msg channel to be closed before returning. - for msg := range reqs { - switch msg.Type { - case "exit-status": - d := msg.Payload - wm.status = int(d[0])<<24 | int(d[1])<<16 | int(d[2])<<8 | int(d[3]) - case "exit-signal": - var sigval struct { - Signal string - CoreDumped bool - Error string - Lang string - } - if err := Unmarshal(msg.Payload, &sigval); err != nil { - return err - } - - // Must sanitize strings? - wm.signal = sigval.Signal - wm.msg = sigval.Error - wm.lang = sigval.Lang - default: - // This handles keepalives and matches - // OpenSSH's behaviour. - if msg.WantReply { - msg.Reply(false, nil) - } - } - } - if wm.status == 0 { - return nil - } - if wm.status == -1 { - // exit-status was never sent from server - if wm.signal == "" { - return errors.New("wait: remote command exited without exit status or exit signal") - } - wm.status = 128 - if _, ok := signals[Signal(wm.signal)]; ok { - wm.status += signals[Signal(wm.signal)] - } - } - return &ExitError{wm} -} - -func (s *Session) stdin() { - if s.stdinpipe { - return - } - var stdin io.Reader - if s.Stdin == nil { - stdin = new(bytes.Buffer) - } else { - r, w := io.Pipe() - go func() { - _, err := io.Copy(w, s.Stdin) - w.CloseWithError(err) - }() - stdin, s.stdinPipeWriter = r, w - } - s.copyFuncs = append(s.copyFuncs, func() error { - _, err := io.Copy(s.ch, stdin) - if err1 := s.ch.CloseWrite(); err == nil && err1 != io.EOF { - err = err1 - } - return err - }) -} - -func (s *Session) stdout() { - if s.stdoutpipe { - return - } - if s.Stdout == nil { - s.Stdout = ioutil.Discard - } - s.copyFuncs = append(s.copyFuncs, func() error { - _, err := io.Copy(s.Stdout, s.ch) - return err - }) -} - -func (s *Session) stderr() { - if s.stderrpipe { - return - } - if s.Stderr == nil { - s.Stderr = ioutil.Discard - } - s.copyFuncs = append(s.copyFuncs, func() error { - _, err := io.Copy(s.Stderr, s.ch.Stderr()) - return err - }) -} - -// sessionStdin reroutes Close to CloseWrite. -type sessionStdin struct { - io.Writer - ch Channel -} - -func (s *sessionStdin) Close() error { - return s.ch.CloseWrite() -} - -// StdinPipe returns a pipe that will be connected to the -// remote command's standard input when the command starts. -func (s *Session) StdinPipe() (io.WriteCloser, error) { - if s.Stdin != nil { - return nil, errors.New("ssh: Stdin already set") - } - if s.started { - return nil, errors.New("ssh: StdinPipe after process started") - } - s.stdinpipe = true - return &sessionStdin{s.ch, s.ch}, nil -} - -// StdoutPipe returns a pipe that will be connected to the -// remote command's standard output when the command starts. -// There is a fixed amount of buffering that is shared between -// stdout and stderr streams. If the StdoutPipe reader is -// not serviced fast enough it may eventually cause the -// remote command to block. -func (s *Session) StdoutPipe() (io.Reader, error) { - if s.Stdout != nil { - return nil, errors.New("ssh: Stdout already set") - } - if s.started { - return nil, errors.New("ssh: StdoutPipe after process started") - } - s.stdoutpipe = true - return s.ch, nil -} - -// StderrPipe returns a pipe that will be connected to the -// remote command's standard error when the command starts. -// There is a fixed amount of buffering that is shared between -// stdout and stderr streams. If the StderrPipe reader is -// not serviced fast enough it may eventually cause the -// remote command to block. -func (s *Session) StderrPipe() (io.Reader, error) { - if s.Stderr != nil { - return nil, errors.New("ssh: Stderr already set") - } - if s.started { - return nil, errors.New("ssh: StderrPipe after process started") - } - s.stderrpipe = true - return s.ch.Stderr(), nil -} - -// newSession returns a new interactive session on the remote host. -func newSession(ch Channel, reqs <-chan *Request) (*Session, error) { - s := &Session{ - ch: ch, - } - s.exitStatus = make(chan error, 1) - go func() { - s.exitStatus <- s.wait(reqs) - }() - - return s, nil -} - -// An ExitError reports unsuccessful completion of a remote command. -type ExitError struct { - Waitmsg -} - -func (e *ExitError) Error() string { - return e.Waitmsg.String() -} - -// Waitmsg stores the information about an exited remote command -// as reported by Wait. -type Waitmsg struct { - status int - signal string - msg string - lang string -} - -// ExitStatus returns the exit status of the remote command. -func (w Waitmsg) ExitStatus() int { - return w.status -} - -// Signal returns the exit signal of the remote command if -// it was terminated violently. -func (w Waitmsg) Signal() string { - return w.signal -} - -// Msg returns the exit message given by the remote command -func (w Waitmsg) Msg() string { - return w.msg -} - -// Lang returns the language tag. See RFC 3066 -func (w Waitmsg) Lang() string { - return w.lang -} - -func (w Waitmsg) String() string { - return fmt.Sprintf("Process exited with: %v. Reason was: %v (%v)", w.status, w.msg, w.signal) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/session_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/session_test.go deleted file mode 100644 index 6e44cc8f..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/session_test.go +++ /dev/null @@ -1,774 +0,0 @@ -// 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 ssh - -// Session tests. - -import ( - "bytes" - crypto_rand "crypto/rand" - "errors" - "io" - "io/ioutil" - "math/rand" - "net" - "testing" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal" -) - -type serverType func(Channel, <-chan *Request, *testing.T) - -// dial constructs a new test server and returns a *ClientConn. -func dial(handler serverType, t *testing.T) *Client { - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - - go func() { - defer c1.Close() - conf := ServerConfig{ - NoClientAuth: true, - } - conf.AddHostKey(testSigners["rsa"]) - - _, chans, reqs, err := NewServerConn(c1, &conf) - if err != nil { - t.Fatalf("Unable to handshake: %v", err) - } - go DiscardRequests(reqs) - - for newCh := range chans { - if newCh.ChannelType() != "session" { - newCh.Reject(UnknownChannelType, "unknown channel type") - continue - } - - ch, inReqs, err := newCh.Accept() - if err != nil { - t.Errorf("Accept: %v", err) - continue - } - go func() { - handler(ch, inReqs, t) - }() - } - }() - - config := &ClientConfig{ - User: "testuser", - } - - conn, chans, reqs, err := NewClientConn(c2, "", config) - if err != nil { - t.Fatalf("unable to dial remote side: %v", err) - } - - return NewClient(conn, chans, reqs) -} - -// Test a simple string is returned to session.Stdout. -func TestSessionShell(t *testing.T) { - conn := dial(shellHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - stdout := new(bytes.Buffer) - session.Stdout = stdout - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %s", err) - } - if err := session.Wait(); err != nil { - t.Fatalf("Remote command did not exit cleanly: %v", err) - } - actual := stdout.String() - if actual != "golang" { - t.Fatalf("Remote shell did not return expected string: expected=golang, actual=%s", actual) - } -} - -// TODO(dfc) add support for Std{in,err}Pipe when the Server supports it. - -// Test a simple string is returned via StdoutPipe. -func TestSessionStdoutPipe(t *testing.T) { - conn := dial(shellHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - stdout, err := session.StdoutPipe() - if err != nil { - t.Fatalf("Unable to request StdoutPipe(): %v", err) - } - var buf bytes.Buffer - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - done := make(chan bool, 1) - go func() { - if _, err := io.Copy(&buf, stdout); err != nil { - t.Errorf("Copy of stdout failed: %v", err) - } - done <- true - }() - if err := session.Wait(); err != nil { - t.Fatalf("Remote command did not exit cleanly: %v", err) - } - <-done - actual := buf.String() - if actual != "golang" { - t.Fatalf("Remote shell did not return expected string: expected=golang, actual=%s", actual) - } -} - -// Test that a simple string is returned via the Output helper, -// and that stderr is discarded. -func TestSessionOutput(t *testing.T) { - conn := dial(fixedOutputHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - - buf, err := session.Output("") // cmd is ignored by fixedOutputHandler - if err != nil { - t.Error("Remote command did not exit cleanly:", err) - } - w := "this-is-stdout." - g := string(buf) - if g != w { - t.Error("Remote command did not return expected string:") - t.Logf("want %q", w) - t.Logf("got %q", g) - } -} - -// Test that both stdout and stderr are returned -// via the CombinedOutput helper. -func TestSessionCombinedOutput(t *testing.T) { - conn := dial(fixedOutputHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - - buf, err := session.CombinedOutput("") // cmd is ignored by fixedOutputHandler - if err != nil { - t.Error("Remote command did not exit cleanly:", err) - } - const stdout = "this-is-stdout." - const stderr = "this-is-stderr." - g := string(buf) - if g != stdout+stderr && g != stderr+stdout { - t.Error("Remote command did not return expected string:") - t.Logf("want %q, or %q", stdout+stderr, stderr+stdout) - t.Logf("got %q", g) - } -} - -// Test non-0 exit status is returned correctly. -func TestExitStatusNonZero(t *testing.T) { - conn := dial(exitStatusNonZeroHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err == nil { - t.Fatalf("expected command to fail but it didn't") - } - e, ok := err.(*ExitError) - if !ok { - t.Fatalf("expected *ExitError but got %T", err) - } - if e.ExitStatus() != 15 { - t.Fatalf("expected command to exit with 15 but got %v", e.ExitStatus()) - } -} - -// Test 0 exit status is returned correctly. -func TestExitStatusZero(t *testing.T) { - conn := dial(exitStatusZeroHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err != nil { - t.Fatalf("expected nil but got %v", err) - } -} - -// Test exit signal and status are both returned correctly. -func TestExitSignalAndStatus(t *testing.T) { - conn := dial(exitSignalAndStatusHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err == nil { - t.Fatalf("expected command to fail but it didn't") - } - e, ok := err.(*ExitError) - if !ok { - t.Fatalf("expected *ExitError but got %T", err) - } - if e.Signal() != "TERM" || e.ExitStatus() != 15 { - t.Fatalf("expected command to exit with signal TERM and status 15 but got signal %s and status %v", e.Signal(), e.ExitStatus()) - } -} - -// Test exit signal and status are both returned correctly. -func TestKnownExitSignalOnly(t *testing.T) { - conn := dial(exitSignalHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err == nil { - t.Fatalf("expected command to fail but it didn't") - } - e, ok := err.(*ExitError) - if !ok { - t.Fatalf("expected *ExitError but got %T", err) - } - if e.Signal() != "TERM" || e.ExitStatus() != 143 { - t.Fatalf("expected command to exit with signal TERM and status 143 but got signal %s and status %v", e.Signal(), e.ExitStatus()) - } -} - -// Test exit signal and status are both returned correctly. -func TestUnknownExitSignal(t *testing.T) { - conn := dial(exitSignalUnknownHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err == nil { - t.Fatalf("expected command to fail but it didn't") - } - e, ok := err.(*ExitError) - if !ok { - t.Fatalf("expected *ExitError but got %T", err) - } - if e.Signal() != "SYS" || e.ExitStatus() != 128 { - t.Fatalf("expected command to exit with signal SYS and status 128 but got signal %s and status %v", e.Signal(), e.ExitStatus()) - } -} - -// Test WaitMsg is not returned if the channel closes abruptly. -func TestExitWithoutStatusOrSignal(t *testing.T) { - conn := dial(exitWithoutSignalOrStatus, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err == nil { - t.Fatalf("expected command to fail but it didn't") - } - _, ok := err.(*ExitError) - if ok { - // you can't actually test for errors.errorString - // because it's not exported. - t.Fatalf("expected *errorString but got %T", err) - } -} - -// windowTestBytes is the number of bytes that we'll send to the SSH server. -const windowTestBytes = 16000 * 200 - -// TestServerWindow writes random data to the server. The server is expected to echo -// the same data back, which is compared against the original. -func TestServerWindow(t *testing.T) { - origBuf := bytes.NewBuffer(make([]byte, 0, windowTestBytes)) - io.CopyN(origBuf, crypto_rand.Reader, windowTestBytes) - origBytes := origBuf.Bytes() - - conn := dial(echoHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatal(err) - } - defer session.Close() - result := make(chan []byte) - - go func() { - defer close(result) - echoedBuf := bytes.NewBuffer(make([]byte, 0, windowTestBytes)) - serverStdout, err := session.StdoutPipe() - if err != nil { - t.Errorf("StdoutPipe failed: %v", err) - return - } - n, err := copyNRandomly("stdout", echoedBuf, serverStdout, windowTestBytes) - if err != nil && err != io.EOF { - t.Errorf("Read only %d bytes from server, expected %d: %v", n, windowTestBytes, err) - } - result <- echoedBuf.Bytes() - }() - - serverStdin, err := session.StdinPipe() - if err != nil { - t.Fatalf("StdinPipe failed: %v", err) - } - written, err := copyNRandomly("stdin", serverStdin, origBuf, windowTestBytes) - if err != nil { - t.Fatalf("failed to copy origBuf to serverStdin: %v", err) - } - if written != windowTestBytes { - t.Fatalf("Wrote only %d of %d bytes to server", written, windowTestBytes) - } - - echoedBytes := <-result - - if !bytes.Equal(origBytes, echoedBytes) { - t.Fatalf("Echoed buffer differed from original, orig %d, echoed %d", len(origBytes), len(echoedBytes)) - } -} - -// Verify the client can handle a keepalive packet from the server. -func TestClientHandlesKeepalives(t *testing.T) { - conn := dial(channelKeepaliveSender, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatal(err) - } - defer session.Close() - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err != nil { - t.Fatalf("expected nil but got: %v", err) - } -} - -type exitStatusMsg struct { - Status uint32 -} - -type exitSignalMsg struct { - Signal string - CoreDumped bool - Errmsg string - Lang string -} - -func handleTerminalRequests(in <-chan *Request) { - for req := range in { - ok := false - switch req.Type { - case "shell": - ok = true - if len(req.Payload) > 0 { - // We don't accept any commands, only the default shell. - ok = false - } - case "env": - ok = true - } - req.Reply(ok, nil) - } -} - -func newServerShell(ch Channel, in <-chan *Request, prompt string) *terminal.Terminal { - term := terminal.NewTerminal(ch, prompt) - go handleTerminalRequests(in) - return term -} - -func exitStatusZeroHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - // this string is returned to stdout - shell := newServerShell(ch, in, "> ") - readLine(shell, t) - sendStatus(0, ch, t) -} - -func exitStatusNonZeroHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - shell := newServerShell(ch, in, "> ") - readLine(shell, t) - sendStatus(15, ch, t) -} - -func exitSignalAndStatusHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - shell := newServerShell(ch, in, "> ") - readLine(shell, t) - sendStatus(15, ch, t) - sendSignal("TERM", ch, t) -} - -func exitSignalHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - shell := newServerShell(ch, in, "> ") - readLine(shell, t) - sendSignal("TERM", ch, t) -} - -func exitSignalUnknownHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - shell := newServerShell(ch, in, "> ") - readLine(shell, t) - sendSignal("SYS", ch, t) -} - -func exitWithoutSignalOrStatus(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - shell := newServerShell(ch, in, "> ") - readLine(shell, t) -} - -func shellHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - // this string is returned to stdout - shell := newServerShell(ch, in, "golang") - readLine(shell, t) - sendStatus(0, ch, t) -} - -// Ignores the command, writes fixed strings to stderr and stdout. -// Strings are "this-is-stdout." and "this-is-stderr.". -func fixedOutputHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - _, err := ch.Read(nil) - - req, ok := <-in - if !ok { - t.Fatalf("error: expected channel request, got: %#v", err) - return - } - - // ignore request, always send some text - req.Reply(true, nil) - - _, err = io.WriteString(ch, "this-is-stdout.") - if err != nil { - t.Fatalf("error writing on server: %v", err) - } - _, err = io.WriteString(ch.Stderr(), "this-is-stderr.") - if err != nil { - t.Fatalf("error writing on server: %v", err) - } - sendStatus(0, ch, t) -} - -func readLine(shell *terminal.Terminal, t *testing.T) { - if _, err := shell.ReadLine(); err != nil && err != io.EOF { - t.Errorf("unable to read line: %v", err) - } -} - -func sendStatus(status uint32, ch Channel, t *testing.T) { - msg := exitStatusMsg{ - Status: status, - } - if _, err := ch.SendRequest("exit-status", false, Marshal(&msg)); err != nil { - t.Errorf("unable to send status: %v", err) - } -} - -func sendSignal(signal string, ch Channel, t *testing.T) { - sig := exitSignalMsg{ - Signal: signal, - CoreDumped: false, - Errmsg: "Process terminated", - Lang: "en-GB-oed", - } - if _, err := ch.SendRequest("exit-signal", false, Marshal(&sig)); err != nil { - t.Errorf("unable to send signal: %v", err) - } -} - -func discardHandler(ch Channel, t *testing.T) { - defer ch.Close() - io.Copy(ioutil.Discard, ch) -} - -func echoHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - if n, err := copyNRandomly("echohandler", ch, ch, windowTestBytes); err != nil { - t.Errorf("short write, wrote %d, expected %d: %v ", n, windowTestBytes, err) - } -} - -// copyNRandomly copies n bytes from src to dst. It uses a variable, and random, -// buffer size to exercise more code paths. -func copyNRandomly(title string, dst io.Writer, src io.Reader, n int) (int, error) { - var ( - buf = make([]byte, 32*1024) - written int - remaining = n - ) - for remaining > 0 { - l := rand.Intn(1 << 15) - if remaining < l { - l = remaining - } - nr, er := src.Read(buf[:l]) - nw, ew := dst.Write(buf[:nr]) - remaining -= nw - written += nw - if ew != nil { - return written, ew - } - if nr != nw { - return written, io.ErrShortWrite - } - if er != nil && er != io.EOF { - return written, er - } - } - return written, nil -} - -func channelKeepaliveSender(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - shell := newServerShell(ch, in, "> ") - readLine(shell, t) - if _, err := ch.SendRequest("keepalive@openssh.com", true, nil); err != nil { - t.Errorf("unable to send channel keepalive request: %v", err) - } - sendStatus(0, ch, t) -} - -func TestClientWriteEOF(t *testing.T) { - conn := dial(simpleEchoHandler, t) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatal(err) - } - defer session.Close() - stdin, err := session.StdinPipe() - if err != nil { - t.Fatalf("StdinPipe failed: %v", err) - } - stdout, err := session.StdoutPipe() - if err != nil { - t.Fatalf("StdoutPipe failed: %v", err) - } - - data := []byte(`0000`) - _, err = stdin.Write(data) - if err != nil { - t.Fatalf("Write failed: %v", err) - } - stdin.Close() - - res, err := ioutil.ReadAll(stdout) - if err != nil { - t.Fatalf("Read failed: %v", err) - } - - if !bytes.Equal(data, res) { - t.Fatalf("Read differed from write, wrote: %v, read: %v", data, res) - } -} - -func simpleEchoHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - data, err := ioutil.ReadAll(ch) - if err != nil { - t.Errorf("handler read error: %v", err) - } - _, err = ch.Write(data) - if err != nil { - t.Errorf("handler write error: %v", err) - } -} - -func TestSessionID(t *testing.T) { - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - serverID := make(chan []byte, 1) - clientID := make(chan []byte, 1) - - serverConf := &ServerConfig{ - NoClientAuth: true, - } - serverConf.AddHostKey(testSigners["ecdsa"]) - clientConf := &ClientConfig{ - User: "user", - } - - go func() { - conn, chans, reqs, err := NewServerConn(c1, serverConf) - if err != nil { - t.Fatalf("server handshake: %v", err) - } - serverID <- conn.SessionID() - go DiscardRequests(reqs) - for ch := range chans { - ch.Reject(Prohibited, "") - } - }() - - go func() { - conn, chans, reqs, err := NewClientConn(c2, "", clientConf) - if err != nil { - t.Fatalf("client handshake: %v", err) - } - clientID <- conn.SessionID() - go DiscardRequests(reqs) - for ch := range chans { - ch.Reject(Prohibited, "") - } - }() - - s := <-serverID - c := <-clientID - if bytes.Compare(s, c) != 0 { - t.Errorf("server session ID (%x) != client session ID (%x)", s, c) - } else if len(s) == 0 { - t.Errorf("client and server SessionID were empty.") - } -} - -type noReadConn struct { - readSeen bool - net.Conn -} - -func (c *noReadConn) Close() error { - return nil -} - -func (c *noReadConn) Read(b []byte) (int, error) { - c.readSeen = true - return 0, errors.New("noReadConn error") -} - -func TestInvalidServerConfiguration(t *testing.T) { - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - serveConn := noReadConn{Conn: c1} - serverConf := &ServerConfig{} - - NewServerConn(&serveConn, serverConf) - if serveConn.readSeen { - t.Fatalf("NewServerConn attempted to Read() from Conn while configuration is missing host key") - } - - serverConf.AddHostKey(testSigners["ecdsa"]) - - NewServerConn(&serveConn, serverConf) - if serveConn.readSeen { - t.Fatalf("NewServerConn attempted to Read() from Conn while configuration is missing authentication method") - } -} - -func TestHostKeyAlgorithms(t *testing.T) { - serverConf := &ServerConfig{ - NoClientAuth: true, - } - serverConf.AddHostKey(testSigners["rsa"]) - serverConf.AddHostKey(testSigners["ecdsa"]) - - connect := func(clientConf *ClientConfig, want string) { - var alg string - clientConf.HostKeyCallback = func(h string, a net.Addr, key PublicKey) error { - alg = key.Type() - return nil - } - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - go NewServerConn(c1, serverConf) - _, _, _, err = NewClientConn(c2, "", clientConf) - if err != nil { - t.Fatalf("NewClientConn: %v", err) - } - if alg != want { - t.Errorf("selected key algorithm %s, want %s", alg, want) - } - } - - // By default, we get the preferred algorithm, which is ECDSA 256. - - clientConf := &ClientConfig{} - connect(clientConf, KeyAlgoECDSA256) - - // Client asks for RSA explicitly. - clientConf.HostKeyAlgorithms = []string{KeyAlgoRSA} - connect(clientConf, KeyAlgoRSA) - - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - go NewServerConn(c1, serverConf) - clientConf.HostKeyAlgorithms = []string{"nonexistent-hostkey-algo"} - _, _, _, err = NewClientConn(c2, "", clientConf) - if err == nil { - t.Fatal("succeeded connecting with unknown hostkey algorithm") - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/tcpip.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/tcpip.go deleted file mode 100644 index 6151241f..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/tcpip.go +++ /dev/null @@ -1,407 +0,0 @@ -// 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 ssh - -import ( - "errors" - "fmt" - "io" - "math/rand" - "net" - "strconv" - "strings" - "sync" - "time" -) - -// Listen requests the remote peer open a listening socket on -// addr. Incoming connections will be available by calling Accept on -// the returned net.Listener. The listener must be serviced, or the -// SSH connection may hang. -func (c *Client) Listen(n, addr string) (net.Listener, error) { - laddr, err := net.ResolveTCPAddr(n, addr) - if err != nil { - return nil, err - } - return c.ListenTCP(laddr) -} - -// Automatic port allocation is broken with OpenSSH before 6.0. See -// also https://bugzilla.mindrot.org/show_bug.cgi?id=2017. In -// particular, OpenSSH 5.9 sends a channelOpenMsg with port number 0, -// rather than the actual port number. This means you can never open -// two different listeners with auto allocated ports. We work around -// this by trying explicit ports until we succeed. - -const openSSHPrefix = "OpenSSH_" - -var portRandomizer = rand.New(rand.NewSource(time.Now().UnixNano())) - -// isBrokenOpenSSHVersion returns true if the given version string -// specifies a version of OpenSSH that is known to have a bug in port -// forwarding. -func isBrokenOpenSSHVersion(versionStr string) bool { - i := strings.Index(versionStr, openSSHPrefix) - if i < 0 { - return false - } - i += len(openSSHPrefix) - j := i - for ; j < len(versionStr); j++ { - if versionStr[j] < '0' || versionStr[j] > '9' { - break - } - } - version, _ := strconv.Atoi(versionStr[i:j]) - return version < 6 -} - -// autoPortListenWorkaround simulates automatic port allocation by -// trying random ports repeatedly. -func (c *Client) autoPortListenWorkaround(laddr *net.TCPAddr) (net.Listener, error) { - var sshListener net.Listener - var err error - const tries = 10 - for i := 0; i < tries; i++ { - addr := *laddr - addr.Port = 1024 + portRandomizer.Intn(60000) - sshListener, err = c.ListenTCP(&addr) - if err == nil { - laddr.Port = addr.Port - return sshListener, err - } - } - return nil, fmt.Errorf("ssh: listen on random port failed after %d tries: %v", tries, err) -} - -// RFC 4254 7.1 -type channelForwardMsg struct { - addr string - rport uint32 -} - -// ListenTCP requests the remote peer open a listening socket -// on laddr. Incoming connections will be available by calling -// Accept on the returned net.Listener. -func (c *Client) ListenTCP(laddr *net.TCPAddr) (net.Listener, error) { - if laddr.Port == 0 && isBrokenOpenSSHVersion(string(c.ServerVersion())) { - return c.autoPortListenWorkaround(laddr) - } - - m := channelForwardMsg{ - laddr.IP.String(), - uint32(laddr.Port), - } - // send message - ok, resp, err := c.SendRequest("tcpip-forward", true, Marshal(&m)) - if err != nil { - return nil, err - } - if !ok { - return nil, errors.New("ssh: tcpip-forward request denied by peer") - } - - // If the original port was 0, then the remote side will - // supply a real port number in the response. - if laddr.Port == 0 { - var p struct { - Port uint32 - } - if err := Unmarshal(resp, &p); err != nil { - return nil, err - } - laddr.Port = int(p.Port) - } - - // Register this forward, using the port number we obtained. - ch := c.forwards.add(*laddr) - - return &tcpListener{laddr, c, ch}, nil -} - -// forwardList stores a mapping between remote -// forward requests and the tcpListeners. -type forwardList struct { - sync.Mutex - entries []forwardEntry -} - -// forwardEntry represents an established mapping of a laddr on a -// remote ssh server to a channel connected to a tcpListener. -type forwardEntry struct { - laddr net.TCPAddr - c chan forward -} - -// forward represents an incoming forwarded tcpip connection. The -// arguments to add/remove/lookup should be address as specified in -// the original forward-request. -type forward struct { - newCh NewChannel // the ssh client channel underlying this forward - raddr *net.TCPAddr // the raddr of the incoming connection -} - -func (l *forwardList) add(addr net.TCPAddr) chan forward { - l.Lock() - defer l.Unlock() - f := forwardEntry{ - addr, - make(chan forward, 1), - } - l.entries = append(l.entries, f) - return f.c -} - -// See RFC 4254, section 7.2 -type forwardedTCPPayload struct { - Addr string - Port uint32 - OriginAddr string - OriginPort uint32 -} - -// parseTCPAddr parses the originating address from the remote into a *net.TCPAddr. -func parseTCPAddr(addr string, port uint32) (*net.TCPAddr, error) { - if port == 0 || port > 65535 { - return nil, fmt.Errorf("ssh: port number out of range: %d", port) - } - ip := net.ParseIP(string(addr)) - if ip == nil { - return nil, fmt.Errorf("ssh: cannot parse IP address %q", addr) - } - return &net.TCPAddr{IP: ip, Port: int(port)}, nil -} - -func (l *forwardList) handleChannels(in <-chan NewChannel) { - for ch := range in { - var payload forwardedTCPPayload - if err := Unmarshal(ch.ExtraData(), &payload); err != nil { - ch.Reject(ConnectionFailed, "could not parse forwarded-tcpip payload: "+err.Error()) - continue - } - - // RFC 4254 section 7.2 specifies that incoming - // addresses should list the address, in string - // format. It is implied that this should be an IP - // address, as it would be impossible to connect to it - // otherwise. - laddr, err := parseTCPAddr(payload.Addr, payload.Port) - if err != nil { - ch.Reject(ConnectionFailed, err.Error()) - continue - } - raddr, err := parseTCPAddr(payload.OriginAddr, payload.OriginPort) - if err != nil { - ch.Reject(ConnectionFailed, err.Error()) - continue - } - - if ok := l.forward(*laddr, *raddr, ch); !ok { - // Section 7.2, implementations MUST reject spurious incoming - // connections. - ch.Reject(Prohibited, "no forward for address") - continue - } - } -} - -// remove removes the forward entry, and the channel feeding its -// listener. -func (l *forwardList) remove(addr net.TCPAddr) { - l.Lock() - defer l.Unlock() - for i, f := range l.entries { - if addr.IP.Equal(f.laddr.IP) && addr.Port == f.laddr.Port { - l.entries = append(l.entries[:i], l.entries[i+1:]...) - close(f.c) - return - } - } -} - -// closeAll closes and clears all forwards. -func (l *forwardList) closeAll() { - l.Lock() - defer l.Unlock() - for _, f := range l.entries { - close(f.c) - } - l.entries = nil -} - -func (l *forwardList) forward(laddr, raddr net.TCPAddr, ch NewChannel) bool { - l.Lock() - defer l.Unlock() - for _, f := range l.entries { - if laddr.IP.Equal(f.laddr.IP) && laddr.Port == f.laddr.Port { - f.c <- forward{ch, &raddr} - return true - } - } - return false -} - -type tcpListener struct { - laddr *net.TCPAddr - - conn *Client - in <-chan forward -} - -// Accept waits for and returns the next connection to the listener. -func (l *tcpListener) Accept() (net.Conn, error) { - s, ok := <-l.in - if !ok { - return nil, io.EOF - } - ch, incoming, err := s.newCh.Accept() - if err != nil { - return nil, err - } - go DiscardRequests(incoming) - - return &tcpChanConn{ - Channel: ch, - laddr: l.laddr, - raddr: s.raddr, - }, nil -} - -// Close closes the listener. -func (l *tcpListener) Close() error { - m := channelForwardMsg{ - l.laddr.IP.String(), - uint32(l.laddr.Port), - } - - // this also closes the listener. - l.conn.forwards.remove(*l.laddr) - ok, _, err := l.conn.SendRequest("cancel-tcpip-forward", true, Marshal(&m)) - if err == nil && !ok { - err = errors.New("ssh: cancel-tcpip-forward failed") - } - return err -} - -// Addr returns the listener's network address. -func (l *tcpListener) Addr() net.Addr { - return l.laddr -} - -// Dial initiates a connection to the addr from the remote host. -// The resulting connection has a zero LocalAddr() and RemoteAddr(). -func (c *Client) Dial(n, addr string) (net.Conn, error) { - // Parse the address into host and numeric port. - host, portString, err := net.SplitHostPort(addr) - if err != nil { - return nil, err - } - port, err := strconv.ParseUint(portString, 10, 16) - if err != nil { - return nil, err - } - // Use a zero address for local and remote address. - zeroAddr := &net.TCPAddr{ - IP: net.IPv4zero, - Port: 0, - } - ch, err := c.dial(net.IPv4zero.String(), 0, host, int(port)) - if err != nil { - return nil, err - } - return &tcpChanConn{ - Channel: ch, - laddr: zeroAddr, - raddr: zeroAddr, - }, nil -} - -// DialTCP connects to the remote address raddr on the network net, -// which must be "tcp", "tcp4", or "tcp6". If laddr is not nil, it is used -// as the local address for the connection. -func (c *Client) DialTCP(n string, laddr, raddr *net.TCPAddr) (net.Conn, error) { - if laddr == nil { - laddr = &net.TCPAddr{ - IP: net.IPv4zero, - Port: 0, - } - } - ch, err := c.dial(laddr.IP.String(), laddr.Port, raddr.IP.String(), raddr.Port) - if err != nil { - return nil, err - } - return &tcpChanConn{ - Channel: ch, - laddr: laddr, - raddr: raddr, - }, nil -} - -// RFC 4254 7.2 -type channelOpenDirectMsg struct { - raddr string - rport uint32 - laddr string - lport uint32 -} - -func (c *Client) dial(laddr string, lport int, raddr string, rport int) (Channel, error) { - msg := channelOpenDirectMsg{ - raddr: raddr, - rport: uint32(rport), - laddr: laddr, - lport: uint32(lport), - } - ch, in, err := c.OpenChannel("direct-tcpip", Marshal(&msg)) - if err != nil { - return nil, err - } - go DiscardRequests(in) - return ch, err -} - -type tcpChan struct { - Channel // the backing channel -} - -// tcpChanConn fulfills the net.Conn interface without -// the tcpChan having to hold laddr or raddr directly. -type tcpChanConn struct { - Channel - laddr, raddr net.Addr -} - -// LocalAddr returns the local network address. -func (t *tcpChanConn) LocalAddr() net.Addr { - return t.laddr -} - -// RemoteAddr returns the remote network address. -func (t *tcpChanConn) RemoteAddr() net.Addr { - return t.raddr -} - -// SetDeadline sets the read and write deadlines associated -// with the connection. -func (t *tcpChanConn) SetDeadline(deadline time.Time) error { - if err := t.SetReadDeadline(deadline); err != nil { - return err - } - return t.SetWriteDeadline(deadline) -} - -// SetReadDeadline sets the read deadline. -// A zero value for t means Read will not time out. -// After the deadline, the error from Read will implement net.Error -// with Timeout() == true. -func (t *tcpChanConn) SetReadDeadline(deadline time.Time) error { - return errors.New("ssh: tcpChan: deadline not supported") -} - -// SetWriteDeadline exists to satisfy the net.Conn interface -// but is not implemented by this type. It always returns an error. -func (t *tcpChanConn) SetWriteDeadline(deadline time.Time) error { - return errors.New("ssh: tcpChan: deadline not supported") -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/tcpip_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/tcpip_test.go deleted file mode 100644 index f1265cb4..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/tcpip_test.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "testing" -) - -func TestAutoPortListenBroken(t *testing.T) { - broken := "SSH-2.0-OpenSSH_5.9hh11" - works := "SSH-2.0-OpenSSH_6.1" - if !isBrokenOpenSSHVersion(broken) { - t.Errorf("version %q not marked as broken", broken) - } - if isBrokenOpenSSHVersion(works) { - t.Errorf("version %q marked as broken", works) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/terminal.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/terminal.go deleted file mode 100644 index 741eeb13..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/terminal.go +++ /dev/null @@ -1,892 +0,0 @@ -// 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 terminal - -import ( - "bytes" - "io" - "sync" - "unicode/utf8" -) - -// EscapeCodes contains escape sequences that can be written to the terminal in -// order to achieve different styles of text. -type EscapeCodes struct { - // Foreground colors - Black, Red, Green, Yellow, Blue, Magenta, Cyan, White []byte - - // Reset all attributes - Reset []byte -} - -var vt100EscapeCodes = EscapeCodes{ - Black: []byte{keyEscape, '[', '3', '0', 'm'}, - Red: []byte{keyEscape, '[', '3', '1', 'm'}, - Green: []byte{keyEscape, '[', '3', '2', 'm'}, - Yellow: []byte{keyEscape, '[', '3', '3', 'm'}, - Blue: []byte{keyEscape, '[', '3', '4', 'm'}, - Magenta: []byte{keyEscape, '[', '3', '5', 'm'}, - Cyan: []byte{keyEscape, '[', '3', '6', 'm'}, - White: []byte{keyEscape, '[', '3', '7', 'm'}, - - Reset: []byte{keyEscape, '[', '0', 'm'}, -} - -// Terminal contains the state for running a VT100 terminal that is capable of -// reading lines of input. -type Terminal struct { - // AutoCompleteCallback, if non-null, is called for each keypress with - // the full input line and the current position of the cursor (in - // bytes, as an index into |line|). If it returns ok=false, the key - // press is processed normally. Otherwise it returns a replacement line - // and the new cursor position. - AutoCompleteCallback func(line string, pos int, key rune) (newLine string, newPos int, ok bool) - - // Escape contains a pointer to the escape codes for this terminal. - // It's always a valid pointer, although the escape codes themselves - // may be empty if the terminal doesn't support them. - Escape *EscapeCodes - - // lock protects the terminal and the state in this object from - // concurrent processing of a key press and a Write() call. - lock sync.Mutex - - c io.ReadWriter - prompt []rune - - // line is the current line being entered. - line []rune - // pos is the logical position of the cursor in line - pos int - // echo is true if local echo is enabled - echo bool - // pasteActive is true iff there is a bracketed paste operation in - // progress. - pasteActive bool - - // cursorX contains the current X value of the cursor where the left - // edge is 0. cursorY contains the row number where the first row of - // the current line is 0. - cursorX, cursorY int - // maxLine is the greatest value of cursorY so far. - maxLine int - - termWidth, termHeight int - - // outBuf contains the terminal data to be sent. - outBuf []byte - // remainder contains the remainder of any partial key sequences after - // a read. It aliases into inBuf. - remainder []byte - inBuf [256]byte - - // history contains previously entered commands so that they can be - // accessed with the up and down keys. - history stRingBuffer - // historyIndex stores the currently accessed history entry, where zero - // means the immediately previous entry. - historyIndex int - // When navigating up and down the history it's possible to return to - // the incomplete, initial line. That value is stored in - // historyPending. - historyPending string -} - -// NewTerminal runs a VT100 terminal on the given ReadWriter. If the ReadWriter is -// a local terminal, that terminal must first have been put into raw mode. -// prompt is a string that is written at the start of each input line (i.e. -// "> "). -func NewTerminal(c io.ReadWriter, prompt string) *Terminal { - return &Terminal{ - Escape: &vt100EscapeCodes, - c: c, - prompt: []rune(prompt), - termWidth: 80, - termHeight: 24, - echo: true, - historyIndex: -1, - } -} - -const ( - keyCtrlD = 4 - keyCtrlU = 21 - keyEnter = '\r' - keyEscape = 27 - keyBackspace = 127 - keyUnknown = 0xd800 /* UTF-16 surrogate area */ + iota - keyUp - keyDown - keyLeft - keyRight - keyAltLeft - keyAltRight - keyHome - keyEnd - keyDeleteWord - keyDeleteLine - keyClearScreen - keyPasteStart - keyPasteEnd -) - -var pasteStart = []byte{keyEscape, '[', '2', '0', '0', '~'} -var pasteEnd = []byte{keyEscape, '[', '2', '0', '1', '~'} - -// bytesToKey tries to parse a key sequence from b. If successful, it returns -// the key and the remainder of the input. Otherwise it returns utf8.RuneError. -func bytesToKey(b []byte, pasteActive bool) (rune, []byte) { - if len(b) == 0 { - return utf8.RuneError, nil - } - - if !pasteActive { - switch b[0] { - case 1: // ^A - return keyHome, b[1:] - case 5: // ^E - return keyEnd, b[1:] - case 8: // ^H - return keyBackspace, b[1:] - case 11: // ^K - return keyDeleteLine, b[1:] - case 12: // ^L - return keyClearScreen, b[1:] - case 23: // ^W - return keyDeleteWord, b[1:] - } - } - - if b[0] != keyEscape { - if !utf8.FullRune(b) { - return utf8.RuneError, b - } - r, l := utf8.DecodeRune(b) - return r, b[l:] - } - - if !pasteActive && len(b) >= 3 && b[0] == keyEscape && b[1] == '[' { - switch b[2] { - case 'A': - return keyUp, b[3:] - case 'B': - return keyDown, b[3:] - case 'C': - return keyRight, b[3:] - case 'D': - return keyLeft, b[3:] - case 'H': - return keyHome, b[3:] - case 'F': - return keyEnd, b[3:] - } - } - - if !pasteActive && len(b) >= 6 && b[0] == keyEscape && b[1] == '[' && b[2] == '1' && b[3] == ';' && b[4] == '3' { - switch b[5] { - case 'C': - return keyAltRight, b[6:] - case 'D': - return keyAltLeft, b[6:] - } - } - - if !pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteStart) { - return keyPasteStart, b[6:] - } - - if pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteEnd) { - return keyPasteEnd, b[6:] - } - - // If we get here then we have a key that we don't recognise, or a - // partial sequence. It's not clear how one should find the end of a - // sequence without knowing them all, but it seems that [a-zA-Z~] only - // appears at the end of a sequence. - for i, c := range b[0:] { - if c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c == '~' { - return keyUnknown, b[i+1:] - } - } - - return utf8.RuneError, b -} - -// queue appends data to the end of t.outBuf -func (t *Terminal) queue(data []rune) { - t.outBuf = append(t.outBuf, []byte(string(data))...) -} - -var eraseUnderCursor = []rune{' ', keyEscape, '[', 'D'} -var space = []rune{' '} - -func isPrintable(key rune) bool { - isInSurrogateArea := key >= 0xd800 && key <= 0xdbff - return key >= 32 && !isInSurrogateArea -} - -// moveCursorToPos appends data to t.outBuf which will move the cursor to the -// given, logical position in the text. -func (t *Terminal) moveCursorToPos(pos int) { - if !t.echo { - return - } - - x := visualLength(t.prompt) + pos - y := x / t.termWidth - x = x % t.termWidth - - up := 0 - if y < t.cursorY { - up = t.cursorY - y - } - - down := 0 - if y > t.cursorY { - down = y - t.cursorY - } - - left := 0 - if x < t.cursorX { - left = t.cursorX - x - } - - right := 0 - if x > t.cursorX { - right = x - t.cursorX - } - - t.cursorX = x - t.cursorY = y - t.move(up, down, left, right) -} - -func (t *Terminal) move(up, down, left, right int) { - movement := make([]rune, 3*(up+down+left+right)) - m := movement - for i := 0; i < up; i++ { - m[0] = keyEscape - m[1] = '[' - m[2] = 'A' - m = m[3:] - } - for i := 0; i < down; i++ { - m[0] = keyEscape - m[1] = '[' - m[2] = 'B' - m = m[3:] - } - for i := 0; i < left; i++ { - m[0] = keyEscape - m[1] = '[' - m[2] = 'D' - m = m[3:] - } - for i := 0; i < right; i++ { - m[0] = keyEscape - m[1] = '[' - m[2] = 'C' - m = m[3:] - } - - t.queue(movement) -} - -func (t *Terminal) clearLineToRight() { - op := []rune{keyEscape, '[', 'K'} - t.queue(op) -} - -const maxLineLength = 4096 - -func (t *Terminal) setLine(newLine []rune, newPos int) { - if t.echo { - t.moveCursorToPos(0) - t.writeLine(newLine) - for i := len(newLine); i < len(t.line); i++ { - t.writeLine(space) - } - t.moveCursorToPos(newPos) - } - t.line = newLine - t.pos = newPos -} - -func (t *Terminal) advanceCursor(places int) { - t.cursorX += places - t.cursorY += t.cursorX / t.termWidth - if t.cursorY > t.maxLine { - t.maxLine = t.cursorY - } - t.cursorX = t.cursorX % t.termWidth - - if places > 0 && t.cursorX == 0 { - // Normally terminals will advance the current position - // when writing a character. But that doesn't happen - // for the last character in a line. However, when - // writing a character (except a new line) that causes - // a line wrap, the position will be advanced two - // places. - // - // So, if we are stopping at the end of a line, we - // need to write a newline so that our cursor can be - // advanced to the next line. - t.outBuf = append(t.outBuf, '\n') - } -} - -func (t *Terminal) eraseNPreviousChars(n int) { - if n == 0 { - return - } - - if t.pos < n { - n = t.pos - } - t.pos -= n - t.moveCursorToPos(t.pos) - - copy(t.line[t.pos:], t.line[n+t.pos:]) - t.line = t.line[:len(t.line)-n] - if t.echo { - t.writeLine(t.line[t.pos:]) - for i := 0; i < n; i++ { - t.queue(space) - } - t.advanceCursor(n) - t.moveCursorToPos(t.pos) - } -} - -// countToLeftWord returns then number of characters from the cursor to the -// start of the previous word. -func (t *Terminal) countToLeftWord() int { - if t.pos == 0 { - return 0 - } - - pos := t.pos - 1 - for pos > 0 { - if t.line[pos] != ' ' { - break - } - pos-- - } - for pos > 0 { - if t.line[pos] == ' ' { - pos++ - break - } - pos-- - } - - return t.pos - pos -} - -// countToRightWord returns then number of characters from the cursor to the -// start of the next word. -func (t *Terminal) countToRightWord() int { - pos := t.pos - for pos < len(t.line) { - if t.line[pos] == ' ' { - break - } - pos++ - } - for pos < len(t.line) { - if t.line[pos] != ' ' { - break - } - pos++ - } - return pos - t.pos -} - -// visualLength returns the number of visible glyphs in s. -func visualLength(runes []rune) int { - inEscapeSeq := false - length := 0 - - for _, r := range runes { - switch { - case inEscapeSeq: - if (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') { - inEscapeSeq = false - } - case r == '\x1b': - inEscapeSeq = true - default: - length++ - } - } - - return length -} - -// handleKey processes the given key and, optionally, returns a line of text -// that the user has entered. -func (t *Terminal) handleKey(key rune) (line string, ok bool) { - if t.pasteActive && key != keyEnter { - t.addKeyToLine(key) - return - } - - switch key { - case keyBackspace: - if t.pos == 0 { - return - } - t.eraseNPreviousChars(1) - case keyAltLeft: - // move left by a word. - t.pos -= t.countToLeftWord() - t.moveCursorToPos(t.pos) - case keyAltRight: - // move right by a word. - t.pos += t.countToRightWord() - t.moveCursorToPos(t.pos) - case keyLeft: - if t.pos == 0 { - return - } - t.pos-- - t.moveCursorToPos(t.pos) - case keyRight: - if t.pos == len(t.line) { - return - } - t.pos++ - t.moveCursorToPos(t.pos) - case keyHome: - if t.pos == 0 { - return - } - t.pos = 0 - t.moveCursorToPos(t.pos) - case keyEnd: - if t.pos == len(t.line) { - return - } - t.pos = len(t.line) - t.moveCursorToPos(t.pos) - case keyUp: - entry, ok := t.history.NthPreviousEntry(t.historyIndex + 1) - if !ok { - return "", false - } - if t.historyIndex == -1 { - t.historyPending = string(t.line) - } - t.historyIndex++ - runes := []rune(entry) - t.setLine(runes, len(runes)) - case keyDown: - switch t.historyIndex { - case -1: - return - case 0: - runes := []rune(t.historyPending) - t.setLine(runes, len(runes)) - t.historyIndex-- - default: - entry, ok := t.history.NthPreviousEntry(t.historyIndex - 1) - if ok { - t.historyIndex-- - runes := []rune(entry) - t.setLine(runes, len(runes)) - } - } - case keyEnter: - t.moveCursorToPos(len(t.line)) - t.queue([]rune("\r\n")) - line = string(t.line) - ok = true - t.line = t.line[:0] - t.pos = 0 - t.cursorX = 0 - t.cursorY = 0 - t.maxLine = 0 - case keyDeleteWord: - // Delete zero or more spaces and then one or more characters. - t.eraseNPreviousChars(t.countToLeftWord()) - case keyDeleteLine: - // Delete everything from the current cursor position to the - // end of line. - for i := t.pos; i < len(t.line); i++ { - t.queue(space) - t.advanceCursor(1) - } - t.line = t.line[:t.pos] - t.moveCursorToPos(t.pos) - case keyCtrlD: - // Erase the character under the current position. - // The EOF case when the line is empty is handled in - // readLine(). - if t.pos < len(t.line) { - t.pos++ - t.eraseNPreviousChars(1) - } - case keyCtrlU: - t.eraseNPreviousChars(t.pos) - case keyClearScreen: - // Erases the screen and moves the cursor to the home position. - t.queue([]rune("\x1b[2J\x1b[H")) - t.queue(t.prompt) - t.cursorX, t.cursorY = 0, 0 - t.advanceCursor(visualLength(t.prompt)) - t.setLine(t.line, t.pos) - default: - if t.AutoCompleteCallback != nil { - prefix := string(t.line[:t.pos]) - suffix := string(t.line[t.pos:]) - - t.lock.Unlock() - newLine, newPos, completeOk := t.AutoCompleteCallback(prefix+suffix, len(prefix), key) - t.lock.Lock() - - if completeOk { - t.setLine([]rune(newLine), utf8.RuneCount([]byte(newLine)[:newPos])) - return - } - } - if !isPrintable(key) { - return - } - if len(t.line) == maxLineLength { - return - } - t.addKeyToLine(key) - } - return -} - -// addKeyToLine inserts the given key at the current position in the current -// line. -func (t *Terminal) addKeyToLine(key rune) { - if len(t.line) == cap(t.line) { - newLine := make([]rune, len(t.line), 2*(1+len(t.line))) - copy(newLine, t.line) - t.line = newLine - } - t.line = t.line[:len(t.line)+1] - copy(t.line[t.pos+1:], t.line[t.pos:]) - t.line[t.pos] = key - if t.echo { - t.writeLine(t.line[t.pos:]) - } - t.pos++ - t.moveCursorToPos(t.pos) -} - -func (t *Terminal) writeLine(line []rune) { - for len(line) != 0 { - remainingOnLine := t.termWidth - t.cursorX - todo := len(line) - if todo > remainingOnLine { - todo = remainingOnLine - } - t.queue(line[:todo]) - t.advanceCursor(visualLength(line[:todo])) - line = line[todo:] - } -} - -func (t *Terminal) Write(buf []byte) (n int, err error) { - t.lock.Lock() - defer t.lock.Unlock() - - if t.cursorX == 0 && t.cursorY == 0 { - // This is the easy case: there's nothing on the screen that we - // have to move out of the way. - return t.c.Write(buf) - } - - // We have a prompt and possibly user input on the screen. We - // have to clear it first. - t.move(0 /* up */, 0 /* down */, t.cursorX /* left */, 0 /* right */) - t.cursorX = 0 - t.clearLineToRight() - - for t.cursorY > 0 { - t.move(1 /* up */, 0, 0, 0) - t.cursorY-- - t.clearLineToRight() - } - - if _, err = t.c.Write(t.outBuf); err != nil { - return - } - t.outBuf = t.outBuf[:0] - - if n, err = t.c.Write(buf); err != nil { - return - } - - t.writeLine(t.prompt) - if t.echo { - t.writeLine(t.line) - } - - t.moveCursorToPos(t.pos) - - if _, err = t.c.Write(t.outBuf); err != nil { - return - } - t.outBuf = t.outBuf[:0] - return -} - -// ReadPassword temporarily changes the prompt and reads a password, without -// echo, from the terminal. -func (t *Terminal) ReadPassword(prompt string) (line string, err error) { - t.lock.Lock() - defer t.lock.Unlock() - - oldPrompt := t.prompt - t.prompt = []rune(prompt) - t.echo = false - - line, err = t.readLine() - - t.prompt = oldPrompt - t.echo = true - - return -} - -// ReadLine returns a line of input from the terminal. -func (t *Terminal) ReadLine() (line string, err error) { - t.lock.Lock() - defer t.lock.Unlock() - - return t.readLine() -} - -func (t *Terminal) readLine() (line string, err error) { - // t.lock must be held at this point - - if t.cursorX == 0 && t.cursorY == 0 { - t.writeLine(t.prompt) - t.c.Write(t.outBuf) - t.outBuf = t.outBuf[:0] - } - - lineIsPasted := t.pasteActive - - for { - rest := t.remainder - lineOk := false - for !lineOk { - var key rune - key, rest = bytesToKey(rest, t.pasteActive) - if key == utf8.RuneError { - break - } - if !t.pasteActive { - if key == keyCtrlD { - if len(t.line) == 0 { - return "", io.EOF - } - } - if key == keyPasteStart { - t.pasteActive = true - if len(t.line) == 0 { - lineIsPasted = true - } - continue - } - } else if key == keyPasteEnd { - t.pasteActive = false - continue - } - if !t.pasteActive { - lineIsPasted = false - } - line, lineOk = t.handleKey(key) - } - if len(rest) > 0 { - n := copy(t.inBuf[:], rest) - t.remainder = t.inBuf[:n] - } else { - t.remainder = nil - } - t.c.Write(t.outBuf) - t.outBuf = t.outBuf[:0] - if lineOk { - if t.echo { - t.historyIndex = -1 - t.history.Add(line) - } - if lineIsPasted { - err = ErrPasteIndicator - } - return - } - - // t.remainder is a slice at the beginning of t.inBuf - // containing a partial key sequence - readBuf := t.inBuf[len(t.remainder):] - var n int - - t.lock.Unlock() - n, err = t.c.Read(readBuf) - t.lock.Lock() - - if err != nil { - return - } - - t.remainder = t.inBuf[:n+len(t.remainder)] - } - - panic("unreachable") // for Go 1.0. -} - -// SetPrompt sets the prompt to be used when reading subsequent lines. -func (t *Terminal) SetPrompt(prompt string) { - t.lock.Lock() - defer t.lock.Unlock() - - t.prompt = []rune(prompt) -} - -func (t *Terminal) clearAndRepaintLinePlusNPrevious(numPrevLines int) { - // Move cursor to column zero at the start of the line. - t.move(t.cursorY, 0, t.cursorX, 0) - t.cursorX, t.cursorY = 0, 0 - t.clearLineToRight() - for t.cursorY < numPrevLines { - // Move down a line - t.move(0, 1, 0, 0) - t.cursorY++ - t.clearLineToRight() - } - // Move back to beginning. - t.move(t.cursorY, 0, 0, 0) - t.cursorX, t.cursorY = 0, 0 - - t.queue(t.prompt) - t.advanceCursor(visualLength(t.prompt)) - t.writeLine(t.line) - t.moveCursorToPos(t.pos) -} - -func (t *Terminal) SetSize(width, height int) error { - t.lock.Lock() - defer t.lock.Unlock() - - if width == 0 { - width = 1 - } - - oldWidth := t.termWidth - t.termWidth, t.termHeight = width, height - - switch { - case width == oldWidth: - // If the width didn't change then nothing else needs to be - // done. - return nil - case len(t.line) == 0 && t.cursorX == 0 && t.cursorY == 0: - // If there is nothing on current line and no prompt printed, - // just do nothing - return nil - case width < oldWidth: - // Some terminals (e.g. xterm) will truncate lines that were - // too long when shinking. Others, (e.g. gnome-terminal) will - // attempt to wrap them. For the former, repainting t.maxLine - // works great, but that behaviour goes badly wrong in the case - // of the latter because they have doubled every full line. - - // We assume that we are working on a terminal that wraps lines - // and adjust the cursor position based on every previous line - // wrapping and turning into two. This causes the prompt on - // xterms to move upwards, which isn't great, but it avoids a - // huge mess with gnome-terminal. - if t.cursorX >= t.termWidth { - t.cursorX = t.termWidth - 1 - } - t.cursorY *= 2 - t.clearAndRepaintLinePlusNPrevious(t.maxLine * 2) - case width > oldWidth: - // If the terminal expands then our position calculations will - // be wrong in the future because we think the cursor is - // |t.pos| chars into the string, but there will be a gap at - // the end of any wrapped line. - // - // But the position will actually be correct until we move, so - // we can move back to the beginning and repaint everything. - t.clearAndRepaintLinePlusNPrevious(t.maxLine) - } - - _, err := t.c.Write(t.outBuf) - t.outBuf = t.outBuf[:0] - return err -} - -type pasteIndicatorError struct{} - -func (pasteIndicatorError) Error() string { - return "terminal: ErrPasteIndicator not correctly handled" -} - -// ErrPasteIndicator may be returned from ReadLine as the error, in addition -// to valid line data. It indicates that bracketed paste mode is enabled and -// that the returned line consists only of pasted data. Programs may wish to -// interpret pasted data more literally than typed data. -var ErrPasteIndicator = pasteIndicatorError{} - -// SetBracketedPasteMode requests that the terminal bracket paste operations -// with markers. Not all terminals support this but, if it is supported, then -// enabling this mode will stop any autocomplete callback from running due to -// pastes. Additionally, any lines that are completely pasted will be returned -// from ReadLine with the error set to ErrPasteIndicator. -func (t *Terminal) SetBracketedPasteMode(on bool) { - if on { - io.WriteString(t.c, "\x1b[?2004h") - } else { - io.WriteString(t.c, "\x1b[?2004l") - } -} - -// stRingBuffer is a ring buffer of strings. -type stRingBuffer struct { - // entries contains max elements. - entries []string - max int - // head contains the index of the element most recently added to the ring. - head int - // size contains the number of elements in the ring. - size int -} - -func (s *stRingBuffer) Add(a string) { - if s.entries == nil { - const defaultNumEntries = 100 - s.entries = make([]string, defaultNumEntries) - s.max = defaultNumEntries - } - - s.head = (s.head + 1) % s.max - s.entries[s.head] = a - if s.size < s.max { - s.size++ - } -} - -// NthPreviousEntry returns the value passed to the nth previous call to Add. -// If n is zero then the immediately prior value is returned, if one, then the -// next most recent, and so on. If such an element doesn't exist then ok is -// false. -func (s *stRingBuffer) NthPreviousEntry(n int) (value string, ok bool) { - if n >= s.size { - return "", false - } - index := s.head - n - if index < 0 { - index += s.max - } - return s.entries[index], true -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/terminal_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/terminal_test.go deleted file mode 100644 index a663fe41..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/terminal_test.go +++ /dev/null @@ -1,269 +0,0 @@ -// 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 terminal - -import ( - "io" - "testing" -) - -type MockTerminal struct { - toSend []byte - bytesPerRead int - received []byte -} - -func (c *MockTerminal) Read(data []byte) (n int, err error) { - n = len(data) - if n == 0 { - return - } - if n > len(c.toSend) { - n = len(c.toSend) - } - if n == 0 { - return 0, io.EOF - } - if c.bytesPerRead > 0 && n > c.bytesPerRead { - n = c.bytesPerRead - } - copy(data, c.toSend[:n]) - c.toSend = c.toSend[n:] - return -} - -func (c *MockTerminal) Write(data []byte) (n int, err error) { - c.received = append(c.received, data...) - return len(data), nil -} - -func TestClose(t *testing.T) { - c := &MockTerminal{} - ss := NewTerminal(c, "> ") - line, err := ss.ReadLine() - if line != "" { - t.Errorf("Expected empty line but got: %s", line) - } - if err != io.EOF { - t.Errorf("Error should have been EOF but got: %s", err) - } -} - -var keyPressTests = []struct { - in string - line string - err error - throwAwayLines int -}{ - { - err: io.EOF, - }, - { - in: "\r", - line: "", - }, - { - in: "foo\r", - line: "foo", - }, - { - in: "a\x1b[Cb\r", // right - line: "ab", - }, - { - in: "a\x1b[Db\r", // left - line: "ba", - }, - { - in: "a\177b\r", // backspace - line: "b", - }, - { - in: "\x1b[A\r", // up - }, - { - in: "\x1b[B\r", // down - }, - { - in: "line\x1b[A\x1b[B\r", // up then down - line: "line", - }, - { - in: "line1\rline2\x1b[A\r", // recall previous line. - line: "line1", - throwAwayLines: 1, - }, - { - // recall two previous lines and append. - in: "line1\rline2\rline3\x1b[A\x1b[Axxx\r", - line: "line1xxx", - throwAwayLines: 2, - }, - { - // Ctrl-A to move to beginning of line followed by ^K to kill - // line. - in: "a b \001\013\r", - line: "", - }, - { - // Ctrl-A to move to beginning of line, Ctrl-E to move to end, - // finally ^K to kill nothing. - in: "a b \001\005\013\r", - line: "a b ", - }, - { - in: "\027\r", - line: "", - }, - { - in: "a\027\r", - line: "", - }, - { - in: "a \027\r", - line: "", - }, - { - in: "a b\027\r", - line: "a ", - }, - { - in: "a b \027\r", - line: "a ", - }, - { - in: "one two thr\x1b[D\027\r", - line: "one two r", - }, - { - in: "\013\r", - line: "", - }, - { - in: "a\013\r", - line: "a", - }, - { - in: "ab\x1b[D\013\r", - line: "a", - }, - { - in: "Ξεσκεπάζω\r", - line: "Ξεσκεπάζω", - }, - { - in: "£\r\x1b[A\177\r", // non-ASCII char, enter, up, backspace. - line: "", - throwAwayLines: 1, - }, - { - in: "£\r££\x1b[A\x1b[B\177\r", // non-ASCII char, enter, 2x non-ASCII, up, down, backspace, enter. - line: "£", - throwAwayLines: 1, - }, - { - // Ctrl-D at the end of the line should be ignored. - in: "a\004\r", - line: "a", - }, - { - // a, b, left, Ctrl-D should erase the b. - in: "ab\x1b[D\004\r", - line: "a", - }, - { - // a, b, c, d, left, left, ^U should erase to the beginning of - // the line. - in: "abcd\x1b[D\x1b[D\025\r", - line: "cd", - }, - { - // Bracketed paste mode: control sequences should be returned - // verbatim in paste mode. - in: "abc\x1b[200~de\177f\x1b[201~\177\r", - line: "abcde\177", - }, - { - // Enter in bracketed paste mode should still work. - in: "abc\x1b[200~d\refg\x1b[201~h\r", - line: "efgh", - throwAwayLines: 1, - }, - { - // Lines consisting entirely of pasted data should be indicated as such. - in: "\x1b[200~a\r", - line: "a", - err: ErrPasteIndicator, - }, -} - -func TestKeyPresses(t *testing.T) { - for i, test := range keyPressTests { - for j := 1; j < len(test.in); j++ { - c := &MockTerminal{ - toSend: []byte(test.in), - bytesPerRead: j, - } - ss := NewTerminal(c, "> ") - for k := 0; k < test.throwAwayLines; k++ { - _, err := ss.ReadLine() - if err != nil { - t.Errorf("Throwaway line %d from test %d resulted in error: %s", k, i, err) - } - } - line, err := ss.ReadLine() - if line != test.line { - t.Errorf("Line resulting from test %d (%d bytes per read) was '%s', expected '%s'", i, j, line, test.line) - break - } - if err != test.err { - t.Errorf("Error resulting from test %d (%d bytes per read) was '%v', expected '%v'", i, j, err, test.err) - break - } - } - } -} - -func TestPasswordNotSaved(t *testing.T) { - c := &MockTerminal{ - toSend: []byte("password\r\x1b[A\r"), - bytesPerRead: 1, - } - ss := NewTerminal(c, "> ") - pw, _ := ss.ReadPassword("> ") - if pw != "password" { - t.Fatalf("failed to read password, got %s", pw) - } - line, _ := ss.ReadLine() - if len(line) > 0 { - t.Fatalf("password was saved in history") - } -} - -var setSizeTests = []struct { - width, height int -}{ - {40, 13}, - {80, 24}, - {132, 43}, -} - -func TestTerminalSetSize(t *testing.T) { - for _, setSize := range setSizeTests { - c := &MockTerminal{ - toSend: []byte("password\r\x1b[A\r"), - bytesPerRead: 1, - } - ss := NewTerminal(c, "> ") - ss.SetSize(setSize.width, setSize.height) - pw, _ := ss.ReadPassword("Password: ") - if pw != "password" { - t.Fatalf("failed to read password, got %s", pw) - } - if string(c.received) != "Password: \r\n" { - t.Errorf("failed to set the temporary prompt expected %q, got %q", "Password: ", c.received) - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util.go deleted file mode 100644 index 0763c9a9..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util.go +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux,!appengine netbsd openbsd - -// Package terminal provides support functions for dealing with terminals, as -// commonly found on UNIX systems. -// -// Putting a terminal into raw mode is the most common requirement: -// -// oldState, err := terminal.MakeRaw(0) -// if err != nil { -// panic(err) -// } -// defer terminal.Restore(0, oldState) -package terminal - -import ( - "io" - "syscall" - "unsafe" -) - -// State contains the state of a terminal. -type State struct { - termios syscall.Termios -} - -// IsTerminal returns true if the given file descriptor is a terminal. -func IsTerminal(fd int) bool { - var termios syscall.Termios - _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) - return err == 0 -} - -// MakeRaw put the terminal connected to the given file descriptor into raw -// mode and returns the previous state of the terminal so that it can be -// restored. -func MakeRaw(fd int) (*State, error) { - var oldState State - if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState.termios)), 0, 0, 0); err != 0 { - return nil, err - } - - newState := oldState.termios - newState.Iflag &^= syscall.ISTRIP | syscall.INLCR | syscall.ICRNL | syscall.IGNCR | syscall.IXON | syscall.IXOFF - newState.Lflag &^= syscall.ECHO | syscall.ICANON | syscall.ISIG - if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&newState)), 0, 0, 0); err != 0 { - return nil, err - } - - return &oldState, nil -} - -// GetState returns the current state of a terminal which may be useful to -// restore the terminal after a signal. -func GetState(fd int) (*State, error) { - var oldState State - if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState.termios)), 0, 0, 0); err != 0 { - return nil, err - } - - return &oldState, nil -} - -// Restore restores the terminal connected to the given file descriptor to a -// previous state. -func Restore(fd int, state *State) error { - _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&state.termios)), 0, 0, 0) - return err -} - -// GetSize returns the dimensions of the given terminal. -func GetSize(fd int) (width, height int, err error) { - var dimensions [4]uint16 - - if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), uintptr(syscall.TIOCGWINSZ), uintptr(unsafe.Pointer(&dimensions)), 0, 0, 0); err != 0 { - return -1, -1, err - } - return int(dimensions[1]), int(dimensions[0]), nil -} - -// ReadPassword reads a line of input from a terminal without local echo. This -// is commonly used for inputting passwords and other sensitive data. The slice -// returned does not include the \n. -func ReadPassword(fd int) ([]byte, error) { - var oldState syscall.Termios - if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState)), 0, 0, 0); err != 0 { - return nil, err - } - - newState := oldState - newState.Lflag &^= syscall.ECHO - newState.Lflag |= syscall.ICANON | syscall.ISIG - newState.Iflag |= syscall.ICRNL - if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&newState)), 0, 0, 0); err != 0 { - return nil, err - } - - defer func() { - syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&oldState)), 0, 0, 0) - }() - - var buf [16]byte - var ret []byte - for { - n, err := syscall.Read(fd, buf[:]) - if err != nil { - return nil, err - } - if n == 0 { - if len(ret) == 0 { - return nil, io.EOF - } - break - } - if buf[n-1] == '\n' { - n-- - } - ret = append(ret, buf[:n]...) - if n < len(buf) { - break - } - } - - return ret, nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util_bsd.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util_bsd.go deleted file mode 100644 index 9c1ffd14..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util_bsd.go +++ /dev/null @@ -1,12 +0,0 @@ -// 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. - -// +build darwin dragonfly freebsd netbsd openbsd - -package terminal - -import "syscall" - -const ioctlReadTermios = syscall.TIOCGETA -const ioctlWriteTermios = syscall.TIOCSETA diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util_linux.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util_linux.go deleted file mode 100644 index 5883b22d..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util_linux.go +++ /dev/null @@ -1,11 +0,0 @@ -// 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 terminal - -// These constants are declared here, rather than importing -// them from the syscall package as some syscall packages, even -// on linux, for example gccgo, do not declare them. -const ioctlReadTermios = 0x5401 // syscall.TCGETS -const ioctlWriteTermios = 0x5402 // syscall.TCSETS diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util_windows.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util_windows.go deleted file mode 100644 index 2dd6c3d9..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal/util_windows.go +++ /dev/null @@ -1,174 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -// Package terminal provides support functions for dealing with terminals, as -// commonly found on UNIX systems. -// -// Putting a terminal into raw mode is the most common requirement: -// -// oldState, err := terminal.MakeRaw(0) -// if err != nil { -// panic(err) -// } -// defer terminal.Restore(0, oldState) -package terminal - -import ( - "io" - "syscall" - "unsafe" -) - -const ( - enableLineInput = 2 - enableEchoInput = 4 - enableProcessedInput = 1 - enableWindowInput = 8 - enableMouseInput = 16 - enableInsertMode = 32 - enableQuickEditMode = 64 - enableExtendedFlags = 128 - enableAutoPosition = 256 - enableProcessedOutput = 1 - enableWrapAtEolOutput = 2 -) - -var kernel32 = syscall.NewLazyDLL("kernel32.dll") - -var ( - procGetConsoleMode = kernel32.NewProc("GetConsoleMode") - procSetConsoleMode = kernel32.NewProc("SetConsoleMode") - procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo") -) - -type ( - short int16 - word uint16 - - coord struct { - x short - y short - } - smallRect struct { - left short - top short - right short - bottom short - } - consoleScreenBufferInfo struct { - size coord - cursorPosition coord - attributes word - window smallRect - maximumWindowSize coord - } -) - -type State struct { - mode uint32 -} - -// IsTerminal returns true if the given file descriptor is a terminal. -func IsTerminal(fd int) bool { - var st uint32 - r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) - return r != 0 && e == 0 -} - -// MakeRaw put the terminal connected to the given file descriptor into raw -// mode and returns the previous state of the terminal so that it can be -// restored. -func MakeRaw(fd int) (*State, error) { - var st uint32 - _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) - if e != 0 { - return nil, error(e) - } - st &^= (enableEchoInput | enableProcessedInput | enableLineInput | enableProcessedOutput) - _, _, e = syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(st), 0) - if e != 0 { - return nil, error(e) - } - return &State{st}, nil -} - -// GetState returns the current state of a terminal which may be useful to -// restore the terminal after a signal. -func GetState(fd int) (*State, error) { - var st uint32 - _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) - if e != 0 { - return nil, error(e) - } - return &State{st}, nil -} - -// Restore restores the terminal connected to the given file descriptor to a -// previous state. -func Restore(fd int, state *State) error { - _, _, err := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(state.mode), 0) - return err -} - -// GetSize returns the dimensions of the given terminal. -func GetSize(fd int) (width, height int, err error) { - var info consoleScreenBufferInfo - _, _, e := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&info)), 0) - if e != 0 { - return 0, 0, error(e) - } - return int(info.size.x), int(info.size.y), nil -} - -// ReadPassword reads a line of input from a terminal without local echo. This -// is commonly used for inputting passwords and other sensitive data. The slice -// returned does not include the \n. -func ReadPassword(fd int) ([]byte, error) { - var st uint32 - _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) - if e != 0 { - return nil, error(e) - } - old := st - - st &^= (enableEchoInput) - st |= (enableProcessedInput | enableLineInput | enableProcessedOutput) - _, _, e = syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(st), 0) - if e != 0 { - return nil, error(e) - } - - defer func() { - syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(old), 0) - }() - - var buf [16]byte - var ret []byte - for { - n, err := syscall.Read(syscall.Handle(fd), buf[:]) - if err != nil { - return nil, err - } - if n == 0 { - if len(ret) == 0 { - return nil, io.EOF - } - break - } - if buf[n-1] == '\n' { - n-- - } - if n > 0 && buf[n-1] == '\r' { - n-- - } - ret = append(ret, buf[:n]...) - if n < len(buf) { - break - } - } - - return ret, nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/agent_unix_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/agent_unix_test.go deleted file mode 100644 index ab7176b6..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/agent_unix_test.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd - -package test - -import ( - "bytes" - "testing" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/agent" -) - -func TestAgentForward(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - keyring := agent.NewKeyring() - if err := keyring.Add(agent.AddedKey{PrivateKey: testPrivateKeys["dsa"]}); err != nil { - t.Fatalf("Error adding key: %s", err) - } - if err := keyring.Add(agent.AddedKey{ - PrivateKey: testPrivateKeys["dsa"], - ConfirmBeforeUse: true, - LifetimeSecs: 3600, - }); err != nil { - t.Fatalf("Error adding key with constraints: %s", err) - } - pub := testPublicKeys["dsa"] - - sess, err := conn.NewSession() - if err != nil { - t.Fatalf("NewSession: %v", err) - } - if err := agent.RequestAgentForwarding(sess); err != nil { - t.Fatalf("RequestAgentForwarding: %v", err) - } - - if err := agent.ForwardToAgent(conn, keyring); err != nil { - t.Fatalf("SetupForwardKeyring: %v", err) - } - out, err := sess.CombinedOutput("ssh-add -L") - if err != nil { - t.Fatalf("running ssh-add: %v, out %s", err, out) - } - key, _, _, _, err := ssh.ParseAuthorizedKey(out) - if err != nil { - t.Fatalf("ParseAuthorizedKey(%q): %v", out, err) - } - - if !bytes.Equal(key.Marshal(), pub.Marshal()) { - t.Fatalf("got key %s, want %s", ssh.MarshalAuthorizedKey(key), ssh.MarshalAuthorizedKey(pub)) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/cert_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/cert_test.go deleted file mode 100644 index f5a2d353..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/cert_test.go +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd - -package test - -import ( - "crypto/rand" - "testing" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh" -) - -func TestCertLogin(t *testing.T) { - s := newServer(t) - defer s.Shutdown() - - // Use a key different from the default. - clientKey := testSigners["dsa"] - caAuthKey := testSigners["ecdsa"] - cert := &ssh.Certificate{ - Key: clientKey.PublicKey(), - ValidPrincipals: []string{username()}, - CertType: ssh.UserCert, - ValidBefore: ssh.CertTimeInfinity, - } - if err := cert.SignCert(rand.Reader, caAuthKey); err != nil { - t.Fatalf("SetSignature: %v", err) - } - - certSigner, err := ssh.NewCertSigner(cert, clientKey) - if err != nil { - t.Fatalf("NewCertSigner: %v", err) - } - - conf := &ssh.ClientConfig{ - User: username(), - } - conf.Auth = append(conf.Auth, ssh.PublicKeys(certSigner)) - client, err := s.TryDial(conf) - if err != nil { - t.Fatalf("TryDial: %v", err) - } - client.Close() -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/doc.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/doc.go deleted file mode 100644 index 29ad65e9..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/doc.go +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2012 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. - -// This package contains integration tests for the -// golang.org/x/crypto/ssh package. -package test diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/forward_unix_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/forward_unix_test.go deleted file mode 100644 index 877a88cd..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/forward_unix_test.go +++ /dev/null @@ -1,160 +0,0 @@ -// Copyright 2012 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 darwin dragonfly freebsd linux netbsd openbsd - -package test - -import ( - "bytes" - "io" - "io/ioutil" - "math/rand" - "net" - "testing" - "time" -) - -func TestPortForward(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - sshListener, err := conn.Listen("tcp", "localhost:0") - if err != nil { - t.Fatal(err) - } - - go func() { - sshConn, err := sshListener.Accept() - if err != nil { - t.Fatalf("listen.Accept failed: %v", err) - } - - _, err = io.Copy(sshConn, sshConn) - if err != nil && err != io.EOF { - t.Fatalf("ssh client copy: %v", err) - } - sshConn.Close() - }() - - forwardedAddr := sshListener.Addr().String() - tcpConn, err := net.Dial("tcp", forwardedAddr) - if err != nil { - t.Fatalf("TCP dial failed: %v", err) - } - - readChan := make(chan []byte) - go func() { - data, _ := ioutil.ReadAll(tcpConn) - readChan <- data - }() - - // Invent some data. - data := make([]byte, 100*1000) - for i := range data { - data[i] = byte(i % 255) - } - - var sent []byte - for len(sent) < 1000*1000 { - // Send random sized chunks - m := rand.Intn(len(data)) - n, err := tcpConn.Write(data[:m]) - if err != nil { - break - } - sent = append(sent, data[:n]...) - } - if err := tcpConn.(*net.TCPConn).CloseWrite(); err != nil { - t.Errorf("tcpConn.CloseWrite: %v", err) - } - - read := <-readChan - - if len(sent) != len(read) { - t.Fatalf("got %d bytes, want %d", len(read), len(sent)) - } - if bytes.Compare(sent, read) != 0 { - t.Fatalf("read back data does not match") - } - - if err := sshListener.Close(); err != nil { - t.Fatalf("sshListener.Close: %v", err) - } - - // Check that the forward disappeared. - tcpConn, err = net.Dial("tcp", forwardedAddr) - if err == nil { - tcpConn.Close() - t.Errorf("still listening to %s after closing", forwardedAddr) - } -} - -func TestAcceptClose(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - - sshListener, err := conn.Listen("tcp", "localhost:0") - if err != nil { - t.Fatal(err) - } - - quit := make(chan error, 1) - go func() { - for { - c, err := sshListener.Accept() - if err != nil { - quit <- err - break - } - c.Close() - } - }() - sshListener.Close() - - select { - case <-time.After(1 * time.Second): - t.Errorf("timeout: listener did not close.") - case err := <-quit: - t.Logf("quit as expected (error %v)", err) - } -} - -// Check that listeners exit if the underlying client transport dies. -func TestPortForwardConnectionClose(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - - sshListener, err := conn.Listen("tcp", "localhost:0") - if err != nil { - t.Fatal(err) - } - - quit := make(chan error, 1) - go func() { - for { - c, err := sshListener.Accept() - if err != nil { - quit <- err - break - } - c.Close() - } - }() - - // It would be even nicer if we closed the server side, but it - // is more involved as the fd for that side is dup()ed. - server.clientConn.Close() - - select { - case <-time.After(1 * time.Second): - t.Errorf("timeout: listener did not close.") - case err := <-quit: - t.Logf("quit as expected (error %v)", err) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/session_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/session_test.go deleted file mode 100644 index 624df8f0..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/session_test.go +++ /dev/null @@ -1,340 +0,0 @@ -// Copyright 2012 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 !windows - -package test - -// Session functional tests. - -import ( - "bytes" - "errors" - "io" - "strings" - "testing" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh" -) - -func TestRunCommandSuccess(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - defer session.Close() - err = session.Run("true") - if err != nil { - t.Fatalf("session failed: %v", err) - } -} - -func TestHostKeyCheck(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - - conf := clientConfig() - hostDB := hostKeyDB() - conf.HostKeyCallback = hostDB.Check - - // change the keys. - hostDB.keys[ssh.KeyAlgoRSA][25]++ - hostDB.keys[ssh.KeyAlgoDSA][25]++ - hostDB.keys[ssh.KeyAlgoECDSA256][25]++ - - conn, err := server.TryDial(conf) - if err == nil { - conn.Close() - t.Fatalf("dial should have failed.") - } else if !strings.Contains(err.Error(), "host key mismatch") { - t.Fatalf("'host key mismatch' not found in %v", err) - } -} - -func TestRunCommandStdin(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - defer session.Close() - - r, w := io.Pipe() - defer r.Close() - defer w.Close() - session.Stdin = r - - err = session.Run("true") - if err != nil { - t.Fatalf("session failed: %v", err) - } -} - -func TestRunCommandStdinError(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - defer session.Close() - - r, w := io.Pipe() - defer r.Close() - session.Stdin = r - pipeErr := errors.New("closing write end of pipe") - w.CloseWithError(pipeErr) - - err = session.Run("true") - if err != pipeErr { - t.Fatalf("expected %v, found %v", pipeErr, err) - } -} - -func TestRunCommandFailed(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - defer session.Close() - err = session.Run(`bash -c "kill -9 $$"`) - if err == nil { - t.Fatalf("session succeeded: %v", err) - } -} - -func TestRunCommandWeClosed(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - err = session.Shell() - if err != nil { - t.Fatalf("shell failed: %v", err) - } - err = session.Close() - if err != nil { - t.Fatalf("shell failed: %v", err) - } -} - -func TestFuncLargeRead(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("unable to create new session: %s", err) - } - - stdout, err := session.StdoutPipe() - if err != nil { - t.Fatalf("unable to acquire stdout pipe: %s", err) - } - - err = session.Start("dd if=/dev/urandom bs=2048 count=1024") - if err != nil { - t.Fatalf("unable to execute remote command: %s", err) - } - - buf := new(bytes.Buffer) - n, err := io.Copy(buf, stdout) - if err != nil { - t.Fatalf("error reading from remote stdout: %s", err) - } - - if n != 2048*1024 { - t.Fatalf("Expected %d bytes but read only %d from remote command", 2048, n) - } -} - -func TestKeyChange(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conf := clientConfig() - hostDB := hostKeyDB() - conf.HostKeyCallback = hostDB.Check - conf.RekeyThreshold = 1024 - conn := server.Dial(conf) - defer conn.Close() - - for i := 0; i < 4; i++ { - session, err := conn.NewSession() - if err != nil { - t.Fatalf("unable to create new session: %s", err) - } - - stdout, err := session.StdoutPipe() - if err != nil { - t.Fatalf("unable to acquire stdout pipe: %s", err) - } - - err = session.Start("dd if=/dev/urandom bs=1024 count=1") - if err != nil { - t.Fatalf("unable to execute remote command: %s", err) - } - buf := new(bytes.Buffer) - n, err := io.Copy(buf, stdout) - if err != nil { - t.Fatalf("error reading from remote stdout: %s", err) - } - - want := int64(1024) - if n != want { - t.Fatalf("Expected %d bytes but read only %d from remote command", want, n) - } - } - - if changes := hostDB.checkCount; changes < 4 { - t.Errorf("got %d key changes, want 4", changes) - } -} - -func TestInvalidTerminalMode(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - defer session.Close() - - if err = session.RequestPty("vt100", 80, 40, ssh.TerminalModes{255: 1984}); err == nil { - t.Fatalf("req-pty failed: successful request with invalid mode") - } -} - -func TestValidTerminalMode(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - defer session.Close() - - stdout, err := session.StdoutPipe() - if err != nil { - t.Fatalf("unable to acquire stdout pipe: %s", err) - } - - stdin, err := session.StdinPipe() - if err != nil { - t.Fatalf("unable to acquire stdin pipe: %s", err) - } - - tm := ssh.TerminalModes{ssh.ECHO: 0} - if err = session.RequestPty("xterm", 80, 40, tm); err != nil { - t.Fatalf("req-pty failed: %s", err) - } - - err = session.Shell() - if err != nil { - t.Fatalf("session failed: %s", err) - } - - stdin.Write([]byte("stty -a && exit\n")) - - var buf bytes.Buffer - if _, err := io.Copy(&buf, stdout); err != nil { - t.Fatalf("reading failed: %s", err) - } - - if sttyOutput := buf.String(); !strings.Contains(sttyOutput, "-echo ") { - t.Fatalf("terminal mode failure: expected -echo in stty output, got %s", sttyOutput) - } -} - -func TestCiphers(t *testing.T) { - var config ssh.Config - config.SetDefaults() - cipherOrder := config.Ciphers - // This cipher will not be tested when commented out in cipher.go it will - // fallback to the next available as per line 292. - cipherOrder = append(cipherOrder, "aes128-cbc") - - for _, ciph := range cipherOrder { - server := newServer(t) - defer server.Shutdown() - conf := clientConfig() - conf.Ciphers = []string{ciph} - // Don't fail if sshd doesnt have the cipher. - conf.Ciphers = append(conf.Ciphers, cipherOrder...) - conn, err := server.TryDial(conf) - if err == nil { - conn.Close() - } else { - t.Fatalf("failed for cipher %q", ciph) - } - } -} - -func TestMACs(t *testing.T) { - var config ssh.Config - config.SetDefaults() - macOrder := config.MACs - - for _, mac := range macOrder { - server := newServer(t) - defer server.Shutdown() - conf := clientConfig() - conf.MACs = []string{mac} - // Don't fail if sshd doesnt have the MAC. - conf.MACs = append(conf.MACs, macOrder...) - if conn, err := server.TryDial(conf); err == nil { - conn.Close() - } else { - t.Fatalf("failed for MAC %q", mac) - } - } -} - -func TestKeyExchanges(t *testing.T) { - var config ssh.Config - config.SetDefaults() - kexOrder := config.KeyExchanges - for _, kex := range kexOrder { - server := newServer(t) - defer server.Shutdown() - conf := clientConfig() - // Don't fail if sshd doesnt have the kex. - conf.KeyExchanges = append([]string{kex}, kexOrder...) - conn, err := server.TryDial(conf) - if err == nil { - conn.Close() - } else { - t.Errorf("failed for kex %q", kex) - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/tcpip_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/tcpip_test.go deleted file mode 100644 index a2eb9358..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/tcpip_test.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2012 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 !windows - -package test - -// direct-tcpip functional tests - -import ( - "io" - "net" - "testing" -) - -func TestDial(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - sshConn := server.Dial(clientConfig()) - defer sshConn.Close() - - l, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - t.Fatalf("Listen: %v", err) - } - defer l.Close() - - go func() { - for { - c, err := l.Accept() - if err != nil { - break - } - - io.WriteString(c, c.RemoteAddr().String()) - c.Close() - } - }() - - conn, err := sshConn.Dial("tcp", l.Addr().String()) - if err != nil { - t.Fatalf("Dial: %v", err) - } - defer conn.Close() -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/test_unix_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/test_unix_test.go deleted file mode 100644 index 459af4c3..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/test_unix_test.go +++ /dev/null @@ -1,261 +0,0 @@ -// Copyright 2012 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 darwin dragonfly freebsd linux netbsd openbsd plan9 - -package test - -// functional test harness for unix. - -import ( - "bytes" - "fmt" - "io/ioutil" - "log" - "net" - "os" - "os/exec" - "os/user" - "path/filepath" - "testing" - "text/template" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata" -) - -const sshd_config = ` -Protocol 2 -HostKey {{.Dir}}/id_rsa -HostKey {{.Dir}}/id_dsa -HostKey {{.Dir}}/id_ecdsa -Pidfile {{.Dir}}/sshd.pid -#UsePrivilegeSeparation no -KeyRegenerationInterval 3600 -ServerKeyBits 768 -SyslogFacility AUTH -LogLevel DEBUG2 -LoginGraceTime 120 -PermitRootLogin no -StrictModes no -RSAAuthentication yes -PubkeyAuthentication yes -AuthorizedKeysFile {{.Dir}}/id_user.pub -TrustedUserCAKeys {{.Dir}}/id_ecdsa.pub -IgnoreRhosts yes -RhostsRSAAuthentication no -HostbasedAuthentication no -` - -var configTmpl = template.Must(template.New("").Parse(sshd_config)) - -type server struct { - t *testing.T - cleanup func() // executed during Shutdown - configfile string - cmd *exec.Cmd - output bytes.Buffer // holds stderr from sshd process - - // Client half of the network connection. - clientConn net.Conn -} - -func username() string { - var username string - if user, err := user.Current(); err == nil { - username = user.Username - } else { - // user.Current() currently requires cgo. If an error is - // returned attempt to get the username from the environment. - log.Printf("user.Current: %v; falling back on $USER", err) - username = os.Getenv("USER") - } - if username == "" { - panic("Unable to get username") - } - return username -} - -type storedHostKey struct { - // keys map from an algorithm string to binary key data. - keys map[string][]byte - - // checkCount counts the Check calls. Used for testing - // rekeying. - checkCount int -} - -func (k *storedHostKey) Add(key ssh.PublicKey) { - if k.keys == nil { - k.keys = map[string][]byte{} - } - k.keys[key.Type()] = key.Marshal() -} - -func (k *storedHostKey) Check(addr string, remote net.Addr, key ssh.PublicKey) error { - k.checkCount++ - algo := key.Type() - - if k.keys == nil || bytes.Compare(key.Marshal(), k.keys[algo]) != 0 { - return fmt.Errorf("host key mismatch. Got %q, want %q", key, k.keys[algo]) - } - return nil -} - -func hostKeyDB() *storedHostKey { - keyChecker := &storedHostKey{} - keyChecker.Add(testPublicKeys["ecdsa"]) - keyChecker.Add(testPublicKeys["rsa"]) - keyChecker.Add(testPublicKeys["dsa"]) - return keyChecker -} - -func clientConfig() *ssh.ClientConfig { - config := &ssh.ClientConfig{ - User: username(), - Auth: []ssh.AuthMethod{ - ssh.PublicKeys(testSigners["user"]), - }, - HostKeyCallback: hostKeyDB().Check, - } - return config -} - -// unixConnection creates two halves of a connected net.UnixConn. It -// is used for connecting the Go SSH client with sshd without opening -// ports. -func unixConnection() (*net.UnixConn, *net.UnixConn, error) { - dir, err := ioutil.TempDir("", "unixConnection") - if err != nil { - return nil, nil, err - } - defer os.Remove(dir) - - addr := filepath.Join(dir, "ssh") - listener, err := net.Listen("unix", addr) - if err != nil { - return nil, nil, err - } - defer listener.Close() - c1, err := net.Dial("unix", addr) - if err != nil { - return nil, nil, err - } - - c2, err := listener.Accept() - if err != nil { - c1.Close() - return nil, nil, err - } - - return c1.(*net.UnixConn), c2.(*net.UnixConn), nil -} - -func (s *server) TryDial(config *ssh.ClientConfig) (*ssh.Client, error) { - sshd, err := exec.LookPath("sshd") - if err != nil { - s.t.Skipf("skipping test: %v", err) - } - - c1, c2, err := unixConnection() - if err != nil { - s.t.Fatalf("unixConnection: %v", err) - } - - s.cmd = exec.Command(sshd, "-f", s.configfile, "-i", "-e") - f, err := c2.File() - if err != nil { - s.t.Fatalf("UnixConn.File: %v", err) - } - defer f.Close() - s.cmd.Stdin = f - s.cmd.Stdout = f - s.cmd.Stderr = &s.output - if err := s.cmd.Start(); err != nil { - s.t.Fail() - s.Shutdown() - s.t.Fatalf("s.cmd.Start: %v", err) - } - s.clientConn = c1 - conn, chans, reqs, err := ssh.NewClientConn(c1, "", config) - if err != nil { - return nil, err - } - return ssh.NewClient(conn, chans, reqs), nil -} - -func (s *server) Dial(config *ssh.ClientConfig) *ssh.Client { - conn, err := s.TryDial(config) - if err != nil { - s.t.Fail() - s.Shutdown() - s.t.Fatalf("ssh.Client: %v", err) - } - return conn -} - -func (s *server) Shutdown() { - if s.cmd != nil && s.cmd.Process != nil { - // Don't check for errors; if it fails it's most - // likely "os: process already finished", and we don't - // care about that. Use os.Interrupt, so child - // processes are killed too. - s.cmd.Process.Signal(os.Interrupt) - s.cmd.Wait() - } - if s.t.Failed() { - // log any output from sshd process - s.t.Logf("sshd: %s", s.output.String()) - } - s.cleanup() -} - -func writeFile(path string, contents []byte) { - f, err := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0600) - if err != nil { - panic(err) - } - defer f.Close() - if _, err := f.Write(contents); err != nil { - panic(err) - } -} - -// newServer returns a new mock ssh server. -func newServer(t *testing.T) *server { - if testing.Short() { - t.Skip("skipping test due to -short") - } - dir, err := ioutil.TempDir("", "sshtest") - if err != nil { - t.Fatal(err) - } - f, err := os.Create(filepath.Join(dir, "sshd_config")) - if err != nil { - t.Fatal(err) - } - err = configTmpl.Execute(f, map[string]string{ - "Dir": dir, - }) - if err != nil { - t.Fatal(err) - } - f.Close() - - for k, v := range testdata.PEMBytes { - filename := "id_" + k - writeFile(filepath.Join(dir, filename), v) - writeFile(filepath.Join(dir, filename+".pub"), ssh.MarshalAuthorizedKey(testPublicKeys[k])) - } - - return &server{ - t: t, - configfile: f.Name(), - cleanup: func() { - if err := os.RemoveAll(dir); err != nil { - t.Error(err) - } - }, - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/testdata_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/testdata_test.go deleted file mode 100644 index 1077705a..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/test/testdata_test.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// IMPLEMENTOR NOTE: To avoid a package loop, this file is in three places: -// ssh/, ssh/agent, and ssh/test/. It should be kept in sync across all three -// instances. - -package test - -import ( - "crypto/rand" - "fmt" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh" - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata" -) - -var ( - testPrivateKeys map[string]interface{} - testSigners map[string]ssh.Signer - testPublicKeys map[string]ssh.PublicKey -) - -func init() { - var err error - - n := len(testdata.PEMBytes) - testPrivateKeys = make(map[string]interface{}, n) - testSigners = make(map[string]ssh.Signer, n) - testPublicKeys = make(map[string]ssh.PublicKey, n) - for t, k := range testdata.PEMBytes { - testPrivateKeys[t], err = ssh.ParseRawPrivateKey(k) - if err != nil { - panic(fmt.Sprintf("Unable to parse test key %s: %v", t, err)) - } - testSigners[t], err = ssh.NewSignerFromKey(testPrivateKeys[t]) - if err != nil { - panic(fmt.Sprintf("Unable to create signer for test key %s: %v", t, err)) - } - testPublicKeys[t] = testSigners[t].PublicKey() - } - - // Create a cert and sign it for use in tests. - testCert := &ssh.Certificate{ - Nonce: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil - ValidPrincipals: []string{"gopher1", "gopher2"}, // increases test coverage - ValidAfter: 0, // unix epoch - ValidBefore: ssh.CertTimeInfinity, // The end of currently representable time. - Reserved: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil - Key: testPublicKeys["ecdsa"], - SignatureKey: testPublicKeys["rsa"], - Permissions: ssh.Permissions{ - CriticalOptions: map[string]string{}, - Extensions: map[string]string{}, - }, - } - testCert.SignCert(rand.Reader, testSigners["rsa"]) - testPrivateKeys["cert"] = testPrivateKeys["ecdsa"] - testSigners["cert"], err = ssh.NewCertSigner(testCert, testSigners["ecdsa"]) - if err != nil { - panic(fmt.Sprintf("Unable to create certificate signer: %v", err)) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata/doc.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata/doc.go deleted file mode 100644 index ae7bd8b8..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This package contains test data shared between the various subpackages of -// the golang.org/x/crypto/ssh package. Under no circumstance should -// this data be used for production code. -package testdata diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata/keys.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata/keys.go deleted file mode 100644 index 5ff1c0e0..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata/keys.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package testdata - -var PEMBytes = map[string][]byte{ - "dsa": []byte(`-----BEGIN DSA PRIVATE KEY----- -MIIBuwIBAAKBgQD6PDSEyXiI9jfNs97WuM46MSDCYlOqWw80ajN16AohtBncs1YB -lHk//dQOvCYOsYaE+gNix2jtoRjwXhDsc25/IqQbU1ahb7mB8/rsaILRGIbA5WH3 -EgFtJmXFovDz3if6F6TzvhFpHgJRmLYVR8cqsezL3hEZOvvs2iH7MorkxwIVAJHD -nD82+lxh2fb4PMsIiaXudAsBAoGAQRf7Q/iaPRn43ZquUhd6WwvirqUj+tkIu6eV -2nZWYmXLlqFQKEy4Tejl7Wkyzr2OSYvbXLzo7TNxLKoWor6ips0phYPPMyXld14r -juhT24CrhOzuLMhDduMDi032wDIZG4Y+K7ElU8Oufn8Sj5Wge8r6ANmmVgmFfynr -FhdYCngCgYEA3ucGJ93/Mx4q4eKRDxcWD3QzWyqpbRVRRV1Vmih9Ha/qC994nJFz -DQIdjxDIT2Rk2AGzMqFEB68Zc3O+Wcsmz5eWWzEwFxaTwOGWTyDqsDRLm3fD+QYj -nOwuxb0Kce+gWI8voWcqC9cyRm09jGzu2Ab3Bhtpg8JJ8L7gS3MRZK4CFEx4UAfY -Fmsr0W6fHB9nhS4/UXM8 ------END DSA PRIVATE KEY----- -`), - "ecdsa": []byte(`-----BEGIN EC PRIVATE KEY----- -MHcCAQEEINGWx0zo6fhJ/0EAfrPzVFyFC9s18lBt3cRoEDhS3ARooAoGCCqGSM49 -AwEHoUQDQgAEi9Hdw6KvZcWxfg2IDhA7UkpDtzzt6ZqJXSsFdLd+Kx4S3Sx4cVO+ -6/ZOXRnPmNAlLUqjShUsUBBngG0u2fqEqA== ------END EC PRIVATE KEY----- -`), - "rsa": []byte(`-----BEGIN RSA PRIVATE KEY----- -MIIBOwIBAAJBALdGZxkXDAjsYk10ihwU6Id2KeILz1TAJuoq4tOgDWxEEGeTrcld -r/ZwVaFzjWzxaf6zQIJbfaSEAhqD5yo72+sCAwEAAQJBAK8PEVU23Wj8mV0QjwcJ -tZ4GcTUYQL7cF4+ezTCE9a1NrGnCP2RuQkHEKxuTVrxXt+6OF15/1/fuXnxKjmJC -nxkCIQDaXvPPBi0c7vAxGwNY9726x01/dNbHCE0CBtcotobxpwIhANbbQbh3JHVW -2haQh4fAG5mhesZKAGcxTyv4mQ7uMSQdAiAj+4dzMpJWdSzQ+qGHlHMIBvVHLkqB -y2VdEyF7DPCZewIhAI7GOI/6LDIFOvtPo6Bj2nNmyQ1HU6k/LRtNIXi4c9NJAiAr -rrxx26itVhJmcvoUhOjwuzSlP2bE5VHAvkGB352YBg== ------END RSA PRIVATE KEY----- -`), - "user": []byte(`-----BEGIN EC PRIVATE KEY----- -MHcCAQEEILYCAeq8f7V4vSSypRw7pxy8yz3V5W4qg8kSC3zJhqpQoAoGCCqGSM49 -AwEHoUQDQgAEYcO2xNKiRUYOLEHM7VYAp57HNyKbOdYtHD83Z4hzNPVC4tM5mdGD -PLL8IEwvYu2wq+lpXfGQnNMbzYf9gspG0w== ------END EC PRIVATE KEY----- -`), -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata_test.go deleted file mode 100644 index e4fe038e..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata_test.go +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// IMPLEMENTOR NOTE: To avoid a package loop, this file is in three places: -// ssh/, ssh/agent, and ssh/test/. It should be kept in sync across all three -// instances. - -package ssh - -import ( - "crypto/rand" - "fmt" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/testdata" -) - -var ( - testPrivateKeys map[string]interface{} - testSigners map[string]Signer - testPublicKeys map[string]PublicKey -) - -func init() { - var err error - - n := len(testdata.PEMBytes) - testPrivateKeys = make(map[string]interface{}, n) - testSigners = make(map[string]Signer, n) - testPublicKeys = make(map[string]PublicKey, n) - for t, k := range testdata.PEMBytes { - testPrivateKeys[t], err = ParseRawPrivateKey(k) - if err != nil { - panic(fmt.Sprintf("Unable to parse test key %s: %v", t, err)) - } - testSigners[t], err = NewSignerFromKey(testPrivateKeys[t]) - if err != nil { - panic(fmt.Sprintf("Unable to create signer for test key %s: %v", t, err)) - } - testPublicKeys[t] = testSigners[t].PublicKey() - } - - // Create a cert and sign it for use in tests. - testCert := &Certificate{ - Nonce: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil - ValidPrincipals: []string{"gopher1", "gopher2"}, // increases test coverage - ValidAfter: 0, // unix epoch - ValidBefore: CertTimeInfinity, // The end of currently representable time. - Reserved: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil - Key: testPublicKeys["ecdsa"], - SignatureKey: testPublicKeys["rsa"], - Permissions: Permissions{ - CriticalOptions: map[string]string{}, - Extensions: map[string]string{}, - }, - } - testCert.SignCert(rand.Reader, testSigners["rsa"]) - testPrivateKeys["cert"] = testPrivateKeys["ecdsa"] - testSigners["cert"], err = NewCertSigner(testCert, testSigners["ecdsa"]) - if err != nil { - panic(fmt.Sprintf("Unable to create certificate signer: %v", err)) - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/transport.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/transport.go deleted file mode 100644 index 8351d378..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/transport.go +++ /dev/null @@ -1,332 +0,0 @@ -// 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 ssh - -import ( - "bufio" - "errors" - "io" -) - -const ( - gcmCipherID = "aes128-gcm@openssh.com" - aes128cbcID = "aes128-cbc" -) - -// packetConn represents a transport that implements packet based -// operations. -type packetConn interface { - // Encrypt and send a packet of data to the remote peer. - writePacket(packet []byte) error - - // Read a packet from the connection - readPacket() ([]byte, error) - - // Close closes the write-side of the connection. - Close() error -} - -// transport is the keyingTransport that implements the SSH packet -// protocol. -type transport struct { - reader connectionState - writer connectionState - - bufReader *bufio.Reader - bufWriter *bufio.Writer - rand io.Reader - - io.Closer - - // Initial H used for the session ID. Once assigned this does - // not change, even during subsequent key exchanges. - sessionID []byte -} - -// getSessionID returns the ID of the SSH connection. The return value -// should not be modified. -func (t *transport) getSessionID() []byte { - if t.sessionID == nil { - panic("session ID not set yet") - } - return t.sessionID -} - -// packetCipher represents a combination of SSH encryption/MAC -// protocol. A single instance should be used for one direction only. -type packetCipher interface { - // writePacket encrypts the packet and writes it to w. The - // contents of the packet are generally scrambled. - writePacket(seqnum uint32, w io.Writer, rand io.Reader, packet []byte) error - - // readPacket reads and decrypts a packet of data. The - // returned packet may be overwritten by future calls of - // readPacket. - readPacket(seqnum uint32, r io.Reader) ([]byte, error) -} - -// connectionState represents one side (read or write) of the -// connection. This is necessary because each direction has its own -// keys, and can even have its own algorithms -type connectionState struct { - packetCipher - seqNum uint32 - dir direction - pendingKeyChange chan packetCipher -} - -// prepareKeyChange sets up key material for a keychange. The key changes in -// both directions are triggered by reading and writing a msgNewKey packet -// respectively. -func (t *transport) prepareKeyChange(algs *algorithms, kexResult *kexResult) error { - if t.sessionID == nil { - t.sessionID = kexResult.H - } - - kexResult.SessionID = t.sessionID - - if ciph, err := newPacketCipher(t.reader.dir, algs.r, kexResult); err != nil { - return err - } else { - t.reader.pendingKeyChange <- ciph - } - - if ciph, err := newPacketCipher(t.writer.dir, algs.w, kexResult); err != nil { - return err - } else { - t.writer.pendingKeyChange <- ciph - } - - return nil -} - -// Read and decrypt next packet. -func (t *transport) readPacket() ([]byte, error) { - return t.reader.readPacket(t.bufReader) -} - -func (s *connectionState) readPacket(r *bufio.Reader) ([]byte, error) { - packet, err := s.packetCipher.readPacket(s.seqNum, r) - s.seqNum++ - if err == nil && len(packet) == 0 { - err = errors.New("ssh: zero length packet") - } - - if len(packet) > 0 && packet[0] == msgNewKeys { - select { - case cipher := <-s.pendingKeyChange: - s.packetCipher = cipher - default: - return nil, errors.New("ssh: got bogus newkeys message.") - } - } - - // The packet may point to an internal buffer, so copy the - // packet out here. - fresh := make([]byte, len(packet)) - copy(fresh, packet) - - return fresh, err -} - -func (t *transport) writePacket(packet []byte) error { - return t.writer.writePacket(t.bufWriter, t.rand, packet) -} - -func (s *connectionState) writePacket(w *bufio.Writer, rand io.Reader, packet []byte) error { - changeKeys := len(packet) > 0 && packet[0] == msgNewKeys - - err := s.packetCipher.writePacket(s.seqNum, w, rand, packet) - if err != nil { - return err - } - if err = w.Flush(); err != nil { - return err - } - s.seqNum++ - if changeKeys { - select { - case cipher := <-s.pendingKeyChange: - s.packetCipher = cipher - default: - panic("ssh: no key material for msgNewKeys") - } - } - return err -} - -func newTransport(rwc io.ReadWriteCloser, rand io.Reader, isClient bool) *transport { - t := &transport{ - bufReader: bufio.NewReader(rwc), - bufWriter: bufio.NewWriter(rwc), - rand: rand, - reader: connectionState{ - packetCipher: &streamPacketCipher{cipher: noneCipher{}}, - pendingKeyChange: make(chan packetCipher, 1), - }, - writer: connectionState{ - packetCipher: &streamPacketCipher{cipher: noneCipher{}}, - pendingKeyChange: make(chan packetCipher, 1), - }, - Closer: rwc, - } - if isClient { - t.reader.dir = serverKeys - t.writer.dir = clientKeys - } else { - t.reader.dir = clientKeys - t.writer.dir = serverKeys - } - - return t -} - -type direction struct { - ivTag []byte - keyTag []byte - macKeyTag []byte -} - -var ( - serverKeys = direction{[]byte{'B'}, []byte{'D'}, []byte{'F'}} - clientKeys = direction{[]byte{'A'}, []byte{'C'}, []byte{'E'}} -) - -// generateKeys generates key material for IV, MAC and encryption. -func generateKeys(d direction, algs directionAlgorithms, kex *kexResult) (iv, key, macKey []byte) { - cipherMode := cipherModes[algs.Cipher] - macMode := macModes[algs.MAC] - - iv = make([]byte, cipherMode.ivSize) - key = make([]byte, cipherMode.keySize) - macKey = make([]byte, macMode.keySize) - - generateKeyMaterial(iv, d.ivTag, kex) - generateKeyMaterial(key, d.keyTag, kex) - generateKeyMaterial(macKey, d.macKeyTag, kex) - return -} - -// setupKeys sets the cipher and MAC keys from kex.K, kex.H and sessionId, as -// described in RFC 4253, section 6.4. direction should either be serverKeys -// (to setup server->client keys) or clientKeys (for client->server keys). -func newPacketCipher(d direction, algs directionAlgorithms, kex *kexResult) (packetCipher, error) { - iv, key, macKey := generateKeys(d, algs, kex) - - if algs.Cipher == gcmCipherID { - return newGCMCipher(iv, key, macKey) - } - - if algs.Cipher == aes128cbcID { - return newAESCBCCipher(iv, key, macKey, algs) - } - - c := &streamPacketCipher{ - mac: macModes[algs.MAC].new(macKey), - } - c.macResult = make([]byte, c.mac.Size()) - - var err error - c.cipher, err = cipherModes[algs.Cipher].createStream(key, iv) - if err != nil { - return nil, err - } - - return c, nil -} - -// generateKeyMaterial fills out with key material generated from tag, K, H -// and sessionId, as specified in RFC 4253, section 7.2. -func generateKeyMaterial(out, tag []byte, r *kexResult) { - var digestsSoFar []byte - - h := r.Hash.New() - for len(out) > 0 { - h.Reset() - h.Write(r.K) - h.Write(r.H) - - if len(digestsSoFar) == 0 { - h.Write(tag) - h.Write(r.SessionID) - } else { - h.Write(digestsSoFar) - } - - digest := h.Sum(nil) - n := copy(out, digest) - out = out[n:] - if len(out) > 0 { - digestsSoFar = append(digestsSoFar, digest...) - } - } -} - -const packageVersion = "SSH-2.0-Go" - -// Sends and receives a version line. The versionLine string should -// be US ASCII, start with "SSH-2.0-", and should not include a -// newline. exchangeVersions returns the other side's version line. -func exchangeVersions(rw io.ReadWriter, versionLine []byte) (them []byte, err error) { - // Contrary to the RFC, we do not ignore lines that don't - // start with "SSH-2.0-" to make the library usable with - // nonconforming servers. - for _, c := range versionLine { - // The spec disallows non US-ASCII chars, and - // specifically forbids null chars. - if c < 32 { - return nil, errors.New("ssh: junk character in version line") - } - } - if _, err = rw.Write(append(versionLine, '\r', '\n')); err != nil { - return - } - - them, err = readVersion(rw) - return them, err -} - -// maxVersionStringBytes is the maximum number of bytes that we'll -// accept as a version string. RFC 4253 section 4.2 limits this at 255 -// chars -const maxVersionStringBytes = 255 - -// Read version string as specified by RFC 4253, section 4.2. -func readVersion(r io.Reader) ([]byte, error) { - versionString := make([]byte, 0, 64) - var ok bool - var buf [1]byte - - for len(versionString) < maxVersionStringBytes { - _, err := io.ReadFull(r, buf[:]) - if err != nil { - return nil, err - } - // The RFC says that the version should be terminated with \r\n - // but several SSH servers actually only send a \n. - if buf[0] == '\n' { - ok = true - break - } - - // non ASCII chars are disallowed, but we are lenient, - // since Go doesn't use null-terminated strings. - - // The RFC allows a comment after a space, however, - // all of it (version and comments) goes into the - // session hash. - versionString = append(versionString, buf[0]) - } - - if !ok { - return nil, errors.New("ssh: overflow reading version string") - } - - // There might be a '\r' on the end which we should remove. - if len(versionString) > 0 && versionString[len(versionString)-1] == '\r' { - versionString = versionString[:len(versionString)-1] - } - return versionString, nil -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/transport_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/transport_test.go deleted file mode 100644 index 92d83abf..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/transport_test.go +++ /dev/null @@ -1,109 +0,0 @@ -// 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 ssh - -import ( - "bytes" - "crypto/rand" - "encoding/binary" - "strings" - "testing" -) - -func TestReadVersion(t *testing.T) { - longversion := strings.Repeat("SSH-2.0-bla", 50)[:253] - cases := map[string]string{ - "SSH-2.0-bla\r\n": "SSH-2.0-bla", - "SSH-2.0-bla\n": "SSH-2.0-bla", - longversion + "\r\n": longversion, - } - - for in, want := range cases { - result, err := readVersion(bytes.NewBufferString(in)) - if err != nil { - t.Errorf("readVersion(%q): %s", in, err) - } - got := string(result) - if got != want { - t.Errorf("got %q, want %q", got, want) - } - } -} - -func TestReadVersionError(t *testing.T) { - longversion := strings.Repeat("SSH-2.0-bla", 50)[:253] - cases := []string{ - longversion + "too-long\r\n", - } - for _, in := range cases { - if _, err := readVersion(bytes.NewBufferString(in)); err == nil { - t.Errorf("readVersion(%q) should have failed", in) - } - } -} - -func TestExchangeVersionsBasic(t *testing.T) { - v := "SSH-2.0-bla" - buf := bytes.NewBufferString(v + "\r\n") - them, err := exchangeVersions(buf, []byte("xyz")) - if err != nil { - t.Errorf("exchangeVersions: %v", err) - } - - if want := "SSH-2.0-bla"; string(them) != want { - t.Errorf("got %q want %q for our version", them, want) - } -} - -func TestExchangeVersions(t *testing.T) { - cases := []string{ - "not\x000allowed", - "not allowed\n", - } - for _, c := range cases { - buf := bytes.NewBufferString("SSH-2.0-bla\r\n") - if _, err := exchangeVersions(buf, []byte(c)); err == nil { - t.Errorf("exchangeVersions(%q): should have failed", c) - } - } -} - -type closerBuffer struct { - bytes.Buffer -} - -func (b *closerBuffer) Close() error { - return nil -} - -func TestTransportMaxPacketWrite(t *testing.T) { - buf := &closerBuffer{} - tr := newTransport(buf, rand.Reader, true) - huge := make([]byte, maxPacket+1) - err := tr.writePacket(huge) - if err == nil { - t.Errorf("transport accepted write for a huge packet.") - } -} - -func TestTransportMaxPacketReader(t *testing.T) { - var header [5]byte - huge := make([]byte, maxPacket+128) - binary.BigEndian.PutUint32(header[0:], uint32(len(huge))) - // padding. - header[4] = 0 - - buf := &closerBuffer{} - buf.Write(header[:]) - buf.Write(huge) - - tr := newTransport(buf, rand.Reader, true) - _, err := tr.readPacket() - if err == nil { - t.Errorf("transport succeeded reading huge packet.") - } else if !strings.Contains(err.Error(), "large") { - t.Errorf("got %q, should mention %q", err.Error(), "large") - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/tea/cipher.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/tea/cipher.go deleted file mode 100644 index 9c13d12a..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/tea/cipher.go +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package tea implements the TEA algorithm, as defined in Needham and -// Wheeler's 1994 technical report, “TEA, a Tiny Encryption Algorithmâ€. See -// http://www.cix.co.uk/~klockstone/tea.pdf for details. - -package tea - -import ( - "crypto/cipher" - "encoding/binary" - "errors" -) - -const ( - // BlockSize is the size of a TEA block, in bytes. - BlockSize = 8 - - // KeySize is the size of a TEA key, in bytes. - KeySize = 16 - - // delta is the TEA key schedule constant. - delta = 0x9e3779b9 - - // numRounds is the standard number of rounds in TEA. - numRounds = 64 -) - -// tea is an instance of the TEA cipher with a particular key. -type tea struct { - key [16]byte - rounds int -} - -// NewCipher returns an instance of the TEA cipher with the standard number of -// rounds. The key argument must be 16 bytes long. -func NewCipher(key []byte) (cipher.Block, error) { - return NewCipherWithRounds(key, numRounds) -} - -// NewCipherWithRounds returns an instance of the TEA cipher with a given -// number of rounds, which must be even. The key argument must be 16 bytes -// long. -func NewCipherWithRounds(key []byte, rounds int) (cipher.Block, error) { - if len(key) != 16 { - return nil, errors.New("tea: incorrect key size") - } - - if rounds&1 != 0 { - return nil, errors.New("tea: odd number of rounds specified") - } - - c := &tea{ - rounds: rounds, - } - copy(c.key[:], key) - - return c, nil -} - -// BlockSize returns the TEA block size, which is eight bytes. It is necessary -// to satisfy the Block interface in the package "crypto/cipher". -func (*tea) BlockSize() int { - return BlockSize -} - -// Encrypt encrypts the 8 byte buffer src using the key in t and stores the -// result in dst. Note that for amounts of data larger than a block, it is not -// safe to just call Encrypt on successive blocks; instead, use an encryption -// mode like CBC (see crypto/cipher/cbc.go). -func (t *tea) Encrypt(dst, src []byte) { - e := binary.BigEndian - v0, v1 := e.Uint32(src), e.Uint32(src[4:]) - k0, k1, k2, k3 := e.Uint32(t.key[0:]), e.Uint32(t.key[4:]), e.Uint32(t.key[8:]), e.Uint32(t.key[12:]) - - sum := uint32(0) - delta := uint32(delta) - - for i := 0; i < t.rounds/2; i++ { - sum += delta - v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1) - v1 += ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3) - } - - e.PutUint32(dst, v0) - e.PutUint32(dst[4:], v1) -} - -// Decrypt decrypts the 8 byte buffer src using the key in t and stores the -// result in dst. -func (t *tea) Decrypt(dst, src []byte) { - e := binary.BigEndian - v0, v1 := e.Uint32(src), e.Uint32(src[4:]) - k0, k1, k2, k3 := e.Uint32(t.key[0:]), e.Uint32(t.key[4:]), e.Uint32(t.key[8:]), e.Uint32(t.key[12:]) - - delta := uint32(delta) - sum := delta * uint32(t.rounds/2) // in general, sum = delta * n - - for i := 0; i < t.rounds/2; i++ { - v1 -= ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3) - v0 -= ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1) - sum -= delta - } - - e.PutUint32(dst, v0) - e.PutUint32(dst[4:], v1) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/tea/tea_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/tea/tea_test.go deleted file mode 100644 index eb98d1e0..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/tea/tea_test.go +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package tea - -import ( - "bytes" - "testing" -) - -// A sample test key for when we just want to initialize a cipher -var testKey = []byte{0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF} - -// Test that the block size for tea is correct -func TestBlocksize(t *testing.T) { - c, err := NewCipher(testKey) - if err != nil { - t.Fatalf("NewCipher returned error: %s", err) - } - - if result := c.BlockSize(); result != BlockSize { - t.Errorf("cipher.BlockSize returned %d, but expected %d", result, BlockSize) - } -} - -// Test that invalid key sizes return an error -func TestInvalidKeySize(t *testing.T) { - var key [KeySize + 1]byte - - if _, err := NewCipher(key[:]); err == nil { - t.Errorf("invalid key size %d didn't result in an error.", len(key)) - } - - if _, err := NewCipher(key[:KeySize-1]); err == nil { - t.Errorf("invalid key size %d didn't result in an error.", KeySize-1) - } -} - -// Test Vectors -type teaTest struct { - rounds int - key []byte - plaintext []byte - ciphertext []byte -} - -var teaTests = []teaTest{ - // These were sourced from https://github.com/froydnj/ironclad/blob/master/testing/test-vectors/tea.testvec - { - numRounds, - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x41, 0xea, 0x3a, 0x0a, 0x94, 0xba, 0xa9, 0x40}, - }, - { - numRounds, - []byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, - []byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, - []byte{0x31, 0x9b, 0xbe, 0xfb, 0x01, 0x6a, 0xbd, 0xb2}, - }, - { - 16, - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0xed, 0x28, 0x5d, 0xa1, 0x45, 0x5b, 0x33, 0xc1}, - }, -} - -// Test encryption -func TestCipherEncrypt(t *testing.T) { - // Test encryption with standard 64 rounds - for i, test := range teaTests { - c, err := NewCipherWithRounds(test.key, test.rounds) - if err != nil { - t.Fatalf("#%d: NewCipher returned error: %s", i, err) - } - - var ciphertext [BlockSize]byte - c.Encrypt(ciphertext[:], test.plaintext) - - if !bytes.Equal(ciphertext[:], test.ciphertext) { - t.Errorf("#%d: incorrect ciphertext. Got %x, wanted %x", i, ciphertext, test.ciphertext) - } - - var plaintext2 [BlockSize]byte - c.Decrypt(plaintext2[:], ciphertext[:]) - - if !bytes.Equal(plaintext2[:], test.plaintext) { - t.Errorf("#%d: incorrect plaintext. Got %x, wanted %x", i, plaintext2, test.plaintext) - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/twofish/twofish.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/twofish/twofish.go deleted file mode 100644 index a930218c..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/twofish/twofish.go +++ /dev/null @@ -1,342 +0,0 @@ -// 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 twofish implements Bruce Schneier's Twofish encryption algorithm. -package twofish - -// Twofish is defined in http://www.schneier.com/paper-twofish-paper.pdf [TWOFISH] - -// This code is a port of the LibTom C implementation. -// See http://libtom.org/?page=features&newsitems=5&whatfile=crypt. -// LibTomCrypt is free for all purposes under the public domain. -// It was heavily inspired by the go blowfish package. - -import "strconv" - -// BlockSize is the constant block size of Twofish. -const BlockSize = 16 - -const mdsPolynomial = 0x169 // x^8 + x^6 + x^5 + x^3 + 1, see [TWOFISH] 4.2 -const rsPolynomial = 0x14d // x^8 + x^6 + x^3 + x^2 + 1, see [TWOFISH] 4.3 - -// A Cipher is an instance of Twofish encryption using a particular key. -type Cipher struct { - s [4][256]uint32 - k [40]uint32 -} - -type KeySizeError int - -func (k KeySizeError) Error() string { - return "crypto/twofish: invalid key size " + strconv.Itoa(int(k)) -} - -// NewCipher creates and returns a Cipher. -// The key argument should be the Twofish key, 16, 24 or 32 bytes. -func NewCipher(key []byte) (*Cipher, error) { - keylen := len(key) - - if keylen != 16 && keylen != 24 && keylen != 32 { - return nil, KeySizeError(keylen) - } - - // k is the number of 64 bit words in key - k := keylen / 8 - - // Create the S[..] words - var S [4 * 4]byte - for i := 0; i < k; i++ { - // Computes [y0 y1 y2 y3] = rs . [x0 x1 x2 x3 x4 x5 x6 x7] - for j, rsRow := range rs { - for k, rsVal := range rsRow { - S[4*i+j] ^= gfMult(key[8*i+k], rsVal, rsPolynomial) - } - } - } - - // Calculate subkeys - c := new(Cipher) - var tmp [4]byte - for i := byte(0); i < 20; i++ { - // A = h(p * 2x, Me) - for j := range tmp { - tmp[j] = 2 * i - } - A := h(tmp[:], key, 0) - - // B = rolc(h(p * (2x + 1), Mo), 8) - for j := range tmp { - tmp[j] = 2*i + 1 - } - B := h(tmp[:], key, 1) - B = rol(B, 8) - - c.k[2*i] = A + B - - // K[2i+1] = (A + 2B) <<< 9 - c.k[2*i+1] = rol(2*B+A, 9) - } - - // Calculate sboxes - switch k { - case 2: - for i := range c.s[0] { - c.s[0][i] = mdsColumnMult(sbox[1][sbox[0][sbox[0][byte(i)]^S[0]]^S[4]], 0) - c.s[1][i] = mdsColumnMult(sbox[0][sbox[0][sbox[1][byte(i)]^S[1]]^S[5]], 1) - c.s[2][i] = mdsColumnMult(sbox[1][sbox[1][sbox[0][byte(i)]^S[2]]^S[6]], 2) - c.s[3][i] = mdsColumnMult(sbox[0][sbox[1][sbox[1][byte(i)]^S[3]]^S[7]], 3) - } - case 3: - for i := range c.s[0] { - c.s[0][i] = mdsColumnMult(sbox[1][sbox[0][sbox[0][sbox[1][byte(i)]^S[0]]^S[4]]^S[8]], 0) - c.s[1][i] = mdsColumnMult(sbox[0][sbox[0][sbox[1][sbox[1][byte(i)]^S[1]]^S[5]]^S[9]], 1) - c.s[2][i] = mdsColumnMult(sbox[1][sbox[1][sbox[0][sbox[0][byte(i)]^S[2]]^S[6]]^S[10]], 2) - c.s[3][i] = mdsColumnMult(sbox[0][sbox[1][sbox[1][sbox[0][byte(i)]^S[3]]^S[7]]^S[11]], 3) - } - default: - for i := range c.s[0] { - c.s[0][i] = mdsColumnMult(sbox[1][sbox[0][sbox[0][sbox[1][sbox[1][byte(i)]^S[0]]^S[4]]^S[8]]^S[12]], 0) - c.s[1][i] = mdsColumnMult(sbox[0][sbox[0][sbox[1][sbox[1][sbox[0][byte(i)]^S[1]]^S[5]]^S[9]]^S[13]], 1) - c.s[2][i] = mdsColumnMult(sbox[1][sbox[1][sbox[0][sbox[0][sbox[0][byte(i)]^S[2]]^S[6]]^S[10]]^S[14]], 2) - c.s[3][i] = mdsColumnMult(sbox[0][sbox[1][sbox[1][sbox[0][sbox[1][byte(i)]^S[3]]^S[7]]^S[11]]^S[15]], 3) - } - } - - return c, nil -} - -// BlockSize returns the Twofish block size, 16 bytes. -func (c *Cipher) BlockSize() int { return BlockSize } - -// store32l stores src in dst in little-endian form. -func store32l(dst []byte, src uint32) { - dst[0] = byte(src) - dst[1] = byte(src >> 8) - dst[2] = byte(src >> 16) - dst[3] = byte(src >> 24) - return -} - -// load32l reads a little-endian uint32 from src. -func load32l(src []byte) uint32 { - return uint32(src[0]) | uint32(src[1])<<8 | uint32(src[2])<<16 | uint32(src[3])<<24 -} - -// rol returns x after a left circular rotation of y bits. -func rol(x, y uint32) uint32 { - return (x << (y & 31)) | (x >> (32 - (y & 31))) -} - -// ror returns x after a right circular rotation of y bits. -func ror(x, y uint32) uint32 { - return (x >> (y & 31)) | (x << (32 - (y & 31))) -} - -// The RS matrix. See [TWOFISH] 4.3 -var rs = [4][8]byte{ - {0x01, 0xA4, 0x55, 0x87, 0x5A, 0x58, 0xDB, 0x9E}, - {0xA4, 0x56, 0x82, 0xF3, 0x1E, 0xC6, 0x68, 0xE5}, - {0x02, 0xA1, 0xFC, 0xC1, 0x47, 0xAE, 0x3D, 0x19}, - {0xA4, 0x55, 0x87, 0x5A, 0x58, 0xDB, 0x9E, 0x03}, -} - -// sbox tables -var sbox = [2][256]byte{ - { - 0xa9, 0x67, 0xb3, 0xe8, 0x04, 0xfd, 0xa3, 0x76, 0x9a, 0x92, 0x80, 0x78, 0xe4, 0xdd, 0xd1, 0x38, - 0x0d, 0xc6, 0x35, 0x98, 0x18, 0xf7, 0xec, 0x6c, 0x43, 0x75, 0x37, 0x26, 0xfa, 0x13, 0x94, 0x48, - 0xf2, 0xd0, 0x8b, 0x30, 0x84, 0x54, 0xdf, 0x23, 0x19, 0x5b, 0x3d, 0x59, 0xf3, 0xae, 0xa2, 0x82, - 0x63, 0x01, 0x83, 0x2e, 0xd9, 0x51, 0x9b, 0x7c, 0xa6, 0xeb, 0xa5, 0xbe, 0x16, 0x0c, 0xe3, 0x61, - 0xc0, 0x8c, 0x3a, 0xf5, 0x73, 0x2c, 0x25, 0x0b, 0xbb, 0x4e, 0x89, 0x6b, 0x53, 0x6a, 0xb4, 0xf1, - 0xe1, 0xe6, 0xbd, 0x45, 0xe2, 0xf4, 0xb6, 0x66, 0xcc, 0x95, 0x03, 0x56, 0xd4, 0x1c, 0x1e, 0xd7, - 0xfb, 0xc3, 0x8e, 0xb5, 0xe9, 0xcf, 0xbf, 0xba, 0xea, 0x77, 0x39, 0xaf, 0x33, 0xc9, 0x62, 0x71, - 0x81, 0x79, 0x09, 0xad, 0x24, 0xcd, 0xf9, 0xd8, 0xe5, 0xc5, 0xb9, 0x4d, 0x44, 0x08, 0x86, 0xe7, - 0xa1, 0x1d, 0xaa, 0xed, 0x06, 0x70, 0xb2, 0xd2, 0x41, 0x7b, 0xa0, 0x11, 0x31, 0xc2, 0x27, 0x90, - 0x20, 0xf6, 0x60, 0xff, 0x96, 0x5c, 0xb1, 0xab, 0x9e, 0x9c, 0x52, 0x1b, 0x5f, 0x93, 0x0a, 0xef, - 0x91, 0x85, 0x49, 0xee, 0x2d, 0x4f, 0x8f, 0x3b, 0x47, 0x87, 0x6d, 0x46, 0xd6, 0x3e, 0x69, 0x64, - 0x2a, 0xce, 0xcb, 0x2f, 0xfc, 0x97, 0x05, 0x7a, 0xac, 0x7f, 0xd5, 0x1a, 0x4b, 0x0e, 0xa7, 0x5a, - 0x28, 0x14, 0x3f, 0x29, 0x88, 0x3c, 0x4c, 0x02, 0xb8, 0xda, 0xb0, 0x17, 0x55, 0x1f, 0x8a, 0x7d, - 0x57, 0xc7, 0x8d, 0x74, 0xb7, 0xc4, 0x9f, 0x72, 0x7e, 0x15, 0x22, 0x12, 0x58, 0x07, 0x99, 0x34, - 0x6e, 0x50, 0xde, 0x68, 0x65, 0xbc, 0xdb, 0xf8, 0xc8, 0xa8, 0x2b, 0x40, 0xdc, 0xfe, 0x32, 0xa4, - 0xca, 0x10, 0x21, 0xf0, 0xd3, 0x5d, 0x0f, 0x00, 0x6f, 0x9d, 0x36, 0x42, 0x4a, 0x5e, 0xc1, 0xe0, - }, - { - 0x75, 0xf3, 0xc6, 0xf4, 0xdb, 0x7b, 0xfb, 0xc8, 0x4a, 0xd3, 0xe6, 0x6b, 0x45, 0x7d, 0xe8, 0x4b, - 0xd6, 0x32, 0xd8, 0xfd, 0x37, 0x71, 0xf1, 0xe1, 0x30, 0x0f, 0xf8, 0x1b, 0x87, 0xfa, 0x06, 0x3f, - 0x5e, 0xba, 0xae, 0x5b, 0x8a, 0x00, 0xbc, 0x9d, 0x6d, 0xc1, 0xb1, 0x0e, 0x80, 0x5d, 0xd2, 0xd5, - 0xa0, 0x84, 0x07, 0x14, 0xb5, 0x90, 0x2c, 0xa3, 0xb2, 0x73, 0x4c, 0x54, 0x92, 0x74, 0x36, 0x51, - 0x38, 0xb0, 0xbd, 0x5a, 0xfc, 0x60, 0x62, 0x96, 0x6c, 0x42, 0xf7, 0x10, 0x7c, 0x28, 0x27, 0x8c, - 0x13, 0x95, 0x9c, 0xc7, 0x24, 0x46, 0x3b, 0x70, 0xca, 0xe3, 0x85, 0xcb, 0x11, 0xd0, 0x93, 0xb8, - 0xa6, 0x83, 0x20, 0xff, 0x9f, 0x77, 0xc3, 0xcc, 0x03, 0x6f, 0x08, 0xbf, 0x40, 0xe7, 0x2b, 0xe2, - 0x79, 0x0c, 0xaa, 0x82, 0x41, 0x3a, 0xea, 0xb9, 0xe4, 0x9a, 0xa4, 0x97, 0x7e, 0xda, 0x7a, 0x17, - 0x66, 0x94, 0xa1, 0x1d, 0x3d, 0xf0, 0xde, 0xb3, 0x0b, 0x72, 0xa7, 0x1c, 0xef, 0xd1, 0x53, 0x3e, - 0x8f, 0x33, 0x26, 0x5f, 0xec, 0x76, 0x2a, 0x49, 0x81, 0x88, 0xee, 0x21, 0xc4, 0x1a, 0xeb, 0xd9, - 0xc5, 0x39, 0x99, 0xcd, 0xad, 0x31, 0x8b, 0x01, 0x18, 0x23, 0xdd, 0x1f, 0x4e, 0x2d, 0xf9, 0x48, - 0x4f, 0xf2, 0x65, 0x8e, 0x78, 0x5c, 0x58, 0x19, 0x8d, 0xe5, 0x98, 0x57, 0x67, 0x7f, 0x05, 0x64, - 0xaf, 0x63, 0xb6, 0xfe, 0xf5, 0xb7, 0x3c, 0xa5, 0xce, 0xe9, 0x68, 0x44, 0xe0, 0x4d, 0x43, 0x69, - 0x29, 0x2e, 0xac, 0x15, 0x59, 0xa8, 0x0a, 0x9e, 0x6e, 0x47, 0xdf, 0x34, 0x35, 0x6a, 0xcf, 0xdc, - 0x22, 0xc9, 0xc0, 0x9b, 0x89, 0xd4, 0xed, 0xab, 0x12, 0xa2, 0x0d, 0x52, 0xbb, 0x02, 0x2f, 0xa9, - 0xd7, 0x61, 0x1e, 0xb4, 0x50, 0x04, 0xf6, 0xc2, 0x16, 0x25, 0x86, 0x56, 0x55, 0x09, 0xbe, 0x91, - }, -} - -// gfMult returns a·b in GF(2^8)/p -func gfMult(a, b byte, p uint32) byte { - B := [2]uint32{0, uint32(b)} - P := [2]uint32{0, p} - var result uint32 - - // branchless GF multiplier - for i := 0; i < 7; i++ { - result ^= B[a&1] - a >>= 1 - B[1] = P[B[1]>>7] ^ (B[1] << 1) - } - result ^= B[a&1] - return byte(result) -} - -// mdsColumnMult calculates y{col} where [y0 y1 y2 y3] = MDS · [x0] -func mdsColumnMult(in byte, col int) uint32 { - mul01 := in - mul5B := gfMult(in, 0x5B, mdsPolynomial) - mulEF := gfMult(in, 0xEF, mdsPolynomial) - - switch col { - case 0: - return uint32(mul01) | uint32(mul5B)<<8 | uint32(mulEF)<<16 | uint32(mulEF)<<24 - case 1: - return uint32(mulEF) | uint32(mulEF)<<8 | uint32(mul5B)<<16 | uint32(mul01)<<24 - case 2: - return uint32(mul5B) | uint32(mulEF)<<8 | uint32(mul01)<<16 | uint32(mulEF)<<24 - case 3: - return uint32(mul5B) | uint32(mul01)<<8 | uint32(mulEF)<<16 | uint32(mul5B)<<24 - } - - panic("unreachable") -} - -// h implements the S-box generation function. See [TWOFISH] 4.3.5 -func h(in, key []byte, offset int) uint32 { - var y [4]byte - for x := range y { - y[x] = in[x] - } - switch len(key) / 8 { - case 4: - y[0] = sbox[1][y[0]] ^ key[4*(6+offset)+0] - y[1] = sbox[0][y[1]] ^ key[4*(6+offset)+1] - y[2] = sbox[0][y[2]] ^ key[4*(6+offset)+2] - y[3] = sbox[1][y[3]] ^ key[4*(6+offset)+3] - fallthrough - case 3: - y[0] = sbox[1][y[0]] ^ key[4*(4+offset)+0] - y[1] = sbox[1][y[1]] ^ key[4*(4+offset)+1] - y[2] = sbox[0][y[2]] ^ key[4*(4+offset)+2] - y[3] = sbox[0][y[3]] ^ key[4*(4+offset)+3] - fallthrough - case 2: - y[0] = sbox[1][sbox[0][sbox[0][y[0]]^key[4*(2+offset)+0]]^key[4*(0+offset)+0]] - y[1] = sbox[0][sbox[0][sbox[1][y[1]]^key[4*(2+offset)+1]]^key[4*(0+offset)+1]] - y[2] = sbox[1][sbox[1][sbox[0][y[2]]^key[4*(2+offset)+2]]^key[4*(0+offset)+2]] - y[3] = sbox[0][sbox[1][sbox[1][y[3]]^key[4*(2+offset)+3]]^key[4*(0+offset)+3]] - } - // [y0 y1 y2 y3] = MDS . [x0 x1 x2 x3] - var mdsMult uint32 - for i := range y { - mdsMult ^= mdsColumnMult(y[i], i) - } - return mdsMult -} - -// Encrypt encrypts a 16-byte block from src to dst, which may overlap. -// Note that for amounts of data larger than a block, -// it is not safe to just call Encrypt on successive blocks; -// instead, use an encryption mode like CBC (see crypto/cipher/cbc.go). -func (c *Cipher) Encrypt(dst, src []byte) { - S1 := c.s[0] - S2 := c.s[1] - S3 := c.s[2] - S4 := c.s[3] - - // Load input - ia := load32l(src[0:4]) - ib := load32l(src[4:8]) - ic := load32l(src[8:12]) - id := load32l(src[12:16]) - - // Pre-whitening - ia ^= c.k[0] - ib ^= c.k[1] - ic ^= c.k[2] - id ^= c.k[3] - - for i := 0; i < 8; i++ { - k := c.k[8+i*4 : 12+i*4] - t2 := S2[byte(ib)] ^ S3[byte(ib>>8)] ^ S4[byte(ib>>16)] ^ S1[byte(ib>>24)] - t1 := S1[byte(ia)] ^ S2[byte(ia>>8)] ^ S3[byte(ia>>16)] ^ S4[byte(ia>>24)] + t2 - ic = ror(ic^(t1+k[0]), 1) - id = rol(id, 1) ^ (t2 + t1 + k[1]) - - t2 = S2[byte(id)] ^ S3[byte(id>>8)] ^ S4[byte(id>>16)] ^ S1[byte(id>>24)] - t1 = S1[byte(ic)] ^ S2[byte(ic>>8)] ^ S3[byte(ic>>16)] ^ S4[byte(ic>>24)] + t2 - ia = ror(ia^(t1+k[2]), 1) - ib = rol(ib, 1) ^ (t2 + t1 + k[3]) - } - - // Output with "undo last swap" - ta := ic ^ c.k[4] - tb := id ^ c.k[5] - tc := ia ^ c.k[6] - td := ib ^ c.k[7] - - store32l(dst[0:4], ta) - store32l(dst[4:8], tb) - store32l(dst[8:12], tc) - store32l(dst[12:16], td) -} - -// Decrypt decrypts a 16-byte block from src to dst, which may overlap. -func (c *Cipher) Decrypt(dst, src []byte) { - S1 := c.s[0] - S2 := c.s[1] - S3 := c.s[2] - S4 := c.s[3] - - // Load input - ta := load32l(src[0:4]) - tb := load32l(src[4:8]) - tc := load32l(src[8:12]) - td := load32l(src[12:16]) - - // Undo undo final swap - ia := tc ^ c.k[6] - ib := td ^ c.k[7] - ic := ta ^ c.k[4] - id := tb ^ c.k[5] - - for i := 8; i > 0; i-- { - k := c.k[4+i*4 : 8+i*4] - t2 := S2[byte(id)] ^ S3[byte(id>>8)] ^ S4[byte(id>>16)] ^ S1[byte(id>>24)] - t1 := S1[byte(ic)] ^ S2[byte(ic>>8)] ^ S3[byte(ic>>16)] ^ S4[byte(ic>>24)] + t2 - ia = rol(ia, 1) ^ (t1 + k[2]) - ib = ror(ib^(t2+t1+k[3]), 1) - - t2 = S2[byte(ib)] ^ S3[byte(ib>>8)] ^ S4[byte(ib>>16)] ^ S1[byte(ib>>24)] - t1 = S1[byte(ia)] ^ S2[byte(ia>>8)] ^ S3[byte(ia>>16)] ^ S4[byte(ia>>24)] + t2 - ic = rol(ic, 1) ^ (t1 + k[0]) - id = ror(id^(t2+t1+k[1]), 1) - } - - // Undo pre-whitening - ia ^= c.k[0] - ib ^= c.k[1] - ic ^= c.k[2] - id ^= c.k[3] - - store32l(dst[0:4], ia) - store32l(dst[4:8], ib) - store32l(dst[8:12], ic) - store32l(dst[12:16], id) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/twofish/twofish_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/twofish/twofish_test.go deleted file mode 100644 index 303081f3..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/twofish/twofish_test.go +++ /dev/null @@ -1,129 +0,0 @@ -// 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 twofish - -import ( - "bytes" - "testing" -) - -var qbox = [2][4][16]byte{ - { - {0x8, 0x1, 0x7, 0xD, 0x6, 0xF, 0x3, 0x2, 0x0, 0xB, 0x5, 0x9, 0xE, 0xC, 0xA, 0x4}, - {0xE, 0xC, 0xB, 0x8, 0x1, 0x2, 0x3, 0x5, 0xF, 0x4, 0xA, 0x6, 0x7, 0x0, 0x9, 0xD}, - {0xB, 0xA, 0x5, 0xE, 0x6, 0xD, 0x9, 0x0, 0xC, 0x8, 0xF, 0x3, 0x2, 0x4, 0x7, 0x1}, - {0xD, 0x7, 0xF, 0x4, 0x1, 0x2, 0x6, 0xE, 0x9, 0xB, 0x3, 0x0, 0x8, 0x5, 0xC, 0xA}, - }, - { - {0x2, 0x8, 0xB, 0xD, 0xF, 0x7, 0x6, 0xE, 0x3, 0x1, 0x9, 0x4, 0x0, 0xA, 0xC, 0x5}, - {0x1, 0xE, 0x2, 0xB, 0x4, 0xC, 0x3, 0x7, 0x6, 0xD, 0xA, 0x5, 0xF, 0x9, 0x0, 0x8}, - {0x4, 0xC, 0x7, 0x5, 0x1, 0x6, 0x9, 0xA, 0x0, 0xE, 0xD, 0x8, 0x2, 0xB, 0x3, 0xF}, - {0xB, 0x9, 0x5, 0x1, 0xC, 0x3, 0xD, 0xE, 0x6, 0x4, 0x7, 0xF, 0x2, 0x0, 0x8, 0xA}, - }, -} - -// genSbox generates the variable sbox -func genSbox(qi int, x byte) byte { - a0, b0 := x/16, x%16 - for i := 0; i < 2; i++ { - a1 := a0 ^ b0 - b1 := (a0 ^ ((b0 << 3) | (b0 >> 1)) ^ (a0 << 3)) & 15 - a0 = qbox[qi][2*i][a1] - b0 = qbox[qi][2*i+1][b1] - } - return (b0 << 4) + a0 -} - -func TestSbox(t *testing.T) { - for n := range sbox { - for m := range sbox[n] { - if genSbox(n, byte(m)) != sbox[n][m] { - t.Errorf("#%d|%d: sbox value = %d want %d", n, m, sbox[n][m], genSbox(n, byte(m))) - } - } - } -} - -var testVectors = []struct { - key []byte - dec []byte - enc []byte -}{ - // These tests are extracted from LibTom - { - []byte{0x9F, 0x58, 0x9F, 0x5C, 0xF6, 0x12, 0x2C, 0x32, 0xB6, 0xBF, 0xEC, 0x2F, 0x2A, 0xE8, 0xC3, 0x5A}, - []byte{0xD4, 0x91, 0xDB, 0x16, 0xE7, 0xB1, 0xC3, 0x9E, 0x86, 0xCB, 0x08, 0x6B, 0x78, 0x9F, 0x54, 0x19}, - []byte{0x01, 0x9F, 0x98, 0x09, 0xDE, 0x17, 0x11, 0x85, 0x8F, 0xAA, 0xC3, 0xA3, 0xBA, 0x20, 0xFB, 0xC3}, - }, - { - []byte{0x88, 0xB2, 0xB2, 0x70, 0x6B, 0x10, 0x5E, 0x36, 0xB4, 0x46, 0xBB, 0x6D, 0x73, 0x1A, 0x1E, 0x88, - 0xEF, 0xA7, 0x1F, 0x78, 0x89, 0x65, 0xBD, 0x44}, - []byte{0x39, 0xDA, 0x69, 0xD6, 0xBA, 0x49, 0x97, 0xD5, 0x85, 0xB6, 0xDC, 0x07, 0x3C, 0xA3, 0x41, 0xB2}, - []byte{0x18, 0x2B, 0x02, 0xD8, 0x14, 0x97, 0xEA, 0x45, 0xF9, 0xDA, 0xAC, 0xDC, 0x29, 0x19, 0x3A, 0x65}, - }, - { - []byte{0xD4, 0x3B, 0xB7, 0x55, 0x6E, 0xA3, 0x2E, 0x46, 0xF2, 0xA2, 0x82, 0xB7, 0xD4, 0x5B, 0x4E, 0x0D, - 0x57, 0xFF, 0x73, 0x9D, 0x4D, 0xC9, 0x2C, 0x1B, 0xD7, 0xFC, 0x01, 0x70, 0x0C, 0xC8, 0x21, 0x6F}, - []byte{0x90, 0xAF, 0xE9, 0x1B, 0xB2, 0x88, 0x54, 0x4F, 0x2C, 0x32, 0xDC, 0x23, 0x9B, 0x26, 0x35, 0xE6}, - []byte{0x6C, 0xB4, 0x56, 0x1C, 0x40, 0xBF, 0x0A, 0x97, 0x05, 0x93, 0x1C, 0xB6, 0xD4, 0x08, 0xE7, 0xFA}, - }, - // These test are derived from http://www.schneier.com/code/ecb_ival.txt - { - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x9F, 0x58, 0x9F, 0x5C, 0xF6, 0x12, 0x2C, 0x32, 0xB6, 0xBF, 0xEC, 0x2F, 0x2A, 0xE8, 0xC3, 0x5A}, - }, - { - []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10, - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, - }, - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0xCF, 0xD1, 0xD2, 0xE5, 0xA9, 0xBE, 0x9C, 0xDF, 0x50, 0x1F, 0x13, 0xB8, 0x92, 0xBD, 0x22, 0x48}, - }, - { - []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10, - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, - }, - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x37, 0x52, 0x7B, 0xE0, 0x05, 0x23, 0x34, 0xB8, 0x9F, 0x0C, 0xFC, 0xCA, 0xE8, 0x7C, 0xFA, 0x20}, - }, -} - -func TestCipher(t *testing.T) { - for n, tt := range testVectors { - // Test if the plaintext (dec) is encrypts to the given - // ciphertext (enc) using the given key. Test also if enc can - // be decrypted again into dec. - c, err := NewCipher(tt.key) - if err != nil { - t.Errorf("#%d: NewCipher: %v", n, err) - return - } - - buf := make([]byte, 16) - c.Encrypt(buf, tt.dec) - if !bytes.Equal(buf, tt.enc) { - t.Errorf("#%d: encrypt = %x want %x", n, buf, tt.enc) - } - c.Decrypt(buf, tt.enc) - if !bytes.Equal(buf, tt.dec) { - t.Errorf("#%d: decrypt = %x want %x", n, buf, tt.dec) - } - - // Test that 16 zero bytes, encrypted 1000 times then decrypted - // 1000 times results in zero bytes again. - zero := make([]byte, 16) - buf = make([]byte, 16) - for i := 0; i < 1000; i++ { - c.Encrypt(buf, buf) - } - for i := 0; i < 1000; i++ { - c.Decrypt(buf, buf) - } - if !bytes.Equal(buf, zero) { - t.Errorf("#%d: encrypt/decrypt 1000: have %x want %x", n, buf, zero) - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xtea/block.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xtea/block.go deleted file mode 100644 index bf5d2459..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xtea/block.go +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2009 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. - -/* - Implementation adapted from Needham and Wheeler's paper: - http://www.cix.co.uk/~klockstone/xtea.pdf - - A precalculated look up table is used during encryption/decryption for values that are based purely on the key. -*/ - -package xtea - -// XTEA is based on 64 rounds. -const numRounds = 64 - -// blockToUint32 reads an 8 byte slice into two uint32s. -// The block is treated as big endian. -func blockToUint32(src []byte) (uint32, uint32) { - r0 := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) - r1 := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) - return r0, r1 -} - -// uint32ToBlock writes two uint32s into an 8 byte data block. -// Values are written as big endian. -func uint32ToBlock(v0, v1 uint32, dst []byte) { - dst[0] = byte(v0 >> 24) - dst[1] = byte(v0 >> 16) - dst[2] = byte(v0 >> 8) - dst[3] = byte(v0) - dst[4] = byte(v1 >> 24) - dst[5] = byte(v1 >> 16) - dst[6] = byte(v1 >> 8) - dst[7] = byte(v1 >> 0) -} - -// encryptBlock encrypts a single 8 byte block using XTEA. -func encryptBlock(c *Cipher, dst, src []byte) { - v0, v1 := blockToUint32(src) - - // Two rounds of XTEA applied per loop - for i := 0; i < numRounds; { - v0 += ((v1<<4 ^ v1>>5) + v1) ^ c.table[i] - i++ - v1 += ((v0<<4 ^ v0>>5) + v0) ^ c.table[i] - i++ - } - - uint32ToBlock(v0, v1, dst) -} - -// decryptBlock decrypt a single 8 byte block using XTEA. -func decryptBlock(c *Cipher, dst, src []byte) { - v0, v1 := blockToUint32(src) - - // Two rounds of XTEA applied per loop - for i := numRounds; i > 0; { - i-- - v1 -= ((v0<<4 ^ v0>>5) + v0) ^ c.table[i] - i-- - v0 -= ((v1<<4 ^ v1>>5) + v1) ^ c.table[i] - } - - uint32ToBlock(v0, v1, dst) -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xtea/cipher.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xtea/cipher.go deleted file mode 100644 index 0e10b8e5..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xtea/cipher.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2009 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 xtea implements XTEA encryption, as defined in Needham and Wheeler's -// 1997 technical report, "Tea extensions." -package xtea - -// For details, see http://www.cix.co.uk/~klockstone/xtea.pdf - -import "strconv" - -// The XTEA block size in bytes. -const BlockSize = 8 - -// A Cipher is an instance of an XTEA cipher using a particular key. -// table contains a series of precalculated values that are used each round. -type Cipher struct { - table [64]uint32 -} - -type KeySizeError int - -func (k KeySizeError) Error() string { - return "crypto/xtea: invalid key size " + strconv.Itoa(int(k)) -} - -// NewCipher creates and returns a new Cipher. -// The key argument should be the XTEA key. -// XTEA only supports 128 bit (16 byte) keys. -func NewCipher(key []byte) (*Cipher, error) { - k := len(key) - switch k { - default: - return nil, KeySizeError(k) - case 16: - break - } - - c := new(Cipher) - initCipher(c, key) - - return c, nil -} - -// BlockSize returns the XTEA block size, 8 bytes. -// It is necessary to satisfy the Block interface in the -// package "crypto/cipher". -func (c *Cipher) BlockSize() int { return BlockSize } - -// Encrypt encrypts the 8 byte buffer src using the key and stores the result in dst. -// Note that for amounts of data larger than a block, -// it is not safe to just call Encrypt on successive blocks; -// instead, use an encryption mode like CBC (see crypto/cipher/cbc.go). -func (c *Cipher) Encrypt(dst, src []byte) { encryptBlock(c, dst, src) } - -// Decrypt decrypts the 8 byte buffer src using the key k and stores the result in dst. -func (c *Cipher) Decrypt(dst, src []byte) { decryptBlock(c, dst, src) } - -// initCipher initializes the cipher context by creating a look up table -// of precalculated values that are based on the key. -func initCipher(c *Cipher, key []byte) { - // Load the key into four uint32s - var k [4]uint32 - for i := 0; i < len(k); i++ { - j := i << 2 // Multiply by 4 - k[i] = uint32(key[j+0])<<24 | uint32(key[j+1])<<16 | uint32(key[j+2])<<8 | uint32(key[j+3]) - } - - // Precalculate the table - const delta = 0x9E3779B9 - var sum uint32 = 0 - - // Two rounds of XTEA applied per loop - for i := 0; i < numRounds; { - c.table[i] = sum + k[sum&3] - i++ - sum += delta - c.table[i] = sum + k[(sum>>11)&3] - i++ - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xtea/xtea_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xtea/xtea_test.go deleted file mode 100644 index be711bf5..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xtea/xtea_test.go +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright 2009 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 xtea - -import ( - "testing" -) - -// A sample test key for when we just want to initialize a cipher -var testKey = []byte{0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF} - -// Test that the block size for XTEA is correct -func TestBlocksize(t *testing.T) { - if BlockSize != 8 { - t.Errorf("BlockSize constant - expected 8, got %d", BlockSize) - return - } - - c, err := NewCipher(testKey) - if err != nil { - t.Errorf("NewCipher(%d bytes) = %s", len(testKey), err) - return - } - - result := c.BlockSize() - if result != 8 { - t.Errorf("BlockSize function - expected 8, got %d", result) - return - } -} - -// A series of test values to confirm that the Cipher.table array was initialized correctly -var testTable = []uint32{ - 0x00112233, 0x6B1568B8, 0xE28CE030, 0xC5089E2D, 0xC5089E2D, 0x1EFBD3A2, 0xA7845C2A, 0x78EF0917, - 0x78EF0917, 0x172682D0, 0x5B6AC714, 0x822AC955, 0x3DE68511, 0xDC1DFECA, 0x2062430E, 0x3611343F, - 0xF1CCEFFB, 0x900469B4, 0xD448ADF8, 0x2E3BE36D, 0xB6C46BF5, 0x994029F2, 0x994029F2, 0xF3335F67, - 0x6AAAD6DF, 0x4D2694DC, 0x4D2694DC, 0xEB5E0E95, 0x2FA252D9, 0x4551440A, 0x121E10D6, 0xB0558A8F, - 0xE388BDC3, 0x0A48C004, 0xC6047BC0, 0x643BF579, 0xA88039BD, 0x02736F32, 0x8AFBF7BA, 0x5C66A4A7, - 0x5C66A4A7, 0xC76AEB2C, 0x3EE262A4, 0x215E20A1, 0x215E20A1, 0x7B515616, 0x03D9DE9E, 0x1988CFCF, - 0xD5448B8B, 0x737C0544, 0xB7C04988, 0xDE804BC9, 0x9A3C0785, 0x3873813E, 0x7CB7C582, 0xD6AAFAF7, - 0x4E22726F, 0x309E306C, 0x309E306C, 0x8A9165E1, 0x1319EE69, 0xF595AC66, 0xF595AC66, 0x4F88E1DB, -} - -// Test that the cipher context is initialized correctly -func TestCipherInit(t *testing.T) { - c, err := NewCipher(testKey) - if err != nil { - t.Errorf("NewCipher(%d bytes) = %s", len(testKey), err) - return - } - - for i := 0; i < len(c.table); i++ { - if c.table[i] != testTable[i] { - t.Errorf("NewCipher() failed to initialize Cipher.table[%d] correctly. Expected %08X, got %08X", i, testTable[i], c.table[i]) - break - } - } -} - -// Test that invalid key sizes return an error -func TestInvalidKeySize(t *testing.T) { - // Test a long key - key := []byte{ - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, - } - - _, err := NewCipher(key) - if err == nil { - t.Errorf("Invalid key size %d didn't result in an error.", len(key)) - } - - // Test a short key - key = []byte{0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77} - - _, err = NewCipher(key) - if err == nil { - t.Errorf("Invalid key size %d didn't result in an error.", len(key)) - } -} - -// Test that we can correctly decode some bytes we have encoded -func TestEncodeDecode(t *testing.T) { - original := []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF} - input := original - output := make([]byte, BlockSize) - - c, err := NewCipher(testKey) - if err != nil { - t.Errorf("NewCipher(%d bytes) = %s", len(testKey), err) - return - } - - // Encrypt the input block - c.Encrypt(output, input) - - // Check that the output does not match the input - differs := false - for i := 0; i < len(input); i++ { - if output[i] != input[i] { - differs = true - break - } - } - if differs == false { - t.Error("Cipher.Encrypt: Failed to encrypt the input block.") - return - } - - // Decrypt the block we just encrypted - input = output - output = make([]byte, BlockSize) - c.Decrypt(output, input) - - // Check that the output from decrypt matches our initial input - for i := 0; i < len(input); i++ { - if output[i] != original[i] { - t.Errorf("Decrypted byte %d differed. Expected %02X, got %02X\n", i, original[i], output[i]) - return - } - } -} - -// Test Vectors -type CryptTest struct { - key []byte - plainText []byte - cipherText []byte -} - -var CryptTests = []CryptTest{ - // These were sourced from http://www.freemedialibrary.com/index.php/XTEA_test_vectors - { - []byte{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f}, - []byte{0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48}, - []byte{0x49, 0x7d, 0xf3, 0xd0, 0x72, 0x61, 0x2c, 0xb5}, - }, - { - []byte{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f}, - []byte{0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41}, - []byte{0xe7, 0x8f, 0x2d, 0x13, 0x74, 0x43, 0x41, 0xd8}, - }, - { - []byte{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f}, - []byte{0x5a, 0x5b, 0x6e, 0x27, 0x89, 0x48, 0xd7, 0x7f}, - []byte{0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41}, - }, - { - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48}, - []byte{0xa0, 0x39, 0x05, 0x89, 0xf8, 0xb8, 0xef, 0xa5}, - }, - { - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41}, - []byte{0xed, 0x23, 0x37, 0x5a, 0x82, 0x1a, 0x8c, 0x2d}, - }, - { - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x70, 0xe1, 0x22, 0x5d, 0x6e, 0x4e, 0x76, 0x55}, - []byte{0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41}, - }, - - // These vectors are from http://wiki.secondlife.com/wiki/XTEA_Strong_Encryption_Implementation#Bouncy_Castle_C.23_API - { - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0xDE, 0xE9, 0xD4, 0xD8, 0xF7, 0x13, 0x1E, 0xD9}, - }, - { - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08}, - []byte{0x06, 0x5C, 0x1B, 0x89, 0x75, 0xC6, 0xA8, 0x16}, - }, - { - []byte{0x01, 0x23, 0x45, 0x67, 0x12, 0x34, 0x56, 0x78, 0x23, 0x45, 0x67, 0x89, 0x34, 0x56, 0x78, 0x9A}, - []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - []byte{0x1F, 0xF9, 0xA0, 0x26, 0x1A, 0xC6, 0x42, 0x64}, - }, - { - []byte{0x01, 0x23, 0x45, 0x67, 0x12, 0x34, 0x56, 0x78, 0x23, 0x45, 0x67, 0x89, 0x34, 0x56, 0x78, 0x9A}, - []byte{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08}, - []byte{0x8C, 0x67, 0x15, 0x5B, 0x2E, 0xF9, 0x1E, 0xAD}, - }, -} - -// Test encryption -func TestCipherEncrypt(t *testing.T) { - for i, tt := range CryptTests { - c, err := NewCipher(tt.key) - if err != nil { - t.Errorf("NewCipher(%d bytes), vector %d = %s", len(tt.key), i, err) - continue - } - - out := make([]byte, len(tt.plainText)) - c.Encrypt(out, tt.plainText) - - for j := 0; j < len(out); j++ { - if out[j] != tt.cipherText[j] { - t.Errorf("Cipher.Encrypt %d: out[%d] = %02X, expected %02X", i, j, out[j], tt.cipherText[j]) - break - } - } - } -} - -// Test decryption -func TestCipherDecrypt(t *testing.T) { - for i, tt := range CryptTests { - c, err := NewCipher(tt.key) - if err != nil { - t.Errorf("NewCipher(%d bytes), vector %d = %s", len(tt.key), i, err) - continue - } - - out := make([]byte, len(tt.cipherText)) - c.Decrypt(out, tt.cipherText) - - for j := 0; j < len(out); j++ { - if out[j] != tt.plainText[j] { - t.Errorf("Cipher.Decrypt %d: out[%d] = %02X, expected %02X", i, j, out[j], tt.plainText[j]) - break - } - } - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xts/xts.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xts/xts.go deleted file mode 100644 index f0af79da..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xts/xts.go +++ /dev/null @@ -1,138 +0,0 @@ -// Copyright 2012 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 xts implements the XTS cipher mode as specified in IEEE P1619/D16. -// -// XTS mode is typically used for disk encryption, which presents a number of -// novel problems that make more common modes inapplicable. The disk is -// conceptually an array of sectors and we must be able to encrypt and decrypt -// a sector in isolation. However, an attacker must not be able to transpose -// two sectors of plaintext by transposing their ciphertext. -// -// XTS wraps a block cipher with Rogaway's XEX mode in order to build a -// tweakable block cipher. This allows each sector to have a unique tweak and -// effectively create a unique key for each sector. -// -// XTS does not provide any authentication. An attacker can manipulate the -// ciphertext and randomise a block (16 bytes) of the plaintext. -// -// (Note: this package does not implement ciphertext-stealing so sectors must -// be a multiple of 16 bytes.) -package xts - -import ( - "crypto/cipher" - "errors" -) - -// Cipher contains an expanded key structure. It doesn't contain mutable state -// and therefore can be used concurrently. -type Cipher struct { - k1, k2 cipher.Block -} - -// blockSize is the block size that the underlying cipher must have. XTS is -// only defined for 16-byte ciphers. -const blockSize = 16 - -// NewCipher creates a Cipher given a function for creating the underlying -// block cipher (which must have a block size of 16 bytes). The key must be -// twice the length of the underlying cipher's key. -func NewCipher(cipherFunc func([]byte) (cipher.Block, error), key []byte) (c *Cipher, err error) { - c = new(Cipher) - if c.k1, err = cipherFunc(key[:len(key)/2]); err != nil { - return - } - c.k2, err = cipherFunc(key[len(key)/2:]) - - if c.k1.BlockSize() != blockSize { - err = errors.New("xts: cipher does not have a block size of 16") - } - - return -} - -// Encrypt encrypts a sector of plaintext and puts the result into ciphertext. -// Plaintext and ciphertext may be the same slice but should not overlap. -// Sectors must be a multiple of 16 bytes and less than 2²ⴠbytes. -func (c *Cipher) Encrypt(ciphertext, plaintext []byte, sectorNum uint64) { - if len(ciphertext) < len(plaintext) { - panic("xts: ciphertext is smaller than plaintext") - } - if len(plaintext)%blockSize != 0 { - panic("xts: plaintext is not a multiple of the block size") - } - - var tweak [blockSize]byte - for i := 0; i < 8; i++ { - tweak[i] = byte(sectorNum) - sectorNum >>= 8 - } - - c.k2.Encrypt(tweak[:], tweak[:]) - - for i := 0; i < len(plaintext); i += blockSize { - for j := 0; j < blockSize; j++ { - ciphertext[i+j] = plaintext[i+j] ^ tweak[j] - } - c.k1.Encrypt(ciphertext[i:], ciphertext[i:]) - for j := 0; j < blockSize; j++ { - ciphertext[i+j] ^= tweak[j] - } - - mul2(&tweak) - } -} - -// Decrypt decrypts a sector of ciphertext and puts the result into plaintext. -// Plaintext and ciphertext may be the same slice but should not overlap. -// Sectors must be a multiple of 16 bytes and less than 2²ⴠbytes. -func (c *Cipher) Decrypt(plaintext, ciphertext []byte, sectorNum uint64) { - if len(plaintext) < len(ciphertext) { - panic("xts: plaintext is smaller than ciphertext") - } - if len(ciphertext)%blockSize != 0 { - panic("xts: ciphertext is not a multiple of the block size") - } - - var tweak [blockSize]byte - for i := 0; i < 8; i++ { - tweak[i] = byte(sectorNum) - sectorNum >>= 8 - } - - c.k2.Encrypt(tweak[:], tweak[:]) - - for i := 0; i < len(plaintext); i += blockSize { - for j := 0; j < blockSize; j++ { - plaintext[i+j] = ciphertext[i+j] ^ tweak[j] - } - c.k1.Decrypt(plaintext[i:], plaintext[i:]) - for j := 0; j < blockSize; j++ { - plaintext[i+j] ^= tweak[j] - } - - mul2(&tweak) - } -} - -// mul2 multiplies tweak by 2 in GF(2¹²â¸) with an irreducible polynomial of -// x¹²⸠+ xâ· + x² + x + 1. -func mul2(tweak *[blockSize]byte) { - var carryIn byte - for j := range tweak { - carryOut := tweak[j] >> 7 - tweak[j] = (tweak[j] << 1) + carryIn - carryIn = carryOut - } - if carryIn != 0 { - // If we have a carry bit then we need to subtract a multiple - // of the irreducible polynomial (x¹²⸠+ xâ· + x² + x + 1). - // By dropping the carry bit, we're subtracting the x^128 term - // so all that remains is to subtract xâ· + x² + x + 1. - // Subtraction (and addition) in this representation is just - // XOR. - tweak[0] ^= 1<<7 | 1<<2 | 1<<1 | 1 - } -} diff --git a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xts/xts_test.go b/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xts/xts_test.go deleted file mode 100644 index 7a5e9fad..00000000 --- a/vendor/gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/xts/xts_test.go +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2012 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 xts - -import ( - "bytes" - "crypto/aes" - "encoding/hex" - "testing" -) - -// These test vectors have been taken from IEEE P1619/D16, Annex B. -var xtsTestVectors = []struct { - key string - sector uint64 - plaintext string - ciphertext string -}{ - { - "0000000000000000000000000000000000000000000000000000000000000000", - 0, - "0000000000000000000000000000000000000000000000000000000000000000", - "917cf69ebd68b2ec9b9fe9a3eadda692cd43d2f59598ed858c02c2652fbf922e", - }, { - "1111111111111111111111111111111122222222222222222222222222222222", - 0x3333333333, - "4444444444444444444444444444444444444444444444444444444444444444", - "c454185e6a16936e39334038acef838bfb186fff7480adc4289382ecd6d394f0", - }, { - "fffefdfcfbfaf9f8f7f6f5f4f3f2f1f022222222222222222222222222222222", - 0x3333333333, - "4444444444444444444444444444444444444444444444444444444444444444", - "af85336b597afc1a900b2eb21ec949d292df4c047e0b21532186a5971a227a89", - }, { - "2718281828459045235360287471352631415926535897932384626433832795", - 0, - "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff", - "27a7479befa1d476489f308cd4cfa6e2a96e4bbe3208ff25287dd3819616e89cc78cf7f5e543445f8333d8fa7f56000005279fa5d8b5e4ad40e736ddb4d35412328063fd2aab53e5ea1e0a9f332500a5df9487d07a5c92cc512c8866c7e860ce93fdf166a24912b422976146ae20ce846bb7dc9ba94a767aaef20c0d61ad02655ea92dc4c4e41a8952c651d33174be51a10c421110e6d81588ede82103a252d8a750e8768defffed9122810aaeb99f9172af82b604dc4b8e51bcb08235a6f4341332e4ca60482a4ba1a03b3e65008fc5da76b70bf1690db4eae29c5f1badd03c5ccf2a55d705ddcd86d449511ceb7ec30bf12b1fa35b913f9f747a8afd1b130e94bff94effd01a91735ca1726acd0b197c4e5b03393697e126826fb6bbde8ecc1e08298516e2c9ed03ff3c1b7860f6de76d4cecd94c8119855ef5297ca67e9f3e7ff72b1e99785ca0a7e7720c5b36dc6d72cac9574c8cbbc2f801e23e56fd344b07f22154beba0f08ce8891e643ed995c94d9a69c9f1b5f499027a78572aeebd74d20cc39881c213ee770b1010e4bea718846977ae119f7a023ab58cca0ad752afe656bb3c17256a9f6e9bf19fdd5a38fc82bbe872c5539edb609ef4f79c203ebb140f2e583cb2ad15b4aa5b655016a8449277dbd477ef2c8d6c017db738b18deb4a427d1923ce3ff262735779a418f20a282df920147beabe421ee5319d0568", - }, { - "2718281828459045235360287471352631415926535897932384626433832795", - 1, - "27a7479befa1d476489f308cd4cfa6e2a96e4bbe3208ff25287dd3819616e89cc78cf7f5e543445f8333d8fa7f56000005279fa5d8b5e4ad40e736ddb4d35412328063fd2aab53e5ea1e0a9f332500a5df9487d07a5c92cc512c8866c7e860ce93fdf166a24912b422976146ae20ce846bb7dc9ba94a767aaef20c0d61ad02655ea92dc4c4e41a8952c651d33174be51a10c421110e6d81588ede82103a252d8a750e8768defffed9122810aaeb99f9172af82b604dc4b8e51bcb08235a6f4341332e4ca60482a4ba1a03b3e65008fc5da76b70bf1690db4eae29c5f1badd03c5ccf2a55d705ddcd86d449511ceb7ec30bf12b1fa35b913f9f747a8afd1b130e94bff94effd01a91735ca1726acd0b197c4e5b03393697e126826fb6bbde8ecc1e08298516e2c9ed03ff3c1b7860f6de76d4cecd94c8119855ef5297ca67e9f3e7ff72b1e99785ca0a7e7720c5b36dc6d72cac9574c8cbbc2f801e23e56fd344b07f22154beba0f08ce8891e643ed995c94d9a69c9f1b5f499027a78572aeebd74d20cc39881c213ee770b1010e4bea718846977ae119f7a023ab58cca0ad752afe656bb3c17256a9f6e9bf19fdd5a38fc82bbe872c5539edb609ef4f79c203ebb140f2e583cb2ad15b4aa5b655016a8449277dbd477ef2c8d6c017db738b18deb4a427d1923ce3ff262735779a418f20a282df920147beabe421ee5319d0568", - "264d3ca8512194fec312c8c9891f279fefdd608d0c027b60483a3fa811d65ee59d52d9e40ec5672d81532b38b6b089ce951f0f9c35590b8b978d175213f329bb1c2fd30f2f7f30492a61a532a79f51d36f5e31a7c9a12c286082ff7d2394d18f783e1a8e72c722caaaa52d8f065657d2631fd25bfd8e5baad6e527d763517501c68c5edc3cdd55435c532d7125c8614deed9adaa3acade5888b87bef641c4c994c8091b5bcd387f3963fb5bc37aa922fbfe3df4e5b915e6eb514717bdd2a74079a5073f5c4bfd46adf7d282e7a393a52579d11a028da4d9cd9c77124f9648ee383b1ac763930e7162a8d37f350b2f74b8472cf09902063c6b32e8c2d9290cefbd7346d1c779a0df50edcde4531da07b099c638e83a755944df2aef1aa31752fd323dcb710fb4bfbb9d22b925bc3577e1b8949e729a90bbafeacf7f7879e7b1147e28ba0bae940db795a61b15ecf4df8db07b824bb062802cc98a9545bb2aaeed77cb3fc6db15dcd7d80d7d5bc406c4970a3478ada8899b329198eb61c193fb6275aa8ca340344a75a862aebe92eee1ce032fd950b47d7704a3876923b4ad62844bf4a09c4dbe8b4397184b7471360c9564880aedddb9baa4af2e75394b08cd32ff479c57a07d3eab5d54de5f9738b8d27f27a9f0ab11799d7b7ffefb2704c95c6ad12c39f1e867a4b7b1d7818a4b753dfd2a89ccb45e001a03a867b187f225dd", - }, { - "27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592", - 0xff, - "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff", - "1c3b3a102f770386e4836c99e370cf9bea00803f5e482357a4ae12d414a3e63b5d31e276f8fe4a8d66b317f9ac683f44680a86ac35adfc3345befecb4bb188fd5776926c49a3095eb108fd1098baec70aaa66999a72a82f27d848b21d4a741b0c5cd4d5fff9dac89aeba122961d03a757123e9870f8acf1000020887891429ca2a3e7a7d7df7b10355165c8b9a6d0a7de8b062c4500dc4cd120c0f7418dae3d0b5781c34803fa75421c790dfe1de1834f280d7667b327f6c8cd7557e12ac3a0f93ec05c52e0493ef31a12d3d9260f79a289d6a379bc70c50841473d1a8cc81ec583e9645e07b8d9670655ba5bbcfecc6dc3966380ad8fecb17b6ba02469a020a84e18e8f84252070c13e9f1f289be54fbc481457778f616015e1327a02b140f1505eb309326d68378f8374595c849d84f4c333ec4423885143cb47bd71c5edae9be69a2ffeceb1bec9de244fbe15992b11b77c040f12bd8f6a975a44a0f90c29a9abc3d4d893927284c58754cce294529f8614dcd2aba991925fedc4ae74ffac6e333b93eb4aff0479da9a410e4450e0dd7ae4c6e2910900575da401fc07059f645e8b7e9bfdef33943054ff84011493c27b3429eaedb4ed5376441a77ed43851ad77f16f541dfd269d50d6a5f14fb0aab1cbb4c1550be97f7ab4066193c4caa773dad38014bd2092fa755c824bb5e54c4f36ffda9fcea70b9c6e693e148c151", - }, -} - -func fromHex(s string) []byte { - ret, err := hex.DecodeString(s) - if err != nil { - panic("xts: invalid hex in test") - } - return ret -} - -func TestXTS(t *testing.T) { - for i, test := range xtsTestVectors { - c, err := NewCipher(aes.NewCipher, fromHex(test.key)) - if err != nil { - t.Errorf("#%d: failed to create cipher: %s", i, err) - continue - } - plaintext := fromHex(test.plaintext) - ciphertext := make([]byte, len(plaintext)) - c.Encrypt(ciphertext, plaintext, test.sector) - - expectedCiphertext := fromHex(test.ciphertext) - if !bytes.Equal(ciphertext, expectedCiphertext) { - t.Errorf("#%d: encrypted failed, got: %x, want: %x", i, ciphertext, expectedCiphertext) - continue - } - - decrypted := make([]byte, len(ciphertext)) - c.Decrypt(decrypted, ciphertext, test.sector) - if !bytes.Equal(decrypted, plaintext) { - t.Errorf("#%d: decryption failed, got: %x, want: %x", i, decrypted, plaintext) - } - } -} diff --git a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/.gxignore b/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/LICENSE b/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/LICENSE deleted file mode 100644 index c9efac32..00000000 --- a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) 2010 Jack Palevich. 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/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/README.md b/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/README.md deleted file mode 100644 index 49cc0b85..00000000 --- a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# gateway - -A very simple library for discovering the IP address of the local LAN gateway. - -Provides implementations for Linux, OS X (Darwin) and Windows. - -Pull requests for other OSs happily considered! diff --git a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_darwin.go b/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_darwin.go deleted file mode 100644 index fc6ef68d..00000000 --- a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_darwin.go +++ /dev/null @@ -1,40 +0,0 @@ -package gateway - -import ( - "bytes" - "io/ioutil" - "net" - "os/exec" -) - -func DiscoverGateway() (ip net.IP, err error) { - routeCmd := exec.Command("route", "-n", "get", "0.0.0.0") - stdOut, err := routeCmd.StdoutPipe() - if err != nil { - return - } - if err = routeCmd.Start(); err != nil { - return - } - output, err := ioutil.ReadAll(stdOut) - if err != nil { - return - } - - // Darwin route out format is always like this: - // route to: default - // destination: default - // mask: default - // gateway: 192.168.1.1 - outputLines := bytes.Split(output, []byte("\n")) - for _, line := range outputLines { - if bytes.Contains(line, []byte("gateway:")) { - gatewayFields := bytes.Fields(line) - ip = net.ParseIP(string(gatewayFields[1])) - break - } - } - - err = routeCmd.Wait() - return -} diff --git a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_linux.go b/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_linux.go deleted file mode 100644 index 333bde1d..00000000 --- a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_linux.go +++ /dev/null @@ -1,75 +0,0 @@ -package gateway - -import ( - "bytes" - "io/ioutil" - "net" - "os/exec" -) - -func discoverGatewayUsingIp() (ip net.IP, err error) { - routeCmd := exec.Command("ip", "route", "show") - stdOut, err := routeCmd.StdoutPipe() - if err != nil { - return - } - if err = routeCmd.Start(); err != nil { - return - } - output, err := ioutil.ReadAll(stdOut) - if err != nil { - return - } - - // Linux 'ip route show' format looks like this: - // default via 192.168.178.1 dev wlp3s0 metric 303 - // 192.168.178.0/24 dev wlp3s0 proto kernel scope link src 192.168.178.76 metric 303 - outputLines := bytes.Split(output, []byte("\n")) - for _, line := range outputLines { - if bytes.Contains(line, []byte("default")) { - ipFields := bytes.Fields(line) - ip = net.ParseIP(string(ipFields[2])) - break - } - } - err = routeCmd.Wait() - return -} - -func discoverGatewayUsingRoute() (ip net.IP, err error) { - routeCmd := exec.Command("route", "-n") - stdOut, err := routeCmd.StdoutPipe() - if err != nil { - return - } - if err = routeCmd.Start(); err != nil { - return - } - output, err := ioutil.ReadAll(stdOut) - if err != nil { - return - } - - // Linux route out format is always like this: - // Kernel IP routing table - // Destination Gateway Genmask Flags Metric Ref Use Iface - // 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 - outputLines := bytes.Split(output, []byte("\n")) - for _, line := range outputLines { - if bytes.Contains(line, []byte("0.0.0.0")) { - ipFields := bytes.Fields(line) - ip = net.ParseIP(string(ipFields[1])) - break - } - } - err = routeCmd.Wait() - return -} - -func DiscoverGateway() (ip net.IP, err error) { - ip, err = discoverGatewayUsingRoute() - if err != nil { - ip, err = discoverGatewayUsingIp() - } - return -} diff --git a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_test.go b/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_test.go deleted file mode 100644 index b127b02d..00000000 --- a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_test.go +++ /dev/null @@ -1,10 +0,0 @@ -package gateway - -import "testing" - -func TestGateway(t *testing.T) { - ip, err := DiscoverGateway() - if err != nil { - t.Errorf("DiscoverGateway() = %v,%v", ip, err) - } -} diff --git a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_unimplemented.go b/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_unimplemented.go deleted file mode 100644 index 35042b91..00000000 --- a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_unimplemented.go +++ /dev/null @@ -1,14 +0,0 @@ -// +build !darwin,!linux,!windows - -package gateway - -import ( - "fmt" - "net" - "runtime" -) - -func DiscoverGateway() (ip net.IP, err error) { - err = fmt.Errorf("DiscoverGateway not implemented for OS %s", runtime.GOOS) - return -} diff --git a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_windows.go b/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_windows.go deleted file mode 100644 index 282c8f68..00000000 --- a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/gateway_windows.go +++ /dev/null @@ -1,43 +0,0 @@ -package gateway - -import ( - "bytes" - "io/ioutil" - "net" - "os/exec" -) - -func DiscoverGateway() (ip net.IP, err error) { - routeCmd := exec.Command("route", "print", "0.0.0.0") - stdOut, err := routeCmd.StdoutPipe() - if err != nil { - return - } - if err = routeCmd.Start(); err != nil { - return - } - output, err := ioutil.ReadAll(stdOut) - if err != nil { - return - } - - // Windows route output format is always like this: - // =========================================================================== - // Active Routes: - // Network Destination Netmask Gateway Interface Metric - // 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.100 20 - // =========================================================================== - // I'm trying to pick the active route, - // then jump 2 lines and pick the third IP - // Not using regex because output is quite standard from Windows XP to 8 (NEEDS TESTING) - outputLines := bytes.Split(output, []byte("\n")) - for idx, line := range outputLines { - if bytes.Contains(line, []byte("Active Routes:")) { - ipFields := bytes.Fields(outputLines[idx+2]) - ip = net.ParseIP(string(ipFields[2])) - break - } - } - err = routeCmd.Wait() - return -} diff --git a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/package.json b/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/package.json deleted file mode 100644 index 590a2eca..00000000 --- a/vendor/gx/Qma5KQppqMBmpdNeVUDuNtEkec1BRNWcS3dodUdiP9267q/gateway/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "gateway", - "author": "whyrusleeping", - "version": "0.0.0", - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/jackpal/gateway" - } -} \ No newline at end of file diff --git a/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/.gxignore b/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/README.md b/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/README.md deleted file mode 100644 index ec31e62d..00000000 --- a/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# ResolveAddr extracted from net - -Extracted `ResolveAddr` code from golang `net` package. - -This should never have had to happen. - -Removed DNS resolution-- i didnt need it and it was 2x more work. -PRs accepted. diff --git a/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/package.json b/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/package.json deleted file mode 100644 index 667b01d6..00000000 --- a/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "go-net-resolve-addr", - "author": "whyrusleeping", - "version": "0.0.0", - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/jbenet/go-net-resolve-addr" - } -} \ No newline at end of file diff --git a/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/parse.go b/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/parse.go deleted file mode 100644 index d4b9f8ed..00000000 --- a/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/parse.go +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright 2012 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 resolve - -import () - -// Bigger than we need, not too big to worry about overflow -const big = 0xFFFFFF - -const HexDigit = "0123456789abcdef" - -// DTOI Decimal to integer starting at &s[i0]. -// Returns number, new offset, success. -func DTOI(s string, i0 int) (n int, i int, ok bool) { - n = 0 - for i = i0; i < len(s) && '0' <= s[i] && s[i] <= '9'; i++ { - n = n*10 + int(s[i]-'0') - if n >= big { - return 0, i, false - } - } - if i == i0 { - return 0, i, false - } - return n, i, true -} - -// XTOI Hexadecimal to integer starting at &s[i0]. -// Returns number, new offset, success. -func XTOI(s string, i0 int) (n int, i int, ok bool) { - n = 0 - for i = i0; i < len(s); i++ { - if '0' <= s[i] && s[i] <= '9' { - n *= 16 - n += int(s[i] - '0') - } else if 'a' <= s[i] && s[i] <= 'f' { - n *= 16 - n += int(s[i]-'a') + 10 - } else if 'A' <= s[i] && s[i] <= 'F' { - n *= 16 - n += int(s[i]-'A') + 10 - } else { - break - } - if n >= big { - return 0, i, false - } - } - if i == i0 { - return 0, i, false - } - return n, i, true -} - -// XTOI2 converts the next two hex digits of s into a byte. -// If s is longer than 2 bytes then the third byte must be e. -// If the first two bytes of s are not hex digits or the third byte -// does not match e, false is returned. -func XTOI2(s string, e byte) (byte, bool) { - if len(s) > 2 && s[2] != e { - return 0, false - } - n, ei, ok := XTOI(s[:2], 0) - return byte(n), ok && ei == 2 -} - -// ITOA Integer to decimal. -func IToA(i int) string { - var buf [30]byte - n := len(buf) - neg := false - if i < 0 { - i = -i - neg = true - } - ui := uint(i) - for ui > 0 || n == len(buf) { - n-- - buf[n] = byte('0' + ui%10) - ui /= 10 - } - if neg { - n-- - buf[n] = '-' - } - return string(buf[n:]) -} - -// ITOD Convert i to decimal string. -func ITOD(i uint) string { - if i == 0 { - return "0" - } - - // Assemble decimal in reverse order. - var b [32]byte - bp := len(b) - for ; i > 0; i /= 10 { - bp-- - b[bp] = byte(i%10) + '0' - } - - return string(b[bp:]) -} - -// AppendHex converts i to a hexadecimal string. Leading zeros are not printed. -func AppendHex(dst []byte, i uint32) []byte { - if i == 0 { - return append(dst, '0') - } - for j := 7; j >= 0; j-- { - v := i >> uint(j*4) - if v > 0 { - dst = append(dst, HexDigit[v&0xf]) - } - } - return dst -} - -// Number of occurrences of b in s. -func count(s string, b byte) int { - n := 0 - for i := 0; i < len(s); i++ { - if s[i] == b { - n++ - } - } - return n -} - -// Index of rightmost occurrence of b in s. -func last(s string, b byte) int { - i := len(s) - for i--; i >= 0; i-- { - if s[i] == b { - break - } - } - return i -} diff --git a/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/resolve.go b/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/resolve.go deleted file mode 100644 index dbc36f91..00000000 --- a/vendor/gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr/resolve.go +++ /dev/null @@ -1,262 +0,0 @@ -// Copyright 2012 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 resolve - -import ( - "errors" - "net" -) - -var ( - ErrDNSNotSupported = errors.New("dns resolution not supported") - ErrNoSuitableAddress = errors.New("no suitable address found") - ErrMissingAddress = errors.New("missing address") -) - -func parseNetwork(netw string) (afnet string, proto int, err error) { - switch netw { - case "tcp", "tcp4", "tcp6": - case "udp", "udp4", "udp6": - case "ip", "ip4", "ip6": - case "unix", "unixgram", "unixpacket": - default: - return "", 0, net.UnknownNetworkError(netw) - } - return netw, 0, nil -} - -// ResolveAddr resolves addr that is either an Internet or Unix Addr -func ResolveAddr(op, netw, addr string) (net.Addr, error) { - afnet, _, err := parseNetwork(netw) - if err != nil { - return nil, err - } - if op == "dial" && addr == "" { - return nil, ErrMissingAddress - } - switch afnet { - case "unix", "unixgram", "unixpacket": - return net.ResolveUnixAddr(afnet, addr) - } - return ResolveInternetAddr(afnet, addr) -} - -// resolveInternetAddr resolves addr that is either a literal IP -// address or a DNS name and returns an internet protocol family -// address. It returns a list that contains a pair of different -// address family addresses when addr is a DNS name and the name has -// multiple address family records. The result contains at least one -// address when error is nil. -func ResolveInternetAddr(netw, addr string) (net.Addr, error) { - var ( - err error - host, port, zone string - portnum int - ) - switch netw { - case "tcp", "tcp4", "tcp6", "udp", "udp4", "udp6": - if addr != "" { - if host, port, err = net.SplitHostPort(addr); err != nil { - return nil, err - } - if portnum, err = ParsePort(netw, port); err != nil { - return nil, err - } - } - case "ip", "ip4", "ip6": - if addr != "" { - host = addr - } - default: - return nil, net.UnknownNetworkError(netw) - } - inetaddr := func(ip net.IP) net.Addr { - switch netw { - case "tcp", "tcp4", "tcp6": - return &net.TCPAddr{IP: ip, Port: portnum, Zone: zone} - case "udp", "udp4", "udp6": - return &net.UDPAddr{IP: ip, Port: portnum, Zone: zone} - case "ip", "ip4", "ip6": - return &net.IPAddr{IP: ip, Zone: zone} - default: - panic("unexpected network: " + netw) - } - } - if host == "" { - return inetaddr(nil), nil - } - // Try as a literal IP address. - var ip net.IP - if ip = ParseIPv4(host); ip != nil { - return inetaddr(ip), nil - } - if ip, zone = ParseIPv6(host, true); ip != nil { - return inetaddr(ip), nil - } - return inetaddr(nil), ErrDNSNotSupported -} - -// ParsePort parses port as a network service port number for both -// TCP and UDP. -func ParsePort(netw, port string) (int, error) { - p, i, ok := DTOI(port, 0) - if !ok || i != len(port) { - var err error - p, err = net.LookupPort(netw, port) - if err != nil { - return 0, err - } - } - if p < 0 || p > 0xFFFF { - return 0, &net.AddrError{"invalid port", port} - } - return p, nil -} - -// Parse IPv4 address (d.d.d.d). -func ParseIPv4(s string) net.IP { - var p [net.IPv4len]byte - i := 0 - for j := 0; j < net.IPv4len; j++ { - if i >= len(s) { - // Missing octets. - return nil - } - if j > 0 { - if s[i] != '.' { - return nil - } - i++ - } - var ( - n int - ok bool - ) - n, i, ok = DTOI(s, i) - if !ok || n > 0xFF { - return nil - } - p[j] = byte(n) - } - if i != len(s) { - return nil - } - return net.IPv4(p[0], p[1], p[2], p[3]) -} - -func ParseIPv6(s string, zoneAllowed bool) (ip net.IP, zone string) { - ip = make(net.IP, net.IPv6len) - ellipsis := -1 // position of ellipsis in p - i := 0 // index in string s - - if zoneAllowed { - s, zone = SplitHostZone(s) - } - - // Might have leading ellipsis - if len(s) >= 2 && s[0] == ':' && s[1] == ':' { - ellipsis = 0 - i = 2 - // Might be only ellipsis - if i == len(s) { - return ip, zone - } - } - - // Loop, parsing hex numbers followed by colon. - j := 0 - for j < net.IPv6len { - // Hex number. - n, i1, ok := XTOI(s, i) - if !ok || n > 0xFFFF { - return nil, zone - } - - // If followed by dot, might be in trailing IPv4. - if i1 < len(s) && s[i1] == '.' { - if ellipsis < 0 && j != net.IPv6len-net.IPv4len { - // Not the right place. - return nil, zone - } - if j+net.IPv4len > net.IPv6len { - // Not enough room. - return nil, zone - } - ip4 := ParseIPv4(s[i:]) - if ip4 == nil { - return nil, zone - } - ip[j] = ip4[12] - ip[j+1] = ip4[13] - ip[j+2] = ip4[14] - ip[j+3] = ip4[15] - i = len(s) - j += net.IPv4len - break - } - - // Save this 16-bit chunk. - ip[j] = byte(n >> 8) - ip[j+1] = byte(n) - j += 2 - - // Stop at end of string. - i = i1 - if i == len(s) { - break - } - - // Otherwise must be followed by colon and more. - if s[i] != ':' || i+1 == len(s) { - return nil, zone - } - i++ - - // Look for ellipsis. - if s[i] == ':' { - if ellipsis >= 0 { // already have one - return nil, zone - } - ellipsis = j - if i++; i == len(s) { // can be at end - break - } - } - } - - // Must have used entire string. - if i != len(s) { - return nil, zone - } - - // If didn't parse enough, expand ellipsis. - if j < net.IPv6len { - if ellipsis < 0 { - return nil, zone - } - n := net.IPv6len - j - for k := j - 1; k >= ellipsis; k-- { - ip[k+n] = ip[k] - } - for k := ellipsis + n - 1; k >= ellipsis; k-- { - ip[k] = 0 - } - } else if ellipsis >= 0 { - // Ellipsis must represent at least one 0 group. - return nil, zone - } - return ip, zone -} - -func SplitHostZone(s string) (host, zone string) { - // The IPv6 scoped addressing zone identifier starts after the - // last percent sign. - if i := last(s, '%'); i > 0 { - host, zone = s[:i], s[i+1:] - } else { - host = s - } - return -} diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/.gxignore b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/.travis.yml b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/.travis.yml deleted file mode 100644 index 7725b309..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: go - -go: - - 1.3 - - release - - tip - -script: - - make test - -env: TEST_VERBOSE=1 diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/LICENSE b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/LICENSE deleted file mode 100644 index c7386b3c..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Juan Batiz-Benet - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/Makefile b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/Makefile deleted file mode 100644 index d6e3bf6d..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -test: go_test other_tests - -other_tests: - cd test && make test - -go_test: go_deps - go test -race -cpu=5 -v ./... - -go_deps: - go get golang.org/x/crypto/sha3 - go get github.com/jbenet/go-base58 diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/README.md b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/README.md deleted file mode 100644 index f891499b..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# go-multihash - -![travis](https://travis-ci.org/jbenet/go-multihash.svg) - -[multihash](//github.com/jbenet/multihash) implementation in Go. - -## Example - -```go -package main - -import ( - "encoding/hex" - "fmt" - "github.com/jbenet/go-multihash" -) - -func main() { - // ignores errors for simplicity. - // don't do that at home. - - buf, _ := hex.DecodeString("0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33") - mhbuf, _ := multihash.EncodeName(buf, "sha1"); - mhhex := hex.EncodeToString(mhbuf) - fmt.Printf("hex: %v\n", mhhex); - - o, _ := multihash.Decode(mhbuf); - mhhex = hex.EncodeToString(o.Digest); - fmt.Printf("obj: %v 0x%x %d %s\n", o.Name, o.Code, o.Length, mhhex); -} -``` - -Run [test/foo.go](test/foo.go) - -``` -> cd test/ -> go build -> ./test -hex: 11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 -obj: sha1 0x11 20 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 -``` - -## License - -MIT diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/io.go b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/io.go deleted file mode 100644 index cdd234c4..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/io.go +++ /dev/null @@ -1,79 +0,0 @@ -package multihash - -import ( - "fmt" - "io" -) - -// Reader is an io.Reader wrapper that exposes a function -// to read a whole multihash, parse it, and return it. -type Reader interface { - io.Reader - - ReadMultihash() (Multihash, error) -} - -// Writer is an io.Writer wrapper that exposes a function -// to write a whole multihash. -type Writer interface { - io.Writer - - WriteMultihash(Multihash) error -} - -// NewReader wraps an io.Reader with a multihash.Reader -func NewReader(r io.Reader) Reader { - return &mhReader{r} -} - -// NewWriter wraps an io.Writer with a multihash.Writer -func NewWriter(w io.Writer) Writer { - return &mhWriter{w} -} - -type mhReader struct { - r io.Reader -} - -func (r *mhReader) Read(buf []byte) (n int, err error) { - return r.r.Read(buf) -} - -func (r *mhReader) ReadMultihash() (Multihash, error) { - mhhdr := make([]byte, 2) - if _, err := io.ReadFull(r.r, mhhdr); err != nil { - return nil, err - } - - // first byte is the algo, the second is the length. - - // (varints someday...) - length := uint(mhhdr[1]) - - if length > 127 { - return nil, fmt.Errorf("varints not yet supported (length is %d)", length) - } - - buf := make([]byte, length+2) - buf[0] = mhhdr[0] - buf[1] = mhhdr[1] - - if _, err := io.ReadFull(r.r, buf[2:]); err != nil { - return nil, err - } - - return Cast(buf) -} - -type mhWriter struct { - w io.Writer -} - -func (w *mhWriter) Write(buf []byte) (n int, err error) { - return w.w.Write(buf) -} - -func (w *mhWriter) WriteMultihash(m Multihash) error { - _, err := w.w.Write([]byte(m)) - return err -} diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/io_test.go b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/io_test.go deleted file mode 100644 index 44da78e1..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/io_test.go +++ /dev/null @@ -1,69 +0,0 @@ -package multihash - -import ( - "bytes" - "io" - "testing" -) - -func TestReader(t *testing.T) { - - var buf bytes.Buffer - - for _, tc := range testCases { - m, err := tc.Multihash() - if err != nil { - t.Fatal(err) - } - - buf.Write([]byte(m)) - } - - r := NewReader(&buf) - - for _, tc := range testCases { - h, err := tc.Multihash() - if err != nil { - t.Fatal(err) - } - - h2, err := r.ReadMultihash() - if err != nil { - t.Error(err) - continue - } - - if !bytes.Equal(h, h2) { - t.Error("h and h2 should be equal") - } - } -} - -func TestWriter(t *testing.T) { - - var buf bytes.Buffer - w := NewWriter(&buf) - - for _, tc := range testCases { - m, err := tc.Multihash() - if err != nil { - t.Error(err) - continue - } - - if err := w.WriteMultihash(m); err != nil { - t.Error(err) - continue - } - - buf2 := make([]byte, len(m)) - if _, err := io.ReadFull(&buf, buf2); err != nil { - t.Error(err) - continue - } - - if !bytes.Equal(m, buf2) { - t.Error("m and buf2 should be equal") - } - } -} diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash.go b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash.go deleted file mode 100644 index 61c96d72..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash.go +++ /dev/null @@ -1,188 +0,0 @@ -package multihash - -import ( - "encoding/hex" - "errors" - "fmt" - - b58 "gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58" -) - -// errors -var ( - ErrUnknownCode = errors.New("unknown multihash code") - ErrTooShort = errors.New("multihash too short. must be > 3 bytes") - ErrTooLong = errors.New("multihash too long. must be < 129 bytes") - ErrLenNotSupported = errors.New("multihash does not yet support digests longer than 127 bytes") -) - -// ErrInconsistentLen is returned when a decoded multihash has an inconsistent length -type ErrInconsistentLen struct { - dm *DecodedMultihash -} - -func (e ErrInconsistentLen) Error() string { - return fmt.Sprintf("multihash length inconsistent: %v", e.dm) -} - -// constants -const ( - SHA1 = 0x11 - SHA2_256 = 0x12 - SHA2_512 = 0x13 - SHA3 = 0x14 - BLAKE2B = 0x40 - BLAKE2S = 0x41 -) - -// Names maps the name of a hash to the code -var Names = map[string]int{ - "sha1": SHA1, - "sha2-256": SHA2_256, - "sha2-512": SHA2_512, - "sha3": SHA3, - "blake2b": BLAKE2B, - "blake2s": BLAKE2S, -} - -// Codes maps a hash code to it's name -var Codes = map[int]string{ - SHA1: "sha1", - SHA2_256: "sha2-256", - SHA2_512: "sha2-512", - SHA3: "sha3", - BLAKE2B: "blake2b", - BLAKE2S: "blake2s", -} - -// DefaultLengths maps a hash code to it's default length -var DefaultLengths = map[int]int{ - SHA1: 20, - SHA2_256: 32, - SHA2_512: 64, - SHA3: 64, - BLAKE2B: 64, - BLAKE2S: 32, -} - -type DecodedMultihash struct { - Code int - Name string - Length int - Digest []byte -} - -type Multihash []byte - -func (m *Multihash) HexString() string { - return hex.EncodeToString([]byte(*m)) -} - -func (m *Multihash) String() string { - return m.HexString() -} - -func FromHexString(s string) (Multihash, error) { - b, err := hex.DecodeString(s) - if err != nil { - return Multihash{}, err - } - - return Cast(b) -} - -func (m Multihash) B58String() string { - return b58.Encode([]byte(m)) -} - -func FromB58String(s string) (m Multihash, err error) { - // panic handler, in case we try accessing bytes incorrectly. - defer func() { - if e := recover(); e != nil { - m = Multihash{} - err = e.(error) - } - }() - - //b58 smells like it can panic... - b := b58.Decode(s) - return Cast(b) -} - -func Cast(buf []byte) (Multihash, error) { - dm, err := Decode(buf) - if err != nil { - return Multihash{}, err - } - - if !ValidCode(dm.Code) { - return Multihash{}, ErrUnknownCode - } - - return Multihash(buf), nil -} - -// Decode a hash from the given Multihash. -func Decode(buf []byte) (*DecodedMultihash, error) { - - if len(buf) < 3 { - return nil, ErrTooShort - } - - if len(buf) > 129 { - return nil, ErrTooLong - } - - dm := &DecodedMultihash{ - Code: int(uint8(buf[0])), - Name: Codes[int(uint8(buf[0]))], - Length: int(uint8(buf[1])), - Digest: buf[2:], - } - - if len(dm.Digest) != dm.Length { - return nil, ErrInconsistentLen{dm} - } - - return dm, nil -} - -// Encode a hash digest along with the specified function code. -// Note: the length is derived from the length of the digest itself. -func Encode(buf []byte, code int) ([]byte, error) { - - if !ValidCode(code) { - return nil, ErrUnknownCode - } - - if len(buf) > 127 { - return nil, ErrLenNotSupported - } - - pre := make([]byte, 2) - pre[0] = byte(uint8(code)) - pre[1] = byte(uint8(len(buf))) - return append(pre, buf...), nil -} - -func EncodeName(buf []byte, name string) ([]byte, error) { - return Encode(buf, Names[name]) -} - -// ValidCode checks whether a multihash code is valid. -func ValidCode(code int) bool { - if AppCode(code) { - return true - } - - if _, ok := Codes[code]; ok { - return true - } - - return false -} - -// AppCode checks whether a multihash code is part of the App range. -func AppCode(code int) bool { - return code >= 0 && code < 0x10 -} diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/.gitignore b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/.gitignore deleted file mode 100644 index 2826f179..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/.gitignore +++ /dev/null @@ -1 +0,0 @@ -multihash diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/.gobuilder.yml b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/.gobuilder.yml deleted file mode 100644 index d775798e..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/.gobuilder.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -artifacts: - - LICENSE - - README.md - - install.dist.sh diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/LICENSE b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/LICENSE deleted file mode 100644 index c7386b3c..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Juan Batiz-Benet - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/README.md b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/README.md deleted file mode 100644 index 491e759e..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/README.md +++ /dev/null @@ -1,118 +0,0 @@ -# multihash tool - -The `multihash` tool uses `go-multihash` to hash things much like `shasum`. - -Warning: this is a **multihash** tool! Its digests follow the [multihash](https://github.com/jbenet/multihash) format. - -### Install - -- From Source: - ``` - go get github.com/jbenet/go-multihash/multihash - ``` -- Precompiled Binaries: https://gobuilder.me/github.com/jbenet/go-multihash/multihash - -### Usage - -```sh -> multihash -h -usage: ./multihash [options] [FILE] -Print or check multihash checksums. -With no FILE, or when FILE is -, read standard input. - -Options: - -a="sha2-256": one of: sha1, sha2-256, sha2-512, sha3 (shorthand) - -algorithm="sha2-256": one of: sha1, sha2-256, sha2-512, sha3 - -c="": check checksum matches (shorthand) - -check="": check checksum matches - -e="base58": one of: raw, hex, base58, base64 (shorthand) - -encoding="base58": one of: raw, hex, base58, base64 - -l=-1: checksums length in bits (truncate). -1 is default (shorthand) - -length=-1: checksums length in bits (truncate). -1 is default -``` - -### Examples - -#### Input - -```sh -# from stdin -> multihash < main.go -QmRZxt2b1FVZPNqd8hsiykDL3TdBDeTSPX9Kv46HmX4Gx8 - -# from file -> ./multihash main.go -QmRZxt2b1FVZPNqd8hsiykDL3TdBDeTSPX9Kv46HmX4Gx8 - -# from stdin "filename" -> multihash - < main.go -QmRZxt2b1FVZPNqd8hsiykDL3TdBDeTSPX9Kv46HmX4Gx8 -``` - -#### Algorithms - -```sh -> multihash -a ? -error: algorithm '?' not one of: sha1, sha2-256, sha2-512, sha3 - -> multihash -a sha1 < main.go -5drkbcqJUo6fZVvcZJeVEVWAgndvLm - -> multihash -a sha2-256 < main.go -QmcK3s36goo9v2HYcfTrDKKwxaxmJJ59etodQQFYsL5T5N - -> multihash -a sha2-512 < main.go -8VuDcW4CooyPQA8Cc4eYpwjhyDJZqu5m5ZMDFzWULYsVS8d119JaGeNWsZbZ2ZG2kPtbrMx31MidokCigaD65yUPAs - -> multihash -a sha3 < main.go -8tWDCTfAX24DYmzNixTj2ARJkqwRG736VHx5aJppmqRjhW9QT1EuTgKUmu9Pmunzq292jzPKxb2VxSsTXmjFY1HD3B -``` - -#### Encodings - -```sh -> multihash -e raw < main.go - Ϛ�����I�5 S��WG>���_��]g�����u - -> multihash -e hex < main.go -1220cf9aa2b8a38b9b49d135095390059a57473e97aceb5fcae25d67a8b6feb58275 - -> multihash -e base64 < main.go -EiDPmqK4o4ubSdE1CVOQBZpXRz6XrOtfyuJdZ6i2/rWCdQ== - -> multihash -e base58 < main.go -Qmf1QjEXDmqBm7RqHKqFGNUyhzUjnX7cmgKMrGzzPceZDQ -``` - -#### Digest Length - -```sh -# we're outputing hex (good byte alignment) to show the codes changing -# notice the multihash code (first 2 chars) differs! -> multihash -e hex -a sha2-256 -l 256 < main.go -1220cf9aa2b8a38b9b49d135095390059a57473e97aceb5fcae25d67a8b6feb58275 -> multihash -e hex -a sha2-512 -l 256 < main.go -132047a4b6c629f5545f529b0ff461dc09119969f3593186277a1cc7a8ea3560a6f1 -> multihash -e hex -a sha3 -l 256 < main.go -14206b9222a1a47939e665261bd2b5573e55e7988675223adde73c1011066ad66335 - -# notice the multihash length (next 2 chars) differs! -> multihash -e hex -a sha2-256 -l 256 < main.go -1220cf9aa2b8a38b9b49d135095390059a57473e97aceb5fcae25d67a8b6feb58275 -> multihash -e hex -a sha2-256 -l 200 < main.go -1219cf9aa2b8a38b9b49d135095390059a57473e97aceb5fcae25d -``` - -#### Verify Checksum - -```sh -> multihash -c QmRZxt2b1FVZPNqd8hsiykDL3TdBDeTSPX9Kv46HmX4Gx8 < main.go -OK checksums match (-q for no output) - -> multihash -c QmcKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa < main.go -error: computed checksum did not match (-q for no output) - -# works with other arguments too -> multihash -e hex -l 128 -c "12102ffc284a1e82bf51e567c75b2ae6edb9" < main.go -OK checksums match (-q for no output) -``` diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/install.dist.sh b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/install.dist.sh deleted file mode 100644 index f90274f6..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/install.dist.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -bin=multihash - -# this script is currently brain dead. -# it merely tries two locations. -# in the future maybe use value of $PATH. - -binpath=/usr/local/bin -if [ -d "$binpath" ]; then - mv "$bin" "$binpath/$bin" - echo "installed $binpath/$bin" - exit 0 -fi - -binpath=/usr/bin -if [ -d "$binpath" ]; then - mv "$bin" "$binpath/$bin" - echo "installed $binpath/$bin" - exit 0 -fi diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/main.go b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/main.go deleted file mode 100644 index e96e6ef2..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash/main.go +++ /dev/null @@ -1,132 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "io" - "os" - - mh "gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash" - mhopts "gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/opts" -) - -var usage = `usage: %s [options] [FILE] -Print or check multihash checksums. -With no FILE, or when FILE is -, read standard input. - -Options: -` - -// flags -var opts *mhopts.Options -var checkRaw string -var checkMh mh.Multihash -var inputFilename string -var quiet bool - -func init() { - flag.Usage = func() { - fmt.Fprintf(os.Stderr, usage, os.Args[0]) - flag.PrintDefaults() - } - - opts = mhopts.SetupFlags(flag.CommandLine) - - checkStr := "check checksum matches" - flag.StringVar(&checkRaw, "check", "", checkStr) - flag.StringVar(&checkRaw, "c", "", checkStr+" (shorthand)") - - quietStr := "quiet output (no newline on checksum, no error text)" - flag.BoolVar(&quiet, "quiet", false, quietStr) - flag.BoolVar(&quiet, "q", false, quietStr+" (shorthand)") -} - -func parseFlags(o *mhopts.Options) error { - flag.Parse() - if err := o.ParseError(); err != nil { - return err - } - - if checkRaw != "" { - var err error - checkMh, err = mhopts.Decode(o.Encoding, checkRaw) - if err != nil { - return fmt.Errorf("fail to decode check '%s': %s", checkRaw, err) - } - } - - return nil -} - -func getInput() (io.ReadCloser, error) { - args := flag.Args() - - switch { - case len(args) < 1: - inputFilename = "-" - return os.Stdin, nil - case args[0] == "-": - inputFilename = "-" - return os.Stdin, nil - default: - inputFilename = args[0] - f, err := os.Open(args[0]) - if err != nil { - return nil, fmt.Errorf("failed to open '%s': %s", args[0], err) - } - return f, nil - } -} -func printHash(o *mhopts.Options, r io.Reader) error { - h, err := o.Multihash(r) - if err != nil { - return err - } - - s, err := mhopts.Encode(o.Encoding, h) - if err != nil { - return err - } - - if quiet { - fmt.Print(s) - } else { - fmt.Println(s) - } - return nil -} - -func main() { - checkErr := func(err error) { - if err != nil { - die("error: ", err) - } - } - - err := parseFlags(opts) - checkErr(err) - - inp, err := getInput() - checkErr(err) - - if checkMh != nil { - err = opts.Check(inp, checkMh) - checkErr(err) - if !quiet { - fmt.Println("OK checksums match (-q for no output)") - } - } else { - err = printHash(opts, inp) - checkErr(err) - } - inp.Close() -} - -func die(v ...interface{}) { - if !quiet { - fmt.Fprint(os.Stderr, v...) - fmt.Fprint(os.Stderr, "\n") - } - // flag.Usage() - os.Exit(1) -} diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash_test.go b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash_test.go deleted file mode 100644 index dfa858e4..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/multihash_test.go +++ /dev/null @@ -1,270 +0,0 @@ -package multihash - -import ( - "bytes" - "encoding/hex" - "fmt" - "testing" -) - -// maybe silly, but makes it so changing -// the table accidentally has to happen twice. -var tCodes = map[int]string{ - 0x11: "sha1", - 0x12: "sha2-256", - 0x13: "sha2-512", - 0x14: "sha3", - 0x40: "blake2b", - 0x41: "blake2s", -} - -type TestCase struct { - hex string - code int - name string -} - -var testCases = []TestCase{ - TestCase{"0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33", 0x11, "sha1"}, - TestCase{"0beec7b5", 0x11, "sha1"}, - TestCase{"2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae", 0x12, "sha2-256"}, - TestCase{"2c26b46b", 0x12, "sha2-256"}, - TestCase{"0beec7b5ea3f0fdbc9", 0x40, "blake2b"}, -} - -func (tc TestCase) Multihash() (Multihash, error) { - ob, err := hex.DecodeString(tc.hex) - if err != nil { - return nil, err - } - - b := make([]byte, 2+len(ob)) - b[0] = byte(uint8(tc.code)) - b[1] = byte(uint8(len(ob))) - copy(b[2:], ob) - return Cast(b) -} - -func TestEncode(t *testing.T) { - for _, tc := range testCases { - ob, err := hex.DecodeString(tc.hex) - if err != nil { - t.Error(err) - continue - } - - pre := make([]byte, 2) - pre[0] = byte(uint8(tc.code)) - pre[1] = byte(uint8(len(ob))) - nb := append(pre, ob...) - - encC, err := Encode(ob, tc.code) - if err != nil { - t.Error(err) - continue - } - - if !bytes.Equal(encC, nb) { - t.Error("encoded byte mismatch: ", encC, nb) - } - - encN, err := EncodeName(ob, tc.name) - if err != nil { - t.Error(err) - continue - } - - if !bytes.Equal(encN, nb) { - t.Error("encoded byte mismatch: ", encN, nb) - } - - h, err := tc.Multihash() - if err != nil { - t.Error(err) - } - if !bytes.Equal(h, nb) { - t.Error("Multihash func mismatch.") - } - } -} - -func ExampleEncodeName() { - // ignores errors for simplicity - don't do that at home. - buf, _ := hex.DecodeString("0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33") - mhbuf, _ := EncodeName(buf, "sha1") - mhhex := hex.EncodeToString(mhbuf) - fmt.Printf("hex: %v\n", mhhex) - - // Output: - // hex: 11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 -} - -func TestDecode(t *testing.T) { - for _, tc := range testCases { - ob, err := hex.DecodeString(tc.hex) - if err != nil { - t.Error(err) - continue - } - - pre := make([]byte, 2) - pre[0] = byte(uint8(tc.code)) - pre[1] = byte(uint8(len(ob))) - nb := append(pre, ob...) - - dec, err := Decode(nb) - if err != nil { - t.Error(err) - continue - } - - if dec.Code != tc.code { - t.Error("decoded code mismatch: ", dec.Code, tc.code) - } - - if dec.Name != tc.name { - t.Error("decoded name mismatch: ", dec.Name, tc.name) - } - - if dec.Length != len(ob) { - t.Error("decoded length mismatch: ", dec.Length, len(ob)) - } - - if !bytes.Equal(dec.Digest, ob) { - t.Error("decoded byte mismatch: ", dec.Digest, ob) - } - } -} - -func TestTable(t *testing.T) { - for k, v := range tCodes { - if Codes[k] != v { - t.Error("Table mismatch: ", Codes[k], v) - } - if Names[v] != k { - t.Error("Table mismatch: ", Names[v], k) - } - } -} - -func ExampleDecode() { - // ignores errors for simplicity - don't do that at home. - buf, _ := hex.DecodeString("0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33") - mhbuf, _ := EncodeName(buf, "sha1") - o, _ := Decode(mhbuf) - mhhex := hex.EncodeToString(o.Digest) - fmt.Printf("obj: %v 0x%x %d %s\n", o.Name, o.Code, o.Length, mhhex) - - // Output: - // obj: sha1 0x11 20 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 -} - -func TestValidCode(t *testing.T) { - for i := 0; i < 0xff; i++ { - _, ok := tCodes[i] - b := AppCode(i) || ok - - if ValidCode(i) != b { - t.Error("ValidCode incorrect for: ", i) - } - } -} - -func TestAppCode(t *testing.T) { - for i := 0; i < 0xff; i++ { - b := i >= 0 && i < 0x10 - if AppCode(i) != b { - t.Error("AppCode incorrect for: ", i) - } - } -} - -func TestCast(t *testing.T) { - for _, tc := range testCases { - ob, err := hex.DecodeString(tc.hex) - if err != nil { - t.Error(err) - continue - } - - pre := make([]byte, 2) - pre[0] = byte(uint8(tc.code)) - pre[1] = byte(uint8(len(ob))) - nb := append(pre, ob...) - - if _, err := Cast(nb); err != nil { - t.Error(err) - continue - } - - if _, err = Cast(ob); err == nil { - t.Error("cast failed to detect non-multihash") - continue - } - } -} - -func TestHex(t *testing.T) { - for _, tc := range testCases { - ob, err := hex.DecodeString(tc.hex) - if err != nil { - t.Error(err) - continue - } - - pre := make([]byte, 2) - pre[0] = byte(uint8(tc.code)) - pre[1] = byte(uint8(len(ob))) - nb := append(pre, ob...) - - hs := hex.EncodeToString(nb) - mh, err := FromHexString(hs) - if err != nil { - t.Error(err) - continue - } - - if !bytes.Equal(mh, nb) { - t.Error("FromHexString failed", nb, mh) - continue - } - - if mh.HexString() != hs { - t.Error("Multihash.HexString failed", hs, mh.HexString) - continue - } - } -} - -func BenchmarkEncode(b *testing.B) { - tc := testCases[0] - ob, err := hex.DecodeString(tc.hex) - if err != nil { - b.Error(err) - return - } - - b.ResetTimer() - for i := 0; i < b.N; i++ { - Encode(ob, tc.code) - } -} - -func BenchmarkDecode(b *testing.B) { - tc := testCases[0] - ob, err := hex.DecodeString(tc.hex) - if err != nil { - b.Error(err) - return - } - - pre := make([]byte, 2) - pre[0] = byte(uint8(tc.code)) - pre[1] = byte(uint8(len(ob))) - nb := append(pre, ob...) - - b.ResetTimer() - for i := 0; i < b.N; i++ { - Decode(nb) - } -} diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/opts/README.md b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/opts/README.md deleted file mode 100644 index 231f2832..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/opts/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# mhopts - multihash options for writing commands - -`mhopts` is a small package that helps to write commands which -may take multihash options. Check it out in action: - -- [multihash](../multihash) -- [hashpipe](https://github.com/jbenet/go-hashpipe) - -Godoc: [https://godoc.org/github.com/jbenet/go-multihash/opts](https://godoc.org/github.com/jbenet/go-multihash/opts) diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/opts/coding.go b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/opts/coding.go deleted file mode 100644 index 802967af..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/opts/coding.go +++ /dev/null @@ -1,40 +0,0 @@ -package opts - -import ( - "encoding/base64" - "encoding/hex" - "fmt" - - mh "gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash" - base58 "gx/QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ/go-base58" -) - -func Decode(encoding, digest string) (mh.Multihash, error) { - switch encoding { - case "raw": - return mh.Cast([]byte(digest)) - case "hex": - return hex.DecodeString(digest) - case "base58": - return base58.Decode(digest), nil - case "base64": - return base64.StdEncoding.DecodeString(digest) - default: - return nil, fmt.Errorf("unknown encoding: %s", encoding) - } -} - -func Encode(encoding string, hash mh.Multihash) (string, error) { - switch encoding { - case "raw": - return string(hash), nil - case "hex": - return hex.EncodeToString(hash), nil - case "base58": - return base58.Encode(hash), nil - case "base64": - return base64.StdEncoding.EncodeToString(hash), nil - default: - return "", fmt.Errorf("unknown encoding: %s", encoding) - } -} diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/opts/opts.go b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/opts/opts.go deleted file mode 100644 index e3e865a4..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/opts/opts.go +++ /dev/null @@ -1,131 +0,0 @@ -// Package opts helps to write commands which may take multihash -// options. -package opts - -import ( - "bytes" - "errors" - "flag" - "fmt" - "io" - "io/ioutil" - "strings" - - mh "gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash" -) - -// package errors -var ( - ErrMatch = errors.New("multihash checksums did not match") -) - -// Options is a struct used to parse cli flags. -type Options struct { - Encoding string - Algorithm string - AlgorithmCode int - Length int - - fs *flag.FlagSet -} - -// FlagValues are the values the various option flags can take. -var FlagValues = struct { - Encodings []string - Algorithms []string -}{ - Encodings: []string{"raw", "hex", "base58", "base64"}, - Algorithms: []string{"sha1", "sha2-256", "sha2-512", "sha3"}, -} - -// SetupFlags adds multihash related options to given flagset. -func SetupFlags(f *flag.FlagSet) *Options { - // TODO: add arg for adding opt prefix and/or overriding opts - - o := new(Options) - algoStr := "one of: " + strings.Join(FlagValues.Algorithms, ", ") - f.StringVar(&o.Algorithm, "algorithm", "sha2-256", algoStr) - f.StringVar(&o.Algorithm, "a", "sha2-256", algoStr+" (shorthand)") - - encStr := "one of: " + strings.Join(FlagValues.Encodings, ", ") - f.StringVar(&o.Encoding, "encoding", "base58", encStr) - f.StringVar(&o.Encoding, "e", "base58", encStr+" (shorthand)") - - lengthStr := "checksums length in bits (truncate). -1 is default" - f.IntVar(&o.Length, "length", -1, lengthStr) - f.IntVar(&o.Length, "l", -1, lengthStr+" (shorthand)") - return o -} - -// Parse parses the values of flags from given argument slice. -// It is equivalent to flags.Parse(args) -func (o *Options) Parse(args []string) error { - if err := o.fs.Parse(args); err != nil { - return err - } - return o.ParseError() -} - -// ParseError checks the parsed options for errors. -func (o *Options) ParseError() error { - if !strIn(o.Encoding, FlagValues.Encodings) { - return fmt.Errorf("encoding '%s' not %s", o.Encoding, FlagValues.Encodings) - } - - if !strIn(o.Algorithm, FlagValues.Algorithms) { - return fmt.Errorf("algorithm '%s' not %s", o.Algorithm, FlagValues.Algorithms) - } - - var found bool - o.AlgorithmCode, found = mh.Names[o.Algorithm] - if !found { - return fmt.Errorf("algorithm '%s' not found (lib error, pls report).", o.Algorithm) - } - - if o.Length >= 0 { - if o.Length%8 != 0 { - return fmt.Errorf("length must be multiple of 8") - } - o.Length = o.Length / 8 - - if o.Length > mh.DefaultLengths[o.AlgorithmCode] { - o.Length = mh.DefaultLengths[o.AlgorithmCode] - } - } - return nil -} - -// strIn checks wither string a is in set. -func strIn(a string, set []string) bool { - for _, s := range set { - if s == a { - return true - } - } - return false -} - -// Check reads all the data in r, calculates its multihash, -// and checks it matches h1 -func (o *Options) Check(r io.Reader, h1 mh.Multihash) error { - h2, err := o.Multihash(r) - if err != nil { - return err - } - - if !bytes.Equal(h1, h2) { - return fmt.Errorf("computed checksum did not match") - } - - return nil -} - -// Multihash reads all the data in r and calculates its multihash. -func (o *Options) Multihash(r io.Reader) (mh.Multihash, error) { - b, err := ioutil.ReadAll(r) - if err != nil { - return nil, err - } - - return mh.Sum(b, o.AlgorithmCode, o.Length) -} diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/package.json b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/package.json deleted file mode 100644 index f251b4f0..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "go-multihash", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "go-base58", - "hash": "QmNsoHoCVhgXcv1Yg45jtkMgimxorTAN36fV9AQMFXHHAQ", - "version": "1.0.0" - }, - { - "name": "crypto-sha3", - "hash": "QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG", - "version": "1.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/jbenet/go-multihash" - } -} \ No newline at end of file diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/sum.go b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/sum.go deleted file mode 100644 index 4d6c0bcd..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/sum.go +++ /dev/null @@ -1,72 +0,0 @@ -package multihash - -import ( - "crypto/sha1" - "crypto/sha256" - "crypto/sha512" - "errors" - "fmt" - - sha3 "gx/QmSQRViqskLPYFbjKhWE5EaW8eou9SD2j52QaBkQdigMsG/crypto-sha3" -) - -var ErrSumNotSupported = errors.New("Function not implemented. Complain to lib maintainer.") - -func Sum(data []byte, code int, length int) (Multihash, error) { - m := Multihash{} - err := error(nil) - if !ValidCode(code) { - return m, fmt.Errorf("invalid multihash code %d", code) - } - - var d []byte - switch code { - case SHA1: - d = sumSHA1(data) - case SHA2_256: - d = sumSHA256(data) - case SHA2_512: - d = sumSHA512(data) - case SHA3: - d, err = sumSHA3(data) - default: - return m, ErrSumNotSupported - } - - if err != nil { - return m, err - } - - if length < 0 { - var ok bool - length, ok = DefaultLengths[code] - if !ok { - return m, fmt.Errorf("no default length for code %d", code) - } - } - - return Encode(d[0:length], code) -} - -func sumSHA1(data []byte) []byte { - a := sha1.Sum(data) - return a[0:20] -} - -func sumSHA256(data []byte) []byte { - a := sha256.Sum256(data) - return a[0:32] -} - -func sumSHA512(data []byte) []byte { - a := sha512.Sum512(data) - return a[0:64] -} - -func sumSHA3(data []byte) ([]byte, error) { - h := sha3.New512() - if _, err := h.Write(data); err != nil { - return nil, err - } - return h.Sum(nil), nil -} diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/sum_test.go b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/sum_test.go deleted file mode 100644 index 1e5891bb..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/sum_test.go +++ /dev/null @@ -1,66 +0,0 @@ -package multihash - -import ( - "bytes" - "testing" -) - -type SumTestCase struct { - code int - length int - input string - hex string -} - -var sumTestCases = []SumTestCase{ - SumTestCase{SHA1, -1, "foo", "11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33"}, - SumTestCase{SHA1, 10, "foo", "110a0beec7b5ea3f0fdbc95d"}, - SumTestCase{SHA2_256, -1, "foo", "12202c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"}, - SumTestCase{SHA2_256, 16, "foo", "12102c26b46b68ffc68ff99b453c1d304134"}, - SumTestCase{SHA2_512, -1, "foo", "1340f7fbba6e0636f890e56fbbf3283e524c6fa3204ae298382d624741d0dc6638326e282c41be5e4254d8820772c5518a2c5a8c0c7f7eda19594a7eb539453e1ed7"}, - SumTestCase{SHA2_512, 32, "foo", "1320f7fbba6e0636f890e56fbbf3283e524c6fa3204ae298382d624741d0dc663832"}, -} - -func TestSum(t *testing.T) { - - for _, tc := range sumTestCases { - - m1, err := FromHexString(tc.hex) - if err != nil { - t.Error(err) - continue - } - - m2, err := Sum([]byte(tc.input), tc.code, tc.length) - if err != nil { - t.Error(tc.code, "sum failed.", err) - continue - } - - if !bytes.Equal(m1, m2) { - t.Error(tc.code, "sum failed.", m1, m2) - } - - s1 := m1.HexString() - if s1 != tc.hex { - t.Error("hex strings not the same") - } - - s2 := m1.B58String() - m3, err := FromB58String(s2) - if err != nil { - t.Error("failed to decode b58") - } else if !bytes.Equal(m3, m1) { - t.Error("b58 failing bytes") - } else if s2 != m3.B58String() { - t.Error("b58 failing string") - } - } -} - -func BenchmarkSum(b *testing.B) { - tc := sumTestCases[0] - for i := 0; i < b.N; i++ { - Sum([]byte(tc.input), tc.code, tc.length) - } -} diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/.gitignore b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/.gitignore deleted file mode 100644 index 27f75ed6..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bin/multihash diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/Makefile b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/Makefile deleted file mode 100644 index e9660d0c..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -BINS = bin/multihash -MULTIHASH_ROOT = ../ -MULTIHASH_CMD = ../multihash - -all: deps - -deps: bins - -clean: - rm $(BINS) - -bins: $(BINS) - -bin/multihash: $(MULTIHASH_ROOT)/**/*.go - go build -o bin/multihash $(MULTIHASH_CMD) - -test: test_expensive - -test_expensive: - cd sharness && make TEST_EXPENSIVE=1 - -test_cheap: - cd sharness && make - -.PHONY: all clean diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/.gitignore b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/.gitignore deleted file mode 100644 index 5e59048a..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib/sharness/ -test-results/ -trash directory.*.sh/ diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/Makefile b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/Makefile deleted file mode 100644 index ad806a07..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# Run tests -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -# NOTE: run with TEST_VERBOSE=1 for verbose sharness tests. - -T = $(sort $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)) -BINS = bin/multihash -SHARNESS = lib/sharness/sharness.sh - -all: clean deps $(T) aggregate - -clean: - @echo "*** $@ ***" - -rm -rf test-results - -$(T): - @echo "*** $@ ***" - ./$@ - -aggregate: - @echo "*** $@ ***" - lib/test-aggregate-results.sh - -deps: $(SHARNESS) $(BINS) - -$(SHARNESS): - @echo "*** installing $@ ***" - lib/install-sharness.sh - -bin/%: - @echo "*** installing $@ ***" - cd .. && make $@ - -.PHONY: all clean $(T) aggregate diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/bin b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/bin deleted file mode 100644 index e69de29b..00000000 diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/lib/install-sharness.sh b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/lib/install-sharness.sh deleted file mode 100644 index d573c406..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/lib/install-sharness.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -# install sharness.sh -# -# Copyright (c) 2014 Juan Batiz-Benet -# MIT Licensed; see the LICENSE file in this repository. -# - -# settings -version=50229a79ba22b2f13ccd82451d86570fecbd194c -urlprefix=https://github.com/mlafeldt/sharness.git -clonedir=lib -sharnessdir=sharness - -die() { - echo >&2 "$@" - exit 1 -} - -mkdir -p "$clonedir" || die "Could not create '$clonedir' directory" -cd "$clonedir" || die "Could not cd into '$clonedir' directory" - -git clone "$urlprefix" || die "Could not clone '$urlprefix'" -cd "$sharnessdir" || die "Could not cd into '$sharnessdir' directory" -git checkout "$version" || die "Could not checkout '$version'" - -exit 0 diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/lib/test-aggregate-results.sh b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/lib/test-aggregate-results.sh deleted file mode 100644 index c2ff76ca..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/lib/test-aggregate-results.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -# -# Script to aggregate results using Sharness -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -SHARNESS_AGGREGATE="lib/sharness/aggregate-results.sh" - -test -f "$SHARNESS_AGGREGATE" || { - echo >&2 "Cannot find: $SHARNESS_AGGREGATE" - echo >&2 "Please check Sharness installation." - exit 1 -} - -ls test-results/t*-*.sh.*.counts | "$SHARNESS_AGGREGATE" diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/lib/test-lib.sh b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/lib/test-lib.sh deleted file mode 100644 index 988164ab..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/lib/test-lib.sh +++ /dev/null @@ -1,43 +0,0 @@ -# Test framework for go-ipfs -# -# Copyright (c) 2014 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# -# We are using sharness (https://github.com/mlafeldt/sharness) -# which was extracted from the Git test framework. - -# Use the multihash tool to test against - -# Add current directory to path, for multihash tool. -PATH=$(pwd)/bin:${PATH} - -# Set sharness verbosity. we set the env var directly as -# it's too late to pass in --verbose, and --verbose is harder -# to pass through in some cases. -test "$TEST_VERBOSE" = 1 && verbose=t - -# assert the `multihash` we're using is the right one. -if test `which multihash` != $(pwd)/bin/multihash; then - echo >&2 "Cannot find the tests' local multihash tool." - echo >&2 "Please check test and multihash tool installation." - exit 1 -fi - -SHARNESS_LIB="lib/sharness/sharness.sh" - -. "$SHARNESS_LIB" || { - echo >&2 "Cannot source: $SHARNESS_LIB" - echo >&2 "Please check Sharness installation." - exit 1 -} - -# Please put go-multihash specific shell functions below - -for hashbin in sha1sum shasum; do - if type "$hashbin"; then - export SHASUMBIN="$hashbin" && - test_set_prereq SHASUM && - break - fi -done - diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/t0010-basics.sh b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/t0010-basics.sh deleted file mode 100644 index 1ff86ff5..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/t0010-basics.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2015 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="Basic tests" - -. lib/test-lib.sh - -test_expect_success "current dir is writable" ' - echo "It works!" >test.txt -' - -test_expect_success "multihash is available" ' - type multihash -' - -test_expect_success "multihash help output looks good" ' - test_must_fail multihash -h 2>help.txt && - cat help.txt | egrep -i "^usage:" >/dev/null && - cat help.txt | egrep -i "multihash .*options.*file" >/dev/null -' - -test_done diff --git a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/t0020-sha1.sh b/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/t0020-sha1.sh deleted file mode 100644 index a5be58ba..00000000 --- a/vendor/gx/Qma7dqy7ZVH4tkNJdC9TRrA82Uz5fQfbbwuvmNVVc17r7a/go-multihash/test/sharness/t0020-sha1.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2015 Christian Couder -# MIT Licensed; see the LICENSE file in this repository. -# - -test_description="sha1 tests" - -. lib/test-lib.sh - -test_expect_success "setup sha1 tests" ' - echo "Hash me!" >hash_me.txt && - SHA1=bc6f2c3cd945bc754789e50b2f68deee2f421810 && - echo "1114$SHA1" >actual -' - -test_expect_success "'multihash -a=sha1 -e=hex' works" ' - multihash -a=sha1 -e=hex hash_me.txt >expected -' - -test_expect_success "'multihash -a=sha1 -e=hex' output looks good" ' - test_cmp expected actual -' - -test_expect_success SHASUM "check hash using shasum" ' - echo "$SHA1 hash_me.txt" >actual && - $SHASUMBIN hash_me.txt >expected && - test_cmp expected actual -' - -test_done diff --git a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/context.go b/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/context.go deleted file mode 100644 index 11bd8d34..00000000 --- a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/context.go +++ /dev/null @@ -1,447 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package context defines the Context type, which carries deadlines, -// cancelation signals, and other request-scoped values across API boundaries -// and between processes. -// -// Incoming requests to a server should create a Context, and outgoing calls to -// servers should accept a Context. The chain of function calls between must -// propagate the Context, optionally replacing it with a modified copy created -// using WithDeadline, WithTimeout, WithCancel, or WithValue. -// -// Programs that use Contexts should follow these rules to keep interfaces -// consistent across packages and enable static analysis tools to check context -// propagation: -// -// Do not store Contexts inside a struct type; instead, pass a Context -// explicitly to each function that needs it. The Context should be the first -// parameter, typically named ctx: -// -// func DoSomething(ctx context.Context, arg Arg) error { -// // ... use ctx ... -// } -// -// Do not pass a nil Context, even if a function permits it. Pass context.TODO -// if you are unsure about which Context to use. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -// -// The same Context may be passed to functions running in different goroutines; -// Contexts are safe for simultaneous use by multiple goroutines. -// -// See http://blog.golang.org/context for example code for a server that uses -// Contexts. -package context - -import ( - "errors" - "fmt" - "sync" - "time" -) - -// A Context carries a deadline, a cancelation signal, and other values across -// API boundaries. -// -// Context's methods may be called by multiple goroutines simultaneously. -type Context interface { - // Deadline returns the time when work done on behalf of this context - // should be canceled. Deadline returns ok==false when no deadline is - // set. Successive calls to Deadline return the same results. - Deadline() (deadline time.Time, ok bool) - - // Done returns a channel that's closed when work done on behalf of this - // context should be canceled. Done may return nil if this context can - // never be canceled. Successive calls to Done return the same value. - // - // WithCancel arranges for Done to be closed when cancel is called; - // WithDeadline arranges for Done to be closed when the deadline - // expires; WithTimeout arranges for Done to be closed when the timeout - // elapses. - // - // Done is provided for use in select statements: - // - // // Stream generates values with DoSomething and sends them to out - // // until DoSomething returns an error or ctx.Done is closed. - // func Stream(ctx context.Context, out <-chan Value) error { - // for { - // v, err := DoSomething(ctx) - // if err != nil { - // return err - // } - // select { - // case <-ctx.Done(): - // return ctx.Err() - // case out <- v: - // } - // } - // } - // - // See http://blog.golang.org/pipelines for more examples of how to use - // a Done channel for cancelation. - Done() <-chan struct{} - - // Err returns a non-nil error value after Done is closed. Err returns - // Canceled if the context was canceled or DeadlineExceeded if the - // context's deadline passed. No other values for Err are defined. - // After Done is closed, successive calls to Err return the same value. - Err() error - - // Value returns the value associated with this context for key, or nil - // if no value is associated with key. Successive calls to Value with - // the same key returns the same result. - // - // Use context values only for request-scoped data that transits - // processes and API boundaries, not for passing optional parameters to - // functions. - // - // A key identifies a specific value in a Context. Functions that wish - // to store values in Context typically allocate a key in a global - // variable then use that key as the argument to context.WithValue and - // Context.Value. A key can be any type that supports equality; - // packages should define keys as an unexported type to avoid - // collisions. - // - // Packages that define a Context key should provide type-safe accessors - // for the values stores using that key: - // - // // Package user defines a User type that's stored in Contexts. - // package user - // - // import "golang.org/x/net/context" - // - // // User is the type of value stored in the Contexts. - // type User struct {...} - // - // // key is an unexported type for keys defined in this package. - // // This prevents collisions with keys defined in other packages. - // type key int - // - // // userKey is the key for user.User values in Contexts. It is - // // unexported; clients use user.NewContext and user.FromContext - // // instead of using this key directly. - // var userKey key = 0 - // - // // NewContext returns a new Context that carries value u. - // func NewContext(ctx context.Context, u *User) context.Context { - // return context.WithValue(ctx, userKey, u) - // } - // - // // FromContext returns the User value stored in ctx, if any. - // func FromContext(ctx context.Context) (*User, bool) { - // u, ok := ctx.Value(userKey).(*User) - // return u, ok - // } - Value(key interface{}) interface{} -} - -// Canceled is the error returned by Context.Err when the context is canceled. -var Canceled = errors.New("context canceled") - -// DeadlineExceeded is the error returned by Context.Err when the context's -// deadline passes. -var DeadlineExceeded = errors.New("context deadline exceeded") - -// An emptyCtx is never canceled, has no values, and has no deadline. It is not -// struct{}, since vars of this type must have distinct addresses. -type emptyCtx int - -func (*emptyCtx) Deadline() (deadline time.Time, ok bool) { - return -} - -func (*emptyCtx) Done() <-chan struct{} { - return nil -} - -func (*emptyCtx) Err() error { - return nil -} - -func (*emptyCtx) Value(key interface{}) interface{} { - return nil -} - -func (e *emptyCtx) String() string { - switch e { - case background: - return "context.Background" - case todo: - return "context.TODO" - } - return "unknown empty Context" -} - -var ( - background = new(emptyCtx) - todo = new(emptyCtx) -) - -// Background returns a non-nil, empty Context. It is never canceled, has no -// values, and has no deadline. It is typically used by the main function, -// initialization, and tests, and as the top-level Context for incoming -// requests. -func Background() Context { - return background -} - -// TODO returns a non-nil, empty Context. Code should use context.TODO when -// it's unclear which Context to use or it is not yet available (because the -// surrounding function has not yet been extended to accept a Context -// parameter). TODO is recognized by static analysis tools that determine -// whether Contexts are propagated correctly in a program. -func TODO() Context { - return todo -} - -// A CancelFunc tells an operation to abandon its work. -// A CancelFunc does not wait for the work to stop. -// After the first call, subsequent calls to a CancelFunc do nothing. -type CancelFunc func() - -// WithCancel returns a copy of parent with a new Done channel. The returned -// context's Done channel is closed when the returned cancel function is called -// or when the parent context's Done channel is closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { - c := newCancelCtx(parent) - propagateCancel(parent, &c) - return &c, func() { c.cancel(true, Canceled) } -} - -// newCancelCtx returns an initialized cancelCtx. -func newCancelCtx(parent Context) cancelCtx { - return cancelCtx{ - Context: parent, - done: make(chan struct{}), - } -} - -// propagateCancel arranges for child to be canceled when parent is. -func propagateCancel(parent Context, child canceler) { - if parent.Done() == nil { - return // parent is never canceled - } - if p, ok := parentCancelCtx(parent); ok { - p.mu.Lock() - if p.err != nil { - // parent has already been canceled - child.cancel(false, p.err) - } else { - if p.children == nil { - p.children = make(map[canceler]bool) - } - p.children[child] = true - } - p.mu.Unlock() - } else { - go func() { - select { - case <-parent.Done(): - child.cancel(false, parent.Err()) - case <-child.Done(): - } - }() - } -} - -// parentCancelCtx follows a chain of parent references until it finds a -// *cancelCtx. This function understands how each of the concrete types in this -// package represents its parent. -func parentCancelCtx(parent Context) (*cancelCtx, bool) { - for { - switch c := parent.(type) { - case *cancelCtx: - return c, true - case *timerCtx: - return &c.cancelCtx, true - case *valueCtx: - parent = c.Context - default: - return nil, false - } - } -} - -// removeChild removes a context from its parent. -func removeChild(parent Context, child canceler) { - p, ok := parentCancelCtx(parent) - if !ok { - return - } - p.mu.Lock() - if p.children != nil { - delete(p.children, child) - } - p.mu.Unlock() -} - -// A canceler is a context type that can be canceled directly. The -// implementations are *cancelCtx and *timerCtx. -type canceler interface { - cancel(removeFromParent bool, err error) - Done() <-chan struct{} -} - -// A cancelCtx can be canceled. When canceled, it also cancels any children -// that implement canceler. -type cancelCtx struct { - Context - - done chan struct{} // closed by the first cancel call. - - mu sync.Mutex - children map[canceler]bool // set to nil by the first cancel call - err error // set to non-nil by the first cancel call -} - -func (c *cancelCtx) Done() <-chan struct{} { - return c.done -} - -func (c *cancelCtx) Err() error { - c.mu.Lock() - defer c.mu.Unlock() - return c.err -} - -func (c *cancelCtx) String() string { - return fmt.Sprintf("%v.WithCancel", c.Context) -} - -// cancel closes c.done, cancels each of c's children, and, if -// removeFromParent is true, removes c from its parent's children. -func (c *cancelCtx) cancel(removeFromParent bool, err error) { - if err == nil { - panic("context: internal error: missing cancel error") - } - c.mu.Lock() - if c.err != nil { - c.mu.Unlock() - return // already canceled - } - c.err = err - close(c.done) - for child := range c.children { - // NOTE: acquiring the child's lock while holding parent's lock. - child.cancel(false, err) - } - c.children = nil - c.mu.Unlock() - - if removeFromParent { - removeChild(c.Context, c) - } -} - -// WithDeadline returns a copy of the parent context with the deadline adjusted -// to be no later than d. If the parent's deadline is already earlier than d, -// WithDeadline(parent, d) is semantically equivalent to parent. The returned -// context's Done channel is closed when the deadline expires, when the returned -// cancel function is called, or when the parent context's Done channel is -// closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { - if cur, ok := parent.Deadline(); ok && cur.Before(deadline) { - // The current deadline is already sooner than the new one. - return WithCancel(parent) - } - c := &timerCtx{ - cancelCtx: newCancelCtx(parent), - deadline: deadline, - } - propagateCancel(parent, c) - d := deadline.Sub(time.Now()) - if d <= 0 { - c.cancel(true, DeadlineExceeded) // deadline has already passed - return c, func() { c.cancel(true, Canceled) } - } - c.mu.Lock() - defer c.mu.Unlock() - if c.err == nil { - c.timer = time.AfterFunc(d, func() { - c.cancel(true, DeadlineExceeded) - }) - } - return c, func() { c.cancel(true, Canceled) } -} - -// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to -// implement Done and Err. It implements cancel by stopping its timer then -// delegating to cancelCtx.cancel. -type timerCtx struct { - cancelCtx - timer *time.Timer // Under cancelCtx.mu. - - deadline time.Time -} - -func (c *timerCtx) Deadline() (deadline time.Time, ok bool) { - return c.deadline, true -} - -func (c *timerCtx) String() string { - return fmt.Sprintf("%v.WithDeadline(%s [%s])", c.cancelCtx.Context, c.deadline, c.deadline.Sub(time.Now())) -} - -func (c *timerCtx) cancel(removeFromParent bool, err error) { - c.cancelCtx.cancel(false, err) - if removeFromParent { - // Remove this timerCtx from its parent cancelCtx's children. - removeChild(c.cancelCtx.Context, c) - } - c.mu.Lock() - if c.timer != nil { - c.timer.Stop() - c.timer = nil - } - c.mu.Unlock() -} - -// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete: -// -// func slowOperationWithTimeout(ctx context.Context) (Result, error) { -// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) -// defer cancel() // releases resources if slowOperation completes before timeout elapses -// return slowOperation(ctx) -// } -func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { - return WithDeadline(parent, time.Now().Add(timeout)) -} - -// WithValue returns a copy of parent in which the value associated with key is -// val. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -func WithValue(parent Context, key interface{}, val interface{}) Context { - return &valueCtx{parent, key, val} -} - -// A valueCtx carries a key-value pair. It implements Value for that key and -// delegates all other calls to the embedded Context. -type valueCtx struct { - Context - key, val interface{} -} - -func (c *valueCtx) String() string { - return fmt.Sprintf("%v.WithValue(%#v, %#v)", c.Context, c.key, c.val) -} - -func (c *valueCtx) Value(key interface{}) interface{} { - if c.key == key { - return c.val - } - return c.Context.Value(key) -} diff --git a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/context_test.go b/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/context_test.go deleted file mode 100644 index 05345fc5..00000000 --- a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/context_test.go +++ /dev/null @@ -1,575 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package context - -import ( - "fmt" - "math/rand" - "runtime" - "strings" - "sync" - "testing" - "time" -) - -// otherContext is a Context that's not one of the types defined in context.go. -// This lets us test code paths that differ based on the underlying type of the -// Context. -type otherContext struct { - Context -} - -func TestBackground(t *testing.T) { - c := Background() - if c == nil { - t.Fatalf("Background returned nil") - } - select { - case x := <-c.Done(): - t.Errorf("<-c.Done() == %v want nothing (it should block)", x) - default: - } - if got, want := fmt.Sprint(c), "context.Background"; got != want { - t.Errorf("Background().String() = %q want %q", got, want) - } -} - -func TestTODO(t *testing.T) { - c := TODO() - if c == nil { - t.Fatalf("TODO returned nil") - } - select { - case x := <-c.Done(): - t.Errorf("<-c.Done() == %v want nothing (it should block)", x) - default: - } - if got, want := fmt.Sprint(c), "context.TODO"; got != want { - t.Errorf("TODO().String() = %q want %q", got, want) - } -} - -func TestWithCancel(t *testing.T) { - c1, cancel := WithCancel(Background()) - - if got, want := fmt.Sprint(c1), "context.Background.WithCancel"; got != want { - t.Errorf("c1.String() = %q want %q", got, want) - } - - o := otherContext{c1} - c2, _ := WithCancel(o) - contexts := []Context{c1, o, c2} - - for i, c := range contexts { - if d := c.Done(); d == nil { - t.Errorf("c[%d].Done() == %v want non-nil", i, d) - } - if e := c.Err(); e != nil { - t.Errorf("c[%d].Err() == %v want nil", i, e) - } - - select { - case x := <-c.Done(): - t.Errorf("<-c.Done() == %v want nothing (it should block)", x) - default: - } - } - - cancel() - time.Sleep(100 * time.Millisecond) // let cancelation propagate - - for i, c := range contexts { - select { - case <-c.Done(): - default: - t.Errorf("<-c[%d].Done() blocked, but shouldn't have", i) - } - if e := c.Err(); e != Canceled { - t.Errorf("c[%d].Err() == %v want %v", i, e, Canceled) - } - } -} - -func TestParentFinishesChild(t *testing.T) { - // Context tree: - // parent -> cancelChild - // parent -> valueChild -> timerChild - parent, cancel := WithCancel(Background()) - cancelChild, stop := WithCancel(parent) - defer stop() - valueChild := WithValue(parent, "key", "value") - timerChild, stop := WithTimeout(valueChild, 10000*time.Hour) - defer stop() - - select { - case x := <-parent.Done(): - t.Errorf("<-parent.Done() == %v want nothing (it should block)", x) - case x := <-cancelChild.Done(): - t.Errorf("<-cancelChild.Done() == %v want nothing (it should block)", x) - case x := <-timerChild.Done(): - t.Errorf("<-timerChild.Done() == %v want nothing (it should block)", x) - case x := <-valueChild.Done(): - t.Errorf("<-valueChild.Done() == %v want nothing (it should block)", x) - default: - } - - // The parent's children should contain the two cancelable children. - pc := parent.(*cancelCtx) - cc := cancelChild.(*cancelCtx) - tc := timerChild.(*timerCtx) - pc.mu.Lock() - if len(pc.children) != 2 || !pc.children[cc] || !pc.children[tc] { - t.Errorf("bad linkage: pc.children = %v, want %v and %v", - pc.children, cc, tc) - } - pc.mu.Unlock() - - if p, ok := parentCancelCtx(cc.Context); !ok || p != pc { - t.Errorf("bad linkage: parentCancelCtx(cancelChild.Context) = %v, %v want %v, true", p, ok, pc) - } - if p, ok := parentCancelCtx(tc.Context); !ok || p != pc { - t.Errorf("bad linkage: parentCancelCtx(timerChild.Context) = %v, %v want %v, true", p, ok, pc) - } - - cancel() - - pc.mu.Lock() - if len(pc.children) != 0 { - t.Errorf("pc.cancel didn't clear pc.children = %v", pc.children) - } - pc.mu.Unlock() - - // parent and children should all be finished. - check := func(ctx Context, name string) { - select { - case <-ctx.Done(): - default: - t.Errorf("<-%s.Done() blocked, but shouldn't have", name) - } - if e := ctx.Err(); e != Canceled { - t.Errorf("%s.Err() == %v want %v", name, e, Canceled) - } - } - check(parent, "parent") - check(cancelChild, "cancelChild") - check(valueChild, "valueChild") - check(timerChild, "timerChild") - - // WithCancel should return a canceled context on a canceled parent. - precanceledChild := WithValue(parent, "key", "value") - select { - case <-precanceledChild.Done(): - default: - t.Errorf("<-precanceledChild.Done() blocked, but shouldn't have") - } - if e := precanceledChild.Err(); e != Canceled { - t.Errorf("precanceledChild.Err() == %v want %v", e, Canceled) - } -} - -func TestChildFinishesFirst(t *testing.T) { - cancelable, stop := WithCancel(Background()) - defer stop() - for _, parent := range []Context{Background(), cancelable} { - child, cancel := WithCancel(parent) - - select { - case x := <-parent.Done(): - t.Errorf("<-parent.Done() == %v want nothing (it should block)", x) - case x := <-child.Done(): - t.Errorf("<-child.Done() == %v want nothing (it should block)", x) - default: - } - - cc := child.(*cancelCtx) - pc, pcok := parent.(*cancelCtx) // pcok == false when parent == Background() - if p, ok := parentCancelCtx(cc.Context); ok != pcok || (ok && pc != p) { - t.Errorf("bad linkage: parentCancelCtx(cc.Context) = %v, %v want %v, %v", p, ok, pc, pcok) - } - - if pcok { - pc.mu.Lock() - if len(pc.children) != 1 || !pc.children[cc] { - t.Errorf("bad linkage: pc.children = %v, cc = %v", pc.children, cc) - } - pc.mu.Unlock() - } - - cancel() - - if pcok { - pc.mu.Lock() - if len(pc.children) != 0 { - t.Errorf("child's cancel didn't remove self from pc.children = %v", pc.children) - } - pc.mu.Unlock() - } - - // child should be finished. - select { - case <-child.Done(): - default: - t.Errorf("<-child.Done() blocked, but shouldn't have") - } - if e := child.Err(); e != Canceled { - t.Errorf("child.Err() == %v want %v", e, Canceled) - } - - // parent should not be finished. - select { - case x := <-parent.Done(): - t.Errorf("<-parent.Done() == %v want nothing (it should block)", x) - default: - } - if e := parent.Err(); e != nil { - t.Errorf("parent.Err() == %v want nil", e) - } - } -} - -func testDeadline(c Context, wait time.Duration, t *testing.T) { - select { - case <-time.After(wait): - t.Fatalf("context should have timed out") - case <-c.Done(): - } - if e := c.Err(); e != DeadlineExceeded { - t.Errorf("c.Err() == %v want %v", e, DeadlineExceeded) - } -} - -func TestDeadline(t *testing.T) { - c, _ := WithDeadline(Background(), time.Now().Add(100*time.Millisecond)) - if got, prefix := fmt.Sprint(c), "context.Background.WithDeadline("; !strings.HasPrefix(got, prefix) { - t.Errorf("c.String() = %q want prefix %q", got, prefix) - } - testDeadline(c, 200*time.Millisecond, t) - - c, _ = WithDeadline(Background(), time.Now().Add(100*time.Millisecond)) - o := otherContext{c} - testDeadline(o, 200*time.Millisecond, t) - - c, _ = WithDeadline(Background(), time.Now().Add(100*time.Millisecond)) - o = otherContext{c} - c, _ = WithDeadline(o, time.Now().Add(300*time.Millisecond)) - testDeadline(c, 200*time.Millisecond, t) -} - -func TestTimeout(t *testing.T) { - c, _ := WithTimeout(Background(), 100*time.Millisecond) - if got, prefix := fmt.Sprint(c), "context.Background.WithDeadline("; !strings.HasPrefix(got, prefix) { - t.Errorf("c.String() = %q want prefix %q", got, prefix) - } - testDeadline(c, 200*time.Millisecond, t) - - c, _ = WithTimeout(Background(), 100*time.Millisecond) - o := otherContext{c} - testDeadline(o, 200*time.Millisecond, t) - - c, _ = WithTimeout(Background(), 100*time.Millisecond) - o = otherContext{c} - c, _ = WithTimeout(o, 300*time.Millisecond) - testDeadline(c, 200*time.Millisecond, t) -} - -func TestCanceledTimeout(t *testing.T) { - c, _ := WithTimeout(Background(), 200*time.Millisecond) - o := otherContext{c} - c, cancel := WithTimeout(o, 400*time.Millisecond) - cancel() - time.Sleep(100 * time.Millisecond) // let cancelation propagate - select { - case <-c.Done(): - default: - t.Errorf("<-c.Done() blocked, but shouldn't have") - } - if e := c.Err(); e != Canceled { - t.Errorf("c.Err() == %v want %v", e, Canceled) - } -} - -type key1 int -type key2 int - -var k1 = key1(1) -var k2 = key2(1) // same int as k1, different type -var k3 = key2(3) // same type as k2, different int - -func TestValues(t *testing.T) { - check := func(c Context, nm, v1, v2, v3 string) { - if v, ok := c.Value(k1).(string); ok == (len(v1) == 0) || v != v1 { - t.Errorf(`%s.Value(k1).(string) = %q, %t want %q, %t`, nm, v, ok, v1, len(v1) != 0) - } - if v, ok := c.Value(k2).(string); ok == (len(v2) == 0) || v != v2 { - t.Errorf(`%s.Value(k2).(string) = %q, %t want %q, %t`, nm, v, ok, v2, len(v2) != 0) - } - if v, ok := c.Value(k3).(string); ok == (len(v3) == 0) || v != v3 { - t.Errorf(`%s.Value(k3).(string) = %q, %t want %q, %t`, nm, v, ok, v3, len(v3) != 0) - } - } - - c0 := Background() - check(c0, "c0", "", "", "") - - c1 := WithValue(Background(), k1, "c1k1") - check(c1, "c1", "c1k1", "", "") - - if got, want := fmt.Sprint(c1), `context.Background.WithValue(1, "c1k1")`; got != want { - t.Errorf("c.String() = %q want %q", got, want) - } - - c2 := WithValue(c1, k2, "c2k2") - check(c2, "c2", "c1k1", "c2k2", "") - - c3 := WithValue(c2, k3, "c3k3") - check(c3, "c2", "c1k1", "c2k2", "c3k3") - - c4 := WithValue(c3, k1, nil) - check(c4, "c4", "", "c2k2", "c3k3") - - o0 := otherContext{Background()} - check(o0, "o0", "", "", "") - - o1 := otherContext{WithValue(Background(), k1, "c1k1")} - check(o1, "o1", "c1k1", "", "") - - o2 := WithValue(o1, k2, "o2k2") - check(o2, "o2", "c1k1", "o2k2", "") - - o3 := otherContext{c4} - check(o3, "o3", "", "c2k2", "c3k3") - - o4 := WithValue(o3, k3, nil) - check(o4, "o4", "", "c2k2", "") -} - -func TestAllocs(t *testing.T) { - bg := Background() - for _, test := range []struct { - desc string - f func() - limit float64 - gccgoLimit float64 - }{ - { - desc: "Background()", - f: func() { Background() }, - limit: 0, - gccgoLimit: 0, - }, - { - desc: fmt.Sprintf("WithValue(bg, %v, nil)", k1), - f: func() { - c := WithValue(bg, k1, nil) - c.Value(k1) - }, - limit: 3, - gccgoLimit: 3, - }, - { - desc: "WithTimeout(bg, 15*time.Millisecond)", - f: func() { - c, _ := WithTimeout(bg, 15*time.Millisecond) - <-c.Done() - }, - limit: 8, - gccgoLimit: 15, - }, - { - desc: "WithCancel(bg)", - f: func() { - c, cancel := WithCancel(bg) - cancel() - <-c.Done() - }, - limit: 5, - gccgoLimit: 8, - }, - { - desc: "WithTimeout(bg, 100*time.Millisecond)", - f: func() { - c, cancel := WithTimeout(bg, 100*time.Millisecond) - cancel() - <-c.Done() - }, - limit: 8, - gccgoLimit: 25, - }, - } { - limit := test.limit - if runtime.Compiler == "gccgo" { - // gccgo does not yet do escape analysis. - // TOOD(iant): Remove this when gccgo does do escape analysis. - limit = test.gccgoLimit - } - if n := testing.AllocsPerRun(100, test.f); n > limit { - t.Errorf("%s allocs = %f want %d", test.desc, n, int(limit)) - } - } -} - -func TestSimultaneousCancels(t *testing.T) { - root, cancel := WithCancel(Background()) - m := map[Context]CancelFunc{root: cancel} - q := []Context{root} - // Create a tree of contexts. - for len(q) != 0 && len(m) < 100 { - parent := q[0] - q = q[1:] - for i := 0; i < 4; i++ { - ctx, cancel := WithCancel(parent) - m[ctx] = cancel - q = append(q, ctx) - } - } - // Start all the cancels in a random order. - var wg sync.WaitGroup - wg.Add(len(m)) - for _, cancel := range m { - go func(cancel CancelFunc) { - cancel() - wg.Done() - }(cancel) - } - // Wait on all the contexts in a random order. - for ctx := range m { - select { - case <-ctx.Done(): - case <-time.After(1 * time.Second): - buf := make([]byte, 10<<10) - n := runtime.Stack(buf, true) - t.Fatalf("timed out waiting for <-ctx.Done(); stacks:\n%s", buf[:n]) - } - } - // Wait for all the cancel functions to return. - done := make(chan struct{}) - go func() { - wg.Wait() - close(done) - }() - select { - case <-done: - case <-time.After(1 * time.Second): - buf := make([]byte, 10<<10) - n := runtime.Stack(buf, true) - t.Fatalf("timed out waiting for cancel functions; stacks:\n%s", buf[:n]) - } -} - -func TestInterlockedCancels(t *testing.T) { - parent, cancelParent := WithCancel(Background()) - child, cancelChild := WithCancel(parent) - go func() { - parent.Done() - cancelChild() - }() - cancelParent() - select { - case <-child.Done(): - case <-time.After(1 * time.Second): - buf := make([]byte, 10<<10) - n := runtime.Stack(buf, true) - t.Fatalf("timed out waiting for child.Done(); stacks:\n%s", buf[:n]) - } -} - -func TestLayersCancel(t *testing.T) { - testLayers(t, time.Now().UnixNano(), false) -} - -func TestLayersTimeout(t *testing.T) { - testLayers(t, time.Now().UnixNano(), true) -} - -func testLayers(t *testing.T, seed int64, testTimeout bool) { - rand.Seed(seed) - errorf := func(format string, a ...interface{}) { - t.Errorf(fmt.Sprintf("seed=%d: %s", seed, format), a...) - } - const ( - timeout = 200 * time.Millisecond - minLayers = 30 - ) - type value int - var ( - vals []*value - cancels []CancelFunc - numTimers int - ctx = Background() - ) - for i := 0; i < minLayers || numTimers == 0 || len(cancels) == 0 || len(vals) == 0; i++ { - switch rand.Intn(3) { - case 0: - v := new(value) - ctx = WithValue(ctx, v, v) - vals = append(vals, v) - case 1: - var cancel CancelFunc - ctx, cancel = WithCancel(ctx) - cancels = append(cancels, cancel) - case 2: - var cancel CancelFunc - ctx, cancel = WithTimeout(ctx, timeout) - cancels = append(cancels, cancel) - numTimers++ - } - } - checkValues := func(when string) { - for _, key := range vals { - if val := ctx.Value(key).(*value); key != val { - errorf("%s: ctx.Value(%p) = %p want %p", when, key, val, key) - } - } - } - select { - case <-ctx.Done(): - errorf("ctx should not be canceled yet") - default: - } - if s, prefix := fmt.Sprint(ctx), "context.Background."; !strings.HasPrefix(s, prefix) { - t.Errorf("ctx.String() = %q want prefix %q", s, prefix) - } - t.Log(ctx) - checkValues("before cancel") - if testTimeout { - select { - case <-ctx.Done(): - case <-time.After(timeout + 100*time.Millisecond): - errorf("ctx should have timed out") - } - checkValues("after timeout") - } else { - cancel := cancels[rand.Intn(len(cancels))] - cancel() - select { - case <-ctx.Done(): - default: - errorf("ctx should be canceled") - } - checkValues("after cancel") - } -} - -func TestCancelRemoves(t *testing.T) { - checkChildren := func(when string, ctx Context, want int) { - if got := len(ctx.(*cancelCtx).children); got != want { - t.Errorf("%s: context has %d children, want %d", when, got, want) - } - } - - ctx, _ := WithCancel(Background()) - checkChildren("after creation", ctx, 0) - _, cancel := WithCancel(ctx) - checkChildren("with WithCancel child ", ctx, 1) - cancel() - checkChildren("after cancelling WithCancel child", ctx, 0) - - ctx, _ = WithCancel(Background()) - checkChildren("after creation", ctx, 0) - _, cancel = WithTimeout(ctx, 60*time.Minute) - checkChildren("with WithTimeout child ", ctx, 1) - cancel() - checkChildren("after cancelling WithTimeout child", ctx, 0) -} diff --git a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/cancelreq.go b/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/cancelreq.go deleted file mode 100644 index 48610e36..00000000 --- a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/cancelreq.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.5 - -package ctxhttp - -import "net/http" - -func canceler(client *http.Client, req *http.Request) func() { - ch := make(chan struct{}) - req.Cancel = ch - - return func() { - close(ch) - } -} diff --git a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/cancelreq_go14.go b/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/cancelreq_go14.go deleted file mode 100644 index 56bcbadb..00000000 --- a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/cancelreq_go14.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !go1.5 - -package ctxhttp - -import "net/http" - -type requestCanceler interface { - CancelRequest(*http.Request) -} - -func canceler(client *http.Client, req *http.Request) func() { - rc, ok := client.Transport.(requestCanceler) - if !ok { - return func() {} - } - return func() { - rc.CancelRequest(req) - } -} diff --git a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/ctxhttp.go b/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/ctxhttp.go deleted file mode 100644 index 97e39b5c..00000000 --- a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/ctxhttp.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package ctxhttp provides helper functions for performing context-aware HTTP requests. -package ctxhttp - -import ( - "io" - "net/http" - "net/url" - "strings" - - "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" -) - -// Do sends an HTTP request with the provided http.Client and returns an HTTP response. -// If the client is nil, http.DefaultClient is used. -// If the context is canceled or times out, ctx.Err() will be returned. -func Do(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) { - if client == nil { - client = http.DefaultClient - } - - // Request cancelation changed in Go 1.5, see cancelreq.go and cancelreq_go14.go. - cancel := canceler(client, req) - - type responseAndError struct { - resp *http.Response - err error - } - result := make(chan responseAndError, 1) - - go func() { - resp, err := client.Do(req) - result <- responseAndError{resp, err} - }() - - select { - case <-ctx.Done(): - cancel() - return nil, ctx.Err() - case r := <-result: - return r.resp, r.err - } -} - -// Get issues a GET request via the Do function. -func Get(ctx context.Context, client *http.Client, url string) (*http.Response, error) { - req, err := http.NewRequest("GET", url, nil) - if err != nil { - return nil, err - } - return Do(ctx, client, req) -} - -// Head issues a HEAD request via the Do function. -func Head(ctx context.Context, client *http.Client, url string) (*http.Response, error) { - req, err := http.NewRequest("HEAD", url, nil) - if err != nil { - return nil, err - } - return Do(ctx, client, req) -} - -// Post issues a POST request via the Do function. -func Post(ctx context.Context, client *http.Client, url string, bodyType string, body io.Reader) (*http.Response, error) { - req, err := http.NewRequest("POST", url, body) - if err != nil { - return nil, err - } - req.Header.Set("Content-Type", bodyType) - return Do(ctx, client, req) -} - -// PostForm issues a POST request via the Do function. -func PostForm(ctx context.Context, client *http.Client, url string, data url.Values) (*http.Response, error) { - return Post(ctx, client, url, "application/x-www-form-urlencoded", strings.NewReader(data.Encode())) -} diff --git a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/ctxhttp_test.go b/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/ctxhttp_test.go deleted file mode 100644 index 4e68a9d0..00000000 --- a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/ctxhttp/ctxhttp_test.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ctxhttp - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "testing" - "time" - - "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" -) - -const ( - requestDuration = 100 * time.Millisecond - requestBody = "ok" -) - -func TestNoTimeout(t *testing.T) { - ctx := context.Background() - resp, err := doRequest(ctx) - - if resp == nil || err != nil { - t.Fatalf("error received from client: %v %v", err, resp) - } -} -func TestCancel(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - go func() { - time.Sleep(requestDuration / 2) - cancel() - }() - - resp, err := doRequest(ctx) - - if resp != nil || err == nil { - t.Fatalf("expected error, didn't get one. resp: %v", resp) - } - if err != ctx.Err() { - t.Fatalf("expected error from context but got: %v", err) - } -} - -func TestCancelAfterRequest(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - - resp, err := doRequest(ctx) - - // Cancel before reading the body. - // Request.Body should still be readable after the context is canceled. - cancel() - - b, err := ioutil.ReadAll(resp.Body) - if err != nil || string(b) != requestBody { - t.Fatalf("could not read body: %q %v", b, err) - } -} - -func doRequest(ctx context.Context) (*http.Response, error) { - var okHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - time.Sleep(requestDuration) - w.Write([]byte(requestBody)) - }) - - serv := httptest.NewServer(okHandler) - defer serv.Close() - - return Get(ctx, nil, serv.URL) -} diff --git a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/package.json b/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/package.json deleted file mode 100644 index 5c2a19ad..00000000 --- a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "context", - "author": "whyrusleeping", - "version": "1.0.0", - "language": "go", - "gx": { - "dvcsimport": "golang.org/x/net/context" - } -} \ No newline at end of file diff --git a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/withtimeout_test.go b/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/withtimeout_test.go deleted file mode 100644 index 62c7f70b..00000000 --- a/vendor/gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context/withtimeout_test.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package context_test - -import ( - "fmt" - "time" - - "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" -) - -func ExampleWithTimeout() { - // Pass a context with a timeout to tell a blocking function that it - // should abandon its work after the timeout elapses. - ctx, _ := context.WithTimeout(context.Background(), 100*time.Millisecond) - select { - case <-time.After(200 * time.Millisecond): - fmt.Println("overslept") - case <-ctx.Done(): - fmt.Println(ctx.Err()) // prints "context deadline exceeded" - } - // Output: - // context deadline exceeded -} diff --git a/vendor/gx/QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS/jitter/jitter.go b/vendor/gx/QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS/jitter/jitter.go deleted file mode 100644 index 7f0f39b8..00000000 --- a/vendor/gx/QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS/jitter/jitter.go +++ /dev/null @@ -1,12 +0,0 @@ -package jitter - -import ( - "math/rand" - "time" -) - -func Duration(average, plusMinus time.Duration) (ret time.Duration) { - ret = average - plusMinus - ret += time.Duration(rand.Int63n(2*int64(plusMinus) + 1)) - return -} diff --git a/vendor/gx/QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS/jitter/jitter_test.go b/vendor/gx/QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS/jitter/jitter_test.go deleted file mode 100644 index e59a50fe..00000000 --- a/vendor/gx/QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS/jitter/jitter_test.go +++ /dev/null @@ -1,9 +0,0 @@ -package jitter - -import "testing" - -func TestZeroDuration(t *testing.T) { - if Duration(0, 0) != 0 { - t.FailNow() - } -} diff --git a/vendor/gx/QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS/jitter/package.json b/vendor/gx/QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS/jitter/package.json deleted file mode 100644 index 1f88cf71..00000000 --- a/vendor/gx/QmbDXAJ4Fzpmqw9kTVPtPGZEsgyn33ipbUQEe8vMUZLnTS/jitter/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "jitter", - "author": "whyrusleeping", - "version": "1.0.0", - "language": "go", - "gx": { - "dvcsimport": "github.com/anacrolix/jitter" - } -} \ No newline at end of file diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/.gxignore b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/AUTHORS b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/AUTHORS deleted file mode 100644 index 15167cd7..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# 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/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/CONTRIBUTING.md b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/CONTRIBUTING.md deleted file mode 100644 index 88dff59b..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/CONTRIBUTING.md +++ /dev/null @@ -1,31 +0,0 @@ -# Contributing to Go - -Go is an open source project. - -It is the work of hundreds of contributors. We appreciate your help! - - -## Filing issues - -When [filing an issue](https://golang.org/issue/new), make sure to answer these five questions: - -1. What version of Go are you using (`go version`)? -2. What operating system and processor architecture are you using? -3. What did you do? -4. What did you expect to see? -5. What did you see instead? - -General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker. -The gophers there will answer or ask you to file an issue if you've tripped over a bug. - -## Contributing code - -Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) -before sending patches. - -**We do not accept GitHub pull requests** -(we use [Gerrit](https://code.google.com/p/gerrit/) instead for code review). - -Unless otherwise noted, the Go source files are distributed under -the BSD-style license found in the LICENSE file. - diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/CONTRIBUTORS b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/CONTRIBUTORS deleted file mode 100644 index 1c4577e9..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# 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/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/LICENSE b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/LICENSE deleted file mode 100644 index 6a66aea5..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -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/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/PATENTS b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -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/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/README b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/README deleted file mode 100644 index 6b13d8e5..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/README +++ /dev/null @@ -1,3 +0,0 @@ -This repository holds supplementary Go networking libraries. - -To submit changes to this repository, see http://golang.org/doc/contribute.html. diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/codereview.cfg b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/codereview.cfg deleted file mode 100644 index 3f8b14b6..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/codereview.cfg +++ /dev/null @@ -1 +0,0 @@ -issuerepo: golang/go diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/context.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/context.go deleted file mode 100644 index 11bd8d34..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/context.go +++ /dev/null @@ -1,447 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package context defines the Context type, which carries deadlines, -// cancelation signals, and other request-scoped values across API boundaries -// and between processes. -// -// Incoming requests to a server should create a Context, and outgoing calls to -// servers should accept a Context. The chain of function calls between must -// propagate the Context, optionally replacing it with a modified copy created -// using WithDeadline, WithTimeout, WithCancel, or WithValue. -// -// Programs that use Contexts should follow these rules to keep interfaces -// consistent across packages and enable static analysis tools to check context -// propagation: -// -// Do not store Contexts inside a struct type; instead, pass a Context -// explicitly to each function that needs it. The Context should be the first -// parameter, typically named ctx: -// -// func DoSomething(ctx context.Context, arg Arg) error { -// // ... use ctx ... -// } -// -// Do not pass a nil Context, even if a function permits it. Pass context.TODO -// if you are unsure about which Context to use. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -// -// The same Context may be passed to functions running in different goroutines; -// Contexts are safe for simultaneous use by multiple goroutines. -// -// See http://blog.golang.org/context for example code for a server that uses -// Contexts. -package context - -import ( - "errors" - "fmt" - "sync" - "time" -) - -// A Context carries a deadline, a cancelation signal, and other values across -// API boundaries. -// -// Context's methods may be called by multiple goroutines simultaneously. -type Context interface { - // Deadline returns the time when work done on behalf of this context - // should be canceled. Deadline returns ok==false when no deadline is - // set. Successive calls to Deadline return the same results. - Deadline() (deadline time.Time, ok bool) - - // Done returns a channel that's closed when work done on behalf of this - // context should be canceled. Done may return nil if this context can - // never be canceled. Successive calls to Done return the same value. - // - // WithCancel arranges for Done to be closed when cancel is called; - // WithDeadline arranges for Done to be closed when the deadline - // expires; WithTimeout arranges for Done to be closed when the timeout - // elapses. - // - // Done is provided for use in select statements: - // - // // Stream generates values with DoSomething and sends them to out - // // until DoSomething returns an error or ctx.Done is closed. - // func Stream(ctx context.Context, out <-chan Value) error { - // for { - // v, err := DoSomething(ctx) - // if err != nil { - // return err - // } - // select { - // case <-ctx.Done(): - // return ctx.Err() - // case out <- v: - // } - // } - // } - // - // See http://blog.golang.org/pipelines for more examples of how to use - // a Done channel for cancelation. - Done() <-chan struct{} - - // Err returns a non-nil error value after Done is closed. Err returns - // Canceled if the context was canceled or DeadlineExceeded if the - // context's deadline passed. No other values for Err are defined. - // After Done is closed, successive calls to Err return the same value. - Err() error - - // Value returns the value associated with this context for key, or nil - // if no value is associated with key. Successive calls to Value with - // the same key returns the same result. - // - // Use context values only for request-scoped data that transits - // processes and API boundaries, not for passing optional parameters to - // functions. - // - // A key identifies a specific value in a Context. Functions that wish - // to store values in Context typically allocate a key in a global - // variable then use that key as the argument to context.WithValue and - // Context.Value. A key can be any type that supports equality; - // packages should define keys as an unexported type to avoid - // collisions. - // - // Packages that define a Context key should provide type-safe accessors - // for the values stores using that key: - // - // // Package user defines a User type that's stored in Contexts. - // package user - // - // import "golang.org/x/net/context" - // - // // User is the type of value stored in the Contexts. - // type User struct {...} - // - // // key is an unexported type for keys defined in this package. - // // This prevents collisions with keys defined in other packages. - // type key int - // - // // userKey is the key for user.User values in Contexts. It is - // // unexported; clients use user.NewContext and user.FromContext - // // instead of using this key directly. - // var userKey key = 0 - // - // // NewContext returns a new Context that carries value u. - // func NewContext(ctx context.Context, u *User) context.Context { - // return context.WithValue(ctx, userKey, u) - // } - // - // // FromContext returns the User value stored in ctx, if any. - // func FromContext(ctx context.Context) (*User, bool) { - // u, ok := ctx.Value(userKey).(*User) - // return u, ok - // } - Value(key interface{}) interface{} -} - -// Canceled is the error returned by Context.Err when the context is canceled. -var Canceled = errors.New("context canceled") - -// DeadlineExceeded is the error returned by Context.Err when the context's -// deadline passes. -var DeadlineExceeded = errors.New("context deadline exceeded") - -// An emptyCtx is never canceled, has no values, and has no deadline. It is not -// struct{}, since vars of this type must have distinct addresses. -type emptyCtx int - -func (*emptyCtx) Deadline() (deadline time.Time, ok bool) { - return -} - -func (*emptyCtx) Done() <-chan struct{} { - return nil -} - -func (*emptyCtx) Err() error { - return nil -} - -func (*emptyCtx) Value(key interface{}) interface{} { - return nil -} - -func (e *emptyCtx) String() string { - switch e { - case background: - return "context.Background" - case todo: - return "context.TODO" - } - return "unknown empty Context" -} - -var ( - background = new(emptyCtx) - todo = new(emptyCtx) -) - -// Background returns a non-nil, empty Context. It is never canceled, has no -// values, and has no deadline. It is typically used by the main function, -// initialization, and tests, and as the top-level Context for incoming -// requests. -func Background() Context { - return background -} - -// TODO returns a non-nil, empty Context. Code should use context.TODO when -// it's unclear which Context to use or it is not yet available (because the -// surrounding function has not yet been extended to accept a Context -// parameter). TODO is recognized by static analysis tools that determine -// whether Contexts are propagated correctly in a program. -func TODO() Context { - return todo -} - -// A CancelFunc tells an operation to abandon its work. -// A CancelFunc does not wait for the work to stop. -// After the first call, subsequent calls to a CancelFunc do nothing. -type CancelFunc func() - -// WithCancel returns a copy of parent with a new Done channel. The returned -// context's Done channel is closed when the returned cancel function is called -// or when the parent context's Done channel is closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { - c := newCancelCtx(parent) - propagateCancel(parent, &c) - return &c, func() { c.cancel(true, Canceled) } -} - -// newCancelCtx returns an initialized cancelCtx. -func newCancelCtx(parent Context) cancelCtx { - return cancelCtx{ - Context: parent, - done: make(chan struct{}), - } -} - -// propagateCancel arranges for child to be canceled when parent is. -func propagateCancel(parent Context, child canceler) { - if parent.Done() == nil { - return // parent is never canceled - } - if p, ok := parentCancelCtx(parent); ok { - p.mu.Lock() - if p.err != nil { - // parent has already been canceled - child.cancel(false, p.err) - } else { - if p.children == nil { - p.children = make(map[canceler]bool) - } - p.children[child] = true - } - p.mu.Unlock() - } else { - go func() { - select { - case <-parent.Done(): - child.cancel(false, parent.Err()) - case <-child.Done(): - } - }() - } -} - -// parentCancelCtx follows a chain of parent references until it finds a -// *cancelCtx. This function understands how each of the concrete types in this -// package represents its parent. -func parentCancelCtx(parent Context) (*cancelCtx, bool) { - for { - switch c := parent.(type) { - case *cancelCtx: - return c, true - case *timerCtx: - return &c.cancelCtx, true - case *valueCtx: - parent = c.Context - default: - return nil, false - } - } -} - -// removeChild removes a context from its parent. -func removeChild(parent Context, child canceler) { - p, ok := parentCancelCtx(parent) - if !ok { - return - } - p.mu.Lock() - if p.children != nil { - delete(p.children, child) - } - p.mu.Unlock() -} - -// A canceler is a context type that can be canceled directly. The -// implementations are *cancelCtx and *timerCtx. -type canceler interface { - cancel(removeFromParent bool, err error) - Done() <-chan struct{} -} - -// A cancelCtx can be canceled. When canceled, it also cancels any children -// that implement canceler. -type cancelCtx struct { - Context - - done chan struct{} // closed by the first cancel call. - - mu sync.Mutex - children map[canceler]bool // set to nil by the first cancel call - err error // set to non-nil by the first cancel call -} - -func (c *cancelCtx) Done() <-chan struct{} { - return c.done -} - -func (c *cancelCtx) Err() error { - c.mu.Lock() - defer c.mu.Unlock() - return c.err -} - -func (c *cancelCtx) String() string { - return fmt.Sprintf("%v.WithCancel", c.Context) -} - -// cancel closes c.done, cancels each of c's children, and, if -// removeFromParent is true, removes c from its parent's children. -func (c *cancelCtx) cancel(removeFromParent bool, err error) { - if err == nil { - panic("context: internal error: missing cancel error") - } - c.mu.Lock() - if c.err != nil { - c.mu.Unlock() - return // already canceled - } - c.err = err - close(c.done) - for child := range c.children { - // NOTE: acquiring the child's lock while holding parent's lock. - child.cancel(false, err) - } - c.children = nil - c.mu.Unlock() - - if removeFromParent { - removeChild(c.Context, c) - } -} - -// WithDeadline returns a copy of the parent context with the deadline adjusted -// to be no later than d. If the parent's deadline is already earlier than d, -// WithDeadline(parent, d) is semantically equivalent to parent. The returned -// context's Done channel is closed when the deadline expires, when the returned -// cancel function is called, or when the parent context's Done channel is -// closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { - if cur, ok := parent.Deadline(); ok && cur.Before(deadline) { - // The current deadline is already sooner than the new one. - return WithCancel(parent) - } - c := &timerCtx{ - cancelCtx: newCancelCtx(parent), - deadline: deadline, - } - propagateCancel(parent, c) - d := deadline.Sub(time.Now()) - if d <= 0 { - c.cancel(true, DeadlineExceeded) // deadline has already passed - return c, func() { c.cancel(true, Canceled) } - } - c.mu.Lock() - defer c.mu.Unlock() - if c.err == nil { - c.timer = time.AfterFunc(d, func() { - c.cancel(true, DeadlineExceeded) - }) - } - return c, func() { c.cancel(true, Canceled) } -} - -// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to -// implement Done and Err. It implements cancel by stopping its timer then -// delegating to cancelCtx.cancel. -type timerCtx struct { - cancelCtx - timer *time.Timer // Under cancelCtx.mu. - - deadline time.Time -} - -func (c *timerCtx) Deadline() (deadline time.Time, ok bool) { - return c.deadline, true -} - -func (c *timerCtx) String() string { - return fmt.Sprintf("%v.WithDeadline(%s [%s])", c.cancelCtx.Context, c.deadline, c.deadline.Sub(time.Now())) -} - -func (c *timerCtx) cancel(removeFromParent bool, err error) { - c.cancelCtx.cancel(false, err) - if removeFromParent { - // Remove this timerCtx from its parent cancelCtx's children. - removeChild(c.cancelCtx.Context, c) - } - c.mu.Lock() - if c.timer != nil { - c.timer.Stop() - c.timer = nil - } - c.mu.Unlock() -} - -// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete: -// -// func slowOperationWithTimeout(ctx context.Context) (Result, error) { -// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) -// defer cancel() // releases resources if slowOperation completes before timeout elapses -// return slowOperation(ctx) -// } -func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { - return WithDeadline(parent, time.Now().Add(timeout)) -} - -// WithValue returns a copy of parent in which the value associated with key is -// val. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -func WithValue(parent Context, key interface{}, val interface{}) Context { - return &valueCtx{parent, key, val} -} - -// A valueCtx carries a key-value pair. It implements Value for that key and -// delegates all other calls to the embedded Context. -type valueCtx struct { - Context - key, val interface{} -} - -func (c *valueCtx) String() string { - return fmt.Sprintf("%v.WithValue(%#v, %#v)", c.Context, c.key, c.val) -} - -func (c *valueCtx) Value(key interface{}) interface{} { - if c.key == key { - return c.val - } - return c.Context.Value(key) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/context_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/context_test.go deleted file mode 100644 index 05345fc5..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/context_test.go +++ /dev/null @@ -1,575 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package context - -import ( - "fmt" - "math/rand" - "runtime" - "strings" - "sync" - "testing" - "time" -) - -// otherContext is a Context that's not one of the types defined in context.go. -// This lets us test code paths that differ based on the underlying type of the -// Context. -type otherContext struct { - Context -} - -func TestBackground(t *testing.T) { - c := Background() - if c == nil { - t.Fatalf("Background returned nil") - } - select { - case x := <-c.Done(): - t.Errorf("<-c.Done() == %v want nothing (it should block)", x) - default: - } - if got, want := fmt.Sprint(c), "context.Background"; got != want { - t.Errorf("Background().String() = %q want %q", got, want) - } -} - -func TestTODO(t *testing.T) { - c := TODO() - if c == nil { - t.Fatalf("TODO returned nil") - } - select { - case x := <-c.Done(): - t.Errorf("<-c.Done() == %v want nothing (it should block)", x) - default: - } - if got, want := fmt.Sprint(c), "context.TODO"; got != want { - t.Errorf("TODO().String() = %q want %q", got, want) - } -} - -func TestWithCancel(t *testing.T) { - c1, cancel := WithCancel(Background()) - - if got, want := fmt.Sprint(c1), "context.Background.WithCancel"; got != want { - t.Errorf("c1.String() = %q want %q", got, want) - } - - o := otherContext{c1} - c2, _ := WithCancel(o) - contexts := []Context{c1, o, c2} - - for i, c := range contexts { - if d := c.Done(); d == nil { - t.Errorf("c[%d].Done() == %v want non-nil", i, d) - } - if e := c.Err(); e != nil { - t.Errorf("c[%d].Err() == %v want nil", i, e) - } - - select { - case x := <-c.Done(): - t.Errorf("<-c.Done() == %v want nothing (it should block)", x) - default: - } - } - - cancel() - time.Sleep(100 * time.Millisecond) // let cancelation propagate - - for i, c := range contexts { - select { - case <-c.Done(): - default: - t.Errorf("<-c[%d].Done() blocked, but shouldn't have", i) - } - if e := c.Err(); e != Canceled { - t.Errorf("c[%d].Err() == %v want %v", i, e, Canceled) - } - } -} - -func TestParentFinishesChild(t *testing.T) { - // Context tree: - // parent -> cancelChild - // parent -> valueChild -> timerChild - parent, cancel := WithCancel(Background()) - cancelChild, stop := WithCancel(parent) - defer stop() - valueChild := WithValue(parent, "key", "value") - timerChild, stop := WithTimeout(valueChild, 10000*time.Hour) - defer stop() - - select { - case x := <-parent.Done(): - t.Errorf("<-parent.Done() == %v want nothing (it should block)", x) - case x := <-cancelChild.Done(): - t.Errorf("<-cancelChild.Done() == %v want nothing (it should block)", x) - case x := <-timerChild.Done(): - t.Errorf("<-timerChild.Done() == %v want nothing (it should block)", x) - case x := <-valueChild.Done(): - t.Errorf("<-valueChild.Done() == %v want nothing (it should block)", x) - default: - } - - // The parent's children should contain the two cancelable children. - pc := parent.(*cancelCtx) - cc := cancelChild.(*cancelCtx) - tc := timerChild.(*timerCtx) - pc.mu.Lock() - if len(pc.children) != 2 || !pc.children[cc] || !pc.children[tc] { - t.Errorf("bad linkage: pc.children = %v, want %v and %v", - pc.children, cc, tc) - } - pc.mu.Unlock() - - if p, ok := parentCancelCtx(cc.Context); !ok || p != pc { - t.Errorf("bad linkage: parentCancelCtx(cancelChild.Context) = %v, %v want %v, true", p, ok, pc) - } - if p, ok := parentCancelCtx(tc.Context); !ok || p != pc { - t.Errorf("bad linkage: parentCancelCtx(timerChild.Context) = %v, %v want %v, true", p, ok, pc) - } - - cancel() - - pc.mu.Lock() - if len(pc.children) != 0 { - t.Errorf("pc.cancel didn't clear pc.children = %v", pc.children) - } - pc.mu.Unlock() - - // parent and children should all be finished. - check := func(ctx Context, name string) { - select { - case <-ctx.Done(): - default: - t.Errorf("<-%s.Done() blocked, but shouldn't have", name) - } - if e := ctx.Err(); e != Canceled { - t.Errorf("%s.Err() == %v want %v", name, e, Canceled) - } - } - check(parent, "parent") - check(cancelChild, "cancelChild") - check(valueChild, "valueChild") - check(timerChild, "timerChild") - - // WithCancel should return a canceled context on a canceled parent. - precanceledChild := WithValue(parent, "key", "value") - select { - case <-precanceledChild.Done(): - default: - t.Errorf("<-precanceledChild.Done() blocked, but shouldn't have") - } - if e := precanceledChild.Err(); e != Canceled { - t.Errorf("precanceledChild.Err() == %v want %v", e, Canceled) - } -} - -func TestChildFinishesFirst(t *testing.T) { - cancelable, stop := WithCancel(Background()) - defer stop() - for _, parent := range []Context{Background(), cancelable} { - child, cancel := WithCancel(parent) - - select { - case x := <-parent.Done(): - t.Errorf("<-parent.Done() == %v want nothing (it should block)", x) - case x := <-child.Done(): - t.Errorf("<-child.Done() == %v want nothing (it should block)", x) - default: - } - - cc := child.(*cancelCtx) - pc, pcok := parent.(*cancelCtx) // pcok == false when parent == Background() - if p, ok := parentCancelCtx(cc.Context); ok != pcok || (ok && pc != p) { - t.Errorf("bad linkage: parentCancelCtx(cc.Context) = %v, %v want %v, %v", p, ok, pc, pcok) - } - - if pcok { - pc.mu.Lock() - if len(pc.children) != 1 || !pc.children[cc] { - t.Errorf("bad linkage: pc.children = %v, cc = %v", pc.children, cc) - } - pc.mu.Unlock() - } - - cancel() - - if pcok { - pc.mu.Lock() - if len(pc.children) != 0 { - t.Errorf("child's cancel didn't remove self from pc.children = %v", pc.children) - } - pc.mu.Unlock() - } - - // child should be finished. - select { - case <-child.Done(): - default: - t.Errorf("<-child.Done() blocked, but shouldn't have") - } - if e := child.Err(); e != Canceled { - t.Errorf("child.Err() == %v want %v", e, Canceled) - } - - // parent should not be finished. - select { - case x := <-parent.Done(): - t.Errorf("<-parent.Done() == %v want nothing (it should block)", x) - default: - } - if e := parent.Err(); e != nil { - t.Errorf("parent.Err() == %v want nil", e) - } - } -} - -func testDeadline(c Context, wait time.Duration, t *testing.T) { - select { - case <-time.After(wait): - t.Fatalf("context should have timed out") - case <-c.Done(): - } - if e := c.Err(); e != DeadlineExceeded { - t.Errorf("c.Err() == %v want %v", e, DeadlineExceeded) - } -} - -func TestDeadline(t *testing.T) { - c, _ := WithDeadline(Background(), time.Now().Add(100*time.Millisecond)) - if got, prefix := fmt.Sprint(c), "context.Background.WithDeadline("; !strings.HasPrefix(got, prefix) { - t.Errorf("c.String() = %q want prefix %q", got, prefix) - } - testDeadline(c, 200*time.Millisecond, t) - - c, _ = WithDeadline(Background(), time.Now().Add(100*time.Millisecond)) - o := otherContext{c} - testDeadline(o, 200*time.Millisecond, t) - - c, _ = WithDeadline(Background(), time.Now().Add(100*time.Millisecond)) - o = otherContext{c} - c, _ = WithDeadline(o, time.Now().Add(300*time.Millisecond)) - testDeadline(c, 200*time.Millisecond, t) -} - -func TestTimeout(t *testing.T) { - c, _ := WithTimeout(Background(), 100*time.Millisecond) - if got, prefix := fmt.Sprint(c), "context.Background.WithDeadline("; !strings.HasPrefix(got, prefix) { - t.Errorf("c.String() = %q want prefix %q", got, prefix) - } - testDeadline(c, 200*time.Millisecond, t) - - c, _ = WithTimeout(Background(), 100*time.Millisecond) - o := otherContext{c} - testDeadline(o, 200*time.Millisecond, t) - - c, _ = WithTimeout(Background(), 100*time.Millisecond) - o = otherContext{c} - c, _ = WithTimeout(o, 300*time.Millisecond) - testDeadline(c, 200*time.Millisecond, t) -} - -func TestCanceledTimeout(t *testing.T) { - c, _ := WithTimeout(Background(), 200*time.Millisecond) - o := otherContext{c} - c, cancel := WithTimeout(o, 400*time.Millisecond) - cancel() - time.Sleep(100 * time.Millisecond) // let cancelation propagate - select { - case <-c.Done(): - default: - t.Errorf("<-c.Done() blocked, but shouldn't have") - } - if e := c.Err(); e != Canceled { - t.Errorf("c.Err() == %v want %v", e, Canceled) - } -} - -type key1 int -type key2 int - -var k1 = key1(1) -var k2 = key2(1) // same int as k1, different type -var k3 = key2(3) // same type as k2, different int - -func TestValues(t *testing.T) { - check := func(c Context, nm, v1, v2, v3 string) { - if v, ok := c.Value(k1).(string); ok == (len(v1) == 0) || v != v1 { - t.Errorf(`%s.Value(k1).(string) = %q, %t want %q, %t`, nm, v, ok, v1, len(v1) != 0) - } - if v, ok := c.Value(k2).(string); ok == (len(v2) == 0) || v != v2 { - t.Errorf(`%s.Value(k2).(string) = %q, %t want %q, %t`, nm, v, ok, v2, len(v2) != 0) - } - if v, ok := c.Value(k3).(string); ok == (len(v3) == 0) || v != v3 { - t.Errorf(`%s.Value(k3).(string) = %q, %t want %q, %t`, nm, v, ok, v3, len(v3) != 0) - } - } - - c0 := Background() - check(c0, "c0", "", "", "") - - c1 := WithValue(Background(), k1, "c1k1") - check(c1, "c1", "c1k1", "", "") - - if got, want := fmt.Sprint(c1), `context.Background.WithValue(1, "c1k1")`; got != want { - t.Errorf("c.String() = %q want %q", got, want) - } - - c2 := WithValue(c1, k2, "c2k2") - check(c2, "c2", "c1k1", "c2k2", "") - - c3 := WithValue(c2, k3, "c3k3") - check(c3, "c2", "c1k1", "c2k2", "c3k3") - - c4 := WithValue(c3, k1, nil) - check(c4, "c4", "", "c2k2", "c3k3") - - o0 := otherContext{Background()} - check(o0, "o0", "", "", "") - - o1 := otherContext{WithValue(Background(), k1, "c1k1")} - check(o1, "o1", "c1k1", "", "") - - o2 := WithValue(o1, k2, "o2k2") - check(o2, "o2", "c1k1", "o2k2", "") - - o3 := otherContext{c4} - check(o3, "o3", "", "c2k2", "c3k3") - - o4 := WithValue(o3, k3, nil) - check(o4, "o4", "", "c2k2", "") -} - -func TestAllocs(t *testing.T) { - bg := Background() - for _, test := range []struct { - desc string - f func() - limit float64 - gccgoLimit float64 - }{ - { - desc: "Background()", - f: func() { Background() }, - limit: 0, - gccgoLimit: 0, - }, - { - desc: fmt.Sprintf("WithValue(bg, %v, nil)", k1), - f: func() { - c := WithValue(bg, k1, nil) - c.Value(k1) - }, - limit: 3, - gccgoLimit: 3, - }, - { - desc: "WithTimeout(bg, 15*time.Millisecond)", - f: func() { - c, _ := WithTimeout(bg, 15*time.Millisecond) - <-c.Done() - }, - limit: 8, - gccgoLimit: 15, - }, - { - desc: "WithCancel(bg)", - f: func() { - c, cancel := WithCancel(bg) - cancel() - <-c.Done() - }, - limit: 5, - gccgoLimit: 8, - }, - { - desc: "WithTimeout(bg, 100*time.Millisecond)", - f: func() { - c, cancel := WithTimeout(bg, 100*time.Millisecond) - cancel() - <-c.Done() - }, - limit: 8, - gccgoLimit: 25, - }, - } { - limit := test.limit - if runtime.Compiler == "gccgo" { - // gccgo does not yet do escape analysis. - // TOOD(iant): Remove this when gccgo does do escape analysis. - limit = test.gccgoLimit - } - if n := testing.AllocsPerRun(100, test.f); n > limit { - t.Errorf("%s allocs = %f want %d", test.desc, n, int(limit)) - } - } -} - -func TestSimultaneousCancels(t *testing.T) { - root, cancel := WithCancel(Background()) - m := map[Context]CancelFunc{root: cancel} - q := []Context{root} - // Create a tree of contexts. - for len(q) != 0 && len(m) < 100 { - parent := q[0] - q = q[1:] - for i := 0; i < 4; i++ { - ctx, cancel := WithCancel(parent) - m[ctx] = cancel - q = append(q, ctx) - } - } - // Start all the cancels in a random order. - var wg sync.WaitGroup - wg.Add(len(m)) - for _, cancel := range m { - go func(cancel CancelFunc) { - cancel() - wg.Done() - }(cancel) - } - // Wait on all the contexts in a random order. - for ctx := range m { - select { - case <-ctx.Done(): - case <-time.After(1 * time.Second): - buf := make([]byte, 10<<10) - n := runtime.Stack(buf, true) - t.Fatalf("timed out waiting for <-ctx.Done(); stacks:\n%s", buf[:n]) - } - } - // Wait for all the cancel functions to return. - done := make(chan struct{}) - go func() { - wg.Wait() - close(done) - }() - select { - case <-done: - case <-time.After(1 * time.Second): - buf := make([]byte, 10<<10) - n := runtime.Stack(buf, true) - t.Fatalf("timed out waiting for cancel functions; stacks:\n%s", buf[:n]) - } -} - -func TestInterlockedCancels(t *testing.T) { - parent, cancelParent := WithCancel(Background()) - child, cancelChild := WithCancel(parent) - go func() { - parent.Done() - cancelChild() - }() - cancelParent() - select { - case <-child.Done(): - case <-time.After(1 * time.Second): - buf := make([]byte, 10<<10) - n := runtime.Stack(buf, true) - t.Fatalf("timed out waiting for child.Done(); stacks:\n%s", buf[:n]) - } -} - -func TestLayersCancel(t *testing.T) { - testLayers(t, time.Now().UnixNano(), false) -} - -func TestLayersTimeout(t *testing.T) { - testLayers(t, time.Now().UnixNano(), true) -} - -func testLayers(t *testing.T, seed int64, testTimeout bool) { - rand.Seed(seed) - errorf := func(format string, a ...interface{}) { - t.Errorf(fmt.Sprintf("seed=%d: %s", seed, format), a...) - } - const ( - timeout = 200 * time.Millisecond - minLayers = 30 - ) - type value int - var ( - vals []*value - cancels []CancelFunc - numTimers int - ctx = Background() - ) - for i := 0; i < minLayers || numTimers == 0 || len(cancels) == 0 || len(vals) == 0; i++ { - switch rand.Intn(3) { - case 0: - v := new(value) - ctx = WithValue(ctx, v, v) - vals = append(vals, v) - case 1: - var cancel CancelFunc - ctx, cancel = WithCancel(ctx) - cancels = append(cancels, cancel) - case 2: - var cancel CancelFunc - ctx, cancel = WithTimeout(ctx, timeout) - cancels = append(cancels, cancel) - numTimers++ - } - } - checkValues := func(when string) { - for _, key := range vals { - if val := ctx.Value(key).(*value); key != val { - errorf("%s: ctx.Value(%p) = %p want %p", when, key, val, key) - } - } - } - select { - case <-ctx.Done(): - errorf("ctx should not be canceled yet") - default: - } - if s, prefix := fmt.Sprint(ctx), "context.Background."; !strings.HasPrefix(s, prefix) { - t.Errorf("ctx.String() = %q want prefix %q", s, prefix) - } - t.Log(ctx) - checkValues("before cancel") - if testTimeout { - select { - case <-ctx.Done(): - case <-time.After(timeout + 100*time.Millisecond): - errorf("ctx should have timed out") - } - checkValues("after timeout") - } else { - cancel := cancels[rand.Intn(len(cancels))] - cancel() - select { - case <-ctx.Done(): - default: - errorf("ctx should be canceled") - } - checkValues("after cancel") - } -} - -func TestCancelRemoves(t *testing.T) { - checkChildren := func(when string, ctx Context, want int) { - if got := len(ctx.(*cancelCtx).children); got != want { - t.Errorf("%s: context has %d children, want %d", when, got, want) - } - } - - ctx, _ := WithCancel(Background()) - checkChildren("after creation", ctx, 0) - _, cancel := WithCancel(ctx) - checkChildren("with WithCancel child ", ctx, 1) - cancel() - checkChildren("after cancelling WithCancel child", ctx, 0) - - ctx, _ = WithCancel(Background()) - checkChildren("after creation", ctx, 0) - _, cancel = WithTimeout(ctx, 60*time.Minute) - checkChildren("with WithTimeout child ", ctx, 1) - cancel() - checkChildren("after cancelling WithTimeout child", ctx, 0) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/cancelreq.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/cancelreq.go deleted file mode 100644 index 48610e36..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/cancelreq.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.5 - -package ctxhttp - -import "net/http" - -func canceler(client *http.Client, req *http.Request) func() { - ch := make(chan struct{}) - req.Cancel = ch - - return func() { - close(ch) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/cancelreq_go14.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/cancelreq_go14.go deleted file mode 100644 index 56bcbadb..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/cancelreq_go14.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !go1.5 - -package ctxhttp - -import "net/http" - -type requestCanceler interface { - CancelRequest(*http.Request) -} - -func canceler(client *http.Client, req *http.Request) func() { - rc, ok := client.Transport.(requestCanceler) - if !ok { - return func() {} - } - return func() { - rc.CancelRequest(req) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/ctxhttp.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/ctxhttp.go deleted file mode 100644 index eda5a1ac..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/ctxhttp.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package ctxhttp provides helper functions for performing context-aware HTTP requests. -package ctxhttp - -import ( - "io" - "net/http" - "net/url" - "strings" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context" -) - -// Do sends an HTTP request with the provided http.Client and returns an HTTP response. -// If the client is nil, http.DefaultClient is used. -// If the context is canceled or times out, ctx.Err() will be returned. -func Do(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) { - if client == nil { - client = http.DefaultClient - } - - // Request cancelation changed in Go 1.5, see cancelreq.go and cancelreq_go14.go. - cancel := canceler(client, req) - - type responseAndError struct { - resp *http.Response - err error - } - result := make(chan responseAndError, 1) - - go func() { - resp, err := client.Do(req) - result <- responseAndError{resp, err} - }() - - select { - case <-ctx.Done(): - cancel() - return nil, ctx.Err() - case r := <-result: - return r.resp, r.err - } -} - -// Get issues a GET request via the Do function. -func Get(ctx context.Context, client *http.Client, url string) (*http.Response, error) { - req, err := http.NewRequest("GET", url, nil) - if err != nil { - return nil, err - } - return Do(ctx, client, req) -} - -// Head issues a HEAD request via the Do function. -func Head(ctx context.Context, client *http.Client, url string) (*http.Response, error) { - req, err := http.NewRequest("HEAD", url, nil) - if err != nil { - return nil, err - } - return Do(ctx, client, req) -} - -// Post issues a POST request via the Do function. -func Post(ctx context.Context, client *http.Client, url string, bodyType string, body io.Reader) (*http.Response, error) { - req, err := http.NewRequest("POST", url, body) - if err != nil { - return nil, err - } - req.Header.Set("Content-Type", bodyType) - return Do(ctx, client, req) -} - -// PostForm issues a POST request via the Do function. -func PostForm(ctx context.Context, client *http.Client, url string, data url.Values) (*http.Response, error) { - return Post(ctx, client, url, "application/x-www-form-urlencoded", strings.NewReader(data.Encode())) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/ctxhttp_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/ctxhttp_test.go deleted file mode 100644 index 15947f5f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/ctxhttp/ctxhttp_test.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ctxhttp - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "testing" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context" -) - -const ( - requestDuration = 100 * time.Millisecond - requestBody = "ok" -) - -func TestNoTimeout(t *testing.T) { - ctx := context.Background() - resp, err := doRequest(ctx) - - if resp == nil || err != nil { - t.Fatalf("error received from client: %v %v", err, resp) - } -} -func TestCancel(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - go func() { - time.Sleep(requestDuration / 2) - cancel() - }() - - resp, err := doRequest(ctx) - - if resp != nil || err == nil { - t.Fatalf("expected error, didn't get one. resp: %v", resp) - } - if err != ctx.Err() { - t.Fatalf("expected error from context but got: %v", err) - } -} - -func TestCancelAfterRequest(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - - resp, err := doRequest(ctx) - - // Cancel before reading the body. - // Request.Body should still be readable after the context is canceled. - cancel() - - b, err := ioutil.ReadAll(resp.Body) - if err != nil || string(b) != requestBody { - t.Fatalf("could not read body: %q %v", b, err) - } -} - -func doRequest(ctx context.Context) (*http.Response, error) { - var okHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - time.Sleep(requestDuration) - w.Write([]byte(requestBody)) - }) - - serv := httptest.NewServer(okHandler) - defer serv.Close() - - return Get(ctx, nil, serv.URL) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/withtimeout_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/withtimeout_test.go deleted file mode 100644 index 1310dd9c..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context/withtimeout_test.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package context_test - -import ( - "fmt" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context" -) - -func ExampleWithTimeout() { - // Pass a context with a timeout to tell a blocking function that it - // should abandon its work after the timeout elapses. - ctx, _ := context.WithTimeout(context.Background(), 100*time.Millisecond) - select { - case <-time.After(200 * time.Millisecond): - fmt.Println("overslept") - case <-ctx.Done(): - fmt.Println(ctx.Err()) // prints "context deadline exceeded" - } - // Output: - // context deadline exceeded -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/dict/dict.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/dict/dict.go deleted file mode 100644 index e7f5290f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/dict/dict.go +++ /dev/null @@ -1,210 +0,0 @@ -// Copyright 2010 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 dict implements the Dictionary Server Protocol -// as defined in RFC 2229. -package dict - -import ( - "net/textproto" - "strconv" - "strings" -) - -// A Client represents a client connection to a dictionary server. -type Client struct { - text *textproto.Conn -} - -// Dial returns a new client connected to a dictionary server at -// addr on the given network. -func Dial(network, addr string) (*Client, error) { - text, err := textproto.Dial(network, addr) - if err != nil { - return nil, err - } - _, _, err = text.ReadCodeLine(220) - if err != nil { - text.Close() - return nil, err - } - return &Client{text: text}, nil -} - -// Close closes the connection to the dictionary server. -func (c *Client) Close() error { - return c.text.Close() -} - -// A Dict represents a dictionary available on the server. -type Dict struct { - Name string // short name of dictionary - Desc string // long description -} - -// Dicts returns a list of the dictionaries available on the server. -func (c *Client) Dicts() ([]Dict, error) { - id, err := c.text.Cmd("SHOW DB") - if err != nil { - return nil, err - } - - c.text.StartResponse(id) - defer c.text.EndResponse(id) - - _, _, err = c.text.ReadCodeLine(110) - if err != nil { - return nil, err - } - lines, err := c.text.ReadDotLines() - if err != nil { - return nil, err - } - _, _, err = c.text.ReadCodeLine(250) - - dicts := make([]Dict, len(lines)) - for i := range dicts { - d := &dicts[i] - a, _ := fields(lines[i]) - if len(a) < 2 { - return nil, textproto.ProtocolError("invalid dictionary: " + lines[i]) - } - d.Name = a[0] - d.Desc = a[1] - } - return dicts, err -} - -// A Defn represents a definition. -type Defn struct { - Dict Dict // Dict where definition was found - Word string // Word being defined - Text []byte // Definition text, typically multiple lines -} - -// Define requests the definition of the given word. -// The argument dict names the dictionary to use, -// the Name field of a Dict returned by Dicts. -// -// The special dictionary name "*" means to look in all the -// server's dictionaries. -// The special dictionary name "!" means to look in all the -// server's dictionaries in turn, stopping after finding the word -// in one of them. -func (c *Client) Define(dict, word string) ([]*Defn, error) { - id, err := c.text.Cmd("DEFINE %s %q", dict, word) - if err != nil { - return nil, err - } - - c.text.StartResponse(id) - defer c.text.EndResponse(id) - - _, line, err := c.text.ReadCodeLine(150) - if err != nil { - return nil, err - } - a, _ := fields(line) - if len(a) < 1 { - return nil, textproto.ProtocolError("malformed response: " + line) - } - n, err := strconv.Atoi(a[0]) - if err != nil { - return nil, textproto.ProtocolError("invalid definition count: " + a[0]) - } - def := make([]*Defn, n) - for i := 0; i < n; i++ { - _, line, err = c.text.ReadCodeLine(151) - if err != nil { - return nil, err - } - a, _ := fields(line) - if len(a) < 3 { - // skip it, to keep protocol in sync - i-- - n-- - def = def[0:n] - continue - } - d := &Defn{Word: a[0], Dict: Dict{a[1], a[2]}} - d.Text, err = c.text.ReadDotBytes() - if err != nil { - return nil, err - } - def[i] = d - } - _, _, err = c.text.ReadCodeLine(250) - return def, err -} - -// Fields returns the fields in s. -// Fields are space separated unquoted words -// or quoted with single or double quote. -func fields(s string) ([]string, error) { - var v []string - i := 0 - for { - for i < len(s) && (s[i] == ' ' || s[i] == '\t') { - i++ - } - if i >= len(s) { - break - } - if s[i] == '"' || s[i] == '\'' { - q := s[i] - // quoted string - var j int - for j = i + 1; ; j++ { - if j >= len(s) { - return nil, textproto.ProtocolError("malformed quoted string") - } - if s[j] == '\\' { - j++ - continue - } - if s[j] == q { - j++ - break - } - } - v = append(v, unquote(s[i+1:j-1])) - i = j - } else { - // atom - var j int - for j = i; j < len(s); j++ { - if s[j] == ' ' || s[j] == '\t' || s[j] == '\\' || s[j] == '"' || s[j] == '\'' { - break - } - } - v = append(v, s[i:j]) - i = j - } - if i < len(s) { - c := s[i] - if c != ' ' && c != '\t' { - return nil, textproto.ProtocolError("quotes not on word boundaries") - } - } - } - return v, nil -} - -func unquote(s string) string { - if strings.Index(s, "\\") < 0 { - return s - } - b := []byte(s) - w := 0 - for r := 0; r < len(b); r++ { - c := b[r] - if c == '\\' { - r++ - c = b[r] - } - b[w] = c - w++ - } - return string(b[0:w]) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/atom.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/atom.go deleted file mode 100644 index 227404bd..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/atom.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2012 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 atom provides integer codes (also known as atoms) for a fixed set of -// frequently occurring HTML strings: tag names and attribute keys such as "p" -// and "id". -// -// Sharing an atom's name between all elements with the same tag can result in -// fewer string allocations when tokenizing and parsing HTML. Integer -// comparisons are also generally faster than string comparisons. -// -// The value of an atom's particular code is not guaranteed to stay the same -// between versions of this package. Neither is any ordering guaranteed: -// whether atom.H1 < atom.H2 may also change. The codes are not guaranteed to -// be dense. The only guarantees are that e.g. looking up "div" will yield -// atom.Div, calling atom.Div.String will return "div", and atom.Div != 0. -package atom - -// Atom is an integer code for a string. The zero value maps to "". -type Atom uint32 - -// String returns the atom's name. -func (a Atom) String() string { - start := uint32(a >> 8) - n := uint32(a & 0xff) - if start+n > uint32(len(atomText)) { - return "" - } - return atomText[start : start+n] -} - -func (a Atom) string() string { - return atomText[a>>8 : a>>8+a&0xff] -} - -// fnv computes the FNV hash with an arbitrary starting value h. -func fnv(h uint32, s []byte) uint32 { - for i := range s { - h ^= uint32(s[i]) - h *= 16777619 - } - return h -} - -func match(s string, t []byte) bool { - for i, c := range t { - if s[i] != c { - return false - } - } - return true -} - -// Lookup returns the atom whose name is s. It returns zero if there is no -// such atom. The lookup is case sensitive. -func Lookup(s []byte) Atom { - if len(s) == 0 || len(s) > maxAtomLen { - return 0 - } - h := fnv(hash0, s) - if a := table[h&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) { - return a - } - if a := table[(h>>16)&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) { - return a - } - return 0 -} - -// String returns a string whose contents are equal to s. In that sense, it is -// equivalent to string(s) but may be more efficient. -func String(s []byte) string { - if a := Lookup(s); a != 0 { - return a.String() - } - return string(s) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/atom_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/atom_test.go deleted file mode 100644 index 6e33704d..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/atom_test.go +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2012 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 atom - -import ( - "sort" - "testing" -) - -func TestKnown(t *testing.T) { - for _, s := range testAtomList { - if atom := Lookup([]byte(s)); atom.String() != s { - t.Errorf("Lookup(%q) = %#x (%q)", s, uint32(atom), atom.String()) - } - } -} - -func TestHits(t *testing.T) { - for _, a := range table { - if a == 0 { - continue - } - got := Lookup([]byte(a.String())) - if got != a { - t.Errorf("Lookup(%q) = %#x, want %#x", a.String(), uint32(got), uint32(a)) - } - } -} - -func TestMisses(t *testing.T) { - testCases := []string{ - "", - "\x00", - "\xff", - "A", - "DIV", - "Div", - "dIV", - "aa", - "a\x00", - "ab", - "abb", - "abbr0", - "abbr ", - " abbr", - " a", - "acceptcharset", - "acceptCharset", - "accept_charset", - "h0", - "h1h2", - "h7", - "onClick", - "λ", - // The following string has the same hash (0xa1d7fab7) as "onmouseover". - "\x00\x00\x00\x00\x00\x50\x18\xae\x38\xd0\xb7", - } - for _, tc := range testCases { - got := Lookup([]byte(tc)) - if got != 0 { - t.Errorf("Lookup(%q): got %d, want 0", tc, got) - } - } -} - -func TestForeignObject(t *testing.T) { - const ( - afo = Foreignobject - afO = ForeignObject - sfo = "foreignobject" - sfO = "foreignObject" - ) - if got := Lookup([]byte(sfo)); got != afo { - t.Errorf("Lookup(%q): got %#v, want %#v", sfo, got, afo) - } - if got := Lookup([]byte(sfO)); got != afO { - t.Errorf("Lookup(%q): got %#v, want %#v", sfO, got, afO) - } - if got := afo.String(); got != sfo { - t.Errorf("Atom(%#v).String(): got %q, want %q", afo, got, sfo) - } - if got := afO.String(); got != sfO { - t.Errorf("Atom(%#v).String(): got %q, want %q", afO, got, sfO) - } -} - -func BenchmarkLookup(b *testing.B) { - sortedTable := make([]string, 0, len(table)) - for _, a := range table { - if a != 0 { - sortedTable = append(sortedTable, a.String()) - } - } - sort.Strings(sortedTable) - - x := make([][]byte, 1000) - for i := range x { - x[i] = []byte(sortedTable[i%len(sortedTable)]) - } - - b.ResetTimer() - for i := 0; i < b.N; i++ { - for _, s := range x { - Lookup(s) - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/gen.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/gen.go deleted file mode 100644 index 6bfa8660..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/gen.go +++ /dev/null @@ -1,648 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This program generates table.go and table_test.go. -// Invoke as -// -// go run gen.go |gofmt >table.go -// go run gen.go -test |gofmt >table_test.go - -import ( - "flag" - "fmt" - "math/rand" - "os" - "sort" - "strings" -) - -// identifier converts s to a Go exported identifier. -// It converts "div" to "Div" and "accept-charset" to "AcceptCharset". -func identifier(s string) string { - b := make([]byte, 0, len(s)) - cap := true - for _, c := range s { - if c == '-' { - cap = true - continue - } - if cap && 'a' <= c && c <= 'z' { - c -= 'a' - 'A' - } - cap = false - b = append(b, byte(c)) - } - return string(b) -} - -var test = flag.Bool("test", false, "generate table_test.go") - -func main() { - flag.Parse() - - var all []string - all = append(all, elements...) - all = append(all, attributes...) - all = append(all, eventHandlers...) - all = append(all, extra...) - sort.Strings(all) - - if *test { - fmt.Printf("// generated by go run gen.go -test; DO NOT EDIT\n\n") - fmt.Printf("package atom\n\n") - fmt.Printf("var testAtomList = []string{\n") - for _, s := range all { - fmt.Printf("\t%q,\n", s) - } - fmt.Printf("}\n") - return - } - - // uniq - lists have dups - // compute max len too - maxLen := 0 - w := 0 - for _, s := range all { - if w == 0 || all[w-1] != s { - if maxLen < len(s) { - maxLen = len(s) - } - all[w] = s - w++ - } - } - all = all[:w] - - // Find hash that minimizes table size. - var best *table - for i := 0; i < 1000000; i++ { - if best != nil && 1<<(best.k-1) < len(all) { - break - } - h := rand.Uint32() - for k := uint(0); k <= 16; k++ { - if best != nil && k >= best.k { - break - } - var t table - if t.init(h, k, all) { - best = &t - break - } - } - } - if best == nil { - fmt.Fprintf(os.Stderr, "failed to construct string table\n") - os.Exit(1) - } - - // Lay out strings, using overlaps when possible. - layout := append([]string{}, all...) - - // Remove strings that are substrings of other strings - for changed := true; changed; { - changed = false - for i, s := range layout { - if s == "" { - continue - } - for j, t := range layout { - if i != j && t != "" && strings.Contains(s, t) { - changed = true - layout[j] = "" - } - } - } - } - - // Join strings where one suffix matches another prefix. - for { - // Find best i, j, k such that layout[i][len-k:] == layout[j][:k], - // maximizing overlap length k. - besti := -1 - bestj := -1 - bestk := 0 - for i, s := range layout { - if s == "" { - continue - } - for j, t := range layout { - if i == j { - continue - } - for k := bestk + 1; k <= len(s) && k <= len(t); k++ { - if s[len(s)-k:] == t[:k] { - besti = i - bestj = j - bestk = k - } - } - } - } - if bestk > 0 { - layout[besti] += layout[bestj][bestk:] - layout[bestj] = "" - continue - } - break - } - - text := strings.Join(layout, "") - - atom := map[string]uint32{} - for _, s := range all { - off := strings.Index(text, s) - if off < 0 { - panic("lost string " + s) - } - atom[s] = uint32(off<<8 | len(s)) - } - - // Generate the Go code. - fmt.Printf("// generated by go run gen.go; DO NOT EDIT\n\n") - fmt.Printf("package atom\n\nconst (\n") - for _, s := range all { - fmt.Printf("\t%s Atom = %#x\n", identifier(s), atom[s]) - } - fmt.Printf(")\n\n") - - fmt.Printf("const hash0 = %#x\n\n", best.h0) - fmt.Printf("const maxAtomLen = %d\n\n", maxLen) - - fmt.Printf("var table = [1<<%d]Atom{\n", best.k) - for i, s := range best.tab { - if s == "" { - continue - } - fmt.Printf("\t%#x: %#x, // %s\n", i, atom[s], s) - } - fmt.Printf("}\n") - datasize := (1 << best.k) * 4 - - fmt.Printf("const atomText =\n") - textsize := len(text) - for len(text) > 60 { - fmt.Printf("\t%q +\n", text[:60]) - text = text[60:] - } - fmt.Printf("\t%q\n\n", text) - - fmt.Fprintf(os.Stderr, "%d atoms; %d string bytes + %d tables = %d total data\n", len(all), textsize, datasize, textsize+datasize) -} - -type byLen []string - -func (x byLen) Less(i, j int) bool { return len(x[i]) > len(x[j]) } -func (x byLen) Swap(i, j int) { x[i], x[j] = x[j], x[i] } -func (x byLen) Len() int { return len(x) } - -// fnv computes the FNV hash with an arbitrary starting value h. -func fnv(h uint32, s string) uint32 { - for i := 0; i < len(s); i++ { - h ^= uint32(s[i]) - h *= 16777619 - } - return h -} - -// A table represents an attempt at constructing the lookup table. -// The lookup table uses cuckoo hashing, meaning that each string -// can be found in one of two positions. -type table struct { - h0 uint32 - k uint - mask uint32 - tab []string -} - -// hash returns the two hashes for s. -func (t *table) hash(s string) (h1, h2 uint32) { - h := fnv(t.h0, s) - h1 = h & t.mask - h2 = (h >> 16) & t.mask - return -} - -// init initializes the table with the given parameters. -// h0 is the initial hash value, -// k is the number of bits of hash value to use, and -// x is the list of strings to store in the table. -// init returns false if the table cannot be constructed. -func (t *table) init(h0 uint32, k uint, x []string) bool { - t.h0 = h0 - t.k = k - t.tab = make([]string, 1<<k) - t.mask = 1<<k - 1 - for _, s := range x { - if !t.insert(s) { - return false - } - } - return true -} - -// insert inserts s in the table. -func (t *table) insert(s string) bool { - h1, h2 := t.hash(s) - if t.tab[h1] == "" { - t.tab[h1] = s - return true - } - if t.tab[h2] == "" { - t.tab[h2] = s - return true - } - if t.push(h1, 0) { - t.tab[h1] = s - return true - } - if t.push(h2, 0) { - t.tab[h2] = s - return true - } - return false -} - -// push attempts to push aside the entry in slot i. -func (t *table) push(i uint32, depth int) bool { - if depth > len(t.tab) { - return false - } - s := t.tab[i] - h1, h2 := t.hash(s) - j := h1 + h2 - i - if t.tab[j] != "" && !t.push(j, depth+1) { - return false - } - t.tab[j] = s - return true -} - -// The lists of element names and attribute keys were taken from -// https://html.spec.whatwg.org/multipage/indices.html#index -// as of the "HTML Living Standard - Last Updated 21 February 2015" version. - -var elements = []string{ - "a", - "abbr", - "address", - "area", - "article", - "aside", - "audio", - "b", - "base", - "bdi", - "bdo", - "blockquote", - "body", - "br", - "button", - "canvas", - "caption", - "cite", - "code", - "col", - "colgroup", - "command", - "data", - "datalist", - "dd", - "del", - "details", - "dfn", - "dialog", - "div", - "dl", - "dt", - "em", - "embed", - "fieldset", - "figcaption", - "figure", - "footer", - "form", - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "head", - "header", - "hgroup", - "hr", - "html", - "i", - "iframe", - "img", - "input", - "ins", - "kbd", - "keygen", - "label", - "legend", - "li", - "link", - "map", - "mark", - "menu", - "menuitem", - "meta", - "meter", - "nav", - "noscript", - "object", - "ol", - "optgroup", - "option", - "output", - "p", - "param", - "pre", - "progress", - "q", - "rp", - "rt", - "ruby", - "s", - "samp", - "script", - "section", - "select", - "small", - "source", - "span", - "strong", - "style", - "sub", - "summary", - "sup", - "table", - "tbody", - "td", - "template", - "textarea", - "tfoot", - "th", - "thead", - "time", - "title", - "tr", - "track", - "u", - "ul", - "var", - "video", - "wbr", -} - -// https://html.spec.whatwg.org/multipage/indices.html#attributes-3 - -var attributes = []string{ - "abbr", - "accept", - "accept-charset", - "accesskey", - "action", - "alt", - "async", - "autocomplete", - "autofocus", - "autoplay", - "challenge", - "charset", - "checked", - "cite", - "class", - "cols", - "colspan", - "command", - "content", - "contenteditable", - "contextmenu", - "controls", - "coords", - "crossorigin", - "data", - "datetime", - "default", - "defer", - "dir", - "dirname", - "disabled", - "download", - "draggable", - "dropzone", - "enctype", - "for", - "form", - "formaction", - "formenctype", - "formmethod", - "formnovalidate", - "formtarget", - "headers", - "height", - "hidden", - "high", - "href", - "hreflang", - "http-equiv", - "icon", - "id", - "inputmode", - "ismap", - "itemid", - "itemprop", - "itemref", - "itemscope", - "itemtype", - "keytype", - "kind", - "label", - "lang", - "list", - "loop", - "low", - "manifest", - "max", - "maxlength", - "media", - "mediagroup", - "method", - "min", - "minlength", - "multiple", - "muted", - "name", - "novalidate", - "open", - "optimum", - "pattern", - "ping", - "placeholder", - "poster", - "preload", - "radiogroup", - "readonly", - "rel", - "required", - "reversed", - "rows", - "rowspan", - "sandbox", - "spellcheck", - "scope", - "scoped", - "seamless", - "selected", - "shape", - "size", - "sizes", - "sortable", - "sorted", - "span", - "src", - "srcdoc", - "srclang", - "start", - "step", - "style", - "tabindex", - "target", - "title", - "translate", - "type", - "typemustmatch", - "usemap", - "value", - "width", - "wrap", -} - -var eventHandlers = []string{ - "onabort", - "onautocomplete", - "onautocompleteerror", - "onafterprint", - "onbeforeprint", - "onbeforeunload", - "onblur", - "oncancel", - "oncanplay", - "oncanplaythrough", - "onchange", - "onclick", - "onclose", - "oncontextmenu", - "oncuechange", - "ondblclick", - "ondrag", - "ondragend", - "ondragenter", - "ondragleave", - "ondragover", - "ondragstart", - "ondrop", - "ondurationchange", - "onemptied", - "onended", - "onerror", - "onfocus", - "onhashchange", - "oninput", - "oninvalid", - "onkeydown", - "onkeypress", - "onkeyup", - "onlanguagechange", - "onload", - "onloadeddata", - "onloadedmetadata", - "onloadstart", - "onmessage", - "onmousedown", - "onmousemove", - "onmouseout", - "onmouseover", - "onmouseup", - "onmousewheel", - "onoffline", - "ononline", - "onpagehide", - "onpageshow", - "onpause", - "onplay", - "onplaying", - "onpopstate", - "onprogress", - "onratechange", - "onreset", - "onresize", - "onscroll", - "onseeked", - "onseeking", - "onselect", - "onshow", - "onsort", - "onstalled", - "onstorage", - "onsubmit", - "onsuspend", - "ontimeupdate", - "ontoggle", - "onunload", - "onvolumechange", - "onwaiting", -} - -// extra are ad-hoc values not covered by any of the lists above. -var extra = []string{ - "align", - "annotation", - "annotation-xml", - "applet", - "basefont", - "bgsound", - "big", - "blink", - "center", - "color", - "desc", - "face", - "font", - "foreignObject", // HTML is case-insensitive, but SVG-embedded-in-HTML is case-sensitive. - "foreignobject", - "frame", - "frameset", - "image", - "isindex", - "listing", - "malignmark", - "marquee", - "math", - "mglyph", - "mi", - "mn", - "mo", - "ms", - "mtext", - "nobr", - "noembed", - "noframes", - "plaintext", - "prompt", - "public", - "spacer", - "strike", - "svg", - "system", - "tt", - "xmp", -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/table.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/table.go deleted file mode 100644 index 2605ba31..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/table.go +++ /dev/null @@ -1,713 +0,0 @@ -// generated by go run gen.go; DO NOT EDIT - -package atom - -const ( - A Atom = 0x1 - Abbr Atom = 0x4 - Accept Atom = 0x2106 - AcceptCharset Atom = 0x210e - Accesskey Atom = 0x3309 - Action Atom = 0x1f606 - Address Atom = 0x4f307 - Align Atom = 0x1105 - Alt Atom = 0x4503 - Annotation Atom = 0x1670a - AnnotationXml Atom = 0x1670e - Applet Atom = 0x2b306 - Area Atom = 0x2fa04 - Article Atom = 0x38807 - Aside Atom = 0x8305 - Async Atom = 0x7b05 - Audio Atom = 0xa605 - Autocomplete Atom = 0x1fc0c - Autofocus Atom = 0xb309 - Autoplay Atom = 0xce08 - B Atom = 0x101 - Base Atom = 0xd604 - Basefont Atom = 0xd608 - Bdi Atom = 0x1a03 - Bdo Atom = 0xe703 - Bgsound Atom = 0x11807 - Big Atom = 0x12403 - Blink Atom = 0x12705 - Blockquote Atom = 0x12c0a - Body Atom = 0x2f04 - Br Atom = 0x202 - Button Atom = 0x13606 - Canvas Atom = 0x7f06 - Caption Atom = 0x1bb07 - Center Atom = 0x5b506 - Challenge Atom = 0x21f09 - Charset Atom = 0x2807 - Checked Atom = 0x32807 - Cite Atom = 0x3c804 - Class Atom = 0x4de05 - Code Atom = 0x14904 - Col Atom = 0x15003 - Colgroup Atom = 0x15008 - Color Atom = 0x15d05 - Cols Atom = 0x16204 - Colspan Atom = 0x16207 - Command Atom = 0x17507 - Content Atom = 0x42307 - Contenteditable Atom = 0x4230f - Contextmenu Atom = 0x3310b - Controls Atom = 0x18808 - Coords Atom = 0x19406 - Crossorigin Atom = 0x19f0b - Data Atom = 0x44a04 - Datalist Atom = 0x44a08 - Datetime Atom = 0x23c08 - Dd Atom = 0x26702 - Default Atom = 0x8607 - Defer Atom = 0x14b05 - Del Atom = 0x3ef03 - Desc Atom = 0x4db04 - Details Atom = 0x4807 - Dfn Atom = 0x6103 - Dialog Atom = 0x1b06 - Dir Atom = 0x6903 - Dirname Atom = 0x6907 - Disabled Atom = 0x10c08 - Div Atom = 0x11303 - Dl Atom = 0x11e02 - Download Atom = 0x40008 - Draggable Atom = 0x17b09 - Dropzone Atom = 0x39108 - Dt Atom = 0x50902 - Em Atom = 0x6502 - Embed Atom = 0x6505 - Enctype Atom = 0x21107 - Face Atom = 0x5b304 - Fieldset Atom = 0x1b008 - Figcaption Atom = 0x1b80a - Figure Atom = 0x1cc06 - Font Atom = 0xda04 - Footer Atom = 0x8d06 - For Atom = 0x1d803 - ForeignObject Atom = 0x1d80d - Foreignobject Atom = 0x1e50d - Form Atom = 0x1f204 - Formaction Atom = 0x1f20a - Formenctype Atom = 0x20d0b - Formmethod Atom = 0x2280a - Formnovalidate Atom = 0x2320e - Formtarget Atom = 0x2470a - Frame Atom = 0x9a05 - Frameset Atom = 0x9a08 - H1 Atom = 0x26e02 - H2 Atom = 0x29402 - H3 Atom = 0x2a702 - H4 Atom = 0x2e902 - H5 Atom = 0x2f302 - H6 Atom = 0x50b02 - Head Atom = 0x2d504 - Header Atom = 0x2d506 - Headers Atom = 0x2d507 - Height Atom = 0x25106 - Hgroup Atom = 0x25906 - Hidden Atom = 0x26506 - High Atom = 0x26b04 - Hr Atom = 0x27002 - Href Atom = 0x27004 - Hreflang Atom = 0x27008 - Html Atom = 0x25504 - HttpEquiv Atom = 0x2780a - I Atom = 0x601 - Icon Atom = 0x42204 - Id Atom = 0x8502 - Iframe Atom = 0x29606 - Image Atom = 0x29c05 - Img Atom = 0x2a103 - Input Atom = 0x3e805 - Inputmode Atom = 0x3e809 - Ins Atom = 0x1a803 - Isindex Atom = 0x2a907 - Ismap Atom = 0x2b005 - Itemid Atom = 0x33c06 - Itemprop Atom = 0x3c908 - Itemref Atom = 0x5ad07 - Itemscope Atom = 0x2b909 - Itemtype Atom = 0x2c308 - Kbd Atom = 0x1903 - Keygen Atom = 0x3906 - Keytype Atom = 0x53707 - Kind Atom = 0x10904 - Label Atom = 0xf005 - Lang Atom = 0x27404 - Legend Atom = 0x18206 - Li Atom = 0x1202 - Link Atom = 0x12804 - List Atom = 0x44e04 - Listing Atom = 0x44e07 - Loop Atom = 0xf404 - Low Atom = 0x11f03 - Malignmark Atom = 0x100a - Manifest Atom = 0x5f108 - Map Atom = 0x2b203 - Mark Atom = 0x1604 - Marquee Atom = 0x2cb07 - Math Atom = 0x2d204 - Max Atom = 0x2e103 - Maxlength Atom = 0x2e109 - Media Atom = 0x6e05 - Mediagroup Atom = 0x6e0a - Menu Atom = 0x33804 - Menuitem Atom = 0x33808 - Meta Atom = 0x45d04 - Meter Atom = 0x24205 - Method Atom = 0x22c06 - Mglyph Atom = 0x2a206 - Mi Atom = 0x2eb02 - Min Atom = 0x2eb03 - Minlength Atom = 0x2eb09 - Mn Atom = 0x23502 - Mo Atom = 0x3ed02 - Ms Atom = 0x2bc02 - Mtext Atom = 0x2f505 - Multiple Atom = 0x30308 - Muted Atom = 0x30b05 - Name Atom = 0x6c04 - Nav Atom = 0x3e03 - Nobr Atom = 0x5704 - Noembed Atom = 0x6307 - Noframes Atom = 0x9808 - Noscript Atom = 0x3d208 - Novalidate Atom = 0x2360a - Object Atom = 0x1ec06 - Ol Atom = 0xc902 - Onabort Atom = 0x13a07 - Onafterprint Atom = 0x1c00c - Onautocomplete Atom = 0x1fa0e - Onautocompleteerror Atom = 0x1fa13 - Onbeforeprint Atom = 0x6040d - Onbeforeunload Atom = 0x4e70e - Onblur Atom = 0xaa06 - Oncancel Atom = 0xe908 - Oncanplay Atom = 0x28509 - Oncanplaythrough Atom = 0x28510 - Onchange Atom = 0x3a708 - Onclick Atom = 0x31007 - Onclose Atom = 0x31707 - Oncontextmenu Atom = 0x32f0d - Oncuechange Atom = 0x3420b - Ondblclick Atom = 0x34d0a - Ondrag Atom = 0x35706 - Ondragend Atom = 0x35709 - Ondragenter Atom = 0x3600b - Ondragleave Atom = 0x36b0b - Ondragover Atom = 0x3760a - Ondragstart Atom = 0x3800b - Ondrop Atom = 0x38f06 - Ondurationchange Atom = 0x39f10 - Onemptied Atom = 0x39609 - Onended Atom = 0x3af07 - Onerror Atom = 0x3b607 - Onfocus Atom = 0x3bd07 - Onhashchange Atom = 0x3da0c - Oninput Atom = 0x3e607 - Oninvalid Atom = 0x3f209 - Onkeydown Atom = 0x3fb09 - Onkeypress Atom = 0x4080a - Onkeyup Atom = 0x41807 - Onlanguagechange Atom = 0x43210 - Onload Atom = 0x44206 - Onloadeddata Atom = 0x4420c - Onloadedmetadata Atom = 0x45510 - Onloadstart Atom = 0x46b0b - Onmessage Atom = 0x47609 - Onmousedown Atom = 0x47f0b - Onmousemove Atom = 0x48a0b - Onmouseout Atom = 0x4950a - Onmouseover Atom = 0x4a20b - Onmouseup Atom = 0x4ad09 - Onmousewheel Atom = 0x4b60c - Onoffline Atom = 0x4c209 - Ononline Atom = 0x4cb08 - Onpagehide Atom = 0x4d30a - Onpageshow Atom = 0x4fe0a - Onpause Atom = 0x50d07 - Onplay Atom = 0x51706 - Onplaying Atom = 0x51709 - Onpopstate Atom = 0x5200a - Onprogress Atom = 0x52a0a - Onratechange Atom = 0x53e0c - Onreset Atom = 0x54a07 - Onresize Atom = 0x55108 - Onscroll Atom = 0x55f08 - Onseeked Atom = 0x56708 - Onseeking Atom = 0x56f09 - Onselect Atom = 0x57808 - Onshow Atom = 0x58206 - Onsort Atom = 0x58b06 - Onstalled Atom = 0x59509 - Onstorage Atom = 0x59e09 - Onsubmit Atom = 0x5a708 - Onsuspend Atom = 0x5bb09 - Ontimeupdate Atom = 0xdb0c - Ontoggle Atom = 0x5c408 - Onunload Atom = 0x5cc08 - Onvolumechange Atom = 0x5d40e - Onwaiting Atom = 0x5e209 - Open Atom = 0x3cf04 - Optgroup Atom = 0xf608 - Optimum Atom = 0x5eb07 - Option Atom = 0x60006 - Output Atom = 0x49c06 - P Atom = 0xc01 - Param Atom = 0xc05 - Pattern Atom = 0x5107 - Ping Atom = 0x7704 - Placeholder Atom = 0xc30b - Plaintext Atom = 0xfd09 - Poster Atom = 0x15706 - Pre Atom = 0x25e03 - Preload Atom = 0x25e07 - Progress Atom = 0x52c08 - Prompt Atom = 0x5fa06 - Public Atom = 0x41e06 - Q Atom = 0x13101 - Radiogroup Atom = 0x30a - Readonly Atom = 0x2fb08 - Rel Atom = 0x25f03 - Required Atom = 0x1d008 - Reversed Atom = 0x5a08 - Rows Atom = 0x9204 - Rowspan Atom = 0x9207 - Rp Atom = 0x1c602 - Rt Atom = 0x13f02 - Ruby Atom = 0xaf04 - S Atom = 0x2c01 - Samp Atom = 0x4e04 - Sandbox Atom = 0xbb07 - Scope Atom = 0x2bd05 - Scoped Atom = 0x2bd06 - Script Atom = 0x3d406 - Seamless Atom = 0x31c08 - Section Atom = 0x4e207 - Select Atom = 0x57a06 - Selected Atom = 0x57a08 - Shape Atom = 0x4f905 - Size Atom = 0x55504 - Sizes Atom = 0x55505 - Small Atom = 0x18f05 - Sortable Atom = 0x58d08 - Sorted Atom = 0x19906 - Source Atom = 0x1aa06 - Spacer Atom = 0x2db06 - Span Atom = 0x9504 - Spellcheck Atom = 0x3230a - Src Atom = 0x3c303 - Srcdoc Atom = 0x3c306 - Srclang Atom = 0x41107 - Start Atom = 0x38605 - Step Atom = 0x5f704 - Strike Atom = 0x53306 - Strong Atom = 0x55906 - Style Atom = 0x61105 - Sub Atom = 0x5a903 - Summary Atom = 0x61607 - Sup Atom = 0x61d03 - Svg Atom = 0x62003 - System Atom = 0x62306 - Tabindex Atom = 0x46308 - Table Atom = 0x42d05 - Target Atom = 0x24b06 - Tbody Atom = 0x2e05 - Td Atom = 0x4702 - Template Atom = 0x62608 - Textarea Atom = 0x2f608 - Tfoot Atom = 0x8c05 - Th Atom = 0x22e02 - Thead Atom = 0x2d405 - Time Atom = 0xdd04 - Title Atom = 0xa105 - Tr Atom = 0x10502 - Track Atom = 0x10505 - Translate Atom = 0x14009 - Tt Atom = 0x5302 - Type Atom = 0x21404 - Typemustmatch Atom = 0x2140d - U Atom = 0xb01 - Ul Atom = 0x8a02 - Usemap Atom = 0x51106 - Value Atom = 0x4005 - Var Atom = 0x11503 - Video Atom = 0x28105 - Wbr Atom = 0x12103 - Width Atom = 0x50705 - Wrap Atom = 0x58704 - Xmp Atom = 0xc103 -) - -const hash0 = 0xc17da63e - -const maxAtomLen = 19 - -var table = [1 << 9]Atom{ - 0x1: 0x48a0b, // onmousemove - 0x2: 0x5e209, // onwaiting - 0x3: 0x1fa13, // onautocompleteerror - 0x4: 0x5fa06, // prompt - 0x7: 0x5eb07, // optimum - 0x8: 0x1604, // mark - 0xa: 0x5ad07, // itemref - 0xb: 0x4fe0a, // onpageshow - 0xc: 0x57a06, // select - 0xd: 0x17b09, // draggable - 0xe: 0x3e03, // nav - 0xf: 0x17507, // command - 0x11: 0xb01, // u - 0x14: 0x2d507, // headers - 0x15: 0x44a08, // datalist - 0x17: 0x4e04, // samp - 0x1a: 0x3fb09, // onkeydown - 0x1b: 0x55f08, // onscroll - 0x1c: 0x15003, // col - 0x20: 0x3c908, // itemprop - 0x21: 0x2780a, // http-equiv - 0x22: 0x61d03, // sup - 0x24: 0x1d008, // required - 0x2b: 0x25e07, // preload - 0x2c: 0x6040d, // onbeforeprint - 0x2d: 0x3600b, // ondragenter - 0x2e: 0x50902, // dt - 0x2f: 0x5a708, // onsubmit - 0x30: 0x27002, // hr - 0x31: 0x32f0d, // oncontextmenu - 0x33: 0x29c05, // image - 0x34: 0x50d07, // onpause - 0x35: 0x25906, // hgroup - 0x36: 0x7704, // ping - 0x37: 0x57808, // onselect - 0x3a: 0x11303, // div - 0x3b: 0x1fa0e, // onautocomplete - 0x40: 0x2eb02, // mi - 0x41: 0x31c08, // seamless - 0x42: 0x2807, // charset - 0x43: 0x8502, // id - 0x44: 0x5200a, // onpopstate - 0x45: 0x3ef03, // del - 0x46: 0x2cb07, // marquee - 0x47: 0x3309, // accesskey - 0x49: 0x8d06, // footer - 0x4a: 0x44e04, // list - 0x4b: 0x2b005, // ismap - 0x51: 0x33804, // menu - 0x52: 0x2f04, // body - 0x55: 0x9a08, // frameset - 0x56: 0x54a07, // onreset - 0x57: 0x12705, // blink - 0x58: 0xa105, // title - 0x59: 0x38807, // article - 0x5b: 0x22e02, // th - 0x5d: 0x13101, // q - 0x5e: 0x3cf04, // open - 0x5f: 0x2fa04, // area - 0x61: 0x44206, // onload - 0x62: 0xda04, // font - 0x63: 0xd604, // base - 0x64: 0x16207, // colspan - 0x65: 0x53707, // keytype - 0x66: 0x11e02, // dl - 0x68: 0x1b008, // fieldset - 0x6a: 0x2eb03, // min - 0x6b: 0x11503, // var - 0x6f: 0x2d506, // header - 0x70: 0x13f02, // rt - 0x71: 0x15008, // colgroup - 0x72: 0x23502, // mn - 0x74: 0x13a07, // onabort - 0x75: 0x3906, // keygen - 0x76: 0x4c209, // onoffline - 0x77: 0x21f09, // challenge - 0x78: 0x2b203, // map - 0x7a: 0x2e902, // h4 - 0x7b: 0x3b607, // onerror - 0x7c: 0x2e109, // maxlength - 0x7d: 0x2f505, // mtext - 0x7e: 0xbb07, // sandbox - 0x7f: 0x58b06, // onsort - 0x80: 0x100a, // malignmark - 0x81: 0x45d04, // meta - 0x82: 0x7b05, // async - 0x83: 0x2a702, // h3 - 0x84: 0x26702, // dd - 0x85: 0x27004, // href - 0x86: 0x6e0a, // mediagroup - 0x87: 0x19406, // coords - 0x88: 0x41107, // srclang - 0x89: 0x34d0a, // ondblclick - 0x8a: 0x4005, // value - 0x8c: 0xe908, // oncancel - 0x8e: 0x3230a, // spellcheck - 0x8f: 0x9a05, // frame - 0x91: 0x12403, // big - 0x94: 0x1f606, // action - 0x95: 0x6903, // dir - 0x97: 0x2fb08, // readonly - 0x99: 0x42d05, // table - 0x9a: 0x61607, // summary - 0x9b: 0x12103, // wbr - 0x9c: 0x30a, // radiogroup - 0x9d: 0x6c04, // name - 0x9f: 0x62306, // system - 0xa1: 0x15d05, // color - 0xa2: 0x7f06, // canvas - 0xa3: 0x25504, // html - 0xa5: 0x56f09, // onseeking - 0xac: 0x4f905, // shape - 0xad: 0x25f03, // rel - 0xae: 0x28510, // oncanplaythrough - 0xaf: 0x3760a, // ondragover - 0xb0: 0x62608, // template - 0xb1: 0x1d80d, // foreignObject - 0xb3: 0x9204, // rows - 0xb6: 0x44e07, // listing - 0xb7: 0x49c06, // output - 0xb9: 0x3310b, // contextmenu - 0xbb: 0x11f03, // low - 0xbc: 0x1c602, // rp - 0xbd: 0x5bb09, // onsuspend - 0xbe: 0x13606, // button - 0xbf: 0x4db04, // desc - 0xc1: 0x4e207, // section - 0xc2: 0x52a0a, // onprogress - 0xc3: 0x59e09, // onstorage - 0xc4: 0x2d204, // math - 0xc5: 0x4503, // alt - 0xc7: 0x8a02, // ul - 0xc8: 0x5107, // pattern - 0xc9: 0x4b60c, // onmousewheel - 0xca: 0x35709, // ondragend - 0xcb: 0xaf04, // ruby - 0xcc: 0xc01, // p - 0xcd: 0x31707, // onclose - 0xce: 0x24205, // meter - 0xcf: 0x11807, // bgsound - 0xd2: 0x25106, // height - 0xd4: 0x101, // b - 0xd5: 0x2c308, // itemtype - 0xd8: 0x1bb07, // caption - 0xd9: 0x10c08, // disabled - 0xdb: 0x33808, // menuitem - 0xdc: 0x62003, // svg - 0xdd: 0x18f05, // small - 0xde: 0x44a04, // data - 0xe0: 0x4cb08, // ononline - 0xe1: 0x2a206, // mglyph - 0xe3: 0x6505, // embed - 0xe4: 0x10502, // tr - 0xe5: 0x46b0b, // onloadstart - 0xe7: 0x3c306, // srcdoc - 0xeb: 0x5c408, // ontoggle - 0xed: 0xe703, // bdo - 0xee: 0x4702, // td - 0xef: 0x8305, // aside - 0xf0: 0x29402, // h2 - 0xf1: 0x52c08, // progress - 0xf2: 0x12c0a, // blockquote - 0xf4: 0xf005, // label - 0xf5: 0x601, // i - 0xf7: 0x9207, // rowspan - 0xfb: 0x51709, // onplaying - 0xfd: 0x2a103, // img - 0xfe: 0xf608, // optgroup - 0xff: 0x42307, // content - 0x101: 0x53e0c, // onratechange - 0x103: 0x3da0c, // onhashchange - 0x104: 0x4807, // details - 0x106: 0x40008, // download - 0x109: 0x14009, // translate - 0x10b: 0x4230f, // contenteditable - 0x10d: 0x36b0b, // ondragleave - 0x10e: 0x2106, // accept - 0x10f: 0x57a08, // selected - 0x112: 0x1f20a, // formaction - 0x113: 0x5b506, // center - 0x115: 0x45510, // onloadedmetadata - 0x116: 0x12804, // link - 0x117: 0xdd04, // time - 0x118: 0x19f0b, // crossorigin - 0x119: 0x3bd07, // onfocus - 0x11a: 0x58704, // wrap - 0x11b: 0x42204, // icon - 0x11d: 0x28105, // video - 0x11e: 0x4de05, // class - 0x121: 0x5d40e, // onvolumechange - 0x122: 0xaa06, // onblur - 0x123: 0x2b909, // itemscope - 0x124: 0x61105, // style - 0x127: 0x41e06, // public - 0x129: 0x2320e, // formnovalidate - 0x12a: 0x58206, // onshow - 0x12c: 0x51706, // onplay - 0x12d: 0x3c804, // cite - 0x12e: 0x2bc02, // ms - 0x12f: 0xdb0c, // ontimeupdate - 0x130: 0x10904, // kind - 0x131: 0x2470a, // formtarget - 0x135: 0x3af07, // onended - 0x136: 0x26506, // hidden - 0x137: 0x2c01, // s - 0x139: 0x2280a, // formmethod - 0x13a: 0x3e805, // input - 0x13c: 0x50b02, // h6 - 0x13d: 0xc902, // ol - 0x13e: 0x3420b, // oncuechange - 0x13f: 0x1e50d, // foreignobject - 0x143: 0x4e70e, // onbeforeunload - 0x144: 0x2bd05, // scope - 0x145: 0x39609, // onemptied - 0x146: 0x14b05, // defer - 0x147: 0xc103, // xmp - 0x148: 0x39f10, // ondurationchange - 0x149: 0x1903, // kbd - 0x14c: 0x47609, // onmessage - 0x14d: 0x60006, // option - 0x14e: 0x2eb09, // minlength - 0x14f: 0x32807, // checked - 0x150: 0xce08, // autoplay - 0x152: 0x202, // br - 0x153: 0x2360a, // novalidate - 0x156: 0x6307, // noembed - 0x159: 0x31007, // onclick - 0x15a: 0x47f0b, // onmousedown - 0x15b: 0x3a708, // onchange - 0x15e: 0x3f209, // oninvalid - 0x15f: 0x2bd06, // scoped - 0x160: 0x18808, // controls - 0x161: 0x30b05, // muted - 0x162: 0x58d08, // sortable - 0x163: 0x51106, // usemap - 0x164: 0x1b80a, // figcaption - 0x165: 0x35706, // ondrag - 0x166: 0x26b04, // high - 0x168: 0x3c303, // src - 0x169: 0x15706, // poster - 0x16b: 0x1670e, // annotation-xml - 0x16c: 0x5f704, // step - 0x16d: 0x4, // abbr - 0x16e: 0x1b06, // dialog - 0x170: 0x1202, // li - 0x172: 0x3ed02, // mo - 0x175: 0x1d803, // for - 0x176: 0x1a803, // ins - 0x178: 0x55504, // size - 0x179: 0x43210, // onlanguagechange - 0x17a: 0x8607, // default - 0x17b: 0x1a03, // bdi - 0x17c: 0x4d30a, // onpagehide - 0x17d: 0x6907, // dirname - 0x17e: 0x21404, // type - 0x17f: 0x1f204, // form - 0x181: 0x28509, // oncanplay - 0x182: 0x6103, // dfn - 0x183: 0x46308, // tabindex - 0x186: 0x6502, // em - 0x187: 0x27404, // lang - 0x189: 0x39108, // dropzone - 0x18a: 0x4080a, // onkeypress - 0x18b: 0x23c08, // datetime - 0x18c: 0x16204, // cols - 0x18d: 0x1, // a - 0x18e: 0x4420c, // onloadeddata - 0x190: 0xa605, // audio - 0x192: 0x2e05, // tbody - 0x193: 0x22c06, // method - 0x195: 0xf404, // loop - 0x196: 0x29606, // iframe - 0x198: 0x2d504, // head - 0x19e: 0x5f108, // manifest - 0x19f: 0xb309, // autofocus - 0x1a0: 0x14904, // code - 0x1a1: 0x55906, // strong - 0x1a2: 0x30308, // multiple - 0x1a3: 0xc05, // param - 0x1a6: 0x21107, // enctype - 0x1a7: 0x5b304, // face - 0x1a8: 0xfd09, // plaintext - 0x1a9: 0x26e02, // h1 - 0x1aa: 0x59509, // onstalled - 0x1ad: 0x3d406, // script - 0x1ae: 0x2db06, // spacer - 0x1af: 0x55108, // onresize - 0x1b0: 0x4a20b, // onmouseover - 0x1b1: 0x5cc08, // onunload - 0x1b2: 0x56708, // onseeked - 0x1b4: 0x2140d, // typemustmatch - 0x1b5: 0x1cc06, // figure - 0x1b6: 0x4950a, // onmouseout - 0x1b7: 0x25e03, // pre - 0x1b8: 0x50705, // width - 0x1b9: 0x19906, // sorted - 0x1bb: 0x5704, // nobr - 0x1be: 0x5302, // tt - 0x1bf: 0x1105, // align - 0x1c0: 0x3e607, // oninput - 0x1c3: 0x41807, // onkeyup - 0x1c6: 0x1c00c, // onafterprint - 0x1c7: 0x210e, // accept-charset - 0x1c8: 0x33c06, // itemid - 0x1c9: 0x3e809, // inputmode - 0x1cb: 0x53306, // strike - 0x1cc: 0x5a903, // sub - 0x1cd: 0x10505, // track - 0x1ce: 0x38605, // start - 0x1d0: 0xd608, // basefont - 0x1d6: 0x1aa06, // source - 0x1d7: 0x18206, // legend - 0x1d8: 0x2d405, // thead - 0x1da: 0x8c05, // tfoot - 0x1dd: 0x1ec06, // object - 0x1de: 0x6e05, // media - 0x1df: 0x1670a, // annotation - 0x1e0: 0x20d0b, // formenctype - 0x1e2: 0x3d208, // noscript - 0x1e4: 0x55505, // sizes - 0x1e5: 0x1fc0c, // autocomplete - 0x1e6: 0x9504, // span - 0x1e7: 0x9808, // noframes - 0x1e8: 0x24b06, // target - 0x1e9: 0x38f06, // ondrop - 0x1ea: 0x2b306, // applet - 0x1ec: 0x5a08, // reversed - 0x1f0: 0x2a907, // isindex - 0x1f3: 0x27008, // hreflang - 0x1f5: 0x2f302, // h5 - 0x1f6: 0x4f307, // address - 0x1fa: 0x2e103, // max - 0x1fb: 0xc30b, // placeholder - 0x1fc: 0x2f608, // textarea - 0x1fe: 0x4ad09, // onmouseup - 0x1ff: 0x3800b, // ondragstart -} - -const atomText = "abbradiogrouparamalignmarkbdialogaccept-charsetbodyaccesskey" + - "genavaluealtdetailsampatternobreversedfnoembedirnamediagroup" + - "ingasyncanvasidefaultfooterowspanoframesetitleaudionblurubya" + - "utofocusandboxmplaceholderautoplaybasefontimeupdatebdoncance" + - "labelooptgrouplaintextrackindisabledivarbgsoundlowbrbigblink" + - "blockquotebuttonabortranslatecodefercolgroupostercolorcolspa" + - "nnotation-xmlcommandraggablegendcontrolsmallcoordsortedcross" + - "originsourcefieldsetfigcaptionafterprintfigurequiredforeignO" + - "bjectforeignobjectformactionautocompleteerrorformenctypemust" + - "matchallengeformmethodformnovalidatetimeterformtargetheightm" + - "lhgroupreloadhiddenhigh1hreflanghttp-equivideoncanplaythroug" + - "h2iframeimageimglyph3isindexismappletitemscopeditemtypemarqu" + - "eematheaderspacermaxlength4minlength5mtextareadonlymultiplem" + - "utedonclickoncloseamlesspellcheckedoncontextmenuitemidoncuec" + - "hangeondblclickondragendondragenterondragleaveondragoverondr" + - "agstarticleondropzonemptiedondurationchangeonendedonerroronf" + - "ocusrcdocitempropenoscriptonhashchangeoninputmodeloninvalido" + - "nkeydownloadonkeypressrclangonkeyupublicontenteditableonlang" + - "uagechangeonloadeddatalistingonloadedmetadatabindexonloadsta" + - "rtonmessageonmousedownonmousemoveonmouseoutputonmouseoveronm" + - "ouseuponmousewheelonofflineononlineonpagehidesclassectionbef" + - "oreunloaddresshapeonpageshowidth6onpausemaponplayingonpopsta" + - "teonprogresstrikeytypeonratechangeonresetonresizestrongonscr" + - "ollonseekedonseekingonselectedonshowraponsortableonstalledon" + - "storageonsubmitemrefacenteronsuspendontoggleonunloadonvolume" + - "changeonwaitingoptimumanifestepromptoptionbeforeprintstylesu" + - "mmarysupsvgsystemplate" diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/table_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/table_test.go deleted file mode 100644 index 0f2ecce4..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom/table_test.go +++ /dev/null @@ -1,351 +0,0 @@ -// generated by go run gen.go -test; DO NOT EDIT - -package atom - -var testAtomList = []string{ - "a", - "abbr", - "abbr", - "accept", - "accept-charset", - "accesskey", - "action", - "address", - "align", - "alt", - "annotation", - "annotation-xml", - "applet", - "area", - "article", - "aside", - "async", - "audio", - "autocomplete", - "autofocus", - "autoplay", - "b", - "base", - "basefont", - "bdi", - "bdo", - "bgsound", - "big", - "blink", - "blockquote", - "body", - "br", - "button", - "canvas", - "caption", - "center", - "challenge", - "charset", - "checked", - "cite", - "cite", - "class", - "code", - "col", - "colgroup", - "color", - "cols", - "colspan", - "command", - "command", - "content", - "contenteditable", - "contextmenu", - "controls", - "coords", - "crossorigin", - "data", - "data", - "datalist", - "datetime", - "dd", - "default", - "defer", - "del", - "desc", - "details", - "dfn", - "dialog", - "dir", - "dirname", - "disabled", - "div", - "dl", - "download", - "draggable", - "dropzone", - "dt", - "em", - "embed", - "enctype", - "face", - "fieldset", - "figcaption", - "figure", - "font", - "footer", - "for", - "foreignObject", - "foreignobject", - "form", - "form", - "formaction", - "formenctype", - "formmethod", - "formnovalidate", - "formtarget", - "frame", - "frameset", - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "head", - "header", - "headers", - "height", - "hgroup", - "hidden", - "high", - "hr", - "href", - "hreflang", - "html", - "http-equiv", - "i", - "icon", - "id", - "iframe", - "image", - "img", - "input", - "inputmode", - "ins", - "isindex", - "ismap", - "itemid", - "itemprop", - "itemref", - "itemscope", - "itemtype", - "kbd", - "keygen", - "keytype", - "kind", - "label", - "label", - "lang", - "legend", - "li", - "link", - "list", - "listing", - "loop", - "low", - "malignmark", - "manifest", - "map", - "mark", - "marquee", - "math", - "max", - "maxlength", - "media", - "mediagroup", - "menu", - "menuitem", - "meta", - "meter", - "method", - "mglyph", - "mi", - "min", - "minlength", - "mn", - "mo", - "ms", - "mtext", - "multiple", - "muted", - "name", - "nav", - "nobr", - "noembed", - "noframes", - "noscript", - "novalidate", - "object", - "ol", - "onabort", - "onafterprint", - "onautocomplete", - "onautocompleteerror", - "onbeforeprint", - "onbeforeunload", - "onblur", - "oncancel", - "oncanplay", - "oncanplaythrough", - "onchange", - "onclick", - "onclose", - "oncontextmenu", - "oncuechange", - "ondblclick", - "ondrag", - "ondragend", - "ondragenter", - "ondragleave", - "ondragover", - "ondragstart", - "ondrop", - "ondurationchange", - "onemptied", - "onended", - "onerror", - "onfocus", - "onhashchange", - "oninput", - "oninvalid", - "onkeydown", - "onkeypress", - "onkeyup", - "onlanguagechange", - "onload", - "onloadeddata", - "onloadedmetadata", - "onloadstart", - "onmessage", - "onmousedown", - "onmousemove", - "onmouseout", - "onmouseover", - "onmouseup", - "onmousewheel", - "onoffline", - "ononline", - "onpagehide", - "onpageshow", - "onpause", - "onplay", - "onplaying", - "onpopstate", - "onprogress", - "onratechange", - "onreset", - "onresize", - "onscroll", - "onseeked", - "onseeking", - "onselect", - "onshow", - "onsort", - "onstalled", - "onstorage", - "onsubmit", - "onsuspend", - "ontimeupdate", - "ontoggle", - "onunload", - "onvolumechange", - "onwaiting", - "open", - "optgroup", - "optimum", - "option", - "output", - "p", - "param", - "pattern", - "ping", - "placeholder", - "plaintext", - "poster", - "pre", - "preload", - "progress", - "prompt", - "public", - "q", - "radiogroup", - "readonly", - "rel", - "required", - "reversed", - "rows", - "rowspan", - "rp", - "rt", - "ruby", - "s", - "samp", - "sandbox", - "scope", - "scoped", - "script", - "seamless", - "section", - "select", - "selected", - "shape", - "size", - "sizes", - "small", - "sortable", - "sorted", - "source", - "spacer", - "span", - "span", - "spellcheck", - "src", - "srcdoc", - "srclang", - "start", - "step", - "strike", - "strong", - "style", - "style", - "sub", - "summary", - "sup", - "svg", - "system", - "tabindex", - "table", - "target", - "tbody", - "td", - "template", - "textarea", - "tfoot", - "th", - "thead", - "time", - "title", - "title", - "tr", - "track", - "translate", - "tt", - "type", - "typemustmatch", - "u", - "ul", - "usemap", - "value", - "var", - "video", - "wbr", - "width", - "wrap", - "xmp", -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/charset.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/charset.go deleted file mode 100644 index 150f1863..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/charset.go +++ /dev/null @@ -1,244 +0,0 @@ -// 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 charset provides common text encodings for HTML documents. -// -// The mapping from encoding labels to encodings is defined at -// https://encoding.spec.whatwg.org/. -package charset - -import ( - "bytes" - "fmt" - "io" - "mime" - "strings" - "unicode/utf8" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html" -) - -// Lookup returns the encoding with the specified label, and its canonical -// name. It returns nil and the empty string if label is not one of the -// standard encodings for HTML. Matching is case-insensitive and ignores -// leading and trailing whitespace. -func Lookup(label string) (e encoding.Encoding, name string) { - label = strings.ToLower(strings.Trim(label, "\t\n\r\f ")) - enc := encodings[label] - return enc.e, enc.name -} - -// DetermineEncoding determines the encoding of an HTML document by examining -// up to the first 1024 bytes of content and the declared Content-Type. -// -// See http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#determining-the-character-encoding -func DetermineEncoding(content []byte, contentType string) (e encoding.Encoding, name string, certain bool) { - if len(content) > 1024 { - content = content[:1024] - } - - for _, b := range boms { - if bytes.HasPrefix(content, b.bom) { - e, name = Lookup(b.enc) - return e, name, true - } - } - - if _, params, err := mime.ParseMediaType(contentType); err == nil { - if cs, ok := params["charset"]; ok { - if e, name = Lookup(cs); e != nil { - return e, name, true - } - } - } - - if len(content) > 0 { - e, name = prescan(content) - if e != nil { - return e, name, false - } - } - - // Try to detect UTF-8. - // First eliminate any partial rune at the end. - for i := len(content) - 1; i >= 0 && i > len(content)-4; i-- { - b := content[i] - if b < 0x80 { - break - } - if utf8.RuneStart(b) { - content = content[:i] - break - } - } - hasHighBit := false - for _, c := range content { - if c >= 0x80 { - hasHighBit = true - break - } - } - if hasHighBit && utf8.Valid(content) { - return encoding.Nop, "utf-8", false - } - - // TODO: change default depending on user's locale? - return charmap.Windows1252, "windows-1252", false -} - -// NewReader returns an io.Reader that converts the content of r to UTF-8. -// It calls DetermineEncoding to find out what r's encoding is. -func NewReader(r io.Reader, contentType string) (io.Reader, error) { - preview := make([]byte, 1024) - n, err := io.ReadFull(r, preview) - switch { - case err == io.ErrUnexpectedEOF: - preview = preview[:n] - r = bytes.NewReader(preview) - case err != nil: - return nil, err - default: - r = io.MultiReader(bytes.NewReader(preview), r) - } - - if e, _, _ := DetermineEncoding(preview, contentType); e != encoding.Nop { - r = transform.NewReader(r, e.NewDecoder()) - } - return r, nil -} - -// NewReaderLabel returns a reader that converts from the specified charset to -// UTF-8. It uses Lookup to find the encoding that corresponds to label, and -// returns an error if Lookup returns nil. It is suitable for use as -// encoding/xml.Decoder's CharsetReader function. -func NewReaderLabel(label string, input io.Reader) (io.Reader, error) { - e, _ := Lookup(label) - if e == nil { - return nil, fmt.Errorf("unsupported charset: %q", label) - } - return transform.NewReader(input, e.NewDecoder()), nil -} - -func prescan(content []byte) (e encoding.Encoding, name string) { - z := html.NewTokenizer(bytes.NewReader(content)) - for { - switch z.Next() { - case html.ErrorToken: - return nil, "" - - case html.StartTagToken, html.SelfClosingTagToken: - tagName, hasAttr := z.TagName() - if !bytes.Equal(tagName, []byte("meta")) { - continue - } - attrList := make(map[string]bool) - gotPragma := false - - const ( - dontKnow = iota - doNeedPragma - doNotNeedPragma - ) - needPragma := dontKnow - - name = "" - e = nil - for hasAttr { - var key, val []byte - key, val, hasAttr = z.TagAttr() - ks := string(key) - if attrList[ks] { - continue - } - attrList[ks] = true - for i, c := range val { - if 'A' <= c && c <= 'Z' { - val[i] = c + 0x20 - } - } - - switch ks { - case "http-equiv": - if bytes.Equal(val, []byte("content-type")) { - gotPragma = true - } - - case "content": - if e == nil { - name = fromMetaElement(string(val)) - if name != "" { - e, name = Lookup(name) - if e != nil { - needPragma = doNeedPragma - } - } - } - - case "charset": - e, name = Lookup(string(val)) - needPragma = doNotNeedPragma - } - } - - if needPragma == dontKnow || needPragma == doNeedPragma && !gotPragma { - continue - } - - if strings.HasPrefix(name, "utf-16") { - name = "utf-8" - e = encoding.Nop - } - - if e != nil { - return e, name - } - } - } -} - -func fromMetaElement(s string) string { - for s != "" { - csLoc := strings.Index(s, "charset") - if csLoc == -1 { - return "" - } - s = s[csLoc+len("charset"):] - s = strings.TrimLeft(s, " \t\n\f\r") - if !strings.HasPrefix(s, "=") { - continue - } - s = s[1:] - s = strings.TrimLeft(s, " \t\n\f\r") - if s == "" { - return "" - } - if q := s[0]; q == '"' || q == '\'' { - s = s[1:] - closeQuote := strings.IndexRune(s, rune(q)) - if closeQuote == -1 { - return "" - } - return s[:closeQuote] - } - - end := strings.IndexAny(s, "; \t\n\f\r") - if end == -1 { - end = len(s) - } - return s[:end] - } - return "" -} - -var boms = []struct { - bom []byte - enc string -}{ - {[]byte{0xfe, 0xff}, "utf-16be"}, - {[]byte{0xff, 0xfe}, "utf-16le"}, - {[]byte{0xef, 0xbb, 0xbf}, "utf-8"}, -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/charset_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/charset_test.go deleted file mode 100644 index 850d3261..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/charset_test.go +++ /dev/null @@ -1,236 +0,0 @@ -// 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 charset - -import ( - "bytes" - "encoding/xml" - "io/ioutil" - "runtime" - "strings" - "testing" - - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/transform" -) - -func transformString(t transform.Transformer, s string) (string, error) { - r := transform.NewReader(strings.NewReader(s), t) - b, err := ioutil.ReadAll(r) - return string(b), err -} - -var testCases = []struct { - utf8, other, otherEncoding string -}{ - {"Résumé", "Résumé", "utf8"}, - {"Résumé", "R\xe9sum\xe9", "latin1"}, - {"ã“ã‚Œã¯æ¼¢å­—ã§ã™ã€‚", "S0\x8c0o0\"oW[g0Y0\x020", "UTF-16LE"}, - {"ã“ã‚Œã¯æ¼¢å­—ã§ã™ã€‚", "0S0\x8c0oo\"[W0g0Y0\x02", "UTF-16BE"}, - {"Hello, world", "Hello, world", "ASCII"}, - {"GdaÅ„sk", "Gda\xf1sk", "ISO-8859-2"}, - {"Ââ ÄŒÄ ÄÄ‘ ÅŠÅ‹ Õõ Å Å¡ Žž Ã…Ã¥ Ää", "\xc2\xe2 \xc8\xe8 \xa9\xb9 \xaf\xbf \xd5\xf5 \xaa\xba \xac\xbc \xc5\xe5 \xc4\xe4", "ISO-8859-10"}, - {"สำหรับ", "\xca\xd3\xcb\xc3\u047a", "ISO-8859-11"}, - {"latvieÅ¡u", "latvie\xf0u", "ISO-8859-13"}, - {"Seònaid", "Se\xf2naid", "ISO-8859-14"}, - {"€1 is cheap", "\xa41 is cheap", "ISO-8859-15"}, - {"româneÈ™te", "rom\xe2ne\xbate", "ISO-8859-16"}, - {"nutraĵo", "nutra\xbco", "ISO-8859-3"}, - {"Kalâdlit", "Kal\xe2dlit", "ISO-8859-4"}, - {"руÑÑкий", "\xe0\xe3\xe1\xe1\xda\xd8\xd9", "ISO-8859-5"}, - {"ελληνικά", "\xe5\xeb\xeb\xe7\xed\xe9\xea\xdc", "ISO-8859-7"}, - {"KaÄŸan", "Ka\xf0an", "ISO-8859-9"}, - {"Résumé", "R\x8esum\x8e", "macintosh"}, - {"GdaÅ„sk", "Gda\xf1sk", "windows-1250"}, - {"руÑÑкий", "\xf0\xf3\xf1\xf1\xea\xe8\xe9", "windows-1251"}, - {"Résumé", "R\xe9sum\xe9", "windows-1252"}, - {"ελληνικά", "\xe5\xeb\xeb\xe7\xed\xe9\xea\xdc", "windows-1253"}, - {"KaÄŸan", "Ka\xf0an", "windows-1254"}, - {"עִבְרִית", "\xf2\xc4\xe1\xc0\xf8\xc4\xe9\xfa", "windows-1255"}, - {"العربية", "\xc7\xe1\xda\xd1\xc8\xed\xc9", "windows-1256"}, - {"latvieÅ¡u", "latvie\xf0u", "windows-1257"}, - {"Việt", "Vi\xea\xf2t", "windows-1258"}, - {"สำหรับ", "\xca\xd3\xcb\xc3\u047a", "windows-874"}, - {"руÑÑкий", "\xd2\xd5\xd3\xd3\xcb\xc9\xca", "KOI8-R"}, - {"українÑька", "\xd5\xcb\xd2\xc1\xa7\xce\xd3\xd8\xcb\xc1", "KOI8-U"}, - {"Hello 常用國字標準字體表", "Hello \xb1`\xa5\u03b0\xea\xa6r\xbc\u0437\u01e6r\xc5\xe9\xaa\xed", "big5"}, - {"Hello 常用國字標準字體表", "Hello \xb3\xa3\xd3\xc3\x87\xf8\xd7\xd6\x98\xcb\x9c\xca\xd7\xd6\xf3\x77\xb1\xed", "gbk"}, - {"Hello 常用國字標準字體表", "Hello \xb3\xa3\xd3\xc3\x87\xf8\xd7\xd6\x98\xcb\x9c\xca\xd7\xd6\xf3\x77\xb1\xed", "gb18030"}, - {"עִבְרִית", "\x81\x30\xfb\x30\x81\x30\xf6\x34\x81\x30\xf9\x33\x81\x30\xf6\x30\x81\x30\xfb\x36\x81\x30\xf6\x34\x81\x30\xfa\x31\x81\x30\xfb\x38", "gb18030"}, - {"㧯", "\x82\x31\x89\x38", "gb18030"}, - {"ã“ã‚Œã¯æ¼¢å­—ã§ã™ã€‚", "\x82\xb1\x82\xea\x82\xcd\x8a\xbf\x8e\x9a\x82\xc5\x82\xb7\x81B", "SJIS"}, - {"Hello, 世界!", "Hello, \x90\xa2\x8aE!", "SJIS"}, - {"イウエオカ", "\xb2\xb3\xb4\xb5\xb6", "SJIS"}, - {"ã“ã‚Œã¯æ¼¢å­—ã§ã™ã€‚", "\xa4\xb3\xa4\xec\xa4\u03f4\xc1\xbb\xfa\xa4\u01e4\xb9\xa1\xa3", "EUC-JP"}, - {"Hello, 世界!", "Hello, \x1b$B@$3&\x1b(B!", "ISO-2022-JP"}, - {"네ì´íŠ¸ | ì¦ê±°ì›€ì˜ 시작, 슈파스(Spaβ) NATE", "\xb3\xd7\xc0\xcc\xc6\xae | \xc1\xf1\xb0\xc5\xbf\xf2\xc0\xc7 \xbd\xc3\xc0\xdb, \xbd\xb4\xc6\xc4\xbd\xba(Spa\xa5\xe2) NATE", "EUC-KR"}, -} - -func TestDecode(t *testing.T) { - for _, tc := range testCases { - e, _ := Lookup(tc.otherEncoding) - if e == nil { - t.Errorf("%s: not found", tc.otherEncoding) - continue - } - s, err := transformString(e.NewDecoder(), tc.other) - if err != nil { - t.Errorf("%s: decode %q: %v", tc.otherEncoding, tc.other, err) - continue - } - if s != tc.utf8 { - t.Errorf("%s: got %q, want %q", tc.otherEncoding, s, tc.utf8) - } - } -} - -func TestEncode(t *testing.T) { - for _, tc := range testCases { - e, _ := Lookup(tc.otherEncoding) - if e == nil { - t.Errorf("%s: not found", tc.otherEncoding) - continue - } - s, err := transformString(e.NewEncoder(), tc.utf8) - if err != nil { - t.Errorf("%s: encode %q: %s", tc.otherEncoding, tc.utf8, err) - continue - } - if s != tc.other { - t.Errorf("%s: got %q, want %q", tc.otherEncoding, s, tc.other) - } - } -} - -// TestNames verifies that you can pass an encoding's name to Lookup and get -// the same encoding back (except for "replacement"). -func TestNames(t *testing.T) { - for _, e := range encodings { - if e.name == "replacement" { - continue - } - _, got := Lookup(e.name) - if got != e.name { - t.Errorf("got %q, want %q", got, e.name) - continue - } - } -} - -var sniffTestCases = []struct { - filename, declared, want string -}{ - {"HTTP-charset.html", "text/html; charset=iso-8859-15", "iso-8859-15"}, - {"UTF-16LE-BOM.html", "", "utf-16le"}, - {"UTF-16BE-BOM.html", "", "utf-16be"}, - {"meta-content-attribute.html", "text/html", "iso-8859-15"}, - {"meta-charset-attribute.html", "text/html", "iso-8859-15"}, - {"No-encoding-declaration.html", "text/html", "utf-8"}, - {"HTTP-vs-UTF-8-BOM.html", "text/html; charset=iso-8859-15", "utf-8"}, - {"HTTP-vs-meta-content.html", "text/html; charset=iso-8859-15", "iso-8859-15"}, - {"HTTP-vs-meta-charset.html", "text/html; charset=iso-8859-15", "iso-8859-15"}, - {"UTF-8-BOM-vs-meta-content.html", "text/html", "utf-8"}, - {"UTF-8-BOM-vs-meta-charset.html", "text/html", "utf-8"}, -} - -func TestSniff(t *testing.T) { - switch runtime.GOOS { - case "nacl": // platforms that don't permit direct file system access - t.Skipf("not supported on %q", runtime.GOOS) - } - - for _, tc := range sniffTestCases { - content, err := ioutil.ReadFile("testdata/" + tc.filename) - if err != nil { - t.Errorf("%s: error reading file: %v", tc.filename, err) - continue - } - - _, name, _ := DetermineEncoding(content, tc.declared) - if name != tc.want { - t.Errorf("%s: got %q, want %q", tc.filename, name, tc.want) - continue - } - } -} - -func TestReader(t *testing.T) { - switch runtime.GOOS { - case "nacl": // platforms that don't permit direct file system access - t.Skipf("not supported on %q", runtime.GOOS) - } - - for _, tc := range sniffTestCases { - content, err := ioutil.ReadFile("testdata/" + tc.filename) - if err != nil { - t.Errorf("%s: error reading file: %v", tc.filename, err) - continue - } - - r, err := NewReader(bytes.NewReader(content), tc.declared) - if err != nil { - t.Errorf("%s: error creating reader: %v", tc.filename, err) - continue - } - - got, err := ioutil.ReadAll(r) - if err != nil { - t.Errorf("%s: error reading from charset.NewReader: %v", tc.filename, err) - continue - } - - e, _ := Lookup(tc.want) - want, err := ioutil.ReadAll(transform.NewReader(bytes.NewReader(content), e.NewDecoder())) - if err != nil { - t.Errorf("%s: error decoding with hard-coded charset name: %v", tc.filename, err) - continue - } - - if !bytes.Equal(got, want) { - t.Errorf("%s: got %q, want %q", tc.filename, got, want) - continue - } - } -} - -var metaTestCases = []struct { - meta, want string -}{ - {"", ""}, - {"text/html", ""}, - {"text/html; charset utf-8", ""}, - {"text/html; charset=latin-2", "latin-2"}, - {"text/html; charset; charset = utf-8", "utf-8"}, - {`charset="big5"`, "big5"}, - {"charset='shift_jis'", "shift_jis"}, -} - -func TestFromMeta(t *testing.T) { - for _, tc := range metaTestCases { - got := fromMetaElement(tc.meta) - if got != tc.want { - t.Errorf("%q: got %q, want %q", tc.meta, got, tc.want) - } - } -} - -func TestXML(t *testing.T) { - const s = "<?xml version=\"1.0\" encoding=\"windows-1252\"?><a><Word>r\xe9sum\xe9</Word></a>" - - d := xml.NewDecoder(strings.NewReader(s)) - d.CharsetReader = NewReaderLabel - - var a struct { - Word string - } - err := d.Decode(&a) - if err != nil { - t.Fatalf("Decode: %v", err) - } - - want := "résumé" - if a.Word != want { - t.Errorf("got %q, want %q", a.Word, want) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/gen.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/gen.go deleted file mode 100644 index 828347f4..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/gen.go +++ /dev/null @@ -1,111 +0,0 @@ -// 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. - -// +build ignore - -package main - -// Download https://encoding.spec.whatwg.org/encodings.json and use it to -// generate table.go. - -import ( - "encoding/json" - "fmt" - "log" - "net/http" - "strings" -) - -type enc struct { - Name string - Labels []string -} - -type group struct { - Encodings []enc - Heading string -} - -const specURL = "https://encoding.spec.whatwg.org/encodings.json" - -func main() { - resp, err := http.Get(specURL) - if err != nil { - log.Fatalf("error fetching %s: %s", specURL, err) - } - if resp.StatusCode != 200 { - log.Fatalf("error fetching %s: HTTP status %s", specURL, resp.Status) - } - defer resp.Body.Close() - - var groups []group - d := json.NewDecoder(resp.Body) - err = d.Decode(&groups) - if err != nil { - log.Fatalf("error reading encodings.json: %s", err) - } - - fmt.Println("// generated by go run gen.go; DO NOT EDIT") - fmt.Println() - fmt.Println("package charset") - fmt.Println() - - fmt.Println("import (") - fmt.Println(`"golang.org/x/text/encoding"`) - for _, pkg := range []string{"charmap", "japanese", "korean", "simplifiedchinese", "traditionalchinese", "unicode"} { - fmt.Printf("\"golang.org/x/text/encoding/%s\"\n", pkg) - } - fmt.Println(")") - fmt.Println() - - fmt.Println("var encodings = map[string]struct{e encoding.Encoding; name string} {") - for _, g := range groups { - for _, e := range g.Encodings { - goName, ok := miscNames[e.Name] - if !ok { - for k, v := range prefixes { - if strings.HasPrefix(e.Name, k) { - goName = v + e.Name[len(k):] - break - } - } - if goName == "" { - log.Fatalf("unrecognized encoding name: %s", e.Name) - } - } - - for _, label := range e.Labels { - fmt.Printf("%q: {%s, %q},\n", label, goName, e.Name) - } - } - } - fmt.Println("}") -} - -var prefixes = map[string]string{ - "iso-8859-": "charmap.ISO8859_", - "windows-": "charmap.Windows", -} - -var miscNames = map[string]string{ - "utf-8": "encoding.Nop", - "ibm866": "charmap.CodePage866", - "iso-8859-8-i": "charmap.ISO8859_8", - "koi8-r": "charmap.KOI8R", - "koi8-u": "charmap.KOI8U", - "macintosh": "charmap.Macintosh", - "x-mac-cyrillic": "charmap.MacintoshCyrillic", - "gbk": "simplifiedchinese.GBK", - "gb18030": "simplifiedchinese.GB18030", - "hz-gb-2312": "simplifiedchinese.HZGB2312", - "big5": "traditionalchinese.Big5", - "euc-jp": "japanese.EUCJP", - "iso-2022-jp": "japanese.ISO2022JP", - "shift_jis": "japanese.ShiftJIS", - "euc-kr": "korean.EUCKR", - "replacement": "encoding.Replacement", - "utf-16be": "unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM)", - "utf-16le": "unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM)", - "x-user-defined": "charmap.XUserDefined", -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/table.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/table.go deleted file mode 100644 index 85f5af6a..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/table.go +++ /dev/null @@ -1,235 +0,0 @@ -// generated by go run gen.go; DO NOT EDIT - -package charset - -import ( - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/charmap" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/japanese" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/korean" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/simplifiedchinese" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/traditionalchinese" - "gx/QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic/go-text/encoding/unicode" -) - -var encodings = map[string]struct { - e encoding.Encoding - name string -}{ - "unicode-1-1-utf-8": {encoding.Nop, "utf-8"}, - "utf-8": {encoding.Nop, "utf-8"}, - "utf8": {encoding.Nop, "utf-8"}, - "866": {charmap.CodePage866, "ibm866"}, - "cp866": {charmap.CodePage866, "ibm866"}, - "csibm866": {charmap.CodePage866, "ibm866"}, - "ibm866": {charmap.CodePage866, "ibm866"}, - "csisolatin2": {charmap.ISO8859_2, "iso-8859-2"}, - "iso-8859-2": {charmap.ISO8859_2, "iso-8859-2"}, - "iso-ir-101": {charmap.ISO8859_2, "iso-8859-2"}, - "iso8859-2": {charmap.ISO8859_2, "iso-8859-2"}, - "iso88592": {charmap.ISO8859_2, "iso-8859-2"}, - "iso_8859-2": {charmap.ISO8859_2, "iso-8859-2"}, - "iso_8859-2:1987": {charmap.ISO8859_2, "iso-8859-2"}, - "l2": {charmap.ISO8859_2, "iso-8859-2"}, - "latin2": {charmap.ISO8859_2, "iso-8859-2"}, - "csisolatin3": {charmap.ISO8859_3, "iso-8859-3"}, - "iso-8859-3": {charmap.ISO8859_3, "iso-8859-3"}, - "iso-ir-109": {charmap.ISO8859_3, "iso-8859-3"}, - "iso8859-3": {charmap.ISO8859_3, "iso-8859-3"}, - "iso88593": {charmap.ISO8859_3, "iso-8859-3"}, - "iso_8859-3": {charmap.ISO8859_3, "iso-8859-3"}, - "iso_8859-3:1988": {charmap.ISO8859_3, "iso-8859-3"}, - "l3": {charmap.ISO8859_3, "iso-8859-3"}, - "latin3": {charmap.ISO8859_3, "iso-8859-3"}, - "csisolatin4": {charmap.ISO8859_4, "iso-8859-4"}, - "iso-8859-4": {charmap.ISO8859_4, "iso-8859-4"}, - "iso-ir-110": {charmap.ISO8859_4, "iso-8859-4"}, - "iso8859-4": {charmap.ISO8859_4, "iso-8859-4"}, - "iso88594": {charmap.ISO8859_4, "iso-8859-4"}, - "iso_8859-4": {charmap.ISO8859_4, "iso-8859-4"}, - "iso_8859-4:1988": {charmap.ISO8859_4, "iso-8859-4"}, - "l4": {charmap.ISO8859_4, "iso-8859-4"}, - "latin4": {charmap.ISO8859_4, "iso-8859-4"}, - "csisolatincyrillic": {charmap.ISO8859_5, "iso-8859-5"}, - "cyrillic": {charmap.ISO8859_5, "iso-8859-5"}, - "iso-8859-5": {charmap.ISO8859_5, "iso-8859-5"}, - "iso-ir-144": {charmap.ISO8859_5, "iso-8859-5"}, - "iso8859-5": {charmap.ISO8859_5, "iso-8859-5"}, - "iso88595": {charmap.ISO8859_5, "iso-8859-5"}, - "iso_8859-5": {charmap.ISO8859_5, "iso-8859-5"}, - "iso_8859-5:1988": {charmap.ISO8859_5, "iso-8859-5"}, - "arabic": {charmap.ISO8859_6, "iso-8859-6"}, - "asmo-708": {charmap.ISO8859_6, "iso-8859-6"}, - "csiso88596e": {charmap.ISO8859_6, "iso-8859-6"}, - "csiso88596i": {charmap.ISO8859_6, "iso-8859-6"}, - "csisolatinarabic": {charmap.ISO8859_6, "iso-8859-6"}, - "ecma-114": {charmap.ISO8859_6, "iso-8859-6"}, - "iso-8859-6": {charmap.ISO8859_6, "iso-8859-6"}, - "iso-8859-6-e": {charmap.ISO8859_6, "iso-8859-6"}, - "iso-8859-6-i": {charmap.ISO8859_6, "iso-8859-6"}, - "iso-ir-127": {charmap.ISO8859_6, "iso-8859-6"}, - "iso8859-6": {charmap.ISO8859_6, "iso-8859-6"}, - "iso88596": {charmap.ISO8859_6, "iso-8859-6"}, - "iso_8859-6": {charmap.ISO8859_6, "iso-8859-6"}, - "iso_8859-6:1987": {charmap.ISO8859_6, "iso-8859-6"}, - "csisolatingreek": {charmap.ISO8859_7, "iso-8859-7"}, - "ecma-118": {charmap.ISO8859_7, "iso-8859-7"}, - "elot_928": {charmap.ISO8859_7, "iso-8859-7"}, - "greek": {charmap.ISO8859_7, "iso-8859-7"}, - "greek8": {charmap.ISO8859_7, "iso-8859-7"}, - "iso-8859-7": {charmap.ISO8859_7, "iso-8859-7"}, - "iso-ir-126": {charmap.ISO8859_7, "iso-8859-7"}, - "iso8859-7": {charmap.ISO8859_7, "iso-8859-7"}, - "iso88597": {charmap.ISO8859_7, "iso-8859-7"}, - "iso_8859-7": {charmap.ISO8859_7, "iso-8859-7"}, - "iso_8859-7:1987": {charmap.ISO8859_7, "iso-8859-7"}, - "sun_eu_greek": {charmap.ISO8859_7, "iso-8859-7"}, - "csiso88598e": {charmap.ISO8859_8, "iso-8859-8"}, - "csisolatinhebrew": {charmap.ISO8859_8, "iso-8859-8"}, - "hebrew": {charmap.ISO8859_8, "iso-8859-8"}, - "iso-8859-8": {charmap.ISO8859_8, "iso-8859-8"}, - "iso-8859-8-e": {charmap.ISO8859_8, "iso-8859-8"}, - "iso-ir-138": {charmap.ISO8859_8, "iso-8859-8"}, - "iso8859-8": {charmap.ISO8859_8, "iso-8859-8"}, - "iso88598": {charmap.ISO8859_8, "iso-8859-8"}, - "iso_8859-8": {charmap.ISO8859_8, "iso-8859-8"}, - "iso_8859-8:1988": {charmap.ISO8859_8, "iso-8859-8"}, - "visual": {charmap.ISO8859_8, "iso-8859-8"}, - "csiso88598i": {charmap.ISO8859_8, "iso-8859-8-i"}, - "iso-8859-8-i": {charmap.ISO8859_8, "iso-8859-8-i"}, - "logical": {charmap.ISO8859_8, "iso-8859-8-i"}, - "csisolatin6": {charmap.ISO8859_10, "iso-8859-10"}, - "iso-8859-10": {charmap.ISO8859_10, "iso-8859-10"}, - "iso-ir-157": {charmap.ISO8859_10, "iso-8859-10"}, - "iso8859-10": {charmap.ISO8859_10, "iso-8859-10"}, - "iso885910": {charmap.ISO8859_10, "iso-8859-10"}, - "l6": {charmap.ISO8859_10, "iso-8859-10"}, - "latin6": {charmap.ISO8859_10, "iso-8859-10"}, - "iso-8859-13": {charmap.ISO8859_13, "iso-8859-13"}, - "iso8859-13": {charmap.ISO8859_13, "iso-8859-13"}, - "iso885913": {charmap.ISO8859_13, "iso-8859-13"}, - "iso-8859-14": {charmap.ISO8859_14, "iso-8859-14"}, - "iso8859-14": {charmap.ISO8859_14, "iso-8859-14"}, - "iso885914": {charmap.ISO8859_14, "iso-8859-14"}, - "csisolatin9": {charmap.ISO8859_15, "iso-8859-15"}, - "iso-8859-15": {charmap.ISO8859_15, "iso-8859-15"}, - "iso8859-15": {charmap.ISO8859_15, "iso-8859-15"}, - "iso885915": {charmap.ISO8859_15, "iso-8859-15"}, - "iso_8859-15": {charmap.ISO8859_15, "iso-8859-15"}, - "l9": {charmap.ISO8859_15, "iso-8859-15"}, - "iso-8859-16": {charmap.ISO8859_16, "iso-8859-16"}, - "cskoi8r": {charmap.KOI8R, "koi8-r"}, - "koi": {charmap.KOI8R, "koi8-r"}, - "koi8": {charmap.KOI8R, "koi8-r"}, - "koi8-r": {charmap.KOI8R, "koi8-r"}, - "koi8_r": {charmap.KOI8R, "koi8-r"}, - "koi8-u": {charmap.KOI8U, "koi8-u"}, - "csmacintosh": {charmap.Macintosh, "macintosh"}, - "mac": {charmap.Macintosh, "macintosh"}, - "macintosh": {charmap.Macintosh, "macintosh"}, - "x-mac-roman": {charmap.Macintosh, "macintosh"}, - "dos-874": {charmap.Windows874, "windows-874"}, - "iso-8859-11": {charmap.Windows874, "windows-874"}, - "iso8859-11": {charmap.Windows874, "windows-874"}, - "iso885911": {charmap.Windows874, "windows-874"}, - "tis-620": {charmap.Windows874, "windows-874"}, - "windows-874": {charmap.Windows874, "windows-874"}, - "cp1250": {charmap.Windows1250, "windows-1250"}, - "windows-1250": {charmap.Windows1250, "windows-1250"}, - "x-cp1250": {charmap.Windows1250, "windows-1250"}, - "cp1251": {charmap.Windows1251, "windows-1251"}, - "windows-1251": {charmap.Windows1251, "windows-1251"}, - "x-cp1251": {charmap.Windows1251, "windows-1251"}, - "ansi_x3.4-1968": {charmap.Windows1252, "windows-1252"}, - "ascii": {charmap.Windows1252, "windows-1252"}, - "cp1252": {charmap.Windows1252, "windows-1252"}, - "cp819": {charmap.Windows1252, "windows-1252"}, - "csisolatin1": {charmap.Windows1252, "windows-1252"}, - "ibm819": {charmap.Windows1252, "windows-1252"}, - "iso-8859-1": {charmap.Windows1252, "windows-1252"}, - "iso-ir-100": {charmap.Windows1252, "windows-1252"}, - "iso8859-1": {charmap.Windows1252, "windows-1252"}, - "iso88591": {charmap.Windows1252, "windows-1252"}, - "iso_8859-1": {charmap.Windows1252, "windows-1252"}, - "iso_8859-1:1987": {charmap.Windows1252, "windows-1252"}, - "l1": {charmap.Windows1252, "windows-1252"}, - "latin1": {charmap.Windows1252, "windows-1252"}, - "us-ascii": {charmap.Windows1252, "windows-1252"}, - "windows-1252": {charmap.Windows1252, "windows-1252"}, - "x-cp1252": {charmap.Windows1252, "windows-1252"}, - "cp1253": {charmap.Windows1253, "windows-1253"}, - "windows-1253": {charmap.Windows1253, "windows-1253"}, - "x-cp1253": {charmap.Windows1253, "windows-1253"}, - "cp1254": {charmap.Windows1254, "windows-1254"}, - "csisolatin5": {charmap.Windows1254, "windows-1254"}, - "iso-8859-9": {charmap.Windows1254, "windows-1254"}, - "iso-ir-148": {charmap.Windows1254, "windows-1254"}, - "iso8859-9": {charmap.Windows1254, "windows-1254"}, - "iso88599": {charmap.Windows1254, "windows-1254"}, - "iso_8859-9": {charmap.Windows1254, "windows-1254"}, - "iso_8859-9:1989": {charmap.Windows1254, "windows-1254"}, - "l5": {charmap.Windows1254, "windows-1254"}, - "latin5": {charmap.Windows1254, "windows-1254"}, - "windows-1254": {charmap.Windows1254, "windows-1254"}, - "x-cp1254": {charmap.Windows1254, "windows-1254"}, - "cp1255": {charmap.Windows1255, "windows-1255"}, - "windows-1255": {charmap.Windows1255, "windows-1255"}, - "x-cp1255": {charmap.Windows1255, "windows-1255"}, - "cp1256": {charmap.Windows1256, "windows-1256"}, - "windows-1256": {charmap.Windows1256, "windows-1256"}, - "x-cp1256": {charmap.Windows1256, "windows-1256"}, - "cp1257": {charmap.Windows1257, "windows-1257"}, - "windows-1257": {charmap.Windows1257, "windows-1257"}, - "x-cp1257": {charmap.Windows1257, "windows-1257"}, - "cp1258": {charmap.Windows1258, "windows-1258"}, - "windows-1258": {charmap.Windows1258, "windows-1258"}, - "x-cp1258": {charmap.Windows1258, "windows-1258"}, - "x-mac-cyrillic": {charmap.MacintoshCyrillic, "x-mac-cyrillic"}, - "x-mac-ukrainian": {charmap.MacintoshCyrillic, "x-mac-cyrillic"}, - "chinese": {simplifiedchinese.GBK, "gbk"}, - "csgb2312": {simplifiedchinese.GBK, "gbk"}, - "csiso58gb231280": {simplifiedchinese.GBK, "gbk"}, - "gb2312": {simplifiedchinese.GBK, "gbk"}, - "gb_2312": {simplifiedchinese.GBK, "gbk"}, - "gb_2312-80": {simplifiedchinese.GBK, "gbk"}, - "gbk": {simplifiedchinese.GBK, "gbk"}, - "iso-ir-58": {simplifiedchinese.GBK, "gbk"}, - "x-gbk": {simplifiedchinese.GBK, "gbk"}, - "gb18030": {simplifiedchinese.GB18030, "gb18030"}, - "hz-gb-2312": {simplifiedchinese.HZGB2312, "hz-gb-2312"}, - "big5": {traditionalchinese.Big5, "big5"}, - "big5-hkscs": {traditionalchinese.Big5, "big5"}, - "cn-big5": {traditionalchinese.Big5, "big5"}, - "csbig5": {traditionalchinese.Big5, "big5"}, - "x-x-big5": {traditionalchinese.Big5, "big5"}, - "cseucpkdfmtjapanese": {japanese.EUCJP, "euc-jp"}, - "euc-jp": {japanese.EUCJP, "euc-jp"}, - "x-euc-jp": {japanese.EUCJP, "euc-jp"}, - "csiso2022jp": {japanese.ISO2022JP, "iso-2022-jp"}, - "iso-2022-jp": {japanese.ISO2022JP, "iso-2022-jp"}, - "csshiftjis": {japanese.ShiftJIS, "shift_jis"}, - "ms_kanji": {japanese.ShiftJIS, "shift_jis"}, - "shift-jis": {japanese.ShiftJIS, "shift_jis"}, - "shift_jis": {japanese.ShiftJIS, "shift_jis"}, - "sjis": {japanese.ShiftJIS, "shift_jis"}, - "windows-31j": {japanese.ShiftJIS, "shift_jis"}, - "x-sjis": {japanese.ShiftJIS, "shift_jis"}, - "cseuckr": {korean.EUCKR, "euc-kr"}, - "csksc56011987": {korean.EUCKR, "euc-kr"}, - "euc-kr": {korean.EUCKR, "euc-kr"}, - "iso-ir-149": {korean.EUCKR, "euc-kr"}, - "korean": {korean.EUCKR, "euc-kr"}, - "ks_c_5601-1987": {korean.EUCKR, "euc-kr"}, - "ks_c_5601-1989": {korean.EUCKR, "euc-kr"}, - "ksc5601": {korean.EUCKR, "euc-kr"}, - "ksc_5601": {korean.EUCKR, "euc-kr"}, - "windows-949": {korean.EUCKR, "euc-kr"}, - "csiso2022kr": {encoding.Replacement, "replacement"}, - "iso-2022-kr": {encoding.Replacement, "replacement"}, - "iso-2022-cn": {encoding.Replacement, "replacement"}, - "iso-2022-cn-ext": {encoding.Replacement, "replacement"}, - "utf-16be": {unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), "utf-16be"}, - "utf-16": {unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), "utf-16le"}, - "utf-16le": {unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), "utf-16le"}, - "x-user-defined": {charmap.XUserDefined, "x-user-defined"}, -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-charset.html b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-charset.html deleted file mode 100644 index 9915fa0e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-charset.html +++ /dev/null @@ -1,48 +0,0 @@ -<!DOCTYPE html> -<html lang="en" > -<head> - <title>HTTP charset - - - - - - - - - - - -

HTTP charset

- - -
- - -
 
- - - - - -
-

The character encoding of a page can be set using the HTTP header charset declaration.

-

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ÜÀÚ. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.

The only character encoding declaration for this HTML file is in the HTTP header, which sets the encoding to ISO 8859-15.

-
-
-
HTML5
-

the-input-byte-stream-001
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-vs-UTF-8-BOM.html b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-vs-UTF-8-BOM.html deleted file mode 100644 index 26e5d8b4..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-vs-UTF-8-BOM.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - HTTP vs UTF-8 BOM - - - - - - - - - - - -

HTTP vs UTF-8 BOM

- - -
- - -
 
- - - - - -
-

A character encoding set in the HTTP header has lower precedence than the UTF-8 signature.

-

The HTTP header attempts to set the character encoding to ISO 8859-15. The page starts with a UTF-8 signature.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ýäè. This matches the sequence of bytes above when they are interpreted as UTF-8. If the class name matches the selector then the test will pass.

If the test is unsuccessful, the characters  should appear at the top of the page. These represent the bytes that make up the UTF-8 signature when encountered in the ISO 8859-15 encoding.

-
-
-
HTML5
-

the-input-byte-stream-034
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-vs-meta-charset.html b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-vs-meta-charset.html deleted file mode 100644 index 2f07e951..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-vs-meta-charset.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - HTTP vs meta charset - - - - - - - - - - - -

HTTP vs meta charset

- - -
- - -
 
- - - - - -
-

The HTTP header has a higher precedence than an encoding declaration in a meta charset attribute.

-

The HTTP header attempts to set the character encoding to ISO 8859-15. The page contains an encoding declaration in a meta charset attribute that attempts to set the character encoding to ISO 8859-1.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ÜÀÚ. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-018
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-vs-meta-content.html b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-vs-meta-content.html deleted file mode 100644 index 6853cdde..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/HTTP-vs-meta-content.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - HTTP vs meta content - - - - - - - - - - - -

HTTP vs meta content

- - -
- - -
 
- - - - - -
-

The HTTP header has a higher precedence than an encoding declaration in a meta content attribute.

-

The HTTP header attempts to set the character encoding to ISO 8859-15. The page contains an encoding declaration in a meta content attribute that attempts to set the character encoding to ISO 8859-1.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ÜÀÚ. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-016
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/No-encoding-declaration.html b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/No-encoding-declaration.html deleted file mode 100644 index 612e26c6..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/No-encoding-declaration.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - No encoding declaration - - - - - - - - - - - -

No encoding declaration

- - -
- - -
 
- - - - - -
-

A page with no encoding information in HTTP, BOM, XML declaration or meta element will be treated as UTF-8.

-

The test on this page contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ýäè. This matches the sequence of bytes above when they are interpreted as UTF-8. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-015
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/README b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/README deleted file mode 100644 index 38ef0f9f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/README +++ /dev/null @@ -1,9 +0,0 @@ -These test cases come from -http://www.w3.org/International/tests/repository/html5/the-input-byte-stream/results-basics - -Distributed under both the W3C Test Suite License -(http://www.w3.org/Consortium/Legal/2008/04-testsuite-license) -and the W3C 3-clause BSD License -(http://www.w3.org/Consortium/Legal/2008/03-bsd-license). -To contribute to a W3C Test Suite, see the policies and contribution -forms (http://www.w3.org/2004/10/27-testcases). diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/UTF-16BE-BOM.html b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/UTF-16BE-BOM.html deleted file mode 100644 index 3abf7a9343c20518e57dfea58b374fb0f4fb58a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2670 zcmcJR?QRoS5Qc}JAoU&=BQ-(7b^;2j8i*i3RV1JlO@;VXIsPurV!WHiDdLW}i`*CO z^UnC>tih=KsVr;H&Y7?C&O3AV(?534uG?e##U9y_y|!QNi4``n+D>d{2lky^LnFNx z?9HrarH$>rwQR_$g)Hk0*&STI*EYq|47~&U9sfUB+ji})9eR{QqCUra7oDsZ5obtB zdxP%<)-$4Q;rSHJiM>U(#ZI=;?n^BC?Dp6lu=~_1-lnX3u03&2BlmQIY>L+!Uq7XoytKw^Q#oZSM?3*J?)&ojG&yzQRkC!Ml5JE?ax;lp_NYEcdUht`ZswOviB~L5hmJ|pXI71nn20w;>vG! zQGB$EE9&wC``&J#_Ym~PgRu-Bd>1!pOp0||k`kr=VJ zfH6I6rmRaeHA7U-A^OTsT+|d2a^i(>DePzZ{)ibXoCBvJnuYrd-3kkN$uy{qQK;=*Y;S87ro12aTgu^i*%f8zC3>a}9DIe4cfxOzsCw&(cqvP9{ud{N6f` z#TNDY(B6@Gpr|uN+%&x^XZjBHdc@2vsM(Tyc2=vshHQ5w+obmp>tuWT(t4BTUGAQw zxeI$UGSLUBg=WFbF;4f@4=^P2AgY@CFn8A`bcC=_&~)fiDe)#cUARRBzJ^k|%X)69 z+{Cb`wq}Rsg%B62CC_tK!AV(W{(MV?#mndR46CU#BUN<{8e?*oT+!pE5wF#O#TR#a z$9qRT)tpbw8zAI~QQJg2C3|6$I%(T(;`zOMy6SO+&;pG=c#2P|P-WZn$$DpWJlC3U z3*nvmz zwP{u~r$L?-m3uqp9I1+#3yE|3M$(s-BEtih=LQ>`qYoiktOop(wi%!;yh%+Rm z{e|xntY<{q!1F1Z6MKtngPm-p-4|H&+3m4AVE3_AyiHm6Tzlf4M(*ht*%YrezJ6kr zHGj45pc?64*$Cm%-zseWMA`x;)v*~jA=i}szqts9xmQkS`M11|(H7bTXAycsXU53+ zJ?120SRZeyiFjW7enPN`bxk$IaWV3o48oJF7D&2ysoY;6(s6%6vVfaYd&mC=erK!) zNGI^7upQgN)53OHe_VE<@J+G8*Y|p*)zB2Thdi}+YR<5QWHm!|a_*AoZXuv7)$xe| zm3Q$D7{|#}{m4X&UY!6(ZhyYi2(5JLzGE$H)W6BQklnjPMwn<Yvv7Z*TVWwD*=E3QpH37* z#lqXJA0A~J9T_<^W5smspmDg2p6ac5Bjn+~LAoow%1TCdZ*$K8`O zw_$HaCi+0N&@7la#_7KL5r$+QL{)Pi=I&aDjt~|Knht#`CEi4*3%97i_fSfASlwUz0=3V0GCxY}z81UC-nP=CGt2OqYV$ zoRCo+qM9YX*3FFORLC=E3B~S@+KROyk4r5 yX7?DaslDfIebqXgC!KKp4IYy+W~X?ddE6o=`A+x#x0AK&6MF#W&AXxbRrv+SX}PNa diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/UTF-8-BOM-vs-meta-charset.html b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/UTF-8-BOM-vs-meta-charset.html deleted file mode 100644 index 83de4333..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/UTF-8-BOM-vs-meta-charset.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - UTF-8 BOM vs meta charset - - - - - - - - - - - -

UTF-8 BOM vs meta charset

- - -
- - -
 
- - - - - -
-

A page with a UTF-8 BOM will be recognized as UTF-8 even if the meta charset attribute declares a different encoding.

-

The page contains an encoding declaration in a meta charset attribute that attempts to set the character encoding to ISO 8859-15, but the file starts with a UTF-8 signature.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ýäè. This matches the sequence of bytes above when they are interpreted as UTF-8. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-038
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/UTF-8-BOM-vs-meta-content.html b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/UTF-8-BOM-vs-meta-content.html deleted file mode 100644 index 501aac2d..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/UTF-8-BOM-vs-meta-content.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - UTF-8 BOM vs meta content - - - - - - - - - - - -

UTF-8 BOM vs meta content

- - -
- - -
 
- - - - - -
-

A page with a UTF-8 BOM will be recognized as UTF-8 even if the meta content attribute declares a different encoding.

-

The page contains an encoding declaration in a meta content attribute that attempts to set the character encoding to ISO 8859-15, but the file starts with a UTF-8 signature.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ýäè. This matches the sequence of bytes above when they are interpreted as UTF-8. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-037
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/meta-charset-attribute.html b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/meta-charset-attribute.html deleted file mode 100644 index 2d7d25ab..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/meta-charset-attribute.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - meta charset attribute - - - - - - - - - - - -

meta charset attribute

- - -
- - -
 
- - - - - -
-

The character encoding of the page can be set by a meta element with charset attribute.

-

The only character encoding declaration for this HTML file is in the charset attribute of the meta element, which declares the encoding to be ISO 8859-15.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ÜÀÚ. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-009
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/meta-content-attribute.html b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/meta-content-attribute.html deleted file mode 100644 index 1c3f228e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/charset/testdata/meta-content-attribute.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - meta content attribute - - - - - - - - - - - -

meta content attribute

- - -
- - -
 
- - - - - -
-

The character encoding of the page can be set by a meta element with http-equiv and content attributes.

-

The only character encoding declaration for this HTML file is in the content attribute of the meta element, which declares the encoding to be ISO 8859-15.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ÜÀÚ. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-007
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/const.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/const.go deleted file mode 100644 index 52f651ff..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/const.go +++ /dev/null @@ -1,102 +0,0 @@ -// 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 html - -// Section 12.2.3.2 of the HTML5 specification says "The following elements -// have varying levels of special parsing rules". -// https://html.spec.whatwg.org/multipage/syntax.html#the-stack-of-open-elements -var isSpecialElementMap = map[string]bool{ - "address": true, - "applet": true, - "area": true, - "article": true, - "aside": true, - "base": true, - "basefont": true, - "bgsound": true, - "blockquote": true, - "body": true, - "br": true, - "button": true, - "caption": true, - "center": true, - "col": true, - "colgroup": true, - "dd": true, - "details": true, - "dir": true, - "div": true, - "dl": true, - "dt": true, - "embed": true, - "fieldset": true, - "figcaption": true, - "figure": true, - "footer": true, - "form": true, - "frame": true, - "frameset": true, - "h1": true, - "h2": true, - "h3": true, - "h4": true, - "h5": true, - "h6": true, - "head": true, - "header": true, - "hgroup": true, - "hr": true, - "html": true, - "iframe": true, - "img": true, - "input": true, - "isindex": true, - "li": true, - "link": true, - "listing": true, - "marquee": true, - "menu": true, - "meta": true, - "nav": true, - "noembed": true, - "noframes": true, - "noscript": true, - "object": true, - "ol": true, - "p": true, - "param": true, - "plaintext": true, - "pre": true, - "script": true, - "section": true, - "select": true, - "source": true, - "style": true, - "summary": true, - "table": true, - "tbody": true, - "td": true, - "template": true, - "textarea": true, - "tfoot": true, - "th": true, - "thead": true, - "title": true, - "tr": true, - "track": true, - "ul": true, - "wbr": true, - "xmp": true, -} - -func isSpecialElement(element *Node) bool { - switch element.Namespace { - case "", "html": - return isSpecialElementMap[element.Data] - case "svg": - return element.Data == "foreignObject" - } - return false -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/doc.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/doc.go deleted file mode 100644 index b453fe1e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/doc.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2010 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 html implements an HTML5-compliant tokenizer and parser. - -Tokenization is done by creating a Tokenizer for an io.Reader r. It is the -caller's responsibility to ensure that r provides UTF-8 encoded HTML. - - z := html.NewTokenizer(r) - -Given a Tokenizer z, the HTML is tokenized by repeatedly calling z.Next(), -which parses the next token and returns its type, or an error: - - for { - tt := z.Next() - if tt == html.ErrorToken { - // ... - return ... - } - // Process the current token. - } - -There are two APIs for retrieving the current token. The high-level API is to -call Token; the low-level API is to call Text or TagName / TagAttr. Both APIs -allow optionally calling Raw after Next but before Token, Text, TagName, or -TagAttr. In EBNF notation, the valid call sequence per token is: - - Next {Raw} [ Token | Text | TagName {TagAttr} ] - -Token returns an independent data structure that completely describes a token. -Entities (such as "<") are unescaped, tag names and attribute keys are -lower-cased, and attributes are collected into a []Attribute. For example: - - for { - if z.Next() == html.ErrorToken { - // Returning io.EOF indicates success. - return z.Err() - } - emitToken(z.Token()) - } - -The low-level API performs fewer allocations and copies, but the contents of -the []byte values returned by Text, TagName and TagAttr may change on the next -call to Next. For example, to extract an HTML page's anchor text: - - depth := 0 - for { - tt := z.Next() - switch tt { - case ErrorToken: - return z.Err() - case TextToken: - if depth > 0 { - // emitBytes should copy the []byte it receives, - // if it doesn't process it immediately. - emitBytes(z.Text()) - } - case StartTagToken, EndTagToken: - tn, _ := z.TagName() - if len(tn) == 1 && tn[0] == 'a' { - if tt == StartTagToken { - depth++ - } else { - depth-- - } - } - } - } - -Parsing is done by calling Parse with an io.Reader, which returns the root of -the parse tree (the document element) as a *Node. It is the caller's -responsibility to ensure that the Reader provides UTF-8 encoded HTML. For -example, to process each anchor node in depth-first order: - - doc, err := html.Parse(r) - if err != nil { - // ... - } - var f func(*html.Node) - f = func(n *html.Node) { - if n.Type == html.ElementNode && n.Data == "a" { - // Do something with n... - } - for c := n.FirstChild; c != nil; c = c.NextSibling { - f(c) - } - } - f(doc) - -The relevant specifications include: -https://html.spec.whatwg.org/multipage/syntax.html and -https://html.spec.whatwg.org/multipage/syntax.html#tokenization -*/ -package html - -// The tokenization algorithm implemented by this package is not a line-by-line -// transliteration of the relatively verbose state-machine in the WHATWG -// specification. A more direct approach is used instead, where the program -// counter implies the state, such as whether it is tokenizing a tag or a text -// node. Specification compliance is verified by checking expected and actual -// outputs over a test suite rather than aiming for algorithmic fidelity. - -// TODO(nigeltao): Does a DOM API belong in this package or a separate one? -// TODO(nigeltao): How does parsing interact with a JavaScript engine? diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/doctype.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/doctype.go deleted file mode 100644 index c484e5a9..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/doctype.go +++ /dev/null @@ -1,156 +0,0 @@ -// 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 html - -import ( - "strings" -) - -// parseDoctype parses the data from a DoctypeToken into a name, -// public identifier, and system identifier. It returns a Node whose Type -// is DoctypeNode, whose Data is the name, and which has attributes -// named "system" and "public" for the two identifiers if they were present. -// quirks is whether the document should be parsed in "quirks mode". -func parseDoctype(s string) (n *Node, quirks bool) { - n = &Node{Type: DoctypeNode} - - // Find the name. - space := strings.IndexAny(s, whitespace) - if space == -1 { - space = len(s) - } - n.Data = s[:space] - // The comparison to "html" is case-sensitive. - if n.Data != "html" { - quirks = true - } - n.Data = strings.ToLower(n.Data) - s = strings.TrimLeft(s[space:], whitespace) - - if len(s) < 6 { - // It can't start with "PUBLIC" or "SYSTEM". - // Ignore the rest of the string. - return n, quirks || s != "" - } - - key := strings.ToLower(s[:6]) - s = s[6:] - for key == "public" || key == "system" { - s = strings.TrimLeft(s, whitespace) - if s == "" { - break - } - quote := s[0] - if quote != '"' && quote != '\'' { - break - } - s = s[1:] - q := strings.IndexRune(s, rune(quote)) - var id string - if q == -1 { - id = s - s = "" - } else { - id = s[:q] - s = s[q+1:] - } - n.Attr = append(n.Attr, Attribute{Key: key, Val: id}) - if key == "public" { - key = "system" - } else { - key = "" - } - } - - if key != "" || s != "" { - quirks = true - } else if len(n.Attr) > 0 { - if n.Attr[0].Key == "public" { - public := strings.ToLower(n.Attr[0].Val) - switch public { - case "-//w3o//dtd w3 html strict 3.0//en//", "-/w3d/dtd html 4.0 transitional/en", "html": - quirks = true - default: - for _, q := range quirkyIDs { - if strings.HasPrefix(public, q) { - quirks = true - break - } - } - } - // The following two public IDs only cause quirks mode if there is no system ID. - if len(n.Attr) == 1 && (strings.HasPrefix(public, "-//w3c//dtd html 4.01 frameset//") || - strings.HasPrefix(public, "-//w3c//dtd html 4.01 transitional//")) { - quirks = true - } - } - if lastAttr := n.Attr[len(n.Attr)-1]; lastAttr.Key == "system" && - strings.ToLower(lastAttr.Val) == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd" { - quirks = true - } - } - - return n, quirks -} - -// quirkyIDs is a list of public doctype identifiers that cause a document -// to be interpreted in quirks mode. The identifiers should be in lower case. -var quirkyIDs = []string{ - "+//silmaril//dtd html pro v0r11 19970101//", - "-//advasoft ltd//dtd html 3.0 aswedit + extensions//", - "-//as//dtd html 3.0 aswedit + extensions//", - "-//ietf//dtd html 2.0 level 1//", - "-//ietf//dtd html 2.0 level 2//", - "-//ietf//dtd html 2.0 strict level 1//", - "-//ietf//dtd html 2.0 strict level 2//", - "-//ietf//dtd html 2.0 strict//", - "-//ietf//dtd html 2.0//", - "-//ietf//dtd html 2.1e//", - "-//ietf//dtd html 3.0//", - "-//ietf//dtd html 3.2 final//", - "-//ietf//dtd html 3.2//", - "-//ietf//dtd html 3//", - "-//ietf//dtd html level 0//", - "-//ietf//dtd html level 1//", - "-//ietf//dtd html level 2//", - "-//ietf//dtd html level 3//", - "-//ietf//dtd html strict level 0//", - "-//ietf//dtd html strict level 1//", - "-//ietf//dtd html strict level 2//", - "-//ietf//dtd html strict level 3//", - "-//ietf//dtd html strict//", - "-//ietf//dtd html//", - "-//metrius//dtd metrius presentational//", - "-//microsoft//dtd internet explorer 2.0 html strict//", - "-//microsoft//dtd internet explorer 2.0 html//", - "-//microsoft//dtd internet explorer 2.0 tables//", - "-//microsoft//dtd internet explorer 3.0 html strict//", - "-//microsoft//dtd internet explorer 3.0 html//", - "-//microsoft//dtd internet explorer 3.0 tables//", - "-//netscape comm. corp.//dtd html//", - "-//netscape comm. corp.//dtd strict html//", - "-//o'reilly and associates//dtd html 2.0//", - "-//o'reilly and associates//dtd html extended 1.0//", - "-//o'reilly and associates//dtd html extended relaxed 1.0//", - "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//", - "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//", - "-//spyglass//dtd html 2.0 extended//", - "-//sq//dtd html 2.0 hotmetal + extensions//", - "-//sun microsystems corp.//dtd hotjava html//", - "-//sun microsystems corp.//dtd hotjava strict html//", - "-//w3c//dtd html 3 1995-03-24//", - "-//w3c//dtd html 3.2 draft//", - "-//w3c//dtd html 3.2 final//", - "-//w3c//dtd html 3.2//", - "-//w3c//dtd html 3.2s draft//", - "-//w3c//dtd html 4.0 frameset//", - "-//w3c//dtd html 4.0 transitional//", - "-//w3c//dtd html experimental 19960712//", - "-//w3c//dtd html experimental 970421//", - "-//w3c//dtd w3 html//", - "-//w3o//dtd w3 html 3.0//", - "-//webtechs//dtd mozilla html 2.0//", - "-//webtechs//dtd mozilla html//", -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/entity.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/entity.go deleted file mode 100644 index a50c04c6..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/entity.go +++ /dev/null @@ -1,2253 +0,0 @@ -// Copyright 2010 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 html - -// All entities that do not end with ';' are 6 or fewer bytes long. -const longestEntityWithoutSemicolon = 6 - -// entity is a map from HTML entity names to their values. The semicolon matters: -// https://html.spec.whatwg.org/multipage/syntax.html#named-character-references -// lists both "amp" and "amp;" as two separate entries. -// -// Note that the HTML5 list is larger than the HTML4 list at -// http://www.w3.org/TR/html4/sgml/entities.html -var entity = map[string]rune{ - "AElig;": '\U000000C6', - "AMP;": '\U00000026', - "Aacute;": '\U000000C1', - "Abreve;": '\U00000102', - "Acirc;": '\U000000C2', - "Acy;": '\U00000410', - "Afr;": '\U0001D504', - "Agrave;": '\U000000C0', - "Alpha;": '\U00000391', - "Amacr;": '\U00000100', - "And;": '\U00002A53', - "Aogon;": '\U00000104', - "Aopf;": '\U0001D538', - "ApplyFunction;": '\U00002061', - "Aring;": '\U000000C5', - "Ascr;": '\U0001D49C', - "Assign;": '\U00002254', - "Atilde;": '\U000000C3', - "Auml;": '\U000000C4', - "Backslash;": '\U00002216', - "Barv;": '\U00002AE7', - "Barwed;": '\U00002306', - "Bcy;": '\U00000411', - "Because;": '\U00002235', - "Bernoullis;": '\U0000212C', - "Beta;": '\U00000392', - "Bfr;": '\U0001D505', - "Bopf;": '\U0001D539', - "Breve;": '\U000002D8', - "Bscr;": '\U0000212C', - "Bumpeq;": '\U0000224E', - "CHcy;": '\U00000427', - "COPY;": '\U000000A9', - "Cacute;": '\U00000106', - "Cap;": '\U000022D2', - "CapitalDifferentialD;": '\U00002145', - "Cayleys;": '\U0000212D', - "Ccaron;": '\U0000010C', - "Ccedil;": '\U000000C7', - "Ccirc;": '\U00000108', - "Cconint;": '\U00002230', - "Cdot;": '\U0000010A', - "Cedilla;": '\U000000B8', - "CenterDot;": '\U000000B7', - "Cfr;": '\U0000212D', - "Chi;": '\U000003A7', - "CircleDot;": '\U00002299', - "CircleMinus;": '\U00002296', - "CirclePlus;": '\U00002295', - "CircleTimes;": '\U00002297', - "ClockwiseContourIntegral;": '\U00002232', - "CloseCurlyDoubleQuote;": '\U0000201D', - "CloseCurlyQuote;": '\U00002019', - "Colon;": '\U00002237', - "Colone;": '\U00002A74', - "Congruent;": '\U00002261', - "Conint;": '\U0000222F', - "ContourIntegral;": '\U0000222E', - "Copf;": '\U00002102', - "Coproduct;": '\U00002210', - "CounterClockwiseContourIntegral;": '\U00002233', - "Cross;": '\U00002A2F', - "Cscr;": '\U0001D49E', - "Cup;": '\U000022D3', - "CupCap;": '\U0000224D', - "DD;": '\U00002145', - "DDotrahd;": '\U00002911', - "DJcy;": '\U00000402', - "DScy;": '\U00000405', - "DZcy;": '\U0000040F', - "Dagger;": '\U00002021', - "Darr;": '\U000021A1', - "Dashv;": '\U00002AE4', - "Dcaron;": '\U0000010E', - "Dcy;": '\U00000414', - "Del;": '\U00002207', - "Delta;": '\U00000394', - "Dfr;": '\U0001D507', - "DiacriticalAcute;": '\U000000B4', - "DiacriticalDot;": '\U000002D9', - "DiacriticalDoubleAcute;": '\U000002DD', - "DiacriticalGrave;": '\U00000060', - "DiacriticalTilde;": '\U000002DC', - "Diamond;": '\U000022C4', - "DifferentialD;": '\U00002146', - "Dopf;": '\U0001D53B', - "Dot;": '\U000000A8', - "DotDot;": '\U000020DC', - "DotEqual;": '\U00002250', - "DoubleContourIntegral;": '\U0000222F', - "DoubleDot;": '\U000000A8', - "DoubleDownArrow;": '\U000021D3', - "DoubleLeftArrow;": '\U000021D0', - "DoubleLeftRightArrow;": '\U000021D4', - "DoubleLeftTee;": '\U00002AE4', - "DoubleLongLeftArrow;": '\U000027F8', - "DoubleLongLeftRightArrow;": '\U000027FA', - "DoubleLongRightArrow;": '\U000027F9', - "DoubleRightArrow;": '\U000021D2', - "DoubleRightTee;": '\U000022A8', - "DoubleUpArrow;": '\U000021D1', - "DoubleUpDownArrow;": '\U000021D5', - "DoubleVerticalBar;": '\U00002225', - "DownArrow;": '\U00002193', - "DownArrowBar;": '\U00002913', - "DownArrowUpArrow;": '\U000021F5', - "DownBreve;": '\U00000311', - "DownLeftRightVector;": '\U00002950', - "DownLeftTeeVector;": '\U0000295E', - "DownLeftVector;": '\U000021BD', - "DownLeftVectorBar;": '\U00002956', - "DownRightTeeVector;": '\U0000295F', - "DownRightVector;": '\U000021C1', - "DownRightVectorBar;": '\U00002957', - "DownTee;": '\U000022A4', - "DownTeeArrow;": '\U000021A7', - "Downarrow;": '\U000021D3', - "Dscr;": '\U0001D49F', - "Dstrok;": '\U00000110', - "ENG;": '\U0000014A', - "ETH;": '\U000000D0', - "Eacute;": '\U000000C9', - "Ecaron;": '\U0000011A', - "Ecirc;": '\U000000CA', - "Ecy;": '\U0000042D', - "Edot;": '\U00000116', - "Efr;": '\U0001D508', - "Egrave;": '\U000000C8', - "Element;": '\U00002208', - "Emacr;": '\U00000112', - "EmptySmallSquare;": '\U000025FB', - "EmptyVerySmallSquare;": '\U000025AB', - "Eogon;": '\U00000118', - "Eopf;": '\U0001D53C', - "Epsilon;": '\U00000395', - "Equal;": '\U00002A75', - "EqualTilde;": '\U00002242', - "Equilibrium;": '\U000021CC', - "Escr;": '\U00002130', - "Esim;": '\U00002A73', - "Eta;": '\U00000397', - "Euml;": '\U000000CB', - "Exists;": '\U00002203', - "ExponentialE;": '\U00002147', - "Fcy;": '\U00000424', - "Ffr;": '\U0001D509', - "FilledSmallSquare;": '\U000025FC', - "FilledVerySmallSquare;": '\U000025AA', - "Fopf;": '\U0001D53D', - "ForAll;": '\U00002200', - "Fouriertrf;": '\U00002131', - "Fscr;": '\U00002131', - "GJcy;": '\U00000403', - "GT;": '\U0000003E', - "Gamma;": '\U00000393', - "Gammad;": '\U000003DC', - "Gbreve;": '\U0000011E', - "Gcedil;": '\U00000122', - "Gcirc;": '\U0000011C', - "Gcy;": '\U00000413', - "Gdot;": '\U00000120', - "Gfr;": '\U0001D50A', - "Gg;": '\U000022D9', - "Gopf;": '\U0001D53E', - "GreaterEqual;": '\U00002265', - "GreaterEqualLess;": '\U000022DB', - "GreaterFullEqual;": '\U00002267', - "GreaterGreater;": '\U00002AA2', - "GreaterLess;": '\U00002277', - "GreaterSlantEqual;": '\U00002A7E', - "GreaterTilde;": '\U00002273', - "Gscr;": '\U0001D4A2', - "Gt;": '\U0000226B', - "HARDcy;": '\U0000042A', - "Hacek;": '\U000002C7', - "Hat;": '\U0000005E', - "Hcirc;": '\U00000124', - "Hfr;": '\U0000210C', - "HilbertSpace;": '\U0000210B', - "Hopf;": '\U0000210D', - "HorizontalLine;": '\U00002500', - "Hscr;": '\U0000210B', - "Hstrok;": '\U00000126', - "HumpDownHump;": '\U0000224E', - "HumpEqual;": '\U0000224F', - "IEcy;": '\U00000415', - "IJlig;": '\U00000132', - "IOcy;": '\U00000401', - "Iacute;": '\U000000CD', - "Icirc;": '\U000000CE', - "Icy;": '\U00000418', - "Idot;": '\U00000130', - "Ifr;": '\U00002111', - "Igrave;": '\U000000CC', - "Im;": '\U00002111', - "Imacr;": '\U0000012A', - "ImaginaryI;": '\U00002148', - "Implies;": '\U000021D2', - "Int;": '\U0000222C', - "Integral;": '\U0000222B', - "Intersection;": '\U000022C2', - "InvisibleComma;": '\U00002063', - "InvisibleTimes;": '\U00002062', - "Iogon;": '\U0000012E', - "Iopf;": '\U0001D540', - "Iota;": '\U00000399', - "Iscr;": '\U00002110', - "Itilde;": '\U00000128', - "Iukcy;": '\U00000406', - "Iuml;": '\U000000CF', - "Jcirc;": '\U00000134', - "Jcy;": '\U00000419', - "Jfr;": '\U0001D50D', - "Jopf;": '\U0001D541', - "Jscr;": '\U0001D4A5', - "Jsercy;": '\U00000408', - "Jukcy;": '\U00000404', - "KHcy;": '\U00000425', - "KJcy;": '\U0000040C', - "Kappa;": '\U0000039A', - "Kcedil;": '\U00000136', - "Kcy;": '\U0000041A', - "Kfr;": '\U0001D50E', - "Kopf;": '\U0001D542', - "Kscr;": '\U0001D4A6', - "LJcy;": '\U00000409', - "LT;": '\U0000003C', - "Lacute;": '\U00000139', - "Lambda;": '\U0000039B', - "Lang;": '\U000027EA', - "Laplacetrf;": '\U00002112', - "Larr;": '\U0000219E', - "Lcaron;": '\U0000013D', - "Lcedil;": '\U0000013B', - "Lcy;": '\U0000041B', - "LeftAngleBracket;": '\U000027E8', - "LeftArrow;": '\U00002190', - "LeftArrowBar;": '\U000021E4', - "LeftArrowRightArrow;": '\U000021C6', - "LeftCeiling;": '\U00002308', - "LeftDoubleBracket;": '\U000027E6', - "LeftDownTeeVector;": '\U00002961', - "LeftDownVector;": '\U000021C3', - "LeftDownVectorBar;": '\U00002959', - "LeftFloor;": '\U0000230A', - "LeftRightArrow;": '\U00002194', - "LeftRightVector;": '\U0000294E', - "LeftTee;": '\U000022A3', - "LeftTeeArrow;": '\U000021A4', - "LeftTeeVector;": '\U0000295A', - "LeftTriangle;": '\U000022B2', - "LeftTriangleBar;": '\U000029CF', - "LeftTriangleEqual;": '\U000022B4', - "LeftUpDownVector;": '\U00002951', - "LeftUpTeeVector;": '\U00002960', - "LeftUpVector;": '\U000021BF', - "LeftUpVectorBar;": '\U00002958', - "LeftVector;": '\U000021BC', - "LeftVectorBar;": '\U00002952', - "Leftarrow;": '\U000021D0', - "Leftrightarrow;": '\U000021D4', - "LessEqualGreater;": '\U000022DA', - "LessFullEqual;": '\U00002266', - "LessGreater;": '\U00002276', - "LessLess;": '\U00002AA1', - "LessSlantEqual;": '\U00002A7D', - "LessTilde;": '\U00002272', - "Lfr;": '\U0001D50F', - "Ll;": '\U000022D8', - "Lleftarrow;": '\U000021DA', - "Lmidot;": '\U0000013F', - "LongLeftArrow;": '\U000027F5', - "LongLeftRightArrow;": '\U000027F7', - "LongRightArrow;": '\U000027F6', - "Longleftarrow;": '\U000027F8', - "Longleftrightarrow;": '\U000027FA', - "Longrightarrow;": '\U000027F9', - "Lopf;": '\U0001D543', - "LowerLeftArrow;": '\U00002199', - "LowerRightArrow;": '\U00002198', - "Lscr;": '\U00002112', - "Lsh;": '\U000021B0', - "Lstrok;": '\U00000141', - "Lt;": '\U0000226A', - "Map;": '\U00002905', - "Mcy;": '\U0000041C', - "MediumSpace;": '\U0000205F', - "Mellintrf;": '\U00002133', - "Mfr;": '\U0001D510', - "MinusPlus;": '\U00002213', - "Mopf;": '\U0001D544', - "Mscr;": '\U00002133', - "Mu;": '\U0000039C', - "NJcy;": '\U0000040A', - "Nacute;": '\U00000143', - "Ncaron;": '\U00000147', - "Ncedil;": '\U00000145', - "Ncy;": '\U0000041D', - "NegativeMediumSpace;": '\U0000200B', - "NegativeThickSpace;": '\U0000200B', - "NegativeThinSpace;": '\U0000200B', - "NegativeVeryThinSpace;": '\U0000200B', - "NestedGreaterGreater;": '\U0000226B', - "NestedLessLess;": '\U0000226A', - "NewLine;": '\U0000000A', - "Nfr;": '\U0001D511', - "NoBreak;": '\U00002060', - "NonBreakingSpace;": '\U000000A0', - "Nopf;": '\U00002115', - "Not;": '\U00002AEC', - "NotCongruent;": '\U00002262', - "NotCupCap;": '\U0000226D', - "NotDoubleVerticalBar;": '\U00002226', - "NotElement;": '\U00002209', - "NotEqual;": '\U00002260', - "NotExists;": '\U00002204', - "NotGreater;": '\U0000226F', - "NotGreaterEqual;": '\U00002271', - "NotGreaterLess;": '\U00002279', - "NotGreaterTilde;": '\U00002275', - "NotLeftTriangle;": '\U000022EA', - "NotLeftTriangleEqual;": '\U000022EC', - "NotLess;": '\U0000226E', - "NotLessEqual;": '\U00002270', - "NotLessGreater;": '\U00002278', - "NotLessTilde;": '\U00002274', - "NotPrecedes;": '\U00002280', - "NotPrecedesSlantEqual;": '\U000022E0', - "NotReverseElement;": '\U0000220C', - "NotRightTriangle;": '\U000022EB', - "NotRightTriangleEqual;": '\U000022ED', - "NotSquareSubsetEqual;": '\U000022E2', - "NotSquareSupersetEqual;": '\U000022E3', - "NotSubsetEqual;": '\U00002288', - "NotSucceeds;": '\U00002281', - "NotSucceedsSlantEqual;": '\U000022E1', - "NotSupersetEqual;": '\U00002289', - "NotTilde;": '\U00002241', - "NotTildeEqual;": '\U00002244', - "NotTildeFullEqual;": '\U00002247', - "NotTildeTilde;": '\U00002249', - "NotVerticalBar;": '\U00002224', - "Nscr;": '\U0001D4A9', - "Ntilde;": '\U000000D1', - "Nu;": '\U0000039D', - "OElig;": '\U00000152', - "Oacute;": '\U000000D3', - "Ocirc;": '\U000000D4', - "Ocy;": '\U0000041E', - "Odblac;": '\U00000150', - "Ofr;": '\U0001D512', - "Ograve;": '\U000000D2', - "Omacr;": '\U0000014C', - "Omega;": '\U000003A9', - "Omicron;": '\U0000039F', - "Oopf;": '\U0001D546', - "OpenCurlyDoubleQuote;": '\U0000201C', - "OpenCurlyQuote;": '\U00002018', - "Or;": '\U00002A54', - "Oscr;": '\U0001D4AA', - "Oslash;": '\U000000D8', - "Otilde;": '\U000000D5', - "Otimes;": '\U00002A37', - "Ouml;": '\U000000D6', - "OverBar;": '\U0000203E', - "OverBrace;": '\U000023DE', - "OverBracket;": '\U000023B4', - "OverParenthesis;": '\U000023DC', - "PartialD;": '\U00002202', - "Pcy;": '\U0000041F', - "Pfr;": '\U0001D513', - "Phi;": '\U000003A6', - "Pi;": '\U000003A0', - "PlusMinus;": '\U000000B1', - "Poincareplane;": '\U0000210C', - "Popf;": '\U00002119', - "Pr;": '\U00002ABB', - "Precedes;": '\U0000227A', - "PrecedesEqual;": '\U00002AAF', - "PrecedesSlantEqual;": '\U0000227C', - "PrecedesTilde;": '\U0000227E', - "Prime;": '\U00002033', - "Product;": '\U0000220F', - "Proportion;": '\U00002237', - "Proportional;": '\U0000221D', - "Pscr;": '\U0001D4AB', - "Psi;": '\U000003A8', - "QUOT;": '\U00000022', - "Qfr;": '\U0001D514', - "Qopf;": '\U0000211A', - "Qscr;": '\U0001D4AC', - "RBarr;": '\U00002910', - "REG;": '\U000000AE', - "Racute;": '\U00000154', - "Rang;": '\U000027EB', - "Rarr;": '\U000021A0', - "Rarrtl;": '\U00002916', - "Rcaron;": '\U00000158', - "Rcedil;": '\U00000156', - "Rcy;": '\U00000420', - "Re;": '\U0000211C', - "ReverseElement;": '\U0000220B', - "ReverseEquilibrium;": '\U000021CB', - "ReverseUpEquilibrium;": '\U0000296F', - "Rfr;": '\U0000211C', - "Rho;": '\U000003A1', - "RightAngleBracket;": '\U000027E9', - "RightArrow;": '\U00002192', - "RightArrowBar;": '\U000021E5', - "RightArrowLeftArrow;": '\U000021C4', - "RightCeiling;": '\U00002309', - "RightDoubleBracket;": '\U000027E7', - "RightDownTeeVector;": '\U0000295D', - "RightDownVector;": '\U000021C2', - "RightDownVectorBar;": '\U00002955', - "RightFloor;": '\U0000230B', - "RightTee;": '\U000022A2', - "RightTeeArrow;": '\U000021A6', - "RightTeeVector;": '\U0000295B', - "RightTriangle;": '\U000022B3', - "RightTriangleBar;": '\U000029D0', - "RightTriangleEqual;": '\U000022B5', - "RightUpDownVector;": '\U0000294F', - "RightUpTeeVector;": '\U0000295C', - "RightUpVector;": '\U000021BE', - "RightUpVectorBar;": '\U00002954', - "RightVector;": '\U000021C0', - "RightVectorBar;": '\U00002953', - "Rightarrow;": '\U000021D2', - "Ropf;": '\U0000211D', - "RoundImplies;": '\U00002970', - "Rrightarrow;": '\U000021DB', - "Rscr;": '\U0000211B', - "Rsh;": '\U000021B1', - "RuleDelayed;": '\U000029F4', - "SHCHcy;": '\U00000429', - "SHcy;": '\U00000428', - "SOFTcy;": '\U0000042C', - "Sacute;": '\U0000015A', - "Sc;": '\U00002ABC', - "Scaron;": '\U00000160', - "Scedil;": '\U0000015E', - "Scirc;": '\U0000015C', - "Scy;": '\U00000421', - "Sfr;": '\U0001D516', - "ShortDownArrow;": '\U00002193', - "ShortLeftArrow;": '\U00002190', - "ShortRightArrow;": '\U00002192', - "ShortUpArrow;": '\U00002191', - "Sigma;": '\U000003A3', - "SmallCircle;": '\U00002218', - "Sopf;": '\U0001D54A', - "Sqrt;": '\U0000221A', - "Square;": '\U000025A1', - "SquareIntersection;": '\U00002293', - "SquareSubset;": '\U0000228F', - "SquareSubsetEqual;": '\U00002291', - "SquareSuperset;": '\U00002290', - "SquareSupersetEqual;": '\U00002292', - "SquareUnion;": '\U00002294', - "Sscr;": '\U0001D4AE', - "Star;": '\U000022C6', - "Sub;": '\U000022D0', - "Subset;": '\U000022D0', - "SubsetEqual;": '\U00002286', - "Succeeds;": '\U0000227B', - "SucceedsEqual;": '\U00002AB0', - "SucceedsSlantEqual;": '\U0000227D', - "SucceedsTilde;": '\U0000227F', - "SuchThat;": '\U0000220B', - "Sum;": '\U00002211', - "Sup;": '\U000022D1', - "Superset;": '\U00002283', - "SupersetEqual;": '\U00002287', - "Supset;": '\U000022D1', - "THORN;": '\U000000DE', - "TRADE;": '\U00002122', - "TSHcy;": '\U0000040B', - "TScy;": '\U00000426', - "Tab;": '\U00000009', - "Tau;": '\U000003A4', - "Tcaron;": '\U00000164', - "Tcedil;": '\U00000162', - "Tcy;": '\U00000422', - "Tfr;": '\U0001D517', - "Therefore;": '\U00002234', - "Theta;": '\U00000398', - "ThinSpace;": '\U00002009', - "Tilde;": '\U0000223C', - "TildeEqual;": '\U00002243', - "TildeFullEqual;": '\U00002245', - "TildeTilde;": '\U00002248', - "Topf;": '\U0001D54B', - "TripleDot;": '\U000020DB', - "Tscr;": '\U0001D4AF', - "Tstrok;": '\U00000166', - "Uacute;": '\U000000DA', - "Uarr;": '\U0000219F', - "Uarrocir;": '\U00002949', - "Ubrcy;": '\U0000040E', - "Ubreve;": '\U0000016C', - "Ucirc;": '\U000000DB', - "Ucy;": '\U00000423', - "Udblac;": '\U00000170', - "Ufr;": '\U0001D518', - "Ugrave;": '\U000000D9', - "Umacr;": '\U0000016A', - "UnderBar;": '\U0000005F', - "UnderBrace;": '\U000023DF', - "UnderBracket;": '\U000023B5', - "UnderParenthesis;": '\U000023DD', - "Union;": '\U000022C3', - "UnionPlus;": '\U0000228E', - "Uogon;": '\U00000172', - "Uopf;": '\U0001D54C', - "UpArrow;": '\U00002191', - "UpArrowBar;": '\U00002912', - "UpArrowDownArrow;": '\U000021C5', - "UpDownArrow;": '\U00002195', - "UpEquilibrium;": '\U0000296E', - "UpTee;": '\U000022A5', - "UpTeeArrow;": '\U000021A5', - "Uparrow;": '\U000021D1', - "Updownarrow;": '\U000021D5', - "UpperLeftArrow;": '\U00002196', - "UpperRightArrow;": '\U00002197', - "Upsi;": '\U000003D2', - "Upsilon;": '\U000003A5', - "Uring;": '\U0000016E', - "Uscr;": '\U0001D4B0', - "Utilde;": '\U00000168', - "Uuml;": '\U000000DC', - "VDash;": '\U000022AB', - "Vbar;": '\U00002AEB', - "Vcy;": '\U00000412', - "Vdash;": '\U000022A9', - "Vdashl;": '\U00002AE6', - "Vee;": '\U000022C1', - "Verbar;": '\U00002016', - "Vert;": '\U00002016', - "VerticalBar;": '\U00002223', - "VerticalLine;": '\U0000007C', - "VerticalSeparator;": '\U00002758', - "VerticalTilde;": '\U00002240', - "VeryThinSpace;": '\U0000200A', - "Vfr;": '\U0001D519', - "Vopf;": '\U0001D54D', - "Vscr;": '\U0001D4B1', - "Vvdash;": '\U000022AA', - "Wcirc;": '\U00000174', - "Wedge;": '\U000022C0', - "Wfr;": '\U0001D51A', - "Wopf;": '\U0001D54E', - "Wscr;": '\U0001D4B2', - "Xfr;": '\U0001D51B', - "Xi;": '\U0000039E', - "Xopf;": '\U0001D54F', - "Xscr;": '\U0001D4B3', - "YAcy;": '\U0000042F', - "YIcy;": '\U00000407', - "YUcy;": '\U0000042E', - "Yacute;": '\U000000DD', - "Ycirc;": '\U00000176', - "Ycy;": '\U0000042B', - "Yfr;": '\U0001D51C', - "Yopf;": '\U0001D550', - "Yscr;": '\U0001D4B4', - "Yuml;": '\U00000178', - "ZHcy;": '\U00000416', - "Zacute;": '\U00000179', - "Zcaron;": '\U0000017D', - "Zcy;": '\U00000417', - "Zdot;": '\U0000017B', - "ZeroWidthSpace;": '\U0000200B', - "Zeta;": '\U00000396', - "Zfr;": '\U00002128', - "Zopf;": '\U00002124', - "Zscr;": '\U0001D4B5', - "aacute;": '\U000000E1', - "abreve;": '\U00000103', - "ac;": '\U0000223E', - "acd;": '\U0000223F', - "acirc;": '\U000000E2', - "acute;": '\U000000B4', - "acy;": '\U00000430', - "aelig;": '\U000000E6', - "af;": '\U00002061', - "afr;": '\U0001D51E', - "agrave;": '\U000000E0', - "alefsym;": '\U00002135', - "aleph;": '\U00002135', - "alpha;": '\U000003B1', - "amacr;": '\U00000101', - "amalg;": '\U00002A3F', - "amp;": '\U00000026', - "and;": '\U00002227', - "andand;": '\U00002A55', - "andd;": '\U00002A5C', - "andslope;": '\U00002A58', - "andv;": '\U00002A5A', - "ang;": '\U00002220', - "ange;": '\U000029A4', - "angle;": '\U00002220', - "angmsd;": '\U00002221', - "angmsdaa;": '\U000029A8', - "angmsdab;": '\U000029A9', - "angmsdac;": '\U000029AA', - "angmsdad;": '\U000029AB', - "angmsdae;": '\U000029AC', - "angmsdaf;": '\U000029AD', - "angmsdag;": '\U000029AE', - "angmsdah;": '\U000029AF', - "angrt;": '\U0000221F', - "angrtvb;": '\U000022BE', - "angrtvbd;": '\U0000299D', - "angsph;": '\U00002222', - "angst;": '\U000000C5', - "angzarr;": '\U0000237C', - "aogon;": '\U00000105', - "aopf;": '\U0001D552', - "ap;": '\U00002248', - "apE;": '\U00002A70', - "apacir;": '\U00002A6F', - "ape;": '\U0000224A', - "apid;": '\U0000224B', - "apos;": '\U00000027', - "approx;": '\U00002248', - "approxeq;": '\U0000224A', - "aring;": '\U000000E5', - "ascr;": '\U0001D4B6', - "ast;": '\U0000002A', - "asymp;": '\U00002248', - "asympeq;": '\U0000224D', - "atilde;": '\U000000E3', - "auml;": '\U000000E4', - "awconint;": '\U00002233', - "awint;": '\U00002A11', - "bNot;": '\U00002AED', - "backcong;": '\U0000224C', - "backepsilon;": '\U000003F6', - "backprime;": '\U00002035', - "backsim;": '\U0000223D', - "backsimeq;": '\U000022CD', - "barvee;": '\U000022BD', - "barwed;": '\U00002305', - "barwedge;": '\U00002305', - "bbrk;": '\U000023B5', - "bbrktbrk;": '\U000023B6', - "bcong;": '\U0000224C', - "bcy;": '\U00000431', - "bdquo;": '\U0000201E', - "becaus;": '\U00002235', - "because;": '\U00002235', - "bemptyv;": '\U000029B0', - "bepsi;": '\U000003F6', - "bernou;": '\U0000212C', - "beta;": '\U000003B2', - "beth;": '\U00002136', - "between;": '\U0000226C', - "bfr;": '\U0001D51F', - "bigcap;": '\U000022C2', - "bigcirc;": '\U000025EF', - "bigcup;": '\U000022C3', - "bigodot;": '\U00002A00', - "bigoplus;": '\U00002A01', - "bigotimes;": '\U00002A02', - "bigsqcup;": '\U00002A06', - "bigstar;": '\U00002605', - "bigtriangledown;": '\U000025BD', - "bigtriangleup;": '\U000025B3', - "biguplus;": '\U00002A04', - "bigvee;": '\U000022C1', - "bigwedge;": '\U000022C0', - "bkarow;": '\U0000290D', - "blacklozenge;": '\U000029EB', - "blacksquare;": '\U000025AA', - "blacktriangle;": '\U000025B4', - "blacktriangledown;": '\U000025BE', - "blacktriangleleft;": '\U000025C2', - "blacktriangleright;": '\U000025B8', - "blank;": '\U00002423', - "blk12;": '\U00002592', - "blk14;": '\U00002591', - "blk34;": '\U00002593', - "block;": '\U00002588', - "bnot;": '\U00002310', - "bopf;": '\U0001D553', - "bot;": '\U000022A5', - "bottom;": '\U000022A5', - "bowtie;": '\U000022C8', - "boxDL;": '\U00002557', - "boxDR;": '\U00002554', - "boxDl;": '\U00002556', - "boxDr;": '\U00002553', - "boxH;": '\U00002550', - "boxHD;": '\U00002566', - "boxHU;": '\U00002569', - "boxHd;": '\U00002564', - "boxHu;": '\U00002567', - "boxUL;": '\U0000255D', - "boxUR;": '\U0000255A', - "boxUl;": '\U0000255C', - "boxUr;": '\U00002559', - "boxV;": '\U00002551', - "boxVH;": '\U0000256C', - "boxVL;": '\U00002563', - "boxVR;": '\U00002560', - "boxVh;": '\U0000256B', - "boxVl;": '\U00002562', - "boxVr;": '\U0000255F', - "boxbox;": '\U000029C9', - "boxdL;": '\U00002555', - "boxdR;": '\U00002552', - "boxdl;": '\U00002510', - "boxdr;": '\U0000250C', - "boxh;": '\U00002500', - "boxhD;": '\U00002565', - "boxhU;": '\U00002568', - "boxhd;": '\U0000252C', - "boxhu;": '\U00002534', - "boxminus;": '\U0000229F', - "boxplus;": '\U0000229E', - "boxtimes;": '\U000022A0', - "boxuL;": '\U0000255B', - "boxuR;": '\U00002558', - "boxul;": '\U00002518', - "boxur;": '\U00002514', - "boxv;": '\U00002502', - "boxvH;": '\U0000256A', - "boxvL;": '\U00002561', - "boxvR;": '\U0000255E', - "boxvh;": '\U0000253C', - "boxvl;": '\U00002524', - "boxvr;": '\U0000251C', - "bprime;": '\U00002035', - "breve;": '\U000002D8', - "brvbar;": '\U000000A6', - "bscr;": '\U0001D4B7', - "bsemi;": '\U0000204F', - "bsim;": '\U0000223D', - "bsime;": '\U000022CD', - "bsol;": '\U0000005C', - "bsolb;": '\U000029C5', - "bsolhsub;": '\U000027C8', - "bull;": '\U00002022', - "bullet;": '\U00002022', - "bump;": '\U0000224E', - "bumpE;": '\U00002AAE', - "bumpe;": '\U0000224F', - "bumpeq;": '\U0000224F', - "cacute;": '\U00000107', - "cap;": '\U00002229', - "capand;": '\U00002A44', - "capbrcup;": '\U00002A49', - "capcap;": '\U00002A4B', - "capcup;": '\U00002A47', - "capdot;": '\U00002A40', - "caret;": '\U00002041', - "caron;": '\U000002C7', - "ccaps;": '\U00002A4D', - "ccaron;": '\U0000010D', - "ccedil;": '\U000000E7', - "ccirc;": '\U00000109', - "ccups;": '\U00002A4C', - "ccupssm;": '\U00002A50', - "cdot;": '\U0000010B', - "cedil;": '\U000000B8', - "cemptyv;": '\U000029B2', - "cent;": '\U000000A2', - "centerdot;": '\U000000B7', - "cfr;": '\U0001D520', - "chcy;": '\U00000447', - "check;": '\U00002713', - "checkmark;": '\U00002713', - "chi;": '\U000003C7', - "cir;": '\U000025CB', - "cirE;": '\U000029C3', - "circ;": '\U000002C6', - "circeq;": '\U00002257', - "circlearrowleft;": '\U000021BA', - "circlearrowright;": '\U000021BB', - "circledR;": '\U000000AE', - "circledS;": '\U000024C8', - "circledast;": '\U0000229B', - "circledcirc;": '\U0000229A', - "circleddash;": '\U0000229D', - "cire;": '\U00002257', - "cirfnint;": '\U00002A10', - "cirmid;": '\U00002AEF', - "cirscir;": '\U000029C2', - "clubs;": '\U00002663', - "clubsuit;": '\U00002663', - "colon;": '\U0000003A', - "colone;": '\U00002254', - "coloneq;": '\U00002254', - "comma;": '\U0000002C', - "commat;": '\U00000040', - "comp;": '\U00002201', - "compfn;": '\U00002218', - "complement;": '\U00002201', - "complexes;": '\U00002102', - "cong;": '\U00002245', - "congdot;": '\U00002A6D', - "conint;": '\U0000222E', - "copf;": '\U0001D554', - "coprod;": '\U00002210', - "copy;": '\U000000A9', - "copysr;": '\U00002117', - "crarr;": '\U000021B5', - "cross;": '\U00002717', - "cscr;": '\U0001D4B8', - "csub;": '\U00002ACF', - "csube;": '\U00002AD1', - "csup;": '\U00002AD0', - "csupe;": '\U00002AD2', - "ctdot;": '\U000022EF', - "cudarrl;": '\U00002938', - "cudarrr;": '\U00002935', - "cuepr;": '\U000022DE', - "cuesc;": '\U000022DF', - "cularr;": '\U000021B6', - "cularrp;": '\U0000293D', - "cup;": '\U0000222A', - "cupbrcap;": '\U00002A48', - "cupcap;": '\U00002A46', - "cupcup;": '\U00002A4A', - "cupdot;": '\U0000228D', - "cupor;": '\U00002A45', - "curarr;": '\U000021B7', - "curarrm;": '\U0000293C', - "curlyeqprec;": '\U000022DE', - "curlyeqsucc;": '\U000022DF', - "curlyvee;": '\U000022CE', - "curlywedge;": '\U000022CF', - "curren;": '\U000000A4', - "curvearrowleft;": '\U000021B6', - "curvearrowright;": '\U000021B7', - "cuvee;": '\U000022CE', - "cuwed;": '\U000022CF', - "cwconint;": '\U00002232', - "cwint;": '\U00002231', - "cylcty;": '\U0000232D', - "dArr;": '\U000021D3', - "dHar;": '\U00002965', - "dagger;": '\U00002020', - "daleth;": '\U00002138', - "darr;": '\U00002193', - "dash;": '\U00002010', - "dashv;": '\U000022A3', - "dbkarow;": '\U0000290F', - "dblac;": '\U000002DD', - "dcaron;": '\U0000010F', - "dcy;": '\U00000434', - "dd;": '\U00002146', - "ddagger;": '\U00002021', - "ddarr;": '\U000021CA', - "ddotseq;": '\U00002A77', - "deg;": '\U000000B0', - "delta;": '\U000003B4', - "demptyv;": '\U000029B1', - "dfisht;": '\U0000297F', - "dfr;": '\U0001D521', - "dharl;": '\U000021C3', - "dharr;": '\U000021C2', - "diam;": '\U000022C4', - "diamond;": '\U000022C4', - "diamondsuit;": '\U00002666', - "diams;": '\U00002666', - "die;": '\U000000A8', - "digamma;": '\U000003DD', - "disin;": '\U000022F2', - "div;": '\U000000F7', - "divide;": '\U000000F7', - "divideontimes;": '\U000022C7', - "divonx;": '\U000022C7', - "djcy;": '\U00000452', - "dlcorn;": '\U0000231E', - "dlcrop;": '\U0000230D', - "dollar;": '\U00000024', - "dopf;": '\U0001D555', - "dot;": '\U000002D9', - "doteq;": '\U00002250', - "doteqdot;": '\U00002251', - "dotminus;": '\U00002238', - "dotplus;": '\U00002214', - "dotsquare;": '\U000022A1', - "doublebarwedge;": '\U00002306', - "downarrow;": '\U00002193', - "downdownarrows;": '\U000021CA', - "downharpoonleft;": '\U000021C3', - "downharpoonright;": '\U000021C2', - "drbkarow;": '\U00002910', - "drcorn;": '\U0000231F', - "drcrop;": '\U0000230C', - "dscr;": '\U0001D4B9', - "dscy;": '\U00000455', - "dsol;": '\U000029F6', - "dstrok;": '\U00000111', - "dtdot;": '\U000022F1', - "dtri;": '\U000025BF', - "dtrif;": '\U000025BE', - "duarr;": '\U000021F5', - "duhar;": '\U0000296F', - "dwangle;": '\U000029A6', - "dzcy;": '\U0000045F', - "dzigrarr;": '\U000027FF', - "eDDot;": '\U00002A77', - "eDot;": '\U00002251', - "eacute;": '\U000000E9', - "easter;": '\U00002A6E', - "ecaron;": '\U0000011B', - "ecir;": '\U00002256', - "ecirc;": '\U000000EA', - "ecolon;": '\U00002255', - "ecy;": '\U0000044D', - "edot;": '\U00000117', - "ee;": '\U00002147', - "efDot;": '\U00002252', - "efr;": '\U0001D522', - "eg;": '\U00002A9A', - "egrave;": '\U000000E8', - "egs;": '\U00002A96', - "egsdot;": '\U00002A98', - "el;": '\U00002A99', - "elinters;": '\U000023E7', - "ell;": '\U00002113', - "els;": '\U00002A95', - "elsdot;": '\U00002A97', - "emacr;": '\U00000113', - "empty;": '\U00002205', - "emptyset;": '\U00002205', - "emptyv;": '\U00002205', - "emsp;": '\U00002003', - "emsp13;": '\U00002004', - "emsp14;": '\U00002005', - "eng;": '\U0000014B', - "ensp;": '\U00002002', - "eogon;": '\U00000119', - "eopf;": '\U0001D556', - "epar;": '\U000022D5', - "eparsl;": '\U000029E3', - "eplus;": '\U00002A71', - "epsi;": '\U000003B5', - "epsilon;": '\U000003B5', - "epsiv;": '\U000003F5', - "eqcirc;": '\U00002256', - "eqcolon;": '\U00002255', - "eqsim;": '\U00002242', - "eqslantgtr;": '\U00002A96', - "eqslantless;": '\U00002A95', - "equals;": '\U0000003D', - "equest;": '\U0000225F', - "equiv;": '\U00002261', - "equivDD;": '\U00002A78', - "eqvparsl;": '\U000029E5', - "erDot;": '\U00002253', - "erarr;": '\U00002971', - "escr;": '\U0000212F', - "esdot;": '\U00002250', - "esim;": '\U00002242', - "eta;": '\U000003B7', - "eth;": '\U000000F0', - "euml;": '\U000000EB', - "euro;": '\U000020AC', - "excl;": '\U00000021', - "exist;": '\U00002203', - "expectation;": '\U00002130', - "exponentiale;": '\U00002147', - "fallingdotseq;": '\U00002252', - "fcy;": '\U00000444', - "female;": '\U00002640', - "ffilig;": '\U0000FB03', - "fflig;": '\U0000FB00', - "ffllig;": '\U0000FB04', - "ffr;": '\U0001D523', - "filig;": '\U0000FB01', - "flat;": '\U0000266D', - "fllig;": '\U0000FB02', - "fltns;": '\U000025B1', - "fnof;": '\U00000192', - "fopf;": '\U0001D557', - "forall;": '\U00002200', - "fork;": '\U000022D4', - "forkv;": '\U00002AD9', - "fpartint;": '\U00002A0D', - "frac12;": '\U000000BD', - "frac13;": '\U00002153', - "frac14;": '\U000000BC', - "frac15;": '\U00002155', - "frac16;": '\U00002159', - "frac18;": '\U0000215B', - "frac23;": '\U00002154', - "frac25;": '\U00002156', - "frac34;": '\U000000BE', - "frac35;": '\U00002157', - "frac38;": '\U0000215C', - "frac45;": '\U00002158', - "frac56;": '\U0000215A', - "frac58;": '\U0000215D', - "frac78;": '\U0000215E', - "frasl;": '\U00002044', - "frown;": '\U00002322', - "fscr;": '\U0001D4BB', - "gE;": '\U00002267', - "gEl;": '\U00002A8C', - "gacute;": '\U000001F5', - "gamma;": '\U000003B3', - "gammad;": '\U000003DD', - "gap;": '\U00002A86', - "gbreve;": '\U0000011F', - "gcirc;": '\U0000011D', - "gcy;": '\U00000433', - "gdot;": '\U00000121', - "ge;": '\U00002265', - "gel;": '\U000022DB', - "geq;": '\U00002265', - "geqq;": '\U00002267', - "geqslant;": '\U00002A7E', - "ges;": '\U00002A7E', - "gescc;": '\U00002AA9', - "gesdot;": '\U00002A80', - "gesdoto;": '\U00002A82', - "gesdotol;": '\U00002A84', - "gesles;": '\U00002A94', - "gfr;": '\U0001D524', - "gg;": '\U0000226B', - "ggg;": '\U000022D9', - "gimel;": '\U00002137', - "gjcy;": '\U00000453', - "gl;": '\U00002277', - "glE;": '\U00002A92', - "gla;": '\U00002AA5', - "glj;": '\U00002AA4', - "gnE;": '\U00002269', - "gnap;": '\U00002A8A', - "gnapprox;": '\U00002A8A', - "gne;": '\U00002A88', - "gneq;": '\U00002A88', - "gneqq;": '\U00002269', - "gnsim;": '\U000022E7', - "gopf;": '\U0001D558', - "grave;": '\U00000060', - "gscr;": '\U0000210A', - "gsim;": '\U00002273', - "gsime;": '\U00002A8E', - "gsiml;": '\U00002A90', - "gt;": '\U0000003E', - "gtcc;": '\U00002AA7', - "gtcir;": '\U00002A7A', - "gtdot;": '\U000022D7', - "gtlPar;": '\U00002995', - "gtquest;": '\U00002A7C', - "gtrapprox;": '\U00002A86', - "gtrarr;": '\U00002978', - "gtrdot;": '\U000022D7', - "gtreqless;": '\U000022DB', - "gtreqqless;": '\U00002A8C', - "gtrless;": '\U00002277', - "gtrsim;": '\U00002273', - "hArr;": '\U000021D4', - "hairsp;": '\U0000200A', - "half;": '\U000000BD', - "hamilt;": '\U0000210B', - "hardcy;": '\U0000044A', - "harr;": '\U00002194', - "harrcir;": '\U00002948', - "harrw;": '\U000021AD', - "hbar;": '\U0000210F', - "hcirc;": '\U00000125', - "hearts;": '\U00002665', - "heartsuit;": '\U00002665', - "hellip;": '\U00002026', - "hercon;": '\U000022B9', - "hfr;": '\U0001D525', - "hksearow;": '\U00002925', - "hkswarow;": '\U00002926', - "hoarr;": '\U000021FF', - "homtht;": '\U0000223B', - "hookleftarrow;": '\U000021A9', - "hookrightarrow;": '\U000021AA', - "hopf;": '\U0001D559', - "horbar;": '\U00002015', - "hscr;": '\U0001D4BD', - "hslash;": '\U0000210F', - "hstrok;": '\U00000127', - "hybull;": '\U00002043', - "hyphen;": '\U00002010', - "iacute;": '\U000000ED', - "ic;": '\U00002063', - "icirc;": '\U000000EE', - "icy;": '\U00000438', - "iecy;": '\U00000435', - "iexcl;": '\U000000A1', - "iff;": '\U000021D4', - "ifr;": '\U0001D526', - "igrave;": '\U000000EC', - "ii;": '\U00002148', - "iiiint;": '\U00002A0C', - "iiint;": '\U0000222D', - "iinfin;": '\U000029DC', - "iiota;": '\U00002129', - "ijlig;": '\U00000133', - "imacr;": '\U0000012B', - "image;": '\U00002111', - "imagline;": '\U00002110', - "imagpart;": '\U00002111', - "imath;": '\U00000131', - "imof;": '\U000022B7', - "imped;": '\U000001B5', - "in;": '\U00002208', - "incare;": '\U00002105', - "infin;": '\U0000221E', - "infintie;": '\U000029DD', - "inodot;": '\U00000131', - "int;": '\U0000222B', - "intcal;": '\U000022BA', - "integers;": '\U00002124', - "intercal;": '\U000022BA', - "intlarhk;": '\U00002A17', - "intprod;": '\U00002A3C', - "iocy;": '\U00000451', - "iogon;": '\U0000012F', - "iopf;": '\U0001D55A', - "iota;": '\U000003B9', - "iprod;": '\U00002A3C', - "iquest;": '\U000000BF', - "iscr;": '\U0001D4BE', - "isin;": '\U00002208', - "isinE;": '\U000022F9', - "isindot;": '\U000022F5', - "isins;": '\U000022F4', - "isinsv;": '\U000022F3', - "isinv;": '\U00002208', - "it;": '\U00002062', - "itilde;": '\U00000129', - "iukcy;": '\U00000456', - "iuml;": '\U000000EF', - "jcirc;": '\U00000135', - "jcy;": '\U00000439', - "jfr;": '\U0001D527', - "jmath;": '\U00000237', - "jopf;": '\U0001D55B', - "jscr;": '\U0001D4BF', - "jsercy;": '\U00000458', - "jukcy;": '\U00000454', - "kappa;": '\U000003BA', - "kappav;": '\U000003F0', - "kcedil;": '\U00000137', - "kcy;": '\U0000043A', - "kfr;": '\U0001D528', - "kgreen;": '\U00000138', - "khcy;": '\U00000445', - "kjcy;": '\U0000045C', - "kopf;": '\U0001D55C', - "kscr;": '\U0001D4C0', - "lAarr;": '\U000021DA', - "lArr;": '\U000021D0', - "lAtail;": '\U0000291B', - "lBarr;": '\U0000290E', - "lE;": '\U00002266', - "lEg;": '\U00002A8B', - "lHar;": '\U00002962', - "lacute;": '\U0000013A', - "laemptyv;": '\U000029B4', - "lagran;": '\U00002112', - "lambda;": '\U000003BB', - "lang;": '\U000027E8', - "langd;": '\U00002991', - "langle;": '\U000027E8', - "lap;": '\U00002A85', - "laquo;": '\U000000AB', - "larr;": '\U00002190', - "larrb;": '\U000021E4', - "larrbfs;": '\U0000291F', - "larrfs;": '\U0000291D', - "larrhk;": '\U000021A9', - "larrlp;": '\U000021AB', - "larrpl;": '\U00002939', - "larrsim;": '\U00002973', - "larrtl;": '\U000021A2', - "lat;": '\U00002AAB', - "latail;": '\U00002919', - "late;": '\U00002AAD', - "lbarr;": '\U0000290C', - "lbbrk;": '\U00002772', - "lbrace;": '\U0000007B', - "lbrack;": '\U0000005B', - "lbrke;": '\U0000298B', - "lbrksld;": '\U0000298F', - "lbrkslu;": '\U0000298D', - "lcaron;": '\U0000013E', - "lcedil;": '\U0000013C', - "lceil;": '\U00002308', - "lcub;": '\U0000007B', - "lcy;": '\U0000043B', - "ldca;": '\U00002936', - "ldquo;": '\U0000201C', - "ldquor;": '\U0000201E', - "ldrdhar;": '\U00002967', - "ldrushar;": '\U0000294B', - "ldsh;": '\U000021B2', - "le;": '\U00002264', - "leftarrow;": '\U00002190', - "leftarrowtail;": '\U000021A2', - "leftharpoondown;": '\U000021BD', - "leftharpoonup;": '\U000021BC', - "leftleftarrows;": '\U000021C7', - "leftrightarrow;": '\U00002194', - "leftrightarrows;": '\U000021C6', - "leftrightharpoons;": '\U000021CB', - "leftrightsquigarrow;": '\U000021AD', - "leftthreetimes;": '\U000022CB', - "leg;": '\U000022DA', - "leq;": '\U00002264', - "leqq;": '\U00002266', - "leqslant;": '\U00002A7D', - "les;": '\U00002A7D', - "lescc;": '\U00002AA8', - "lesdot;": '\U00002A7F', - "lesdoto;": '\U00002A81', - "lesdotor;": '\U00002A83', - "lesges;": '\U00002A93', - "lessapprox;": '\U00002A85', - "lessdot;": '\U000022D6', - "lesseqgtr;": '\U000022DA', - "lesseqqgtr;": '\U00002A8B', - "lessgtr;": '\U00002276', - "lesssim;": '\U00002272', - "lfisht;": '\U0000297C', - "lfloor;": '\U0000230A', - "lfr;": '\U0001D529', - "lg;": '\U00002276', - "lgE;": '\U00002A91', - "lhard;": '\U000021BD', - "lharu;": '\U000021BC', - "lharul;": '\U0000296A', - "lhblk;": '\U00002584', - "ljcy;": '\U00000459', - "ll;": '\U0000226A', - "llarr;": '\U000021C7', - "llcorner;": '\U0000231E', - "llhard;": '\U0000296B', - "lltri;": '\U000025FA', - "lmidot;": '\U00000140', - "lmoust;": '\U000023B0', - "lmoustache;": '\U000023B0', - "lnE;": '\U00002268', - "lnap;": '\U00002A89', - "lnapprox;": '\U00002A89', - "lne;": '\U00002A87', - "lneq;": '\U00002A87', - "lneqq;": '\U00002268', - "lnsim;": '\U000022E6', - "loang;": '\U000027EC', - "loarr;": '\U000021FD', - "lobrk;": '\U000027E6', - "longleftarrow;": '\U000027F5', - "longleftrightarrow;": '\U000027F7', - "longmapsto;": '\U000027FC', - "longrightarrow;": '\U000027F6', - "looparrowleft;": '\U000021AB', - "looparrowright;": '\U000021AC', - "lopar;": '\U00002985', - "lopf;": '\U0001D55D', - "loplus;": '\U00002A2D', - "lotimes;": '\U00002A34', - "lowast;": '\U00002217', - "lowbar;": '\U0000005F', - "loz;": '\U000025CA', - "lozenge;": '\U000025CA', - "lozf;": '\U000029EB', - "lpar;": '\U00000028', - "lparlt;": '\U00002993', - "lrarr;": '\U000021C6', - "lrcorner;": '\U0000231F', - "lrhar;": '\U000021CB', - "lrhard;": '\U0000296D', - "lrm;": '\U0000200E', - "lrtri;": '\U000022BF', - "lsaquo;": '\U00002039', - "lscr;": '\U0001D4C1', - "lsh;": '\U000021B0', - "lsim;": '\U00002272', - "lsime;": '\U00002A8D', - "lsimg;": '\U00002A8F', - "lsqb;": '\U0000005B', - "lsquo;": '\U00002018', - "lsquor;": '\U0000201A', - "lstrok;": '\U00000142', - "lt;": '\U0000003C', - "ltcc;": '\U00002AA6', - "ltcir;": '\U00002A79', - "ltdot;": '\U000022D6', - "lthree;": '\U000022CB', - "ltimes;": '\U000022C9', - "ltlarr;": '\U00002976', - "ltquest;": '\U00002A7B', - "ltrPar;": '\U00002996', - "ltri;": '\U000025C3', - "ltrie;": '\U000022B4', - "ltrif;": '\U000025C2', - "lurdshar;": '\U0000294A', - "luruhar;": '\U00002966', - "mDDot;": '\U0000223A', - "macr;": '\U000000AF', - "male;": '\U00002642', - "malt;": '\U00002720', - "maltese;": '\U00002720', - "map;": '\U000021A6', - "mapsto;": '\U000021A6', - "mapstodown;": '\U000021A7', - "mapstoleft;": '\U000021A4', - "mapstoup;": '\U000021A5', - "marker;": '\U000025AE', - "mcomma;": '\U00002A29', - "mcy;": '\U0000043C', - "mdash;": '\U00002014', - "measuredangle;": '\U00002221', - "mfr;": '\U0001D52A', - "mho;": '\U00002127', - "micro;": '\U000000B5', - "mid;": '\U00002223', - "midast;": '\U0000002A', - "midcir;": '\U00002AF0', - "middot;": '\U000000B7', - "minus;": '\U00002212', - "minusb;": '\U0000229F', - "minusd;": '\U00002238', - "minusdu;": '\U00002A2A', - "mlcp;": '\U00002ADB', - "mldr;": '\U00002026', - "mnplus;": '\U00002213', - "models;": '\U000022A7', - "mopf;": '\U0001D55E', - "mp;": '\U00002213', - "mscr;": '\U0001D4C2', - "mstpos;": '\U0000223E', - "mu;": '\U000003BC', - "multimap;": '\U000022B8', - "mumap;": '\U000022B8', - "nLeftarrow;": '\U000021CD', - "nLeftrightarrow;": '\U000021CE', - "nRightarrow;": '\U000021CF', - "nVDash;": '\U000022AF', - "nVdash;": '\U000022AE', - "nabla;": '\U00002207', - "nacute;": '\U00000144', - "nap;": '\U00002249', - "napos;": '\U00000149', - "napprox;": '\U00002249', - "natur;": '\U0000266E', - "natural;": '\U0000266E', - "naturals;": '\U00002115', - "nbsp;": '\U000000A0', - "ncap;": '\U00002A43', - "ncaron;": '\U00000148', - "ncedil;": '\U00000146', - "ncong;": '\U00002247', - "ncup;": '\U00002A42', - "ncy;": '\U0000043D', - "ndash;": '\U00002013', - "ne;": '\U00002260', - "neArr;": '\U000021D7', - "nearhk;": '\U00002924', - "nearr;": '\U00002197', - "nearrow;": '\U00002197', - "nequiv;": '\U00002262', - "nesear;": '\U00002928', - "nexist;": '\U00002204', - "nexists;": '\U00002204', - "nfr;": '\U0001D52B', - "nge;": '\U00002271', - "ngeq;": '\U00002271', - "ngsim;": '\U00002275', - "ngt;": '\U0000226F', - "ngtr;": '\U0000226F', - "nhArr;": '\U000021CE', - "nharr;": '\U000021AE', - "nhpar;": '\U00002AF2', - "ni;": '\U0000220B', - "nis;": '\U000022FC', - "nisd;": '\U000022FA', - "niv;": '\U0000220B', - "njcy;": '\U0000045A', - "nlArr;": '\U000021CD', - "nlarr;": '\U0000219A', - "nldr;": '\U00002025', - "nle;": '\U00002270', - "nleftarrow;": '\U0000219A', - "nleftrightarrow;": '\U000021AE', - "nleq;": '\U00002270', - "nless;": '\U0000226E', - "nlsim;": '\U00002274', - "nlt;": '\U0000226E', - "nltri;": '\U000022EA', - "nltrie;": '\U000022EC', - "nmid;": '\U00002224', - "nopf;": '\U0001D55F', - "not;": '\U000000AC', - "notin;": '\U00002209', - "notinva;": '\U00002209', - "notinvb;": '\U000022F7', - "notinvc;": '\U000022F6', - "notni;": '\U0000220C', - "notniva;": '\U0000220C', - "notnivb;": '\U000022FE', - "notnivc;": '\U000022FD', - "npar;": '\U00002226', - "nparallel;": '\U00002226', - "npolint;": '\U00002A14', - "npr;": '\U00002280', - "nprcue;": '\U000022E0', - "nprec;": '\U00002280', - "nrArr;": '\U000021CF', - "nrarr;": '\U0000219B', - "nrightarrow;": '\U0000219B', - "nrtri;": '\U000022EB', - "nrtrie;": '\U000022ED', - "nsc;": '\U00002281', - "nsccue;": '\U000022E1', - "nscr;": '\U0001D4C3', - "nshortmid;": '\U00002224', - "nshortparallel;": '\U00002226', - "nsim;": '\U00002241', - "nsime;": '\U00002244', - "nsimeq;": '\U00002244', - "nsmid;": '\U00002224', - "nspar;": '\U00002226', - "nsqsube;": '\U000022E2', - "nsqsupe;": '\U000022E3', - "nsub;": '\U00002284', - "nsube;": '\U00002288', - "nsubseteq;": '\U00002288', - "nsucc;": '\U00002281', - "nsup;": '\U00002285', - "nsupe;": '\U00002289', - "nsupseteq;": '\U00002289', - "ntgl;": '\U00002279', - "ntilde;": '\U000000F1', - "ntlg;": '\U00002278', - "ntriangleleft;": '\U000022EA', - "ntrianglelefteq;": '\U000022EC', - "ntriangleright;": '\U000022EB', - "ntrianglerighteq;": '\U000022ED', - "nu;": '\U000003BD', - "num;": '\U00000023', - "numero;": '\U00002116', - "numsp;": '\U00002007', - "nvDash;": '\U000022AD', - "nvHarr;": '\U00002904', - "nvdash;": '\U000022AC', - "nvinfin;": '\U000029DE', - "nvlArr;": '\U00002902', - "nvrArr;": '\U00002903', - "nwArr;": '\U000021D6', - "nwarhk;": '\U00002923', - "nwarr;": '\U00002196', - "nwarrow;": '\U00002196', - "nwnear;": '\U00002927', - "oS;": '\U000024C8', - "oacute;": '\U000000F3', - "oast;": '\U0000229B', - "ocir;": '\U0000229A', - "ocirc;": '\U000000F4', - "ocy;": '\U0000043E', - "odash;": '\U0000229D', - "odblac;": '\U00000151', - "odiv;": '\U00002A38', - "odot;": '\U00002299', - "odsold;": '\U000029BC', - "oelig;": '\U00000153', - "ofcir;": '\U000029BF', - "ofr;": '\U0001D52C', - "ogon;": '\U000002DB', - "ograve;": '\U000000F2', - "ogt;": '\U000029C1', - "ohbar;": '\U000029B5', - "ohm;": '\U000003A9', - "oint;": '\U0000222E', - "olarr;": '\U000021BA', - "olcir;": '\U000029BE', - "olcross;": '\U000029BB', - "oline;": '\U0000203E', - "olt;": '\U000029C0', - "omacr;": '\U0000014D', - "omega;": '\U000003C9', - "omicron;": '\U000003BF', - "omid;": '\U000029B6', - "ominus;": '\U00002296', - "oopf;": '\U0001D560', - "opar;": '\U000029B7', - "operp;": '\U000029B9', - "oplus;": '\U00002295', - "or;": '\U00002228', - "orarr;": '\U000021BB', - "ord;": '\U00002A5D', - "order;": '\U00002134', - "orderof;": '\U00002134', - "ordf;": '\U000000AA', - "ordm;": '\U000000BA', - "origof;": '\U000022B6', - "oror;": '\U00002A56', - "orslope;": '\U00002A57', - "orv;": '\U00002A5B', - "oscr;": '\U00002134', - "oslash;": '\U000000F8', - "osol;": '\U00002298', - "otilde;": '\U000000F5', - "otimes;": '\U00002297', - "otimesas;": '\U00002A36', - "ouml;": '\U000000F6', - "ovbar;": '\U0000233D', - "par;": '\U00002225', - "para;": '\U000000B6', - "parallel;": '\U00002225', - "parsim;": '\U00002AF3', - "parsl;": '\U00002AFD', - "part;": '\U00002202', - "pcy;": '\U0000043F', - "percnt;": '\U00000025', - "period;": '\U0000002E', - "permil;": '\U00002030', - "perp;": '\U000022A5', - "pertenk;": '\U00002031', - "pfr;": '\U0001D52D', - "phi;": '\U000003C6', - "phiv;": '\U000003D5', - "phmmat;": '\U00002133', - "phone;": '\U0000260E', - "pi;": '\U000003C0', - "pitchfork;": '\U000022D4', - "piv;": '\U000003D6', - "planck;": '\U0000210F', - "planckh;": '\U0000210E', - "plankv;": '\U0000210F', - "plus;": '\U0000002B', - "plusacir;": '\U00002A23', - "plusb;": '\U0000229E', - "pluscir;": '\U00002A22', - "plusdo;": '\U00002214', - "plusdu;": '\U00002A25', - "pluse;": '\U00002A72', - "plusmn;": '\U000000B1', - "plussim;": '\U00002A26', - "plustwo;": '\U00002A27', - "pm;": '\U000000B1', - "pointint;": '\U00002A15', - "popf;": '\U0001D561', - "pound;": '\U000000A3', - "pr;": '\U0000227A', - "prE;": '\U00002AB3', - "prap;": '\U00002AB7', - "prcue;": '\U0000227C', - "pre;": '\U00002AAF', - "prec;": '\U0000227A', - "precapprox;": '\U00002AB7', - "preccurlyeq;": '\U0000227C', - "preceq;": '\U00002AAF', - "precnapprox;": '\U00002AB9', - "precneqq;": '\U00002AB5', - "precnsim;": '\U000022E8', - "precsim;": '\U0000227E', - "prime;": '\U00002032', - "primes;": '\U00002119', - "prnE;": '\U00002AB5', - "prnap;": '\U00002AB9', - "prnsim;": '\U000022E8', - "prod;": '\U0000220F', - "profalar;": '\U0000232E', - "profline;": '\U00002312', - "profsurf;": '\U00002313', - "prop;": '\U0000221D', - "propto;": '\U0000221D', - "prsim;": '\U0000227E', - "prurel;": '\U000022B0', - "pscr;": '\U0001D4C5', - "psi;": '\U000003C8', - "puncsp;": '\U00002008', - "qfr;": '\U0001D52E', - "qint;": '\U00002A0C', - "qopf;": '\U0001D562', - "qprime;": '\U00002057', - "qscr;": '\U0001D4C6', - "quaternions;": '\U0000210D', - "quatint;": '\U00002A16', - "quest;": '\U0000003F', - "questeq;": '\U0000225F', - "quot;": '\U00000022', - "rAarr;": '\U000021DB', - "rArr;": '\U000021D2', - "rAtail;": '\U0000291C', - "rBarr;": '\U0000290F', - "rHar;": '\U00002964', - "racute;": '\U00000155', - "radic;": '\U0000221A', - "raemptyv;": '\U000029B3', - "rang;": '\U000027E9', - "rangd;": '\U00002992', - "range;": '\U000029A5', - "rangle;": '\U000027E9', - "raquo;": '\U000000BB', - "rarr;": '\U00002192', - "rarrap;": '\U00002975', - "rarrb;": '\U000021E5', - "rarrbfs;": '\U00002920', - "rarrc;": '\U00002933', - "rarrfs;": '\U0000291E', - "rarrhk;": '\U000021AA', - "rarrlp;": '\U000021AC', - "rarrpl;": '\U00002945', - "rarrsim;": '\U00002974', - "rarrtl;": '\U000021A3', - "rarrw;": '\U0000219D', - "ratail;": '\U0000291A', - "ratio;": '\U00002236', - "rationals;": '\U0000211A', - "rbarr;": '\U0000290D', - "rbbrk;": '\U00002773', - "rbrace;": '\U0000007D', - "rbrack;": '\U0000005D', - "rbrke;": '\U0000298C', - "rbrksld;": '\U0000298E', - "rbrkslu;": '\U00002990', - "rcaron;": '\U00000159', - "rcedil;": '\U00000157', - "rceil;": '\U00002309', - "rcub;": '\U0000007D', - "rcy;": '\U00000440', - "rdca;": '\U00002937', - "rdldhar;": '\U00002969', - "rdquo;": '\U0000201D', - "rdquor;": '\U0000201D', - "rdsh;": '\U000021B3', - "real;": '\U0000211C', - "realine;": '\U0000211B', - "realpart;": '\U0000211C', - "reals;": '\U0000211D', - "rect;": '\U000025AD', - "reg;": '\U000000AE', - "rfisht;": '\U0000297D', - "rfloor;": '\U0000230B', - "rfr;": '\U0001D52F', - "rhard;": '\U000021C1', - "rharu;": '\U000021C0', - "rharul;": '\U0000296C', - "rho;": '\U000003C1', - "rhov;": '\U000003F1', - "rightarrow;": '\U00002192', - "rightarrowtail;": '\U000021A3', - "rightharpoondown;": '\U000021C1', - "rightharpoonup;": '\U000021C0', - "rightleftarrows;": '\U000021C4', - "rightleftharpoons;": '\U000021CC', - "rightrightarrows;": '\U000021C9', - "rightsquigarrow;": '\U0000219D', - "rightthreetimes;": '\U000022CC', - "ring;": '\U000002DA', - "risingdotseq;": '\U00002253', - "rlarr;": '\U000021C4', - "rlhar;": '\U000021CC', - "rlm;": '\U0000200F', - "rmoust;": '\U000023B1', - "rmoustache;": '\U000023B1', - "rnmid;": '\U00002AEE', - "roang;": '\U000027ED', - "roarr;": '\U000021FE', - "robrk;": '\U000027E7', - "ropar;": '\U00002986', - "ropf;": '\U0001D563', - "roplus;": '\U00002A2E', - "rotimes;": '\U00002A35', - "rpar;": '\U00000029', - "rpargt;": '\U00002994', - "rppolint;": '\U00002A12', - "rrarr;": '\U000021C9', - "rsaquo;": '\U0000203A', - "rscr;": '\U0001D4C7', - "rsh;": '\U000021B1', - "rsqb;": '\U0000005D', - "rsquo;": '\U00002019', - "rsquor;": '\U00002019', - "rthree;": '\U000022CC', - "rtimes;": '\U000022CA', - "rtri;": '\U000025B9', - "rtrie;": '\U000022B5', - "rtrif;": '\U000025B8', - "rtriltri;": '\U000029CE', - "ruluhar;": '\U00002968', - "rx;": '\U0000211E', - "sacute;": '\U0000015B', - "sbquo;": '\U0000201A', - "sc;": '\U0000227B', - "scE;": '\U00002AB4', - "scap;": '\U00002AB8', - "scaron;": '\U00000161', - "sccue;": '\U0000227D', - "sce;": '\U00002AB0', - "scedil;": '\U0000015F', - "scirc;": '\U0000015D', - "scnE;": '\U00002AB6', - "scnap;": '\U00002ABA', - "scnsim;": '\U000022E9', - "scpolint;": '\U00002A13', - "scsim;": '\U0000227F', - "scy;": '\U00000441', - "sdot;": '\U000022C5', - "sdotb;": '\U000022A1', - "sdote;": '\U00002A66', - "seArr;": '\U000021D8', - "searhk;": '\U00002925', - "searr;": '\U00002198', - "searrow;": '\U00002198', - "sect;": '\U000000A7', - "semi;": '\U0000003B', - "seswar;": '\U00002929', - "setminus;": '\U00002216', - "setmn;": '\U00002216', - "sext;": '\U00002736', - "sfr;": '\U0001D530', - "sfrown;": '\U00002322', - "sharp;": '\U0000266F', - "shchcy;": '\U00000449', - "shcy;": '\U00000448', - "shortmid;": '\U00002223', - "shortparallel;": '\U00002225', - "shy;": '\U000000AD', - "sigma;": '\U000003C3', - "sigmaf;": '\U000003C2', - "sigmav;": '\U000003C2', - "sim;": '\U0000223C', - "simdot;": '\U00002A6A', - "sime;": '\U00002243', - "simeq;": '\U00002243', - "simg;": '\U00002A9E', - "simgE;": '\U00002AA0', - "siml;": '\U00002A9D', - "simlE;": '\U00002A9F', - "simne;": '\U00002246', - "simplus;": '\U00002A24', - "simrarr;": '\U00002972', - "slarr;": '\U00002190', - "smallsetminus;": '\U00002216', - "smashp;": '\U00002A33', - "smeparsl;": '\U000029E4', - "smid;": '\U00002223', - "smile;": '\U00002323', - "smt;": '\U00002AAA', - "smte;": '\U00002AAC', - "softcy;": '\U0000044C', - "sol;": '\U0000002F', - "solb;": '\U000029C4', - "solbar;": '\U0000233F', - "sopf;": '\U0001D564', - "spades;": '\U00002660', - "spadesuit;": '\U00002660', - "spar;": '\U00002225', - "sqcap;": '\U00002293', - "sqcup;": '\U00002294', - "sqsub;": '\U0000228F', - "sqsube;": '\U00002291', - "sqsubset;": '\U0000228F', - "sqsubseteq;": '\U00002291', - "sqsup;": '\U00002290', - "sqsupe;": '\U00002292', - "sqsupset;": '\U00002290', - "sqsupseteq;": '\U00002292', - "squ;": '\U000025A1', - "square;": '\U000025A1', - "squarf;": '\U000025AA', - "squf;": '\U000025AA', - "srarr;": '\U00002192', - "sscr;": '\U0001D4C8', - "ssetmn;": '\U00002216', - "ssmile;": '\U00002323', - "sstarf;": '\U000022C6', - "star;": '\U00002606', - "starf;": '\U00002605', - "straightepsilon;": '\U000003F5', - "straightphi;": '\U000003D5', - "strns;": '\U000000AF', - "sub;": '\U00002282', - "subE;": '\U00002AC5', - "subdot;": '\U00002ABD', - "sube;": '\U00002286', - "subedot;": '\U00002AC3', - "submult;": '\U00002AC1', - "subnE;": '\U00002ACB', - "subne;": '\U0000228A', - "subplus;": '\U00002ABF', - "subrarr;": '\U00002979', - "subset;": '\U00002282', - "subseteq;": '\U00002286', - "subseteqq;": '\U00002AC5', - "subsetneq;": '\U0000228A', - "subsetneqq;": '\U00002ACB', - "subsim;": '\U00002AC7', - "subsub;": '\U00002AD5', - "subsup;": '\U00002AD3', - "succ;": '\U0000227B', - "succapprox;": '\U00002AB8', - "succcurlyeq;": '\U0000227D', - "succeq;": '\U00002AB0', - "succnapprox;": '\U00002ABA', - "succneqq;": '\U00002AB6', - "succnsim;": '\U000022E9', - "succsim;": '\U0000227F', - "sum;": '\U00002211', - "sung;": '\U0000266A', - "sup;": '\U00002283', - "sup1;": '\U000000B9', - "sup2;": '\U000000B2', - "sup3;": '\U000000B3', - "supE;": '\U00002AC6', - "supdot;": '\U00002ABE', - "supdsub;": '\U00002AD8', - "supe;": '\U00002287', - "supedot;": '\U00002AC4', - "suphsol;": '\U000027C9', - "suphsub;": '\U00002AD7', - "suplarr;": '\U0000297B', - "supmult;": '\U00002AC2', - "supnE;": '\U00002ACC', - "supne;": '\U0000228B', - "supplus;": '\U00002AC0', - "supset;": '\U00002283', - "supseteq;": '\U00002287', - "supseteqq;": '\U00002AC6', - "supsetneq;": '\U0000228B', - "supsetneqq;": '\U00002ACC', - "supsim;": '\U00002AC8', - "supsub;": '\U00002AD4', - "supsup;": '\U00002AD6', - "swArr;": '\U000021D9', - "swarhk;": '\U00002926', - "swarr;": '\U00002199', - "swarrow;": '\U00002199', - "swnwar;": '\U0000292A', - "szlig;": '\U000000DF', - "target;": '\U00002316', - "tau;": '\U000003C4', - "tbrk;": '\U000023B4', - "tcaron;": '\U00000165', - "tcedil;": '\U00000163', - "tcy;": '\U00000442', - "tdot;": '\U000020DB', - "telrec;": '\U00002315', - "tfr;": '\U0001D531', - "there4;": '\U00002234', - "therefore;": '\U00002234', - "theta;": '\U000003B8', - "thetasym;": '\U000003D1', - "thetav;": '\U000003D1', - "thickapprox;": '\U00002248', - "thicksim;": '\U0000223C', - "thinsp;": '\U00002009', - "thkap;": '\U00002248', - "thksim;": '\U0000223C', - "thorn;": '\U000000FE', - "tilde;": '\U000002DC', - "times;": '\U000000D7', - "timesb;": '\U000022A0', - "timesbar;": '\U00002A31', - "timesd;": '\U00002A30', - "tint;": '\U0000222D', - "toea;": '\U00002928', - "top;": '\U000022A4', - "topbot;": '\U00002336', - "topcir;": '\U00002AF1', - "topf;": '\U0001D565', - "topfork;": '\U00002ADA', - "tosa;": '\U00002929', - "tprime;": '\U00002034', - "trade;": '\U00002122', - "triangle;": '\U000025B5', - "triangledown;": '\U000025BF', - "triangleleft;": '\U000025C3', - "trianglelefteq;": '\U000022B4', - "triangleq;": '\U0000225C', - "triangleright;": '\U000025B9', - "trianglerighteq;": '\U000022B5', - "tridot;": '\U000025EC', - "trie;": '\U0000225C', - "triminus;": '\U00002A3A', - "triplus;": '\U00002A39', - "trisb;": '\U000029CD', - "tritime;": '\U00002A3B', - "trpezium;": '\U000023E2', - "tscr;": '\U0001D4C9', - "tscy;": '\U00000446', - "tshcy;": '\U0000045B', - "tstrok;": '\U00000167', - "twixt;": '\U0000226C', - "twoheadleftarrow;": '\U0000219E', - "twoheadrightarrow;": '\U000021A0', - "uArr;": '\U000021D1', - "uHar;": '\U00002963', - "uacute;": '\U000000FA', - "uarr;": '\U00002191', - "ubrcy;": '\U0000045E', - "ubreve;": '\U0000016D', - "ucirc;": '\U000000FB', - "ucy;": '\U00000443', - "udarr;": '\U000021C5', - "udblac;": '\U00000171', - "udhar;": '\U0000296E', - "ufisht;": '\U0000297E', - "ufr;": '\U0001D532', - "ugrave;": '\U000000F9', - "uharl;": '\U000021BF', - "uharr;": '\U000021BE', - "uhblk;": '\U00002580', - "ulcorn;": '\U0000231C', - "ulcorner;": '\U0000231C', - "ulcrop;": '\U0000230F', - "ultri;": '\U000025F8', - "umacr;": '\U0000016B', - "uml;": '\U000000A8', - "uogon;": '\U00000173', - "uopf;": '\U0001D566', - "uparrow;": '\U00002191', - "updownarrow;": '\U00002195', - "upharpoonleft;": '\U000021BF', - "upharpoonright;": '\U000021BE', - "uplus;": '\U0000228E', - "upsi;": '\U000003C5', - "upsih;": '\U000003D2', - "upsilon;": '\U000003C5', - "upuparrows;": '\U000021C8', - "urcorn;": '\U0000231D', - "urcorner;": '\U0000231D', - "urcrop;": '\U0000230E', - "uring;": '\U0000016F', - "urtri;": '\U000025F9', - "uscr;": '\U0001D4CA', - "utdot;": '\U000022F0', - "utilde;": '\U00000169', - "utri;": '\U000025B5', - "utrif;": '\U000025B4', - "uuarr;": '\U000021C8', - "uuml;": '\U000000FC', - "uwangle;": '\U000029A7', - "vArr;": '\U000021D5', - "vBar;": '\U00002AE8', - "vBarv;": '\U00002AE9', - "vDash;": '\U000022A8', - "vangrt;": '\U0000299C', - "varepsilon;": '\U000003F5', - "varkappa;": '\U000003F0', - "varnothing;": '\U00002205', - "varphi;": '\U000003D5', - "varpi;": '\U000003D6', - "varpropto;": '\U0000221D', - "varr;": '\U00002195', - "varrho;": '\U000003F1', - "varsigma;": '\U000003C2', - "vartheta;": '\U000003D1', - "vartriangleleft;": '\U000022B2', - "vartriangleright;": '\U000022B3', - "vcy;": '\U00000432', - "vdash;": '\U000022A2', - "vee;": '\U00002228', - "veebar;": '\U000022BB', - "veeeq;": '\U0000225A', - "vellip;": '\U000022EE', - "verbar;": '\U0000007C', - "vert;": '\U0000007C', - "vfr;": '\U0001D533', - "vltri;": '\U000022B2', - "vopf;": '\U0001D567', - "vprop;": '\U0000221D', - "vrtri;": '\U000022B3', - "vscr;": '\U0001D4CB', - "vzigzag;": '\U0000299A', - "wcirc;": '\U00000175', - "wedbar;": '\U00002A5F', - "wedge;": '\U00002227', - "wedgeq;": '\U00002259', - "weierp;": '\U00002118', - "wfr;": '\U0001D534', - "wopf;": '\U0001D568', - "wp;": '\U00002118', - "wr;": '\U00002240', - "wreath;": '\U00002240', - "wscr;": '\U0001D4CC', - "xcap;": '\U000022C2', - "xcirc;": '\U000025EF', - "xcup;": '\U000022C3', - "xdtri;": '\U000025BD', - "xfr;": '\U0001D535', - "xhArr;": '\U000027FA', - "xharr;": '\U000027F7', - "xi;": '\U000003BE', - "xlArr;": '\U000027F8', - "xlarr;": '\U000027F5', - "xmap;": '\U000027FC', - "xnis;": '\U000022FB', - "xodot;": '\U00002A00', - "xopf;": '\U0001D569', - "xoplus;": '\U00002A01', - "xotime;": '\U00002A02', - "xrArr;": '\U000027F9', - "xrarr;": '\U000027F6', - "xscr;": '\U0001D4CD', - "xsqcup;": '\U00002A06', - "xuplus;": '\U00002A04', - "xutri;": '\U000025B3', - "xvee;": '\U000022C1', - "xwedge;": '\U000022C0', - "yacute;": '\U000000FD', - "yacy;": '\U0000044F', - "ycirc;": '\U00000177', - "ycy;": '\U0000044B', - "yen;": '\U000000A5', - "yfr;": '\U0001D536', - "yicy;": '\U00000457', - "yopf;": '\U0001D56A', - "yscr;": '\U0001D4CE', - "yucy;": '\U0000044E', - "yuml;": '\U000000FF', - "zacute;": '\U0000017A', - "zcaron;": '\U0000017E', - "zcy;": '\U00000437', - "zdot;": '\U0000017C', - "zeetrf;": '\U00002128', - "zeta;": '\U000003B6', - "zfr;": '\U0001D537', - "zhcy;": '\U00000436', - "zigrarr;": '\U000021DD', - "zopf;": '\U0001D56B', - "zscr;": '\U0001D4CF', - "zwj;": '\U0000200D', - "zwnj;": '\U0000200C', - "AElig": '\U000000C6', - "AMP": '\U00000026', - "Aacute": '\U000000C1', - "Acirc": '\U000000C2', - "Agrave": '\U000000C0', - "Aring": '\U000000C5', - "Atilde": '\U000000C3', - "Auml": '\U000000C4', - "COPY": '\U000000A9', - "Ccedil": '\U000000C7', - "ETH": '\U000000D0', - "Eacute": '\U000000C9', - "Ecirc": '\U000000CA', - "Egrave": '\U000000C8', - "Euml": '\U000000CB', - "GT": '\U0000003E', - "Iacute": '\U000000CD', - "Icirc": '\U000000CE', - "Igrave": '\U000000CC', - "Iuml": '\U000000CF', - "LT": '\U0000003C', - "Ntilde": '\U000000D1', - "Oacute": '\U000000D3', - "Ocirc": '\U000000D4', - "Ograve": '\U000000D2', - "Oslash": '\U000000D8', - "Otilde": '\U000000D5', - "Ouml": '\U000000D6', - "QUOT": '\U00000022', - "REG": '\U000000AE', - "THORN": '\U000000DE', - "Uacute": '\U000000DA', - "Ucirc": '\U000000DB', - "Ugrave": '\U000000D9', - "Uuml": '\U000000DC', - "Yacute": '\U000000DD', - "aacute": '\U000000E1', - "acirc": '\U000000E2', - "acute": '\U000000B4', - "aelig": '\U000000E6', - "agrave": '\U000000E0', - "amp": '\U00000026', - "aring": '\U000000E5', - "atilde": '\U000000E3', - "auml": '\U000000E4', - "brvbar": '\U000000A6', - "ccedil": '\U000000E7', - "cedil": '\U000000B8', - "cent": '\U000000A2', - "copy": '\U000000A9', - "curren": '\U000000A4', - "deg": '\U000000B0', - "divide": '\U000000F7', - "eacute": '\U000000E9', - "ecirc": '\U000000EA', - "egrave": '\U000000E8', - "eth": '\U000000F0', - "euml": '\U000000EB', - "frac12": '\U000000BD', - "frac14": '\U000000BC', - "frac34": '\U000000BE', - "gt": '\U0000003E', - "iacute": '\U000000ED', - "icirc": '\U000000EE', - "iexcl": '\U000000A1', - "igrave": '\U000000EC', - "iquest": '\U000000BF', - "iuml": '\U000000EF', - "laquo": '\U000000AB', - "lt": '\U0000003C', - "macr": '\U000000AF', - "micro": '\U000000B5', - "middot": '\U000000B7', - "nbsp": '\U000000A0', - "not": '\U000000AC', - "ntilde": '\U000000F1', - "oacute": '\U000000F3', - "ocirc": '\U000000F4', - "ograve": '\U000000F2', - "ordf": '\U000000AA', - "ordm": '\U000000BA', - "oslash": '\U000000F8', - "otilde": '\U000000F5', - "ouml": '\U000000F6', - "para": '\U000000B6', - "plusmn": '\U000000B1', - "pound": '\U000000A3', - "quot": '\U00000022', - "raquo": '\U000000BB', - "reg": '\U000000AE', - "sect": '\U000000A7', - "shy": '\U000000AD', - "sup1": '\U000000B9', - "sup2": '\U000000B2', - "sup3": '\U000000B3', - "szlig": '\U000000DF', - "thorn": '\U000000FE', - "times": '\U000000D7', - "uacute": '\U000000FA', - "ucirc": '\U000000FB', - "ugrave": '\U000000F9', - "uml": '\U000000A8', - "uuml": '\U000000FC', - "yacute": '\U000000FD', - "yen": '\U000000A5', - "yuml": '\U000000FF', -} - -// HTML entities that are two unicode codepoints. -var entity2 = map[string][2]rune{ - // TODO(nigeltao): Handle replacements that are wider than their names. - // "nLt;": {'\u226A', '\u20D2'}, - // "nGt;": {'\u226B', '\u20D2'}, - "NotEqualTilde;": {'\u2242', '\u0338'}, - "NotGreaterFullEqual;": {'\u2267', '\u0338'}, - "NotGreaterGreater;": {'\u226B', '\u0338'}, - "NotGreaterSlantEqual;": {'\u2A7E', '\u0338'}, - "NotHumpDownHump;": {'\u224E', '\u0338'}, - "NotHumpEqual;": {'\u224F', '\u0338'}, - "NotLeftTriangleBar;": {'\u29CF', '\u0338'}, - "NotLessLess;": {'\u226A', '\u0338'}, - "NotLessSlantEqual;": {'\u2A7D', '\u0338'}, - "NotNestedGreaterGreater;": {'\u2AA2', '\u0338'}, - "NotNestedLessLess;": {'\u2AA1', '\u0338'}, - "NotPrecedesEqual;": {'\u2AAF', '\u0338'}, - "NotRightTriangleBar;": {'\u29D0', '\u0338'}, - "NotSquareSubset;": {'\u228F', '\u0338'}, - "NotSquareSuperset;": {'\u2290', '\u0338'}, - "NotSubset;": {'\u2282', '\u20D2'}, - "NotSucceedsEqual;": {'\u2AB0', '\u0338'}, - "NotSucceedsTilde;": {'\u227F', '\u0338'}, - "NotSuperset;": {'\u2283', '\u20D2'}, - "ThickSpace;": {'\u205F', '\u200A'}, - "acE;": {'\u223E', '\u0333'}, - "bne;": {'\u003D', '\u20E5'}, - "bnequiv;": {'\u2261', '\u20E5'}, - "caps;": {'\u2229', '\uFE00'}, - "cups;": {'\u222A', '\uFE00'}, - "fjlig;": {'\u0066', '\u006A'}, - "gesl;": {'\u22DB', '\uFE00'}, - "gvertneqq;": {'\u2269', '\uFE00'}, - "gvnE;": {'\u2269', '\uFE00'}, - "lates;": {'\u2AAD', '\uFE00'}, - "lesg;": {'\u22DA', '\uFE00'}, - "lvertneqq;": {'\u2268', '\uFE00'}, - "lvnE;": {'\u2268', '\uFE00'}, - "nGg;": {'\u22D9', '\u0338'}, - "nGtv;": {'\u226B', '\u0338'}, - "nLl;": {'\u22D8', '\u0338'}, - "nLtv;": {'\u226A', '\u0338'}, - "nang;": {'\u2220', '\u20D2'}, - "napE;": {'\u2A70', '\u0338'}, - "napid;": {'\u224B', '\u0338'}, - "nbump;": {'\u224E', '\u0338'}, - "nbumpe;": {'\u224F', '\u0338'}, - "ncongdot;": {'\u2A6D', '\u0338'}, - "nedot;": {'\u2250', '\u0338'}, - "nesim;": {'\u2242', '\u0338'}, - "ngE;": {'\u2267', '\u0338'}, - "ngeqq;": {'\u2267', '\u0338'}, - "ngeqslant;": {'\u2A7E', '\u0338'}, - "nges;": {'\u2A7E', '\u0338'}, - "nlE;": {'\u2266', '\u0338'}, - "nleqq;": {'\u2266', '\u0338'}, - "nleqslant;": {'\u2A7D', '\u0338'}, - "nles;": {'\u2A7D', '\u0338'}, - "notinE;": {'\u22F9', '\u0338'}, - "notindot;": {'\u22F5', '\u0338'}, - "nparsl;": {'\u2AFD', '\u20E5'}, - "npart;": {'\u2202', '\u0338'}, - "npre;": {'\u2AAF', '\u0338'}, - "npreceq;": {'\u2AAF', '\u0338'}, - "nrarrc;": {'\u2933', '\u0338'}, - "nrarrw;": {'\u219D', '\u0338'}, - "nsce;": {'\u2AB0', '\u0338'}, - "nsubE;": {'\u2AC5', '\u0338'}, - "nsubset;": {'\u2282', '\u20D2'}, - "nsubseteqq;": {'\u2AC5', '\u0338'}, - "nsucceq;": {'\u2AB0', '\u0338'}, - "nsupE;": {'\u2AC6', '\u0338'}, - "nsupset;": {'\u2283', '\u20D2'}, - "nsupseteqq;": {'\u2AC6', '\u0338'}, - "nvap;": {'\u224D', '\u20D2'}, - "nvge;": {'\u2265', '\u20D2'}, - "nvgt;": {'\u003E', '\u20D2'}, - "nvle;": {'\u2264', '\u20D2'}, - "nvlt;": {'\u003C', '\u20D2'}, - "nvltrie;": {'\u22B4', '\u20D2'}, - "nvrtrie;": {'\u22B5', '\u20D2'}, - "nvsim;": {'\u223C', '\u20D2'}, - "race;": {'\u223D', '\u0331'}, - "smtes;": {'\u2AAC', '\uFE00'}, - "sqcaps;": {'\u2293', '\uFE00'}, - "sqcups;": {'\u2294', '\uFE00'}, - "varsubsetneq;": {'\u228A', '\uFE00'}, - "varsubsetneqq;": {'\u2ACB', '\uFE00'}, - "varsupsetneq;": {'\u228B', '\uFE00'}, - "varsupsetneqq;": {'\u2ACC', '\uFE00'}, - "vnsub;": {'\u2282', '\u20D2'}, - "vnsup;": {'\u2283', '\u20D2'}, - "vsubnE;": {'\u2ACB', '\uFE00'}, - "vsubne;": {'\u228A', '\uFE00'}, - "vsupnE;": {'\u2ACC', '\uFE00'}, - "vsupne;": {'\u228B', '\uFE00'}, -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/entity_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/entity_test.go deleted file mode 100644 index b53f866f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/entity_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2010 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 html - -import ( - "testing" - "unicode/utf8" -) - -func TestEntityLength(t *testing.T) { - // We verify that the length of UTF-8 encoding of each value is <= 1 + len(key). - // The +1 comes from the leading "&". This property implies that the length of - // unescaped text is <= the length of escaped text. - for k, v := range entity { - if 1+len(k) < utf8.RuneLen(v) { - t.Error("escaped entity &" + k + " is shorter than its UTF-8 encoding " + string(v)) - } - if len(k) > longestEntityWithoutSemicolon && k[len(k)-1] != ';' { - t.Errorf("entity name %s is %d characters, but longestEntityWithoutSemicolon=%d", k, len(k), longestEntityWithoutSemicolon) - } - } - for k, v := range entity2 { - if 1+len(k) < utf8.RuneLen(v[0])+utf8.RuneLen(v[1]) { - t.Error("escaped entity &" + k + " is shorter than its UTF-8 encoding " + string(v[0]) + string(v[1])) - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/escape.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/escape.go deleted file mode 100644 index d8561396..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/escape.go +++ /dev/null @@ -1,258 +0,0 @@ -// Copyright 2010 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 html - -import ( - "bytes" - "strings" - "unicode/utf8" -) - -// These replacements permit compatibility with old numeric entities that -// assumed Windows-1252 encoding. -// https://html.spec.whatwg.org/multipage/syntax.html#consume-a-character-reference -var replacementTable = [...]rune{ - '\u20AC', // First entry is what 0x80 should be replaced with. - '\u0081', - '\u201A', - '\u0192', - '\u201E', - '\u2026', - '\u2020', - '\u2021', - '\u02C6', - '\u2030', - '\u0160', - '\u2039', - '\u0152', - '\u008D', - '\u017D', - '\u008F', - '\u0090', - '\u2018', - '\u2019', - '\u201C', - '\u201D', - '\u2022', - '\u2013', - '\u2014', - '\u02DC', - '\u2122', - '\u0161', - '\u203A', - '\u0153', - '\u009D', - '\u017E', - '\u0178', // Last entry is 0x9F. - // 0x00->'\uFFFD' is handled programmatically. - // 0x0D->'\u000D' is a no-op. -} - -// unescapeEntity reads an entity like "<" from b[src:] and writes the -// corresponding "<" to b[dst:], returning the incremented dst and src cursors. -// Precondition: b[src] == '&' && dst <= src. -// attribute should be true if parsing an attribute value. -func unescapeEntity(b []byte, dst, src int, attribute bool) (dst1, src1 int) { - // https://html.spec.whatwg.org/multipage/syntax.html#consume-a-character-reference - - // i starts at 1 because we already know that s[0] == '&'. - i, s := 1, b[src:] - - if len(s) <= 1 { - b[dst] = b[src] - return dst + 1, src + 1 - } - - if s[i] == '#' { - if len(s) <= 3 { // We need to have at least "&#.". - b[dst] = b[src] - return dst + 1, src + 1 - } - i++ - c := s[i] - hex := false - if c == 'x' || c == 'X' { - hex = true - i++ - } - - x := '\x00' - for i < len(s) { - c = s[i] - i++ - if hex { - if '0' <= c && c <= '9' { - x = 16*x + rune(c) - '0' - continue - } else if 'a' <= c && c <= 'f' { - x = 16*x + rune(c) - 'a' + 10 - continue - } else if 'A' <= c && c <= 'F' { - x = 16*x + rune(c) - 'A' + 10 - continue - } - } else if '0' <= c && c <= '9' { - x = 10*x + rune(c) - '0' - continue - } - if c != ';' { - i-- - } - break - } - - if i <= 3 { // No characters matched. - b[dst] = b[src] - return dst + 1, src + 1 - } - - if 0x80 <= x && x <= 0x9F { - // Replace characters from Windows-1252 with UTF-8 equivalents. - x = replacementTable[x-0x80] - } else if x == 0 || (0xD800 <= x && x <= 0xDFFF) || x > 0x10FFFF { - // Replace invalid characters with the replacement character. - x = '\uFFFD' - } - - return dst + utf8.EncodeRune(b[dst:], x), src + i - } - - // Consume the maximum number of characters possible, with the - // consumed characters matching one of the named references. - - for i < len(s) { - c := s[i] - i++ - // Lower-cased characters are more common in entities, so we check for them first. - if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9' { - continue - } - if c != ';' { - i-- - } - break - } - - entityName := string(s[1:i]) - if entityName == "" { - // No-op. - } else if attribute && entityName[len(entityName)-1] != ';' && len(s) > i && s[i] == '=' { - // No-op. - } else if x := entity[entityName]; x != 0 { - return dst + utf8.EncodeRune(b[dst:], x), src + i - } else if x := entity2[entityName]; x[0] != 0 { - dst1 := dst + utf8.EncodeRune(b[dst:], x[0]) - return dst1 + utf8.EncodeRune(b[dst1:], x[1]), src + i - } else if !attribute { - maxLen := len(entityName) - 1 - if maxLen > longestEntityWithoutSemicolon { - maxLen = longestEntityWithoutSemicolon - } - for j := maxLen; j > 1; j-- { - if x := entity[entityName[:j]]; x != 0 { - return dst + utf8.EncodeRune(b[dst:], x), src + j + 1 - } - } - } - - dst1, src1 = dst+i, src+i - copy(b[dst:dst1], b[src:src1]) - return dst1, src1 -} - -// unescape unescapes b's entities in-place, so that "a<b" becomes "a': - esc = ">" - case '"': - // """ is shorter than """. - esc = """ - case '\r': - esc = " " - default: - panic("unrecognized escape character") - } - s = s[i+1:] - if _, err := w.WriteString(esc); err != nil { - return err - } - i = strings.IndexAny(s, escapedChars) - } - _, err := w.WriteString(s) - return err -} - -// EscapeString escapes special characters like "<" to become "<". It -// escapes only five such characters: <, >, &, ' and ". -// UnescapeString(EscapeString(s)) == s always holds, but the converse isn't -// always true. -func EscapeString(s string) string { - if strings.IndexAny(s, escapedChars) == -1 { - return s - } - var buf bytes.Buffer - escape(&buf, s) - return buf.String() -} - -// UnescapeString unescapes entities like "<" to become "<". It unescapes a -// larger range of entities than EscapeString escapes. For example, "á" -// unescapes to "á", as does "á" and "&xE1;". -// UnescapeString(EscapeString(s)) == s always holds, but the converse isn't -// always true. -func UnescapeString(s string) string { - for _, c := range s { - if c == '&' { - return string(unescape([]byte(s), false)) - } - } - return s -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/escape_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/escape_test.go deleted file mode 100644 index b405d4b4..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/escape_test.go +++ /dev/null @@ -1,97 +0,0 @@ -// 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 html - -import "testing" - -type unescapeTest struct { - // A short description of the test case. - desc string - // The HTML text. - html string - // The unescaped text. - unescaped string -} - -var unescapeTests = []unescapeTest{ - // Handle no entities. - { - "copy", - "A\ttext\nstring", - "A\ttext\nstring", - }, - // Handle simple named entities. - { - "simple", - "& > <", - "& > <", - }, - // Handle hitting the end of the string. - { - "stringEnd", - "& &", - "& &", - }, - // Handle entities with two codepoints. - { - "multiCodepoint", - "text ⋛︀ blah", - "text \u22db\ufe00 blah", - }, - // Handle decimal numeric entities. - { - "decimalEntity", - "Delta = Δ ", - "Delta = Δ ", - }, - // Handle hexadecimal numeric entities. - { - "hexadecimalEntity", - "Lambda = λ = λ ", - "Lambda = λ = λ ", - }, - // Handle numeric early termination. - { - "numericEnds", - "&# &#x €43 © = ©f = ©", - "&# &#x €43 © = ©f = ©", - }, - // Handle numeric ISO-8859-1 entity replacements. - { - "numericReplacements", - "Footnote‡", - "Footnote‡", - }, -} - -func TestUnescape(t *testing.T) { - for _, tt := range unescapeTests { - unescaped := UnescapeString(tt.html) - if unescaped != tt.unescaped { - t.Errorf("TestUnescape %s: want %q, got %q", tt.desc, tt.unescaped, unescaped) - } - } -} - -func TestUnescapeEscape(t *testing.T) { - ss := []string{ - ``, - `abc def`, - `a & b`, - `a&b`, - `a & b`, - `"`, - `"`, - `"<&>"`, - `"<&>"`, - `3&5==1 && 0<1, "0<1", a+acute=á`, - `The special characters are: <, >, &, ' and "`, - } - for _, s := range ss { - if got := UnescapeString(EscapeString(s)); got != s { - t.Errorf("got %q want %q", got, s) - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/example_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/example_test.go deleted file mode 100644 index 40d57b2a..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/example_test.go +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2012 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. - -// This example demonstrates parsing HTML data and walking the resulting tree. -package html_test - -import ( - "fmt" - "log" - "strings" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html" -) - -func ExampleParse() { - s := `

Links:

` - doc, err := html.Parse(strings.NewReader(s)) - if err != nil { - log.Fatal(err) - } - var f func(*html.Node) - f = func(n *html.Node) { - if n.Type == html.ElementNode && n.Data == "a" { - for _, a := range n.Attr { - if a.Key == "href" { - fmt.Println(a.Val) - break - } - } - } - for c := n.FirstChild; c != nil; c = c.NextSibling { - f(c) - } - } - f(doc) - // Output: - // foo - // /bar/baz -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/foreign.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/foreign.go deleted file mode 100644 index d3b38440..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/foreign.go +++ /dev/null @@ -1,226 +0,0 @@ -// 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 html - -import ( - "strings" -) - -func adjustAttributeNames(aa []Attribute, nameMap map[string]string) { - for i := range aa { - if newName, ok := nameMap[aa[i].Key]; ok { - aa[i].Key = newName - } - } -} - -func adjustForeignAttributes(aa []Attribute) { - for i, a := range aa { - if a.Key == "" || a.Key[0] != 'x' { - continue - } - switch a.Key { - case "xlink:actuate", "xlink:arcrole", "xlink:href", "xlink:role", "xlink:show", - "xlink:title", "xlink:type", "xml:base", "xml:lang", "xml:space", "xmlns:xlink": - j := strings.Index(a.Key, ":") - aa[i].Namespace = a.Key[:j] - aa[i].Key = a.Key[j+1:] - } - } -} - -func htmlIntegrationPoint(n *Node) bool { - if n.Type != ElementNode { - return false - } - switch n.Namespace { - case "math": - if n.Data == "annotation-xml" { - for _, a := range n.Attr { - if a.Key == "encoding" { - val := strings.ToLower(a.Val) - if val == "text/html" || val == "application/xhtml+xml" { - return true - } - } - } - } - case "svg": - switch n.Data { - case "desc", "foreignObject", "title": - return true - } - } - return false -} - -func mathMLTextIntegrationPoint(n *Node) bool { - if n.Namespace != "math" { - return false - } - switch n.Data { - case "mi", "mo", "mn", "ms", "mtext": - return true - } - return false -} - -// Section 12.2.5.5. -var breakout = map[string]bool{ - "b": true, - "big": true, - "blockquote": true, - "body": true, - "br": true, - "center": true, - "code": true, - "dd": true, - "div": true, - "dl": true, - "dt": true, - "em": true, - "embed": true, - "h1": true, - "h2": true, - "h3": true, - "h4": true, - "h5": true, - "h6": true, - "head": true, - "hr": true, - "i": true, - "img": true, - "li": true, - "listing": true, - "menu": true, - "meta": true, - "nobr": true, - "ol": true, - "p": true, - "pre": true, - "ruby": true, - "s": true, - "small": true, - "span": true, - "strong": true, - "strike": true, - "sub": true, - "sup": true, - "table": true, - "tt": true, - "u": true, - "ul": true, - "var": true, -} - -// Section 12.2.5.5. -var svgTagNameAdjustments = map[string]string{ - "altglyph": "altGlyph", - "altglyphdef": "altGlyphDef", - "altglyphitem": "altGlyphItem", - "animatecolor": "animateColor", - "animatemotion": "animateMotion", - "animatetransform": "animateTransform", - "clippath": "clipPath", - "feblend": "feBlend", - "fecolormatrix": "feColorMatrix", - "fecomponenttransfer": "feComponentTransfer", - "fecomposite": "feComposite", - "feconvolvematrix": "feConvolveMatrix", - "fediffuselighting": "feDiffuseLighting", - "fedisplacementmap": "feDisplacementMap", - "fedistantlight": "feDistantLight", - "feflood": "feFlood", - "fefunca": "feFuncA", - "fefuncb": "feFuncB", - "fefuncg": "feFuncG", - "fefuncr": "feFuncR", - "fegaussianblur": "feGaussianBlur", - "feimage": "feImage", - "femerge": "feMerge", - "femergenode": "feMergeNode", - "femorphology": "feMorphology", - "feoffset": "feOffset", - "fepointlight": "fePointLight", - "fespecularlighting": "feSpecularLighting", - "fespotlight": "feSpotLight", - "fetile": "feTile", - "feturbulence": "feTurbulence", - "foreignobject": "foreignObject", - "glyphref": "glyphRef", - "lineargradient": "linearGradient", - "radialgradient": "radialGradient", - "textpath": "textPath", -} - -// Section 12.2.5.1 -var mathMLAttributeAdjustments = map[string]string{ - "definitionurl": "definitionURL", -} - -var svgAttributeAdjustments = map[string]string{ - "attributename": "attributeName", - "attributetype": "attributeType", - "basefrequency": "baseFrequency", - "baseprofile": "baseProfile", - "calcmode": "calcMode", - "clippathunits": "clipPathUnits", - "contentscripttype": "contentScriptType", - "contentstyletype": "contentStyleType", - "diffuseconstant": "diffuseConstant", - "edgemode": "edgeMode", - "externalresourcesrequired": "externalResourcesRequired", - "filterres": "filterRes", - "filterunits": "filterUnits", - "glyphref": "glyphRef", - "gradienttransform": "gradientTransform", - "gradientunits": "gradientUnits", - "kernelmatrix": "kernelMatrix", - "kernelunitlength": "kernelUnitLength", - "keypoints": "keyPoints", - "keysplines": "keySplines", - "keytimes": "keyTimes", - "lengthadjust": "lengthAdjust", - "limitingconeangle": "limitingConeAngle", - "markerheight": "markerHeight", - "markerunits": "markerUnits", - "markerwidth": "markerWidth", - "maskcontentunits": "maskContentUnits", - "maskunits": "maskUnits", - "numoctaves": "numOctaves", - "pathlength": "pathLength", - "patterncontentunits": "patternContentUnits", - "patterntransform": "patternTransform", - "patternunits": "patternUnits", - "pointsatx": "pointsAtX", - "pointsaty": "pointsAtY", - "pointsatz": "pointsAtZ", - "preservealpha": "preserveAlpha", - "preserveaspectratio": "preserveAspectRatio", - "primitiveunits": "primitiveUnits", - "refx": "refX", - "refy": "refY", - "repeatcount": "repeatCount", - "repeatdur": "repeatDur", - "requiredextensions": "requiredExtensions", - "requiredfeatures": "requiredFeatures", - "specularconstant": "specularConstant", - "specularexponent": "specularExponent", - "spreadmethod": "spreadMethod", - "startoffset": "startOffset", - "stddeviation": "stdDeviation", - "stitchtiles": "stitchTiles", - "surfacescale": "surfaceScale", - "systemlanguage": "systemLanguage", - "tablevalues": "tableValues", - "targetx": "targetX", - "targety": "targetY", - "textlength": "textLength", - "viewbox": "viewBox", - "viewtarget": "viewTarget", - "xchannelselector": "xChannelSelector", - "ychannelselector": "yChannelSelector", - "zoomandpan": "zoomAndPan", -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/node.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/node.go deleted file mode 100644 index 117a6748..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/node.go +++ /dev/null @@ -1,193 +0,0 @@ -// 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 html - -import ( - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom" -) - -// A NodeType is the type of a Node. -type NodeType uint32 - -const ( - ErrorNode NodeType = iota - TextNode - DocumentNode - ElementNode - CommentNode - DoctypeNode - scopeMarkerNode -) - -// Section 12.2.3.3 says "scope markers are inserted when entering applet -// elements, buttons, object elements, marquees, table cells, and table -// captions, and are used to prevent formatting from 'leaking'". -var scopeMarker = Node{Type: scopeMarkerNode} - -// A Node consists of a NodeType and some Data (tag name for element nodes, -// content for text) and are part of a tree of Nodes. Element nodes may also -// have a Namespace and contain a slice of Attributes. Data is unescaped, so -// that it looks like "a 0 { - return (*s)[i-1] - } - return nil -} - -// index returns the index of the top-most occurrence of n in the stack, or -1 -// if n is not present. -func (s *nodeStack) index(n *Node) int { - for i := len(*s) - 1; i >= 0; i-- { - if (*s)[i] == n { - return i - } - } - return -1 -} - -// insert inserts a node at the given index. -func (s *nodeStack) insert(i int, n *Node) { - (*s) = append(*s, nil) - copy((*s)[i+1:], (*s)[i:]) - (*s)[i] = n -} - -// remove removes a node from the stack. It is a no-op if n is not present. -func (s *nodeStack) remove(n *Node) { - i := s.index(n) - if i == -1 { - return - } - copy((*s)[i:], (*s)[i+1:]) - j := len(*s) - 1 - (*s)[j] = nil - *s = (*s)[:j] -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/node_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/node_test.go deleted file mode 100644 index 471102f3..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/node_test.go +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright 2010 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 html - -import ( - "fmt" -) - -// checkTreeConsistency checks that a node and its descendants are all -// consistent in their parent/child/sibling relationships. -func checkTreeConsistency(n *Node) error { - return checkTreeConsistency1(n, 0) -} - -func checkTreeConsistency1(n *Node, depth int) error { - if depth == 1e4 { - return fmt.Errorf("html: tree looks like it contains a cycle") - } - if err := checkNodeConsistency(n); err != nil { - return err - } - for c := n.FirstChild; c != nil; c = c.NextSibling { - if err := checkTreeConsistency1(c, depth+1); err != nil { - return err - } - } - return nil -} - -// checkNodeConsistency checks that a node's parent/child/sibling relationships -// are consistent. -func checkNodeConsistency(n *Node) error { - if n == nil { - return nil - } - - nParent := 0 - for p := n.Parent; p != nil; p = p.Parent { - nParent++ - if nParent == 1e4 { - return fmt.Errorf("html: parent list looks like an infinite loop") - } - } - - nForward := 0 - for c := n.FirstChild; c != nil; c = c.NextSibling { - nForward++ - if nForward == 1e6 { - return fmt.Errorf("html: forward list of children looks like an infinite loop") - } - if c.Parent != n { - return fmt.Errorf("html: inconsistent child/parent relationship") - } - } - - nBackward := 0 - for c := n.LastChild; c != nil; c = c.PrevSibling { - nBackward++ - if nBackward == 1e6 { - return fmt.Errorf("html: backward list of children looks like an infinite loop") - } - if c.Parent != n { - return fmt.Errorf("html: inconsistent child/parent relationship") - } - } - - if n.Parent != nil { - if n.Parent == n { - return fmt.Errorf("html: inconsistent parent relationship") - } - if n.Parent == n.FirstChild { - return fmt.Errorf("html: inconsistent parent/first relationship") - } - if n.Parent == n.LastChild { - return fmt.Errorf("html: inconsistent parent/last relationship") - } - if n.Parent == n.PrevSibling { - return fmt.Errorf("html: inconsistent parent/prev relationship") - } - if n.Parent == n.NextSibling { - return fmt.Errorf("html: inconsistent parent/next relationship") - } - - parentHasNAsAChild := false - for c := n.Parent.FirstChild; c != nil; c = c.NextSibling { - if c == n { - parentHasNAsAChild = true - break - } - } - if !parentHasNAsAChild { - return fmt.Errorf("html: inconsistent parent/child relationship") - } - } - - if n.PrevSibling != nil && n.PrevSibling.NextSibling != n { - return fmt.Errorf("html: inconsistent prev/next relationship") - } - if n.NextSibling != nil && n.NextSibling.PrevSibling != n { - return fmt.Errorf("html: inconsistent next/prev relationship") - } - - if (n.FirstChild == nil) != (n.LastChild == nil) { - return fmt.Errorf("html: inconsistent first/last relationship") - } - if n.FirstChild != nil && n.FirstChild == n.LastChild { - // We have a sole child. - if n.FirstChild.PrevSibling != nil || n.FirstChild.NextSibling != nil { - return fmt.Errorf("html: inconsistent sole child's sibling relationship") - } - } - - seen := map[*Node]bool{} - - var last *Node - for c := n.FirstChild; c != nil; c = c.NextSibling { - if seen[c] { - return fmt.Errorf("html: inconsistent repeated child") - } - seen[c] = true - last = c - } - if last != n.LastChild { - return fmt.Errorf("html: inconsistent last relationship") - } - - var first *Node - for c := n.LastChild; c != nil; c = c.PrevSibling { - if !seen[c] { - return fmt.Errorf("html: inconsistent missing child") - } - delete(seen, c) - first = c - } - if first != n.FirstChild { - return fmt.Errorf("html: inconsistent first relationship") - } - - if len(seen) != 0 { - return fmt.Errorf("html: inconsistent forwards/backwards child list") - } - - return nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/parse.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/parse.go deleted file mode 100644 index 5543f61f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/parse.go +++ /dev/null @@ -1,2094 +0,0 @@ -// Copyright 2010 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 html - -import ( - "errors" - "fmt" - "io" - "strings" - - a "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/atom" -) - -// A parser implements the HTML5 parsing algorithm: -// https://html.spec.whatwg.org/multipage/syntax.html#tree-construction -type parser struct { - // tokenizer provides the tokens for the parser. - tokenizer *Tokenizer - // tok is the most recently read token. - tok Token - // Self-closing tags like
are treated as start tags, except that - // hasSelfClosingToken is set while they are being processed. - hasSelfClosingToken bool - // doc is the document root element. - doc *Node - // The stack of open elements (section 12.2.3.2) and active formatting - // elements (section 12.2.3.3). - oe, afe nodeStack - // Element pointers (section 12.2.3.4). - head, form *Node - // Other parsing state flags (section 12.2.3.5). - scripting, framesetOK bool - // im is the current insertion mode. - im insertionMode - // originalIM is the insertion mode to go back to after completing a text - // or inTableText insertion mode. - originalIM insertionMode - // fosterParenting is whether new elements should be inserted according to - // the foster parenting rules (section 12.2.5.3). - fosterParenting bool - // quirks is whether the parser is operating in "quirks mode." - quirks bool - // fragment is whether the parser is parsing an HTML fragment. - fragment bool - // context is the context element when parsing an HTML fragment - // (section 12.4). - context *Node -} - -func (p *parser) top() *Node { - if n := p.oe.top(); n != nil { - return n - } - return p.doc -} - -// Stop tags for use in popUntil. These come from section 12.2.3.2. -var ( - defaultScopeStopTags = map[string][]a.Atom{ - "": {a.Applet, a.Caption, a.Html, a.Table, a.Td, a.Th, a.Marquee, a.Object, a.Template}, - "math": {a.AnnotationXml, a.Mi, a.Mn, a.Mo, a.Ms, a.Mtext}, - "svg": {a.Desc, a.ForeignObject, a.Title}, - } -) - -type scope int - -const ( - defaultScope scope = iota - listItemScope - buttonScope - tableScope - tableRowScope - tableBodyScope - selectScope -) - -// popUntil pops the stack of open elements at the highest element whose tag -// is in matchTags, provided there is no higher element in the scope's stop -// tags (as defined in section 12.2.3.2). It returns whether or not there was -// such an element. If there was not, popUntil leaves the stack unchanged. -// -// For example, the set of stop tags for table scope is: "html", "table". If -// the stack was: -// ["html", "body", "font", "table", "b", "i", "u"] -// then popUntil(tableScope, "font") would return false, but -// popUntil(tableScope, "i") would return true and the stack would become: -// ["html", "body", "font", "table", "b"] -// -// If an element's tag is in both the stop tags and matchTags, then the stack -// will be popped and the function returns true (provided, of course, there was -// no higher element in the stack that was also in the stop tags). For example, -// popUntil(tableScope, "table") returns true and leaves: -// ["html", "body", "font"] -func (p *parser) popUntil(s scope, matchTags ...a.Atom) bool { - if i := p.indexOfElementInScope(s, matchTags...); i != -1 { - p.oe = p.oe[:i] - return true - } - return false -} - -// indexOfElementInScope returns the index in p.oe of the highest element whose -// tag is in matchTags that is in scope. If no matching element is in scope, it -// returns -1. -func (p *parser) indexOfElementInScope(s scope, matchTags ...a.Atom) int { - for i := len(p.oe) - 1; i >= 0; i-- { - tagAtom := p.oe[i].DataAtom - if p.oe[i].Namespace == "" { - for _, t := range matchTags { - if t == tagAtom { - return i - } - } - switch s { - case defaultScope: - // No-op. - case listItemScope: - if tagAtom == a.Ol || tagAtom == a.Ul { - return -1 - } - case buttonScope: - if tagAtom == a.Button { - return -1 - } - case tableScope: - if tagAtom == a.Html || tagAtom == a.Table { - return -1 - } - case selectScope: - if tagAtom != a.Optgroup && tagAtom != a.Option { - return -1 - } - default: - panic("unreachable") - } - } - switch s { - case defaultScope, listItemScope, buttonScope: - for _, t := range defaultScopeStopTags[p.oe[i].Namespace] { - if t == tagAtom { - return -1 - } - } - } - } - return -1 -} - -// elementInScope is like popUntil, except that it doesn't modify the stack of -// open elements. -func (p *parser) elementInScope(s scope, matchTags ...a.Atom) bool { - return p.indexOfElementInScope(s, matchTags...) != -1 -} - -// clearStackToContext pops elements off the stack of open elements until a -// scope-defined element is found. -func (p *parser) clearStackToContext(s scope) { - for i := len(p.oe) - 1; i >= 0; i-- { - tagAtom := p.oe[i].DataAtom - switch s { - case tableScope: - if tagAtom == a.Html || tagAtom == a.Table { - p.oe = p.oe[:i+1] - return - } - case tableRowScope: - if tagAtom == a.Html || tagAtom == a.Tr { - p.oe = p.oe[:i+1] - return - } - case tableBodyScope: - if tagAtom == a.Html || tagAtom == a.Tbody || tagAtom == a.Tfoot || tagAtom == a.Thead { - p.oe = p.oe[:i+1] - return - } - default: - panic("unreachable") - } - } -} - -// generateImpliedEndTags pops nodes off the stack of open elements as long as -// the top node has a tag name of dd, dt, li, option, optgroup, p, rp, or rt. -// If exceptions are specified, nodes with that name will not be popped off. -func (p *parser) generateImpliedEndTags(exceptions ...string) { - var i int -loop: - for i = len(p.oe) - 1; i >= 0; i-- { - n := p.oe[i] - if n.Type == ElementNode { - switch n.DataAtom { - case a.Dd, a.Dt, a.Li, a.Option, a.Optgroup, a.P, a.Rp, a.Rt: - for _, except := range exceptions { - if n.Data == except { - break loop - } - } - continue - } - } - break - } - - p.oe = p.oe[:i+1] -} - -// addChild adds a child node n to the top element, and pushes n onto the stack -// of open elements if it is an element node. -func (p *parser) addChild(n *Node) { - if p.shouldFosterParent() { - p.fosterParent(n) - } else { - p.top().AppendChild(n) - } - - if n.Type == ElementNode { - p.oe = append(p.oe, n) - } -} - -// shouldFosterParent returns whether the next node to be added should be -// foster parented. -func (p *parser) shouldFosterParent() bool { - if p.fosterParenting { - switch p.top().DataAtom { - case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr: - return true - } - } - return false -} - -// fosterParent adds a child node according to the foster parenting rules. -// Section 12.2.5.3, "foster parenting". -func (p *parser) fosterParent(n *Node) { - var table, parent, prev *Node - var i int - for i = len(p.oe) - 1; i >= 0; i-- { - if p.oe[i].DataAtom == a.Table { - table = p.oe[i] - break - } - } - - if table == nil { - // The foster parent is the html element. - parent = p.oe[0] - } else { - parent = table.Parent - } - if parent == nil { - parent = p.oe[i-1] - } - - if table != nil { - prev = table.PrevSibling - } else { - prev = parent.LastChild - } - if prev != nil && prev.Type == TextNode && n.Type == TextNode { - prev.Data += n.Data - return - } - - parent.InsertBefore(n, table) -} - -// addText adds text to the preceding node if it is a text node, or else it -// calls addChild with a new text node. -func (p *parser) addText(text string) { - if text == "" { - return - } - - if p.shouldFosterParent() { - p.fosterParent(&Node{ - Type: TextNode, - Data: text, - }) - return - } - - t := p.top() - if n := t.LastChild; n != nil && n.Type == TextNode { - n.Data += text - return - } - p.addChild(&Node{ - Type: TextNode, - Data: text, - }) -} - -// addElement adds a child element based on the current token. -func (p *parser) addElement() { - p.addChild(&Node{ - Type: ElementNode, - DataAtom: p.tok.DataAtom, - Data: p.tok.Data, - Attr: p.tok.Attr, - }) -} - -// Section 12.2.3.3. -func (p *parser) addFormattingElement() { - tagAtom, attr := p.tok.DataAtom, p.tok.Attr - p.addElement() - - // Implement the Noah's Ark clause, but with three per family instead of two. - identicalElements := 0 -findIdenticalElements: - for i := len(p.afe) - 1; i >= 0; i-- { - n := p.afe[i] - if n.Type == scopeMarkerNode { - break - } - if n.Type != ElementNode { - continue - } - if n.Namespace != "" { - continue - } - if n.DataAtom != tagAtom { - continue - } - if len(n.Attr) != len(attr) { - continue - } - compareAttributes: - for _, t0 := range n.Attr { - for _, t1 := range attr { - if t0.Key == t1.Key && t0.Namespace == t1.Namespace && t0.Val == t1.Val { - // Found a match for this attribute, continue with the next attribute. - continue compareAttributes - } - } - // If we get here, there is no attribute that matches a. - // Therefore the element is not identical to the new one. - continue findIdenticalElements - } - - identicalElements++ - if identicalElements >= 3 { - p.afe.remove(n) - } - } - - p.afe = append(p.afe, p.top()) -} - -// Section 12.2.3.3. -func (p *parser) clearActiveFormattingElements() { - for { - n := p.afe.pop() - if len(p.afe) == 0 || n.Type == scopeMarkerNode { - return - } - } -} - -// Section 12.2.3.3. -func (p *parser) reconstructActiveFormattingElements() { - n := p.afe.top() - if n == nil { - return - } - if n.Type == scopeMarkerNode || p.oe.index(n) != -1 { - return - } - i := len(p.afe) - 1 - for n.Type != scopeMarkerNode && p.oe.index(n) == -1 { - if i == 0 { - i = -1 - break - } - i-- - n = p.afe[i] - } - for { - i++ - clone := p.afe[i].clone() - p.addChild(clone) - p.afe[i] = clone - if i == len(p.afe)-1 { - break - } - } -} - -// Section 12.2.4. -func (p *parser) acknowledgeSelfClosingTag() { - p.hasSelfClosingToken = false -} - -// An insertion mode (section 12.2.3.1) is the state transition function from -// a particular state in the HTML5 parser's state machine. It updates the -// parser's fields depending on parser.tok (where ErrorToken means EOF). -// It returns whether the token was consumed. -type insertionMode func(*parser) bool - -// setOriginalIM sets the insertion mode to return to after completing a text or -// inTableText insertion mode. -// Section 12.2.3.1, "using the rules for". -func (p *parser) setOriginalIM() { - if p.originalIM != nil { - panic("html: bad parser state: originalIM was set twice") - } - p.originalIM = p.im -} - -// Section 12.2.3.1, "reset the insertion mode". -func (p *parser) resetInsertionMode() { - for i := len(p.oe) - 1; i >= 0; i-- { - n := p.oe[i] - if i == 0 && p.context != nil { - n = p.context - } - - switch n.DataAtom { - case a.Select: - p.im = inSelectIM - case a.Td, a.Th: - p.im = inCellIM - case a.Tr: - p.im = inRowIM - case a.Tbody, a.Thead, a.Tfoot: - p.im = inTableBodyIM - case a.Caption: - p.im = inCaptionIM - case a.Colgroup: - p.im = inColumnGroupIM - case a.Table: - p.im = inTableIM - case a.Head: - p.im = inBodyIM - case a.Body: - p.im = inBodyIM - case a.Frameset: - p.im = inFramesetIM - case a.Html: - p.im = beforeHeadIM - default: - continue - } - return - } - p.im = inBodyIM -} - -const whitespace = " \t\r\n\f" - -// Section 12.2.5.4.1. -func initialIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace) - if len(p.tok.Data) == 0 { - // It was all whitespace, so ignore it. - return true - } - case CommentToken: - p.doc.AppendChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - n, quirks := parseDoctype(p.tok.Data) - p.doc.AppendChild(n) - p.quirks = quirks - p.im = beforeHTMLIM - return true - } - p.quirks = true - p.im = beforeHTMLIM - return false -} - -// Section 12.2.5.4.2. -func beforeHTMLIM(p *parser) bool { - switch p.tok.Type { - case DoctypeToken: - // Ignore the token. - return true - case TextToken: - p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace) - if len(p.tok.Data) == 0 { - // It was all whitespace, so ignore it. - return true - } - case StartTagToken: - if p.tok.DataAtom == a.Html { - p.addElement() - p.im = beforeHeadIM - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Head, a.Body, a.Html, a.Br: - p.parseImpliedToken(StartTagToken, a.Html, a.Html.String()) - return false - default: - // Ignore the token. - return true - } - case CommentToken: - p.doc.AppendChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - p.parseImpliedToken(StartTagToken, a.Html, a.Html.String()) - return false -} - -// Section 12.2.5.4.3. -func beforeHeadIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace) - if len(p.tok.Data) == 0 { - // It was all whitespace, so ignore it. - return true - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Head: - p.addElement() - p.head = p.top() - p.im = inHeadIM - return true - case a.Html: - return inBodyIM(p) - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Head, a.Body, a.Html, a.Br: - p.parseImpliedToken(StartTagToken, a.Head, a.Head.String()) - return false - default: - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - // Ignore the token. - return true - } - - p.parseImpliedToken(StartTagToken, a.Head, a.Head.String()) - return false -} - -// Section 12.2.5.4.4. -func inHeadIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - s := strings.TrimLeft(p.tok.Data, whitespace) - if len(s) < len(p.tok.Data) { - // Add the initial whitespace to the current node. - p.addText(p.tok.Data[:len(p.tok.Data)-len(s)]) - if s == "" { - return true - } - p.tok.Data = s - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Html: - return inBodyIM(p) - case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta: - p.addElement() - p.oe.pop() - p.acknowledgeSelfClosingTag() - return true - case a.Script, a.Title, a.Noscript, a.Noframes, a.Style: - p.addElement() - p.setOriginalIM() - p.im = textIM - return true - case a.Head: - // Ignore the token. - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Head: - n := p.oe.pop() - if n.DataAtom != a.Head { - panic("html: bad parser state: element not found, in the in-head insertion mode") - } - p.im = afterHeadIM - return true - case a.Body, a.Html, a.Br: - p.parseImpliedToken(EndTagToken, a.Head, a.Head.String()) - return false - default: - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - // Ignore the token. - return true - } - - p.parseImpliedToken(EndTagToken, a.Head, a.Head.String()) - return false -} - -// Section 12.2.5.4.6. -func afterHeadIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - s := strings.TrimLeft(p.tok.Data, whitespace) - if len(s) < len(p.tok.Data) { - // Add the initial whitespace to the current node. - p.addText(p.tok.Data[:len(p.tok.Data)-len(s)]) - if s == "" { - return true - } - p.tok.Data = s - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Html: - return inBodyIM(p) - case a.Body: - p.addElement() - p.framesetOK = false - p.im = inBodyIM - return true - case a.Frameset: - p.addElement() - p.im = inFramesetIM - return true - case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Title: - p.oe = append(p.oe, p.head) - defer p.oe.remove(p.head) - return inHeadIM(p) - case a.Head: - // Ignore the token. - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Body, a.Html, a.Br: - // Drop down to creating an implied tag. - default: - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - // Ignore the token. - return true - } - - p.parseImpliedToken(StartTagToken, a.Body, a.Body.String()) - p.framesetOK = true - return false -} - -// copyAttributes copies attributes of src not found on dst to dst. -func copyAttributes(dst *Node, src Token) { - if len(src.Attr) == 0 { - return - } - attr := map[string]string{} - for _, t := range dst.Attr { - attr[t.Key] = t.Val - } - for _, t := range src.Attr { - if _, ok := attr[t.Key]; !ok { - dst.Attr = append(dst.Attr, t) - attr[t.Key] = t.Val - } - } -} - -// Section 12.2.5.4.7. -func inBodyIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - d := p.tok.Data - switch n := p.oe.top(); n.DataAtom { - case a.Pre, a.Listing: - if n.FirstChild == nil { - // Ignore a newline at the start of a
 block.
-				if d != "" && d[0] == '\r' {
-					d = d[1:]
-				}
-				if d != "" && d[0] == '\n' {
-					d = d[1:]
-				}
-			}
-		}
-		d = strings.Replace(d, "\x00", "", -1)
-		if d == "" {
-			return true
-		}
-		p.reconstructActiveFormattingElements()
-		p.addText(d)
-		if p.framesetOK && strings.TrimLeft(d, whitespace) != "" {
-			// There were non-whitespace characters inserted.
-			p.framesetOK = false
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			copyAttributes(p.oe[0], p.tok)
-		case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Title:
-			return inHeadIM(p)
-		case a.Body:
-			if len(p.oe) >= 2 {
-				body := p.oe[1]
-				if body.Type == ElementNode && body.DataAtom == a.Body {
-					p.framesetOK = false
-					copyAttributes(body, p.tok)
-				}
-			}
-		case a.Frameset:
-			if !p.framesetOK || len(p.oe) < 2 || p.oe[1].DataAtom != a.Body {
-				// Ignore the token.
-				return true
-			}
-			body := p.oe[1]
-			if body.Parent != nil {
-				body.Parent.RemoveChild(body)
-			}
-			p.oe = p.oe[:1]
-			p.addElement()
-			p.im = inFramesetIM
-			return true
-		case a.Address, a.Article, a.Aside, a.Blockquote, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Menu, a.Nav, a.Ol, a.P, a.Section, a.Summary, a.Ul:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
-			p.popUntil(buttonScope, a.P)
-			switch n := p.top(); n.DataAtom {
-			case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
-				p.oe.pop()
-			}
-			p.addElement()
-		case a.Pre, a.Listing:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-			// The newline, if any, will be dealt with by the TextToken case.
-			p.framesetOK = false
-		case a.Form:
-			if p.form == nil {
-				p.popUntil(buttonScope, a.P)
-				p.addElement()
-				p.form = p.top()
-			}
-		case a.Li:
-			p.framesetOK = false
-			for i := len(p.oe) - 1; i >= 0; i-- {
-				node := p.oe[i]
-				switch node.DataAtom {
-				case a.Li:
-					p.oe = p.oe[:i]
-				case a.Address, a.Div, a.P:
-					continue
-				default:
-					if !isSpecialElement(node) {
-						continue
-					}
-				}
-				break
-			}
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.Dd, a.Dt:
-			p.framesetOK = false
-			for i := len(p.oe) - 1; i >= 0; i-- {
-				node := p.oe[i]
-				switch node.DataAtom {
-				case a.Dd, a.Dt:
-					p.oe = p.oe[:i]
-				case a.Address, a.Div, a.P:
-					continue
-				default:
-					if !isSpecialElement(node) {
-						continue
-					}
-				}
-				break
-			}
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.Plaintext:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.Button:
-			p.popUntil(defaultScope, a.Button)
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.framesetOK = false
-		case a.A:
-			for i := len(p.afe) - 1; i >= 0 && p.afe[i].Type != scopeMarkerNode; i-- {
-				if n := p.afe[i]; n.Type == ElementNode && n.DataAtom == a.A {
-					p.inBodyEndTagFormatting(a.A)
-					p.oe.remove(n)
-					p.afe.remove(n)
-					break
-				}
-			}
-			p.reconstructActiveFormattingElements()
-			p.addFormattingElement()
-		case a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U:
-			p.reconstructActiveFormattingElements()
-			p.addFormattingElement()
-		case a.Nobr:
-			p.reconstructActiveFormattingElements()
-			if p.elementInScope(defaultScope, a.Nobr) {
-				p.inBodyEndTagFormatting(a.Nobr)
-				p.reconstructActiveFormattingElements()
-			}
-			p.addFormattingElement()
-		case a.Applet, a.Marquee, a.Object:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.afe = append(p.afe, &scopeMarker)
-			p.framesetOK = false
-		case a.Table:
-			if !p.quirks {
-				p.popUntil(buttonScope, a.P)
-			}
-			p.addElement()
-			p.framesetOK = false
-			p.im = inTableIM
-			return true
-		case a.Area, a.Br, a.Embed, a.Img, a.Input, a.Keygen, a.Wbr:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-			if p.tok.DataAtom == a.Input {
-				for _, t := range p.tok.Attr {
-					if t.Key == "type" {
-						if strings.ToLower(t.Val) == "hidden" {
-							// Skip setting framesetOK = false
-							return true
-						}
-					}
-				}
-			}
-			p.framesetOK = false
-		case a.Param, a.Source, a.Track:
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-		case a.Hr:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-			p.framesetOK = false
-		case a.Image:
-			p.tok.DataAtom = a.Img
-			p.tok.Data = a.Img.String()
-			return false
-		case a.Isindex:
-			if p.form != nil {
-				// Ignore the token.
-				return true
-			}
-			action := ""
-			prompt := "This is a searchable index. Enter search keywords: "
-			attr := []Attribute{{Key: "name", Val: "isindex"}}
-			for _, t := range p.tok.Attr {
-				switch t.Key {
-				case "action":
-					action = t.Val
-				case "name":
-					// Ignore the attribute.
-				case "prompt":
-					prompt = t.Val
-				default:
-					attr = append(attr, t)
-				}
-			}
-			p.acknowledgeSelfClosingTag()
-			p.popUntil(buttonScope, a.P)
-			p.parseImpliedToken(StartTagToken, a.Form, a.Form.String())
-			if action != "" {
-				p.form.Attr = []Attribute{{Key: "action", Val: action}}
-			}
-			p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String())
-			p.parseImpliedToken(StartTagToken, a.Label, a.Label.String())
-			p.addText(prompt)
-			p.addChild(&Node{
-				Type:     ElementNode,
-				DataAtom: a.Input,
-				Data:     a.Input.String(),
-				Attr:     attr,
-			})
-			p.oe.pop()
-			p.parseImpliedToken(EndTagToken, a.Label, a.Label.String())
-			p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String())
-			p.parseImpliedToken(EndTagToken, a.Form, a.Form.String())
-		case a.Textarea:
-			p.addElement()
-			p.setOriginalIM()
-			p.framesetOK = false
-			p.im = textIM
-		case a.Xmp:
-			p.popUntil(buttonScope, a.P)
-			p.reconstructActiveFormattingElements()
-			p.framesetOK = false
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-		case a.Iframe:
-			p.framesetOK = false
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-		case a.Noembed, a.Noscript:
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-		case a.Select:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.framesetOK = false
-			p.im = inSelectIM
-			return true
-		case a.Optgroup, a.Option:
-			if p.top().DataAtom == a.Option {
-				p.oe.pop()
-			}
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-		case a.Rp, a.Rt:
-			if p.elementInScope(defaultScope, a.Ruby) {
-				p.generateImpliedEndTags()
-			}
-			p.addElement()
-		case a.Math, a.Svg:
-			p.reconstructActiveFormattingElements()
-			if p.tok.DataAtom == a.Math {
-				adjustAttributeNames(p.tok.Attr, mathMLAttributeAdjustments)
-			} else {
-				adjustAttributeNames(p.tok.Attr, svgAttributeAdjustments)
-			}
-			adjustForeignAttributes(p.tok.Attr)
-			p.addElement()
-			p.top().Namespace = p.tok.Data
-			if p.hasSelfClosingToken {
-				p.oe.pop()
-				p.acknowledgeSelfClosingTag()
-			}
-			return true
-		case a.Caption, a.Col, a.Colgroup, a.Frame, a.Head, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
-			// Ignore the token.
-		default:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Body:
-			if p.elementInScope(defaultScope, a.Body) {
-				p.im = afterBodyIM
-			}
-		case a.Html:
-			if p.elementInScope(defaultScope, a.Body) {
-				p.parseImpliedToken(EndTagToken, a.Body, a.Body.String())
-				return false
-			}
-			return true
-		case a.Address, a.Article, a.Aside, a.Blockquote, a.Button, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Listing, a.Menu, a.Nav, a.Ol, a.Pre, a.Section, a.Summary, a.Ul:
-			p.popUntil(defaultScope, p.tok.DataAtom)
-		case a.Form:
-			node := p.form
-			p.form = nil
-			i := p.indexOfElementInScope(defaultScope, a.Form)
-			if node == nil || i == -1 || p.oe[i] != node {
-				// Ignore the token.
-				return true
-			}
-			p.generateImpliedEndTags()
-			p.oe.remove(node)
-		case a.P:
-			if !p.elementInScope(buttonScope, a.P) {
-				p.parseImpliedToken(StartTagToken, a.P, a.P.String())
-			}
-			p.popUntil(buttonScope, a.P)
-		case a.Li:
-			p.popUntil(listItemScope, a.Li)
-		case a.Dd, a.Dt:
-			p.popUntil(defaultScope, p.tok.DataAtom)
-		case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
-			p.popUntil(defaultScope, a.H1, a.H2, a.H3, a.H4, a.H5, a.H6)
-		case a.A, a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.Nobr, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U:
-			p.inBodyEndTagFormatting(p.tok.DataAtom)
-		case a.Applet, a.Marquee, a.Object:
-			if p.popUntil(defaultScope, p.tok.DataAtom) {
-				p.clearActiveFormattingElements()
-			}
-		case a.Br:
-			p.tok.Type = StartTagToken
-			return false
-		default:
-			p.inBodyEndTagOther(p.tok.DataAtom)
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	}
-
-	return true
-}
-
-func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom) {
-	// This is the "adoption agency" algorithm, described at
-	// https://html.spec.whatwg.org/multipage/syntax.html#adoptionAgency
-
-	// TODO: this is a fairly literal line-by-line translation of that algorithm.
-	// Once the code successfully parses the comprehensive test suite, we should
-	// refactor this code to be more idiomatic.
-
-	// Steps 1-4. The outer loop.
-	for i := 0; i < 8; i++ {
-		// Step 5. Find the formatting element.
-		var formattingElement *Node
-		for j := len(p.afe) - 1; j >= 0; j-- {
-			if p.afe[j].Type == scopeMarkerNode {
-				break
-			}
-			if p.afe[j].DataAtom == tagAtom {
-				formattingElement = p.afe[j]
-				break
-			}
-		}
-		if formattingElement == nil {
-			p.inBodyEndTagOther(tagAtom)
-			return
-		}
-		feIndex := p.oe.index(formattingElement)
-		if feIndex == -1 {
-			p.afe.remove(formattingElement)
-			return
-		}
-		if !p.elementInScope(defaultScope, tagAtom) {
-			// Ignore the tag.
-			return
-		}
-
-		// Steps 9-10. Find the furthest block.
-		var furthestBlock *Node
-		for _, e := range p.oe[feIndex:] {
-			if isSpecialElement(e) {
-				furthestBlock = e
-				break
-			}
-		}
-		if furthestBlock == nil {
-			e := p.oe.pop()
-			for e != formattingElement {
-				e = p.oe.pop()
-			}
-			p.afe.remove(e)
-			return
-		}
-
-		// Steps 11-12. Find the common ancestor and bookmark node.
-		commonAncestor := p.oe[feIndex-1]
-		bookmark := p.afe.index(formattingElement)
-
-		// Step 13. The inner loop. Find the lastNode to reparent.
-		lastNode := furthestBlock
-		node := furthestBlock
-		x := p.oe.index(node)
-		// Steps 13.1-13.2
-		for j := 0; j < 3; j++ {
-			// Step 13.3.
-			x--
-			node = p.oe[x]
-			// Step 13.4 - 13.5.
-			if p.afe.index(node) == -1 {
-				p.oe.remove(node)
-				continue
-			}
-			// Step 13.6.
-			if node == formattingElement {
-				break
-			}
-			// Step 13.7.
-			clone := node.clone()
-			p.afe[p.afe.index(node)] = clone
-			p.oe[p.oe.index(node)] = clone
-			node = clone
-			// Step 13.8.
-			if lastNode == furthestBlock {
-				bookmark = p.afe.index(node) + 1
-			}
-			// Step 13.9.
-			if lastNode.Parent != nil {
-				lastNode.Parent.RemoveChild(lastNode)
-			}
-			node.AppendChild(lastNode)
-			// Step 13.10.
-			lastNode = node
-		}
-
-		// Step 14. Reparent lastNode to the common ancestor,
-		// or for misnested table nodes, to the foster parent.
-		if lastNode.Parent != nil {
-			lastNode.Parent.RemoveChild(lastNode)
-		}
-		switch commonAncestor.DataAtom {
-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-			p.fosterParent(lastNode)
-		default:
-			commonAncestor.AppendChild(lastNode)
-		}
-
-		// Steps 15-17. Reparent nodes from the furthest block's children
-		// to a clone of the formatting element.
-		clone := formattingElement.clone()
-		reparentChildren(clone, furthestBlock)
-		furthestBlock.AppendChild(clone)
-
-		// Step 18. Fix up the list of active formatting elements.
-		if oldLoc := p.afe.index(formattingElement); oldLoc != -1 && oldLoc < bookmark {
-			// Move the bookmark with the rest of the list.
-			bookmark--
-		}
-		p.afe.remove(formattingElement)
-		p.afe.insert(bookmark, clone)
-
-		// Step 19. Fix up the stack of open elements.
-		p.oe.remove(formattingElement)
-		p.oe.insert(p.oe.index(furthestBlock)+1, clone)
-	}
-}
-
-// inBodyEndTagOther performs the "any other end tag" algorithm for inBodyIM.
-// "Any other end tag" handling from 12.2.5.5 The rules for parsing tokens in foreign content
-// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inforeign
-func (p *parser) inBodyEndTagOther(tagAtom a.Atom) {
-	for i := len(p.oe) - 1; i >= 0; i-- {
-		if p.oe[i].DataAtom == tagAtom {
-			p.oe = p.oe[:i]
-			break
-		}
-		if isSpecialElement(p.oe[i]) {
-			break
-		}
-	}
-}
-
-// Section 12.2.5.4.8.
-func textIM(p *parser) bool {
-	switch p.tok.Type {
-	case ErrorToken:
-		p.oe.pop()
-	case TextToken:
-		d := p.tok.Data
-		if n := p.oe.top(); n.DataAtom == a.Textarea && n.FirstChild == nil {
-			// Ignore a newline at the start of a -->
-#errors
-#document
-| 
-|   
-|   
-|     -->
-#errors
-#document
-| 
-|   
-|   
-|     
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-#document
-| 
-|   
-|   
-|     
-#errors
-Line: 1 Col: 9 Unexpected end tag (strong). Expected DOCTYPE.
-Line: 1 Col: 9 Unexpected end tag (strong) after the (implied) root element.
-Line: 1 Col: 13 Unexpected end tag (b) after the (implied) root element.
-Line: 1 Col: 18 Unexpected end tag (em) after the (implied) root element.
-Line: 1 Col: 22 Unexpected end tag (i) after the (implied) root element.
-Line: 1 Col: 26 Unexpected end tag (u) after the (implied) root element.
-Line: 1 Col: 35 Unexpected end tag (strike) after the (implied) root element.
-Line: 1 Col: 39 Unexpected end tag (s) after the (implied) root element.
-Line: 1 Col: 47 Unexpected end tag (blink) after the (implied) root element.
-Line: 1 Col: 52 Unexpected end tag (tt) after the (implied) root element.
-Line: 1 Col: 58 Unexpected end tag (pre) after the (implied) root element.
-Line: 1 Col: 64 Unexpected end tag (big) after the (implied) root element.
-Line: 1 Col: 72 Unexpected end tag (small) after the (implied) root element.
-Line: 1 Col: 79 Unexpected end tag (font) after the (implied) root element.
-Line: 1 Col: 88 Unexpected end tag (select) after the (implied) root element.
-Line: 1 Col: 93 Unexpected end tag (h1) after the (implied) root element.
-Line: 1 Col: 98 Unexpected end tag (h2) after the (implied) root element.
-Line: 1 Col: 103 Unexpected end tag (h3) after the (implied) root element.
-Line: 1 Col: 108 Unexpected end tag (h4) after the (implied) root element.
-Line: 1 Col: 113 Unexpected end tag (h5) after the (implied) root element.
-Line: 1 Col: 118 Unexpected end tag (h6) after the (implied) root element.
-Line: 1 Col: 125 Unexpected end tag (body) after the (implied) root element.
-Line: 1 Col: 130 Unexpected end tag (br). Treated as br element.
-Line: 1 Col: 134 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 140 This element (img) has no end tag.
-Line: 1 Col: 148 Unexpected end tag (title). Ignored.
-Line: 1 Col: 155 Unexpected end tag (span). Ignored.
-Line: 1 Col: 163 Unexpected end tag (style). Ignored.
-Line: 1 Col: 172 Unexpected end tag (script). Ignored.
-Line: 1 Col: 180 Unexpected end tag (table). Ignored.
-Line: 1 Col: 185 Unexpected end tag (th). Ignored.
-Line: 1 Col: 190 Unexpected end tag (td). Ignored.
-Line: 1 Col: 195 Unexpected end tag (tr). Ignored.
-Line: 1 Col: 203 This element (frame) has no end tag.
-Line: 1 Col: 210 This element (area) has no end tag.
-Line: 1 Col: 217 Unexpected end tag (link). Ignored.
-Line: 1 Col: 225 This element (param) has no end tag.
-Line: 1 Col: 230 This element (hr) has no end tag.
-Line: 1 Col: 238 This element (input) has no end tag.
-Line: 1 Col: 244 Unexpected end tag (col). Ignored.
-Line: 1 Col: 251 Unexpected end tag (base). Ignored.
-Line: 1 Col: 258 Unexpected end tag (meta). Ignored.
-Line: 1 Col: 269 This element (basefont) has no end tag.
-Line: 1 Col: 279 This element (bgsound) has no end tag.
-Line: 1 Col: 287 This element (embed) has no end tag.
-Line: 1 Col: 296 This element (spacer) has no end tag.
-Line: 1 Col: 300 Unexpected end tag (p). Ignored.
-Line: 1 Col: 305 End tag (dd) seen too early. Expected other end tag.
-Line: 1 Col: 310 End tag (dt) seen too early. Expected other end tag.
-Line: 1 Col: 320 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 331 Unexpected end tag (colgroup). Ignored.
-Line: 1 Col: 339 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 347 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 355 Unexpected end tag (thead). Ignored.
-Line: 1 Col: 365 End tag (address) seen too early. Expected other end tag.
-Line: 1 Col: 378 End tag (blockquote) seen too early. Expected other end tag.
-Line: 1 Col: 387 End tag (center) seen too early. Expected other end tag.
-Line: 1 Col: 393 Unexpected end tag (dir). Ignored.
-Line: 1 Col: 399 End tag (div) seen too early. Expected other end tag.
-Line: 1 Col: 404 End tag (dl) seen too early. Expected other end tag.
-Line: 1 Col: 415 End tag (fieldset) seen too early. Expected other end tag.
-Line: 1 Col: 425 End tag (listing) seen too early. Expected other end tag.
-Line: 1 Col: 432 End tag (menu) seen too early. Expected other end tag.
-Line: 1 Col: 437 End tag (ol) seen too early. Expected other end tag.
-Line: 1 Col: 442 End tag (ul) seen too early. Expected other end tag.
-Line: 1 Col: 447 End tag (li) seen too early. Expected other end tag.
-Line: 1 Col: 454 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 460 This element (wbr) has no end tag.
-Line: 1 Col: 476 End tag (button) seen too early. Expected other end tag.
-Line: 1 Col: 486 End tag (marquee) seen too early. Expected other end tag.
-Line: 1 Col: 495 End tag (object) seen too early. Expected other end tag.
-Line: 1 Col: 513 Unexpected end tag (html). Ignored.
-Line: 1 Col: 513 Unexpected end tag (frameset). Ignored.
-Line: 1 Col: 520 Unexpected end tag (head). Ignored.
-Line: 1 Col: 529 Unexpected end tag (iframe). Ignored.
-Line: 1 Col: 537 This element (image) has no end tag.
-Line: 1 Col: 547 This element (isindex) has no end tag.
-Line: 1 Col: 557 Unexpected end tag (noembed). Ignored.
-Line: 1 Col: 568 Unexpected end tag (noframes). Ignored.
-Line: 1 Col: 579 Unexpected end tag (noscript). Ignored.
-Line: 1 Col: 590 Unexpected end tag (optgroup). Ignored.
-Line: 1 Col: 599 Unexpected end tag (option). Ignored.
-Line: 1 Col: 611 Unexpected end tag (plaintext). Ignored.
-Line: 1 Col: 622 Unexpected end tag (textarea). Ignored.
-#document
-| 
-|   
-|   
-|     
-|

- -#data -

-#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (strong) in table context caused voodoo mode. -Line: 1 Col: 20 End tag (strong) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 24 Unexpected end tag (b) in table context caused voodoo mode. -Line: 1 Col: 24 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Unexpected end tag (em) in table context caused voodoo mode. -Line: 1 Col: 29 End tag (em) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 33 Unexpected end tag (i) in table context caused voodoo mode. -Line: 1 Col: 33 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 37 Unexpected end tag (u) in table context caused voodoo mode. -Line: 1 Col: 37 End tag (u) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 46 Unexpected end tag (strike) in table context caused voodoo mode. -Line: 1 Col: 46 End tag (strike) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 50 Unexpected end tag (s) in table context caused voodoo mode. -Line: 1 Col: 50 End tag (s) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 58 Unexpected end tag (blink) in table context caused voodoo mode. -Line: 1 Col: 58 Unexpected end tag (blink). Ignored. -Line: 1 Col: 63 Unexpected end tag (tt) in table context caused voodoo mode. -Line: 1 Col: 63 End tag (tt) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 69 Unexpected end tag (pre) in table context caused voodoo mode. -Line: 1 Col: 69 End tag (pre) seen too early. Expected other end tag. -Line: 1 Col: 75 Unexpected end tag (big) in table context caused voodoo mode. -Line: 1 Col: 75 End tag (big) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 83 Unexpected end tag (small) in table context caused voodoo mode. -Line: 1 Col: 83 End tag (small) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 90 Unexpected end tag (font) in table context caused voodoo mode. -Line: 1 Col: 90 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 99 Unexpected end tag (select) in table context caused voodoo mode. -Line: 1 Col: 99 Unexpected end tag (select). Ignored. -Line: 1 Col: 104 Unexpected end tag (h1) in table context caused voodoo mode. -Line: 1 Col: 104 End tag (h1) seen too early. Expected other end tag. -Line: 1 Col: 109 Unexpected end tag (h2) in table context caused voodoo mode. -Line: 1 Col: 109 End tag (h2) seen too early. Expected other end tag. -Line: 1 Col: 114 Unexpected end tag (h3) in table context caused voodoo mode. -Line: 1 Col: 114 End tag (h3) seen too early. Expected other end tag. -Line: 1 Col: 119 Unexpected end tag (h4) in table context caused voodoo mode. -Line: 1 Col: 119 End tag (h4) seen too early. Expected other end tag. -Line: 1 Col: 124 Unexpected end tag (h5) in table context caused voodoo mode. -Line: 1 Col: 124 End tag (h5) seen too early. Expected other end tag. -Line: 1 Col: 129 Unexpected end tag (h6) in table context caused voodoo mode. -Line: 1 Col: 129 End tag (h6) seen too early. Expected other end tag. -Line: 1 Col: 136 Unexpected end tag (body) in the table row phase. Ignored. -Line: 1 Col: 141 Unexpected end tag (br) in table context caused voodoo mode. -Line: 1 Col: 141 Unexpected end tag (br). Treated as br element. -Line: 1 Col: 145 Unexpected end tag (a) in table context caused voodoo mode. -Line: 1 Col: 145 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 151 Unexpected end tag (img) in table context caused voodoo mode. -Line: 1 Col: 151 This element (img) has no end tag. -Line: 1 Col: 159 Unexpected end tag (title) in table context caused voodoo mode. -Line: 1 Col: 159 Unexpected end tag (title). Ignored. -Line: 1 Col: 166 Unexpected end tag (span) in table context caused voodoo mode. -Line: 1 Col: 166 Unexpected end tag (span). Ignored. -Line: 1 Col: 174 Unexpected end tag (style) in table context caused voodoo mode. -Line: 1 Col: 174 Unexpected end tag (style). Ignored. -Line: 1 Col: 183 Unexpected end tag (script) in table context caused voodoo mode. -Line: 1 Col: 183 Unexpected end tag (script). Ignored. -Line: 1 Col: 196 Unexpected end tag (th). Ignored. -Line: 1 Col: 201 Unexpected end tag (td). Ignored. -Line: 1 Col: 206 Unexpected end tag (tr). Ignored. -Line: 1 Col: 214 This element (frame) has no end tag. -Line: 1 Col: 221 This element (area) has no end tag. -Line: 1 Col: 228 Unexpected end tag (link). Ignored. -Line: 1 Col: 236 This element (param) has no end tag. -Line: 1 Col: 241 This element (hr) has no end tag. -Line: 1 Col: 249 This element (input) has no end tag. -Line: 1 Col: 255 Unexpected end tag (col). Ignored. -Line: 1 Col: 262 Unexpected end tag (base). Ignored. -Line: 1 Col: 269 Unexpected end tag (meta). Ignored. -Line: 1 Col: 280 This element (basefont) has no end tag. -Line: 1 Col: 290 This element (bgsound) has no end tag. -Line: 1 Col: 298 This element (embed) has no end tag. -Line: 1 Col: 307 This element (spacer) has no end tag. -Line: 1 Col: 311 Unexpected end tag (p). Ignored. -Line: 1 Col: 316 End tag (dd) seen too early. Expected other end tag. -Line: 1 Col: 321 End tag (dt) seen too early. Expected other end tag. -Line: 1 Col: 331 Unexpected end tag (caption). Ignored. -Line: 1 Col: 342 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 350 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 358 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 366 Unexpected end tag (thead). Ignored. -Line: 1 Col: 376 End tag (address) seen too early. Expected other end tag. -Line: 1 Col: 389 End tag (blockquote) seen too early. Expected other end tag. -Line: 1 Col: 398 End tag (center) seen too early. Expected other end tag. -Line: 1 Col: 404 Unexpected end tag (dir). Ignored. -Line: 1 Col: 410 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 415 End tag (dl) seen too early. Expected other end tag. -Line: 1 Col: 426 End tag (fieldset) seen too early. Expected other end tag. -Line: 1 Col: 436 End tag (listing) seen too early. Expected other end tag. -Line: 1 Col: 443 End tag (menu) seen too early. Expected other end tag. -Line: 1 Col: 448 End tag (ol) seen too early. Expected other end tag. -Line: 1 Col: 453 End tag (ul) seen too early. Expected other end tag. -Line: 1 Col: 458 End tag (li) seen too early. Expected other end tag. -Line: 1 Col: 465 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 471 This element (wbr) has no end tag. -Line: 1 Col: 487 End tag (button) seen too early. Expected other end tag. -Line: 1 Col: 497 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 506 End tag (object) seen too early. Expected other end tag. -Line: 1 Col: 524 Unexpected end tag (html). Ignored. -Line: 1 Col: 524 Unexpected end tag (frameset). Ignored. -Line: 1 Col: 531 Unexpected end tag (head). Ignored. -Line: 1 Col: 540 Unexpected end tag (iframe). Ignored. -Line: 1 Col: 548 This element (image) has no end tag. -Line: 1 Col: 558 This element (isindex) has no end tag. -Line: 1 Col: 568 Unexpected end tag (noembed). Ignored. -Line: 1 Col: 579 Unexpected end tag (noframes). Ignored. -Line: 1 Col: 590 Unexpected end tag (noscript). Ignored. -Line: 1 Col: 601 Unexpected end tag (optgroup). Ignored. -Line: 1 Col: 610 Unexpected end tag (option). Ignored. -Line: 1 Col: 622 Unexpected end tag (plaintext). Ignored. -Line: 1 Col: 633 Unexpected end tag (textarea). Ignored. -#document -| -| -| -|
-| -| -| -|

- -#data - -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 10 Expected closing tag. Unexpected end of file. -#document -| -| -| diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests10.dat b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests10.dat deleted file mode 100644 index 4f8df86f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests10.dat +++ /dev/null @@ -1,799 +0,0 @@ -#data - -#errors -#document -| -| -| -| -| - -#data -a -#errors -29: Bogus comment -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| - -#data - -#errors -35: Stray “svg†start tag. -42: Stray end tag “svg†-#document -| -| -| -| -| -#errors -43: Stray “svg†start tag. -50: Stray end tag “svg†-#document -| -| -| -| -|

-#errors -34: Start tag “svg†seen in “tableâ€. -41: Stray end tag “svgâ€. -#document -| -| -| -| -| -| - -#data -
foo
-#errors -34: Start tag “svg†seen in “tableâ€. -46: Stray end tag “gâ€. -53: Stray end tag “svgâ€. -#document -| -| -| -| -| -| -| "foo" -| - -#data -
foobar
-#errors -34: Start tag “svg†seen in “tableâ€. -46: Stray end tag “gâ€. -58: Stray end tag “gâ€. -65: Stray end tag “svgâ€. -#document -| -| -| -| -| -| -| "foo" -| -| "bar" -| - -#data -
foobar
-#errors -41: Start tag “svg†seen in “tableâ€. -53: Stray end tag “gâ€. -65: Stray end tag “gâ€. -72: Stray end tag “svgâ€. -#document -| -| -| -| -| -| -| "foo" -| -| "bar" -| -| - -#data -
foobar
-#errors -45: Start tag “svg†seen in “tableâ€. -57: Stray end tag “gâ€. -69: Stray end tag “gâ€. -76: Stray end tag “svgâ€. -#document -| -| -| -| -| -| -| "foo" -| -| "bar" -| -| -| - -#data -
foobar
-#errors -#document -| -| -| -| -| -| -| -|
-| -| -| "foo" -| -| "bar" - -#data -
foobar

baz

-#errors -#document -| -| -| -| -| -| -| -|
-| -| -| "foo" -| -| "bar" -|

-| "baz" - -#data -
foobar

baz

-#errors -#document -| -| -| -| -| -|
-| -| -| "foo" -| -| "bar" -|

-| "baz" - -#data -
foobar

baz

quux -#errors -70: HTML start tag “p†in a foreign namespace context. -81: “table†closed but “caption†was still open. -#document -| -| -| -| -| -|
-| -| -| "foo" -| -| "bar" -|

-| "baz" -|

-| "quux" - -#data -
foobarbaz

quux -#errors -78: “table†closed but “caption†was still open. -78: Unclosed elements on stack. -#document -| -| -| -| -| -|
-| -| -| "foo" -| -| "bar" -| "baz" -|

-| "quux" - -#data -foobar

baz

quux -#errors -44: Start tag “svg†seen in “tableâ€. -56: Stray end tag “gâ€. -68: Stray end tag “gâ€. -71: HTML start tag “p†in a foreign namespace context. -71: Start tag “p†seen in “tableâ€. -#document -| -| -| -| -| -| -| "foo" -| -| "bar" -|

-| "baz" -| -| -|

-| "quux" - -#data -

quux -#errors -50: Stray “svg†start tag. -54: Stray “g†start tag. -62: Stray end tag “g†-66: Stray “g†start tag. -74: Stray end tag “g†-77: Stray “p†start tag. -88: “table†end tag with “select†open. -#document -| -| -| -| -| -| -| -|
-|

quux -#errors -36: Start tag “select†seen in “tableâ€. -42: Stray “svg†start tag. -46: Stray “g†start tag. -54: Stray end tag “g†-58: Stray “g†start tag. -66: Stray end tag “g†-69: Stray “p†start tag. -80: “table†end tag with “select†open. -#document -| -| -| -| -| -|

-| "quux" - -#data -foobar

baz -#errors -41: Stray “svg†start tag. -68: HTML start tag “p†in a foreign namespace context. -#document -| -| -| -| -| -| -| "foo" -| -| "bar" -|

-| "baz" - -#data -foobar

baz -#errors -34: Stray “svg†start tag. -61: HTML start tag “p†in a foreign namespace context. -#document -| -| -| -| -| -| -| "foo" -| -| "bar" -|

-| "baz" - -#data -

-#errors -31: Stray “svg†start tag. -35: Stray “g†start tag. -40: Stray end tag “g†-44: Stray “g†start tag. -49: Stray end tag “g†-52: Stray “p†start tag. -58: Stray “span†start tag. -58: End of file seen and there were open elements. -#document -| -| -| -| - -#data -

-#errors -42: Stray “svg†start tag. -46: Stray “g†start tag. -51: Stray end tag “g†-55: Stray “g†start tag. -60: Stray end tag “g†-63: Stray “p†start tag. -69: Stray “span†start tag. -#document -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| xlink:href="foo" -| -| xlink href="foo" - -#data - -#errors -#document -| -| -| -| -| xlink:href="foo" -| xml:lang="en" -| -| -| xlink href="foo" -| xml lang="en" - -#data - -#errors -#document -| -| -| -| -| xlink:href="foo" -| xml:lang="en" -| -| -| xlink href="foo" -| xml lang="en" - -#data -bar -#errors -#document -| -| -| -| -| xlink:href="foo" -| xml:lang="en" -| -| -| xlink href="foo" -| xml lang="en" -| "bar" - -#data - -#errors -#document -| -| -| -| - -#data -

a -#errors -#document -| -| -| -|
-| -| "a" - -#data -
a -#errors -#document -| -| -| -|
-| -| -| "a" - -#data -
-#errors -#document -| -| -| -|
-| -| -| - -#data -
a -#errors -#document -| -| -| -|
-| -| -| -| -| "a" - -#data -

a -#errors -#document -| -| -| -|

-| -| -| -|

-| "a" - -#data -
    a -#errors -40: HTML start tag “ul†in a foreign namespace context. -41: End of file in a foreign namespace context. -#document -| -| -| -| -| -| -|
    -| -|
      -| "a" - -#data -
        a -#errors -35: HTML start tag “ul†in a foreign namespace context. -36: End of file in a foreign namespace context. -#document -| -| -| -| -| -| -| -|
          -| "a" - -#data -

          -#errors -#document -| -| -| -| -|

          -| -| -|

          - -#data -

          -#errors -#document -| -| -| -| -|

          -| -| -|

          - -#data -

          -#errors -#document -| -| -| -|

          -| -| -| -|

          -|

          - -#data -
          -#errors -#document -| -| -| -| -| -|
          -| -|
          -| -| - -#data -
          -#errors -#document -| -| -| -| -| -| -| -|
          -|
          -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data -

-#errors -#document -| -| -| -| -|
-| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| -| - -#data -
-#errors -#document -| -| -| -| -| -| -| -|
-| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| -| -| -| -| -| -| -| -| diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests11.dat b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests11.dat deleted file mode 100644 index 638cde47..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests11.dat +++ /dev/null @@ -1,482 +0,0 @@ -#data - -#errors -#document -| -| -| -| -| -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentScriptType="" -| contentStyleType="" -| diffuseConstant="" -| edgeMode="" -| externalResourcesRequired="" -| filterRes="" -| filterUnits="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data - -#errors -#document -| -| -| -| -| -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentScriptType="" -| contentStyleType="" -| diffuseConstant="" -| edgeMode="" -| externalResourcesRequired="" -| filterRes="" -| filterUnits="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data - -#errors -#document -| -| -| -| -| -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentScriptType="" -| contentStyleType="" -| diffuseConstant="" -| edgeMode="" -| externalResourcesRequired="" -| filterRes="" -| filterUnits="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data - -#errors -#document -| -| -| -| -| -| attributename="" -| attributetype="" -| basefrequency="" -| baseprofile="" -| calcmode="" -| clippathunits="" -| contentscripttype="" -| contentstyletype="" -| diffuseconstant="" -| edgemode="" -| externalresourcesrequired="" -| filterres="" -| filterunits="" -| glyphref="" -| gradienttransform="" -| gradientunits="" -| kernelmatrix="" -| kernelunitlength="" -| keypoints="" -| keysplines="" -| keytimes="" -| lengthadjust="" -| limitingconeangle="" -| markerheight="" -| markerunits="" -| markerwidth="" -| maskcontentunits="" -| maskunits="" -| numoctaves="" -| pathlength="" -| patterncontentunits="" -| patterntransform="" -| patternunits="" -| pointsatx="" -| pointsaty="" -| pointsatz="" -| preservealpha="" -| preserveaspectratio="" -| primitiveunits="" -| refx="" -| refy="" -| repeatcount="" -| repeatdur="" -| requiredextensions="" -| requiredfeatures="" -| specularconstant="" -| specularexponent="" -| spreadmethod="" -| startoffset="" -| stddeviation="" -| stitchtiles="" -| surfacescale="" -| systemlanguage="" -| tablevalues="" -| targetx="" -| targety="" -| textlength="" -| viewbox="" -| viewtarget="" -| xchannelselector="" -| ychannelselector="" -| zoomandpan="" - -#data - -#errors -#document -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests12.dat b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests12.dat deleted file mode 100644 index 63107d27..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests12.dat +++ /dev/null @@ -1,62 +0,0 @@ -#data -

foobazeggs

spam

quuxbar -#errors -#document -| -| -| -| -|

-| "foo" -| -| -| -| "baz" -| -| -| -| -| "eggs" -| -| -|

-| "spam" -| -| -| -|
-| -| -| "quux" -| "bar" - -#data -foobazeggs

spam
quuxbar -#errors -#document -| -| -| -| -| "foo" -| -| -| -| "baz" -| -| -| -| -| "eggs" -| -| -|

-| "spam" -| -| -| -|
-| -| -| "quux" -| "bar" diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests14.dat b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests14.dat deleted file mode 100644 index b8713f88..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests14.dat +++ /dev/null @@ -1,74 +0,0 @@ -#data - -#errors -#document -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -15: Unexpected start tag html -#document -| -| -| abc:def="gh" -| -| -| - -#data - -#errors -15: Unexpected start tag html -#document -| -| -| xml:lang="bar" -| -| - -#data - -#errors -#document -| -| -| 123="456" -| -| - -#data - -#errors -#document -| -| -| 123="456" -| 789="012" -| -| - -#data - -#errors -#document -| -| -| -| -| 789="012" diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests15.dat b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests15.dat deleted file mode 100644 index 6ce1c0d1..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests15.dat +++ /dev/null @@ -1,208 +0,0 @@ -#data -

X -#errors -Line: 1 Col: 31 Unexpected end tag (p). Ignored. -Line: 1 Col: 36 Expected closing tag. Unexpected end of file. -#document -| -| -| -| -|

-| -| -| -| -| -| -| " " -|

-| "X" - -#data -

-

X -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end tag (p). Ignored. -Line: 2 Col: 4 Expected closing tag. Unexpected end of file. -#document -| -| -| -|

-| -| -| -| -| -| -| " -" -|

-| "X" - -#data - -#errors -Line: 1 Col: 22 Unexpected end tag (html) after the (implied) root element. -#document -| -| -| -| -| " " - -#data - -#errors -Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. -#document -| -| -| -| -| - -#data - -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (html) after the (implied) root element. -#document -| -| -| -| - -#data -X -#errors -Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. -#document -| -| -| -| -| -| "X" - -#data -<!doctype html><table> X<meta></table> -#errors -Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected start tag (meta) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " X" -| <meta> -| <table> - -#data -<!doctype html><table> x</table> -#errors -Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x" -| <table> - -#data -<!doctype html><table> x </table> -#errors -Line: 1 Col: 25 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x " -| <table> - -#data -<!doctype html><table><tr> x</table> -#errors -Line: 1 Col: 28 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table>X<style> <tr>x </style> </table> -#errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <table> -| <style> -| " <tr>x " -| " " - -#data -<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div> -#errors -Line: 1 Col: 30 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 37 Unexpected end tag (a) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <a> -| "foo" -| <table> -| " " -| <tbody> -| <tr> -| <td> -| "bar" -| " " - -#data -<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes> -#errors -6: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>â€. -13: Stray start tag “frameâ€. -21: Stray end tag “frameâ€. -29: Stray end tag “frameâ€. -39: “frameset†start tag after “body†already open. -105: End of file seen inside an [R]CDATA element. -105: End of file seen and there were open elements. -XXX: These errors are wrong, please fix me! -#document -| <html> -| <head> -| <frameset> -| <frame> -| <frameset> -| <frame> -| <noframes> -| "</frameset><noframes>" - -#data -<!DOCTYPE html><object></html> -#errors -1: Expected closing tag. Unexpected end of file -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <object> diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests16.dat b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests16.dat deleted file mode 100644 index c8ef66f0..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests16.dat +++ /dev/null @@ -1,2299 +0,0 @@ -#data -<!doctype html><script> -#errors -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script>a -#errors -Line: 1 Col: 24 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "a" -| <body> - -#data -<!doctype html><script>< -#errors -Line: 1 Col: 24 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<" -| <body> - -#data -<!doctype html><script></ -#errors -Line: 1 Col: 25 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</" -| <body> - -#data -<!doctype html><script></S -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</S" -| <body> - -#data -<!doctype html><script></SC -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SC" -| <body> - -#data -<!doctype html><script></SCR -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCR" -| <body> - -#data -<!doctype html><script></SCRI -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRI" -| <body> - -#data -<!doctype html><script></SCRIP -#errors -Line: 1 Col: 30 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRIP" -| <body> - -#data -<!doctype html><script></SCRIPT -#errors -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRIPT" -| <body> - -#data -<!doctype html><script></SCRIPT -#errors -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script></s -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</s" -| <body> - -#data -<!doctype html><script></sc -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</sc" -| <body> - -#data -<!doctype html><script></scr -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scr" -| <body> - -#data -<!doctype html><script></scri -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scri" -| <body> - -#data -<!doctype html><script></scrip -#errors -Line: 1 Col: 30 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scrip" -| <body> - -#data -<!doctype html><script></script -#errors -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</script" -| <body> - -#data -<!doctype html><script></script -#errors -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script><! -#errors -Line: 1 Col: 25 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!" -| <body> - -#data -<!doctype html><script><!a -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!a" -| <body> - -#data -<!doctype html><script><!- -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!-" -| <body> - -#data -<!doctype html><script><!-a -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!-a" -| <body> - -#data -<!doctype html><script><!-- -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<!doctype html><script><!--a -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--a" -| <body> - -#data -<!doctype html><script><!--< -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<" -| <body> - -#data -<!doctype html><script><!--<a -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<a" -| <body> - -#data -<!doctype html><script><!--</ -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--</" -| <body> - -#data -<!doctype html><script><!--</script -#errors -Line: 1 Col: 35 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--</script" -| <body> - -#data -<!doctype html><script><!--</script -#errors -Line: 1 Col: 36 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<!doctype html><script><!--<s -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<s" -| <body> - -#data -<!doctype html><script><!--<script -#errors -Line: 1 Col: 34 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script" -| <body> - -#data -<!doctype html><script><!--<script -#errors -Line: 1 Col: 35 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script " -| <body> - -#data -<!doctype html><script><!--<script < -#errors -Line: 1 Col: 36 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script <" -| <body> - -#data -<!doctype html><script><!--<script <a -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script <a" -| <body> - -#data -<!doctype html><script><!--<script </ -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </" -| <body> - -#data -<!doctype html><script><!--<script </s -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </s" -| <body> - -#data -<!doctype html><script><!--<script </script -#errors -Line: 1 Col: 43 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script" -| <body> - -#data -<!doctype html><script><!--<script </scripta -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </scripta" -| <body> - -#data -<!doctype html><script><!--<script </script -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script> -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script>" -| <body> - -#data -<!doctype html><script><!--<script </script/ -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script/" -| <body> - -#data -<!doctype html><script><!--<script </script < -#errors -Line: 1 Col: 45 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script <" -| <body> - -#data -<!doctype html><script><!--<script </script <a -#errors -Line: 1 Col: 46 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script <a" -| <body> - -#data -<!doctype html><script><!--<script </script </ -#errors -Line: 1 Col: 46 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script </" -| <body> - -#data -<!doctype html><script><!--<script </script </script -#errors -Line: 1 Col: 52 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script </script" -| <body> - -#data -<!doctype html><script><!--<script </script </script -#errors -Line: 1 Col: 53 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script </script/ -#errors -Line: 1 Col: 53 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script </script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script - -#errors -Line: 1 Col: 36 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -" -| <body> - -#data -<!doctype html><script><!--<script -a -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -a" -| <body> - -#data -<!doctype html><script><!--<script -< -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -<" -| <body> - -#data -<!doctype html><script><!--<script -- -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --" -| <body> - -#data -<!doctype html><script><!--<script --a -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --a" -| <body> - -#data -<!doctype html><script><!--<script --< -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --<" -| <body> - -#data -<!doctype html><script><!--<script --> -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script -->< -#errors -Line: 1 Col: 39 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --><" -| <body> - -#data -<!doctype html><script><!--<script --></ -#errors -Line: 1 Col: 40 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --></" -| <body> - -#data -<!doctype html><script><!--<script --></script -#errors -Line: 1 Col: 46 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --></script" -| <body> - -#data -<!doctype html><script><!--<script --></script -#errors -Line: 1 Col: 47 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script --></script/ -#errors -Line: 1 Col: 47 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script --></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script><\/script>--></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script><\/script>-->" -| <body> - -#data -<!doctype html><script><!--<script></scr'+'ipt>--></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt>-->" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>--><!--</script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>--><!--" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>-- ></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>-- >" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>- -></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- ->" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>- - ></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- - >" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>-></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>->" -| <body> - -#data -<!doctype html><script><!--<script>--!></script>X -#errors -Line: 1 Col: 49 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script>--!></script>X" -| <body> - -#data -<!doctype html><script><!--<scr'+'ipt></script>--></script> -#errors -Line: 1 Col: 59 Unexpected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<scr'+'ipt>" -| <body> -| "-->" - -#data -<!doctype html><script><!--<script></scr'+'ipt></script>X -#errors -Line: 1 Col: 57 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt></script>X" -| <body> - -#data -<!doctype html><style><!--<style></style>--></style> -#errors -Line: 1 Col: 52 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--<style>" -| <body> -| "-->" - -#data -<!doctype html><style><!--</style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "X" - -#data -<!doctype html><style><!--...</style>...--></style> -#errors -Line: 1 Col: 51 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--..." -| <body> -| "...-->" - -#data -<!doctype html><style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" -| <body> -| "X" - -#data -<!doctype html><style><!--...<style><!--...--!></style>--></style> -#errors -Line: 1 Col: 66 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--...<style><!--...--!>" -| <body> -| "-->" - -#data -<!doctype html><style><!--...</style><!-- --><style>@import ...</style> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--..." -| <!-- --> -| <style> -| "@import ..." -| <body> - -#data -<!doctype html><style>...<style><!--...</style><!-- --></style> -#errors -Line: 1 Col: 63 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "...<style><!--..." -| <!-- --> -| <body> - -#data -<!doctype html><style>...<!--[if IE]><style>...</style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "...<!--[if IE]><style>..." -| <body> -| "X" - -#data -<!doctype html><title><!--<title>--> -#errors -Line: 1 Col: 52 Unexpected end tag (title). -#document -| -| -| -| -| "<!--<title>" -| <body> -| "-->" - -#data -<!doctype html><title></title> -#errors -#document -| -| -| -| -| "" -| - -#data -foo/title><link></head><body>X -#errors -Line: 1 Col: 52 Unexpected end of file. Expected end tag (title). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "foo/title><link></head><body>X" -| <body> - -#data -<!doctype html><noscript><!--<noscript></noscript>--></noscript> -#errors -Line: 1 Col: 64 Unexpected end tag (noscript). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<!--<noscript>" -| <body> -| "-->" - -#data -<!doctype html><noscript><!--</noscript>X<noscript>--></noscript> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<!--" -| <body> -| "X" -| <noscript> -| "-->" - -#data -<!doctype html><noscript><iframe></noscript>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<iframe>" -| <body> -| "X" - -#data -<!doctype html><noframes><!--<noframes></noframes>--></noframes> -#errors -Line: 1 Col: 64 Unexpected end tag (noframes). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noframes> -| "<!--<noframes>" -| <body> -| "-->" - -#data -<!doctype html><noframes><body><script><!--...</script></body></noframes></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noframes> -| "<body><script><!--...</script></body>" -| <body> - -#data -<!doctype html><textarea><!--<textarea></textarea>--></textarea> -#errors -Line: 1 Col: 64 Unexpected end tag (textarea). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "<!--<textarea>" -| "-->" - -#data -<!doctype html><textarea></textarea></textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "</textarea>" - -#data -<!doctype html><textarea><</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "<" - -#data -<!doctype html><textarea>a<b</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "a<b" - -#data -<!doctype html><iframe><!--<iframe></iframe>--></iframe> -#errors -Line: 1 Col: 56 Unexpected end tag (iframe). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> -| "<!--<iframe>" -| "-->" - -#data -<!doctype html><iframe>...<!--X->...<!--/X->...</iframe> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> -| "...<!--X->...<!--/X->..." - -#data -<!doctype html><xmp><!--<xmp></xmp>--></xmp> -#errors -Line: 1 Col: 44 Unexpected end tag (xmp). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xmp> -| "<!--<xmp>" -| "-->" - -#data -<!doctype html><noembed><!--<noembed></noembed>--></noembed> -#errors -Line: 1 Col: 60 Unexpected end tag (noembed). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <noembed> -| "<!--<noembed>" -| "-->" - -#data -<script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 8 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script>a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "a" -| <body> - -#data -<script>< -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<" -| <body> - -#data -<script></ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</" -| <body> - -#data -<script></S -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</S" -| <body> - -#data -<script></SC -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SC" -| <body> - -#data -<script></SCR -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCR" -| <body> - -#data -<script></SCRI -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCRI" -| <body> - -#data -<script></SCRIP -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCRIP" -| <body> - -#data -<script></SCRIPT -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCRIPT" -| <body> - -#data -<script></SCRIPT -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script></s -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</s" -| <body> - -#data -<script></sc -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</sc" -| <body> - -#data -<script></scr -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</scr" -| <body> - -#data -<script></scri -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</scri" -| <body> - -#data -<script></scrip -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</scrip" -| <body> - -#data -<script></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</script" -| <body> - -#data -<script></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script><! -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!" -| <body> - -#data -<script><!a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!a" -| <body> - -#data -<script><!- -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!-" -| <body> - -#data -<script><!-a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!-a" -| <body> - -#data -<script><!-- -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<script><!--a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--a" -| <body> - -#data -<script><!--< -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<" -| <body> - -#data -<script><!--<a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<a" -| <body> - -#data -<script><!--</ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--</" -| <body> - -#data -<script><!--</script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--</script" -| <body> - -#data -<script><!--</script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<script><!--<s -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<s" -| <body> - -#data -<script><!--<script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script" -| <body> - -#data -<script><!--<script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script " -| <body> - -#data -<script><!--<script < -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script <" -| <body> - -#data -<script><!--<script <a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script <a" -| <body> - -#data -<script><!--<script </ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </" -| <body> - -#data -<script><!--<script </s -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </s" -| <body> - -#data -<script><!--<script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script" -| <body> - -#data -<script><!--<script </scripta -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </scripta" -| <body> - -#data -<script><!--<script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script>" -| <body> - -#data -<script><!--<script </script/ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script/" -| <body> - -#data -<script><!--<script </script < -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 30 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script <" -| <body> - -#data -<script><!--<script </script <a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script <a" -| <body> - -#data -<script><!--<script </script </ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script </" -| <body> - -#data -<script><!--<script </script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script </script" -| <body> - -#data -<script><!--<script </script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script </script/ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script </script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script - -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -" -| <body> - -#data -<script><!--<script -a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -a" -| <body> - -#data -<script><!--<script -- -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --" -| <body> - -#data -<script><!--<script --a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --a" -| <body> - -#data -<script><!--<script --> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script -->< -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 24 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --><" -| <body> - -#data -<script><!--<script --></ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --></" -| <body> - -#data -<script><!--<script --></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --></script" -| <body> - -#data -<script><!--<script --></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script --></script/ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script --></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script><\/script>--></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script><\/script>-->" -| <body> - -#data -<script><!--<script></scr'+'ipt>--></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt>-->" -| <body> - -#data -<script><!--<script></script><script></script></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>" -| <body> - -#data -<script><!--<script></script><script></script>--><!--</script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>--><!--" -| <body> - -#data -<script><!--<script></script><script></script>-- ></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>-- >" -| <body> - -#data -<script><!--<script></script><script></script>- -></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- ->" -| <body> - -#data -<script><!--<script></script><script></script>- - ></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- - >" -| <body> - -#data -<script><!--<script></script><script></script>-></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>->" -| <body> - -#data -<script><!--<script>--!></script>X -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 34 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script>--!></script>X" -| <body> - -#data -<script><!--<scr'+'ipt></script>--></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 44 Unexpected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<scr'+'ipt>" -| <body> -| "-->" - -#data -<script><!--<script></scr'+'ipt></script>X -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 42 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt></script>X" -| <body> - -#data -<style><!--<style></style>--></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--<style>" -| <body> -| "-->" - -#data -<style><!--</style>X -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "X" - -#data -<style><!--...</style>...--></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 36 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--..." -| <body> -| "...-->" - -#data -<style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" -| <body> -| "X" - -#data -<style><!--...<style><!--...--!></style>--></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 51 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--...<style><!--...--!>" -| <body> -| "-->" - -#data -<style><!--...</style><!-- --><style>@import ...</style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "<!--..." -| <!-- --> -| <style> -| "@import ..." -| <body> - -#data -<style>...<style><!--...</style><!-- --></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 48 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "...<style><!--..." -| <!-- --> -| <body> - -#data -<style>...<!--[if IE]><style>...</style>X -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "...<!--[if IE]><style>..." -| <body> -| "X" - -#data -<title><!--<title>--> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected end tag (title). -#document -| -| -| -| "<!--<title>" -| <body> -| "-->" - -#data -<title></title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -#document -| -| -| -| "" -| - -#data -foo/title><link></head><body>X -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected end of file. Expected end tag (title). -#document -| <html> -| <head> -| <title> -| "foo/title><link></head><body>X" -| <body> - -#data -<noscript><!--<noscript></noscript>--></noscript> -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -Line: 1 Col: 49 Unexpected end tag (noscript). -#document -| <html> -| <head> -| <noscript> -| "<!--<noscript>" -| <body> -| "-->" - -#data -<noscript><!--</noscript>X<noscript>--></noscript> -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -#document -| <html> -| <head> -| <noscript> -| "<!--" -| <body> -| "X" -| <noscript> -| "-->" - -#data -<noscript><iframe></noscript>X -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -#document -| <html> -| <head> -| <noscript> -| "<iframe>" -| <body> -| "X" - -#data -<noframes><!--<noframes></noframes>--></noframes> -#errors -Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE. -Line: 1 Col: 49 Unexpected end tag (noframes). -#document -| <html> -| <head> -| <noframes> -| "<!--<noframes>" -| <body> -| "-->" - -#data -<noframes><body><script><!--...</script></body></noframes></html> -#errors -Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE. -#document -| <html> -| <head> -| <noframes> -| "<body><script><!--...</script></body>" -| <body> - -#data -<textarea><!--<textarea></textarea>--></textarea> -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 49 Unexpected end tag (textarea). -#document -| <html> -| <head> -| <body> -| <textarea> -| "<!--<textarea>" -| "-->" - -#data -<textarea></textarea></textarea> -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <textarea> -| "</textarea>" - -#data -<iframe><!--<iframe></iframe>--></iframe> -#errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. -Line: 1 Col: 41 Unexpected end tag (iframe). -#document -| <html> -| <head> -| <body> -| <iframe> -| "<!--<iframe>" -| "-->" - -#data -<iframe>...<!--X->...<!--/X->...</iframe> -#errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <iframe> -| "...<!--X->...<!--/X->..." - -#data -<xmp><!--<xmp></xmp>--></xmp> -#errors -Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end tag (xmp). -#document -| <html> -| <head> -| <body> -| <xmp> -| "<!--<xmp>" -| "-->" - -#data -<noembed><!--<noembed></noembed>--></noembed> -#errors -Line: 1 Col: 9 Unexpected start tag (noembed). Expected DOCTYPE. -Line: 1 Col: 45 Unexpected end tag (noembed). -#document -| <html> -| <head> -| <body> -| <noembed> -| "<!--<noembed>" -| "-->" - -#data -<!doctype html><table> - -#errors -Line 2 Col 0 Unexpected end of file. Expected table content. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " -" - -#data -<!doctype html><table><td><span><font></span><span> -#errors -Line 1 Col 26 Unexpected table cell start tag (td) in the table body phase. -Line 1 Col 45 Unexpected end tag (span). -Line 1 Col 51 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <span> -| <font> -| <font> -| <span> - -#data -<!doctype html><form><table></form><form></table></form> -#errors -35: Stray end tag “formâ€. -41: Start tag “form†seen in “tableâ€. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <table> -| <form> diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests17.dat b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests17.dat deleted file mode 100644 index 7b555f88..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests17.dat +++ /dev/null @@ -1,153 +0,0 @@ -#data -<!doctype html><table><tbody><select><tr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><tr><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<!doctype html><table><tr><td><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <select> -| <td> - -#data -<!doctype html><table><tr><th><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <th> -| <select> -| <td> - -#data -<!doctype html><table><caption><select><tr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <select> -| <tbody> -| <tr> - -#data -<!doctype html><select><tr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><th> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><tbody> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><thead> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><tfoot> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><caption> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><table><tr></table>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| "a" diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests18.dat b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests18.dat deleted file mode 100644 index 680e1f06..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests18.dat +++ /dev/null @@ -1,269 +0,0 @@ -#data -<!doctype html><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> - -#data -<!doctype html><table><tbody><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> - -#data -<!doctype html><table><tbody><tr><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><tbody><tr><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><td><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><caption><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><tr><style></script></style>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <tbody> -| <tr> -| <style> -| "</script>" - -#data -<!doctype html><table><tr><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <tbody> -| <tr> -| <script> -| "</style>" - -#data -<!doctype html><table><caption><style></script></style>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <style> -| "</script>" -| "abc" - -#data -<!doctype html><table><td><style></script></style>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <style> -| "</script>" -| "abc" - -#data -<!doctype html><select><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" - -#data -<!doctype html><table><select><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" -| <table> - -#data -<!doctype html><table><tr><select><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><frameset></frameset><noframes>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" - -#data -<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" -| <!-- abc --> - -#data -<!doctype html><frameset></frameset></html><noframes>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" - -#data -<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" -| <!-- abc --> - -#data -<!doctype html><table><tr></tbody><tfoot> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <tfoot> - -#data -<!doctype html><table><td><svg></svg>abc<td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| "abc" -| <td> diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests19.dat b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests19.dat deleted file mode 100644 index 0d62f5a5..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests19.dat +++ /dev/null @@ -1,1237 +0,0 @@ -#data -<!doctype html><math><mn DefinitionUrl="foo"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mn> -| definitionURL="foo" - -#data -<!doctype html><html></p><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <!-- foo --> -| <head> -| <body> - -#data -<!doctype html><head></head></p><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <!-- foo --> -| <body> - -#data -<!doctype html><body><p><pre> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <pre> - -#data -<!doctype html><body><p><listing> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <listing> - -#data -<!doctype html><p><plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <plaintext> - -#data -<!doctype html><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <h1> - -#data -<!doctype html><form><isindex> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> - -#data -<!doctype html><isindex action="POST"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| action="POST" -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><isindex prompt="this is isindex"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "this is isindex" -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><isindex type="hidden"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| type="hidden" -| <hr> - -#data -<!doctype html><isindex name="foo"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><ruby><p><rp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <p> -| <rp> - -#data -<!doctype html><ruby><div><span><rp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <span> -| <rp> - -#data -<!doctype html><ruby><div><p><rp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <p> -| <rp> - -#data -<!doctype html><ruby><p><rt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <p> -| <rt> - -#data -<!doctype html><ruby><div><span><rt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <span> -| <rt> - -#data -<!doctype html><ruby><div><p><rt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <p> -| <rt> - -#data -<!doctype html><math/><foo> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <foo> - -#data -<!doctype html><svg/><foo> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <foo> - -#data -<!doctype html><div></body><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <!-- foo --> - -#data -<!doctype html><h1><div><h3><span></h1>foo -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <h1> -| <div> -| <h3> -| <span> -| "foo" - -#data -<!doctype html><p></h3>foo -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "foo" - -#data -<!doctype html><h3><li>abc</h2>foo -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <h3> -| <li> -| "abc" -| "foo" - -#data -<!doctype html><table>abc<!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <!-- foo --> - -#data -<!doctype html><table> <!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " " -| <!-- foo --> - -#data -<!doctype html><table> b <!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " b " -| <table> -| <!-- foo --> - -#data -<!doctype html><select><option><option> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> -| <option> - -#data -<!doctype html><select><option></optgroup> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!doctype html><select><option></optgroup> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!doctype html><p><math><mi><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mi> -| <p> -| <h1> - -#data -<!doctype html><p><math><mo><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mo> -| <p> -| <h1> - -#data -<!doctype html><p><math><mn><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mn> -| <p> -| <h1> - -#data -<!doctype html><p><math><ms><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math ms> -| <p> -| <h1> - -#data -<!doctype html><p><math><mtext><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mtext> -| <p> -| <h1> - -#data -<!doctype html><frameset></noframes> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html c=d><body></html><html a=b> -#errors -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <body> - -#data -<!doctype html><html c=d><frameset></frameset></html><html a=b> -#errors -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <!-- foo --> - -#data -<!doctype html><html><frameset></frameset></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| " " - -#data -<!doctype html><html><frameset></frameset></html>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html><p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html></p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<html><frameset></frameset></html><!doctype html> -#errors -#document -| <html> -| <head> -| <frameset> - -#data -<!doctype html><body><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!doctype html><p><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><p>a<frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "a" - -#data -<!doctype html><p> <frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><pre><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> - -#data -<!doctype html><listing><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <listing> - -#data -<!doctype html><li><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <li> - -#data -<!doctype html><dd><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dd> - -#data -<!doctype html><dt><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dt> - -#data -<!doctype html><button><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <button> - -#data -<!doctype html><applet><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <applet> - -#data -<!doctype html><marquee><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <marquee> - -#data -<!doctype html><object><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <object> - -#data -<!doctype html><table><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> - -#data -<!doctype html><area><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <area> - -#data -<!doctype html><basefont><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <basefont> -| <frameset> - -#data -<!doctype html><bgsound><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <bgsound> -| <frameset> - -#data -<!doctype html><br><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <br> - -#data -<!doctype html><embed><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <embed> - -#data -<!doctype html><img><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <img> - -#data -<!doctype html><input><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> - -#data -<!doctype html><keygen><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <keygen> - -#data -<!doctype html><wbr><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <wbr> - -#data -<!doctype html><hr><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <hr> - -#data -<!doctype html><textarea></textarea><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> - -#data -<!doctype html><xmp></xmp><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xmp> - -#data -<!doctype html><iframe></iframe><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> - -#data -<!doctype html><select></select><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><svg></svg><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><math></math><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><svg><foreignObject><div> <frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><svg>a</svg><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| "a" - -#data -<!doctype html><svg> </svg><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<html>aaa<frameset></frameset> -#errors -#document -| <html> -| <head> -| <body> -| "aaa" - -#data -<html> a <frameset></frameset> -#errors -#document -| <html> -| <head> -| <body> -| "a " - -#data -<!doctype html><div><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><div><body><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> - -#data -<!doctype html><p><math></p>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| "a" - -#data -<!doctype html><p><math><mn><span></p>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mn> -| <span> -| <p> -| "a" - -#data -<!doctype html><math></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> - -#data -<!doctype html><meta charset="ascii"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <meta> -| charset="ascii" -| <body> - -#data -<!doctype html><meta http-equiv="content-type" content="text/html;charset=ascii"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <meta> -| content="text/html;charset=ascii" -| http-equiv="content-type" -| <body> - -#data -<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset="utf8"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --> -| <meta> -| charset="utf8" -| <body> - -#data -<!doctype html><html a=b><head></head><html c=d> -#errors -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <body> - -#data -<!doctype html><image/> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <img> - -#data -<!doctype html>a<i>b<table>c<b>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "a" -| <i> -| "bc" -| <b> -| "de" -| "f" -| <table> - -#data -<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" -| <table> - -#data -<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" - -#data -<!doctype html><table><i>a<b>b<div>c</i> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <i> -| "c" -| <table> - -#data -<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" -| <table> - -#data -<!doctype html><table><i>a<div>b<tr>c<b>d</i>e -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <div> -| "b" -| <i> -| "c" -| <b> -| "d" -| <b> -| "e" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><td><table><i>a<div>b<b>c</i>d -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <i> -| "a" -| <div> -| <i> -| "b" -| <b> -| "c" -| <b> -| "d" -| <table> - -#data -<!doctype html><body><bgsound> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <bgsound> - -#data -<!doctype html><body><basefont> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <basefont> - -#data -<!doctype html><a><b></a><basefont> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <a> -| <b> -| <basefont> - -#data -<!doctype html><a><b></a><bgsound> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <a> -| <b> -| <bgsound> - -#data -<!doctype html><figcaption><article></figcaption>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <figcaption> -| <article> -| "a" - -#data -<!doctype html><summary><article></summary>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <summary> -| <article> -| "a" - -#data -<!doctype html><p><a><plaintext>b -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <a> -| <plaintext> -| <a> -| "b" - -#data -<!DOCTYPE html><div>a<a></div>b<p>c</p>d -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| "a" -| <a> -| <a> -| "b" -| <p> -| "c" -| "d" diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests2.dat b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests2.dat deleted file mode 100644 index 60d85922..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/html/testdata/webkit/tests2.dat +++ /dev/null @@ -1,763 +0,0 @@ -#data -<!DOCTYPE html>Test -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Test" - -#data -<textarea>test</div>test -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 24 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <textarea> -| "test</div>test" - -#data -<table><td> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 11 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><td>test</tbody></table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "test" - -#data -<frame>test -#errors -Line: 1 Col: 7 Unexpected start tag (frame). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected start tag frame. Ignored. -#document -| <html> -| <head> -| <body> -| "test" - -#data -<!DOCTYPE html><frameset>test -#errors -Line: 1 Col: 29 Unepxected characters in the frameset phase. Characters ignored. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><frameset><!DOCTYPE html> -#errors -Line: 1 Col: 40 Unexpected DOCTYPE. Ignored. -Line: 1 Col: 40 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><font><p><b>test</font> -#errors -Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <font> -| <p> -| <font> -| <b> -| "test" - -#data -<!DOCTYPE html><dt><div><dd> -#errors -Line: 1 Col: 28 Missing end tag (div, dt). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dt> -| <div> -| <dd> - -#data -<script></x -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</x" -| <body> - -#data -<table><plaintext><td> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 18 Unexpected start tag (plaintext) in table context caused voodoo mode. -Line: 1 Col: 22 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <plaintext> -| "<td>" -| <table> - -#data -<plaintext></plaintext> -#errors -Line: 1 Col: 11 Unexpected start tag (plaintext). Expected DOCTYPE. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" - -#data -<!DOCTYPE html><table><tr>TEST -#errors -Line: 1 Col: 30 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected end of file. Expected table content. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "TEST" -| <table> -| <tbody> -| <tr> - -#data -<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4> -#errors -Line: 1 Col: 37 Unexpected start tag (body). -Line: 1 Col: 53 Unexpected start tag (body). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| t1="1" -| t2="2" -| t3="3" -| t4="4" - -#data -</b test -#errors -Line: 1 Col: 8 Unexpected end of file in attribute name. -Line: 1 Col: 8 End tag contains unexpected attributes. -Line: 1 Col: 8 Unexpected end tag (b). Expected DOCTYPE. -Line: 1 Col: 8 Unexpected end tag (b) after the (implied) root element. -#document -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html></b test<b &=&>X -#errors -Line: 1 Col: 32 Named entity didn't end with ';'. -Line: 1 Col: 33 End tag contains unexpected attributes. -Line: 1 Col: 33 Unexpected end tag (b) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" - -#data -<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 54 Unexpected end of file in the tag name. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| type="text/x-foobar;baz" -| "X</SCRipt" -| <body> - -#data -& -#errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&" - -#data -&# -#errors -Line: 1 Col: 1 Numeric entity expected. Got end of file instead. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&#" - -#data -&#X -#errors -Line: 1 Col: 3 Numeric entity expected but none found. -Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&#X" - -#data -&#x -#errors -Line: 1 Col: 3 Numeric entity expected but none found. -Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&#x" - -#data -- -#errors -Line: 1 Col: 4 Numeric entity didn't end with ';'. -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "-" - -#data -&x-test -#errors -Line: 1 Col: 1 Named entity expected. Got none. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&x-test" - -#data -<!doctypehtml><p><li> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <li> - -#data -<!doctypehtml><p><dt> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <dt> - -#data -<!doctypehtml><p><dd> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <dd> - -#data -<!doctypehtml><p><form> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <form> - -#data -<!DOCTYPE html><p></P>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "X" - -#data -& -#errors -Line: 1 Col: 4 Named entity didn't end with ';'. -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&" - -#data -&AMp; -#errors -Line: 1 Col: 1 Named entity expected. Got none. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&AMp;" - -#data -<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY> -#errors -Line: 1 Col: 110 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly> - -#data -<!DOCTYPE html>X</body>X -#errors -Line: 1 Col: 24 Unexpected non-space characters in the after body phase. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "XX" - -#data -<!DOCTYPE html><!-- X -#errors -Line: 1 Col: 21 Unexpected end of file in comment. -#document -| <!DOCTYPE html> -| <!-- X --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><table><caption>test TEST</caption><td>test -#errors -Line: 1 Col: 54 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 58 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| "test TEST" -| <tbody> -| <tr> -| <td> -| "test" - -#data -<!DOCTYPE html><select><option><optgroup> -#errors -Line: 1 Col: 41 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> -| <optgroup> - -#data -<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option> -#errors -Line: 1 Col: 68 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 76 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> -| <option> -| <option> -| <option> - -#data -<!DOCTYPE html><select><optgroup><option><optgroup> -#errors -Line: 1 Col: 51 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> -| <option> -| <optgroup> - -#data -<!DOCTYPE html><datalist><option>foo</datalist>bar -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <datalist> -| <option> -| "foo" -| "bar" - -#data -<!DOCTYPE html><font><input><input></font> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <font> -| <input> -| <input> - -#data -<!DOCTYPE html><!-- XXX - XXX --> -#errors -#document -| <!DOCTYPE html> -| <!-- XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><!-- XXX - XXX -#errors -Line: 1 Col: 29 Unexpected end of file in comment (-) -#document -| <!DOCTYPE html> -| <!-- XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><!-- XXX - XXX - XXX --> -#errors -#document -| <!DOCTYPE html> -| <!-- XXX - XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<isindex test=x name=x> -#errors -Line: 1 Col: 23 Unexpected start tag (isindex). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected start tag isindex. Don't use it! -#document -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| test="x" -| <hr> - -#data -test -test -#errors -Line: 2 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "test -test" - -#data -<!DOCTYPE html><body><title>test</body> -#errors -#document -| -| -| -| -| -| "test</body>" - -#data -<!DOCTYPE html><body><title>X -#errors -#document -| -| -| -| -| -| "X" -| <meta> -| name="z" -| <link> -| rel="foo" -| <style> -| " -x { content:"</style" } " - -#data -<!DOCTYPE html><select><optgroup></optgroup></select> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> - -#data - - -#errors -Line: 2 Col: 1 Unexpected End of file. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html> <html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><script> -</script> <title>x -#errors -#document -| -| -| -| -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected start tag (script) that can be in head. Moved. -#document -| -| -| -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected start tag (style) that can be in head. Moved. -#document -| -| -| -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -#document -| -| -| -| -| "x" -| x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (style). -#document -| -| -| --> x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| -| -| x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| -| -| x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| -| -| x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| -| -|

-#errors -#document -| -| -| -| -| -| ddd -#errors -#document -| -| -| -#errors -#document -| -| -| -| -|
  • -| -| ", - " -
    << Back to Go HTTP/2 demo server`) - }) -} - -func httpsHost() string { - if *hostHTTPS != "" { - return *hostHTTPS - } - if v := *httpsAddr; strings.HasPrefix(v, ":") { - return "localhost" + v - } else { - return v - } -} - -func httpHost() string { - if *hostHTTP != "" { - return *hostHTTP - } - if v := *httpAddr; strings.HasPrefix(v, ":") { - return "localhost" + v - } else { - return v - } -} - -func serveProdTLS() error { - c, err := googlestorage.NewServiceClient() - if err != nil { - return err - } - slurp := func(key string) ([]byte, error) { - const bucket = "http2-demo-server-tls" - rc, _, err := c.GetObject(&googlestorage.Object{ - Bucket: bucket, - Key: key, - }) - if err != nil { - return nil, fmt.Errorf("Error fetching GCS object %q in bucket %q: %v", key, bucket, err) - } - defer rc.Close() - return ioutil.ReadAll(rc) - } - certPem, err := slurp("http2.golang.org.chained.pem") - if err != nil { - return err - } - keyPem, err := slurp("http2.golang.org.key") - if err != nil { - return err - } - cert, err := tls.X509KeyPair(certPem, keyPem) - if err != nil { - return err - } - srv := &http.Server{ - TLSConfig: &tls.Config{ - Certificates: []tls.Certificate{cert}, - }, - } - http2.ConfigureServer(srv, &http2.Server{}) - ln, err := net.Listen("tcp", ":443") - if err != nil { - return err - } - return srv.Serve(tls.NewListener(tcpKeepAliveListener{ln.(*net.TCPListener)}, srv.TLSConfig)) -} - -type tcpKeepAliveListener struct { - *net.TCPListener -} - -func (ln tcpKeepAliveListener) Accept() (c net.Conn, err error) { - tc, err := ln.AcceptTCP() - if err != nil { - return - } - tc.SetKeepAlive(true) - tc.SetKeepAlivePeriod(3 * time.Minute) - return tc, nil -} - -func serveProd() error { - errc := make(chan error, 2) - go func() { errc <- http.ListenAndServe(":80", nil) }() - go func() { errc <- serveProdTLS() }() - return <-errc -} - -func main() { - var srv http.Server - flag.BoolVar(&http2.VerboseLogs, "verbose", false, "Verbose HTTP/2 debugging.") - flag.Parse() - srv.Addr = *httpsAddr - - registerHandlers() - - if *prod { - *hostHTTP = "http2.golang.org" - *hostHTTPS = "http2.golang.org" - log.Fatal(serveProd()) - } - - url := "https://" + httpsHost() + "/" - log.Printf("Listening on " + url) - http2.ConfigureServer(&srv, &http2.Server{}) - - if *httpAddr != "" { - go func() { - log.Printf("Listening on http://" + httpHost() + "/ (for unencrypted HTTP/1)") - log.Fatal(http.ListenAndServe(*httpAddr, nil)) - }() - } - - go func() { - log.Fatal(srv.ListenAndServeTLS("server.crt", "server.key")) - }() - select {} -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/launch.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/launch.go deleted file mode 100644 index 74666154..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/launch.go +++ /dev/null @@ -1,302 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "bufio" - "bytes" - "encoding/json" - "flag" - "fmt" - "io" - "io/ioutil" - "log" - "net/http" - "os" - "strings" - "time" - - "golang.org/x/oauth2" - "golang.org/x/oauth2/google" - compute "google.golang.org/api/compute/v1" -) - -var ( - proj = flag.String("project", "symbolic-datum-552", "name of Project") - zone = flag.String("zone", "us-central1-a", "GCE zone") - mach = flag.String("machinetype", "n1-standard-1", "Machine type") - instName = flag.String("instance_name", "http2-demo", "Name of VM instance.") - sshPub = flag.String("ssh_public_key", "", "ssh public key file to authorize. Can modify later in Google's web UI anyway.") - staticIP = flag.String("static_ip", "130.211.116.44", "Static IP to use. If empty, automatic.") - - writeObject = flag.String("write_object", "", "If non-empty, a VM isn't created and the flag value is Google Cloud Storage bucket/object to write. The contents from stdin.") - publicObject = flag.Bool("write_object_is_public", false, "Whether the object created by --write_object should be public.") -) - -func readFile(v string) string { - slurp, err := ioutil.ReadFile(v) - if err != nil { - log.Fatalf("Error reading %s: %v", v, err) - } - return strings.TrimSpace(string(slurp)) -} - -var config = &oauth2.Config{ - // The client-id and secret should be for an "Installed Application" when using - // the CLI. Later we'll use a web application with a callback. - ClientID: readFile("client-id.dat"), - ClientSecret: readFile("client-secret.dat"), - Endpoint: google.Endpoint, - Scopes: []string{ - compute.DevstorageFull_controlScope, - compute.ComputeScope, - "https://www.googleapis.com/auth/sqlservice", - "https://www.googleapis.com/auth/sqlservice.admin", - }, - RedirectURL: "urn:ietf:wg:oauth:2.0:oob", -} - -const baseConfig = `#cloud-config -coreos: - units: - - name: h2demo.service - command: start - content: | - [Unit] - Description=HTTP2 Demo - - [Service] - ExecStartPre=/bin/bash -c 'mkdir -p /opt/bin && curl -s -o /opt/bin/h2demo http://storage.googleapis.com/http2-demo-server-tls/h2demo && chmod +x /opt/bin/h2demo' - ExecStart=/opt/bin/h2demo --prod - RestartSec=5s - Restart=always - Type=simple - - [Install] - WantedBy=multi-user.target -` - -func main() { - flag.Parse() - if *proj == "" { - log.Fatalf("Missing --project flag") - } - prefix := "https://www.googleapis.com/compute/v1/projects/" + *proj - machType := prefix + "/zones/" + *zone + "/machineTypes/" + *mach - - const tokenFileName = "token.dat" - tokenFile := tokenCacheFile(tokenFileName) - tokenSource := oauth2.ReuseTokenSource(nil, tokenFile) - token, err := tokenSource.Token() - if err != nil { - if *writeObject != "" { - log.Fatalf("Can't use --write_object without a valid token.dat file already cached.") - } - log.Printf("Error getting token from %s: %v", tokenFileName, err) - log.Printf("Get auth code from %v", config.AuthCodeURL("my-state")) - fmt.Print("\nEnter auth code: ") - sc := bufio.NewScanner(os.Stdin) - sc.Scan() - authCode := strings.TrimSpace(sc.Text()) - token, err = config.Exchange(oauth2.NoContext, authCode) - if err != nil { - log.Fatalf("Error exchanging auth code for a token: %v", err) - } - if err := tokenFile.WriteToken(token); err != nil { - log.Fatalf("Error writing to %s: %v", tokenFileName, err) - } - tokenSource = oauth2.ReuseTokenSource(token, nil) - } - - oauthClient := oauth2.NewClient(oauth2.NoContext, tokenSource) - - if *writeObject != "" { - writeCloudStorageObject(oauthClient) - return - } - - computeService, _ := compute.New(oauthClient) - - natIP := *staticIP - if natIP == "" { - // Try to find it by name. - aggAddrList, err := computeService.Addresses.AggregatedList(*proj).Do() - if err != nil { - log.Fatal(err) - } - // http://godoc.org/code.google.com/p/google-api-go-client/compute/v1#AddressAggregatedList - IPLoop: - for _, asl := range aggAddrList.Items { - for _, addr := range asl.Addresses { - if addr.Name == *instName+"-ip" && addr.Status == "RESERVED" { - natIP = addr.Address - break IPLoop - } - } - } - } - - cloudConfig := baseConfig - if *sshPub != "" { - key := strings.TrimSpace(readFile(*sshPub)) - cloudConfig += fmt.Sprintf("\nssh_authorized_keys:\n - %s\n", key) - } - if os.Getenv("USER") == "bradfitz" { - cloudConfig += fmt.Sprintf("\nssh_authorized_keys:\n - %s\n", "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwks9dwWKlRC+73gRbvYtVg0vdCwDSuIlyt4z6xa/YU/jTDynM4R4W10hm2tPjy8iR1k8XhDv4/qdxe6m07NjG/By1tkmGpm1mGwho4Pr5kbAAy/Qg+NLCSdAYnnE00FQEcFOC15GFVMOW2AzDGKisReohwH9eIzHPzdYQNPRWXE= bradfitz@papag.bradfitz.com") - } - const maxCloudConfig = 32 << 10 // per compute API docs - if len(cloudConfig) > maxCloudConfig { - log.Fatalf("cloud config length of %d bytes is over %d byte limit", len(cloudConfig), maxCloudConfig) - } - - instance := &compute.Instance{ - Name: *instName, - Description: "Go Builder", - MachineType: machType, - Disks: []*compute.AttachedDisk{instanceDisk(computeService)}, - Tags: &compute.Tags{ - Items: []string{"http-server", "https-server"}, - }, - Metadata: &compute.Metadata{ - Items: []*compute.MetadataItems{ - { - Key: "user-data", - Value: cloudConfig, - }, - }, - }, - NetworkInterfaces: []*compute.NetworkInterface{ - &compute.NetworkInterface{ - AccessConfigs: []*compute.AccessConfig{ - &compute.AccessConfig{ - Type: "ONE_TO_ONE_NAT", - Name: "External NAT", - NatIP: natIP, - }, - }, - Network: prefix + "/global/networks/default", - }, - }, - ServiceAccounts: []*compute.ServiceAccount{ - { - Email: "default", - Scopes: []string{ - compute.DevstorageFull_controlScope, - compute.ComputeScope, - }, - }, - }, - } - - log.Printf("Creating instance...") - op, err := computeService.Instances.Insert(*proj, *zone, instance).Do() - if err != nil { - log.Fatalf("Failed to create instance: %v", err) - } - opName := op.Name - log.Printf("Created. Waiting on operation %v", opName) -OpLoop: - for { - time.Sleep(2 * time.Second) - op, err := computeService.ZoneOperations.Get(*proj, *zone, opName).Do() - if err != nil { - log.Fatalf("Failed to get op %s: %v", opName, err) - } - switch op.Status { - case "PENDING", "RUNNING": - log.Printf("Waiting on operation %v", opName) - continue - case "DONE": - if op.Error != nil { - for _, operr := range op.Error.Errors { - log.Printf("Error: %+v", operr) - } - log.Fatalf("Failed to start.") - } - log.Printf("Success. %+v", op) - break OpLoop - default: - log.Fatalf("Unknown status %q: %+v", op.Status, op) - } - } - - inst, err := computeService.Instances.Get(*proj, *zone, *instName).Do() - if err != nil { - log.Fatalf("Error getting instance after creation: %v", err) - } - ij, _ := json.MarshalIndent(inst, "", " ") - log.Printf("Instance: %s", ij) -} - -func instanceDisk(svc *compute.Service) *compute.AttachedDisk { - const imageURL = "https://www.googleapis.com/compute/v1/projects/coreos-cloud/global/images/coreos-stable-444-5-0-v20141016" - diskName := *instName + "-disk" - - return &compute.AttachedDisk{ - AutoDelete: true, - Boot: true, - Type: "PERSISTENT", - InitializeParams: &compute.AttachedDiskInitializeParams{ - DiskName: diskName, - SourceImage: imageURL, - DiskSizeGb: 50, - }, - } -} - -func writeCloudStorageObject(httpClient *http.Client) { - content := os.Stdin - const maxSlurp = 1 << 20 - var buf bytes.Buffer - n, err := io.CopyN(&buf, content, maxSlurp) - if err != nil && err != io.EOF { - log.Fatalf("Error reading from stdin: %v, %v", n, err) - } - contentType := http.DetectContentType(buf.Bytes()) - - req, err := http.NewRequest("PUT", "https://storage.googleapis.com/"+*writeObject, io.MultiReader(&buf, content)) - if err != nil { - log.Fatal(err) - } - req.Header.Set("x-goog-api-version", "2") - if *publicObject { - req.Header.Set("x-goog-acl", "public-read") - } - req.Header.Set("Content-Type", contentType) - res, err := httpClient.Do(req) - if err != nil { - log.Fatal(err) - } - if res.StatusCode != 200 { - res.Write(os.Stderr) - log.Fatalf("Failed.") - } - log.Printf("Success.") - os.Exit(0) -} - -type tokenCacheFile string - -func (f tokenCacheFile) Token() (*oauth2.Token, error) { - slurp, err := ioutil.ReadFile(string(f)) - if err != nil { - return nil, err - } - t := new(oauth2.Token) - if err := json.Unmarshal(slurp, t); err != nil { - return nil, err - } - return t, nil -} - -func (f tokenCacheFile) WriteToken(t *oauth2.Token) error { - jt, err := json.Marshal(t) - if err != nil { - return err - } - return ioutil.WriteFile(string(f), jt, 0600) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/rootCA.key b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/rootCA.key deleted file mode 100644 index a15a6aba..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/rootCA.key +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAt5fAjp4fTcekWUTfzsp0kyih1OYbsGL0KX1eRbSSR8Od0+9Q -62Hyny+GFwMTb4A/KU8mssoHvcceSAAbwfbxFK/+s51TobqUnORZrOoTZjkUygby -XDSK99YBbcR1Pip8vwMTm4XKuLtCigeBBdjjAQdgUO28LENGlsMnmeYkJfODVGnV -mr5Ltb9ANA8IKyTfsnHJ4iOCS/PlPbUj2q7YnoVLposUBMlgUb/CykX3mOoLb4yJ -JQyA/iST6ZxiIEj36D4yWZ5lg7YJl+UiiBQHGCnPdGyipqV06ex0heYWcaiW8LWZ -SUQ93jQ+WVCH8hT7DQO1dmsvUmXlq/JeAlwQ/QIDAQABAoIBAFFHV7JMAqPWnMYA -nezY6J81v9+XN+7xABNWM2Q8uv4WdksbigGLTXR3/680Z2hXqJ7LMeC5XJACFT/e -/Gr0vmpgOCygnCPfjGehGKpavtfksXV3edikUlnCXsOP1C//c1bFL+sMYmFCVgTx -qYdDK8yKzXNGrKYT6q5YG7IglyRNV1rsQa8lM/5taFYiD1Ck/3tQi3YIq8Lcuser -hrxsMABcQ6mi+EIvG6Xr4mfJug0dGJMHG4RG1UGFQn6RXrQq2+q53fC8ZbVUSi0j -NQ918aKFzktwv+DouKU0ME4I9toks03gM860bAL7zCbKGmwR3hfgX/TqzVCWpG9E -LDVfvekCgYEA8fk9N53jbBRmULUGEf4qWypcLGiZnNU0OeXWpbPV9aa3H0VDytA7 -8fCN2dPAVDPqlthMDdVe983NCNwp2Yo8ZimDgowyIAKhdC25s1kejuaiH9OAPj3c -0f8KbriYX4n8zNHxFwK6Ae3pQ6EqOLJVCUsziUaZX9nyKY5aZlyX6xcCgYEAwjws -K62PjC64U5wYddNLp+kNdJ4edx+a7qBb3mEgPvSFT2RO3/xafJyG8kQB30Mfstjd -bRxyUV6N0vtX1zA7VQtRUAvfGCecpMo+VQZzcHXKzoRTnQ7eZg4Lmj5fQ9tOAKAo -QCVBoSW/DI4PZL26CAMDcAba4Pa22ooLapoRIQsCgYA6pIfkkbxLNkpxpt2YwLtt -Kr/590O7UaR9n6k8sW/aQBRDXNsILR1KDl2ifAIxpf9lnXgZJiwE7HiTfCAcW7c1 -nzwDCI0hWuHcMTS/NYsFYPnLsstyyjVZI3FY0h4DkYKV9Q9z3zJLQ2hz/nwoD3gy -b2pHC7giFcTts1VPV4Nt8wKBgHeFn4ihHJweg76vZz3Z78w7VNRWGFklUalVdDK7 -gaQ7w2y/ROn/146mo0OhJaXFIFRlrpvdzVrU3GDf2YXJYDlM5ZRkObwbZADjksev -WInzcgDy3KDg7WnPasRXbTfMU4t/AkW2p1QKbi3DnSVYuokDkbH2Beo45vxDxhKr -C69RAoGBAIyo3+OJenoZmoNzNJl2WPW5MeBUzSh8T/bgyjFTdqFHF5WiYRD/lfHj -x9Glyw2nutuT4hlOqHvKhgTYdDMsF2oQ72fe3v8Q5FU7FuKndNPEAyvKNXZaShVA -hnlhv5DjXKb0wFWnt5PCCiQLtzG0yyHaITrrEme7FikkIcTxaX/Y ------END RSA PRIVATE KEY----- diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/rootCA.pem b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/rootCA.pem deleted file mode 100644 index 3a323e77..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/rootCA.pem +++ /dev/null @@ -1,26 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEWjCCA0KgAwIBAgIJALfRlWsI8YQHMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNV -BAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEUMBIG -A1UEChMLQnJhZGZpdHppbmMxEjAQBgNVBAMTCWxvY2FsaG9zdDEdMBsGCSqGSIb3 -DQEJARYOYnJhZEBkYW5nYS5jb20wHhcNMTQwNzE1MjA0NjA1WhcNMTcwNTA0MjA0 -NjA1WjB7MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC0JyYWRmaXR6aW5jMRIwEAYDVQQDEwlsb2NhbGhv -c3QxHTAbBgkqhkiG9w0BCQEWDmJyYWRAZGFuZ2EuY29tMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAt5fAjp4fTcekWUTfzsp0kyih1OYbsGL0KX1eRbSS -R8Od0+9Q62Hyny+GFwMTb4A/KU8mssoHvcceSAAbwfbxFK/+s51TobqUnORZrOoT -ZjkUygbyXDSK99YBbcR1Pip8vwMTm4XKuLtCigeBBdjjAQdgUO28LENGlsMnmeYk -JfODVGnVmr5Ltb9ANA8IKyTfsnHJ4iOCS/PlPbUj2q7YnoVLposUBMlgUb/CykX3 -mOoLb4yJJQyA/iST6ZxiIEj36D4yWZ5lg7YJl+UiiBQHGCnPdGyipqV06ex0heYW -caiW8LWZSUQ93jQ+WVCH8hT7DQO1dmsvUmXlq/JeAlwQ/QIDAQABo4HgMIHdMB0G -A1UdDgQWBBRcAROthS4P4U7vTfjByC569R7E6DCBrQYDVR0jBIGlMIGigBRcAROt -hS4P4U7vTfjByC569R7E6KF/pH0wezELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNB -MRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRQwEgYDVQQKEwtCcmFkZml0emluYzES -MBAGA1UEAxMJbG9jYWxob3N0MR0wGwYJKoZIhvcNAQkBFg5icmFkQGRhbmdhLmNv -bYIJALfRlWsI8YQHMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAG6h -U9f9sNH0/6oBbGGy2EVU0UgITUQIrFWo9rFkrW5k/XkDjQm+3lzjT0iGR4IxE/Ao -eU6sQhua7wrWeFEn47GL98lnCsJdD7oZNhFmQ95Tb/LnDUjs5Yj9brP0NWzXfYU4 -UK2ZnINJRcJpB8iRCaCxE8DdcUF0XqIEq6pA272snoLmiXLMvNl3kYEdm+je6voD -58SNVEUsztzQyXmJEhCpwVI0A6QCjzXj+qvpmw3ZZHi8JwXei8ZZBLTSFBki8Z7n -sH9BBH38/SzUmAN4QHSPy1gjqm00OAE8NaYDkh/bzE4d7mLGGMWp/WE3KPSu82HF -kPe6XoSbiLm/kxk32T0= ------END CERTIFICATE----- diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/rootCA.srl b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/rootCA.srl deleted file mode 100644 index 6db38918..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/rootCA.srl +++ /dev/null @@ -1 +0,0 @@ -E2CE26BF3285059C diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/server.crt b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/server.crt deleted file mode 100644 index c59059bd..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/server.crt +++ /dev/null @@ -1,20 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDPjCCAiYCCQDizia/MoUFnDANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJV -UzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xFDASBgNVBAoT -C0JyYWRmaXR6aW5jMRIwEAYDVQQDEwlsb2NhbGhvc3QxHTAbBgkqhkiG9w0BCQEW -DmJyYWRAZGFuZ2EuY29tMB4XDTE0MDcxNTIwNTAyN1oXDTE1MTEyNzIwNTAyN1ow -RzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQHEwJTRjEeMBwGA1UE -ChMVYnJhZGZpdHogaHR0cDIgc2VydmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAs1Y9CyLFrdL8VQWN1WaifDqaZFnoqjHhCMlc1TfG2zA+InDifx2l -gZD3o8FeNnAcfM2sPlk3+ZleOYw9P/CklFVDlvqmpCv9ss/BEp/dDaWvy1LmJ4c2 -dbQJfmTxn7CV1H3TsVJvKdwFmdoABb41NoBp6+NNO7OtDyhbIMiCI0pL3Nefb3HL -A7hIMo3DYbORTtJLTIH9W8YKrEWL0lwHLrYFx/UdutZnv+HjdmO6vCN4na55mjws -/vjKQUmc7xeY7Xe20xDEG2oDKVkL2eD7FfyrYMS3rO1ExP2KSqlXYG/1S9I/fz88 -F0GK7HX55b5WjZCl2J3ERVdnv/0MQv+sYQIDAQABMA0GCSqGSIb3DQEBBQUAA4IB -AQC0zL+n/YpRZOdulSu9tS8FxrstXqGWoxfe+vIUgqfMZ5+0MkjJ/vW0FqlLDl2R -rn4XaR3e7FmWkwdDVbq/UB6lPmoAaFkCgh9/5oapMaclNVNnfF3fjCJfRr+qj/iD -EmJStTIN0ZuUjAlpiACmfnpEU55PafT5Zx+i1yE4FGjw8bJpFoyD4Hnm54nGjX19 -KeCuvcYFUPnBm3lcL0FalF2AjqV02WTHYNQk7YF/oeO7NKBoEgvGvKG3x+xaOeBI -dwvdq175ZsGul30h+QjrRlXhH/twcuaT3GSdoysDl9cCYE8f1Mk8PD6gan3uBCJU -90p6/CbU71bGbfpM2PHot2fm ------END CERTIFICATE----- diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/server.key b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/server.key deleted file mode 100644 index f329c142..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2demo/server.key +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAs1Y9CyLFrdL8VQWN1WaifDqaZFnoqjHhCMlc1TfG2zA+InDi -fx2lgZD3o8FeNnAcfM2sPlk3+ZleOYw9P/CklFVDlvqmpCv9ss/BEp/dDaWvy1Lm -J4c2dbQJfmTxn7CV1H3TsVJvKdwFmdoABb41NoBp6+NNO7OtDyhbIMiCI0pL3Nef -b3HLA7hIMo3DYbORTtJLTIH9W8YKrEWL0lwHLrYFx/UdutZnv+HjdmO6vCN4na55 -mjws/vjKQUmc7xeY7Xe20xDEG2oDKVkL2eD7FfyrYMS3rO1ExP2KSqlXYG/1S9I/ -fz88F0GK7HX55b5WjZCl2J3ERVdnv/0MQv+sYQIDAQABAoIBADQ2spUwbY+bcz4p -3M66ECrNQTBggP40gYl2XyHxGGOu2xhZ94f9ELf1hjRWU2DUKWco1rJcdZClV6q3 -qwmXvcM2Q/SMS8JW0ImkNVl/0/NqPxGatEnj8zY30d/L8hGFb0orzFu/XYA5gCP4 -NbN2WrXgk3ZLeqwcNxHHtSiJWGJ/fPyeDWAu/apy75u9Xf2GlzBZmV6HYD9EfK80 -LTlI60f5FO487CrJnboL7ovPJrIHn+k05xRQqwma4orpz932rTXnTjs9Lg6KtbQN -a7PrqfAntIISgr11a66Mng3IYH1lYqJsWJJwX/xHT4WLEy0EH4/0+PfYemJekz2+ -Co62drECgYEA6O9zVJZXrLSDsIi54cfxA7nEZWm5CAtkYWeAHa4EJ+IlZ7gIf9sL -W8oFcEfFGpvwVqWZ+AsQ70dsjXAv3zXaG0tmg9FtqWp7pzRSMPidifZcQwWkKeTO -gJnFmnVyed8h6GfjTEu4gxo1/S5U0V+mYSha01z5NTnN6ltKx1Or3b0CgYEAxRgm -S30nZxnyg/V7ys61AZhst1DG2tkZXEMcA7dYhabMoXPJAP/EfhlWwpWYYUs/u0gS -Wwmf5IivX5TlYScgmkvb/NYz0u4ZmOXkLTnLPtdKKFXhjXJcHjUP67jYmOxNlJLp -V4vLRnFxTpffAV+OszzRxsXX6fvruwZBANYJeXUCgYBVouLFsFgfWGYp2rpr9XP4 -KK25kvrBqF6JKOIDB1zjxNJ3pUMKrl8oqccCFoCyXa4oTM2kUX0yWxHfleUjrMq4 -yimwQKiOZmV7fVLSSjSw6e/VfBd0h3gb82ygcplZkN0IclkwTY5SNKqwn/3y07V5 -drqdhkrgdJXtmQ6O5YYECQKBgATERcDToQ1USlI4sKrB/wyv1AlG8dg/IebiVJ4e -ZAyvcQmClFzq0qS+FiQUnB/WQw9TeeYrwGs1hxBHuJh16srwhLyDrbMvQP06qh8R -48F8UXXSRec22dV9MQphaROhu2qZdv1AC0WD3tqov6L33aqmEOi+xi8JgbT/PLk5 -c/c1AoGBAI1A/02ryksW6/wc7/6SP2M2rTy4m1sD/GnrTc67EHnRcVBdKO6qH2RY -nqC8YcveC2ZghgPTDsA3VGuzuBXpwY6wTyV99q6jxQJ6/xcrD9/NUG6Uwv/xfCxl -IJLeBYEqQundSSny3VtaAUK8Ul1nxpTvVRNwtcyWTo8RHAAyNPWd ------END RSA PRIVATE KEY----- diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2i/README.md b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2i/README.md deleted file mode 100644 index fb5c5efb..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2i/README.md +++ /dev/null @@ -1,97 +0,0 @@ -# h2i - -**h2i** is an interactive HTTP/2 ("h2") console debugger. Miss the good ol' -days of telnetting to your HTTP/1.n servers? We're bringing you -back. - -Features: -- send raw HTTP/2 frames - - PING - - SETTINGS - - HEADERS - - etc -- type in HTTP/1.n and have it auto-HPACK/frame-ify it for HTTP/2 -- pretty print all received HTTP/2 frames from the peer (including HPACK decoding) -- tab completion of commands, options - -Not yet features, but soon: -- unnecessary CONTINUATION frames on short boundaries, to test peer implementations -- request bodies (DATA frames) -- send invalid frames for testing server implementations (supported by underlying Framer) - -Later: -- act like a server - -## Installation - -``` -$ go get golang.org/x/net/http2/h2i -$ h2i -``` - -## Demo - -``` -$ h2i -Usage: h2i - - -insecure - Whether to skip TLS cert validation - -nextproto string - Comma-separated list of NPN/ALPN protocol names to negotiate. (default "h2,h2-14") - -$ h2i google.com -Connecting to google.com:443 ... -Connected to 74.125.224.41:443 -Negotiated protocol "h2-14" -[FrameHeader SETTINGS len=18] - [MAX_CONCURRENT_STREAMS = 100] - [INITIAL_WINDOW_SIZE = 1048576] - [MAX_FRAME_SIZE = 16384] -[FrameHeader WINDOW_UPDATE len=4] - Window-Increment = 983041 - -h2i> PING h2iSayHI -[FrameHeader PING flags=ACK len=8] - Data = "h2iSayHI" -h2i> headers -(as HTTP/1.1)> GET / HTTP/1.1 -(as HTTP/1.1)> Host: ip.appspot.com -(as HTTP/1.1)> User-Agent: h2i/brad-n-blake -(as HTTP/1.1)> -Opening Stream-ID 1: - :authority = ip.appspot.com - :method = GET - :path = / - :scheme = https - user-agent = h2i/brad-n-blake -[FrameHeader HEADERS flags=END_HEADERS stream=1 len=77] - :status = "200" - alternate-protocol = "443:quic,p=1" - content-length = "15" - content-type = "text/html" - date = "Fri, 01 May 2015 23:06:56 GMT" - server = "Google Frontend" -[FrameHeader DATA flags=END_STREAM stream=1 len=15] - "173.164.155.78\n" -[FrameHeader PING len=8] - Data = "\x00\x00\x00\x00\x00\x00\x00\x00" -h2i> ping -[FrameHeader PING flags=ACK len=8] - Data = "h2i_ping" -h2i> ping -[FrameHeader PING flags=ACK len=8] - Data = "h2i_ping" -h2i> ping -[FrameHeader GOAWAY len=22] - Last-Stream-ID = 1; Error-Code = PROTOCOL_ERROR (1) - -ReadFrame: EOF -``` - -## Status - -Quick few hour hack. So much yet to do. Feel free to file issues for -bugs or wishlist items, but [@bmizerany](https://github.com/bmizerany/) -and I aren't yet accepting pull requests until things settle down. - diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2i/h2i.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2i/h2i.go deleted file mode 100644 index 3f35d038..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/h2i/h2i.go +++ /dev/null @@ -1,499 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/* -The h2i command is an interactive HTTP/2 console. - -Usage: - $ h2i [flags] - -Interactive commands in the console: (all parts case-insensitive) - - ping [data] - settings ack - settings FOO=n BAR=z - headers (open a new stream by typing HTTP/1.1) -*/ -package main - -import ( - "bufio" - "bytes" - "crypto/tls" - "errors" - "flag" - "fmt" - "io" - "log" - "net" - "net/http" - "os" - "regexp" - "strconv" - "strings" - - "gx/QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R/go-crypto/ssh/terminal" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack" -) - -// Flags -var ( - flagNextProto = flag.String("nextproto", "h2,h2-14", "Comma-separated list of NPN/ALPN protocol names to negotiate.") - flagInsecure = flag.Bool("insecure", false, "Whether to skip TLS cert validation") - flagSettings = flag.String("settings", "empty", "comma-separated list of KEY=value settings for the initial SETTINGS frame. The magic value 'empty' sends an empty initial settings frame, and the magic value 'omit' causes no initial settings frame to be sent.") -) - -type command struct { - run func(*h2i, []string) error // required - - // complete optionally specifies tokens (case-insensitive) which are - // valid for this subcommand. - complete func() []string -} - -var commands = map[string]command{ - "ping": command{run: (*h2i).cmdPing}, - "settings": command{ - run: (*h2i).cmdSettings, - complete: func() []string { - return []string{ - "ACK", - http2.SettingHeaderTableSize.String(), - http2.SettingEnablePush.String(), - http2.SettingMaxConcurrentStreams.String(), - http2.SettingInitialWindowSize.String(), - http2.SettingMaxFrameSize.String(), - http2.SettingMaxHeaderListSize.String(), - } - }, - }, - "quit": command{run: (*h2i).cmdQuit}, - "headers": command{run: (*h2i).cmdHeaders}, -} - -func usage() { - fmt.Fprintf(os.Stderr, "Usage: h2i \n\n") - flag.PrintDefaults() - os.Exit(1) -} - -// withPort adds ":443" if another port isn't already present. -func withPort(host string) string { - if _, _, err := net.SplitHostPort(host); err != nil { - return net.JoinHostPort(host, "443") - } - return host -} - -// h2i is the app's state. -type h2i struct { - host string - tc *tls.Conn - framer *http2.Framer - term *terminal.Terminal - - // owned by the command loop: - streamID uint32 - hbuf bytes.Buffer - henc *hpack.Encoder - - // owned by the readFrames loop: - peerSetting map[http2.SettingID]uint32 - hdec *hpack.Decoder -} - -func main() { - flag.Usage = usage - flag.Parse() - if flag.NArg() != 1 { - usage() - } - log.SetFlags(0) - - host := flag.Arg(0) - app := &h2i{ - host: host, - peerSetting: make(map[http2.SettingID]uint32), - } - app.henc = hpack.NewEncoder(&app.hbuf) - - if err := app.Main(); err != nil { - if app.term != nil { - app.logf("%v\n", err) - } else { - fmt.Fprintf(os.Stderr, "%v\n", err) - } - os.Exit(1) - } - fmt.Fprintf(os.Stdout, "\n") -} - -func (app *h2i) Main() error { - cfg := &tls.Config{ - ServerName: app.host, - NextProtos: strings.Split(*flagNextProto, ","), - InsecureSkipVerify: *flagInsecure, - } - - hostAndPort := withPort(app.host) - log.Printf("Connecting to %s ...", hostAndPort) - tc, err := tls.Dial("tcp", hostAndPort, cfg) - if err != nil { - return fmt.Errorf("Error dialing %s: %v", withPort(app.host), err) - } - log.Printf("Connected to %v", tc.RemoteAddr()) - defer tc.Close() - - if err := tc.Handshake(); err != nil { - return fmt.Errorf("TLS handshake: %v", err) - } - if !*flagInsecure { - if err := tc.VerifyHostname(app.host); err != nil { - return fmt.Errorf("VerifyHostname: %v", err) - } - } - state := tc.ConnectionState() - log.Printf("Negotiated protocol %q", state.NegotiatedProtocol) - if !state.NegotiatedProtocolIsMutual || state.NegotiatedProtocol == "" { - return fmt.Errorf("Could not negotiate protocol mutually") - } - - if _, err := io.WriteString(tc, http2.ClientPreface); err != nil { - return err - } - - app.framer = http2.NewFramer(tc, tc) - - oldState, err := terminal.MakeRaw(0) - if err != nil { - return err - } - defer terminal.Restore(0, oldState) - - var screen = struct { - io.Reader - io.Writer - }{os.Stdin, os.Stdout} - - app.term = terminal.NewTerminal(screen, "h2i> ") - lastWord := regexp.MustCompile(`.+\W(\w+)$`) - app.term.AutoCompleteCallback = func(line string, pos int, key rune) (newLine string, newPos int, ok bool) { - if key != '\t' { - return - } - if pos != len(line) { - // TODO: we're being lazy for now, only supporting tab completion at the end. - return - } - // Auto-complete for the command itself. - if !strings.Contains(line, " ") { - var name string - name, _, ok = lookupCommand(line) - if !ok { - return - } - return name, len(name), true - } - _, c, ok := lookupCommand(line[:strings.IndexByte(line, ' ')]) - if !ok || c.complete == nil { - return - } - if strings.HasSuffix(line, " ") { - app.logf("%s", strings.Join(c.complete(), " ")) - return line, pos, true - } - m := lastWord.FindStringSubmatch(line) - if m == nil { - return line, len(line), true - } - soFar := m[1] - var match []string - for _, cand := range c.complete() { - if len(soFar) > len(cand) || !strings.EqualFold(cand[:len(soFar)], soFar) { - continue - } - match = append(match, cand) - } - if len(match) == 0 { - return - } - if len(match) > 1 { - // TODO: auto-complete any common prefix - app.logf("%s", strings.Join(match, " ")) - return line, pos, true - } - newLine = line[:len(line)-len(soFar)] + match[0] - return newLine, len(newLine), true - - } - - errc := make(chan error, 2) - go func() { errc <- app.readFrames() }() - go func() { errc <- app.readConsole() }() - return <-errc -} - -func (app *h2i) logf(format string, args ...interface{}) { - fmt.Fprintf(app.term, format+"\n", args...) -} - -func (app *h2i) readConsole() error { - if s := *flagSettings; s != "omit" { - var args []string - if s != "empty" { - args = strings.Split(s, ",") - } - _, c, ok := lookupCommand("settings") - if !ok { - panic("settings command not found") - } - c.run(app, args) - } - - for { - line, err := app.term.ReadLine() - if err == io.EOF { - return nil - } - if err != nil { - return fmt.Errorf("terminal.ReadLine: %v", err) - } - f := strings.Fields(line) - if len(f) == 0 { - continue - } - cmd, args := f[0], f[1:] - if _, c, ok := lookupCommand(cmd); ok { - err = c.run(app, args) - } else { - app.logf("Unknown command %q", line) - } - if err == errExitApp { - return nil - } - if err != nil { - return err - } - } -} - -func lookupCommand(prefix string) (name string, c command, ok bool) { - prefix = strings.ToLower(prefix) - if c, ok = commands[prefix]; ok { - return prefix, c, ok - } - - for full, candidate := range commands { - if strings.HasPrefix(full, prefix) { - if c.run != nil { - return "", command{}, false // ambiguous - } - c = candidate - name = full - } - } - return name, c, c.run != nil -} - -var errExitApp = errors.New("internal sentinel error value to quit the console reading loop") - -func (a *h2i) cmdQuit(args []string) error { - if len(args) > 0 { - a.logf("the QUIT command takes no argument") - return nil - } - return errExitApp -} - -func (a *h2i) cmdSettings(args []string) error { - if len(args) == 1 && strings.EqualFold(args[0], "ACK") { - return a.framer.WriteSettingsAck() - } - var settings []http2.Setting - for _, arg := range args { - if strings.EqualFold(arg, "ACK") { - a.logf("Error: ACK must be only argument with the SETTINGS command") - return nil - } - eq := strings.Index(arg, "=") - if eq == -1 { - a.logf("Error: invalid argument %q (expected SETTING_NAME=nnnn)", arg) - return nil - } - sid, ok := settingByName(arg[:eq]) - if !ok { - a.logf("Error: unknown setting name %q", arg[:eq]) - return nil - } - val, err := strconv.ParseUint(arg[eq+1:], 10, 32) - if err != nil { - a.logf("Error: invalid argument %q (expected SETTING_NAME=nnnn)", arg) - return nil - } - settings = append(settings, http2.Setting{ - ID: sid, - Val: uint32(val), - }) - } - a.logf("Sending: %v", settings) - return a.framer.WriteSettings(settings...) -} - -func settingByName(name string) (http2.SettingID, bool) { - for _, sid := range [...]http2.SettingID{ - http2.SettingHeaderTableSize, - http2.SettingEnablePush, - http2.SettingMaxConcurrentStreams, - http2.SettingInitialWindowSize, - http2.SettingMaxFrameSize, - http2.SettingMaxHeaderListSize, - } { - if strings.EqualFold(sid.String(), name) { - return sid, true - } - } - return 0, false -} - -func (app *h2i) cmdPing(args []string) error { - if len(args) > 1 { - app.logf("invalid PING usage: only accepts 0 or 1 args") - return nil // nil means don't end the program - } - var data [8]byte - if len(args) == 1 { - copy(data[:], args[0]) - } else { - copy(data[:], "h2i_ping") - } - return app.framer.WritePing(false, data) -} - -func (app *h2i) cmdHeaders(args []string) error { - if len(args) > 0 { - app.logf("Error: HEADERS doesn't yet take arguments.") - // TODO: flags for restricting window size, to force CONTINUATION - // frames. - return nil - } - var h1req bytes.Buffer - app.term.SetPrompt("(as HTTP/1.1)> ") - defer app.term.SetPrompt("h2i> ") - for { - line, err := app.term.ReadLine() - if err != nil { - return err - } - h1req.WriteString(line) - h1req.WriteString("\r\n") - if line == "" { - break - } - } - req, err := http.ReadRequest(bufio.NewReader(&h1req)) - if err != nil { - app.logf("Invalid HTTP/1.1 request: %v", err) - return nil - } - if app.streamID == 0 { - app.streamID = 1 - } else { - app.streamID += 2 - } - app.logf("Opening Stream-ID %d:", app.streamID) - hbf := app.encodeHeaders(req) - if len(hbf) > 16<<10 { - app.logf("TODO: h2i doesn't yet write CONTINUATION frames. Copy it from transport.go") - return nil - } - return app.framer.WriteHeaders(http2.HeadersFrameParam{ - StreamID: app.streamID, - BlockFragment: hbf, - EndStream: req.Method == "GET" || req.Method == "HEAD", // good enough for now - EndHeaders: true, // for now - }) -} - -func (app *h2i) readFrames() error { - for { - f, err := app.framer.ReadFrame() - if err != nil { - return fmt.Errorf("ReadFrame: %v", err) - } - app.logf("%v", f) - switch f := f.(type) { - case *http2.PingFrame: - app.logf(" Data = %q", f.Data) - case *http2.SettingsFrame: - f.ForeachSetting(func(s http2.Setting) error { - app.logf(" %v", s) - app.peerSetting[s.ID] = s.Val - return nil - }) - case *http2.WindowUpdateFrame: - app.logf(" Window-Increment = %v\n", f.Increment) - case *http2.GoAwayFrame: - app.logf(" Last-Stream-ID = %d; Error-Code = %v (%d)\n", f.LastStreamID, f.ErrCode, f.ErrCode) - case *http2.DataFrame: - app.logf(" %q", f.Data()) - case *http2.HeadersFrame: - if f.HasPriority() { - app.logf(" PRIORITY = %v", f.Priority) - } - if app.hdec == nil { - // TODO: if the user uses h2i to send a SETTINGS frame advertising - // something larger, we'll need to respect SETTINGS_HEADER_TABLE_SIZE - // and stuff here instead of using the 4k default. But for now: - tableSize := uint32(4 << 10) - app.hdec = hpack.NewDecoder(tableSize, app.onNewHeaderField) - } - app.hdec.Write(f.HeaderBlockFragment()) - } - } -} - -// called from readLoop -func (app *h2i) onNewHeaderField(f hpack.HeaderField) { - if f.Sensitive { - app.logf(" %s = %q (SENSITIVE)", f.Name, f.Value) - } - app.logf(" %s = %q", f.Name, f.Value) -} - -func (app *h2i) encodeHeaders(req *http.Request) []byte { - app.hbuf.Reset() - - // TODO(bradfitz): figure out :authority-vs-Host stuff between http2 and Go - host := req.Host - if host == "" { - host = req.URL.Host - } - - path := req.URL.Path - if path == "" { - path = "/" - } - - app.writeHeader(":authority", host) // probably not right for all sites - app.writeHeader(":method", req.Method) - app.writeHeader(":path", path) - app.writeHeader(":scheme", "https") - - for k, vv := range req.Header { - lowKey := strings.ToLower(k) - if lowKey == "host" { - continue - } - for _, v := range vv { - app.writeHeader(lowKey, v) - } - } - return app.hbuf.Bytes() -} - -func (app *h2i) writeHeader(name, value string) { - app.henc.WriteField(hpack.HeaderField{Name: name, Value: value}) - app.logf(" %s = %s", name, value) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/headermap.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/headermap.go deleted file mode 100644 index 014f7896..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/headermap.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package http2 - -import ( - "net/http" - "strings" -) - -var ( - commonLowerHeader = map[string]string{} // Go-Canonical-Case -> lower-case - commonCanonHeader = map[string]string{} // lower-case -> Go-Canonical-Case -) - -func init() { - for _, v := range []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", - "transfer-encoding", - "user-agent", - "vary", - "via", - "www-authenticate", - } { - chk := http.CanonicalHeaderKey(v) - commonLowerHeader[chk] = v - commonCanonHeader[v] = chk - } -} - -func lowerHeader(v string) string { - if s, ok := commonLowerHeader[v]; ok { - return s - } - return strings.ToLower(v) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/encode.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/encode.go deleted file mode 100644 index 80d621cf..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/encode.go +++ /dev/null @@ -1,251 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package 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.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) { - for idx, hf := range staticTable { - if !constantTimeStringCompare(hf.Name, f.Name) { - continue - } - if i == 0 { - i = uint64(idx + 1) - } - if f.Sensitive { - continue - } - if !constantTimeStringCompare(hf.Value, f.Value) { - continue - } - i = uint64(idx + 1) - nameValueMatch = true - return - } - - j, nameValueMatch := e.dynTab.search(f) - if nameValueMatch || (i == 0 && j != 0) { - i = j + uint64(len(staticTable)) - } - return -} - -// 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, "Inremental 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 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/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/encode_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/encode_test.go deleted file mode 100644 index 92286f3b..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/encode_test.go +++ /dev/null @@ -1,330 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package hpack - -import ( - "bytes" - "encoding/hex" - "reflect" - "strings" - "testing" -) - -func TestEncoderTableSizeUpdate(t *testing.T) { - tests := []struct { - size1, size2 uint32 - wantHex string - }{ - // Should emit 2 table size updates (2048 and 4096) - {2048, 4096, "3fe10f 3fe11f 82"}, - - // Should emit 1 table size update (2048) - {16384, 2048, "3fe10f 82"}, - } - for _, tt := range tests { - var buf bytes.Buffer - e := NewEncoder(&buf) - e.SetMaxDynamicTableSize(tt.size1) - e.SetMaxDynamicTableSize(tt.size2) - if err := e.WriteField(pair(":method", "GET")); err != nil { - t.Fatal(err) - } - want := removeSpace(tt.wantHex) - if got := hex.EncodeToString(buf.Bytes()); got != want { - t.Errorf("e.SetDynamicTableSize %v, %v = %q; want %q", tt.size1, tt.size2, got, want) - } - } -} - -func TestEncoderWriteField(t *testing.T) { - var buf bytes.Buffer - e := NewEncoder(&buf) - var got []HeaderField - d := NewDecoder(4<<10, func(f HeaderField) { - got = append(got, f) - }) - - tests := []struct { - hdrs []HeaderField - }{ - {[]HeaderField{ - pair(":method", "GET"), - pair(":scheme", "http"), - pair(":path", "/"), - pair(":authority", "www.example.com"), - }}, - {[]HeaderField{ - pair(":method", "GET"), - pair(":scheme", "http"), - pair(":path", "/"), - pair(":authority", "www.example.com"), - pair("cache-control", "no-cache"), - }}, - {[]HeaderField{ - pair(":method", "GET"), - pair(":scheme", "https"), - pair(":path", "/index.html"), - pair(":authority", "www.example.com"), - pair("custom-key", "custom-value"), - }}, - } - for i, tt := range tests { - buf.Reset() - got = got[:0] - for _, hf := range tt.hdrs { - if err := e.WriteField(hf); err != nil { - t.Fatal(err) - } - } - _, err := d.Write(buf.Bytes()) - if err != nil { - t.Errorf("%d. Decoder Write = %v", i, err) - } - if !reflect.DeepEqual(got, tt.hdrs) { - t.Errorf("%d. Decoded %+v; want %+v", i, got, tt.hdrs) - } - } -} - -func TestEncoderSearchTable(t *testing.T) { - e := NewEncoder(nil) - - e.dynTab.add(pair("foo", "bar")) - e.dynTab.add(pair("blake", "miz")) - e.dynTab.add(pair(":method", "GET")) - - tests := []struct { - hf HeaderField - wantI uint64 - wantMatch bool - }{ - // Name and Value match - {pair("foo", "bar"), uint64(len(staticTable) + 3), true}, - {pair("blake", "miz"), uint64(len(staticTable) + 2), true}, - {pair(":method", "GET"), 2, true}, - - // Only name match because Sensitive == true - {HeaderField{":method", "GET", true}, 2, false}, - - // Only Name matches - {pair("foo", "..."), uint64(len(staticTable) + 3), false}, - {pair("blake", "..."), uint64(len(staticTable) + 2), false}, - {pair(":method", "..."), 2, false}, - - // None match - {pair("foo-", "bar"), 0, false}, - } - for _, tt := range tests { - if gotI, gotMatch := e.searchTable(tt.hf); gotI != tt.wantI || gotMatch != tt.wantMatch { - t.Errorf("d.search(%+v) = %v, %v; want %v, %v", tt.hf, gotI, gotMatch, tt.wantI, tt.wantMatch) - } - } -} - -func TestAppendVarInt(t *testing.T) { - tests := []struct { - n byte - i uint64 - want []byte - }{ - // Fits in a byte: - {1, 0, []byte{0}}, - {2, 2, []byte{2}}, - {3, 6, []byte{6}}, - {4, 14, []byte{14}}, - {5, 30, []byte{30}}, - {6, 62, []byte{62}}, - {7, 126, []byte{126}}, - {8, 254, []byte{254}}, - - // Multiple bytes: - {5, 1337, []byte{31, 154, 10}}, - } - for _, tt := range tests { - got := appendVarInt(nil, tt.n, tt.i) - if !bytes.Equal(got, tt.want) { - t.Errorf("appendVarInt(nil, %v, %v) = %v; want %v", tt.n, tt.i, got, tt.want) - } - } -} - -func TestAppendHpackString(t *testing.T) { - tests := []struct { - s, wantHex string - }{ - // Huffman encoded - {"www.example.com", "8c f1e3 c2e5 f23a 6ba0 ab90 f4ff"}, - - // Not Huffman encoded - {"a", "01 61"}, - - // zero length - {"", "00"}, - } - for _, tt := range tests { - want := removeSpace(tt.wantHex) - buf := appendHpackString(nil, tt.s) - if got := hex.EncodeToString(buf); want != got { - t.Errorf("appendHpackString(nil, %q) = %q; want %q", tt.s, got, want) - } - } -} - -func TestAppendIndexed(t *testing.T) { - tests := []struct { - i uint64 - wantHex string - }{ - // 1 byte - {1, "81"}, - {126, "fe"}, - - // 2 bytes - {127, "ff00"}, - {128, "ff01"}, - } - for _, tt := range tests { - want := removeSpace(tt.wantHex) - buf := appendIndexed(nil, tt.i) - if got := hex.EncodeToString(buf); want != got { - t.Errorf("appendIndex(nil, %v) = %q; want %q", tt.i, got, want) - } - } -} - -func TestAppendNewName(t *testing.T) { - tests := []struct { - f HeaderField - indexing bool - wantHex string - }{ - // Incremental indexing - {HeaderField{"custom-key", "custom-value", false}, true, "40 88 25a8 49e9 5ba9 7d7f 89 25a8 49e9 5bb8 e8b4 bf"}, - - // Without indexing - {HeaderField{"custom-key", "custom-value", false}, false, "00 88 25a8 49e9 5ba9 7d7f 89 25a8 49e9 5bb8 e8b4 bf"}, - - // Never indexed - {HeaderField{"custom-key", "custom-value", true}, true, "10 88 25a8 49e9 5ba9 7d7f 89 25a8 49e9 5bb8 e8b4 bf"}, - {HeaderField{"custom-key", "custom-value", true}, false, "10 88 25a8 49e9 5ba9 7d7f 89 25a8 49e9 5bb8 e8b4 bf"}, - } - for _, tt := range tests { - want := removeSpace(tt.wantHex) - buf := appendNewName(nil, tt.f, tt.indexing) - if got := hex.EncodeToString(buf); want != got { - t.Errorf("appendNewName(nil, %+v, %v) = %q; want %q", tt.f, tt.indexing, got, want) - } - } -} - -func TestAppendIndexedName(t *testing.T) { - tests := []struct { - f HeaderField - i uint64 - indexing bool - wantHex string - }{ - // Incremental indexing - {HeaderField{":status", "302", false}, 8, true, "48 82 6402"}, - - // Without indexing - {HeaderField{":status", "302", false}, 8, false, "08 82 6402"}, - - // Never indexed - {HeaderField{":status", "302", true}, 8, true, "18 82 6402"}, - {HeaderField{":status", "302", true}, 8, false, "18 82 6402"}, - } - for _, tt := range tests { - want := removeSpace(tt.wantHex) - buf := appendIndexedName(nil, tt.f, tt.i, tt.indexing) - if got := hex.EncodeToString(buf); want != got { - t.Errorf("appendIndexedName(nil, %+v, %v) = %q; want %q", tt.f, tt.indexing, got, want) - } - } -} - -func TestAppendTableSize(t *testing.T) { - tests := []struct { - i uint32 - wantHex string - }{ - // Fits into 1 byte - {30, "3e"}, - - // Extra byte - {31, "3f00"}, - {32, "3f01"}, - } - for _, tt := range tests { - want := removeSpace(tt.wantHex) - buf := appendTableSize(nil, tt.i) - if got := hex.EncodeToString(buf); want != got { - t.Errorf("appendTableSize(nil, %v) = %q; want %q", tt.i, got, want) - } - } -} - -func TestEncoderSetMaxDynamicTableSize(t *testing.T) { - var buf bytes.Buffer - e := NewEncoder(&buf) - tests := []struct { - v uint32 - wantUpdate bool - wantMinSize uint32 - wantMaxSize uint32 - }{ - // Set new table size to 2048 - {2048, true, 2048, 2048}, - - // Set new table size to 16384, but still limited to - // 4096 - {16384, true, 2048, 4096}, - } - for _, tt := range tests { - e.SetMaxDynamicTableSize(tt.v) - if got := e.tableSizeUpdate; tt.wantUpdate != got { - t.Errorf("e.tableSizeUpdate = %v; want %v", got, tt.wantUpdate) - } - if got := e.minSize; tt.wantMinSize != got { - t.Errorf("e.minSize = %v; want %v", got, tt.wantMinSize) - } - if got := e.dynTab.maxSize; tt.wantMaxSize != got { - t.Errorf("e.maxSize = %v; want %v", got, tt.wantMaxSize) - } - } -} - -func TestEncoderSetMaxDynamicTableSizeLimit(t *testing.T) { - e := NewEncoder(nil) - // 4095 < initialHeaderTableSize means maxSize is truncated to - // 4095. - e.SetMaxDynamicTableSizeLimit(4095) - if got, want := e.dynTab.maxSize, uint32(4095); got != want { - t.Errorf("e.dynTab.maxSize = %v; want %v", got, want) - } - if got, want := e.maxSizeLimit, uint32(4095); got != want { - t.Errorf("e.maxSizeLimit = %v; want %v", got, want) - } - if got, want := e.tableSizeUpdate, true; got != want { - t.Errorf("e.tableSizeUpdate = %v; want %v", got, want) - } - // maxSize will be truncated to maxSizeLimit - e.SetMaxDynamicTableSize(16384) - if got, want := e.dynTab.maxSize, uint32(4095); got != want { - t.Errorf("e.dynTab.maxSize = %v; want %v", got, want) - } - // 8192 > current maxSizeLimit, so maxSize does not change. - e.SetMaxDynamicTableSizeLimit(8192) - if got, want := e.dynTab.maxSize, uint32(4095); got != want { - t.Errorf("e.dynTab.maxSize = %v; want %v", got, want) - } - if got, want := e.maxSizeLimit, uint32(8192); got != want { - t.Errorf("e.maxSizeLimit = %v; want %v", got, want) - } -} - -func removeSpace(s string) string { - return strings.Replace(s, " ", "", -1) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/hpack.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/hpack.go deleted file mode 100644 index 8e9b2f2e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/hpack.go +++ /dev/null @@ -1,518 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package 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 -} - -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 -} - -// 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, - } - 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 -} - -// 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 { - // ents is the FIFO described at - // http://http2.github.io/http2-spec/compression.html#rfc.section.2.3.2 - // The newest (low index) is append at the end, and items are - // evicted from the front. - ents []HeaderField - size uint32 - maxSize uint32 // current maxSize - allowedMaxSize uint32 // maxSize may go up to this, inclusive -} - -func (dt *dynamicTable) setMaxSize(v uint32) { - dt.maxSize = v - dt.evict() -} - -// TODO: change dynamicTable to be a struct with a slice and a size int field, -// per http://http2.github.io/http2-spec/compression.html#rfc.section.4.1: -// -// -// Then make add increment the size. maybe the max size should move from Decoder to -// dynamicTable and add should return an ok bool if there was enough space. -// -// Later we'll need a remove operation on dynamicTable. - -func (dt *dynamicTable) add(f HeaderField) { - dt.ents = append(dt.ents, f) - dt.size += f.size() - dt.evict() -} - -// If we're too big, evict old stuff (front of the slice) -func (dt *dynamicTable) evict() { - base := dt.ents // keep base pointer of slice - for dt.size > dt.maxSize { - dt.size -= dt.ents[0].size() - dt.ents = dt.ents[1:] - } - - // Shift slice contents down if we evicted things. - if len(dt.ents) != len(base) { - copy(base, dt.ents) - dt.ents = base[:len(dt.ents)] - } -} - -// constantTimeStringCompare compares string a and b in a constant -// time manner. -func constantTimeStringCompare(a, b string) bool { - if len(a) != len(b) { - return false - } - - c := byte(0) - - for i := 0; i < len(a); i++ { - c |= a[i] ^ b[i] - } - - return c == 0 -} - -// Search searches f in the table. The return value i is 0 if there is -// no name match. If there is name match or name/value match, i is the -// index of that entry (1-based). If both name and value match, -// nameValueMatch becomes true. -func (dt *dynamicTable) search(f HeaderField) (i uint64, nameValueMatch bool) { - l := len(dt.ents) - for j := l - 1; j >= 0; j-- { - ent := dt.ents[j] - if !constantTimeStringCompare(ent.Name, f.Name) { - continue - } - if i == 0 { - i = uint64(l - j) - } - if f.Sensitive { - continue - } - if !constantTimeStringCompare(ent.Value, f.Value) { - continue - } - i = uint64(l - j) - nameValueMatch = true - return - } - return -} - -func (d *Decoder) maxTableIndex() int { - return len(d.dynTab.ents) + len(staticTable) -} - -func (d *Decoder) at(i uint64) (hf HeaderField, ok bool) { - if i < 1 { - return - } - if i > uint64(d.maxTableIndex()) { - return - } - if i <= uint64(len(staticTable)) { - return staticTable[i-1], true - } - dents := d.dynTab.ents - return dents[len(dents)-(int(i)-len(staticTable))], 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 -} - -func (d *Decoder) Close() error { - if d.saveBuf.Len() > 0 { - d.saveBuf.Reset() - return DecodingError{errors.New("truncated headers")} - } - 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 - } - 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 { - 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< 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/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/hpack_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/hpack_test.go deleted file mode 100644 index 6dc69f95..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/hpack_test.go +++ /dev/null @@ -1,813 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package hpack - -import ( - "bufio" - "bytes" - "encoding/hex" - "fmt" - "math/rand" - "reflect" - "regexp" - "strconv" - "strings" - "testing" - "time" -) - -func TestStaticTable(t *testing.T) { - fromSpec := ` - +-------+-----------------------------+---------------+ - | 1 | :authority | | - | 2 | :method | GET | - | 3 | :method | POST | - | 4 | :path | / | - | 5 | :path | /index.html | - | 6 | :scheme | http | - | 7 | :scheme | https | - | 8 | :status | 200 | - | 9 | :status | 204 | - | 10 | :status | 206 | - | 11 | :status | 304 | - | 12 | :status | 400 | - | 13 | :status | 404 | - | 14 | :status | 500 | - | 15 | accept-charset | | - | 16 | accept-encoding | gzip, deflate | - | 17 | accept-language | | - | 18 | accept-ranges | | - | 19 | accept | | - | 20 | access-control-allow-origin | | - | 21 | age | | - | 22 | allow | | - | 23 | authorization | | - | 24 | cache-control | | - | 25 | content-disposition | | - | 26 | content-encoding | | - | 27 | content-language | | - | 28 | content-length | | - | 29 | content-location | | - | 30 | content-range | | - | 31 | content-type | | - | 32 | cookie | | - | 33 | date | | - | 34 | etag | | - | 35 | expect | | - | 36 | expires | | - | 37 | from | | - | 38 | host | | - | 39 | if-match | | - | 40 | if-modified-since | | - | 41 | if-none-match | | - | 42 | if-range | | - | 43 | if-unmodified-since | | - | 44 | last-modified | | - | 45 | link | | - | 46 | location | | - | 47 | max-forwards | | - | 48 | proxy-authenticate | | - | 49 | proxy-authorization | | - | 50 | range | | - | 51 | referer | | - | 52 | refresh | | - | 53 | retry-after | | - | 54 | server | | - | 55 | set-cookie | | - | 56 | strict-transport-security | | - | 57 | transfer-encoding | | - | 58 | user-agent | | - | 59 | vary | | - | 60 | via | | - | 61 | www-authenticate | | - +-------+-----------------------------+---------------+ -` - bs := bufio.NewScanner(strings.NewReader(fromSpec)) - re := regexp.MustCompile(`\| (\d+)\s+\| (\S+)\s*\| (\S(.*\S)?)?\s+\|`) - for bs.Scan() { - l := bs.Text() - if !strings.Contains(l, "|") { - continue - } - m := re.FindStringSubmatch(l) - if m == nil { - continue - } - i, err := strconv.Atoi(m[1]) - if err != nil { - t.Errorf("Bogus integer on line %q", l) - continue - } - if i < 1 || i > len(staticTable) { - t.Errorf("Bogus index %d on line %q", i, l) - continue - } - if got, want := staticTable[i-1].Name, m[2]; got != want { - t.Errorf("header index %d name = %q; want %q", i, got, want) - } - if got, want := staticTable[i-1].Value, m[3]; got != want { - t.Errorf("header index %d value = %q; want %q", i, got, want) - } - } - if err := bs.Err(); err != nil { - t.Error(err) - } -} - -func (d *Decoder) mustAt(idx int) HeaderField { - if hf, ok := d.at(uint64(idx)); !ok { - panic(fmt.Sprintf("bogus index %d", idx)) - } else { - return hf - } -} - -func TestDynamicTableAt(t *testing.T) { - d := NewDecoder(4096, nil) - at := d.mustAt - if got, want := at(2), (pair(":method", "GET")); got != want { - t.Errorf("at(2) = %v; want %v", got, want) - } - d.dynTab.add(pair("foo", "bar")) - d.dynTab.add(pair("blake", "miz")) - if got, want := at(len(staticTable)+1), (pair("blake", "miz")); got != want { - t.Errorf("at(dyn 1) = %v; want %v", got, want) - } - if got, want := at(len(staticTable)+2), (pair("foo", "bar")); got != want { - t.Errorf("at(dyn 2) = %v; want %v", got, want) - } - if got, want := at(3), (pair(":method", "POST")); got != want { - t.Errorf("at(3) = %v; want %v", got, want) - } -} - -func TestDynamicTableSearch(t *testing.T) { - dt := dynamicTable{} - dt.setMaxSize(4096) - - dt.add(pair("foo", "bar")) - dt.add(pair("blake", "miz")) - dt.add(pair(":method", "GET")) - - tests := []struct { - hf HeaderField - wantI uint64 - wantMatch bool - }{ - // Name and Value match - {pair("foo", "bar"), 3, true}, - {pair(":method", "GET"), 1, true}, - - // Only name match because of Sensitive == true - {HeaderField{"blake", "miz", true}, 2, false}, - - // Only Name matches - {pair("foo", "..."), 3, false}, - {pair("blake", "..."), 2, false}, - {pair(":method", "..."), 1, false}, - - // None match - {pair("foo-", "bar"), 0, false}, - } - for _, tt := range tests { - if gotI, gotMatch := dt.search(tt.hf); gotI != tt.wantI || gotMatch != tt.wantMatch { - t.Errorf("d.search(%+v) = %v, %v; want %v, %v", tt.hf, gotI, gotMatch, tt.wantI, tt.wantMatch) - } - } -} - -func TestDynamicTableSizeEvict(t *testing.T) { - d := NewDecoder(4096, nil) - if want := uint32(0); d.dynTab.size != want { - t.Fatalf("size = %d; want %d", d.dynTab.size, want) - } - add := d.dynTab.add - add(pair("blake", "eats pizza")) - if want := uint32(15 + 32); d.dynTab.size != want { - t.Fatalf("after pizza, size = %d; want %d", d.dynTab.size, want) - } - add(pair("foo", "bar")) - if want := uint32(15 + 32 + 6 + 32); d.dynTab.size != want { - t.Fatalf("after foo bar, size = %d; want %d", d.dynTab.size, want) - } - d.dynTab.setMaxSize(15 + 32 + 1 /* slop */) - if want := uint32(6 + 32); d.dynTab.size != want { - t.Fatalf("after setMaxSize, size = %d; want %d", d.dynTab.size, want) - } - if got, want := d.mustAt(len(staticTable)+1), (pair("foo", "bar")); got != want { - t.Errorf("at(dyn 1) = %v; want %v", got, want) - } - add(pair("long", strings.Repeat("x", 500))) - if want := uint32(0); d.dynTab.size != want { - t.Fatalf("after big one, size = %d; want %d", d.dynTab.size, want) - } -} - -func TestDecoderDecode(t *testing.T) { - tests := []struct { - name string - in []byte - want []HeaderField - wantDynTab []HeaderField // newest entry first - }{ - // C.2.1 Literal Header Field with Indexing - // http://http2.github.io/http2-spec/compression.html#rfc.section.C.2.1 - {"C.2.1", dehex("400a 6375 7374 6f6d 2d6b 6579 0d63 7573 746f 6d2d 6865 6164 6572"), - []HeaderField{pair("custom-key", "custom-header")}, - []HeaderField{pair("custom-key", "custom-header")}, - }, - - // C.2.2 Literal Header Field without Indexing - // http://http2.github.io/http2-spec/compression.html#rfc.section.C.2.2 - {"C.2.2", dehex("040c 2f73 616d 706c 652f 7061 7468"), - []HeaderField{pair(":path", "/sample/path")}, - []HeaderField{}}, - - // C.2.3 Literal Header Field never Indexed - // http://http2.github.io/http2-spec/compression.html#rfc.section.C.2.3 - {"C.2.3", dehex("1008 7061 7373 776f 7264 0673 6563 7265 74"), - []HeaderField{{"password", "secret", true}}, - []HeaderField{}}, - - // C.2.4 Indexed Header Field - // http://http2.github.io/http2-spec/compression.html#rfc.section.C.2.4 - {"C.2.4", []byte("\x82"), - []HeaderField{pair(":method", "GET")}, - []HeaderField{}}, - } - for _, tt := range tests { - d := NewDecoder(4096, nil) - hf, err := d.DecodeFull(tt.in) - if err != nil { - t.Errorf("%s: %v", tt.name, err) - continue - } - if !reflect.DeepEqual(hf, tt.want) { - t.Errorf("%s: Got %v; want %v", tt.name, hf, tt.want) - } - gotDynTab := d.dynTab.reverseCopy() - if !reflect.DeepEqual(gotDynTab, tt.wantDynTab) { - t.Errorf("%s: dynamic table after = %v; want %v", tt.name, gotDynTab, tt.wantDynTab) - } - } -} - -func (dt *dynamicTable) reverseCopy() (hf []HeaderField) { - hf = make([]HeaderField, len(dt.ents)) - for i := range hf { - hf[i] = dt.ents[len(dt.ents)-1-i] - } - return -} - -type encAndWant struct { - enc []byte - want []HeaderField - wantDynTab []HeaderField - wantDynSize uint32 -} - -// C.3 Request Examples without Huffman Coding -// http://http2.github.io/http2-spec/compression.html#rfc.section.C.3 -func TestDecodeC3_NoHuffman(t *testing.T) { - testDecodeSeries(t, 4096, []encAndWant{ - {dehex("8286 8441 0f77 7777 2e65 7861 6d70 6c65 2e63 6f6d"), - []HeaderField{ - pair(":method", "GET"), - pair(":scheme", "http"), - pair(":path", "/"), - pair(":authority", "www.example.com"), - }, - []HeaderField{ - pair(":authority", "www.example.com"), - }, - 57, - }, - {dehex("8286 84be 5808 6e6f 2d63 6163 6865"), - []HeaderField{ - pair(":method", "GET"), - pair(":scheme", "http"), - pair(":path", "/"), - pair(":authority", "www.example.com"), - pair("cache-control", "no-cache"), - }, - []HeaderField{ - pair("cache-control", "no-cache"), - pair(":authority", "www.example.com"), - }, - 110, - }, - {dehex("8287 85bf 400a 6375 7374 6f6d 2d6b 6579 0c63 7573 746f 6d2d 7661 6c75 65"), - []HeaderField{ - pair(":method", "GET"), - pair(":scheme", "https"), - pair(":path", "/index.html"), - pair(":authority", "www.example.com"), - pair("custom-key", "custom-value"), - }, - []HeaderField{ - pair("custom-key", "custom-value"), - pair("cache-control", "no-cache"), - pair(":authority", "www.example.com"), - }, - 164, - }, - }) -} - -// C.4 Request Examples with Huffman Coding -// http://http2.github.io/http2-spec/compression.html#rfc.section.C.4 -func TestDecodeC4_Huffman(t *testing.T) { - testDecodeSeries(t, 4096, []encAndWant{ - {dehex("8286 8441 8cf1 e3c2 e5f2 3a6b a0ab 90f4 ff"), - []HeaderField{ - pair(":method", "GET"), - pair(":scheme", "http"), - pair(":path", "/"), - pair(":authority", "www.example.com"), - }, - []HeaderField{ - pair(":authority", "www.example.com"), - }, - 57, - }, - {dehex("8286 84be 5886 a8eb 1064 9cbf"), - []HeaderField{ - pair(":method", "GET"), - pair(":scheme", "http"), - pair(":path", "/"), - pair(":authority", "www.example.com"), - pair("cache-control", "no-cache"), - }, - []HeaderField{ - pair("cache-control", "no-cache"), - pair(":authority", "www.example.com"), - }, - 110, - }, - {dehex("8287 85bf 4088 25a8 49e9 5ba9 7d7f 8925 a849 e95b b8e8 b4bf"), - []HeaderField{ - pair(":method", "GET"), - pair(":scheme", "https"), - pair(":path", "/index.html"), - pair(":authority", "www.example.com"), - pair("custom-key", "custom-value"), - }, - []HeaderField{ - pair("custom-key", "custom-value"), - pair("cache-control", "no-cache"), - pair(":authority", "www.example.com"), - }, - 164, - }, - }) -} - -// http://http2.github.io/http2-spec/compression.html#rfc.section.C.5 -// "This section shows several consecutive header lists, corresponding -// to HTTP responses, on the same connection. The HTTP/2 setting -// parameter SETTINGS_HEADER_TABLE_SIZE is set to the value of 256 -// octets, causing some evictions to occur." -func TestDecodeC5_ResponsesNoHuff(t *testing.T) { - testDecodeSeries(t, 256, []encAndWant{ - {dehex(` -4803 3330 3258 0770 7269 7661 7465 611d -4d6f 6e2c 2032 3120 4f63 7420 3230 3133 -2032 303a 3133 3a32 3120 474d 546e 1768 -7474 7073 3a2f 2f77 7777 2e65 7861 6d70 -6c65 2e63 6f6d -`), - []HeaderField{ - pair(":status", "302"), - pair("cache-control", "private"), - pair("date", "Mon, 21 Oct 2013 20:13:21 GMT"), - pair("location", "https://www.example.com"), - }, - []HeaderField{ - pair("location", "https://www.example.com"), - pair("date", "Mon, 21 Oct 2013 20:13:21 GMT"), - pair("cache-control", "private"), - pair(":status", "302"), - }, - 222, - }, - {dehex("4803 3330 37c1 c0bf"), - []HeaderField{ - pair(":status", "307"), - pair("cache-control", "private"), - pair("date", "Mon, 21 Oct 2013 20:13:21 GMT"), - pair("location", "https://www.example.com"), - }, - []HeaderField{ - pair(":status", "307"), - pair("location", "https://www.example.com"), - pair("date", "Mon, 21 Oct 2013 20:13:21 GMT"), - pair("cache-control", "private"), - }, - 222, - }, - {dehex(` -88c1 611d 4d6f 6e2c 2032 3120 4f63 7420 -3230 3133 2032 303a 3133 3a32 3220 474d -54c0 5a04 677a 6970 7738 666f 6f3d 4153 -444a 4b48 514b 425a 584f 5157 454f 5049 -5541 5851 5745 4f49 553b 206d 6178 2d61 -6765 3d33 3630 303b 2076 6572 7369 6f6e -3d31 -`), - []HeaderField{ - pair(":status", "200"), - pair("cache-control", "private"), - pair("date", "Mon, 21 Oct 2013 20:13:22 GMT"), - pair("location", "https://www.example.com"), - pair("content-encoding", "gzip"), - pair("set-cookie", "foo=ASDJKHQKBZXOQWEOPIUAXQWEOIU; max-age=3600; version=1"), - }, - []HeaderField{ - pair("set-cookie", "foo=ASDJKHQKBZXOQWEOPIUAXQWEOIU; max-age=3600; version=1"), - pair("content-encoding", "gzip"), - pair("date", "Mon, 21 Oct 2013 20:13:22 GMT"), - }, - 215, - }, - }) -} - -// http://http2.github.io/http2-spec/compression.html#rfc.section.C.6 -// "This section shows the same examples as the previous section, but -// using Huffman encoding for the literal values. The HTTP/2 setting -// parameter SETTINGS_HEADER_TABLE_SIZE is set to the value of 256 -// octets, causing some evictions to occur. The eviction mechanism -// uses the length of the decoded literal values, so the same -// evictions occurs as in the previous section." -func TestDecodeC6_ResponsesHuffman(t *testing.T) { - testDecodeSeries(t, 256, []encAndWant{ - {dehex(` -4882 6402 5885 aec3 771a 4b61 96d0 7abe -9410 54d4 44a8 2005 9504 0b81 66e0 82a6 -2d1b ff6e 919d 29ad 1718 63c7 8f0b 97c8 -e9ae 82ae 43d3 -`), - []HeaderField{ - pair(":status", "302"), - pair("cache-control", "private"), - pair("date", "Mon, 21 Oct 2013 20:13:21 GMT"), - pair("location", "https://www.example.com"), - }, - []HeaderField{ - pair("location", "https://www.example.com"), - pair("date", "Mon, 21 Oct 2013 20:13:21 GMT"), - pair("cache-control", "private"), - pair(":status", "302"), - }, - 222, - }, - {dehex("4883 640e ffc1 c0bf"), - []HeaderField{ - pair(":status", "307"), - pair("cache-control", "private"), - pair("date", "Mon, 21 Oct 2013 20:13:21 GMT"), - pair("location", "https://www.example.com"), - }, - []HeaderField{ - pair(":status", "307"), - pair("location", "https://www.example.com"), - pair("date", "Mon, 21 Oct 2013 20:13:21 GMT"), - pair("cache-control", "private"), - }, - 222, - }, - {dehex(` -88c1 6196 d07a be94 1054 d444 a820 0595 -040b 8166 e084 a62d 1bff c05a 839b d9ab -77ad 94e7 821d d7f2 e6c7 b335 dfdf cd5b -3960 d5af 2708 7f36 72c1 ab27 0fb5 291f -9587 3160 65c0 03ed 4ee5 b106 3d50 07 -`), - []HeaderField{ - pair(":status", "200"), - pair("cache-control", "private"), - pair("date", "Mon, 21 Oct 2013 20:13:22 GMT"), - pair("location", "https://www.example.com"), - pair("content-encoding", "gzip"), - pair("set-cookie", "foo=ASDJKHQKBZXOQWEOPIUAXQWEOIU; max-age=3600; version=1"), - }, - []HeaderField{ - pair("set-cookie", "foo=ASDJKHQKBZXOQWEOPIUAXQWEOIU; max-age=3600; version=1"), - pair("content-encoding", "gzip"), - pair("date", "Mon, 21 Oct 2013 20:13:22 GMT"), - }, - 215, - }, - }) -} - -func testDecodeSeries(t *testing.T, size uint32, steps []encAndWant) { - d := NewDecoder(size, nil) - for i, step := range steps { - hf, err := d.DecodeFull(step.enc) - if err != nil { - t.Fatalf("Error at step index %d: %v", i, err) - } - if !reflect.DeepEqual(hf, step.want) { - t.Fatalf("At step index %d: Got headers %v; want %v", i, hf, step.want) - } - gotDynTab := d.dynTab.reverseCopy() - if !reflect.DeepEqual(gotDynTab, step.wantDynTab) { - t.Errorf("After step index %d, dynamic table = %v; want %v", i, gotDynTab, step.wantDynTab) - } - if d.dynTab.size != step.wantDynSize { - t.Errorf("After step index %d, dynamic table size = %v; want %v", i, d.dynTab.size, step.wantDynSize) - } - } -} - -func TestHuffmanDecode(t *testing.T) { - tests := []struct { - inHex, want string - }{ - {"f1e3 c2e5 f23a 6ba0 ab90 f4ff", "www.example.com"}, - {"a8eb 1064 9cbf", "no-cache"}, - {"25a8 49e9 5ba9 7d7f", "custom-key"}, - {"25a8 49e9 5bb8 e8b4 bf", "custom-value"}, - {"6402", "302"}, - {"aec3 771a 4b", "private"}, - {"d07a be94 1054 d444 a820 0595 040b 8166 e082 a62d 1bff", "Mon, 21 Oct 2013 20:13:21 GMT"}, - {"9d29 ad17 1863 c78f 0b97 c8e9 ae82 ae43 d3", "https://www.example.com"}, - {"9bd9 ab", "gzip"}, - {"94e7 821d d7f2 e6c7 b335 dfdf cd5b 3960 d5af 2708 7f36 72c1 ab27 0fb5 291f 9587 3160 65c0 03ed 4ee5 b106 3d50 07", - "foo=ASDJKHQKBZXOQWEOPIUAXQWEOIU; max-age=3600; version=1"}, - } - for i, tt := range tests { - var buf bytes.Buffer - in, err := hex.DecodeString(strings.Replace(tt.inHex, " ", "", -1)) - if err != nil { - t.Errorf("%d. hex input error: %v", i, err) - continue - } - if _, err := HuffmanDecode(&buf, in); err != nil { - t.Errorf("%d. decode error: %v", i, err) - continue - } - if got := buf.String(); tt.want != got { - t.Errorf("%d. decode = %q; want %q", i, got, tt.want) - } - } -} - -func TestAppendHuffmanString(t *testing.T) { - tests := []struct { - in, want string - }{ - {"www.example.com", "f1e3 c2e5 f23a 6ba0 ab90 f4ff"}, - {"no-cache", "a8eb 1064 9cbf"}, - {"custom-key", "25a8 49e9 5ba9 7d7f"}, - {"custom-value", "25a8 49e9 5bb8 e8b4 bf"}, - {"302", "6402"}, - {"private", "aec3 771a 4b"}, - {"Mon, 21 Oct 2013 20:13:21 GMT", "d07a be94 1054 d444 a820 0595 040b 8166 e082 a62d 1bff"}, - {"https://www.example.com", "9d29 ad17 1863 c78f 0b97 c8e9 ae82 ae43 d3"}, - {"gzip", "9bd9 ab"}, - {"foo=ASDJKHQKBZXOQWEOPIUAXQWEOIU; max-age=3600; version=1", - "94e7 821d d7f2 e6c7 b335 dfdf cd5b 3960 d5af 2708 7f36 72c1 ab27 0fb5 291f 9587 3160 65c0 03ed 4ee5 b106 3d50 07"}, - } - for i, tt := range tests { - buf := []byte{} - want := strings.Replace(tt.want, " ", "", -1) - buf = AppendHuffmanString(buf, tt.in) - if got := hex.EncodeToString(buf); want != got { - t.Errorf("%d. encode = %q; want %q", i, got, want) - } - } -} - -func TestHuffmanMaxStrLen(t *testing.T) { - const msg = "Some string" - huff := AppendHuffmanString(nil, msg) - - testGood := func(max int) { - var out bytes.Buffer - if err := huffmanDecode(&out, max, huff); err != nil { - t.Errorf("For maxLen=%d, unexpected error: %v", max, err) - } - if out.String() != msg { - t.Errorf("For maxLen=%d, out = %q; want %q", max, out.String(), msg) - } - } - testGood(0) - testGood(len(msg)) - testGood(len(msg) + 1) - - var out bytes.Buffer - if err := huffmanDecode(&out, len(msg)-1, huff); err != ErrStringLength { - t.Errorf("err = %v; want ErrStringLength", err) - } -} - -func TestHuffmanRoundtripStress(t *testing.T) { - const Len = 50 // of uncompressed string - input := make([]byte, Len) - var output bytes.Buffer - var huff []byte - - n := 5000 - if testing.Short() { - n = 100 - } - seed := time.Now().UnixNano() - t.Logf("Seed = %v", seed) - src := rand.New(rand.NewSource(seed)) - var encSize int64 - for i := 0; i < n; i++ { - for l := range input { - input[l] = byte(src.Intn(256)) - } - huff = AppendHuffmanString(huff[:0], string(input)) - encSize += int64(len(huff)) - output.Reset() - if err := huffmanDecode(&output, 0, huff); err != nil { - t.Errorf("Failed to decode %q -> %q -> error %v", input, huff, err) - continue - } - if !bytes.Equal(output.Bytes(), input) { - t.Errorf("Roundtrip failure on %q -> %q -> %q", input, huff, output.Bytes()) - } - } - t.Logf("Compressed size of original: %0.02f%% (%v -> %v)", 100*(float64(encSize)/(Len*float64(n))), Len*n, encSize) -} - -func TestHuffmanDecodeFuzz(t *testing.T) { - const Len = 50 // of compressed - var buf, zbuf bytes.Buffer - - n := 5000 - if testing.Short() { - n = 100 - } - seed := time.Now().UnixNano() - t.Logf("Seed = %v", seed) - src := rand.New(rand.NewSource(seed)) - numFail := 0 - for i := 0; i < n; i++ { - zbuf.Reset() - if i == 0 { - // Start with at least one invalid one. - zbuf.WriteString("00\x91\xff\xff\xff\xff\xc8") - } else { - for l := 0; l < Len; l++ { - zbuf.WriteByte(byte(src.Intn(256))) - } - } - - buf.Reset() - if err := huffmanDecode(&buf, 0, zbuf.Bytes()); err != nil { - if err == ErrInvalidHuffman { - numFail++ - continue - } - t.Errorf("Failed to decode %q: %v", zbuf.Bytes(), err) - continue - } - } - t.Logf("%0.02f%% are invalid (%d / %d)", 100*float64(numFail)/float64(n), numFail, n) - if numFail < 1 { - t.Error("expected at least one invalid huffman encoding (test starts with one)") - } -} - -func TestReadVarInt(t *testing.T) { - type res struct { - i uint64 - consumed int - err error - } - tests := []struct { - n byte - p []byte - want res - }{ - // Fits in a byte: - {1, []byte{0}, res{0, 1, nil}}, - {2, []byte{2}, res{2, 1, nil}}, - {3, []byte{6}, res{6, 1, nil}}, - {4, []byte{14}, res{14, 1, nil}}, - {5, []byte{30}, res{30, 1, nil}}, - {6, []byte{62}, res{62, 1, nil}}, - {7, []byte{126}, res{126, 1, nil}}, - {8, []byte{254}, res{254, 1, nil}}, - - // Doesn't fit in a byte: - {1, []byte{1}, res{0, 0, errNeedMore}}, - {2, []byte{3}, res{0, 0, errNeedMore}}, - {3, []byte{7}, res{0, 0, errNeedMore}}, - {4, []byte{15}, res{0, 0, errNeedMore}}, - {5, []byte{31}, res{0, 0, errNeedMore}}, - {6, []byte{63}, res{0, 0, errNeedMore}}, - {7, []byte{127}, res{0, 0, errNeedMore}}, - {8, []byte{255}, res{0, 0, errNeedMore}}, - - // Ignoring top bits: - {5, []byte{255, 154, 10}, res{1337, 3, nil}}, // high dummy three bits: 111 - {5, []byte{159, 154, 10}, res{1337, 3, nil}}, // high dummy three bits: 100 - {5, []byte{191, 154, 10}, res{1337, 3, nil}}, // high dummy three bits: 101 - - // Extra byte: - {5, []byte{191, 154, 10, 2}, res{1337, 3, nil}}, // extra byte - - // Short a byte: - {5, []byte{191, 154}, res{0, 0, errNeedMore}}, - - // integer overflow: - {1, []byte{255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128}, res{0, 0, errVarintOverflow}}, - } - for _, tt := range tests { - i, remain, err := readVarInt(tt.n, tt.p) - consumed := len(tt.p) - len(remain) - got := res{i, consumed, err} - if got != tt.want { - t.Errorf("readVarInt(%d, %v ~ %x) = %+v; want %+v", tt.n, tt.p, tt.p, got, tt.want) - } - } -} - -// Fuzz crash, originally reported at https://github.com/bradfitz/http2/issues/56 -func TestHuffmanFuzzCrash(t *testing.T) { - got, err := HuffmanDecodeToString([]byte("00\x91\xff\xff\xff\xff\xc8")) - if got != "" { - t.Errorf("Got %q; want empty string", got) - } - if err != ErrInvalidHuffman { - t.Errorf("Err = %v; want ErrInvalidHuffman", err) - } -} - -func dehex(s string) []byte { - s = strings.Replace(s, " ", "", -1) - s = strings.Replace(s, "\n", "", -1) - b, err := hex.DecodeString(s) - if err != nil { - panic(err) - } - return b -} - -func TestEmitEnabled(t *testing.T) { - var buf bytes.Buffer - enc := NewEncoder(&buf) - enc.WriteField(HeaderField{Name: "foo", Value: "bar"}) - enc.WriteField(HeaderField{Name: "foo", Value: "bar"}) - - numCallback := 0 - var dec *Decoder - dec = NewDecoder(8<<20, func(HeaderField) { - numCallback++ - dec.SetEmitEnabled(false) - }) - if !dec.EmitEnabled() { - t.Errorf("initial emit enabled = false; want true") - } - if _, err := dec.Write(buf.Bytes()); err != nil { - t.Error(err) - } - if numCallback != 1 { - t.Errorf("num callbacks = %d; want 1", numCallback) - } - if dec.EmitEnabled() { - t.Errorf("emit enabled = true; want false") - } -} - -func TestSaveBufLimit(t *testing.T) { - const maxStr = 1 << 10 - var got []HeaderField - dec := NewDecoder(initialHeaderTableSize, func(hf HeaderField) { - got = append(got, hf) - }) - dec.SetMaxStringLength(maxStr) - var frag []byte - frag = append(frag[:0], encodeTypeByte(false, false)) - frag = appendVarInt(frag, 7, 3) - frag = append(frag, "foo"...) - frag = appendVarInt(frag, 7, 3) - frag = append(frag, "bar"...) - - if _, err := dec.Write(frag); err != nil { - t.Fatal(err) - } - - want := []HeaderField{{Name: "foo", Value: "bar"}} - if !reflect.DeepEqual(got, want) { - t.Errorf("After small writes, got %v; want %v", got, want) - } - - frag = append(frag[:0], encodeTypeByte(false, false)) - frag = appendVarInt(frag, 7, maxStr*3) - frag = append(frag, make([]byte, maxStr*3)...) - - _, err := dec.Write(frag) - if err != ErrStringLength { - t.Fatalf("Write error = %v; want ErrStringLength", err) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/huffman.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/huffman.go deleted file mode 100644 index eb4b1f05..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/huffman.go +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package 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 { - n := rootHuffmanNode - cur, nbits := uint(0), uint8(0) - for _, b := range v { - cur = cur<<8 | uint(b) - nbits += 8 - for nbits >= 8 { - idx := byte(cur >> (nbits - 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) - nbits -= n.codeLen - n = rootHuffmanNode - } else { - nbits -= 8 - } - } - } - for nbits > 0 { - n = n.children[byte(cur<<(8-nbits))] - if n.children != nil || n.codeLen > nbits { - break - } - buf.WriteByte(n.sym) - nbits -= n.codeLen - n = rootHuffmanNode - } - return nil -} - -type node struct { - // children is non-nil for internal nodes - children []*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: make([]*node, 256)} -} - -var rootHuffmanNode = newInternalNode() - -func init() { - if len(huffmanCodes) != 256 { - panic("unexpected size") - } - for i, code := range huffmanCodes { - addDecoderNode(byte(i), code, huffmanCodeLen[i]) - } -} - -func addDecoderNode(sym byte, code uint32, codeLen uint8) { - cur := rootHuffmanNode - 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<> (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/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/tables.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/tables.go deleted file mode 100644 index b9283a02..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack/tables.go +++ /dev/null @@ -1,352 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package hpack - -func pair(name, value string) HeaderField { - return HeaderField{Name: name, Value: value} -} - -// http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-07#appendix-B -var staticTable = [...]HeaderField{ - pair(":authority", ""), // index 1 (1-based) - pair(":method", "GET"), - pair(":method", "POST"), - pair(":path", "/"), - pair(":path", "/index.html"), - pair(":scheme", "http"), - pair(":scheme", "https"), - pair(":status", "200"), - pair(":status", "204"), - pair(":status", "206"), - pair(":status", "304"), - pair(":status", "400"), - pair(":status", "404"), - pair(":status", "500"), - pair("accept-charset", ""), - pair("accept-encoding", "gzip, deflate"), - pair("accept-language", ""), - pair("accept-ranges", ""), - pair("accept", ""), - pair("access-control-allow-origin", ""), - pair("age", ""), - pair("allow", ""), - pair("authorization", ""), - pair("cache-control", ""), - pair("content-disposition", ""), - pair("content-encoding", ""), - pair("content-language", ""), - pair("content-length", ""), - pair("content-location", ""), - pair("content-range", ""), - pair("content-type", ""), - pair("cookie", ""), - pair("date", ""), - pair("etag", ""), - pair("expect", ""), - pair("expires", ""), - pair("from", ""), - pair("host", ""), - pair("if-match", ""), - pair("if-modified-since", ""), - pair("if-none-match", ""), - pair("if-range", ""), - pair("if-unmodified-since", ""), - pair("last-modified", ""), - pair("link", ""), - pair("location", ""), - pair("max-forwards", ""), - pair("proxy-authenticate", ""), - pair("proxy-authorization", ""), - pair("range", ""), - pair("referer", ""), - pair("refresh", ""), - pair("retry-after", ""), - pair("server", ""), - pair("set-cookie", ""), - pair("strict-transport-security", ""), - pair("transfer-encoding", ""), - pair("user-agent", ""), - pair("vary", ""), - pair("via", ""), - pair("www-authenticate", ""), -} - -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/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/http2.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/http2.go deleted file mode 100644 index 03ad05cc..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/http2.go +++ /dev/null @@ -1,253 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package http2 implements the HTTP/2 protocol. -// -// This is a work in progress. This package is low-level and intended -// to be used directly by very few people. Most users will use it -// indirectly through integration with the net/http package. See -// ConfigureServer. That ConfigureServer call will likely be automatic -// or available via an empty import in the future. -// -// See http://http2.github.io/ -package http2 - -import ( - "bufio" - "fmt" - "io" - "net/http" - "strconv" - "sync" -) - -var VerboseLogs = false - -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 - -const ( - stateIdle streamState = iota - stateOpen - stateHalfClosedLocal - stateHalfClosedRemote - stateResvLocal - stateResvRemote - stateClosed -) - -var stateName = [...]string{ - stateIdle: "Idle", - stateOpen: "Open", - stateHalfClosedLocal: "HalfClosedLocal", - stateHalfClosedRemote: "HalfClosedRemote", - stateResvLocal: "ResvLocal", - stateResvRemote: "ResvRemote", - 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)) -} - -func validHeader(v string) bool { - if len(v) == 0 { - return false - } - for _, r := range v { - // "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. " - if r >= 127 || ('A' <= r && r <= 'Z') { - return false - } - } - return true -} - -var httpCodeStringCommon = map[int]string{} // n -> strconv.Itoa(n) - -func init() { - for i := 100; i <= 999; i++ { - if v := http.StatusText(i); v != "" { - httpCodeStringCommon[i] = strconv.Itoa(i) - } - } -} - -func httpCodeString(code int) string { - if s, ok := httpCodeStringCommon[code]; ok { - return s - } - 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} -} - -var bufWriterPool = sync.Pool{ - New: func() interface{} { - // TODO: pick something better? this is a bit under - // (3 x typical 1500 byte MTU) at least. - return bufio.NewWriterSize(nil, 4<<10) - }, -} - -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) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/http2_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/http2_test.go deleted file mode 100644 index c5b53f3f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/http2_test.go +++ /dev/null @@ -1,168 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package http2 - -import ( - "bytes" - "errors" - "flag" - "fmt" - "net/http" - "os/exec" - "strconv" - "strings" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack" -) - -var knownFailing = flag.Bool("known_failing", false, "Run known-failing tests.") - -func condSkipFailingTest(t *testing.T) { - if !*knownFailing { - t.Skip("Skipping known-failing test without --known_failing") - } -} - -func init() { - DebugGoroutines = true - flag.BoolVar(&VerboseLogs, "verboseh2", false, "Verbose HTTP/2 debug logging") -} - -func TestSettingString(t *testing.T) { - tests := []struct { - s Setting - want string - }{ - {Setting{SettingMaxFrameSize, 123}, "[MAX_FRAME_SIZE = 123]"}, - {Setting{1<<16 - 1, 123}, "[UNKNOWN_SETTING_65535 = 123]"}, - } - for i, tt := range tests { - got := fmt.Sprint(tt.s) - if got != tt.want { - t.Errorf("%d. for %#v, string = %q; want %q", i, tt.s, got, tt.want) - } - } -} - -type twriter struct { - t testing.TB - st *serverTester // optional -} - -func (w twriter) Write(p []byte) (n int, err error) { - if w.st != nil { - ps := string(p) - for _, phrase := range w.st.logFilter { - if strings.Contains(ps, phrase) { - return len(p), nil // no logging - } - } - } - w.t.Logf("%s", p) - return len(p), nil -} - -// like encodeHeader, but don't add implicit psuedo headers. -func encodeHeaderNoImplicit(t *testing.T, headers ...string) []byte { - var buf bytes.Buffer - enc := hpack.NewEncoder(&buf) - for len(headers) > 0 { - k, v := headers[0], headers[1] - headers = headers[2:] - if err := enc.WriteField(hpack.HeaderField{Name: k, Value: v}); err != nil { - t.Fatalf("HPACK encoding error for %q/%q: %v", k, v, err) - } - } - return buf.Bytes() -} - -// Verify that curl has http2. -func requireCurl(t *testing.T) { - out, err := dockerLogs(curl(t, "--version")) - if err != nil { - t.Skipf("failed to determine curl features; skipping test") - } - if !strings.Contains(string(out), "HTTP2") { - t.Skip("curl doesn't support HTTP2; skipping test") - } -} - -func curl(t *testing.T, args ...string) (container string) { - out, err := exec.Command("docker", append([]string{"run", "-d", "--net=host", "gohttp2/curl"}, args...)...).Output() - if err != nil { - t.Skipf("Failed to run curl in docker: %v, %s", err, out) - } - return strings.TrimSpace(string(out)) -} - -// Verify that h2load exists. -func requireH2load(t *testing.T) { - out, err := dockerLogs(h2load(t, "--version")) - if err != nil { - t.Skipf("failed to probe h2load; skipping test: %s", out) - } - if !strings.Contains(string(out), "h2load nghttp2/") { - t.Skipf("h2load not present; skipping test. (Output=%q)", out) - } -} - -func h2load(t *testing.T, args ...string) (container string) { - out, err := exec.Command("docker", append([]string{"run", "-d", "--net=host", "--entrypoint=/usr/local/bin/h2load", "gohttp2/curl"}, args...)...).Output() - if err != nil { - t.Skipf("Failed to run h2load in docker: %v, %s", err, out) - } - return strings.TrimSpace(string(out)) -} - -type puppetCommand struct { - fn func(w http.ResponseWriter, r *http.Request) - done chan<- bool -} - -type handlerPuppet struct { - ch chan puppetCommand -} - -func newHandlerPuppet() *handlerPuppet { - return &handlerPuppet{ - ch: make(chan puppetCommand), - } -} - -func (p *handlerPuppet) act(w http.ResponseWriter, r *http.Request) { - for cmd := range p.ch { - cmd.fn(w, r) - cmd.done <- true - } -} - -func (p *handlerPuppet) done() { close(p.ch) } -func (p *handlerPuppet) do(fn func(http.ResponseWriter, *http.Request)) { - done := make(chan bool) - p.ch <- puppetCommand{fn, done} - <-done -} -func dockerLogs(container string) ([]byte, error) { - out, err := exec.Command("docker", "wait", container).CombinedOutput() - if err != nil { - return out, err - } - exitStatus, err := strconv.Atoi(strings.TrimSpace(string(out))) - if err != nil { - return out, errors.New("unexpected exit status from docker wait") - } - out, err = exec.Command("docker", "logs", container).CombinedOutput() - exec.Command("docker", "rm", container).Run() - if err == nil && exitStatus != 0 { - err = fmt.Errorf("exit status %d: %s", exitStatus, out) - } - return out, err -} - -func kill(container string) { - exec.Command("docker", "kill", container).Run() - exec.Command("docker", "rm", container).Run() -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/pipe.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/pipe.go deleted file mode 100644 index 96a3eb8d..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/pipe.go +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package 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 must point to - b pipeBuffer - err error // read error once empty. non-nil means closed. -} - -type pipeBuffer interface { - Len() int - io.Writer - io.Reader -} - -// 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.b.Len() > 0 { - return p.b.Read(d) - } - if p.err != 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 - } - return p.b.Write(d) -} - -// CloseWithError causes Reads to wake up and return the -// provided err after all data has been read. -// -// The error must be non-nil. -func (p *pipe) CloseWithError(err error) { - if err == nil { - panic("CloseWithError 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 p.err == nil { - p.err = err - } -} - -// Err returns the error (if any) first set with CloseWithError. -// This is the error which will be returned after the reader is exhausted. -func (p *pipe) Err() error { - p.mu.Lock() - defer p.mu.Unlock() - return p.err -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/pipe_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/pipe_test.go deleted file mode 100644 index 002ce05e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/pipe_test.go +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package http2 - -import ( - "bytes" - "errors" - "testing" -) - -func TestPipeClose(t *testing.T) { - var p pipe - p.b = new(bytes.Buffer) - a := errors.New("a") - b := errors.New("b") - p.CloseWithError(a) - p.CloseWithError(b) - _, err := p.Read(make([]byte, 1)) - if err != a { - t.Errorf("err = %v want %v", err, a) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/priority_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/priority_test.go deleted file mode 100644 index a3fe2bb4..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/priority_test.go +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package http2 - -import ( - "testing" -) - -func TestPriority(t *testing.T) { - // A -> B - // move A's parent to B - streams := make(map[uint32]*stream) - a := &stream{ - parent: nil, - weight: 16, - } - streams[1] = a - b := &stream{ - parent: a, - weight: 16, - } - streams[2] = b - adjustStreamPriority(streams, 1, PriorityParam{ - Weight: 20, - StreamDep: 2, - }) - if a.parent != b { - t.Errorf("Expected A's parent to be B") - } - if a.weight != 20 { - t.Errorf("Expected A's weight to be 20; got %d", a.weight) - } - if b.parent != nil { - t.Errorf("Expected B to have no parent") - } - if b.weight != 16 { - t.Errorf("Expected B's weight to be 16; got %d", b.weight) - } -} - -func TestPriorityExclusiveZero(t *testing.T) { - // A B and C are all children of the 0 stream. - // Exclusive reprioritization to any of the streams - // should bring the rest of the streams under the - // reprioritized stream - streams := make(map[uint32]*stream) - a := &stream{ - parent: nil, - weight: 16, - } - streams[1] = a - b := &stream{ - parent: nil, - weight: 16, - } - streams[2] = b - c := &stream{ - parent: nil, - weight: 16, - } - streams[3] = c - adjustStreamPriority(streams, 3, PriorityParam{ - Weight: 20, - StreamDep: 0, - Exclusive: true, - }) - if a.parent != c { - t.Errorf("Expected A's parent to be C") - } - if a.weight != 16 { - t.Errorf("Expected A's weight to be 16; got %d", a.weight) - } - if b.parent != c { - t.Errorf("Expected B's parent to be C") - } - if b.weight != 16 { - t.Errorf("Expected B's weight to be 16; got %d", b.weight) - } - if c.parent != nil { - t.Errorf("Expected C to have no parent") - } - if c.weight != 20 { - t.Errorf("Expected C's weight to be 20; got %d", b.weight) - } -} - -func TestPriorityOwnParent(t *testing.T) { - streams := make(map[uint32]*stream) - a := &stream{ - parent: nil, - weight: 16, - } - streams[1] = a - b := &stream{ - parent: a, - weight: 16, - } - streams[2] = b - adjustStreamPriority(streams, 1, PriorityParam{ - Weight: 20, - StreamDep: 1, - }) - if a.parent != nil { - t.Errorf("Expected A's parent to be nil") - } - if a.weight != 20 { - t.Errorf("Expected A's weight to be 20; got %d", a.weight) - } - if b.parent != a { - t.Errorf("Expected B's parent to be A") - } - if b.weight != 16 { - t.Errorf("Expected B's weight to be 16; got %d", b.weight) - } - -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/server.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/server.go deleted file mode 100644 index d35778c5..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/server.go +++ /dev/null @@ -1,1894 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// TODO: replace all <-sc.doneServing with reads from the stream's cw -// instead, and make sure that on close we close all open -// streams. then remove doneServing? - -// TODO: finish GOAWAY support. Consider each incoming frame type and -// whether it should be ignored during a shutdown race. - -// TODO: disconnect idle clients. GFE seems to do 4 minutes. make -// configurable? or maximum number of idle clients and remove the -// oldest? - -// 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" - "crypto/tls" - "errors" - "fmt" - "io" - "log" - "net" - "net/http" - "net/url" - "strconv" - "strings" - "sync" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-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? -) - -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 -} - -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 -} - -// 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 conf == nil { - conf = new(Server) - } - - 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. - const requiredCipher = tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - haveRequired := false - sawBad := false - for i, cs := range s.TLSConfig.CipherSuites { - if cs == requiredCipher { - 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 HTTP/2-required TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256") - } - } - - // 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) - } - // h2-14 is temporary (as of 2015-03-05) while we wait for all browsers - // to switch to "h2". - s.TLSConfig.NextProtos = append(s.TLSConfig.NextProtos, "h2-14") - - 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() - } - conf.handleConn(hs, c, h) - } - s.TLSNextProto[NextProtoTLS] = protoHandler - s.TLSNextProto["h2-14"] = protoHandler // temporary; see above. - return nil -} - -func (srv *Server) handleConn(hs *http.Server, c net.Conn, h http.Handler) { - sc := &serverConn{ - srv: srv, - hs: hs, - conn: c, - remoteAddrStr: c.RemoteAddr().String(), - bw: newBufferedWriter(c), - handler: h, - streams: make(map[uint32]*stream), - readFrameCh: make(chan readFrameResult), - wantWriteFrameCh: make(chan frameWriteMsg, 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{}), - advMaxStreams: srv.maxConcurrentStreams(), - writeSched: writeScheduler{ - maxFrameSize: initialMaxFrameSize, - }, - initialWindowSize: initialWindowSize, - headerTableSize: initialHeaderTableSize, - serveG: newGoroutineLock(), - pushEnabled: true, - } - sc.flow.add(initialWindowSize) - sc.inflow.add(initialWindowSize) - sc.hpackEncoder = hpack.NewEncoder(&sc.headerWriteBuf) - sc.hpackDecoder = hpack.NewDecoder(initialHeaderTableSize, sc.onNewHeaderField) - sc.hpackDecoder.SetMaxStringLength(sc.maxHeaderStringLen()) - - fr := NewFramer(sc.bw, c) - fr.SetMaxReadFrameSize(srv.maxReadFrameSize()) - sc.framer = fr - - if tc, ok := c.(*tls.Conn); 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 the ServerName matches the :authority? - // But that precludes proxy situations, perhaps. - // - // So for now, do nothing here again. - } - - if !srv.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() -} - -// isBadCipher reports whether the cipher is blacklisted by the HTTP/2 spec. -func isBadCipher(cipher uint16) bool { - switch cipher { - case tls.TLS_RSA_WITH_RC4_128_SHA, - tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA, - tls.TLS_RSA_WITH_AES_128_CBC_SHA, - tls.TLS_RSA_WITH_AES_256_CBC_SHA, - tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, - tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, - tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, - tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA, - tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, - tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, - tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: - // 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" - return true - default: - return false - } -} - -func (sc *serverConn) rejectConn(err ErrCode, debug string) { - sc.vlogf("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 - framer *Framer - hpackDecoder *hpack.Decoder - doneServing chan struct{} // closed when serverConn.serve ends - readFrameCh chan readFrameResult // written by serverConn.readFrames - wantWriteFrameCh chan frameWriteMsg // from handlers -> serve - wroteFrameCh chan frameWriteResult // from writeFrameAsync -> serve, tickles more frame writes - bodyReadCh chan bodyReadMsg // from handlers -> serve - testHookCh chan func(int) // code 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 - - // 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? - clientMaxStreams uint32 // SETTINGS_MAX_CONCURRENT_STREAMS from client (our PUSH_PROMISE limit) - advMaxStreams uint32 // our SETTINGS_MAX_CONCURRENT_STREAMS advertised the client - curOpenStreams uint32 // client's number of open streams - maxStreamID uint32 // max ever seen - streams map[uint32]*stream - initialWindowSize int32 - headerTableSize uint32 - peerMaxHeaderListSize uint32 // zero means unknown (default) - canonHeader map[string]string // http2-lower-case -> Go-Canonical-Case - req requestParam // non-zero while reading request headers - writingFrame bool // started write goroutine but haven't heard back on wroteFrameCh - needsFrameFlush bool // last frame write wasn't a flush - writeSched writeScheduler - inGoAway bool // we've started to or sent GOAWAY - needToSendGoAway bool // we need to schedule a GOAWAY frame write - goAwayCode ErrCode - shutdownTimerCh <-chan time.Time // nil until used - shutdownTimer *time.Timer // nil until used - - // Owned by the writeFrameAsync goroutine: - headerWriteBuf bytes.Buffer - hpackEncoder *hpack.Encoder -} - -func (sc *serverConn) maxHeaderStringLen() int { - v := sc.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 -} - -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) -} - -// requestParam is the state of the next request, initialized over -// potentially several frames HEADERS + zero or more CONTINUATION -// frames. -type requestParam struct { - // stream is non-nil if we're reading (HEADER or CONTINUATION) - // frames for a request (but not DATA). - stream *stream - header http.Header - method, path string - scheme, authority string - sawRegularHeader bool // saw a non-pseudo header already - invalidHeader bool // an invalid header was seen - headerListSize int64 // actually uint32, but easier math this way -} - -// 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: - id uint32 - body *pipe // non-nil if expecting DATA frames - cw closeWaiter // closed wait stream transitions to closed state - - // 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 - weight uint8 - state streamState - sentReset bool // only true once detached from streams map - gotReset bool // only true once detacted from streams map -} - -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://http2.github.io/http2-spec/#rfc.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 <= sc.maxStreamID { - 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...) - } -} - -func (sc *serverConn) condlogf(err error, format string, args ...interface{}) { - if err == nil { - return - } - str := err.Error() - if err == io.EOF || strings.Contains(str, "use of closed network connection") { - // Boring, expected errors. - sc.vlogf(format, args...) - } else { - sc.logf(format, args...) - } -} - -func (sc *serverConn) onNewHeaderField(f hpack.HeaderField) { - sc.serveG.check() - sc.vlogf("got header field %+v", f) - switch { - case !validHeader(f.Name): - sc.req.invalidHeader = true - case strings.HasPrefix(f.Name, ":"): - if sc.req.sawRegularHeader { - sc.logf("pseudo-header after regular header") - sc.req.invalidHeader = true - return - } - var dst *string - switch f.Name { - case ":method": - dst = &sc.req.method - case ":path": - dst = &sc.req.path - case ":scheme": - dst = &sc.req.scheme - case ":authority": - dst = &sc.req.authority - default: - // 8.1.2.1 Pseudo-Header Fields - // "Endpoints MUST treat a request or response - // that contains undefined or invalid - // pseudo-header fields as malformed (Section - // 8.1.2.6)." - sc.logf("invalid pseudo-header %q", f.Name) - sc.req.invalidHeader = true - return - } - if *dst != "" { - sc.logf("duplicate pseudo-header %q sent", f.Name) - sc.req.invalidHeader = true - return - } - *dst = f.Value - default: - sc.req.sawRegularHeader = true - sc.req.header.Add(sc.canonicalHeader(f.Name), f.Value) - const headerFieldOverhead = 32 // per spec - sc.req.headerListSize += int64(len(f.Name)) + int64(len(f.Value)) + headerFieldOverhead - if sc.req.headerListSize > int64(sc.maxHeaderListSize()) { - sc.hpackDecoder.SetEmitEnabled(false) - } - } -} - -func (sc *serverConn) canonicalHeader(v string) string { - sc.serveG.check() - 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) - for { - f, err := sc.framer.ReadFrame() - select { - case sc.readFrameCh <- readFrameResult{f, err, gate.Done}: - case <-sc.doneServing: - return - } - select { - case <-gate: - case <-sc.doneServing: - return - } - } -} - -// frameWriteResult is the message passed from writeFrameAsync to the serve goroutine. -type frameWriteResult struct { - wm frameWriteMsg // 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(wm frameWriteMsg) { - err := wm.write.writeFrame(sc) - sc.wroteFrameCh <- frameWriteResult{wm, 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() { - 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 - - sc.vlogf("HTTP/2 connection from %v on %p", sc.conn.RemoteAddr(), sc.hs) - - sc.writeFrame(frameWriteMsg{ - write: writeSettings{ - {SettingMaxFrameSize, sc.srv.maxReadFrameSize()}, - {SettingMaxConcurrentStreams, sc.advMaxStreams}, - {SettingMaxHeaderListSize, sc.maxHeaderListSize()}, - - // TODO: more actual settings, notably - // SettingInitialWindowSize, but then we also - // want to bump up the conn window size the - // same amount here right after the settings - }, - }) - sc.unackedSettings++ - - if err := sc.readPreface(); err != nil { - sc.condlogf(err, "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) - - go sc.readFrames() // closed by defer sc.conn.Close above - - settingsTimer := time.NewTimer(firstSettingsTimeout) - loopNum := 0 - for { - loopNum++ - select { - case wm := <-sc.wantWriteFrameCh: - sc.writeFrame(wm) - case res := <-sc.wroteFrameCh: - sc.wroteFrame(res) - case res := <-sc.readFrameCh: - if !sc.processFrameFromReader(res) { - return - } - res.readMore() - if settingsTimer.C != nil { - settingsTimer.Stop() - settingsTimer.C = nil - } - case m := <-sc.bodyReadCh: - sc.noteBodyRead(m.st, m.n) - case <-settingsTimer.C: - sc.logf("timeout waiting for SETTINGS frames from %v", sc.conn.RemoteAddr()) - return - case <-sc.shutdownTimerCh: - sc.vlogf("GOAWAY close timer fired; closing conn from %v", sc.conn.RemoteAddr()) - return - case fn := <-sc.testHookCh: - fn(loopNum) - } - } -} - -// readPreface reads the ClientPreface greeting from the peer -// or returns an error on timeout or an invalid greeting. -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 errors.New("timeout waiting for client preface") - case err := <-errc: - if err == nil { - sc.vlogf("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(frameWriteMsg{ - 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 wm 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(wm frameWriteMsg) error { - sc.serveG.checkNotOn() // NOT - select { - case sc.wantWriteFrameCh <- wm: - 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(wm frameWriteMsg) { - sc.serveG.check() - sc.writeSched.add(wm) - sc.scheduleFrameWrite() -} - -// startFrameWrite starts a goroutine to write wm (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 wm. -func (sc *serverConn) startFrameWrite(wm frameWriteMsg) { - sc.serveG.check() - if sc.writingFrame { - panic("internal error: can only be writing one frame at a time") - } - - st := wm.stream - if st != nil { - switch st.state { - case stateHalfClosedLocal: - panic("internal error: attempt to send frame on half-closed-local stream") - case stateClosed: - if st.sentReset || st.gotReset { - // Skip this frame. - sc.scheduleFrameWrite() - return - } - panic(fmt.Sprintf("internal error: attempt to send a write %v on a closed stream", wm)) - } - } - - sc.writingFrame = true - sc.needsFrameFlush = true - go sc.writeFrameAsync(wm) -} - -// 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 - - wm := res.wm - st := wm.stream - - closeStream := endsStream(wm.write) - - // Reply (if requested) to the blocked ServeHTTP goroutine. - if ch := wm.done; ch != nil { - select { - case ch <- res.err: - default: - panic(fmt.Sprintf("unbuffered done channel passed in for type %T", wm.write)) - } - } - wm.write = nil // prevent use (assume it's tainted after wm.done send) - - if closeStream { - 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 finishing writing to 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. - st.state = stateHalfClosedLocal // won't last long, but necessary for closeStream via resetStream - errCancel := StreamError{st.id, ErrCodeCancel} - sc.resetStream(errCancel) - case stateHalfClosedRemote: - sc.closeStream(st, errHandlerComplete) - } - } - - 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 we need to send one, the best frame -// to send is selected, preferring first things that aren't -// stream-specific (e.g. ACKing settings), and then finding the -// highest priority stream. -// -// 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 { - return - } - if sc.needToSendGoAway { - sc.needToSendGoAway = false - sc.startFrameWrite(frameWriteMsg{ - write: &writeGoAway{ - maxStreamID: sc.maxStreamID, - code: sc.goAwayCode, - }, - }) - return - } - if sc.needToSendSettingsAck { - sc.needToSendSettingsAck = false - sc.startFrameWrite(frameWriteMsg{write: writeSettingsAck{}}) - return - } - if !sc.inGoAway { - if wm, ok := sc.writeSched.take(); ok { - sc.startFrameWrite(wm) - return - } - } - if sc.needsFrameFlush { - sc.startFrameWrite(frameWriteMsg{write: flushFrameWriter{}}) - sc.needsFrameFlush = false // after startFrameWrite, since it sets this true - return - } -} - -func (sc *serverConn) goAway(code ErrCode) { - sc.serveG.check() - if sc.inGoAway { - return - } - if code != ErrCodeNo { - sc.shutDownIn(250 * time.Millisecond) - } else { - // TODO: configurable - sc.shutDownIn(1 * time.Second) - } - sc.inGoAway = true - sc.needToSendGoAway = true - sc.goAwayCode = code - sc.scheduleFrameWrite() -} - -func (sc *serverConn) shutDownIn(d time.Duration) { - sc.serveG.check() - sc.shutdownTimer = time.NewTimer(d) - sc.shutdownTimerCh = sc.shutdownTimer.C -} - -func (sc *serverConn) resetStream(se StreamError) { - sc.serveG.check() - sc.writeFrame(frameWriteMsg{write: se}) - if st, ok := sc.streams[se.StreamID]; ok { - st.sentReset = true - sc.closeStream(st, se) - } -} - -// curHeaderStreamID returns the stream ID of the header block we're -// currently in the middle of reading. If this returns non-zero, the -// next frame must be a CONTINUATION with this stream id. -func (sc *serverConn) curHeaderStreamID() uint32 { - sc.serveG.check() - st := sc.req.stream - if st == nil { - return 0 - } - return st.id -} - -// 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 || strings.Contains(err.Error(), "use of closed network connection") - 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 - sc.vlogf("got %v: %#v", f.Header(), 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("%v: %v", sc.conn.RemoteAddr(), ev) - sc.goAway(ErrCode(ev)) - return true // goAway will handle shutdown - default: - if res.err != nil { - sc.logf("disconnecting; error reading frame from client %s: %v", sc.conn.RemoteAddr(), err) - } else { - sc.logf("disconnection due to other error: %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 - } - - if s := sc.curHeaderStreamID(); s != 0 { - if cf, ok := f.(*ContinuationFrame); !ok { - return ConnectionError(ErrCodeProtocol) - } else if cf.Header().StreamID != s { - return ConnectionError(ErrCodeProtocol) - } - } - - switch f := f.(type) { - case *SettingsFrame: - return sc.processSettings(f) - case *HeadersFrame: - return sc.processHeaders(f) - case *ContinuationFrame: - return sc.processContinuation(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 *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("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) - } - sc.writeFrame(frameWriteMsg{write: writePingAck{f}}) - return nil -} - -func (sc *serverConn) processWindowUpdate(f *WindowUpdateFrame) error { - sc.serveG.check() - switch { - case f.StreamID != 0: // stream-level flow control - st := sc.streams[f.StreamID] - 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.gotReset = true - 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 - sc.curOpenStreams-- - if sc.curOpenStreams == 0 { - sc.setConnState(http.StateIdle) - } - delete(sc.streams, st.id) - if p := st.body; p != nil { - p.CloseWithError(err) - } - st.cw.Close() // signals Handler's CloseNotifier, unblocks writes, etc - sc.writeSched.forgetStream(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 err := f.ForeachSetting(sc.processSetting); err != nil { - return err - } - 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 - } - sc.vlogf("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.writeSched.maxFrameSize = s.Val - 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." - } - 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.initialWindowSize - sc.initialWindowSize = int32(val) - growth := sc.initialWindowSize - 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 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 - st, ok := sc.streams[id] - if !ok || st.state != stateOpen { - // 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. - return StreamError{id, ErrCodeStreamClosed} - } - if st.body == nil { - panic("internal error: should have a body in this state") - } - data := f.Data() - - // 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)) - return StreamError{id, ErrCodeStreamClosed} - } - if len(data) > 0 { - // Check whether the client has flow control quota. - if int(st.inflow.available()) < len(data) { - return StreamError{id, ErrCodeFlowControl} - } - st.inflow.take(int32(len(data))) - 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)) - } - if f.StreamEnded() { - 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.CloseWithError(io.EOF) - } - st.state = stateHalfClosedRemote - } - return nil -} - -func (sc *serverConn) processHeaders(f *HeadersFrame) error { - sc.serveG.check() - id := f.Header().StreamID - if sc.inGoAway { - // Ignore. - return nil - } - // http://http2.github.io/http2-spec/#rfc.section.5.1.1 - if id%2 != 1 || id <= sc.maxStreamID || sc.req.stream != nil { - // Streams initiated by a client MUST use odd-numbered - // stream identifiers. [...] 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. - return ConnectionError(ErrCodeProtocol) - } - if id > sc.maxStreamID { - sc.maxStreamID = id - } - st := &stream{ - id: id, - state: stateOpen, - } - if f.StreamEnded() { - st.state = stateHalfClosedRemote - } - st.cw.Init() - - st.flow.conn = &sc.flow // link to conn-level counter - st.flow.add(sc.initialWindowSize) - st.inflow.conn = &sc.inflow // link to conn-level counter - st.inflow.add(initialWindowSize) // TODO: update this when we send a higher initial window size in the initial settings - - sc.streams[id] = st - if f.HasPriority() { - adjustStreamPriority(sc.streams, st.id, f.Priority) - } - sc.curOpenStreams++ - if sc.curOpenStreams == 1 { - sc.setConnState(http.StateActive) - } - sc.req = requestParam{ - stream: st, - header: make(http.Header), - } - sc.hpackDecoder.SetEmitEnabled(true) - return sc.processHeaderBlockFragment(st, f.HeaderBlockFragment(), f.HeadersEnded()) -} - -func (sc *serverConn) processContinuation(f *ContinuationFrame) error { - sc.serveG.check() - st := sc.streams[f.Header().StreamID] - if st == nil || sc.curHeaderStreamID() != st.id { - return ConnectionError(ErrCodeProtocol) - } - return sc.processHeaderBlockFragment(st, f.HeaderBlockFragment(), f.HeadersEnded()) -} - -func (sc *serverConn) processHeaderBlockFragment(st *stream, frag []byte, end bool) error { - sc.serveG.check() - if _, err := sc.hpackDecoder.Write(frag); err != nil { - return ConnectionError(ErrCodeCompression) - } - if !end { - return nil - } - if err := sc.hpackDecoder.Close(); err != nil { - return ConnectionError(ErrCodeCompression) - } - defer sc.resetPendingRequest() - if sc.curOpenStreams > sc.advMaxStreams { - // "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.unackedSettings == 0 { - // They should know better. - return StreamError{st.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{st.id, ErrCodeRefusedStream} - } - - rw, req, err := sc.newWriterAndRequest() - if err != nil { - return err - } - st.body = req.Body.(*requestBody).pipe // may be nil - st.declBodyBytes = req.ContentLength - - handler := sc.handler.ServeHTTP - if !sc.hpackDecoder.EmitEnabled() { - // Their header list was too long. Send a 431 error. - handler = handleHeaderListTooLong - } - - go sc.runHandler(rw, req, handler) - return nil -} - -func (sc *serverConn) processPriority(f *PriorityFrame) error { - adjustStreamPriority(sc.streams, f.StreamID, f.PriorityParam) - return nil -} - -func adjustStreamPriority(streams map[uint32]*stream, streamID uint32, priority PriorityParam) { - st, ok := streams[streamID] - if !ok { - // TODO: not quite correct (this streamID might - // already exist in the dep tree, but be closed), but - // close enough for now. - return - } - st.weight = priority.Weight - parent := streams[priority.StreamDep] // might be nil - if parent == st { - // if client tries to set this stream to be the parent of itself - // ignore and keep going - 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. - for piter := parent; piter != nil; piter = piter.parent { - if piter == st { - parent.parent = st.parent - break - } - } - st.parent = parent - if priority.Exclusive && (st.parent != nil || priority.StreamDep == 0) { - for _, openStream := range streams { - if openStream != st && openStream.parent == st.parent { - openStream.parent = st - } - } - } -} - -// resetPendingRequest zeros out all state related to a HEADERS frame -// and its zero or more CONTINUATION frames sent to start a new -// request. -func (sc *serverConn) resetPendingRequest() { - sc.serveG.check() - sc.req = requestParam{} -} - -func (sc *serverConn) newWriterAndRequest() (*responseWriter, *http.Request, error) { - sc.serveG.check() - rp := &sc.req - if rp.invalidHeader || 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{rp.stream.id, ErrCodeProtocol} - } - var tlsState *tls.ConnectionState // nil if not scheme https - if rp.scheme == "https" { - tlsState = sc.tlsState - } - authority := rp.authority - if authority == "" { - authority = rp.header.Get("Host") - } - 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, "; ")) - } - bodyOpen := rp.stream.state == stateOpen - body := &requestBody{ - conn: sc, - stream: rp.stream, - needsContinue: needsContinue, - } - // TODO: handle asterisk '*' requests + test - url, err := url.ParseRequestURI(rp.path) - if err != nil { - // TODO: find the right error code? - return nil, nil, StreamError{rp.stream.id, ErrCodeProtocol} - } - req := &http.Request{ - Method: rp.method, - URL: url, - RemoteAddr: sc.remoteAddrStr, - Header: rp.header, - RequestURI: rp.path, - Proto: "HTTP/2.0", - ProtoMajor: 2, - ProtoMinor: 0, - TLS: tlsState, - Host: authority, - Body: body, - } - if bodyOpen { - body.pipe = &pipe{ - b: &fixedBuffer{buf: make([]byte, initialWindowSize)}, // TODO: share/remove XXX - } - - if vv, ok := rp.header["Content-Length"]; ok { - req.ContentLength, _ = strconv.ParseInt(vv[0], 10, 64) - } else { - req.ContentLength = -1 - } - } - - 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 = rp.stream - 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)) { - defer rw.handlerDone() - // TODO: catch panics like net/http.Server - handler(rw, req) -} - -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, "

    HTTP Error 431

    Request Header Field(s) Too Large

    ") -} - -// 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(frameWriteMsg{ - 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(frameWriteMsg{ - 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) { - sc.serveG.checkNotOn() // NOT on - 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(frameWriteMsg{ - 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?") - } -} - -type requestBody struct { - stream *stream - conn *serverConn - closed bool - 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.pipe.CloseWithError(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 { - return 0, io.EOF - } - n, err = b.pipe.Read(p) - if n > 0 { - b.conn.noteBodyReadFromHandler(b.stream, n) - } - 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 - 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 - - 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) } - -// 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) - } - if !rws.sentHeader { - rws.sentHeader = true - var ctype, clen string // implicit ones, if we can calculate it - if rws.handlerDone && rws.snapHeader.Get("Content-Length") == "" { - clen = strconv.Itoa(len(p)) - } - if rws.snapHeader.Get("Content-Type") == "" { - ctype = http.DetectContentType(p) - } - endStream := rws.handlerDone && len(p) == 0 - err = rws.conn.writeHeaders(rws.stream, &writeResHeaders{ - streamID: rws.stream.id, - httpResCode: rws.status, - h: rws.snapHeader, - endStream: endStream, - contentType: ctype, - contentLength: clen, - }) - if err != nil { - return 0, err - } - if endStream { - return 0, nil - } - } - if len(p) == 0 && !rws.handlerDone { - return 0, nil - } - - if err := rws.conn.writeDataFromHandler(rws.stream, p, rws.handlerDone); err != nil { - return 0, err - } - return len(p), nil -} - -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 - go func() { - rws.stream.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 -} - -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 { - 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 migth 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 dataB != nil { - return rws.bw.Write(dataB) - } else { - return rws.bw.WriteString(dataS) - } -} - -func (w *responseWriter) handlerDone() { - rws := w.rws - if rws == nil { - panic("handlerDone called twice") - } - rws.handlerDone = true - w.Flush() - w.rws = nil - responseWriterStatePool.Put(rws) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/server_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/server_test.go deleted file mode 100644 index 1cb00b42..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/server_test.go +++ /dev/null @@ -1,2622 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package http2 - -import ( - "bytes" - "crypto/tls" - "errors" - "flag" - "fmt" - "io" - "io/ioutil" - "log" - "net" - "net/http" - "net/http/httptest" - "os" - "os/exec" - "reflect" - "runtime" - "strconv" - "strings" - "sync" - "sync/atomic" - "testing" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack" -) - -var stderrVerbose = flag.Bool("stderr_verbose", false, "Mirror verbosity to stderr, unbuffered") - -func stderrv() io.Writer { - if *stderrVerbose { - return os.Stderr - } - - return ioutil.Discard -} - -type serverTester struct { - cc net.Conn // client conn - t testing.TB - ts *httptest.Server - fr *Framer - logBuf *bytes.Buffer - logFilter []string // substrings to filter out - scMu sync.Mutex // guards sc - sc *serverConn - - // writing headers: - headerBuf bytes.Buffer - hpackEnc *hpack.Encoder - - // reading frames: - frc chan Frame - frErrc chan error - readTimer *time.Timer -} - -func init() { - testHookOnPanicMu = new(sync.Mutex) -} - -func resetHooks() { - testHookOnPanicMu.Lock() - testHookOnPanic = nil - testHookOnPanicMu.Unlock() -} - -type serverTesterOpt string - -var optOnlyServer = serverTesterOpt("only_server") - -func newServerTester(t testing.TB, handler http.HandlerFunc, opts ...interface{}) *serverTester { - resetHooks() - - logBuf := new(bytes.Buffer) - ts := httptest.NewUnstartedServer(handler) - - tlsConfig := &tls.Config{ - InsecureSkipVerify: true, - // The h2-14 is temporary, until curl is updated. (as used by unit tests - // in Docker) - NextProtos: []string{NextProtoTLS, "h2-14"}, - } - - onlyServer := false - for _, opt := range opts { - switch v := opt.(type) { - case func(*tls.Config): - v(tlsConfig) - case func(*httptest.Server): - v(ts) - case serverTesterOpt: - onlyServer = (v == optOnlyServer) - default: - t.Fatalf("unknown newServerTester option type %T", v) - } - } - - ConfigureServer(ts.Config, &Server{}) - - st := &serverTester{ - t: t, - ts: ts, - logBuf: logBuf, - frc: make(chan Frame, 1), - frErrc: make(chan error, 1), - } - st.hpackEnc = hpack.NewEncoder(&st.headerBuf) - - ts.TLS = ts.Config.TLSConfig // the httptest.Server has its own copy of this TLS config - ts.Config.ErrorLog = log.New(io.MultiWriter(stderrv(), twriter{t: t, st: st}, logBuf), "", log.LstdFlags) - ts.StartTLS() - - if VerboseLogs { - t.Logf("Running test server at: %s", ts.URL) - } - testHookGetServerConn = func(v *serverConn) { - st.scMu.Lock() - defer st.scMu.Unlock() - st.sc = v - st.sc.testHookCh = make(chan func(int)) - } - log.SetOutput(io.MultiWriter(stderrv(), twriter{t: t, st: st})) - if !onlyServer { - cc, err := tls.Dial("tcp", ts.Listener.Addr().String(), tlsConfig) - if err != nil { - t.Fatal(err) - } - st.cc = cc - st.fr = NewFramer(cc, cc) - } - - return st -} - -func (st *serverTester) closeConn() { - st.scMu.Lock() - defer st.scMu.Unlock() - st.sc.conn.Close() -} - -func (st *serverTester) addLogFilter(phrase string) { - st.logFilter = append(st.logFilter, phrase) -} - -func (st *serverTester) stream(id uint32) *stream { - ch := make(chan *stream, 1) - st.sc.testHookCh <- func(int) { - ch <- st.sc.streams[id] - } - return <-ch -} - -func (st *serverTester) streamState(id uint32) streamState { - ch := make(chan streamState, 1) - st.sc.testHookCh <- func(int) { - state, _ := st.sc.state(id) - ch <- state - } - return <-ch -} - -// loopNum reports how many times this conn's select loop has gone around. -func (st *serverTester) loopNum() int { - lastc := make(chan int, 1) - st.sc.testHookCh <- func(loopNum int) { - lastc <- loopNum - } - return <-lastc -} - -// awaitIdle heuristically awaits for the server conn's select loop to be idle. -// The heuristic is that the server connection's serve loop must schedule -// 50 times in a row without any channel sends or receives occuring. -func (st *serverTester) awaitIdle() { - remain := 50 - last := st.loopNum() - for remain > 0 { - n := st.loopNum() - if n == last+1 { - remain-- - } else { - remain = 50 - } - last = n - } -} - -func (st *serverTester) Close() { - st.ts.Close() - if st.cc != nil { - st.cc.Close() - } - log.SetOutput(os.Stderr) -} - -// greet initiates the client's HTTP/2 connection into a state where -// frames may be sent. -func (st *serverTester) greet() { - st.writePreface() - st.writeInitialSettings() - st.wantSettings() - st.writeSettingsAck() - st.wantSettingsAck() -} - -func (st *serverTester) writePreface() { - n, err := st.cc.Write(clientPreface) - if err != nil { - st.t.Fatalf("Error writing client preface: %v", err) - } - if n != len(clientPreface) { - st.t.Fatalf("Writing client preface, wrote %d bytes; want %d", n, len(clientPreface)) - } -} - -func (st *serverTester) writeInitialSettings() { - if err := st.fr.WriteSettings(); err != nil { - st.t.Fatalf("Error writing initial SETTINGS frame from client to server: %v", err) - } -} - -func (st *serverTester) writeSettingsAck() { - if err := st.fr.WriteSettingsAck(); err != nil { - st.t.Fatalf("Error writing ACK of server's SETTINGS: %v", err) - } -} - -func (st *serverTester) writeHeaders(p HeadersFrameParam) { - if err := st.fr.WriteHeaders(p); err != nil { - st.t.Fatalf("Error writing HEADERS: %v", err) - } -} - -func (st *serverTester) encodeHeaderField(k, v string) { - err := st.hpackEnc.WriteField(hpack.HeaderField{Name: k, Value: v}) - if err != nil { - st.t.Fatalf("HPACK encoding error for %q/%q: %v", k, v, err) - } -} - -// encodeHeader encodes headers and returns their HPACK bytes. headers -// must contain an even number of key/value pairs. There may be -// multiple pairs for keys (e.g. "cookie"). The :method, :path, and -// :scheme headers default to GET, / and https. -func (st *serverTester) encodeHeader(headers ...string) []byte { - if len(headers)%2 == 1 { - panic("odd number of kv args") - } - - st.headerBuf.Reset() - - if len(headers) == 0 { - // Fast path, mostly for benchmarks, so test code doesn't pollute - // profiles when we're looking to improve server allocations. - st.encodeHeaderField(":method", "GET") - st.encodeHeaderField(":path", "/") - st.encodeHeaderField(":scheme", "https") - return st.headerBuf.Bytes() - } - - if len(headers) == 2 && headers[0] == ":method" { - // Another fast path for benchmarks. - st.encodeHeaderField(":method", headers[1]) - st.encodeHeaderField(":path", "/") - st.encodeHeaderField(":scheme", "https") - return st.headerBuf.Bytes() - } - - pseudoCount := map[string]int{} - keys := []string{":method", ":path", ":scheme"} - vals := map[string][]string{ - ":method": {"GET"}, - ":path": {"/"}, - ":scheme": {"https"}, - } - for len(headers) > 0 { - k, v := headers[0], headers[1] - headers = headers[2:] - if _, ok := vals[k]; !ok { - keys = append(keys, k) - } - if strings.HasPrefix(k, ":") { - pseudoCount[k]++ - if pseudoCount[k] == 1 { - vals[k] = []string{v} - } else { - // Allows testing of invalid headers w/ dup pseudo fields. - vals[k] = append(vals[k], v) - } - } else { - vals[k] = append(vals[k], v) - } - } - st.headerBuf.Reset() - for _, k := range keys { - for _, v := range vals[k] { - st.encodeHeaderField(k, v) - } - } - return st.headerBuf.Bytes() -} - -// bodylessReq1 writes a HEADERS frames with StreamID 1 and EndStream and EndHeaders set. -func (st *serverTester) bodylessReq1(headers ...string) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader(headers...), - EndStream: true, - EndHeaders: true, - }) -} - -func (st *serverTester) writeData(streamID uint32, endStream bool, data []byte) { - if err := st.fr.WriteData(streamID, endStream, data); err != nil { - st.t.Fatalf("Error writing DATA: %v", err) - } -} - -func (st *serverTester) readFrame() (Frame, error) { - go func() { - fr, err := st.fr.ReadFrame() - if err != nil { - st.frErrc <- err - } else { - st.frc <- fr - } - }() - t := st.readTimer - if t == nil { - t = time.NewTimer(2 * time.Second) - st.readTimer = t - } - t.Reset(2 * time.Second) - defer t.Stop() - select { - case f := <-st.frc: - return f, nil - case err := <-st.frErrc: - return nil, err - case <-t.C: - return nil, errors.New("timeout waiting for frame") - } -} - -func (st *serverTester) wantHeaders() *HeadersFrame { - f, err := st.readFrame() - if err != nil { - st.t.Fatalf("Error while expecting a HEADERS frame: %v", err) - } - hf, ok := f.(*HeadersFrame) - if !ok { - st.t.Fatalf("got a %T; want *HeadersFrame", f) - } - return hf -} - -func (st *serverTester) wantContinuation() *ContinuationFrame { - f, err := st.readFrame() - if err != nil { - st.t.Fatalf("Error while expecting a CONTINUATION frame: %v", err) - } - cf, ok := f.(*ContinuationFrame) - if !ok { - st.t.Fatalf("got a %T; want *ContinuationFrame", f) - } - return cf -} - -func (st *serverTester) wantData() *DataFrame { - f, err := st.readFrame() - if err != nil { - st.t.Fatalf("Error while expecting a DATA frame: %v", err) - } - df, ok := f.(*DataFrame) - if !ok { - st.t.Fatalf("got a %T; want *DataFrame", f) - } - return df -} - -func (st *serverTester) wantSettings() *SettingsFrame { - f, err := st.readFrame() - if err != nil { - st.t.Fatalf("Error while expecting a SETTINGS frame: %v", err) - } - sf, ok := f.(*SettingsFrame) - if !ok { - st.t.Fatalf("got a %T; want *SettingsFrame", f) - } - return sf -} - -func (st *serverTester) wantPing() *PingFrame { - f, err := st.readFrame() - if err != nil { - st.t.Fatalf("Error while expecting a PING frame: %v", err) - } - pf, ok := f.(*PingFrame) - if !ok { - st.t.Fatalf("got a %T; want *PingFrame", f) - } - return pf -} - -func (st *serverTester) wantGoAway() *GoAwayFrame { - f, err := st.readFrame() - if err != nil { - st.t.Fatalf("Error while expecting a GOAWAY frame: %v", err) - } - gf, ok := f.(*GoAwayFrame) - if !ok { - st.t.Fatalf("got a %T; want *GoAwayFrame", f) - } - return gf -} - -func (st *serverTester) wantRSTStream(streamID uint32, errCode ErrCode) { - f, err := st.readFrame() - if err != nil { - st.t.Fatalf("Error while expecting an RSTStream frame: %v", err) - } - rs, ok := f.(*RSTStreamFrame) - if !ok { - st.t.Fatalf("got a %T; want *RSTStreamFrame", f) - } - if rs.FrameHeader.StreamID != streamID { - st.t.Fatalf("RSTStream StreamID = %d; want %d", rs.FrameHeader.StreamID, streamID) - } - if rs.ErrCode != errCode { - st.t.Fatalf("RSTStream ErrCode = %d (%s); want %d (%s)", rs.ErrCode, rs.ErrCode, errCode, errCode) - } -} - -func (st *serverTester) wantWindowUpdate(streamID, incr uint32) { - f, err := st.readFrame() - if err != nil { - st.t.Fatalf("Error while expecting a WINDOW_UPDATE frame: %v", err) - } - wu, ok := f.(*WindowUpdateFrame) - if !ok { - st.t.Fatalf("got a %T; want *WindowUpdateFrame", f) - } - if wu.FrameHeader.StreamID != streamID { - st.t.Fatalf("WindowUpdate StreamID = %d; want %d", wu.FrameHeader.StreamID, streamID) - } - if wu.Increment != incr { - st.t.Fatalf("WindowUpdate increment = %d; want %d", wu.Increment, incr) - } -} - -func (st *serverTester) wantSettingsAck() { - f, err := st.readFrame() - if err != nil { - st.t.Fatal(err) - } - sf, ok := f.(*SettingsFrame) - if !ok { - st.t.Fatalf("Wanting a settings ACK, received a %T", f) - } - if !sf.Header().Flags.Has(FlagSettingsAck) { - st.t.Fatal("Settings Frame didn't have ACK set") - } - -} - -func TestServer(t *testing.T) { - gotReq := make(chan bool, 1) - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Foo", "Bar") - gotReq <- true - }) - defer st.Close() - - covers("3.5", ` - The server connection preface consists of a potentially empty - SETTINGS frame ([SETTINGS]) that MUST be the first frame the - server sends in the HTTP/2 connection. - `) - - st.writePreface() - st.writeInitialSettings() - st.wantSettings() - st.writeSettingsAck() - st.wantSettingsAck() - - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader(), - EndStream: true, // no DATA frames - EndHeaders: true, - }) - - select { - case <-gotReq: - case <-time.After(2 * time.Second): - t.Error("timeout waiting for request") - } -} - -func TestServer_Request_Get(t *testing.T) { - testServerRequest(t, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader("foo-bar", "some-value"), - EndStream: true, // no DATA frames - EndHeaders: true, - }) - }, func(r *http.Request) { - if r.Method != "GET" { - t.Errorf("Method = %q; want GET", r.Method) - } - if r.URL.Path != "/" { - t.Errorf("URL.Path = %q; want /", r.URL.Path) - } - if r.ContentLength != 0 { - t.Errorf("ContentLength = %v; want 0", r.ContentLength) - } - if r.Close { - t.Error("Close = true; want false") - } - if !strings.Contains(r.RemoteAddr, ":") { - t.Errorf("RemoteAddr = %q; want something with a colon", r.RemoteAddr) - } - if r.Proto != "HTTP/2.0" || r.ProtoMajor != 2 || r.ProtoMinor != 0 { - t.Errorf("Proto = %q Major=%v,Minor=%v; want HTTP/2.0", r.Proto, r.ProtoMajor, r.ProtoMinor) - } - wantHeader := http.Header{ - "Foo-Bar": []string{"some-value"}, - } - if !reflect.DeepEqual(r.Header, wantHeader) { - t.Errorf("Header = %#v; want %#v", r.Header, wantHeader) - } - if n, err := r.Body.Read([]byte(" ")); err != io.EOF || n != 0 { - t.Errorf("Read = %d, %v; want 0, EOF", n, err) - } - }) -} - -func TestServer_Request_Get_PathSlashes(t *testing.T) { - testServerRequest(t, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader(":path", "/%2f/"), - EndStream: true, // no DATA frames - EndHeaders: true, - }) - }, func(r *http.Request) { - if r.RequestURI != "/%2f/" { - t.Errorf("RequestURI = %q; want /%%2f/", r.RequestURI) - } - if r.URL.Path != "///" { - t.Errorf("URL.Path = %q; want ///", r.URL.Path) - } - }) -} - -// TODO: add a test with EndStream=true on the HEADERS but setting a -// Content-Length anyway. Should we just omit it and force it to -// zero? - -func TestServer_Request_Post_NoContentLength_EndStream(t *testing.T) { - testServerRequest(t, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader(":method", "POST"), - EndStream: true, - EndHeaders: true, - }) - }, func(r *http.Request) { - if r.Method != "POST" { - t.Errorf("Method = %q; want POST", r.Method) - } - if r.ContentLength != 0 { - t.Errorf("ContentLength = %v; want 0", r.ContentLength) - } - if n, err := r.Body.Read([]byte(" ")); err != io.EOF || n != 0 { - t.Errorf("Read = %d, %v; want 0, EOF", n, err) - } - }) -} - -func TestServer_Request_Post_Body_ImmediateEOF(t *testing.T) { - testBodyContents(t, -1, "", func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader(":method", "POST"), - EndStream: false, // to say DATA frames are coming - EndHeaders: true, - }) - st.writeData(1, true, nil) // just kidding. empty body. - }) -} - -func TestServer_Request_Post_Body_OneData(t *testing.T) { - const content = "Some content" - testBodyContents(t, -1, content, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader(":method", "POST"), - EndStream: false, // to say DATA frames are coming - EndHeaders: true, - }) - st.writeData(1, true, []byte(content)) - }) -} - -func TestServer_Request_Post_Body_TwoData(t *testing.T) { - const content = "Some content" - testBodyContents(t, -1, content, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader(":method", "POST"), - EndStream: false, // to say DATA frames are coming - EndHeaders: true, - }) - st.writeData(1, false, []byte(content[:5])) - st.writeData(1, true, []byte(content[5:])) - }) -} - -func TestServer_Request_Post_Body_ContentLength_Correct(t *testing.T) { - const content = "Some content" - testBodyContents(t, int64(len(content)), content, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader( - ":method", "POST", - "content-length", strconv.Itoa(len(content)), - ), - EndStream: false, // to say DATA frames are coming - EndHeaders: true, - }) - st.writeData(1, true, []byte(content)) - }) -} - -func TestServer_Request_Post_Body_ContentLength_TooLarge(t *testing.T) { - testBodyContentsFail(t, 3, "request declared a Content-Length of 3 but only wrote 2 bytes", - func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader( - ":method", "POST", - "content-length", "3", - ), - EndStream: false, // to say DATA frames are coming - EndHeaders: true, - }) - st.writeData(1, true, []byte("12")) - }) -} - -func TestServer_Request_Post_Body_ContentLength_TooSmall(t *testing.T) { - testBodyContentsFail(t, 4, "sender tried to send more than declared Content-Length of 4 bytes", - func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader( - ":method", "POST", - "content-length", "4", - ), - EndStream: false, // to say DATA frames are coming - EndHeaders: true, - }) - st.writeData(1, true, []byte("12345")) - }) -} - -func testBodyContents(t *testing.T, wantContentLength int64, wantBody string, write func(st *serverTester)) { - testServerRequest(t, write, func(r *http.Request) { - if r.Method != "POST" { - t.Errorf("Method = %q; want POST", r.Method) - } - if r.ContentLength != wantContentLength { - t.Errorf("ContentLength = %v; want %d", r.ContentLength, wantContentLength) - } - all, err := ioutil.ReadAll(r.Body) - if err != nil { - t.Fatal(err) - } - if string(all) != wantBody { - t.Errorf("Read = %q; want %q", all, wantBody) - } - if err := r.Body.Close(); err != nil { - t.Fatalf("Close: %v", err) - } - }) -} - -func testBodyContentsFail(t *testing.T, wantContentLength int64, wantReadError string, write func(st *serverTester)) { - testServerRequest(t, write, func(r *http.Request) { - if r.Method != "POST" { - t.Errorf("Method = %q; want POST", r.Method) - } - if r.ContentLength != wantContentLength { - t.Errorf("ContentLength = %v; want %d", r.ContentLength, wantContentLength) - } - all, err := ioutil.ReadAll(r.Body) - if err == nil { - t.Fatalf("expected an error (%q) reading from the body. Successfully read %q instead.", - wantReadError, all) - } - if !strings.Contains(err.Error(), wantReadError) { - t.Fatalf("Body.Read = %v; want substring %q", err, wantReadError) - } - if err := r.Body.Close(); err != nil { - t.Fatalf("Close: %v", err) - } - }) -} - -// Using a Host header, instead of :authority -func TestServer_Request_Get_Host(t *testing.T) { - const host = "example.com" - testServerRequest(t, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader("host", host), - EndStream: true, - EndHeaders: true, - }) - }, func(r *http.Request) { - if r.Host != host { - t.Errorf("Host = %q; want %q", r.Host, host) - } - }) -} - -// Using an :authority pseudo-header, instead of Host -func TestServer_Request_Get_Authority(t *testing.T) { - const host = "example.com" - testServerRequest(t, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader(":authority", host), - EndStream: true, - EndHeaders: true, - }) - }, func(r *http.Request) { - if r.Host != host { - t.Errorf("Host = %q; want %q", r.Host, host) - } - }) -} - -func TestServer_Request_WithContinuation(t *testing.T) { - wantHeader := http.Header{ - "Foo-One": []string{"value-one"}, - "Foo-Two": []string{"value-two"}, - "Foo-Three": []string{"value-three"}, - } - testServerRequest(t, func(st *serverTester) { - fullHeaders := st.encodeHeader( - "foo-one", "value-one", - "foo-two", "value-two", - "foo-three", "value-three", - ) - remain := fullHeaders - chunks := 0 - for len(remain) > 0 { - const maxChunkSize = 5 - chunk := remain - if len(chunk) > maxChunkSize { - chunk = chunk[:maxChunkSize] - } - remain = remain[len(chunk):] - - if chunks == 0 { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: chunk, - EndStream: true, // no DATA frames - EndHeaders: false, // we'll have continuation frames - }) - } else { - err := st.fr.WriteContinuation(1, len(remain) == 0, chunk) - if err != nil { - t.Fatal(err) - } - } - chunks++ - } - if chunks < 2 { - t.Fatal("too few chunks") - } - }, func(r *http.Request) { - if !reflect.DeepEqual(r.Header, wantHeader) { - t.Errorf("Header = %#v; want %#v", r.Header, wantHeader) - } - }) -} - -// Concatenated cookie headers. ("8.1.2.5 Compressing the Cookie Header Field") -func TestServer_Request_CookieConcat(t *testing.T) { - const host = "example.com" - testServerRequest(t, func(st *serverTester) { - st.bodylessReq1( - ":authority", host, - "cookie", "a=b", - "cookie", "c=d", - "cookie", "e=f", - ) - }, func(r *http.Request) { - const want = "a=b; c=d; e=f" - if got := r.Header.Get("Cookie"); got != want { - t.Errorf("Cookie = %q; want %q", got, want) - } - }) -} - -func TestServer_Request_Reject_CapitalHeader(t *testing.T) { - testRejectRequest(t, func(st *serverTester) { st.bodylessReq1("UPPER", "v") }) -} - -func TestServer_Request_Reject_Pseudo_Missing_method(t *testing.T) { - testRejectRequest(t, func(st *serverTester) { st.bodylessReq1(":method", "") }) -} - -func TestServer_Request_Reject_Pseudo_ExactlyOne(t *testing.T) { - // 8.1.2.3 Request Pseudo-Header Fields - // "All HTTP/2 requests MUST include exactly one valid value" ... - testRejectRequest(t, func(st *serverTester) { - st.addLogFilter("duplicate pseudo-header") - st.bodylessReq1(":method", "GET", ":method", "POST") - }) -} - -func TestServer_Request_Reject_Pseudo_AfterRegular(t *testing.T) { - // 8.1.2.3 Request Pseudo-Header Fields - // "All pseudo-header fields MUST appear in the header block - // before regular header fields. Any request or response that - // contains a pseudo-header field that appears in a header - // block after a regular header field MUST be treated as - // malformed (Section 8.1.2.6)." - testRejectRequest(t, func(st *serverTester) { - st.addLogFilter("pseudo-header after regular header") - var buf bytes.Buffer - enc := hpack.NewEncoder(&buf) - enc.WriteField(hpack.HeaderField{Name: ":method", Value: "GET"}) - enc.WriteField(hpack.HeaderField{Name: "regular", Value: "foobar"}) - enc.WriteField(hpack.HeaderField{Name: ":path", Value: "/"}) - enc.WriteField(hpack.HeaderField{Name: ":scheme", Value: "https"}) - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: buf.Bytes(), - EndStream: true, - EndHeaders: true, - }) - }) -} - -func TestServer_Request_Reject_Pseudo_Missing_path(t *testing.T) { - testRejectRequest(t, func(st *serverTester) { st.bodylessReq1(":path", "") }) -} - -func TestServer_Request_Reject_Pseudo_Missing_scheme(t *testing.T) { - testRejectRequest(t, func(st *serverTester) { st.bodylessReq1(":scheme", "") }) -} - -func TestServer_Request_Reject_Pseudo_scheme_invalid(t *testing.T) { - testRejectRequest(t, func(st *serverTester) { st.bodylessReq1(":scheme", "bogus") }) -} - -func TestServer_Request_Reject_Pseudo_Unknown(t *testing.T) { - testRejectRequest(t, func(st *serverTester) { - st.addLogFilter(`invalid pseudo-header ":unknown_thing"`) - st.bodylessReq1(":unknown_thing", "") - }) -} - -func testRejectRequest(t *testing.T, send func(*serverTester)) { - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - t.Fatal("server request made it to handler; should've been rejected") - }) - defer st.Close() - - st.greet() - send(st) - st.wantRSTStream(1, ErrCodeProtocol) -} - -func TestServer_Ping(t *testing.T) { - st := newServerTester(t, nil) - defer st.Close() - st.greet() - - // Server should ignore this one, since it has ACK set. - ackPingData := [8]byte{1, 2, 4, 8, 16, 32, 64, 128} - if err := st.fr.WritePing(true, ackPingData); err != nil { - t.Fatal(err) - } - - // But the server should reply to this one, since ACK is false. - pingData := [8]byte{1, 2, 3, 4, 5, 6, 7, 8} - if err := st.fr.WritePing(false, pingData); err != nil { - t.Fatal(err) - } - - pf := st.wantPing() - if !pf.Flags.Has(FlagPingAck) { - t.Error("response ping doesn't have ACK set") - } - if pf.Data != pingData { - t.Errorf("response ping has data %q; want %q", pf.Data, pingData) - } -} - -func TestServer_RejectsLargeFrames(t *testing.T) { - st := newServerTester(t, nil) - defer st.Close() - st.greet() - - // Write too large of a frame (too large by one byte) - // We ignore the return value because it's expected that the server - // will only read the first 9 bytes (the headre) and then disconnect. - st.fr.WriteRawFrame(0xff, 0, 0, make([]byte, defaultMaxReadFrameSize+1)) - - gf := st.wantGoAway() - if gf.ErrCode != ErrCodeFrameSize { - t.Errorf("GOAWAY err = %v; want %v", gf.ErrCode, ErrCodeFrameSize) - } -} - -func TestServer_Handler_Sends_WindowUpdate(t *testing.T) { - puppet := newHandlerPuppet() - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - puppet.act(w, r) - }) - defer st.Close() - defer puppet.done() - - st.greet() - - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader(":method", "POST"), - EndStream: false, // data coming - EndHeaders: true, - }) - st.writeData(1, false, []byte("abcdef")) - puppet.do(readBodyHandler(t, "abc")) - st.wantWindowUpdate(0, 3) - st.wantWindowUpdate(1, 3) - - puppet.do(readBodyHandler(t, "def")) - st.wantWindowUpdate(0, 3) - st.wantWindowUpdate(1, 3) - - st.writeData(1, true, []byte("ghijkl")) // END_STREAM here - puppet.do(readBodyHandler(t, "ghi")) - puppet.do(readBodyHandler(t, "jkl")) - st.wantWindowUpdate(0, 3) - st.wantWindowUpdate(0, 3) // no more stream-level, since END_STREAM -} - -func TestServer_Send_GoAway_After_Bogus_WindowUpdate(t *testing.T) { - st := newServerTester(t, nil) - defer st.Close() - st.greet() - if err := st.fr.WriteWindowUpdate(0, 1<<31-1); err != nil { - t.Fatal(err) - } - gf := st.wantGoAway() - if gf.ErrCode != ErrCodeFlowControl { - t.Errorf("GOAWAY err = %v; want %v", gf.ErrCode, ErrCodeFlowControl) - } - if gf.LastStreamID != 0 { - t.Errorf("GOAWAY last stream ID = %v; want %v", gf.LastStreamID, 0) - } -} - -func TestServer_Send_RstStream_After_Bogus_WindowUpdate(t *testing.T) { - inHandler := make(chan bool) - blockHandler := make(chan bool) - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - inHandler <- true - <-blockHandler - }) - defer st.Close() - defer close(blockHandler) - st.greet() - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, - BlockFragment: st.encodeHeader(":method", "POST"), - EndStream: false, // keep it open - EndHeaders: true, - }) - <-inHandler - // Send a bogus window update: - if err := st.fr.WriteWindowUpdate(1, 1<<31-1); err != nil { - t.Fatal(err) - } - st.wantRSTStream(1, ErrCodeFlowControl) -} - -// testServerPostUnblock sends a hanging POST with unsent data to handler, -// then runs fn once in the handler, and verifies that the error returned from -// handler is acceptable. It fails if takes over 5 seconds for handler to exit. -func testServerPostUnblock(t *testing.T, - handler func(http.ResponseWriter, *http.Request) error, - fn func(*serverTester), - checkErr func(error), - otherHeaders ...string) { - inHandler := make(chan bool) - errc := make(chan error, 1) - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - inHandler <- true - errc <- handler(w, r) - }) - st.greet() - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, - BlockFragment: st.encodeHeader(append([]string{":method", "POST"}, otherHeaders...)...), - EndStream: false, // keep it open - EndHeaders: true, - }) - <-inHandler - fn(st) - select { - case err := <-errc: - if checkErr != nil { - checkErr(err) - } - case <-time.After(5 * time.Second): - t.Fatal("timeout waiting for Handler to return") - } - st.Close() -} - -func TestServer_RSTStream_Unblocks_Read(t *testing.T) { - testServerPostUnblock(t, - func(w http.ResponseWriter, r *http.Request) (err error) { - _, err = r.Body.Read(make([]byte, 1)) - return - }, - func(st *serverTester) { - if err := st.fr.WriteRSTStream(1, ErrCodeCancel); err != nil { - t.Fatal(err) - } - }, - func(err error) { - if err == nil { - t.Error("unexpected nil error from Request.Body.Read") - } - }, - ) -} - -func TestServer_RSTStream_Unblocks_Header_Write(t *testing.T) { - // Run this test a bunch, because it doesn't always - // deadlock. But with a bunch, it did. - n := 50 - if testing.Short() { - n = 5 - } - for i := 0; i < n; i++ { - testServer_RSTStream_Unblocks_Header_Write(t) - } -} - -func testServer_RSTStream_Unblocks_Header_Write(t *testing.T) { - inHandler := make(chan bool, 1) - unblockHandler := make(chan bool, 1) - headerWritten := make(chan bool, 1) - wroteRST := make(chan bool, 1) - - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - inHandler <- true - <-wroteRST - w.Header().Set("foo", "bar") - w.WriteHeader(200) - w.(http.Flusher).Flush() - headerWritten <- true - <-unblockHandler - }) - defer st.Close() - - st.greet() - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, - BlockFragment: st.encodeHeader(":method", "POST"), - EndStream: false, // keep it open - EndHeaders: true, - }) - <-inHandler - if err := st.fr.WriteRSTStream(1, ErrCodeCancel); err != nil { - t.Fatal(err) - } - wroteRST <- true - st.awaitIdle() - select { - case <-headerWritten: - case <-time.After(2 * time.Second): - t.Error("timeout waiting for header write") - } - unblockHandler <- true -} - -func TestServer_DeadConn_Unblocks_Read(t *testing.T) { - testServerPostUnblock(t, - func(w http.ResponseWriter, r *http.Request) (err error) { - _, err = r.Body.Read(make([]byte, 1)) - return - }, - func(st *serverTester) { st.cc.Close() }, - func(err error) { - if err == nil { - t.Error("unexpected nil error from Request.Body.Read") - } - }, - ) -} - -var blockUntilClosed = func(w http.ResponseWriter, r *http.Request) error { - <-w.(http.CloseNotifier).CloseNotify() - return nil -} - -func TestServer_CloseNotify_After_RSTStream(t *testing.T) { - testServerPostUnblock(t, blockUntilClosed, func(st *serverTester) { - if err := st.fr.WriteRSTStream(1, ErrCodeCancel); err != nil { - t.Fatal(err) - } - }, nil) -} - -func TestServer_CloseNotify_After_ConnClose(t *testing.T) { - testServerPostUnblock(t, blockUntilClosed, func(st *serverTester) { st.cc.Close() }, nil) -} - -// that CloseNotify unblocks after a stream error due to the client's -// problem that's unrelated to them explicitly canceling it (which is -// TestServer_CloseNotify_After_RSTStream above) -func TestServer_CloseNotify_After_StreamError(t *testing.T) { - testServerPostUnblock(t, blockUntilClosed, func(st *serverTester) { - // data longer than declared Content-Length => stream error - st.writeData(1, true, []byte("1234")) - }, nil, "content-length", "3") -} - -func TestServer_StateTransitions(t *testing.T) { - var st *serverTester - inHandler := make(chan bool) - writeData := make(chan bool) - leaveHandler := make(chan bool) - st = newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - inHandler <- true - if st.stream(1) == nil { - t.Errorf("nil stream 1 in handler") - } - if got, want := st.streamState(1), stateOpen; got != want { - t.Errorf("in handler, state is %v; want %v", got, want) - } - writeData <- true - if n, err := r.Body.Read(make([]byte, 1)); n != 0 || err != io.EOF { - t.Errorf("body read = %d, %v; want 0, EOF", n, err) - } - if got, want := st.streamState(1), stateHalfClosedRemote; got != want { - t.Errorf("in handler, state is %v; want %v", got, want) - } - - <-leaveHandler - }) - st.greet() - if st.stream(1) != nil { - t.Fatal("stream 1 should be empty") - } - if got := st.streamState(1); got != stateIdle { - t.Fatalf("stream 1 should be idle; got %v", got) - } - - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, - BlockFragment: st.encodeHeader(":method", "POST"), - EndStream: false, // keep it open - EndHeaders: true, - }) - <-inHandler - <-writeData - st.writeData(1, true, nil) - - leaveHandler <- true - hf := st.wantHeaders() - if !hf.StreamEnded() { - t.Fatal("expected END_STREAM flag") - } - - if got, want := st.streamState(1), stateClosed; got != want { - t.Errorf("at end, state is %v; want %v", got, want) - } - if st.stream(1) != nil { - t.Fatal("at end, stream 1 should be gone") - } -} - -// test HEADERS w/o EndHeaders + another HEADERS (should get rejected) -func TestServer_Rejects_HeadersNoEnd_Then_Headers(t *testing.T) { - testServerRejects(t, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, - BlockFragment: st.encodeHeader(), - EndStream: true, - EndHeaders: false, - }) - st.writeHeaders(HeadersFrameParam{ // Not a continuation. - StreamID: 3, // different stream. - BlockFragment: st.encodeHeader(), - EndStream: true, - EndHeaders: true, - }) - }) -} - -// test HEADERS w/o EndHeaders + PING (should get rejected) -func TestServer_Rejects_HeadersNoEnd_Then_Ping(t *testing.T) { - testServerRejects(t, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, - BlockFragment: st.encodeHeader(), - EndStream: true, - EndHeaders: false, - }) - if err := st.fr.WritePing(false, [8]byte{}); err != nil { - t.Fatal(err) - } - }) -} - -// test HEADERS w/ EndHeaders + a continuation HEADERS (should get rejected) -func TestServer_Rejects_HeadersEnd_Then_Continuation(t *testing.T) { - testServerRejects(t, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, - BlockFragment: st.encodeHeader(), - EndStream: true, - EndHeaders: true, - }) - st.wantHeaders() - if err := st.fr.WriteContinuation(1, true, encodeHeaderNoImplicit(t, "foo", "bar")); err != nil { - t.Fatal(err) - } - }) -} - -// test HEADERS w/o EndHeaders + a continuation HEADERS on wrong stream ID -func TestServer_Rejects_HeadersNoEnd_Then_ContinuationWrongStream(t *testing.T) { - testServerRejects(t, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, - BlockFragment: st.encodeHeader(), - EndStream: true, - EndHeaders: false, - }) - if err := st.fr.WriteContinuation(3, true, encodeHeaderNoImplicit(t, "foo", "bar")); err != nil { - t.Fatal(err) - } - }) -} - -// No HEADERS on stream 0. -func TestServer_Rejects_Headers0(t *testing.T) { - testServerRejects(t, func(st *serverTester) { - st.fr.AllowIllegalWrites = true - st.writeHeaders(HeadersFrameParam{ - StreamID: 0, - BlockFragment: st.encodeHeader(), - EndStream: true, - EndHeaders: true, - }) - }) -} - -// No CONTINUATION on stream 0. -func TestServer_Rejects_Continuation0(t *testing.T) { - testServerRejects(t, func(st *serverTester) { - st.fr.AllowIllegalWrites = true - if err := st.fr.WriteContinuation(0, true, st.encodeHeader()); err != nil { - t.Fatal(err) - } - }) -} - -func TestServer_Rejects_PushPromise(t *testing.T) { - testServerRejects(t, func(st *serverTester) { - pp := PushPromiseParam{ - StreamID: 1, - PromiseID: 3, - } - if err := st.fr.WritePushPromise(pp); err != nil { - t.Fatal(err) - } - }) -} - -// testServerRejects tests that the server hangs up with a GOAWAY -// frame and a server close after the client does something -// deserving a CONNECTION_ERROR. -func testServerRejects(t *testing.T, writeReq func(*serverTester)) { - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) {}) - st.addLogFilter("connection error: PROTOCOL_ERROR") - defer st.Close() - st.greet() - writeReq(st) - - st.wantGoAway() - errc := make(chan error, 1) - go func() { - fr, err := st.fr.ReadFrame() - if err == nil { - err = fmt.Errorf("got frame of type %T", fr) - } - errc <- err - }() - select { - case err := <-errc: - if err != io.EOF { - t.Errorf("ReadFrame = %v; want io.EOF", err) - } - case <-time.After(2 * time.Second): - t.Error("timeout waiting for disconnect") - } -} - -// testServerRequest sets up an idle HTTP/2 connection and lets you -// write a single request with writeReq, and then verify that the -// *http.Request is built correctly in checkReq. -func testServerRequest(t *testing.T, writeReq func(*serverTester), checkReq func(*http.Request)) { - gotReq := make(chan bool, 1) - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - if r.Body == nil { - t.Fatal("nil Body") - } - checkReq(r) - gotReq <- true - }) - defer st.Close() - - st.greet() - writeReq(st) - - select { - case <-gotReq: - case <-time.After(2 * time.Second): - t.Error("timeout waiting for request") - } -} - -func getSlash(st *serverTester) { st.bodylessReq1() } - -func TestServer_Response_NoData(t *testing.T) { - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - // Nothing. - return nil - }, func(st *serverTester) { - getSlash(st) - hf := st.wantHeaders() - if !hf.StreamEnded() { - t.Fatal("want END_STREAM flag") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - }) -} - -func TestServer_Response_NoData_Header_FooBar(t *testing.T) { - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - w.Header().Set("Foo-Bar", "some-value") - return nil - }, func(st *serverTester) { - getSlash(st) - hf := st.wantHeaders() - if !hf.StreamEnded() { - t.Fatal("want END_STREAM flag") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - goth := decodeHeader(t, hf.HeaderBlockFragment()) - wanth := [][2]string{ - {":status", "200"}, - {"foo-bar", "some-value"}, - {"content-type", "text/plain; charset=utf-8"}, - {"content-length", "0"}, - } - if !reflect.DeepEqual(goth, wanth) { - t.Errorf("Got headers %v; want %v", goth, wanth) - } - }) -} - -func TestServer_Response_Data_Sniff_DoesntOverride(t *testing.T) { - const msg = "this is HTML." - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - w.Header().Set("Content-Type", "foo/bar") - io.WriteString(w, msg) - return nil - }, func(st *serverTester) { - getSlash(st) - hf := st.wantHeaders() - if hf.StreamEnded() { - t.Fatal("don't want END_STREAM, expecting data") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - goth := decodeHeader(t, hf.HeaderBlockFragment()) - wanth := [][2]string{ - {":status", "200"}, - {"content-type", "foo/bar"}, - {"content-length", strconv.Itoa(len(msg))}, - } - if !reflect.DeepEqual(goth, wanth) { - t.Errorf("Got headers %v; want %v", goth, wanth) - } - df := st.wantData() - if !df.StreamEnded() { - t.Error("expected DATA to have END_STREAM flag") - } - if got := string(df.Data()); got != msg { - t.Errorf("got DATA %q; want %q", got, msg) - } - }) -} - -func TestServer_Response_TransferEncoding_chunked(t *testing.T) { - const msg = "hi" - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - w.Header().Set("Transfer-Encoding", "chunked") // should be stripped - io.WriteString(w, msg) - return nil - }, func(st *serverTester) { - getSlash(st) - hf := st.wantHeaders() - goth := decodeHeader(t, hf.HeaderBlockFragment()) - wanth := [][2]string{ - {":status", "200"}, - {"content-type", "text/plain; charset=utf-8"}, - {"content-length", strconv.Itoa(len(msg))}, - } - if !reflect.DeepEqual(goth, wanth) { - t.Errorf("Got headers %v; want %v", goth, wanth) - } - }) -} - -// Header accessed only after the initial write. -func TestServer_Response_Data_IgnoreHeaderAfterWrite_After(t *testing.T) { - const msg = "this is HTML." - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - io.WriteString(w, msg) - w.Header().Set("foo", "should be ignored") - return nil - }, func(st *serverTester) { - getSlash(st) - hf := st.wantHeaders() - if hf.StreamEnded() { - t.Fatal("unexpected END_STREAM") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - goth := decodeHeader(t, hf.HeaderBlockFragment()) - wanth := [][2]string{ - {":status", "200"}, - {"content-type", "text/html; charset=utf-8"}, - {"content-length", strconv.Itoa(len(msg))}, - } - if !reflect.DeepEqual(goth, wanth) { - t.Errorf("Got headers %v; want %v", goth, wanth) - } - }) -} - -// Header accessed before the initial write and later mutated. -func TestServer_Response_Data_IgnoreHeaderAfterWrite_Overwrite(t *testing.T) { - const msg = "this is HTML." - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - w.Header().Set("foo", "proper value") - io.WriteString(w, msg) - w.Header().Set("foo", "should be ignored") - return nil - }, func(st *serverTester) { - getSlash(st) - hf := st.wantHeaders() - if hf.StreamEnded() { - t.Fatal("unexpected END_STREAM") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - goth := decodeHeader(t, hf.HeaderBlockFragment()) - wanth := [][2]string{ - {":status", "200"}, - {"foo", "proper value"}, - {"content-type", "text/html; charset=utf-8"}, - {"content-length", strconv.Itoa(len(msg))}, - } - if !reflect.DeepEqual(goth, wanth) { - t.Errorf("Got headers %v; want %v", goth, wanth) - } - }) -} - -func TestServer_Response_Data_SniffLenType(t *testing.T) { - const msg = "this is HTML." - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - io.WriteString(w, msg) - return nil - }, func(st *serverTester) { - getSlash(st) - hf := st.wantHeaders() - if hf.StreamEnded() { - t.Fatal("don't want END_STREAM, expecting data") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - goth := decodeHeader(t, hf.HeaderBlockFragment()) - wanth := [][2]string{ - {":status", "200"}, - {"content-type", "text/html; charset=utf-8"}, - {"content-length", strconv.Itoa(len(msg))}, - } - if !reflect.DeepEqual(goth, wanth) { - t.Errorf("Got headers %v; want %v", goth, wanth) - } - df := st.wantData() - if !df.StreamEnded() { - t.Error("expected DATA to have END_STREAM flag") - } - if got := string(df.Data()); got != msg { - t.Errorf("got DATA %q; want %q", got, msg) - } - }) -} - -func TestServer_Response_Header_Flush_MidWrite(t *testing.T) { - const msg = "this is HTML" - const msg2 = ", and this is the next chunk" - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - io.WriteString(w, msg) - w.(http.Flusher).Flush() - io.WriteString(w, msg2) - return nil - }, func(st *serverTester) { - getSlash(st) - hf := st.wantHeaders() - if hf.StreamEnded() { - t.Fatal("unexpected END_STREAM flag") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - goth := decodeHeader(t, hf.HeaderBlockFragment()) - wanth := [][2]string{ - {":status", "200"}, - {"content-type", "text/html; charset=utf-8"}, // sniffed - // and no content-length - } - if !reflect.DeepEqual(goth, wanth) { - t.Errorf("Got headers %v; want %v", goth, wanth) - } - { - df := st.wantData() - if df.StreamEnded() { - t.Error("unexpected END_STREAM flag") - } - if got := string(df.Data()); got != msg { - t.Errorf("got DATA %q; want %q", got, msg) - } - } - { - df := st.wantData() - if !df.StreamEnded() { - t.Error("wanted END_STREAM flag on last data chunk") - } - if got := string(df.Data()); got != msg2 { - t.Errorf("got DATA %q; want %q", got, msg2) - } - } - }) -} - -func TestServer_Response_LargeWrite(t *testing.T) { - const size = 1 << 20 - const maxFrameSize = 16 << 10 - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - n, err := w.Write(bytes.Repeat([]byte("a"), size)) - if err != nil { - return fmt.Errorf("Write error: %v", err) - } - if n != size { - return fmt.Errorf("wrong size %d from Write", n) - } - return nil - }, func(st *serverTester) { - if err := st.fr.WriteSettings( - Setting{SettingInitialWindowSize, 0}, - Setting{SettingMaxFrameSize, maxFrameSize}, - ); err != nil { - t.Fatal(err) - } - st.wantSettingsAck() - - getSlash(st) // make the single request - - // Give the handler quota to write: - if err := st.fr.WriteWindowUpdate(1, size); err != nil { - t.Fatal(err) - } - // Give the handler quota to write to connection-level - // window as well - if err := st.fr.WriteWindowUpdate(0, size); err != nil { - t.Fatal(err) - } - hf := st.wantHeaders() - if hf.StreamEnded() { - t.Fatal("unexpected END_STREAM flag") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - goth := decodeHeader(t, hf.HeaderBlockFragment()) - wanth := [][2]string{ - {":status", "200"}, - {"content-type", "text/plain; charset=utf-8"}, // sniffed - // and no content-length - } - if !reflect.DeepEqual(goth, wanth) { - t.Errorf("Got headers %v; want %v", goth, wanth) - } - var bytes, frames int - for { - df := st.wantData() - bytes += len(df.Data()) - frames++ - for _, b := range df.Data() { - if b != 'a' { - t.Fatal("non-'a' byte seen in DATA") - } - } - if df.StreamEnded() { - break - } - } - if bytes != size { - t.Errorf("Got %d bytes; want %d", bytes, size) - } - if want := int(size / maxFrameSize); frames < want || frames > want*2 { - t.Errorf("Got %d frames; want %d", frames, size) - } - }) -} - -// Test that the handler can't write more than the client allows -func TestServer_Response_LargeWrite_FlowControlled(t *testing.T) { - const size = 1 << 20 - const maxFrameSize = 16 << 10 - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - w.(http.Flusher).Flush() - n, err := w.Write(bytes.Repeat([]byte("a"), size)) - if err != nil { - return fmt.Errorf("Write error: %v", err) - } - if n != size { - return fmt.Errorf("wrong size %d from Write", n) - } - return nil - }, func(st *serverTester) { - // Set the window size to something explicit for this test. - // It's also how much initial data we expect. - const initWindowSize = 123 - if err := st.fr.WriteSettings( - Setting{SettingInitialWindowSize, initWindowSize}, - Setting{SettingMaxFrameSize, maxFrameSize}, - ); err != nil { - t.Fatal(err) - } - st.wantSettingsAck() - - getSlash(st) // make the single request - defer func() { st.fr.WriteRSTStream(1, ErrCodeCancel) }() - - hf := st.wantHeaders() - if hf.StreamEnded() { - t.Fatal("unexpected END_STREAM flag") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - - df := st.wantData() - if got := len(df.Data()); got != initWindowSize { - t.Fatalf("Initial window size = %d but got DATA with %d bytes", initWindowSize, got) - } - - for _, quota := range []int{1, 13, 127} { - if err := st.fr.WriteWindowUpdate(1, uint32(quota)); err != nil { - t.Fatal(err) - } - df := st.wantData() - if int(quota) != len(df.Data()) { - t.Fatalf("read %d bytes after giving %d quota", len(df.Data()), quota) - } - } - - if err := st.fr.WriteRSTStream(1, ErrCodeCancel); err != nil { - t.Fatal(err) - } - }) -} - -// Test that the handler blocked in a Write is unblocked if the server sends a RST_STREAM. -func TestServer_Response_RST_Unblocks_LargeWrite(t *testing.T) { - const size = 1 << 20 - const maxFrameSize = 16 << 10 - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - w.(http.Flusher).Flush() - errc := make(chan error, 1) - go func() { - _, err := w.Write(bytes.Repeat([]byte("a"), size)) - errc <- err - }() - select { - case err := <-errc: - if err == nil { - return errors.New("unexpected nil error from Write in handler") - } - return nil - case <-time.After(2 * time.Second): - return errors.New("timeout waiting for Write in handler") - } - }, func(st *serverTester) { - if err := st.fr.WriteSettings( - Setting{SettingInitialWindowSize, 0}, - Setting{SettingMaxFrameSize, maxFrameSize}, - ); err != nil { - t.Fatal(err) - } - st.wantSettingsAck() - - getSlash(st) // make the single request - - hf := st.wantHeaders() - if hf.StreamEnded() { - t.Fatal("unexpected END_STREAM flag") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - - if err := st.fr.WriteRSTStream(1, ErrCodeCancel); err != nil { - t.Fatal(err) - } - }) -} - -func TestServer_Response_Empty_Data_Not_FlowControlled(t *testing.T) { - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - w.(http.Flusher).Flush() - // Nothing; send empty DATA - return nil - }, func(st *serverTester) { - // Handler gets no data quota: - if err := st.fr.WriteSettings(Setting{SettingInitialWindowSize, 0}); err != nil { - t.Fatal(err) - } - st.wantSettingsAck() - - getSlash(st) // make the single request - - hf := st.wantHeaders() - if hf.StreamEnded() { - t.Fatal("unexpected END_STREAM flag") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - - df := st.wantData() - if got := len(df.Data()); got != 0 { - t.Fatalf("unexpected %d DATA bytes; want 0", got) - } - if !df.StreamEnded() { - t.Fatal("DATA didn't have END_STREAM") - } - }) -} - -func TestServer_Response_Automatic100Continue(t *testing.T) { - const msg = "foo" - const reply = "bar" - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - if v := r.Header.Get("Expect"); v != "" { - t.Errorf("Expect header = %q; want empty", v) - } - buf := make([]byte, len(msg)) - // This read should trigger the 100-continue being sent. - if n, err := io.ReadFull(r.Body, buf); err != nil || n != len(msg) || string(buf) != msg { - return fmt.Errorf("ReadFull = %q, %v; want %q, nil", buf[:n], err, msg) - } - _, err := io.WriteString(w, reply) - return err - }, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, // clients send odd numbers - BlockFragment: st.encodeHeader(":method", "POST", "expect", "100-continue"), - EndStream: false, - EndHeaders: true, - }) - hf := st.wantHeaders() - if hf.StreamEnded() { - t.Fatal("unexpected END_STREAM flag") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - goth := decodeHeader(t, hf.HeaderBlockFragment()) - wanth := [][2]string{ - {":status", "100"}, - } - if !reflect.DeepEqual(goth, wanth) { - t.Fatalf("Got headers %v; want %v", goth, wanth) - } - - // Okay, they sent status 100, so we can send our - // gigantic and/or sensitive "foo" payload now. - st.writeData(1, true, []byte(msg)) - - st.wantWindowUpdate(0, uint32(len(msg))) - - hf = st.wantHeaders() - if hf.StreamEnded() { - t.Fatal("expected data to follow") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - goth = decodeHeader(t, hf.HeaderBlockFragment()) - wanth = [][2]string{ - {":status", "200"}, - {"content-type", "text/plain; charset=utf-8"}, - {"content-length", strconv.Itoa(len(reply))}, - } - if !reflect.DeepEqual(goth, wanth) { - t.Errorf("Got headers %v; want %v", goth, wanth) - } - - df := st.wantData() - if string(df.Data()) != reply { - t.Errorf("Client read %q; want %q", df.Data(), reply) - } - if !df.StreamEnded() { - t.Errorf("expect data stream end") - } - }) -} - -func TestServer_HandlerWriteErrorOnDisconnect(t *testing.T) { - errc := make(chan error, 1) - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - p := []byte("some data.\n") - for { - _, err := w.Write(p) - if err != nil { - errc <- err - return nil - } - } - }, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, - BlockFragment: st.encodeHeader(), - EndStream: false, - EndHeaders: true, - }) - hf := st.wantHeaders() - if hf.StreamEnded() { - t.Fatal("unexpected END_STREAM flag") - } - if !hf.HeadersEnded() { - t.Fatal("want END_HEADERS flag") - } - // Close the connection and wait for the handler to (hopefully) notice. - st.cc.Close() - select { - case <-errc: - case <-time.After(5 * time.Second): - t.Error("timeout") - } - }) -} - -func TestServer_Rejects_Too_Many_Streams(t *testing.T) { - const testPath = "/some/path" - - inHandler := make(chan uint32) - leaveHandler := make(chan bool) - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - id := w.(*responseWriter).rws.stream.id - inHandler <- id - if id == 1+(defaultMaxStreams+1)*2 && r.URL.Path != testPath { - t.Errorf("decoded final path as %q; want %q", r.URL.Path, testPath) - } - <-leaveHandler - }) - defer st.Close() - st.greet() - nextStreamID := uint32(1) - streamID := func() uint32 { - defer func() { nextStreamID += 2 }() - return nextStreamID - } - sendReq := func(id uint32, headers ...string) { - st.writeHeaders(HeadersFrameParam{ - StreamID: id, - BlockFragment: st.encodeHeader(headers...), - EndStream: true, - EndHeaders: true, - }) - } - for i := 0; i < defaultMaxStreams; i++ { - sendReq(streamID()) - <-inHandler - } - defer func() { - for i := 0; i < defaultMaxStreams; i++ { - leaveHandler <- true - } - }() - - // And this one should cross the limit: - // (It's also sent as a CONTINUATION, to verify we still track the decoder context, - // even if we're rejecting it) - rejectID := streamID() - headerBlock := st.encodeHeader(":path", testPath) - frag1, frag2 := headerBlock[:3], headerBlock[3:] - st.writeHeaders(HeadersFrameParam{ - StreamID: rejectID, - BlockFragment: frag1, - EndStream: true, - EndHeaders: false, // CONTINUATION coming - }) - if err := st.fr.WriteContinuation(rejectID, true, frag2); err != nil { - t.Fatal(err) - } - st.wantRSTStream(rejectID, ErrCodeProtocol) - - // But let a handler finish: - leaveHandler <- true - st.wantHeaders() - - // And now another stream should be able to start: - goodID := streamID() - sendReq(goodID, ":path", testPath) - select { - case got := <-inHandler: - if got != goodID { - t.Errorf("Got stream %d; want %d", got, goodID) - } - case <-time.After(3 * time.Second): - t.Error("timeout waiting for handler") - } -} - -// So many response headers that the server needs to use CONTINUATION frames: -func TestServer_Response_ManyHeaders_With_Continuation(t *testing.T) { - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - h := w.Header() - for i := 0; i < 5000; i++ { - h.Set(fmt.Sprintf("x-header-%d", i), fmt.Sprintf("x-value-%d", i)) - } - return nil - }, func(st *serverTester) { - getSlash(st) - hf := st.wantHeaders() - if hf.HeadersEnded() { - t.Fatal("got unwanted END_HEADERS flag") - } - n := 0 - for { - n++ - cf := st.wantContinuation() - if cf.HeadersEnded() { - break - } - } - if n < 5 { - t.Errorf("Only got %d CONTINUATION frames; expected 5+ (currently 6)", n) - } - }) -} - -// This previously crashed (reported by Mathieu Lonjaret as observed -// while using Camlistore) because we got a DATA frame from the client -// after the handler exited and our logic at the time was wrong, -// keeping a stream in the map in stateClosed, which tickled an -// invariant check later when we tried to remove that stream (via -// defer sc.closeAllStreamsOnConnClose) when the serverConn serve loop -// ended. -func TestServer_NoCrash_HandlerClose_Then_ClientClose(t *testing.T) { - testServerResponse(t, func(w http.ResponseWriter, r *http.Request) error { - // nothing - return nil - }, func(st *serverTester) { - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, - BlockFragment: st.encodeHeader(), - EndStream: false, // DATA is coming - EndHeaders: true, - }) - hf := st.wantHeaders() - if !hf.HeadersEnded() || !hf.StreamEnded() { - t.Fatalf("want END_HEADERS+END_STREAM, got %v", hf) - } - - // Sent when the a Handler closes while a client has - // indicated it's still sending DATA: - st.wantRSTStream(1, ErrCodeCancel) - - // Now the handler has ended, so it's ended its - // stream, but the client hasn't closed its side - // (stateClosedLocal). So send more data and verify - // it doesn't crash with an internal invariant panic, like - // it did before. - st.writeData(1, true, []byte("foo")) - - // Sent after a peer sends data anyway (admittedly the - // previous RST_STREAM might've still been in-flight), - // but they'll get the more friendly 'cancel' code - // first. - st.wantRSTStream(1, ErrCodeStreamClosed) - - // Set up a bunch of machinery to record the panic we saw - // previously. - var ( - panMu sync.Mutex - panicVal interface{} - ) - - testHookOnPanicMu.Lock() - testHookOnPanic = func(sc *serverConn, pv interface{}) bool { - panMu.Lock() - panicVal = pv - panMu.Unlock() - return true - } - testHookOnPanicMu.Unlock() - - // Now force the serve loop to end, via closing the connection. - st.cc.Close() - select { - case <-st.sc.doneServing: - // Loop has exited. - panMu.Lock() - got := panicVal - panMu.Unlock() - if got != nil { - t.Errorf("Got panic: %v", got) - } - case <-time.After(5 * time.Second): - t.Error("timeout") - } - }) -} - -func TestServer_Rejects_TLS10(t *testing.T) { testRejectTLS(t, tls.VersionTLS10) } -func TestServer_Rejects_TLS11(t *testing.T) { testRejectTLS(t, tls.VersionTLS11) } - -func testRejectTLS(t *testing.T, max uint16) { - st := newServerTester(t, nil, func(c *tls.Config) { - c.MaxVersion = max - }) - defer st.Close() - gf := st.wantGoAway() - if got, want := gf.ErrCode, ErrCodeInadequateSecurity; got != want { - t.Errorf("Got error code %v; want %v", got, want) - } -} - -func TestServer_Rejects_TLSBadCipher(t *testing.T) { - st := newServerTester(t, nil, func(c *tls.Config) { - // Only list bad ones: - c.CipherSuites = []uint16{ - tls.TLS_RSA_WITH_RC4_128_SHA, - tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA, - tls.TLS_RSA_WITH_AES_128_CBC_SHA, - tls.TLS_RSA_WITH_AES_256_CBC_SHA, - tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, - tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, - tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, - tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA, - tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, - tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, - tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, - } - }) - defer st.Close() - gf := st.wantGoAway() - if got, want := gf.ErrCode, ErrCodeInadequateSecurity; got != want { - t.Errorf("Got error code %v; want %v", got, want) - } -} - -func TestServer_Advertises_Common_Cipher(t *testing.T) { - const requiredSuite = tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - st := newServerTester(t, nil, func(c *tls.Config) { - // Have the client only support the one required by the spec. - c.CipherSuites = []uint16{requiredSuite} - }, func(ts *httptest.Server) { - var srv *http.Server = ts.Config - // Have the server configured with no specific cipher suites. - // This tests that Go's defaults include the required one. - srv.TLSConfig = nil - }) - defer st.Close() - st.greet() -} - -// TODO: move this onto *serverTester, and re-use the same hpack -// decoding context throughout. We're just getting lucky here with -// creating a new decoder each time. -func decodeHeader(t *testing.T, headerBlock []byte) (pairs [][2]string) { - d := hpack.NewDecoder(initialHeaderTableSize, func(f hpack.HeaderField) { - pairs = append(pairs, [2]string{f.Name, f.Value}) - }) - if _, err := d.Write(headerBlock); err != nil { - t.Fatalf("hpack decoding error: %v", err) - } - if err := d.Close(); err != nil { - t.Fatalf("hpack decoding error: %v", err) - } - return -} - -// testServerResponse sets up an idle HTTP/2 connection and lets you -// write a single request with writeReq, and then reply to it in some way with the provided handler, -// and then verify the output with the serverTester again (assuming the handler returns nil) -func testServerResponse(t testing.TB, - handler func(http.ResponseWriter, *http.Request) error, - client func(*serverTester), -) { - errc := make(chan error, 1) - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - if r.Body == nil { - t.Fatal("nil Body") - } - errc <- handler(w, r) - }) - defer st.Close() - - donec := make(chan bool) - go func() { - defer close(donec) - st.greet() - client(st) - }() - - select { - case <-donec: - return - case <-time.After(5 * time.Second): - t.Fatal("timeout") - } - - select { - case err := <-errc: - if err != nil { - t.Fatalf("Error in handler: %v", err) - } - case <-time.After(2 * time.Second): - t.Error("timeout waiting for handler to finish") - } -} - -// readBodyHandler returns an http Handler func that reads len(want) -// bytes from r.Body and fails t if the contents read were not -// the value of want. -func readBodyHandler(t *testing.T, want string) func(w http.ResponseWriter, r *http.Request) { - return func(w http.ResponseWriter, r *http.Request) { - buf := make([]byte, len(want)) - _, err := io.ReadFull(r.Body, buf) - if err != nil { - t.Error(err) - return - } - if string(buf) != want { - t.Errorf("read %q; want %q", buf, want) - } - } -} - -// TestServerWithCurl currently fails, hence the LenientCipherSuites test. See: -// https://github.com/tatsuhiro-t/nghttp2/issues/140 & -// http://sourceforge.net/p/curl/bugs/1472/ -func TestServerWithCurl(t *testing.T) { testServerWithCurl(t, false) } -func TestServerWithCurl_LenientCipherSuites(t *testing.T) { testServerWithCurl(t, true) } - -func testServerWithCurl(t *testing.T, permitProhibitedCipherSuites bool) { - if runtime.GOOS != "linux" { - t.Skip("skipping Docker test when not on Linux; requires --net which won't work with boot2docker anyway") - } - if testing.Short() { - t.Skip("skipping curl test in short mode") - } - requireCurl(t) - const msg = "Hello from curl!\n" - ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Foo", "Bar") - w.Header().Set("Client-Proto", r.Proto) - io.WriteString(w, msg) - })) - ConfigureServer(ts.Config, &Server{ - PermitProhibitedCipherSuites: permitProhibitedCipherSuites, - }) - ts.TLS = ts.Config.TLSConfig // the httptest.Server has its own copy of this TLS config - ts.StartTLS() - defer ts.Close() - - var gotConn int32 - testHookOnConn = func() { atomic.StoreInt32(&gotConn, 1) } - - t.Logf("Running test server for curl to hit at: %s", ts.URL) - container := curl(t, "--silent", "--http2", "--insecure", "-v", ts.URL) - defer kill(container) - resc := make(chan interface{}, 1) - go func() { - res, err := dockerLogs(container) - if err != nil { - resc <- err - } else { - resc <- res - } - }() - select { - case res := <-resc: - if err, ok := res.(error); ok { - t.Fatal(err) - } - body := string(res.([]byte)) - // Search for both "key: value" and "key:value", since curl changed their format - // Our Dockerfile contains the latest version (no space), but just in case people - // didn't rebuild, check both. - if !strings.Contains(body, "foo: Bar") && !strings.Contains(body, "foo:Bar") { - t.Errorf("didn't see foo: Bar header") - t.Logf("Got: %s", body) - } - if !strings.Contains(body, "client-proto: HTTP/2") && !strings.Contains(body, "client-proto:HTTP/2") { - t.Errorf("didn't see client-proto: HTTP/2 header") - t.Logf("Got: %s", res) - } - if !strings.Contains(string(res.([]byte)), msg) { - t.Errorf("didn't see %q content", msg) - t.Logf("Got: %s", res) - } - case <-time.After(3 * time.Second): - t.Errorf("timeout waiting for curl") - } - - if atomic.LoadInt32(&gotConn) == 0 { - t.Error("never saw an http2 connection") - } -} - -var doh2load = flag.Bool("h2load", false, "Run h2load test") - -func TestServerWithH2Load(t *testing.T) { - if !*doh2load { - t.Skip("Skipping without --h2load flag.") - } - if runtime.GOOS != "linux" { - t.Skip("skipping Docker test when not on Linux; requires --net which won't work with boot2docker anyway") - } - requireH2load(t) - - msg := strings.Repeat("Hello, h2load!\n", 5000) - ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - io.WriteString(w, msg) - w.(http.Flusher).Flush() - io.WriteString(w, msg) - })) - ts.StartTLS() - defer ts.Close() - - cmd := exec.Command("docker", "run", "--net=host", "--entrypoint=/usr/local/bin/h2load", "gohttp2/curl", - "-n100000", "-c100", "-m100", ts.URL) - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - if err := cmd.Run(); err != nil { - t.Fatal(err) - } -} - -// Issue 12843 -func TestServerDoS_MaxHeaderListSize(t *testing.T) { - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) {}) - defer st.Close() - - // shake hands - st.writePreface() - st.writeInitialSettings() - frameSize := defaultMaxReadFrameSize - var advHeaderListSize *uint32 - st.wantSettings().ForeachSetting(func(s Setting) error { - switch s.ID { - case SettingMaxFrameSize: - if s.Val < minMaxFrameSize { - frameSize = minMaxFrameSize - } else if s.Val > maxFrameSize { - frameSize = maxFrameSize - } else { - frameSize = int(s.Val) - } - case SettingMaxHeaderListSize: - advHeaderListSize = &s.Val - } - return nil - }) - st.writeSettingsAck() - st.wantSettingsAck() - - if advHeaderListSize == nil { - t.Errorf("server didn't advertise a max header list size") - } else if *advHeaderListSize == 0 { - t.Errorf("server advertised a max header list size of 0") - } - - st.encodeHeaderField(":method", "GET") - st.encodeHeaderField(":path", "/") - st.encodeHeaderField(":scheme", "https") - cookie := strings.Repeat("*", 4058) - st.encodeHeaderField("cookie", cookie) - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, - BlockFragment: st.headerBuf.Bytes(), - EndStream: true, - EndHeaders: false, - }) - - // Capture the short encoding of a duplicate ~4K cookie, now - // that we've already sent it once. - st.headerBuf.Reset() - st.encodeHeaderField("cookie", cookie) - - // Now send 1MB of it. - const size = 1 << 20 - b := bytes.Repeat(st.headerBuf.Bytes(), size/st.headerBuf.Len()) - for len(b) > 0 { - chunk := b - if len(chunk) > frameSize { - chunk = chunk[:frameSize] - } - b = b[len(chunk):] - st.fr.WriteContinuation(1, len(b) == 0, chunk) - } - - h := st.wantHeaders() - if !h.HeadersEnded() { - t.Fatalf("Got HEADERS without END_HEADERS set: %v", h) - } - headers := decodeHeader(t, h.HeaderBlockFragment()) - want := [][2]string{ - {":status", "431"}, - {"content-type", "text/html; charset=utf-8"}, - {"content-length", "63"}, - } - if !reflect.DeepEqual(headers, want) { - t.Errorf("Headers mismatch.\n got: %q\nwant: %q\n", headers, want) - } -} - -func TestCompressionErrorOnWrite(t *testing.T) { - const maxStrLen = 8 << 10 - var serverConfig *http.Server - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - // No response body. - }, func(ts *httptest.Server) { - serverConfig = ts.Config - serverConfig.MaxHeaderBytes = maxStrLen - }) - defer st.Close() - st.greet() - - maxAllowed := st.sc.maxHeaderStringLen() - - // Crank this up, now that we have a conn connected with the - // hpack.Decoder's max string length set has been initialized - // from the earlier low ~8K value. We want this higher so don't - // hit the max header list size. We only want to test hitting - // the max string size. - serverConfig.MaxHeaderBytes = 1 << 20 - - // First a request with a header that's exactly the max allowed size. - hbf := st.encodeHeader("foo", strings.Repeat("a", maxAllowed)) - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, - BlockFragment: hbf, - EndStream: true, - EndHeaders: true, - }) - h := st.wantHeaders() - if !h.HeadersEnded() || !h.StreamEnded() { - t.Errorf("Unexpected HEADER frame %v", h) - } - - // And now send one that's just one byte too big. - hbf = st.encodeHeader("bar", strings.Repeat("b", maxAllowed+1)) - st.writeHeaders(HeadersFrameParam{ - StreamID: 3, - BlockFragment: hbf, - EndStream: true, - EndHeaders: true, - }) - ga := st.wantGoAway() - if ga.ErrCode != ErrCodeCompression { - t.Errorf("GOAWAY err = %v; want ErrCodeCompression", ga.ErrCode) - } -} - -func TestCompressionErrorOnClose(t *testing.T) { - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - // No response body. - }) - defer st.Close() - st.greet() - - hbf := st.encodeHeader("foo", "bar") - hbf = hbf[:len(hbf)-1] // truncate one byte from the end, so hpack.Decoder.Close fails. - st.writeHeaders(HeadersFrameParam{ - StreamID: 1, - BlockFragment: hbf, - EndStream: true, - EndHeaders: true, - }) - ga := st.wantGoAway() - if ga.ErrCode != ErrCodeCompression { - t.Errorf("GOAWAY err = %v; want ErrCodeCompression", ga.ErrCode) - } -} - -func BenchmarkServerGets(b *testing.B) { - b.ReportAllocs() - - const msg = "Hello, world" - st := newServerTester(b, func(w http.ResponseWriter, r *http.Request) { - io.WriteString(w, msg) - }) - defer st.Close() - st.greet() - - // Give the server quota to reply. (plus it has the the 64KB) - if err := st.fr.WriteWindowUpdate(0, uint32(b.N*len(msg))); err != nil { - b.Fatal(err) - } - - for i := 0; i < b.N; i++ { - id := 1 + uint32(i)*2 - st.writeHeaders(HeadersFrameParam{ - StreamID: id, - BlockFragment: st.encodeHeader(), - EndStream: true, - EndHeaders: true, - }) - st.wantHeaders() - df := st.wantData() - if !df.StreamEnded() { - b.Fatalf("DATA didn't have END_STREAM; got %v", df) - } - } -} - -func BenchmarkServerPosts(b *testing.B) { - b.ReportAllocs() - - const msg = "Hello, world" - st := newServerTester(b, func(w http.ResponseWriter, r *http.Request) { - io.WriteString(w, msg) - }) - defer st.Close() - st.greet() - - // Give the server quota to reply. (plus it has the the 64KB) - if err := st.fr.WriteWindowUpdate(0, uint32(b.N*len(msg))); err != nil { - b.Fatal(err) - } - - for i := 0; i < b.N; i++ { - id := 1 + uint32(i)*2 - st.writeHeaders(HeadersFrameParam{ - StreamID: id, - BlockFragment: st.encodeHeader(":method", "POST"), - EndStream: false, - EndHeaders: true, - }) - st.writeData(id, true, nil) - st.wantHeaders() - df := st.wantData() - if !df.StreamEnded() { - b.Fatalf("DATA didn't have END_STREAM; got %v", df) - } - } -} - -// go-fuzz bug, originally reported at https://github.com/bradfitz/http2/issues/53 -// Verify we don't hang. -func TestIssue53(t *testing.T) { - const data = "PRI * HTTP/2.0\r\n\r\nSM" + - "\r\n\r\n\x00\x00\x00\x01\ainfinfin\ad" - s := &http.Server{ - ErrorLog: log.New(io.MultiWriter(stderrv(), twriter{t: t}), "", log.LstdFlags), - } - s2 := &Server{MaxReadFrameSize: 1 << 16, PermitProhibitedCipherSuites: true} - c := &issue53Conn{[]byte(data), false, false} - s2.handleConn(s, c, http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - w.Write([]byte("hello")) - })) - if !c.closed { - t.Fatal("connection is not closed") - } -} - -type issue53Conn struct { - data []byte - closed bool - written bool -} - -func (c *issue53Conn) Read(b []byte) (n int, err error) { - if len(c.data) == 0 { - return 0, io.EOF - } - n = copy(b, c.data) - c.data = c.data[n:] - return -} - -func (c *issue53Conn) Write(b []byte) (n int, err error) { - c.written = true - return len(b), nil -} - -func (c *issue53Conn) Close() error { - c.closed = true - return nil -} - -func (c *issue53Conn) LocalAddr() net.Addr { return &net.TCPAddr{net.IP{127, 0, 0, 1}, 49706, ""} } -func (c *issue53Conn) RemoteAddr() net.Addr { return &net.TCPAddr{net.IP{127, 0, 0, 1}, 49706, ""} } -func (c *issue53Conn) SetDeadline(t time.Time) error { return nil } -func (c *issue53Conn) SetReadDeadline(t time.Time) error { return nil } -func (c *issue53Conn) SetWriteDeadline(t time.Time) error { return nil } - -// golang.org/issue/12895 -func TestConfigureServer(t *testing.T) { - tests := []struct { - name string - in http.Server - wantErr string - }{ - { - name: "empty server", - in: http.Server{}, - }, - { - name: "just the required cipher suite", - in: http.Server{ - TLSConfig: &tls.Config{ - CipherSuites: []uint16{tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256}, - }, - }, - }, - { - name: "missing required cipher suite", - in: http.Server{ - TLSConfig: &tls.Config{ - CipherSuites: []uint16{tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384}, - }, - }, - wantErr: "is missing HTTP/2-required TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", - }, - { - name: "required after bad", - in: http.Server{ - TLSConfig: &tls.Config{ - CipherSuites: []uint16{tls.TLS_RSA_WITH_RC4_128_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256}, - }, - }, - wantErr: "contains an HTTP/2-approved cipher suite (0xc02f), but it comes after", - }, - { - name: "bad after required", - in: http.Server{ - TLSConfig: &tls.Config{ - CipherSuites: []uint16{tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_RC4_128_SHA}, - }, - }, - }, - } - for _, tt := range tests { - err := ConfigureServer(&tt.in, nil) - if (err != nil) != (tt.wantErr != "") { - if tt.wantErr != "" { - t.Errorf("%s: success, but want error", tt.name) - } else { - t.Errorf("%s: unexpected error: %v", tt.name, err) - } - } - if err != nil && tt.wantErr != "" && !strings.Contains(err.Error(), tt.wantErr) { - t.Errorf("%s: err = %v; want substring %q", tt.name, err, tt.wantErr) - } - if err == nil && !tt.in.TLSConfig.PreferServerCipherSuites { - t.Error("%s: PreferServerCipherSuite is false; want true", tt.name) - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/testdata/draft-ietf-httpbis-http2.xml b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/testdata/draft-ietf-httpbis-http2.xml deleted file mode 100644 index 31a84bed..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/testdata/draft-ietf-httpbis-http2.xml +++ /dev/null @@ -1,5021 +0,0 @@ - - - - - - - - - - - - - - - - - - - Hypertext Transfer Protocol version 2 - - - Twist -
    - mbelshe@chromium.org -
    -
    - - - Google, Inc -
    - fenix@google.com -
    -
    - - - Mozilla -
    - - 331 E Evelyn Street - Mountain View - CA - 94041 - US - - martin.thomson@gmail.com -
    -
    - - - Applications - HTTPbis - HTTP - SPDY - Web - - - - This specification describes an optimized expression of the semantics of the Hypertext - Transfer Protocol (HTTP). HTTP/2 enables a more efficient use of network resources and a - reduced perception of latency by introducing header field compression and allowing multiple - concurrent messages on the same connection. It also introduces unsolicited push of - representations from servers to clients. - - - This specification is an alternative to, but does not obsolete, the HTTP/1.1 message syntax. - HTTP's existing semantics remain unchanged. - - - - - - Discussion of this draft takes place on the HTTPBIS working group mailing list - (ietf-http-wg@w3.org), which is archived at . - - - Working Group information can be found at ; that specific to HTTP/2 are at . - - - The changes in this draft are summarized in . - - - -
    - - -
    - - - The Hypertext Transfer Protocol (HTTP) is a wildly successful protocol. However, the - HTTP/1.1 message format () has - several characteristics that have a negative overall effect on application performance - today. - - - In particular, HTTP/1.0 allowed only one request to be outstanding at a time on a given - TCP connection. HTTP/1.1 added request pipelining, but this only partially addressed - request concurrency and still suffers from head-of-line blocking. Therefore, HTTP/1.1 - clients that need to make many requests typically use multiple connections to a server in - order to achieve concurrency and thereby reduce latency. - - - Furthermore, HTTP header fields are often repetitive and verbose, causing unnecessary - network traffic, as well as causing the initial TCP congestion - window to quickly fill. This can result in excessive latency when multiple requests are - made on a new TCP connection. - - - HTTP/2 addresses these issues by defining an optimized mapping of HTTP's semantics to an - underlying connection. Specifically, it allows interleaving of request and response - messages on the same connection and uses an efficient coding for HTTP header fields. It - also allows prioritization of requests, letting more important requests complete more - quickly, further improving performance. - - - The resulting protocol is more friendly to the network, because fewer TCP connections can - be used in comparison to HTTP/1.x. This means less competition with other flows, and - longer-lived connections, which in turn leads to better utilization of available network - capacity. - - - Finally, HTTP/2 also enables more efficient processing of messages through use of binary - message framing. - -
    - -
    - - HTTP/2 provides an optimized transport for HTTP semantics. HTTP/2 supports all of the core - features of HTTP/1.1, but aims to be more efficient in several ways. - - - The basic protocol unit in HTTP/2 is a frame. Each frame - type serves a different purpose. For example, HEADERS and - DATA frames form the basis of HTTP requests and - responses; other frame types like SETTINGS, - WINDOW_UPDATE, and PUSH_PROMISE are used in support of other - HTTP/2 features. - - - Multiplexing of requests is achieved by having each HTTP request-response exchange - associated with its own stream. Streams are largely - independent of each other, so a blocked or stalled request or response does not prevent - progress on other streams. - - - Flow control and prioritization ensure that it is possible to efficiently use multiplexed - streams. Flow control helps to ensure that only data that - can be used by a receiver is transmitted. Prioritization ensures that limited resources can be directed - to the most important streams first. - - - HTTP/2 adds a new interaction mode, whereby a server can push - responses to a client. Server push allows a server to speculatively send a client - data that the server anticipates the client will need, trading off some network usage - against a potential latency gain. The server does this by synthesizing a request, which it - sends as a PUSH_PROMISE frame. The server is then able to send a response to - the synthetic request on a separate stream. - - - Frames that contain HTTP header fields are compressed. - HTTP requests can be highly redundant, so compression can reduce the size of requests and - responses significantly. - - -
    - - The HTTP/2 specification is split into four parts: - - - Starting HTTP/2 covers how an HTTP/2 connection is - initiated. - - - The framing and streams layers describe the way HTTP/2 frames are - structured and formed into multiplexed streams. - - - Frame and error - definitions include details of the frame and error types used in HTTP/2. - - - HTTP mappings and additional - requirements describe how HTTP semantics are expressed using frames and - streams. - - - - - While some of the frame and stream layer concepts are isolated from HTTP, this - specification does not define a completely generic framing layer. The framing and streams - layers are tailored to the needs of the HTTP protocol and server push. - -
    - -
    - - The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD - NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as - described in RFC 2119. - - - All numeric values are in network byte order. Values are unsigned unless otherwise - indicated. Literal values are provided in decimal or hexadecimal as appropriate. - Hexadecimal literals are prefixed with 0x to distinguish them - from decimal literals. - - - The following terms are used: - - - The endpoint initiating the HTTP/2 connection. - - - A transport-layer connection between two endpoints. - - - An error that affects the entire HTTP/2 connection. - - - Either the client or server of the connection. - - - The smallest unit of communication within an HTTP/2 connection, consisting of a header - and a variable-length sequence of octets structured according to the frame type. - - - An endpoint. When discussing a particular endpoint, "peer" refers to the endpoint - that is remote to the primary subject of discussion. - - - An endpoint that is receiving frames. - - - An endpoint that is transmitting frames. - - - The endpoint which did not initiate the HTTP/2 connection. - - - A bi-directional flow of frames across a virtual channel within the HTTP/2 connection. - - - An error on the individual HTTP/2 stream. - - - - - Finally, the terms "gateway", "intermediary", "proxy", and "tunnel" are defined - in . - -
    -
    - -
    - - An HTTP/2 connection is an application layer protocol running on top of a TCP connection - (). The client is the TCP connection initiator. - - - HTTP/2 uses the same "http" and "https" URI schemes used by HTTP/1.1. HTTP/2 shares the same - default port numbers: 80 for "http" URIs and 443 for "https" URIs. As a result, - implementations processing requests for target resource URIs like http://example.org/foo or https://example.com/bar are required to first discover whether the - upstream server (the immediate peer to which the client wishes to establish a connection) - supports HTTP/2. - - - - The means by which support for HTTP/2 is determined is different for "http" and "https" - URIs. Discovery for "http" URIs is described in . Discovery - for "https" URIs is described in . - - -
    - - The protocol defined in this document has two identifiers. - - - - The string "h2" identifies the protocol where HTTP/2 uses TLS. This identifier is used in the TLS application layer protocol negotiation extension (ALPN) - field and any place that HTTP/2 over TLS is identified. - - - The "h2" string is serialized into an ALPN protocol identifier as the two octet - sequence: 0x68, 0x32. - - - - - The string "h2c" identifies the protocol where HTTP/2 is run over cleartext TCP. - This identifier is used in the HTTP/1.1 Upgrade header field and any place that - HTTP/2 over TCP is identified. - - - - - - Negotiating "h2" or "h2c" implies the use of the transport, security, framing and message - semantics described in this document. - - - RFC Editor's Note: please remove the remainder of this section prior to the - publication of a final version of this document. - - - Only implementations of the final, published RFC can identify themselves as "h2" or "h2c". - Until such an RFC exists, implementations MUST NOT identify themselves using these - strings. - - - Examples and text throughout the rest of this document use "h2" as a matter of - editorial convenience only. Implementations of draft versions MUST NOT identify using - this string. - - - Implementations of draft versions of the protocol MUST add the string "-" and the - corresponding draft number to the identifier. For example, draft-ietf-httpbis-http2-11 - over TLS is identified using the string "h2-11". - - - Non-compatible experiments that are based on these draft versions MUST append the string - "-" and an experiment name to the identifier. For example, an experimental implementation - of packet mood-based encoding based on draft-ietf-httpbis-http2-09 might identify itself - as "h2-09-emo". Note that any label MUST conform to the "token" syntax defined in - . Experimenters are - encouraged to coordinate their experiments on the ietf-http-wg@w3.org mailing list. - -
    - -
    - - A client that makes a request for an "http" URI without prior knowledge about support for - HTTP/2 uses the HTTP Upgrade mechanism (). The client makes an HTTP/1.1 request that includes an Upgrade - header field identifying HTTP/2 with the "h2c" token. The HTTP/1.1 request MUST include - exactly one HTTP2-Settings header field. - -
    - For example: - - -]]> -
    - - Requests that contain an entity body MUST be sent in their entirety before the client can - send HTTP/2 frames. This means that a large request entity can block the use of the - connection until it is completely sent. - - - If concurrency of an initial request with subsequent requests is important, an OPTIONS - request can be used to perform the upgrade to HTTP/2, at the cost of an additional - round-trip. - - - A server that does not support HTTP/2 can respond to the request as though the Upgrade - header field were absent: - -
    - -HTTP/1.1 200 OK -Content-Length: 243 -Content-Type: text/html - -... - -
    - - A server MUST ignore a "h2" token in an Upgrade header field. Presence of a token with - "h2" implies HTTP/2 over TLS, which is instead negotiated as described in . - - - A server that supports HTTP/2 can accept the upgrade with a 101 (Switching Protocols) - response. After the empty line that terminates the 101 response, the server can begin - sending HTTP/2 frames. These frames MUST include a response to the request that initiated - the Upgrade. - - -
    - - For example: - - -HTTP/1.1 101 Switching Protocols -Connection: Upgrade -Upgrade: h2c - -[ HTTP/2 connection ... - -
    - - The first HTTP/2 frame sent by the server is a SETTINGS frame () as the server connection preface (). Upon receiving the 101 response, the client sends a connection preface, which includes a - SETTINGS frame. - - - The HTTP/1.1 request that is sent prior to upgrade is assigned stream identifier 1 and is - assigned default priority values. Stream 1 is - implicitly half closed from the client toward the server, since the request is completed - as an HTTP/1.1 request. After commencing the HTTP/2 connection, stream 1 is used for the - response. - - -
    - - A request that upgrades from HTTP/1.1 to HTTP/2 MUST include exactly one HTTP2-Settings header field. The HTTP2-Settings header field is a connection-specific header field - that includes parameters that govern the HTTP/2 connection, provided in anticipation of - the server accepting the request to upgrade. - -
    - -
    - - A server MUST NOT upgrade the connection to HTTP/2 if this header field is not present, - or if more than one is present. A server MUST NOT send this header field. - - - - The content of the HTTP2-Settings header field is the - payload of a SETTINGS frame (), encoded as a - base64url string (that is, the URL- and filename-safe Base64 encoding described in , with any trailing '=' characters omitted). The - ABNF production for token68 is - defined in . - - - Since the upgrade is only intended to apply to the immediate connection, a client - sending HTTP2-Settings MUST also send HTTP2-Settings as a connection option in the Connection header field to prevent it from being forwarded - downstream. - - - A server decodes and interprets these values as it would any other - SETTINGS frame. Acknowledgement of the - SETTINGS parameters is not necessary, since a 101 response serves as implicit - acknowledgment. Providing these values in the Upgrade request gives a client an - opportunity to provide parameters prior to receiving any frames from the server. - -
    -
    - -
    - - A client that makes a request to an "https" URI uses TLS - with the application layer protocol negotiation extension. - - - HTTP/2 over TLS uses the "h2" application token. The "h2c" token MUST NOT be sent by a - client or selected by a server. - - - Once TLS negotiation is complete, both the client and the server send a connection preface. - -
    - -
    - - A client can learn that a particular server supports HTTP/2 by other means. For example, - describes a mechanism for advertising this capability. - - - A client MAY immediately send HTTP/2 frames to a server that is known to support HTTP/2, - after the connection preface; a server can - identify such a connection by the presence of the connection preface. This only affects - the establishment of HTTP/2 connections over cleartext TCP; implementations that support - HTTP/2 over TLS MUST use protocol negotiation in TLS. - - - Without additional information, prior support for HTTP/2 is not a strong signal that a - given server will support HTTP/2 for future connections. For example, it is possible for - server configurations to change, for configurations to differ between instances in - clustered servers, or for network conditions to change. - -
    - -
    - - Upon establishment of a TCP connection and determination that HTTP/2 will be used by both - peers, each endpoint MUST send a connection preface as a final confirmation and to - establish the initial SETTINGS parameters for the HTTP/2 connection. The client and - server each send a different connection preface. - - - The client connection preface starts with a sequence of 24 octets, which in hex notation - are: - -
    - -
    - - (the string PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n). This sequence - is followed by a SETTINGS frame (). The - SETTINGS frame MAY be empty. The client sends the client connection - preface immediately upon receipt of a 101 Switching Protocols response (indicating a - successful upgrade), or as the first application data octets of a TLS connection. If - starting an HTTP/2 connection with prior knowledge of server support for the protocol, the - client connection preface is sent upon connection establishment. - - - - - The client connection preface is selected so that a large proportion of HTTP/1.1 or - HTTP/1.0 servers and intermediaries do not attempt to process further frames. Note - that this does not address the concerns raised in . - - - - - The server connection preface consists of a potentially empty SETTINGS - frame () that MUST be the first frame the server sends in the - HTTP/2 connection. - - - The SETTINGS frames received from a peer as part of the connection preface - MUST be acknowledged (see ) after sending the connection - preface. - - - To avoid unnecessary latency, clients are permitted to send additional frames to the - server immediately after sending the client connection preface, without waiting to receive - the server connection preface. It is important to note, however, that the server - connection preface SETTINGS frame might include parameters that necessarily - alter how a client is expected to communicate with the server. Upon receiving the - SETTINGS frame, the client is expected to honor any parameters established. - In some configurations, it is possible for the server to transmit SETTINGS - before the client sends additional frames, providing an opportunity to avoid this issue. - - - Clients and servers MUST treat an invalid connection preface as a connection error of type - PROTOCOL_ERROR. A GOAWAY frame () - MAY be omitted in this case, since an invalid preface indicates that the peer is not using - HTTP/2. - -
    -
    - -
    - - Once the HTTP/2 connection is established, endpoints can begin exchanging frames. - - -
    - - All frames begin with a fixed 9-octet header followed by a variable-length payload. - -
    - -
    - - The fields of the frame header are defined as: - - - - The length of the frame payload expressed as an unsigned 24-bit integer. Values - greater than 214 (16,384) MUST NOT be sent unless the receiver has - set a larger value for SETTINGS_MAX_FRAME_SIZE. - - - The 9 octets of the frame header are not included in this value. - - - - - The 8-bit type of the frame. The frame type determines the format and semantics of - the frame. Implementations MUST ignore and discard any frame that has a type that - is unknown. - - - - - An 8-bit field reserved for frame-type specific boolean flags. - - - Flags are assigned semantics specific to the indicated frame type. Flags that have - no defined semantics for a particular frame type MUST be ignored, and MUST be left - unset (0) when sending. - - - - - A reserved 1-bit field. The semantics of this bit are undefined and the bit MUST - remain unset (0) when sending and MUST be ignored when receiving. - - - - - A 31-bit stream identifier (see ). The value 0 is - reserved for frames that are associated with the connection as a whole as opposed to - an individual stream. - - - - - - The structure and content of the frame payload is dependent entirely on the frame type. - -
    - -
    - - The size of a frame payload is limited by the maximum size that a receiver advertises in - the SETTINGS_MAX_FRAME_SIZE setting. This setting can have any value - between 214 (16,384) and 224-1 (16,777,215) octets, - inclusive. - - - All implementations MUST be capable of receiving and minimally processing frames up to - 214 octets in length, plus the 9 octet frame - header. The size of the frame header is not included when describing frame sizes. - - - Certain frame types, such as PING, impose additional limits - on the amount of payload data allowed. - - - - - If a frame size exceeds any defined limit, or is too small to contain mandatory frame - data, the endpoint MUST send a FRAME_SIZE_ERROR error. A frame size error - in a frame that could alter the state of the entire connection MUST be treated as a connection error; this includes any frame carrying - a header block (that is, HEADERS, - PUSH_PROMISE, and CONTINUATION), SETTINGS, - and any WINDOW_UPDATE frame with a stream identifier of 0. - - - Endpoints are not obligated to use all available space in a frame. Responsiveness can be - improved by using frames that are smaller than the permitted maximum size. Sending large - frames can result in delays in sending time-sensitive frames (such - RST_STREAM, WINDOW_UPDATE, or PRIORITY) - which if blocked by the transmission of a large frame, could affect performance. - -
    - -
    - - Just as in HTTP/1, a header field in HTTP/2 is a name with one or more associated values. - They are used within HTTP request and response messages as well as server push operations - (see ). - - - Header lists are collections of zero or more header fields. When transmitted over a - connection, a header list is serialized into a header block using HTTP Header Compression. The serialized header block is then - divided into one or more octet sequences, called header block fragments, and transmitted - within the payload of HEADERS, PUSH_PROMISE or CONTINUATION frames. - - - The Cookie header field is treated specially by the HTTP - mapping (see ). - - - A receiving endpoint reassembles the header block by concatenating its fragments, then - decompresses the block to reconstruct the header list. - - - A complete header block consists of either: - - - a single HEADERS or PUSH_PROMISE frame, - with the END_HEADERS flag set, or - - - a HEADERS or PUSH_PROMISE frame with the END_HEADERS - flag cleared and one or more CONTINUATION frames, - where the last CONTINUATION frame has the END_HEADERS flag set. - - - - - Header compression is stateful. One compression context and one decompression context is - used for the entire connection. Each header block is processed as a discrete unit. - Header blocks MUST be transmitted as a contiguous sequence of frames, with no interleaved - frames of any other type or from any other stream. The last frame in a sequence of - HEADERS or CONTINUATION frames MUST have the END_HEADERS - flag set. The last frame in a sequence of PUSH_PROMISE or - CONTINUATION frames MUST have the END_HEADERS flag set. This allows a - header block to be logically equivalent to a single frame. - - - Header block fragments can only be sent as the payload of HEADERS, - PUSH_PROMISE or CONTINUATION frames, because these frames - carry data that can modify the compression context maintained by a receiver. An endpoint - receiving HEADERS, PUSH_PROMISE or - CONTINUATION frames MUST reassemble header blocks and perform decompression - even if the frames are to be discarded. A receiver MUST terminate the connection with a - connection error of type - COMPRESSION_ERROR if it does not decompress a header block. - -
    -
    - -
    - - A "stream" is an independent, bi-directional sequence of frames exchanged between the client - and server within an HTTP/2 connection. Streams have several important characteristics: - - - A single HTTP/2 connection can contain multiple concurrently open streams, with either - endpoint interleaving frames from multiple streams. - - - Streams can be established and used unilaterally or shared by either the client or - server. - - - Streams can be closed by either endpoint. - - - The order in which frames are sent on a stream is significant. Recipients process frames - in the order they are received. In particular, the order of HEADERS, - and DATA frames is semantically significant. - - - Streams are identified by an integer. Stream identifiers are assigned to streams by the - endpoint initiating the stream. - - - - -
    - - The lifecycle of a stream is shown in . - - -
    - - | |<-----------' | - | R | closed | R | - `-------------------->| |<--------------------' - +--------+ - - H: HEADERS frame (with implied CONTINUATIONs) - PP: PUSH_PROMISE frame (with implied CONTINUATIONs) - ES: END_STREAM flag - R: RST_STREAM frame -]]> - -
    - - - Note that this diagram shows stream state transitions and the frames and flags that affect - those transitions only. In this regard, CONTINUATION frames do not result - in state transitions; they are effectively part of the HEADERS or - PUSH_PROMISE that they follow. For this purpose, the END_STREAM flag is - processed as a separate event to the frame that bears it; a HEADERS frame - with the END_STREAM flag set can cause two state transitions. - - - Both endpoints have a subjective view of the state of a stream that could be different - when frames are in transit. Endpoints do not coordinate the creation of streams; they are - created unilaterally by either endpoint. The negative consequences of a mismatch in - states are limited to the "closed" state after sending RST_STREAM, where - frames might be received for some time after closing. - - - Streams have the following states: - - - - - - All streams start in the "idle" state. In this state, no frames have been - exchanged. - - - The following transitions are valid from this state: - - - Sending or receiving a HEADERS frame causes the stream to become - "open". The stream identifier is selected as described in . The same HEADERS frame can also - cause a stream to immediately become "half closed". - - - Sending a PUSH_PROMISE frame marks the associated stream for - later use. The stream state for the reserved stream transitions to "reserved - (local)". - - - Receiving a PUSH_PROMISE frame marks the associated stream as - reserved by the remote peer. The state of the stream becomes "reserved - (remote)". - - - - - Receiving any frames other than HEADERS or - PUSH_PROMISE on a stream in this state MUST be treated as a connection error of type - PROTOCOL_ERROR. - - - - - - - A stream in the "reserved (local)" state is one that has been promised by sending a - PUSH_PROMISE frame. A PUSH_PROMISE frame reserves an - idle stream by associating the stream with an open stream that was initiated by the - remote peer (see ). - - - In this state, only the following transitions are possible: - - - The endpoint can send a HEADERS frame. This causes the stream to - open in a "half closed (remote)" state. - - - Either endpoint can send a RST_STREAM frame to cause the stream - to become "closed". This releases the stream reservation. - - - - - An endpoint MUST NOT send any type of frame other than HEADERS or - RST_STREAM in this state. - - - A PRIORITY frame MAY be received in this state. Receiving any type - of frame other than RST_STREAM or PRIORITY on a stream - in this state MUST be treated as a connection - error of type PROTOCOL_ERROR. - - - - - - - A stream in the "reserved (remote)" state has been reserved by a remote peer. - - - In this state, only the following transitions are possible: - - - Receiving a HEADERS frame causes the stream to transition to - "half closed (local)". - - - Either endpoint can send a RST_STREAM frame to cause the stream - to become "closed". This releases the stream reservation. - - - - - An endpoint MAY send a PRIORITY frame in this state to reprioritize - the reserved stream. An endpoint MUST NOT send any type of frame other than - RST_STREAM, WINDOW_UPDATE, or PRIORITY - in this state. - - - Receiving any type of frame other than HEADERS or - RST_STREAM on a stream in this state MUST be treated as a connection error of type - PROTOCOL_ERROR. - - - - - - - A stream in the "open" state may be used by both peers to send frames of any type. - In this state, sending peers observe advertised stream - level flow control limits. - - - From this state either endpoint can send a frame with an END_STREAM flag set, which - causes the stream to transition into one of the "half closed" states: an endpoint - sending an END_STREAM flag causes the stream state to become "half closed (local)"; - an endpoint receiving an END_STREAM flag causes the stream state to become "half - closed (remote)". - - - Either endpoint can send a RST_STREAM frame from this state, causing - it to transition immediately to "closed". - - - - - - - A stream that is in the "half closed (local)" state cannot be used for sending - frames. Only WINDOW_UPDATE, PRIORITY and - RST_STREAM frames can be sent in this state. - - - A stream transitions from this state to "closed" when a frame that contains an - END_STREAM flag is received, or when either peer sends a RST_STREAM - frame. - - - A receiver can ignore WINDOW_UPDATE frames in this state, which might - arrive for a short period after a frame bearing the END_STREAM flag is sent. - - - PRIORITY frames received in this state are used to reprioritize - streams that depend on the current stream. - - - - - - - A stream that is "half closed (remote)" is no longer being used by the peer to send - frames. In this state, an endpoint is no longer obligated to maintain a receiver - flow control window if it performs flow control. - - - If an endpoint receives additional frames for a stream that is in this state, other - than WINDOW_UPDATE, PRIORITY or - RST_STREAM, it MUST respond with a stream error of type - STREAM_CLOSED. - - - A stream that is "half closed (remote)" can be used by the endpoint to send frames - of any type. In this state, the endpoint continues to observe advertised stream level flow control limits. - - - A stream can transition from this state to "closed" by sending a frame that contains - an END_STREAM flag, or when either peer sends a RST_STREAM frame. - - - - - - - The "closed" state is the terminal state. - - - An endpoint MUST NOT send frames other than PRIORITY on a closed - stream. An endpoint that receives any frame other than PRIORITY - after receiving a RST_STREAM MUST treat that as a stream error of type - STREAM_CLOSED. Similarly, an endpoint that receives any frames after - receiving a frame with the END_STREAM flag set MUST treat that as a connection error of type - STREAM_CLOSED, unless the frame is permitted as described below. - - - WINDOW_UPDATE or RST_STREAM frames can be received in - this state for a short period after a DATA or HEADERS - frame containing an END_STREAM flag is sent. Until the remote peer receives and - processes RST_STREAM or the frame bearing the END_STREAM flag, it - might send frames of these types. Endpoints MUST ignore - WINDOW_UPDATE or RST_STREAM frames received in this - state, though endpoints MAY choose to treat frames that arrive a significant time - after sending END_STREAM as a connection - error of type PROTOCOL_ERROR. - - - PRIORITY frames can be sent on closed streams to prioritize streams - that are dependent on the closed stream. Endpoints SHOULD process - PRIORITY frame, though they can be ignored if the stream has been - removed from the dependency tree (see ). - - - If this state is reached as a result of sending a RST_STREAM frame, - the peer that receives the RST_STREAM might have already sent - or - enqueued for sending - frames on the stream that cannot be withdrawn. An endpoint - MUST ignore frames that it receives on closed streams after it has sent a - RST_STREAM frame. An endpoint MAY choose to limit the period over - which it ignores frames and treat frames that arrive after this time as being in - error. - - - Flow controlled frames (i.e., DATA) received after sending - RST_STREAM are counted toward the connection flow control window. - Even though these frames might be ignored, because they are sent before the sender - receives the RST_STREAM, the sender will consider the frames to count - against the flow control window. - - - An endpoint might receive a PUSH_PROMISE frame after it sends - RST_STREAM. PUSH_PROMISE causes a stream to become - "reserved" even if the associated stream has been reset. Therefore, a - RST_STREAM is needed to close an unwanted promised stream. - - - - - - In the absence of more specific guidance elsewhere in this document, implementations - SHOULD treat the receipt of a frame that is not expressly permitted in the description of - a state as a connection error of type - PROTOCOL_ERROR. Frame of unknown types are ignored. - - - An example of the state transitions for an HTTP request/response exchange can be found in - . An example of the state transitions for server push can be - found in and . - - -
    - - Streams are identified with an unsigned 31-bit integer. Streams initiated by a client - MUST use odd-numbered stream identifiers; those initiated by the server MUST use - even-numbered stream identifiers. A stream identifier of zero (0x0) is used for - connection control messages; the stream identifier zero cannot be used to establish a - new stream. - - - HTTP/1.1 requests that are upgraded to HTTP/2 (see ) are - responded to with a stream identifier of one (0x1). After the upgrade - completes, stream 0x1 is "half closed (local)" to the client. Therefore, stream 0x1 - cannot be selected as a new stream identifier by a client that upgrades from HTTP/1.1. - - - The identifier of a newly established stream MUST be numerically greater than all - streams that the initiating endpoint has opened or reserved. This governs streams that - are opened using a HEADERS frame and streams that are reserved using - PUSH_PROMISE. An endpoint that receives an unexpected stream identifier - MUST respond with a connection error of - type PROTOCOL_ERROR. - - - 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. - - - Stream identifiers cannot be reused. Long-lived connections can result in an endpoint - exhausting the available range of stream identifiers. A client that is unable to - establish a new stream identifier can establish a new connection for new streams. 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. - -
    - -
    - - A peer can limit the number of concurrently active streams using the - SETTINGS_MAX_CONCURRENT_STREAMS parameter (see ) within a SETTINGS frame. The maximum concurrent - streams setting is specific to each endpoint and applies only to the peer that receives - the setting. That is, clients specify the maximum number of concurrent streams the - server can initiate, and servers specify the maximum number of concurrent streams the - client can initiate. - - - Streams that are in the "open" state, or either of the "half closed" states count toward - the maximum number of streams that an endpoint is permitted to open. Streams in any of - these three states count toward the limit advertised in the - SETTINGS_MAX_CONCURRENT_STREAMS setting. Streams in either of the - "reserved" states do not count toward the stream limit. - - - 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. An - endpoint that wishes to reduce the value of - SETTINGS_MAX_CONCURRENT_STREAMS to a value that is below the current - number of open streams can either close streams that exceed the new value or allow - streams to complete. - -
    -
    - -
    - - Using streams for multiplexing introduces contention over use of the TCP connection, - resulting in blocked streams. A flow control scheme ensures that streams on the same - connection do not destructively interfere with each other. Flow control is used for both - individual streams and for the connection as a whole. - - - HTTP/2 provides for flow control through use of the WINDOW_UPDATE frame. - - -
    - - HTTP/2 stream flow control aims to allow a variety of flow control algorithms to be - used without requiring protocol changes. Flow control in HTTP/2 has the following - characteristics: - - - Flow control is specific to a connection; i.e., it is "hop-by-hop", not - "end-to-end". - - - Flow control is based on window update frames. Receivers advertise how many octets - they are prepared to receive on a stream and for the entire connection. This is a - credit-based scheme. - - - Flow control is directional with overall control provided by the receiver. A - receiver MAY choose to set any window size that it desires for each stream and for - the entire connection. A sender MUST respect flow control limits imposed by a - receiver. Clients, servers and intermediaries all independently advertise their - flow control window as a receiver and abide by the flow control limits set by - their peer when sending. - - - The initial value for the flow control window is 65,535 octets for both new streams - and the overall connection. - - - The frame type determines whether flow control applies to a frame. Of the frames - specified in this document, only DATA frames are subject to flow - control; all other frame types do not consume space in the advertised flow control - window. This ensures that important control frames are not blocked by flow control. - - - Flow control cannot be disabled. - - - HTTP/2 defines only the format and semantics of the WINDOW_UPDATE - frame (). This document does not stipulate how a - receiver decides when to send this frame or the value that it sends, nor does it - specify how a sender chooses to send packets. Implementations are able to select - any algorithm that suits their needs. - - - - - Implementations are also responsible for managing how requests and responses are sent - based on priority; choosing how to avoid head of line blocking for requests; and - managing the creation of new streams. Algorithm choices for these could interact with - any flow control algorithm. - -
    - -
    - - Flow control is defined to protect endpoints that are operating under resource - constraints. For example, a proxy needs to share memory between many connections, and - also might have a slow upstream connection and a fast downstream one. Flow control - addresses cases where the receiver is unable process data on one stream, yet wants to - continue to process other streams in the same connection. - - - Deployments that do not require this capability can advertise a flow control window of - the maximum size, incrementing the available space when new data is received. This - effectively disables flow control for that receiver. Conversely, a sender is always - subject to the flow control window advertised by the receiver. - - - Deployments with constrained resources (for example, memory) can employ flow control to - limit the amount of memory a peer can consume. Note, however, that this can lead to - suboptimal use of available network resources if flow control is enabled without - knowledge of the bandwidth-delay product (see ). - - - Even with full awareness of the current bandwidth-delay product, implementation of flow - control can be difficult. When using flow control, the receiver MUST read from the TCP - receive buffer in a timely fashion. Failure to do so could lead to a deadlock when - critical frames, such as WINDOW_UPDATE, are not read and acted upon. - -
    -
    - -
    - - A client can assign a priority for a new stream by including prioritization information in - the HEADERS frame that opens the stream. For an existing - stream, the PRIORITY frame can be used to change the - priority. - - - The purpose of prioritization is to allow an endpoint to express how it would prefer its - peer allocate resources when managing concurrent streams. Most importantly, priority can - be used to select streams for transmitting frames when there is limited capacity for - sending. - - - Streams can be prioritized by marking them as dependent on the completion of other streams - (). Each dependency is assigned a relative weight, a number - that is used to determine the relative proportion of available resources that are assigned - to streams dependent on the same stream. - - - - Explicitly setting the priority for a stream is input to a prioritization process. It - does not guarantee any particular processing or transmission order for the stream relative - to any other stream. An endpoint cannot force a peer to process concurrent streams in a - particular order using priority. Expressing priority is therefore only ever a suggestion. - - - Providing prioritization information is optional, so default values are used if no - explicit indicator is provided (). - - -
    - - Each stream can be given an explicit dependency on another stream. Including a - dependency expresses a preference to allocate resources to the identified stream rather - than to the dependent stream. - - - A stream that is not dependent on any other stream is given a stream dependency of 0x0. - In other words, the non-existent stream 0 forms the root of the tree. - - - A stream that depends on another stream is a dependent stream. The stream upon which a - stream is dependent is a parent stream. A dependency on a stream that is not currently - in the tree - such as a stream in the "idle" state - results in that stream being given - a default priority. - - - When assigning a dependency on another stream, the stream is added as a new dependency - of the parent stream. Dependent streams that share the same parent are not ordered with - respect to each other. For example, if streams B and C are dependent on stream A, and - if stream D is created with a dependency on stream A, this results in a dependency order - of A followed by B, C, and D in any order. - -
    - /|\ - B C B D C -]]> -
    - - An exclusive flag allows for the insertion of a new level of dependencies. 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. In the - previous example, if stream D is created with an exclusive dependency on stream A, this - results in D becoming the dependency parent of B and C. - -
    - D - B C / \ - B C -]]> -
    - - Inside the dependency tree, a dependent stream SHOULD only be allocated resources if all - of the streams that it depends on (the chain of parent streams up to 0x0) are either - closed, or it is not possible to make progress on them. - - - A stream cannot depend on itself. An endpoint MUST treat this as a stream error of type PROTOCOL_ERROR. - -
    - -
    - - All dependent streams are allocated an integer weight between 1 and 256 (inclusive). - - - Streams with the same parent SHOULD be allocated resources proportionally based on their - weight. Thus, if stream B depends on stream A with weight 4, and C depends on stream A - with weight 12, and if no progress can be made on A, stream B ideally receives one third - of the resources allocated to stream C. - -
    - -
    - - Stream priorities are changed using the PRIORITY frame. Setting a - dependency causes a stream to become dependent on the identified parent stream. - - - Dependent streams move with their parent stream if the parent is reprioritized. Setting - a dependency with the exclusive flag for a reprioritized stream moves all the - dependencies of the new parent stream to become dependent on the reprioritized stream. - - - 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. - -
    - - For example, consider an original dependency tree where B and C depend on A, D and E - depend on C, and F depends on D. If A is made dependent on D, then D takes the place - of A. All other dependency relationships stay the same, except for F, which becomes - dependent on A if the reprioritization is exclusive. - - F B C ==> F A OR A - / \ | / \ /|\ - D E E B C B C F - | | | - F E E - (intermediate) (non-exclusive) (exclusive) -]]> -
    -
    - -
    - - When a stream is removed from the dependency tree, its dependencies can be moved to - become dependent on the parent of the closed stream. The weights of new dependencies - are recalculated by distributing the weight of the dependency of the closed stream - proportionally based on the weights of its dependencies. - - - Streams that are removed from the dependency tree cause some prioritization information - to be lost. Resources are shared between streams with the same parent stream, which - means that if a stream in that set closes or becomes blocked, any spare capacity - allocated to a stream is distributed to the immediate neighbors of the stream. However, - if the common dependency is removed from the tree, those streams share resources with - streams at the next highest level. - - - For example, assume streams A and B share a parent, and streams C and D both depend on - stream A. Prior to the removal of stream A, if streams A and D are unable to proceed, - then stream C receives all the resources dedicated to stream A. If stream A is removed - from the tree, the weight of stream A is divided between streams C and D. If stream D - is still unable to proceed, this results in stream C receiving a reduced proportion of - resources. For equal starting weights, C receives one third, rather than one half, of - available resources. - - - It is possible for a stream to become closed while prioritization information that - creates a dependency on that stream is in transit. If a stream identified in a - dependency has no associated priority information, then the dependent stream is instead - assigned a default priority. This potentially creates - suboptimal prioritization, since the stream could be given a priority that is different - to 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. - - - This could create a large state burden for an endpoint, so this state MAY be limited. - An endpoint MAY apply a fixed upper limit on the number of closed streams for which - prioritization state is tracked to limit state exposure. The amount of additional state - an endpoint maintains could be dependent on load; under high load, prioritization state - can be discarded to limit resource commitments. In extreme cases, an endpoint could - even discard prioritization state for active or reserved streams. If a fixed limit is - applied, endpoints SHOULD maintain state for at least as many streams as allowed by - their setting for SETTINGS_MAX_CONCURRENT_STREAMS. - - - An endpoint receiving a PRIORITY frame that changes the priority of a - closed stream SHOULD alter the dependencies of the streams that depend on it, if it has - retained enough state to do so. - -
    - -
    - - Providing priority information is optional. Streams are assigned a non-exclusive - dependency on stream 0x0 by default. Pushed streams - initially depend on their associated stream. In both cases, streams are assigned a - default weight of 16. - -
    -
    - -
    - - HTTP/2 framing permits two classes of error: - - - An error condition that renders the entire connection unusable is a connection error. - - - An error in an individual stream is a stream error. - - - - - A list of error codes is included in . - - -
    - - A connection error is any error which prevents further processing of the framing layer, - or which corrupts any connection state. - - - An endpoint that encounters a connection error SHOULD first send a GOAWAY - frame () with the stream identifier of the last stream that it - successfully received from its peer. The GOAWAY frame includes an error - code that indicates why the connection is terminating. After sending the - GOAWAY frame, the endpoint MUST close the TCP connection. - - - It is possible that the GOAWAY will not be reliably received by the - receiving endpoint (see ). In the event of a connection error, - GOAWAY only provides a best effort attempt to communicate with the peer - about why the connection is being terminated. - - - An endpoint can end a connection at any time. In particular, an endpoint MAY choose to - treat a stream error as a connection error. Endpoints SHOULD send a - GOAWAY frame when ending a connection, providing that circumstances - permit it. - -
    - -
    - - A stream error is an error related to a specific stream that does not affect processing - of other streams. - - - An endpoint that detects a stream error sends a RST_STREAM frame () that contains the stream identifier of the stream where the error - occurred. The RST_STREAM frame includes an error code that indicates the - type of error. - - - A RST_STREAM is the last frame that an endpoint can send on a stream. - The peer that sends the RST_STREAM frame MUST be prepared to receive any - frames that were sent or enqueued for sending by the remote peer. These frames can be - ignored, except where they modify connection state (such as the state maintained for - header compression, or flow control). - - - Normally, an endpoint SHOULD NOT send more than one RST_STREAM frame for - any stream. However, an endpoint MAY send additional RST_STREAM frames if - it receives frames on a closed stream after more than a round-trip time. This behavior - is permitted to deal with misbehaving implementations. - - - An endpoint MUST NOT send a RST_STREAM in response to an - RST_STREAM frame, to avoid looping. - -
    - -
    - - If the TCP connection is closed or reset while streams remain in open or half closed - states, then the endpoint MUST assume that those streams were abnormally interrupted and - could be incomplete. - -
    -
    - -
    - - HTTP/2 permits extension of the protocol. Protocol extensions can be used to provide - additional services or alter any aspect of the protocol, within the limitations described - in this section. Extensions are effective only within the scope of a single HTTP/2 - connection. - - - Extensions are permitted to use new frame types, new - settings, or new error - codes. Registries are established for managing these extension points: frame types, settings and - error codes. - - - Implementations MUST ignore unknown or unsupported values in all extensible protocol - elements. Implementations MUST discard frames that have unknown or unsupported types. - This means that any of these extension points can be safely used by extensions without - prior arrangement or negotiation. However, extension frames that appear in the middle of - a header block are not permitted; these MUST be treated - as a connection error of type - PROTOCOL_ERROR. - - - However, extensions that could change the semantics of existing protocol components MUST - be negotiated before being used. For example, an extension that changes the layout of the - HEADERS frame cannot be used until the peer has given a positive signal - that this is acceptable. In this case, it could also be necessary to coordinate when the - revised layout comes into effect. Note that treating any frame other than - DATA frames as flow controlled is such a change in semantics, and can only - be done through negotiation. - - - This document doesn't mandate a specific method for negotiating the use of an extension, - but notes that a setting could be used for that - purpose. If both peers set a value that indicates willingness to use the extension, then - the extension can be used. If a setting is used for extension negotiation, the initial - value MUST be defined so that the extension is initially disabled. - -
    -
    - -
    - - This specification defines a number of frame types, each identified by a unique 8-bit type - code. Each frame type serves a distinct purpose either in the establishment and management - of the connection as a whole, or of individual streams. - - - The transmission of specific frame types can alter the state of a connection. If endpoints - fail to maintain a synchronized view of the connection state, successful communication - within the connection will no longer be possible. Therefore, it is important that endpoints - have a shared comprehension of how the state is affected by the use any given frame. - - -
    - - DATA frames (type=0x0) convey arbitrary, variable-length sequences of octets associated - with a stream. One or more DATA frames are used, for instance, to carry HTTP request or - response payloads. - - - DATA frames MAY also contain arbitrary padding. Padding can be added to DATA frames to - obscure the size of messages. - -
    - -
    - - The DATA frame contains the following fields: - - - An 8-bit field containing the length of the frame padding in units of octets. This - field is optional and is only present if the PADDED flag is set. - - - Application data. The amount of data is the remainder of the frame payload after - subtracting the length of the other fields that are present. - - - Padding octets that contain no application semantic value. Padding octets MUST be set - to zero when sending and ignored when receiving. - - - - - - The DATA frame defines the following flags: - - - Bit 1 being set indicates that this frame is the last that the endpoint will send for - the identified stream. Setting this flag causes the stream to enter one of the "half closed" states or the "closed" state. - - - Bit 4 being set indicates that the Pad Length field and any padding that it describes - is present. - - - - - 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 of type - PROTOCOL_ERROR. - - - DATA frames are subject to flow control and can only be sent when a stream is in the - "open" or "half closed (remote)" states. The entire DATA frame payload is included in flow - control, including Pad Length and Padding fields if present. 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 of type - STREAM_CLOSED. - - - The total number of padding octets is determined by the value of the Pad Length field. If - the length of the padding is greater than the length of the frame payload, the recipient - MUST treat this as a connection error of - type PROTOCOL_ERROR. - - - A frame can be increased in size by one octet by including a Pad Length field with a - value of zero. - - - - - Padding is a security feature; see . - -
    - -
    - - The HEADERS frame (type=0x1) is used to open a stream, - and additionally carries a header block fragment. HEADERS frames can be sent on a stream - in the "open" or "half closed (remote)" states. - -
    - -
    - - The HEADERS frame payload has the following fields: - - - An 8-bit field containing the length of the frame padding in units of octets. This - field is only present if the PADDED flag is set. - - - A single bit flag indicates that the stream dependency is exclusive, see . This field is only present if the PRIORITY flag is set. - - - A 31-bit stream identifier for the stream that this stream depends on, see . This field is only present if the PRIORITY flag is set. - - - An 8-bit weight for the stream, see . Add one to the - value to obtain a weight between 1 and 256. This field is only present if the - PRIORITY flag is set. - - - A header block fragment. - - - Padding octets that contain no application semantic value. Padding octets MUST be set - to zero when sending and ignored when receiving. - - - - - - The HEADERS frame defines the following flags: - - - - Bit 1 being set 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. - - - A HEADERS frame carries the END_STREAM flag that signals the end of a stream. - However, a HEADERS frame with the END_STREAM flag set can be followed by - CONTINUATION frames on the same stream. Logically, the - CONTINUATION frames are part of the HEADERS frame. - - - - - Bit 3 being set indicates that this frame contains an entire header block and is not followed by any - CONTINUATION frames. - - - A HEADERS frame without the END_HEADERS flag set MUST be followed by a - CONTINUATION frame for the same stream. A receiver MUST treat the - receipt of any other type of frame or a frame on a different stream as a connection error of type - PROTOCOL_ERROR. - - - - - Bit 4 being set indicates that the Pad Length field and any padding that it - describes is present. - - - - - Bit 6 being set indicates that the Exclusive Flag (E), Stream Dependency, and Weight - fields are present; see . - - - - - - - The payload of a HEADERS frame contains a header block - fragment. A header block that does not fit within a HEADERS frame is continued in - a CONTINUATION frame. - - - - 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 of type - PROTOCOL_ERROR. - - - - The HEADERS frame changes the connection state as described in . - - - - The HEADERS frame includes optional padding. Padding fields and flags are identical to - those defined for DATA frames. - - - Prioritization information in a HEADERS frame is logically equivalent to a separate - PRIORITY frame, but inclusion in HEADERS avoids the potential for churn in - stream prioritization when new streams are created. Priorization fields in HEADERS frames - subsequent to the first on a stream reprioritize the - stream. - -
    - -
    - - The PRIORITY frame (type=0x2) specifies the sender-advised - priority of a stream. It can be sent at any time for an existing stream, including - closed streams. This enables reprioritization of existing streams. - -
    - -
    - - The payload of a PRIORITY frame contains the following fields: - - - A single bit flag indicates that the stream dependency is exclusive, see . - - - A 31-bit stream identifier for the stream that this stream depends on, see . - - - An 8-bit weight for the identified stream dependency, see . Add one to the value to obtain a weight between 1 and 256. - - - - - - The PRIORITY frame does not define any flags. - - - - The PRIORITY frame is associated with an existing stream. If a PRIORITY frame is received - with a stream identifier of 0x0, the recipient MUST respond with a connection error of type - PROTOCOL_ERROR. - - - The PRIORITY frame can be sent on a stream in any of the "reserved (remote)", "open", - "half closed (local)", "half closed (remote)", or "closed" states, though it cannot be - sent between consecutive frames that comprise a single header - block. Note that this frame could arrive after processing or frame sending has - completed, which would cause it to have no effect on the current stream. For a stream - that is in the "half closed (remote)" or "closed" - state, this frame can only affect - processing of the current stream and not frame transmission. - - - The PRIORITY frame is the only frame that can be sent for a stream in the "closed" state. - This allows for the reprioritization of a group of dependent streams by altering the - priority of a parent stream, which might be closed. However, a PRIORITY frame sent on a - closed stream risks being ignored due to the peer having discarded priority state - information for that stream. - -
    - -
    - - The RST_STREAM frame (type=0x3) allows for abnormal termination of a stream. When sent by - the initiator of a stream, it indicates that they wish to cancel the stream or that an - error condition has occurred. When sent by the receiver of a stream, it indicates that - either the receiver is rejecting the stream, requesting that the stream be cancelled, or - that an error condition has occurred. - -
    - -
    - - - The RST_STREAM frame contains a single unsigned, 32-bit integer identifying the error code. The error code indicates why the stream is being - terminated. - - - - The RST_STREAM frame does not define any flags. - - - - The RST_STREAM frame fully terminates the referenced stream and causes it to enter the - closed state. After receiving a RST_STREAM on a stream, the receiver MUST NOT send - additional frames for that stream, with the exception of PRIORITY. However, - after sending the RST_STREAM, the sending endpoint MUST be prepared to receive and process - additional frames sent on the stream that might have been sent by the peer prior to the - arrival of the RST_STREAM. - - - - RST_STREAM frames MUST be associated with a stream. If a RST_STREAM frame is received - with a stream identifier of 0x0, the recipient MUST treat this as a connection error of type - PROTOCOL_ERROR. - - - - 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 of type - PROTOCOL_ERROR. - - -
    - -
    - - The SETTINGS frame (type=0x4) conveys configuration parameters that affect how endpoints - communicate, such as preferences and constraints on peer behavior. The SETTINGS frame is - also used to acknowledge the receipt of those parameters. Individually, a SETTINGS - parameter can also be referred to as a "setting". - - - SETTINGS parameters are not negotiated; they describe characteristics of the sending peer, - which are used by the receiving peer. Different values for the same parameter can be - advertised by each peer. For example, a client might set a high initial flow control - window, whereas a server might set a lower value to conserve resources. - - - - A SETTINGS frame MUST be sent by both endpoints at the start of a connection, and MAY be - sent at any other time by either endpoint over the lifetime of the connection. - Implementations MUST support all of the parameters defined by this specification. - - - - Each parameter in a SETTINGS frame replaces any existing value for that parameter. - Parameters are processed in the order in which they appear, and a receiver of a SETTINGS - frame does not need to maintain any state other than the current value of its - parameters. Therefore, the value of a SETTINGS parameter is the last value that is seen by - a receiver. - - - SETTINGS parameters are acknowledged by the receiving peer. To enable this, the SETTINGS - frame defines the following flag: - - - Bit 1 being set indicates that this frame acknowledges receipt and application of the - peer's SETTINGS frame. When this 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 of type FRAME_SIZE_ERROR. For more info, see Settings Synchronization. - - - - - 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 of type - PROTOCOL_ERROR. - - - The SETTINGS frame affects connection state. A badly formed or incomplete SETTINGS frame - MUST be treated as a connection error of type - PROTOCOL_ERROR. - - -
    - - The payload of a SETTINGS frame consists of zero or more parameters, each consisting of - an unsigned 16-bit setting identifier and an unsigned 32-bit value. - - -
    - -
    -
    - -
    - - The following parameters are defined: - - - - Allows the sender to inform the remote endpoint of the maximum size of the header - compression table used to decode header blocks, in octets. The encoder can select - any size equal to or less than this value by using signaling specific to the - header compression format inside a header block. The initial value is 4,096 - octets. - - - - - This setting can be use to disable server - push. An endpoint MUST NOT send a PUSH_PROMISE frame if it - receives this parameter set to a value of 0. An endpoint that has both set this - parameter to 0 and had it acknowledged MUST treat the receipt of a - PUSH_PROMISE frame as a connection error of type - PROTOCOL_ERROR. - - - The initial value is 1, which indicates that server push is permitted. Any value - other than 0 or 1 MUST be treated as a connection error of type - PROTOCOL_ERROR. - - - - - Indicates the maximum number of concurrent streams that the sender will allow. - This limit is directional: it applies to the number of streams that the sender - permits the receiver to create. Initially there is no limit to this value. It is - recommended that this value be no smaller than 100, so as to not unnecessarily - limit parallelism. - - - A value of 0 for SETTINGS_MAX_CONCURRENT_STREAMS SHOULD NOT be treated as special - by endpoints. A zero value does prevent the creation of new streams, however this - can also happen for any limit that is exhausted with active streams. Servers - SHOULD only set a zero value for short durations; if a server does not wish to - accept requests, closing the connection could be preferable. - - - - - Indicates the sender's initial window size (in octets) for stream level flow - control. The initial value is 216-1 (65,535) octets. - - - This setting affects the window size of all streams, including existing streams, - see . - - - Values above the maximum flow control window size of 231-1 MUST - be treated as a connection error of - type FLOW_CONTROL_ERROR. - - - - - Indicates the size of the largest frame payload that the sender is willing to - receive, in octets. - - - The initial value is 214 (16,384) octets. The value advertised by - an endpoint MUST be between this initial value and the maximum allowed frame size - (224-1 or 16,777,215 octets), inclusive. Values outside this range - MUST be treated as a connection error - of type PROTOCOL_ERROR. - - - - - This advisory setting informs a peer of the maximum size of header list that the - sender is prepared to accept, in octets. The value is based on the uncompressed - size of header fields, including the length of the name and value in octets plus - an overhead of 32 octets for each header field. - - - For any given request, a lower limit than what is advertised MAY be enforced. The - initial value of this setting is unlimited. - - - - - - An endpoint that receives a SETTINGS frame with any unknown or unsupported identifier - MUST ignore that setting. - -
    - -
    - - Most values in SETTINGS benefit from or require an understanding of when the peer has - received and applied the changed parameter values. In order to provide - such synchronization timepoints, the recipient of a SETTINGS frame in which the ACK flag - is not set MUST apply the updated parameters as soon as possible upon receipt. - - - The values in the SETTINGS frame MUST be processed in the order they appear, with no - other frame processing between values. Unsupported parameters MUST be ignored. Once - all values have been processed, the recipient MUST immediately emit a SETTINGS frame - with the ACK flag set. Upon receiving a SETTINGS frame with the ACK flag set, the sender - of the altered parameters can rely on the setting having been applied. - - - If the sender of a SETTINGS frame does not receive an acknowledgement within a - reasonable amount of time, it MAY issue a connection error of type - SETTINGS_TIMEOUT. - -
    -
    - -
    - - The PUSH_PROMISE frame (type=0x5) is used to notify the peer endpoint in advance of - streams the sender intends to initiate. The PUSH_PROMISE frame includes the unsigned - 31-bit identifier of the stream the endpoint plans to create along with a set of headers - that provide additional context for the stream. contains a - thorough description of the use of PUSH_PROMISE frames. - - -
    - -
    - - The PUSH_PROMISE frame payload has the following fields: - - - An 8-bit field containing the length of the frame padding in units of octets. This - field is only present if the PADDED flag is set. - - - A single reserved bit. - - - An unsigned 31-bit integer that identifies the stream that is reserved by the - PUSH_PROMISE. The promised stream identifier MUST be a valid choice for the next - stream sent by the sender (see new stream - identifier). - - - A header block fragment containing request header - fields. - - - Padding octets. - - - - - - The PUSH_PROMISE frame defines the following flags: - - - - Bit 3 being set indicates that this frame contains an entire header block and is not followed by any - CONTINUATION frames. - - - A PUSH_PROMISE frame without the END_HEADERS flag set MUST be followed by a - CONTINUATION frame for the same stream. A receiver MUST treat the receipt of any - other type of frame or a frame on a different stream as a connection error of type - PROTOCOL_ERROR. - - - - - Bit 4 being set indicates that the Pad Length field and any padding that it - describes is present. - - - - - - - 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 of type - PROTOCOL_ERROR. - - - - Promised streams are not required to be used in the order they are promised. The - PUSH_PROMISE only reserves stream identifiers for later use. - - - - 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 of type - PROTOCOL_ERROR. - - - Recipients of PUSH_PROMISE frames can choose to reject promised streams by returning a - RST_STREAM referencing the promised stream identifier back to the sender of - the PUSH_PROMISE. - - - - A PUSH_PROMISE frame modifies the connection state in two ways. The inclusion of a header block potentially modifies the state maintained for - header compression. PUSH_PROMISE also reserves a stream for later use, causing the - promised stream to enter the "reserved" state. A sender MUST NOT send a PUSH_PROMISE on a - stream unless that stream is either "open" or "half closed (remote)"; the sender MUST - ensure that the promised stream is a valid choice for a new stream identifier (that is, the promised stream MUST - be in the "idle" state). - - - Since PUSH_PROMISE reserves a stream, ignoring a PUSH_PROMISE frame causes the stream - state to become indeterminate. A receiver MUST treat the receipt of a PUSH_PROMISE on a - stream that is neither "open" nor "half closed (local)" as a connection error of type - PROTOCOL_ERROR. However, an endpoint that has sent - RST_STREAM on the associated stream MUST handle PUSH_PROMISE frames that - might have been created before the RST_STREAM frame is received and - processed. - - - A receiver MUST treat the receipt of a PUSH_PROMISE that promises an illegal stream identifier (that is, an identifier for a - stream that is not currently in the "idle" state) as a connection error of type - PROTOCOL_ERROR. - - - - The PUSH_PROMISE frame includes optional padding. Padding fields and flags are identical - to those defined for DATA frames. - -
    - -
    - - The PING frame (type=0x6) is a mechanism for measuring a minimal round trip time from the - sender, as well as determining whether an idle connection is still functional. PING - frames can be sent from any endpoint. - -
    - -
    - - - In addition to the frame header, PING frames MUST contain 8 octets of data in the payload. - A sender can include any value it chooses and use those bytes in any fashion. - - - Receivers of a PING frame that does not include an ACK flag MUST send a PING frame with - the ACK flag set in response, with an identical payload. PING responses SHOULD be given - higher priority than any other frame. - - - - The PING frame defines the following flags: - - - Bit 1 being set indicates that this PING frame is a PING response. An endpoint MUST - set this flag in PING responses. An endpoint MUST NOT respond to PING frames - containing this flag. - - - - - 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 of type - PROTOCOL_ERROR. - - - Receipt of a PING frame with a length field value other than 8 MUST be treated as a connection error of type - FRAME_SIZE_ERROR. - - -
    - -
    - - The GOAWAY frame (type=0x7) informs the remote peer to stop creating streams on this - connection. GOAWAY can be sent by either the client or the server. Once sent, the sender - will ignore frames sent on any new streams with identifiers higher than the included last - stream identifier. Receivers of a GOAWAY frame MUST NOT open additional streams on the - connection, although a new connection can be established for new streams. - - - The purpose of this frame is to allow an endpoint to gracefully stop accepting new - streams, while still finishing processing of previously established streams. This enables - administrative actions, like server maintainance. - - - There is an inherent race condition between an endpoint starting new streams and the - remote sending a GOAWAY frame. To deal with this case, the GOAWAY contains the stream - identifier of the last peer-initiated stream which was or might be processed on the - sending endpoint in this connection. For instance, if the server sends a GOAWAY frame, - the identified stream is the highest numbered stream initiated by the client. - - - If the receiver of the GOAWAY has sent data on streams with a higher stream identifier - than what is indicated in the GOAWAY frame, those streams are not or will not be - processed. The receiver of the GOAWAY frame can treat the streams as though they had - never been created at all, thereby allowing those streams to be retried later on a new - connection. - - - Endpoints SHOULD always send a GOAWAY frame before closing a connection so that the remote - can know whether a stream has been partially processed or not. For example, if an HTTP - client sends a POST at the same time that a server closes a connection, the client cannot - know if the server started to process that POST request if the server does not send a - GOAWAY frame to indicate what streams it might have acted on. - - - An endpoint might choose to close a connection without sending GOAWAY for misbehaving - peers. - - -
    - -
    - - The GOAWAY frame does not define any flags. - - - The GOAWAY frame applies to the connection, not a specific stream. An endpoint MUST treat - a GOAWAY frame with a stream identifier other than 0x0 as a connection error of type - PROTOCOL_ERROR. - - - The last stream identifier in the GOAWAY frame contains the highest numbered stream - identifier for which the sender of the GOAWAY frame might have taken some action on, or - might yet take action on. All streams up to and including the identified stream might - have been processed in some way. The last stream identifier can be set to 0 if no streams - were processed. - - - In this context, "processed" means that some data from the stream was passed to some - higher layer of software that might have taken some action as a result. - - - If a connection terminates without a GOAWAY frame, the last stream identifier is - effectively the highest possible stream identifier. - - - On streams with lower or equal numbered identifiers that were not closed completely prior - to the connection being closed, re-attempting requests, transactions, or any protocol - activity is not possible, with the exception of idempotent actions like HTTP GET, PUT, or - DELETE. Any protocol activity that uses higher numbered streams can be safely retried - using a new connection. - - - Activity on streams numbered lower or equal to the last stream identifier might still - complete successfully. The sender of a GOAWAY frame might gracefully shut down a - connection by sending a GOAWAY frame, maintaining the connection in an open state until - all in-progress streams complete. - - - An endpoint MAY send multiple GOAWAY frames if circumstances change. For instance, an - endpoint that sends GOAWAY with NO_ERROR during graceful shutdown could - subsequently encounter an condition that requires immediate termination of the connection. - The last stream identifier from the last GOAWAY frame received indicates which streams - could have been acted upon. Endpoints MUST NOT increase the value they send in the last - stream identifier, since the peers might already have retried unprocessed requests on - another connection. - - - A client that is unable to retry requests loses all requests that are in flight when the - server closes the connection. This is especially true for intermediaries that might - not be serving clients using HTTP/2. A server that is attempting to gracefully shut down - a connection SHOULD send an initial GOAWAY frame with the last stream identifier set to - 231-1 and a NO_ERROR code. This signals to the client that - a shutdown is imminent and that no further requests can be initiated. After waiting at - least one round trip time, the server can send another GOAWAY frame with an updated last - stream identifier. This ensures that a connection can be cleanly shut down without losing - requests. - - - - After sending a GOAWAY frame, the sender can discard frames for streams with identifiers - higher than the identified last stream. However, any frames that alter connection state - cannot be completely ignored. For instance, HEADERS, - PUSH_PROMISE and CONTINUATION frames MUST be minimally - processed to ensure the state maintained for header compression is consistent (see ); similarly DATA frames MUST be counted toward the connection flow - control window. Failure to process these frames can cause flow control or header - compression state to become unsynchronized. - - - - The GOAWAY frame also contains a 32-bit error code that - contains the reason for closing the connection. - - - Endpoints MAY append opaque data to the payload of any GOAWAY frame. Additional debug - data is intended for diagnostic purposes only and carries no semantic value. Debug - information could contain security- or privacy-sensitive data. Logged or otherwise - persistently stored debug data MUST have adequate safeguards to prevent unauthorized - access. - -
    - -
    - - The WINDOW_UPDATE frame (type=0x8) is used to implement flow control; see for an overview. - - - Flow control operates at two levels: on each individual stream and on the entire - connection. - - - Both types of flow control are hop-by-hop; that is, only between the two endpoints. - Intermediaries do not forward WINDOW_UPDATE frames between dependent connections. - However, throttling of data transfer by any receiver can indirectly cause the propagation - of flow control information toward the original sender. - - - Flow control only applies to frames that are identified as being subject to flow control. - Of the frame types defined in this document, this includes only DATA frames. - Frames that are exempt from flow control MUST be accepted and processed, unless the - receiver is unable to assign resources to handling the frame. A receiver MAY respond with - a stream error or connection error of type - FLOW_CONTROL_ERROR if it is unable to accept a frame. - -
    - -
    - - The payload of a WINDOW_UPDATE frame is one reserved bit, plus an unsigned 31-bit integer - indicating the number of octets that the sender can transmit in addition to the existing - flow control window. The legal range for the increment to the flow control window is 1 to - 231-1 (0x7fffffff) octets. - - - The WINDOW_UPDATE frame does not define any flags. - - - The WINDOW_UPDATE frame can be specific to a stream or to the entire connection. In the - former case, the frame's stream identifier indicates the affected stream; in the latter, - the value "0" indicates that the entire connection is the subject of the frame. - - - A receiver MUST treat the receipt of a WINDOW_UPDATE frame with an flow control window - increment of 0 as a stream error of type - PROTOCOL_ERROR; errors on the connection flow control window MUST be - treated as a connection error. - - - 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 . - - - A receiver that receives a flow controlled frame MUST always account for its contribution - against the connection flow control window, unless the receiver treats this as a connection error. This is necessary even if the - frame is in error. Since the sender counts the frame toward the flow control window, if - the receiver does not, the flow control window at sender and receiver can become - different. - - -
    - - Flow control in HTTP/2 is implemented using a window kept by each sender on every - stream. The flow control window is a simple integer value that indicates how many octets - of data the sender is permitted to transmit; as such, its size is a measure of the - buffering capacity of the receiver. - - - Two flow control windows are applicable: the stream flow control window and the - connection flow control window. The sender MUST NOT send a flow controlled frame with a - length that exceeds the space available in either of the flow control windows advertised - by the receiver. Frames with zero length with the END_STREAM flag set (that is, an - empty DATA frame) MAY be sent if there is no available space in either - flow control window. - - - For flow control calculations, the 9 octet frame header is not counted. - - - After sending a flow controlled frame, the sender reduces the space available in both - windows by the length of the transmitted frame. - - - The receiver of a frame sends a WINDOW_UPDATE frame as it consumes data and frees up - space in flow control windows. Separate WINDOW_UPDATE frames are sent for the stream - and connection level flow control windows. - - - A sender that receives a WINDOW_UPDATE frame updates the corresponding window by the - amount specified in the frame. - - - A sender MUST NOT allow a flow control window to exceed 231-1 octets. - 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, the sender sends a RST_STREAM with the error code of - FLOW_CONTROL_ERROR code; for the connection, a GOAWAY - frame with a FLOW_CONTROL_ERROR code. - - - Flow controlled frames from the sender and WINDOW_UPDATE frames from the receiver are - completely asynchronous with respect to each other. This property allows a receiver to - aggressively update the window size kept by the sender to prevent streams from stalling. - -
    - -
    - - When an HTTP/2 connection is first established, new streams are created with an initial - flow control window size of 65,535 octets. The connection flow control window is 65,535 - octets. Both endpoints can adjust the initial window size for new streams by including - a value for SETTINGS_INITIAL_WINDOW_SIZE in the SETTINGS - frame that forms part of the connection preface. The connection flow control window can - only be changed using WINDOW_UPDATE frames. - - - Prior to receiving a SETTINGS frame that sets a value for - SETTINGS_INITIAL_WINDOW_SIZE, an endpoint can only use the default - initial window size when sending flow controlled frames. Similarly, the connection flow - control window is set to the default initial window size until a WINDOW_UPDATE frame is - received. - - - 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. - - - A change to SETTINGS_INITIAL_WINDOW_SIZE can cause the available space in - a flow control window to become negative. A sender MUST track the negative flow control - window, and MUST NOT send new flow controlled frames until it receives WINDOW_UPDATE - frames that cause the flow control window to become positive. - - - For example, if the client sends 60KB immediately on connection establishment, and the - server sets the initial window size to be 16KB, the client will recalculate the - available flow control window to be -44KB on receipt of the SETTINGS - frame. The client retains a negative flow control window until WINDOW_UPDATE frames - restore the window to being positive, after which the client can resume sending. - - - A SETTINGS frame cannot alter the connection flow control window. - - - 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 of type - FLOW_CONTROL_ERROR. - -
    - -
    - - A receiver that wishes to use a smaller flow control window than the current size can - send a new SETTINGS frame. However, the receiver MUST be prepared to - receive data that exceeds this window size, since the sender might send data that - exceeds the lower limit prior to processing the SETTINGS frame. - - - After sending a SETTINGS frame that reduces the initial flow control window size, a - receiver has two options for handling streams that exceed flow control limits: - - - The receiver can immediately send RST_STREAM with - FLOW_CONTROL_ERROR error code for the affected streams. - - - The receiver can accept the streams and tolerate the resulting head of line - blocking, sending WINDOW_UPDATE frames as it consumes data. - - - -
    -
    - -
    - - The CONTINUATION frame (type=0x9) is used to continue a sequence of header block fragments. Any number of CONTINUATION frames can - be sent on an existing stream, as long as the preceding frame is on the same stream and is - a HEADERS, PUSH_PROMISE or CONTINUATION frame without the - END_HEADERS flag set. - - -
    - -
    - - The CONTINUATION frame payload contains a header block - fragment. - - - - The CONTINUATION frame defines the following flag: - - - - Bit 3 being set indicates that this frame ends a header - block. - - - If the END_HEADERS bit is not set, this frame MUST be followed by another - CONTINUATION frame. A receiver MUST treat the receipt of any other type of frame or - a frame on a different stream as a connection - error of type PROTOCOL_ERROR. - - - - - - - The CONTINUATION frame changes the connection state as defined in . - - - - CONTINUATION frames MUST be associated with a stream. If a CONTINUATION frame is received - whose stream identifier field is 0x0, the recipient MUST respond with a connection error of type PROTOCOL_ERROR. - - - - A CONTINUATION frame MUST be preceded by a HEADERS, - PUSH_PROMISE or CONTINUATION frame without the END_HEADERS flag set. A - recipient that observes violation of this rule MUST respond with a connection error of type - PROTOCOL_ERROR. - -
    -
    - -
    - - Error codes are 32-bit fields that are used in RST_STREAM and - GOAWAY frames to convey the reasons for the stream or connection error. - - - - Error codes share a common code space. Some error codes apply only to either streams or the - entire connection and have no defined semantics in the other context. - - - - The following error codes are defined: - - - The associated condition is not as a result of an error. For example, a - GOAWAY might include this code to indicate graceful shutdown of a - connection. - - - The endpoint detected an unspecific protocol error. This error is for use when a more - specific error code is not available. - - - The endpoint encountered an unexpected internal error. - - - The endpoint detected that its peer violated the flow control protocol. - - - The endpoint sent a SETTINGS frame, but did not receive a response in a - timely manner. See Settings Synchronization. - - - The endpoint received a frame after a stream was half closed. - - - The endpoint received a frame with an invalid size. - - - The endpoint refuses the stream prior to performing any application processing, see - for details. - - - Used by the endpoint to indicate that the stream is no longer needed. - - - The endpoint is unable to maintain the header compression context for the connection. - - - The connection established in response to a CONNECT - request was reset or abnormally closed. - - - The endpoint detected that its peer is exhibiting a behavior that might be generating - excessive load. - - - The underlying transport has properties that do not meet minimum security - requirements (see ). - - - - - Unknown or unsupported error codes MUST NOT trigger any special behavior. These MAY be - treated by an implementation as being equivalent to INTERNAL_ERROR. - -
    - -
    - - HTTP/2 is intended to be as compatible as possible with current uses of HTTP. This means - that, from the application perspective, the features of the protocol are largely - unchanged. To achieve this, all request and response semantics are preserved, although the - syntax of conveying those semantics has changed. - - - Thus, the specification and requirements of HTTP/1.1 Semantics and Content , Conditional Requests , Range Requests , Caching and Authentication are applicable to HTTP/2. Selected portions of HTTP/1.1 Message Syntax - and Routing , such as the HTTP and HTTPS URI schemes, are also - applicable in HTTP/2, but the expression of those semantics for this protocol are defined - in the sections below. - - -
    - - A client sends an HTTP request on a new stream, using a previously unused stream identifier. A server sends an HTTP response on - the same stream as the request. - - - An HTTP message (request or response) consists of: - - - for a response only, zero or more HEADERS frames (each followed by zero - or more CONTINUATION frames) containing the message headers of - informational (1xx) HTTP responses (see and ), - and - - - one HEADERS frame (followed by zero or more CONTINUATION - frames) containing the message headers (see ), and - - - zero or more DATA frames containing the message payload (see ), and - - - optionally, one HEADERS frame, followed by zero or more - CONTINUATION frames containing the trailer-part, if present (see ). - - - The last frame in the sequence bears an END_STREAM flag, noting that a - HEADERS frame bearing the END_STREAM flag can be followed by - CONTINUATION frames that carry any remaining portions of the header block. - - - Other frames (from any stream) MUST NOT occur between either HEADERS frame - and any CONTINUATION frames that might follow. - - - - Trailing header fields are carried in a header block that also terminates the stream. - That is, a sequence starting with a HEADERS frame, followed by zero or more - CONTINUATION frames, where the HEADERS frame bears an - END_STREAM flag. Header blocks after the first that do not terminate the stream are not - part of an HTTP request or response. - - - A HEADERS frame (and associated CONTINUATION frames) can - only appear at the start or end of a stream. An endpoint that receives a - HEADERS frame without the END_STREAM flag set after receiving a final - (non-informational) status code MUST treat the corresponding request or response as malformed. - - - - An HTTP request/response exchange fully consumes a single stream. A request starts with - the HEADERS frame that puts the stream into an "open" state. The request - ends with a frame bearing END_STREAM, which causes the stream to become "half closed - (local)" for the client and "half closed (remote)" for the server. A response starts with - a HEADERS frame and ends with a frame bearing END_STREAM, which places the - stream in the "closed" state. - - - -
    - - HTTP/2 removes support for the 101 (Switching Protocols) informational status code - (). - - - The semantics of 101 (Switching Protocols) aren't applicable to a multiplexed protocol. - Alternative protocols are able to use the same mechanisms that HTTP/2 uses to negotiate - their use (see ). - -
    - -
    - - HTTP header fields carry information as a series of key-value pairs. For a listing of - registered HTTP headers, see the Message Header Field Registry maintained at . - - -
    - - While HTTP/1.x used the message start-line (see ) to convey the target URI and method of the request, and the - status code for the response, HTTP/2 uses special pseudo-header fields beginning with - ':' character (ASCII 0x3a) for this purpose. - - - Pseudo-header fields are not HTTP header fields. Endpoints MUST NOT generate - pseudo-header fields other than those defined in this document. - - - Pseudo-header fields are only valid in the context in which they are defined. - Pseudo-header fields defined for requests MUST NOT appear in responses; pseudo-header - fields defined for responses MUST NOT appear in requests. Pseudo-header fields MUST - NOT appear in trailers. Endpoints MUST treat a request or response that contains - undefined or invalid pseudo-header fields as malformed. - - - 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. A request or response containing - uppercase header field names MUST be treated as malformed. - - - All pseudo-header fields MUST appear in the header block before regular header fields. - Any request or response that contains a pseudo-header field that appears in a header - block after a regular header field MUST be treated as malformed. - -
    - -
    - - HTTP/2 does not use the Connection header field to - indicate connection-specific header fields; in this protocol, connection-specific - metadata is conveyed by other means. An endpoint MUST NOT generate a HTTP/2 message - containing connection-specific header fields; any message containing - connection-specific header fields MUST be treated as malformed. - - - This means that an intermediary transforming an HTTP/1.x message to HTTP/2 will need - to remove any header fields nominated by the Connection header field, along with the - Connection header field itself. Such intermediaries SHOULD also remove other - connection-specific header fields, such as Keep-Alive, Proxy-Connection, - Transfer-Encoding and Upgrade, even if they are not nominated by Connection. - - - One exception to this is the TE header field, which MAY be present in an HTTP/2 - request, but when it is MUST NOT contain any value other than "trailers". - - - - - HTTP/2 purposefully does not support upgrade to another protocol. The handshake - methods described in are believed sufficient to - negotiate the use of alternative protocols. - - - -
    - -
    - - The following pseudo-header fields are defined for HTTP/2 requests: - - - - The :method pseudo-header field includes the HTTP - method (). - - - - - The :scheme pseudo-header field includes the scheme - portion of the target URI (). - - - :scheme is not restricted to http and https schemed URIs. A - proxy or gateway can translate requests for non-HTTP schemes, enabling the use - of HTTP to interact with non-HTTP services. - - - - - The :authority pseudo-header field includes the - authority portion of the target URI (). The authority MUST NOT include the deprecated userinfo subcomponent for http - or https schemed URIs. - - - To ensure that the HTTP/1.1 request line can be reproduced accurately, this - pseudo-header field MUST be omitted when translating from an HTTP/1.1 request - that has a request target in origin or asterisk form (see ). Clients that generate - HTTP/2 requests directly SHOULD use the :authority pseudo-header - field instead of the Host header field. An - intermediary that converts an HTTP/2 request to HTTP/1.1 MUST create a Host header field if one is not present in a request by - copying the value of the :authority pseudo-header - field. - - - - - The :path pseudo-header field includes the path and - query parts of the target URI (the path-absolute - production from and optionally a '?' character - followed by the query production, see and ). A request in asterisk form includes the value '*' for the - :path pseudo-header field. - - - This pseudo-header field MUST NOT be empty for http - or https URIs; http or - https URIs that do not contain a path component - MUST include a value of '/'. The exception to this rule is an OPTIONS request - for an http or https - URI that does not include a path component; these MUST include a :path pseudo-header field with a value of '*' (see ). - - - - - - All HTTP/2 requests MUST include exactly one valid value for the :method, :scheme, and :path pseudo-header fields, unless it is a CONNECT request. An HTTP request that omits mandatory - pseudo-header fields is malformed. - - - HTTP/2 does not define a way to carry the version identifier that is included in the - HTTP/1.1 request line. - -
    - -
    - - For HTTP/2 responses, a single :status pseudo-header - field is defined that carries the HTTP status code field (see ). This pseudo-header field MUST be included in all - responses, otherwise the response is malformed. - - - HTTP/2 does not define a way to carry the version or reason phrase that is included in - an HTTP/1.1 status line. - -
    - -
    - - The Cookie header field can carry a significant amount of - redundant data. - - - The Cookie header field uses a semi-colon (";") to delimit cookie-pairs (or "crumbs"). - This header field doesn't follow the list construction rules in HTTP (see ), which prevents cookie-pairs from - being separated into different name-value pairs. This can significantly reduce - compression efficiency as individual cookie-pairs are updated. - - - To allow for better compression efficiency, the Cookie header field MAY be split into - separate header fields, each with one or more cookie-pairs. If there are multiple - Cookie header fields after decompression, these MUST be concatenated into a single - octet string using the two octet delimiter of 0x3B, 0x20 (the ASCII string "; ") - before being passed into a non-HTTP/2 context, such as an HTTP/1.1 connection, or a - generic HTTP server application. - -
    - - Therefore, the following two lists of Cookie header fields are semantically - equivalent. - - -
    -
    - -
    - - A malformed request or response is one that is an otherwise valid sequence of HTTP/2 - frames, but is otherwise invalid due to the presence of extraneous frames, prohibited - header fields, the absence of mandatory header fields, or the inclusion of uppercase - header field names. - - - A request or response that includes an entity body can include a content-length header field. 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. A response that is defined to have no payload, as described in , can have a non-zero - content-length header field, even though no content is - included in DATA frames. - - - Intermediaries that process HTTP requests or responses (i.e., any intermediary not - acting as a tunnel) MUST NOT forward a malformed request or response. Malformed - requests or responses that are detected MUST be treated as a stream error of type PROTOCOL_ERROR. - - - For malformed requests, a server MAY send an HTTP response prior to closing or - resetting the stream. Clients MUST NOT accept a malformed response. Note that these - requirements are intended to protect against several types of common attacks against - HTTP; they are deliberately strict, because being permissive can expose - implementations to these vulnerabilities. - -
    -
    - -
    - - This section shows HTTP/1.1 requests and responses, with illustrations of equivalent - HTTP/2 requests and responses. - - - An HTTP GET request includes request header fields and no body and is therefore - transmitted as a single HEADERS frame, followed by zero or more - CONTINUATION frames containing the serialized block of request header - fields. The HEADERS frame in the following has both the END_HEADERS and - END_STREAM flags set; no CONTINUATION frames are sent: - - -
    - + END_STREAM - Accept: image/jpeg + END_HEADERS - :method = GET - :scheme = https - :path = /resource - host = example.org - accept = image/jpeg -]]> -
    - - - Similarly, a response that includes only response header fields is transmitted as a - HEADERS frame (again, followed by zero or more - CONTINUATION frames) containing the serialized block of response header - fields. - - -
    - + END_STREAM - Expires: Thu, 23 Jan ... + END_HEADERS - :status = 304 - etag = "xyzzy" - expires = Thu, 23 Jan ... -]]> -
    - - - An HTTP POST request that includes request header fields and payload data is transmitted - as one HEADERS frame, followed by zero or more - CONTINUATION frames containing the request header fields, followed by one - or more DATA frames, with the last CONTINUATION (or - HEADERS) frame having the END_HEADERS flag set and the final - DATA frame having the END_STREAM flag set: - - -
    - - END_STREAM - Content-Type: image/jpeg - END_HEADERS - Content-Length: 123 :method = POST - :path = /resource - {binary data} :scheme = https - - CONTINUATION - + END_HEADERS - content-type = image/jpeg - host = example.org - content-length = 123 - - DATA - + END_STREAM - {binary data} -]]> - - Note that data contributing to any given header field could be spread between header - block fragments. The allocation of header fields to frames in this example is - illustrative only. - -
    - - - A response that includes header fields and payload data is transmitted as a - HEADERS frame, followed by zero or more CONTINUATION - frames, followed by one or more DATA frames, with the last - DATA frame in the sequence having the END_STREAM flag set: - - -
    - - END_STREAM - Content-Length: 123 + END_HEADERS - :status = 200 - {binary data} content-type = image/jpeg - content-length = 123 - - DATA - + END_STREAM - {binary data} -]]> -
    - - - Trailing header fields are sent as a header block after both the request or response - header block and all the DATA frames have been sent. The - HEADERS frame starting the trailers header block has the END_STREAM flag - set. - - -
    - - END_STREAM - Transfer-Encoding: chunked + END_HEADERS - Trailer: Foo :status = 200 - content-length = 123 - 123 content-type = image/jpeg - {binary data} trailer = Foo - 0 - Foo: bar DATA - - END_STREAM - {binary data} - - HEADERS - + END_STREAM - + END_HEADERS - foo = bar -]]> -
    - - -
    - - An informational response using a 1xx status code other than 101 is transmitted as a - HEADERS frame, followed by zero or more CONTINUATION - frames: - - - END_STREAM - + END_HEADERS - :status = 103 - extension-field = bar -]]> -
    -
    - -
    - - In HTTP/1.1, an HTTP client is unable to retry a non-idempotent request when an error - occurs, because there is no means to determine the nature of the error. It is possible - that some server processing occurred prior to the error, which could result in - undesirable effects if the request were reattempted. - - - HTTP/2 provides two mechanisms for providing a guarantee to a client that a request has - not been processed: - - - The GOAWAY frame indicates the highest stream number that might have - been processed. Requests on streams with higher numbers are therefore guaranteed to - be safe to retry. - - - The REFUSED_STREAM error code can be included in a - RST_STREAM frame to indicate that the stream is being closed prior to - any processing having occurred. Any request that was sent on the reset stream can - be safely retried. - - - - - Requests that have not been processed have not failed; clients MAY automatically retry - them, even those with non-idempotent methods. - - - A server MUST NOT indicate that a stream has not been processed unless it can guarantee - that fact. If frames that are on a stream are passed to the application layer for any - stream, then REFUSED_STREAM MUST NOT be used for that stream, and a - GOAWAY frame MUST include a stream identifier that is greater than or - equal to the given stream identifier. - - - In addition to these mechanisms, the PING frame provides a way for a - client to easily test a connection. Connections that remain idle can become broken as - some middleboxes (for instance, network address translators, or load balancers) silently - discard connection bindings. The PING frame allows a client to safely - test whether a connection is still active without sending a request. - -
    -
    - -
    - - HTTP/2 allows a server to pre-emptively send (or "push") responses (along with - corresponding "promised" requests) to a client in association with a previous - client-initiated request. This can be useful when the server knows the client will need - to have those responses available in order to fully process the response to the original - request. - - - - Pushing additional message exchanges in this fashion is optional, and is negotiated - between individual endpoints. The SETTINGS_ENABLE_PUSH setting can be set - to 0 to indicate that server push is disabled. - - - Promised requests MUST be cacheable (see ), MUST be safe (see ) and MUST NOT include a request body. Clients that receive a - promised request that is not cacheable, unsafe or that includes a request body MUST - reset the stream with a stream error of type - PROTOCOL_ERROR. - - - Pushed responses that are cacheable (see ) can be stored by the client, if it implements a HTTP - cache. Pushed responses are considered successfully validated on the origin server (e.g., - if the "no-cache" cache response directive is present) while the stream identified by the - promised stream ID is still open. - - - Pushed responses that are not cacheable MUST NOT be stored by any HTTP cache. They MAY - be made available to the application separately. - - - An intermediary can receive pushes from the server and choose not to forward them on to - the client. In other words, how to make use of the pushed information is up to that - intermediary. Equally, the intermediary might choose to make additional pushes to the - client, without any action taken by the server. - - - A client cannot push. Thus, servers MUST treat the receipt of a - PUSH_PROMISE frame as a connection - error of type PROTOCOL_ERROR. Clients MUST reject any attempt to - change the SETTINGS_ENABLE_PUSH setting to a value other than 0 by treating - the message as a connection error of type - PROTOCOL_ERROR. - - -
    - - Server push is semantically equivalent to a server responding to a request; however, in - this case that request is also sent by the server, as a PUSH_PROMISE - frame. - - - The PUSH_PROMISE frame includes a header block that contains a complete - set of request header fields that the server attributes to the request. It is not - possible to push a response to a request that includes a request body. - - - - Pushed responses are always associated with an explicit request from the client. The - PUSH_PROMISE frames sent by the server are sent on that explicit - request's stream. The PUSH_PROMISE frame also includes a promised stream - identifier, chosen from the stream identifiers available to the server (see ). - - - - The header fields in PUSH_PROMISE and any subsequent - CONTINUATION frames MUST be a valid and complete set of request header fields. The server MUST include a method in - the :method header field that is safe and cacheable. If a - client receives a PUSH_PROMISE that does not include a complete and valid - set of header fields, or the :method header field identifies - a method that is not safe, it MUST respond with a stream error of type PROTOCOL_ERROR. - - - - The server SHOULD send PUSH_PROMISE () - frames prior to sending any frames that reference the promised responses. This avoids a - race where clients issue requests prior to receiving any PUSH_PROMISE - frames. - - - For example, if the server receives a request for a document containing embedded links - to multiple image files, and the server chooses to push those additional images to the - client, sending push promises before the DATA frames that contain the - image links ensures that the client is able to see the promises before discovering - embedded links. Similarly, if the server pushes responses referenced by the header block - (for instance, in Link header fields), sending the push promises before sending the - header block ensures that clients do not request them. - - - - PUSH_PROMISE frames MUST NOT be sent by the client. - - - PUSH_PROMISE frames can be sent by the server in response to any - client-initiated stream, but the stream MUST be in either the "open" or "half closed - (remote)" state with respect to the server. PUSH_PROMISE frames are - interspersed with the frames that comprise a response, though they cannot be - interspersed with HEADERS and CONTINUATION frames that - comprise a single header block. - - - Sending a PUSH_PROMISE frame creates a new stream and puts the stream - into the “reserved (local)†state for the server and the “reserved (remote)†state for - the client. - -
    - -
    - - After sending the PUSH_PROMISE frame, the server can begin delivering the - pushed response as a response on a server-initiated - stream that uses the promised stream identifier. The server uses this stream to - transmit an HTTP response, using the same sequence of frames as defined in . This stream becomes "half closed" - to the client after the initial HEADERS frame is sent. - - - - Once a client receives a PUSH_PROMISE frame and chooses to accept the - pushed response, the client SHOULD NOT issue any requests for the promised response - until after the promised stream has closed. - - - - If the client determines, for any reason, that it does not wish to receive the pushed - response from the server, or if the server takes too long to begin sending the promised - response, the client can send an RST_STREAM frame, using either the - CANCEL or REFUSED_STREAM codes, and referencing the pushed - stream's identifier. - - - A client can use the SETTINGS_MAX_CONCURRENT_STREAMS setting to limit the - number of responses that can be concurrently pushed by a server. Advertising a - SETTINGS_MAX_CONCURRENT_STREAMS value of zero disables server push by - preventing the server from creating the necessary streams. This does not prohibit a - server from sending PUSH_PROMISE frames; clients need to reset any - promised streams that are not wanted. - - - - Clients receiving a pushed response MUST validate that either the server is - authoritative (see ), or the proxy that provided the pushed - response is configured for the corresponding request. For example, a server that offers - a certificate for only the example.com DNS-ID or Common Name - is not permitted to push a response for https://www.example.org/doc. - - - The response for a PUSH_PROMISE stream begins with a - HEADERS frame, which immediately puts the stream into the “half closed - (remote)†state for the server and “half closed (local)†state for the client, and ends - with a frame bearing END_STREAM, which places the stream in the "closed" state. - - - The client never sends a frame with the END_STREAM flag for a server push. - - - -
    - -
    - -
    - - In HTTP/1.x, the pseudo-method CONNECT () is used to convert an HTTP connection into a tunnel to a remote host. - CONNECT is primarily used with HTTP proxies to establish a TLS session with an origin - server for the purposes of interacting with https resources. - - - In HTTP/2, the CONNECT method is used to establish a tunnel over a single HTTP/2 stream to - a remote host, for similar purposes. The HTTP header field mapping works as defined in - Request Header Fields, with a few - differences. Specifically: - - - The :method header field is set to CONNECT. - - - The :scheme and :path header - fields MUST be omitted. - - - The :authority header field contains the host and port to - connect to (equivalent to the authority-form of the request-target of CONNECT - requests, see ). - - - - - A proxy that supports CONNECT establishes a TCP connection to - the server identified in the :authority header field. Once - this connection is successfully established, the proxy sends a HEADERS - frame containing a 2xx series status code to the client, as defined in . - - - After the initial HEADERS frame sent by each peer, all subsequent - DATA frames correspond to data sent on the TCP connection. The payload of - any DATA frames sent by the client is transmitted by the proxy to the TCP - server; data received from the TCP server is assembled into DATA frames by - the proxy. Frame types other than DATA or stream management frames - (RST_STREAM, WINDOW_UPDATE, and PRIORITY) - MUST NOT be sent on a connected stream, and MUST be treated as a stream error if received. - - - The TCP connection can be closed by either peer. The END_STREAM flag on a - DATA frame is treated as being equivalent to the TCP FIN bit. A client is - expected to send a DATA frame with the END_STREAM flag set after receiving - a frame bearing the END_STREAM flag. A proxy that receives a DATA frame - with the END_STREAM flag set sends the attached data with the FIN bit set on the last TCP - segment. A proxy that receives a TCP segment with the FIN bit set sends a - DATA frame with the END_STREAM flag set. Note that the final TCP segment - or DATA frame could be empty. - - - A TCP connection error is signaled with RST_STREAM. A proxy treats any - error in the TCP connection, which includes receiving a TCP segment with the RST bit set, - as a stream error of type - CONNECT_ERROR. Correspondingly, a proxy MUST send a TCP segment with the - RST bit set if it detects an error with the stream or the HTTP/2 connection. - -
    -
    - -
    - - This section outlines attributes of the HTTP protocol that improve interoperability, reduce - exposure to known security vulnerabilities, or reduce the potential for implementation - variation. - - -
    - - HTTP/2 connections are persistent. For best performance, it is expected clients will not - close connections until it is determined that no further communication with a server is - necessary (for example, when a user navigates away from a particular web page), or until - the server closes the connection. - - - Clients SHOULD NOT open more than one HTTP/2 connection to a given host and port pair, - where host is derived from a URI, a selected alternative - service, or a configured proxy. - - - A client can create additional connections as replacements, either to replace connections - that are near to exhausting the available stream - identifier space, to refresh the keying material for a TLS connection, or to - replace connections that have encountered errors. - - - A client MAY open multiple connections to the same IP address and TCP port using different - Server Name Indication values or to provide different TLS - client certificates, but SHOULD avoid creating multiple connections with the same - configuration. - - - Servers are encouraged to maintain open connections for as long as possible, but are - permitted to terminate idle connections if necessary. When either endpoint chooses to - close the transport-layer TCP connection, the terminating endpoint SHOULD first send a - GOAWAY () frame so that both endpoints can reliably - determine whether previously sent frames have been processed and gracefully complete or - terminate any necessary remaining tasks. - - -
    - - Connections that are made to an origin servers, either directly or through a tunnel - created using the CONNECT method MAY be reused for - requests with multiple different URI authority components. A connection can be reused - as long as the origin server is authoritative. For - http resources, this depends on the host having resolved to - the same IP address. - - - For https resources, connection reuse additionally depends - on having a certificate that is valid for the host in the URI. An origin server might - offer a certificate with multiple subjectAltName attributes, - or names with wildcards, one of which is valid for the authority in the URI. For - example, a certificate with a subjectAltName of *.example.com might permit the use of the same connection for - requests to URIs starting with https://a.example.com/ and - https://b.example.com/. - - - In some deployments, reusing a connection for multiple origins can result in requests - being directed to the wrong origin server. For example, TLS termination might be - performed by a middlebox that uses the TLS Server Name Indication - (SNI) extension to select an origin server. This means that it is possible - for clients to send confidential information to servers that might not be the intended - target for the request, even though the server is otherwise authoritative. - - - A server that does not wish clients to reuse connections can indicate that it is not - authoritative for a request by sending a 421 (Misdirected Request) status code in response - to the request (see ). - - - A client that is configured to use a proxy over HTTP/2 directs requests to that proxy - through a single connection. That is, all requests sent via a proxy reuse the - connection to the proxy. - -
    - -
    - - The 421 (Misdirected Request) status code indicates that the request was directed at a - server that is not able to produce a response. This can be sent by a server that is not - configured to produce responses for the combination of scheme and authority that are - included in the request URI. - - - Clients receiving a 421 (Misdirected Request) response from a server MAY retry the - request - whether the request method is idempotent or not - over a different connection. - This is possible if a connection is reused () or if an alternative - service is selected (). - - - This status code MUST NOT be generated by proxies. - - - A 421 response is cacheable by default; i.e., unless otherwise indicated by the method - definition or explicit cache controls (see ). - -
    -
    - -
    - - Implementations of HTTP/2 MUST support TLS 1.2 for HTTP/2 over - TLS. The general TLS usage guidance in SHOULD be followed, with - some additional restrictions that are specific to HTTP/2. - - - - 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 these minimum requirements - with a connection error of type - INADEQUATE_SECURITY. - - -
    - - The TLS implementation MUST support the Server Name Indication - (SNI) extension to TLS. HTTP/2 clients MUST indicate the target domain name when - negotiating TLS. - - - The TLS implementation MUST disable compression. TLS compression can lead to the - exposure of information that would not otherwise be revealed . - Generic compression is unnecessary since HTTP/2 provides compression features that are - more aware of context and therefore likely to be more appropriate for use for - performance, security or other reasons. - - - The TLS implementation MUST disable renegotiation. An endpoint MUST treat a TLS - renegotiation as a connection error of type - PROTOCOL_ERROR. Note that disabling renegotiation can result in - long-lived connections becoming unusable due to limits on the number of messages the - underlying cipher suite can encipher. - - - A client MAY use renegotiation to provide confidentiality protection for client - credentials offered in the handshake, but any renegotiation MUST occur prior to sending - the connection preface. A server SHOULD request a client certificate if it sees a - renegotiation request immediately after establishing a connection. - - - This effectively prevents the use of renegotiation in response to a request for a - specific protected resource. A future specification might provide a way to support this - use case. - -
    - -
    - - The set of TLS cipher suites that are permitted in HTTP/2 is restricted. HTTP/2 MUST - only be used with cipher suites that have ephemeral key exchange, such as the ephemeral Diffie-Hellman (DHE) or the elliptic curve variant (ECDHE). Ephemeral key exchange MUST - have a minimum size of 2048 bits for DHE or security level of 128 bits for ECDHE. - Clients MUST accept DHE sizes of up to 4096 bits. HTTP MUST NOT be used with cipher - suites that use stream or block ciphers. Authenticated Encryption with Additional Data - (AEAD) modes, such as the Galois Counter Model (GCM) mode for - AES are acceptable. - - - The effect of these restrictions is that TLS 1.2 implementations could have - non-intersecting sets of available cipher suites, since these prevent the use of the - cipher suite that TLS 1.2 makes mandatory. To avoid this problem, implementations of - HTTP/2 that use TLS 1.2 MUST support TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 with P256 . - - - Clients MAY advertise support of cipher suites that are prohibited by the above - restrictions in order to allow for connection to servers that do not support HTTP/2. - This enables a fallback to protocols without these constraints without the additional - latency imposed by using a separate connection for fallback. - -
    -
    -
    - -
    -
    - - HTTP/2 relies on the HTTP/1.1 definition of authority for determining whether a server is - authoritative in providing a given response, see . This relies on local name resolution for the "http" - URI scheme, and the authenticated server identity for the "https" scheme (see ). - -
    - -
    - - In a cross-protocol attack, an attacker causes a client to initiate a transaction in one - protocol toward a server that understands a different protocol. An attacker might be able - to cause the transaction to appear as valid transaction in the second protocol. In - combination with the capabilities of the web context, this can be used to interact with - poorly protected servers in private networks. - - - Completing a TLS handshake with an ALPN identifier for HTTP/2 can be considered sufficient - protection against cross protocol attacks. ALPN provides a positive indication that a - server is willing to proceed with HTTP/2, which prevents attacks on other TLS-based - protocols. - - - The encryption in TLS makes it difficult for attackers to control the data which could be - used in a cross-protocol attack on a cleartext protocol. - - - The cleartext version of HTTP/2 has minimal protection against cross-protocol attacks. - The connection preface contains a string that is - designed to confuse HTTP/1.1 servers, but no special protection is offered for other - protocols. A server that is willing to ignore parts of an HTTP/1.1 request containing an - Upgrade header field in addition to the client connection preface could be exposed to a - cross-protocol attack. - -
    - -
    - - HTTP/2 header field names and values are encoded as sequences of octets with a length - prefix. This enables HTTP/2 to carry any string of octets as the name or value of a - header field. An intermediary that translates HTTP/2 requests or responses into HTTP/1.1 - directly could permit the creation of corrupted HTTP/1.1 messages. An attacker might - exploit this behavior to cause the intermediary to create HTTP/1.1 messages with illegal - header fields, extra header fields, or even new messages that are entirely falsified. - - - Header field names or values that contain characters not permitted by HTTP/1.1, including - carriage return (ASCII 0xd) or line feed (ASCII 0xa) MUST NOT be translated verbatim by an - intermediary, as stipulated in . - - - Translation from HTTP/1.x to HTTP/2 does not produce the same opportunity to an attacker. - Intermediaries that perform translation to HTTP/2 MUST remove any instances of the obs-fold production from header field values. - -
    - -
    - - Pushed responses do not have an explicit request from the client; the request - is provided by the server in the PUSH_PROMISE frame. - - - Caching responses that are pushed is possible based on the guidance provided by the origin - server in the Cache-Control header field. However, this can cause issues if a single - server hosts more than one tenant. For example, a server might offer multiple users each - a small portion of its URI space. - - - Where multiple tenants share space on the same server, that server MUST ensure that - tenants are not able to push representations of resources that they do not have authority - over. Failure to enforce this would allow a tenant to provide a representation that would - be served out of cache, overriding the actual representation that the authoritative tenant - provides. - - - Pushed responses for which an origin server is not authoritative (see - ) are never cached or used. - -
    - -
    - - An HTTP/2 connection can demand a greater commitment of resources to operate than a - HTTP/1.1 connection. The use of header compression and flow control depend on a - commitment of resources for storing a greater amount of state. Settings for these - features ensure that memory commitments for these features are strictly bounded. - - - The number of PUSH_PROMISE frames is not constrained in the same fashion. - A client that accepts server push SHOULD limit the number of streams it allows to be in - the "reserved (remote)" state. Excessive number of server push streams can be treated as - a stream error of type - ENHANCE_YOUR_CALM. - - - Processing capacity cannot be guarded as effectively as state capacity. - - - The SETTINGS frame can be abused to cause a peer to expend additional - processing time. This might be done by pointlessly changing SETTINGS parameters, setting - multiple undefined parameters, or changing the same setting multiple times in the same - frame. WINDOW_UPDATE or PRIORITY frames can be abused to - cause an unnecessary waste of resources. - - - Large numbers of small or empty frames can be abused to cause a peer to expend time - processing frame headers. Note however that some uses are entirely legitimate, such as - the sending of an empty DATA frame to end a stream. - - - Header compression also offers some opportunities to waste processing resources; see for more details on potential abuses. - - - Limits in SETTINGS parameters cannot be reduced instantaneously, which - leaves an endpoint exposed to behavior from a peer that could exceed the new limits. In - particular, immediately after establishing a connection, limits set by a server are not - known to clients and could be exceeded without being an obvious protocol violation. - - - All these features - i.e., SETTINGS changes, small frames, header - compression - have legitimate uses. These features become a burden only when they are - used unnecessarily or to excess. - - - An endpoint that doesn't monitor this behavior exposes itself to a risk of denial of - service attack. Implementations SHOULD track the use of these features and set limits on - their use. An endpoint MAY treat activity that is suspicious as a connection error of type - ENHANCE_YOUR_CALM. - - -
    - - A large header block can cause an implementation to - commit a large amount of state. Header fields that are critical for routing can appear - toward the end of a header block, which prevents streaming of header fields to their - ultimate destination. For this an other reasons, such as ensuring cache correctness, - means that an endpoint might need to buffer the entire header block. Since there is no - hard limit to the size of a header block, some endpoints could be forced commit a large - amount of available memory for header fields. - - - An endpoint can use the SETTINGS_MAX_HEADER_LIST_SIZE to advise peers of - limits that might apply on the size of header blocks. This setting is only advisory, so - endpoints MAY choose to send header blocks that exceed this limit and risk having the - request or response being treated as malformed. This setting specific to a connection, - so any request or response could encounter a hop with a lower, unknown limit. An - intermediary can attempt to avoid this problem by passing on values presented by - different peers, but they are not obligated to do so. - - - 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 . A - client can discard responses that it cannot process. The header block MUST be processed - to ensure a consistent connection state, unless the connection is closed. - -
    -
    - -
    - - HTTP/2 enables greater use of compression for both header fields () and entity bodies. Compression can allow an attacker to recover - secret data when it is compressed in the same context as data under attacker control. - - - There are demonstrable attacks on compression that exploit the characteristics of the web - (e.g., ). The attacker induces multiple requests containing - varying plaintext, observing the length of the resulting ciphertext in each, which - reveals a shorter length when a guess about the secret is correct. - - - Implementations communicating on a secure channel MUST NOT compress content that includes - both confidential and attacker-controlled data unless separate compression dictionaries - are used for each source of data. Compression MUST NOT be used if the source of data - cannot be reliably determined. Generic stream compression, such as that provided by TLS - MUST NOT be used with HTTP/2 (). - - - Further considerations regarding the compression of header fields are described in . - -
    - -
    - - Padding within HTTP/2 is not intended as a replacement for general purpose padding, such - as might be provided by TLS. Redundant padding could even be - counterproductive. Correct application can depend on having specific knowledge of the - data that is being padded. - - - To mitigate attacks that rely on compression, disabling or limiting compression might be - preferable to padding as a countermeasure. - - - Padding can be used to obscure the exact size of frame content, and is provided to - mitigate specific attacks within HTTP. For example, attacks where compressed content - includes both attacker-controlled plaintext and secret data (see for example, ). - - - Use of padding can result in less protection than might seem immediately obvious. At - best, padding only makes it more difficult for an attacker to infer length information by - increasing the number of frames an attacker has to observe. Incorrectly implemented - padding schemes can be easily defeated. In particular, randomized padding with a - predictable distribution provides very little protection; similarly, padding payloads to a - fixed size exposes information as payload sizes cross the fixed size boundary, which could - be possible if an attacker can control plaintext. - - - Intermediaries SHOULD retain padding for DATA frames, but MAY drop padding - for HEADERS and PUSH_PROMISE frames. A valid reason for an - intermediary to change the amount of padding of frames is to improve the protections that - padding provides. - -
    - -
    - - Several characteristics of HTTP/2 provide an observer an opportunity to correlate actions - of a single client or server over time. This includes the value of settings, the manner - in which flow control windows are managed, the way priorities are allocated to streams, - timing of reactions to stimulus, and handling of any optional features. - - - As far as this creates observable differences in behavior, they could be used as a basis - for fingerprinting a specific client, as defined in . - -
    -
    - -
    - - A string for identifying HTTP/2 is entered into the "Application Layer Protocol Negotiation - (ALPN) Protocol IDs" registry established in . - - - This document establishes a registry for frame types, settings, and error codes. These new - registries are entered into a new "Hypertext Transfer Protocol (HTTP) 2 Parameters" section. - - - This document registers the HTTP2-Settings header field for - use in HTTP; and the 421 (Misdirected Request) status code. - - - This document registers the PRI method for use in HTTP, to avoid - collisions with the connection preface. - - -
    - - This document creates two registrations for the identification of HTTP/2 in the - "Application Layer Protocol Negotiation (ALPN) Protocol IDs" registry established in . - - - The "h2" string identifies HTTP/2 when used over TLS: - - HTTP/2 over TLS - 0x68 0x32 ("h2") - This document - - - - The "h2c" string identifies HTTP/2 when used over cleartext TCP: - - HTTP/2 over TCP - 0x68 0x32 0x63 ("h2c") - This document - - -
    - -
    - - This document establishes a registry for HTTP/2 frame type codes. The "HTTP/2 Frame - Type" registry manages an 8-bit space. The "HTTP/2 Frame Type" registry operates under - either of the "IETF Review" or "IESG Approval" policies for - values between 0x00 and 0xef, with values between 0xf0 and 0xff being reserved for - experimental use. - - - New entries in this registry require the following information: - - - A name or label for the frame type. - - - The 8-bit code assigned to the frame type. - - - A reference to a specification that includes a description of the frame layout, - it's semantics and flags that the frame type uses, including any parts of the frame - that are conditionally present based on the value of flags. - - - - - The entries in the following table are registered by this document. - - - Frame Type - Code - Section - DATA0x0 - HEADERS0x1 - PRIORITY0x2 - RST_STREAM0x3 - SETTINGS0x4 - PUSH_PROMISE0x5 - PING0x6 - GOAWAY0x7 - WINDOW_UPDATE0x8 - CONTINUATION0x9 - -
    - -
    - - This document establishes a registry for HTTP/2 settings. The "HTTP/2 Settings" registry - manages a 16-bit space. The "HTTP/2 Settings" registry operates under the "Expert Review" policy for values in the range from 0x0000 to - 0xefff, with values between and 0xf000 and 0xffff being reserved for experimental use. - - - New registrations are advised to provide the following information: - - - A symbolic name for the setting. Specifying a setting name is optional. - - - The 16-bit code assigned to the setting. - - - An initial value for the setting. - - - An optional reference to a specification that describes the use of the setting. - - - - - An initial set of setting registrations can be found in . - - - Name - Code - Initial Value - Specification - HEADER_TABLE_SIZE - 0x14096 - ENABLE_PUSH - 0x21 - MAX_CONCURRENT_STREAMS - 0x3(infinite) - INITIAL_WINDOW_SIZE - 0x465535 - MAX_FRAME_SIZE - 0x516384 - MAX_HEADER_LIST_SIZE - 0x6(infinite) - - -
    - -
    - - This document establishes a registry for HTTP/2 error codes. The "HTTP/2 Error Code" - registry manages a 32-bit space. The "HTTP/2 Error Code" registry operates under the - "Expert Review" policy. - - - Registrations for error codes are required to include a description of the error code. An - expert reviewer is advised to examine new registrations for possible duplication with - existing error codes. Use of existing registrations is to be encouraged, but not - mandated. - - - New registrations are advised to provide the following information: - - - A name for the error code. Specifying an error code name is optional. - - - The 32-bit error code value. - - - A brief description of the error code semantics, longer if no detailed specification - is provided. - - - An optional reference for a specification that defines the error code. - - - - - The entries in the following table are registered by this document. - - - Name - Code - Description - Specification - NO_ERROR0x0 - Graceful shutdown - - PROTOCOL_ERROR0x1 - Protocol error detected - - INTERNAL_ERROR0x2 - Implementation fault - - FLOW_CONTROL_ERROR0x3 - Flow control limits exceeded - - SETTINGS_TIMEOUT0x4 - Settings not acknowledged - - STREAM_CLOSED0x5 - Frame received for closed stream - - FRAME_SIZE_ERROR0x6 - Frame size incorrect - - REFUSED_STREAM0x7 - Stream not processed - - CANCEL0x8 - Stream cancelled - - COMPRESSION_ERROR0x9 - Compression state not updated - - CONNECT_ERROR0xa - TCP connection error for CONNECT method - - ENHANCE_YOUR_CALM0xb - Processing capacity exceeded - - INADEQUATE_SECURITY0xc - Negotiated TLS parameters not acceptable - - - -
    - -
    - - This section registers the HTTP2-Settings header field in the - Permanent Message Header Field Registry. - - - HTTP2-Settings - - - http - - - standard - - - IETF - - - of this document - - - This header field is only used by an HTTP/2 client for Upgrade-based negotiation. - - - -
    - -
    - - This section registers the PRI method in the HTTP Method - Registry (). - - - PRI - - - No - - - No - - - of this document - - - This method is never used by an actual client. This method will appear to be used - when an HTTP/1.1 server or intermediary attempts to parse an HTTP/2 connection - preface. - - - -
    - -
    - - This document registers the 421 (Misdirected Request) HTTP Status code in the Hypertext - Transfer Protocol (HTTP) Status Code Registry (). - - - - - 421 - - - Misdirected Request - - - of this document - - - -
    - -
    - -
    - - This document includes substantial input from the following individuals: - - - Adam Langley, Wan-Teh Chang, Jim Morrison, Mark Nottingham, Alyssa Wilk, Costin - Manolache, William Chan, Vitaliy Lvin, Joe Chan, Adam Barth, Ryan Hamilton, Gavin - Peters, Kent Alstad, Kevin Lindsay, Paul Amer, Fan Yang, Jonathan Leighton (SPDY - contributors). - - - Gabriel Montenegro and Willy Tarreau (Upgrade mechanism). - - - William Chan, Salvatore Loreto, Osama Mazahir, Gabriel Montenegro, Jitu Padhye, Roberto - Peon, Rob Trace (Flow control). - - - Mike Bishop (Extensibility). - - - Mark Nottingham, Julian Reschke, James Snell, Jeff Pinner, Mike Bishop, Herve Ruellan - (Substantial editorial contributions). - - - Kari Hurtta, Tatsuhiro Tsujikawa, Greg Wilkins, Poul-Henning Kamp. - - - Alexey Melnikov was an editor of this document during 2013. - - - A substantial proportion of Martin's contribution was supported by Microsoft during his - employment there. - - - -
    -
    - - - - - - HPACK - Header Compression for HTTP/2 - - - - - - - - - - - - Transmission Control Protocol - - - University of Southern California (USC)/Information Sciences - Institute - - - - - - - - - - - Key words for use in RFCs to Indicate Requirement Levels - - - Harvard University -
    sob@harvard.edu
    -
    - -
    - - -
    - - - - - HTTP Over TLS - - - - - - - - - - Uniform Resource Identifier (URI): Generic - Syntax - - - - - - - - - - - - The Base16, Base32, and Base64 Data Encodings - - - - - - - - - Guidelines for Writing an IANA Considerations Section in RFCs - - - - - - - - - - - Augmented BNF for Syntax Specifications: ABNF - - - - - - - - - - - The Transport Layer Security (TLS) Protocol Version 1.2 - - - - - - - - - - - Transport Layer Security (TLS) Extensions: Extension Definitions - - - - - - - - - - Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension - - - - - - - - - - - - - TLS Elliptic Curve Cipher Suites with SHA-256/384 and AES Galois - Counter Mode (GCM) - - - - - - - - - - - Digital Signature Standard (DSS) - - NIST - - - - - - - - - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing - - Adobe Systems Incorporated -
    fielding@gbiv.com
    -
    - - greenbytes GmbH -
    julian.reschke@greenbytes.de
    -
    - -
    - - -
    - - - - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content - - Adobe Systems Incorporated -
    fielding@gbiv.com
    -
    - - greenbytes GmbH -
    julian.reschke@greenbytes.de
    -
    - -
    - - -
    - - - Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests - - Adobe Systems Incorporated -
    fielding@gbiv.com
    -
    - - greenbytes GmbH -
    julian.reschke@greenbytes.de
    -
    - -
    - -
    - - - Hypertext Transfer Protocol (HTTP/1.1): Range Requests - - Adobe Systems Incorporated -
    fielding@gbiv.com
    -
    - - World Wide Web Consortium -
    ylafon@w3.org
    -
    - - greenbytes GmbH -
    julian.reschke@greenbytes.de
    -
    - -
    - -
    - - - Hypertext Transfer Protocol (HTTP/1.1): Caching - - Adobe Systems Incorporated -
    fielding@gbiv.com
    -
    - - Akamai -
    mnot@mnot.net
    -
    - - greenbytes GmbH -
    julian.reschke@greenbytes.de
    -
    - -
    - - -
    - - - Hypertext Transfer Protocol (HTTP/1.1): Authentication - - Adobe Systems Incorporated -
    fielding@gbiv.com
    -
    - - greenbytes GmbH -
    julian.reschke@greenbytes.de
    -
    - -
    - - -
    - - - - HTTP State Management Mechanism - - - - - -
    - - - - - - TCP Extensions for High Performance - - - - - - - - - - - - Transport Layer Security Protocol Compression Methods - - - - - - - - - Additional HTTP Status Codes - - - - - - - - - - - Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS) - - - - - - - - - - - - - - - AES Galois Counter Mode (GCM) Cipher Suites for TLS - - - - - - - - - - - - HTML5 - - - - - - - - - - - Latest version available at - . - - - - - - - Talking to Yourself for Fun and Profit - - - - - - - - - - - - - - BREACH: Reviving the CRIME Attack - - - - - - - - - - - Registration Procedures for Message Header Fields - - Nine by Nine -
    GK-IETF@ninebynine.org
    -
    - - BEA Systems -
    mnot@pobox.com
    -
    - - HP Labs -
    JeffMogul@acm.org
    -
    - -
    - - -
    - - - - Recommendations for Secure Use of TLS and DTLS - - - - - - - - - - - - - - - - - - HTTP Alternative Services - - - Akamai - - - Mozilla - - - greenbytes - - - - - - -
    - -
    - - This section is to be removed by RFC Editor before publication. - - -
    - - Renamed Not Authoritative status code to Misdirected Request. - -
    - -
    - - Pseudo-header fields are now required to appear strictly before regular ones. - - - Restored 1xx series status codes, except 101. - - - Changed frame length field 24-bits. Expanded frame header to 9 octets. Added a setting - to limit the damage. - - - Added a setting to advise peers of header set size limits. - - - Removed segments. - - - Made non-semantic-bearing HEADERS frames illegal in the HTTP mapping. - -
    - -
    - - Restored extensibility options. - - - Restricting TLS cipher suites to AEAD only. - - - Removing Content-Encoding requirements. - - - Permitting the use of PRIORITY after stream close. - - - Removed ALTSVC frame. - - - Removed BLOCKED frame. - - - Reducing the maximum padding size to 256 octets; removing padding from - CONTINUATION frames. - - - Removed per-frame GZIP compression. - -
    - -
    - - Added BLOCKED frame (at risk). - - - Simplified priority scheme. - - - Added DATA per-frame GZIP compression. - -
    - -
    - - Changed "connection header" to "connection preface" to avoid confusion. - - - Added dependency-based stream prioritization. - - - Added "h2c" identifier to distinguish between cleartext and secured HTTP/2. - - - Adding missing padding to PUSH_PROMISE. - - - Integrate ALTSVC frame and supporting text. - - - Dropping requirement on "deflate" Content-Encoding. - - - Improving security considerations around use of compression. - -
    - -
    - - Adding padding for data frames. - - - Renumbering frame types, error codes, and settings. - - - Adding INADEQUATE_SECURITY error code. - - - Updating TLS usage requirements to 1.2; forbidding TLS compression. - - - Removing extensibility for frames and settings. - - - Changing setting identifier size. - - - Removing the ability to disable flow control. - - - Changing the protocol identification token to "h2". - - - Changing the use of :authority to make it optional and to allow userinfo in non-HTTP - cases. - - - Allowing split on 0x0 for Cookie. - - - Reserved PRI method in HTTP/1.1 to avoid possible future collisions. - -
    - -
    - - Added cookie crumbling for more efficient header compression. - - - Added header field ordering with the value-concatenation mechanism. - -
    - -
    - - Marked draft for implementation. - -
    - -
    - - Adding definition for CONNECT method. - - - Constraining the use of push to safe, cacheable methods with no request body. - - - Changing from :host to :authority to remove any potential confusion. - - - Adding setting for header compression table size. - - - Adding settings acknowledgement. - - - Removing unnecessary and potentially problematic flags from CONTINUATION. - - - Added denial of service considerations. - -
    -
    - - Marking the draft ready for implementation. - - - Renumbering END_PUSH_PROMISE flag. - - - Editorial clarifications and changes. - -
    - -
    - - Added CONTINUATION frame for HEADERS and PUSH_PROMISE. - - - PUSH_PROMISE is no longer implicitly prohibited if SETTINGS_MAX_CONCURRENT_STREAMS is - zero. - - - Push expanded to allow all safe methods without a request body. - - - Clarified the use of HTTP header fields in requests and responses. Prohibited HTTP/1.1 - hop-by-hop header fields. - - - Requiring that intermediaries not forward requests with missing or illegal routing - :-headers. - - - Clarified requirements around handling different frames after stream close, stream reset - and GOAWAY. - - - Added more specific prohibitions for sending of different frame types in various stream - states. - - - Making the last received setting value the effective value. - - - Clarified requirements on TLS version, extension and ciphers. - -
    - -
    - - Committed major restructuring atrocities. - - - Added reference to first header compression draft. - - - Added more formal description of frame lifecycle. - - - Moved END_STREAM (renamed from FINAL) back to HEADERS/DATA. - - - Removed HEADERS+PRIORITY, added optional priority to HEADERS frame. - - - Added PRIORITY frame. - -
    - -
    - - Added continuations to frames carrying header blocks. - - - Replaced use of "session" with "connection" to avoid confusion with other HTTP stateful - concepts, like cookies. - - - Removed "message". - - - Switched to TLS ALPN from NPN. - - - Editorial changes. - -
    - -
    - - Added IANA considerations section for frame types, error codes and settings. - - - Removed data frame compression. - - - Added PUSH_PROMISE. - - - Added globally applicable flags to framing. - - - Removed zlib-based header compression mechanism. - - - Updated references. - - - Clarified stream identifier reuse. - - - Removed CREDENTIALS frame and associated mechanisms. - - - Added advice against naive implementation of flow control. - - - Added session header section. - - - Restructured frame header. Removed distinction between data and control frames. - - - Altered flow control properties to include session-level limits. - - - Added note on cacheability of pushed resources and multiple tenant servers. - - - Changed protocol label form based on discussions. - -
    - -
    - - Changed title throughout. - - - Removed section on Incompatibilities with SPDY draft#2. - - - Changed INTERNAL_ERROR on GOAWAY to have a value of 2 . - - - Replaced abstract and introduction. - - - Added section on starting HTTP/2.0, including upgrade mechanism. - - - Removed unused references. - - - Added flow control principles based on . - -
    - -
    - - Adopted as base for draft-ietf-httpbis-http2. - - - Updated authors/editors list. - - - Added status note. - -
    -
    - -
    -
    - diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/transport.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/transport.go deleted file mode 100644 index 1eea14c4..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/transport.go +++ /dev/null @@ -1,1104 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Transport code. - -package http2 - -import ( - "bufio" - "bytes" - "crypto/tls" - "errors" - "fmt" - "io" - "io/ioutil" - "log" - "net" - "net/http" - "strconv" - "strings" - "sync" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack" -) - -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 -) - -// 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 - - connPoolOnce sync.Once - connPoolOrDef ClientConnPool // non-nil version of ConnPool -} - -var errTransportVersion = errors.New("http2: ConfigureTransport is only supported starting at Go 1.6") - -// ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2. -// It requires Go 1.6 or later and returns an error if the net/http package is too old -// or if t1 has already been HTTP/2-enabled. -func ConfigureTransport(t1 *http.Transport) error { - return configureTransport(t1) // in configure_transport.go (go1.6) or go15.go -} - -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 - - // readLoop goroutine fields: - readerDone chan struct{} // closed on error - readerErr error // set before readerDone is closed - - 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 - closed bool - goAway *GoAwayFrame // if non-nil, the GoAwayFrame we received - streams map[uint32]*clientStream // client-initiated - nextStreamID uint32 - bw *bufio.Writer - br *bufio.Reader - fr *Framer - // Settings from peer: - maxFrameSize uint32 - maxConcurrentStreams uint32 - initialWindowSize uint32 - hbuf bytes.Buffer // HPACK encoder writes into this - henc *hpack.Encoder - freeBuf [][]byte - - wmu sync.Mutex // held while writing; acquire AFTER wmu 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 - ID uint32 - resc chan resAndError - bufPipe pipe // buffered pipe with the flow-controlled response payload - - flow flow // guarded by cc.mu - inflow flow // guarded by cc.mu - - peerReset chan struct{} // closed on peer reset - resetErr error // populated before peerReset is closed -} - -// checkReset reports any error sent in a RST_STREAM frame by the -// server. -func (cs *clientStream) checkReset() error { - select { - case <-cs.peerReset: - return cs.resetErr - default: - return nil - } -} - -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 -} - -var ErrNoCachedConn = errors.New("http2: no cached connection was available") - -// 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(authority string) (addr string) { - if _, _, err := net.SplitHostPort(authority); err == nil { - return authority - } - return net.JoinHostPort(authority, "443") -} - -// RoundTripOpt is like RoundTrip, but takes options. -func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Response, error) { - if req.URL.Scheme != "https" { - return nil, errors.New("http2: unsupported scheme") - } - - addr := authorityAddr(req.URL.Host) - for { - cc, err := t.connPool().GetClientConn(req, addr) - if err != nil { - return nil, err - } - res, err := cc.RoundTrip(req) - if shouldRetryRequest(req, err) { - continue - } - if err != nil { - 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().(*clientConnPool); ok { - cp.closeIdleConnections() - } -} - -var ( - errClientConnClosed = errors.New("http2: client conn is closed") - errClientConnUnusable = errors.New("http2: client conn not usable") -) - -func shouldRetryRequest(req *http.Request, err error) bool { - // TODO: retry GET requests (no bodies) more aggressively, if shutdown - // before response. - return err == errClientConnUnusable -} - -func (t *Transport) dialClientConn(addr string) (*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) -} - -func (t *Transport) newTLSConfig(host string) *tls.Config { - cfg := new(tls.Config) - if t.TLSClientConfig != nil { - *cfg = *t.TLSClientConfig - } - cfg.NextProtos = []string{NextProtoTLS} // TODO: don't override if already in list - 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 -} - -func (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) { - if _, err := c.Write(clientPreface); err != nil { - return nil, err - } - - 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. - streams: make(map[uint32]*clientStream), - } - 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.henc = hpack.NewEncoder(&cc.hbuf) - - type connectionStater interface { - ConnectionState() tls.ConnectionState - } - if cs, ok := c.(connectionStater); ok { - state := cs.ConnectionState() - cc.tlsState = &state - } - - cc.fr.WriteSettings( - Setting{ID: SettingEnablePush, Val: 0}, - Setting{ID: SettingInitialWindowSize, Val: transportDefaultStreamFlow}, - ) - cc.fr.WriteWindowUpdate(0, transportDefaultConnFlow) - cc.inflow.add(transportDefaultConnFlow + initialWindowSize) - cc.bw.Flush() - if cc.werr != nil { - return nil, cc.werr - } - - // Read the obligatory SETTINGS frame - f, err := cc.fr.ReadFrame() - if err != nil { - return nil, err - } - sf, ok := f.(*SettingsFrame) - if !ok { - return nil, fmt.Errorf("expected settings frame, got: %T", f) - } - cc.fr.WriteSettingsAck() - cc.bw.Flush() - - sf.ForeachSetting(func(s Setting) error { - switch s.ID { - case SettingMaxFrameSize: - cc.maxFrameSize = s.Val - case SettingMaxConcurrentStreams: - cc.maxConcurrentStreams = s.Val - case SettingInitialWindowSize: - cc.initialWindowSize = s.Val - default: - // TODO(bradfitz): handle more - t.vlogf("Unhandled Setting: %v", s) - } - return nil - }) - - go cc.readLoop() - return cc, nil -} - -func (cc *ClientConn) setGoAway(f *GoAwayFrame) { - cc.mu.Lock() - defer cc.mu.Unlock() - cc.goAway = f -} - -func (cc *ClientConn) CanTakeNewRequest() bool { - cc.mu.Lock() - defer cc.mu.Unlock() - return cc.canTakeNewRequestLocked() -} - -func (cc *ClientConn) canTakeNewRequestLocked() bool { - return cc.goAway == nil && - int64(len(cc.streams)+1) < int64(cc.maxConcurrentStreams) && - cc.nextStreamID < 2147483647 -} - -func (cc *ClientConn) closeIfIdle() { - cc.mu.Lock() - if len(cc.streams) > 0 { - cc.mu.Unlock() - return - } - cc.closed = true - // TODO: do clients send GOAWAY too? maybe? Just Close: - cc.mu.Unlock() - - 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. -} - -func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { - cc.mu.Lock() - - if cc.closed || !cc.canTakeNewRequestLocked() { - cc.mu.Unlock() - return nil, errClientConnUnusable - } - - cs := cc.newStream() - hasBody := req.Body != nil - - // we send: HEADERS{1}, CONTINUATION{0,} + DATA{0,} - hdrs := cc.encodeHeaders(req) - first := true // first frame written (HEADERS is first, then CONTINUATION) - - cc.wmu.Lock() - frameSize := int(cc.maxFrameSize) - for len(hdrs) > 0 && cc.werr == nil { - chunk := hdrs - if len(chunk) > frameSize { - chunk = chunk[:frameSize] - } - hdrs = hdrs[len(chunk):] - endHeaders := len(hdrs) == 0 - if first { - cc.fr.WriteHeaders(HeadersFrameParam{ - StreamID: cs.ID, - BlockFragment: chunk, - EndStream: !hasBody, - EndHeaders: endHeaders, - }) - first = false - } else { - cc.fr.WriteContinuation(cs.ID, endHeaders, chunk) - } - } - cc.bw.Flush() - werr := cc.werr - cc.wmu.Unlock() - cc.mu.Unlock() - - if werr != nil { - return nil, werr - } - - var bodyCopyErrc chan error - var gotResHeaders chan struct{} // closed on resheaders - if hasBody { - bodyCopyErrc = make(chan error, 1) - gotResHeaders = make(chan struct{}) - go func() { - bodyCopyErrc <- cs.writeRequestBody(req.Body, gotResHeaders) - }() - } - - for { - select { - case re := <-cs.resc: - if gotResHeaders != nil { - close(gotResHeaders) - } - if re.err != nil { - return nil, re.err - } - res := re.res - res.Request = req - res.TLS = cc.tlsState - return res, nil - case err := <-bodyCopyErrc: - if err != nil { - return nil, err - } - } - } -} - -var errServerResponseBeforeRequestBody = errors.New("http2: server sent response while still writing request body") - -func (cs *clientStream) writeRequestBody(body io.Reader, gotResHeaders <-chan struct{}) error { - cc := cs.cc - sentEnd := false // whether we sent the final DATA frame w/ END_STREAM - buf := cc.frameScratchBuffer() - defer cc.putFrameScratchBuffer(buf) - - for !sentEnd { - var sawEOF bool - n, err := io.ReadFull(body, buf) - if err == io.ErrUnexpectedEOF { - sawEOF = true - err = nil - } else if err == io.EOF { - break - } else if err != nil { - return err - } - - toWrite := buf[:n] - for len(toWrite) > 0 && err == nil { - var allowed int32 - allowed, err = cs.awaitFlowControl(int32(len(toWrite))) - if err != nil { - return err - } - - cc.wmu.Lock() - select { - case <-gotResHeaders: - err = errServerResponseBeforeRequestBody - case <-cs.peerReset: - err = cs.resetErr - default: - data := toWrite[:allowed] - toWrite = toWrite[allowed:] - sentEnd = sawEOF && len(toWrite) == 0 - err = cc.fr.WriteData(cs.ID, sentEnd, data) - } - cc.wmu.Unlock() - } - if err != nil { - return err - } - } - - var err error - - cc.wmu.Lock() - if !sentEnd { - err = cc.fr.WriteData(cs.ID, true, nil) - } - if ferr := cc.bw.Flush(); ferr != nil && err == nil { - err = ferr - } - cc.wmu.Unlock() - - 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 int32) (taken int32, err error) { - cc := cs.cc - cc.mu.Lock() - defer cc.mu.Unlock() - for { - if cc.closed { - return 0, errClientConnClosed - } - if err := cs.checkReset(); err != nil { - return 0, err - } - if a := cs.flow.available(); a > 0 { - take := a - if take > maxBytes { - take = maxBytes - } - if take > int32(cc.maxFrameSize) { - take = int32(cc.maxFrameSize) - } - cs.flow.take(take) - return take, nil - } - cc.cond.Wait() - } -} - -// requires cc.mu be held. -func (cc *ClientConn) encodeHeaders(req *http.Request) []byte { - cc.hbuf.Reset() - - // TODO(bradfitz): figure out :authority-vs-Host stuff between http2 and Go - host := req.Host - if host == "" { - host = req.URL.Host - } - - // 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]). - cc.writeHeader(":authority", host) // probably not right for all sites - cc.writeHeader(":method", req.Method) - cc.writeHeader(":path", req.URL.RequestURI()) - cc.writeHeader(":scheme", "https") - - for k, vv := range req.Header { - lowKey := strings.ToLower(k) - if lowKey == "host" { - continue - } - for _, v := range vv { - cc.writeHeader(lowKey, v) - } - } - return cc.hbuf.Bytes() -} - -func (cc *ClientConn) writeHeader(name, value string) { - 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{}), - } - 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) streamByID(id uint32, andRemove bool) *clientStream { - cc.mu.Lock() - defer cc.mu.Unlock() - cs := cc.streams[id] - if andRemove { - delete(cc.streams, id) - } - return cs -} - -// clientConnReadLoop is the state owned by the clientConn's frame-reading readLoop. -type clientConnReadLoop struct { - cc *ClientConn - activeRes map[uint32]*clientStream // keyed by streamID - - // continueStreamID is the stream ID we're waiting for - // continuation frames for. - continueStreamID uint32 - - hdec *hpack.Decoder - - // Fields reset on each HEADERS: - nextRes *http.Response - sawRegHeader bool // saw non-pseudo header - reqMalformed error // non-nil once known to be malformed -} - -// readLoop runs in its own goroutine and reads and dispatches frames. -func (cc *ClientConn) readLoop() { - rl := &clientConnReadLoop{ - cc: cc, - activeRes: make(map[uint32]*clientStream), - } - // TODO: figure out henc size - rl.hdec = hpack.NewDecoder(initialHeaderTableSize, rl.onNewHeaderField) - - 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() - } -} - -func (rl *clientConnReadLoop) cleanup() { - cc := rl.cc - defer cc.tconn.Close() - defer cc.t.connPool().MarkDead(cc) - defer close(cc.readerDone) - - // 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 - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - cc.mu.Lock() - for _, cs := range rl.activeRes { - cs.bufPipe.CloseWithError(err) - } - for _, cs := range cc.streams { - select { - case cs.resc <- resAndError{err: err}: - default: - } - } - cc.closed = true - cc.cond.Broadcast() - cc.mu.Unlock() -} - -func (rl *clientConnReadLoop) run() error { - cc := rl.cc - for { - f, err := cc.fr.ReadFrame() - if se, ok := err.(StreamError); ok { - // TODO: deal with stream errors from the framer. - return se - } else if err != nil { - return err - } - cc.vlogf("Transport received %v: %#v", f.Header(), f) - - streamID := f.Header().StreamID - - _, isContinue := f.(*ContinuationFrame) - if isContinue { - if streamID != rl.continueStreamID { - cc.logf("Protocol violation: got CONTINUATION with id %d; want %d", streamID, rl.continueStreamID) - return ConnectionError(ErrCodeProtocol) - } - } else if rl.continueStreamID != 0 { - // Continue frames need to be adjacent in the stream - // and we were in the middle of headers. - cc.logf("Protocol violation: got %T for stream %d, want CONTINUATION for %d", f, streamID, rl.continueStreamID) - return ConnectionError(ErrCodeProtocol) - } - - switch f := f.(type) { - case *HeadersFrame: - err = rl.processHeaders(f) - case *ContinuationFrame: - err = rl.processContinuation(f) - case *DataFrame: - err = rl.processData(f) - case *GoAwayFrame: - err = rl.processGoAway(f) - case *RSTStreamFrame: - err = rl.processResetStream(f) - 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 { - return err - } - } -} - -func (rl *clientConnReadLoop) processHeaders(f *HeadersFrame) error { - rl.sawRegHeader = false - rl.reqMalformed = nil - rl.nextRes = &http.Response{ - Proto: "HTTP/2.0", - ProtoMajor: 2, - Header: make(http.Header), - } - return rl.processHeaderBlockFragment(f.HeaderBlockFragment(), f.StreamID, f.HeadersEnded(), f.StreamEnded()) -} - -func (rl *clientConnReadLoop) processContinuation(f *ContinuationFrame) error { - return rl.processHeaderBlockFragment(f.HeaderBlockFragment(), f.StreamID, f.HeadersEnded(), f.StreamEnded()) -} - -func (rl *clientConnReadLoop) processHeaderBlockFragment(frag []byte, streamID uint32, headersEnded, streamEnded bool) error { - cc := rl.cc - cs := cc.streamByID(streamID, streamEnded) - if cs == nil { - // We could return a ConnectionError(ErrCodeProtocol) - // here, except that in the case of us canceling - // client requests, we may also delete from the - // streams map, in which case we forgot that we sent - // this request. So, just ignore any responses for - // now. They might've been in-flight before the - // server got our RST_STREAM. - return nil - } - _, err := rl.hdec.Write(frag) - if err != nil { - return err - } - if !headersEnded { - rl.continueStreamID = cs.ID - return nil - } - - // HEADERS (or CONTINUATION) are now over. - rl.continueStreamID = 0 - - if rl.reqMalformed != nil { - cs.resc <- resAndError{err: rl.reqMalformed} - rl.cc.writeStreamReset(cs.ID, ErrCodeProtocol, rl.reqMalformed) - return nil - } - - res := rl.nextRes - if streamEnded { - res.Body = noBody - } else { - buf := new(bytes.Buffer) // TODO(bradfitz): recycle this garbage - cs.bufPipe = pipe{b: buf} - res.Body = transportResponseBody{cs} - } - rl.activeRes[cs.ID] = cs - cs.resc <- resAndError{res: res} - rl.nextRes = nil // unused now; will be reset next HEADERS frame - 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) { - n, err = b.cs.bufPipe.Read(p) - if n == 0 { - return - } - - cs := b.cs - cc := cs.cc - 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. - if v := cs.inflow.available(); v < transportDefaultStreamFlow-transportDefaultStreamMinRefresh { - streamAdd = 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 -} - -func (b transportResponseBody) Close() error { - if b.cs.bufPipe.Err() != io.EOF { - // TODO: write test for this - b.cs.cc.writeStreamReset(b.cs.ID, ErrCodeCancel, nil) - } - return nil -} - -func (rl *clientConnReadLoop) processData(f *DataFrame) error { - cc := rl.cc - cs := cc.streamByID(f.StreamID, f.StreamEnded()) - if cs == nil { - return nil - } - data := f.Data() - if VerboseLogs { - rl.cc.logf("DATA: %q", data) - } - - // Check connection-level flow control. - cc.mu.Lock() - if cs.inflow.available() >= int32(len(data)) { - cs.inflow.take(int32(len(data))) - } else { - cc.mu.Unlock() - return ConnectionError(ErrCodeFlowControl) - } - cc.mu.Unlock() - - if _, err := cs.bufPipe.Write(data); err != nil { - return err - } - - if f.StreamEnded() { - cs.bufPipe.CloseWithError(io.EOF) - delete(rl.activeRes, cs.ID) - } - return nil -} - -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() - return f.ForeachSetting(func(s Setting) error { - switch s.ID { - case SettingMaxFrameSize: - cc.maxFrameSize = s.Val - case SettingMaxConcurrentStreams: - cc.maxConcurrentStreams = s.Val - case SettingInitialWindowSize: - // TODO: error if this is too large. - - // TODO: adjust flow control of still-open - // frames by the difference of the old initial - // window size and this one. - cc.initialWindowSize = s.Val - default: - // TODO(bradfitz): handle more settings? - cc.vlogf("Unhandled Setting: %v", s) - } - return nil - }) -} - -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) - } - delete(rl.activeRes, cs.ID) - return nil -} - -func (rl *clientConnReadLoop) processPing(f *PingFrame) error { - if f.IsAck() { - // 6.7 PING: " An endpoint MUST NOT respond to PING frames - // containing this flag." - 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: do something with err? send it as a debug frame to the peer? - // But that's only in GOAWAY. Invent a new frame type? Is there one already? - cc.wmu.Lock() - cc.fr.WriteRSTStream(streamID, code) - cc.wmu.Unlock() -} - -// onNewHeaderField runs on the readLoop goroutine whenever a new -// hpack header field is decoded. -func (rl *clientConnReadLoop) onNewHeaderField(f hpack.HeaderField) { - cc := rl.cc - if VerboseLogs { - cc.logf("Header field: %+v", f) - } - isPseudo := strings.HasPrefix(f.Name, ":") - if isPseudo { - if rl.sawRegHeader { - rl.reqMalformed = errors.New("http2: invalid pseudo header after regular header") - return - } - switch f.Name { - case ":status": - code, err := strconv.Atoi(f.Value) - if err != nil { - rl.reqMalformed = errors.New("http2: invalid :status") - return - } - rl.nextRes.Status = f.Value + " " + http.StatusText(code) - rl.nextRes.StatusCode = code - default: - // "Endpoints MUST NOT generate pseudo-header - // fields other than those defined in this - // document." - rl.reqMalformed = fmt.Errorf("http2: unknown response pseudo header %q", f.Name) - } - } else { - rl.sawRegHeader = true - rl.nextRes.Header.Add(http.CanonicalHeaderKey(f.Name), f.Value) - } -} - -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 } diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/transport_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/transport_test.go deleted file mode 100644 index b7385d65..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/transport_test.go +++ /dev/null @@ -1,375 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package http2 - -import ( - "crypto/tls" - "flag" - "fmt" - "io" - "io/ioutil" - "math/rand" - "net" - "net/http" - "net/url" - "os" - "reflect" - "strings" - "sync" - "testing" - "time" -) - -var ( - extNet = flag.Bool("extnet", false, "do external network tests") - transportHost = flag.String("transporthost", "http2.golang.org", "hostname to use for TestTransport") - insecure = flag.Bool("insecure", false, "insecure TLS dials") // TODO: dead code. remove? -) - -var tlsConfigInsecure = &tls.Config{InsecureSkipVerify: true} - -func TestTransportExternal(t *testing.T) { - if !*extNet { - t.Skip("skipping external network test") - } - req, _ := http.NewRequest("GET", "https://"+*transportHost+"/", nil) - rt := &Transport{TLSClientConfig: tlsConfigInsecure} - res, err := rt.RoundTrip(req) - if err != nil { - t.Fatalf("%v", err) - } - res.Write(os.Stdout) -} - -func TestTransport(t *testing.T) { - const body = "sup" - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - io.WriteString(w, body) - }, optOnlyServer) - defer st.Close() - - tr := &Transport{TLSClientConfig: tlsConfigInsecure} - defer tr.CloseIdleConnections() - - req, err := http.NewRequest("GET", st.ts.URL, nil) - if err != nil { - t.Fatal(err) - } - res, err := tr.RoundTrip(req) - if err != nil { - t.Fatal(err) - } - defer res.Body.Close() - - t.Logf("Got res: %+v", res) - if g, w := res.StatusCode, 200; g != w { - t.Errorf("StatusCode = %v; want %v", g, w) - } - if g, w := res.Status, "200 OK"; g != w { - t.Errorf("Status = %q; want %q", g, w) - } - wantHeader := http.Header{ - "Content-Length": []string{"3"}, - "Content-Type": []string{"text/plain; charset=utf-8"}, - } - if !reflect.DeepEqual(res.Header, wantHeader) { - t.Errorf("res Header = %v; want %v", res.Header, wantHeader) - } - if res.Request != req { - t.Errorf("Response.Request = %p; want %p", res.Request, req) - } - if res.TLS == nil { - t.Error("Response.TLS = nil; want non-nil") - } - slurp, err := ioutil.ReadAll(res.Body) - if err != nil { - t.Errorf("Body read: %v", err) - } else if string(slurp) != body { - t.Errorf("Body = %q; want %q", slurp, body) - } - -} - -func TestTransportReusesConns(t *testing.T) { - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - io.WriteString(w, r.RemoteAddr) - }, optOnlyServer) - defer st.Close() - tr := &Transport{TLSClientConfig: tlsConfigInsecure} - defer tr.CloseIdleConnections() - get := func() string { - req, err := http.NewRequest("GET", st.ts.URL, nil) - if err != nil { - t.Fatal(err) - } - res, err := tr.RoundTrip(req) - if err != nil { - t.Fatal(err) - } - defer res.Body.Close() - slurp, err := ioutil.ReadAll(res.Body) - if err != nil { - t.Fatalf("Body read: %v", err) - } - addr := strings.TrimSpace(string(slurp)) - if addr == "" { - t.Fatalf("didn't get an addr in response") - } - return addr - } - first := get() - second := get() - if first != second { - t.Errorf("first and second responses were on different connections: %q vs %q", first, second) - } -} - -func TestTransportAbortClosesPipes(t *testing.T) { - shutdown := make(chan struct{}) - st := newServerTester(t, - func(w http.ResponseWriter, r *http.Request) { - w.(http.Flusher).Flush() - <-shutdown - }, - optOnlyServer, - ) - defer st.Close() - defer close(shutdown) // we must shutdown before st.Close() to avoid hanging - - done := make(chan struct{}) - requestMade := make(chan struct{}) - go func() { - defer close(done) - tr := &Transport{TLSClientConfig: tlsConfigInsecure} - req, err := http.NewRequest("GET", st.ts.URL, nil) - if err != nil { - t.Fatal(err) - } - res, err := tr.RoundTrip(req) - if err != nil { - t.Fatal(err) - } - defer res.Body.Close() - close(requestMade) - _, err = ioutil.ReadAll(res.Body) - if err == nil { - t.Error("expected error from res.Body.Read") - } - }() - - <-requestMade - // Now force the serve loop to end, via closing the connection. - st.closeConn() - // deadlock? that's a bug. - select { - case <-done: - case <-time.After(3 * time.Second): - t.Fatal("timeout") - } -} - -// TODO: merge this with TestTransportBody to make TestTransportRequest? This -// could be a table-driven test with extra goodies. -func TestTransportPath(t *testing.T) { - gotc := make(chan *url.URL, 1) - st := newServerTester(t, - func(w http.ResponseWriter, r *http.Request) { - gotc <- r.URL - }, - optOnlyServer, - ) - defer st.Close() - - tr := &Transport{TLSClientConfig: tlsConfigInsecure} - defer tr.CloseIdleConnections() - const ( - path = "/testpath" - query = "q=1" - ) - surl := st.ts.URL + path + "?" + query - req, err := http.NewRequest("POST", surl, nil) - if err != nil { - t.Fatal(err) - } - c := &http.Client{Transport: tr} - res, err := c.Do(req) - if err != nil { - t.Fatal(err) - } - defer res.Body.Close() - got := <-gotc - if got.Path != path { - t.Errorf("Read Path = %q; want %q", got.Path, path) - } - if got.RawQuery != query { - t.Errorf("Read RawQuery = %q; want %q", got.RawQuery, query) - } -} - -func randString(n int) string { - rnd := rand.New(rand.NewSource(int64(n))) - b := make([]byte, n) - for i := range b { - b[i] = byte(rnd.Intn(256)) - } - return string(b) -} - -var bodyTests = []struct { - body string - noContentLen bool -}{ - {body: "some message"}, - {body: "some message", noContentLen: true}, - {body: ""}, - {body: "", noContentLen: true}, - {body: strings.Repeat("a", 1<<20), noContentLen: true}, - {body: strings.Repeat("a", 1<<20)}, - {body: randString(16<<10 - 1)}, - {body: randString(16 << 10)}, - {body: randString(16<<10 + 1)}, - {body: randString(512<<10 - 1)}, - {body: randString(512 << 10)}, - {body: randString(512<<10 + 1)}, - {body: randString(1<<20 - 1)}, - {body: randString(1 << 20)}, - {body: randString(1<<20 + 2)}, -} - -func TestTransportBody(t *testing.T) { - gotc := make(chan interface{}, 1) - st := newServerTester(t, - func(w http.ResponseWriter, r *http.Request) { - slurp, err := ioutil.ReadAll(r.Body) - if err != nil { - gotc <- err - } else { - gotc <- string(slurp) - } - }, - optOnlyServer, - ) - defer st.Close() - - for i, tt := range bodyTests { - tr := &Transport{TLSClientConfig: tlsConfigInsecure} - defer tr.CloseIdleConnections() - - var body io.Reader = strings.NewReader(tt.body) - if tt.noContentLen { - body = struct{ io.Reader }{body} // just a Reader, hiding concrete type and other methods - } - req, err := http.NewRequest("POST", st.ts.URL, body) - if err != nil { - t.Fatalf("#%d: %v", i, err) - } - c := &http.Client{Transport: tr} - res, err := c.Do(req) - if err != nil { - t.Fatalf("#%d: %v", i, err) - } - defer res.Body.Close() - got := <-gotc - if err, ok := got.(error); ok { - t.Fatalf("#%d: %v", i, err) - } else if got.(string) != tt.body { - got := got.(string) - t.Errorf("#%d: Read body mismatch.\n got: %q (len %d)\nwant: %q (len %d)", i, shortString(got), len(got), shortString(tt.body), len(tt.body)) - } - } -} - -func shortString(v string) string { - const maxLen = 100 - if len(v) <= maxLen { - return v - } - return fmt.Sprintf("%v[...%d bytes omitted...]%v", v[:maxLen/2], len(v)-maxLen, v[len(v)-maxLen/2:]) -} - -func TestTransportDialTLS(t *testing.T) { - var mu sync.Mutex // guards following - var gotReq, didDial bool - - ts := newServerTester(t, - func(w http.ResponseWriter, r *http.Request) { - mu.Lock() - gotReq = true - mu.Unlock() - }, - optOnlyServer, - ) - defer ts.Close() - tr := &Transport{ - DialTLS: func(netw, addr string, cfg *tls.Config) (net.Conn, error) { - mu.Lock() - didDial = true - mu.Unlock() - cfg.InsecureSkipVerify = true - c, err := tls.Dial(netw, addr, cfg) - if err != nil { - return nil, err - } - return c, c.Handshake() - }, - } - defer tr.CloseIdleConnections() - client := &http.Client{Transport: tr} - res, err := client.Get(ts.ts.URL) - if err != nil { - t.Fatal(err) - } - res.Body.Close() - mu.Lock() - if !gotReq { - t.Error("didn't get request") - } - if !didDial { - t.Error("didn't use dial hook") - } -} - -func TestConfigureTransport(t *testing.T) { - t1 := &http.Transport{} - err := ConfigureTransport(t1) - if err == errTransportVersion { - t.Skip(err) - } - if err != nil { - t.Fatal(err) - } - if got := fmt.Sprintf("%#v", *t1); !strings.Contains(got, `"h2"`) { - // Laziness, to avoid buildtags. - t.Errorf("stringification of HTTP/1 transport didn't contain \"h2\": %v", got) - } - if t1.TLSClientConfig == nil { - t.Errorf("nil t1.TLSClientConfig") - } else if !reflect.DeepEqual(t1.TLSClientConfig.NextProtos, []string{"h2"}) { - t.Errorf("TLSClientConfig.NextProtos = %q; want just 'h2'", t1.TLSClientConfig.NextProtos) - } - if err := ConfigureTransport(t1); err == nil { - t.Error("unexpected success on second call to ConfigureTransport") - } - - // And does it work? - st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { - io.WriteString(w, r.Proto) - }, optOnlyServer) - defer st.Close() - - t1.TLSClientConfig.InsecureSkipVerify = true - c := &http.Client{Transport: t1} - res, err := c.Get(st.ts.URL) - if err != nil { - t.Fatal(err) - } - slurp, err := ioutil.ReadAll(res.Body) - if err != nil { - t.Fatal(err) - } - if got, want := string(slurp), "HTTP/2.0"; got != want { - t.Errorf("body = %q; want %q", got, want) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/write.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/write.go deleted file mode 100644 index 511d1f43..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/write.go +++ /dev/null @@ -1,206 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package http2 - -import ( - "bytes" - "fmt" - "net/http" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/hpack" -) - -// writeFramer is implemented by any type that is used to write frames. -type writeFramer interface { - writeFrame(writeContext) error -} - -// 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: use it from the client code too, once it exists. -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) -} - -// endsStream reports whether the given frame writer w will locally -// close the stream. -func endsStream(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("endsStream called on nil writeFramer") - } - return false -} - -type flushFrameWriter struct{} - -func (flushFrameWriter) writeFrame(ctx writeContext) error { - return ctx.Flush() -} - -type writeSettings []Setting - -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) - if p.code != 0 { - ctx.Flush() // ignore error: we're hanging up on them anyway - time.Sleep(50 * time.Millisecond) - ctx.CloseConn() - } - return err -} - -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 (se StreamError) writeFrame(ctx writeContext) error { - return ctx.Framer().WriteRSTStream(se.StreamID, se.Code) -} - -type writePingAck struct{ pf *PingFrame } - -func (w writePingAck) writeFrame(ctx writeContext) error { - return ctx.Framer().WritePing(true, w.pf.Data) -} - -type writeSettingsAck struct{} - -func (writeSettingsAck) writeFrame(ctx writeContext) error { - return ctx.Framer().WriteSettingsAck() -} - -// writeResHeaders is a request to write a HEADERS and 0+ CONTINUATION frames -// for HTTP response headers from a server handler. -type writeResHeaders struct { - streamID uint32 - httpResCode int - h http.Header // may be nil - endStream bool - - contentType string - contentLength string -} - -func (w *writeResHeaders) writeFrame(ctx writeContext) error { - enc, buf := ctx.HeaderEncoder() - buf.Reset() - enc.WriteField(hpack.HeaderField{Name: ":status", Value: httpCodeString(w.httpResCode)}) - for k, vv := range w.h { - k = lowerHeader(k) - for _, v := range vv { - // TODO: more of "8.1.2.2 Connection-Specific Header Fields" - if k == "transfer-encoding" && v != "trailers" { - continue - } - enc.WriteField(hpack.HeaderField{Name: k, Value: v}) - } - } - if w.contentType != "" { - enc.WriteField(hpack.HeaderField{Name: "content-type", Value: w.contentType}) - } - if w.contentLength != "" { - enc.WriteField(hpack.HeaderField{Name: "content-length", Value: w.contentLength}) - } - - headerBlock := buf.Bytes() - if len(headerBlock) == 0 { - panic("unexpected empty hpack") - } - - // 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):] - endHeaders := len(headerBlock) == 0 - var err error - if first { - first = false - err = ctx.Framer().WriteHeaders(HeadersFrameParam{ - StreamID: w.streamID, - BlockFragment: frag, - EndStream: w.endStream, - EndHeaders: endHeaders, - }) - } else { - err = ctx.Framer().WriteContinuation(w.streamID, endHeaders, frag) - } - if err != nil { - return err - } - } - return nil -} - -type write100ContinueHeadersFrame struct { - streamID uint32 -} - -func (w write100ContinueHeadersFrame) writeFrame(ctx writeContext) error { - enc, buf := ctx.HeaderEncoder() - buf.Reset() - enc.WriteField(hpack.HeaderField{Name: ":status", Value: "100"}) - return ctx.Framer().WriteHeaders(HeadersFrameParam{ - StreamID: w.streamID, - BlockFragment: buf.Bytes(), - EndStream: false, - EndHeaders: true, - }) -} - -type writeWindowUpdate struct { - streamID uint32 // or 0 for conn-level - n uint32 -} - -func (wu writeWindowUpdate) writeFrame(ctx writeContext) error { - return ctx.Framer().WriteWindowUpdate(wu.streamID, wu.n) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/writesched.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/writesched.go deleted file mode 100644 index c24316ce..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/writesched.go +++ /dev/null @@ -1,283 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package http2 - -import "fmt" - -// frameWriteMsg is a request to write a frame. -type frameWriteMsg struct { - // write is the interface value that does the writing, once the - // writeScheduler (below) has decided to select this frame - // to write. The write functions are all defined in write.go. - write writeFramer - - stream *stream // used for prioritization. nil for non-stream frames. - - // 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 -} - -// for debugging only: -func (wm frameWriteMsg) String() string { - var streamID uint32 - if wm.stream != nil { - streamID = wm.stream.id - } - var des string - if s, ok := wm.write.(fmt.Stringer); ok { - des = s.String() - } else { - des = fmt.Sprintf("%T", wm.write) - } - return fmt.Sprintf("[frameWriteMsg stream=%d, ch=%v, type: %v]", streamID, wm.done != nil, des) -} - -// writeScheduler tracks pending frames to write, priorities, and decides -// the next one to use. It is not thread-safe. -type writeScheduler struct { - // zero are frames not associated with a specific stream. - // They're sent before any stream-specific freams. - zero writeQueue - - // maxFrameSize is the maximum size of a DATA frame - // we'll write. Must be non-zero and between 16K-16M. - maxFrameSize uint32 - - // sq contains the stream-specific queues, keyed by stream ID. - // when a stream is idle, it's deleted from the map. - sq map[uint32]*writeQueue - - // canSend is a slice of memory that's reused between frame - // scheduling decisions to hold the list of writeQueues (from sq) - // which have enough flow control data to send. After canSend is - // built, the best is selected. - canSend []*writeQueue - - // pool of empty queues for reuse. - queuePool []*writeQueue -} - -func (ws *writeScheduler) putEmptyQueue(q *writeQueue) { - if len(q.s) != 0 { - panic("queue must be empty") - } - ws.queuePool = append(ws.queuePool, q) -} - -func (ws *writeScheduler) getEmptyQueue() *writeQueue { - ln := len(ws.queuePool) - if ln == 0 { - return new(writeQueue) - } - q := ws.queuePool[ln-1] - ws.queuePool = ws.queuePool[:ln-1] - return q -} - -func (ws *writeScheduler) empty() bool { return ws.zero.empty() && len(ws.sq) == 0 } - -func (ws *writeScheduler) add(wm frameWriteMsg) { - st := wm.stream - if st == nil { - ws.zero.push(wm) - } else { - ws.streamQueue(st.id).push(wm) - } -} - -func (ws *writeScheduler) streamQueue(streamID uint32) *writeQueue { - if q, ok := ws.sq[streamID]; ok { - return q - } - if ws.sq == nil { - ws.sq = make(map[uint32]*writeQueue) - } - q := ws.getEmptyQueue() - ws.sq[streamID] = q - return q -} - -// take returns the most important frame to write and removes it from the scheduler. -// It is illegal to call this if the scheduler is empty or if there are no connection-level -// flow control bytes available. -func (ws *writeScheduler) take() (wm frameWriteMsg, ok bool) { - if ws.maxFrameSize == 0 { - panic("internal error: ws.maxFrameSize not initialized or invalid") - } - - // If there any frames not associated with streams, prefer those first. - // These are usually SETTINGS, etc. - if !ws.zero.empty() { - return ws.zero.shift(), true - } - if len(ws.sq) == 0 { - return - } - - // Next, prioritize frames on streams that aren't DATA frames (no cost). - for id, q := range ws.sq { - if q.firstIsNoCost() { - return ws.takeFrom(id, q) - } - } - - // Now, all that remains are DATA frames with non-zero bytes to - // send. So pick the best one. - if len(ws.canSend) != 0 { - panic("should be empty") - } - for _, q := range ws.sq { - if n := ws.streamWritableBytes(q); n > 0 { - ws.canSend = append(ws.canSend, q) - } - } - if len(ws.canSend) == 0 { - return - } - defer ws.zeroCanSend() - - // TODO: find the best queue - q := ws.canSend[0] - - return ws.takeFrom(q.streamID(), q) -} - -// zeroCanSend is defered from take. -func (ws *writeScheduler) zeroCanSend() { - for i := range ws.canSend { - ws.canSend[i] = nil - } - ws.canSend = ws.canSend[:0] -} - -// streamWritableBytes returns the number of DATA bytes we could write -// from the given queue's stream, if this stream/queue were -// selected. It is an error to call this if q's head isn't a -// *writeData. -func (ws *writeScheduler) streamWritableBytes(q *writeQueue) int32 { - wm := q.head() - ret := wm.stream.flow.available() // max we can write - if ret == 0 { - return 0 - } - if int32(ws.maxFrameSize) < ret { - ret = int32(ws.maxFrameSize) - } - if ret == 0 { - panic("internal error: ws.maxFrameSize not initialized or invalid") - } - wd := wm.write.(*writeData) - if len(wd.p) < int(ret) { - ret = int32(len(wd.p)) - } - return ret -} - -func (ws *writeScheduler) takeFrom(id uint32, q *writeQueue) (wm frameWriteMsg, ok bool) { - wm = q.head() - // If the first item in this queue costs flow control tokens - // and we don't have enough, write as much as we can. - if wd, ok := wm.write.(*writeData); ok && len(wd.p) > 0 { - allowed := wm.stream.flow.available() // max we can write - if allowed == 0 { - // No quota available. Caller can try the next stream. - return frameWriteMsg{}, false - } - if int32(ws.maxFrameSize) < allowed { - allowed = int32(ws.maxFrameSize) - } - // TODO: further restrict the allowed size, because even if - // the peer says it's okay to write 16MB data frames, we might - // want to write smaller ones to properly weight competing - // streams' priorities. - - if len(wd.p) > int(allowed) { - wm.stream.flow.take(allowed) - chunk := wd.p[:allowed] - wd.p = wd.p[allowed:] - // Make up a new write message of a valid size, rather - // than shifting one off the queue. - return frameWriteMsg{ - stream: wm.stream, - write: &writeData{ - streamID: wd.streamID, - p: chunk, - // even if the original had endStream set, there - // arebytes remaining because len(wd.p) > allowed, - // so we know endStream is false: - endStream: false, - }, - // our caller is blocking on the final DATA frame, not - // these intermediates, so no need to wait: - done: nil, - }, true - } - wm.stream.flow.take(int32(len(wd.p))) - } - - q.shift() - if q.empty() { - ws.putEmptyQueue(q) - delete(ws.sq, id) - } - return wm, true -} - -func (ws *writeScheduler) forgetStream(id uint32) { - q, ok := ws.sq[id] - if !ok { - return - } - delete(ws.sq, id) - - // But keep it for others later. - for i := range q.s { - q.s[i] = frameWriteMsg{} - } - q.s = q.s[:0] - ws.putEmptyQueue(q) -} - -type writeQueue struct { - s []frameWriteMsg -} - -// streamID returns the stream ID for a non-empty stream-specific queue. -func (q *writeQueue) streamID() uint32 { return q.s[0].stream.id } - -func (q *writeQueue) empty() bool { return len(q.s) == 0 } - -func (q *writeQueue) push(wm frameWriteMsg) { - q.s = append(q.s, wm) -} - -// head returns the next item that would be removed by shift. -func (q *writeQueue) head() frameWriteMsg { - if len(q.s) == 0 { - panic("invalid use of queue") - } - return q.s[0] -} - -func (q *writeQueue) shift() frameWriteMsg { - if len(q.s) == 0 { - panic("invalid use of queue") - } - wm := q.s[0] - // TODO: less copy-happy queue. - copy(q.s, q.s[1:]) - q.s[len(q.s)-1] = frameWriteMsg{} - q.s = q.s[:len(q.s)-1] - return wm -} - -func (q *writeQueue) firstIsNoCost() bool { - if df, ok := q.s[0].write.(*writeData); ok { - return len(df.p) == 0 - } - return true -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/z_spec_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/z_spec_test.go deleted file mode 100644 index e0f420a1..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/http2/z_spec_test.go +++ /dev/null @@ -1,356 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package http2 - -import ( - "bytes" - "encoding/xml" - "flag" - "fmt" - "io" - "os" - "reflect" - "regexp" - "sort" - "strconv" - "strings" - "sync" - "testing" -) - -var coverSpec = flag.Bool("coverspec", false, "Run spec coverage tests") - -// The global map of sentence coverage for the http2 spec. -var defaultSpecCoverage specCoverage - -var loadSpecOnce sync.Once - -func loadSpec() { - if f, err := os.Open("testdata/draft-ietf-httpbis-http2.xml"); err != nil { - panic(err) - } else { - defaultSpecCoverage = readSpecCov(f) - f.Close() - } -} - -// covers marks all sentences for section sec in defaultSpecCoverage. Sentences not -// "covered" will be included in report outputed by TestSpecCoverage. -func covers(sec, sentences string) { - loadSpecOnce.Do(loadSpec) - defaultSpecCoverage.cover(sec, sentences) -} - -type specPart struct { - section string - sentence string -} - -func (ss specPart) Less(oo specPart) bool { - atoi := func(s string) int { - n, err := strconv.Atoi(s) - if err != nil { - panic(err) - } - return n - } - a := strings.Split(ss.section, ".") - b := strings.Split(oo.section, ".") - for len(a) > 0 { - if len(b) == 0 { - return false - } - x, y := atoi(a[0]), atoi(b[0]) - if x == y { - a, b = a[1:], b[1:] - continue - } - return x < y - } - if len(b) > 0 { - return true - } - return false -} - -type bySpecSection []specPart - -func (a bySpecSection) Len() int { return len(a) } -func (a bySpecSection) Less(i, j int) bool { return a[i].Less(a[j]) } -func (a bySpecSection) Swap(i, j int) { a[i], a[j] = a[j], a[i] } - -type specCoverage struct { - coverage map[specPart]bool - d *xml.Decoder -} - -func joinSection(sec []int) string { - s := fmt.Sprintf("%d", sec[0]) - for _, n := range sec[1:] { - s = fmt.Sprintf("%s.%d", s, n) - } - return s -} - -func (sc specCoverage) readSection(sec []int) { - var ( - buf = new(bytes.Buffer) - sub = 0 - ) - for { - tk, err := sc.d.Token() - if err != nil { - if err == io.EOF { - return - } - panic(err) - } - switch v := tk.(type) { - case xml.StartElement: - if skipElement(v) { - if err := sc.d.Skip(); err != nil { - panic(err) - } - if v.Name.Local == "section" { - sub++ - } - break - } - switch v.Name.Local { - case "section": - sub++ - sc.readSection(append(sec, sub)) - case "xref": - buf.Write(sc.readXRef(v)) - } - case xml.CharData: - if len(sec) == 0 { - break - } - buf.Write(v) - case xml.EndElement: - if v.Name.Local == "section" { - sc.addSentences(joinSection(sec), buf.String()) - return - } - } - } -} - -func (sc specCoverage) readXRef(se xml.StartElement) []byte { - var b []byte - for { - tk, err := sc.d.Token() - if err != nil { - panic(err) - } - switch v := tk.(type) { - case xml.CharData: - if b != nil { - panic("unexpected CharData") - } - b = []byte(string(v)) - case xml.EndElement: - if v.Name.Local != "xref" { - panic("expected ") - } - if b != nil { - return b - } - sig := attrSig(se) - switch sig { - case "target": - return []byte(fmt.Sprintf("[%s]", attrValue(se, "target"))) - case "fmt-of,rel,target", "fmt-,,rel,target": - return []byte(fmt.Sprintf("[%s, %s]", attrValue(se, "target"), attrValue(se, "rel"))) - case "fmt-of,sec,target", "fmt-,,sec,target": - return []byte(fmt.Sprintf("[section %s of %s]", attrValue(se, "sec"), attrValue(se, "target"))) - case "fmt-of,rel,sec,target": - return []byte(fmt.Sprintf("[section %s of %s, %s]", attrValue(se, "sec"), attrValue(se, "target"), attrValue(se, "rel"))) - default: - panic(fmt.Sprintf("unknown attribute signature %q in %#v", sig, fmt.Sprintf("%#v", se))) - } - default: - panic(fmt.Sprintf("unexpected tag %q", v)) - } - } -} - -var skipAnchor = map[string]bool{ - "intro": true, - "Overview": true, -} - -var skipTitle = map[string]bool{ - "Acknowledgements": true, - "Change Log": true, - "Document Organization": true, - "Conventions and Terminology": true, -} - -func skipElement(s xml.StartElement) bool { - switch s.Name.Local { - case "artwork": - return true - case "section": - for _, attr := range s.Attr { - switch attr.Name.Local { - case "anchor": - if skipAnchor[attr.Value] || strings.HasPrefix(attr.Value, "changes.since.") { - return true - } - case "title": - if skipTitle[attr.Value] { - return true - } - } - } - } - return false -} - -func readSpecCov(r io.Reader) specCoverage { - sc := specCoverage{ - coverage: map[specPart]bool{}, - d: xml.NewDecoder(r)} - sc.readSection(nil) - return sc -} - -func (sc specCoverage) addSentences(sec string, sentence string) { - for _, s := range parseSentences(sentence) { - sc.coverage[specPart{sec, s}] = false - } -} - -func (sc specCoverage) cover(sec string, sentence string) { - for _, s := range parseSentences(sentence) { - p := specPart{sec, s} - if _, ok := sc.coverage[p]; !ok { - panic(fmt.Sprintf("Not found in spec: %q, %q", sec, s)) - } - sc.coverage[specPart{sec, s}] = true - } - -} - -var whitespaceRx = regexp.MustCompile(`\s+`) - -func parseSentences(sens string) []string { - sens = strings.TrimSpace(sens) - if sens == "" { - return nil - } - ss := strings.Split(whitespaceRx.ReplaceAllString(sens, " "), ". ") - for i, s := range ss { - s = strings.TrimSpace(s) - if !strings.HasSuffix(s, ".") { - s += "." - } - ss[i] = s - } - return ss -} - -func TestSpecParseSentences(t *testing.T) { - tests := []struct { - ss string - want []string - }{ - {"Sentence 1. Sentence 2.", - []string{ - "Sentence 1.", - "Sentence 2.", - }}, - {"Sentence 1. \nSentence 2.\tSentence 3.", - []string{ - "Sentence 1.", - "Sentence 2.", - "Sentence 3.", - }}, - } - - for i, tt := range tests { - got := parseSentences(tt.ss) - if !reflect.DeepEqual(got, tt.want) { - t.Errorf("%d: got = %q, want %q", i, got, tt.want) - } - } -} - -func TestSpecCoverage(t *testing.T) { - if !*coverSpec { - t.Skip() - } - - loadSpecOnce.Do(loadSpec) - - var ( - list []specPart - cv = defaultSpecCoverage.coverage - total = len(cv) - complete = 0 - ) - - for sp, touched := range defaultSpecCoverage.coverage { - if touched { - complete++ - } else { - list = append(list, sp) - } - } - sort.Stable(bySpecSection(list)) - - if testing.Short() && len(list) > 5 { - list = list[:5] - } - - for _, p := range list { - t.Errorf("\tSECTION %s: %s", p.section, p.sentence) - } - - t.Logf("%d/%d (%d%%) sentances covered", complete, total, (complete/total)*100) -} - -func attrSig(se xml.StartElement) string { - var names []string - for _, attr := range se.Attr { - if attr.Name.Local == "fmt" { - names = append(names, "fmt-"+attr.Value) - } else { - names = append(names, attr.Name.Local) - } - } - sort.Strings(names) - return strings.Join(names, ",") -} - -func attrValue(se xml.StartElement, attr string) string { - for _, a := range se.Attr { - if a.Name.Local == attr { - return a.Value - } - } - panic("unknown attribute " + attr) -} - -func TestSpecPartLess(t *testing.T) { - tests := []struct { - sec1, sec2 string - want bool - }{ - {"6.2.1", "6.2", false}, - {"6.2", "6.2.1", true}, - {"6.10", "6.10.1", true}, - {"6.10", "6.1.1", false}, // 10, not 1 - {"6.1", "6.1", false}, // equal, so not less - } - for _, tt := range tests { - got := (specPart{tt.sec1, "foo"}).Less(specPart{tt.sec2, "foo"}) - if got != tt.want { - t.Errorf("Less(%q, %q) = %v; want %v", tt.sec1, tt.sec2, got, tt.want) - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/dstunreach.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/dstunreach.go deleted file mode 100644 index 01dc660f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/dstunreach.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp - -// A DstUnreach represents an ICMP destination unreachable message -// body. -type DstUnreach struct { - Data []byte // data, known as original datagram field - Extensions []Extension // extensions -} - -// Len implements the Len method of MessageBody interface. -func (p *DstUnreach) Len(proto int) int { - if p == nil { - return 0 - } - l, _ := multipartMessageBodyDataLen(proto, p.Data, p.Extensions) - return l -} - -// Marshal implements the Marshal method of MessageBody interface. -func (p *DstUnreach) Marshal(proto int) ([]byte, error) { - return marshalMultipartMessageBody(proto, p.Data, p.Extensions) -} - -// parseDstUnreach parses b as an ICMP destination unreachable message -// body. -func parseDstUnreach(proto int, b []byte) (MessageBody, error) { - if len(b) < 4 { - return nil, errMessageTooShort - } - p := &DstUnreach{} - var err error - p.Data, p.Extensions, err = parseMultipartMessageBody(proto, b) - if err != nil { - return nil, err - } - return p, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/echo.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/echo.go deleted file mode 100644 index 8943eab3..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/echo.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2012 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 icmp - -// An Echo represents an ICMP echo request or reply message body. -type Echo struct { - ID int // identifier - Seq int // sequence number - Data []byte // data -} - -// Len implements the Len method of MessageBody interface. -func (p *Echo) Len(proto int) int { - if p == nil { - return 0 - } - return 4 + len(p.Data) -} - -// Marshal implements the Marshal method of MessageBody interface. -func (p *Echo) Marshal(proto int) ([]byte, error) { - b := make([]byte, 4+len(p.Data)) - b[0], b[1] = byte(p.ID>>8), byte(p.ID) - b[2], b[3] = byte(p.Seq>>8), byte(p.Seq) - copy(b[4:], p.Data) - return b, nil -} - -// parseEcho parses b as an ICMP echo request or reply message body. -func parseEcho(proto int, b []byte) (MessageBody, error) { - bodyLen := len(b) - if bodyLen < 4 { - return nil, errMessageTooShort - } - p := &Echo{ID: int(b[0])<<8 | int(b[1]), Seq: int(b[2])<<8 | int(b[3])} - if bodyLen > 4 { - p.Data = make([]byte, bodyLen-4) - copy(p.Data, b[4:]) - } - return p, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/endpoint.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/endpoint.go deleted file mode 100644 index 3e159fae..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/endpoint.go +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp - -import ( - "net" - "runtime" - "syscall" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -var _ net.PacketConn = &PacketConn{} - -// A PacketConn represents a packet network endpoint that uses either -// ICMPv4 or ICMPv6. -type PacketConn struct { - c net.PacketConn - p4 *ipv4.PacketConn - p6 *ipv6.PacketConn -} - -func (c *PacketConn) ok() bool { return c != nil && c.c != nil } - -// IPv4PacketConn returns the ipv4.PacketConn of c. -// It returns nil when c is not created as the endpoint for ICMPv4. -func (c *PacketConn) IPv4PacketConn() *ipv4.PacketConn { - if !c.ok() { - return nil - } - return c.p4 -} - -// IPv6PacketConn returns the ipv6.PacketConn of c. -// It returns nil when c is not created as the endpoint for ICMPv6. -func (c *PacketConn) IPv6PacketConn() *ipv6.PacketConn { - if !c.ok() { - return nil - } - return c.p6 -} - -// ReadFrom reads an ICMP message from the connection. -func (c *PacketConn) ReadFrom(b []byte) (int, net.Addr, error) { - if !c.ok() { - return 0, nil, syscall.EINVAL - } - // Please be informed that ipv4.NewPacketConn enables - // IP_STRIPHDR option by default on Darwin. - // See golang.org/issue/9395 for futher information. - if runtime.GOOS == "darwin" && c.p4 != nil { - n, _, peer, err := c.p4.ReadFrom(b) - return n, peer, err - } - return c.c.ReadFrom(b) -} - -// WriteTo writes the ICMP message b to dst. -// Dst must be net.UDPAddr when c is a non-privileged -// datagram-oriented ICMP endpoint. Otherwise it must be net.IPAddr. -func (c *PacketConn) WriteTo(b []byte, dst net.Addr) (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - return c.c.WriteTo(b, dst) -} - -// Close closes the endpoint. -func (c *PacketConn) Close() error { - if !c.ok() { - return syscall.EINVAL - } - return c.c.Close() -} - -// LocalAddr returns the local network address. -func (c *PacketConn) LocalAddr() net.Addr { - if !c.ok() { - return nil - } - return c.c.LocalAddr() -} - -// SetDeadline sets the read and write deadlines associated with the -// endpoint. -func (c *PacketConn) SetDeadline(t time.Time) error { - if !c.ok() { - return syscall.EINVAL - } - return c.c.SetDeadline(t) -} - -// SetReadDeadline sets the read deadline associated with the -// endpoint. -func (c *PacketConn) SetReadDeadline(t time.Time) error { - if !c.ok() { - return syscall.EINVAL - } - return c.c.SetReadDeadline(t) -} - -// SetWriteDeadline sets the write deadline associated with the -// endpoint. -func (c *PacketConn) SetWriteDeadline(t time.Time) error { - if !c.ok() { - return syscall.EINVAL - } - return c.c.SetWriteDeadline(t) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/example_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/example_test.go deleted file mode 100644 index 07d6fdad..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/example_test.go +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp_test - -import ( - "log" - "net" - "os" - "runtime" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -func ExamplePacketConn_nonPrivilegedPing() { - switch runtime.GOOS { - case "darwin": - case "linux": - log.Println("you may need to adjust the net.ipv4.ping_group_range kernel state") - default: - log.Println("not supported on", runtime.GOOS) - return - } - - c, err := icmp.ListenPacket("udp6", "fe80::1%en0") - if err != nil { - log.Fatal(err) - } - defer c.Close() - - wm := icmp.Message{ - Type: ipv6.ICMPTypeEchoRequest, Code: 0, - Body: &icmp.Echo{ - ID: os.Getpid() & 0xffff, Seq: 1, - Data: []byte("HELLO-R-U-THERE"), - }, - } - wb, err := wm.Marshal(nil) - if err != nil { - log.Fatal(err) - } - if _, err := c.WriteTo(wb, &net.UDPAddr{IP: net.ParseIP("ff02::1"), Zone: "en0"}); err != nil { - log.Fatal(err) - } - - rb := make([]byte, 1500) - n, peer, err := c.ReadFrom(rb) - if err != nil { - log.Fatal(err) - } - rm, err := icmp.ParseMessage(58, rb[:n]) - if err != nil { - log.Fatal(err) - } - switch rm.Type { - case ipv6.ICMPTypeEchoReply: - log.Printf("got reflection from %v", peer) - default: - log.Printf("got %+v; want echo reply", rm) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/extension.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/extension.go deleted file mode 100644 index 720e167f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/extension.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp - -// An Extension represents an ICMP extension. -type Extension interface { - // Len returns the length of ICMP extension. - // Proto must be either the ICMPv4 or ICMPv6 protocol number. - Len(proto int) int - - // Marshal returns the binary enconding of ICMP extension. - // Proto must be either the ICMPv4 or ICMPv6 protocol number. - Marshal(proto int) ([]byte, error) -} - -const extensionVersion = 2 - -func validExtensionHeader(b []byte) bool { - v := int(b[0]&0xf0) >> 4 - s := uint16(b[2])<<8 | uint16(b[3]) - if s != 0 { - s = checksum(b) - } - if v != extensionVersion || s != 0 { - return false - } - return true -} - -// parseExtensions parses b as a list of ICMP extensions. -// The length attribute l must be the length attribute field in -// received icmp messages. -// -// It will return a list of ICMP extensions and an adjusted length -// attribute that represents the length of the padded original -// datagram field. Otherwise, it returns an error. -func parseExtensions(b []byte, l int) ([]Extension, int, error) { - // Still a lot of non-RFC 4884 compliant implementations are - // out there. Set the length attribute l to 128 when it looks - // inappropriate for backwards compatibility. - // - // A minimal extension at least requires 8 octets; 4 octets - // for an extension header, and 4 octets for a single object - // header. - // - // See RFC 4884 for further information. - if 128 > l || l+8 > len(b) { - l = 128 - } - if l+8 > len(b) { - return nil, -1, errNoExtension - } - if !validExtensionHeader(b[l:]) { - if l == 128 { - return nil, -1, errNoExtension - } - l = 128 - if !validExtensionHeader(b[l:]) { - return nil, -1, errNoExtension - } - } - var exts []Extension - for b = b[l+4:]; len(b) >= 4; { - ol := int(b[0])<<8 | int(b[1]) - if 4 > ol || ol > len(b) { - break - } - switch b[2] { - case classMPLSLabelStack: - ext, err := parseMPLSLabelStack(b[:ol]) - if err != nil { - return nil, -1, err - } - exts = append(exts, ext) - case classInterfaceInfo: - ext, err := parseInterfaceInfo(b[:ol]) - if err != nil { - return nil, -1, err - } - exts = append(exts, ext) - } - b = b[ol:] - } - return exts, l, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/extension_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/extension_test.go deleted file mode 100644 index d8ce15e6..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/extension_test.go +++ /dev/null @@ -1,259 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp - -import ( - "net" - "reflect" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -var marshalAndParseExtensionTests = []struct { - proto int - hdr []byte - obj []byte - exts []Extension -}{ - // MPLS label stack with no label - { - proto: iana.ProtocolICMP, - hdr: []byte{ - 0x20, 0x00, 0x00, 0x00, - }, - obj: []byte{ - 0x00, 0x04, 0x01, 0x01, - }, - exts: []Extension{ - &MPLSLabelStack{ - Class: classMPLSLabelStack, - Type: typeIncomingMPLSLabelStack, - }, - }, - }, - // MPLS label stack with a single label - { - proto: iana.ProtocolIPv6ICMP, - hdr: []byte{ - 0x20, 0x00, 0x00, 0x00, - }, - obj: []byte{ - 0x00, 0x08, 0x01, 0x01, - 0x03, 0xe8, 0xe9, 0xff, - }, - exts: []Extension{ - &MPLSLabelStack{ - Class: classMPLSLabelStack, - Type: typeIncomingMPLSLabelStack, - Labels: []MPLSLabel{ - { - Label: 16014, - TC: 0x4, - S: true, - TTL: 255, - }, - }, - }, - }, - }, - // MPLS label stack with multiple labels - { - proto: iana.ProtocolICMP, - hdr: []byte{ - 0x20, 0x00, 0x00, 0x00, - }, - obj: []byte{ - 0x00, 0x0c, 0x01, 0x01, - 0x03, 0xe8, 0xde, 0xfe, - 0x03, 0xe8, 0xe1, 0xff, - }, - exts: []Extension{ - &MPLSLabelStack{ - Class: classMPLSLabelStack, - Type: typeIncomingMPLSLabelStack, - Labels: []MPLSLabel{ - { - Label: 16013, - TC: 0x7, - S: false, - TTL: 254, - }, - { - Label: 16014, - TC: 0, - S: true, - TTL: 255, - }, - }, - }, - }, - }, - // Interface information with no attribute - { - proto: iana.ProtocolICMP, - hdr: []byte{ - 0x20, 0x00, 0x00, 0x00, - }, - obj: []byte{ - 0x00, 0x04, 0x02, 0x00, - }, - exts: []Extension{ - &InterfaceInfo{ - Class: classInterfaceInfo, - }, - }, - }, - // Interface information with ifIndex and name - { - proto: iana.ProtocolICMP, - hdr: []byte{ - 0x20, 0x00, 0x00, 0x00, - }, - obj: []byte{ - 0x00, 0x10, 0x02, 0x0a, - 0x00, 0x00, 0x00, 0x10, - 0x08, byte('e'), byte('n'), byte('1'), - byte('0'), byte('1'), 0x00, 0x00, - }, - exts: []Extension{ - &InterfaceInfo{ - Class: classInterfaceInfo, - Type: 0x0a, - Interface: &net.Interface{ - Index: 16, - Name: "en101", - }, - }, - }, - }, - // Interface information with ifIndex, IPAddr, name and MTU - { - proto: iana.ProtocolIPv6ICMP, - hdr: []byte{ - 0x20, 0x00, 0x00, 0x00, - }, - obj: []byte{ - 0x00, 0x28, 0x02, 0x0f, - 0x00, 0x00, 0x00, 0x0f, - 0x00, 0x02, 0x00, 0x00, - 0xfe, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, - 0x08, byte('e'), byte('n'), byte('1'), - byte('0'), byte('1'), 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, - }, - exts: []Extension{ - &InterfaceInfo{ - Class: classInterfaceInfo, - Type: 0x0f, - Interface: &net.Interface{ - Index: 15, - Name: "en101", - MTU: 8192, - }, - Addr: &net.IPAddr{ - IP: net.ParseIP("fe80::1"), - Zone: "en101", - }, - }, - }, - }, -} - -func TestMarshalAndParseExtension(t *testing.T) { - for i, tt := range marshalAndParseExtensionTests { - for j, ext := range tt.exts { - var err error - var b []byte - switch ext := ext.(type) { - case *MPLSLabelStack: - b, err = ext.Marshal(tt.proto) - if err != nil { - t.Errorf("#%v/%v: %v", i, j, err) - continue - } - case *InterfaceInfo: - b, err = ext.Marshal(tt.proto) - if err != nil { - t.Errorf("#%v/%v: %v", i, j, err) - continue - } - } - if !reflect.DeepEqual(b, tt.obj) { - t.Errorf("#%v/%v: got %#v; want %#v", i, j, b, tt.obj) - continue - } - } - - for j, wire := range []struct { - data []byte // original datagram - inlattr int // length of padded original datagram, a hint - outlattr int // length of padded original datagram, a want - err error - }{ - {nil, 0, -1, errNoExtension}, - {make([]byte, 127), 128, -1, errNoExtension}, - - {make([]byte, 128), 127, -1, errNoExtension}, - {make([]byte, 128), 128, -1, errNoExtension}, - {make([]byte, 128), 129, -1, errNoExtension}, - - {append(make([]byte, 128), append(tt.hdr, tt.obj...)...), 127, 128, nil}, - {append(make([]byte, 128), append(tt.hdr, tt.obj...)...), 128, 128, nil}, - {append(make([]byte, 128), append(tt.hdr, tt.obj...)...), 129, 128, nil}, - - {append(make([]byte, 512), append(tt.hdr, tt.obj...)...), 511, -1, errNoExtension}, - {append(make([]byte, 512), append(tt.hdr, tt.obj...)...), 512, 512, nil}, - {append(make([]byte, 512), append(tt.hdr, tt.obj...)...), 513, -1, errNoExtension}, - } { - exts, l, err := parseExtensions(wire.data, wire.inlattr) - if err != wire.err { - t.Errorf("#%v/%v: got %v; want %v", i, j, err, wire.err) - continue - } - if wire.err != nil { - continue - } - if l != wire.outlattr { - t.Errorf("#%v/%v: got %v; want %v", i, j, l, wire.outlattr) - } - if !reflect.DeepEqual(exts, tt.exts) { - for j, ext := range exts { - switch ext := ext.(type) { - case *MPLSLabelStack: - want := tt.exts[j].(*MPLSLabelStack) - t.Errorf("#%v/%v: got %#v; want %#v", i, j, ext, want) - case *InterfaceInfo: - want := tt.exts[j].(*InterfaceInfo) - t.Errorf("#%v/%v: got %#v; want %#v", i, j, ext, want) - } - } - continue - } - } - } -} - -var parseInterfaceNameTests = []struct { - b []byte - error -}{ - {[]byte{0, 'e', 'n', '0'}, errInvalidExtension}, - {[]byte{4, 'e', 'n', '0'}, nil}, - {[]byte{7, 'e', 'n', '0', 0xff, 0xff, 0xff, 0xff}, errInvalidExtension}, - {[]byte{8, 'e', 'n', '0', 0xff, 0xff, 0xff}, errMessageTooShort}, -} - -func TestParseInterfaceName(t *testing.T) { - ifi := InterfaceInfo{Interface: &net.Interface{}} - for i, tt := range parseInterfaceNameTests { - if _, err := ifi.parseName(tt.b); err != tt.error { - t.Errorf("#%d: got %v; want %v", i, err, tt.error) - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/helper_posix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/helper_posix.go deleted file mode 100644 index 398fd388..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/helper_posix.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows - -package icmp - -import ( - "net" - "strconv" - "syscall" -) - -func sockaddr(family int, address string) (syscall.Sockaddr, error) { - switch family { - case syscall.AF_INET: - a, err := net.ResolveIPAddr("ip4", address) - if err != nil { - return nil, err - } - if len(a.IP) == 0 { - a.IP = net.IPv4zero - } - if a.IP = a.IP.To4(); a.IP == nil { - return nil, net.InvalidAddrError("non-ipv4 address") - } - sa := &syscall.SockaddrInet4{} - copy(sa.Addr[:], a.IP) - return sa, nil - case syscall.AF_INET6: - a, err := net.ResolveIPAddr("ip6", address) - if err != nil { - return nil, err - } - if len(a.IP) == 0 { - a.IP = net.IPv6unspecified - } - if a.IP.Equal(net.IPv4zero) { - a.IP = net.IPv6unspecified - } - if a.IP = a.IP.To16(); a.IP == nil || a.IP.To4() != nil { - return nil, net.InvalidAddrError("non-ipv6 address") - } - sa := &syscall.SockaddrInet6{ZoneId: zoneToUint32(a.Zone)} - copy(sa.Addr[:], a.IP) - return sa, nil - default: - return nil, net.InvalidAddrError("unexpected family") - } -} - -func zoneToUint32(zone string) uint32 { - if zone == "" { - return 0 - } - if ifi, err := net.InterfaceByName(zone); err == nil { - return uint32(ifi.Index) - } - n, err := strconv.Atoi(zone) - if err != nil { - return 0 - } - return uint32(n) -} - -func last(s string, b byte) int { - i := len(s) - for i--; i >= 0; i-- { - if s[i] == b { - break - } - } - return i -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/interface.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/interface.go deleted file mode 100644 index a108a6e0..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/interface.go +++ /dev/null @@ -1,235 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp - -import ( - "net" - "strings" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -const ( - classInterfaceInfo = 2 - - afiIPv4 = 1 - afiIPv6 = 2 -) - -const ( - attrMTU = 1 << iota - attrName - attrIPAddr - attrIfIndex -) - -// An InterfaceInfo represents interface and next-hop identification. -type InterfaceInfo struct { - Class int // extension object class number - Type int // extension object sub-type - Interface *net.Interface - Addr *net.IPAddr -} - -func (ifi *InterfaceInfo) nameLen() int { - if len(ifi.Interface.Name) > 63 { - return 64 - } - l := 1 + len(ifi.Interface.Name) - return (l + 3) &^ 3 -} - -func (ifi *InterfaceInfo) attrsAndLen(proto int) (attrs, l int) { - l = 4 - if ifi.Interface != nil && ifi.Interface.Index > 0 { - attrs |= attrIfIndex - l += 4 - if len(ifi.Interface.Name) > 0 { - attrs |= attrName - l += ifi.nameLen() - } - if ifi.Interface.MTU > 0 { - attrs |= attrMTU - l += 4 - } - } - if ifi.Addr != nil { - switch proto { - case iana.ProtocolICMP: - if ifi.Addr.IP.To4() != nil { - attrs |= attrIPAddr - l += 4 + net.IPv4len - } - case iana.ProtocolIPv6ICMP: - if ifi.Addr.IP.To16() != nil && ifi.Addr.IP.To4() == nil { - attrs |= attrIPAddr - l += 4 + net.IPv6len - } - } - } - return -} - -// Len implements the Len method of Extension interface. -func (ifi *InterfaceInfo) Len(proto int) int { - _, l := ifi.attrsAndLen(proto) - return l -} - -// Marshal implements the Marshal method of Extension interface. -func (ifi *InterfaceInfo) Marshal(proto int) ([]byte, error) { - attrs, l := ifi.attrsAndLen(proto) - b := make([]byte, l) - if err := ifi.marshal(proto, b, attrs, l); err != nil { - return nil, err - } - return b, nil -} - -func (ifi *InterfaceInfo) marshal(proto int, b []byte, attrs, l int) error { - b[0], b[1] = byte(l>>8), byte(l) - b[2], b[3] = classInterfaceInfo, byte(ifi.Type) - for b = b[4:]; len(b) > 0 && attrs != 0; { - switch { - case attrs&attrIfIndex != 0: - b = ifi.marshalIfIndex(proto, b) - attrs &^= attrIfIndex - case attrs&attrIPAddr != 0: - b = ifi.marshalIPAddr(proto, b) - attrs &^= attrIPAddr - case attrs&attrName != 0: - b = ifi.marshalName(proto, b) - attrs &^= attrName - case attrs&attrMTU != 0: - b = ifi.marshalMTU(proto, b) - attrs &^= attrMTU - } - } - return nil -} - -func (ifi *InterfaceInfo) marshalIfIndex(proto int, b []byte) []byte { - b[0], b[1], b[2], b[3] = byte(ifi.Interface.Index>>24), byte(ifi.Interface.Index>>16), byte(ifi.Interface.Index>>8), byte(ifi.Interface.Index) - return b[4:] -} - -func (ifi *InterfaceInfo) parseIfIndex(b []byte) ([]byte, error) { - if len(b) < 4 { - return nil, errMessageTooShort - } - ifi.Interface.Index = int(b[0])<<24 | int(b[1])<<16 | int(b[2])<<8 | int(b[3]) - return b[4:], nil -} - -func (ifi *InterfaceInfo) marshalIPAddr(proto int, b []byte) []byte { - switch proto { - case iana.ProtocolICMP: - b[0], b[1] = byte(afiIPv4>>8), byte(afiIPv4) - copy(b[4:4+net.IPv4len], ifi.Addr.IP.To4()) - b = b[4+net.IPv4len:] - case iana.ProtocolIPv6ICMP: - b[0], b[1] = byte(afiIPv6>>8), byte(afiIPv6) - copy(b[4:4+net.IPv6len], ifi.Addr.IP.To16()) - b = b[4+net.IPv6len:] - } - return b -} - -func (ifi *InterfaceInfo) parseIPAddr(b []byte) ([]byte, error) { - if len(b) < 4 { - return nil, errMessageTooShort - } - afi := int(b[0])<<8 | int(b[1]) - b = b[4:] - switch afi { - case afiIPv4: - if len(b) < net.IPv4len { - return nil, errMessageTooShort - } - ifi.Addr.IP = make(net.IP, net.IPv4len) - copy(ifi.Addr.IP, b[:net.IPv4len]) - b = b[net.IPv4len:] - case afiIPv6: - if len(b) < net.IPv6len { - return nil, errMessageTooShort - } - ifi.Addr.IP = make(net.IP, net.IPv6len) - copy(ifi.Addr.IP, b[:net.IPv6len]) - b = b[net.IPv6len:] - } - return b, nil -} - -func (ifi *InterfaceInfo) marshalName(proto int, b []byte) []byte { - l := byte(ifi.nameLen()) - b[0] = l - copy(b[1:], []byte(ifi.Interface.Name)) - return b[l:] -} - -func (ifi *InterfaceInfo) parseName(b []byte) ([]byte, error) { - if 4 > len(b) || len(b) < int(b[0]) { - return nil, errMessageTooShort - } - l := int(b[0]) - if l%4 != 0 || 4 > l || l > 64 { - return nil, errInvalidExtension - } - var name [63]byte - copy(name[:], b[1:l]) - ifi.Interface.Name = strings.Trim(string(name[:]), "\000") - return b[l:], nil -} - -func (ifi *InterfaceInfo) marshalMTU(proto int, b []byte) []byte { - b[0], b[1], b[2], b[3] = byte(ifi.Interface.MTU>>24), byte(ifi.Interface.MTU>>16), byte(ifi.Interface.MTU>>8), byte(ifi.Interface.MTU) - return b[4:] -} - -func (ifi *InterfaceInfo) parseMTU(b []byte) ([]byte, error) { - if len(b) < 4 { - return nil, errMessageTooShort - } - ifi.Interface.MTU = int(b[0])<<24 | int(b[1])<<16 | int(b[2])<<8 | int(b[3]) - return b[4:], nil -} - -func parseInterfaceInfo(b []byte) (Extension, error) { - ifi := &InterfaceInfo{ - Class: int(b[2]), - Type: int(b[3]), - } - if ifi.Type&(attrIfIndex|attrName|attrMTU) != 0 { - ifi.Interface = &net.Interface{} - } - if ifi.Type&attrIPAddr != 0 { - ifi.Addr = &net.IPAddr{} - } - attrs := ifi.Type & (attrIfIndex | attrIPAddr | attrName | attrMTU) - for b = b[4:]; len(b) > 0 && attrs != 0; { - var err error - switch { - case attrs&attrIfIndex != 0: - b, err = ifi.parseIfIndex(b) - attrs &^= attrIfIndex - case attrs&attrIPAddr != 0: - b, err = ifi.parseIPAddr(b) - attrs &^= attrIPAddr - case attrs&attrName != 0: - b, err = ifi.parseName(b) - attrs &^= attrName - case attrs&attrMTU != 0: - b, err = ifi.parseMTU(b) - attrs &^= attrMTU - } - if err != nil { - return nil, err - } - } - if ifi.Interface != nil && ifi.Interface.Name != "" && ifi.Addr != nil && ifi.Addr.IP.To16() != nil && ifi.Addr.IP.To4() == nil { - ifi.Addr.Zone = ifi.Interface.Name - } - return ifi, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ipv4.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ipv4.go deleted file mode 100644 index d713ce4a..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ipv4.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp - -import ( - "net" - "runtime" - "unsafe" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" -) - -// See http://www.freebsd.org/doc/en/books/porters-handbook/freebsd-versions.html. -var freebsdVersion uint32 - -// ParseIPv4Header parses b as an IPv4 header of ICMP error message -// invoking packet, which is contained in ICMP error message. -func ParseIPv4Header(b []byte) (*ipv4.Header, error) { - if len(b) < ipv4.HeaderLen { - return nil, errHeaderTooShort - } - hdrlen := int(b[0]&0x0f) << 2 - if hdrlen > len(b) { - return nil, errBufferTooShort - } - h := &ipv4.Header{ - Version: int(b[0] >> 4), - Len: hdrlen, - TOS: int(b[1]), - ID: int(b[4])<<8 | int(b[5]), - FragOff: int(b[6])<<8 | int(b[7]), - TTL: int(b[8]), - Protocol: int(b[9]), - Checksum: int(b[10])<<8 | int(b[11]), - Src: net.IPv4(b[12], b[13], b[14], b[15]), - Dst: net.IPv4(b[16], b[17], b[18], b[19]), - } - switch runtime.GOOS { - case "darwin": - // TODO(mikio): fix potential misaligned memory access - h.TotalLen = int(*(*uint16)(unsafe.Pointer(&b[2:3][0]))) - case "freebsd": - if freebsdVersion >= 1000000 { - h.TotalLen = int(b[2])<<8 | int(b[3]) - } else { - // TODO(mikio): fix potential misaligned memory access - h.TotalLen = int(*(*uint16)(unsafe.Pointer(&b[2:3][0]))) - } - default: - h.TotalLen = int(b[2])<<8 | int(b[3]) - } - h.Flags = ipv4.HeaderFlags(h.FragOff&0xe000) >> 13 - h.FragOff = h.FragOff & 0x1fff - if hdrlen-ipv4.HeaderLen > 0 { - h.Options = make([]byte, hdrlen-ipv4.HeaderLen) - copy(h.Options, b[ipv4.HeaderLen:]) - } - return h, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ipv4_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ipv4_test.go deleted file mode 100644 index 3c31ec7b..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ipv4_test.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp - -import ( - "net" - "reflect" - "runtime" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" -) - -var ( - wireHeaderFromKernel = [ipv4.HeaderLen]byte{ - 0x45, 0x01, 0xbe, 0xef, - 0xca, 0xfe, 0x45, 0xdc, - 0xff, 0x01, 0xde, 0xad, - 172, 16, 254, 254, - 192, 168, 0, 1, - } - wireHeaderFromTradBSDKernel = [ipv4.HeaderLen]byte{ - 0x45, 0x01, 0xef, 0xbe, - 0xca, 0xfe, 0x45, 0xdc, - 0xff, 0x01, 0xde, 0xad, - 172, 16, 254, 254, - 192, 168, 0, 1, - } - // TODO(mikio): Add platform dependent wire header formats when - // we support new platforms. - - testHeader = &ipv4.Header{ - Version: ipv4.Version, - Len: ipv4.HeaderLen, - TOS: 1, - TotalLen: 0xbeef, - ID: 0xcafe, - Flags: ipv4.DontFragment, - FragOff: 1500, - TTL: 255, - Protocol: 1, - Checksum: 0xdead, - Src: net.IPv4(172, 16, 254, 254), - Dst: net.IPv4(192, 168, 0, 1), - } -) - -func TestParseIPv4Header(t *testing.T) { - var wh []byte - switch runtime.GOOS { - case "darwin": - wh = wireHeaderFromTradBSDKernel[:] - case "freebsd": - if freebsdVersion >= 1000000 { - wh = wireHeaderFromKernel[:] - } else { - wh = wireHeaderFromTradBSDKernel[:] - } - default: - wh = wireHeaderFromKernel[:] - } - h, err := ParseIPv4Header(wh) - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(h, testHeader) { - t.Fatalf("got %#v; want %#v", h, testHeader) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ipv6.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ipv6.go deleted file mode 100644 index d677b394..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ipv6.go +++ /dev/null @@ -1,23 +0,0 @@ -// 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 icmp - -import ( - "net" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -const ipv6PseudoHeaderLen = 2*net.IPv6len + 8 - -// IPv6PseudoHeader returns an IPv6 pseudo header for checkusm -// calculation. -func IPv6PseudoHeader(src, dst net.IP) []byte { - b := make([]byte, ipv6PseudoHeaderLen) - copy(b, src.To16()) - copy(b[net.IPv6len:], dst.To16()) - b[len(b)-1] = byte(iana.ProtocolIPv6ICMP) - return b -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/listen_posix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/listen_posix.go deleted file mode 100644 index 754e0bdb..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/listen_posix.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows - -package icmp - -import ( - "net" - "os" - "runtime" - "syscall" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -const sysIP_STRIPHDR = 0x17 // for now only darwin supports this option - -// ListenPacket listens for incoming ICMP packets addressed to -// address. See net.Dial for the syntax of address. -// -// For non-privileged datagram-oriented ICMP endpoints, network must -// be "udp4" or "udp6". The endpoint allows to read, write a few -// limited ICMP messages such as echo request and echo reply. -// Currently only Darwin and Linux support this. -// -// Examples: -// ListenPacket("udp4", "192.168.0.1") -// ListenPacket("udp4", "0.0.0.0") -// ListenPacket("udp6", "fe80::1%en0") -// ListenPacket("udp6", "::") -// -// For privileged raw ICMP endpoints, network must be "ip4" or "ip6" -// followed by a colon and an ICMP protocol number or name. -// -// Examples: -// ListenPacket("ip4:icmp", "192.168.0.1") -// ListenPacket("ip4:1", "0.0.0.0") -// ListenPacket("ip6:ipv6-icmp", "fe80::1%en0") -// ListenPacket("ip6:58", "::") -func ListenPacket(network, address string) (*PacketConn, error) { - var family, proto int - switch network { - case "udp4": - family, proto = syscall.AF_INET, iana.ProtocolICMP - case "udp6": - family, proto = syscall.AF_INET6, iana.ProtocolIPv6ICMP - default: - i := last(network, ':') - switch network[:i] { - case "ip4": - proto = iana.ProtocolICMP - case "ip6": - proto = iana.ProtocolIPv6ICMP - } - } - var cerr error - var c net.PacketConn - switch family { - case syscall.AF_INET, syscall.AF_INET6: - s, err := syscall.Socket(family, syscall.SOCK_DGRAM, proto) - if err != nil { - return nil, os.NewSyscallError("socket", err) - } - defer syscall.Close(s) - if runtime.GOOS == "darwin" && family == syscall.AF_INET { - if err := syscall.SetsockoptInt(s, iana.ProtocolIP, sysIP_STRIPHDR, 1); err != nil { - return nil, os.NewSyscallError("setsockopt", err) - } - } - sa, err := sockaddr(family, address) - if err != nil { - return nil, err - } - if err := syscall.Bind(s, sa); err != nil { - return nil, os.NewSyscallError("bind", err) - } - f := os.NewFile(uintptr(s), "datagram-oriented icmp") - defer f.Close() - c, cerr = net.FilePacketConn(f) - default: - c, cerr = net.ListenPacket(network, address) - } - if cerr != nil { - return nil, cerr - } - switch proto { - case iana.ProtocolICMP: - return &PacketConn{c: c, p4: ipv4.NewPacketConn(c)}, nil - case iana.ProtocolIPv6ICMP: - return &PacketConn{c: c, p6: ipv6.NewPacketConn(c)}, nil - default: - return &PacketConn{c: c}, nil - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/listen_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/listen_stub.go deleted file mode 100644 index 668728d1..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/listen_stub.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build nacl plan9 - -package icmp - -// ListenPacket listens for incoming ICMP packets addressed to -// address. See net.Dial for the syntax of address. -// -// For non-privileged datagram-oriented ICMP endpoints, network must -// be "udp4" or "udp6". The endpoint allows to read, write a few -// limited ICMP messages such as echo request and echo reply. -// Currently only Darwin and Linux support this. -// -// Examples: -// ListenPacket("udp4", "192.168.0.1") -// ListenPacket("udp4", "0.0.0.0") -// ListenPacket("udp6", "fe80::1%en0") -// ListenPacket("udp6", "::") -// -// For privileged raw ICMP endpoints, network must be "ip4" or "ip6" -// followed by a colon and an ICMP protocol number or name. -// -// Examples: -// ListenPacket("ip4:icmp", "192.168.0.1") -// ListenPacket("ip4:1", "0.0.0.0") -// ListenPacket("ip6:ipv6-icmp", "fe80::1%en0") -// ListenPacket("ip6:58", "::") -func ListenPacket(network, address string) (*PacketConn, error) { - return nil, errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/message.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/message.go deleted file mode 100644 index 5864639f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/message.go +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2012 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 icmp provides basic functions for the manipulation of -// messages used in the Internet Control Message Protocols, -// ICMPv4 and ICMPv6. -// -// ICMPv4 and ICMPv6 are defined in RFC 792 and RFC 4443. -// Multi-part message support for ICMP is defined in RFC 4884. -// ICMP extensions for MPLS are defined in RFC 4950. -// ICMP extensions for interface and next-hop identification are -// defined in RFC 5837. -package icmp - -import ( - "errors" - "net" - "syscall" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -var ( - errMessageTooShort = errors.New("message too short") - errHeaderTooShort = errors.New("header too short") - errBufferTooShort = errors.New("buffer too short") - errOpNoSupport = errors.New("operation not supported") - errNoExtension = errors.New("no extension") - errInvalidExtension = errors.New("invalid extension") -) - -func checksum(b []byte) uint16 { - csumcv := len(b) - 1 // checksum coverage - s := uint32(0) - for i := 0; i < csumcv; i += 2 { - s += uint32(b[i+1])<<8 | uint32(b[i]) - } - if csumcv&1 == 0 { - s += uint32(b[csumcv]) - } - s = s>>16 + s&0xffff - s = s + s>>16 - return ^uint16(s) -} - -// A Type represents an ICMP message type. -type Type interface { - Protocol() int -} - -// A Message represents an ICMP message. -type Message struct { - Type Type // type, either ipv4.ICMPType or ipv6.ICMPType - Code int // code - Checksum int // checksum - Body MessageBody // body -} - -// Marshal returns the binary enconding of the ICMP message m. -// -// For an ICMPv4 message, the returned message always contains the -// calculated checksum field. -// -// For an ICMPv6 message, the returned message contains the calculated -// checksum field when psh is not nil, otherwise the kernel will -// compute the checksum field during the message transmission. -// When psh is not nil, it must be the pseudo header for IPv6. -func (m *Message) Marshal(psh []byte) ([]byte, error) { - var mtype int - switch typ := m.Type.(type) { - case ipv4.ICMPType: - mtype = int(typ) - case ipv6.ICMPType: - mtype = int(typ) - default: - return nil, syscall.EINVAL - } - b := []byte{byte(mtype), byte(m.Code), 0, 0} - if m.Type.Protocol() == iana.ProtocolIPv6ICMP && psh != nil { - b = append(psh, b...) - } - if m.Body != nil && m.Body.Len(m.Type.Protocol()) != 0 { - mb, err := m.Body.Marshal(m.Type.Protocol()) - if err != nil { - return nil, err - } - b = append(b, mb...) - } - if m.Type.Protocol() == iana.ProtocolIPv6ICMP { - if psh == nil { // cannot calculate checksum here - return b, nil - } - off, l := 2*net.IPv6len, len(b)-len(psh) - b[off], b[off+1], b[off+2], b[off+3] = byte(l>>24), byte(l>>16), byte(l>>8), byte(l) - } - s := checksum(b) - // Place checksum back in header; using ^= avoids the - // assumption the checksum bytes are zero. - b[len(psh)+2] ^= byte(s) - b[len(psh)+3] ^= byte(s >> 8) - return b[len(psh):], nil -} - -var parseFns = map[Type]func(int, []byte) (MessageBody, error){ - ipv4.ICMPTypeDestinationUnreachable: parseDstUnreach, - ipv4.ICMPTypeTimeExceeded: parseTimeExceeded, - ipv4.ICMPTypeParameterProblem: parseParamProb, - - ipv4.ICMPTypeEcho: parseEcho, - ipv4.ICMPTypeEchoReply: parseEcho, - - ipv6.ICMPTypeDestinationUnreachable: parseDstUnreach, - ipv6.ICMPTypePacketTooBig: parsePacketTooBig, - ipv6.ICMPTypeTimeExceeded: parseTimeExceeded, - ipv6.ICMPTypeParameterProblem: parseParamProb, - - ipv6.ICMPTypeEchoRequest: parseEcho, - ipv6.ICMPTypeEchoReply: parseEcho, -} - -// ParseMessage parses b as an ICMP message. -// Proto must be either the ICMPv4 or ICMPv6 protocol number. -func ParseMessage(proto int, b []byte) (*Message, error) { - if len(b) < 4 { - return nil, errMessageTooShort - } - var err error - m := &Message{Code: int(b[1]), Checksum: int(b[2])<<8 | int(b[3])} - switch proto { - case iana.ProtocolICMP: - m.Type = ipv4.ICMPType(b[0]) - case iana.ProtocolIPv6ICMP: - m.Type = ipv6.ICMPType(b[0]) - default: - return nil, syscall.EINVAL - } - if fn, ok := parseFns[m.Type]; !ok { - m.Body, err = parseDefaultMessageBody(proto, b[4:]) - } else { - m.Body, err = fn(proto, b[4:]) - } - if err != nil { - return nil, err - } - return m, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/message_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/message_test.go deleted file mode 100644 index b49fbe58..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/message_test.go +++ /dev/null @@ -1,134 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp_test - -import ( - "net" - "reflect" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -var marshalAndParseMessageForIPv4Tests = []icmp.Message{ - { - Type: ipv4.ICMPTypeDestinationUnreachable, Code: 15, - Body: &icmp.DstUnreach{ - Data: []byte("ERROR-INVOKING-PACKET"), - }, - }, - { - Type: ipv4.ICMPTypeTimeExceeded, Code: 1, - Body: &icmp.TimeExceeded{ - Data: []byte("ERROR-INVOKING-PACKET"), - }, - }, - { - Type: ipv4.ICMPTypeParameterProblem, Code: 2, - Body: &icmp.ParamProb{ - Pointer: 8, - Data: []byte("ERROR-INVOKING-PACKET"), - }, - }, - { - Type: ipv4.ICMPTypeEcho, Code: 0, - Body: &icmp.Echo{ - ID: 1, Seq: 2, - Data: []byte("HELLO-R-U-THERE"), - }, - }, - { - Type: ipv4.ICMPTypePhoturis, - Body: &icmp.DefaultMessageBody{ - Data: []byte{0x80, 0x40, 0x20, 0x10}, - }, - }, -} - -func TestMarshalAndParseMessageForIPv4(t *testing.T) { - for i, tt := range marshalAndParseMessageForIPv4Tests { - b, err := tt.Marshal(nil) - if err != nil { - t.Fatal(err) - } - m, err := icmp.ParseMessage(iana.ProtocolICMP, b) - if err != nil { - t.Fatal(err) - } - if m.Type != tt.Type || m.Code != tt.Code { - t.Errorf("#%v: got %v; want %v", i, m, &tt) - } - if !reflect.DeepEqual(m.Body, tt.Body) { - t.Errorf("#%v: got %v; want %v", i, m.Body, tt.Body) - } - } -} - -var marshalAndParseMessageForIPv6Tests = []icmp.Message{ - { - Type: ipv6.ICMPTypeDestinationUnreachable, Code: 6, - Body: &icmp.DstUnreach{ - Data: []byte("ERROR-INVOKING-PACKET"), - }, - }, - { - Type: ipv6.ICMPTypePacketTooBig, Code: 0, - Body: &icmp.PacketTooBig{ - MTU: 1<<16 - 1, - Data: []byte("ERROR-INVOKING-PACKET"), - }, - }, - { - Type: ipv6.ICMPTypeTimeExceeded, Code: 1, - Body: &icmp.TimeExceeded{ - Data: []byte("ERROR-INVOKING-PACKET"), - }, - }, - { - Type: ipv6.ICMPTypeParameterProblem, Code: 2, - Body: &icmp.ParamProb{ - Pointer: 8, - Data: []byte("ERROR-INVOKING-PACKET"), - }, - }, - { - Type: ipv6.ICMPTypeEchoRequest, Code: 0, - Body: &icmp.Echo{ - ID: 1, Seq: 2, - Data: []byte("HELLO-R-U-THERE"), - }, - }, - { - Type: ipv6.ICMPTypeDuplicateAddressConfirmation, - Body: &icmp.DefaultMessageBody{ - Data: []byte{0x80, 0x40, 0x20, 0x10}, - }, - }, -} - -func TestMarshalAndParseMessageForIPv6(t *testing.T) { - pshicmp := icmp.IPv6PseudoHeader(net.ParseIP("fe80::1"), net.ParseIP("ff02::1")) - for i, tt := range marshalAndParseMessageForIPv6Tests { - for _, psh := range [][]byte{pshicmp, nil} { - b, err := tt.Marshal(psh) - if err != nil { - t.Fatal(err) - } - m, err := icmp.ParseMessage(iana.ProtocolIPv6ICMP, b) - if err != nil { - t.Fatal(err) - } - if m.Type != tt.Type || m.Code != tt.Code { - t.Errorf("#%v: got %v; want %v", i, m, &tt) - } - if !reflect.DeepEqual(m.Body, tt.Body) { - t.Errorf("#%v: got %v; want %v", i, m.Body, tt.Body) - } - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/messagebody.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/messagebody.go deleted file mode 100644 index d3144805..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/messagebody.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2012 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 icmp - -// A MessageBody represents an ICMP message body. -type MessageBody interface { - // Len returns the length of ICMP message body. - // Proto must be either the ICMPv4 or ICMPv6 protocol number. - Len(proto int) int - - // Marshal returns the binary enconding of ICMP message body. - // Proto must be either the ICMPv4 or ICMPv6 protocol number. - Marshal(proto int) ([]byte, error) -} - -// A DefaultMessageBody represents the default message body. -type DefaultMessageBody struct { - Data []byte // data -} - -// Len implements the Len method of MessageBody interface. -func (p *DefaultMessageBody) Len(proto int) int { - if p == nil { - return 0 - } - return len(p.Data) -} - -// Marshal implements the Marshal method of MessageBody interface. -func (p *DefaultMessageBody) Marshal(proto int) ([]byte, error) { - return p.Data, nil -} - -// parseDefaultMessageBody parses b as an ICMP message body. -func parseDefaultMessageBody(proto int, b []byte) (MessageBody, error) { - p := &DefaultMessageBody{Data: make([]byte, len(b))} - copy(p.Data, b) - return p, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/mpls.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/mpls.go deleted file mode 100644 index 31bcfe8d..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/mpls.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp - -// A MPLSLabel represents a MPLS label stack entry. -type MPLSLabel struct { - Label int // label value - TC int // traffic class; formerly experimental use - S bool // bottom of stack - TTL int // time to live -} - -const ( - classMPLSLabelStack = 1 - typeIncomingMPLSLabelStack = 1 -) - -// A MPLSLabelStack represents a MPLS label stack. -type MPLSLabelStack struct { - Class int // extension object class number - Type int // extension object sub-type - Labels []MPLSLabel -} - -// Len implements the Len method of Extension interface. -func (ls *MPLSLabelStack) Len(proto int) int { - return 4 + (4 * len(ls.Labels)) -} - -// Marshal implements the Marshal method of Extension interface. -func (ls *MPLSLabelStack) Marshal(proto int) ([]byte, error) { - b := make([]byte, ls.Len(proto)) - if err := ls.marshal(proto, b); err != nil { - return nil, err - } - return b, nil -} - -func (ls *MPLSLabelStack) marshal(proto int, b []byte) error { - l := ls.Len(proto) - b[0], b[1] = byte(l>>8), byte(l) - b[2], b[3] = classMPLSLabelStack, typeIncomingMPLSLabelStack - off := 4 - for _, ll := range ls.Labels { - b[off], b[off+1], b[off+2] = byte(ll.Label>>12), byte(ll.Label>>4&0xff), byte(ll.Label<<4&0xf0) - b[off+2] |= byte(ll.TC << 1 & 0x0e) - if ll.S { - b[off+2] |= 0x1 - } - b[off+3] = byte(ll.TTL) - off += 4 - } - return nil -} - -func parseMPLSLabelStack(b []byte) (Extension, error) { - ls := &MPLSLabelStack{ - Class: int(b[2]), - Type: int(b[3]), - } - for b = b[4:]; len(b) >= 4; b = b[4:] { - ll := MPLSLabel{ - Label: int(b[0])<<12 | int(b[1])<<4 | int(b[2])>>4, - TC: int(b[2]&0x0e) >> 1, - TTL: int(b[3]), - } - if b[2]&0x1 != 0 { - ll.S = true - } - ls.Labels = append(ls.Labels, ll) - } - return ls, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/multipart.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/multipart.go deleted file mode 100644 index 8910aa82..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/multipart.go +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp - -import "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - -// multipartMessageBodyDataLen takes b as an original datagram and -// exts as extensions, and returns a required length for message body -// and a required length for a padded original datagram in wire -// format. -func multipartMessageBodyDataLen(proto int, b []byte, exts []Extension) (bodyLen, dataLen int) { - for _, ext := range exts { - bodyLen += ext.Len(proto) - } - if bodyLen > 0 { - dataLen = multipartMessageOrigDatagramLen(proto, b) - bodyLen += 4 // length of extension header - } else { - dataLen = len(b) - } - bodyLen += dataLen - return bodyLen, dataLen -} - -// multipartMessageOrigDatagramLen takes b as an original datagram, -// and returns a required length for a padded orignal datagram in wire -// format. -func multipartMessageOrigDatagramLen(proto int, b []byte) int { - roundup := func(b []byte, align int) int { - // According to RFC 4884, the padded original datagram - // field must contain at least 128 octets. - if len(b) < 128 { - return 128 - } - r := len(b) - return (r + align) &^ (align - 1) - } - switch proto { - case iana.ProtocolICMP: - return roundup(b, 4) - case iana.ProtocolIPv6ICMP: - return roundup(b, 8) - default: - return len(b) - } -} - -// marshalMultipartMessageBody takes data as an original datagram and -// exts as extesnsions, and returns a binary encoding of message body. -// It can be used for non-multipart message bodies when exts is nil. -func marshalMultipartMessageBody(proto int, data []byte, exts []Extension) ([]byte, error) { - bodyLen, dataLen := multipartMessageBodyDataLen(proto, data, exts) - b := make([]byte, 4+bodyLen) - copy(b[4:], data) - off := dataLen + 4 - if len(exts) > 0 { - b[dataLen+4] = byte(extensionVersion << 4) - off += 4 // length of object header - for _, ext := range exts { - switch ext := ext.(type) { - case *MPLSLabelStack: - if err := ext.marshal(proto, b[off:]); err != nil { - return nil, err - } - off += ext.Len(proto) - case *InterfaceInfo: - attrs, l := ext.attrsAndLen(proto) - if err := ext.marshal(proto, b[off:], attrs, l); err != nil { - return nil, err - } - off += ext.Len(proto) - } - } - s := checksum(b[dataLen+4:]) - b[dataLen+4+2] ^= byte(s) - b[dataLen+4+3] ^= byte(s >> 8) - switch proto { - case iana.ProtocolICMP: - b[1] = byte(dataLen / 4) - case iana.ProtocolIPv6ICMP: - b[0] = byte(dataLen / 8) - } - } - return b, nil -} - -// parseMultipartMessageBody parses b as either a non-multipart -// message body or a multipart message body. -func parseMultipartMessageBody(proto int, b []byte) ([]byte, []Extension, error) { - var l int - switch proto { - case iana.ProtocolICMP: - l = 4 * int(b[1]) - case iana.ProtocolIPv6ICMP: - l = 8 * int(b[0]) - } - if len(b) == 4 { - return nil, nil, nil - } - exts, l, err := parseExtensions(b[4:], l) - if err != nil { - l = len(b) - 4 - } - data := make([]byte, l) - copy(data, b[4:]) - return data, exts, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/multipart_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/multipart_test.go deleted file mode 100644 index 993b322a..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/multipart_test.go +++ /dev/null @@ -1,315 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp_test - -import ( - "fmt" - "net" - "reflect" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -var marshalAndParseMultipartMessageForIPv4Tests = []icmp.Message{ - { - Type: ipv4.ICMPTypeDestinationUnreachable, Code: 15, - Body: &icmp.DstUnreach{ - Data: []byte("ERROR-INVOKING-PACKET"), - Extensions: []icmp.Extension{ - &icmp.MPLSLabelStack{ - Class: 1, - Type: 1, - Labels: []icmp.MPLSLabel{ - { - Label: 16014, - TC: 0x4, - S: true, - TTL: 255, - }, - }, - }, - &icmp.InterfaceInfo{ - Class: 2, - Type: 0x0f, - Interface: &net.Interface{ - Index: 15, - Name: "en101", - MTU: 8192, - }, - Addr: &net.IPAddr{ - IP: net.IPv4(192, 168, 0, 1).To4(), - }, - }, - }, - }, - }, - { - Type: ipv4.ICMPTypeTimeExceeded, Code: 1, - Body: &icmp.TimeExceeded{ - Data: []byte("ERROR-INVOKING-PACKET"), - Extensions: []icmp.Extension{ - &icmp.InterfaceInfo{ - Class: 2, - Type: 0x0f, - Interface: &net.Interface{ - Index: 15, - Name: "en101", - MTU: 8192, - }, - Addr: &net.IPAddr{ - IP: net.IPv4(192, 168, 0, 1).To4(), - }, - }, - &icmp.MPLSLabelStack{ - Class: 1, - Type: 1, - Labels: []icmp.MPLSLabel{ - { - Label: 16014, - TC: 0x4, - S: true, - TTL: 255, - }, - }, - }, - }, - }, - }, - { - Type: ipv4.ICMPTypeParameterProblem, Code: 2, - Body: &icmp.ParamProb{ - Pointer: 8, - Data: []byte("ERROR-INVOKING-PACKET"), - Extensions: []icmp.Extension{ - &icmp.MPLSLabelStack{ - Class: 1, - Type: 1, - Labels: []icmp.MPLSLabel{ - { - Label: 16014, - TC: 0x4, - S: true, - TTL: 255, - }, - }, - }, - &icmp.InterfaceInfo{ - Class: 2, - Type: 0x0f, - Interface: &net.Interface{ - Index: 15, - Name: "en101", - MTU: 8192, - }, - Addr: &net.IPAddr{ - IP: net.IPv4(192, 168, 0, 1).To4(), - }, - }, - &icmp.InterfaceInfo{ - Class: 2, - Type: 0x2f, - Interface: &net.Interface{ - Index: 16, - Name: "en102", - MTU: 8192, - }, - Addr: &net.IPAddr{ - IP: net.IPv4(192, 168, 0, 2).To4(), - }, - }, - }, - }, - }, -} - -func TestMarshalAndParseMultipartMessageForIPv4(t *testing.T) { - for i, tt := range marshalAndParseMultipartMessageForIPv4Tests { - b, err := tt.Marshal(nil) - if err != nil { - t.Fatal(err) - } - if b[5] != 32 { - t.Errorf("#%v: got %v; want 32", i, b[5]) - } - m, err := icmp.ParseMessage(iana.ProtocolICMP, b) - if err != nil { - t.Fatal(err) - } - if m.Type != tt.Type || m.Code != tt.Code { - t.Errorf("#%v: got %v; want %v", i, m, &tt) - } - switch m.Type { - case ipv4.ICMPTypeDestinationUnreachable: - got, want := m.Body.(*icmp.DstUnreach), tt.Body.(*icmp.DstUnreach) - if !reflect.DeepEqual(got.Extensions, want.Extensions) { - t.Error(dumpExtensions(i, got.Extensions, want.Extensions)) - } - if len(got.Data) != 128 { - t.Errorf("#%v: got %v; want 128", i, len(got.Data)) - } - case ipv4.ICMPTypeTimeExceeded: - got, want := m.Body.(*icmp.TimeExceeded), tt.Body.(*icmp.TimeExceeded) - if !reflect.DeepEqual(got.Extensions, want.Extensions) { - t.Error(dumpExtensions(i, got.Extensions, want.Extensions)) - } - if len(got.Data) != 128 { - t.Errorf("#%v: got %v; want 128", i, len(got.Data)) - } - case ipv4.ICMPTypeParameterProblem: - got, want := m.Body.(*icmp.ParamProb), tt.Body.(*icmp.ParamProb) - if !reflect.DeepEqual(got.Extensions, want.Extensions) { - t.Error(dumpExtensions(i, got.Extensions, want.Extensions)) - } - if len(got.Data) != 128 { - t.Errorf("#%v: got %v; want 128", i, len(got.Data)) - } - } - } -} - -var marshalAndParseMultipartMessageForIPv6Tests = []icmp.Message{ - { - Type: ipv6.ICMPTypeDestinationUnreachable, Code: 6, - Body: &icmp.DstUnreach{ - Data: []byte("ERROR-INVOKING-PACKET"), - Extensions: []icmp.Extension{ - &icmp.MPLSLabelStack{ - Class: 1, - Type: 1, - Labels: []icmp.MPLSLabel{ - { - Label: 16014, - TC: 0x4, - S: true, - TTL: 255, - }, - }, - }, - &icmp.InterfaceInfo{ - Class: 2, - Type: 0x0f, - Interface: &net.Interface{ - Index: 15, - Name: "en101", - MTU: 8192, - }, - Addr: &net.IPAddr{ - IP: net.ParseIP("fe80::1"), - Zone: "en101", - }, - }, - }, - }, - }, - { - Type: ipv6.ICMPTypeTimeExceeded, Code: 1, - Body: &icmp.TimeExceeded{ - Data: []byte("ERROR-INVOKING-PACKET"), - Extensions: []icmp.Extension{ - &icmp.InterfaceInfo{ - Class: 2, - Type: 0x0f, - Interface: &net.Interface{ - Index: 15, - Name: "en101", - MTU: 8192, - }, - Addr: &net.IPAddr{ - IP: net.ParseIP("fe80::1"), - Zone: "en101", - }, - }, - &icmp.MPLSLabelStack{ - Class: 1, - Type: 1, - Labels: []icmp.MPLSLabel{ - { - Label: 16014, - TC: 0x4, - S: true, - TTL: 255, - }, - }, - }, - &icmp.InterfaceInfo{ - Class: 2, - Type: 0x2f, - Interface: &net.Interface{ - Index: 16, - Name: "en102", - MTU: 8192, - }, - Addr: &net.IPAddr{ - IP: net.ParseIP("fe80::1"), - Zone: "en102", - }, - }, - }, - }, - }, -} - -func TestMarshalAndParseMultipartMessageForIPv6(t *testing.T) { - pshicmp := icmp.IPv6PseudoHeader(net.ParseIP("fe80::1"), net.ParseIP("ff02::1")) - for i, tt := range marshalAndParseMultipartMessageForIPv6Tests { - for _, psh := range [][]byte{pshicmp, nil} { - b, err := tt.Marshal(psh) - if err != nil { - t.Fatal(err) - } - if b[4] != 16 { - t.Errorf("#%v: got %v; want 16", i, b[4]) - } - m, err := icmp.ParseMessage(iana.ProtocolIPv6ICMP, b) - if err != nil { - t.Fatal(err) - } - if m.Type != tt.Type || m.Code != tt.Code { - t.Errorf("#%v: got %v; want %v", i, m, &tt) - } - switch m.Type { - case ipv6.ICMPTypeDestinationUnreachable: - got, want := m.Body.(*icmp.DstUnreach), tt.Body.(*icmp.DstUnreach) - if !reflect.DeepEqual(got.Extensions, want.Extensions) { - t.Error(dumpExtensions(i, got.Extensions, want.Extensions)) - } - if len(got.Data) != 128 { - t.Errorf("#%v: got %v; want 128", i, len(got.Data)) - } - case ipv6.ICMPTypeTimeExceeded: - got, want := m.Body.(*icmp.TimeExceeded), tt.Body.(*icmp.TimeExceeded) - if !reflect.DeepEqual(got.Extensions, want.Extensions) { - t.Error(dumpExtensions(i, got.Extensions, want.Extensions)) - } - if len(got.Data) != 128 { - t.Errorf("#%v: got %v; want 128", i, len(got.Data)) - } - } - } - } -} - -func dumpExtensions(i int, gotExts, wantExts []icmp.Extension) string { - var s string - for j, got := range gotExts { - switch got := got.(type) { - case *icmp.MPLSLabelStack: - want := wantExts[j].(*icmp.MPLSLabelStack) - if !reflect.DeepEqual(got, want) { - s += fmt.Sprintf("#%v/%v: got %#v; want %#v\n", i, j, got, want) - } - case *icmp.InterfaceInfo: - want := wantExts[j].(*icmp.InterfaceInfo) - if !reflect.DeepEqual(got, want) { - s += fmt.Sprintf("#%v/%v: got %#v, %#v, %#v; want %#v, %#v, %#v\n", i, j, got, got.Interface, got.Addr, want, want.Interface, want.Addr) - } - } - } - return s[:len(s)-1] -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/packettoobig.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/packettoobig.go deleted file mode 100644 index 91d289b2..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/packettoobig.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp - -// A PacketTooBig represents an ICMP packet too big message body. -type PacketTooBig struct { - MTU int // maximum transmission unit of the nexthop link - Data []byte // data, known as original datagram field -} - -// Len implements the Len method of MessageBody interface. -func (p *PacketTooBig) Len(proto int) int { - if p == nil { - return 0 - } - return 4 + len(p.Data) -} - -// Marshal implements the Marshal method of MessageBody interface. -func (p *PacketTooBig) Marshal(proto int) ([]byte, error) { - b := make([]byte, 4+len(p.Data)) - b[0], b[1], b[2], b[3] = byte(p.MTU>>24), byte(p.MTU>>16), byte(p.MTU>>8), byte(p.MTU) - copy(b[4:], p.Data) - return b, nil -} - -// parsePacketTooBig parses b as an ICMP packet too big message body. -func parsePacketTooBig(proto int, b []byte) (MessageBody, error) { - bodyLen := len(b) - if bodyLen < 4 { - return nil, errMessageTooShort - } - p := &PacketTooBig{MTU: int(b[0])<<24 | int(b[1])<<16 | int(b[2])<<8 | int(b[3])} - if bodyLen > 4 { - p.Data = make([]byte, bodyLen-4) - copy(p.Data, b[4:]) - } - return p, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/paramprob.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/paramprob.go deleted file mode 100644 index b48f9ee1..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/paramprob.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp - -import "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - -// A ParamProb represents an ICMP parameter problem message body. -type ParamProb struct { - Pointer uintptr // offset within the data where the error was detected - Data []byte // data, known as original datagram field - Extensions []Extension // extensions -} - -// Len implements the Len method of MessageBody interface. -func (p *ParamProb) Len(proto int) int { - if p == nil { - return 0 - } - l, _ := multipartMessageBodyDataLen(proto, p.Data, p.Extensions) - return l -} - -// Marshal implements the Marshal method of MessageBody interface. -func (p *ParamProb) Marshal(proto int) ([]byte, error) { - if proto == iana.ProtocolIPv6ICMP { - b := make([]byte, 4+p.Len(proto)) - b[0], b[1], b[2], b[3] = byte(p.Pointer>>24), byte(p.Pointer>>16), byte(p.Pointer>>8), byte(p.Pointer) - copy(b[4:], p.Data) - return b, nil - } - b, err := marshalMultipartMessageBody(proto, p.Data, p.Extensions) - if err != nil { - return nil, err - } - b[0] = byte(p.Pointer) - return b, nil -} - -// parseParamProb parses b as an ICMP parameter problem message body. -func parseParamProb(proto int, b []byte) (MessageBody, error) { - if len(b) < 4 { - return nil, errMessageTooShort - } - p := &ParamProb{} - if proto == iana.ProtocolIPv6ICMP { - p.Pointer = uintptr(b[0])<<24 | uintptr(b[1])<<16 | uintptr(b[2])<<8 | uintptr(b[3]) - p.Data = make([]byte, len(b)-4) - copy(p.Data, b[4:]) - return p, nil - } - p.Pointer = uintptr(b[0]) - var err error - p.Data, p.Extensions, err = parseMultipartMessageBody(proto, b) - if err != nil { - return nil, err - } - return p, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ping_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ping_test.go deleted file mode 100644 index 92377c3b..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/ping_test.go +++ /dev/null @@ -1,166 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp_test - -import ( - "errors" - "fmt" - "net" - "os" - "runtime" - "testing" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -func googleAddr(c *icmp.PacketConn, protocol int) (net.Addr, error) { - const host = "www.google.com" - ips, err := net.LookupIP(host) - if err != nil { - return nil, err - } - netaddr := func(ip net.IP) (net.Addr, error) { - switch c.LocalAddr().(type) { - case *net.UDPAddr: - return &net.UDPAddr{IP: ip}, nil - case *net.IPAddr: - return &net.IPAddr{IP: ip}, nil - default: - return nil, errors.New("neither UDPAddr nor IPAddr") - } - } - for _, ip := range ips { - switch protocol { - case iana.ProtocolICMP: - if ip.To4() != nil { - return netaddr(ip) - } - case iana.ProtocolIPv6ICMP: - if ip.To16() != nil && ip.To4() == nil { - return netaddr(ip) - } - } - } - return nil, errors.New("no A or AAAA record") -} - -type pingTest struct { - network, address string - protocol int - mtype icmp.Type -} - -var nonPrivilegedPingTests = []pingTest{ - {"udp4", "0.0.0.0", iana.ProtocolICMP, ipv4.ICMPTypeEcho}, - - {"udp6", "::", iana.ProtocolIPv6ICMP, ipv6.ICMPTypeEchoRequest}, -} - -func TestNonPrivilegedPing(t *testing.T) { - if testing.Short() { - t.Skip("avoid external network") - } - switch runtime.GOOS { - case "darwin": - case "linux": - t.Log("you may need to adjust the net.ipv4.ping_group_range kernel state") - default: - t.Skipf("not supported on %s", runtime.GOOS) - } - - for i, tt := range nonPrivilegedPingTests { - if err := doPing(tt, i); err != nil { - t.Error(err) - } - } -} - -var privilegedPingTests = []pingTest{ - {"ip4:icmp", "0.0.0.0", iana.ProtocolICMP, ipv4.ICMPTypeEcho}, - - {"ip6:ipv6-icmp", "::", iana.ProtocolIPv6ICMP, ipv6.ICMPTypeEchoRequest}, -} - -func TestPrivilegedPing(t *testing.T) { - if testing.Short() { - t.Skip("avoid external network") - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - - for i, tt := range privilegedPingTests { - if err := doPing(tt, i); err != nil { - t.Error(err) - } - } -} - -func doPing(tt pingTest, seq int) error { - c, err := icmp.ListenPacket(tt.network, tt.address) - if err != nil { - return err - } - defer c.Close() - - dst, err := googleAddr(c, tt.protocol) - if err != nil { - return err - } - - if tt.network != "udp6" && tt.protocol == iana.ProtocolIPv6ICMP { - var f ipv6.ICMPFilter - f.SetAll(true) - f.Accept(ipv6.ICMPTypeDestinationUnreachable) - f.Accept(ipv6.ICMPTypePacketTooBig) - f.Accept(ipv6.ICMPTypeTimeExceeded) - f.Accept(ipv6.ICMPTypeParameterProblem) - f.Accept(ipv6.ICMPTypeEchoReply) - if err := c.IPv6PacketConn().SetICMPFilter(&f); err != nil { - return err - } - } - - wm := icmp.Message{ - Type: tt.mtype, Code: 0, - Body: &icmp.Echo{ - ID: os.Getpid() & 0xffff, Seq: 1 << uint(seq), - Data: []byte("HELLO-R-U-THERE"), - }, - } - wb, err := wm.Marshal(nil) - if err != nil { - return err - } - if n, err := c.WriteTo(wb, dst); err != nil { - return err - } else if n != len(wb) { - return fmt.Errorf("got %v; want %v", n, len(wb)) - } - - rb := make([]byte, 1500) - if err := c.SetReadDeadline(time.Now().Add(3 * time.Second)); err != nil { - return err - } - n, peer, err := c.ReadFrom(rb) - if err != nil { - return err - } - rm, err := icmp.ParseMessage(tt.protocol, rb[:n]) - if err != nil { - return err - } - switch rm.Type { - case ipv4.ICMPTypeEchoReply, ipv6.ICMPTypeEchoReply: - return nil - default: - return fmt.Errorf("got %+v from %v; want echo reply", rm, peer) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/sys_freebsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/sys_freebsd.go deleted file mode 100644 index c75f3dda..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/sys_freebsd.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp - -import "syscall" - -func init() { - freebsdVersion, _ = syscall.SysctlUint32("kern.osreldate") -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/timeexceeded.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/timeexceeded.go deleted file mode 100644 index 18628c8b..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp/timeexceeded.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package icmp - -// A TimeExceeded represents an ICMP time exceeded message body. -type TimeExceeded struct { - Data []byte // data, known as original datagram field - Extensions []Extension // extensions -} - -// Len implements the Len method of MessageBody interface. -func (p *TimeExceeded) Len(proto int) int { - if p == nil { - return 0 - } - l, _ := multipartMessageBodyDataLen(proto, p.Data, p.Extensions) - return l -} - -// Marshal implements the Marshal method of MessageBody interface. -func (p *TimeExceeded) Marshal(proto int) ([]byte, error) { - return marshalMultipartMessageBody(proto, p.Data, p.Extensions) -} - -// parseTimeExceeded parses b as an ICMP time exceeded message body. -func parseTimeExceeded(proto int, b []byte) (MessageBody, error) { - if len(b) < 4 { - return nil, errMessageTooShort - } - p := &TimeExceeded{} - var err error - p.Data, p.Extensions, err = parseMultipartMessageBody(proto, b) - if err != nil { - return nil, err - } - return p, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/idna.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/idna.go deleted file mode 100644 index 35ff39d8..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/idna.go +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2012 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 implements IDNA2008 (Internationalized Domain Names for -// Applications), defined in RFC 5890, RFC 5891, RFC 5892, RFC 5893 and -// RFC 5894. -package idna - -import ( - "strings" - "unicode/utf8" -) - -// TODO(nigeltao): specify when errors occur. For example, is ToASCII(".") or -// ToASCII("foo\x00") an error? See also http://www.unicode.org/faq/idn.html#11 - -// acePrefix is the ASCII Compatible Encoding prefix. -const acePrefix = "xn--" - -// 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". -func ToASCII(s string) (string, error) { - if ascii(s) { - return s, nil - } - labels := strings.Split(s, ".") - for i, label := range labels { - if !ascii(label) { - a, err := encode(acePrefix, label) - if err != nil { - return "", err - } - labels[i] = a - } - } - return strings.Join(labels, "."), nil -} - -// 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". -func ToUnicode(s string) (string, error) { - if !strings.Contains(s, acePrefix) { - return s, nil - } - labels := strings.Split(s, ".") - for i, label := range labels { - if strings.HasPrefix(label, acePrefix) { - u, err := decode(label[len(acePrefix):]) - if err != nil { - return "", err - } - labels[i] = u - } - } - return strings.Join(labels, "."), 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/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/idna_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/idna_test.go deleted file mode 100644 index b1bc6fa2..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/idna_test.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2012 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 - -import ( - "testing" -) - -var idnaTestCases = [...]struct { - ascii, unicode string -}{ - // Labels. - {"books", "books"}, - {"xn--bcher-kva", "bücher"}, - - // Domains. - {"foo--xn--bar.org", "foo--xn--bar.org"}, - {"golang.org", "golang.org"}, - {"example.xn--p1ai", "example.рф"}, - {"xn--czrw28b.tw", "商業.tw"}, - {"www.xn--mller-kva.de", "www.müller.de"}, -} - -func TestIDNA(t *testing.T) { - for _, tc := range idnaTestCases { - if a, err := ToASCII(tc.unicode); err != nil { - t.Errorf("ToASCII(%q): %v", tc.unicode, err) - } else if a != tc.ascii { - t.Errorf("ToASCII(%q): got %q, want %q", tc.unicode, a, tc.ascii) - } - - if u, err := ToUnicode(tc.ascii); err != nil { - t.Errorf("ToUnicode(%q): %v", tc.ascii, err) - } else if u != tc.unicode { - t.Errorf("ToUnicode(%q): got %q, want %q", tc.ascii, u, tc.unicode) - } - } -} - -// TODO(nigeltao): test errors, once we've specified when ToASCII and ToUnicode -// return errors. diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/punycode.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/punycode.go deleted file mode 100644 index 92e733f6..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/punycode.go +++ /dev/null @@ -1,200 +0,0 @@ -// Copyright 2012 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 ( - "fmt" - "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 -) - -// 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 "", fmt.Errorf("idna: invalid label %q", 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 "", fmt.Errorf("idna: invalid label %q", encoded) - } - digit, ok := decodeDigit(encoded[pos]) - if !ok { - return "", fmt.Errorf("idna: invalid label %q", encoded) - } - pos++ - i += digit * w - if i < 0 { - return "", fmt.Errorf("idna: invalid label %q", 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 "", fmt.Errorf("idna: invalid label %q", 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 "", fmt.Errorf("idna: invalid label %q", 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 "", fmt.Errorf("idna: invalid label %q", s) - } - n = m - for _, r := range s { - if r < n { - delta++ - if delta < 0 { - return "", fmt.Errorf("idna: invalid label %q", 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/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/punycode_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/punycode_test.go deleted file mode 100644 index bfec81de..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna/punycode_test.go +++ /dev/null @@ -1,198 +0,0 @@ -// Copyright 2012 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 - -import ( - "strings" - "testing" -) - -var punycodeTestCases = [...]struct { - s, encoded string -}{ - {"", ""}, - {"-", "--"}, - {"-a", "-a-"}, - {"-a-", "-a--"}, - {"a", "a-"}, - {"a-", "a--"}, - {"a-b", "a-b-"}, - {"books", "books-"}, - {"bücher", "bcher-kva"}, - {"Hello世界", "Hello-ck1hg65u"}, - {"ü", "tda"}, - {"üý", "tdac"}, - - // The test cases below come from RFC 3492 section 7.1 with Errata 3026. - { - // (A) Arabic (Egyptian). - "\u0644\u064A\u0647\u0645\u0627\u0628\u062A\u0643\u0644" + - "\u0645\u0648\u0634\u0639\u0631\u0628\u064A\u061F", - "egbpdaj6bu4bxfgehfvwxn", - }, - { - // (B) Chinese (simplified). - "\u4ED6\u4EEC\u4E3A\u4EC0\u4E48\u4E0D\u8BF4\u4E2D\u6587", - "ihqwcrb4cv8a8dqg056pqjye", - }, - { - // (C) Chinese (traditional). - "\u4ED6\u5011\u7232\u4EC0\u9EBD\u4E0D\u8AAA\u4E2D\u6587", - "ihqwctvzc91f659drss3x8bo0yb", - }, - { - // (D) Czech. - "\u0050\u0072\u006F\u010D\u0070\u0072\u006F\u0073\u0074" + - "\u011B\u006E\u0065\u006D\u006C\u0075\u0076\u00ED\u010D" + - "\u0065\u0073\u006B\u0079", - "Proprostnemluvesky-uyb24dma41a", - }, - { - // (E) Hebrew. - "\u05DC\u05DE\u05D4\u05D4\u05DD\u05E4\u05E9\u05D5\u05D8" + - "\u05DC\u05D0\u05DE\u05D3\u05D1\u05E8\u05D9\u05DD\u05E2" + - "\u05D1\u05E8\u05D9\u05EA", - "4dbcagdahymbxekheh6e0a7fei0b", - }, - { - // (F) Hindi (Devanagari). - "\u092F\u0939\u0932\u094B\u0917\u0939\u093F\u0928\u094D" + - "\u0926\u0940\u0915\u094D\u092F\u094B\u0902\u0928\u0939" + - "\u0940\u0902\u092C\u094B\u0932\u0938\u0915\u0924\u0947" + - "\u0939\u0948\u0902", - "i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd", - }, - { - // (G) Japanese (kanji and hiragana). - "\u306A\u305C\u307F\u3093\u306A\u65E5\u672C\u8A9E\u3092" + - "\u8A71\u3057\u3066\u304F\u308C\u306A\u3044\u306E\u304B", - "n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa", - }, - { - // (H) Korean (Hangul syllables). - "\uC138\uACC4\uC758\uBAA8\uB4E0\uC0AC\uB78C\uB4E4\uC774" + - "\uD55C\uAD6D\uC5B4\uB97C\uC774\uD574\uD55C\uB2E4\uBA74" + - "\uC5BC\uB9C8\uB098\uC88B\uC744\uAE4C", - "989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5j" + - "psd879ccm6fea98c", - }, - { - // (I) Russian (Cyrillic). - "\u043F\u043E\u0447\u0435\u043C\u0443\u0436\u0435\u043E" + - "\u043D\u0438\u043D\u0435\u0433\u043E\u0432\u043E\u0440" + - "\u044F\u0442\u043F\u043E\u0440\u0443\u0441\u0441\u043A" + - "\u0438", - "b1abfaaepdrnnbgefbadotcwatmq2g4l", - }, - { - // (J) Spanish. - "\u0050\u006F\u0072\u0071\u0075\u00E9\u006E\u006F\u0070" + - "\u0075\u0065\u0064\u0065\u006E\u0073\u0069\u006D\u0070" + - "\u006C\u0065\u006D\u0065\u006E\u0074\u0065\u0068\u0061" + - "\u0062\u006C\u0061\u0072\u0065\u006E\u0045\u0073\u0070" + - "\u0061\u00F1\u006F\u006C", - "PorqunopuedensimplementehablarenEspaol-fmd56a", - }, - { - // (K) Vietnamese. - "\u0054\u1EA1\u0069\u0073\u0061\u006F\u0068\u1ECD\u006B" + - "\u0068\u00F4\u006E\u0067\u0074\u0068\u1EC3\u0063\u0068" + - "\u1EC9\u006E\u00F3\u0069\u0074\u0069\u1EBF\u006E\u0067" + - "\u0056\u0069\u1EC7\u0074", - "TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g", - }, - { - // (L) 3B. - "\u0033\u5E74\u0042\u7D44\u91D1\u516B\u5148\u751F", - "3B-ww4c5e180e575a65lsy2b", - }, - { - // (M) -with-SUPER-MONKEYS. - "\u5B89\u5BA4\u5948\u7F8E\u6075\u002D\u0077\u0069\u0074" + - "\u0068\u002D\u0053\u0055\u0050\u0045\u0052\u002D\u004D" + - "\u004F\u004E\u004B\u0045\u0059\u0053", - "-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n", - }, - { - // (N) Hello-Another-Way-. - "\u0048\u0065\u006C\u006C\u006F\u002D\u0041\u006E\u006F" + - "\u0074\u0068\u0065\u0072\u002D\u0057\u0061\u0079\u002D" + - "\u305D\u308C\u305E\u308C\u306E\u5834\u6240", - "Hello-Another-Way--fc4qua05auwb3674vfr0b", - }, - { - // (O) 2. - "\u3072\u3068\u3064\u5C4B\u6839\u306E\u4E0B\u0032", - "2-u9tlzr9756bt3uc0v", - }, - { - // (P) MajiKoi5 - "\u004D\u0061\u006A\u0069\u3067\u004B\u006F\u0069\u3059" + - "\u308B\u0035\u79D2\u524D", - "MajiKoi5-783gue6qz075azm5e", - }, - { - // (Q) de - "\u30D1\u30D5\u30A3\u30FC\u0064\u0065\u30EB\u30F3\u30D0", - "de-jg4avhby1noc0d", - }, - { - // (R) - "\u305D\u306E\u30B9\u30D4\u30FC\u30C9\u3067", - "d9juau41awczczp", - }, - { - // (S) -> $1.00 <- - "\u002D\u003E\u0020\u0024\u0031\u002E\u0030\u0030\u0020" + - "\u003C\u002D", - "-> $1.00 <--", - }, -} - -func TestPunycode(t *testing.T) { - for _, tc := range punycodeTestCases { - if got, err := decode(tc.encoded); err != nil { - t.Errorf("decode(%q): %v", tc.encoded, err) - } else if got != tc.s { - t.Errorf("decode(%q): got %q, want %q", tc.encoded, got, tc.s) - } - - if got, err := encode("", tc.s); err != nil { - t.Errorf(`encode("", %q): %v`, tc.s, err) - } else if got != tc.encoded { - t.Errorf(`encode("", %q): got %q, want %q`, tc.s, got, tc.encoded) - } - } -} - -var punycodeErrorTestCases = [...]string{ - "decode -", // A sole '-' is invalid. - "decode foo\x00bar", // '\x00' is not in [0-9A-Za-z]. - "decode foo#bar", // '#' is not in [0-9A-Za-z]. - "decode foo\u00A3bar", // '\u00A3' is not in [0-9A-Za-z]. - "decode 9", // "9a" decodes to codepoint \u00A3; "9" is truncated. - "decode 99999a", // "99999a" decodes to codepoint \U0048A3C1, which is > \U0010FFFF. - "decode 9999999999a", // "9999999999a" overflows the int32 calculation. - - "encode " + strings.Repeat("x", 65536) + "\uff00", // int32 overflow. -} - -func TestPunycodeErrors(t *testing.T) { - for _, tc := range punycodeErrorTestCases { - var err error - switch { - case strings.HasPrefix(tc, "decode "): - _, err = decode(tc[7:]) - case strings.HasPrefix(tc, "encode "): - _, err = encode("", tc[7:]) - } - if err == nil { - if len(tc) > 256 { - tc = tc[:100] + "..." + tc[len(tc)-100:] - } - t.Errorf("no error for %s", tc) - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana/const.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana/const.go deleted file mode 100644 index 9c62872e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana/const.go +++ /dev/null @@ -1,181 +0,0 @@ -// go generate gen.go -// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA). -package iana - -// Differentiated Services Field Codepoints (DSCP), Updated: 2013-06-25 -const ( - DiffServCS0 = 0x0 // CS0 - DiffServCS1 = 0x20 // CS1 - DiffServCS2 = 0x40 // CS2 - DiffServCS3 = 0x60 // CS3 - DiffServCS4 = 0x80 // CS4 - DiffServCS5 = 0xa0 // CS5 - DiffServCS6 = 0xc0 // CS6 - DiffServCS7 = 0xe0 // CS7 - DiffServAF11 = 0x28 // AF11 - DiffServAF12 = 0x30 // AF12 - DiffServAF13 = 0x38 // AF13 - DiffServAF21 = 0x48 // AF21 - DiffServAF22 = 0x50 // AF22 - DiffServAF23 = 0x58 // AF23 - DiffServAF31 = 0x68 // AF31 - DiffServAF32 = 0x70 // AF32 - DiffServAF33 = 0x78 // AF33 - DiffServAF41 = 0x88 // AF41 - DiffServAF42 = 0x90 // AF42 - DiffServAF43 = 0x98 // AF43 - DiffServEFPHB = 0xb8 // EF PHB - DiffServVOICEADMIT = 0xb0 // VOICE-ADMIT -) - -// IPv4 TOS Byte and IPv6 Traffic Class Octet, Updated: 2001-09-06 -const ( - NotECNTransport = 0x0 // Not-ECT (Not ECN-Capable Transport) - ECNTransport1 = 0x1 // ECT(1) (ECN-Capable Transport(1)) - ECNTransport0 = 0x2 // ECT(0) (ECN-Capable Transport(0)) - CongestionExperienced = 0x3 // CE (Congestion Experienced) -) - -// Protocol Numbers, Updated: 2015-06-23 -const ( - ProtocolIP = 0 // IPv4 encapsulation, pseudo protocol number - ProtocolHOPOPT = 0 // IPv6 Hop-by-Hop Option - ProtocolICMP = 1 // Internet Control Message - ProtocolIGMP = 2 // Internet Group Management - ProtocolGGP = 3 // Gateway-to-Gateway - ProtocolIPv4 = 4 // IPv4 encapsulation - ProtocolST = 5 // Stream - ProtocolTCP = 6 // Transmission Control - ProtocolCBT = 7 // CBT - ProtocolEGP = 8 // Exterior Gateway Protocol - ProtocolIGP = 9 // any private interior gateway (used by Cisco for their IGRP) - ProtocolBBNRCCMON = 10 // BBN RCC Monitoring - ProtocolNVPII = 11 // Network Voice Protocol - ProtocolPUP = 12 // PUP - ProtocolARGUS = 13 // ARGUS - ProtocolEMCON = 14 // EMCON - ProtocolXNET = 15 // Cross Net Debugger - ProtocolCHAOS = 16 // Chaos - ProtocolUDP = 17 // User Datagram - ProtocolMUX = 18 // Multiplexing - ProtocolDCNMEAS = 19 // DCN Measurement Subsystems - ProtocolHMP = 20 // Host Monitoring - ProtocolPRM = 21 // Packet Radio Measurement - ProtocolXNSIDP = 22 // XEROX NS IDP - ProtocolTRUNK1 = 23 // Trunk-1 - ProtocolTRUNK2 = 24 // Trunk-2 - ProtocolLEAF1 = 25 // Leaf-1 - ProtocolLEAF2 = 26 // Leaf-2 - ProtocolRDP = 27 // Reliable Data Protocol - ProtocolIRTP = 28 // Internet Reliable Transaction - ProtocolISOTP4 = 29 // ISO Transport Protocol Class 4 - ProtocolNETBLT = 30 // Bulk Data Transfer Protocol - ProtocolMFENSP = 31 // MFE Network Services Protocol - ProtocolMERITINP = 32 // MERIT Internodal Protocol - ProtocolDCCP = 33 // Datagram Congestion Control Protocol - Protocol3PC = 34 // Third Party Connect Protocol - ProtocolIDPR = 35 // Inter-Domain Policy Routing Protocol - ProtocolXTP = 36 // XTP - ProtocolDDP = 37 // Datagram Delivery Protocol - ProtocolIDPRCMTP = 38 // IDPR Control Message Transport Proto - ProtocolTPPP = 39 // TP++ Transport Protocol - ProtocolIL = 40 // IL Transport Protocol - ProtocolIPv6 = 41 // IPv6 encapsulation - ProtocolSDRP = 42 // Source Demand Routing Protocol - ProtocolIPv6Route = 43 // Routing Header for IPv6 - ProtocolIPv6Frag = 44 // Fragment Header for IPv6 - ProtocolIDRP = 45 // Inter-Domain Routing Protocol - ProtocolRSVP = 46 // Reservation Protocol - ProtocolGRE = 47 // Generic Routing Encapsulation - ProtocolDSR = 48 // Dynamic Source Routing Protocol - ProtocolBNA = 49 // BNA - ProtocolESP = 50 // Encap Security Payload - ProtocolAH = 51 // Authentication Header - ProtocolINLSP = 52 // Integrated Net Layer Security TUBA - ProtocolNARP = 54 // NBMA Address Resolution Protocol - ProtocolMOBILE = 55 // IP Mobility - ProtocolTLSP = 56 // Transport Layer Security Protocol using Kryptonet key management - ProtocolSKIP = 57 // SKIP - ProtocolIPv6ICMP = 58 // ICMP for IPv6 - ProtocolIPv6NoNxt = 59 // No Next Header for IPv6 - ProtocolIPv6Opts = 60 // Destination Options for IPv6 - ProtocolCFTP = 62 // CFTP - ProtocolSATEXPAK = 64 // SATNET and Backroom EXPAK - ProtocolKRYPTOLAN = 65 // Kryptolan - ProtocolRVD = 66 // MIT Remote Virtual Disk Protocol - ProtocolIPPC = 67 // Internet Pluribus Packet Core - ProtocolSATMON = 69 // SATNET Monitoring - ProtocolVISA = 70 // VISA Protocol - ProtocolIPCV = 71 // Internet Packet Core Utility - ProtocolCPNX = 72 // Computer Protocol Network Executive - ProtocolCPHB = 73 // Computer Protocol Heart Beat - ProtocolWSN = 74 // Wang Span Network - ProtocolPVP = 75 // Packet Video Protocol - ProtocolBRSATMON = 76 // Backroom SATNET Monitoring - ProtocolSUNND = 77 // SUN ND PROTOCOL-Temporary - ProtocolWBMON = 78 // WIDEBAND Monitoring - ProtocolWBEXPAK = 79 // WIDEBAND EXPAK - ProtocolISOIP = 80 // ISO Internet Protocol - ProtocolVMTP = 81 // VMTP - ProtocolSECUREVMTP = 82 // SECURE-VMTP - ProtocolVINES = 83 // VINES - ProtocolTTP = 84 // Transaction Transport Protocol - ProtocolIPTM = 84 // Internet Protocol Traffic Manager - ProtocolNSFNETIGP = 85 // NSFNET-IGP - ProtocolDGP = 86 // Dissimilar Gateway Protocol - ProtocolTCF = 87 // TCF - ProtocolEIGRP = 88 // EIGRP - ProtocolOSPFIGP = 89 // OSPFIGP - ProtocolSpriteRPC = 90 // Sprite RPC Protocol - ProtocolLARP = 91 // Locus Address Resolution Protocol - ProtocolMTP = 92 // Multicast Transport Protocol - ProtocolAX25 = 93 // AX.25 Frames - ProtocolIPIP = 94 // IP-within-IP Encapsulation Protocol - ProtocolSCCSP = 96 // Semaphore Communications Sec. Pro. - ProtocolETHERIP = 97 // Ethernet-within-IP Encapsulation - ProtocolENCAP = 98 // Encapsulation Header - ProtocolGMTP = 100 // GMTP - ProtocolIFMP = 101 // Ipsilon Flow Management Protocol - ProtocolPNNI = 102 // PNNI over IP - ProtocolPIM = 103 // Protocol Independent Multicast - ProtocolARIS = 104 // ARIS - ProtocolSCPS = 105 // SCPS - ProtocolQNX = 106 // QNX - ProtocolAN = 107 // Active Networks - ProtocolIPComp = 108 // IP Payload Compression Protocol - ProtocolSNP = 109 // Sitara Networks Protocol - ProtocolCompaqPeer = 110 // Compaq Peer Protocol - ProtocolIPXinIP = 111 // IPX in IP - ProtocolVRRP = 112 // Virtual Router Redundancy Protocol - ProtocolPGM = 113 // PGM Reliable Transport Protocol - ProtocolL2TP = 115 // Layer Two Tunneling Protocol - ProtocolDDX = 116 // D-II Data Exchange (DDX) - ProtocolIATP = 117 // Interactive Agent Transfer Protocol - ProtocolSTP = 118 // Schedule Transfer Protocol - ProtocolSRP = 119 // SpectraLink Radio Protocol - ProtocolUTI = 120 // UTI - ProtocolSMP = 121 // Simple Message Protocol - ProtocolPTP = 123 // Performance Transparency Protocol - ProtocolISIS = 124 // ISIS over IPv4 - ProtocolFIRE = 125 // FIRE - ProtocolCRTP = 126 // Combat Radio Transport Protocol - ProtocolCRUDP = 127 // Combat Radio User Datagram - ProtocolSSCOPMCE = 128 // SSCOPMCE - ProtocolIPLT = 129 // IPLT - ProtocolSPS = 130 // Secure Packet Shield - ProtocolPIPE = 131 // Private IP Encapsulation within IP - ProtocolSCTP = 132 // Stream Control Transmission Protocol - ProtocolFC = 133 // Fibre Channel - ProtocolRSVPE2EIGNORE = 134 // RSVP-E2E-IGNORE - ProtocolMobilityHeader = 135 // Mobility Header - ProtocolUDPLite = 136 // UDPLite - ProtocolMPLSinIP = 137 // MPLS-in-IP - ProtocolMANET = 138 // MANET Protocols - ProtocolHIP = 139 // Host Identity Protocol - ProtocolShim6 = 140 // Shim6 Protocol - ProtocolWESP = 141 // Wrapped Encapsulating Security Payload - ProtocolROHC = 142 // Robust Header Compression - ProtocolReserved = 255 // Reserved -) diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana/gen.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana/gen.go deleted file mode 100644 index 2d8c07ca..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana/gen.go +++ /dev/null @@ -1,293 +0,0 @@ -// 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. - -// +build ignore - -//go:generate go run gen.go - -// This program generates internet protocol constants and tables by -// reading IANA protocol registries. -package main - -import ( - "bytes" - "encoding/xml" - "fmt" - "go/format" - "io" - "io/ioutil" - "net/http" - "os" - "strconv" - "strings" -) - -var registries = []struct { - url string - parse func(io.Writer, io.Reader) error -}{ - { - "http://www.iana.org/assignments/dscp-registry/dscp-registry.xml", - parseDSCPRegistry, - }, - { - "http://www.iana.org/assignments/ipv4-tos-byte/ipv4-tos-byte.xml", - parseTOSTCByte, - }, - { - "http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml", - parseProtocolNumbers, - }, -} - -func main() { - var bb bytes.Buffer - fmt.Fprintf(&bb, "// go generate gen.go\n") - fmt.Fprintf(&bb, "// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT\n\n") - fmt.Fprintf(&bb, "// Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA).\n") - fmt.Fprintf(&bb, `package iana // import "golang.org/x/net/internal/iana"`+"\n\n") - for _, r := range registries { - resp, err := http.Get(r.url) - if err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - defer resp.Body.Close() - if resp.StatusCode != http.StatusOK { - fmt.Fprintf(os.Stderr, "got HTTP status code %v for %v\n", resp.StatusCode, r.url) - os.Exit(1) - } - if err := r.parse(&bb, resp.Body); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - fmt.Fprintf(&bb, "\n") - } - b, err := format.Source(bb.Bytes()) - if err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - if err := ioutil.WriteFile("const.go", b, 0644); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } -} - -func parseDSCPRegistry(w io.Writer, r io.Reader) error { - dec := xml.NewDecoder(r) - var dr dscpRegistry - if err := dec.Decode(&dr); err != nil { - return err - } - drs := dr.escape() - fmt.Fprintf(w, "// %s, Updated: %s\n", dr.Title, dr.Updated) - fmt.Fprintf(w, "const (\n") - for _, dr := range drs { - fmt.Fprintf(w, "DiffServ%s = %#x", dr.Name, dr.Value) - fmt.Fprintf(w, "// %s\n", dr.OrigName) - } - fmt.Fprintf(w, ")\n") - return nil -} - -type dscpRegistry struct { - XMLName xml.Name `xml:"registry"` - Title string `xml:"title"` - Updated string `xml:"updated"` - Note string `xml:"note"` - RegTitle string `xml:"registry>title"` - PoolRecords []struct { - Name string `xml:"name"` - Space string `xml:"space"` - } `xml:"registry>record"` - Records []struct { - Name string `xml:"name"` - Space string `xml:"space"` - } `xml:"registry>registry>record"` -} - -type canonDSCPRecord struct { - OrigName string - Name string - Value int -} - -func (drr *dscpRegistry) escape() []canonDSCPRecord { - drs := make([]canonDSCPRecord, len(drr.Records)) - sr := strings.NewReplacer( - "+", "", - "-", "", - "/", "", - ".", "", - " ", "", - ) - for i, dr := range drr.Records { - s := strings.TrimSpace(dr.Name) - drs[i].OrigName = s - drs[i].Name = sr.Replace(s) - n, err := strconv.ParseUint(dr.Space, 2, 8) - if err != nil { - continue - } - drs[i].Value = int(n) << 2 - } - return drs -} - -func parseTOSTCByte(w io.Writer, r io.Reader) error { - dec := xml.NewDecoder(r) - var ttb tosTCByte - if err := dec.Decode(&ttb); err != nil { - return err - } - trs := ttb.escape() - fmt.Fprintf(w, "// %s, Updated: %s\n", ttb.Title, ttb.Updated) - fmt.Fprintf(w, "const (\n") - for _, tr := range trs { - fmt.Fprintf(w, "%s = %#x", tr.Keyword, tr.Value) - fmt.Fprintf(w, "// %s\n", tr.OrigKeyword) - } - fmt.Fprintf(w, ")\n") - return nil -} - -type tosTCByte struct { - XMLName xml.Name `xml:"registry"` - Title string `xml:"title"` - Updated string `xml:"updated"` - Note string `xml:"note"` - RegTitle string `xml:"registry>title"` - Records []struct { - Binary string `xml:"binary"` - Keyword string `xml:"keyword"` - } `xml:"registry>record"` -} - -type canonTOSTCByteRecord struct { - OrigKeyword string - Keyword string - Value int -} - -func (ttb *tosTCByte) escape() []canonTOSTCByteRecord { - trs := make([]canonTOSTCByteRecord, len(ttb.Records)) - sr := strings.NewReplacer( - "Capable", "", - "(", "", - ")", "", - "+", "", - "-", "", - "/", "", - ".", "", - " ", "", - ) - for i, tr := range ttb.Records { - s := strings.TrimSpace(tr.Keyword) - trs[i].OrigKeyword = s - ss := strings.Split(s, " ") - if len(ss) > 1 { - trs[i].Keyword = strings.Join(ss[1:], " ") - } else { - trs[i].Keyword = ss[0] - } - trs[i].Keyword = sr.Replace(trs[i].Keyword) - n, err := strconv.ParseUint(tr.Binary, 2, 8) - if err != nil { - continue - } - trs[i].Value = int(n) - } - return trs -} - -func parseProtocolNumbers(w io.Writer, r io.Reader) error { - dec := xml.NewDecoder(r) - var pn protocolNumbers - if err := dec.Decode(&pn); err != nil { - return err - } - prs := pn.escape() - prs = append([]canonProtocolRecord{{ - Name: "IP", - Descr: "IPv4 encapsulation, pseudo protocol number", - Value: 0, - }}, prs...) - fmt.Fprintf(w, "// %s, Updated: %s\n", pn.Title, pn.Updated) - fmt.Fprintf(w, "const (\n") - for _, pr := range prs { - if pr.Name == "" { - continue - } - fmt.Fprintf(w, "Protocol%s = %d", pr.Name, pr.Value) - s := pr.Descr - if s == "" { - s = pr.OrigName - } - fmt.Fprintf(w, "// %s\n", s) - } - fmt.Fprintf(w, ")\n") - return nil -} - -type protocolNumbers struct { - XMLName xml.Name `xml:"registry"` - Title string `xml:"title"` - Updated string `xml:"updated"` - RegTitle string `xml:"registry>title"` - Note string `xml:"registry>note"` - Records []struct { - Value string `xml:"value"` - Name string `xml:"name"` - Descr string `xml:"description"` - } `xml:"registry>record"` -} - -type canonProtocolRecord struct { - OrigName string - Name string - Descr string - Value int -} - -func (pn *protocolNumbers) escape() []canonProtocolRecord { - prs := make([]canonProtocolRecord, len(pn.Records)) - sr := strings.NewReplacer( - "-in-", "in", - "-within-", "within", - "-over-", "over", - "+", "P", - "-", "", - "/", "", - ".", "", - " ", "", - ) - for i, pr := range pn.Records { - if strings.Contains(pr.Name, "Deprecated") || - strings.Contains(pr.Name, "deprecated") { - continue - } - prs[i].OrigName = pr.Name - s := strings.TrimSpace(pr.Name) - switch pr.Name { - case "ISIS over IPv4": - prs[i].Name = "ISIS" - case "manet": - prs[i].Name = "MANET" - default: - prs[i].Name = sr.Replace(s) - } - ss := strings.Split(pr.Descr, "\n") - for i := range ss { - ss[i] = strings.TrimSpace(ss[i]) - } - if len(ss) > 1 { - prs[i].Descr = strings.Join(ss, " ") - } else { - prs[i].Descr = ss[0] - } - prs[i].Value, _ = strconv.Atoi(pr.Value) - } - return prs -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/error_posix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/error_posix.go deleted file mode 100644 index 963ed996..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/error_posix.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows - -package nettest - -import ( - "os" - "syscall" -) - -func protocolNotSupported(err error) bool { - switch err := err.(type) { - case syscall.Errno: - switch err { - case syscall.EPROTONOSUPPORT, syscall.ENOPROTOOPT: - return true - } - case *os.SyscallError: - switch err := err.Err.(type) { - case syscall.Errno: - switch err { - case syscall.EPROTONOSUPPORT, syscall.ENOPROTOOPT: - return true - } - } - } - return false -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/error_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/error_stub.go deleted file mode 100644 index 3c74d812..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/error_stub.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build nacl plan9 - -package nettest - -func protocolNotSupported(err error) bool { - return false -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/interface.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/interface.go deleted file mode 100644 index 53ae13a9..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/interface.go +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2012 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 nettest - -import "net" - -// IsMulticastCapable reports whether ifi is an IP multicast-capable -// network interface. Network must be "ip", "ip4" or "ip6". -func IsMulticastCapable(network string, ifi *net.Interface) (net.IP, bool) { - switch network { - case "ip", "ip4", "ip6": - default: - return nil, false - } - if ifi == nil || ifi.Flags&net.FlagUp == 0 || ifi.Flags&net.FlagMulticast == 0 { - return nil, false - } - return hasRoutableIP(network, ifi) -} - -// RoutedInterface returns a network interface that can route IP -// traffic and satisfies flags. It returns nil when an appropriate -// network interface is not found. Network must be "ip", "ip4" or -// "ip6". -func RoutedInterface(network string, flags net.Flags) *net.Interface { - switch network { - case "ip", "ip4", "ip6": - default: - return nil - } - ift, err := net.Interfaces() - if err != nil { - return nil - } - for _, ifi := range ift { - if ifi.Flags&flags != flags { - continue - } - if _, ok := hasRoutableIP(network, &ifi); !ok { - continue - } - return &ifi - } - return nil -} - -func hasRoutableIP(network string, ifi *net.Interface) (net.IP, bool) { - ifat, err := ifi.Addrs() - if err != nil { - return nil, false - } - for _, ifa := range ifat { - switch ifa := ifa.(type) { - case *net.IPAddr: - if ip := routableIP(network, ifa.IP); ip != nil { - return ip, true - } - case *net.IPNet: - if ip := routableIP(network, ifa.IP); ip != nil { - return ip, true - } - } - } - return nil, false -} - -func routableIP(network string, ip net.IP) net.IP { - if !ip.IsLoopback() && !ip.IsLinkLocalUnicast() && !ip.IsGlobalUnicast() { - return nil - } - switch network { - case "ip4": - if ip := ip.To4(); ip != nil { - return ip - } - case "ip6": - if ip.IsLoopback() { // addressing scope of the loopback address depends on each implementation - return nil - } - if ip := ip.To16(); ip != nil && ip.To4() == nil { - return ip - } - default: - if ip := ip.To4(); ip != nil { - return ip - } - if ip := ip.To16(); ip != nil { - return ip - } - } - return nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit.go deleted file mode 100644 index bb34aec0..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package nettest - -const defaultMaxOpenFiles = 256 - -// MaxOpenFiles returns the maximum number of open files for the -// caller's process. -func MaxOpenFiles() int { return maxOpenFiles() } diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit_stub.go deleted file mode 100644 index 102bef93..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit_stub.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build nacl plan9 - -package nettest - -func maxOpenFiles() int { return defaultMaxOpenFiles } diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit_unix.go deleted file mode 100644 index eb4312ce..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit_unix.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris - -package nettest - -import "syscall" - -func maxOpenFiles() int { - var rlim syscall.Rlimit - if err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlim); err != nil { - return defaultMaxOpenFiles - } - return int(rlim.Cur) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit_windows.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit_windows.go deleted file mode 100644 index de927b56..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/rlimit_windows.go +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package nettest - -func maxOpenFiles() int { return 4 * defaultMaxOpenFiles /* actually it's 16581375 */ } diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack.go deleted file mode 100644 index 3fac5590..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package nettest provides utilities for IP testing. -package nettest - -import "net" - -// SupportsIPv4 reports whether the platform supports IPv4 networking -// functionality. -func SupportsIPv4() bool { - ln, err := net.Listen("tcp4", "127.0.0.1:0") - if err != nil { - return false - } - ln.Close() - return true -} - -// SupportsIPv6 reports whether the platform supports IPv6 networking -// functionality. -func SupportsIPv6() bool { - ln, err := net.Listen("tcp6", "[::1]:0") - if err != nil { - return false - } - ln.Close() - return true -} - -// ProtocolNotSupported reports whether err is a protocol not -// supported error. -func ProtocolNotSupported(err error) bool { - return protocolNotSupported(err) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack_stub.go deleted file mode 100644 index 1b5fde1a..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack_stub.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build nacl plan9 - -package nettest - -import ( - "fmt" - "runtime" -) - -// SupportsRawIPSocket reports whether the platform supports raw IP -// sockets. -func SupportsRawIPSocket() (string, bool) { - return fmt.Sprintf("not supported on %s", runtime.GOOS), false -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack_unix.go deleted file mode 100644 index af89229f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack_unix.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris - -package nettest - -import ( - "fmt" - "os" - "runtime" -) - -// SupportsRawIPSocket reports whether the platform supports raw IP -// sockets. -func SupportsRawIPSocket() (string, bool) { - if os.Getuid() != 0 { - return fmt.Sprintf("must be root on %s", runtime.GOOS), false - } - return "", true -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack_windows.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack_windows.go deleted file mode 100644 index a21f4993..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest/stack_windows.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package nettest - -import ( - "fmt" - "runtime" - "syscall" -) - -// SupportsRawIPSocket reports whether the platform supports raw IP -// sockets. -func SupportsRawIPSocket() (string, bool) { - // From http://msdn.microsoft.com/en-us/library/windows/desktop/ms740548.aspx: - // Note: To use a socket of type SOCK_RAW requires administrative privileges. - // Users running Winsock applications that use raw sockets must be a member of - // the Administrators group on the local computer, otherwise raw socket calls - // will fail with an error code of WSAEACCES. On Windows Vista and later, access - // for raw sockets is enforced at socket creation. In earlier versions of Windows, - // access for raw sockets is enforced during other socket operations. - s, err := syscall.Socket(syscall.AF_INET, syscall.SOCK_RAW, 0) - if err == syscall.WSAEACCES { - return fmt.Sprintf("no access to raw socket allowed on %s", runtime.GOOS), false - } - if err != nil { - return err.Error(), false - } - syscall.Closesocket(s) - return "", true -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/timeseries/timeseries.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/timeseries/timeseries.go deleted file mode 100644 index 3f90b730..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/timeseries/timeseries.go +++ /dev/null @@ -1,525 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package timeseries implements a time series structure for stats collection. -package timeseries - -import ( - "fmt" - "log" - "time" -) - -const ( - timeSeriesNumBuckets = 64 - minuteHourSeriesNumBuckets = 60 -) - -var timeSeriesResolutions = []time.Duration{ - 1 * time.Second, - 10 * time.Second, - 1 * time.Minute, - 10 * time.Minute, - 1 * time.Hour, - 6 * time.Hour, - 24 * time.Hour, // 1 day - 7 * 24 * time.Hour, // 1 week - 4 * 7 * 24 * time.Hour, // 4 weeks - 16 * 7 * 24 * time.Hour, // 16 weeks -} - -var minuteHourSeriesResolutions = []time.Duration{ - 1 * time.Second, - 1 * time.Minute, -} - -// An Observable is a kind of data that can be aggregated in a time series. -type Observable interface { - Multiply(ratio float64) // Multiplies the data in self by a given ratio - Add(other Observable) // Adds the data from a different observation to self - Clear() // Clears the observation so it can be reused. - CopyFrom(other Observable) // Copies the contents of a given observation to self -} - -// Float attaches the methods of Observable to a float64. -type Float float64 - -// NewFloat returns a Float. -func NewFloat() Observable { - f := Float(0) - return &f -} - -// String returns the float as a string. -func (f *Float) String() string { return fmt.Sprintf("%g", f.Value()) } - -// Value returns the float's value. -func (f *Float) Value() float64 { return float64(*f) } - -func (f *Float) Multiply(ratio float64) { *f *= Float(ratio) } - -func (f *Float) Add(other Observable) { - o := other.(*Float) - *f += *o -} - -func (f *Float) Clear() { *f = 0 } - -func (f *Float) CopyFrom(other Observable) { - o := other.(*Float) - *f = *o -} - -// A Clock tells the current time. -type Clock interface { - Time() time.Time -} - -type defaultClock int - -var defaultClockInstance defaultClock - -func (defaultClock) Time() time.Time { return time.Now() } - -// Information kept per level. Each level consists of a circular list of -// observations. The start of the level may be derived from end and the -// len(buckets) * sizeInMillis. -type tsLevel struct { - oldest int // index to oldest bucketed Observable - newest int // index to newest bucketed Observable - end time.Time // end timestamp for this level - size time.Duration // duration of the bucketed Observable - buckets []Observable // collections of observations - provider func() Observable // used for creating new Observable -} - -func (l *tsLevel) Clear() { - l.oldest = 0 - l.newest = len(l.buckets) - 1 - l.end = time.Time{} - for i := range l.buckets { - if l.buckets[i] != nil { - l.buckets[i].Clear() - l.buckets[i] = nil - } - } -} - -func (l *tsLevel) InitLevel(size time.Duration, numBuckets int, f func() Observable) { - l.size = size - l.provider = f - l.buckets = make([]Observable, numBuckets) -} - -// Keeps a sequence of levels. Each level is responsible for storing data at -// a given resolution. For example, the first level stores data at a one -// minute resolution while the second level stores data at a one hour -// resolution. - -// Each level is represented by a sequence of buckets. Each bucket spans an -// interval equal to the resolution of the level. New observations are added -// to the last bucket. -type timeSeries struct { - provider func() Observable // make more Observable - numBuckets int // number of buckets in each level - levels []*tsLevel // levels of bucketed Observable - lastAdd time.Time // time of last Observable tracked - total Observable // convenient aggregation of all Observable - clock Clock // Clock for getting current time - pending Observable // observations not yet bucketed - pendingTime time.Time // what time are we keeping in pending - dirty bool // if there are pending observations -} - -// init initializes a level according to the supplied criteria. -func (ts *timeSeries) init(resolutions []time.Duration, f func() Observable, numBuckets int, clock Clock) { - ts.provider = f - ts.numBuckets = numBuckets - ts.clock = clock - ts.levels = make([]*tsLevel, len(resolutions)) - - for i := range resolutions { - if i > 0 && resolutions[i-1] >= resolutions[i] { - log.Print("timeseries: resolutions must be monotonically increasing") - break - } - newLevel := new(tsLevel) - newLevel.InitLevel(resolutions[i], ts.numBuckets, ts.provider) - ts.levels[i] = newLevel - } - - ts.Clear() -} - -// Clear removes all observations from the time series. -func (ts *timeSeries) Clear() { - ts.lastAdd = time.Time{} - ts.total = ts.resetObservation(ts.total) - ts.pending = ts.resetObservation(ts.pending) - ts.pendingTime = time.Time{} - ts.dirty = false - - for i := range ts.levels { - ts.levels[i].Clear() - } -} - -// Add records an observation at the current time. -func (ts *timeSeries) Add(observation Observable) { - ts.AddWithTime(observation, ts.clock.Time()) -} - -// AddWithTime records an observation at the specified time. -func (ts *timeSeries) AddWithTime(observation Observable, t time.Time) { - - smallBucketDuration := ts.levels[0].size - - if t.After(ts.lastAdd) { - ts.lastAdd = t - } - - if t.After(ts.pendingTime) { - ts.advance(t) - ts.mergePendingUpdates() - ts.pendingTime = ts.levels[0].end - ts.pending.CopyFrom(observation) - ts.dirty = true - } else if t.After(ts.pendingTime.Add(-1 * smallBucketDuration)) { - // The observation is close enough to go into the pending bucket. - // This compensates for clock skewing and small scheduling delays - // by letting the update stay in the fast path. - ts.pending.Add(observation) - ts.dirty = true - } else { - ts.mergeValue(observation, t) - } -} - -// mergeValue inserts the observation at the specified time in the past into all levels. -func (ts *timeSeries) mergeValue(observation Observable, t time.Time) { - for _, level := range ts.levels { - index := (ts.numBuckets - 1) - int(level.end.Sub(t)/level.size) - if 0 <= index && index < ts.numBuckets { - bucketNumber := (level.oldest + index) % ts.numBuckets - if level.buckets[bucketNumber] == nil { - level.buckets[bucketNumber] = level.provider() - } - level.buckets[bucketNumber].Add(observation) - } - } - ts.total.Add(observation) -} - -// mergePendingUpdates applies the pending updates into all levels. -func (ts *timeSeries) mergePendingUpdates() { - if ts.dirty { - ts.mergeValue(ts.pending, ts.pendingTime) - ts.pending = ts.resetObservation(ts.pending) - ts.dirty = false - } -} - -// advance cycles the buckets at each level until the latest bucket in -// each level can hold the time specified. -func (ts *timeSeries) advance(t time.Time) { - if !t.After(ts.levels[0].end) { - return - } - for i := 0; i < len(ts.levels); i++ { - level := ts.levels[i] - if !level.end.Before(t) { - break - } - - // If the time is sufficiently far, just clear the level and advance - // directly. - if !t.Before(level.end.Add(level.size * time.Duration(ts.numBuckets))) { - for _, b := range level.buckets { - ts.resetObservation(b) - } - level.end = time.Unix(0, (t.UnixNano()/level.size.Nanoseconds())*level.size.Nanoseconds()) - } - - for t.After(level.end) { - level.end = level.end.Add(level.size) - level.newest = level.oldest - level.oldest = (level.oldest + 1) % ts.numBuckets - ts.resetObservation(level.buckets[level.newest]) - } - - t = level.end - } -} - -// Latest returns the sum of the num latest buckets from the level. -func (ts *timeSeries) Latest(level, num int) Observable { - now := ts.clock.Time() - if ts.levels[0].end.Before(now) { - ts.advance(now) - } - - ts.mergePendingUpdates() - - result := ts.provider() - l := ts.levels[level] - index := l.newest - - for i := 0; i < num; i++ { - if l.buckets[index] != nil { - result.Add(l.buckets[index]) - } - if index == 0 { - index = ts.numBuckets - } - index-- - } - - return result -} - -// LatestBuckets returns a copy of the num latest buckets from level. -func (ts *timeSeries) LatestBuckets(level, num int) []Observable { - if level < 0 || level > len(ts.levels) { - log.Print("timeseries: bad level argument: ", level) - return nil - } - if num < 0 || num >= ts.numBuckets { - log.Print("timeseries: bad num argument: ", num) - return nil - } - - results := make([]Observable, num) - now := ts.clock.Time() - if ts.levels[0].end.Before(now) { - ts.advance(now) - } - - ts.mergePendingUpdates() - - l := ts.levels[level] - index := l.newest - - for i := 0; i < num; i++ { - result := ts.provider() - results[i] = result - if l.buckets[index] != nil { - result.CopyFrom(l.buckets[index]) - } - - if index == 0 { - index = ts.numBuckets - } - index -= 1 - } - return results -} - -// ScaleBy updates observations by scaling by factor. -func (ts *timeSeries) ScaleBy(factor float64) { - for _, l := range ts.levels { - for i := 0; i < ts.numBuckets; i++ { - l.buckets[i].Multiply(factor) - } - } - - ts.total.Multiply(factor) - ts.pending.Multiply(factor) -} - -// Range returns the sum of observations added over the specified time range. -// If start or finish times don't fall on bucket boundaries of the same -// level, then return values are approximate answers. -func (ts *timeSeries) Range(start, finish time.Time) Observable { - return ts.ComputeRange(start, finish, 1)[0] -} - -// Recent returns the sum of observations from the last delta. -func (ts *timeSeries) Recent(delta time.Duration) Observable { - now := ts.clock.Time() - return ts.Range(now.Add(-delta), now) -} - -// Total returns the total of all observations. -func (ts *timeSeries) Total() Observable { - ts.mergePendingUpdates() - return ts.total -} - -// ComputeRange computes a specified number of values into a slice using -// the observations recorded over the specified time period. The return -// values are approximate if the start or finish times don't fall on the -// bucket boundaries at the same level or if the number of buckets spanning -// the range is not an integral multiple of num. -func (ts *timeSeries) ComputeRange(start, finish time.Time, num int) []Observable { - if start.After(finish) { - log.Printf("timeseries: start > finish, %v>%v", start, finish) - return nil - } - - if num < 0 { - log.Printf("timeseries: num < 0, %v", num) - return nil - } - - results := make([]Observable, num) - - for _, l := range ts.levels { - if !start.Before(l.end.Add(-l.size * time.Duration(ts.numBuckets))) { - ts.extract(l, start, finish, num, results) - return results - } - } - - // Failed to find a level that covers the desired range. So just - // extract from the last level, even if it doesn't cover the entire - // desired range. - ts.extract(ts.levels[len(ts.levels)-1], start, finish, num, results) - - return results -} - -// RecentList returns the specified number of values in slice over the most -// recent time period of the specified range. -func (ts *timeSeries) RecentList(delta time.Duration, num int) []Observable { - if delta < 0 { - return nil - } - now := ts.clock.Time() - return ts.ComputeRange(now.Add(-delta), now, num) -} - -// extract returns a slice of specified number of observations from a given -// level over a given range. -func (ts *timeSeries) extract(l *tsLevel, start, finish time.Time, num int, results []Observable) { - ts.mergePendingUpdates() - - srcInterval := l.size - dstInterval := finish.Sub(start) / time.Duration(num) - dstStart := start - srcStart := l.end.Add(-srcInterval * time.Duration(ts.numBuckets)) - - srcIndex := 0 - - // Where should scanning start? - if dstStart.After(srcStart) { - advance := dstStart.Sub(srcStart) / srcInterval - srcIndex += int(advance) - srcStart = srcStart.Add(advance * srcInterval) - } - - // The i'th value is computed as show below. - // interval = (finish/start)/num - // i'th value = sum of observation in range - // [ start + i * interval, - // start + (i + 1) * interval ) - for i := 0; i < num; i++ { - results[i] = ts.resetObservation(results[i]) - dstEnd := dstStart.Add(dstInterval) - for srcIndex < ts.numBuckets && srcStart.Before(dstEnd) { - srcEnd := srcStart.Add(srcInterval) - if srcEnd.After(ts.lastAdd) { - srcEnd = ts.lastAdd - } - - if !srcEnd.Before(dstStart) { - srcValue := l.buckets[(srcIndex+l.oldest)%ts.numBuckets] - if !srcStart.Before(dstStart) && !srcEnd.After(dstEnd) { - // dst completely contains src. - if srcValue != nil { - results[i].Add(srcValue) - } - } else { - // dst partially overlaps src. - overlapStart := maxTime(srcStart, dstStart) - overlapEnd := minTime(srcEnd, dstEnd) - base := srcEnd.Sub(srcStart) - fraction := overlapEnd.Sub(overlapStart).Seconds() / base.Seconds() - - used := ts.provider() - if srcValue != nil { - used.CopyFrom(srcValue) - } - used.Multiply(fraction) - results[i].Add(used) - } - - if srcEnd.After(dstEnd) { - break - } - } - srcIndex++ - srcStart = srcStart.Add(srcInterval) - } - dstStart = dstStart.Add(dstInterval) - } -} - -// resetObservation clears the content so the struct may be reused. -func (ts *timeSeries) resetObservation(observation Observable) Observable { - if observation == nil { - observation = ts.provider() - } else { - observation.Clear() - } - return observation -} - -// TimeSeries tracks data at granularities from 1 second to 16 weeks. -type TimeSeries struct { - timeSeries -} - -// NewTimeSeries creates a new TimeSeries using the function provided for creating new Observable. -func NewTimeSeries(f func() Observable) *TimeSeries { - return NewTimeSeriesWithClock(f, defaultClockInstance) -} - -// NewTimeSeriesWithClock creates a new TimeSeries using the function provided for creating new Observable and the clock for -// assigning timestamps. -func NewTimeSeriesWithClock(f func() Observable, clock Clock) *TimeSeries { - ts := new(TimeSeries) - ts.timeSeries.init(timeSeriesResolutions, f, timeSeriesNumBuckets, clock) - return ts -} - -// MinuteHourSeries tracks data at granularities of 1 minute and 1 hour. -type MinuteHourSeries struct { - timeSeries -} - -// NewMinuteHourSeries creates a new MinuteHourSeries using the function provided for creating new Observable. -func NewMinuteHourSeries(f func() Observable) *MinuteHourSeries { - return NewMinuteHourSeriesWithClock(f, defaultClockInstance) -} - -// NewMinuteHourSeriesWithClock creates a new MinuteHourSeries using the function provided for creating new Observable and the clock for -// assigning timestamps. -func NewMinuteHourSeriesWithClock(f func() Observable, clock Clock) *MinuteHourSeries { - ts := new(MinuteHourSeries) - ts.timeSeries.init(minuteHourSeriesResolutions, f, - minuteHourSeriesNumBuckets, clock) - return ts -} - -func (ts *MinuteHourSeries) Minute() Observable { - return ts.timeSeries.Latest(0, 60) -} - -func (ts *MinuteHourSeries) Hour() Observable { - return ts.timeSeries.Latest(1, 60) -} - -func minTime(a, b time.Time) time.Time { - if a.Before(b) { - return a - } - return b -} - -func maxTime(a, b time.Time) time.Time { - if a.After(b) { - return a - } - return b -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/timeseries/timeseries_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/timeseries/timeseries_test.go deleted file mode 100644 index 66325a91..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/timeseries/timeseries_test.go +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package timeseries - -import ( - "math" - "testing" - "time" -) - -func isNear(x *Float, y float64, tolerance float64) bool { - return math.Abs(x.Value()-y) < tolerance -} - -func isApproximate(x *Float, y float64) bool { - return isNear(x, y, 1e-2) -} - -func checkApproximate(t *testing.T, o Observable, y float64) { - x := o.(*Float) - if !isApproximate(x, y) { - t.Errorf("Wanted %g, got %g", y, x.Value()) - } -} - -func checkNear(t *testing.T, o Observable, y, tolerance float64) { - x := o.(*Float) - if !isNear(x, y, tolerance) { - t.Errorf("Wanted %g +- %g, got %g", y, tolerance, x.Value()) - } -} - -var baseTime = time.Date(2013, 1, 1, 0, 0, 0, 0, time.UTC) - -func tu(s int64) time.Time { - return baseTime.Add(time.Duration(s) * time.Second) -} - -func tu2(s int64, ns int64) time.Time { - return baseTime.Add(time.Duration(s)*time.Second + time.Duration(ns)*time.Nanosecond) -} - -func TestBasicTimeSeries(t *testing.T) { - ts := NewTimeSeries(NewFloat) - fo := new(Float) - *fo = Float(10) - ts.AddWithTime(fo, tu(1)) - ts.AddWithTime(fo, tu(1)) - ts.AddWithTime(fo, tu(1)) - ts.AddWithTime(fo, tu(1)) - checkApproximate(t, ts.Range(tu(0), tu(1)), 40) - checkApproximate(t, ts.Total(), 40) - ts.AddWithTime(fo, tu(3)) - ts.AddWithTime(fo, tu(3)) - ts.AddWithTime(fo, tu(3)) - checkApproximate(t, ts.Range(tu(0), tu(2)), 40) - checkApproximate(t, ts.Range(tu(2), tu(4)), 30) - checkApproximate(t, ts.Total(), 70) - ts.AddWithTime(fo, tu(1)) - ts.AddWithTime(fo, tu(1)) - checkApproximate(t, ts.Range(tu(0), tu(2)), 60) - checkApproximate(t, ts.Range(tu(2), tu(4)), 30) - checkApproximate(t, ts.Total(), 90) - *fo = Float(100) - ts.AddWithTime(fo, tu(100)) - checkApproximate(t, ts.Range(tu(99), tu(100)), 100) - checkApproximate(t, ts.Range(tu(0), tu(4)), 36) - checkApproximate(t, ts.Total(), 190) - *fo = Float(10) - ts.AddWithTime(fo, tu(1)) - ts.AddWithTime(fo, tu(1)) - checkApproximate(t, ts.Range(tu(0), tu(4)), 44) - checkApproximate(t, ts.Range(tu(37), tu2(100, 100e6)), 100) - checkApproximate(t, ts.Range(tu(50), tu2(100, 100e6)), 100) - checkApproximate(t, ts.Range(tu(99), tu2(100, 100e6)), 100) - checkApproximate(t, ts.Total(), 210) - - for i, l := range ts.ComputeRange(tu(36), tu(100), 64) { - if i == 63 { - checkApproximate(t, l, 100) - } else { - checkApproximate(t, l, 0) - } - } - - checkApproximate(t, ts.Range(tu(0), tu(100)), 210) - checkApproximate(t, ts.Range(tu(10), tu(100)), 100) - - for i, l := range ts.ComputeRange(tu(0), tu(100), 100) { - if i < 10 { - checkApproximate(t, l, 11) - } else if i >= 90 { - checkApproximate(t, l, 10) - } else { - checkApproximate(t, l, 0) - } - } -} - -func TestFloat(t *testing.T) { - f := Float(1) - if g, w := f.String(), "1"; g != w { - t.Errorf("Float(1).String = %q; want %q", g, w) - } - f2 := Float(2) - var o Observable = &f2 - f.Add(o) - if g, w := f.Value(), 3.0; g != w { - t.Errorf("Float post-add = %v; want %v", g, w) - } - f.Multiply(2) - if g, w := f.Value(), 6.0; g != w { - t.Errorf("Float post-multiply = %v; want %v", g, w) - } - f.Clear() - if g, w := f.Value(), 0.0; g != w { - t.Errorf("Float post-clear = %v; want %v", g, w) - } - f.CopyFrom(&f2) - if g, w := f.Value(), 2.0; g != w { - t.Errorf("Float post-CopyFrom = %v; want %v", g, w) - } -} - -type mockClock struct { - time time.Time -} - -func (m *mockClock) Time() time.Time { return m.time } -func (m *mockClock) Set(t time.Time) { m.time = t } - -const buckets = 6 - -var testResolutions = []time.Duration{ - 10 * time.Second, // level holds one minute of observations - 100 * time.Second, // level holds ten minutes of observations - 10 * time.Minute, // level holds one hour of observations -} - -// TestTimeSeries uses a small number of buckets to force a higher -// error rate on approximations from the timeseries. -type TestTimeSeries struct { - timeSeries -} - -func TestExpectedErrorRate(t *testing.T) { - ts := new(TestTimeSeries) - fake := new(mockClock) - fake.Set(time.Now()) - ts.timeSeries.init(testResolutions, NewFloat, buckets, fake) - for i := 1; i <= 61*61; i++ { - fake.Set(fake.Time().Add(1 * time.Second)) - ob := Float(1) - ts.AddWithTime(&ob, fake.Time()) - - // The results should be accurate within one missing bucket (1/6) of the observations recorded. - checkNear(t, ts.Latest(0, buckets), min(float64(i), 60), 10) - checkNear(t, ts.Latest(1, buckets), min(float64(i), 600), 100) - checkNear(t, ts.Latest(2, buckets), min(float64(i), 3600), 600) - } -} - -func min(a, b float64) float64 { - if a < b { - return a - } - return b -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control.go deleted file mode 100644 index 1f5c993f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control.go +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2012 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 ipv4 - -import ( - "fmt" - "net" - "sync" -) - -type rawOpt struct { - sync.RWMutex - cflags ControlFlags -} - -func (c *rawOpt) set(f ControlFlags) { c.cflags |= f } -func (c *rawOpt) clear(f ControlFlags) { c.cflags &^= f } -func (c *rawOpt) isset(f ControlFlags) bool { return c.cflags&f != 0 } - -type ControlFlags uint - -const ( - FlagTTL ControlFlags = 1 << iota // pass the TTL on the received packet - FlagSrc // pass the source address on the received packet - FlagDst // pass the destination address on the received packet - FlagInterface // pass the interface index on the received packet -) - -// A ControlMessage represents per packet basis IP-level socket options. -type ControlMessage struct { - // Receiving socket options: SetControlMessage allows to - // receive the options from the protocol stack using ReadFrom - // method of PacketConn or RawConn. - // - // Specifying socket options: ControlMessage for WriteTo - // method of PacketConn or RawConn allows to send the options - // to the protocol stack. - // - TTL int // time-to-live, receiving only - Src net.IP // source address, specifying only - Dst net.IP // destination address, receiving only - IfIndex int // interface index, must be 1 <= value when specifying -} - -func (cm *ControlMessage) String() string { - if cm == nil { - return "" - } - return fmt.Sprintf("ttl: %v, src: %v, dst: %v, ifindex: %v", cm.TTL, cm.Src, cm.Dst, cm.IfIndex) -} - -// Ancillary data socket options -const ( - ctlTTL = iota // header field - ctlSrc // header field - ctlDst // header field - ctlInterface // inbound or outbound interface - ctlPacketInfo // inbound or outbound packet path - ctlMax -) - -// A ctlOpt represents a binding for ancillary data socket option. -type ctlOpt struct { - name int // option name, must be equal or greater than 1 - length int // option length - marshal func([]byte, *ControlMessage) []byte - parse func(*ControlMessage, []byte) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_bsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_bsd.go deleted file mode 100644 index b705bf0b..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_bsd.go +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2012 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 darwin dragonfly freebsd netbsd openbsd - -package ipv4 - -import ( - "net" - "syscall" - "unsafe" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -func marshalDst(b []byte, cm *ControlMessage) []byte { - m := (*syscall.Cmsghdr)(unsafe.Pointer(&b[0])) - m.Level = iana.ProtocolIP - m.Type = sysIP_RECVDSTADDR - m.SetLen(syscall.CmsgLen(net.IPv4len)) - return b[syscall.CmsgSpace(net.IPv4len):] -} - -func parseDst(cm *ControlMessage, b []byte) { - cm.Dst = b[:net.IPv4len] -} - -func marshalInterface(b []byte, cm *ControlMessage) []byte { - m := (*syscall.Cmsghdr)(unsafe.Pointer(&b[0])) - m.Level = iana.ProtocolIP - m.Type = sysIP_RECVIF - m.SetLen(syscall.CmsgLen(syscall.SizeofSockaddrDatalink)) - return b[syscall.CmsgSpace(syscall.SizeofSockaddrDatalink):] -} - -func parseInterface(cm *ControlMessage, b []byte) { - sadl := (*syscall.SockaddrDatalink)(unsafe.Pointer(&b[0])) - cm.IfIndex = int(sadl.Index) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_pktinfo.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_pktinfo.go deleted file mode 100644 index b3166ffa..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_pktinfo.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin linux - -package ipv4 - -import ( - "syscall" - "unsafe" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -func marshalPacketInfo(b []byte, cm *ControlMessage) []byte { - m := (*syscall.Cmsghdr)(unsafe.Pointer(&b[0])) - m.Level = iana.ProtocolIP - m.Type = sysIP_PKTINFO - m.SetLen(syscall.CmsgLen(sysSizeofInetPktinfo)) - if cm != nil { - pi := (*sysInetPktinfo)(unsafe.Pointer(&b[syscall.CmsgLen(0)])) - if ip := cm.Src.To4(); ip != nil { - copy(pi.Spec_dst[:], ip) - } - if cm.IfIndex > 0 { - pi.setIfindex(cm.IfIndex) - } - } - return b[syscall.CmsgSpace(sysSizeofInetPktinfo):] -} - -func parsePacketInfo(cm *ControlMessage, b []byte) { - pi := (*sysInetPktinfo)(unsafe.Pointer(&b[0])) - cm.IfIndex = int(pi.Ifindex) - cm.Dst = pi.Addr[:] -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_stub.go deleted file mode 100644 index 4d850719..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_stub.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2012 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 nacl plan9 solaris - -package ipv4 - -func setControlMessage(fd int, opt *rawOpt, cf ControlFlags, on bool) error { - return errOpNoSupport -} - -func newControlMessage(opt *rawOpt) []byte { - return nil -} - -func parseControlMessage(b []byte) (*ControlMessage, error) { - return nil, errOpNoSupport -} - -func marshalControlMessage(cm *ControlMessage) []byte { - return nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_unix.go deleted file mode 100644 index d3c86b8c..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_unix.go +++ /dev/null @@ -1,164 +0,0 @@ -// Copyright 2012 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 darwin dragonfly freebsd linux netbsd openbsd - -package ipv4 - -import ( - "os" - "syscall" - "unsafe" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -func setControlMessage(fd int, opt *rawOpt, cf ControlFlags, on bool) error { - opt.Lock() - defer opt.Unlock() - if cf&FlagTTL != 0 && sockOpts[ssoReceiveTTL].name > 0 { - if err := setInt(fd, &sockOpts[ssoReceiveTTL], boolint(on)); err != nil { - return err - } - if on { - opt.set(FlagTTL) - } else { - opt.clear(FlagTTL) - } - } - if sockOpts[ssoPacketInfo].name > 0 { - if cf&(FlagSrc|FlagDst|FlagInterface) != 0 { - if err := setInt(fd, &sockOpts[ssoPacketInfo], boolint(on)); err != nil { - return err - } - if on { - opt.set(cf & (FlagSrc | FlagDst | FlagInterface)) - } else { - opt.clear(cf & (FlagSrc | FlagDst | FlagInterface)) - } - } - } else { - if cf&FlagDst != 0 && sockOpts[ssoReceiveDst].name > 0 { - if err := setInt(fd, &sockOpts[ssoReceiveDst], boolint(on)); err != nil { - return err - } - if on { - opt.set(FlagDst) - } else { - opt.clear(FlagDst) - } - } - if cf&FlagInterface != 0 && sockOpts[ssoReceiveInterface].name > 0 { - if err := setInt(fd, &sockOpts[ssoReceiveInterface], boolint(on)); err != nil { - return err - } - if on { - opt.set(FlagInterface) - } else { - opt.clear(FlagInterface) - } - } - } - return nil -} - -func newControlMessage(opt *rawOpt) (oob []byte) { - opt.RLock() - var l int - if opt.isset(FlagTTL) && ctlOpts[ctlTTL].name > 0 { - l += syscall.CmsgSpace(ctlOpts[ctlTTL].length) - } - if ctlOpts[ctlPacketInfo].name > 0 { - if opt.isset(FlagSrc | FlagDst | FlagInterface) { - l += syscall.CmsgSpace(ctlOpts[ctlPacketInfo].length) - } - } else { - if opt.isset(FlagDst) && ctlOpts[ctlDst].name > 0 { - l += syscall.CmsgSpace(ctlOpts[ctlDst].length) - } - if opt.isset(FlagInterface) && ctlOpts[ctlInterface].name > 0 { - l += syscall.CmsgSpace(ctlOpts[ctlInterface].length) - } - } - if l > 0 { - oob = make([]byte, l) - b := oob - if opt.isset(FlagTTL) && ctlOpts[ctlTTL].name > 0 { - b = ctlOpts[ctlTTL].marshal(b, nil) - } - if ctlOpts[ctlPacketInfo].name > 0 { - if opt.isset(FlagSrc | FlagDst | FlagInterface) { - b = ctlOpts[ctlPacketInfo].marshal(b, nil) - } - } else { - if opt.isset(FlagDst) && ctlOpts[ctlDst].name > 0 { - b = ctlOpts[ctlDst].marshal(b, nil) - } - if opt.isset(FlagInterface) && ctlOpts[ctlInterface].name > 0 { - b = ctlOpts[ctlInterface].marshal(b, nil) - } - } - } - opt.RUnlock() - return -} - -func parseControlMessage(b []byte) (*ControlMessage, error) { - if len(b) == 0 { - return nil, nil - } - cmsgs, err := syscall.ParseSocketControlMessage(b) - if err != nil { - return nil, os.NewSyscallError("parse socket control message", err) - } - cm := &ControlMessage{} - for _, m := range cmsgs { - if m.Header.Level != iana.ProtocolIP { - continue - } - switch int(m.Header.Type) { - case ctlOpts[ctlTTL].name: - ctlOpts[ctlTTL].parse(cm, m.Data[:]) - case ctlOpts[ctlDst].name: - ctlOpts[ctlDst].parse(cm, m.Data[:]) - case ctlOpts[ctlInterface].name: - ctlOpts[ctlInterface].parse(cm, m.Data[:]) - case ctlOpts[ctlPacketInfo].name: - ctlOpts[ctlPacketInfo].parse(cm, m.Data[:]) - } - } - return cm, nil -} - -func marshalControlMessage(cm *ControlMessage) (oob []byte) { - if cm == nil { - return nil - } - var l int - pktinfo := false - if ctlOpts[ctlPacketInfo].name > 0 && (cm.Src.To4() != nil || cm.IfIndex > 0) { - pktinfo = true - l += syscall.CmsgSpace(ctlOpts[ctlPacketInfo].length) - } - if l > 0 { - oob = make([]byte, l) - b := oob - if pktinfo { - b = ctlOpts[ctlPacketInfo].marshal(b, cm) - } - } - return -} - -func marshalTTL(b []byte, cm *ControlMessage) []byte { - m := (*syscall.Cmsghdr)(unsafe.Pointer(&b[0])) - m.Level = iana.ProtocolIP - m.Type = sysIP_RECVTTL - m.SetLen(syscall.CmsgLen(1)) - return b[syscall.CmsgSpace(1):] -} - -func parseTTL(cm *ControlMessage, b []byte) { - cm.TTL = int(*(*byte)(unsafe.Pointer(&b[:1][0]))) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_windows.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_windows.go deleted file mode 100644 index 800f6377..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/control_windows.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2012 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 ipv4 - -import "syscall" - -func setControlMessage(fd syscall.Handle, opt *rawOpt, cf ControlFlags, on bool) error { - // TODO(mikio): implement this - return syscall.EWINDOWS -} - -func newControlMessage(opt *rawOpt) []byte { - // TODO(mikio): implement this - return nil -} - -func parseControlMessage(b []byte) (*ControlMessage, error) { - // TODO(mikio): implement this - return nil, syscall.EWINDOWS -} - -func marshalControlMessage(cm *ControlMessage) []byte { - // TODO(mikio): implement this - return nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_darwin.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_darwin.go deleted file mode 100644 index 731d56a7..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_darwin.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in_addr [4]byte /* in_addr */ - -package ipv4 - -/* -#include - -#include -*/ -import "C" - -const ( - sysIP_OPTIONS = C.IP_OPTIONS - sysIP_HDRINCL = C.IP_HDRINCL - sysIP_TOS = C.IP_TOS - sysIP_TTL = C.IP_TTL - sysIP_RECVOPTS = C.IP_RECVOPTS - sysIP_RECVRETOPTS = C.IP_RECVRETOPTS - sysIP_RECVDSTADDR = C.IP_RECVDSTADDR - sysIP_RETOPTS = C.IP_RETOPTS - sysIP_RECVIF = C.IP_RECVIF - sysIP_STRIPHDR = C.IP_STRIPHDR - sysIP_RECVTTL = C.IP_RECVTTL - sysIP_BOUND_IF = C.IP_BOUND_IF - sysIP_PKTINFO = C.IP_PKTINFO - sysIP_RECVPKTINFO = C.IP_RECVPKTINFO - - sysIP_MULTICAST_IF = C.IP_MULTICAST_IF - sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL - sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP - sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP - sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP - sysIP_MULTICAST_VIF = C.IP_MULTICAST_VIF - sysIP_MULTICAST_IFINDEX = C.IP_MULTICAST_IFINDEX - sysIP_ADD_SOURCE_MEMBERSHIP = C.IP_ADD_SOURCE_MEMBERSHIP - sysIP_DROP_SOURCE_MEMBERSHIP = C.IP_DROP_SOURCE_MEMBERSHIP - sysIP_BLOCK_SOURCE = C.IP_BLOCK_SOURCE - sysIP_UNBLOCK_SOURCE = C.IP_UNBLOCK_SOURCE - sysMCAST_JOIN_GROUP = C.MCAST_JOIN_GROUP - sysMCAST_LEAVE_GROUP = C.MCAST_LEAVE_GROUP - sysMCAST_JOIN_SOURCE_GROUP = C.MCAST_JOIN_SOURCE_GROUP - sysMCAST_LEAVE_SOURCE_GROUP = C.MCAST_LEAVE_SOURCE_GROUP - sysMCAST_BLOCK_SOURCE = C.MCAST_BLOCK_SOURCE - sysMCAST_UNBLOCK_SOURCE = C.MCAST_UNBLOCK_SOURCE - - sysSizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage - sysSizeofSockaddrInet = C.sizeof_struct_sockaddr_in - sysSizeofInetPktinfo = C.sizeof_struct_in_pktinfo - - sysSizeofIPMreq = C.sizeof_struct_ip_mreq - sysSizeofIPMreqn = C.sizeof_struct_ip_mreqn - sysSizeofIPMreqSource = C.sizeof_struct_ip_mreq_source - sysSizeofGroupReq = C.sizeof_struct_group_req - sysSizeofGroupSourceReq = C.sizeof_struct_group_source_req -) - -type sysSockaddrStorage C.struct_sockaddr_storage - -type sysSockaddrInet C.struct_sockaddr_in - -type sysInetPktinfo C.struct_in_pktinfo - -type sysIPMreq C.struct_ip_mreq - -type sysIPMreqn C.struct_ip_mreqn - -type sysIPMreqSource C.struct_ip_mreq_source - -type sysGroupReq C.struct_group_req - -type sysGroupSourceReq C.struct_group_source_req diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_dragonfly.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_dragonfly.go deleted file mode 100644 index 08e3b855..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_dragonfly.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in_addr [4]byte /* in_addr */ - -package ipv4 - -/* -#include -*/ -import "C" - -const ( - sysIP_OPTIONS = C.IP_OPTIONS - sysIP_HDRINCL = C.IP_HDRINCL - sysIP_TOS = C.IP_TOS - sysIP_TTL = C.IP_TTL - sysIP_RECVOPTS = C.IP_RECVOPTS - sysIP_RECVRETOPTS = C.IP_RECVRETOPTS - sysIP_RECVDSTADDR = C.IP_RECVDSTADDR - sysIP_RETOPTS = C.IP_RETOPTS - sysIP_RECVIF = C.IP_RECVIF - sysIP_RECVTTL = C.IP_RECVTTL - - sysIP_MULTICAST_IF = C.IP_MULTICAST_IF - sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL - sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP - sysIP_MULTICAST_VIF = C.IP_MULTICAST_VIF - sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP - sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP - - sysSizeofIPMreq = C.sizeof_struct_ip_mreq -) - -type sysIPMreq C.struct_ip_mreq diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_freebsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_freebsd.go deleted file mode 100644 index f12ca327..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_freebsd.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in_addr [4]byte /* in_addr */ - -package ipv4 - -/* -#include - -#include -*/ -import "C" - -const ( - sysIP_OPTIONS = C.IP_OPTIONS - sysIP_HDRINCL = C.IP_HDRINCL - sysIP_TOS = C.IP_TOS - sysIP_TTL = C.IP_TTL - sysIP_RECVOPTS = C.IP_RECVOPTS - sysIP_RECVRETOPTS = C.IP_RECVRETOPTS - sysIP_RECVDSTADDR = C.IP_RECVDSTADDR - sysIP_SENDSRCADDR = C.IP_SENDSRCADDR - sysIP_RETOPTS = C.IP_RETOPTS - sysIP_RECVIF = C.IP_RECVIF - sysIP_ONESBCAST = C.IP_ONESBCAST - sysIP_BINDANY = C.IP_BINDANY - sysIP_RECVTTL = C.IP_RECVTTL - sysIP_MINTTL = C.IP_MINTTL - sysIP_DONTFRAG = C.IP_DONTFRAG - sysIP_RECVTOS = C.IP_RECVTOS - - sysIP_MULTICAST_IF = C.IP_MULTICAST_IF - sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL - sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP - sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP - sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP - sysIP_MULTICAST_VIF = C.IP_MULTICAST_VIF - sysIP_ADD_SOURCE_MEMBERSHIP = C.IP_ADD_SOURCE_MEMBERSHIP - sysIP_DROP_SOURCE_MEMBERSHIP = C.IP_DROP_SOURCE_MEMBERSHIP - sysIP_BLOCK_SOURCE = C.IP_BLOCK_SOURCE - sysIP_UNBLOCK_SOURCE = C.IP_UNBLOCK_SOURCE - sysMCAST_JOIN_GROUP = C.MCAST_JOIN_GROUP - sysMCAST_LEAVE_GROUP = C.MCAST_LEAVE_GROUP - sysMCAST_JOIN_SOURCE_GROUP = C.MCAST_JOIN_SOURCE_GROUP - sysMCAST_LEAVE_SOURCE_GROUP = C.MCAST_LEAVE_SOURCE_GROUP - sysMCAST_BLOCK_SOURCE = C.MCAST_BLOCK_SOURCE - sysMCAST_UNBLOCK_SOURCE = C.MCAST_UNBLOCK_SOURCE - - sysSizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage - sysSizeofSockaddrInet = C.sizeof_struct_sockaddr_in - - sysSizeofIPMreq = C.sizeof_struct_ip_mreq - sysSizeofIPMreqn = C.sizeof_struct_ip_mreqn - sysSizeofIPMreqSource = C.sizeof_struct_ip_mreq_source - sysSizeofGroupReq = C.sizeof_struct_group_req - sysSizeofGroupSourceReq = C.sizeof_struct_group_source_req -) - -type sysSockaddrStorage C.struct_sockaddr_storage - -type sysSockaddrInet C.struct_sockaddr_in - -type sysIPMreq C.struct_ip_mreq - -type sysIPMreqn C.struct_ip_mreqn - -type sysIPMreqSource C.struct_ip_mreq_source - -type sysGroupReq C.struct_group_req - -type sysGroupSourceReq C.struct_group_source_req diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_linux.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_linux.go deleted file mode 100644 index fdba148a..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_linux.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in_addr [4]byte /* in_addr */ - -package ipv4 - -/* -#include - -#include -#include -#include -*/ -import "C" - -const ( - sysIP_TOS = C.IP_TOS - sysIP_TTL = C.IP_TTL - sysIP_HDRINCL = C.IP_HDRINCL - sysIP_OPTIONS = C.IP_OPTIONS - sysIP_ROUTER_ALERT = C.IP_ROUTER_ALERT - sysIP_RECVOPTS = C.IP_RECVOPTS - sysIP_RETOPTS = C.IP_RETOPTS - sysIP_PKTINFO = C.IP_PKTINFO - sysIP_PKTOPTIONS = C.IP_PKTOPTIONS - sysIP_MTU_DISCOVER = C.IP_MTU_DISCOVER - sysIP_RECVERR = C.IP_RECVERR - sysIP_RECVTTL = C.IP_RECVTTL - sysIP_RECVTOS = C.IP_RECVTOS - sysIP_MTU = C.IP_MTU - sysIP_FREEBIND = C.IP_FREEBIND - sysIP_TRANSPARENT = C.IP_TRANSPARENT - sysIP_RECVRETOPTS = C.IP_RECVRETOPTS - sysIP_ORIGDSTADDR = C.IP_ORIGDSTADDR - sysIP_RECVORIGDSTADDR = C.IP_RECVORIGDSTADDR - sysIP_MINTTL = C.IP_MINTTL - sysIP_NODEFRAG = C.IP_NODEFRAG - sysIP_UNICAST_IF = C.IP_UNICAST_IF - - sysIP_MULTICAST_IF = C.IP_MULTICAST_IF - sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL - sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP - sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP - sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP - sysIP_UNBLOCK_SOURCE = C.IP_UNBLOCK_SOURCE - sysIP_BLOCK_SOURCE = C.IP_BLOCK_SOURCE - sysIP_ADD_SOURCE_MEMBERSHIP = C.IP_ADD_SOURCE_MEMBERSHIP - sysIP_DROP_SOURCE_MEMBERSHIP = C.IP_DROP_SOURCE_MEMBERSHIP - sysIP_MSFILTER = C.IP_MSFILTER - sysMCAST_JOIN_GROUP = C.MCAST_JOIN_GROUP - sysMCAST_LEAVE_GROUP = C.MCAST_LEAVE_GROUP - sysMCAST_JOIN_SOURCE_GROUP = C.MCAST_JOIN_SOURCE_GROUP - sysMCAST_LEAVE_SOURCE_GROUP = C.MCAST_LEAVE_SOURCE_GROUP - sysMCAST_BLOCK_SOURCE = C.MCAST_BLOCK_SOURCE - sysMCAST_UNBLOCK_SOURCE = C.MCAST_UNBLOCK_SOURCE - sysMCAST_MSFILTER = C.MCAST_MSFILTER - sysIP_MULTICAST_ALL = C.IP_MULTICAST_ALL - - //sysIP_PMTUDISC_DONT = C.IP_PMTUDISC_DONT - //sysIP_PMTUDISC_WANT = C.IP_PMTUDISC_WANT - //sysIP_PMTUDISC_DO = C.IP_PMTUDISC_DO - //sysIP_PMTUDISC_PROBE = C.IP_PMTUDISC_PROBE - //sysIP_PMTUDISC_INTERFACE = C.IP_PMTUDISC_INTERFACE - //sysIP_PMTUDISC_OMIT = C.IP_PMTUDISC_OMIT - - sysICMP_FILTER = C.ICMP_FILTER - - sysSO_EE_ORIGIN_NONE = C.SO_EE_ORIGIN_NONE - sysSO_EE_ORIGIN_LOCAL = C.SO_EE_ORIGIN_LOCAL - sysSO_EE_ORIGIN_ICMP = C.SO_EE_ORIGIN_ICMP - sysSO_EE_ORIGIN_ICMP6 = C.SO_EE_ORIGIN_ICMP6 - sysSO_EE_ORIGIN_TXSTATUS = C.SO_EE_ORIGIN_TXSTATUS - sysSO_EE_ORIGIN_TIMESTAMPING = C.SO_EE_ORIGIN_TIMESTAMPING - - sysSizeofKernelSockaddrStorage = C.sizeof_struct___kernel_sockaddr_storage - sysSizeofSockaddrInet = C.sizeof_struct_sockaddr_in - sysSizeofInetPktinfo = C.sizeof_struct_in_pktinfo - sysSizeofSockExtendedErr = C.sizeof_struct_sock_extended_err - - sysSizeofIPMreq = C.sizeof_struct_ip_mreq - sysSizeofIPMreqn = C.sizeof_struct_ip_mreqn - sysSizeofIPMreqSource = C.sizeof_struct_ip_mreq_source - sysSizeofGroupReq = C.sizeof_struct_group_req - sysSizeofGroupSourceReq = C.sizeof_struct_group_source_req - - sysSizeofICMPFilter = C.sizeof_struct_icmp_filter -) - -type sysKernelSockaddrStorage C.struct___kernel_sockaddr_storage - -type sysSockaddrInet C.struct_sockaddr_in - -type sysInetPktinfo C.struct_in_pktinfo - -type sysSockExtendedErr C.struct_sock_extended_err - -type sysIPMreq C.struct_ip_mreq - -type sysIPMreqn C.struct_ip_mreqn - -type sysIPMreqSource C.struct_ip_mreq_source - -type sysGroupReq C.struct_group_req - -type sysGroupSourceReq C.struct_group_source_req - -type sysICMPFilter C.struct_icmp_filter diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_netbsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_netbsd.go deleted file mode 100644 index 8642354f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_netbsd.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in_addr [4]byte /* in_addr */ - -package ipv4 - -/* -#include -*/ -import "C" - -const ( - sysIP_OPTIONS = C.IP_OPTIONS - sysIP_HDRINCL = C.IP_HDRINCL - sysIP_TOS = C.IP_TOS - sysIP_TTL = C.IP_TTL - sysIP_RECVOPTS = C.IP_RECVOPTS - sysIP_RECVRETOPTS = C.IP_RECVRETOPTS - sysIP_RECVDSTADDR = C.IP_RECVDSTADDR - sysIP_RETOPTS = C.IP_RETOPTS - sysIP_RECVIF = C.IP_RECVIF - sysIP_RECVTTL = C.IP_RECVTTL - - sysIP_MULTICAST_IF = C.IP_MULTICAST_IF - sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL - sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP - sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP - sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP - - sysSizeofIPMreq = C.sizeof_struct_ip_mreq -) - -type sysIPMreq C.struct_ip_mreq diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_openbsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_openbsd.go deleted file mode 100644 index 8642354f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_openbsd.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in_addr [4]byte /* in_addr */ - -package ipv4 - -/* -#include -*/ -import "C" - -const ( - sysIP_OPTIONS = C.IP_OPTIONS - sysIP_HDRINCL = C.IP_HDRINCL - sysIP_TOS = C.IP_TOS - sysIP_TTL = C.IP_TTL - sysIP_RECVOPTS = C.IP_RECVOPTS - sysIP_RECVRETOPTS = C.IP_RECVRETOPTS - sysIP_RECVDSTADDR = C.IP_RECVDSTADDR - sysIP_RETOPTS = C.IP_RETOPTS - sysIP_RECVIF = C.IP_RECVIF - sysIP_RECVTTL = C.IP_RECVTTL - - sysIP_MULTICAST_IF = C.IP_MULTICAST_IF - sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL - sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP - sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP - sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP - - sysSizeofIPMreq = C.sizeof_struct_ip_mreq -) - -type sysIPMreq C.struct_ip_mreq diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_solaris.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_solaris.go deleted file mode 100644 index bb74afa4..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/defs_solaris.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in_addr [4]byte /* in_addr */ - -package ipv4 - -/* -#include -*/ -import "C" - -const ( - sysIP_OPTIONS = C.IP_OPTIONS - sysIP_HDRINCL = C.IP_HDRINCL - sysIP_TOS = C.IP_TOS - sysIP_TTL = C.IP_TTL - sysIP_RECVOPTS = C.IP_RECVOPTS - sysIP_RECVRETOPTS = C.IP_RECVRETOPTS - sysIP_RECVDSTADDR = C.IP_RECVDSTADDR - sysIP_RETOPTS = C.IP_RETOPTS - sysIP_RECVIF = C.IP_RECVIF - sysIP_RECVSLLA = C.IP_RECVSLLA - sysIP_RECVTTL = C.IP_RECVTTL - sysIP_NEXTHOP = C.IP_NEXTHOP - sysIP_PKTINFO = C.IP_PKTINFO - sysIP_RECVPKTINFO = C.IP_RECVPKTINFO - sysIP_DONTFRAG = C.IP_DONTFRAG - sysIP_BOUND_IF = C.IP_BOUND_IF - sysIP_UNSPEC_SRC = C.IP_UNSPEC_SRC - sysIP_BROADCAST_TTL = C.IP_BROADCAST_TTL - sysIP_DHCPINIT_IF = C.IP_DHCPINIT_IF - - sysIP_MULTICAST_IF = C.IP_MULTICAST_IF - sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL - sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP - sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP - sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP - sysIP_BLOCK_SOURCE = C.IP_BLOCK_SOURCE - sysIP_UNBLOCK_SOURCE = C.IP_UNBLOCK_SOURCE - sysIP_ADD_SOURCE_MEMBERSHIP = C.IP_ADD_SOURCE_MEMBERSHIP - sysIP_DROP_SOURCE_MEMBERSHIP = C.IP_DROP_SOURCE_MEMBERSHIP - - sysSizeofInetPktinfo = C.sizeof_struct_in_pktinfo - - sysSizeofIPMreq = C.sizeof_struct_ip_mreq - sysSizeofIPMreqSource = C.sizeof_struct_ip_mreq_source -) - -type sysInetPktinfo C.struct_in_pktinfo - -type sysIPMreq C.struct_ip_mreq - -type sysIPMreqSource C.struct_ip_mreq_source diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/dgramopt_posix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/dgramopt_posix.go deleted file mode 100644 index 103c4f6d..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/dgramopt_posix.go +++ /dev/null @@ -1,251 +0,0 @@ -// Copyright 2012 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 darwin dragonfly freebsd linux netbsd openbsd windows - -package ipv4 - -import ( - "net" - "syscall" -) - -// MulticastTTL returns the time-to-live field value for outgoing -// multicast packets. -func (c *dgramOpt) MulticastTTL() (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return 0, err - } - return getInt(fd, &sockOpts[ssoMulticastTTL]) -} - -// SetMulticastTTL sets the time-to-live field value for future -// outgoing multicast packets. -func (c *dgramOpt) SetMulticastTTL(ttl int) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - return setInt(fd, &sockOpts[ssoMulticastTTL], ttl) -} - -// MulticastInterface returns the default interface for multicast -// packet transmissions. -func (c *dgramOpt) MulticastInterface() (*net.Interface, error) { - if !c.ok() { - return nil, syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return nil, err - } - return getInterface(fd, &sockOpts[ssoMulticastInterface]) -} - -// SetMulticastInterface sets the default interface for future -// multicast packet transmissions. -func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - return setInterface(fd, &sockOpts[ssoMulticastInterface], ifi) -} - -// MulticastLoopback reports whether transmitted multicast packets -// should be copied and send back to the originator. -func (c *dgramOpt) MulticastLoopback() (bool, error) { - if !c.ok() { - return false, syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return false, err - } - on, err := getInt(fd, &sockOpts[ssoMulticastLoopback]) - if err != nil { - return false, err - } - return on == 1, nil -} - -// SetMulticastLoopback sets whether transmitted multicast packets -// should be copied and send back to the originator. -func (c *dgramOpt) SetMulticastLoopback(on bool) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - return setInt(fd, &sockOpts[ssoMulticastLoopback], boolint(on)) -} - -// JoinGroup joins the group address group on the interface ifi. -// By default all sources that can cast data to group are accepted. -// It's possible to mute and unmute data transmission from a specific -// source by using ExcludeSourceSpecificGroup and -// IncludeSourceSpecificGroup. -// JoinGroup uses the system assigned multicast interface when ifi is -// nil, although this is not recommended because the assignment -// depends on platforms and sometimes it might require routing -// configuration. -func (c *dgramOpt) JoinGroup(ifi *net.Interface, group net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - grp := netAddrToIP4(group) - if grp == nil { - return errMissingAddress - } - return setGroup(fd, &sockOpts[ssoJoinGroup], ifi, grp) -} - -// LeaveGroup leaves the group address group on the interface ifi -// regardless of whether the group is any-source group or -// source-specific group. -func (c *dgramOpt) LeaveGroup(ifi *net.Interface, group net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - grp := netAddrToIP4(group) - if grp == nil { - return errMissingAddress - } - return setGroup(fd, &sockOpts[ssoLeaveGroup], ifi, grp) -} - -// JoinSourceSpecificGroup joins the source-specific group comprising -// group and source on the interface ifi. -// JoinSourceSpecificGroup uses the system assigned multicast -// interface when ifi is nil, although this is not recommended because -// the assignment depends on platforms and sometimes it might require -// routing configuration. -func (c *dgramOpt) JoinSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - grp := netAddrToIP4(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP4(source) - if src == nil { - return errMissingAddress - } - return setSourceGroup(fd, &sockOpts[ssoJoinSourceGroup], ifi, grp, src) -} - -// LeaveSourceSpecificGroup leaves the source-specific group on the -// interface ifi. -func (c *dgramOpt) LeaveSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - grp := netAddrToIP4(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP4(source) - if src == nil { - return errMissingAddress - } - return setSourceGroup(fd, &sockOpts[ssoLeaveSourceGroup], ifi, grp, src) -} - -// ExcludeSourceSpecificGroup excludes the source-specific group from -// the already joined any-source groups by JoinGroup on the interface -// ifi. -func (c *dgramOpt) ExcludeSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - grp := netAddrToIP4(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP4(source) - if src == nil { - return errMissingAddress - } - return setSourceGroup(fd, &sockOpts[ssoBlockSourceGroup], ifi, grp, src) -} - -// IncludeSourceSpecificGroup includes the excluded source-specific -// group by ExcludeSourceSpecificGroup again on the interface ifi. -func (c *dgramOpt) IncludeSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - grp := netAddrToIP4(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP4(source) - if src == nil { - return errMissingAddress - } - return setSourceGroup(fd, &sockOpts[ssoUnblockSourceGroup], ifi, grp, src) -} - -// ICMPFilter returns an ICMP filter. -// Currently only Linux supports this. -func (c *dgramOpt) ICMPFilter() (*ICMPFilter, error) { - if !c.ok() { - return nil, syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return nil, err - } - return getICMPFilter(fd, &sockOpts[ssoICMPFilter]) -} - -// SetICMPFilter deploys the ICMP filter. -// Currently only Linux supports this. -func (c *dgramOpt) SetICMPFilter(f *ICMPFilter) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - return setICMPFilter(fd, &sockOpts[ssoICMPFilter], f) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/dgramopt_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/dgramopt_stub.go deleted file mode 100644 index b74df693..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/dgramopt_stub.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2012 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 nacl plan9 solaris - -package ipv4 - -import "net" - -// MulticastTTL returns the time-to-live field value for outgoing -// multicast packets. -func (c *dgramOpt) MulticastTTL() (int, error) { - return 0, errOpNoSupport -} - -// SetMulticastTTL sets the time-to-live field value for future -// outgoing multicast packets. -func (c *dgramOpt) SetMulticastTTL(ttl int) error { - return errOpNoSupport -} - -// MulticastInterface returns the default interface for multicast -// packet transmissions. -func (c *dgramOpt) MulticastInterface() (*net.Interface, error) { - return nil, errOpNoSupport -} - -// SetMulticastInterface sets the default interface for future -// multicast packet transmissions. -func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error { - return errOpNoSupport -} - -// MulticastLoopback reports whether transmitted multicast packets -// should be copied and send back to the originator. -func (c *dgramOpt) MulticastLoopback() (bool, error) { - return false, errOpNoSupport -} - -// SetMulticastLoopback sets whether transmitted multicast packets -// should be copied and send back to the originator. -func (c *dgramOpt) SetMulticastLoopback(on bool) error { - return errOpNoSupport -} - -// JoinGroup joins the group address group on the interface ifi. -// By default all sources that can cast data to group are accepted. -// It's possible to mute and unmute data transmission from a specific -// source by using ExcludeSourceSpecificGroup and -// IncludeSourceSpecificGroup. -// JoinGroup uses the system assigned multicast interface when ifi is -// nil, although this is not recommended because the assignment -// depends on platforms and sometimes it might require routing -// configuration. -func (c *dgramOpt) JoinGroup(ifi *net.Interface, group net.Addr) error { - return errOpNoSupport -} - -// LeaveGroup leaves the group address group on the interface ifi -// regardless of whether the group is any-source group or -// source-specific group. -func (c *dgramOpt) LeaveGroup(ifi *net.Interface, group net.Addr) error { - return errOpNoSupport -} - -// JoinSourceSpecificGroup joins the source-specific group comprising -// group and source on the interface ifi. -// JoinSourceSpecificGroup uses the system assigned multicast -// interface when ifi is nil, although this is not recommended because -// the assignment depends on platforms and sometimes it might require -// routing configuration. -func (c *dgramOpt) JoinSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - return errOpNoSupport -} - -// LeaveSourceSpecificGroup leaves the source-specific group on the -// interface ifi. -func (c *dgramOpt) LeaveSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - return errOpNoSupport -} - -// ExcludeSourceSpecificGroup excludes the source-specific group from -// the already joined any-source groups by JoinGroup on the interface -// ifi. -func (c *dgramOpt) ExcludeSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - return errOpNoSupport -} - -// IncludeSourceSpecificGroup includes the excluded source-specific -// group by ExcludeSourceSpecificGroup again on the interface ifi. -func (c *dgramOpt) IncludeSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - return errOpNoSupport -} - -// ICMPFilter returns an ICMP filter. -// Currently only Linux supports this. -func (c *dgramOpt) ICMPFilter() (*ICMPFilter, error) { - return nil, errOpNoSupport -} - -// SetICMPFilter deploys the ICMP filter. -// Currently only Linux supports this. -func (c *dgramOpt) SetICMPFilter(f *ICMPFilter) error { - return errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/doc.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/doc.go deleted file mode 100644 index fd83fc28..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/doc.go +++ /dev/null @@ -1,242 +0,0 @@ -// Copyright 2012 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 ipv4 implements IP-level socket options for the Internet -// Protocol version 4. -// -// The package provides IP-level socket options that allow -// manipulation of IPv4 facilities. -// -// The IPv4 protocol and basic host requirements for IPv4 are defined -// in RFC 791 and RFC 1122. -// Host extensions for multicasting and socket interface extensions -// for multicast source filters are defined in RFC 1112 and RFC 3678. -// IGMPv1, IGMPv2 and IGMPv3 are defined in RFC 1112, RFC 2236 and RFC -// 3376. -// Source-specific multicast is defined in RFC 4607. -// -// -// Unicasting -// -// The options for unicasting are available for net.TCPConn, -// net.UDPConn and net.IPConn which are created as network connections -// that use the IPv4 transport. When a single TCP connection carrying -// a data flow of multiple packets needs to indicate the flow is -// important, ipv4.Conn is used to set the type-of-service field on -// the IPv4 header for each packet. -// -// ln, err := net.Listen("tcp4", "0.0.0.0:1024") -// if err != nil { -// // error handling -// } -// defer ln.Close() -// for { -// c, err := ln.Accept() -// if err != nil { -// // error handling -// } -// go func(c net.Conn) { -// defer c.Close() -// -// The outgoing packets will be labeled DiffServ assured forwarding -// class 1 low drop precedence, known as AF11 packets. -// -// if err := ipv4.NewConn(c).SetTOS(0x28); err != nil { -// // error handling -// } -// if _, err := c.Write(data); err != nil { -// // error handling -// } -// }(c) -// } -// -// -// Multicasting -// -// The options for multicasting are available for net.UDPConn and -// net.IPconn which are created as network connections that use the -// IPv4 transport. A few network facilities must be prepared before -// you begin multicasting, at a minimum joining network interfaces and -// multicast groups. -// -// en0, err := net.InterfaceByName("en0") -// if err != nil { -// // error handling -// } -// en1, err := net.InterfaceByIndex(911) -// if err != nil { -// // error handling -// } -// group := net.IPv4(224, 0, 0, 250) -// -// First, an application listens to an appropriate address with an -// appropriate service port. -// -// c, err := net.ListenPacket("udp4", "0.0.0.0:1024") -// if err != nil { -// // error handling -// } -// defer c.Close() -// -// Second, the application joins multicast groups, starts listening to -// the groups on the specified network interfaces. Note that the -// service port for transport layer protocol does not matter with this -// operation as joining groups affects only network and link layer -// protocols, such as IPv4 and Ethernet. -// -// p := ipv4.NewPacketConn(c) -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: group}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en1, &net.UDPAddr{IP: group}); err != nil { -// // error handling -// } -// -// The application might set per packet control message transmissions -// between the protocol stack within the kernel. When the application -// needs a destination address on an incoming packet, -// SetControlMessage of ipv4.PacketConn is used to enable control -// message transmissons. -// -// if err := p.SetControlMessage(ipv4.FlagDst, true); err != nil { -// // error handling -// } -// -// The application could identify whether the received packets are -// of interest by using the control message that contains the -// destination address of the received packet. -// -// b := make([]byte, 1500) -// for { -// n, cm, src, err := p.ReadFrom(b) -// if err != nil { -// // error handling -// } -// if cm.Dst.IsMulticast() { -// if cm.Dst.Equal(group) { -// // joined group, do something -// } else { -// // unknown group, discard -// continue -// } -// } -// -// The application can also send both unicast and multicast packets. -// -// p.SetTOS(0x0) -// p.SetTTL(16) -// if _, err := p.WriteTo(data, nil, src); err != nil { -// // error handling -// } -// dst := &net.UDPAddr{IP: group, Port: 1024} -// for _, ifi := range []*net.Interface{en0, en1} { -// if err := p.SetMulticastInterface(ifi); err != nil { -// // error handling -// } -// p.SetMulticastTTL(2) -// if _, err := p.WriteTo(data, nil, dst); err != nil { -// // error handling -// } -// } -// } -// -// -// More multicasting -// -// An application that uses PacketConn or RawConn may join multiple -// multicast groups. For example, a UDP listener with port 1024 might -// join two different groups across over two different network -// interfaces by using: -// -// c, err := net.ListenPacket("udp4", "0.0.0.0:1024") -// if err != nil { -// // error handling -// } -// defer c.Close() -// p := ipv4.NewPacketConn(c) -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 248)}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 249)}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en1, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 249)}); err != nil { -// // error handling -// } -// -// It is possible for multiple UDP listeners that listen on the same -// UDP port to join the same multicast group. The net package will -// provide a socket that listens to a wildcard address with reusable -// UDP port when an appropriate multicast address prefix is passed to -// the net.ListenPacket or net.ListenUDP. -// -// c1, err := net.ListenPacket("udp4", "224.0.0.0:1024") -// if err != nil { -// // error handling -// } -// defer c1.Close() -// c2, err := net.ListenPacket("udp4", "224.0.0.0:1024") -// if err != nil { -// // error handling -// } -// defer c2.Close() -// p1 := ipv4.NewPacketConn(c1) -// if err := p1.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 248)}); err != nil { -// // error handling -// } -// p2 := ipv4.NewPacketConn(c2) -// if err := p2.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 248)}); err != nil { -// // error handling -// } -// -// Also it is possible for the application to leave or rejoin a -// multicast group on the network interface. -// -// if err := p.LeaveGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 248)}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 250)}); err != nil { -// // error handling -// } -// -// -// Source-specific multicasting -// -// An application that uses PacketConn or RawConn on IGMPv3 supported -// platform is able to join source-specific multicast groups. -// The application may use JoinSourceSpecificGroup and -// LeaveSourceSpecificGroup for the operation known as "include" mode, -// -// ssmgroup := net.UDPAddr{IP: net.IPv4(232, 7, 8, 9)} -// ssmsource := net.UDPAddr{IP: net.IPv4(192, 168, 0, 1)}) -// if err := p.JoinSourceSpecificGroup(en0, &ssmgroup, &ssmsource); err != nil { -// // error handling -// } -// if err := p.LeaveSourceSpecificGroup(en0, &ssmgroup, &ssmsource); err != nil { -// // error handling -// } -// -// or JoinGroup, ExcludeSourceSpecificGroup, -// IncludeSourceSpecificGroup and LeaveGroup for the operation known -// as "exclude" mode. -// -// exclsource := net.UDPAddr{IP: net.IPv4(192, 168, 0, 254)} -// if err := p.JoinGroup(en0, &ssmgroup); err != nil { -// // error handling -// } -// if err := p.ExcludeSourceSpecificGroup(en0, &ssmgroup, &exclsource); err != nil { -// // error handling -// } -// if err := p.LeaveGroup(en0, &ssmgroup); err != nil { -// // error handling -// } -// -// Note that it depends on each platform implementation what happens -// when an application which runs on IGMPv3 unsupported platform uses -// JoinSourceSpecificGroup and LeaveSourceSpecificGroup. -// In general the platform tries to fall back to conversations using -// IGMPv1 or IGMPv2 and starts to listen to multicast traffic. -// In the fallback case, ExcludeSourceSpecificGroup and -// IncludeSourceSpecificGroup may return an error. -package ipv4 diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/endpoint.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/endpoint.go deleted file mode 100644 index bc45bf05..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/endpoint.go +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright 2012 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 ipv4 - -import ( - "net" - "syscall" - "time" -) - -// A Conn represents a network endpoint that uses the IPv4 transport. -// It is used to control basic IP-level socket options such as TOS and -// TTL. -type Conn struct { - genericOpt -} - -type genericOpt struct { - net.Conn -} - -func (c *genericOpt) ok() bool { return c != nil && c.Conn != nil } - -// NewConn returns a new Conn. -func NewConn(c net.Conn) *Conn { - return &Conn{ - genericOpt: genericOpt{Conn: c}, - } -} - -// A PacketConn represents a packet network endpoint that uses the -// IPv4 transport. It is used to control several IP-level socket -// options including multicasting. It also provides datagram based -// network I/O methods specific to the IPv4 and higher layer protocols -// such as UDP. -type PacketConn struct { - genericOpt - dgramOpt - payloadHandler -} - -type dgramOpt struct { - net.PacketConn -} - -func (c *dgramOpt) ok() bool { return c != nil && c.PacketConn != nil } - -// SetControlMessage sets the per packet IP-level socket options. -func (c *PacketConn) SetControlMessage(cf ControlFlags, on bool) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - fd, err := c.payloadHandler.sysfd() - if err != nil { - return err - } - return setControlMessage(fd, &c.payloadHandler.rawOpt, cf, on) -} - -// SetDeadline sets the read and write deadlines associated with the -// endpoint. -func (c *PacketConn) SetDeadline(t time.Time) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.PacketConn.SetDeadline(t) -} - -// SetReadDeadline sets the read deadline associated with the -// endpoint. -func (c *PacketConn) SetReadDeadline(t time.Time) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.PacketConn.SetReadDeadline(t) -} - -// SetWriteDeadline sets the write deadline associated with the -// endpoint. -func (c *PacketConn) SetWriteDeadline(t time.Time) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.PacketConn.SetWriteDeadline(t) -} - -// Close closes the endpoint. -func (c *PacketConn) Close() error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.PacketConn.Close() -} - -// NewPacketConn returns a new PacketConn using c as its underlying -// transport. -func NewPacketConn(c net.PacketConn) *PacketConn { - p := &PacketConn{ - genericOpt: genericOpt{Conn: c.(net.Conn)}, - dgramOpt: dgramOpt{PacketConn: c}, - payloadHandler: payloadHandler{PacketConn: c}, - } - if _, ok := c.(*net.IPConn); ok && sockOpts[ssoStripHeader].name > 0 { - if fd, err := p.payloadHandler.sysfd(); err == nil { - setInt(fd, &sockOpts[ssoStripHeader], boolint(true)) - } - } - return p -} - -// A RawConn represents a packet network endpoint that uses the IPv4 -// transport. It is used to control several IP-level socket options -// including IPv4 header manipulation. It also provides datagram -// based network I/O methods specific to the IPv4 and higher layer -// protocols that handle IPv4 datagram directly such as OSPF, GRE. -type RawConn struct { - genericOpt - dgramOpt - packetHandler -} - -// SetControlMessage sets the per packet IP-level socket options. -func (c *RawConn) SetControlMessage(cf ControlFlags, on bool) error { - if !c.packetHandler.ok() { - return syscall.EINVAL - } - fd, err := c.packetHandler.sysfd() - if err != nil { - return err - } - return setControlMessage(fd, &c.packetHandler.rawOpt, cf, on) -} - -// SetDeadline sets the read and write deadlines associated with the -// endpoint. -func (c *RawConn) SetDeadline(t time.Time) error { - if !c.packetHandler.ok() { - return syscall.EINVAL - } - return c.packetHandler.c.SetDeadline(t) -} - -// SetReadDeadline sets the read deadline associated with the -// endpoint. -func (c *RawConn) SetReadDeadline(t time.Time) error { - if !c.packetHandler.ok() { - return syscall.EINVAL - } - return c.packetHandler.c.SetReadDeadline(t) -} - -// SetWriteDeadline sets the write deadline associated with the -// endpoint. -func (c *RawConn) SetWriteDeadline(t time.Time) error { - if !c.packetHandler.ok() { - return syscall.EINVAL - } - return c.packetHandler.c.SetWriteDeadline(t) -} - -// Close closes the endpoint. -func (c *RawConn) Close() error { - if !c.packetHandler.ok() { - return syscall.EINVAL - } - return c.packetHandler.c.Close() -} - -// NewRawConn returns a new RawConn using c as its underlying -// transport. -func NewRawConn(c net.PacketConn) (*RawConn, error) { - r := &RawConn{ - genericOpt: genericOpt{Conn: c.(net.Conn)}, - dgramOpt: dgramOpt{PacketConn: c}, - packetHandler: packetHandler{c: c.(*net.IPConn)}, - } - fd, err := r.packetHandler.sysfd() - if err != nil { - return nil, err - } - if err := setInt(fd, &sockOpts[ssoHeaderPrepend], boolint(true)); err != nil { - return nil, err - } - return r, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/example_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/example_test.go deleted file mode 100644 index 3cb95091..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/example_test.go +++ /dev/null @@ -1,222 +0,0 @@ -// Copyright 2012 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 ipv4_test - -import ( - "fmt" - "log" - "net" - "os" - "runtime" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" -) - -func ExampleConn_markingTCP() { - ln, err := net.Listen("tcp4", "0.0.0.0:1024") - if err != nil { - log.Fatal(err) - } - defer ln.Close() - - for { - c, err := ln.Accept() - if err != nil { - log.Fatal(err) - } - go func(c net.Conn) { - defer c.Close() - p := ipv4.NewConn(c) - if err := p.SetTOS(0x28); err != nil { // DSCP AF11 - log.Fatal(err) - } - if err := p.SetTTL(128); err != nil { - log.Fatal(err) - } - if _, err := c.Write([]byte("HELLO-R-U-THERE-ACK")); err != nil { - log.Fatal(err) - } - }(c) - } -} - -func ExamplePacketConn_servingOneShotMulticastDNS() { - c, err := net.ListenPacket("udp4", "0.0.0.0:5353") // mDNS over UDP - if err != nil { - log.Fatal(err) - } - defer c.Close() - p := ipv4.NewPacketConn(c) - - en0, err := net.InterfaceByName("en0") - if err != nil { - log.Fatal(err) - } - mDNSLinkLocal := net.UDPAddr{IP: net.IPv4(224, 0, 0, 251)} - if err := p.JoinGroup(en0, &mDNSLinkLocal); err != nil { - log.Fatal(err) - } - defer p.LeaveGroup(en0, &mDNSLinkLocal) - if err := p.SetControlMessage(ipv4.FlagDst, true); err != nil { - log.Fatal(err) - } - - b := make([]byte, 1500) - for { - _, cm, peer, err := p.ReadFrom(b) - if err != nil { - log.Fatal(err) - } - if !cm.Dst.IsMulticast() || !cm.Dst.Equal(mDNSLinkLocal.IP) { - continue - } - answers := []byte("FAKE-MDNS-ANSWERS") // fake mDNS answers, you need to implement this - if _, err := p.WriteTo(answers, nil, peer); err != nil { - log.Fatal(err) - } - } -} - -func ExamplePacketConn_tracingIPPacketRoute() { - // Tracing an IP packet route to www.google.com. - - const host = "www.google.com" - ips, err := net.LookupIP(host) - if err != nil { - log.Fatal(err) - } - var dst net.IPAddr - for _, ip := range ips { - if ip.To4() != nil { - dst.IP = ip - fmt.Printf("using %v for tracing an IP packet route to %s\n", dst.IP, host) - break - } - } - if dst.IP == nil { - log.Fatal("no A record found") - } - - c, err := net.ListenPacket("ip4:1", "0.0.0.0") // ICMP for IPv4 - if err != nil { - log.Fatal(err) - } - defer c.Close() - p := ipv4.NewPacketConn(c) - - if err := p.SetControlMessage(ipv4.FlagTTL|ipv4.FlagSrc|ipv4.FlagDst|ipv4.FlagInterface, true); err != nil { - log.Fatal(err) - } - wm := icmp.Message{ - Type: ipv4.ICMPTypeEcho, Code: 0, - Body: &icmp.Echo{ - ID: os.Getpid() & 0xffff, - Data: []byte("HELLO-R-U-THERE"), - }, - } - - rb := make([]byte, 1500) - for i := 1; i <= 64; i++ { // up to 64 hops - wm.Body.(*icmp.Echo).Seq = i - wb, err := wm.Marshal(nil) - if err != nil { - log.Fatal(err) - } - if err := p.SetTTL(i); err != nil { - log.Fatal(err) - } - - // In the real world usually there are several - // multiple traffic-engineered paths for each hop. - // You may need to probe a few times to each hop. - begin := time.Now() - if _, err := p.WriteTo(wb, nil, &dst); err != nil { - log.Fatal(err) - } - if err := p.SetReadDeadline(time.Now().Add(3 * time.Second)); err != nil { - log.Fatal(err) - } - n, cm, peer, err := p.ReadFrom(rb) - if err != nil { - if err, ok := err.(net.Error); ok && err.Timeout() { - fmt.Printf("%v\t*\n", i) - continue - } - log.Fatal(err) - } - rm, err := icmp.ParseMessage(1, rb[:n]) - if err != nil { - log.Fatal(err) - } - rtt := time.Since(begin) - - // In the real world you need to determine whether the - // received message is yours using ControlMessage.Src, - // ControlMessage.Dst, icmp.Echo.ID and icmp.Echo.Seq. - switch rm.Type { - case ipv4.ICMPTypeTimeExceeded: - names, _ := net.LookupAddr(peer.String()) - fmt.Printf("%d\t%v %+v %v\n\t%+v\n", i, peer, names, rtt, cm) - case ipv4.ICMPTypeEchoReply: - names, _ := net.LookupAddr(peer.String()) - fmt.Printf("%d\t%v %+v %v\n\t%+v\n", i, peer, names, rtt, cm) - return - default: - log.Printf("unknown ICMP message: %+v\n", rm) - } - } -} - -func ExampleRawConn_advertisingOSPFHello() { - c, err := net.ListenPacket("ip4:89", "0.0.0.0") // OSPF for IPv4 - if err != nil { - log.Fatal(err) - } - defer c.Close() - r, err := ipv4.NewRawConn(c) - if err != nil { - log.Fatal(err) - } - - en0, err := net.InterfaceByName("en0") - if err != nil { - log.Fatal(err) - } - allSPFRouters := net.IPAddr{IP: net.IPv4(224, 0, 0, 5)} - if err := r.JoinGroup(en0, &allSPFRouters); err != nil { - log.Fatal(err) - } - defer r.LeaveGroup(en0, &allSPFRouters) - - hello := make([]byte, 24) // fake hello data, you need to implement this - ospf := make([]byte, 24) // fake ospf header, you need to implement this - ospf[0] = 2 // version 2 - ospf[1] = 1 // hello packet - ospf = append(ospf, hello...) - iph := &ipv4.Header{ - Version: ipv4.Version, - Len: ipv4.HeaderLen, - TOS: 0xc0, // DSCP CS6 - TotalLen: ipv4.HeaderLen + len(ospf), - TTL: 1, - Protocol: 89, - Dst: allSPFRouters.IP.To4(), - } - - var cm *ipv4.ControlMessage - switch runtime.GOOS { - case "darwin", "linux": - cm = &ipv4.ControlMessage{IfIndex: en0.Index} - default: - if err := r.SetMulticastInterface(en0); err != nil { - log.Fatal(err) - } - } - if err := r.WriteTo(iph, ospf, cm); err != nil { - log.Fatal(err) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/gen.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/gen.go deleted file mode 100644 index 8cef7b3b..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/gen.go +++ /dev/null @@ -1,208 +0,0 @@ -// 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. - -// +build ignore - -//go:generate go run gen.go - -// This program generates system adaptation constants and types, -// internet protocol constants and tables by reading template files -// and IANA protocol registries. -package main - -import ( - "bytes" - "encoding/xml" - "fmt" - "go/format" - "io" - "io/ioutil" - "net/http" - "os" - "os/exec" - "runtime" - "strconv" - "strings" -) - -func main() { - if err := genzsys(); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - if err := geniana(); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } -} - -func genzsys() error { - defs := "defs_" + runtime.GOOS + ".go" - f, err := os.Open(defs) - if err != nil { - if os.IsNotExist(err) { - return nil - } - return err - } - f.Close() - cmd := exec.Command("go", "tool", "cgo", "-godefs", defs) - b, err := cmd.Output() - if err != nil { - return err - } - // The ipv4 pacakge still supports go1.2, and so we need to - // take care of additional platforms in go1.3 and above for - // working with go1.2. - switch { - case runtime.GOOS == "dragonfly" || runtime.GOOS == "solaris": - b = bytes.Replace(b, []byte("package ipv4\n"), []byte("// +build "+runtime.GOOS+"\n\npackage ipv4\n"), 1) - case runtime.GOOS == "linux" && (runtime.GOARCH == "arm64" || runtime.GOARCH == "ppc64" || runtime.GOARCH == "ppc64le"): - b = bytes.Replace(b, []byte("package ipv4\n"), []byte("// +build "+runtime.GOOS+","+runtime.GOARCH+"\n\npackage ipv4\n"), 1) - } - b, err = format.Source(b) - if err != nil { - return err - } - zsys := "zsys_" + runtime.GOOS + ".go" - switch runtime.GOOS { - case "freebsd", "linux": - zsys = "zsys_" + runtime.GOOS + "_" + runtime.GOARCH + ".go" - } - if err := ioutil.WriteFile(zsys, b, 0644); err != nil { - return err - } - return nil -} - -var registries = []struct { - url string - parse func(io.Writer, io.Reader) error -}{ - { - "http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml", - parseICMPv4Parameters, - }, -} - -func geniana() error { - var bb bytes.Buffer - fmt.Fprintf(&bb, "// go generate gen.go\n") - fmt.Fprintf(&bb, "// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT\n\n") - fmt.Fprintf(&bb, "package ipv4\n\n") - for _, r := range registries { - resp, err := http.Get(r.url) - if err != nil { - return err - } - defer resp.Body.Close() - if resp.StatusCode != http.StatusOK { - return fmt.Errorf("got HTTP status code %v for %v\n", resp.StatusCode, r.url) - } - if err := r.parse(&bb, resp.Body); err != nil { - return err - } - fmt.Fprintf(&bb, "\n") - } - b, err := format.Source(bb.Bytes()) - if err != nil { - return err - } - if err := ioutil.WriteFile("iana.go", b, 0644); err != nil { - return err - } - return nil -} - -func parseICMPv4Parameters(w io.Writer, r io.Reader) error { - dec := xml.NewDecoder(r) - var icp icmpv4Parameters - if err := dec.Decode(&icp); err != nil { - return err - } - prs := icp.escape() - fmt.Fprintf(w, "// %s, Updated: %s\n", icp.Title, icp.Updated) - fmt.Fprintf(w, "const (\n") - for _, pr := range prs { - if pr.Descr == "" { - continue - } - fmt.Fprintf(w, "ICMPType%s ICMPType = %d", pr.Descr, pr.Value) - fmt.Fprintf(w, "// %s\n", pr.OrigDescr) - } - fmt.Fprintf(w, ")\n\n") - fmt.Fprintf(w, "// %s, Updated: %s\n", icp.Title, icp.Updated) - fmt.Fprintf(w, "var icmpTypes = map[ICMPType]string{\n") - for _, pr := range prs { - if pr.Descr == "" { - continue - } - fmt.Fprintf(w, "%d: %q,\n", pr.Value, strings.ToLower(pr.OrigDescr)) - } - fmt.Fprintf(w, "}\n") - return nil -} - -type icmpv4Parameters struct { - XMLName xml.Name `xml:"registry"` - Title string `xml:"title"` - Updated string `xml:"updated"` - Registries []struct { - Title string `xml:"title"` - Records []struct { - Value string `xml:"value"` - Descr string `xml:"description"` - } `xml:"record"` - } `xml:"registry"` -} - -type canonICMPv4ParamRecord struct { - OrigDescr string - Descr string - Value int -} - -func (icp *icmpv4Parameters) escape() []canonICMPv4ParamRecord { - id := -1 - for i, r := range icp.Registries { - if strings.Contains(r.Title, "Type") || strings.Contains(r.Title, "type") { - id = i - break - } - } - if id < 0 { - return nil - } - prs := make([]canonICMPv4ParamRecord, len(icp.Registries[id].Records)) - sr := strings.NewReplacer( - "Messages", "", - "Message", "", - "ICMP", "", - "+", "P", - "-", "", - "/", "", - ".", "", - " ", "", - ) - for i, pr := range icp.Registries[id].Records { - if strings.Contains(pr.Descr, "Reserved") || - strings.Contains(pr.Descr, "Unassigned") || - strings.Contains(pr.Descr, "Deprecated") || - strings.Contains(pr.Descr, "Experiment") || - strings.Contains(pr.Descr, "experiment") { - continue - } - ss := strings.Split(pr.Descr, "\n") - if len(ss) > 1 { - prs[i].Descr = strings.Join(ss, " ") - } else { - prs[i].Descr = ss[0] - } - s := strings.TrimSpace(prs[i].Descr) - prs[i].OrigDescr = s - prs[i].Descr = sr.Replace(s) - prs[i].Value, _ = strconv.Atoi(pr.Value) - } - return prs -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/genericopt_posix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/genericopt_posix.go deleted file mode 100644 index fefa0be3..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/genericopt_posix.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2012 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 darwin dragonfly freebsd linux netbsd openbsd windows - -package ipv4 - -import "syscall" - -// TOS returns the type-of-service field value for outgoing packets. -func (c *genericOpt) TOS() (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return 0, err - } - return getInt(fd, &sockOpts[ssoTOS]) -} - -// SetTOS sets the type-of-service field value for future outgoing -// packets. -func (c *genericOpt) SetTOS(tos int) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - return setInt(fd, &sockOpts[ssoTOS], tos) -} - -// TTL returns the time-to-live field value for outgoing packets. -func (c *genericOpt) TTL() (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return 0, err - } - return getInt(fd, &sockOpts[ssoTTL]) -} - -// SetTTL sets the time-to-live field value for future outgoing -// packets. -func (c *genericOpt) SetTTL(ttl int) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - return setInt(fd, &sockOpts[ssoTTL], ttl) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/genericopt_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/genericopt_stub.go deleted file mode 100644 index 1817badb..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/genericopt_stub.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2012 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 nacl plan9 solaris - -package ipv4 - -// TOS returns the type-of-service field value for outgoing packets. -func (c *genericOpt) TOS() (int, error) { - return 0, errOpNoSupport -} - -// SetTOS sets the type-of-service field value for future outgoing -// packets. -func (c *genericOpt) SetTOS(tos int) error { - return errOpNoSupport -} - -// TTL returns the time-to-live field value for outgoing packets. -func (c *genericOpt) TTL() (int, error) { - return 0, errOpNoSupport -} - -// SetTTL sets the time-to-live field value for future outgoing -// packets. -func (c *genericOpt) SetTTL(ttl int) error { - return errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/header.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/header.go deleted file mode 100644 index b22336cf..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/header.go +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2012 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 ipv4 - -import ( - "errors" - "fmt" - "net" - "runtime" - "syscall" - "unsafe" -) - -var ( - errMissingAddress = errors.New("missing address") - errMissingHeader = errors.New("missing header") - errHeaderTooShort = errors.New("header too short") - errBufferTooShort = errors.New("buffer too short") - errInvalidConnType = errors.New("invalid conn type") -) - -const ( - Version = 4 // protocol version - HeaderLen = 20 // header length without extension headers - maxHeaderLen = 60 // sensible default, revisit if later RFCs define new usage of version and header length fields -) - -type HeaderFlags int - -const ( - MoreFragments HeaderFlags = 1 << iota // more fragments flag - DontFragment // don't fragment flag -) - -// A Header represents an IPv4 header. -type Header struct { - Version int // protocol version - Len int // header length - TOS int // type-of-service - TotalLen int // packet total length - ID int // identification - Flags HeaderFlags // flags - FragOff int // fragment offset - TTL int // time-to-live - Protocol int // next protocol - Checksum int // checksum - Src net.IP // source address - Dst net.IP // destination address - Options []byte // options, extension headers -} - -func (h *Header) String() string { - if h == nil { - return "" - } - return fmt.Sprintf("ver: %v, hdrlen: %v, tos: %#x, totallen: %v, id: %#x, flags: %#x, fragoff: %#x, ttl: %v, proto: %v, cksum: %#x, src: %v, dst: %v", h.Version, h.Len, h.TOS, h.TotalLen, h.ID, h.Flags, h.FragOff, h.TTL, h.Protocol, h.Checksum, h.Src, h.Dst) -} - -// Marshal returns the binary encoding of the IPv4 header h. -func (h *Header) Marshal() ([]byte, error) { - if h == nil { - return nil, syscall.EINVAL - } - if h.Len < HeaderLen { - return nil, errHeaderTooShort - } - hdrlen := HeaderLen + len(h.Options) - b := make([]byte, hdrlen) - b[0] = byte(Version<<4 | (hdrlen >> 2 & 0x0f)) - b[1] = byte(h.TOS) - flagsAndFragOff := (h.FragOff & 0x1fff) | int(h.Flags<<13) - switch runtime.GOOS { - case "darwin", "dragonfly", "freebsd", "netbsd": - // TODO(mikio): fix potential misaligned memory access - *(*uint16)(unsafe.Pointer(&b[2:3][0])) = uint16(h.TotalLen) - *(*uint16)(unsafe.Pointer(&b[6:7][0])) = uint16(flagsAndFragOff) - default: - b[2], b[3] = byte(h.TotalLen>>8), byte(h.TotalLen) - b[6], b[7] = byte(flagsAndFragOff>>8), byte(flagsAndFragOff) - } - b[4], b[5] = byte(h.ID>>8), byte(h.ID) - b[8] = byte(h.TTL) - b[9] = byte(h.Protocol) - b[10], b[11] = byte(h.Checksum>>8), byte(h.Checksum) - if ip := h.Src.To4(); ip != nil { - copy(b[12:16], ip[:net.IPv4len]) - } - if ip := h.Dst.To4(); ip != nil { - copy(b[16:20], ip[:net.IPv4len]) - } else { - return nil, errMissingAddress - } - if len(h.Options) > 0 { - copy(b[HeaderLen:], h.Options) - } - return b, nil -} - -// See http://www.freebsd.org/doc/en/books/porters-handbook/freebsd-versions.html. -var freebsdVersion uint32 - -// ParseHeader parses b as an IPv4 header. -func ParseHeader(b []byte) (*Header, error) { - if len(b) < HeaderLen { - return nil, errHeaderTooShort - } - hdrlen := int(b[0]&0x0f) << 2 - if hdrlen > len(b) { - return nil, errBufferTooShort - } - h := &Header{ - Version: int(b[0] >> 4), - Len: hdrlen, - TOS: int(b[1]), - ID: int(b[4])<<8 | int(b[5]), - TTL: int(b[8]), - Protocol: int(b[9]), - Checksum: int(b[10])<<8 | int(b[11]), - Src: net.IPv4(b[12], b[13], b[14], b[15]), - Dst: net.IPv4(b[16], b[17], b[18], b[19]), - } - switch runtime.GOOS { - case "darwin", "dragonfly", "netbsd": - // TODO(mikio): fix potential misaligned memory access - h.TotalLen = int(*(*uint16)(unsafe.Pointer(&b[2:3][0]))) + hdrlen - // TODO(mikio): fix potential misaligned memory access - h.FragOff = int(*(*uint16)(unsafe.Pointer(&b[6:7][0]))) - case "freebsd": - // TODO(mikio): fix potential misaligned memory access - h.TotalLen = int(*(*uint16)(unsafe.Pointer(&b[2:3][0]))) - if freebsdVersion < 1000000 { - h.TotalLen += hdrlen - } - // TODO(mikio): fix potential misaligned memory access - h.FragOff = int(*(*uint16)(unsafe.Pointer(&b[6:7][0]))) - default: - h.TotalLen = int(b[2])<<8 | int(b[3]) - h.FragOff = int(b[6])<<8 | int(b[7]) - } - h.Flags = HeaderFlags(h.FragOff&0xe000) >> 13 - h.FragOff = h.FragOff & 0x1fff - if hdrlen-HeaderLen > 0 { - h.Options = make([]byte, hdrlen-HeaderLen) - copy(h.Options, b[HeaderLen:]) - } - return h, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/header_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/header_test.go deleted file mode 100644 index 416be6b3..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/header_test.go +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2012 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 ipv4 - -import ( - "bytes" - "net" - "reflect" - "runtime" - "testing" -) - -var ( - wireHeaderFromKernel = [HeaderLen]byte{ - 0x45, 0x01, 0xbe, 0xef, - 0xca, 0xfe, 0x45, 0xdc, - 0xff, 0x01, 0xde, 0xad, - 172, 16, 254, 254, - 192, 168, 0, 1, - } - wireHeaderToKernel = [HeaderLen]byte{ - 0x45, 0x01, 0xbe, 0xef, - 0xca, 0xfe, 0x45, 0xdc, - 0xff, 0x01, 0xde, 0xad, - 172, 16, 254, 254, - 192, 168, 0, 1, - } - wireHeaderFromTradBSDKernel = [HeaderLen]byte{ - 0x45, 0x01, 0xdb, 0xbe, - 0xca, 0xfe, 0xdc, 0x45, - 0xff, 0x01, 0xde, 0xad, - 172, 16, 254, 254, - 192, 168, 0, 1, - } - wireHeaderFromFreeBSD10Kernel = [HeaderLen]byte{ - 0x45, 0x01, 0xef, 0xbe, - 0xca, 0xfe, 0xdc, 0x45, - 0xff, 0x01, 0xde, 0xad, - 172, 16, 254, 254, - 192, 168, 0, 1, - } - wireHeaderToTradBSDKernel = [HeaderLen]byte{ - 0x45, 0x01, 0xef, 0xbe, - 0xca, 0xfe, 0xdc, 0x45, - 0xff, 0x01, 0xde, 0xad, - 172, 16, 254, 254, - 192, 168, 0, 1, - } - // TODO(mikio): Add platform dependent wire header formats when - // we support new platforms. - - testHeader = &Header{ - Version: Version, - Len: HeaderLen, - TOS: 1, - TotalLen: 0xbeef, - ID: 0xcafe, - Flags: DontFragment, - FragOff: 1500, - TTL: 255, - Protocol: 1, - Checksum: 0xdead, - Src: net.IPv4(172, 16, 254, 254), - Dst: net.IPv4(192, 168, 0, 1), - } -) - -func TestMarshalHeader(t *testing.T) { - b, err := testHeader.Marshal() - if err != nil { - t.Fatal(err) - } - var wh []byte - switch runtime.GOOS { - case "darwin", "dragonfly", "netbsd": - wh = wireHeaderToTradBSDKernel[:] - case "freebsd": - if freebsdVersion < 1000000 { - wh = wireHeaderToTradBSDKernel[:] - } else { - wh = wireHeaderFromFreeBSD10Kernel[:] - } - default: - wh = wireHeaderToKernel[:] - } - if !bytes.Equal(b, wh) { - t.Fatalf("got %#v; want %#v", b, wh) - } -} - -func TestParseHeader(t *testing.T) { - var wh []byte - switch runtime.GOOS { - case "darwin", "dragonfly", "netbsd": - wh = wireHeaderFromTradBSDKernel[:] - case "freebsd": - if freebsdVersion < 1000000 { - wh = wireHeaderFromTradBSDKernel[:] - } else { - wh = wireHeaderFromFreeBSD10Kernel[:] - } - default: - wh = wireHeaderFromKernel[:] - } - h, err := ParseHeader(wh) - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(h, testHeader) { - t.Fatalf("got %#v; want %#v", h, testHeader) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper.go deleted file mode 100644 index 20c2d247..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2012 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 ipv4 - -import ( - "errors" - "net" -) - -var ( - errOpNoSupport = errors.New("operation not supported") - errNoSuchInterface = errors.New("no such interface") - errNoSuchMulticastInterface = errors.New("no such multicast interface") -) - -func boolint(b bool) int { - if b { - return 1 - } - return 0 -} - -func netAddrToIP4(a net.Addr) net.IP { - switch v := a.(type) { - case *net.UDPAddr: - if ip := v.IP.To4(); ip != nil { - return ip - } - case *net.IPAddr: - if ip := v.IP.To4(); ip != nil { - return ip - } - } - return nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper_stub.go deleted file mode 100644 index dc2120cf..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper_stub.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2012 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 nacl plan9 solaris - -package ipv4 - -func (c *genericOpt) sysfd() (int, error) { - return 0, errOpNoSupport -} - -func (c *dgramOpt) sysfd() (int, error) { - return 0, errOpNoSupport -} - -func (c *payloadHandler) sysfd() (int, error) { - return 0, errOpNoSupport -} - -func (c *packetHandler) sysfd() (int, error) { - return 0, errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper_unix.go deleted file mode 100644 index 345ca7dc..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper_unix.go +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2012 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 darwin dragonfly freebsd linux netbsd openbsd - -package ipv4 - -import ( - "net" - "reflect" -) - -func (c *genericOpt) sysfd() (int, error) { - switch p := c.Conn.(type) { - case *net.TCPConn, *net.UDPConn, *net.IPConn: - return sysfd(p) - } - return 0, errInvalidConnType -} - -func (c *dgramOpt) sysfd() (int, error) { - switch p := c.PacketConn.(type) { - case *net.UDPConn, *net.IPConn: - return sysfd(p.(net.Conn)) - } - return 0, errInvalidConnType -} - -func (c *payloadHandler) sysfd() (int, error) { - return sysfd(c.PacketConn.(net.Conn)) -} - -func (c *packetHandler) sysfd() (int, error) { - return sysfd(c.c) -} - -func sysfd(c net.Conn) (int, error) { - cv := reflect.ValueOf(c) - switch ce := cv.Elem(); ce.Kind() { - case reflect.Struct: - netfd := ce.FieldByName("conn").FieldByName("fd") - switch fe := netfd.Elem(); fe.Kind() { - case reflect.Struct: - fd := fe.FieldByName("sysfd") - return int(fd.Int()), nil - } - } - return 0, errInvalidConnType -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper_windows.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper_windows.go deleted file mode 100644 index 322b2a5e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/helper_windows.go +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2012 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 ipv4 - -import ( - "net" - "reflect" - "syscall" -) - -func (c *genericOpt) sysfd() (syscall.Handle, error) { - switch p := c.Conn.(type) { - case *net.TCPConn, *net.UDPConn, *net.IPConn: - return sysfd(p) - } - return syscall.InvalidHandle, errInvalidConnType -} - -func (c *dgramOpt) sysfd() (syscall.Handle, error) { - switch p := c.PacketConn.(type) { - case *net.UDPConn, *net.IPConn: - return sysfd(p.(net.Conn)) - } - return syscall.InvalidHandle, errInvalidConnType -} - -func (c *payloadHandler) sysfd() (syscall.Handle, error) { - return sysfd(c.PacketConn.(net.Conn)) -} - -func (c *packetHandler) sysfd() (syscall.Handle, error) { - return sysfd(c.c) -} - -func sysfd(c net.Conn) (syscall.Handle, error) { - cv := reflect.ValueOf(c) - switch ce := cv.Elem(); ce.Kind() { - case reflect.Struct: - netfd := ce.FieldByName("conn").FieldByName("fd") - switch fe := netfd.Elem(); fe.Kind() { - case reflect.Struct: - fd := fe.FieldByName("sysfd") - return syscall.Handle(fd.Uint()), nil - } - } - return syscall.InvalidHandle, errInvalidConnType -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/iana.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/iana.go deleted file mode 100644 index be10c948..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/iana.go +++ /dev/null @@ -1,34 +0,0 @@ -// go generate gen.go -// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -package ipv4 - -// Internet Control Message Protocol (ICMP) Parameters, Updated: 2013-04-19 -const ( - ICMPTypeEchoReply ICMPType = 0 // Echo Reply - ICMPTypeDestinationUnreachable ICMPType = 3 // Destination Unreachable - ICMPTypeRedirect ICMPType = 5 // Redirect - ICMPTypeEcho ICMPType = 8 // Echo - ICMPTypeRouterAdvertisement ICMPType = 9 // Router Advertisement - ICMPTypeRouterSolicitation ICMPType = 10 // Router Solicitation - ICMPTypeTimeExceeded ICMPType = 11 // Time Exceeded - ICMPTypeParameterProblem ICMPType = 12 // Parameter Problem - ICMPTypeTimestamp ICMPType = 13 // Timestamp - ICMPTypeTimestampReply ICMPType = 14 // Timestamp Reply - ICMPTypePhoturis ICMPType = 40 // Photuris -) - -// Internet Control Message Protocol (ICMP) Parameters, Updated: 2013-04-19 -var icmpTypes = map[ICMPType]string{ - 0: "echo reply", - 3: "destination unreachable", - 5: "redirect", - 8: "echo", - 9: "router advertisement", - 10: "router solicitation", - 11: "time exceeded", - 12: "parameter problem", - 13: "timestamp", - 14: "timestamp reply", - 40: "photuris", -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp.go deleted file mode 100644 index 3dee900f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp.go +++ /dev/null @@ -1,57 +0,0 @@ -// 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 ipv4 - -import "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - -// An ICMPType represents a type of ICMP message. -type ICMPType int - -func (typ ICMPType) String() string { - s, ok := icmpTypes[typ] - if !ok { - return "" - } - return s -} - -// Protocol returns the ICMPv4 protocol number. -func (typ ICMPType) Protocol() int { - return iana.ProtocolICMP -} - -// An ICMPFilter represents an ICMP message filter for incoming -// packets. The filter belongs to a packet delivery path on a host and -// it cannot interact with forwarding packets or tunnel-outer packets. -// -// Note: RFC 2460 defines a reasonable role model and it works not -// only for IPv6 but IPv4. A node means a device that implements IP. -// A router means a node that forwards IP packets not explicitly -// addressed to itself, and a host means a node that is not a router. -type ICMPFilter struct { - sysICMPFilter -} - -// Accept accepts incoming ICMP packets including the type field value -// typ. -func (f *ICMPFilter) Accept(typ ICMPType) { - f.accept(typ) -} - -// Block blocks incoming ICMP packets including the type field value -// typ. -func (f *ICMPFilter) Block(typ ICMPType) { - f.block(typ) -} - -// SetAll sets the filter action to the filter. -func (f *ICMPFilter) SetAll(block bool) { - f.setAll(block) -} - -// WillBlock reports whether the ICMP type will be blocked. -func (f *ICMPFilter) WillBlock(typ ICMPType) bool { - return f.willBlock(typ) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp_linux.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp_linux.go deleted file mode 100644 index c9122533..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp_linux.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ipv4 - -func (f *sysICMPFilter) accept(typ ICMPType) { - f.Data &^= 1 << (uint32(typ) & 31) -} - -func (f *sysICMPFilter) block(typ ICMPType) { - f.Data |= 1 << (uint32(typ) & 31) -} - -func (f *sysICMPFilter) setAll(block bool) { - if block { - f.Data = 1<<32 - 1 - } else { - f.Data = 0 - } -} - -func (f *sysICMPFilter) willBlock(typ ICMPType) bool { - return f.Data&(1<<(uint32(typ)&31)) != 0 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp_stub.go deleted file mode 100644 index 9ee9b6a3..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp_stub.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !linux - -package ipv4 - -const sysSizeofICMPFilter = 0x0 - -type sysICMPFilter struct { -} - -func (f *sysICMPFilter) accept(typ ICMPType) { -} - -func (f *sysICMPFilter) block(typ ICMPType) { -} - -func (f *sysICMPFilter) setAll(block bool) { -} - -func (f *sysICMPFilter) willBlock(typ ICMPType) bool { - return false -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp_test.go deleted file mode 100644 index 68b9b444..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/icmp_test.go +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ipv4_test - -import ( - "net" - "reflect" - "runtime" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" -) - -var icmpStringTests = []struct { - in ipv4.ICMPType - out string -}{ - {ipv4.ICMPTypeDestinationUnreachable, "destination unreachable"}, - - {256, ""}, -} - -func TestICMPString(t *testing.T) { - for _, tt := range icmpStringTests { - s := tt.in.String() - if s != tt.out { - t.Errorf("got %s; want %s", s, tt.out) - } - } -} - -func TestICMPFilter(t *testing.T) { - switch runtime.GOOS { - case "linux": - default: - t.Skipf("not supported on %s", runtime.GOOS) - } - - var f ipv4.ICMPFilter - for _, toggle := range []bool{false, true} { - f.SetAll(toggle) - for _, typ := range []ipv4.ICMPType{ - ipv4.ICMPTypeDestinationUnreachable, - ipv4.ICMPTypeEchoReply, - ipv4.ICMPTypeTimeExceeded, - ipv4.ICMPTypeParameterProblem, - } { - f.Accept(typ) - if f.WillBlock(typ) { - t.Errorf("ipv4.ICMPFilter.Set(%v, false) failed", typ) - } - f.Block(typ) - if !f.WillBlock(typ) { - t.Errorf("ipv4.ICMPFilter.Set(%v, true) failed", typ) - } - } - } -} - -func TestSetICMPFilter(t *testing.T) { - switch runtime.GOOS { - case "linux": - default: - t.Skipf("not supported on %s", runtime.GOOS) - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - - c, err := net.ListenPacket("ip4:icmp", "127.0.0.1") - if err != nil { - t.Fatal(err) - } - defer c.Close() - - p := ipv4.NewPacketConn(c) - - var f ipv4.ICMPFilter - f.SetAll(true) - f.Accept(ipv4.ICMPTypeEcho) - f.Accept(ipv4.ICMPTypeEchoReply) - if err := p.SetICMPFilter(&f); err != nil { - t.Fatal(err) - } - kf, err := p.ICMPFilter() - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(kf, &f) { - t.Fatalf("got %#v; want %#v", kf, f) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/mocktransponder_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/mocktransponder_test.go deleted file mode 100644 index e55aaee9..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/mocktransponder_test.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2012 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 ipv4_test - -import ( - "net" - "testing" -) - -func acceptor(t *testing.T, ln net.Listener, done chan<- bool) { - defer func() { done <- true }() - - c, err := ln.Accept() - if err != nil { - t.Error(err) - return - } - c.Close() -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/multicast_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/multicast_test.go deleted file mode 100644 index eb10f3ae..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/multicast_test.go +++ /dev/null @@ -1,334 +0,0 @@ -// Copyright 2012 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 ipv4_test - -import ( - "bytes" - "net" - "os" - "runtime" - "testing" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" -) - -var packetConnReadWriteMulticastUDPTests = []struct { - addr string - grp, src *net.UDPAddr -}{ - {"224.0.0.0:0", &net.UDPAddr{IP: net.IPv4(224, 0, 0, 254)}, nil}, // see RFC 4727 - - {"232.0.1.0:0", &net.UDPAddr{IP: net.IPv4(232, 0, 1, 254)}, &net.UDPAddr{IP: net.IPv4(127, 0, 0, 1)}}, // see RFC 5771 -} - -func TestPacketConnReadWriteMulticastUDP(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagMulticast|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - for _, tt := range packetConnReadWriteMulticastUDPTests { - c, err := net.ListenPacket("udp4", tt.addr) - if err != nil { - t.Fatal(err) - } - defer c.Close() - - grp := *tt.grp - grp.Port = c.LocalAddr().(*net.UDPAddr).Port - p := ipv4.NewPacketConn(c) - defer p.Close() - if tt.src == nil { - if err := p.JoinGroup(ifi, &grp); err != nil { - t.Fatal(err) - } - defer p.LeaveGroup(ifi, &grp) - } else { - if err := p.JoinSourceSpecificGroup(ifi, &grp, tt.src); err != nil { - switch runtime.GOOS { - case "freebsd", "linux": - default: // platforms that don't support IGMPv2/3 fail here - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } - defer p.LeaveSourceSpecificGroup(ifi, &grp, tt.src) - } - if err := p.SetMulticastInterface(ifi); err != nil { - t.Fatal(err) - } - if _, err := p.MulticastInterface(); err != nil { - t.Fatal(err) - } - if err := p.SetMulticastLoopback(true); err != nil { - t.Fatal(err) - } - if _, err := p.MulticastLoopback(); err != nil { - t.Fatal(err) - } - cf := ipv4.FlagTTL | ipv4.FlagDst | ipv4.FlagInterface - wb := []byte("HELLO-R-U-THERE") - - for i, toggle := range []bool{true, false, true} { - if err := p.SetControlMessage(cf, toggle); err != nil { - if nettest.ProtocolNotSupported(err) { - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } - if err := p.SetDeadline(time.Now().Add(200 * time.Millisecond)); err != nil { - t.Fatal(err) - } - p.SetMulticastTTL(i + 1) - if n, err := p.WriteTo(wb, nil, &grp); err != nil { - t.Fatal(err) - } else if n != len(wb) { - t.Fatalf("got %v; want %v", n, len(wb)) - } - rb := make([]byte, 128) - if n, cm, _, err := p.ReadFrom(rb); err != nil { - t.Fatal(err) - } else if !bytes.Equal(rb[:n], wb) { - t.Fatalf("got %v; want %v", rb[:n], wb) - } else { - t.Logf("rcvd cmsg: %v", cm) - } - } - } -} - -var packetConnReadWriteMulticastICMPTests = []struct { - grp, src *net.IPAddr -}{ - {&net.IPAddr{IP: net.IPv4(224, 0, 0, 254)}, nil}, // see RFC 4727 - - {&net.IPAddr{IP: net.IPv4(232, 0, 1, 254)}, &net.IPAddr{IP: net.IPv4(127, 0, 0, 1)}}, // see RFC 5771 -} - -func TestPacketConnReadWriteMulticastICMP(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagMulticast|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - for _, tt := range packetConnReadWriteMulticastICMPTests { - c, err := net.ListenPacket("ip4:icmp", "0.0.0.0") - if err != nil { - t.Fatal(err) - } - defer c.Close() - - p := ipv4.NewPacketConn(c) - defer p.Close() - if tt.src == nil { - if err := p.JoinGroup(ifi, tt.grp); err != nil { - t.Fatal(err) - } - defer p.LeaveGroup(ifi, tt.grp) - } else { - if err := p.JoinSourceSpecificGroup(ifi, tt.grp, tt.src); err != nil { - switch runtime.GOOS { - case "freebsd", "linux": - default: // platforms that don't support IGMPv2/3 fail here - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } - defer p.LeaveSourceSpecificGroup(ifi, tt.grp, tt.src) - } - if err := p.SetMulticastInterface(ifi); err != nil { - t.Fatal(err) - } - if _, err := p.MulticastInterface(); err != nil { - t.Fatal(err) - } - if err := p.SetMulticastLoopback(true); err != nil { - t.Fatal(err) - } - if _, err := p.MulticastLoopback(); err != nil { - t.Fatal(err) - } - cf := ipv4.FlagTTL | ipv4.FlagDst | ipv4.FlagInterface - - for i, toggle := range []bool{true, false, true} { - wb, err := (&icmp.Message{ - Type: ipv4.ICMPTypeEcho, Code: 0, - Body: &icmp.Echo{ - ID: os.Getpid() & 0xffff, Seq: i + 1, - Data: []byte("HELLO-R-U-THERE"), - }, - }).Marshal(nil) - if err != nil { - t.Fatal(err) - } - if err := p.SetControlMessage(cf, toggle); err != nil { - if nettest.ProtocolNotSupported(err) { - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } - if err := p.SetDeadline(time.Now().Add(200 * time.Millisecond)); err != nil { - t.Fatal(err) - } - p.SetMulticastTTL(i + 1) - if n, err := p.WriteTo(wb, nil, tt.grp); err != nil { - t.Fatal(err) - } else if n != len(wb) { - t.Fatalf("got %v; want %v", n, len(wb)) - } - rb := make([]byte, 128) - if n, cm, _, err := p.ReadFrom(rb); err != nil { - t.Fatal(err) - } else { - t.Logf("rcvd cmsg: %v", cm) - m, err := icmp.ParseMessage(iana.ProtocolICMP, rb[:n]) - if err != nil { - t.Fatal(err) - } - switch { - case m.Type == ipv4.ICMPTypeEchoReply && m.Code == 0: // net.inet.icmp.bmcastecho=1 - case m.Type == ipv4.ICMPTypeEcho && m.Code == 0: // net.inet.icmp.bmcastecho=0 - default: - t.Fatalf("got type=%v, code=%v; want type=%v, code=%v", m.Type, m.Code, ipv4.ICMPTypeEchoReply, 0) - } - } - } - } -} - -var rawConnReadWriteMulticastICMPTests = []struct { - grp, src *net.IPAddr -}{ - {&net.IPAddr{IP: net.IPv4(224, 0, 0, 254)}, nil}, // see RFC 4727 - - {&net.IPAddr{IP: net.IPv4(232, 0, 1, 254)}, &net.IPAddr{IP: net.IPv4(127, 0, 0, 1)}}, // see RFC 5771 -} - -func TestRawConnReadWriteMulticastICMP(t *testing.T) { - if testing.Short() { - t.Skip("to avoid external network") - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagMulticast|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - for _, tt := range rawConnReadWriteMulticastICMPTests { - c, err := net.ListenPacket("ip4:icmp", "0.0.0.0") - if err != nil { - t.Fatal(err) - } - defer c.Close() - - r, err := ipv4.NewRawConn(c) - if err != nil { - t.Fatal(err) - } - defer r.Close() - if tt.src == nil { - if err := r.JoinGroup(ifi, tt.grp); err != nil { - t.Fatal(err) - } - defer r.LeaveGroup(ifi, tt.grp) - } else { - if err := r.JoinSourceSpecificGroup(ifi, tt.grp, tt.src); err != nil { - switch runtime.GOOS { - case "freebsd", "linux": - default: // platforms that don't support IGMPv2/3 fail here - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } - defer r.LeaveSourceSpecificGroup(ifi, tt.grp, tt.src) - } - if err := r.SetMulticastInterface(ifi); err != nil { - t.Fatal(err) - } - if _, err := r.MulticastInterface(); err != nil { - t.Fatal(err) - } - if err := r.SetMulticastLoopback(true); err != nil { - t.Fatal(err) - } - if _, err := r.MulticastLoopback(); err != nil { - t.Fatal(err) - } - cf := ipv4.FlagTTL | ipv4.FlagDst | ipv4.FlagInterface - - for i, toggle := range []bool{true, false, true} { - wb, err := (&icmp.Message{ - Type: ipv4.ICMPTypeEcho, Code: 0, - Body: &icmp.Echo{ - ID: os.Getpid() & 0xffff, Seq: i + 1, - Data: []byte("HELLO-R-U-THERE"), - }, - }).Marshal(nil) - if err != nil { - t.Fatal(err) - } - wh := &ipv4.Header{ - Version: ipv4.Version, - Len: ipv4.HeaderLen, - TOS: i + 1, - TotalLen: ipv4.HeaderLen + len(wb), - Protocol: 1, - Dst: tt.grp.IP, - } - if err := r.SetControlMessage(cf, toggle); err != nil { - if nettest.ProtocolNotSupported(err) { - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } - if err := r.SetDeadline(time.Now().Add(200 * time.Millisecond)); err != nil { - t.Fatal(err) - } - r.SetMulticastTTL(i + 1) - if err := r.WriteTo(wh, wb, nil); err != nil { - t.Fatal(err) - } - rb := make([]byte, ipv4.HeaderLen+128) - if rh, b, cm, err := r.ReadFrom(rb); err != nil { - t.Fatal(err) - } else { - t.Logf("rcvd cmsg: %v", cm) - m, err := icmp.ParseMessage(iana.ProtocolICMP, b) - if err != nil { - t.Fatal(err) - } - switch { - case (rh.Dst.IsLoopback() || rh.Dst.IsLinkLocalUnicast() || rh.Dst.IsGlobalUnicast()) && m.Type == ipv4.ICMPTypeEchoReply && m.Code == 0: // net.inet.icmp.bmcastecho=1 - case rh.Dst.IsMulticast() && m.Type == ipv4.ICMPTypeEcho && m.Code == 0: // net.inet.icmp.bmcastecho=0 - default: - t.Fatalf("got type=%v, code=%v; want type=%v, code=%v", m.Type, m.Code, ipv4.ICMPTypeEchoReply, 0) - } - } - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/multicastlistener_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/multicastlistener_test.go deleted file mode 100644 index c344a5de..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/multicastlistener_test.go +++ /dev/null @@ -1,249 +0,0 @@ -// Copyright 2012 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 ipv4_test - -import ( - "net" - "runtime" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" -) - -var udpMultipleGroupListenerTests = []net.Addr{ - &net.UDPAddr{IP: net.IPv4(224, 0, 0, 249)}, // see RFC 4727 - &net.UDPAddr{IP: net.IPv4(224, 0, 0, 250)}, - &net.UDPAddr{IP: net.IPv4(224, 0, 0, 254)}, -} - -func TestUDPSinglePacketConnWithMultipleGroupListeners(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if testing.Short() { - t.Skip("to avoid external network") - } - - for _, gaddr := range udpMultipleGroupListenerTests { - c, err := net.ListenPacket("udp4", "0.0.0.0:0") // wildcard address with no reusable port - if err != nil { - t.Fatal(err) - } - defer c.Close() - - p := ipv4.NewPacketConn(c) - var mift []*net.Interface - - ift, err := net.Interfaces() - if err != nil { - t.Fatal(err) - } - for i, ifi := range ift { - if _, ok := nettest.IsMulticastCapable("ip4", &ifi); !ok { - continue - } - if err := p.JoinGroup(&ifi, gaddr); err != nil { - t.Fatal(err) - } - mift = append(mift, &ift[i]) - } - for _, ifi := range mift { - if err := p.LeaveGroup(ifi, gaddr); err != nil { - t.Fatal(err) - } - } - } -} - -func TestUDPMultiplePacketConnWithMultipleGroupListeners(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if testing.Short() { - t.Skip("to avoid external network") - } - - for _, gaddr := range udpMultipleGroupListenerTests { - c1, err := net.ListenPacket("udp4", "224.0.0.0:1024") // wildcard address with reusable port - if err != nil { - t.Fatal(err) - } - defer c1.Close() - - c2, err := net.ListenPacket("udp4", "224.0.0.0:1024") // wildcard address with reusable port - if err != nil { - t.Fatal(err) - } - defer c2.Close() - - var ps [2]*ipv4.PacketConn - ps[0] = ipv4.NewPacketConn(c1) - ps[1] = ipv4.NewPacketConn(c2) - var mift []*net.Interface - - ift, err := net.Interfaces() - if err != nil { - t.Fatal(err) - } - for i, ifi := range ift { - if _, ok := nettest.IsMulticastCapable("ip4", &ifi); !ok { - continue - } - for _, p := range ps { - if err := p.JoinGroup(&ifi, gaddr); err != nil { - t.Fatal(err) - } - } - mift = append(mift, &ift[i]) - } - for _, ifi := range mift { - for _, p := range ps { - if err := p.LeaveGroup(ifi, gaddr); err != nil { - t.Fatal(err) - } - } - } - } -} - -func TestUDPPerInterfaceSinglePacketConnWithSingleGroupListener(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if testing.Short() { - t.Skip("to avoid external network") - } - - gaddr := net.IPAddr{IP: net.IPv4(224, 0, 0, 254)} // see RFC 4727 - type ml struct { - c *ipv4.PacketConn - ifi *net.Interface - } - var mlt []*ml - - ift, err := net.Interfaces() - if err != nil { - t.Fatal(err) - } - for i, ifi := range ift { - ip, ok := nettest.IsMulticastCapable("ip4", &ifi) - if !ok { - continue - } - c, err := net.ListenPacket("udp4", ip.String()+":"+"1024") // unicast address with non-reusable port - if err != nil { - t.Fatal(err) - } - defer c.Close() - p := ipv4.NewPacketConn(c) - if err := p.JoinGroup(&ifi, &gaddr); err != nil { - t.Fatal(err) - } - mlt = append(mlt, &ml{p, &ift[i]}) - } - for _, m := range mlt { - if err := m.c.LeaveGroup(m.ifi, &gaddr); err != nil { - t.Fatal(err) - } - } -} - -func TestIPSingleRawConnWithSingleGroupListener(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if testing.Short() { - t.Skip("to avoid external network") - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - - c, err := net.ListenPacket("ip4:icmp", "0.0.0.0") // wildcard address - if err != nil { - t.Fatal(err) - } - defer c.Close() - - r, err := ipv4.NewRawConn(c) - if err != nil { - t.Fatal(err) - } - gaddr := net.IPAddr{IP: net.IPv4(224, 0, 0, 254)} // see RFC 4727 - var mift []*net.Interface - - ift, err := net.Interfaces() - if err != nil { - t.Fatal(err) - } - for i, ifi := range ift { - if _, ok := nettest.IsMulticastCapable("ip4", &ifi); !ok { - continue - } - if err := r.JoinGroup(&ifi, &gaddr); err != nil { - t.Fatal(err) - } - mift = append(mift, &ift[i]) - } - for _, ifi := range mift { - if err := r.LeaveGroup(ifi, &gaddr); err != nil { - t.Fatal(err) - } - } -} - -func TestIPPerInterfaceSingleRawConnWithSingleGroupListener(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if testing.Short() { - t.Skip("to avoid external network") - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - - gaddr := net.IPAddr{IP: net.IPv4(224, 0, 0, 254)} // see RFC 4727 - type ml struct { - c *ipv4.RawConn - ifi *net.Interface - } - var mlt []*ml - - ift, err := net.Interfaces() - if err != nil { - t.Fatal(err) - } - for i, ifi := range ift { - ip, ok := nettest.IsMulticastCapable("ip4", &ifi) - if !ok { - continue - } - c, err := net.ListenPacket("ip4:253", ip.String()) // unicast address - if err != nil { - t.Fatal(err) - } - defer c.Close() - r, err := ipv4.NewRawConn(c) - if err != nil { - t.Fatal(err) - } - if err := r.JoinGroup(&ifi, &gaddr); err != nil { - t.Fatal(err) - } - mlt = append(mlt, &ml{r, &ift[i]}) - } - for _, m := range mlt { - if err := m.c.LeaveGroup(m.ifi, &gaddr); err != nil { - t.Fatal(err) - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/multicastsockopt_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/multicastsockopt_test.go deleted file mode 100644 index 45be4908..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/multicastsockopt_test.go +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright 2012 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 ipv4_test - -import ( - "net" - "runtime" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" -) - -var packetConnMulticastSocketOptionTests = []struct { - net, proto, addr string - grp, src net.Addr -}{ - {"udp4", "", "224.0.0.0:0", &net.UDPAddr{IP: net.IPv4(224, 0, 0, 249)}, nil}, // see RFC 4727 - {"ip4", ":icmp", "0.0.0.0", &net.IPAddr{IP: net.IPv4(224, 0, 0, 250)}, nil}, // see RFC 4727 - - {"udp4", "", "232.0.0.0:0", &net.UDPAddr{IP: net.IPv4(232, 0, 1, 249)}, &net.UDPAddr{IP: net.IPv4(127, 0, 0, 1)}}, // see RFC 5771 - {"ip4", ":icmp", "0.0.0.0", &net.IPAddr{IP: net.IPv4(232, 0, 1, 250)}, &net.UDPAddr{IP: net.IPv4(127, 0, 0, 1)}}, // see RFC 5771 -} - -func TestPacketConnMulticastSocketOptions(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris": - t.Skipf("not supported on %s", runtime.GOOS) - } - ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagMulticast|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - m, ok := nettest.SupportsRawIPSocket() - for _, tt := range packetConnMulticastSocketOptionTests { - if tt.net == "ip4" && !ok { - t.Log(m) - continue - } - c, err := net.ListenPacket(tt.net+tt.proto, tt.addr) - if err != nil { - t.Fatal(err) - } - defer c.Close() - p := ipv4.NewPacketConn(c) - defer p.Close() - - if tt.src == nil { - testMulticastSocketOptions(t, p, ifi, tt.grp) - } else { - testSourceSpecificMulticastSocketOptions(t, p, ifi, tt.grp, tt.src) - } - } -} - -var rawConnMulticastSocketOptionTests = []struct { - grp, src net.Addr -}{ - {&net.IPAddr{IP: net.IPv4(224, 0, 0, 250)}, nil}, // see RFC 4727 - - {&net.IPAddr{IP: net.IPv4(232, 0, 1, 250)}, &net.IPAddr{IP: net.IPv4(127, 0, 0, 1)}}, // see RFC 5771 -} - -func TestRawConnMulticastSocketOptions(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris": - t.Skipf("not supported on %s", runtime.GOOS) - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagMulticast|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - for _, tt := range rawConnMulticastSocketOptionTests { - c, err := net.ListenPacket("ip4:icmp", "0.0.0.0") - if err != nil { - t.Fatal(err) - } - defer c.Close() - r, err := ipv4.NewRawConn(c) - if err != nil { - t.Fatal(err) - } - defer r.Close() - - if tt.src == nil { - testMulticastSocketOptions(t, r, ifi, tt.grp) - } else { - testSourceSpecificMulticastSocketOptions(t, r, ifi, tt.grp, tt.src) - } - } -} - -type testIPv4MulticastConn interface { - MulticastTTL() (int, error) - SetMulticastTTL(ttl int) error - MulticastLoopback() (bool, error) - SetMulticastLoopback(bool) error - JoinGroup(*net.Interface, net.Addr) error - LeaveGroup(*net.Interface, net.Addr) error - JoinSourceSpecificGroup(*net.Interface, net.Addr, net.Addr) error - LeaveSourceSpecificGroup(*net.Interface, net.Addr, net.Addr) error - ExcludeSourceSpecificGroup(*net.Interface, net.Addr, net.Addr) error - IncludeSourceSpecificGroup(*net.Interface, net.Addr, net.Addr) error -} - -func testMulticastSocketOptions(t *testing.T, c testIPv4MulticastConn, ifi *net.Interface, grp net.Addr) { - const ttl = 255 - if err := c.SetMulticastTTL(ttl); err != nil { - t.Error(err) - return - } - if v, err := c.MulticastTTL(); err != nil { - t.Error(err) - return - } else if v != ttl { - t.Errorf("got %v; want %v", v, ttl) - return - } - - for _, toggle := range []bool{true, false} { - if err := c.SetMulticastLoopback(toggle); err != nil { - t.Error(err) - return - } - if v, err := c.MulticastLoopback(); err != nil { - t.Error(err) - return - } else if v != toggle { - t.Errorf("got %v; want %v", v, toggle) - return - } - } - - if err := c.JoinGroup(ifi, grp); err != nil { - t.Error(err) - return - } - if err := c.LeaveGroup(ifi, grp); err != nil { - t.Error(err) - return - } -} - -func testSourceSpecificMulticastSocketOptions(t *testing.T, c testIPv4MulticastConn, ifi *net.Interface, grp, src net.Addr) { - // MCAST_JOIN_GROUP -> MCAST_BLOCK_SOURCE -> MCAST_UNBLOCK_SOURCE -> MCAST_LEAVE_GROUP - if err := c.JoinGroup(ifi, grp); err != nil { - t.Error(err) - return - } - if err := c.ExcludeSourceSpecificGroup(ifi, grp, src); err != nil { - switch runtime.GOOS { - case "freebsd", "linux": - default: // platforms that don't support IGMPv2/3 fail here - t.Logf("not supported on %s", runtime.GOOS) - return - } - t.Error(err) - return - } - if err := c.IncludeSourceSpecificGroup(ifi, grp, src); err != nil { - t.Error(err) - return - } - if err := c.LeaveGroup(ifi, grp); err != nil { - t.Error(err) - return - } - - // MCAST_JOIN_SOURCE_GROUP -> MCAST_LEAVE_SOURCE_GROUP - if err := c.JoinSourceSpecificGroup(ifi, grp, src); err != nil { - t.Error(err) - return - } - if err := c.LeaveSourceSpecificGroup(ifi, grp, src); err != nil { - t.Error(err) - return - } - - // MCAST_JOIN_SOURCE_GROUP -> MCAST_LEAVE_GROUP - if err := c.JoinSourceSpecificGroup(ifi, grp, src); err != nil { - t.Error(err) - return - } - if err := c.LeaveGroup(ifi, grp); err != nil { - t.Error(err) - return - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/packet.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/packet.go deleted file mode 100644 index 09864314..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/packet.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2012 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 ipv4 - -import ( - "net" - "syscall" -) - -// A packetHandler represents the IPv4 datagram handler. -type packetHandler struct { - c *net.IPConn - rawOpt -} - -func (c *packetHandler) ok() bool { return c != nil && c.c != nil } - -// ReadFrom reads an IPv4 datagram from the endpoint c, copying the -// datagram into b. It returns the received datagram as the IPv4 -// header h, the payload p and the control message cm. -func (c *packetHandler) ReadFrom(b []byte) (h *Header, p []byte, cm *ControlMessage, err error) { - if !c.ok() { - return nil, nil, nil, syscall.EINVAL - } - oob := newControlMessage(&c.rawOpt) - n, oobn, _, src, err := c.c.ReadMsgIP(b, oob) - if err != nil { - return nil, nil, nil, err - } - var hs []byte - if hs, p, err = slicePacket(b[:n]); err != nil { - return nil, nil, nil, err - } - if h, err = ParseHeader(hs); err != nil { - return nil, nil, nil, err - } - if cm, err = parseControlMessage(oob[:oobn]); err != nil { - return nil, nil, nil, err - } - if src != nil && cm != nil { - cm.Src = src.IP - } - return -} - -func slicePacket(b []byte) (h, p []byte, err error) { - if len(b) < HeaderLen { - return nil, nil, errHeaderTooShort - } - hdrlen := int(b[0]&0x0f) << 2 - return b[:hdrlen], b[hdrlen:], nil -} - -// WriteTo writes an IPv4 datagram through the endpoint c, copying the -// datagram from the IPv4 header h and the payload p. The control -// message cm allows the datagram path and the outgoing interface to be -// specified. Currently only Darwin and Linux support this. The cm -// may be nil if control of the outgoing datagram is not required. -// -// The IPv4 header h must contain appropriate fields that include: -// -// Version = ipv4.Version -// Len = -// TOS = -// TotalLen = -// ID = platform sets an appropriate value if ID is zero -// FragOff = -// TTL = -// Protocol = -// Checksum = platform sets an appropriate value if Checksum is zero -// Src = platform sets an appropriate value if Src is nil -// Dst = -// Options = optional -func (c *packetHandler) WriteTo(h *Header, p []byte, cm *ControlMessage) error { - if !c.ok() { - return syscall.EINVAL - } - oob := marshalControlMessage(cm) - wh, err := h.Marshal() - if err != nil { - return err - } - dst := &net.IPAddr{} - if cm != nil { - if ip := cm.Dst.To4(); ip != nil { - dst.IP = ip - } - } - if dst.IP == nil { - dst.IP = h.Dst - } - wh = append(wh, p...) - _, _, err = c.c.WriteMsgIP(wh, oob, dst) - return err -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/payload.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/payload.go deleted file mode 100644 index d7698cbd..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/payload.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2012 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 ipv4 - -import "net" - -// A payloadHandler represents the IPv4 datagram payload handler. -type payloadHandler struct { - net.PacketConn - rawOpt -} - -func (c *payloadHandler) ok() bool { return c != nil && c.PacketConn != nil } diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/payload_cmsg.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/payload_cmsg.go deleted file mode 100644 index d358fc3a..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/payload_cmsg.go +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2012 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 !plan9,!solaris,!windows - -package ipv4 - -import ( - "net" - "syscall" -) - -// ReadFrom reads a payload of the received IPv4 datagram, from the -// endpoint c, copying the payload into b. It returns the number of -// bytes copied into b, the control message cm and the source address -// src of the received datagram. -func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) { - if !c.ok() { - return 0, nil, nil, syscall.EINVAL - } - oob := newControlMessage(&c.rawOpt) - var oobn int - switch c := c.PacketConn.(type) { - case *net.UDPConn: - if n, oobn, _, src, err = c.ReadMsgUDP(b, oob); err != nil { - return 0, nil, nil, err - } - case *net.IPConn: - if sockOpts[ssoStripHeader].name > 0 { - if n, oobn, _, src, err = c.ReadMsgIP(b, oob); err != nil { - return 0, nil, nil, err - } - } else { - nb := make([]byte, maxHeaderLen+len(b)) - if n, oobn, _, src, err = c.ReadMsgIP(nb, oob); err != nil { - return 0, nil, nil, err - } - hdrlen := int(nb[0]&0x0f) << 2 - copy(b, nb[hdrlen:]) - n -= hdrlen - } - default: - return 0, nil, nil, errInvalidConnType - } - if cm, err = parseControlMessage(oob[:oobn]); err != nil { - return 0, nil, nil, err - } - if cm != nil { - cm.Src = netAddrToIP4(src) - } - return -} - -// WriteTo writes a payload of the IPv4 datagram, to the destination -// address dst through the endpoint c, copying the payload from b. It -// returns the number of bytes written. The control message cm allows -// the datagram path and the outgoing interface to be specified. -// Currently only Darwin and Linux support this. The cm may be nil if -// control of the outgoing datagram is not required. -func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) { - if !c.ok() { - return 0, syscall.EINVAL - } - oob := marshalControlMessage(cm) - if dst == nil { - return 0, errMissingAddress - } - switch c := c.PacketConn.(type) { - case *net.UDPConn: - n, _, err = c.WriteMsgUDP(b, oob, dst.(*net.UDPAddr)) - case *net.IPConn: - n, _, err = c.WriteMsgIP(b, oob, dst.(*net.IPAddr)) - default: - return 0, errInvalidConnType - } - if err != nil { - return 0, err - } - return -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/payload_nocmsg.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/payload_nocmsg.go deleted file mode 100644 index d128c9c2..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/payload_nocmsg.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2012 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 plan9 solaris windows - -package ipv4 - -import ( - "net" - "syscall" -) - -// ReadFrom reads a payload of the received IPv4 datagram, from the -// endpoint c, copying the payload into b. It returns the number of -// bytes copied into b, the control message cm and the source address -// src of the received datagram. -func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) { - if !c.ok() { - return 0, nil, nil, syscall.EINVAL - } - if n, src, err = c.PacketConn.ReadFrom(b); err != nil { - return 0, nil, nil, err - } - return -} - -// WriteTo writes a payload of the IPv4 datagram, to the destination -// address dst through the endpoint c, copying the payload from b. It -// returns the number of bytes written. The control message cm allows -// the datagram path and the outgoing interface to be specified. -// Currently only Darwin and Linux support this. The cm may be nil if -// control of the outgoing datagram is not required. -func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) { - if !c.ok() { - return 0, syscall.EINVAL - } - if dst == nil { - return 0, errMissingAddress - } - return c.PacketConn.WriteTo(b, dst) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/readwrite_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/readwrite_test.go deleted file mode 100644 index 1eacdd11..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/readwrite_test.go +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright 2012 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 ipv4_test - -import ( - "bytes" - "net" - "runtime" - "sync" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" -) - -func benchmarkUDPListener() (net.PacketConn, net.Addr, error) { - c, err := net.ListenPacket("udp4", "127.0.0.1:0") - if err != nil { - return nil, nil, err - } - dst, err := net.ResolveUDPAddr("udp4", c.LocalAddr().String()) - if err != nil { - c.Close() - return nil, nil, err - } - return c, dst, nil -} - -func BenchmarkReadWriteNetUDP(b *testing.B) { - c, dst, err := benchmarkUDPListener() - if err != nil { - b.Fatal(err) - } - defer c.Close() - - wb, rb := []byte("HELLO-R-U-THERE"), make([]byte, 128) - b.ResetTimer() - for i := 0; i < b.N; i++ { - benchmarkReadWriteNetUDP(b, c, wb, rb, dst) - } -} - -func benchmarkReadWriteNetUDP(b *testing.B, c net.PacketConn, wb, rb []byte, dst net.Addr) { - if _, err := c.WriteTo(wb, dst); err != nil { - b.Fatal(err) - } - if _, _, err := c.ReadFrom(rb); err != nil { - b.Fatal(err) - } -} - -func BenchmarkReadWriteIPv4UDP(b *testing.B) { - c, dst, err := benchmarkUDPListener() - if err != nil { - b.Fatal(err) - } - defer c.Close() - - p := ipv4.NewPacketConn(c) - defer p.Close() - cf := ipv4.FlagTTL | ipv4.FlagInterface - if err := p.SetControlMessage(cf, true); err != nil { - b.Fatal(err) - } - ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback) - - wb, rb := []byte("HELLO-R-U-THERE"), make([]byte, 128) - b.ResetTimer() - for i := 0; i < b.N; i++ { - benchmarkReadWriteIPv4UDP(b, p, wb, rb, dst, ifi) - } -} - -func benchmarkReadWriteIPv4UDP(b *testing.B, p *ipv4.PacketConn, wb, rb []byte, dst net.Addr, ifi *net.Interface) { - cm := ipv4.ControlMessage{TTL: 1} - if ifi != nil { - cm.IfIndex = ifi.Index - } - if n, err := p.WriteTo(wb, &cm, dst); err != nil { - b.Fatal(err) - } else if n != len(wb) { - b.Fatalf("got %v; want %v", n, len(wb)) - } - if _, _, _, err := p.ReadFrom(rb); err != nil { - b.Fatal(err) - } -} - -func TestPacketConnConcurrentReadWriteUnicastUDP(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - - c, err := net.ListenPacket("udp4", "127.0.0.1:0") - if err != nil { - t.Fatal(err) - } - defer c.Close() - p := ipv4.NewPacketConn(c) - defer p.Close() - - dst, err := net.ResolveUDPAddr("udp4", c.LocalAddr().String()) - if err != nil { - t.Fatal(err) - } - - ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback) - cf := ipv4.FlagTTL | ipv4.FlagSrc | ipv4.FlagDst | ipv4.FlagInterface - wb := []byte("HELLO-R-U-THERE") - - if err := p.SetControlMessage(cf, true); err != nil { // probe before test - if nettest.ProtocolNotSupported(err) { - t.Skipf("not supported on %s", runtime.GOOS) - } - t.Fatal(err) - } - - var wg sync.WaitGroup - reader := func() { - defer wg.Done() - rb := make([]byte, 128) - if n, cm, _, err := p.ReadFrom(rb); err != nil { - t.Error(err) - return - } else if !bytes.Equal(rb[:n], wb) { - t.Errorf("got %v; want %v", rb[:n], wb) - return - } else { - t.Logf("rcvd cmsg: %v", cm) - } - } - writer := func(toggle bool) { - defer wg.Done() - cm := ipv4.ControlMessage{ - Src: net.IPv4(127, 0, 0, 1), - } - if ifi != nil { - cm.IfIndex = ifi.Index - } - if err := p.SetControlMessage(cf, toggle); err != nil { - t.Error(err) - return - } - if n, err := p.WriteTo(wb, &cm, dst); err != nil { - t.Error(err) - return - } else if n != len(wb) { - t.Errorf("short write: %v", n) - return - } - } - - const N = 10 - wg.Add(N) - for i := 0; i < N; i++ { - go reader() - } - wg.Add(2 * N) - for i := 0; i < 2*N; i++ { - go writer(i%2 != 0) - } - wg.Add(N) - for i := 0; i < N; i++ { - go reader() - } - wg.Wait() -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt.go deleted file mode 100644 index ace37d30..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ipv4 - -// Sticky socket options -const ( - ssoTOS = iota // header field for unicast packet - ssoTTL // header field for unicast packet - ssoMulticastTTL // header field for multicast packet - ssoMulticastInterface // outbound interface for multicast packet - ssoMulticastLoopback // loopback for multicast packet - ssoReceiveTTL // header field on received packet - ssoReceiveDst // header field on received packet - ssoReceiveInterface // inbound interface on received packet - ssoPacketInfo // incbound or outbound packet path - ssoHeaderPrepend // ipv4 header prepend - ssoStripHeader // strip ipv4 header - ssoICMPFilter // icmp filter - ssoJoinGroup // any-source multicast - ssoLeaveGroup // any-source multicast - ssoJoinSourceGroup // source-specific multicast - ssoLeaveSourceGroup // source-specific multicast - ssoBlockSourceGroup // any-source or source-specific multicast - ssoUnblockSourceGroup // any-source or source-specific multicast - ssoMax -) - -// Sticky socket option value types -const ( - ssoTypeByte = iota + 1 - ssoTypeInt - ssoTypeInterface - ssoTypeICMPFilter - ssoTypeIPMreq - ssoTypeIPMreqn - ssoTypeGroupReq - ssoTypeGroupSourceReq -) - -// A sockOpt represents a binding for sticky socket option. -type sockOpt struct { - name int // option name, must be equal or greater than 1 - typ int // option value type, must be equal or greater than 1 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq.go deleted file mode 100644 index 4a6aa78e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq.go +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2012 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 darwin dragonfly freebsd netbsd openbsd windows - -package ipv4 - -import "net" - -func setIPMreqInterface(mreq *sysIPMreq, ifi *net.Interface) error { - if ifi == nil { - return nil - } - ifat, err := ifi.Addrs() - if err != nil { - return err - } - for _, ifa := range ifat { - switch ifa := ifa.(type) { - case *net.IPAddr: - if ip := ifa.IP.To4(); ip != nil { - copy(mreq.Interface[:], ip) - return nil - } - case *net.IPNet: - if ip := ifa.IP.To4(); ip != nil { - copy(mreq.Interface[:], ip) - return nil - } - } - } - return errNoSuchInterface -} - -func netIP4ToInterface(ip net.IP) (*net.Interface, error) { - ift, err := net.Interfaces() - if err != nil { - return nil, err - } - for _, ifi := range ift { - ifat, err := ifi.Addrs() - if err != nil { - return nil, err - } - for _, ifa := range ifat { - switch ifa := ifa.(type) { - case *net.IPAddr: - if ip.Equal(ifa.IP) { - return &ifi, nil - } - case *net.IPNet: - if ip.Equal(ifa.IP) { - return &ifi, nil - } - } - } - } - return nil, errNoSuchInterface -} - -func netInterfaceToIP4(ifi *net.Interface) (net.IP, error) { - if ifi == nil { - return net.IPv4zero.To4(), nil - } - ifat, err := ifi.Addrs() - if err != nil { - return nil, err - } - for _, ifa := range ifat { - switch ifa := ifa.(type) { - case *net.IPAddr: - if ip := ifa.IP.To4(); ip != nil { - return ip, nil - } - case *net.IPNet: - if ip := ifa.IP.To4(); ip != nil { - return ip, nil - } - } - } - return nil, errNoSuchInterface -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq_stub.go deleted file mode 100644 index 45551528..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq_stub.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2012 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 !darwin,!dragonfly,!freebsd,!netbsd,!openbsd,!windows - -package ipv4 - -import "net" - -func setsockoptIPMreq(fd, name int, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport -} - -func getsockoptInterface(fd, name int) (*net.Interface, error) { - return nil, errOpNoSupport -} - -func setsockoptInterface(fd, name int, ifi *net.Interface) error { - return errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq_unix.go deleted file mode 100644 index ee2c9eb7..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq_unix.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2012 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 darwin dragonfly freebsd netbsd openbsd - -package ipv4 - -import ( - "net" - "os" - "unsafe" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -func setsockoptIPMreq(fd, name int, ifi *net.Interface, grp net.IP) error { - mreq := sysIPMreq{Multiaddr: [4]byte{grp[0], grp[1], grp[2], grp[3]}} - if err := setIPMreqInterface(&mreq, ifi); err != nil { - return err - } - return os.NewSyscallError("setsockopt", setsockopt(fd, iana.ProtocolIP, name, unsafe.Pointer(&mreq), sysSizeofIPMreq)) -} - -func getsockoptInterface(fd, name int) (*net.Interface, error) { - var b [4]byte - l := sysSockoptLen(4) - if err := getsockopt(fd, iana.ProtocolIP, name, unsafe.Pointer(&b[0]), &l); err != nil { - return nil, os.NewSyscallError("getsockopt", err) - } - ifi, err := netIP4ToInterface(net.IPv4(b[0], b[1], b[2], b[3])) - if err != nil { - return nil, err - } - return ifi, nil -} - -func setsockoptInterface(fd, name int, ifi *net.Interface) error { - ip, err := netInterfaceToIP4(ifi) - if err != nil { - return err - } - var b [4]byte - copy(b[:], ip) - return os.NewSyscallError("setsockopt", setsockopt(fd, iana.ProtocolIP, name, unsafe.Pointer(&b[0]), sysSockoptLen(4))) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq_windows.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq_windows.go deleted file mode 100644 index 4786a206..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreq_windows.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2012 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 ipv4 - -import ( - "net" - "os" - "syscall" - "unsafe" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -func setsockoptIPMreq(fd syscall.Handle, name int, ifi *net.Interface, grp net.IP) error { - mreq := sysIPMreq{Multiaddr: [4]byte{grp[0], grp[1], grp[2], grp[3]}} - if err := setIPMreqInterface(&mreq, ifi); err != nil { - return err - } - return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, iana.ProtocolIP, int32(name), (*byte)(unsafe.Pointer(&mreq)), int32(sysSizeofIPMreq))) -} - -func getsockoptInterface(fd syscall.Handle, name int) (*net.Interface, error) { - var b [4]byte - l := int32(4) - if err := syscall.Getsockopt(fd, iana.ProtocolIP, int32(name), (*byte)(unsafe.Pointer(&b[0])), &l); err != nil { - return nil, os.NewSyscallError("getsockopt", err) - } - ifi, err := netIP4ToInterface(net.IPv4(b[0], b[1], b[2], b[3])) - if err != nil { - return nil, err - } - return ifi, nil -} - -func setsockoptInterface(fd syscall.Handle, name int, ifi *net.Interface) error { - ip, err := netInterfaceToIP4(ifi) - if err != nil { - return err - } - var b [4]byte - copy(b[:], ip) - return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, iana.ProtocolIP, int32(name), (*byte)(unsafe.Pointer(&b[0])), 4)) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreqn_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreqn_stub.go deleted file mode 100644 index 332f403e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreqn_stub.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !darwin,!freebsd,!linux,!windows - -package ipv4 - -import "net" - -func getsockoptIPMreqn(fd, name int) (*net.Interface, error) { - return nil, errOpNoSupport -} - -func setsockoptIPMreqn(fd, name int, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreqn_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreqn_unix.go deleted file mode 100644 index f9665109..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_asmreqn_unix.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin freebsd linux - -package ipv4 - -import ( - "net" - "os" - "unsafe" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -func getsockoptIPMreqn(fd, name int) (*net.Interface, error) { - var mreqn sysIPMreqn - l := sysSockoptLen(sysSizeofIPMreqn) - if err := getsockopt(fd, iana.ProtocolIP, name, unsafe.Pointer(&mreqn), &l); err != nil { - return nil, os.NewSyscallError("getsockopt", err) - } - if mreqn.Ifindex == 0 { - return nil, nil - } - ifi, err := net.InterfaceByIndex(int(mreqn.Ifindex)) - if err != nil { - return nil, err - } - return ifi, nil -} - -func setsockoptIPMreqn(fd, name int, ifi *net.Interface, grp net.IP) error { - var mreqn sysIPMreqn - if ifi != nil { - mreqn.Ifindex = int32(ifi.Index) - } - if grp != nil { - mreqn.Multiaddr = [4]byte{grp[0], grp[1], grp[2], grp[3]} - } - return os.NewSyscallError("setsockopt", setsockopt(fd, iana.ProtocolIP, name, unsafe.Pointer(&mreqn), sysSizeofIPMreqn)) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_ssmreq_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_ssmreq_stub.go deleted file mode 100644 index 85465244..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_ssmreq_stub.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !darwin,!freebsd,!linux - -package ipv4 - -import "net" - -func setsockoptGroupReq(fd, name int, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport -} - -func setsockoptGroupSourceReq(fd, name int, ifi *net.Interface, grp, src net.IP) error { - return errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_ssmreq_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_ssmreq_unix.go deleted file mode 100644 index 1e7f161f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_ssmreq_unix.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin freebsd linux - -package ipv4 - -import ( - "net" - "os" - "unsafe" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -var freebsd32o64 bool - -func setsockoptGroupReq(fd, name int, ifi *net.Interface, grp net.IP) error { - var gr sysGroupReq - if ifi != nil { - gr.Interface = uint32(ifi.Index) - } - gr.setGroup(grp) - var p unsafe.Pointer - var l sysSockoptLen - if freebsd32o64 { - var d [sysSizeofGroupReq + 4]byte - s := (*[sysSizeofGroupReq]byte)(unsafe.Pointer(&gr)) - copy(d[:4], s[:4]) - copy(d[8:], s[4:]) - p = unsafe.Pointer(&d[0]) - l = sysSizeofGroupReq + 4 - } else { - p = unsafe.Pointer(&gr) - l = sysSizeofGroupReq - } - return os.NewSyscallError("setsockopt", setsockopt(fd, iana.ProtocolIP, name, p, l)) -} - -func setsockoptGroupSourceReq(fd, name int, ifi *net.Interface, grp, src net.IP) error { - var gsr sysGroupSourceReq - if ifi != nil { - gsr.Interface = uint32(ifi.Index) - } - gsr.setSourceGroup(grp, src) - var p unsafe.Pointer - var l sysSockoptLen - if freebsd32o64 { - var d [sysSizeofGroupSourceReq + 4]byte - s := (*[sysSizeofGroupSourceReq]byte)(unsafe.Pointer(&gsr)) - copy(d[:4], s[:4]) - copy(d[8:], s[4:]) - p = unsafe.Pointer(&d[0]) - l = sysSizeofGroupSourceReq + 4 - } else { - p = unsafe.Pointer(&gsr) - l = sysSizeofGroupSourceReq - } - return os.NewSyscallError("setsockopt", setsockopt(fd, iana.ProtocolIP, name, p, l)) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_stub.go deleted file mode 100644 index 9d19f5df..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_stub.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2012 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 nacl plan9 solaris - -package ipv4 - -func setInt(fd int, opt *sockOpt, v int) error { - return errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_unix.go deleted file mode 100644 index 75cfdbdf..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_unix.go +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2012 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 darwin dragonfly freebsd linux netbsd openbsd - -package ipv4 - -import ( - "net" - "os" - "unsafe" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -func getInt(fd int, opt *sockOpt) (int, error) { - if opt.name < 1 || (opt.typ != ssoTypeByte && opt.typ != ssoTypeInt) { - return 0, errOpNoSupport - } - var i int32 - var b byte - p := unsafe.Pointer(&i) - l := sysSockoptLen(4) - if opt.typ == ssoTypeByte { - p = unsafe.Pointer(&b) - l = sysSockoptLen(1) - } - if err := getsockopt(fd, iana.ProtocolIP, opt.name, p, &l); err != nil { - return 0, os.NewSyscallError("getsockopt", err) - } - if opt.typ == ssoTypeByte { - return int(b), nil - } - return int(i), nil -} - -func setInt(fd int, opt *sockOpt, v int) error { - if opt.name < 1 || (opt.typ != ssoTypeByte && opt.typ != ssoTypeInt) { - return errOpNoSupport - } - i := int32(v) - var b byte - p := unsafe.Pointer(&i) - l := sysSockoptLen(4) - if opt.typ == ssoTypeByte { - b = byte(v) - p = unsafe.Pointer(&b) - l = sysSockoptLen(1) - } - return os.NewSyscallError("setsockopt", setsockopt(fd, iana.ProtocolIP, opt.name, p, l)) -} - -func getInterface(fd int, opt *sockOpt) (*net.Interface, error) { - if opt.name < 1 { - return nil, errOpNoSupport - } - switch opt.typ { - case ssoTypeInterface: - return getsockoptInterface(fd, opt.name) - case ssoTypeIPMreqn: - return getsockoptIPMreqn(fd, opt.name) - default: - return nil, errOpNoSupport - } -} - -func setInterface(fd int, opt *sockOpt, ifi *net.Interface) error { - if opt.name < 1 { - return errOpNoSupport - } - switch opt.typ { - case ssoTypeInterface: - return setsockoptInterface(fd, opt.name, ifi) - case ssoTypeIPMreqn: - return setsockoptIPMreqn(fd, opt.name, ifi, nil) - default: - return errOpNoSupport - } -} - -func getICMPFilter(fd int, opt *sockOpt) (*ICMPFilter, error) { - if opt.name < 1 || opt.typ != ssoTypeICMPFilter { - return nil, errOpNoSupport - } - var f ICMPFilter - l := sysSockoptLen(sysSizeofICMPFilter) - if err := getsockopt(fd, iana.ProtocolReserved, opt.name, unsafe.Pointer(&f.sysICMPFilter), &l); err != nil { - return nil, os.NewSyscallError("getsockopt", err) - } - return &f, nil -} - -func setICMPFilter(fd int, opt *sockOpt, f *ICMPFilter) error { - if opt.name < 1 || opt.typ != ssoTypeICMPFilter { - return errOpNoSupport - } - return os.NewSyscallError("setsockopt", setsockopt(fd, iana.ProtocolReserved, opt.name, unsafe.Pointer(&f.sysICMPFilter), sysSizeofICMPFilter)) -} - -func setGroup(fd int, opt *sockOpt, ifi *net.Interface, grp net.IP) error { - if opt.name < 1 { - return errOpNoSupport - } - switch opt.typ { - case ssoTypeIPMreq: - return setsockoptIPMreq(fd, opt.name, ifi, grp) - case ssoTypeIPMreqn: - return setsockoptIPMreqn(fd, opt.name, ifi, grp) - case ssoTypeGroupReq: - return setsockoptGroupReq(fd, opt.name, ifi, grp) - default: - return errOpNoSupport - } -} - -func setSourceGroup(fd int, opt *sockOpt, ifi *net.Interface, grp, src net.IP) error { - if opt.name < 1 || opt.typ != ssoTypeGroupSourceReq { - return errOpNoSupport - } - return setsockoptGroupSourceReq(fd, opt.name, ifi, grp, src) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_windows.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_windows.go deleted file mode 100644 index 2efabb18..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sockopt_windows.go +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2012 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 ipv4 - -import ( - "net" - "os" - "syscall" - "unsafe" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -func getInt(fd syscall.Handle, opt *sockOpt) (int, error) { - if opt.name < 1 || opt.typ != ssoTypeInt { - return 0, errOpNoSupport - } - var i int32 - l := int32(4) - if err := syscall.Getsockopt(fd, iana.ProtocolIP, int32(opt.name), (*byte)(unsafe.Pointer(&i)), &l); err != nil { - return 0, os.NewSyscallError("getsockopt", err) - } - return int(i), nil -} - -func setInt(fd syscall.Handle, opt *sockOpt, v int) error { - if opt.name < 1 || opt.typ != ssoTypeInt { - return errOpNoSupport - } - i := int32(v) - return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, iana.ProtocolIP, int32(opt.name), (*byte)(unsafe.Pointer(&i)), 4)) -} - -func getInterface(fd syscall.Handle, opt *sockOpt) (*net.Interface, error) { - if opt.name < 1 || opt.typ != ssoTypeInterface { - return nil, errOpNoSupport - } - return getsockoptInterface(fd, opt.name) -} - -func setInterface(fd syscall.Handle, opt *sockOpt, ifi *net.Interface) error { - if opt.name < 1 || opt.typ != ssoTypeInterface { - return errOpNoSupport - } - return setsockoptInterface(fd, opt.name, ifi) -} - -func getICMPFilter(fd syscall.Handle, opt *sockOpt) (*ICMPFilter, error) { - return nil, errOpNoSupport -} - -func setICMPFilter(fd syscall.Handle, opt *sockOpt, f *ICMPFilter) error { - return errOpNoSupport -} - -func setGroup(fd syscall.Handle, opt *sockOpt, ifi *net.Interface, grp net.IP) error { - if opt.name < 1 || opt.typ != ssoTypeIPMreq { - return errOpNoSupport - } - return setsockoptIPMreq(fd, opt.name, ifi, grp) -} - -func setSourceGroup(fd syscall.Handle, opt *sockOpt, ifi *net.Interface, grp, src net.IP) error { - // TODO(mikio): implement this - return errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_bsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_bsd.go deleted file mode 100644 index a669a440..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_bsd.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build dragonfly netbsd - -package ipv4 - -import ( - "net" - "syscall" -) - -type sysSockoptLen int32 - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL}, - ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst}, - ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface}, - } - - sockOpts = [ssoMax]sockOpt{ - ssoTOS: {sysIP_TOS, ssoTypeInt}, - ssoTTL: {sysIP_TTL, ssoTypeInt}, - ssoMulticastTTL: {sysIP_MULTICAST_TTL, ssoTypeByte}, - ssoMulticastInterface: {sysIP_MULTICAST_IF, ssoTypeInterface}, - ssoMulticastLoopback: {sysIP_MULTICAST_LOOP, ssoTypeInt}, - ssoReceiveTTL: {sysIP_RECVTTL, ssoTypeInt}, - ssoReceiveDst: {sysIP_RECVDSTADDR, ssoTypeInt}, - ssoReceiveInterface: {sysIP_RECVIF, ssoTypeInt}, - ssoHeaderPrepend: {sysIP_HDRINCL, ssoTypeInt}, - ssoJoinGroup: {sysIP_ADD_MEMBERSHIP, ssoTypeIPMreq}, - ssoLeaveGroup: {sysIP_DROP_MEMBERSHIP, ssoTypeIPMreq}, - } -) diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_darwin.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_darwin.go deleted file mode 100644 index 3f347348..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_darwin.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ipv4 - -import ( - "net" - "syscall" - "unsafe" -) - -type sysSockoptLen int32 - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL}, - ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst}, - ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface}, - } - - sockOpts = [ssoMax]sockOpt{ - ssoTOS: {sysIP_TOS, ssoTypeInt}, - ssoTTL: {sysIP_TTL, ssoTypeInt}, - ssoMulticastTTL: {sysIP_MULTICAST_TTL, ssoTypeByte}, - ssoMulticastInterface: {sysIP_MULTICAST_IF, ssoTypeInterface}, - ssoMulticastLoopback: {sysIP_MULTICAST_LOOP, ssoTypeInt}, - ssoReceiveTTL: {sysIP_RECVTTL, ssoTypeInt}, - ssoReceiveDst: {sysIP_RECVDSTADDR, ssoTypeInt}, - ssoReceiveInterface: {sysIP_RECVIF, ssoTypeInt}, - ssoHeaderPrepend: {sysIP_HDRINCL, ssoTypeInt}, - ssoStripHeader: {sysIP_STRIPHDR, ssoTypeInt}, - ssoJoinGroup: {sysIP_ADD_MEMBERSHIP, ssoTypeIPMreq}, - ssoLeaveGroup: {sysIP_DROP_MEMBERSHIP, ssoTypeIPMreq}, - } -) - -func init() { - // Seems like kern.osreldate is veiled on latest OS X. We use - // kern.osrelease instead. - osver, err := syscall.Sysctl("kern.osrelease") - if err != nil { - return - } - var i int - for i = range osver { - if osver[i] == '.' { - break - } - } - // The IP_PKTINFO and protocol-independent multicast API were - // introduced in OS X 10.7 (Darwin 11.0.0). But it looks like - // those features require OS X 10.8 (Darwin 12.0.0) and above. - // See http://support.apple.com/kb/HT1633. - if i > 2 || i == 2 && osver[0] >= '1' && osver[1] >= '2' { - ctlOpts[ctlPacketInfo].name = sysIP_PKTINFO - ctlOpts[ctlPacketInfo].length = sysSizeofInetPktinfo - ctlOpts[ctlPacketInfo].marshal = marshalPacketInfo - ctlOpts[ctlPacketInfo].parse = parsePacketInfo - sockOpts[ssoPacketInfo].name = sysIP_RECVPKTINFO - sockOpts[ssoPacketInfo].typ = ssoTypeInt - sockOpts[ssoMulticastInterface].typ = ssoTypeIPMreqn - sockOpts[ssoJoinGroup].name = sysMCAST_JOIN_GROUP - sockOpts[ssoJoinGroup].typ = ssoTypeGroupReq - sockOpts[ssoLeaveGroup].name = sysMCAST_LEAVE_GROUP - sockOpts[ssoLeaveGroup].typ = ssoTypeGroupReq - sockOpts[ssoJoinSourceGroup].name = sysMCAST_JOIN_SOURCE_GROUP - sockOpts[ssoJoinSourceGroup].typ = ssoTypeGroupSourceReq - sockOpts[ssoLeaveSourceGroup].name = sysMCAST_LEAVE_SOURCE_GROUP - sockOpts[ssoLeaveSourceGroup].typ = ssoTypeGroupSourceReq - sockOpts[ssoBlockSourceGroup].name = sysMCAST_BLOCK_SOURCE - sockOpts[ssoBlockSourceGroup].typ = ssoTypeGroupSourceReq - sockOpts[ssoUnblockSourceGroup].name = sysMCAST_UNBLOCK_SOURCE - sockOpts[ssoUnblockSourceGroup].typ = ssoTypeGroupSourceReq - } -} - -func (pi *sysInetPktinfo) setIfindex(i int) { - pi.Ifindex = uint32(i) -} - -func (gr *sysGroupReq) setGroup(grp net.IP) { - sa := (*sysSockaddrInet)(unsafe.Pointer(&gr.Pad_cgo_0[0])) - sa.Len = sysSizeofSockaddrInet - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) -} - -func (gsr *sysGroupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sysSockaddrInet)(unsafe.Pointer(&gsr.Pad_cgo_0[0])) - sa.Len = sysSizeofSockaddrInet - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) - sa = (*sysSockaddrInet)(unsafe.Pointer(&gsr.Pad_cgo_1[0])) - sa.Len = sysSizeofSockaddrInet - sa.Family = syscall.AF_INET - copy(sa.Addr[:], src) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_freebsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_freebsd.go deleted file mode 100644 index 09ef4910..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_freebsd.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ipv4 - -import ( - "net" - "runtime" - "strings" - "syscall" - "unsafe" -) - -type sysSockoptLen int32 - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL}, - ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst}, - ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface}, - } - - sockOpts = [ssoMax]sockOpt{ - ssoTOS: {sysIP_TOS, ssoTypeInt}, - ssoTTL: {sysIP_TTL, ssoTypeInt}, - ssoMulticastTTL: {sysIP_MULTICAST_TTL, ssoTypeByte}, - ssoMulticastInterface: {sysIP_MULTICAST_IF, ssoTypeInterface}, - ssoMulticastLoopback: {sysIP_MULTICAST_LOOP, ssoTypeInt}, - ssoReceiveTTL: {sysIP_RECVTTL, ssoTypeInt}, - ssoReceiveDst: {sysIP_RECVDSTADDR, ssoTypeInt}, - ssoReceiveInterface: {sysIP_RECVIF, ssoTypeInt}, - ssoHeaderPrepend: {sysIP_HDRINCL, ssoTypeInt}, - ssoJoinGroup: {sysMCAST_JOIN_GROUP, ssoTypeGroupReq}, - ssoLeaveGroup: {sysMCAST_LEAVE_GROUP, ssoTypeGroupReq}, - ssoJoinSourceGroup: {sysMCAST_JOIN_SOURCE_GROUP, ssoTypeGroupSourceReq}, - ssoLeaveSourceGroup: {sysMCAST_LEAVE_SOURCE_GROUP, ssoTypeGroupSourceReq}, - ssoBlockSourceGroup: {sysMCAST_BLOCK_SOURCE, ssoTypeGroupSourceReq}, - ssoUnblockSourceGroup: {sysMCAST_UNBLOCK_SOURCE, ssoTypeGroupSourceReq}, - } -) - -func init() { - freebsdVersion, _ = syscall.SysctlUint32("kern.osreldate") - if freebsdVersion >= 1000000 { - sockOpts[ssoMulticastInterface].typ = ssoTypeIPMreqn - } - if runtime.GOOS == "freebsd" && runtime.GOARCH == "386" { - archs, _ := syscall.Sysctl("kern.supported_archs") - for _, s := range strings.Fields(archs) { - if s == "amd64" { - freebsd32o64 = true - break - } - } - } -} - -func (gr *sysGroupReq) setGroup(grp net.IP) { - sa := (*sysSockaddrInet)(unsafe.Pointer(&gr.Group)) - sa.Len = sysSizeofSockaddrInet - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) -} - -func (gsr *sysGroupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sysSockaddrInet)(unsafe.Pointer(&gsr.Group)) - sa.Len = sysSizeofSockaddrInet - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) - sa = (*sysSockaddrInet)(unsafe.Pointer(&gsr.Source)) - sa.Len = sysSizeofSockaddrInet - sa.Family = syscall.AF_INET - copy(sa.Addr[:], src) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_linux.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_linux.go deleted file mode 100644 index b1f38789..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_linux.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ipv4 - -import ( - "net" - "syscall" - "unsafe" -) - -type sysSockoptLen int32 - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTTL: {sysIP_TTL, 1, marshalTTL, parseTTL}, - ctlPacketInfo: {sysIP_PKTINFO, sysSizeofInetPktinfo, marshalPacketInfo, parsePacketInfo}, - } - - sockOpts = [ssoMax]sockOpt{ - ssoTOS: {sysIP_TOS, ssoTypeInt}, - ssoTTL: {sysIP_TTL, ssoTypeInt}, - ssoMulticastTTL: {sysIP_MULTICAST_TTL, ssoTypeInt}, - ssoMulticastInterface: {sysIP_MULTICAST_IF, ssoTypeIPMreqn}, - ssoMulticastLoopback: {sysIP_MULTICAST_LOOP, ssoTypeInt}, - ssoReceiveTTL: {sysIP_RECVTTL, ssoTypeInt}, - ssoPacketInfo: {sysIP_PKTINFO, ssoTypeInt}, - ssoHeaderPrepend: {sysIP_HDRINCL, ssoTypeInt}, - ssoICMPFilter: {sysICMP_FILTER, ssoTypeICMPFilter}, - ssoJoinGroup: {sysMCAST_JOIN_GROUP, ssoTypeGroupReq}, - ssoLeaveGroup: {sysMCAST_LEAVE_GROUP, ssoTypeGroupReq}, - ssoJoinSourceGroup: {sysMCAST_JOIN_SOURCE_GROUP, ssoTypeGroupSourceReq}, - ssoLeaveSourceGroup: {sysMCAST_LEAVE_SOURCE_GROUP, ssoTypeGroupSourceReq}, - ssoBlockSourceGroup: {sysMCAST_BLOCK_SOURCE, ssoTypeGroupSourceReq}, - ssoUnblockSourceGroup: {sysMCAST_UNBLOCK_SOURCE, ssoTypeGroupSourceReq}, - } -) - -func (pi *sysInetPktinfo) setIfindex(i int) { - pi.Ifindex = int32(i) -} - -func (gr *sysGroupReq) setGroup(grp net.IP) { - sa := (*sysSockaddrInet)(unsafe.Pointer(&gr.Group)) - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) -} - -func (gsr *sysGroupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sysSockaddrInet)(unsafe.Pointer(&gsr.Group)) - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) - sa = (*sysSockaddrInet)(unsafe.Pointer(&gsr.Source)) - sa.Family = syscall.AF_INET - copy(sa.Addr[:], src) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_openbsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_openbsd.go deleted file mode 100644 index 550f2081..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_openbsd.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ipv4 - -import ( - "net" - "syscall" -) - -type sysSockoptLen int32 - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL}, - ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst}, - ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface}, - } - - sockOpts = [ssoMax]sockOpt{ - ssoTOS: {sysIP_TOS, ssoTypeInt}, - ssoTTL: {sysIP_TTL, ssoTypeInt}, - ssoMulticastTTL: {sysIP_MULTICAST_TTL, ssoTypeByte}, - ssoMulticastInterface: {sysIP_MULTICAST_IF, ssoTypeInterface}, - ssoMulticastLoopback: {sysIP_MULTICAST_LOOP, ssoTypeByte}, - ssoReceiveTTL: {sysIP_RECVTTL, ssoTypeInt}, - ssoReceiveDst: {sysIP_RECVDSTADDR, ssoTypeInt}, - ssoReceiveInterface: {sysIP_RECVIF, ssoTypeInt}, - ssoHeaderPrepend: {sysIP_HDRINCL, ssoTypeInt}, - ssoJoinGroup: {sysIP_ADD_MEMBERSHIP, ssoTypeIPMreq}, - ssoLeaveGroup: {sysIP_DROP_MEMBERSHIP, ssoTypeIPMreq}, - } -) diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_stub.go deleted file mode 100644 index efbcc479..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_stub.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build nacl plan9 solaris - -package ipv4 - -type sysSockoptLen int32 - -var ( - ctlOpts = [ctlMax]ctlOpt{} - - sockOpts = [ssoMax]sockOpt{} -) diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_windows.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_windows.go deleted file mode 100644 index 466489fe..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/sys_windows.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ipv4 - -const ( - // See ws2tcpip.h. - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - sysIP_DONTFRAGMENT = 0xe - sysIP_ADD_SOURCE_MEMBERSHIP = 0xf - sysIP_DROP_SOURCE_MEMBERSHIP = 0x10 - sysIP_PKTINFO = 0x13 - - sysSizeofInetPktinfo = 0x8 - sysSizeofIPMreq = 0x8 - sysSizeofIPMreqSource = 0xc -) - -type sysInetPktinfo struct { - Addr [4]byte - Ifindex int32 -} - -type sysIPMreq struct { - Multiaddr [4]byte - Interface [4]byte -} - -type sysIPMreqSource struct { - Multiaddr [4]byte - Sourceaddr [4]byte - Interface [4]byte -} - -// See http://msdn.microsoft.com/en-us/library/windows/desktop/ms738586(v=vs.85).aspx -var ( - ctlOpts = [ctlMax]ctlOpt{} - - sockOpts = [ssoMax]sockOpt{ - ssoTOS: {sysIP_TOS, ssoTypeInt}, - ssoTTL: {sysIP_TTL, ssoTypeInt}, - ssoMulticastTTL: {sysIP_MULTICAST_TTL, ssoTypeInt}, - ssoMulticastInterface: {sysIP_MULTICAST_IF, ssoTypeInterface}, - ssoMulticastLoopback: {sysIP_MULTICAST_LOOP, ssoTypeInt}, - ssoJoinGroup: {sysIP_ADD_MEMBERSHIP, ssoTypeIPMreq}, - ssoLeaveGroup: {sysIP_DROP_MEMBERSHIP, ssoTypeIPMreq}, - } -) - -func (pi *sysInetPktinfo) setIfindex(i int) { - pi.Ifindex = int32(i) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/syscall_linux_386.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/syscall_linux_386.go deleted file mode 100644 index ab4ad045..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/syscall_linux_386.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ipv4 - -import ( - "syscall" - "unsafe" -) - -const ( - sysGETSOCKOPT = 0xf - sysSETSOCKOPT = 0xe -) - -func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) - -func getsockopt(fd, level, name int, v unsafe.Pointer, l *sysSockoptLen) error { - if _, errno := socketcall(sysGETSOCKOPT, uintptr(fd), uintptr(level), uintptr(name), uintptr(v), uintptr(unsafe.Pointer(l)), 0); errno != 0 { - return error(errno) - } - return nil -} - -func setsockopt(fd, level, name int, v unsafe.Pointer, l sysSockoptLen) error { - if _, errno := socketcall(sysSETSOCKOPT, uintptr(fd), uintptr(level), uintptr(name), uintptr(v), uintptr(l), 0); errno != 0 { - return error(errno) - } - return nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/syscall_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/syscall_unix.go deleted file mode 100644 index 5fe8e83b..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/syscall_unix.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux,!386 netbsd openbsd - -package ipv4 - -import ( - "syscall" - "unsafe" -) - -func getsockopt(fd, level, name int, v unsafe.Pointer, l *sysSockoptLen) error { - if _, _, errno := syscall.Syscall6(syscall.SYS_GETSOCKOPT, uintptr(fd), uintptr(level), uintptr(name), uintptr(v), uintptr(unsafe.Pointer(l)), 0); errno != 0 { - return error(errno) - } - return nil -} - -func setsockopt(fd, level, name int, v unsafe.Pointer, l sysSockoptLen) error { - if _, _, errno := syscall.Syscall6(syscall.SYS_SETSOCKOPT, uintptr(fd), uintptr(level), uintptr(name), uintptr(v), uintptr(l), 0); errno != 0 { - return error(errno) - } - return nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/thunk_linux_386.s b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/thunk_linux_386.s deleted file mode 100644 index daa78bc0..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/thunk_linux_386.s +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.2 - -TEXT ·socketcall(SB),4,$0-36 - JMP syscall·socketcall(SB) diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/unicast_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/unicast_test.go deleted file mode 100644 index 51f4b31e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/unicast_test.go +++ /dev/null @@ -1,250 +0,0 @@ -// Copyright 2012 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 ipv4_test - -import ( - "bytes" - "net" - "os" - "runtime" - "testing" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" -) - -func TestPacketConnReadWriteUnicastUDP(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - c, err := net.ListenPacket("udp4", "127.0.0.1:0") - if err != nil { - t.Fatal(err) - } - defer c.Close() - - dst, err := net.ResolveUDPAddr("udp4", c.LocalAddr().String()) - if err != nil { - t.Fatal(err) - } - p := ipv4.NewPacketConn(c) - defer p.Close() - cf := ipv4.FlagTTL | ipv4.FlagDst | ipv4.FlagInterface - wb := []byte("HELLO-R-U-THERE") - - for i, toggle := range []bool{true, false, true} { - if err := p.SetControlMessage(cf, toggle); err != nil { - if nettest.ProtocolNotSupported(err) { - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } - p.SetTTL(i + 1) - if err := p.SetWriteDeadline(time.Now().Add(100 * time.Millisecond)); err != nil { - t.Fatal(err) - } - if n, err := p.WriteTo(wb, nil, dst); err != nil { - t.Fatal(err) - } else if n != len(wb) { - t.Fatalf("got %v; want %v", n, len(wb)) - } - rb := make([]byte, 128) - if err := p.SetReadDeadline(time.Now().Add(100 * time.Millisecond)); err != nil { - t.Fatal(err) - } - if n, cm, _, err := p.ReadFrom(rb); err != nil { - t.Fatal(err) - } else if !bytes.Equal(rb[:n], wb) { - t.Fatalf("got %v; want %v", rb[:n], wb) - } else { - t.Logf("rcvd cmsg: %v", cm) - } - } -} - -func TestPacketConnReadWriteUnicastICMP(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - c, err := net.ListenPacket("ip4:icmp", "0.0.0.0") - if err != nil { - t.Fatal(err) - } - defer c.Close() - - dst, err := net.ResolveIPAddr("ip4", "127.0.0.1") - if err != nil { - t.Fatal(err) - } - p := ipv4.NewPacketConn(c) - defer p.Close() - cf := ipv4.FlagTTL | ipv4.FlagDst | ipv4.FlagInterface - - for i, toggle := range []bool{true, false, true} { - wb, err := (&icmp.Message{ - Type: ipv4.ICMPTypeEcho, Code: 0, - Body: &icmp.Echo{ - ID: os.Getpid() & 0xffff, Seq: i + 1, - Data: []byte("HELLO-R-U-THERE"), - }, - }).Marshal(nil) - if err != nil { - t.Fatal(err) - } - if err := p.SetControlMessage(cf, toggle); err != nil { - if nettest.ProtocolNotSupported(err) { - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } - p.SetTTL(i + 1) - if err := p.SetWriteDeadline(time.Now().Add(100 * time.Millisecond)); err != nil { - t.Fatal(err) - } - if n, err := p.WriteTo(wb, nil, dst); err != nil { - t.Fatal(err) - } else if n != len(wb) { - t.Fatalf("got %v; want %v", n, len(wb)) - } - rb := make([]byte, 128) - loop: - if err := p.SetReadDeadline(time.Now().Add(100 * time.Millisecond)); err != nil { - t.Fatal(err) - } - if n, cm, _, err := p.ReadFrom(rb); err != nil { - switch runtime.GOOS { - case "darwin": // older darwin kernels have some limitation on receiving icmp packet through raw socket - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } else { - t.Logf("rcvd cmsg: %v", cm) - m, err := icmp.ParseMessage(iana.ProtocolICMP, rb[:n]) - if err != nil { - t.Fatal(err) - } - if runtime.GOOS == "linux" && m.Type == ipv4.ICMPTypeEcho { - // On Linux we must handle own sent packets. - goto loop - } - if m.Type != ipv4.ICMPTypeEchoReply || m.Code != 0 { - t.Fatalf("got type=%v, code=%v; want type=%v, code=%v", m.Type, m.Code, ipv4.ICMPTypeEchoReply, 0) - } - } - } -} - -func TestRawConnReadWriteUnicastICMP(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - c, err := net.ListenPacket("ip4:icmp", "0.0.0.0") - if err != nil { - t.Fatal(err) - } - defer c.Close() - - dst, err := net.ResolveIPAddr("ip4", "127.0.0.1") - if err != nil { - t.Fatal(err) - } - r, err := ipv4.NewRawConn(c) - if err != nil { - t.Fatal(err) - } - defer r.Close() - cf := ipv4.FlagTTL | ipv4.FlagDst | ipv4.FlagInterface - - for i, toggle := range []bool{true, false, true} { - wb, err := (&icmp.Message{ - Type: ipv4.ICMPTypeEcho, Code: 0, - Body: &icmp.Echo{ - ID: os.Getpid() & 0xffff, Seq: i + 1, - Data: []byte("HELLO-R-U-THERE"), - }, - }).Marshal(nil) - if err != nil { - t.Fatal(err) - } - wh := &ipv4.Header{ - Version: ipv4.Version, - Len: ipv4.HeaderLen, - TOS: i + 1, - TotalLen: ipv4.HeaderLen + len(wb), - TTL: i + 1, - Protocol: 1, - Dst: dst.IP, - } - if err := r.SetControlMessage(cf, toggle); err != nil { - if nettest.ProtocolNotSupported(err) { - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } - if err := r.SetWriteDeadline(time.Now().Add(100 * time.Millisecond)); err != nil { - t.Fatal(err) - } - if err := r.WriteTo(wh, wb, nil); err != nil { - t.Fatal(err) - } - rb := make([]byte, ipv4.HeaderLen+128) - loop: - if err := r.SetReadDeadline(time.Now().Add(100 * time.Millisecond)); err != nil { - t.Fatal(err) - } - if _, b, cm, err := r.ReadFrom(rb); err != nil { - switch runtime.GOOS { - case "darwin": // older darwin kernels have some limitation on receiving icmp packet through raw socket - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } else { - t.Logf("rcvd cmsg: %v", cm) - m, err := icmp.ParseMessage(iana.ProtocolICMP, b) - if err != nil { - t.Fatal(err) - } - if runtime.GOOS == "linux" && m.Type == ipv4.ICMPTypeEcho { - // On Linux we must handle own sent packets. - goto loop - } - if m.Type != ipv4.ICMPTypeEchoReply || m.Code != 0 { - t.Fatalf("got type=%v, code=%v; want type=%v, code=%v", m.Type, m.Code, ipv4.ICMPTypeEchoReply, 0) - } - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/unicastsockopt_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/unicastsockopt_test.go deleted file mode 100644 index a5e7e375..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/unicastsockopt_test.go +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright 2012 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 ipv4_test - -import ( - "net" - "runtime" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" -) - -func TestConnUnicastSocketOptions(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris": - t.Skipf("not supported on %s", runtime.GOOS) - } - ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - ln, err := net.Listen("tcp4", "127.0.0.1:0") - if err != nil { - t.Fatal(err) - } - defer ln.Close() - - done := make(chan bool) - go acceptor(t, ln, done) - - c, err := net.Dial("tcp4", ln.Addr().String()) - if err != nil { - t.Fatal(err) - } - defer c.Close() - - testUnicastSocketOptions(t, ipv4.NewConn(c)) - - <-done -} - -var packetConnUnicastSocketOptionTests = []struct { - net, proto, addr string -}{ - {"udp4", "", "127.0.0.1:0"}, - {"ip4", ":icmp", "127.0.0.1"}, -} - -func TestPacketConnUnicastSocketOptions(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris": - t.Skipf("not supported on %s", runtime.GOOS) - } - ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - m, ok := nettest.SupportsRawIPSocket() - for _, tt := range packetConnUnicastSocketOptionTests { - if tt.net == "ip4" && !ok { - t.Log(m) - continue - } - c, err := net.ListenPacket(tt.net+tt.proto, tt.addr) - if err != nil { - t.Fatal(err) - } - defer c.Close() - - testUnicastSocketOptions(t, ipv4.NewPacketConn(c)) - } -} - -func TestRawConnUnicastSocketOptions(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris": - t.Skipf("not supported on %s", runtime.GOOS) - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - c, err := net.ListenPacket("ip4:icmp", "127.0.0.1") - if err != nil { - t.Fatal(err) - } - defer c.Close() - - r, err := ipv4.NewRawConn(c) - if err != nil { - t.Fatal(err) - } - - testUnicastSocketOptions(t, r) -} - -type testIPv4UnicastConn interface { - TOS() (int, error) - SetTOS(int) error - TTL() (int, error) - SetTTL(int) error -} - -func testUnicastSocketOptions(t *testing.T, c testIPv4UnicastConn) { - tos := iana.DiffServCS0 | iana.NotECNTransport - switch runtime.GOOS { - case "windows": - // IP_TOS option is supported on Windows 8 and beyond. - t.Skipf("not supported on %s", runtime.GOOS) - } - - if err := c.SetTOS(tos); err != nil { - t.Fatal(err) - } - if v, err := c.TOS(); err != nil { - t.Fatal(err) - } else if v != tos { - t.Fatalf("got %v; want %v", v, tos) - } - const ttl = 255 - if err := c.SetTTL(ttl); err != nil { - t.Fatal(err) - } - if v, err := c.TTL(); err != nil { - t.Fatal(err) - } else if v != ttl { - t.Fatalf("got %v; want %v", v, ttl) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_darwin.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_darwin.go deleted file mode 100644 index 087c6390..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_darwin.go +++ /dev/null @@ -1,99 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_darwin.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x14 - sysIP_STRIPHDR = 0x17 - sysIP_RECVTTL = 0x18 - sysIP_BOUND_IF = 0x19 - sysIP_PKTINFO = 0x1a - sysIP_RECVPKTINFO = 0x1a - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - sysIP_MULTICAST_VIF = 0xe - sysIP_MULTICAST_IFINDEX = 0x42 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x46 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x47 - sysIP_BLOCK_SOURCE = 0x48 - sysIP_UNBLOCK_SOURCE = 0x49 - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sysSizeofSockaddrStorage = 0x80 - sysSizeofSockaddrInet = 0x10 - sysSizeofInetPktinfo = 0xc - - sysSizeofIPMreq = 0x8 - sysSizeofIPMreqn = 0xc - sysSizeofIPMreqSource = 0xc - sysSizeofGroupReq = 0x84 - sysSizeofGroupSourceReq = 0x104 -) - -type sysSockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sysSockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sysInetPktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysIPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type sysIPMreqSource struct { - Multiaddr [4]byte /* in_addr */ - Sourceaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [128]byte -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [128]byte - Pad_cgo_1 [128]byte -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_dragonfly.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_dragonfly.go deleted file mode 100644 index f5c9ccec..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_dragonfly.go +++ /dev/null @@ -1,33 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_dragonfly.go - -// +build dragonfly - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x14 - sysIP_RECVTTL = 0x41 - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_MULTICAST_VIF = 0xe - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - - sysSizeofIPMreq = 0x8 -) - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_freebsd_386.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_freebsd_386.go deleted file mode 100644 index 6fd67e1e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_freebsd_386.go +++ /dev/null @@ -1,93 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_SENDSRCADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x14 - sysIP_ONESBCAST = 0x17 - sysIP_BINDANY = 0x18 - sysIP_RECVTTL = 0x41 - sysIP_MINTTL = 0x42 - sysIP_DONTFRAG = 0x43 - sysIP_RECVTOS = 0x44 - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - sysIP_MULTICAST_VIF = 0xe - sysIP_ADD_SOURCE_MEMBERSHIP = 0x46 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x47 - sysIP_BLOCK_SOURCE = 0x48 - sysIP_UNBLOCK_SOURCE = 0x49 - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sysSizeofSockaddrStorage = 0x80 - sysSizeofSockaddrInet = 0x10 - - sysSizeofIPMreq = 0x8 - sysSizeofIPMreqn = 0xc - sysSizeofIPMreqSource = 0xc - sysSizeofGroupReq = 0x84 - sysSizeofGroupSourceReq = 0x104 -) - -type sysSockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sysSockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysIPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type sysIPMreqSource struct { - Multiaddr [4]byte /* in_addr */ - Sourceaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysGroupReq struct { - Interface uint32 - Group sysSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Group sysSockaddrStorage - Source sysSockaddrStorage -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_freebsd_amd64.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_freebsd_amd64.go deleted file mode 100644 index ebac6d79..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_freebsd_amd64.go +++ /dev/null @@ -1,95 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_SENDSRCADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x14 - sysIP_ONESBCAST = 0x17 - sysIP_BINDANY = 0x18 - sysIP_RECVTTL = 0x41 - sysIP_MINTTL = 0x42 - sysIP_DONTFRAG = 0x43 - sysIP_RECVTOS = 0x44 - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - sysIP_MULTICAST_VIF = 0xe - sysIP_ADD_SOURCE_MEMBERSHIP = 0x46 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x47 - sysIP_BLOCK_SOURCE = 0x48 - sysIP_UNBLOCK_SOURCE = 0x49 - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sysSizeofSockaddrStorage = 0x80 - sysSizeofSockaddrInet = 0x10 - - sysSizeofIPMreq = 0x8 - sysSizeofIPMreqn = 0xc - sysSizeofIPMreqSource = 0xc - sysSizeofGroupReq = 0x88 - sysSizeofGroupSourceReq = 0x108 -) - -type sysSockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sysSockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysIPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type sysIPMreqSource struct { - Multiaddr [4]byte /* in_addr */ - Sourceaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysSockaddrStorage - Source sysSockaddrStorage -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_freebsd_arm.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_freebsd_arm.go deleted file mode 100644 index ebac6d79..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_freebsd_arm.go +++ /dev/null @@ -1,95 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_SENDSRCADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x14 - sysIP_ONESBCAST = 0x17 - sysIP_BINDANY = 0x18 - sysIP_RECVTTL = 0x41 - sysIP_MINTTL = 0x42 - sysIP_DONTFRAG = 0x43 - sysIP_RECVTOS = 0x44 - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - sysIP_MULTICAST_VIF = 0xe - sysIP_ADD_SOURCE_MEMBERSHIP = 0x46 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x47 - sysIP_BLOCK_SOURCE = 0x48 - sysIP_UNBLOCK_SOURCE = 0x49 - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sysSizeofSockaddrStorage = 0x80 - sysSizeofSockaddrInet = 0x10 - - sysSizeofIPMreq = 0x8 - sysSizeofIPMreqn = 0xc - sysSizeofIPMreqSource = 0xc - sysSizeofGroupReq = 0x88 - sysSizeofGroupSourceReq = 0x108 -) - -type sysSockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sysSockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysIPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type sysIPMreqSource struct { - Multiaddr [4]byte /* in_addr */ - Sourceaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysSockaddrStorage - Source sysSockaddrStorage -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_386.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_386.go deleted file mode 100644 index fc7a9ebf..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_386.go +++ /dev/null @@ -1,130 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSizeofKernelSockaddrStorage = 0x80 - sysSizeofSockaddrInet = 0x10 - sysSizeofInetPktinfo = 0xc - sysSizeofSockExtendedErr = 0x10 - - sysSizeofIPMreq = 0x8 - sysSizeofIPMreqn = 0xc - sysSizeofIPMreqSource = 0xc - sysSizeofGroupReq = 0x84 - sysSizeofGroupSourceReq = 0x104 - - sysSizeofICMPFilter = 0x4 -) - -type sysKernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sysSockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sysInetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sysSockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysIPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type sysIPMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type sysGroupReq struct { - Interface uint32 - Group sysKernelSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Group sysKernelSockaddrStorage - Source sysKernelSockaddrStorage -} - -type sysICMPFilter struct { - Data uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_amd64.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_amd64.go deleted file mode 100644 index e324b81b..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_amd64.go +++ /dev/null @@ -1,132 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSizeofKernelSockaddrStorage = 0x80 - sysSizeofSockaddrInet = 0x10 - sysSizeofInetPktinfo = 0xc - sysSizeofSockExtendedErr = 0x10 - - sysSizeofIPMreq = 0x8 - sysSizeofIPMreqn = 0xc - sysSizeofIPMreqSource = 0xc - sysSizeofGroupReq = 0x88 - sysSizeofGroupSourceReq = 0x108 - - sysSizeofICMPFilter = 0x4 -) - -type sysKernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sysSockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sysInetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sysSockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysIPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type sysIPMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage - Source sysKernelSockaddrStorage -} - -type sysICMPFilter struct { - Data uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_arm.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_arm.go deleted file mode 100644 index fc7a9ebf..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_arm.go +++ /dev/null @@ -1,130 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSizeofKernelSockaddrStorage = 0x80 - sysSizeofSockaddrInet = 0x10 - sysSizeofInetPktinfo = 0xc - sysSizeofSockExtendedErr = 0x10 - - sysSizeofIPMreq = 0x8 - sysSizeofIPMreqn = 0xc - sysSizeofIPMreqSource = 0xc - sysSizeofGroupReq = 0x84 - sysSizeofGroupSourceReq = 0x104 - - sysSizeofICMPFilter = 0x4 -) - -type sysKernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sysSockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sysInetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sysSockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysIPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type sysIPMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type sysGroupReq struct { - Interface uint32 - Group sysKernelSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Group sysKernelSockaddrStorage - Source sysKernelSockaddrStorage -} - -type sysICMPFilter struct { - Data uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_arm64.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_arm64.go deleted file mode 100644 index ce4194a6..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_arm64.go +++ /dev/null @@ -1,134 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -// +build linux,arm64 - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSizeofKernelSockaddrStorage = 0x80 - sysSizeofSockaddrInet = 0x10 - sysSizeofInetPktinfo = 0xc - sysSizeofSockExtendedErr = 0x10 - - sysSizeofIPMreq = 0x8 - sysSizeofIPMreqn = 0xc - sysSizeofIPMreqSource = 0xc - sysSizeofGroupReq = 0x88 - sysSizeofGroupSourceReq = 0x108 - - sysSizeofICMPFilter = 0x4 -) - -type sysKernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sysSockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sysInetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sysSockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysIPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type sysIPMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage - Source sysKernelSockaddrStorage -} - -type sysICMPFilter struct { - Data uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_ppc64.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_ppc64.go deleted file mode 100644 index 9fe5ee2b..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_ppc64.go +++ /dev/null @@ -1,134 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -// +build linux,ppc64 - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSizeofKernelSockaddrStorage = 0x80 - sysSizeofSockaddrInet = 0x10 - sysSizeofInetPktinfo = 0xc - sysSizeofSockExtendedErr = 0x10 - - sysSizeofIPMreq = 0x8 - sysSizeofIPMreqn = 0xc - sysSizeofIPMreqSource = 0xc - sysSizeofGroupReq = 0x88 - sysSizeofGroupSourceReq = 0x108 - - sysSizeofICMPFilter = 0x4 -) - -type sysKernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sysSockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sysInetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sysSockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysIPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type sysIPMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage - Source sysKernelSockaddrStorage -} - -type sysICMPFilter struct { - Data uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_ppc64le.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_ppc64le.go deleted file mode 100644 index 3891f54e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_linux_ppc64le.go +++ /dev/null @@ -1,134 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -// +build linux,ppc64le - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSizeofKernelSockaddrStorage = 0x80 - sysSizeofSockaddrInet = 0x10 - sysSizeofInetPktinfo = 0xc - sysSizeofSockExtendedErr = 0x10 - - sysSizeofIPMreq = 0x8 - sysSizeofIPMreqn = 0xc - sysSizeofIPMreqSource = 0xc - sysSizeofGroupReq = 0x88 - sysSizeofGroupSourceReq = 0x108 - - sysSizeofICMPFilter = 0x4 -) - -type sysKernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sysSockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sysInetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sysSockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysIPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type sysIPMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage - Source sysKernelSockaddrStorage -} - -type sysICMPFilter struct { - Data uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_netbsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_netbsd.go deleted file mode 100644 index 8a440eb6..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_netbsd.go +++ /dev/null @@ -1,30 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_netbsd.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x14 - sysIP_RECVTTL = 0x17 - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - - sysSizeofIPMreq = 0x8 -) - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_openbsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_openbsd.go deleted file mode 100644 index fd522b57..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_openbsd.go +++ /dev/null @@ -1,30 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_openbsd.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x1e - sysIP_RECVTTL = 0x1f - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - - sysSizeofIPMreq = 0x8 -) - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_solaris.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_solaris.go deleted file mode 100644 index d7c23349..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4/zsys_solaris.go +++ /dev/null @@ -1,60 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_solaris.go - -// +build solaris - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x9 - sysIP_RECVSLLA = 0xa - sysIP_RECVTTL = 0xb - sysIP_NEXTHOP = 0x19 - sysIP_PKTINFO = 0x1a - sysIP_RECVPKTINFO = 0x1a - sysIP_DONTFRAG = 0x1b - sysIP_BOUND_IF = 0x41 - sysIP_UNSPEC_SRC = 0x42 - sysIP_BROADCAST_TTL = 0x43 - sysIP_DHCPINIT_IF = 0x45 - - sysIP_MULTICAST_IF = 0x10 - sysIP_MULTICAST_TTL = 0x11 - sysIP_MULTICAST_LOOP = 0x12 - sysIP_ADD_MEMBERSHIP = 0x13 - sysIP_DROP_MEMBERSHIP = 0x14 - sysIP_BLOCK_SOURCE = 0x15 - sysIP_UNBLOCK_SOURCE = 0x16 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x17 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x18 - - sysSizeofInetPktinfo = 0xc - - sysSizeofIPMreq = 0x8 - sysSizeofIPMreqSource = 0xc -) - -type sysInetPktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sysIPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type sysIPMreqSource struct { - Multiaddr [4]byte /* in_addr */ - Sourceaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control.go deleted file mode 100644 index 27f1d2f8..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control.go +++ /dev/null @@ -1,92 +0,0 @@ -// 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 ipv6 - -import ( - "errors" - "fmt" - "net" - "sync" -) - -var ( - errMissingAddress = errors.New("missing address") - errInvalidConnType = errors.New("invalid conn type") - errNoSuchInterface = errors.New("no such interface") -) - -// Note that RFC 3542 obsoletes RFC 2292 but OS X Snow Leopard and the -// former still support RFC 2292 only. Please be aware that almost -// all protocol implementations prohibit using a combination of RFC -// 2292 and RFC 3542 for some practical reasons. - -type rawOpt struct { - sync.RWMutex - cflags ControlFlags -} - -func (c *rawOpt) set(f ControlFlags) { c.cflags |= f } -func (c *rawOpt) clear(f ControlFlags) { c.cflags &^= f } -func (c *rawOpt) isset(f ControlFlags) bool { return c.cflags&f != 0 } - -// A ControlFlags represents per packet basis IP-level socket option -// control flags. -type ControlFlags uint - -const ( - FlagTrafficClass ControlFlags = 1 << iota // pass the traffic class on the received packet - FlagHopLimit // pass the hop limit on the received packet - FlagSrc // pass the source address on the received packet - FlagDst // pass the destination address on the received packet - FlagInterface // pass the interface index on the received packet - FlagPathMTU // pass the path MTU on the received packet path -) - -const flagPacketInfo = FlagDst | FlagInterface - -// A ControlMessage represents per packet basis IP-level socket -// options. -type ControlMessage struct { - // Receiving socket options: SetControlMessage allows to - // receive the options from the protocol stack using ReadFrom - // method of PacketConn. - // - // Specifying socket options: ControlMessage for WriteTo - // method of PacketConn allows to send the options to the - // protocol stack. - // - TrafficClass int // traffic class, must be 1 <= value <= 255 when specifying - HopLimit int // hop limit, must be 1 <= value <= 255 when specifying - Src net.IP // source address, specifying only - Dst net.IP // destination address, receiving only - IfIndex int // interface index, must be 1 <= value when specifying - NextHop net.IP // next hop address, specifying only - MTU int // path MTU, receiving only -} - -func (cm *ControlMessage) String() string { - if cm == nil { - return "" - } - return fmt.Sprintf("tclass: %#x, hoplim: %v, src: %v, dst: %v, ifindex: %v, nexthop: %v, mtu: %v", cm.TrafficClass, cm.HopLimit, cm.Src, cm.Dst, cm.IfIndex, cm.NextHop, cm.MTU) -} - -// Ancillary data socket options -const ( - ctlTrafficClass = iota // header field - ctlHopLimit // header field - ctlPacketInfo // inbound or outbound packet path - ctlNextHop // nexthop - ctlPathMTU // path mtu - ctlMax -) - -// A ctlOpt represents a binding for ancillary data socket option. -type ctlOpt struct { - name int // option name, must be equal or greater than 1 - length int // option length - marshal func([]byte, *ControlMessage) []byte - parse func(*ControlMessage, []byte) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_rfc2292_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_rfc2292_unix.go deleted file mode 100644 index ce201ce3..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_rfc2292_unix.go +++ /dev/null @@ -1,56 +0,0 @@ -// 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. - -// +build darwin - -package ipv6 - -import ( - "syscall" - "unsafe" - - "golang.org/x/net/internal/iana" -) - -func marshal2292HopLimit(b []byte, cm *ControlMessage) []byte { - m := (*syscall.Cmsghdr)(unsafe.Pointer(&b[0])) - m.Level = iana.ProtocolIPv6 - m.Type = sysIPV6_2292HOPLIMIT - m.SetLen(syscall.CmsgLen(4)) - if cm != nil { - data := b[syscall.CmsgLen(0):] - // TODO(mikio): fix potential misaligned memory access - *(*int32)(unsafe.Pointer(&data[:4][0])) = int32(cm.HopLimit) - } - return b[syscall.CmsgSpace(4):] -} - -func marshal2292PacketInfo(b []byte, cm *ControlMessage) []byte { - m := (*syscall.Cmsghdr)(unsafe.Pointer(&b[0])) - m.Level = iana.ProtocolIPv6 - m.Type = sysIPV6_2292PKTINFO - m.SetLen(syscall.CmsgLen(sysSizeofInet6Pktinfo)) - if cm != nil { - pi := (*sysInet6Pktinfo)(unsafe.Pointer(&b[syscall.CmsgLen(0)])) - if ip := cm.Src.To16(); ip != nil && ip.To4() == nil { - copy(pi.Addr[:], ip) - } - if cm.IfIndex > 0 { - pi.setIfindex(cm.IfIndex) - } - } - return b[syscall.CmsgSpace(sysSizeofInet6Pktinfo):] -} - -func marshal2292NextHop(b []byte, cm *ControlMessage) []byte { - m := (*syscall.Cmsghdr)(unsafe.Pointer(&b[0])) - m.Level = iana.ProtocolIPv6 - m.Type = sysIPV6_2292NEXTHOP - m.SetLen(syscall.CmsgLen(sysSizeofSockaddrInet6)) - if cm != nil { - sa := (*sysSockaddrInet6)(unsafe.Pointer(&b[syscall.CmsgLen(0)])) - sa.setSockaddr(cm.NextHop, cm.IfIndex) - } - return b[syscall.CmsgSpace(sysSizeofSockaddrInet6):] -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_rfc3542_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_rfc3542_unix.go deleted file mode 100644 index 3f75a392..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_rfc3542_unix.go +++ /dev/null @@ -1,103 +0,0 @@ -// 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. - -// +build darwin dragonfly freebsd linux netbsd openbsd - -package ipv6 - -import ( - "syscall" - "unsafe" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -func marshalTrafficClass(b []byte, cm *ControlMessage) []byte { - m := (*syscall.Cmsghdr)(unsafe.Pointer(&b[0])) - m.Level = iana.ProtocolIPv6 - m.Type = sysIPV6_TCLASS - m.SetLen(syscall.CmsgLen(4)) - if cm != nil { - data := b[syscall.CmsgLen(0):] - // TODO(mikio): fix potential misaligned memory access - *(*int32)(unsafe.Pointer(&data[:4][0])) = int32(cm.TrafficClass) - } - return b[syscall.CmsgSpace(4):] -} - -func parseTrafficClass(cm *ControlMessage, b []byte) { - // TODO(mikio): fix potential misaligned memory access - cm.TrafficClass = int(*(*int32)(unsafe.Pointer(&b[:4][0]))) -} - -func marshalHopLimit(b []byte, cm *ControlMessage) []byte { - m := (*syscall.Cmsghdr)(unsafe.Pointer(&b[0])) - m.Level = iana.ProtocolIPv6 - m.Type = sysIPV6_HOPLIMIT - m.SetLen(syscall.CmsgLen(4)) - if cm != nil { - data := b[syscall.CmsgLen(0):] - // TODO(mikio): fix potential misaligned memory access - *(*int32)(unsafe.Pointer(&data[:4][0])) = int32(cm.HopLimit) - } - return b[syscall.CmsgSpace(4):] -} - -func parseHopLimit(cm *ControlMessage, b []byte) { - // TODO(mikio): fix potential misaligned memory access - cm.HopLimit = int(*(*int32)(unsafe.Pointer(&b[:4][0]))) -} - -func marshalPacketInfo(b []byte, cm *ControlMessage) []byte { - m := (*syscall.Cmsghdr)(unsafe.Pointer(&b[0])) - m.Level = iana.ProtocolIPv6 - m.Type = sysIPV6_PKTINFO - m.SetLen(syscall.CmsgLen(sysSizeofInet6Pktinfo)) - if cm != nil { - pi := (*sysInet6Pktinfo)(unsafe.Pointer(&b[syscall.CmsgLen(0)])) - if ip := cm.Src.To16(); ip != nil && ip.To4() == nil { - copy(pi.Addr[:], ip) - } - if cm.IfIndex > 0 { - pi.setIfindex(cm.IfIndex) - } - } - return b[syscall.CmsgSpace(sysSizeofInet6Pktinfo):] -} - -func parsePacketInfo(cm *ControlMessage, b []byte) { - pi := (*sysInet6Pktinfo)(unsafe.Pointer(&b[0])) - cm.Dst = pi.Addr[:] - cm.IfIndex = int(pi.Ifindex) -} - -func marshalNextHop(b []byte, cm *ControlMessage) []byte { - m := (*syscall.Cmsghdr)(unsafe.Pointer(&b[0])) - m.Level = iana.ProtocolIPv6 - m.Type = sysIPV6_NEXTHOP - m.SetLen(syscall.CmsgLen(sysSizeofSockaddrInet6)) - if cm != nil { - sa := (*sysSockaddrInet6)(unsafe.Pointer(&b[syscall.CmsgLen(0)])) - sa.setSockaddr(cm.NextHop, cm.IfIndex) - } - return b[syscall.CmsgSpace(sysSizeofSockaddrInet6):] -} - -func parseNextHop(cm *ControlMessage, b []byte) { -} - -func marshalPathMTU(b []byte, cm *ControlMessage) []byte { - m := (*syscall.Cmsghdr)(unsafe.Pointer(&b[0])) - m.Level = iana.ProtocolIPv6 - m.Type = sysIPV6_PATHMTU - m.SetLen(syscall.CmsgLen(sysSizeofIPv6Mtuinfo)) - return b[syscall.CmsgSpace(sysSizeofIPv6Mtuinfo):] -} - -func parsePathMTU(cm *ControlMessage, b []byte) { - mi := (*sysIPv6Mtuinfo)(unsafe.Pointer(&b[0])) - cm.Dst = mi.Addr.Addr[:] - cm.IfIndex = int(mi.Addr.Scope_id) - cm.MTU = int(mi.Mtu) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_stub.go deleted file mode 100644 index 2fecf7e5..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_stub.go +++ /dev/null @@ -1,23 +0,0 @@ -// 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. - -// +build nacl plan9 solaris - -package ipv6 - -func setControlMessage(fd int, opt *rawOpt, cf ControlFlags, on bool) error { - return errOpNoSupport -} - -func newControlMessage(opt *rawOpt) (oob []byte) { - return nil -} - -func parseControlMessage(b []byte) (*ControlMessage, error) { - return nil, errOpNoSupport -} - -func marshalControlMessage(cm *ControlMessage) (oob []byte) { - return nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_unix.go deleted file mode 100644 index 9fe551bf..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_unix.go +++ /dev/null @@ -1,166 +0,0 @@ -// 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. - -// +build darwin dragonfly freebsd linux netbsd openbsd - -package ipv6 - -import ( - "os" - "syscall" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -func setControlMessage(fd int, opt *rawOpt, cf ControlFlags, on bool) error { - opt.Lock() - defer opt.Unlock() - if cf&FlagTrafficClass != 0 && sockOpts[ssoReceiveTrafficClass].name > 0 { - if err := setInt(fd, &sockOpts[ssoReceiveTrafficClass], boolint(on)); err != nil { - return err - } - if on { - opt.set(FlagTrafficClass) - } else { - opt.clear(FlagTrafficClass) - } - } - if cf&FlagHopLimit != 0 && sockOpts[ssoReceiveHopLimit].name > 0 { - if err := setInt(fd, &sockOpts[ssoReceiveHopLimit], boolint(on)); err != nil { - return err - } - if on { - opt.set(FlagHopLimit) - } else { - opt.clear(FlagHopLimit) - } - } - if cf&flagPacketInfo != 0 && sockOpts[ssoReceivePacketInfo].name > 0 { - if err := setInt(fd, &sockOpts[ssoReceivePacketInfo], boolint(on)); err != nil { - return err - } - if on { - opt.set(cf & flagPacketInfo) - } else { - opt.clear(cf & flagPacketInfo) - } - } - if cf&FlagPathMTU != 0 && sockOpts[ssoReceivePathMTU].name > 0 { - if err := setInt(fd, &sockOpts[ssoReceivePathMTU], boolint(on)); err != nil { - return err - } - if on { - opt.set(FlagPathMTU) - } else { - opt.clear(FlagPathMTU) - } - } - return nil -} - -func newControlMessage(opt *rawOpt) (oob []byte) { - opt.RLock() - var l int - if opt.isset(FlagTrafficClass) && ctlOpts[ctlTrafficClass].name > 0 { - l += syscall.CmsgSpace(ctlOpts[ctlTrafficClass].length) - } - if opt.isset(FlagHopLimit) && ctlOpts[ctlHopLimit].name > 0 { - l += syscall.CmsgSpace(ctlOpts[ctlHopLimit].length) - } - if opt.isset(flagPacketInfo) && ctlOpts[ctlPacketInfo].name > 0 { - l += syscall.CmsgSpace(ctlOpts[ctlPacketInfo].length) - } - if opt.isset(FlagPathMTU) && ctlOpts[ctlPathMTU].name > 0 { - l += syscall.CmsgSpace(ctlOpts[ctlPathMTU].length) - } - if l > 0 { - oob = make([]byte, l) - b := oob - if opt.isset(FlagTrafficClass) && ctlOpts[ctlTrafficClass].name > 0 { - b = ctlOpts[ctlTrafficClass].marshal(b, nil) - } - if opt.isset(FlagHopLimit) && ctlOpts[ctlHopLimit].name > 0 { - b = ctlOpts[ctlHopLimit].marshal(b, nil) - } - if opt.isset(flagPacketInfo) && ctlOpts[ctlPacketInfo].name > 0 { - b = ctlOpts[ctlPacketInfo].marshal(b, nil) - } - if opt.isset(FlagPathMTU) && ctlOpts[ctlPathMTU].name > 0 { - b = ctlOpts[ctlPathMTU].marshal(b, nil) - } - } - opt.RUnlock() - return -} - -func parseControlMessage(b []byte) (*ControlMessage, error) { - if len(b) == 0 { - return nil, nil - } - cmsgs, err := syscall.ParseSocketControlMessage(b) - if err != nil { - return nil, os.NewSyscallError("parse socket control message", err) - } - cm := &ControlMessage{} - for _, m := range cmsgs { - if m.Header.Level != iana.ProtocolIPv6 { - continue - } - switch int(m.Header.Type) { - case ctlOpts[ctlTrafficClass].name: - ctlOpts[ctlTrafficClass].parse(cm, m.Data[:]) - case ctlOpts[ctlHopLimit].name: - ctlOpts[ctlHopLimit].parse(cm, m.Data[:]) - case ctlOpts[ctlPacketInfo].name: - ctlOpts[ctlPacketInfo].parse(cm, m.Data[:]) - case ctlOpts[ctlPathMTU].name: - ctlOpts[ctlPathMTU].parse(cm, m.Data[:]) - } - } - return cm, nil -} - -func marshalControlMessage(cm *ControlMessage) (oob []byte) { - if cm == nil { - return - } - var l int - tclass := false - if ctlOpts[ctlTrafficClass].name > 0 && cm.TrafficClass > 0 { - tclass = true - l += syscall.CmsgSpace(ctlOpts[ctlTrafficClass].length) - } - hoplimit := false - if ctlOpts[ctlHopLimit].name > 0 && cm.HopLimit > 0 { - hoplimit = true - l += syscall.CmsgSpace(ctlOpts[ctlHopLimit].length) - } - pktinfo := false - if ctlOpts[ctlPacketInfo].name > 0 && (cm.Src.To16() != nil && cm.Src.To4() == nil || cm.IfIndex > 0) { - pktinfo = true - l += syscall.CmsgSpace(ctlOpts[ctlPacketInfo].length) - } - nexthop := false - if ctlOpts[ctlNextHop].name > 0 && cm.NextHop.To16() != nil && cm.NextHop.To4() == nil { - nexthop = true - l += syscall.CmsgSpace(ctlOpts[ctlNextHop].length) - } - if l > 0 { - oob = make([]byte, l) - b := oob - if tclass { - b = ctlOpts[ctlTrafficClass].marshal(b, cm) - } - if hoplimit { - b = ctlOpts[ctlHopLimit].marshal(b, cm) - } - if pktinfo { - b = ctlOpts[ctlPacketInfo].marshal(b, cm) - } - if nexthop { - b = ctlOpts[ctlNextHop].marshal(b, cm) - } - } - return -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_windows.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_windows.go deleted file mode 100644 index 72fdc1b0..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/control_windows.go +++ /dev/null @@ -1,27 +0,0 @@ -// 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 ipv6 - -import "syscall" - -func setControlMessage(fd syscall.Handle, opt *rawOpt, cf ControlFlags, on bool) error { - // TODO(mikio): implement this - return syscall.EWINDOWS -} - -func newControlMessage(opt *rawOpt) (oob []byte) { - // TODO(mikio): implement this - return nil -} - -func parseControlMessage(b []byte) (*ControlMessage, error) { - // TODO(mikio): implement this - return nil, syscall.EWINDOWS -} - -func marshalControlMessage(cm *ControlMessage) (oob []byte) { - // TODO(mikio): implement this - return nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_darwin.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_darwin.go deleted file mode 100644 index 4c7f476a..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_darwin.go +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package ipv6 - -/* -#define __APPLE_USE_RFC_3542 -#include -#include -*/ -import "C" - -const ( - sysIPV6_UNICAST_HOPS = C.IPV6_UNICAST_HOPS - sysIPV6_MULTICAST_IF = C.IPV6_MULTICAST_IF - sysIPV6_MULTICAST_HOPS = C.IPV6_MULTICAST_HOPS - sysIPV6_MULTICAST_LOOP = C.IPV6_MULTICAST_LOOP - sysIPV6_JOIN_GROUP = C.IPV6_JOIN_GROUP - sysIPV6_LEAVE_GROUP = C.IPV6_LEAVE_GROUP - - sysIPV6_PORTRANGE = C.IPV6_PORTRANGE - sysICMP6_FILTER = C.ICMP6_FILTER - sysIPV6_2292PKTINFO = C.IPV6_2292PKTINFO - sysIPV6_2292HOPLIMIT = C.IPV6_2292HOPLIMIT - sysIPV6_2292NEXTHOP = C.IPV6_2292NEXTHOP - sysIPV6_2292HOPOPTS = C.IPV6_2292HOPOPTS - sysIPV6_2292DSTOPTS = C.IPV6_2292DSTOPTS - sysIPV6_2292RTHDR = C.IPV6_2292RTHDR - - sysIPV6_2292PKTOPTIONS = C.IPV6_2292PKTOPTIONS - - sysIPV6_CHECKSUM = C.IPV6_CHECKSUM - sysIPV6_V6ONLY = C.IPV6_V6ONLY - - sysIPV6_IPSEC_POLICY = C.IPV6_IPSEC_POLICY - - sysIPV6_RECVTCLASS = C.IPV6_RECVTCLASS - sysIPV6_TCLASS = C.IPV6_TCLASS - - sysIPV6_RTHDRDSTOPTS = C.IPV6_RTHDRDSTOPTS - - sysIPV6_RECVPKTINFO = C.IPV6_RECVPKTINFO - - sysIPV6_RECVHOPLIMIT = C.IPV6_RECVHOPLIMIT - sysIPV6_RECVRTHDR = C.IPV6_RECVRTHDR - sysIPV6_RECVHOPOPTS = C.IPV6_RECVHOPOPTS - sysIPV6_RECVDSTOPTS = C.IPV6_RECVDSTOPTS - - sysIPV6_USE_MIN_MTU = C.IPV6_USE_MIN_MTU - sysIPV6_RECVPATHMTU = C.IPV6_RECVPATHMTU - - sysIPV6_PATHMTU = C.IPV6_PATHMTU - - sysIPV6_PKTINFO = C.IPV6_PKTINFO - sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT - sysIPV6_NEXTHOP = C.IPV6_NEXTHOP - sysIPV6_HOPOPTS = C.IPV6_HOPOPTS - sysIPV6_DSTOPTS = C.IPV6_DSTOPTS - sysIPV6_RTHDR = C.IPV6_RTHDR - - sysIPV6_AUTOFLOWLABEL = C.IPV6_AUTOFLOWLABEL - - sysIPV6_DONTFRAG = C.IPV6_DONTFRAG - - sysIPV6_PREFER_TEMPADDR = C.IPV6_PREFER_TEMPADDR - - sysIPV6_MSFILTER = C.IPV6_MSFILTER - sysMCAST_JOIN_GROUP = C.MCAST_JOIN_GROUP - sysMCAST_LEAVE_GROUP = C.MCAST_LEAVE_GROUP - sysMCAST_JOIN_SOURCE_GROUP = C.MCAST_JOIN_SOURCE_GROUP - sysMCAST_LEAVE_SOURCE_GROUP = C.MCAST_LEAVE_SOURCE_GROUP - sysMCAST_BLOCK_SOURCE = C.MCAST_BLOCK_SOURCE - sysMCAST_UNBLOCK_SOURCE = C.MCAST_UNBLOCK_SOURCE - - sysIPV6_BOUND_IF = C.IPV6_BOUND_IF - - sysIPV6_PORTRANGE_DEFAULT = C.IPV6_PORTRANGE_DEFAULT - sysIPV6_PORTRANGE_HIGH = C.IPV6_PORTRANGE_HIGH - sysIPV6_PORTRANGE_LOW = C.IPV6_PORTRANGE_LOW - - sysSizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage - sysSizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - sysSizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - sysSizeofIPv6Mtuinfo = C.sizeof_struct_ip6_mtuinfo - - sysSizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - sysSizeofGroupReq = C.sizeof_struct_group_req - sysSizeofGroupSourceReq = C.sizeof_struct_group_source_req - - sysSizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -type sysSockaddrStorage C.struct_sockaddr_storage - -type sysSockaddrInet6 C.struct_sockaddr_in6 - -type sysInet6Pktinfo C.struct_in6_pktinfo - -type sysIPv6Mtuinfo C.struct_ip6_mtuinfo - -type sysIPv6Mreq C.struct_ipv6_mreq - -type sysICMPv6Filter C.struct_icmp6_filter - -type sysGroupReq C.struct_group_req - -type sysGroupSourceReq C.struct_group_source_req diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_dragonfly.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_dragonfly.go deleted file mode 100644 index c72487ce..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_dragonfly.go +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package ipv6 - -/* -#include -#include - -#include -#include -*/ -import "C" - -const ( - sysIPV6_UNICAST_HOPS = C.IPV6_UNICAST_HOPS - sysIPV6_MULTICAST_IF = C.IPV6_MULTICAST_IF - sysIPV6_MULTICAST_HOPS = C.IPV6_MULTICAST_HOPS - sysIPV6_MULTICAST_LOOP = C.IPV6_MULTICAST_LOOP - sysIPV6_JOIN_GROUP = C.IPV6_JOIN_GROUP - sysIPV6_LEAVE_GROUP = C.IPV6_LEAVE_GROUP - sysIPV6_PORTRANGE = C.IPV6_PORTRANGE - sysICMP6_FILTER = C.ICMP6_FILTER - - sysIPV6_CHECKSUM = C.IPV6_CHECKSUM - sysIPV6_V6ONLY = C.IPV6_V6ONLY - - sysIPV6_IPSEC_POLICY = C.IPV6_IPSEC_POLICY - - sysIPV6_RTHDRDSTOPTS = C.IPV6_RTHDRDSTOPTS - sysIPV6_RECVPKTINFO = C.IPV6_RECVPKTINFO - sysIPV6_RECVHOPLIMIT = C.IPV6_RECVHOPLIMIT - sysIPV6_RECVRTHDR = C.IPV6_RECVRTHDR - sysIPV6_RECVHOPOPTS = C.IPV6_RECVHOPOPTS - sysIPV6_RECVDSTOPTS = C.IPV6_RECVDSTOPTS - - sysIPV6_USE_MIN_MTU = C.IPV6_USE_MIN_MTU - sysIPV6_RECVPATHMTU = C.IPV6_RECVPATHMTU - - sysIPV6_PATHMTU = C.IPV6_PATHMTU - - sysIPV6_PKTINFO = C.IPV6_PKTINFO - sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT - sysIPV6_NEXTHOP = C.IPV6_NEXTHOP - sysIPV6_HOPOPTS = C.IPV6_HOPOPTS - sysIPV6_DSTOPTS = C.IPV6_DSTOPTS - sysIPV6_RTHDR = C.IPV6_RTHDR - - sysIPV6_RECVTCLASS = C.IPV6_RECVTCLASS - - sysIPV6_AUTOFLOWLABEL = C.IPV6_AUTOFLOWLABEL - - sysIPV6_TCLASS = C.IPV6_TCLASS - sysIPV6_DONTFRAG = C.IPV6_DONTFRAG - - sysIPV6_PREFER_TEMPADDR = C.IPV6_PREFER_TEMPADDR - - sysIPV6_PORTRANGE_DEFAULT = C.IPV6_PORTRANGE_DEFAULT - sysIPV6_PORTRANGE_HIGH = C.IPV6_PORTRANGE_HIGH - sysIPV6_PORTRANGE_LOW = C.IPV6_PORTRANGE_LOW - - sysSizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - sysSizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - sysSizeofIPv6Mtuinfo = C.sizeof_struct_ip6_mtuinfo - - sysSizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - - sysSizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -type sysSockaddrInet6 C.struct_sockaddr_in6 - -type sysInet6Pktinfo C.struct_in6_pktinfo - -type sysIPv6Mtuinfo C.struct_ip6_mtuinfo - -type sysIPv6Mreq C.struct_ipv6_mreq - -type sysICMPv6Filter C.struct_icmp6_filter diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_freebsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_freebsd.go deleted file mode 100644 index de199ec6..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_freebsd.go +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package ipv6 - -/* -#include -#include - -#include -#include -*/ -import "C" - -const ( - sysIPV6_UNICAST_HOPS = C.IPV6_UNICAST_HOPS - sysIPV6_MULTICAST_IF = C.IPV6_MULTICAST_IF - sysIPV6_MULTICAST_HOPS = C.IPV6_MULTICAST_HOPS - sysIPV6_MULTICAST_LOOP = C.IPV6_MULTICAST_LOOP - sysIPV6_JOIN_GROUP = C.IPV6_JOIN_GROUP - sysIPV6_LEAVE_GROUP = C.IPV6_LEAVE_GROUP - sysIPV6_PORTRANGE = C.IPV6_PORTRANGE - sysICMP6_FILTER = C.ICMP6_FILTER - - sysIPV6_CHECKSUM = C.IPV6_CHECKSUM - sysIPV6_V6ONLY = C.IPV6_V6ONLY - - sysIPV6_IPSEC_POLICY = C.IPV6_IPSEC_POLICY - - sysIPV6_RTHDRDSTOPTS = C.IPV6_RTHDRDSTOPTS - - sysIPV6_RECVPKTINFO = C.IPV6_RECVPKTINFO - sysIPV6_RECVHOPLIMIT = C.IPV6_RECVHOPLIMIT - sysIPV6_RECVRTHDR = C.IPV6_RECVRTHDR - sysIPV6_RECVHOPOPTS = C.IPV6_RECVHOPOPTS - sysIPV6_RECVDSTOPTS = C.IPV6_RECVDSTOPTS - - sysIPV6_USE_MIN_MTU = C.IPV6_USE_MIN_MTU - sysIPV6_RECVPATHMTU = C.IPV6_RECVPATHMTU - - sysIPV6_PATHMTU = C.IPV6_PATHMTU - - sysIPV6_PKTINFO = C.IPV6_PKTINFO - sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT - sysIPV6_NEXTHOP = C.IPV6_NEXTHOP - sysIPV6_HOPOPTS = C.IPV6_HOPOPTS - sysIPV6_DSTOPTS = C.IPV6_DSTOPTS - sysIPV6_RTHDR = C.IPV6_RTHDR - - sysIPV6_RECVTCLASS = C.IPV6_RECVTCLASS - - sysIPV6_AUTOFLOWLABEL = C.IPV6_AUTOFLOWLABEL - - sysIPV6_TCLASS = C.IPV6_TCLASS - sysIPV6_DONTFRAG = C.IPV6_DONTFRAG - - sysIPV6_PREFER_TEMPADDR = C.IPV6_PREFER_TEMPADDR - - sysIPV6_BINDANY = C.IPV6_BINDANY - - sysIPV6_MSFILTER = C.IPV6_MSFILTER - - sysMCAST_JOIN_GROUP = C.MCAST_JOIN_GROUP - sysMCAST_LEAVE_GROUP = C.MCAST_LEAVE_GROUP - sysMCAST_JOIN_SOURCE_GROUP = C.MCAST_JOIN_SOURCE_GROUP - sysMCAST_LEAVE_SOURCE_GROUP = C.MCAST_LEAVE_SOURCE_GROUP - sysMCAST_BLOCK_SOURCE = C.MCAST_BLOCK_SOURCE - sysMCAST_UNBLOCK_SOURCE = C.MCAST_UNBLOCK_SOURCE - - sysIPV6_PORTRANGE_DEFAULT = C.IPV6_PORTRANGE_DEFAULT - sysIPV6_PORTRANGE_HIGH = C.IPV6_PORTRANGE_HIGH - sysIPV6_PORTRANGE_LOW = C.IPV6_PORTRANGE_LOW - - sysSizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage - sysSizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - sysSizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - sysSizeofIPv6Mtuinfo = C.sizeof_struct_ip6_mtuinfo - - sysSizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - sysSizeofGroupReq = C.sizeof_struct_group_req - sysSizeofGroupSourceReq = C.sizeof_struct_group_source_req - - sysSizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -type sysSockaddrStorage C.struct_sockaddr_storage - -type sysSockaddrInet6 C.struct_sockaddr_in6 - -type sysInet6Pktinfo C.struct_in6_pktinfo - -type sysIPv6Mtuinfo C.struct_ip6_mtuinfo - -type sysIPv6Mreq C.struct_ipv6_mreq - -type sysGroupReq C.struct_group_req - -type sysGroupSourceReq C.struct_group_source_req - -type sysICMPv6Filter C.struct_icmp6_filter diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_linux.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_linux.go deleted file mode 100644 index d83abce3..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_linux.go +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package ipv6 - -/* -#include -#include -#include -#include -*/ -import "C" - -const ( - sysIPV6_ADDRFORM = C.IPV6_ADDRFORM - sysIPV6_2292PKTINFO = C.IPV6_2292PKTINFO - sysIPV6_2292HOPOPTS = C.IPV6_2292HOPOPTS - sysIPV6_2292DSTOPTS = C.IPV6_2292DSTOPTS - sysIPV6_2292RTHDR = C.IPV6_2292RTHDR - sysIPV6_2292PKTOPTIONS = C.IPV6_2292PKTOPTIONS - sysIPV6_CHECKSUM = C.IPV6_CHECKSUM - sysIPV6_2292HOPLIMIT = C.IPV6_2292HOPLIMIT - sysIPV6_NEXTHOP = C.IPV6_NEXTHOP - sysIPV6_FLOWINFO = C.IPV6_FLOWINFO - - sysIPV6_UNICAST_HOPS = C.IPV6_UNICAST_HOPS - sysIPV6_MULTICAST_IF = C.IPV6_MULTICAST_IF - sysIPV6_MULTICAST_HOPS = C.IPV6_MULTICAST_HOPS - sysIPV6_MULTICAST_LOOP = C.IPV6_MULTICAST_LOOP - sysIPV6_ADD_MEMBERSHIP = C.IPV6_ADD_MEMBERSHIP - sysIPV6_DROP_MEMBERSHIP = C.IPV6_DROP_MEMBERSHIP - sysMCAST_JOIN_GROUP = C.MCAST_JOIN_GROUP - sysMCAST_LEAVE_GROUP = C.MCAST_LEAVE_GROUP - sysMCAST_JOIN_SOURCE_GROUP = C.MCAST_JOIN_SOURCE_GROUP - sysMCAST_LEAVE_SOURCE_GROUP = C.MCAST_LEAVE_SOURCE_GROUP - sysMCAST_BLOCK_SOURCE = C.MCAST_BLOCK_SOURCE - sysMCAST_UNBLOCK_SOURCE = C.MCAST_UNBLOCK_SOURCE - sysMCAST_MSFILTER = C.MCAST_MSFILTER - sysIPV6_ROUTER_ALERT = C.IPV6_ROUTER_ALERT - sysIPV6_MTU_DISCOVER = C.IPV6_MTU_DISCOVER - sysIPV6_MTU = C.IPV6_MTU - sysIPV6_RECVERR = C.IPV6_RECVERR - sysIPV6_V6ONLY = C.IPV6_V6ONLY - sysIPV6_JOIN_ANYCAST = C.IPV6_JOIN_ANYCAST - sysIPV6_LEAVE_ANYCAST = C.IPV6_LEAVE_ANYCAST - - //sysIPV6_PMTUDISC_DONT = C.IPV6_PMTUDISC_DONT - //sysIPV6_PMTUDISC_WANT = C.IPV6_PMTUDISC_WANT - //sysIPV6_PMTUDISC_DO = C.IPV6_PMTUDISC_DO - //sysIPV6_PMTUDISC_PROBE = C.IPV6_PMTUDISC_PROBE - //sysIPV6_PMTUDISC_INTERFACE = C.IPV6_PMTUDISC_INTERFACE - //sysIPV6_PMTUDISC_OMIT = C.IPV6_PMTUDISC_OMIT - - sysIPV6_FLOWLABEL_MGR = C.IPV6_FLOWLABEL_MGR - sysIPV6_FLOWINFO_SEND = C.IPV6_FLOWINFO_SEND - - sysIPV6_IPSEC_POLICY = C.IPV6_IPSEC_POLICY - sysIPV6_XFRM_POLICY = C.IPV6_XFRM_POLICY - - sysIPV6_RECVPKTINFO = C.IPV6_RECVPKTINFO - sysIPV6_PKTINFO = C.IPV6_PKTINFO - sysIPV6_RECVHOPLIMIT = C.IPV6_RECVHOPLIMIT - sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT - sysIPV6_RECVHOPOPTS = C.IPV6_RECVHOPOPTS - sysIPV6_HOPOPTS = C.IPV6_HOPOPTS - sysIPV6_RTHDRDSTOPTS = C.IPV6_RTHDRDSTOPTS - sysIPV6_RECVRTHDR = C.IPV6_RECVRTHDR - sysIPV6_RTHDR = C.IPV6_RTHDR - sysIPV6_RECVDSTOPTS = C.IPV6_RECVDSTOPTS - sysIPV6_DSTOPTS = C.IPV6_DSTOPTS - sysIPV6_RECVPATHMTU = C.IPV6_RECVPATHMTU - sysIPV6_PATHMTU = C.IPV6_PATHMTU - sysIPV6_DONTFRAG = C.IPV6_DONTFRAG - - sysIPV6_RECVTCLASS = C.IPV6_RECVTCLASS - sysIPV6_TCLASS = C.IPV6_TCLASS - - sysIPV6_ADDR_PREFERENCES = C.IPV6_ADDR_PREFERENCES - - sysIPV6_PREFER_SRC_TMP = C.IPV6_PREFER_SRC_TMP - sysIPV6_PREFER_SRC_PUBLIC = C.IPV6_PREFER_SRC_PUBLIC - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = C.IPV6_PREFER_SRC_PUBTMP_DEFAULT - sysIPV6_PREFER_SRC_COA = C.IPV6_PREFER_SRC_COA - sysIPV6_PREFER_SRC_HOME = C.IPV6_PREFER_SRC_HOME - sysIPV6_PREFER_SRC_CGA = C.IPV6_PREFER_SRC_CGA - sysIPV6_PREFER_SRC_NONCGA = C.IPV6_PREFER_SRC_NONCGA - - sysIPV6_MINHOPCOUNT = C.IPV6_MINHOPCOUNT - - sysIPV6_ORIGDSTADDR = C.IPV6_ORIGDSTADDR - sysIPV6_RECVORIGDSTADDR = C.IPV6_RECVORIGDSTADDR - sysIPV6_TRANSPARENT = C.IPV6_TRANSPARENT - sysIPV6_UNICAST_IF = C.IPV6_UNICAST_IF - - sysICMPV6_FILTER = C.ICMPV6_FILTER - - sysICMPV6_FILTER_BLOCK = C.ICMPV6_FILTER_BLOCK - sysICMPV6_FILTER_PASS = C.ICMPV6_FILTER_PASS - sysICMPV6_FILTER_BLOCKOTHERS = C.ICMPV6_FILTER_BLOCKOTHERS - sysICMPV6_FILTER_PASSONLY = C.ICMPV6_FILTER_PASSONLY - - sysSizeofKernelSockaddrStorage = C.sizeof_struct___kernel_sockaddr_storage - sysSizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - sysSizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - sysSizeofIPv6Mtuinfo = C.sizeof_struct_ip6_mtuinfo - sysSizeofIPv6FlowlabelReq = C.sizeof_struct_in6_flowlabel_req - - sysSizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - sysSizeofGroupReq = C.sizeof_struct_group_req - sysSizeofGroupSourceReq = C.sizeof_struct_group_source_req - - sysSizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -type sysKernelSockaddrStorage C.struct___kernel_sockaddr_storage - -type sysSockaddrInet6 C.struct_sockaddr_in6 - -type sysInet6Pktinfo C.struct_in6_pktinfo - -type sysIPv6Mtuinfo C.struct_ip6_mtuinfo - -type sysIPv6FlowlabelReq C.struct_in6_flowlabel_req - -type sysIPv6Mreq C.struct_ipv6_mreq - -type sysGroupReq C.struct_group_req - -type sysGroupSourceReq C.struct_group_source_req - -type sysICMPv6Filter C.struct_icmp6_filter diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_netbsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_netbsd.go deleted file mode 100644 index 7bd09e8e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_netbsd.go +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package ipv6 - -/* -#include -#include - -#include -#include -*/ -import "C" - -const ( - sysIPV6_UNICAST_HOPS = C.IPV6_UNICAST_HOPS - sysIPV6_MULTICAST_IF = C.IPV6_MULTICAST_IF - sysIPV6_MULTICAST_HOPS = C.IPV6_MULTICAST_HOPS - sysIPV6_MULTICAST_LOOP = C.IPV6_MULTICAST_LOOP - sysIPV6_JOIN_GROUP = C.IPV6_JOIN_GROUP - sysIPV6_LEAVE_GROUP = C.IPV6_LEAVE_GROUP - sysIPV6_PORTRANGE = C.IPV6_PORTRANGE - sysICMP6_FILTER = C.ICMP6_FILTER - - sysIPV6_CHECKSUM = C.IPV6_CHECKSUM - sysIPV6_V6ONLY = C.IPV6_V6ONLY - - sysIPV6_IPSEC_POLICY = C.IPV6_IPSEC_POLICY - - sysIPV6_RTHDRDSTOPTS = C.IPV6_RTHDRDSTOPTS - - sysIPV6_RECVPKTINFO = C.IPV6_RECVPKTINFO - sysIPV6_RECVHOPLIMIT = C.IPV6_RECVHOPLIMIT - sysIPV6_RECVRTHDR = C.IPV6_RECVRTHDR - sysIPV6_RECVHOPOPTS = C.IPV6_RECVHOPOPTS - sysIPV6_RECVDSTOPTS = C.IPV6_RECVDSTOPTS - - sysIPV6_USE_MIN_MTU = C.IPV6_USE_MIN_MTU - sysIPV6_RECVPATHMTU = C.IPV6_RECVPATHMTU - sysIPV6_PATHMTU = C.IPV6_PATHMTU - - sysIPV6_PKTINFO = C.IPV6_PKTINFO - sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT - sysIPV6_NEXTHOP = C.IPV6_NEXTHOP - sysIPV6_HOPOPTS = C.IPV6_HOPOPTS - sysIPV6_DSTOPTS = C.IPV6_DSTOPTS - sysIPV6_RTHDR = C.IPV6_RTHDR - - sysIPV6_RECVTCLASS = C.IPV6_RECVTCLASS - - sysIPV6_TCLASS = C.IPV6_TCLASS - sysIPV6_DONTFRAG = C.IPV6_DONTFRAG - - sysIPV6_PORTRANGE_DEFAULT = C.IPV6_PORTRANGE_DEFAULT - sysIPV6_PORTRANGE_HIGH = C.IPV6_PORTRANGE_HIGH - sysIPV6_PORTRANGE_LOW = C.IPV6_PORTRANGE_LOW - - sysSizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - sysSizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - sysSizeofIPv6Mtuinfo = C.sizeof_struct_ip6_mtuinfo - - sysSizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - - sysSizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -type sysSockaddrInet6 C.struct_sockaddr_in6 - -type sysInet6Pktinfo C.struct_in6_pktinfo - -type sysIPv6Mtuinfo C.struct_ip6_mtuinfo - -type sysIPv6Mreq C.struct_ipv6_mreq - -type sysICMPv6Filter C.struct_icmp6_filter diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_openbsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_openbsd.go deleted file mode 100644 index 6796d9b2..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_openbsd.go +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package ipv6 - -/* -#include -#include - -#include -#include -*/ -import "C" - -const ( - sysIPV6_UNICAST_HOPS = C.IPV6_UNICAST_HOPS - sysIPV6_MULTICAST_IF = C.IPV6_MULTICAST_IF - sysIPV6_MULTICAST_HOPS = C.IPV6_MULTICAST_HOPS - sysIPV6_MULTICAST_LOOP = C.IPV6_MULTICAST_LOOP - sysIPV6_JOIN_GROUP = C.IPV6_JOIN_GROUP - sysIPV6_LEAVE_GROUP = C.IPV6_LEAVE_GROUP - sysIPV6_PORTRANGE = C.IPV6_PORTRANGE - sysICMP6_FILTER = C.ICMP6_FILTER - - sysIPV6_CHECKSUM = C.IPV6_CHECKSUM - sysIPV6_V6ONLY = C.IPV6_V6ONLY - - sysIPV6_RTHDRDSTOPTS = C.IPV6_RTHDRDSTOPTS - - sysIPV6_RECVPKTINFO = C.IPV6_RECVPKTINFO - sysIPV6_RECVHOPLIMIT = C.IPV6_RECVHOPLIMIT - sysIPV6_RECVRTHDR = C.IPV6_RECVRTHDR - sysIPV6_RECVHOPOPTS = C.IPV6_RECVHOPOPTS - sysIPV6_RECVDSTOPTS = C.IPV6_RECVDSTOPTS - - sysIPV6_USE_MIN_MTU = C.IPV6_USE_MIN_MTU - sysIPV6_RECVPATHMTU = C.IPV6_RECVPATHMTU - - sysIPV6_PATHMTU = C.IPV6_PATHMTU - - sysIPV6_PKTINFO = C.IPV6_PKTINFO - sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT - sysIPV6_NEXTHOP = C.IPV6_NEXTHOP - sysIPV6_HOPOPTS = C.IPV6_HOPOPTS - sysIPV6_DSTOPTS = C.IPV6_DSTOPTS - sysIPV6_RTHDR = C.IPV6_RTHDR - - sysIPV6_AUTH_LEVEL = C.IPV6_AUTH_LEVEL - sysIPV6_ESP_TRANS_LEVEL = C.IPV6_ESP_TRANS_LEVEL - sysIPV6_ESP_NETWORK_LEVEL = C.IPV6_ESP_NETWORK_LEVEL - sysIPSEC6_OUTSA = C.IPSEC6_OUTSA - sysIPV6_RECVTCLASS = C.IPV6_RECVTCLASS - - sysIPV6_AUTOFLOWLABEL = C.IPV6_AUTOFLOWLABEL - sysIPV6_IPCOMP_LEVEL = C.IPV6_IPCOMP_LEVEL - - sysIPV6_TCLASS = C.IPV6_TCLASS - sysIPV6_DONTFRAG = C.IPV6_DONTFRAG - sysIPV6_PIPEX = C.IPV6_PIPEX - - sysIPV6_RTABLE = C.IPV6_RTABLE - - sysIPV6_PORTRANGE_DEFAULT = C.IPV6_PORTRANGE_DEFAULT - sysIPV6_PORTRANGE_HIGH = C.IPV6_PORTRANGE_HIGH - sysIPV6_PORTRANGE_LOW = C.IPV6_PORTRANGE_LOW - - sysSizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - sysSizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - sysSizeofIPv6Mtuinfo = C.sizeof_struct_ip6_mtuinfo - - sysSizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - - sysSizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -type sysSockaddrInet6 C.struct_sockaddr_in6 - -type sysInet6Pktinfo C.struct_in6_pktinfo - -type sysIPv6Mtuinfo C.struct_ip6_mtuinfo - -type sysIPv6Mreq C.struct_ipv6_mreq - -type sysICMPv6Filter C.struct_icmp6_filter diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_solaris.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_solaris.go deleted file mode 100644 index 972b1712..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/defs_solaris.go +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package ipv6 - -/* -#include -#include -*/ -import "C" - -const ( - sysIPV6_UNICAST_HOPS = C.IPV6_UNICAST_HOPS - sysIPV6_MULTICAST_IF = C.IPV6_MULTICAST_IF - sysIPV6_MULTICAST_HOPS = C.IPV6_MULTICAST_HOPS - sysIPV6_MULTICAST_LOOP = C.IPV6_MULTICAST_LOOP - sysIPV6_JOIN_GROUP = C.IPV6_JOIN_GROUP - sysIPV6_LEAVE_GROUP = C.IPV6_LEAVE_GROUP - - sysIPV6_PKTINFO = C.IPV6_PKTINFO - - sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT - sysIPV6_NEXTHOP = C.IPV6_NEXTHOP - sysIPV6_HOPOPTS = C.IPV6_HOPOPTS - sysIPV6_DSTOPTS = C.IPV6_DSTOPTS - - sysIPV6_RTHDR = C.IPV6_RTHDR - sysIPV6_RTHDRDSTOPTS = C.IPV6_RTHDRDSTOPTS - - sysIPV6_RECVPKTINFO = C.IPV6_RECVPKTINFO - sysIPV6_RECVHOPLIMIT = C.IPV6_RECVHOPLIMIT - sysIPV6_RECVHOPOPTS = C.IPV6_RECVHOPOPTS - - sysIPV6_RECVRTHDR = C.IPV6_RECVRTHDR - - sysIPV6_RECVRTHDRDSTOPTS = C.IPV6_RECVRTHDRDSTOPTS - - sysIPV6_CHECKSUM = C.IPV6_CHECKSUM - sysIPV6_RECVTCLASS = C.IPV6_RECVTCLASS - sysIPV6_USE_MIN_MTU = C.IPV6_USE_MIN_MTU - sysIPV6_DONTFRAG = C.IPV6_DONTFRAG - sysIPV6_SEC_OPT = C.IPV6_SEC_OPT - sysIPV6_SRC_PREFERENCES = C.IPV6_SRC_PREFERENCES - sysIPV6_RECVPATHMTU = C.IPV6_RECVPATHMTU - sysIPV6_PATHMTU = C.IPV6_PATHMTU - sysIPV6_TCLASS = C.IPV6_TCLASS - sysIPV6_V6ONLY = C.IPV6_V6ONLY - - sysIPV6_RECVDSTOPTS = C.IPV6_RECVDSTOPTS - - sysIPV6_PREFER_SRC_HOME = C.IPV6_PREFER_SRC_HOME - sysIPV6_PREFER_SRC_COA = C.IPV6_PREFER_SRC_COA - sysIPV6_PREFER_SRC_PUBLIC = C.IPV6_PREFER_SRC_PUBLIC - sysIPV6_PREFER_SRC_TMP = C.IPV6_PREFER_SRC_TMP - sysIPV6_PREFER_SRC_NONCGA = C.IPV6_PREFER_SRC_NONCGA - sysIPV6_PREFER_SRC_CGA = C.IPV6_PREFER_SRC_CGA - - sysIPV6_PREFER_SRC_MIPMASK = C.IPV6_PREFER_SRC_MIPMASK - sysIPV6_PREFER_SRC_MIPDEFAULT = C.IPV6_PREFER_SRC_MIPDEFAULT - sysIPV6_PREFER_SRC_TMPMASK = C.IPV6_PREFER_SRC_TMPMASK - sysIPV6_PREFER_SRC_TMPDEFAULT = C.IPV6_PREFER_SRC_TMPDEFAULT - sysIPV6_PREFER_SRC_CGAMASK = C.IPV6_PREFER_SRC_CGAMASK - sysIPV6_PREFER_SRC_CGADEFAULT = C.IPV6_PREFER_SRC_CGADEFAULT - - sysIPV6_PREFER_SRC_MASK = C.IPV6_PREFER_SRC_MASK - - sysIPV6_PREFER_SRC_DEFAULT = C.IPV6_PREFER_SRC_DEFAULT - - sysIPV6_BOUND_IF = C.IPV6_BOUND_IF - sysIPV6_UNSPEC_SRC = C.IPV6_UNSPEC_SRC - - sysICMP6_FILTER = C.ICMP6_FILTER - - sysSizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - sysSizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - sysSizeofIPv6Mtuinfo = C.sizeof_struct_ip6_mtuinfo - - sysSizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - - sysSizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -type sysSockaddrInet6 C.struct_sockaddr_in6 - -type sysInet6Pktinfo C.struct_in6_pktinfo - -type sysIPv6Mtuinfo C.struct_ip6_mtuinfo - -type sysIPv6Mreq C.struct_ipv6_mreq - -type sysICMPv6Filter C.struct_icmp6_filter diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/dgramopt_posix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/dgramopt_posix.go deleted file mode 100644 index 93ff2f1a..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/dgramopt_posix.go +++ /dev/null @@ -1,288 +0,0 @@ -// 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. - -// +build darwin dragonfly freebsd linux netbsd openbsd windows - -package ipv6 - -import ( - "net" - "syscall" -) - -// MulticastHopLimit returns the hop limit field value for outgoing -// multicast packets. -func (c *dgramOpt) MulticastHopLimit() (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return 0, err - } - return getInt(fd, &sockOpts[ssoMulticastHopLimit]) -} - -// SetMulticastHopLimit sets the hop limit field value for future -// outgoing multicast packets. -func (c *dgramOpt) SetMulticastHopLimit(hoplim int) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - return setInt(fd, &sockOpts[ssoMulticastHopLimit], hoplim) -} - -// MulticastInterface returns the default interface for multicast -// packet transmissions. -func (c *dgramOpt) MulticastInterface() (*net.Interface, error) { - if !c.ok() { - return nil, syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return nil, err - } - return getInterface(fd, &sockOpts[ssoMulticastInterface]) -} - -// SetMulticastInterface sets the default interface for future -// multicast packet transmissions. -func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - return setInterface(fd, &sockOpts[ssoMulticastInterface], ifi) -} - -// MulticastLoopback reports whether transmitted multicast packets -// should be copied and send back to the originator. -func (c *dgramOpt) MulticastLoopback() (bool, error) { - if !c.ok() { - return false, syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return false, err - } - on, err := getInt(fd, &sockOpts[ssoMulticastLoopback]) - if err != nil { - return false, err - } - return on == 1, nil -} - -// SetMulticastLoopback sets whether transmitted multicast packets -// should be copied and send back to the originator. -func (c *dgramOpt) SetMulticastLoopback(on bool) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - return setInt(fd, &sockOpts[ssoMulticastLoopback], boolint(on)) -} - -// JoinGroup joins the group address group on the interface ifi. -// By default all sources that can cast data to group are accepted. -// It's possible to mute and unmute data transmission from a specific -// source by using ExcludeSourceSpecificGroup and -// IncludeSourceSpecificGroup. -// JoinGroup uses the system assigned multicast interface when ifi is -// nil, although this is not recommended because the assignment -// depends on platforms and sometimes it might require routing -// configuration. -func (c *dgramOpt) JoinGroup(ifi *net.Interface, group net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - grp := netAddrToIP16(group) - if grp == nil { - return errMissingAddress - } - return setGroup(fd, &sockOpts[ssoJoinGroup], ifi, grp) -} - -// LeaveGroup leaves the group address group on the interface ifi -// regardless of whether the group is any-source group or -// source-specific group. -func (c *dgramOpt) LeaveGroup(ifi *net.Interface, group net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - grp := netAddrToIP16(group) - if grp == nil { - return errMissingAddress - } - return setGroup(fd, &sockOpts[ssoLeaveGroup], ifi, grp) -} - -// JoinSourceSpecificGroup joins the source-specific group comprising -// group and source on the interface ifi. -// JoinSourceSpecificGroup uses the system assigned multicast -// interface when ifi is nil, although this is not recommended because -// the assignment depends on platforms and sometimes it might require -// routing configuration. -func (c *dgramOpt) JoinSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - grp := netAddrToIP16(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP16(source) - if src == nil { - return errMissingAddress - } - return setSourceGroup(fd, &sockOpts[ssoJoinSourceGroup], ifi, grp, src) -} - -// LeaveSourceSpecificGroup leaves the source-specific group on the -// interface ifi. -func (c *dgramOpt) LeaveSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - grp := netAddrToIP16(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP16(source) - if src == nil { - return errMissingAddress - } - return setSourceGroup(fd, &sockOpts[ssoLeaveSourceGroup], ifi, grp, src) -} - -// ExcludeSourceSpecificGroup excludes the source-specific group from -// the already joined any-source groups by JoinGroup on the interface -// ifi. -func (c *dgramOpt) ExcludeSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - grp := netAddrToIP16(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP16(source) - if src == nil { - return errMissingAddress - } - return setSourceGroup(fd, &sockOpts[ssoBlockSourceGroup], ifi, grp, src) -} - -// IncludeSourceSpecificGroup includes the excluded source-specific -// group by ExcludeSourceSpecificGroup again on the interface ifi. -func (c *dgramOpt) IncludeSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - grp := netAddrToIP16(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP16(source) - if src == nil { - return errMissingAddress - } - return setSourceGroup(fd, &sockOpts[ssoUnblockSourceGroup], ifi, grp, src) -} - -// Checksum reports whether the kernel will compute, store or verify a -// checksum for both incoming and outgoing packets. If on is true, it -// returns an offset in bytes into the data of where the checksum -// field is located. -func (c *dgramOpt) Checksum() (on bool, offset int, err error) { - if !c.ok() { - return false, 0, syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return false, 0, err - } - offset, err = getInt(fd, &sockOpts[ssoChecksum]) - if err != nil { - return false, 0, err - } - if offset < 0 { - return false, 0, nil - } - return true, offset, nil -} - -// SetChecksum enables the kernel checksum processing. If on is ture, -// the offset should be an offset in bytes into the data of where the -// checksum field is located. -func (c *dgramOpt) SetChecksum(on bool, offset int) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - if !on { - offset = -1 - } - return setInt(fd, &sockOpts[ssoChecksum], offset) -} - -// ICMPFilter returns an ICMP filter. -func (c *dgramOpt) ICMPFilter() (*ICMPFilter, error) { - if !c.ok() { - return nil, syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return nil, err - } - return getICMPFilter(fd, &sockOpts[ssoICMPFilter]) -} - -// SetICMPFilter deploys the ICMP filter. -func (c *dgramOpt) SetICMPFilter(f *ICMPFilter) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - return setICMPFilter(fd, &sockOpts[ssoICMPFilter], f) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/dgramopt_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/dgramopt_stub.go deleted file mode 100644 index fb067fb2..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/dgramopt_stub.go +++ /dev/null @@ -1,119 +0,0 @@ -// 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. - -// +build nacl plan9 solaris - -package ipv6 - -import "net" - -// MulticastHopLimit returns the hop limit field value for outgoing -// multicast packets. -func (c *dgramOpt) MulticastHopLimit() (int, error) { - return 0, errOpNoSupport -} - -// SetMulticastHopLimit sets the hop limit field value for future -// outgoing multicast packets. -func (c *dgramOpt) SetMulticastHopLimit(hoplim int) error { - return errOpNoSupport -} - -// MulticastInterface returns the default interface for multicast -// packet transmissions. -func (c *dgramOpt) MulticastInterface() (*net.Interface, error) { - return nil, errOpNoSupport -} - -// SetMulticastInterface sets the default interface for future -// multicast packet transmissions. -func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error { - return errOpNoSupport -} - -// MulticastLoopback reports whether transmitted multicast packets -// should be copied and send back to the originator. -func (c *dgramOpt) MulticastLoopback() (bool, error) { - return false, errOpNoSupport -} - -// SetMulticastLoopback sets whether transmitted multicast packets -// should be copied and send back to the originator. -func (c *dgramOpt) SetMulticastLoopback(on bool) error { - return errOpNoSupport -} - -// JoinGroup joins the group address group on the interface ifi. -// By default all sources that can cast data to group are accepted. -// It's possible to mute and unmute data transmission from a specific -// source by using ExcludeSourceSpecificGroup and -// IncludeSourceSpecificGroup. -// JoinGroup uses the system assigned multicast interface when ifi is -// nil, although this is not recommended because the assignment -// depends on platforms and sometimes it might require routing -// configuration. -func (c *dgramOpt) JoinGroup(ifi *net.Interface, group net.Addr) error { - return errOpNoSupport -} - -// LeaveGroup leaves the group address group on the interface ifi -// regardless of whether the group is any-source group or -// source-specific group. -func (c *dgramOpt) LeaveGroup(ifi *net.Interface, group net.Addr) error { - return errOpNoSupport -} - -// JoinSourceSpecificGroup joins the source-specific group comprising -// group and source on the interface ifi. -// JoinSourceSpecificGroup uses the system assigned multicast -// interface when ifi is nil, although this is not recommended because -// the assignment depends on platforms and sometimes it might require -// routing configuration. -func (c *dgramOpt) JoinSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - return errOpNoSupport -} - -// LeaveSourceSpecificGroup leaves the source-specific group on the -// interface ifi. -func (c *dgramOpt) LeaveSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - return errOpNoSupport -} - -// ExcludeSourceSpecificGroup excludes the source-specific group from -// the already joined any-source groups by JoinGroup on the interface -// ifi. -func (c *dgramOpt) ExcludeSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - return errOpNoSupport -} - -// IncludeSourceSpecificGroup includes the excluded source-specific -// group by ExcludeSourceSpecificGroup again on the interface ifi. -func (c *dgramOpt) IncludeSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - return errOpNoSupport -} - -// Checksum reports whether the kernel will compute, store or verify a -// checksum for both incoming and outgoing packets. If on is true, it -// returns an offset in bytes into the data of where the checksum -// field is located. -func (c *dgramOpt) Checksum() (on bool, offset int, err error) { - return false, 0, errOpNoSupport -} - -// SetChecksum enables the kernel checksum processing. If on is ture, -// the offset should be an offset in bytes into the data of where the -// checksum field is located. -func (c *dgramOpt) SetChecksum(on bool, offset int) error { - return errOpNoSupport -} - -// ICMPFilter returns an ICMP filter. -func (c *dgramOpt) ICMPFilter() (*ICMPFilter, error) { - return nil, errOpNoSupport -} - -// SetICMPFilter deploys the ICMP filter. -func (c *dgramOpt) SetICMPFilter(f *ICMPFilter) error { - return errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/doc.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/doc.go deleted file mode 100644 index 7fb80a4a..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/doc.go +++ /dev/null @@ -1,240 +0,0 @@ -// 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 ipv6 implements IP-level socket options for the Internet -// Protocol version 6. -// -// The package provides IP-level socket options that allow -// manipulation of IPv6 facilities. -// -// The IPv6 protocol is defined in RFC 2460. -// Basic and advanced socket interface extensions are defined in RFC -// 3493 and RFC 3542. -// Socket interface extensions for multicast source filters are -// defined in RFC 3678. -// MLDv1 and MLDv2 are defined in RFC 2710 and RFC 3810. -// Source-specific multicast is defined in RFC 4607. -// -// -// Unicasting -// -// The options for unicasting are available for net.TCPConn, -// net.UDPConn and net.IPConn which are created as network connections -// that use the IPv6 transport. When a single TCP connection carrying -// a data flow of multiple packets needs to indicate the flow is -// important, ipv6.Conn is used to set the traffic class field on the -// IPv6 header for each packet. -// -// ln, err := net.Listen("tcp6", "[::]:1024") -// if err != nil { -// // error handling -// } -// defer ln.Close() -// for { -// c, err := ln.Accept() -// if err != nil { -// // error handling -// } -// go func(c net.Conn) { -// defer c.Close() -// -// The outgoing packets will be labeled DiffServ assured forwarding -// class 1 low drop precedence, known as AF11 packets. -// -// if err := ipv6.NewConn(c).SetTrafficClass(0x28); err != nil { -// // error handling -// } -// if _, err := c.Write(data); err != nil { -// // error handling -// } -// }(c) -// } -// -// -// Multicasting -// -// The options for multicasting are available for net.UDPConn and -// net.IPconn which are created as network connections that use the -// IPv6 transport. A few network facilities must be prepared before -// you begin multicasting, at a minimum joining network interfaces and -// multicast groups. -// -// en0, err := net.InterfaceByName("en0") -// if err != nil { -// // error handling -// } -// en1, err := net.InterfaceByIndex(911) -// if err != nil { -// // error handling -// } -// group := net.ParseIP("ff02::114") -// -// First, an application listens to an appropriate address with an -// appropriate service port. -// -// c, err := net.ListenPacket("udp6", "[::]:1024") -// if err != nil { -// // error handling -// } -// defer c.Close() -// -// Second, the application joins multicast groups, starts listening to -// the groups on the specified network interfaces. Note that the -// service port for transport layer protocol does not matter with this -// operation as joining groups affects only network and link layer -// protocols, such as IPv6 and Ethernet. -// -// p := ipv6.NewPacketConn(c) -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: group}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en1, &net.UDPAddr{IP: group}); err != nil { -// // error handling -// } -// -// The application might set per packet control message transmissions -// between the protocol stack within the kernel. When the application -// needs a destination address on an incoming packet, -// SetControlMessage of ipv6.PacketConn is used to enable control -// message transmissons. -// -// if err := p.SetControlMessage(ipv6.FlagDst, true); err != nil { -// // error handling -// } -// -// The application could identify whether the received packets are -// of interest by using the control message that contains the -// destination address of the received packet. -// -// b := make([]byte, 1500) -// for { -// n, rcm, src, err := p.ReadFrom(b) -// if err != nil { -// // error handling -// } -// if rcm.Dst.IsMulticast() { -// if rcm.Dst.Equal(group) { -// // joined group, do something -// } else { -// // unknown group, discard -// continue -// } -// } -// -// The application can also send both unicast and multicast packets. -// -// p.SetTrafficClass(0x0) -// p.SetHopLimit(16) -// if _, err := p.WriteTo(data[:n], nil, src); err != nil { -// // error handling -// } -// dst := &net.UDPAddr{IP: group, Port: 1024} -// wcm := ipv6.ControlMessage{TrafficClass: DiffServCS7, HopLimit: 1} -// for _, ifi := range []*net.Interface{en0, en1} { -// wcm.IfIndex = ifi.Index -// if _, err := p.WriteTo(data[:n], &wcm, dst); err != nil { -// // error handling -// } -// } -// } -// -// -// More multicasting -// -// An application that uses PacketConn may join multiple multicast -// groups. For example, a UDP listener with port 1024 might join two -// different groups across over two different network interfaces by -// using: -// -// c, err := net.ListenPacket("udp6", "[::]:1024") -// if err != nil { -// // error handling -// } -// defer c.Close() -// p := ipv6.NewPacketConn(c) -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::1:114")}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::2:114")}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en1, &net.UDPAddr{IP: net.ParseIP("ff02::2:114")}); err != nil { -// // error handling -// } -// -// It is possible for multiple UDP listeners that listen on the same -// UDP port to join the same multicast group. The net package will -// provide a socket that listens to a wildcard address with reusable -// UDP port when an appropriate multicast address prefix is passed to -// the net.ListenPacket or net.ListenUDP. -// -// c1, err := net.ListenPacket("udp6", "[ff02::]:1024") -// if err != nil { -// // error handling -// } -// defer c1.Close() -// c2, err := net.ListenPacket("udp6", "[ff02::]:1024") -// if err != nil { -// // error handling -// } -// defer c2.Close() -// p1 := ipv6.NewPacketConn(c1) -// if err := p1.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::114")}); err != nil { -// // error handling -// } -// p2 := ipv6.NewPacketConn(c2) -// if err := p2.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::114")}); err != nil { -// // error handling -// } -// -// Also it is possible for the application to leave or rejoin a -// multicast group on the network interface. -// -// if err := p.LeaveGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::114")}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff01::114")}); err != nil { -// // error handling -// } -// -// -// Source-specific multicasting -// -// An application that uses PacketConn on MLDv2 supported platform is -// able to join source-specific multicast groups. -// The application may use JoinSourceSpecificGroup and -// LeaveSourceSpecificGroup for the operation known as "include" mode, -// -// ssmgroup := net.UDPAddr{IP: net.ParseIP("ff32::8000:9")} -// ssmsource := net.UDPAddr{IP: net.ParseIP("fe80::cafe")} -// if err := p.JoinSourceSpecificGroup(en0, &ssmgroup, &ssmsource); err != nil { -// // error handling -// } -// if err := p.LeaveSourceSpecificGroup(en0, &ssmgroup, &ssmsource); err != nil { -// // error handling -// } -// -// or JoinGroup, ExcludeSourceSpecificGroup, -// IncludeSourceSpecificGroup and LeaveGroup for the operation known -// as "exclude" mode. -// -// exclsource := net.UDPAddr{IP: net.ParseIP("fe80::dead")} -// if err := p.JoinGroup(en0, &ssmgroup); err != nil { -// // error handling -// } -// if err := p.ExcludeSourceSpecificGroup(en0, &ssmgroup, &exclsource); err != nil { -// // error handling -// } -// if err := p.LeaveGroup(en0, &ssmgroup); err != nil { -// // error handling -// } -// -// Note that it depends on each platform implementation what happens -// when an application which runs on MLDv2 unsupported platform uses -// JoinSourceSpecificGroup and LeaveSourceSpecificGroup. -// In general the platform tries to fall back to conversations using -// MLDv1 and starts to listen to multicast traffic. -// In the fallback case, ExcludeSourceSpecificGroup and -// IncludeSourceSpecificGroup may return an error. -package ipv6 diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/endpoint.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/endpoint.go deleted file mode 100644 index 966eaa89..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/endpoint.go +++ /dev/null @@ -1,123 +0,0 @@ -// 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 ipv6 - -import ( - "net" - "syscall" - "time" -) - -// A Conn represents a network endpoint that uses IPv6 transport. -// It allows to set basic IP-level socket options such as traffic -// class and hop limit. -type Conn struct { - genericOpt -} - -type genericOpt struct { - net.Conn -} - -func (c *genericOpt) ok() bool { return c != nil && c.Conn != nil } - -// PathMTU returns a path MTU value for the destination associated -// with the endpoint. -func (c *Conn) PathMTU() (int, error) { - if !c.genericOpt.ok() { - return 0, syscall.EINVAL - } - fd, err := c.genericOpt.sysfd() - if err != nil { - return 0, err - } - _, mtu, err := getMTUInfo(fd, &sockOpts[ssoPathMTU]) - if err != nil { - return 0, err - } - return mtu, nil -} - -// NewConn returns a new Conn. -func NewConn(c net.Conn) *Conn { - return &Conn{ - genericOpt: genericOpt{Conn: c}, - } -} - -// A PacketConn represents a packet network endpoint that uses IPv6 -// transport. It is used to control several IP-level socket options -// including IPv6 header manipulation. It also provides datagram -// based network I/O methods specific to the IPv6 and higher layer -// protocols such as OSPF, GRE, and UDP. -type PacketConn struct { - genericOpt - dgramOpt - payloadHandler -} - -type dgramOpt struct { - net.PacketConn -} - -func (c *dgramOpt) ok() bool { return c != nil && c.PacketConn != nil } - -// SetControlMessage allows to receive the per packet basis IP-level -// socket options. -func (c *PacketConn) SetControlMessage(cf ControlFlags, on bool) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - fd, err := c.payloadHandler.sysfd() - if err != nil { - return err - } - return setControlMessage(fd, &c.payloadHandler.rawOpt, cf, on) -} - -// SetDeadline sets the read and write deadlines associated with the -// endpoint. -func (c *PacketConn) SetDeadline(t time.Time) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.SetDeadline(t) -} - -// SetReadDeadline sets the read deadline associated with the -// endpoint. -func (c *PacketConn) SetReadDeadline(t time.Time) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.SetReadDeadline(t) -} - -// SetWriteDeadline sets the write deadline associated with the -// endpoint. -func (c *PacketConn) SetWriteDeadline(t time.Time) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.SetWriteDeadline(t) -} - -// Close closes the endpoint. -func (c *PacketConn) Close() error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.Close() -} - -// NewPacketConn returns a new PacketConn using c as its underlying -// transport. -func NewPacketConn(c net.PacketConn) *PacketConn { - return &PacketConn{ - genericOpt: genericOpt{Conn: c.(net.Conn)}, - dgramOpt: dgramOpt{PacketConn: c}, - payloadHandler: payloadHandler{PacketConn: c}, - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/example_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/example_test.go deleted file mode 100644 index 17e18e16..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/example_test.go +++ /dev/null @@ -1,214 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ipv6_test - -import ( - "fmt" - "log" - "net" - "os" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -func ExampleConn_markingTCP() { - ln, err := net.Listen("tcp6", "[::]:1024") - if err != nil { - log.Fatal(err) - } - defer ln.Close() - - for { - c, err := ln.Accept() - if err != nil { - log.Fatal(err) - } - go func(c net.Conn) { - defer c.Close() - p := ipv6.NewConn(c) - if err := p.SetTrafficClass(0x28); err != nil { // DSCP AF11 - log.Fatal(err) - } - if err := p.SetHopLimit(128); err != nil { - log.Fatal(err) - } - if _, err := c.Write([]byte("HELLO-R-U-THERE-ACK")); err != nil { - log.Fatal(err) - } - }(c) - } -} - -func ExamplePacketConn_servingOneShotMulticastDNS() { - c, err := net.ListenPacket("udp6", "[::]:5353") // mDNS over UDP - if err != nil { - log.Fatal(err) - } - defer c.Close() - p := ipv6.NewPacketConn(c) - - en0, err := net.InterfaceByName("en0") - if err != nil { - log.Fatal(err) - } - mDNSLinkLocal := net.UDPAddr{IP: net.ParseIP("ff02::fb")} - if err := p.JoinGroup(en0, &mDNSLinkLocal); err != nil { - log.Fatal(err) - } - defer p.LeaveGroup(en0, &mDNSLinkLocal) - if err := p.SetControlMessage(ipv6.FlagDst|ipv6.FlagInterface, true); err != nil { - log.Fatal(err) - } - - var wcm ipv6.ControlMessage - b := make([]byte, 1500) - for { - _, rcm, peer, err := p.ReadFrom(b) - if err != nil { - log.Fatal(err) - } - if !rcm.Dst.IsMulticast() || !rcm.Dst.Equal(mDNSLinkLocal.IP) { - continue - } - wcm.IfIndex = rcm.IfIndex - answers := []byte("FAKE-MDNS-ANSWERS") // fake mDNS answers, you need to implement this - if _, err := p.WriteTo(answers, &wcm, peer); err != nil { - log.Fatal(err) - } - } -} - -func ExamplePacketConn_tracingIPPacketRoute() { - // Tracing an IP packet route to www.google.com. - - const host = "www.google.com" - ips, err := net.LookupIP(host) - if err != nil { - log.Fatal(err) - } - var dst net.IPAddr - for _, ip := range ips { - if ip.To16() != nil && ip.To4() == nil { - dst.IP = ip - fmt.Printf("using %v for tracing an IP packet route to %s\n", dst.IP, host) - break - } - } - if dst.IP == nil { - log.Fatal("no AAAA record found") - } - - c, err := net.ListenPacket("ip6:58", "::") // ICMP for IPv6 - if err != nil { - log.Fatal(err) - } - defer c.Close() - p := ipv6.NewPacketConn(c) - - if err := p.SetControlMessage(ipv6.FlagHopLimit|ipv6.FlagSrc|ipv6.FlagDst|ipv6.FlagInterface, true); err != nil { - log.Fatal(err) - } - wm := icmp.Message{ - Type: ipv6.ICMPTypeEchoRequest, Code: 0, - Body: &icmp.Echo{ - ID: os.Getpid() & 0xffff, - Data: []byte("HELLO-R-U-THERE"), - }, - } - var f ipv6.ICMPFilter - f.SetAll(true) - f.Accept(ipv6.ICMPTypeTimeExceeded) - f.Accept(ipv6.ICMPTypeEchoReply) - if err := p.SetICMPFilter(&f); err != nil { - log.Fatal(err) - } - - var wcm ipv6.ControlMessage - rb := make([]byte, 1500) - for i := 1; i <= 64; i++ { // up to 64 hops - wm.Body.(*icmp.Echo).Seq = i - wb, err := wm.Marshal(nil) - if err != nil { - log.Fatal(err) - } - - // In the real world usually there are several - // multiple traffic-engineered paths for each hop. - // You may need to probe a few times to each hop. - begin := time.Now() - wcm.HopLimit = i - if _, err := p.WriteTo(wb, &wcm, &dst); err != nil { - log.Fatal(err) - } - if err := p.SetReadDeadline(time.Now().Add(3 * time.Second)); err != nil { - log.Fatal(err) - } - n, rcm, peer, err := p.ReadFrom(rb) - if err != nil { - if err, ok := err.(net.Error); ok && err.Timeout() { - fmt.Printf("%v\t*\n", i) - continue - } - log.Fatal(err) - } - rm, err := icmp.ParseMessage(58, rb[:n]) - if err != nil { - log.Fatal(err) - } - rtt := time.Since(begin) - - // In the real world you need to determine whether the - // received message is yours using ControlMessage.Src, - // ControlMesage.Dst, icmp.Echo.ID and icmp.Echo.Seq. - switch rm.Type { - case ipv6.ICMPTypeTimeExceeded: - names, _ := net.LookupAddr(peer.String()) - fmt.Printf("%d\t%v %+v %v\n\t%+v\n", i, peer, names, rtt, rcm) - case ipv6.ICMPTypeEchoReply: - names, _ := net.LookupAddr(peer.String()) - fmt.Printf("%d\t%v %+v %v\n\t%+v\n", i, peer, names, rtt, rcm) - return - } - } -} - -func ExamplePacketConn_advertisingOSPFHello() { - c, err := net.ListenPacket("ip6:89", "::") // OSPF for IPv6 - if err != nil { - log.Fatal(err) - } - defer c.Close() - p := ipv6.NewPacketConn(c) - - en0, err := net.InterfaceByName("en0") - if err != nil { - log.Fatal(err) - } - allSPFRouters := net.IPAddr{IP: net.ParseIP("ff02::5")} - if err := p.JoinGroup(en0, &allSPFRouters); err != nil { - log.Fatal(err) - } - defer p.LeaveGroup(en0, &allSPFRouters) - - hello := make([]byte, 24) // fake hello data, you need to implement this - ospf := make([]byte, 16) // fake ospf header, you need to implement this - ospf[0] = 3 // version 3 - ospf[1] = 1 // hello packet - ospf = append(ospf, hello...) - if err := p.SetChecksum(true, 12); err != nil { - log.Fatal(err) - } - - cm := ipv6.ControlMessage{ - TrafficClass: 0xc0, // DSCP CS6 - HopLimit: 1, - IfIndex: en0.Index, - } - if _, err := p.WriteTo(ospf, &cm, &allSPFRouters); err != nil { - log.Fatal(err) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/gen.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/gen.go deleted file mode 100644 index d9186c55..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/gen.go +++ /dev/null @@ -1,208 +0,0 @@ -// 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. - -// +build ignore - -//go:generate go run gen.go - -// This program generates system adaptation constants and types, -// internet protocol constants and tables by reading template files -// and IANA protocol registries. -package main - -import ( - "bytes" - "encoding/xml" - "fmt" - "go/format" - "io" - "io/ioutil" - "net/http" - "os" - "os/exec" - "runtime" - "strconv" - "strings" -) - -func main() { - if err := genzsys(); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - if err := geniana(); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } -} - -func genzsys() error { - defs := "defs_" + runtime.GOOS + ".go" - f, err := os.Open(defs) - if err != nil { - if os.IsNotExist(err) { - return nil - } - return err - } - f.Close() - cmd := exec.Command("go", "tool", "cgo", "-godefs", defs) - b, err := cmd.Output() - if err != nil { - return err - } - // The ipv6 pacakge still supports go1.2, and so we need to - // take care of additional platforms in go1.3 and above for - // working with go1.2. - switch { - case runtime.GOOS == "dragonfly" || runtime.GOOS == "solaris": - b = bytes.Replace(b, []byte("package ipv6\n"), []byte("// +build "+runtime.GOOS+"\n\npackage ipv6\n"), 1) - case runtime.GOOS == "linux" && (runtime.GOARCH == "arm64" || runtime.GOARCH == "ppc64" || runtime.GOARCH == "ppc64le"): - b = bytes.Replace(b, []byte("package ipv6\n"), []byte("// +build "+runtime.GOOS+","+runtime.GOARCH+"\n\npackage ipv6\n"), 1) - } - b, err = format.Source(b) - if err != nil { - return err - } - zsys := "zsys_" + runtime.GOOS + ".go" - switch runtime.GOOS { - case "freebsd", "linux": - zsys = "zsys_" + runtime.GOOS + "_" + runtime.GOARCH + ".go" - } - if err := ioutil.WriteFile(zsys, b, 0644); err != nil { - return err - } - return nil -} - -var registries = []struct { - url string - parse func(io.Writer, io.Reader) error -}{ - { - "http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xml", - parseICMPv6Parameters, - }, -} - -func geniana() error { - var bb bytes.Buffer - fmt.Fprintf(&bb, "// go generate gen.go\n") - fmt.Fprintf(&bb, "// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT\n\n") - fmt.Fprintf(&bb, "package ipv6\n\n") - for _, r := range registries { - resp, err := http.Get(r.url) - if err != nil { - return err - } - defer resp.Body.Close() - if resp.StatusCode != http.StatusOK { - return fmt.Errorf("got HTTP status code %v for %v\n", resp.StatusCode, r.url) - } - if err := r.parse(&bb, resp.Body); err != nil { - return err - } - fmt.Fprintf(&bb, "\n") - } - b, err := format.Source(bb.Bytes()) - if err != nil { - return err - } - if err := ioutil.WriteFile("iana.go", b, 0644); err != nil { - return err - } - return nil -} - -func parseICMPv6Parameters(w io.Writer, r io.Reader) error { - dec := xml.NewDecoder(r) - var icp icmpv6Parameters - if err := dec.Decode(&icp); err != nil { - return err - } - prs := icp.escape() - fmt.Fprintf(w, "// %s, Updated: %s\n", icp.Title, icp.Updated) - fmt.Fprintf(w, "const (\n") - for _, pr := range prs { - if pr.Name == "" { - continue - } - fmt.Fprintf(w, "ICMPType%s ICMPType = %d", pr.Name, pr.Value) - fmt.Fprintf(w, "// %s\n", pr.OrigName) - } - fmt.Fprintf(w, ")\n\n") - fmt.Fprintf(w, "// %s, Updated: %s\n", icp.Title, icp.Updated) - fmt.Fprintf(w, "var icmpTypes = map[ICMPType]string{\n") - for _, pr := range prs { - if pr.Name == "" { - continue - } - fmt.Fprintf(w, "%d: %q,\n", pr.Value, strings.ToLower(pr.OrigName)) - } - fmt.Fprintf(w, "}\n") - return nil -} - -type icmpv6Parameters struct { - XMLName xml.Name `xml:"registry"` - Title string `xml:"title"` - Updated string `xml:"updated"` - Registries []struct { - Title string `xml:"title"` - Records []struct { - Value string `xml:"value"` - Name string `xml:"name"` - } `xml:"record"` - } `xml:"registry"` -} - -type canonICMPv6ParamRecord struct { - OrigName string - Name string - Value int -} - -func (icp *icmpv6Parameters) escape() []canonICMPv6ParamRecord { - id := -1 - for i, r := range icp.Registries { - if strings.Contains(r.Title, "Type") || strings.Contains(r.Title, "type") { - id = i - break - } - } - if id < 0 { - return nil - } - prs := make([]canonICMPv6ParamRecord, len(icp.Registries[id].Records)) - sr := strings.NewReplacer( - "Messages", "", - "Message", "", - "ICMP", "", - "+", "P", - "-", "", - "/", "", - ".", "", - " ", "", - ) - for i, pr := range icp.Registries[id].Records { - if strings.Contains(pr.Name, "Reserved") || - strings.Contains(pr.Name, "Unassigned") || - strings.Contains(pr.Name, "Deprecated") || - strings.Contains(pr.Name, "Experiment") || - strings.Contains(pr.Name, "experiment") { - continue - } - ss := strings.Split(pr.Name, "\n") - if len(ss) > 1 { - prs[i].Name = strings.Join(ss, " ") - } else { - prs[i].Name = ss[0] - } - s := strings.TrimSpace(prs[i].Name) - prs[i].OrigName = s - prs[i].Name = sr.Replace(s) - prs[i].Value, _ = strconv.Atoi(pr.Value) - } - return prs -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/genericopt_posix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/genericopt_posix.go deleted file mode 100644 index dd77a016..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/genericopt_posix.go +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -// +build darwin dragonfly freebsd linux netbsd openbsd windows - -package ipv6 - -import "syscall" - -// TrafficClass returns the traffic class field value for outgoing -// packets. -func (c *genericOpt) TrafficClass() (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return 0, err - } - return getInt(fd, &sockOpts[ssoTrafficClass]) -} - -// SetTrafficClass sets the traffic class field value for future -// outgoing packets. -func (c *genericOpt) SetTrafficClass(tclass int) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - return setInt(fd, &sockOpts[ssoTrafficClass], tclass) -} - -// HopLimit returns the hop limit field value for outgoing packets. -func (c *genericOpt) HopLimit() (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return 0, err - } - return getInt(fd, &sockOpts[ssoHopLimit]) -} - -// SetHopLimit sets the hop limit field value for future outgoing -// packets. -func (c *genericOpt) SetHopLimit(hoplim int) error { - if !c.ok() { - return syscall.EINVAL - } - fd, err := c.sysfd() - if err != nil { - return err - } - return setInt(fd, &sockOpts[ssoHopLimit], hoplim) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/genericopt_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/genericopt_stub.go deleted file mode 100644 index f5c37224..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/genericopt_stub.go +++ /dev/null @@ -1,30 +0,0 @@ -// 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. - -// +build nacl plan9 solaris - -package ipv6 - -// TrafficClass returns the traffic class field value for outgoing -// packets. -func (c *genericOpt) TrafficClass() (int, error) { - return 0, errOpNoSupport -} - -// SetTrafficClass sets the traffic class field value for future -// outgoing packets. -func (c *genericOpt) SetTrafficClass(tclass int) error { - return errOpNoSupport -} - -// HopLimit returns the hop limit field value for outgoing packets. -func (c *genericOpt) HopLimit() (int, error) { - return 0, errOpNoSupport -} - -// SetHopLimit sets the hop limit field value for future outgoing -// packets. -func (c *genericOpt) SetHopLimit(hoplim int) error { - return errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/header.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/header.go deleted file mode 100644 index 3c38b99c..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/header.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ipv6 - -import ( - "errors" - "fmt" - "net" -) - -const ( - Version = 6 // protocol version - HeaderLen = 40 // header length -) - -// A Header represents an IPv6 base header. -type Header struct { - Version int // protocol version - TrafficClass int // traffic class - FlowLabel int // flow label - PayloadLen int // payload length - NextHeader int // next header - HopLimit int // hop limit - Src net.IP // source address - Dst net.IP // destination address -} - -func (h *Header) String() string { - if h == nil { - return "" - } - return fmt.Sprintf("ver: %v, tclass: %#x, flowlbl: %#x, payloadlen: %v, nxthdr: %v, hoplim: %v, src: %v, dst: %v", h.Version, h.TrafficClass, h.FlowLabel, h.PayloadLen, h.NextHeader, h.HopLimit, h.Src, h.Dst) -} - -// ParseHeader parses b as an IPv6 base header. -func ParseHeader(b []byte) (*Header, error) { - if len(b) < HeaderLen { - return nil, errors.New("header too short") - } - h := &Header{ - Version: int(b[0]) >> 4, - TrafficClass: int(b[0]&0x0f)<<4 | int(b[1])>>4, - FlowLabel: int(b[1]&0x0f)<<16 | int(b[2])<<8 | int(b[3]), - PayloadLen: int(b[4])<<8 | int(b[5]), - NextHeader: int(b[6]), - HopLimit: int(b[7]), - } - h.Src = make(net.IP, net.IPv6len) - copy(h.Src, b[8:24]) - h.Dst = make(net.IP, net.IPv6len) - copy(h.Dst, b[24:40]) - return h, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/header_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/header_test.go deleted file mode 100644 index 4ecf0d1c..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/header_test.go +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ipv6_test - -import ( - "net" - "reflect" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -var ( - wireHeaderFromKernel = [ipv6.HeaderLen]byte{ - 0x69, 0x8b, 0xee, 0xf1, - 0xca, 0xfe, 0x2c, 0x01, - 0x20, 0x01, 0x0d, 0xb8, - 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, - 0x20, 0x01, 0x0d, 0xb8, - 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, - } - - testHeader = &ipv6.Header{ - Version: ipv6.Version, - TrafficClass: iana.DiffServAF43, - FlowLabel: 0xbeef1, - PayloadLen: 0xcafe, - NextHeader: iana.ProtocolIPv6Frag, - HopLimit: 1, - Src: net.ParseIP("2001:db8:1::1"), - Dst: net.ParseIP("2001:db8:2::1"), - } -) - -func TestParseHeader(t *testing.T) { - h, err := ipv6.ParseHeader(wireHeaderFromKernel[:]) - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(h, testHeader) { - t.Fatalf("got %#v; want %#v", h, testHeader) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper.go deleted file mode 100644 index 64934848..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper.go +++ /dev/null @@ -1,33 +0,0 @@ -// 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 ipv6 - -import ( - "errors" - "net" -) - -var errOpNoSupport = errors.New("operation not supported") - -func boolint(b bool) int { - if b { - return 1 - } - return 0 -} - -func netAddrToIP16(a net.Addr) net.IP { - switch v := a.(type) { - case *net.UDPAddr: - if ip := v.IP.To16(); ip != nil && ip.To4() == nil { - return ip - } - case *net.IPAddr: - if ip := v.IP.To16(); ip != nil && ip.To4() == nil { - return ip - } - } - return nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper_stub.go deleted file mode 100644 index 20354ab2..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper_stub.go +++ /dev/null @@ -1,19 +0,0 @@ -// 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. - -// +build nacl plan9 solaris - -package ipv6 - -func (c *genericOpt) sysfd() (int, error) { - return 0, errOpNoSupport -} - -func (c *dgramOpt) sysfd() (int, error) { - return 0, errOpNoSupport -} - -func (c *payloadHandler) sysfd() (int, error) { - return 0, errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper_unix.go deleted file mode 100644 index 92868ed2..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper_unix.go +++ /dev/null @@ -1,46 +0,0 @@ -// 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. - -// +build darwin dragonfly freebsd linux netbsd openbsd - -package ipv6 - -import ( - "net" - "reflect" -) - -func (c *genericOpt) sysfd() (int, error) { - switch p := c.Conn.(type) { - case *net.TCPConn, *net.UDPConn, *net.IPConn: - return sysfd(p) - } - return 0, errInvalidConnType -} - -func (c *dgramOpt) sysfd() (int, error) { - switch p := c.PacketConn.(type) { - case *net.UDPConn, *net.IPConn: - return sysfd(p.(net.Conn)) - } - return 0, errInvalidConnType -} - -func (c *payloadHandler) sysfd() (int, error) { - return sysfd(c.PacketConn.(net.Conn)) -} - -func sysfd(c net.Conn) (int, error) { - cv := reflect.ValueOf(c) - switch ce := cv.Elem(); ce.Kind() { - case reflect.Struct: - nfd := ce.FieldByName("conn").FieldByName("fd") - switch fe := nfd.Elem(); fe.Kind() { - case reflect.Struct: - fd := fe.FieldByName("sysfd") - return int(fd.Int()), nil - } - } - return 0, errInvalidConnType -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper_windows.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper_windows.go deleted file mode 100644 index 28c401b5..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/helper_windows.go +++ /dev/null @@ -1,45 +0,0 @@ -// 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 ipv6 - -import ( - "net" - "reflect" - "syscall" -) - -func (c *genericOpt) sysfd() (syscall.Handle, error) { - switch p := c.Conn.(type) { - case *net.TCPConn, *net.UDPConn, *net.IPConn: - return sysfd(p) - } - return syscall.InvalidHandle, errInvalidConnType -} - -func (c *dgramOpt) sysfd() (syscall.Handle, error) { - switch p := c.PacketConn.(type) { - case *net.UDPConn, *net.IPConn: - return sysfd(p.(net.Conn)) - } - return syscall.InvalidHandle, errInvalidConnType -} - -func (c *payloadHandler) sysfd() (syscall.Handle, error) { - return sysfd(c.PacketConn.(net.Conn)) -} - -func sysfd(c net.Conn) (syscall.Handle, error) { - cv := reflect.ValueOf(c) - switch ce := cv.Elem(); ce.Kind() { - case reflect.Struct: - netfd := ce.FieldByName("conn").FieldByName("fd") - switch fe := netfd.Elem(); fe.Kind() { - case reflect.Struct: - fd := fe.FieldByName("sysfd") - return syscall.Handle(fd.Uint()), nil - } - } - return syscall.InvalidHandle, errInvalidConnType -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/iana.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/iana.go deleted file mode 100644 index 3c6214fb..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/iana.go +++ /dev/null @@ -1,82 +0,0 @@ -// go generate gen.go -// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -package ipv6 - -// Internet Control Message Protocol version 6 (ICMPv6) Parameters, Updated: 2015-07-07 -const ( - ICMPTypeDestinationUnreachable ICMPType = 1 // Destination Unreachable - ICMPTypePacketTooBig ICMPType = 2 // Packet Too Big - ICMPTypeTimeExceeded ICMPType = 3 // Time Exceeded - ICMPTypeParameterProblem ICMPType = 4 // Parameter Problem - ICMPTypeEchoRequest ICMPType = 128 // Echo Request - ICMPTypeEchoReply ICMPType = 129 // Echo Reply - ICMPTypeMulticastListenerQuery ICMPType = 130 // Multicast Listener Query - ICMPTypeMulticastListenerReport ICMPType = 131 // Multicast Listener Report - ICMPTypeMulticastListenerDone ICMPType = 132 // Multicast Listener Done - ICMPTypeRouterSolicitation ICMPType = 133 // Router Solicitation - ICMPTypeRouterAdvertisement ICMPType = 134 // Router Advertisement - ICMPTypeNeighborSolicitation ICMPType = 135 // Neighbor Solicitation - ICMPTypeNeighborAdvertisement ICMPType = 136 // Neighbor Advertisement - ICMPTypeRedirect ICMPType = 137 // Redirect Message - ICMPTypeRouterRenumbering ICMPType = 138 // Router Renumbering - ICMPTypeNodeInformationQuery ICMPType = 139 // ICMP Node Information Query - ICMPTypeNodeInformationResponse ICMPType = 140 // ICMP Node Information Response - ICMPTypeInverseNeighborDiscoverySolicitation ICMPType = 141 // Inverse Neighbor Discovery Solicitation Message - ICMPTypeInverseNeighborDiscoveryAdvertisement ICMPType = 142 // Inverse Neighbor Discovery Advertisement Message - ICMPTypeVersion2MulticastListenerReport ICMPType = 143 // Version 2 Multicast Listener Report - ICMPTypeHomeAgentAddressDiscoveryRequest ICMPType = 144 // Home Agent Address Discovery Request Message - ICMPTypeHomeAgentAddressDiscoveryReply ICMPType = 145 // Home Agent Address Discovery Reply Message - ICMPTypeMobilePrefixSolicitation ICMPType = 146 // Mobile Prefix Solicitation - ICMPTypeMobilePrefixAdvertisement ICMPType = 147 // Mobile Prefix Advertisement - ICMPTypeCertificationPathSolicitation ICMPType = 148 // Certification Path Solicitation Message - ICMPTypeCertificationPathAdvertisement ICMPType = 149 // Certification Path Advertisement Message - ICMPTypeMulticastRouterAdvertisement ICMPType = 151 // Multicast Router Advertisement - ICMPTypeMulticastRouterSolicitation ICMPType = 152 // Multicast Router Solicitation - ICMPTypeMulticastRouterTermination ICMPType = 153 // Multicast Router Termination - ICMPTypeFMIPv6 ICMPType = 154 // FMIPv6 Messages - ICMPTypeRPLControl ICMPType = 155 // RPL Control Message - ICMPTypeILNPv6LocatorUpdate ICMPType = 156 // ILNPv6 Locator Update Message - ICMPTypeDuplicateAddressRequest ICMPType = 157 // Duplicate Address Request - ICMPTypeDuplicateAddressConfirmation ICMPType = 158 // Duplicate Address Confirmation - ICMPTypeMPLControl ICMPType = 159 // MPL Control Message -) - -// Internet Control Message Protocol version 6 (ICMPv6) Parameters, Updated: 2015-07-07 -var icmpTypes = map[ICMPType]string{ - 1: "destination unreachable", - 2: "packet too big", - 3: "time exceeded", - 4: "parameter problem", - 128: "echo request", - 129: "echo reply", - 130: "multicast listener query", - 131: "multicast listener report", - 132: "multicast listener done", - 133: "router solicitation", - 134: "router advertisement", - 135: "neighbor solicitation", - 136: "neighbor advertisement", - 137: "redirect message", - 138: "router renumbering", - 139: "icmp node information query", - 140: "icmp node information response", - 141: "inverse neighbor discovery solicitation message", - 142: "inverse neighbor discovery advertisement message", - 143: "version 2 multicast listener report", - 144: "home agent address discovery request message", - 145: "home agent address discovery reply message", - 146: "mobile prefix solicitation", - 147: "mobile prefix advertisement", - 148: "certification path solicitation message", - 149: "certification path advertisement message", - 151: "multicast router advertisement", - 152: "multicast router solicitation", - 153: "multicast router termination", - 154: "fmipv6 messages", - 155: "rpl control message", - 156: "ilnpv6 locator update message", - 157: "duplicate address request", - 158: "duplicate address confirmation", - 159: "mpl control message", -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp.go deleted file mode 100644 index d20b46c6..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp.go +++ /dev/null @@ -1,57 +0,0 @@ -// 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 ipv6 - -import "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - -// An ICMPType represents a type of ICMP message. -type ICMPType int - -func (typ ICMPType) String() string { - s, ok := icmpTypes[typ] - if !ok { - return "" - } - return s -} - -// Protocol returns the ICMPv6 protocol number. -func (typ ICMPType) Protocol() int { - return iana.ProtocolIPv6ICMP -} - -// An ICMPFilter represents an ICMP message filter for incoming -// packets. The filter belongs to a packet delivery path on a host and -// it cannot interact with forwarding packets or tunnel-outer packets. -// -// Note: RFC 2460 defines a reasonable role model. A node means a -// device that implements IP. A router means a node that forwards IP -// packets not explicitly addressed to itself, and a host means a node -// that is not a router. -type ICMPFilter struct { - sysICMPv6Filter -} - -// Accept accepts incoming ICMP packets including the type field value -// typ. -func (f *ICMPFilter) Accept(typ ICMPType) { - f.accept(typ) -} - -// Block blocks incoming ICMP packets including the type field value -// typ. -func (f *ICMPFilter) Block(typ ICMPType) { - f.block(typ) -} - -// SetAll sets the filter action to the filter. -func (f *ICMPFilter) SetAll(block bool) { - f.setAll(block) -} - -// WillBlock reports whether the ICMP type will be blocked. -func (f *ICMPFilter) WillBlock(typ ICMPType) bool { - return f.willBlock(typ) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_bsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_bsd.go deleted file mode 100644 index 30e3ce42..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_bsd.go +++ /dev/null @@ -1,29 +0,0 @@ -// 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. - -// +build darwin dragonfly freebsd netbsd openbsd - -package ipv6 - -func (f *sysICMPv6Filter) accept(typ ICMPType) { - f.Filt[typ>>5] |= 1 << (uint32(typ) & 31) -} - -func (f *sysICMPv6Filter) block(typ ICMPType) { - f.Filt[typ>>5] &^= 1 << (uint32(typ) & 31) -} - -func (f *sysICMPv6Filter) setAll(block bool) { - for i := range f.Filt { - if block { - f.Filt[i] = 0 - } else { - f.Filt[i] = 1<<32 - 1 - } - } -} - -func (f *sysICMPv6Filter) willBlock(typ ICMPType) bool { - return f.Filt[typ>>5]&(1<<(uint32(typ)&31)) == 0 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_linux.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_linux.go deleted file mode 100644 index a67ecf69..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_linux.go +++ /dev/null @@ -1,27 +0,0 @@ -// 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 ipv6 - -func (f *sysICMPv6Filter) accept(typ ICMPType) { - f.Data[typ>>5] &^= 1 << (uint32(typ) & 31) -} - -func (f *sysICMPv6Filter) block(typ ICMPType) { - f.Data[typ>>5] |= 1 << (uint32(typ) & 31) -} - -func (f *sysICMPv6Filter) setAll(block bool) { - for i := range f.Data { - if block { - f.Data[i] = 1<<32 - 1 - } else { - f.Data[i] = 0 - } - } -} - -func (f *sysICMPv6Filter) willBlock(typ ICMPType) bool { - return f.Data[typ>>5]&(1<<(uint32(typ)&31)) != 0 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_solaris.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_solaris.go deleted file mode 100644 index a942f354..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_solaris.go +++ /dev/null @@ -1,24 +0,0 @@ -// 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. - -// +build solaris - -package ipv6 - -func (f *sysICMPv6Filter) accept(typ ICMPType) { - // TODO(mikio): implement this -} - -func (f *sysICMPv6Filter) block(typ ICMPType) { - // TODO(mikio): implement this -} - -func (f *sysICMPv6Filter) setAll(block bool) { - // TODO(mikio): implement this -} - -func (f *sysICMPv6Filter) willBlock(typ ICMPType) bool { - // TODO(mikio): implement this - return false -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_stub.go deleted file mode 100644 index c1263eca..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_stub.go +++ /dev/null @@ -1,23 +0,0 @@ -// 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. - -// +build nacl plan9 - -package ipv6 - -type sysICMPv6Filter struct { -} - -func (f *sysICMPv6Filter) accept(typ ICMPType) { -} - -func (f *sysICMPv6Filter) block(typ ICMPType) { -} - -func (f *sysICMPv6Filter) setAll(block bool) { -} - -func (f *sysICMPv6Filter) willBlock(typ ICMPType) bool { - return false -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_test.go deleted file mode 100644 index 6d9f4af0..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_test.go +++ /dev/null @@ -1,96 +0,0 @@ -// 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 ipv6_test - -import ( - "net" - "reflect" - "runtime" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -var icmpStringTests = []struct { - in ipv6.ICMPType - out string -}{ - {ipv6.ICMPTypeDestinationUnreachable, "destination unreachable"}, - - {256, ""}, -} - -func TestICMPString(t *testing.T) { - for _, tt := range icmpStringTests { - s := tt.in.String() - if s != tt.out { - t.Errorf("got %s; want %s", s, tt.out) - } - } -} - -func TestICMPFilter(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - - var f ipv6.ICMPFilter - for _, toggle := range []bool{false, true} { - f.SetAll(toggle) - for _, typ := range []ipv6.ICMPType{ - ipv6.ICMPTypeDestinationUnreachable, - ipv6.ICMPTypeEchoReply, - ipv6.ICMPTypeNeighborSolicitation, - ipv6.ICMPTypeDuplicateAddressConfirmation, - } { - f.Accept(typ) - if f.WillBlock(typ) { - t.Errorf("ipv6.ICMPFilter.Set(%v, false) failed", typ) - } - f.Block(typ) - if !f.WillBlock(typ) { - t.Errorf("ipv6.ICMPFilter.Set(%v, true) failed", typ) - } - } - } -} - -func TestSetICMPFilter(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - - c, err := net.ListenPacket("ip6:ipv6-icmp", "::1") - if err != nil { - t.Fatal(err) - } - defer c.Close() - - p := ipv6.NewPacketConn(c) - - var f ipv6.ICMPFilter - f.SetAll(true) - f.Accept(ipv6.ICMPTypeEchoRequest) - f.Accept(ipv6.ICMPTypeEchoReply) - if err := p.SetICMPFilter(&f); err != nil { - t.Fatal(err) - } - kf, err := p.ICMPFilter() - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(kf, &f) { - t.Fatalf("got %#v; want %#v", kf, f) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_windows.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_windows.go deleted file mode 100644 index 9dcfb810..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/icmp_windows.go +++ /dev/null @@ -1,26 +0,0 @@ -// 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 ipv6 - -type sysICMPv6Filter struct { - // TODO(mikio): implement this -} - -func (f *sysICMPv6Filter) accept(typ ICMPType) { - // TODO(mikio): implement this -} - -func (f *sysICMPv6Filter) block(typ ICMPType) { - // TODO(mikio): implement this -} - -func (f *sysICMPv6Filter) setAll(block bool) { - // TODO(mikio): implement this -} - -func (f *sysICMPv6Filter) willBlock(typ ICMPType) bool { - // TODO(mikio): implement this - return false -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/mocktransponder_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/mocktransponder_test.go deleted file mode 100644 index d587922a..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/mocktransponder_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// 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 ipv6_test - -import ( - "net" - "testing" -) - -func connector(t *testing.T, network, addr string, done chan<- bool) { - defer func() { done <- true }() - - c, err := net.Dial(network, addr) - if err != nil { - t.Error(err) - return - } - c.Close() -} - -func acceptor(t *testing.T, ln net.Listener, done chan<- bool) { - defer func() { done <- true }() - - c, err := ln.Accept() - if err != nil { - t.Error(err) - return - } - c.Close() -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/multicast_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/multicast_test.go deleted file mode 100644 index dc082546..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/multicast_test.go +++ /dev/null @@ -1,263 +0,0 @@ -// 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 ipv6_test - -import ( - "bytes" - "net" - "os" - "runtime" - "testing" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -var packetConnReadWriteMulticastUDPTests = []struct { - addr string - grp, src *net.UDPAddr -}{ - {"[ff02::]:0", &net.UDPAddr{IP: net.ParseIP("ff02::114")}, nil}, // see RFC 4727 - - {"[ff30::8000:0]:0", &net.UDPAddr{IP: net.ParseIP("ff30::8000:1")}, &net.UDPAddr{IP: net.IPv6loopback}}, // see RFC 5771 -} - -func TestPacketConnReadWriteMulticastUDP(t *testing.T) { - switch runtime.GOOS { - case "freebsd": // due to a bug on loopback marking - // See http://www.freebsd.org/cgi/query-pr.cgi?pr=180065. - t.Skipf("not supported on %s", runtime.GOOS) - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - ifi := nettest.RoutedInterface("ip6", net.FlagUp|net.FlagMulticast|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - for _, tt := range packetConnReadWriteMulticastUDPTests { - c, err := net.ListenPacket("udp6", tt.addr) - if err != nil { - t.Fatal(err) - } - defer c.Close() - - grp := *tt.grp - grp.Port = c.LocalAddr().(*net.UDPAddr).Port - p := ipv6.NewPacketConn(c) - defer p.Close() - if tt.src == nil { - if err := p.JoinGroup(ifi, &grp); err != nil { - t.Fatal(err) - } - defer p.LeaveGroup(ifi, &grp) - } else { - if err := p.JoinSourceSpecificGroup(ifi, &grp, tt.src); err != nil { - switch runtime.GOOS { - case "freebsd", "linux": - default: // platforms that don't support MLDv2 fail here - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } - defer p.LeaveSourceSpecificGroup(ifi, &grp, tt.src) - } - if err := p.SetMulticastInterface(ifi); err != nil { - t.Fatal(err) - } - if _, err := p.MulticastInterface(); err != nil { - t.Fatal(err) - } - if err := p.SetMulticastLoopback(true); err != nil { - t.Fatal(err) - } - if _, err := p.MulticastLoopback(); err != nil { - t.Fatal(err) - } - - cm := ipv6.ControlMessage{ - TrafficClass: iana.DiffServAF11 | iana.CongestionExperienced, - Src: net.IPv6loopback, - IfIndex: ifi.Index, - } - cf := ipv6.FlagTrafficClass | ipv6.FlagHopLimit | ipv6.FlagSrc | ipv6.FlagDst | ipv6.FlagInterface | ipv6.FlagPathMTU - wb := []byte("HELLO-R-U-THERE") - - for i, toggle := range []bool{true, false, true} { - if err := p.SetControlMessage(cf, toggle); err != nil { - if nettest.ProtocolNotSupported(err) { - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } - if err := p.SetDeadline(time.Now().Add(200 * time.Millisecond)); err != nil { - t.Fatal(err) - } - cm.HopLimit = i + 1 - if n, err := p.WriteTo(wb, &cm, &grp); err != nil { - t.Fatal(err) - } else if n != len(wb) { - t.Fatal(err) - } - rb := make([]byte, 128) - if n, cm, _, err := p.ReadFrom(rb); err != nil { - t.Fatal(err) - } else if !bytes.Equal(rb[:n], wb) { - t.Fatalf("got %v; want %v", rb[:n], wb) - } else { - t.Logf("rcvd cmsg: %v", cm) - } - } - } -} - -var packetConnReadWriteMulticastICMPTests = []struct { - grp, src *net.IPAddr -}{ - {&net.IPAddr{IP: net.ParseIP("ff02::114")}, nil}, // see RFC 4727 - - {&net.IPAddr{IP: net.ParseIP("ff30::8000:1")}, &net.IPAddr{IP: net.IPv6loopback}}, // see RFC 5771 -} - -func TestPacketConnReadWriteMulticastICMP(t *testing.T) { - switch runtime.GOOS { - case "freebsd": // due to a bug on loopback marking - // See http://www.freebsd.org/cgi/query-pr.cgi?pr=180065. - t.Skipf("not supported on %s", runtime.GOOS) - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - ifi := nettest.RoutedInterface("ip6", net.FlagUp|net.FlagMulticast|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - for _, tt := range packetConnReadWriteMulticastICMPTests { - c, err := net.ListenPacket("ip6:ipv6-icmp", "::") - if err != nil { - t.Fatal(err) - } - defer c.Close() - - pshicmp := icmp.IPv6PseudoHeader(c.LocalAddr().(*net.IPAddr).IP, tt.grp.IP) - p := ipv6.NewPacketConn(c) - defer p.Close() - if tt.src == nil { - if err := p.JoinGroup(ifi, tt.grp); err != nil { - t.Fatal(err) - } - defer p.LeaveGroup(ifi, tt.grp) - } else { - if err := p.JoinSourceSpecificGroup(ifi, tt.grp, tt.src); err != nil { - switch runtime.GOOS { - case "freebsd", "linux": - default: // platforms that don't support MLDv2 fail here - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } - defer p.LeaveSourceSpecificGroup(ifi, tt.grp, tt.src) - } - if err := p.SetMulticastInterface(ifi); err != nil { - t.Fatal(err) - } - if _, err := p.MulticastInterface(); err != nil { - t.Fatal(err) - } - if err := p.SetMulticastLoopback(true); err != nil { - t.Fatal(err) - } - if _, err := p.MulticastLoopback(); err != nil { - t.Fatal(err) - } - - cm := ipv6.ControlMessage{ - TrafficClass: iana.DiffServAF11 | iana.CongestionExperienced, - Src: net.IPv6loopback, - IfIndex: ifi.Index, - } - cf := ipv6.FlagTrafficClass | ipv6.FlagHopLimit | ipv6.FlagSrc | ipv6.FlagDst | ipv6.FlagInterface | ipv6.FlagPathMTU - - var f ipv6.ICMPFilter - f.SetAll(true) - f.Accept(ipv6.ICMPTypeEchoReply) - if err := p.SetICMPFilter(&f); err != nil { - t.Fatal(err) - } - - var psh []byte - for i, toggle := range []bool{true, false, true} { - if toggle { - psh = nil - if err := p.SetChecksum(true, 2); err != nil { - t.Fatal(err) - } - } else { - psh = pshicmp - // Some platforms never allow to - // disable the kernel checksum - // processing. - p.SetChecksum(false, -1) - } - wb, err := (&icmp.Message{ - Type: ipv6.ICMPTypeEchoRequest, Code: 0, - Body: &icmp.Echo{ - ID: os.Getpid() & 0xffff, Seq: i + 1, - Data: []byte("HELLO-R-U-THERE"), - }, - }).Marshal(psh) - if err != nil { - t.Fatal(err) - } - if err := p.SetControlMessage(cf, toggle); err != nil { - if nettest.ProtocolNotSupported(err) { - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } - if err := p.SetDeadline(time.Now().Add(200 * time.Millisecond)); err != nil { - t.Fatal(err) - } - cm.HopLimit = i + 1 - if n, err := p.WriteTo(wb, &cm, tt.grp); err != nil { - t.Fatal(err) - } else if n != len(wb) { - t.Fatalf("got %v; want %v", n, len(wb)) - } - rb := make([]byte, 128) - if n, cm, _, err := p.ReadFrom(rb); err != nil { - switch runtime.GOOS { - case "darwin": // older darwin kernels have some limitation on receiving icmp packet through raw socket - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } else { - t.Logf("rcvd cmsg: %v", cm) - if m, err := icmp.ParseMessage(iana.ProtocolIPv6ICMP, rb[:n]); err != nil { - t.Fatal(err) - } else if m.Type != ipv6.ICMPTypeEchoReply || m.Code != 0 { - t.Fatalf("got type=%v, code=%v; want type=%v, code=%v", m.Type, m.Code, ipv6.ICMPTypeEchoReply, 0) - } - } - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/multicastlistener_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/multicastlistener_test.go deleted file mode 100644 index 3f01c27e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/multicastlistener_test.go +++ /dev/null @@ -1,246 +0,0 @@ -// 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 ipv6_test - -import ( - "fmt" - "net" - "runtime" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -var udpMultipleGroupListenerTests = []net.Addr{ - &net.UDPAddr{IP: net.ParseIP("ff02::114")}, // see RFC 4727 - &net.UDPAddr{IP: net.ParseIP("ff02::1:114")}, - &net.UDPAddr{IP: net.ParseIP("ff02::2:114")}, -} - -func TestUDPSinglePacketConnWithMultipleGroupListeners(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - - for _, gaddr := range udpMultipleGroupListenerTests { - c, err := net.ListenPacket("udp6", "[::]:0") // wildcard address with non-reusable port - if err != nil { - t.Fatal(err) - } - defer c.Close() - - p := ipv6.NewPacketConn(c) - var mift []*net.Interface - - ift, err := net.Interfaces() - if err != nil { - t.Fatal(err) - } - for i, ifi := range ift { - if _, ok := nettest.IsMulticastCapable("ip6", &ifi); !ok { - continue - } - if err := p.JoinGroup(&ifi, gaddr); err != nil { - t.Fatal(err) - } - mift = append(mift, &ift[i]) - } - for _, ifi := range mift { - if err := p.LeaveGroup(ifi, gaddr); err != nil { - t.Fatal(err) - } - } - } -} - -func TestUDPMultiplePacketConnWithMultipleGroupListeners(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - - for _, gaddr := range udpMultipleGroupListenerTests { - c1, err := net.ListenPacket("udp6", "[ff02::]:1024") // wildcard address with reusable port - if err != nil { - t.Fatal(err) - } - defer c1.Close() - - c2, err := net.ListenPacket("udp6", "[ff02::]:1024") // wildcard address with reusable port - if err != nil { - t.Fatal(err) - } - defer c2.Close() - - var ps [2]*ipv6.PacketConn - ps[0] = ipv6.NewPacketConn(c1) - ps[1] = ipv6.NewPacketConn(c2) - var mift []*net.Interface - - ift, err := net.Interfaces() - if err != nil { - t.Fatal(err) - } - for i, ifi := range ift { - if _, ok := nettest.IsMulticastCapable("ip6", &ifi); !ok { - continue - } - for _, p := range ps { - if err := p.JoinGroup(&ifi, gaddr); err != nil { - t.Fatal(err) - } - } - mift = append(mift, &ift[i]) - } - for _, ifi := range mift { - for _, p := range ps { - if err := p.LeaveGroup(ifi, gaddr); err != nil { - t.Fatal(err) - } - } - } - } -} - -func TestUDPPerInterfaceSinglePacketConnWithSingleGroupListener(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - - gaddr := net.IPAddr{IP: net.ParseIP("ff02::114")} // see RFC 4727 - type ml struct { - c *ipv6.PacketConn - ifi *net.Interface - } - var mlt []*ml - - ift, err := net.Interfaces() - if err != nil { - t.Fatal(err) - } - for i, ifi := range ift { - ip, ok := nettest.IsMulticastCapable("ip6", &ifi) - if !ok { - continue - } - c, err := net.ListenPacket("udp6", fmt.Sprintf("[%s%%%s]:1024", ip.String(), ifi.Name)) // unicast address with non-reusable port - if err != nil { - t.Fatal(err) - } - defer c.Close() - p := ipv6.NewPacketConn(c) - if err := p.JoinGroup(&ifi, &gaddr); err != nil { - t.Fatal(err) - } - mlt = append(mlt, &ml{p, &ift[i]}) - } - for _, m := range mlt { - if err := m.c.LeaveGroup(m.ifi, &gaddr); err != nil { - t.Fatal(err) - } - } -} - -func TestIPSinglePacketConnWithSingleGroupListener(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - - c, err := net.ListenPacket("ip6:ipv6-icmp", "::") // wildcard address - if err != nil { - t.Fatal(err) - } - defer c.Close() - - p := ipv6.NewPacketConn(c) - gaddr := net.IPAddr{IP: net.ParseIP("ff02::114")} // see RFC 4727 - var mift []*net.Interface - - ift, err := net.Interfaces() - if err != nil { - t.Fatal(err) - } - for i, ifi := range ift { - if _, ok := nettest.IsMulticastCapable("ip6", &ifi); !ok { - continue - } - if err := p.JoinGroup(&ifi, &gaddr); err != nil { - t.Fatal(err) - } - mift = append(mift, &ift[i]) - } - for _, ifi := range mift { - if err := p.LeaveGroup(ifi, &gaddr); err != nil { - t.Fatal(err) - } - } -} - -func TestIPPerInterfaceSinglePacketConnWithSingleGroupListener(t *testing.T) { - switch runtime.GOOS { - case "darwin", "dragonfly", "openbsd": // platforms that return fe80::1%lo0: bind: can't assign requested address - t.Skipf("not supported on %s", runtime.GOOS) - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - - gaddr := net.IPAddr{IP: net.ParseIP("ff02::114")} // see RFC 4727 - type ml struct { - c *ipv6.PacketConn - ifi *net.Interface - } - var mlt []*ml - - ift, err := net.Interfaces() - if err != nil { - t.Fatal(err) - } - for i, ifi := range ift { - ip, ok := nettest.IsMulticastCapable("ip6", &ifi) - if !ok { - continue - } - c, err := net.ListenPacket("ip6:ipv6-icmp", fmt.Sprintf("%s%%%s", ip.String(), ifi.Name)) // unicast address - if err != nil { - t.Fatal(err) - } - defer c.Close() - p := ipv6.NewPacketConn(c) - if err := p.JoinGroup(&ifi, &gaddr); err != nil { - t.Fatal(err) - } - mlt = append(mlt, &ml{p, &ift[i]}) - } - for _, m := range mlt { - if err := m.c.LeaveGroup(m.ifi, &gaddr); err != nil { - t.Fatal(err) - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/multicastsockopt_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/multicastsockopt_test.go deleted file mode 100644 index c947345a..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/multicastsockopt_test.go +++ /dev/null @@ -1,157 +0,0 @@ -// 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 ipv6_test - -import ( - "net" - "runtime" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -var packetConnMulticastSocketOptionTests = []struct { - net, proto, addr string - grp, src net.Addr -}{ - {"udp6", "", "[ff02::]:0", &net.UDPAddr{IP: net.ParseIP("ff02::114")}, nil}, // see RFC 4727 - {"ip6", ":ipv6-icmp", "::", &net.IPAddr{IP: net.ParseIP("ff02::115")}, nil}, // see RFC 4727 - - {"udp6", "", "[ff30::8000:0]:0", &net.UDPAddr{IP: net.ParseIP("ff30::8000:1")}, &net.UDPAddr{IP: net.IPv6loopback}}, // see RFC 5771 - {"ip6", ":ipv6-icmp", "::", &net.IPAddr{IP: net.ParseIP("ff30::8000:2")}, &net.IPAddr{IP: net.IPv6loopback}}, // see RFC 5771 -} - -func TestPacketConnMulticastSocketOptions(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - ifi := nettest.RoutedInterface("ip6", net.FlagUp|net.FlagMulticast|net.FlagLoopback) - if ifi == nil { - t.Skipf("not available on %s", runtime.GOOS) - } - - m, ok := nettest.SupportsRawIPSocket() - for _, tt := range packetConnMulticastSocketOptionTests { - if tt.net == "ip6" && !ok { - t.Log(m) - continue - } - c, err := net.ListenPacket(tt.net+tt.proto, tt.addr) - if err != nil { - t.Fatal(err) - } - defer c.Close() - p := ipv6.NewPacketConn(c) - defer p.Close() - - if tt.src == nil { - testMulticastSocketOptions(t, p, ifi, tt.grp) - } else { - testSourceSpecificMulticastSocketOptions(t, p, ifi, tt.grp, tt.src) - } - } -} - -type testIPv6MulticastConn interface { - MulticastHopLimit() (int, error) - SetMulticastHopLimit(ttl int) error - MulticastLoopback() (bool, error) - SetMulticastLoopback(bool) error - JoinGroup(*net.Interface, net.Addr) error - LeaveGroup(*net.Interface, net.Addr) error - JoinSourceSpecificGroup(*net.Interface, net.Addr, net.Addr) error - LeaveSourceSpecificGroup(*net.Interface, net.Addr, net.Addr) error - ExcludeSourceSpecificGroup(*net.Interface, net.Addr, net.Addr) error - IncludeSourceSpecificGroup(*net.Interface, net.Addr, net.Addr) error -} - -func testMulticastSocketOptions(t *testing.T, c testIPv6MulticastConn, ifi *net.Interface, grp net.Addr) { - const hoplim = 255 - if err := c.SetMulticastHopLimit(hoplim); err != nil { - t.Error(err) - return - } - if v, err := c.MulticastHopLimit(); err != nil { - t.Error(err) - return - } else if v != hoplim { - t.Errorf("got %v; want %v", v, hoplim) - return - } - - for _, toggle := range []bool{true, false} { - if err := c.SetMulticastLoopback(toggle); err != nil { - t.Error(err) - return - } - if v, err := c.MulticastLoopback(); err != nil { - t.Error(err) - return - } else if v != toggle { - t.Errorf("got %v; want %v", v, toggle) - return - } - } - - if err := c.JoinGroup(ifi, grp); err != nil { - t.Error(err) - return - } - if err := c.LeaveGroup(ifi, grp); err != nil { - t.Error(err) - return - } -} - -func testSourceSpecificMulticastSocketOptions(t *testing.T, c testIPv6MulticastConn, ifi *net.Interface, grp, src net.Addr) { - // MCAST_JOIN_GROUP -> MCAST_BLOCK_SOURCE -> MCAST_UNBLOCK_SOURCE -> MCAST_LEAVE_GROUP - if err := c.JoinGroup(ifi, grp); err != nil { - t.Error(err) - return - } - if err := c.ExcludeSourceSpecificGroup(ifi, grp, src); err != nil { - switch runtime.GOOS { - case "freebsd", "linux": - default: // platforms that don't support MLDv2 fail here - t.Logf("not supported on %s", runtime.GOOS) - return - } - t.Error(err) - return - } - if err := c.IncludeSourceSpecificGroup(ifi, grp, src); err != nil { - t.Error(err) - return - } - if err := c.LeaveGroup(ifi, grp); err != nil { - t.Error(err) - return - } - - // MCAST_JOIN_SOURCE_GROUP -> MCAST_LEAVE_SOURCE_GROUP - if err := c.JoinSourceSpecificGroup(ifi, grp, src); err != nil { - t.Error(err) - return - } - if err := c.LeaveSourceSpecificGroup(ifi, grp, src); err != nil { - t.Error(err) - return - } - - // MCAST_JOIN_SOURCE_GROUP -> MCAST_LEAVE_GROUP - if err := c.JoinSourceSpecificGroup(ifi, grp, src); err != nil { - t.Error(err) - return - } - if err := c.LeaveGroup(ifi, grp); err != nil { - t.Error(err) - return - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/payload.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/payload.go deleted file mode 100644 index 529b20bc..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/payload.go +++ /dev/null @@ -1,15 +0,0 @@ -// 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 ipv6 - -import "net" - -// A payloadHandler represents the IPv6 datagram payload handler. -type payloadHandler struct { - net.PacketConn - rawOpt -} - -func (c *payloadHandler) ok() bool { return c != nil && c.PacketConn != nil } diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/payload_cmsg.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/payload_cmsg.go deleted file mode 100644 index 8e90d324..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/payload_cmsg.go +++ /dev/null @@ -1,70 +0,0 @@ -// 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. - -// +build !nacl,!plan9,!windows - -package ipv6 - -import ( - "net" - "syscall" -) - -// ReadFrom reads a payload of the received IPv6 datagram, from the -// endpoint c, copying the payload into b. It returns the number of -// bytes copied into b, the control message cm and the source address -// src of the received datagram. -func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) { - if !c.ok() { - return 0, nil, nil, syscall.EINVAL - } - oob := newControlMessage(&c.rawOpt) - var oobn int - switch c := c.PacketConn.(type) { - case *net.UDPConn: - if n, oobn, _, src, err = c.ReadMsgUDP(b, oob); err != nil { - return 0, nil, nil, err - } - case *net.IPConn: - if n, oobn, _, src, err = c.ReadMsgIP(b, oob); err != nil { - return 0, nil, nil, err - } - default: - return 0, nil, nil, errInvalidConnType - } - if cm, err = parseControlMessage(oob[:oobn]); err != nil { - return 0, nil, nil, err - } - if cm != nil { - cm.Src = netAddrToIP16(src) - } - return -} - -// WriteTo writes a payload of the IPv6 datagram, to the destination -// address dst through the endpoint c, copying the payload from b. It -// returns the number of bytes written. The control message cm allows -// the IPv6 header fields and the datagram path to be specified. The -// cm may be nil if control of the outgoing datagram is not required. -func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) { - if !c.ok() { - return 0, syscall.EINVAL - } - oob := marshalControlMessage(cm) - if dst == nil { - return 0, errMissingAddress - } - switch c := c.PacketConn.(type) { - case *net.UDPConn: - n, _, err = c.WriteMsgUDP(b, oob, dst.(*net.UDPAddr)) - case *net.IPConn: - n, _, err = c.WriteMsgIP(b, oob, dst.(*net.IPAddr)) - default: - return 0, errInvalidConnType - } - if err != nil { - return 0, err - } - return -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/payload_nocmsg.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/payload_nocmsg.go deleted file mode 100644 index 499204d0..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/payload_nocmsg.go +++ /dev/null @@ -1,41 +0,0 @@ -// 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. - -// +build nacl plan9 windows - -package ipv6 - -import ( - "net" - "syscall" -) - -// ReadFrom reads a payload of the received IPv6 datagram, from the -// endpoint c, copying the payload into b. It returns the number of -// bytes copied into b, the control message cm and the source address -// src of the received datagram. -func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) { - if !c.ok() { - return 0, nil, nil, syscall.EINVAL - } - if n, src, err = c.PacketConn.ReadFrom(b); err != nil { - return 0, nil, nil, err - } - return -} - -// WriteTo writes a payload of the IPv6 datagram, to the destination -// address dst through the endpoint c, copying the payload from b. It -// returns the number of bytes written. The control message cm allows -// the IPv6 header fields and the datagram path to be specified. The -// cm may be nil if control of the outgoing datagram is not required. -func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) { - if !c.ok() { - return 0, syscall.EINVAL - } - if dst == nil { - return 0, errMissingAddress - } - return c.PacketConn.WriteTo(b, dst) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/readwrite_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/readwrite_test.go deleted file mode 100644 index 023ac55e..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/readwrite_test.go +++ /dev/null @@ -1,185 +0,0 @@ -// 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 ipv6_test - -import ( - "bytes" - "net" - "runtime" - "sync" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -func benchmarkUDPListener() (net.PacketConn, net.Addr, error) { - c, err := net.ListenPacket("udp6", "[::1]:0") - if err != nil { - return nil, nil, err - } - dst, err := net.ResolveUDPAddr("udp6", c.LocalAddr().String()) - if err != nil { - c.Close() - return nil, nil, err - } - return c, dst, nil -} - -func BenchmarkReadWriteNetUDP(b *testing.B) { - if !supportsIPv6 { - b.Skip("ipv6 is not supported") - } - - c, dst, err := benchmarkUDPListener() - if err != nil { - b.Fatal(err) - } - defer c.Close() - - wb, rb := []byte("HELLO-R-U-THERE"), make([]byte, 128) - b.ResetTimer() - for i := 0; i < b.N; i++ { - benchmarkReadWriteNetUDP(b, c, wb, rb, dst) - } -} - -func benchmarkReadWriteNetUDP(b *testing.B, c net.PacketConn, wb, rb []byte, dst net.Addr) { - if _, err := c.WriteTo(wb, dst); err != nil { - b.Fatal(err) - } - if _, _, err := c.ReadFrom(rb); err != nil { - b.Fatal(err) - } -} - -func BenchmarkReadWriteIPv6UDP(b *testing.B) { - if !supportsIPv6 { - b.Skip("ipv6 is not supported") - } - - c, dst, err := benchmarkUDPListener() - if err != nil { - b.Fatal(err) - } - defer c.Close() - - p := ipv6.NewPacketConn(c) - cf := ipv6.FlagTrafficClass | ipv6.FlagHopLimit | ipv6.FlagSrc | ipv6.FlagDst | ipv6.FlagInterface | ipv6.FlagPathMTU - if err := p.SetControlMessage(cf, true); err != nil { - b.Fatal(err) - } - ifi := nettest.RoutedInterface("ip6", net.FlagUp|net.FlagLoopback) - - wb, rb := []byte("HELLO-R-U-THERE"), make([]byte, 128) - b.ResetTimer() - for i := 0; i < b.N; i++ { - benchmarkReadWriteIPv6UDP(b, p, wb, rb, dst, ifi) - } -} - -func benchmarkReadWriteIPv6UDP(b *testing.B, p *ipv6.PacketConn, wb, rb []byte, dst net.Addr, ifi *net.Interface) { - cm := ipv6.ControlMessage{ - TrafficClass: iana.DiffServAF11 | iana.CongestionExperienced, - HopLimit: 1, - } - if ifi != nil { - cm.IfIndex = ifi.Index - } - if n, err := p.WriteTo(wb, &cm, dst); err != nil { - b.Fatal(err) - } else if n != len(wb) { - b.Fatalf("got %v; want %v", n, len(wb)) - } - if _, _, _, err := p.ReadFrom(rb); err != nil { - b.Fatal(err) - } -} - -func TestPacketConnConcurrentReadWriteUnicastUDP(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - - c, err := net.ListenPacket("udp6", "[::1]:0") - if err != nil { - t.Fatal(err) - } - defer c.Close() - p := ipv6.NewPacketConn(c) - defer p.Close() - - dst, err := net.ResolveUDPAddr("udp6", c.LocalAddr().String()) - if err != nil { - t.Fatal(err) - } - - ifi := nettest.RoutedInterface("ip6", net.FlagUp|net.FlagLoopback) - cf := ipv6.FlagTrafficClass | ipv6.FlagHopLimit | ipv6.FlagSrc | ipv6.FlagDst | ipv6.FlagInterface | ipv6.FlagPathMTU - wb := []byte("HELLO-R-U-THERE") - - if err := p.SetControlMessage(cf, true); err != nil { // probe before test - if nettest.ProtocolNotSupported(err) { - t.Skipf("not supported on %s", runtime.GOOS) - } - t.Fatal(err) - } - - var wg sync.WaitGroup - reader := func() { - defer wg.Done() - rb := make([]byte, 128) - if n, cm, _, err := p.ReadFrom(rb); err != nil { - t.Error(err) - return - } else if !bytes.Equal(rb[:n], wb) { - t.Errorf("got %v; want %v", rb[:n], wb) - return - } else { - t.Logf("rcvd cmsg: %v", cm) - } - } - writer := func(toggle bool) { - defer wg.Done() - cm := ipv6.ControlMessage{ - TrafficClass: iana.DiffServAF11 | iana.CongestionExperienced, - Src: net.IPv6loopback, - } - if ifi != nil { - cm.IfIndex = ifi.Index - } - if err := p.SetControlMessage(cf, toggle); err != nil { - t.Error(err) - return - } - if n, err := p.WriteTo(wb, &cm, dst); err != nil { - t.Error(err) - return - } else if n != len(wb) { - t.Errorf("got %v; want %v", n, len(wb)) - return - } - } - - const N = 10 - wg.Add(N) - for i := 0; i < N; i++ { - go reader() - } - wg.Add(2 * N) - for i := 0; i < 2*N; i++ { - go writer(i%2 != 0) - } - wg.Add(N) - for i := 0; i < N; i++ { - go reader() - } - wg.Wait() -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt.go deleted file mode 100644 index f0cfc2f9..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ipv6 - -// Sticky socket options -const ( - ssoTrafficClass = iota // header field for unicast packet, RFC 3542 - ssoHopLimit // header field for unicast packet, RFC 3493 - ssoMulticastInterface // outbound interface for multicast packet, RFC 3493 - ssoMulticastHopLimit // header field for multicast packet, RFC 3493 - ssoMulticastLoopback // loopback for multicast packet, RFC 3493 - ssoReceiveTrafficClass // header field on received packet, RFC 3542 - ssoReceiveHopLimit // header field on received packet, RFC 2292 or 3542 - ssoReceivePacketInfo // incbound or outbound packet path, RFC 2292 or 3542 - ssoReceivePathMTU // path mtu, RFC 3542 - ssoPathMTU // path mtu, RFC 3542 - ssoChecksum // packet checksum, RFC 2292 or 3542 - ssoICMPFilter // icmp filter, RFC 2292 or 3542 - ssoJoinGroup // any-source multicast, RFC 3493 - ssoLeaveGroup // any-source multicast, RFC 3493 - ssoJoinSourceGroup // source-specific multicast - ssoLeaveSourceGroup // source-specific multicast - ssoBlockSourceGroup // any-source or source-specific multicast - ssoUnblockSourceGroup // any-source or source-specific multicast - ssoMax -) - -// Sticky socket option value types -const ( - ssoTypeInt = iota + 1 - ssoTypeInterface - ssoTypeICMPFilter - ssoTypeMTUInfo - ssoTypeIPMreq - ssoTypeGroupReq - ssoTypeGroupSourceReq -) - -// A sockOpt represents a binding for sticky socket option. -type sockOpt struct { - level int // option level - name int // option name, must be equal or greater than 1 - typ int // option value type, must be equal or greater than 1 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_asmreq_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_asmreq_unix.go deleted file mode 100644 index b7fd4fe6..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_asmreq_unix.go +++ /dev/null @@ -1,22 +0,0 @@ -// 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. - -// +build darwin dragonfly freebsd linux netbsd openbsd - -package ipv6 - -import ( - "net" - "os" - "unsafe" -) - -func setsockoptIPMreq(fd int, opt *sockOpt, ifi *net.Interface, grp net.IP) error { - var mreq sysIPv6Mreq - copy(mreq.Multiaddr[:], grp) - if ifi != nil { - mreq.setIfindex(ifi.Index) - } - return os.NewSyscallError("setsockopt", setsockopt(fd, opt.level, opt.name, unsafe.Pointer(&mreq), sysSizeofIPv6Mreq)) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_asmreq_windows.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_asmreq_windows.go deleted file mode 100644 index c03c7313..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_asmreq_windows.go +++ /dev/null @@ -1,21 +0,0 @@ -// 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 ipv6 - -import ( - "net" - "os" - "syscall" - "unsafe" -) - -func setsockoptIPMreq(fd syscall.Handle, opt *sockOpt, ifi *net.Interface, grp net.IP) error { - var mreq sysIPv6Mreq - copy(mreq.Multiaddr[:], grp) - if ifi != nil { - mreq.setIfindex(ifi.Index) - } - return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, int32(opt.level), int32(opt.name), (*byte)(unsafe.Pointer(&mreq)), sysSizeofIPv6Mreq)) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_ssmreq_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_ssmreq_stub.go deleted file mode 100644 index 7732e49f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_ssmreq_stub.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !darwin,!freebsd,!linux - -package ipv6 - -import "net" - -func setsockoptGroupReq(fd int, opt *sockOpt, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport -} - -func setsockoptGroupSourceReq(fd int, opt *sockOpt, ifi *net.Interface, grp, src net.IP) error { - return errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_ssmreq_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_ssmreq_unix.go deleted file mode 100644 index c64d6d58..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_ssmreq_unix.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin freebsd linux - -package ipv6 - -import ( - "net" - "os" - "unsafe" -) - -var freebsd32o64 bool - -func setsockoptGroupReq(fd int, opt *sockOpt, ifi *net.Interface, grp net.IP) error { - var gr sysGroupReq - if ifi != nil { - gr.Interface = uint32(ifi.Index) - } - gr.setGroup(grp) - var p unsafe.Pointer - var l sysSockoptLen - if freebsd32o64 { - var d [sysSizeofGroupReq + 4]byte - s := (*[sysSizeofGroupReq]byte)(unsafe.Pointer(&gr)) - copy(d[:4], s[:4]) - copy(d[8:], s[4:]) - p = unsafe.Pointer(&d[0]) - l = sysSizeofGroupReq + 4 - } else { - p = unsafe.Pointer(&gr) - l = sysSizeofGroupReq - } - return os.NewSyscallError("setsockopt", setsockopt(fd, opt.level, opt.name, p, l)) -} - -func setsockoptGroupSourceReq(fd int, opt *sockOpt, ifi *net.Interface, grp, src net.IP) error { - var gsr sysGroupSourceReq - if ifi != nil { - gsr.Interface = uint32(ifi.Index) - } - gsr.setSourceGroup(grp, src) - var p unsafe.Pointer - var l sysSockoptLen - if freebsd32o64 { - var d [sysSizeofGroupSourceReq + 4]byte - s := (*[sysSizeofGroupSourceReq]byte)(unsafe.Pointer(&gsr)) - copy(d[:4], s[:4]) - copy(d[8:], s[4:]) - p = unsafe.Pointer(&d[0]) - l = sysSizeofGroupSourceReq + 4 - } else { - p = unsafe.Pointer(&gsr) - l = sysSizeofGroupSourceReq - } - return os.NewSyscallError("setsockopt", setsockopt(fd, opt.level, opt.name, p, l)) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_stub.go deleted file mode 100644 index b8dacfde..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_stub.go +++ /dev/null @@ -1,13 +0,0 @@ -// 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. - -// +build nacl plan9 solaris - -package ipv6 - -import "net" - -func getMTUInfo(fd int, opt *sockOpt) (*net.Interface, int, error) { - return nil, 0, errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_test.go deleted file mode 100644 index cb391be2..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_test.go +++ /dev/null @@ -1,133 +0,0 @@ -// 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 ipv6_test - -import ( - "fmt" - "net" - "runtime" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -var supportsIPv6 bool = nettest.SupportsIPv6() - -func TestConnInitiatorPathMTU(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - - ln, err := net.Listen("tcp6", "[::1]:0") - if err != nil { - t.Fatal(err) - } - defer ln.Close() - - done := make(chan bool) - go acceptor(t, ln, done) - - c, err := net.Dial("tcp6", ln.Addr().String()) - if err != nil { - t.Fatal(err) - } - defer c.Close() - - if pmtu, err := ipv6.NewConn(c).PathMTU(); err != nil { - switch runtime.GOOS { - case "darwin": // older darwin kernels don't support IPV6_PATHMTU option - t.Logf("not supported on %s", runtime.GOOS) - default: - t.Fatal(err) - } - } else { - t.Logf("path mtu for %v: %v", c.RemoteAddr(), pmtu) - } - - <-done -} - -func TestConnResponderPathMTU(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - - ln, err := net.Listen("tcp6", "[::1]:0") - if err != nil { - t.Fatal(err) - } - defer ln.Close() - - done := make(chan bool) - go connector(t, "tcp6", ln.Addr().String(), done) - - c, err := ln.Accept() - if err != nil { - t.Fatal(err) - } - defer c.Close() - - if pmtu, err := ipv6.NewConn(c).PathMTU(); err != nil { - switch runtime.GOOS { - case "darwin": // older darwin kernels don't support IPV6_PATHMTU option - t.Logf("not supported on %s", runtime.GOOS) - default: - t.Fatal(err) - } - } else { - t.Logf("path mtu for %v: %v", c.RemoteAddr(), pmtu) - } - - <-done -} - -func TestPacketConnChecksum(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - - c, err := net.ListenPacket(fmt.Sprintf("ip6:%d", iana.ProtocolOSPFIGP), "::") // OSPF for IPv6 - if err != nil { - t.Fatal(err) - } - defer c.Close() - - p := ipv6.NewPacketConn(c) - offset := 12 // see RFC 5340 - - for _, toggle := range []bool{false, true} { - if err := p.SetChecksum(toggle, offset); err != nil { - if toggle { - t.Fatalf("ipv6.PacketConn.SetChecksum(%v, %v) failed: %v", toggle, offset, err) - } else { - // Some platforms never allow to disable the kernel - // checksum processing. - t.Logf("ipv6.PacketConn.SetChecksum(%v, %v) failed: %v", toggle, offset, err) - } - } - if on, offset, err := p.Checksum(); err != nil { - t.Fatal(err) - } else { - t.Logf("kernel checksum processing enabled=%v, offset=%v", on, offset) - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_unix.go deleted file mode 100644 index 25ea545f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_unix.go +++ /dev/null @@ -1,122 +0,0 @@ -// 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. - -// +build darwin dragonfly freebsd linux netbsd openbsd - -package ipv6 - -import ( - "net" - "os" - "unsafe" -) - -func getInt(fd int, opt *sockOpt) (int, error) { - if opt.name < 1 || opt.typ != ssoTypeInt { - return 0, errOpNoSupport - } - var i int32 - l := sysSockoptLen(4) - if err := getsockopt(fd, opt.level, opt.name, unsafe.Pointer(&i), &l); err != nil { - return 0, os.NewSyscallError("getsockopt", err) - } - return int(i), nil -} - -func setInt(fd int, opt *sockOpt, v int) error { - if opt.name < 1 || opt.typ != ssoTypeInt { - return errOpNoSupport - } - i := int32(v) - return os.NewSyscallError("setsockopt", setsockopt(fd, opt.level, opt.name, unsafe.Pointer(&i), sysSockoptLen(4))) -} - -func getInterface(fd int, opt *sockOpt) (*net.Interface, error) { - if opt.name < 1 || opt.typ != ssoTypeInterface { - return nil, errOpNoSupport - } - var i int32 - l := sysSockoptLen(4) - if err := getsockopt(fd, opt.level, opt.name, unsafe.Pointer(&i), &l); err != nil { - return nil, os.NewSyscallError("getsockopt", err) - } - if i == 0 { - return nil, nil - } - ifi, err := net.InterfaceByIndex(int(i)) - if err != nil { - return nil, err - } - return ifi, nil -} - -func setInterface(fd int, opt *sockOpt, ifi *net.Interface) error { - if opt.name < 1 || opt.typ != ssoTypeInterface { - return errOpNoSupport - } - var i int32 - if ifi != nil { - i = int32(ifi.Index) - } - return os.NewSyscallError("setsockopt", setsockopt(fd, opt.level, opt.name, unsafe.Pointer(&i), sysSockoptLen(4))) -} - -func getICMPFilter(fd int, opt *sockOpt) (*ICMPFilter, error) { - if opt.name < 1 || opt.typ != ssoTypeICMPFilter { - return nil, errOpNoSupport - } - var f ICMPFilter - l := sysSockoptLen(sysSizeofICMPv6Filter) - if err := getsockopt(fd, opt.level, opt.name, unsafe.Pointer(&f.sysICMPv6Filter), &l); err != nil { - return nil, os.NewSyscallError("getsockopt", err) - } - return &f, nil -} - -func setICMPFilter(fd int, opt *sockOpt, f *ICMPFilter) error { - if opt.name < 1 || opt.typ != ssoTypeICMPFilter { - return errOpNoSupport - } - return os.NewSyscallError("setsockopt", setsockopt(fd, opt.level, opt.name, unsafe.Pointer(&f.sysICMPv6Filter), sysSizeofICMPv6Filter)) -} - -func getMTUInfo(fd int, opt *sockOpt) (*net.Interface, int, error) { - if opt.name < 1 || opt.typ != ssoTypeMTUInfo { - return nil, 0, errOpNoSupport - } - var mi sysIPv6Mtuinfo - l := sysSockoptLen(sysSizeofIPv6Mtuinfo) - if err := getsockopt(fd, opt.level, opt.name, unsafe.Pointer(&mi), &l); err != nil { - return nil, 0, os.NewSyscallError("getsockopt", err) - } - if mi.Addr.Scope_id == 0 { - return nil, int(mi.Mtu), nil - } - ifi, err := net.InterfaceByIndex(int(mi.Addr.Scope_id)) - if err != nil { - return nil, 0, err - } - return ifi, int(mi.Mtu), nil -} - -func setGroup(fd int, opt *sockOpt, ifi *net.Interface, grp net.IP) error { - if opt.name < 1 { - return errOpNoSupport - } - switch opt.typ { - case ssoTypeIPMreq: - return setsockoptIPMreq(fd, opt, ifi, grp) - case ssoTypeGroupReq: - return setsockoptGroupReq(fd, opt, ifi, grp) - default: - return errOpNoSupport - } -} - -func setSourceGroup(fd int, opt *sockOpt, ifi *net.Interface, grp, src net.IP) error { - if opt.name < 1 || opt.typ != ssoTypeGroupSourceReq { - return errOpNoSupport - } - return setsockoptGroupSourceReq(fd, opt, ifi, grp, src) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_windows.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_windows.go deleted file mode 100644 index 32c73b72..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sockopt_windows.go +++ /dev/null @@ -1,86 +0,0 @@ -// 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 ipv6 - -import ( - "net" - "os" - "syscall" - "unsafe" -) - -func getInt(fd syscall.Handle, opt *sockOpt) (int, error) { - if opt.name < 1 || opt.typ != ssoTypeInt { - return 0, errOpNoSupport - } - var i int32 - l := int32(4) - if err := syscall.Getsockopt(fd, int32(opt.level), int32(opt.name), (*byte)(unsafe.Pointer(&i)), &l); err != nil { - return 0, os.NewSyscallError("getsockopt", err) - } - return int(i), nil -} - -func setInt(fd syscall.Handle, opt *sockOpt, v int) error { - if opt.name < 1 || opt.typ != ssoTypeInt { - return errOpNoSupport - } - i := int32(v) - return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, int32(opt.level), int32(opt.name), (*byte)(unsafe.Pointer(&i)), 4)) -} - -func getInterface(fd syscall.Handle, opt *sockOpt) (*net.Interface, error) { - if opt.name < 1 || opt.typ != ssoTypeInterface { - return nil, errOpNoSupport - } - var i int32 - l := int32(4) - if err := syscall.Getsockopt(fd, int32(opt.level), int32(opt.name), (*byte)(unsafe.Pointer(&i)), &l); err != nil { - return nil, os.NewSyscallError("getsockopt", err) - } - if i == 0 { - return nil, nil - } - ifi, err := net.InterfaceByIndex(int(i)) - if err != nil { - return nil, err - } - return ifi, nil -} - -func setInterface(fd syscall.Handle, opt *sockOpt, ifi *net.Interface) error { - if opt.name < 1 || opt.typ != ssoTypeInterface { - return errOpNoSupport - } - var i int32 - if ifi != nil { - i = int32(ifi.Index) - } - return os.NewSyscallError("setsockopt", syscall.Setsockopt(fd, int32(opt.level), int32(opt.name), (*byte)(unsafe.Pointer(&i)), 4)) -} - -func getICMPFilter(fd syscall.Handle, opt *sockOpt) (*ICMPFilter, error) { - return nil, errOpNoSupport -} - -func setICMPFilter(fd syscall.Handle, opt *sockOpt, f *ICMPFilter) error { - return errOpNoSupport -} - -func getMTUInfo(fd syscall.Handle, opt *sockOpt) (*net.Interface, int, error) { - return nil, 0, errOpNoSupport -} - -func setGroup(fd syscall.Handle, opt *sockOpt, ifi *net.Interface, grp net.IP) error { - if opt.name < 1 || opt.typ != ssoTypeIPMreq { - return errOpNoSupport - } - return setsockoptIPMreq(fd, opt, ifi, grp) -} - -func setSourceGroup(fd syscall.Handle, opt *sockOpt, ifi *net.Interface, grp, src net.IP) error { - // TODO(mikio): implement this - return errOpNoSupport -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_bsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_bsd.go deleted file mode 100644 index 75a8863b..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_bsd.go +++ /dev/null @@ -1,58 +0,0 @@ -// 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. - -// +build dragonfly netbsd openbsd - -package ipv6 - -import ( - "net" - "syscall" - - "golang.org/x/net/internal/iana" -) - -type sysSockoptLen int32 - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTrafficClass: {sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass}, - ctlHopLimit: {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit}, - ctlPacketInfo: {sysIPV6_PKTINFO, sysSizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo}, - ctlNextHop: {sysIPV6_NEXTHOP, sysSizeofSockaddrInet6, marshalNextHop, parseNextHop}, - ctlPathMTU: {sysIPV6_PATHMTU, sysSizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU}, - } - - sockOpts = [ssoMax]sockOpt{ - ssoTrafficClass: {iana.ProtocolIPv6, sysIPV6_TCLASS, ssoTypeInt}, - ssoHopLimit: {iana.ProtocolIPv6, sysIPV6_UNICAST_HOPS, ssoTypeInt}, - ssoMulticastInterface: {iana.ProtocolIPv6, sysIPV6_MULTICAST_IF, ssoTypeInterface}, - ssoMulticastHopLimit: {iana.ProtocolIPv6, sysIPV6_MULTICAST_HOPS, ssoTypeInt}, - ssoMulticastLoopback: {iana.ProtocolIPv6, sysIPV6_MULTICAST_LOOP, ssoTypeInt}, - ssoReceiveTrafficClass: {iana.ProtocolIPv6, sysIPV6_RECVTCLASS, ssoTypeInt}, - ssoReceiveHopLimit: {iana.ProtocolIPv6, sysIPV6_RECVHOPLIMIT, ssoTypeInt}, - ssoReceivePacketInfo: {iana.ProtocolIPv6, sysIPV6_RECVPKTINFO, ssoTypeInt}, - ssoReceivePathMTU: {iana.ProtocolIPv6, sysIPV6_RECVPATHMTU, ssoTypeInt}, - ssoPathMTU: {iana.ProtocolIPv6, sysIPV6_PATHMTU, ssoTypeMTUInfo}, - ssoChecksum: {iana.ProtocolIPv6, sysIPV6_CHECKSUM, ssoTypeInt}, - ssoICMPFilter: {iana.ProtocolIPv6ICMP, sysICMP6_FILTER, ssoTypeICMPFilter}, - ssoJoinGroup: {iana.ProtocolIPv6, sysIPV6_JOIN_GROUP, ssoTypeIPMreq}, - ssoLeaveGroup: {iana.ProtocolIPv6, sysIPV6_LEAVE_GROUP, ssoTypeIPMreq}, - } -) - -func (sa *sysSockaddrInet6) setSockaddr(ip net.IP, i int) { - sa.Len = sysSizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], ip) - sa.Scope_id = uint32(i) -} - -func (pi *sysInet6Pktinfo) setIfindex(i int) { - pi.Ifindex = uint32(i) -} - -func (mreq *sysIPv6Mreq) setIfindex(i int) { - mreq.Interface = uint32(i) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_darwin.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_darwin.go deleted file mode 100644 index 411fb498..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_darwin.go +++ /dev/null @@ -1,135 +0,0 @@ -// 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 ipv6 - -import ( - "net" - "syscall" - "unsafe" - - "golang.org/x/net/internal/iana" -) - -type sysSockoptLen int32 - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlHopLimit: {sysIPV6_2292HOPLIMIT, 4, marshal2292HopLimit, parseHopLimit}, - ctlPacketInfo: {sysIPV6_2292PKTINFO, sysSizeofInet6Pktinfo, marshal2292PacketInfo, parsePacketInfo}, - } - - sockOpts = [ssoMax]sockOpt{ - ssoHopLimit: {iana.ProtocolIPv6, sysIPV6_UNICAST_HOPS, ssoTypeInt}, - ssoMulticastInterface: {iana.ProtocolIPv6, sysIPV6_MULTICAST_IF, ssoTypeInterface}, - ssoMulticastHopLimit: {iana.ProtocolIPv6, sysIPV6_MULTICAST_HOPS, ssoTypeInt}, - ssoMulticastLoopback: {iana.ProtocolIPv6, sysIPV6_MULTICAST_LOOP, ssoTypeInt}, - ssoReceiveHopLimit: {iana.ProtocolIPv6, sysIPV6_2292HOPLIMIT, ssoTypeInt}, - ssoReceivePacketInfo: {iana.ProtocolIPv6, sysIPV6_2292PKTINFO, ssoTypeInt}, - ssoChecksum: {iana.ProtocolIPv6, sysIPV6_CHECKSUM, ssoTypeInt}, - ssoICMPFilter: {iana.ProtocolIPv6ICMP, sysICMP6_FILTER, ssoTypeICMPFilter}, - ssoJoinGroup: {iana.ProtocolIPv6, sysIPV6_JOIN_GROUP, ssoTypeIPMreq}, - ssoLeaveGroup: {iana.ProtocolIPv6, sysIPV6_LEAVE_GROUP, ssoTypeIPMreq}, - } -) - -func init() { - // Seems like kern.osreldate is veiled on latest OS X. We use - // kern.osrelease instead. - osver, err := syscall.Sysctl("kern.osrelease") - if err != nil { - return - } - var i int - for i = range osver { - if osver[i] == '.' { - break - } - } - // The IP_PKTINFO and protocol-independent multicast API were - // introduced in OS X 10.7 (Darwin 11.0.0). But it looks like - // those features require OS X 10.8 (Darwin 12.0.0) and above. - // See http://support.apple.com/kb/HT1633. - if i > 2 || i == 2 && osver[0] >= '1' && osver[1] >= '2' { - ctlOpts[ctlTrafficClass].name = sysIPV6_TCLASS - ctlOpts[ctlTrafficClass].length = 4 - ctlOpts[ctlTrafficClass].marshal = marshalTrafficClass - ctlOpts[ctlTrafficClass].parse = parseTrafficClass - ctlOpts[ctlHopLimit].name = sysIPV6_HOPLIMIT - ctlOpts[ctlHopLimit].marshal = marshalHopLimit - ctlOpts[ctlPacketInfo].name = sysIPV6_PKTINFO - ctlOpts[ctlPacketInfo].marshal = marshalPacketInfo - ctlOpts[ctlNextHop].name = sysIPV6_NEXTHOP - ctlOpts[ctlNextHop].length = sysSizeofSockaddrInet6 - ctlOpts[ctlNextHop].marshal = marshalNextHop - ctlOpts[ctlNextHop].parse = parseNextHop - ctlOpts[ctlPathMTU].name = sysIPV6_PATHMTU - ctlOpts[ctlPathMTU].length = sysSizeofIPv6Mtuinfo - ctlOpts[ctlPathMTU].marshal = marshalPathMTU - ctlOpts[ctlPathMTU].parse = parsePathMTU - sockOpts[ssoTrafficClass].level = iana.ProtocolIPv6 - sockOpts[ssoTrafficClass].name = sysIPV6_TCLASS - sockOpts[ssoTrafficClass].typ = ssoTypeInt - sockOpts[ssoReceiveTrafficClass].level = iana.ProtocolIPv6 - sockOpts[ssoReceiveTrafficClass].name = sysIPV6_RECVTCLASS - sockOpts[ssoReceiveTrafficClass].typ = ssoTypeInt - sockOpts[ssoReceiveHopLimit].name = sysIPV6_RECVHOPLIMIT - sockOpts[ssoReceivePacketInfo].name = sysIPV6_RECVPKTINFO - sockOpts[ssoReceivePathMTU].level = iana.ProtocolIPv6 - sockOpts[ssoReceivePathMTU].name = sysIPV6_RECVPATHMTU - sockOpts[ssoReceivePathMTU].typ = ssoTypeInt - sockOpts[ssoPathMTU].level = iana.ProtocolIPv6 - sockOpts[ssoPathMTU].name = sysIPV6_PATHMTU - sockOpts[ssoPathMTU].typ = ssoTypeMTUInfo - sockOpts[ssoJoinGroup].name = sysMCAST_JOIN_GROUP - sockOpts[ssoJoinGroup].typ = ssoTypeGroupReq - sockOpts[ssoLeaveGroup].name = sysMCAST_LEAVE_GROUP - sockOpts[ssoLeaveGroup].typ = ssoTypeGroupReq - sockOpts[ssoJoinSourceGroup].level = iana.ProtocolIPv6 - sockOpts[ssoJoinSourceGroup].name = sysMCAST_JOIN_SOURCE_GROUP - sockOpts[ssoJoinSourceGroup].typ = ssoTypeGroupSourceReq - sockOpts[ssoLeaveSourceGroup].level = iana.ProtocolIPv6 - sockOpts[ssoLeaveSourceGroup].name = sysMCAST_LEAVE_SOURCE_GROUP - sockOpts[ssoLeaveSourceGroup].typ = ssoTypeGroupSourceReq - sockOpts[ssoBlockSourceGroup].level = iana.ProtocolIPv6 - sockOpts[ssoBlockSourceGroup].name = sysMCAST_BLOCK_SOURCE - sockOpts[ssoBlockSourceGroup].typ = ssoTypeGroupSourceReq - sockOpts[ssoUnblockSourceGroup].level = iana.ProtocolIPv6 - sockOpts[ssoUnblockSourceGroup].name = sysMCAST_UNBLOCK_SOURCE - sockOpts[ssoUnblockSourceGroup].typ = ssoTypeGroupSourceReq - } -} - -func (sa *sysSockaddrInet6) setSockaddr(ip net.IP, i int) { - sa.Len = sysSizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], ip) - sa.Scope_id = uint32(i) -} - -func (pi *sysInet6Pktinfo) setIfindex(i int) { - pi.Ifindex = uint32(i) -} - -func (mreq *sysIPv6Mreq) setIfindex(i int) { - mreq.Interface = uint32(i) -} - -func (gr *sysGroupReq) setGroup(grp net.IP) { - sa := (*sysSockaddrInet6)(unsafe.Pointer(&gr.Pad_cgo_0[0])) - sa.Len = sysSizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) -} - -func (gsr *sysGroupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sysSockaddrInet6)(unsafe.Pointer(&gsr.Pad_cgo_0[0])) - sa.Len = sysSizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) - sa = (*sysSockaddrInet6)(unsafe.Pointer(&gsr.Pad_cgo_1[0])) - sa.Len = sysSizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], src) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_freebsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_freebsd.go deleted file mode 100644 index b68725cb..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_freebsd.go +++ /dev/null @@ -1,93 +0,0 @@ -// 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 ipv6 - -import ( - "net" - "runtime" - "strings" - "syscall" - "unsafe" - - "golang.org/x/net/internal/iana" -) - -type sysSockoptLen int32 - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTrafficClass: {sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass}, - ctlHopLimit: {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit}, - ctlPacketInfo: {sysIPV6_PKTINFO, sysSizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo}, - ctlNextHop: {sysIPV6_NEXTHOP, sysSizeofSockaddrInet6, marshalNextHop, parseNextHop}, - ctlPathMTU: {sysIPV6_PATHMTU, sysSizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU}, - } - - sockOpts = [ssoMax]sockOpt{ - ssoTrafficClass: {iana.ProtocolIPv6, sysIPV6_TCLASS, ssoTypeInt}, - ssoHopLimit: {iana.ProtocolIPv6, sysIPV6_UNICAST_HOPS, ssoTypeInt}, - ssoMulticastInterface: {iana.ProtocolIPv6, sysIPV6_MULTICAST_IF, ssoTypeInterface}, - ssoMulticastHopLimit: {iana.ProtocolIPv6, sysIPV6_MULTICAST_HOPS, ssoTypeInt}, - ssoMulticastLoopback: {iana.ProtocolIPv6, sysIPV6_MULTICAST_LOOP, ssoTypeInt}, - ssoReceiveTrafficClass: {iana.ProtocolIPv6, sysIPV6_RECVTCLASS, ssoTypeInt}, - ssoReceiveHopLimit: {iana.ProtocolIPv6, sysIPV6_RECVHOPLIMIT, ssoTypeInt}, - ssoReceivePacketInfo: {iana.ProtocolIPv6, sysIPV6_RECVPKTINFO, ssoTypeInt}, - ssoReceivePathMTU: {iana.ProtocolIPv6, sysIPV6_RECVPATHMTU, ssoTypeInt}, - ssoPathMTU: {iana.ProtocolIPv6, sysIPV6_PATHMTU, ssoTypeMTUInfo}, - ssoChecksum: {iana.ProtocolIPv6, sysIPV6_CHECKSUM, ssoTypeInt}, - ssoICMPFilter: {iana.ProtocolIPv6ICMP, sysICMP6_FILTER, ssoTypeICMPFilter}, - ssoJoinGroup: {iana.ProtocolIPv6, sysMCAST_JOIN_GROUP, ssoTypeGroupReq}, - ssoLeaveGroup: {iana.ProtocolIPv6, sysMCAST_LEAVE_GROUP, ssoTypeGroupReq}, - ssoJoinSourceGroup: {iana.ProtocolIPv6, sysMCAST_JOIN_SOURCE_GROUP, ssoTypeGroupSourceReq}, - ssoLeaveSourceGroup: {iana.ProtocolIPv6, sysMCAST_LEAVE_SOURCE_GROUP, ssoTypeGroupSourceReq}, - ssoBlockSourceGroup: {iana.ProtocolIPv6, sysMCAST_BLOCK_SOURCE, ssoTypeGroupSourceReq}, - ssoUnblockSourceGroup: {iana.ProtocolIPv6, sysMCAST_UNBLOCK_SOURCE, ssoTypeGroupSourceReq}, - } -) - -func init() { - if runtime.GOOS == "freebsd" && runtime.GOARCH == "386" { - archs, _ := syscall.Sysctl("kern.supported_archs") - for _, s := range strings.Fields(archs) { - if s == "amd64" { - freebsd32o64 = true - break - } - } - } -} - -func (sa *sysSockaddrInet6) setSockaddr(ip net.IP, i int) { - sa.Len = sysSizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], ip) - sa.Scope_id = uint32(i) -} - -func (pi *sysInet6Pktinfo) setIfindex(i int) { - pi.Ifindex = uint32(i) -} - -func (mreq *sysIPv6Mreq) setIfindex(i int) { - mreq.Interface = uint32(i) -} - -func (gr *sysGroupReq) setGroup(grp net.IP) { - sa := (*sysSockaddrInet6)(unsafe.Pointer(&gr.Group)) - sa.Len = sysSizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) -} - -func (gsr *sysGroupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sysSockaddrInet6)(unsafe.Pointer(&gsr.Group)) - sa.Len = sysSizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) - sa = (*sysSockaddrInet6)(unsafe.Pointer(&gsr.Source)) - sa.Len = sysSizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], src) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_linux.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_linux.go deleted file mode 100644 index 00c84cf2..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_linux.go +++ /dev/null @@ -1,74 +0,0 @@ -// 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 ipv6 - -import ( - "net" - "syscall" - "unsafe" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" -) - -type sysSockoptLen int32 - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTrafficClass: {sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass}, - ctlHopLimit: {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit}, - ctlPacketInfo: {sysIPV6_PKTINFO, sysSizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo}, - ctlPathMTU: {sysIPV6_PATHMTU, sysSizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU}, - } - - sockOpts = [ssoMax]sockOpt{ - ssoTrafficClass: {iana.ProtocolIPv6, sysIPV6_TCLASS, ssoTypeInt}, - ssoHopLimit: {iana.ProtocolIPv6, sysIPV6_UNICAST_HOPS, ssoTypeInt}, - ssoMulticastInterface: {iana.ProtocolIPv6, sysIPV6_MULTICAST_IF, ssoTypeInterface}, - ssoMulticastHopLimit: {iana.ProtocolIPv6, sysIPV6_MULTICAST_HOPS, ssoTypeInt}, - ssoMulticastLoopback: {iana.ProtocolIPv6, sysIPV6_MULTICAST_LOOP, ssoTypeInt}, - ssoReceiveTrafficClass: {iana.ProtocolIPv6, sysIPV6_RECVTCLASS, ssoTypeInt}, - ssoReceiveHopLimit: {iana.ProtocolIPv6, sysIPV6_RECVHOPLIMIT, ssoTypeInt}, - ssoReceivePacketInfo: {iana.ProtocolIPv6, sysIPV6_RECVPKTINFO, ssoTypeInt}, - ssoReceivePathMTU: {iana.ProtocolIPv6, sysIPV6_RECVPATHMTU, ssoTypeInt}, - ssoPathMTU: {iana.ProtocolIPv6, sysIPV6_PATHMTU, ssoTypeMTUInfo}, - ssoChecksum: {iana.ProtocolReserved, sysIPV6_CHECKSUM, ssoTypeInt}, - ssoICMPFilter: {iana.ProtocolIPv6ICMP, sysICMPV6_FILTER, ssoTypeICMPFilter}, - ssoJoinGroup: {iana.ProtocolIPv6, sysMCAST_JOIN_GROUP, ssoTypeGroupReq}, - ssoLeaveGroup: {iana.ProtocolIPv6, sysMCAST_LEAVE_GROUP, ssoTypeGroupReq}, - ssoJoinSourceGroup: {iana.ProtocolIPv6, sysMCAST_JOIN_SOURCE_GROUP, ssoTypeGroupSourceReq}, - ssoLeaveSourceGroup: {iana.ProtocolIPv6, sysMCAST_LEAVE_SOURCE_GROUP, ssoTypeGroupSourceReq}, - ssoBlockSourceGroup: {iana.ProtocolIPv6, sysMCAST_BLOCK_SOURCE, ssoTypeGroupSourceReq}, - ssoUnblockSourceGroup: {iana.ProtocolIPv6, sysMCAST_UNBLOCK_SOURCE, ssoTypeGroupSourceReq}, - } -) - -func (sa *sysSockaddrInet6) setSockaddr(ip net.IP, i int) { - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], ip) - sa.Scope_id = uint32(i) -} - -func (pi *sysInet6Pktinfo) setIfindex(i int) { - pi.Ifindex = int32(i) -} - -func (mreq *sysIPv6Mreq) setIfindex(i int) { - mreq.Ifindex = int32(i) -} - -func (gr *sysGroupReq) setGroup(grp net.IP) { - sa := (*sysSockaddrInet6)(unsafe.Pointer(&gr.Group)) - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) -} - -func (gsr *sysGroupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sysSockaddrInet6)(unsafe.Pointer(&gsr.Group)) - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) - sa = (*sysSockaddrInet6)(unsafe.Pointer(&gsr.Source)) - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], src) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_stub.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_stub.go deleted file mode 100644 index 6c9a1430..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_stub.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build nacl plan9 solaris - -package ipv6 - -type sysSockoptLen int32 - -var ( - ctlOpts = [ctlMax]ctlOpt{} - - sockOpts = [ssoMax]sockOpt{} -) diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_windows.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_windows.go deleted file mode 100644 index fda87573..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/sys_windows.go +++ /dev/null @@ -1,63 +0,0 @@ -// 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 ipv6 - -import ( - "net" - "syscall" - - "golang.org/x/net/internal/iana" -) - -const ( - // See ws2tcpip.h. - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PKTINFO = 0x13 - - sysSizeofSockaddrInet6 = 0x1c - - sysSizeofIPv6Mreq = 0x14 -) - -type sysSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -var ( - ctlOpts = [ctlMax]ctlOpt{} - - sockOpts = [ssoMax]sockOpt{ - ssoHopLimit: {iana.ProtocolIPv6, sysIPV6_UNICAST_HOPS, ssoTypeInt}, - ssoMulticastInterface: {iana.ProtocolIPv6, sysIPV6_MULTICAST_IF, ssoTypeInterface}, - ssoMulticastHopLimit: {iana.ProtocolIPv6, sysIPV6_MULTICAST_HOPS, ssoTypeInt}, - ssoMulticastLoopback: {iana.ProtocolIPv6, sysIPV6_MULTICAST_LOOP, ssoTypeInt}, - ssoJoinGroup: {iana.ProtocolIPv6, sysIPV6_JOIN_GROUP, ssoTypeIPMreq}, - ssoLeaveGroup: {iana.ProtocolIPv6, sysIPV6_LEAVE_GROUP, ssoTypeIPMreq}, - } -) - -func (sa *sysSockaddrInet6) setSockaddr(ip net.IP, i int) { - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], ip) - sa.Scope_id = uint32(i) -} - -func (mreq *sysIPv6Mreq) setIfindex(i int) { - mreq.Interface = uint32(i) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/syscall_linux_386.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/syscall_linux_386.go deleted file mode 100644 index 82633a56..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/syscall_linux_386.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2009 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 ipv6 - -import ( - "syscall" - "unsafe" -) - -const ( - sysGETSOCKOPT = 0xf - sysSETSOCKOPT = 0xe -) - -func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) - -func getsockopt(fd, level, name int, v unsafe.Pointer, l *sysSockoptLen) error { - if _, errno := socketcall(sysGETSOCKOPT, uintptr(fd), uintptr(level), uintptr(name), uintptr(v), uintptr(unsafe.Pointer(l)), 0); errno != 0 { - return error(errno) - } - return nil -} - -func setsockopt(fd, level, name int, v unsafe.Pointer, l sysSockoptLen) error { - if _, errno := socketcall(sysSETSOCKOPT, uintptr(fd), uintptr(level), uintptr(name), uintptr(v), uintptr(l), 0); errno != 0 { - return error(errno) - } - return nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/syscall_unix.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/syscall_unix.go deleted file mode 100644 index a2bd8363..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/syscall_unix.go +++ /dev/null @@ -1,26 +0,0 @@ -// 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. - -// +build darwin dragonfly freebsd linux,!386 netbsd openbsd - -package ipv6 - -import ( - "syscall" - "unsafe" -) - -func getsockopt(fd, level, name int, v unsafe.Pointer, l *sysSockoptLen) error { - if _, _, errno := syscall.Syscall6(syscall.SYS_GETSOCKOPT, uintptr(fd), uintptr(level), uintptr(name), uintptr(v), uintptr(unsafe.Pointer(l)), 0); errno != 0 { - return error(errno) - } - return nil -} - -func setsockopt(fd, level, name int, v unsafe.Pointer, l sysSockoptLen) error { - if _, _, errno := syscall.Syscall6(syscall.SYS_SETSOCKOPT, uintptr(fd), uintptr(level), uintptr(name), uintptr(v), uintptr(l), 0); errno != 0 { - return error(errno) - } - return nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/thunk_linux_386.s b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/thunk_linux_386.s deleted file mode 100644 index daa78bc0..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/thunk_linux_386.s +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.2 - -TEXT ·socketcall(SB),4,$0-36 - JMP syscall·socketcall(SB) diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/unicast_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/unicast_test.go deleted file mode 100644 index 3ca26492..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/unicast_test.go +++ /dev/null @@ -1,185 +0,0 @@ -// 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 ipv6_test - -import ( - "bytes" - "net" - "os" - "runtime" - "testing" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/icmp" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -func TestPacketConnReadWriteUnicastUDP(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - - c, err := net.ListenPacket("udp6", "[::1]:0") - if err != nil { - t.Fatal(err) - } - defer c.Close() - p := ipv6.NewPacketConn(c) - defer p.Close() - - dst, err := net.ResolveUDPAddr("udp6", c.LocalAddr().String()) - if err != nil { - t.Fatal(err) - } - - cm := ipv6.ControlMessage{ - TrafficClass: iana.DiffServAF11 | iana.CongestionExperienced, - Src: net.IPv6loopback, - } - cf := ipv6.FlagTrafficClass | ipv6.FlagHopLimit | ipv6.FlagSrc | ipv6.FlagDst | ipv6.FlagInterface | ipv6.FlagPathMTU - ifi := nettest.RoutedInterface("ip6", net.FlagUp|net.FlagLoopback) - if ifi != nil { - cm.IfIndex = ifi.Index - } - wb := []byte("HELLO-R-U-THERE") - - for i, toggle := range []bool{true, false, true} { - if err := p.SetControlMessage(cf, toggle); err != nil { - if nettest.ProtocolNotSupported(err) { - t.Skipf("not supported on %s", runtime.GOOS) - } - t.Fatal(err) - } - cm.HopLimit = i + 1 - if err := p.SetWriteDeadline(time.Now().Add(100 * time.Millisecond)); err != nil { - t.Fatal(err) - } - if n, err := p.WriteTo(wb, &cm, dst); err != nil { - t.Fatal(err) - } else if n != len(wb) { - t.Fatalf("got %v; want %v", n, len(wb)) - } - rb := make([]byte, 128) - if err := p.SetReadDeadline(time.Now().Add(100 * time.Millisecond)); err != nil { - t.Fatal(err) - } - if n, cm, _, err := p.ReadFrom(rb); err != nil { - t.Fatal(err) - } else if !bytes.Equal(rb[:n], wb) { - t.Fatalf("got %v; want %v", rb[:n], wb) - } else { - t.Logf("rcvd cmsg: %v", cm) - } - } -} - -func TestPacketConnReadWriteUnicastICMP(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - if m, ok := nettest.SupportsRawIPSocket(); !ok { - t.Skip(m) - } - - c, err := net.ListenPacket("ip6:ipv6-icmp", "::1") - if err != nil { - t.Fatal(err) - } - defer c.Close() - p := ipv6.NewPacketConn(c) - defer p.Close() - - dst, err := net.ResolveIPAddr("ip6", "::1") - if err != nil { - t.Fatal(err) - } - - pshicmp := icmp.IPv6PseudoHeader(c.LocalAddr().(*net.IPAddr).IP, dst.IP) - cm := ipv6.ControlMessage{ - TrafficClass: iana.DiffServAF11 | iana.CongestionExperienced, - Src: net.IPv6loopback, - } - cf := ipv6.FlagTrafficClass | ipv6.FlagHopLimit | ipv6.FlagSrc | ipv6.FlagDst | ipv6.FlagInterface | ipv6.FlagPathMTU - ifi := nettest.RoutedInterface("ip6", net.FlagUp|net.FlagLoopback) - if ifi != nil { - cm.IfIndex = ifi.Index - } - - var f ipv6.ICMPFilter - f.SetAll(true) - f.Accept(ipv6.ICMPTypeEchoReply) - if err := p.SetICMPFilter(&f); err != nil { - t.Fatal(err) - } - - var psh []byte - for i, toggle := range []bool{true, false, true} { - if toggle { - psh = nil - if err := p.SetChecksum(true, 2); err != nil { - t.Fatal(err) - } - } else { - psh = pshicmp - // Some platforms never allow to disable the - // kernel checksum processing. - p.SetChecksum(false, -1) - } - wb, err := (&icmp.Message{ - Type: ipv6.ICMPTypeEchoRequest, Code: 0, - Body: &icmp.Echo{ - ID: os.Getpid() & 0xffff, Seq: i + 1, - Data: []byte("HELLO-R-U-THERE"), - }, - }).Marshal(psh) - if err != nil { - t.Fatal(err) - } - if err := p.SetControlMessage(cf, toggle); err != nil { - if nettest.ProtocolNotSupported(err) { - t.Skipf("not supported on %s", runtime.GOOS) - } - t.Fatal(err) - } - cm.HopLimit = i + 1 - if err := p.SetWriteDeadline(time.Now().Add(100 * time.Millisecond)); err != nil { - t.Fatal(err) - } - if n, err := p.WriteTo(wb, &cm, dst); err != nil { - t.Fatal(err) - } else if n != len(wb) { - t.Fatalf("got %v; want %v", n, len(wb)) - } - rb := make([]byte, 128) - if err := p.SetReadDeadline(time.Now().Add(100 * time.Millisecond)); err != nil { - t.Fatal(err) - } - if n, cm, _, err := p.ReadFrom(rb); err != nil { - switch runtime.GOOS { - case "darwin": // older darwin kernels have some limitation on receiving icmp packet through raw socket - t.Logf("not supported on %s", runtime.GOOS) - continue - } - t.Fatal(err) - } else { - t.Logf("rcvd cmsg: %v", cm) - if m, err := icmp.ParseMessage(iana.ProtocolIPv6ICMP, rb[:n]); err != nil { - t.Fatal(err) - } else if m.Type != ipv6.ICMPTypeEchoReply || m.Code != 0 { - t.Fatalf("got type=%v, code=%v; want type=%v, code=%v", m.Type, m.Code, ipv6.ICMPTypeEchoReply, 0) - } - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/unicastsockopt_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/unicastsockopt_test.go deleted file mode 100644 index 4c66d2ba..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/unicastsockopt_test.go +++ /dev/null @@ -1,111 +0,0 @@ -// 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 ipv6_test - -import ( - "net" - "runtime" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/iana" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -func TestConnUnicastSocketOptions(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - - ln, err := net.Listen("tcp6", "[::1]:0") - if err != nil { - t.Fatal(err) - } - defer ln.Close() - - done := make(chan bool) - go acceptor(t, ln, done) - - c, err := net.Dial("tcp6", ln.Addr().String()) - if err != nil { - t.Fatal(err) - } - defer c.Close() - - testUnicastSocketOptions(t, ipv6.NewConn(c)) - - <-done -} - -var packetConnUnicastSocketOptionTests = []struct { - net, proto, addr string -}{ - {"udp6", "", "[::1]:0"}, - {"ip6", ":ipv6-icmp", "::1"}, -} - -func TestPacketConnUnicastSocketOptions(t *testing.T) { - switch runtime.GOOS { - case "nacl", "plan9", "solaris", "windows": - t.Skipf("not supported on %s", runtime.GOOS) - } - if !supportsIPv6 { - t.Skip("ipv6 is not supported") - } - - m, ok := nettest.SupportsRawIPSocket() - for _, tt := range packetConnUnicastSocketOptionTests { - if tt.net == "ip6" && !ok { - t.Log(m) - continue - } - c, err := net.ListenPacket(tt.net+tt.proto, tt.addr) - if err != nil { - t.Fatal(err) - } - defer c.Close() - - testUnicastSocketOptions(t, ipv6.NewPacketConn(c)) - } -} - -type testIPv6UnicastConn interface { - TrafficClass() (int, error) - SetTrafficClass(int) error - HopLimit() (int, error) - SetHopLimit(int) error -} - -func testUnicastSocketOptions(t *testing.T, c testIPv6UnicastConn) { - tclass := iana.DiffServCS0 | iana.NotECNTransport - if err := c.SetTrafficClass(tclass); err != nil { - switch runtime.GOOS { - case "darwin": // older darwin kernels don't support IPV6_TCLASS option - t.Logf("not supported on %s", runtime.GOOS) - goto next - } - t.Fatal(err) - } - if v, err := c.TrafficClass(); err != nil { - t.Fatal(err) - } else if v != tclass { - t.Fatalf("got %v; want %v", v, tclass) - } - -next: - hoplim := 255 - if err := c.SetHopLimit(hoplim); err != nil { - t.Fatal(err) - } - if v, err := c.HopLimit(); err != nil { - t.Fatal(err) - } else if v != hoplim { - t.Fatalf("got %v; want %v", v, hoplim) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_darwin.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_darwin.go deleted file mode 100644 index cb044b03..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_darwin.go +++ /dev/null @@ -1,131 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_darwin.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - sysIPV6_2292PKTINFO = 0x13 - sysIPV6_2292HOPLIMIT = 0x14 - sysIPV6_2292NEXTHOP = 0x15 - sysIPV6_2292HOPOPTS = 0x16 - sysIPV6_2292DSTOPTS = 0x17 - sysIPV6_2292RTHDR = 0x18 - - sysIPV6_2292PKTOPTIONS = 0x19 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_IPSEC_POLICY = 0x1c - - sysIPV6_RECVTCLASS = 0x23 - sysIPV6_TCLASS = 0x24 - - sysIPV6_RTHDRDSTOPTS = 0x39 - - sysIPV6_RECVPKTINFO = 0x3d - - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_AUTOFLOWLABEL = 0x3b - - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_PREFER_TEMPADDR = 0x3f - - sysIPV6_MSFILTER = 0x4a - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sysIPV6_BOUND_IF = 0x7d - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sysSizeofSockaddrStorage = 0x80 - sysSizeofSockaddrInet6 = 0x1c - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x20 - - sysSizeofIPv6Mreq = 0x14 - sysSizeofGroupReq = 0x84 - sysSizeofGroupSourceReq = 0x104 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysSockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sysSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type sysICMPv6Filter struct { - Filt [8]uint32 -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [128]byte -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [128]byte - Pad_cgo_1 [128]byte -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_dragonfly.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_dragonfly.go deleted file mode 100644 index 5a03ab73..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_dragonfly.go +++ /dev/null @@ -1,90 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_dragonfly.go - -// +build dragonfly - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_IPSEC_POLICY = 0x1c - - sysIPV6_RTHDRDSTOPTS = 0x23 - sysIPV6_RECVPKTINFO = 0x24 - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_RECVTCLASS = 0x39 - - sysIPV6_AUTOFLOWLABEL = 0x3b - - sysIPV6_TCLASS = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_PREFER_TEMPADDR = 0x3f - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sysSizeofSockaddrInet6 = 0x1c - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x20 - - sysSizeofIPv6Mreq = 0x14 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type sysICMPv6Filter struct { - Filt [8]uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_freebsd_386.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_freebsd_386.go deleted file mode 100644 index 4ace96f0..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_freebsd_386.go +++ /dev/null @@ -1,122 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_IPSEC_POLICY = 0x1c - - sysIPV6_RTHDRDSTOPTS = 0x23 - - sysIPV6_RECVPKTINFO = 0x24 - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_RECVTCLASS = 0x39 - - sysIPV6_AUTOFLOWLABEL = 0x3b - - sysIPV6_TCLASS = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_PREFER_TEMPADDR = 0x3f - - sysIPV6_BINDANY = 0x40 - - sysIPV6_MSFILTER = 0x4a - - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sysSizeofSockaddrStorage = 0x80 - sysSizeofSockaddrInet6 = 0x1c - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x20 - - sysSizeofIPv6Mreq = 0x14 - sysSizeofGroupReq = 0x84 - sysSizeofGroupSourceReq = 0x104 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysSockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sysSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type sysGroupReq struct { - Interface uint32 - Group sysSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Group sysSockaddrStorage - Source sysSockaddrStorage -} - -type sysICMPv6Filter struct { - Filt [8]uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_freebsd_amd64.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_freebsd_amd64.go deleted file mode 100644 index 4a62c2d5..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_freebsd_amd64.go +++ /dev/null @@ -1,124 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_IPSEC_POLICY = 0x1c - - sysIPV6_RTHDRDSTOPTS = 0x23 - - sysIPV6_RECVPKTINFO = 0x24 - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_RECVTCLASS = 0x39 - - sysIPV6_AUTOFLOWLABEL = 0x3b - - sysIPV6_TCLASS = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_PREFER_TEMPADDR = 0x3f - - sysIPV6_BINDANY = 0x40 - - sysIPV6_MSFILTER = 0x4a - - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sysSizeofSockaddrStorage = 0x80 - sysSizeofSockaddrInet6 = 0x1c - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x20 - - sysSizeofIPv6Mreq = 0x14 - sysSizeofGroupReq = 0x88 - sysSizeofGroupSourceReq = 0x108 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysSockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sysSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysSockaddrStorage - Source sysSockaddrStorage -} - -type sysICMPv6Filter struct { - Filt [8]uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_freebsd_arm.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_freebsd_arm.go deleted file mode 100644 index 4a62c2d5..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_freebsd_arm.go +++ /dev/null @@ -1,124 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_IPSEC_POLICY = 0x1c - - sysIPV6_RTHDRDSTOPTS = 0x23 - - sysIPV6_RECVPKTINFO = 0x24 - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_RECVTCLASS = 0x39 - - sysIPV6_AUTOFLOWLABEL = 0x3b - - sysIPV6_TCLASS = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_PREFER_TEMPADDR = 0x3f - - sysIPV6_BINDANY = 0x40 - - sysIPV6_MSFILTER = 0x4a - - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sysSizeofSockaddrStorage = 0x80 - sysSizeofSockaddrInet6 = 0x1c - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x20 - - sysSizeofIPv6Mreq = 0x14 - sysSizeofGroupReq = 0x88 - sysSizeofGroupSourceReq = 0x108 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysSockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sysSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysSockaddrStorage - Source sysSockaddrStorage -} - -type sysICMPv6Filter struct { - Filt [8]uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_386.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_386.go deleted file mode 100644 index 27279292..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_386.go +++ /dev/null @@ -1,152 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSizeofKernelSockaddrStorage = 0x80 - sysSizeofSockaddrInet6 = 0x1c - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x20 - sysSizeofIPv6FlowlabelReq = 0x20 - - sysSizeofIPv6Mreq = 0x14 - sysSizeofGroupReq = 0x84 - sysSizeofGroupSourceReq = 0x104 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysKernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sysSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type sysGroupReq struct { - Interface uint32 - Group sysKernelSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Group sysKernelSockaddrStorage - Source sysKernelSockaddrStorage -} - -type sysICMPv6Filter struct { - Data [8]uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_amd64.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_amd64.go deleted file mode 100644 index 2f742e95..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_amd64.go +++ /dev/null @@ -1,154 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSizeofKernelSockaddrStorage = 0x80 - sysSizeofSockaddrInet6 = 0x1c - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x20 - sysSizeofIPv6FlowlabelReq = 0x20 - - sysSizeofIPv6Mreq = 0x14 - sysSizeofGroupReq = 0x88 - sysSizeofGroupSourceReq = 0x108 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysKernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sysSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage - Source sysKernelSockaddrStorage -} - -type sysICMPv6Filter struct { - Data [8]uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_arm.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_arm.go deleted file mode 100644 index 27279292..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_arm.go +++ /dev/null @@ -1,152 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSizeofKernelSockaddrStorage = 0x80 - sysSizeofSockaddrInet6 = 0x1c - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x20 - sysSizeofIPv6FlowlabelReq = 0x20 - - sysSizeofIPv6Mreq = 0x14 - sysSizeofGroupReq = 0x84 - sysSizeofGroupSourceReq = 0x104 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysKernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sysSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type sysGroupReq struct { - Interface uint32 - Group sysKernelSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Group sysKernelSockaddrStorage - Source sysKernelSockaddrStorage -} - -type sysICMPv6Filter struct { - Data [8]uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_arm64.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_arm64.go deleted file mode 100644 index ab104645..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_arm64.go +++ /dev/null @@ -1,156 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -// +build linux,arm64 - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSizeofKernelSockaddrStorage = 0x80 - sysSizeofSockaddrInet6 = 0x1c - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x20 - sysSizeofIPv6FlowlabelReq = 0x20 - - sysSizeofIPv6Mreq = 0x14 - sysSizeofGroupReq = 0x88 - sysSizeofGroupSourceReq = 0x108 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysKernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sysSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage - Source sysKernelSockaddrStorage -} - -type sysICMPv6Filter struct { - Data [8]uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_ppc64.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_ppc64.go deleted file mode 100644 index b99b8a51..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_ppc64.go +++ /dev/null @@ -1,156 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -// +build linux,ppc64 - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSizeofKernelSockaddrStorage = 0x80 - sysSizeofSockaddrInet6 = 0x1c - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x20 - sysSizeofIPv6FlowlabelReq = 0x20 - - sysSizeofIPv6Mreq = 0x14 - sysSizeofGroupReq = 0x88 - sysSizeofGroupSourceReq = 0x108 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysKernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sysSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage - Source sysKernelSockaddrStorage -} - -type sysICMPv6Filter struct { - Data [8]uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_ppc64le.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_ppc64le.go deleted file mode 100644 index 992b56e2..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_linux_ppc64le.go +++ /dev/null @@ -1,156 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -// +build linux,ppc64le - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSizeofKernelSockaddrStorage = 0x80 - sysSizeofSockaddrInet6 = 0x1c - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x20 - sysSizeofIPv6FlowlabelReq = 0x20 - - sysSizeofIPv6Mreq = 0x14 - sysSizeofGroupReq = 0x88 - sysSizeofGroupSourceReq = 0x108 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysKernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sysSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type sysGroupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage -} - -type sysGroupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sysKernelSockaddrStorage - Source sysKernelSockaddrStorage -} - -type sysICMPv6Filter struct { - Data [8]uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_netbsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_netbsd.go deleted file mode 100644 index d6ec88e3..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_netbsd.go +++ /dev/null @@ -1,84 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_netbsd.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_IPSEC_POLICY = 0x1c - - sysIPV6_RTHDRDSTOPTS = 0x23 - - sysIPV6_RECVPKTINFO = 0x24 - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_RECVTCLASS = 0x39 - - sysIPV6_TCLASS = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sysSizeofSockaddrInet6 = 0x1c - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x20 - - sysSizeofIPv6Mreq = 0x14 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type sysICMPv6Filter struct { - Filt [8]uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_openbsd.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_openbsd.go deleted file mode 100644 index 3e080b78..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_openbsd.go +++ /dev/null @@ -1,93 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_openbsd.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_RTHDRDSTOPTS = 0x23 - - sysIPV6_RECVPKTINFO = 0x24 - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_AUTH_LEVEL = 0x35 - sysIPV6_ESP_TRANS_LEVEL = 0x36 - sysIPV6_ESP_NETWORK_LEVEL = 0x37 - sysIPSEC6_OUTSA = 0x38 - sysIPV6_RECVTCLASS = 0x39 - - sysIPV6_AUTOFLOWLABEL = 0x3b - sysIPV6_IPCOMP_LEVEL = 0x3c - - sysIPV6_TCLASS = 0x3d - sysIPV6_DONTFRAG = 0x3e - sysIPV6_PIPEX = 0x3f - - sysIPV6_RTABLE = 0x1021 - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sysSizeofSockaddrInet6 = 0x1c - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x20 - - sysSizeofIPv6Mreq = 0x14 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type sysICMPv6Filter struct { - Filt [8]uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_solaris.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_solaris.go deleted file mode 100644 index cdf00c25..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6/zsys_solaris.go +++ /dev/null @@ -1,105 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_solaris.go - -// +build solaris - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x5 - sysIPV6_MULTICAST_IF = 0x6 - sysIPV6_MULTICAST_HOPS = 0x7 - sysIPV6_MULTICAST_LOOP = 0x8 - sysIPV6_JOIN_GROUP = 0x9 - sysIPV6_LEAVE_GROUP = 0xa - - sysIPV6_PKTINFO = 0xb - - sysIPV6_HOPLIMIT = 0xc - sysIPV6_NEXTHOP = 0xd - sysIPV6_HOPOPTS = 0xe - sysIPV6_DSTOPTS = 0xf - - sysIPV6_RTHDR = 0x10 - sysIPV6_RTHDRDSTOPTS = 0x11 - - sysIPV6_RECVPKTINFO = 0x12 - sysIPV6_RECVHOPLIMIT = 0x13 - sysIPV6_RECVHOPOPTS = 0x14 - - sysIPV6_RECVRTHDR = 0x16 - - sysIPV6_RECVRTHDRDSTOPTS = 0x17 - - sysIPV6_CHECKSUM = 0x18 - sysIPV6_RECVTCLASS = 0x19 - sysIPV6_USE_MIN_MTU = 0x20 - sysIPV6_DONTFRAG = 0x21 - sysIPV6_SEC_OPT = 0x22 - sysIPV6_SRC_PREFERENCES = 0x23 - sysIPV6_RECVPATHMTU = 0x24 - sysIPV6_PATHMTU = 0x25 - sysIPV6_TCLASS = 0x26 - sysIPV6_V6ONLY = 0x27 - - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_PREFER_SRC_HOME = 0x1 - sysIPV6_PREFER_SRC_COA = 0x2 - sysIPV6_PREFER_SRC_PUBLIC = 0x4 - sysIPV6_PREFER_SRC_TMP = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x10 - sysIPV6_PREFER_SRC_CGA = 0x20 - - sysIPV6_PREFER_SRC_MIPMASK = 0x3 - sysIPV6_PREFER_SRC_MIPDEFAULT = 0x1 - sysIPV6_PREFER_SRC_TMPMASK = 0xc - sysIPV6_PREFER_SRC_TMPDEFAULT = 0x4 - sysIPV6_PREFER_SRC_CGAMASK = 0x30 - sysIPV6_PREFER_SRC_CGADEFAULT = 0x10 - - sysIPV6_PREFER_SRC_MASK = 0x3f - - sysIPV6_PREFER_SRC_DEFAULT = 0x15 - - sysIPV6_BOUND_IF = 0x41 - sysIPV6_UNSPEC_SRC = 0x42 - - sysICMP6_FILTER = 0x1 - - sysSizeofSockaddrInet6 = 0x20 - sysSizeofInet6Pktinfo = 0x14 - sysSizeofIPv6Mtuinfo = 0x24 - - sysSizeofIPv6Mreq = 0x14 - - sysSizeofICMPv6Filter = 0x20 -) - -type sysSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 - X__sin6_src_id uint32 -} - -type sysInet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type sysIPv6Mtuinfo struct { - Addr sysSockaddrInet6 - Mtu uint32 -} - -type sysIPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type sysICMPv6Filter struct { - X__icmp6_filt [8]uint32 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/netutil/listen.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/netutil/listen.go deleted file mode 100644 index a2591f83..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/netutil/listen.go +++ /dev/null @@ -1,48 +0,0 @@ -// 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 netutil provides network utility functions, complementing the more -// common ones in the net package. -package netutil - -import ( - "net" - "sync" -) - -// LimitListener returns a Listener that accepts at most n simultaneous -// connections from the provided Listener. -func LimitListener(l net.Listener, n int) net.Listener { - return &limitListener{l, make(chan struct{}, n)} -} - -type limitListener struct { - net.Listener - sem chan struct{} -} - -func (l *limitListener) acquire() { l.sem <- struct{}{} } -func (l *limitListener) release() { <-l.sem } - -func (l *limitListener) Accept() (net.Conn, error) { - l.acquire() - c, err := l.Listener.Accept() - if err != nil { - l.release() - return nil, err - } - return &limitListenerConn{Conn: c, release: l.release}, nil -} - -type limitListenerConn struct { - net.Conn - releaseOnce sync.Once - release func() -} - -func (l *limitListenerConn) Close() error { - err := l.Conn.Close() - l.releaseOnce.Do(l.release) - return err -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/netutil/listen_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/netutil/listen_test.go deleted file mode 100644 index 7990384c..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/netutil/listen_test.go +++ /dev/null @@ -1,106 +0,0 @@ -// 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. - -// +build go1.3 - -// (We only run this test on Go 1.3 because the HTTP client timeout behavior -// was bad in previous releases, causing occasional deadlocks.) - -package netutil - -import ( - "errors" - "fmt" - "io" - "io/ioutil" - "net" - "net/http" - "sync" - "sync/atomic" - "testing" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/nettest" -) - -func TestLimitListener(t *testing.T) { - const max = 5 - attempts := (nettest.MaxOpenFiles() - max) / 2 - if attempts > 256 { // maximum length of accept queue is 128 by default - attempts = 256 - } - - l, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - t.Fatal(err) - } - defer l.Close() - l = LimitListener(l, max) - - var open int32 - go http.Serve(l, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if n := atomic.AddInt32(&open, 1); n > max { - t.Errorf("%d open connections, want <= %d", n, max) - } - defer atomic.AddInt32(&open, -1) - time.Sleep(10 * time.Millisecond) - fmt.Fprint(w, "some body") - })) - - var wg sync.WaitGroup - var failed int32 - for i := 0; i < attempts; i++ { - wg.Add(1) - go func() { - defer wg.Done() - c := http.Client{Timeout: 3 * time.Second} - r, err := c.Get("http://" + l.Addr().String()) - if err != nil { - t.Log(err) - atomic.AddInt32(&failed, 1) - return - } - defer r.Body.Close() - io.Copy(ioutil.Discard, r.Body) - }() - } - wg.Wait() - - // We expect some Gets to fail as the kernel's accept queue is filled, - // but most should succeed. - if int(failed) >= attempts/2 { - t.Errorf("%d requests failed within %d attempts", failed, attempts) - } -} - -type errorListener struct { - net.Listener -} - -func (errorListener) Accept() (net.Conn, error) { - return nil, errFake -} - -var errFake = errors.New("fake error from errorListener") - -// This used to hang. -func TestLimitListenerError(t *testing.T) { - donec := make(chan bool, 1) - go func() { - const n = 2 - ll := LimitListener(errorListener{}, n) - for i := 0; i < n+1; i++ { - _, err := ll.Accept() - if err != errFake { - t.Fatalf("Accept error = %v; want errFake", err) - } - } - donec <- true - }() - select { - case <-donec: - case <-time.After(5 * time.Second): - t.Fatal("timeout. deadlock?") - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/package.json b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/package.json deleted file mode 100644 index 90d5bb22..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "go-net", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "go-text", - "hash": "QmVgdgtv5rUcWWcHvHN1vdGkXi8UNztJ7JuT72YUJgG2ic", - "version": "0.0.0" - }, - { - "name": "go-crypto", - "hash": "QmYuvLUCBYFK656JmhuWc4wGpuCgE1wpt4E4wcL2y9ej6R", - "version": "0.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "golang.org/x/net" - } -} \ No newline at end of file diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/direct.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/direct.go deleted file mode 100644 index 4c5ad88b..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/direct.go +++ /dev/null @@ -1,18 +0,0 @@ -// 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 proxy - -import ( - "net" -) - -type direct struct{} - -// Direct is a direct proxy: one that makes network connections directly. -var Direct = direct{} - -func (direct) Dial(network, addr string) (net.Conn, error) { - return net.Dial(network, addr) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/per_host.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/per_host.go deleted file mode 100644 index f540b196..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/per_host.go +++ /dev/null @@ -1,140 +0,0 @@ -// 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 proxy - -import ( - "net" - "strings" -) - -// A PerHost directs connections to a default Dialer unless the hostname -// requested matches one of a number of exceptions. -type PerHost struct { - def, bypass Dialer - - bypassNetworks []*net.IPNet - bypassIPs []net.IP - bypassZones []string - bypassHosts []string -} - -// NewPerHost returns a PerHost Dialer that directs connections to either -// defaultDialer or bypass, depending on whether the connection matches one of -// the configured rules. -func NewPerHost(defaultDialer, bypass Dialer) *PerHost { - return &PerHost{ - def: defaultDialer, - bypass: bypass, - } -} - -// Dial connects to the address addr on the given network through either -// defaultDialer or bypass. -func (p *PerHost) Dial(network, addr string) (c net.Conn, err error) { - host, _, err := net.SplitHostPort(addr) - if err != nil { - return nil, err - } - - return p.dialerForRequest(host).Dial(network, addr) -} - -func (p *PerHost) dialerForRequest(host string) Dialer { - if ip := net.ParseIP(host); ip != nil { - for _, net := range p.bypassNetworks { - if net.Contains(ip) { - return p.bypass - } - } - for _, bypassIP := range p.bypassIPs { - if bypassIP.Equal(ip) { - return p.bypass - } - } - return p.def - } - - for _, zone := range p.bypassZones { - if strings.HasSuffix(host, zone) { - return p.bypass - } - if host == zone[1:] { - // For a zone "example.com", we match "example.com" - // too. - return p.bypass - } - } - for _, bypassHost := range p.bypassHosts { - if bypassHost == host { - return p.bypass - } - } - return p.def -} - -// AddFromString parses a string that contains comma-separated values -// specifying hosts that should use the bypass proxy. Each value is either an -// IP address, a CIDR range, a zone (*.example.com) or a hostname -// (localhost). A best effort is made to parse the string and errors are -// ignored. -func (p *PerHost) AddFromString(s string) { - hosts := strings.Split(s, ",") - for _, host := range hosts { - host = strings.TrimSpace(host) - if len(host) == 0 { - continue - } - if strings.Contains(host, "/") { - // We assume that it's a CIDR address like 127.0.0.0/8 - if _, net, err := net.ParseCIDR(host); err == nil { - p.AddNetwork(net) - } - continue - } - if ip := net.ParseIP(host); ip != nil { - p.AddIP(ip) - continue - } - if strings.HasPrefix(host, "*.") { - p.AddZone(host[1:]) - continue - } - p.AddHost(host) - } -} - -// AddIP specifies an IP address that will use the bypass proxy. Note that -// this will only take effect if a literal IP address is dialed. A connection -// to a named host will never match an IP. -func (p *PerHost) AddIP(ip net.IP) { - p.bypassIPs = append(p.bypassIPs, ip) -} - -// AddNetwork specifies an IP range that will use the bypass proxy. Note that -// this will only take effect if a literal IP address is dialed. A connection -// to a named host will never match. -func (p *PerHost) AddNetwork(net *net.IPNet) { - p.bypassNetworks = append(p.bypassNetworks, net) -} - -// AddZone specifies a DNS suffix that will use the bypass proxy. A zone of -// "example.com" matches "example.com" and all of its subdomains. -func (p *PerHost) AddZone(zone string) { - if strings.HasSuffix(zone, ".") { - zone = zone[:len(zone)-1] - } - if !strings.HasPrefix(zone, ".") { - zone = "." + zone - } - p.bypassZones = append(p.bypassZones, zone) -} - -// AddHost specifies a hostname that will use the bypass proxy. -func (p *PerHost) AddHost(host string) { - if strings.HasSuffix(host, ".") { - host = host[:len(host)-1] - } - p.bypassHosts = append(p.bypassHosts, host) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/per_host_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/per_host_test.go deleted file mode 100644 index a7d80957..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/per_host_test.go +++ /dev/null @@ -1,55 +0,0 @@ -// 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 proxy - -import ( - "errors" - "net" - "reflect" - "testing" -) - -type recordingProxy struct { - addrs []string -} - -func (r *recordingProxy) Dial(network, addr string) (net.Conn, error) { - r.addrs = append(r.addrs, addr) - return nil, errors.New("recordingProxy") -} - -func TestPerHost(t *testing.T) { - var def, bypass recordingProxy - perHost := NewPerHost(&def, &bypass) - perHost.AddFromString("localhost,*.zone,127.0.0.1,10.0.0.1/8,1000::/16") - - expectedDef := []string{ - "example.com:123", - "1.2.3.4:123", - "[1001::]:123", - } - expectedBypass := []string{ - "localhost:123", - "zone:123", - "foo.zone:123", - "127.0.0.1:123", - "10.1.2.3:123", - "[1000::]:123", - } - - for _, addr := range expectedDef { - perHost.Dial("tcp", addr) - } - for _, addr := range expectedBypass { - perHost.Dial("tcp", addr) - } - - if !reflect.DeepEqual(expectedDef, def.addrs) { - t.Errorf("Hosts which went to the default proxy didn't match. Got %v, want %v", def.addrs, expectedDef) - } - if !reflect.DeepEqual(expectedBypass, bypass.addrs) { - t.Errorf("Hosts which went to the bypass proxy didn't match. Got %v, want %v", bypass.addrs, expectedBypass) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/proxy.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/proxy.go deleted file mode 100644 index 8ccb0c5f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/proxy.go +++ /dev/null @@ -1,94 +0,0 @@ -// 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 proxy provides support for a variety of protocols to proxy network -// data. -package proxy - -import ( - "errors" - "net" - "net/url" - "os" -) - -// A Dialer is a means to establish a connection. -type Dialer interface { - // Dial connects to the given address via the proxy. - Dial(network, addr string) (c net.Conn, err error) -} - -// Auth contains authentication parameters that specific Dialers may require. -type Auth struct { - User, Password string -} - -// FromEnvironment returns the dialer specified by the proxy related variables in -// the environment. -func FromEnvironment() Dialer { - allProxy := os.Getenv("all_proxy") - if len(allProxy) == 0 { - return Direct - } - - proxyURL, err := url.Parse(allProxy) - if err != nil { - return Direct - } - proxy, err := FromURL(proxyURL, Direct) - if err != nil { - return Direct - } - - noProxy := os.Getenv("no_proxy") - if len(noProxy) == 0 { - return proxy - } - - perHost := NewPerHost(proxy, Direct) - perHost.AddFromString(noProxy) - return perHost -} - -// proxySchemes is a map from URL schemes to a function that creates a Dialer -// from a URL with such a scheme. -var proxySchemes map[string]func(*url.URL, Dialer) (Dialer, error) - -// RegisterDialerType takes a URL scheme and a function to generate Dialers from -// a URL with that scheme and a forwarding Dialer. Registered schemes are used -// by FromURL. -func RegisterDialerType(scheme string, f func(*url.URL, Dialer) (Dialer, error)) { - if proxySchemes == nil { - proxySchemes = make(map[string]func(*url.URL, Dialer) (Dialer, error)) - } - proxySchemes[scheme] = f -} - -// FromURL returns a Dialer given a URL specification and an underlying -// Dialer for it to make network requests. -func FromURL(u *url.URL, forward Dialer) (Dialer, error) { - var auth *Auth - if u.User != nil { - auth = new(Auth) - auth.User = u.User.Username() - if p, ok := u.User.Password(); ok { - auth.Password = p - } - } - - switch u.Scheme { - case "socks5": - return SOCKS5("tcp", u.Host, auth, forward) - } - - // If the scheme doesn't match any of the built-in schemes, see if it - // was registered by another package. - if proxySchemes != nil { - if f, ok := proxySchemes[u.Scheme]; ok { - return f(u, forward) - } - } - - return nil, errors.New("proxy: unknown scheme: " + u.Scheme) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/proxy_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/proxy_test.go deleted file mode 100644 index c19a5c06..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/proxy_test.go +++ /dev/null @@ -1,142 +0,0 @@ -// 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 proxy - -import ( - "io" - "net" - "net/url" - "strconv" - "sync" - "testing" -) - -func TestFromURL(t *testing.T) { - endSystem, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - t.Fatalf("net.Listen failed: %v", err) - } - defer endSystem.Close() - gateway, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - t.Fatalf("net.Listen failed: %v", err) - } - defer gateway.Close() - - var wg sync.WaitGroup - wg.Add(1) - go socks5Gateway(t, gateway, endSystem, socks5Domain, &wg) - - url, err := url.Parse("socks5://user:password@" + gateway.Addr().String()) - if err != nil { - t.Fatalf("url.Parse failed: %v", err) - } - proxy, err := FromURL(url, Direct) - if err != nil { - t.Fatalf("FromURL failed: %v", err) - } - _, port, err := net.SplitHostPort(endSystem.Addr().String()) - if err != nil { - t.Fatalf("net.SplitHostPort failed: %v", err) - } - if c, err := proxy.Dial("tcp", "localhost:"+port); err != nil { - t.Fatalf("FromURL.Dial failed: %v", err) - } else { - c.Close() - } - - wg.Wait() -} - -func TestSOCKS5(t *testing.T) { - endSystem, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - t.Fatalf("net.Listen failed: %v", err) - } - defer endSystem.Close() - gateway, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - t.Fatalf("net.Listen failed: %v", err) - } - defer gateway.Close() - - var wg sync.WaitGroup - wg.Add(1) - go socks5Gateway(t, gateway, endSystem, socks5IP4, &wg) - - proxy, err := SOCKS5("tcp", gateway.Addr().String(), nil, Direct) - if err != nil { - t.Fatalf("SOCKS5 failed: %v", err) - } - if c, err := proxy.Dial("tcp", endSystem.Addr().String()); err != nil { - t.Fatalf("SOCKS5.Dial failed: %v", err) - } else { - c.Close() - } - - wg.Wait() -} - -func socks5Gateway(t *testing.T, gateway, endSystem net.Listener, typ byte, wg *sync.WaitGroup) { - defer wg.Done() - - c, err := gateway.Accept() - if err != nil { - t.Errorf("net.Listener.Accept failed: %v", err) - return - } - defer c.Close() - - b := make([]byte, 32) - var n int - if typ == socks5Domain { - n = 4 - } else { - n = 3 - } - if _, err := io.ReadFull(c, b[:n]); err != nil { - t.Errorf("io.ReadFull failed: %v", err) - return - } - if _, err := c.Write([]byte{socks5Version, socks5AuthNone}); err != nil { - t.Errorf("net.Conn.Write failed: %v", err) - return - } - if typ == socks5Domain { - n = 16 - } else { - n = 10 - } - if _, err := io.ReadFull(c, b[:n]); err != nil { - t.Errorf("io.ReadFull failed: %v", err) - return - } - if b[0] != socks5Version || b[1] != socks5Connect || b[2] != 0x00 || b[3] != typ { - t.Errorf("got an unexpected packet: %#02x %#02x %#02x %#02x", b[0], b[1], b[2], b[3]) - return - } - if typ == socks5Domain { - copy(b[:5], []byte{socks5Version, 0x00, 0x00, socks5Domain, 9}) - b = append(b, []byte("localhost")...) - } else { - copy(b[:4], []byte{socks5Version, 0x00, 0x00, socks5IP4}) - } - host, port, err := net.SplitHostPort(endSystem.Addr().String()) - if err != nil { - t.Errorf("net.SplitHostPort failed: %v", err) - return - } - b = append(b, []byte(net.ParseIP(host).To4())...) - p, err := strconv.Atoi(port) - if err != nil { - t.Errorf("strconv.Atoi failed: %v", err) - return - } - b = append(b, []byte{byte(p >> 8), byte(p)}...) - if _, err := c.Write(b); err != nil { - t.Errorf("net.Conn.Write failed: %v", err) - return - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/socks5.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/socks5.go deleted file mode 100644 index 9b962823..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/proxy/socks5.go +++ /dev/null @@ -1,210 +0,0 @@ -// 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 proxy - -import ( - "errors" - "io" - "net" - "strconv" -) - -// SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given address -// with an optional username and password. See RFC 1928. -func SOCKS5(network, addr string, auth *Auth, forward Dialer) (Dialer, error) { - s := &socks5{ - network: network, - addr: addr, - forward: forward, - } - if auth != nil { - s.user = auth.User - s.password = auth.Password - } - - return s, nil -} - -type socks5 struct { - user, password string - network, addr string - forward Dialer -} - -const socks5Version = 5 - -const ( - socks5AuthNone = 0 - socks5AuthPassword = 2 -) - -const socks5Connect = 1 - -const ( - socks5IP4 = 1 - socks5Domain = 3 - socks5IP6 = 4 -) - -var socks5Errors = []string{ - "", - "general failure", - "connection forbidden", - "network unreachable", - "host unreachable", - "connection refused", - "TTL expired", - "command not supported", - "address type not supported", -} - -// Dial connects to the address addr on the network net via the SOCKS5 proxy. -func (s *socks5) Dial(network, addr string) (net.Conn, error) { - switch network { - case "tcp", "tcp6", "tcp4": - default: - return nil, errors.New("proxy: no support for SOCKS5 proxy connections of type " + network) - } - - conn, err := s.forward.Dial(s.network, s.addr) - if err != nil { - return nil, err - } - closeConn := &conn - defer func() { - if closeConn != nil { - (*closeConn).Close() - } - }() - - host, portStr, err := net.SplitHostPort(addr) - if err != nil { - return nil, err - } - - port, err := strconv.Atoi(portStr) - if err != nil { - return nil, errors.New("proxy: failed to parse port number: " + portStr) - } - if port < 1 || port > 0xffff { - return nil, errors.New("proxy: port number out of range: " + portStr) - } - - // the size here is just an estimate - buf := make([]byte, 0, 6+len(host)) - - buf = append(buf, socks5Version) - if len(s.user) > 0 && len(s.user) < 256 && len(s.password) < 256 { - buf = append(buf, 2 /* num auth methods */, socks5AuthNone, socks5AuthPassword) - } else { - buf = append(buf, 1 /* num auth methods */, socks5AuthNone) - } - - if _, err := conn.Write(buf); err != nil { - return nil, errors.New("proxy: failed to write greeting to SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - if _, err := io.ReadFull(conn, buf[:2]); err != nil { - return nil, errors.New("proxy: failed to read greeting from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - if buf[0] != 5 { - return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " has unexpected version " + strconv.Itoa(int(buf[0]))) - } - if buf[1] == 0xff { - return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " requires authentication") - } - - if buf[1] == socks5AuthPassword { - buf = buf[:0] - buf = append(buf, 1 /* password protocol version */) - buf = append(buf, uint8(len(s.user))) - buf = append(buf, s.user...) - buf = append(buf, uint8(len(s.password))) - buf = append(buf, s.password...) - - if _, err := conn.Write(buf); err != nil { - return nil, errors.New("proxy: failed to write authentication request to SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - if _, err := io.ReadFull(conn, buf[:2]); err != nil { - return nil, errors.New("proxy: failed to read authentication reply from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - if buf[1] != 0 { - return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " rejected username/password") - } - } - - buf = buf[:0] - buf = append(buf, socks5Version, socks5Connect, 0 /* reserved */) - - if ip := net.ParseIP(host); ip != nil { - if ip4 := ip.To4(); ip4 != nil { - buf = append(buf, socks5IP4) - ip = ip4 - } else { - buf = append(buf, socks5IP6) - } - buf = append(buf, ip...) - } else { - if len(host) > 255 { - return nil, errors.New("proxy: destination hostname too long: " + host) - } - buf = append(buf, socks5Domain) - buf = append(buf, byte(len(host))) - buf = append(buf, host...) - } - buf = append(buf, byte(port>>8), byte(port)) - - if _, err := conn.Write(buf); err != nil { - return nil, errors.New("proxy: failed to write connect request to SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - if _, err := io.ReadFull(conn, buf[:4]); err != nil { - return nil, errors.New("proxy: failed to read connect reply from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - failure := "unknown error" - if int(buf[1]) < len(socks5Errors) { - failure = socks5Errors[buf[1]] - } - - if len(failure) > 0 { - return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " failed to connect: " + failure) - } - - bytesToDiscard := 0 - switch buf[3] { - case socks5IP4: - bytesToDiscard = net.IPv4len - case socks5IP6: - bytesToDiscard = net.IPv6len - case socks5Domain: - _, err := io.ReadFull(conn, buf[:1]) - if err != nil { - return nil, errors.New("proxy: failed to read domain length from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - bytesToDiscard = int(buf[0]) - default: - return nil, errors.New("proxy: got unknown address type " + strconv.Itoa(int(buf[3])) + " from SOCKS5 proxy at " + s.addr) - } - - if cap(buf) < bytesToDiscard { - buf = make([]byte, bytesToDiscard) - } else { - buf = buf[:bytesToDiscard] - } - if _, err := io.ReadFull(conn, buf); err != nil { - return nil, errors.New("proxy: failed to read address from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - // Also need to discard the port number - if _, err := io.ReadFull(conn, buf[:2]); err != nil { - return nil, errors.New("proxy: failed to read port from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - closeConn = nil - return conn, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/gen.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/gen.go deleted file mode 100644 index 3d81d049..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/gen.go +++ /dev/null @@ -1,608 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This program generates table.go and table_test.go. -// Invoke as: -// -// go run gen.go -version "xxx" >table.go -// go run gen.go -version "xxx" -test >table_test.go -// -// The version is derived from information found at -// https://github.com/publicsuffix/list/commits/master/public_suffix_list.dat -// -// To fetch a particular git revision, such as 5c70ccd250, pass -// -url "https://raw.githubusercontent.com/publicsuffix/list/5c70ccd250/public_suffix_list.dat" - -import ( - "bufio" - "bytes" - "flag" - "fmt" - "go/format" - "io" - "net/http" - "os" - "regexp" - "sort" - "strings" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/idna" -) - -const ( - nodesBitsChildren = 9 - nodesBitsICANN = 1 - nodesBitsTextOffset = 15 - nodesBitsTextLength = 6 - - childrenBitsWildcard = 1 - childrenBitsNodeType = 2 - childrenBitsHi = 14 - childrenBitsLo = 14 -) - -var ( - maxChildren int - maxTextOffset int - maxTextLength int - maxHi uint32 - maxLo uint32 -) - -func max(a, b int) int { - if a < b { - return b - } - return a -} - -func u32max(a, b uint32) uint32 { - if a < b { - return b - } - return a -} - -const ( - nodeTypeNormal = 0 - nodeTypeException = 1 - nodeTypeParentOnly = 2 - numNodeType = 3 -) - -func nodeTypeStr(n int) string { - switch n { - case nodeTypeNormal: - return "+" - case nodeTypeException: - return "!" - case nodeTypeParentOnly: - return "o" - } - panic("unreachable") -} - -var ( - labelEncoding = map[string]uint32{} - labelsList = []string{} - labelsMap = map[string]bool{} - rules = []string{} - - // validSuffix is used to check that the entries in the public suffix list - // are in canonical form (after Punycode encoding). Specifically, capital - // letters are not allowed. - validSuffix = regexp.MustCompile(`^[a-z0-9_\!\*\-\.]+$`) - - crush = flag.Bool("crush", true, "make the generated node text as small as possible") - subset = flag.Bool("subset", false, "generate only a subset of the full table, for debugging") - url = flag.String("url", - "https://publicsuffix.org/list/effective_tld_names.dat", - "URL of the publicsuffix.org list. If empty, stdin is read instead") - v = flag.Bool("v", false, "verbose output (to stderr)") - version = flag.String("version", "", "the effective_tld_names.dat version") - test = flag.Bool("test", false, "generate table_test.go") -) - -func main() { - if err := main1(); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } -} - -func main1() error { - flag.Parse() - if nodesBitsTextLength+nodesBitsTextOffset+nodesBitsICANN+nodesBitsChildren > 32 { - return fmt.Errorf("not enough bits to encode the nodes table") - } - if childrenBitsLo+childrenBitsHi+childrenBitsNodeType+childrenBitsWildcard > 32 { - return fmt.Errorf("not enough bits to encode the children table") - } - if *version == "" { - return fmt.Errorf("-version was not specified") - } - var r io.Reader = os.Stdin - if *url != "" { - res, err := http.Get(*url) - if err != nil { - return err - } - if res.StatusCode != http.StatusOK { - return fmt.Errorf("bad GET status for %s: %d", *url, res.Status) - } - r = res.Body - defer res.Body.Close() - } - - var root node - icann := false - buf := new(bytes.Buffer) - br := bufio.NewReader(r) - for { - s, err := br.ReadString('\n') - if err != nil { - if err == io.EOF { - break - } - return err - } - s = strings.TrimSpace(s) - if strings.Contains(s, "BEGIN ICANN DOMAINS") { - icann = true - continue - } - if strings.Contains(s, "END ICANN DOMAINS") { - icann = false - continue - } - if s == "" || strings.HasPrefix(s, "//") { - continue - } - s, err = idna.ToASCII(s) - if err != nil { - return err - } - if !validSuffix.MatchString(s) { - return fmt.Errorf("bad publicsuffix.org list data: %q", s) - } - - if *subset { - switch { - case s == "ac.jp" || strings.HasSuffix(s, ".ac.jp"): - case s == "ak.us" || strings.HasSuffix(s, ".ak.us"): - case s == "ao" || strings.HasSuffix(s, ".ao"): - case s == "ar" || strings.HasSuffix(s, ".ar"): - case s == "arpa" || strings.HasSuffix(s, ".arpa"): - case s == "cy" || strings.HasSuffix(s, ".cy"): - case s == "dyndns.org" || strings.HasSuffix(s, ".dyndns.org"): - case s == "jp": - case s == "kobe.jp" || strings.HasSuffix(s, ".kobe.jp"): - case s == "kyoto.jp" || strings.HasSuffix(s, ".kyoto.jp"): - case s == "om" || strings.HasSuffix(s, ".om"): - case s == "uk" || strings.HasSuffix(s, ".uk"): - case s == "uk.com" || strings.HasSuffix(s, ".uk.com"): - case s == "tw" || strings.HasSuffix(s, ".tw"): - case s == "zw" || strings.HasSuffix(s, ".zw"): - case s == "xn--p1ai" || strings.HasSuffix(s, ".xn--p1ai"): - // xn--p1ai is Russian-Cyrillic "рф". - default: - continue - } - } - - rules = append(rules, s) - - nt, wildcard := nodeTypeNormal, false - switch { - case strings.HasPrefix(s, "*."): - s, nt = s[2:], nodeTypeParentOnly - wildcard = true - case strings.HasPrefix(s, "!"): - s, nt = s[1:], nodeTypeException - } - labels := strings.Split(s, ".") - for n, i := &root, len(labels)-1; i >= 0; i-- { - label := labels[i] - n = n.child(label) - if i == 0 { - if nt != nodeTypeParentOnly && n.nodeType == nodeTypeParentOnly { - n.nodeType = nt - } - n.icann = n.icann && icann - n.wildcard = n.wildcard || wildcard - } - labelsMap[label] = true - } - } - labelsList = make([]string, 0, len(labelsMap)) - for label := range labelsMap { - labelsList = append(labelsList, label) - } - sort.Strings(labelsList) - - p := printReal - if *test { - p = printTest - } - if err := p(buf, &root); err != nil { - return err - } - - b, err := format.Source(buf.Bytes()) - if err != nil { - return err - } - _, err = os.Stdout.Write(b) - return err -} - -func printTest(w io.Writer, n *node) error { - fmt.Fprintf(w, "// generated by go run gen.go; DO NOT EDIT\n\n") - fmt.Fprintf(w, "package publicsuffix\n\nvar rules = [...]string{\n") - for _, rule := range rules { - fmt.Fprintf(w, "%q,\n", rule) - } - fmt.Fprintf(w, "}\n\nvar nodeLabels = [...]string{\n") - if err := n.walk(w, printNodeLabel); err != nil { - return err - } - fmt.Fprintf(w, "}\n") - return nil -} - -func printReal(w io.Writer, n *node) error { - const header = `// generated by go run gen.go; DO NOT EDIT - -package publicsuffix - -const version = %q - -const ( - nodesBitsChildren = %d - nodesBitsICANN = %d - nodesBitsTextOffset = %d - nodesBitsTextLength = %d - - childrenBitsWildcard = %d - childrenBitsNodeType = %d - childrenBitsHi = %d - childrenBitsLo = %d -) - -const ( - nodeTypeNormal = %d - nodeTypeException = %d - nodeTypeParentOnly = %d -) - -// numTLD is the number of top level domains. -const numTLD = %d - -` - fmt.Fprintf(w, header, *version, - nodesBitsChildren, nodesBitsICANN, nodesBitsTextOffset, nodesBitsTextLength, - childrenBitsWildcard, childrenBitsNodeType, childrenBitsHi, childrenBitsLo, - nodeTypeNormal, nodeTypeException, nodeTypeParentOnly, len(n.children)) - - text := makeText() - if text == "" { - return fmt.Errorf("internal error: makeText returned no text") - } - for _, label := range labelsList { - offset, length := strings.Index(text, label), len(label) - if offset < 0 { - return fmt.Errorf("internal error: could not find %q in text %q", label, text) - } - maxTextOffset, maxTextLength = max(maxTextOffset, offset), max(maxTextLength, length) - if offset >= 1<= 1< 64 { - n, plus = 64, " +" - } - fmt.Fprintf(w, "%q%s\n", text[:n], plus) - text = text[n:] - } - - n.walk(w, assignIndexes) - - fmt.Fprintf(w, ` - -// nodes is the list of nodes. Each node is represented as a uint32, which -// encodes the node's children, wildcard bit and node type (as an index into -// the children array), ICANN bit and text. -// -// In the //-comment after each node's data, the nodes indexes of the children -// are formatted as (n0x1234-n0x1256), with * denoting the wildcard bit. The -// nodeType is printed as + for normal, ! for exception, and o for parent-only -// nodes that have children but don't match a domain label in their own right. -// An I denotes an ICANN domain. -// -// The layout within the uint32, from MSB to LSB, is: -// [%2d bits] unused -// [%2d bits] children index -// [%2d bits] ICANN bit -// [%2d bits] text index -// [%2d bits] text length -var nodes = [...]uint32{ -`, - 32-nodesBitsChildren-nodesBitsICANN-nodesBitsTextOffset-nodesBitsTextLength, - nodesBitsChildren, nodesBitsICANN, nodesBitsTextOffset, nodesBitsTextLength) - if err := n.walk(w, printNode); err != nil { - return err - } - fmt.Fprintf(w, `} - -// children is the list of nodes' children, the parent's wildcard bit and the -// parent's node type. If a node has no children then their children index -// will be in the range [0, 6), depending on the wildcard bit and node type. -// -// The layout within the uint32, from MSB to LSB, is: -// [%2d bits] unused -// [%2d bits] wildcard bit -// [%2d bits] node type -// [%2d bits] high nodes index (exclusive) of children -// [%2d bits] low nodes index (inclusive) of children -var children=[...]uint32{ -`, - 32-childrenBitsWildcard-childrenBitsNodeType-childrenBitsHi-childrenBitsLo, - childrenBitsWildcard, childrenBitsNodeType, childrenBitsHi, childrenBitsLo) - for i, c := range childrenEncoding { - s := "---------------" - lo := c & (1<> childrenBitsLo) & (1<>(childrenBitsLo+childrenBitsHi)) & (1<>(childrenBitsLo+childrenBitsHi+childrenBitsNodeType) != 0 - fmt.Fprintf(w, "0x%08x, // c0x%04x (%s)%s %s\n", - c, i, s, wildcardStr(wildcard), nodeTypeStr(nodeType)) - } - fmt.Fprintf(w, "}\n\n") - fmt.Fprintf(w, "// max children %d (capacity %d)\n", maxChildren, 1<= 1<= 1<= 1< 0 && ss[0] == "" { - ss = ss[1:] - } - - // Join strings where one suffix matches another prefix. - for { - // Find best i, j, k such that ss[i][len-k:] == ss[j][:k], - // maximizing overlap length k. - besti := -1 - bestj := -1 - bestk := 0 - for i, s := range ss { - if s == "" { - continue - } - for j, t := range ss { - if i == j { - continue - } - for k := bestk + 1; k <= len(s) && k <= len(t); k++ { - if s[len(s)-k:] == t[:k] { - besti = i - bestj = j - bestk = k - } - } - } - } - if bestk > 0 { - if *v { - fmt.Fprintf(os.Stderr, "%d-length overlap at (%4d,%4d) out of (%4d,%4d): %q and %q\n", - bestk, besti, bestj, len(ss), len(ss), ss[besti], ss[bestj]) - } - ss[besti] += ss[bestj][bestk:] - ss[bestj] = "" - continue - } - break - } - - text := strings.Join(ss, "") - if *v { - fmt.Fprintf(os.Stderr, "crushed %d bytes to become %d bytes\n", beforeLength, len(text)) - } - return text -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/list.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/list.go deleted file mode 100644 index 5e41a655..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/list.go +++ /dev/null @@ -1,133 +0,0 @@ -// Copyright 2012 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 publicsuffix provides a public suffix list based on data from -// http://publicsuffix.org/. A public suffix is one under which Internet users -// can directly register names. -package publicsuffix - -// TODO: specify case sensitivity and leading/trailing dot behavior for -// func PublicSuffix and func EffectiveTLDPlusOne. - -import ( - "fmt" - "net/http/cookiejar" - "strings" -) - -// List implements the cookiejar.PublicSuffixList interface by calling the -// PublicSuffix function. -var List cookiejar.PublicSuffixList = list{} - -type list struct{} - -func (list) PublicSuffix(domain string) string { - ps, _ := PublicSuffix(domain) - return ps -} - -func (list) String() string { - return version -} - -// PublicSuffix returns the public suffix of the domain using a copy of the -// publicsuffix.org database compiled into the library. -// -// icann is whether the public suffix is managed by the Internet Corporation -// for Assigned Names and Numbers. If not, the public suffix is privately -// managed. For example, foo.org and foo.co.uk are ICANN domains, -// foo.dyndns.org and foo.blogspot.co.uk are private domains. -// -// Use cases for distinguishing ICANN domains like foo.com from private -// domains like foo.appspot.com can be found at -// https://wiki.mozilla.org/Public_Suffix_List/Use_Cases -func PublicSuffix(domain string) (publicSuffix string, icann bool) { - lo, hi := uint32(0), uint32(numTLD) - s, suffix, wildcard := domain, len(domain), false -loop: - for { - dot := strings.LastIndex(s, ".") - if wildcard { - suffix = 1 + dot - } - if lo == hi { - break - } - f := find(s[1+dot:], lo, hi) - if f == notFound { - break - } - - u := nodes[f] >> (nodesBitsTextOffset + nodesBitsTextLength) - icann = u&(1<>= nodesBitsICANN - u = children[u&(1<>= childrenBitsLo - hi = u & (1<>= childrenBitsHi - switch u & (1<>= childrenBitsNodeType - wildcard = u&(1<>= nodesBitsTextLength - offset := x & (1< len(b[j]) -} - -// eTLDPlusOneTestCases come from -// https://github.com/publicsuffix/list/blob/master/tests/test_psl.txt -var eTLDPlusOneTestCases = []struct { - domain, want string -}{ - // Empty input. - {"", ""}, - // Unlisted TLD. - {"example", ""}, - {"example.example", "example.example"}, - {"b.example.example", "example.example"}, - {"a.b.example.example", "example.example"}, - // TLD with only 1 rule. - {"biz", ""}, - {"domain.biz", "domain.biz"}, - {"b.domain.biz", "domain.biz"}, - {"a.b.domain.biz", "domain.biz"}, - // TLD with some 2-level rules. - {"com", ""}, - {"example.com", "example.com"}, - {"b.example.com", "example.com"}, - {"a.b.example.com", "example.com"}, - {"uk.com", ""}, - {"example.uk.com", "example.uk.com"}, - {"b.example.uk.com", "example.uk.com"}, - {"a.b.example.uk.com", "example.uk.com"}, - {"test.ac", "test.ac"}, - // TLD with only 1 (wildcard) rule. - {"mm", ""}, - {"c.mm", ""}, - {"b.c.mm", "b.c.mm"}, - {"a.b.c.mm", "b.c.mm"}, - // More complex TLD. - {"jp", ""}, - {"test.jp", "test.jp"}, - {"www.test.jp", "test.jp"}, - {"ac.jp", ""}, - {"test.ac.jp", "test.ac.jp"}, - {"www.test.ac.jp", "test.ac.jp"}, - {"kyoto.jp", ""}, - {"test.kyoto.jp", "test.kyoto.jp"}, - {"ide.kyoto.jp", ""}, - {"b.ide.kyoto.jp", "b.ide.kyoto.jp"}, - {"a.b.ide.kyoto.jp", "b.ide.kyoto.jp"}, - {"c.kobe.jp", ""}, - {"b.c.kobe.jp", "b.c.kobe.jp"}, - {"a.b.c.kobe.jp", "b.c.kobe.jp"}, - {"city.kobe.jp", "city.kobe.jp"}, - {"www.city.kobe.jp", "city.kobe.jp"}, - // TLD with a wildcard rule and exceptions. - {"ck", ""}, - {"test.ck", ""}, - {"b.test.ck", "b.test.ck"}, - {"a.b.test.ck", "b.test.ck"}, - {"www.ck", "www.ck"}, - {"www.www.ck", "www.ck"}, - // US K12. - {"us", ""}, - {"test.us", "test.us"}, - {"www.test.us", "test.us"}, - {"ak.us", ""}, - {"test.ak.us", "test.ak.us"}, - {"www.test.ak.us", "test.ak.us"}, - {"k12.ak.us", ""}, - {"test.k12.ak.us", "test.k12.ak.us"}, - {"www.test.k12.ak.us", "test.k12.ak.us"}, - // Punycoded IDN labels - {"xn--85x722f.com.cn", "xn--85x722f.com.cn"}, - {"xn--85x722f.xn--55qx5d.cn", "xn--85x722f.xn--55qx5d.cn"}, - {"www.xn--85x722f.xn--55qx5d.cn", "xn--85x722f.xn--55qx5d.cn"}, - {"shishi.xn--55qx5d.cn", "shishi.xn--55qx5d.cn"}, - {"xn--55qx5d.cn", ""}, - {"xn--85x722f.xn--fiqs8s", "xn--85x722f.xn--fiqs8s"}, - {"www.xn--85x722f.xn--fiqs8s", "xn--85x722f.xn--fiqs8s"}, - {"shishi.xn--fiqs8s", "shishi.xn--fiqs8s"}, - {"xn--fiqs8s", ""}, -} - -func TestEffectiveTLDPlusOne(t *testing.T) { - for _, tc := range eTLDPlusOneTestCases { - got, _ := EffectiveTLDPlusOne(tc.domain) - if got != tc.want { - t.Errorf("%q: got %q, want %q", tc.domain, got, tc.want) - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/table.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/table.go deleted file mode 100644 index 8acecbcf..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/table.go +++ /dev/null @@ -1,8708 +0,0 @@ -// generated by go run gen.go; DO NOT EDIT - -package publicsuffix - -const version = "publicsuffix.org's public_suffix_list.dat, git revision 8952c0c (2015-10-12)" - -const ( - nodesBitsChildren = 9 - nodesBitsICANN = 1 - nodesBitsTextOffset = 15 - nodesBitsTextLength = 6 - - childrenBitsWildcard = 1 - childrenBitsNodeType = 2 - childrenBitsHi = 14 - childrenBitsLo = 14 -) - -const ( - nodeTypeNormal = 0 - nodeTypeException = 1 - nodeTypeParentOnly = 2 -) - -// numTLD is the number of top level domains. -const numTLD = 1526 - -// Text is the combined text of all labels. -const text = "bievatmallorcafederationavigationavuotnakhodkananporovnoddabifuk" + - "agawalmartateyamabihorologyurihonjournalistjordalshalsenayoromut" + - "ashinainvestmentsamsclubindalinkaszubyusuharabikedatingliwicebil" + - "baogakievenesurancebillustrationflatangerbiostrowiecasadelamoned" + - "abirdartcenterprisesakikonairbusantiquest-a-la-maisondre-landebu" + - "dejjudygarlandurhamburglobalashovhachinoheguris-a-candidatebirke" + - "nesoddtangenovarabirthplacebjarkoyusuisservicesamsunglobodoes-it" + - "veronaharimalvikatowicebjerkreimmobilienfshostrodawarabjugnhsanf" + - "ranciscotlandvrdnsangostrowwlkpmglogowegroweiboltatsunoblockbust" + - "ernopilawalterbloombergbauernurembergloppenzaogashimadachicagobo" + - "atsanjotattoolsztynsettlersannanikkoebenhavnikolaeverbankatsushi" + - "kabeerbluedatsunanjoetsuwanouchikujogaszkoladbrokesennumalselven" + - "drellinzais-a-catererbmoattachmentsannohelsinkitahiroshimarriott" + - "axihuanikonantanangerbmsanokatsuyamaseratis-a-celticsfaninohelpl" + - "financialipetskaufeninomiyakonojoshkar-olayangroupalermomasvuotn" + - "akatsugawabmweirbnpparibaselburgminakamichigangwonirasakis-a-che" + - "farsundwgmodenakatombetsumidatlanticaseihichisobetsuitairabolzan" + - "ore-og-uvdalivornobomloansantabarbarabondyndns-homednsantacruzsa" + - "ntafedexhibitionishiazais-a-conservativefsncfailomzansimagicaser" + - "taishinomakikuchikuseikarugapartmentsanukis-a-cpadoval-daostaval" + - "leyuudmurtiabonnishigotpantheonishiharabookingmxboxfinityuzawabo" + - "otsaotomeldalorenskogretakanabeatsapodhalewismillerboschaefflerd" + - "alotenkawabostikautokeinobostonakijinsekikogentingrimstadyndns-i" + - "p6botanicalgardenishiizunazukis-a-cubicle-slavellinowtvalleaosta" + - "vernishikatakazakis-a-democratgoryuzhno-sakhalinskazimierz-dolny" + - "botanicgardenishikatsuragivestbytomaritimekeepingripebotanybouti" + - "quebecngriwataraidyndns-mailottebozentsujiiebradescorporationish" + - "ikawazukaneyamaxunjargabrandywinevalleybrasiljan-mayenishimerabr" + - "esciabrindisibenikebristolgalsacebritishcolumbialowiezachpomorsk" + - "ienishinomiyashironobroadcastlebtimnetzgorzeleccolognewmexicolle" + - "ctionishinoomotegotsukisosakitagatakamoriokamikitayamatotakadabr" + - "oadwaybroke-itjeldsundyndns-office-on-the-webcambridgestonewspap" + - "erbrokerrypropertiesapporobronnoysundyndns-picsaratovalled-aosta" + - "vropolicebrothermesaverdefensejnybrumunddalottokigawabrunelblagd" + - "enesnaaseralingenkainanaejrietisalatinabenogatagajobojis-a-desig" + - "nerbrusselsardegnamsskoganeis-a-doctoraybruxellesardiniabryanskl" + - "eppalmspringsakerbryneustarhubalatinordre-landishakotankaruizawa" + - "smatartanddesignieznorddalavangenasushiobarabruzzoologicalvinkle" + - "in-addrammenuernbergdyniabogadocscbg12000buskerudinewhampshireci" + - "pesaro-urbino-pesarourbinopesaromamurogawarszawashingtondclkazob" + - "uzenishinoshimatsuzakis-a-financialadvisor-aurdalouvrepbodyndns-" + - "blogdnsarlovegaskimitsubatamicadaquesarpsborgroks-thisamitsukebu" + - "zzgradyndns-remotegildeskalmykiabwfashionishiokoppegardyndns-ser" + - "verbaniabzhitomirkutskodjeepilepsydneycloudcontrolledekakegawawi" + - "iheyaizuwakamatsubushikusakadogawacloudfrontdoorcntkmaxxn--1ck2e" + - "1balestrandabergamoarekembroideryonagoyasnesoddenmarketplace12co" + - "lonialwilliamsburgujolstercoloradoplateaudiocolumbusheycommbankh" + - "ersoncommunitysfjordcomobaracomparemarkerryhotelsayokoshibahikar" + - "iwanumatakinouecompute-1computerhistoryofscience-fictioncomsecur" + - "itysnesbschokoladencondoshichinohedmarketscholarshipschooluxuryc" + - "onferenceconstructionconsuladoharuhrconsultanthropologyconsultin" + - "gvolluzerncontactmpanasonicateringebugattipschmidtre-gauldalowic" + - "zest-le-patrondheimperiacontemporaryarteducationalchikugojomedic" + - "altanissettaiwanaircraftraeumtgeradealstahaugesundcontractorsken" + - "conventureshinodesashibetsuikimobetsuliguriacookingchannelverumi" + - "namidaitomangotembaixadacoolkuszippodlasiellakasamatsudoosandieg" + - "okaseljordcoopocznorthwesternmutualvivano-frankivskhmelnitskiyam" + - "asfjordencopenhagencyclopedicdn77-sslattumetlifeinsurancecorsica" + - "hcesuolocalhistoryazannakadomari-elasticbeanstalkhmelnytskyivall" + - "eeaosteigencorvettelevisioncosenzakopanerairforceocostumedio-cam" + - "pidano-mediocampidanomediocouncilcouponschulezajskhvanylveniceco" + - "urseschwarzgwangjuifminamiechizencq-acranbrookuwanalyticschweizj" + - "cbnlcreditcardcreditunioncremonashorokanaiecrewildlifestylecrick" + - "etrzyncrimeacrotonewportlligatewaycrowncrsciencecentersciencehis" + - "torycruisescientistor-elvdalcuisinellajollamericanexpressexyzlgu" + - "lenculturalcentertainmentoyokawacuneocupcakecxn--1ctwolominamata" + - "mayukis-a-hard-workercymruovatoyonakagyokutoshimacyouthdfcbankla" + - "budhabikinokawabarthachiojiyahikobeauxartsandcraftscjohnsonfilmi" + - "namifuranofinalfinancefineartscrappinguovdageaidnulsandvikcoroma" + - "ntovalle-daostavangerfinlandfinnoyfirebaseappspotenzamamicroligh" + - "tingushikamifuranotairesettsurfauskedsmokorsetagayasells-for-les" + - "scrapper-sitefirenzefirestonextdirectoryfirmdalegolfedjejuegoshi" + - "kiminokamoenairguardfishingonohejis-a-hunterfitjarqhachirogataka" + - "nezawafitnessettlementoyonofjalerflickragerotikamakurazakiraflig" + - "htsevastopoleflirumannoshiroomurafloguchikuzenfloraflorenceflori" + - "dafloristanohatakaharussiafloromskogxn--1lqs03nflowersevenassisi" + - "cilyflsmidthruhereggiocalabriaflynnhubalsanagochihayaakasakawaha" + - "rastronomyokohamamatsudaegubs3-eu-west-1fndfolldalfoodnetworkang" + - "erfor-better-thandafor-ourfor-somedizinhistorischesewilliamhillf" + - "or-theatreeforexrothadanotogawaforgotdnsfranziskanerimamateramoc" + - "hizukirkeneshangrilangevagrarboretumbriaforli-cesena-forlicesena" + - "forlikes-piedmontblancomeeresharis-a-knightoyookarasjoksnesharpa" + - "raglidingzparisor-fronforsaleikangerforsandasuolodingenfortmisso" + - "ulan-udell-ogliastrakhanawafortworthadselfipirangaforuminamiisel" + - "ectoyosatotalfosneshawaiijimarumorimachidafotoyotaris-a-landscap" + - "erugiafoxn--1lqs71dfreiburgfreightcmwinbalsfjordivtasvuodnakaiwa" + - "mizawaugustowadaejeonbukarlsoyokosukariyakumolde164freseniusdeco" + - "rativeartshellaspeziafribourgfriuli-v-giuliafriuli-ve-giuliafriu" + - "li-vegiuliafriuli-venezia-giuliafriuli-veneziagiuliafriuli-vgiul" + - "iafriuliv-giuliafriulive-giuliafriulivegiuliafriulivenezia-giuli" + - "afriuliveneziagiuliafriulivgiuliafrlfroganshimokawafrognfrolandf" + - "rom-akrehamnfrom-alfrom-arfrom-azwindmillfrom-capebretonamiasaku" + - "chinotsuchiurakawassamukawataricohdavvesiidazaifudaigodaddynatho" + - "mebuiltoyotomiyazakis-a-lawyerfrom-collegersundfrom-ctoyotsukaid" + - "ovre-eikerfrom-dcheltenham-radio-operaunitelekommunikationishiwa" + - "kis-a-geekazunofrom-dellogliastraderfrom-flandershimokitayamafro" + - "m-gaulardalfrom-higashiagatsumagoirminamiizukamitsuefrom-iafrom-" + - "idfrom-ilfrom-incheonfrom-kshimonitayanagivingfrom-kyknetoyouraf" + - "rom-lanbibaidarfrom-mansionshimonosekikawafrom-mdfrom-meetoystre" + - "-slidrettozawafrom-microsoftbankmpspbaltimore-og-romsdalillyonag" + - "unikibmdivttasvuotnakamagayachts3-us-west-1from-mnfrom-modalenfr" + - "om-mshimosuwalkis-a-liberalfrom-mtnfrom-nchelyabinskypescaravant" + - "aafrom-ndfrom-nexusgardenfrom-nhktozsdefrom-njcparliamentranbyfr" + - "om-nminamimakis-a-libertarianfrom-nvaolbia-tempio-olbiatempioolb" + - "ialystokkembuchikumagayagawalbrzycharterfrom-nyfrom-ohkurafrom-o" + - "ketogurafrom-orfrom-paderbornfrom-pratohmanxn--1qqw23afrom-ris-a" + - "-linux-useranishiaritabashikaoizumizakitaurayasudafrom-schoenbru" + - "nnfrom-sdnipropetrovskmshimotsukefrom-tnfrom-txn--2m4a15efrom-ut" + - "azuerichardlikescandyndns-at-homedepotaruis-a-llamarylandfrom-va" + - "dsochildrensgardenfrom-vtrani-andria-barletta-trani-andriafrom-w" + - "afrom-wielunnerfrom-wvareserveftparmafrom-wyfrosinonefrostalowa-" + - "wolawafroyahabadajozoraumaintenancefstcgrouparocherkasyzrankoshi" + - "gayaltaikis-a-musicianfujiiderafujikawaguchikonefujiminohtawaram" + - "otoineppugliafujinomiyadafujiokayamaoris-a-nascarfanfujisatoshon" + - "airlinebraskaunbieidsvollfujisawafujishiroishidakabiratoridelmen" + - "horstalbanshimotsumafujitsurugashimarinefujixeroxn--30rr7yfujiyo" + - "shidafukayabeardubaiduckdnsdojoburgfukuchiyamadafukudominicherni" + - "governmentjmaxxxjaworznofukuis-a-nurseoullensvanguardfukumitsubi" + - "shigakirovogradoyfukuokazakiryuohaebaruminamiminowafukuroishikar" + - "ikaturindalfukusakisarazure-mobileirfjordfukuyamagatakahashimama" + - "kishiwadafunabashiriuchinadafunagatakahatakaishimoichinosekigaha" + - "rafunahashikamiamakusatsumasendaisennangoodyearthagakhanamigawaf" + - "undaciofuoiskujukuriyamarburgfuosskoczowindowshinichinanfurnitur" + - "eggioemiliaromagnakasatsunairportland-4-salernogiessengerdalaska" + - "nittedallasalleaseeklogesquarezzoologyeongnamegawakeisenbahnfuru" + - "biraquarelleasingleshinjournalismailillehammerfest-mon-blogueuro" + - "visionfurudonostiafurukawairtelecityeatshinjukumanofusodegaurafu" + - "ssaikisofukushimarcheaparshinkamigotoyohashimotomobeneventochiok" + - "inoshimalopolskanlandfutabayamaguchinomigawafutboldlygoingnowher" + - "e-for-moregontrailroadfuttsurugiminamioguniversityfvgfyis-a-pain" + - "teractivegarsheis-a-patsfanfylkesbiblackfridayfyresdalhanyuzenha" + - "pmirhappoulvikolobrzegyptianpachigasakidstvedestrandhareidsberge" + - "nharstadharvestcelebrationhasamarahasaminami-alpssells-for-unzen" + - "hasudahasvikomaganehatogayahoooshikamaishimofusartshintokushimah" + - "atoyamazakitahatakaokamikoaniikappulawyhatsukaichiharahattfjelld" + - "alhayashimamotobungotakadavvenjargamvikomakiyosatokamachippubets" + - "ubetsugaruhazuminobusells-itranoyhboehringerikehembygdsforbundhe" + - "mneshintomikasaharahemsedalherokussldheroyhgtvaroyhigashichichib" + - "unkyonanaoshimageandsoundandvisionhigashihiroshimanehigashiizumo" + - "zakitakamiizumisanofiatransportrapaniimimatakatoris-a-playerhiga" + - "shikagawahigashikagurasoedahigashikawakitaaikitakatakarazukamimi" + - "nershinyoshitomiokanmakiwakunigamihamadahigashikurumeguroroskole" + - "itungsenhigashimatsushimarshallstatebankomatsushimashikehigashim" + - "atsuyamakitaakitadaitoigawahigashimurayamalatvuopmidoris-a-repub" + - "licancerresearchaeologicaliforniahigashinarusellsyourhomegoodshi" + - "ojirishirifujiedahigashinehigashiomihachimanchesterhigashiosakas" + - "ayamamotorcycleshioyameloyalistockholmestrandhigashishirakawamat" + - "akasagooglecodespotravelchannelhigashisumiyoshikawaminamiaikitak" + - "yushuaiahigashitsunowruzhgorodoyhigashiurausukitamidsundhigashiy" + - "amatokoriyamanakakogawahigashiyodogawahigashiyoshinogaris-a-rock" + - "starachowicehiraizumisatohnoshoohirakatashinagawahiranairtraffic" + - "hernivtsiciliahirarahiratsukagawahirayaitakasakitamotosumitakagi" + - "nankokubunjis-a-socialistmeindianapolis-a-bloggerhisayamanashiib" + - "aghdadultravelersinsurancehistorichouseshirahamatonbetsurgeryhit" + - "achiomiyaginowaniihamatamakawajimaritimodellinghitachiotagoparts" + - "hirakoenighitoyoshimifunehitradinghjartdalhjelmelandholeckobierz" + - "yceholidayhomeipartyhomelinuxn--32vp30hagebostadhomesensembokuki" + - "tanakagusukumoduminamisanrikubetsupplyhomeunixn--3bst00minamitan" + - "ehondahonefosshiranukannamiharuhoneywellhongorgehonjyoitakashima" + - "rugame-hostinghornindalhorseminehortendofinternetrdhoteleshiraoi" + - "s-a-soxfanhotmailhoyangerhoylandetroitskomforbambleborkarumaifar" + - "msteadnpalanaklodzkodairaukraanghkebinagisoccertificationativeam" + - "ericanantiques3-external-1humanitieshiraokanoyakagehurdalhurumaj" + - "is-a-studentalhyllestadhyogoris-a-teacherkassymantechnologyhyuga" + - "warahyundaiwafunejfkommunalforbundjgorajlchiryukyuragifuefukihab" + - "orokunohealthcareersarufutsunomiyawakasaikaitakoelnissedalucania" + - "jlljmpasadenamsosnowiechitachinakagawatchandclockchristiansburgr" + - "ondarjnjelenia-gorajoyokaichibahcavuotnagaravennagareyamaizurubt" + - "sovskjervoyageometre-experts-comptableshitaramajpmorganichitoset" + - "ogitsuldaluccapetownisshinguernseyjpnchloejprshizukuishimogosenj" + - "uniperjurkristiansandcatshoujis-bykristiansundkrodsheradkrokstad" + - "elvaldaostarostwodzislawinnershowakryminamiuonumasudakumatorinok" + - "umejimassa-carrara-massacarraramassabusinessebykleclerchocolatel" + - "emarkddielddanuorrightathomeftpaccessasayamakumenanyokkaichirurg" + - "iens-dentisteshowtimemerckomorotsukamisunagawakunisakis-certifie" + - "ducatorahimeshimakanegasakinkobayashikshacknetnedalkunitachiarai" + - "lwaykunitomigusukumamotoyamasoykunneppupassagenshriramsterdambul" + - "ancekunstsammlungkunstunddesignkuokgroupassenger-associationkure" + - "pair-traffic-controlleykurgankurobelgorodeokurogimilitarykuroiso" + - "ftwarendalenugkuromatsunais-foundationkurotakikawasakis-gonekurs" + - "komvuxn--3ds443gkushirogawakustanais-into-animeiwamarylhurstjohn" + - "kusupersportrentino-sud-tirolkutchanelkutnokuzbassnillfjordkuzum" + - "akis-into-carshisognekvafjordkvalsundkvamlidlugolekagaminord-aur" + - "dalvdalipayufuchukotkafjordkvanangenkvinesdalkvinnheradkviteseid" + - "skogkvitsoykwpspjelkavikongsbergkyotobetsuppliesienarashinokyowa" + - "riasahikawamissilelmisugitokonamegatakayamatsumotofukemitakehara" + - "mitourismolanciamitoyoakemiuramiyazurewebsiteshikagamiishibukawa" + - "miyotamanomjondalenmlbarcelonagasukemergencyberlevagangaviikanon" + - "jiinetarumizusawaurskog-holandroverhalla-speziaeroportalabamagas" + - "akishimabaragusaarlandds3-ap-southeast-1kappleangaviikadenaamesj" + - "evuemielnoboribetsucks3-ap-northeast-1monmouthaibarakitagawamons" + - "termonticellolmontrealestatefarmequipmentrentino-sudtirolmonza-b" + - "rianzaporizhzhekinannestadmonza-e-della-brianzaporizhzhiamonzabr" + - "ianzapposlombardiamondsimbirskongsvingermonzaebrianzaramonzaedel" + - "labrianzamoparachutingmordoviajessheiminamiyamashirokawanabellev" + - "uelosangelesjaguarchitecturebungoonomichinomiyakemerovodkagoshim" + - "agnitkakamigaharaholtalenglandmoriyamatsunomoriyoshiokamogawamor" + - "moneymoroyamatsusakahoginozawaonsenmortgagemoscowiostrolekaniepc" + - "emoseushistorymosjoenmoskenesimple-urlmossirdalmosvikoninjamison" + - "moviemovistargardmtpccwitdkonskowolancashireisenmtranakayamatsus" + - "higemuenstermugithubusercontentrentino-sued-tirolmuikanagawamuko" + - "chikushinonsenergymulhouservebbslingmultichoicemunakatanemuncies" + - "zynmuosattemupaviancapitalonewhollandmurmanskonsulatrobelaudible" + - "besbyglandmurotorcraftrentino-suedtirolmusashimurayamatsuuramusa" + - "shinoharamuseetrentinoa-adigemuseumverenigingmutsuzawamutuelleva" + - "ngermyphotoshibahccavuotnagasakijobservercellierneueslupskonyvel" + - "oftrentino-s-tirollagriculturennebudapest-a-la-masionmytis-a-boo" + - "kkeeperminanophiladelphiaareadmyblogsitephilatelyphilipsyphoenix" + - "n--3e0b707ephotographysiopiagetmyipfizerpictetrentinoaadigepictu" + - "resnzpiemontepilotsokanumazurypinkopervikommunepioneerpippupiszp" + - "ittsburghofermobilypiwatepizzapkoryolasiteplanetariumincomcastre" + - "sistanceplantationplantsokndalplatforminnesotaketakatsukis-into-" + - "cartoonshisuifuettertdasnetzplaystationplazaplchofunatorientexpr" + - "essasebofageplombardyndns-at-workinggroupharmaciensmolenskooris-" + - "an-anarchistoricalsocietyplumbingotvbarclaycards3-us-west-2plust" + - "erpmnpodzonepohlpokerpokrovskosaigawapolitiendapolkowicepoltaval" + - "le-aostathellexuslivinghistorypomorzeszowithgoogleapisa-hockeynu" + - "trentinoalto-adigepordenonepornporsangerporsangugeporsgrunnanpoz" + - "nanpraxis-a-bruinsfansolarssonprdpreservationpresidioprimelbourn" + - "eprincipeprivneprochowiceproductionsologneproferraraprogressiven" + - "neslaskerrylogisticsolundbeckosakaerodromegallupinbananarepublic" + - "arrierprojectrentinoaltoadigepromombetsupportrentinos-tirolprope" + - "rtyprotectionprudentialpruszkowithyoutubentleyprzeworskogptzpvtr" + - "entinostirolpzqldqponqslgbtrentinosud-tirolqvchonanbuildersvpamp" + - "eredchefastlystorfjordstpetersburgstudiostudyndns-freemasonryoka" + - "mikawanehonbetsurutaharastuff-4-salestuttgartrentinosuedtirolsur" + - "nadalsurreysusakis-slickomitamamurasusonosuzakanzakiwiensuzukara" + - "sjohkamiokaminokawanishiaizubangesuzukis-uberleetrentino-aadiges" + - "valbardudinkakudamatsuesveiosvelvikosherbrookegawasvizzerasweden" + - "swidnicarbonia-iglesias-carboniaiglesiascarboniaswiebodzindianma" + - "rketingswiftcoverisignswinoujscienceandhistoryswisshikis-very-ba" + - "daddjamalborkdalsxn--3oq18vl8pn36atunesooturystykarasuyamazoetus" + - "canytushuissier-justicetuvalle-d-aostatoilvestnesor-odalvestre-s" + - "lidreamhostersor-varangervestre-totennishiawakuravestvagoyvevels" + - "tadvibo-valentiavibovalentiavideovillaskoyabearalvahkihokumakoge" + - "niwaizumiotsukumiyamazonawsabaerobaticketsaritsynvinnicargodoesn" + - "texistanbullensakervinnytsiavipsinaappharmacysnoasaitamatsukuris" + - "-lostre-toteneis-an-actresshishikuis-an-accountantshiratakahagis" + - "-a-techietis-a-therapistoiavirginiavirtualvirtuelvisakataketomis" + - "atokyotangovtrevisohughesolutionsomavistaprintuitroandinosaurepo" + - "rtrentottoris-very-evillageviterboknowsitallvivoldavladikavkazan" + - "vladimirvladivostokaizukaratevlogvolgogradvolkenkunderseaportrog" + - "stadvolkswagentsorfoldvologdanskoshunantokashikiyosumypetshizuok" + - "anravolyngdalvoronezhytomyrvossevangenvotevotingvotoursorreisaha" + - "yakawakamiichikaiseis-savedvrnworse-thangglidingwowiwatsukiyonow" + - "ritesthisblogspotromsakakinokiawroclawloclawekostromahachijorpel" + - "andwtchoseiroumuencheniyodogawawtferrarittogoldpointelligencewuo" + - "zuwwworldwzmiuwajimaxn--45q11choyodobashichikashukujitawaraxn--4" + - "gbriminingxn--4gq48lf9jeonnamerikawauexn--4it168dxn--4it797kotoh" + - "iradomainsureitrentino-stirolxn--4pvxsortlandxn--54b7fta0cchrist" + - "masakikugawatchesaskatchewanggouvicenzaxn--55qw42gxn--55qx5dxn--" + - "5js045dxn--5rtp49chromediaxn--5rtq34kotouraxn--5su34j936bgsgxn--" + - "5tzm5gxn--6btw5axn--6frz82gxn--6orx2rxn--6qq986b3xlxn--7t0a264ch" + - "ryslerxn--80adxhksoruminternationalfirearmsigdalxn--80ao21axn--8" + - "0asehdbarclaysakuraiitatebayashijonawatextileksvikasaokamisatoho" + - "bby-sitexasdaburyatiaarpaleoceanographicsakyotanabellunordreisa-" + - "geekashibatakasugaiiyamanobedzin-the-bandaioirasebastopologyeong" + - "giehtavuoatnagaivuotnagaokakyotambabydgoszczecinemailimanowaruda" + - "ustevollaziobiraetnagahamaroyekaterinburggfarmerseinewyorkshireg" + - "gio-emilia-romagnakanotoddenaspers3-ap-southeast-2xn--80aswgxn--" + - "80audnedalnxn--8ltr62kouhokutamakizunokunimilanoxn--8pvr4uxn--8y" + - "0a063axn--90a3academykolaivanovosibirskiervaapsteiermarkhangelsk" + - "inderoyericssonjukudoyamaceratabuseat-band-campaniamallamadridva" + - "gsoygardendoftheinternetcimdbarefootballangenoamishirasatobishim" + - "akeupowiathletajimabariakepnordkappgjovikashiharaustinnaturalhis" + - "torymuseumcenterhcloudcontrolappalacebinortonsbergjerdrumckinsey" + - "okotebizenakaniikawatanaguragrinetbankz-1xn--90aishobaraomoriguc" + - "hiharahkkeravjuedischesapeakebayerndxn--90azhakatanotteroyxn--9d" + - "bhblg6diethnologyxn--9dbq2axn--9et52uxn--9krt00axn--andy-iraxn--" + - "aroport-byanagawaxn--asky-iraxn--aurskog-hland-jnbargainstitutel" + - "efonicagliaridagawalesundrangedalimitedrivelandrobaknoluoktainai" + - "kawachinaganoharamcoalaheadjudaicabbottatamotorsalangenaturbruks" + - "gymnaturhistorischesalondonetskashiwaraustraliaisondriodejaneiro" + - "chesterxn--avery-yuasakegawaxn--b-5gaxn--b4w605ferdxn--bck1b9a5d" + - "re4chtrainingrongausdalucernexn--bdddj-mrabdxn--bearalvhki-y4axn" + - "--berlevg-jxaxn--bhcavuotna-s4axn--bhccavuotna-k7axn--bidr-5nach" + - "ikatsuuraxn--bievt-0qa2xn--bjarky-fyanaizuxn--bjddar-ptamboversa" + - "illesopotrentinosudtirolxn--blt-elaborxn--bmlo-graingerxn--bod-2" + - "naroyxn--brnny-wuaccident-investigationlineat-urlxn--brnnysund-m" + - "8accident-preventionxn--brum-voagatromsojavald-aostarnbergxn--bt" + - "sfjord-9zaxn--c1avgxn--c2br7gxn--c3s14misakis-into-gamessinashik" + - "itchenxn--cck2b3barreauctionatuurwetenschappenaumburgladeloittem" + - "asekashiwazakiyokawaraustrheimatunduhrennesoyokozehimejibigawagr" + - "oks-theaternidgcamerakershus-east-1xn--cg4bkis-very-goodhandsonx" + - "n--ciqpnxn--clchc0ea0b2g2a9gcdn77-securecreationxn--comunicaes-v" + - "6a2oxn--correios-e-telecomunicaes-ghc29axn--czr694barrel-of-know" + - "ledgeorgeorgiauthordalandroidiscountysvardolls3-external-2xn--cz" + - "rs0trusteexn--czru2dxn--czrw28barrell-of-knowledgemersongdalenvi" + - "knakanojohanamakinoharautomotivecodyn-o-saurlandes3-fips-us-gov-" + - "west-1xn--d1acj3bashkiriautoscanadagestangeologyomitanobninskarm" + - "oyonabaruconnectarnobrzegjerstadotsuruokamchatkameokameyamashina" + - "tsukigatakamatsukawakunedre-eikereviewskrakowebhopagespeedmobili" + - "zerobihirosakikamijimatta-varjjatarantomsk-uralsk12xn--d1alfarom" + - "eoxn--d1atrverranzanxn--d5qv7z876chungbukfhskhabarovskhakassiaxn" + - "--davvenjrga-y4axn--djrs72d6uyxn--djty4kounosunndalxn--dnna-graj" + - "ewolterskluwerxn--drbak-wuaxn--dyry-iraxn--eckvdtc9dxn--efvn9sou" + - "thcarolinazawaxn--efvy88hakodatevaksdalxn--ehqz56nxn--elqq16hako" + - "nexn--estv75gxn--eveni-0qa01gaxn--f6qx53axn--fct429kouyamashikis" + - "-an-engineeringxn--fhbeiarnxn--finny-yuaxn--fiq228c5hsouthwestfa" + - "lenxn--fiq64basilicataniaveroykenvironmentalconservationaturalsc" + - "iencesnaturelles3-sa-east-1xn--fiqs8sowaxn--fiqz9spreadbettingxn" + - "--fjord-lraxn--fjq720axn--fl-ziaxn--flor-jraxn--flw351exn--fpcrj" + - "9c3dxn--frde-grandrapidspydebergxn--frna-woaraisaijosoyrovigorli" + - "cexn--frya-hraxn--fzc2c9e2chungnamdalseidfjordyndns-wikindlegnic" + - "ampobassociatesassaris-a-gurulminamibosogndalukowhalingrossetouc" + - "hijiwadeltajimibuildingroundhandlingroznyxn--fzys8d69uvgmailxn--" + - "g2xx48churchaseljeffersonrwhoswhokksundyndns-workshoppdaluroyxn-" + - "-gckr3f0ferreroticanonoichikawamisatodayxn--gecrj9chuvashiaxn--g" + - "gaviika-8ya47hakubankokonoexn--gildeskl-g0axn--givuotna-8yandext" + - "raspace-to-rentalstomakomaibaraxn--gjvik-wuaxn--gk3at1exn--gls-e" + - "lacaixaxn--gmq050is-very-nicexn--gmqw5axn--h-2fairwindsrlxn--h1a" + - "eghakuis-a-personaltrainerxn--h2brj9circlegallocuscountryestateo" + - "fdelawaredumbrellahppiacenzagannefrankfurtjomemorialutskharkival" + - "ledaostakkofueluxembourgrpanamatteledatabaseballooningruexn--hbm" + - "er-xqaxn--hcesuolo-7ya35basketballfinanzgoravocatanzaroweddingje" + - "sdalillesandefjordiscoveryggeelvinckarpaczeladz-2xn--hery-iraxn-" + - "-hgebostad-g3axn--hmmrfeasta-s4acoachampionshiphopenair-surveill" + - "ancebetsukubabia-goracleaningatlantachikawakayamagadancechirealt" + - "orlandxn--hnefoss-q1axn--hobl-iraxn--holtlen-hxaxn--hpmir-xqaxn-" + - "-hxt814exn--hyanger-q1axn--hylandet-54axn--i1b6b1a6a2exn--imr513" + - "nxn--indery-fyaotsurgutsiracusaitokuyamaxn--io0a7is-very-sweetre" + - "ntino-alto-adigexn--j1aefetsundxn--j1amhakusandnessjoenxn--j6w19" + - "3gxn--jlq61u9w7batochigiftsaltdalimoliserniavoues3-us-gov-west-1" + - "xn--jlster-byaroslavlaanderenxn--jrpeland-54axn--jvr189misasagur" + - "is-leetrentino-a-adigexn--k7yn95exn--karmy-yuaxn--kbrq7oxn--kcrx" + - "77d1x4axn--kfjord-iuaxn--klbu-woaxn--klt787dxn--kltp7dxn--kltx9a" + - "xn--klty5xn--3pxu8kosugexn--koluokta-7ya57haldenxn--kprw13dxn--k" + - "pry57dxn--kpu716fgunmarnardalxn--kput3is-with-thebandoomdnsalias" + - "colipicenord-odalxn--krager-gyasakaiminatoyakokamishihoronobeoka" + - "minoyamatsurisleofmandalxn--kranghke-b0axn--krdsherad-m8axn--kre" + - "hamn-dxaxn--krjohka-hwab49jetztrentino-altoadigexn--ksnes-uuaxn-" + - "-kvfjord-nxaxn--kvitsy-fyasugissmarterthanyouxn--kvnangen-k0axn-" + - "-l-1faitheguardianquanconagawakuyabukicks-assedicircuscultureggi" + - "o-calabriaxn--l1accentureklamborghiniizaxn--laheadju-7yasuokarat" + - "suginamikatagamihoboleslawiecitadeliverybnikahokutogliattiresatx" + - "n--0trq7p7nnxn--langevg-jxaxn--lcvr32dxn--ldingen-q1axn--leagavi" + - "ika-52batsfjordunloppacificartierxn--lesund-huaxn--lgbbat1ad8jev" + - "nakerxn--lgrd-poaciticasinorfolkebiblefrakkestadyndns-weberlinco" + - "lnishitosashimizunaminamiashigaraxn--lhppi-xqaxn--linds-prameric" + - "anartrysilkoshimizumakiyosemitexn--lns-qlanxessrtrentinosued-tir" + - "olxn--loabt-0qaxn--lrdal-sraxn--lrenskog-54axn--lt-liacivilaviat" + - "ionxn--lten-granexn--lury-iraxn--mely-iraxn--merker-kuaxn--mgb2d" + - "desrvdonskoseis-an-artisteinkjerusalembetsukuis-an-actorxn--mgb9" + - "awbfidelityumenxn--mgba3a3ejtulansomnaritakurashikis-not-certifi" + - "edunetflixilxn--mgba3a4f16axn--mgba3a4franamizuholdingsmileirvik" + - "ouzushimashikokuchuoxn--mgba7c0bbn0axn--mgbaakc7dvfidonnakamurat" + - "ajirikuzentakatakahamaniwakuratenrissagaeroclubmedecincinnationw" + - "idealerimo-i-ranadexchangeiseiyoichiropracticbcn-north-1xn--mgba" + - "am7a8halsaintlouis-a-anarchistoirehabmerxn--mgbab2bdxn--mgbai9a5" + - "eva00bauhausposts-and-telecommunicationsnasadodgemrxn--mgbai9azg" + - "qp6jewelryxn--mgbayh7gpaduaxn--mgbb9fbpobanazawaxn--mgbbh1a71exn" + - "--mgbc0a9azcgxn--mgbca7dzdownloadxn--mgberp4a5d4a87gxn--mgberp4a" + - "5d4arxn--mgbpl2fhvalerxn--mgbqly7c0a67fbcivilisationxn--mgbqly7c" + - "vafredrikstadtvstoragexn--mgbt3dhdxn--mgbtf8flekkefjordxn--mgbtx" + - "2bbcartoonartdecoffeedbackasukabeeldengeluidunsagamiharaxamuseme" + - "ntargets-itargibestadigitalavagiske-burgjemnes3-eu-central-1xn--" + - "mgbx4cd0abbvieeexn--mix082fieldxn--mix891figuerestaurantoyonezaw" + - "axn--mjndalen-64axn--mk0axindustriesteamfamberkeleyxn--mk1bu44ci" + - "vilizationxn--mkru45iwchernovtsykkylvenetogakushimotoganewjersey" + - "xn--mlatvuopmi-s4axn--mli-tlapyatigorskozagawaxn--mlselv-iuaxn--" + - "moreke-juaxn--mori-qsakuhokkaidontexisteingeekozakis-an-entertai" + - "nerxn--mosjen-eyatominamiawajikixn--mot-tlaquilancasterxn--mre-o" + - "g-romsdal-qqbbtatarstanaustdalindasiaxn--msy-ula0hammarfeastafri" + - "camagichernihivgucciprianiigataitoeiheijis-a-greenissandoyxn--mt" + - "ta-vrjjat-k7afamilycompanycivilwarmanagementjxn--11b4c3dyroyrvik" + - "inguideventsaudaxn--muost-0qaxn--mxtq1misawaxn--ngbc5azdxn--ngbe" + - "9e0axn--nit225kpnxn--nmesjevuemie-tcbajddarchaeologyxn--nnx388ax" + - "n--nodessakuragawaxn--nqv7fs00emaxn--nry-yla5gxn--ntso0iqx3axn--" + - "ntsq17gxn--nttery-byaeservegame-serverdalxn--nvuotna-hwaxn--nyqy" + - "26axn--o1achattanooganorilskydivingxn--o3cw4hamurakamigoriginshi" + - "nshinotsurgeonshalloffamelhustkamitondabayashiogamagoriziaxn--od" + - "0algxn--od0aq3bbvacationswatch-and-clockerxn--ogbpf8flesbergxn--" + - "oppegrd-ixaxn--ostery-fyatsukareliancexn--osyro-wuaxn--p1acfdxn-" + - "-p1aixn--pbt977claimsauheradxn--pgbs0dhlxn--porsgu-sta26filateli" + - "axn--pssu33lxn--pssy2uxn--q9jyb4clickharkovallee-aosteroyxn--qck" + - "a1pmcdonaldstordalxn--qqqt11misconfusedxn--qxamurskjakdnepropetr" + - "ovskiptveterinairealtychyattorneyagawakkanaibetsubamericanfamily" + - "ngenebakkeshibechambagricaaarborteaches-yogasawaracingxn--rady-i" + - "raxn--rdal-poaxn--rde-ularvikppspiegelxn--rdy-0nabarixn--rennesy" + - "-v1axn--rhkkervju-01aflakstadaokagakibichuoxn--rholt-mragowoodsi" + - "dexn--rhqv96gxn--rht27zxn--rht3dxn--rht61exn--risa-5narusawaxn--" + - "risr-iraxn--rland-uuaxn--rlingen-mxaxn--rmskog-byatsushiroxn--rn" + - "y31hangoutsystemscloudappartis-a-photographerokuappartnershinshi" + - "roxn--rovu88beppubolognagatorockartuzyoriikasumigaurawa-mazowsze" + - "xposedogawarabikomaezakirunosegawaxn--rros-granvindafjordxn--rsk" + - "og-uuaxn--rst-0narutokorozawaxn--rsta-francaiseharaxn--ryken-vua" + - "xn--ryrvik-byawaraxn--s-1fareastcoastaldefencexn--s9brj9clinicol" + - "dwarmiamiastaplesavannahgaxn--sandnessjen-ogbizhevskrasnodarxn--" + - "sandy-yuaxn--seral-lraxn--ses554gxn--sgne-gratangenxn--skierv-ut" + - "azaskvolloabathsbcliniquenoharaxn--skjervy-v1axn--skjk-soaxn--sk" + - "nit-yqaxn--sknland-fxaxn--slat-5narviikanazawaxn--slt-elabourxn-" + - "-smla-hraxn--smna-gratis-a-bulls-fanxn--snase-nraxn--sndre-land-" + - "0cbremangerxn--snes-poaxn--snsa-roaxn--sr-aurdal-l8axn--sr-fron-" + - "q1axn--sr-odal-q1axn--sr-varanger-ggbernrtateshinanomachintaijin" + - "finitinfoggiaxn--srfold-byawatahamaxn--srreisa-q1axn--srum-grazx" + - "n--stfold-9xaxn--stjrdal-s1axn--stjrdalshalsen-sqbeskidynaliasco" + - "li-picenord-frontierxn--stre-toten-zcbstorenburgxn--t60b56axn--t" + - "ckweatherchannelxn--tjme-hraxn--tn0agrigentomologyeongbukrasnoya" + - "rskomonoxn--tnsberg-q1axn--tor131oxn--trany-yuaxn--trgstad-r1axn" + - "--trna-woaxn--troms-zuaxn--tysvr-vraxn--uc0atversicherungxn--uc0" + - "ay4axn--uist22hannanmokuizumodernxn--uisz3gxn--unjrga-rtaobaokin" + - "awashirosatobamagazinemurorangemologicallyxn--unup4yxn--uuwu58ax" + - "n--vads-jraxn--vard-jraxn--vegrshei-c0axn--vermgensberater-ctbes" + - "tbuyshousesalvadordalibabaikaliszczytnordlandupontarioceanograph" + - "iquepostfoldnavyatkaluganskasuyakutiaxn--vermgensberatung-pwbeta" + - "inaboxfordeatnuorogerschlesischesalzburglassassinationalheritage" + - "matsubarakawagoepsonyoursidegreevje-og-hornnesamegawaxn--vestvgy" + - "-ixa6oxn--vg-yiabcgxn--vgan-qoaxn--vgsy-qoa0jewishartgalleryxn--" + - "vgu402clintonoshoesaves-the-whalessandria-trani-barletta-andriat" + - "ranibarlettaandriaxn--vhquvestfoldxn--vler-qoaxn--vre-eiker-k8ax" + - "n--vrggt-xqadxn--vry-yla5gxn--vuq861bhartiffanynysafetydalindesn" + - "esamnangerxn--w4r85el8fhu5dnraxn--w4rs40lxn--wcvs22dxn--wgbh1clo" + - "thinguitarsavonaplesaxoxn--wgbl6axn--xhq521bielawallonieruchomos" + - "cienceandindustrynaval-d-aosta-valleyukuhashimojinuyamanouchikuh" + - "okuryugasakitashiobaraxn--xkc2al3hye2axn--xkc2dl3a5ee0hannovargg" + - "atraniandriabarlettatraniandriaxn--y9a3aquariumishimatsumaebashi" + - "modatexn--yer-znarvikredstonexn--yfro4i67oxn--ygarden-p1axn--ygb" + - "i2ammxn--42c2d9axn--ystre-slidre-ujbiellaakesvuemieleccexn--zbx0" + - "25dxn--zf0ao64axn--zf0avxn--45brj9choshibuyachiyodaxn--zfr164bie" + - "szczadygeyachimataipeigersundurbanamexeterxperiaxz" - -// nodes is the list of nodes. Each node is represented as a uint32, which -// encodes the node's children, wildcard bit and node type (as an index into -// the children array), ICANN bit and text. -// -// In the //-comment after each node's data, the nodes indexes of the children -// are formatted as (n0x1234-n0x1256), with * denoting the wildcard bit. The -// nodeType is printed as + for normal, ! for exception, and o for parent-only -// nodes that have children but don't match a domain label in their own right. -// An I denotes an ICANN domain. -// -// The layout within the uint32, from MSB to LSB, is: -// [ 1 bits] unused -// [ 9 bits] children index -// [ 1 bits] ICANN bit -// [15 bits] text index -// [ 6 bits] text length -var nodes = [...]uint32{ - 0x00379643, // n0x0000 c0x0000 (---------------) + I aaa - 0x002ff504, // n0x0001 c0x0000 (---------------) + I aarp - 0x00243386, // n0x0002 c0x0000 (---------------) + I abarth - 0x0030f843, // n0x0003 c0x0000 (---------------) + I abb - 0x0030f846, // n0x0004 c0x0000 (---------------) + I abbott - 0x00364206, // n0x0005 c0x0000 (---------------) + I abbvie - 0x003973c3, // n0x0006 c0x0000 (---------------) + I abc - 0x002a8884, // n0x0007 c0x0000 (---------------) + I able - 0x00226607, // n0x0008 c0x0000 (---------------) + I abogado - 0x00242fc8, // n0x0009 c0x0000 (---------------) + I abudhabi - 0x01a05882, // n0x000a c0x0006 (n0x05f6-n0x05fc) + I ac - 0x00305387, // n0x000b c0x0000 (---------------) + I academy - 0x0034d409, // n0x000c c0x0000 (---------------) + I accenture - 0x002eda0a, // n0x000d c0x0000 (---------------) + I accountant - 0x002eda0b, // n0x000e c0x0000 (---------------) + I accountants - 0x0022f6c3, // n0x000f c0x0000 (---------------) + I aco - 0x002820c6, // n0x0010 c0x0000 (---------------) + I active - 0x00235dc5, // n0x0011 c0x0000 (---------------) + I actor - 0x01e03d82, // n0x0012 c0x0007 (n0x05fc-n0x05fd) + I ad - 0x00209d04, // n0x0013 c0x0000 (---------------) + I adac - 0x00253903, // n0x0014 c0x0000 (---------------) + I ads - 0x00299105, // n0x0015 c0x0000 (---------------) + I adult - 0x0220ac02, // n0x0016 c0x0008 (n0x05fd-n0x0605) + I ae - 0x0024d5c3, // n0x0017 c0x0000 (---------------) + I aeg - 0x026bcb84, // n0x0018 c0x0009 (n0x0605-n0x065e) + I aero - 0x003023c5, // n0x0019 c0x0000 (---------------) + I aetna - 0x02a00342, // n0x001a c0x000a (n0x065e-n0x0663) + I af - 0x0036c30e, // n0x001b c0x0000 (---------------) + I afamilycompany - 0x00249ec3, // n0x001c c0x0000 (---------------) + I afl - 0x0036af06, // n0x001d c0x0000 (---------------) + I africa - 0x0036af0b, // n0x001e c0x0000 (---------------) + I africamagic - 0x02e01002, // n0x001f c0x000b (n0x0663-n0x0668) + I ag - 0x00279c47, // n0x0020 c0x0000 (---------------) + I agakhan - 0x002393c6, // n0x0021 c0x0000 (---------------) + I agency - 0x03202142, // n0x0022 c0x000c (n0x0668-n0x066c) + I ai - 0x0025cc83, // n0x0023 c0x0000 (---------------) + I aig - 0x0025cc84, // n0x0024 c0x0000 (---------------) + I aigo - 0x00204686, // n0x0025 c0x0000 (---------------) + I airbus - 0x0023ba48, // n0x0026 c0x0000 (---------------) + I airforce - 0x0027e646, // n0x0027 c0x0000 (---------------) + I airtel - 0x00377d04, // n0x0028 c0x0000 (---------------) + I akdn - 0x036001c2, // n0x0029 c0x000d (n0x066c-n0x0673) + I al - 0x00324e49, // n0x002a c0x0000 (---------------) + I alfaromeo - 0x003934c7, // n0x002b c0x0000 (---------------) + I alibaba - 0x002b7146, // n0x002c c0x0000 (---------------) + I alipay - 0x0033a7c9, // n0x002d c0x0000 (---------------) + I allfinanz - 0x0028e708, // n0x002e c0x0000 (---------------) + I allstate - 0x00391984, // n0x002f c0x0000 (---------------) + I ally - 0x0021c6c6, // n0x0030 c0x0000 (---------------) + I alsace - 0x003353c6, // n0x0031 c0x0000 (---------------) + I alstom - 0x03a01382, // n0x0032 c0x000e (n0x0673-n0x0674) + I am - 0x00240a8f, // n0x0033 c0x0000 (---------------) + I americanexpress - 0x00378c8e, // n0x0034 c0x0000 (---------------) + I americanfamily - 0x003a3884, // n0x0035 c0x0000 (---------------) + I amex - 0x00365985, // n0x0036 c0x0000 (---------------) + I amfam - 0x00229685, // n0x0037 c0x0000 (---------------) + I amica - 0x002b0d09, // n0x0038 c0x0000 (---------------) + I amsterdam - 0x03e00b42, // n0x0039 c0x000f (n0x0674-n0x0678) + I an - 0x0023dc09, // n0x003a c0x0000 (---------------) + I analytics - 0x0031e587, // n0x003b c0x0000 (---------------) + I android - 0x0034c406, // n0x003c c0x0000 (---------------) + I anquan - 0x0024fa83, // n0x003d c0x0000 (---------------) + I anz - 0x04203042, // n0x003e c0x0010 (n0x0678-n0x067e) + I ao - 0x00267903, // n0x003f c0x0000 (---------------) + I aol - 0x002136ca, // n0x0040 c0x0000 (---------------) + I apartments - 0x00220503, // n0x0041 c0x0000 (---------------) + I app - 0x002bda45, // n0x0042 c0x0000 (---------------) + I apple - 0x00229802, // n0x0043 c0x0000 (---------------) + I aq - 0x0027d0c9, // n0x0044 c0x0000 (---------------) + I aquarelle - 0x046011c2, // n0x0045 c0x0011 (n0x067e-n0x0687) + I ar - 0x0030f386, // n0x0046 c0x0000 (---------------) + I aramco - 0x002c3405, // n0x0047 c0x0000 (---------------) + I archi - 0x00344984, // n0x0048 c0x0000 (---------------) + I army - 0x04e51f04, // n0x0049 c0x0013 (n0x0688-n0x068e) + I arpa - 0x00234904, // n0x004a c0x0000 (---------------) + I arte - 0x05202002, // n0x004b c0x0014 (n0x068e-n0x068f) + I as - 0x002ff244, // n0x004c c0x0000 (---------------) + I asda - 0x0036a844, // n0x004d c0x0000 (---------------) + I asia - 0x0033014a, // n0x004e c0x0000 (---------------) + I associates - 0x05600102, // n0x004f c0x0015 (n0x068f-n0x0696) + I at - 0x00308207, // n0x0050 c0x0000 (---------------) + I athleta - 0x00378648, // n0x0051 c0x0000 (---------------) + I attorney - 0x05e09602, // n0x0052 c0x0017 (n0x0697-n0x06a9) + I au - 0x00319547, // n0x0053 c0x0000 (---------------) + I auction - 0x0022e9c4, // n0x0054 c0x0000 (---------------) + I audi - 0x002cae47, // n0x0055 c0x0000 (---------------) + I audible - 0x0022e9c5, // n0x0056 c0x0000 (---------------) + I audio - 0x0035d247, // n0x0057 c0x0000 (---------------) + I auspost - 0x0031e346, // n0x0058 c0x0000 (---------------) + I author - 0x00216404, // n0x0059 c0x0000 (---------------) + I auto - 0x00321605, // n0x005a c0x0000 (---------------) + I autos - 0x002ca387, // n0x005b c0x0000 (---------------) + I avianca - 0x06e01082, // n0x005c c0x001b (n0x06b7-n0x06b8) + I aw - 0x002eb603, // n0x005d c0x0000 (---------------) + I aws - 0x0020d002, // n0x005e c0x0000 (---------------) + I ax - 0x00362dc3, // n0x005f c0x0000 (---------------) + I axa - 0x07212502, // n0x0060 c0x001c (n0x06b8-n0x06c4) + I az - 0x00277585, // n0x0061 c0x0000 (---------------) + I azure - 0x07603002, // n0x0062 c0x001d (n0x06c4-n0x06cf) + I ba - 0x00301844, // n0x0063 c0x0000 (---------------) + I baby - 0x00274445, // n0x0064 c0x0000 (---------------) + I baidu - 0x003a37c7, // n0x0065 c0x0000 (---------------) + I banamex - 0x002dcc8e, // n0x0066 c0x0000 (---------------) + I bananarepublic - 0x00300944, // n0x0067 c0x0000 (---------------) + I band - 0x0020ad44, // n0x0068 c0x0000 (---------------) + I bank - 0x00211783, // n0x0069 c0x0000 (---------------) + I bar - 0x002bb549, // n0x006a c0x0000 (---------------) + I barcelona - 0x002d690b, // n0x006b c0x0000 (---------------) + I barclaycard - 0x002fe188, // n0x006c c0x0000 (---------------) + I barclays - 0x00307708, // n0x006d c0x0000 (---------------) + I barefoot - 0x0030dc48, // n0x006e c0x0000 (---------------) + I bargains - 0x0033a60a, // n0x006f c0x0000 (---------------) + I basketball - 0x0035d147, // n0x0070 c0x0000 (---------------) + I bauhaus - 0x0030b746, // n0x0071 c0x0000 (---------------) + I bayern - 0x07ac9742, // n0x0072 c0x001e (n0x06cf-n0x06d9) + I bb - 0x00362043, // n0x0073 c0x0000 (---------------) + I bbc - 0x0036a303, // n0x0074 c0x0000 (---------------) + I bbt - 0x00373384, // n0x0075 c0x0000 (---------------) + I bbva - 0x00397403, // n0x0076 c0x0000 (---------------) + I bcg - 0x0035bb43, // n0x0077 c0x0000 (---------------) + I bcn - 0x01712842, // n0x0078 c0x0005 (---------------)* o I bd - 0x07e094c2, // n0x0079 c0x001f (n0x06d9-n0x06db) + I be - 0x00215745, // n0x007a c0x0000 (---------------) + I beats - 0x0020b084, // n0x007b c0x0000 (---------------) + I beer - 0x002de9c7, // n0x007c c0x0000 (---------------) + I bentley - 0x00351e06, // n0x007d c0x0000 (---------------) + I berlin - 0x003633c4, // n0x007e c0x0000 (---------------) + I best - 0x00392f47, // n0x007f c0x0000 (---------------) + I bestbuy - 0x00210503, // n0x0080 c0x0000 (---------------) + I bet - 0x08357082, // n0x0081 c0x0020 (n0x06db-n0x06dc) + I bf - 0x08626882, // n0x0082 c0x0021 (n0x06dc-n0x0701) + I bg - 0x08b0c002, // n0x0083 c0x0022 (n0x0701-n0x0706) + I bh - 0x0039a906, // n0x0084 c0x0000 (---------------) + I bharti - 0x08e00002, // n0x0085 c0x0023 (n0x0706-n0x070b) + I bi - 0x00351845, // n0x0086 c0x0000 (---------------) + I bible - 0x00313d83, // n0x0087 c0x0000 (---------------) + I bid - 0x00202b44, // n0x0088 c0x0000 (---------------) + I bike - 0x002d6744, // n0x0089 c0x0000 (---------------) + I bing - 0x002d6745, // n0x008a c0x0000 (---------------) + I bingo - 0x00203a43, // n0x008b c0x0000 (---------------) + I bio - 0x0930a143, // n0x008c c0x0024 (n0x070b-n0x0712) + I biz - 0x096066c2, // n0x008d c0x0025 (n0x0712-n0x0716) + I bj - 0x002828c5, // n0x008e c0x0000 (---------------) + I black - 0x002828cb, // n0x008f c0x0000 (---------------) + I blackfriday - 0x00251446, // n0x0090 c0x0000 (---------------) + I blanco - 0x00208dcb, // n0x0091 c0x0000 (---------------) + I blockbuster - 0x00229004, // n0x0092 c0x0000 (---------------) + I blog - 0x00209389, // n0x0093 c0x0000 (---------------) + I bloomberg - 0x0020b184, // n0x0094 c0x0000 (---------------) + I blue - 0x09a0c542, // n0x0095 c0x0026 (n0x0716-n0x071b) + I bm - 0x0020d543, // n0x0096 c0x0000 (---------------) + I bms - 0x0020f283, // n0x0097 c0x0000 (---------------) + I bmw - 0x0160f402, // n0x0098 c0x0005 (---------------)* o I bn - 0x0023e043, // n0x0099 c0x0000 (---------------) + I bnl - 0x0020f40a, // n0x009a c0x0000 (---------------) + I bnpparibas - 0x09e06dc2, // n0x009b c0x0027 (n0x071b-n0x0724) + I bo - 0x00209f85, // n0x009c c0x0000 (---------------) + I boats - 0x0028888a, // n0x009d c0x0000 (---------------) + I boehringer - 0x002d5184, // n0x009e c0x0000 (---------------) + I bofa - 0x00211483, // n0x009f c0x0000 (---------------) + I bom - 0x00211944, // n0x00a0 c0x0000 (---------------) + I bond - 0x002149c3, // n0x00a1 c0x0000 (---------------) + I boo - 0x002149c4, // n0x00a2 c0x0000 (---------------) + I book - 0x002149c7, // n0x00a3 c0x0000 (---------------) + I booking - 0x00214f85, // n0x00a4 c0x0000 (---------------) + I boots - 0x00215cc5, // n0x00a5 c0x0000 (---------------) + I bosch - 0x00216286, // n0x00a6 c0x0000 (---------------) + I bostik - 0x00217083, // n0x00a7 c0x0000 (---------------) + I bot - 0x00219ec8, // n0x00a8 c0x0000 (---------------) + I boutique - 0x0a20bb42, // n0x00a9 c0x0028 (n0x0724-n0x076a) + I br - 0x0021ab08, // n0x00aa c0x0000 (---------------) + I bradesco - 0x0021fc0b, // n0x00ab c0x0000 (---------------) + I bridgestone - 0x0021ef88, // n0x00ac c0x0000 (---------------) + I broadway - 0x00220086, // n0x00ad c0x0000 (---------------) + I broker - 0x00221247, // n0x00ae c0x0000 (---------------) + I brother - 0x002230c8, // n0x00af c0x0000 (---------------) + I brussels - 0x0aa311c2, // n0x00b0 c0x002a (n0x076b-n0x0770) + I bs - 0x0ae1d7c2, // n0x00b1 c0x002b (n0x0770-n0x0775) + I bt - 0x002ce848, // n0x00b2 c0x0000 (---------------) + I budapest - 0x002338c7, // n0x00b3 c0x0000 (---------------) + I bugatti - 0x002dfcc5, // n0x00b4 c0x0000 (---------------) + I build - 0x002dfcc8, // n0x00b5 c0x0000 (---------------) + I builders - 0x002ac908, // n0x00b6 c0x0000 (---------------) + I business - 0x00393043, // n0x00b7 c0x0000 (---------------) + I buy - 0x00229f84, // n0x00b8 c0x0000 (---------------) + I buzz - 0x00364282, // n0x00b9 c0x0000 (---------------) + I bv - 0x0b22a802, // n0x00ba c0x002c (n0x0775-n0x0777) + I bw - 0x0b602902, // n0x00bb c0x002d (n0x0777-n0x077b) + I by - 0x0be2b202, // n0x00bc c0x002f (n0x077c-n0x0782) + I bz - 0x0022b203, // n0x00bd c0x0000 (---------------) + I bzh - 0x0c200302, // n0x00be c0x0030 (n0x0782-n0x0793) + I ca - 0x0030f803, // n0x00bf c0x0000 (---------------) + I cab - 0x00200304, // n0x00c0 c0x0000 (---------------) + I cafe - 0x00217203, // n0x00c1 c0x0000 (---------------) + I cal - 0x00391944, // n0x00c2 c0x0000 (---------------) + I call - 0x00225dcb, // n0x00c3 c0x0000 (---------------) + I calvinklein - 0x0031b3c6, // n0x00c4 c0x0000 (---------------) + I camera - 0x0023bf44, // n0x00c5 c0x0000 (---------------) + I camp - 0x0029008e, // n0x00c6 c0x0000 (---------------) + I cancerresearch - 0x00333445, // n0x00c7 c0x0000 (---------------) + I canon - 0x002a9308, // n0x00c8 c0x0000 (---------------) + I capetown - 0x002ca4c7, // n0x00c9 c0x0000 (---------------) + I capital - 0x002ca4ca, // n0x00ca c0x0000 (---------------) + I capitalone - 0x0023e283, // n0x00cb c0x0000 (---------------) + I car - 0x00265e07, // n0x00cc c0x0000 (---------------) + I caravan - 0x002d6ac5, // n0x00cd c0x0000 (---------------) + I cards - 0x002a5344, // n0x00ce c0x0000 (---------------) + I care - 0x002a5346, // n0x00cf c0x0000 (---------------) + I career - 0x002a5347, // n0x00d0 c0x0000 (---------------) + I careers - 0x002b6284, // n0x00d1 c0x0000 (---------------) + I cars - 0x00350687, // n0x00d2 c0x0000 (---------------) + I cartier - 0x00203cc4, // n0x00d3 c0x0000 (---------------) + I casa - 0x002108c4, // n0x00d4 c0x0000 (---------------) + I case - 0x002108c6, // n0x00d5 c0x0000 (---------------) + I caseih - 0x002c7944, // n0x00d6 c0x0000 (---------------) + I cash - 0x00351546, // n0x00d7 c0x0000 (---------------) + I casino - 0x0020c383, // n0x00d8 c0x0000 (---------------) + I cat - 0x00233688, // n0x00d9 c0x0000 (---------------) + I catering - 0x00242e43, // n0x00da c0x0000 (---------------) + I cba - 0x0023e003, // n0x00db c0x0000 (---------------) + I cbn - 0x00388044, // n0x00dc c0x0000 (---------------) + I cbre - 0x0038c903, // n0x00dd c0x0000 (---------------) + I cbs - 0x0c61db82, // n0x00de c0x0031 (n0x0793-n0x0797) + I cc - 0x0ca39702, // n0x00df c0x0032 (n0x0797-n0x0798) + I cd - 0x00202ec3, // n0x00e0 c0x0000 (---------------) + I ceb - 0x00204206, // n0x00e1 c0x0000 (---------------) + I center - 0x0023bbc3, // n0x00e2 c0x0000 (---------------) + I ceo - 0x00312604, // n0x00e3 c0x0000 (---------------) + I cern - 0x0ce12ac2, // n0x00e4 c0x0033 (n0x0798-n0x0799) + I cf - 0x00212ac3, // n0x00e5 c0x0000 (---------------) + I cfa - 0x00374e83, // n0x00e6 c0x0000 (---------------) + I cfd - 0x00219182, // n0x00e7 c0x0000 (---------------) + I cg - 0x0d2058c2, // n0x00e8 c0x0034 (n0x0799-n0x079a) + I ch - 0x002b5806, // n0x00e9 c0x0000 (---------------) + I chanel - 0x00236cc7, // n0x00ea c0x0000 (---------------) + I channel - 0x00332285, // n0x00eb c0x0000 (---------------) + I chase - 0x00322a84, // n0x00ec c0x0000 (---------------) + I chat - 0x0027f485, // n0x00ed c0x0000 (---------------) + I cheap - 0x00389d87, // n0x00ee c0x0000 (---------------) + I chintai - 0x002a9945, // n0x00ef c0x0000 (---------------) + I chloe - 0x002f9e89, // n0x00f0 c0x0000 (---------------) + I christmas - 0x002fb446, // n0x00f1 c0x0000 (---------------) + I chrome - 0x002fcf88, // n0x00f2 c0x0000 (---------------) + I chrysler - 0x00332186, // n0x00f3 c0x0000 (---------------) + I church - 0x0d6080c2, // n0x00f4 c0x0035 (n0x079a-n0x07a9) + I ci - 0x0036b488, // n0x00f5 c0x0000 (---------------) + I cipriani - 0x00337906, // n0x00f6 c0x0000 (---------------) + I circle - 0x002080c5, // n0x00f7 c0x0000 (---------------) + I cisco - 0x0034e707, // n0x00f8 c0x0000 (---------------) + I citadel - 0x00351444, // n0x00f9 c0x0000 (---------------) + I citi - 0x00351445, // n0x00fa c0x0000 (---------------) + I citic - 0x0027e804, // n0x00fb c0x0000 (---------------) + I city - 0x0027e808, // n0x00fc c0x0000 (---------------) + I cityeats - 0x0da08e82, // n0x00fd c0x0036 (n0x07a9-n0x07aa)* o I ck - 0x0de02502, // n0x00fe c0x0037 (n0x07aa-n0x07af) + I cl - 0x003753c6, // n0x00ff c0x0000 (---------------) + I claims - 0x0033d548, // n0x0100 c0x0000 (---------------) + I cleaning - 0x00376805, // n0x0101 c0x0000 (---------------) + I click - 0x00382e06, // n0x0102 c0x0000 (---------------) + I clinic - 0x00385448, // n0x0103 c0x0000 (---------------) + I clinique - 0x0039bf48, // n0x0104 c0x0000 (---------------) + I clothing - 0x0022b985, // n0x0105 c0x0000 (---------------) + I cloud - 0x00202504, // n0x0106 c0x0000 (---------------) + I club - 0x0035aac7, // n0x0107 c0x0000 (---------------) + I clubmed - 0x0e255882, // n0x0108 c0x0038 (n0x07af-n0x07b3) + I cm - 0x0e61a142, // n0x0109 c0x0039 (n0x07b3-n0x07e0) + I cn - 0x0fe08182, // n0x010a c0x003f (n0x07e5-n0x07f2) + I co - 0x0033c805, // n0x010b c0x0000 (---------------) + I coach - 0x002932c5, // n0x010c c0x0000 (---------------) + I codes - 0x003623c6, // n0x010d c0x0000 (---------------) + I coffee - 0x0025d8c7, // n0x010e c0x0000 (---------------) + I college - 0x0021dbc7, // n0x010f c0x0000 (---------------) + I cologne - 0x1062edc3, // n0x0110 c0x0041 (n0x07f3-n0x08bf) + I com - 0x002d2dc7, // n0x0111 c0x0000 (---------------) + I comcast - 0x0022edc8, // n0x0112 c0x0000 (---------------) + I commbank - 0x0022f149, // n0x0113 c0x0000 (---------------) + I community - 0x0036c4c7, // n0x0114 c0x0000 (---------------) + I company - 0x0022f707, // n0x0115 c0x0000 (---------------) + I compare - 0x00230608, // n0x0116 c0x0000 (---------------) + I computer - 0x00230e06, // n0x0117 c0x0000 (---------------) + I comsec - 0x002314c6, // n0x0118 c0x0000 (---------------) + I condos - 0x0023224c, // n0x0119 c0x0000 (---------------) + I construction - 0x00232dca, // n0x011a c0x0000 (---------------) + I consulting - 0x00233287, // n0x011b c0x0000 (---------------) + I contact - 0x00235c8b, // n0x011c c0x0000 (---------------) + I contractors - 0x00236b07, // n0x011d c0x0000 (---------------) + I cooking - 0x00236b0e, // n0x011e c0x0000 (---------------) + I cookingchannel - 0x00237604, // n0x011f c0x0000 (---------------) + I cool - 0x00238284, // n0x0120 c0x0000 (---------------) + I coop - 0x00239e47, // n0x0121 c0x0000 (---------------) + I corsica - 0x00337c87, // n0x0122 c0x0000 (---------------) + I country - 0x0023c846, // n0x0123 c0x0000 (---------------) + I coupon - 0x0023c847, // n0x0124 c0x0000 (---------------) + I coupons - 0x0023cf87, // n0x0125 c0x0000 (---------------) + I courses - 0x11a11e82, // n0x0126 c0x0046 (n0x08dd-n0x08e4) + I cr - 0x0023e106, // n0x0127 c0x0000 (---------------) + I credit - 0x0023e10a, // n0x0128 c0x0000 (---------------) + I creditcard - 0x0023e38b, // n0x0129 c0x0000 (---------------) + I creditunion - 0x0023eec7, // n0x012a c0x0000 (---------------) + I cricket - 0x0023f885, // n0x012b c0x0000 (---------------) + I crown - 0x0023f9c3, // n0x012c c0x0000 (---------------) + I crs - 0x00240107, // n0x012d c0x0000 (---------------) + I cruises - 0x002267c3, // n0x012e c0x0000 (---------------) + I csc - 0x11e17882, // n0x012f c0x0047 (n0x08e4-n0x08ea) + I cu - 0x0024070a, // n0x0130 c0x0000 (---------------) + I cuisinella - 0x1234f802, // n0x0131 c0x0048 (n0x08ea-n0x08eb) + I cv - 0x126c7542, // n0x0132 c0x0049 (n0x08eb-n0x08ef) + I cw - 0x12a41b02, // n0x0133 c0x004a (n0x08ef-n0x08f1) + I cx - 0x12e394c2, // n0x0134 c0x004b (n0x08f1-n0x08fe) o I cy - 0x00242545, // n0x0135 c0x0000 (---------------) + I cymru - 0x00242c44, // n0x0136 c0x0000 (---------------) + I cyou - 0x13633fc2, // n0x0137 c0x004d (n0x08ff-n0x0900) + I cz - 0x002ff2c5, // n0x0138 c0x0000 (---------------) + I dabur - 0x0025cd83, // n0x0139 c0x0000 (---------------) + I dad - 0x0033dcc5, // n0x013a c0x0000 (---------------) + I dance - 0x00205dc4, // n0x013b c0x0000 (---------------) + I date - 0x00202c46, // n0x013c c0x0000 (---------------) + I dating - 0x0020b286, // n0x013d c0x0000 (---------------) + I datsun - 0x00282ac3, // n0x013e c0x0000 (---------------) + I day - 0x00227e04, // n0x013f c0x0000 (---------------) + I dclk - 0x002bd543, // n0x0140 c0x0000 (---------------) + I dds - 0x13a00402, // n0x0141 c0x004e (n0x0900-n0x0908) + I de - 0x00235884, // n0x0142 c0x0000 (---------------) + I deal - 0x0035b046, // n0x0143 c0x0000 (---------------) + I dealer - 0x00235885, // n0x0144 c0x0000 (---------------) + I deals - 0x00396686, // n0x0145 c0x0000 (---------------) + I degree - 0x0034e808, // n0x0146 c0x0000 (---------------) + I delivery - 0x00253184, // n0x0147 c0x0000 (---------------) + I dell - 0x00319dc8, // n0x0148 c0x0000 (---------------) + I deloitte - 0x00331185, // n0x0149 c0x0000 (---------------) + I delta - 0x00218588, // n0x014a c0x0000 (---------------) + I democrat - 0x002a3206, // n0x014b c0x0000 (---------------) + I dental - 0x002ae147, // n0x014c c0x0000 (---------------) + I dentist - 0x00222ec4, // n0x014d c0x0000 (---------------) + I desi - 0x00222ec6, // n0x014e c0x0000 (---------------) + I design - 0x0036d143, // n0x014f c0x0000 (---------------) + I dev - 0x00375943, // n0x0150 c0x0000 (---------------) + I dhl - 0x002c13c8, // n0x0151 c0x0000 (---------------) + I diamonds - 0x0030c184, // n0x0152 c0x0000 (---------------) + I diet - 0x00363507, // n0x0153 c0x0000 (---------------) + I digital - 0x002477c6, // n0x0154 c0x0000 (---------------) + I direct - 0x002477c9, // n0x0155 c0x0000 (---------------) + I directory - 0x0031e708, // n0x0156 c0x0000 (---------------) + I discount - 0x0033b448, // n0x0157 c0x0000 (---------------) + I discover - 0x00224b44, // n0x0158 c0x0000 (---------------) + I dish - 0x0022b5c2, // n0x0159 c0x0000 (---------------) + I dj - 0x13e00ac2, // n0x015a c0x004f (n0x0908-n0x0909) + I dk - 0x14214142, // n0x015b c0x0050 (n0x0909-n0x090e) + I dm - 0x002a1143, // n0x015c c0x0000 (---------------) + I dnp - 0x14606e42, // n0x015d c0x0051 (n0x090e-n0x0918) + I do - 0x00226744, // n0x015e c0x0000 (---------------) + I docs - 0x0035db05, // n0x015f c0x0000 (---------------) + I dodge - 0x0022c703, // n0x0160 c0x0000 (---------------) + I dog - 0x00232704, // n0x0161 c0x0000 (---------------) + I doha - 0x002f90c7, // n0x0162 c0x0000 (---------------) + I domains - 0x00237d86, // n0x0163 c0x0000 (---------------) + I doosan - 0x003227c3, // n0x0164 c0x0000 (---------------) + I dot - 0x0035f648, // n0x0165 c0x0000 (---------------) + I download - 0x0030e985, // n0x0166 c0x0000 (---------------) + I drive - 0x002839c4, // n0x0167 c0x0000 (---------------) + I dstv - 0x00361303, // n0x0168 c0x0000 (---------------) + I dtv - 0x002743c5, // n0x0169 c0x0000 (---------------) + I dubai - 0x00274504, // n0x016a c0x0000 (---------------) + I duck - 0x00350386, // n0x016b c0x0000 (---------------) + I dunlop - 0x00362ac4, // n0x016c c0x0000 (---------------) + I duns - 0x00393b06, // n0x016d c0x0000 (---------------) + I dupont - 0x003a3706, // n0x016e c0x0000 (---------------) + I durban - 0x00306f44, // n0x016f c0x0000 (---------------) + I dvag - 0x00210183, // n0x0170 c0x0000 (---------------) + I dwg - 0x14aa1402, // n0x0171 c0x0052 (n0x0918-n0x0920) + I dz - 0x00279b05, // n0x0172 c0x0000 (---------------) + I earth - 0x00215783, // n0x0173 c0x0000 (---------------) + I eat - 0x14e03c82, // n0x0174 c0x0053 (n0x0920-n0x092c) + I ec - 0x0022bcc5, // n0x0175 c0x0000 (---------------) + I edeka - 0x002349c3, // n0x0176 c0x0000 (---------------) + I edu - 0x002349c9, // n0x0177 c0x0000 (---------------) + I education - 0x1520b0c2, // n0x0178 c0x0054 (n0x092c-n0x0936) + I ee - 0x15a05a42, // n0x0179 c0x0056 (n0x0937-n0x0940) + I eg - 0x00301c05, // n0x017a c0x0000 (---------------) + I email - 0x002ae506, // n0x017b c0x0000 (---------------) + I emerck - 0x0031fc47, // n0x017c c0x0000 (---------------) + I emerson - 0x002c9306, // n0x017d c0x0000 (---------------) + I energy - 0x0032a108, // n0x017e c0x0000 (---------------) + I engineer - 0x0032a10b, // n0x017f c0x0000 (---------------) + I engineering - 0x0020424b, // n0x0180 c0x0000 (---------------) + I enterprises - 0x003940c5, // n0x0181 c0x0000 (---------------) + I epost - 0x003963c5, // n0x0182 c0x0000 (---------------) + I epson - 0x002bf809, // n0x0183 c0x0000 (---------------) + I equipment - 0x01600442, // n0x0184 c0x0005 (---------------)* o I er - 0x003061c8, // n0x0185 c0x0000 (---------------) + I ericsson - 0x00218044, // n0x0186 c0x0000 (---------------) + I erni - 0x16202242, // n0x0187 c0x0058 (n0x0941-n0x0946) + I es - 0x0027c5c3, // n0x0188 c0x0000 (---------------) + I esq - 0x002bf586, // n0x0189 c0x0000 (---------------) + I estate - 0x002032c8, // n0x018a c0x0000 (---------------) + I esurance - 0x16a0a502, // n0x018b c0x005a (n0x0947-n0x094f) + I et - 0x00222708, // n0x018c c0x0000 (---------------) + I etisalat - 0x00224542, // n0x018d c0x0000 (---------------) + I eu - 0x0027df0a, // n0x018e c0x0000 (---------------) + I eurovision - 0x00224543, // n0x018f c0x0000 (---------------) + I eus - 0x0036d186, // n0x0190 c0x0000 (---------------) + I events - 0x0020ac48, // n0x0191 c0x0000 (---------------) + I everbank - 0x0035b488, // n0x0192 c0x0000 (---------------) + I exchange - 0x002a8546, // n0x0193 c0x0000 (---------------) + I expert - 0x0037ffc7, // n0x0194 c0x0000 (---------------) + I exposed - 0x00240c87, // n0x0195 c0x0000 (---------------) + I express - 0x00334f4a, // n0x0196 c0x0000 (---------------) + I extraspace - 0x002d5204, // n0x0197 c0x0000 (---------------) + I fage - 0x00212b04, // n0x0198 c0x0000 (---------------) + I fail - 0x00336b89, // n0x0199 c0x0000 (---------------) + I fairwinds - 0x0034c105, // n0x019a c0x0000 (---------------) + I faith - 0x0036c346, // n0x019b c0x0000 (---------------) + I family - 0x0020dd43, // n0x019c c0x0000 (---------------) + I fan - 0x002da484, // n0x019d c0x0000 (---------------) + I fans - 0x002a0f44, // n0x019e c0x0000 (---------------) + I farm - 0x00302a87, // n0x019f c0x0000 (---------------) + I farmers - 0x0022a887, // n0x01a0 c0x0000 (---------------) + I fashion - 0x002e01c4, // n0x01a1 c0x0000 (---------------) + I fast - 0x002120c5, // n0x01a2 c0x0000 (---------------) + I fedex - 0x00362488, // n0x01a3 c0x0000 (---------------) + I feedback - 0x002f6847, // n0x01a4 c0x0000 (---------------) + I ferrari - 0x00333207, // n0x01a5 c0x0000 (---------------) + I ferrero - 0x16e0e002, // n0x01a6 c0x005b (n0x094f-n0x0952) + I fi - 0x0028b4c4, // n0x01a7 c0x0000 (---------------) + I fiat - 0x003570c8, // n0x01a8 c0x0000 (---------------) + I fidelity - 0x00359c84, // n0x01a9 c0x0000 (---------------) + I fido - 0x00243ec4, // n0x01aa c0x0000 (---------------) + I film - 0x00244285, // n0x01ab c0x0000 (---------------) + I final - 0x002443c7, // n0x01ac c0x0000 (---------------) + I finance - 0x0020e009, // n0x01ad c0x0000 (---------------) + I financial - 0x00245884, // n0x01ae c0x0000 (---------------) + I fire - 0x00247509, // n0x01af c0x0000 (---------------) + I firestone - 0x00247a08, // n0x01b0 c0x0000 (---------------) + I firmdale - 0x00248504, // n0x01b1 c0x0000 (---------------) + I fish - 0x00248507, // n0x01b2 c0x0000 (---------------) + I fishing - 0x00248b03, // n0x01b3 c0x0000 (---------------) + I fit - 0x00249187, // n0x01b4 c0x0000 (---------------) + I fitness - 0x0162f3c2, // n0x01b5 c0x0005 (---------------)* o I fj - 0x016a4482, // n0x01b6 c0x0005 (---------------)* o I fk - 0x00249846, // n0x01b7 c0x0000 (---------------) + I flickr - 0x00249f07, // n0x01b8 c0x0000 (---------------) + I flights - 0x0024a344, // n0x01b9 c0x0000 (---------------) + I flir - 0x0024b087, // n0x01ba c0x0000 (---------------) + I florist - 0x0024bbc7, // n0x01bb c0x0000 (---------------) + I flowers - 0x0024c108, // n0x01bc c0x0000 (---------------) + I flsmidth - 0x0024c783, // n0x01bd c0x0000 (---------------) + I fly - 0x0023d4c2, // n0x01be c0x0000 (---------------) + I fm - 0x0023bb02, // n0x01bf c0x0000 (---------------) + I fo - 0x0024dc83, // n0x01c0 c0x0000 (---------------) + I foo - 0x0024dc8b, // n0x01c1 c0x0000 (---------------) + I foodnetwork - 0x00307808, // n0x01c2 c0x0000 (---------------) + I football - 0x00395184, // n0x01c3 c0x0000 (---------------) + I ford - 0x0024f2c5, // n0x01c4 c0x0000 (---------------) + I forex - 0x00252587, // n0x01c5 c0x0000 (---------------) + I forsale - 0x00253c85, // n0x01c6 c0x0000 (---------------) + I forum - 0x002b370a, // n0x01c7 c0x0000 (---------------) + I foundation - 0x00255183, // n0x01c8 c0x0000 (---------------) + I fox - 0x17207fc2, // n0x01c9 c0x005c (n0x0952-n0x096a) + I fr - 0x00256cc9, // n0x01ca c0x0000 (---------------) + I fresenius - 0x0025a843, // n0x01cb c0x0000 (---------------) + I frl - 0x0025a907, // n0x01cc c0x0000 (---------------) + I frogans - 0x0022c9c9, // n0x01cd c0x0000 (---------------) + I frontdoor - 0x0038c308, // n0x01ce c0x0000 (---------------) + I frontier - 0x00235583, // n0x01cf c0x0000 (---------------) + I ftr - 0x00273507, // n0x01d0 c0x0000 (---------------) + I fujitsu - 0x00273a09, // n0x01d1 c0x0000 (---------------) + I fujixerox - 0x00279fc4, // n0x01d2 c0x0000 (---------------) + I fund - 0x0027ae09, // n0x01d3 c0x0000 (---------------) + I furniture - 0x00280b06, // n0x01d4 c0x0000 (---------------) + I futbol - 0x00281d43, // n0x01d5 c0x0000 (---------------) + I fyi - 0x002006c2, // n0x01d6 c0x0000 (---------------) + I ga - 0x0021c683, // n0x01d7 c0x0000 (---------------) + I gal - 0x00397d47, // n0x01d8 c0x0000 (---------------) + I gallery - 0x00337a85, // n0x01d9 c0x0000 (---------------) + I gallo - 0x002dca86, // n0x01da c0x0000 (---------------) + I gallup - 0x0029f084, // n0x01db c0x0000 (---------------) + I game - 0x00318cc5, // n0x01dc c0x0000 (---------------) + I games - 0x00213683, // n0x01dd c0x0000 (---------------) + I gap - 0x002172c6, // n0x01de c0x0000 (---------------) + I garden - 0x00209582, // n0x01df c0x0000 (---------------) + I gb - 0x00383ac4, // n0x01e0 c0x0000 (---------------) + I gbiz - 0x00221f82, // n0x01e1 c0x0000 (---------------) + I gd - 0x002290c3, // n0x01e2 c0x0000 (---------------) + I gdn - 0x17603982, // n0x01e3 c0x005d (n0x096a-n0x0971) + I ge - 0x00244ac3, // n0x01e4 c0x0000 (---------------) + I gea - 0x00216ac4, // n0x01e5 c0x0000 (---------------) + I gent - 0x00216ac7, // n0x01e6 c0x0000 (---------------) + I genting - 0x0031e0c6, // n0x01e7 c0x0000 (---------------) + I george - 0x00255682, // n0x01e8 c0x0000 (---------------) + I gf - 0x17a4c482, // n0x01e9 c0x005e (n0x0971-n0x0974) + I gg - 0x0033b684, // n0x01ea c0x0000 (---------------) + I ggee - 0x17e45f82, // n0x01eb c0x005f (n0x0974-n0x0979) + I gh - 0x18212e42, // n0x01ec c0x0060 (n0x0979-n0x097f) + I gi - 0x00342584, // n0x01ed c0x0000 (---------------) + I gift - 0x00342585, // n0x01ee c0x0000 (---------------) + I gifts - 0x00219605, // n0x01ef c0x0000 (---------------) + I gives - 0x00261a06, // n0x01f0 c0x0000 (---------------) + I giving - 0x18602d82, // n0x01f1 c0x0061 (n0x097f-n0x0984) + I gl - 0x00319d05, // n0x01f2 c0x0000 (---------------) + I glade - 0x003959c5, // n0x01f3 c0x0000 (---------------) + I glass - 0x0027d403, // n0x01f4 c0x0000 (---------------) + I gle - 0x00205586, // n0x01f5 c0x0000 (---------------) + I global - 0x00206d05, // n0x01f6 c0x0000 (---------------) + I globo - 0x0020f7c2, // n0x01f7 c0x0000 (---------------) + I gm - 0x00331dc5, // n0x01f8 c0x0000 (---------------) + I gmail - 0x00210203, // n0x01f9 c0x0000 (---------------) + I gmo - 0x00214b43, // n0x01fa c0x0000 (---------------) + I gmx - 0x18a07e42, // n0x01fb c0x0062 (n0x0984-n0x098a) + I gn - 0x0025cd07, // n0x01fc c0x0000 (---------------) + I godaddy - 0x002f6ac4, // n0x01fd c0x0000 (---------------) + I gold - 0x002f6ac9, // n0x01fe c0x0000 (---------------) + I goldpoint - 0x00247c04, // n0x01ff c0x0000 (---------------) + I golf - 0x002799c3, // n0x0200 c0x0000 (---------------) + I goo - 0x0031bd09, // n0x0201 c0x0000 (---------------) + I goodhands - 0x002799c8, // n0x0202 c0x0000 (---------------) + I goodyear - 0x00293144, // n0x0203 c0x0000 (---------------) + I goog - 0x00293146, // n0x0204 c0x0000 (---------------) + I google - 0x0029ae43, // n0x0205 c0x0000 (---------------) + I gop - 0x00214503, // n0x0206 c0x0000 (---------------) + I got - 0x002d6804, // n0x0207 c0x0000 (---------------) + I gotv - 0x00275003, // n0x0208 c0x0000 (---------------) + I gov - 0x18edee02, // n0x0209 c0x0063 (n0x098a-n0x0990) + I gp - 0x002f83c2, // n0x020a c0x0000 (---------------) + I gq - 0x192089c2, // n0x020b c0x0064 (n0x0990-n0x0996) + I gr - 0x00315bc8, // n0x020c c0x0000 (---------------) + I grainger - 0x002ff848, // n0x020d c0x0000 (---------------) + I graphics - 0x00387486, // n0x020e c0x0000 (---------------) + I gratis - 0x0036bb45, // n0x020f c0x0000 (---------------) + I green - 0x00219c05, // n0x0210 c0x0000 (---------------) + I gripe - 0x0020eb45, // n0x0211 c0x0000 (---------------) + I group - 0x002242c2, // n0x0212 c0x0000 (---------------) + I gs - 0x19627d02, // n0x0213 c0x0065 (n0x0996-n0x099d) + I gt - 0x01605a82, // n0x0214 c0x0005 (---------------)* o I gu - 0x0034c288, // n0x0215 c0x0000 (---------------) + I guardian - 0x0036b3c5, // n0x0216 c0x0000 (---------------) + I gucci - 0x002d9b84, // n0x0217 c0x0000 (---------------) + I guge - 0x0036d085, // n0x0218 c0x0000 (---------------) + I guide - 0x0039c107, // n0x0219 c0x0000 (---------------) + I guitars - 0x00330644, // n0x021a c0x0000 (---------------) + I guru - 0x0020fb82, // n0x021b c0x0000 (---------------) + I gw - 0x19a01642, // n0x021c c0x0066 (n0x099d-n0x09a0) + I gy - 0x00205407, // n0x021d c0x0000 (---------------) + I hamburg - 0x0037e0c7, // n0x021e c0x0000 (---------------) + I hangout - 0x0035d204, // n0x021f c0x0000 (---------------) + I haus - 0x00288843, // n0x0220 c0x0000 (---------------) + I hbo - 0x00242d84, // n0x0221 c0x0000 (---------------) + I hdfc - 0x00242d88, // n0x0222 c0x0000 (---------------) + I hdfcbank - 0x002a51c6, // n0x0223 c0x0000 (---------------) + I health - 0x002a51ca, // n0x0224 c0x0000 (---------------) + I healthcare - 0x0020dec4, // n0x0225 c0x0000 (---------------) + I help - 0x0020c9c8, // n0x0226 c0x0000 (---------------) + I helsinki - 0x0024c384, // n0x0227 c0x0000 (---------------) + I here - 0x00221346, // n0x0228 c0x0000 (---------------) + I hermes - 0x00289a84, // n0x0229 c0x0000 (---------------) + I hgtv - 0x0033cb06, // n0x022a c0x0000 (---------------) + I hiphop - 0x00229cc9, // n0x022b c0x0000 (---------------) + I hisamitsu - 0x00299f47, // n0x022c c0x0000 (---------------) + I hitachi - 0x0036b303, // n0x022d c0x0000 (---------------) + I hiv - 0x19e0e882, // n0x022e c0x0067 (n0x09a0-n0x09b8) + I hk - 0x002667c3, // n0x022f c0x0000 (---------------) + I hkt - 0x0020c742, // n0x0230 c0x0000 (---------------) + I hm - 0x1a218902, // n0x0231 c0x0068 (n0x09b8-n0x09be) + I hn - 0x002d8e06, // n0x0232 c0x0000 (---------------) + I hockey - 0x00358bc8, // n0x0233 c0x0000 (---------------) + I holdings - 0x0029c0c7, // n0x0234 c0x0000 (---------------) + I holiday - 0x0026c749, // n0x0235 c0x0000 (---------------) + I homedepot - 0x00290d49, // n0x0236 c0x0000 (---------------) + I homegoods - 0x0029cc05, // n0x0237 c0x0000 (---------------) + I homes - 0x0029cc09, // n0x0238 c0x0000 (---------------) + I homesense - 0x0029e045, // n0x0239 c0x0000 (---------------) + I honda - 0x0029e7c9, // n0x023a c0x0000 (---------------) + I honeywell - 0x0029f5c5, // n0x023b c0x0000 (---------------) + I horse - 0x00207a84, // n0x023c c0x0000 (---------------) + I host - 0x0029f1c7, // n0x023d c0x0000 (---------------) + I hosting - 0x0022fac3, // n0x023e c0x0000 (---------------) + I hot - 0x0029fcc7, // n0x023f c0x0000 (---------------) + I hoteles - 0x002a0287, // n0x0240 c0x0000 (---------------) + I hotmail - 0x00299885, // n0x0241 c0x0000 (---------------) + I house - 0x00296183, // n0x0242 c0x0000 (---------------) + I how - 0x1a632882, // n0x0243 c0x0069 (n0x09be-n0x09c3) + I hr - 0x00385384, // n0x0244 c0x0000 (---------------) + I hsbc - 0x1aa45fc2, // n0x0245 c0x006a (n0x09c3-n0x09d4) + I ht - 0x00255803, // n0x0246 c0x0000 (---------------) + I htc - 0x1ae0d0c2, // n0x0247 c0x006b (n0x09d4-n0x09f4) + I hu - 0x002ef4c6, // n0x0248 c0x0000 (---------------) + I hughes - 0x003785c5, // n0x0249 c0x0000 (---------------) + I hyatt - 0x002a4107, // n0x024a c0x0000 (---------------) + I hyundai - 0x00264103, // n0x024b c0x0000 (---------------) + I ibm - 0x0035bac4, // n0x024c c0x0000 (---------------) + I icbc - 0x00202e83, // n0x024d c0x0000 (---------------) + I ice - 0x002ce583, // n0x024e c0x0000 (---------------) + I icu - 0x1b205d82, // n0x024f c0x006c (n0x09f4-n0x09ff) + I id - 0x1ba00042, // n0x0250 c0x006e (n0x0a00-n0x0a02) + I ie - 0x00364304, // n0x0251 c0x0000 (---------------) + I ieee - 0x0023d483, // n0x0252 c0x0000 (---------------) + I ifm - 0x002bc045, // n0x0253 c0x0000 (---------------) + I iinet - 0x002bbe85, // n0x0254 c0x0000 (---------------) + I ikano - 0x1be02f82, // n0x0255 c0x006f (n0x0a02-n0x0a0a) + I il - 0x1c607242, // n0x0256 c0x0071 (n0x0a0b-n0x0a12) + I im - 0x0024fd06, // n0x0257 c0x0000 (---------------) + I imamat - 0x00307644, // n0x0258 c0x0000 (---------------) + I imdb - 0x00207784, // n0x0259 c0x0000 (---------------) + I immo - 0x0020778a, // n0x025a c0x0000 (---------------) + I immobilien - 0x1ce020c2, // n0x025b c0x0073 (n0x0a14-n0x0a21) + I in - 0x0036568a, // n0x025c c0x0000 (---------------) + I industries - 0x00389f88, // n0x025d c0x0000 (---------------) + I infiniti - 0x1d38a144, // n0x025e c0x0074 (n0x0a21-n0x0a2b) + I info - 0x00202d03, // n0x025f c0x0000 (---------------) + I ing - 0x00202743, // n0x0260 c0x0000 (---------------) + I ink - 0x0030dd89, // n0x0261 c0x0000 (---------------) + I institute - 0x00239c09, // n0x0262 c0x0000 (---------------) + I insurance - 0x002f91c6, // n0x0263 c0x0000 (---------------) + I insure - 0x1d66f683, // n0x0264 c0x0075 (n0x0a2b-n0x0a2c) + I int - 0x002f6c45, // n0x0265 c0x0000 (---------------) + I intel - 0x002fd58d, // n0x0266 c0x0000 (---------------) + I international - 0x002efac6, // n0x0267 c0x0000 (---------------) + I intuit - 0x0020218b, // n0x0268 c0x0000 (---------------) + I investments - 0x1da00542, // n0x0269 c0x0076 (n0x0a2c-n0x0a31) + I io - 0x00253a88, // n0x026a c0x0000 (---------------) + I ipiranga - 0x1de048c2, // n0x026b c0x0077 (n0x0a31-n0x0a37) + I iq - 0x1e204082, // n0x026c c0x0078 (n0x0a37-n0x0a40) + I ir - 0x00291085, // n0x026d c0x0000 (---------------) + I irish - 0x1e601a02, // n0x026e c0x0079 (n0x0a40-n0x0a48) + I is - 0x00253f07, // n0x026f c0x0000 (---------------) + I iselect - 0x0027d787, // n0x0270 c0x0000 (---------------) + I ismaili - 0x00201a03, // n0x0271 c0x0000 (---------------) + I ist - 0x002ec0c8, // n0x0272 c0x0000 (---------------) + I istanbul - 0x1ea06f82, // n0x0273 c0x007a (n0x0a48-n0x0bb9) + I it - 0x0026a984, // n0x0274 c0x0000 (---------------) + I itau - 0x00206f83, // n0x0275 c0x0000 (---------------) + I itv - 0x00320745, // n0x0276 c0x0000 (---------------) + I iveco - 0x00366503, // n0x0277 c0x0000 (---------------) + I iwc - 0x002c3306, // n0x0278 c0x0000 (---------------) + I jaguar - 0x00317a04, // n0x0279 c0x0000 (---------------) + I java - 0x0023dfc3, // n0x027a c0x0000 (---------------) + I jcb - 0x00266b43, // n0x027b c0x0000 (---------------) + I jcp - 0x1ee07602, // n0x027c c0x007b (n0x0bb9-n0x0bbc) + I je - 0x0022b604, // n0x027d c0x0000 (---------------) + I jeep - 0x0034a685, // n0x027e c0x0000 (---------------) + I jetzt - 0x0035e0c7, // n0x027f c0x0000 (---------------) + I jewelry - 0x002716c3, // n0x0280 c0x0000 (---------------) + I jio - 0x002a49c3, // n0x0281 c0x0000 (---------------) + I jlc - 0x002a6003, // n0x0282 c0x0000 (---------------) + I jll - 0x01675282, // n0x0283 c0x0005 (---------------)* o I jm - 0x002a60c3, // n0x0284 c0x0000 (---------------) + I jmp - 0x002a7143, // n0x0285 c0x0000 (---------------) + I jnj - 0x1f201842, // n0x0286 c0x007c (n0x0bbc-n0x0bc4) + I jo - 0x002cd804, // n0x0287 c0x0000 (---------------) + I jobs - 0x00274746, // n0x0288 c0x0000 (---------------) + I joburg - 0x0020a143, // n0x0289 c0x0000 (---------------) + I jot - 0x002a74c3, // n0x028a c0x0000 (---------------) + I joy - 0x1f6a8bc2, // n0x028b c0x007d (n0x0bc4-n0x0c33) + I jp - 0x002a8bc8, // n0x028c c0x0000 (---------------) + I jpmorgan - 0x002a9a84, // n0x028d c0x0000 (---------------) + I jprs - 0x00247e06, // n0x028e c0x0000 (---------------) + I juegos - 0x002a9fc7, // n0x028f c0x0000 (---------------) + I juniper - 0x0020e386, // n0x0290 c0x0000 (---------------) + I kaufen - 0x002ad104, // n0x0291 c0x0000 (---------------) + I kddi - 0x2d202bc2, // n0x0292 c0x00b4 (n0x12c7-n0x12c8)* o I ke - 0x0022f98b, // n0x0293 c0x0000 (---------------) + I kerryhotels - 0x002dc18e, // n0x0294 c0x0000 (---------------) + I kerrylogistics - 0x0022014f, // n0x0295 c0x0000 (---------------) + I kerryproperties - 0x00325a03, // n0x0296 c0x0000 (---------------) + I kfh - 0x2dab1882, // n0x0297 c0x00b6 (n0x12c9-n0x12cf) + I kg - 0x01600a02, // n0x0298 c0x0005 (---------------)* o I kh - 0x2de03142, // n0x0299 c0x00b7 (n0x12cf-n0x12d6) + I ki - 0x0022a743, // n0x029a c0x0000 (---------------) + I kia - 0x00229403, // n0x029b c0x0000 (---------------) + I kim - 0x00305fc6, // n0x029c c0x0000 (---------------) + I kinder - 0x0032fd86, // n0x029d c0x0000 (---------------) + I kindle - 0x00318fc7, // n0x029e c0x0000 (---------------) + I kitchen - 0x002e2c84, // n0x029f c0x0000 (---------------) + I kiwi - 0x2e22ccc2, // n0x02a0 c0x00b8 (n0x12d6-n0x12e7) + I km - 0x2e651942, // n0x02a1 c0x00b9 (n0x12e7-n0x12eb) + I kn - 0x002a5b85, // n0x02a2 c0x0000 (---------------) + I koeln - 0x0028e9c7, // n0x02a3 c0x0000 (---------------) + I komatsu - 0x002e4886, // n0x02a4 c0x0000 (---------------) + I kosher - 0x2ea08742, // n0x02a5 c0x00ba (n0x12eb-n0x12f1) + I kp - 0x00208744, // n0x02a6 c0x0000 (---------------) + I kpmg - 0x0036e383, // n0x02a7 c0x0000 (---------------) + I kpn - 0x2ee076c2, // n0x02a8 c0x00bb (n0x12f1-n0x130f) + I kr - 0x00349b03, // n0x02a9 c0x0000 (---------------) + I krd - 0x003a0504, // n0x02aa c0x0000 (---------------) + I kred - 0x002b17c9, // n0x02ab c0x0000 (---------------) + I kuokgroup - 0x016b82c2, // n0x02ac c0x0005 (---------------)* o I kw - 0x2f23ae42, // n0x02ad c0x00bc (n0x130f-n0x1314) + I ky - 0x00261cc6, // n0x02ae c0x0000 (---------------) + I kyknet - 0x002b8805, // n0x02af c0x0000 (---------------) + I kyoto - 0x2f70a942, // n0x02b0 c0x00bd (n0x1314-n0x131a) + I kz - 0x2fa03842, // n0x02b1 c0x00be (n0x131a-n0x1323) + I la - 0x00336007, // n0x02b2 c0x0000 (---------------) + I lacaixa - 0x0020ba89, // n0x02b3 c0x0000 (---------------) + I ladbrokes - 0x0034d68b, // n0x02b4 c0x0000 (---------------) + I lamborghini - 0x00240a45, // n0x02b5 c0x0000 (---------------) + I lamer - 0x00369b89, // n0x02b6 c0x0000 (---------------) + I lancaster - 0x002ba286, // n0x02b7 c0x0000 (---------------) + I lancia - 0x00251487, // n0x02b8 c0x0000 (---------------) + I lancome - 0x00204e44, // n0x02b9 c0x0000 (---------------) + I land - 0x002bc689, // n0x02ba c0x0000 (---------------) + I landrover - 0x00353a07, // n0x02bb c0x0000 (---------------) + I lanxess - 0x0027c207, // n0x02bc c0x0000 (---------------) + I lasalle - 0x00203843, // n0x02bd c0x0000 (---------------) + I lat - 0x002247c6, // n0x02be c0x0000 (---------------) + I latino - 0x002cac47, // n0x02bf c0x0000 (---------------) + I latrobe - 0x00209183, // n0x02c0 c0x0000 (---------------) + I law - 0x0025d606, // n0x02c1 c0x0000 (---------------) + I lawyer - 0x2fe02fc2, // n0x02c2 c0x00bf (n0x1323-n0x1328) + I lb - 0x30234c42, // n0x02c3 c0x00c0 (n0x1328-n0x132e) + I lc - 0x0021f403, // n0x02c4 c0x0000 (---------------) + I lds - 0x0027c345, // n0x02c5 c0x0000 (---------------) + I lease - 0x002acc07, // n0x02c6 c0x0000 (---------------) + I leclerc - 0x00351906, // n0x02c7 c0x0000 (---------------) + I lefrak - 0x00337a05, // n0x02c8 c0x0000 (---------------) + I legal - 0x00247b84, // n0x02c9 c0x0000 (---------------) + I lego - 0x002d8305, // n0x02ca c0x0000 (---------------) + I lexus - 0x002df5c4, // n0x02cb c0x0000 (---------------) + I lgbt - 0x306019c2, // n0x02cc c0x00c1 (n0x132e-n0x132f) + I li - 0x00310b07, // n0x02cd c0x0000 (---------------) + I liaison - 0x002b6a44, // n0x02ce c0x0000 (---------------) + I lidl - 0x00239b04, // n0x02cf c0x0000 (---------------) + I life - 0x00239b0d, // n0x02d0 c0x0000 (---------------) + I lifeinsurance - 0x0023ec89, // n0x02d1 c0x0000 (---------------) + I lifestyle - 0x00245f08, // n0x02d2 c0x0000 (---------------) + I lighting - 0x002510c4, // n0x02d3 c0x0000 (---------------) + I like - 0x00263dc5, // n0x02d4 c0x0000 (---------------) + I lilly - 0x0030e807, // n0x02d5 c0x0000 (---------------) + I limited - 0x00342804, // n0x02d6 c0x0000 (---------------) + I limo - 0x00351ec7, // n0x02d7 c0x0000 (---------------) + I lincoln - 0x0039ae45, // n0x02d8 c0x0000 (---------------) + I linde - 0x00202704, // n0x02d9 c0x0000 (---------------) + I link - 0x002cfd05, // n0x02da c0x0000 (---------------) + I lipsy - 0x00259504, // n0x02db c0x0000 (---------------) + I live - 0x002d8446, // n0x02dc c0x0000 (---------------) + I living - 0x003581c5, // n0x02dd c0x0000 (---------------) + I lixil - 0x30a08702, // n0x02de c0x00c2 (n0x132f-n0x133e) + I lk - 0x00211544, // n0x02df c0x0000 (---------------) + I loan - 0x00211545, // n0x02e0 c0x0000 (---------------) + I loans - 0x00373906, // n0x02e1 c0x0000 (---------------) + I locker - 0x00337b45, // n0x02e2 c0x0000 (---------------) + I locus - 0x002cdfc4, // n0x02e3 c0x0000 (---------------) + I loft - 0x002bf2c3, // n0x02e4 c0x0000 (---------------) + I lol - 0x00310546, // n0x02e5 c0x0000 (---------------) + I london - 0x0021a6c5, // n0x02e6 c0x0000 (---------------) + I lotte - 0x00221a85, // n0x02e7 c0x0000 (---------------) + I lotto - 0x00229244, // n0x02e8 c0x0000 (---------------) + I love - 0x0020df43, // n0x02e9 c0x0000 (---------------) + I lpl - 0x0020df4c, // n0x02ea c0x0000 (---------------) + I lplfinancial - 0x30e81442, // n0x02eb c0x00c3 (n0x133e-n0x1343) + I lr - 0x31201c02, // n0x02ec c0x00c4 (n0x1343-n0x1345) + I ls - 0x31608bc2, // n0x02ed c0x00c5 (n0x1345-n0x1347) + I lt - 0x00342703, // n0x02ee c0x0000 (---------------) + I ltd - 0x00342704, // n0x02ef c0x0000 (---------------) + I ltda - 0x31a02542, // n0x02f0 c0x00c6 (n0x1347-n0x1348) + I lu - 0x002dc548, // n0x02f1 c0x0000 (---------------) + I lundbeck - 0x002dcb45, // n0x02f2 c0x0000 (---------------) + I lupin - 0x00339384, // n0x02f3 c0x0000 (---------------) + I luxe - 0x00231e46, // n0x02f4 c0x0000 (---------------) + I luxury - 0x31e07302, // n0x02f5 c0x00c7 (n0x1348-n0x1351) + I lv - 0x3223dcc2, // n0x02f6 c0x00c8 (n0x1351-n0x135a) + I ly - 0x32600182, // n0x02f7 c0x00c9 (n0x135a-n0x1360) + I ma - 0x002eca45, // n0x02f8 c0x0000 (---------------) + I macys - 0x00306e06, // n0x02f9 c0x0000 (---------------) + I madrid - 0x002a0e84, // n0x02fa c0x0000 (---------------) + I maif - 0x00204bc6, // n0x02fb c0x0000 (---------------) + I maison - 0x00307fc6, // n0x02fc c0x0000 (---------------) + I makeup - 0x00237243, // n0x02fd c0x0000 (---------------) + I man - 0x0036c88a, // n0x02fe c0x0000 (---------------) + I management - 0x00237245, // n0x02ff c0x0000 (---------------) + I mango - 0x0022dc46, // n0x0300 c0x0000 (---------------) + I market - 0x002e5f89, // n0x0301 c0x0000 (---------------) + I marketing - 0x002318c7, // n0x0302 c0x0000 (---------------) + I markets - 0x0020ce08, // n0x0303 c0x0000 (---------------) + I marriott - 0x0028e5c9, // n0x0304 c0x0000 (---------------) + I marshalls - 0x0020d888, // n0x0305 c0x0000 (---------------) + I maserati - 0x00339746, // n0x0306 c0x0000 (---------------) + I mattel - 0x0022ee83, // n0x0307 c0x0000 (---------------) + I mba - 0x32ad2e42, // n0x0308 c0x00ca (n0x1360-n0x1362) + I mc - 0x003770c3, // n0x0309 c0x0000 (---------------) + I mcd - 0x003770c9, // n0x030a c0x0000 (---------------) + I mcdonalds - 0x00309e08, // n0x030b c0x0000 (---------------) + I mckinsey - 0x32e47ac2, // n0x030c c0x00cb (n0x1362-n0x1363) + I md - 0x33202302, // n0x030d c0x00cc (n0x1363-n0x136b) + I me - 0x00211c43, // n0x030e c0x0000 (---------------) + I med - 0x002fb545, // n0x030f c0x0000 (---------------) + I media - 0x00262d84, // n0x0310 c0x0000 (---------------) + I meet - 0x002dae09, // n0x0311 c0x0000 (---------------) + I melbourne - 0x002ae4c4, // n0x0312 c0x0000 (---------------) + I meme - 0x00338b08, // n0x0313 c0x0000 (---------------) + I memorial - 0x00202303, // n0x0314 c0x0000 (---------------) + I men - 0x00226244, // n0x0315 c0x0000 (---------------) + I menu - 0x00322c03, // n0x0316 c0x0000 (---------------) + I meo - 0x00239a47, // n0x0317 c0x0000 (---------------) + I metlife - 0x336087c2, // n0x0318 c0x00cd (n0x136b-n0x1374) + I mg - 0x0024ee82, // n0x0319 c0x0000 (---------------) + I mh - 0x00383105, // n0x031a c0x0000 (---------------) + I miami - 0x002634c9, // n0x031b c0x0000 (---------------) + I microsoft - 0x00215b43, // n0x031c c0x0000 (---------------) + I mil - 0x00274d84, // n0x031d c0x0000 (---------------) + I mini - 0x002fd544, // n0x031e c0x0000 (---------------) + I mint - 0x00229483, // n0x031f c0x0000 (---------------) + I mit - 0x00275e4a, // n0x0320 c0x0000 (---------------) + I mitsubishi - 0x33b65542, // n0x0321 c0x00ce (n0x1374-n0x137c) + I mk - 0x33e11502, // n0x0322 c0x00cf (n0x137c-n0x1383) + I ml - 0x002bb4c3, // n0x0323 c0x0000 (---------------) + I mlb - 0x00367c83, // n0x0324 c0x0000 (---------------) + I mls - 0x016077c2, // n0x0325 c0x0005 (---------------)* o I mm - 0x0036acc3, // n0x0326 c0x0000 (---------------) + I mma - 0x3421d882, // n0x0327 c0x00d0 (n0x1383-n0x1387) + I mn - 0x0021d884, // n0x0328 c0x0000 (---------------) + I mnet - 0x34603ec2, // n0x0329 c0x00d1 (n0x1387-n0x138c) + I mo - 0x00207804, // n0x032a c0x0000 (---------------) + I mobi - 0x002d2346, // n0x032b c0x0000 (---------------) + I mobily - 0x00264dc4, // n0x032c c0x0000 (---------------) + I moda - 0x00248203, // n0x032d c0x0000 (---------------) + I moe - 0x00278c03, // n0x032e c0x0000 (---------------) + I moi - 0x0020ed83, // n0x032f c0x0000 (---------------) + I mom - 0x0023e706, // n0x0330 c0x0000 (---------------) + I monash - 0x002c5005, // n0x0331 c0x0000 (---------------) + I money - 0x002bef07, // n0x0332 c0x0000 (---------------) + I monster - 0x00251349, // n0x0333 c0x0000 (---------------) + I montblanc - 0x002c2245, // n0x0334 c0x0000 (---------------) + I mopar - 0x002c4f46, // n0x0335 c0x0000 (---------------) + I mormon - 0x002c58c8, // n0x0336 c0x0000 (---------------) + I mortgage - 0x002c5ac6, // n0x0337 c0x0000 (---------------) + I moscow - 0x00270fc4, // n0x0338 c0x0000 (---------------) + I moto - 0x0029214b, // n0x0339 c0x0000 (---------------) + I motorcycles - 0x002c7003, // n0x033a c0x0000 (---------------) + I mov - 0x002c7005, // n0x033b c0x0000 (---------------) + I movie - 0x002c7148, // n0x033c c0x0000 (---------------) + I movistar - 0x00226dc2, // n0x033d c0x0000 (---------------) + I mp - 0x00336302, // n0x033e c0x0000 (---------------) + I mq - 0x34a425c2, // n0x033f c0x00d2 (n0x138c-n0x138e) + I mr - 0x34e02482, // n0x0340 c0x00d3 (n0x138e-n0x1393) + I ms - 0x00263cc3, // n0x0341 c0x0000 (---------------) + I msd - 0x35235702, // n0x0342 c0x00d4 (n0x1393-n0x1397) + I mt - 0x00265803, // n0x0343 c0x0000 (---------------) + I mtn - 0x002c7444, // n0x0344 c0x0000 (---------------) + I mtpc - 0x002c7c03, // n0x0345 c0x0000 (---------------) + I mtr - 0x35a01f42, // n0x0346 c0x00d6 (n0x1398-n0x139f) + I mu - 0x002c990b, // n0x0347 c0x0000 (---------------) + I multichoice - 0x35ecc746, // n0x0348 c0x00d7 (n0x139f-n0x15c3) + I museum - 0x00238746, // n0x0349 c0x0000 (---------------) + I mutual - 0x002ccd88, // n0x034a c0x0000 (---------------) + I mutuelle - 0x362878c2, // n0x034b c0x00d8 (n0x15c3-n0x15d1) + I mv - 0x3660f2c2, // n0x034c c0x00d9 (n0x15d1-n0x15dc) + I mw - 0x36a14b82, // n0x034d c0x00da (n0x15dc-n0x15e2) + I mx - 0x36e2a6c2, // n0x034e c0x00db (n0x15e2-n0x15ea) + I my - 0x37212c42, // n0x034f c0x00dc (n0x15ea-n0x15eb)* o I mz - 0x00212c4b, // n0x0350 c0x0000 (---------------) + I mzansimagic - 0x376005c2, // n0x0351 c0x00dd (n0x15eb-n0x15fc) + I na - 0x002156c3, // n0x0352 c0x0000 (---------------) + I nab - 0x0035b3c5, // n0x0353 c0x0000 (---------------) + I nadex - 0x0022d886, // n0x0354 c0x0000 (---------------) + I nagoya - 0x37a7ca84, // n0x0355 c0x00de (n0x15fc-n0x15fe) + I name - 0x003036c7, // n0x0356 c0x0000 (---------------) + I naspers - 0x0035ae4a, // n0x0357 c0x0000 (---------------) + I nationwide - 0x00308d86, // n0x0358 c0x0000 (---------------) + I natura - 0x00394304, // n0x0359 c0x0000 (---------------) + I navy - 0x00255983, // n0x035a c0x0000 (---------------) + I nba - 0x38603402, // n0x035b c0x00e1 (n0x1600-n0x1601) + I nc - 0x00203282, // n0x035c c0x0000 (---------------) + I ne - 0x00322303, // n0x035d c0x0000 (---------------) + I nec - 0x38a1d8c3, // n0x035e c0x00e2 (n0x1601-n0x1632) + I net - 0x0030a7c7, // n0x035f c0x0000 (---------------) + I netbank - 0x003580c7, // n0x0360 c0x0000 (---------------) + I netflix - 0x0024dd87, // n0x0361 c0x0000 (---------------) + I network - 0x00224507, // n0x0362 c0x0000 (---------------) + I neustar - 0x0021dd03, // n0x0363 c0x0000 (---------------) + I new - 0x002ca6ca, // n0x0364 c0x0000 (---------------) + I newholland - 0x0021fe44, // n0x0365 c0x0000 (---------------) + I news - 0x002476c4, // n0x0366 c0x0000 (---------------) + I next - 0x002476ca, // n0x0367 c0x0000 (---------------) + I nextdirect - 0x00266385, // n0x0368 c0x0000 (---------------) + I nexus - 0x39e037c2, // n0x0369 c0x00e7 (n0x163a-n0x1644) + I nf - 0x002037c3, // n0x036a c0x0000 (---------------) + I nfl - 0x3a202d42, // n0x036b c0x00e8 (n0x1644-n0x164d) + I ng - 0x002084c3, // n0x036c c0x0000 (---------------) + I ngo - 0x00266783, // n0x036d c0x0000 (---------------) + I nhk - 0x0160a7c2, // n0x036e c0x0005 (---------------)* o I ni - 0x00382ec4, // n0x036f c0x0000 (---------------) + I nico - 0x0021c3c4, // n0x0370 c0x0000 (---------------) + I nike - 0x0020d185, // n0x0371 c0x0000 (---------------) + I nikon - 0x002c6d85, // n0x0372 c0x0000 (---------------) + I ninja - 0x0036bc46, // n0x0373 c0x0000 (---------------) + I nissan - 0x3aa3e082, // n0x0374 c0x00ea (n0x164e-n0x1651) + I nl - 0x3ae00d82, // n0x0375 c0x00eb (n0x1651-n0x1927) + I no - 0x002f5685, // n0x0376 c0x0000 (---------------) + I nokia - 0x00238452, // n0x0377 c0x0000 (---------------) + I northwesternmutual - 0x003099c6, // n0x0378 c0x0000 (---------------) + I norton - 0x00217c83, // n0x0379 c0x0000 (---------------) + I now - 0x00294486, // n0x037a c0x0000 (---------------) + I nowruz - 0x00217c85, // n0x037b c0x0000 (---------------) + I nowtv - 0x01600c02, // n0x037c c0x0005 (---------------)* o I np - 0x4329d602, // n0x037d c0x010c (n0x194f-n0x1956) + I nr - 0x002f3043, // n0x037e c0x0000 (---------------) + I nra - 0x00332603, // n0x037f c0x0000 (---------------) + I nrw - 0x003702c3, // n0x0380 c0x0000 (---------------) + I ntt - 0x43609702, // n0x0381 c0x010d (n0x1956-n0x1959) + I nu - 0x0036c603, // n0x0382 c0x0000 (---------------) + I nyc - 0x43a09a82, // n0x0383 c0x010e (n0x1959-n0x1969) + I nz - 0x00207843, // n0x0384 c0x0000 (---------------) + I obi - 0x002cd848, // n0x0385 c0x0000 (---------------) + I observer - 0x0021f703, // n0x0386 c0x0000 (---------------) + I off - 0x0021f706, // n0x0387 c0x0000 (---------------) + I office - 0x00390f07, // n0x0388 c0x0000 (---------------) + I okinawa - 0x0020e9c6, // n0x0389 c0x0000 (---------------) + I olayan - 0x0020e9cb, // n0x038a c0x0000 (---------------) + I olayangroup - 0x00394247, // n0x038b c0x0000 (---------------) + I oldnavy - 0x00385184, // n0x038c c0x0000 (---------------) + I ollo - 0x44201f02, // n0x038d c0x0110 (n0x196a-n0x1973) + I om - 0x002dc9c5, // n0x038e c0x0000 (---------------) + I omega - 0x00203f03, // n0x038f c0x0000 (---------------) + I one - 0x0027c9c3, // n0x0390 c0x0000 (---------------) + I ong - 0x00316943, // n0x0391 c0x0000 (---------------) + I onl - 0x00316946, // n0x0392 c0x0000 (---------------) + I online - 0x0039648a, // n0x0393 c0x0000 (---------------) + I onyourside - 0x00285703, // n0x0394 c0x0000 (---------------) + I ooo - 0x00239284, // n0x0395 c0x0000 (---------------) + I open - 0x0033d486, // n0x0396 c0x0000 (---------------) + I oracle - 0x00391646, // n0x0397 c0x0000 (---------------) + I orange - 0x44629a83, // n0x0398 c0x0111 (n0x1973-n0x19ae) + I org - 0x002a8c87, // n0x0399 c0x0000 (---------------) + I organic - 0x002d4d8d, // n0x039a c0x0000 (---------------) + I orientexpress - 0x00371dc7, // n0x039b c0x0000 (---------------) + I origins - 0x00291e85, // n0x039c c0x0000 (---------------) + I osaka - 0x0025de06, // n0x039d c0x0000 (---------------) + I otsuka - 0x0020cf43, // n0x039e c0x0000 (---------------) + I ott - 0x002057c3, // n0x039f c0x0000 (---------------) + I ovh - 0x45e0ec42, // n0x03a0 c0x0117 (n0x19eb-n0x19f6) + I pa - 0x00323c44, // n0x03a1 c0x0000 (---------------) + I page - 0x002dff0c, // n0x03a2 c0x0000 (---------------) + I pamperedchef - 0x00233489, // n0x03a3 c0x0000 (---------------) + I panasonic - 0x0023b907, // n0x03a4 c0x0000 (---------------) + I panerai - 0x00252285, // n0x03a5 c0x0000 (---------------) + I paris - 0x0027f584, // n0x03a6 c0x0000 (---------------) + I pars - 0x0037ec88, // n0x03a7 c0x0000 (---------------) + I partners - 0x0029aec5, // n0x03a8 c0x0000 (---------------) + I parts - 0x0029c3c5, // n0x03a9 c0x0000 (---------------) + I party - 0x002b09c9, // n0x03aa c0x0000 (---------------) + I passagens - 0x002b7203, // n0x03ab c0x0000 (---------------) + I pay - 0x002b7204, // n0x03ac c0x0000 (---------------) + I payu - 0x002c74c4, // n0x03ad c0x0000 (---------------) + I pccw - 0x46209a02, // n0x03ae c0x0118 (n0x19f6-n0x19fe) + I pe - 0x0020e283, // n0x03af c0x0000 (---------------) + I pet - 0x466d0882, // n0x03b0 c0x0119 (n0x19fe-n0x1a01) + I pf - 0x002d0886, // n0x03b1 c0x0000 (---------------) + I pfizer - 0x01708882, // n0x03b2 c0x0005 (---------------)* o I pg - 0x46acd182, // n0x03b3 c0x011a (n0x1a01-n0x1a09) + I ph - 0x002ec948, // n0x03b4 c0x0000 (---------------) + I pharmacy - 0x002cfc47, // n0x03b5 c0x0000 (---------------) + I philips - 0x002cd185, // n0x03b6 c0x0000 (---------------) + I photo - 0x002d02cb, // n0x03b7 c0x0000 (---------------) + I photography - 0x002cd186, // n0x03b8 c0x0000 (---------------) + I photos - 0x002d04c6, // n0x03b9 c0x0000 (---------------) + I physio - 0x002d0646, // n0x03ba c0x0000 (---------------) + I piaget - 0x00220ac4, // n0x03bb c0x0000 (---------------) + I pics - 0x002d0a06, // n0x03bc c0x0000 (---------------) + I pictet - 0x002d0ec8, // n0x03bd c0x0000 (---------------) + I pictures - 0x0023c003, // n0x03be c0x0000 (---------------) + I pid - 0x00219b43, // n0x03bf c0x0000 (---------------) + I pin - 0x00219b44, // n0x03c0 c0x0000 (---------------) + I ping - 0x002d1784, // n0x03c1 c0x0000 (---------------) + I pink - 0x002d1bc7, // n0x03c2 c0x0000 (---------------) + I pioneer - 0x002d2645, // n0x03c3 c0x0000 (---------------) + I pizza - 0x46ed2782, // n0x03c4 c0x011b (n0x1a09-n0x1a17) + I pk - 0x47206582, // n0x03c5 c0x011c (n0x1a17-n0x1abc) + I pl - 0x00206585, // n0x03c6 c0x0000 (---------------) + I place - 0x0028bd84, // n0x03c7 c0x0000 (---------------) + I play - 0x002d470b, // n0x03c8 c0x0000 (---------------) + I playstation - 0x002d6648, // n0x03c9 c0x0000 (---------------) + I plumbing - 0x002d6ec4, // n0x03ca c0x0000 (---------------) + I plus - 0x00208782, // n0x03cb c0x0000 (---------------) + I pm - 0x47aa98c2, // n0x03cc c0x011e (n0x1aeb-n0x1af0) + I pn - 0x002a98c3, // n0x03cd c0x0000 (---------------) + I pnc - 0x002d7304, // n0x03ce c0x0000 (---------------) + I pohl - 0x002d7405, // n0x03cf c0x0000 (---------------) + I poker - 0x002d7947, // n0x03d0 c0x0000 (---------------) + I politie - 0x002d96c4, // n0x03d1 c0x0000 (---------------) + I porn - 0x0035d304, // n0x03d2 c0x0000 (---------------) + I post - 0x47e04382, // n0x03d3 c0x011f (n0x1af0-n0x1afd) + I pr - 0x00352e09, // n0x03d4 c0x0000 (---------------) + I pramerica - 0x002da0c5, // n0x03d5 c0x0000 (---------------) + I praxi - 0x00240d05, // n0x03d6 c0x0000 (---------------) + I press - 0x002dad45, // n0x03d7 c0x0000 (---------------) + I prime - 0x48220283, // n0x03d8 c0x0120 (n0x1afd-n0x1b04) + I pro - 0x002db644, // n0x03d9 c0x0000 (---------------) + I prod - 0x002db64b, // n0x03da c0x0000 (---------------) + I productions - 0x002dba84, // n0x03db c0x0000 (---------------) + I prof - 0x002dbd0b, // n0x03dc c0x0000 (---------------) + I progressive - 0x002dd745, // n0x03dd c0x0000 (---------------) + I promo - 0x0022028a, // n0x03de c0x0000 (---------------) + I properties - 0x002ddec8, // n0x03df c0x0000 (---------------) + I property - 0x002de0ca, // n0x03e0 c0x0000 (---------------) + I protection - 0x002de343, // n0x03e1 c0x0000 (---------------) + I pru - 0x002de34a, // n0x03e2 c0x0000 (---------------) + I prudential - 0x48626e02, // n0x03e3 c0x0121 (n0x1b04-n0x1b0b) + I ps - 0x48a835c2, // n0x03e4 c0x0122 (n0x1b0b-n0x1b14) + I pt - 0x00287e83, // n0x03e5 c0x0000 (---------------) + I pub - 0x48f94e82, // n0x03e6 c0x0123 (n0x1b14-n0x1b1a) + I pw - 0x4932e602, // n0x03e7 c0x0124 (n0x1b1a-n0x1b21) + I py - 0x49714502, // n0x03e8 c0x0125 (n0x1b21-n0x1b2a) + I qa - 0x002df444, // n0x03e9 c0x0000 (---------------) + I qpon - 0x0021a006, // n0x03ea c0x0000 (---------------) + I quebec - 0x00204905, // n0x03eb c0x0000 (---------------) + I quest - 0x002dfac3, // n0x03ec c0x0000 (---------------) + I qvc - 0x00379c06, // n0x03ed c0x0000 (---------------) + I racing - 0x0021a384, // n0x03ee c0x0000 (---------------) + I raid - 0x49a04d82, // n0x03ef c0x0126 (n0x1b2a-n0x1b2e) + I re - 0x002cf684, // n0x03f0 c0x0000 (---------------) + I read - 0x002bf48a, // n0x03f1 c0x0000 (---------------) + I realestate - 0x0033dec7, // n0x03f2 c0x0000 (---------------) + I realtor - 0x00378406, // n0x03f3 c0x0000 (---------------) + I realty - 0x00226f07, // n0x03f4 c0x0000 (---------------) + I recipes - 0x0023e143, // n0x03f5 c0x0000 (---------------) + I red - 0x003a0548, // n0x03f6 c0x0000 (---------------) + I redstone - 0x003381cb, // n0x03f7 c0x0000 (---------------) + I redumbrella - 0x0035c805, // n0x03f8 c0x0000 (---------------) + I rehab - 0x002c7a85, // n0x03f9 c0x0000 (---------------) + I reise - 0x002c7a86, // n0x03fa c0x0000 (---------------) + I reisen - 0x002f92c4, // n0x03fb c0x0000 (---------------) + I reit - 0x00374788, // n0x03fc c0x0000 (---------------) + I reliance - 0x00215383, // n0x03fd c0x0000 (---------------) + I ren - 0x002b5304, // n0x03fe c0x0000 (---------------) + I rent - 0x003352c7, // n0x03ff c0x0000 (---------------) + I rentals - 0x002b1f86, // n0x0400 c0x0000 (---------------) + I repair - 0x002eff06, // n0x0401 c0x0000 (---------------) + I report - 0x0028feca, // n0x0402 c0x0000 (---------------) + I republican - 0x00247584, // n0x0403 c0x0000 (---------------) + I rest - 0x00364b8a, // n0x0404 c0x0000 (---------------) + I restaurant - 0x00323806, // n0x0405 c0x0000 (---------------) + I review - 0x00323807, // n0x0406 c0x0000 (---------------) + I reviews - 0x0024f347, // n0x0407 c0x0000 (---------------) + I rexroth - 0x0026c104, // n0x0408 c0x0000 (---------------) + I rich - 0x0026c109, // n0x0409 c0x0000 (---------------) + I richardli - 0x0025c745, // n0x040a c0x0000 (---------------) + I ricoh - 0x002ad44b, // n0x040b c0x0000 (---------------) + I rightathome - 0x00250403, // n0x040c c0x0000 (---------------) + I ril - 0x0020cec3, // n0x040d c0x0000 (---------------) + I rio - 0x00219c43, // n0x040e c0x0000 (---------------) + I rip - 0x49e00cc2, // n0x040f c0x0127 (n0x1b2e-n0x1b3a) + I ro - 0x0026fb46, // n0x0410 c0x0000 (---------------) + I rocher - 0x00295f05, // n0x0411 c0x0000 (---------------) + I rocks - 0x002b2985, // n0x0412 c0x0000 (---------------) + I rodeo - 0x00395406, // n0x0413 c0x0000 (---------------) + I rogers - 0x0024a684, // n0x0414 c0x0000 (---------------) + I room - 0x4a20a642, // n0x0415 c0x0128 (n0x1b3a-n0x1b41) + I rs - 0x002dfe44, // n0x0416 c0x0000 (---------------) + I rsvp - 0x4a611ec2, // n0x0417 c0x0129 (n0x1b41-n0x1bc5) + I ru - 0x00232804, // n0x0418 c0x0000 (---------------) + I ruhr - 0x00221d83, // n0x0419 c0x0000 (---------------) + I run - 0x4ab19802, // n0x041a c0x012a (n0x1bc5-n0x1bce) + I rw - 0x00319803, // n0x041b c0x0000 (---------------) + I rwe - 0x002a4b06, // n0x041c c0x0000 (---------------) + I ryukyu - 0x4ae02402, // n0x041d c0x012b (n0x1bce-n0x1bd6) + I sa - 0x002bd388, // n0x041e c0x0000 (---------------) + I saarland - 0x0039ac44, // n0x041f c0x0000 (---------------) + I safe - 0x0039ac46, // n0x0420 c0x0000 (---------------) + I safety - 0x002fe346, // n0x0421 c0x0000 (---------------) + I sakura - 0x00252644, // n0x0422 c0x0000 (---------------) + I sale - 0x003104c5, // n0x0423 c0x0000 (---------------) + I salon - 0x00202408, // n0x0424 c0x0000 (---------------) + I samsclub - 0x00206b87, // n0x0425 c0x0000 (---------------) + I samsung - 0x00244cc7, // n0x0426 c0x0000 (---------------) + I sandvik - 0x00244ccf, // n0x0427 c0x0000 (---------------) + I sandvikcoromant - 0x0028b3c6, // n0x0428 c0x0000 (---------------) + I sanofi - 0x00215843, // n0x0429 c0x0000 (---------------) + I sap - 0x00215844, // n0x042a c0x0000 (---------------) + I sapo - 0x00229184, // n0x042b c0x0000 (---------------) + I sarl - 0x00236443, // n0x042c c0x0000 (---------------) + I sas - 0x00221484, // n0x042d c0x0000 (---------------) + I save - 0x0039c4c4, // n0x042e c0x0000 (---------------) + I saxo - 0x4b229a02, // n0x042f c0x012c (n0x1bd6-n0x1bdb) + I sb - 0x00282803, // n0x0430 c0x0000 (---------------) + I sbi - 0x00231183, // n0x0431 c0x0000 (---------------) + I sbs - 0x4b6024c2, // n0x0432 c0x012d (n0x1bdb-n0x1be0) + I sc - 0x00254f03, // n0x0433 c0x0000 (---------------) + I sca - 0x00226803, // n0x0434 c0x0000 (---------------) + I scb - 0x00215d4a, // n0x0435 c0x0000 (---------------) + I schaeffler - 0x00233ac7, // n0x0436 c0x0000 (---------------) + I schmidt - 0x00231a4c, // n0x0437 c0x0000 (---------------) + I scholarships - 0x00231d06, // n0x0438 c0x0000 (---------------) + I school - 0x0023c9c6, // n0x0439 c0x0000 (---------------) + I schule - 0x0023d107, // n0x043a c0x0000 (---------------) + I schwarz - 0x00230a47, // n0x043b c0x0000 (---------------) + I science - 0x00243c89, // n0x043c c0x0000 (---------------) + I scjohnson - 0x0021ac44, // n0x043d c0x0000 (---------------) + I scor - 0x00208144, // n0x043e c0x0000 (---------------) + I scot - 0x4ba56ec2, // n0x043f c0x012e (n0x1be0-n0x1be8) + I sd - 0x4be01d42, // n0x0440 c0x012f (n0x1be8-n0x1c11) + I se - 0x00306844, // n0x0441 c0x0000 (---------------) + I seat - 0x0031c886, // n0x0442 c0x0000 (---------------) + I secure - 0x00230ec8, // n0x0443 c0x0000 (---------------) + I security - 0x0027c404, // n0x0444 c0x0000 (---------------) + I seek - 0x00253f46, // n0x0445 c0x0000 (---------------) + I select - 0x002c92c5, // n0x0446 c0x0000 (---------------) + I sener - 0x002069c8, // n0x0447 c0x0000 (---------------) + I services - 0x00204443, // n0x0448 c0x0000 (---------------) + I ses - 0x0024bd45, // n0x0449 c0x0000 (---------------) + I seven - 0x0024ec83, // n0x044a c0x0000 (---------------) + I sew - 0x00240e03, // n0x044b c0x0000 (---------------) + I sex - 0x00240e04, // n0x044c c0x0000 (---------------) + I sexy - 0x0024f9c3, // n0x044d c0x0000 (---------------) + I sfr - 0x4c266482, // n0x044e c0x0130 (n0x1c11-n0x1c18) + I sg - 0x4c601c42, // n0x044f c0x0131 (n0x1c18-n0x1c1e) + I sh - 0x002502c9, // n0x0450 c0x0000 (---------------) + I shangrila - 0x00251e85, // n0x0451 c0x0000 (---------------) + I sharp - 0x00254484, // n0x0452 c0x0000 (---------------) + I shaw - 0x00257245, // n0x0453 c0x0000 (---------------) + I shell - 0x00212444, // n0x0454 c0x0000 (---------------) + I shia - 0x002af887, // n0x0455 c0x0000 (---------------) + I shiksha - 0x00398385, // n0x0456 c0x0000 (---------------) + I shoes - 0x002aa606, // n0x0457 c0x0000 (---------------) + I shouji - 0x002ab744, // n0x0458 c0x0000 (---------------) + I show - 0x002ae348, // n0x0459 c0x0000 (---------------) + I showtime - 0x002b0bc7, // n0x045a c0x0000 (---------------) + I shriram - 0x4ca0ca82, // n0x045b c0x0132 (n0x1c1e-n0x1c1f) + I si - 0x003531c4, // n0x045c c0x0000 (---------------) + I silk - 0x002ec7c4, // n0x045d c0x0000 (---------------) + I sina - 0x0027d347, // n0x045e c0x0000 (---------------) + I singles - 0x00247244, // n0x045f c0x0000 (---------------) + I site - 0x00251cc2, // n0x0460 c0x0000 (---------------) + I sj - 0x4ce0e342, // n0x0461 c0x0133 (n0x1c1f-n0x1c20) + I sk - 0x0021cf83, // n0x0462 c0x0000 (---------------) + I ski - 0x00305f84, // n0x0463 c0x0000 (---------------) + I skin - 0x0023ae03, // n0x0464 c0x0000 (---------------) + I sky - 0x00265c85, // n0x0465 c0x0000 (---------------) + I skype - 0x4d217a82, // n0x0466 c0x0134 (n0x1c20-n0x1c25) + I sl - 0x002c97c5, // n0x0467 c0x0000 (---------------) + I sling - 0x00215b02, // n0x0468 c0x0000 (---------------) + I sm - 0x0034b7c5, // n0x0469 c0x0000 (---------------) + I smart - 0x00358d85, // n0x046a c0x0000 (---------------) + I smile - 0x4d612a42, // n0x046b c0x0135 (n0x1c25-n0x1c2d) + I sn - 0x00212a44, // n0x046c c0x0000 (---------------) + I sncf - 0x4da04c82, // n0x046d c0x0136 (n0x1c2d-n0x1c30) + I so - 0x002a1a46, // n0x046e c0x0000 (---------------) + I soccer - 0x00298406, // n0x046f c0x0000 (---------------) + I social - 0x00263608, // n0x0470 c0x0000 (---------------) + I softbank - 0x002b2f88, // n0x0471 c0x0000 (---------------) + I software - 0x002ef444, // n0x0472 c0x0000 (---------------) + I sohu - 0x002da545, // n0x0473 c0x0000 (---------------) + I solar - 0x002ef609, // n0x0474 c0x0000 (---------------) + I solutions - 0x0031fd44, // n0x0475 c0x0000 (---------------) + I song - 0x00396444, // n0x0476 c0x0000 (---------------) + I sony - 0x002566c3, // n0x0477 c0x0000 (---------------) + I soy - 0x00335085, // n0x0478 c0x0000 (---------------) + I space - 0x0037a7c7, // n0x0479 c0x0000 (---------------) + I spiegel - 0x00245b44, // n0x047a c0x0000 (---------------) + I spot - 0x0032cc4d, // n0x047b c0x0000 (---------------) + I spreadbetting - 0x00336d82, // n0x047c c0x0000 (---------------) + I sr - 0x00336d83, // n0x047d c0x0000 (---------------) + I srl - 0x00353b83, // n0x047e c0x0000 (---------------) + I srt - 0x4de01a42, // n0x047f c0x0137 (n0x1c30-n0x1c3c) + I st - 0x0037b645, // n0x0480 c0x0000 (---------------) + I stada - 0x00383287, // n0x0481 c0x0000 (---------------) + I staples - 0x002245c4, // n0x0482 c0x0000 (---------------) + I star - 0x002245c7, // n0x0483 c0x0000 (---------------) + I starhub - 0x0028e7c9, // n0x0484 c0x0000 (---------------) + I statebank - 0x002bf5c9, // n0x0485 c0x0000 (---------------) + I statefarm - 0x002e88c7, // n0x0486 c0x0000 (---------------) + I statoil - 0x0026f903, // n0x0487 c0x0000 (---------------) + I stc - 0x0026f908, // n0x0488 c0x0000 (---------------) + I stcgroup - 0x00292749, // n0x0489 c0x0000 (---------------) + I stockholm - 0x003613c7, // n0x048a c0x0000 (---------------) + I storage - 0x0038c985, // n0x048b c0x0000 (---------------) + I store - 0x002e0886, // n0x048c c0x0000 (---------------) + I studio - 0x002e0a05, // n0x048d c0x0000 (---------------) + I study - 0x0023ed85, // n0x048e c0x0000 (---------------) + I style - 0x4e2029c2, // n0x048f c0x0138 (n0x1c3c-n0x1c5c) + I su - 0x002be445, // n0x0490 c0x0000 (---------------) + I sucks - 0x002b508a, // n0x0491 c0x0000 (---------------) + I supersport - 0x002b8a08, // n0x0492 c0x0000 (---------------) + I supplies - 0x0029d806, // n0x0493 c0x0000 (---------------) + I supply - 0x002dd987, // n0x0494 c0x0000 (---------------) + I support - 0x002466c4, // n0x0495 c0x0000 (---------------) + I surf - 0x00299d87, // n0x0496 c0x0000 (---------------) + I surgery - 0x002e3846, // n0x0497 c0x0000 (---------------) + I suzuki - 0x4e60ee82, // n0x0498 c0x0139 (n0x1c5c-n0x1c61) + I sv - 0x00373606, // n0x0499 c0x0000 (---------------) + I swatch - 0x002e61ca, // n0x049a c0x0000 (---------------) + I swiftcover - 0x002e6b85, // n0x049b c0x0000 (---------------) + I swiss - 0x4eae7402, // n0x049c c0x013a (n0x1c61-n0x1c62) + I sx - 0x4ee2b802, // n0x049d c0x013b (n0x1c62-n0x1c68) + I sy - 0x0022b806, // n0x049e c0x0000 (---------------) + I sydney - 0x002a3b08, // n0x049f c0x0000 (---------------) + I symantec - 0x0037e287, // n0x04a0 c0x0000 (---------------) + I systems - 0x4f202842, // n0x04a1 c0x013c (n0x1c68-n0x1c6b) + I sz - 0x00211703, // n0x04a2 c0x0000 (---------------) + I tab - 0x003a3406, // n0x04a3 c0x0000 (---------------) + I taipei - 0x0023ab44, // n0x04a4 c0x0000 (---------------) + I talk - 0x00390dc6, // n0x04a5 c0x0000 (---------------) + I taobao - 0x00363046, // n0x04a6 c0x0000 (---------------) + I target - 0x0030f98a, // n0x04a7 c0x0000 (---------------) + I tatamotors - 0x0036a385, // n0x04a8 c0x0000 (---------------) + I tatar - 0x0020a1c6, // n0x04a9 c0x0000 (---------------) + I tattoo - 0x0020cfc3, // n0x04aa c0x0000 (---------------) + I tax - 0x0020cfc4, // n0x04ab c0x0000 (---------------) + I taxi - 0x002041c2, // n0x04ac c0x0000 (---------------) + I tc - 0x003075c3, // n0x04ad c0x0000 (---------------) + I tci - 0x4f62cac2, // n0x04ae c0x013d (n0x1c6b-n0x1c6c) + I td - 0x002c7603, // n0x04af c0x0000 (---------------) + I tdk - 0x00365904, // n0x04b0 c0x0000 (---------------) + I team - 0x002a3c44, // n0x04b1 c0x0000 (---------------) + I tech - 0x002a3c4a, // n0x04b2 c0x0000 (---------------) + I technology - 0x0022fb43, // n0x04b3 c0x0000 (---------------) + I tel - 0x0027e708, // n0x04b4 c0x0000 (---------------) + I telecity - 0x0030df4a, // n0x04b5 c0x0000 (---------------) + I telefonica - 0x00319f47, // n0x04b6 c0x0000 (---------------) + I temasek - 0x002e9886, // n0x04b7 c0x0000 (---------------) + I tennis - 0x00328784, // n0x04b8 c0x0000 (---------------) + I teva - 0x00286e42, // n0x04b9 c0x0000 (---------------) + I tf - 0x00218742, // n0x04ba c0x0000 (---------------) + I tg - 0x4fa06502, // n0x04bb c0x013e (n0x1c6c-n0x1c73) + I th - 0x00242d43, // n0x04bc c0x0000 (---------------) + I thd - 0x0031b107, // n0x04bd c0x0000 (---------------) + I theater - 0x0024f0c7, // n0x04be c0x0000 (---------------) + I theatre - 0x0034c1cb, // n0x04bf c0x0000 (---------------) + I theguardian - 0x002ff484, // n0x04c0 c0x0000 (---------------) + I tiaa - 0x002eb8c7, // n0x04c1 c0x0000 (---------------) + I tickets - 0x002d7a46, // n0x04c2 c0x0000 (---------------) + I tienda - 0x0039aa07, // n0x04c3 c0x0000 (---------------) + I tiffany - 0x00233a04, // n0x04c4 c0x0000 (---------------) + I tips - 0x0034ee05, // n0x04c5 c0x0000 (---------------) + I tires - 0x002b5605, // n0x04c6 c0x0000 (---------------) + I tirol - 0x4fe01a82, // n0x04c7 c0x013f (n0x1c73-n0x1c82) + I tj - 0x00275246, // n0x04c8 c0x0000 (---------------) + I tjmaxx - 0x0036cac3, // n0x04c9 c0x0000 (---------------) + I tjx - 0x0022cc82, // n0x04ca c0x0000 (---------------) + I tk - 0x0022cc86, // n0x04cb c0x0000 (---------------) + I tkmaxx - 0x50208202, // n0x04cc c0x0140 (n0x1c82-n0x1c83) + I tl - 0x50600142, // n0x04cd c0x0141 (n0x1c83-n0x1c8b) + I tm - 0x00200145, // n0x04ce c0x0000 (---------------) + I tmall - 0x50a00942, // n0x04cf c0x0142 (n0x1c8b-n0x1c9f) + I tn - 0x50e07442, // n0x04d0 c0x0143 (n0x1c9f-n0x1ca5) + I to - 0x003338c5, // n0x04d1 c0x0000 (---------------) + I today - 0x002ef045, // n0x04d2 c0x0000 (---------------) + I tokyo - 0x0020a285, // n0x04d3 c0x0000 (---------------) + I tools - 0x0024a1c3, // n0x04d4 c0x0000 (---------------) + I top - 0x002238c5, // n0x04d5 c0x0000 (---------------) + I toray - 0x002cd247, // n0x04d6 c0x0000 (---------------) + I toshiba - 0x00254205, // n0x04d7 c0x0000 (---------------) + I total - 0x002f3c85, // n0x04d8 c0x0000 (---------------) + I tours - 0x002a9404, // n0x04d9 c0x0000 (---------------) + I town - 0x00254b06, // n0x04da c0x0000 (---------------) + I toyota - 0x00262e44, // n0x04db c0x0000 (---------------) + I toys - 0x00214582, // n0x04dc c0x0000 (---------------) + I tp - 0x51203642, // n0x04dd c0x0144 (n0x1ca5-n0x1cba) + I tr - 0x0025f785, // n0x04de c0x0000 (---------------) + I trade - 0x0029b6c7, // n0x04df c0x0000 (---------------) + I trading - 0x00312148, // n0x04e0 c0x0000 (---------------) + I training - 0x00293486, // n0x04e1 c0x0000 (---------------) + I travel - 0x0029348d, // n0x04e2 c0x0000 (---------------) + I travelchannel - 0x00299209, // n0x04e3 c0x0000 (---------------) + I travelers - 0x00299212, // n0x04e4 c0x0000 (---------------) + I travelersinsurance - 0x0031f0c5, // n0x04e5 c0x0000 (---------------) + I trust - 0x00325243, // n0x04e6 c0x0000 (---------------) + I trv - 0x51e0a242, // n0x04e7 c0x0147 (n0x1cbc-n0x1ccd) + I tt - 0x002de944, // n0x04e8 c0x0000 (---------------) + I tube - 0x002efb43, // n0x04e9 c0x0000 (---------------) + I tui - 0x002e7885, // n0x04ea c0x0000 (---------------) + I tunes - 0x002e8105, // n0x04eb c0x0000 (---------------) + I tushu - 0x52206fc2, // n0x04ec c0x0148 (n0x1ccd-n0x1cd1) + I tv - 0x00361343, // n0x04ed c0x0000 (---------------) + I tvs - 0x52641cc2, // n0x04ee c0x0149 (n0x1cd1-n0x1cdf) + I tw - 0x52a1d942, // n0x04ef c0x014a (n0x1cdf-n0x1ceb) + I tz - 0x52e0d102, // n0x04f0 c0x014b (n0x1ceb-n0x1d3a) + I ua - 0x00334405, // n0x04f1 c0x0000 (---------------) + I ubank - 0x0024d683, // n0x04f2 c0x0000 (---------------) + I ubs - 0x00322208, // n0x04f3 c0x0000 (---------------) + I uconnect - 0x53207e02, // n0x04f4 c0x014c (n0x1d3a-n0x1d43) + I ug - 0x53600f82, // n0x04f5 c0x014d (n0x1d43-n0x1d4e) + I uk - 0x00281a0a, // n0x04f6 c0x0000 (---------------) + I university - 0x00208d03, // n0x04f7 c0x0000 (---------------) + I uno - 0x0023a103, // n0x04f8 c0x0000 (---------------) + I uol - 0x002cdd83, // n0x04f9 c0x0000 (---------------) + I ups - 0x54202982, // n0x04fa c0x0150 (n0x1d50-n0x1d8f) + I us - 0x6260d7c2, // n0x04fb c0x0189 (n0x1e32-n0x1e38) + I uy - 0x62e11f02, // n0x04fc c0x018b (n0x1e39-n0x1e3d) + I uz - 0x002000c2, // n0x04fd c0x0000 (---------------) + I va - 0x00373409, // n0x04fe c0x0000 (---------------) + I vacations - 0x002b7704, // n0x04ff c0x0000 (---------------) + I vana - 0x00275b48, // n0x0500 c0x0000 (---------------) + I vanguard - 0x632dfb02, // n0x0501 c0x018c (n0x1e3d-n0x1e43) + I vc - 0x63602202, // n0x0502 c0x018d (n0x1e43-n0x1e54) + I ve - 0x002292c5, // n0x0503 c0x0000 (---------------) + I vegas - 0x002360c8, // n0x0504 c0x0000 (---------------) + I ventures - 0x002e6388, // n0x0505 c0x0000 (---------------) + I verisign - 0x0038fb4c, // n0x0506 c0x0000 (---------------) + I versicherung - 0x0023b383, // n0x0507 c0x0000 (---------------) + I vet - 0x00258ec2, // n0x0508 c0x0000 (---------------) + I vg - 0x63a00642, // n0x0509 c0x018e (n0x1e54-n0x1e59) + I vi - 0x002c26c6, // n0x050a c0x0000 (---------------) + I viajes - 0x002ea705, // n0x050b c0x0000 (---------------) + I video - 0x00200643, // n0x050c c0x0000 (---------------) + I vig - 0x0036cf46, // n0x050d c0x0000 (---------------) + I viking - 0x002ea846, // n0x050e c0x0000 (---------------) + I villas - 0x00225e83, // n0x050f c0x0000 (---------------) + I vin - 0x002ec703, // n0x0510 c0x0000 (---------------) + I vip - 0x002ee6c6, // n0x0511 c0x0000 (---------------) + I virgin - 0x002eec44, // n0x0512 c0x0000 (---------------) + I visa - 0x0023b546, // n0x0513 c0x0000 (---------------) + I vision - 0x002c71c5, // n0x0514 c0x0000 (---------------) + I vista - 0x002ef90a, // n0x0515 c0x0000 (---------------) + I vistaprint - 0x002388c4, // n0x0516 c0x0000 (---------------) + I viva - 0x002f0b04, // n0x0517 c0x0000 (---------------) + I vivo - 0x003434ca, // n0x0518 c0x0000 (---------------) + I vlaanderen - 0x63e00d42, // n0x0519 c0x018f (n0x1e59-n0x1e66) + I vn - 0x002c3d45, // n0x051a c0x0000 (---------------) + I vodka - 0x002f210a, // n0x051b c0x0000 (---------------) + I volkswagen - 0x002f3984, // n0x051c c0x0000 (---------------) + I vote - 0x002f3a86, // n0x051d c0x0000 (---------------) + I voting - 0x002f3c04, // n0x051e c0x0000 (---------------) + I voto - 0x002a8206, // n0x051f c0x0000 (---------------) + I voyage - 0x64200882, // n0x0520 c0x0190 (n0x1e66-n0x1e6a) + I vu - 0x002c2fc6, // n0x0521 c0x0000 (---------------) + I vuelos - 0x0030e445, // n0x0522 c0x0000 (---------------) + I wales - 0x002010c7, // n0x0523 c0x0000 (---------------) + I walmart - 0x00209206, // n0x0524 c0x0000 (---------------) + I walter - 0x0023d304, // n0x0525 c0x0000 (---------------) + I wang - 0x002fa647, // n0x0526 c0x0000 (---------------) + I wanggou - 0x0036c7c6, // n0x0527 c0x0000 (---------------) + I warman - 0x002a6905, // n0x0528 c0x0000 (---------------) + I watch - 0x002fa287, // n0x0529 c0x0000 (---------------) + I watches - 0x0038d087, // n0x052a c0x0000 (---------------) + I weather - 0x0038d08e, // n0x052b c0x0000 (---------------) + I weatherchannel - 0x0021fa86, // n0x052c c0x0000 (---------------) + I webcam - 0x00351d85, // n0x052d c0x0000 (---------------) + I weber - 0x002ba987, // n0x052e c0x0000 (---------------) + I website - 0x002e4ec3, // n0x052f c0x0000 (---------------) + I wed - 0x0033adc7, // n0x0530 c0x0000 (---------------) + I wedding - 0x00208a85, // n0x0531 c0x0000 (---------------) + I weibo - 0x0020f304, // n0x0532 c0x0000 (---------------) + I weir - 0x0022a842, // n0x0533 c0x0000 (---------------) + I wf - 0x00332687, // n0x0534 c0x0000 (---------------) + I whoswho - 0x002e2d04, // n0x0535 c0x0000 (---------------) + I wien - 0x0032fd04, // n0x0536 c0x0000 (---------------) + I wiki - 0x0024ed0b, // n0x0537 c0x0000 (---------------) + I williamhill - 0x0021b743, // n0x0538 c0x0000 (---------------) + I win - 0x0027a9c7, // n0x0539 c0x0000 (---------------) + I windows - 0x0021b744, // n0x053a c0x0000 (---------------) + I wine - 0x002ab5c7, // n0x053b c0x0000 (---------------) + I winners - 0x0021dd83, // n0x053c c0x0000 (---------------) + I wme - 0x0032704d, // n0x053d c0x0000 (---------------) + I wolterskluwer - 0x0037be88, // n0x053e c0x0000 (---------------) + I woodside - 0x002423c4, // n0x053f c0x0000 (---------------) + I work - 0x00332b45, // n0x0540 c0x0000 (---------------) + I works - 0x002f7105, // n0x0541 c0x0000 (---------------) + I world - 0x002f4c03, // n0x0542 c0x0000 (---------------) + I wow - 0x6461fec2, // n0x0543 c0x0191 (n0x1e6a-n0x1e71) + I ws - 0x002f60c3, // n0x0544 c0x0000 (---------------) + I wtc - 0x002f67c3, // n0x0545 c0x0000 (---------------) + I wtf - 0x00214bc4, // n0x0546 c0x0000 (---------------) + I xbox - 0x00273b05, // n0x0547 c0x0000 (---------------) + I xerox - 0x00214c87, // n0x0548 c0x0000 (---------------) + I xfinity - 0x0020d046, // n0x0549 c0x0000 (---------------) + I xihuan - 0x00365643, // n0x054a c0x0000 (---------------) + I xin - 0x0036cb4b, // n0x054b c0x0000 (---------------) + I xn--11b4c3d - 0x0022cdcb, // n0x054c c0x0000 (---------------) + I xn--1ck2e1b - 0x00269acb, // n0x054d c0x0000 (---------------) + I xn--1qqw23a - 0x00273c0a, // n0x054e c0x0000 (---------------) + I xn--30rr7y - 0x0029db4b, // n0x054f c0x0000 (---------------) + I xn--3bst00m - 0x002b414b, // n0x0550 c0x0000 (---------------) + I xn--3ds443g - 0x002cffcc, // n0x0551 c0x0000 (---------------) + I xn--3e0b707e - 0x002e7451, // n0x0552 c0x0000 (---------------) + I xn--3oq18vl8pn36a - 0x0034624a, // n0x0553 c0x0000 (---------------) + I xn--3pxu8k - 0x003a114b, // n0x0554 c0x0000 (---------------) + I xn--42c2d9a - 0x003a260b, // n0x0555 c0x0000 (---------------) + I xn--45brj9c - 0x002f750a, // n0x0556 c0x0000 (---------------) + I xn--45q11c - 0x002f7eca, // n0x0557 c0x0000 (---------------) + I xn--4gbrim - 0x002f828d, // n0x0558 c0x0000 (---------------) + I xn--4gq48lf9j - 0x002f9b4e, // n0x0559 c0x0000 (---------------) + I xn--54b7fta0cc - 0x002fa9cb, // n0x055a c0x0000 (---------------) + I xn--55qw42g - 0x002fac8a, // n0x055b c0x0000 (---------------) + I xn--55qx5d - 0x002fbad1, // n0x055c c0x0000 (---------------) + I xn--5su34j936bgsg - 0x002fbf0a, // n0x055d c0x0000 (---------------) + I xn--5tzm5g - 0x002fc40b, // n0x055e c0x0000 (---------------) + I xn--6frz82g - 0x002fc94e, // n0x055f c0x0000 (---------------) + I xn--6qq986b3xl - 0x002fd18c, // n0x0560 c0x0000 (---------------) + I xn--80adxhks - 0x002fdc0b, // n0x0561 c0x0000 (---------------) + I xn--80ao21a - 0x002fdecc, // n0x0562 c0x0000 (---------------) + I xn--80asehdb - 0x00303c8a, // n0x0563 c0x0000 (---------------) + I xn--80aswg - 0x00304e8c, // n0x0564 c0x0000 (---------------) + I xn--8y0a063a - 0x64b0518a, // n0x0565 c0x0192 (n0x1e71-n0x1e77) + I xn--90a3ac - 0x0030aa49, // n0x0566 c0x0000 (---------------) + I xn--90ais - 0x0030c44a, // n0x0567 c0x0000 (---------------) + I xn--9dbq2a - 0x0030c6ca, // n0x0568 c0x0000 (---------------) + I xn--9et52u - 0x0030c94b, // n0x0569 c0x0000 (---------------) + I xn--9krt00a - 0x0031194e, // n0x056a c0x0000 (---------------) + I xn--b4w605ferd - 0x00311cd1, // n0x056b c0x0000 (---------------) + I xn--bck1b9a5dre4c - 0x00318289, // n0x056c c0x0000 (---------------) + I xn--c1avg - 0x003184ca, // n0x056d c0x0000 (---------------) + I xn--c2br7g - 0x0031918b, // n0x056e c0x0000 (---------------) + I xn--cck2b3b - 0x0031b8ca, // n0x056f c0x0000 (---------------) + I xn--cg4bki - 0x0031c216, // n0x0570 c0x0000 (---------------) + I xn--clchc0ea0b2g2a9gcd - 0x0031da0b, // n0x0571 c0x0000 (---------------) + I xn--czr694b - 0x0031ee8a, // n0x0572 c0x0000 (---------------) + I xn--czrs0t - 0x0031f28a, // n0x0573 c0x0000 (---------------) + I xn--czru2d - 0x0032118b, // n0x0574 c0x0000 (---------------) + I xn--d1acj3b - 0x00324cc9, // n0x0575 c0x0000 (---------------) + I xn--d1alf - 0x003279cd, // n0x0576 c0x0000 (---------------) + I xn--eckvdtc9d - 0x0032838b, // n0x0577 c0x0000 (---------------) + I xn--efvy88h - 0x0032908b, // n0x0578 c0x0000 (---------------) + I xn--estv75g - 0x00329a4b, // n0x0579 c0x0000 (---------------) + I xn--fct429k - 0x0032a3c9, // n0x057a c0x0000 (---------------) + I xn--fhbei - 0x0032aa0e, // n0x057b c0x0000 (---------------) + I xn--fiq228c5hs - 0x0032b0ca, // n0x057c c0x0000 (---------------) + I xn--fiq64b - 0x0032c6ca, // n0x057d c0x0000 (---------------) + I xn--fiqs8s - 0x0032ca0a, // n0x057e c0x0000 (---------------) + I xn--fiqz9s - 0x0032d2cb, // n0x057f c0x0000 (---------------) + I xn--fjq720a - 0x0032db0b, // n0x0580 c0x0000 (---------------) + I xn--flw351e - 0x0032ddcd, // n0x0581 c0x0000 (---------------) + I xn--fpcrj9c3d - 0x0032f38d, // n0x0582 c0x0000 (---------------) + I xn--fzc2c9e2c - 0x00331a50, // n0x0583 c0x0000 (---------------) + I xn--fzys8d69uvgm - 0x00331f0b, // n0x0584 c0x0000 (---------------) + I xn--g2xx48c - 0x00332f4c, // n0x0585 c0x0000 (---------------) + I xn--gckr3f0f - 0x00333a0b, // n0x0586 c0x0000 (---------------) + I xn--gecrj9c - 0x00335b0b, // n0x0587 c0x0000 (---------------) + I xn--gk3at1e - 0x0033768b, // n0x0588 c0x0000 (---------------) + I xn--h2brj9c - 0x0033ef4b, // n0x0589 c0x0000 (---------------) + I xn--hxt814e - 0x0033f9cf, // n0x058a c0x0000 (---------------) + I xn--i1b6b1a6a2e - 0x0033fd8b, // n0x058b c0x0000 (---------------) + I xn--imr513n - 0x00340a0a, // n0x058c c0x0000 (---------------) + I xn--io0a7i - 0x00341409, // n0x058d c0x0000 (---------------) + I xn--j1aef - 0x003417c9, // n0x058e c0x0000 (---------------) + I xn--j1amh - 0x00341dcb, // n0x058f c0x0000 (---------------) + I xn--j6w193g - 0x0034208e, // n0x0590 c0x0000 (---------------) + I xn--jlq61u9w7b - 0x00343b4b, // n0x0591 c0x0000 (---------------) + I xn--jvr189m - 0x00344e0f, // n0x0592 c0x0000 (---------------) + I xn--kcrx77d1x4a - 0x00346c0b, // n0x0593 c0x0000 (---------------) + I xn--kprw13d - 0x00346ecb, // n0x0594 c0x0000 (---------------) + I xn--kpry57d - 0x0034718b, // n0x0595 c0x0000 (---------------) + I xn--kpu716f - 0x0034774a, // n0x0596 c0x0000 (---------------) + I xn--kput3i - 0x0034d289, // n0x0597 c0x0000 (---------------) + I xn--l1acc - 0x00350bcf, // n0x0598 c0x0000 (---------------) + I xn--lgbbat1ad8j - 0x00355dcc, // n0x0599 c0x0000 (---------------) + I xn--mgb2ddes - 0x00356e0c, // n0x059a c0x0000 (---------------) + I xn--mgb9awbf - 0x003573ce, // n0x059b c0x0000 (---------------) + I xn--mgba3a3ejt - 0x0035830f, // n0x059c c0x0000 (---------------) + I xn--mgba3a4f16a - 0x003586ce, // n0x059d c0x0000 (---------------) + I xn--mgba3a4fra - 0x00359510, // n0x059e c0x0000 (---------------) + I xn--mgba7c0bbn0a - 0x0035990f, // n0x059f c0x0000 (---------------) + I xn--mgbaakc7dvf - 0x0035be0e, // n0x05a0 c0x0000 (---------------) + I xn--mgbaam7a8h - 0x0035ca0c, // n0x05a1 c0x0000 (---------------) + I xn--mgbab2bd - 0x0035cd12, // n0x05a2 c0x0000 (---------------) + I xn--mgbai9a5eva00b - 0x0035dcd1, // n0x05a3 c0x0000 (---------------) + I xn--mgbai9azgqp6j - 0x0035e28e, // n0x05a4 c0x0000 (---------------) + I xn--mgbayh7gpa - 0x0035e6ce, // n0x05a5 c0x0000 (---------------) + I xn--mgbb9fbpob - 0x0035ec0e, // n0x05a6 c0x0000 (---------------) + I xn--mgbbh1a71e - 0x0035ef8f, // n0x05a7 c0x0000 (---------------) + I xn--mgbc0a9azcg - 0x0035f34e, // n0x05a8 c0x0000 (---------------) + I xn--mgbca7dzdo - 0x0035f853, // n0x05a9 c0x0000 (---------------) + I xn--mgberp4a5d4a87g - 0x0035fd11, // n0x05aa c0x0000 (---------------) + I xn--mgberp4a5d4ar - 0x0036014c, // n0x05ab c0x0000 (---------------) + I xn--mgbpl2fh - 0x00360593, // n0x05ac c0x0000 (---------------) + I xn--mgbqly7c0a67fbc - 0x00360d10, // n0x05ad c0x0000 (---------------) + I xn--mgbqly7cvafr - 0x0036158c, // n0x05ae c0x0000 (---------------) + I xn--mgbt3dhd - 0x0036188c, // n0x05af c0x0000 (---------------) + I xn--mgbtf8fl - 0x00361dcb, // n0x05b0 c0x0000 (---------------) + I xn--mgbtx2b - 0x00363f0e, // n0x05b1 c0x0000 (---------------) + I xn--mgbx4cd0ab - 0x0036440b, // n0x05b2 c0x0000 (---------------) + I xn--mix082f - 0x003647cb, // n0x05b3 c0x0000 (---------------) + I xn--mix891f - 0x00365ccc, // n0x05b4 c0x0000 (---------------) + I xn--mk1bu44c - 0x0036d74a, // n0x05b5 c0x0000 (---------------) + I xn--mxtq1m - 0x0036db0c, // n0x05b6 c0x0000 (---------------) + I xn--ngbc5azd - 0x0036de0c, // n0x05b7 c0x0000 (---------------) + I xn--ngbe9e0a - 0x0036ed0b, // n0x05b8 c0x0000 (---------------) + I xn--nnx388a - 0x0036efc8, // n0x05b9 c0x0000 (---------------) + I xn--node - 0x0036f489, // n0x05ba c0x0000 (---------------) + I xn--nqv7f - 0x0036f48f, // n0x05bb c0x0000 (---------------) + I xn--nqv7fs00ema - 0x00370e0b, // n0x05bc c0x0000 (---------------) + I xn--nyqy26a - 0x003718ca, // n0x05bd c0x0000 (---------------) + I xn--o3cw4h - 0x00373a8c, // n0x05be c0x0000 (---------------) + I xn--ogbpf8fl - 0x00374cc9, // n0x05bf c0x0000 (---------------) + I xn--p1acf - 0x00374f48, // n0x05c0 c0x0000 (---------------) + I xn--p1ai - 0x0037514b, // n0x05c1 c0x0000 (---------------) + I xn--pbt977c - 0x0037570b, // n0x05c2 c0x0000 (---------------) + I xn--pgbs0dh - 0x0037630a, // n0x05c3 c0x0000 (---------------) + I xn--pssy2u - 0x0037658b, // n0x05c4 c0x0000 (---------------) + I xn--q9jyb4c - 0x00376e4c, // n0x05c5 c0x0000 (---------------) + I xn--qcka1pmc - 0x003779c8, // n0x05c6 c0x0000 (---------------) + I xn--qxam - 0x0037c08b, // n0x05c7 c0x0000 (---------------) + I xn--rhqv96g - 0x0037f08b, // n0x05c8 c0x0000 (---------------) + I xn--rovu88b - 0x00382b8b, // n0x05c9 c0x0000 (---------------) + I xn--s9brj9c - 0x0038458b, // n0x05ca c0x0000 (---------------) + I xn--ses554g - 0x0038cc0b, // n0x05cb c0x0000 (---------------) + I xn--t60b56a - 0x0038cec9, // n0x05cc c0x0000 (---------------) + I xn--tckwe - 0x00391a8a, // n0x05cd c0x0000 (---------------) + I xn--unup4y - 0x003929d7, // n0x05ce c0x0000 (---------------) + I xn--vermgensberater-ctb - 0x00394958, // n0x05cf c0x0000 (---------------) + I xn--vermgensberatung-pwb - 0x00399489, // n0x05d0 c0x0000 (---------------) + I xn--vhquv - 0x0039a68b, // n0x05d1 c0x0000 (---------------) + I xn--vuq861b - 0x0039b294, // n0x05d2 c0x0000 (---------------) + I xn--w4r85el8fhu5dnra - 0x0039b78b, // n0x05d3 c0x0000 (---------------) + I xn--w4rs40l - 0x0039bd0a, // n0x05d4 c0x0000 (---------------) + I xn--wgbh1c - 0x0039c5ca, // n0x05d5 c0x0000 (---------------) + I xn--wgbl6a - 0x0039c84b, // n0x05d6 c0x0000 (---------------) + I xn--xhq521b - 0x0039e590, // n0x05d7 c0x0000 (---------------) + I xn--xkc2al3hye2a - 0x0039e991, // n0x05d8 c0x0000 (---------------) + I xn--xkc2dl3a5ee0h - 0x0039f7ca, // n0x05d9 c0x0000 (---------------) + I xn--y9a3aq - 0x003a074d, // n0x05da c0x0000 (---------------) + I xn--yfro4i67o - 0x003a0e4d, // n0x05db c0x0000 (---------------) + I xn--ygbi2ammx - 0x003a2ccb, // n0x05dc c0x0000 (---------------) + I xn--zfr164b - 0x003a3a86, // n0x05dd c0x0000 (---------------) + I xperia - 0x00275343, // n0x05de c0x0000 (---------------) + I xxx - 0x00240e83, // n0x05df c0x0000 (---------------) + I xyz - 0x00264686, // n0x05e0 c0x0000 (---------------) + I yachts - 0x00285645, // n0x05e1 c0x0000 (---------------) + I yahoo - 0x0021b2c7, // n0x05e2 c0x0000 (---------------) + I yamaxun - 0x00334e46, // n0x05e3 c0x0000 (---------------) + I yandex - 0x0161bcc2, // n0x05e4 c0x0005 (---------------)* o I ye - 0x002f7809, // n0x05e5 c0x0000 (---------------) + I yodobashi - 0x00379a04, // n0x05e6 c0x0000 (---------------) + I yoga - 0x0024d248, // n0x05e7 c0x0000 (---------------) + I yokohama - 0x00242c83, // n0x05e8 c0x0000 (---------------) + I you - 0x002de887, // n0x05e9 c0x0000 (---------------) + I youtube - 0x002197c2, // n0x05ea c0x0000 (---------------) + I yt - 0x002a4143, // n0x05eb c0x0000 (---------------) + I yun - 0x64e09ac2, // n0x05ec c0x0193 (n0x1e77-n0x1e88) o I za - 0x002c10c6, // n0x05ed c0x0000 (---------------) + I zappos - 0x002c1cc4, // n0x05ee c0x0000 (---------------) + I zara - 0x00324004, // n0x05ef c0x0000 (---------------) + I zero - 0x002377c3, // n0x05f0 c0x0000 (---------------) + I zip - 0x002377c5, // n0x05f1 c0x0000 (---------------) + I zippo - 0x016f7282, // n0x05f2 c0x0005 (---------------)* o I zm - 0x002d7204, // n0x05f3 c0x0000 (---------------) + I zone - 0x0026c047, // n0x05f4 c0x0000 (---------------) + I zuerich - 0x0165b802, // n0x05f5 c0x0005 (---------------)* o I zw - 0x0022edc3, // n0x05f6 c0x0000 (---------------) + I com - 0x002349c3, // n0x05f7 c0x0000 (---------------) + I edu - 0x00275003, // n0x05f8 c0x0000 (---------------) + I gov - 0x00215b43, // n0x05f9 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x05fa c0x0000 (---------------) + I net - 0x00229a83, // n0x05fb c0x0000 (---------------) + I org - 0x0020e543, // n0x05fc c0x0000 (---------------) + I nom - 0x00205882, // n0x05fd c0x0000 (---------------) + I ac - 0x000f5248, // n0x05fe c0x0000 (---------------) + blogspot - 0x00208182, // n0x05ff c0x0000 (---------------) + I co - 0x00275003, // n0x0600 c0x0000 (---------------) + I gov - 0x00215b43, // n0x0601 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x0602 c0x0000 (---------------) + I net - 0x00229a83, // n0x0603 c0x0000 (---------------) + I org - 0x00215d43, // n0x0604 c0x0000 (---------------) + I sch - 0x00316456, // n0x0605 c0x0000 (---------------) + I accident-investigation - 0x00317053, // n0x0606 c0x0000 (---------------) + I accident-prevention - 0x002eb749, // n0x0607 c0x0000 (---------------) + I aerobatic - 0x0035a9c8, // n0x0608 c0x0000 (---------------) + I aeroclub - 0x002dc849, // n0x0609 c0x0000 (---------------) + I aerodrome - 0x002f2286, // n0x060a c0x0000 (---------------) + I agents - 0x0033cd10, // n0x060b c0x0000 (---------------) + I air-surveillance - 0x002b2053, // n0x060c c0x0000 (---------------) + I air-traffic-control - 0x00235408, // n0x060d c0x0000 (---------------) + I aircraft - 0x00272007, // n0x060e c0x0000 (---------------) + I airline - 0x0027b687, // n0x060f c0x0000 (---------------) + I airport - 0x00296d8a, // n0x0610 c0x0000 (---------------) + I airtraffic - 0x002b0ec9, // n0x0611 c0x0000 (---------------) + I ambulance - 0x00362e49, // n0x0612 c0x0000 (---------------) + I amusement - 0x002b1c4b, // n0x0613 c0x0000 (---------------) + I association - 0x0031e346, // n0x0614 c0x0000 (---------------) + I author - 0x00339b0a, // n0x0615 c0x0000 (---------------) + I ballooning - 0x00220086, // n0x0616 c0x0000 (---------------) + I broker - 0x00379603, // n0x0617 c0x0000 (---------------) + I caa - 0x002ebd85, // n0x0618 c0x0000 (---------------) + I cargo - 0x00233688, // n0x0619 c0x0000 (---------------) + I catering - 0x002a1b0d, // n0x061a c0x0000 (---------------) + I certification - 0x0033c8cc, // n0x061b c0x0000 (---------------) + I championship - 0x00268847, // n0x061c c0x0000 (---------------) + I charter - 0x00354d8d, // n0x061d c0x0000 (---------------) + I civilaviation - 0x00202504, // n0x061e c0x0000 (---------------) + I club - 0x00231fca, // n0x061f c0x0000 (---------------) + I conference - 0x0023290a, // n0x0620 c0x0000 (---------------) + I consultant - 0x00232dca, // n0x0621 c0x0000 (---------------) + I consulting - 0x0022bac7, // n0x0622 c0x0000 (---------------) + I control - 0x0023c687, // n0x0623 c0x0000 (---------------) + I council - 0x0023eac4, // n0x0624 c0x0000 (---------------) + I crew - 0x00222ec6, // n0x0625 c0x0000 (---------------) + I design - 0x0031b344, // n0x0626 c0x0000 (---------------) + I dgca - 0x002aefc8, // n0x0627 c0x0000 (---------------) + I educator - 0x002bb8c9, // n0x0628 c0x0000 (---------------) + I emergency - 0x0032a106, // n0x0629 c0x0000 (---------------) + I engine - 0x0032a108, // n0x062a c0x0000 (---------------) + I engineer - 0x0024130d, // n0x062b c0x0000 (---------------) + I entertainment - 0x002bf809, // n0x062c c0x0000 (---------------) + I equipment - 0x0035b488, // n0x062d c0x0000 (---------------) + I exchange - 0x00240c87, // n0x062e c0x0000 (---------------) + I express - 0x0020038a, // n0x062f c0x0000 (---------------) + I federation - 0x00249f06, // n0x0630 c0x0000 (---------------) + I flight - 0x002556c7, // n0x0631 c0x0000 (---------------) + I freight - 0x003392c4, // n0x0632 c0x0000 (---------------) + I fuel - 0x00252087, // n0x0633 c0x0000 (---------------) + I gliding - 0x0027500a, // n0x0634 c0x0000 (---------------) + I government - 0x0033158e, // n0x0635 c0x0000 (---------------) + I groundhandling - 0x0020eb45, // n0x0636 c0x0000 (---------------) + I group - 0x002f494b, // n0x0637 c0x0000 (---------------) + I hanggliding - 0x0025cf89, // n0x0638 c0x0000 (---------------) + I homebuilt - 0x00239c09, // n0x0639 c0x0000 (---------------) + I insurance - 0x00201847, // n0x063a c0x0000 (---------------) + I journal - 0x0020184a, // n0x063b c0x0000 (---------------) + I journalist - 0x0027d287, // n0x063c c0x0000 (---------------) + I leasing - 0x002dc2c9, // n0x063d c0x0000 (---------------) + I logistics - 0x00391388, // n0x063e c0x0000 (---------------) + I magazine - 0x0026f60b, // n0x063f c0x0000 (---------------) + I maintenance - 0x0022dc4b, // n0x0640 c0x0000 (---------------) + I marketplace - 0x002fb545, // n0x0641 c0x0000 (---------------) + I media - 0x00245dca, // n0x0642 c0x0000 (---------------) + I microlight - 0x0029a989, // n0x0643 c0x0000 (---------------) + I modelling - 0x002005ca, // n0x0644 c0x0000 (---------------) + I navigation - 0x002c22cb, // n0x0645 c0x0000 (---------------) + I parachuting - 0x00251f8b, // n0x0646 c0x0000 (---------------) + I paragliding - 0x002b19d5, // n0x0647 c0x0000 (---------------) + I passenger-association - 0x002d1345, // n0x0648 c0x0000 (---------------) + I pilot - 0x00240d05, // n0x0649 c0x0000 (---------------) + I press - 0x002db64a, // n0x064a c0x0000 (---------------) + I production - 0x0031c98a, // n0x064b c0x0000 (---------------) + I recreation - 0x00228d07, // n0x064c c0x0000 (---------------) + I repbody - 0x0021bfc3, // n0x064d c0x0000 (---------------) + I res - 0x00290208, // n0x064e c0x0000 (---------------) + I research - 0x002cb30a, // n0x064f c0x0000 (---------------) + I rotorcraft - 0x0039ac46, // n0x0650 c0x0000 (---------------) + I safety - 0x00240289, // n0x0651 c0x0000 (---------------) + I scientist - 0x002069c8, // n0x0652 c0x0000 (---------------) + I services - 0x002ab744, // n0x0653 c0x0000 (---------------) + I show - 0x00371689, // n0x0654 c0x0000 (---------------) + I skydiving - 0x002b2f88, // n0x0655 c0x0000 (---------------) + I software - 0x002a3147, // n0x0656 c0x0000 (---------------) + I student - 0x0020cfc4, // n0x0657 c0x0000 (---------------) + I taxi - 0x0025f786, // n0x0658 c0x0000 (---------------) + I trader - 0x0029b6c7, // n0x0659 c0x0000 (---------------) + I trading - 0x003374c7, // n0x065a c0x0000 (---------------) + I trainer - 0x0023e505, // n0x065b c0x0000 (---------------) + I union - 0x002d574c, // n0x065c c0x0000 (---------------) + I workinggroup - 0x00332b45, // n0x065d c0x0000 (---------------) + I works - 0x0022edc3, // n0x065e c0x0000 (---------------) + I com - 0x002349c3, // n0x065f c0x0000 (---------------) + I edu - 0x00275003, // n0x0660 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x0661 c0x0000 (---------------) + I net - 0x00229a83, // n0x0662 c0x0000 (---------------) + I org - 0x00208182, // n0x0663 c0x0000 (---------------) + I co - 0x0022edc3, // n0x0664 c0x0000 (---------------) + I com - 0x0021d8c3, // n0x0665 c0x0000 (---------------) + I net - 0x0020e543, // n0x0666 c0x0000 (---------------) + I nom - 0x00229a83, // n0x0667 c0x0000 (---------------) + I org - 0x0022edc3, // n0x0668 c0x0000 (---------------) + I com - 0x0021d8c3, // n0x0669 c0x0000 (---------------) + I net - 0x0021f703, // n0x066a c0x0000 (---------------) + I off - 0x00229a83, // n0x066b c0x0000 (---------------) + I org - 0x000f5248, // n0x066c c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x066d c0x0000 (---------------) + I com - 0x002349c3, // n0x066e c0x0000 (---------------) + I edu - 0x00275003, // n0x066f c0x0000 (---------------) + I gov - 0x00215b43, // n0x0670 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x0671 c0x0000 (---------------) + I net - 0x00229a83, // n0x0672 c0x0000 (---------------) + I org - 0x000f5248, // n0x0673 c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x0674 c0x0000 (---------------) + I com - 0x002349c3, // n0x0675 c0x0000 (---------------) + I edu - 0x0021d8c3, // n0x0676 c0x0000 (---------------) + I net - 0x00229a83, // n0x0677 c0x0000 (---------------) + I org - 0x00208182, // n0x0678 c0x0000 (---------------) + I co - 0x002003c2, // n0x0679 c0x0000 (---------------) + I ed - 0x00233002, // n0x067a c0x0000 (---------------) + I gv - 0x00206f82, // n0x067b c0x0000 (---------------) + I it - 0x00201602, // n0x067c c0x0000 (---------------) + I og - 0x00228d82, // n0x067d c0x0000 (---------------) + I pb - 0x04a2edc3, // n0x067e c0x0012 (n0x0687-n0x0688) + I com - 0x002349c3, // n0x067f c0x0000 (---------------) + I edu - 0x00209f03, // n0x0680 c0x0000 (---------------) + I gob - 0x00275003, // n0x0681 c0x0000 (---------------) + I gov - 0x0026f683, // n0x0682 c0x0000 (---------------) + I int - 0x00215b43, // n0x0683 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x0684 c0x0000 (---------------) + I net - 0x00229a83, // n0x0685 c0x0000 (---------------) + I org - 0x00236183, // n0x0686 c0x0000 (---------------) + I tur - 0x000f5248, // n0x0687 c0x0000 (---------------) + blogspot - 0x00256bc4, // n0x0688 c0x0000 (---------------) + I e164 - 0x00226007, // n0x0689 c0x0000 (---------------) + I in-addr - 0x00216fc3, // n0x068a c0x0000 (---------------) + I ip6 - 0x00291084, // n0x068b c0x0000 (---------------) + I iris - 0x002016c3, // n0x068c c0x0000 (---------------) + I uri - 0x002018c3, // n0x068d c0x0000 (---------------) + I urn - 0x00275003, // n0x068e c0x0000 (---------------) + I gov - 0x00205882, // n0x068f c0x0000 (---------------) + I ac - 0x0010a143, // n0x0690 c0x0000 (---------------) + biz - 0x05a08182, // n0x0691 c0x0016 (n0x0696-n0x0697) + I co - 0x00233002, // n0x0692 c0x0000 (---------------) + I gv - 0x0018a144, // n0x0693 c0x0000 (---------------) + info - 0x00200282, // n0x0694 c0x0000 (---------------) + I or - 0x000db244, // n0x0695 c0x0000 (---------------) + priv - 0x000f5248, // n0x0696 c0x0000 (---------------) + blogspot - 0x00233383, // n0x0697 c0x0000 (---------------) + I act - 0x0022d9c3, // n0x0698 c0x0000 (---------------) + I asn - 0x0622edc3, // n0x0699 c0x0018 (n0x06a9-n0x06aa) + I com - 0x00231fc4, // n0x069a c0x0000 (---------------) + I conf - 0x066349c3, // n0x069b c0x0019 (n0x06aa-n0x06b2) + I edu - 0x06a75003, // n0x069c c0x001a (n0x06b2-n0x06b7) + I gov - 0x00205d82, // n0x069d c0x0000 (---------------) + I id - 0x0038a144, // n0x069e c0x0000 (---------------) + I info - 0x0021d8c3, // n0x069f c0x0000 (---------------) + I net - 0x002e4fc3, // n0x06a0 c0x0000 (---------------) + I nsw - 0x00202382, // n0x06a1 c0x0000 (---------------) + I nt - 0x00229a83, // n0x06a2 c0x0000 (---------------) + I org - 0x0021a842, // n0x06a3 c0x0000 (---------------) + I oz - 0x002df383, // n0x06a4 c0x0000 (---------------) + I qld - 0x00202402, // n0x06a5 c0x0000 (---------------) + I sa - 0x00201fc3, // n0x06a6 c0x0000 (---------------) + I tas - 0x00206a83, // n0x06a7 c0x0000 (---------------) + I vic - 0x002010c2, // n0x06a8 c0x0000 (---------------) + I wa - 0x000f5248, // n0x06a9 c0x0000 (---------------) + blogspot - 0x00233383, // n0x06aa c0x0000 (---------------) + I act - 0x002e4fc3, // n0x06ab c0x0000 (---------------) + I nsw - 0x00202382, // n0x06ac c0x0000 (---------------) + I nt - 0x002df383, // n0x06ad c0x0000 (---------------) + I qld - 0x00202402, // n0x06ae c0x0000 (---------------) + I sa - 0x00201fc3, // n0x06af c0x0000 (---------------) + I tas - 0x00206a83, // n0x06b0 c0x0000 (---------------) + I vic - 0x002010c2, // n0x06b1 c0x0000 (---------------) + I wa - 0x002df383, // n0x06b2 c0x0000 (---------------) + I qld - 0x00202402, // n0x06b3 c0x0000 (---------------) + I sa - 0x00201fc3, // n0x06b4 c0x0000 (---------------) + I tas - 0x00206a83, // n0x06b5 c0x0000 (---------------) + I vic - 0x002010c2, // n0x06b6 c0x0000 (---------------) + I wa - 0x0022edc3, // n0x06b7 c0x0000 (---------------) + I com - 0x0030a143, // n0x06b8 c0x0000 (---------------) + I biz - 0x0022edc3, // n0x06b9 c0x0000 (---------------) + I com - 0x002349c3, // n0x06ba c0x0000 (---------------) + I edu - 0x00275003, // n0x06bb c0x0000 (---------------) + I gov - 0x0038a144, // n0x06bc c0x0000 (---------------) + I info - 0x0026f683, // n0x06bd c0x0000 (---------------) + I int - 0x00215b43, // n0x06be c0x0000 (---------------) + I mil - 0x0027ca84, // n0x06bf c0x0000 (---------------) + I name - 0x0021d8c3, // n0x06c0 c0x0000 (---------------) + I net - 0x00229a83, // n0x06c1 c0x0000 (---------------) + I org - 0x002099c2, // n0x06c2 c0x0000 (---------------) + I pp - 0x00220283, // n0x06c3 c0x0000 (---------------) + I pro - 0x000f5248, // n0x06c4 c0x0000 (---------------) + blogspot - 0x00208182, // n0x06c5 c0x0000 (---------------) + I co - 0x0022edc3, // n0x06c6 c0x0000 (---------------) + I com - 0x002349c3, // n0x06c7 c0x0000 (---------------) + I edu - 0x00275003, // n0x06c8 c0x0000 (---------------) + I gov - 0x00215b43, // n0x06c9 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x06ca c0x0000 (---------------) + I net - 0x00229a83, // n0x06cb c0x0000 (---------------) + I org - 0x0020a642, // n0x06cc c0x0000 (---------------) + I rs - 0x00272344, // n0x06cd c0x0000 (---------------) + I unbi - 0x00362b04, // n0x06ce c0x0000 (---------------) + I unsa - 0x0030a143, // n0x06cf c0x0000 (---------------) + I biz - 0x00208182, // n0x06d0 c0x0000 (---------------) + I co - 0x0022edc3, // n0x06d1 c0x0000 (---------------) + I com - 0x002349c3, // n0x06d2 c0x0000 (---------------) + I edu - 0x00275003, // n0x06d3 c0x0000 (---------------) + I gov - 0x0038a144, // n0x06d4 c0x0000 (---------------) + I info - 0x0021d8c3, // n0x06d5 c0x0000 (---------------) + I net - 0x00229a83, // n0x06d6 c0x0000 (---------------) + I org - 0x0038c985, // n0x06d7 c0x0000 (---------------) + I store - 0x00206fc2, // n0x06d8 c0x0000 (---------------) + I tv - 0x00205882, // n0x06d9 c0x0000 (---------------) + I ac - 0x000f5248, // n0x06da c0x0000 (---------------) + blogspot - 0x00275003, // n0x06db c0x0000 (---------------) + I gov - 0x00226981, // n0x06dc c0x0000 (---------------) + I 0 - 0x00226901, // n0x06dd c0x0000 (---------------) + I 1 - 0x00226941, // n0x06de c0x0000 (---------------) + I 2 - 0x0024bb41, // n0x06df c0x0000 (---------------) + I 3 - 0x00256c81, // n0x06e0 c0x0000 (---------------) + I 4 - 0x0026bdc1, // n0x06e1 c0x0000 (---------------) + I 5 - 0x00217041, // n0x06e2 c0x0000 (---------------) + I 6 - 0x002397c1, // n0x06e3 c0x0000 (---------------) + I 7 - 0x002e7641, // n0x06e4 c0x0000 (---------------) + I 8 - 0x002f8541, // n0x06e5 c0x0000 (---------------) + I 9 - 0x00200101, // n0x06e6 c0x0000 (---------------) + I a - 0x00200001, // n0x06e7 c0x0000 (---------------) + I b - 0x000f5248, // n0x06e8 c0x0000 (---------------) + blogspot - 0x00200301, // n0x06e9 c0x0000 (---------------) + I c - 0x00200401, // n0x06ea c0x0000 (---------------) + I d - 0x00200081, // n0x06eb c0x0000 (---------------) + I e - 0x00200381, // n0x06ec c0x0000 (---------------) + I f - 0x002006c1, // n0x06ed c0x0000 (---------------) + I g - 0x00200a41, // n0x06ee c0x0000 (---------------) + I h - 0x00200041, // n0x06ef c0x0000 (---------------) + I i - 0x00201841, // n0x06f0 c0x0000 (---------------) + I j - 0x00200a01, // n0x06f1 c0x0000 (---------------) + I k - 0x00200201, // n0x06f2 c0x0000 (---------------) + I l - 0x00200181, // n0x06f3 c0x0000 (---------------) + I m - 0x002005c1, // n0x06f4 c0x0000 (---------------) + I n - 0x00200281, // n0x06f5 c0x0000 (---------------) + I o - 0x00200c41, // n0x06f6 c0x0000 (---------------) + I p - 0x00204901, // n0x06f7 c0x0000 (---------------) + I q - 0x002002c1, // n0x06f8 c0x0000 (---------------) + I r - 0x00201a41, // n0x06f9 c0x0000 (---------------) + I s - 0x00200141, // n0x06fa c0x0000 (---------------) + I t - 0x002008c1, // n0x06fb c0x0000 (---------------) + I u - 0x002000c1, // n0x06fc c0x0000 (---------------) + I v - 0x002010c1, // n0x06fd c0x0000 (---------------) + I w - 0x0020d041, // n0x06fe c0x0000 (---------------) + I x - 0x00201341, // n0x06ff c0x0000 (---------------) + I y - 0x00202881, // n0x0700 c0x0000 (---------------) + I z - 0x0022edc3, // n0x0701 c0x0000 (---------------) + I com - 0x002349c3, // n0x0702 c0x0000 (---------------) + I edu - 0x00275003, // n0x0703 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x0704 c0x0000 (---------------) + I net - 0x00229a83, // n0x0705 c0x0000 (---------------) + I org - 0x00208182, // n0x0706 c0x0000 (---------------) + I co - 0x0022edc3, // n0x0707 c0x0000 (---------------) + I com - 0x002349c3, // n0x0708 c0x0000 (---------------) + I edu - 0x00200282, // n0x0709 c0x0000 (---------------) + I or - 0x00229a83, // n0x070a c0x0000 (---------------) + I org - 0x00011a06, // n0x070b c0x0000 (---------------) + dyndns - 0x0004e08a, // n0x070c c0x0000 (---------------) + for-better - 0x00081088, // n0x070d c0x0000 (---------------) + for-more - 0x0004e688, // n0x070e c0x0000 (---------------) + for-some - 0x0004efc7, // n0x070f c0x0000 (---------------) + for-the - 0x00053986, // n0x0710 c0x0000 (---------------) + selfip - 0x00123b06, // n0x0711 c0x0000 (---------------) + webhop - 0x002b1c44, // n0x0712 c0x0000 (---------------) + I asso - 0x00319407, // n0x0713 c0x0000 (---------------) + I barreau - 0x000f5248, // n0x0714 c0x0000 (---------------) + blogspot - 0x002fa744, // n0x0715 c0x0000 (---------------) + I gouv - 0x0022edc3, // n0x0716 c0x0000 (---------------) + I com - 0x002349c3, // n0x0717 c0x0000 (---------------) + I edu - 0x00275003, // n0x0718 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x0719 c0x0000 (---------------) + I net - 0x00229a83, // n0x071a c0x0000 (---------------) + I org - 0x0022edc3, // n0x071b c0x0000 (---------------) + I com - 0x002349c3, // n0x071c c0x0000 (---------------) + I edu - 0x00209f03, // n0x071d c0x0000 (---------------) + I gob - 0x00275003, // n0x071e c0x0000 (---------------) + I gov - 0x0026f683, // n0x071f c0x0000 (---------------) + I int - 0x00215b43, // n0x0720 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x0721 c0x0000 (---------------) + I net - 0x00229a83, // n0x0722 c0x0000 (---------------) + I org - 0x00206fc2, // n0x0723 c0x0000 (---------------) + I tv - 0x002c0603, // n0x0724 c0x0000 (---------------) + I adm - 0x002288c3, // n0x0725 c0x0000 (---------------) + I adv - 0x00250603, // n0x0726 c0x0000 (---------------) + I agr - 0x00201382, // n0x0727 c0x0000 (---------------) + I am - 0x00248c03, // n0x0728 c0x0000 (---------------) + I arq - 0x002011c3, // n0x0729 c0x0000 (---------------) + I art - 0x00207403, // n0x072a c0x0000 (---------------) + I ato - 0x00200001, // n0x072b c0x0000 (---------------) + I b - 0x00203a43, // n0x072c c0x0000 (---------------) + I bio - 0x00229004, // n0x072d c0x0000 (---------------) + I blog - 0x00264143, // n0x072e c0x0000 (---------------) + I bmd - 0x00307603, // n0x072f c0x0000 (---------------) + I cim - 0x0021a143, // n0x0730 c0x0000 (---------------) + I cng - 0x0022cc03, // n0x0731 c0x0000 (---------------) + I cnt - 0x0a62edc3, // n0x0732 c0x0029 (n0x076a-n0x076b) + I com - 0x00238284, // n0x0733 c0x0000 (---------------) + I coop - 0x0021a103, // n0x0734 c0x0000 (---------------) + I ecn - 0x00230383, // n0x0735 c0x0000 (---------------) + I eco - 0x002349c3, // n0x0736 c0x0000 (---------------) + I edu - 0x00234703, // n0x0737 c0x0000 (---------------) + I emp - 0x0027bd03, // n0x0738 c0x0000 (---------------) + I eng - 0x00293383, // n0x0739 c0x0000 (---------------) + I esp - 0x00307583, // n0x073a c0x0000 (---------------) + I etc - 0x00222703, // n0x073b c0x0000 (---------------) + I eti - 0x00210003, // n0x073c c0x0000 (---------------) + I far - 0x0024a844, // n0x073d c0x0000 (---------------) + I flog - 0x0023d4c2, // n0x073e c0x0000 (---------------) + I fm - 0x0024da03, // n0x073f c0x0000 (---------------) + I fnd - 0x00254a83, // n0x0740 c0x0000 (---------------) + I fot - 0x0026f8c3, // n0x0741 c0x0000 (---------------) + I fst - 0x002268c3, // n0x0742 c0x0000 (---------------) + I g12 - 0x00302a03, // n0x0743 c0x0000 (---------------) + I ggf - 0x00275003, // n0x0744 c0x0000 (---------------) + I gov - 0x002c15c3, // n0x0745 c0x0000 (---------------) + I imb - 0x00202603, // n0x0746 c0x0000 (---------------) + I ind - 0x00389f83, // n0x0747 c0x0000 (---------------) + I inf - 0x00201ac3, // n0x0748 c0x0000 (---------------) + I jor - 0x002e8403, // n0x0749 c0x0000 (---------------) + I jus - 0x00247b83, // n0x074a c0x0000 (---------------) + I leg - 0x002b9403, // n0x074b c0x0000 (---------------) + I lel - 0x0021ed03, // n0x074c c0x0000 (---------------) + I mat - 0x00211c43, // n0x074d c0x0000 (---------------) + I med - 0x00215b43, // n0x074e c0x0000 (---------------) + I mil - 0x00226dc2, // n0x074f c0x0000 (---------------) + I mp - 0x00270383, // n0x0750 c0x0000 (---------------) + I mus - 0x0021d8c3, // n0x0751 c0x0000 (---------------) + I net - 0x0160e543, // n0x0752 c0x0005 (---------------)* o I nom - 0x00246403, // n0x0753 c0x0000 (---------------) + I not - 0x0022bb43, // n0x0754 c0x0000 (---------------) + I ntr - 0x00206e03, // n0x0755 c0x0000 (---------------) + I odo - 0x00229a83, // n0x0756 c0x0000 (---------------) + I org - 0x00308843, // n0x0757 c0x0000 (---------------) + I ppg - 0x00220283, // n0x0758 c0x0000 (---------------) + I pro - 0x00231cc3, // n0x0759 c0x0000 (---------------) + I psc - 0x002ec783, // n0x075a c0x0000 (---------------) + I psi - 0x002df543, // n0x075b c0x0000 (---------------) + I qsl - 0x0025e6c5, // n0x075c c0x0000 (---------------) + I radio - 0x00226f03, // n0x075d c0x0000 (---------------) + I rec - 0x002df583, // n0x075e c0x0000 (---------------) + I slg - 0x00356083, // n0x075f c0x0000 (---------------) + I srv - 0x0020cfc4, // n0x0760 c0x0000 (---------------) + I taxi - 0x00337f43, // n0x0761 c0x0000 (---------------) + I teo - 0x00233403, // n0x0762 c0x0000 (---------------) + I tmp - 0x0029fc03, // n0x0763 c0x0000 (---------------) + I trd - 0x00236183, // n0x0764 c0x0000 (---------------) + I tur - 0x00206fc2, // n0x0765 c0x0000 (---------------) + I tv - 0x0023b383, // n0x0766 c0x0000 (---------------) + I vet - 0x002f1744, // n0x0767 c0x0000 (---------------) + I vlog - 0x0032fd04, // n0x0768 c0x0000 (---------------) + I wiki - 0x00240f03, // n0x0769 c0x0000 (---------------) + I zlg - 0x000f5248, // n0x076a c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x076b c0x0000 (---------------) + I com - 0x002349c3, // n0x076c c0x0000 (---------------) + I edu - 0x00275003, // n0x076d c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x076e c0x0000 (---------------) + I net - 0x00229a83, // n0x076f c0x0000 (---------------) + I org - 0x0022edc3, // n0x0770 c0x0000 (---------------) + I com - 0x002349c3, // n0x0771 c0x0000 (---------------) + I edu - 0x00275003, // n0x0772 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x0773 c0x0000 (---------------) + I net - 0x00229a83, // n0x0774 c0x0000 (---------------) + I org - 0x00208182, // n0x0775 c0x0000 (---------------) + I co - 0x00229a83, // n0x0776 c0x0000 (---------------) + I org - 0x0ba2edc3, // n0x0777 c0x002e (n0x077b-n0x077c) + I com - 0x00275003, // n0x0778 c0x0000 (---------------) + I gov - 0x00215b43, // n0x0779 c0x0000 (---------------) + I mil - 0x0021f702, // n0x077a c0x0000 (---------------) + I of - 0x000f5248, // n0x077b c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x077c c0x0000 (---------------) + I com - 0x002349c3, // n0x077d c0x0000 (---------------) + I edu - 0x00275003, // n0x077e c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x077f c0x0000 (---------------) + I net - 0x00229a83, // n0x0780 c0x0000 (---------------) + I org - 0x00009ac2, // n0x0781 c0x0000 (---------------) + za - 0x00200e82, // n0x0782 c0x0000 (---------------) + I ab - 0x0021fb02, // n0x0783 c0x0000 (---------------) + I bc - 0x000f5248, // n0x0784 c0x0000 (---------------) + blogspot - 0x00008182, // n0x0785 c0x0000 (---------------) + co - 0x00236c82, // n0x0786 c0x0000 (---------------) + I gc - 0x00205482, // n0x0787 c0x0000 (---------------) + I mb - 0x002263c2, // n0x0788 c0x0000 (---------------) + I nb - 0x002037c2, // n0x0789 c0x0000 (---------------) + I nf - 0x0023e082, // n0x078a c0x0000 (---------------) + I nl - 0x00208402, // n0x078b c0x0000 (---------------) + I ns - 0x00202382, // n0x078c c0x0000 (---------------) + I nt - 0x00209702, // n0x078d c0x0000 (---------------) + I nu - 0x00200582, // n0x078e c0x0000 (---------------) + I on - 0x00209a02, // n0x078f c0x0000 (---------------) + I pe - 0x00376f42, // n0x0790 c0x0000 (---------------) + I qc - 0x0020e342, // n0x0791 c0x0000 (---------------) + I sk - 0x0022a702, // n0x0792 c0x0000 (---------------) + I yk - 0x000ad709, // n0x0793 c0x0000 (---------------) + ftpaccess - 0x001706cb, // n0x0794 c0x0000 (---------------) + game-server - 0x000cd108, // n0x0795 c0x0000 (---------------) + myphotos - 0x00044749, // n0x0796 c0x0000 (---------------) + scrapping - 0x00275003, // n0x0797 c0x0000 (---------------) + I gov - 0x000f5248, // n0x0798 c0x0000 (---------------) + blogspot - 0x000f5248, // n0x0799 c0x0000 (---------------) + blogspot - 0x00205882, // n0x079a c0x0000 (---------------) + I ac - 0x002b1c44, // n0x079b c0x0000 (---------------) + I asso - 0x00208182, // n0x079c c0x0000 (---------------) + I co - 0x0022edc3, // n0x079d c0x0000 (---------------) + I com - 0x002003c2, // n0x079e c0x0000 (---------------) + I ed - 0x002349c3, // n0x079f c0x0000 (---------------) + I edu - 0x00208502, // n0x07a0 c0x0000 (---------------) + I go - 0x002fa744, // n0x07a1 c0x0000 (---------------) + I gouv - 0x0026f683, // n0x07a2 c0x0000 (---------------) + I int - 0x00247ac2, // n0x07a3 c0x0000 (---------------) + I md - 0x0021d8c3, // n0x07a4 c0x0000 (---------------) + I net - 0x00200282, // n0x07a5 c0x0000 (---------------) + I or - 0x00229a83, // n0x07a6 c0x0000 (---------------) + I org - 0x00240d06, // n0x07a7 c0x0000 (---------------) + I presse - 0x0030cf0f, // n0x07a8 c0x0000 (---------------) + I xn--aroport-bya - 0x006f7083, // n0x07a9 c0x0001 (---------------) ! I www - 0x000f5248, // n0x07aa c0x0000 (---------------) + blogspot - 0x00208182, // n0x07ab c0x0000 (---------------) + I co - 0x00209f03, // n0x07ac c0x0000 (---------------) + I gob - 0x00275003, // n0x07ad c0x0000 (---------------) + I gov - 0x00215b43, // n0x07ae c0x0000 (---------------) + I mil - 0x00208182, // n0x07af c0x0000 (---------------) + I co - 0x0022edc3, // n0x07b0 c0x0000 (---------------) + I com - 0x00275003, // n0x07b1 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x07b2 c0x0000 (---------------) + I net - 0x00205882, // n0x07b3 c0x0000 (---------------) + I ac - 0x00207142, // n0x07b4 c0x0000 (---------------) + I ah - 0x0eaeb489, // n0x07b5 c0x003a (n0x07e0-n0x07e1) o I amazonaws - 0x002066c2, // n0x07b6 c0x0000 (---------------) + I bj - 0x0f22edc3, // n0x07b7 c0x003c (n0x07e2-n0x07e3) + I com - 0x0023d842, // n0x07b8 c0x0000 (---------------) + I cq - 0x002349c3, // n0x07b9 c0x0000 (---------------) + I edu - 0x0022f3c2, // n0x07ba c0x0000 (---------------) + I fj - 0x00221f82, // n0x07bb c0x0000 (---------------) + I gd - 0x00275003, // n0x07bc c0x0000 (---------------) + I gov - 0x002242c2, // n0x07bd c0x0000 (---------------) + I gs - 0x0024b8c2, // n0x07be c0x0000 (---------------) + I gx - 0x00252202, // n0x07bf c0x0000 (---------------) + I gz - 0x00201c82, // n0x07c0 c0x0000 (---------------) + I ha - 0x00288842, // n0x07c1 c0x0000 (---------------) + I hb - 0x00205a02, // n0x07c2 c0x0000 (---------------) + I he - 0x00202082, // n0x07c3 c0x0000 (---------------) + I hi - 0x0020e882, // n0x07c4 c0x0000 (---------------) + I hk - 0x002a9982, // n0x07c5 c0x0000 (---------------) + I hl - 0x00218902, // n0x07c6 c0x0000 (---------------) + I hn - 0x002a49c2, // n0x07c7 c0x0000 (---------------) + I jl - 0x0023cbc2, // n0x07c8 c0x0000 (---------------) + I js - 0x00313282, // n0x07c9 c0x0000 (---------------) + I jx - 0x00218f42, // n0x07ca c0x0000 (---------------) + I ln - 0x00215b43, // n0x07cb c0x0000 (---------------) + I mil - 0x00203ec2, // n0x07cc c0x0000 (---------------) + I mo - 0x0021d8c3, // n0x07cd c0x0000 (---------------) + I net - 0x0022dc02, // n0x07ce c0x0000 (---------------) + I nm - 0x00269a82, // n0x07cf c0x0000 (---------------) + I nx - 0x00229a83, // n0x07d0 c0x0000 (---------------) + I org - 0x00248c82, // n0x07d1 c0x0000 (---------------) + I qh - 0x002024c2, // n0x07d2 c0x0000 (---------------) + I sc - 0x00256ec2, // n0x07d3 c0x0000 (---------------) + I sd - 0x00201c42, // n0x07d4 c0x0000 (---------------) + I sh - 0x00212a42, // n0x07d5 c0x0000 (---------------) + I sn - 0x002e7402, // n0x07d6 c0x0000 (---------------) + I sx - 0x00201a82, // n0x07d7 c0x0000 (---------------) + I tj - 0x00241cc2, // n0x07d8 c0x0000 (---------------) + I tw - 0x002753c2, // n0x07d9 c0x0000 (---------------) + I xj - 0x002fac8a, // n0x07da c0x0000 (---------------) + I xn--55qx5d - 0x00340a0a, // n0x07db c0x0000 (---------------) + I xn--io0a7i - 0x00372e8a, // n0x07dc c0x0000 (---------------) + I xn--od0alg - 0x003a3c02, // n0x07dd c0x0000 (---------------) + I xz - 0x0020a442, // n0x07de c0x0000 (---------------) + I yn - 0x0023df82, // n0x07df c0x0000 (---------------) + I zj - 0x0ec303c7, // n0x07e0 c0x003b (n0x07e1-n0x07e2) + compute - 0x0015bb8a, // n0x07e1 c0x0000 (---------------) + cn-north-1 - 0x0f6eb489, // n0x07e2 c0x003d (n0x07e3-n0x07e4) o I amazonaws - 0x0fb5bb8a, // n0x07e3 c0x003e (n0x07e4-n0x07e5) o I cn-north-1 - 0x0004d702, // n0x07e4 c0x0000 (---------------) + s3 - 0x00243984, // n0x07e5 c0x0000 (---------------) + I arts - 0x1022edc3, // n0x07e6 c0x0040 (n0x07f2-n0x07f3) + I com - 0x002349c3, // n0x07e7 c0x0000 (---------------) + I edu - 0x00247a04, // n0x07e8 c0x0000 (---------------) + I firm - 0x00275003, // n0x07e9 c0x0000 (---------------) + I gov - 0x0038a144, // n0x07ea c0x0000 (---------------) + I info - 0x0026f683, // n0x07eb c0x0000 (---------------) + I int - 0x00215b43, // n0x07ec c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x07ed c0x0000 (---------------) + I net - 0x0020e543, // n0x07ee c0x0000 (---------------) + I nom - 0x00229a83, // n0x07ef c0x0000 (---------------) + I org - 0x00226f03, // n0x07f0 c0x0000 (---------------) + I rec - 0x0021fa83, // n0x07f1 c0x0000 (---------------) + I web - 0x000f5248, // n0x07f2 c0x0000 (---------------) + blogspot - 0x000bd9c5, // n0x07f3 c0x0000 (---------------) + 1kapp - 0x00104e02, // n0x07f4 c0x0000 (---------------) + 4u - 0x0016af06, // n0x07f5 c0x0000 (---------------) + africa - 0x10aeb489, // n0x07f6 c0x0042 (n0x08bf-n0x08d1) o I amazonaws - 0x00045a87, // n0x07f7 c0x0000 (---------------) + appspot - 0x000011c2, // n0x07f8 c0x0000 (---------------) + ar - 0x00194f0a, // n0x07f9 c0x0000 (---------------) + betainabox - 0x00029007, // n0x07fa c0x0000 (---------------) + blogdns - 0x000f5248, // n0x07fb c0x0000 (---------------) + blogspot - 0x0000bb42, // n0x07fc c0x0000 (---------------) + br - 0x0013dd87, // n0x07fd c0x0000 (---------------) + cechire - 0x0010944f, // n0x07fe c0x0000 (---------------) + cloudcontrolapp - 0x0002b98f, // n0x07ff c0x0000 (---------------) + cloudcontrolled - 0x0001a142, // n0x0800 c0x0000 (---------------) + cn - 0x00008182, // n0x0801 c0x0000 (---------------) + co - 0x000932c8, // n0x0802 c0x0000 (---------------) + codespot - 0x00000402, // n0x0803 c0x0000 (---------------) + de - 0x00147e08, // n0x0804 c0x0000 (---------------) + dnsalias - 0x00074607, // n0x0805 c0x0000 (---------------) + dnsdojo - 0x000ebecb, // n0x0806 c0x0000 (---------------) + doesntexist - 0x00168789, // n0x0807 c0x0000 (---------------) + dontexist - 0x00147d07, // n0x0808 c0x0000 (---------------) + doomdns - 0x000e908c, // n0x0809 c0x0000 (---------------) + dreamhosters - 0x0012088a, // n0x080a c0x0000 (---------------) + dyn-o-saur - 0x0018bd88, // n0x080b c0x0000 (---------------) + dynalias - 0x0006c4ce, // n0x080c c0x0000 (---------------) + dyndns-at-home - 0x000d54ce, // n0x080d c0x0000 (---------------) + dyndns-at-work - 0x00028e4b, // n0x080e c0x0000 (---------------) + dyndns-blog - 0x000e0acb, // n0x080f c0x0000 (---------------) + dyndns-free - 0x00011a0b, // n0x0810 c0x0000 (---------------) + dyndns-home - 0x00016e09, // n0x0811 c0x0000 (---------------) + dyndns-ip - 0x0001a44b, // n0x0812 c0x0000 (---------------) + dyndns-mail - 0x0001f54d, // n0x0813 c0x0000 (---------------) + dyndns-office - 0x0002090b, // n0x0814 c0x0000 (---------------) + dyndns-pics - 0x0002a14d, // n0x0815 c0x0000 (---------------) + dyndns-remote - 0x0002ad8d, // n0x0816 c0x0000 (---------------) + dyndns-server - 0x00151bca, // n0x0817 c0x0000 (---------------) + dyndns-web - 0x0012fb4b, // n0x0818 c0x0000 (---------------) + dyndns-wiki - 0x0013298b, // n0x0819 c0x0000 (---------------) + dyndns-work - 0x0003a850, // n0x081a c0x0000 (---------------) + elasticbeanstalk - 0x0000498f, // n0x081b c0x0000 (---------------) + est-a-la-maison - 0x000ce98f, // n0x081c c0x0000 (---------------) + est-a-la-masion - 0x0003404d, // n0x081d c0x0000 (---------------) + est-le-patron - 0x0007dbd0, // n0x081e c0x0000 (---------------) + est-mon-blogueur - 0x00024542, // n0x081f c0x0000 (---------------) + eu - 0x0004588b, // n0x0820 c0x0000 (---------------) + firebaseapp - 0x0004c788, // n0x0821 c0x0000 (---------------) + flynnhub - 0x0005afc7, // n0x0822 c0x0000 (---------------) + from-ak - 0x0005b307, // n0x0823 c0x0000 (---------------) + from-al - 0x0005b4c7, // n0x0824 c0x0000 (---------------) + from-ar - 0x0005ba47, // n0x0825 c0x0000 (---------------) + from-ca - 0x0005dbc7, // n0x0826 c0x0000 (---------------) + from-ct - 0x0005e287, // n0x0827 c0x0000 (---------------) + from-dc - 0x0005f3c7, // n0x0828 c0x0000 (---------------) + from-de - 0x0005f907, // n0x0829 c0x0000 (---------------) + from-fl - 0x0005ff47, // n0x082a c0x0000 (---------------) + from-ga - 0x000602c7, // n0x082b c0x0000 (---------------) + from-hi - 0x00060d07, // n0x082c c0x0000 (---------------) + from-ia - 0x00060ec7, // n0x082d c0x0000 (---------------) + from-id - 0x00061087, // n0x082e c0x0000 (---------------) + from-il - 0x00061247, // n0x082f c0x0000 (---------------) + from-in - 0x00061547, // n0x0830 c0x0000 (---------------) + from-ks - 0x00061b87, // n0x0831 c0x0000 (---------------) + from-ky - 0x000623c7, // n0x0832 c0x0000 (---------------) + from-ma - 0x00062a87, // n0x0833 c0x0000 (---------------) + from-md - 0x00063387, // n0x0834 c0x0000 (---------------) + from-mi - 0x00064ac7, // n0x0835 c0x0000 (---------------) + from-mn - 0x00064c87, // n0x0836 c0x0000 (---------------) + from-mo - 0x00064f87, // n0x0837 c0x0000 (---------------) + from-ms - 0x000656c7, // n0x0838 c0x0000 (---------------) + from-mt - 0x000658c7, // n0x0839 c0x0000 (---------------) + from-nc - 0x00066087, // n0x083a c0x0000 (---------------) + from-nd - 0x00066247, // n0x083b c0x0000 (---------------) + from-ne - 0x00066647, // n0x083c c0x0000 (---------------) + from-nh - 0x000669c7, // n0x083d c0x0000 (---------------) + from-nj - 0x00066f87, // n0x083e c0x0000 (---------------) + from-nm - 0x00067747, // n0x083f c0x0000 (---------------) + from-nv - 0x00068bc7, // n0x0840 c0x0000 (---------------) + from-oh - 0x00068e87, // n0x0841 c0x0000 (---------------) + from-ok - 0x00069207, // n0x0842 c0x0000 (---------------) + from-or - 0x000693c7, // n0x0843 c0x0000 (---------------) + from-pa - 0x00069747, // n0x0844 c0x0000 (---------------) + from-pr - 0x00069d87, // n0x0845 c0x0000 (---------------) + from-ri - 0x0006ac87, // n0x0846 c0x0000 (---------------) + from-sc - 0x0006b087, // n0x0847 c0x0000 (---------------) + from-sd - 0x0006b847, // n0x0848 c0x0000 (---------------) + from-tn - 0x0006ba07, // n0x0849 c0x0000 (---------------) + from-tx - 0x0006be47, // n0x084a c0x0000 (---------------) + from-ut - 0x0006ce47, // n0x084b c0x0000 (---------------) + from-va - 0x0006d487, // n0x084c c0x0000 (---------------) + from-vt - 0x0006de87, // n0x084d c0x0000 (---------------) + from-wa - 0x0006e047, // n0x084e c0x0000 (---------------) + from-wi - 0x0006e3c7, // n0x084f c0x0000 (---------------) + from-wv - 0x0006e947, // n0x0850 c0x0000 (---------------) + from-wy - 0x00009582, // n0x0851 c0x0000 (---------------) + gb - 0x000d0707, // n0x0852 c0x0000 (---------------) + getmyip - 0x000c8391, // n0x0853 c0x0000 (---------------) + githubusercontent - 0x000d8b0a, // n0x0854 c0x0000 (---------------) + googleapis - 0x0009314a, // n0x0855 c0x0000 (---------------) + googlecode - 0x0004f886, // n0x0856 c0x0000 (---------------) + gotdns - 0x0001450b, // n0x0857 c0x0000 (---------------) + gotpantheon - 0x000089c2, // n0x0858 c0x0000 (---------------) + gr - 0x0017ea89, // n0x0859 c0x0000 (---------------) + herokuapp - 0x000896c9, // n0x085a c0x0000 (---------------) + herokussl - 0x0000e882, // n0x085b c0x0000 (---------------) + hk - 0x000fef8a, // n0x085c c0x0000 (---------------) + hobby-site - 0x0009c509, // n0x085d c0x0000 (---------------) + homelinux - 0x0009d988, // n0x085e c0x0000 (---------------) + homeunix - 0x0000d0c2, // n0x085f c0x0000 (---------------) + hu - 0x00106c49, // n0x0860 c0x0000 (---------------) + iamallama - 0x0015c40e, // n0x0861 c0x0000 (---------------) + is-a-anarchist - 0x0009894c, // n0x0862 c0x0000 (---------------) + is-a-blogger - 0x000cee0f, // n0x0863 c0x0000 (---------------) + is-a-bookkeeper - 0x0018758e, // n0x0864 c0x0000 (---------------) + is-a-bulls-fan - 0x0000c24c, // n0x0865 c0x0000 (---------------) + is-a-caterer - 0x0000fe09, // n0x0866 c0x0000 (---------------) + is-a-chef - 0x000125d1, // n0x0867 c0x0000 (---------------) + is-a-conservative - 0x00013a48, // n0x0868 c0x0000 (---------------) + is-a-cpa - 0x00017752, // n0x0869 c0x0000 (---------------) + is-a-cubicle-slave - 0x0001844d, // n0x086a c0x0000 (---------------) + is-a-democrat - 0x00022d8d, // n0x086b c0x0000 (---------------) + is-a-designer - 0x000236cb, // n0x086c c0x0000 (---------------) + is-a-doctor - 0x00028555, // n0x086d c0x0000 (---------------) + is-a-financialadvisor - 0x0005f049, // n0x086e c0x0000 (---------------) + is-a-geek - 0x0016ba0a, // n0x086f c0x0000 (---------------) + is-a-green - 0x00130509, // n0x0870 c0x0000 (---------------) + is-a-guru - 0x00042150, // n0x0871 c0x0000 (---------------) + is-a-hard-worker - 0x0004884b, // n0x0872 c0x0000 (---------------) + is-a-hunter - 0x00054ccf, // n0x0873 c0x0000 (---------------) + is-a-landscaper - 0x0005d4cb, // n0x0874 c0x0000 (---------------) + is-a-lawyer - 0x000653cc, // n0x0875 c0x0000 (---------------) + is-a-liberal - 0x00067350, // n0x0876 c0x0000 (---------------) + is-a-libertarian - 0x0006ca4a, // n0x0877 c0x0000 (---------------) + is-a-llama - 0x0007024d, // n0x0878 c0x0000 (---------------) + is-a-musician - 0x0007198e, // n0x0879 c0x0000 (---------------) + is-a-nascarfan - 0x0007570a, // n0x087a c0x0000 (---------------) + is-a-nurse - 0x00081dcc, // n0x087b c0x0000 (---------------) + is-a-painter - 0x00137194, // n0x087c c0x0000 (---------------) + is-a-personaltrainer - 0x0017e711, // n0x087d c0x0000 (---------------) + is-a-photographer - 0x0008bc4b, // n0x087e c0x0000 (---------------) + is-a-player - 0x0008fd8f, // n0x087f c0x0000 (---------------) + is-a-republican - 0x00095dcd, // n0x0880 c0x0000 (---------------) + is-a-rockstar - 0x000982ce, // n0x0881 c0x0000 (---------------) + is-a-socialist - 0x000a300c, // n0x0882 c0x0000 (---------------) + is-a-student - 0x000a374c, // n0x0883 c0x0000 (---------------) + is-a-teacher - 0x000edf8b, // n0x0884 c0x0000 (---------------) + is-a-techie - 0x000ee28e, // n0x0885 c0x0000 (---------------) + is-a-therapist - 0x000ed890, // n0x0886 c0x0000 (---------------) + is-an-accountant - 0x00156b4b, // n0x0887 c0x0000 (---------------) + is-an-actor - 0x000ed38d, // n0x0888 c0x0000 (---------------) + is-an-actress - 0x000d5f4f, // n0x0889 c0x0000 (---------------) + is-an-anarchist - 0x0015634c, // n0x088a c0x0000 (---------------) + is-an-artist - 0x00129f8e, // n0x088b c0x0000 (---------------) + is-an-engineer - 0x00168c91, // n0x088c c0x0000 (---------------) + is-an-entertainer - 0x000aed4c, // n0x088d c0x0000 (---------------) + is-certified - 0x000b3d47, // n0x088e c0x0000 (---------------) + is-gone - 0x000b488d, // n0x088f c0x0000 (---------------) + is-into-anime - 0x000b608c, // n0x0890 c0x0000 (---------------) + is-into-cars - 0x000d3e10, // n0x0891 c0x0000 (---------------) + is-into-cartoons - 0x00118acd, // n0x0892 c0x0000 (---------------) + is-into-games - 0x00144007, // n0x0893 c0x0000 (---------------) + is-leet - 0x00157c90, // n0x0894 c0x0000 (---------------) + is-not-certified - 0x000e2408, // n0x0895 c0x0000 (---------------) + is-slick - 0x000e398b, // n0x0896 c0x0000 (---------------) + is-uberleet - 0x0014798f, // n0x0897 c0x0000 (---------------) + is-with-theband - 0x000fff08, // n0x0898 c0x0000 (---------------) + isa-geek - 0x000d8d0d, // n0x0899 c0x0000 (---------------) + isa-hockeynut - 0x0014b750, // n0x089a c0x0000 (---------------) + issmarterthanyou - 0x000a9883, // n0x089b c0x0000 (---------------) + jpn - 0x000076c2, // n0x089c c0x0000 (---------------) + kr - 0x000510c9, // n0x089d c0x0000 (---------------) + likes-pie - 0x0006c2ca, // n0x089e c0x0000 (---------------) + likescandy - 0x0001ddc3, // n0x089f c0x0000 (---------------) + mex - 0x00116a48, // n0x08a0 c0x0000 (---------------) + neat-url - 0x000079c7, // n0x08a1 c0x0000 (---------------) + nfshost - 0x00000d82, // n0x08a2 c0x0000 (---------------) + no - 0x0005e84a, // n0x08a3 c0x0000 (---------------) + operaunite - 0x0017e1cf, // n0x08a4 c0x0000 (---------------) + outsystemscloud - 0x00123c52, // n0x08a5 c0x0000 (---------------) + pagespeedmobilizer - 0x00114503, // n0x08a6 c0x0000 (---------------) + qa2 - 0x00176f42, // n0x08a7 c0x0000 (---------------) + qc - 0x001093c7, // n0x08a8 c0x0000 (---------------) + rhcloud - 0x00000cc2, // n0x08a9 c0x0000 (---------------) + ro - 0x00011ec2, // n0x08aa c0x0000 (---------------) + ru - 0x00002402, // n0x08ab c0x0000 (---------------) + sa - 0x00198490, // n0x08ac c0x0000 (---------------) + saves-the-whales - 0x00001d42, // n0x08ad c0x0000 (---------------) + se - 0x00053986, // n0x08ae c0x0000 (---------------) + selfip - 0x00046cce, // n0x08af c0x0000 (---------------) + sells-for-less - 0x00084c4b, // n0x08b0 c0x0000 (---------------) + sells-for-u - 0x000c9608, // n0x08b1 c0x0000 (---------------) + servebbs - 0x000c670a, // n0x08b2 c0x0000 (---------------) + simple-url - 0x000ec7c7, // n0x08b3 c0x0000 (---------------) + sinaapp - 0x0013508d, // n0x08b4 c0x0000 (---------------) + space-to-rent - 0x0017980c, // n0x08b5 c0x0000 (---------------) + teaches-yoga - 0x00000f82, // n0x08b6 c0x0000 (---------------) + uk - 0x00002982, // n0x08b7 c0x0000 (---------------) + us - 0x0000d7c2, // n0x08b8 c0x0000 (---------------) + uy - 0x000ec70a, // n0x08b9 c0x0000 (---------------) + vipsinaapp - 0x000d8a0a, // n0x08ba c0x0000 (---------------) + withgoogle - 0x000de78b, // n0x08bb c0x0000 (---------------) + withyoutube - 0x000f4fce, // n0x08bc c0x0000 (---------------) + writesthisblog - 0x000d2888, // n0x08bd c0x0000 (---------------) + yolasite - 0x00009ac2, // n0x08be c0x0000 (---------------) + za - 0x10c303c7, // n0x08bf c0x0043 (n0x08d1-n0x08da) + compute - 0x110303c9, // n0x08c0 c0x0044 (n0x08da-n0x08dc) + compute-1 - 0x0000f683, // n0x08c1 c0x0000 (---------------) + elb - 0x11763c0c, // n0x08c2 c0x0045 (n0x08dc-n0x08dd) o I eu-central-1 - 0x0004d702, // n0x08c3 c0x0000 (---------------) + s3 - 0x000be551, // n0x08c4 c0x0000 (---------------) + s3-ap-northeast-1 - 0x000bd5d1, // n0x08c5 c0x0000 (---------------) + s3-ap-southeast-1 - 0x00103851, // n0x08c6 c0x0000 (---------------) + s3-ap-southeast-2 - 0x00163b4f, // n0x08c7 c0x0000 (---------------) + s3-eu-central-1 - 0x0004d70c, // n0x08c8 c0x0000 (---------------) + s3-eu-west-1 - 0x000a234d, // n0x08c9 c0x0000 (---------------) + s3-external-1 - 0x0011eb4d, // n0x08ca c0x0000 (---------------) + s3-external-2 - 0x00120c55, // n0x08cb c0x0000 (---------------) + s3-fips-us-gov-west-1 - 0x0012c3cc, // n0x08cc c0x0000 (---------------) + s3-sa-east-1 - 0x00142c10, // n0x08cd c0x0000 (---------------) + s3-us-gov-west-1 - 0x000647cc, // n0x08ce c0x0000 (---------------) + s3-us-west-1 - 0x000d6bcc, // n0x08cf c0x0000 (---------------) + s3-us-west-2 - 0x0011b689, // n0x08d0 c0x0000 (---------------) + us-east-1 - 0x000be60e, // n0x08d1 c0x0000 (---------------) + ap-northeast-1 - 0x000bd68e, // n0x08d2 c0x0000 (---------------) + ap-southeast-1 - 0x0010390e, // n0x08d3 c0x0000 (---------------) + ap-southeast-2 - 0x00163c0c, // n0x08d4 c0x0000 (---------------) + eu-central-1 - 0x0004d7c9, // n0x08d5 c0x0000 (---------------) + eu-west-1 - 0x0012c489, // n0x08d6 c0x0000 (---------------) + sa-east-1 - 0x00120e4d, // n0x08d7 c0x0000 (---------------) + us-gov-west-1 - 0x00064889, // n0x08d8 c0x0000 (---------------) + us-west-1 - 0x000d6c89, // n0x08d9 c0x0000 (---------------) + us-west-2 - 0x0010a983, // n0x08da c0x0000 (---------------) + z-1 - 0x0013bb83, // n0x08db c0x0000 (---------------) + z-2 - 0x0004d702, // n0x08dc c0x0000 (---------------) + s3 - 0x00205882, // n0x08dd c0x0000 (---------------) + I ac - 0x00208182, // n0x08de c0x0000 (---------------) + I co - 0x002003c2, // n0x08df c0x0000 (---------------) + I ed - 0x0020e002, // n0x08e0 c0x0000 (---------------) + I fi - 0x00208502, // n0x08e1 c0x0000 (---------------) + I go - 0x00200282, // n0x08e2 c0x0000 (---------------) + I or - 0x00202402, // n0x08e3 c0x0000 (---------------) + I sa - 0x0022edc3, // n0x08e4 c0x0000 (---------------) + I com - 0x002349c3, // n0x08e5 c0x0000 (---------------) + I edu - 0x00275003, // n0x08e6 c0x0000 (---------------) + I gov - 0x00389f83, // n0x08e7 c0x0000 (---------------) + I inf - 0x0021d8c3, // n0x08e8 c0x0000 (---------------) + I net - 0x00229a83, // n0x08e9 c0x0000 (---------------) + I org - 0x000f5248, // n0x08ea c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x08eb c0x0000 (---------------) + I com - 0x002349c3, // n0x08ec c0x0000 (---------------) + I edu - 0x0021d8c3, // n0x08ed c0x0000 (---------------) + I net - 0x00229a83, // n0x08ee c0x0000 (---------------) + I org - 0x0005cf03, // n0x08ef c0x0000 (---------------) + ath - 0x00275003, // n0x08f0 c0x0000 (---------------) + I gov - 0x00205882, // n0x08f1 c0x0000 (---------------) + I ac - 0x0030a143, // n0x08f2 c0x0000 (---------------) + I biz - 0x1322edc3, // n0x08f3 c0x004c (n0x08fe-n0x08ff) + I com - 0x0027c487, // n0x08f4 c0x0000 (---------------) + I ekloges - 0x00275003, // n0x08f5 c0x0000 (---------------) + I gov - 0x00342703, // n0x08f6 c0x0000 (---------------) + I ltd - 0x0027ca84, // n0x08f7 c0x0000 (---------------) + I name - 0x0021d8c3, // n0x08f8 c0x0000 (---------------) + I net - 0x00229a83, // n0x08f9 c0x0000 (---------------) + I org - 0x00266bca, // n0x08fa c0x0000 (---------------) + I parliament - 0x00240d05, // n0x08fb c0x0000 (---------------) + I press - 0x00220283, // n0x08fc c0x0000 (---------------) + I pro - 0x00200142, // n0x08fd c0x0000 (---------------) + I tm - 0x000f5248, // n0x08fe c0x0000 (---------------) + blogspot - 0x000f5248, // n0x08ff c0x0000 (---------------) + blogspot - 0x000f5248, // n0x0900 c0x0000 (---------------) + blogspot - 0x0002edc3, // n0x0901 c0x0000 (---------------) + com - 0x000d434f, // n0x0902 c0x0000 (---------------) + fuettertdasnetz - 0x0016890a, // n0x0903 c0x0000 (---------------) + isteingeek - 0x00098587, // n0x0904 c0x0000 (---------------) + istmein - 0x0001d74a, // n0x0905 c0x0000 (---------------) + lebtimnetz - 0x0008df8a, // n0x0906 c0x0000 (---------------) + leitungsen - 0x000355cd, // n0x0907 c0x0000 (---------------) + traeumtgerade - 0x000f5248, // n0x0908 c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x0909 c0x0000 (---------------) + I com - 0x002349c3, // n0x090a c0x0000 (---------------) + I edu - 0x00275003, // n0x090b c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x090c c0x0000 (---------------) + I net - 0x00229a83, // n0x090d c0x0000 (---------------) + I org - 0x002011c3, // n0x090e c0x0000 (---------------) + I art - 0x0022edc3, // n0x090f c0x0000 (---------------) + I com - 0x002349c3, // n0x0910 c0x0000 (---------------) + I edu - 0x00209f03, // n0x0911 c0x0000 (---------------) + I gob - 0x00275003, // n0x0912 c0x0000 (---------------) + I gov - 0x00215b43, // n0x0913 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x0914 c0x0000 (---------------) + I net - 0x00229a83, // n0x0915 c0x0000 (---------------) + I org - 0x00289883, // n0x0916 c0x0000 (---------------) + I sld - 0x0021fa83, // n0x0917 c0x0000 (---------------) + I web - 0x002011c3, // n0x0918 c0x0000 (---------------) + I art - 0x002b1c44, // n0x0919 c0x0000 (---------------) + I asso - 0x0022edc3, // n0x091a c0x0000 (---------------) + I com - 0x002349c3, // n0x091b c0x0000 (---------------) + I edu - 0x00275003, // n0x091c c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x091d c0x0000 (---------------) + I net - 0x00229a83, // n0x091e c0x0000 (---------------) + I org - 0x002210c3, // n0x091f c0x0000 (---------------) + I pol - 0x0022edc3, // n0x0920 c0x0000 (---------------) + I com - 0x002349c3, // n0x0921 c0x0000 (---------------) + I edu - 0x0020e003, // n0x0922 c0x0000 (---------------) + I fin - 0x00209f03, // n0x0923 c0x0000 (---------------) + I gob - 0x00275003, // n0x0924 c0x0000 (---------------) + I gov - 0x0038a144, // n0x0925 c0x0000 (---------------) + I info - 0x00324c03, // n0x0926 c0x0000 (---------------) + I k12 - 0x00211c43, // n0x0927 c0x0000 (---------------) + I med - 0x00215b43, // n0x0928 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x0929 c0x0000 (---------------) + I net - 0x00229a83, // n0x092a c0x0000 (---------------) + I org - 0x00220283, // n0x092b c0x0000 (---------------) + I pro - 0x003a3443, // n0x092c c0x0000 (---------------) + I aip - 0x1562edc3, // n0x092d c0x0055 (n0x0936-n0x0937) + I com - 0x002349c3, // n0x092e c0x0000 (---------------) + I edu - 0x002aef43, // n0x092f c0x0000 (---------------) + I fie - 0x00275003, // n0x0930 c0x0000 (---------------) + I gov - 0x00265503, // n0x0931 c0x0000 (---------------) + I lib - 0x00211c43, // n0x0932 c0x0000 (---------------) + I med - 0x00229a83, // n0x0933 c0x0000 (---------------) + I org - 0x00204383, // n0x0934 c0x0000 (---------------) + I pri - 0x0037f9c4, // n0x0935 c0x0000 (---------------) + I riik - 0x000f5248, // n0x0936 c0x0000 (---------------) + blogspot - 0x15e2edc3, // n0x0937 c0x0057 (n0x0940-n0x0941) + I com - 0x002349c3, // n0x0938 c0x0000 (---------------) + I edu - 0x0029da43, // n0x0939 c0x0000 (---------------) + I eun - 0x00275003, // n0x093a c0x0000 (---------------) + I gov - 0x00215b43, // n0x093b c0x0000 (---------------) + I mil - 0x0027ca84, // n0x093c c0x0000 (---------------) + I name - 0x0021d8c3, // n0x093d c0x0000 (---------------) + I net - 0x00229a83, // n0x093e c0x0000 (---------------) + I org - 0x0021c043, // n0x093f c0x0000 (---------------) + I sci - 0x000f5248, // n0x0940 c0x0000 (---------------) + blogspot - 0x1662edc3, // n0x0941 c0x0059 (n0x0946-n0x0947) + I com - 0x002349c3, // n0x0942 c0x0000 (---------------) + I edu - 0x00209f03, // n0x0943 c0x0000 (---------------) + I gob - 0x0020e543, // n0x0944 c0x0000 (---------------) + I nom - 0x00229a83, // n0x0945 c0x0000 (---------------) + I org - 0x000f5248, // n0x0946 c0x0000 (---------------) + blogspot - 0x0030a143, // n0x0947 c0x0000 (---------------) + I biz - 0x0022edc3, // n0x0948 c0x0000 (---------------) + I com - 0x002349c3, // n0x0949 c0x0000 (---------------) + I edu - 0x00275003, // n0x094a c0x0000 (---------------) + I gov - 0x0038a144, // n0x094b c0x0000 (---------------) + I info - 0x0027ca84, // n0x094c c0x0000 (---------------) + I name - 0x0021d8c3, // n0x094d c0x0000 (---------------) + I net - 0x00229a83, // n0x094e c0x0000 (---------------) + I org - 0x0031e505, // n0x094f c0x0000 (---------------) + I aland - 0x000f5248, // n0x0950 c0x0000 (---------------) + blogspot - 0x0001eb43, // n0x0951 c0x0000 (---------------) + iki - 0x002bcb88, // n0x0952 c0x0000 (---------------) + I aeroport - 0x0034ca87, // n0x0953 c0x0000 (---------------) + I assedic - 0x002b1c44, // n0x0954 c0x0000 (---------------) + I asso - 0x0033aac6, // n0x0955 c0x0000 (---------------) + I avocat - 0x00342ac6, // n0x0956 c0x0000 (---------------) + I avoues - 0x000f5248, // n0x0957 c0x0000 (---------------) + blogspot - 0x00316483, // n0x0958 c0x0000 (---------------) + I cci - 0x003793c9, // n0x0959 c0x0000 (---------------) + I chambagri - 0x002ade55, // n0x095a c0x0000 (---------------) + I chirurgiens-dentistes - 0x0022edc3, // n0x095b c0x0000 (---------------) + I com - 0x002a8552, // n0x095c c0x0000 (---------------) + I experts-comptables - 0x002a830f, // n0x095d c0x0000 (---------------) + I geometre-expert - 0x002fa744, // n0x095e c0x0000 (---------------) + I gouv - 0x00215505, // n0x095f c0x0000 (---------------) + I greta - 0x002e81d0, // n0x0960 c0x0000 (---------------) + I huissier-justice - 0x0035abc7, // n0x0961 c0x0000 (---------------) + I medecin - 0x0020e543, // n0x0962 c0x0000 (---------------) + I nom - 0x00246408, // n0x0963 c0x0000 (---------------) + I notaires - 0x002d5a0a, // n0x0964 c0x0000 (---------------) + I pharmacien - 0x0023f504, // n0x0965 c0x0000 (---------------) + I port - 0x002da783, // n0x0966 c0x0000 (---------------) + I prd - 0x00240d06, // n0x0967 c0x0000 (---------------) + I presse - 0x00200142, // n0x0968 c0x0000 (---------------) + I tm - 0x003781cb, // n0x0969 c0x0000 (---------------) + I veterinaire - 0x0022edc3, // n0x096a c0x0000 (---------------) + I com - 0x002349c3, // n0x096b c0x0000 (---------------) + I edu - 0x00275003, // n0x096c c0x0000 (---------------) + I gov - 0x00215b43, // n0x096d c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x096e c0x0000 (---------------) + I net - 0x00229a83, // n0x096f c0x0000 (---------------) + I org - 0x002def03, // n0x0970 c0x0000 (---------------) + I pvt - 0x00208182, // n0x0971 c0x0000 (---------------) + I co - 0x0021d8c3, // n0x0972 c0x0000 (---------------) + I net - 0x00229a83, // n0x0973 c0x0000 (---------------) + I org - 0x0022edc3, // n0x0974 c0x0000 (---------------) + I com - 0x002349c3, // n0x0975 c0x0000 (---------------) + I edu - 0x00275003, // n0x0976 c0x0000 (---------------) + I gov - 0x00215b43, // n0x0977 c0x0000 (---------------) + I mil - 0x00229a83, // n0x0978 c0x0000 (---------------) + I org - 0x0022edc3, // n0x0979 c0x0000 (---------------) + I com - 0x002349c3, // n0x097a c0x0000 (---------------) + I edu - 0x00275003, // n0x097b c0x0000 (---------------) + I gov - 0x00342703, // n0x097c c0x0000 (---------------) + I ltd - 0x00210243, // n0x097d c0x0000 (---------------) + I mod - 0x00229a83, // n0x097e c0x0000 (---------------) + I org - 0x00208182, // n0x097f c0x0000 (---------------) + I co - 0x0022edc3, // n0x0980 c0x0000 (---------------) + I com - 0x002349c3, // n0x0981 c0x0000 (---------------) + I edu - 0x0021d8c3, // n0x0982 c0x0000 (---------------) + I net - 0x00229a83, // n0x0983 c0x0000 (---------------) + I org - 0x00205882, // n0x0984 c0x0000 (---------------) + I ac - 0x0022edc3, // n0x0985 c0x0000 (---------------) + I com - 0x002349c3, // n0x0986 c0x0000 (---------------) + I edu - 0x00275003, // n0x0987 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x0988 c0x0000 (---------------) + I net - 0x00229a83, // n0x0989 c0x0000 (---------------) + I org - 0x002b1c44, // n0x098a c0x0000 (---------------) + I asso - 0x0022edc3, // n0x098b c0x0000 (---------------) + I com - 0x002349c3, // n0x098c c0x0000 (---------------) + I edu - 0x00207804, // n0x098d c0x0000 (---------------) + I mobi - 0x0021d8c3, // n0x098e c0x0000 (---------------) + I net - 0x00229a83, // n0x098f c0x0000 (---------------) + I org - 0x000f5248, // n0x0990 c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x0991 c0x0000 (---------------) + I com - 0x002349c3, // n0x0992 c0x0000 (---------------) + I edu - 0x00275003, // n0x0993 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x0994 c0x0000 (---------------) + I net - 0x00229a83, // n0x0995 c0x0000 (---------------) + I org - 0x0022edc3, // n0x0996 c0x0000 (---------------) + I com - 0x002349c3, // n0x0997 c0x0000 (---------------) + I edu - 0x00209f03, // n0x0998 c0x0000 (---------------) + I gob - 0x00202603, // n0x0999 c0x0000 (---------------) + I ind - 0x00215b43, // n0x099a c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x099b c0x0000 (---------------) + I net - 0x00229a83, // n0x099c c0x0000 (---------------) + I org - 0x00208182, // n0x099d c0x0000 (---------------) + I co - 0x0022edc3, // n0x099e c0x0000 (---------------) + I com - 0x0021d8c3, // n0x099f c0x0000 (---------------) + I net - 0x000f5248, // n0x09a0 c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x09a1 c0x0000 (---------------) + I com - 0x002349c3, // n0x09a2 c0x0000 (---------------) + I edu - 0x00275003, // n0x09a3 c0x0000 (---------------) + I gov - 0x00306f03, // n0x09a4 c0x0000 (---------------) + I idv - 0x00061383, // n0x09a5 c0x0000 (---------------) + inc - 0x00142703, // n0x09a6 c0x0000 (---------------) + ltd - 0x0021d8c3, // n0x09a7 c0x0000 (---------------) + I net - 0x00229a83, // n0x09a8 c0x0000 (---------------) + I org - 0x002fac8a, // n0x09a9 c0x0000 (---------------) + I xn--55qx5d - 0x0031bfc9, // n0x09aa c0x0000 (---------------) + I xn--ciqpn - 0x003361cb, // n0x09ab c0x0000 (---------------) + I xn--gmq050i - 0x0033674a, // n0x09ac c0x0000 (---------------) + I xn--gmqw5a - 0x00340a0a, // n0x09ad c0x0000 (---------------) + I xn--io0a7i - 0x0034f6cb, // n0x09ae c0x0000 (---------------) + I xn--lcvr32d - 0x0036544a, // n0x09af c0x0000 (---------------) + I xn--mk0axi - 0x0036d74a, // n0x09b0 c0x0000 (---------------) + I xn--mxtq1m - 0x00372e8a, // n0x09b1 c0x0000 (---------------) + I xn--od0alg - 0x0037310b, // n0x09b2 c0x0000 (---------------) + I xn--od0aq3b - 0x0038d709, // n0x09b3 c0x0000 (---------------) + I xn--tn0ag - 0x0038f90a, // n0x09b4 c0x0000 (---------------) + I xn--uc0atv - 0x0038fe4b, // n0x09b5 c0x0000 (---------------) + I xn--uc0ay4a - 0x0039ba4b, // n0x09b6 c0x0000 (---------------) + I xn--wcvs22d - 0x003a23ca, // n0x09b7 c0x0000 (---------------) + I xn--zf0avx - 0x0022edc3, // n0x09b8 c0x0000 (---------------) + I com - 0x002349c3, // n0x09b9 c0x0000 (---------------) + I edu - 0x00209f03, // n0x09ba c0x0000 (---------------) + I gob - 0x00215b43, // n0x09bb c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x09bc c0x0000 (---------------) + I net - 0x00229a83, // n0x09bd c0x0000 (---------------) + I org - 0x000f5248, // n0x09be c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x09bf c0x0000 (---------------) + I com - 0x0025afc4, // n0x09c0 c0x0000 (---------------) + I from - 0x00217542, // n0x09c1 c0x0000 (---------------) + I iz - 0x0027ca84, // n0x09c2 c0x0000 (---------------) + I name - 0x00299105, // n0x09c3 c0x0000 (---------------) + I adult - 0x002011c3, // n0x09c4 c0x0000 (---------------) + I art - 0x002b1c44, // n0x09c5 c0x0000 (---------------) + I asso - 0x0022edc3, // n0x09c6 c0x0000 (---------------) + I com - 0x00238284, // n0x09c7 c0x0000 (---------------) + I coop - 0x002349c3, // n0x09c8 c0x0000 (---------------) + I edu - 0x00247a04, // n0x09c9 c0x0000 (---------------) + I firm - 0x002fa744, // n0x09ca c0x0000 (---------------) + I gouv - 0x0038a144, // n0x09cb c0x0000 (---------------) + I info - 0x00211c43, // n0x09cc c0x0000 (---------------) + I med - 0x0021d8c3, // n0x09cd c0x0000 (---------------) + I net - 0x00229a83, // n0x09ce c0x0000 (---------------) + I org - 0x003372c5, // n0x09cf c0x0000 (---------------) + I perso - 0x002210c3, // n0x09d0 c0x0000 (---------------) + I pol - 0x00220283, // n0x09d1 c0x0000 (---------------) + I pro - 0x0020c043, // n0x09d2 c0x0000 (---------------) + I rel - 0x00332c44, // n0x09d3 c0x0000 (---------------) + I shop - 0x00226944, // n0x09d4 c0x0000 (---------------) + I 2000 - 0x00250605, // n0x09d5 c0x0000 (---------------) + I agrar - 0x000f5248, // n0x09d6 c0x0000 (---------------) + blogspot - 0x00208b44, // n0x09d7 c0x0000 (---------------) + I bolt - 0x00351546, // n0x09d8 c0x0000 (---------------) + I casino - 0x0027e804, // n0x09d9 c0x0000 (---------------) + I city - 0x00208182, // n0x09da c0x0000 (---------------) + I co - 0x00333307, // n0x09db c0x0000 (---------------) + I erotica - 0x00249a47, // n0x09dc c0x0000 (---------------) + I erotika - 0x00243ec4, // n0x09dd c0x0000 (---------------) + I film - 0x00253c85, // n0x09de c0x0000 (---------------) + I forum - 0x00318cc5, // n0x09df c0x0000 (---------------) + I games - 0x0022fac5, // n0x09e0 c0x0000 (---------------) + I hotel - 0x0038a144, // n0x09e1 c0x0000 (---------------) + I info - 0x0033d688, // n0x09e2 c0x0000 (---------------) + I ingatlan - 0x0020b886, // n0x09e3 c0x0000 (---------------) + I jogasz - 0x002cde48, // n0x09e4 c0x0000 (---------------) + I konyvelo - 0x00237ac5, // n0x09e5 c0x0000 (---------------) + I lakas - 0x002fb545, // n0x09e6 c0x0000 (---------------) + I media - 0x0021fe44, // n0x09e7 c0x0000 (---------------) + I news - 0x00229a83, // n0x09e8 c0x0000 (---------------) + I org - 0x002db244, // n0x09e9 c0x0000 (---------------) + I priv - 0x0034d5c6, // n0x09ea c0x0000 (---------------) + I reklam - 0x00240e03, // n0x09eb c0x0000 (---------------) + I sex - 0x00332c44, // n0x09ec c0x0000 (---------------) + I shop - 0x0028b685, // n0x09ed c0x0000 (---------------) + I sport - 0x002368c4, // n0x09ee c0x0000 (---------------) + I suli - 0x0037ff44, // n0x09ef c0x0000 (---------------) + I szex - 0x00200142, // n0x09f0 c0x0000 (---------------) + I tm - 0x00266846, // n0x09f1 c0x0000 (---------------) + I tozsde - 0x00384f86, // n0x09f2 c0x0000 (---------------) + I utazas - 0x002ea705, // n0x09f3 c0x0000 (---------------) + I video - 0x00205882, // n0x09f4 c0x0000 (---------------) + I ac - 0x0030a143, // n0x09f5 c0x0000 (---------------) + I biz - 0x1b608182, // n0x09f6 c0x006d (n0x09ff-n0x0a00) + I co - 0x002363c4, // n0x09f7 c0x0000 (---------------) + I desa - 0x00208502, // n0x09f8 c0x0000 (---------------) + I go - 0x00215b43, // n0x09f9 c0x0000 (---------------) + I mil - 0x0022a6c2, // n0x09fa c0x0000 (---------------) + I my - 0x0021d8c3, // n0x09fb c0x0000 (---------------) + I net - 0x00200282, // n0x09fc c0x0000 (---------------) + I or - 0x00215d43, // n0x09fd c0x0000 (---------------) + I sch - 0x0021fa83, // n0x09fe c0x0000 (---------------) + I web - 0x000f5248, // n0x09ff c0x0000 (---------------) + blogspot - 0x000f5248, // n0x0a00 c0x0000 (---------------) + blogspot - 0x00275003, // n0x0a01 c0x0000 (---------------) + I gov - 0x00205882, // n0x0a02 c0x0000 (---------------) + I ac - 0x1c208182, // n0x0a03 c0x0070 (n0x0a0a-n0x0a0b) + I co - 0x00275003, // n0x0a04 c0x0000 (---------------) + I gov - 0x00261003, // n0x0a05 c0x0000 (---------------) + I idf - 0x00324c03, // n0x0a06 c0x0000 (---------------) + I k12 - 0x0022f204, // n0x0a07 c0x0000 (---------------) + I muni - 0x0021d8c3, // n0x0a08 c0x0000 (---------------) + I net - 0x00229a83, // n0x0a09 c0x0000 (---------------) + I org - 0x000f5248, // n0x0a0a c0x0000 (---------------) + blogspot - 0x00205882, // n0x0a0b c0x0000 (---------------) + I ac - 0x1ca08182, // n0x0a0c c0x0072 (n0x0a12-n0x0a14) + I co - 0x0022edc3, // n0x0a0d c0x0000 (---------------) + I com - 0x0021d8c3, // n0x0a0e c0x0000 (---------------) + I net - 0x00229a83, // n0x0a0f c0x0000 (---------------) + I org - 0x0020a242, // n0x0a10 c0x0000 (---------------) + I tt - 0x00206fc2, // n0x0a11 c0x0000 (---------------) + I tv - 0x00342703, // n0x0a12 c0x0000 (---------------) + I ltd - 0x002d4b03, // n0x0a13 c0x0000 (---------------) + I plc - 0x00205882, // n0x0a14 c0x0000 (---------------) + I ac - 0x000f5248, // n0x0a15 c0x0000 (---------------) + blogspot - 0x00208182, // n0x0a16 c0x0000 (---------------) + I co - 0x002349c3, // n0x0a17 c0x0000 (---------------) + I edu - 0x00247a04, // n0x0a18 c0x0000 (---------------) + I firm - 0x00206243, // n0x0a19 c0x0000 (---------------) + I gen - 0x00275003, // n0x0a1a c0x0000 (---------------) + I gov - 0x00202603, // n0x0a1b c0x0000 (---------------) + I ind - 0x00215b43, // n0x0a1c c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x0a1d c0x0000 (---------------) + I net - 0x00217183, // n0x0a1e c0x0000 (---------------) + I nic - 0x00229a83, // n0x0a1f c0x0000 (---------------) + I org - 0x0021bfc3, // n0x0a20 c0x0000 (---------------) + I res - 0x0011dc93, // n0x0a21 c0x0000 (---------------) + barrel-of-knowledge - 0x0011f794, // n0x0a22 c0x0000 (---------------) + barrell-of-knowledge - 0x00011a06, // n0x0a23 c0x0000 (---------------) + dyndns - 0x0004e4c7, // n0x0a24 c0x0000 (---------------) + for-our - 0x0011af89, // n0x0a25 c0x0000 (---------------) + groks-the - 0x00029b0a, // n0x0a26 c0x0000 (---------------) + groks-this - 0x00080f4d, // n0x0a27 c0x0000 (---------------) + here-for-more - 0x000f088a, // n0x0a28 c0x0000 (---------------) + knowsitall - 0x00053986, // n0x0a29 c0x0000 (---------------) + selfip - 0x00123b06, // n0x0a2a c0x0000 (---------------) + webhop - 0x00224542, // n0x0a2b c0x0000 (---------------) + I eu - 0x0022edc3, // n0x0a2c c0x0000 (---------------) + I com - 0x000c8386, // n0x0a2d c0x0000 (---------------) + github - 0x0011b2c3, // n0x0a2e c0x0000 (---------------) + nid - 0x000145c8, // n0x0a2f c0x0000 (---------------) + pantheon - 0x000aa448, // n0x0a30 c0x0000 (---------------) + sandcats - 0x0022edc3, // n0x0a31 c0x0000 (---------------) + I com - 0x002349c3, // n0x0a32 c0x0000 (---------------) + I edu - 0x00275003, // n0x0a33 c0x0000 (---------------) + I gov - 0x00215b43, // n0x0a34 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x0a35 c0x0000 (---------------) + I net - 0x00229a83, // n0x0a36 c0x0000 (---------------) + I org - 0x00205882, // n0x0a37 c0x0000 (---------------) + I ac - 0x00208182, // n0x0a38 c0x0000 (---------------) + I co - 0x00275003, // n0x0a39 c0x0000 (---------------) + I gov - 0x00205d82, // n0x0a3a c0x0000 (---------------) + I id - 0x0021d8c3, // n0x0a3b c0x0000 (---------------) + I net - 0x00229a83, // n0x0a3c c0x0000 (---------------) + I org - 0x00215d43, // n0x0a3d c0x0000 (---------------) + I sch - 0x0035830f, // n0x0a3e c0x0000 (---------------) + I xn--mgba3a4f16a - 0x003586ce, // n0x0a3f c0x0000 (---------------) + I xn--mgba3a4fra - 0x000f5248, // n0x0a40 c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x0a41 c0x0000 (---------------) + I com - 0x00041947, // n0x0a42 c0x0000 (---------------) + cupcake - 0x002349c3, // n0x0a43 c0x0000 (---------------) + I edu - 0x00275003, // n0x0a44 c0x0000 (---------------) + I gov - 0x0026f683, // n0x0a45 c0x0000 (---------------) + I int - 0x0021d8c3, // n0x0a46 c0x0000 (---------------) + I net - 0x00229a83, // n0x0a47 c0x0000 (---------------) + I org - 0x0021b583, // n0x0a48 c0x0000 (---------------) + I abr - 0x00225ac7, // n0x0a49 c0x0000 (---------------) + I abruzzo - 0x00201002, // n0x0a4a c0x0000 (---------------) + I ag - 0x0038d8c9, // n0x0a4b c0x0000 (---------------) + I agrigento - 0x002001c2, // n0x0a4c c0x0000 (---------------) + I al - 0x0039878b, // n0x0a4d c0x0000 (---------------) + I alessandria - 0x002d920a, // n0x0a4e c0x0000 (---------------) + I alto-adige - 0x002dd509, // n0x0a4f c0x0000 (---------------) + I altoadige - 0x00200b42, // n0x0a50 c0x0000 (---------------) + I an - 0x0034c506, // n0x0a51 c0x0000 (---------------) + I ancona - 0x0026d795, // n0x0a52 c0x0000 (---------------) + I andria-barletta-trani - 0x003988d5, // n0x0a53 c0x0000 (---------------) + I andria-trani-barletta - 0x0039f193, // n0x0a54 c0x0000 (---------------) + I andriabarlettatrani - 0x00398e53, // n0x0a55 c0x0000 (---------------) + I andriatranibarletta - 0x00203042, // n0x0a56 c0x0000 (---------------) + I ao - 0x00213e05, // n0x0a57 c0x0000 (---------------) + I aosta - 0x0039d64c, // n0x0a58 c0x0000 (---------------) + I aosta-valley - 0x00213e0b, // n0x0a59 c0x0000 (---------------) + I aostavalley - 0x0023b085, // n0x0a5a c0x0000 (---------------) + I aoste - 0x002136c2, // n0x0a5b c0x0000 (---------------) + I ap - 0x00229802, // n0x0a5c c0x0000 (---------------) + I aq - 0x00369a86, // n0x0a5d c0x0000 (---------------) + I aquila - 0x002011c2, // n0x0a5e c0x0000 (---------------) + I ar - 0x0027c6c6, // n0x0a5f c0x0000 (---------------) + I arezzo - 0x0038bf0d, // n0x0a60 c0x0000 (---------------) + I ascoli-piceno - 0x00347f8c, // n0x0a61 c0x0000 (---------------) + I ascolipiceno - 0x0023a8c4, // n0x0a62 c0x0000 (---------------) + I asti - 0x00200102, // n0x0a63 c0x0000 (---------------) + I at - 0x00200602, // n0x0a64 c0x0000 (---------------) + I av - 0x00217b08, // n0x0a65 c0x0000 (---------------) + I avellino - 0x00203002, // n0x0a66 c0x0000 (---------------) + I ba - 0x0024c946, // n0x0a67 c0x0000 (---------------) + I balsan - 0x003084c4, // n0x0a68 c0x0000 (---------------) + I bari - 0x0026d955, // n0x0a69 c0x0000 (---------------) + I barletta-trani-andria - 0x0039f313, // n0x0a6a c0x0000 (---------------) + I barlettatraniandria - 0x0020f5c3, // n0x0a6b c0x0000 (---------------) + I bas - 0x0032b30a, // n0x0a6c c0x0000 (---------------) + I basilicata - 0x002ffc47, // n0x0a6d c0x0000 (---------------) + I belluno - 0x0027fc89, // n0x0a6e c0x0000 (---------------) + I benevento - 0x0022d307, // n0x0a6f c0x0000 (---------------) + I bergamo - 0x00226882, // n0x0a70 c0x0000 (---------------) + I bg - 0x00200002, // n0x0a71 c0x0000 (---------------) + I bi - 0x003a18c6, // n0x0a72 c0x0000 (---------------) + I biella - 0x00208dc2, // n0x0a73 c0x0000 (---------------) + I bl - 0x000f5248, // n0x0a74 c0x0000 (---------------) + blogspot - 0x0020f402, // n0x0a75 c0x0000 (---------------) + I bn - 0x00206dc2, // n0x0a76 c0x0000 (---------------) + I bo - 0x0037f447, // n0x0a77 c0x0000 (---------------) + I bologna - 0x00210e87, // n0x0a78 c0x0000 (---------------) + I bolzano - 0x0021a805, // n0x0a79 c0x0000 (---------------) + I bozen - 0x0020bb42, // n0x0a7a c0x0000 (---------------) + I br - 0x0021bf87, // n0x0a7b c0x0000 (---------------) + I brescia - 0x0021c148, // n0x0a7c c0x0000 (---------------) + I brindisi - 0x002311c2, // n0x0a7d c0x0000 (---------------) + I bs - 0x0021d7c2, // n0x0a7e c0x0000 (---------------) + I bt - 0x0022b202, // n0x0a7f c0x0000 (---------------) + I bz - 0x00200302, // n0x0a80 c0x0000 (---------------) + I ca - 0x0030e148, // n0x0a81 c0x0000 (---------------) + I cagliari - 0x00217203, // n0x0a82 c0x0000 (---------------) + I cal - 0x0024c588, // n0x0a83 c0x0000 (---------------) + I calabria - 0x00234fcd, // n0x0a84 c0x0000 (---------------) + I caltanissetta - 0x0021fb43, // n0x0a85 c0x0000 (---------------) + I cam - 0x00306ac8, // n0x0a86 c0x0000 (---------------) + I campania - 0x0023bf4f, // n0x0a87 c0x0000 (---------------) + I campidano-medio - 0x0023c30e, // n0x0a88 c0x0000 (---------------) + I campidanomedio - 0x0032ffca, // n0x0a89 c0x0000 (---------------) + I campobasso - 0x002e5191, // n0x0a8a c0x0000 (---------------) + I carbonia-iglesias - 0x002e5610, // n0x0a8b c0x0000 (---------------) + I carboniaiglesias - 0x002ac2cd, // n0x0a8c c0x0000 (---------------) + I carrara-massa - 0x002ac60c, // n0x0a8d c0x0000 (---------------) + I carraramassa - 0x00212ec7, // n0x0a8e c0x0000 (---------------) + I caserta - 0x0032b487, // n0x0a8f c0x0000 (---------------) + I catania - 0x0033ab89, // n0x0a90 c0x0000 (---------------) + I catanzaro - 0x00226842, // n0x0a91 c0x0000 (---------------) + I cb - 0x00202ec2, // n0x0a92 c0x0000 (---------------) + I ce - 0x00250b8c, // n0x0a93 c0x0000 (---------------) + I cesena-forli - 0x00250e8b, // n0x0a94 c0x0000 (---------------) + I cesenaforli - 0x002058c2, // n0x0a95 c0x0000 (---------------) + I ch - 0x002ee146, // n0x0a96 c0x0000 (---------------) + I chieti - 0x002080c2, // n0x0a97 c0x0000 (---------------) + I ci - 0x00202502, // n0x0a98 c0x0000 (---------------) + I cl - 0x0021a142, // n0x0a99 c0x0000 (---------------) + I cn - 0x00208182, // n0x0a9a c0x0000 (---------------) + I co - 0x0022f504, // n0x0a9b c0x0000 (---------------) + I como - 0x0023b6c7, // n0x0a9c c0x0000 (---------------) + I cosenza - 0x00211e82, // n0x0a9d c0x0000 (---------------) + I cr - 0x0023e647, // n0x0a9e c0x0000 (---------------) + I cremona - 0x0023f307, // n0x0a9f c0x0000 (---------------) + I crotone - 0x0020dcc2, // n0x0aa0 c0x0000 (---------------) + I cs - 0x0021e002, // n0x0aa1 c0x0000 (---------------) + I ct - 0x00241805, // n0x0aa2 c0x0000 (---------------) + I cuneo - 0x00233fc2, // n0x0aa3 c0x0000 (---------------) + I cz - 0x0025318e, // n0x0aa4 c0x0000 (---------------) + I dell-ogliastra - 0x0025f50d, // n0x0aa5 c0x0000 (---------------) + I dellogliastra - 0x002349c3, // n0x0aa6 c0x0000 (---------------) + I edu - 0x0030310e, // n0x0aa7 c0x0000 (---------------) + I emilia-romagna - 0x0027b14d, // n0x0aa8 c0x0000 (---------------) + I emiliaromagna - 0x0035dc03, // n0x0aa9 c0x0000 (---------------) + I emr - 0x00201d82, // n0x0aaa c0x0000 (---------------) + I en - 0x00279884, // n0x0aab c0x0000 (---------------) + I enna - 0x00242e02, // n0x0aac c0x0000 (---------------) + I fc - 0x00200382, // n0x0aad c0x0000 (---------------) + I fe - 0x002d2285, // n0x0aae c0x0000 (---------------) + I fermo - 0x002dbb47, // n0x0aaf c0x0000 (---------------) + I ferrara - 0x00347402, // n0x0ab0 c0x0000 (---------------) + I fg - 0x0020e002, // n0x0ab1 c0x0000 (---------------) + I fi - 0x00247347, // n0x0ab2 c0x0000 (---------------) + I firenze - 0x0024acc8, // n0x0ab3 c0x0000 (---------------) + I florence - 0x0023d4c2, // n0x0ab4 c0x0000 (---------------) + I fm - 0x0038a1c6, // n0x0ab5 c0x0000 (---------------) + I foggia - 0x00250a0c, // n0x0ab6 c0x0000 (---------------) + I forli-cesena - 0x00250d4b, // n0x0ab7 c0x0000 (---------------) + I forlicesena - 0x00207fc2, // n0x0ab8 c0x0000 (---------------) + I fr - 0x0025774f, // n0x0ab9 c0x0000 (---------------) + I friuli-v-giulia - 0x00257b10, // n0x0aba c0x0000 (---------------) + I friuli-ve-giulia - 0x00257f0f, // n0x0abb c0x0000 (---------------) + I friuli-vegiulia - 0x002582d5, // n0x0abc c0x0000 (---------------) + I friuli-venezia-giulia - 0x00258814, // n0x0abd c0x0000 (---------------) + I friuli-veneziagiulia - 0x00258d0e, // n0x0abe c0x0000 (---------------) + I friuli-vgiulia - 0x0025908e, // n0x0abf c0x0000 (---------------) + I friuliv-giulia - 0x0025940f, // n0x0ac0 c0x0000 (---------------) + I friulive-giulia - 0x002597ce, // n0x0ac1 c0x0000 (---------------) + I friulivegiulia - 0x00259b54, // n0x0ac2 c0x0000 (---------------) + I friulivenezia-giulia - 0x0025a053, // n0x0ac3 c0x0000 (---------------) + I friuliveneziagiulia - 0x0025a50d, // n0x0ac4 c0x0000 (---------------) + I friulivgiulia - 0x0026eb09, // n0x0ac5 c0x0000 (---------------) + I frosinone - 0x00281c83, // n0x0ac6 c0x0000 (---------------) + I fvg - 0x00203982, // n0x0ac7 c0x0000 (---------------) + I ge - 0x00307a85, // n0x0ac8 c0x0000 (---------------) + I genoa - 0x00206246, // n0x0ac9 c0x0000 (---------------) + I genova - 0x00208502, // n0x0aca c0x0000 (---------------) + I go - 0x00372cc7, // n0x0acb c0x0000 (---------------) + I gorizia - 0x00275003, // n0x0acc c0x0000 (---------------) + I gov - 0x002089c2, // n0x0acd c0x0000 (---------------) + I gr - 0x00330d88, // n0x0ace c0x0000 (---------------) + I grosseto - 0x002e53d1, // n0x0acf c0x0000 (---------------) + I iglesias-carbonia - 0x002e5810, // n0x0ad0 c0x0000 (---------------) + I iglesiascarbonia - 0x00207242, // n0x0ad1 c0x0000 (---------------) + I im - 0x00234447, // n0x0ad2 c0x0000 (---------------) + I imperia - 0x00201a02, // n0x0ad3 c0x0000 (---------------) + I is - 0x00342947, // n0x0ad4 c0x0000 (---------------) + I isernia - 0x002076c2, // n0x0ad5 c0x0000 (---------------) + I kr - 0x002bc989, // n0x0ad6 c0x0000 (---------------) + I la-spezia - 0x00369a47, // n0x0ad7 c0x0000 (---------------) + I laquila - 0x00257348, // n0x0ad8 c0x0000 (---------------) + I laspezia - 0x00222846, // n0x0ad9 c0x0000 (---------------) + I latina - 0x002d4a03, // n0x0ada c0x0000 (---------------) + I laz - 0x003021c5, // n0x0adb c0x0000 (---------------) + I lazio - 0x00234c42, // n0x0adc c0x0000 (---------------) + I lc - 0x0020a5c2, // n0x0add c0x0000 (---------------) + I le - 0x003a1cc5, // n0x0ade c0x0000 (---------------) + I lecce - 0x0021db05, // n0x0adf c0x0000 (---------------) + I lecco - 0x002019c2, // n0x0ae0 c0x0000 (---------------) + I li - 0x00236943, // n0x0ae1 c0x0000 (---------------) + I lig - 0x00236947, // n0x0ae2 c0x0000 (---------------) + I liguria - 0x002112c7, // n0x0ae3 c0x0000 (---------------) + I livorno - 0x00200242, // n0x0ae4 c0x0000 (---------------) + I lo - 0x00252bc4, // n0x0ae5 c0x0000 (---------------) + I lodi - 0x00212bc3, // n0x0ae6 c0x0000 (---------------) + I lom - 0x002c1249, // n0x0ae7 c0x0000 (---------------) + I lombardia - 0x002d5348, // n0x0ae8 c0x0000 (---------------) + I lombardy - 0x00208bc2, // n0x0ae9 c0x0000 (---------------) + I lt - 0x00202542, // n0x0aea c0x0000 (---------------) + I lu - 0x002a5e47, // n0x0aeb c0x0000 (---------------) + I lucania - 0x002a9245, // n0x0aec c0x0000 (---------------) + I lucca - 0x003065c8, // n0x0aed c0x0000 (---------------) + I macerata - 0x00244f87, // n0x0aee c0x0000 (---------------) + I mantova - 0x00201183, // n0x0aef c0x0000 (---------------) + I mar - 0x0027f3c6, // n0x0af0 c0x0000 (---------------) + I marche - 0x002ac14d, // n0x0af1 c0x0000 (---------------) + I massa-carrara - 0x002ac4cc, // n0x0af2 c0x0000 (---------------) + I massacarrara - 0x0024fdc6, // n0x0af3 c0x0000 (---------------) + I matera - 0x00205482, // n0x0af4 c0x0000 (---------------) + I mb - 0x002d2e42, // n0x0af5 c0x0000 (---------------) + I mc - 0x00202302, // n0x0af6 c0x0000 (---------------) + I me - 0x0023bdcf, // n0x0af7 c0x0000 (---------------) + I medio-campidano - 0x0023c1ce, // n0x0af8 c0x0000 (---------------) + I mediocampidano - 0x00318d47, // n0x0af9 c0x0000 (---------------) + I messina - 0x0020e5c2, // n0x0afa c0x0000 (---------------) + I mi - 0x00304a85, // n0x0afb c0x0000 (---------------) + I milan - 0x00304a86, // n0x0afc c0x0000 (---------------) + I milano - 0x0021d882, // n0x0afd c0x0000 (---------------) + I mn - 0x00203ec2, // n0x0afe c0x0000 (---------------) + I mo - 0x00210246, // n0x0aff c0x0000 (---------------) + I modena - 0x00256ac3, // n0x0b00 c0x0000 (---------------) + I mol - 0x00342886, // n0x0b01 c0x0000 (---------------) + I molise - 0x002bfe45, // n0x0b02 c0x0000 (---------------) + I monza - 0x002bfe4d, // n0x0b03 c0x0000 (---------------) + I monza-brianza - 0x002c0695, // n0x0b04 c0x0000 (---------------) + I monza-e-della-brianza - 0x002c0e4c, // n0x0b05 c0x0000 (---------------) + I monzabrianza - 0x002c1a0d, // n0x0b06 c0x0000 (---------------) + I monzaebrianza - 0x002c1dd2, // n0x0b07 c0x0000 (---------------) + I monzaedellabrianza - 0x00202482, // n0x0b08 c0x0000 (---------------) + I ms - 0x00235702, // n0x0b09 c0x0000 (---------------) + I mt - 0x002005c2, // n0x0b0a c0x0000 (---------------) + I na - 0x0039c386, // n0x0b0b c0x0000 (---------------) + I naples - 0x00298806, // n0x0b0c c0x0000 (---------------) + I napoli - 0x00200d82, // n0x0b0d c0x0000 (---------------) + I no - 0x002062c6, // n0x0b0e c0x0000 (---------------) + I novara - 0x00209702, // n0x0b0f c0x0000 (---------------) + I nu - 0x00395345, // n0x0b10 c0x0000 (---------------) + I nuoro - 0x00201602, // n0x0b11 c0x0000 (---------------) + I og - 0x002532c9, // n0x0b12 c0x0000 (---------------) + I ogliastra - 0x0026794c, // n0x0b13 c0x0000 (---------------) + I olbia-tempio - 0x00267c8b, // n0x0b14 c0x0000 (---------------) + I olbiatempio - 0x00200282, // n0x0b15 c0x0000 (---------------) + I or - 0x0024b108, // n0x0b16 c0x0000 (---------------) + I oristano - 0x00200902, // n0x0b17 c0x0000 (---------------) + I ot - 0x0020ec42, // n0x0b18 c0x0000 (---------------) + I pa - 0x00213bc6, // n0x0b19 c0x0000 (---------------) + I padova - 0x0035e585, // n0x0b1a c0x0000 (---------------) + I padua - 0x0020ec47, // n0x0b1b c0x0000 (---------------) + I palermo - 0x0026e805, // n0x0b1c c0x0000 (---------------) + I parma - 0x002ca345, // n0x0b1d c0x0000 (---------------) + I pavia - 0x002419c2, // n0x0b1e c0x0000 (---------------) + I pc - 0x00332d42, // n0x0b1f c0x0000 (---------------) + I pd - 0x00209a02, // n0x0b20 c0x0000 (---------------) + I pe - 0x00254fc7, // n0x0b21 c0x0000 (---------------) + I perugia - 0x0022700d, // n0x0b22 c0x0000 (---------------) + I pesaro-urbino - 0x0022738c, // n0x0b23 c0x0000 (---------------) + I pesarourbino - 0x00265d47, // n0x0b24 c0x0000 (---------------) + I pescara - 0x00308882, // n0x0b25 c0x0000 (---------------) + I pg - 0x00209102, // n0x0b26 c0x0000 (---------------) + I pi - 0x00338508, // n0x0b27 c0x0000 (---------------) + I piacenza - 0x00251248, // n0x0b28 c0x0000 (---------------) + I piedmont - 0x002d1148, // n0x0b29 c0x0000 (---------------) + I piemonte - 0x002d8cc4, // n0x0b2a c0x0000 (---------------) + I pisa - 0x002ee507, // n0x0b2b c0x0000 (---------------) + I pistoia - 0x002d7083, // n0x0b2c c0x0000 (---------------) + I pmn - 0x002a98c2, // n0x0b2d c0x0000 (---------------) + I pn - 0x00200c42, // n0x0b2e c0x0000 (---------------) + I po - 0x002d9489, // n0x0b2f c0x0000 (---------------) + I pordenone - 0x00245b87, // n0x0b30 c0x0000 (---------------) + I potenza - 0x00204382, // n0x0b31 c0x0000 (---------------) + I pr - 0x00269885, // n0x0b32 c0x0000 (---------------) + I prato - 0x002835c2, // n0x0b33 c0x0000 (---------------) + I pt - 0x00230482, // n0x0b34 c0x0000 (---------------) + I pu - 0x002711c3, // n0x0b35 c0x0000 (---------------) + I pug - 0x002711c6, // n0x0b36 c0x0000 (---------------) + I puglia - 0x002def02, // n0x0b37 c0x0000 (---------------) + I pv - 0x002df302, // n0x0b38 c0x0000 (---------------) + I pz - 0x00200482, // n0x0b39 c0x0000 (---------------) + I ra - 0x002bd286, // n0x0b3a c0x0000 (---------------) + I ragusa - 0x002a7a87, // n0x0b3b c0x0000 (---------------) + I ravenna - 0x002002c2, // n0x0b3c c0x0000 (---------------) + I rc - 0x00204d82, // n0x0b3d c0x0000 (---------------) + I re - 0x0034cecf, // n0x0b3e c0x0000 (---------------) + I reggio-calabria - 0x00302f4d, // n0x0b3f c0x0000 (---------------) + I reggio-emilia - 0x0024c40e, // n0x0b40 c0x0000 (---------------) + I reggiocalabria - 0x0027afcc, // n0x0b41 c0x0000 (---------------) + I reggioemilia - 0x00205542, // n0x0b42 c0x0000 (---------------) + I rg - 0x00201702, // n0x0b43 c0x0000 (---------------) + I ri - 0x00222685, // n0x0b44 c0x0000 (---------------) + I rieti - 0x002f8086, // n0x0b45 c0x0000 (---------------) + I rimini - 0x0020ed42, // n0x0b46 c0x0000 (---------------) + I rm - 0x00201902, // n0x0b47 c0x0000 (---------------) + I rn - 0x00200cc2, // n0x0b48 c0x0000 (---------------) + I ro - 0x00227784, // n0x0b49 c0x0000 (---------------) + I roma - 0x002dc984, // n0x0b4a c0x0000 (---------------) + I rome - 0x0032edc6, // n0x0b4b c0x0000 (---------------) + I rovigo - 0x00202402, // n0x0b4c c0x0000 (---------------) + I sa - 0x0027ba07, // n0x0b4d c0x0000 (---------------) + I salerno - 0x00220b83, // n0x0b4e c0x0000 (---------------) + I sar - 0x00223288, // n0x0b4f c0x0000 (---------------) + I sardegna - 0x00223c08, // n0x0b50 c0x0000 (---------------) + I sardinia - 0x00330387, // n0x0b51 c0x0000 (---------------) + I sassari - 0x0039c286, // n0x0b52 c0x0000 (---------------) + I savona - 0x0020ca82, // n0x0b53 c0x0000 (---------------) + I si - 0x00239f03, // n0x0b54 c0x0000 (---------------) + I sic - 0x002971c7, // n0x0b55 c0x0000 (---------------) + I sicilia - 0x0024bf86, // n0x0b56 c0x0000 (---------------) + I sicily - 0x002b8bc5, // n0x0b57 c0x0000 (---------------) + I siena - 0x003405c8, // n0x0b58 c0x0000 (---------------) + I siracusa - 0x00204c82, // n0x0b59 c0x0000 (---------------) + I so - 0x00310c07, // n0x0b5a c0x0000 (---------------) + I sondrio - 0x0021ff02, // n0x0b5b c0x0000 (---------------) + I sp - 0x00336d82, // n0x0b5c c0x0000 (---------------) + I sr - 0x00206982, // n0x0b5d c0x0000 (---------------) + I ss - 0x002cb789, // n0x0b5e c0x0000 (---------------) + I suedtirol - 0x0020ee82, // n0x0b5f c0x0000 (---------------) + I sv - 0x00201242, // n0x0b60 c0x0000 (---------------) + I ta - 0x00265fc3, // n0x0b61 c0x0000 (---------------) + I taa - 0x00324807, // n0x0b62 c0x0000 (---------------) + I taranto - 0x002012c2, // n0x0b63 c0x0000 (---------------) + I te - 0x00267acc, // n0x0b64 c0x0000 (---------------) + I tempio-olbia - 0x00267dcb, // n0x0b65 c0x0000 (---------------) + I tempioolbia - 0x0024fe46, // n0x0b66 c0x0000 (---------------) + I teramo - 0x0031b205, // n0x0b67 c0x0000 (---------------) + I terni - 0x00200942, // n0x0b68 c0x0000 (---------------) + I tn - 0x00207442, // n0x0b69 c0x0000 (---------------) + I to - 0x002abe46, // n0x0b6a c0x0000 (---------------) + I torino - 0x00242a83, // n0x0b6b c0x0000 (---------------) + I tos - 0x00321687, // n0x0b6c c0x0000 (---------------) + I toscana - 0x00214582, // n0x0b6d c0x0000 (---------------) + I tp - 0x00203642, // n0x0b6e c0x0000 (---------------) + I tr - 0x0026d615, // n0x0b6f c0x0000 (---------------) + I trani-andria-barletta - 0x00398a95, // n0x0b70 c0x0000 (---------------) + I trani-barletta-andria - 0x0039f053, // n0x0b71 c0x0000 (---------------) + I traniandriabarletta - 0x00398fd3, // n0x0b72 c0x0000 (---------------) + I tranibarlettaandria - 0x0028b787, // n0x0b73 c0x0000 (---------------) + I trapani - 0x002b52c8, // n0x0b74 c0x0000 (---------------) + I trentino - 0x00344190, // n0x0b75 c0x0000 (---------------) + I trentino-a-adige - 0x002e3c0f, // n0x0b76 c0x0000 (---------------) + I trentino-aadige - 0x00340f53, // n0x0b77 c0x0000 (---------------) + I trentino-alto-adige - 0x0034a792, // n0x0b78 c0x0000 (---------------) + I trentino-altoadige - 0x002ce090, // n0x0b79 c0x0000 (---------------) + I trentino-s-tirol - 0x002f938f, // n0x0b7a c0x0000 (---------------) + I trentino-stirol - 0x002b52d2, // n0x0b7b c0x0000 (---------------) + I trentino-sud-tirol - 0x002bfa11, // n0x0b7c c0x0000 (---------------) + I trentino-sudtirol - 0x002c8793, // n0x0b7d c0x0000 (---------------) + I trentino-sued-tirol - 0x002cb552, // n0x0b7e c0x0000 (---------------) + I trentino-suedtirol - 0x002cc38f, // n0x0b7f c0x0000 (---------------) + I trentinoa-adige - 0x002d0b4e, // n0x0b80 c0x0000 (---------------) + I trentinoaadige - 0x002d9012, // n0x0b81 c0x0000 (---------------) + I trentinoalto-adige - 0x002dd311, // n0x0b82 c0x0000 (---------------) + I trentinoaltoadige - 0x002ddb0f, // n0x0b83 c0x0000 (---------------) + I trentinos-tirol - 0x002def8e, // n0x0b84 c0x0000 (---------------) + I trentinostirol - 0x002df691, // n0x0b85 c0x0000 (---------------) + I trentinosud-tirol - 0x00315210, // n0x0b86 c0x0000 (---------------) + I trentinosudtirol - 0x00353c12, // n0x0b87 c0x0000 (---------------) + I trentinosued-tirol - 0x002e1b11, // n0x0b88 c0x0000 (---------------) + I trentinosuedtirol - 0x002f0046, // n0x0b89 c0x0000 (---------------) + I trento - 0x002ef307, // n0x0b8a c0x0000 (---------------) + I treviso - 0x003657c7, // n0x0b8b c0x0000 (---------------) + I trieste - 0x002023c2, // n0x0b8c c0x0000 (---------------) + I ts - 0x002770c5, // n0x0b8d c0x0000 (---------------) + I turin - 0x002e7f47, // n0x0b8e c0x0000 (---------------) + I tuscany - 0x00206fc2, // n0x0b8f c0x0000 (---------------) + I tv - 0x00204fc2, // n0x0b90 c0x0000 (---------------) + I ud - 0x00226bc5, // n0x0b91 c0x0000 (---------------) + I udine - 0x0021cac3, // n0x0b92 c0x0000 (---------------) + I umb - 0x00250886, // n0x0b93 c0x0000 (---------------) + I umbria - 0x002271cd, // n0x0b94 c0x0000 (---------------) + I urbino-pesaro - 0x0022750c, // n0x0b95 c0x0000 (---------------) + I urbinopesaro - 0x002000c2, // n0x0b96 c0x0000 (---------------) + I va - 0x0039d4cb, // n0x0b97 c0x0000 (---------------) + I val-d-aosta - 0x00213cca, // n0x0b98 c0x0000 (---------------) + I val-daosta - 0x00317a8a, // n0x0b99 c0x0000 (---------------) + I vald-aosta - 0x002ab089, // n0x0b9a c0x0000 (---------------) + I valdaosta - 0x002d7f4b, // n0x0b9b c0x0000 (---------------) + I valle-aosta - 0x002e864d, // n0x0b9c c0x0000 (---------------) + I valle-d-aosta - 0x002450cc, // n0x0b9d c0x0000 (---------------) + I valle-daosta - 0x00217d8a, // n0x0b9e c0x0000 (---------------) + I valleaosta - 0x00220d0c, // n0x0b9f c0x0000 (---------------) + I valled-aosta - 0x00338f4b, // n0x0ba0 c0x0000 (---------------) + I valledaosta - 0x00376a8c, // n0x0ba1 c0x0000 (---------------) + I vallee-aoste - 0x0023af0b, // n0x0ba2 c0x0000 (---------------) + I valleeaoste - 0x002678c3, // n0x0ba3 c0x0000 (---------------) + I vao - 0x0026e546, // n0x0ba4 c0x0000 (---------------) + I varese - 0x002d68c2, // n0x0ba5 c0x0000 (---------------) + I vb - 0x002dfb02, // n0x0ba6 c0x0000 (---------------) + I vc - 0x00211203, // n0x0ba7 c0x0000 (---------------) + I vda - 0x00202202, // n0x0ba8 c0x0000 (---------------) + I ve - 0x00203203, // n0x0ba9 c0x0000 (---------------) + I ven - 0x00366906, // n0x0baa c0x0000 (---------------) + I veneto - 0x00258487, // n0x0bab c0x0000 (---------------) + I venezia - 0x0023ce06, // n0x0bac c0x0000 (---------------) + I venice - 0x0022b008, // n0x0bad c0x0000 (---------------) + I verbania - 0x002cd988, // n0x0bae c0x0000 (---------------) + I vercelli - 0x00207006, // n0x0baf c0x0000 (---------------) + I verona - 0x00200642, // n0x0bb0 c0x0000 (---------------) + I vi - 0x002ea0cd, // n0x0bb1 c0x0000 (---------------) + I vibo-valentia - 0x002ea40c, // n0x0bb2 c0x0000 (---------------) + I vibovalentia - 0x002fa807, // n0x0bb3 c0x0000 (---------------) + I vicenza - 0x002f06c7, // n0x0bb4 c0x0000 (---------------) + I viterbo - 0x00208342, // n0x0bb5 c0x0000 (---------------) + I vr - 0x00238c02, // n0x0bb6 c0x0000 (---------------) + I vs - 0x00255c42, // n0x0bb7 c0x0000 (---------------) + I vt - 0x0025c902, // n0x0bb8 c0x0000 (---------------) + I vv - 0x00208182, // n0x0bb9 c0x0000 (---------------) + I co - 0x0021d8c3, // n0x0bba c0x0000 (---------------) + I net - 0x00229a83, // n0x0bbb c0x0000 (---------------) + I org - 0x0022edc3, // n0x0bbc c0x0000 (---------------) + I com - 0x002349c3, // n0x0bbd c0x0000 (---------------) + I edu - 0x00275003, // n0x0bbe c0x0000 (---------------) + I gov - 0x00215b43, // n0x0bbf c0x0000 (---------------) + I mil - 0x0027ca84, // n0x0bc0 c0x0000 (---------------) + I name - 0x0021d8c3, // n0x0bc1 c0x0000 (---------------) + I net - 0x00229a83, // n0x0bc2 c0x0000 (---------------) + I org - 0x00215d43, // n0x0bc3 c0x0000 (---------------) + I sch - 0x00205882, // n0x0bc4 c0x0000 (---------------) + I ac - 0x00203d82, // n0x0bc5 c0x0000 (---------------) + I ad - 0x1fa86b45, // n0x0bc6 c0x007e (n0x0c33-n0x0c67) + I aichi - 0x1fe1e685, // n0x0bc7 c0x007f (n0x0c67-n0x0c83) + I akita - 0x2030adc6, // n0x0bc8 c0x0080 (n0x0c83-n0x0c99) + I aomori - 0x000f5248, // n0x0bc9 c0x0000 (---------------) + blogspot - 0x206a7685, // n0x0bca c0x0081 (n0x0c99-n0x0cd3) + I chiba - 0x00208182, // n0x0bcb c0x0000 (---------------) + I co - 0x002003c2, // n0x0bcc c0x0000 (---------------) + I ed - 0x20b1ac45, // n0x0bcd c0x0082 (n0x0cd3-n0x0ce9) + I ehime - 0x20e75605, // n0x0bce c0x0083 (n0x0ce9-n0x0cf8) + I fukui - 0x21276447, // n0x0bcf c0x0084 (n0x0cf8-n0x0d37) + I fukuoka - 0x2167f209, // n0x0bd0 c0x0085 (n0x0d37-n0x0d6a) + I fukushima - 0x21aa4d04, // n0x0bd1 c0x0086 (n0x0d6a-n0x0d90) + I gifu - 0x00208502, // n0x0bd2 c0x0000 (---------------) + I go - 0x002089c2, // n0x0bd3 c0x0000 (---------------) + I gr - 0x21f47445, // n0x0bd4 c0x0087 (n0x0d90-n0x0db4) + I gunma - 0x2220cc49, // n0x0bd5 c0x0088 (n0x0db4-n0x0dcd) + I hiroshima - 0x22768608, // n0x0bd6 c0x0089 (n0x0dcd-n0x0e5b) + I hokkaido - 0x22aa35c5, // n0x0bd7 c0x008a (n0x0e5b-n0x0e89) + I hyogo - 0x22ebebc7, // n0x0bd8 c0x008b (n0x0e89-n0x0ebc) + I ibaraki - 0x2321af48, // n0x0bd9 c0x008c (n0x0ebc-n0x0ecf) + I ishikawa - 0x236d2505, // n0x0bda c0x008d (n0x0ecf-n0x0ef1) + I iwate - 0x23a00fc6, // n0x0bdb c0x008e (n0x0ef1-n0x0f00) + I kagawa - 0x23ec3e09, // n0x0bdc c0x008f (n0x0f00-n0x0f14) + I kagoshima - 0x242c8d08, // n0x0bdd c0x0090 (n0x0f14-n0x0f32) + I kanagawa - 0x246b3b88, // n0x0bde c0x0091 (n0x0f32-n0x0f33)* o I kawasaki - 0x24a93eca, // n0x0bdf c0x0092 (n0x0f33-n0x0f34)* o I kitakyushu - 0x24e437c4, // n0x0be0 c0x0093 (n0x0f34-n0x0f35)* o I kobe - 0x252c8f85, // n0x0be1 c0x0094 (n0x0f35-n0x0f54) + I kochi - 0x256b0408, // n0x0be2 c0x0095 (n0x0f54-n0x0f6e) + I kumamoto - 0x25ab8805, // n0x0be3 c0x0096 (n0x0f6e-n0x0f8d) + I kyoto - 0x00217282, // n0x0be4 c0x0000 (---------------) + I lg - 0x25e18d43, // n0x0be5 c0x0097 (n0x0f8d-n0x0fab) + I mie - 0x2629a146, // n0x0be6 c0x0098 (n0x0fab-n0x0fcc) + I miyagi - 0x2665d308, // n0x0be7 c0x0099 (n0x0fcc-n0x0fe7) + I miyazaki - 0x26b0f1c6, // n0x0be8 c0x009a (n0x0fe7-n0x1032) + I nagano - 0x26ecd608, // n0x0be9 c0x009b (n0x1032-n0x1048) + I nagasaki - 0x2722d886, // n0x0bea c0x009c (n0x1048-n0x1049)* o I nagoya - 0x276b8c84, // n0x0beb c0x009d (n0x1049-n0x106f) + I nara - 0x00203282, // n0x0bec c0x0000 (---------------) + I ne - 0x27b6b607, // n0x0bed c0x009e (n0x106f-n0x1091) + I niigata - 0x27e9ed44, // n0x0bee c0x009f (n0x1091-n0x10a4) + I oita - 0x28271747, // n0x0bef c0x00a0 (n0x10a4-n0x10be) + I okayama - 0x28790f07, // n0x0bf0 c0x00a1 (n0x10be-n0x10e8) + I okinawa - 0x00200282, // n0x0bf1 c0x0000 (---------------) + I or - 0x28a91e85, // n0x0bf2 c0x00a2 (n0x10e8-n0x111a) + I osaka - 0x28f5a904, // n0x0bf3 c0x00a3 (n0x111a-n0x1134) + I saga - 0x292ecc47, // n0x0bf4 c0x00a4 (n0x1134-n0x1179) + I saitama - 0x296204c7, // n0x0bf5 c0x00a5 (n0x1179-n0x117a)* o I sapporo - 0x29a796c6, // n0x0bf6 c0x00a6 (n0x117a-n0x117b)* o I sendai - 0x29e6ff45, // n0x0bf7 c0x00a7 (n0x117b-n0x1192) + I shiga - 0x2a28ab47, // n0x0bf8 c0x00a8 (n0x1192-n0x11a9) + I shimane - 0x2a6f2e48, // n0x0bf9 c0x00a9 (n0x11a9-n0x11cd) + I shizuoka - 0x2ab42447, // n0x0bfa c0x00aa (n0x11cd-n0x11ec) + I tochigi - 0x2ae85d89, // n0x0bfb c0x00ab (n0x11ec-n0x11fd) + I tokushima - 0x2b2ef045, // n0x0bfc c0x00ac (n0x11fd-n0x1236) + I tokyo - 0x2b6f0147, // n0x0bfd c0x00ad (n0x1236-n0x1243) + I tottori - 0x2ba86046, // n0x0bfe c0x00ae (n0x1243-n0x125b) + I toyama - 0x2bf3da48, // n0x0bff c0x00af (n0x125b-n0x1278) + I wakayama - 0x0034efcd, // n0x0c00 c0x0000 (---------------) + I xn--0trq7p7nn - 0x00241b49, // n0x0c01 c0x0000 (---------------) + I xn--1ctwo - 0x0024b90b, // n0x0c02 c0x0000 (---------------) + I xn--1lqs03n - 0x0025520b, // n0x0c03 c0x0000 (---------------) + I xn--1lqs71d - 0x0026bb8b, // n0x0c04 c0x0000 (---------------) + I xn--2m4a15e - 0x0029c70b, // n0x0c05 c0x0000 (---------------) + I xn--32vp30h - 0x002f898b, // n0x0c06 c0x0000 (---------------) + I xn--4it168d - 0x002f8c4b, // n0x0c07 c0x0000 (---------------) + I xn--4it797k - 0x002f9749, // n0x0c08 c0x0000 (---------------) + I xn--4pvxs - 0x002faf0b, // n0x0c09 c0x0000 (---------------) + I xn--5js045d - 0x002fb1cb, // n0x0c0a c0x0000 (---------------) + I xn--5rtp49c - 0x002fb68b, // n0x0c0b c0x0000 (---------------) + I xn--5rtq34k - 0x002fc18a, // n0x0c0c c0x0000 (---------------) + I xn--6btw5a - 0x002fc6ca, // n0x0c0d c0x0000 (---------------) + I xn--6orx2r - 0x002fcccc, // n0x0c0e c0x0000 (---------------) + I xn--7t0a264c - 0x003042cb, // n0x0c0f c0x0000 (---------------) + I xn--8ltr62k - 0x00304c0a, // n0x0c10 c0x0000 (---------------) + I xn--8pvr4u - 0x0031874a, // n0x0c11 c0x0000 (---------------) + I xn--c3s14m - 0x0032550e, // n0x0c12 c0x0000 (---------------) + I xn--d5qv7z876c - 0x0032640e, // n0x0c13 c0x0000 (---------------) + I xn--djrs72d6uy - 0x0032678a, // n0x0c14 c0x0000 (---------------) + I xn--djty4k - 0x00327d0a, // n0x0c15 c0x0000 (---------------) + I xn--efvn9s - 0x003289cb, // n0x0c16 c0x0000 (---------------) + I xn--ehqz56n - 0x00328c8b, // n0x0c17 c0x0000 (---------------) + I xn--elqq16h - 0x0032978b, // n0x0c18 c0x0000 (---------------) + I xn--f6qx53a - 0x0034458b, // n0x0c19 c0x0000 (---------------) + I xn--k7yn95e - 0x00344b8a, // n0x0c1a c0x0000 (---------------) + I xn--kbrq7o - 0x0034584b, // n0x0c1b c0x0000 (---------------) + I xn--klt787d - 0x00345b0a, // n0x0c1c c0x0000 (---------------) + I xn--kltp7d - 0x00345d8a, // n0x0c1d c0x0000 (---------------) + I xn--kltx9a - 0x0034600a, // n0x0c1e c0x0000 (---------------) + I xn--klty5x - 0x0036628b, // n0x0c1f c0x0000 (---------------) + I xn--mkru45i - 0x0036e10b, // n0x0c20 c0x0000 (---------------) + I xn--nit225k - 0x0036fb8e, // n0x0c21 c0x0000 (---------------) + I xn--ntso0iqx3a - 0x0036ff0b, // n0x0c22 c0x0000 (---------------) + I xn--ntsq17g - 0x0037604b, // n0x0c23 c0x0000 (---------------) + I xn--pssu33l - 0x0037748b, // n0x0c24 c0x0000 (---------------) + I xn--qqqt11m - 0x0037c34a, // n0x0c25 c0x0000 (---------------) + I xn--rht27z - 0x0037c5c9, // n0x0c26 c0x0000 (---------------) + I xn--rht3d - 0x0037c80a, // n0x0c27 c0x0000 (---------------) + I xn--rht61e - 0x0037de8a, // n0x0c28 c0x0000 (---------------) + I xn--rny31h - 0x0038e5cb, // n0x0c29 c0x0000 (---------------) + I xn--tor131o - 0x0039010b, // n0x0c2a c0x0000 (---------------) + I xn--uist22h - 0x0039084a, // n0x0c2b c0x0000 (---------------) + I xn--uisz3g - 0x00391d0b, // n0x0c2c c0x0000 (---------------) + I xn--uuwu58a - 0x00397f0b, // n0x0c2d c0x0000 (---------------) + I xn--vgu402c - 0x003a1e0b, // n0x0c2e c0x0000 (---------------) + I xn--zbx025d - 0x2c277b48, // n0x0c2f c0x00b0 (n0x1278-n0x129a) + I yamagata - 0x2c6806c9, // n0x0c30 c0x00b1 (n0x129a-n0x12aa) + I yamaguchi - 0x2ca98d49, // n0x0c31 c0x00b2 (n0x12aa-n0x12c6) + I yamanashi - 0x2ce4d248, // n0x0c32 c0x00b3 (n0x12c6-n0x12c7)* o I yokohama - 0x0032eb45, // n0x0c33 c0x0000 (---------------) + I aisai - 0x00201383, // n0x0c34 c0x0000 (---------------) + I ama - 0x0020a0c4, // n0x0c35 c0x0000 (---------------) + I anjo - 0x002bb7c5, // n0x0c36 c0x0000 (---------------) + I asuke - 0x002a4a46, // n0x0c37 c0x0000 (---------------) + I chiryu - 0x002a6585, // n0x0c38 c0x0000 (---------------) + I chita - 0x0027ecc4, // n0x0c39 c0x0000 (---------------) + I fuso - 0x00372bc8, // n0x0c3a c0x0000 (---------------) + I gamagori - 0x0024e385, // n0x0c3b c0x0000 (---------------) + I handa - 0x00288284, // n0x0c3c c0x0000 (---------------) + I hazu - 0x002c0347, // n0x0c3d c0x0000 (---------------) + I hekinan - 0x0029480a, // n0x0c3e c0x0000 (---------------) + I higashiura - 0x002c394a, // n0x0c3f c0x0000 (---------------) + I ichinomiya - 0x003281c7, // n0x0c40 c0x0000 (---------------) + I inazawa - 0x0039dc07, // n0x0c41 c0x0000 (---------------) + I inuyama - 0x002e6c07, // n0x0c42 c0x0000 (---------------) + I isshiki - 0x0035a5c7, // n0x0c43 c0x0000 (---------------) + I iwakura - 0x002c5e45, // n0x0c44 c0x0000 (---------------) + I kanie - 0x002568c6, // n0x0c45 c0x0000 (---------------) + I kariya - 0x00300307, // n0x0c46 c0x0000 (---------------) + I kasugai - 0x00249e04, // n0x0c47 c0x0000 (---------------) + I kira - 0x002f2b86, // n0x0c48 c0x0000 (---------------) + I kiyosu - 0x00287986, // n0x0c49 c0x0000 (---------------) + I komaki - 0x0020d205, // n0x0c4a c0x0000 (---------------) + I konan - 0x00224c84, // n0x0c4b c0x0000 (---------------) + I kota - 0x0028d806, // n0x0c4c c0x0000 (---------------) + I mihama - 0x00293a07, // n0x0c4d c0x0000 (---------------) + I miyoshi - 0x0022aa06, // n0x0c4e c0x0000 (---------------) + I nishio - 0x002a94c7, // n0x0c4f c0x0000 (---------------) + I nisshin - 0x00227f83, // n0x0c50 c0x0000 (---------------) + I obu - 0x0024a8c6, // n0x0c51 c0x0000 (---------------) + I oguchi - 0x00232745, // n0x0c52 c0x0000 (---------------) + I oharu - 0x00276547, // n0x0c53 c0x0000 (---------------) + I okazaki - 0x002b8f4a, // n0x0c54 c0x0000 (---------------) + I owariasahi - 0x002a8f44, // n0x0c55 c0x0000 (---------------) + I seto - 0x00219388, // n0x0c56 c0x0000 (---------------) + I shikatsu - 0x0037ee49, // n0x0c57 c0x0000 (---------------) + I shinshiro - 0x002a8987, // n0x0c58 c0x0000 (---------------) + I shitara - 0x002e1486, // n0x0c59 c0x0000 (---------------) + I tahara - 0x0035a388, // n0x0c5a c0x0000 (---------------) + I takahama - 0x00307e09, // n0x0c5b c0x0000 (---------------) + I tobishima - 0x0036b804, // n0x0c5c c0x0000 (---------------) + I toei - 0x002f6a44, // n0x0c5d c0x0000 (---------------) + I togo - 0x002f1405, // n0x0c5e c0x0000 (---------------) + I tokai - 0x002b9648, // n0x0c5f c0x0000 (---------------) + I tokoname - 0x002ba487, // n0x0c60 c0x0000 (---------------) + I toyoake - 0x0027f8c9, // n0x0c61 c0x0000 (---------------) + I toyohashi - 0x00241608, // n0x0c62 c0x0000 (---------------) + I toyokawa - 0x00364dc6, // n0x0c63 c0x0000 (---------------) + I toyone - 0x00254b06, // n0x0c64 c0x0000 (---------------) + I toyota - 0x0028e448, // n0x0c65 c0x0000 (---------------) + I tsushima - 0x003693c6, // n0x0c66 c0x0000 (---------------) + I yatomi - 0x0021e685, // n0x0c67 c0x0000 (---------------) + I akita - 0x00279786, // n0x0c68 c0x0000 (---------------) + I daisen - 0x00271d08, // n0x0c69 c0x0000 (---------------) + I fujisato - 0x00234dc6, // n0x0c6a c0x0000 (---------------) + I gojome - 0x00248ccb, // n0x0c6b c0x0000 (---------------) + I hachirogata - 0x00283106, // n0x0c6c c0x0000 (---------------) + I happou - 0x0029084d, // n0x0c6d c0x0000 (---------------) + I higashinaruse - 0x00201785, // n0x0c6e c0x0000 (---------------) + I honjo - 0x0029ec06, // n0x0c6f c0x0000 (---------------) + I honjyo - 0x0021b005, // n0x0c70 c0x0000 (---------------) + I ikawa - 0x00286509, // n0x0c71 c0x0000 (---------------) + I kamikoani - 0x002e3107, // n0x0c72 c0x0000 (---------------) + I kamioka - 0x0034e208, // n0x0c73 c0x0000 (---------------) + I katagami - 0x0025f246, // n0x0c74 c0x0000 (---------------) + I kazuno - 0x0028f209, // n0x0c75 c0x0000 (---------------) + I kitaakita - 0x002dc706, // n0x0c76 c0x0000 (---------------) + I kosaka - 0x002b8ec5, // n0x0c77 c0x0000 (---------------) + I kyowa - 0x002964c6, // n0x0c78 c0x0000 (---------------) + I misato - 0x0029dec6, // n0x0c79 c0x0000 (---------------) + I mitane - 0x002c4ac9, // n0x0c7a c0x0000 (---------------) + I moriyoshi - 0x0034ea46, // n0x0c7b c0x0000 (---------------) + I nikaho - 0x0024a547, // n0x0c7c c0x0000 (---------------) + I noshiro - 0x003286c5, // n0x0c7d c0x0000 (---------------) + I odate - 0x00203083, // n0x0c7e c0x0000 (---------------) + I oga - 0x00222a85, // n0x0c7f c0x0000 (---------------) + I ogata - 0x0029cdc7, // n0x0c80 c0x0000 (---------------) + I semboku - 0x00309fc6, // n0x0c81 c0x0000 (---------------) + I yokote - 0x00201689, // n0x0c82 c0x0000 (---------------) + I yurihonjo - 0x0030adc6, // n0x0c83 c0x0000 (---------------) + I aomori - 0x00248686, // n0x0c84 c0x0000 (---------------) + I gonohe - 0x00205849, // n0x0c85 c0x0000 (---------------) + I hachinohe - 0x00279189, // n0x0c86 c0x0000 (---------------) + I hashikami - 0x00296c47, // n0x0c87 c0x0000 (---------------) + I hiranai - 0x00324188, // n0x0c88 c0x0000 (---------------) + I hirosaki - 0x00261849, // n0x0c89 c0x0000 (---------------) + I itayanagi - 0x00276d48, // n0x0c8a c0x0000 (---------------) + I kuroishi - 0x0036d986, // n0x0c8b c0x0000 (---------------) + I misawa - 0x002ccb45, // n0x0c8c c0x0000 (---------------) + I mutsu - 0x0023a58a, // n0x0c8d c0x0000 (---------------) + I nakadomari - 0x00248706, // n0x0c8e c0x0000 (---------------) + I noheji - 0x00300ac6, // n0x0c8f c0x0000 (---------------) + I oirase - 0x0029a305, // n0x0c90 c0x0000 (---------------) + I owani - 0x002a5048, // n0x0c91 c0x0000 (---------------) + I rokunohe - 0x0020c887, // n0x0c92 c0x0000 (---------------) + I sannohe - 0x0023160a, // n0x0c93 c0x0000 (---------------) + I shichinohe - 0x00248586, // n0x0c94 c0x0000 (---------------) + I shingo - 0x00339185, // n0x0c95 c0x0000 (---------------) + I takko - 0x00256286, // n0x0c96 c0x0000 (---------------) + I towada - 0x002880c7, // n0x0c97 c0x0000 (---------------) + I tsugaru - 0x002e1347, // n0x0c98 c0x0000 (---------------) + I tsuruta - 0x00380305, // n0x0c99 c0x0000 (---------------) + I abiko - 0x002b9085, // n0x0c9a c0x0000 (---------------) + I asahi - 0x002dfb46, // n0x0c9b c0x0000 (---------------) + I chonan - 0x002f6146, // n0x0c9c c0x0000 (---------------) + I chosei - 0x003a2886, // n0x0c9d c0x0000 (---------------) + I choshi - 0x00359404, // n0x0c9e c0x0000 (---------------) + I chuo - 0x00278249, // n0x0c9f c0x0000 (---------------) + I funabashi - 0x00281586, // n0x0ca0 c0x0000 (---------------) + I futtsu - 0x00279d4a, // n0x0ca1 c0x0000 (---------------) + I hanamigawa - 0x00286b88, // n0x0ca2 c0x0000 (---------------) + I ichihara - 0x003335c8, // n0x0ca3 c0x0000 (---------------) + I ichikawa - 0x002c394a, // n0x0ca4 c0x0000 (---------------) + I ichinomiya - 0x0020c145, // n0x0ca5 c0x0000 (---------------) + I inzai - 0x00293945, // n0x0ca6 c0x0000 (---------------) + I isumi - 0x00264508, // n0x0ca7 c0x0000 (---------------) + I kamagaya - 0x002c4d48, // n0x0ca8 c0x0000 (---------------) + I kamogawa - 0x00310787, // n0x0ca9 c0x0000 (---------------) + I kashiwa - 0x0028bb06, // n0x0caa c0x0000 (---------------) + I katori - 0x00314048, // n0x0cab c0x0000 (---------------) + I katsuura - 0x00229407, // n0x0cac c0x0000 (---------------) + I kimitsu - 0x00277448, // n0x0cad c0x0000 (---------------) + I kisarazu - 0x00368b46, // n0x0cae c0x0000 (---------------) + I kozaki - 0x0027a308, // n0x0caf c0x0000 (---------------) + I kujukuri - 0x0028a086, // n0x0cb0 c0x0000 (---------------) + I kyonan - 0x00237c47, // n0x0cb1 c0x0000 (---------------) + I matsudo - 0x0028fc46, // n0x0cb2 c0x0000 (---------------) + I midori - 0x0028d806, // n0x0cb3 c0x0000 (---------------) + I mihama - 0x0033078a, // n0x0cb4 c0x0000 (---------------) + I minamiboso - 0x0022f586, // n0x0cb5 c0x0000 (---------------) + I mobara - 0x002ccb49, // n0x0cb6 c0x0000 (---------------) + I mutsuzawa - 0x002a7986, // n0x0cb7 c0x0000 (---------------) + I nagara - 0x002a7bca, // n0x0cb8 c0x0000 (---------------) + I nagareyama - 0x002b8c89, // n0x0cb9 c0x0000 (---------------) + I narashino - 0x00357906, // n0x0cba c0x0000 (---------------) + I narita - 0x00383dc4, // n0x0cbb c0x0000 (---------------) + I noda - 0x00307b4d, // n0x0cbc c0x0000 (---------------) + I oamishirasato - 0x00280947, // n0x0cbd c0x0000 (---------------) + I omigawa - 0x00306346, // n0x0cbe c0x0000 (---------------) + I onjuku - 0x002b3a45, // n0x0cbf c0x0000 (---------------) + I otaki - 0x002dc785, // n0x0cc0 c0x0000 (---------------) + I sakae - 0x002fe346, // n0x0cc1 c0x0000 (---------------) + I sakura - 0x002859c9, // n0x0cc2 c0x0000 (---------------) + I shimofusa - 0x0029afc7, // n0x0cc3 c0x0000 (---------------) + I shirako - 0x00272946, // n0x0cc4 c0x0000 (---------------) + I shiroi - 0x002d41c6, // n0x0cc5 c0x0000 (---------------) + I shisui - 0x0027ed49, // n0x0cc6 c0x0000 (---------------) + I sodegaura - 0x0021e5c4, // n0x0cc7 c0x0000 (---------------) + I sosa - 0x002a5b04, // n0x0cc8 c0x0000 (---------------) + I tako - 0x00201248, // n0x0cc9 c0x0000 (---------------) + I tateyama - 0x00366cc6, // n0x0cca c0x0000 (---------------) + I togane - 0x002965c8, // n0x0ccb c0x0000 (---------------) + I tohnosho - 0x002eeec8, // n0x0ccc c0x0000 (---------------) + I tomisato - 0x0026aa47, // n0x0ccd c0x0000 (---------------) + I urayasu - 0x003a3249, // n0x0cce c0x0000 (---------------) + I yachimata - 0x003a2a87, // n0x0ccf c0x0000 (---------------) + I yachiyo - 0x002a754a, // n0x0cd0 c0x0000 (---------------) + I yokaichiba - 0x0022fc8f, // n0x0cd1 c0x0000 (---------------) + I yokoshibahikari - 0x0025ddca, // n0x0cd2 c0x0000 (---------------) + I yotsukaido - 0x00222485, // n0x0cd3 c0x0000 (---------------) + I ainan - 0x00271f45, // n0x0cd4 c0x0000 (---------------) + I honai - 0x002181c5, // n0x0cd5 c0x0000 (---------------) + I ikata - 0x00308407, // n0x0cd6 c0x0000 (---------------) + I imabari - 0x00273f43, // n0x0cd7 c0x0000 (---------------) + I iyo - 0x00324388, // n0x0cd8 c0x0000 (---------------) + I kamijima - 0x002ead06, // n0x0cd9 c0x0000 (---------------) + I kihoku - 0x002eae09, // n0x0cda c0x0000 (---------------) + I kumakogen - 0x002fa006, // n0x0cdb c0x0000 (---------------) + I masaki - 0x002c4907, // n0x0cdc c0x0000 (---------------) + I matsuno - 0x0028efc9, // n0x0cdd c0x0000 (---------------) + I matsuyama - 0x0034e108, // n0x0cde c0x0000 (---------------) + I namikata - 0x0029a3c7, // n0x0cdf c0x0000 (---------------) + I niihama - 0x002f6fc3, // n0x0ce0 c0x0000 (---------------) + I ozu - 0x0032ebc5, // n0x0ce1 c0x0000 (---------------) + I saijo - 0x0035b6c5, // n0x0ce2 c0x0000 (---------------) + I seiyo - 0x0035924b, // n0x0ce3 c0x0000 (---------------) + I shikokuchuo - 0x002b88c4, // n0x0ce4 c0x0000 (---------------) + I tobe - 0x002d40c4, // n0x0ce5 c0x0000 (---------------) + I toon - 0x00270a06, // n0x0ce6 c0x0000 (---------------) + I uchiko - 0x002f7347, // n0x0ce7 c0x0000 (---------------) + I uwajima - 0x0038a64a, // n0x0ce8 c0x0000 (---------------) + I yawatahama - 0x0023d687, // n0x0ce9 c0x0000 (---------------) + I echizen - 0x0036b887, // n0x0cea c0x0000 (---------------) + I eiheiji - 0x00275605, // n0x0ceb c0x0000 (---------------) + I fukui - 0x00202b85, // n0x0cec c0x0000 (---------------) + I ikeda - 0x0020d6c9, // n0x0ced c0x0000 (---------------) + I katsuyama - 0x0028d806, // n0x0cee c0x0000 (---------------) + I mihama - 0x0023d50d, // n0x0cef c0x0000 (---------------) + I minamiechizen - 0x003912c5, // n0x0cf0 c0x0000 (---------------) + I obama - 0x002967c3, // n0x0cf1 c0x0000 (---------------) + I ohi - 0x0020e703, // n0x0cf2 c0x0000 (---------------) + I ono - 0x002eb685, // n0x0cf3 c0x0000 (---------------) + I sabae - 0x003487c5, // n0x0cf4 c0x0000 (---------------) + I sakai - 0x0035a388, // n0x0cf5 c0x0000 (---------------) + I takahama - 0x00273607, // n0x0cf6 c0x0000 (---------------) + I tsuruga - 0x002a5886, // n0x0cf7 c0x0000 (---------------) + I wakasa - 0x00294ec6, // n0x0cf8 c0x0000 (---------------) + I ashiya - 0x00227fc5, // n0x0cf9 c0x0000 (---------------) + I buzen - 0x00234c87, // n0x0cfa c0x0000 (---------------) + I chikugo - 0x0039de87, // n0x0cfb c0x0000 (---------------) + I chikuho - 0x0020b747, // n0x0cfc c0x0000 (---------------) + I chikujo - 0x002c900a, // n0x0cfd c0x0000 (---------------) + I chikushino - 0x0024a988, // n0x0cfe c0x0000 (---------------) + I chikuzen - 0x00359404, // n0x0cff c0x0000 (---------------) + I chuo - 0x0025ca87, // n0x0d00 c0x0000 (---------------) + I dazaifu - 0x002748c7, // n0x0d01 c0x0000 (---------------) + I fukuchi - 0x0030bb06, // n0x0d02 c0x0000 (---------------) + I hakata - 0x00260407, // n0x0d03 c0x0000 (---------------) + I higashi - 0x002c2c08, // n0x0d04 c0x0000 (---------------) + I hirokawa - 0x00298c48, // n0x0d05 c0x0000 (---------------) + I hisayama - 0x00260a06, // n0x0d06 c0x0000 (---------------) + I iizuka - 0x00322f48, // n0x0d07 c0x0000 (---------------) + I inatsuki - 0x002c5484, // n0x0d08 c0x0000 (---------------) + I kaho - 0x00300306, // n0x0d09 c0x0000 (---------------) + I kasuga - 0x00394686, // n0x0d0a c0x0000 (---------------) + I kasuya - 0x0031a406, // n0x0d0b c0x0000 (---------------) + I kawara - 0x0027cc86, // n0x0d0c c0x0000 (---------------) + I keisen - 0x00223544, // n0x0d0d c0x0000 (---------------) + I koga - 0x0035a686, // n0x0d0e c0x0000 (---------------) + I kurate - 0x002b2ac6, // n0x0d0f c0x0000 (---------------) + I kurogi - 0x0028dbc6, // n0x0d10 c0x0000 (---------------) + I kurume - 0x00236f86, // n0x0d11 c0x0000 (---------------) + I minami - 0x0020e5c6, // n0x0d12 c0x0000 (---------------) + I miyako - 0x002c2a46, // n0x0d13 c0x0000 (---------------) + I miyama - 0x002a5788, // n0x0d14 c0x0000 (---------------) + I miyawaka - 0x003533c8, // n0x0d15 c0x0000 (---------------) + I mizumaki - 0x002c9bc8, // n0x0d16 c0x0000 (---------------) + I munakata - 0x002a6788, // n0x0d17 c0x0000 (---------------) + I nakagawa - 0x00264486, // n0x0d18 c0x0000 (---------------) + I nakama - 0x002123c5, // n0x0d19 c0x0000 (---------------) + I nishi - 0x00222a46, // n0x0d1a c0x0000 (---------------) + I nogata - 0x002a3645, // n0x0d1b c0x0000 (---------------) + I ogori - 0x0037b787, // n0x0d1c c0x0000 (---------------) + I okagaki - 0x002416c5, // n0x0d1d c0x0000 (---------------) + I okawa - 0x00214a43, // n0x0d1e c0x0000 (---------------) + I oki - 0x00201f05, // n0x0d1f c0x0000 (---------------) + I omuta - 0x00312384, // n0x0d20 c0x0000 (---------------) + I onga - 0x0020e705, // n0x0d21 c0x0000 (---------------) + I onojo - 0x00215103, // n0x0d22 c0x0000 (---------------) + I oto - 0x002d7787, // n0x0d23 c0x0000 (---------------) + I saigawa - 0x00343e48, // n0x0d24 c0x0000 (---------------) + I sasaguri - 0x002a9586, // n0x0d25 c0x0000 (---------------) + I shingu - 0x0028d0cd, // n0x0d26 c0x0000 (---------------) + I shinyoshitomi - 0x00271f06, // n0x0d27 c0x0000 (---------------) + I shonai - 0x0028c585, // n0x0d28 c0x0000 (---------------) + I soeda - 0x00260c43, // n0x0d29 c0x0000 (---------------) + I sue - 0x002afdc9, // n0x0d2a c0x0000 (---------------) + I tachiarai - 0x002bed86, // n0x0d2b c0x0000 (---------------) + I tagawa - 0x0028cb86, // n0x0d2c c0x0000 (---------------) + I takata - 0x002fef04, // n0x0d2d c0x0000 (---------------) + I toho - 0x0025dd47, // n0x0d2e c0x0000 (---------------) + I toyotsu - 0x00236606, // n0x0d2f c0x0000 (---------------) + I tsuiki - 0x002a4e85, // n0x0d30 c0x0000 (---------------) + I ukiha - 0x00210603, // n0x0d31 c0x0000 (---------------) + I umi - 0x00206884, // n0x0d32 c0x0000 (---------------) + I usui - 0x00274a86, // n0x0d33 c0x0000 (---------------) + I yamada - 0x002924c4, // n0x0d34 c0x0000 (---------------) + I yame - 0x0030d248, // n0x0d35 c0x0000 (---------------) + I yanagawa - 0x0039d909, // n0x0d36 c0x0000 (---------------) + I yukuhashi - 0x002e3609, // n0x0d37 c0x0000 (---------------) + I aizubange - 0x002963ca, // n0x0d38 c0x0000 (---------------) + I aizumisato - 0x0022c10d, // n0x0d39 c0x0000 (---------------) + I aizuwakamatsu - 0x0024cdc7, // n0x0d3a c0x0000 (---------------) + I asakawa - 0x00300946, // n0x0d3b c0x0000 (---------------) + I bandai - 0x00205dc4, // n0x0d3c c0x0000 (---------------) + I date - 0x0027f209, // n0x0d3d c0x0000 (---------------) + I fukushima - 0x0027e188, // n0x0d3e c0x0000 (---------------) + I furudono - 0x00280546, // n0x0d3f c0x0000 (---------------) + I futaba - 0x00253546, // n0x0d40 c0x0000 (---------------) + I hanawa - 0x00260407, // n0x0d41 c0x0000 (---------------) + I higashi - 0x002edcc6, // n0x0d42 c0x0000 (---------------) + I hirata - 0x0021d386, // n0x0d43 c0x0000 (---------------) + I hirono - 0x002fe4c6, // n0x0d44 c0x0000 (---------------) + I iitate - 0x00390f8a, // n0x0d45 c0x0000 (---------------) + I inawashiro - 0x0021af48, // n0x0d46 c0x0000 (---------------) + I ishikawa - 0x0025ef45, // n0x0d47 c0x0000 (---------------) + I iwaki - 0x0026a789, // n0x0d48 c0x0000 (---------------) + I izumizaki - 0x002bac0a, // n0x0d49 c0x0000 (---------------) + I kagamiishi - 0x0021b1c8, // n0x0d4a c0x0000 (---------------) + I kaneyama - 0x00292e48, // n0x0d4b c0x0000 (---------------) + I kawamata - 0x0028cb08, // n0x0d4c c0x0000 (---------------) + I kitakata - 0x0039e28c, // n0x0d4d c0x0000 (---------------) + I kitashiobara - 0x002d5e45, // n0x0d4e c0x0000 (---------------) + I koori - 0x00295148, // n0x0d4f c0x0000 (---------------) + I koriyama - 0x00304986, // n0x0d50 c0x0000 (---------------) + I kunimi - 0x0029e646, // n0x0d51 c0x0000 (---------------) + I miharu - 0x0039fb87, // n0x0d52 c0x0000 (---------------) + I mishima - 0x0023d585, // n0x0d53 c0x0000 (---------------) + I namie - 0x00279905, // n0x0d54 c0x0000 (---------------) + I nango - 0x002e34c9, // n0x0d55 c0x0000 (---------------) + I nishiaizu - 0x002143c7, // n0x0d56 c0x0000 (---------------) + I nishigo - 0x002eadc5, // n0x0d57 c0x0000 (---------------) + I okuma - 0x0021e2c7, // n0x0d58 c0x0000 (---------------) + I omotego - 0x0020e703, // n0x0d59 c0x0000 (---------------) + I ono - 0x002bb0c5, // n0x0d5a c0x0000 (---------------) + I otama - 0x00396b48, // n0x0d5b c0x0000 (---------------) + I samegawa - 0x002a9d47, // n0x0d5c c0x0000 (---------------) + I shimogo - 0x00292d09, // n0x0d5d c0x0000 (---------------) + I shirakawa - 0x002ab745, // n0x0d5e c0x0000 (---------------) + I showa - 0x002ef804, // n0x0d5f c0x0000 (---------------) + I soma - 0x00297648, // n0x0d60 c0x0000 (---------------) + I sukagawa - 0x00213007, // n0x0d61 c0x0000 (---------------) + I taishin - 0x0029a588, // n0x0d62 c0x0000 (---------------) + I tamakawa - 0x0030a508, // n0x0d63 c0x0000 (---------------) + I tanagura - 0x002ed285, // n0x0d64 c0x0000 (---------------) + I tenei - 0x0034c806, // n0x0d65 c0x0000 (---------------) + I yabuki - 0x0021ec86, // n0x0d66 c0x0000 (---------------) + I yamato - 0x00349109, // n0x0d67 c0x0000 (---------------) + I yamatsuri - 0x003148c7, // n0x0d68 c0x0000 (---------------) + I yanaizu - 0x002a3f06, // n0x0d69 c0x0000 (---------------) + I yugawa - 0x00283687, // n0x0d6a c0x0000 (---------------) + I anpachi - 0x00201d83, // n0x0d6b c0x0000 (---------------) + I ena - 0x002a4d04, // n0x0d6c c0x0000 (---------------) + I gifu - 0x00297f85, // n0x0d6d c0x0000 (---------------) + I ginan - 0x002ebe44, // n0x0d6e c0x0000 (---------------) + I godo - 0x0022e444, // n0x0d6f c0x0000 (---------------) + I gujo - 0x00277dc7, // n0x0d70 c0x0000 (---------------) + I hashima - 0x00210a07, // n0x0d71 c0x0000 (---------------) + I hichiso - 0x00254984, // n0x0d72 c0x0000 (---------------) + I hida - 0x00292b50, // n0x0d73 c0x0000 (---------------) + I higashishirakawa - 0x0031adc7, // n0x0d74 c0x0000 (---------------) + I ibigawa - 0x00202b85, // n0x0d75 c0x0000 (---------------) + I ikeda - 0x002c414c, // n0x0d76 c0x0000 (---------------) + I kakamigahara - 0x0027bf84, // n0x0d77 c0x0000 (---------------) + I kani - 0x002892c8, // n0x0d78 c0x0000 (---------------) + I kasahara - 0x00237b49, // n0x0d79 c0x0000 (---------------) + I kasamatsu - 0x002f8806, // n0x0d7a c0x0000 (---------------) + I kawaue - 0x0021e6c8, // n0x0d7b c0x0000 (---------------) + I kitagata - 0x00248084, // n0x0d7c c0x0000 (---------------) + I mino - 0x00248088, // n0x0d7d c0x0000 (---------------) + I minokamo - 0x002b9d86, // n0x0d7e c0x0000 (---------------) + I mitake - 0x00352348, // n0x0d7f c0x0000 (---------------) + I mizunami - 0x00297c86, // n0x0d80 c0x0000 (---------------) + I motosu - 0x0020efcb, // n0x0d81 c0x0000 (---------------) + I nakatsugawa - 0x00203085, // n0x0d82 c0x0000 (---------------) + I ogaki - 0x002c5408, // n0x0d83 c0x0000 (---------------) + I sakahogi - 0x00216944, // n0x0d84 c0x0000 (---------------) + I seki - 0x00278e0a, // n0x0d85 c0x0000 (---------------) + I sekigahara - 0x00292d09, // n0x0d86 c0x0000 (---------------) + I shirakawa - 0x00331246, // n0x0d87 c0x0000 (---------------) + I tajimi - 0x002b98c8, // n0x0d88 c0x0000 (---------------) + I takayama - 0x0026c945, // n0x0d89 c0x0000 (---------------) + I tarui - 0x00221b44, // n0x0d8a c0x0000 (---------------) + I toki - 0x002891c6, // n0x0d8b c0x0000 (---------------) + I tomika - 0x0020b608, // n0x0d8c c0x0000 (---------------) + I wanouchi - 0x00277b48, // n0x0d8d c0x0000 (---------------) + I yamagata - 0x00340346, // n0x0d8e c0x0000 (---------------) + I yaotsu - 0x00201e44, // n0x0d8f c0x0000 (---------------) + I yoro - 0x0023a506, // n0x0d90 c0x0000 (---------------) + I annaka - 0x003a2b07, // n0x0d91 c0x0000 (---------------) + I chiyoda - 0x00271647, // n0x0d92 c0x0000 (---------------) + I fujioka - 0x0026040f, // n0x0d93 c0x0000 (---------------) + I higashiagatsuma - 0x00204407, // n0x0d94 c0x0000 (---------------) + I isesaki - 0x003579c7, // n0x0d95 c0x0000 (---------------) + I itakura - 0x0029e505, // n0x0d96 c0x0000 (---------------) + I kanna - 0x002f2fc5, // n0x0d97 c0x0000 (---------------) + I kanra - 0x00296909, // n0x0d98 c0x0000 (---------------) + I katashina - 0x002432c6, // n0x0d99 c0x0000 (---------------) + I kawaba - 0x00276685, // n0x0d9a c0x0000 (---------------) + I kiryu - 0x00279487, // n0x0d9b c0x0000 (---------------) + I kusatsu - 0x0039fe08, // n0x0d9c c0x0000 (---------------) + I maebashi - 0x002b4b45, // n0x0d9d c0x0000 (---------------) + I meiwa - 0x0028fc46, // n0x0d9e c0x0000 (---------------) + I midori - 0x0020f808, // n0x0d9f c0x0000 (---------------) + I minakami - 0x0030f1ca, // n0x0da0 c0x0000 (---------------) + I naganohara - 0x00320048, // n0x0da1 c0x0000 (---------------) + I nakanojo - 0x00390447, // n0x0da2 c0x0000 (---------------) + I nanmoku - 0x002300c6, // n0x0da3 c0x0000 (---------------) + I numata - 0x0026a746, // n0x0da4 c0x0000 (---------------) + I oizumi - 0x0021ad83, // n0x0da5 c0x0000 (---------------) + I ora - 0x0020a183, // n0x0da6 c0x0000 (---------------) + I ota - 0x002badc9, // n0x0da7 c0x0000 (---------------) + I shibukawa - 0x002616c9, // n0x0da8 c0x0000 (---------------) + I shimonita - 0x00285c86, // n0x0da9 c0x0000 (---------------) + I shinto - 0x002ab745, // n0x0daa c0x0000 (---------------) + I showa - 0x00297a08, // n0x0dab c0x0000 (---------------) + I takasaki - 0x002b98c8, // n0x0dac c0x0000 (---------------) + I takayama - 0x002e26c8, // n0x0dad c0x0000 (---------------) + I tamamura - 0x002fe54b, // n0x0dae c0x0000 (---------------) + I tatebayashi - 0x0028d307, // n0x0daf c0x0000 (---------------) + I tomioka - 0x002f4d89, // n0x0db0 c0x0000 (---------------) + I tsukiyono - 0x00260688, // n0x0db1 c0x0000 (---------------) + I tsumagoi - 0x003855c4, // n0x0db2 c0x0000 (---------------) + I ueno - 0x002c4bc8, // n0x0db3 c0x0000 (---------------) + I yoshioka - 0x002848c9, // n0x0db4 c0x0000 (---------------) + I asaminami - 0x002a4205, // n0x0db5 c0x0000 (---------------) + I daiwa - 0x00308307, // n0x0db6 c0x0000 (---------------) + I etajima - 0x002b7305, // n0x0db7 c0x0000 (---------------) + I fuchu - 0x00277a48, // n0x0db8 c0x0000 (---------------) + I fukuyama - 0x002869cb, // n0x0db9 c0x0000 (---------------) + I hatsukaichi - 0x0028a890, // n0x0dba c0x0000 (---------------) + I higashihiroshima - 0x0029ea05, // n0x0dbb c0x0000 (---------------) + I hongo - 0x0021688c, // n0x0dbc c0x0000 (---------------) + I jinsekikogen - 0x002a5a45, // n0x0dbd c0x0000 (---------------) + I kaita - 0x00275683, // n0x0dbe c0x0000 (---------------) + I kui - 0x0027eb46, // n0x0dbf c0x0000 (---------------) + I kumano - 0x002b1f04, // n0x0dc0 c0x0000 (---------------) + I kure - 0x00362c86, // n0x0dc1 c0x0000 (---------------) + I mihara - 0x00293a07, // n0x0dc2 c0x0000 (---------------) + I miyoshi - 0x0020efc4, // n0x0dc3 c0x0000 (---------------) + I naka - 0x002c3848, // n0x0dc4 c0x0000 (---------------) + I onomichi - 0x0032424d, // n0x0dc5 c0x0000 (---------------) + I osakikamijima - 0x002d3ac5, // n0x0dc6 c0x0000 (---------------) + I otake - 0x0022c604, // n0x0dc7 c0x0000 (---------------) + I saka - 0x0020d904, // n0x0dc8 c0x0000 (---------------) + I sera - 0x0026a209, // n0x0dc9 c0x0000 (---------------) + I seranishi - 0x0027ab48, // n0x0dca c0x0000 (---------------) + I shinichi - 0x0030ac47, // n0x0dcb c0x0000 (---------------) + I shobara - 0x002b9e08, // n0x0dcc c0x0000 (---------------) + I takehara - 0x00278308, // n0x0dcd c0x0000 (---------------) + I abashiri - 0x00272c45, // n0x0dce c0x0000 (---------------) + I abira - 0x00378a87, // n0x0dcf c0x0000 (---------------) + I aibetsu - 0x00272bc7, // n0x0dd0 c0x0000 (---------------) + I akabira - 0x00379187, // n0x0dd1 c0x0000 (---------------) + I akkeshi - 0x002b9089, // n0x0dd2 c0x0000 (---------------) + I asahikawa - 0x00236489, // n0x0dd3 c0x0000 (---------------) + I ashibetsu - 0x0023e7c6, // n0x0dd4 c0x0000 (---------------) + I ashoro - 0x002ac806, // n0x0dd5 c0x0000 (---------------) + I assabu - 0x00260646, // n0x0dd6 c0x0000 (---------------) + I atsuma - 0x002621c5, // n0x0dd7 c0x0000 (---------------) + I bibai - 0x002723c4, // n0x0dd8 c0x0000 (---------------) + I biei - 0x00200ec6, // n0x0dd9 c0x0000 (---------------) + I bifuka - 0x00201446, // n0x0dda c0x0000 (---------------) + I bihoro - 0x00272c88, // n0x0ddb c0x0000 (---------------) + I biratori - 0x00287d8b, // n0x0ddc c0x0000 (---------------) + I chippubetsu - 0x002a8e07, // n0x0ddd c0x0000 (---------------) + I chitose - 0x00205dc4, // n0x0dde c0x0000 (---------------) + I date - 0x0033d0c6, // n0x0ddf c0x0000 (---------------) + I ebetsu - 0x00356907, // n0x0de0 c0x0000 (---------------) + I embetsu - 0x002eafc5, // n0x0de1 c0x0000 (---------------) + I eniwa - 0x0035b145, // n0x0de2 c0x0000 (---------------) + I erimo - 0x0033b1c4, // n0x0de3 c0x0000 (---------------) + I esan - 0x00236406, // n0x0de4 c0x0000 (---------------) + I esashi - 0x00200f48, // n0x0de5 c0x0000 (---------------) + I fukagawa - 0x0027f209, // n0x0de6 c0x0000 (---------------) + I fukushima - 0x00244106, // n0x0de7 c0x0000 (---------------) + I furano - 0x0027cf08, // n0x0de8 c0x0000 (---------------) + I furubira - 0x002a4f46, // n0x0de9 c0x0000 (---------------) + I haboro - 0x00328608, // n0x0dea c0x0000 (---------------) + I hakodate - 0x00299b0c, // n0x0deb c0x0000 (---------------) + I hamatonbetsu - 0x00272b06, // n0x0dec c0x0000 (---------------) + I hidaka - 0x0028c24d, // n0x0ded c0x0000 (---------------) + I higashikagura - 0x0028c6cb, // n0x0dee c0x0000 (---------------) + I higashikawa - 0x0024a605, // n0x0def c0x0000 (---------------) + I hiroo - 0x0039dfc7, // n0x0df0 c0x0000 (---------------) + I hokuryu - 0x0034eb46, // n0x0df1 c0x0000 (---------------) + I hokuto - 0x002e1208, // n0x0df2 c0x0000 (---------------) + I honbetsu - 0x0023e849, // n0x0df3 c0x0000 (---------------) + I horokanai - 0x00348d48, // n0x0df4 c0x0000 (---------------) + I horonobe - 0x00202b85, // n0x0df5 c0x0000 (---------------) + I ikeda - 0x002af387, // n0x0df6 c0x0000 (---------------) + I imakane - 0x00276e48, // n0x0df7 c0x0000 (---------------) + I ishikari - 0x00255f49, // n0x0df8 c0x0000 (---------------) + I iwamizawa - 0x00235306, // n0x0df9 c0x0000 (---------------) + I iwanai - 0x0024620a, // n0x0dfa c0x0000 (---------------) + I kamifurano - 0x002e0f88, // n0x0dfb c0x0000 (---------------) + I kamikawa - 0x00348b8b, // n0x0dfc c0x0000 (---------------) + I kamishihoro - 0x002ae88c, // n0x0dfd c0x0000 (---------------) + I kamisunagawa - 0x00248188, // n0x0dfe c0x0000 (---------------) + I kamoenai - 0x002741c6, // n0x0dff c0x0000 (---------------) + I kayabe - 0x00268208, // n0x0e00 c0x0000 (---------------) + I kembuchi - 0x00204547, // n0x0e01 c0x0000 (---------------) + I kikonai - 0x00236709, // n0x0e02 c0x0000 (---------------) + I kimobetsu - 0x0020cb4d, // n0x0e03 c0x0000 (---------------) + I kitahiroshima - 0x00294b46, // n0x0e04 c0x0000 (---------------) + I kitami - 0x00287a88, // n0x0e05 c0x0000 (---------------) + I kiyosato - 0x00353289, // n0x0e06 c0x0000 (---------------) + I koshimizu - 0x002b07c8, // n0x0e07 c0x0000 (---------------) + I kunneppu - 0x0027a408, // n0x0e08 c0x0000 (---------------) + I kuriyama - 0x002b338c, // n0x0e09 c0x0000 (---------------) + I kuromatsunai - 0x002b4407, // n0x0e0a c0x0000 (---------------) + I kushiro - 0x002b5747, // n0x0e0b c0x0000 (---------------) + I kutchan - 0x002b8ec5, // n0x0e0c c0x0000 (---------------) + I kyowa - 0x0028ec47, // n0x0e0d c0x0000 (---------------) + I mashike - 0x0039fcc8, // n0x0e0e c0x0000 (---------------) + I matsumae - 0x00289246, // n0x0e0f c0x0000 (---------------) + I mikasa - 0x00243f8c, // n0x0e10 c0x0000 (---------------) + I minamifurano - 0x002dd808, // n0x0e11 c0x0000 (---------------) + I mombetsu - 0x002c6048, // n0x0e12 c0x0000 (---------------) + I moseushi - 0x0025c546, // n0x0e13 c0x0000 (---------------) + I mukawa - 0x00391587, // n0x0e14 c0x0000 (---------------) + I muroran - 0x0023e9c4, // n0x0e15 c0x0000 (---------------) + I naie - 0x002a6788, // n0x0e16 c0x0000 (---------------) + I nakagawa - 0x0027b40c, // n0x0e17 c0x0000 (---------------) + I nakasatsunai - 0x0021034c, // n0x0e18 c0x0000 (---------------) + I nakatombetsu - 0x00222505, // n0x0e19 c0x0000 (---------------) + I nanae - 0x00200b87, // n0x0e1a c0x0000 (---------------) + I nanporo - 0x00201dc6, // n0x0e1b c0x0000 (---------------) + I nayoro - 0x00391506, // n0x0e1c c0x0000 (---------------) + I nemuro - 0x002866c8, // n0x0e1d c0x0000 (---------------) + I niikappu - 0x00264044, // n0x0e1e c0x0000 (---------------) + I niki - 0x0022aa0b, // n0x0e1f c0x0000 (---------------) + I nishiokoppe - 0x002be20b, // n0x0e20 c0x0000 (---------------) + I noboribetsu - 0x002300c6, // n0x0e21 c0x0000 (---------------) + I numata - 0x003240c7, // n0x0e22 c0x0000 (---------------) + I obihiro - 0x003022c5, // n0x0e23 c0x0000 (---------------) + I obira - 0x00268fc5, // n0x0e24 c0x0000 (---------------) + I oketo - 0x0022ab46, // n0x0e25 c0x0000 (---------------) + I okoppe - 0x0026c905, // n0x0e26 c0x0000 (---------------) + I otaru - 0x002b8885, // n0x0e27 c0x0000 (---------------) + I otobe - 0x002b9bc7, // n0x0e28 c0x0000 (---------------) + I otofuke - 0x00271009, // n0x0e29 c0x0000 (---------------) + I otoineppu - 0x002f6304, // n0x0e2a c0x0000 (---------------) + I oumu - 0x0026f485, // n0x0e2b c0x0000 (---------------) + I ozora - 0x002d1d85, // n0x0e2c c0x0000 (---------------) + I pippu - 0x0026fe08, // n0x0e2d c0x0000 (---------------) + I rankoshi - 0x002c3685, // n0x0e2e c0x0000 (---------------) + I rebun - 0x0029d649, // n0x0e2f c0x0000 (---------------) + I rikubetsu - 0x002910c7, // n0x0e30 c0x0000 (---------------) + I rishiri - 0x002910cb, // n0x0e31 c0x0000 (---------------) + I rishirifuji - 0x00227706, // n0x0e32 c0x0000 (---------------) + I saroma - 0x002a54c9, // n0x0e33 c0x0000 (---------------) + I sarufutsu - 0x00224bc8, // n0x0e34 c0x0000 (---------------) + I shakotan - 0x00251705, // n0x0e35 c0x0000 (---------------) + I shari - 0x00379288, // n0x0e36 c0x0000 (---------------) + I shibecha - 0x002364c8, // n0x0e37 c0x0000 (---------------) + I shibetsu - 0x0020af47, // n0x0e38 c0x0000 (---------------) + I shikabe - 0x0026a607, // n0x0e39 c0x0000 (---------------) + I shikaoi - 0x00277e49, // n0x0e3a c0x0000 (---------------) + I shimamaki - 0x00352287, // n0x0e3b c0x0000 (---------------) + I shimizu - 0x0025aa89, // n0x0e3c c0x0000 (---------------) + I shimokawa - 0x00371f4c, // n0x0e3d c0x0000 (---------------) + I shinshinotsu - 0x00285c88, // n0x0e3e c0x0000 (---------------) + I shintoku - 0x0029e349, // n0x0e3f c0x0000 (---------------) + I shiranuka - 0x0029fe47, // n0x0e40 c0x0000 (---------------) + I shiraoi - 0x002783c9, // n0x0e41 c0x0000 (---------------) + I shiriuchi - 0x00210b47, // n0x0e42 c0x0000 (---------------) + I sobetsu - 0x002ae988, // n0x0e43 c0x0000 (---------------) + I sunagawa - 0x00270145, // n0x0e44 c0x0000 (---------------) + I taiki - 0x00300286, // n0x0e45 c0x0000 (---------------) + I takasu - 0x002b3a88, // n0x0e46 c0x0000 (---------------) + I takikawa - 0x002301c8, // n0x0e47 c0x0000 (---------------) + I takinoue - 0x002baac9, // n0x0e48 c0x0000 (---------------) + I teshikaga - 0x002b88c7, // n0x0e49 c0x0000 (---------------) + I tobetsu - 0x00269945, // n0x0e4a c0x0000 (---------------) + I tohma - 0x00335489, // n0x0e4b c0x0000 (---------------) + I tomakomai - 0x00219806, // n0x0e4c c0x0000 (---------------) + I tomari - 0x00286044, // n0x0e4d c0x0000 (---------------) + I toya - 0x00348a06, // n0x0e4e c0x0000 (---------------) + I toyako - 0x0025d188, // n0x0e4f c0x0000 (---------------) + I toyotomi - 0x00261e07, // n0x0e50 c0x0000 (---------------) + I toyoura - 0x00287f88, // n0x0e51 c0x0000 (---------------) + I tsubetsu - 0x00323009, // n0x0e52 c0x0000 (---------------) + I tsukigata - 0x0025c2c7, // n0x0e53 c0x0000 (---------------) + I urakawa - 0x002949c6, // n0x0e54 c0x0000 (---------------) + I urausu - 0x0039e084, // n0x0e55 c0x0000 (---------------) + I uryu - 0x00201f89, // n0x0e56 c0x0000 (---------------) + I utashinai - 0x00378908, // n0x0e57 c0x0000 (---------------) + I wakkanai - 0x0025c407, // n0x0e58 c0x0000 (---------------) + I wassamu - 0x002569c6, // n0x0e59 c0x0000 (---------------) + I yakumo - 0x0035b786, // n0x0e5a c0x0000 (---------------) + I yoichi - 0x00300a44, // n0x0e5b c0x0000 (---------------) + I aioi - 0x0029ee06, // n0x0e5c c0x0000 (---------------) + I akashi - 0x0020e683, // n0x0e5d c0x0000 (---------------) + I ako - 0x002bce89, // n0x0e5e c0x0000 (---------------) + I amagasaki - 0x00203046, // n0x0e5f c0x0000 (---------------) + I aogaki - 0x00293085, // n0x0e60 c0x0000 (---------------) + I asago - 0x00294ec6, // n0x0e61 c0x0000 (---------------) + I ashiya - 0x0029a6c5, // n0x0e62 c0x0000 (---------------) + I awaji - 0x002772c8, // n0x0e63 c0x0000 (---------------) + I fukusaki - 0x00247ec7, // n0x0e64 c0x0000 (---------------) + I goshiki - 0x00207186, // n0x0e65 c0x0000 (---------------) + I harima - 0x0031ac86, // n0x0e66 c0x0000 (---------------) + I himeji - 0x003335c8, // n0x0e67 c0x0000 (---------------) + I ichikawa - 0x00296a87, // n0x0e68 c0x0000 (---------------) + I inagawa - 0x00294b85, // n0x0e69 c0x0000 (---------------) + I itami - 0x002953c8, // n0x0e6a c0x0000 (---------------) + I kakogawa - 0x00371c88, // n0x0e6b c0x0000 (---------------) + I kamigori - 0x002e0f88, // n0x0e6c c0x0000 (---------------) + I kamikawa - 0x002a5905, // n0x0e6d c0x0000 (---------------) + I kasai - 0x00300306, // n0x0e6e c0x0000 (---------------) + I kasuga - 0x002e33c9, // n0x0e6f c0x0000 (---------------) + I kawanishi - 0x0021eb04, // n0x0e70 c0x0000 (---------------) + I miki - 0x003694cb, // n0x0e71 c0x0000 (---------------) + I minamiawaji - 0x0021d08b, // n0x0e72 c0x0000 (---------------) + I nishinomiya - 0x0025ee49, // n0x0e73 c0x0000 (---------------) + I nishiwaki - 0x0020e703, // n0x0e74 c0x0000 (---------------) + I ono - 0x002529c5, // n0x0e75 c0x0000 (---------------) + I sanda - 0x0020a686, // n0x0e76 c0x0000 (---------------) + I sannan - 0x002ad908, // n0x0e77 c0x0000 (---------------) + I sasayama - 0x0022fc04, // n0x0e78 c0x0000 (---------------) + I sayo - 0x002a9586, // n0x0e79 c0x0000 (---------------) + I shingu - 0x002c9149, // n0x0e7a c0x0000 (---------------) + I shinonsen - 0x002b6345, // n0x0e7b c0x0000 (---------------) + I shiso - 0x002b9b06, // n0x0e7c c0x0000 (---------------) + I sumoto - 0x00213006, // n0x0e7d c0x0000 (---------------) + I taishi - 0x002155c4, // n0x0e7e c0x0000 (---------------) + I taka - 0x0028cc8a, // n0x0e7f c0x0000 (---------------) + I takarazuka - 0x00292fc8, // n0x0e80 c0x0000 (---------------) + I takasago - 0x002301c6, // n0x0e81 c0x0000 (---------------) + I takino - 0x00301785, // n0x0e82 c0x0000 (---------------) + I tamba - 0x00208c07, // n0x0e83 c0x0000 (---------------) + I tatsuno - 0x00251a87, // n0x0e84 c0x0000 (---------------) + I toyooka - 0x0034c804, // n0x0e85 c0x0000 (---------------) + I yabu - 0x0021d2c7, // n0x0e86 c0x0000 (---------------) + I yashiro - 0x00241684, // n0x0e87 c0x0000 (---------------) + I yoka - 0x00241686, // n0x0e88 c0x0000 (---------------) + I yokawa - 0x0020f943, // n0x0e89 c0x0000 (---------------) + I ami - 0x002b9085, // n0x0e8a c0x0000 (---------------) + I asahi - 0x00347c45, // n0x0e8b c0x0000 (---------------) + I bando - 0x00213388, // n0x0e8c c0x0000 (---------------) + I chikusei - 0x0025cc45, // n0x0e8d c0x0000 (---------------) + I daigo - 0x00272849, // n0x0e8e c0x0000 (---------------) + I fujishiro - 0x00299f47, // n0x0e8f c0x0000 (---------------) + I hitachi - 0x002a65cb, // n0x0e90 c0x0000 (---------------) + I hitachinaka - 0x00299f4c, // n0x0e91 c0x0000 (---------------) + I hitachiomiya - 0x0029abca, // n0x0e92 c0x0000 (---------------) + I hitachiota - 0x002bebc7, // n0x0e93 c0x0000 (---------------) + I ibaraki - 0x002020c3, // n0x0e94 c0x0000 (---------------) + I ina - 0x00318e48, // n0x0e95 c0x0000 (---------------) + I inashiki - 0x002a5ac5, // n0x0e96 c0x0000 (---------------) + I itako - 0x002b4bc5, // n0x0e97 c0x0000 (---------------) + I iwama - 0x0032ec84, // n0x0e98 c0x0000 (---------------) + I joso - 0x002ae886, // n0x0e99 c0x0000 (---------------) + I kamisu - 0x00237b46, // n0x0e9a c0x0000 (---------------) + I kasama - 0x0029ee47, // n0x0e9b c0x0000 (---------------) + I kashima - 0x0037fa8b, // n0x0e9c c0x0000 (---------------) + I kasumigaura - 0x00223544, // n0x0e9d c0x0000 (---------------) + I koga - 0x0034e384, // n0x0e9e c0x0000 (---------------) + I miho - 0x002ba004, // n0x0e9f c0x0000 (---------------) + I mito - 0x002c4786, // n0x0ea0 c0x0000 (---------------) + I moriya - 0x0020efc4, // n0x0ea1 c0x0000 (---------------) + I naka - 0x002b9748, // n0x0ea2 c0x0000 (---------------) + I namegata - 0x0032ea85, // n0x0ea3 c0x0000 (---------------) + I oarai - 0x00227945, // n0x0ea4 c0x0000 (---------------) + I ogawa - 0x002e2607, // n0x0ea5 c0x0000 (---------------) + I omitama - 0x0039e0c9, // n0x0ea6 c0x0000 (---------------) + I ryugasaki - 0x003487c5, // n0x0ea7 c0x0000 (---------------) + I sakai - 0x0036f20a, // n0x0ea8 c0x0000 (---------------) + I sakuragawa - 0x0039ff49, // n0x0ea9 c0x0000 (---------------) + I shimodate - 0x0027328a, // n0x0eaa c0x0000 (---------------) + I shimotsuma - 0x003910c9, // n0x0eab c0x0000 (---------------) + I shirosato - 0x0032c904, // n0x0eac c0x0000 (---------------) + I sowa - 0x002d4285, // n0x0ead c0x0000 (---------------) + I suifu - 0x002eddc8, // n0x0eae c0x0000 (---------------) + I takahagi - 0x002ecd0b, // n0x0eaf c0x0000 (---------------) + I tamatsukuri - 0x002f1405, // n0x0eb0 c0x0000 (---------------) + I tokai - 0x0027fb86, // n0x0eb1 c0x0000 (---------------) + I tomobe - 0x0021fdc4, // n0x0eb2 c0x0000 (---------------) + I tone - 0x00272d86, // n0x0eb3 c0x0000 (---------------) + I toride - 0x0025c149, // n0x0eb4 c0x0000 (---------------) + I tsuchiura - 0x0033d187, // n0x0eb5 c0x0000 (---------------) + I tsukuba - 0x0030af88, // n0x0eb6 c0x0000 (---------------) + I uchihara - 0x0022c486, // n0x0eb7 c0x0000 (---------------) + I ushiku - 0x003a2a87, // n0x0eb8 c0x0000 (---------------) + I yachiyo - 0x00277b48, // n0x0eb9 c0x0000 (---------------) + I yamagata - 0x00382306, // n0x0eba c0x0000 (---------------) + I yawara - 0x00242084, // n0x0ebb c0x0000 (---------------) + I yuki - 0x00358a07, // n0x0ebc c0x0000 (---------------) + I anamizu - 0x00337085, // n0x0ebd c0x0000 (---------------) + I hakui - 0x003419c7, // n0x0ebe c0x0000 (---------------) + I hakusan - 0x00200fc4, // n0x0ebf c0x0000 (---------------) + I kaga - 0x0034eac6, // n0x0ec0 c0x0000 (---------------) + I kahoku - 0x00386988, // n0x0ec1 c0x0000 (---------------) + I kanazawa - 0x0028c888, // n0x0ec2 c0x0000 (---------------) + I kawakita - 0x0028e9c7, // n0x0ec3 c0x0000 (---------------) + I komatsu - 0x00303408, // n0x0ec4 c0x0000 (---------------) + I nakanoto - 0x0028a145, // n0x0ec5 c0x0000 (---------------) + I nanao - 0x0020e544, // n0x0ec6 c0x0000 (---------------) + I nomi - 0x003334c8, // n0x0ec7 c0x0000 (---------------) + I nonoichi - 0x0024f5c4, // n0x0ec8 c0x0000 (---------------) + I noto - 0x0020af45, // n0x0ec9 c0x0000 (---------------) + I shika - 0x002e2e04, // n0x0eca c0x0000 (---------------) + I suzu - 0x00229507, // n0x0ecb c0x0000 (---------------) + I tsubata - 0x00281647, // n0x0ecc c0x0000 (---------------) + I tsurugi - 0x00278508, // n0x0ecd c0x0000 (---------------) + I uchinada - 0x0029a706, // n0x0ece c0x0000 (---------------) + I wajima - 0x0025cbc5, // n0x0ecf c0x0000 (---------------) + I fudai - 0x00272648, // n0x0ed0 c0x0000 (---------------) + I fujisawa - 0x00320248, // n0x0ed1 c0x0000 (---------------) + I hanamaki - 0x00296309, // n0x0ed2 c0x0000 (---------------) + I hiraizumi - 0x0021d386, // n0x0ed3 c0x0000 (---------------) + I hirono - 0x00231688, // n0x0ed4 c0x0000 (---------------) + I ichinohe - 0x00278c8a, // n0x0ed5 c0x0000 (---------------) + I ichinoseki - 0x002eb048, // n0x0ed6 c0x0000 (---------------) + I iwaizumi - 0x002d2505, // n0x0ed7 c0x0000 (---------------) + I iwate - 0x00222c46, // n0x0ed8 c0x0000 (---------------) + I joboji - 0x00285888, // n0x0ed9 c0x0000 (---------------) + I kamaishi - 0x002af44a, // n0x0eda c0x0000 (---------------) + I kanegasaki - 0x002a0d87, // n0x0edb c0x0000 (---------------) + I karumai - 0x0027e585, // n0x0edc c0x0000 (---------------) + I kawai - 0x0028b088, // n0x0edd c0x0000 (---------------) + I kitakami - 0x002f7c44, // n0x0ede c0x0000 (---------------) + I kuji - 0x002a50c6, // n0x0edf c0x0000 (---------------) + I kunohe - 0x002b5ec8, // n0x0ee0 c0x0000 (---------------) + I kuzumaki - 0x0020e5c6, // n0x0ee1 c0x0000 (---------------) + I miyako - 0x002bc248, // n0x0ee2 c0x0000 (---------------) + I mizusawa - 0x0021e947, // n0x0ee3 c0x0000 (---------------) + I morioka - 0x0020ddc6, // n0x0ee4 c0x0000 (---------------) + I ninohe - 0x00383dc4, // n0x0ee5 c0x0000 (---------------) + I noda - 0x002d4c07, // n0x0ee6 c0x0000 (---------------) + I ofunato - 0x002f2804, // n0x0ee7 c0x0000 (---------------) + I oshu - 0x0025c107, // n0x0ee8 c0x0000 (---------------) + I otsuchi - 0x0035a0cd, // n0x0ee9 c0x0000 (---------------) + I rikuzentakata - 0x0025eec5, // n0x0eea c0x0000 (---------------) + I shiwa - 0x002a9b4b, // n0x0eeb c0x0000 (---------------) + I shizukuishi - 0x00297d86, // n0x0eec c0x0000 (---------------) + I sumita - 0x0024b208, // n0x0eed c0x0000 (---------------) + I tanohata - 0x00398284, // n0x0eee c0x0000 (---------------) + I tono - 0x0026f246, // n0x0eef c0x0000 (---------------) + I yahaba - 0x00274a86, // n0x0ef0 c0x0000 (---------------) + I yamada - 0x00268547, // n0x0ef1 c0x0000 (---------------) + I ayagawa - 0x0028bf0d, // n0x0ef2 c0x0000 (---------------) + I higashikagawa - 0x002bbec7, // n0x0ef3 c0x0000 (---------------) + I kanonji - 0x002f8ec8, // n0x0ef4 c0x0000 (---------------) + I kotohira - 0x0024a485, // n0x0ef5 c0x0000 (---------------) + I manno - 0x0029ef88, // n0x0ef6 c0x0000 (---------------) + I marugame - 0x002ba406, // n0x0ef7 c0x0000 (---------------) + I mitoyo - 0x0028a1c8, // n0x0ef8 c0x0000 (---------------) + I naoshima - 0x00213906, // n0x0ef9 c0x0000 (---------------) + I sanuki - 0x00322747, // n0x0efa c0x0000 (---------------) + I tadotsu - 0x003231c9, // n0x0efb c0x0000 (---------------) + I takamatsu - 0x00398287, // n0x0efc c0x0000 (---------------) + I tonosho - 0x00280808, // n0x0efd c0x0000 (---------------) + I uchinomi - 0x0026bf85, // n0x0efe c0x0000 (---------------) + I utazu - 0x0021a888, // n0x0eff c0x0000 (---------------) + I zentsuji - 0x003234c5, // n0x0f00 c0x0000 (---------------) + I akune - 0x00245d05, // n0x0f01 c0x0000 (---------------) + I amami - 0x0027ff05, // n0x0f02 c0x0000 (---------------) + I hioki - 0x00222783, // n0x0f03 c0x0000 (---------------) + I isa - 0x00279804, // n0x0f04 c0x0000 (---------------) + I isen - 0x0026a785, // n0x0f05 c0x0000 (---------------) + I izumi - 0x002c3e09, // n0x0f06 c0x0000 (---------------) + I kagoshima - 0x002a2a46, // n0x0f07 c0x0000 (---------------) + I kanoya - 0x002c2d08, // n0x0f08 c0x0000 (---------------) + I kawanabe - 0x002af645, // n0x0f09 c0x0000 (---------------) + I kinko - 0x00329cc7, // n0x0f0a c0x0000 (---------------) + I kouyama - 0x00249c0a, // n0x0f0b c0x0000 (---------------) + I makurazaki - 0x002b9a49, // n0x0f0c c0x0000 (---------------) + I matsumoto - 0x0029ddca, // n0x0f0d c0x0000 (---------------) + I minamitane - 0x002c9c48, // n0x0f0e c0x0000 (---------------) + I nakatane - 0x0021e10c, // n0x0f0f c0x0000 (---------------) + I nishinoomote - 0x0027950d, // n0x0f10 c0x0000 (---------------) + I satsumasendai - 0x002e7983, // n0x0f11 c0x0000 (---------------) + I soo - 0x002bc148, // n0x0f12 c0x0000 (---------------) + I tarumizu - 0x00206845, // n0x0f13 c0x0000 (---------------) + I yusui - 0x0030ef86, // n0x0f14 c0x0000 (---------------) + I aikawa - 0x0034df86, // n0x0f15 c0x0000 (---------------) + I atsugi - 0x00246c05, // n0x0f16 c0x0000 (---------------) + I ayase - 0x00283789, // n0x0f17 c0x0000 (---------------) + I chigasaki - 0x002a1885, // n0x0f18 c0x0000 (---------------) + I ebina - 0x00272648, // n0x0f19 c0x0000 (---------------) + I fujisawa - 0x0024f4c6, // n0x0f1a c0x0000 (---------------) + I hadano - 0x00328f06, // n0x0f1b c0x0000 (---------------) + I hakone - 0x00297509, // n0x0f1c c0x0000 (---------------) + I hiratsuka - 0x00381b07, // n0x0f1d c0x0000 (---------------) + I isehara - 0x002f4386, // n0x0f1e c0x0000 (---------------) + I kaisei - 0x00249b88, // n0x0f1f c0x0000 (---------------) + I kamakura - 0x0031a308, // n0x0f20 c0x0000 (---------------) + I kiyokawa - 0x0024d447, // n0x0f21 c0x0000 (---------------) + I matsuda - 0x003524ce, // n0x0f22 c0x0000 (---------------) + I minamiashigara - 0x002ba645, // n0x0f23 c0x0000 (---------------) + I miura - 0x00255e45, // n0x0f24 c0x0000 (---------------) + I nakai - 0x0020e4c8, // n0x0f25 c0x0000 (---------------) + I ninomiya - 0x00207bc7, // n0x0f26 c0x0000 (---------------) + I odawara - 0x0022d6c2, // n0x0f27 c0x0000 (---------------) + I oi - 0x002b2f04, // n0x0f28 c0x0000 (---------------) + I oiso - 0x00362b8a, // n0x0f29 c0x0000 (---------------) + I sagamihara - 0x0025c4c8, // n0x0f2a c0x0000 (---------------) + I samukawa - 0x00356a06, // n0x0f2b c0x0000 (---------------) + I tsukui - 0x0028f108, // n0x0f2c c0x0000 (---------------) + I yamakita - 0x0021ec86, // n0x0f2d c0x0000 (---------------) + I yamato - 0x00256748, // n0x0f2e c0x0000 (---------------) + I yokosuka - 0x002a3f08, // n0x0f2f c0x0000 (---------------) + I yugawara - 0x00245cc4, // n0x0f30 c0x0000 (---------------) + I zama - 0x00359085, // n0x0f31 c0x0000 (---------------) + I zushi - 0x0067e804, // n0x0f32 c0x0001 (---------------) ! I city - 0x0067e804, // n0x0f33 c0x0001 (---------------) ! I city - 0x0067e804, // n0x0f34 c0x0001 (---------------) ! I city - 0x00203103, // n0x0f35 c0x0000 (---------------) + I aki - 0x0035b606, // n0x0f36 c0x0000 (---------------) + I geisei - 0x00272b06, // n0x0f37 c0x0000 (---------------) + I hidaka - 0x0029420c, // n0x0f38 c0x0000 (---------------) + I higashitsuno - 0x00205943, // n0x0f39 c0x0000 (---------------) + I ino - 0x002b6c86, // n0x0f3a c0x0000 (---------------) + I kagami - 0x0020f904, // n0x0f3b c0x0000 (---------------) + I kami - 0x002bed08, // n0x0f3c c0x0000 (---------------) + I kitagawa - 0x002c8f85, // n0x0f3d c0x0000 (---------------) + I kochi - 0x00362c86, // n0x0f3e c0x0000 (---------------) + I mihara - 0x002b0508, // n0x0f3f c0x0000 (---------------) + I motoyama - 0x002cb286, // n0x0f40 c0x0000 (---------------) + I muroto - 0x00207106, // n0x0f41 c0x0000 (---------------) + I nahari - 0x00359dc8, // n0x0f42 c0x0000 (---------------) + I nakamura - 0x00298007, // n0x0f43 c0x0000 (---------------) + I nankoku - 0x00352049, // n0x0f44 c0x0000 (---------------) + I nishitosa - 0x002f654a, // n0x0f45 c0x0000 (---------------) + I niyodogawa - 0x0024cb44, // n0x0f46 c0x0000 (---------------) + I ochi - 0x002416c5, // n0x0f47 c0x0000 (---------------) + I okawa - 0x00254ac5, // n0x0f48 c0x0000 (---------------) + I otoyo - 0x0021e446, // n0x0f49 c0x0000 (---------------) + I otsuki - 0x0024ce06, // n0x0f4a c0x0000 (---------------) + I sakawa - 0x0029d206, // n0x0f4b c0x0000 (---------------) + I sukumo - 0x002e22c6, // n0x0f4c c0x0000 (---------------) + I susaki - 0x00352184, // n0x0f4d c0x0000 (---------------) + I tosa - 0x0035218b, // n0x0f4e c0x0000 (---------------) + I tosashimizu - 0x00241604, // n0x0f4f c0x0000 (---------------) + I toyo - 0x00208c85, // n0x0f50 c0x0000 (---------------) + I tsuno - 0x002a2f05, // n0x0f51 c0x0000 (---------------) + I umaji - 0x0026ab06, // n0x0f52 c0x0000 (---------------) + I yasuda - 0x00202948, // n0x0f53 c0x0000 (---------------) + I yusuhara - 0x002793c7, // n0x0f54 c0x0000 (---------------) + I amakusa - 0x0030ad44, // n0x0f55 c0x0000 (---------------) + I arao - 0x00233543, // n0x0f56 c0x0000 (---------------) + I aso - 0x002f7745, // n0x0f57 c0x0000 (---------------) + I choyo - 0x00242947, // n0x0f58 c0x0000 (---------------) + I gyokuto - 0x0029b289, // n0x0f59 c0x0000 (---------------) + I hitoyoshi - 0x002792cb, // n0x0f5a c0x0000 (---------------) + I kamiamakusa - 0x0029ee47, // n0x0f5b c0x0000 (---------------) + I kashima - 0x00213287, // n0x0f5c c0x0000 (---------------) + I kikuchi - 0x002d7704, // n0x0f5d c0x0000 (---------------) + I kosa - 0x002b0408, // n0x0f5e c0x0000 (---------------) + I kumamoto - 0x00329e07, // n0x0f5f c0x0000 (---------------) + I mashiki - 0x0029b4c6, // n0x0f60 c0x0000 (---------------) + I mifune - 0x00241e08, // n0x0f61 c0x0000 (---------------) + I minamata - 0x0028180b, // n0x0f62 c0x0000 (---------------) + I minamioguni - 0x002bb706, // n0x0f63 c0x0000 (---------------) + I nagasu - 0x00214789, // n0x0f64 c0x0000 (---------------) + I nishihara - 0x00281985, // n0x0f65 c0x0000 (---------------) + I oguni - 0x002f6fc3, // n0x0f66 c0x0000 (---------------) + I ozu - 0x002b9b06, // n0x0f67 c0x0000 (---------------) + I sumoto - 0x0021e848, // n0x0f68 c0x0000 (---------------) + I takamori - 0x002139c3, // n0x0f69 c0x0000 (---------------) + I uki - 0x00216443, // n0x0f6a c0x0000 (---------------) + I uto - 0x00277b46, // n0x0f6b c0x0000 (---------------) + I yamaga - 0x0021ec86, // n0x0f6c c0x0000 (---------------) + I yamato - 0x0037dc0a, // n0x0f6d c0x0000 (---------------) + I yatsushiro - 0x00274205, // n0x0f6e c0x0000 (---------------) + I ayabe - 0x002748cb, // n0x0f6f c0x0000 (---------------) + I fukuchiyama - 0x00294e0b, // n0x0f70 c0x0000 (---------------) + I higashiyama - 0x0022d703, // n0x0f71 c0x0000 (---------------) + I ide - 0x0021b783, // n0x0f72 c0x0000 (---------------) + I ine - 0x002a74c4, // n0x0f73 c0x0000 (---------------) + I joyo - 0x00322b87, // n0x0f74 c0x0000 (---------------) + I kameoka - 0x0021e8c4, // n0x0f75 c0x0000 (---------------) + I kamo - 0x0020cb44, // n0x0f76 c0x0000 (---------------) + I kita - 0x00304804, // n0x0f77 c0x0000 (---------------) + I kizu - 0x002eb348, // n0x0f78 c0x0000 (---------------) + I kumiyama - 0x003016c8, // n0x0f79 c0x0000 (---------------) + I kyotamba - 0x002ffa89, // n0x0f7a c0x0000 (---------------) + I kyotanabe - 0x002ef0c8, // n0x0f7b c0x0000 (---------------) + I kyotango - 0x002a7dc7, // n0x0f7c c0x0000 (---------------) + I maizuru - 0x00236f86, // n0x0f7d c0x0000 (---------------) + I minami - 0x002c294f, // n0x0f7e c0x0000 (---------------) + I minamiyamashiro - 0x002ba786, // n0x0f7f c0x0000 (---------------) + I miyazu - 0x002c8f04, // n0x0f80 c0x0000 (---------------) + I muko - 0x0030150a, // n0x0f81 c0x0000 (---------------) + I nagaokakyo - 0x00242847, // n0x0f82 c0x0000 (---------------) + I nakagyo - 0x0020d286, // n0x0f83 c0x0000 (---------------) + I nantan - 0x00286089, // n0x0f84 c0x0000 (---------------) + I oyamazaki - 0x002ffa05, // n0x0f85 c0x0000 (---------------) + I sakyo - 0x002134c5, // n0x0f86 c0x0000 (---------------) + I seika - 0x002ffb46, // n0x0f87 c0x0000 (---------------) + I tanabe - 0x0021a9c3, // n0x0f88 c0x0000 (---------------) + I uji - 0x002f7c89, // n0x0f89 c0x0000 (---------------) + I ujitawara - 0x0021b0c6, // n0x0f8a c0x0000 (---------------) + I wazuka - 0x00322dc9, // n0x0f8b c0x0000 (---------------) + I yamashina - 0x0038a646, // n0x0f8c c0x0000 (---------------) + I yawata - 0x002b9085, // n0x0f8d c0x0000 (---------------) + I asahi - 0x00222905, // n0x0f8e c0x0000 (---------------) + I inabe - 0x00204403, // n0x0f8f c0x0000 (---------------) + I ise - 0x00322cc8, // n0x0f90 c0x0000 (---------------) + I kameyama - 0x00396247, // n0x0f91 c0x0000 (---------------) + I kawagoe - 0x002ead04, // n0x0f92 c0x0000 (---------------) + I kiho - 0x0021e548, // n0x0f93 c0x0000 (---------------) + I kisosaki - 0x0028d584, // n0x0f94 c0x0000 (---------------) + I kiwa - 0x0038e086, // n0x0f95 c0x0000 (---------------) + I komono - 0x0027eb46, // n0x0f96 c0x0000 (---------------) + I kumano - 0x0023db46, // n0x0f97 c0x0000 (---------------) + I kuwana - 0x002c52c9, // n0x0f98 c0x0000 (---------------) + I matsusaka - 0x002b4b45, // n0x0f99 c0x0000 (---------------) + I meiwa - 0x0028d806, // n0x0f9a c0x0000 (---------------) + I mihama - 0x00253d89, // n0x0f9b c0x0000 (---------------) + I minamiise - 0x002b94c6, // n0x0f9c c0x0000 (---------------) + I misugi - 0x002c2a46, // n0x0f9d c0x0000 (---------------) + I miyama - 0x0037abc6, // n0x0f9e c0x0000 (---------------) + I nabari - 0x00209c05, // n0x0f9f c0x0000 (---------------) + I shima - 0x002e2e06, // n0x0fa0 c0x0000 (---------------) + I suzuka - 0x00322744, // n0x0fa1 c0x0000 (---------------) + I tado - 0x00270145, // n0x0fa2 c0x0000 (---------------) + I taiki - 0x002301c4, // n0x0fa3 c0x0000 (---------------) + I taki - 0x00304706, // n0x0fa4 c0x0000 (---------------) + I tamaki - 0x00391284, // n0x0fa5 c0x0000 (---------------) + I toba - 0x00208c83, // n0x0fa6 c0x0000 (---------------) + I tsu - 0x0027e245, // n0x0fa7 c0x0000 (---------------) + I udono - 0x002361c8, // n0x0fa8 c0x0000 (---------------) + I ureshino - 0x0021a287, // n0x0fa9 c0x0000 (---------------) + I watarai - 0x002adcc9, // n0x0faa c0x0000 (---------------) + I yokkaichi - 0x0027e488, // n0x0fab c0x0000 (---------------) + I furukawa - 0x0028e211, // n0x0fac c0x0000 (---------------) + I higashimatsushima - 0x0021308a, // n0x0fad c0x0000 (---------------) + I ishinomaki - 0x00230007, // n0x0fae c0x0000 (---------------) + I iwanuma - 0x002e42c6, // n0x0faf c0x0000 (---------------) + I kakuda - 0x0020f904, // n0x0fb0 c0x0000 (---------------) + I kami - 0x002b3b88, // n0x0fb1 c0x0000 (---------------) + I kawasaki - 0x0020bc09, // n0x0fb2 c0x0000 (---------------) + I kesennuma - 0x002546c8, // n0x0fb3 c0x0000 (---------------) + I marumori - 0x0028e3ca, // n0x0fb4 c0x0000 (---------------) + I matsushima - 0x0029d40d, // n0x0fb5 c0x0000 (---------------) + I minamisanriku - 0x002964c6, // n0x0fb6 c0x0000 (---------------) + I misato - 0x00359ec6, // n0x0fb7 c0x0000 (---------------) + I murata - 0x002d4cc6, // n0x0fb8 c0x0000 (---------------) + I natori - 0x00380187, // n0x0fb9 c0x0000 (---------------) + I ogawara - 0x002967c5, // n0x0fba c0x0000 (---------------) + I ohira - 0x0034c5c7, // n0x0fbb c0x0000 (---------------) + I onagawa - 0x0021e605, // n0x0fbc c0x0000 (---------------) + I osaki - 0x00291204, // n0x0fbd c0x0000 (---------------) + I rifu - 0x0029f686, // n0x0fbe c0x0000 (---------------) + I semine - 0x00300147, // n0x0fbf c0x0000 (---------------) + I shibata - 0x002f798d, // n0x0fc0 c0x0000 (---------------) + I shichikashuku - 0x002857c7, // n0x0fc1 c0x0000 (---------------) + I shikama - 0x00372ac8, // n0x0fc2 c0x0000 (---------------) + I shiogama - 0x00272949, // n0x0fc3 c0x0000 (---------------) + I shiroishi - 0x00222b46, // n0x0fc4 c0x0000 (---------------) + I tagajo - 0x00235285, // n0x0fc5 c0x0000 (---------------) + I taiwa - 0x00215144, // n0x0fc6 c0x0000 (---------------) + I tome - 0x0025d286, // n0x0fc7 c0x0000 (---------------) + I tomiya - 0x0034c706, // n0x0fc8 c0x0000 (---------------) + I wakuya - 0x0025c646, // n0x0fc9 c0x0000 (---------------) + I watari - 0x00292048, // n0x0fca c0x0000 (---------------) + I yamamoto - 0x00209ac3, // n0x0fcb c0x0000 (---------------) + I zao - 0x0020ea43, // n0x0fcc c0x0000 (---------------) + I aya - 0x00309905, // n0x0fcd c0x0000 (---------------) + I ebino - 0x00237fc6, // n0x0fce c0x0000 (---------------) + I gokase - 0x002a3ec5, // n0x0fcf c0x0000 (---------------) + I hyuga - 0x0022c688, // n0x0fd0 c0x0000 (---------------) + I kadogawa - 0x00293bca, // n0x0fd1 c0x0000 (---------------) + I kawaminami - 0x002cd784, // n0x0fd2 c0x0000 (---------------) + I kijo - 0x002bed08, // n0x0fd3 c0x0000 (---------------) + I kitagawa - 0x0028cb08, // n0x0fd4 c0x0000 (---------------) + I kitakata - 0x0026a947, // n0x0fd5 c0x0000 (---------------) + I kitaura - 0x002af709, // n0x0fd6 c0x0000 (---------------) + I kobayashi - 0x002b0108, // n0x0fd7 c0x0000 (---------------) + I kunitomi - 0x0027f287, // n0x0fd8 c0x0000 (---------------) + I kushima - 0x0028b986, // n0x0fd9 c0x0000 (---------------) + I mimata - 0x0020e5ca, // n0x0fda c0x0000 (---------------) + I miyakonojo - 0x0025d308, // n0x0fdb c0x0000 (---------------) + I miyazaki - 0x002ae6c9, // n0x0fdc c0x0000 (---------------) + I morotsuka - 0x0027ac08, // n0x0fdd c0x0000 (---------------) + I nichinan - 0x0021bd49, // n0x0fde c0x0000 (---------------) + I nishimera - 0x00348e47, // n0x0fdf c0x0000 (---------------) + I nobeoka - 0x00340745, // n0x0fe0 c0x0000 (---------------) + I saito - 0x00298ec6, // n0x0fe1 c0x0000 (---------------) + I shiiba - 0x002890c8, // n0x0fe2 c0x0000 (---------------) + I shintomi - 0x0024b388, // n0x0fe3 c0x0000 (---------------) + I takaharu - 0x002155c8, // n0x0fe4 c0x0000 (---------------) + I takanabe - 0x00218288, // n0x0fe5 c0x0000 (---------------) + I takazaki - 0x00208c85, // n0x0fe6 c0x0000 (---------------) + I tsuno - 0x00205884, // n0x0fe7 c0x0000 (---------------) + I achi - 0x00395f48, // n0x0fe8 c0x0000 (---------------) + I agematsu - 0x00200b44, // n0x0fe9 c0x0000 (---------------) + I anan - 0x00390ec4, // n0x0fea c0x0000 (---------------) + I aoki - 0x002b9085, // n0x0feb c0x0000 (---------------) + I asahi - 0x002882c7, // n0x0fec c0x0000 (---------------) + I azumino - 0x0039de89, // n0x0fed c0x0000 (---------------) + I chikuhoku - 0x00268347, // n0x0fee c0x0000 (---------------) + I chikuma - 0x002058c5, // n0x0fef c0x0000 (---------------) + I chino - 0x00270c06, // n0x0ff0 c0x0000 (---------------) + I fujimi - 0x00334346, // n0x0ff1 c0x0000 (---------------) + I hakuba - 0x00202a44, // n0x0ff2 c0x0000 (---------------) + I hara - 0x00297846, // n0x0ff3 c0x0000 (---------------) + I hiraya - 0x0025ca04, // n0x0ff4 c0x0000 (---------------) + I iida - 0x002545c6, // n0x0ff5 c0x0000 (---------------) + I iijima - 0x00300486, // n0x0ff6 c0x0000 (---------------) + I iiyama - 0x00217506, // n0x0ff7 c0x0000 (---------------) + I iizuna - 0x00202b85, // n0x0ff8 c0x0000 (---------------) + I ikeda - 0x0022c547, // n0x0ff9 c0x0000 (---------------) + I ikusaka - 0x002020c3, // n0x0ffa c0x0000 (---------------) + I ina - 0x00224dc9, // n0x0ffb c0x0000 (---------------) + I karuizawa - 0x002f4088, // n0x0ffc c0x0000 (---------------) + I kawakami - 0x0021e544, // n0x0ffd c0x0000 (---------------) + I kiso - 0x0027f10d, // n0x0ffe c0x0000 (---------------) + I kisofukushima - 0x0028c988, // n0x0fff c0x0000 (---------------) + I kitaaiki - 0x002852c8, // n0x1000 c0x0000 (---------------) + I komagane - 0x002ae646, // n0x1001 c0x0000 (---------------) + I komoro - 0x003232c9, // n0x1002 c0x0000 (---------------) + I matsukawa - 0x002b9a49, // n0x1003 c0x0000 (---------------) + I matsumoto - 0x0025be45, // n0x1004 c0x0000 (---------------) + I miasa - 0x00293cca, // n0x1005 c0x0000 (---------------) + I minamiaiki - 0x0026710a, // n0x1006 c0x0000 (---------------) + I minamimaki - 0x002769cc, // n0x1007 c0x0000 (---------------) + I minamiminowa - 0x00276b46, // n0x1008 c0x0000 (---------------) + I minowa - 0x002714c6, // n0x1009 c0x0000 (---------------) + I miyada - 0x002bb006, // n0x100a c0x0000 (---------------) + I miyota - 0x0024ff49, // n0x100b c0x0000 (---------------) + I mochizuki - 0x0030f1c6, // n0x100c c0x0000 (---------------) + I nagano - 0x00296ac6, // n0x100d c0x0000 (---------------) + I nagawa - 0x002a1946, // n0x100e c0x0000 (---------------) + I nagiso - 0x002a6788, // n0x100f c0x0000 (---------------) + I nakagawa - 0x00303406, // n0x1010 c0x0000 (---------------) + I nakano - 0x002c560b, // n0x1011 c0x0000 (---------------) + I nozawaonsen - 0x00288445, // n0x1012 c0x0000 (---------------) + I obuse - 0x00227945, // n0x1013 c0x0000 (---------------) + I ogawa - 0x00271745, // n0x1014 c0x0000 (---------------) + I okaya - 0x00389cc6, // n0x1015 c0x0000 (---------------) + I omachi - 0x0020e583, // n0x1016 c0x0000 (---------------) + I omi - 0x0023dac6, // n0x1017 c0x0000 (---------------) + I ookuwa - 0x00285747, // n0x1018 c0x0000 (---------------) + I ooshika - 0x002b3a45, // n0x1019 c0x0000 (---------------) + I otaki - 0x00254bc5, // n0x101a c0x0000 (---------------) + I otari - 0x002dc785, // n0x101b c0x0000 (---------------) + I sakae - 0x002f5506, // n0x101c c0x0000 (---------------) + I sakaki - 0x0025bf04, // n0x101d c0x0000 (---------------) + I saku - 0x00368506, // n0x101e c0x0000 (---------------) + I sakuho - 0x00265109, // n0x101f c0x0000 (---------------) + I shimosuwa - 0x00389b4c, // n0x1020 c0x0000 (---------------) + I shinanomachi - 0x00290f48, // n0x1021 c0x0000 (---------------) + I shiojiri - 0x0020b584, // n0x1022 c0x0000 (---------------) + I suwa - 0x002e2a46, // n0x1023 c0x0000 (---------------) + I suzaka - 0x00297e86, // n0x1024 c0x0000 (---------------) + I takagi - 0x0021e848, // n0x1025 c0x0000 (---------------) + I takamori - 0x002b98c8, // n0x1026 c0x0000 (---------------) + I takayama - 0x00389a49, // n0x1027 c0x0000 (---------------) + I tateshina - 0x00208c07, // n0x1028 c0x0000 (---------------) + I tatsuno - 0x00366a09, // n0x1029 c0x0000 (---------------) + I togakushi - 0x00269086, // n0x102a c0x0000 (---------------) + I togura - 0x0022b304, // n0x102b c0x0000 (---------------) + I tomi - 0x0020b204, // n0x102c c0x0000 (---------------) + I ueda - 0x00256304, // n0x102d c0x0000 (---------------) + I wada - 0x00277b48, // n0x102e c0x0000 (---------------) + I yamagata - 0x0039dcca, // n0x102f c0x0000 (---------------) + I yamanouchi - 0x00348746, // n0x1030 c0x0000 (---------------) + I yasaka - 0x0034dd87, // n0x1031 c0x0000 (---------------) + I yasuoka - 0x00330fc7, // n0x1032 c0x0000 (---------------) + I chijiwa - 0x002a55c5, // n0x1033 c0x0000 (---------------) + I futsu - 0x0027f844, // n0x1034 c0x0000 (---------------) + I goto - 0x00284886, // n0x1035 c0x0000 (---------------) + I hasami - 0x002f8fc6, // n0x1036 c0x0000 (---------------) + I hirado - 0x0021eb43, // n0x1037 c0x0000 (---------------) + I iki - 0x002f3ec7, // n0x1038 c0x0000 (---------------) + I isahaya - 0x0030a408, // n0x1039 c0x0000 (---------------) + I kawatana - 0x0025bf8a, // n0x103a c0x0000 (---------------) + I kuchinotsu - 0x002cbd08, // n0x103b c0x0000 (---------------) + I matsuura - 0x002cd608, // n0x103c c0x0000 (---------------) + I nagasaki - 0x003912c5, // n0x103d c0x0000 (---------------) + I obama - 0x0024a705, // n0x103e c0x0000 (---------------) + I omura - 0x002a8f05, // n0x103f c0x0000 (---------------) + I oseto - 0x002a5986, // n0x1040 c0x0000 (---------------) + I saikai - 0x002d5086, // n0x1041 c0x0000 (---------------) + I sasebo - 0x00210945, // n0x1042 c0x0000 (---------------) + I seihi - 0x002bd0c9, // n0x1043 c0x0000 (---------------) + I shimabara - 0x0027f64c, // n0x1044 c0x0000 (---------------) + I shinkamigoto - 0x002a8fc7, // n0x1045 c0x0000 (---------------) + I togitsu - 0x0028e448, // n0x1046 c0x0000 (---------------) + I tsushima - 0x00284ec5, // n0x1047 c0x0000 (---------------) + I unzen - 0x0067e804, // n0x1048 c0x0001 (---------------) ! I city - 0x00347c84, // n0x1049 c0x0000 (---------------) + I ando - 0x002a9e84, // n0x104a c0x0000 (---------------) + I gose - 0x00205a06, // n0x104b c0x0000 (---------------) + I heguri - 0x0029598e, // n0x104c c0x0000 (---------------) + I higashiyoshino - 0x00213547, // n0x104d c0x0000 (---------------) + I ikaruga - 0x00285285, // n0x104e c0x0000 (---------------) + I ikoma - 0x0021ea8c, // n0x104f c0x0000 (---------------) + I kamikitayama - 0x0028d447, // n0x1050 c0x0000 (---------------) + I kanmaki - 0x003000c7, // n0x1051 c0x0000 (---------------) + I kashiba - 0x00308a09, // n0x1052 c0x0000 (---------------) + I kashihara - 0x00219449, // n0x1053 c0x0000 (---------------) + I katsuragi - 0x0027e585, // n0x1054 c0x0000 (---------------) + I kawai - 0x002f4088, // n0x1055 c0x0000 (---------------) + I kawakami - 0x002e33c9, // n0x1056 c0x0000 (---------------) + I kawanishi - 0x002d27c5, // n0x1057 c0x0000 (---------------) + I koryo - 0x002b3988, // n0x1058 c0x0000 (---------------) + I kurotaki - 0x00260b86, // n0x1059 c0x0000 (---------------) + I mitsue - 0x002c3ac6, // n0x105a c0x0000 (---------------) + I miyake - 0x002b8c84, // n0x105b c0x0000 (---------------) + I nara - 0x00380688, // n0x105c c0x0000 (---------------) + I nosegawa - 0x00222d03, // n0x105d c0x0000 (---------------) + I oji - 0x0037e4c4, // n0x105e c0x0000 (---------------) + I ouda - 0x002f77c5, // n0x105f c0x0000 (---------------) + I oyodo - 0x002fe347, // n0x1060 c0x0000 (---------------) + I sakurai - 0x00208445, // n0x1061 c0x0000 (---------------) + I sango - 0x00278b49, // n0x1062 c0x0000 (---------------) + I shimoichi - 0x0025fc0d, // n0x1063 c0x0000 (---------------) + I shimokitayama - 0x0027d4c6, // n0x1064 c0x0000 (---------------) + I shinjo - 0x00233584, // n0x1065 c0x0000 (---------------) + I soni - 0x0028ba88, // n0x1066 c0x0000 (---------------) + I takatori - 0x00270e4a, // n0x1067 c0x0000 (---------------) + I tawaramoto - 0x002160c7, // n0x1068 c0x0000 (---------------) + I tenkawa - 0x0035a785, // n0x1069 c0x0000 (---------------) + I tenri - 0x0024d543, // n0x106a c0x0000 (---------------) + I uda - 0x00294fce, // n0x106b c0x0000 (---------------) + I yamatokoriyama - 0x0021ec8c, // n0x106c c0x0000 (---------------) + I yamatotakada - 0x002e7d87, // n0x106d c0x0000 (---------------) + I yamazoe - 0x00295b47, // n0x106e c0x0000 (---------------) + I yoshino - 0x00201003, // n0x106f c0x0000 (---------------) + I aga - 0x0030f205, // n0x1070 c0x0000 (---------------) + I agano - 0x002a9e85, // n0x1071 c0x0000 (---------------) + I gosen - 0x0028f4c8, // n0x1072 c0x0000 (---------------) + I itoigawa - 0x0028aec9, // n0x1073 c0x0000 (---------------) + I izumozaki - 0x0020b486, // n0x1074 c0x0000 (---------------) + I joetsu - 0x0021e8c4, // n0x1075 c0x0000 (---------------) + I kamo - 0x0022ff46, // n0x1076 c0x0000 (---------------) + I kariwa - 0x0031a0cb, // n0x1077 c0x0000 (---------------) + I kashiwazaki - 0x002ab94c, // n0x1078 c0x0000 (---------------) + I minamiuonuma - 0x00229dc7, // n0x1079 c0x0000 (---------------) + I mitsuke - 0x002c8c45, // n0x107a c0x0000 (---------------) + I muika - 0x00371b88, // n0x107b c0x0000 (---------------) + I murakami - 0x0024d205, // n0x107c c0x0000 (---------------) + I myoko - 0x00301507, // n0x107d c0x0000 (---------------) + I nagaoka - 0x0036b607, // n0x107e c0x0000 (---------------) + I niigata - 0x00243605, // n0x107f c0x0000 (---------------) + I ojiya - 0x0020e583, // n0x1080 c0x0000 (---------------) + I omi - 0x0035da84, // n0x1081 c0x0000 (---------------) + I sado - 0x0020a085, // n0x1082 c0x0000 (---------------) + I sanjo - 0x002f6205, // n0x1083 c0x0000 (---------------) + I seiro - 0x002f6206, // n0x1084 c0x0000 (---------------) + I seirou - 0x00262888, // n0x1085 c0x0000 (---------------) + I sekikawa - 0x00300147, // n0x1086 c0x0000 (---------------) + I shibata - 0x0034e286, // n0x1087 c0x0000 (---------------) + I tagami - 0x0030ee86, // n0x1088 c0x0000 (---------------) + I tainai - 0x0027fe46, // n0x1089 c0x0000 (---------------) + I tochio - 0x00287c09, // n0x108a c0x0000 (---------------) + I tokamachi - 0x00378b87, // n0x108b c0x0000 (---------------) + I tsubame - 0x0020b306, // n0x108c c0x0000 (---------------) + I tsunan - 0x002abac6, // n0x108d c0x0000 (---------------) + I uonuma - 0x002436c6, // n0x108e c0x0000 (---------------) + I yahiko - 0x0029ed05, // n0x108f c0x0000 (---------------) + I yoita - 0x00214e06, // n0x1090 c0x0000 (---------------) + I yuzawa - 0x0037f305, // n0x1091 c0x0000 (---------------) + I beppu - 0x002c3708, // n0x1092 c0x0000 (---------------) + I bungoono - 0x002873cb, // n0x1093 c0x0000 (---------------) + I bungotakada - 0x00284686, // n0x1094 c0x0000 (---------------) + I hasama - 0x00331004, // n0x1095 c0x0000 (---------------) + I hiji - 0x002af209, // n0x1096 c0x0000 (---------------) + I himeshima - 0x00299f44, // n0x1097 c0x0000 (---------------) + I hita - 0x00260b08, // n0x1098 c0x0000 (---------------) + I kamitsue - 0x00334507, // n0x1099 c0x0000 (---------------) + I kokonoe - 0x0027a304, // n0x109a c0x0000 (---------------) + I kuju - 0x002aeb88, // n0x109b c0x0000 (---------------) + I kunisaki - 0x002b5004, // n0x109c c0x0000 (---------------) + I kusu - 0x0029ed44, // n0x109d c0x0000 (---------------) + I oita - 0x0027f045, // n0x109e c0x0000 (---------------) + I saiki - 0x002d3b06, // n0x109f c0x0000 (---------------) + I taketa - 0x002eb287, // n0x10a0 c0x0000 (---------------) + I tsukumi - 0x00204783, // n0x10a1 c0x0000 (---------------) + I usa - 0x00294a85, // n0x10a2 c0x0000 (---------------) + I usuki - 0x002b7284, // n0x10a3 c0x0000 (---------------) + I yufu - 0x00255e86, // n0x10a4 c0x0000 (---------------) + I akaiwa - 0x0025bec8, // n0x10a5 c0x0000 (---------------) + I asakuchi - 0x0030a145, // n0x10a6 c0x0000 (---------------) + I bizen - 0x00287089, // n0x10a7 c0x0000 (---------------) + I hayashima - 0x002bebc5, // n0x10a8 c0x0000 (---------------) + I ibara - 0x002b6c88, // n0x10a9 c0x0000 (---------------) + I kagamino - 0x002fec47, // n0x10aa c0x0000 (---------------) + I kasaoka - 0x0037b8c8, // n0x10ab c0x0000 (---------------) + I kibichuo - 0x002adb07, // n0x10ac c0x0000 (---------------) + I kumenan - 0x00357a89, // n0x10ad c0x0000 (---------------) + I kurashiki - 0x0035a506, // n0x10ae c0x0000 (---------------) + I maniwa - 0x00318986, // n0x10af c0x0000 (---------------) + I misaki - 0x00261984, // n0x10b0 c0x0000 (---------------) + I nagi - 0x0028b8c5, // n0x10b1 c0x0000 (---------------) + I niimi - 0x002e994c, // n0x10b2 c0x0000 (---------------) + I nishiawakura - 0x00271747, // n0x10b3 c0x0000 (---------------) + I okayama - 0x00271e07, // n0x10b4 c0x0000 (---------------) + I satosho - 0x00330e88, // n0x10b5 c0x0000 (---------------) + I setouchi - 0x0027d4c6, // n0x10b6 c0x0000 (---------------) + I shinjo - 0x00296704, // n0x10b7 c0x0000 (---------------) + I shoo - 0x00317984, // n0x10b8 c0x0000 (---------------) + I soja - 0x00277cc9, // n0x10b9 c0x0000 (---------------) + I takahashi - 0x002bb106, // n0x10ba c0x0000 (---------------) + I tamano - 0x0020d747, // n0x10bb c0x0000 (---------------) + I tsuyama - 0x0027cc04, // n0x10bc c0x0000 (---------------) + I wake - 0x002a2b46, // n0x10bd c0x0000 (---------------) + I yakage - 0x00263f85, // n0x10be c0x0000 (---------------) + I aguni - 0x0029a247, // n0x10bf c0x0000 (---------------) + I ginowan - 0x002c5586, // n0x10c0 c0x0000 (---------------) + I ginoza - 0x002460c9, // n0x10c1 c0x0000 (---------------) + I gushikami - 0x00276807, // n0x10c2 c0x0000 (---------------) + I haebaru - 0x00260407, // n0x10c3 c0x0000 (---------------) + I higashi - 0x00297386, // n0x10c4 c0x0000 (---------------) + I hirara - 0x0022c005, // n0x10c5 c0x0000 (---------------) + I iheya - 0x00275fc8, // n0x10c6 c0x0000 (---------------) + I ishigaki - 0x0021af48, // n0x10c7 c0x0000 (---------------) + I ishikawa - 0x00237186, // n0x10c8 c0x0000 (---------------) + I itoman - 0x0030a185, // n0x10c9 c0x0000 (---------------) + I izena - 0x002bdd46, // n0x10ca c0x0000 (---------------) + I kadena - 0x00214a83, // n0x10cb c0x0000 (---------------) + I kin - 0x0028f349, // n0x10cc c0x0000 (---------------) + I kitadaito - 0x0029cf8e, // n0x10cd c0x0000 (---------------) + I kitanakagusuku - 0x002abfc8, // n0x10ce c0x0000 (---------------) + I kumejima - 0x0028d688, // n0x10cf c0x0000 (---------------) + I kunigami - 0x00236f8b, // n0x10d0 c0x0000 (---------------) + I minamidaito - 0x002872c6, // n0x10d1 c0x0000 (---------------) + I motobu - 0x0022d884, // n0x10d2 c0x0000 (---------------) + I nago - 0x00207104, // n0x10d3 c0x0000 (---------------) + I naha - 0x0029d08a, // n0x10d4 c0x0000 (---------------) + I nakagusuku - 0x00216787, // n0x10d5 c0x0000 (---------------) + I nakijin - 0x0020b3c5, // n0x10d6 c0x0000 (---------------) + I nanjo - 0x00214789, // n0x10d7 c0x0000 (---------------) + I nishihara - 0x002b2b85, // n0x10d8 c0x0000 (---------------) + I ogimi - 0x00390f07, // n0x10d9 c0x0000 (---------------) + I okinawa - 0x002f8604, // n0x10da c0x0000 (---------------) + I onna - 0x0039da87, // n0x10db c0x0000 (---------------) + I shimoji - 0x002eedc8, // n0x10dc c0x0000 (---------------) + I taketomi - 0x002a8a46, // n0x10dd c0x0000 (---------------) + I tarama - 0x002f29c9, // n0x10de c0x0000 (---------------) + I tokashiki - 0x002b020a, // n0x10df c0x0000 (---------------) + I tomigusuku - 0x00216706, // n0x10e0 c0x0000 (---------------) + I tonaki - 0x0028c4c6, // n0x10e1 c0x0000 (---------------) + I urasoe - 0x002a2e85, // n0x10e2 c0x0000 (---------------) + I uruma - 0x003704c5, // n0x10e3 c0x0000 (---------------) + I yaese - 0x00321bc7, // n0x10e4 c0x0000 (---------------) + I yomitan - 0x00322048, // n0x10e5 c0x0000 (---------------) + I yonabaru - 0x00263ec8, // n0x10e6 c0x0000 (---------------) + I yonaguni - 0x00245cc6, // n0x10e7 c0x0000 (---------------) + I zamami - 0x00222985, // n0x10e8 c0x0000 (---------------) + I abeno - 0x0024cb8e, // n0x10e9 c0x0000 (---------------) + I chihayaakasaka - 0x00359404, // n0x10ea c0x0000 (---------------) + I chuo - 0x00237105, // n0x10eb c0x0000 (---------------) + I daito - 0x00270589, // n0x10ec c0x0000 (---------------) + I fujiidera - 0x002430c8, // n0x10ed c0x0000 (---------------) + I habikino - 0x00390386, // n0x10ee c0x0000 (---------------) + I hannan - 0x00291ccc, // n0x10ef c0x0000 (---------------) + I higashiosaka - 0x002937d0, // n0x10f0 c0x0000 (---------------) + I higashisumiyoshi - 0x002955cf, // n0x10f1 c0x0000 (---------------) + I higashiyodogawa - 0x00296808, // n0x10f2 c0x0000 (---------------) + I hirakata - 0x002bebc7, // n0x10f3 c0x0000 (---------------) + I ibaraki - 0x00202b85, // n0x10f4 c0x0000 (---------------) + I ikeda - 0x0026a785, // n0x10f5 c0x0000 (---------------) + I izumi - 0x002eb109, // n0x10f6 c0x0000 (---------------) + I izumiotsu - 0x0028b289, // n0x10f7 c0x0000 (---------------) + I izumisano - 0x0023a606, // n0x10f8 c0x0000 (---------------) + I kadoma - 0x002f1487, // n0x10f9 c0x0000 (---------------) + I kaizuka - 0x00200b05, // n0x10fa c0x0000 (---------------) + I kanan - 0x00310789, // n0x10fb c0x0000 (---------------) + I kashiwara - 0x0030bb86, // n0x10fc c0x0000 (---------------) + I katano - 0x0030f00d, // n0x10fd c0x0000 (---------------) + I kawachinagano - 0x00278009, // n0x10fe c0x0000 (---------------) + I kishiwada - 0x0020cb44, // n0x10ff c0x0000 (---------------) + I kita - 0x002abd48, // n0x1100 c0x0000 (---------------) + I kumatori - 0x00396009, // n0x1101 c0x0000 (---------------) + I matsubara - 0x00348906, // n0x1102 c0x0000 (---------------) + I minato - 0x00270d05, // n0x1103 c0x0000 (---------------) + I minoh - 0x00318986, // n0x1104 c0x0000 (---------------) + I misaki - 0x0030ae49, // n0x1105 c0x0000 (---------------) + I moriguchi - 0x00378788, // n0x1106 c0x0000 (---------------) + I neyagawa - 0x002123c5, // n0x1107 c0x0000 (---------------) + I nishi - 0x00262804, // n0x1108 c0x0000 (---------------) + I nose - 0x00291e8b, // n0x1109 c0x0000 (---------------) + I osakasayama - 0x003487c5, // n0x110a c0x0000 (---------------) + I sakai - 0x00291fc6, // n0x110b c0x0000 (---------------) + I sayama - 0x00279846, // n0x110c c0x0000 (---------------) + I sennan - 0x002465c6, // n0x110d c0x0000 (---------------) + I settsu - 0x002fe74b, // n0x110e c0x0000 (---------------) + I shijonawate - 0x00287189, // n0x110f c0x0000 (---------------) + I shimamoto - 0x00210c85, // n0x1110 c0x0000 (---------------) + I suita - 0x0037b687, // n0x1111 c0x0000 (---------------) + I tadaoka - 0x00213006, // n0x1112 c0x0000 (---------------) + I taishi - 0x00359fc6, // n0x1113 c0x0000 (---------------) + I tajiri - 0x00278a08, // n0x1114 c0x0000 (---------------) + I takaishi - 0x002d3c09, // n0x1115 c0x0000 (---------------) + I takatsuki - 0x0037288c, // n0x1116 c0x0000 (---------------) + I tondabayashi - 0x00242748, // n0x1117 c0x0000 (---------------) + I toyonaka - 0x00249546, // n0x1118 c0x0000 (---------------) + I toyono - 0x00340343, // n0x1119 c0x0000 (---------------) + I yao - 0x00308506, // n0x111a c0x0000 (---------------) + I ariake - 0x0026a445, // n0x111b c0x0000 (---------------) + I arita - 0x00274c08, // n0x111c c0x0000 (---------------) + I fukudomi - 0x00222386, // n0x111d c0x0000 (---------------) + I genkai - 0x0029a488, // n0x111e c0x0000 (---------------) + I hamatama - 0x0023d705, // n0x111f c0x0000 (---------------) + I hizen - 0x00273845, // n0x1120 c0x0000 (---------------) + I imari - 0x0028ce88, // n0x1121 c0x0000 (---------------) + I kamimine - 0x002e2b47, // n0x1122 c0x0000 (---------------) + I kanzaki - 0x0034dec7, // n0x1123 c0x0000 (---------------) + I karatsu - 0x0029ee47, // n0x1124 c0x0000 (---------------) + I kashima - 0x0021e6c8, // n0x1125 c0x0000 (---------------) + I kitagata - 0x00286248, // n0x1126 c0x0000 (---------------) + I kitahata - 0x00238ec6, // n0x1127 c0x0000 (---------------) + I kiyama - 0x00304547, // n0x1128 c0x0000 (---------------) + I kouhoku - 0x002a4bc7, // n0x1129 c0x0000 (---------------) + I kyuragi - 0x0026a30a, // n0x112a c0x0000 (---------------) + I nishiarita - 0x00225d03, // n0x112b c0x0000 (---------------) + I ogi - 0x00389cc6, // n0x112c c0x0000 (---------------) + I omachi - 0x0020b6c5, // n0x112d c0x0000 (---------------) + I ouchi - 0x0035a904, // n0x112e c0x0000 (---------------) + I saga - 0x00272949, // n0x112f c0x0000 (---------------) + I shiroishi - 0x00357a04, // n0x1130 c0x0000 (---------------) + I taku - 0x0021a304, // n0x1131 c0x0000 (---------------) + I tara - 0x00297d04, // n0x1132 c0x0000 (---------------) + I tosu - 0x00295b4b, // n0x1133 c0x0000 (---------------) + I yoshinogari - 0x00396187, // n0x1134 c0x0000 (---------------) + I arakawa - 0x0024cdc5, // n0x1135 c0x0000 (---------------) + I asaka - 0x00289e48, // n0x1136 c0x0000 (---------------) + I chichibu - 0x00270c06, // n0x1137 c0x0000 (---------------) + I fujimi - 0x00270c08, // n0x1138 c0x0000 (---------------) + I fujimino - 0x00274146, // n0x1139 c0x0000 (---------------) + I fukaya - 0x0039ed85, // n0x113a c0x0000 (---------------) + I hanno - 0x00282d85, // n0x113b c0x0000 (---------------) + I hanyu - 0x00285006, // n0x113c c0x0000 (---------------) + I hasuda - 0x002854c8, // n0x113d c0x0000 (---------------) + I hatogaya - 0x00285fc8, // n0x113e c0x0000 (---------------) + I hatoyama - 0x00272b06, // n0x113f c0x0000 (---------------) + I hidaka - 0x00289c8f, // n0x1140 c0x0000 (---------------) + I higashichichibu - 0x0028ee10, // n0x1141 c0x0000 (---------------) + I higashimatsuyama - 0x00201785, // n0x1142 c0x0000 (---------------) + I honjo - 0x002020c3, // n0x1143 c0x0000 (---------------) + I ina - 0x0024a3c5, // n0x1144 c0x0000 (---------------) + I iruma - 0x002f4cc8, // n0x1145 c0x0000 (---------------) + I iwatsuki - 0x0028b189, // n0x1146 c0x0000 (---------------) + I kamiizumi - 0x002e0f88, // n0x1147 c0x0000 (---------------) + I kamikawa - 0x002fed88, // n0x1148 c0x0000 (---------------) + I kamisato - 0x00362648, // n0x1149 c0x0000 (---------------) + I kasukabe - 0x00396247, // n0x114a c0x0000 (---------------) + I kawagoe - 0x002708c9, // n0x114b c0x0000 (---------------) + I kawaguchi - 0x0029a688, // n0x114c c0x0000 (---------------) + I kawajima - 0x00227ec4, // n0x114d c0x0000 (---------------) + I kazo - 0x00297b88, // n0x114e c0x0000 (---------------) + I kitamoto - 0x0026fec9, // n0x114f c0x0000 (---------------) + I koshigaya - 0x003269c7, // n0x1150 c0x0000 (---------------) + I kounosu - 0x0029cf04, // n0x1151 c0x0000 (---------------) + I kuki - 0x00268408, // n0x1152 c0x0000 (---------------) + I kumagaya - 0x0022c30a, // n0x1153 c0x0000 (---------------) + I matsubushi - 0x002cf1c6, // n0x1154 c0x0000 (---------------) + I minano - 0x002964c6, // n0x1155 c0x0000 (---------------) + I misato - 0x0021d249, // n0x1156 c0x0000 (---------------) + I miyashiro - 0x00293a07, // n0x1157 c0x0000 (---------------) + I miyoshi - 0x002c5148, // n0x1158 c0x0000 (---------------) + I moroyama - 0x0037f588, // n0x1159 c0x0000 (---------------) + I nagatoro - 0x0027ca88, // n0x115a c0x0000 (---------------) + I namegawa - 0x0034d8c5, // n0x115b c0x0000 (---------------) + I niiza - 0x00371485, // n0x115c c0x0000 (---------------) + I ogano - 0x00227945, // n0x115d c0x0000 (---------------) + I ogawa - 0x002a9e45, // n0x115e c0x0000 (---------------) + I ogose - 0x002e4ac7, // n0x115f c0x0000 (---------------) + I okegawa - 0x0020e585, // n0x1160 c0x0000 (---------------) + I omiya - 0x002b3a45, // n0x1161 c0x0000 (---------------) + I otaki - 0x00325386, // n0x1162 c0x0000 (---------------) + I ranzan - 0x002e0ec7, // n0x1163 c0x0000 (---------------) + I ryokami - 0x002ecc47, // n0x1164 c0x0000 (---------------) + I saitama - 0x0022c606, // n0x1165 c0x0000 (---------------) + I sakado - 0x002ca185, // n0x1166 c0x0000 (---------------) + I satte - 0x00291fc6, // n0x1167 c0x0000 (---------------) + I sayama - 0x00247f45, // n0x1168 c0x0000 (---------------) + I shiki - 0x002a28c8, // n0x1169 c0x0000 (---------------) + I shiraoka - 0x002d1484, // n0x116a c0x0000 (---------------) + I soka - 0x002b9546, // n0x116b c0x0000 (---------------) + I sugito - 0x003338c4, // n0x116c c0x0000 (---------------) + I toda - 0x00221b48, // n0x116d c0x0000 (---------------) + I tokigawa - 0x003814ca, // n0x116e c0x0000 (---------------) + I tokorozawa - 0x0027360c, // n0x116f c0x0000 (---------------) + I tsurugashima - 0x0037fc85, // n0x1170 c0x0000 (---------------) + I urawa - 0x00380246, // n0x1171 c0x0000 (---------------) + I warabi - 0x00372a46, // n0x1172 c0x0000 (---------------) + I yashio - 0x0031ab06, // n0x1173 c0x0000 (---------------) + I yokoze - 0x002495c4, // n0x1174 c0x0000 (---------------) + I yono - 0x0037f945, // n0x1175 c0x0000 (---------------) + I yorii - 0x00273f87, // n0x1176 c0x0000 (---------------) + I yoshida - 0x00293a89, // n0x1177 c0x0000 (---------------) + I yoshikawa - 0x0029b387, // n0x1178 c0x0000 (---------------) + I yoshimi - 0x0067e804, // n0x1179 c0x0001 (---------------) ! I city - 0x0067e804, // n0x117a c0x0001 (---------------) ! I city - 0x0030abc5, // n0x117b c0x0000 (---------------) + I aisho - 0x0022d3c4, // n0x117c c0x0000 (---------------) + I gamo - 0x0029168a, // n0x117d c0x0000 (---------------) + I higashiomi - 0x00270a86, // n0x117e c0x0000 (---------------) + I hikone - 0x00348b04, // n0x117f c0x0000 (---------------) + I koka - 0x0020d205, // n0x1180 c0x0000 (---------------) + I konan - 0x00356245, // n0x1181 c0x0000 (---------------) + I kosei - 0x002f8ec4, // n0x1182 c0x0000 (---------------) + I koto - 0x00279487, // n0x1183 c0x0000 (---------------) + I kusatsu - 0x00335607, // n0x1184 c0x0000 (---------------) + I maibara - 0x002c4788, // n0x1185 c0x0000 (---------------) + I moriyama - 0x00302488, // n0x1186 c0x0000 (---------------) + I nagahama - 0x002123c9, // n0x1187 c0x0000 (---------------) + I nishiazai - 0x0024f5c8, // n0x1188 c0x0000 (---------------) + I notogawa - 0x0029184b, // n0x1189 c0x0000 (---------------) + I omihachiman - 0x0021e444, // n0x118a c0x0000 (---------------) + I otsu - 0x002f6985, // n0x118b c0x0000 (---------------) + I ritto - 0x00276705, // n0x118c c0x0000 (---------------) + I ryuoh - 0x0029edc9, // n0x118d c0x0000 (---------------) + I takashima - 0x002d3c09, // n0x118e c0x0000 (---------------) + I takatsuki - 0x002af108, // n0x118f c0x0000 (---------------) + I torahime - 0x00254088, // n0x1190 c0x0000 (---------------) + I toyosato - 0x0026ab04, // n0x1191 c0x0000 (---------------) + I yasu - 0x00297ec5, // n0x1192 c0x0000 (---------------) + I akagi - 0x00201383, // n0x1193 c0x0000 (---------------) + I ama - 0x0021e405, // n0x1194 c0x0000 (---------------) + I gotsu - 0x0028d886, // n0x1195 c0x0000 (---------------) + I hamada - 0x0028ad0c, // n0x1196 c0x0000 (---------------) + I higashiizumo - 0x0021afc6, // n0x1197 c0x0000 (---------------) + I hikawa - 0x00247f86, // n0x1198 c0x0000 (---------------) + I hikimi - 0x0028aec5, // n0x1199 c0x0000 (---------------) + I izumo - 0x002f5588, // n0x119a c0x0000 (---------------) + I kakinoki - 0x002abbc6, // n0x119b c0x0000 (---------------) + I masuda - 0x002e4446, // n0x119c c0x0000 (---------------) + I matsue - 0x002964c6, // n0x119d c0x0000 (---------------) + I misato - 0x002280cc, // n0x119e c0x0000 (---------------) + I nishinoshima - 0x0025c804, // n0x119f c0x0000 (---------------) + I ohda - 0x0027ff8a, // n0x11a0 c0x0000 (---------------) + I okinoshima - 0x00390548, // n0x11a1 c0x0000 (---------------) + I okuizumo - 0x0028ab47, // n0x11a2 c0x0000 (---------------) + I shimane - 0x00241f86, // n0x11a3 c0x0000 (---------------) + I tamayu - 0x0020b547, // n0x11a4 c0x0000 (---------------) + I tsuwano - 0x002d9e05, // n0x11a5 c0x0000 (---------------) + I unnan - 0x002569c6, // n0x11a6 c0x0000 (---------------) + I yakumo - 0x0034b606, // n0x11a7 c0x0000 (---------------) + I yasugi - 0x003745c7, // n0x11a8 c0x0000 (---------------) + I yatsuka - 0x0021a344, // n0x11a9 c0x0000 (---------------) + I arai - 0x00229605, // n0x11aa c0x0000 (---------------) + I atami - 0x00270584, // n0x11ab c0x0000 (---------------) + I fuji - 0x00291287, // n0x11ac c0x0000 (---------------) + I fujieda - 0x002707c8, // n0x11ad c0x0000 (---------------) + I fujikawa - 0x0027134a, // n0x11ae c0x0000 (---------------) + I fujinomiya - 0x00276cc7, // n0x11af c0x0000 (---------------) + I fukuroi - 0x00237307, // n0x11b0 c0x0000 (---------------) + I gotemba - 0x002beb47, // n0x11b1 c0x0000 (---------------) + I haibara - 0x0024d349, // n0x11b2 c0x0000 (---------------) + I hamamatsu - 0x0028ad0a, // n0x11b3 c0x0000 (---------------) + I higashiizu - 0x0022b2c3, // n0x11b4 c0x0000 (---------------) + I ito - 0x0021a245, // n0x11b5 c0x0000 (---------------) + I iwata - 0x00217543, // n0x11b6 c0x0000 (---------------) + I izu - 0x00304849, // n0x11b7 c0x0000 (---------------) + I izunokuni - 0x0022bd88, // n0x11b8 c0x0000 (---------------) + I kakegawa - 0x0029e507, // n0x11b9 c0x0000 (---------------) + I kannami - 0x002e1089, // n0x11ba c0x0000 (---------------) + I kawanehon - 0x0021b046, // n0x11bb c0x0000 (---------------) + I kawazu - 0x002fa108, // n0x11bc c0x0000 (---------------) + I kikugawa - 0x002d7705, // n0x11bd c0x0000 (---------------) + I kosai - 0x0032034a, // n0x11be c0x0000 (---------------) + I makinohara - 0x00228349, // n0x11bf c0x0000 (---------------) + I matsuzaki - 0x002608c9, // n0x11c0 c0x0000 (---------------) + I minamiizu - 0x0039fb87, // n0x11c1 c0x0000 (---------------) + I mishima - 0x002547c9, // n0x11c2 c0x0000 (---------------) + I morimachi - 0x00217408, // n0x11c3 c0x0000 (---------------) + I nishiizu - 0x002d1586, // n0x11c4 c0x0000 (---------------) + I numazu - 0x00380408, // n0x11c5 c0x0000 (---------------) + I omaezaki - 0x00209c07, // n0x11c6 c0x0000 (---------------) + I shimada - 0x00352287, // n0x11c7 c0x0000 (---------------) + I shimizu - 0x0039ff47, // n0x11c8 c0x0000 (---------------) + I shimoda - 0x002f2e48, // n0x11c9 c0x0000 (---------------) + I shizuoka - 0x002e28c6, // n0x11ca c0x0000 (---------------) + I susono - 0x0022c0c5, // n0x11cb c0x0000 (---------------) + I yaizu - 0x00273f87, // n0x11cc c0x0000 (---------------) + I yoshida - 0x0028bfc8, // n0x11cd c0x0000 (---------------) + I ashikaga - 0x003423c4, // n0x11ce c0x0000 (---------------) + I bato - 0x00279c04, // n0x11cf c0x0000 (---------------) + I haga - 0x002f4287, // n0x11d0 c0x0000 (---------------) + I ichikai - 0x002a4287, // n0x11d1 c0x0000 (---------------) + I iwafune - 0x002e324a, // n0x11d2 c0x0000 (---------------) + I kaminokawa - 0x002d1506, // n0x11d3 c0x0000 (---------------) + I kanuma - 0x002e7c0a, // n0x11d4 c0x0000 (---------------) + I karasuyama - 0x002b2e47, // n0x11d5 c0x0000 (---------------) + I kuroiso - 0x003591c7, // n0x11d6 c0x0000 (---------------) + I mashiko - 0x00331344, // n0x11d7 c0x0000 (---------------) + I mibu - 0x0025ab44, // n0x11d8 c0x0000 (---------------) + I moka - 0x0022a386, // n0x11d9 c0x0000 (---------------) + I motegi - 0x00225804, // n0x11da c0x0000 (---------------) + I nasu - 0x0022580c, // n0x11db c0x0000 (---------------) + I nasushiobara - 0x0020a7c5, // n0x11dc c0x0000 (---------------) + I nikko - 0x002180c9, // n0x11dd c0x0000 (---------------) + I nishikata - 0x0027bb44, // n0x11de c0x0000 (---------------) + I nogi - 0x002967c5, // n0x11df c0x0000 (---------------) + I ohira - 0x00270dc8, // n0x11e0 c0x0000 (---------------) + I ohtawara - 0x00286085, // n0x11e1 c0x0000 (---------------) + I oyama - 0x002fe346, // n0x11e2 c0x0000 (---------------) + I sakura - 0x0020d5c4, // n0x11e3 c0x0000 (---------------) + I sano - 0x0026b5ca, // n0x11e4 c0x0000 (---------------) + I shimotsuke - 0x002923c6, // n0x11e5 c0x0000 (---------------) + I shioya - 0x00248f0a, // n0x11e6 c0x0000 (---------------) + I takanezawa - 0x00342447, // n0x11e7 c0x0000 (---------------) + I tochigi - 0x0020f0c5, // n0x11e8 c0x0000 (---------------) + I tsuga - 0x0021a9c5, // n0x11e9 c0x0000 (---------------) + I ujiie - 0x002a560a, // n0x11ea c0x0000 (---------------) + I utsunomiya - 0x00297945, // n0x11eb c0x0000 (---------------) + I yaita - 0x002963c6, // n0x11ec c0x0000 (---------------) + I aizumi - 0x00200b44, // n0x11ed c0x0000 (---------------) + I anan - 0x002a7646, // n0x11ee c0x0000 (---------------) + I ichiba - 0x00321c85, // n0x11ef c0x0000 (---------------) + I itano - 0x00222446, // n0x11f0 c0x0000 (---------------) + I kainan - 0x0028e9cc, // n0x11f1 c0x0000 (---------------) + I komatsushima - 0x002c7e8a, // n0x11f2 c0x0000 (---------------) + I matsushige - 0x00267204, // n0x11f3 c0x0000 (---------------) + I mima - 0x00236f86, // n0x11f4 c0x0000 (---------------) + I minami - 0x00293a07, // n0x11f5 c0x0000 (---------------) + I miyoshi - 0x002c8304, // n0x11f6 c0x0000 (---------------) + I mugi - 0x002a6788, // n0x11f7 c0x0000 (---------------) + I nakagawa - 0x003813c6, // n0x11f8 c0x0000 (---------------) + I naruto - 0x0024ca09, // n0x11f9 c0x0000 (---------------) + I sanagochi - 0x002ed689, // n0x11fa c0x0000 (---------------) + I shishikui - 0x00285d89, // n0x11fb c0x0000 (---------------) + I tokushima - 0x00369686, // n0x11fc c0x0000 (---------------) + I wajiki - 0x00209d06, // n0x11fd c0x0000 (---------------) + I adachi - 0x00380547, // n0x11fe c0x0000 (---------------) + I akiruno - 0x002bd008, // n0x11ff c0x0000 (---------------) + I akishima - 0x00209b09, // n0x1200 c0x0000 (---------------) + I aogashima - 0x00396187, // n0x1201 c0x0000 (---------------) + I arakawa - 0x00289fc6, // n0x1202 c0x0000 (---------------) + I bunkyo - 0x003a2b07, // n0x1203 c0x0000 (---------------) + I chiyoda - 0x002d4b85, // n0x1204 c0x0000 (---------------) + I chofu - 0x00359404, // n0x1205 c0x0000 (---------------) + I chuo - 0x00380107, // n0x1206 c0x0000 (---------------) + I edogawa - 0x002b7305, // n0x1207 c0x0000 (---------------) + I fuchu - 0x0027ef85, // n0x1208 c0x0000 (---------------) + I fussa - 0x002f5d47, // n0x1209 c0x0000 (---------------) + I hachijo - 0x002434c8, // n0x120a c0x0000 (---------------) + I hachioji - 0x00371b06, // n0x120b c0x0000 (---------------) + I hamura - 0x0028da0d, // n0x120c c0x0000 (---------------) + I higashikurume - 0x0028f6cf, // n0x120d c0x0000 (---------------) + I higashimurayama - 0x00294e0d, // n0x120e c0x0000 (---------------) + I higashiyamato - 0x00205904, // n0x120f c0x0000 (---------------) + I hino - 0x002362c6, // n0x1210 c0x0000 (---------------) + I hinode - 0x002cc048, // n0x1211 c0x0000 (---------------) + I hinohara - 0x002a1905, // n0x1212 c0x0000 (---------------) + I inagi - 0x0026a4c8, // n0x1213 c0x0000 (---------------) + I itabashi - 0x0020ae0a, // n0x1214 c0x0000 (---------------) + I katsushika - 0x0020cb44, // n0x1215 c0x0000 (---------------) + I kita - 0x00353546, // n0x1216 c0x0000 (---------------) + I kiyose - 0x002a1487, // n0x1217 c0x0000 (---------------) + I kodaira - 0x00223547, // n0x1218 c0x0000 (---------------) + I koganei - 0x002980c9, // n0x1219 c0x0000 (---------------) + I kokubunji - 0x003803c5, // n0x121a c0x0000 (---------------) + I komae - 0x002f8ec4, // n0x121b c0x0000 (---------------) + I koto - 0x00358fca, // n0x121c c0x0000 (---------------) + I kouzushima - 0x002afcc9, // n0x121d c0x0000 (---------------) + I kunitachi - 0x002548c7, // n0x121e c0x0000 (---------------) + I machida - 0x0028dcc6, // n0x121f c0x0000 (---------------) + I meguro - 0x00348906, // n0x1220 c0x0000 (---------------) + I minato - 0x00297e06, // n0x1221 c0x0000 (---------------) + I mitaka - 0x00358ac6, // n0x1222 c0x0000 (---------------) + I mizuho - 0x002cb9cf, // n0x1223 c0x0000 (---------------) + I musashimurayama - 0x002cbf09, // n0x1224 c0x0000 (---------------) + I musashino - 0x00303406, // n0x1225 c0x0000 (---------------) + I nakano - 0x0024fc46, // n0x1226 c0x0000 (---------------) + I nerima - 0x00379a49, // n0x1227 c0x0000 (---------------) + I ogasawara - 0x00304647, // n0x1228 c0x0000 (---------------) + I okutama - 0x00211c03, // n0x1229 c0x0000 (---------------) + I ome - 0x0020cd06, // n0x122a c0x0000 (---------------) + I oshima - 0x0020a183, // n0x122b c0x0000 (---------------) + I ota - 0x00246ac8, // n0x122c c0x0000 (---------------) + I setagaya - 0x003a2947, // n0x122d c0x0000 (---------------) + I shibuya - 0x00296a09, // n0x122e c0x0000 (---------------) + I shinagawa - 0x0027e9c8, // n0x122f c0x0000 (---------------) + I shinjuku - 0x0034e008, // n0x1230 c0x0000 (---------------) + I suginami - 0x002105c6, // n0x1231 c0x0000 (---------------) + I sumida - 0x0033d889, // n0x1232 c0x0000 (---------------) + I tachikawa - 0x0036b745, // n0x1233 c0x0000 (---------------) + I taito - 0x00241f84, // n0x1234 c0x0000 (---------------) + I tama - 0x00242a87, // n0x1235 c0x0000 (---------------) + I toshima - 0x0024ffc5, // n0x1236 c0x0000 (---------------) + I chizu - 0x00205904, // n0x1237 c0x0000 (---------------) + I hino - 0x0024ce88, // n0x1238 c0x0000 (---------------) + I kawahara - 0x00216a44, // n0x1239 c0x0000 (---------------) + I koge - 0x002fb907, // n0x123a c0x0000 (---------------) + I kotoura - 0x00343dc6, // n0x123b c0x0000 (---------------) + I misasa - 0x002dfc05, // n0x123c c0x0000 (---------------) + I nanbu - 0x0027ac08, // n0x123d c0x0000 (---------------) + I nichinan - 0x003487cb, // n0x123e c0x0000 (---------------) + I sakaiminato - 0x002f0147, // n0x123f c0x0000 (---------------) + I tottori - 0x002a5886, // n0x1240 c0x0000 (---------------) + I wakasa - 0x002ba804, // n0x1241 c0x0000 (---------------) + I yazu - 0x0022d806, // n0x1242 c0x0000 (---------------) + I yonago - 0x002b9085, // n0x1243 c0x0000 (---------------) + I asahi - 0x002b7305, // n0x1244 c0x0000 (---------------) + I fuchu - 0x00275d49, // n0x1245 c0x0000 (---------------) + I fukumitsu - 0x00279089, // n0x1246 c0x0000 (---------------) + I funahashi - 0x0029b444, // n0x1247 c0x0000 (---------------) + I himi - 0x00352305, // n0x1248 c0x0000 (---------------) + I imizu - 0x00236fc5, // n0x1249 c0x0000 (---------------) + I inami - 0x003201c6, // n0x124a c0x0000 (---------------) + I johana - 0x002f4188, // n0x124b c0x0000 (---------------) + I kamiichi - 0x002b2746, // n0x124c c0x0000 (---------------) + I kurobe - 0x0030a24b, // n0x124d c0x0000 (---------------) + I nakaniikawa - 0x002f868a, // n0x124e c0x0000 (---------------) + I namerikawa - 0x002f2905, // n0x124f c0x0000 (---------------) + I nanto - 0x00282e06, // n0x1250 c0x0000 (---------------) + I nyuzen - 0x002eaa05, // n0x1251 c0x0000 (---------------) + I oyabe - 0x00210d45, // n0x1252 c0x0000 (---------------) + I taira - 0x002863c7, // n0x1253 c0x0000 (---------------) + I takaoka - 0x00201248, // n0x1254 c0x0000 (---------------) + I tateyama - 0x0024f644, // n0x1255 c0x0000 (---------------) + I toga - 0x0025bd46, // n0x1256 c0x0000 (---------------) + I tonami - 0x00286046, // n0x1257 c0x0000 (---------------) + I toyama - 0x002175c7, // n0x1258 c0x0000 (---------------) + I unazuki - 0x002f6f84, // n0x1259 c0x0000 (---------------) + I uozu - 0x00274a86, // n0x125a c0x0000 (---------------) + I yamada - 0x0030e285, // n0x125b c0x0000 (---------------) + I arida - 0x0030e289, // n0x125c c0x0000 (---------------) + I aridagawa - 0x00209f04, // n0x125d c0x0000 (---------------) + I gobo - 0x0027f9c9, // n0x125e c0x0000 (---------------) + I hashimoto - 0x00272b06, // n0x125f c0x0000 (---------------) + I hidaka - 0x002b44c8, // n0x1260 c0x0000 (---------------) + I hirogawa - 0x00236fc5, // n0x1261 c0x0000 (---------------) + I inami - 0x003310c5, // n0x1262 c0x0000 (---------------) + I iwade - 0x00222446, // n0x1263 c0x0000 (---------------) + I kainan - 0x00372789, // n0x1264 c0x0000 (---------------) + I kamitonda - 0x00219449, // n0x1265 c0x0000 (---------------) + I katsuragi - 0x00248006, // n0x1266 c0x0000 (---------------) + I kimino - 0x002431c8, // n0x1267 c0x0000 (---------------) + I kinokawa - 0x0021eb88, // n0x1268 c0x0000 (---------------) + I kitayama - 0x002ea9c4, // n0x1269 c0x0000 (---------------) + I koya - 0x00367984, // n0x126a c0x0000 (---------------) + I koza - 0x00367988, // n0x126b c0x0000 (---------------) + I kozagawa - 0x00306448, // n0x126c c0x0000 (---------------) + I kudoyama - 0x00366b09, // n0x126d c0x0000 (---------------) + I kushimoto - 0x0028d806, // n0x126e c0x0000 (---------------) + I mihama - 0x002964c6, // n0x126f c0x0000 (---------------) + I misato - 0x00313f0d, // n0x1270 c0x0000 (---------------) + I nachikatsuura - 0x002a9586, // n0x1271 c0x0000 (---------------) + I shingu - 0x002999c9, // n0x1272 c0x0000 (---------------) + I shirahama - 0x00389e85, // n0x1273 c0x0000 (---------------) + I taiji - 0x002ffb46, // n0x1274 c0x0000 (---------------) + I tanabe - 0x0033da48, // n0x1275 c0x0000 (---------------) + I wakayama - 0x00311445, // n0x1276 c0x0000 (---------------) + I yuasa - 0x002a4c04, // n0x1277 c0x0000 (---------------) + I yura - 0x002b9085, // n0x1278 c0x0000 (---------------) + I asahi - 0x00278708, // n0x1279 c0x0000 (---------------) + I funagata - 0x00291449, // n0x127a c0x0000 (---------------) + I higashine - 0x00270644, // n0x127b c0x0000 (---------------) + I iide - 0x0034eac6, // n0x127c c0x0000 (---------------) + I kahoku - 0x00348f8a, // n0x127d c0x0000 (---------------) + I kaminoyama - 0x0021b1c8, // n0x127e c0x0000 (---------------) + I kaneyama - 0x002e33c9, // n0x127f c0x0000 (---------------) + I kawanishi - 0x0022780a, // n0x1280 c0x0000 (---------------) + I mamurogawa - 0x002e1006, // n0x1281 c0x0000 (---------------) + I mikawa - 0x0028f888, // n0x1282 c0x0000 (---------------) + I murayama - 0x003012c5, // n0x1283 c0x0000 (---------------) + I nagai - 0x002c7d08, // n0x1284 c0x0000 (---------------) + I nakayama - 0x002adc05, // n0x1285 c0x0000 (---------------) + I nanyo - 0x0021af09, // n0x1286 c0x0000 (---------------) + I nishikawa - 0x0035e9c9, // n0x1287 c0x0000 (---------------) + I obanazawa - 0x00206e82, // n0x1288 c0x0000 (---------------) + I oe - 0x00281985, // n0x1289 c0x0000 (---------------) + I oguni - 0x00268d06, // n0x128a c0x0000 (---------------) + I ohkura - 0x00272a47, // n0x128b c0x0000 (---------------) + I oishida - 0x0035a905, // n0x128c c0x0000 (---------------) + I sagae - 0x002eecc6, // n0x128d c0x0000 (---------------) + I sakata - 0x00311508, // n0x128e c0x0000 (---------------) + I sakegawa - 0x0027d4c6, // n0x128f c0x0000 (---------------) + I shinjo - 0x002edc89, // n0x1290 c0x0000 (---------------) + I shirataka - 0x00271f06, // n0x1291 c0x0000 (---------------) + I shonai - 0x00278888, // n0x1292 c0x0000 (---------------) + I takahata - 0x0029f8c5, // n0x1293 c0x0000 (---------------) + I tendo - 0x00263206, // n0x1294 c0x0000 (---------------) + I tozawa - 0x00322848, // n0x1295 c0x0000 (---------------) + I tsuruoka - 0x00277b48, // n0x1296 c0x0000 (---------------) + I yamagata - 0x00300508, // n0x1297 c0x0000 (---------------) + I yamanobe - 0x00364e48, // n0x1298 c0x0000 (---------------) + I yonezawa - 0x00214e04, // n0x1299 c0x0000 (---------------) + I yuza - 0x00242fc3, // n0x129a c0x0000 (---------------) + I abu - 0x002edec4, // n0x129b c0x0000 (---------------) + I hagi - 0x0022fec6, // n0x129c c0x0000 (---------------) + I hikari - 0x002d4bc4, // n0x129d c0x0000 (---------------) + I hofu - 0x0028d5c7, // n0x129e c0x0000 (---------------) + I iwakuni - 0x002e4349, // n0x129f c0x0000 (---------------) + I kudamatsu - 0x002ba005, // n0x12a0 c0x0000 (---------------) + I mitou - 0x0037f586, // n0x12a1 c0x0000 (---------------) + I nagato - 0x0020cd06, // n0x12a2 c0x0000 (---------------) + I oshima - 0x002626cb, // n0x12a3 c0x0000 (---------------) + I shimonoseki - 0x002f2846, // n0x12a4 c0x0000 (---------------) + I shunan - 0x00306746, // n0x12a5 c0x0000 (---------------) + I tabuse - 0x00340808, // n0x12a6 c0x0000 (---------------) + I tokuyama - 0x00254b06, // n0x12a7 c0x0000 (---------------) + I toyota - 0x00287ec3, // n0x12a8 c0x0000 (---------------) + I ube - 0x00214083, // n0x12a9 c0x0000 (---------------) + I yuu - 0x00359404, // n0x12aa c0x0000 (---------------) + I chuo - 0x00231585, // n0x12ab c0x0000 (---------------) + I doshi - 0x002a4d87, // n0x12ac c0x0000 (---------------) + I fuefuki - 0x002707c8, // n0x12ad c0x0000 (---------------) + I fujikawa - 0x002707cf, // n0x12ae c0x0000 (---------------) + I fujikawaguchiko - 0x00273e8b, // n0x12af c0x0000 (---------------) + I fujiyoshida - 0x002f3f88, // n0x12b0 c0x0000 (---------------) + I hayakawa - 0x0034eb46, // n0x12b1 c0x0000 (---------------) + I hokuto - 0x003335ce, // n0x12b2 c0x0000 (---------------) + I ichikawamisato - 0x00222443, // n0x12b3 c0x0000 (---------------) + I kai - 0x00339244, // n0x12b4 c0x0000 (---------------) + I kofu - 0x002f27c5, // n0x12b5 c0x0000 (---------------) + I koshu - 0x00346486, // n0x12b6 c0x0000 (---------------) + I kosuge - 0x0028498b, // n0x12b7 c0x0000 (---------------) + I minami-alps - 0x00288386, // n0x12b8 c0x0000 (---------------) + I minobu - 0x0020f889, // n0x12b9 c0x0000 (---------------) + I nakamichi - 0x002dfc05, // n0x12ba c0x0000 (---------------) + I nanbu - 0x0037cd08, // n0x12bb c0x0000 (---------------) + I narusawa - 0x0020fc48, // n0x12bc c0x0000 (---------------) + I nirasaki - 0x0021930c, // n0x12bd c0x0000 (---------------) + I nishikatsura - 0x00295b86, // n0x12be c0x0000 (---------------) + I oshino - 0x0021e446, // n0x12bf c0x0000 (---------------) + I otsuki - 0x002ab745, // n0x12c0 c0x0000 (---------------) + I showa - 0x002805c8, // n0x12c1 c0x0000 (---------------) + I tabayama - 0x00273605, // n0x12c2 c0x0000 (---------------) + I tsuru - 0x003855c8, // n0x12c3 c0x0000 (---------------) + I uenohara - 0x0029524a, // n0x12c4 c0x0000 (---------------) + I yamanakako - 0x00298d49, // n0x12c5 c0x0000 (---------------) + I yamanashi - 0x0067e804, // n0x12c6 c0x0001 (---------------) ! I city - 0x2d608182, // n0x12c7 c0x00b5 (n0x12c8-n0x12c9) o I co - 0x000f5248, // n0x12c8 c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x12c9 c0x0000 (---------------) + I com - 0x002349c3, // n0x12ca c0x0000 (---------------) + I edu - 0x00275003, // n0x12cb c0x0000 (---------------) + I gov - 0x00215b43, // n0x12cc c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x12cd c0x0000 (---------------) + I net - 0x00229a83, // n0x12ce c0x0000 (---------------) + I org - 0x0030a143, // n0x12cf c0x0000 (---------------) + I biz - 0x0022edc3, // n0x12d0 c0x0000 (---------------) + I com - 0x002349c3, // n0x12d1 c0x0000 (---------------) + I edu - 0x00275003, // n0x12d2 c0x0000 (---------------) + I gov - 0x0038a144, // n0x12d3 c0x0000 (---------------) + I info - 0x0021d8c3, // n0x12d4 c0x0000 (---------------) + I net - 0x00229a83, // n0x12d5 c0x0000 (---------------) + I org - 0x0024be83, // n0x12d6 c0x0000 (---------------) + I ass - 0x002b1c44, // n0x12d7 c0x0000 (---------------) + I asso - 0x0022edc3, // n0x12d8 c0x0000 (---------------) + I com - 0x00238284, // n0x12d9 c0x0000 (---------------) + I coop - 0x002349c3, // n0x12da c0x0000 (---------------) + I edu - 0x002fa744, // n0x12db c0x0000 (---------------) + I gouv - 0x00275003, // n0x12dc c0x0000 (---------------) + I gov - 0x0035abc7, // n0x12dd c0x0000 (---------------) + I medecin - 0x00215b43, // n0x12de c0x0000 (---------------) + I mil - 0x0020e543, // n0x12df c0x0000 (---------------) + I nom - 0x00246408, // n0x12e0 c0x0000 (---------------) + I notaires - 0x00229a83, // n0x12e1 c0x0000 (---------------) + I org - 0x002d5a0b, // n0x12e2 c0x0000 (---------------) + I pharmaciens - 0x002da783, // n0x12e3 c0x0000 (---------------) + I prd - 0x00240d06, // n0x12e4 c0x0000 (---------------) + I presse - 0x00200142, // n0x12e5 c0x0000 (---------------) + I tm - 0x003781cb, // n0x12e6 c0x0000 (---------------) + I veterinaire - 0x002349c3, // n0x12e7 c0x0000 (---------------) + I edu - 0x00275003, // n0x12e8 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x12e9 c0x0000 (---------------) + I net - 0x00229a83, // n0x12ea c0x0000 (---------------) + I org - 0x0022edc3, // n0x12eb c0x0000 (---------------) + I com - 0x002349c3, // n0x12ec c0x0000 (---------------) + I edu - 0x00275003, // n0x12ed c0x0000 (---------------) + I gov - 0x00229a83, // n0x12ee c0x0000 (---------------) + I org - 0x00228d03, // n0x12ef c0x0000 (---------------) + I rep - 0x00203643, // n0x12f0 c0x0000 (---------------) + I tra - 0x00205882, // n0x12f1 c0x0000 (---------------) + I ac - 0x000f5248, // n0x12f2 c0x0000 (---------------) + blogspot - 0x00204745, // n0x12f3 c0x0000 (---------------) + I busan - 0x00325848, // n0x12f4 c0x0000 (---------------) + I chungbuk - 0x0032f688, // n0x12f5 c0x0000 (---------------) + I chungnam - 0x00208182, // n0x12f6 c0x0000 (---------------) + I co - 0x0024d585, // n0x12f7 c0x0000 (---------------) + I daegu - 0x00256387, // n0x12f8 c0x0000 (---------------) + I daejeon - 0x00202242, // n0x12f9 c0x0000 (---------------) + I es - 0x0020fac7, // n0x12fa c0x0000 (---------------) + I gangwon - 0x00208502, // n0x12fb c0x0000 (---------------) + I go - 0x0023d2c7, // n0x12fc c0x0000 (---------------) + I gwangju - 0x0038dc09, // n0x12fd c0x0000 (---------------) + I gyeongbuk - 0x00300e88, // n0x12fe c0x0000 (---------------) + I gyeonggi - 0x0027c909, // n0x12ff c0x0000 (---------------) + I gyeongnam - 0x00207ec2, // n0x1300 c0x0000 (---------------) + I hs - 0x00261387, // n0x1301 c0x0000 (---------------) + I incheon - 0x00247d84, // n0x1302 c0x0000 (---------------) + I jeju - 0x00256447, // n0x1303 c0x0000 (---------------) + I jeonbuk - 0x002f8587, // n0x1304 c0x0000 (---------------) + I jeonnam - 0x002b1882, // n0x1305 c0x0000 (---------------) + I kg - 0x00215b43, // n0x1306 c0x0000 (---------------) + I mil - 0x00202482, // n0x1307 c0x0000 (---------------) + I ms - 0x00203282, // n0x1308 c0x0000 (---------------) + I ne - 0x00200282, // n0x1309 c0x0000 (---------------) + I or - 0x00209a02, // n0x130a c0x0000 (---------------) + I pe - 0x00204d82, // n0x130b c0x0000 (---------------) + I re - 0x002024c2, // n0x130c c0x0000 (---------------) + I sc - 0x00275905, // n0x130d c0x0000 (---------------) + I seoul - 0x00244c45, // n0x130e c0x0000 (---------------) + I ulsan - 0x0022edc3, // n0x130f c0x0000 (---------------) + I com - 0x002349c3, // n0x1310 c0x0000 (---------------) + I edu - 0x00275003, // n0x1311 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x1312 c0x0000 (---------------) + I net - 0x00229a83, // n0x1313 c0x0000 (---------------) + I org - 0x0022edc3, // n0x1314 c0x0000 (---------------) + I com - 0x002349c3, // n0x1315 c0x0000 (---------------) + I edu - 0x00275003, // n0x1316 c0x0000 (---------------) + I gov - 0x00215b43, // n0x1317 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1318 c0x0000 (---------------) + I net - 0x00229a83, // n0x1319 c0x0000 (---------------) + I org - 0x00000301, // n0x131a c0x0000 (---------------) + c - 0x0022edc3, // n0x131b c0x0000 (---------------) + I com - 0x002349c3, // n0x131c c0x0000 (---------------) + I edu - 0x00275003, // n0x131d c0x0000 (---------------) + I gov - 0x0038a144, // n0x131e c0x0000 (---------------) + I info - 0x0026f683, // n0x131f c0x0000 (---------------) + I int - 0x0021d8c3, // n0x1320 c0x0000 (---------------) + I net - 0x00229a83, // n0x1321 c0x0000 (---------------) + I org - 0x0021ffc3, // n0x1322 c0x0000 (---------------) + I per - 0x0022edc3, // n0x1323 c0x0000 (---------------) + I com - 0x002349c3, // n0x1324 c0x0000 (---------------) + I edu - 0x00275003, // n0x1325 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x1326 c0x0000 (---------------) + I net - 0x00229a83, // n0x1327 c0x0000 (---------------) + I org - 0x00208182, // n0x1328 c0x0000 (---------------) + I co - 0x0022edc3, // n0x1329 c0x0000 (---------------) + I com - 0x002349c3, // n0x132a c0x0000 (---------------) + I edu - 0x00275003, // n0x132b c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x132c c0x0000 (---------------) + I net - 0x00229a83, // n0x132d c0x0000 (---------------) + I org - 0x000f5248, // n0x132e c0x0000 (---------------) + blogspot - 0x00205882, // n0x132f c0x0000 (---------------) + I ac - 0x002b5bc4, // n0x1330 c0x0000 (---------------) + I assn - 0x0022edc3, // n0x1331 c0x0000 (---------------) + I com - 0x002349c3, // n0x1332 c0x0000 (---------------) + I edu - 0x00275003, // n0x1333 c0x0000 (---------------) + I gov - 0x003395c3, // n0x1334 c0x0000 (---------------) + I grp - 0x0022fac5, // n0x1335 c0x0000 (---------------) + I hotel - 0x0026f683, // n0x1336 c0x0000 (---------------) + I int - 0x00342703, // n0x1337 c0x0000 (---------------) + I ltd - 0x0021d8c3, // n0x1338 c0x0000 (---------------) + I net - 0x002084c3, // n0x1339 c0x0000 (---------------) + I ngo - 0x00229a83, // n0x133a c0x0000 (---------------) + I org - 0x00215d43, // n0x133b c0x0000 (---------------) + I sch - 0x0026d043, // n0x133c c0x0000 (---------------) + I soc - 0x0021fa83, // n0x133d c0x0000 (---------------) + I web - 0x0022edc3, // n0x133e c0x0000 (---------------) + I com - 0x002349c3, // n0x133f c0x0000 (---------------) + I edu - 0x00275003, // n0x1340 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x1341 c0x0000 (---------------) + I net - 0x00229a83, // n0x1342 c0x0000 (---------------) + I org - 0x00208182, // n0x1343 c0x0000 (---------------) + I co - 0x00229a83, // n0x1344 c0x0000 (---------------) + I org - 0x000f5248, // n0x1345 c0x0000 (---------------) + blogspot - 0x00275003, // n0x1346 c0x0000 (---------------) + I gov - 0x000f5248, // n0x1347 c0x0000 (---------------) + blogspot - 0x0022d9c3, // n0x1348 c0x0000 (---------------) + I asn - 0x0022edc3, // n0x1349 c0x0000 (---------------) + I com - 0x00231fc4, // n0x134a c0x0000 (---------------) + I conf - 0x002349c3, // n0x134b c0x0000 (---------------) + I edu - 0x00275003, // n0x134c c0x0000 (---------------) + I gov - 0x00205d82, // n0x134d c0x0000 (---------------) + I id - 0x00215b43, // n0x134e c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x134f c0x0000 (---------------) + I net - 0x00229a83, // n0x1350 c0x0000 (---------------) + I org - 0x0022edc3, // n0x1351 c0x0000 (---------------) + I com - 0x002349c3, // n0x1352 c0x0000 (---------------) + I edu - 0x00275003, // n0x1353 c0x0000 (---------------) + I gov - 0x00205d82, // n0x1354 c0x0000 (---------------) + I id - 0x00211c43, // n0x1355 c0x0000 (---------------) + I med - 0x0021d8c3, // n0x1356 c0x0000 (---------------) + I net - 0x00229a83, // n0x1357 c0x0000 (---------------) + I org - 0x002d4b03, // n0x1358 c0x0000 (---------------) + I plc - 0x00215d43, // n0x1359 c0x0000 (---------------) + I sch - 0x00205882, // n0x135a c0x0000 (---------------) + I ac - 0x00208182, // n0x135b c0x0000 (---------------) + I co - 0x00275003, // n0x135c c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x135d c0x0000 (---------------) + I net - 0x00229a83, // n0x135e c0x0000 (---------------) + I org - 0x00240d05, // n0x135f c0x0000 (---------------) + I press - 0x002b1c44, // n0x1360 c0x0000 (---------------) + I asso - 0x00200142, // n0x1361 c0x0000 (---------------) + I tm - 0x000f5248, // n0x1362 c0x0000 (---------------) + blogspot - 0x00205882, // n0x1363 c0x0000 (---------------) + I ac - 0x00208182, // n0x1364 c0x0000 (---------------) + I co - 0x002349c3, // n0x1365 c0x0000 (---------------) + I edu - 0x00275003, // n0x1366 c0x0000 (---------------) + I gov - 0x002294c3, // n0x1367 c0x0000 (---------------) + I its - 0x0021d8c3, // n0x1368 c0x0000 (---------------) + I net - 0x00229a83, // n0x1369 c0x0000 (---------------) + I org - 0x002db244, // n0x136a c0x0000 (---------------) + I priv - 0x00208182, // n0x136b c0x0000 (---------------) + I co - 0x0022edc3, // n0x136c c0x0000 (---------------) + I com - 0x002349c3, // n0x136d c0x0000 (---------------) + I edu - 0x00275003, // n0x136e c0x0000 (---------------) + I gov - 0x00215b43, // n0x136f c0x0000 (---------------) + I mil - 0x0020e543, // n0x1370 c0x0000 (---------------) + I nom - 0x00229a83, // n0x1371 c0x0000 (---------------) + I org - 0x002da783, // n0x1372 c0x0000 (---------------) + I prd - 0x00200142, // n0x1373 c0x0000 (---------------) + I tm - 0x000f5248, // n0x1374 c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x1375 c0x0000 (---------------) + I com - 0x002349c3, // n0x1376 c0x0000 (---------------) + I edu - 0x00275003, // n0x1377 c0x0000 (---------------) + I gov - 0x00389f83, // n0x1378 c0x0000 (---------------) + I inf - 0x0027ca84, // n0x1379 c0x0000 (---------------) + I name - 0x0021d8c3, // n0x137a c0x0000 (---------------) + I net - 0x00229a83, // n0x137b c0x0000 (---------------) + I org - 0x0022edc3, // n0x137c c0x0000 (---------------) + I com - 0x002349c3, // n0x137d c0x0000 (---------------) + I edu - 0x002fa744, // n0x137e c0x0000 (---------------) + I gouv - 0x00275003, // n0x137f c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x1380 c0x0000 (---------------) + I net - 0x00229a83, // n0x1381 c0x0000 (---------------) + I org - 0x00240d06, // n0x1382 c0x0000 (---------------) + I presse - 0x002349c3, // n0x1383 c0x0000 (---------------) + I edu - 0x00275003, // n0x1384 c0x0000 (---------------) + I gov - 0x0016c603, // n0x1385 c0x0000 (---------------) + nyc - 0x00229a83, // n0x1386 c0x0000 (---------------) + I org - 0x0022edc3, // n0x1387 c0x0000 (---------------) + I com - 0x002349c3, // n0x1388 c0x0000 (---------------) + I edu - 0x00275003, // n0x1389 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x138a c0x0000 (---------------) + I net - 0x00229a83, // n0x138b c0x0000 (---------------) + I org - 0x000f5248, // n0x138c c0x0000 (---------------) + blogspot - 0x00275003, // n0x138d c0x0000 (---------------) + I gov - 0x0022edc3, // n0x138e c0x0000 (---------------) + I com - 0x002349c3, // n0x138f c0x0000 (---------------) + I edu - 0x00275003, // n0x1390 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x1391 c0x0000 (---------------) + I net - 0x00229a83, // n0x1392 c0x0000 (---------------) + I org - 0x3562edc3, // n0x1393 c0x00d5 (n0x1397-n0x1398) + I com - 0x002349c3, // n0x1394 c0x0000 (---------------) + I edu - 0x0021d8c3, // n0x1395 c0x0000 (---------------) + I net - 0x00229a83, // n0x1396 c0x0000 (---------------) + I org - 0x000f5248, // n0x1397 c0x0000 (---------------) + blogspot - 0x00205882, // n0x1398 c0x0000 (---------------) + I ac - 0x00208182, // n0x1399 c0x0000 (---------------) + I co - 0x0022edc3, // n0x139a c0x0000 (---------------) + I com - 0x00275003, // n0x139b c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x139c c0x0000 (---------------) + I net - 0x00200282, // n0x139d c0x0000 (---------------) + I or - 0x00229a83, // n0x139e c0x0000 (---------------) + I org - 0x00305387, // n0x139f c0x0000 (---------------) + I academy - 0x002ce4cb, // n0x13a0 c0x0000 (---------------) + I agriculture - 0x00204683, // n0x13a1 c0x0000 (---------------) + I air - 0x00248308, // n0x13a2 c0x0000 (---------------) + I airguard - 0x002bcd87, // n0x13a3 c0x0000 (---------------) + I alabama - 0x0027be86, // n0x13a4 c0x0000 (---------------) + I alaska - 0x00365a45, // n0x13a5 c0x0000 (---------------) + I amber - 0x002b0ec9, // n0x13a6 c0x0000 (---------------) + I ambulance - 0x00240a88, // n0x13a7 c0x0000 (---------------) + I american - 0x002a1f89, // n0x13a8 c0x0000 (---------------) + I americana - 0x002a1f90, // n0x13a9 c0x0000 (---------------) + I americanantiques - 0x00352e8b, // n0x13aa c0x0000 (---------------) + I americanart - 0x002b0d09, // n0x13ab c0x0000 (---------------) + I amsterdam - 0x00204e83, // n0x13ac c0x0000 (---------------) + I and - 0x00338749, // n0x13ad c0x0000 (---------------) + I annefrank - 0x00232ac6, // n0x13ae c0x0000 (---------------) + I anthro - 0x00232acc, // n0x13af c0x0000 (---------------) + I anthropology - 0x00204808, // n0x13b0 c0x0000 (---------------) + I antiques - 0x0039f9c8, // n0x13b1 c0x0000 (---------------) + I aquarium - 0x002506c9, // n0x13b2 c0x0000 (---------------) + I arboretum - 0x0029030e, // n0x13b3 c0x0000 (---------------) + I archaeological - 0x0036ea4b, // n0x13b4 c0x0000 (---------------) + I archaeology - 0x002c340c, // n0x13b5 c0x0000 (---------------) + I architecture - 0x002011c3, // n0x13b6 c0x0000 (---------------) + I art - 0x0022510c, // n0x13b7 c0x0000 (---------------) + I artanddesign - 0x00204149, // n0x13b8 c0x0000 (---------------) + I artcenter - 0x00362287, // n0x13b9 c0x0000 (---------------) + I artdeco - 0x0023490c, // n0x13ba c0x0000 (---------------) + I arteducation - 0x00397c8a, // n0x13bb c0x0000 (---------------) + I artgallery - 0x00243984, // n0x13bc c0x0000 (---------------) + I arts - 0x0024398d, // n0x13bd c0x0000 (---------------) + I artsandcrafts - 0x00224fc8, // n0x13be c0x0000 (---------------) + I asmatart - 0x00395a4d, // n0x13bf c0x0000 (---------------) + I assassination - 0x0024be86, // n0x13c0 c0x0000 (---------------) + I assisi - 0x002b1c4b, // n0x13c1 c0x0000 (---------------) + I association - 0x0024d049, // n0x13c2 c0x0000 (---------------) + I astronomy - 0x0033d747, // n0x13c3 c0x0000 (---------------) + I atlanta - 0x00308c06, // n0x13c4 c0x0000 (---------------) + I austin - 0x00310989, // n0x13c5 c0x0000 (---------------) + I australia - 0x0032058a, // n0x13c6 c0x0000 (---------------) + I automotive - 0x00354ec8, // n0x13c7 c0x0000 (---------------) + I aviation - 0x002da144, // n0x13c8 c0x0000 (---------------) + I axis - 0x0026f347, // n0x13c9 c0x0000 (---------------) + I badajoz - 0x00298fc7, // n0x13ca c0x0000 (---------------) + I baghdad - 0x0027ce04, // n0x13cb c0x0000 (---------------) + I bahn - 0x0022d044, // n0x13cc c0x0000 (---------------) + I bale - 0x00263909, // n0x13cd c0x0000 (---------------) + I baltimore - 0x002bb549, // n0x13ce c0x0000 (---------------) + I barcelona - 0x00339a08, // n0x13cf c0x0000 (---------------) + I baseball - 0x0020f5c5, // n0x13d0 c0x0000 (---------------) + I basel - 0x003852c5, // n0x13d1 c0x0000 (---------------) + I baths - 0x002095c6, // n0x13d2 c0x0000 (---------------) + I bauern - 0x00243849, // n0x13d3 c0x0000 (---------------) + I beauxarts - 0x003627cd, // n0x13d4 c0x0000 (---------------) + I beeldengeluid - 0x002c2e88, // n0x13d5 c0x0000 (---------------) + I bellevue - 0x002094c7, // n0x13d6 c0x0000 (---------------) + I bergbau - 0x00365ac8, // n0x13d7 c0x0000 (---------------) + I berkeley - 0x00351e06, // n0x13d8 c0x0000 (---------------) + I berlin - 0x00389904, // n0x13d9 c0x0000 (---------------) + I bern - 0x00351845, // n0x13da c0x0000 (---------------) + I bible - 0x00202f46, // n0x13db c0x0000 (---------------) + I bilbao - 0x002034c4, // n0x13dc c0x0000 (---------------) + I bill - 0x00204047, // n0x13dd c0x0000 (---------------) + I birdart - 0x0020644a, // n0x13de c0x0000 (---------------) + I birthplace - 0x00214304, // n0x13df c0x0000 (---------------) + I bonn - 0x00216646, // n0x13e0 c0x0000 (---------------) + I boston - 0x00217089, // n0x13e1 c0x0000 (---------------) + I botanical - 0x0021708f, // n0x13e2 c0x0000 (---------------) + I botanicalgarden - 0x0021900d, // n0x13e3 c0x0000 (---------------) + I botanicgarden - 0x00219d46, // n0x13e4 c0x0000 (---------------) + I botany - 0x0021b5d0, // n0x13e5 c0x0000 (---------------) + I brandywinevalley - 0x0021b9c6, // n0x13e6 c0x0000 (---------------) + I brasil - 0x0021c4c7, // n0x13e7 c0x0000 (---------------) + I bristol - 0x0021c847, // n0x13e8 c0x0000 (---------------) + I british - 0x0021c84f, // n0x13e9 c0x0000 (---------------) + I britishcolumbia - 0x0021d509, // n0x13ea c0x0000 (---------------) + I broadcast - 0x00221d46, // n0x13eb c0x0000 (---------------) + I brunel - 0x002230c7, // n0x13ec c0x0000 (---------------) + I brussel - 0x002230c8, // n0x13ed c0x0000 (---------------) + I brussels - 0x00223a09, // n0x13ee c0x0000 (---------------) + I bruxelles - 0x003313c8, // n0x13ef c0x0000 (---------------) + I building - 0x002d2107, // n0x13f0 c0x0000 (---------------) + I burghof - 0x00204743, // n0x13f1 c0x0000 (---------------) + I bus - 0x0022ec46, // n0x13f2 c0x0000 (---------------) + I bushey - 0x00229748, // n0x13f3 c0x0000 (---------------) + I cadaques - 0x002905ca, // n0x13f4 c0x0000 (---------------) + I california - 0x0021fb49, // n0x13f5 c0x0000 (---------------) + I cambridge - 0x00205c83, // n0x13f6 c0x0000 (---------------) + I can - 0x00321746, // n0x13f7 c0x0000 (---------------) + I canada - 0x0025bb8a, // n0x13f8 c0x0000 (---------------) + I capebreton - 0x002dcfc7, // n0x13f9 c0x0000 (---------------) + I carrier - 0x003620ca, // n0x13fa c0x0000 (---------------) + I cartoonart - 0x00203cce, // n0x13fb c0x0000 (---------------) + I casadelamoneda - 0x0021d646, // n0x13fc c0x0000 (---------------) + I castle - 0x002d2e87, // n0x13fd c0x0000 (---------------) + I castres - 0x0020db86, // n0x13fe c0x0000 (---------------) + I celtic - 0x00204206, // n0x13ff c0x0000 (---------------) + I center - 0x0037128b, // n0x1400 c0x0000 (---------------) + I chattanooga - 0x0025e40a, // n0x1401 c0x0000 (---------------) + I cheltenham - 0x0030b4cd, // n0x1402 c0x0000 (---------------) + I chesapeakebay - 0x00209dc7, // n0x1403 c0x0000 (---------------) + I chicago - 0x0026d0c8, // n0x1404 c0x0000 (---------------) + I children - 0x0026d0c9, // n0x1405 c0x0000 (---------------) + I childrens - 0x0026d0cf, // n0x1406 c0x0000 (---------------) + I childrensgarden - 0x0035b84c, // n0x1407 c0x0000 (---------------) + I chiropractic - 0x002acd89, // n0x1408 c0x0000 (---------------) + I chocolate - 0x002a6c4e, // n0x1409 c0x0000 (---------------) + I christiansburg - 0x0035acca, // n0x140a c0x0000 (---------------) + I cincinnati - 0x00301b46, // n0x140b c0x0000 (---------------) + I cinema - 0x0034cc06, // n0x140c c0x0000 (---------------) + I circus - 0x00360a0c, // n0x140d c0x0000 (---------------) + I civilisation - 0x00365f8c, // n0x140e c0x0000 (---------------) + I civilization - 0x0036c688, // n0x140f c0x0000 (---------------) + I civilwar - 0x00398187, // n0x1410 c0x0000 (---------------) + I clinton - 0x002a6b05, // n0x1411 c0x0000 (---------------) + I clock - 0x0030f484, // n0x1412 c0x0000 (---------------) + I coal - 0x0038280e, // n0x1413 c0x0000 (---------------) + I coastaldefence - 0x00320804, // n0x1414 c0x0000 (---------------) + I cody - 0x00382f47, // n0x1415 c0x0000 (---------------) + I coldwar - 0x0021deca, // n0x1416 c0x0000 (---------------) + I collection - 0x0022df94, // n0x1417 c0x0000 (---------------) + I colonialwilliamsburg - 0x0022e68f, // n0x1418 c0x0000 (---------------) + I coloradoplateau - 0x0021ca08, // n0x1419 c0x0000 (---------------) + I columbia - 0x0022eb08, // n0x141a c0x0000 (---------------) + I columbus - 0x0035d68d, // n0x141b c0x0000 (---------------) + I communication - 0x0035d68e, // n0x141c c0x0000 (---------------) + I communications - 0x0022f149, // n0x141d c0x0000 (---------------) + I community - 0x00230608, // n0x141e c0x0000 (---------------) + I computer - 0x0023060f, // n0x141f c0x0000 (---------------) + I computerhistory - 0x0023460c, // n0x1420 c0x0000 (---------------) + I contemporary - 0x0023460f, // n0x1421 c0x0000 (---------------) + I contemporaryart - 0x00236007, // n0x1422 c0x0000 (---------------) + I convent - 0x0023924a, // n0x1423 c0x0000 (---------------) + I copenhagen - 0x0021ac8b, // n0x1424 c0x0000 (---------------) + I corporation - 0x0023b2c8, // n0x1425 c0x0000 (---------------) + I corvette - 0x0023bc87, // n0x1426 c0x0000 (---------------) + I costume - 0x00337c8d, // n0x1427 c0x0000 (---------------) + I countryestate - 0x0031e7c6, // n0x1428 c0x0000 (---------------) + I county - 0x00243b46, // n0x1429 c0x0000 (---------------) + I crafts - 0x0023d949, // n0x142a c0x0000 (---------------) + I cranbrook - 0x0031ca08, // n0x142b c0x0000 (---------------) + I creation - 0x002410c8, // n0x142c c0x0000 (---------------) + I cultural - 0x002410ce, // n0x142d c0x0000 (---------------) + I culturalcenter - 0x002ce5c7, // n0x142e c0x0000 (---------------) + I culture - 0x002bba85, // n0x142f c0x0000 (---------------) + I cyber - 0x00242545, // n0x1430 c0x0000 (---------------) + I cymru - 0x00202684, // n0x1431 c0x0000 (---------------) + I dali - 0x0027c146, // n0x1432 c0x0000 (---------------) + I dallas - 0x00339908, // n0x1433 c0x0000 (---------------) + I database - 0x00226103, // n0x1434 c0x0000 (---------------) + I ddr - 0x00256f0e, // n0x1435 c0x0000 (---------------) + I decorativearts - 0x00338048, // n0x1436 c0x0000 (---------------) + I delaware - 0x00272e8b, // n0x1437 c0x0000 (---------------) + I delmenhorst - 0x0022db87, // n0x1438 c0x0000 (---------------) + I denmark - 0x0026c845, // n0x1439 c0x0000 (---------------) + I depot - 0x00222ec6, // n0x143a c0x0000 (---------------) + I design - 0x002a07c7, // n0x143b c0x0000 (---------------) + I detroit - 0x002efd48, // n0x143c c0x0000 (---------------) + I dinosaur - 0x0033b449, // n0x143d c0x0000 (---------------) + I discovery - 0x0031ea45, // n0x143e c0x0000 (---------------) + I dolls - 0x0027e288, // n0x143f c0x0000 (---------------) + I donostia - 0x00205346, // n0x1440 c0x0000 (---------------) + I durham - 0x0036ae0a, // n0x1441 c0x0000 (---------------) + I eastafrica - 0x00382709, // n0x1442 c0x0000 (---------------) + I eastcoast - 0x002349c9, // n0x1443 c0x0000 (---------------) + I education - 0x002349cb, // n0x1444 c0x0000 (---------------) + I educational - 0x00283508, // n0x1445 c0x0000 (---------------) + I egyptian - 0x0027ccc9, // n0x1446 c0x0000 (---------------) + I eisenbahn - 0x0020f686, // n0x1447 c0x0000 (---------------) + I elburg - 0x0020beca, // n0x1448 c0x0000 (---------------) + I elvendrell - 0x0022d5ca, // n0x1449 c0x0000 (---------------) + I embroidery - 0x0023944c, // n0x144a c0x0000 (---------------) + I encyclopedic - 0x002c45c7, // n0x144b c0x0000 (---------------) + I england - 0x0038da0a, // n0x144c c0x0000 (---------------) + I entomology - 0x0032b7cb, // n0x144d c0x0000 (---------------) + I environment - 0x0032b7d9, // n0x144e c0x0000 (---------------) + I environmentalconservation - 0x0022b688, // n0x144f c0x0000 (---------------) + I epilepsy - 0x00240d85, // n0x1450 c0x0000 (---------------) + I essex - 0x002bf586, // n0x1451 c0x0000 (---------------) + I estate - 0x0030c209, // n0x1452 c0x0000 (---------------) + I ethnology - 0x003a3906, // n0x1453 c0x0000 (---------------) + I exeter - 0x0021218a, // n0x1454 c0x0000 (---------------) + I exhibition - 0x0036c346, // n0x1455 c0x0000 (---------------) + I family - 0x002a0f44, // n0x1456 c0x0000 (---------------) + I farm - 0x002bf70d, // n0x1457 c0x0000 (---------------) + I farmequipment - 0x00302a87, // n0x1458 c0x0000 (---------------) + I farmers - 0x002a0f49, // n0x1459 c0x0000 (---------------) + I farmstead - 0x00364685, // n0x145a c0x0000 (---------------) + I field - 0x00364a48, // n0x145b c0x0000 (---------------) + I figueres - 0x00375e09, // n0x145c c0x0000 (---------------) + I filatelia - 0x00243ec4, // n0x145d c0x0000 (---------------) + I film - 0x00244587, // n0x145e c0x0000 (---------------) + I fineart - 0x00244588, // n0x145f c0x0000 (---------------) + I finearts - 0x00245547, // n0x1460 c0x0000 (---------------) + I finland - 0x0025fa48, // n0x1461 c0x0000 (---------------) + I flanders - 0x0024aec7, // n0x1462 c0x0000 (---------------) + I florida - 0x0023bb05, // n0x1463 c0x0000 (---------------) + I force - 0x00252dcc, // n0x1464 c0x0000 (---------------) + I fortmissoula - 0x002536c9, // n0x1465 c0x0000 (---------------) + I fortworth - 0x002b370a, // n0x1466 c0x0000 (---------------) + I foundation - 0x00381989, // n0x1467 c0x0000 (---------------) + I francaise - 0x00338849, // n0x1468 c0x0000 (---------------) + I frankfurt - 0x0024fa0c, // n0x1469 c0x0000 (---------------) + I franziskaner - 0x002e0c8b, // n0x146a c0x0000 (---------------) + I freemasonry - 0x002554c8, // n0x146b c0x0000 (---------------) + I freiburg - 0x00257548, // n0x146c c0x0000 (---------------) + I fribourg - 0x0025a904, // n0x146d c0x0000 (---------------) + I frog - 0x00279fc8, // n0x146e c0x0000 (---------------) + I fundacio - 0x0027ae09, // n0x146f c0x0000 (---------------) + I furniture - 0x00397d47, // n0x1470 c0x0000 (---------------) + I gallery - 0x002172c6, // n0x1471 c0x0000 (---------------) + I garden - 0x0023f6c7, // n0x1472 c0x0000 (---------------) + I gateway - 0x0033b6c9, // n0x1473 c0x0000 (---------------) + I geelvinck - 0x0039174b, // n0x1474 c0x0000 (---------------) + I gemological - 0x00321a47, // n0x1475 c0x0000 (---------------) + I geology - 0x0031e1c7, // n0x1476 c0x0000 (---------------) + I georgia - 0x0027bbc7, // n0x1477 c0x0000 (---------------) + I giessen - 0x003959c4, // n0x1478 c0x0000 (---------------) + I glas - 0x003959c5, // n0x1479 c0x0000 (---------------) + I glass - 0x0029eac5, // n0x147a c0x0000 (---------------) + I gorge - 0x0032e34b, // n0x147b c0x0000 (---------------) + I grandrapids - 0x0038aec4, // n0x147c c0x0000 (---------------) + I graz - 0x002a9688, // n0x147d c0x0000 (---------------) + I guernsey - 0x003723ca, // n0x147e c0x0000 (---------------) + I halloffame - 0x00205407, // n0x147f c0x0000 (---------------) + I hamburg - 0x0031be07, // n0x1480 c0x0000 (---------------) + I handson - 0x00284212, // n0x1481 c0x0000 (---------------) + I harvestcelebration - 0x002544c6, // n0x1482 c0x0000 (---------------) + I hawaii - 0x002a51c6, // n0x1483 c0x0000 (---------------) + I health - 0x0031a68e, // n0x1484 c0x0000 (---------------) + I heimatunduhren - 0x00257286, // n0x1485 c0x0000 (---------------) + I hellas - 0x0020c9c8, // n0x1486 c0x0000 (---------------) + I helsinki - 0x00288bcf, // n0x1487 c0x0000 (---------------) + I hembygdsforbund - 0x00395e08, // n0x1488 c0x0000 (---------------) + I heritage - 0x0035c688, // n0x1489 c0x0000 (---------------) + I histoire - 0x002d620a, // n0x148a c0x0000 (---------------) + I historical - 0x002d6211, // n0x148b c0x0000 (---------------) + I historicalsociety - 0x0029968e, // n0x148c c0x0000 (---------------) + I historichouses - 0x0024e9ca, // n0x148d c0x0000 (---------------) + I historisch - 0x0024e9cc, // n0x148e c0x0000 (---------------) + I historisches - 0x00230807, // n0x148f c0x0000 (---------------) + I history - 0x00230810, // n0x1490 c0x0000 (---------------) + I historyofscience - 0x002014c8, // n0x1491 c0x0000 (---------------) + I horology - 0x00299885, // n0x1492 c0x0000 (---------------) + I house - 0x002a268a, // n0x1493 c0x0000 (---------------) + I humanities - 0x0020350c, // n0x1494 c0x0000 (---------------) + I illustration - 0x0028a30d, // n0x1495 c0x0000 (---------------) + I imageandsound - 0x002986c6, // n0x1496 c0x0000 (---------------) + I indian - 0x002986c7, // n0x1497 c0x0000 (---------------) + I indiana - 0x002986cc, // n0x1498 c0x0000 (---------------) + I indianapolis - 0x002e5e0c, // n0x1499 c0x0000 (---------------) + I indianmarket - 0x002f6c4c, // n0x149a c0x0000 (---------------) + I intelligence - 0x00281f8b, // n0x149b c0x0000 (---------------) + I interactive - 0x0027d044, // n0x149c c0x0000 (---------------) + I iraq - 0x0021d3c4, // n0x149d c0x0000 (---------------) + I iron - 0x00349309, // n0x149e c0x0000 (---------------) + I isleofman - 0x002c6e47, // n0x149f c0x0000 (---------------) + I jamison - 0x00332409, // n0x14a0 c0x0000 (---------------) + I jefferson - 0x00356749, // n0x14a1 c0x0000 (---------------) + I jerusalem - 0x0035e0c7, // n0x14a2 c0x0000 (---------------) + I jewelry - 0x00397b06, // n0x14a3 c0x0000 (---------------) + I jewish - 0x00397b09, // n0x14a4 c0x0000 (---------------) + I jewishart - 0x002a4443, // n0x14a5 c0x0000 (---------------) + I jfk - 0x0027d5ca, // n0x14a6 c0x0000 (---------------) + I journalism - 0x0030f6c7, // n0x14a7 c0x0000 (---------------) + I judaica - 0x002050cb, // n0x14a8 c0x0000 (---------------) + I judygarland - 0x0030b34a, // n0x14a9 c0x0000 (---------------) + I juedisches - 0x0023d404, // n0x14aa c0x0000 (---------------) + I juif - 0x002f15c6, // n0x14ab c0x0000 (---------------) + I karate - 0x00276f49, // n0x14ac c0x0000 (---------------) + I karikatur - 0x00283944, // n0x14ad c0x0000 (---------------) + I kids - 0x0020a88a, // n0x14ae c0x0000 (---------------) + I koebenhavn - 0x002a5b85, // n0x14af c0x0000 (---------------) + I koeln - 0x002b1105, // n0x14b0 c0x0000 (---------------) + I kunst - 0x002b110d, // n0x14b1 c0x0000 (---------------) + I kunstsammlung - 0x002b144e, // n0x14b2 c0x0000 (---------------) + I kunstunddesign - 0x00315845, // n0x14b3 c0x0000 (---------------) + I labor - 0x00386dc6, // n0x14b4 c0x0000 (---------------) + I labour - 0x00240907, // n0x14b5 c0x0000 (---------------) + I lajolla - 0x002c788a, // n0x14b6 c0x0000 (---------------) + I lancashire - 0x00320b06, // n0x14b7 c0x0000 (---------------) + I landes - 0x00357784, // n0x14b8 c0x0000 (---------------) + I lans - 0x002da5c7, // n0x14b9 c0x0000 (---------------) + I larsson - 0x00215a0b, // n0x14ba c0x0000 (---------------) + I lewismiller - 0x00351ec7, // n0x14bb c0x0000 (---------------) + I lincoln - 0x0020c104, // n0x14bc c0x0000 (---------------) + I linz - 0x002d8446, // n0x14bd c0x0000 (---------------) + I living - 0x002d844d, // n0x14be c0x0000 (---------------) + I livinghistory - 0x0023a18c, // n0x14bf c0x0000 (---------------) + I localhistory - 0x00310546, // n0x14c0 c0x0000 (---------------) + I london - 0x002c308a, // n0x14c1 c0x0000 (---------------) + I losangeles - 0x00228c06, // n0x14c2 c0x0000 (---------------) + I louvre - 0x002925c8, // n0x14c3 c0x0000 (---------------) + I loyalist - 0x00312587, // n0x14c4 c0x0000 (---------------) + I lucerne - 0x0033938a, // n0x14c5 c0x0000 (---------------) + I luxembourg - 0x00233106, // n0x14c6 c0x0000 (---------------) + I luzern - 0x00209cc3, // n0x14c7 c0x0000 (---------------) + I mad - 0x00306e06, // n0x14c8 c0x0000 (---------------) + I madrid - 0x00200188, // n0x14c9 c0x0000 (---------------) + I mallorca - 0x00291a4a, // n0x14ca c0x0000 (---------------) + I manchester - 0x00262507, // n0x14cb c0x0000 (---------------) + I mansion - 0x00262508, // n0x14cc c0x0000 (---------------) + I mansions - 0x00269a04, // n0x14cd c0x0000 (---------------) + I manx - 0x0027a587, // n0x14ce c0x0000 (---------------) + I marburg - 0x00219888, // n0x14cf c0x0000 (---------------) + I maritime - 0x0029a808, // n0x14d0 c0x0000 (---------------) + I maritimo - 0x0026cc48, // n0x14d1 c0x0000 (---------------) + I maryland - 0x002b4c8a, // n0x14d2 c0x0000 (---------------) + I marylhurst - 0x002fb545, // n0x14d3 c0x0000 (---------------) + I media - 0x00234ec7, // n0x14d4 c0x0000 (---------------) + I medical - 0x0024e813, // n0x14d5 c0x0000 (---------------) + I medizinhistorisches - 0x002515c6, // n0x14d6 c0x0000 (---------------) + I meeres - 0x00338b08, // n0x14d7 c0x0000 (---------------) + I memorial - 0x00221409, // n0x14d8 c0x0000 (---------------) + I mesaverde - 0x0020f988, // n0x14d9 c0x0000 (---------------) + I michigan - 0x0021064b, // n0x14da c0x0000 (---------------) + I midatlantic - 0x002b2c48, // n0x14db c0x0000 (---------------) + I military - 0x00215b44, // n0x14dc c0x0000 (---------------) + I mill - 0x0028cf86, // n0x14dd c0x0000 (---------------) + I miners - 0x002f8106, // n0x14de c0x0000 (---------------) + I mining - 0x002d3949, // n0x14df c0x0000 (---------------) + I minnesota - 0x002b92c7, // n0x14e0 c0x0000 (---------------) + I missile - 0x00252ec8, // n0x14e1 c0x0000 (---------------) + I missoula - 0x003906c6, // n0x14e2 c0x0000 (---------------) + I modern - 0x0020ed84, // n0x14e3 c0x0000 (---------------) + I moma - 0x002c5005, // n0x14e4 c0x0000 (---------------) + I money - 0x002be988, // n0x14e5 c0x0000 (---------------) + I monmouth - 0x002bf0ca, // n0x14e6 c0x0000 (---------------) + I monticello - 0x002bf388, // n0x14e7 c0x0000 (---------------) + I montreal - 0x002c5ac6, // n0x14e8 c0x0000 (---------------) + I moscow - 0x0029214a, // n0x14e9 c0x0000 (---------------) + I motorcycle - 0x002f6388, // n0x14ea c0x0000 (---------------) + I muenchen - 0x002c8108, // n0x14eb c0x0000 (---------------) + I muenster - 0x002c9488, // n0x14ec c0x0000 (---------------) + I mulhouse - 0x002c9e46, // n0x14ed c0x0000 (---------------) + I muncie - 0x002cc246, // n0x14ee c0x0000 (---------------) + I museet - 0x0030910c, // n0x14ef c0x0000 (---------------) + I museumcenter - 0x002cc750, // n0x14f0 c0x0000 (---------------) + I museumvereniging - 0x00270385, // n0x14f1 c0x0000 (---------------) + I music - 0x002fd6c8, // n0x14f2 c0x0000 (---------------) + I national - 0x002fd6d0, // n0x14f3 c0x0000 (---------------) + I nationalfirearms - 0x00395c10, // n0x14f4 c0x0000 (---------------) + I nationalheritage - 0x002a1e0e, // n0x14f5 c0x0000 (---------------) + I nativeamerican - 0x00308d8e, // n0x14f6 c0x0000 (---------------) + I naturalhistory - 0x00308d94, // n0x14f7 c0x0000 (---------------) + I naturalhistorymuseum - 0x0032bdcf, // n0x14f8 c0x0000 (---------------) + I naturalsciences - 0x0032c186, // n0x14f9 c0x0000 (---------------) + I nature - 0x003100d1, // n0x14fa c0x0000 (---------------) + I naturhistorisches - 0x003196d3, // n0x14fb c0x0000 (---------------) + I natuurwetenschappen - 0x00319b48, // n0x14fc c0x0000 (---------------) + I naumburg - 0x0039d445, // n0x14fd c0x0000 (---------------) + I naval - 0x00272148, // n0x14fe c0x0000 (---------------) + I nebraska - 0x002cdc05, // n0x14ff c0x0000 (---------------) + I neues - 0x00226c8c, // n0x1500 c0x0000 (---------------) + I newhampshire - 0x00366dc9, // n0x1501 c0x0000 (---------------) + I newjersey - 0x0021dd09, // n0x1502 c0x0000 (---------------) + I newmexico - 0x0023f447, // n0x1503 c0x0000 (---------------) + I newport - 0x0021fe49, // n0x1504 c0x0000 (---------------) + I newspaper - 0x00302cc7, // n0x1505 c0x0000 (---------------) + I newyork - 0x002c5ec6, // n0x1506 c0x0000 (---------------) + I niepce - 0x00351647, // n0x1507 c0x0000 (---------------) + I norfolk - 0x00238445, // n0x1508 c0x0000 (---------------) + I north - 0x00332603, // n0x1509 c0x0000 (---------------) + I nrw - 0x002262c9, // n0x150a c0x0000 (---------------) + I nuernberg - 0x00209709, // n0x150b c0x0000 (---------------) + I nuremberg - 0x0036c603, // n0x150c c0x0000 (---------------) + I nyc - 0x0039ab44, // n0x150d c0x0000 (---------------) + I nyny - 0x002ff6cd, // n0x150e c0x0000 (---------------) + I oceanographic - 0x00393d4f, // n0x150f c0x0000 (---------------) + I oceanographique - 0x002f5c85, // n0x1510 c0x0000 (---------------) + I omaha - 0x00316946, // n0x1511 c0x0000 (---------------) + I online - 0x00393bc7, // n0x1512 c0x0000 (---------------) + I ontario - 0x0033cc07, // n0x1513 c0x0000 (---------------) + I openair - 0x002811c6, // n0x1514 c0x0000 (---------------) + I oregon - 0x002811cb, // n0x1515 c0x0000 (---------------) + I oregontrail - 0x0029ad85, // n0x1516 c0x0000 (---------------) + I otago - 0x00395106, // n0x1517 c0x0000 (---------------) + I oxford - 0x00350507, // n0x1518 c0x0000 (---------------) + I pacific - 0x00269509, // n0x1519 c0x0000 (---------------) + I paderborn - 0x003097c6, // n0x151a c0x0000 (---------------) + I palace - 0x002ff5c5, // n0x151b c0x0000 (---------------) + I paleo - 0x0022408b, // n0x151c c0x0000 (---------------) + I palmsprings - 0x00339646, // n0x151d c0x0000 (---------------) + I panama - 0x00252285, // n0x151e c0x0000 (---------------) + I paris - 0x002a6148, // n0x151f c0x0000 (---------------) + I pasadena - 0x002ec948, // n0x1520 c0x0000 (---------------) + I pharmacy - 0x002cf34c, // n0x1521 c0x0000 (---------------) + I philadelphia - 0x002cf350, // n0x1522 c0x0000 (---------------) + I philadelphiaarea - 0x002cfa09, // n0x1523 c0x0000 (---------------) + I philately - 0x002cfe47, // n0x1524 c0x0000 (---------------) + I phoenix - 0x002d02cb, // n0x1525 c0x0000 (---------------) + I photography - 0x002d1346, // n0x1526 c0x0000 (---------------) + I pilots - 0x002d1fca, // n0x1527 c0x0000 (---------------) + I pittsburgh - 0x002d2a8b, // n0x1528 c0x0000 (---------------) + I planetarium - 0x002d320a, // n0x1529 c0x0000 (---------------) + I plantation - 0x002d3486, // n0x152a c0x0000 (---------------) + I plants - 0x002d49c5, // n0x152b c0x0000 (---------------) + I plaza - 0x002bcc86, // n0x152c c0x0000 (---------------) + I portal - 0x0027b748, // n0x152d c0x0000 (---------------) + I portland - 0x0023f50a, // n0x152e c0x0000 (---------------) + I portlligat - 0x0035d31c, // n0x152f c0x0000 (---------------) + I posts-and-telecommunications - 0x002da84c, // n0x1530 c0x0000 (---------------) + I preservation - 0x002dab48, // n0x1531 c0x0000 (---------------) + I presidio - 0x00240d05, // n0x1532 c0x0000 (---------------) + I press - 0x002dd187, // n0x1533 c0x0000 (---------------) + I project - 0x0028ff46, // n0x1534 c0x0000 (---------------) + I public - 0x0037f3c5, // n0x1535 c0x0000 (---------------) + I pubol - 0x0021a006, // n0x1536 c0x0000 (---------------) + I quebec - 0x00281388, // n0x1537 c0x0000 (---------------) + I railroad - 0x002aff47, // n0x1538 c0x0000 (---------------) + I railway - 0x00290208, // n0x1539 c0x0000 (---------------) + I research - 0x002d2f8a, // n0x153a c0x0000 (---------------) + I resistance - 0x00310d0c, // n0x153b c0x0000 (---------------) + I riodejaneiro - 0x00310f89, // n0x153c c0x0000 (---------------) + I rochester - 0x0037f707, // n0x153d c0x0000 (---------------) + I rockart - 0x00227784, // n0x153e c0x0000 (---------------) + I roma - 0x0024b506, // n0x153f c0x0000 (---------------) + I russia - 0x0035c20a, // n0x1540 c0x0000 (---------------) + I saintlouis - 0x00356845, // n0x1541 c0x0000 (---------------) + I salem - 0x0039328c, // n0x1542 c0x0000 (---------------) + I salvadordali - 0x00395808, // n0x1543 c0x0000 (---------------) + I salzburg - 0x00237e48, // n0x1544 c0x0000 (---------------) + I sandiego - 0x00207f0c, // n0x1545 c0x0000 (---------------) + I sanfrancisco - 0x0021164c, // n0x1546 c0x0000 (---------------) + I santabarbara - 0x00211d49, // n0x1547 c0x0000 (---------------) + I santacruz - 0x00211f87, // n0x1548 c0x0000 (---------------) + I santafe - 0x002fa40c, // n0x1549 c0x0000 (---------------) + I saskatchewan - 0x0034ef04, // n0x154a c0x0000 (---------------) + I satx - 0x0038340a, // n0x154b c0x0000 (---------------) + I savannahga - 0x0039554c, // n0x154c c0x0000 (---------------) + I schlesisches - 0x0026adcb, // n0x154d c0x0000 (---------------) + I schoenbrunn - 0x0023120b, // n0x154e c0x0000 (---------------) + I schokoladen - 0x00231d06, // n0x154f c0x0000 (---------------) + I school - 0x0023de07, // n0x1550 c0x0000 (---------------) + I schweiz - 0x00230a47, // n0x1551 c0x0000 (---------------) + I science - 0x00230a4f, // n0x1552 c0x0000 (---------------) + I science-fiction - 0x002e6751, // n0x1553 c0x0000 (---------------) + I scienceandhistory - 0x0039cfd2, // n0x1554 c0x0000 (---------------) + I scienceandindustry - 0x0023fa4d, // n0x1555 c0x0000 (---------------) + I sciencecenter - 0x0023fa4e, // n0x1556 c0x0000 (---------------) + I sciencecenters - 0x0023fd8e, // n0x1557 c0x0000 (---------------) + I sciencehistory - 0x0032bf88, // n0x1558 c0x0000 (---------------) + I sciences - 0x0032bf92, // n0x1559 c0x0000 (---------------) + I sciencesnaturelles - 0x00208148, // n0x155a c0x0000 (---------------) + I scotland - 0x002f1d87, // n0x155b c0x0000 (---------------) + I seaport - 0x0024930a, // n0x155c c0x0000 (---------------) + I settlement - 0x0020a4c8, // n0x155d c0x0000 (---------------) + I settlers - 0x00257245, // n0x155e c0x0000 (---------------) + I shell - 0x002e490a, // n0x155f c0x0000 (---------------) + I sherbrooke - 0x0021c2c7, // n0x1560 c0x0000 (---------------) + I sibenik - 0x003531c4, // n0x1561 c0x0000 (---------------) + I silk - 0x0021cf83, // n0x1562 c0x0000 (---------------) + I ski - 0x0028dec5, // n0x1563 c0x0000 (---------------) + I skole - 0x002d6487, // n0x1564 c0x0000 (---------------) + I society - 0x002db8c7, // n0x1565 c0x0000 (---------------) + I sologne - 0x0028a50e, // n0x1566 c0x0000 (---------------) + I soundandvision - 0x00327f4d, // n0x1567 c0x0000 (---------------) + I southcarolina - 0x0032ad49, // n0x1568 c0x0000 (---------------) + I southwest - 0x00335085, // n0x1569 c0x0000 (---------------) + I space - 0x0032e5c3, // n0x156a c0x0000 (---------------) + I spy - 0x0027c606, // n0x156b c0x0000 (---------------) + I square - 0x00361245, // n0x156c c0x0000 (---------------) + I stadt - 0x002730c8, // n0x156d c0x0000 (---------------) + I stalbans - 0x00317c49, // n0x156e c0x0000 (---------------) + I starnberg - 0x0028e7c5, // n0x156f c0x0000 (---------------) + I state - 0x00337e8f, // n0x1570 c0x0000 (---------------) + I stateofdelaware - 0x002d4807, // n0x1571 c0x0000 (---------------) + I station - 0x003658c5, // n0x1572 c0x0000 (---------------) + I steam - 0x00305b8a, // n0x1573 c0x0000 (---------------) + I steiermark - 0x002b4e86, // n0x1574 c0x0000 (---------------) + I stjohn - 0x00292749, // n0x1575 c0x0000 (---------------) + I stockholm - 0x002e058c, // n0x1576 c0x0000 (---------------) + I stpetersburg - 0x002e1909, // n0x1577 c0x0000 (---------------) + I stuttgart - 0x002068c6, // n0x1578 c0x0000 (---------------) + I suisse - 0x003721cc, // n0x1579 c0x0000 (---------------) + I surgeonshall - 0x002e2146, // n0x157a c0x0000 (---------------) + I surrey - 0x002e4c88, // n0x157b c0x0000 (---------------) + I svizzera - 0x002e4e86, // n0x157c c0x0000 (---------------) + I sweden - 0x0022b806, // n0x157d c0x0000 (---------------) + I sydney - 0x00224d04, // n0x157e c0x0000 (---------------) + I tank - 0x00255843, // n0x157f c0x0000 (---------------) + I tcm - 0x002a3c4a, // n0x1580 c0x0000 (---------------) + I technology - 0x0025ea51, // n0x1581 c0x0000 (---------------) + I telekommunikation - 0x0023b44a, // n0x1582 c0x0000 (---------------) + I television - 0x002ff185, // n0x1583 c0x0000 (---------------) + I texas - 0x002fe987, // n0x1584 c0x0000 (---------------) + I textile - 0x0031b107, // n0x1585 c0x0000 (---------------) + I theater - 0x00219984, // n0x1586 c0x0000 (---------------) + I time - 0x0021998b, // n0x1587 c0x0000 (---------------) + I timekeeping - 0x00300d08, // n0x1588 c0x0000 (---------------) + I topology - 0x002abe46, // n0x1589 c0x0000 (---------------) + I torino - 0x00330f05, // n0x158a c0x0000 (---------------) + I touch - 0x002a9404, // n0x158b c0x0000 (---------------) + I town - 0x0028b589, // n0x158c c0x0000 (---------------) + I transport - 0x0024f1c4, // n0x158d c0x0000 (---------------) + I tree - 0x002b2407, // n0x158e c0x0000 (---------------) + I trolley - 0x0031f0c5, // n0x158f c0x0000 (---------------) + I trust - 0x0031f0c7, // n0x1590 c0x0000 (---------------) + I trustee - 0x0031a8c5, // n0x1591 c0x0000 (---------------) + I uhren - 0x00330703, // n0x1592 c0x0000 (---------------) + I ulm - 0x002f1c48, // n0x1593 c0x0000 (---------------) + I undersea - 0x00281a0a, // n0x1594 c0x0000 (---------------) + I university - 0x00204783, // n0x1595 c0x0000 (---------------) + I usa - 0x0020478a, // n0x1596 c0x0000 (---------------) + I usantiques - 0x00285b46, // n0x1597 c0x0000 (---------------) + I usarts - 0x00337c0f, // n0x1598 c0x0000 (---------------) + I uscountryestate - 0x0034cd09, // n0x1599 c0x0000 (---------------) + I usculture - 0x00256e90, // n0x159a c0x0000 (---------------) + I usdecorativearts - 0x00266448, // n0x159b c0x0000 (---------------) + I usgarden - 0x002c6149, // n0x159c c0x0000 (---------------) + I ushistory - 0x00294047, // n0x159d c0x0000 (---------------) + I ushuaia - 0x002d83cf, // n0x159e c0x0000 (---------------) + I uslivinghistory - 0x002e1444, // n0x159f c0x0000 (---------------) + I utah - 0x002fa7c4, // n0x15a0 c0x0000 (---------------) + I uvic - 0x00213f46, // n0x15a1 c0x0000 (---------------) + I valley - 0x00265f06, // n0x15a2 c0x0000 (---------------) + I vantaa - 0x00314eca, // n0x15a3 c0x0000 (---------------) + I versailles - 0x0036cf46, // n0x15a4 c0x0000 (---------------) + I viking - 0x002f0507, // n0x15a5 c0x0000 (---------------) + I village - 0x002ee6c8, // n0x15a6 c0x0000 (---------------) + I virginia - 0x002ee8c7, // n0x15a7 c0x0000 (---------------) + I virtual - 0x002eea87, // n0x15a8 c0x0000 (---------------) + I virtuel - 0x003434ca, // n0x15a9 c0x0000 (---------------) + I vlaanderen - 0x002f1a8b, // n0x15aa c0x0000 (---------------) + I volkenkunde - 0x0030e445, // n0x15ab c0x0000 (---------------) + I wales - 0x0039cc08, // n0x15ac c0x0000 (---------------) + I wallonie - 0x00207c83, // n0x15ad c0x0000 (---------------) + I war - 0x00227b8c, // n0x15ae c0x0000 (---------------) + I washingtondc - 0x0037364f, // n0x15af c0x0000 (---------------) + I watch-and-clock - 0x002a690d, // n0x15b0 c0x0000 (---------------) + I watchandclock - 0x00238587, // n0x15b1 c0x0000 (---------------) + I western - 0x0032ae89, // n0x15b2 c0x0000 (---------------) + I westfalen - 0x00330c07, // n0x15b3 c0x0000 (---------------) + I whaling - 0x0023eb88, // n0x15b4 c0x0000 (---------------) + I wildlife - 0x0022e18c, // n0x15b5 c0x0000 (---------------) + I williamsburg - 0x0025b848, // n0x15b6 c0x0000 (---------------) + I windmill - 0x00332b48, // n0x15b7 c0x0000 (---------------) + I workshop - 0x0030be8e, // n0x15b8 c0x0000 (---------------) + I xn--9dbhblg6di - 0x0031cc14, // n0x15b9 c0x0000 (---------------) + I xn--comunicaes-v6a2o - 0x0031d124, // n0x15ba c0x0000 (---------------) + I xn--correios-e-telecomunicaes-ghc29a - 0x00336e4a, // n0x15bb c0x0000 (---------------) + I xn--h1aegh - 0x003537cb, // n0x15bc c0x0000 (---------------) + I xn--lns-qla - 0x00302d84, // n0x15bd c0x0000 (---------------) + I york - 0x00302d89, // n0x15be c0x0000 (---------------) + I yorkshire - 0x003535c8, // n0x15bf c0x0000 (---------------) + I yosemite - 0x00242c85, // n0x15c0 c0x0000 (---------------) + I youth - 0x00225c0a, // n0x15c1 c0x0000 (---------------) + I zoological - 0x0027c7c7, // n0x15c2 c0x0000 (---------------) + I zoology - 0x002bcb84, // n0x15c3 c0x0000 (---------------) + I aero - 0x0030a143, // n0x15c4 c0x0000 (---------------) + I biz - 0x0022edc3, // n0x15c5 c0x0000 (---------------) + I com - 0x00238284, // n0x15c6 c0x0000 (---------------) + I coop - 0x002349c3, // n0x15c7 c0x0000 (---------------) + I edu - 0x00275003, // n0x15c8 c0x0000 (---------------) + I gov - 0x0038a144, // n0x15c9 c0x0000 (---------------) + I info - 0x0026f683, // n0x15ca c0x0000 (---------------) + I int - 0x00215b43, // n0x15cb c0x0000 (---------------) + I mil - 0x002cc746, // n0x15cc c0x0000 (---------------) + I museum - 0x0027ca84, // n0x15cd c0x0000 (---------------) + I name - 0x0021d8c3, // n0x15ce c0x0000 (---------------) + I net - 0x00229a83, // n0x15cf c0x0000 (---------------) + I org - 0x00220283, // n0x15d0 c0x0000 (---------------) + I pro - 0x00205882, // n0x15d1 c0x0000 (---------------) + I ac - 0x0030a143, // n0x15d2 c0x0000 (---------------) + I biz - 0x00208182, // n0x15d3 c0x0000 (---------------) + I co - 0x0022edc3, // n0x15d4 c0x0000 (---------------) + I com - 0x00238284, // n0x15d5 c0x0000 (---------------) + I coop - 0x002349c3, // n0x15d6 c0x0000 (---------------) + I edu - 0x00275003, // n0x15d7 c0x0000 (---------------) + I gov - 0x0026f683, // n0x15d8 c0x0000 (---------------) + I int - 0x002cc746, // n0x15d9 c0x0000 (---------------) + I museum - 0x0021d8c3, // n0x15da c0x0000 (---------------) + I net - 0x00229a83, // n0x15db c0x0000 (---------------) + I org - 0x000f5248, // n0x15dc c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x15dd c0x0000 (---------------) + I com - 0x002349c3, // n0x15de c0x0000 (---------------) + I edu - 0x00209f03, // n0x15df c0x0000 (---------------) + I gob - 0x0021d8c3, // n0x15e0 c0x0000 (---------------) + I net - 0x00229a83, // n0x15e1 c0x0000 (---------------) + I org - 0x000f5248, // n0x15e2 c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x15e3 c0x0000 (---------------) + I com - 0x002349c3, // n0x15e4 c0x0000 (---------------) + I edu - 0x00275003, // n0x15e5 c0x0000 (---------------) + I gov - 0x00215b43, // n0x15e6 c0x0000 (---------------) + I mil - 0x0027ca84, // n0x15e7 c0x0000 (---------------) + I name - 0x0021d8c3, // n0x15e8 c0x0000 (---------------) + I net - 0x00229a83, // n0x15e9 c0x0000 (---------------) + I org - 0x00739808, // n0x15ea c0x0001 (---------------) ! I teledata - 0x00200302, // n0x15eb c0x0000 (---------------) + I ca - 0x0021db82, // n0x15ec c0x0000 (---------------) + I cc - 0x00208182, // n0x15ed c0x0000 (---------------) + I co - 0x0022edc3, // n0x15ee c0x0000 (---------------) + I com - 0x00204d42, // n0x15ef c0x0000 (---------------) + I dr - 0x002020c2, // n0x15f0 c0x0000 (---------------) + I in - 0x0038a144, // n0x15f1 c0x0000 (---------------) + I info - 0x00207804, // n0x15f2 c0x0000 (---------------) + I mobi - 0x00214b82, // n0x15f3 c0x0000 (---------------) + I mx - 0x0027ca84, // n0x15f4 c0x0000 (---------------) + I name - 0x00200282, // n0x15f5 c0x0000 (---------------) + I or - 0x00229a83, // n0x15f6 c0x0000 (---------------) + I org - 0x00220283, // n0x15f7 c0x0000 (---------------) + I pro - 0x00231d06, // n0x15f8 c0x0000 (---------------) + I school - 0x00206fc2, // n0x15f9 c0x0000 (---------------) + I tv - 0x00202982, // n0x15fa c0x0000 (---------------) + I us - 0x0021fec2, // n0x15fb c0x0000 (---------------) + I ws - 0x37e21343, // n0x15fc c0x00df (n0x15fe-n0x15ff) o I her - 0x38210ac3, // n0x15fd c0x00e0 (n0x15ff-n0x1600) o I his - 0x0004f7c6, // n0x15fe c0x0000 (---------------) + forgot - 0x0004f7c6, // n0x15ff c0x0000 (---------------) + forgot - 0x002b1c44, // n0x1600 c0x0000 (---------------) + I asso - 0x001068cc, // n0x1601 c0x0000 (---------------) + at-band-camp - 0x0007758c, // n0x1602 c0x0000 (---------------) + azure-mobile - 0x000ba84d, // n0x1603 c0x0000 (---------------) + azurewebsites - 0x00029007, // n0x1604 c0x0000 (---------------) + blogdns - 0x0001f188, // n0x1605 c0x0000 (---------------) + broke-it - 0x0019304a, // n0x1606 c0x0000 (---------------) + buyshouses - 0x38e39705, // n0x1607 c0x00e3 (n0x1632-n0x1633) o I cdn77 - 0x00039709, // n0x1608 c0x0000 (---------------) + cdn77-ssl - 0x0017e448, // n0x1609 c0x0000 (---------------) + cloudapp - 0x0002c88a, // n0x160a c0x0000 (---------------) + cloudfront - 0x00147e08, // n0x160b c0x0000 (---------------) + dnsalias - 0x00074607, // n0x160c c0x0000 (---------------) + dnsdojo - 0x00006e47, // n0x160d c0x0000 (---------------) + does-it - 0x00168789, // n0x160e c0x0000 (---------------) + dontexist - 0x0018bd88, // n0x160f c0x0000 (---------------) + dynalias - 0x0005ce49, // n0x1610 c0x0000 (---------------) + dynathome - 0x0009f90d, // n0x1611 c0x0000 (---------------) + endofinternet - 0x392e01c6, // n0x1612 c0x00e4 (n0x1633-n0x1635) o I fastly - 0x0005b687, // n0x1613 c0x0000 (---------------) + from-az - 0x0005d787, // n0x1614 c0x0000 (---------------) + from-co - 0x00061fc7, // n0x1615 c0x0000 (---------------) + from-la - 0x00068a07, // n0x1616 c0x0000 (---------------) + from-ny - 0x00009582, // n0x1617 c0x0000 (---------------) + gb - 0x00163107, // n0x1618 c0x0000 (---------------) + gets-it - 0x0005e5cc, // n0x1619 c0x0000 (---------------) + ham-radio-op - 0x000ad607, // n0x161a c0x0000 (---------------) + homeftp - 0x0009c286, // n0x161b c0x0000 (---------------) + homeip - 0x0009c509, // n0x161c c0x0000 (---------------) + homelinux - 0x0009d988, // n0x161d c0x0000 (---------------) + homeunix - 0x0000d0c2, // n0x161e c0x0000 (---------------) + hu - 0x000020c2, // n0x161f c0x0000 (---------------) + in - 0x0010078b, // n0x1620 c0x0000 (---------------) + in-the-band - 0x0000fe09, // n0x1621 c0x0000 (---------------) + is-a-chef - 0x0005f049, // n0x1622 c0x0000 (---------------) + is-a-geek - 0x000fff08, // n0x1623 c0x0000 (---------------) + isa-geek - 0x000a8bc2, // n0x1624 c0x0000 (---------------) + jp - 0x0014c909, // n0x1625 c0x0000 (---------------) + kicks-ass - 0x0001f70d, // n0x1626 c0x0000 (---------------) + office-on-the - 0x000d7147, // n0x1627 c0x0000 (---------------) + podzone - 0x0004700d, // n0x1628 c0x0000 (---------------) + scrapper-site - 0x00001d42, // n0x1629 c0x0000 (---------------) + se - 0x00053986, // n0x162a c0x0000 (---------------) + selfip - 0x00088508, // n0x162b c0x0000 (---------------) + sells-it - 0x000c9608, // n0x162c c0x0000 (---------------) + servebbs - 0x0006e648, // n0x162d c0x0000 (---------------) + serveftp - 0x0004c288, // n0x162e c0x0000 (---------------) + thruhere - 0x00000f82, // n0x162f c0x0000 (---------------) + uk - 0x00123b06, // n0x1630 c0x0000 (---------------) + webhop - 0x00009ac2, // n0x1631 c0x0000 (---------------) + za - 0x000002c1, // n0x1632 c0x0000 (---------------) + r - 0x396db644, // n0x1633 c0x00e5 (n0x1635-n0x1637) o I prod - 0x39a39883, // n0x1634 c0x00e6 (n0x1637-n0x163a) o I ssl - 0x00000101, // n0x1635 c0x0000 (---------------) + a - 0x00005586, // n0x1636 c0x0000 (---------------) + global - 0x00000101, // n0x1637 c0x0000 (---------------) + a - 0x00000001, // n0x1638 c0x0000 (---------------) + b - 0x00005586, // n0x1639 c0x0000 (---------------) + global - 0x00243984, // n0x163a c0x0000 (---------------) + I arts - 0x0022edc3, // n0x163b c0x0000 (---------------) + I com - 0x00247a04, // n0x163c c0x0000 (---------------) + I firm - 0x0038a144, // n0x163d c0x0000 (---------------) + I info - 0x0021d8c3, // n0x163e c0x0000 (---------------) + I net - 0x002212c5, // n0x163f c0x0000 (---------------) + I other - 0x0021ffc3, // n0x1640 c0x0000 (---------------) + I per - 0x00226f03, // n0x1641 c0x0000 (---------------) + I rec - 0x0038c985, // n0x1642 c0x0000 (---------------) + I store - 0x0021fa83, // n0x1643 c0x0000 (---------------) + I web - 0x3a62edc3, // n0x1644 c0x00e9 (n0x164d-n0x164e) + I com - 0x002349c3, // n0x1645 c0x0000 (---------------) + I edu - 0x00275003, // n0x1646 c0x0000 (---------------) + I gov - 0x00215b43, // n0x1647 c0x0000 (---------------) + I mil - 0x00207804, // n0x1648 c0x0000 (---------------) + I mobi - 0x0027ca84, // n0x1649 c0x0000 (---------------) + I name - 0x0021d8c3, // n0x164a c0x0000 (---------------) + I net - 0x00229a83, // n0x164b c0x0000 (---------------) + I org - 0x00215d43, // n0x164c c0x0000 (---------------) + I sch - 0x000f5248, // n0x164d c0x0000 (---------------) + blogspot - 0x000f5248, // n0x164e c0x0000 (---------------) + blogspot - 0x00364282, // n0x164f c0x0000 (---------------) + I bv - 0x00008182, // n0x1650 c0x0000 (---------------) + co - 0x3b222142, // n0x1651 c0x00ec (n0x1927-n0x1928) + I aa - 0x00379688, // n0x1652 c0x0000 (---------------) + I aarborte - 0x002225c6, // n0x1653 c0x0000 (---------------) + I aejrie - 0x002b65c6, // n0x1654 c0x0000 (---------------) + I afjord - 0x00221f47, // n0x1655 c0x0000 (---------------) + I agdenes - 0x3b607142, // n0x1656 c0x00ed (n0x1928-n0x1929) + I ah - 0x3bb1b508, // n0x1657 c0x00ee (n0x1929-n0x192a) o I akershus - 0x0030ec8a, // n0x1658 c0x0000 (---------------) + I aknoluokta - 0x0025b108, // n0x1659 c0x0000 (---------------) + I akrehamn - 0x002001c2, // n0x165a c0x0000 (---------------) + I al - 0x0030f509, // n0x165b c0x0000 (---------------) + I alaheadju - 0x0030e487, // n0x165c c0x0000 (---------------) + I alesund - 0x00217246, // n0x165d c0x0000 (---------------) + I algard - 0x00235909, // n0x165e c0x0000 (---------------) + I alstahaug - 0x00235004, // n0x165f c0x0000 (---------------) + I alta - 0x002b7046, // n0x1660 c0x0000 (---------------) + I alvdal - 0x002b69c4, // n0x1661 c0x0000 (---------------) + I amli - 0x00270f84, // n0x1662 c0x0000 (---------------) + I amot - 0x00252a09, // n0x1663 c0x0000 (---------------) + I andasuolo - 0x00204e86, // n0x1664 c0x0000 (---------------) + I andebu - 0x0036bd45, // n0x1665 c0x0000 (---------------) + I andoy - 0x00260185, // n0x1666 c0x0000 (---------------) + I ardal - 0x0022f807, // n0x1667 c0x0000 (---------------) + I aremark - 0x002b30c7, // n0x1668 c0x0000 (---------------) + I arendal - 0x00347544, // n0x1669 c0x0000 (---------------) + I arna - 0x00222186, // n0x166a c0x0000 (---------------) + I aseral - 0x002dc105, // n0x166b c0x0000 (---------------) + I asker - 0x00229385, // n0x166c c0x0000 (---------------) + I askim - 0x002ea945, // n0x166d c0x0000 (---------------) + I askoy - 0x00385087, // n0x166e c0x0000 (---------------) + I askvoll - 0x0022d9c5, // n0x166f c0x0000 (---------------) + I asnes - 0x00304089, // n0x1670 c0x0000 (---------------) + I audnedaln - 0x002a1605, // n0x1671 c0x0000 (---------------) + I aukra - 0x002efe84, // n0x1672 c0x0000 (---------------) + I aure - 0x00320a47, // n0x1673 c0x0000 (---------------) + I aurland - 0x002bc40e, // n0x1674 c0x0000 (---------------) + I aurskog-holand - 0x00301fc9, // n0x1675 c0x0000 (---------------) + I austevoll - 0x0031a549, // n0x1676 c0x0000 (---------------) + I austrheim - 0x0032b606, // n0x1677 c0x0000 (---------------) + I averoy - 0x002e6f88, // n0x1678 c0x0000 (---------------) + I badaddja - 0x002a774b, // n0x1679 c0x0000 (---------------) + I bahcavuotna - 0x002cd38c, // n0x167a c0x0000 (---------------) + I bahccavuotna - 0x00262246, // n0x167b c0x0000 (---------------) + I baidar - 0x0036e907, // n0x167c c0x0000 (---------------) + I bajddar - 0x00224745, // n0x167d c0x0000 (---------------) + I balat - 0x0022d04a, // n0x167e c0x0000 (---------------) + I balestrand - 0x00307909, // n0x167f c0x0000 (---------------) + I ballangen - 0x002559c9, // n0x1680 c0x0000 (---------------) + I balsfjord - 0x002a0b46, // n0x1681 c0x0000 (---------------) + I bamble - 0x002e40c5, // n0x1682 c0x0000 (---------------) + I bardu - 0x002768c5, // n0x1683 c0x0000 (---------------) + I barum - 0x00350189, // n0x1684 c0x0000 (---------------) + I batsfjord - 0x002eaacb, // n0x1685 c0x0000 (---------------) + I bearalvahki - 0x002742c6, // n0x1686 c0x0000 (---------------) + I beardu - 0x0032a546, // n0x1687 c0x0000 (---------------) + I beiarn - 0x002094c4, // n0x1688 c0x0000 (---------------) + I berg - 0x00283ec6, // n0x1689 c0x0000 (---------------) + I bergen - 0x002bbb08, // n0x168a c0x0000 (---------------) + I berlevag - 0x00200006, // n0x168b c0x0000 (---------------) + I bievat - 0x002025c6, // n0x168c c0x0000 (---------------) + I bindal - 0x00205ec8, // n0x168d c0x0000 (---------------) + I birkenes - 0x002066c7, // n0x168e c0x0000 (---------------) + I bjarkoy - 0x002075c9, // n0x168f c0x0000 (---------------) + I bjerkreim - 0x00207d85, // n0x1690 c0x0000 (---------------) + I bjugn - 0x000f5248, // n0x1691 c0x0000 (---------------) + blogspot - 0x00206dc4, // n0x1692 c0x0000 (---------------) + I bodo - 0x002f0804, // n0x1693 c0x0000 (---------------) + I bokn - 0x00211485, // n0x1694 c0x0000 (---------------) + I bomlo - 0x00388089, // n0x1695 c0x0000 (---------------) + I bremanger - 0x00220687, // n0x1696 c0x0000 (---------------) + I bronnoy - 0x0022068b, // n0x1697 c0x0000 (---------------) + I bronnoysund - 0x0022184a, // n0x1698 c0x0000 (---------------) + I brumunddal - 0x00224445, // n0x1699 c0x0000 (---------------) + I bryne - 0x3be04742, // n0x169a c0x00ef (n0x192a-n0x192b) + I bu - 0x00204f87, // n0x169b c0x0000 (---------------) + I budejju - 0x3c226a48, // n0x169c c0x00f0 (n0x192b-n0x192c) o I buskerud - 0x002cb0c7, // n0x169d c0x0000 (---------------) + I bygland - 0x002acb45, // n0x169e c0x0000 (---------------) + I bykle - 0x00239f8a, // n0x169f c0x0000 (---------------) + I cahcesuolo - 0x00008182, // n0x16a0 c0x0000 (---------------) + co - 0x0028760b, // n0x16a1 c0x0000 (---------------) + I davvenjarga - 0x0025c88a, // n0x16a2 c0x0000 (---------------) + I davvesiida - 0x00395246, // n0x16a3 c0x0000 (---------------) + I deatnu - 0x0026c843, // n0x16a4 c0x0000 (---------------) + I dep - 0x002ad18d, // n0x16a5 c0x0000 (---------------) + I dielddanuorri - 0x00255bcc, // n0x16a6 c0x0000 (---------------) + I divtasvuodna - 0x002641cd, // n0x16a7 c0x0000 (---------------) + I divttasvuotna - 0x00359d05, // n0x16a8 c0x0000 (---------------) + I donna - 0x0025dfc5, // n0x16a9 c0x0000 (---------------) + I dovre - 0x00226147, // n0x16aa c0x0000 (---------------) + I drammen - 0x0030e609, // n0x16ab c0x0000 (---------------) + I drangedal - 0x0030eb86, // n0x16ac c0x0000 (---------------) + I drobak - 0x0036cdc5, // n0x16ad c0x0000 (---------------) + I dyroy - 0x0025d9c8, // n0x16ae c0x0000 (---------------) + I egersund - 0x00272443, // n0x16af c0x0000 (---------------) + I eid - 0x0032f988, // n0x16b0 c0x0000 (---------------) + I eidfjord - 0x00283dc8, // n0x16b1 c0x0000 (---------------) + I eidsberg - 0x002b7f47, // n0x16b2 c0x0000 (---------------) + I eidskog - 0x00272448, // n0x16b3 c0x0000 (---------------) + I eidsvoll - 0x003a3509, // n0x16b4 c0x0000 (---------------) + I eigersund - 0x00236e07, // n0x16b5 c0x0000 (---------------) + I elverum - 0x00379087, // n0x16b6 c0x0000 (---------------) + I enebakk - 0x0027bd08, // n0x16b7 c0x0000 (---------------) + I engerdal - 0x002afb04, // n0x16b8 c0x0000 (---------------) + I etne - 0x002afb07, // n0x16b9 c0x0000 (---------------) + I etnedal - 0x0024bd88, // n0x16ba c0x0000 (---------------) + I evenassi - 0x002031c6, // n0x16bb c0x0000 (---------------) + I evenes - 0x003967cf, // n0x16bc c0x0000 (---------------) + I evje-og-hornnes - 0x00210007, // n0x16bd c0x0000 (---------------) + I farsund - 0x00246786, // n0x16be c0x0000 (---------------) + I fauske - 0x00247cc5, // n0x16bf c0x0000 (---------------) + I fedje - 0x00341603, // n0x16c0 c0x0000 (---------------) + I fet - 0x00341607, // n0x16c1 c0x0000 (---------------) + I fetsund - 0x00325a43, // n0x16c2 c0x0000 (---------------) + I fhs - 0x00245706, // n0x16c3 c0x0000 (---------------) + I finnoy - 0x00248b06, // n0x16c4 c0x0000 (---------------) + I fitjar - 0x002496c6, // n0x16c5 c0x0000 (---------------) + I fjaler - 0x00286e85, // n0x16c6 c0x0000 (---------------) + I fjell - 0x00203803, // n0x16c7 c0x0000 (---------------) + I fla - 0x0037b548, // n0x16c8 c0x0000 (---------------) + I flakstad - 0x00203809, // n0x16c9 c0x0000 (---------------) + I flatanger - 0x00361b0b, // n0x16ca c0x0000 (---------------) + I flekkefjord - 0x00373d08, // n0x16cb c0x0000 (---------------) + I flesberg - 0x0024ab85, // n0x16cc c0x0000 (---------------) + I flora - 0x0024b685, // n0x16cd c0x0000 (---------------) + I floro - 0x3c63d4c2, // n0x16ce c0x00f1 (n0x192c-n0x192d) + I fm - 0x00351709, // n0x16cf c0x0000 (---------------) + I folkebibl - 0x0024dac7, // n0x16d0 c0x0000 (---------------) + I folldal - 0x00395185, // n0x16d1 c0x0000 (---------------) + I forde - 0x00252907, // n0x16d2 c0x0000 (---------------) + I forsand - 0x00254346, // n0x16d3 c0x0000 (---------------) + I fosnes - 0x00358985, // n0x16d4 c0x0000 (---------------) + I frana - 0x0036108b, // n0x16d5 c0x0000 (---------------) + I fredrikstad - 0x002554c4, // n0x16d6 c0x0000 (---------------) + I frei - 0x0025acc5, // n0x16d7 c0x0000 (---------------) + I frogn - 0x0025ae07, // n0x16d8 c0x0000 (---------------) + I froland - 0x0026ed46, // n0x16d9 c0x0000 (---------------) + I frosta - 0x0026f185, // n0x16da c0x0000 (---------------) + I froya - 0x0027a1c7, // n0x16db c0x0000 (---------------) + I fuoisku - 0x0027a747, // n0x16dc c0x0000 (---------------) + I fuossko - 0x00285b04, // n0x16dd c0x0000 (---------------) + I fusa - 0x002826ca, // n0x16de c0x0000 (---------------) + I fylkesbibl - 0x00282b88, // n0x16df c0x0000 (---------------) + I fyresdal - 0x00301349, // n0x16e0 c0x0000 (---------------) + I gaivuotna - 0x0021c685, // n0x16e1 c0x0000 (---------------) + I galsa - 0x00287846, // n0x16e2 c0x0000 (---------------) + I gamvik - 0x002bbcca, // n0x16e3 c0x0000 (---------------) + I gangaviika - 0x00260086, // n0x16e4 c0x0000 (---------------) + I gaular - 0x00312407, // n0x16e5 c0x0000 (---------------) + I gausdal - 0x0030100d, // n0x16e6 c0x0000 (---------------) + I giehtavuoatna - 0x0022a489, // n0x16e7 c0x0000 (---------------) + I gildeskal - 0x00363785, // n0x16e8 c0x0000 (---------------) + I giske - 0x003639c7, // n0x16e9 c0x0000 (---------------) + I gjemnes - 0x00309c48, // n0x16ea c0x0000 (---------------) + I gjerdrum - 0x00322608, // n0x16eb c0x0000 (---------------) + I gjerstad - 0x0033af47, // n0x16ec c0x0000 (---------------) + I gjesdal - 0x003088c6, // n0x16ed c0x0000 (---------------) + I gjovik - 0x00209907, // n0x16ee c0x0000 (---------------) + I gloppen - 0x00247c03, // n0x16ef c0x0000 (---------------) + I gol - 0x0032e344, // n0x16f0 c0x0000 (---------------) + I gran - 0x00355305, // n0x16f1 c0x0000 (---------------) + I grane - 0x00380ac7, // n0x16f2 c0x0000 (---------------) + I granvin - 0x00384a89, // n0x16f3 c0x0000 (---------------) + I gratangen - 0x00216c48, // n0x16f4 c0x0000 (---------------) + I grimstad - 0x00312305, // n0x16f5 c0x0000 (---------------) + I grong - 0x00339d44, // n0x16f6 c0x0000 (---------------) + I grue - 0x00240f85, // n0x16f7 c0x0000 (---------------) + I gulen - 0x0024494d, // n0x16f8 c0x0000 (---------------) + I guovdageaidnu - 0x00201c82, // n0x16f9 c0x0000 (---------------) + I ha - 0x0035c886, // n0x16fa c0x0000 (---------------) + I habmer - 0x002538c6, // n0x16fb c0x0000 (---------------) + I hadsel - 0x0029c98a, // n0x16fc c0x0000 (---------------) + I hagebostad - 0x00346a86, // n0x16fd c0x0000 (---------------) + I halden - 0x0035c145, // n0x16fe c0x0000 (---------------) + I halsa - 0x00302585, // n0x16ff c0x0000 (---------------) + I hamar - 0x00302587, // n0x1700 c0x0000 (---------------) + I hamaroy - 0x0036ac4c, // n0x1701 c0x0000 (---------------) + I hammarfeasta - 0x0027da0a, // n0x1702 c0x0000 (---------------) + I hammerfest - 0x00282f86, // n0x1703 c0x0000 (---------------) + I hapmir - 0x002b9f05, // n0x1704 c0x0000 (---------------) + I haram - 0x00283d06, // n0x1705 c0x0000 (---------------) + I hareid - 0x00284047, // n0x1706 c0x0000 (---------------) + I harstad - 0x00285186, // n0x1707 c0x0000 (---------------) + I hasvik - 0x00286d8c, // n0x1708 c0x0000 (---------------) + I hattfjelldal - 0x00235a49, // n0x1709 c0x0000 (---------------) + I haugesund - 0x3ca31807, // n0x170a c0x00f2 (n0x192d-n0x1930) o I hedmark - 0x00288f85, // n0x170b c0x0000 (---------------) + I hemne - 0x00288f86, // n0x170c c0x0000 (---------------) + I hemnes - 0x002894c8, // n0x170d c0x0000 (---------------) + I hemsedal - 0x002aacc5, // n0x170e c0x0000 (---------------) + I herad - 0x0029b645, // n0x170f c0x0000 (---------------) + I hitra - 0x0029b888, // n0x1710 c0x0000 (---------------) + I hjartdal - 0x0029ba8a, // n0x1711 c0x0000 (---------------) + I hjelmeland - 0x3cea9982, // n0x1712 c0x00f3 (n0x1930-n0x1931) + I hl - 0x3d20c742, // n0x1713 c0x00f4 (n0x1931-n0x1932) + I hm - 0x0034e405, // n0x1714 c0x0000 (---------------) + I hobol - 0x002d2203, // n0x1715 c0x0000 (---------------) + I hof - 0x003327c8, // n0x1716 c0x0000 (---------------) + I hokksund - 0x00231ac3, // n0x1717 c0x0000 (---------------) + I hol - 0x0029bd04, // n0x1718 c0x0000 (---------------) + I hole - 0x0029288b, // n0x1719 c0x0000 (---------------) + I holmestrand - 0x002c4448, // n0x171a c0x0000 (---------------) + I holtalen - 0x0029e188, // n0x171b c0x0000 (---------------) + I honefoss - 0x3d71e409, // n0x171c c0x00f5 (n0x1932-n0x1933) o I hordaland - 0x0029f389, // n0x171d c0x0000 (---------------) + I hornindal - 0x0029f806, // n0x171e c0x0000 (---------------) + I horten - 0x002a0448, // n0x171f c0x0000 (---------------) + I hoyanger - 0x002a0649, // n0x1720 c0x0000 (---------------) + I hoylandet - 0x002a2cc6, // n0x1721 c0x0000 (---------------) + I hurdal - 0x002a2e45, // n0x1722 c0x0000 (---------------) + I hurum - 0x00360406, // n0x1723 c0x0000 (---------------) + I hvaler - 0x002a3389, // n0x1724 c0x0000 (---------------) + I hyllestad - 0x00363387, // n0x1725 c0x0000 (---------------) + I ibestad - 0x002630c6, // n0x1726 c0x0000 (---------------) + I idrett - 0x00306007, // n0x1727 c0x0000 (---------------) + I inderoy - 0x0030ea07, // n0x1728 c0x0000 (---------------) + I iveland - 0x0036b344, // n0x1729 c0x0000 (---------------) + I ivgu - 0x3da1bb49, // n0x172a c0x00f6 (n0x1933-n0x1934) + I jan-mayen - 0x002c2788, // n0x172b c0x0000 (---------------) + I jessheim - 0x00350f48, // n0x172c c0x0000 (---------------) + I jevnaker - 0x0022e4c7, // n0x172d c0x0000 (---------------) + I jolster - 0x002bb2c6, // n0x172e c0x0000 (---------------) + I jondal - 0x002f5e89, // n0x172f c0x0000 (---------------) + I jorpeland - 0x002b7507, // n0x1730 c0x0000 (---------------) + I kafjord - 0x002e2f0a, // n0x1731 c0x0000 (---------------) + I karasjohka - 0x00251bc8, // n0x1732 c0x0000 (---------------) + I karasjok - 0x002565c7, // n0x1733 c0x0000 (---------------) + I karlsoy - 0x00321f06, // n0x1734 c0x0000 (---------------) + I karmoy - 0x002163ca, // n0x1735 c0x0000 (---------------) + I kautokeino - 0x00250108, // n0x1736 c0x0000 (---------------) + I kirkenes - 0x00242f45, // n0x1737 c0x0000 (---------------) + I klabu - 0x00223f85, // n0x1738 c0x0000 (---------------) + I klepp - 0x002d1a07, // n0x1739 c0x0000 (---------------) + I kommune - 0x002b85c9, // n0x173a c0x0000 (---------------) + I kongsberg - 0x002c174b, // n0x173b c0x0000 (---------------) + I kongsvinger - 0x002d1848, // n0x173c c0x0000 (---------------) + I kopervik - 0x002a1689, // n0x173d c0x0000 (---------------) + I kraanghke - 0x00249947, // n0x173e c0x0000 (---------------) + I kragero - 0x002aa24c, // n0x173f c0x0000 (---------------) + I kristiansand - 0x002aa88c, // n0x1740 c0x0000 (---------------) + I kristiansund - 0x002aab8a, // n0x1741 c0x0000 (---------------) + I krodsherad - 0x002aae0c, // n0x1742 c0x0000 (---------------) + I krokstadelva - 0x002b6548, // n0x1743 c0x0000 (---------------) + I kvafjord - 0x002b6748, // n0x1744 c0x0000 (---------------) + I kvalsund - 0x002b6944, // n0x1745 c0x0000 (---------------) + I kvam - 0x002b76c9, // n0x1746 c0x0000 (---------------) + I kvanangen - 0x002b7909, // n0x1747 c0x0000 (---------------) + I kvinesdal - 0x002b7b4a, // n0x1748 c0x0000 (---------------) + I kvinnherad - 0x002b7dc9, // n0x1749 c0x0000 (---------------) + I kviteseid - 0x002b8107, // n0x174a c0x0000 (---------------) + I kvitsoy - 0x003a19cc, // n0x174b c0x0000 (---------------) + I laakesvuemie - 0x00338406, // n0x174c c0x0000 (---------------) + I lahppi - 0x00250488, // n0x174d c0x0000 (---------------) + I langevag - 0x00260146, // n0x174e c0x0000 (---------------) + I lardal - 0x0037a5c6, // n0x174f c0x0000 (---------------) + I larvik - 0x00363687, // n0x1750 c0x0000 (---------------) + I lavagis - 0x00225648, // n0x1751 c0x0000 (---------------) + I lavangen - 0x002bdb0b, // n0x1752 c0x0000 (---------------) + I leangaviika - 0x002caf87, // n0x1753 c0x0000 (---------------) + I lebesby - 0x002526c9, // n0x1754 c0x0000 (---------------) + I leikanger - 0x00277809, // n0x1755 c0x0000 (---------------) + I leirfjord - 0x00358e47, // n0x1756 c0x0000 (---------------) + I leirvik - 0x002b6c04, // n0x1757 c0x0000 (---------------) + I leka - 0x002feac7, // n0x1758 c0x0000 (---------------) + I leksvik - 0x0031fec6, // n0x1759 c0x0000 (---------------) + I lenvik - 0x00215f06, // n0x175a c0x0000 (---------------) + I lerdal - 0x002c3245, // n0x175b c0x0000 (---------------) + I lesja - 0x002ccf08, // n0x175c c0x0000 (---------------) + I levanger - 0x002cdb04, // n0x175d c0x0000 (---------------) + I lier - 0x002cdb06, // n0x175e c0x0000 (---------------) + I lierne - 0x0027d8cb, // n0x175f c0x0000 (---------------) + I lillehammer - 0x0033b0c9, // n0x1760 c0x0000 (---------------) + I lillesand - 0x0036a746, // n0x1761 c0x0000 (---------------) + I lindas - 0x0039ae49, // n0x1762 c0x0000 (---------------) + I lindesnes - 0x00385206, // n0x1763 c0x0000 (---------------) + I loabat - 0x00252bc8, // n0x1764 c0x0000 (---------------) + I lodingen - 0x00212bc3, // n0x1765 c0x0000 (---------------) + I lom - 0x00350445, // n0x1766 c0x0000 (---------------) + I loppa - 0x00215309, // n0x1767 c0x0000 (---------------) + I lorenskog - 0x00216045, // n0x1768 c0x0000 (---------------) + I loten - 0x002dc544, // n0x1769 c0x0000 (---------------) + I lund - 0x0026e246, // n0x176a c0x0000 (---------------) + I lunner - 0x00332e05, // n0x176b c0x0000 (---------------) + I luroy - 0x002d6f06, // n0x176c c0x0000 (---------------) + I luster - 0x002f3187, // n0x176d c0x0000 (---------------) + I lyngdal - 0x00378f86, // n0x176e c0x0000 (---------------) + I lyngen - 0x0028fa0b, // n0x176f c0x0000 (---------------) + I malatvuopmi - 0x0020bdc7, // n0x1770 c0x0000 (---------------) + I malselv - 0x00207286, // n0x1771 c0x0000 (---------------) + I malvik - 0x00349486, // n0x1772 c0x0000 (---------------) + I mandal - 0x0022f8c6, // n0x1773 c0x0000 (---------------) + I marker - 0x00347509, // n0x1774 c0x0000 (---------------) + I marnardal - 0x00238fca, // n0x1775 c0x0000 (---------------) + I masfjorden - 0x002b0685, // n0x1776 c0x0000 (---------------) + I masoy - 0x0032450d, // n0x1777 c0x0000 (---------------) + I matta-varjjat - 0x0029bb86, // n0x1778 c0x0000 (---------------) + I meland - 0x002151c6, // n0x1779 c0x0000 (---------------) + I meldal - 0x003725c6, // n0x177a c0x0000 (---------------) + I melhus - 0x00292545, // n0x177b c0x0000 (---------------) + I meloy - 0x0031b447, // n0x177c c0x0000 (---------------) + I meraker - 0x00294c47, // n0x177d c0x0000 (---------------) + I midsund - 0x00233b8e, // n0x177e c0x0000 (---------------) + I midtre-gauldal - 0x00215b43, // n0x177f c0x0000 (---------------) + I mil - 0x002bb289, // n0x1780 c0x0000 (---------------) + I mjondalen - 0x0035b209, // n0x1781 c0x0000 (---------------) + I mo-i-rana - 0x0022d447, // n0x1782 c0x0000 (---------------) + I moareke - 0x00264dc7, // n0x1783 c0x0000 (---------------) + I modalen - 0x0029d305, // n0x1784 c0x0000 (---------------) + I modum - 0x00256ac5, // n0x1785 c0x0000 (---------------) + I molde - 0x3de63a4f, // n0x1786 c0x00f7 (n0x1934-n0x1936) o I more-og-romsdal - 0x002c6387, // n0x1787 c0x0000 (---------------) + I mosjoen - 0x002c6548, // n0x1788 c0x0000 (---------------) + I moskenes - 0x002c6984, // n0x1789 c0x0000 (---------------) + I moss - 0x002c6bc6, // n0x178a c0x0000 (---------------) + I mosvik - 0x3e2425c2, // n0x178b c0x00f8 (n0x1936-n0x1937) + I mr - 0x002ca0c6, // n0x178c c0x0000 (---------------) + I muosat - 0x002cc746, // n0x178d c0x0000 (---------------) + I museum - 0x002bde4e, // n0x178e c0x0000 (---------------) + I naamesjevuemie - 0x0032f7ca, // n0x178f c0x0000 (---------------) + I namdalseid - 0x002a62c6, // n0x1790 c0x0000 (---------------) + I namsos - 0x0022340a, // n0x1791 c0x0000 (---------------) + I namsskogan - 0x002c0449, // n0x1792 c0x0000 (---------------) + I nannestad - 0x00316005, // n0x1793 c0x0000 (---------------) + I naroy - 0x00386808, // n0x1794 c0x0000 (---------------) + I narviika - 0x003a03c6, // n0x1795 c0x0000 (---------------) + I narvik - 0x0036a588, // n0x1796 c0x0000 (---------------) + I naustdal - 0x00200808, // n0x1797 c0x0000 (---------------) + I navuotna - 0x0032358b, // n0x1798 c0x0000 (---------------) + I nedre-eiker - 0x00222045, // n0x1799 c0x0000 (---------------) + I nesna - 0x0022da48, // n0x179a c0x0000 (---------------) + I nesodden - 0x0020600c, // n0x179b c0x0000 (---------------) + I nesoddtangen - 0x002aca07, // n0x179c c0x0000 (---------------) + I nesseby - 0x00249246, // n0x179d c0x0000 (---------------) + I nesset - 0x002a5c88, // n0x179e c0x0000 (---------------) + I nissedal - 0x0027c008, // n0x179f c0x0000 (---------------) + I nittedal - 0x3e63e082, // n0x17a0 c0x00f9 (n0x1937-n0x1938) + I nl - 0x002b6e0b, // n0x17a1 c0x0000 (---------------) + I nord-aurdal - 0x0038c1c9, // n0x17a2 c0x0000 (---------------) + I nord-fron - 0x00348209, // n0x17a3 c0x0000 (---------------) + I nord-odal - 0x002254c7, // n0x17a4 c0x0000 (---------------) + I norddal - 0x003086c8, // n0x17a5 c0x0000 (---------------) + I nordkapp - 0x3eb93948, // n0x17a6 c0x00fa (n0x1938-n0x193c) o I nordland - 0x002248cb, // n0x17a7 c0x0000 (---------------) + I nordre-land - 0x002ffd89, // n0x17a8 c0x0000 (---------------) + I nordreisa - 0x00210fcd, // n0x17a9 c0x0000 (---------------) + I nore-og-uvdal - 0x00303508, // n0x17aa c0x0000 (---------------) + I notodden - 0x0030bc88, // n0x17ab c0x0000 (---------------) + I notteroy - 0x3ee02382, // n0x17ac c0x00fb (n0x193c-n0x193d) + I nt - 0x00200dc4, // n0x17ad c0x0000 (---------------) + I odda - 0x3f21f702, // n0x17ae c0x00fc (n0x193d-n0x193e) + I of - 0x00251d46, // n0x17af c0x0000 (---------------) + I oksnes - 0x3f601582, // n0x17b0 c0x00fd (n0x193e-n0x193f) + I ol - 0x0020edca, // n0x17b1 c0x0000 (---------------) + I omasvuotna - 0x00332cc6, // n0x17b2 c0x0000 (---------------) + I oppdal - 0x0022abc8, // n0x17b3 c0x0000 (---------------) + I oppegard - 0x0024de88, // n0x17b4 c0x0000 (---------------) + I orkanger - 0x002e7286, // n0x17b5 c0x0000 (---------------) + I orkdal - 0x0033e006, // n0x17b6 c0x0000 (---------------) + I orland - 0x002decc6, // n0x17b7 c0x0000 (---------------) + I orskog - 0x00273045, // n0x17b8 c0x0000 (---------------) + I orsta - 0x0023b704, // n0x17b9 c0x0000 (---------------) + I osen - 0x3fac11c4, // n0x17ba c0x00fe (n0x193f-n0x1940) + I oslo - 0x0032ecc6, // n0x17bb c0x0000 (---------------) + I osoyro - 0x00376c87, // n0x17bc c0x0000 (---------------) + I osteroy - 0x3ff94147, // n0x17bd c0x00ff (n0x1940-n0x1941) o I ostfold - 0x002ed08b, // n0x17be c0x0000 (---------------) + I ostre-toten - 0x002bc7c9, // n0x17bf c0x0000 (---------------) + I overhalla - 0x0025e00a, // n0x17c0 c0x0000 (---------------) + I ovre-eiker - 0x00306144, // n0x17c1 c0x0000 (---------------) + I oyer - 0x00307088, // n0x17c2 c0x0000 (---------------) + I oygarden - 0x00262e8d, // n0x17c3 c0x0000 (---------------) + I oystre-slidre - 0x002d97c9, // n0x17c4 c0x0000 (---------------) + I porsanger - 0x002d9a08, // n0x17c5 c0x0000 (---------------) + I porsangu - 0x002d9c89, // n0x17c6 c0x0000 (---------------) + I porsgrunn - 0x002db244, // n0x17c7 c0x0000 (---------------) + I priv - 0x0021ab44, // n0x17c8 c0x0000 (---------------) + I rade - 0x00276305, // n0x17c9 c0x0000 (---------------) + I radoy - 0x0030b10b, // n0x17ca c0x0000 (---------------) + I rahkkeravju - 0x002c43c6, // n0x17cb c0x0000 (---------------) + I raholt - 0x0032eb05, // n0x17cc c0x0000 (---------------) + I raisa - 0x003519c9, // n0x17cd c0x0000 (---------------) + I rakkestad - 0x00222248, // n0x17ce c0x0000 (---------------) + I ralingen - 0x00296cc4, // n0x17cf c0x0000 (---------------) + I rana - 0x0022d1c9, // n0x17d0 c0x0000 (---------------) + I randaberg - 0x0026f545, // n0x17d1 c0x0000 (---------------) + I rauma - 0x002b3108, // n0x17d2 c0x0000 (---------------) + I rendalen - 0x002ce707, // n0x17d3 c0x0000 (---------------) + I rennebu - 0x0031a948, // n0x17d4 c0x0000 (---------------) + I rennesoy - 0x00277146, // n0x17d5 c0x0000 (---------------) + I rindal - 0x00233787, // n0x17d6 c0x0000 (---------------) + I ringebu - 0x00288989, // n0x17d7 c0x0000 (---------------) + I ringerike - 0x00224209, // n0x17d8 c0x0000 (---------------) + I ringsaker - 0x00252305, // n0x17d9 c0x0000 (---------------) + I risor - 0x0035a845, // n0x17da c0x0000 (---------------) + I rissa - 0x40205242, // n0x17db c0x0100 (n0x1941-n0x1942) + I rl - 0x002efc44, // n0x17dc c0x0000 (---------------) + I roan - 0x002946c5, // n0x17dd c0x0000 (---------------) + I rodoy - 0x002ce3c6, // n0x17de c0x0000 (---------------) + I rollag - 0x002f5445, // n0x17df c0x0000 (---------------) + I romsa - 0x0024b747, // n0x17e0 c0x0000 (---------------) + I romskog - 0x0028ddc5, // n0x17e1 c0x0000 (---------------) + I roros - 0x0026ed84, // n0x17e2 c0x0000 (---------------) + I rost - 0x0032b6c6, // n0x17e3 c0x0000 (---------------) + I royken - 0x0036ce47, // n0x17e4 c0x0000 (---------------) + I royrvik - 0x00242606, // n0x17e5 c0x0000 (---------------) + I ruovat - 0x0033b605, // n0x17e6 c0x0000 (---------------) + I rygge - 0x0030fbc8, // n0x17e7 c0x0000 (---------------) + I salangen - 0x002227c5, // n0x17e8 c0x0000 (---------------) + I salat - 0x00342687, // n0x17e9 c0x0000 (---------------) + I saltdal - 0x0039b049, // n0x17ea c0x0000 (---------------) + I samnanger - 0x0033b20a, // n0x17eb c0x0000 (---------------) + I sandefjord - 0x00341ac7, // n0x17ec c0x0000 (---------------) + I sandnes - 0x00341acc, // n0x17ed c0x0000 (---------------) + I sandnessjoen - 0x0036bd06, // n0x17ee c0x0000 (---------------) + I sandoy - 0x00229909, // n0x17ef c0x0000 (---------------) + I sarpsborg - 0x0036d2c5, // n0x17f0 c0x0000 (---------------) + I sauda - 0x00375508, // n0x17f1 c0x0000 (---------------) + I sauherad - 0x0020be83, // n0x17f2 c0x0000 (---------------) + I sel - 0x0020f645, // n0x17f3 c0x0000 (---------------) + I selbu - 0x00332345, // n0x17f4 c0x0000 (---------------) + I selje - 0x002380c7, // n0x17f5 c0x0000 (---------------) + I seljord - 0x4060dd02, // n0x17f6 c0x0101 (n0x1942-n0x1943) + I sf - 0x002379c7, // n0x17f7 c0x0000 (---------------) + I siellak - 0x002fda86, // n0x17f8 c0x0000 (---------------) + I sigdal - 0x0021ba86, // n0x17f9 c0x0000 (---------------) + I siljan - 0x002c6a46, // n0x17fa c0x0000 (---------------) + I sirdal - 0x0027bf46, // n0x17fb c0x0000 (---------------) + I skanit - 0x00280348, // n0x17fc c0x0000 (---------------) + I skanland - 0x00272285, // n0x17fd c0x0000 (---------------) + I skaun - 0x00246847, // n0x17fe c0x0000 (---------------) + I skedsmo - 0x0024684d, // n0x17ff c0x0000 (---------------) + I skedsmokorset - 0x0021cf83, // n0x1800 c0x0000 (---------------) + I ski - 0x0021cf85, // n0x1801 c0x0000 (---------------) + I skien - 0x00305947, // n0x1802 c0x0000 (---------------) + I skierva - 0x00378088, // n0x1803 c0x0000 (---------------) + I skiptvet - 0x00377c45, // n0x1804 c0x0000 (---------------) + I skjak - 0x002a80c8, // n0x1805 c0x0000 (---------------) + I skjervoy - 0x0022b506, // n0x1806 c0x0000 (---------------) + I skodje - 0x002398c7, // n0x1807 c0x0000 (---------------) + I slattum - 0x002ba1c5, // n0x1808 c0x0000 (---------------) + I smola - 0x002220c6, // n0x1809 c0x0000 (---------------) + I snaase - 0x0035d9c5, // n0x180a c0x0000 (---------------) + I snasa - 0x002b5c4a, // n0x180b c0x0000 (---------------) + I snillfjord - 0x002ecb46, // n0x180c c0x0000 (---------------) + I snoasa - 0x00330987, // n0x180d c0x0000 (---------------) + I sogndal - 0x002b6405, // n0x180e c0x0000 (---------------) + I sogne - 0x002d35c7, // n0x180f c0x0000 (---------------) + I sokndal - 0x002da544, // n0x1810 c0x0000 (---------------) + I sola - 0x002dc4c6, // n0x1811 c0x0000 (---------------) + I solund - 0x00357845, // n0x1812 c0x0000 (---------------) + I somna - 0x00204c8b, // n0x1813 c0x0000 (---------------) + I sondre-land - 0x0031fd49, // n0x1814 c0x0000 (---------------) + I songdalen - 0x002289ca, // n0x1815 c0x0000 (---------------) + I sor-aurdal - 0x00252388, // n0x1816 c0x0000 (---------------) + I sor-fron - 0x002e8c08, // n0x1817 c0x0000 (---------------) + I sor-odal - 0x002e934c, // n0x1818 c0x0000 (---------------) + I sor-varanger - 0x002f23c7, // n0x1819 c0x0000 (---------------) + I sorfold - 0x002f3d88, // n0x181a c0x0000 (---------------) + I sorreisa - 0x002f9948, // n0x181b c0x0000 (---------------) + I sortland - 0x002fd445, // n0x181c c0x0000 (---------------) + I sorum - 0x002b838a, // n0x181d c0x0000 (---------------) + I spjelkavik - 0x0032e5c9, // n0x181e c0x0000 (---------------) + I spydeberg - 0x40a01a42, // n0x181f c0x0102 (n0x1943-n0x1944) + I st - 0x00321946, // n0x1820 c0x0000 (---------------) + I stange - 0x0028e7c4, // n0x1821 c0x0000 (---------------) + I stat - 0x002d8149, // n0x1822 c0x0000 (---------------) + I stathelle - 0x00245309, // n0x1823 c0x0000 (---------------) + I stavanger - 0x00217f47, // n0x1824 c0x0000 (---------------) + I stavern - 0x0023b107, // n0x1825 c0x0000 (---------------) + I steigen - 0x003565c9, // n0x1826 c0x0000 (---------------) + I steinkjer - 0x00201a48, // n0x1827 c0x0000 (---------------) + I stjordal - 0x00201a4f, // n0x1828 c0x0000 (---------------) + I stjordalshalsen - 0x00268106, // n0x1829 c0x0000 (---------------) + I stokke - 0x0024044b, // n0x182a c0x0000 (---------------) + I stor-elvdal - 0x003772c5, // n0x182b c0x0000 (---------------) + I stord - 0x003772c7, // n0x182c c0x0000 (---------------) + I stordal - 0x002e0349, // n0x182d c0x0000 (---------------) + I storfjord - 0x0022d146, // n0x182e c0x0000 (---------------) + I strand - 0x0022d147, // n0x182f c0x0000 (---------------) + I stranda - 0x0039d345, // n0x1830 c0x0000 (---------------) + I stryn - 0x00232604, // n0x1831 c0x0000 (---------------) + I sula - 0x002a9106, // n0x1832 c0x0000 (---------------) + I suldal - 0x002100c4, // n0x1833 c0x0000 (---------------) + I sund - 0x00326b07, // n0x1834 c0x0000 (---------------) + I sunndal - 0x002e1f48, // n0x1835 c0x0000 (---------------) + I surnadal - 0x40ee3fc8, // n0x1836 c0x0103 (n0x1944-n0x1945) + I svalbard - 0x002e45c5, // n0x1837 c0x0000 (---------------) + I sveio - 0x002e4707, // n0x1838 c0x0000 (---------------) + I svelvik - 0x00366789, // n0x1839 c0x0000 (---------------) + I sykkylven - 0x0020d344, // n0x183a c0x0000 (---------------) + I tana - 0x0020d348, // n0x183b c0x0000 (---------------) + I tananger - 0x412acf48, // n0x183c c0x0104 (n0x1945-n0x1947) o I telemark - 0x00219984, // n0x183d c0x0000 (---------------) + I time - 0x00232f48, // n0x183e c0x0000 (---------------) + I tingvoll - 0x00308cc4, // n0x183f c0x0000 (---------------) + I tinn - 0x0021f349, // n0x1840 c0x0000 (---------------) + I tjeldsund - 0x00338a45, // n0x1841 c0x0000 (---------------) + I tjome - 0x41600142, // n0x1842 c0x0105 (n0x1947-n0x1948) + I tm - 0x00268145, // n0x1843 c0x0000 (---------------) + I tokke - 0x0021c5c5, // n0x1844 c0x0000 (---------------) + I tolga - 0x00309a88, // n0x1845 c0x0000 (---------------) + I tonsberg - 0x00235e47, // n0x1846 c0x0000 (---------------) + I torsken - 0x41a03642, // n0x1847 c0x0106 (n0x1948-n0x1949) + I tr - 0x002c7c45, // n0x1848 c0x0000 (---------------) + I trana - 0x00266e06, // n0x1849 c0x0000 (---------------) + I tranby - 0x002886c6, // n0x184a c0x0000 (---------------) + I tranoy - 0x002efc08, // n0x184b c0x0000 (---------------) + I troandin - 0x002f1f08, // n0x184c c0x0000 (---------------) + I trogstad - 0x002f5406, // n0x184d c0x0000 (---------------) + I tromsa - 0x00317886, // n0x184e c0x0000 (---------------) + I tromso - 0x00234289, // n0x184f c0x0000 (---------------) + I trondheim - 0x00353106, // n0x1850 c0x0000 (---------------) + I trysil - 0x00283a4b, // n0x1851 c0x0000 (---------------) + I tvedestrand - 0x0039ad45, // n0x1852 c0x0000 (---------------) + I tydal - 0x0020a406, // n0x1853 c0x0000 (---------------) + I tynset - 0x0022f308, // n0x1854 c0x0000 (---------------) + I tysfjord - 0x00231046, // n0x1855 c0x0000 (---------------) + I tysnes - 0x0031e8c6, // n0x1856 c0x0000 (---------------) + I tysvar - 0x002ec24a, // n0x1857 c0x0000 (---------------) + I ullensaker - 0x002759ca, // n0x1858 c0x0000 (---------------) + I ullensvang - 0x00283245, // n0x1859 c0x0000 (---------------) + I ulvik - 0x0021b407, // n0x185a c0x0000 (---------------) + I unjarga - 0x00340546, // n0x185b c0x0000 (---------------) + I utsira - 0x41e000c2, // n0x185c c0x0107 (n0x1949-n0x194a) + I va - 0x00305a87, // n0x185d c0x0000 (---------------) + I vaapste - 0x0026cf85, // n0x185e c0x0000 (---------------) + I vadso - 0x002bbc44, // n0x185f c0x0000 (---------------) + I vaga - 0x002bbc45, // n0x1860 c0x0000 (---------------) + I vagan - 0x00306f86, // n0x1861 c0x0000 (---------------) + I vagsoy - 0x00328807, // n0x1862 c0x0000 (---------------) + I vaksdal - 0x00213f45, // n0x1863 c0x0000 (---------------) + I valle - 0x002256c4, // n0x1864 c0x0000 (---------------) + I vang - 0x0023ccc8, // n0x1865 c0x0000 (---------------) + I vanylven - 0x0031e985, // n0x1866 c0x0000 (---------------) + I vardo - 0x0039eec7, // n0x1867 c0x0000 (---------------) + I varggat - 0x00289b45, // n0x1868 c0x0000 (---------------) + I varoy - 0x00212985, // n0x1869 c0x0000 (---------------) + I vefsn - 0x002292c4, // n0x186a c0x0000 (---------------) + I vega - 0x002821c9, // n0x186b c0x0000 (---------------) + I vegarshei - 0x002dbf48, // n0x186c c0x0000 (---------------) + I vennesla - 0x003708c6, // n0x186d c0x0000 (---------------) + I verdal - 0x003252c6, // n0x186e c0x0000 (---------------) + I verran - 0x00219686, // n0x186f c0x0000 (---------------) + I vestby - 0x42399688, // n0x1870 c0x0108 (n0x194a-n0x194b) o I vestfold - 0x002e8a87, // n0x1871 c0x0000 (---------------) + I vestnes - 0x002e8e0d, // n0x1872 c0x0000 (---------------) + I vestre-slidre - 0x002e964c, // n0x1873 c0x0000 (---------------) + I vestre-toten - 0x002e9c49, // n0x1874 c0x0000 (---------------) + I vestvagoy - 0x002e9e89, // n0x1875 c0x0000 (---------------) + I vevelstad - 0x4274b082, // n0x1876 c0x0109 (n0x194b-n0x194c) + I vf - 0x003978c3, // n0x1877 c0x0000 (---------------) + I vgs - 0x00207343, // n0x1878 c0x0000 (---------------) + I vik - 0x0031ff85, // n0x1879 c0x0000 (---------------) + I vikna - 0x00380bca, // n0x187a c0x0000 (---------------) + I vindafjord - 0x00317746, // n0x187b c0x0000 (---------------) + I voagat - 0x002f0b85, // n0x187c c0x0000 (---------------) + I volda - 0x002f36c4, // n0x187d c0x0000 (---------------) + I voss - 0x002f36cb, // n0x187e c0x0000 (---------------) + I vossevangen - 0x0030cc0c, // n0x187f c0x0000 (---------------) + I xn--andy-ira - 0x0030d44c, // n0x1880 c0x0000 (---------------) + I xn--asky-ira - 0x0030d755, // n0x1881 c0x0000 (---------------) + I xn--aurskog-hland-jnb - 0x003111cd, // n0x1882 c0x0000 (---------------) + I xn--avery-yua - 0x0031274f, // n0x1883 c0x0000 (---------------) + I xn--bdddj-mrabd - 0x00312b12, // n0x1884 c0x0000 (---------------) + I xn--bearalvhki-y4a - 0x00312f8f, // n0x1885 c0x0000 (---------------) + I xn--berlevg-jxa - 0x00313352, // n0x1886 c0x0000 (---------------) + I xn--bhcavuotna-s4a - 0x003137d3, // n0x1887 c0x0000 (---------------) + I xn--bhccavuotna-k7a - 0x00313c8d, // n0x1888 c0x0000 (---------------) + I xn--bidr-5nac - 0x0031424d, // n0x1889 c0x0000 (---------------) + I xn--bievt-0qa - 0x003145ce, // n0x188a c0x0000 (---------------) + I xn--bjarky-fya - 0x00314a8e, // n0x188b c0x0000 (---------------) + I xn--bjddar-pta - 0x0031560c, // n0x188c c0x0000 (---------------) + I xn--blt-elab - 0x0031598c, // n0x188d c0x0000 (---------------) + I xn--bmlo-gra - 0x00315dcb, // n0x188e c0x0000 (---------------) + I xn--bod-2na - 0x0031614e, // n0x188f c0x0000 (---------------) + I xn--brnny-wuac - 0x00316c52, // n0x1890 c0x0000 (---------------) + I xn--brnnysund-m8ac - 0x0031750c, // n0x1891 c0x0000 (---------------) + I xn--brum-voa - 0x00317e90, // n0x1892 c0x0000 (---------------) + I xn--btsfjord-9za - 0x00325f92, // n0x1893 c0x0000 (---------------) + I xn--davvenjrga-y4a - 0x00326ccc, // n0x1894 c0x0000 (---------------) + I xn--dnna-gra - 0x0032738d, // n0x1895 c0x0000 (---------------) + I xn--drbak-wua - 0x003276cc, // n0x1896 c0x0000 (---------------) + I xn--dyry-ira - 0x00329351, // n0x1897 c0x0000 (---------------) + I xn--eveni-0qa01ga - 0x0032a6cd, // n0x1898 c0x0000 (---------------) + I xn--finny-yua - 0x0032cf8d, // n0x1899 c0x0000 (---------------) + I xn--fjord-lra - 0x0032d58a, // n0x189a c0x0000 (---------------) + I xn--fl-zia - 0x0032d80c, // n0x189b c0x0000 (---------------) + I xn--flor-jra - 0x0032e10c, // n0x189c c0x0000 (---------------) + I xn--frde-gra - 0x0032e80c, // n0x189d c0x0000 (---------------) + I xn--frna-woa - 0x0032f08c, // n0x189e c0x0000 (---------------) + I xn--frya-hra - 0x00333ed3, // n0x189f c0x0000 (---------------) + I xn--ggaviika-8ya47h - 0x003346d0, // n0x18a0 c0x0000 (---------------) + I xn--gildeskl-g0a - 0x00334ad0, // n0x18a1 c0x0000 (---------------) + I xn--givuotna-8ya - 0x003357cd, // n0x18a2 c0x0000 (---------------) + I xn--gjvik-wua - 0x00335dcc, // n0x18a3 c0x0000 (---------------) + I xn--gls-elac - 0x003369c9, // n0x18a4 c0x0000 (---------------) + I xn--h-2fa - 0x00339e4d, // n0x18a5 c0x0000 (---------------) + I xn--hbmer-xqa - 0x0033a193, // n0x18a6 c0x0000 (---------------) + I xn--hcesuolo-7ya35b - 0x0033bf51, // n0x18a7 c0x0000 (---------------) + I xn--hgebostad-g3a - 0x0033c393, // n0x18a8 c0x0000 (---------------) + I xn--hmmrfeasta-s4ac - 0x0033e18f, // n0x18a9 c0x0000 (---------------) + I xn--hnefoss-q1a - 0x0033e54c, // n0x18aa c0x0000 (---------------) + I xn--hobl-ira - 0x0033e84f, // n0x18ab c0x0000 (---------------) + I xn--holtlen-hxa - 0x0033ec0d, // n0x18ac c0x0000 (---------------) + I xn--hpmir-xqa - 0x0033f20f, // n0x18ad c0x0000 (---------------) + I xn--hyanger-q1a - 0x0033f5d0, // n0x18ae c0x0000 (---------------) + I xn--hylandet-54a - 0x0034004e, // n0x18af c0x0000 (---------------) + I xn--indery-fya - 0x0034300e, // n0x18b0 c0x0000 (---------------) + I xn--jlster-bya - 0x00343750, // n0x18b1 c0x0000 (---------------) + I xn--jrpeland-54a - 0x0034484d, // n0x18b2 c0x0000 (---------------) + I xn--karmy-yua - 0x003451ce, // n0x18b3 c0x0000 (---------------) + I xn--kfjord-iua - 0x0034554c, // n0x18b4 c0x0000 (---------------) + I xn--klbu-woa - 0x00346613, // n0x18b5 c0x0000 (---------------) + I xn--koluokta-7ya57h - 0x0034844e, // n0x18b6 c0x0000 (---------------) + I xn--krager-gya - 0x00349610, // n0x18b7 c0x0000 (---------------) + I xn--kranghke-b0a - 0x00349a11, // n0x18b8 c0x0000 (---------------) + I xn--krdsherad-m8a - 0x00349e4f, // n0x18b9 c0x0000 (---------------) + I xn--krehamn-dxa - 0x0034a213, // n0x18ba c0x0000 (---------------) + I xn--krjohka-hwab49j - 0x0034ac0d, // n0x18bb c0x0000 (---------------) + I xn--ksnes-uua - 0x0034af4f, // n0x18bc c0x0000 (---------------) + I xn--kvfjord-nxa - 0x0034b30e, // n0x18bd c0x0000 (---------------) + I xn--kvitsy-fya - 0x0034bb50, // n0x18be c0x0000 (---------------) + I xn--kvnangen-k0a - 0x0034bf49, // n0x18bf c0x0000 (---------------) + I xn--l-1fa - 0x0034da10, // n0x18c0 c0x0000 (---------------) + I xn--laheadju-7ya - 0x0034f30f, // n0x18c1 c0x0000 (---------------) + I xn--langevg-jxa - 0x0034f98f, // n0x18c2 c0x0000 (---------------) + I xn--ldingen-q1a - 0x0034fd52, // n0x18c3 c0x0000 (---------------) + I xn--leagaviika-52b - 0x0035084e, // n0x18c4 c0x0000 (---------------) + I xn--lesund-hua - 0x0035114d, // n0x18c5 c0x0000 (---------------) + I xn--lgrd-poac - 0x0035284d, // n0x18c6 c0x0000 (---------------) + I xn--lhppi-xqa - 0x00352b8d, // n0x18c7 c0x0000 (---------------) + I xn--linds-pra - 0x0035408d, // n0x18c8 c0x0000 (---------------) + I xn--loabt-0qa - 0x003543cd, // n0x18c9 c0x0000 (---------------) + I xn--lrdal-sra - 0x00354710, // n0x18ca c0x0000 (---------------) + I xn--lrenskog-54a - 0x00354b0b, // n0x18cb c0x0000 (---------------) + I xn--lt-liac - 0x003550cc, // n0x18cc c0x0000 (---------------) + I xn--lten-gra - 0x0035544c, // n0x18cd c0x0000 (---------------) + I xn--lury-ira - 0x0035574c, // n0x18ce c0x0000 (---------------) + I xn--mely-ira - 0x00355a4e, // n0x18cf c0x0000 (---------------) + I xn--merker-kua - 0x00365050, // n0x18d0 c0x0000 (---------------) + I xn--mjndalen-64a - 0x00367012, // n0x18d1 c0x0000 (---------------) + I xn--mlatvuopmi-s4a - 0x0036748b, // n0x18d2 c0x0000 (---------------) + I xn--mli-tla - 0x00367b8e, // n0x18d3 c0x0000 (---------------) + I xn--mlselv-iua - 0x00367f0e, // n0x18d4 c0x0000 (---------------) + I xn--moreke-jua - 0x003690ce, // n0x18d5 c0x0000 (---------------) + I xn--mosjen-eya - 0x0036980b, // n0x18d6 c0x0000 (---------------) + I xn--mot-tla - 0x42b69dd6, // n0x18d7 c0x010a (n0x194c-n0x194e) o I xn--mre-og-romsdal-qqb - 0x0036a94d, // n0x18d8 c0x0000 (---------------) + I xn--msy-ula0h - 0x0036be94, // n0x18d9 c0x0000 (---------------) + I xn--mtta-vrjjat-k7af - 0x0036d40d, // n0x18da c0x0000 (---------------) + I xn--muost-0qa - 0x0036e455, // n0x18db c0x0000 (---------------) + I xn--nmesjevuemie-tcba - 0x0036f84d, // n0x18dc c0x0000 (---------------) + I xn--nry-yla5g - 0x003701cf, // n0x18dd c0x0000 (---------------) + I xn--nttery-byae - 0x00370a4f, // n0x18de c0x0000 (---------------) + I xn--nvuotna-hwa - 0x00373f0f, // n0x18df c0x0000 (---------------) + I xn--oppegrd-ixa - 0x003742ce, // n0x18e0 c0x0000 (---------------) + I xn--ostery-fya - 0x0037498d, // n0x18e1 c0x0000 (---------------) + I xn--osyro-wua - 0x00375a11, // n0x18e2 c0x0000 (---------------) + I xn--porsgu-sta26f - 0x00379d8c, // n0x18e3 c0x0000 (---------------) + I xn--rady-ira - 0x0037a08c, // n0x18e4 c0x0000 (---------------) + I xn--rdal-poa - 0x0037a38b, // n0x18e5 c0x0000 (---------------) + I xn--rde-ula - 0x0037a98c, // n0x18e6 c0x0000 (---------------) + I xn--rdy-0nab - 0x0037ad4f, // n0x18e7 c0x0000 (---------------) + I xn--rennesy-v1a - 0x0037b112, // n0x18e8 c0x0000 (---------------) + I xn--rhkkervju-01af - 0x0037bacd, // n0x18e9 c0x0000 (---------------) + I xn--rholt-mra - 0x0037ca8c, // n0x18ea c0x0000 (---------------) + I xn--risa-5na - 0x0037cf0c, // n0x18eb c0x0000 (---------------) + I xn--risr-ira - 0x0037d20d, // n0x18ec c0x0000 (---------------) + I xn--rland-uua - 0x0037d54f, // n0x18ed c0x0000 (---------------) + I xn--rlingen-mxa - 0x0037d90e, // n0x18ee c0x0000 (---------------) + I xn--rmskog-bya - 0x0038088c, // n0x18ef c0x0000 (---------------) + I xn--rros-gra - 0x00380e4d, // n0x18f0 c0x0000 (---------------) + I xn--rskog-uua - 0x0038118b, // n0x18f1 c0x0000 (---------------) + I xn--rst-0na - 0x0038174c, // n0x18f2 c0x0000 (---------------) + I xn--rsta-fra - 0x00381ccd, // n0x18f3 c0x0000 (---------------) + I xn--ryken-vua - 0x0038200e, // n0x18f4 c0x0000 (---------------) + I xn--ryrvik-bya - 0x00382489, // n0x18f5 c0x0000 (---------------) + I xn--s-1fa - 0x00383693, // n0x18f6 c0x0000 (---------------) + I xn--sandnessjen-ogb - 0x00383f0d, // n0x18f7 c0x0000 (---------------) + I xn--sandy-yua - 0x0038424d, // n0x18f8 c0x0000 (---------------) + I xn--seral-lra - 0x0038484c, // n0x18f9 c0x0000 (---------------) + I xn--sgne-gra - 0x00384cce, // n0x18fa c0x0000 (---------------) + I xn--skierv-uta - 0x003857cf, // n0x18fb c0x0000 (---------------) + I xn--skjervy-v1a - 0x00385b8c, // n0x18fc c0x0000 (---------------) + I xn--skjk-soa - 0x00385e8d, // n0x18fd c0x0000 (---------------) + I xn--sknit-yqa - 0x003861cf, // n0x18fe c0x0000 (---------------) + I xn--sknland-fxa - 0x0038658c, // n0x18ff c0x0000 (---------------) + I xn--slat-5na - 0x00386b8c, // n0x1900 c0x0000 (---------------) + I xn--slt-elab - 0x00386f4c, // n0x1901 c0x0000 (---------------) + I xn--smla-hra - 0x0038724c, // n0x1902 c0x0000 (---------------) + I xn--smna-gra - 0x0038790d, // n0x1903 c0x0000 (---------------) + I xn--snase-nra - 0x00387c52, // n0x1904 c0x0000 (---------------) + I xn--sndre-land-0cb - 0x003882cc, // n0x1905 c0x0000 (---------------) + I xn--snes-poa - 0x003885cc, // n0x1906 c0x0000 (---------------) + I xn--snsa-roa - 0x003888d1, // n0x1907 c0x0000 (---------------) + I xn--sr-aurdal-l8a - 0x00388d0f, // n0x1908 c0x0000 (---------------) + I xn--sr-fron-q1a - 0x003890cf, // n0x1909 c0x0000 (---------------) + I xn--sr-odal-q1a - 0x00389493, // n0x190a c0x0000 (---------------) + I xn--sr-varanger-ggb - 0x0038a34e, // n0x190b c0x0000 (---------------) + I xn--srfold-bya - 0x0038a8cf, // n0x190c c0x0000 (---------------) + I xn--srreisa-q1a - 0x0038ac8c, // n0x190d c0x0000 (---------------) + I xn--srum-gra - 0x42f8afce, // n0x190e c0x010b (n0x194e-n0x194f) o I xn--stfold-9xa - 0x0038b34f, // n0x190f c0x0000 (---------------) + I xn--stjrdal-s1a - 0x0038b716, // n0x1910 c0x0000 (---------------) + I xn--stjrdalshalsen-sqb - 0x0038c512, // n0x1911 c0x0000 (---------------) + I xn--stre-toten-zcb - 0x0038d40c, // n0x1912 c0x0000 (---------------) + I xn--tjme-hra - 0x0038e20f, // n0x1913 c0x0000 (---------------) + I xn--tnsberg-q1a - 0x0038e88d, // n0x1914 c0x0000 (---------------) + I xn--trany-yua - 0x0038ebcf, // n0x1915 c0x0000 (---------------) + I xn--trgstad-r1a - 0x0038ef8c, // n0x1916 c0x0000 (---------------) + I xn--trna-woa - 0x0038f28d, // n0x1917 c0x0000 (---------------) + I xn--troms-zua - 0x0038f5cd, // n0x1918 c0x0000 (---------------) + I xn--tysvr-vra - 0x00390ace, // n0x1919 c0x0000 (---------------) + I xn--unjrga-rta - 0x00391fcc, // n0x191a c0x0000 (---------------) + I xn--vads-jra - 0x003922cc, // n0x191b c0x0000 (---------------) + I xn--vard-jra - 0x003925d0, // n0x191c c0x0000 (---------------) + I xn--vegrshei-c0a - 0x00396d51, // n0x191d c0x0000 (---------------) + I xn--vestvgy-ixa6o - 0x0039718b, // n0x191e c0x0000 (---------------) + I xn--vg-yiab - 0x003974cc, // n0x191f c0x0000 (---------------) + I xn--vgan-qoa - 0x003977ce, // n0x1920 c0x0000 (---------------) + I xn--vgsy-qoa0j - 0x00399b91, // n0x1921 c0x0000 (---------------) + I xn--vre-eiker-k8a - 0x00399fce, // n0x1922 c0x0000 (---------------) + I xn--vrggt-xqad - 0x0039a34d, // n0x1923 c0x0000 (---------------) + I xn--vry-yla5g - 0x003a018b, // n0x1924 c0x0000 (---------------) + I xn--yer-zna - 0x003a0a8f, // n0x1925 c0x0000 (---------------) + I xn--ygarden-p1a - 0x003a1414, // n0x1926 c0x0000 (---------------) + I xn--ystre-slidre-ujb - 0x002242c2, // n0x1927 c0x0000 (---------------) + I gs - 0x002242c2, // n0x1928 c0x0000 (---------------) + I gs - 0x00203283, // n0x1929 c0x0000 (---------------) + I nes - 0x002242c2, // n0x192a c0x0000 (---------------) + I gs - 0x00203283, // n0x192b c0x0000 (---------------) + I nes - 0x002242c2, // n0x192c c0x0000 (---------------) + I gs - 0x00203ac2, // n0x192d c0x0000 (---------------) + I os - 0x00360445, // n0x192e c0x0000 (---------------) + I valer - 0x0039988c, // n0x192f c0x0000 (---------------) + I xn--vler-qoa - 0x002242c2, // n0x1930 c0x0000 (---------------) + I gs - 0x002242c2, // n0x1931 c0x0000 (---------------) + I gs - 0x00203ac2, // n0x1932 c0x0000 (---------------) + I os - 0x002242c2, // n0x1933 c0x0000 (---------------) + I gs - 0x00289945, // n0x1934 c0x0000 (---------------) + I heroy - 0x0033b205, // n0x1935 c0x0000 (---------------) + I sande - 0x002242c2, // n0x1936 c0x0000 (---------------) + I gs - 0x002242c2, // n0x1937 c0x0000 (---------------) + I gs - 0x00206dc2, // n0x1938 c0x0000 (---------------) + I bo - 0x00289945, // n0x1939 c0x0000 (---------------) + I heroy - 0x00311709, // n0x193a c0x0000 (---------------) + I xn--b-5ga - 0x0033bc4c, // n0x193b c0x0000 (---------------) + I xn--hery-ira - 0x002242c2, // n0x193c c0x0000 (---------------) + I gs - 0x002242c2, // n0x193d c0x0000 (---------------) + I gs - 0x002242c2, // n0x193e c0x0000 (---------------) + I gs - 0x002242c2, // n0x193f c0x0000 (---------------) + I gs - 0x00360445, // n0x1940 c0x0000 (---------------) + I valer - 0x002242c2, // n0x1941 c0x0000 (---------------) + I gs - 0x002242c2, // n0x1942 c0x0000 (---------------) + I gs - 0x002242c2, // n0x1943 c0x0000 (---------------) + I gs - 0x002242c2, // n0x1944 c0x0000 (---------------) + I gs - 0x00206dc2, // n0x1945 c0x0000 (---------------) + I bo - 0x00311709, // n0x1946 c0x0000 (---------------) + I xn--b-5ga - 0x002242c2, // n0x1947 c0x0000 (---------------) + I gs - 0x002242c2, // n0x1948 c0x0000 (---------------) + I gs - 0x002242c2, // n0x1949 c0x0000 (---------------) + I gs - 0x0033b205, // n0x194a c0x0000 (---------------) + I sande - 0x002242c2, // n0x194b c0x0000 (---------------) + I gs - 0x0033b205, // n0x194c c0x0000 (---------------) + I sande - 0x0033bc4c, // n0x194d c0x0000 (---------------) + I xn--hery-ira - 0x0039988c, // n0x194e c0x0000 (---------------) + I xn--vler-qoa - 0x0030a143, // n0x194f c0x0000 (---------------) + I biz - 0x0022edc3, // n0x1950 c0x0000 (---------------) + I com - 0x002349c3, // n0x1951 c0x0000 (---------------) + I edu - 0x00275003, // n0x1952 c0x0000 (---------------) + I gov - 0x0038a144, // n0x1953 c0x0000 (---------------) + I info - 0x0021d8c3, // n0x1954 c0x0000 (---------------) + I net - 0x00229a83, // n0x1955 c0x0000 (---------------) + I org - 0x00102b48, // n0x1956 c0x0000 (---------------) + merseine - 0x0008cf84, // n0x1957 c0x0000 (---------------) + mine - 0x000af988, // n0x1958 c0x0000 (---------------) + shacknet - 0x00205882, // n0x1959 c0x0000 (---------------) + I ac - 0x43e08182, // n0x195a c0x010f (n0x1969-n0x196a) + I co - 0x0023eec3, // n0x195b c0x0000 (---------------) + I cri - 0x0025f184, // n0x195c c0x0000 (---------------) + I geek - 0x00206243, // n0x195d c0x0000 (---------------) + I gen - 0x002ef244, // n0x195e c0x0000 (---------------) + I govt - 0x002a51c6, // n0x195f c0x0000 (---------------) + I health - 0x00202e03, // n0x1960 c0x0000 (---------------) + I iwi - 0x002e2c84, // n0x1961 c0x0000 (---------------) + I kiwi - 0x00271885, // n0x1962 c0x0000 (---------------) + I maori - 0x00215b43, // n0x1963 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1964 c0x0000 (---------------) + I net - 0x00229a83, // n0x1965 c0x0000 (---------------) + I org - 0x00266bca, // n0x1966 c0x0000 (---------------) + I parliament - 0x00231d06, // n0x1967 c0x0000 (---------------) + I school - 0x0036828c, // n0x1968 c0x0000 (---------------) + I xn--mori-qsa - 0x000f5248, // n0x1969 c0x0000 (---------------) + blogspot - 0x00208182, // n0x196a c0x0000 (---------------) + I co - 0x0022edc3, // n0x196b c0x0000 (---------------) + I com - 0x002349c3, // n0x196c c0x0000 (---------------) + I edu - 0x00275003, // n0x196d c0x0000 (---------------) + I gov - 0x00211c43, // n0x196e c0x0000 (---------------) + I med - 0x002cc746, // n0x196f c0x0000 (---------------) + I museum - 0x0021d8c3, // n0x1970 c0x0000 (---------------) + I net - 0x00229a83, // n0x1971 c0x0000 (---------------) + I org - 0x00220283, // n0x1972 c0x0000 (---------------) + I pro - 0x0000ac02, // n0x1973 c0x0000 (---------------) + ae - 0x00029007, // n0x1974 c0x0000 (---------------) + blogdns - 0x000cf808, // n0x1975 c0x0000 (---------------) + blogsite - 0x0000c54e, // n0x1976 c0x0000 (---------------) + bmoattachments - 0x00080bd2, // n0x1977 c0x0000 (---------------) + boldlygoingnowhere - 0x44a39705, // n0x1978 c0x0112 (n0x19ae-n0x19b0) o I cdn77 - 0x44f1c70c, // n0x1979 c0x0113 (n0x19b0-n0x19b1) o I cdn77-secure - 0x00147e08, // n0x197a c0x0000 (---------------) + dnsalias - 0x00074607, // n0x197b c0x0000 (---------------) + dnsdojo - 0x000ebecb, // n0x197c c0x0000 (---------------) + doesntexist - 0x00168789, // n0x197d c0x0000 (---------------) + dontexist - 0x00147d07, // n0x197e c0x0000 (---------------) + doomdns - 0x00074507, // n0x197f c0x0000 (---------------) + duckdns - 0x00008306, // n0x1980 c0x0000 (---------------) + dvrdns - 0x0018bd88, // n0x1981 c0x0000 (---------------) + dynalias - 0x45411a06, // n0x1982 c0x0115 (n0x19b2-n0x19b4) + dyndns - 0x0009f90d, // n0x1983 c0x0000 (---------------) + endofinternet - 0x00107210, // n0x1984 c0x0000 (---------------) + endoftheinternet - 0x45824542, // n0x1985 c0x0116 (n0x19b4-n0x19eb) + eu - 0x00062c47, // n0x1986 c0x0000 (---------------) + from-me - 0x0009f089, // n0x1987 c0x0000 (---------------) + game-host - 0x0004f886, // n0x1988 c0x0000 (---------------) + gotdns - 0x0000e882, // n0x1989 c0x0000 (---------------) + hk - 0x000fef8a, // n0x198a c0x0000 (---------------) + hobby-site - 0x00011bc7, // n0x198b c0x0000 (---------------) + homedns - 0x000ad607, // n0x198c c0x0000 (---------------) + homeftp - 0x0009c509, // n0x198d c0x0000 (---------------) + homelinux - 0x0009d988, // n0x198e c0x0000 (---------------) + homeunix - 0x000da1ce, // n0x198f c0x0000 (---------------) + is-a-bruinsfan - 0x00005b4e, // n0x1990 c0x0000 (---------------) + is-a-candidate - 0x0000da4f, // n0x1991 c0x0000 (---------------) + is-a-celticsfan - 0x0000fe09, // n0x1992 c0x0000 (---------------) + is-a-chef - 0x0005f049, // n0x1993 c0x0000 (---------------) + is-a-geek - 0x0005180b, // n0x1994 c0x0000 (---------------) + is-a-knight - 0x00069f0f, // n0x1995 c0x0000 (---------------) + is-a-linux-user - 0x000823cc, // n0x1996 c0x0000 (---------------) + is-a-patsfan - 0x0009ffcb, // n0x1997 c0x0000 (---------------) + is-a-soxfan - 0x000b3648, // n0x1998 c0x0000 (---------------) + is-found - 0x000ecf87, // n0x1999 c0x0000 (---------------) + is-lost - 0x000f44c8, // n0x199a c0x0000 (---------------) + is-saved - 0x000e6d8b, // n0x199b c0x0000 (---------------) + is-very-bad - 0x000f02cc, // n0x199c c0x0000 (---------------) + is-very-evil - 0x0011bb0c, // n0x199d c0x0000 (---------------) + is-very-good - 0x0013644c, // n0x199e c0x0000 (---------------) + is-very-nice - 0x00140c4d, // n0x199f c0x0000 (---------------) + is-very-sweet - 0x000fff08, // n0x19a0 c0x0000 (---------------) + isa-geek - 0x0014c909, // n0x19a1 c0x0000 (---------------) + kicks-ass - 0x0017770b, // n0x19a2 c0x0000 (---------------) + misconfused - 0x000d7147, // n0x19a3 c0x0000 (---------------) + podzone - 0x000cf68a, // n0x19a4 c0x0000 (---------------) + readmyblog - 0x00053986, // n0x19a5 c0x0000 (---------------) + selfip - 0x00090b0d, // n0x19a6 c0x0000 (---------------) + sellsyourhome - 0x000c9608, // n0x19a7 c0x0000 (---------------) + servebbs - 0x0006e648, // n0x19a8 c0x0000 (---------------) + serveftp - 0x00170589, // n0x19a9 c0x0000 (---------------) + servegame - 0x000e160c, // n0x19aa c0x0000 (---------------) + stuff-4-sale - 0x00002982, // n0x19ab c0x0000 (---------------) + us - 0x00123b06, // n0x19ac c0x0000 (---------------) + webhop - 0x00009ac2, // n0x19ad c0x0000 (---------------) + za - 0x00000301, // n0x19ae c0x0000 (---------------) + c - 0x0003fa03, // n0x19af c0x0000 (---------------) + rsc - 0x45371dc6, // n0x19b0 c0x0114 (n0x19b1-n0x19b2) o I origin - 0x00039883, // n0x19b1 c0x0000 (---------------) + ssl - 0x00008502, // n0x19b2 c0x0000 (---------------) + go - 0x00011bc4, // n0x19b3 c0x0000 (---------------) + home - 0x000001c2, // n0x19b4 c0x0000 (---------------) + al - 0x000b1c44, // n0x19b5 c0x0000 (---------------) + asso - 0x00000102, // n0x19b6 c0x0000 (---------------) + at - 0x00009602, // n0x19b7 c0x0000 (---------------) + au - 0x000094c2, // n0x19b8 c0x0000 (---------------) + be - 0x00026882, // n0x19b9 c0x0000 (---------------) + bg - 0x00000302, // n0x19ba c0x0000 (---------------) + ca - 0x00039702, // n0x19bb c0x0000 (---------------) + cd - 0x000058c2, // n0x19bc c0x0000 (---------------) + ch - 0x0001a142, // n0x19bd c0x0000 (---------------) + cn - 0x000394c2, // n0x19be c0x0000 (---------------) + cy - 0x00033fc2, // n0x19bf c0x0000 (---------------) + cz - 0x00000402, // n0x19c0 c0x0000 (---------------) + de - 0x00000ac2, // n0x19c1 c0x0000 (---------------) + dk - 0x000349c3, // n0x19c2 c0x0000 (---------------) + edu - 0x0000b0c2, // n0x19c3 c0x0000 (---------------) + ee - 0x00002242, // n0x19c4 c0x0000 (---------------) + es - 0x0000e002, // n0x19c5 c0x0000 (---------------) + fi - 0x00007fc2, // n0x19c6 c0x0000 (---------------) + fr - 0x000089c2, // n0x19c7 c0x0000 (---------------) + gr - 0x00032882, // n0x19c8 c0x0000 (---------------) + hr - 0x0000d0c2, // n0x19c9 c0x0000 (---------------) + hu - 0x00000042, // n0x19ca c0x0000 (---------------) + ie - 0x00002f82, // n0x19cb c0x0000 (---------------) + il - 0x000020c2, // n0x19cc c0x0000 (---------------) + in - 0x0006f683, // n0x19cd c0x0000 (---------------) + int - 0x00001a02, // n0x19ce c0x0000 (---------------) + is - 0x00006f82, // n0x19cf c0x0000 (---------------) + it - 0x000a8bc2, // n0x19d0 c0x0000 (---------------) + jp - 0x000076c2, // n0x19d1 c0x0000 (---------------) + kr - 0x00008bc2, // n0x19d2 c0x0000 (---------------) + lt - 0x00002542, // n0x19d3 c0x0000 (---------------) + lu - 0x00007302, // n0x19d4 c0x0000 (---------------) + lv - 0x000d2e42, // n0x19d5 c0x0000 (---------------) + mc - 0x00002302, // n0x19d6 c0x0000 (---------------) + me - 0x00165542, // n0x19d7 c0x0000 (---------------) + mk - 0x00035702, // n0x19d8 c0x0000 (---------------) + mt - 0x0002a6c2, // n0x19d9 c0x0000 (---------------) + my - 0x0001d8c3, // n0x19da c0x0000 (---------------) + net - 0x00002d42, // n0x19db c0x0000 (---------------) + ng - 0x0003e082, // n0x19dc c0x0000 (---------------) + nl - 0x00000d82, // n0x19dd c0x0000 (---------------) + no - 0x00009a82, // n0x19de c0x0000 (---------------) + nz - 0x00052285, // n0x19df c0x0000 (---------------) + paris - 0x00006582, // n0x19e0 c0x0000 (---------------) + pl - 0x000835c2, // n0x19e1 c0x0000 (---------------) + pt - 0x0003d883, // n0x19e2 c0x0000 (---------------) + q-a - 0x00000cc2, // n0x19e3 c0x0000 (---------------) + ro - 0x00011ec2, // n0x19e4 c0x0000 (---------------) + ru - 0x00001d42, // n0x19e5 c0x0000 (---------------) + se - 0x0000ca82, // n0x19e6 c0x0000 (---------------) + si - 0x0000e342, // n0x19e7 c0x0000 (---------------) + sk - 0x00003642, // n0x19e8 c0x0000 (---------------) + tr - 0x00000f82, // n0x19e9 c0x0000 (---------------) + uk - 0x00002982, // n0x19ea c0x0000 (---------------) + us - 0x00210e43, // n0x19eb c0x0000 (---------------) + I abo - 0x00205882, // n0x19ec c0x0000 (---------------) + I ac - 0x0022edc3, // n0x19ed c0x0000 (---------------) + I com - 0x002349c3, // n0x19ee c0x0000 (---------------) + I edu - 0x00209f03, // n0x19ef c0x0000 (---------------) + I gob - 0x00202d03, // n0x19f0 c0x0000 (---------------) + I ing - 0x00211c43, // n0x19f1 c0x0000 (---------------) + I med - 0x0021d8c3, // n0x19f2 c0x0000 (---------------) + I net - 0x0020e543, // n0x19f3 c0x0000 (---------------) + I nom - 0x00229a83, // n0x19f4 c0x0000 (---------------) + I org - 0x00289883, // n0x19f5 c0x0000 (---------------) + I sld - 0x000f5248, // n0x19f6 c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x19f7 c0x0000 (---------------) + I com - 0x002349c3, // n0x19f8 c0x0000 (---------------) + I edu - 0x00209f03, // n0x19f9 c0x0000 (---------------) + I gob - 0x00215b43, // n0x19fa c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x19fb c0x0000 (---------------) + I net - 0x0020e543, // n0x19fc c0x0000 (---------------) + I nom - 0x00229a83, // n0x19fd c0x0000 (---------------) + I org - 0x0022edc3, // n0x19fe c0x0000 (---------------) + I com - 0x002349c3, // n0x19ff c0x0000 (---------------) + I edu - 0x00229a83, // n0x1a00 c0x0000 (---------------) + I org - 0x0022edc3, // n0x1a01 c0x0000 (---------------) + I com - 0x002349c3, // n0x1a02 c0x0000 (---------------) + I edu - 0x00275003, // n0x1a03 c0x0000 (---------------) + I gov - 0x00200041, // n0x1a04 c0x0000 (---------------) + I i - 0x00215b43, // n0x1a05 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1a06 c0x0000 (---------------) + I net - 0x002084c3, // n0x1a07 c0x0000 (---------------) + I ngo - 0x00229a83, // n0x1a08 c0x0000 (---------------) + I org - 0x0030a143, // n0x1a09 c0x0000 (---------------) + I biz - 0x0022edc3, // n0x1a0a c0x0000 (---------------) + I com - 0x002349c3, // n0x1a0b c0x0000 (---------------) + I edu - 0x00365a03, // n0x1a0c c0x0000 (---------------) + I fam - 0x00209f03, // n0x1a0d c0x0000 (---------------) + I gob - 0x00237fc3, // n0x1a0e c0x0000 (---------------) + I gok - 0x00248683, // n0x1a0f c0x0000 (---------------) + I gon - 0x0029ae43, // n0x1a10 c0x0000 (---------------) + I gop - 0x00208503, // n0x1a11 c0x0000 (---------------) + I gos - 0x00275003, // n0x1a12 c0x0000 (---------------) + I gov - 0x0038a144, // n0x1a13 c0x0000 (---------------) + I info - 0x0021d8c3, // n0x1a14 c0x0000 (---------------) + I net - 0x00229a83, // n0x1a15 c0x0000 (---------------) + I org - 0x0021fa83, // n0x1a16 c0x0000 (---------------) + I web - 0x0031af44, // n0x1a17 c0x0000 (---------------) + I agro - 0x0021a3c3, // n0x1a18 c0x0000 (---------------) + I aid - 0x000011c3, // n0x1a19 c0x0000 (---------------) + art - 0x00200103, // n0x1a1a c0x0000 (---------------) + I atm - 0x00256148, // n0x1a1b c0x0000 (---------------) + I augustow - 0x00216404, // n0x1a1c c0x0000 (---------------) + I auto - 0x0033d2ca, // n0x1a1d c0x0000 (---------------) + I babia-gora - 0x00300686, // n0x1a1e c0x0000 (---------------) + I bedzin - 0x0038bc47, // n0x1a1f c0x0000 (---------------) + I beskidy - 0x0021cb4a, // n0x1a20 c0x0000 (---------------) + I bialowieza - 0x00267fc9, // n0x1a21 c0x0000 (---------------) + I bialystok - 0x0039cac7, // n0x1a22 c0x0000 (---------------) + I bielawa - 0x003a2f4a, // n0x1a23 c0x0000 (---------------) + I bieszczady - 0x0030a143, // n0x1a24 c0x0000 (---------------) + I biz - 0x0034e48b, // n0x1a25 c0x0000 (---------------) + I boleslawiec - 0x003018c9, // n0x1a26 c0x0000 (---------------) + I bydgoszcz - 0x00219785, // n0x1a27 c0x0000 (---------------) + I bytom - 0x002c9f07, // n0x1a28 c0x0000 (---------------) + I cieszyn - 0x00008182, // n0x1a29 c0x0000 (---------------) + co - 0x0022edc3, // n0x1a2a c0x0000 (---------------) + I com - 0x0033ba07, // n0x1a2b c0x0000 (---------------) + I czeladz - 0x00233fc5, // n0x1a2c c0x0000 (---------------) + I czest - 0x002b6ac9, // n0x1a2d c0x0000 (---------------) + I dlugoleka - 0x002349c3, // n0x1a2e c0x0000 (---------------) + I edu - 0x00221e46, // n0x1a2f c0x0000 (---------------) + I elblag - 0x002b5903, // n0x1a30 c0x0000 (---------------) + I elk - 0x000f2683, // n0x1a31 c0x0000 (---------------) + gda - 0x000f2686, // n0x1a32 c0x0000 (---------------) + gdansk - 0x000264c6, // n0x1a33 c0x0000 (---------------) + gdynia - 0x00002d87, // n0x1a34 c0x0000 (---------------) + gliwice - 0x00208806, // n0x1a35 c0x0000 (---------------) + I glogow - 0x0020f7c5, // n0x1a36 c0x0000 (---------------) + I gmina - 0x00225387, // n0x1a37 c0x0000 (---------------) + I gniezno - 0x0032eec7, // n0x1a38 c0x0000 (---------------) + I gorlice - 0x47675003, // n0x1a39 c0x011d (n0x1abc-n0x1aeb) + I gov - 0x00326f07, // n0x1a3a c0x0000 (---------------) + I grajewo - 0x00358d43, // n0x1a3b c0x0000 (---------------) + I gsm - 0x00209145, // n0x1a3c c0x0000 (---------------) + I ilawa - 0x0038a144, // n0x1a3d c0x0000 (---------------) + I info - 0x00275408, // n0x1a3e c0x0000 (---------------) + I jaworzno - 0x002a71cc, // n0x1a3f c0x0000 (---------------) + I jelenia-gora - 0x002a4885, // n0x1a40 c0x0000 (---------------) + I jgora - 0x003936c6, // n0x1a41 c0x0000 (---------------) + I kalisz - 0x0033b8c7, // n0x1a42 c0x0000 (---------------) + I karpacz - 0x0037f7c7, // n0x1a43 c0x0000 (---------------) + I kartuzy - 0x002027c7, // n0x1a44 c0x0000 (---------------) + I kaszuby - 0x002073c8, // n0x1a45 c0x0000 (---------------) + I katowice - 0x00218c4f, // n0x1a46 c0x0000 (---------------) + I kazimierz-dolny - 0x00308605, // n0x1a47 c0x0000 (---------------) + I kepno - 0x0023efc7, // n0x1a48 c0x0000 (---------------) + I ketrzyn - 0x002a1347, // n0x1a49 c0x0000 (---------------) + I klodzko - 0x0029be4a, // n0x1a4a c0x0000 (---------------) + I kobierzyce - 0x00283349, // n0x1a4b c0x0000 (---------------) + I kolobrzeg - 0x002c6d05, // n0x1a4c c0x0000 (---------------) + I konin - 0x002c768a, // n0x1a4d c0x0000 (---------------) + I konskowola - 0x001239c6, // n0x1a4e c0x0000 (---------------) + krakow - 0x002b5985, // n0x1a4f c0x0000 (---------------) + I kutno - 0x003676c4, // n0x1a50 c0x0000 (---------------) + I lapy - 0x002a0c46, // n0x1a51 c0x0000 (---------------) + I lebork - 0x0032fe87, // n0x1a52 c0x0000 (---------------) + I legnica - 0x0023cac7, // n0x1a53 c0x0000 (---------------) + I lezajsk - 0x00301d08, // n0x1a54 c0x0000 (---------------) + I limanowa - 0x00212bc5, // n0x1a55 c0x0000 (---------------) + I lomza - 0x00233ec6, // n0x1a56 c0x0000 (---------------) + I lowicz - 0x00202545, // n0x1a57 c0x0000 (---------------) + I lubin - 0x00330b05, // n0x1a58 c0x0000 (---------------) + I lukow - 0x0021a604, // n0x1a59 c0x0000 (---------------) + I mail - 0x002e7187, // n0x1a5a c0x0000 (---------------) + I malbork - 0x0028018a, // n0x1a5b c0x0000 (---------------) + I malopolska - 0x0037fe08, // n0x1a5c c0x0000 (---------------) + I mazowsze - 0x002d1606, // n0x1a5d c0x0000 (---------------) + I mazury - 0x00011c43, // n0x1a5e c0x0000 (---------------) + med - 0x002fb545, // n0x1a5f c0x0000 (---------------) + I media - 0x003831c6, // n0x1a60 c0x0000 (---------------) + I miasta - 0x003a1c06, // n0x1a61 c0x0000 (---------------) + I mielec - 0x002be106, // n0x1a62 c0x0000 (---------------) + I mielno - 0x00215b43, // n0x1a63 c0x0000 (---------------) + I mil - 0x0037bd47, // n0x1a64 c0x0000 (---------------) + I mragowo - 0x002a12c5, // n0x1a65 c0x0000 (---------------) + I naklo - 0x0021d8c3, // n0x1a66 c0x0000 (---------------) + I net - 0x0039cd4d, // n0x1a67 c0x0000 (---------------) + I nieruchomosci - 0x0020e543, // n0x1a68 c0x0000 (---------------) + I nom - 0x00301e08, // n0x1a69 c0x0000 (---------------) + I nowaruda - 0x0039abc4, // n0x1a6a c0x0000 (---------------) + I nysa - 0x0026f045, // n0x1a6b c0x0000 (---------------) + I olawa - 0x0029bd46, // n0x1a6c c0x0000 (---------------) + I olecko - 0x00237686, // n0x1a6d c0x0000 (---------------) + I olkusz - 0x0020a307, // n0x1a6e c0x0000 (---------------) + I olsztyn - 0x00238307, // n0x1a6f c0x0000 (---------------) + I opoczno - 0x0024a205, // n0x1a70 c0x0000 (---------------) + I opole - 0x00229a83, // n0x1a71 c0x0000 (---------------) + I org - 0x00207ac7, // n0x1a72 c0x0000 (---------------) + I ostroda - 0x002c5c89, // n0x1a73 c0x0000 (---------------) + I ostroleka - 0x00203ac9, // n0x1a74 c0x0000 (---------------) + I ostrowiec - 0x0020854a, // n0x1a75 c0x0000 (---------------) + I ostrowwlkp - 0x002419c2, // n0x1a76 c0x0000 (---------------) + I pc - 0x00209104, // n0x1a77 c0x0000 (---------------) + I pila - 0x002d1ec4, // n0x1a78 c0x0000 (---------------) + I pisz - 0x002158c7, // n0x1a79 c0x0000 (---------------) + I podhale - 0x00237888, // n0x1a7a c0x0000 (---------------) + I podlasie - 0x002d7bc9, // n0x1a7b c0x0000 (---------------) + I polkowice - 0x0021ce49, // n0x1a7c c0x0000 (---------------) + I pomorskie - 0x002d8787, // n0x1a7d c0x0000 (---------------) + I pomorze - 0x00308106, // n0x1a7e c0x0000 (---------------) + I powiat - 0x000d9f46, // n0x1a7f c0x0000 (---------------) + poznan - 0x002db244, // n0x1a80 c0x0000 (---------------) + I priv - 0x002db3ca, // n0x1a81 c0x0000 (---------------) + I prochowice - 0x002de5c8, // n0x1a82 c0x0000 (---------------) + I pruszkow - 0x002deb89, // n0x1a83 c0x0000 (---------------) + I przeworsk - 0x00286846, // n0x1a84 c0x0000 (---------------) + I pulawy - 0x002f9045, // n0x1a85 c0x0000 (---------------) + I radom - 0x0037fcc8, // n0x1a86 c0x0000 (---------------) + I rawa-maz - 0x002bf48a, // n0x1a87 c0x0000 (---------------) + I realestate - 0x0020c043, // n0x1a88 c0x0000 (---------------) + I rel - 0x0034e986, // n0x1a89 c0x0000 (---------------) + I rybnik - 0x002d8887, // n0x1a8a c0x0000 (---------------) + I rzeszow - 0x0020d5c5, // n0x1a8b c0x0000 (---------------) + I sanok - 0x00221705, // n0x1a8c c0x0000 (---------------) + I sejny - 0x00240e03, // n0x1a8d c0x0000 (---------------) + I sex - 0x00332c44, // n0x1a8e c0x0000 (---------------) + I shop - 0x00223f45, // n0x1a8f c0x0000 (---------------) + I sklep - 0x0027a847, // n0x1a90 c0x0000 (---------------) + I skoczow - 0x002dc085, // n0x1a91 c0x0000 (---------------) + I slask - 0x002cdd06, // n0x1a92 c0x0000 (---------------) + I slupsk - 0x00115105, // n0x1a93 c0x0000 (---------------) + sopot - 0x0021e5c3, // n0x1a94 c0x0000 (---------------) + I sos - 0x002a6389, // n0x1a95 c0x0000 (---------------) + I sosnowiec - 0x0026ee0c, // n0x1a96 c0x0000 (---------------) + I stalowa-wola - 0x0029600c, // n0x1a97 c0x0000 (---------------) + I starachowice - 0x002c7248, // n0x1a98 c0x0000 (---------------) + I stargard - 0x00265247, // n0x1a99 c0x0000 (---------------) + I suwalki - 0x002e5008, // n0x1a9a c0x0000 (---------------) + I swidnica - 0x002e5c0a, // n0x1a9b c0x0000 (---------------) + I swiebodzin - 0x002e658b, // n0x1a9c c0x0000 (---------------) + I swinoujscie - 0x00301a08, // n0x1a9d c0x0000 (---------------) + I szczecin - 0x003937c8, // n0x1a9e c0x0000 (---------------) + I szczytno - 0x0020b986, // n0x1a9f c0x0000 (---------------) + I szkola - 0x00363285, // n0x1aa0 c0x0000 (---------------) + I targi - 0x003223ca, // n0x1aa1 c0x0000 (---------------) + I tarnobrzeg - 0x00218745, // n0x1aa2 c0x0000 (---------------) + I tgory - 0x00200142, // n0x1aa3 c0x0000 (---------------) + I tm - 0x002ba087, // n0x1aa4 c0x0000 (---------------) + I tourism - 0x00293486, // n0x1aa5 c0x0000 (---------------) + I travel - 0x0034d545, // n0x1aa6 c0x0000 (---------------) + I turek - 0x002e7a49, // n0x1aa7 c0x0000 (---------------) + I turystyka - 0x00378505, // n0x1aa8 c0x0000 (---------------) + I tychy - 0x003726c5, // n0x1aa9 c0x0000 (---------------) + I ustka - 0x00268689, // n0x1aaa c0x0000 (---------------) + I walbrzych - 0x00383046, // n0x1aab c0x0000 (---------------) + I warmia - 0x00227a08, // n0x1aac c0x0000 (---------------) + I warszawa - 0x0022bf03, // n0x1aad c0x0000 (---------------) + I waw - 0x00208946, // n0x1aae c0x0000 (---------------) + I wegrow - 0x0026e186, // n0x1aaf c0x0000 (---------------) + I wielun - 0x002f5945, // n0x1ab0 c0x0000 (---------------) + I wlocl - 0x002f5949, // n0x1ab1 c0x0000 (---------------) + I wloclawek - 0x002ab3c9, // n0x1ab2 c0x0000 (---------------) + I wodzislaw - 0x00241d07, // n0x1ab3 c0x0000 (---------------) + I wolomin - 0x000f57c4, // n0x1ab4 c0x0000 (---------------) + wroc - 0x002f57c7, // n0x1ab5 c0x0000 (---------------) + I wroclaw - 0x0021cd49, // n0x1ab6 c0x0000 (---------------) + I zachpomor - 0x00338685, // n0x1ab7 c0x0000 (---------------) + I zagan - 0x0003b808, // n0x1ab8 c0x0000 (---------------) + zakopane - 0x0033acc5, // n0x1ab9 c0x0000 (---------------) + I zarow - 0x0033a9c5, // n0x1aba c0x0000 (---------------) + I zgora - 0x0021d989, // n0x1abb c0x0000 (---------------) + I zgorzelec - 0x002136c2, // n0x1abc c0x0000 (---------------) + I ap - 0x0021a1c4, // n0x1abd c0x0000 (---------------) + I griw - 0x00202e82, // n0x1abe c0x0000 (---------------) + I ic - 0x00201a02, // n0x1abf c0x0000 (---------------) + I is - 0x002637c5, // n0x1ac0 c0x0000 (---------------) + I kmpsp - 0x002cab08, // n0x1ac1 c0x0000 (---------------) + I konsulat - 0x0037a705, // n0x1ac2 c0x0000 (---------------) + I kppsp - 0x002b82c3, // n0x1ac3 c0x0000 (---------------) + I kwp - 0x002b82c5, // n0x1ac4 c0x0000 (---------------) + I kwpsp - 0x002ca2c3, // n0x1ac5 c0x0000 (---------------) + I mup - 0x0020f2c2, // n0x1ac6 c0x0000 (---------------) + I mw - 0x00260804, // n0x1ac7 c0x0000 (---------------) + I oirm - 0x002f6303, // n0x1ac8 c0x0000 (---------------) + I oum - 0x0020ec42, // n0x1ac9 c0x0000 (---------------) + I pa - 0x002dcbc4, // n0x1aca c0x0000 (---------------) + I pinb - 0x002d24c3, // n0x1acb c0x0000 (---------------) + I piw - 0x00200c42, // n0x1acc c0x0000 (---------------) + I po - 0x00245b03, // n0x1acd c0x0000 (---------------) + I psp - 0x00284bc4, // n0x1ace c0x0000 (---------------) + I psse - 0x002b0943, // n0x1acf c0x0000 (---------------) + I pup - 0x0023d244, // n0x1ad0 c0x0000 (---------------) + I rzgw - 0x00202402, // n0x1ad1 c0x0000 (---------------) + I sa - 0x0026b1c3, // n0x1ad2 c0x0000 (---------------) + I sdn - 0x00215443, // n0x1ad3 c0x0000 (---------------) + I sko - 0x00204c82, // n0x1ad4 c0x0000 (---------------) + I so - 0x00336d82, // n0x1ad5 c0x0000 (---------------) + I sr - 0x002ab209, // n0x1ad6 c0x0000 (---------------) + I starostwo - 0x00207e02, // n0x1ad7 c0x0000 (---------------) + I ug - 0x00281744, // n0x1ad8 c0x0000 (---------------) + I ugim - 0x0020bd82, // n0x1ad9 c0x0000 (---------------) + I um - 0x0037fb44, // n0x1ada c0x0000 (---------------) + I umig - 0x003080c4, // n0x1adb c0x0000 (---------------) + I upow - 0x002dd9c4, // n0x1adc c0x0000 (---------------) + I uppo - 0x00202982, // n0x1add c0x0000 (---------------) + I us - 0x0020b5c2, // n0x1ade c0x0000 (---------------) + I uw - 0x00211f03, // n0x1adf c0x0000 (---------------) + I uzs - 0x002e6203, // n0x1ae0 c0x0000 (---------------) + I wif - 0x0022bf84, // n0x1ae1 c0x0000 (---------------) + I wiih - 0x00255904, // n0x1ae2 c0x0000 (---------------) + I winb - 0x002c5c04, // n0x1ae3 c0x0000 (---------------) + I wios - 0x002c7584, // n0x1ae4 c0x0000 (---------------) + I witd - 0x002f4c83, // n0x1ae5 c0x0000 (---------------) + I wiw - 0x002eb643, // n0x1ae6 c0x0000 (---------------) + I wsa - 0x00323944, // n0x1ae7 c0x0000 (---------------) + I wskr - 0x002f6f44, // n0x1ae8 c0x0000 (---------------) + I wuoz - 0x002f7246, // n0x1ae9 c0x0000 (---------------) + I wzmiuw - 0x00252242, // n0x1aea c0x0000 (---------------) + I zp - 0x00208182, // n0x1aeb c0x0000 (---------------) + I co - 0x002349c3, // n0x1aec c0x0000 (---------------) + I edu - 0x00275003, // n0x1aed c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x1aee c0x0000 (---------------) + I net - 0x00229a83, // n0x1aef c0x0000 (---------------) + I org - 0x00205882, // n0x1af0 c0x0000 (---------------) + I ac - 0x0030a143, // n0x1af1 c0x0000 (---------------) + I biz - 0x0022edc3, // n0x1af2 c0x0000 (---------------) + I com - 0x002349c3, // n0x1af3 c0x0000 (---------------) + I edu - 0x00202243, // n0x1af4 c0x0000 (---------------) + I est - 0x00275003, // n0x1af5 c0x0000 (---------------) + I gov - 0x0038a144, // n0x1af6 c0x0000 (---------------) + I info - 0x002ab4c4, // n0x1af7 c0x0000 (---------------) + I isla - 0x0027ca84, // n0x1af8 c0x0000 (---------------) + I name - 0x0021d8c3, // n0x1af9 c0x0000 (---------------) + I net - 0x00229a83, // n0x1afa c0x0000 (---------------) + I org - 0x00220283, // n0x1afb c0x0000 (---------------) + I pro - 0x002dba84, // n0x1afc c0x0000 (---------------) + I prof - 0x002ac5c3, // n0x1afd c0x0000 (---------------) + I aca - 0x00211783, // n0x1afe c0x0000 (---------------) + I bar - 0x00213b83, // n0x1aff c0x0000 (---------------) + I cpa - 0x0027bd03, // n0x1b00 c0x0000 (---------------) + I eng - 0x002aa183, // n0x1b01 c0x0000 (---------------) + I jur - 0x00209183, // n0x1b02 c0x0000 (---------------) + I law - 0x00211c43, // n0x1b03 c0x0000 (---------------) + I med - 0x0022edc3, // n0x1b04 c0x0000 (---------------) + I com - 0x002349c3, // n0x1b05 c0x0000 (---------------) + I edu - 0x00275003, // n0x1b06 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x1b07 c0x0000 (---------------) + I net - 0x00229a83, // n0x1b08 c0x0000 (---------------) + I org - 0x002d5303, // n0x1b09 c0x0000 (---------------) + I plo - 0x00230ec3, // n0x1b0a c0x0000 (---------------) + I sec - 0x000f5248, // n0x1b0b c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x1b0c c0x0000 (---------------) + I com - 0x002349c3, // n0x1b0d c0x0000 (---------------) + I edu - 0x00275003, // n0x1b0e c0x0000 (---------------) + I gov - 0x0026f683, // n0x1b0f c0x0000 (---------------) + I int - 0x0021d8c3, // n0x1b10 c0x0000 (---------------) + I net - 0x0023c4c4, // n0x1b11 c0x0000 (---------------) + I nome - 0x00229a83, // n0x1b12 c0x0000 (---------------) + I org - 0x0028ff44, // n0x1b13 c0x0000 (---------------) + I publ - 0x002cad85, // n0x1b14 c0x0000 (---------------) + I belau - 0x00208182, // n0x1b15 c0x0000 (---------------) + I co - 0x002003c2, // n0x1b16 c0x0000 (---------------) + I ed - 0x00208502, // n0x1b17 c0x0000 (---------------) + I go - 0x00203282, // n0x1b18 c0x0000 (---------------) + I ne - 0x00200282, // n0x1b19 c0x0000 (---------------) + I or - 0x0022edc3, // n0x1b1a c0x0000 (---------------) + I com - 0x00238284, // n0x1b1b c0x0000 (---------------) + I coop - 0x002349c3, // n0x1b1c c0x0000 (---------------) + I edu - 0x00275003, // n0x1b1d c0x0000 (---------------) + I gov - 0x00215b43, // n0x1b1e c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1b1f c0x0000 (---------------) + I net - 0x00229a83, // n0x1b20 c0x0000 (---------------) + I org - 0x000f5248, // n0x1b21 c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x1b22 c0x0000 (---------------) + I com - 0x002349c3, // n0x1b23 c0x0000 (---------------) + I edu - 0x00275003, // n0x1b24 c0x0000 (---------------) + I gov - 0x00215b43, // n0x1b25 c0x0000 (---------------) + I mil - 0x0027ca84, // n0x1b26 c0x0000 (---------------) + I name - 0x0021d8c3, // n0x1b27 c0x0000 (---------------) + I net - 0x00229a83, // n0x1b28 c0x0000 (---------------) + I org - 0x00215d43, // n0x1b29 c0x0000 (---------------) + I sch - 0x002b1c44, // n0x1b2a c0x0000 (---------------) + I asso - 0x000f5248, // n0x1b2b c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x1b2c c0x0000 (---------------) + I com - 0x0020e543, // n0x1b2d c0x0000 (---------------) + I nom - 0x00243984, // n0x1b2e c0x0000 (---------------) + I arts - 0x000f5248, // n0x1b2f c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x1b30 c0x0000 (---------------) + I com - 0x00247a04, // n0x1b31 c0x0000 (---------------) + I firm - 0x0038a144, // n0x1b32 c0x0000 (---------------) + I info - 0x0020e543, // n0x1b33 c0x0000 (---------------) + I nom - 0x00202382, // n0x1b34 c0x0000 (---------------) + I nt - 0x00229a83, // n0x1b35 c0x0000 (---------------) + I org - 0x00226f03, // n0x1b36 c0x0000 (---------------) + I rec - 0x0038c985, // n0x1b37 c0x0000 (---------------) + I store - 0x00200142, // n0x1b38 c0x0000 (---------------) + I tm - 0x002f7083, // n0x1b39 c0x0000 (---------------) + I www - 0x00205882, // n0x1b3a c0x0000 (---------------) + I ac - 0x000f5248, // n0x1b3b c0x0000 (---------------) + blogspot - 0x00208182, // n0x1b3c c0x0000 (---------------) + I co - 0x002349c3, // n0x1b3d c0x0000 (---------------) + I edu - 0x00275003, // n0x1b3e c0x0000 (---------------) + I gov - 0x002020c2, // n0x1b3f c0x0000 (---------------) + I in - 0x00229a83, // n0x1b40 c0x0000 (---------------) + I org - 0x00205882, // n0x1b41 c0x0000 (---------------) + I ac - 0x003a3107, // n0x1b42 c0x0000 (---------------) + I adygeya - 0x002700c5, // n0x1b43 c0x0000 (---------------) + I altai - 0x00227844, // n0x1b44 c0x0000 (---------------) + I amur - 0x00377b46, // n0x1b45 c0x0000 (---------------) + I amursk - 0x00305d4b, // n0x1b46 c0x0000 (---------------) + I arkhangelsk - 0x002533c9, // n0x1b47 c0x0000 (---------------) + I astrakhan - 0x00393606, // n0x1b48 c0x0000 (---------------) + I baikal - 0x00321409, // n0x1b49 c0x0000 (---------------) + I bashkiria - 0x002b2848, // n0x1b4a c0x0000 (---------------) + I belgorod - 0x00204043, // n0x1b4b c0x0000 (---------------) + I bir - 0x000f5248, // n0x1b4c c0x0000 (---------------) + blogspot - 0x00223e07, // n0x1b4d c0x0000 (---------------) + I bryansk - 0x002ff348, // n0x1b4e c0x0000 (---------------) + I buryatia - 0x00226843, // n0x1b4f c0x0000 (---------------) + I cbg - 0x0025e404, // n0x1b50 c0x0000 (---------------) + I chel - 0x00265a4b, // n0x1b51 c0x0000 (---------------) + I chelyabinsk - 0x002a6585, // n0x1b52 c0x0000 (---------------) + I chita - 0x002b7388, // n0x1b53 c0x0000 (---------------) + I chukotka - 0x00333c89, // n0x1b54 c0x0000 (---------------) + I chuvashia - 0x00255883, // n0x1b55 c0x0000 (---------------) + I cmw - 0x0022edc3, // n0x1b56 c0x0000 (---------------) + I com - 0x00321848, // n0x1b57 c0x0000 (---------------) + I dagestan - 0x002e4187, // n0x1b58 c0x0000 (---------------) + I dudinka - 0x00363886, // n0x1b59 c0x0000 (---------------) + I e-burg - 0x002349c3, // n0x1b5a c0x0000 (---------------) + I edu - 0x00382647, // n0x1b5b c0x0000 (---------------) + I fareast - 0x00275003, // n0x1b5c c0x0000 (---------------) + I gov - 0x003318c6, // n0x1b5d c0x0000 (---------------) + I grozny - 0x0026f683, // n0x1b5e c0x0000 (---------------) + I int - 0x0022b3c7, // n0x1b5f c0x0000 (---------------) + I irkutsk - 0x00305647, // n0x1b60 c0x0000 (---------------) + I ivanovo - 0x00383b47, // n0x1b61 c0x0000 (---------------) + I izhevsk - 0x002e7105, // n0x1b62 c0x0000 (---------------) + I jamal - 0x00206703, // n0x1b63 c0x0000 (---------------) + I jar - 0x0020e7cb, // n0x1b64 c0x0000 (---------------) + I joshkar-ola - 0x00324a48, // n0x1b65 c0x0000 (---------------) + I k-uralsk - 0x0022a608, // n0x1b66 c0x0000 (---------------) + I kalmykia - 0x00394486, // n0x1b67 c0x0000 (---------------) + I kaluga - 0x003229c9, // n0x1b68 c0x0000 (---------------) + I kamchatka - 0x00374707, // n0x1b69 c0x0000 (---------------) + I karelia - 0x002f0ec5, // n0x1b6a c0x0000 (---------------) + I kazan - 0x002a6c04, // n0x1b6b c0x0000 (---------------) + I kchr - 0x002c3bc8, // n0x1b6c c0x0000 (---------------) + I kemerovo - 0x00325b0a, // n0x1b6d c0x0000 (---------------) + I khabarovsk - 0x00325d49, // n0x1b6e c0x0000 (---------------) + I khakassia - 0x0023cc43, // n0x1b6f c0x0000 (---------------) + I khv - 0x00276145, // n0x1b70 c0x0000 (---------------) + I kirov - 0x0026b543, // n0x1b71 c0x0000 (---------------) + I kms - 0x0029b106, // n0x1b72 c0x0000 (---------------) + I koenig - 0x002e25c4, // n0x1b73 c0x0000 (---------------) + I komi - 0x002f5b48, // n0x1b74 c0x0000 (---------------) + I kostroma - 0x0038de0b, // n0x1b75 c0x0000 (---------------) + I krasnoyarsk - 0x003343c5, // n0x1b76 c0x0000 (---------------) + I kuban - 0x002b25c6, // n0x1b77 c0x0000 (---------------) + I kurgan - 0x002b3f05, // n0x1b78 c0x0000 (---------------) + I kursk - 0x002b46c8, // n0x1b79 c0x0000 (---------------) + I kustanai - 0x002b5ac7, // n0x1b7a c0x0000 (---------------) + I kuzbass - 0x0020e207, // n0x1b7b c0x0000 (---------------) + I lipetsk - 0x0033dbc7, // n0x1b7c c0x0000 (---------------) + I magadan - 0x002c3fc8, // n0x1b7d c0x0000 (---------------) + I magnitka - 0x00219884, // n0x1b7e c0x0000 (---------------) + I mari - 0x0023a707, // n0x1b7f c0x0000 (---------------) + I mari-el - 0x00273886, // n0x1b80 c0x0000 (---------------) + I marine - 0x00215b43, // n0x1b81 c0x0000 (---------------) + I mil - 0x002c2588, // n0x1b82 c0x0000 (---------------) + I mordovia - 0x0024b7c3, // n0x1b83 c0x0000 (---------------) + I msk - 0x002ca948, // n0x1b84 c0x0000 (---------------) + I murmansk - 0x002ced45, // n0x1b85 c0x0000 (---------------) + I mytis - 0x00200988, // n0x1b86 c0x0000 (---------------) + I nakhodka - 0x00234bc7, // n0x1b87 c0x0000 (---------------) + I nalchik - 0x0021d8c3, // n0x1b88 c0x0000 (---------------) + I net - 0x0030a903, // n0x1b89 c0x0000 (---------------) + I nkz - 0x0039ee04, // n0x1b8a c0x0000 (---------------) + I nnov - 0x00371547, // n0x1b8b c0x0000 (---------------) + I norilsk - 0x002062c3, // n0x1b8c c0x0000 (---------------) + I nov - 0x0030570b, // n0x1b8d c0x0000 (---------------) + I novosibirsk - 0x00215403, // n0x1b8e c0x0000 (---------------) + I nsk - 0x0024b784, // n0x1b8f c0x0000 (---------------) + I omsk - 0x0038ca08, // n0x1b90 c0x0000 (---------------) + I orenburg - 0x00229a83, // n0x1b91 c0x0000 (---------------) + I org - 0x002d2805, // n0x1b92 c0x0000 (---------------) + I oryol - 0x0028de85, // n0x1b93 c0x0000 (---------------) + I oskol - 0x002a11c6, // n0x1b94 c0x0000 (---------------) + I palana - 0x00209a05, // n0x1b95 c0x0000 (---------------) + I penza - 0x002cf104, // n0x1b96 c0x0000 (---------------) + I perm - 0x002099c2, // n0x1b97 c0x0000 (---------------) + I pp - 0x002dee43, // n0x1b98 c0x0000 (---------------) + I ptz - 0x0036774a, // n0x1b99 c0x0000 (---------------) + I pyatigorsk - 0x0030b843, // n0x1b9a c0x0000 (---------------) + I rnd - 0x002a7f09, // n0x1b9b c0x0000 (---------------) + I rubtsovsk - 0x0023a406, // n0x1b9c c0x0000 (---------------) + I ryazan - 0x00218a08, // n0x1b9d c0x0000 (---------------) + I sakhalin - 0x00284706, // n0x1b9e c0x0000 (---------------) + I samara - 0x00220b87, // n0x1b9f c0x0000 (---------------) + I saratov - 0x002c1588, // n0x1ba0 c0x0000 (---------------) + I simbirsk - 0x002d5c88, // n0x1ba1 c0x0000 (---------------) + I smolensk - 0x002d1083, // n0x1ba2 c0x0000 (---------------) + I snz - 0x00263883, // n0x1ba3 c0x0000 (---------------) + I spb - 0x00220f49, // n0x1ba4 c0x0000 (---------------) + I stavropol - 0x00283a03, // n0x1ba5 c0x0000 (---------------) + I stv - 0x00340446, // n0x1ba6 c0x0000 (---------------) + I surgut - 0x0026fd46, // n0x1ba7 c0x0000 (---------------) + I syzran - 0x00314d86, // n0x1ba8 c0x0000 (---------------) + I tambov - 0x0036a389, // n0x1ba9 c0x0000 (---------------) + I tatarstan - 0x002f5084, // n0x1baa c0x0000 (---------------) + I test - 0x00210443, // n0x1bab c0x0000 (---------------) + I tom - 0x00324945, // n0x1bac c0x0000 (---------------) + I tomsk - 0x002eba09, // n0x1bad c0x0000 (---------------) + I tsaritsyn - 0x0020e303, // n0x1bae c0x0000 (---------------) + I tsk - 0x00357704, // n0x1baf c0x0000 (---------------) + I tula - 0x002e85c4, // n0x1bb0 c0x0000 (---------------) + I tuva - 0x00206fc4, // n0x1bb1 c0x0000 (---------------) + I tver - 0x00357246, // n0x1bb2 c0x0000 (---------------) + I tyumen - 0x00214103, // n0x1bb3 c0x0000 (---------------) + I udm - 0x00214108, // n0x1bb4 c0x0000 (---------------) + I udmurtia - 0x00253008, // n0x1bb5 c0x0000 (---------------) + I ulan-ude - 0x00356106, // n0x1bb6 c0x0000 (---------------) + I vdonsk - 0x002f0ccb, // n0x1bb7 c0x0000 (---------------) + I vladikavkaz - 0x002f1008, // n0x1bb8 c0x0000 (---------------) + I vladimir - 0x002f120b, // n0x1bb9 c0x0000 (---------------) + I vladivostok - 0x002f1849, // n0x1bba c0x0000 (---------------) + I volgograd - 0x002f2587, // n0x1bbb c0x0000 (---------------) + I vologda - 0x002f3348, // n0x1bbc c0x0000 (---------------) + I voronezh - 0x002f46c3, // n0x1bbd c0x0000 (---------------) + I vrn - 0x00394386, // n0x1bbe c0x0000 (---------------) + I vyatka - 0x00394787, // n0x1bbf c0x0000 (---------------) + I yakutia - 0x0028f985, // n0x1bc0 c0x0000 (---------------) + I yamal - 0x00343309, // n0x1bc1 c0x0000 (---------------) + I yaroslavl - 0x0030270d, // n0x1bc2 c0x0000 (---------------) + I yekaterinburg - 0x00218851, // n0x1bc3 c0x0000 (---------------) + I yuzhno-sakhalinsk - 0x0022a045, // n0x1bc4 c0x0000 (---------------) + I zgrad - 0x00205882, // n0x1bc5 c0x0000 (---------------) + I ac - 0x00208182, // n0x1bc6 c0x0000 (---------------) + I co - 0x0022edc3, // n0x1bc7 c0x0000 (---------------) + I com - 0x002349c3, // n0x1bc8 c0x0000 (---------------) + I edu - 0x002fa744, // n0x1bc9 c0x0000 (---------------) + I gouv - 0x00275003, // n0x1bca c0x0000 (---------------) + I gov - 0x0026f683, // n0x1bcb c0x0000 (---------------) + I int - 0x00215b43, // n0x1bcc c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1bcd c0x0000 (---------------) + I net - 0x0022edc3, // n0x1bce c0x0000 (---------------) + I com - 0x002349c3, // n0x1bcf c0x0000 (---------------) + I edu - 0x00275003, // n0x1bd0 c0x0000 (---------------) + I gov - 0x00211c43, // n0x1bd1 c0x0000 (---------------) + I med - 0x0021d8c3, // n0x1bd2 c0x0000 (---------------) + I net - 0x00229a83, // n0x1bd3 c0x0000 (---------------) + I org - 0x00287e83, // n0x1bd4 c0x0000 (---------------) + I pub - 0x00215d43, // n0x1bd5 c0x0000 (---------------) + I sch - 0x0022edc3, // n0x1bd6 c0x0000 (---------------) + I com - 0x002349c3, // n0x1bd7 c0x0000 (---------------) + I edu - 0x00275003, // n0x1bd8 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x1bd9 c0x0000 (---------------) + I net - 0x00229a83, // n0x1bda c0x0000 (---------------) + I org - 0x0022edc3, // n0x1bdb c0x0000 (---------------) + I com - 0x002349c3, // n0x1bdc c0x0000 (---------------) + I edu - 0x00275003, // n0x1bdd c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x1bde c0x0000 (---------------) + I net - 0x00229a83, // n0x1bdf c0x0000 (---------------) + I org - 0x0022edc3, // n0x1be0 c0x0000 (---------------) + I com - 0x002349c3, // n0x1be1 c0x0000 (---------------) + I edu - 0x00275003, // n0x1be2 c0x0000 (---------------) + I gov - 0x0038a144, // n0x1be3 c0x0000 (---------------) + I info - 0x00211c43, // n0x1be4 c0x0000 (---------------) + I med - 0x0021d8c3, // n0x1be5 c0x0000 (---------------) + I net - 0x00229a83, // n0x1be6 c0x0000 (---------------) + I org - 0x00206fc2, // n0x1be7 c0x0000 (---------------) + I tv - 0x00200101, // n0x1be8 c0x0000 (---------------) + I a - 0x00205882, // n0x1be9 c0x0000 (---------------) + I ac - 0x00200001, // n0x1bea c0x0000 (---------------) + I b - 0x00312842, // n0x1beb c0x0000 (---------------) + I bd - 0x000f5248, // n0x1bec c0x0000 (---------------) + blogspot - 0x0021b5c5, // n0x1bed c0x0000 (---------------) + I brand - 0x00200301, // n0x1bee c0x0000 (---------------) + I c - 0x0002edc3, // n0x1bef c0x0000 (---------------) + com - 0x00200401, // n0x1bf0 c0x0000 (---------------) + I d - 0x00200081, // n0x1bf1 c0x0000 (---------------) + I e - 0x00200381, // n0x1bf2 c0x0000 (---------------) + I f - 0x00325a42, // n0x1bf3 c0x0000 (---------------) + I fh - 0x00325a44, // n0x1bf4 c0x0000 (---------------) + I fhsk - 0x003603c3, // n0x1bf5 c0x0000 (---------------) + I fhv - 0x002006c1, // n0x1bf6 c0x0000 (---------------) + I g - 0x00200a41, // n0x1bf7 c0x0000 (---------------) + I h - 0x00200041, // n0x1bf8 c0x0000 (---------------) + I i - 0x00200a01, // n0x1bf9 c0x0000 (---------------) + I k - 0x002a09c7, // n0x1bfa c0x0000 (---------------) + I komforb - 0x002a44cf, // n0x1bfb c0x0000 (---------------) + I kommunalforbund - 0x002b4006, // n0x1bfc c0x0000 (---------------) + I komvux - 0x00200201, // n0x1bfd c0x0000 (---------------) + I l - 0x00262106, // n0x1bfe c0x0000 (---------------) + I lanbib - 0x00200181, // n0x1bff c0x0000 (---------------) + I m - 0x002005c1, // n0x1c00 c0x0000 (---------------) + I n - 0x0030fd8e, // n0x1c01 c0x0000 (---------------) + I naturbruksgymn - 0x00200281, // n0x1c02 c0x0000 (---------------) + I o - 0x00229a83, // n0x1c03 c0x0000 (---------------) + I org - 0x00200c41, // n0x1c04 c0x0000 (---------------) + I p - 0x0037e605, // n0x1c05 c0x0000 (---------------) + I parti - 0x002099c2, // n0x1c06 c0x0000 (---------------) + I pp - 0x00240d05, // n0x1c07 c0x0000 (---------------) + I press - 0x002002c1, // n0x1c08 c0x0000 (---------------) + I r - 0x00201a41, // n0x1c09 c0x0000 (---------------) + I s - 0x00200141, // n0x1c0a c0x0000 (---------------) + I t - 0x00200142, // n0x1c0b c0x0000 (---------------) + I tm - 0x002008c1, // n0x1c0c c0x0000 (---------------) + I u - 0x002010c1, // n0x1c0d c0x0000 (---------------) + I w - 0x0020d041, // n0x1c0e c0x0000 (---------------) + I x - 0x00201341, // n0x1c0f c0x0000 (---------------) + I y - 0x00202881, // n0x1c10 c0x0000 (---------------) + I z - 0x000f5248, // n0x1c11 c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x1c12 c0x0000 (---------------) + I com - 0x002349c3, // n0x1c13 c0x0000 (---------------) + I edu - 0x00275003, // n0x1c14 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x1c15 c0x0000 (---------------) + I net - 0x00229a83, // n0x1c16 c0x0000 (---------------) + I org - 0x0021ffc3, // n0x1c17 c0x0000 (---------------) + I per - 0x0022edc3, // n0x1c18 c0x0000 (---------------) + I com - 0x00275003, // n0x1c19 c0x0000 (---------------) + I gov - 0x00215b43, // n0x1c1a c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1c1b c0x0000 (---------------) + I net - 0x00229a83, // n0x1c1c c0x0000 (---------------) + I org - 0x014d3788, // n0x1c1d c0x0005 (---------------)* o platform - 0x000f5248, // n0x1c1e c0x0000 (---------------) + blogspot - 0x000f5248, // n0x1c1f c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x1c20 c0x0000 (---------------) + I com - 0x002349c3, // n0x1c21 c0x0000 (---------------) + I edu - 0x00275003, // n0x1c22 c0x0000 (---------------) + I gov - 0x0021d8c3, // n0x1c23 c0x0000 (---------------) + I net - 0x00229a83, // n0x1c24 c0x0000 (---------------) + I org - 0x002011c3, // n0x1c25 c0x0000 (---------------) + I art - 0x000f5248, // n0x1c26 c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x1c27 c0x0000 (---------------) + I com - 0x002349c3, // n0x1c28 c0x0000 (---------------) + I edu - 0x002fa744, // n0x1c29 c0x0000 (---------------) + I gouv - 0x00229a83, // n0x1c2a c0x0000 (---------------) + I org - 0x003372c5, // n0x1c2b c0x0000 (---------------) + I perso - 0x00281a04, // n0x1c2c c0x0000 (---------------) + I univ - 0x0022edc3, // n0x1c2d c0x0000 (---------------) + I com - 0x0021d8c3, // n0x1c2e c0x0000 (---------------) + I net - 0x00229a83, // n0x1c2f c0x0000 (---------------) + I org - 0x00208182, // n0x1c30 c0x0000 (---------------) + I co - 0x0022edc3, // n0x1c31 c0x0000 (---------------) + I com - 0x00232549, // n0x1c32 c0x0000 (---------------) + I consulado - 0x002349c3, // n0x1c33 c0x0000 (---------------) + I edu - 0x002373c9, // n0x1c34 c0x0000 (---------------) + I embaixada - 0x00275003, // n0x1c35 c0x0000 (---------------) + I gov - 0x00215b43, // n0x1c36 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1c37 c0x0000 (---------------) + I net - 0x00229a83, // n0x1c38 c0x0000 (---------------) + I org - 0x002db048, // n0x1c39 c0x0000 (---------------) + I principe - 0x00215087, // n0x1c3a c0x0000 (---------------) + I saotome - 0x0038c985, // n0x1c3b c0x0000 (---------------) + I store - 0x003a3107, // n0x1c3c c0x0000 (---------------) + I adygeya - 0x00305d4b, // n0x1c3d c0x0000 (---------------) + I arkhangelsk - 0x00205648, // n0x1c3e c0x0000 (---------------) + I balashov - 0x00321409, // n0x1c3f c0x0000 (---------------) + I bashkiria - 0x00223e07, // n0x1c40 c0x0000 (---------------) + I bryansk - 0x00321848, // n0x1c41 c0x0000 (---------------) + I dagestan - 0x003318c6, // n0x1c42 c0x0000 (---------------) + I grozny - 0x00305647, // n0x1c43 c0x0000 (---------------) + I ivanovo - 0x0022a608, // n0x1c44 c0x0000 (---------------) + I kalmykia - 0x00394486, // n0x1c45 c0x0000 (---------------) + I kaluga - 0x00374707, // n0x1c46 c0x0000 (---------------) + I karelia - 0x00325d49, // n0x1c47 c0x0000 (---------------) + I khakassia - 0x00383cc9, // n0x1c48 c0x0000 (---------------) + I krasnodar - 0x002b25c6, // n0x1c49 c0x0000 (---------------) + I kurgan - 0x002b3245, // n0x1c4a c0x0000 (---------------) + I lenug - 0x002c2588, // n0x1c4b c0x0000 (---------------) + I mordovia - 0x0024b7c3, // n0x1c4c c0x0000 (---------------) + I msk - 0x002ca948, // n0x1c4d c0x0000 (---------------) + I murmansk - 0x00234bc7, // n0x1c4e c0x0000 (---------------) + I nalchik - 0x002062c3, // n0x1c4f c0x0000 (---------------) + I nov - 0x00321d87, // n0x1c50 c0x0000 (---------------) + I obninsk - 0x00209a05, // n0x1c51 c0x0000 (---------------) + I penza - 0x002d7548, // n0x1c52 c0x0000 (---------------) + I pokrovsk - 0x0026d045, // n0x1c53 c0x0000 (---------------) + I sochi - 0x00263883, // n0x1c54 c0x0000 (---------------) + I spb - 0x0034ec49, // n0x1c55 c0x0000 (---------------) + I togliatti - 0x002a0847, // n0x1c56 c0x0000 (---------------) + I troitsk - 0x00357704, // n0x1c57 c0x0000 (---------------) + I tula - 0x002e85c4, // n0x1c58 c0x0000 (---------------) + I tuva - 0x002f0ccb, // n0x1c59 c0x0000 (---------------) + I vladikavkaz - 0x002f1008, // n0x1c5a c0x0000 (---------------) + I vladimir - 0x002f2587, // n0x1c5b c0x0000 (---------------) + I vologda - 0x0022edc3, // n0x1c5c c0x0000 (---------------) + I com - 0x002349c3, // n0x1c5d c0x0000 (---------------) + I edu - 0x00209f03, // n0x1c5e c0x0000 (---------------) + I gob - 0x00229a83, // n0x1c5f c0x0000 (---------------) + I org - 0x0023e143, // n0x1c60 c0x0000 (---------------) + I red - 0x00275003, // n0x1c61 c0x0000 (---------------) + I gov - 0x0022edc3, // n0x1c62 c0x0000 (---------------) + I com - 0x002349c3, // n0x1c63 c0x0000 (---------------) + I edu - 0x00275003, // n0x1c64 c0x0000 (---------------) + I gov - 0x00215b43, // n0x1c65 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1c66 c0x0000 (---------------) + I net - 0x00229a83, // n0x1c67 c0x0000 (---------------) + I org - 0x00205882, // n0x1c68 c0x0000 (---------------) + I ac - 0x00208182, // n0x1c69 c0x0000 (---------------) + I co - 0x00229a83, // n0x1c6a c0x0000 (---------------) + I org - 0x000f5248, // n0x1c6b c0x0000 (---------------) + blogspot - 0x00205882, // n0x1c6c c0x0000 (---------------) + I ac - 0x00208182, // n0x1c6d c0x0000 (---------------) + I co - 0x00208502, // n0x1c6e c0x0000 (---------------) + I go - 0x002020c2, // n0x1c6f c0x0000 (---------------) + I in - 0x0020e5c2, // n0x1c70 c0x0000 (---------------) + I mi - 0x0021d8c3, // n0x1c71 c0x0000 (---------------) + I net - 0x00200282, // n0x1c72 c0x0000 (---------------) + I or - 0x00205882, // n0x1c73 c0x0000 (---------------) + I ac - 0x0030a143, // n0x1c74 c0x0000 (---------------) + I biz - 0x00208182, // n0x1c75 c0x0000 (---------------) + I co - 0x0022edc3, // n0x1c76 c0x0000 (---------------) + I com - 0x002349c3, // n0x1c77 c0x0000 (---------------) + I edu - 0x00208502, // n0x1c78 c0x0000 (---------------) + I go - 0x00275003, // n0x1c79 c0x0000 (---------------) + I gov - 0x0026f683, // n0x1c7a c0x0000 (---------------) + I int - 0x00215b43, // n0x1c7b c0x0000 (---------------) + I mil - 0x0027ca84, // n0x1c7c c0x0000 (---------------) + I name - 0x0021d8c3, // n0x1c7d c0x0000 (---------------) + I net - 0x00217183, // n0x1c7e c0x0000 (---------------) + I nic - 0x00229a83, // n0x1c7f c0x0000 (---------------) + I org - 0x002f5084, // n0x1c80 c0x0000 (---------------) + I test - 0x0021fa83, // n0x1c81 c0x0000 (---------------) + I web - 0x00275003, // n0x1c82 c0x0000 (---------------) + I gov - 0x00208182, // n0x1c83 c0x0000 (---------------) + I co - 0x0022edc3, // n0x1c84 c0x0000 (---------------) + I com - 0x002349c3, // n0x1c85 c0x0000 (---------------) + I edu - 0x00275003, // n0x1c86 c0x0000 (---------------) + I gov - 0x00215b43, // n0x1c87 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1c88 c0x0000 (---------------) + I net - 0x0020e543, // n0x1c89 c0x0000 (---------------) + I nom - 0x00229a83, // n0x1c8a c0x0000 (---------------) + I org - 0x0030a6c7, // n0x1c8b c0x0000 (---------------) + I agrinet - 0x0022edc3, // n0x1c8c c0x0000 (---------------) + I com - 0x002215c7, // n0x1c8d c0x0000 (---------------) + I defense - 0x00358006, // n0x1c8e c0x0000 (---------------) + I edunet - 0x002153c3, // n0x1c8f c0x0000 (---------------) + I ens - 0x0020e003, // n0x1c90 c0x0000 (---------------) + I fin - 0x00275003, // n0x1c91 c0x0000 (---------------) + I gov - 0x00202603, // n0x1c92 c0x0000 (---------------) + I ind - 0x0038a144, // n0x1c93 c0x0000 (---------------) + I info - 0x0035c284, // n0x1c94 c0x0000 (---------------) + I intl - 0x002d2d06, // n0x1c95 c0x0000 (---------------) + I mincom - 0x0025cec3, // n0x1c96 c0x0000 (---------------) + I nat - 0x0021d8c3, // n0x1c97 c0x0000 (---------------) + I net - 0x00229a83, // n0x1c98 c0x0000 (---------------) + I org - 0x003372c5, // n0x1c99 c0x0000 (---------------) + I perso - 0x00389984, // n0x1c9a c0x0000 (---------------) + I rnrt - 0x002a9743, // n0x1c9b c0x0000 (---------------) + I rns - 0x002096c3, // n0x1c9c c0x0000 (---------------) + I rnu - 0x002ba087, // n0x1c9d c0x0000 (---------------) + I tourism - 0x002ce685, // n0x1c9e c0x0000 (---------------) + I turen - 0x0022edc3, // n0x1c9f c0x0000 (---------------) + I com - 0x002349c3, // n0x1ca0 c0x0000 (---------------) + I edu - 0x00275003, // n0x1ca1 c0x0000 (---------------) + I gov - 0x00215b43, // n0x1ca2 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1ca3 c0x0000 (---------------) + I net - 0x00229a83, // n0x1ca4 c0x0000 (---------------) + I org - 0x00200602, // n0x1ca5 c0x0000 (---------------) + I av - 0x002c9743, // n0x1ca6 c0x0000 (---------------) + I bbs - 0x002b2843, // n0x1ca7 c0x0000 (---------------) + I bel - 0x0030a143, // n0x1ca8 c0x0000 (---------------) + I biz - 0x5162edc3, // n0x1ca9 c0x0145 (n0x1cba-n0x1cbb) + I com - 0x00204d42, // n0x1caa c0x0000 (---------------) + I dr - 0x002349c3, // n0x1cab c0x0000 (---------------) + I edu - 0x00206243, // n0x1cac c0x0000 (---------------) + I gen - 0x00275003, // n0x1cad c0x0000 (---------------) + I gov - 0x0038a144, // n0x1cae c0x0000 (---------------) + I info - 0x00324c03, // n0x1caf c0x0000 (---------------) + I k12 - 0x00308603, // n0x1cb0 c0x0000 (---------------) + I kep - 0x00215b43, // n0x1cb1 c0x0000 (---------------) + I mil - 0x0027ca84, // n0x1cb2 c0x0000 (---------------) + I name - 0x51a03402, // n0x1cb3 c0x0146 (n0x1cbb-n0x1cbc) + I nc - 0x0021d8c3, // n0x1cb4 c0x0000 (---------------) + I net - 0x00229a83, // n0x1cb5 c0x0000 (---------------) + I org - 0x002210c3, // n0x1cb6 c0x0000 (---------------) + I pol - 0x0022fb43, // n0x1cb7 c0x0000 (---------------) + I tel - 0x00206fc2, // n0x1cb8 c0x0000 (---------------) + I tv - 0x0021fa83, // n0x1cb9 c0x0000 (---------------) + I web - 0x000f5248, // n0x1cba c0x0000 (---------------) + blogspot - 0x00275003, // n0x1cbb c0x0000 (---------------) + I gov - 0x002bcb84, // n0x1cbc c0x0000 (---------------) + I aero - 0x0030a143, // n0x1cbd c0x0000 (---------------) + I biz - 0x00208182, // n0x1cbe c0x0000 (---------------) + I co - 0x0022edc3, // n0x1cbf c0x0000 (---------------) + I com - 0x00238284, // n0x1cc0 c0x0000 (---------------) + I coop - 0x002349c3, // n0x1cc1 c0x0000 (---------------) + I edu - 0x00275003, // n0x1cc2 c0x0000 (---------------) + I gov - 0x0038a144, // n0x1cc3 c0x0000 (---------------) + I info - 0x0026f683, // n0x1cc4 c0x0000 (---------------) + I int - 0x002cd804, // n0x1cc5 c0x0000 (---------------) + I jobs - 0x00207804, // n0x1cc6 c0x0000 (---------------) + I mobi - 0x002cc746, // n0x1cc7 c0x0000 (---------------) + I museum - 0x0027ca84, // n0x1cc8 c0x0000 (---------------) + I name - 0x0021d8c3, // n0x1cc9 c0x0000 (---------------) + I net - 0x00229a83, // n0x1cca c0x0000 (---------------) + I org - 0x00220283, // n0x1ccb c0x0000 (---------------) + I pro - 0x00293486, // n0x1ccc c0x0000 (---------------) + I travel - 0x0004e18b, // n0x1ccd c0x0000 (---------------) + better-than - 0x00011a06, // n0x1cce c0x0000 (---------------) + dyndns - 0x0001f8ca, // n0x1ccf c0x0000 (---------------) + on-the-web - 0x000f478a, // n0x1cd0 c0x0000 (---------------) + worse-than - 0x000f5248, // n0x1cd1 c0x0000 (---------------) + blogspot - 0x00202504, // n0x1cd2 c0x0000 (---------------) + I club - 0x0022edc3, // n0x1cd3 c0x0000 (---------------) + I com - 0x0030a104, // n0x1cd4 c0x0000 (---------------) + I ebiz - 0x002349c3, // n0x1cd5 c0x0000 (---------------) + I edu - 0x0029f084, // n0x1cd6 c0x0000 (---------------) + I game - 0x00275003, // n0x1cd7 c0x0000 (---------------) + I gov - 0x00306f03, // n0x1cd8 c0x0000 (---------------) + I idv - 0x00215b43, // n0x1cd9 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1cda c0x0000 (---------------) + I net - 0x00229a83, // n0x1cdb c0x0000 (---------------) + I org - 0x0031f50b, // n0x1cdc c0x0000 (---------------) + I xn--czrw28b - 0x0038f90a, // n0x1cdd c0x0000 (---------------) + I xn--uc0atv - 0x003a20cc, // n0x1cde c0x0000 (---------------) + I xn--zf0ao64a - 0x00205882, // n0x1cdf c0x0000 (---------------) + I ac - 0x00208182, // n0x1ce0 c0x0000 (---------------) + I co - 0x00208502, // n0x1ce1 c0x0000 (---------------) + I go - 0x0022fac5, // n0x1ce2 c0x0000 (---------------) + I hotel - 0x0038a144, // n0x1ce3 c0x0000 (---------------) + I info - 0x00202302, // n0x1ce4 c0x0000 (---------------) + I me - 0x00215b43, // n0x1ce5 c0x0000 (---------------) + I mil - 0x00207804, // n0x1ce6 c0x0000 (---------------) + I mobi - 0x00203282, // n0x1ce7 c0x0000 (---------------) + I ne - 0x00200282, // n0x1ce8 c0x0000 (---------------) + I or - 0x002024c2, // n0x1ce9 c0x0000 (---------------) + I sc - 0x00206fc2, // n0x1cea c0x0000 (---------------) + I tv - 0x0010a143, // n0x1ceb c0x0000 (---------------) + biz - 0x002a3949, // n0x1cec c0x0000 (---------------) + I cherkassy - 0x0026fbc8, // n0x1ced c0x0000 (---------------) + I cherkasy - 0x00274e89, // n0x1cee c0x0000 (---------------) + I chernigov - 0x0036b189, // n0x1cef c0x0000 (---------------) + I chernihiv - 0x00296fca, // n0x1cf0 c0x0000 (---------------) + I chernivtsi - 0x0036658a, // n0x1cf1 c0x0000 (---------------) + I chernovtsy - 0x00208e82, // n0x1cf2 c0x0000 (---------------) + I ck - 0x0021a142, // n0x1cf3 c0x0000 (---------------) + I cn - 0x00008182, // n0x1cf4 c0x0000 (---------------) + co - 0x0022edc3, // n0x1cf5 c0x0000 (---------------) + I com - 0x00211e82, // n0x1cf6 c0x0000 (---------------) + I cr - 0x0023f186, // n0x1cf7 c0x0000 (---------------) + I crimea - 0x0034f802, // n0x1cf8 c0x0000 (---------------) + I cv - 0x002083c2, // n0x1cf9 c0x0000 (---------------) + I dn - 0x00377d8e, // n0x1cfa c0x0000 (---------------) + I dnepropetrovsk - 0x0026b20e, // n0x1cfb c0x0000 (---------------) + I dnipropetrovsk - 0x00274d07, // n0x1cfc c0x0000 (---------------) + I dominic - 0x00310607, // n0x1cfd c0x0000 (---------------) + I donetsk - 0x002da802, // n0x1cfe c0x0000 (---------------) + I dp - 0x002349c3, // n0x1cff c0x0000 (---------------) + I edu - 0x00275003, // n0x1d00 c0x0000 (---------------) + I gov - 0x00200f02, // n0x1d01 c0x0000 (---------------) + I if - 0x002020c2, // n0x1d02 c0x0000 (---------------) + I in - 0x0023890f, // n0x1d03 c0x0000 (---------------) + I ivano-frankivsk - 0x00200a02, // n0x1d04 c0x0000 (---------------) + I kh - 0x00338dc7, // n0x1d05 c0x0000 (---------------) + I kharkiv - 0x00376907, // n0x1d06 c0x0000 (---------------) + I kharkov - 0x0022ef87, // n0x1d07 c0x0000 (---------------) + I kherson - 0x00238c8c, // n0x1d08 c0x0000 (---------------) + I khmelnitskiy - 0x0023ac0c, // n0x1d09 c0x0000 (---------------) + I khmelnytskyi - 0x00203144, // n0x1d0a c0x0000 (---------------) + I kiev - 0x0027614a, // n0x1d0b c0x0000 (---------------) + I kirovograd - 0x0022ccc2, // n0x1d0c c0x0000 (---------------) + I km - 0x002076c2, // n0x1d0d c0x0000 (---------------) + I kr - 0x002ab884, // n0x1d0e c0x0000 (---------------) + I krym - 0x00229bc2, // n0x1d0f c0x0000 (---------------) + I ks - 0x002b6542, // n0x1d10 c0x0000 (---------------) + I kv - 0x0023ae44, // n0x1d11 c0x0000 (---------------) + I kyiv - 0x00217282, // n0x1d12 c0x0000 (---------------) + I lg - 0x00208bc2, // n0x1d13 c0x0000 (---------------) + I lt - 0x00394507, // n0x1d14 c0x0000 (---------------) + I lugansk - 0x00338cc5, // n0x1d15 c0x0000 (---------------) + I lutsk - 0x00207302, // n0x1d16 c0x0000 (---------------) + I lv - 0x00238884, // n0x1d17 c0x0000 (---------------) + I lviv - 0x00365542, // n0x1d18 c0x0000 (---------------) + I mk - 0x003054c8, // n0x1d19 c0x0000 (---------------) + I mykolaiv - 0x0021d8c3, // n0x1d1a c0x0000 (---------------) + I net - 0x0020aac8, // n0x1d1b c0x0000 (---------------) + I nikolaev - 0x00200a82, // n0x1d1c c0x0000 (---------------) + I od - 0x00236385, // n0x1d1d c0x0000 (---------------) + I odesa - 0x0036f106, // n0x1d1e c0x0000 (---------------) + I odessa - 0x00229a83, // n0x1d1f c0x0000 (---------------) + I org - 0x00206582, // n0x1d20 c0x0000 (---------------) + I pl - 0x002d7e07, // n0x1d21 c0x0000 (---------------) + I poltava - 0x000099c2, // n0x1d22 c0x0000 (---------------) + pp - 0x002db285, // n0x1d23 c0x0000 (---------------) + I rivne - 0x00200cc5, // n0x1d24 c0x0000 (---------------) + I rovno - 0x00206a42, // n0x1d25 c0x0000 (---------------) + I rv - 0x00229a02, // n0x1d26 c0x0000 (---------------) + I sb - 0x00300bca, // n0x1d27 c0x0000 (---------------) + I sebastopol - 0x0024a08a, // n0x1d28 c0x0000 (---------------) + I sevastopol - 0x00215b02, // n0x1d29 c0x0000 (---------------) + I sm - 0x002f2c84, // n0x1d2a c0x0000 (---------------) + I sumy - 0x002012c2, // n0x1d2b c0x0000 (---------------) + I te - 0x00208fc8, // n0x1d2c c0x0000 (---------------) + I ternopil - 0x00211f02, // n0x1d2d c0x0000 (---------------) + I uz - 0x00294588, // n0x1d2e c0x0000 (---------------) + I uzhgorod - 0x002ebc47, // n0x1d2f c0x0000 (---------------) + I vinnica - 0x002ec4c9, // n0x1d30 c0x0000 (---------------) + I vinnytsia - 0x00200d42, // n0x1d31 c0x0000 (---------------) + I vn - 0x002f3105, // n0x1d32 c0x0000 (---------------) + I volyn - 0x00270085, // n0x1d33 c0x0000 (---------------) + I yalta - 0x002c010b, // n0x1d34 c0x0000 (---------------) + I zaporizhzhe - 0x002c0b4c, // n0x1d35 c0x0000 (---------------) + I zaporizhzhia - 0x0022b248, // n0x1d36 c0x0000 (---------------) + I zhitomir - 0x002f34c8, // n0x1d37 c0x0000 (---------------) + I zhytomyr - 0x00252242, // n0x1d38 c0x0000 (---------------) + I zp - 0x0020a3c2, // n0x1d39 c0x0000 (---------------) + I zt - 0x00205882, // n0x1d3a c0x0000 (---------------) + I ac - 0x000f5248, // n0x1d3b c0x0000 (---------------) + blogspot - 0x00208182, // n0x1d3c c0x0000 (---------------) + I co - 0x0022edc3, // n0x1d3d c0x0000 (---------------) + I com - 0x00208502, // n0x1d3e c0x0000 (---------------) + I go - 0x00203282, // n0x1d3f c0x0000 (---------------) + I ne - 0x00200282, // n0x1d40 c0x0000 (---------------) + I or - 0x00229a83, // n0x1d41 c0x0000 (---------------) + I org - 0x002024c2, // n0x1d42 c0x0000 (---------------) + I sc - 0x00205882, // n0x1d43 c0x0000 (---------------) + I ac - 0x53a08182, // n0x1d44 c0x014e (n0x1d4e-n0x1d4f) + I co - 0x53e75003, // n0x1d45 c0x014f (n0x1d4f-n0x1d50) + I gov - 0x00342703, // n0x1d46 c0x0000 (---------------) + I ltd - 0x00202302, // n0x1d47 c0x0000 (---------------) + I me - 0x0021d8c3, // n0x1d48 c0x0000 (---------------) + I net - 0x00207e83, // n0x1d49 c0x0000 (---------------) + I nhs - 0x00229a83, // n0x1d4a c0x0000 (---------------) + I org - 0x002d4b03, // n0x1d4b c0x0000 (---------------) + I plc - 0x002210c6, // n0x1d4c c0x0000 (---------------) + I police - 0x01615d43, // n0x1d4d c0x0005 (---------------)* o I sch - 0x000f5248, // n0x1d4e c0x0000 (---------------) + blogspot - 0x000069c7, // n0x1d4f c0x0000 (---------------) + service - 0x546009c2, // n0x1d50 c0x0151 (n0x1d8f-n0x1d92) + I ak - 0x54a001c2, // n0x1d51 c0x0152 (n0x1d92-n0x1d95) + I al - 0x54e011c2, // n0x1d52 c0x0153 (n0x1d95-n0x1d98) + I ar - 0x55202002, // n0x1d53 c0x0154 (n0x1d98-n0x1d9b) + I as - 0x55612502, // n0x1d54 c0x0155 (n0x1d9b-n0x1d9e) + I az - 0x55a00302, // n0x1d55 c0x0156 (n0x1d9e-n0x1da1) + I ca - 0x55e08182, // n0x1d56 c0x0157 (n0x1da1-n0x1da4) + I co - 0x5621e002, // n0x1d57 c0x0158 (n0x1da4-n0x1da7) + I ct - 0x5661d602, // n0x1d58 c0x0159 (n0x1da7-n0x1daa) + I dc - 0x56a00402, // n0x1d59 c0x015a (n0x1daa-n0x1dad) + I de - 0x0026b203, // n0x1d5a c0x0000 (---------------) + I dni - 0x00200383, // n0x1d5b c0x0000 (---------------) + I fed - 0x56e03802, // n0x1d5c c0x015b (n0x1dad-n0x1db0) + I fl - 0x572006c2, // n0x1d5d c0x015c (n0x1db0-n0x1db3) + I ga - 0x57605a82, // n0x1d5e c0x015d (n0x1db3-n0x1db6) + I gu - 0x57a02082, // n0x1d5f c0x015e (n0x1db6-n0x1db8) + I hi - 0x57e0e182, // n0x1d60 c0x015f (n0x1db8-n0x1dbb) + I ia - 0x58205d82, // n0x1d61 c0x0160 (n0x1dbb-n0x1dbe) + I id - 0x58602f82, // n0x1d62 c0x0161 (n0x1dbe-n0x1dc1) + I il - 0x58a020c2, // n0x1d63 c0x0162 (n0x1dc1-n0x1dc4) + I in - 0x000aa745, // n0x1d64 c0x0000 (---------------) + is-by - 0x00222783, // n0x1d65 c0x0000 (---------------) + I isa - 0x00283944, // n0x1d66 c0x0000 (---------------) + I kids - 0x58e29bc2, // n0x1d67 c0x0163 (n0x1dc4-n0x1dc7) + I ks - 0x5923ae42, // n0x1d68 c0x0164 (n0x1dc7-n0x1dca) + I ky - 0x59603842, // n0x1d69 c0x0165 (n0x1dca-n0x1dcd) + I la - 0x0007b84b, // n0x1d6a c0x0000 (---------------) + land-4-sale - 0x59a00182, // n0x1d6b c0x0166 (n0x1dcd-n0x1dd0) + I ma - 0x5a247ac2, // n0x1d6c c0x0168 (n0x1dd3-n0x1dd6) + I md - 0x5a602302, // n0x1d6d c0x0169 (n0x1dd6-n0x1dd9) + I me - 0x5aa0e5c2, // n0x1d6e c0x016a (n0x1dd9-n0x1ddc) + I mi - 0x5ae1d882, // n0x1d6f c0x016b (n0x1ddc-n0x1ddf) + I mn - 0x5b203ec2, // n0x1d70 c0x016c (n0x1ddf-n0x1de2) + I mo - 0x5b602482, // n0x1d71 c0x016d (n0x1de2-n0x1de5) + I ms - 0x5ba35702, // n0x1d72 c0x016e (n0x1de5-n0x1de8) + I mt - 0x5be03402, // n0x1d73 c0x016f (n0x1de8-n0x1deb) + I nc - 0x5c202642, // n0x1d74 c0x0170 (n0x1deb-n0x1ded) + I nd - 0x5c603282, // n0x1d75 c0x0171 (n0x1ded-n0x1df0) + I ne - 0x5ca07e82, // n0x1d76 c0x0172 (n0x1df0-n0x1df3) + I nh - 0x5ce01802, // n0x1d77 c0x0173 (n0x1df3-n0x1df6) + I nj - 0x5d22dc02, // n0x1d78 c0x0174 (n0x1df6-n0x1df9) + I nm - 0x0035d983, // n0x1d79 c0x0000 (---------------) + I nsn - 0x5d6021c2, // n0x1d7a c0x0175 (n0x1df9-n0x1dfc) + I nv - 0x5da18f82, // n0x1d7b c0x0176 (n0x1dfc-n0x1dff) + I ny - 0x5de059c2, // n0x1d7c c0x0177 (n0x1dff-n0x1e02) + I oh - 0x5e20bbc2, // n0x1d7d c0x0178 (n0x1e02-n0x1e05) + I ok - 0x5e600282, // n0x1d7e c0x0179 (n0x1e05-n0x1e08) + I or - 0x5ea0ec42, // n0x1d7f c0x017a (n0x1e08-n0x1e0b) + I pa - 0x5ee04382, // n0x1d80 c0x017b (n0x1e0b-n0x1e0e) + I pr - 0x5f201702, // n0x1d81 c0x017c (n0x1e0e-n0x1e11) + I ri - 0x5f6024c2, // n0x1d82 c0x017d (n0x1e11-n0x1e14) + I sc - 0x5fa56ec2, // n0x1d83 c0x017e (n0x1e14-n0x1e16) + I sd - 0x000e160c, // n0x1d84 c0x0000 (---------------) + stuff-4-sale - 0x5fe00942, // n0x1d85 c0x017f (n0x1e16-n0x1e19) + I tn - 0x6026bb42, // n0x1d86 c0x0180 (n0x1e19-n0x1e1c) + I tx - 0x60601f82, // n0x1d87 c0x0181 (n0x1e1c-n0x1e1f) + I ut - 0x60a000c2, // n0x1d88 c0x0182 (n0x1e1f-n0x1e22) + I va - 0x60e00642, // n0x1d89 c0x0183 (n0x1e22-n0x1e25) + I vi - 0x61255c42, // n0x1d8a c0x0184 (n0x1e25-n0x1e28) + I vt - 0x616010c2, // n0x1d8b c0x0185 (n0x1e28-n0x1e2b) + I wa - 0x61a02e42, // n0x1d8c c0x0186 (n0x1e2b-n0x1e2e) + I wi - 0x61e6e502, // n0x1d8d c0x0187 (n0x1e2e-n0x1e2f) + I wv - 0x6225d682, // n0x1d8e c0x0188 (n0x1e2f-n0x1e32) + I wy - 0x0021db82, // n0x1d8f c0x0000 (---------------) + I cc - 0x00324c03, // n0x1d90 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1d91 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1d92 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1d93 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1d94 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1d95 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1d96 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1d97 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1d98 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1d99 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1d9a c0x0000 (---------------) + I lib - 0x0021db82, // n0x1d9b c0x0000 (---------------) + I cc - 0x00324c03, // n0x1d9c c0x0000 (---------------) + I k12 - 0x00265503, // n0x1d9d c0x0000 (---------------) + I lib - 0x0021db82, // n0x1d9e c0x0000 (---------------) + I cc - 0x00324c03, // n0x1d9f c0x0000 (---------------) + I k12 - 0x00265503, // n0x1da0 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1da1 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1da2 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1da3 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1da4 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1da5 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1da6 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1da7 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1da8 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1da9 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1daa c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dab c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dac c0x0000 (---------------) + I lib - 0x0021db82, // n0x1dad c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dae c0x0000 (---------------) + I k12 - 0x00265503, // n0x1daf c0x0000 (---------------) + I lib - 0x0021db82, // n0x1db0 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1db1 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1db2 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1db3 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1db4 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1db5 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1db6 c0x0000 (---------------) + I cc - 0x00265503, // n0x1db7 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1db8 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1db9 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dba c0x0000 (---------------) + I lib - 0x0021db82, // n0x1dbb c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dbc c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dbd c0x0000 (---------------) + I lib - 0x0021db82, // n0x1dbe c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dbf c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dc0 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1dc1 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dc2 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dc3 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1dc4 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dc5 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dc6 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1dc7 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dc8 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dc9 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1dca c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dcb c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dcc c0x0000 (---------------) + I lib - 0x0021db82, // n0x1dcd c0x0000 (---------------) + I cc - 0x59f24c03, // n0x1dce c0x0167 (n0x1dd0-n0x1dd3) + I k12 - 0x00265503, // n0x1dcf c0x0000 (---------------) + I lib - 0x003120c4, // n0x1dd0 c0x0000 (---------------) + I chtr - 0x0026fac6, // n0x1dd1 c0x0000 (---------------) + I paroch - 0x002def03, // n0x1dd2 c0x0000 (---------------) + I pvt - 0x0021db82, // n0x1dd3 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dd4 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dd5 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1dd6 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dd7 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dd8 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1dd9 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dda c0x0000 (---------------) + I k12 - 0x00265503, // n0x1ddb c0x0000 (---------------) + I lib - 0x0021db82, // n0x1ddc c0x0000 (---------------) + I cc - 0x00324c03, // n0x1ddd c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dde c0x0000 (---------------) + I lib - 0x0021db82, // n0x1ddf c0x0000 (---------------) + I cc - 0x00324c03, // n0x1de0 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1de1 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1de2 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1de3 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1de4 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1de5 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1de6 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1de7 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1de8 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1de9 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dea c0x0000 (---------------) + I lib - 0x0021db82, // n0x1deb c0x0000 (---------------) + I cc - 0x00265503, // n0x1dec c0x0000 (---------------) + I lib - 0x0021db82, // n0x1ded c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dee c0x0000 (---------------) + I k12 - 0x00265503, // n0x1def c0x0000 (---------------) + I lib - 0x0021db82, // n0x1df0 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1df1 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1df2 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1df3 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1df4 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1df5 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1df6 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1df7 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1df8 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1df9 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dfa c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dfb c0x0000 (---------------) + I lib - 0x0021db82, // n0x1dfc c0x0000 (---------------) + I cc - 0x00324c03, // n0x1dfd c0x0000 (---------------) + I k12 - 0x00265503, // n0x1dfe c0x0000 (---------------) + I lib - 0x0021db82, // n0x1dff c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e00 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e01 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e02 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e03 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e04 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e05 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e06 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e07 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e08 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e09 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e0a c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e0b c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e0c c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e0d c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e0e c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e0f c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e10 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e11 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e12 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e13 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e14 c0x0000 (---------------) + I cc - 0x00265503, // n0x1e15 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e16 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e17 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e18 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e19 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e1a c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e1b c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e1c c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e1d c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e1e c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e1f c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e20 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e21 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e22 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e23 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e24 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e25 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e26 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e27 c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e28 c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e29 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e2a c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e2b c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e2c c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e2d c0x0000 (---------------) + I lib - 0x0021db82, // n0x1e2e c0x0000 (---------------) + I cc - 0x0021db82, // n0x1e2f c0x0000 (---------------) + I cc - 0x00324c03, // n0x1e30 c0x0000 (---------------) + I k12 - 0x00265503, // n0x1e31 c0x0000 (---------------) + I lib - 0x62a2edc3, // n0x1e32 c0x018a (n0x1e38-n0x1e39) + I com - 0x002349c3, // n0x1e33 c0x0000 (---------------) + I edu - 0x0024d643, // n0x1e34 c0x0000 (---------------) + I gub - 0x00215b43, // n0x1e35 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1e36 c0x0000 (---------------) + I net - 0x00229a83, // n0x1e37 c0x0000 (---------------) + I org - 0x000f5248, // n0x1e38 c0x0000 (---------------) + blogspot - 0x00208182, // n0x1e39 c0x0000 (---------------) + I co - 0x0022edc3, // n0x1e3a c0x0000 (---------------) + I com - 0x0021d8c3, // n0x1e3b c0x0000 (---------------) + I net - 0x00229a83, // n0x1e3c c0x0000 (---------------) + I org - 0x0022edc3, // n0x1e3d c0x0000 (---------------) + I com - 0x002349c3, // n0x1e3e c0x0000 (---------------) + I edu - 0x00275003, // n0x1e3f c0x0000 (---------------) + I gov - 0x00215b43, // n0x1e40 c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1e41 c0x0000 (---------------) + I net - 0x00229a83, // n0x1e42 c0x0000 (---------------) + I org - 0x00243984, // n0x1e43 c0x0000 (---------------) + I arts - 0x00208182, // n0x1e44 c0x0000 (---------------) + I co - 0x0022edc3, // n0x1e45 c0x0000 (---------------) + I com - 0x0022dec3, // n0x1e46 c0x0000 (---------------) + I e12 - 0x002349c3, // n0x1e47 c0x0000 (---------------) + I edu - 0x00247a04, // n0x1e48 c0x0000 (---------------) + I firm - 0x00209f03, // n0x1e49 c0x0000 (---------------) + I gob - 0x00275003, // n0x1e4a c0x0000 (---------------) + I gov - 0x0038a144, // n0x1e4b c0x0000 (---------------) + I info - 0x0026f683, // n0x1e4c c0x0000 (---------------) + I int - 0x00215b43, // n0x1e4d c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1e4e c0x0000 (---------------) + I net - 0x00229a83, // n0x1e4f c0x0000 (---------------) + I org - 0x00226f03, // n0x1e50 c0x0000 (---------------) + I rec - 0x0038c985, // n0x1e51 c0x0000 (---------------) + I store - 0x002a3c43, // n0x1e52 c0x0000 (---------------) + I tec - 0x0021fa83, // n0x1e53 c0x0000 (---------------) + I web - 0x00208182, // n0x1e54 c0x0000 (---------------) + I co - 0x0022edc3, // n0x1e55 c0x0000 (---------------) + I com - 0x00324c03, // n0x1e56 c0x0000 (---------------) + I k12 - 0x0021d8c3, // n0x1e57 c0x0000 (---------------) + I net - 0x00229a83, // n0x1e58 c0x0000 (---------------) + I org - 0x00205882, // n0x1e59 c0x0000 (---------------) + I ac - 0x0030a143, // n0x1e5a c0x0000 (---------------) + I biz - 0x000f5248, // n0x1e5b c0x0000 (---------------) + blogspot - 0x0022edc3, // n0x1e5c c0x0000 (---------------) + I com - 0x002349c3, // n0x1e5d c0x0000 (---------------) + I edu - 0x00275003, // n0x1e5e c0x0000 (---------------) + I gov - 0x002a51c6, // n0x1e5f c0x0000 (---------------) + I health - 0x0038a144, // n0x1e60 c0x0000 (---------------) + I info - 0x0026f683, // n0x1e61 c0x0000 (---------------) + I int - 0x0027ca84, // n0x1e62 c0x0000 (---------------) + I name - 0x0021d8c3, // n0x1e63 c0x0000 (---------------) + I net - 0x00229a83, // n0x1e64 c0x0000 (---------------) + I org - 0x00220283, // n0x1e65 c0x0000 (---------------) + I pro - 0x0022edc3, // n0x1e66 c0x0000 (---------------) + I com - 0x002349c3, // n0x1e67 c0x0000 (---------------) + I edu - 0x0021d8c3, // n0x1e68 c0x0000 (---------------) + I net - 0x00229a83, // n0x1e69 c0x0000 (---------------) + I org - 0x0022edc3, // n0x1e6a c0x0000 (---------------) + I com - 0x00011a06, // n0x1e6b c0x0000 (---------------) + dyndns - 0x002349c3, // n0x1e6c c0x0000 (---------------) + I edu - 0x00275003, // n0x1e6d c0x0000 (---------------) + I gov - 0x000f2d06, // n0x1e6e c0x0000 (---------------) + mypets - 0x0021d8c3, // n0x1e6f c0x0000 (---------------) + I net - 0x00229a83, // n0x1e70 c0x0000 (---------------) + I org - 0x00303f08, // n0x1e71 c0x0000 (---------------) + I xn--80au - 0x0030b909, // n0x1e72 c0x0000 (---------------) + I xn--90azh - 0x00318289, // n0x1e73 c0x0000 (---------------) + I xn--c1avg - 0x00325088, // n0x1e74 c0x0000 (---------------) + I xn--d1at - 0x003710c8, // n0x1e75 c0x0000 (---------------) + I xn--o1ac - 0x003710c9, // n0x1e76 c0x0000 (---------------) + I xn--o1ach - 0x00205882, // n0x1e77 c0x0000 (---------------) + I ac - 0x00379506, // n0x1e78 c0x0000 (---------------) + I agrica - 0x00209243, // n0x1e79 c0x0000 (---------------) + I alt - 0x65208182, // n0x1e7a c0x0194 (n0x1e88-n0x1e89) + I co - 0x002349c3, // n0x1e7b c0x0000 (---------------) + I edu - 0x00275003, // n0x1e7c c0x0000 (---------------) + I gov - 0x002a6f87, // n0x1e7d c0x0000 (---------------) + I grondar - 0x00209183, // n0x1e7e c0x0000 (---------------) + I law - 0x00215b43, // n0x1e7f c0x0000 (---------------) + I mil - 0x0021d8c3, // n0x1e80 c0x0000 (---------------) + I net - 0x002084c3, // n0x1e81 c0x0000 (---------------) + I ngo - 0x002123c3, // n0x1e82 c0x0000 (---------------) + I nis - 0x0020e543, // n0x1e83 c0x0000 (---------------) + I nom - 0x00229a83, // n0x1e84 c0x0000 (---------------) + I org - 0x00231d06, // n0x1e85 c0x0000 (---------------) + I school - 0x00200142, // n0x1e86 c0x0000 (---------------) + I tm - 0x0021fa83, // n0x1e87 c0x0000 (---------------) + I web - 0x000f5248, // n0x1e88 c0x0000 (---------------) + blogspot -} - -// children is the list of nodes' children, the parent's wildcard bit and the -// parent's node type. If a node has no children then their children index -// will be in the range [0, 6), depending on the wildcard bit and node type. -// -// The layout within the uint32, from MSB to LSB, is: -// [ 1 bits] unused -// [ 1 bits] wildcard bit -// [ 2 bits] node type -// [14 bits] high nodes index (exclusive) of children -// [14 bits] low nodes index (inclusive) of children -var children = [...]uint32{ - 0x00000000, // c0x0000 (---------------) + - 0x10000000, // c0x0001 (---------------) ! - 0x20000000, // c0x0002 (---------------) o - 0x40000000, // c0x0003 (---------------)* + - 0x50000000, // c0x0004 (---------------)* ! - 0x60000000, // c0x0005 (---------------)* o - 0x017f05f6, // c0x0006 (n0x05f6-n0x05fc) + - 0x017f45fc, // c0x0007 (n0x05fc-n0x05fd) + - 0x018145fd, // c0x0008 (n0x05fd-n0x0605) + - 0x01978605, // c0x0009 (n0x0605-n0x065e) + - 0x0198c65e, // c0x000a (n0x065e-n0x0663) + - 0x019a0663, // c0x000b (n0x0663-n0x0668) + - 0x019b0668, // c0x000c (n0x0668-n0x066c) + - 0x019cc66c, // c0x000d (n0x066c-n0x0673) + - 0x019d0673, // c0x000e (n0x0673-n0x0674) + - 0x019e0674, // c0x000f (n0x0674-n0x0678) + - 0x019f8678, // c0x0010 (n0x0678-n0x067e) + - 0x01a1c67e, // c0x0011 (n0x067e-n0x0687) + - 0x01a20687, // c0x0012 (n0x0687-n0x0688) + - 0x01a38688, // c0x0013 (n0x0688-n0x068e) + - 0x01a3c68e, // c0x0014 (n0x068e-n0x068f) + - 0x01a5868f, // c0x0015 (n0x068f-n0x0696) + - 0x01a5c696, // c0x0016 (n0x0696-n0x0697) + - 0x01aa4697, // c0x0017 (n0x0697-n0x06a9) + - 0x01aa86a9, // c0x0018 (n0x06a9-n0x06aa) + - 0x01ac86aa, // c0x0019 (n0x06aa-n0x06b2) + - 0x01adc6b2, // c0x001a (n0x06b2-n0x06b7) + - 0x01ae06b7, // c0x001b (n0x06b7-n0x06b8) + - 0x01b106b8, // c0x001c (n0x06b8-n0x06c4) + - 0x01b3c6c4, // c0x001d (n0x06c4-n0x06cf) + - 0x01b646cf, // c0x001e (n0x06cf-n0x06d9) + - 0x01b6c6d9, // c0x001f (n0x06d9-n0x06db) + - 0x01b706db, // c0x0020 (n0x06db-n0x06dc) + - 0x01c046dc, // c0x0021 (n0x06dc-n0x0701) + - 0x01c18701, // c0x0022 (n0x0701-n0x0706) + - 0x01c2c706, // c0x0023 (n0x0706-n0x070b) + - 0x01c4870b, // c0x0024 (n0x070b-n0x0712) + - 0x01c58712, // c0x0025 (n0x0712-n0x0716) + - 0x01c6c716, // c0x0026 (n0x0716-n0x071b) + - 0x01c9071b, // c0x0027 (n0x071b-n0x0724) + - 0x01da8724, // c0x0028 (n0x0724-n0x076a) + - 0x01dac76a, // c0x0029 (n0x076a-n0x076b) + - 0x01dc076b, // c0x002a (n0x076b-n0x0770) + - 0x01dd4770, // c0x002b (n0x0770-n0x0775) + - 0x01ddc775, // c0x002c (n0x0775-n0x0777) + - 0x01dec777, // c0x002d (n0x0777-n0x077b) + - 0x01df077b, // c0x002e (n0x077b-n0x077c) + - 0x01e0877c, // c0x002f (n0x077c-n0x0782) + - 0x01e4c782, // c0x0030 (n0x0782-n0x0793) + - 0x01e5c793, // c0x0031 (n0x0793-n0x0797) + - 0x01e60797, // c0x0032 (n0x0797-n0x0798) + - 0x01e64798, // c0x0033 (n0x0798-n0x0799) + - 0x01e68799, // c0x0034 (n0x0799-n0x079a) + - 0x01ea479a, // c0x0035 (n0x079a-n0x07a9) + - 0x61ea87a9, // c0x0036 (n0x07a9-n0x07aa)* o - 0x01ebc7aa, // c0x0037 (n0x07aa-n0x07af) + - 0x01ecc7af, // c0x0038 (n0x07af-n0x07b3) + - 0x01f807b3, // c0x0039 (n0x07b3-n0x07e0) + - 0x21f847e0, // c0x003a (n0x07e0-n0x07e1) o - 0x01f887e1, // c0x003b (n0x07e1-n0x07e2) + - 0x01f8c7e2, // c0x003c (n0x07e2-n0x07e3) + - 0x21f907e3, // c0x003d (n0x07e3-n0x07e4) o - 0x21f947e4, // c0x003e (n0x07e4-n0x07e5) o - 0x01fc87e5, // c0x003f (n0x07e5-n0x07f2) + - 0x01fcc7f2, // c0x0040 (n0x07f2-n0x07f3) + - 0x022fc7f3, // c0x0041 (n0x07f3-n0x08bf) + - 0x223448bf, // c0x0042 (n0x08bf-n0x08d1) o - 0x023688d1, // c0x0043 (n0x08d1-n0x08da) + - 0x023708da, // c0x0044 (n0x08da-n0x08dc) + - 0x223748dc, // c0x0045 (n0x08dc-n0x08dd) o - 0x023908dd, // c0x0046 (n0x08dd-n0x08e4) + - 0x023a88e4, // c0x0047 (n0x08e4-n0x08ea) + - 0x023ac8ea, // c0x0048 (n0x08ea-n0x08eb) + - 0x023bc8eb, // c0x0049 (n0x08eb-n0x08ef) + - 0x023c48ef, // c0x004a (n0x08ef-n0x08f1) + - 0x223f88f1, // c0x004b (n0x08f1-n0x08fe) o - 0x023fc8fe, // c0x004c (n0x08fe-n0x08ff) + - 0x024008ff, // c0x004d (n0x08ff-n0x0900) + - 0x02420900, // c0x004e (n0x0900-n0x0908) + - 0x02424908, // c0x004f (n0x0908-n0x0909) + - 0x02438909, // c0x0050 (n0x0909-n0x090e) + - 0x0246090e, // c0x0051 (n0x090e-n0x0918) + - 0x02480918, // c0x0052 (n0x0918-n0x0920) + - 0x024b0920, // c0x0053 (n0x0920-n0x092c) + - 0x024d892c, // c0x0054 (n0x092c-n0x0936) + - 0x024dc936, // c0x0055 (n0x0936-n0x0937) + - 0x02500937, // c0x0056 (n0x0937-n0x0940) + - 0x02504940, // c0x0057 (n0x0940-n0x0941) + - 0x02518941, // c0x0058 (n0x0941-n0x0946) + - 0x0251c946, // c0x0059 (n0x0946-n0x0947) + - 0x0253c947, // c0x005a (n0x0947-n0x094f) + - 0x0254894f, // c0x005b (n0x094f-n0x0952) + - 0x025a8952, // c0x005c (n0x0952-n0x096a) + - 0x025c496a, // c0x005d (n0x096a-n0x0971) + - 0x025d0971, // c0x005e (n0x0971-n0x0974) + - 0x025e4974, // c0x005f (n0x0974-n0x0979) + - 0x025fc979, // c0x0060 (n0x0979-n0x097f) + - 0x0261097f, // c0x0061 (n0x097f-n0x0984) + - 0x02628984, // c0x0062 (n0x0984-n0x098a) + - 0x0264098a, // c0x0063 (n0x098a-n0x0990) + - 0x02658990, // c0x0064 (n0x0990-n0x0996) + - 0x02674996, // c0x0065 (n0x0996-n0x099d) + - 0x0268099d, // c0x0066 (n0x099d-n0x09a0) + - 0x026e09a0, // c0x0067 (n0x09a0-n0x09b8) + - 0x026f89b8, // c0x0068 (n0x09b8-n0x09be) + - 0x0270c9be, // c0x0069 (n0x09be-n0x09c3) + - 0x027509c3, // c0x006a (n0x09c3-n0x09d4) + - 0x027d09d4, // c0x006b (n0x09d4-n0x09f4) + - 0x027fc9f4, // c0x006c (n0x09f4-n0x09ff) + - 0x028009ff, // c0x006d (n0x09ff-n0x0a00) + - 0x02808a00, // c0x006e (n0x0a00-n0x0a02) + - 0x02828a02, // c0x006f (n0x0a02-n0x0a0a) + - 0x0282ca0a, // c0x0070 (n0x0a0a-n0x0a0b) + - 0x02848a0b, // c0x0071 (n0x0a0b-n0x0a12) + - 0x02850a12, // c0x0072 (n0x0a12-n0x0a14) + - 0x02884a14, // c0x0073 (n0x0a14-n0x0a21) + - 0x028aca21, // c0x0074 (n0x0a21-n0x0a2b) + - 0x028b0a2b, // c0x0075 (n0x0a2b-n0x0a2c) + - 0x028c4a2c, // c0x0076 (n0x0a2c-n0x0a31) + - 0x028dca31, // c0x0077 (n0x0a31-n0x0a37) + - 0x02900a37, // c0x0078 (n0x0a37-n0x0a40) + - 0x02920a40, // c0x0079 (n0x0a40-n0x0a48) + - 0x02ee4a48, // c0x007a (n0x0a48-n0x0bb9) + - 0x02ef0bb9, // c0x007b (n0x0bb9-n0x0bbc) + - 0x02f10bbc, // c0x007c (n0x0bbc-n0x0bc4) + - 0x030ccbc4, // c0x007d (n0x0bc4-n0x0c33) + - 0x0319cc33, // c0x007e (n0x0c33-n0x0c67) + - 0x0320cc67, // c0x007f (n0x0c67-n0x0c83) + - 0x03264c83, // c0x0080 (n0x0c83-n0x0c99) + - 0x0334cc99, // c0x0081 (n0x0c99-n0x0cd3) + - 0x033a4cd3, // c0x0082 (n0x0cd3-n0x0ce9) + - 0x033e0ce9, // c0x0083 (n0x0ce9-n0x0cf8) + - 0x034dccf8, // c0x0084 (n0x0cf8-n0x0d37) + - 0x035a8d37, // c0x0085 (n0x0d37-n0x0d6a) + - 0x03640d6a, // c0x0086 (n0x0d6a-n0x0d90) + - 0x036d0d90, // c0x0087 (n0x0d90-n0x0db4) + - 0x03734db4, // c0x0088 (n0x0db4-n0x0dcd) + - 0x0396cdcd, // c0x0089 (n0x0dcd-n0x0e5b) + - 0x03a24e5b, // c0x008a (n0x0e5b-n0x0e89) + - 0x03af0e89, // c0x008b (n0x0e89-n0x0ebc) + - 0x03b3cebc, // c0x008c (n0x0ebc-n0x0ecf) + - 0x03bc4ecf, // c0x008d (n0x0ecf-n0x0ef1) + - 0x03c00ef1, // c0x008e (n0x0ef1-n0x0f00) + - 0x03c50f00, // c0x008f (n0x0f00-n0x0f14) + - 0x03cc8f14, // c0x0090 (n0x0f14-n0x0f32) + - 0x63cccf32, // c0x0091 (n0x0f32-n0x0f33)* o - 0x63cd0f33, // c0x0092 (n0x0f33-n0x0f34)* o - 0x63cd4f34, // c0x0093 (n0x0f34-n0x0f35)* o - 0x03d50f35, // c0x0094 (n0x0f35-n0x0f54) + - 0x03db8f54, // c0x0095 (n0x0f54-n0x0f6e) + - 0x03e34f6e, // c0x0096 (n0x0f6e-n0x0f8d) + - 0x03eacf8d, // c0x0097 (n0x0f8d-n0x0fab) + - 0x03f30fab, // c0x0098 (n0x0fab-n0x0fcc) + - 0x03f9cfcc, // c0x0099 (n0x0fcc-n0x0fe7) + - 0x040c8fe7, // c0x009a (n0x0fe7-n0x1032) + - 0x04121032, // c0x009b (n0x1032-n0x1048) + - 0x64125048, // c0x009c (n0x1048-n0x1049)* o - 0x041bd049, // c0x009d (n0x1049-n0x106f) + - 0x0424506f, // c0x009e (n0x106f-n0x1091) + - 0x04291091, // c0x009f (n0x1091-n0x10a4) + - 0x042f90a4, // c0x00a0 (n0x10a4-n0x10be) + - 0x043a10be, // c0x00a1 (n0x10be-n0x10e8) + - 0x044690e8, // c0x00a2 (n0x10e8-n0x111a) + - 0x044d111a, // c0x00a3 (n0x111a-n0x1134) + - 0x045e5134, // c0x00a4 (n0x1134-n0x1179) + - 0x645e9179, // c0x00a5 (n0x1179-n0x117a)* o - 0x645ed17a, // c0x00a6 (n0x117a-n0x117b)* o - 0x0464917b, // c0x00a7 (n0x117b-n0x1192) + - 0x046a5192, // c0x00a8 (n0x1192-n0x11a9) + - 0x047351a9, // c0x00a9 (n0x11a9-n0x11cd) + - 0x047b11cd, // c0x00aa (n0x11cd-n0x11ec) + - 0x047f51ec, // c0x00ab (n0x11ec-n0x11fd) + - 0x048d91fd, // c0x00ac (n0x11fd-n0x1236) + - 0x0490d236, // c0x00ad (n0x1236-n0x1243) + - 0x0496d243, // c0x00ae (n0x1243-n0x125b) + - 0x049e125b, // c0x00af (n0x125b-n0x1278) + - 0x04a69278, // c0x00b0 (n0x1278-n0x129a) + - 0x04aa929a, // c0x00b1 (n0x129a-n0x12aa) + - 0x04b192aa, // c0x00b2 (n0x12aa-n0x12c6) + - 0x64b1d2c6, // c0x00b3 (n0x12c6-n0x12c7)* o - 0x64b212c7, // c0x00b4 (n0x12c7-n0x12c8)* o - 0x24b252c8, // c0x00b5 (n0x12c8-n0x12c9) o - 0x04b3d2c9, // c0x00b6 (n0x12c9-n0x12cf) + - 0x04b592cf, // c0x00b7 (n0x12cf-n0x12d6) + - 0x04b9d2d6, // c0x00b8 (n0x12d6-n0x12e7) + - 0x04bad2e7, // c0x00b9 (n0x12e7-n0x12eb) + - 0x04bc52eb, // c0x00ba (n0x12eb-n0x12f1) + - 0x04c3d2f1, // c0x00bb (n0x12f1-n0x130f) + - 0x04c5130f, // c0x00bc (n0x130f-n0x1314) + - 0x04c69314, // c0x00bd (n0x1314-n0x131a) + - 0x04c8d31a, // c0x00be (n0x131a-n0x1323) + - 0x04ca1323, // c0x00bf (n0x1323-n0x1328) + - 0x04cb9328, // c0x00c0 (n0x1328-n0x132e) + - 0x04cbd32e, // c0x00c1 (n0x132e-n0x132f) + - 0x04cf932f, // c0x00c2 (n0x132f-n0x133e) + - 0x04d0d33e, // c0x00c3 (n0x133e-n0x1343) + - 0x04d15343, // c0x00c4 (n0x1343-n0x1345) + - 0x04d1d345, // c0x00c5 (n0x1345-n0x1347) + - 0x04d21347, // c0x00c6 (n0x1347-n0x1348) + - 0x04d45348, // c0x00c7 (n0x1348-n0x1351) + - 0x04d69351, // c0x00c8 (n0x1351-n0x135a) + - 0x04d8135a, // c0x00c9 (n0x135a-n0x1360) + - 0x04d89360, // c0x00ca (n0x1360-n0x1362) + - 0x04d8d362, // c0x00cb (n0x1362-n0x1363) + - 0x04dad363, // c0x00cc (n0x1363-n0x136b) + - 0x04dd136b, // c0x00cd (n0x136b-n0x1374) + - 0x04df1374, // c0x00ce (n0x1374-n0x137c) + - 0x04e0d37c, // c0x00cf (n0x137c-n0x1383) + - 0x04e1d383, // c0x00d0 (n0x1383-n0x1387) + - 0x04e31387, // c0x00d1 (n0x1387-n0x138c) + - 0x04e3938c, // c0x00d2 (n0x138c-n0x138e) + - 0x04e4d38e, // c0x00d3 (n0x138e-n0x1393) + - 0x04e5d393, // c0x00d4 (n0x1393-n0x1397) + - 0x04e61397, // c0x00d5 (n0x1397-n0x1398) + - 0x04e7d398, // c0x00d6 (n0x1398-n0x139f) + - 0x0570d39f, // c0x00d7 (n0x139f-n0x15c3) + - 0x057455c3, // c0x00d8 (n0x15c3-n0x15d1) + - 0x057715d1, // c0x00d9 (n0x15d1-n0x15dc) + - 0x057895dc, // c0x00da (n0x15dc-n0x15e2) + - 0x057a95e2, // c0x00db (n0x15e2-n0x15ea) + - 0x657ad5ea, // c0x00dc (n0x15ea-n0x15eb)* o - 0x057f15eb, // c0x00dd (n0x15eb-n0x15fc) + - 0x057f95fc, // c0x00de (n0x15fc-n0x15fe) + - 0x257fd5fe, // c0x00df (n0x15fe-n0x15ff) o - 0x258015ff, // c0x00e0 (n0x15ff-n0x1600) o - 0x05805600, // c0x00e1 (n0x1600-n0x1601) + - 0x058c9601, // c0x00e2 (n0x1601-n0x1632) + - 0x258cd632, // c0x00e3 (n0x1632-n0x1633) o - 0x258d5633, // c0x00e4 (n0x1633-n0x1635) o - 0x258dd635, // c0x00e5 (n0x1635-n0x1637) o - 0x258e9637, // c0x00e6 (n0x1637-n0x163a) o - 0x0591163a, // c0x00e7 (n0x163a-n0x1644) + - 0x05935644, // c0x00e8 (n0x1644-n0x164d) + - 0x0593964d, // c0x00e9 (n0x164d-n0x164e) + - 0x0594564e, // c0x00ea (n0x164e-n0x1651) + - 0x0649d651, // c0x00eb (n0x1651-n0x1927) + - 0x064a1927, // c0x00ec (n0x1927-n0x1928) + - 0x064a5928, // c0x00ed (n0x1928-n0x1929) + - 0x264a9929, // c0x00ee (n0x1929-n0x192a) o - 0x064ad92a, // c0x00ef (n0x192a-n0x192b) + - 0x264b192b, // c0x00f0 (n0x192b-n0x192c) o - 0x064b592c, // c0x00f1 (n0x192c-n0x192d) + - 0x264c192d, // c0x00f2 (n0x192d-n0x1930) o - 0x064c5930, // c0x00f3 (n0x1930-n0x1931) + - 0x064c9931, // c0x00f4 (n0x1931-n0x1932) + - 0x264cd932, // c0x00f5 (n0x1932-n0x1933) o - 0x064d1933, // c0x00f6 (n0x1933-n0x1934) + - 0x264d9934, // c0x00f7 (n0x1934-n0x1936) o - 0x064dd936, // c0x00f8 (n0x1936-n0x1937) + - 0x064e1937, // c0x00f9 (n0x1937-n0x1938) + - 0x264f1938, // c0x00fa (n0x1938-n0x193c) o - 0x064f593c, // c0x00fb (n0x193c-n0x193d) + - 0x064f993d, // c0x00fc (n0x193d-n0x193e) + - 0x064fd93e, // c0x00fd (n0x193e-n0x193f) + - 0x0650193f, // c0x00fe (n0x193f-n0x1940) + - 0x26505940, // c0x00ff (n0x1940-n0x1941) o - 0x06509941, // c0x0100 (n0x1941-n0x1942) + - 0x0650d942, // c0x0101 (n0x1942-n0x1943) + - 0x06511943, // c0x0102 (n0x1943-n0x1944) + - 0x06515944, // c0x0103 (n0x1944-n0x1945) + - 0x2651d945, // c0x0104 (n0x1945-n0x1947) o - 0x06521947, // c0x0105 (n0x1947-n0x1948) + - 0x06525948, // c0x0106 (n0x1948-n0x1949) + - 0x06529949, // c0x0107 (n0x1949-n0x194a) + - 0x2652d94a, // c0x0108 (n0x194a-n0x194b) o - 0x0653194b, // c0x0109 (n0x194b-n0x194c) + - 0x2653994c, // c0x010a (n0x194c-n0x194e) o - 0x2653d94e, // c0x010b (n0x194e-n0x194f) o - 0x0655994f, // c0x010c (n0x194f-n0x1956) + - 0x06565956, // c0x010d (n0x1956-n0x1959) + - 0x065a5959, // c0x010e (n0x1959-n0x1969) + - 0x065a9969, // c0x010f (n0x1969-n0x196a) + - 0x065cd96a, // c0x0110 (n0x196a-n0x1973) + - 0x066b9973, // c0x0111 (n0x1973-n0x19ae) + - 0x266c19ae, // c0x0112 (n0x19ae-n0x19b0) o - 0x266c59b0, // c0x0113 (n0x19b0-n0x19b1) o - 0x266c99b1, // c0x0114 (n0x19b1-n0x19b2) o - 0x066d19b2, // c0x0115 (n0x19b2-n0x19b4) + - 0x067ad9b4, // c0x0116 (n0x19b4-n0x19eb) + - 0x067d99eb, // c0x0117 (n0x19eb-n0x19f6) + - 0x067f99f6, // c0x0118 (n0x19f6-n0x19fe) + - 0x068059fe, // c0x0119 (n0x19fe-n0x1a01) + - 0x06825a01, // c0x011a (n0x1a01-n0x1a09) + - 0x0685da09, // c0x011b (n0x1a09-n0x1a17) + - 0x06af1a17, // c0x011c (n0x1a17-n0x1abc) + - 0x06badabc, // c0x011d (n0x1abc-n0x1aeb) + - 0x06bc1aeb, // c0x011e (n0x1aeb-n0x1af0) + - 0x06bf5af0, // c0x011f (n0x1af0-n0x1afd) + - 0x06c11afd, // c0x0120 (n0x1afd-n0x1b04) + - 0x06c2db04, // c0x0121 (n0x1b04-n0x1b0b) + - 0x06c51b0b, // c0x0122 (n0x1b0b-n0x1b14) + - 0x06c69b14, // c0x0123 (n0x1b14-n0x1b1a) + - 0x06c85b1a, // c0x0124 (n0x1b1a-n0x1b21) + - 0x06ca9b21, // c0x0125 (n0x1b21-n0x1b2a) + - 0x06cb9b2a, // c0x0126 (n0x1b2a-n0x1b2e) + - 0x06ce9b2e, // c0x0127 (n0x1b2e-n0x1b3a) + - 0x06d05b3a, // c0x0128 (n0x1b3a-n0x1b41) + - 0x06f15b41, // c0x0129 (n0x1b41-n0x1bc5) + - 0x06f39bc5, // c0x012a (n0x1bc5-n0x1bce) + - 0x06f59bce, // c0x012b (n0x1bce-n0x1bd6) + - 0x06f6dbd6, // c0x012c (n0x1bd6-n0x1bdb) + - 0x06f81bdb, // c0x012d (n0x1bdb-n0x1be0) + - 0x06fa1be0, // c0x012e (n0x1be0-n0x1be8) + - 0x07045be8, // c0x012f (n0x1be8-n0x1c11) + - 0x07061c11, // c0x0130 (n0x1c11-n0x1c18) + - 0x07079c18, // c0x0131 (n0x1c18-n0x1c1e) + - 0x0707dc1e, // c0x0132 (n0x1c1e-n0x1c1f) + - 0x07081c1f, // c0x0133 (n0x1c1f-n0x1c20) + - 0x07095c20, // c0x0134 (n0x1c20-n0x1c25) + - 0x070b5c25, // c0x0135 (n0x1c25-n0x1c2d) + - 0x070c1c2d, // c0x0136 (n0x1c2d-n0x1c30) + - 0x070f1c30, // c0x0137 (n0x1c30-n0x1c3c) + - 0x07171c3c, // c0x0138 (n0x1c3c-n0x1c5c) + - 0x07185c5c, // c0x0139 (n0x1c5c-n0x1c61) + - 0x07189c61, // c0x013a (n0x1c61-n0x1c62) + - 0x071a1c62, // c0x013b (n0x1c62-n0x1c68) + - 0x071adc68, // c0x013c (n0x1c68-n0x1c6b) + - 0x071b1c6b, // c0x013d (n0x1c6b-n0x1c6c) + - 0x071cdc6c, // c0x013e (n0x1c6c-n0x1c73) + - 0x07209c73, // c0x013f (n0x1c73-n0x1c82) + - 0x0720dc82, // c0x0140 (n0x1c82-n0x1c83) + - 0x0722dc83, // c0x0141 (n0x1c83-n0x1c8b) + - 0x0727dc8b, // c0x0142 (n0x1c8b-n0x1c9f) + - 0x07295c9f, // c0x0143 (n0x1c9f-n0x1ca5) + - 0x072e9ca5, // c0x0144 (n0x1ca5-n0x1cba) + - 0x072edcba, // c0x0145 (n0x1cba-n0x1cbb) + - 0x072f1cbb, // c0x0146 (n0x1cbb-n0x1cbc) + - 0x07335cbc, // c0x0147 (n0x1cbc-n0x1ccd) + - 0x07345ccd, // c0x0148 (n0x1ccd-n0x1cd1) + - 0x0737dcd1, // c0x0149 (n0x1cd1-n0x1cdf) + - 0x073adcdf, // c0x014a (n0x1cdf-n0x1ceb) + - 0x074e9ceb, // c0x014b (n0x1ceb-n0x1d3a) + - 0x0750dd3a, // c0x014c (n0x1d3a-n0x1d43) + - 0x07539d43, // c0x014d (n0x1d43-n0x1d4e) + - 0x0753dd4e, // c0x014e (n0x1d4e-n0x1d4f) + - 0x07541d4f, // c0x014f (n0x1d4f-n0x1d50) + - 0x0763dd50, // c0x0150 (n0x1d50-n0x1d8f) + - 0x07649d8f, // c0x0151 (n0x1d8f-n0x1d92) + - 0x07655d92, // c0x0152 (n0x1d92-n0x1d95) + - 0x07661d95, // c0x0153 (n0x1d95-n0x1d98) + - 0x0766dd98, // c0x0154 (n0x1d98-n0x1d9b) + - 0x07679d9b, // c0x0155 (n0x1d9b-n0x1d9e) + - 0x07685d9e, // c0x0156 (n0x1d9e-n0x1da1) + - 0x07691da1, // c0x0157 (n0x1da1-n0x1da4) + - 0x0769dda4, // c0x0158 (n0x1da4-n0x1da7) + - 0x076a9da7, // c0x0159 (n0x1da7-n0x1daa) + - 0x076b5daa, // c0x015a (n0x1daa-n0x1dad) + - 0x076c1dad, // c0x015b (n0x1dad-n0x1db0) + - 0x076cddb0, // c0x015c (n0x1db0-n0x1db3) + - 0x076d9db3, // c0x015d (n0x1db3-n0x1db6) + - 0x076e1db6, // c0x015e (n0x1db6-n0x1db8) + - 0x076eddb8, // c0x015f (n0x1db8-n0x1dbb) + - 0x076f9dbb, // c0x0160 (n0x1dbb-n0x1dbe) + - 0x07705dbe, // c0x0161 (n0x1dbe-n0x1dc1) + - 0x07711dc1, // c0x0162 (n0x1dc1-n0x1dc4) + - 0x0771ddc4, // c0x0163 (n0x1dc4-n0x1dc7) + - 0x07729dc7, // c0x0164 (n0x1dc7-n0x1dca) + - 0x07735dca, // c0x0165 (n0x1dca-n0x1dcd) + - 0x07741dcd, // c0x0166 (n0x1dcd-n0x1dd0) + - 0x0774ddd0, // c0x0167 (n0x1dd0-n0x1dd3) + - 0x07759dd3, // c0x0168 (n0x1dd3-n0x1dd6) + - 0x07765dd6, // c0x0169 (n0x1dd6-n0x1dd9) + - 0x07771dd9, // c0x016a (n0x1dd9-n0x1ddc) + - 0x0777dddc, // c0x016b (n0x1ddc-n0x1ddf) + - 0x07789ddf, // c0x016c (n0x1ddf-n0x1de2) + - 0x07795de2, // c0x016d (n0x1de2-n0x1de5) + - 0x077a1de5, // c0x016e (n0x1de5-n0x1de8) + - 0x077adde8, // c0x016f (n0x1de8-n0x1deb) + - 0x077b5deb, // c0x0170 (n0x1deb-n0x1ded) + - 0x077c1ded, // c0x0171 (n0x1ded-n0x1df0) + - 0x077cddf0, // c0x0172 (n0x1df0-n0x1df3) + - 0x077d9df3, // c0x0173 (n0x1df3-n0x1df6) + - 0x077e5df6, // c0x0174 (n0x1df6-n0x1df9) + - 0x077f1df9, // c0x0175 (n0x1df9-n0x1dfc) + - 0x077fddfc, // c0x0176 (n0x1dfc-n0x1dff) + - 0x07809dff, // c0x0177 (n0x1dff-n0x1e02) + - 0x07815e02, // c0x0178 (n0x1e02-n0x1e05) + - 0x07821e05, // c0x0179 (n0x1e05-n0x1e08) + - 0x0782de08, // c0x017a (n0x1e08-n0x1e0b) + - 0x07839e0b, // c0x017b (n0x1e0b-n0x1e0e) + - 0x07845e0e, // c0x017c (n0x1e0e-n0x1e11) + - 0x07851e11, // c0x017d (n0x1e11-n0x1e14) + - 0x07859e14, // c0x017e (n0x1e14-n0x1e16) + - 0x07865e16, // c0x017f (n0x1e16-n0x1e19) + - 0x07871e19, // c0x0180 (n0x1e19-n0x1e1c) + - 0x0787de1c, // c0x0181 (n0x1e1c-n0x1e1f) + - 0x07889e1f, // c0x0182 (n0x1e1f-n0x1e22) + - 0x07895e22, // c0x0183 (n0x1e22-n0x1e25) + - 0x078a1e25, // c0x0184 (n0x1e25-n0x1e28) + - 0x078ade28, // c0x0185 (n0x1e28-n0x1e2b) + - 0x078b9e2b, // c0x0186 (n0x1e2b-n0x1e2e) + - 0x078bde2e, // c0x0187 (n0x1e2e-n0x1e2f) + - 0x078c9e2f, // c0x0188 (n0x1e2f-n0x1e32) + - 0x078e1e32, // c0x0189 (n0x1e32-n0x1e38) + - 0x078e5e38, // c0x018a (n0x1e38-n0x1e39) + - 0x078f5e39, // c0x018b (n0x1e39-n0x1e3d) + - 0x0790de3d, // c0x018c (n0x1e3d-n0x1e43) + - 0x07951e43, // c0x018d (n0x1e43-n0x1e54) + - 0x07965e54, // c0x018e (n0x1e54-n0x1e59) + - 0x07999e59, // c0x018f (n0x1e59-n0x1e66) + - 0x079a9e66, // c0x0190 (n0x1e66-n0x1e6a) + - 0x079c5e6a, // c0x0191 (n0x1e6a-n0x1e71) + - 0x079dde71, // c0x0192 (n0x1e71-n0x1e77) + - 0x27a21e77, // c0x0193 (n0x1e77-n0x1e88) o - 0x07a25e88, // c0x0194 (n0x1e88-n0x1e89) + -} - -// max children 404 (capacity 511) -// max text offset 26864 (capacity 32767) -// max text length 36 (capacity 63) -// max hi 7817 (capacity 16383) -// max lo 7816 (capacity 16383) diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/table_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/table_test.go deleted file mode 100644 index 4d2eb2ea..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/publicsuffix/table_test.go +++ /dev/null @@ -1,15615 +0,0 @@ -// generated by go run gen.go; DO NOT EDIT - -package publicsuffix - -var rules = [...]string{ - "ac", - "com.ac", - "edu.ac", - "gov.ac", - "net.ac", - "mil.ac", - "org.ac", - "ad", - "nom.ad", - "ae", - "co.ae", - "net.ae", - "org.ae", - "sch.ae", - "ac.ae", - "gov.ae", - "mil.ae", - "aero", - "accident-investigation.aero", - "accident-prevention.aero", - "aerobatic.aero", - "aeroclub.aero", - "aerodrome.aero", - "agents.aero", - "aircraft.aero", - "airline.aero", - "airport.aero", - "air-surveillance.aero", - "airtraffic.aero", - "air-traffic-control.aero", - "ambulance.aero", - "amusement.aero", - "association.aero", - "author.aero", - "ballooning.aero", - "broker.aero", - "caa.aero", - "cargo.aero", - "catering.aero", - "certification.aero", - "championship.aero", - "charter.aero", - "civilaviation.aero", - "club.aero", - "conference.aero", - "consultant.aero", - "consulting.aero", - "control.aero", - "council.aero", - "crew.aero", - "design.aero", - "dgca.aero", - "educator.aero", - "emergency.aero", - "engine.aero", - "engineer.aero", - "entertainment.aero", - "equipment.aero", - "exchange.aero", - "express.aero", - "federation.aero", - "flight.aero", - "freight.aero", - "fuel.aero", - "gliding.aero", - "government.aero", - "groundhandling.aero", - "group.aero", - "hanggliding.aero", - "homebuilt.aero", - "insurance.aero", - "journal.aero", - "journalist.aero", - "leasing.aero", - "logistics.aero", - "magazine.aero", - "maintenance.aero", - "marketplace.aero", - "media.aero", - "microlight.aero", - "modelling.aero", - "navigation.aero", - "parachuting.aero", - "paragliding.aero", - "passenger-association.aero", - "pilot.aero", - "press.aero", - "production.aero", - "recreation.aero", - "repbody.aero", - "res.aero", - "research.aero", - "rotorcraft.aero", - "safety.aero", - "scientist.aero", - "services.aero", - "show.aero", - "skydiving.aero", - "software.aero", - "student.aero", - "taxi.aero", - "trader.aero", - "trading.aero", - "trainer.aero", - "union.aero", - "workinggroup.aero", - "works.aero", - "af", - "gov.af", - "com.af", - "org.af", - "net.af", - "edu.af", - "ag", - "com.ag", - "org.ag", - "net.ag", - "co.ag", - "nom.ag", - "ai", - "off.ai", - "com.ai", - "net.ai", - "org.ai", - "al", - "com.al", - "edu.al", - "gov.al", - "mil.al", - "net.al", - "org.al", - "am", - "an", - "com.an", - "net.an", - "org.an", - "edu.an", - "ao", - "ed.ao", - "gv.ao", - "og.ao", - "co.ao", - "pb.ao", - "it.ao", - "aq", - "ar", - "com.ar", - "edu.ar", - "gob.ar", - "gov.ar", - "int.ar", - "mil.ar", - "net.ar", - "org.ar", - "tur.ar", - "arpa", - "e164.arpa", - "in-addr.arpa", - "ip6.arpa", - "iris.arpa", - "uri.arpa", - "urn.arpa", - "as", - "gov.as", - "asia", - "at", - "ac.at", - "co.at", - "gv.at", - "or.at", - "au", - "com.au", - "net.au", - "org.au", - "edu.au", - "gov.au", - "asn.au", - "id.au", - "info.au", - "conf.au", - "oz.au", - "act.au", - "nsw.au", - "nt.au", - "qld.au", - "sa.au", - "tas.au", - "vic.au", - "wa.au", - "act.edu.au", - "nsw.edu.au", - "nt.edu.au", - "qld.edu.au", - "sa.edu.au", - "tas.edu.au", - "vic.edu.au", - "wa.edu.au", - "qld.gov.au", - "sa.gov.au", - "tas.gov.au", - "vic.gov.au", - "wa.gov.au", - "aw", - "com.aw", - "ax", - "az", - "com.az", - "net.az", - "int.az", - "gov.az", - "org.az", - "edu.az", - "info.az", - "pp.az", - "mil.az", - "name.az", - "pro.az", - "biz.az", - "ba", - "org.ba", - "net.ba", - "edu.ba", - "gov.ba", - "mil.ba", - "unsa.ba", - "unbi.ba", - "co.ba", - "com.ba", - "rs.ba", - "bb", - "biz.bb", - "co.bb", - "com.bb", - "edu.bb", - "gov.bb", - "info.bb", - "net.bb", - "org.bb", - "store.bb", - "tv.bb", - "*.bd", - "be", - "ac.be", - "bf", - "gov.bf", - "bg", - "a.bg", - "b.bg", - "c.bg", - "d.bg", - "e.bg", - "f.bg", - "g.bg", - "h.bg", - "i.bg", - "j.bg", - "k.bg", - "l.bg", - "m.bg", - "n.bg", - "o.bg", - "p.bg", - "q.bg", - "r.bg", - "s.bg", - "t.bg", - "u.bg", - "v.bg", - "w.bg", - "x.bg", - "y.bg", - "z.bg", - "0.bg", - "1.bg", - "2.bg", - "3.bg", - "4.bg", - "5.bg", - "6.bg", - "7.bg", - "8.bg", - "9.bg", - "bh", - "com.bh", - "edu.bh", - "net.bh", - "org.bh", - "gov.bh", - "bi", - "co.bi", - "com.bi", - "edu.bi", - "or.bi", - "org.bi", - "biz", - "bj", - "asso.bj", - "barreau.bj", - "gouv.bj", - "bm", - "com.bm", - "edu.bm", - "gov.bm", - "net.bm", - "org.bm", - "*.bn", - "bo", - "com.bo", - "edu.bo", - "gov.bo", - "gob.bo", - "int.bo", - "org.bo", - "net.bo", - "mil.bo", - "tv.bo", - "br", - "adm.br", - "adv.br", - "agr.br", - "am.br", - "arq.br", - "art.br", - "ato.br", - "b.br", - "bio.br", - "blog.br", - "bmd.br", - "cim.br", - "cng.br", - "cnt.br", - "com.br", - "coop.br", - "ecn.br", - "eco.br", - "edu.br", - "emp.br", - "eng.br", - "esp.br", - "etc.br", - "eti.br", - "far.br", - "flog.br", - "fm.br", - "fnd.br", - "fot.br", - "fst.br", - "g12.br", - "ggf.br", - "gov.br", - "imb.br", - "ind.br", - "inf.br", - "jor.br", - "jus.br", - "leg.br", - "lel.br", - "mat.br", - "med.br", - "mil.br", - "mp.br", - "mus.br", - "net.br", - "*.nom.br", - "not.br", - "ntr.br", - "odo.br", - "org.br", - "ppg.br", - "pro.br", - "psc.br", - "psi.br", - "qsl.br", - "radio.br", - "rec.br", - "slg.br", - "srv.br", - "taxi.br", - "teo.br", - "tmp.br", - "trd.br", - "tur.br", - "tv.br", - "vet.br", - "vlog.br", - "wiki.br", - "zlg.br", - "bs", - "com.bs", - "net.bs", - "org.bs", - "edu.bs", - "gov.bs", - "bt", - "com.bt", - "edu.bt", - "gov.bt", - "net.bt", - "org.bt", - "bv", - "bw", - "co.bw", - "org.bw", - "by", - "gov.by", - "mil.by", - "com.by", - "of.by", - "bz", - "com.bz", - "net.bz", - "org.bz", - "edu.bz", - "gov.bz", - "ca", - "ab.ca", - "bc.ca", - "mb.ca", - "nb.ca", - "nf.ca", - "nl.ca", - "ns.ca", - "nt.ca", - "nu.ca", - "on.ca", - "pe.ca", - "qc.ca", - "sk.ca", - "yk.ca", - "gc.ca", - "cat", - "cc", - "cd", - "gov.cd", - "cf", - "cg", - "ch", - "ci", - "org.ci", - "or.ci", - "com.ci", - "co.ci", - "edu.ci", - "ed.ci", - "ac.ci", - "net.ci", - "go.ci", - "asso.ci", - "xn--aroport-bya.ci", - "int.ci", - "presse.ci", - "md.ci", - "gouv.ci", - "*.ck", - "!www.ck", - "cl", - "gov.cl", - "gob.cl", - "co.cl", - "mil.cl", - "cm", - "co.cm", - "com.cm", - "gov.cm", - "net.cm", - "cn", - "ac.cn", - "com.cn", - "edu.cn", - "gov.cn", - "net.cn", - "org.cn", - "mil.cn", - "xn--55qx5d.cn", - "xn--io0a7i.cn", - "xn--od0alg.cn", - "ah.cn", - "bj.cn", - "cq.cn", - "fj.cn", - "gd.cn", - "gs.cn", - "gz.cn", - "gx.cn", - "ha.cn", - "hb.cn", - "he.cn", - "hi.cn", - "hl.cn", - "hn.cn", - "jl.cn", - "js.cn", - "jx.cn", - "ln.cn", - "nm.cn", - "nx.cn", - "qh.cn", - "sc.cn", - "sd.cn", - "sh.cn", - "sn.cn", - "sx.cn", - "tj.cn", - "xj.cn", - "xz.cn", - "yn.cn", - "zj.cn", - "hk.cn", - "mo.cn", - "tw.cn", - "co", - "arts.co", - "com.co", - "edu.co", - "firm.co", - "gov.co", - "info.co", - "int.co", - "mil.co", - "net.co", - "nom.co", - "org.co", - "rec.co", - "web.co", - "com", - "coop", - "cr", - "ac.cr", - "co.cr", - "ed.cr", - "fi.cr", - "go.cr", - "or.cr", - "sa.cr", - "cu", - "com.cu", - "edu.cu", - "org.cu", - "net.cu", - "gov.cu", - "inf.cu", - "cv", - "cw", - "com.cw", - "edu.cw", - "net.cw", - "org.cw", - "cx", - "gov.cx", - "ac.cy", - "biz.cy", - "com.cy", - "ekloges.cy", - "gov.cy", - "ltd.cy", - "name.cy", - "net.cy", - "org.cy", - "parliament.cy", - "press.cy", - "pro.cy", - "tm.cy", - "cz", - "de", - "dj", - "dk", - "dm", - "com.dm", - "net.dm", - "org.dm", - "edu.dm", - "gov.dm", - "do", - "art.do", - "com.do", - "edu.do", - "gob.do", - "gov.do", - "mil.do", - "net.do", - "org.do", - "sld.do", - "web.do", - "dz", - "com.dz", - "org.dz", - "net.dz", - "gov.dz", - "edu.dz", - "asso.dz", - "pol.dz", - "art.dz", - "ec", - "com.ec", - "info.ec", - "net.ec", - "fin.ec", - "k12.ec", - "med.ec", - "pro.ec", - "org.ec", - "edu.ec", - "gov.ec", - "gob.ec", - "mil.ec", - "edu", - "ee", - "edu.ee", - "gov.ee", - "riik.ee", - "lib.ee", - "med.ee", - "com.ee", - "pri.ee", - "aip.ee", - "org.ee", - "fie.ee", - "eg", - "com.eg", - "edu.eg", - "eun.eg", - "gov.eg", - "mil.eg", - "name.eg", - "net.eg", - "org.eg", - "sci.eg", - "*.er", - "es", - "com.es", - "nom.es", - "org.es", - "gob.es", - "edu.es", - "et", - "com.et", - "gov.et", - "org.et", - "edu.et", - "biz.et", - "name.et", - "info.et", - "net.et", - "eu", - "fi", - "aland.fi", - "*.fj", - "*.fk", - "fm", - "fo", - "fr", - "com.fr", - "asso.fr", - "nom.fr", - "prd.fr", - "presse.fr", - "tm.fr", - "aeroport.fr", - "assedic.fr", - "avocat.fr", - "avoues.fr", - "cci.fr", - "chambagri.fr", - "chirurgiens-dentistes.fr", - "experts-comptables.fr", - "geometre-expert.fr", - "gouv.fr", - "greta.fr", - "huissier-justice.fr", - "medecin.fr", - "notaires.fr", - "pharmacien.fr", - "port.fr", - "veterinaire.fr", - "ga", - "gb", - "gd", - "ge", - "com.ge", - "edu.ge", - "gov.ge", - "org.ge", - "mil.ge", - "net.ge", - "pvt.ge", - "gf", - "gg", - "co.gg", - "net.gg", - "org.gg", - "gh", - "com.gh", - "edu.gh", - "gov.gh", - "org.gh", - "mil.gh", - "gi", - "com.gi", - "ltd.gi", - "gov.gi", - "mod.gi", - "edu.gi", - "org.gi", - "gl", - "co.gl", - "com.gl", - "edu.gl", - "net.gl", - "org.gl", - "gm", - "gn", - "ac.gn", - "com.gn", - "edu.gn", - "gov.gn", - "org.gn", - "net.gn", - "gov", - "gp", - "com.gp", - "net.gp", - "mobi.gp", - "edu.gp", - "org.gp", - "asso.gp", - "gq", - "gr", - "com.gr", - "edu.gr", - "net.gr", - "org.gr", - "gov.gr", - "gs", - "gt", - "com.gt", - "edu.gt", - "gob.gt", - "ind.gt", - "mil.gt", - "net.gt", - "org.gt", - "*.gu", - "gw", - "gy", - "co.gy", - "com.gy", - "net.gy", - "hk", - "com.hk", - "edu.hk", - "gov.hk", - "idv.hk", - "net.hk", - "org.hk", - "xn--55qx5d.hk", - "xn--wcvs22d.hk", - "xn--lcvr32d.hk", - "xn--mxtq1m.hk", - "xn--gmqw5a.hk", - "xn--ciqpn.hk", - "xn--gmq050i.hk", - "xn--zf0avx.hk", - "xn--io0a7i.hk", - "xn--mk0axi.hk", - "xn--od0alg.hk", - "xn--od0aq3b.hk", - "xn--tn0ag.hk", - "xn--uc0atv.hk", - "xn--uc0ay4a.hk", - "hm", - "hn", - "com.hn", - "edu.hn", - "org.hn", - "net.hn", - "mil.hn", - "gob.hn", - "hr", - "iz.hr", - "from.hr", - "name.hr", - "com.hr", - "ht", - "com.ht", - "shop.ht", - "firm.ht", - "info.ht", - "adult.ht", - "net.ht", - "pro.ht", - "org.ht", - "med.ht", - "art.ht", - "coop.ht", - "pol.ht", - "asso.ht", - "edu.ht", - "rel.ht", - "gouv.ht", - "perso.ht", - "hu", - "co.hu", - "info.hu", - "org.hu", - "priv.hu", - "sport.hu", - "tm.hu", - "2000.hu", - "agrar.hu", - "bolt.hu", - "casino.hu", - "city.hu", - "erotica.hu", - "erotika.hu", - "film.hu", - "forum.hu", - "games.hu", - "hotel.hu", - "ingatlan.hu", - "jogasz.hu", - "konyvelo.hu", - "lakas.hu", - "media.hu", - "news.hu", - "reklam.hu", - "sex.hu", - "shop.hu", - "suli.hu", - "szex.hu", - "tozsde.hu", - "utazas.hu", - "video.hu", - "id", - "ac.id", - "biz.id", - "co.id", - "desa.id", - "go.id", - "mil.id", - "my.id", - "net.id", - "or.id", - "sch.id", - "web.id", - "ie", - "gov.ie", - "il", - "ac.il", - "co.il", - "gov.il", - "idf.il", - "k12.il", - "muni.il", - "net.il", - "org.il", - "im", - "ac.im", - "co.im", - "com.im", - "ltd.co.im", - "net.im", - "org.im", - "plc.co.im", - "tt.im", - "tv.im", - "in", - "co.in", - "firm.in", - "net.in", - "org.in", - "gen.in", - "ind.in", - "nic.in", - "ac.in", - "edu.in", - "res.in", - "gov.in", - "mil.in", - "info", - "int", - "eu.int", - "io", - "com.io", - "iq", - "gov.iq", - "edu.iq", - "mil.iq", - "com.iq", - "org.iq", - "net.iq", - "ir", - "ac.ir", - "co.ir", - "gov.ir", - "id.ir", - "net.ir", - "org.ir", - "sch.ir", - "xn--mgba3a4f16a.ir", - "xn--mgba3a4fra.ir", - "is", - "net.is", - "com.is", - "edu.is", - "gov.is", - "org.is", - "int.is", - "it", - "gov.it", - "edu.it", - "abr.it", - "abruzzo.it", - "aosta-valley.it", - "aostavalley.it", - "bas.it", - "basilicata.it", - "cal.it", - "calabria.it", - "cam.it", - "campania.it", - "emilia-romagna.it", - "emiliaromagna.it", - "emr.it", - "friuli-v-giulia.it", - "friuli-ve-giulia.it", - "friuli-vegiulia.it", - "friuli-venezia-giulia.it", - "friuli-veneziagiulia.it", - "friuli-vgiulia.it", - "friuliv-giulia.it", - "friulive-giulia.it", - "friulivegiulia.it", - "friulivenezia-giulia.it", - "friuliveneziagiulia.it", - "friulivgiulia.it", - "fvg.it", - "laz.it", - "lazio.it", - "lig.it", - "liguria.it", - "lom.it", - "lombardia.it", - "lombardy.it", - "lucania.it", - "mar.it", - "marche.it", - "mol.it", - "molise.it", - "piedmont.it", - "piemonte.it", - "pmn.it", - "pug.it", - "puglia.it", - "sar.it", - "sardegna.it", - "sardinia.it", - "sic.it", - "sicilia.it", - "sicily.it", - "taa.it", - "tos.it", - "toscana.it", - "trentino-a-adige.it", - "trentino-aadige.it", - "trentino-alto-adige.it", - "trentino-altoadige.it", - "trentino-s-tirol.it", - "trentino-stirol.it", - "trentino-sud-tirol.it", - "trentino-sudtirol.it", - "trentino-sued-tirol.it", - "trentino-suedtirol.it", - "trentinoa-adige.it", - "trentinoaadige.it", - "trentinoalto-adige.it", - "trentinoaltoadige.it", - "trentinos-tirol.it", - "trentinostirol.it", - "trentinosud-tirol.it", - "trentinosudtirol.it", - "trentinosued-tirol.it", - "trentinosuedtirol.it", - "tuscany.it", - "umb.it", - "umbria.it", - "val-d-aosta.it", - "val-daosta.it", - "vald-aosta.it", - "valdaosta.it", - "valle-aosta.it", - "valle-d-aosta.it", - "valle-daosta.it", - "valleaosta.it", - "valled-aosta.it", - "valledaosta.it", - "vallee-aoste.it", - "valleeaoste.it", - "vao.it", - "vda.it", - "ven.it", - "veneto.it", - "ag.it", - "agrigento.it", - "al.it", - "alessandria.it", - "alto-adige.it", - "altoadige.it", - "an.it", - "ancona.it", - "andria-barletta-trani.it", - "andria-trani-barletta.it", - "andriabarlettatrani.it", - "andriatranibarletta.it", - "ao.it", - "aosta.it", - "aoste.it", - "ap.it", - "aq.it", - "aquila.it", - "ar.it", - "arezzo.it", - "ascoli-piceno.it", - "ascolipiceno.it", - "asti.it", - "at.it", - "av.it", - "avellino.it", - "ba.it", - "balsan.it", - "bari.it", - "barletta-trani-andria.it", - "barlettatraniandria.it", - "belluno.it", - "benevento.it", - "bergamo.it", - "bg.it", - "bi.it", - "biella.it", - "bl.it", - "bn.it", - "bo.it", - "bologna.it", - "bolzano.it", - "bozen.it", - "br.it", - "brescia.it", - "brindisi.it", - "bs.it", - "bt.it", - "bz.it", - "ca.it", - "cagliari.it", - "caltanissetta.it", - "campidano-medio.it", - "campidanomedio.it", - "campobasso.it", - "carbonia-iglesias.it", - "carboniaiglesias.it", - "carrara-massa.it", - "carraramassa.it", - "caserta.it", - "catania.it", - "catanzaro.it", - "cb.it", - "ce.it", - "cesena-forli.it", - "cesenaforli.it", - "ch.it", - "chieti.it", - "ci.it", - "cl.it", - "cn.it", - "co.it", - "como.it", - "cosenza.it", - "cr.it", - "cremona.it", - "crotone.it", - "cs.it", - "ct.it", - "cuneo.it", - "cz.it", - "dell-ogliastra.it", - "dellogliastra.it", - "en.it", - "enna.it", - "fc.it", - "fe.it", - "fermo.it", - "ferrara.it", - "fg.it", - "fi.it", - "firenze.it", - "florence.it", - "fm.it", - "foggia.it", - "forli-cesena.it", - "forlicesena.it", - "fr.it", - "frosinone.it", - "ge.it", - "genoa.it", - "genova.it", - "go.it", - "gorizia.it", - "gr.it", - "grosseto.it", - "iglesias-carbonia.it", - "iglesiascarbonia.it", - "im.it", - "imperia.it", - "is.it", - "isernia.it", - "kr.it", - "la-spezia.it", - "laquila.it", - "laspezia.it", - "latina.it", - "lc.it", - "le.it", - "lecce.it", - "lecco.it", - "li.it", - "livorno.it", - "lo.it", - "lodi.it", - "lt.it", - "lu.it", - "lucca.it", - "macerata.it", - "mantova.it", - "massa-carrara.it", - "massacarrara.it", - "matera.it", - "mb.it", - "mc.it", - "me.it", - "medio-campidano.it", - "mediocampidano.it", - "messina.it", - "mi.it", - "milan.it", - "milano.it", - "mn.it", - "mo.it", - "modena.it", - "monza-brianza.it", - "monza-e-della-brianza.it", - "monza.it", - "monzabrianza.it", - "monzaebrianza.it", - "monzaedellabrianza.it", - "ms.it", - "mt.it", - "na.it", - "naples.it", - "napoli.it", - "no.it", - "novara.it", - "nu.it", - "nuoro.it", - "og.it", - "ogliastra.it", - "olbia-tempio.it", - "olbiatempio.it", - "or.it", - "oristano.it", - "ot.it", - "pa.it", - "padova.it", - "padua.it", - "palermo.it", - "parma.it", - "pavia.it", - "pc.it", - "pd.it", - "pe.it", - "perugia.it", - "pesaro-urbino.it", - "pesarourbino.it", - "pescara.it", - "pg.it", - "pi.it", - "piacenza.it", - "pisa.it", - "pistoia.it", - "pn.it", - "po.it", - "pordenone.it", - "potenza.it", - "pr.it", - "prato.it", - "pt.it", - "pu.it", - "pv.it", - "pz.it", - "ra.it", - "ragusa.it", - "ravenna.it", - "rc.it", - "re.it", - "reggio-calabria.it", - "reggio-emilia.it", - "reggiocalabria.it", - "reggioemilia.it", - "rg.it", - "ri.it", - "rieti.it", - "rimini.it", - "rm.it", - "rn.it", - "ro.it", - "roma.it", - "rome.it", - "rovigo.it", - "sa.it", - "salerno.it", - "sassari.it", - "savona.it", - "si.it", - "siena.it", - "siracusa.it", - "so.it", - "sondrio.it", - "sp.it", - "sr.it", - "ss.it", - "suedtirol.it", - "sv.it", - "ta.it", - "taranto.it", - "te.it", - "tempio-olbia.it", - "tempioolbia.it", - "teramo.it", - "terni.it", - "tn.it", - "to.it", - "torino.it", - "tp.it", - "tr.it", - "trani-andria-barletta.it", - "trani-barletta-andria.it", - "traniandriabarletta.it", - "tranibarlettaandria.it", - "trapani.it", - "trentino.it", - "trento.it", - "treviso.it", - "trieste.it", - "ts.it", - "turin.it", - "tv.it", - "ud.it", - "udine.it", - "urbino-pesaro.it", - "urbinopesaro.it", - "va.it", - "varese.it", - "vb.it", - "vc.it", - "ve.it", - "venezia.it", - "venice.it", - "verbania.it", - "vercelli.it", - "verona.it", - "vi.it", - "vibo-valentia.it", - "vibovalentia.it", - "vicenza.it", - "viterbo.it", - "vr.it", - "vs.it", - "vt.it", - "vv.it", - "je", - "co.je", - "net.je", - "org.je", - "*.jm", - "jo", - "com.jo", - "org.jo", - "net.jo", - "edu.jo", - "sch.jo", - "gov.jo", - "mil.jo", - "name.jo", - "jobs", - "jp", - "ac.jp", - "ad.jp", - "co.jp", - "ed.jp", - "go.jp", - "gr.jp", - "lg.jp", - "ne.jp", - "or.jp", - "aichi.jp", - "akita.jp", - "aomori.jp", - "chiba.jp", - "ehime.jp", - "fukui.jp", - "fukuoka.jp", - "fukushima.jp", - "gifu.jp", - "gunma.jp", - "hiroshima.jp", - "hokkaido.jp", - "hyogo.jp", - "ibaraki.jp", - "ishikawa.jp", - "iwate.jp", - "kagawa.jp", - "kagoshima.jp", - "kanagawa.jp", - "kochi.jp", - "kumamoto.jp", - "kyoto.jp", - "mie.jp", - "miyagi.jp", - "miyazaki.jp", - "nagano.jp", - "nagasaki.jp", - "nara.jp", - "niigata.jp", - "oita.jp", - "okayama.jp", - "okinawa.jp", - "osaka.jp", - "saga.jp", - "saitama.jp", - "shiga.jp", - "shimane.jp", - "shizuoka.jp", - "tochigi.jp", - "tokushima.jp", - "tokyo.jp", - "tottori.jp", - "toyama.jp", - "wakayama.jp", - "yamagata.jp", - "yamaguchi.jp", - "yamanashi.jp", - "xn--4pvxs.jp", - "xn--vgu402c.jp", - "xn--c3s14m.jp", - "xn--f6qx53a.jp", - "xn--8pvr4u.jp", - "xn--uist22h.jp", - "xn--djrs72d6uy.jp", - "xn--mkru45i.jp", - "xn--0trq7p7nn.jp", - "xn--8ltr62k.jp", - "xn--2m4a15e.jp", - "xn--efvn9s.jp", - "xn--32vp30h.jp", - "xn--4it797k.jp", - "xn--1lqs71d.jp", - "xn--5rtp49c.jp", - "xn--5js045d.jp", - "xn--ehqz56n.jp", - "xn--1lqs03n.jp", - "xn--qqqt11m.jp", - "xn--kbrq7o.jp", - "xn--pssu33l.jp", - "xn--ntsq17g.jp", - "xn--uisz3g.jp", - "xn--6btw5a.jp", - "xn--1ctwo.jp", - "xn--6orx2r.jp", - "xn--rht61e.jp", - "xn--rht27z.jp", - "xn--djty4k.jp", - "xn--nit225k.jp", - "xn--rht3d.jp", - "xn--klty5x.jp", - "xn--kltx9a.jp", - "xn--kltp7d.jp", - "xn--uuwu58a.jp", - "xn--zbx025d.jp", - "xn--ntso0iqx3a.jp", - "xn--elqq16h.jp", - "xn--4it168d.jp", - "xn--klt787d.jp", - "xn--rny31h.jp", - "xn--7t0a264c.jp", - "xn--5rtq34k.jp", - "xn--k7yn95e.jp", - "xn--tor131o.jp", - "xn--d5qv7z876c.jp", - "*.kawasaki.jp", - "*.kitakyushu.jp", - "*.kobe.jp", - "*.nagoya.jp", - "*.sapporo.jp", - "*.sendai.jp", - "*.yokohama.jp", - "!city.kawasaki.jp", - "!city.kitakyushu.jp", - "!city.kobe.jp", - "!city.nagoya.jp", - "!city.sapporo.jp", - "!city.sendai.jp", - "!city.yokohama.jp", - "aisai.aichi.jp", - "ama.aichi.jp", - "anjo.aichi.jp", - "asuke.aichi.jp", - "chiryu.aichi.jp", - "chita.aichi.jp", - "fuso.aichi.jp", - "gamagori.aichi.jp", - "handa.aichi.jp", - "hazu.aichi.jp", - "hekinan.aichi.jp", - "higashiura.aichi.jp", - "ichinomiya.aichi.jp", - "inazawa.aichi.jp", - "inuyama.aichi.jp", - "isshiki.aichi.jp", - "iwakura.aichi.jp", - "kanie.aichi.jp", - "kariya.aichi.jp", - "kasugai.aichi.jp", - "kira.aichi.jp", - "kiyosu.aichi.jp", - "komaki.aichi.jp", - "konan.aichi.jp", - "kota.aichi.jp", - "mihama.aichi.jp", - "miyoshi.aichi.jp", - "nishio.aichi.jp", - "nisshin.aichi.jp", - "obu.aichi.jp", - "oguchi.aichi.jp", - "oharu.aichi.jp", - "okazaki.aichi.jp", - "owariasahi.aichi.jp", - "seto.aichi.jp", - "shikatsu.aichi.jp", - "shinshiro.aichi.jp", - "shitara.aichi.jp", - "tahara.aichi.jp", - "takahama.aichi.jp", - "tobishima.aichi.jp", - "toei.aichi.jp", - "togo.aichi.jp", - "tokai.aichi.jp", - "tokoname.aichi.jp", - "toyoake.aichi.jp", - "toyohashi.aichi.jp", - "toyokawa.aichi.jp", - "toyone.aichi.jp", - "toyota.aichi.jp", - "tsushima.aichi.jp", - "yatomi.aichi.jp", - "akita.akita.jp", - "daisen.akita.jp", - "fujisato.akita.jp", - "gojome.akita.jp", - "hachirogata.akita.jp", - "happou.akita.jp", - "higashinaruse.akita.jp", - "honjo.akita.jp", - "honjyo.akita.jp", - "ikawa.akita.jp", - "kamikoani.akita.jp", - "kamioka.akita.jp", - "katagami.akita.jp", - "kazuno.akita.jp", - "kitaakita.akita.jp", - "kosaka.akita.jp", - "kyowa.akita.jp", - "misato.akita.jp", - "mitane.akita.jp", - "moriyoshi.akita.jp", - "nikaho.akita.jp", - "noshiro.akita.jp", - "odate.akita.jp", - "oga.akita.jp", - "ogata.akita.jp", - "semboku.akita.jp", - "yokote.akita.jp", - "yurihonjo.akita.jp", - "aomori.aomori.jp", - "gonohe.aomori.jp", - "hachinohe.aomori.jp", - "hashikami.aomori.jp", - "hiranai.aomori.jp", - "hirosaki.aomori.jp", - "itayanagi.aomori.jp", - "kuroishi.aomori.jp", - "misawa.aomori.jp", - "mutsu.aomori.jp", - "nakadomari.aomori.jp", - "noheji.aomori.jp", - "oirase.aomori.jp", - "owani.aomori.jp", - "rokunohe.aomori.jp", - "sannohe.aomori.jp", - "shichinohe.aomori.jp", - "shingo.aomori.jp", - "takko.aomori.jp", - "towada.aomori.jp", - "tsugaru.aomori.jp", - "tsuruta.aomori.jp", - "abiko.chiba.jp", - "asahi.chiba.jp", - "chonan.chiba.jp", - "chosei.chiba.jp", - "choshi.chiba.jp", - "chuo.chiba.jp", - "funabashi.chiba.jp", - "futtsu.chiba.jp", - "hanamigawa.chiba.jp", - "ichihara.chiba.jp", - "ichikawa.chiba.jp", - "ichinomiya.chiba.jp", - "inzai.chiba.jp", - "isumi.chiba.jp", - "kamagaya.chiba.jp", - "kamogawa.chiba.jp", - "kashiwa.chiba.jp", - "katori.chiba.jp", - "katsuura.chiba.jp", - "kimitsu.chiba.jp", - "kisarazu.chiba.jp", - "kozaki.chiba.jp", - "kujukuri.chiba.jp", - "kyonan.chiba.jp", - "matsudo.chiba.jp", - "midori.chiba.jp", - "mihama.chiba.jp", - "minamiboso.chiba.jp", - "mobara.chiba.jp", - "mutsuzawa.chiba.jp", - "nagara.chiba.jp", - "nagareyama.chiba.jp", - "narashino.chiba.jp", - "narita.chiba.jp", - "noda.chiba.jp", - "oamishirasato.chiba.jp", - "omigawa.chiba.jp", - "onjuku.chiba.jp", - "otaki.chiba.jp", - "sakae.chiba.jp", - "sakura.chiba.jp", - "shimofusa.chiba.jp", - "shirako.chiba.jp", - "shiroi.chiba.jp", - "shisui.chiba.jp", - "sodegaura.chiba.jp", - "sosa.chiba.jp", - "tako.chiba.jp", - "tateyama.chiba.jp", - "togane.chiba.jp", - "tohnosho.chiba.jp", - "tomisato.chiba.jp", - "urayasu.chiba.jp", - "yachimata.chiba.jp", - "yachiyo.chiba.jp", - "yokaichiba.chiba.jp", - "yokoshibahikari.chiba.jp", - "yotsukaido.chiba.jp", - "ainan.ehime.jp", - "honai.ehime.jp", - "ikata.ehime.jp", - "imabari.ehime.jp", - "iyo.ehime.jp", - "kamijima.ehime.jp", - "kihoku.ehime.jp", - "kumakogen.ehime.jp", - "masaki.ehime.jp", - "matsuno.ehime.jp", - "matsuyama.ehime.jp", - "namikata.ehime.jp", - "niihama.ehime.jp", - "ozu.ehime.jp", - "saijo.ehime.jp", - "seiyo.ehime.jp", - "shikokuchuo.ehime.jp", - "tobe.ehime.jp", - "toon.ehime.jp", - "uchiko.ehime.jp", - "uwajima.ehime.jp", - "yawatahama.ehime.jp", - "echizen.fukui.jp", - "eiheiji.fukui.jp", - "fukui.fukui.jp", - "ikeda.fukui.jp", - "katsuyama.fukui.jp", - "mihama.fukui.jp", - "minamiechizen.fukui.jp", - "obama.fukui.jp", - "ohi.fukui.jp", - "ono.fukui.jp", - "sabae.fukui.jp", - "sakai.fukui.jp", - "takahama.fukui.jp", - "tsuruga.fukui.jp", - "wakasa.fukui.jp", - "ashiya.fukuoka.jp", - "buzen.fukuoka.jp", - "chikugo.fukuoka.jp", - "chikuho.fukuoka.jp", - "chikujo.fukuoka.jp", - "chikushino.fukuoka.jp", - "chikuzen.fukuoka.jp", - "chuo.fukuoka.jp", - "dazaifu.fukuoka.jp", - "fukuchi.fukuoka.jp", - "hakata.fukuoka.jp", - "higashi.fukuoka.jp", - "hirokawa.fukuoka.jp", - "hisayama.fukuoka.jp", - "iizuka.fukuoka.jp", - "inatsuki.fukuoka.jp", - "kaho.fukuoka.jp", - "kasuga.fukuoka.jp", - "kasuya.fukuoka.jp", - "kawara.fukuoka.jp", - "keisen.fukuoka.jp", - "koga.fukuoka.jp", - "kurate.fukuoka.jp", - "kurogi.fukuoka.jp", - "kurume.fukuoka.jp", - "minami.fukuoka.jp", - "miyako.fukuoka.jp", - "miyama.fukuoka.jp", - "miyawaka.fukuoka.jp", - "mizumaki.fukuoka.jp", - "munakata.fukuoka.jp", - "nakagawa.fukuoka.jp", - "nakama.fukuoka.jp", - "nishi.fukuoka.jp", - "nogata.fukuoka.jp", - "ogori.fukuoka.jp", - "okagaki.fukuoka.jp", - "okawa.fukuoka.jp", - "oki.fukuoka.jp", - "omuta.fukuoka.jp", - "onga.fukuoka.jp", - "onojo.fukuoka.jp", - "oto.fukuoka.jp", - "saigawa.fukuoka.jp", - "sasaguri.fukuoka.jp", - "shingu.fukuoka.jp", - "shinyoshitomi.fukuoka.jp", - "shonai.fukuoka.jp", - "soeda.fukuoka.jp", - "sue.fukuoka.jp", - "tachiarai.fukuoka.jp", - "tagawa.fukuoka.jp", - "takata.fukuoka.jp", - "toho.fukuoka.jp", - "toyotsu.fukuoka.jp", - "tsuiki.fukuoka.jp", - "ukiha.fukuoka.jp", - "umi.fukuoka.jp", - "usui.fukuoka.jp", - "yamada.fukuoka.jp", - "yame.fukuoka.jp", - "yanagawa.fukuoka.jp", - "yukuhashi.fukuoka.jp", - "aizubange.fukushima.jp", - "aizumisato.fukushima.jp", - "aizuwakamatsu.fukushima.jp", - "asakawa.fukushima.jp", - "bandai.fukushima.jp", - "date.fukushima.jp", - "fukushima.fukushima.jp", - "furudono.fukushima.jp", - "futaba.fukushima.jp", - "hanawa.fukushima.jp", - "higashi.fukushima.jp", - "hirata.fukushima.jp", - "hirono.fukushima.jp", - "iitate.fukushima.jp", - "inawashiro.fukushima.jp", - "ishikawa.fukushima.jp", - "iwaki.fukushima.jp", - "izumizaki.fukushima.jp", - "kagamiishi.fukushima.jp", - "kaneyama.fukushima.jp", - "kawamata.fukushima.jp", - "kitakata.fukushima.jp", - "kitashiobara.fukushima.jp", - "koori.fukushima.jp", - "koriyama.fukushima.jp", - "kunimi.fukushima.jp", - "miharu.fukushima.jp", - "mishima.fukushima.jp", - "namie.fukushima.jp", - "nango.fukushima.jp", - "nishiaizu.fukushima.jp", - "nishigo.fukushima.jp", - "okuma.fukushima.jp", - "omotego.fukushima.jp", - "ono.fukushima.jp", - "otama.fukushima.jp", - "samegawa.fukushima.jp", - "shimogo.fukushima.jp", - "shirakawa.fukushima.jp", - "showa.fukushima.jp", - "soma.fukushima.jp", - "sukagawa.fukushima.jp", - "taishin.fukushima.jp", - "tamakawa.fukushima.jp", - "tanagura.fukushima.jp", - "tenei.fukushima.jp", - "yabuki.fukushima.jp", - "yamato.fukushima.jp", - "yamatsuri.fukushima.jp", - "yanaizu.fukushima.jp", - "yugawa.fukushima.jp", - "anpachi.gifu.jp", - "ena.gifu.jp", - "gifu.gifu.jp", - "ginan.gifu.jp", - "godo.gifu.jp", - "gujo.gifu.jp", - "hashima.gifu.jp", - "hichiso.gifu.jp", - "hida.gifu.jp", - "higashishirakawa.gifu.jp", - "ibigawa.gifu.jp", - "ikeda.gifu.jp", - "kakamigahara.gifu.jp", - "kani.gifu.jp", - "kasahara.gifu.jp", - "kasamatsu.gifu.jp", - "kawaue.gifu.jp", - "kitagata.gifu.jp", - "mino.gifu.jp", - "minokamo.gifu.jp", - "mitake.gifu.jp", - "mizunami.gifu.jp", - "motosu.gifu.jp", - "nakatsugawa.gifu.jp", - "ogaki.gifu.jp", - "sakahogi.gifu.jp", - "seki.gifu.jp", - "sekigahara.gifu.jp", - "shirakawa.gifu.jp", - "tajimi.gifu.jp", - "takayama.gifu.jp", - "tarui.gifu.jp", - "toki.gifu.jp", - "tomika.gifu.jp", - "wanouchi.gifu.jp", - "yamagata.gifu.jp", - "yaotsu.gifu.jp", - "yoro.gifu.jp", - "annaka.gunma.jp", - "chiyoda.gunma.jp", - "fujioka.gunma.jp", - "higashiagatsuma.gunma.jp", - "isesaki.gunma.jp", - "itakura.gunma.jp", - "kanna.gunma.jp", - "kanra.gunma.jp", - "katashina.gunma.jp", - "kawaba.gunma.jp", - "kiryu.gunma.jp", - "kusatsu.gunma.jp", - "maebashi.gunma.jp", - "meiwa.gunma.jp", - "midori.gunma.jp", - "minakami.gunma.jp", - "naganohara.gunma.jp", - "nakanojo.gunma.jp", - "nanmoku.gunma.jp", - "numata.gunma.jp", - "oizumi.gunma.jp", - "ora.gunma.jp", - "ota.gunma.jp", - "shibukawa.gunma.jp", - "shimonita.gunma.jp", - "shinto.gunma.jp", - "showa.gunma.jp", - "takasaki.gunma.jp", - "takayama.gunma.jp", - "tamamura.gunma.jp", - "tatebayashi.gunma.jp", - "tomioka.gunma.jp", - "tsukiyono.gunma.jp", - "tsumagoi.gunma.jp", - "ueno.gunma.jp", - "yoshioka.gunma.jp", - "asaminami.hiroshima.jp", - "daiwa.hiroshima.jp", - "etajima.hiroshima.jp", - "fuchu.hiroshima.jp", - "fukuyama.hiroshima.jp", - "hatsukaichi.hiroshima.jp", - "higashihiroshima.hiroshima.jp", - "hongo.hiroshima.jp", - "jinsekikogen.hiroshima.jp", - "kaita.hiroshima.jp", - "kui.hiroshima.jp", - "kumano.hiroshima.jp", - "kure.hiroshima.jp", - "mihara.hiroshima.jp", - "miyoshi.hiroshima.jp", - "naka.hiroshima.jp", - "onomichi.hiroshima.jp", - "osakikamijima.hiroshima.jp", - "otake.hiroshima.jp", - "saka.hiroshima.jp", - "sera.hiroshima.jp", - "seranishi.hiroshima.jp", - "shinichi.hiroshima.jp", - "shobara.hiroshima.jp", - "takehara.hiroshima.jp", - "abashiri.hokkaido.jp", - "abira.hokkaido.jp", - "aibetsu.hokkaido.jp", - "akabira.hokkaido.jp", - "akkeshi.hokkaido.jp", - "asahikawa.hokkaido.jp", - "ashibetsu.hokkaido.jp", - "ashoro.hokkaido.jp", - "assabu.hokkaido.jp", - "atsuma.hokkaido.jp", - "bibai.hokkaido.jp", - "biei.hokkaido.jp", - "bifuka.hokkaido.jp", - "bihoro.hokkaido.jp", - "biratori.hokkaido.jp", - "chippubetsu.hokkaido.jp", - "chitose.hokkaido.jp", - "date.hokkaido.jp", - "ebetsu.hokkaido.jp", - "embetsu.hokkaido.jp", - "eniwa.hokkaido.jp", - "erimo.hokkaido.jp", - "esan.hokkaido.jp", - "esashi.hokkaido.jp", - "fukagawa.hokkaido.jp", - "fukushima.hokkaido.jp", - "furano.hokkaido.jp", - "furubira.hokkaido.jp", - "haboro.hokkaido.jp", - "hakodate.hokkaido.jp", - "hamatonbetsu.hokkaido.jp", - "hidaka.hokkaido.jp", - "higashikagura.hokkaido.jp", - "higashikawa.hokkaido.jp", - "hiroo.hokkaido.jp", - "hokuryu.hokkaido.jp", - "hokuto.hokkaido.jp", - "honbetsu.hokkaido.jp", - "horokanai.hokkaido.jp", - "horonobe.hokkaido.jp", - "ikeda.hokkaido.jp", - "imakane.hokkaido.jp", - "ishikari.hokkaido.jp", - "iwamizawa.hokkaido.jp", - "iwanai.hokkaido.jp", - "kamifurano.hokkaido.jp", - "kamikawa.hokkaido.jp", - "kamishihoro.hokkaido.jp", - "kamisunagawa.hokkaido.jp", - "kamoenai.hokkaido.jp", - "kayabe.hokkaido.jp", - "kembuchi.hokkaido.jp", - "kikonai.hokkaido.jp", - "kimobetsu.hokkaido.jp", - "kitahiroshima.hokkaido.jp", - "kitami.hokkaido.jp", - "kiyosato.hokkaido.jp", - "koshimizu.hokkaido.jp", - "kunneppu.hokkaido.jp", - "kuriyama.hokkaido.jp", - "kuromatsunai.hokkaido.jp", - "kushiro.hokkaido.jp", - "kutchan.hokkaido.jp", - "kyowa.hokkaido.jp", - "mashike.hokkaido.jp", - "matsumae.hokkaido.jp", - "mikasa.hokkaido.jp", - "minamifurano.hokkaido.jp", - "mombetsu.hokkaido.jp", - "moseushi.hokkaido.jp", - "mukawa.hokkaido.jp", - "muroran.hokkaido.jp", - "naie.hokkaido.jp", - "nakagawa.hokkaido.jp", - "nakasatsunai.hokkaido.jp", - "nakatombetsu.hokkaido.jp", - "nanae.hokkaido.jp", - "nanporo.hokkaido.jp", - "nayoro.hokkaido.jp", - "nemuro.hokkaido.jp", - "niikappu.hokkaido.jp", - "niki.hokkaido.jp", - "nishiokoppe.hokkaido.jp", - "noboribetsu.hokkaido.jp", - "numata.hokkaido.jp", - "obihiro.hokkaido.jp", - "obira.hokkaido.jp", - "oketo.hokkaido.jp", - "okoppe.hokkaido.jp", - "otaru.hokkaido.jp", - "otobe.hokkaido.jp", - "otofuke.hokkaido.jp", - "otoineppu.hokkaido.jp", - "oumu.hokkaido.jp", - "ozora.hokkaido.jp", - "pippu.hokkaido.jp", - "rankoshi.hokkaido.jp", - "rebun.hokkaido.jp", - "rikubetsu.hokkaido.jp", - "rishiri.hokkaido.jp", - "rishirifuji.hokkaido.jp", - "saroma.hokkaido.jp", - "sarufutsu.hokkaido.jp", - "shakotan.hokkaido.jp", - "shari.hokkaido.jp", - "shibecha.hokkaido.jp", - "shibetsu.hokkaido.jp", - "shikabe.hokkaido.jp", - "shikaoi.hokkaido.jp", - "shimamaki.hokkaido.jp", - "shimizu.hokkaido.jp", - "shimokawa.hokkaido.jp", - "shinshinotsu.hokkaido.jp", - "shintoku.hokkaido.jp", - "shiranuka.hokkaido.jp", - "shiraoi.hokkaido.jp", - "shiriuchi.hokkaido.jp", - "sobetsu.hokkaido.jp", - "sunagawa.hokkaido.jp", - "taiki.hokkaido.jp", - "takasu.hokkaido.jp", - "takikawa.hokkaido.jp", - "takinoue.hokkaido.jp", - "teshikaga.hokkaido.jp", - "tobetsu.hokkaido.jp", - "tohma.hokkaido.jp", - "tomakomai.hokkaido.jp", - "tomari.hokkaido.jp", - "toya.hokkaido.jp", - "toyako.hokkaido.jp", - "toyotomi.hokkaido.jp", - "toyoura.hokkaido.jp", - "tsubetsu.hokkaido.jp", - "tsukigata.hokkaido.jp", - "urakawa.hokkaido.jp", - "urausu.hokkaido.jp", - "uryu.hokkaido.jp", - "utashinai.hokkaido.jp", - "wakkanai.hokkaido.jp", - "wassamu.hokkaido.jp", - "yakumo.hokkaido.jp", - "yoichi.hokkaido.jp", - "aioi.hyogo.jp", - "akashi.hyogo.jp", - "ako.hyogo.jp", - "amagasaki.hyogo.jp", - "aogaki.hyogo.jp", - "asago.hyogo.jp", - "ashiya.hyogo.jp", - "awaji.hyogo.jp", - "fukusaki.hyogo.jp", - "goshiki.hyogo.jp", - "harima.hyogo.jp", - "himeji.hyogo.jp", - "ichikawa.hyogo.jp", - "inagawa.hyogo.jp", - "itami.hyogo.jp", - "kakogawa.hyogo.jp", - "kamigori.hyogo.jp", - "kamikawa.hyogo.jp", - "kasai.hyogo.jp", - "kasuga.hyogo.jp", - "kawanishi.hyogo.jp", - "miki.hyogo.jp", - "minamiawaji.hyogo.jp", - "nishinomiya.hyogo.jp", - "nishiwaki.hyogo.jp", - "ono.hyogo.jp", - "sanda.hyogo.jp", - "sannan.hyogo.jp", - "sasayama.hyogo.jp", - "sayo.hyogo.jp", - "shingu.hyogo.jp", - "shinonsen.hyogo.jp", - "shiso.hyogo.jp", - "sumoto.hyogo.jp", - "taishi.hyogo.jp", - "taka.hyogo.jp", - "takarazuka.hyogo.jp", - "takasago.hyogo.jp", - "takino.hyogo.jp", - "tamba.hyogo.jp", - "tatsuno.hyogo.jp", - "toyooka.hyogo.jp", - "yabu.hyogo.jp", - "yashiro.hyogo.jp", - "yoka.hyogo.jp", - "yokawa.hyogo.jp", - "ami.ibaraki.jp", - "asahi.ibaraki.jp", - "bando.ibaraki.jp", - "chikusei.ibaraki.jp", - "daigo.ibaraki.jp", - "fujishiro.ibaraki.jp", - "hitachi.ibaraki.jp", - "hitachinaka.ibaraki.jp", - "hitachiomiya.ibaraki.jp", - "hitachiota.ibaraki.jp", - "ibaraki.ibaraki.jp", - "ina.ibaraki.jp", - "inashiki.ibaraki.jp", - "itako.ibaraki.jp", - "iwama.ibaraki.jp", - "joso.ibaraki.jp", - "kamisu.ibaraki.jp", - "kasama.ibaraki.jp", - "kashima.ibaraki.jp", - "kasumigaura.ibaraki.jp", - "koga.ibaraki.jp", - "miho.ibaraki.jp", - "mito.ibaraki.jp", - "moriya.ibaraki.jp", - "naka.ibaraki.jp", - "namegata.ibaraki.jp", - "oarai.ibaraki.jp", - "ogawa.ibaraki.jp", - "omitama.ibaraki.jp", - "ryugasaki.ibaraki.jp", - "sakai.ibaraki.jp", - "sakuragawa.ibaraki.jp", - "shimodate.ibaraki.jp", - "shimotsuma.ibaraki.jp", - "shirosato.ibaraki.jp", - "sowa.ibaraki.jp", - "suifu.ibaraki.jp", - "takahagi.ibaraki.jp", - "tamatsukuri.ibaraki.jp", - "tokai.ibaraki.jp", - "tomobe.ibaraki.jp", - "tone.ibaraki.jp", - "toride.ibaraki.jp", - "tsuchiura.ibaraki.jp", - "tsukuba.ibaraki.jp", - "uchihara.ibaraki.jp", - "ushiku.ibaraki.jp", - "yachiyo.ibaraki.jp", - "yamagata.ibaraki.jp", - "yawara.ibaraki.jp", - "yuki.ibaraki.jp", - "anamizu.ishikawa.jp", - "hakui.ishikawa.jp", - "hakusan.ishikawa.jp", - "kaga.ishikawa.jp", - "kahoku.ishikawa.jp", - "kanazawa.ishikawa.jp", - "kawakita.ishikawa.jp", - "komatsu.ishikawa.jp", - "nakanoto.ishikawa.jp", - "nanao.ishikawa.jp", - "nomi.ishikawa.jp", - "nonoichi.ishikawa.jp", - "noto.ishikawa.jp", - "shika.ishikawa.jp", - "suzu.ishikawa.jp", - "tsubata.ishikawa.jp", - "tsurugi.ishikawa.jp", - "uchinada.ishikawa.jp", - "wajima.ishikawa.jp", - "fudai.iwate.jp", - "fujisawa.iwate.jp", - "hanamaki.iwate.jp", - "hiraizumi.iwate.jp", - "hirono.iwate.jp", - "ichinohe.iwate.jp", - "ichinoseki.iwate.jp", - "iwaizumi.iwate.jp", - "iwate.iwate.jp", - "joboji.iwate.jp", - "kamaishi.iwate.jp", - "kanegasaki.iwate.jp", - "karumai.iwate.jp", - "kawai.iwate.jp", - "kitakami.iwate.jp", - "kuji.iwate.jp", - "kunohe.iwate.jp", - "kuzumaki.iwate.jp", - "miyako.iwate.jp", - "mizusawa.iwate.jp", - "morioka.iwate.jp", - "ninohe.iwate.jp", - "noda.iwate.jp", - "ofunato.iwate.jp", - "oshu.iwate.jp", - "otsuchi.iwate.jp", - "rikuzentakata.iwate.jp", - "shiwa.iwate.jp", - "shizukuishi.iwate.jp", - "sumita.iwate.jp", - "tanohata.iwate.jp", - "tono.iwate.jp", - "yahaba.iwate.jp", - "yamada.iwate.jp", - "ayagawa.kagawa.jp", - "higashikagawa.kagawa.jp", - "kanonji.kagawa.jp", - "kotohira.kagawa.jp", - "manno.kagawa.jp", - "marugame.kagawa.jp", - "mitoyo.kagawa.jp", - "naoshima.kagawa.jp", - "sanuki.kagawa.jp", - "tadotsu.kagawa.jp", - "takamatsu.kagawa.jp", - "tonosho.kagawa.jp", - "uchinomi.kagawa.jp", - "utazu.kagawa.jp", - "zentsuji.kagawa.jp", - "akune.kagoshima.jp", - "amami.kagoshima.jp", - "hioki.kagoshima.jp", - "isa.kagoshima.jp", - "isen.kagoshima.jp", - "izumi.kagoshima.jp", - "kagoshima.kagoshima.jp", - "kanoya.kagoshima.jp", - "kawanabe.kagoshima.jp", - "kinko.kagoshima.jp", - "kouyama.kagoshima.jp", - "makurazaki.kagoshima.jp", - "matsumoto.kagoshima.jp", - "minamitane.kagoshima.jp", - "nakatane.kagoshima.jp", - "nishinoomote.kagoshima.jp", - "satsumasendai.kagoshima.jp", - "soo.kagoshima.jp", - "tarumizu.kagoshima.jp", - "yusui.kagoshima.jp", - "aikawa.kanagawa.jp", - "atsugi.kanagawa.jp", - "ayase.kanagawa.jp", - "chigasaki.kanagawa.jp", - "ebina.kanagawa.jp", - "fujisawa.kanagawa.jp", - "hadano.kanagawa.jp", - "hakone.kanagawa.jp", - "hiratsuka.kanagawa.jp", - "isehara.kanagawa.jp", - "kaisei.kanagawa.jp", - "kamakura.kanagawa.jp", - "kiyokawa.kanagawa.jp", - "matsuda.kanagawa.jp", - "minamiashigara.kanagawa.jp", - "miura.kanagawa.jp", - "nakai.kanagawa.jp", - "ninomiya.kanagawa.jp", - "odawara.kanagawa.jp", - "oi.kanagawa.jp", - "oiso.kanagawa.jp", - "sagamihara.kanagawa.jp", - "samukawa.kanagawa.jp", - "tsukui.kanagawa.jp", - "yamakita.kanagawa.jp", - "yamato.kanagawa.jp", - "yokosuka.kanagawa.jp", - "yugawara.kanagawa.jp", - "zama.kanagawa.jp", - "zushi.kanagawa.jp", - "aki.kochi.jp", - "geisei.kochi.jp", - "hidaka.kochi.jp", - "higashitsuno.kochi.jp", - "ino.kochi.jp", - "kagami.kochi.jp", - "kami.kochi.jp", - "kitagawa.kochi.jp", - "kochi.kochi.jp", - "mihara.kochi.jp", - "motoyama.kochi.jp", - "muroto.kochi.jp", - "nahari.kochi.jp", - "nakamura.kochi.jp", - "nankoku.kochi.jp", - "nishitosa.kochi.jp", - "niyodogawa.kochi.jp", - "ochi.kochi.jp", - "okawa.kochi.jp", - "otoyo.kochi.jp", - "otsuki.kochi.jp", - "sakawa.kochi.jp", - "sukumo.kochi.jp", - "susaki.kochi.jp", - "tosa.kochi.jp", - "tosashimizu.kochi.jp", - "toyo.kochi.jp", - "tsuno.kochi.jp", - "umaji.kochi.jp", - "yasuda.kochi.jp", - "yusuhara.kochi.jp", - "amakusa.kumamoto.jp", - "arao.kumamoto.jp", - "aso.kumamoto.jp", - "choyo.kumamoto.jp", - "gyokuto.kumamoto.jp", - "hitoyoshi.kumamoto.jp", - "kamiamakusa.kumamoto.jp", - "kashima.kumamoto.jp", - "kikuchi.kumamoto.jp", - "kosa.kumamoto.jp", - "kumamoto.kumamoto.jp", - "mashiki.kumamoto.jp", - "mifune.kumamoto.jp", - "minamata.kumamoto.jp", - "minamioguni.kumamoto.jp", - "nagasu.kumamoto.jp", - "nishihara.kumamoto.jp", - "oguni.kumamoto.jp", - "ozu.kumamoto.jp", - "sumoto.kumamoto.jp", - "takamori.kumamoto.jp", - "uki.kumamoto.jp", - "uto.kumamoto.jp", - "yamaga.kumamoto.jp", - "yamato.kumamoto.jp", - "yatsushiro.kumamoto.jp", - "ayabe.kyoto.jp", - "fukuchiyama.kyoto.jp", - "higashiyama.kyoto.jp", - "ide.kyoto.jp", - "ine.kyoto.jp", - "joyo.kyoto.jp", - "kameoka.kyoto.jp", - "kamo.kyoto.jp", - "kita.kyoto.jp", - "kizu.kyoto.jp", - "kumiyama.kyoto.jp", - "kyotamba.kyoto.jp", - "kyotanabe.kyoto.jp", - "kyotango.kyoto.jp", - "maizuru.kyoto.jp", - "minami.kyoto.jp", - "minamiyamashiro.kyoto.jp", - "miyazu.kyoto.jp", - "muko.kyoto.jp", - "nagaokakyo.kyoto.jp", - "nakagyo.kyoto.jp", - "nantan.kyoto.jp", - "oyamazaki.kyoto.jp", - "sakyo.kyoto.jp", - "seika.kyoto.jp", - "tanabe.kyoto.jp", - "uji.kyoto.jp", - "ujitawara.kyoto.jp", - "wazuka.kyoto.jp", - "yamashina.kyoto.jp", - "yawata.kyoto.jp", - "asahi.mie.jp", - "inabe.mie.jp", - "ise.mie.jp", - "kameyama.mie.jp", - "kawagoe.mie.jp", - "kiho.mie.jp", - "kisosaki.mie.jp", - "kiwa.mie.jp", - "komono.mie.jp", - "kumano.mie.jp", - "kuwana.mie.jp", - "matsusaka.mie.jp", - "meiwa.mie.jp", - "mihama.mie.jp", - "minamiise.mie.jp", - "misugi.mie.jp", - "miyama.mie.jp", - "nabari.mie.jp", - "shima.mie.jp", - "suzuka.mie.jp", - "tado.mie.jp", - "taiki.mie.jp", - "taki.mie.jp", - "tamaki.mie.jp", - "toba.mie.jp", - "tsu.mie.jp", - "udono.mie.jp", - "ureshino.mie.jp", - "watarai.mie.jp", - "yokkaichi.mie.jp", - "furukawa.miyagi.jp", - "higashimatsushima.miyagi.jp", - "ishinomaki.miyagi.jp", - "iwanuma.miyagi.jp", - "kakuda.miyagi.jp", - "kami.miyagi.jp", - "kawasaki.miyagi.jp", - "kesennuma.miyagi.jp", - "marumori.miyagi.jp", - "matsushima.miyagi.jp", - "minamisanriku.miyagi.jp", - "misato.miyagi.jp", - "murata.miyagi.jp", - "natori.miyagi.jp", - "ogawara.miyagi.jp", - "ohira.miyagi.jp", - "onagawa.miyagi.jp", - "osaki.miyagi.jp", - "rifu.miyagi.jp", - "semine.miyagi.jp", - "shibata.miyagi.jp", - "shichikashuku.miyagi.jp", - "shikama.miyagi.jp", - "shiogama.miyagi.jp", - "shiroishi.miyagi.jp", - "tagajo.miyagi.jp", - "taiwa.miyagi.jp", - "tome.miyagi.jp", - "tomiya.miyagi.jp", - "wakuya.miyagi.jp", - "watari.miyagi.jp", - "yamamoto.miyagi.jp", - "zao.miyagi.jp", - "aya.miyazaki.jp", - "ebino.miyazaki.jp", - "gokase.miyazaki.jp", - "hyuga.miyazaki.jp", - "kadogawa.miyazaki.jp", - "kawaminami.miyazaki.jp", - "kijo.miyazaki.jp", - "kitagawa.miyazaki.jp", - "kitakata.miyazaki.jp", - "kitaura.miyazaki.jp", - "kobayashi.miyazaki.jp", - "kunitomi.miyazaki.jp", - "kushima.miyazaki.jp", - "mimata.miyazaki.jp", - "miyakonojo.miyazaki.jp", - "miyazaki.miyazaki.jp", - "morotsuka.miyazaki.jp", - "nichinan.miyazaki.jp", - "nishimera.miyazaki.jp", - "nobeoka.miyazaki.jp", - "saito.miyazaki.jp", - "shiiba.miyazaki.jp", - "shintomi.miyazaki.jp", - "takaharu.miyazaki.jp", - "takanabe.miyazaki.jp", - "takazaki.miyazaki.jp", - "tsuno.miyazaki.jp", - "achi.nagano.jp", - "agematsu.nagano.jp", - "anan.nagano.jp", - "aoki.nagano.jp", - "asahi.nagano.jp", - "azumino.nagano.jp", - "chikuhoku.nagano.jp", - "chikuma.nagano.jp", - "chino.nagano.jp", - "fujimi.nagano.jp", - "hakuba.nagano.jp", - "hara.nagano.jp", - "hiraya.nagano.jp", - "iida.nagano.jp", - "iijima.nagano.jp", - "iiyama.nagano.jp", - "iizuna.nagano.jp", - "ikeda.nagano.jp", - "ikusaka.nagano.jp", - "ina.nagano.jp", - "karuizawa.nagano.jp", - "kawakami.nagano.jp", - "kiso.nagano.jp", - "kisofukushima.nagano.jp", - "kitaaiki.nagano.jp", - "komagane.nagano.jp", - "komoro.nagano.jp", - "matsukawa.nagano.jp", - "matsumoto.nagano.jp", - "miasa.nagano.jp", - "minamiaiki.nagano.jp", - "minamimaki.nagano.jp", - "minamiminowa.nagano.jp", - "minowa.nagano.jp", - "miyada.nagano.jp", - "miyota.nagano.jp", - "mochizuki.nagano.jp", - "nagano.nagano.jp", - "nagawa.nagano.jp", - "nagiso.nagano.jp", - "nakagawa.nagano.jp", - "nakano.nagano.jp", - "nozawaonsen.nagano.jp", - "obuse.nagano.jp", - "ogawa.nagano.jp", - "okaya.nagano.jp", - "omachi.nagano.jp", - "omi.nagano.jp", - "ookuwa.nagano.jp", - "ooshika.nagano.jp", - "otaki.nagano.jp", - "otari.nagano.jp", - "sakae.nagano.jp", - "sakaki.nagano.jp", - "saku.nagano.jp", - "sakuho.nagano.jp", - "shimosuwa.nagano.jp", - "shinanomachi.nagano.jp", - "shiojiri.nagano.jp", - "suwa.nagano.jp", - "suzaka.nagano.jp", - "takagi.nagano.jp", - "takamori.nagano.jp", - "takayama.nagano.jp", - "tateshina.nagano.jp", - "tatsuno.nagano.jp", - "togakushi.nagano.jp", - "togura.nagano.jp", - "tomi.nagano.jp", - "ueda.nagano.jp", - "wada.nagano.jp", - "yamagata.nagano.jp", - "yamanouchi.nagano.jp", - "yasaka.nagano.jp", - "yasuoka.nagano.jp", - "chijiwa.nagasaki.jp", - "futsu.nagasaki.jp", - "goto.nagasaki.jp", - "hasami.nagasaki.jp", - "hirado.nagasaki.jp", - "iki.nagasaki.jp", - "isahaya.nagasaki.jp", - "kawatana.nagasaki.jp", - "kuchinotsu.nagasaki.jp", - "matsuura.nagasaki.jp", - "nagasaki.nagasaki.jp", - "obama.nagasaki.jp", - "omura.nagasaki.jp", - "oseto.nagasaki.jp", - "saikai.nagasaki.jp", - "sasebo.nagasaki.jp", - "seihi.nagasaki.jp", - "shimabara.nagasaki.jp", - "shinkamigoto.nagasaki.jp", - "togitsu.nagasaki.jp", - "tsushima.nagasaki.jp", - "unzen.nagasaki.jp", - "ando.nara.jp", - "gose.nara.jp", - "heguri.nara.jp", - "higashiyoshino.nara.jp", - "ikaruga.nara.jp", - "ikoma.nara.jp", - "kamikitayama.nara.jp", - "kanmaki.nara.jp", - "kashiba.nara.jp", - "kashihara.nara.jp", - "katsuragi.nara.jp", - "kawai.nara.jp", - "kawakami.nara.jp", - "kawanishi.nara.jp", - "koryo.nara.jp", - "kurotaki.nara.jp", - "mitsue.nara.jp", - "miyake.nara.jp", - "nara.nara.jp", - "nosegawa.nara.jp", - "oji.nara.jp", - "ouda.nara.jp", - "oyodo.nara.jp", - "sakurai.nara.jp", - "sango.nara.jp", - "shimoichi.nara.jp", - "shimokitayama.nara.jp", - "shinjo.nara.jp", - "soni.nara.jp", - "takatori.nara.jp", - "tawaramoto.nara.jp", - "tenkawa.nara.jp", - "tenri.nara.jp", - "uda.nara.jp", - "yamatokoriyama.nara.jp", - "yamatotakada.nara.jp", - "yamazoe.nara.jp", - "yoshino.nara.jp", - "aga.niigata.jp", - "agano.niigata.jp", - "gosen.niigata.jp", - "itoigawa.niigata.jp", - "izumozaki.niigata.jp", - "joetsu.niigata.jp", - "kamo.niigata.jp", - "kariwa.niigata.jp", - "kashiwazaki.niigata.jp", - "minamiuonuma.niigata.jp", - "mitsuke.niigata.jp", - "muika.niigata.jp", - "murakami.niigata.jp", - "myoko.niigata.jp", - "nagaoka.niigata.jp", - "niigata.niigata.jp", - "ojiya.niigata.jp", - "omi.niigata.jp", - "sado.niigata.jp", - "sanjo.niigata.jp", - "seiro.niigata.jp", - "seirou.niigata.jp", - "sekikawa.niigata.jp", - "shibata.niigata.jp", - "tagami.niigata.jp", - "tainai.niigata.jp", - "tochio.niigata.jp", - "tokamachi.niigata.jp", - "tsubame.niigata.jp", - "tsunan.niigata.jp", - "uonuma.niigata.jp", - "yahiko.niigata.jp", - "yoita.niigata.jp", - "yuzawa.niigata.jp", - "beppu.oita.jp", - "bungoono.oita.jp", - "bungotakada.oita.jp", - "hasama.oita.jp", - "hiji.oita.jp", - "himeshima.oita.jp", - "hita.oita.jp", - "kamitsue.oita.jp", - "kokonoe.oita.jp", - "kuju.oita.jp", - "kunisaki.oita.jp", - "kusu.oita.jp", - "oita.oita.jp", - "saiki.oita.jp", - "taketa.oita.jp", - "tsukumi.oita.jp", - "usa.oita.jp", - "usuki.oita.jp", - "yufu.oita.jp", - "akaiwa.okayama.jp", - "asakuchi.okayama.jp", - "bizen.okayama.jp", - "hayashima.okayama.jp", - "ibara.okayama.jp", - "kagamino.okayama.jp", - "kasaoka.okayama.jp", - "kibichuo.okayama.jp", - "kumenan.okayama.jp", - "kurashiki.okayama.jp", - "maniwa.okayama.jp", - "misaki.okayama.jp", - "nagi.okayama.jp", - "niimi.okayama.jp", - "nishiawakura.okayama.jp", - "okayama.okayama.jp", - "satosho.okayama.jp", - "setouchi.okayama.jp", - "shinjo.okayama.jp", - "shoo.okayama.jp", - "soja.okayama.jp", - "takahashi.okayama.jp", - "tamano.okayama.jp", - "tsuyama.okayama.jp", - "wake.okayama.jp", - "yakage.okayama.jp", - "aguni.okinawa.jp", - "ginowan.okinawa.jp", - "ginoza.okinawa.jp", - "gushikami.okinawa.jp", - "haebaru.okinawa.jp", - "higashi.okinawa.jp", - "hirara.okinawa.jp", - "iheya.okinawa.jp", - "ishigaki.okinawa.jp", - "ishikawa.okinawa.jp", - "itoman.okinawa.jp", - "izena.okinawa.jp", - "kadena.okinawa.jp", - "kin.okinawa.jp", - "kitadaito.okinawa.jp", - "kitanakagusuku.okinawa.jp", - "kumejima.okinawa.jp", - "kunigami.okinawa.jp", - "minamidaito.okinawa.jp", - "motobu.okinawa.jp", - "nago.okinawa.jp", - "naha.okinawa.jp", - "nakagusuku.okinawa.jp", - "nakijin.okinawa.jp", - "nanjo.okinawa.jp", - "nishihara.okinawa.jp", - "ogimi.okinawa.jp", - "okinawa.okinawa.jp", - "onna.okinawa.jp", - "shimoji.okinawa.jp", - "taketomi.okinawa.jp", - "tarama.okinawa.jp", - "tokashiki.okinawa.jp", - "tomigusuku.okinawa.jp", - "tonaki.okinawa.jp", - "urasoe.okinawa.jp", - "uruma.okinawa.jp", - "yaese.okinawa.jp", - "yomitan.okinawa.jp", - "yonabaru.okinawa.jp", - "yonaguni.okinawa.jp", - "zamami.okinawa.jp", - "abeno.osaka.jp", - "chihayaakasaka.osaka.jp", - "chuo.osaka.jp", - "daito.osaka.jp", - "fujiidera.osaka.jp", - "habikino.osaka.jp", - "hannan.osaka.jp", - "higashiosaka.osaka.jp", - "higashisumiyoshi.osaka.jp", - "higashiyodogawa.osaka.jp", - "hirakata.osaka.jp", - "ibaraki.osaka.jp", - "ikeda.osaka.jp", - "izumi.osaka.jp", - "izumiotsu.osaka.jp", - "izumisano.osaka.jp", - "kadoma.osaka.jp", - "kaizuka.osaka.jp", - "kanan.osaka.jp", - "kashiwara.osaka.jp", - "katano.osaka.jp", - "kawachinagano.osaka.jp", - "kishiwada.osaka.jp", - "kita.osaka.jp", - "kumatori.osaka.jp", - "matsubara.osaka.jp", - "minato.osaka.jp", - "minoh.osaka.jp", - "misaki.osaka.jp", - "moriguchi.osaka.jp", - "neyagawa.osaka.jp", - "nishi.osaka.jp", - "nose.osaka.jp", - "osakasayama.osaka.jp", - "sakai.osaka.jp", - "sayama.osaka.jp", - "sennan.osaka.jp", - "settsu.osaka.jp", - "shijonawate.osaka.jp", - "shimamoto.osaka.jp", - "suita.osaka.jp", - "tadaoka.osaka.jp", - "taishi.osaka.jp", - "tajiri.osaka.jp", - "takaishi.osaka.jp", - "takatsuki.osaka.jp", - "tondabayashi.osaka.jp", - "toyonaka.osaka.jp", - "toyono.osaka.jp", - "yao.osaka.jp", - "ariake.saga.jp", - "arita.saga.jp", - "fukudomi.saga.jp", - "genkai.saga.jp", - "hamatama.saga.jp", - "hizen.saga.jp", - "imari.saga.jp", - "kamimine.saga.jp", - "kanzaki.saga.jp", - "karatsu.saga.jp", - "kashima.saga.jp", - "kitagata.saga.jp", - "kitahata.saga.jp", - "kiyama.saga.jp", - "kouhoku.saga.jp", - "kyuragi.saga.jp", - "nishiarita.saga.jp", - "ogi.saga.jp", - "omachi.saga.jp", - "ouchi.saga.jp", - "saga.saga.jp", - "shiroishi.saga.jp", - "taku.saga.jp", - "tara.saga.jp", - "tosu.saga.jp", - "yoshinogari.saga.jp", - "arakawa.saitama.jp", - "asaka.saitama.jp", - "chichibu.saitama.jp", - "fujimi.saitama.jp", - "fujimino.saitama.jp", - "fukaya.saitama.jp", - "hanno.saitama.jp", - "hanyu.saitama.jp", - "hasuda.saitama.jp", - "hatogaya.saitama.jp", - "hatoyama.saitama.jp", - "hidaka.saitama.jp", - "higashichichibu.saitama.jp", - "higashimatsuyama.saitama.jp", - "honjo.saitama.jp", - "ina.saitama.jp", - "iruma.saitama.jp", - "iwatsuki.saitama.jp", - "kamiizumi.saitama.jp", - "kamikawa.saitama.jp", - "kamisato.saitama.jp", - "kasukabe.saitama.jp", - "kawagoe.saitama.jp", - "kawaguchi.saitama.jp", - "kawajima.saitama.jp", - "kazo.saitama.jp", - "kitamoto.saitama.jp", - "koshigaya.saitama.jp", - "kounosu.saitama.jp", - "kuki.saitama.jp", - "kumagaya.saitama.jp", - "matsubushi.saitama.jp", - "minano.saitama.jp", - "misato.saitama.jp", - "miyashiro.saitama.jp", - "miyoshi.saitama.jp", - "moroyama.saitama.jp", - "nagatoro.saitama.jp", - "namegawa.saitama.jp", - "niiza.saitama.jp", - "ogano.saitama.jp", - "ogawa.saitama.jp", - "ogose.saitama.jp", - "okegawa.saitama.jp", - "omiya.saitama.jp", - "otaki.saitama.jp", - "ranzan.saitama.jp", - "ryokami.saitama.jp", - "saitama.saitama.jp", - "sakado.saitama.jp", - "satte.saitama.jp", - "sayama.saitama.jp", - "shiki.saitama.jp", - "shiraoka.saitama.jp", - "soka.saitama.jp", - "sugito.saitama.jp", - "toda.saitama.jp", - "tokigawa.saitama.jp", - "tokorozawa.saitama.jp", - "tsurugashima.saitama.jp", - "urawa.saitama.jp", - "warabi.saitama.jp", - "yashio.saitama.jp", - "yokoze.saitama.jp", - "yono.saitama.jp", - "yorii.saitama.jp", - "yoshida.saitama.jp", - "yoshikawa.saitama.jp", - "yoshimi.saitama.jp", - "aisho.shiga.jp", - "gamo.shiga.jp", - "higashiomi.shiga.jp", - "hikone.shiga.jp", - "koka.shiga.jp", - "konan.shiga.jp", - "kosei.shiga.jp", - "koto.shiga.jp", - "kusatsu.shiga.jp", - "maibara.shiga.jp", - "moriyama.shiga.jp", - "nagahama.shiga.jp", - "nishiazai.shiga.jp", - "notogawa.shiga.jp", - "omihachiman.shiga.jp", - "otsu.shiga.jp", - "ritto.shiga.jp", - "ryuoh.shiga.jp", - "takashima.shiga.jp", - "takatsuki.shiga.jp", - "torahime.shiga.jp", - "toyosato.shiga.jp", - "yasu.shiga.jp", - "akagi.shimane.jp", - "ama.shimane.jp", - "gotsu.shimane.jp", - "hamada.shimane.jp", - "higashiizumo.shimane.jp", - "hikawa.shimane.jp", - "hikimi.shimane.jp", - "izumo.shimane.jp", - "kakinoki.shimane.jp", - "masuda.shimane.jp", - "matsue.shimane.jp", - "misato.shimane.jp", - "nishinoshima.shimane.jp", - "ohda.shimane.jp", - "okinoshima.shimane.jp", - "okuizumo.shimane.jp", - "shimane.shimane.jp", - "tamayu.shimane.jp", - "tsuwano.shimane.jp", - "unnan.shimane.jp", - "yakumo.shimane.jp", - "yasugi.shimane.jp", - "yatsuka.shimane.jp", - "arai.shizuoka.jp", - "atami.shizuoka.jp", - "fuji.shizuoka.jp", - "fujieda.shizuoka.jp", - "fujikawa.shizuoka.jp", - "fujinomiya.shizuoka.jp", - "fukuroi.shizuoka.jp", - "gotemba.shizuoka.jp", - "haibara.shizuoka.jp", - "hamamatsu.shizuoka.jp", - "higashiizu.shizuoka.jp", - "ito.shizuoka.jp", - "iwata.shizuoka.jp", - "izu.shizuoka.jp", - "izunokuni.shizuoka.jp", - "kakegawa.shizuoka.jp", - "kannami.shizuoka.jp", - "kawanehon.shizuoka.jp", - "kawazu.shizuoka.jp", - "kikugawa.shizuoka.jp", - "kosai.shizuoka.jp", - "makinohara.shizuoka.jp", - "matsuzaki.shizuoka.jp", - "minamiizu.shizuoka.jp", - "mishima.shizuoka.jp", - "morimachi.shizuoka.jp", - "nishiizu.shizuoka.jp", - "numazu.shizuoka.jp", - "omaezaki.shizuoka.jp", - "shimada.shizuoka.jp", - "shimizu.shizuoka.jp", - "shimoda.shizuoka.jp", - "shizuoka.shizuoka.jp", - "susono.shizuoka.jp", - "yaizu.shizuoka.jp", - "yoshida.shizuoka.jp", - "ashikaga.tochigi.jp", - "bato.tochigi.jp", - "haga.tochigi.jp", - "ichikai.tochigi.jp", - "iwafune.tochigi.jp", - "kaminokawa.tochigi.jp", - "kanuma.tochigi.jp", - "karasuyama.tochigi.jp", - "kuroiso.tochigi.jp", - "mashiko.tochigi.jp", - "mibu.tochigi.jp", - "moka.tochigi.jp", - "motegi.tochigi.jp", - "nasu.tochigi.jp", - "nasushiobara.tochigi.jp", - "nikko.tochigi.jp", - "nishikata.tochigi.jp", - "nogi.tochigi.jp", - "ohira.tochigi.jp", - "ohtawara.tochigi.jp", - "oyama.tochigi.jp", - "sakura.tochigi.jp", - "sano.tochigi.jp", - "shimotsuke.tochigi.jp", - "shioya.tochigi.jp", - "takanezawa.tochigi.jp", - "tochigi.tochigi.jp", - "tsuga.tochigi.jp", - "ujiie.tochigi.jp", - "utsunomiya.tochigi.jp", - "yaita.tochigi.jp", - "aizumi.tokushima.jp", - "anan.tokushima.jp", - "ichiba.tokushima.jp", - "itano.tokushima.jp", - "kainan.tokushima.jp", - "komatsushima.tokushima.jp", - "matsushige.tokushima.jp", - "mima.tokushima.jp", - "minami.tokushima.jp", - "miyoshi.tokushima.jp", - "mugi.tokushima.jp", - "nakagawa.tokushima.jp", - "naruto.tokushima.jp", - "sanagochi.tokushima.jp", - "shishikui.tokushima.jp", - "tokushima.tokushima.jp", - "wajiki.tokushima.jp", - "adachi.tokyo.jp", - "akiruno.tokyo.jp", - "akishima.tokyo.jp", - "aogashima.tokyo.jp", - "arakawa.tokyo.jp", - "bunkyo.tokyo.jp", - "chiyoda.tokyo.jp", - "chofu.tokyo.jp", - "chuo.tokyo.jp", - "edogawa.tokyo.jp", - "fuchu.tokyo.jp", - "fussa.tokyo.jp", - "hachijo.tokyo.jp", - "hachioji.tokyo.jp", - "hamura.tokyo.jp", - "higashikurume.tokyo.jp", - "higashimurayama.tokyo.jp", - "higashiyamato.tokyo.jp", - "hino.tokyo.jp", - "hinode.tokyo.jp", - "hinohara.tokyo.jp", - "inagi.tokyo.jp", - "itabashi.tokyo.jp", - "katsushika.tokyo.jp", - "kita.tokyo.jp", - "kiyose.tokyo.jp", - "kodaira.tokyo.jp", - "koganei.tokyo.jp", - "kokubunji.tokyo.jp", - "komae.tokyo.jp", - "koto.tokyo.jp", - "kouzushima.tokyo.jp", - "kunitachi.tokyo.jp", - "machida.tokyo.jp", - "meguro.tokyo.jp", - "minato.tokyo.jp", - "mitaka.tokyo.jp", - "mizuho.tokyo.jp", - "musashimurayama.tokyo.jp", - "musashino.tokyo.jp", - "nakano.tokyo.jp", - "nerima.tokyo.jp", - "ogasawara.tokyo.jp", - "okutama.tokyo.jp", - "ome.tokyo.jp", - "oshima.tokyo.jp", - "ota.tokyo.jp", - "setagaya.tokyo.jp", - "shibuya.tokyo.jp", - "shinagawa.tokyo.jp", - "shinjuku.tokyo.jp", - "suginami.tokyo.jp", - "sumida.tokyo.jp", - "tachikawa.tokyo.jp", - "taito.tokyo.jp", - "tama.tokyo.jp", - "toshima.tokyo.jp", - "chizu.tottori.jp", - "hino.tottori.jp", - "kawahara.tottori.jp", - "koge.tottori.jp", - "kotoura.tottori.jp", - "misasa.tottori.jp", - "nanbu.tottori.jp", - "nichinan.tottori.jp", - "sakaiminato.tottori.jp", - "tottori.tottori.jp", - "wakasa.tottori.jp", - "yazu.tottori.jp", - "yonago.tottori.jp", - "asahi.toyama.jp", - "fuchu.toyama.jp", - "fukumitsu.toyama.jp", - "funahashi.toyama.jp", - "himi.toyama.jp", - "imizu.toyama.jp", - "inami.toyama.jp", - "johana.toyama.jp", - "kamiichi.toyama.jp", - "kurobe.toyama.jp", - "nakaniikawa.toyama.jp", - "namerikawa.toyama.jp", - "nanto.toyama.jp", - "nyuzen.toyama.jp", - "oyabe.toyama.jp", - "taira.toyama.jp", - "takaoka.toyama.jp", - "tateyama.toyama.jp", - "toga.toyama.jp", - "tonami.toyama.jp", - "toyama.toyama.jp", - "unazuki.toyama.jp", - "uozu.toyama.jp", - "yamada.toyama.jp", - "arida.wakayama.jp", - "aridagawa.wakayama.jp", - "gobo.wakayama.jp", - "hashimoto.wakayama.jp", - "hidaka.wakayama.jp", - "hirogawa.wakayama.jp", - "inami.wakayama.jp", - "iwade.wakayama.jp", - "kainan.wakayama.jp", - "kamitonda.wakayama.jp", - "katsuragi.wakayama.jp", - "kimino.wakayama.jp", - "kinokawa.wakayama.jp", - "kitayama.wakayama.jp", - "koya.wakayama.jp", - "koza.wakayama.jp", - "kozagawa.wakayama.jp", - "kudoyama.wakayama.jp", - "kushimoto.wakayama.jp", - "mihama.wakayama.jp", - "misato.wakayama.jp", - "nachikatsuura.wakayama.jp", - "shingu.wakayama.jp", - "shirahama.wakayama.jp", - "taiji.wakayama.jp", - "tanabe.wakayama.jp", - "wakayama.wakayama.jp", - "yuasa.wakayama.jp", - "yura.wakayama.jp", - "asahi.yamagata.jp", - "funagata.yamagata.jp", - "higashine.yamagata.jp", - "iide.yamagata.jp", - "kahoku.yamagata.jp", - "kaminoyama.yamagata.jp", - "kaneyama.yamagata.jp", - "kawanishi.yamagata.jp", - "mamurogawa.yamagata.jp", - "mikawa.yamagata.jp", - "murayama.yamagata.jp", - "nagai.yamagata.jp", - "nakayama.yamagata.jp", - "nanyo.yamagata.jp", - "nishikawa.yamagata.jp", - "obanazawa.yamagata.jp", - "oe.yamagata.jp", - "oguni.yamagata.jp", - "ohkura.yamagata.jp", - "oishida.yamagata.jp", - "sagae.yamagata.jp", - "sakata.yamagata.jp", - "sakegawa.yamagata.jp", - "shinjo.yamagata.jp", - "shirataka.yamagata.jp", - "shonai.yamagata.jp", - "takahata.yamagata.jp", - "tendo.yamagata.jp", - "tozawa.yamagata.jp", - "tsuruoka.yamagata.jp", - "yamagata.yamagata.jp", - "yamanobe.yamagata.jp", - "yonezawa.yamagata.jp", - "yuza.yamagata.jp", - "abu.yamaguchi.jp", - "hagi.yamaguchi.jp", - "hikari.yamaguchi.jp", - "hofu.yamaguchi.jp", - "iwakuni.yamaguchi.jp", - "kudamatsu.yamaguchi.jp", - "mitou.yamaguchi.jp", - "nagato.yamaguchi.jp", - "oshima.yamaguchi.jp", - "shimonoseki.yamaguchi.jp", - "shunan.yamaguchi.jp", - "tabuse.yamaguchi.jp", - "tokuyama.yamaguchi.jp", - "toyota.yamaguchi.jp", - "ube.yamaguchi.jp", - "yuu.yamaguchi.jp", - "chuo.yamanashi.jp", - "doshi.yamanashi.jp", - "fuefuki.yamanashi.jp", - "fujikawa.yamanashi.jp", - "fujikawaguchiko.yamanashi.jp", - "fujiyoshida.yamanashi.jp", - "hayakawa.yamanashi.jp", - "hokuto.yamanashi.jp", - "ichikawamisato.yamanashi.jp", - "kai.yamanashi.jp", - "kofu.yamanashi.jp", - "koshu.yamanashi.jp", - "kosuge.yamanashi.jp", - "minami-alps.yamanashi.jp", - "minobu.yamanashi.jp", - "nakamichi.yamanashi.jp", - "nanbu.yamanashi.jp", - "narusawa.yamanashi.jp", - "nirasaki.yamanashi.jp", - "nishikatsura.yamanashi.jp", - "oshino.yamanashi.jp", - "otsuki.yamanashi.jp", - "showa.yamanashi.jp", - "tabayama.yamanashi.jp", - "tsuru.yamanashi.jp", - "uenohara.yamanashi.jp", - "yamanakako.yamanashi.jp", - "yamanashi.yamanashi.jp", - "*.ke", - "kg", - "org.kg", - "net.kg", - "com.kg", - "edu.kg", - "gov.kg", - "mil.kg", - "*.kh", - "ki", - "edu.ki", - "biz.ki", - "net.ki", - "org.ki", - "gov.ki", - "info.ki", - "com.ki", - "km", - "org.km", - "nom.km", - "gov.km", - "prd.km", - "tm.km", - "edu.km", - "mil.km", - "ass.km", - "com.km", - "coop.km", - "asso.km", - "presse.km", - "medecin.km", - "notaires.km", - "pharmaciens.km", - "veterinaire.km", - "gouv.km", - "kn", - "net.kn", - "org.kn", - "edu.kn", - "gov.kn", - "kp", - "com.kp", - "edu.kp", - "gov.kp", - "org.kp", - "rep.kp", - "tra.kp", - "kr", - "ac.kr", - "co.kr", - "es.kr", - "go.kr", - "hs.kr", - "kg.kr", - "mil.kr", - "ms.kr", - "ne.kr", - "or.kr", - "pe.kr", - "re.kr", - "sc.kr", - "busan.kr", - "chungbuk.kr", - "chungnam.kr", - "daegu.kr", - "daejeon.kr", - "gangwon.kr", - "gwangju.kr", - "gyeongbuk.kr", - "gyeonggi.kr", - "gyeongnam.kr", - "incheon.kr", - "jeju.kr", - "jeonbuk.kr", - "jeonnam.kr", - "seoul.kr", - "ulsan.kr", - "*.kw", - "ky", - "edu.ky", - "gov.ky", - "com.ky", - "org.ky", - "net.ky", - "kz", - "org.kz", - "edu.kz", - "net.kz", - "gov.kz", - "mil.kz", - "com.kz", - "la", - "int.la", - "net.la", - "info.la", - "edu.la", - "gov.la", - "per.la", - "com.la", - "org.la", - "lb", - "com.lb", - "edu.lb", - "gov.lb", - "net.lb", - "org.lb", - "lc", - "com.lc", - "net.lc", - "co.lc", - "org.lc", - "edu.lc", - "gov.lc", - "li", - "lk", - "gov.lk", - "sch.lk", - "net.lk", - "int.lk", - "com.lk", - "org.lk", - "edu.lk", - "ngo.lk", - "soc.lk", - "web.lk", - "ltd.lk", - "assn.lk", - "grp.lk", - "hotel.lk", - "ac.lk", - "lr", - "com.lr", - "edu.lr", - "gov.lr", - "org.lr", - "net.lr", - "ls", - "co.ls", - "org.ls", - "lt", - "gov.lt", - "lu", - "lv", - "com.lv", - "edu.lv", - "gov.lv", - "org.lv", - "mil.lv", - "id.lv", - "net.lv", - "asn.lv", - "conf.lv", - "ly", - "com.ly", - "net.ly", - "gov.ly", - "plc.ly", - "edu.ly", - "sch.ly", - "med.ly", - "org.ly", - "id.ly", - "ma", - "co.ma", - "net.ma", - "gov.ma", - "org.ma", - "ac.ma", - "press.ma", - "mc", - "tm.mc", - "asso.mc", - "md", - "me", - "co.me", - "net.me", - "org.me", - "edu.me", - "ac.me", - "gov.me", - "its.me", - "priv.me", - "mg", - "org.mg", - "nom.mg", - "gov.mg", - "prd.mg", - "tm.mg", - "edu.mg", - "mil.mg", - "com.mg", - "co.mg", - "mh", - "mil", - "mk", - "com.mk", - "org.mk", - "net.mk", - "edu.mk", - "gov.mk", - "inf.mk", - "name.mk", - "ml", - "com.ml", - "edu.ml", - "gouv.ml", - "gov.ml", - "net.ml", - "org.ml", - "presse.ml", - "*.mm", - "mn", - "gov.mn", - "edu.mn", - "org.mn", - "mo", - "com.mo", - "net.mo", - "org.mo", - "edu.mo", - "gov.mo", - "mobi", - "mp", - "mq", - "mr", - "gov.mr", - "ms", - "com.ms", - "edu.ms", - "gov.ms", - "net.ms", - "org.ms", - "mt", - "com.mt", - "edu.mt", - "net.mt", - "org.mt", - "mu", - "com.mu", - "net.mu", - "org.mu", - "gov.mu", - "ac.mu", - "co.mu", - "or.mu", - "museum", - "academy.museum", - "agriculture.museum", - "air.museum", - "airguard.museum", - "alabama.museum", - "alaska.museum", - "amber.museum", - "ambulance.museum", - "american.museum", - "americana.museum", - "americanantiques.museum", - "americanart.museum", - "amsterdam.museum", - "and.museum", - "annefrank.museum", - "anthro.museum", - "anthropology.museum", - "antiques.museum", - "aquarium.museum", - "arboretum.museum", - "archaeological.museum", - "archaeology.museum", - "architecture.museum", - "art.museum", - "artanddesign.museum", - "artcenter.museum", - "artdeco.museum", - "arteducation.museum", - "artgallery.museum", - "arts.museum", - "artsandcrafts.museum", - "asmatart.museum", - "assassination.museum", - "assisi.museum", - "association.museum", - "astronomy.museum", - "atlanta.museum", - "austin.museum", - "australia.museum", - "automotive.museum", - "aviation.museum", - "axis.museum", - "badajoz.museum", - "baghdad.museum", - "bahn.museum", - "bale.museum", - "baltimore.museum", - "barcelona.museum", - "baseball.museum", - "basel.museum", - "baths.museum", - "bauern.museum", - "beauxarts.museum", - "beeldengeluid.museum", - "bellevue.museum", - "bergbau.museum", - "berkeley.museum", - "berlin.museum", - "bern.museum", - "bible.museum", - "bilbao.museum", - "bill.museum", - "birdart.museum", - "birthplace.museum", - "bonn.museum", - "boston.museum", - "botanical.museum", - "botanicalgarden.museum", - "botanicgarden.museum", - "botany.museum", - "brandywinevalley.museum", - "brasil.museum", - "bristol.museum", - "british.museum", - "britishcolumbia.museum", - "broadcast.museum", - "brunel.museum", - "brussel.museum", - "brussels.museum", - "bruxelles.museum", - "building.museum", - "burghof.museum", - "bus.museum", - "bushey.museum", - "cadaques.museum", - "california.museum", - "cambridge.museum", - "can.museum", - "canada.museum", - "capebreton.museum", - "carrier.museum", - "cartoonart.museum", - "casadelamoneda.museum", - "castle.museum", - "castres.museum", - "celtic.museum", - "center.museum", - "chattanooga.museum", - "cheltenham.museum", - "chesapeakebay.museum", - "chicago.museum", - "children.museum", - "childrens.museum", - "childrensgarden.museum", - "chiropractic.museum", - "chocolate.museum", - "christiansburg.museum", - "cincinnati.museum", - "cinema.museum", - "circus.museum", - "civilisation.museum", - "civilization.museum", - "civilwar.museum", - "clinton.museum", - "clock.museum", - "coal.museum", - "coastaldefence.museum", - "cody.museum", - "coldwar.museum", - "collection.museum", - "colonialwilliamsburg.museum", - "coloradoplateau.museum", - "columbia.museum", - "columbus.museum", - "communication.museum", - "communications.museum", - "community.museum", - "computer.museum", - "computerhistory.museum", - "xn--comunicaes-v6a2o.museum", - "contemporary.museum", - "contemporaryart.museum", - "convent.museum", - "copenhagen.museum", - "corporation.museum", - "xn--correios-e-telecomunicaes-ghc29a.museum", - "corvette.museum", - "costume.museum", - "countryestate.museum", - "county.museum", - "crafts.museum", - "cranbrook.museum", - "creation.museum", - "cultural.museum", - "culturalcenter.museum", - "culture.museum", - "cyber.museum", - "cymru.museum", - "dali.museum", - "dallas.museum", - "database.museum", - "ddr.museum", - "decorativearts.museum", - "delaware.museum", - "delmenhorst.museum", - "denmark.museum", - "depot.museum", - "design.museum", - "detroit.museum", - "dinosaur.museum", - "discovery.museum", - "dolls.museum", - "donostia.museum", - "durham.museum", - "eastafrica.museum", - "eastcoast.museum", - "education.museum", - "educational.museum", - "egyptian.museum", - "eisenbahn.museum", - "elburg.museum", - "elvendrell.museum", - "embroidery.museum", - "encyclopedic.museum", - "england.museum", - "entomology.museum", - "environment.museum", - "environmentalconservation.museum", - "epilepsy.museum", - "essex.museum", - "estate.museum", - "ethnology.museum", - "exeter.museum", - "exhibition.museum", - "family.museum", - "farm.museum", - "farmequipment.museum", - "farmers.museum", - "farmstead.museum", - "field.museum", - "figueres.museum", - "filatelia.museum", - "film.museum", - "fineart.museum", - "finearts.museum", - "finland.museum", - "flanders.museum", - "florida.museum", - "force.museum", - "fortmissoula.museum", - "fortworth.museum", - "foundation.museum", - "francaise.museum", - "frankfurt.museum", - "franziskaner.museum", - "freemasonry.museum", - "freiburg.museum", - "fribourg.museum", - "frog.museum", - "fundacio.museum", - "furniture.museum", - "gallery.museum", - "garden.museum", - "gateway.museum", - "geelvinck.museum", - "gemological.museum", - "geology.museum", - "georgia.museum", - "giessen.museum", - "glas.museum", - "glass.museum", - "gorge.museum", - "grandrapids.museum", - "graz.museum", - "guernsey.museum", - "halloffame.museum", - "hamburg.museum", - "handson.museum", - "harvestcelebration.museum", - "hawaii.museum", - "health.museum", - "heimatunduhren.museum", - "hellas.museum", - "helsinki.museum", - "hembygdsforbund.museum", - "heritage.museum", - "histoire.museum", - "historical.museum", - "historicalsociety.museum", - "historichouses.museum", - "historisch.museum", - "historisches.museum", - "history.museum", - "historyofscience.museum", - "horology.museum", - "house.museum", - "humanities.museum", - "illustration.museum", - "imageandsound.museum", - "indian.museum", - "indiana.museum", - "indianapolis.museum", - "indianmarket.museum", - "intelligence.museum", - "interactive.museum", - "iraq.museum", - "iron.museum", - "isleofman.museum", - "jamison.museum", - "jefferson.museum", - "jerusalem.museum", - "jewelry.museum", - "jewish.museum", - "jewishart.museum", - "jfk.museum", - "journalism.museum", - "judaica.museum", - "judygarland.museum", - "juedisches.museum", - "juif.museum", - "karate.museum", - "karikatur.museum", - "kids.museum", - "koebenhavn.museum", - "koeln.museum", - "kunst.museum", - "kunstsammlung.museum", - "kunstunddesign.museum", - "labor.museum", - "labour.museum", - "lajolla.museum", - "lancashire.museum", - "landes.museum", - "lans.museum", - "xn--lns-qla.museum", - "larsson.museum", - "lewismiller.museum", - "lincoln.museum", - "linz.museum", - "living.museum", - "livinghistory.museum", - "localhistory.museum", - "london.museum", - "losangeles.museum", - "louvre.museum", - "loyalist.museum", - "lucerne.museum", - "luxembourg.museum", - "luzern.museum", - "mad.museum", - "madrid.museum", - "mallorca.museum", - "manchester.museum", - "mansion.museum", - "mansions.museum", - "manx.museum", - "marburg.museum", - "maritime.museum", - "maritimo.museum", - "maryland.museum", - "marylhurst.museum", - "media.museum", - "medical.museum", - "medizinhistorisches.museum", - "meeres.museum", - "memorial.museum", - "mesaverde.museum", - "michigan.museum", - "midatlantic.museum", - "military.museum", - "mill.museum", - "miners.museum", - "mining.museum", - "minnesota.museum", - "missile.museum", - "missoula.museum", - "modern.museum", - "moma.museum", - "money.museum", - "monmouth.museum", - "monticello.museum", - "montreal.museum", - "moscow.museum", - "motorcycle.museum", - "muenchen.museum", - "muenster.museum", - "mulhouse.museum", - "muncie.museum", - "museet.museum", - "museumcenter.museum", - "museumvereniging.museum", - "music.museum", - "national.museum", - "nationalfirearms.museum", - "nationalheritage.museum", - "nativeamerican.museum", - "naturalhistory.museum", - "naturalhistorymuseum.museum", - "naturalsciences.museum", - "nature.museum", - "naturhistorisches.museum", - "natuurwetenschappen.museum", - "naumburg.museum", - "naval.museum", - "nebraska.museum", - "neues.museum", - "newhampshire.museum", - "newjersey.museum", - "newmexico.museum", - "newport.museum", - "newspaper.museum", - "newyork.museum", - "niepce.museum", - "norfolk.museum", - "north.museum", - "nrw.museum", - "nuernberg.museum", - "nuremberg.museum", - "nyc.museum", - "nyny.museum", - "oceanographic.museum", - "oceanographique.museum", - "omaha.museum", - "online.museum", - "ontario.museum", - "openair.museum", - "oregon.museum", - "oregontrail.museum", - "otago.museum", - "oxford.museum", - "pacific.museum", - "paderborn.museum", - "palace.museum", - "paleo.museum", - "palmsprings.museum", - "panama.museum", - "paris.museum", - "pasadena.museum", - "pharmacy.museum", - "philadelphia.museum", - "philadelphiaarea.museum", - "philately.museum", - "phoenix.museum", - "photography.museum", - "pilots.museum", - "pittsburgh.museum", - "planetarium.museum", - "plantation.museum", - "plants.museum", - "plaza.museum", - "portal.museum", - "portland.museum", - "portlligat.museum", - "posts-and-telecommunications.museum", - "preservation.museum", - "presidio.museum", - "press.museum", - "project.museum", - "public.museum", - "pubol.museum", - "quebec.museum", - "railroad.museum", - "railway.museum", - "research.museum", - "resistance.museum", - "riodejaneiro.museum", - "rochester.museum", - "rockart.museum", - "roma.museum", - "russia.museum", - "saintlouis.museum", - "salem.museum", - "salvadordali.museum", - "salzburg.museum", - "sandiego.museum", - "sanfrancisco.museum", - "santabarbara.museum", - "santacruz.museum", - "santafe.museum", - "saskatchewan.museum", - "satx.museum", - "savannahga.museum", - "schlesisches.museum", - "schoenbrunn.museum", - "schokoladen.museum", - "school.museum", - "schweiz.museum", - "science.museum", - "scienceandhistory.museum", - "scienceandindustry.museum", - "sciencecenter.museum", - "sciencecenters.museum", - "science-fiction.museum", - "sciencehistory.museum", - "sciences.museum", - "sciencesnaturelles.museum", - "scotland.museum", - "seaport.museum", - "settlement.museum", - "settlers.museum", - "shell.museum", - "sherbrooke.museum", - "sibenik.museum", - "silk.museum", - "ski.museum", - "skole.museum", - "society.museum", - "sologne.museum", - "soundandvision.museum", - "southcarolina.museum", - "southwest.museum", - "space.museum", - "spy.museum", - "square.museum", - "stadt.museum", - "stalbans.museum", - "starnberg.museum", - "state.museum", - "stateofdelaware.museum", - "station.museum", - "steam.museum", - "steiermark.museum", - "stjohn.museum", - "stockholm.museum", - "stpetersburg.museum", - "stuttgart.museum", - "suisse.museum", - "surgeonshall.museum", - "surrey.museum", - "svizzera.museum", - "sweden.museum", - "sydney.museum", - "tank.museum", - "tcm.museum", - "technology.museum", - "telekommunikation.museum", - "television.museum", - "texas.museum", - "textile.museum", - "theater.museum", - "time.museum", - "timekeeping.museum", - "topology.museum", - "torino.museum", - "touch.museum", - "town.museum", - "transport.museum", - "tree.museum", - "trolley.museum", - "trust.museum", - "trustee.museum", - "uhren.museum", - "ulm.museum", - "undersea.museum", - "university.museum", - "usa.museum", - "usantiques.museum", - "usarts.museum", - "uscountryestate.museum", - "usculture.museum", - "usdecorativearts.museum", - "usgarden.museum", - "ushistory.museum", - "ushuaia.museum", - "uslivinghistory.museum", - "utah.museum", - "uvic.museum", - "valley.museum", - "vantaa.museum", - "versailles.museum", - "viking.museum", - "village.museum", - "virginia.museum", - "virtual.museum", - "virtuel.museum", - "vlaanderen.museum", - "volkenkunde.museum", - "wales.museum", - "wallonie.museum", - "war.museum", - "washingtondc.museum", - "watchandclock.museum", - "watch-and-clock.museum", - "western.museum", - "westfalen.museum", - "whaling.museum", - "wildlife.museum", - "williamsburg.museum", - "windmill.museum", - "workshop.museum", - "york.museum", - "yorkshire.museum", - "yosemite.museum", - "youth.museum", - "zoological.museum", - "zoology.museum", - "xn--9dbhblg6di.museum", - "xn--h1aegh.museum", - "mv", - "aero.mv", - "biz.mv", - "com.mv", - "coop.mv", - "edu.mv", - "gov.mv", - "info.mv", - "int.mv", - "mil.mv", - "museum.mv", - "name.mv", - "net.mv", - "org.mv", - "pro.mv", - "mw", - "ac.mw", - "biz.mw", - "co.mw", - "com.mw", - "coop.mw", - "edu.mw", - "gov.mw", - "int.mw", - "museum.mw", - "net.mw", - "org.mw", - "mx", - "com.mx", - "org.mx", - "gob.mx", - "edu.mx", - "net.mx", - "my", - "com.my", - "net.my", - "org.my", - "gov.my", - "edu.my", - "mil.my", - "name.my", - "*.mz", - "!teledata.mz", - "na", - "info.na", - "pro.na", - "name.na", - "school.na", - "or.na", - "dr.na", - "us.na", - "mx.na", - "ca.na", - "in.na", - "cc.na", - "tv.na", - "ws.na", - "mobi.na", - "co.na", - "com.na", - "org.na", - "name", - "nc", - "asso.nc", - "ne", - "net", - "nf", - "com.nf", - "net.nf", - "per.nf", - "rec.nf", - "web.nf", - "arts.nf", - "firm.nf", - "info.nf", - "other.nf", - "store.nf", - "ng", - "com.ng", - "edu.ng", - "name.ng", - "net.ng", - "org.ng", - "sch.ng", - "gov.ng", - "mil.ng", - "mobi.ng", - "*.ni", - "nl", - "bv.nl", - "no", - "fhs.no", - "vgs.no", - "fylkesbibl.no", - "folkebibl.no", - "museum.no", - "idrett.no", - "priv.no", - "mil.no", - "stat.no", - "dep.no", - "kommune.no", - "herad.no", - "aa.no", - "ah.no", - "bu.no", - "fm.no", - "hl.no", - "hm.no", - "jan-mayen.no", - "mr.no", - "nl.no", - "nt.no", - "of.no", - "ol.no", - "oslo.no", - "rl.no", - "sf.no", - "st.no", - "svalbard.no", - "tm.no", - "tr.no", - "va.no", - "vf.no", - "gs.aa.no", - "gs.ah.no", - "gs.bu.no", - "gs.fm.no", - "gs.hl.no", - "gs.hm.no", - "gs.jan-mayen.no", - "gs.mr.no", - "gs.nl.no", - "gs.nt.no", - "gs.of.no", - "gs.ol.no", - "gs.oslo.no", - "gs.rl.no", - "gs.sf.no", - "gs.st.no", - "gs.svalbard.no", - "gs.tm.no", - "gs.tr.no", - "gs.va.no", - "gs.vf.no", - "akrehamn.no", - "xn--krehamn-dxa.no", - "algard.no", - "xn--lgrd-poac.no", - "arna.no", - "brumunddal.no", - "bryne.no", - "bronnoysund.no", - "xn--brnnysund-m8ac.no", - "drobak.no", - "xn--drbak-wua.no", - "egersund.no", - "fetsund.no", - "floro.no", - "xn--flor-jra.no", - "fredrikstad.no", - "hokksund.no", - "honefoss.no", - "xn--hnefoss-q1a.no", - "jessheim.no", - "jorpeland.no", - "xn--jrpeland-54a.no", - "kirkenes.no", - "kopervik.no", - "krokstadelva.no", - "langevag.no", - "xn--langevg-jxa.no", - "leirvik.no", - "mjondalen.no", - "xn--mjndalen-64a.no", - "mo-i-rana.no", - "mosjoen.no", - "xn--mosjen-eya.no", - "nesoddtangen.no", - "orkanger.no", - "osoyro.no", - "xn--osyro-wua.no", - "raholt.no", - "xn--rholt-mra.no", - "sandnessjoen.no", - "xn--sandnessjen-ogb.no", - "skedsmokorset.no", - "slattum.no", - "spjelkavik.no", - "stathelle.no", - "stavern.no", - "stjordalshalsen.no", - "xn--stjrdalshalsen-sqb.no", - "tananger.no", - "tranby.no", - "vossevangen.no", - "afjord.no", - "xn--fjord-lra.no", - "agdenes.no", - "al.no", - "xn--l-1fa.no", - "alesund.no", - "xn--lesund-hua.no", - "alstahaug.no", - "alta.no", - "xn--lt-liac.no", - "alaheadju.no", - "xn--laheadju-7ya.no", - "alvdal.no", - "amli.no", - "xn--mli-tla.no", - "amot.no", - "xn--mot-tla.no", - "andebu.no", - "andoy.no", - "xn--andy-ira.no", - "andasuolo.no", - "ardal.no", - "xn--rdal-poa.no", - "aremark.no", - "arendal.no", - "xn--s-1fa.no", - "aseral.no", - "xn--seral-lra.no", - "asker.no", - "askim.no", - "askvoll.no", - "askoy.no", - "xn--asky-ira.no", - "asnes.no", - "xn--snes-poa.no", - "audnedaln.no", - "aukra.no", - "aure.no", - "aurland.no", - "aurskog-holand.no", - "xn--aurskog-hland-jnb.no", - "austevoll.no", - "austrheim.no", - "averoy.no", - "xn--avery-yua.no", - "balestrand.no", - "ballangen.no", - "balat.no", - "xn--blt-elab.no", - "balsfjord.no", - "bahccavuotna.no", - "xn--bhccavuotna-k7a.no", - "bamble.no", - "bardu.no", - "beardu.no", - "beiarn.no", - "bajddar.no", - "xn--bjddar-pta.no", - "baidar.no", - "xn--bidr-5nac.no", - "berg.no", - "bergen.no", - "berlevag.no", - "xn--berlevg-jxa.no", - "bearalvahki.no", - "xn--bearalvhki-y4a.no", - "bindal.no", - "birkenes.no", - "bjarkoy.no", - "xn--bjarky-fya.no", - "bjerkreim.no", - "bjugn.no", - "bodo.no", - "xn--bod-2na.no", - "badaddja.no", - "xn--bdddj-mrabd.no", - "budejju.no", - "bokn.no", - "bremanger.no", - "bronnoy.no", - "xn--brnny-wuac.no", - "bygland.no", - "bykle.no", - "barum.no", - "xn--brum-voa.no", - "bo.telemark.no", - "xn--b-5ga.telemark.no", - "bo.nordland.no", - "xn--b-5ga.nordland.no", - "bievat.no", - "xn--bievt-0qa.no", - "bomlo.no", - "xn--bmlo-gra.no", - "batsfjord.no", - "xn--btsfjord-9za.no", - "bahcavuotna.no", - "xn--bhcavuotna-s4a.no", - "dovre.no", - "drammen.no", - "drangedal.no", - "dyroy.no", - "xn--dyry-ira.no", - "donna.no", - "xn--dnna-gra.no", - "eid.no", - "eidfjord.no", - "eidsberg.no", - "eidskog.no", - "eidsvoll.no", - "eigersund.no", - "elverum.no", - "enebakk.no", - "engerdal.no", - "etne.no", - "etnedal.no", - "evenes.no", - "evenassi.no", - "xn--eveni-0qa01ga.no", - "evje-og-hornnes.no", - "farsund.no", - "fauske.no", - "fuossko.no", - "fuoisku.no", - "fedje.no", - "fet.no", - "finnoy.no", - "xn--finny-yua.no", - "fitjar.no", - "fjaler.no", - "fjell.no", - "flakstad.no", - "flatanger.no", - "flekkefjord.no", - "flesberg.no", - "flora.no", - "fla.no", - "xn--fl-zia.no", - "folldal.no", - "forsand.no", - "fosnes.no", - "frei.no", - "frogn.no", - "froland.no", - "frosta.no", - "frana.no", - "xn--frna-woa.no", - "froya.no", - "xn--frya-hra.no", - "fusa.no", - "fyresdal.no", - "forde.no", - "xn--frde-gra.no", - "gamvik.no", - "gangaviika.no", - "xn--ggaviika-8ya47h.no", - "gaular.no", - "gausdal.no", - "gildeskal.no", - "xn--gildeskl-g0a.no", - "giske.no", - "gjemnes.no", - "gjerdrum.no", - "gjerstad.no", - "gjesdal.no", - "gjovik.no", - "xn--gjvik-wua.no", - "gloppen.no", - "gol.no", - "gran.no", - "grane.no", - "granvin.no", - "gratangen.no", - "grimstad.no", - "grong.no", - "kraanghke.no", - "xn--kranghke-b0a.no", - "grue.no", - "gulen.no", - "hadsel.no", - "halden.no", - "halsa.no", - "hamar.no", - "hamaroy.no", - "habmer.no", - "xn--hbmer-xqa.no", - "hapmir.no", - "xn--hpmir-xqa.no", - "hammerfest.no", - "hammarfeasta.no", - "xn--hmmrfeasta-s4ac.no", - "haram.no", - "hareid.no", - "harstad.no", - "hasvik.no", - "aknoluokta.no", - "xn--koluokta-7ya57h.no", - "hattfjelldal.no", - "aarborte.no", - "haugesund.no", - "hemne.no", - "hemnes.no", - "hemsedal.no", - "heroy.more-og-romsdal.no", - "xn--hery-ira.xn--mre-og-romsdal-qqb.no", - "heroy.nordland.no", - "xn--hery-ira.nordland.no", - "hitra.no", - "hjartdal.no", - "hjelmeland.no", - "hobol.no", - "xn--hobl-ira.no", - "hof.no", - "hol.no", - "hole.no", - "holmestrand.no", - "holtalen.no", - "xn--holtlen-hxa.no", - "hornindal.no", - "horten.no", - "hurdal.no", - "hurum.no", - "hvaler.no", - "hyllestad.no", - "hagebostad.no", - "xn--hgebostad-g3a.no", - "hoyanger.no", - "xn--hyanger-q1a.no", - "hoylandet.no", - "xn--hylandet-54a.no", - "ha.no", - "xn--h-2fa.no", - "ibestad.no", - "inderoy.no", - "xn--indery-fya.no", - "iveland.no", - "jevnaker.no", - "jondal.no", - "jolster.no", - "xn--jlster-bya.no", - "karasjok.no", - "karasjohka.no", - "xn--krjohka-hwab49j.no", - "karlsoy.no", - "galsa.no", - "xn--gls-elac.no", - "karmoy.no", - "xn--karmy-yua.no", - "kautokeino.no", - "guovdageaidnu.no", - "klepp.no", - "klabu.no", - "xn--klbu-woa.no", - "kongsberg.no", - "kongsvinger.no", - "kragero.no", - "xn--krager-gya.no", - "kristiansand.no", - "kristiansund.no", - "krodsherad.no", - "xn--krdsherad-m8a.no", - "kvalsund.no", - "rahkkeravju.no", - "xn--rhkkervju-01af.no", - "kvam.no", - "kvinesdal.no", - "kvinnherad.no", - "kviteseid.no", - "kvitsoy.no", - "xn--kvitsy-fya.no", - "kvafjord.no", - "xn--kvfjord-nxa.no", - "giehtavuoatna.no", - "kvanangen.no", - "xn--kvnangen-k0a.no", - "navuotna.no", - "xn--nvuotna-hwa.no", - "kafjord.no", - "xn--kfjord-iua.no", - "gaivuotna.no", - "xn--givuotna-8ya.no", - "larvik.no", - "lavangen.no", - "lavagis.no", - "loabat.no", - "xn--loabt-0qa.no", - "lebesby.no", - "davvesiida.no", - "leikanger.no", - "leirfjord.no", - "leka.no", - "leksvik.no", - "lenvik.no", - "leangaviika.no", - "xn--leagaviika-52b.no", - "lesja.no", - "levanger.no", - "lier.no", - "lierne.no", - "lillehammer.no", - "lillesand.no", - "lindesnes.no", - "lindas.no", - "xn--linds-pra.no", - "lom.no", - "loppa.no", - "lahppi.no", - "xn--lhppi-xqa.no", - "lund.no", - "lunner.no", - "luroy.no", - "xn--lury-ira.no", - "luster.no", - "lyngdal.no", - "lyngen.no", - "ivgu.no", - "lardal.no", - "lerdal.no", - "xn--lrdal-sra.no", - "lodingen.no", - "xn--ldingen-q1a.no", - "lorenskog.no", - "xn--lrenskog-54a.no", - "loten.no", - "xn--lten-gra.no", - "malvik.no", - "masoy.no", - "xn--msy-ula0h.no", - "muosat.no", - "xn--muost-0qa.no", - "mandal.no", - "marker.no", - "marnardal.no", - "masfjorden.no", - "meland.no", - "meldal.no", - "melhus.no", - "meloy.no", - "xn--mely-ira.no", - "meraker.no", - "xn--merker-kua.no", - "moareke.no", - "xn--moreke-jua.no", - "midsund.no", - "midtre-gauldal.no", - "modalen.no", - "modum.no", - "molde.no", - "moskenes.no", - "moss.no", - "mosvik.no", - "malselv.no", - "xn--mlselv-iua.no", - "malatvuopmi.no", - "xn--mlatvuopmi-s4a.no", - "namdalseid.no", - "aejrie.no", - "namsos.no", - "namsskogan.no", - "naamesjevuemie.no", - "xn--nmesjevuemie-tcba.no", - "laakesvuemie.no", - "nannestad.no", - "narvik.no", - "narviika.no", - "naustdal.no", - "nedre-eiker.no", - "nes.akershus.no", - "nes.buskerud.no", - "nesna.no", - "nesodden.no", - "nesseby.no", - "unjarga.no", - "xn--unjrga-rta.no", - "nesset.no", - "nissedal.no", - "nittedal.no", - "nord-aurdal.no", - "nord-fron.no", - "nord-odal.no", - "norddal.no", - "nordkapp.no", - "davvenjarga.no", - "xn--davvenjrga-y4a.no", - "nordre-land.no", - "nordreisa.no", - "raisa.no", - "xn--risa-5na.no", - "nore-og-uvdal.no", - "notodden.no", - "naroy.no", - "xn--nry-yla5g.no", - "notteroy.no", - "xn--nttery-byae.no", - "odda.no", - "oksnes.no", - "xn--ksnes-uua.no", - "oppdal.no", - "oppegard.no", - "xn--oppegrd-ixa.no", - "orkdal.no", - "orland.no", - "xn--rland-uua.no", - "orskog.no", - "xn--rskog-uua.no", - "orsta.no", - "xn--rsta-fra.no", - "os.hedmark.no", - "os.hordaland.no", - "osen.no", - "osteroy.no", - "xn--ostery-fya.no", - "ostre-toten.no", - "xn--stre-toten-zcb.no", - "overhalla.no", - "ovre-eiker.no", - "xn--vre-eiker-k8a.no", - "oyer.no", - "xn--yer-zna.no", - "oygarden.no", - "xn--ygarden-p1a.no", - "oystre-slidre.no", - "xn--ystre-slidre-ujb.no", - "porsanger.no", - "porsangu.no", - "xn--porsgu-sta26f.no", - "porsgrunn.no", - "radoy.no", - "xn--rady-ira.no", - "rakkestad.no", - "rana.no", - "ruovat.no", - "randaberg.no", - "rauma.no", - "rendalen.no", - "rennebu.no", - "rennesoy.no", - "xn--rennesy-v1a.no", - "rindal.no", - "ringebu.no", - "ringerike.no", - "ringsaker.no", - "rissa.no", - "risor.no", - "xn--risr-ira.no", - "roan.no", - "rollag.no", - "rygge.no", - "ralingen.no", - "xn--rlingen-mxa.no", - "rodoy.no", - "xn--rdy-0nab.no", - "romskog.no", - "xn--rmskog-bya.no", - "roros.no", - "xn--rros-gra.no", - "rost.no", - "xn--rst-0na.no", - "royken.no", - "xn--ryken-vua.no", - "royrvik.no", - "xn--ryrvik-bya.no", - "rade.no", - "xn--rde-ula.no", - "salangen.no", - "siellak.no", - "saltdal.no", - "salat.no", - "xn--slt-elab.no", - "xn--slat-5na.no", - "samnanger.no", - "sande.more-og-romsdal.no", - "sande.xn--mre-og-romsdal-qqb.no", - "sande.vestfold.no", - "sandefjord.no", - "sandnes.no", - "sandoy.no", - "xn--sandy-yua.no", - "sarpsborg.no", - "sauda.no", - "sauherad.no", - "sel.no", - "selbu.no", - "selje.no", - "seljord.no", - "sigdal.no", - "siljan.no", - "sirdal.no", - "skaun.no", - "skedsmo.no", - "ski.no", - "skien.no", - "skiptvet.no", - "skjervoy.no", - "xn--skjervy-v1a.no", - "skierva.no", - "xn--skierv-uta.no", - "skjak.no", - "xn--skjk-soa.no", - "skodje.no", - "skanland.no", - "xn--sknland-fxa.no", - "skanit.no", - "xn--sknit-yqa.no", - "smola.no", - "xn--smla-hra.no", - "snillfjord.no", - "snasa.no", - "xn--snsa-roa.no", - "snoasa.no", - "snaase.no", - "xn--snase-nra.no", - "sogndal.no", - "sokndal.no", - "sola.no", - "solund.no", - "songdalen.no", - "sortland.no", - "spydeberg.no", - "stange.no", - "stavanger.no", - "steigen.no", - "steinkjer.no", - "stjordal.no", - "xn--stjrdal-s1a.no", - "stokke.no", - "stor-elvdal.no", - "stord.no", - "stordal.no", - "storfjord.no", - "omasvuotna.no", - "strand.no", - "stranda.no", - "stryn.no", - "sula.no", - "suldal.no", - "sund.no", - "sunndal.no", - "surnadal.no", - "sveio.no", - "svelvik.no", - "sykkylven.no", - "sogne.no", - "xn--sgne-gra.no", - "somna.no", - "xn--smna-gra.no", - "sondre-land.no", - "xn--sndre-land-0cb.no", - "sor-aurdal.no", - "xn--sr-aurdal-l8a.no", - "sor-fron.no", - "xn--sr-fron-q1a.no", - "sor-odal.no", - "xn--sr-odal-q1a.no", - "sor-varanger.no", - "xn--sr-varanger-ggb.no", - "matta-varjjat.no", - "xn--mtta-vrjjat-k7af.no", - "sorfold.no", - "xn--srfold-bya.no", - "sorreisa.no", - "xn--srreisa-q1a.no", - "sorum.no", - "xn--srum-gra.no", - "tana.no", - "deatnu.no", - "time.no", - "tingvoll.no", - "tinn.no", - "tjeldsund.no", - "dielddanuorri.no", - "tjome.no", - "xn--tjme-hra.no", - "tokke.no", - "tolga.no", - "torsken.no", - "tranoy.no", - "xn--trany-yua.no", - "tromso.no", - "xn--troms-zua.no", - "tromsa.no", - "romsa.no", - "trondheim.no", - "troandin.no", - "trysil.no", - "trana.no", - "xn--trna-woa.no", - "trogstad.no", - "xn--trgstad-r1a.no", - "tvedestrand.no", - "tydal.no", - "tynset.no", - "tysfjord.no", - "divtasvuodna.no", - "divttasvuotna.no", - "tysnes.no", - "tysvar.no", - "xn--tysvr-vra.no", - "tonsberg.no", - "xn--tnsberg-q1a.no", - "ullensaker.no", - "ullensvang.no", - "ulvik.no", - "utsira.no", - "vadso.no", - "xn--vads-jra.no", - "cahcesuolo.no", - "xn--hcesuolo-7ya35b.no", - "vaksdal.no", - "valle.no", - "vang.no", - "vanylven.no", - "vardo.no", - "xn--vard-jra.no", - "varggat.no", - "xn--vrggt-xqad.no", - "vefsn.no", - "vaapste.no", - "vega.no", - "vegarshei.no", - "xn--vegrshei-c0a.no", - "vennesla.no", - "verdal.no", - "verran.no", - "vestby.no", - "vestnes.no", - "vestre-slidre.no", - "vestre-toten.no", - "vestvagoy.no", - "xn--vestvgy-ixa6o.no", - "vevelstad.no", - "vik.no", - "vikna.no", - "vindafjord.no", - "volda.no", - "voss.no", - "varoy.no", - "xn--vry-yla5g.no", - "vagan.no", - "xn--vgan-qoa.no", - "voagat.no", - "vagsoy.no", - "xn--vgsy-qoa0j.no", - "vaga.no", - "xn--vg-yiab.no", - "valer.ostfold.no", - "xn--vler-qoa.xn--stfold-9xa.no", - "valer.hedmark.no", - "xn--vler-qoa.hedmark.no", - "*.np", - "nr", - "biz.nr", - "info.nr", - "gov.nr", - "edu.nr", - "org.nr", - "net.nr", - "com.nr", - "nu", - "nz", - "ac.nz", - "co.nz", - "cri.nz", - "geek.nz", - "gen.nz", - "govt.nz", - "health.nz", - "iwi.nz", - "kiwi.nz", - "maori.nz", - "mil.nz", - "xn--mori-qsa.nz", - "net.nz", - "org.nz", - "parliament.nz", - "school.nz", - "om", - "co.om", - "com.om", - "edu.om", - "gov.om", - "med.om", - "museum.om", - "net.om", - "org.om", - "pro.om", - "org", - "pa", - "ac.pa", - "gob.pa", - "com.pa", - "org.pa", - "sld.pa", - "edu.pa", - "net.pa", - "ing.pa", - "abo.pa", - "med.pa", - "nom.pa", - "pe", - "edu.pe", - "gob.pe", - "nom.pe", - "mil.pe", - "org.pe", - "com.pe", - "net.pe", - "pf", - "com.pf", - "org.pf", - "edu.pf", - "*.pg", - "ph", - "com.ph", - "net.ph", - "org.ph", - "gov.ph", - "edu.ph", - "ngo.ph", - "mil.ph", - "i.ph", - "pk", - "com.pk", - "net.pk", - "edu.pk", - "org.pk", - "fam.pk", - "biz.pk", - "web.pk", - "gov.pk", - "gob.pk", - "gok.pk", - "gon.pk", - "gop.pk", - "gos.pk", - "info.pk", - "pl", - "com.pl", - "net.pl", - "org.pl", - "aid.pl", - "agro.pl", - "atm.pl", - "auto.pl", - "biz.pl", - "edu.pl", - "gmina.pl", - "gsm.pl", - "info.pl", - "mail.pl", - "miasta.pl", - "media.pl", - "mil.pl", - "nieruchomosci.pl", - "nom.pl", - "pc.pl", - "powiat.pl", - "priv.pl", - "realestate.pl", - "rel.pl", - "sex.pl", - "shop.pl", - "sklep.pl", - "sos.pl", - "szkola.pl", - "targi.pl", - "tm.pl", - "tourism.pl", - "travel.pl", - "turystyka.pl", - "gov.pl", - "ap.gov.pl", - "ic.gov.pl", - "is.gov.pl", - "us.gov.pl", - "kmpsp.gov.pl", - "kppsp.gov.pl", - "kwpsp.gov.pl", - "psp.gov.pl", - "wskr.gov.pl", - "kwp.gov.pl", - "mw.gov.pl", - "ug.gov.pl", - "um.gov.pl", - "umig.gov.pl", - "ugim.gov.pl", - "upow.gov.pl", - "uw.gov.pl", - "starostwo.gov.pl", - "pa.gov.pl", - "po.gov.pl", - "psse.gov.pl", - "pup.gov.pl", - "rzgw.gov.pl", - "sa.gov.pl", - "so.gov.pl", - "sr.gov.pl", - "wsa.gov.pl", - "sko.gov.pl", - "uzs.gov.pl", - "wiih.gov.pl", - "winb.gov.pl", - "pinb.gov.pl", - "wios.gov.pl", - "witd.gov.pl", - "wzmiuw.gov.pl", - "piw.gov.pl", - "wiw.gov.pl", - "griw.gov.pl", - "wif.gov.pl", - "oum.gov.pl", - "sdn.gov.pl", - "zp.gov.pl", - "uppo.gov.pl", - "mup.gov.pl", - "wuoz.gov.pl", - "konsulat.gov.pl", - "oirm.gov.pl", - "augustow.pl", - "babia-gora.pl", - "bedzin.pl", - "beskidy.pl", - "bialowieza.pl", - "bialystok.pl", - "bielawa.pl", - "bieszczady.pl", - "boleslawiec.pl", - "bydgoszcz.pl", - "bytom.pl", - "cieszyn.pl", - "czeladz.pl", - "czest.pl", - "dlugoleka.pl", - "elblag.pl", - "elk.pl", - "glogow.pl", - "gniezno.pl", - "gorlice.pl", - "grajewo.pl", - "ilawa.pl", - "jaworzno.pl", - "jelenia-gora.pl", - "jgora.pl", - "kalisz.pl", - "kazimierz-dolny.pl", - "karpacz.pl", - "kartuzy.pl", - "kaszuby.pl", - "katowice.pl", - "kepno.pl", - "ketrzyn.pl", - "klodzko.pl", - "kobierzyce.pl", - "kolobrzeg.pl", - "konin.pl", - "konskowola.pl", - "kutno.pl", - "lapy.pl", - "lebork.pl", - "legnica.pl", - "lezajsk.pl", - "limanowa.pl", - "lomza.pl", - "lowicz.pl", - "lubin.pl", - "lukow.pl", - "malbork.pl", - "malopolska.pl", - "mazowsze.pl", - "mazury.pl", - "mielec.pl", - "mielno.pl", - "mragowo.pl", - "naklo.pl", - "nowaruda.pl", - "nysa.pl", - "olawa.pl", - "olecko.pl", - "olkusz.pl", - "olsztyn.pl", - "opoczno.pl", - "opole.pl", - "ostroda.pl", - "ostroleka.pl", - "ostrowiec.pl", - "ostrowwlkp.pl", - "pila.pl", - "pisz.pl", - "podhale.pl", - "podlasie.pl", - "polkowice.pl", - "pomorze.pl", - "pomorskie.pl", - "prochowice.pl", - "pruszkow.pl", - "przeworsk.pl", - "pulawy.pl", - "radom.pl", - "rawa-maz.pl", - "rybnik.pl", - "rzeszow.pl", - "sanok.pl", - "sejny.pl", - "slask.pl", - "slupsk.pl", - "sosnowiec.pl", - "stalowa-wola.pl", - "skoczow.pl", - "starachowice.pl", - "stargard.pl", - "suwalki.pl", - "swidnica.pl", - "swiebodzin.pl", - "swinoujscie.pl", - "szczecin.pl", - "szczytno.pl", - "tarnobrzeg.pl", - "tgory.pl", - "turek.pl", - "tychy.pl", - "ustka.pl", - "walbrzych.pl", - "warmia.pl", - "warszawa.pl", - "waw.pl", - "wegrow.pl", - "wielun.pl", - "wlocl.pl", - "wloclawek.pl", - "wodzislaw.pl", - "wolomin.pl", - "wroclaw.pl", - "zachpomor.pl", - "zagan.pl", - "zarow.pl", - "zgora.pl", - "zgorzelec.pl", - "pm", - "pn", - "gov.pn", - "co.pn", - "org.pn", - "edu.pn", - "net.pn", - "post", - "pr", - "com.pr", - "net.pr", - "org.pr", - "gov.pr", - "edu.pr", - "isla.pr", - "pro.pr", - "biz.pr", - "info.pr", - "name.pr", - "est.pr", - "prof.pr", - "ac.pr", - "pro", - "aca.pro", - "bar.pro", - "cpa.pro", - "jur.pro", - "law.pro", - "med.pro", - "eng.pro", - "ps", - "edu.ps", - "gov.ps", - "sec.ps", - "plo.ps", - "com.ps", - "org.ps", - "net.ps", - "pt", - "net.pt", - "gov.pt", - "org.pt", - "edu.pt", - "int.pt", - "publ.pt", - "com.pt", - "nome.pt", - "pw", - "co.pw", - "ne.pw", - "or.pw", - "ed.pw", - "go.pw", - "belau.pw", - "py", - "com.py", - "coop.py", - "edu.py", - "gov.py", - "mil.py", - "net.py", - "org.py", - "qa", - "com.qa", - "edu.qa", - "gov.qa", - "mil.qa", - "name.qa", - "net.qa", - "org.qa", - "sch.qa", - "re", - "com.re", - "asso.re", - "nom.re", - "ro", - "com.ro", - "org.ro", - "tm.ro", - "nt.ro", - "nom.ro", - "info.ro", - "rec.ro", - "arts.ro", - "firm.ro", - "store.ro", - "www.ro", - "rs", - "co.rs", - "org.rs", - "edu.rs", - "ac.rs", - "gov.rs", - "in.rs", - "ru", - "ac.ru", - "com.ru", - "edu.ru", - "int.ru", - "net.ru", - "org.ru", - "pp.ru", - "adygeya.ru", - "altai.ru", - "amur.ru", - "arkhangelsk.ru", - "astrakhan.ru", - "bashkiria.ru", - "belgorod.ru", - "bir.ru", - "bryansk.ru", - "buryatia.ru", - "cbg.ru", - "chel.ru", - "chelyabinsk.ru", - "chita.ru", - "chukotka.ru", - "chuvashia.ru", - "dagestan.ru", - "dudinka.ru", - "e-burg.ru", - "grozny.ru", - "irkutsk.ru", - "ivanovo.ru", - "izhevsk.ru", - "jar.ru", - "joshkar-ola.ru", - "kalmykia.ru", - "kaluga.ru", - "kamchatka.ru", - "karelia.ru", - "kazan.ru", - "kchr.ru", - "kemerovo.ru", - "khabarovsk.ru", - "khakassia.ru", - "khv.ru", - "kirov.ru", - "koenig.ru", - "komi.ru", - "kostroma.ru", - "krasnoyarsk.ru", - "kuban.ru", - "kurgan.ru", - "kursk.ru", - "lipetsk.ru", - "magadan.ru", - "mari.ru", - "mari-el.ru", - "marine.ru", - "mordovia.ru", - "msk.ru", - "murmansk.ru", - "nalchik.ru", - "nnov.ru", - "nov.ru", - "novosibirsk.ru", - "nsk.ru", - "omsk.ru", - "orenburg.ru", - "oryol.ru", - "palana.ru", - "penza.ru", - "perm.ru", - "ptz.ru", - "rnd.ru", - "ryazan.ru", - "sakhalin.ru", - "samara.ru", - "saratov.ru", - "simbirsk.ru", - "smolensk.ru", - "spb.ru", - "stavropol.ru", - "stv.ru", - "surgut.ru", - "tambov.ru", - "tatarstan.ru", - "tom.ru", - "tomsk.ru", - "tsaritsyn.ru", - "tsk.ru", - "tula.ru", - "tuva.ru", - "tver.ru", - "tyumen.ru", - "udm.ru", - "udmurtia.ru", - "ulan-ude.ru", - "vladikavkaz.ru", - "vladimir.ru", - "vladivostok.ru", - "volgograd.ru", - "vologda.ru", - "voronezh.ru", - "vrn.ru", - "vyatka.ru", - "yakutia.ru", - "yamal.ru", - "yaroslavl.ru", - "yekaterinburg.ru", - "yuzhno-sakhalinsk.ru", - "amursk.ru", - "baikal.ru", - "cmw.ru", - "fareast.ru", - "jamal.ru", - "kms.ru", - "k-uralsk.ru", - "kustanai.ru", - "kuzbass.ru", - "magnitka.ru", - "mytis.ru", - "nakhodka.ru", - "nkz.ru", - "norilsk.ru", - "oskol.ru", - "pyatigorsk.ru", - "rubtsovsk.ru", - "snz.ru", - "syzran.ru", - "vdonsk.ru", - "zgrad.ru", - "gov.ru", - "mil.ru", - "test.ru", - "rw", - "gov.rw", - "net.rw", - "edu.rw", - "ac.rw", - "com.rw", - "co.rw", - "int.rw", - "mil.rw", - "gouv.rw", - "sa", - "com.sa", - "net.sa", - "org.sa", - "gov.sa", - "med.sa", - "pub.sa", - "edu.sa", - "sch.sa", - "sb", - "com.sb", - "edu.sb", - "gov.sb", - "net.sb", - "org.sb", - "sc", - "com.sc", - "gov.sc", - "net.sc", - "org.sc", - "edu.sc", - "sd", - "com.sd", - "net.sd", - "org.sd", - "edu.sd", - "med.sd", - "tv.sd", - "gov.sd", - "info.sd", - "se", - "a.se", - "ac.se", - "b.se", - "bd.se", - "brand.se", - "c.se", - "d.se", - "e.se", - "f.se", - "fh.se", - "fhsk.se", - "fhv.se", - "g.se", - "h.se", - "i.se", - "k.se", - "komforb.se", - "kommunalforbund.se", - "komvux.se", - "l.se", - "lanbib.se", - "m.se", - "n.se", - "naturbruksgymn.se", - "o.se", - "org.se", - "p.se", - "parti.se", - "pp.se", - "press.se", - "r.se", - "s.se", - "t.se", - "tm.se", - "u.se", - "w.se", - "x.se", - "y.se", - "z.se", - "sg", - "com.sg", - "net.sg", - "org.sg", - "gov.sg", - "edu.sg", - "per.sg", - "sh", - "com.sh", - "net.sh", - "gov.sh", - "org.sh", - "mil.sh", - "si", - "sj", - "sk", - "sl", - "com.sl", - "net.sl", - "edu.sl", - "gov.sl", - "org.sl", - "sm", - "sn", - "art.sn", - "com.sn", - "edu.sn", - "gouv.sn", - "org.sn", - "perso.sn", - "univ.sn", - "so", - "com.so", - "net.so", - "org.so", - "sr", - "st", - "co.st", - "com.st", - "consulado.st", - "edu.st", - "embaixada.st", - "gov.st", - "mil.st", - "net.st", - "org.st", - "principe.st", - "saotome.st", - "store.st", - "su", - "adygeya.su", - "arkhangelsk.su", - "balashov.su", - "bashkiria.su", - "bryansk.su", - "dagestan.su", - "grozny.su", - "ivanovo.su", - "kalmykia.su", - "kaluga.su", - "karelia.su", - "khakassia.su", - "krasnodar.su", - "kurgan.su", - "lenug.su", - "mordovia.su", - "msk.su", - "murmansk.su", - "nalchik.su", - "nov.su", - "obninsk.su", - "penza.su", - "pokrovsk.su", - "sochi.su", - "spb.su", - "togliatti.su", - "troitsk.su", - "tula.su", - "tuva.su", - "vladikavkaz.su", - "vladimir.su", - "vologda.su", - "sv", - "com.sv", - "edu.sv", - "gob.sv", - "org.sv", - "red.sv", - "sx", - "gov.sx", - "sy", - "edu.sy", - "gov.sy", - "net.sy", - "mil.sy", - "com.sy", - "org.sy", - "sz", - "co.sz", - "ac.sz", - "org.sz", - "tc", - "td", - "tel", - "tf", - "tg", - "th", - "ac.th", - "co.th", - "go.th", - "in.th", - "mi.th", - "net.th", - "or.th", - "tj", - "ac.tj", - "biz.tj", - "co.tj", - "com.tj", - "edu.tj", - "go.tj", - "gov.tj", - "int.tj", - "mil.tj", - "name.tj", - "net.tj", - "nic.tj", - "org.tj", - "test.tj", - "web.tj", - "tk", - "tl", - "gov.tl", - "tm", - "com.tm", - "co.tm", - "org.tm", - "net.tm", - "nom.tm", - "gov.tm", - "mil.tm", - "edu.tm", - "tn", - "com.tn", - "ens.tn", - "fin.tn", - "gov.tn", - "ind.tn", - "intl.tn", - "nat.tn", - "net.tn", - "org.tn", - "info.tn", - "perso.tn", - "tourism.tn", - "edunet.tn", - "rnrt.tn", - "rns.tn", - "rnu.tn", - "mincom.tn", - "agrinet.tn", - "defense.tn", - "turen.tn", - "to", - "com.to", - "gov.to", - "net.to", - "org.to", - "edu.to", - "mil.to", - "tp", - "tr", - "com.tr", - "info.tr", - "biz.tr", - "net.tr", - "org.tr", - "web.tr", - "gen.tr", - "tv.tr", - "av.tr", - "dr.tr", - "bbs.tr", - "name.tr", - "tel.tr", - "gov.tr", - "bel.tr", - "pol.tr", - "mil.tr", - "k12.tr", - "edu.tr", - "kep.tr", - "nc.tr", - "gov.nc.tr", - "travel", - "tt", - "co.tt", - "com.tt", - "org.tt", - "net.tt", - "biz.tt", - "info.tt", - "pro.tt", - "int.tt", - "coop.tt", - "jobs.tt", - "mobi.tt", - "travel.tt", - "museum.tt", - "aero.tt", - "name.tt", - "gov.tt", - "edu.tt", - "tv", - "tw", - "edu.tw", - "gov.tw", - "mil.tw", - "com.tw", - "net.tw", - "org.tw", - "idv.tw", - "game.tw", - "ebiz.tw", - "club.tw", - "xn--zf0ao64a.tw", - "xn--uc0atv.tw", - "xn--czrw28b.tw", - "tz", - "ac.tz", - "co.tz", - "go.tz", - "hotel.tz", - "info.tz", - "me.tz", - "mil.tz", - "mobi.tz", - "ne.tz", - "or.tz", - "sc.tz", - "tv.tz", - "ua", - "com.ua", - "edu.ua", - "gov.ua", - "in.ua", - "net.ua", - "org.ua", - "cherkassy.ua", - "cherkasy.ua", - "chernigov.ua", - "chernihiv.ua", - "chernivtsi.ua", - "chernovtsy.ua", - "ck.ua", - "cn.ua", - "cr.ua", - "crimea.ua", - "cv.ua", - "dn.ua", - "dnepropetrovsk.ua", - "dnipropetrovsk.ua", - "dominic.ua", - "donetsk.ua", - "dp.ua", - "if.ua", - "ivano-frankivsk.ua", - "kh.ua", - "kharkiv.ua", - "kharkov.ua", - "kherson.ua", - "khmelnitskiy.ua", - "khmelnytskyi.ua", - "kiev.ua", - "kirovograd.ua", - "km.ua", - "kr.ua", - "krym.ua", - "ks.ua", - "kv.ua", - "kyiv.ua", - "lg.ua", - "lt.ua", - "lugansk.ua", - "lutsk.ua", - "lv.ua", - "lviv.ua", - "mk.ua", - "mykolaiv.ua", - "nikolaev.ua", - "od.ua", - "odesa.ua", - "odessa.ua", - "pl.ua", - "poltava.ua", - "rivne.ua", - "rovno.ua", - "rv.ua", - "sb.ua", - "sebastopol.ua", - "sevastopol.ua", - "sm.ua", - "sumy.ua", - "te.ua", - "ternopil.ua", - "uz.ua", - "uzhgorod.ua", - "vinnica.ua", - "vinnytsia.ua", - "vn.ua", - "volyn.ua", - "yalta.ua", - "zaporizhzhe.ua", - "zaporizhzhia.ua", - "zhitomir.ua", - "zhytomyr.ua", - "zp.ua", - "zt.ua", - "ug", - "co.ug", - "or.ug", - "ac.ug", - "sc.ug", - "go.ug", - "ne.ug", - "com.ug", - "org.ug", - "uk", - "ac.uk", - "co.uk", - "gov.uk", - "ltd.uk", - "me.uk", - "net.uk", - "nhs.uk", - "org.uk", - "plc.uk", - "police.uk", - "*.sch.uk", - "us", - "dni.us", - "fed.us", - "isa.us", - "kids.us", - "nsn.us", - "ak.us", - "al.us", - "ar.us", - "as.us", - "az.us", - "ca.us", - "co.us", - "ct.us", - "dc.us", - "de.us", - "fl.us", - "ga.us", - "gu.us", - "hi.us", - "ia.us", - "id.us", - "il.us", - "in.us", - "ks.us", - "ky.us", - "la.us", - "ma.us", - "md.us", - "me.us", - "mi.us", - "mn.us", - "mo.us", - "ms.us", - "mt.us", - "nc.us", - "nd.us", - "ne.us", - "nh.us", - "nj.us", - "nm.us", - "nv.us", - "ny.us", - "oh.us", - "ok.us", - "or.us", - "pa.us", - "pr.us", - "ri.us", - "sc.us", - "sd.us", - "tn.us", - "tx.us", - "ut.us", - "vi.us", - "vt.us", - "va.us", - "wa.us", - "wi.us", - "wv.us", - "wy.us", - "k12.ak.us", - "k12.al.us", - "k12.ar.us", - "k12.as.us", - "k12.az.us", - "k12.ca.us", - "k12.co.us", - "k12.ct.us", - "k12.dc.us", - "k12.de.us", - "k12.fl.us", - "k12.ga.us", - "k12.gu.us", - "k12.ia.us", - "k12.id.us", - "k12.il.us", - "k12.in.us", - "k12.ks.us", - "k12.ky.us", - "k12.la.us", - "k12.ma.us", - "k12.md.us", - "k12.me.us", - "k12.mi.us", - "k12.mn.us", - "k12.mo.us", - "k12.ms.us", - "k12.mt.us", - "k12.nc.us", - "k12.ne.us", - "k12.nh.us", - "k12.nj.us", - "k12.nm.us", - "k12.nv.us", - "k12.ny.us", - "k12.oh.us", - "k12.ok.us", - "k12.or.us", - "k12.pa.us", - "k12.pr.us", - "k12.ri.us", - "k12.sc.us", - "k12.tn.us", - "k12.tx.us", - "k12.ut.us", - "k12.vi.us", - "k12.vt.us", - "k12.va.us", - "k12.wa.us", - "k12.wi.us", - "k12.wy.us", - "cc.ak.us", - "cc.al.us", - "cc.ar.us", - "cc.as.us", - "cc.az.us", - "cc.ca.us", - "cc.co.us", - "cc.ct.us", - "cc.dc.us", - "cc.de.us", - "cc.fl.us", - "cc.ga.us", - "cc.gu.us", - "cc.hi.us", - "cc.ia.us", - "cc.id.us", - "cc.il.us", - "cc.in.us", - "cc.ks.us", - "cc.ky.us", - "cc.la.us", - "cc.ma.us", - "cc.md.us", - "cc.me.us", - "cc.mi.us", - "cc.mn.us", - "cc.mo.us", - "cc.ms.us", - "cc.mt.us", - "cc.nc.us", - "cc.nd.us", - "cc.ne.us", - "cc.nh.us", - "cc.nj.us", - "cc.nm.us", - "cc.nv.us", - "cc.ny.us", - "cc.oh.us", - "cc.ok.us", - "cc.or.us", - "cc.pa.us", - "cc.pr.us", - "cc.ri.us", - "cc.sc.us", - "cc.sd.us", - "cc.tn.us", - "cc.tx.us", - "cc.ut.us", - "cc.vi.us", - "cc.vt.us", - "cc.va.us", - "cc.wa.us", - "cc.wi.us", - "cc.wv.us", - "cc.wy.us", - "lib.ak.us", - "lib.al.us", - "lib.ar.us", - "lib.as.us", - "lib.az.us", - "lib.ca.us", - "lib.co.us", - "lib.ct.us", - "lib.dc.us", - "lib.de.us", - "lib.fl.us", - "lib.ga.us", - "lib.gu.us", - "lib.hi.us", - "lib.ia.us", - "lib.id.us", - "lib.il.us", - "lib.in.us", - "lib.ks.us", - "lib.ky.us", - "lib.la.us", - "lib.ma.us", - "lib.md.us", - "lib.me.us", - "lib.mi.us", - "lib.mn.us", - "lib.mo.us", - "lib.ms.us", - "lib.mt.us", - "lib.nc.us", - "lib.nd.us", - "lib.ne.us", - "lib.nh.us", - "lib.nj.us", - "lib.nm.us", - "lib.nv.us", - "lib.ny.us", - "lib.oh.us", - "lib.ok.us", - "lib.or.us", - "lib.pa.us", - "lib.pr.us", - "lib.ri.us", - "lib.sc.us", - "lib.sd.us", - "lib.tn.us", - "lib.tx.us", - "lib.ut.us", - "lib.vi.us", - "lib.vt.us", - "lib.va.us", - "lib.wa.us", - "lib.wi.us", - "lib.wy.us", - "pvt.k12.ma.us", - "chtr.k12.ma.us", - "paroch.k12.ma.us", - "uy", - "com.uy", - "edu.uy", - "gub.uy", - "mil.uy", - "net.uy", - "org.uy", - "uz", - "co.uz", - "com.uz", - "net.uz", - "org.uz", - "va", - "vc", - "com.vc", - "net.vc", - "org.vc", - "gov.vc", - "mil.vc", - "edu.vc", - "ve", - "arts.ve", - "co.ve", - "com.ve", - "e12.ve", - "edu.ve", - "firm.ve", - "gob.ve", - "gov.ve", - "info.ve", - "int.ve", - "mil.ve", - "net.ve", - "org.ve", - "rec.ve", - "store.ve", - "tec.ve", - "web.ve", - "vg", - "vi", - "co.vi", - "com.vi", - "k12.vi", - "net.vi", - "org.vi", - "vn", - "com.vn", - "net.vn", - "org.vn", - "edu.vn", - "gov.vn", - "int.vn", - "ac.vn", - "biz.vn", - "info.vn", - "name.vn", - "pro.vn", - "health.vn", - "vu", - "com.vu", - "edu.vu", - "net.vu", - "org.vu", - "wf", - "ws", - "com.ws", - "net.ws", - "org.ws", - "gov.ws", - "edu.ws", - "yt", - "xn--mgbaam7a8h", - "xn--y9a3aq", - "xn--54b7fta0cc", - "xn--90ais", - "xn--fiqs8s", - "xn--fiqz9s", - "xn--lgbbat1ad8j", - "xn--wgbh1c", - "xn--node", - "xn--qxam", - "xn--j6w193g", - "xn--h2brj9c", - "xn--mgbbh1a71e", - "xn--fpcrj9c3d", - "xn--gecrj9c", - "xn--s9brj9c", - "xn--45brj9c", - "xn--xkc2dl3a5ee0h", - "xn--mgba3a4f16a", - "xn--mgba3a4fra", - "xn--mgbtx2b", - "xn--mgbayh7gpa", - "xn--3e0b707e", - "xn--80ao21a", - "xn--fzc2c9e2c", - "xn--xkc2al3hye2a", - "xn--mgbc0a9azcg", - "xn--d1alf", - "xn--l1acc", - "xn--mix891f", - "xn--mix082f", - "xn--mgbx4cd0ab", - "xn--mgb9awbf", - "xn--mgbai9azgqp6j", - "xn--mgbai9a5eva00b", - "xn--ygbi2ammx", - "xn--90a3ac", - "xn--o1ac.xn--90a3ac", - "xn--c1avg.xn--90a3ac", - "xn--90azh.xn--90a3ac", - "xn--d1at.xn--90a3ac", - "xn--o1ach.xn--90a3ac", - "xn--80au.xn--90a3ac", - "xn--p1ai", - "xn--wgbl6a", - "xn--mgberp4a5d4ar", - "xn--mgberp4a5d4a87g", - "xn--mgbqly7c0a67fbc", - "xn--mgbqly7cvafr", - "xn--mgbpl2fh", - "xn--yfro4i67o", - "xn--clchc0ea0b2g2a9gcd", - "xn--ogbpf8fl", - "xn--mgbtf8fl", - "xn--o3cw4h", - "xn--pgbs0dh", - "xn--kpry57d", - "xn--kprw13d", - "xn--nnx388a", - "xn--j1amh", - "xn--mgb2ddes", - "xxx", - "*.ye", - "ac.za", - "agrica.za", - "alt.za", - "co.za", - "edu.za", - "gov.za", - "grondar.za", - "law.za", - "mil.za", - "net.za", - "ngo.za", - "nis.za", - "nom.za", - "org.za", - "school.za", - "tm.za", - "web.za", - "*.zm", - "*.zw", - "aaa", - "aarp", - "abarth", - "abb", - "abbott", - "abbvie", - "abc", - "able", - "abogado", - "abudhabi", - "academy", - "accenture", - "accountant", - "accountants", - "aco", - "active", - "actor", - "adac", - "ads", - "adult", - "aeg", - "aetna", - "afamilycompany", - "afl", - "africa", - "africamagic", - "agakhan", - "agency", - "aig", - "aigo", - "airbus", - "airforce", - "airtel", - "akdn", - "alfaromeo", - "alibaba", - "alipay", - "allfinanz", - "allstate", - "ally", - "alsace", - "alstom", - "americanexpress", - "americanfamily", - "amex", - "amfam", - "amica", - "amsterdam", - "analytics", - "android", - "anquan", - "anz", - "aol", - "apartments", - "app", - "apple", - "aquarelle", - "aramco", - "archi", - "army", - "arte", - "asda", - "associates", - "athleta", - "attorney", - "auction", - "audi", - "audible", - "audio", - "auspost", - "author", - "auto", - "autos", - "avianca", - "aws", - "axa", - "azure", - "baby", - "baidu", - "banamex", - "bananarepublic", - "band", - "bank", - "bar", - "barcelona", - "barclaycard", - "barclays", - "barefoot", - "bargains", - "basketball", - "bauhaus", - "bayern", - "bbc", - "bbt", - "bbva", - "bcg", - "bcn", - "beats", - "beer", - "bentley", - "berlin", - "best", - "bestbuy", - "bet", - "bharti", - "bible", - "bid", - "bike", - "bing", - "bingo", - "bio", - "black", - "blackfriday", - "blanco", - "blockbuster", - "blog", - "bloomberg", - "blue", - "bms", - "bmw", - "bnl", - "bnpparibas", - "boats", - "boehringer", - "bofa", - "bom", - "bond", - "boo", - "book", - "booking", - "boots", - "bosch", - "bostik", - "bot", - "boutique", - "bradesco", - "bridgestone", - "broadway", - "broker", - "brother", - "brussels", - "budapest", - "bugatti", - "build", - "builders", - "business", - "buy", - "buzz", - "bzh", - "cab", - "cafe", - "cal", - "call", - "calvinklein", - "camera", - "camp", - "cancerresearch", - "canon", - "capetown", - "capital", - "capitalone", - "car", - "caravan", - "cards", - "care", - "career", - "careers", - "cars", - "cartier", - "casa", - "case", - "caseih", - "cash", - "casino", - "catering", - "cba", - "cbn", - "cbre", - "cbs", - "ceb", - "center", - "ceo", - "cern", - "cfa", - "cfd", - "chanel", - "channel", - "chase", - "chat", - "cheap", - "chintai", - "chloe", - "christmas", - "chrome", - "chrysler", - "church", - "cipriani", - "circle", - "cisco", - "citadel", - "citi", - "citic", - "city", - "cityeats", - "claims", - "cleaning", - "click", - "clinic", - "clinique", - "clothing", - "cloud", - "club", - "clubmed", - "coach", - "codes", - "coffee", - "college", - "cologne", - "comcast", - "commbank", - "community", - "company", - "compare", - "computer", - "comsec", - "condos", - "construction", - "consulting", - "contact", - "contractors", - "cooking", - "cookingchannel", - "cool", - "corsica", - "country", - "coupon", - "coupons", - "courses", - "credit", - "creditcard", - "creditunion", - "cricket", - "crown", - "crs", - "cruises", - "csc", - "cuisinella", - "cymru", - "cyou", - "dabur", - "dad", - "dance", - "date", - "dating", - "datsun", - "day", - "dclk", - "dds", - "deal", - "dealer", - "deals", - "degree", - "delivery", - "dell", - "deloitte", - "delta", - "democrat", - "dental", - "dentist", - "desi", - "design", - "dev", - "dhl", - "diamonds", - "diet", - "digital", - "direct", - "directory", - "discount", - "discover", - "dish", - "dnp", - "docs", - "dodge", - "dog", - "doha", - "domains", - "doosan", - "dot", - "download", - "drive", - "dstv", - "dtv", - "dubai", - "duck", - "dunlop", - "duns", - "dupont", - "durban", - "dvag", - "dwg", - "earth", - "eat", - "edeka", - "education", - "email", - "emerck", - "emerson", - "energy", - "engineer", - "engineering", - "enterprises", - "epost", - "epson", - "equipment", - "ericsson", - "erni", - "esq", - "estate", - "esurance", - "etisalat", - "eurovision", - "eus", - "events", - "everbank", - "exchange", - "expert", - "exposed", - "express", - "extraspace", - "fage", - "fail", - "fairwinds", - "faith", - "family", - "fan", - "fans", - "farm", - "farmers", - "fashion", - "fast", - "fedex", - "feedback", - "ferrari", - "ferrero", - "fiat", - "fidelity", - "fido", - "film", - "final", - "finance", - "financial", - "fire", - "firestone", - "firmdale", - "fish", - "fishing", - "fit", - "fitness", - "flickr", - "flights", - "flir", - "florist", - "flowers", - "flsmidth", - "fly", - "foo", - "foodnetwork", - "football", - "ford", - "forex", - "forsale", - "forum", - "foundation", - "fox", - "fresenius", - "frl", - "frogans", - "frontdoor", - "frontier", - "ftr", - "fujitsu", - "fujixerox", - "fund", - "furniture", - "futbol", - "fyi", - "gal", - "gallery", - "gallo", - "gallup", - "game", - "games", - "gap", - "garden", - "gbiz", - "gdn", - "gea", - "gent", - "genting", - "george", - "ggee", - "gift", - "gifts", - "gives", - "giving", - "glade", - "glass", - "gle", - "global", - "globo", - "gmail", - "gmo", - "gmx", - "godaddy", - "gold", - "goldpoint", - "golf", - "goo", - "goodhands", - "goodyear", - "goog", - "google", - "gop", - "got", - "gotv", - "grainger", - "graphics", - "gratis", - "green", - "gripe", - "group", - "guardian", - "gucci", - "guge", - "guide", - "guitars", - "guru", - "hamburg", - "hangout", - "haus", - "hbo", - "hdfc", - "hdfcbank", - "health", - "healthcare", - "help", - "helsinki", - "here", - "hermes", - "hgtv", - "hiphop", - "hisamitsu", - "hitachi", - "hiv", - "hkt", - "hockey", - "holdings", - "holiday", - "homedepot", - "homegoods", - "homes", - "homesense", - "honda", - "honeywell", - "horse", - "host", - "hosting", - "hot", - "hoteles", - "hotmail", - "house", - "how", - "hsbc", - "htc", - "hughes", - "hyatt", - "hyundai", - "ibm", - "icbc", - "ice", - "icu", - "ieee", - "ifm", - "iinet", - "ikano", - "imamat", - "imdb", - "immo", - "immobilien", - "industries", - "infiniti", - "ing", - "ink", - "institute", - "insurance", - "insure", - "intel", - "international", - "intuit", - "investments", - "ipiranga", - "irish", - "iselect", - "ismaili", - "ist", - "istanbul", - "itau", - "itv", - "iveco", - "iwc", - "jaguar", - "java", - "jcb", - "jcp", - "jeep", - "jetzt", - "jewelry", - "jio", - "jlc", - "jll", - "jmp", - "jnj", - "joburg", - "jot", - "joy", - "jpmorgan", - "jprs", - "juegos", - "juniper", - "kaufen", - "kddi", - "kerryhotels", - "kerrylogistics", - "kerryproperties", - "kfh", - "kia", - "kim", - "kinder", - "kindle", - "kitchen", - "kiwi", - "koeln", - "komatsu", - "kosher", - "kpmg", - "kpn", - "krd", - "kred", - "kuokgroup", - "kyknet", - "kyoto", - "lacaixa", - "ladbrokes", - "lamborghini", - "lamer", - "lancaster", - "lancia", - "lancome", - "land", - "landrover", - "lanxess", - "lasalle", - "lat", - "latino", - "latrobe", - "law", - "lawyer", - "lds", - "lease", - "leclerc", - "lefrak", - "legal", - "lego", - "lexus", - "lgbt", - "liaison", - "lidl", - "life", - "lifeinsurance", - "lifestyle", - "lighting", - "like", - "lilly", - "limited", - "limo", - "lincoln", - "linde", - "link", - "lipsy", - "live", - "living", - "lixil", - "loan", - "loans", - "locker", - "locus", - "loft", - "lol", - "london", - "lotte", - "lotto", - "love", - "lpl", - "lplfinancial", - "ltd", - "ltda", - "lundbeck", - "lupin", - "luxe", - "luxury", - "macys", - "madrid", - "maif", - "maison", - "makeup", - "man", - "management", - "mango", - "market", - "marketing", - "markets", - "marriott", - "marshalls", - "maserati", - "mattel", - "mba", - "mcd", - "mcdonalds", - "mckinsey", - "med", - "media", - "meet", - "melbourne", - "meme", - "memorial", - "men", - "menu", - "meo", - "metlife", - "miami", - "microsoft", - "mini", - "mint", - "mit", - "mitsubishi", - "mlb", - "mls", - "mma", - "mnet", - "mobily", - "moda", - "moe", - "moi", - "mom", - "monash", - "money", - "monster", - "montblanc", - "mopar", - "mormon", - "mortgage", - "moscow", - "moto", - "motorcycles", - "mov", - "movie", - "movistar", - "msd", - "mtn", - "mtpc", - "mtr", - "multichoice", - "mutual", - "mutuelle", - "mzansimagic", - "nab", - "nadex", - "nagoya", - "naspers", - "nationwide", - "natura", - "navy", - "nba", - "nec", - "netbank", - "netflix", - "network", - "neustar", - "new", - "newholland", - "news", - "next", - "nextdirect", - "nexus", - "nfl", - "ngo", - "nhk", - "nico", - "nike", - "nikon", - "ninja", - "nissan", - "nokia", - "northwesternmutual", - "norton", - "now", - "nowruz", - "nowtv", - "nra", - "nrw", - "ntt", - "nyc", - "obi", - "observer", - "off", - "office", - "okinawa", - "olayan", - "olayangroup", - "oldnavy", - "ollo", - "omega", - "one", - "ong", - "onl", - "online", - "onyourside", - "ooo", - "open", - "oracle", - "orange", - "organic", - "orientexpress", - "origins", - "osaka", - "otsuka", - "ott", - "ovh", - "page", - "pamperedchef", - "panasonic", - "panerai", - "paris", - "pars", - "partners", - "parts", - "party", - "passagens", - "pay", - "payu", - "pccw", - "pet", - "pfizer", - "pharmacy", - "philips", - "photo", - "photography", - "photos", - "physio", - "piaget", - "pics", - "pictet", - "pictures", - "pid", - "pin", - "ping", - "pink", - "pioneer", - "pizza", - "place", - "play", - "playstation", - "plumbing", - "plus", - "pnc", - "pohl", - "poker", - "politie", - "porn", - "pramerica", - "praxi", - "press", - "prime", - "prod", - "productions", - "prof", - "progressive", - "promo", - "properties", - "property", - "protection", - "pru", - "prudential", - "pub", - "qpon", - "quebec", - "quest", - "qvc", - "racing", - "raid", - "read", - "realestate", - "realtor", - "realty", - "recipes", - "red", - "redstone", - "redumbrella", - "rehab", - "reise", - "reisen", - "reit", - "reliance", - "ren", - "rent", - "rentals", - "repair", - "report", - "republican", - "rest", - "restaurant", - "review", - "reviews", - "rexroth", - "rich", - "richardli", - "ricoh", - "rightathome", - "ril", - "rio", - "rip", - "rocher", - "rocks", - "rodeo", - "rogers", - "room", - "rsvp", - "ruhr", - "run", - "rwe", - "ryukyu", - "saarland", - "safe", - "safety", - "sakura", - "sale", - "salon", - "samsclub", - "samsung", - "sandvik", - "sandvikcoromant", - "sanofi", - "sap", - "sapo", - "sarl", - "sas", - "save", - "saxo", - "sbi", - "sbs", - "sca", - "scb", - "schaeffler", - "schmidt", - "scholarships", - "school", - "schule", - "schwarz", - "science", - "scjohnson", - "scor", - "scot", - "seat", - "secure", - "security", - "seek", - "select", - "sener", - "services", - "ses", - "seven", - "sew", - "sex", - "sexy", - "sfr", - "shangrila", - "sharp", - "shaw", - "shell", - "shia", - "shiksha", - "shoes", - "shouji", - "show", - "showtime", - "shriram", - "silk", - "sina", - "singles", - "site", - "ski", - "skin", - "sky", - "skype", - "sling", - "smart", - "smile", - "sncf", - "soccer", - "social", - "softbank", - "software", - "sohu", - "solar", - "solutions", - "song", - "sony", - "soy", - "space", - "spiegel", - "spot", - "spreadbetting", - "srl", - "srt", - "stada", - "staples", - "star", - "starhub", - "statebank", - "statefarm", - "statoil", - "stc", - "stcgroup", - "stockholm", - "storage", - "store", - "studio", - "study", - "style", - "sucks", - "supersport", - "supplies", - "supply", - "support", - "surf", - "surgery", - "suzuki", - "swatch", - "swiftcover", - "swiss", - "sydney", - "symantec", - "systems", - "tab", - "taipei", - "talk", - "taobao", - "target", - "tatamotors", - "tatar", - "tattoo", - "tax", - "taxi", - "tci", - "tdk", - "team", - "tech", - "technology", - "telecity", - "telefonica", - "temasek", - "tennis", - "teva", - "thd", - "theater", - "theatre", - "theguardian", - "tiaa", - "tickets", - "tienda", - "tiffany", - "tips", - "tires", - "tirol", - "tjmaxx", - "tjx", - "tkmaxx", - "tmall", - "today", - "tokyo", - "tools", - "top", - "toray", - "toshiba", - "total", - "tours", - "town", - "toyota", - "toys", - "trade", - "trading", - "training", - "travelchannel", - "travelers", - "travelersinsurance", - "trust", - "trv", - "tube", - "tui", - "tunes", - "tushu", - "tvs", - "ubank", - "ubs", - "uconnect", - "university", - "uno", - "uol", - "ups", - "vacations", - "vana", - "vanguard", - "vegas", - "ventures", - "verisign", - "versicherung", - "vet", - "viajes", - "video", - "vig", - "viking", - "villas", - "vin", - "vip", - "virgin", - "visa", - "vision", - "vista", - "vistaprint", - "viva", - "vivo", - "vlaanderen", - "vodka", - "volkswagen", - "vote", - "voting", - "voto", - "voyage", - "vuelos", - "wales", - "walmart", - "walter", - "wang", - "wanggou", - "warman", - "watch", - "watches", - "weather", - "weatherchannel", - "webcam", - "weber", - "website", - "wed", - "wedding", - "weibo", - "weir", - "whoswho", - "wien", - "wiki", - "williamhill", - "win", - "windows", - "wine", - "winners", - "wme", - "wolterskluwer", - "woodside", - "work", - "works", - "world", - "wow", - "wtc", - "wtf", - "xbox", - "xerox", - "xfinity", - "xihuan", - "xin", - "xn--11b4c3d", - "xn--1ck2e1b", - "xn--1qqw23a", - "xn--30rr7y", - "xn--3bst00m", - "xn--3ds443g", - "xn--3oq18vl8pn36a", - "xn--3pxu8k", - "xn--42c2d9a", - "xn--45q11c", - "xn--4gbrim", - "xn--4gq48lf9j", - "xn--55qw42g", - "xn--55qx5d", - "xn--5su34j936bgsg", - "xn--5tzm5g", - "xn--6frz82g", - "xn--6qq986b3xl", - "xn--80adxhks", - "xn--80asehdb", - "xn--80aswg", - "xn--8y0a063a", - "xn--9dbq2a", - "xn--9et52u", - "xn--9krt00a", - "xn--b4w605ferd", - "xn--bck1b9a5dre4c", - "xn--c1avg", - "xn--c2br7g", - "xn--cck2b3b", - "xn--cg4bki", - "xn--czr694b", - "xn--czrs0t", - "xn--czru2d", - "xn--d1acj3b", - "xn--eckvdtc9d", - "xn--efvy88h", - "xn--estv75g", - "xn--fct429k", - "xn--fhbei", - "xn--fiq228c5hs", - "xn--fiq64b", - "xn--fjq720a", - "xn--flw351e", - "xn--fzys8d69uvgm", - "xn--g2xx48c", - "xn--gckr3f0f", - "xn--gk3at1e", - "xn--hxt814e", - "xn--i1b6b1a6a2e", - "xn--imr513n", - "xn--io0a7i", - "xn--j1aef", - "xn--jlq61u9w7b", - "xn--jvr189m", - "xn--kcrx77d1x4a", - "xn--kpu716f", - "xn--kput3i", - "xn--mgba3a3ejt", - "xn--mgba7c0bbn0a", - "xn--mgbaakc7dvf", - "xn--mgbab2bd", - "xn--mgbb9fbpob", - "xn--mgbca7dzdo", - "xn--mgbt3dhd", - "xn--mk1bu44c", - "xn--mxtq1m", - "xn--ngbc5azd", - "xn--ngbe9e0a", - "xn--nqv7f", - "xn--nqv7fs00ema", - "xn--nyqy26a", - "xn--p1acf", - "xn--pbt977c", - "xn--pssy2u", - "xn--q9jyb4c", - "xn--qcka1pmc", - "xn--rhqv96g", - "xn--rovu88b", - "xn--ses554g", - "xn--t60b56a", - "xn--tckwe", - "xn--unup4y", - "xn--vermgensberater-ctb", - "xn--vermgensberatung-pwb", - "xn--vhquv", - "xn--vuq861b", - "xn--w4r85el8fhu5dnra", - "xn--w4rs40l", - "xn--xhq521b", - "xn--zfr164b", - "xperia", - "xyz", - "yachts", - "yahoo", - "yamaxun", - "yandex", - "yodobashi", - "yoga", - "yokohama", - "you", - "youtube", - "yun", - "zappos", - "zara", - "zero", - "zip", - "zippo", - "zone", - "zuerich", - "cloudfront.net", - "ap-northeast-1.compute.amazonaws.com", - "ap-southeast-1.compute.amazonaws.com", - "ap-southeast-2.compute.amazonaws.com", - "cn-north-1.compute.amazonaws.cn", - "compute.amazonaws.cn", - "compute.amazonaws.com", - "compute-1.amazonaws.com", - "eu-west-1.compute.amazonaws.com", - "eu-central-1.compute.amazonaws.com", - "sa-east-1.compute.amazonaws.com", - "us-east-1.amazonaws.com", - "us-gov-west-1.compute.amazonaws.com", - "us-west-1.compute.amazonaws.com", - "us-west-2.compute.amazonaws.com", - "z-1.compute-1.amazonaws.com", - "z-2.compute-1.amazonaws.com", - "elasticbeanstalk.com", - "elb.amazonaws.com", - "s3.amazonaws.com", - "s3-ap-northeast-1.amazonaws.com", - "s3-ap-southeast-1.amazonaws.com", - "s3-ap-southeast-2.amazonaws.com", - "s3-external-1.amazonaws.com", - "s3-external-2.amazonaws.com", - "s3-fips-us-gov-west-1.amazonaws.com", - "s3-eu-central-1.amazonaws.com", - "s3-eu-west-1.amazonaws.com", - "s3-sa-east-1.amazonaws.com", - "s3-us-gov-west-1.amazonaws.com", - "s3-us-west-1.amazonaws.com", - "s3-us-west-2.amazonaws.com", - "s3.cn-north-1.amazonaws.com.cn", - "s3.eu-central-1.amazonaws.com", - "betainabox.com", - "ae.org", - "ar.com", - "br.com", - "cn.com", - "com.de", - "com.se", - "de.com", - "eu.com", - "gb.com", - "gb.net", - "hu.com", - "hu.net", - "jp.net", - "jpn.com", - "kr.com", - "mex.com", - "no.com", - "qc.com", - "ru.com", - "sa.com", - "se.com", - "se.net", - "uk.com", - "uk.net", - "us.com", - "uy.com", - "za.bz", - "za.com", - "africa.com", - "gr.com", - "in.net", - "us.org", - "co.com", - "c.la", - "cloudcontrolled.com", - "cloudcontrolapp.com", - "co.ca", - "c.cdn77.org", - "cdn77-ssl.net", - "r.cdn77.net", - "rsc.cdn77.org", - "ssl.origin.cdn77-secure.org", - "co.nl", - "co.no", - "*.platform.sh", - "cupcake.is", - "dreamhosters.com", - "duckdns.org", - "dyndns-at-home.com", - "dyndns-at-work.com", - "dyndns-blog.com", - "dyndns-free.com", - "dyndns-home.com", - "dyndns-ip.com", - "dyndns-mail.com", - "dyndns-office.com", - "dyndns-pics.com", - "dyndns-remote.com", - "dyndns-server.com", - "dyndns-web.com", - "dyndns-wiki.com", - "dyndns-work.com", - "dyndns.biz", - "dyndns.info", - "dyndns.org", - "dyndns.tv", - "at-band-camp.net", - "ath.cx", - "barrel-of-knowledge.info", - "barrell-of-knowledge.info", - "better-than.tv", - "blogdns.com", - "blogdns.net", - "blogdns.org", - "blogsite.org", - "boldlygoingnowhere.org", - "broke-it.net", - "buyshouses.net", - "cechire.com", - "dnsalias.com", - "dnsalias.net", - "dnsalias.org", - "dnsdojo.com", - "dnsdojo.net", - "dnsdojo.org", - "does-it.net", - "doesntexist.com", - "doesntexist.org", - "dontexist.com", - "dontexist.net", - "dontexist.org", - "doomdns.com", - "doomdns.org", - "dvrdns.org", - "dyn-o-saur.com", - "dynalias.com", - "dynalias.net", - "dynalias.org", - "dynathome.net", - "dyndns.ws", - "endofinternet.net", - "endofinternet.org", - "endoftheinternet.org", - "est-a-la-maison.com", - "est-a-la-masion.com", - "est-le-patron.com", - "est-mon-blogueur.com", - "for-better.biz", - "for-more.biz", - "for-our.info", - "for-some.biz", - "for-the.biz", - "forgot.her.name", - "forgot.his.name", - "from-ak.com", - "from-al.com", - "from-ar.com", - "from-az.net", - "from-ca.com", - "from-co.net", - "from-ct.com", - "from-dc.com", - "from-de.com", - "from-fl.com", - "from-ga.com", - "from-hi.com", - "from-ia.com", - "from-id.com", - "from-il.com", - "from-in.com", - "from-ks.com", - "from-ky.com", - "from-la.net", - "from-ma.com", - "from-md.com", - "from-me.org", - "from-mi.com", - "from-mn.com", - "from-mo.com", - "from-ms.com", - "from-mt.com", - "from-nc.com", - "from-nd.com", - "from-ne.com", - "from-nh.com", - "from-nj.com", - "from-nm.com", - "from-nv.com", - "from-ny.net", - "from-oh.com", - "from-ok.com", - "from-or.com", - "from-pa.com", - "from-pr.com", - "from-ri.com", - "from-sc.com", - "from-sd.com", - "from-tn.com", - "from-tx.com", - "from-ut.com", - "from-va.com", - "from-vt.com", - "from-wa.com", - "from-wi.com", - "from-wv.com", - "from-wy.com", - "ftpaccess.cc", - "fuettertdasnetz.de", - "game-host.org", - "game-server.cc", - "getmyip.com", - "gets-it.net", - "go.dyndns.org", - "gotdns.com", - "gotdns.org", - "groks-the.info", - "groks-this.info", - "ham-radio-op.net", - "here-for-more.info", - "hobby-site.com", - "hobby-site.org", - "home.dyndns.org", - "homedns.org", - "homeftp.net", - "homeftp.org", - "homeip.net", - "homelinux.com", - "homelinux.net", - "homelinux.org", - "homeunix.com", - "homeunix.net", - "homeunix.org", - "iamallama.com", - "in-the-band.net", - "is-a-anarchist.com", - "is-a-blogger.com", - "is-a-bookkeeper.com", - "is-a-bruinsfan.org", - "is-a-bulls-fan.com", - "is-a-candidate.org", - "is-a-caterer.com", - "is-a-celticsfan.org", - "is-a-chef.com", - "is-a-chef.net", - "is-a-chef.org", - "is-a-conservative.com", - "is-a-cpa.com", - "is-a-cubicle-slave.com", - "is-a-democrat.com", - "is-a-designer.com", - "is-a-doctor.com", - "is-a-financialadvisor.com", - "is-a-geek.com", - "is-a-geek.net", - "is-a-geek.org", - "is-a-green.com", - "is-a-guru.com", - "is-a-hard-worker.com", - "is-a-hunter.com", - "is-a-knight.org", - "is-a-landscaper.com", - "is-a-lawyer.com", - "is-a-liberal.com", - "is-a-libertarian.com", - "is-a-linux-user.org", - "is-a-llama.com", - "is-a-musician.com", - "is-a-nascarfan.com", - "is-a-nurse.com", - "is-a-painter.com", - "is-a-patsfan.org", - "is-a-personaltrainer.com", - "is-a-photographer.com", - "is-a-player.com", - "is-a-republican.com", - "is-a-rockstar.com", - "is-a-socialist.com", - "is-a-soxfan.org", - "is-a-student.com", - "is-a-teacher.com", - "is-a-techie.com", - "is-a-therapist.com", - "is-an-accountant.com", - "is-an-actor.com", - "is-an-actress.com", - "is-an-anarchist.com", - "is-an-artist.com", - "is-an-engineer.com", - "is-an-entertainer.com", - "is-by.us", - "is-certified.com", - "is-found.org", - "is-gone.com", - "is-into-anime.com", - "is-into-cars.com", - "is-into-cartoons.com", - "is-into-games.com", - "is-leet.com", - "is-lost.org", - "is-not-certified.com", - "is-saved.org", - "is-slick.com", - "is-uberleet.com", - "is-very-bad.org", - "is-very-evil.org", - "is-very-good.org", - "is-very-nice.org", - "is-very-sweet.org", - "is-with-theband.com", - "isa-geek.com", - "isa-geek.net", - "isa-geek.org", - "isa-hockeynut.com", - "issmarterthanyou.com", - "isteingeek.de", - "istmein.de", - "kicks-ass.net", - "kicks-ass.org", - "knowsitall.info", - "land-4-sale.us", - "lebtimnetz.de", - "leitungsen.de", - "likes-pie.com", - "likescandy.com", - "merseine.nu", - "mine.nu", - "misconfused.org", - "mypets.ws", - "myphotos.cc", - "neat-url.com", - "office-on-the.net", - "on-the-web.tv", - "podzone.net", - "podzone.org", - "readmyblog.org", - "saves-the-whales.com", - "scrapper-site.net", - "scrapping.cc", - "selfip.biz", - "selfip.com", - "selfip.info", - "selfip.net", - "selfip.org", - "sells-for-less.com", - "sells-for-u.com", - "sells-it.net", - "sellsyourhome.org", - "servebbs.com", - "servebbs.net", - "servebbs.org", - "serveftp.net", - "serveftp.org", - "servegame.org", - "shacknet.nu", - "simple-url.com", - "space-to-rent.com", - "stuff-4-sale.org", - "stuff-4-sale.us", - "teaches-yoga.com", - "thruhere.net", - "traeumtgerade.de", - "webhop.biz", - "webhop.info", - "webhop.net", - "webhop.org", - "worse-than.tv", - "writesthisblog.com", - "eu.org", - "al.eu.org", - "asso.eu.org", - "at.eu.org", - "au.eu.org", - "be.eu.org", - "bg.eu.org", - "ca.eu.org", - "cd.eu.org", - "ch.eu.org", - "cn.eu.org", - "cy.eu.org", - "cz.eu.org", - "de.eu.org", - "dk.eu.org", - "edu.eu.org", - "ee.eu.org", - "es.eu.org", - "fi.eu.org", - "fr.eu.org", - "gr.eu.org", - "hr.eu.org", - "hu.eu.org", - "ie.eu.org", - "il.eu.org", - "in.eu.org", - "int.eu.org", - "is.eu.org", - "it.eu.org", - "jp.eu.org", - "kr.eu.org", - "lt.eu.org", - "lu.eu.org", - "lv.eu.org", - "mc.eu.org", - "me.eu.org", - "mk.eu.org", - "mt.eu.org", - "my.eu.org", - "net.eu.org", - "ng.eu.org", - "nl.eu.org", - "no.eu.org", - "nz.eu.org", - "paris.eu.org", - "pl.eu.org", - "pt.eu.org", - "q-a.eu.org", - "ro.eu.org", - "ru.eu.org", - "se.eu.org", - "si.eu.org", - "sk.eu.org", - "tr.eu.org", - "uk.eu.org", - "us.eu.org", - "a.ssl.fastly.net", - "b.ssl.fastly.net", - "global.ssl.fastly.net", - "a.prod.fastly.net", - "global.prod.fastly.net", - "firebaseapp.com", - "flynnhub.com", - "service.gov.uk", - "github.io", - "githubusercontent.com", - "ro.com", - "appspot.com", - "blogspot.ae", - "blogspot.al", - "blogspot.am", - "blogspot.ba", - "blogspot.be", - "blogspot.bg", - "blogspot.bj", - "blogspot.ca", - "blogspot.cf", - "blogspot.ch", - "blogspot.cl", - "blogspot.co.at", - "blogspot.co.id", - "blogspot.co.il", - "blogspot.co.ke", - "blogspot.co.nz", - "blogspot.co.uk", - "blogspot.co.za", - "blogspot.com", - "blogspot.com.ar", - "blogspot.com.au", - "blogspot.com.br", - "blogspot.com.by", - "blogspot.com.co", - "blogspot.com.cy", - "blogspot.com.ee", - "blogspot.com.eg", - "blogspot.com.es", - "blogspot.com.mt", - "blogspot.com.ng", - "blogspot.com.tr", - "blogspot.com.uy", - "blogspot.cv", - "blogspot.cz", - "blogspot.de", - "blogspot.dk", - "blogspot.fi", - "blogspot.fr", - "blogspot.gr", - "blogspot.hk", - "blogspot.hr", - "blogspot.hu", - "blogspot.ie", - "blogspot.in", - "blogspot.is", - "blogspot.it", - "blogspot.jp", - "blogspot.kr", - "blogspot.li", - "blogspot.lt", - "blogspot.lu", - "blogspot.md", - "blogspot.mk", - "blogspot.mr", - "blogspot.mx", - "blogspot.my", - "blogspot.nl", - "blogspot.no", - "blogspot.pe", - "blogspot.pt", - "blogspot.qa", - "blogspot.re", - "blogspot.ro", - "blogspot.rs", - "blogspot.ru", - "blogspot.se", - "blogspot.sg", - "blogspot.si", - "blogspot.sk", - "blogspot.sn", - "blogspot.td", - "blogspot.tw", - "blogspot.ug", - "blogspot.vn", - "codespot.com", - "googleapis.com", - "googlecode.com", - "pagespeedmobilizer.com", - "withgoogle.com", - "withyoutube.com", - "herokuapp.com", - "herokussl.com", - "iki.fi", - "biz.at", - "info.at", - "co.pl", - "azurewebsites.net", - "azure-mobile.net", - "cloudapp.net", - "bmoattachments.org", - "4u.com", - "nfshost.com", - "nyc.mn", - "nid.io", - "operaunite.com", - "outsystemscloud.com", - "art.pl", - "gliwice.pl", - "krakow.pl", - "poznan.pl", - "wroc.pl", - "zakopane.pl", - "pantheon.io", - "gotpantheon.com", - "priv.at", - "qa2.com", - "rhcloud.com", - "sandcats.io", - "biz.ua", - "co.ua", - "pp.ua", - "sinaapp.com", - "vipsinaapp.com", - "1kapp.com", - "gda.pl", - "gdansk.pl", - "gdynia.pl", - "med.pl", - "sopot.pl", - "hk.com", - "hk.org", - "ltd.hk", - "inc.hk", - "yolasite.com", - "za.net", - "za.org", -} - -var nodeLabels = [...]string{ - "aaa", - "aarp", - "abarth", - "abb", - "abbott", - "abbvie", - "abc", - "able", - "abogado", - "abudhabi", - "ac", - "academy", - "accenture", - "accountant", - "accountants", - "aco", - "active", - "actor", - "ad", - "adac", - "ads", - "adult", - "ae", - "aeg", - "aero", - "aetna", - "af", - "afamilycompany", - "afl", - "africa", - "africamagic", - "ag", - "agakhan", - "agency", - "ai", - "aig", - "aigo", - "airbus", - "airforce", - "airtel", - "akdn", - "al", - "alfaromeo", - "alibaba", - "alipay", - "allfinanz", - "allstate", - "ally", - "alsace", - "alstom", - "am", - "americanexpress", - "americanfamily", - "amex", - "amfam", - "amica", - "amsterdam", - "an", - "analytics", - "android", - "anquan", - "anz", - "ao", - "aol", - "apartments", - "app", - "apple", - "aq", - "aquarelle", - "ar", - "aramco", - "archi", - "army", - "arpa", - "arte", - "as", - "asda", - "asia", - "associates", - "at", - "athleta", - "attorney", - "au", - "auction", - "audi", - "audible", - "audio", - "auspost", - "author", - "auto", - "autos", - "avianca", - "aw", - "aws", - "ax", - "axa", - "az", - "azure", - "ba", - "baby", - "baidu", - "banamex", - "bananarepublic", - "band", - "bank", - "bar", - "barcelona", - "barclaycard", - "barclays", - "barefoot", - "bargains", - "basketball", - "bauhaus", - "bayern", - "bb", - "bbc", - "bbt", - "bbva", - "bcg", - "bcn", - "bd", - "be", - "beats", - "beer", - "bentley", - "berlin", - "best", - "bestbuy", - "bet", - "bf", - "bg", - "bh", - "bharti", - "bi", - "bible", - "bid", - "bike", - "bing", - "bingo", - "bio", - "biz", - "bj", - "black", - "blackfriday", - "blanco", - "blockbuster", - "blog", - "bloomberg", - "blue", - "bm", - "bms", - "bmw", - "bn", - "bnl", - "bnpparibas", - "bo", - "boats", - "boehringer", - "bofa", - "bom", - "bond", - "boo", - "book", - "booking", - "boots", - "bosch", - "bostik", - "bot", - "boutique", - "br", - "bradesco", - "bridgestone", - "broadway", - "broker", - "brother", - "brussels", - "bs", - "bt", - "budapest", - "bugatti", - "build", - "builders", - "business", - "buy", - "buzz", - "bv", - "bw", - "by", - "bz", - "bzh", - "ca", - "cab", - "cafe", - "cal", - "call", - "calvinklein", - "camera", - "camp", - "cancerresearch", - "canon", - "capetown", - "capital", - "capitalone", - "car", - "caravan", - "cards", - "care", - "career", - "careers", - "cars", - "cartier", - "casa", - "case", - "caseih", - "cash", - "casino", - "cat", - "catering", - "cba", - "cbn", - "cbre", - "cbs", - "cc", - "cd", - "ceb", - "center", - "ceo", - "cern", - "cf", - "cfa", - "cfd", - "cg", - "ch", - "chanel", - "channel", - "chase", - "chat", - "cheap", - "chintai", - "chloe", - "christmas", - "chrome", - "chrysler", - "church", - "ci", - "cipriani", - "circle", - "cisco", - "citadel", - "citi", - "citic", - "city", - "cityeats", - "ck", - "cl", - "claims", - "cleaning", - "click", - "clinic", - "clinique", - "clothing", - "cloud", - "club", - "clubmed", - "cm", - "cn", - "co", - "coach", - "codes", - "coffee", - "college", - "cologne", - "com", - "comcast", - "commbank", - "community", - "company", - "compare", - "computer", - "comsec", - "condos", - "construction", - "consulting", - "contact", - "contractors", - "cooking", - "cookingchannel", - "cool", - "coop", - "corsica", - "country", - "coupon", - "coupons", - "courses", - "cr", - "credit", - "creditcard", - "creditunion", - "cricket", - "crown", - "crs", - "cruises", - "csc", - "cu", - "cuisinella", - "cv", - "cw", - "cx", - "cy", - "cymru", - "cyou", - "cz", - "dabur", - "dad", - "dance", - "date", - "dating", - "datsun", - "day", - "dclk", - "dds", - "de", - "deal", - "dealer", - "deals", - "degree", - "delivery", - "dell", - "deloitte", - "delta", - "democrat", - "dental", - "dentist", - "desi", - "design", - "dev", - "dhl", - "diamonds", - "diet", - "digital", - "direct", - "directory", - "discount", - "discover", - "dish", - "dj", - "dk", - "dm", - "dnp", - "do", - "docs", - "dodge", - "dog", - "doha", - "domains", - "doosan", - "dot", - "download", - "drive", - "dstv", - "dtv", - "dubai", - "duck", - "dunlop", - "duns", - "dupont", - "durban", - "dvag", - "dwg", - "dz", - "earth", - "eat", - "ec", - "edeka", - "edu", - "education", - "ee", - "eg", - "email", - "emerck", - "emerson", - "energy", - "engineer", - "engineering", - "enterprises", - "epost", - "epson", - "equipment", - "er", - "ericsson", - "erni", - "es", - "esq", - "estate", - "esurance", - "et", - "etisalat", - "eu", - "eurovision", - "eus", - "events", - "everbank", - "exchange", - "expert", - "exposed", - "express", - "extraspace", - "fage", - "fail", - "fairwinds", - "faith", - "family", - "fan", - "fans", - "farm", - "farmers", - "fashion", - "fast", - "fedex", - "feedback", - "ferrari", - "ferrero", - "fi", - "fiat", - "fidelity", - "fido", - "film", - "final", - "finance", - "financial", - "fire", - "firestone", - "firmdale", - "fish", - "fishing", - "fit", - "fitness", - "fj", - "fk", - "flickr", - "flights", - "flir", - "florist", - "flowers", - "flsmidth", - "fly", - "fm", - "fo", - "foo", - "foodnetwork", - "football", - "ford", - "forex", - "forsale", - "forum", - "foundation", - "fox", - "fr", - "fresenius", - "frl", - "frogans", - "frontdoor", - "frontier", - "ftr", - "fujitsu", - "fujixerox", - "fund", - "furniture", - "futbol", - "fyi", - "ga", - "gal", - "gallery", - "gallo", - "gallup", - "game", - "games", - "gap", - "garden", - "gb", - "gbiz", - "gd", - "gdn", - "ge", - "gea", - "gent", - "genting", - "george", - "gf", - "gg", - "ggee", - "gh", - "gi", - "gift", - "gifts", - "gives", - "giving", - "gl", - "glade", - "glass", - "gle", - "global", - "globo", - "gm", - "gmail", - "gmo", - "gmx", - "gn", - "godaddy", - "gold", - "goldpoint", - "golf", - "goo", - "goodhands", - "goodyear", - "goog", - "google", - "gop", - "got", - "gotv", - "gov", - "gp", - "gq", - "gr", - "grainger", - "graphics", - "gratis", - "green", - "gripe", - "group", - "gs", - "gt", - "gu", - "guardian", - "gucci", - "guge", - "guide", - "guitars", - "guru", - "gw", - "gy", - "hamburg", - "hangout", - "haus", - "hbo", - "hdfc", - "hdfcbank", - "health", - "healthcare", - "help", - "helsinki", - "here", - "hermes", - "hgtv", - "hiphop", - "hisamitsu", - "hitachi", - "hiv", - "hk", - "hkt", - "hm", - "hn", - "hockey", - "holdings", - "holiday", - "homedepot", - "homegoods", - "homes", - "homesense", - "honda", - "honeywell", - "horse", - "host", - "hosting", - "hot", - "hoteles", - "hotmail", - "house", - "how", - "hr", - "hsbc", - "ht", - "htc", - "hu", - "hughes", - "hyatt", - "hyundai", - "ibm", - "icbc", - "ice", - "icu", - "id", - "ie", - "ieee", - "ifm", - "iinet", - "ikano", - "il", - "im", - "imamat", - "imdb", - "immo", - "immobilien", - "in", - "industries", - "infiniti", - "info", - "ing", - "ink", - "institute", - "insurance", - "insure", - "int", - "intel", - "international", - "intuit", - "investments", - "io", - "ipiranga", - "iq", - "ir", - "irish", - "is", - "iselect", - "ismaili", - "ist", - "istanbul", - "it", - "itau", - "itv", - "iveco", - "iwc", - "jaguar", - "java", - "jcb", - "jcp", - "je", - "jeep", - "jetzt", - "jewelry", - "jio", - "jlc", - "jll", - "jm", - "jmp", - "jnj", - "jo", - "jobs", - "joburg", - "jot", - "joy", - "jp", - "jpmorgan", - "jprs", - "juegos", - "juniper", - "kaufen", - "kddi", - "ke", - "kerryhotels", - "kerrylogistics", - "kerryproperties", - "kfh", - "kg", - "kh", - "ki", - "kia", - "kim", - "kinder", - "kindle", - "kitchen", - "kiwi", - "km", - "kn", - "koeln", - "komatsu", - "kosher", - "kp", - "kpmg", - "kpn", - "kr", - "krd", - "kred", - "kuokgroup", - "kw", - "ky", - "kyknet", - "kyoto", - "kz", - "la", - "lacaixa", - "ladbrokes", - "lamborghini", - "lamer", - "lancaster", - "lancia", - "lancome", - "land", - "landrover", - "lanxess", - "lasalle", - "lat", - "latino", - "latrobe", - "law", - "lawyer", - "lb", - "lc", - "lds", - "lease", - "leclerc", - "lefrak", - "legal", - "lego", - "lexus", - "lgbt", - "li", - "liaison", - "lidl", - "life", - "lifeinsurance", - "lifestyle", - "lighting", - "like", - "lilly", - "limited", - "limo", - "lincoln", - "linde", - "link", - "lipsy", - "live", - "living", - "lixil", - "lk", - "loan", - "loans", - "locker", - "locus", - "loft", - "lol", - "london", - "lotte", - "lotto", - "love", - "lpl", - "lplfinancial", - "lr", - "ls", - "lt", - "ltd", - "ltda", - "lu", - "lundbeck", - "lupin", - "luxe", - "luxury", - "lv", - "ly", - "ma", - "macys", - "madrid", - "maif", - "maison", - "makeup", - "man", - "management", - "mango", - "market", - "marketing", - "markets", - "marriott", - "marshalls", - "maserati", - "mattel", - "mba", - "mc", - "mcd", - "mcdonalds", - "mckinsey", - "md", - "me", - "med", - "media", - "meet", - "melbourne", - "meme", - "memorial", - "men", - "menu", - "meo", - "metlife", - "mg", - "mh", - "miami", - "microsoft", - "mil", - "mini", - "mint", - "mit", - "mitsubishi", - "mk", - "ml", - "mlb", - "mls", - "mm", - "mma", - "mn", - "mnet", - "mo", - "mobi", - "mobily", - "moda", - "moe", - "moi", - "mom", - "monash", - "money", - "monster", - "montblanc", - "mopar", - "mormon", - "mortgage", - "moscow", - "moto", - "motorcycles", - "mov", - "movie", - "movistar", - "mp", - "mq", - "mr", - "ms", - "msd", - "mt", - "mtn", - "mtpc", - "mtr", - "mu", - "multichoice", - "museum", - "mutual", - "mutuelle", - "mv", - "mw", - "mx", - "my", - "mz", - "mzansimagic", - "na", - "nab", - "nadex", - "nagoya", - "name", - "naspers", - "nationwide", - "natura", - "navy", - "nba", - "nc", - "ne", - "nec", - "net", - "netbank", - "netflix", - "network", - "neustar", - "new", - "newholland", - "news", - "next", - "nextdirect", - "nexus", - "nf", - "nfl", - "ng", - "ngo", - "nhk", - "ni", - "nico", - "nike", - "nikon", - "ninja", - "nissan", - "nl", - "no", - "nokia", - "northwesternmutual", - "norton", - "now", - "nowruz", - "nowtv", - "np", - "nr", - "nra", - "nrw", - "ntt", - "nu", - "nyc", - "nz", - "obi", - "observer", - "off", - "office", - "okinawa", - "olayan", - "olayangroup", - "oldnavy", - "ollo", - "om", - "omega", - "one", - "ong", - "onl", - "online", - "onyourside", - "ooo", - "open", - "oracle", - "orange", - "org", - "organic", - "orientexpress", - "origins", - "osaka", - "otsuka", - "ott", - "ovh", - "pa", - "page", - "pamperedchef", - "panasonic", - "panerai", - "paris", - "pars", - "partners", - "parts", - "party", - "passagens", - "pay", - "payu", - "pccw", - "pe", - "pet", - "pf", - "pfizer", - "pg", - "ph", - "pharmacy", - "philips", - "photo", - "photography", - "photos", - "physio", - "piaget", - "pics", - "pictet", - "pictures", - "pid", - "pin", - "ping", - "pink", - "pioneer", - "pizza", - "pk", - "pl", - "place", - "play", - "playstation", - "plumbing", - "plus", - "pm", - "pn", - "pnc", - "pohl", - "poker", - "politie", - "porn", - "post", - "pr", - "pramerica", - "praxi", - "press", - "prime", - "pro", - "prod", - "productions", - "prof", - "progressive", - "promo", - "properties", - "property", - "protection", - "pru", - "prudential", - "ps", - "pt", - "pub", - "pw", - "py", - "qa", - "qpon", - "quebec", - "quest", - "qvc", - "racing", - "raid", - "re", - "read", - "realestate", - "realtor", - "realty", - "recipes", - "red", - "redstone", - "redumbrella", - "rehab", - "reise", - "reisen", - "reit", - "reliance", - "ren", - "rent", - "rentals", - "repair", - "report", - "republican", - "rest", - "restaurant", - "review", - "reviews", - "rexroth", - "rich", - "richardli", - "ricoh", - "rightathome", - "ril", - "rio", - "rip", - "ro", - "rocher", - "rocks", - "rodeo", - "rogers", - "room", - "rs", - "rsvp", - "ru", - "ruhr", - "run", - "rw", - "rwe", - "ryukyu", - "sa", - "saarland", - "safe", - "safety", - "sakura", - "sale", - "salon", - "samsclub", - "samsung", - "sandvik", - "sandvikcoromant", - "sanofi", - "sap", - "sapo", - "sarl", - "sas", - "save", - "saxo", - "sb", - "sbi", - "sbs", - "sc", - "sca", - "scb", - "schaeffler", - "schmidt", - "scholarships", - "school", - "schule", - "schwarz", - "science", - "scjohnson", - "scor", - "scot", - "sd", - "se", - "seat", - "secure", - "security", - "seek", - "select", - "sener", - "services", - "ses", - "seven", - "sew", - "sex", - "sexy", - "sfr", - "sg", - "sh", - "shangrila", - "sharp", - "shaw", - "shell", - "shia", - "shiksha", - "shoes", - "shouji", - "show", - "showtime", - "shriram", - "si", - "silk", - "sina", - "singles", - "site", - "sj", - "sk", - "ski", - "skin", - "sky", - "skype", - "sl", - "sling", - "sm", - "smart", - "smile", - "sn", - "sncf", - "so", - "soccer", - "social", - "softbank", - "software", - "sohu", - "solar", - "solutions", - "song", - "sony", - "soy", - "space", - "spiegel", - "spot", - "spreadbetting", - "sr", - "srl", - "srt", - "st", - "stada", - "staples", - "star", - "starhub", - "statebank", - "statefarm", - "statoil", - "stc", - "stcgroup", - "stockholm", - "storage", - "store", - "studio", - "study", - "style", - "su", - "sucks", - "supersport", - "supplies", - "supply", - "support", - "surf", - "surgery", - "suzuki", - "sv", - "swatch", - "swiftcover", - "swiss", - "sx", - "sy", - "sydney", - "symantec", - "systems", - "sz", - "tab", - "taipei", - "talk", - "taobao", - "target", - "tatamotors", - "tatar", - "tattoo", - "tax", - "taxi", - "tc", - "tci", - "td", - "tdk", - "team", - "tech", - "technology", - "tel", - "telecity", - "telefonica", - "temasek", - "tennis", - "teva", - "tf", - "tg", - "th", - "thd", - "theater", - "theatre", - "theguardian", - "tiaa", - "tickets", - "tienda", - "tiffany", - "tips", - "tires", - "tirol", - "tj", - "tjmaxx", - "tjx", - "tk", - "tkmaxx", - "tl", - "tm", - "tmall", - "tn", - "to", - "today", - "tokyo", - "tools", - "top", - "toray", - "toshiba", - "total", - "tours", - "town", - "toyota", - "toys", - "tp", - "tr", - "trade", - "trading", - "training", - "travel", - "travelchannel", - "travelers", - "travelersinsurance", - "trust", - "trv", - "tt", - "tube", - "tui", - "tunes", - "tushu", - "tv", - "tvs", - "tw", - "tz", - "ua", - "ubank", - "ubs", - "uconnect", - "ug", - "uk", - "university", - "uno", - "uol", - "ups", - "us", - "uy", - "uz", - "va", - "vacations", - "vana", - "vanguard", - "vc", - "ve", - "vegas", - "ventures", - "verisign", - "versicherung", - "vet", - "vg", - "vi", - "viajes", - "video", - "vig", - "viking", - "villas", - "vin", - "vip", - "virgin", - "visa", - "vision", - "vista", - "vistaprint", - "viva", - "vivo", - "vlaanderen", - "vn", - "vodka", - "volkswagen", - "vote", - "voting", - "voto", - "voyage", - "vu", - "vuelos", - "wales", - "walmart", - "walter", - "wang", - "wanggou", - "warman", - "watch", - "watches", - "weather", - "weatherchannel", - "webcam", - "weber", - "website", - "wed", - "wedding", - "weibo", - "weir", - "wf", - "whoswho", - "wien", - "wiki", - "williamhill", - "win", - "windows", - "wine", - "winners", - "wme", - "wolterskluwer", - "woodside", - "work", - "works", - "world", - "wow", - "ws", - "wtc", - "wtf", - "xbox", - "xerox", - "xfinity", - "xihuan", - "xin", - "xn--11b4c3d", - "xn--1ck2e1b", - "xn--1qqw23a", - "xn--30rr7y", - "xn--3bst00m", - "xn--3ds443g", - "xn--3e0b707e", - "xn--3oq18vl8pn36a", - "xn--3pxu8k", - "xn--42c2d9a", - "xn--45brj9c", - "xn--45q11c", - "xn--4gbrim", - "xn--4gq48lf9j", - "xn--54b7fta0cc", - "xn--55qw42g", - "xn--55qx5d", - "xn--5su34j936bgsg", - "xn--5tzm5g", - "xn--6frz82g", - "xn--6qq986b3xl", - "xn--80adxhks", - "xn--80ao21a", - "xn--80asehdb", - "xn--80aswg", - "xn--8y0a063a", - "xn--90a3ac", - "xn--90ais", - "xn--9dbq2a", - "xn--9et52u", - "xn--9krt00a", - "xn--b4w605ferd", - "xn--bck1b9a5dre4c", - "xn--c1avg", - "xn--c2br7g", - "xn--cck2b3b", - "xn--cg4bki", - "xn--clchc0ea0b2g2a9gcd", - "xn--czr694b", - "xn--czrs0t", - "xn--czru2d", - "xn--d1acj3b", - "xn--d1alf", - "xn--eckvdtc9d", - "xn--efvy88h", - "xn--estv75g", - "xn--fct429k", - "xn--fhbei", - "xn--fiq228c5hs", - "xn--fiq64b", - "xn--fiqs8s", - "xn--fiqz9s", - "xn--fjq720a", - "xn--flw351e", - "xn--fpcrj9c3d", - "xn--fzc2c9e2c", - "xn--fzys8d69uvgm", - "xn--g2xx48c", - "xn--gckr3f0f", - "xn--gecrj9c", - "xn--gk3at1e", - "xn--h2brj9c", - "xn--hxt814e", - "xn--i1b6b1a6a2e", - "xn--imr513n", - "xn--io0a7i", - "xn--j1aef", - "xn--j1amh", - "xn--j6w193g", - "xn--jlq61u9w7b", - "xn--jvr189m", - "xn--kcrx77d1x4a", - "xn--kprw13d", - "xn--kpry57d", - "xn--kpu716f", - "xn--kput3i", - "xn--l1acc", - "xn--lgbbat1ad8j", - "xn--mgb2ddes", - "xn--mgb9awbf", - "xn--mgba3a3ejt", - "xn--mgba3a4f16a", - "xn--mgba3a4fra", - "xn--mgba7c0bbn0a", - "xn--mgbaakc7dvf", - "xn--mgbaam7a8h", - "xn--mgbab2bd", - "xn--mgbai9a5eva00b", - "xn--mgbai9azgqp6j", - "xn--mgbayh7gpa", - "xn--mgbb9fbpob", - "xn--mgbbh1a71e", - "xn--mgbc0a9azcg", - "xn--mgbca7dzdo", - "xn--mgberp4a5d4a87g", - "xn--mgberp4a5d4ar", - "xn--mgbpl2fh", - "xn--mgbqly7c0a67fbc", - "xn--mgbqly7cvafr", - "xn--mgbt3dhd", - "xn--mgbtf8fl", - "xn--mgbtx2b", - "xn--mgbx4cd0ab", - "xn--mix082f", - "xn--mix891f", - "xn--mk1bu44c", - "xn--mxtq1m", - "xn--ngbc5azd", - "xn--ngbe9e0a", - "xn--nnx388a", - "xn--node", - "xn--nqv7f", - "xn--nqv7fs00ema", - "xn--nyqy26a", - "xn--o3cw4h", - "xn--ogbpf8fl", - "xn--p1acf", - "xn--p1ai", - "xn--pbt977c", - "xn--pgbs0dh", - "xn--pssy2u", - "xn--q9jyb4c", - "xn--qcka1pmc", - "xn--qxam", - "xn--rhqv96g", - "xn--rovu88b", - "xn--s9brj9c", - "xn--ses554g", - "xn--t60b56a", - "xn--tckwe", - "xn--unup4y", - "xn--vermgensberater-ctb", - "xn--vermgensberatung-pwb", - "xn--vhquv", - "xn--vuq861b", - "xn--w4r85el8fhu5dnra", - "xn--w4rs40l", - "xn--wgbh1c", - "xn--wgbl6a", - "xn--xhq521b", - "xn--xkc2al3hye2a", - "xn--xkc2dl3a5ee0h", - "xn--y9a3aq", - "xn--yfro4i67o", - "xn--ygbi2ammx", - "xn--zfr164b", - "xperia", - "xxx", - "xyz", - "yachts", - "yahoo", - "yamaxun", - "yandex", - "ye", - "yodobashi", - "yoga", - "yokohama", - "you", - "youtube", - "yt", - "yun", - "za", - "zappos", - "zara", - "zero", - "zip", - "zippo", - "zm", - "zone", - "zuerich", - "zw", - "com", - "edu", - "gov", - "mil", - "net", - "org", - "nom", - "ac", - "blogspot", - "co", - "gov", - "mil", - "net", - "org", - "sch", - "accident-investigation", - "accident-prevention", - "aerobatic", - "aeroclub", - "aerodrome", - "agents", - "air-surveillance", - "air-traffic-control", - "aircraft", - "airline", - "airport", - "airtraffic", - "ambulance", - "amusement", - "association", - "author", - "ballooning", - "broker", - "caa", - "cargo", - "catering", - "certification", - "championship", - "charter", - "civilaviation", - "club", - "conference", - "consultant", - "consulting", - "control", - "council", - "crew", - "design", - "dgca", - "educator", - "emergency", - "engine", - "engineer", - "entertainment", - "equipment", - "exchange", - "express", - "federation", - "flight", - "freight", - "fuel", - "gliding", - "government", - "groundhandling", - "group", - "hanggliding", - "homebuilt", - "insurance", - "journal", - "journalist", - "leasing", - "logistics", - "magazine", - "maintenance", - "marketplace", - "media", - "microlight", - "modelling", - "navigation", - "parachuting", - "paragliding", - "passenger-association", - "pilot", - "press", - "production", - "recreation", - "repbody", - "res", - "research", - "rotorcraft", - "safety", - "scientist", - "services", - "show", - "skydiving", - "software", - "student", - "taxi", - "trader", - "trading", - "trainer", - "union", - "workinggroup", - "works", - "com", - "edu", - "gov", - "net", - "org", - "co", - "com", - "net", - "nom", - "org", - "com", - "net", - "off", - "org", - "blogspot", - "com", - "edu", - "gov", - "mil", - "net", - "org", - "blogspot", - "com", - "edu", - "net", - "org", - "co", - "ed", - "gv", - "it", - "og", - "pb", - "com", - "edu", - "gob", - "gov", - "int", - "mil", - "net", - "org", - "tur", - "blogspot", - "e164", - "in-addr", - "ip6", - "iris", - "uri", - "urn", - "gov", - "ac", - "biz", - "co", - "gv", - "info", - "or", - "priv", - "blogspot", - "act", - "asn", - "com", - "conf", - "edu", - "gov", - "id", - "info", - "net", - "nsw", - "nt", - "org", - "oz", - "qld", - "sa", - "tas", - "vic", - "wa", - "blogspot", - "act", - "nsw", - "nt", - "qld", - "sa", - "tas", - "vic", - "wa", - "qld", - "sa", - "tas", - "vic", - "wa", - "com", - "biz", - "com", - "edu", - "gov", - "info", - "int", - "mil", - "name", - "net", - "org", - "pp", - "pro", - "blogspot", - "co", - "com", - "edu", - "gov", - "mil", - "net", - "org", - "rs", - "unbi", - "unsa", - "biz", - "co", - "com", - "edu", - "gov", - "info", - "net", - "org", - "store", - "tv", - "ac", - "blogspot", - "gov", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "a", - "b", - "blogspot", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "com", - "edu", - "gov", - "net", - "org", - "co", - "com", - "edu", - "or", - "org", - "dyndns", - "for-better", - "for-more", - "for-some", - "for-the", - "selfip", - "webhop", - "asso", - "barreau", - "blogspot", - "gouv", - "com", - "edu", - "gov", - "net", - "org", - "com", - "edu", - "gob", - "gov", - "int", - "mil", - "net", - "org", - "tv", - "adm", - "adv", - "agr", - "am", - "arq", - "art", - "ato", - "b", - "bio", - "blog", - "bmd", - "cim", - "cng", - "cnt", - "com", - "coop", - "ecn", - "eco", - "edu", - "emp", - "eng", - "esp", - "etc", - "eti", - "far", - "flog", - "fm", - "fnd", - "fot", - "fst", - "g12", - "ggf", - "gov", - "imb", - "ind", - "inf", - "jor", - "jus", - "leg", - "lel", - "mat", - "med", - "mil", - "mp", - "mus", - "net", - "nom", - "not", - "ntr", - "odo", - "org", - "ppg", - "pro", - "psc", - "psi", - "qsl", - "radio", - "rec", - "slg", - "srv", - "taxi", - "teo", - "tmp", - "trd", - "tur", - "tv", - "vet", - "vlog", - "wiki", - "zlg", - "blogspot", - "com", - "edu", - "gov", - "net", - "org", - "com", - "edu", - "gov", - "net", - "org", - "co", - "org", - "com", - "gov", - "mil", - "of", - "blogspot", - "com", - "edu", - "gov", - "net", - "org", - "za", - "ab", - "bc", - "blogspot", - "co", - "gc", - "mb", - "nb", - "nf", - "nl", - "ns", - "nt", - "nu", - "on", - "pe", - "qc", - "sk", - "yk", - "ftpaccess", - "game-server", - "myphotos", - "scrapping", - "gov", - "blogspot", - "blogspot", - "ac", - "asso", - "co", - "com", - "ed", - "edu", - "go", - "gouv", - "int", - "md", - "net", - "or", - "org", - "presse", - "xn--aroport-bya", - "www", - "blogspot", - "co", - "gob", - "gov", - "mil", - "co", - "com", - "gov", - "net", - "ac", - "ah", - "amazonaws", - "bj", - "com", - "cq", - "edu", - "fj", - "gd", - "gov", - "gs", - "gx", - "gz", - "ha", - "hb", - "he", - "hi", - "hk", - "hl", - "hn", - "jl", - "js", - "jx", - "ln", - "mil", - "mo", - "net", - "nm", - "nx", - "org", - "qh", - "sc", - "sd", - "sh", - "sn", - "sx", - "tj", - "tw", - "xj", - "xn--55qx5d", - "xn--io0a7i", - "xn--od0alg", - "xz", - "yn", - "zj", - "compute", - "cn-north-1", - "amazonaws", - "cn-north-1", - "s3", - "arts", - "com", - "edu", - "firm", - "gov", - "info", - "int", - "mil", - "net", - "nom", - "org", - "rec", - "web", - "blogspot", - "1kapp", - "4u", - "africa", - "amazonaws", - "appspot", - "ar", - "betainabox", - "blogdns", - "blogspot", - "br", - "cechire", - "cloudcontrolapp", - "cloudcontrolled", - "cn", - "co", - "codespot", - "de", - "dnsalias", - "dnsdojo", - "doesntexist", - "dontexist", - "doomdns", - "dreamhosters", - "dyn-o-saur", - "dynalias", - "dyndns-at-home", - "dyndns-at-work", - "dyndns-blog", - "dyndns-free", - "dyndns-home", - "dyndns-ip", - "dyndns-mail", - "dyndns-office", - "dyndns-pics", - "dyndns-remote", - "dyndns-server", - "dyndns-web", - "dyndns-wiki", - "dyndns-work", - "elasticbeanstalk", - "est-a-la-maison", - "est-a-la-masion", - "est-le-patron", - "est-mon-blogueur", - "eu", - "firebaseapp", - "flynnhub", - "from-ak", - "from-al", - "from-ar", - "from-ca", - "from-ct", - "from-dc", - "from-de", - "from-fl", - "from-ga", - "from-hi", - "from-ia", - "from-id", - "from-il", - "from-in", - "from-ks", - "from-ky", - "from-ma", - "from-md", - "from-mi", - "from-mn", - "from-mo", - "from-ms", - "from-mt", - "from-nc", - "from-nd", - "from-ne", - "from-nh", - "from-nj", - "from-nm", - "from-nv", - "from-oh", - "from-ok", - "from-or", - "from-pa", - "from-pr", - "from-ri", - "from-sc", - "from-sd", - "from-tn", - "from-tx", - "from-ut", - "from-va", - "from-vt", - "from-wa", - "from-wi", - "from-wv", - "from-wy", - "gb", - "getmyip", - "githubusercontent", - "googleapis", - "googlecode", - "gotdns", - "gotpantheon", - "gr", - "herokuapp", - "herokussl", - "hk", - "hobby-site", - "homelinux", - "homeunix", - "hu", - "iamallama", - "is-a-anarchist", - "is-a-blogger", - "is-a-bookkeeper", - "is-a-bulls-fan", - "is-a-caterer", - "is-a-chef", - "is-a-conservative", - "is-a-cpa", - "is-a-cubicle-slave", - "is-a-democrat", - "is-a-designer", - "is-a-doctor", - "is-a-financialadvisor", - "is-a-geek", - "is-a-green", - "is-a-guru", - "is-a-hard-worker", - "is-a-hunter", - "is-a-landscaper", - "is-a-lawyer", - "is-a-liberal", - "is-a-libertarian", - "is-a-llama", - "is-a-musician", - "is-a-nascarfan", - "is-a-nurse", - "is-a-painter", - "is-a-personaltrainer", - "is-a-photographer", - "is-a-player", - "is-a-republican", - "is-a-rockstar", - "is-a-socialist", - "is-a-student", - "is-a-teacher", - "is-a-techie", - "is-a-therapist", - "is-an-accountant", - "is-an-actor", - "is-an-actress", - "is-an-anarchist", - "is-an-artist", - "is-an-engineer", - "is-an-entertainer", - "is-certified", - "is-gone", - "is-into-anime", - "is-into-cars", - "is-into-cartoons", - "is-into-games", - "is-leet", - "is-not-certified", - "is-slick", - "is-uberleet", - "is-with-theband", - "isa-geek", - "isa-hockeynut", - "issmarterthanyou", - "jpn", - "kr", - "likes-pie", - "likescandy", - "mex", - "neat-url", - "nfshost", - "no", - "operaunite", - "outsystemscloud", - "pagespeedmobilizer", - "qa2", - "qc", - "rhcloud", - "ro", - "ru", - "sa", - "saves-the-whales", - "se", - "selfip", - "sells-for-less", - "sells-for-u", - "servebbs", - "simple-url", - "sinaapp", - "space-to-rent", - "teaches-yoga", - "uk", - "us", - "uy", - "vipsinaapp", - "withgoogle", - "withyoutube", - "writesthisblog", - "yolasite", - "za", - "compute", - "compute-1", - "elb", - "eu-central-1", - "s3", - "s3-ap-northeast-1", - "s3-ap-southeast-1", - "s3-ap-southeast-2", - "s3-eu-central-1", - "s3-eu-west-1", - "s3-external-1", - "s3-external-2", - "s3-fips-us-gov-west-1", - "s3-sa-east-1", - "s3-us-gov-west-1", - "s3-us-west-1", - "s3-us-west-2", - "us-east-1", - "ap-northeast-1", - "ap-southeast-1", - "ap-southeast-2", - "eu-central-1", - "eu-west-1", - "sa-east-1", - "us-gov-west-1", - "us-west-1", - "us-west-2", - "z-1", - "z-2", - "s3", - "ac", - "co", - "ed", - "fi", - "go", - "or", - "sa", - "com", - "edu", - "gov", - "inf", - "net", - "org", - "blogspot", - "com", - "edu", - "net", - "org", - "ath", - "gov", - "ac", - "biz", - "com", - "ekloges", - "gov", - "ltd", - "name", - "net", - "org", - "parliament", - "press", - "pro", - "tm", - "blogspot", - "blogspot", - "blogspot", - "com", - "fuettertdasnetz", - "isteingeek", - "istmein", - "lebtimnetz", - "leitungsen", - "traeumtgerade", - "blogspot", - "com", - "edu", - "gov", - "net", - "org", - "art", - "com", - "edu", - "gob", - "gov", - "mil", - "net", - "org", - "sld", - "web", - "art", - "asso", - "com", - "edu", - "gov", - "net", - "org", - "pol", - "com", - "edu", - "fin", - "gob", - "gov", - "info", - "k12", - "med", - "mil", - "net", - "org", - "pro", - "aip", - "com", - "edu", - "fie", - "gov", - "lib", - "med", - "org", - "pri", - "riik", - "blogspot", - "com", - "edu", - "eun", - "gov", - "mil", - "name", - "net", - "org", - "sci", - "blogspot", - "com", - "edu", - "gob", - "nom", - "org", - "blogspot", - "biz", - "com", - "edu", - "gov", - "info", - "name", - "net", - "org", - "aland", - "blogspot", - "iki", - "aeroport", - "assedic", - "asso", - "avocat", - "avoues", - "blogspot", - "cci", - "chambagri", - "chirurgiens-dentistes", - "com", - "experts-comptables", - "geometre-expert", - "gouv", - "greta", - "huissier-justice", - "medecin", - "nom", - "notaires", - "pharmacien", - "port", - "prd", - "presse", - "tm", - "veterinaire", - "com", - "edu", - "gov", - "mil", - "net", - "org", - "pvt", - "co", - "net", - "org", - "com", - "edu", - "gov", - "mil", - "org", - "com", - "edu", - "gov", - "ltd", - "mod", - "org", - "co", - "com", - "edu", - "net", - "org", - "ac", - "com", - "edu", - "gov", - "net", - "org", - "asso", - "com", - "edu", - "mobi", - "net", - "org", - "blogspot", - "com", - "edu", - "gov", - "net", - "org", - "com", - "edu", - "gob", - "ind", - "mil", - "net", - "org", - "co", - "com", - "net", - "blogspot", - "com", - "edu", - "gov", - "idv", - "inc", - "ltd", - "net", - "org", - "xn--55qx5d", - "xn--ciqpn", - "xn--gmq050i", - "xn--gmqw5a", - "xn--io0a7i", - "xn--lcvr32d", - "xn--mk0axi", - "xn--mxtq1m", - "xn--od0alg", - "xn--od0aq3b", - "xn--tn0ag", - "xn--uc0atv", - "xn--uc0ay4a", - "xn--wcvs22d", - "xn--zf0avx", - "com", - "edu", - "gob", - "mil", - "net", - "org", - "blogspot", - "com", - "from", - "iz", - "name", - "adult", - "art", - "asso", - "com", - "coop", - "edu", - "firm", - "gouv", - "info", - "med", - "net", - "org", - "perso", - "pol", - "pro", - "rel", - "shop", - "2000", - "agrar", - "blogspot", - "bolt", - "casino", - "city", - "co", - "erotica", - "erotika", - "film", - "forum", - "games", - "hotel", - "info", - "ingatlan", - "jogasz", - "konyvelo", - "lakas", - "media", - "news", - "org", - "priv", - "reklam", - "sex", - "shop", - "sport", - "suli", - "szex", - "tm", - "tozsde", - "utazas", - "video", - "ac", - "biz", - "co", - "desa", - "go", - "mil", - "my", - "net", - "or", - "sch", - "web", - "blogspot", - "blogspot", - "gov", - "ac", - "co", - "gov", - "idf", - "k12", - "muni", - "net", - "org", - "blogspot", - "ac", - "co", - "com", - "net", - "org", - "tt", - "tv", - "ltd", - "plc", - "ac", - "blogspot", - "co", - "edu", - "firm", - "gen", - "gov", - "ind", - "mil", - "net", - "nic", - "org", - "res", - "barrel-of-knowledge", - "barrell-of-knowledge", - "dyndns", - "for-our", - "groks-the", - "groks-this", - "here-for-more", - "knowsitall", - "selfip", - "webhop", - "eu", - "com", - "github", - "nid", - "pantheon", - "sandcats", - "com", - "edu", - "gov", - "mil", - "net", - "org", - "ac", - "co", - "gov", - "id", - "net", - "org", - "sch", - "xn--mgba3a4f16a", - "xn--mgba3a4fra", - "blogspot", - "com", - "cupcake", - "edu", - "gov", - "int", - "net", - "org", - "abr", - "abruzzo", - "ag", - "agrigento", - "al", - "alessandria", - "alto-adige", - "altoadige", - "an", - "ancona", - "andria-barletta-trani", - "andria-trani-barletta", - "andriabarlettatrani", - "andriatranibarletta", - "ao", - "aosta", - "aosta-valley", - "aostavalley", - "aoste", - "ap", - "aq", - "aquila", - "ar", - "arezzo", - "ascoli-piceno", - "ascolipiceno", - "asti", - "at", - "av", - "avellino", - "ba", - "balsan", - "bari", - "barletta-trani-andria", - "barlettatraniandria", - "bas", - "basilicata", - "belluno", - "benevento", - "bergamo", - "bg", - "bi", - "biella", - "bl", - "blogspot", - "bn", - "bo", - "bologna", - "bolzano", - "bozen", - "br", - "brescia", - "brindisi", - "bs", - "bt", - "bz", - "ca", - "cagliari", - "cal", - "calabria", - "caltanissetta", - "cam", - "campania", - "campidano-medio", - "campidanomedio", - "campobasso", - "carbonia-iglesias", - "carboniaiglesias", - "carrara-massa", - "carraramassa", - "caserta", - "catania", - "catanzaro", - "cb", - "ce", - "cesena-forli", - "cesenaforli", - "ch", - "chieti", - "ci", - "cl", - "cn", - "co", - "como", - "cosenza", - "cr", - "cremona", - "crotone", - "cs", - "ct", - "cuneo", - "cz", - "dell-ogliastra", - "dellogliastra", - "edu", - "emilia-romagna", - "emiliaromagna", - "emr", - "en", - "enna", - "fc", - "fe", - "fermo", - "ferrara", - "fg", - "fi", - "firenze", - "florence", - "fm", - "foggia", - "forli-cesena", - "forlicesena", - "fr", - "friuli-v-giulia", - "friuli-ve-giulia", - "friuli-vegiulia", - "friuli-venezia-giulia", - "friuli-veneziagiulia", - "friuli-vgiulia", - "friuliv-giulia", - "friulive-giulia", - "friulivegiulia", - "friulivenezia-giulia", - "friuliveneziagiulia", - "friulivgiulia", - "frosinone", - "fvg", - "ge", - "genoa", - "genova", - "go", - "gorizia", - "gov", - "gr", - "grosseto", - "iglesias-carbonia", - "iglesiascarbonia", - "im", - "imperia", - "is", - "isernia", - "kr", - "la-spezia", - "laquila", - "laspezia", - "latina", - "laz", - "lazio", - "lc", - "le", - "lecce", - "lecco", - "li", - "lig", - "liguria", - "livorno", - "lo", - "lodi", - "lom", - "lombardia", - "lombardy", - "lt", - "lu", - "lucania", - "lucca", - "macerata", - "mantova", - "mar", - "marche", - "massa-carrara", - "massacarrara", - "matera", - "mb", - "mc", - "me", - "medio-campidano", - "mediocampidano", - "messina", - "mi", - "milan", - "milano", - "mn", - "mo", - "modena", - "mol", - "molise", - "monza", - "monza-brianza", - "monza-e-della-brianza", - "monzabrianza", - "monzaebrianza", - "monzaedellabrianza", - "ms", - "mt", - "na", - "naples", - "napoli", - "no", - "novara", - "nu", - "nuoro", - "og", - "ogliastra", - "olbia-tempio", - "olbiatempio", - "or", - "oristano", - "ot", - "pa", - "padova", - "padua", - "palermo", - "parma", - "pavia", - "pc", - "pd", - "pe", - "perugia", - "pesaro-urbino", - "pesarourbino", - "pescara", - "pg", - "pi", - "piacenza", - "piedmont", - "piemonte", - "pisa", - "pistoia", - "pmn", - "pn", - "po", - "pordenone", - "potenza", - "pr", - "prato", - "pt", - "pu", - "pug", - "puglia", - "pv", - "pz", - "ra", - "ragusa", - "ravenna", - "rc", - "re", - "reggio-calabria", - "reggio-emilia", - "reggiocalabria", - "reggioemilia", - "rg", - "ri", - "rieti", - "rimini", - "rm", - "rn", - "ro", - "roma", - "rome", - "rovigo", - "sa", - "salerno", - "sar", - "sardegna", - "sardinia", - "sassari", - "savona", - "si", - "sic", - "sicilia", - "sicily", - "siena", - "siracusa", - "so", - "sondrio", - "sp", - "sr", - "ss", - "suedtirol", - "sv", - "ta", - "taa", - "taranto", - "te", - "tempio-olbia", - "tempioolbia", - "teramo", - "terni", - "tn", - "to", - "torino", - "tos", - "toscana", - "tp", - "tr", - "trani-andria-barletta", - "trani-barletta-andria", - "traniandriabarletta", - "tranibarlettaandria", - "trapani", - "trentino", - "trentino-a-adige", - "trentino-aadige", - "trentino-alto-adige", - "trentino-altoadige", - "trentino-s-tirol", - "trentino-stirol", - "trentino-sud-tirol", - "trentino-sudtirol", - "trentino-sued-tirol", - "trentino-suedtirol", - "trentinoa-adige", - "trentinoaadige", - "trentinoalto-adige", - "trentinoaltoadige", - "trentinos-tirol", - "trentinostirol", - "trentinosud-tirol", - "trentinosudtirol", - "trentinosued-tirol", - "trentinosuedtirol", - "trento", - "treviso", - "trieste", - "ts", - "turin", - "tuscany", - "tv", - "ud", - "udine", - "umb", - "umbria", - "urbino-pesaro", - "urbinopesaro", - "va", - "val-d-aosta", - "val-daosta", - "vald-aosta", - "valdaosta", - "valle-aosta", - "valle-d-aosta", - "valle-daosta", - "valleaosta", - "valled-aosta", - "valledaosta", - "vallee-aoste", - "valleeaoste", - "vao", - "varese", - "vb", - "vc", - "vda", - "ve", - "ven", - "veneto", - "venezia", - "venice", - "verbania", - "vercelli", - "verona", - "vi", - "vibo-valentia", - "vibovalentia", - "vicenza", - "viterbo", - "vr", - "vs", - "vt", - "vv", - "co", - "net", - "org", - "com", - "edu", - "gov", - "mil", - "name", - "net", - "org", - "sch", - "ac", - "ad", - "aichi", - "akita", - "aomori", - "blogspot", - "chiba", - "co", - "ed", - "ehime", - "fukui", - "fukuoka", - "fukushima", - "gifu", - "go", - "gr", - "gunma", - "hiroshima", - "hokkaido", - "hyogo", - "ibaraki", - "ishikawa", - "iwate", - "kagawa", - "kagoshima", - "kanagawa", - "kawasaki", - "kitakyushu", - "kobe", - "kochi", - "kumamoto", - "kyoto", - "lg", - "mie", - "miyagi", - "miyazaki", - "nagano", - "nagasaki", - "nagoya", - "nara", - "ne", - "niigata", - "oita", - "okayama", - "okinawa", - "or", - "osaka", - "saga", - "saitama", - "sapporo", - "sendai", - "shiga", - "shimane", - "shizuoka", - "tochigi", - "tokushima", - "tokyo", - "tottori", - "toyama", - "wakayama", - "xn--0trq7p7nn", - "xn--1ctwo", - "xn--1lqs03n", - "xn--1lqs71d", - "xn--2m4a15e", - "xn--32vp30h", - "xn--4it168d", - "xn--4it797k", - "xn--4pvxs", - "xn--5js045d", - "xn--5rtp49c", - "xn--5rtq34k", - "xn--6btw5a", - "xn--6orx2r", - "xn--7t0a264c", - "xn--8ltr62k", - "xn--8pvr4u", - "xn--c3s14m", - "xn--d5qv7z876c", - "xn--djrs72d6uy", - "xn--djty4k", - "xn--efvn9s", - "xn--ehqz56n", - "xn--elqq16h", - "xn--f6qx53a", - "xn--k7yn95e", - "xn--kbrq7o", - "xn--klt787d", - "xn--kltp7d", - "xn--kltx9a", - "xn--klty5x", - "xn--mkru45i", - "xn--nit225k", - "xn--ntso0iqx3a", - "xn--ntsq17g", - "xn--pssu33l", - "xn--qqqt11m", - "xn--rht27z", - "xn--rht3d", - "xn--rht61e", - "xn--rny31h", - "xn--tor131o", - "xn--uist22h", - "xn--uisz3g", - "xn--uuwu58a", - "xn--vgu402c", - "xn--zbx025d", - "yamagata", - "yamaguchi", - "yamanashi", - "yokohama", - "aisai", - "ama", - "anjo", - "asuke", - "chiryu", - "chita", - "fuso", - "gamagori", - "handa", - "hazu", - "hekinan", - "higashiura", - "ichinomiya", - "inazawa", - "inuyama", - "isshiki", - "iwakura", - "kanie", - "kariya", - "kasugai", - "kira", - "kiyosu", - "komaki", - "konan", - "kota", - "mihama", - "miyoshi", - "nishio", - "nisshin", - "obu", - "oguchi", - "oharu", - "okazaki", - "owariasahi", - "seto", - "shikatsu", - "shinshiro", - "shitara", - "tahara", - "takahama", - "tobishima", - "toei", - "togo", - "tokai", - "tokoname", - "toyoake", - "toyohashi", - "toyokawa", - "toyone", - "toyota", - "tsushima", - "yatomi", - "akita", - "daisen", - "fujisato", - "gojome", - "hachirogata", - "happou", - "higashinaruse", - "honjo", - "honjyo", - "ikawa", - "kamikoani", - "kamioka", - "katagami", - "kazuno", - "kitaakita", - "kosaka", - "kyowa", - "misato", - "mitane", - "moriyoshi", - "nikaho", - "noshiro", - "odate", - "oga", - "ogata", - "semboku", - "yokote", - "yurihonjo", - "aomori", - "gonohe", - "hachinohe", - "hashikami", - "hiranai", - "hirosaki", - "itayanagi", - "kuroishi", - "misawa", - "mutsu", - "nakadomari", - "noheji", - "oirase", - "owani", - "rokunohe", - "sannohe", - "shichinohe", - "shingo", - "takko", - "towada", - "tsugaru", - "tsuruta", - "abiko", - "asahi", - "chonan", - "chosei", - "choshi", - "chuo", - "funabashi", - "futtsu", - "hanamigawa", - "ichihara", - "ichikawa", - "ichinomiya", - "inzai", - "isumi", - "kamagaya", - "kamogawa", - "kashiwa", - "katori", - "katsuura", - "kimitsu", - "kisarazu", - "kozaki", - "kujukuri", - "kyonan", - "matsudo", - "midori", - "mihama", - "minamiboso", - "mobara", - "mutsuzawa", - "nagara", - "nagareyama", - "narashino", - "narita", - "noda", - "oamishirasato", - "omigawa", - "onjuku", - "otaki", - "sakae", - "sakura", - "shimofusa", - "shirako", - "shiroi", - "shisui", - "sodegaura", - "sosa", - "tako", - "tateyama", - "togane", - "tohnosho", - "tomisato", - "urayasu", - "yachimata", - "yachiyo", - "yokaichiba", - "yokoshibahikari", - "yotsukaido", - "ainan", - "honai", - "ikata", - "imabari", - "iyo", - "kamijima", - "kihoku", - "kumakogen", - "masaki", - "matsuno", - "matsuyama", - "namikata", - "niihama", - "ozu", - "saijo", - "seiyo", - "shikokuchuo", - "tobe", - "toon", - "uchiko", - "uwajima", - "yawatahama", - "echizen", - "eiheiji", - "fukui", - "ikeda", - "katsuyama", - "mihama", - "minamiechizen", - "obama", - "ohi", - "ono", - "sabae", - "sakai", - "takahama", - "tsuruga", - "wakasa", - "ashiya", - "buzen", - "chikugo", - "chikuho", - "chikujo", - "chikushino", - "chikuzen", - "chuo", - "dazaifu", - "fukuchi", - "hakata", - "higashi", - "hirokawa", - "hisayama", - "iizuka", - "inatsuki", - "kaho", - "kasuga", - "kasuya", - "kawara", - "keisen", - "koga", - "kurate", - "kurogi", - "kurume", - "minami", - "miyako", - "miyama", - "miyawaka", - "mizumaki", - "munakata", - "nakagawa", - "nakama", - "nishi", - "nogata", - "ogori", - "okagaki", - "okawa", - "oki", - "omuta", - "onga", - "onojo", - "oto", - "saigawa", - "sasaguri", - "shingu", - "shinyoshitomi", - "shonai", - "soeda", - "sue", - "tachiarai", - "tagawa", - "takata", - "toho", - "toyotsu", - "tsuiki", - "ukiha", - "umi", - "usui", - "yamada", - "yame", - "yanagawa", - "yukuhashi", - "aizubange", - "aizumisato", - "aizuwakamatsu", - "asakawa", - "bandai", - "date", - "fukushima", - "furudono", - "futaba", - "hanawa", - "higashi", - "hirata", - "hirono", - "iitate", - "inawashiro", - "ishikawa", - "iwaki", - "izumizaki", - "kagamiishi", - "kaneyama", - "kawamata", - "kitakata", - "kitashiobara", - "koori", - "koriyama", - "kunimi", - "miharu", - "mishima", - "namie", - "nango", - "nishiaizu", - "nishigo", - "okuma", - "omotego", - "ono", - "otama", - "samegawa", - "shimogo", - "shirakawa", - "showa", - "soma", - "sukagawa", - "taishin", - "tamakawa", - "tanagura", - "tenei", - "yabuki", - "yamato", - "yamatsuri", - "yanaizu", - "yugawa", - "anpachi", - "ena", - "gifu", - "ginan", - "godo", - "gujo", - "hashima", - "hichiso", - "hida", - "higashishirakawa", - "ibigawa", - "ikeda", - "kakamigahara", - "kani", - "kasahara", - "kasamatsu", - "kawaue", - "kitagata", - "mino", - "minokamo", - "mitake", - "mizunami", - "motosu", - "nakatsugawa", - "ogaki", - "sakahogi", - "seki", - "sekigahara", - "shirakawa", - "tajimi", - "takayama", - "tarui", - "toki", - "tomika", - "wanouchi", - "yamagata", - "yaotsu", - "yoro", - "annaka", - "chiyoda", - "fujioka", - "higashiagatsuma", - "isesaki", - "itakura", - "kanna", - "kanra", - "katashina", - "kawaba", - "kiryu", - "kusatsu", - "maebashi", - "meiwa", - "midori", - "minakami", - "naganohara", - "nakanojo", - "nanmoku", - "numata", - "oizumi", - "ora", - "ota", - "shibukawa", - "shimonita", - "shinto", - "showa", - "takasaki", - "takayama", - "tamamura", - "tatebayashi", - "tomioka", - "tsukiyono", - "tsumagoi", - "ueno", - "yoshioka", - "asaminami", - "daiwa", - "etajima", - "fuchu", - "fukuyama", - "hatsukaichi", - "higashihiroshima", - "hongo", - "jinsekikogen", - "kaita", - "kui", - "kumano", - "kure", - "mihara", - "miyoshi", - "naka", - "onomichi", - "osakikamijima", - "otake", - "saka", - "sera", - "seranishi", - "shinichi", - "shobara", - "takehara", - "abashiri", - "abira", - "aibetsu", - "akabira", - "akkeshi", - "asahikawa", - "ashibetsu", - "ashoro", - "assabu", - "atsuma", - "bibai", - "biei", - "bifuka", - "bihoro", - "biratori", - "chippubetsu", - "chitose", - "date", - "ebetsu", - "embetsu", - "eniwa", - "erimo", - "esan", - "esashi", - "fukagawa", - "fukushima", - "furano", - "furubira", - "haboro", - "hakodate", - "hamatonbetsu", - "hidaka", - "higashikagura", - "higashikawa", - "hiroo", - "hokuryu", - "hokuto", - "honbetsu", - "horokanai", - "horonobe", - "ikeda", - "imakane", - "ishikari", - "iwamizawa", - "iwanai", - "kamifurano", - "kamikawa", - "kamishihoro", - "kamisunagawa", - "kamoenai", - "kayabe", - "kembuchi", - "kikonai", - "kimobetsu", - "kitahiroshima", - "kitami", - "kiyosato", - "koshimizu", - "kunneppu", - "kuriyama", - "kuromatsunai", - "kushiro", - "kutchan", - "kyowa", - "mashike", - "matsumae", - "mikasa", - "minamifurano", - "mombetsu", - "moseushi", - "mukawa", - "muroran", - "naie", - "nakagawa", - "nakasatsunai", - "nakatombetsu", - "nanae", - "nanporo", - "nayoro", - "nemuro", - "niikappu", - "niki", - "nishiokoppe", - "noboribetsu", - "numata", - "obihiro", - "obira", - "oketo", - "okoppe", - "otaru", - "otobe", - "otofuke", - "otoineppu", - "oumu", - "ozora", - "pippu", - "rankoshi", - "rebun", - "rikubetsu", - "rishiri", - "rishirifuji", - "saroma", - "sarufutsu", - "shakotan", - "shari", - "shibecha", - "shibetsu", - "shikabe", - "shikaoi", - "shimamaki", - "shimizu", - "shimokawa", - "shinshinotsu", - "shintoku", - "shiranuka", - "shiraoi", - "shiriuchi", - "sobetsu", - "sunagawa", - "taiki", - "takasu", - "takikawa", - "takinoue", - "teshikaga", - "tobetsu", - "tohma", - "tomakomai", - "tomari", - "toya", - "toyako", - "toyotomi", - "toyoura", - "tsubetsu", - "tsukigata", - "urakawa", - "urausu", - "uryu", - "utashinai", - "wakkanai", - "wassamu", - "yakumo", - "yoichi", - "aioi", - "akashi", - "ako", - "amagasaki", - "aogaki", - "asago", - "ashiya", - "awaji", - "fukusaki", - "goshiki", - "harima", - "himeji", - "ichikawa", - "inagawa", - "itami", - "kakogawa", - "kamigori", - "kamikawa", - "kasai", - "kasuga", - "kawanishi", - "miki", - "minamiawaji", - "nishinomiya", - "nishiwaki", - "ono", - "sanda", - "sannan", - "sasayama", - "sayo", - "shingu", - "shinonsen", - "shiso", - "sumoto", - "taishi", - "taka", - "takarazuka", - "takasago", - "takino", - "tamba", - "tatsuno", - "toyooka", - "yabu", - "yashiro", - "yoka", - "yokawa", - "ami", - "asahi", - "bando", - "chikusei", - "daigo", - "fujishiro", - "hitachi", - "hitachinaka", - "hitachiomiya", - "hitachiota", - "ibaraki", - "ina", - "inashiki", - "itako", - "iwama", - "joso", - "kamisu", - "kasama", - "kashima", - "kasumigaura", - "koga", - "miho", - "mito", - "moriya", - "naka", - "namegata", - "oarai", - "ogawa", - "omitama", - "ryugasaki", - "sakai", - "sakuragawa", - "shimodate", - "shimotsuma", - "shirosato", - "sowa", - "suifu", - "takahagi", - "tamatsukuri", - "tokai", - "tomobe", - "tone", - "toride", - "tsuchiura", - "tsukuba", - "uchihara", - "ushiku", - "yachiyo", - "yamagata", - "yawara", - "yuki", - "anamizu", - "hakui", - "hakusan", - "kaga", - "kahoku", - "kanazawa", - "kawakita", - "komatsu", - "nakanoto", - "nanao", - "nomi", - "nonoichi", - "noto", - "shika", - "suzu", - "tsubata", - "tsurugi", - "uchinada", - "wajima", - "fudai", - "fujisawa", - "hanamaki", - "hiraizumi", - "hirono", - "ichinohe", - "ichinoseki", - "iwaizumi", - "iwate", - "joboji", - "kamaishi", - "kanegasaki", - "karumai", - "kawai", - "kitakami", - "kuji", - "kunohe", - "kuzumaki", - "miyako", - "mizusawa", - "morioka", - "ninohe", - "noda", - "ofunato", - "oshu", - "otsuchi", - "rikuzentakata", - "shiwa", - "shizukuishi", - "sumita", - "tanohata", - "tono", - "yahaba", - "yamada", - "ayagawa", - "higashikagawa", - "kanonji", - "kotohira", - "manno", - "marugame", - "mitoyo", - "naoshima", - "sanuki", - "tadotsu", - "takamatsu", - "tonosho", - "uchinomi", - "utazu", - "zentsuji", - "akune", - "amami", - "hioki", - "isa", - "isen", - "izumi", - "kagoshima", - "kanoya", - "kawanabe", - "kinko", - "kouyama", - "makurazaki", - "matsumoto", - "minamitane", - "nakatane", - "nishinoomote", - "satsumasendai", - "soo", - "tarumizu", - "yusui", - "aikawa", - "atsugi", - "ayase", - "chigasaki", - "ebina", - "fujisawa", - "hadano", - "hakone", - "hiratsuka", - "isehara", - "kaisei", - "kamakura", - "kiyokawa", - "matsuda", - "minamiashigara", - "miura", - "nakai", - "ninomiya", - "odawara", - "oi", - "oiso", - "sagamihara", - "samukawa", - "tsukui", - "yamakita", - "yamato", - "yokosuka", - "yugawara", - "zama", - "zushi", - "city", - "city", - "city", - "aki", - "geisei", - "hidaka", - "higashitsuno", - "ino", - "kagami", - "kami", - "kitagawa", - "kochi", - "mihara", - "motoyama", - "muroto", - "nahari", - "nakamura", - "nankoku", - "nishitosa", - "niyodogawa", - "ochi", - "okawa", - "otoyo", - "otsuki", - "sakawa", - "sukumo", - "susaki", - "tosa", - "tosashimizu", - "toyo", - "tsuno", - "umaji", - "yasuda", - "yusuhara", - "amakusa", - "arao", - "aso", - "choyo", - "gyokuto", - "hitoyoshi", - "kamiamakusa", - "kashima", - "kikuchi", - "kosa", - "kumamoto", - "mashiki", - "mifune", - "minamata", - "minamioguni", - "nagasu", - "nishihara", - "oguni", - "ozu", - "sumoto", - "takamori", - "uki", - "uto", - "yamaga", - "yamato", - "yatsushiro", - "ayabe", - "fukuchiyama", - "higashiyama", - "ide", - "ine", - "joyo", - "kameoka", - "kamo", - "kita", - "kizu", - "kumiyama", - "kyotamba", - "kyotanabe", - "kyotango", - "maizuru", - "minami", - "minamiyamashiro", - "miyazu", - "muko", - "nagaokakyo", - "nakagyo", - "nantan", - "oyamazaki", - "sakyo", - "seika", - "tanabe", - "uji", - "ujitawara", - "wazuka", - "yamashina", - "yawata", - "asahi", - "inabe", - "ise", - "kameyama", - "kawagoe", - "kiho", - "kisosaki", - "kiwa", - "komono", - "kumano", - "kuwana", - "matsusaka", - "meiwa", - "mihama", - "minamiise", - "misugi", - "miyama", - "nabari", - "shima", - "suzuka", - "tado", - "taiki", - "taki", - "tamaki", - "toba", - "tsu", - "udono", - "ureshino", - "watarai", - "yokkaichi", - "furukawa", - "higashimatsushima", - "ishinomaki", - "iwanuma", - "kakuda", - "kami", - "kawasaki", - "kesennuma", - "marumori", - "matsushima", - "minamisanriku", - "misato", - "murata", - "natori", - "ogawara", - "ohira", - "onagawa", - "osaki", - "rifu", - "semine", - "shibata", - "shichikashuku", - "shikama", - "shiogama", - "shiroishi", - "tagajo", - "taiwa", - "tome", - "tomiya", - "wakuya", - "watari", - "yamamoto", - "zao", - "aya", - "ebino", - "gokase", - "hyuga", - "kadogawa", - "kawaminami", - "kijo", - "kitagawa", - "kitakata", - "kitaura", - "kobayashi", - "kunitomi", - "kushima", - "mimata", - "miyakonojo", - "miyazaki", - "morotsuka", - "nichinan", - "nishimera", - "nobeoka", - "saito", - "shiiba", - "shintomi", - "takaharu", - "takanabe", - "takazaki", - "tsuno", - "achi", - "agematsu", - "anan", - "aoki", - "asahi", - "azumino", - "chikuhoku", - "chikuma", - "chino", - "fujimi", - "hakuba", - "hara", - "hiraya", - "iida", - "iijima", - "iiyama", - "iizuna", - "ikeda", - "ikusaka", - "ina", - "karuizawa", - "kawakami", - "kiso", - "kisofukushima", - "kitaaiki", - "komagane", - "komoro", - "matsukawa", - "matsumoto", - "miasa", - "minamiaiki", - "minamimaki", - "minamiminowa", - "minowa", - "miyada", - "miyota", - "mochizuki", - "nagano", - "nagawa", - "nagiso", - "nakagawa", - "nakano", - "nozawaonsen", - "obuse", - "ogawa", - "okaya", - "omachi", - "omi", - "ookuwa", - "ooshika", - "otaki", - "otari", - "sakae", - "sakaki", - "saku", - "sakuho", - "shimosuwa", - "shinanomachi", - "shiojiri", - "suwa", - "suzaka", - "takagi", - "takamori", - "takayama", - "tateshina", - "tatsuno", - "togakushi", - "togura", - "tomi", - "ueda", - "wada", - "yamagata", - "yamanouchi", - "yasaka", - "yasuoka", - "chijiwa", - "futsu", - "goto", - "hasami", - "hirado", - "iki", - "isahaya", - "kawatana", - "kuchinotsu", - "matsuura", - "nagasaki", - "obama", - "omura", - "oseto", - "saikai", - "sasebo", - "seihi", - "shimabara", - "shinkamigoto", - "togitsu", - "tsushima", - "unzen", - "city", - "ando", - "gose", - "heguri", - "higashiyoshino", - "ikaruga", - "ikoma", - "kamikitayama", - "kanmaki", - "kashiba", - "kashihara", - "katsuragi", - "kawai", - "kawakami", - "kawanishi", - "koryo", - "kurotaki", - "mitsue", - "miyake", - "nara", - "nosegawa", - "oji", - "ouda", - "oyodo", - "sakurai", - "sango", - "shimoichi", - "shimokitayama", - "shinjo", - "soni", - "takatori", - "tawaramoto", - "tenkawa", - "tenri", - "uda", - "yamatokoriyama", - "yamatotakada", - "yamazoe", - "yoshino", - "aga", - "agano", - "gosen", - "itoigawa", - "izumozaki", - "joetsu", - "kamo", - "kariwa", - "kashiwazaki", - "minamiuonuma", - "mitsuke", - "muika", - "murakami", - "myoko", - "nagaoka", - "niigata", - "ojiya", - "omi", - "sado", - "sanjo", - "seiro", - "seirou", - "sekikawa", - "shibata", - "tagami", - "tainai", - "tochio", - "tokamachi", - "tsubame", - "tsunan", - "uonuma", - "yahiko", - "yoita", - "yuzawa", - "beppu", - "bungoono", - "bungotakada", - "hasama", - "hiji", - "himeshima", - "hita", - "kamitsue", - "kokonoe", - "kuju", - "kunisaki", - "kusu", - "oita", - "saiki", - "taketa", - "tsukumi", - "usa", - "usuki", - "yufu", - "akaiwa", - "asakuchi", - "bizen", - "hayashima", - "ibara", - "kagamino", - "kasaoka", - "kibichuo", - "kumenan", - "kurashiki", - "maniwa", - "misaki", - "nagi", - "niimi", - "nishiawakura", - "okayama", - "satosho", - "setouchi", - "shinjo", - "shoo", - "soja", - "takahashi", - "tamano", - "tsuyama", - "wake", - "yakage", - "aguni", - "ginowan", - "ginoza", - "gushikami", - "haebaru", - "higashi", - "hirara", - "iheya", - "ishigaki", - "ishikawa", - "itoman", - "izena", - "kadena", - "kin", - "kitadaito", - "kitanakagusuku", - "kumejima", - "kunigami", - "minamidaito", - "motobu", - "nago", - "naha", - "nakagusuku", - "nakijin", - "nanjo", - "nishihara", - "ogimi", - "okinawa", - "onna", - "shimoji", - "taketomi", - "tarama", - "tokashiki", - "tomigusuku", - "tonaki", - "urasoe", - "uruma", - "yaese", - "yomitan", - "yonabaru", - "yonaguni", - "zamami", - "abeno", - "chihayaakasaka", - "chuo", - "daito", - "fujiidera", - "habikino", - "hannan", - "higashiosaka", - "higashisumiyoshi", - "higashiyodogawa", - "hirakata", - "ibaraki", - "ikeda", - "izumi", - "izumiotsu", - "izumisano", - "kadoma", - "kaizuka", - "kanan", - "kashiwara", - "katano", - "kawachinagano", - "kishiwada", - "kita", - "kumatori", - "matsubara", - "minato", - "minoh", - "misaki", - "moriguchi", - "neyagawa", - "nishi", - "nose", - "osakasayama", - "sakai", - "sayama", - "sennan", - "settsu", - "shijonawate", - "shimamoto", - "suita", - "tadaoka", - "taishi", - "tajiri", - "takaishi", - "takatsuki", - "tondabayashi", - "toyonaka", - "toyono", - "yao", - "ariake", - "arita", - "fukudomi", - "genkai", - "hamatama", - "hizen", - "imari", - "kamimine", - "kanzaki", - "karatsu", - "kashima", - "kitagata", - "kitahata", - "kiyama", - "kouhoku", - "kyuragi", - "nishiarita", - "ogi", - "omachi", - "ouchi", - "saga", - "shiroishi", - "taku", - "tara", - "tosu", - "yoshinogari", - "arakawa", - "asaka", - "chichibu", - "fujimi", - "fujimino", - "fukaya", - "hanno", - "hanyu", - "hasuda", - "hatogaya", - "hatoyama", - "hidaka", - "higashichichibu", - "higashimatsuyama", - "honjo", - "ina", - "iruma", - "iwatsuki", - "kamiizumi", - "kamikawa", - "kamisato", - "kasukabe", - "kawagoe", - "kawaguchi", - "kawajima", - "kazo", - "kitamoto", - "koshigaya", - "kounosu", - "kuki", - "kumagaya", - "matsubushi", - "minano", - "misato", - "miyashiro", - "miyoshi", - "moroyama", - "nagatoro", - "namegawa", - "niiza", - "ogano", - "ogawa", - "ogose", - "okegawa", - "omiya", - "otaki", - "ranzan", - "ryokami", - "saitama", - "sakado", - "satte", - "sayama", - "shiki", - "shiraoka", - "soka", - "sugito", - "toda", - "tokigawa", - "tokorozawa", - "tsurugashima", - "urawa", - "warabi", - "yashio", - "yokoze", - "yono", - "yorii", - "yoshida", - "yoshikawa", - "yoshimi", - "city", - "city", - "aisho", - "gamo", - "higashiomi", - "hikone", - "koka", - "konan", - "kosei", - "koto", - "kusatsu", - "maibara", - "moriyama", - "nagahama", - "nishiazai", - "notogawa", - "omihachiman", - "otsu", - "ritto", - "ryuoh", - "takashima", - "takatsuki", - "torahime", - "toyosato", - "yasu", - "akagi", - "ama", - "gotsu", - "hamada", - "higashiizumo", - "hikawa", - "hikimi", - "izumo", - "kakinoki", - "masuda", - "matsue", - "misato", - "nishinoshima", - "ohda", - "okinoshima", - "okuizumo", - "shimane", - "tamayu", - "tsuwano", - "unnan", - "yakumo", - "yasugi", - "yatsuka", - "arai", - "atami", - "fuji", - "fujieda", - "fujikawa", - "fujinomiya", - "fukuroi", - "gotemba", - "haibara", - "hamamatsu", - "higashiizu", - "ito", - "iwata", - "izu", - "izunokuni", - "kakegawa", - "kannami", - "kawanehon", - "kawazu", - "kikugawa", - "kosai", - "makinohara", - "matsuzaki", - "minamiizu", - "mishima", - "morimachi", - "nishiizu", - "numazu", - "omaezaki", - "shimada", - "shimizu", - "shimoda", - "shizuoka", - "susono", - "yaizu", - "yoshida", - "ashikaga", - "bato", - "haga", - "ichikai", - "iwafune", - "kaminokawa", - "kanuma", - "karasuyama", - "kuroiso", - "mashiko", - "mibu", - "moka", - "motegi", - "nasu", - "nasushiobara", - "nikko", - "nishikata", - "nogi", - "ohira", - "ohtawara", - "oyama", - "sakura", - "sano", - "shimotsuke", - "shioya", - "takanezawa", - "tochigi", - "tsuga", - "ujiie", - "utsunomiya", - "yaita", - "aizumi", - "anan", - "ichiba", - "itano", - "kainan", - "komatsushima", - "matsushige", - "mima", - "minami", - "miyoshi", - "mugi", - "nakagawa", - "naruto", - "sanagochi", - "shishikui", - "tokushima", - "wajiki", - "adachi", - "akiruno", - "akishima", - "aogashima", - "arakawa", - "bunkyo", - "chiyoda", - "chofu", - "chuo", - "edogawa", - "fuchu", - "fussa", - "hachijo", - "hachioji", - "hamura", - "higashikurume", - "higashimurayama", - "higashiyamato", - "hino", - "hinode", - "hinohara", - "inagi", - "itabashi", - "katsushika", - "kita", - "kiyose", - "kodaira", - "koganei", - "kokubunji", - "komae", - "koto", - "kouzushima", - "kunitachi", - "machida", - "meguro", - "minato", - "mitaka", - "mizuho", - "musashimurayama", - "musashino", - "nakano", - "nerima", - "ogasawara", - "okutama", - "ome", - "oshima", - "ota", - "setagaya", - "shibuya", - "shinagawa", - "shinjuku", - "suginami", - "sumida", - "tachikawa", - "taito", - "tama", - "toshima", - "chizu", - "hino", - "kawahara", - "koge", - "kotoura", - "misasa", - "nanbu", - "nichinan", - "sakaiminato", - "tottori", - "wakasa", - "yazu", - "yonago", - "asahi", - "fuchu", - "fukumitsu", - "funahashi", - "himi", - "imizu", - "inami", - "johana", - "kamiichi", - "kurobe", - "nakaniikawa", - "namerikawa", - "nanto", - "nyuzen", - "oyabe", - "taira", - "takaoka", - "tateyama", - "toga", - "tonami", - "toyama", - "unazuki", - "uozu", - "yamada", - "arida", - "aridagawa", - "gobo", - "hashimoto", - "hidaka", - "hirogawa", - "inami", - "iwade", - "kainan", - "kamitonda", - "katsuragi", - "kimino", - "kinokawa", - "kitayama", - "koya", - "koza", - "kozagawa", - "kudoyama", - "kushimoto", - "mihama", - "misato", - "nachikatsuura", - "shingu", - "shirahama", - "taiji", - "tanabe", - "wakayama", - "yuasa", - "yura", - "asahi", - "funagata", - "higashine", - "iide", - "kahoku", - "kaminoyama", - "kaneyama", - "kawanishi", - "mamurogawa", - "mikawa", - "murayama", - "nagai", - "nakayama", - "nanyo", - "nishikawa", - "obanazawa", - "oe", - "oguni", - "ohkura", - "oishida", - "sagae", - "sakata", - "sakegawa", - "shinjo", - "shirataka", - "shonai", - "takahata", - "tendo", - "tozawa", - "tsuruoka", - "yamagata", - "yamanobe", - "yonezawa", - "yuza", - "abu", - "hagi", - "hikari", - "hofu", - "iwakuni", - "kudamatsu", - "mitou", - "nagato", - "oshima", - "shimonoseki", - "shunan", - "tabuse", - "tokuyama", - "toyota", - "ube", - "yuu", - "chuo", - "doshi", - "fuefuki", - "fujikawa", - "fujikawaguchiko", - "fujiyoshida", - "hayakawa", - "hokuto", - "ichikawamisato", - "kai", - "kofu", - "koshu", - "kosuge", - "minami-alps", - "minobu", - "nakamichi", - "nanbu", - "narusawa", - "nirasaki", - "nishikatsura", - "oshino", - "otsuki", - "showa", - "tabayama", - "tsuru", - "uenohara", - "yamanakako", - "yamanashi", - "city", - "co", - "blogspot", - "com", - "edu", - "gov", - "mil", - "net", - "org", - "biz", - "com", - "edu", - "gov", - "info", - "net", - "org", - "ass", - "asso", - "com", - "coop", - "edu", - "gouv", - "gov", - "medecin", - "mil", - "nom", - "notaires", - "org", - "pharmaciens", - "prd", - "presse", - "tm", - "veterinaire", - "edu", - "gov", - "net", - "org", - "com", - "edu", - "gov", - "org", - "rep", - "tra", - "ac", - "blogspot", - "busan", - "chungbuk", - "chungnam", - "co", - "daegu", - "daejeon", - "es", - "gangwon", - "go", - "gwangju", - "gyeongbuk", - "gyeonggi", - "gyeongnam", - "hs", - "incheon", - "jeju", - "jeonbuk", - "jeonnam", - "kg", - "mil", - "ms", - "ne", - "or", - "pe", - "re", - "sc", - "seoul", - "ulsan", - "com", - "edu", - "gov", - "net", - "org", - "com", - "edu", - "gov", - "mil", - "net", - "org", - "c", - "com", - "edu", - "gov", - "info", - "int", - "net", - "org", - "per", - "com", - "edu", - "gov", - "net", - "org", - "co", - "com", - "edu", - "gov", - "net", - "org", - "blogspot", - "ac", - "assn", - "com", - "edu", - "gov", - "grp", - "hotel", - "int", - "ltd", - "net", - "ngo", - "org", - "sch", - "soc", - "web", - "com", - "edu", - "gov", - "net", - "org", - "co", - "org", - "blogspot", - "gov", - "blogspot", - "asn", - "com", - "conf", - "edu", - "gov", - "id", - "mil", - "net", - "org", - "com", - "edu", - "gov", - "id", - "med", - "net", - "org", - "plc", - "sch", - "ac", - "co", - "gov", - "net", - "org", - "press", - "asso", - "tm", - "blogspot", - "ac", - "co", - "edu", - "gov", - "its", - "net", - "org", - "priv", - "co", - "com", - "edu", - "gov", - "mil", - "nom", - "org", - "prd", - "tm", - "blogspot", - "com", - "edu", - "gov", - "inf", - "name", - "net", - "org", - "com", - "edu", - "gouv", - "gov", - "net", - "org", - "presse", - "edu", - "gov", - "nyc", - "org", - "com", - "edu", - "gov", - "net", - "org", - "blogspot", - "gov", - "com", - "edu", - "gov", - "net", - "org", - "com", - "edu", - "net", - "org", - "blogspot", - "ac", - "co", - "com", - "gov", - "net", - "or", - "org", - "academy", - "agriculture", - "air", - "airguard", - "alabama", - "alaska", - "amber", - "ambulance", - "american", - "americana", - "americanantiques", - "americanart", - "amsterdam", - "and", - "annefrank", - "anthro", - "anthropology", - "antiques", - "aquarium", - "arboretum", - "archaeological", - "archaeology", - "architecture", - "art", - "artanddesign", - "artcenter", - "artdeco", - "arteducation", - "artgallery", - "arts", - "artsandcrafts", - "asmatart", - "assassination", - "assisi", - "association", - "astronomy", - "atlanta", - "austin", - "australia", - "automotive", - "aviation", - "axis", - "badajoz", - "baghdad", - "bahn", - "bale", - "baltimore", - "barcelona", - "baseball", - "basel", - "baths", - "bauern", - "beauxarts", - "beeldengeluid", - "bellevue", - "bergbau", - "berkeley", - "berlin", - "bern", - "bible", - "bilbao", - "bill", - "birdart", - "birthplace", - "bonn", - "boston", - "botanical", - "botanicalgarden", - "botanicgarden", - "botany", - "brandywinevalley", - "brasil", - "bristol", - "british", - "britishcolumbia", - "broadcast", - "brunel", - "brussel", - "brussels", - "bruxelles", - "building", - "burghof", - "bus", - "bushey", - "cadaques", - "california", - "cambridge", - "can", - "canada", - "capebreton", - "carrier", - "cartoonart", - "casadelamoneda", - "castle", - "castres", - "celtic", - "center", - "chattanooga", - "cheltenham", - "chesapeakebay", - "chicago", - "children", - "childrens", - "childrensgarden", - "chiropractic", - "chocolate", - "christiansburg", - "cincinnati", - "cinema", - "circus", - "civilisation", - "civilization", - "civilwar", - "clinton", - "clock", - "coal", - "coastaldefence", - "cody", - "coldwar", - "collection", - "colonialwilliamsburg", - "coloradoplateau", - "columbia", - "columbus", - "communication", - "communications", - "community", - "computer", - "computerhistory", - "contemporary", - "contemporaryart", - "convent", - "copenhagen", - "corporation", - "corvette", - "costume", - "countryestate", - "county", - "crafts", - "cranbrook", - "creation", - "cultural", - "culturalcenter", - "culture", - "cyber", - "cymru", - "dali", - "dallas", - "database", - "ddr", - "decorativearts", - "delaware", - "delmenhorst", - "denmark", - "depot", - "design", - "detroit", - "dinosaur", - "discovery", - "dolls", - "donostia", - "durham", - "eastafrica", - "eastcoast", - "education", - "educational", - "egyptian", - "eisenbahn", - "elburg", - "elvendrell", - "embroidery", - "encyclopedic", - "england", - "entomology", - "environment", - "environmentalconservation", - "epilepsy", - "essex", - "estate", - "ethnology", - "exeter", - "exhibition", - "family", - "farm", - "farmequipment", - "farmers", - "farmstead", - "field", - "figueres", - "filatelia", - "film", - "fineart", - "finearts", - "finland", - "flanders", - "florida", - "force", - "fortmissoula", - "fortworth", - "foundation", - "francaise", - "frankfurt", - "franziskaner", - "freemasonry", - "freiburg", - "fribourg", - "frog", - "fundacio", - "furniture", - "gallery", - "garden", - "gateway", - "geelvinck", - "gemological", - "geology", - "georgia", - "giessen", - "glas", - "glass", - "gorge", - "grandrapids", - "graz", - "guernsey", - "halloffame", - "hamburg", - "handson", - "harvestcelebration", - "hawaii", - "health", - "heimatunduhren", - "hellas", - "helsinki", - "hembygdsforbund", - "heritage", - "histoire", - "historical", - "historicalsociety", - "historichouses", - "historisch", - "historisches", - "history", - "historyofscience", - "horology", - "house", - "humanities", - "illustration", - "imageandsound", - "indian", - "indiana", - "indianapolis", - "indianmarket", - "intelligence", - "interactive", - "iraq", - "iron", - "isleofman", - "jamison", - "jefferson", - "jerusalem", - "jewelry", - "jewish", - "jewishart", - "jfk", - "journalism", - "judaica", - "judygarland", - "juedisches", - "juif", - "karate", - "karikatur", - "kids", - "koebenhavn", - "koeln", - "kunst", - "kunstsammlung", - "kunstunddesign", - "labor", - "labour", - "lajolla", - "lancashire", - "landes", - "lans", - "larsson", - "lewismiller", - "lincoln", - "linz", - "living", - "livinghistory", - "localhistory", - "london", - "losangeles", - "louvre", - "loyalist", - "lucerne", - "luxembourg", - "luzern", - "mad", - "madrid", - "mallorca", - "manchester", - "mansion", - "mansions", - "manx", - "marburg", - "maritime", - "maritimo", - "maryland", - "marylhurst", - "media", - "medical", - "medizinhistorisches", - "meeres", - "memorial", - "mesaverde", - "michigan", - "midatlantic", - "military", - "mill", - "miners", - "mining", - "minnesota", - "missile", - "missoula", - "modern", - "moma", - "money", - "monmouth", - "monticello", - "montreal", - "moscow", - "motorcycle", - "muenchen", - "muenster", - "mulhouse", - "muncie", - "museet", - "museumcenter", - "museumvereniging", - "music", - "national", - "nationalfirearms", - "nationalheritage", - "nativeamerican", - "naturalhistory", - "naturalhistorymuseum", - "naturalsciences", - "nature", - "naturhistorisches", - "natuurwetenschappen", - "naumburg", - "naval", - "nebraska", - "neues", - "newhampshire", - "newjersey", - "newmexico", - "newport", - "newspaper", - "newyork", - "niepce", - "norfolk", - "north", - "nrw", - "nuernberg", - "nuremberg", - "nyc", - "nyny", - "oceanographic", - "oceanographique", - "omaha", - "online", - "ontario", - "openair", - "oregon", - "oregontrail", - "otago", - "oxford", - "pacific", - "paderborn", - "palace", - "paleo", - "palmsprings", - "panama", - "paris", - "pasadena", - "pharmacy", - "philadelphia", - "philadelphiaarea", - "philately", - "phoenix", - "photography", - "pilots", - "pittsburgh", - "planetarium", - "plantation", - "plants", - "plaza", - "portal", - "portland", - "portlligat", - "posts-and-telecommunications", - "preservation", - "presidio", - "press", - "project", - "public", - "pubol", - "quebec", - "railroad", - "railway", - "research", - "resistance", - "riodejaneiro", - "rochester", - "rockart", - "roma", - "russia", - "saintlouis", - "salem", - "salvadordali", - "salzburg", - "sandiego", - "sanfrancisco", - "santabarbara", - "santacruz", - "santafe", - "saskatchewan", - "satx", - "savannahga", - "schlesisches", - "schoenbrunn", - "schokoladen", - "school", - "schweiz", - "science", - "science-fiction", - "scienceandhistory", - "scienceandindustry", - "sciencecenter", - "sciencecenters", - "sciencehistory", - "sciences", - "sciencesnaturelles", - "scotland", - "seaport", - "settlement", - "settlers", - "shell", - "sherbrooke", - "sibenik", - "silk", - "ski", - "skole", - "society", - "sologne", - "soundandvision", - "southcarolina", - "southwest", - "space", - "spy", - "square", - "stadt", - "stalbans", - "starnberg", - "state", - "stateofdelaware", - "station", - "steam", - "steiermark", - "stjohn", - "stockholm", - "stpetersburg", - "stuttgart", - "suisse", - "surgeonshall", - "surrey", - "svizzera", - "sweden", - "sydney", - "tank", - "tcm", - "technology", - "telekommunikation", - "television", - "texas", - "textile", - "theater", - "time", - "timekeeping", - "topology", - "torino", - "touch", - "town", - "transport", - "tree", - "trolley", - "trust", - "trustee", - "uhren", - "ulm", - "undersea", - "university", - "usa", - "usantiques", - "usarts", - "uscountryestate", - "usculture", - "usdecorativearts", - "usgarden", - "ushistory", - "ushuaia", - "uslivinghistory", - "utah", - "uvic", - "valley", - "vantaa", - "versailles", - "viking", - "village", - "virginia", - "virtual", - "virtuel", - "vlaanderen", - "volkenkunde", - "wales", - "wallonie", - "war", - "washingtondc", - "watch-and-clock", - "watchandclock", - "western", - "westfalen", - "whaling", - "wildlife", - "williamsburg", - "windmill", - "workshop", - "xn--9dbhblg6di", - "xn--comunicaes-v6a2o", - "xn--correios-e-telecomunicaes-ghc29a", - "xn--h1aegh", - "xn--lns-qla", - "york", - "yorkshire", - "yosemite", - "youth", - "zoological", - "zoology", - "aero", - "biz", - "com", - "coop", - "edu", - "gov", - "info", - "int", - "mil", - "museum", - "name", - "net", - "org", - "pro", - "ac", - "biz", - "co", - "com", - "coop", - "edu", - "gov", - "int", - "museum", - "net", - "org", - "blogspot", - "com", - "edu", - "gob", - "net", - "org", - "blogspot", - "com", - "edu", - "gov", - "mil", - "name", - "net", - "org", - "teledata", - "ca", - "cc", - "co", - "com", - "dr", - "in", - "info", - "mobi", - "mx", - "name", - "or", - "org", - "pro", - "school", - "tv", - "us", - "ws", - "her", - "his", - "forgot", - "forgot", - "asso", - "at-band-camp", - "azure-mobile", - "azurewebsites", - "blogdns", - "broke-it", - "buyshouses", - "cdn77", - "cdn77-ssl", - "cloudapp", - "cloudfront", - "dnsalias", - "dnsdojo", - "does-it", - "dontexist", - "dynalias", - "dynathome", - "endofinternet", - "fastly", - "from-az", - "from-co", - "from-la", - "from-ny", - "gb", - "gets-it", - "ham-radio-op", - "homeftp", - "homeip", - "homelinux", - "homeunix", - "hu", - "in", - "in-the-band", - "is-a-chef", - "is-a-geek", - "isa-geek", - "jp", - "kicks-ass", - "office-on-the", - "podzone", - "scrapper-site", - "se", - "selfip", - "sells-it", - "servebbs", - "serveftp", - "thruhere", - "uk", - "webhop", - "za", - "r", - "prod", - "ssl", - "a", - "global", - "a", - "b", - "global", - "arts", - "com", - "firm", - "info", - "net", - "other", - "per", - "rec", - "store", - "web", - "com", - "edu", - "gov", - "mil", - "mobi", - "name", - "net", - "org", - "sch", - "blogspot", - "blogspot", - "bv", - "co", - "aa", - "aarborte", - "aejrie", - "afjord", - "agdenes", - "ah", - "akershus", - "aknoluokta", - "akrehamn", - "al", - "alaheadju", - "alesund", - "algard", - "alstahaug", - "alta", - "alvdal", - "amli", - "amot", - "andasuolo", - "andebu", - "andoy", - "ardal", - "aremark", - "arendal", - "arna", - "aseral", - "asker", - "askim", - "askoy", - "askvoll", - "asnes", - "audnedaln", - "aukra", - "aure", - "aurland", - "aurskog-holand", - "austevoll", - "austrheim", - "averoy", - "badaddja", - "bahcavuotna", - "bahccavuotna", - "baidar", - "bajddar", - "balat", - "balestrand", - "ballangen", - "balsfjord", - "bamble", - "bardu", - "barum", - "batsfjord", - "bearalvahki", - "beardu", - "beiarn", - "berg", - "bergen", - "berlevag", - "bievat", - "bindal", - "birkenes", - "bjarkoy", - "bjerkreim", - "bjugn", - "blogspot", - "bodo", - "bokn", - "bomlo", - "bremanger", - "bronnoy", - "bronnoysund", - "brumunddal", - "bryne", - "bu", - "budejju", - "buskerud", - "bygland", - "bykle", - "cahcesuolo", - "co", - "davvenjarga", - "davvesiida", - "deatnu", - "dep", - "dielddanuorri", - "divtasvuodna", - "divttasvuotna", - "donna", - "dovre", - "drammen", - "drangedal", - "drobak", - "dyroy", - "egersund", - "eid", - "eidfjord", - "eidsberg", - "eidskog", - "eidsvoll", - "eigersund", - "elverum", - "enebakk", - "engerdal", - "etne", - "etnedal", - "evenassi", - "evenes", - "evje-og-hornnes", - "farsund", - "fauske", - "fedje", - "fet", - "fetsund", - "fhs", - "finnoy", - "fitjar", - "fjaler", - "fjell", - "fla", - "flakstad", - "flatanger", - "flekkefjord", - "flesberg", - "flora", - "floro", - "fm", - "folkebibl", - "folldal", - "forde", - "forsand", - "fosnes", - "frana", - "fredrikstad", - "frei", - "frogn", - "froland", - "frosta", - "froya", - "fuoisku", - "fuossko", - "fusa", - "fylkesbibl", - "fyresdal", - "gaivuotna", - "galsa", - "gamvik", - "gangaviika", - "gaular", - "gausdal", - "giehtavuoatna", - "gildeskal", - "giske", - "gjemnes", - "gjerdrum", - "gjerstad", - "gjesdal", - "gjovik", - "gloppen", - "gol", - "gran", - "grane", - "granvin", - "gratangen", - "grimstad", - "grong", - "grue", - "gulen", - "guovdageaidnu", - "ha", - "habmer", - "hadsel", - "hagebostad", - "halden", - "halsa", - "hamar", - "hamaroy", - "hammarfeasta", - "hammerfest", - "hapmir", - "haram", - "hareid", - "harstad", - "hasvik", - "hattfjelldal", - "haugesund", - "hedmark", - "hemne", - "hemnes", - "hemsedal", - "herad", - "hitra", - "hjartdal", - "hjelmeland", - "hl", - "hm", - "hobol", - "hof", - "hokksund", - "hol", - "hole", - "holmestrand", - "holtalen", - "honefoss", - "hordaland", - "hornindal", - "horten", - "hoyanger", - "hoylandet", - "hurdal", - "hurum", - "hvaler", - "hyllestad", - "ibestad", - "idrett", - "inderoy", - "iveland", - "ivgu", - "jan-mayen", - "jessheim", - "jevnaker", - "jolster", - "jondal", - "jorpeland", - "kafjord", - "karasjohka", - "karasjok", - "karlsoy", - "karmoy", - "kautokeino", - "kirkenes", - "klabu", - "klepp", - "kommune", - "kongsberg", - "kongsvinger", - "kopervik", - "kraanghke", - "kragero", - "kristiansand", - "kristiansund", - "krodsherad", - "krokstadelva", - "kvafjord", - "kvalsund", - "kvam", - "kvanangen", - "kvinesdal", - "kvinnherad", - "kviteseid", - "kvitsoy", - "laakesvuemie", - "lahppi", - "langevag", - "lardal", - "larvik", - "lavagis", - "lavangen", - "leangaviika", - "lebesby", - "leikanger", - "leirfjord", - "leirvik", - "leka", - "leksvik", - "lenvik", - "lerdal", - "lesja", - "levanger", - "lier", - "lierne", - "lillehammer", - "lillesand", - "lindas", - "lindesnes", - "loabat", - "lodingen", - "lom", - "loppa", - "lorenskog", - "loten", - "lund", - "lunner", - "luroy", - "luster", - "lyngdal", - "lyngen", - "malatvuopmi", - "malselv", - "malvik", - "mandal", - "marker", - "marnardal", - "masfjorden", - "masoy", - "matta-varjjat", - "meland", - "meldal", - "melhus", - "meloy", - "meraker", - "midsund", - "midtre-gauldal", - "mil", - "mjondalen", - "mo-i-rana", - "moareke", - "modalen", - "modum", - "molde", - "more-og-romsdal", - "mosjoen", - "moskenes", - "moss", - "mosvik", - "mr", - "muosat", - "museum", - "naamesjevuemie", - "namdalseid", - "namsos", - "namsskogan", - "nannestad", - "naroy", - "narviika", - "narvik", - "naustdal", - "navuotna", - "nedre-eiker", - "nesna", - "nesodden", - "nesoddtangen", - "nesseby", - "nesset", - "nissedal", - "nittedal", - "nl", - "nord-aurdal", - "nord-fron", - "nord-odal", - "norddal", - "nordkapp", - "nordland", - "nordre-land", - "nordreisa", - "nore-og-uvdal", - "notodden", - "notteroy", - "nt", - "odda", - "of", - "oksnes", - "ol", - "omasvuotna", - "oppdal", - "oppegard", - "orkanger", - "orkdal", - "orland", - "orskog", - "orsta", - "osen", - "oslo", - "osoyro", - "osteroy", - "ostfold", - "ostre-toten", - "overhalla", - "ovre-eiker", - "oyer", - "oygarden", - "oystre-slidre", - "porsanger", - "porsangu", - "porsgrunn", - "priv", - "rade", - "radoy", - "rahkkeravju", - "raholt", - "raisa", - "rakkestad", - "ralingen", - "rana", - "randaberg", - "rauma", - "rendalen", - "rennebu", - "rennesoy", - "rindal", - "ringebu", - "ringerike", - "ringsaker", - "risor", - "rissa", - "rl", - "roan", - "rodoy", - "rollag", - "romsa", - "romskog", - "roros", - "rost", - "royken", - "royrvik", - "ruovat", - "rygge", - "salangen", - "salat", - "saltdal", - "samnanger", - "sandefjord", - "sandnes", - "sandnessjoen", - "sandoy", - "sarpsborg", - "sauda", - "sauherad", - "sel", - "selbu", - "selje", - "seljord", - "sf", - "siellak", - "sigdal", - "siljan", - "sirdal", - "skanit", - "skanland", - "skaun", - "skedsmo", - "skedsmokorset", - "ski", - "skien", - "skierva", - "skiptvet", - "skjak", - "skjervoy", - "skodje", - "slattum", - "smola", - "snaase", - "snasa", - "snillfjord", - "snoasa", - "sogndal", - "sogne", - "sokndal", - "sola", - "solund", - "somna", - "sondre-land", - "songdalen", - "sor-aurdal", - "sor-fron", - "sor-odal", - "sor-varanger", - "sorfold", - "sorreisa", - "sortland", - "sorum", - "spjelkavik", - "spydeberg", - "st", - "stange", - "stat", - "stathelle", - "stavanger", - "stavern", - "steigen", - "steinkjer", - "stjordal", - "stjordalshalsen", - "stokke", - "stor-elvdal", - "stord", - "stordal", - "storfjord", - "strand", - "stranda", - "stryn", - "sula", - "suldal", - "sund", - "sunndal", - "surnadal", - "svalbard", - "sveio", - "svelvik", - "sykkylven", - "tana", - "tananger", - "telemark", - "time", - "tingvoll", - "tinn", - "tjeldsund", - "tjome", - "tm", - "tokke", - "tolga", - "tonsberg", - "torsken", - "tr", - "trana", - "tranby", - "tranoy", - "troandin", - "trogstad", - "tromsa", - "tromso", - "trondheim", - "trysil", - "tvedestrand", - "tydal", - "tynset", - "tysfjord", - "tysnes", - "tysvar", - "ullensaker", - "ullensvang", - "ulvik", - "unjarga", - "utsira", - "va", - "vaapste", - "vadso", - "vaga", - "vagan", - "vagsoy", - "vaksdal", - "valle", - "vang", - "vanylven", - "vardo", - "varggat", - "varoy", - "vefsn", - "vega", - "vegarshei", - "vennesla", - "verdal", - "verran", - "vestby", - "vestfold", - "vestnes", - "vestre-slidre", - "vestre-toten", - "vestvagoy", - "vevelstad", - "vf", - "vgs", - "vik", - "vikna", - "vindafjord", - "voagat", - "volda", - "voss", - "vossevangen", - "xn--andy-ira", - "xn--asky-ira", - "xn--aurskog-hland-jnb", - "xn--avery-yua", - "xn--bdddj-mrabd", - "xn--bearalvhki-y4a", - "xn--berlevg-jxa", - "xn--bhcavuotna-s4a", - "xn--bhccavuotna-k7a", - "xn--bidr-5nac", - "xn--bievt-0qa", - "xn--bjarky-fya", - "xn--bjddar-pta", - "xn--blt-elab", - "xn--bmlo-gra", - "xn--bod-2na", - "xn--brnny-wuac", - "xn--brnnysund-m8ac", - "xn--brum-voa", - "xn--btsfjord-9za", - "xn--davvenjrga-y4a", - "xn--dnna-gra", - "xn--drbak-wua", - "xn--dyry-ira", - "xn--eveni-0qa01ga", - "xn--finny-yua", - "xn--fjord-lra", - "xn--fl-zia", - "xn--flor-jra", - "xn--frde-gra", - "xn--frna-woa", - "xn--frya-hra", - "xn--ggaviika-8ya47h", - "xn--gildeskl-g0a", - "xn--givuotna-8ya", - "xn--gjvik-wua", - "xn--gls-elac", - "xn--h-2fa", - "xn--hbmer-xqa", - "xn--hcesuolo-7ya35b", - "xn--hgebostad-g3a", - "xn--hmmrfeasta-s4ac", - "xn--hnefoss-q1a", - "xn--hobl-ira", - "xn--holtlen-hxa", - "xn--hpmir-xqa", - "xn--hyanger-q1a", - "xn--hylandet-54a", - "xn--indery-fya", - "xn--jlster-bya", - "xn--jrpeland-54a", - "xn--karmy-yua", - "xn--kfjord-iua", - "xn--klbu-woa", - "xn--koluokta-7ya57h", - "xn--krager-gya", - "xn--kranghke-b0a", - "xn--krdsherad-m8a", - "xn--krehamn-dxa", - "xn--krjohka-hwab49j", - "xn--ksnes-uua", - "xn--kvfjord-nxa", - "xn--kvitsy-fya", - "xn--kvnangen-k0a", - "xn--l-1fa", - "xn--laheadju-7ya", - "xn--langevg-jxa", - "xn--ldingen-q1a", - "xn--leagaviika-52b", - "xn--lesund-hua", - "xn--lgrd-poac", - "xn--lhppi-xqa", - "xn--linds-pra", - "xn--loabt-0qa", - "xn--lrdal-sra", - "xn--lrenskog-54a", - "xn--lt-liac", - "xn--lten-gra", - "xn--lury-ira", - "xn--mely-ira", - "xn--merker-kua", - "xn--mjndalen-64a", - "xn--mlatvuopmi-s4a", - "xn--mli-tla", - "xn--mlselv-iua", - "xn--moreke-jua", - "xn--mosjen-eya", - "xn--mot-tla", - "xn--mre-og-romsdal-qqb", - "xn--msy-ula0h", - "xn--mtta-vrjjat-k7af", - "xn--muost-0qa", - "xn--nmesjevuemie-tcba", - "xn--nry-yla5g", - "xn--nttery-byae", - "xn--nvuotna-hwa", - "xn--oppegrd-ixa", - "xn--ostery-fya", - "xn--osyro-wua", - "xn--porsgu-sta26f", - "xn--rady-ira", - "xn--rdal-poa", - "xn--rde-ula", - "xn--rdy-0nab", - "xn--rennesy-v1a", - "xn--rhkkervju-01af", - "xn--rholt-mra", - "xn--risa-5na", - "xn--risr-ira", - "xn--rland-uua", - "xn--rlingen-mxa", - "xn--rmskog-bya", - "xn--rros-gra", - "xn--rskog-uua", - "xn--rst-0na", - "xn--rsta-fra", - "xn--ryken-vua", - "xn--ryrvik-bya", - "xn--s-1fa", - "xn--sandnessjen-ogb", - "xn--sandy-yua", - "xn--seral-lra", - "xn--sgne-gra", - "xn--skierv-uta", - "xn--skjervy-v1a", - "xn--skjk-soa", - "xn--sknit-yqa", - "xn--sknland-fxa", - "xn--slat-5na", - "xn--slt-elab", - "xn--smla-hra", - "xn--smna-gra", - "xn--snase-nra", - "xn--sndre-land-0cb", - "xn--snes-poa", - "xn--snsa-roa", - "xn--sr-aurdal-l8a", - "xn--sr-fron-q1a", - "xn--sr-odal-q1a", - "xn--sr-varanger-ggb", - "xn--srfold-bya", - "xn--srreisa-q1a", - "xn--srum-gra", - "xn--stfold-9xa", - "xn--stjrdal-s1a", - "xn--stjrdalshalsen-sqb", - "xn--stre-toten-zcb", - "xn--tjme-hra", - "xn--tnsberg-q1a", - "xn--trany-yua", - "xn--trgstad-r1a", - "xn--trna-woa", - "xn--troms-zua", - "xn--tysvr-vra", - "xn--unjrga-rta", - "xn--vads-jra", - "xn--vard-jra", - "xn--vegrshei-c0a", - "xn--vestvgy-ixa6o", - "xn--vg-yiab", - "xn--vgan-qoa", - "xn--vgsy-qoa0j", - "xn--vre-eiker-k8a", - "xn--vrggt-xqad", - "xn--vry-yla5g", - "xn--yer-zna", - "xn--ygarden-p1a", - "xn--ystre-slidre-ujb", - "gs", - "gs", - "nes", - "gs", - "nes", - "gs", - "os", - "valer", - "xn--vler-qoa", - "gs", - "gs", - "os", - "gs", - "heroy", - "sande", - "gs", - "gs", - "bo", - "heroy", - "xn--b-5ga", - "xn--hery-ira", - "gs", - "gs", - "gs", - "gs", - "valer", - "gs", - "gs", - "gs", - "gs", - "bo", - "xn--b-5ga", - "gs", - "gs", - "gs", - "sande", - "gs", - "sande", - "xn--hery-ira", - "xn--vler-qoa", - "biz", - "com", - "edu", - "gov", - "info", - "net", - "org", - "merseine", - "mine", - "shacknet", - "ac", - "co", - "cri", - "geek", - "gen", - "govt", - "health", - "iwi", - "kiwi", - "maori", - "mil", - "net", - "org", - "parliament", - "school", - "xn--mori-qsa", - "blogspot", - "co", - "com", - "edu", - "gov", - "med", - "museum", - "net", - "org", - "pro", - "ae", - "blogdns", - "blogsite", - "bmoattachments", - "boldlygoingnowhere", - "cdn77", - "cdn77-secure", - "dnsalias", - "dnsdojo", - "doesntexist", - "dontexist", - "doomdns", - "duckdns", - "dvrdns", - "dynalias", - "dyndns", - "endofinternet", - "endoftheinternet", - "eu", - "from-me", - "game-host", - "gotdns", - "hk", - "hobby-site", - "homedns", - "homeftp", - "homelinux", - "homeunix", - "is-a-bruinsfan", - "is-a-candidate", - "is-a-celticsfan", - "is-a-chef", - "is-a-geek", - "is-a-knight", - "is-a-linux-user", - "is-a-patsfan", - "is-a-soxfan", - "is-found", - "is-lost", - "is-saved", - "is-very-bad", - "is-very-evil", - "is-very-good", - "is-very-nice", - "is-very-sweet", - "isa-geek", - "kicks-ass", - "misconfused", - "podzone", - "readmyblog", - "selfip", - "sellsyourhome", - "servebbs", - "serveftp", - "servegame", - "stuff-4-sale", - "us", - "webhop", - "za", - "c", - "rsc", - "origin", - "ssl", - "go", - "home", - "al", - "asso", - "at", - "au", - "be", - "bg", - "ca", - "cd", - "ch", - "cn", - "cy", - "cz", - "de", - "dk", - "edu", - "ee", - "es", - "fi", - "fr", - "gr", - "hr", - "hu", - "ie", - "il", - "in", - "int", - "is", - "it", - "jp", - "kr", - "lt", - "lu", - "lv", - "mc", - "me", - "mk", - "mt", - "my", - "net", - "ng", - "nl", - "no", - "nz", - "paris", - "pl", - "pt", - "q-a", - "ro", - "ru", - "se", - "si", - "sk", - "tr", - "uk", - "us", - "abo", - "ac", - "com", - "edu", - "gob", - "ing", - "med", - "net", - "nom", - "org", - "sld", - "blogspot", - "com", - "edu", - "gob", - "mil", - "net", - "nom", - "org", - "com", - "edu", - "org", - "com", - "edu", - "gov", - "i", - "mil", - "net", - "ngo", - "org", - "biz", - "com", - "edu", - "fam", - "gob", - "gok", - "gon", - "gop", - "gos", - "gov", - "info", - "net", - "org", - "web", - "agro", - "aid", - "art", - "atm", - "augustow", - "auto", - "babia-gora", - "bedzin", - "beskidy", - "bialowieza", - "bialystok", - "bielawa", - "bieszczady", - "biz", - "boleslawiec", - "bydgoszcz", - "bytom", - "cieszyn", - "co", - "com", - "czeladz", - "czest", - "dlugoleka", - "edu", - "elblag", - "elk", - "gda", - "gdansk", - "gdynia", - "gliwice", - "glogow", - "gmina", - "gniezno", - "gorlice", - "gov", - "grajewo", - "gsm", - "ilawa", - "info", - "jaworzno", - "jelenia-gora", - "jgora", - "kalisz", - "karpacz", - "kartuzy", - "kaszuby", - "katowice", - "kazimierz-dolny", - "kepno", - "ketrzyn", - "klodzko", - "kobierzyce", - "kolobrzeg", - "konin", - "konskowola", - "krakow", - "kutno", - "lapy", - "lebork", - "legnica", - "lezajsk", - "limanowa", - "lomza", - "lowicz", - "lubin", - "lukow", - "mail", - "malbork", - "malopolska", - "mazowsze", - "mazury", - "med", - "media", - "miasta", - "mielec", - "mielno", - "mil", - "mragowo", - "naklo", - "net", - "nieruchomosci", - "nom", - "nowaruda", - "nysa", - "olawa", - "olecko", - "olkusz", - "olsztyn", - "opoczno", - "opole", - "org", - "ostroda", - "ostroleka", - "ostrowiec", - "ostrowwlkp", - "pc", - "pila", - "pisz", - "podhale", - "podlasie", - "polkowice", - "pomorskie", - "pomorze", - "powiat", - "poznan", - "priv", - "prochowice", - "pruszkow", - "przeworsk", - "pulawy", - "radom", - "rawa-maz", - "realestate", - "rel", - "rybnik", - "rzeszow", - "sanok", - "sejny", - "sex", - "shop", - "sklep", - "skoczow", - "slask", - "slupsk", - "sopot", - "sos", - "sosnowiec", - "stalowa-wola", - "starachowice", - "stargard", - "suwalki", - "swidnica", - "swiebodzin", - "swinoujscie", - "szczecin", - "szczytno", - "szkola", - "targi", - "tarnobrzeg", - "tgory", - "tm", - "tourism", - "travel", - "turek", - "turystyka", - "tychy", - "ustka", - "walbrzych", - "warmia", - "warszawa", - "waw", - "wegrow", - "wielun", - "wlocl", - "wloclawek", - "wodzislaw", - "wolomin", - "wroc", - "wroclaw", - "zachpomor", - "zagan", - "zakopane", - "zarow", - "zgora", - "zgorzelec", - "ap", - "griw", - "ic", - "is", - "kmpsp", - "konsulat", - "kppsp", - "kwp", - "kwpsp", - "mup", - "mw", - "oirm", - "oum", - "pa", - "pinb", - "piw", - "po", - "psp", - "psse", - "pup", - "rzgw", - "sa", - "sdn", - "sko", - "so", - "sr", - "starostwo", - "ug", - "ugim", - "um", - "umig", - "upow", - "uppo", - "us", - "uw", - "uzs", - "wif", - "wiih", - "winb", - "wios", - "witd", - "wiw", - "wsa", - "wskr", - "wuoz", - "wzmiuw", - "zp", - "co", - "edu", - "gov", - "net", - "org", - "ac", - "biz", - "com", - "edu", - "est", - "gov", - "info", - "isla", - "name", - "net", - "org", - "pro", - "prof", - "aca", - "bar", - "cpa", - "eng", - "jur", - "law", - "med", - "com", - "edu", - "gov", - "net", - "org", - "plo", - "sec", - "blogspot", - "com", - "edu", - "gov", - "int", - "net", - "nome", - "org", - "publ", - "belau", - "co", - "ed", - "go", - "ne", - "or", - "com", - "coop", - "edu", - "gov", - "mil", - "net", - "org", - "blogspot", - "com", - "edu", - "gov", - "mil", - "name", - "net", - "org", - "sch", - "asso", - "blogspot", - "com", - "nom", - "arts", - "blogspot", - "com", - "firm", - "info", - "nom", - "nt", - "org", - "rec", - "store", - "tm", - "www", - "ac", - "blogspot", - "co", - "edu", - "gov", - "in", - "org", - "ac", - "adygeya", - "altai", - "amur", - "amursk", - "arkhangelsk", - "astrakhan", - "baikal", - "bashkiria", - "belgorod", - "bir", - "blogspot", - "bryansk", - "buryatia", - "cbg", - "chel", - "chelyabinsk", - "chita", - "chukotka", - "chuvashia", - "cmw", - "com", - "dagestan", - "dudinka", - "e-burg", - "edu", - "fareast", - "gov", - "grozny", - "int", - "irkutsk", - "ivanovo", - "izhevsk", - "jamal", - "jar", - "joshkar-ola", - "k-uralsk", - "kalmykia", - "kaluga", - "kamchatka", - "karelia", - "kazan", - "kchr", - "kemerovo", - "khabarovsk", - "khakassia", - "khv", - "kirov", - "kms", - "koenig", - "komi", - "kostroma", - "krasnoyarsk", - "kuban", - "kurgan", - "kursk", - "kustanai", - "kuzbass", - "lipetsk", - "magadan", - "magnitka", - "mari", - "mari-el", - "marine", - "mil", - "mordovia", - "msk", - "murmansk", - "mytis", - "nakhodka", - "nalchik", - "net", - "nkz", - "nnov", - "norilsk", - "nov", - "novosibirsk", - "nsk", - "omsk", - "orenburg", - "org", - "oryol", - "oskol", - "palana", - "penza", - "perm", - "pp", - "ptz", - "pyatigorsk", - "rnd", - "rubtsovsk", - "ryazan", - "sakhalin", - "samara", - "saratov", - "simbirsk", - "smolensk", - "snz", - "spb", - "stavropol", - "stv", - "surgut", - "syzran", - "tambov", - "tatarstan", - "test", - "tom", - "tomsk", - "tsaritsyn", - "tsk", - "tula", - "tuva", - "tver", - "tyumen", - "udm", - "udmurtia", - "ulan-ude", - "vdonsk", - "vladikavkaz", - "vladimir", - "vladivostok", - "volgograd", - "vologda", - "voronezh", - "vrn", - "vyatka", - "yakutia", - "yamal", - "yaroslavl", - "yekaterinburg", - "yuzhno-sakhalinsk", - "zgrad", - "ac", - "co", - "com", - "edu", - "gouv", - "gov", - "int", - "mil", - "net", - "com", - "edu", - "gov", - "med", - "net", - "org", - "pub", - "sch", - "com", - "edu", - "gov", - "net", - "org", - "com", - "edu", - "gov", - "net", - "org", - "com", - "edu", - "gov", - "info", - "med", - "net", - "org", - "tv", - "a", - "ac", - "b", - "bd", - "blogspot", - "brand", - "c", - "com", - "d", - "e", - "f", - "fh", - "fhsk", - "fhv", - "g", - "h", - "i", - "k", - "komforb", - "kommunalforbund", - "komvux", - "l", - "lanbib", - "m", - "n", - "naturbruksgymn", - "o", - "org", - "p", - "parti", - "pp", - "press", - "r", - "s", - "t", - "tm", - "u", - "w", - "x", - "y", - "z", - "blogspot", - "com", - "edu", - "gov", - "net", - "org", - "per", - "com", - "gov", - "mil", - "net", - "org", - "platform", - "blogspot", - "blogspot", - "com", - "edu", - "gov", - "net", - "org", - "art", - "blogspot", - "com", - "edu", - "gouv", - "org", - "perso", - "univ", - "com", - "net", - "org", - "co", - "com", - "consulado", - "edu", - "embaixada", - "gov", - "mil", - "net", - "org", - "principe", - "saotome", - "store", - "adygeya", - "arkhangelsk", - "balashov", - "bashkiria", - "bryansk", - "dagestan", - "grozny", - "ivanovo", - "kalmykia", - "kaluga", - "karelia", - "khakassia", - "krasnodar", - "kurgan", - "lenug", - "mordovia", - "msk", - "murmansk", - "nalchik", - "nov", - "obninsk", - "penza", - "pokrovsk", - "sochi", - "spb", - "togliatti", - "troitsk", - "tula", - "tuva", - "vladikavkaz", - "vladimir", - "vologda", - "com", - "edu", - "gob", - "org", - "red", - "gov", - "com", - "edu", - "gov", - "mil", - "net", - "org", - "ac", - "co", - "org", - "blogspot", - "ac", - "co", - "go", - "in", - "mi", - "net", - "or", - "ac", - "biz", - "co", - "com", - "edu", - "go", - "gov", - "int", - "mil", - "name", - "net", - "nic", - "org", - "test", - "web", - "gov", - "co", - "com", - "edu", - "gov", - "mil", - "net", - "nom", - "org", - "agrinet", - "com", - "defense", - "edunet", - "ens", - "fin", - "gov", - "ind", - "info", - "intl", - "mincom", - "nat", - "net", - "org", - "perso", - "rnrt", - "rns", - "rnu", - "tourism", - "turen", - "com", - "edu", - "gov", - "mil", - "net", - "org", - "av", - "bbs", - "bel", - "biz", - "com", - "dr", - "edu", - "gen", - "gov", - "info", - "k12", - "kep", - "mil", - "name", - "nc", - "net", - "org", - "pol", - "tel", - "tv", - "web", - "blogspot", - "gov", - "aero", - "biz", - "co", - "com", - "coop", - "edu", - "gov", - "info", - "int", - "jobs", - "mobi", - "museum", - "name", - "net", - "org", - "pro", - "travel", - "better-than", - "dyndns", - "on-the-web", - "worse-than", - "blogspot", - "club", - "com", - "ebiz", - "edu", - "game", - "gov", - "idv", - "mil", - "net", - "org", - "xn--czrw28b", - "xn--uc0atv", - "xn--zf0ao64a", - "ac", - "co", - "go", - "hotel", - "info", - "me", - "mil", - "mobi", - "ne", - "or", - "sc", - "tv", - "biz", - "cherkassy", - "cherkasy", - "chernigov", - "chernihiv", - "chernivtsi", - "chernovtsy", - "ck", - "cn", - "co", - "com", - "cr", - "crimea", - "cv", - "dn", - "dnepropetrovsk", - "dnipropetrovsk", - "dominic", - "donetsk", - "dp", - "edu", - "gov", - "if", - "in", - "ivano-frankivsk", - "kh", - "kharkiv", - "kharkov", - "kherson", - "khmelnitskiy", - "khmelnytskyi", - "kiev", - "kirovograd", - "km", - "kr", - "krym", - "ks", - "kv", - "kyiv", - "lg", - "lt", - "lugansk", - "lutsk", - "lv", - "lviv", - "mk", - "mykolaiv", - "net", - "nikolaev", - "od", - "odesa", - "odessa", - "org", - "pl", - "poltava", - "pp", - "rivne", - "rovno", - "rv", - "sb", - "sebastopol", - "sevastopol", - "sm", - "sumy", - "te", - "ternopil", - "uz", - "uzhgorod", - "vinnica", - "vinnytsia", - "vn", - "volyn", - "yalta", - "zaporizhzhe", - "zaporizhzhia", - "zhitomir", - "zhytomyr", - "zp", - "zt", - "ac", - "blogspot", - "co", - "com", - "go", - "ne", - "or", - "org", - "sc", - "ac", - "co", - "gov", - "ltd", - "me", - "net", - "nhs", - "org", - "plc", - "police", - "sch", - "blogspot", - "service", - "ak", - "al", - "ar", - "as", - "az", - "ca", - "co", - "ct", - "dc", - "de", - "dni", - "fed", - "fl", - "ga", - "gu", - "hi", - "ia", - "id", - "il", - "in", - "is-by", - "isa", - "kids", - "ks", - "ky", - "la", - "land-4-sale", - "ma", - "md", - "me", - "mi", - "mn", - "mo", - "ms", - "mt", - "nc", - "nd", - "ne", - "nh", - "nj", - "nm", - "nsn", - "nv", - "ny", - "oh", - "ok", - "or", - "pa", - "pr", - "ri", - "sc", - "sd", - "stuff-4-sale", - "tn", - "tx", - "ut", - "va", - "vi", - "vt", - "wa", - "wi", - "wv", - "wy", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "chtr", - "paroch", - "pvt", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "k12", - "lib", - "cc", - "cc", - "k12", - "lib", - "com", - "edu", - "gub", - "mil", - "net", - "org", - "blogspot", - "co", - "com", - "net", - "org", - "com", - "edu", - "gov", - "mil", - "net", - "org", - "arts", - "co", - "com", - "e12", - "edu", - "firm", - "gob", - "gov", - "info", - "int", - "mil", - "net", - "org", - "rec", - "store", - "tec", - "web", - "co", - "com", - "k12", - "net", - "org", - "ac", - "biz", - "blogspot", - "com", - "edu", - "gov", - "health", - "info", - "int", - "name", - "net", - "org", - "pro", - "com", - "edu", - "net", - "org", - "com", - "dyndns", - "edu", - "gov", - "mypets", - "net", - "org", - "xn--80au", - "xn--90azh", - "xn--c1avg", - "xn--d1at", - "xn--o1ac", - "xn--o1ach", - "ac", - "agrica", - "alt", - "co", - "edu", - "gov", - "grondar", - "law", - "mil", - "net", - "ngo", - "nis", - "nom", - "org", - "school", - "tm", - "web", - "blogspot", -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/events.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/events.go deleted file mode 100644 index e66c7e32..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/events.go +++ /dev/null @@ -1,524 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package trace - -import ( - "bytes" - "fmt" - "html/template" - "io" - "log" - "net/http" - "runtime" - "sort" - "strconv" - "strings" - "sync" - "sync/atomic" - "text/tabwriter" - "time" -) - -var eventsTmpl = template.Must(template.New("events").Funcs(template.FuncMap{ - "elapsed": elapsed, - "trimSpace": strings.TrimSpace, -}).Parse(eventsHTML)) - -const maxEventsPerLog = 100 - -type bucket struct { - MaxErrAge time.Duration - String string -} - -var buckets = []bucket{ - {0, "total"}, - {10 * time.Second, "errs<10s"}, - {1 * time.Minute, "errs<1m"}, - {10 * time.Minute, "errs<10m"}, - {1 * time.Hour, "errs<1h"}, - {10 * time.Hour, "errs<10h"}, - {24000 * time.Hour, "errors"}, -} - -// RenderEvents renders the HTML page typically served at /debug/events. -// It does not do any auth checking; see AuthRequest for the default auth check -// used by the handler registered on http.DefaultServeMux. -// req may be nil. -func RenderEvents(w http.ResponseWriter, req *http.Request, sensitive bool) { - now := time.Now() - data := &struct { - Families []string // family names - Buckets []bucket - Counts [][]int // eventLog count per family/bucket - - // Set when a bucket has been selected. - Family string - Bucket int - EventLogs eventLogs - Expanded bool - }{ - Buckets: buckets, - } - - data.Families = make([]string, 0, len(families)) - famMu.RLock() - for name := range families { - data.Families = append(data.Families, name) - } - famMu.RUnlock() - sort.Strings(data.Families) - - // Count the number of eventLogs in each family for each error age. - data.Counts = make([][]int, len(data.Families)) - for i, name := range data.Families { - // TODO(sameer): move this loop under the family lock. - f := getEventFamily(name) - data.Counts[i] = make([]int, len(data.Buckets)) - for j, b := range data.Buckets { - data.Counts[i][j] = f.Count(now, b.MaxErrAge) - } - } - - if req != nil { - var ok bool - data.Family, data.Bucket, ok = parseEventsArgs(req) - if !ok { - // No-op - } else { - data.EventLogs = getEventFamily(data.Family).Copy(now, buckets[data.Bucket].MaxErrAge) - } - if data.EventLogs != nil { - defer data.EventLogs.Free() - sort.Sort(data.EventLogs) - } - if exp, err := strconv.ParseBool(req.FormValue("exp")); err == nil { - data.Expanded = exp - } - } - - famMu.RLock() - defer famMu.RUnlock() - if err := eventsTmpl.Execute(w, data); err != nil { - log.Printf("net/trace: Failed executing template: %v", err) - } -} - -func parseEventsArgs(req *http.Request) (fam string, b int, ok bool) { - fam, bStr := req.FormValue("fam"), req.FormValue("b") - if fam == "" || bStr == "" { - return "", 0, false - } - b, err := strconv.Atoi(bStr) - if err != nil || b < 0 || b >= len(buckets) { - return "", 0, false - } - return fam, b, true -} - -// An EventLog provides a log of events associated with a specific object. -type EventLog interface { - // Printf formats its arguments with fmt.Sprintf and adds the - // result to the event log. - Printf(format string, a ...interface{}) - - // Errorf is like Printf, but it marks this event as an error. - Errorf(format string, a ...interface{}) - - // Finish declares that this event log is complete. - // The event log should not be used after calling this method. - Finish() -} - -// NewEventLog returns a new EventLog with the specified family name -// and title. -func NewEventLog(family, title string) EventLog { - el := newEventLog() - el.ref() - el.Family, el.Title = family, title - el.Start = time.Now() - el.events = make([]logEntry, 0, maxEventsPerLog) - el.stack = make([]uintptr, 32) - n := runtime.Callers(2, el.stack) - el.stack = el.stack[:n] - - getEventFamily(family).add(el) - return el -} - -func (el *eventLog) Finish() { - getEventFamily(el.Family).remove(el) - el.unref() // matches ref in New -} - -var ( - famMu sync.RWMutex - families = make(map[string]*eventFamily) // family name => family -) - -func getEventFamily(fam string) *eventFamily { - famMu.Lock() - defer famMu.Unlock() - f := families[fam] - if f == nil { - f = &eventFamily{} - families[fam] = f - } - return f -} - -type eventFamily struct { - mu sync.RWMutex - eventLogs eventLogs -} - -func (f *eventFamily) add(el *eventLog) { - f.mu.Lock() - f.eventLogs = append(f.eventLogs, el) - f.mu.Unlock() -} - -func (f *eventFamily) remove(el *eventLog) { - f.mu.Lock() - defer f.mu.Unlock() - for i, el0 := range f.eventLogs { - if el == el0 { - copy(f.eventLogs[i:], f.eventLogs[i+1:]) - f.eventLogs = f.eventLogs[:len(f.eventLogs)-1] - return - } - } -} - -func (f *eventFamily) Count(now time.Time, maxErrAge time.Duration) (n int) { - f.mu.RLock() - defer f.mu.RUnlock() - for _, el := range f.eventLogs { - if el.hasRecentError(now, maxErrAge) { - n++ - } - } - return -} - -func (f *eventFamily) Copy(now time.Time, maxErrAge time.Duration) (els eventLogs) { - f.mu.RLock() - defer f.mu.RUnlock() - els = make(eventLogs, 0, len(f.eventLogs)) - for _, el := range f.eventLogs { - if el.hasRecentError(now, maxErrAge) { - el.ref() - els = append(els, el) - } - } - return -} - -type eventLogs []*eventLog - -// Free calls unref on each element of the list. -func (els eventLogs) Free() { - for _, el := range els { - el.unref() - } -} - -// eventLogs may be sorted in reverse chronological order. -func (els eventLogs) Len() int { return len(els) } -func (els eventLogs) Less(i, j int) bool { return els[i].Start.After(els[j].Start) } -func (els eventLogs) Swap(i, j int) { els[i], els[j] = els[j], els[i] } - -// A logEntry is a timestamped log entry in an event log. -type logEntry struct { - When time.Time - Elapsed time.Duration // since previous event in log - NewDay bool // whether this event is on a different day to the previous event - What string - IsErr bool -} - -// WhenString returns a string representation of the elapsed time of the event. -// It will include the date if midnight was crossed. -func (e logEntry) WhenString() string { - if e.NewDay { - return e.When.Format("2006/01/02 15:04:05.000000") - } - return e.When.Format("15:04:05.000000") -} - -// An eventLog represents an active event log. -type eventLog struct { - // Family is the top-level grouping of event logs to which this belongs. - Family string - - // Title is the title of this event log. - Title string - - // Timing information. - Start time.Time - - // Call stack where this event log was created. - stack []uintptr - - // Append-only sequence of events. - // - // TODO(sameer): change this to a ring buffer to avoid the array copy - // when we hit maxEventsPerLog. - mu sync.RWMutex - events []logEntry - LastErrorTime time.Time - discarded int - - refs int32 // how many buckets this is in -} - -func (el *eventLog) reset() { - // Clear all but the mutex. Mutexes may not be copied, even when unlocked. - el.Family = "" - el.Title = "" - el.Start = time.Time{} - el.stack = nil - el.events = nil - el.LastErrorTime = time.Time{} - el.discarded = 0 - el.refs = 0 -} - -func (el *eventLog) hasRecentError(now time.Time, maxErrAge time.Duration) bool { - if maxErrAge == 0 { - return true - } - el.mu.RLock() - defer el.mu.RUnlock() - return now.Sub(el.LastErrorTime) < maxErrAge -} - -// delta returns the elapsed time since the last event or the log start, -// and whether it spans midnight. -// L >= el.mu -func (el *eventLog) delta(t time.Time) (time.Duration, bool) { - if len(el.events) == 0 { - return t.Sub(el.Start), false - } - prev := el.events[len(el.events)-1].When - return t.Sub(prev), prev.Day() != t.Day() - -} - -func (el *eventLog) Printf(format string, a ...interface{}) { - el.printf(false, format, a...) -} - -func (el *eventLog) Errorf(format string, a ...interface{}) { - el.printf(true, format, a...) -} - -func (el *eventLog) printf(isErr bool, format string, a ...interface{}) { - e := logEntry{When: time.Now(), IsErr: isErr, What: fmt.Sprintf(format, a...)} - el.mu.Lock() - e.Elapsed, e.NewDay = el.delta(e.When) - if len(el.events) < maxEventsPerLog { - el.events = append(el.events, e) - } else { - // Discard the oldest event. - if el.discarded == 0 { - // el.discarded starts at two to count for the event it - // is replacing, plus the next one that we are about to - // drop. - el.discarded = 2 - } else { - el.discarded++ - } - // TODO(sameer): if this causes allocations on a critical path, - // change eventLog.What to be a fmt.Stringer, as in trace.go. - el.events[0].What = fmt.Sprintf("(%d events discarded)", el.discarded) - // The timestamp of the discarded meta-event should be - // the time of the last event it is representing. - el.events[0].When = el.events[1].When - copy(el.events[1:], el.events[2:]) - el.events[maxEventsPerLog-1] = e - } - if e.IsErr { - el.LastErrorTime = e.When - } - el.mu.Unlock() -} - -func (el *eventLog) ref() { - atomic.AddInt32(&el.refs, 1) -} - -func (el *eventLog) unref() { - if atomic.AddInt32(&el.refs, -1) == 0 { - freeEventLog(el) - } -} - -func (el *eventLog) When() string { - return el.Start.Format("2006/01/02 15:04:05.000000") -} - -func (el *eventLog) ElapsedTime() string { - elapsed := time.Since(el.Start) - return fmt.Sprintf("%.6f", elapsed.Seconds()) -} - -func (el *eventLog) Stack() string { - buf := new(bytes.Buffer) - tw := tabwriter.NewWriter(buf, 1, 8, 1, '\t', 0) - printStackRecord(tw, el.stack) - tw.Flush() - return buf.String() -} - -// printStackRecord prints the function + source line information -// for a single stack trace. -// Adapted from runtime/pprof/pprof.go. -func printStackRecord(w io.Writer, stk []uintptr) { - for _, pc := range stk { - f := runtime.FuncForPC(pc) - if f == nil { - continue - } - file, line := f.FileLine(pc) - name := f.Name() - // Hide runtime.goexit and any runtime functions at the beginning. - if strings.HasPrefix(name, "runtime.") { - continue - } - fmt.Fprintf(w, "# %s\t%s:%d\n", name, file, line) - } -} - -func (el *eventLog) Events() []logEntry { - el.mu.RLock() - defer el.mu.RUnlock() - return el.events -} - -// freeEventLogs is a freelist of *eventLog -var freeEventLogs = make(chan *eventLog, 1000) - -// newEventLog returns a event log ready to use. -func newEventLog() *eventLog { - select { - case el := <-freeEventLogs: - return el - default: - return new(eventLog) - } -} - -// freeEventLog adds el to freeEventLogs if there's room. -// This is non-blocking. -func freeEventLog(el *eventLog) { - el.reset() - select { - case freeEventLogs <- el: - default: - } -} - -const eventsHTML = ` - - - events - - - - -

    /debug/events

    - -
  • - {{range $i, $fam := .Families}} - - - - {{range $j, $bucket := $.Buckets}} - {{$n := index $.Counts $i $j}} - - {{end}} - - {{end}} -
    {{$fam}} - {{if $n}}{{end}} - [{{$n}} {{$bucket.String}}] - {{if $n}}{{end}} -
    - -{{if $.EventLogs}} -


    -

    Family: {{$.Family}}

    - -{{if $.Expanded}}{{end}} -[Summary]{{if $.Expanded}}{{end}} - -{{if not $.Expanded}}{{end}} -[Expanded]{{if not $.Expanded}}{{end}} - - - - {{range $el := $.EventLogs}} - - - - - {{if $.Expanded}} - - - - - - {{range $el.Events}} - - - - - - {{end}} - {{end}} - {{end}} -
    WhenElapsed
    {{$el.When}}{{$el.ElapsedTime}}{{$el.Title}} -
    {{$el.Stack|trimSpace}}
    {{.WhenString}}{{elapsed .Elapsed}}.{{if .IsErr}}E{{else}}.{{end}}. {{.What}}
    -{{end}} - - -` diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/histogram.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/histogram.go deleted file mode 100644 index e7e616f4..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/histogram.go +++ /dev/null @@ -1,356 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package trace - -// This file implements histogramming for RPC statistics collection. - -import ( - "bytes" - "fmt" - "html/template" - "log" - "math" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/timeseries" -) - -const ( - bucketCount = 38 -) - -// histogram keeps counts of values in buckets that are spaced -// out in powers of 2: 0-1, 2-3, 4-7... -// histogram implements timeseries.Observable -type histogram struct { - sum int64 // running total of measurements - sumOfSquares float64 // square of running total - buckets []int64 // bucketed values for histogram - value int // holds a single value as an optimization - valueCount int64 // number of values recorded for single value -} - -// AddMeasurement records a value measurement observation to the histogram. -func (h *histogram) addMeasurement(value int64) { - // TODO: assert invariant - h.sum += value - h.sumOfSquares += float64(value) * float64(value) - - bucketIndex := getBucket(value) - - if h.valueCount == 0 || (h.valueCount > 0 && h.value == bucketIndex) { - h.value = bucketIndex - h.valueCount++ - } else { - h.allocateBuckets() - h.buckets[bucketIndex]++ - } -} - -func (h *histogram) allocateBuckets() { - if h.buckets == nil { - h.buckets = make([]int64, bucketCount) - h.buckets[h.value] = h.valueCount - h.value = 0 - h.valueCount = -1 - } -} - -func log2(i int64) int { - n := 0 - for ; i >= 0x100; i >>= 8 { - n += 8 - } - for ; i > 0; i >>= 1 { - n += 1 - } - return n -} - -func getBucket(i int64) (index int) { - index = log2(i) - 1 - if index < 0 { - index = 0 - } - if index >= bucketCount { - index = bucketCount - 1 - } - return -} - -// Total returns the number of recorded observations. -func (h *histogram) total() (total int64) { - if h.valueCount >= 0 { - total = h.valueCount - } - for _, val := range h.buckets { - total += int64(val) - } - return -} - -// Average returns the average value of recorded observations. -func (h *histogram) average() float64 { - t := h.total() - if t == 0 { - return 0 - } - return float64(h.sum) / float64(t) -} - -// Variance returns the variance of recorded observations. -func (h *histogram) variance() float64 { - t := float64(h.total()) - if t == 0 { - return 0 - } - s := float64(h.sum) / t - return h.sumOfSquares/t - s*s -} - -// StandardDeviation returns the standard deviation of recorded observations. -func (h *histogram) standardDeviation() float64 { - return math.Sqrt(h.variance()) -} - -// PercentileBoundary estimates the value that the given fraction of recorded -// observations are less than. -func (h *histogram) percentileBoundary(percentile float64) int64 { - total := h.total() - - // Corner cases (make sure result is strictly less than Total()) - if total == 0 { - return 0 - } else if total == 1 { - return int64(h.average()) - } - - percentOfTotal := round(float64(total) * percentile) - var runningTotal int64 - - for i := range h.buckets { - value := h.buckets[i] - runningTotal += value - if runningTotal == percentOfTotal { - // We hit an exact bucket boundary. If the next bucket has data, it is a - // good estimate of the value. If the bucket is empty, we interpolate the - // midpoint between the next bucket's boundary and the next non-zero - // bucket. If the remaining buckets are all empty, then we use the - // boundary for the next bucket as the estimate. - j := uint8(i + 1) - min := bucketBoundary(j) - if runningTotal < total { - for h.buckets[j] == 0 { - j++ - } - } - max := bucketBoundary(j) - return min + round(float64(max-min)/2) - } else if runningTotal > percentOfTotal { - // The value is in this bucket. Interpolate the value. - delta := runningTotal - percentOfTotal - percentBucket := float64(value-delta) / float64(value) - bucketMin := bucketBoundary(uint8(i)) - nextBucketMin := bucketBoundary(uint8(i + 1)) - bucketSize := nextBucketMin - bucketMin - return bucketMin + round(percentBucket*float64(bucketSize)) - } - } - return bucketBoundary(bucketCount - 1) -} - -// Median returns the estimated median of the observed values. -func (h *histogram) median() int64 { - return h.percentileBoundary(0.5) -} - -// Add adds other to h. -func (h *histogram) Add(other timeseries.Observable) { - o := other.(*histogram) - if o.valueCount == 0 { - // Other histogram is empty - } else if h.valueCount >= 0 && o.valueCount > 0 && h.value == o.value { - // Both have a single bucketed value, aggregate them - h.valueCount += o.valueCount - } else { - // Two different values necessitate buckets in this histogram - h.allocateBuckets() - if o.valueCount >= 0 { - h.buckets[o.value] += o.valueCount - } else { - for i := range h.buckets { - h.buckets[i] += o.buckets[i] - } - } - } - h.sumOfSquares += o.sumOfSquares - h.sum += o.sum -} - -// Clear resets the histogram to an empty state, removing all observed values. -func (h *histogram) Clear() { - h.buckets = nil - h.value = 0 - h.valueCount = 0 - h.sum = 0 - h.sumOfSquares = 0 -} - -// CopyFrom copies from other, which must be a *histogram, into h. -func (h *histogram) CopyFrom(other timeseries.Observable) { - o := other.(*histogram) - if o.valueCount == -1 { - h.allocateBuckets() - copy(h.buckets, o.buckets) - } - h.sum = o.sum - h.sumOfSquares = o.sumOfSquares - h.value = o.value - h.valueCount = o.valueCount -} - -// Multiply scales the histogram by the specified ratio. -func (h *histogram) Multiply(ratio float64) { - if h.valueCount == -1 { - for i := range h.buckets { - h.buckets[i] = int64(float64(h.buckets[i]) * ratio) - } - } else { - h.valueCount = int64(float64(h.valueCount) * ratio) - } - h.sum = int64(float64(h.sum) * ratio) - h.sumOfSquares = h.sumOfSquares * ratio -} - -// New creates a new histogram. -func (h *histogram) New() timeseries.Observable { - r := new(histogram) - r.Clear() - return r -} - -func (h *histogram) String() string { - return fmt.Sprintf("%d, %f, %d, %d, %v", - h.sum, h.sumOfSquares, h.value, h.valueCount, h.buckets) -} - -// round returns the closest int64 to the argument -func round(in float64) int64 { - return int64(math.Floor(in + 0.5)) -} - -// bucketBoundary returns the first value in the bucket. -func bucketBoundary(bucket uint8) int64 { - if bucket == 0 { - return 0 - } - return 1 << bucket -} - -// bucketData holds data about a specific bucket for use in distTmpl. -type bucketData struct { - Lower, Upper int64 - N int64 - Pct, CumulativePct float64 - GraphWidth int -} - -// data holds data about a Distribution for use in distTmpl. -type data struct { - Buckets []*bucketData - Count, Median int64 - Mean, StandardDeviation float64 -} - -// maxHTMLBarWidth is the maximum width of the HTML bar for visualizing buckets. -const maxHTMLBarWidth = 350.0 - -// newData returns data representing h for use in distTmpl. -func (h *histogram) newData() *data { - // Force the allocation of buckets to simplify the rendering implementation - h.allocateBuckets() - // We scale the bars on the right so that the largest bar is - // maxHTMLBarWidth pixels in width. - maxBucket := int64(0) - for _, n := range h.buckets { - if n > maxBucket { - maxBucket = n - } - } - total := h.total() - barsizeMult := maxHTMLBarWidth / float64(maxBucket) - var pctMult float64 - if total == 0 { - pctMult = 1.0 - } else { - pctMult = 100.0 / float64(total) - } - - buckets := make([]*bucketData, len(h.buckets)) - runningTotal := int64(0) - for i, n := range h.buckets { - if n == 0 { - continue - } - runningTotal += n - var upperBound int64 - if i < bucketCount-1 { - upperBound = bucketBoundary(uint8(i + 1)) - } else { - upperBound = math.MaxInt64 - } - buckets[i] = &bucketData{ - Lower: bucketBoundary(uint8(i)), - Upper: upperBound, - N: n, - Pct: float64(n) * pctMult, - CumulativePct: float64(runningTotal) * pctMult, - GraphWidth: int(float64(n) * barsizeMult), - } - } - return &data{ - Buckets: buckets, - Count: total, - Median: h.median(), - Mean: h.average(), - StandardDeviation: h.standardDeviation(), - } -} - -func (h *histogram) html() template.HTML { - buf := new(bytes.Buffer) - if err := distTmpl.Execute(buf, h.newData()); err != nil { - buf.Reset() - log.Printf("net/trace: couldn't execute template: %v", err) - } - return template.HTML(buf.String()) -} - -// Input: data -var distTmpl = template.Must(template.New("distTmpl").Parse(` - - - - - - - -
    Count: {{.Count}}Mean: {{printf "%.0f" .Mean}}StdDev: {{printf "%.0f" .StandardDeviation}}Median: {{.Median}}
    -
    - -{{range $b := .Buckets}} -{{if $b}} - - - - - - - - - -{{end}} -{{end}} -
    [{{.Lower}},{{.Upper}}){{.N}}{{printf "%#.3f" .Pct}}%{{printf "%#.3f" .CumulativePct}}%
    -`)) diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/histogram_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/histogram_test.go deleted file mode 100644 index d384b933..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/histogram_test.go +++ /dev/null @@ -1,325 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package trace - -import ( - "math" - "testing" -) - -type sumTest struct { - value int64 - sum int64 - sumOfSquares float64 - total int64 -} - -var sumTests = []sumTest{ - {100, 100, 10000, 1}, - {50, 150, 12500, 2}, - {50, 200, 15000, 3}, - {50, 250, 17500, 4}, -} - -type bucketingTest struct { - in int64 - log int - bucket int -} - -var bucketingTests = []bucketingTest{ - {0, 0, 0}, - {1, 1, 0}, - {2, 2, 1}, - {3, 2, 1}, - {4, 3, 2}, - {1000, 10, 9}, - {1023, 10, 9}, - {1024, 11, 10}, - {1000000, 20, 19}, -} - -type multiplyTest struct { - in int64 - ratio float64 - expectedSum int64 - expectedTotal int64 - expectedSumOfSquares float64 -} - -var multiplyTests = []multiplyTest{ - {15, 2.5, 37, 2, 562.5}, - {128, 4.6, 758, 13, 77953.9}, -} - -type percentileTest struct { - fraction float64 - expected int64 -} - -var percentileTests = []percentileTest{ - {0.25, 48}, - {0.5, 96}, - {0.6, 109}, - {0.75, 128}, - {0.90, 205}, - {0.95, 230}, - {0.99, 256}, -} - -func TestSum(t *testing.T) { - var h histogram - - for _, test := range sumTests { - h.addMeasurement(test.value) - sum := h.sum - if sum != test.sum { - t.Errorf("h.Sum = %v WANT: %v", sum, test.sum) - } - - sumOfSquares := h.sumOfSquares - if sumOfSquares != test.sumOfSquares { - t.Errorf("h.SumOfSquares = %v WANT: %v", sumOfSquares, test.sumOfSquares) - } - - total := h.total() - if total != test.total { - t.Errorf("h.Total = %v WANT: %v", total, test.total) - } - } -} - -func TestMultiply(t *testing.T) { - var h histogram - for i, test := range multiplyTests { - h.addMeasurement(test.in) - h.Multiply(test.ratio) - if h.sum != test.expectedSum { - t.Errorf("#%v: h.sum = %v WANT: %v", i, h.sum, test.expectedSum) - } - if h.total() != test.expectedTotal { - t.Errorf("#%v: h.total = %v WANT: %v", i, h.total(), test.expectedTotal) - } - if h.sumOfSquares != test.expectedSumOfSquares { - t.Errorf("#%v: h.SumOfSquares = %v WANT: %v", i, test.expectedSumOfSquares, h.sumOfSquares) - } - } -} - -func TestBucketingFunctions(t *testing.T) { - for _, test := range bucketingTests { - log := log2(test.in) - if log != test.log { - t.Errorf("log2 = %v WANT: %v", log, test.log) - } - - bucket := getBucket(test.in) - if bucket != test.bucket { - t.Errorf("getBucket = %v WANT: %v", bucket, test.bucket) - } - } -} - -func TestAverage(t *testing.T) { - a := new(histogram) - average := a.average() - if average != 0 { - t.Errorf("Average of empty histogram was %v WANT: 0", average) - } - - a.addMeasurement(1) - a.addMeasurement(1) - a.addMeasurement(3) - const expected = float64(5) / float64(3) - average = a.average() - - if !isApproximate(average, expected) { - t.Errorf("Average = %g WANT: %v", average, expected) - } -} - -func TestStandardDeviation(t *testing.T) { - a := new(histogram) - add(a, 10, 1<<4) - add(a, 10, 1<<5) - add(a, 10, 1<<6) - stdDev := a.standardDeviation() - const expected = 19.95 - - if !isApproximate(stdDev, expected) { - t.Errorf("StandardDeviation = %v WANT: %v", stdDev, expected) - } - - // No values - a = new(histogram) - stdDev = a.standardDeviation() - - if !isApproximate(stdDev, 0) { - t.Errorf("StandardDeviation = %v WANT: 0", stdDev) - } - - add(a, 1, 1<<4) - if !isApproximate(stdDev, 0) { - t.Errorf("StandardDeviation = %v WANT: 0", stdDev) - } - - add(a, 10, 1<<4) - if !isApproximate(stdDev, 0) { - t.Errorf("StandardDeviation = %v WANT: 0", stdDev) - } -} - -func TestPercentileBoundary(t *testing.T) { - a := new(histogram) - add(a, 5, 1<<4) - add(a, 10, 1<<6) - add(a, 5, 1<<7) - - for _, test := range percentileTests { - percentile := a.percentileBoundary(test.fraction) - if percentile != test.expected { - t.Errorf("h.PercentileBoundary (fraction=%v) = %v WANT: %v", test.fraction, percentile, test.expected) - } - } -} - -func TestCopyFrom(t *testing.T) { - a := histogram{5, 25, []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38}, 4, -1} - b := histogram{6, 36, []int64{2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39}, 5, -1} - - a.CopyFrom(&b) - - if a.String() != b.String() { - t.Errorf("a.String = %s WANT: %s", a.String(), b.String()) - } -} - -func TestClear(t *testing.T) { - a := histogram{5, 25, []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38}, 4, -1} - - a.Clear() - - expected := "0, 0.000000, 0, 0, []" - if a.String() != expected { - t.Errorf("a.String = %s WANT %s", a.String(), expected) - } -} - -func TestNew(t *testing.T) { - a := histogram{5, 25, []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38}, 4, -1} - b := a.New() - - expected := "0, 0.000000, 0, 0, []" - if b.(*histogram).String() != expected { - t.Errorf("b.(*histogram).String = %s WANT: %s", b.(*histogram).String(), expected) - } -} - -func TestAdd(t *testing.T) { - // The tests here depend on the associativity of addMeasurement and Add. - // Add empty observation - a := histogram{5, 25, []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38}, 4, -1} - b := a.New() - - expected := a.String() - a.Add(b) - if a.String() != expected { - t.Errorf("a.String = %s WANT: %s", a.String(), expected) - } - - // Add same bucketed value, no new buckets - c := new(histogram) - d := new(histogram) - e := new(histogram) - c.addMeasurement(12) - d.addMeasurement(11) - e.addMeasurement(12) - e.addMeasurement(11) - c.Add(d) - if c.String() != e.String() { - t.Errorf("c.String = %s WANT: %s", c.String(), e.String()) - } - - // Add bucketed values - f := new(histogram) - g := new(histogram) - h := new(histogram) - f.addMeasurement(4) - f.addMeasurement(12) - f.addMeasurement(100) - g.addMeasurement(18) - g.addMeasurement(36) - g.addMeasurement(255) - h.addMeasurement(4) - h.addMeasurement(12) - h.addMeasurement(100) - h.addMeasurement(18) - h.addMeasurement(36) - h.addMeasurement(255) - f.Add(g) - if f.String() != h.String() { - t.Errorf("f.String = %q WANT: %q", f.String(), h.String()) - } - - // add buckets to no buckets - i := new(histogram) - j := new(histogram) - k := new(histogram) - j.addMeasurement(18) - j.addMeasurement(36) - j.addMeasurement(255) - k.addMeasurement(18) - k.addMeasurement(36) - k.addMeasurement(255) - i.Add(j) - if i.String() != k.String() { - t.Errorf("i.String = %q WANT: %q", i.String(), k.String()) - } - - // add buckets to single value (no overlap) - l := new(histogram) - m := new(histogram) - n := new(histogram) - l.addMeasurement(0) - m.addMeasurement(18) - m.addMeasurement(36) - m.addMeasurement(255) - n.addMeasurement(0) - n.addMeasurement(18) - n.addMeasurement(36) - n.addMeasurement(255) - l.Add(m) - if l.String() != n.String() { - t.Errorf("l.String = %q WANT: %q", l.String(), n.String()) - } - - // mixed order - o := new(histogram) - p := new(histogram) - o.addMeasurement(0) - o.addMeasurement(2) - o.addMeasurement(0) - p.addMeasurement(0) - p.addMeasurement(0) - p.addMeasurement(2) - if o.String() != p.String() { - t.Errorf("o.String = %q WANT: %q", o.String(), p.String()) - } -} - -func add(h *histogram, times int, val int64) { - for i := 0; i < times; i++ { - h.addMeasurement(val) - } -} - -func isApproximate(x, y float64) bool { - return math.Abs(x-y) < 1e-2 -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/trace.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/trace.go deleted file mode 100644 index 0cf8523a..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/trace.go +++ /dev/null @@ -1,1057 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/* -Package trace implements tracing of requests and long-lived objects. -It exports HTTP interfaces on /debug/requests and /debug/events. - -A trace.Trace provides tracing for short-lived objects, usually requests. -A request handler might be implemented like this: - - func fooHandler(w http.ResponseWriter, req *http.Request) { - tr := trace.New("mypkg.Foo", req.URL.Path) - defer tr.Finish() - ... - tr.LazyPrintf("some event %q happened", str) - ... - if err := somethingImportant(); err != nil { - tr.LazyPrintf("somethingImportant failed: %v", err) - tr.SetError() - } - } - -The /debug/requests HTTP endpoint organizes the traces by family, -errors, and duration. It also provides histogram of request duration -for each family. - -A trace.EventLog provides tracing for long-lived objects, such as RPC -connections. - - // A Fetcher fetches URL paths for a single domain. - type Fetcher struct { - domain string - events trace.EventLog - } - - func NewFetcher(domain string) *Fetcher { - return &Fetcher{ - domain, - trace.NewEventLog("mypkg.Fetcher", domain), - } - } - - func (f *Fetcher) Fetch(path string) (string, error) { - resp, err := http.Get("http://" + f.domain + "/" + path) - if err != nil { - f.events.Errorf("Get(%q) = %v", path, err) - return "", err - } - f.events.Printf("Get(%q) = %s", path, resp.Status) - ... - } - - func (f *Fetcher) Close() error { - f.events.Finish() - return nil - } - -The /debug/events HTTP endpoint organizes the event logs by family and -by time since the last error. The expanded view displays recent log -entries and the log's call stack. -*/ -package trace - -import ( - "bytes" - "fmt" - "html/template" - "io" - "log" - "net" - "net/http" - "runtime" - "sort" - "strconv" - "sync" - "sync/atomic" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/context" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/internal/timeseries" -) - -// DebugUseAfterFinish controls whether to debug uses of Trace values after finishing. -// FOR DEBUGGING ONLY. This will slow down the program. -var DebugUseAfterFinish = false - -// AuthRequest determines whether a specific request is permitted to load the -// /debug/requests or /debug/events pages. -// -// It returns two bools; the first indicates whether the page may be viewed at all, -// and the second indicates whether sensitive events will be shown. -// -// AuthRequest may be replaced by a program to customise its authorisation requirements. -// -// The default AuthRequest function returns (true, true) iff the request comes from localhost/127.0.0.1/[::1]. -var AuthRequest = func(req *http.Request) (any, sensitive bool) { - host, _, err := net.SplitHostPort(req.RemoteAddr) - switch { - case err != nil: // Badly formed address; fail closed. - return false, false - case host == "localhost" || host == "127.0.0.1" || host == "::1": - return true, true - default: - return false, false - } -} - -func init() { - http.HandleFunc("/debug/requests", func(w http.ResponseWriter, req *http.Request) { - any, sensitive := AuthRequest(req) - if !any { - http.Error(w, "not allowed", http.StatusUnauthorized) - return - } - Render(w, req, sensitive) - }) - http.HandleFunc("/debug/events", func(w http.ResponseWriter, req *http.Request) { - any, sensitive := AuthRequest(req) - if !any { - http.Error(w, "not allowed", http.StatusUnauthorized) - return - } - RenderEvents(w, req, sensitive) - }) -} - -// Render renders the HTML page typically served at /debug/requests. -// It does not do any auth checking; see AuthRequest for the default auth check -// used by the handler registered on http.DefaultServeMux. -// req may be nil. -func Render(w io.Writer, req *http.Request, sensitive bool) { - data := &struct { - Families []string - ActiveTraceCount map[string]int - CompletedTraces map[string]*family - - // Set when a bucket has been selected. - Traces traceList - Family string - Bucket int - Expanded bool - Traced bool - Active bool - ShowSensitive bool // whether to show sensitive events - - Histogram template.HTML - HistogramWindow string // e.g. "last minute", "last hour", "all time" - - // If non-zero, the set of traces is a partial set, - // and this is the total number. - Total int - }{ - CompletedTraces: completedTraces, - } - - data.ShowSensitive = sensitive - if req != nil { - // Allow show_sensitive=0 to force hiding of sensitive data for testing. - // This only goes one way; you can't use show_sensitive=1 to see things. - if req.FormValue("show_sensitive") == "0" { - data.ShowSensitive = false - } - - if exp, err := strconv.ParseBool(req.FormValue("exp")); err == nil { - data.Expanded = exp - } - if exp, err := strconv.ParseBool(req.FormValue("rtraced")); err == nil { - data.Traced = exp - } - } - - completedMu.RLock() - data.Families = make([]string, 0, len(completedTraces)) - for fam, _ := range completedTraces { - data.Families = append(data.Families, fam) - } - completedMu.RUnlock() - sort.Strings(data.Families) - - // We are careful here to minimize the time spent locking activeMu, - // since that lock is required every time an RPC starts and finishes. - data.ActiveTraceCount = make(map[string]int, len(data.Families)) - activeMu.RLock() - for fam, s := range activeTraces { - data.ActiveTraceCount[fam] = s.Len() - } - activeMu.RUnlock() - - var ok bool - data.Family, data.Bucket, ok = parseArgs(req) - switch { - case !ok: - // No-op - case data.Bucket == -1: - data.Active = true - n := data.ActiveTraceCount[data.Family] - data.Traces = getActiveTraces(data.Family) - if len(data.Traces) < n { - data.Total = n - } - case data.Bucket < bucketsPerFamily: - if b := lookupBucket(data.Family, data.Bucket); b != nil { - data.Traces = b.Copy(data.Traced) - } - default: - if f := getFamily(data.Family, false); f != nil { - var obs timeseries.Observable - f.LatencyMu.RLock() - switch o := data.Bucket - bucketsPerFamily; o { - case 0: - obs = f.Latency.Minute() - data.HistogramWindow = "last minute" - case 1: - obs = f.Latency.Hour() - data.HistogramWindow = "last hour" - case 2: - obs = f.Latency.Total() - data.HistogramWindow = "all time" - } - f.LatencyMu.RUnlock() - if obs != nil { - data.Histogram = obs.(*histogram).html() - } - } - } - - if data.Traces != nil { - defer data.Traces.Free() - sort.Sort(data.Traces) - } - - completedMu.RLock() - defer completedMu.RUnlock() - if err := pageTmpl.ExecuteTemplate(w, "Page", data); err != nil { - log.Printf("net/trace: Failed executing template: %v", err) - } -} - -func parseArgs(req *http.Request) (fam string, b int, ok bool) { - if req == nil { - return "", 0, false - } - fam, bStr := req.FormValue("fam"), req.FormValue("b") - if fam == "" || bStr == "" { - return "", 0, false - } - b, err := strconv.Atoi(bStr) - if err != nil || b < -1 { - return "", 0, false - } - - return fam, b, true -} - -func lookupBucket(fam string, b int) *traceBucket { - f := getFamily(fam, false) - if f == nil || b < 0 || b >= len(f.Buckets) { - return nil - } - return f.Buckets[b] -} - -type contextKeyT string - -var contextKey = contextKeyT("golang.org/x/net/trace.Trace") - -// NewContext returns a copy of the parent context -// and associates it with a Trace. -func NewContext(ctx context.Context, tr Trace) context.Context { - return context.WithValue(ctx, contextKey, tr) -} - -// FromContext returns the Trace bound to the context, if any. -func FromContext(ctx context.Context) (tr Trace, ok bool) { - tr, ok = ctx.Value(contextKey).(Trace) - return -} - -// Trace represents an active request. -type Trace interface { - // LazyLog adds x to the event log. It will be evaluated each time the - // /debug/requests page is rendered. Any memory referenced by x will be - // pinned until the trace is finished and later discarded. - LazyLog(x fmt.Stringer, sensitive bool) - - // LazyPrintf evaluates its arguments with fmt.Sprintf each time the - // /debug/requests page is rendered. Any memory referenced by a will be - // pinned until the trace is finished and later discarded. - LazyPrintf(format string, a ...interface{}) - - // SetError declares that this trace resulted in an error. - SetError() - - // SetRecycler sets a recycler for the trace. - // f will be called for each event passed to LazyLog at a time when - // it is no longer required, whether while the trace is still active - // and the event is discarded, or when a completed trace is discarded. - SetRecycler(f func(interface{})) - - // SetTraceInfo sets the trace info for the trace. - // This is currently unused. - SetTraceInfo(traceID, spanID uint64) - - // SetMaxEvents sets the maximum number of events that will be stored - // in the trace. This has no effect if any events have already been - // added to the trace. - SetMaxEvents(m int) - - // Finish declares that this trace is complete. - // The trace should not be used after calling this method. - Finish() -} - -type lazySprintf struct { - format string - a []interface{} -} - -func (l *lazySprintf) String() string { - return fmt.Sprintf(l.format, l.a...) -} - -// New returns a new Trace with the specified family and title. -func New(family, title string) Trace { - tr := newTrace() - tr.ref() - tr.Family, tr.Title = family, title - tr.Start = time.Now() - tr.events = make([]event, 0, maxEventsPerTrace) - - activeMu.RLock() - s := activeTraces[tr.Family] - activeMu.RUnlock() - if s == nil { - activeMu.Lock() - s = activeTraces[tr.Family] // check again - if s == nil { - s = new(traceSet) - activeTraces[tr.Family] = s - } - activeMu.Unlock() - } - s.Add(tr) - - // Trigger allocation of the completed trace structure for this family. - // This will cause the family to be present in the request page during - // the first trace of this family. We don't care about the return value, - // nor is there any need for this to run inline, so we execute it in its - // own goroutine, but only if the family isn't allocated yet. - completedMu.RLock() - if _, ok := completedTraces[tr.Family]; !ok { - go allocFamily(tr.Family) - } - completedMu.RUnlock() - - return tr -} - -func (tr *trace) Finish() { - tr.Elapsed = time.Now().Sub(tr.Start) - if DebugUseAfterFinish { - buf := make([]byte, 4<<10) // 4 KB should be enough - n := runtime.Stack(buf, false) - tr.finishStack = buf[:n] - } - - activeMu.RLock() - m := activeTraces[tr.Family] - activeMu.RUnlock() - m.Remove(tr) - - f := getFamily(tr.Family, true) - for _, b := range f.Buckets { - if b.Cond.match(tr) { - b.Add(tr) - } - } - // Add a sample of elapsed time as microseconds to the family's timeseries - h := new(histogram) - h.addMeasurement(tr.Elapsed.Nanoseconds() / 1e3) - f.LatencyMu.Lock() - f.Latency.Add(h) - f.LatencyMu.Unlock() - - tr.unref() // matches ref in New -} - -const ( - bucketsPerFamily = 9 - tracesPerBucket = 10 - maxActiveTraces = 20 // Maximum number of active traces to show. - maxEventsPerTrace = 10 - numHistogramBuckets = 38 -) - -var ( - // The active traces. - activeMu sync.RWMutex - activeTraces = make(map[string]*traceSet) // family -> traces - - // Families of completed traces. - completedMu sync.RWMutex - completedTraces = make(map[string]*family) // family -> traces -) - -type traceSet struct { - mu sync.RWMutex - m map[*trace]bool - - // We could avoid the entire map scan in FirstN by having a slice of all the traces - // ordered by start time, and an index into that from the trace struct, with a periodic - // repack of the slice after enough traces finish; we could also use a skip list or similar. - // However, that would shift some of the expense from /debug/requests time to RPC time, - // which is probably the wrong trade-off. -} - -func (ts *traceSet) Len() int { - ts.mu.RLock() - defer ts.mu.RUnlock() - return len(ts.m) -} - -func (ts *traceSet) Add(tr *trace) { - ts.mu.Lock() - if ts.m == nil { - ts.m = make(map[*trace]bool) - } - ts.m[tr] = true - ts.mu.Unlock() -} - -func (ts *traceSet) Remove(tr *trace) { - ts.mu.Lock() - delete(ts.m, tr) - ts.mu.Unlock() -} - -// FirstN returns the first n traces ordered by time. -func (ts *traceSet) FirstN(n int) traceList { - ts.mu.RLock() - defer ts.mu.RUnlock() - - if n > len(ts.m) { - n = len(ts.m) - } - trl := make(traceList, 0, n) - - // Fast path for when no selectivity is needed. - if n == len(ts.m) { - for tr := range ts.m { - tr.ref() - trl = append(trl, tr) - } - sort.Sort(trl) - return trl - } - - // Pick the oldest n traces. - // This is inefficient. See the comment in the traceSet struct. - for tr := range ts.m { - // Put the first n traces into trl in the order they occur. - // When we have n, sort trl, and thereafter maintain its order. - if len(trl) < n { - tr.ref() - trl = append(trl, tr) - if len(trl) == n { - // This is guaranteed to happen exactly once during this loop. - sort.Sort(trl) - } - continue - } - if tr.Start.After(trl[n-1].Start) { - continue - } - - // Find where to insert this one. - tr.ref() - i := sort.Search(n, func(i int) bool { return trl[i].Start.After(tr.Start) }) - trl[n-1].unref() - copy(trl[i+1:], trl[i:]) - trl[i] = tr - } - - return trl -} - -func getActiveTraces(fam string) traceList { - activeMu.RLock() - s := activeTraces[fam] - activeMu.RUnlock() - if s == nil { - return nil - } - return s.FirstN(maxActiveTraces) -} - -func getFamily(fam string, allocNew bool) *family { - completedMu.RLock() - f := completedTraces[fam] - completedMu.RUnlock() - if f == nil && allocNew { - f = allocFamily(fam) - } - return f -} - -func allocFamily(fam string) *family { - completedMu.Lock() - defer completedMu.Unlock() - f := completedTraces[fam] - if f == nil { - f = newFamily() - completedTraces[fam] = f - } - return f -} - -// family represents a set of trace buckets and associated latency information. -type family struct { - // traces may occur in multiple buckets. - Buckets [bucketsPerFamily]*traceBucket - - // latency time series - LatencyMu sync.RWMutex - Latency *timeseries.MinuteHourSeries -} - -func newFamily() *family { - return &family{ - Buckets: [bucketsPerFamily]*traceBucket{ - {Cond: minCond(0)}, - {Cond: minCond(50 * time.Millisecond)}, - {Cond: minCond(100 * time.Millisecond)}, - {Cond: minCond(200 * time.Millisecond)}, - {Cond: minCond(500 * time.Millisecond)}, - {Cond: minCond(1 * time.Second)}, - {Cond: minCond(10 * time.Second)}, - {Cond: minCond(100 * time.Second)}, - {Cond: errorCond{}}, - }, - Latency: timeseries.NewMinuteHourSeries(func() timeseries.Observable { return new(histogram) }), - } -} - -// traceBucket represents a size-capped bucket of historic traces, -// along with a condition for a trace to belong to the bucket. -type traceBucket struct { - Cond cond - - // Ring buffer implementation of a fixed-size FIFO queue. - mu sync.RWMutex - buf [tracesPerBucket]*trace - start int // < tracesPerBucket - length int // <= tracesPerBucket -} - -func (b *traceBucket) Add(tr *trace) { - b.mu.Lock() - defer b.mu.Unlock() - - i := b.start + b.length - if i >= tracesPerBucket { - i -= tracesPerBucket - } - if b.length == tracesPerBucket { - // "Remove" an element from the bucket. - b.buf[i].unref() - b.start++ - if b.start == tracesPerBucket { - b.start = 0 - } - } - b.buf[i] = tr - if b.length < tracesPerBucket { - b.length++ - } - tr.ref() -} - -// Copy returns a copy of the traces in the bucket. -// If tracedOnly is true, only the traces with trace information will be returned. -// The logs will be ref'd before returning; the caller should call -// the Free method when it is done with them. -// TODO(dsymonds): keep track of traced requests in separate buckets. -func (b *traceBucket) Copy(tracedOnly bool) traceList { - b.mu.RLock() - defer b.mu.RUnlock() - - trl := make(traceList, 0, b.length) - for i, x := 0, b.start; i < b.length; i++ { - tr := b.buf[x] - if !tracedOnly || tr.spanID != 0 { - tr.ref() - trl = append(trl, tr) - } - x++ - if x == b.length { - x = 0 - } - } - return trl -} - -func (b *traceBucket) Empty() bool { - b.mu.RLock() - defer b.mu.RUnlock() - return b.length == 0 -} - -// cond represents a condition on a trace. -type cond interface { - match(t *trace) bool - String() string -} - -type minCond time.Duration - -func (m minCond) match(t *trace) bool { return t.Elapsed >= time.Duration(m) } -func (m minCond) String() string { return fmt.Sprintf("≥%gs", time.Duration(m).Seconds()) } - -type errorCond struct{} - -func (e errorCond) match(t *trace) bool { return t.IsError } -func (e errorCond) String() string { return "errors" } - -type traceList []*trace - -// Free calls unref on each element of the list. -func (trl traceList) Free() { - for _, t := range trl { - t.unref() - } -} - -// traceList may be sorted in reverse chronological order. -func (trl traceList) Len() int { return len(trl) } -func (trl traceList) Less(i, j int) bool { return trl[i].Start.After(trl[j].Start) } -func (trl traceList) Swap(i, j int) { trl[i], trl[j] = trl[j], trl[i] } - -// An event is a timestamped log entry in a trace. -type event struct { - When time.Time - Elapsed time.Duration // since previous event in trace - NewDay bool // whether this event is on a different day to the previous event - Recyclable bool // whether this event was passed via LazyLog - What interface{} // string or fmt.Stringer - Sensitive bool // whether this event contains sensitive information -} - -// WhenString returns a string representation of the elapsed time of the event. -// It will include the date if midnight was crossed. -func (e event) WhenString() string { - if e.NewDay { - return e.When.Format("2006/01/02 15:04:05.000000") - } - return e.When.Format("15:04:05.000000") -} - -// discarded represents a number of discarded events. -// It is stored as *discarded to make it easier to update in-place. -type discarded int - -func (d *discarded) String() string { - return fmt.Sprintf("(%d events discarded)", int(*d)) -} - -// trace represents an active or complete request, -// either sent or received by this program. -type trace struct { - // Family is the top-level grouping of traces to which this belongs. - Family string - - // Title is the title of this trace. - Title string - - // Timing information. - Start time.Time - Elapsed time.Duration // zero while active - - // Trace information if non-zero. - traceID uint64 - spanID uint64 - - // Whether this trace resulted in an error. - IsError bool - - // Append-only sequence of events (modulo discards). - mu sync.RWMutex - events []event - - refs int32 // how many buckets this is in - recycler func(interface{}) - disc discarded // scratch space to avoid allocation - - finishStack []byte // where finish was called, if DebugUseAfterFinish is set -} - -func (tr *trace) reset() { - // Clear all but the mutex. Mutexes may not be copied, even when unlocked. - tr.Family = "" - tr.Title = "" - tr.Start = time.Time{} - tr.Elapsed = 0 - tr.traceID = 0 - tr.spanID = 0 - tr.IsError = false - tr.events = nil - tr.refs = 0 - tr.recycler = nil - tr.disc = 0 - tr.finishStack = nil -} - -// delta returns the elapsed time since the last event or the trace start, -// and whether it spans midnight. -// L >= tr.mu -func (tr *trace) delta(t time.Time) (time.Duration, bool) { - if len(tr.events) == 0 { - return t.Sub(tr.Start), false - } - prev := tr.events[len(tr.events)-1].When - return t.Sub(prev), prev.Day() != t.Day() -} - -func (tr *trace) addEvent(x interface{}, recyclable, sensitive bool) { - if DebugUseAfterFinish && tr.finishStack != nil { - buf := make([]byte, 4<<10) // 4 KB should be enough - n := runtime.Stack(buf, false) - log.Printf("net/trace: trace used after finish:\nFinished at:\n%s\nUsed at:\n%s", tr.finishStack, buf[:n]) - } - - /* - NOTE TO DEBUGGERS - - If you are here because your program panicked in this code, - it is almost definitely the fault of code using this package, - and very unlikely to be the fault of this code. - - The most likely scenario is that some code elsewhere is using - a requestz.Trace after its Finish method is called. - You can temporarily set the DebugUseAfterFinish var - to help discover where that is; do not leave that var set, - since it makes this package much less efficient. - */ - - e := event{When: time.Now(), What: x, Recyclable: recyclable, Sensitive: sensitive} - tr.mu.Lock() - e.Elapsed, e.NewDay = tr.delta(e.When) - if len(tr.events) < cap(tr.events) { - tr.events = append(tr.events, e) - } else { - // Discard the middle events. - di := int((cap(tr.events) - 1) / 2) - if d, ok := tr.events[di].What.(*discarded); ok { - (*d)++ - } else { - // disc starts at two to count for the event it is replacing, - // plus the next one that we are about to drop. - tr.disc = 2 - if tr.recycler != nil && tr.events[di].Recyclable { - go tr.recycler(tr.events[di].What) - } - tr.events[di].What = &tr.disc - } - // The timestamp of the discarded meta-event should be - // the time of the last event it is representing. - tr.events[di].When = tr.events[di+1].When - - if tr.recycler != nil && tr.events[di+1].Recyclable { - go tr.recycler(tr.events[di+1].What) - } - copy(tr.events[di+1:], tr.events[di+2:]) - tr.events[cap(tr.events)-1] = e - } - tr.mu.Unlock() -} - -func (tr *trace) LazyLog(x fmt.Stringer, sensitive bool) { - tr.addEvent(x, true, sensitive) -} - -func (tr *trace) LazyPrintf(format string, a ...interface{}) { - tr.addEvent(&lazySprintf{format, a}, false, false) -} - -func (tr *trace) SetError() { tr.IsError = true } - -func (tr *trace) SetRecycler(f func(interface{})) { - tr.recycler = f -} - -func (tr *trace) SetTraceInfo(traceID, spanID uint64) { - tr.traceID, tr.spanID = traceID, spanID -} - -func (tr *trace) SetMaxEvents(m int) { - // Always keep at least three events: first, discarded count, last. - if len(tr.events) == 0 && m > 3 { - tr.events = make([]event, 0, m) - } -} - -func (tr *trace) ref() { - atomic.AddInt32(&tr.refs, 1) -} - -func (tr *trace) unref() { - if atomic.AddInt32(&tr.refs, -1) == 0 { - if tr.recycler != nil { - // freeTrace clears tr, so we hold tr.recycler and tr.events here. - go func(f func(interface{}), es []event) { - for _, e := range es { - if e.Recyclable { - f(e.What) - } - } - }(tr.recycler, tr.events) - } - - freeTrace(tr) - } -} - -func (tr *trace) When() string { - return tr.Start.Format("2006/01/02 15:04:05.000000") -} - -func (tr *trace) ElapsedTime() string { - t := tr.Elapsed - if t == 0 { - // Active trace. - t = time.Since(tr.Start) - } - return fmt.Sprintf("%.6f", t.Seconds()) -} - -func (tr *trace) Events() []event { - tr.mu.RLock() - defer tr.mu.RUnlock() - return tr.events -} - -var traceFreeList = make(chan *trace, 1000) // TODO(dsymonds): Use sync.Pool? - -// newTrace returns a trace ready to use. -func newTrace() *trace { - select { - case tr := <-traceFreeList: - return tr - default: - return new(trace) - } -} - -// freeTrace adds tr to traceFreeList if there's room. -// This is non-blocking. -func freeTrace(tr *trace) { - if DebugUseAfterFinish { - return // never reuse - } - tr.reset() - select { - case traceFreeList <- tr: - default: - } -} - -func elapsed(d time.Duration) string { - b := []byte(fmt.Sprintf("%.6f", d.Seconds())) - - // For subsecond durations, blank all zeros before decimal point, - // and all zeros between the decimal point and the first non-zero digit. - if d < time.Second { - dot := bytes.IndexByte(b, '.') - for i := 0; i < dot; i++ { - b[i] = ' ' - } - for i := dot + 1; i < len(b); i++ { - if b[i] == '0' { - b[i] = ' ' - } else { - break - } - } - } - - return string(b) -} - -var pageTmpl = template.Must(template.New("Page").Funcs(template.FuncMap{ - "elapsed": elapsed, - "add": func(a, b int) int { return a + b }, -}).Parse(pageHTML)) - -const pageHTML = ` -{{template "Prolog" .}} -{{template "StatusTable" .}} -{{template "Epilog" .}} - -{{define "Prolog"}} - - - /debug/requests - - - - -

    /debug/requests

    -{{end}} {{/* end of Prolog */}} - -{{define "StatusTable"}} - - {{range $fam := .Families}} - - - - {{$n := index $.ActiveTraceCount $fam}} - - - {{$f := index $.CompletedTraces $fam}} - {{range $i, $b := $f.Buckets}} - {{$empty := $b.Empty}} - - {{end}} - - {{$nb := len $f.Buckets}} - - - - - - {{end}} -
    {{$fam}} - {{if $n}}{{end}} - [{{$n}} active] - {{if $n}}{{end}} - - {{if not $empty}}{{end}} - [{{.Cond}}] - {{if not $empty}}{{end}} - - [minute] - - [hour] - - [total] -
    -{{end}} {{/* end of StatusTable */}} - -{{define "Epilog"}} -{{if $.Traces}} -
    -

    Family: {{$.Family}}

    - -{{if or $.Expanded $.Traced}} - [Normal/Summary] -{{else}} - [Normal/Summary] -{{end}} - -{{if or (not $.Expanded) $.Traced}} - [Normal/Expanded] -{{else}} - [Normal/Expanded] -{{end}} - -{{if not $.Active}} - {{if or $.Expanded (not $.Traced)}} - [Traced/Summary] - {{else}} - [Traced/Summary] - {{end}} - {{if or (not $.Expanded) (not $.Traced)}} - [Traced/Expanded] - {{else}} - [Traced/Expanded] - {{end}} -{{end}} - -{{if $.Total}} -

    Showing {{len $.Traces}} of {{$.Total}} traces.

    -{{end}} - - - - - {{range $tr := $.Traces}} - - - - - {{/* TODO: include traceID/spanID */}} - - {{if $.Expanded}} - {{range $tr.Events}} - - - - - - {{end}} - {{end}} - {{end}} -
    - {{if $.Active}}Active{{else}}Completed{{end}} Requests -
    WhenElapsed (s)
    {{$tr.When}}{{$tr.ElapsedTime}}{{$tr.Title}}
    {{.WhenString}}{{elapsed .Elapsed}}{{if or $.ShowSensitive (not .Sensitive)}}... {{.What}}{{else}}[redacted]{{end}}
    -{{end}} {{/* if $.Traces */}} - -{{if $.Histogram}} -

    Latency (µs) of {{$.Family}} over {{$.HistogramWindow}}

    -{{$.Histogram}} -{{end}} {{/* if $.Histogram */}} - - - -{{end}} {{/* end of Epilog */}} -` diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/trace_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/trace_test.go deleted file mode 100644 index c2f5fcba..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/trace/trace_test.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package trace - -import ( - "reflect" - "testing" -) - -type s struct{} - -func (s) String() string { return "lazy string" } - -// TestReset checks whether all the fields are zeroed after reset. -func TestReset(t *testing.T) { - tr := New("foo", "bar") - tr.LazyLog(s{}, false) - tr.LazyPrintf("%d", 1) - tr.SetRecycler(func(_ interface{}) {}) - tr.SetTraceInfo(3, 4) - tr.SetMaxEvents(100) - tr.SetError() - tr.Finish() - - tr.(*trace).reset() - - if !reflect.DeepEqual(tr, new(trace)) { - t.Errorf("reset didn't clear all fields: %+v", tr) - } -} - -// TestResetLog checks whether all the fields are zeroed after reset. -func TestResetLog(t *testing.T) { - el := NewEventLog("foo", "bar") - el.Printf("message") - el.Errorf("error") - el.Finish() - - el.(*eventLog).reset() - - if !reflect.DeepEqual(el, new(eventLog)) { - t.Errorf("reset didn't clear all fields: %+v", el) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/file.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/file.go deleted file mode 100644 index 169a6c24..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/file.go +++ /dev/null @@ -1,795 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package webdav - -import ( - "io" - "net/http" - "os" - "path" - "path/filepath" - "strings" - "sync" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml" -) - -// slashClean is equivalent to but slightly more efficient than -// path.Clean("/" + name). -func slashClean(name string) string { - if name == "" || name[0] != '/' { - name = "/" + name - } - return path.Clean(name) -} - -// A FileSystem implements access to a collection of named files. The elements -// in a file path are separated by slash ('/', U+002F) characters, regardless -// of host operating system convention. -// -// Each method has the same semantics as the os package's function of the same -// name. -// -// Note that the os.Rename documentation says that "OS-specific restrictions -// might apply". In particular, whether or not renaming a file or directory -// overwriting another existing file or directory is an error is OS-dependent. -type FileSystem interface { - Mkdir(name string, perm os.FileMode) error - OpenFile(name string, flag int, perm os.FileMode) (File, error) - RemoveAll(name string) error - Rename(oldName, newName string) error - Stat(name string) (os.FileInfo, error) -} - -// A File is returned by a FileSystem's OpenFile method and can be served by a -// Handler. -// -// A File may optionally implement the DeadPropsHolder interface, if it can -// load and save dead properties. -type File interface { - http.File - io.Writer -} - -// A Dir implements FileSystem using the native file system restricted to a -// specific directory tree. -// -// While the FileSystem.OpenFile method takes '/'-separated paths, a Dir's -// string value is a filename on the native file system, not a URL, so it is -// separated by filepath.Separator, which isn't necessarily '/'. -// -// An empty Dir is treated as ".". -type Dir string - -func (d Dir) resolve(name string) string { - // This implementation is based on Dir.Open's code in the standard net/http package. - if filepath.Separator != '/' && strings.IndexRune(name, filepath.Separator) >= 0 || - strings.Contains(name, "\x00") { - return "" - } - dir := string(d) - if dir == "" { - dir = "." - } - return filepath.Join(dir, filepath.FromSlash(slashClean(name))) -} - -func (d Dir) Mkdir(name string, perm os.FileMode) error { - if name = d.resolve(name); name == "" { - return os.ErrNotExist - } - return os.Mkdir(name, perm) -} - -func (d Dir) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - if name = d.resolve(name); name == "" { - return nil, os.ErrNotExist - } - f, err := os.OpenFile(name, flag, perm) - if err != nil { - return nil, err - } - return f, nil -} - -func (d Dir) RemoveAll(name string) error { - if name = d.resolve(name); name == "" { - return os.ErrNotExist - } - if name == filepath.Clean(string(d)) { - // Prohibit removing the virtual root directory. - return os.ErrInvalid - } - return os.RemoveAll(name) -} - -func (d Dir) Rename(oldName, newName string) error { - if oldName = d.resolve(oldName); oldName == "" { - return os.ErrNotExist - } - if newName = d.resolve(newName); newName == "" { - return os.ErrNotExist - } - if root := filepath.Clean(string(d)); root == oldName || root == newName { - // Prohibit renaming from or to the virtual root directory. - return os.ErrInvalid - } - return os.Rename(oldName, newName) -} - -func (d Dir) Stat(name string) (os.FileInfo, error) { - if name = d.resolve(name); name == "" { - return nil, os.ErrNotExist - } - return os.Stat(name) -} - -// NewMemFS returns a new in-memory FileSystem implementation. -func NewMemFS() FileSystem { - return &memFS{ - root: memFSNode{ - children: make(map[string]*memFSNode), - mode: 0660 | os.ModeDir, - modTime: time.Now(), - }, - } -} - -// A memFS implements FileSystem, storing all metadata and actual file data -// in-memory. No limits on filesystem size are used, so it is not recommended -// this be used where the clients are untrusted. -// -// Concurrent access is permitted. The tree structure is protected by a mutex, -// and each node's contents and metadata are protected by a per-node mutex. -// -// TODO: Enforce file permissions. -type memFS struct { - mu sync.Mutex - root memFSNode -} - -// TODO: clean up and rationalize the walk/find code. - -// walk walks the directory tree for the fullname, calling f at each step. If f -// returns an error, the walk will be aborted and return that same error. -// -// dir is the directory at that step, frag is the name fragment, and final is -// whether it is the final step. For example, walking "/foo/bar/x" will result -// in 3 calls to f: -// - "/", "foo", false -// - "/foo/", "bar", false -// - "/foo/bar/", "x", true -// The frag argument will be empty only if dir is the root node and the walk -// ends at that root node. -func (fs *memFS) walk(op, fullname string, f func(dir *memFSNode, frag string, final bool) error) error { - original := fullname - fullname = slashClean(fullname) - - // Strip any leading "/"s to make fullname a relative path, as the walk - // starts at fs.root. - if fullname[0] == '/' { - fullname = fullname[1:] - } - dir := &fs.root - - for { - frag, remaining := fullname, "" - i := strings.IndexRune(fullname, '/') - final := i < 0 - if !final { - frag, remaining = fullname[:i], fullname[i+1:] - } - if frag == "" && dir != &fs.root { - panic("webdav: empty path fragment for a clean path") - } - if err := f(dir, frag, final); err != nil { - return &os.PathError{ - Op: op, - Path: original, - Err: err, - } - } - if final { - break - } - child := dir.children[frag] - if child == nil { - return &os.PathError{ - Op: op, - Path: original, - Err: os.ErrNotExist, - } - } - if !child.mode.IsDir() { - return &os.PathError{ - Op: op, - Path: original, - Err: os.ErrInvalid, - } - } - dir, fullname = child, remaining - } - return nil -} - -// find returns the parent of the named node and the relative name fragment -// from the parent to the child. For example, if finding "/foo/bar/baz" then -// parent will be the node for "/foo/bar" and frag will be "baz". -// -// If the fullname names the root node, then parent, frag and err will be zero. -// -// find returns an error if the parent does not already exist or the parent -// isn't a directory, but it will not return an error per se if the child does -// not already exist. The error returned is either nil or an *os.PathError -// whose Op is op. -func (fs *memFS) find(op, fullname string) (parent *memFSNode, frag string, err error) { - err = fs.walk(op, fullname, func(parent0 *memFSNode, frag0 string, final bool) error { - if !final { - return nil - } - if frag0 != "" { - parent, frag = parent0, frag0 - } - return nil - }) - return parent, frag, err -} - -func (fs *memFS) Mkdir(name string, perm os.FileMode) error { - fs.mu.Lock() - defer fs.mu.Unlock() - - dir, frag, err := fs.find("mkdir", name) - if err != nil { - return err - } - if dir == nil { - // We can't create the root. - return os.ErrInvalid - } - if _, ok := dir.children[frag]; ok { - return os.ErrExist - } - dir.children[frag] = &memFSNode{ - children: make(map[string]*memFSNode), - mode: perm.Perm() | os.ModeDir, - modTime: time.Now(), - } - return nil -} - -func (fs *memFS) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - fs.mu.Lock() - defer fs.mu.Unlock() - - dir, frag, err := fs.find("open", name) - if err != nil { - return nil, err - } - var n *memFSNode - if dir == nil { - // We're opening the root. - if flag&(os.O_WRONLY|os.O_RDWR) != 0 { - return nil, os.ErrPermission - } - n, frag = &fs.root, "/" - - } else { - n = dir.children[frag] - if flag&(os.O_SYNC|os.O_APPEND) != 0 { - // memFile doesn't support these flags yet. - return nil, os.ErrInvalid - } - if flag&os.O_CREATE != 0 { - if flag&os.O_EXCL != 0 && n != nil { - return nil, os.ErrExist - } - if n == nil { - n = &memFSNode{ - mode: perm.Perm(), - } - dir.children[frag] = n - } - } - if n == nil { - return nil, os.ErrNotExist - } - if flag&(os.O_WRONLY|os.O_RDWR) != 0 && flag&os.O_TRUNC != 0 { - n.mu.Lock() - n.data = nil - n.mu.Unlock() - } - } - - children := make([]os.FileInfo, 0, len(n.children)) - for cName, c := range n.children { - children = append(children, c.stat(cName)) - } - return &memFile{ - n: n, - nameSnapshot: frag, - childrenSnapshot: children, - }, nil -} - -func (fs *memFS) RemoveAll(name string) error { - fs.mu.Lock() - defer fs.mu.Unlock() - - dir, frag, err := fs.find("remove", name) - if err != nil { - return err - } - if dir == nil { - // We can't remove the root. - return os.ErrInvalid - } - delete(dir.children, frag) - return nil -} - -func (fs *memFS) Rename(oldName, newName string) error { - fs.mu.Lock() - defer fs.mu.Unlock() - - oldName = slashClean(oldName) - newName = slashClean(newName) - if oldName == newName { - return nil - } - if strings.HasPrefix(newName, oldName+"/") { - // We can't rename oldName to be a sub-directory of itself. - return os.ErrInvalid - } - - oDir, oFrag, err := fs.find("rename", oldName) - if err != nil { - return err - } - if oDir == nil { - // We can't rename from the root. - return os.ErrInvalid - } - - nDir, nFrag, err := fs.find("rename", newName) - if err != nil { - return err - } - if nDir == nil { - // We can't rename to the root. - return os.ErrInvalid - } - - oNode, ok := oDir.children[oFrag] - if !ok { - return os.ErrNotExist - } - if oNode.children != nil { - if nNode, ok := nDir.children[nFrag]; ok { - if nNode.children == nil { - return errNotADirectory - } - if len(nNode.children) != 0 { - return errDirectoryNotEmpty - } - } - } - delete(oDir.children, oFrag) - nDir.children[nFrag] = oNode - return nil -} - -func (fs *memFS) Stat(name string) (os.FileInfo, error) { - fs.mu.Lock() - defer fs.mu.Unlock() - - dir, frag, err := fs.find("stat", name) - if err != nil { - return nil, err - } - if dir == nil { - // We're stat'ting the root. - return fs.root.stat("/"), nil - } - if n, ok := dir.children[frag]; ok { - return n.stat(path.Base(name)), nil - } - return nil, os.ErrNotExist -} - -// A memFSNode represents a single entry in the in-memory filesystem and also -// implements os.FileInfo. -type memFSNode struct { - // children is protected by memFS.mu. - children map[string]*memFSNode - - mu sync.Mutex - data []byte - mode os.FileMode - modTime time.Time - deadProps map[xml.Name]Property -} - -func (n *memFSNode) stat(name string) *memFileInfo { - n.mu.Lock() - defer n.mu.Unlock() - return &memFileInfo{ - name: name, - size: int64(len(n.data)), - mode: n.mode, - modTime: n.modTime, - } -} - -func (n *memFSNode) DeadProps() (map[xml.Name]Property, error) { - n.mu.Lock() - defer n.mu.Unlock() - if len(n.deadProps) == 0 { - return nil, nil - } - ret := make(map[xml.Name]Property, len(n.deadProps)) - for k, v := range n.deadProps { - ret[k] = v - } - return ret, nil -} - -func (n *memFSNode) Patch(patches []Proppatch) ([]Propstat, error) { - n.mu.Lock() - defer n.mu.Unlock() - pstat := Propstat{Status: http.StatusOK} - for _, patch := range patches { - for _, p := range patch.Props { - pstat.Props = append(pstat.Props, Property{XMLName: p.XMLName}) - if patch.Remove { - delete(n.deadProps, p.XMLName) - continue - } - if n.deadProps == nil { - n.deadProps = map[xml.Name]Property{} - } - n.deadProps[p.XMLName] = p - } - } - return []Propstat{pstat}, nil -} - -type memFileInfo struct { - name string - size int64 - mode os.FileMode - modTime time.Time -} - -func (f *memFileInfo) Name() string { return f.name } -func (f *memFileInfo) Size() int64 { return f.size } -func (f *memFileInfo) Mode() os.FileMode { return f.mode } -func (f *memFileInfo) ModTime() time.Time { return f.modTime } -func (f *memFileInfo) IsDir() bool { return f.mode.IsDir() } -func (f *memFileInfo) Sys() interface{} { return nil } - -// A memFile is a File implementation for a memFSNode. It is a per-file (not -// per-node) read/write position, and a snapshot of the memFS' tree structure -// (a node's name and children) for that node. -type memFile struct { - n *memFSNode - nameSnapshot string - childrenSnapshot []os.FileInfo - // pos is protected by n.mu. - pos int -} - -// A *memFile implements the optional DeadPropsHolder interface. -var _ DeadPropsHolder = (*memFile)(nil) - -func (f *memFile) DeadProps() (map[xml.Name]Property, error) { return f.n.DeadProps() } -func (f *memFile) Patch(patches []Proppatch) ([]Propstat, error) { return f.n.Patch(patches) } - -func (f *memFile) Close() error { - return nil -} - -func (f *memFile) Read(p []byte) (int, error) { - f.n.mu.Lock() - defer f.n.mu.Unlock() - if f.n.mode.IsDir() { - return 0, os.ErrInvalid - } - if f.pos >= len(f.n.data) { - return 0, io.EOF - } - n := copy(p, f.n.data[f.pos:]) - f.pos += n - return n, nil -} - -func (f *memFile) Readdir(count int) ([]os.FileInfo, error) { - f.n.mu.Lock() - defer f.n.mu.Unlock() - if !f.n.mode.IsDir() { - return nil, os.ErrInvalid - } - old := f.pos - if old >= len(f.childrenSnapshot) { - // The os.File Readdir docs say that at the end of a directory, - // the error is io.EOF if count > 0 and nil if count <= 0. - if count > 0 { - return nil, io.EOF - } - return nil, nil - } - if count > 0 { - f.pos += count - if f.pos > len(f.childrenSnapshot) { - f.pos = len(f.childrenSnapshot) - } - } else { - f.pos = len(f.childrenSnapshot) - old = 0 - } - return f.childrenSnapshot[old:f.pos], nil -} - -func (f *memFile) Seek(offset int64, whence int) (int64, error) { - f.n.mu.Lock() - defer f.n.mu.Unlock() - npos := f.pos - // TODO: How to handle offsets greater than the size of system int? - switch whence { - case os.SEEK_SET: - npos = int(offset) - case os.SEEK_CUR: - npos += int(offset) - case os.SEEK_END: - npos = len(f.n.data) + int(offset) - default: - npos = -1 - } - if npos < 0 { - return 0, os.ErrInvalid - } - f.pos = npos - return int64(f.pos), nil -} - -func (f *memFile) Stat() (os.FileInfo, error) { - return f.n.stat(f.nameSnapshot), nil -} - -func (f *memFile) Write(p []byte) (int, error) { - lenp := len(p) - f.n.mu.Lock() - defer f.n.mu.Unlock() - - if f.n.mode.IsDir() { - return 0, os.ErrInvalid - } - if f.pos < len(f.n.data) { - n := copy(f.n.data[f.pos:], p) - f.pos += n - p = p[n:] - } else if f.pos > len(f.n.data) { - // Write permits the creation of holes, if we've seek'ed past the - // existing end of file. - if f.pos <= cap(f.n.data) { - oldLen := len(f.n.data) - f.n.data = f.n.data[:f.pos] - hole := f.n.data[oldLen:] - for i := range hole { - hole[i] = 0 - } - } else { - d := make([]byte, f.pos, f.pos+len(p)) - copy(d, f.n.data) - f.n.data = d - } - } - - if len(p) > 0 { - // We should only get here if f.pos == len(f.n.data). - f.n.data = append(f.n.data, p...) - f.pos = len(f.n.data) - } - f.n.modTime = time.Now() - return lenp, nil -} - -// moveFiles moves files and/or directories from src to dst. -// -// See section 9.9.4 for when various HTTP status codes apply. -func moveFiles(fs FileSystem, src, dst string, overwrite bool) (status int, err error) { - created := false - if _, err := fs.Stat(dst); err != nil { - if !os.IsNotExist(err) { - return http.StatusForbidden, err - } - created = true - } else if overwrite { - // Section 9.9.3 says that "If a resource exists at the destination - // and the Overwrite header is "T", then prior to performing the move, - // the server must perform a DELETE with "Depth: infinity" on the - // destination resource. - if err := fs.RemoveAll(dst); err != nil { - return http.StatusForbidden, err - } - } else { - return http.StatusPreconditionFailed, os.ErrExist - } - if err := fs.Rename(src, dst); err != nil { - return http.StatusForbidden, err - } - if created { - return http.StatusCreated, nil - } - return http.StatusNoContent, nil -} - -func copyProps(dst, src File) error { - d, ok := dst.(DeadPropsHolder) - if !ok { - return nil - } - s, ok := src.(DeadPropsHolder) - if !ok { - return nil - } - m, err := s.DeadProps() - if err != nil { - return err - } - props := make([]Property, 0, len(m)) - for _, prop := range m { - props = append(props, prop) - } - _, err = d.Patch([]Proppatch{{Props: props}}) - return err -} - -// copyFiles copies files and/or directories from src to dst. -// -// See section 9.8.5 for when various HTTP status codes apply. -func copyFiles(fs FileSystem, src, dst string, overwrite bool, depth int, recursion int) (status int, err error) { - if recursion == 1000 { - return http.StatusInternalServerError, errRecursionTooDeep - } - recursion++ - - // TODO: section 9.8.3 says that "Note that an infinite-depth COPY of /A/ - // into /A/B/ could lead to infinite recursion if not handled correctly." - - srcFile, err := fs.OpenFile(src, os.O_RDONLY, 0) - if err != nil { - if os.IsNotExist(err) { - return http.StatusNotFound, err - } - return http.StatusInternalServerError, err - } - defer srcFile.Close() - srcStat, err := srcFile.Stat() - if err != nil { - if os.IsNotExist(err) { - return http.StatusNotFound, err - } - return http.StatusInternalServerError, err - } - srcPerm := srcStat.Mode() & os.ModePerm - - created := false - if _, err := fs.Stat(dst); err != nil { - if os.IsNotExist(err) { - created = true - } else { - return http.StatusForbidden, err - } - } else { - if !overwrite { - return http.StatusPreconditionFailed, os.ErrExist - } - if err := fs.RemoveAll(dst); err != nil && !os.IsNotExist(err) { - return http.StatusForbidden, err - } - } - - if srcStat.IsDir() { - if err := fs.Mkdir(dst, srcPerm); err != nil { - return http.StatusForbidden, err - } - if depth == infiniteDepth { - children, err := srcFile.Readdir(-1) - if err != nil { - return http.StatusForbidden, err - } - for _, c := range children { - name := c.Name() - s := path.Join(src, name) - d := path.Join(dst, name) - cStatus, cErr := copyFiles(fs, s, d, overwrite, depth, recursion) - if cErr != nil { - // TODO: MultiStatus. - return cStatus, cErr - } - } - } - - } else { - dstFile, err := fs.OpenFile(dst, os.O_RDWR|os.O_CREATE|os.O_TRUNC, srcPerm) - if err != nil { - if os.IsNotExist(err) { - return http.StatusConflict, err - } - return http.StatusForbidden, err - - } - _, copyErr := io.Copy(dstFile, srcFile) - propsErr := copyProps(dstFile, srcFile) - closeErr := dstFile.Close() - if copyErr != nil { - return http.StatusInternalServerError, copyErr - } - if propsErr != nil { - return http.StatusInternalServerError, propsErr - } - if closeErr != nil { - return http.StatusInternalServerError, closeErr - } - } - - if created { - return http.StatusCreated, nil - } - return http.StatusNoContent, nil -} - -// walkFS traverses filesystem fs starting at name up to depth levels. -// -// Allowed values for depth are 0, 1 or infiniteDepth. For each visited node, -// walkFS calls walkFn. If a visited file system node is a directory and -// walkFn returns filepath.SkipDir, walkFS will skip traversal of this node. -func walkFS(fs FileSystem, depth int, name string, info os.FileInfo, walkFn filepath.WalkFunc) error { - // This implementation is based on Walk's code in the standard path/filepath package. - err := walkFn(name, info, nil) - if err != nil { - if info.IsDir() && err == filepath.SkipDir { - return nil - } - return err - } - if !info.IsDir() || depth == 0 { - return nil - } - if depth == 1 { - depth = 0 - } - - // Read directory names. - f, err := fs.OpenFile(name, os.O_RDONLY, 0) - if err != nil { - return walkFn(name, info, err) - } - fileInfos, err := f.Readdir(0) - f.Close() - if err != nil { - return walkFn(name, info, err) - } - - for _, fileInfo := range fileInfos { - filename := path.Join(name, fileInfo.Name()) - fileInfo, err := fs.Stat(filename) - if err != nil { - if err := walkFn(filename, fileInfo, err); err != nil && err != filepath.SkipDir { - return err - } - } else { - err = walkFS(fs, depth, filename, fileInfo, walkFn) - if err != nil { - if !fileInfo.IsDir() || err != filepath.SkipDir { - return err - } - } - } - } - return nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/file_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/file_test.go deleted file mode 100644 index 44f3714c..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/file_test.go +++ /dev/null @@ -1,1167 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package webdav - -import ( - "fmt" - "io" - "io/ioutil" - "os" - "path" - "path/filepath" - "reflect" - "runtime" - "sort" - "strconv" - "strings" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml" -) - -func TestSlashClean(t *testing.T) { - testCases := []string{ - "", - ".", - "/", - "/./", - "//", - "//.", - "//a", - "/a", - "/a/b/c", - "/a//b/./../c/d/", - "a", - "a/b/c", - } - for _, tc := range testCases { - got := slashClean(tc) - want := path.Clean("/" + tc) - if got != want { - t.Errorf("tc=%q: got %q, want %q", tc, got, want) - } - } -} - -func TestDirResolve(t *testing.T) { - testCases := []struct { - dir, name, want string - }{ - {"/", "", "/"}, - {"/", "/", "/"}, - {"/", ".", "/"}, - {"/", "./a", "/a"}, - {"/", "..", "/"}, - {"/", "..", "/"}, - {"/", "../", "/"}, - {"/", "../.", "/"}, - {"/", "../a", "/a"}, - {"/", "../..", "/"}, - {"/", "../bar/a", "/bar/a"}, - {"/", "../baz/a", "/baz/a"}, - {"/", "...", "/..."}, - {"/", ".../a", "/.../a"}, - {"/", ".../..", "/"}, - {"/", "a", "/a"}, - {"/", "a/./b", "/a/b"}, - {"/", "a/../../b", "/b"}, - {"/", "a/../b", "/b"}, - {"/", "a/b", "/a/b"}, - {"/", "a/b/c/../../d", "/a/d"}, - {"/", "a/b/c/../../../d", "/d"}, - {"/", "a/b/c/../../../../d", "/d"}, - {"/", "a/b/c/d", "/a/b/c/d"}, - - {"/foo/bar", "", "/foo/bar"}, - {"/foo/bar", "/", "/foo/bar"}, - {"/foo/bar", ".", "/foo/bar"}, - {"/foo/bar", "./a", "/foo/bar/a"}, - {"/foo/bar", "..", "/foo/bar"}, - {"/foo/bar", "../", "/foo/bar"}, - {"/foo/bar", "../.", "/foo/bar"}, - {"/foo/bar", "../a", "/foo/bar/a"}, - {"/foo/bar", "../..", "/foo/bar"}, - {"/foo/bar", "../bar/a", "/foo/bar/bar/a"}, - {"/foo/bar", "../baz/a", "/foo/bar/baz/a"}, - {"/foo/bar", "...", "/foo/bar/..."}, - {"/foo/bar", ".../a", "/foo/bar/.../a"}, - {"/foo/bar", ".../..", "/foo/bar"}, - {"/foo/bar", "a", "/foo/bar/a"}, - {"/foo/bar", "a/./b", "/foo/bar/a/b"}, - {"/foo/bar", "a/../../b", "/foo/bar/b"}, - {"/foo/bar", "a/../b", "/foo/bar/b"}, - {"/foo/bar", "a/b", "/foo/bar/a/b"}, - {"/foo/bar", "a/b/c/../../d", "/foo/bar/a/d"}, - {"/foo/bar", "a/b/c/../../../d", "/foo/bar/d"}, - {"/foo/bar", "a/b/c/../../../../d", "/foo/bar/d"}, - {"/foo/bar", "a/b/c/d", "/foo/bar/a/b/c/d"}, - - {"/foo/bar/", "", "/foo/bar"}, - {"/foo/bar/", "/", "/foo/bar"}, - {"/foo/bar/", ".", "/foo/bar"}, - {"/foo/bar/", "./a", "/foo/bar/a"}, - {"/foo/bar/", "..", "/foo/bar"}, - - {"/foo//bar///", "", "/foo/bar"}, - {"/foo//bar///", "/", "/foo/bar"}, - {"/foo//bar///", ".", "/foo/bar"}, - {"/foo//bar///", "./a", "/foo/bar/a"}, - {"/foo//bar///", "..", "/foo/bar"}, - - {"/x/y/z", "ab/c\x00d/ef", ""}, - - {".", "", "."}, - {".", "/", "."}, - {".", ".", "."}, - {".", "./a", "a"}, - {".", "..", "."}, - {".", "..", "."}, - {".", "../", "."}, - {".", "../.", "."}, - {".", "../a", "a"}, - {".", "../..", "."}, - {".", "../bar/a", "bar/a"}, - {".", "../baz/a", "baz/a"}, - {".", "...", "..."}, - {".", ".../a", ".../a"}, - {".", ".../..", "."}, - {".", "a", "a"}, - {".", "a/./b", "a/b"}, - {".", "a/../../b", "b"}, - {".", "a/../b", "b"}, - {".", "a/b", "a/b"}, - {".", "a/b/c/../../d", "a/d"}, - {".", "a/b/c/../../../d", "d"}, - {".", "a/b/c/../../../../d", "d"}, - {".", "a/b/c/d", "a/b/c/d"}, - - {"", "", "."}, - {"", "/", "."}, - {"", ".", "."}, - {"", "./a", "a"}, - {"", "..", "."}, - } - - for _, tc := range testCases { - d := Dir(filepath.FromSlash(tc.dir)) - if got := filepath.ToSlash(d.resolve(tc.name)); got != tc.want { - t.Errorf("dir=%q, name=%q: got %q, want %q", tc.dir, tc.name, got, tc.want) - } - } -} - -func TestWalk(t *testing.T) { - type walkStep struct { - name, frag string - final bool - } - - testCases := []struct { - dir string - want []walkStep - }{ - {"", []walkStep{ - {"", "", true}, - }}, - {"/", []walkStep{ - {"", "", true}, - }}, - {"/a", []walkStep{ - {"", "a", true}, - }}, - {"/a/", []walkStep{ - {"", "a", true}, - }}, - {"/a/b", []walkStep{ - {"", "a", false}, - {"a", "b", true}, - }}, - {"/a/b/", []walkStep{ - {"", "a", false}, - {"a", "b", true}, - }}, - {"/a/b/c", []walkStep{ - {"", "a", false}, - {"a", "b", false}, - {"b", "c", true}, - }}, - // The following test case is the one mentioned explicitly - // in the method description. - {"/foo/bar/x", []walkStep{ - {"", "foo", false}, - {"foo", "bar", false}, - {"bar", "x", true}, - }}, - } - - for _, tc := range testCases { - fs := NewMemFS().(*memFS) - - parts := strings.Split(tc.dir, "/") - for p := 2; p < len(parts); p++ { - d := strings.Join(parts[:p], "/") - if err := fs.Mkdir(d, 0666); err != nil { - t.Errorf("tc.dir=%q: mkdir: %q: %v", tc.dir, d, err) - } - } - - i, prevFrag := 0, "" - err := fs.walk("test", tc.dir, func(dir *memFSNode, frag string, final bool) error { - got := walkStep{ - name: prevFrag, - frag: frag, - final: final, - } - want := tc.want[i] - - if got != want { - return fmt.Errorf("got %+v, want %+v", got, want) - } - i, prevFrag = i+1, frag - return nil - }) - if err != nil { - t.Errorf("tc.dir=%q: %v", tc.dir, err) - } - } -} - -// find appends to ss the names of the named file and its children. It is -// analogous to the Unix find command. -// -// The returned strings are not guaranteed to be in any particular order. -func find(ss []string, fs FileSystem, name string) ([]string, error) { - stat, err := fs.Stat(name) - if err != nil { - return nil, err - } - ss = append(ss, name) - if stat.IsDir() { - f, err := fs.OpenFile(name, os.O_RDONLY, 0) - if err != nil { - return nil, err - } - defer f.Close() - children, err := f.Readdir(-1) - if err != nil { - return nil, err - } - for _, c := range children { - ss, err = find(ss, fs, path.Join(name, c.Name())) - if err != nil { - return nil, err - } - } - } - return ss, nil -} - -func testFS(t *testing.T, fs FileSystem) { - errStr := func(err error) string { - switch { - case os.IsExist(err): - return "errExist" - case os.IsNotExist(err): - return "errNotExist" - case err != nil: - return "err" - } - return "ok" - } - - // The non-"find" non-"stat" test cases should change the file system state. The - // indentation of the "find"s and "stat"s helps distinguish such test cases. - testCases := []string{ - " stat / want dir", - " stat /a want errNotExist", - " stat /d want errNotExist", - " stat /d/e want errNotExist", - "create /a A want ok", - " stat /a want 1", - "create /d/e EEE want errNotExist", - "mk-dir /a want errExist", - "mk-dir /d/m want errNotExist", - "mk-dir /d want ok", - " stat /d want dir", - "create /d/e EEE want ok", - " stat /d/e want 3", - " find / /a /d /d/e", - "create /d/f FFFF want ok", - "create /d/g GGGGGGG want ok", - "mk-dir /d/m want ok", - "mk-dir /d/m want errExist", - "create /d/m/p PPPPP want ok", - " stat /d/e want 3", - " stat /d/f want 4", - " stat /d/g want 7", - " stat /d/h want errNotExist", - " stat /d/m want dir", - " stat /d/m/p want 5", - " find / /a /d /d/e /d/f /d/g /d/m /d/m/p", - "rm-all /d want ok", - " stat /a want 1", - " stat /d want errNotExist", - " stat /d/e want errNotExist", - " stat /d/f want errNotExist", - " stat /d/g want errNotExist", - " stat /d/m want errNotExist", - " stat /d/m/p want errNotExist", - " find / /a", - "mk-dir /d/m want errNotExist", - "mk-dir /d want ok", - "create /d/f FFFF want ok", - "rm-all /d/f want ok", - "mk-dir /d/m want ok", - "rm-all /z want ok", - "rm-all / want err", - "create /b BB want ok", - " stat / want dir", - " stat /a want 1", - " stat /b want 2", - " stat /c want errNotExist", - " stat /d want dir", - " stat /d/m want dir", - " find / /a /b /d /d/m", - "move__ o=F /b /c want ok", - " stat /b want errNotExist", - " stat /c want 2", - " stat /d/m want dir", - " stat /d/n want errNotExist", - " find / /a /c /d /d/m", - "move__ o=F /d/m /d/n want ok", - "create /d/n/q QQQQ want ok", - " stat /d/m want errNotExist", - " stat /d/n want dir", - " stat /d/n/q want 4", - "move__ o=F /d /d/n/z want err", - "move__ o=T /c /d/n/q want ok", - " stat /c want errNotExist", - " stat /d/n/q want 2", - " find / /a /d /d/n /d/n/q", - "create /d/n/r RRRRR want ok", - "mk-dir /u want ok", - "mk-dir /u/v want ok", - "move__ o=F /d/n /u want errExist", - "create /t TTTTTT want ok", - "move__ o=F /d/n /t want errExist", - "rm-all /t want ok", - "move__ o=F /d/n /t want ok", - " stat /d want dir", - " stat /d/n want errNotExist", - " stat /d/n/r want errNotExist", - " stat /t want dir", - " stat /t/q want 2", - " stat /t/r want 5", - " find / /a /d /t /t/q /t/r /u /u/v", - "move__ o=F /t / want errExist", - "move__ o=T /t /u/v want ok", - " stat /u/v/r want 5", - "move__ o=F / /z want err", - " find / /a /d /u /u/v /u/v/q /u/v/r", - " stat /a want 1", - " stat /b want errNotExist", - " stat /c want errNotExist", - " stat /u/v/r want 5", - "copy__ o=F d=0 /a /b want ok", - "copy__ o=T d=0 /a /c want ok", - " stat /a want 1", - " stat /b want 1", - " stat /c want 1", - " stat /u/v/r want 5", - "copy__ o=F d=0 /u/v/r /b want errExist", - " stat /b want 1", - "copy__ o=T d=0 /u/v/r /b want ok", - " stat /a want 1", - " stat /b want 5", - " stat /u/v/r want 5", - "rm-all /a want ok", - "rm-all /b want ok", - "mk-dir /u/v/w want ok", - "create /u/v/w/s SSSSSSSS want ok", - " stat /d want dir", - " stat /d/x want errNotExist", - " stat /d/y want errNotExist", - " stat /u/v/r want 5", - " stat /u/v/w/s want 8", - " find / /c /d /u /u/v /u/v/q /u/v/r /u/v/w /u/v/w/s", - "copy__ o=T d=0 /u/v /d/x want ok", - "copy__ o=T d=∞ /u/v /d/y want ok", - "rm-all /u want ok", - " stat /d/x want dir", - " stat /d/x/q want errNotExist", - " stat /d/x/r want errNotExist", - " stat /d/x/w want errNotExist", - " stat /d/x/w/s want errNotExist", - " stat /d/y want dir", - " stat /d/y/q want 2", - " stat /d/y/r want 5", - " stat /d/y/w want dir", - " stat /d/y/w/s want 8", - " stat /u want errNotExist", - " find / /c /d /d/x /d/y /d/y/q /d/y/r /d/y/w /d/y/w/s", - "copy__ o=F d=∞ /d/y /d/x want errExist", - } - - for i, tc := range testCases { - tc = strings.TrimSpace(tc) - j := strings.IndexByte(tc, ' ') - if j < 0 { - t.Fatalf("test case #%d %q: invalid command", i, tc) - } - op, arg := tc[:j], tc[j+1:] - - switch op { - default: - t.Fatalf("test case #%d %q: invalid operation %q", i, tc, op) - - case "create": - parts := strings.Split(arg, " ") - if len(parts) != 4 || parts[2] != "want" { - t.Fatalf("test case #%d %q: invalid write", i, tc) - } - f, opErr := fs.OpenFile(parts[0], os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666) - if got := errStr(opErr); got != parts[3] { - t.Fatalf("test case #%d %q: OpenFile: got %q (%v), want %q", i, tc, got, opErr, parts[3]) - } - if f != nil { - if _, err := f.Write([]byte(parts[1])); err != nil { - t.Fatalf("test case #%d %q: Write: %v", i, tc, err) - } - if err := f.Close(); err != nil { - t.Fatalf("test case #%d %q: Close: %v", i, tc, err) - } - } - - case "find": - got, err := find(nil, fs, "/") - if err != nil { - t.Fatalf("test case #%d %q: find: %v", i, tc, err) - } - sort.Strings(got) - want := strings.Split(arg, " ") - if !reflect.DeepEqual(got, want) { - t.Fatalf("test case #%d %q:\ngot %s\nwant %s", i, tc, got, want) - } - - case "copy__", "mk-dir", "move__", "rm-all", "stat": - nParts := 3 - switch op { - case "copy__": - nParts = 6 - case "move__": - nParts = 5 - } - parts := strings.Split(arg, " ") - if len(parts) != nParts { - t.Fatalf("test case #%d %q: invalid %s", i, tc, op) - } - - got, opErr := "", error(nil) - switch op { - case "copy__": - depth := 0 - if parts[1] == "d=∞" { - depth = infiniteDepth - } - _, opErr = copyFiles(fs, parts[2], parts[3], parts[0] == "o=T", depth, 0) - case "mk-dir": - opErr = fs.Mkdir(parts[0], 0777) - case "move__": - _, opErr = moveFiles(fs, parts[1], parts[2], parts[0] == "o=T") - case "rm-all": - opErr = fs.RemoveAll(parts[0]) - case "stat": - var stat os.FileInfo - fileName := parts[0] - if stat, opErr = fs.Stat(fileName); opErr == nil { - if stat.IsDir() { - got = "dir" - } else { - got = strconv.Itoa(int(stat.Size())) - } - - if fileName == "/" { - // For a Dir FileSystem, the virtual file system root maps to a - // real file system name like "/tmp/webdav-test012345", which does - // not end with "/". We skip such cases. - } else if statName := stat.Name(); path.Base(fileName) != statName { - t.Fatalf("test case #%d %q: file name %q inconsistent with stat name %q", - i, tc, fileName, statName) - } - } - } - if got == "" { - got = errStr(opErr) - } - - if parts[len(parts)-2] != "want" { - t.Fatalf("test case #%d %q: invalid %s", i, tc, op) - } - if want := parts[len(parts)-1]; got != want { - t.Fatalf("test case #%d %q: got %q (%v), want %q", i, tc, got, opErr, want) - } - } - } -} - -func TestDir(t *testing.T) { - switch runtime.GOOS { - case "nacl": - t.Skip("see golang.org/issue/12004") - case "plan9": - t.Skip("see golang.org/issue/11453") - } - - td, err := ioutil.TempDir("", "webdav-test") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(td) - testFS(t, Dir(td)) -} - -func TestMemFS(t *testing.T) { - testFS(t, NewMemFS()) -} - -func TestMemFSRoot(t *testing.T) { - fs := NewMemFS() - for i := 0; i < 5; i++ { - stat, err := fs.Stat("/") - if err != nil { - t.Fatalf("i=%d: Stat: %v", i, err) - } - if !stat.IsDir() { - t.Fatalf("i=%d: Stat.IsDir is false, want true", i) - } - - f, err := fs.OpenFile("/", os.O_RDONLY, 0) - if err != nil { - t.Fatalf("i=%d: OpenFile: %v", i, err) - } - defer f.Close() - children, err := f.Readdir(-1) - if err != nil { - t.Fatalf("i=%d: Readdir: %v", i, err) - } - if len(children) != i { - t.Fatalf("i=%d: got %d children, want %d", i, len(children), i) - } - - if _, err := f.Write(make([]byte, 1)); err == nil { - t.Fatalf("i=%d: Write: got nil error, want non-nil", i) - } - - if err := fs.Mkdir(fmt.Sprintf("/dir%d", i), 0777); err != nil { - t.Fatalf("i=%d: Mkdir: %v", i, err) - } - } -} - -func TestMemFileReaddir(t *testing.T) { - fs := NewMemFS() - if err := fs.Mkdir("/foo", 0777); err != nil { - t.Fatalf("Mkdir: %v", err) - } - readdir := func(count int) ([]os.FileInfo, error) { - f, err := fs.OpenFile("/foo", os.O_RDONLY, 0) - if err != nil { - t.Fatalf("OpenFile: %v", err) - } - defer f.Close() - return f.Readdir(count) - } - if got, err := readdir(-1); len(got) != 0 || err != nil { - t.Fatalf("readdir(-1): got %d fileInfos with err=%v, want 0, ", len(got), err) - } - if got, err := readdir(+1); len(got) != 0 || err != io.EOF { - t.Fatalf("readdir(+1): got %d fileInfos with err=%v, want 0, EOF", len(got), err) - } -} - -func TestMemFile(t *testing.T) { - testCases := []string{ - "wantData ", - "wantSize 0", - "write abc", - "wantData abc", - "write de", - "wantData abcde", - "wantSize 5", - "write 5*x", - "write 4*y+2*z", - "write 3*st", - "wantData abcdexxxxxyyyyzzststst", - "wantSize 22", - "seek set 4 want 4", - "write EFG", - "wantData abcdEFGxxxyyyyzzststst", - "wantSize 22", - "seek set 2 want 2", - "read cdEF", - "read Gx", - "seek cur 0 want 8", - "seek cur 2 want 10", - "seek cur -1 want 9", - "write J", - "wantData abcdEFGxxJyyyyzzststst", - "wantSize 22", - "seek cur -4 want 6", - "write ghijk", - "wantData abcdEFghijkyyyzzststst", - "wantSize 22", - "read yyyz", - "seek cur 0 want 15", - "write ", - "seek cur 0 want 15", - "read ", - "seek cur 0 want 15", - "seek end -3 want 19", - "write ZZ", - "wantData abcdEFghijkyyyzzstsZZt", - "wantSize 22", - "write 4*A", - "wantData abcdEFghijkyyyzzstsZZAAAA", - "wantSize 25", - "seek end 0 want 25", - "seek end -5 want 20", - "read Z+4*A", - "write 5*B", - "wantData abcdEFghijkyyyzzstsZZAAAABBBBB", - "wantSize 30", - "seek end 10 want 40", - "write C", - "wantData abcdEFghijkyyyzzstsZZAAAABBBBB..........C", - "wantSize 41", - "write D", - "wantData abcdEFghijkyyyzzstsZZAAAABBBBB..........CD", - "wantSize 42", - "seek set 43 want 43", - "write E", - "wantData abcdEFghijkyyyzzstsZZAAAABBBBB..........CD.E", - "wantSize 44", - "seek set 0 want 0", - "write 5*123456789_", - "wantData 123456789_123456789_123456789_123456789_123456789_", - "wantSize 50", - "seek cur 0 want 50", - "seek cur -99 want err", - } - - const filename = "/foo" - fs := NewMemFS() - f, err := fs.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666) - if err != nil { - t.Fatalf("OpenFile: %v", err) - } - defer f.Close() - - for i, tc := range testCases { - j := strings.IndexByte(tc, ' ') - if j < 0 { - t.Fatalf("test case #%d %q: invalid command", i, tc) - } - op, arg := tc[:j], tc[j+1:] - - // Expand an arg like "3*a+2*b" to "aaabb". - parts := strings.Split(arg, "+") - for j, part := range parts { - if k := strings.IndexByte(part, '*'); k >= 0 { - repeatCount, repeatStr := part[:k], part[k+1:] - n, err := strconv.Atoi(repeatCount) - if err != nil { - t.Fatalf("test case #%d %q: invalid repeat count %q", i, tc, repeatCount) - } - parts[j] = strings.Repeat(repeatStr, n) - } - } - arg = strings.Join(parts, "") - - switch op { - default: - t.Fatalf("test case #%d %q: invalid operation %q", i, tc, op) - - case "read": - buf := make([]byte, len(arg)) - if _, err := io.ReadFull(f, buf); err != nil { - t.Fatalf("test case #%d %q: ReadFull: %v", i, tc, err) - } - if got := string(buf); got != arg { - t.Fatalf("test case #%d %q:\ngot %q\nwant %q", i, tc, got, arg) - } - - case "seek": - parts := strings.Split(arg, " ") - if len(parts) != 4 { - t.Fatalf("test case #%d %q: invalid seek", i, tc) - } - - whence := 0 - switch parts[0] { - default: - t.Fatalf("test case #%d %q: invalid seek whence", i, tc) - case "set": - whence = os.SEEK_SET - case "cur": - whence = os.SEEK_CUR - case "end": - whence = os.SEEK_END - } - offset, err := strconv.Atoi(parts[1]) - if err != nil { - t.Fatalf("test case #%d %q: invalid offset %q", i, tc, parts[1]) - } - - if parts[2] != "want" { - t.Fatalf("test case #%d %q: invalid seek", i, tc) - } - if parts[3] == "err" { - _, err := f.Seek(int64(offset), whence) - if err == nil { - t.Fatalf("test case #%d %q: Seek returned nil error, want non-nil", i, tc) - } - } else { - got, err := f.Seek(int64(offset), whence) - if err != nil { - t.Fatalf("test case #%d %q: Seek: %v", i, tc, err) - } - want, err := strconv.Atoi(parts[3]) - if err != nil { - t.Fatalf("test case #%d %q: invalid want %q", i, tc, parts[3]) - } - if got != int64(want) { - t.Fatalf("test case #%d %q: got %d, want %d", i, tc, got, want) - } - } - - case "write": - n, err := f.Write([]byte(arg)) - if err != nil { - t.Fatalf("test case #%d %q: write: %v", i, tc, err) - } - if n != len(arg) { - t.Fatalf("test case #%d %q: write returned %d bytes, want %d", i, tc, n, len(arg)) - } - - case "wantData": - g, err := fs.OpenFile(filename, os.O_RDONLY, 0666) - if err != nil { - t.Fatalf("test case #%d %q: OpenFile: %v", i, tc, err) - } - gotBytes, err := ioutil.ReadAll(g) - if err != nil { - t.Fatalf("test case #%d %q: ReadAll: %v", i, tc, err) - } - for i, c := range gotBytes { - if c == '\x00' { - gotBytes[i] = '.' - } - } - got := string(gotBytes) - if got != arg { - t.Fatalf("test case #%d %q:\ngot %q\nwant %q", i, tc, got, arg) - } - if err := g.Close(); err != nil { - t.Fatalf("test case #%d %q: Close: %v", i, tc, err) - } - - case "wantSize": - n, err := strconv.Atoi(arg) - if err != nil { - t.Fatalf("test case #%d %q: invalid size %q", i, tc, arg) - } - fi, err := fs.Stat(filename) - if err != nil { - t.Fatalf("test case #%d %q: Stat: %v", i, tc, err) - } - if got, want := fi.Size(), int64(n); got != want { - t.Fatalf("test case #%d %q: got %d, want %d", i, tc, got, want) - } - } - } -} - -// TestMemFileWriteAllocs tests that writing N consecutive 1KiB chunks to a -// memFile doesn't allocate a new buffer for each of those N times. Otherwise, -// calling io.Copy(aMemFile, src) is likely to have quadratic complexity. -func TestMemFileWriteAllocs(t *testing.T) { - fs := NewMemFS() - f, err := fs.OpenFile("/xxx", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666) - if err != nil { - t.Fatalf("OpenFile: %v", err) - } - defer f.Close() - - xxx := make([]byte, 1024) - for i := range xxx { - xxx[i] = 'x' - } - - a := testing.AllocsPerRun(100, func() { - f.Write(xxx) - }) - // AllocsPerRun returns an integral value, so we compare the rounded-down - // number to zero. - if a > 0 { - t.Fatalf("%v allocs per run, want 0", a) - } -} - -func BenchmarkMemFileWrite(b *testing.B) { - fs := NewMemFS() - xxx := make([]byte, 1024) - for i := range xxx { - xxx[i] = 'x' - } - - b.ResetTimer() - for i := 0; i < b.N; i++ { - f, err := fs.OpenFile("/xxx", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666) - if err != nil { - b.Fatalf("OpenFile: %v", err) - } - for j := 0; j < 100; j++ { - f.Write(xxx) - } - if err := f.Close(); err != nil { - b.Fatalf("Close: %v", err) - } - if err := fs.RemoveAll("/xxx"); err != nil { - b.Fatalf("RemoveAll: %v", err) - } - } -} - -func TestCopyMoveProps(t *testing.T) { - fs := NewMemFS() - create := func(name string) error { - f, err := fs.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666) - if err != nil { - return err - } - _, wErr := f.Write([]byte("contents")) - cErr := f.Close() - if wErr != nil { - return wErr - } - return cErr - } - patch := func(name string, patches ...Proppatch) error { - f, err := fs.OpenFile(name, os.O_RDWR, 0666) - if err != nil { - return err - } - _, pErr := f.(DeadPropsHolder).Patch(patches) - cErr := f.Close() - if pErr != nil { - return pErr - } - return cErr - } - props := func(name string) (map[xml.Name]Property, error) { - f, err := fs.OpenFile(name, os.O_RDWR, 0666) - if err != nil { - return nil, err - } - m, pErr := f.(DeadPropsHolder).DeadProps() - cErr := f.Close() - if pErr != nil { - return nil, pErr - } - if cErr != nil { - return nil, cErr - } - return m, nil - } - - p0 := Property{ - XMLName: xml.Name{Space: "x:", Local: "boat"}, - InnerXML: []byte("pea-green"), - } - p1 := Property{ - XMLName: xml.Name{Space: "x:", Local: "ring"}, - InnerXML: []byte("1 shilling"), - } - p2 := Property{ - XMLName: xml.Name{Space: "x:", Local: "spoon"}, - InnerXML: []byte("runcible"), - } - p3 := Property{ - XMLName: xml.Name{Space: "x:", Local: "moon"}, - InnerXML: []byte("light"), - } - - if err := create("/src"); err != nil { - t.Fatalf("create /src: %v", err) - } - if err := patch("/src", Proppatch{Props: []Property{p0, p1}}); err != nil { - t.Fatalf("patch /src +p0 +p1: %v", err) - } - if _, err := copyFiles(fs, "/src", "/tmp", true, infiniteDepth, 0); err != nil { - t.Fatalf("copyFiles /src /tmp: %v", err) - } - if _, err := moveFiles(fs, "/tmp", "/dst", true); err != nil { - t.Fatalf("moveFiles /tmp /dst: %v", err) - } - if err := patch("/src", Proppatch{Props: []Property{p0}, Remove: true}); err != nil { - t.Fatalf("patch /src -p0: %v", err) - } - if err := patch("/src", Proppatch{Props: []Property{p2}}); err != nil { - t.Fatalf("patch /src +p2: %v", err) - } - if err := patch("/dst", Proppatch{Props: []Property{p1}, Remove: true}); err != nil { - t.Fatalf("patch /dst -p1: %v", err) - } - if err := patch("/dst", Proppatch{Props: []Property{p3}}); err != nil { - t.Fatalf("patch /dst +p3: %v", err) - } - - gotSrc, err := props("/src") - if err != nil { - t.Fatalf("props /src: %v", err) - } - wantSrc := map[xml.Name]Property{ - p1.XMLName: p1, - p2.XMLName: p2, - } - if !reflect.DeepEqual(gotSrc, wantSrc) { - t.Fatalf("props /src:\ngot %v\nwant %v", gotSrc, wantSrc) - } - - gotDst, err := props("/dst") - if err != nil { - t.Fatalf("props /dst: %v", err) - } - wantDst := map[xml.Name]Property{ - p0.XMLName: p0, - p3.XMLName: p3, - } - if !reflect.DeepEqual(gotDst, wantDst) { - t.Fatalf("props /dst:\ngot %v\nwant %v", gotDst, wantDst) - } -} - -func TestWalkFS(t *testing.T) { - testCases := []struct { - desc string - buildfs []string - startAt string - depth int - walkFn filepath.WalkFunc - want []string - }{{ - "just root", - []string{}, - "/", - infiniteDepth, - nil, - []string{ - "/", - }, - }, { - "infinite walk from root", - []string{ - "mkdir /a", - "mkdir /a/b", - "touch /a/b/c", - "mkdir /a/d", - "mkdir /e", - "touch /f", - }, - "/", - infiniteDepth, - nil, - []string{ - "/", - "/a", - "/a/b", - "/a/b/c", - "/a/d", - "/e", - "/f", - }, - }, { - "infinite walk from subdir", - []string{ - "mkdir /a", - "mkdir /a/b", - "touch /a/b/c", - "mkdir /a/d", - "mkdir /e", - "touch /f", - }, - "/a", - infiniteDepth, - nil, - []string{ - "/a", - "/a/b", - "/a/b/c", - "/a/d", - }, - }, { - "depth 1 walk from root", - []string{ - "mkdir /a", - "mkdir /a/b", - "touch /a/b/c", - "mkdir /a/d", - "mkdir /e", - "touch /f", - }, - "/", - 1, - nil, - []string{ - "/", - "/a", - "/e", - "/f", - }, - }, { - "depth 1 walk from subdir", - []string{ - "mkdir /a", - "mkdir /a/b", - "touch /a/b/c", - "mkdir /a/b/g", - "mkdir /a/b/g/h", - "touch /a/b/g/i", - "touch /a/b/g/h/j", - }, - "/a/b", - 1, - nil, - []string{ - "/a/b", - "/a/b/c", - "/a/b/g", - }, - }, { - "depth 0 walk from subdir", - []string{ - "mkdir /a", - "mkdir /a/b", - "touch /a/b/c", - "mkdir /a/b/g", - "mkdir /a/b/g/h", - "touch /a/b/g/i", - "touch /a/b/g/h/j", - }, - "/a/b", - 0, - nil, - []string{ - "/a/b", - }, - }, { - "infinite walk from file", - []string{ - "mkdir /a", - "touch /a/b", - "touch /a/c", - }, - "/a/b", - 0, - nil, - []string{ - "/a/b", - }, - }, { - "infinite walk with skipped subdir", - []string{ - "mkdir /a", - "mkdir /a/b", - "touch /a/b/c", - "mkdir /a/b/g", - "mkdir /a/b/g/h", - "touch /a/b/g/i", - "touch /a/b/g/h/j", - "touch /a/b/z", - }, - "/", - infiniteDepth, - func(path string, info os.FileInfo, err error) error { - if path == "/a/b/g" { - return filepath.SkipDir - } - return nil - }, - []string{ - "/", - "/a", - "/a/b", - "/a/b/c", - "/a/b/z", - }, - }} - for _, tc := range testCases { - fs, err := buildTestFS(tc.buildfs) - if err != nil { - t.Fatalf("%s: cannot create test filesystem: %v", tc.desc, err) - } - var got []string - traceFn := func(path string, info os.FileInfo, err error) error { - if tc.walkFn != nil { - err = tc.walkFn(path, info, err) - if err != nil { - return err - } - } - got = append(got, path) - return nil - } - fi, err := fs.Stat(tc.startAt) - if err != nil { - t.Fatalf("%s: cannot stat: %v", tc.desc, err) - } - err = walkFS(fs, tc.depth, tc.startAt, fi, traceFn) - if err != nil { - t.Errorf("%s:\ngot error %v, want nil", tc.desc, err) - continue - } - sort.Strings(got) - sort.Strings(tc.want) - if !reflect.DeepEqual(got, tc.want) { - t.Errorf("%s:\ngot %q\nwant %q", tc.desc, got, tc.want) - continue - } - } -} - -func buildTestFS(buildfs []string) (FileSystem, error) { - // TODO: Could this be merged with the build logic in TestFS? - - fs := NewMemFS() - for _, b := range buildfs { - op := strings.Split(b, " ") - switch op[0] { - case "mkdir": - err := fs.Mkdir(op[1], os.ModeDir|0777) - if err != nil { - return nil, err - } - case "touch": - f, err := fs.OpenFile(op[1], os.O_RDWR|os.O_CREATE, 0666) - if err != nil { - return nil, err - } - f.Close() - case "write": - f, err := fs.OpenFile(op[1], os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666) - if err != nil { - return nil, err - } - _, err = f.Write([]byte(op[2])) - f.Close() - if err != nil { - return nil, err - } - default: - return nil, fmt.Errorf("unknown file operation %q", op[0]) - } - } - return fs, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/if.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/if.go deleted file mode 100644 index 416e81cd..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/if.go +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package webdav - -// The If header is covered by Section 10.4. -// http://www.webdav.org/specs/rfc4918.html#HEADER_If - -import ( - "strings" -) - -// ifHeader is a disjunction (OR) of ifLists. -type ifHeader struct { - lists []ifList -} - -// ifList is a conjunction (AND) of Conditions, and an optional resource tag. -type ifList struct { - resourceTag string - conditions []Condition -} - -// parseIfHeader parses the "If: foo bar" HTTP header. The httpHeader string -// should omit the "If:" prefix and have any "\r\n"s collapsed to a " ", as is -// returned by req.Header.Get("If") for a http.Request req. -func parseIfHeader(httpHeader string) (h ifHeader, ok bool) { - s := strings.TrimSpace(httpHeader) - switch tokenType, _, _ := lex(s); tokenType { - case '(': - return parseNoTagLists(s) - case angleTokenType: - return parseTaggedLists(s) - default: - return ifHeader{}, false - } -} - -func parseNoTagLists(s string) (h ifHeader, ok bool) { - for { - l, remaining, ok := parseList(s) - if !ok { - return ifHeader{}, false - } - h.lists = append(h.lists, l) - if remaining == "" { - return h, true - } - s = remaining - } -} - -func parseTaggedLists(s string) (h ifHeader, ok bool) { - resourceTag, n := "", 0 - for first := true; ; first = false { - tokenType, tokenStr, remaining := lex(s) - switch tokenType { - case angleTokenType: - if !first && n == 0 { - return ifHeader{}, false - } - resourceTag, n = tokenStr, 0 - s = remaining - case '(': - n++ - l, remaining, ok := parseList(s) - if !ok { - return ifHeader{}, false - } - l.resourceTag = resourceTag - h.lists = append(h.lists, l) - if remaining == "" { - return h, true - } - s = remaining - default: - return ifHeader{}, false - } - } -} - -func parseList(s string) (l ifList, remaining string, ok bool) { - tokenType, _, s := lex(s) - if tokenType != '(' { - return ifList{}, "", false - } - for { - tokenType, _, remaining = lex(s) - if tokenType == ')' { - if len(l.conditions) == 0 { - return ifList{}, "", false - } - return l, remaining, true - } - c, remaining, ok := parseCondition(s) - if !ok { - return ifList{}, "", false - } - l.conditions = append(l.conditions, c) - s = remaining - } -} - -func parseCondition(s string) (c Condition, remaining string, ok bool) { - tokenType, tokenStr, s := lex(s) - if tokenType == notTokenType { - c.Not = true - tokenType, tokenStr, s = lex(s) - } - switch tokenType { - case strTokenType, angleTokenType: - c.Token = tokenStr - case squareTokenType: - c.ETag = tokenStr - default: - return Condition{}, "", false - } - return c, s, true -} - -// Single-rune tokens like '(' or ')' have a token type equal to their rune. -// All other tokens have a negative token type. -const ( - errTokenType = rune(-1) - eofTokenType = rune(-2) - strTokenType = rune(-3) - notTokenType = rune(-4) - angleTokenType = rune(-5) - squareTokenType = rune(-6) -) - -func lex(s string) (tokenType rune, tokenStr string, remaining string) { - // The net/textproto Reader that parses the HTTP header will collapse - // Linear White Space that spans multiple "\r\n" lines to a single " ", - // so we don't need to look for '\r' or '\n'. - for len(s) > 0 && (s[0] == '\t' || s[0] == ' ') { - s = s[1:] - } - if len(s) == 0 { - return eofTokenType, "", "" - } - i := 0 -loop: - for ; i < len(s); i++ { - switch s[i] { - case '\t', ' ', '(', ')', '<', '>', '[', ']': - break loop - } - } - - if i != 0 { - tokenStr, remaining = s[:i], s[i:] - if tokenStr == "Not" { - return notTokenType, "", remaining - } - return strTokenType, tokenStr, remaining - } - - j := 0 - switch s[0] { - case '<': - j, tokenType = strings.IndexByte(s, '>'), angleTokenType - case '[': - j, tokenType = strings.IndexByte(s, ']'), squareTokenType - default: - return rune(s[0]), "", s[1:] - } - if j < 0 { - return errTokenType, "", "" - } - return tokenType, s[1:j], s[j+1:] -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/if_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/if_test.go deleted file mode 100644 index aad61a40..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/if_test.go +++ /dev/null @@ -1,322 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package webdav - -import ( - "reflect" - "strings" - "testing" -) - -func TestParseIfHeader(t *testing.T) { - // The "section x.y.z" test cases come from section x.y.z of the spec at - // http://www.webdav.org/specs/rfc4918.html - testCases := []struct { - desc string - input string - want ifHeader - }{{ - "bad: empty", - ``, - ifHeader{}, - }, { - "bad: no parens", - `foobar`, - ifHeader{}, - }, { - "bad: empty list #1", - `()`, - ifHeader{}, - }, { - "bad: empty list #2", - `(a) (b c) () (d)`, - ifHeader{}, - }, { - "bad: no list after resource #1", - ``, - ifHeader{}, - }, { - "bad: no list after resource #2", - ` (a)`, - ifHeader{}, - }, { - "bad: no list after resource #3", - ` (a) (b) `, - ifHeader{}, - }, { - "bad: no-tag-list followed by tagged-list", - `(a) (b) (c)`, - ifHeader{}, - }, { - "bad: unfinished list", - `(a`, - ifHeader{}, - }, { - "bad: unfinished ETag", - `([b`, - ifHeader{}, - }, { - "bad: unfinished Notted list", - `(Not a`, - ifHeader{}, - }, { - "bad: double Not", - `(Not Not a)`, - ifHeader{}, - }, { - "good: one list with a Token", - `(a)`, - ifHeader{ - lists: []ifList{{ - conditions: []Condition{{ - Token: `a`, - }}, - }}, - }, - }, { - "good: one list with an ETag", - `([a])`, - ifHeader{ - lists: []ifList{{ - conditions: []Condition{{ - ETag: `a`, - }}, - }}, - }, - }, { - "good: one list with three Nots", - `(Not a Not b Not [d])`, - ifHeader{ - lists: []ifList{{ - conditions: []Condition{{ - Not: true, - Token: `a`, - }, { - Not: true, - Token: `b`, - }, { - Not: true, - ETag: `d`, - }}, - }}, - }, - }, { - "good: two lists", - `(a) (b)`, - ifHeader{ - lists: []ifList{{ - conditions: []Condition{{ - Token: `a`, - }}, - }, { - conditions: []Condition{{ - Token: `b`, - }}, - }}, - }, - }, { - "good: two Notted lists", - `(Not a) (Not b)`, - ifHeader{ - lists: []ifList{{ - conditions: []Condition{{ - Not: true, - Token: `a`, - }}, - }, { - conditions: []Condition{{ - Not: true, - Token: `b`, - }}, - }}, - }, - }, { - "section 7.5.1", - ` - ()`, - ifHeader{ - lists: []ifList{{ - resourceTag: `http://www.example.com/users/f/fielding/index.html`, - conditions: []Condition{{ - Token: `urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6`, - }}, - }}, - }, - }, { - "section 7.5.2 #1", - `()`, - ifHeader{ - lists: []ifList{{ - conditions: []Condition{{ - Token: `urn:uuid:150852e2-3847-42d5-8cbe-0f4f296f26cf`, - }}, - }}, - }, - }, { - "section 7.5.2 #2", - ` - ()`, - ifHeader{ - lists: []ifList{{ - resourceTag: `http://example.com/locked/`, - conditions: []Condition{{ - Token: `urn:uuid:150852e2-3847-42d5-8cbe-0f4f296f26cf`, - }}, - }}, - }, - }, { - "section 7.5.2 #3", - ` - ()`, - ifHeader{ - lists: []ifList{{ - resourceTag: `http://example.com/locked/member`, - conditions: []Condition{{ - Token: `urn:uuid:150852e2-3847-42d5-8cbe-0f4f296f26cf`, - }}, - }}, - }, - }, { - "section 9.9.6", - `() - ()`, - ifHeader{ - lists: []ifList{{ - conditions: []Condition{{ - Token: `urn:uuid:fe184f2e-6eec-41d0-c765-01adc56e6bb4`, - }}, - }, { - conditions: []Condition{{ - Token: `urn:uuid:e454f3f3-acdc-452a-56c7-00a5c91e4b77`, - }}, - }}, - }, - }, { - "section 9.10.8", - `()`, - ifHeader{ - lists: []ifList{{ - conditions: []Condition{{ - Token: `urn:uuid:e71d4fae-5dec-22d6-fea5-00a0c91e6be4`, - }}, - }}, - }, - }, { - "section 10.4.6", - `( - ["I am an ETag"]) - (["I am another ETag"])`, - ifHeader{ - lists: []ifList{{ - conditions: []Condition{{ - Token: `urn:uuid:181d4fae-7d8c-11d0-a765-00a0c91e6bf2`, - }, { - ETag: `"I am an ETag"`, - }}, - }, { - conditions: []Condition{{ - ETag: `"I am another ETag"`, - }}, - }}, - }, - }, { - "section 10.4.7", - `(Not - )`, - ifHeader{ - lists: []ifList{{ - conditions: []Condition{{ - Not: true, - Token: `urn:uuid:181d4fae-7d8c-11d0-a765-00a0c91e6bf2`, - }, { - Token: `urn:uuid:58f202ac-22cf-11d1-b12d-002035b29092`, - }}, - }}, - }, - }, { - "section 10.4.8", - `() - (Not )`, - ifHeader{ - lists: []ifList{{ - conditions: []Condition{{ - Token: `urn:uuid:181d4fae-7d8c-11d0-a765-00a0c91e6bf2`, - }}, - }, { - conditions: []Condition{{ - Not: true, - Token: `DAV:no-lock`, - }}, - }}, - }, - }, { - "section 10.4.9", - ` - ( - [W/"A weak ETag"]) (["strong ETag"])`, - ifHeader{ - lists: []ifList{{ - resourceTag: `/resource1`, - conditions: []Condition{{ - Token: `urn:uuid:181d4fae-7d8c-11d0-a765-00a0c91e6bf2`, - }, { - ETag: `W/"A weak ETag"`, - }}, - }, { - resourceTag: `/resource1`, - conditions: []Condition{{ - ETag: `"strong ETag"`, - }}, - }}, - }, - }, { - "section 10.4.10", - ` - ()`, - ifHeader{ - lists: []ifList{{ - resourceTag: `http://www.example.com/specs/`, - conditions: []Condition{{ - Token: `urn:uuid:181d4fae-7d8c-11d0-a765-00a0c91e6bf2`, - }}, - }}, - }, - }, { - "section 10.4.11 #1", - ` (["4217"])`, - ifHeader{ - lists: []ifList{{ - resourceTag: `/specs/rfc2518.doc`, - conditions: []Condition{{ - ETag: `"4217"`, - }}, - }}, - }, - }, { - "section 10.4.11 #2", - ` (Not ["4217"])`, - ifHeader{ - lists: []ifList{{ - resourceTag: `/specs/rfc2518.doc`, - conditions: []Condition{{ - Not: true, - ETag: `"4217"`, - }}, - }}, - }, - }} - - for _, tc := range testCases { - got, ok := parseIfHeader(strings.Replace(tc.input, "\n", "", -1)) - if gotEmpty := reflect.DeepEqual(got, ifHeader{}); gotEmpty == ok { - t.Errorf("%s: should be different: empty header == %t, ok == %t", tc.desc, gotEmpty, ok) - continue - } - if !reflect.DeepEqual(got, tc.want) { - t.Errorf("%s:\ngot %v\nwant %v", tc.desc, got, tc.want) - continue - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/README b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/README deleted file mode 100644 index 89656f48..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/README +++ /dev/null @@ -1,11 +0,0 @@ -This is a fork of the encoding/xml package at ca1d6c4, the last commit before -https://go.googlesource.com/go/+/c0d6d33 "encoding/xml: restore Go 1.4 name -space behavior" made late in the lead-up to the Go 1.5 release. - -The list of encoding/xml changes is at -https://go.googlesource.com/go/+log/master/src/encoding/xml - -This fork is temporary, and I (nigeltao) expect to revert it after Go 1.6 is -released. - -See http://golang.org/issue/11841 diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/atom_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/atom_test.go deleted file mode 100644 index a7128431..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/atom_test.go +++ /dev/null @@ -1,56 +0,0 @@ -// 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 xml - -import "time" - -var atomValue = &Feed{ - XMLName: Name{"http://www.w3.org/2005/Atom", "feed"}, - Title: "Example Feed", - Link: []Link{{Href: "http://example.org/"}}, - Updated: ParseTime("2003-12-13T18:30:02Z"), - Author: Person{Name: "John Doe"}, - Id: "urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6", - - Entry: []Entry{ - { - Title: "Atom-Powered Robots Run Amok", - Link: []Link{{Href: "http://example.org/2003/12/13/atom03"}}, - Id: "urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a", - Updated: ParseTime("2003-12-13T18:30:02Z"), - Summary: NewText("Some text."), - }, - }, -} - -var atomXml = `` + - `` + - `Example Feed` + - `urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6` + - `` + - `John Doe` + - `` + - `Atom-Powered Robots Run Amok` + - `urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a` + - `` + - `2003-12-13T18:30:02Z` + - `` + - `Some text.` + - `` + - `` - -func ParseTime(str string) time.Time { - t, err := time.Parse(time.RFC3339, str) - if err != nil { - panic(err) - } - return t -} - -func NewText(text string) Text { - return Text{ - Body: text, - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/example_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/example_test.go deleted file mode 100644 index becedd58..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/example_test.go +++ /dev/null @@ -1,151 +0,0 @@ -// Copyright 2012 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 xml_test - -import ( - "encoding/xml" - "fmt" - "os" -) - -func ExampleMarshalIndent() { - type Address struct { - City, State string - } - type Person struct { - XMLName xml.Name `xml:"person"` - Id int `xml:"id,attr"` - FirstName string `xml:"name>first"` - LastName string `xml:"name>last"` - Age int `xml:"age"` - Height float32 `xml:"height,omitempty"` - Married bool - Address - Comment string `xml:",comment"` - } - - v := &Person{Id: 13, FirstName: "John", LastName: "Doe", Age: 42} - v.Comment = " Need more details. " - v.Address = Address{"Hanga Roa", "Easter Island"} - - output, err := xml.MarshalIndent(v, " ", " ") - if err != nil { - fmt.Printf("error: %v\n", err) - } - - os.Stdout.Write(output) - // Output: - // - // - // John - // Doe - // - // 42 - // false - // Hanga Roa - // Easter Island - // - // -} - -func ExampleEncoder() { - type Address struct { - City, State string - } - type Person struct { - XMLName xml.Name `xml:"person"` - Id int `xml:"id,attr"` - FirstName string `xml:"name>first"` - LastName string `xml:"name>last"` - Age int `xml:"age"` - Height float32 `xml:"height,omitempty"` - Married bool - Address - Comment string `xml:",comment"` - } - - v := &Person{Id: 13, FirstName: "John", LastName: "Doe", Age: 42} - v.Comment = " Need more details. " - v.Address = Address{"Hanga Roa", "Easter Island"} - - enc := xml.NewEncoder(os.Stdout) - enc.Indent(" ", " ") - if err := enc.Encode(v); err != nil { - fmt.Printf("error: %v\n", err) - } - - // Output: - // - // - // John - // Doe - // - // 42 - // false - // Hanga Roa - // Easter Island - // - // -} - -// This example demonstrates unmarshaling an XML excerpt into a value with -// some preset fields. Note that the Phone field isn't modified and that -// the XML element is ignored. Also, the Groups field is assigned -// considering the element path provided in its tag. -func ExampleUnmarshal() { - type Email struct { - Where string `xml:"where,attr"` - Addr string - } - type Address struct { - City, State string - } - type Result struct { - XMLName xml.Name `xml:"Person"` - Name string `xml:"FullName"` - Phone string - Email []Email - Groups []string `xml:"Group>Value"` - Address - } - v := Result{Name: "none", Phone: "none"} - - data := ` - - Grace R. Emlin - Example Inc. - - gre@example.com - - - gre@work.com - - - Friends - Squash - - Hanga Roa - Easter Island - - ` - err := xml.Unmarshal([]byte(data), &v) - if err != nil { - fmt.Printf("error: %v", err) - return - } - fmt.Printf("XMLName: %#v\n", v.XMLName) - fmt.Printf("Name: %q\n", v.Name) - fmt.Printf("Phone: %q\n", v.Phone) - fmt.Printf("Email: %v\n", v.Email) - fmt.Printf("Groups: %v\n", v.Groups) - fmt.Printf("Address: %v\n", v.Address) - // Output: - // XMLName: xml.Name{Space:"", Local:"Person"} - // Name: "Grace R. Emlin" - // Phone: "none" - // Email: [{home gre@example.com} {work gre@work.com}] - // Groups: [Friends Squash] - // Address: {Hanga Roa Easter Island} -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/marshal.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/marshal.go deleted file mode 100644 index 3c3b6aca..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/marshal.go +++ /dev/null @@ -1,1223 +0,0 @@ -// 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 xml - -import ( - "bufio" - "bytes" - "encoding" - "fmt" - "io" - "reflect" - "strconv" - "strings" -) - -const ( - // A generic XML header suitable for use with the output of Marshal. - // This is not automatically added to any output of this package, - // it is provided as a convenience. - Header = `` + "\n" -) - -// Marshal returns the XML encoding of v. -// -// Marshal handles an array or slice by marshalling each of the elements. -// Marshal handles a pointer by marshalling the value it points at or, if the -// pointer is nil, by writing nothing. Marshal handles an interface value by -// marshalling the value it contains or, if the interface value is nil, by -// writing nothing. Marshal handles all other data by writing one or more XML -// elements containing the data. -// -// The name for the XML elements is taken from, in order of preference: -// - the tag on the XMLName field, if the data is a struct -// - the value of the XMLName field of type xml.Name -// - the tag of the struct field used to obtain the data -// - the name of the struct field used to obtain the data -// - the name of the marshalled type -// -// The XML element for a struct contains marshalled elements for each of the -// exported fields of the struct, with these exceptions: -// - the XMLName field, described above, is omitted. -// - a field with tag "-" is omitted. -// - a field with tag "name,attr" becomes an attribute with -// the given name in the XML element. -// - a field with tag ",attr" becomes an attribute with the -// field name in the XML element. -// - a field with tag ",chardata" is written as character data, -// not as an XML element. -// - a field with tag ",innerxml" is written verbatim, not subject -// to the usual marshalling procedure. -// - a field with tag ",comment" is written as an XML comment, not -// subject to the usual marshalling procedure. It must not contain -// the "--" string within it. -// - a field with a tag including the "omitempty" option is omitted -// if the field value is empty. The empty values are false, 0, any -// nil pointer or interface value, and any array, slice, map, or -// string of length zero. -// - an anonymous struct field is handled as if the fields of its -// value were part of the outer struct. -// -// If a field uses a tag "a>b>c", then the element c will be nested inside -// parent elements a and b. Fields that appear next to each other that name -// the same parent will be enclosed in one XML element. -// -// See MarshalIndent for an example. -// -// Marshal will return an error if asked to marshal a channel, function, or map. -func Marshal(v interface{}) ([]byte, error) { - var b bytes.Buffer - if err := NewEncoder(&b).Encode(v); err != nil { - return nil, err - } - return b.Bytes(), nil -} - -// Marshaler is the interface implemented by objects that can marshal -// themselves into valid XML elements. -// -// MarshalXML encodes the receiver as zero or more XML elements. -// By convention, arrays or slices are typically encoded as a sequence -// of elements, one per entry. -// Using start as the element tag is not required, but doing so -// will enable Unmarshal to match the XML elements to the correct -// struct field. -// One common implementation strategy is to construct a separate -// value with a layout corresponding to the desired XML and then -// to encode it using e.EncodeElement. -// Another common strategy is to use repeated calls to e.EncodeToken -// to generate the XML output one token at a time. -// The sequence of encoded tokens must make up zero or more valid -// XML elements. -type Marshaler interface { - MarshalXML(e *Encoder, start StartElement) error -} - -// MarshalerAttr is the interface implemented by objects that can marshal -// themselves into valid XML attributes. -// -// MarshalXMLAttr returns an XML attribute with the encoded value of the receiver. -// Using name as the attribute name is not required, but doing so -// will enable Unmarshal to match the attribute to the correct -// struct field. -// If MarshalXMLAttr returns the zero attribute Attr{}, no attribute -// will be generated in the output. -// MarshalXMLAttr is used only for struct fields with the -// "attr" option in the field tag. -type MarshalerAttr interface { - MarshalXMLAttr(name Name) (Attr, error) -} - -// MarshalIndent works like Marshal, but each XML element begins on a new -// indented line that starts with prefix and is followed by one or more -// copies of indent according to the nesting depth. -func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) { - var b bytes.Buffer - enc := NewEncoder(&b) - enc.Indent(prefix, indent) - if err := enc.Encode(v); err != nil { - return nil, err - } - return b.Bytes(), nil -} - -// An Encoder writes XML data to an output stream. -type Encoder struct { - p printer -} - -// NewEncoder returns a new encoder that writes to w. -func NewEncoder(w io.Writer) *Encoder { - e := &Encoder{printer{Writer: bufio.NewWriter(w)}} - e.p.encoder = e - return e -} - -// Indent sets the encoder to generate XML in which each element -// begins on a new indented line that starts with prefix and is followed by -// one or more copies of indent according to the nesting depth. -func (enc *Encoder) Indent(prefix, indent string) { - enc.p.prefix = prefix - enc.p.indent = indent -} - -// Encode writes the XML encoding of v to the stream. -// -// See the documentation for Marshal for details about the conversion -// of Go values to XML. -// -// Encode calls Flush before returning. -func (enc *Encoder) Encode(v interface{}) error { - err := enc.p.marshalValue(reflect.ValueOf(v), nil, nil) - if err != nil { - return err - } - return enc.p.Flush() -} - -// EncodeElement writes the XML encoding of v to the stream, -// using start as the outermost tag in the encoding. -// -// See the documentation for Marshal for details about the conversion -// of Go values to XML. -// -// EncodeElement calls Flush before returning. -func (enc *Encoder) EncodeElement(v interface{}, start StartElement) error { - err := enc.p.marshalValue(reflect.ValueOf(v), nil, &start) - if err != nil { - return err - } - return enc.p.Flush() -} - -var ( - begComment = []byte("") - endProcInst = []byte("?>") - endDirective = []byte(">") -) - -// EncodeToken writes the given XML token to the stream. -// It returns an error if StartElement and EndElement tokens are not -// properly matched. -// -// EncodeToken does not call Flush, because usually it is part of a -// larger operation such as Encode or EncodeElement (or a custom -// Marshaler's MarshalXML invoked during those), and those will call -// Flush when finished. Callers that create an Encoder and then invoke -// EncodeToken directly, without using Encode or EncodeElement, need to -// call Flush when finished to ensure that the XML is written to the -// underlying writer. -// -// EncodeToken allows writing a ProcInst with Target set to "xml" only -// as the first token in the stream. -// -// When encoding a StartElement holding an XML namespace prefix -// declaration for a prefix that is not already declared, contained -// elements (including the StartElement itself) will use the declared -// prefix when encoding names with matching namespace URIs. -func (enc *Encoder) EncodeToken(t Token) error { - - p := &enc.p - switch t := t.(type) { - case StartElement: - if err := p.writeStart(&t); err != nil { - return err - } - case EndElement: - if err := p.writeEnd(t.Name); err != nil { - return err - } - case CharData: - escapeText(p, t, false) - case Comment: - if bytes.Contains(t, endComment) { - return fmt.Errorf("xml: EncodeToken of Comment containing --> marker") - } - p.WriteString("") - return p.cachedWriteError() - case ProcInst: - // First token to be encoded which is also a ProcInst with target of xml - // is the xml declaration. The only ProcInst where target of xml is allowed. - if t.Target == "xml" && p.Buffered() != 0 { - return fmt.Errorf("xml: EncodeToken of ProcInst xml target only valid for xml declaration, first token encoded") - } - if !isNameString(t.Target) { - return fmt.Errorf("xml: EncodeToken of ProcInst with invalid Target") - } - if bytes.Contains(t.Inst, endProcInst) { - return fmt.Errorf("xml: EncodeToken of ProcInst containing ?> marker") - } - p.WriteString(" 0 { - p.WriteByte(' ') - p.Write(t.Inst) - } - p.WriteString("?>") - case Directive: - if !isValidDirective(t) { - return fmt.Errorf("xml: EncodeToken of Directive containing wrong < or > markers") - } - p.WriteString("") - default: - return fmt.Errorf("xml: EncodeToken of invalid token type") - - } - return p.cachedWriteError() -} - -// isValidDirective reports whether dir is a valid directive text, -// meaning angle brackets are matched, ignoring comments and strings. -func isValidDirective(dir Directive) bool { - var ( - depth int - inquote uint8 - incomment bool - ) - for i, c := range dir { - switch { - case incomment: - if c == '>' { - if n := 1 + i - len(endComment); n >= 0 && bytes.Equal(dir[n:i+1], endComment) { - incomment = false - } - } - // Just ignore anything in comment - case inquote != 0: - if c == inquote { - inquote = 0 - } - // Just ignore anything within quotes - case c == '\'' || c == '"': - inquote = c - case c == '<': - if i+len(begComment) < len(dir) && bytes.Equal(dir[i:i+len(begComment)], begComment) { - incomment = true - } else { - depth++ - } - case c == '>': - if depth == 0 { - return false - } - depth-- - } - } - return depth == 0 && inquote == 0 && !incomment -} - -// Flush flushes any buffered XML to the underlying writer. -// See the EncodeToken documentation for details about when it is necessary. -func (enc *Encoder) Flush() error { - return enc.p.Flush() -} - -type printer struct { - *bufio.Writer - encoder *Encoder - seq int - indent string - prefix string - depth int - indentedIn bool - putNewline bool - defaultNS string - attrNS map[string]string // map prefix -> name space - attrPrefix map[string]string // map name space -> prefix - prefixes []printerPrefix - tags []Name -} - -// printerPrefix holds a namespace undo record. -// When an element is popped, the prefix record -// is set back to the recorded URL. The empty -// prefix records the URL for the default name space. -// -// The start of an element is recorded with an element -// that has mark=true. -type printerPrefix struct { - prefix string - url string - mark bool -} - -func (p *printer) prefixForNS(url string, isAttr bool) string { - // The "http://www.w3.org/XML/1998/namespace" name space is predefined as "xml" - // and must be referred to that way. - // (The "http://www.w3.org/2000/xmlns/" name space is also predefined as "xmlns", - // but users should not be trying to use that one directly - that's our job.) - if url == xmlURL { - return "xml" - } - if !isAttr && url == p.defaultNS { - // We can use the default name space. - return "" - } - return p.attrPrefix[url] -} - -// defineNS pushes any namespace definition found in the given attribute. -// If ignoreNonEmptyDefault is true, an xmlns="nonempty" -// attribute will be ignored. -func (p *printer) defineNS(attr Attr, ignoreNonEmptyDefault bool) error { - var prefix string - if attr.Name.Local == "xmlns" { - if attr.Name.Space != "" && attr.Name.Space != "xml" && attr.Name.Space != xmlURL { - return fmt.Errorf("xml: cannot redefine xmlns attribute prefix") - } - } else if attr.Name.Space == "xmlns" && attr.Name.Local != "" { - prefix = attr.Name.Local - if attr.Value == "" { - // Technically, an empty XML namespace is allowed for an attribute. - // From http://www.w3.org/TR/xml-names11/#scoping-defaulting: - // - // The attribute value in a namespace declaration for a prefix may be - // empty. This has the effect, within the scope of the declaration, of removing - // any association of the prefix with a namespace name. - // - // However our namespace prefixes here are used only as hints. There's - // no need to respect the removal of a namespace prefix, so we ignore it. - return nil - } - } else { - // Ignore: it's not a namespace definition - return nil - } - if prefix == "" { - if attr.Value == p.defaultNS { - // No need for redefinition. - return nil - } - if attr.Value != "" && ignoreNonEmptyDefault { - // We have an xmlns="..." value but - // it can't define a name space in this context, - // probably because the element has an empty - // name space. In this case, we just ignore - // the name space declaration. - return nil - } - } else if _, ok := p.attrPrefix[attr.Value]; ok { - // There's already a prefix for the given name space, - // so use that. This prevents us from - // having two prefixes for the same name space - // so attrNS and attrPrefix can remain bijective. - return nil - } - p.pushPrefix(prefix, attr.Value) - return nil -} - -// createNSPrefix creates a name space prefix attribute -// to use for the given name space, defining a new prefix -// if necessary. -// If isAttr is true, the prefix is to be created for an attribute -// prefix, which means that the default name space cannot -// be used. -func (p *printer) createNSPrefix(url string, isAttr bool) { - if _, ok := p.attrPrefix[url]; ok { - // We already have a prefix for the given URL. - return - } - switch { - case !isAttr && url == p.defaultNS: - // We can use the default name space. - return - case url == "": - // The only way we can encode names in the empty - // name space is by using the default name space, - // so we must use that. - if p.defaultNS != "" { - // The default namespace is non-empty, so we - // need to set it to empty. - p.pushPrefix("", "") - } - return - case url == xmlURL: - return - } - // TODO If the URL is an existing prefix, we could - // use it as is. That would enable the - // marshaling of elements that had been unmarshaled - // and with a name space prefix that was not found. - // although technically it would be incorrect. - - // Pick a name. We try to use the final element of the path - // but fall back to _. - prefix := strings.TrimRight(url, "/") - if i := strings.LastIndex(prefix, "/"); i >= 0 { - prefix = prefix[i+1:] - } - if prefix == "" || !isName([]byte(prefix)) || strings.Contains(prefix, ":") { - prefix = "_" - } - if strings.HasPrefix(prefix, "xml") { - // xmlanything is reserved. - prefix = "_" + prefix - } - if p.attrNS[prefix] != "" { - // Name is taken. Find a better one. - for p.seq++; ; p.seq++ { - if id := prefix + "_" + strconv.Itoa(p.seq); p.attrNS[id] == "" { - prefix = id - break - } - } - } - - p.pushPrefix(prefix, url) -} - -// writeNamespaces writes xmlns attributes for all the -// namespace prefixes that have been defined in -// the current element. -func (p *printer) writeNamespaces() { - for i := len(p.prefixes) - 1; i >= 0; i-- { - prefix := p.prefixes[i] - if prefix.mark { - return - } - p.WriteString(" ") - if prefix.prefix == "" { - // Default name space. - p.WriteString(`xmlns="`) - } else { - p.WriteString("xmlns:") - p.WriteString(prefix.prefix) - p.WriteString(`="`) - } - EscapeText(p, []byte(p.nsForPrefix(prefix.prefix))) - p.WriteString(`"`) - } -} - -// pushPrefix pushes a new prefix on the prefix stack -// without checking to see if it is already defined. -func (p *printer) pushPrefix(prefix, url string) { - p.prefixes = append(p.prefixes, printerPrefix{ - prefix: prefix, - url: p.nsForPrefix(prefix), - }) - p.setAttrPrefix(prefix, url) -} - -// nsForPrefix returns the name space for the given -// prefix. Note that this is not valid for the -// empty attribute prefix, which always has an empty -// name space. -func (p *printer) nsForPrefix(prefix string) string { - if prefix == "" { - return p.defaultNS - } - return p.attrNS[prefix] -} - -// markPrefix marks the start of an element on the prefix -// stack. -func (p *printer) markPrefix() { - p.prefixes = append(p.prefixes, printerPrefix{ - mark: true, - }) -} - -// popPrefix pops all defined prefixes for the current -// element. -func (p *printer) popPrefix() { - for len(p.prefixes) > 0 { - prefix := p.prefixes[len(p.prefixes)-1] - p.prefixes = p.prefixes[:len(p.prefixes)-1] - if prefix.mark { - break - } - p.setAttrPrefix(prefix.prefix, prefix.url) - } -} - -// setAttrPrefix sets an attribute name space prefix. -// If url is empty, the attribute is removed. -// If prefix is empty, the default name space is set. -func (p *printer) setAttrPrefix(prefix, url string) { - if prefix == "" { - p.defaultNS = url - return - } - if url == "" { - delete(p.attrPrefix, p.attrNS[prefix]) - delete(p.attrNS, prefix) - return - } - if p.attrPrefix == nil { - // Need to define a new name space. - p.attrPrefix = make(map[string]string) - p.attrNS = make(map[string]string) - } - // Remove any old prefix value. This is OK because we maintain a - // strict one-to-one mapping between prefix and URL (see - // defineNS) - delete(p.attrPrefix, p.attrNS[prefix]) - p.attrPrefix[url] = prefix - p.attrNS[prefix] = url -} - -var ( - marshalerType = reflect.TypeOf((*Marshaler)(nil)).Elem() - marshalerAttrType = reflect.TypeOf((*MarshalerAttr)(nil)).Elem() - textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem() -) - -// marshalValue writes one or more XML elements representing val. -// If val was obtained from a struct field, finfo must have its details. -func (p *printer) marshalValue(val reflect.Value, finfo *fieldInfo, startTemplate *StartElement) error { - if startTemplate != nil && startTemplate.Name.Local == "" { - return fmt.Errorf("xml: EncodeElement of StartElement with missing name") - } - - if !val.IsValid() { - return nil - } - if finfo != nil && finfo.flags&fOmitEmpty != 0 && isEmptyValue(val) { - return nil - } - - // Drill into interfaces and pointers. - // This can turn into an infinite loop given a cyclic chain, - // but it matches the Go 1 behavior. - for val.Kind() == reflect.Interface || val.Kind() == reflect.Ptr { - if val.IsNil() { - return nil - } - val = val.Elem() - } - - kind := val.Kind() - typ := val.Type() - - // Check for marshaler. - if val.CanInterface() && typ.Implements(marshalerType) { - return p.marshalInterface(val.Interface().(Marshaler), p.defaultStart(typ, finfo, startTemplate)) - } - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(marshalerType) { - return p.marshalInterface(pv.Interface().(Marshaler), p.defaultStart(pv.Type(), finfo, startTemplate)) - } - } - - // Check for text marshaler. - if val.CanInterface() && typ.Implements(textMarshalerType) { - return p.marshalTextInterface(val.Interface().(encoding.TextMarshaler), p.defaultStart(typ, finfo, startTemplate)) - } - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(textMarshalerType) { - return p.marshalTextInterface(pv.Interface().(encoding.TextMarshaler), p.defaultStart(pv.Type(), finfo, startTemplate)) - } - } - - // Slices and arrays iterate over the elements. They do not have an enclosing tag. - if (kind == reflect.Slice || kind == reflect.Array) && typ.Elem().Kind() != reflect.Uint8 { - for i, n := 0, val.Len(); i < n; i++ { - if err := p.marshalValue(val.Index(i), finfo, startTemplate); err != nil { - return err - } - } - return nil - } - - tinfo, err := getTypeInfo(typ) - if err != nil { - return err - } - - // Create start element. - // Precedence for the XML element name is: - // 0. startTemplate - // 1. XMLName field in underlying struct; - // 2. field name/tag in the struct field; and - // 3. type name - var start StartElement - - // explicitNS records whether the element's name space has been - // explicitly set (for example an XMLName field). - explicitNS := false - - if startTemplate != nil { - start.Name = startTemplate.Name - explicitNS = true - start.Attr = append(start.Attr, startTemplate.Attr...) - } else if tinfo.xmlname != nil { - xmlname := tinfo.xmlname - if xmlname.name != "" { - start.Name.Space, start.Name.Local = xmlname.xmlns, xmlname.name - } else if v, ok := xmlname.value(val).Interface().(Name); ok && v.Local != "" { - start.Name = v - } - explicitNS = true - } - if start.Name.Local == "" && finfo != nil { - start.Name.Local = finfo.name - if finfo.xmlns != "" { - start.Name.Space = finfo.xmlns - explicitNS = true - } - } - if start.Name.Local == "" { - name := typ.Name() - if name == "" { - return &UnsupportedTypeError{typ} - } - start.Name.Local = name - } - - // defaultNS records the default name space as set by a xmlns="..." - // attribute. We don't set p.defaultNS because we want to let - // the attribute writing code (in p.defineNS) be solely responsible - // for maintaining that. - defaultNS := p.defaultNS - - // Attributes - for i := range tinfo.fields { - finfo := &tinfo.fields[i] - if finfo.flags&fAttr == 0 { - continue - } - attr, err := p.fieldAttr(finfo, val) - if err != nil { - return err - } - if attr.Name.Local == "" { - continue - } - start.Attr = append(start.Attr, attr) - if attr.Name.Space == "" && attr.Name.Local == "xmlns" { - defaultNS = attr.Value - } - } - if !explicitNS { - // Historic behavior: elements use the default name space - // they are contained in by default. - start.Name.Space = defaultNS - } - // Historic behaviour: an element that's in a namespace sets - // the default namespace for all elements contained within it. - start.setDefaultNamespace() - - if err := p.writeStart(&start); err != nil { - return err - } - - if val.Kind() == reflect.Struct { - err = p.marshalStruct(tinfo, val) - } else { - s, b, err1 := p.marshalSimple(typ, val) - if err1 != nil { - err = err1 - } else if b != nil { - EscapeText(p, b) - } else { - p.EscapeString(s) - } - } - if err != nil { - return err - } - - if err := p.writeEnd(start.Name); err != nil { - return err - } - - return p.cachedWriteError() -} - -// fieldAttr returns the attribute of the given field. -// If the returned attribute has an empty Name.Local, -// it should not be used. -// The given value holds the value containing the field. -func (p *printer) fieldAttr(finfo *fieldInfo, val reflect.Value) (Attr, error) { - fv := finfo.value(val) - name := Name{Space: finfo.xmlns, Local: finfo.name} - if finfo.flags&fOmitEmpty != 0 && isEmptyValue(fv) { - return Attr{}, nil - } - if fv.Kind() == reflect.Interface && fv.IsNil() { - return Attr{}, nil - } - if fv.CanInterface() && fv.Type().Implements(marshalerAttrType) { - attr, err := fv.Interface().(MarshalerAttr).MarshalXMLAttr(name) - return attr, err - } - if fv.CanAddr() { - pv := fv.Addr() - if pv.CanInterface() && pv.Type().Implements(marshalerAttrType) { - attr, err := pv.Interface().(MarshalerAttr).MarshalXMLAttr(name) - return attr, err - } - } - if fv.CanInterface() && fv.Type().Implements(textMarshalerType) { - text, err := fv.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return Attr{}, err - } - return Attr{name, string(text)}, nil - } - if fv.CanAddr() { - pv := fv.Addr() - if pv.CanInterface() && pv.Type().Implements(textMarshalerType) { - text, err := pv.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return Attr{}, err - } - return Attr{name, string(text)}, nil - } - } - // Dereference or skip nil pointer, interface values. - switch fv.Kind() { - case reflect.Ptr, reflect.Interface: - if fv.IsNil() { - return Attr{}, nil - } - fv = fv.Elem() - } - s, b, err := p.marshalSimple(fv.Type(), fv) - if err != nil { - return Attr{}, err - } - if b != nil { - s = string(b) - } - return Attr{name, s}, nil -} - -// defaultStart returns the default start element to use, -// given the reflect type, field info, and start template. -func (p *printer) defaultStart(typ reflect.Type, finfo *fieldInfo, startTemplate *StartElement) StartElement { - var start StartElement - // Precedence for the XML element name is as above, - // except that we do not look inside structs for the first field. - if startTemplate != nil { - start.Name = startTemplate.Name - start.Attr = append(start.Attr, startTemplate.Attr...) - } else if finfo != nil && finfo.name != "" { - start.Name.Local = finfo.name - start.Name.Space = finfo.xmlns - } else if typ.Name() != "" { - start.Name.Local = typ.Name() - } else { - // Must be a pointer to a named type, - // since it has the Marshaler methods. - start.Name.Local = typ.Elem().Name() - } - // Historic behaviour: elements use the name space of - // the element they are contained in by default. - if start.Name.Space == "" { - start.Name.Space = p.defaultNS - } - start.setDefaultNamespace() - return start -} - -// marshalInterface marshals a Marshaler interface value. -func (p *printer) marshalInterface(val Marshaler, start StartElement) error { - // Push a marker onto the tag stack so that MarshalXML - // cannot close the XML tags that it did not open. - p.tags = append(p.tags, Name{}) - n := len(p.tags) - - err := val.MarshalXML(p.encoder, start) - if err != nil { - return err - } - - // Make sure MarshalXML closed all its tags. p.tags[n-1] is the mark. - if len(p.tags) > n { - return fmt.Errorf("xml: %s.MarshalXML wrote invalid XML: <%s> not closed", receiverType(val), p.tags[len(p.tags)-1].Local) - } - p.tags = p.tags[:n-1] - return nil -} - -// marshalTextInterface marshals a TextMarshaler interface value. -func (p *printer) marshalTextInterface(val encoding.TextMarshaler, start StartElement) error { - if err := p.writeStart(&start); err != nil { - return err - } - text, err := val.MarshalText() - if err != nil { - return err - } - EscapeText(p, text) - return p.writeEnd(start.Name) -} - -// writeStart writes the given start element. -func (p *printer) writeStart(start *StartElement) error { - if start.Name.Local == "" { - return fmt.Errorf("xml: start tag with no name") - } - - p.tags = append(p.tags, start.Name) - p.markPrefix() - // Define any name spaces explicitly declared in the attributes. - // We do this as a separate pass so that explicitly declared prefixes - // will take precedence over implicitly declared prefixes - // regardless of the order of the attributes. - ignoreNonEmptyDefault := start.Name.Space == "" - for _, attr := range start.Attr { - if err := p.defineNS(attr, ignoreNonEmptyDefault); err != nil { - return err - } - } - // Define any new name spaces implied by the attributes. - for _, attr := range start.Attr { - name := attr.Name - // From http://www.w3.org/TR/xml-names11/#defaulting - // "Default namespace declarations do not apply directly - // to attribute names; the interpretation of unprefixed - // attributes is determined by the element on which they - // appear." - // This means we don't need to create a new namespace - // when an attribute name space is empty. - if name.Space != "" && !name.isNamespace() { - p.createNSPrefix(name.Space, true) - } - } - p.createNSPrefix(start.Name.Space, false) - - p.writeIndent(1) - p.WriteByte('<') - p.writeName(start.Name, false) - p.writeNamespaces() - for _, attr := range start.Attr { - name := attr.Name - if name.Local == "" || name.isNamespace() { - // Namespaces have already been written by writeNamespaces above. - continue - } - p.WriteByte(' ') - p.writeName(name, true) - p.WriteString(`="`) - p.EscapeString(attr.Value) - p.WriteByte('"') - } - p.WriteByte('>') - return nil -} - -// writeName writes the given name. It assumes -// that p.createNSPrefix(name) has already been called. -func (p *printer) writeName(name Name, isAttr bool) { - if prefix := p.prefixForNS(name.Space, isAttr); prefix != "" { - p.WriteString(prefix) - p.WriteByte(':') - } - p.WriteString(name.Local) -} - -func (p *printer) writeEnd(name Name) error { - if name.Local == "" { - return fmt.Errorf("xml: end tag with no name") - } - if len(p.tags) == 0 || p.tags[len(p.tags)-1].Local == "" { - return fmt.Errorf("xml: end tag without start tag", name.Local) - } - if top := p.tags[len(p.tags)-1]; top != name { - if top.Local != name.Local { - return fmt.Errorf("xml: end tag does not match start tag <%s>", name.Local, top.Local) - } - return fmt.Errorf("xml: end tag in namespace %s does not match start tag <%s> in namespace %s", name.Local, name.Space, top.Local, top.Space) - } - p.tags = p.tags[:len(p.tags)-1] - - p.writeIndent(-1) - p.WriteByte('<') - p.WriteByte('/') - p.writeName(name, false) - p.WriteByte('>') - p.popPrefix() - return nil -} - -func (p *printer) marshalSimple(typ reflect.Type, val reflect.Value) (string, []byte, error) { - switch val.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return strconv.FormatInt(val.Int(), 10), nil, nil - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return strconv.FormatUint(val.Uint(), 10), nil, nil - case reflect.Float32, reflect.Float64: - return strconv.FormatFloat(val.Float(), 'g', -1, val.Type().Bits()), nil, nil - case reflect.String: - return val.String(), nil, nil - case reflect.Bool: - return strconv.FormatBool(val.Bool()), nil, nil - case reflect.Array: - if typ.Elem().Kind() != reflect.Uint8 { - break - } - // [...]byte - var bytes []byte - if val.CanAddr() { - bytes = val.Slice(0, val.Len()).Bytes() - } else { - bytes = make([]byte, val.Len()) - reflect.Copy(reflect.ValueOf(bytes), val) - } - return "", bytes, nil - case reflect.Slice: - if typ.Elem().Kind() != reflect.Uint8 { - break - } - // []byte - return "", val.Bytes(), nil - } - return "", nil, &UnsupportedTypeError{typ} -} - -var ddBytes = []byte("--") - -func (p *printer) marshalStruct(tinfo *typeInfo, val reflect.Value) error { - s := parentStack{p: p} - for i := range tinfo.fields { - finfo := &tinfo.fields[i] - if finfo.flags&fAttr != 0 { - continue - } - vf := finfo.value(val) - - // Dereference or skip nil pointer, interface values. - switch vf.Kind() { - case reflect.Ptr, reflect.Interface: - if !vf.IsNil() { - vf = vf.Elem() - } - } - - switch finfo.flags & fMode { - case fCharData: - if err := s.setParents(&noField, reflect.Value{}); err != nil { - return err - } - if vf.CanInterface() && vf.Type().Implements(textMarshalerType) { - data, err := vf.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return err - } - Escape(p, data) - continue - } - if vf.CanAddr() { - pv := vf.Addr() - if pv.CanInterface() && pv.Type().Implements(textMarshalerType) { - data, err := pv.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return err - } - Escape(p, data) - continue - } - } - var scratch [64]byte - switch vf.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - Escape(p, strconv.AppendInt(scratch[:0], vf.Int(), 10)) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - Escape(p, strconv.AppendUint(scratch[:0], vf.Uint(), 10)) - case reflect.Float32, reflect.Float64: - Escape(p, strconv.AppendFloat(scratch[:0], vf.Float(), 'g', -1, vf.Type().Bits())) - case reflect.Bool: - Escape(p, strconv.AppendBool(scratch[:0], vf.Bool())) - case reflect.String: - if err := EscapeText(p, []byte(vf.String())); err != nil { - return err - } - case reflect.Slice: - if elem, ok := vf.Interface().([]byte); ok { - if err := EscapeText(p, elem); err != nil { - return err - } - } - } - continue - - case fComment: - if err := s.setParents(&noField, reflect.Value{}); err != nil { - return err - } - k := vf.Kind() - if !(k == reflect.String || k == reflect.Slice && vf.Type().Elem().Kind() == reflect.Uint8) { - return fmt.Errorf("xml: bad type for comment field of %s", val.Type()) - } - if vf.Len() == 0 { - continue - } - p.writeIndent(0) - p.WriteString("" is invalid grammar. Make it "- -->" - p.WriteByte(' ') - } - p.WriteString("-->") - continue - - case fInnerXml: - iface := vf.Interface() - switch raw := iface.(type) { - case []byte: - p.Write(raw) - continue - case string: - p.WriteString(raw) - continue - } - - case fElement, fElement | fAny: - if err := s.setParents(finfo, vf); err != nil { - return err - } - } - if err := p.marshalValue(vf, finfo, nil); err != nil { - return err - } - } - if err := s.setParents(&noField, reflect.Value{}); err != nil { - return err - } - return p.cachedWriteError() -} - -var noField fieldInfo - -// return the bufio Writer's cached write error -func (p *printer) cachedWriteError() error { - _, err := p.Write(nil) - return err -} - -func (p *printer) writeIndent(depthDelta int) { - if len(p.prefix) == 0 && len(p.indent) == 0 { - return - } - if depthDelta < 0 { - p.depth-- - if p.indentedIn { - p.indentedIn = false - return - } - p.indentedIn = false - } - if p.putNewline { - p.WriteByte('\n') - } else { - p.putNewline = true - } - if len(p.prefix) > 0 { - p.WriteString(p.prefix) - } - if len(p.indent) > 0 { - for i := 0; i < p.depth; i++ { - p.WriteString(p.indent) - } - } - if depthDelta > 0 { - p.depth++ - p.indentedIn = true - } -} - -type parentStack struct { - p *printer - xmlns string - parents []string -} - -// setParents sets the stack of current parents to those found in finfo. -// It only writes the start elements if vf holds a non-nil value. -// If finfo is &noField, it pops all elements. -func (s *parentStack) setParents(finfo *fieldInfo, vf reflect.Value) error { - xmlns := s.p.defaultNS - if finfo.xmlns != "" { - xmlns = finfo.xmlns - } - commonParents := 0 - if xmlns == s.xmlns { - for ; commonParents < len(finfo.parents) && commonParents < len(s.parents); commonParents++ { - if finfo.parents[commonParents] != s.parents[commonParents] { - break - } - } - } - // Pop off any parents that aren't in common with the previous field. - for i := len(s.parents) - 1; i >= commonParents; i-- { - if err := s.p.writeEnd(Name{ - Space: s.xmlns, - Local: s.parents[i], - }); err != nil { - return err - } - } - s.parents = finfo.parents - s.xmlns = xmlns - if commonParents >= len(s.parents) { - // No new elements to push. - return nil - } - if (vf.Kind() == reflect.Ptr || vf.Kind() == reflect.Interface) && vf.IsNil() { - // The element is nil, so no need for the start elements. - s.parents = s.parents[:commonParents] - return nil - } - // Push any new parents required. - for _, name := range s.parents[commonParents:] { - start := &StartElement{ - Name: Name{ - Space: s.xmlns, - Local: name, - }, - } - // Set the default name space for parent elements - // to match what we do with other elements. - if s.xmlns != s.p.defaultNS { - start.setDefaultNamespace() - } - if err := s.p.writeStart(start); err != nil { - return err - } - } - return nil -} - -// A MarshalXMLError is returned when Marshal encounters a type -// that cannot be converted into XML. -type UnsupportedTypeError struct { - Type reflect.Type -} - -func (e *UnsupportedTypeError) Error() string { - return "xml: unsupported type: " + e.Type.String() -} - -func isEmptyValue(v reflect.Value) bool { - switch v.Kind() { - case reflect.Array, reflect.Map, reflect.Slice, reflect.String: - return v.Len() == 0 - case reflect.Bool: - return !v.Bool() - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return v.Int() == 0 - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return v.Uint() == 0 - case reflect.Float32, reflect.Float64: - return v.Float() == 0 - case reflect.Interface, reflect.Ptr: - return v.IsNil() - } - return false -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/marshal_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/marshal_test.go deleted file mode 100644 index 5dc78e74..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/marshal_test.go +++ /dev/null @@ -1,1939 +0,0 @@ -// 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 xml - -import ( - "bytes" - "errors" - "fmt" - "io" - "reflect" - "strconv" - "strings" - "sync" - "testing" - "time" -) - -type DriveType int - -const ( - HyperDrive DriveType = iota - ImprobabilityDrive -) - -type Passenger struct { - Name []string `xml:"name"` - Weight float32 `xml:"weight"` -} - -type Ship struct { - XMLName struct{} `xml:"spaceship"` - - Name string `xml:"name,attr"` - Pilot string `xml:"pilot,attr"` - Drive DriveType `xml:"drive"` - Age uint `xml:"age"` - Passenger []*Passenger `xml:"passenger"` - secret string -} - -type NamedType string - -type Port struct { - XMLName struct{} `xml:"port"` - Type string `xml:"type,attr,omitempty"` - Comment string `xml:",comment"` - Number string `xml:",chardata"` -} - -type Domain struct { - XMLName struct{} `xml:"domain"` - Country string `xml:",attr,omitempty"` - Name []byte `xml:",chardata"` - Comment []byte `xml:",comment"` -} - -type Book struct { - XMLName struct{} `xml:"book"` - Title string `xml:",chardata"` -} - -type Event struct { - XMLName struct{} `xml:"event"` - Year int `xml:",chardata"` -} - -type Movie struct { - XMLName struct{} `xml:"movie"` - Length uint `xml:",chardata"` -} - -type Pi struct { - XMLName struct{} `xml:"pi"` - Approximation float32 `xml:",chardata"` -} - -type Universe struct { - XMLName struct{} `xml:"universe"` - Visible float64 `xml:",chardata"` -} - -type Particle struct { - XMLName struct{} `xml:"particle"` - HasMass bool `xml:",chardata"` -} - -type Departure struct { - XMLName struct{} `xml:"departure"` - When time.Time `xml:",chardata"` -} - -type SecretAgent struct { - XMLName struct{} `xml:"agent"` - Handle string `xml:"handle,attr"` - Identity string - Obfuscate string `xml:",innerxml"` -} - -type NestedItems struct { - XMLName struct{} `xml:"result"` - Items []string `xml:">item"` - Item1 []string `xml:"Items>item1"` -} - -type NestedOrder struct { - XMLName struct{} `xml:"result"` - Field1 string `xml:"parent>c"` - Field2 string `xml:"parent>b"` - Field3 string `xml:"parent>a"` -} - -type MixedNested struct { - XMLName struct{} `xml:"result"` - A string `xml:"parent1>a"` - B string `xml:"b"` - C string `xml:"parent1>parent2>c"` - D string `xml:"parent1>d"` -} - -type NilTest struct { - A interface{} `xml:"parent1>parent2>a"` - B interface{} `xml:"parent1>b"` - C interface{} `xml:"parent1>parent2>c"` -} - -type Service struct { - XMLName struct{} `xml:"service"` - Domain *Domain `xml:"host>domain"` - Port *Port `xml:"host>port"` - Extra1 interface{} - Extra2 interface{} `xml:"host>extra2"` -} - -var nilStruct *Ship - -type EmbedA struct { - EmbedC - EmbedB EmbedB - FieldA string -} - -type EmbedB struct { - FieldB string - *EmbedC -} - -type EmbedC struct { - FieldA1 string `xml:"FieldA>A1"` - FieldA2 string `xml:"FieldA>A2"` - FieldB string - FieldC string -} - -type NameCasing struct { - XMLName struct{} `xml:"casing"` - Xy string - XY string - XyA string `xml:"Xy,attr"` - XYA string `xml:"XY,attr"` -} - -type NamePrecedence struct { - XMLName Name `xml:"Parent"` - FromTag XMLNameWithoutTag `xml:"InTag"` - FromNameVal XMLNameWithoutTag - FromNameTag XMLNameWithTag - InFieldName string -} - -type XMLNameWithTag struct { - XMLName Name `xml:"InXMLNameTag"` - Value string `xml:",chardata"` -} - -type XMLNameWithNSTag struct { - XMLName Name `xml:"ns InXMLNameWithNSTag"` - Value string `xml:",chardata"` -} - -type XMLNameWithoutTag struct { - XMLName Name - Value string `xml:",chardata"` -} - -type NameInField struct { - Foo Name `xml:"ns foo"` -} - -type AttrTest struct { - Int int `xml:",attr"` - Named int `xml:"int,attr"` - Float float64 `xml:",attr"` - Uint8 uint8 `xml:",attr"` - Bool bool `xml:",attr"` - Str string `xml:",attr"` - Bytes []byte `xml:",attr"` -} - -type OmitAttrTest struct { - Int int `xml:",attr,omitempty"` - Named int `xml:"int,attr,omitempty"` - Float float64 `xml:",attr,omitempty"` - Uint8 uint8 `xml:",attr,omitempty"` - Bool bool `xml:",attr,omitempty"` - Str string `xml:",attr,omitempty"` - Bytes []byte `xml:",attr,omitempty"` -} - -type OmitFieldTest struct { - Int int `xml:",omitempty"` - Named int `xml:"int,omitempty"` - Float float64 `xml:",omitempty"` - Uint8 uint8 `xml:",omitempty"` - Bool bool `xml:",omitempty"` - Str string `xml:",omitempty"` - Bytes []byte `xml:",omitempty"` - Ptr *PresenceTest `xml:",omitempty"` -} - -type AnyTest struct { - XMLName struct{} `xml:"a"` - Nested string `xml:"nested>value"` - AnyField AnyHolder `xml:",any"` -} - -type AnyOmitTest struct { - XMLName struct{} `xml:"a"` - Nested string `xml:"nested>value"` - AnyField *AnyHolder `xml:",any,omitempty"` -} - -type AnySliceTest struct { - XMLName struct{} `xml:"a"` - Nested string `xml:"nested>value"` - AnyField []AnyHolder `xml:",any"` -} - -type AnyHolder struct { - XMLName Name - XML string `xml:",innerxml"` -} - -type RecurseA struct { - A string - B *RecurseB -} - -type RecurseB struct { - A *RecurseA - B string -} - -type PresenceTest struct { - Exists *struct{} -} - -type IgnoreTest struct { - PublicSecret string `xml:"-"` -} - -type MyBytes []byte - -type Data struct { - Bytes []byte - Attr []byte `xml:",attr"` - Custom MyBytes -} - -type Plain struct { - V interface{} -} - -type MyInt int - -type EmbedInt struct { - MyInt -} - -type Strings struct { - X []string `xml:"A>B,omitempty"` -} - -type PointerFieldsTest struct { - XMLName Name `xml:"dummy"` - Name *string `xml:"name,attr"` - Age *uint `xml:"age,attr"` - Empty *string `xml:"empty,attr"` - Contents *string `xml:",chardata"` -} - -type ChardataEmptyTest struct { - XMLName Name `xml:"test"` - Contents *string `xml:",chardata"` -} - -type MyMarshalerTest struct { -} - -var _ Marshaler = (*MyMarshalerTest)(nil) - -func (m *MyMarshalerTest) MarshalXML(e *Encoder, start StartElement) error { - e.EncodeToken(start) - e.EncodeToken(CharData([]byte("hello world"))) - e.EncodeToken(EndElement{start.Name}) - return nil -} - -type MyMarshalerAttrTest struct{} - -var _ MarshalerAttr = (*MyMarshalerAttrTest)(nil) - -func (m *MyMarshalerAttrTest) MarshalXMLAttr(name Name) (Attr, error) { - return Attr{name, "hello world"}, nil -} - -type MyMarshalerValueAttrTest struct{} - -var _ MarshalerAttr = MyMarshalerValueAttrTest{} - -func (m MyMarshalerValueAttrTest) MarshalXMLAttr(name Name) (Attr, error) { - return Attr{name, "hello world"}, nil -} - -type MarshalerStruct struct { - Foo MyMarshalerAttrTest `xml:",attr"` -} - -type MarshalerValueStruct struct { - Foo MyMarshalerValueAttrTest `xml:",attr"` -} - -type InnerStruct struct { - XMLName Name `xml:"testns outer"` -} - -type OuterStruct struct { - InnerStruct - IntAttr int `xml:"int,attr"` -} - -type OuterNamedStruct struct { - InnerStruct - XMLName Name `xml:"outerns test"` - IntAttr int `xml:"int,attr"` -} - -type OuterNamedOrderedStruct struct { - XMLName Name `xml:"outerns test"` - InnerStruct - IntAttr int `xml:"int,attr"` -} - -type OuterOuterStruct struct { - OuterStruct -} - -type NestedAndChardata struct { - AB []string `xml:"A>B"` - Chardata string `xml:",chardata"` -} - -type NestedAndComment struct { - AB []string `xml:"A>B"` - Comment string `xml:",comment"` -} - -type XMLNSFieldStruct struct { - Ns string `xml:"xmlns,attr"` - Body string -} - -type NamedXMLNSFieldStruct struct { - XMLName struct{} `xml:"testns test"` - Ns string `xml:"xmlns,attr"` - Body string -} - -type XMLNSFieldStructWithOmitEmpty struct { - Ns string `xml:"xmlns,attr,omitempty"` - Body string -} - -type NamedXMLNSFieldStructWithEmptyNamespace struct { - XMLName struct{} `xml:"test"` - Ns string `xml:"xmlns,attr"` - Body string -} - -type RecursiveXMLNSFieldStruct struct { - Ns string `xml:"xmlns,attr"` - Body *RecursiveXMLNSFieldStruct `xml:",omitempty"` - Text string `xml:",omitempty"` -} - -func ifaceptr(x interface{}) interface{} { - return &x -} - -var ( - nameAttr = "Sarah" - ageAttr = uint(12) - contentsAttr = "lorem ipsum" -) - -// Unless explicitly stated as such (or *Plain), all of the -// tests below are two-way tests. When introducing new tests, -// please try to make them two-way as well to ensure that -// marshalling and unmarshalling are as symmetrical as feasible. -var marshalTests = []struct { - Value interface{} - ExpectXML string - MarshalOnly bool - UnmarshalOnly bool -}{ - // Test nil marshals to nothing - {Value: nil, ExpectXML: ``, MarshalOnly: true}, - {Value: nilStruct, ExpectXML: ``, MarshalOnly: true}, - - // Test value types - {Value: &Plain{true}, ExpectXML: `true`}, - {Value: &Plain{false}, ExpectXML: `false`}, - {Value: &Plain{int(42)}, ExpectXML: `42`}, - {Value: &Plain{int8(42)}, ExpectXML: `42`}, - {Value: &Plain{int16(42)}, ExpectXML: `42`}, - {Value: &Plain{int32(42)}, ExpectXML: `42`}, - {Value: &Plain{uint(42)}, ExpectXML: `42`}, - {Value: &Plain{uint8(42)}, ExpectXML: `42`}, - {Value: &Plain{uint16(42)}, ExpectXML: `42`}, - {Value: &Plain{uint32(42)}, ExpectXML: `42`}, - {Value: &Plain{float32(1.25)}, ExpectXML: `1.25`}, - {Value: &Plain{float64(1.25)}, ExpectXML: `1.25`}, - {Value: &Plain{uintptr(0xFFDD)}, ExpectXML: `65501`}, - {Value: &Plain{"gopher"}, ExpectXML: `gopher`}, - {Value: &Plain{[]byte("gopher")}, ExpectXML: `gopher`}, - {Value: &Plain{""}, ExpectXML: `</>`}, - {Value: &Plain{[]byte("")}, ExpectXML: `</>`}, - {Value: &Plain{[3]byte{'<', '/', '>'}}, ExpectXML: `</>`}, - {Value: &Plain{NamedType("potato")}, ExpectXML: `potato`}, - {Value: &Plain{[]int{1, 2, 3}}, ExpectXML: `123`}, - {Value: &Plain{[3]int{1, 2, 3}}, ExpectXML: `123`}, - {Value: ifaceptr(true), MarshalOnly: true, ExpectXML: `true`}, - - // Test time. - { - Value: &Plain{time.Unix(1e9, 123456789).UTC()}, - ExpectXML: `2001-09-09T01:46:40.123456789Z`, - }, - - // A pointer to struct{} may be used to test for an element's presence. - { - Value: &PresenceTest{new(struct{})}, - ExpectXML: ``, - }, - { - Value: &PresenceTest{}, - ExpectXML: ``, - }, - - // A pointer to struct{} may be used to test for an element's presence. - { - Value: &PresenceTest{new(struct{})}, - ExpectXML: ``, - }, - { - Value: &PresenceTest{}, - ExpectXML: ``, - }, - - // A []byte field is only nil if the element was not found. - { - Value: &Data{}, - ExpectXML: ``, - UnmarshalOnly: true, - }, - { - Value: &Data{Bytes: []byte{}, Custom: MyBytes{}, Attr: []byte{}}, - ExpectXML: ``, - UnmarshalOnly: true, - }, - - // Check that []byte works, including named []byte types. - { - Value: &Data{Bytes: []byte("ab"), Custom: MyBytes("cd"), Attr: []byte{'v'}}, - ExpectXML: `abcd`, - }, - - // Test innerxml - { - Value: &SecretAgent{ - Handle: "007", - Identity: "James Bond", - Obfuscate: "", - }, - ExpectXML: `James Bond`, - MarshalOnly: true, - }, - { - Value: &SecretAgent{ - Handle: "007", - Identity: "James Bond", - Obfuscate: "James Bond", - }, - ExpectXML: `James Bond`, - UnmarshalOnly: true, - }, - - // Test structs - {Value: &Port{Type: "ssl", Number: "443"}, ExpectXML: `443`}, - {Value: &Port{Number: "443"}, ExpectXML: `443`}, - {Value: &Port{Type: ""}, ExpectXML: ``}, - {Value: &Port{Number: "443", Comment: "https"}, ExpectXML: `443`}, - {Value: &Port{Number: "443", Comment: "add space-"}, ExpectXML: `443`, MarshalOnly: true}, - {Value: &Domain{Name: []byte("google.com&friends")}, ExpectXML: `google.com&friends`}, - {Value: &Domain{Name: []byte("google.com"), Comment: []byte(" &friends ")}, ExpectXML: `google.com`}, - {Value: &Book{Title: "Pride & Prejudice"}, ExpectXML: `Pride & Prejudice`}, - {Value: &Event{Year: -3114}, ExpectXML: `-3114`}, - {Value: &Movie{Length: 13440}, ExpectXML: `13440`}, - {Value: &Pi{Approximation: 3.14159265}, ExpectXML: `3.1415927`}, - {Value: &Universe{Visible: 9.3e13}, ExpectXML: `9.3e+13`}, - {Value: &Particle{HasMass: true}, ExpectXML: `true`}, - {Value: &Departure{When: ParseTime("2013-01-09T00:15:00-09:00")}, ExpectXML: `2013-01-09T00:15:00-09:00`}, - {Value: atomValue, ExpectXML: atomXml}, - { - Value: &Ship{ - Name: "Heart of Gold", - Pilot: "Computer", - Age: 1, - Drive: ImprobabilityDrive, - Passenger: []*Passenger{ - { - Name: []string{"Zaphod", "Beeblebrox"}, - Weight: 7.25, - }, - { - Name: []string{"Trisha", "McMillen"}, - Weight: 5.5, - }, - { - Name: []string{"Ford", "Prefect"}, - Weight: 7, - }, - { - Name: []string{"Arthur", "Dent"}, - Weight: 6.75, - }, - }, - }, - ExpectXML: `` + - `` + strconv.Itoa(int(ImprobabilityDrive)) + `` + - `1` + - `` + - `Zaphod` + - `Beeblebrox` + - `7.25` + - `` + - `` + - `Trisha` + - `McMillen` + - `5.5` + - `` + - `` + - `Ford` + - `Prefect` + - `7` + - `` + - `` + - `Arthur` + - `Dent` + - `6.75` + - `` + - ``, - }, - - // Test a>b - { - Value: &NestedItems{Items: nil, Item1: nil}, - ExpectXML: `` + - `` + - `` + - ``, - }, - { - Value: &NestedItems{Items: []string{}, Item1: []string{}}, - ExpectXML: `` + - `` + - `` + - ``, - MarshalOnly: true, - }, - { - Value: &NestedItems{Items: nil, Item1: []string{"A"}}, - ExpectXML: `` + - `` + - `A` + - `` + - ``, - }, - { - Value: &NestedItems{Items: []string{"A", "B"}, Item1: nil}, - ExpectXML: `` + - `` + - `A` + - `B` + - `` + - ``, - }, - { - Value: &NestedItems{Items: []string{"A", "B"}, Item1: []string{"C"}}, - ExpectXML: `` + - `` + - `A` + - `B` + - `C` + - `` + - ``, - }, - { - Value: &NestedOrder{Field1: "C", Field2: "B", Field3: "A"}, - ExpectXML: `` + - `` + - `C` + - `B` + - `A` + - `` + - ``, - }, - { - Value: &NilTest{A: "A", B: nil, C: "C"}, - ExpectXML: `` + - `` + - `A` + - `C` + - `` + - ``, - MarshalOnly: true, // Uses interface{} - }, - { - Value: &MixedNested{A: "A", B: "B", C: "C", D: "D"}, - ExpectXML: `` + - `A` + - `B` + - `` + - `C` + - `D` + - `` + - ``, - }, - { - Value: &Service{Port: &Port{Number: "80"}}, - ExpectXML: `80`, - }, - { - Value: &Service{}, - ExpectXML: ``, - }, - { - Value: &Service{Port: &Port{Number: "80"}, Extra1: "A", Extra2: "B"}, - ExpectXML: `` + - `80` + - `A` + - `B` + - ``, - MarshalOnly: true, - }, - { - Value: &Service{Port: &Port{Number: "80"}, Extra2: "example"}, - ExpectXML: `` + - `80` + - `example` + - ``, - MarshalOnly: true, - }, - { - Value: &struct { - XMLName struct{} `xml:"space top"` - A string `xml:"x>a"` - B string `xml:"x>b"` - C string `xml:"space x>c"` - C1 string `xml:"space1 x>c"` - D1 string `xml:"space1 x>d"` - E1 string `xml:"x>e"` - }{ - A: "a", - B: "b", - C: "c", - C1: "c1", - D1: "d1", - E1: "e1", - }, - ExpectXML: `` + - `abc` + - `` + - `c1` + - `d1` + - `` + - `` + - `e1` + - `` + - ``, - }, - { - Value: &struct { - XMLName Name - A string `xml:"x>a"` - B string `xml:"x>b"` - C string `xml:"space x>c"` - C1 string `xml:"space1 x>c"` - D1 string `xml:"space1 x>d"` - }{ - XMLName: Name{ - Space: "space0", - Local: "top", - }, - A: "a", - B: "b", - C: "c", - C1: "c1", - D1: "d1", - }, - ExpectXML: `` + - `ab` + - `c` + - `` + - `c1` + - `d1` + - `` + - ``, - }, - { - Value: &struct { - XMLName struct{} `xml:"top"` - B string `xml:"space x>b"` - B1 string `xml:"space1 x>b"` - }{ - B: "b", - B1: "b1", - }, - ExpectXML: `` + - `b` + - `b1` + - ``, - }, - - // Test struct embedding - { - Value: &EmbedA{ - EmbedC: EmbedC{ - FieldA1: "", // Shadowed by A.A - FieldA2: "", // Shadowed by A.A - FieldB: "A.C.B", - FieldC: "A.C.C", - }, - EmbedB: EmbedB{ - FieldB: "A.B.B", - EmbedC: &EmbedC{ - FieldA1: "A.B.C.A1", - FieldA2: "A.B.C.A2", - FieldB: "", // Shadowed by A.B.B - FieldC: "A.B.C.C", - }, - }, - FieldA: "A.A", - }, - ExpectXML: `` + - `A.C.B` + - `A.C.C` + - `` + - `A.B.B` + - `` + - `A.B.C.A1` + - `A.B.C.A2` + - `` + - `A.B.C.C` + - `` + - `A.A` + - ``, - }, - - // Test that name casing matters - { - Value: &NameCasing{Xy: "mixed", XY: "upper", XyA: "mixedA", XYA: "upperA"}, - ExpectXML: `mixedupper`, - }, - - // Test the order in which the XML element name is chosen - { - Value: &NamePrecedence{ - FromTag: XMLNameWithoutTag{Value: "A"}, - FromNameVal: XMLNameWithoutTag{XMLName: Name{Local: "InXMLName"}, Value: "B"}, - FromNameTag: XMLNameWithTag{Value: "C"}, - InFieldName: "D", - }, - ExpectXML: `` + - `A` + - `B` + - `C` + - `D` + - ``, - MarshalOnly: true, - }, - { - Value: &NamePrecedence{ - XMLName: Name{Local: "Parent"}, - FromTag: XMLNameWithoutTag{XMLName: Name{Local: "InTag"}, Value: "A"}, - FromNameVal: XMLNameWithoutTag{XMLName: Name{Local: "FromNameVal"}, Value: "B"}, - FromNameTag: XMLNameWithTag{XMLName: Name{Local: "InXMLNameTag"}, Value: "C"}, - InFieldName: "D", - }, - ExpectXML: `` + - `A` + - `B` + - `C` + - `D` + - ``, - UnmarshalOnly: true, - }, - - // xml.Name works in a plain field as well. - { - Value: &NameInField{Name{Space: "ns", Local: "foo"}}, - ExpectXML: ``, - }, - { - Value: &NameInField{Name{Space: "ns", Local: "foo"}}, - ExpectXML: ``, - UnmarshalOnly: true, - }, - - // Marshaling zero xml.Name uses the tag or field name. - { - Value: &NameInField{}, - ExpectXML: ``, - MarshalOnly: true, - }, - - // Test attributes - { - Value: &AttrTest{ - Int: 8, - Named: 9, - Float: 23.5, - Uint8: 255, - Bool: true, - Str: "str", - Bytes: []byte("byt"), - }, - ExpectXML: ``, - }, - { - Value: &AttrTest{Bytes: []byte{}}, - ExpectXML: ``, - }, - { - Value: &OmitAttrTest{ - Int: 8, - Named: 9, - Float: 23.5, - Uint8: 255, - Bool: true, - Str: "str", - Bytes: []byte("byt"), - }, - ExpectXML: ``, - }, - { - Value: &OmitAttrTest{}, - ExpectXML: ``, - }, - - // pointer fields - { - Value: &PointerFieldsTest{Name: &nameAttr, Age: &ageAttr, Contents: &contentsAttr}, - ExpectXML: `lorem ipsum`, - MarshalOnly: true, - }, - - // empty chardata pointer field - { - Value: &ChardataEmptyTest{}, - ExpectXML: ``, - MarshalOnly: true, - }, - - // omitempty on fields - { - Value: &OmitFieldTest{ - Int: 8, - Named: 9, - Float: 23.5, - Uint8: 255, - Bool: true, - Str: "str", - Bytes: []byte("byt"), - Ptr: &PresenceTest{}, - }, - ExpectXML: `` + - `8` + - `9` + - `23.5` + - `255` + - `true` + - `str` + - `byt` + - `` + - ``, - }, - { - Value: &OmitFieldTest{}, - ExpectXML: ``, - }, - - // Test ",any" - { - ExpectXML: `knownunknown`, - Value: &AnyTest{ - Nested: "known", - AnyField: AnyHolder{ - XMLName: Name{Local: "other"}, - XML: "unknown", - }, - }, - }, - { - Value: &AnyTest{Nested: "known", - AnyField: AnyHolder{ - XML: "", - XMLName: Name{Local: "AnyField"}, - }, - }, - ExpectXML: `known`, - }, - { - ExpectXML: `b`, - Value: &AnyOmitTest{ - Nested: "b", - }, - }, - { - ExpectXML: `bei`, - Value: &AnySliceTest{ - Nested: "b", - AnyField: []AnyHolder{ - { - XMLName: Name{Local: "c"}, - XML: "e", - }, - { - XMLName: Name{Space: "f", Local: "g"}, - XML: "i", - }, - }, - }, - }, - { - ExpectXML: `b`, - Value: &AnySliceTest{ - Nested: "b", - }, - }, - - // Test recursive types. - { - Value: &RecurseA{ - A: "a1", - B: &RecurseB{ - A: &RecurseA{"a2", nil}, - B: "b1", - }, - }, - ExpectXML: `a1a2b1`, - }, - - // Test ignoring fields via "-" tag - { - ExpectXML: ``, - Value: &IgnoreTest{}, - }, - { - ExpectXML: ``, - Value: &IgnoreTest{PublicSecret: "can't tell"}, - MarshalOnly: true, - }, - { - ExpectXML: `ignore me`, - Value: &IgnoreTest{}, - UnmarshalOnly: true, - }, - - // Test escaping. - { - ExpectXML: `dquote: "; squote: '; ampersand: &; less: <; greater: >;`, - Value: &AnyTest{ - Nested: `dquote: "; squote: '; ampersand: &; less: <; greater: >;`, - AnyField: AnyHolder{XMLName: Name{Local: "empty"}}, - }, - }, - { - ExpectXML: `newline: ; cr: ; tab: ;`, - Value: &AnyTest{ - Nested: "newline: \n; cr: \r; tab: \t;", - AnyField: AnyHolder{XMLName: Name{Local: "AnyField"}}, - }, - }, - { - ExpectXML: "1\r2\r\n3\n\r4\n5", - Value: &AnyTest{ - Nested: "1\n2\n3\n\n4\n5", - }, - UnmarshalOnly: true, - }, - { - ExpectXML: `42`, - Value: &EmbedInt{ - MyInt: 42, - }, - }, - // Test omitempty with parent chain; see golang.org/issue/4168. - { - ExpectXML: ``, - Value: &Strings{}, - }, - // Custom marshalers. - { - ExpectXML: `hello world`, - Value: &MyMarshalerTest{}, - }, - { - ExpectXML: ``, - Value: &MarshalerStruct{}, - }, - { - ExpectXML: ``, - Value: &MarshalerValueStruct{}, - }, - { - ExpectXML: ``, - Value: &OuterStruct{IntAttr: 10}, - }, - { - ExpectXML: ``, - Value: &OuterNamedStruct{XMLName: Name{Space: "outerns", Local: "test"}, IntAttr: 10}, - }, - { - ExpectXML: ``, - Value: &OuterNamedOrderedStruct{XMLName: Name{Space: "outerns", Local: "test"}, IntAttr: 10}, - }, - { - ExpectXML: ``, - Value: &OuterOuterStruct{OuterStruct{IntAttr: 10}}, - }, - { - ExpectXML: `test`, - Value: &NestedAndChardata{AB: make([]string, 2), Chardata: "test"}, - }, - { - ExpectXML: ``, - Value: &NestedAndComment{AB: make([]string, 2), Comment: "test"}, - }, - { - ExpectXML: `hello world`, - Value: &XMLNSFieldStruct{Ns: "http://example.com/ns", Body: "hello world"}, - }, - { - ExpectXML: `hello world`, - Value: &NamedXMLNSFieldStruct{Ns: "http://example.com/ns", Body: "hello world"}, - }, - { - ExpectXML: `hello world`, - Value: &NamedXMLNSFieldStruct{Ns: "", Body: "hello world"}, - }, - { - ExpectXML: `hello world`, - Value: &XMLNSFieldStructWithOmitEmpty{Body: "hello world"}, - }, - { - // The xmlns attribute must be ignored because the - // element is in the empty namespace, so it's not possible - // to set the default namespace to something non-empty. - ExpectXML: `hello world`, - Value: &NamedXMLNSFieldStructWithEmptyNamespace{Ns: "foo", Body: "hello world"}, - MarshalOnly: true, - }, - { - ExpectXML: `hello world`, - Value: &RecursiveXMLNSFieldStruct{ - Ns: "foo", - Body: &RecursiveXMLNSFieldStruct{ - Text: "hello world", - }, - }, - }, -} - -func TestMarshal(t *testing.T) { - for idx, test := range marshalTests { - if test.UnmarshalOnly { - continue - } - data, err := Marshal(test.Value) - if err != nil { - t.Errorf("#%d: marshal(%#v): %s", idx, test.Value, err) - continue - } - if got, want := string(data), test.ExpectXML; got != want { - if strings.Contains(want, "\n") { - t.Errorf("#%d: marshal(%#v):\nHAVE:\n%s\nWANT:\n%s", idx, test.Value, got, want) - } else { - t.Errorf("#%d: marshal(%#v):\nhave %#q\nwant %#q", idx, test.Value, got, want) - } - } - } -} - -type AttrParent struct { - X string `xml:"X>Y,attr"` -} - -type BadAttr struct { - Name []string `xml:"name,attr"` -} - -var marshalErrorTests = []struct { - Value interface{} - Err string - Kind reflect.Kind -}{ - { - Value: make(chan bool), - Err: "xml: unsupported type: chan bool", - Kind: reflect.Chan, - }, - { - Value: map[string]string{ - "question": "What do you get when you multiply six by nine?", - "answer": "42", - }, - Err: "xml: unsupported type: map[string]string", - Kind: reflect.Map, - }, - { - Value: map[*Ship]bool{nil: false}, - Err: "xml: unsupported type: map[*xml.Ship]bool", - Kind: reflect.Map, - }, - { - Value: &Domain{Comment: []byte("f--bar")}, - Err: `xml: comments must not contain "--"`, - }, - // Reject parent chain with attr, never worked; see golang.org/issue/5033. - { - Value: &AttrParent{}, - Err: `xml: X>Y chain not valid with attr flag`, - }, - { - Value: BadAttr{[]string{"X", "Y"}}, - Err: `xml: unsupported type: []string`, - }, -} - -var marshalIndentTests = []struct { - Value interface{} - Prefix string - Indent string - ExpectXML string -}{ - { - Value: &SecretAgent{ - Handle: "007", - Identity: "James Bond", - Obfuscate: "", - }, - Prefix: "", - Indent: "\t", - ExpectXML: fmt.Sprintf("\n\tJames Bond\n"), - }, -} - -func TestMarshalErrors(t *testing.T) { - for idx, test := range marshalErrorTests { - data, err := Marshal(test.Value) - if err == nil { - t.Errorf("#%d: marshal(%#v) = [success] %q, want error %v", idx, test.Value, data, test.Err) - continue - } - if err.Error() != test.Err { - t.Errorf("#%d: marshal(%#v) = [error] %v, want %v", idx, test.Value, err, test.Err) - } - if test.Kind != reflect.Invalid { - if kind := err.(*UnsupportedTypeError).Type.Kind(); kind != test.Kind { - t.Errorf("#%d: marshal(%#v) = [error kind] %s, want %s", idx, test.Value, kind, test.Kind) - } - } - } -} - -// Do invertibility testing on the various structures that we test -func TestUnmarshal(t *testing.T) { - for i, test := range marshalTests { - if test.MarshalOnly { - continue - } - if _, ok := test.Value.(*Plain); ok { - continue - } - vt := reflect.TypeOf(test.Value) - dest := reflect.New(vt.Elem()).Interface() - err := Unmarshal([]byte(test.ExpectXML), dest) - - switch fix := dest.(type) { - case *Feed: - fix.Author.InnerXML = "" - for i := range fix.Entry { - fix.Entry[i].Author.InnerXML = "" - } - } - - if err != nil { - t.Errorf("#%d: unexpected error: %#v", i, err) - } else if got, want := dest, test.Value; !reflect.DeepEqual(got, want) { - t.Errorf("#%d: unmarshal(%q):\nhave %#v\nwant %#v", i, test.ExpectXML, got, want) - } - } -} - -func TestMarshalIndent(t *testing.T) { - for i, test := range marshalIndentTests { - data, err := MarshalIndent(test.Value, test.Prefix, test.Indent) - if err != nil { - t.Errorf("#%d: Error: %s", i, err) - continue - } - if got, want := string(data), test.ExpectXML; got != want { - t.Errorf("#%d: MarshalIndent:\nGot:%s\nWant:\n%s", i, got, want) - } - } -} - -type limitedBytesWriter struct { - w io.Writer - remain int // until writes fail -} - -func (lw *limitedBytesWriter) Write(p []byte) (n int, err error) { - if lw.remain <= 0 { - println("error") - return 0, errors.New("write limit hit") - } - if len(p) > lw.remain { - p = p[:lw.remain] - n, _ = lw.w.Write(p) - lw.remain = 0 - return n, errors.New("write limit hit") - } - n, err = lw.w.Write(p) - lw.remain -= n - return n, err -} - -func TestMarshalWriteErrors(t *testing.T) { - var buf bytes.Buffer - const writeCap = 1024 - w := &limitedBytesWriter{&buf, writeCap} - enc := NewEncoder(w) - var err error - var i int - const n = 4000 - for i = 1; i <= n; i++ { - err = enc.Encode(&Passenger{ - Name: []string{"Alice", "Bob"}, - Weight: 5, - }) - if err != nil { - break - } - } - if err == nil { - t.Error("expected an error") - } - if i == n { - t.Errorf("expected to fail before the end") - } - if buf.Len() != writeCap { - t.Errorf("buf.Len() = %d; want %d", buf.Len(), writeCap) - } -} - -func TestMarshalWriteIOErrors(t *testing.T) { - enc := NewEncoder(errWriter{}) - - expectErr := "unwritable" - err := enc.Encode(&Passenger{}) - if err == nil || err.Error() != expectErr { - t.Errorf("EscapeTest = [error] %v, want %v", err, expectErr) - } -} - -func TestMarshalFlush(t *testing.T) { - var buf bytes.Buffer - enc := NewEncoder(&buf) - if err := enc.EncodeToken(CharData("hello world")); err != nil { - t.Fatalf("enc.EncodeToken: %v", err) - } - if buf.Len() > 0 { - t.Fatalf("enc.EncodeToken caused actual write: %q", buf.Bytes()) - } - if err := enc.Flush(); err != nil { - t.Fatalf("enc.Flush: %v", err) - } - if buf.String() != "hello world" { - t.Fatalf("after enc.Flush, buf.String() = %q, want %q", buf.String(), "hello world") - } -} - -var encodeElementTests = []struct { - desc string - value interface{} - start StartElement - expectXML string -}{{ - desc: "simple string", - value: "hello", - start: StartElement{ - Name: Name{Local: "a"}, - }, - expectXML: `hello`, -}, { - desc: "string with added attributes", - value: "hello", - start: StartElement{ - Name: Name{Local: "a"}, - Attr: []Attr{{ - Name: Name{Local: "x"}, - Value: "y", - }, { - Name: Name{Local: "foo"}, - Value: "bar", - }}, - }, - expectXML: `hello`, -}, { - desc: "start element with default name space", - value: struct { - Foo XMLNameWithNSTag - }{ - Foo: XMLNameWithNSTag{ - Value: "hello", - }, - }, - start: StartElement{ - Name: Name{Space: "ns", Local: "a"}, - Attr: []Attr{{ - Name: Name{Local: "xmlns"}, - // "ns" is the name space defined in XMLNameWithNSTag - Value: "ns", - }}, - }, - expectXML: `hello`, -}, { - desc: "start element in name space with different default name space", - value: struct { - Foo XMLNameWithNSTag - }{ - Foo: XMLNameWithNSTag{ - Value: "hello", - }, - }, - start: StartElement{ - Name: Name{Space: "ns2", Local: "a"}, - Attr: []Attr{{ - Name: Name{Local: "xmlns"}, - // "ns" is the name space defined in XMLNameWithNSTag - Value: "ns", - }}, - }, - expectXML: `hello`, -}, { - desc: "XMLMarshaler with start element with default name space", - value: &MyMarshalerTest{}, - start: StartElement{ - Name: Name{Space: "ns2", Local: "a"}, - Attr: []Attr{{ - Name: Name{Local: "xmlns"}, - // "ns" is the name space defined in XMLNameWithNSTag - Value: "ns", - }}, - }, - expectXML: `hello world`, -}} - -func TestEncodeElement(t *testing.T) { - for idx, test := range encodeElementTests { - var buf bytes.Buffer - enc := NewEncoder(&buf) - err := enc.EncodeElement(test.value, test.start) - if err != nil { - t.Fatalf("enc.EncodeElement: %v", err) - } - err = enc.Flush() - if err != nil { - t.Fatalf("enc.Flush: %v", err) - } - if got, want := buf.String(), test.expectXML; got != want { - t.Errorf("#%d(%s): EncodeElement(%#v, %#v):\nhave %#q\nwant %#q", idx, test.desc, test.value, test.start, got, want) - } - } -} - -func BenchmarkMarshal(b *testing.B) { - b.ReportAllocs() - for i := 0; i < b.N; i++ { - Marshal(atomValue) - } -} - -func BenchmarkUnmarshal(b *testing.B) { - b.ReportAllocs() - xml := []byte(atomXml) - for i := 0; i < b.N; i++ { - Unmarshal(xml, &Feed{}) - } -} - -// golang.org/issue/6556 -func TestStructPointerMarshal(t *testing.T) { - type A struct { - XMLName string `xml:"a"` - B []interface{} - } - type C struct { - XMLName Name - Value string `xml:"value"` - } - - a := new(A) - a.B = append(a.B, &C{ - XMLName: Name{Local: "c"}, - Value: "x", - }) - - b, err := Marshal(a) - if err != nil { - t.Fatal(err) - } - if x := string(b); x != "x" { - t.Fatal(x) - } - var v A - err = Unmarshal(b, &v) - if err != nil { - t.Fatal(err) - } -} - -var encodeTokenTests = []struct { - desc string - toks []Token - want string - err string -}{{ - desc: "start element with name space", - toks: []Token{ - StartElement{Name{"space", "local"}, nil}, - }, - want: ``, -}, { - desc: "start element with no name", - toks: []Token{ - StartElement{Name{"space", ""}, nil}, - }, - err: "xml: start tag with no name", -}, { - desc: "end element with no name", - toks: []Token{ - EndElement{Name{"space", ""}}, - }, - err: "xml: end tag with no name", -}, { - desc: "char data", - toks: []Token{ - CharData("foo"), - }, - want: `foo`, -}, { - desc: "char data with escaped chars", - toks: []Token{ - CharData(" \t\n"), - }, - want: " \n", -}, { - desc: "comment", - toks: []Token{ - Comment("foo"), - }, - want: ``, -}, { - desc: "comment with invalid content", - toks: []Token{ - Comment("foo-->"), - }, - err: "xml: EncodeToken of Comment containing --> marker", -}, { - desc: "proc instruction", - toks: []Token{ - ProcInst{"Target", []byte("Instruction")}, - }, - want: ``, -}, { - desc: "proc instruction with empty target", - toks: []Token{ - ProcInst{"", []byte("Instruction")}, - }, - err: "xml: EncodeToken of ProcInst with invalid Target", -}, { - desc: "proc instruction with bad content", - toks: []Token{ - ProcInst{"", []byte("Instruction?>")}, - }, - err: "xml: EncodeToken of ProcInst with invalid Target", -}, { - desc: "directive", - toks: []Token{ - Directive("foo"), - }, - want: ``, -}, { - desc: "more complex directive", - toks: []Token{ - Directive("DOCTYPE doc [ '> ]"), - }, - want: `'> ]>`, -}, { - desc: "directive instruction with bad name", - toks: []Token{ - Directive("foo>"), - }, - err: "xml: EncodeToken of Directive containing wrong < or > markers", -}, { - desc: "end tag without start tag", - toks: []Token{ - EndElement{Name{"foo", "bar"}}, - }, - err: "xml: end tag without start tag", -}, { - desc: "mismatching end tag local name", - toks: []Token{ - StartElement{Name{"", "foo"}, nil}, - EndElement{Name{"", "bar"}}, - }, - err: "xml: end tag does not match start tag ", - want: ``, -}, { - desc: "mismatching end tag namespace", - toks: []Token{ - StartElement{Name{"space", "foo"}, nil}, - EndElement{Name{"another", "foo"}}, - }, - err: "xml: end tag in namespace another does not match start tag in namespace space", - want: ``, -}, { - desc: "start element with explicit namespace", - toks: []Token{ - StartElement{Name{"space", "local"}, []Attr{ - {Name{"xmlns", "x"}, "space"}, - {Name{"space", "foo"}, "value"}, - }}, - }, - want: ``, -}, { - desc: "start element with explicit namespace and colliding prefix", - toks: []Token{ - StartElement{Name{"space", "local"}, []Attr{ - {Name{"xmlns", "x"}, "space"}, - {Name{"space", "foo"}, "value"}, - {Name{"x", "bar"}, "other"}, - }}, - }, - want: ``, -}, { - desc: "start element using previously defined namespace", - toks: []Token{ - StartElement{Name{"", "local"}, []Attr{ - {Name{"xmlns", "x"}, "space"}, - }}, - StartElement{Name{"space", "foo"}, []Attr{ - {Name{"space", "x"}, "y"}, - }}, - }, - want: ``, -}, { - desc: "nested name space with same prefix", - toks: []Token{ - StartElement{Name{"", "foo"}, []Attr{ - {Name{"xmlns", "x"}, "space1"}, - }}, - StartElement{Name{"", "foo"}, []Attr{ - {Name{"xmlns", "x"}, "space2"}, - }}, - StartElement{Name{"", "foo"}, []Attr{ - {Name{"space1", "a"}, "space1 value"}, - {Name{"space2", "b"}, "space2 value"}, - }}, - EndElement{Name{"", "foo"}}, - EndElement{Name{"", "foo"}}, - StartElement{Name{"", "foo"}, []Attr{ - {Name{"space1", "a"}, "space1 value"}, - {Name{"space2", "b"}, "space2 value"}, - }}, - }, - want: ``, -}, { - desc: "start element defining several prefixes for the same name space", - toks: []Token{ - StartElement{Name{"space", "foo"}, []Attr{ - {Name{"xmlns", "a"}, "space"}, - {Name{"xmlns", "b"}, "space"}, - {Name{"space", "x"}, "value"}, - }}, - }, - want: ``, -}, { - desc: "nested element redefines name space", - toks: []Token{ - StartElement{Name{"", "foo"}, []Attr{ - {Name{"xmlns", "x"}, "space"}, - }}, - StartElement{Name{"space", "foo"}, []Attr{ - {Name{"xmlns", "y"}, "space"}, - {Name{"space", "a"}, "value"}, - }}, - }, - want: ``, -}, { - desc: "nested element creates alias for default name space", - toks: []Token{ - StartElement{Name{"space", "foo"}, []Attr{ - {Name{"", "xmlns"}, "space"}, - }}, - StartElement{Name{"space", "foo"}, []Attr{ - {Name{"xmlns", "y"}, "space"}, - {Name{"space", "a"}, "value"}, - }}, - }, - want: ``, -}, { - desc: "nested element defines default name space with existing prefix", - toks: []Token{ - StartElement{Name{"", "foo"}, []Attr{ - {Name{"xmlns", "x"}, "space"}, - }}, - StartElement{Name{"space", "foo"}, []Attr{ - {Name{"", "xmlns"}, "space"}, - {Name{"space", "a"}, "value"}, - }}, - }, - want: ``, -}, { - desc: "nested element uses empty attribute name space when default ns defined", - toks: []Token{ - StartElement{Name{"space", "foo"}, []Attr{ - {Name{"", "xmlns"}, "space"}, - }}, - StartElement{Name{"space", "foo"}, []Attr{ - {Name{"", "attr"}, "value"}, - }}, - }, - want: ``, -}, { - desc: "redefine xmlns", - toks: []Token{ - StartElement{Name{"", "foo"}, []Attr{ - {Name{"foo", "xmlns"}, "space"}, - }}, - }, - err: `xml: cannot redefine xmlns attribute prefix`, -}, { - desc: "xmlns with explicit name space #1", - toks: []Token{ - StartElement{Name{"space", "foo"}, []Attr{ - {Name{"xml", "xmlns"}, "space"}, - }}, - }, - want: ``, -}, { - desc: "xmlns with explicit name space #2", - toks: []Token{ - StartElement{Name{"space", "foo"}, []Attr{ - {Name{xmlURL, "xmlns"}, "space"}, - }}, - }, - want: ``, -}, { - desc: "empty name space declaration is ignored", - toks: []Token{ - StartElement{Name{"", "foo"}, []Attr{ - {Name{"xmlns", "foo"}, ""}, - }}, - }, - want: ``, -}, { - desc: "attribute with no name is ignored", - toks: []Token{ - StartElement{Name{"", "foo"}, []Attr{ - {Name{"", ""}, "value"}, - }}, - }, - want: ``, -}, { - desc: "namespace URL with non-valid name", - toks: []Token{ - StartElement{Name{"/34", "foo"}, []Attr{ - {Name{"/34", "x"}, "value"}, - }}, - }, - want: `<_:foo xmlns:_="/34" _:x="value">`, -}, { - desc: "nested element resets default namespace to empty", - toks: []Token{ - StartElement{Name{"space", "foo"}, []Attr{ - {Name{"", "xmlns"}, "space"}, - }}, - StartElement{Name{"", "foo"}, []Attr{ - {Name{"", "xmlns"}, ""}, - {Name{"", "x"}, "value"}, - {Name{"space", "x"}, "value"}, - }}, - }, - want: ``, -}, { - desc: "nested element requires empty default name space", - toks: []Token{ - StartElement{Name{"space", "foo"}, []Attr{ - {Name{"", "xmlns"}, "space"}, - }}, - StartElement{Name{"", "foo"}, nil}, - }, - want: ``, -}, { - desc: "attribute uses name space from xmlns", - toks: []Token{ - StartElement{Name{"some/space", "foo"}, []Attr{ - {Name{"", "attr"}, "value"}, - {Name{"some/space", "other"}, "other value"}, - }}, - }, - want: ``, -}, { - desc: "default name space should not be used by attributes", - toks: []Token{ - StartElement{Name{"space", "foo"}, []Attr{ - {Name{"", "xmlns"}, "space"}, - {Name{"xmlns", "bar"}, "space"}, - {Name{"space", "baz"}, "foo"}, - }}, - StartElement{Name{"space", "baz"}, nil}, - EndElement{Name{"space", "baz"}}, - EndElement{Name{"space", "foo"}}, - }, - want: ``, -}, { - desc: "default name space not used by attributes, not explicitly defined", - toks: []Token{ - StartElement{Name{"space", "foo"}, []Attr{ - {Name{"", "xmlns"}, "space"}, - {Name{"space", "baz"}, "foo"}, - }}, - StartElement{Name{"space", "baz"}, nil}, - EndElement{Name{"space", "baz"}}, - EndElement{Name{"space", "foo"}}, - }, - want: ``, -}, { - desc: "impossible xmlns declaration", - toks: []Token{ - StartElement{Name{"", "foo"}, []Attr{ - {Name{"", "xmlns"}, "space"}, - }}, - StartElement{Name{"space", "bar"}, []Attr{ - {Name{"space", "attr"}, "value"}, - }}, - }, - want: ``, -}} - -func TestEncodeToken(t *testing.T) { -loop: - for i, tt := range encodeTokenTests { - var buf bytes.Buffer - enc := NewEncoder(&buf) - var err error - for j, tok := range tt.toks { - err = enc.EncodeToken(tok) - if err != nil && j < len(tt.toks)-1 { - t.Errorf("#%d %s token #%d: %v", i, tt.desc, j, err) - continue loop - } - } - errorf := func(f string, a ...interface{}) { - t.Errorf("#%d %s token #%d:%s", i, tt.desc, len(tt.toks)-1, fmt.Sprintf(f, a...)) - } - switch { - case tt.err != "" && err == nil: - errorf(" expected error; got none") - continue - case tt.err == "" && err != nil: - errorf(" got error: %v", err) - continue - case tt.err != "" && err != nil && tt.err != err.Error(): - errorf(" error mismatch; got %v, want %v", err, tt.err) - continue - } - if err := enc.Flush(); err != nil { - errorf(" %v", err) - continue - } - if got := buf.String(); got != tt.want { - errorf("\ngot %v\nwant %v", got, tt.want) - continue - } - } -} - -func TestProcInstEncodeToken(t *testing.T) { - var buf bytes.Buffer - enc := NewEncoder(&buf) - - if err := enc.EncodeToken(ProcInst{"xml", []byte("Instruction")}); err != nil { - t.Fatalf("enc.EncodeToken: expected to be able to encode xml target ProcInst as first token, %s", err) - } - - if err := enc.EncodeToken(ProcInst{"Target", []byte("Instruction")}); err != nil { - t.Fatalf("enc.EncodeToken: expected to be able to add non-xml target ProcInst") - } - - if err := enc.EncodeToken(ProcInst{"xml", []byte("Instruction")}); err == nil { - t.Fatalf("enc.EncodeToken: expected to not be allowed to encode xml target ProcInst when not first token") - } -} - -func TestDecodeEncode(t *testing.T) { - var in, out bytes.Buffer - in.WriteString(` - - - -`) - dec := NewDecoder(&in) - enc := NewEncoder(&out) - for tok, err := dec.Token(); err == nil; tok, err = dec.Token() { - err = enc.EncodeToken(tok) - if err != nil { - t.Fatalf("enc.EncodeToken: Unable to encode token (%#v), %v", tok, err) - } - } -} - -// Issue 9796. Used to fail with GORACE="halt_on_error=1" -race. -func TestRace9796(t *testing.T) { - type A struct{} - type B struct { - C []A `xml:"X>Y"` - } - var wg sync.WaitGroup - for i := 0; i < 2; i++ { - wg.Add(1) - go func() { - Marshal(B{[]A{A{}}}) - wg.Done() - }() - } - wg.Wait() -} - -func TestIsValidDirective(t *testing.T) { - testOK := []string{ - "<>", - "< < > >", - "' '>' >", - " ]>", - " '<' ' doc ANY> ]>", - ">>> a < comment --> [ ] >", - } - testKO := []string{ - "<", - ">", - "", - "< > > < < >", - " -->", - "", - "'", - "", - } - for _, s := range testOK { - if !isValidDirective(Directive(s)) { - t.Errorf("Directive %q is expected to be valid", s) - } - } - for _, s := range testKO { - if isValidDirective(Directive(s)) { - t.Errorf("Directive %q is expected to be invalid", s) - } - } -} - -// Issue 11719. EncodeToken used to silently eat tokens with an invalid type. -func TestSimpleUseOfEncodeToken(t *testing.T) { - var buf bytes.Buffer - enc := NewEncoder(&buf) - if err := enc.EncodeToken(&StartElement{Name: Name{"", "object1"}}); err == nil { - t.Errorf("enc.EncodeToken: pointer type should be rejected") - } - if err := enc.EncodeToken(&EndElement{Name: Name{"", "object1"}}); err == nil { - t.Errorf("enc.EncodeToken: pointer type should be rejected") - } - if err := enc.EncodeToken(StartElement{Name: Name{"", "object2"}}); err != nil { - t.Errorf("enc.EncodeToken: StartElement %s", err) - } - if err := enc.EncodeToken(EndElement{Name: Name{"", "object2"}}); err != nil { - t.Errorf("enc.EncodeToken: EndElement %s", err) - } - if err := enc.EncodeToken(Universe{}); err == nil { - t.Errorf("enc.EncodeToken: invalid type not caught") - } - if err := enc.Flush(); err != nil { - t.Errorf("enc.Flush: %s", err) - } - if buf.Len() == 0 { - t.Errorf("enc.EncodeToken: empty buffer") - } - want := "" - if buf.String() != want { - t.Errorf("enc.EncodeToken: expected %q; got %q", want, buf.String()) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/read.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/read.go deleted file mode 100644 index 75b9f2ba..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/read.go +++ /dev/null @@ -1,692 +0,0 @@ -// Copyright 2009 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 xml - -import ( - "bytes" - "encoding" - "errors" - "fmt" - "reflect" - "strconv" - "strings" -) - -// BUG(rsc): Mapping between XML elements and data structures is inherently flawed: -// an XML element is an order-dependent collection of anonymous -// values, while a data structure is an order-independent collection -// of named values. -// See package json for a textual representation more suitable -// to data structures. - -// Unmarshal parses the XML-encoded data and stores the result in -// the value pointed to by v, which must be an arbitrary struct, -// slice, or string. Well-formed data that does not fit into v is -// discarded. -// -// Because Unmarshal uses the reflect package, it can only assign -// to exported (upper case) fields. Unmarshal uses a case-sensitive -// comparison to match XML element names to tag values and struct -// field names. -// -// Unmarshal maps an XML element to a struct using the following rules. -// In the rules, the tag of a field refers to the value associated with the -// key 'xml' in the struct field's tag (see the example above). -// -// * If the struct has a field of type []byte or string with tag -// ",innerxml", Unmarshal accumulates the raw XML nested inside the -// element in that field. The rest of the rules still apply. -// -// * If the struct has a field named XMLName of type xml.Name, -// Unmarshal records the element name in that field. -// -// * If the XMLName field has an associated tag of the form -// "name" or "namespace-URL name", the XML element must have -// the given name (and, optionally, name space) or else Unmarshal -// returns an error. -// -// * If the XML element has an attribute whose name matches a -// struct field name with an associated tag containing ",attr" or -// the explicit name in a struct field tag of the form "name,attr", -// Unmarshal records the attribute value in that field. -// -// * If the XML element contains character data, that data is -// accumulated in the first struct field that has tag ",chardata". -// The struct field may have type []byte or string. -// If there is no such field, the character data is discarded. -// -// * If the XML element contains comments, they are accumulated in -// the first struct field that has tag ",comment". The struct -// field may have type []byte or string. If there is no such -// field, the comments are discarded. -// -// * If the XML element contains a sub-element whose name matches -// the prefix of a tag formatted as "a" or "a>b>c", unmarshal -// will descend into the XML structure looking for elements with the -// given names, and will map the innermost elements to that struct -// field. A tag starting with ">" is equivalent to one starting -// with the field name followed by ">". -// -// * If the XML element contains a sub-element whose name matches -// a struct field's XMLName tag and the struct field has no -// explicit name tag as per the previous rule, unmarshal maps -// the sub-element to that struct field. -// -// * If the XML element contains a sub-element whose name matches a -// field without any mode flags (",attr", ",chardata", etc), Unmarshal -// maps the sub-element to that struct field. -// -// * If the XML element contains a sub-element that hasn't matched any -// of the above rules and the struct has a field with tag ",any", -// unmarshal maps the sub-element to that struct field. -// -// * An anonymous struct field is handled as if the fields of its -// value were part of the outer struct. -// -// * A struct field with tag "-" is never unmarshalled into. -// -// Unmarshal maps an XML element to a string or []byte by saving the -// concatenation of that element's character data in the string or -// []byte. The saved []byte is never nil. -// -// Unmarshal maps an attribute value to a string or []byte by saving -// the value in the string or slice. -// -// Unmarshal maps an XML element to a slice by extending the length of -// the slice and mapping the element to the newly created value. -// -// Unmarshal maps an XML element or attribute value to a bool by -// setting it to the boolean value represented by the string. -// -// Unmarshal maps an XML element or attribute value to an integer or -// floating-point field by setting the field to the result of -// interpreting the string value in decimal. There is no check for -// overflow. -// -// Unmarshal maps an XML element to an xml.Name by recording the -// element name. -// -// Unmarshal maps an XML element to a pointer by setting the pointer -// to a freshly allocated value and then mapping the element to that value. -// -func Unmarshal(data []byte, v interface{}) error { - return NewDecoder(bytes.NewReader(data)).Decode(v) -} - -// Decode works like xml.Unmarshal, except it reads the decoder -// stream to find the start element. -func (d *Decoder) Decode(v interface{}) error { - return d.DecodeElement(v, nil) -} - -// DecodeElement works like xml.Unmarshal except that it takes -// a pointer to the start XML element to decode into v. -// It is useful when a client reads some raw XML tokens itself -// but also wants to defer to Unmarshal for some elements. -func (d *Decoder) DecodeElement(v interface{}, start *StartElement) error { - val := reflect.ValueOf(v) - if val.Kind() != reflect.Ptr { - return errors.New("non-pointer passed to Unmarshal") - } - return d.unmarshal(val.Elem(), start) -} - -// An UnmarshalError represents an error in the unmarshalling process. -type UnmarshalError string - -func (e UnmarshalError) Error() string { return string(e) } - -// Unmarshaler is the interface implemented by objects that can unmarshal -// an XML element description of themselves. -// -// UnmarshalXML decodes a single XML element -// beginning with the given start element. -// If it returns an error, the outer call to Unmarshal stops and -// returns that error. -// UnmarshalXML must consume exactly one XML element. -// One common implementation strategy is to unmarshal into -// a separate value with a layout matching the expected XML -// using d.DecodeElement, and then to copy the data from -// that value into the receiver. -// Another common strategy is to use d.Token to process the -// XML object one token at a time. -// UnmarshalXML may not use d.RawToken. -type Unmarshaler interface { - UnmarshalXML(d *Decoder, start StartElement) error -} - -// UnmarshalerAttr is the interface implemented by objects that can unmarshal -// an XML attribute description of themselves. -// -// UnmarshalXMLAttr decodes a single XML attribute. -// If it returns an error, the outer call to Unmarshal stops and -// returns that error. -// UnmarshalXMLAttr is used only for struct fields with the -// "attr" option in the field tag. -type UnmarshalerAttr interface { - UnmarshalXMLAttr(attr Attr) error -} - -// receiverType returns the receiver type to use in an expression like "%s.MethodName". -func receiverType(val interface{}) string { - t := reflect.TypeOf(val) - if t.Name() != "" { - return t.String() - } - return "(" + t.String() + ")" -} - -// unmarshalInterface unmarshals a single XML element into val. -// start is the opening tag of the element. -func (p *Decoder) unmarshalInterface(val Unmarshaler, start *StartElement) error { - // Record that decoder must stop at end tag corresponding to start. - p.pushEOF() - - p.unmarshalDepth++ - err := val.UnmarshalXML(p, *start) - p.unmarshalDepth-- - if err != nil { - p.popEOF() - return err - } - - if !p.popEOF() { - return fmt.Errorf("xml: %s.UnmarshalXML did not consume entire <%s> element", receiverType(val), start.Name.Local) - } - - return nil -} - -// unmarshalTextInterface unmarshals a single XML element into val. -// The chardata contained in the element (but not its children) -// is passed to the text unmarshaler. -func (p *Decoder) unmarshalTextInterface(val encoding.TextUnmarshaler, start *StartElement) error { - var buf []byte - depth := 1 - for depth > 0 { - t, err := p.Token() - if err != nil { - return err - } - switch t := t.(type) { - case CharData: - if depth == 1 { - buf = append(buf, t...) - } - case StartElement: - depth++ - case EndElement: - depth-- - } - } - return val.UnmarshalText(buf) -} - -// unmarshalAttr unmarshals a single XML attribute into val. -func (p *Decoder) unmarshalAttr(val reflect.Value, attr Attr) error { - if val.Kind() == reflect.Ptr { - if val.IsNil() { - val.Set(reflect.New(val.Type().Elem())) - } - val = val.Elem() - } - - if val.CanInterface() && val.Type().Implements(unmarshalerAttrType) { - // This is an unmarshaler with a non-pointer receiver, - // so it's likely to be incorrect, but we do what we're told. - return val.Interface().(UnmarshalerAttr).UnmarshalXMLAttr(attr) - } - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(unmarshalerAttrType) { - return pv.Interface().(UnmarshalerAttr).UnmarshalXMLAttr(attr) - } - } - - // Not an UnmarshalerAttr; try encoding.TextUnmarshaler. - if val.CanInterface() && val.Type().Implements(textUnmarshalerType) { - // This is an unmarshaler with a non-pointer receiver, - // so it's likely to be incorrect, but we do what we're told. - return val.Interface().(encoding.TextUnmarshaler).UnmarshalText([]byte(attr.Value)) - } - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) { - return pv.Interface().(encoding.TextUnmarshaler).UnmarshalText([]byte(attr.Value)) - } - } - - copyValue(val, []byte(attr.Value)) - return nil -} - -var ( - unmarshalerType = reflect.TypeOf((*Unmarshaler)(nil)).Elem() - unmarshalerAttrType = reflect.TypeOf((*UnmarshalerAttr)(nil)).Elem() - textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem() -) - -// Unmarshal a single XML element into val. -func (p *Decoder) unmarshal(val reflect.Value, start *StartElement) error { - // Find start element if we need it. - if start == nil { - for { - tok, err := p.Token() - if err != nil { - return err - } - if t, ok := tok.(StartElement); ok { - start = &t - break - } - } - } - - // Load value from interface, but only if the result will be - // usefully addressable. - if val.Kind() == reflect.Interface && !val.IsNil() { - e := val.Elem() - if e.Kind() == reflect.Ptr && !e.IsNil() { - val = e - } - } - - if val.Kind() == reflect.Ptr { - if val.IsNil() { - val.Set(reflect.New(val.Type().Elem())) - } - val = val.Elem() - } - - if val.CanInterface() && val.Type().Implements(unmarshalerType) { - // This is an unmarshaler with a non-pointer receiver, - // so it's likely to be incorrect, but we do what we're told. - return p.unmarshalInterface(val.Interface().(Unmarshaler), start) - } - - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(unmarshalerType) { - return p.unmarshalInterface(pv.Interface().(Unmarshaler), start) - } - } - - if val.CanInterface() && val.Type().Implements(textUnmarshalerType) { - return p.unmarshalTextInterface(val.Interface().(encoding.TextUnmarshaler), start) - } - - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) { - return p.unmarshalTextInterface(pv.Interface().(encoding.TextUnmarshaler), start) - } - } - - var ( - data []byte - saveData reflect.Value - comment []byte - saveComment reflect.Value - saveXML reflect.Value - saveXMLIndex int - saveXMLData []byte - saveAny reflect.Value - sv reflect.Value - tinfo *typeInfo - err error - ) - - switch v := val; v.Kind() { - default: - return errors.New("unknown type " + v.Type().String()) - - case reflect.Interface: - // TODO: For now, simply ignore the field. In the near - // future we may choose to unmarshal the start - // element on it, if not nil. - return p.Skip() - - case reflect.Slice: - typ := v.Type() - if typ.Elem().Kind() == reflect.Uint8 { - // []byte - saveData = v - break - } - - // Slice of element values. - // Grow slice. - n := v.Len() - if n >= v.Cap() { - ncap := 2 * n - if ncap < 4 { - ncap = 4 - } - new := reflect.MakeSlice(typ, n, ncap) - reflect.Copy(new, v) - v.Set(new) - } - v.SetLen(n + 1) - - // Recur to read element into slice. - if err := p.unmarshal(v.Index(n), start); err != nil { - v.SetLen(n) - return err - } - return nil - - case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, reflect.String: - saveData = v - - case reflect.Struct: - typ := v.Type() - if typ == nameType { - v.Set(reflect.ValueOf(start.Name)) - break - } - - sv = v - tinfo, err = getTypeInfo(typ) - if err != nil { - return err - } - - // Validate and assign element name. - if tinfo.xmlname != nil { - finfo := tinfo.xmlname - if finfo.name != "" && finfo.name != start.Name.Local { - return UnmarshalError("expected element type <" + finfo.name + "> but have <" + start.Name.Local + ">") - } - if finfo.xmlns != "" && finfo.xmlns != start.Name.Space { - e := "expected element <" + finfo.name + "> in name space " + finfo.xmlns + " but have " - if start.Name.Space == "" { - e += "no name space" - } else { - e += start.Name.Space - } - return UnmarshalError(e) - } - fv := finfo.value(sv) - if _, ok := fv.Interface().(Name); ok { - fv.Set(reflect.ValueOf(start.Name)) - } - } - - // Assign attributes. - // Also, determine whether we need to save character data or comments. - for i := range tinfo.fields { - finfo := &tinfo.fields[i] - switch finfo.flags & fMode { - case fAttr: - strv := finfo.value(sv) - // Look for attribute. - for _, a := range start.Attr { - if a.Name.Local == finfo.name && (finfo.xmlns == "" || finfo.xmlns == a.Name.Space) { - if err := p.unmarshalAttr(strv, a); err != nil { - return err - } - break - } - } - - case fCharData: - if !saveData.IsValid() { - saveData = finfo.value(sv) - } - - case fComment: - if !saveComment.IsValid() { - saveComment = finfo.value(sv) - } - - case fAny, fAny | fElement: - if !saveAny.IsValid() { - saveAny = finfo.value(sv) - } - - case fInnerXml: - if !saveXML.IsValid() { - saveXML = finfo.value(sv) - if p.saved == nil { - saveXMLIndex = 0 - p.saved = new(bytes.Buffer) - } else { - saveXMLIndex = p.savedOffset() - } - } - } - } - } - - // Find end element. - // Process sub-elements along the way. -Loop: - for { - var savedOffset int - if saveXML.IsValid() { - savedOffset = p.savedOffset() - } - tok, err := p.Token() - if err != nil { - return err - } - switch t := tok.(type) { - case StartElement: - consumed := false - if sv.IsValid() { - consumed, err = p.unmarshalPath(tinfo, sv, nil, &t) - if err != nil { - return err - } - if !consumed && saveAny.IsValid() { - consumed = true - if err := p.unmarshal(saveAny, &t); err != nil { - return err - } - } - } - if !consumed { - if err := p.Skip(); err != nil { - return err - } - } - - case EndElement: - if saveXML.IsValid() { - saveXMLData = p.saved.Bytes()[saveXMLIndex:savedOffset] - if saveXMLIndex == 0 { - p.saved = nil - } - } - break Loop - - case CharData: - if saveData.IsValid() { - data = append(data, t...) - } - - case Comment: - if saveComment.IsValid() { - comment = append(comment, t...) - } - } - } - - if saveData.IsValid() && saveData.CanInterface() && saveData.Type().Implements(textUnmarshalerType) { - if err := saveData.Interface().(encoding.TextUnmarshaler).UnmarshalText(data); err != nil { - return err - } - saveData = reflect.Value{} - } - - if saveData.IsValid() && saveData.CanAddr() { - pv := saveData.Addr() - if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) { - if err := pv.Interface().(encoding.TextUnmarshaler).UnmarshalText(data); err != nil { - return err - } - saveData = reflect.Value{} - } - } - - if err := copyValue(saveData, data); err != nil { - return err - } - - switch t := saveComment; t.Kind() { - case reflect.String: - t.SetString(string(comment)) - case reflect.Slice: - t.Set(reflect.ValueOf(comment)) - } - - switch t := saveXML; t.Kind() { - case reflect.String: - t.SetString(string(saveXMLData)) - case reflect.Slice: - t.Set(reflect.ValueOf(saveXMLData)) - } - - return nil -} - -func copyValue(dst reflect.Value, src []byte) (err error) { - dst0 := dst - - if dst.Kind() == reflect.Ptr { - if dst.IsNil() { - dst.Set(reflect.New(dst.Type().Elem())) - } - dst = dst.Elem() - } - - // Save accumulated data. - switch dst.Kind() { - case reflect.Invalid: - // Probably a comment. - default: - return errors.New("cannot unmarshal into " + dst0.Type().String()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - itmp, err := strconv.ParseInt(string(src), 10, dst.Type().Bits()) - if err != nil { - return err - } - dst.SetInt(itmp) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - utmp, err := strconv.ParseUint(string(src), 10, dst.Type().Bits()) - if err != nil { - return err - } - dst.SetUint(utmp) - case reflect.Float32, reflect.Float64: - ftmp, err := strconv.ParseFloat(string(src), dst.Type().Bits()) - if err != nil { - return err - } - dst.SetFloat(ftmp) - case reflect.Bool: - value, err := strconv.ParseBool(strings.TrimSpace(string(src))) - if err != nil { - return err - } - dst.SetBool(value) - case reflect.String: - dst.SetString(string(src)) - case reflect.Slice: - if len(src) == 0 { - // non-nil to flag presence - src = []byte{} - } - dst.SetBytes(src) - } - return nil -} - -// unmarshalPath walks down an XML structure looking for wanted -// paths, and calls unmarshal on them. -// The consumed result tells whether XML elements have been consumed -// from the Decoder until start's matching end element, or if it's -// still untouched because start is uninteresting for sv's fields. -func (p *Decoder) unmarshalPath(tinfo *typeInfo, sv reflect.Value, parents []string, start *StartElement) (consumed bool, err error) { - recurse := false -Loop: - for i := range tinfo.fields { - finfo := &tinfo.fields[i] - if finfo.flags&fElement == 0 || len(finfo.parents) < len(parents) || finfo.xmlns != "" && finfo.xmlns != start.Name.Space { - continue - } - for j := range parents { - if parents[j] != finfo.parents[j] { - continue Loop - } - } - if len(finfo.parents) == len(parents) && finfo.name == start.Name.Local { - // It's a perfect match, unmarshal the field. - return true, p.unmarshal(finfo.value(sv), start) - } - if len(finfo.parents) > len(parents) && finfo.parents[len(parents)] == start.Name.Local { - // It's a prefix for the field. Break and recurse - // since it's not ok for one field path to be itself - // the prefix for another field path. - recurse = true - - // We can reuse the same slice as long as we - // don't try to append to it. - parents = finfo.parents[:len(parents)+1] - break - } - } - if !recurse { - // We have no business with this element. - return false, nil - } - // The element is not a perfect match for any field, but one - // or more fields have the path to this element as a parent - // prefix. Recurse and attempt to match these. - for { - var tok Token - tok, err = p.Token() - if err != nil { - return true, err - } - switch t := tok.(type) { - case StartElement: - consumed2, err := p.unmarshalPath(tinfo, sv, parents, &t) - if err != nil { - return true, err - } - if !consumed2 { - if err := p.Skip(); err != nil { - return true, err - } - } - case EndElement: - return true, nil - } - } -} - -// Skip reads tokens until it has consumed the end element -// matching the most recent start element already consumed. -// It recurs if it encounters a start element, so it can be used to -// skip nested structures. -// It returns nil if it finds an end element matching the start -// element; otherwise it returns an error describing the problem. -func (d *Decoder) Skip() error { - for { - tok, err := d.Token() - if err != nil { - return err - } - switch tok.(type) { - case StartElement: - if err := d.Skip(); err != nil { - return err - } - case EndElement: - return nil - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/read_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/read_test.go deleted file mode 100644 index 02f1e10c..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/read_test.go +++ /dev/null @@ -1,744 +0,0 @@ -// Copyright 2009 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 xml - -import ( - "bytes" - "fmt" - "io" - "reflect" - "strings" - "testing" - "time" -) - -// Stripped down Atom feed data structures. - -func TestUnmarshalFeed(t *testing.T) { - var f Feed - if err := Unmarshal([]byte(atomFeedString), &f); err != nil { - t.Fatalf("Unmarshal: %s", err) - } - if !reflect.DeepEqual(f, atomFeed) { - t.Fatalf("have %#v\nwant %#v", f, atomFeed) - } -} - -// hget http://codereview.appspot.com/rss/mine/rsc -const atomFeedString = ` - -Code Review - My issueshttp://codereview.appspot.com/rietveld<>rietveld: an attempt at pubsubhubbub -2009-10-04T01:35:58+00:00email-address-removedurn:md5:134d9179c41f806be79b3a5f7877d19a - An attempt at adding pubsubhubbub support to Rietveld. -http://code.google.com/p/pubsubhubbub -http://code.google.com/p/rietveld/issues/detail?id=155 - -The server side of the protocol is trivial: - 1. add a &lt;link rel=&quot;hub&quot; href=&quot;hub-server&quot;&gt; tag to all - feeds that will be pubsubhubbubbed. - 2. every time one of those feeds changes, tell the hub - with a simple POST request. - -I have tested this by adding debug prints to a local hub -server and checking that the server got the right publish -requests. - -I can&#39;t quite get the server to work, but I think the bug -is not in my code. I think that the server expects to be -able to grab the feed and see the feed&#39;s actual URL in -the link rel=&quot;self&quot;, but the default value for that drops -the :port from the URL, and I cannot for the life of me -figure out how to get the Atom generator deep inside -django not to do that, or even where it is doing that, -or even what code is running to generate the Atom feed. -(I thought I knew but I added some assert False statements -and it kept running!) - -Ignoring that particular problem, I would appreciate -feedback on the right way to get the two values at -the top of feeds.py marked NOTE(rsc). - - -rietveld: correct tab handling -2009-10-03T23:02:17+00:00email-address-removedurn:md5:0a2a4f19bb815101f0ba2904aed7c35a - This fixes the buggy tab rendering that can be seen at -http://codereview.appspot.com/116075/diff/1/2 - -The fundamental problem was that the tab code was -not being told what column the text began in, so it -didn&#39;t know where to put the tab stops. Another problem -was that some of the code assumed that string byte -offsets were the same as column offsets, which is only -true if there are no tabs. - -In the process of fixing this, I cleaned up the arguments -to Fold and ExpandTabs and renamed them Break and -_ExpandTabs so that I could be sure that I found all the -call sites. I also wanted to verify that ExpandTabs was -not being used from outside intra_region_diff.py. - - - ` - -type Feed struct { - XMLName Name `xml:"http://www.w3.org/2005/Atom feed"` - Title string `xml:"title"` - Id string `xml:"id"` - Link []Link `xml:"link"` - Updated time.Time `xml:"updated,attr"` - Author Person `xml:"author"` - Entry []Entry `xml:"entry"` -} - -type Entry struct { - Title string `xml:"title"` - Id string `xml:"id"` - Link []Link `xml:"link"` - Updated time.Time `xml:"updated"` - Author Person `xml:"author"` - Summary Text `xml:"summary"` -} - -type Link struct { - Rel string `xml:"rel,attr,omitempty"` - Href string `xml:"href,attr"` -} - -type Person struct { - Name string `xml:"name"` - URI string `xml:"uri"` - Email string `xml:"email"` - InnerXML string `xml:",innerxml"` -} - -type Text struct { - Type string `xml:"type,attr,omitempty"` - Body string `xml:",chardata"` -} - -var atomFeed = Feed{ - XMLName: Name{"http://www.w3.org/2005/Atom", "feed"}, - Title: "Code Review - My issues", - Link: []Link{ - {Rel: "alternate", Href: "http://codereview.appspot.com/"}, - {Rel: "self", Href: "http://codereview.appspot.com/rss/mine/rsc"}, - }, - Id: "http://codereview.appspot.com/", - Updated: ParseTime("2009-10-04T01:35:58+00:00"), - Author: Person{ - Name: "rietveld<>", - InnerXML: "rietveld<>", - }, - Entry: []Entry{ - { - Title: "rietveld: an attempt at pubsubhubbub\n", - Link: []Link{ - {Rel: "alternate", Href: "http://codereview.appspot.com/126085"}, - }, - Updated: ParseTime("2009-10-04T01:35:58+00:00"), - Author: Person{ - Name: "email-address-removed", - InnerXML: "email-address-removed", - }, - Id: "urn:md5:134d9179c41f806be79b3a5f7877d19a", - Summary: Text{ - Type: "html", - Body: ` - An attempt at adding pubsubhubbub support to Rietveld. -http://code.google.com/p/pubsubhubbub -http://code.google.com/p/rietveld/issues/detail?id=155 - -The server side of the protocol is trivial: - 1. add a <link rel="hub" href="hub-server"> tag to all - feeds that will be pubsubhubbubbed. - 2. every time one of those feeds changes, tell the hub - with a simple POST request. - -I have tested this by adding debug prints to a local hub -server and checking that the server got the right publish -requests. - -I can't quite get the server to work, but I think the bug -is not in my code. I think that the server expects to be -able to grab the feed and see the feed's actual URL in -the link rel="self", but the default value for that drops -the :port from the URL, and I cannot for the life of me -figure out how to get the Atom generator deep inside -django not to do that, or even where it is doing that, -or even what code is running to generate the Atom feed. -(I thought I knew but I added some assert False statements -and it kept running!) - -Ignoring that particular problem, I would appreciate -feedback on the right way to get the two values at -the top of feeds.py marked NOTE(rsc). - - -`, - }, - }, - { - Title: "rietveld: correct tab handling\n", - Link: []Link{ - {Rel: "alternate", Href: "http://codereview.appspot.com/124106"}, - }, - Updated: ParseTime("2009-10-03T23:02:17+00:00"), - Author: Person{ - Name: "email-address-removed", - InnerXML: "email-address-removed", - }, - Id: "urn:md5:0a2a4f19bb815101f0ba2904aed7c35a", - Summary: Text{ - Type: "html", - Body: ` - This fixes the buggy tab rendering that can be seen at -http://codereview.appspot.com/116075/diff/1/2 - -The fundamental problem was that the tab code was -not being told what column the text began in, so it -didn't know where to put the tab stops. Another problem -was that some of the code assumed that string byte -offsets were the same as column offsets, which is only -true if there are no tabs. - -In the process of fixing this, I cleaned up the arguments -to Fold and ExpandTabs and renamed them Break and -_ExpandTabs so that I could be sure that I found all the -call sites. I also wanted to verify that ExpandTabs was -not being used from outside intra_region_diff.py. - - -`, - }, - }, - }, -} - -const pathTestString = ` - - 1 - - - A - - - B - - - C - D - - <_> - E - - - 2 - -` - -type PathTestItem struct { - Value string -} - -type PathTestA struct { - Items []PathTestItem `xml:">Item1"` - Before, After string -} - -type PathTestB struct { - Other []PathTestItem `xml:"Items>Item1"` - Before, After string -} - -type PathTestC struct { - Values1 []string `xml:"Items>Item1>Value"` - Values2 []string `xml:"Items>Item2>Value"` - Before, After string -} - -type PathTestSet struct { - Item1 []PathTestItem -} - -type PathTestD struct { - Other PathTestSet `xml:"Items"` - Before, After string -} - -type PathTestE struct { - Underline string `xml:"Items>_>Value"` - Before, After string -} - -var pathTests = []interface{}{ - &PathTestA{Items: []PathTestItem{{"A"}, {"D"}}, Before: "1", After: "2"}, - &PathTestB{Other: []PathTestItem{{"A"}, {"D"}}, Before: "1", After: "2"}, - &PathTestC{Values1: []string{"A", "C", "D"}, Values2: []string{"B"}, Before: "1", After: "2"}, - &PathTestD{Other: PathTestSet{Item1: []PathTestItem{{"A"}, {"D"}}}, Before: "1", After: "2"}, - &PathTestE{Underline: "E", Before: "1", After: "2"}, -} - -func TestUnmarshalPaths(t *testing.T) { - for _, pt := range pathTests { - v := reflect.New(reflect.TypeOf(pt).Elem()).Interface() - if err := Unmarshal([]byte(pathTestString), v); err != nil { - t.Fatalf("Unmarshal: %s", err) - } - if !reflect.DeepEqual(v, pt) { - t.Fatalf("have %#v\nwant %#v", v, pt) - } - } -} - -type BadPathTestA struct { - First string `xml:"items>item1"` - Other string `xml:"items>item2"` - Second string `xml:"items"` -} - -type BadPathTestB struct { - Other string `xml:"items>item2>value"` - First string `xml:"items>item1"` - Second string `xml:"items>item1>value"` -} - -type BadPathTestC struct { - First string - Second string `xml:"First"` -} - -type BadPathTestD struct { - BadPathEmbeddedA - BadPathEmbeddedB -} - -type BadPathEmbeddedA struct { - First string -} - -type BadPathEmbeddedB struct { - Second string `xml:"First"` -} - -var badPathTests = []struct { - v, e interface{} -}{ - {&BadPathTestA{}, &TagPathError{reflect.TypeOf(BadPathTestA{}), "First", "items>item1", "Second", "items"}}, - {&BadPathTestB{}, &TagPathError{reflect.TypeOf(BadPathTestB{}), "First", "items>item1", "Second", "items>item1>value"}}, - {&BadPathTestC{}, &TagPathError{reflect.TypeOf(BadPathTestC{}), "First", "", "Second", "First"}}, - {&BadPathTestD{}, &TagPathError{reflect.TypeOf(BadPathTestD{}), "First", "", "Second", "First"}}, -} - -func TestUnmarshalBadPaths(t *testing.T) { - for _, tt := range badPathTests { - err := Unmarshal([]byte(pathTestString), tt.v) - if !reflect.DeepEqual(err, tt.e) { - t.Fatalf("Unmarshal with %#v didn't fail properly:\nhave %#v,\nwant %#v", tt.v, err, tt.e) - } - } -} - -const OK = "OK" -const withoutNameTypeData = ` - -` - -type TestThree struct { - XMLName Name `xml:"Test3"` - Attr string `xml:",attr"` -} - -func TestUnmarshalWithoutNameType(t *testing.T) { - var x TestThree - if err := Unmarshal([]byte(withoutNameTypeData), &x); err != nil { - t.Fatalf("Unmarshal: %s", err) - } - if x.Attr != OK { - t.Fatalf("have %v\nwant %v", x.Attr, OK) - } -} - -func TestUnmarshalAttr(t *testing.T) { - type ParamVal struct { - Int int `xml:"int,attr"` - } - - type ParamPtr struct { - Int *int `xml:"int,attr"` - } - - type ParamStringPtr struct { - Int *string `xml:"int,attr"` - } - - x := []byte(``) - - p1 := &ParamPtr{} - if err := Unmarshal(x, p1); err != nil { - t.Fatalf("Unmarshal: %s", err) - } - if p1.Int == nil { - t.Fatalf("Unmarshal failed in to *int field") - } else if *p1.Int != 1 { - t.Fatalf("Unmarshal with %s failed:\nhave %#v,\n want %#v", x, p1.Int, 1) - } - - p2 := &ParamVal{} - if err := Unmarshal(x, p2); err != nil { - t.Fatalf("Unmarshal: %s", err) - } - if p2.Int != 1 { - t.Fatalf("Unmarshal with %s failed:\nhave %#v,\n want %#v", x, p2.Int, 1) - } - - p3 := &ParamStringPtr{} - if err := Unmarshal(x, p3); err != nil { - t.Fatalf("Unmarshal: %s", err) - } - if p3.Int == nil { - t.Fatalf("Unmarshal failed in to *string field") - } else if *p3.Int != "1" { - t.Fatalf("Unmarshal with %s failed:\nhave %#v,\n want %#v", x, p3.Int, 1) - } -} - -type Tables struct { - HTable string `xml:"http://www.w3.org/TR/html4/ table"` - FTable string `xml:"http://www.w3schools.com/furniture table"` -} - -var tables = []struct { - xml string - tab Tables - ns string -}{ - { - xml: `` + - `hello
    ` + - `world
    ` + - `
    `, - tab: Tables{"hello", "world"}, - }, - { - xml: `` + - `world
    ` + - `hello
    ` + - `
    `, - tab: Tables{"hello", "world"}, - }, - { - xml: `` + - `world` + - `hello` + - ``, - tab: Tables{"hello", "world"}, - }, - { - xml: `` + - `bogus
    ` + - `
    `, - tab: Tables{}, - }, - { - xml: `` + - `only
    ` + - `
    `, - tab: Tables{HTable: "only"}, - ns: "http://www.w3.org/TR/html4/", - }, - { - xml: `` + - `only
    ` + - `
    `, - tab: Tables{FTable: "only"}, - ns: "http://www.w3schools.com/furniture", - }, - { - xml: `` + - `only
    ` + - `
    `, - tab: Tables{}, - ns: "something else entirely", - }, -} - -func TestUnmarshalNS(t *testing.T) { - for i, tt := range tables { - var dst Tables - var err error - if tt.ns != "" { - d := NewDecoder(strings.NewReader(tt.xml)) - d.DefaultSpace = tt.ns - err = d.Decode(&dst) - } else { - err = Unmarshal([]byte(tt.xml), &dst) - } - if err != nil { - t.Errorf("#%d: Unmarshal: %v", i, err) - continue - } - want := tt.tab - if dst != want { - t.Errorf("#%d: dst=%+v, want %+v", i, dst, want) - } - } -} - -func TestRoundTrip(t *testing.T) { - // From issue 7535 - const s = `` - in := bytes.NewBufferString(s) - for i := 0; i < 10; i++ { - out := &bytes.Buffer{} - d := NewDecoder(in) - e := NewEncoder(out) - - for { - t, err := d.Token() - if err == io.EOF { - break - } - if err != nil { - fmt.Println("failed:", err) - return - } - e.EncodeToken(t) - } - e.Flush() - in = out - } - if got := in.String(); got != s { - t.Errorf("have: %q\nwant: %q\n", got, s) - } -} - -func TestMarshalNS(t *testing.T) { - dst := Tables{"hello", "world"} - data, err := Marshal(&dst) - if err != nil { - t.Fatalf("Marshal: %v", err) - } - want := `hello
    world
    ` - str := string(data) - if str != want { - t.Errorf("have: %q\nwant: %q\n", str, want) - } -} - -type TableAttrs struct { - TAttr TAttr -} - -type TAttr struct { - HTable string `xml:"http://www.w3.org/TR/html4/ table,attr"` - FTable string `xml:"http://www.w3schools.com/furniture table,attr"` - Lang string `xml:"http://www.w3.org/XML/1998/namespace lang,attr,omitempty"` - Other1 string `xml:"http://golang.org/xml/ other,attr,omitempty"` - Other2 string `xml:"http://golang.org/xmlfoo/ other,attr,omitempty"` - Other3 string `xml:"http://golang.org/json/ other,attr,omitempty"` - Other4 string `xml:"http://golang.org/2/json/ other,attr,omitempty"` -} - -var tableAttrs = []struct { - xml string - tab TableAttrs - ns string -}{ - { - xml: ``, - tab: TableAttrs{TAttr{HTable: "hello", FTable: "world"}}, - }, - { - xml: ``, - tab: TableAttrs{TAttr{HTable: "hello", FTable: "world"}}, - }, - { - xml: ``, - tab: TableAttrs{TAttr{HTable: "hello", FTable: "world"}}, - }, - { - // Default space does not apply to attribute names. - xml: ``, - tab: TableAttrs{TAttr{HTable: "hello", FTable: ""}}, - }, - { - // Default space does not apply to attribute names. - xml: ``, - tab: TableAttrs{TAttr{HTable: "", FTable: "world"}}, - }, - { - xml: ``, - tab: TableAttrs{}, - }, - { - // Default space does not apply to attribute names. - xml: ``, - tab: TableAttrs{TAttr{HTable: "hello", FTable: ""}}, - ns: "http://www.w3schools.com/furniture", - }, - { - // Default space does not apply to attribute names. - xml: ``, - tab: TableAttrs{TAttr{HTable: "", FTable: "world"}}, - ns: "http://www.w3.org/TR/html4/", - }, - { - xml: ``, - tab: TableAttrs{}, - ns: "something else entirely", - }, -} - -func TestUnmarshalNSAttr(t *testing.T) { - for i, tt := range tableAttrs { - var dst TableAttrs - var err error - if tt.ns != "" { - d := NewDecoder(strings.NewReader(tt.xml)) - d.DefaultSpace = tt.ns - err = d.Decode(&dst) - } else { - err = Unmarshal([]byte(tt.xml), &dst) - } - if err != nil { - t.Errorf("#%d: Unmarshal: %v", i, err) - continue - } - want := tt.tab - if dst != want { - t.Errorf("#%d: dst=%+v, want %+v", i, dst, want) - } - } -} - -func TestMarshalNSAttr(t *testing.T) { - src := TableAttrs{TAttr{"hello", "world", "en_US", "other1", "other2", "other3", "other4"}} - data, err := Marshal(&src) - if err != nil { - t.Fatalf("Marshal: %v", err) - } - want := `` - str := string(data) - if str != want { - t.Errorf("Marshal:\nhave: %#q\nwant: %#q\n", str, want) - } - - var dst TableAttrs - if err := Unmarshal(data, &dst); err != nil { - t.Errorf("Unmarshal: %v", err) - } - - if dst != src { - t.Errorf("Unmarshal = %q, want %q", dst, src) - } -} - -type MyCharData struct { - body string -} - -func (m *MyCharData) UnmarshalXML(d *Decoder, start StartElement) error { - for { - t, err := d.Token() - if err == io.EOF { // found end of element - break - } - if err != nil { - return err - } - if char, ok := t.(CharData); ok { - m.body += string(char) - } - } - return nil -} - -var _ Unmarshaler = (*MyCharData)(nil) - -func (m *MyCharData) UnmarshalXMLAttr(attr Attr) error { - panic("must not call") -} - -type MyAttr struct { - attr string -} - -func (m *MyAttr) UnmarshalXMLAttr(attr Attr) error { - m.attr = attr.Value - return nil -} - -var _ UnmarshalerAttr = (*MyAttr)(nil) - -type MyStruct struct { - Data *MyCharData - Attr *MyAttr `xml:",attr"` - - Data2 MyCharData - Attr2 MyAttr `xml:",attr"` -} - -func TestUnmarshaler(t *testing.T) { - xml := ` - - hello world - howdy world - - ` - - var m MyStruct - if err := Unmarshal([]byte(xml), &m); err != nil { - t.Fatal(err) - } - - if m.Data == nil || m.Attr == nil || m.Data.body != "hello world" || m.Attr.attr != "attr1" || m.Data2.body != "howdy world" || m.Attr2.attr != "attr2" { - t.Errorf("m=%#+v\n", m) - } -} - -type Pea struct { - Cotelydon string -} - -type Pod struct { - Pea interface{} `xml:"Pea"` -} - -// https://golang.org/issue/6836 -func TestUnmarshalIntoInterface(t *testing.T) { - pod := new(Pod) - pod.Pea = new(Pea) - xml := `Green stuff` - err := Unmarshal([]byte(xml), pod) - if err != nil { - t.Fatalf("failed to unmarshal %q: %v", xml, err) - } - pea, ok := pod.Pea.(*Pea) - if !ok { - t.Fatalf("unmarshalled into wrong type: have %T want *Pea", pod.Pea) - } - have, want := pea.Cotelydon, "Green stuff" - if have != want { - t.Errorf("failed to unmarshal into interface, have %q want %q", have, want) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/typeinfo.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/typeinfo.go deleted file mode 100644 index c9a6421f..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/typeinfo.go +++ /dev/null @@ -1,371 +0,0 @@ -// 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 xml - -import ( - "fmt" - "reflect" - "strings" - "sync" -) - -// typeInfo holds details for the xml representation of a type. -type typeInfo struct { - xmlname *fieldInfo - fields []fieldInfo -} - -// fieldInfo holds details for the xml representation of a single field. -type fieldInfo struct { - idx []int - name string - xmlns string - flags fieldFlags - parents []string -} - -type fieldFlags int - -const ( - fElement fieldFlags = 1 << iota - fAttr - fCharData - fInnerXml - fComment - fAny - - fOmitEmpty - - fMode = fElement | fAttr | fCharData | fInnerXml | fComment | fAny -) - -var tinfoMap = make(map[reflect.Type]*typeInfo) -var tinfoLock sync.RWMutex - -var nameType = reflect.TypeOf(Name{}) - -// getTypeInfo returns the typeInfo structure with details necessary -// for marshalling and unmarshalling typ. -func getTypeInfo(typ reflect.Type) (*typeInfo, error) { - tinfoLock.RLock() - tinfo, ok := tinfoMap[typ] - tinfoLock.RUnlock() - if ok { - return tinfo, nil - } - tinfo = &typeInfo{} - if typ.Kind() == reflect.Struct && typ != nameType { - n := typ.NumField() - for i := 0; i < n; i++ { - f := typ.Field(i) - if f.PkgPath != "" || f.Tag.Get("xml") == "-" { - continue // Private field - } - - // For embedded structs, embed its fields. - if f.Anonymous { - t := f.Type - if t.Kind() == reflect.Ptr { - t = t.Elem() - } - if t.Kind() == reflect.Struct { - inner, err := getTypeInfo(t) - if err != nil { - return nil, err - } - if tinfo.xmlname == nil { - tinfo.xmlname = inner.xmlname - } - for _, finfo := range inner.fields { - finfo.idx = append([]int{i}, finfo.idx...) - if err := addFieldInfo(typ, tinfo, &finfo); err != nil { - return nil, err - } - } - continue - } - } - - finfo, err := structFieldInfo(typ, &f) - if err != nil { - return nil, err - } - - if f.Name == "XMLName" { - tinfo.xmlname = finfo - continue - } - - // Add the field if it doesn't conflict with other fields. - if err := addFieldInfo(typ, tinfo, finfo); err != nil { - return nil, err - } - } - } - tinfoLock.Lock() - tinfoMap[typ] = tinfo - tinfoLock.Unlock() - return tinfo, nil -} - -// structFieldInfo builds and returns a fieldInfo for f. -func structFieldInfo(typ reflect.Type, f *reflect.StructField) (*fieldInfo, error) { - finfo := &fieldInfo{idx: f.Index} - - // Split the tag from the xml namespace if necessary. - tag := f.Tag.Get("xml") - if i := strings.Index(tag, " "); i >= 0 { - finfo.xmlns, tag = tag[:i], tag[i+1:] - } - - // Parse flags. - tokens := strings.Split(tag, ",") - if len(tokens) == 1 { - finfo.flags = fElement - } else { - tag = tokens[0] - for _, flag := range tokens[1:] { - switch flag { - case "attr": - finfo.flags |= fAttr - case "chardata": - finfo.flags |= fCharData - case "innerxml": - finfo.flags |= fInnerXml - case "comment": - finfo.flags |= fComment - case "any": - finfo.flags |= fAny - case "omitempty": - finfo.flags |= fOmitEmpty - } - } - - // Validate the flags used. - valid := true - switch mode := finfo.flags & fMode; mode { - case 0: - finfo.flags |= fElement - case fAttr, fCharData, fInnerXml, fComment, fAny: - if f.Name == "XMLName" || tag != "" && mode != fAttr { - valid = false - } - default: - // This will also catch multiple modes in a single field. - valid = false - } - if finfo.flags&fMode == fAny { - finfo.flags |= fElement - } - if finfo.flags&fOmitEmpty != 0 && finfo.flags&(fElement|fAttr) == 0 { - valid = false - } - if !valid { - return nil, fmt.Errorf("xml: invalid tag in field %s of type %s: %q", - f.Name, typ, f.Tag.Get("xml")) - } - } - - // Use of xmlns without a name is not allowed. - if finfo.xmlns != "" && tag == "" { - return nil, fmt.Errorf("xml: namespace without name in field %s of type %s: %q", - f.Name, typ, f.Tag.Get("xml")) - } - - if f.Name == "XMLName" { - // The XMLName field records the XML element name. Don't - // process it as usual because its name should default to - // empty rather than to the field name. - finfo.name = tag - return finfo, nil - } - - if tag == "" { - // If the name part of the tag is completely empty, get - // default from XMLName of underlying struct if feasible, - // or field name otherwise. - if xmlname := lookupXMLName(f.Type); xmlname != nil { - finfo.xmlns, finfo.name = xmlname.xmlns, xmlname.name - } else { - finfo.name = f.Name - } - return finfo, nil - } - - if finfo.xmlns == "" && finfo.flags&fAttr == 0 { - // If it's an element no namespace specified, get the default - // from the XMLName of enclosing struct if possible. - if xmlname := lookupXMLName(typ); xmlname != nil { - finfo.xmlns = xmlname.xmlns - } - } - - // Prepare field name and parents. - parents := strings.Split(tag, ">") - if parents[0] == "" { - parents[0] = f.Name - } - if parents[len(parents)-1] == "" { - return nil, fmt.Errorf("xml: trailing '>' in field %s of type %s", f.Name, typ) - } - finfo.name = parents[len(parents)-1] - if len(parents) > 1 { - if (finfo.flags & fElement) == 0 { - return nil, fmt.Errorf("xml: %s chain not valid with %s flag", tag, strings.Join(tokens[1:], ",")) - } - finfo.parents = parents[:len(parents)-1] - } - - // If the field type has an XMLName field, the names must match - // so that the behavior of both marshalling and unmarshalling - // is straightforward and unambiguous. - if finfo.flags&fElement != 0 { - ftyp := f.Type - xmlname := lookupXMLName(ftyp) - if xmlname != nil && xmlname.name != finfo.name { - return nil, fmt.Errorf("xml: name %q in tag of %s.%s conflicts with name %q in %s.XMLName", - finfo.name, typ, f.Name, xmlname.name, ftyp) - } - } - return finfo, nil -} - -// lookupXMLName returns the fieldInfo for typ's XMLName field -// in case it exists and has a valid xml field tag, otherwise -// it returns nil. -func lookupXMLName(typ reflect.Type) (xmlname *fieldInfo) { - for typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - if typ.Kind() != reflect.Struct { - return nil - } - for i, n := 0, typ.NumField(); i < n; i++ { - f := typ.Field(i) - if f.Name != "XMLName" { - continue - } - finfo, err := structFieldInfo(typ, &f) - if finfo.name != "" && err == nil { - return finfo - } - // Also consider errors as a non-existent field tag - // and let getTypeInfo itself report the error. - break - } - return nil -} - -func min(a, b int) int { - if a <= b { - return a - } - return b -} - -// addFieldInfo adds finfo to tinfo.fields if there are no -// conflicts, or if conflicts arise from previous fields that were -// obtained from deeper embedded structures than finfo. In the latter -// case, the conflicting entries are dropped. -// A conflict occurs when the path (parent + name) to a field is -// itself a prefix of another path, or when two paths match exactly. -// It is okay for field paths to share a common, shorter prefix. -func addFieldInfo(typ reflect.Type, tinfo *typeInfo, newf *fieldInfo) error { - var conflicts []int -Loop: - // First, figure all conflicts. Most working code will have none. - for i := range tinfo.fields { - oldf := &tinfo.fields[i] - if oldf.flags&fMode != newf.flags&fMode { - continue - } - if oldf.xmlns != "" && newf.xmlns != "" && oldf.xmlns != newf.xmlns { - continue - } - minl := min(len(newf.parents), len(oldf.parents)) - for p := 0; p < minl; p++ { - if oldf.parents[p] != newf.parents[p] { - continue Loop - } - } - if len(oldf.parents) > len(newf.parents) { - if oldf.parents[len(newf.parents)] == newf.name { - conflicts = append(conflicts, i) - } - } else if len(oldf.parents) < len(newf.parents) { - if newf.parents[len(oldf.parents)] == oldf.name { - conflicts = append(conflicts, i) - } - } else { - if newf.name == oldf.name { - conflicts = append(conflicts, i) - } - } - } - // Without conflicts, add the new field and return. - if conflicts == nil { - tinfo.fields = append(tinfo.fields, *newf) - return nil - } - - // If any conflict is shallower, ignore the new field. - // This matches the Go field resolution on embedding. - for _, i := range conflicts { - if len(tinfo.fields[i].idx) < len(newf.idx) { - return nil - } - } - - // Otherwise, if any of them is at the same depth level, it's an error. - for _, i := range conflicts { - oldf := &tinfo.fields[i] - if len(oldf.idx) == len(newf.idx) { - f1 := typ.FieldByIndex(oldf.idx) - f2 := typ.FieldByIndex(newf.idx) - return &TagPathError{typ, f1.Name, f1.Tag.Get("xml"), f2.Name, f2.Tag.Get("xml")} - } - } - - // Otherwise, the new field is shallower, and thus takes precedence, - // so drop the conflicting fields from tinfo and append the new one. - for c := len(conflicts) - 1; c >= 0; c-- { - i := conflicts[c] - copy(tinfo.fields[i:], tinfo.fields[i+1:]) - tinfo.fields = tinfo.fields[:len(tinfo.fields)-1] - } - tinfo.fields = append(tinfo.fields, *newf) - return nil -} - -// A TagPathError represents an error in the unmarshalling process -// caused by the use of field tags with conflicting paths. -type TagPathError struct { - Struct reflect.Type - Field1, Tag1 string - Field2, Tag2 string -} - -func (e *TagPathError) Error() string { - return fmt.Sprintf("%s field %q with tag %q conflicts with field %q with tag %q", e.Struct, e.Field1, e.Tag1, e.Field2, e.Tag2) -} - -// value returns v's field value corresponding to finfo. -// It's equivalent to v.FieldByIndex(finfo.idx), but initializes -// and dereferences pointers as necessary. -func (finfo *fieldInfo) value(v reflect.Value) reflect.Value { - for i, x := range finfo.idx { - if i > 0 { - t := v.Type() - if t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Struct { - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) - } - v = v.Elem() - } - } - v = v.Field(x) - } - return v -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/xml.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/xml.go deleted file mode 100644 index ffab4a70..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml/xml.go +++ /dev/null @@ -1,1998 +0,0 @@ -// Copyright 2009 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 xml implements a simple XML 1.0 parser that -// understands XML name spaces. -package xml - -// References: -// Annotated XML spec: http://www.xml.com/axml/testaxml.htm -// XML name spaces: http://www.w3.org/TR/REC-xml-names/ - -// TODO(rsc): -// Test error handling. - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "io" - "strconv" - "strings" - "unicode" - "unicode/utf8" -) - -// A SyntaxError represents a syntax error in the XML input stream. -type SyntaxError struct { - Msg string - Line int -} - -func (e *SyntaxError) Error() string { - return "XML syntax error on line " + strconv.Itoa(e.Line) + ": " + e.Msg -} - -// A Name represents an XML name (Local) annotated with a name space -// identifier (Space). In tokens returned by Decoder.Token, the Space -// identifier is given as a canonical URL, not the short prefix used in -// the document being parsed. -// -// As a special case, XML namespace declarations will use the literal -// string "xmlns" for the Space field instead of the fully resolved URL. -// See Encoder.EncodeToken for more information on namespace encoding -// behaviour. -type Name struct { - Space, Local string -} - -// isNamespace reports whether the name is a namespace-defining name. -func (name Name) isNamespace() bool { - return name.Local == "xmlns" || name.Space == "xmlns" -} - -// An Attr represents an attribute in an XML element (Name=Value). -type Attr struct { - Name Name - Value string -} - -// A Token is an interface holding one of the token types: -// StartElement, EndElement, CharData, Comment, ProcInst, or Directive. -type Token interface{} - -// A StartElement represents an XML start element. -type StartElement struct { - Name Name - Attr []Attr -} - -func (e StartElement) Copy() StartElement { - attrs := make([]Attr, len(e.Attr)) - copy(attrs, e.Attr) - e.Attr = attrs - return e -} - -// End returns the corresponding XML end element. -func (e StartElement) End() EndElement { - return EndElement{e.Name} -} - -// setDefaultNamespace sets the namespace of the element -// as the default for all elements contained within it. -func (e *StartElement) setDefaultNamespace() { - if e.Name.Space == "" { - // If there's no namespace on the element, don't - // set the default. Strictly speaking this might be wrong, as - // we can't tell if the element had no namespace set - // or was just using the default namespace. - return - } - // Don't add a default name space if there's already one set. - for _, attr := range e.Attr { - if attr.Name.Space == "" && attr.Name.Local == "xmlns" { - return - } - } - e.Attr = append(e.Attr, Attr{ - Name: Name{ - Local: "xmlns", - }, - Value: e.Name.Space, - }) -} - -// An EndElement represents an XML end element. -type EndElement struct { - Name Name -} - -// A CharData represents XML character data (raw text), -// in which XML escape sequences have been replaced by -// the characters they represent. -type CharData []byte - -func makeCopy(b []byte) []byte { - b1 := make([]byte, len(b)) - copy(b1, b) - return b1 -} - -func (c CharData) Copy() CharData { return CharData(makeCopy(c)) } - -// A Comment represents an XML comment of the form . -// The bytes do not include the comment markers. -type Comment []byte - -func (c Comment) Copy() Comment { return Comment(makeCopy(c)) } - -// A ProcInst represents an XML processing instruction of the form -type ProcInst struct { - Target string - Inst []byte -} - -func (p ProcInst) Copy() ProcInst { - p.Inst = makeCopy(p.Inst) - return p -} - -// A Directive represents an XML directive of the form . -// The bytes do not include the markers. -type Directive []byte - -func (d Directive) Copy() Directive { return Directive(makeCopy(d)) } - -// CopyToken returns a copy of a Token. -func CopyToken(t Token) Token { - switch v := t.(type) { - case CharData: - return v.Copy() - case Comment: - return v.Copy() - case Directive: - return v.Copy() - case ProcInst: - return v.Copy() - case StartElement: - return v.Copy() - } - return t -} - -// A Decoder represents an XML parser reading a particular input stream. -// The parser assumes that its input is encoded in UTF-8. -type Decoder struct { - // Strict defaults to true, enforcing the requirements - // of the XML specification. - // If set to false, the parser allows input containing common - // mistakes: - // * If an element is missing an end tag, the parser invents - // end tags as necessary to keep the return values from Token - // properly balanced. - // * In attribute values and character data, unknown or malformed - // character entities (sequences beginning with &) are left alone. - // - // Setting: - // - // d.Strict = false; - // d.AutoClose = HTMLAutoClose; - // d.Entity = HTMLEntity - // - // creates a parser that can handle typical HTML. - // - // Strict mode does not enforce the requirements of the XML name spaces TR. - // In particular it does not reject name space tags using undefined prefixes. - // Such tags are recorded with the unknown prefix as the name space URL. - Strict bool - - // When Strict == false, AutoClose indicates a set of elements to - // consider closed immediately after they are opened, regardless - // of whether an end element is present. - AutoClose []string - - // Entity can be used to map non-standard entity names to string replacements. - // The parser behaves as if these standard mappings are present in the map, - // regardless of the actual map content: - // - // "lt": "<", - // "gt": ">", - // "amp": "&", - // "apos": "'", - // "quot": `"`, - Entity map[string]string - - // CharsetReader, if non-nil, defines a function to generate - // charset-conversion readers, converting from the provided - // non-UTF-8 charset into UTF-8. If CharsetReader is nil or - // returns an error, parsing stops with an error. One of the - // the CharsetReader's result values must be non-nil. - CharsetReader func(charset string, input io.Reader) (io.Reader, error) - - // DefaultSpace sets the default name space used for unadorned tags, - // as if the entire XML stream were wrapped in an element containing - // the attribute xmlns="DefaultSpace". - DefaultSpace string - - r io.ByteReader - buf bytes.Buffer - saved *bytes.Buffer - stk *stack - free *stack - needClose bool - toClose Name - nextToken Token - nextByte int - ns map[string]string - err error - line int - offset int64 - unmarshalDepth int -} - -// NewDecoder creates a new XML parser reading from r. -// If r does not implement io.ByteReader, NewDecoder will -// do its own buffering. -func NewDecoder(r io.Reader) *Decoder { - d := &Decoder{ - ns: make(map[string]string), - nextByte: -1, - line: 1, - Strict: true, - } - d.switchToReader(r) - return d -} - -// Token returns the next XML token in the input stream. -// At the end of the input stream, Token returns nil, io.EOF. -// -// Slices of bytes in the returned token data refer to the -// parser's internal buffer and remain valid only until the next -// call to Token. To acquire a copy of the bytes, call CopyToken -// or the token's Copy method. -// -// Token expands self-closing elements such as
    -// into separate start and end elements returned by successive calls. -// -// Token guarantees that the StartElement and EndElement -// tokens it returns are properly nested and matched: -// if Token encounters an unexpected end element, -// it will return an error. -// -// Token implements XML name spaces as described by -// http://www.w3.org/TR/REC-xml-names/. Each of the -// Name structures contained in the Token has the Space -// set to the URL identifying its name space when known. -// If Token encounters an unrecognized name space prefix, -// it uses the prefix as the Space rather than report an error. -func (d *Decoder) Token() (t Token, err error) { - if d.stk != nil && d.stk.kind == stkEOF { - err = io.EOF - return - } - if d.nextToken != nil { - t = d.nextToken - d.nextToken = nil - } else if t, err = d.rawToken(); err != nil { - return - } - - if !d.Strict { - if t1, ok := d.autoClose(t); ok { - d.nextToken = t - t = t1 - } - } - switch t1 := t.(type) { - case StartElement: - // In XML name spaces, the translations listed in the - // attributes apply to the element name and - // to the other attribute names, so process - // the translations first. - for _, a := range t1.Attr { - if a.Name.Space == "xmlns" { - v, ok := d.ns[a.Name.Local] - d.pushNs(a.Name.Local, v, ok) - d.ns[a.Name.Local] = a.Value - } - if a.Name.Space == "" && a.Name.Local == "xmlns" { - // Default space for untagged names - v, ok := d.ns[""] - d.pushNs("", v, ok) - d.ns[""] = a.Value - } - } - - d.translate(&t1.Name, true) - for i := range t1.Attr { - d.translate(&t1.Attr[i].Name, false) - } - d.pushElement(t1.Name) - t = t1 - - case EndElement: - d.translate(&t1.Name, true) - if !d.popElement(&t1) { - return nil, d.err - } - t = t1 - } - return -} - -const xmlURL = "http://www.w3.org/XML/1998/namespace" - -// Apply name space translation to name n. -// The default name space (for Space=="") -// applies only to element names, not to attribute names. -func (d *Decoder) translate(n *Name, isElementName bool) { - switch { - case n.Space == "xmlns": - return - case n.Space == "" && !isElementName: - return - case n.Space == "xml": - n.Space = xmlURL - case n.Space == "" && n.Local == "xmlns": - return - } - if v, ok := d.ns[n.Space]; ok { - n.Space = v - } else if n.Space == "" { - n.Space = d.DefaultSpace - } -} - -func (d *Decoder) switchToReader(r io.Reader) { - // Get efficient byte at a time reader. - // Assume that if reader has its own - // ReadByte, it's efficient enough. - // Otherwise, use bufio. - if rb, ok := r.(io.ByteReader); ok { - d.r = rb - } else { - d.r = bufio.NewReader(r) - } -} - -// Parsing state - stack holds old name space translations -// and the current set of open elements. The translations to pop when -// ending a given tag are *below* it on the stack, which is -// more work but forced on us by XML. -type stack struct { - next *stack - kind int - name Name - ok bool -} - -const ( - stkStart = iota - stkNs - stkEOF -) - -func (d *Decoder) push(kind int) *stack { - s := d.free - if s != nil { - d.free = s.next - } else { - s = new(stack) - } - s.next = d.stk - s.kind = kind - d.stk = s - return s -} - -func (d *Decoder) pop() *stack { - s := d.stk - if s != nil { - d.stk = s.next - s.next = d.free - d.free = s - } - return s -} - -// Record that after the current element is finished -// (that element is already pushed on the stack) -// Token should return EOF until popEOF is called. -func (d *Decoder) pushEOF() { - // Walk down stack to find Start. - // It might not be the top, because there might be stkNs - // entries above it. - start := d.stk - for start.kind != stkStart { - start = start.next - } - // The stkNs entries below a start are associated with that - // element too; skip over them. - for start.next != nil && start.next.kind == stkNs { - start = start.next - } - s := d.free - if s != nil { - d.free = s.next - } else { - s = new(stack) - } - s.kind = stkEOF - s.next = start.next - start.next = s -} - -// Undo a pushEOF. -// The element must have been finished, so the EOF should be at the top of the stack. -func (d *Decoder) popEOF() bool { - if d.stk == nil || d.stk.kind != stkEOF { - return false - } - d.pop() - return true -} - -// Record that we are starting an element with the given name. -func (d *Decoder) pushElement(name Name) { - s := d.push(stkStart) - s.name = name -} - -// Record that we are changing the value of ns[local]. -// The old value is url, ok. -func (d *Decoder) pushNs(local string, url string, ok bool) { - s := d.push(stkNs) - s.name.Local = local - s.name.Space = url - s.ok = ok -} - -// Creates a SyntaxError with the current line number. -func (d *Decoder) syntaxError(msg string) error { - return &SyntaxError{Msg: msg, Line: d.line} -} - -// Record that we are ending an element with the given name. -// The name must match the record at the top of the stack, -// which must be a pushElement record. -// After popping the element, apply any undo records from -// the stack to restore the name translations that existed -// before we saw this element. -func (d *Decoder) popElement(t *EndElement) bool { - s := d.pop() - name := t.Name - switch { - case s == nil || s.kind != stkStart: - d.err = d.syntaxError("unexpected end element ") - return false - case s.name.Local != name.Local: - if !d.Strict { - d.needClose = true - d.toClose = t.Name - t.Name = s.name - return true - } - d.err = d.syntaxError("element <" + s.name.Local + "> closed by ") - return false - case s.name.Space != name.Space: - d.err = d.syntaxError("element <" + s.name.Local + "> in space " + s.name.Space + - "closed by in space " + name.Space) - return false - } - - // Pop stack until a Start or EOF is on the top, undoing the - // translations that were associated with the element we just closed. - for d.stk != nil && d.stk.kind != stkStart && d.stk.kind != stkEOF { - s := d.pop() - if s.ok { - d.ns[s.name.Local] = s.name.Space - } else { - delete(d.ns, s.name.Local) - } - } - - return true -} - -// If the top element on the stack is autoclosing and -// t is not the end tag, invent the end tag. -func (d *Decoder) autoClose(t Token) (Token, bool) { - if d.stk == nil || d.stk.kind != stkStart { - return nil, false - } - name := strings.ToLower(d.stk.name.Local) - for _, s := range d.AutoClose { - if strings.ToLower(s) == name { - // This one should be auto closed if t doesn't close it. - et, ok := t.(EndElement) - if !ok || et.Name.Local != name { - return EndElement{d.stk.name}, true - } - break - } - } - return nil, false -} - -var errRawToken = errors.New("xml: cannot use RawToken from UnmarshalXML method") - -// RawToken is like Token but does not verify that -// start and end elements match and does not translate -// name space prefixes to their corresponding URLs. -func (d *Decoder) RawToken() (Token, error) { - if d.unmarshalDepth > 0 { - return nil, errRawToken - } - return d.rawToken() -} - -func (d *Decoder) rawToken() (Token, error) { - if d.err != nil { - return nil, d.err - } - if d.needClose { - // The last element we read was self-closing and - // we returned just the StartElement half. - // Return the EndElement half now. - d.needClose = false - return EndElement{d.toClose}, nil - } - - b, ok := d.getc() - if !ok { - return nil, d.err - } - - if b != '<' { - // Text section. - d.ungetc(b) - data := d.text(-1, false) - if data == nil { - return nil, d.err - } - return CharData(data), nil - } - - if b, ok = d.mustgetc(); !ok { - return nil, d.err - } - switch b { - case '/': - // ' { - d.err = d.syntaxError("invalid characters between ") - return nil, d.err - } - return EndElement{name}, nil - - case '?': - // ' { - break - } - b0 = b - } - data := d.buf.Bytes() - data = data[0 : len(data)-2] // chop ?> - - if target == "xml" { - content := string(data) - ver := procInst("version", content) - if ver != "" && ver != "1.0" { - d.err = fmt.Errorf("xml: unsupported version %q; only version 1.0 is supported", ver) - return nil, d.err - } - enc := procInst("encoding", content) - if enc != "" && enc != "utf-8" && enc != "UTF-8" { - if d.CharsetReader == nil { - d.err = fmt.Errorf("xml: encoding %q declared but Decoder.CharsetReader is nil", enc) - return nil, d.err - } - newr, err := d.CharsetReader(enc, d.r.(io.Reader)) - if err != nil { - d.err = fmt.Errorf("xml: opening charset %q: %v", enc, err) - return nil, d.err - } - if newr == nil { - panic("CharsetReader returned a nil Reader for charset " + enc) - } - d.switchToReader(newr) - } - } - return ProcInst{target, data}, nil - - case '!': - // ' { - break - } - b0, b1 = b1, b - } - data := d.buf.Bytes() - data = data[0 : len(data)-3] // chop --> - return Comment(data), nil - - case '[': // . - data := d.text(-1, true) - if data == nil { - return nil, d.err - } - return CharData(data), nil - } - - // Probably a directive: , , etc. - // We don't care, but accumulate for caller. Quoted angle - // brackets do not count for nesting. - d.buf.Reset() - d.buf.WriteByte(b) - inquote := uint8(0) - depth := 0 - for { - if b, ok = d.mustgetc(); !ok { - return nil, d.err - } - if inquote == 0 && b == '>' && depth == 0 { - break - } - HandleB: - d.buf.WriteByte(b) - switch { - case b == inquote: - inquote = 0 - - case inquote != 0: - // in quotes, no special action - - case b == '\'' || b == '"': - inquote = b - - case b == '>' && inquote == 0: - depth-- - - case b == '<' && inquote == 0: - // Look for ` - -var testEntity = map[string]string{"何": "What", "is-it": "is it?"} - -var rawTokens = []Token{ - CharData("\n"), - ProcInst{"xml", []byte(`version="1.0" encoding="UTF-8"`)}, - CharData("\n"), - Directive(`DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"`), - CharData("\n"), - StartElement{Name{"", "body"}, []Attr{{Name{"xmlns", "foo"}, "ns1"}, {Name{"", "xmlns"}, "ns2"}, {Name{"xmlns", "tag"}, "ns3"}}}, - CharData("\n "), - StartElement{Name{"", "hello"}, []Attr{{Name{"", "lang"}, "en"}}}, - CharData("World <>'\" 白鵬翔"), - EndElement{Name{"", "hello"}}, - CharData("\n "), - StartElement{Name{"", "query"}, []Attr{}}, - CharData("What is it?"), - EndElement{Name{"", "query"}}, - CharData("\n "), - StartElement{Name{"", "goodbye"}, []Attr{}}, - EndElement{Name{"", "goodbye"}}, - CharData("\n "), - StartElement{Name{"", "outer"}, []Attr{{Name{"foo", "attr"}, "value"}, {Name{"xmlns", "tag"}, "ns4"}}}, - CharData("\n "), - StartElement{Name{"", "inner"}, []Attr{}}, - EndElement{Name{"", "inner"}}, - CharData("\n "), - EndElement{Name{"", "outer"}}, - CharData("\n "), - StartElement{Name{"tag", "name"}, []Attr{}}, - CharData("\n "), - CharData("Some text here."), - CharData("\n "), - EndElement{Name{"tag", "name"}}, - CharData("\n"), - EndElement{Name{"", "body"}}, - Comment(" missing final newline "), -} - -var cookedTokens = []Token{ - CharData("\n"), - ProcInst{"xml", []byte(`version="1.0" encoding="UTF-8"`)}, - CharData("\n"), - Directive(`DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"`), - CharData("\n"), - StartElement{Name{"ns2", "body"}, []Attr{{Name{"xmlns", "foo"}, "ns1"}, {Name{"", "xmlns"}, "ns2"}, {Name{"xmlns", "tag"}, "ns3"}}}, - CharData("\n "), - StartElement{Name{"ns2", "hello"}, []Attr{{Name{"", "lang"}, "en"}}}, - CharData("World <>'\" 白鵬翔"), - EndElement{Name{"ns2", "hello"}}, - CharData("\n "), - StartElement{Name{"ns2", "query"}, []Attr{}}, - CharData("What is it?"), - EndElement{Name{"ns2", "query"}}, - CharData("\n "), - StartElement{Name{"ns2", "goodbye"}, []Attr{}}, - EndElement{Name{"ns2", "goodbye"}}, - CharData("\n "), - StartElement{Name{"ns2", "outer"}, []Attr{{Name{"ns1", "attr"}, "value"}, {Name{"xmlns", "tag"}, "ns4"}}}, - CharData("\n "), - StartElement{Name{"ns2", "inner"}, []Attr{}}, - EndElement{Name{"ns2", "inner"}}, - CharData("\n "), - EndElement{Name{"ns2", "outer"}}, - CharData("\n "), - StartElement{Name{"ns3", "name"}, []Attr{}}, - CharData("\n "), - CharData("Some text here."), - CharData("\n "), - EndElement{Name{"ns3", "name"}}, - CharData("\n"), - EndElement{Name{"ns2", "body"}}, - Comment(" missing final newline "), -} - -const testInputAltEncoding = ` - -VALUE` - -var rawTokensAltEncoding = []Token{ - CharData("\n"), - ProcInst{"xml", []byte(`version="1.0" encoding="x-testing-uppercase"`)}, - CharData("\n"), - StartElement{Name{"", "tag"}, []Attr{}}, - CharData("value"), - EndElement{Name{"", "tag"}}, -} - -var xmlInput = []string{ - // unexpected EOF cases - "<", - "", - "", - "", - // "", // let the Token() caller handle - "", - "", - "", - "", - " c;", - "", - "", - "", - // "", // let the Token() caller handle - "", - "", - "cdata]]>", -} - -func TestRawToken(t *testing.T) { - d := NewDecoder(strings.NewReader(testInput)) - d.Entity = testEntity - testRawToken(t, d, testInput, rawTokens) -} - -const nonStrictInput = ` -non&entity -&unknown;entity -{ -&#zzz; -&ãªã¾ãˆ3; -<-gt; -&; -&0a; -` - -var nonStringEntity = map[string]string{"": "oops!", "0a": "oops!"} - -var nonStrictTokens = []Token{ - CharData("\n"), - StartElement{Name{"", "tag"}, []Attr{}}, - CharData("non&entity"), - EndElement{Name{"", "tag"}}, - CharData("\n"), - StartElement{Name{"", "tag"}, []Attr{}}, - CharData("&unknown;entity"), - EndElement{Name{"", "tag"}}, - CharData("\n"), - StartElement{Name{"", "tag"}, []Attr{}}, - CharData("{"), - EndElement{Name{"", "tag"}}, - CharData("\n"), - StartElement{Name{"", "tag"}, []Attr{}}, - CharData("&#zzz;"), - EndElement{Name{"", "tag"}}, - CharData("\n"), - StartElement{Name{"", "tag"}, []Attr{}}, - CharData("&ãªã¾ãˆ3;"), - EndElement{Name{"", "tag"}}, - CharData("\n"), - StartElement{Name{"", "tag"}, []Attr{}}, - CharData("<-gt;"), - EndElement{Name{"", "tag"}}, - CharData("\n"), - StartElement{Name{"", "tag"}, []Attr{}}, - CharData("&;"), - EndElement{Name{"", "tag"}}, - CharData("\n"), - StartElement{Name{"", "tag"}, []Attr{}}, - CharData("&0a;"), - EndElement{Name{"", "tag"}}, - CharData("\n"), -} - -func TestNonStrictRawToken(t *testing.T) { - d := NewDecoder(strings.NewReader(nonStrictInput)) - d.Strict = false - testRawToken(t, d, nonStrictInput, nonStrictTokens) -} - -type downCaser struct { - t *testing.T - r io.ByteReader -} - -func (d *downCaser) ReadByte() (c byte, err error) { - c, err = d.r.ReadByte() - if c >= 'A' && c <= 'Z' { - c += 'a' - 'A' - } - return -} - -func (d *downCaser) Read(p []byte) (int, error) { - d.t.Fatalf("unexpected Read call on downCaser reader") - panic("unreachable") -} - -func TestRawTokenAltEncoding(t *testing.T) { - d := NewDecoder(strings.NewReader(testInputAltEncoding)) - d.CharsetReader = func(charset string, input io.Reader) (io.Reader, error) { - if charset != "x-testing-uppercase" { - t.Fatalf("unexpected charset %q", charset) - } - return &downCaser{t, input.(io.ByteReader)}, nil - } - testRawToken(t, d, testInputAltEncoding, rawTokensAltEncoding) -} - -func TestRawTokenAltEncodingNoConverter(t *testing.T) { - d := NewDecoder(strings.NewReader(testInputAltEncoding)) - token, err := d.RawToken() - if token == nil { - t.Fatalf("expected a token on first RawToken call") - } - if err != nil { - t.Fatal(err) - } - token, err = d.RawToken() - if token != nil { - t.Errorf("expected a nil token; got %#v", token) - } - if err == nil { - t.Fatalf("expected an error on second RawToken call") - } - const encoding = "x-testing-uppercase" - if !strings.Contains(err.Error(), encoding) { - t.Errorf("expected error to contain %q; got error: %v", - encoding, err) - } -} - -func testRawToken(t *testing.T, d *Decoder, raw string, rawTokens []Token) { - lastEnd := int64(0) - for i, want := range rawTokens { - start := d.InputOffset() - have, err := d.RawToken() - end := d.InputOffset() - if err != nil { - t.Fatalf("token %d: unexpected error: %s", i, err) - } - if !reflect.DeepEqual(have, want) { - var shave, swant string - if _, ok := have.(CharData); ok { - shave = fmt.Sprintf("CharData(%q)", have) - } else { - shave = fmt.Sprintf("%#v", have) - } - if _, ok := want.(CharData); ok { - swant = fmt.Sprintf("CharData(%q)", want) - } else { - swant = fmt.Sprintf("%#v", want) - } - t.Errorf("token %d = %s, want %s", i, shave, swant) - } - - // Check that InputOffset returned actual token. - switch { - case start < lastEnd: - t.Errorf("token %d: position [%d,%d) for %T is before previous token", i, start, end, have) - case start >= end: - // Special case: EndElement can be synthesized. - if start == end && end == lastEnd { - break - } - t.Errorf("token %d: position [%d,%d) for %T is empty", i, start, end, have) - case end > int64(len(raw)): - t.Errorf("token %d: position [%d,%d) for %T extends beyond input", i, start, end, have) - default: - text := raw[start:end] - if strings.ContainsAny(text, "<>") && (!strings.HasPrefix(text, "<") || !strings.HasSuffix(text, ">")) { - t.Errorf("token %d: misaligned raw token %#q for %T", i, text, have) - } - } - lastEnd = end - } -} - -// Ensure that directives (specifically !DOCTYPE) include the complete -// text of any nested directives, noting that < and > do not change -// nesting depth if they are in single or double quotes. - -var nestedDirectivesInput = ` -]> -">]> -]> -'>]> -]> -'>]> -]> -` - -var nestedDirectivesTokens = []Token{ - CharData("\n"), - Directive(`DOCTYPE []`), - CharData("\n"), - Directive(`DOCTYPE [">]`), - CharData("\n"), - Directive(`DOCTYPE []`), - CharData("\n"), - Directive(`DOCTYPE ['>]`), - CharData("\n"), - Directive(`DOCTYPE []`), - CharData("\n"), - Directive(`DOCTYPE ['>]`), - CharData("\n"), - Directive(`DOCTYPE []`), - CharData("\n"), -} - -func TestNestedDirectives(t *testing.T) { - d := NewDecoder(strings.NewReader(nestedDirectivesInput)) - - for i, want := range nestedDirectivesTokens { - have, err := d.Token() - if err != nil { - t.Fatalf("token %d: unexpected error: %s", i, err) - } - if !reflect.DeepEqual(have, want) { - t.Errorf("token %d = %#v want %#v", i, have, want) - } - } -} - -func TestToken(t *testing.T) { - d := NewDecoder(strings.NewReader(testInput)) - d.Entity = testEntity - - for i, want := range cookedTokens { - have, err := d.Token() - if err != nil { - t.Fatalf("token %d: unexpected error: %s", i, err) - } - if !reflect.DeepEqual(have, want) { - t.Errorf("token %d = %#v want %#v", i, have, want) - } - } -} - -func TestSyntax(t *testing.T) { - for i := range xmlInput { - d := NewDecoder(strings.NewReader(xmlInput[i])) - var err error - for _, err = d.Token(); err == nil; _, err = d.Token() { - } - if _, ok := err.(*SyntaxError); !ok { - t.Fatalf(`xmlInput "%s": expected SyntaxError not received`, xmlInput[i]) - } - } -} - -type allScalars struct { - True1 bool - True2 bool - False1 bool - False2 bool - Int int - Int8 int8 - Int16 int16 - Int32 int32 - Int64 int64 - Uint int - Uint8 uint8 - Uint16 uint16 - Uint32 uint32 - Uint64 uint64 - Uintptr uintptr - Float32 float32 - Float64 float64 - String string - PtrString *string -} - -var all = allScalars{ - True1: true, - True2: true, - False1: false, - False2: false, - Int: 1, - Int8: -2, - Int16: 3, - Int32: -4, - Int64: 5, - Uint: 6, - Uint8: 7, - Uint16: 8, - Uint32: 9, - Uint64: 10, - Uintptr: 11, - Float32: 13.0, - Float64: 14.0, - String: "15", - PtrString: &sixteen, -} - -var sixteen = "16" - -const testScalarsInput = ` - true - 1 - false - 0 - 1 - -2 - 3 - -4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12.0 - 13.0 - 14.0 - 15 - 16 -` - -func TestAllScalars(t *testing.T) { - var a allScalars - err := Unmarshal([]byte(testScalarsInput), &a) - - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(a, all) { - t.Errorf("have %+v want %+v", a, all) - } -} - -type item struct { - Field_a string -} - -func TestIssue569(t *testing.T) { - data := `abcd` - var i item - err := Unmarshal([]byte(data), &i) - - if err != nil || i.Field_a != "abcd" { - t.Fatal("Expecting abcd") - } -} - -func TestUnquotedAttrs(t *testing.T) { - data := "" - d := NewDecoder(strings.NewReader(data)) - d.Strict = false - token, err := d.Token() - if _, ok := err.(*SyntaxError); ok { - t.Errorf("Unexpected error: %v", err) - } - if token.(StartElement).Name.Local != "tag" { - t.Errorf("Unexpected tag name: %v", token.(StartElement).Name.Local) - } - attr := token.(StartElement).Attr[0] - if attr.Value != "azAZ09:-_" { - t.Errorf("Unexpected attribute value: %v", attr.Value) - } - if attr.Name.Local != "attr" { - t.Errorf("Unexpected attribute name: %v", attr.Name.Local) - } -} - -func TestValuelessAttrs(t *testing.T) { - tests := [][3]string{ - {"

    ", "p", "nowrap"}, - {"

    ", "p", "nowrap"}, - {"", "input", "checked"}, - {"", "input", "checked"}, - } - for _, test := range tests { - d := NewDecoder(strings.NewReader(test[0])) - d.Strict = false - token, err := d.Token() - if _, ok := err.(*SyntaxError); ok { - t.Errorf("Unexpected error: %v", err) - } - if token.(StartElement).Name.Local != test[1] { - t.Errorf("Unexpected tag name: %v", token.(StartElement).Name.Local) - } - attr := token.(StartElement).Attr[0] - if attr.Value != test[2] { - t.Errorf("Unexpected attribute value: %v", attr.Value) - } - if attr.Name.Local != test[2] { - t.Errorf("Unexpected attribute name: %v", attr.Name.Local) - } - } -} - -func TestCopyTokenCharData(t *testing.T) { - data := []byte("same data") - var tok1 Token = CharData(data) - tok2 := CopyToken(tok1) - if !reflect.DeepEqual(tok1, tok2) { - t.Error("CopyToken(CharData) != CharData") - } - data[1] = 'o' - if reflect.DeepEqual(tok1, tok2) { - t.Error("CopyToken(CharData) uses same buffer.") - } -} - -func TestCopyTokenStartElement(t *testing.T) { - elt := StartElement{Name{"", "hello"}, []Attr{{Name{"", "lang"}, "en"}}} - var tok1 Token = elt - tok2 := CopyToken(tok1) - if tok1.(StartElement).Attr[0].Value != "en" { - t.Error("CopyToken overwrote Attr[0]") - } - if !reflect.DeepEqual(tok1, tok2) { - t.Error("CopyToken(StartElement) != StartElement") - } - tok1.(StartElement).Attr[0] = Attr{Name{"", "lang"}, "de"} - if reflect.DeepEqual(tok1, tok2) { - t.Error("CopyToken(CharData) uses same buffer.") - } -} - -func TestSyntaxErrorLineNum(t *testing.T) { - testInput := "

    Foo

    \n\n

    Bar\n" - d := NewDecoder(strings.NewReader(testInput)) - var err error - for _, err = d.Token(); err == nil; _, err = d.Token() { - } - synerr, ok := err.(*SyntaxError) - if !ok { - t.Error("Expected SyntaxError.") - } - if synerr.Line != 3 { - t.Error("SyntaxError didn't have correct line number.") - } -} - -func TestTrailingRawToken(t *testing.T) { - input := ` ` - d := NewDecoder(strings.NewReader(input)) - var err error - for _, err = d.RawToken(); err == nil; _, err = d.RawToken() { - } - if err != io.EOF { - t.Fatalf("d.RawToken() = _, %v, want _, io.EOF", err) - } -} - -func TestTrailingToken(t *testing.T) { - input := ` ` - d := NewDecoder(strings.NewReader(input)) - var err error - for _, err = d.Token(); err == nil; _, err = d.Token() { - } - if err != io.EOF { - t.Fatalf("d.Token() = _, %v, want _, io.EOF", err) - } -} - -func TestEntityInsideCDATA(t *testing.T) { - input := `` - d := NewDecoder(strings.NewReader(input)) - var err error - for _, err = d.Token(); err == nil; _, err = d.Token() { - } - if err != io.EOF { - t.Fatalf("d.Token() = _, %v, want _, io.EOF", err) - } -} - -var characterTests = []struct { - in string - err string -}{ - {"\x12", "illegal character code U+0012"}, - {"\x0b", "illegal character code U+000B"}, - {"\xef\xbf\xbe", "illegal character code U+FFFE"}, - {"\r\n\x07", "illegal character code U+0007"}, - {"what's up", "expected attribute name in element"}, - {"&abc\x01;", "invalid character entity &abc (no semicolon)"}, - {"&\x01;", "invalid character entity & (no semicolon)"}, - {"&\xef\xbf\xbe;", "invalid character entity &\uFFFE;"}, - {"&hello;", "invalid character entity &hello;"}, -} - -func TestDisallowedCharacters(t *testing.T) { - - for i, tt := range characterTests { - d := NewDecoder(strings.NewReader(tt.in)) - var err error - - for err == nil { - _, err = d.Token() - } - synerr, ok := err.(*SyntaxError) - if !ok { - t.Fatalf("input %d d.Token() = _, %v, want _, *SyntaxError", i, err) - } - if synerr.Msg != tt.err { - t.Fatalf("input %d synerr.Msg wrong: want %q, got %q", i, tt.err, synerr.Msg) - } - } -} - -type procInstEncodingTest struct { - expect, got string -} - -var procInstTests = []struct { - input string - expect [2]string -}{ - {`version="1.0" encoding="utf-8"`, [2]string{"1.0", "utf-8"}}, - {`version="1.0" encoding='utf-8'`, [2]string{"1.0", "utf-8"}}, - {`version="1.0" encoding='utf-8' `, [2]string{"1.0", "utf-8"}}, - {`version="1.0" encoding=utf-8`, [2]string{"1.0", ""}}, - {`encoding="FOO" `, [2]string{"", "FOO"}}, -} - -func TestProcInstEncoding(t *testing.T) { - for _, test := range procInstTests { - if got := procInst("version", test.input); got != test.expect[0] { - t.Errorf("procInst(version, %q) = %q; want %q", test.input, got, test.expect[0]) - } - if got := procInst("encoding", test.input); got != test.expect[1] { - t.Errorf("procInst(encoding, %q) = %q; want %q", test.input, got, test.expect[1]) - } - } -} - -// Ensure that directives with comments include the complete -// text of any nested directives. - -var directivesWithCommentsInput = ` -]> -]> - --> --> []> -` - -var directivesWithCommentsTokens = []Token{ - CharData("\n"), - Directive(`DOCTYPE []`), - CharData("\n"), - Directive(`DOCTYPE []`), - CharData("\n"), - Directive(`DOCTYPE []`), - CharData("\n"), -} - -func TestDirectivesWithComments(t *testing.T) { - d := NewDecoder(strings.NewReader(directivesWithCommentsInput)) - - for i, want := range directivesWithCommentsTokens { - have, err := d.Token() - if err != nil { - t.Fatalf("token %d: unexpected error: %s", i, err) - } - if !reflect.DeepEqual(have, want) { - t.Errorf("token %d = %#v want %#v", i, have, want) - } - } -} - -// Writer whose Write method always returns an error. -type errWriter struct{} - -func (errWriter) Write(p []byte) (n int, err error) { return 0, fmt.Errorf("unwritable") } - -func TestEscapeTextIOErrors(t *testing.T) { - expectErr := "unwritable" - err := EscapeText(errWriter{}, []byte{'A'}) - - if err == nil || err.Error() != expectErr { - t.Errorf("have %v, want %v", err, expectErr) - } -} - -func TestEscapeTextInvalidChar(t *testing.T) { - input := []byte("A \x00 terminated string.") - expected := "A \uFFFD terminated string." - - buff := new(bytes.Buffer) - if err := EscapeText(buff, input); err != nil { - t.Fatalf("have %v, want nil", err) - } - text := buff.String() - - if text != expected { - t.Errorf("have %v, want %v", text, expected) - } -} - -func TestIssue5880(t *testing.T) { - type T []byte - data, err := Marshal(T{192, 168, 0, 1}) - if err != nil { - t.Errorf("Marshal error: %v", err) - } - if !utf8.Valid(data) { - t.Errorf("Marshal generated invalid UTF-8: %x", data) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/litmus_test_server.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/litmus_test_server.go deleted file mode 100644 index 514db5dd..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/litmus_test_server.go +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -This program is a server for the WebDAV 'litmus' compliance test at -http://www.webdav.org/neon/litmus/ -To run the test: - -go run litmus_test_server.go - -and separately, from the downloaded litmus-xxx directory: - -make URL=http://localhost:9999/ check -*/ -package main - -import ( - "flag" - "fmt" - "log" - "net/http" - "net/url" - - "golang.org/x/net/webdav" -) - -var port = flag.Int("port", 9999, "server port") - -func main() { - flag.Parse() - log.SetFlags(0) - h := &webdav.Handler{ - FileSystem: webdav.NewMemFS(), - LockSystem: webdav.NewMemLS(), - Logger: func(r *http.Request, err error) { - litmus := r.Header.Get("X-Litmus") - if len(litmus) > 19 { - litmus = litmus[:16] + "..." - } - - switch r.Method { - case "COPY", "MOVE": - dst := "" - if u, err := url.Parse(r.Header.Get("Destination")); err == nil { - dst = u.Path - } - o := r.Header.Get("Overwrite") - log.Printf("%-20s%-10s%-30s%-30so=%-2s%v", litmus, r.Method, r.URL.Path, dst, o, err) - default: - log.Printf("%-20s%-10s%-30s%v", litmus, r.Method, r.URL.Path, err) - } - }, - } - - // The next line would normally be: - // http.Handle("/", h) - // but we wrap that HTTP handler h to cater for a special case. - // - // The propfind_invalid2 litmus test case expects an empty namespace prefix - // declaration to be an error. The FAQ in the webdav litmus test says: - // - // "What does the "propfind_invalid2" test check for?... - // - // If a request was sent with an XML body which included an empty namespace - // prefix declaration (xmlns:ns1=""), then the server must reject that with - // a "400 Bad Request" response, as it is invalid according to the XML - // Namespace specification." - // - // On the other hand, the Go standard library's encoding/xml package - // accepts an empty xmlns namespace, as per the discussion at - // https://github.com/golang/go/issues/8068 - // - // Empty namespaces seem disallowed in the second (2006) edition of the XML - // standard, but allowed in a later edition. The grammar differs between - // http://www.w3.org/TR/2006/REC-xml-names-20060816/#ns-decl and - // http://www.w3.org/TR/REC-xml-names/#dt-prefix - // - // Thus, we assume that the propfind_invalid2 test is obsolete, and - // hard-code the 400 Bad Request response that the test expects. - http.Handle("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.Header.Get("X-Litmus") == "props: 3 (propfind_invalid2)" { - http.Error(w, "400 Bad Request", http.StatusBadRequest) - return - } - h.ServeHTTP(w, r) - })) - - addr := fmt.Sprintf(":%d", *port) - log.Printf("Serving %v", addr) - log.Fatal(http.ListenAndServe(addr, nil)) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/lock.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/lock.go deleted file mode 100644 index 344ac5ce..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/lock.go +++ /dev/null @@ -1,445 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package webdav - -import ( - "container/heap" - "errors" - "strconv" - "strings" - "sync" - "time" -) - -var ( - // ErrConfirmationFailed is returned by a LockSystem's Confirm method. - ErrConfirmationFailed = errors.New("webdav: confirmation failed") - // ErrForbidden is returned by a LockSystem's Unlock method. - ErrForbidden = errors.New("webdav: forbidden") - // ErrLocked is returned by a LockSystem's Create, Refresh and Unlock methods. - ErrLocked = errors.New("webdav: locked") - // ErrNoSuchLock is returned by a LockSystem's Refresh and Unlock methods. - ErrNoSuchLock = errors.New("webdav: no such lock") -) - -// Condition can match a WebDAV resource, based on a token or ETag. -// Exactly one of Token and ETag should be non-empty. -type Condition struct { - Not bool - Token string - ETag string -} - -// LockSystem manages access to a collection of named resources. The elements -// in a lock name are separated by slash ('/', U+002F) characters, regardless -// of host operating system convention. -type LockSystem interface { - // Confirm confirms that the caller can claim all of the locks specified by - // the given conditions, and that holding the union of all of those locks - // gives exclusive access to all of the named resources. Up to two resources - // can be named. Empty names are ignored. - // - // Exactly one of release and err will be non-nil. If release is non-nil, - // all of the requested locks are held until release is called. Calling - // release does not unlock the lock, in the WebDAV UNLOCK sense, but once - // Confirm has confirmed that a lock claim is valid, that lock cannot be - // Confirmed again until it has been released. - // - // If Confirm returns ErrConfirmationFailed then the Handler will continue - // to try any other set of locks presented (a WebDAV HTTP request can - // present more than one set of locks). If it returns any other non-nil - // error, the Handler will write a "500 Internal Server Error" HTTP status. - Confirm(now time.Time, name0, name1 string, conditions ...Condition) (release func(), err error) - - // Create creates a lock with the given depth, duration, owner and root - // (name). The depth will either be negative (meaning infinite) or zero. - // - // If Create returns ErrLocked then the Handler will write a "423 Locked" - // HTTP status. If it returns any other non-nil error, the Handler will - // write a "500 Internal Server Error" HTTP status. - // - // See http://www.webdav.org/specs/rfc4918.html#rfc.section.9.10.6 for - // when to use each error. - // - // The token returned identifies the created lock. It should be an absolute - // URI as defined by RFC 3986, Section 4.3. In particular, it should not - // contain whitespace. - Create(now time.Time, details LockDetails) (token string, err error) - - // Refresh refreshes the lock with the given token. - // - // If Refresh returns ErrLocked then the Handler will write a "423 Locked" - // HTTP Status. If Refresh returns ErrNoSuchLock then the Handler will write - // a "412 Precondition Failed" HTTP Status. If it returns any other non-nil - // error, the Handler will write a "500 Internal Server Error" HTTP status. - // - // See http://www.webdav.org/specs/rfc4918.html#rfc.section.9.10.6 for - // when to use each error. - Refresh(now time.Time, token string, duration time.Duration) (LockDetails, error) - - // Unlock unlocks the lock with the given token. - // - // If Unlock returns ErrForbidden then the Handler will write a "403 - // Forbidden" HTTP Status. If Unlock returns ErrLocked then the Handler - // will write a "423 Locked" HTTP status. If Unlock returns ErrNoSuchLock - // then the Handler will write a "409 Conflict" HTTP Status. If it returns - // any other non-nil error, the Handler will write a "500 Internal Server - // Error" HTTP status. - // - // See http://www.webdav.org/specs/rfc4918.html#rfc.section.9.11.1 for - // when to use each error. - Unlock(now time.Time, token string) error -} - -// LockDetails are a lock's metadata. -type LockDetails struct { - // Root is the root resource name being locked. For a zero-depth lock, the - // root is the only resource being locked. - Root string - // Duration is the lock timeout. A negative duration means infinite. - Duration time.Duration - // OwnerXML is the verbatim XML given in a LOCK HTTP request. - // - // TODO: does the "verbatim" nature play well with XML namespaces? - // Does the OwnerXML field need to have more structure? See - // https://codereview.appspot.com/175140043/#msg2 - OwnerXML string - // ZeroDepth is whether the lock has zero depth. If it does not have zero - // depth, it has infinite depth. - ZeroDepth bool -} - -// NewMemLS returns a new in-memory LockSystem. -func NewMemLS() LockSystem { - return &memLS{ - byName: make(map[string]*memLSNode), - byToken: make(map[string]*memLSNode), - gen: uint64(time.Now().Unix()), - } -} - -type memLS struct { - mu sync.Mutex - byName map[string]*memLSNode - byToken map[string]*memLSNode - gen uint64 - // byExpiry only contains those nodes whose LockDetails have a finite - // Duration and are yet to expire. - byExpiry byExpiry -} - -func (m *memLS) nextToken() string { - m.gen++ - return strconv.FormatUint(m.gen, 10) -} - -func (m *memLS) collectExpiredNodes(now time.Time) { - for len(m.byExpiry) > 0 { - if now.Before(m.byExpiry[0].expiry) { - break - } - m.remove(m.byExpiry[0]) - } -} - -func (m *memLS) Confirm(now time.Time, name0, name1 string, conditions ...Condition) (func(), error) { - m.mu.Lock() - defer m.mu.Unlock() - m.collectExpiredNodes(now) - - var n0, n1 *memLSNode - if name0 != "" { - if n0 = m.lookup(slashClean(name0), conditions...); n0 == nil { - return nil, ErrConfirmationFailed - } - } - if name1 != "" { - if n1 = m.lookup(slashClean(name1), conditions...); n1 == nil { - return nil, ErrConfirmationFailed - } - } - - // Don't hold the same node twice. - if n1 == n0 { - n1 = nil - } - - if n0 != nil { - m.hold(n0) - } - if n1 != nil { - m.hold(n1) - } - return func() { - m.mu.Lock() - defer m.mu.Unlock() - if n1 != nil { - m.unhold(n1) - } - if n0 != nil { - m.unhold(n0) - } - }, nil -} - -// lookup returns the node n that locks the named resource, provided that n -// matches at least one of the given conditions and that lock isn't held by -// another party. Otherwise, it returns nil. -// -// n may be a parent of the named resource, if n is an infinite depth lock. -func (m *memLS) lookup(name string, conditions ...Condition) (n *memLSNode) { - // TODO: support Condition.Not and Condition.ETag. - for _, c := range conditions { - n = m.byToken[c.Token] - if n == nil || n.held { - continue - } - if name == n.details.Root { - return n - } - if n.details.ZeroDepth { - continue - } - if n.details.Root == "/" || strings.HasPrefix(name, n.details.Root+"/") { - return n - } - } - return nil -} - -func (m *memLS) hold(n *memLSNode) { - if n.held { - panic("webdav: memLS inconsistent held state") - } - n.held = true - if n.details.Duration >= 0 && n.byExpiryIndex >= 0 { - heap.Remove(&m.byExpiry, n.byExpiryIndex) - } -} - -func (m *memLS) unhold(n *memLSNode) { - if !n.held { - panic("webdav: memLS inconsistent held state") - } - n.held = false - if n.details.Duration >= 0 { - heap.Push(&m.byExpiry, n) - } -} - -func (m *memLS) Create(now time.Time, details LockDetails) (string, error) { - m.mu.Lock() - defer m.mu.Unlock() - m.collectExpiredNodes(now) - details.Root = slashClean(details.Root) - - if !m.canCreate(details.Root, details.ZeroDepth) { - return "", ErrLocked - } - n := m.create(details.Root) - n.token = m.nextToken() - m.byToken[n.token] = n - n.details = details - if n.details.Duration >= 0 { - n.expiry = now.Add(n.details.Duration) - heap.Push(&m.byExpiry, n) - } - return n.token, nil -} - -func (m *memLS) Refresh(now time.Time, token string, duration time.Duration) (LockDetails, error) { - m.mu.Lock() - defer m.mu.Unlock() - m.collectExpiredNodes(now) - - n := m.byToken[token] - if n == nil { - return LockDetails{}, ErrNoSuchLock - } - if n.held { - return LockDetails{}, ErrLocked - } - if n.byExpiryIndex >= 0 { - heap.Remove(&m.byExpiry, n.byExpiryIndex) - } - n.details.Duration = duration - if n.details.Duration >= 0 { - n.expiry = now.Add(n.details.Duration) - heap.Push(&m.byExpiry, n) - } - return n.details, nil -} - -func (m *memLS) Unlock(now time.Time, token string) error { - m.mu.Lock() - defer m.mu.Unlock() - m.collectExpiredNodes(now) - - n := m.byToken[token] - if n == nil { - return ErrNoSuchLock - } - if n.held { - return ErrLocked - } - m.remove(n) - return nil -} - -func (m *memLS) canCreate(name string, zeroDepth bool) bool { - return walkToRoot(name, func(name0 string, first bool) bool { - n := m.byName[name0] - if n == nil { - return true - } - if first { - if n.token != "" { - // The target node is already locked. - return false - } - if !zeroDepth { - // The requested lock depth is infinite, and the fact that n exists - // (n != nil) means that a descendent of the target node is locked. - return false - } - } else if n.token != "" && !n.details.ZeroDepth { - // An ancestor of the target node is locked with infinite depth. - return false - } - return true - }) -} - -func (m *memLS) create(name string) (ret *memLSNode) { - walkToRoot(name, func(name0 string, first bool) bool { - n := m.byName[name0] - if n == nil { - n = &memLSNode{ - details: LockDetails{ - Root: name0, - }, - byExpiryIndex: -1, - } - m.byName[name0] = n - } - n.refCount++ - if first { - ret = n - } - return true - }) - return ret -} - -func (m *memLS) remove(n *memLSNode) { - delete(m.byToken, n.token) - n.token = "" - walkToRoot(n.details.Root, func(name0 string, first bool) bool { - x := m.byName[name0] - x.refCount-- - if x.refCount == 0 { - delete(m.byName, name0) - } - return true - }) - if n.byExpiryIndex >= 0 { - heap.Remove(&m.byExpiry, n.byExpiryIndex) - } -} - -func walkToRoot(name string, f func(name0 string, first bool) bool) bool { - for first := true; ; first = false { - if !f(name, first) { - return false - } - if name == "/" { - break - } - name = name[:strings.LastIndex(name, "/")] - if name == "" { - name = "/" - } - } - return true -} - -type memLSNode struct { - // details are the lock metadata. Even if this node's name is not explicitly locked, - // details.Root will still equal the node's name. - details LockDetails - // token is the unique identifier for this node's lock. An empty token means that - // this node is not explicitly locked. - token string - // refCount is the number of self-or-descendent nodes that are explicitly locked. - refCount int - // expiry is when this node's lock expires. - expiry time.Time - // byExpiryIndex is the index of this node in memLS.byExpiry. It is -1 - // if this node does not expire, or has expired. - byExpiryIndex int - // held is whether this node's lock is actively held by a Confirm call. - held bool -} - -type byExpiry []*memLSNode - -func (b *byExpiry) Len() int { - return len(*b) -} - -func (b *byExpiry) Less(i, j int) bool { - return (*b)[i].expiry.Before((*b)[j].expiry) -} - -func (b *byExpiry) Swap(i, j int) { - (*b)[i], (*b)[j] = (*b)[j], (*b)[i] - (*b)[i].byExpiryIndex = i - (*b)[j].byExpiryIndex = j -} - -func (b *byExpiry) Push(x interface{}) { - n := x.(*memLSNode) - n.byExpiryIndex = len(*b) - *b = append(*b, n) -} - -func (b *byExpiry) Pop() interface{} { - i := len(*b) - 1 - n := (*b)[i] - (*b)[i] = nil - n.byExpiryIndex = -1 - *b = (*b)[:i] - return n -} - -const infiniteTimeout = -1 - -// parseTimeout parses the Timeout HTTP header, as per section 10.7. If s is -// empty, an infiniteTimeout is returned. -func parseTimeout(s string) (time.Duration, error) { - if s == "" { - return infiniteTimeout, nil - } - if i := strings.IndexByte(s, ','); i >= 0 { - s = s[:i] - } - s = strings.TrimSpace(s) - if s == "Infinite" { - return infiniteTimeout, nil - } - const pre = "Second-" - if !strings.HasPrefix(s, pre) { - return 0, errInvalidTimeout - } - s = s[len(pre):] - if s == "" || s[0] < '0' || '9' < s[0] { - return 0, errInvalidTimeout - } - n, err := strconv.ParseInt(s, 10, 64) - if err != nil || 1<<32-1 < n { - return 0, errInvalidTimeout - } - return time.Duration(n) * time.Second, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/lock_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/lock_test.go deleted file mode 100644 index 116d6c0d..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/lock_test.go +++ /dev/null @@ -1,731 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package webdav - -import ( - "fmt" - "math/rand" - "path" - "reflect" - "sort" - "strconv" - "strings" - "testing" - "time" -) - -func TestWalkToRoot(t *testing.T) { - testCases := []struct { - name string - want []string - }{{ - "/a/b/c/d", - []string{ - "/a/b/c/d", - "/a/b/c", - "/a/b", - "/a", - "/", - }, - }, { - "/a", - []string{ - "/a", - "/", - }, - }, { - "/", - []string{ - "/", - }, - }} - - for _, tc := range testCases { - var got []string - if !walkToRoot(tc.name, func(name0 string, first bool) bool { - if first != (len(got) == 0) { - t.Errorf("name=%q: first=%t but len(got)==%d", tc.name, first, len(got)) - return false - } - got = append(got, name0) - return true - }) { - continue - } - if !reflect.DeepEqual(got, tc.want) { - t.Errorf("name=%q:\ngot %q\nwant %q", tc.name, got, tc.want) - } - } -} - -var lockTestDurations = []time.Duration{ - infiniteTimeout, // infiniteTimeout means to never expire. - 0, // A zero duration means to expire immediately. - 100 * time.Hour, // A very large duration will not expire in these tests. -} - -// lockTestNames are the names of a set of mutually compatible locks. For each -// name fragment: -// - _ means no explicit lock. -// - i means a infinite-depth lock, -// - z means a zero-depth lock, -var lockTestNames = []string{ - "/_/_/_/_/z", - "/_/_/i", - "/_/z", - "/_/z/i", - "/_/z/z", - "/_/z/_/i", - "/_/z/_/z", - "/i", - "/z", - "/z/_/i", - "/z/_/z", -} - -func lockTestZeroDepth(name string) bool { - switch name[len(name)-1] { - case 'i': - return false - case 'z': - return true - } - panic(fmt.Sprintf("lock name %q did not end with 'i' or 'z'", name)) -} - -func TestMemLSCanCreate(t *testing.T) { - now := time.Unix(0, 0) - m := NewMemLS().(*memLS) - - for _, name := range lockTestNames { - _, err := m.Create(now, LockDetails{ - Root: name, - Duration: infiniteTimeout, - ZeroDepth: lockTestZeroDepth(name), - }) - if err != nil { - t.Fatalf("creating lock for %q: %v", name, err) - } - } - - wantCanCreate := func(name string, zeroDepth bool) bool { - for _, n := range lockTestNames { - switch { - case n == name: - // An existing lock has the same name as the proposed lock. - return false - case strings.HasPrefix(n, name): - // An existing lock would be a child of the proposed lock, - // which conflicts if the proposed lock has infinite depth. - if !zeroDepth { - return false - } - case strings.HasPrefix(name, n): - // An existing lock would be an ancestor of the proposed lock, - // which conflicts if the ancestor has infinite depth. - if n[len(n)-1] == 'i' { - return false - } - } - } - return true - } - - var check func(int, string) - check = func(recursion int, name string) { - for _, zeroDepth := range []bool{false, true} { - got := m.canCreate(name, zeroDepth) - want := wantCanCreate(name, zeroDepth) - if got != want { - t.Errorf("canCreate name=%q zeroDepth=%t: got %t, want %t", name, zeroDepth, got, want) - } - } - if recursion == 6 { - return - } - if name != "/" { - name += "/" - } - for _, c := range "_iz" { - check(recursion+1, name+string(c)) - } - } - check(0, "/") -} - -func TestMemLSLookup(t *testing.T) { - now := time.Unix(0, 0) - m := NewMemLS().(*memLS) - - badToken := m.nextToken() - t.Logf("badToken=%q", badToken) - - for _, name := range lockTestNames { - token, err := m.Create(now, LockDetails{ - Root: name, - Duration: infiniteTimeout, - ZeroDepth: lockTestZeroDepth(name), - }) - if err != nil { - t.Fatalf("creating lock for %q: %v", name, err) - } - t.Logf("%-15q -> node=%p token=%q", name, m.byName[name], token) - } - - baseNames := append([]string{"/a", "/b/c"}, lockTestNames...) - for _, baseName := range baseNames { - for _, suffix := range []string{"", "/0", "/1/2/3"} { - name := baseName + suffix - - goodToken := "" - base := m.byName[baseName] - if base != nil && (suffix == "" || !lockTestZeroDepth(baseName)) { - goodToken = base.token - } - - for _, token := range []string{badToken, goodToken} { - if token == "" { - continue - } - - got := m.lookup(name, Condition{Token: token}) - want := base - if token == badToken { - want = nil - } - if got != want { - t.Errorf("name=%-20qtoken=%q (bad=%t): got %p, want %p", - name, token, token == badToken, got, want) - } - } - } - } -} - -func TestMemLSConfirm(t *testing.T) { - now := time.Unix(0, 0) - m := NewMemLS().(*memLS) - alice, err := m.Create(now, LockDetails{ - Root: "/alice", - Duration: infiniteTimeout, - ZeroDepth: false, - }) - tweedle, err := m.Create(now, LockDetails{ - Root: "/tweedle", - Duration: infiniteTimeout, - ZeroDepth: false, - }) - if err != nil { - t.Fatalf("Create: %v", err) - } - if err := m.consistent(); err != nil { - t.Fatalf("Create: inconsistent state: %v", err) - } - - // Test a mismatch between name and condition. - _, err = m.Confirm(now, "/tweedle/dee", "", Condition{Token: alice}) - if err != ErrConfirmationFailed { - t.Fatalf("Confirm (mismatch): got %v, want ErrConfirmationFailed", err) - } - if err := m.consistent(); err != nil { - t.Fatalf("Confirm (mismatch): inconsistent state: %v", err) - } - - // Test two names (that fall under the same lock) in the one Confirm call. - release, err := m.Confirm(now, "/tweedle/dee", "/tweedle/dum", Condition{Token: tweedle}) - if err != nil { - t.Fatalf("Confirm (twins): %v", err) - } - if err := m.consistent(); err != nil { - t.Fatalf("Confirm (twins): inconsistent state: %v", err) - } - release() - if err := m.consistent(); err != nil { - t.Fatalf("release (twins): inconsistent state: %v", err) - } - - // Test the same two names in overlapping Confirm / release calls. - releaseDee, err := m.Confirm(now, "/tweedle/dee", "", Condition{Token: tweedle}) - if err != nil { - t.Fatalf("Confirm (sequence #0): %v", err) - } - if err := m.consistent(); err != nil { - t.Fatalf("Confirm (sequence #0): inconsistent state: %v", err) - } - - _, err = m.Confirm(now, "/tweedle/dum", "", Condition{Token: tweedle}) - if err != ErrConfirmationFailed { - t.Fatalf("Confirm (sequence #1): got %v, want ErrConfirmationFailed", err) - } - if err := m.consistent(); err != nil { - t.Fatalf("Confirm (sequence #1): inconsistent state: %v", err) - } - - releaseDee() - if err := m.consistent(); err != nil { - t.Fatalf("release (sequence #2): inconsistent state: %v", err) - } - - releaseDum, err := m.Confirm(now, "/tweedle/dum", "", Condition{Token: tweedle}) - if err != nil { - t.Fatalf("Confirm (sequence #3): %v", err) - } - if err := m.consistent(); err != nil { - t.Fatalf("Confirm (sequence #3): inconsistent state: %v", err) - } - - // Test that you can't unlock a held lock. - err = m.Unlock(now, tweedle) - if err != ErrLocked { - t.Fatalf("Unlock (sequence #4): got %v, want ErrLocked", err) - } - - releaseDum() - if err := m.consistent(); err != nil { - t.Fatalf("release (sequence #5): inconsistent state: %v", err) - } - - err = m.Unlock(now, tweedle) - if err != nil { - t.Fatalf("Unlock (sequence #6): %v", err) - } - if err := m.consistent(); err != nil { - t.Fatalf("Unlock (sequence #6): inconsistent state: %v", err) - } -} - -func TestMemLSNonCanonicalRoot(t *testing.T) { - now := time.Unix(0, 0) - m := NewMemLS().(*memLS) - token, err := m.Create(now, LockDetails{ - Root: "/foo/./bar//", - Duration: 1 * time.Second, - }) - if err != nil { - t.Fatalf("Create: %v", err) - } - if err := m.consistent(); err != nil { - t.Fatalf("Create: inconsistent state: %v", err) - } - if err := m.Unlock(now, token); err != nil { - t.Fatalf("Unlock: %v", err) - } - if err := m.consistent(); err != nil { - t.Fatalf("Unlock: inconsistent state: %v", err) - } -} - -func TestMemLSExpiry(t *testing.T) { - m := NewMemLS().(*memLS) - testCases := []string{ - "setNow 0", - "create /a.5", - "want /a.5", - "create /c.6", - "want /a.5 /c.6", - "create /a/b.7", - "want /a.5 /a/b.7 /c.6", - "setNow 4", - "want /a.5 /a/b.7 /c.6", - "setNow 5", - "want /a/b.7 /c.6", - "setNow 6", - "want /a/b.7", - "setNow 7", - "want ", - "setNow 8", - "want ", - "create /a.12", - "create /b.13", - "create /c.15", - "create /a/d.16", - "want /a.12 /a/d.16 /b.13 /c.15", - "refresh /a.14", - "want /a.14 /a/d.16 /b.13 /c.15", - "setNow 12", - "want /a.14 /a/d.16 /b.13 /c.15", - "setNow 13", - "want /a.14 /a/d.16 /c.15", - "setNow 14", - "want /a/d.16 /c.15", - "refresh /a/d.20", - "refresh /c.20", - "want /a/d.20 /c.20", - "setNow 20", - "want ", - } - - tokens := map[string]string{} - zTime := time.Unix(0, 0) - now := zTime - for i, tc := range testCases { - j := strings.IndexByte(tc, ' ') - if j < 0 { - t.Fatalf("test case #%d %q: invalid command", i, tc) - } - op, arg := tc[:j], tc[j+1:] - switch op { - default: - t.Fatalf("test case #%d %q: invalid operation %q", i, tc, op) - - case "create", "refresh": - parts := strings.Split(arg, ".") - if len(parts) != 2 { - t.Fatalf("test case #%d %q: invalid create", i, tc) - } - root := parts[0] - d, err := strconv.Atoi(parts[1]) - if err != nil { - t.Fatalf("test case #%d %q: invalid duration", i, tc) - } - dur := time.Unix(0, 0).Add(time.Duration(d) * time.Second).Sub(now) - - switch op { - case "create": - token, err := m.Create(now, LockDetails{ - Root: root, - Duration: dur, - ZeroDepth: true, - }) - if err != nil { - t.Fatalf("test case #%d %q: Create: %v", i, tc, err) - } - tokens[root] = token - - case "refresh": - token := tokens[root] - if token == "" { - t.Fatalf("test case #%d %q: no token for %q", i, tc, root) - } - got, err := m.Refresh(now, token, dur) - if err != nil { - t.Fatalf("test case #%d %q: Refresh: %v", i, tc, err) - } - want := LockDetails{ - Root: root, - Duration: dur, - ZeroDepth: true, - } - if got != want { - t.Fatalf("test case #%d %q:\ngot %v\nwant %v", i, tc, got, want) - } - } - - case "setNow": - d, err := strconv.Atoi(arg) - if err != nil { - t.Fatalf("test case #%d %q: invalid duration", i, tc) - } - now = time.Unix(0, 0).Add(time.Duration(d) * time.Second) - - case "want": - m.mu.Lock() - m.collectExpiredNodes(now) - got := make([]string, 0, len(m.byToken)) - for _, n := range m.byToken { - got = append(got, fmt.Sprintf("%s.%d", - n.details.Root, n.expiry.Sub(zTime)/time.Second)) - } - m.mu.Unlock() - sort.Strings(got) - want := []string{} - if arg != "" { - want = strings.Split(arg, " ") - } - if !reflect.DeepEqual(got, want) { - t.Fatalf("test case #%d %q:\ngot %q\nwant %q", i, tc, got, want) - } - } - - if err := m.consistent(); err != nil { - t.Fatalf("test case #%d %q: inconsistent state: %v", i, tc, err) - } - } -} - -func TestMemLS(t *testing.T) { - now := time.Unix(0, 0) - m := NewMemLS().(*memLS) - rng := rand.New(rand.NewSource(0)) - tokens := map[string]string{} - nConfirm, nCreate, nRefresh, nUnlock := 0, 0, 0, 0 - const N = 2000 - - for i := 0; i < N; i++ { - name := lockTestNames[rng.Intn(len(lockTestNames))] - duration := lockTestDurations[rng.Intn(len(lockTestDurations))] - confirmed, unlocked := false, false - - // If the name was already locked, we randomly confirm/release, refresh - // or unlock it. Otherwise, we create a lock. - token := tokens[name] - if token != "" { - switch rng.Intn(3) { - case 0: - confirmed = true - nConfirm++ - release, err := m.Confirm(now, name, "", Condition{Token: token}) - if err != nil { - t.Fatalf("iteration #%d: Confirm %q: %v", i, name, err) - } - if err := m.consistent(); err != nil { - t.Fatalf("iteration #%d: inconsistent state: %v", i, err) - } - release() - - case 1: - nRefresh++ - if _, err := m.Refresh(now, token, duration); err != nil { - t.Fatalf("iteration #%d: Refresh %q: %v", i, name, err) - } - - case 2: - unlocked = true - nUnlock++ - if err := m.Unlock(now, token); err != nil { - t.Fatalf("iteration #%d: Unlock %q: %v", i, name, err) - } - } - - } else { - nCreate++ - var err error - token, err = m.Create(now, LockDetails{ - Root: name, - Duration: duration, - ZeroDepth: lockTestZeroDepth(name), - }) - if err != nil { - t.Fatalf("iteration #%d: Create %q: %v", i, name, err) - } - } - - if !confirmed { - if duration == 0 || unlocked { - // A zero-duration lock should expire immediately and is - // effectively equivalent to being unlocked. - tokens[name] = "" - } else { - tokens[name] = token - } - } - - if err := m.consistent(); err != nil { - t.Fatalf("iteration #%d: inconsistent state: %v", i, err) - } - } - - if nConfirm < N/10 { - t.Fatalf("too few Confirm calls: got %d, want >= %d", nConfirm, N/10) - } - if nCreate < N/10 { - t.Fatalf("too few Create calls: got %d, want >= %d", nCreate, N/10) - } - if nRefresh < N/10 { - t.Fatalf("too few Refresh calls: got %d, want >= %d", nRefresh, N/10) - } - if nUnlock < N/10 { - t.Fatalf("too few Unlock calls: got %d, want >= %d", nUnlock, N/10) - } -} - -func (m *memLS) consistent() error { - m.mu.Lock() - defer m.mu.Unlock() - - // If m.byName is non-empty, then it must contain an entry for the root "/", - // and its refCount should equal the number of locked nodes. - if len(m.byName) > 0 { - n := m.byName["/"] - if n == nil { - return fmt.Errorf(`non-empty m.byName does not contain the root "/"`) - } - if n.refCount != len(m.byToken) { - return fmt.Errorf("root node refCount=%d, differs from len(m.byToken)=%d", n.refCount, len(m.byToken)) - } - } - - for name, n := range m.byName { - // The map keys should be consistent with the node's copy of the key. - if n.details.Root != name { - return fmt.Errorf("node name %q != byName map key %q", n.details.Root, name) - } - - // A name must be clean, and start with a "/". - if len(name) == 0 || name[0] != '/' { - return fmt.Errorf(`node name %q does not start with "/"`, name) - } - if name != path.Clean(name) { - return fmt.Errorf(`node name %q is not clean`, name) - } - - // A node's refCount should be positive. - if n.refCount <= 0 { - return fmt.Errorf("non-positive refCount for node at name %q", name) - } - - // A node's refCount should be the number of self-or-descendents that - // are locked (i.e. have a non-empty token). - var list []string - for name0, n0 := range m.byName { - // All of lockTestNames' name fragments are one byte long: '_', 'i' or 'z', - // so strings.HasPrefix is equivalent to self-or-descendent name match. - // We don't have to worry about "/foo/bar" being a false positive match - // for "/foo/b". - if strings.HasPrefix(name0, name) && n0.token != "" { - list = append(list, name0) - } - } - if n.refCount != len(list) { - sort.Strings(list) - return fmt.Errorf("node at name %q has refCount %d but locked self-or-descendents are %q (len=%d)", - name, n.refCount, list, len(list)) - } - - // A node n is in m.byToken if it has a non-empty token. - if n.token != "" { - if _, ok := m.byToken[n.token]; !ok { - return fmt.Errorf("node at name %q has token %q but not in m.byToken", name, n.token) - } - } - - // A node n is in m.byExpiry if it has a non-negative byExpiryIndex. - if n.byExpiryIndex >= 0 { - if n.byExpiryIndex >= len(m.byExpiry) { - return fmt.Errorf("node at name %q has byExpiryIndex %d but m.byExpiry has length %d", name, n.byExpiryIndex, len(m.byExpiry)) - } - if n != m.byExpiry[n.byExpiryIndex] { - return fmt.Errorf("node at name %q has byExpiryIndex %d but that indexes a different node", name, n.byExpiryIndex) - } - } - } - - for token, n := range m.byToken { - // The map keys should be consistent with the node's copy of the key. - if n.token != token { - return fmt.Errorf("node token %q != byToken map key %q", n.token, token) - } - - // Every node in m.byToken is in m.byName. - if _, ok := m.byName[n.details.Root]; !ok { - return fmt.Errorf("node at name %q in m.byToken but not in m.byName", n.details.Root) - } - } - - for i, n := range m.byExpiry { - // The slice indices should be consistent with the node's copy of the index. - if n.byExpiryIndex != i { - return fmt.Errorf("node byExpiryIndex %d != byExpiry slice index %d", n.byExpiryIndex, i) - } - - // Every node in m.byExpiry is in m.byName. - if _, ok := m.byName[n.details.Root]; !ok { - return fmt.Errorf("node at name %q in m.byExpiry but not in m.byName", n.details.Root) - } - - // No node in m.byExpiry should be held. - if n.held { - return fmt.Errorf("node at name %q in m.byExpiry is held", n.details.Root) - } - } - return nil -} - -func TestParseTimeout(t *testing.T) { - testCases := []struct { - s string - want time.Duration - wantErr error - }{{ - "", - infiniteTimeout, - nil, - }, { - "Infinite", - infiniteTimeout, - nil, - }, { - "Infinitesimal", - 0, - errInvalidTimeout, - }, { - "infinite", - 0, - errInvalidTimeout, - }, { - "Second-0", - 0 * time.Second, - nil, - }, { - "Second-123", - 123 * time.Second, - nil, - }, { - " Second-456 ", - 456 * time.Second, - nil, - }, { - "Second-4100000000", - 4100000000 * time.Second, - nil, - }, { - "junk", - 0, - errInvalidTimeout, - }, { - "Second-", - 0, - errInvalidTimeout, - }, { - "Second--1", - 0, - errInvalidTimeout, - }, { - "Second--123", - 0, - errInvalidTimeout, - }, { - "Second-+123", - 0, - errInvalidTimeout, - }, { - "Second-0x123", - 0, - errInvalidTimeout, - }, { - "second-123", - 0, - errInvalidTimeout, - }, { - "Second-4294967295", - 4294967295 * time.Second, - nil, - }, { - // Section 10.7 says that "The timeout value for TimeType "Second" - // must not be greater than 2^32-1." - "Second-4294967296", - 0, - errInvalidTimeout, - }, { - // This test case comes from section 9.10.9 of the spec. It says, - // - // "In this request, the client has specified that it desires an - // infinite-length lock, if available, otherwise a timeout of 4.1 - // billion seconds, if available." - // - // The Go WebDAV package always supports infinite length locks, - // and ignores the fallback after the comma. - "Infinite, Second-4100000000", - infiniteTimeout, - nil, - }} - - for _, tc := range testCases { - got, gotErr := parseTimeout(tc.s) - if got != tc.want || gotErr != tc.wantErr { - t.Errorf("parsing %q:\ngot %v, %v\nwant %v, %v", tc.s, got, gotErr, tc.want, tc.wantErr) - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/prop.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/prop.go deleted file mode 100644 index 3351bf11..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/prop.go +++ /dev/null @@ -1,385 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package webdav - -import ( - "fmt" - "io" - "mime" - "net/http" - "os" - "path/filepath" - "strconv" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml" -) - -// Proppatch describes a property update instruction as defined in RFC 4918. -// See http://www.webdav.org/specs/rfc4918.html#METHOD_PROPPATCH -type Proppatch struct { - // Remove specifies whether this patch removes properties. If it does not - // remove them, it sets them. - Remove bool - // Props contains the properties to be set or removed. - Props []Property -} - -// Propstat describes a XML propstat element as defined in RFC 4918. -// See http://www.webdav.org/specs/rfc4918.html#ELEMENT_propstat -type Propstat struct { - // Props contains the properties for which Status applies. - Props []Property - - // Status defines the HTTP status code of the properties in Prop. - // Allowed values include, but are not limited to the WebDAV status - // code extensions for HTTP/1.1. - // http://www.webdav.org/specs/rfc4918.html#status.code.extensions.to.http11 - Status int - - // XMLError contains the XML representation of the optional error element. - // XML content within this field must not rely on any predefined - // namespace declarations or prefixes. If empty, the XML error element - // is omitted. - XMLError string - - // ResponseDescription contains the contents of the optional - // responsedescription field. If empty, the XML element is omitted. - ResponseDescription string -} - -// makePropstats returns a slice containing those of x and y whose Props slice -// is non-empty. If both are empty, it returns a slice containing an otherwise -// zero Propstat whose HTTP status code is 200 OK. -func makePropstats(x, y Propstat) []Propstat { - pstats := make([]Propstat, 0, 2) - if len(x.Props) != 0 { - pstats = append(pstats, x) - } - if len(y.Props) != 0 { - pstats = append(pstats, y) - } - if len(pstats) == 0 { - pstats = append(pstats, Propstat{ - Status: http.StatusOK, - }) - } - return pstats -} - -// DeadPropsHolder holds the dead properties of a resource. -// -// Dead properties are those properties that are explicitly defined. In -// comparison, live properties, such as DAV:getcontentlength, are implicitly -// defined by the underlying resource, and cannot be explicitly overridden or -// removed. See the Terminology section of -// http://www.webdav.org/specs/rfc4918.html#rfc.section.3 -// -// There is a whitelist of the names of live properties. This package handles -// all live properties, and will only pass non-whitelisted names to the Patch -// method of DeadPropsHolder implementations. -type DeadPropsHolder interface { - // DeadProps returns a copy of the dead properties held. - DeadProps() (map[xml.Name]Property, error) - - // Patch patches the dead properties held. - // - // Patching is atomic; either all or no patches succeed. It returns (nil, - // non-nil) if an internal server error occurred, otherwise the Propstats - // collectively contain one Property for each proposed patch Property. If - // all patches succeed, Patch returns a slice of length one and a Propstat - // element with a 200 OK HTTP status code. If none succeed, for reasons - // other than an internal server error, no Propstat has status 200 OK. - // - // For more details on when various HTTP status codes apply, see - // http://www.webdav.org/specs/rfc4918.html#PROPPATCH-status - Patch([]Proppatch) ([]Propstat, error) -} - -// liveProps contains all supported, protected DAV: properties. -var liveProps = map[xml.Name]struct { - // findFn implements the propfind function of this property. If nil, - // it indicates a hidden property. - findFn func(FileSystem, LockSystem, string, os.FileInfo) (string, error) - // dir is true if the property applies to directories. - dir bool -}{ - xml.Name{Space: "DAV:", Local: "resourcetype"}: { - findFn: findResourceType, - dir: true, - }, - xml.Name{Space: "DAV:", Local: "displayname"}: { - findFn: findDisplayName, - dir: true, - }, - xml.Name{Space: "DAV:", Local: "getcontentlength"}: { - findFn: findContentLength, - dir: true, - }, - xml.Name{Space: "DAV:", Local: "getlastmodified"}: { - findFn: findLastModified, - dir: true, - }, - xml.Name{Space: "DAV:", Local: "creationdate"}: { - findFn: nil, - dir: true, - }, - xml.Name{Space: "DAV:", Local: "getcontentlanguage"}: { - findFn: nil, - dir: true, - }, - xml.Name{Space: "DAV:", Local: "getcontenttype"}: { - findFn: findContentType, - dir: true, - }, - xml.Name{Space: "DAV:", Local: "getetag"}: { - findFn: findETag, - // findETag implements ETag as the concatenated hex values of a file's - // modification time and size. This is not a reliable synchronization - // mechanism for directories, so we do not advertise getetag for DAV - // collections. - dir: false, - }, - - // TODO: The lockdiscovery property requires LockSystem to list the - // active locks on a resource. - xml.Name{Space: "DAV:", Local: "lockdiscovery"}: {}, - xml.Name{Space: "DAV:", Local: "supportedlock"}: { - findFn: findSupportedLock, - dir: true, - }, -} - -// TODO(nigeltao) merge props and allprop? - -// Props returns the status of the properties named pnames for resource name. -// -// Each Propstat has a unique status and each property name will only be part -// of one Propstat element. -func props(fs FileSystem, ls LockSystem, name string, pnames []xml.Name) ([]Propstat, error) { - f, err := fs.OpenFile(name, os.O_RDONLY, 0) - if err != nil { - return nil, err - } - defer f.Close() - fi, err := f.Stat() - if err != nil { - return nil, err - } - isDir := fi.IsDir() - - var deadProps map[xml.Name]Property - if dph, ok := f.(DeadPropsHolder); ok { - deadProps, err = dph.DeadProps() - if err != nil { - return nil, err - } - } - - pstatOK := Propstat{Status: http.StatusOK} - pstatNotFound := Propstat{Status: http.StatusNotFound} - for _, pn := range pnames { - // If this file has dead properties, check if they contain pn. - if dp, ok := deadProps[pn]; ok { - pstatOK.Props = append(pstatOK.Props, dp) - continue - } - // Otherwise, it must either be a live property or we don't know it. - if prop := liveProps[pn]; prop.findFn != nil && (prop.dir || !isDir) { - innerXML, err := prop.findFn(fs, ls, name, fi) - if err != nil { - return nil, err - } - pstatOK.Props = append(pstatOK.Props, Property{ - XMLName: pn, - InnerXML: []byte(innerXML), - }) - } else { - pstatNotFound.Props = append(pstatNotFound.Props, Property{ - XMLName: pn, - }) - } - } - return makePropstats(pstatOK, pstatNotFound), nil -} - -// Propnames returns the property names defined for resource name. -func propnames(fs FileSystem, ls LockSystem, name string) ([]xml.Name, error) { - f, err := fs.OpenFile(name, os.O_RDONLY, 0) - if err != nil { - return nil, err - } - defer f.Close() - fi, err := f.Stat() - if err != nil { - return nil, err - } - isDir := fi.IsDir() - - var deadProps map[xml.Name]Property - if dph, ok := f.(DeadPropsHolder); ok { - deadProps, err = dph.DeadProps() - if err != nil { - return nil, err - } - } - - pnames := make([]xml.Name, 0, len(liveProps)+len(deadProps)) - for pn, prop := range liveProps { - if prop.findFn != nil && (prop.dir || !isDir) { - pnames = append(pnames, pn) - } - } - for pn := range deadProps { - pnames = append(pnames, pn) - } - return pnames, nil -} - -// Allprop returns the properties defined for resource name and the properties -// named in include. -// -// Note that RFC 4918 defines 'allprop' to return the DAV: properties defined -// within the RFC plus dead properties. Other live properties should only be -// returned if they are named in 'include'. -// -// See http://www.webdav.org/specs/rfc4918.html#METHOD_PROPFIND -func allprop(fs FileSystem, ls LockSystem, name string, include []xml.Name) ([]Propstat, error) { - pnames, err := propnames(fs, ls, name) - if err != nil { - return nil, err - } - // Add names from include if they are not already covered in pnames. - nameset := make(map[xml.Name]bool) - for _, pn := range pnames { - nameset[pn] = true - } - for _, pn := range include { - if !nameset[pn] { - pnames = append(pnames, pn) - } - } - return props(fs, ls, name, pnames) -} - -// Patch patches the properties of resource name. The return values are -// constrained in the same manner as DeadPropsHolder.Patch. -func patch(fs FileSystem, ls LockSystem, name string, patches []Proppatch) ([]Propstat, error) { - conflict := false -loop: - for _, patch := range patches { - for _, p := range patch.Props { - if _, ok := liveProps[p.XMLName]; ok { - conflict = true - break loop - } - } - } - if conflict { - pstatForbidden := Propstat{ - Status: http.StatusForbidden, - XMLError: ``, - } - pstatFailedDep := Propstat{ - Status: StatusFailedDependency, - } - for _, patch := range patches { - for _, p := range patch.Props { - if _, ok := liveProps[p.XMLName]; ok { - pstatForbidden.Props = append(pstatForbidden.Props, Property{XMLName: p.XMLName}) - } else { - pstatFailedDep.Props = append(pstatFailedDep.Props, Property{XMLName: p.XMLName}) - } - } - } - return makePropstats(pstatForbidden, pstatFailedDep), nil - } - - f, err := fs.OpenFile(name, os.O_RDWR, 0) - if err != nil { - return nil, err - } - defer f.Close() - if dph, ok := f.(DeadPropsHolder); ok { - ret, err := dph.Patch(patches) - if err != nil { - return nil, err - } - // http://www.webdav.org/specs/rfc4918.html#ELEMENT_propstat says that - // "The contents of the prop XML element must only list the names of - // properties to which the result in the status element applies." - for _, pstat := range ret { - for i, p := range pstat.Props { - pstat.Props[i] = Property{XMLName: p.XMLName} - } - } - return ret, nil - } - // The file doesn't implement the optional DeadPropsHolder interface, so - // all patches are forbidden. - pstat := Propstat{Status: http.StatusForbidden} - for _, patch := range patches { - for _, p := range patch.Props { - pstat.Props = append(pstat.Props, Property{XMLName: p.XMLName}) - } - } - return []Propstat{pstat}, nil -} - -func findResourceType(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) { - if fi.IsDir() { - return ``, nil - } - return "", nil -} - -func findDisplayName(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) { - if slashClean(name) == "/" { - // Hide the real name of a possibly prefixed root directory. - return "", nil - } - return fi.Name(), nil -} - -func findContentLength(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) { - return strconv.FormatInt(fi.Size(), 10), nil -} - -func findLastModified(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) { - return fi.ModTime().Format(http.TimeFormat), nil -} - -func findContentType(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) { - f, err := fs.OpenFile(name, os.O_RDONLY, 0) - if err != nil { - return "", err - } - defer f.Close() - // This implementation is based on serveContent's code in the standard net/http package. - ctype := mime.TypeByExtension(filepath.Ext(name)) - if ctype == "" { - // Read a chunk to decide between utf-8 text and binary. - var buf [512]byte - n, _ := io.ReadFull(f, buf[:]) - ctype = http.DetectContentType(buf[:n]) - // Rewind file. - _, err = f.Seek(0, os.SEEK_SET) - } - return ctype, err -} - -func findETag(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) { - // The Apache http 2.4 web server by default concatenates the - // modification time and size of a file. We replicate the heuristic - // with nanosecond granularity. - return fmt.Sprintf(`"%x%x"`, fi.ModTime().UnixNano(), fi.Size()), nil -} - -func findSupportedLock(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) { - return `` + - `` + - `` + - `` + - ``, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/prop_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/prop_test.go deleted file mode 100644 index 6e7559f8..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/prop_test.go +++ /dev/null @@ -1,619 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package webdav - -import ( - "fmt" - "net/http" - "os" - "reflect" - "sort" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml" -) - -func TestMemPS(t *testing.T) { - // calcProps calculates the getlastmodified and getetag DAV: property - // values in pstats for resource name in file-system fs. - calcProps := func(name string, fs FileSystem, ls LockSystem, pstats []Propstat) error { - fi, err := fs.Stat(name) - if err != nil { - return err - } - for _, pst := range pstats { - for i, p := range pst.Props { - switch p.XMLName { - case xml.Name{Space: "DAV:", Local: "getlastmodified"}: - p.InnerXML = []byte(fi.ModTime().Format(http.TimeFormat)) - pst.Props[i] = p - case xml.Name{Space: "DAV:", Local: "getetag"}: - if fi.IsDir() { - continue - } - etag, err := findETag(fs, ls, name, fi) - if err != nil { - return err - } - p.InnerXML = []byte(etag) - pst.Props[i] = p - } - } - } - return nil - } - - const ( - lockEntry = `` + - `` + - `` + - `` + - `` - statForbiddenError = `` - ) - - type propOp struct { - op string - name string - pnames []xml.Name - patches []Proppatch - wantPnames []xml.Name - wantPropstats []Propstat - } - - testCases := []struct { - desc string - noDeadProps bool - buildfs []string - propOp []propOp - }{{ - desc: "propname", - buildfs: []string{"mkdir /dir", "touch /file"}, - propOp: []propOp{{ - op: "propname", - name: "/dir", - wantPnames: []xml.Name{ - xml.Name{Space: "DAV:", Local: "resourcetype"}, - xml.Name{Space: "DAV:", Local: "displayname"}, - xml.Name{Space: "DAV:", Local: "getcontentlength"}, - xml.Name{Space: "DAV:", Local: "getlastmodified"}, - xml.Name{Space: "DAV:", Local: "getcontenttype"}, - xml.Name{Space: "DAV:", Local: "supportedlock"}, - }, - }, { - op: "propname", - name: "/file", - wantPnames: []xml.Name{ - xml.Name{Space: "DAV:", Local: "resourcetype"}, - xml.Name{Space: "DAV:", Local: "displayname"}, - xml.Name{Space: "DAV:", Local: "getcontentlength"}, - xml.Name{Space: "DAV:", Local: "getlastmodified"}, - xml.Name{Space: "DAV:", Local: "getcontenttype"}, - xml.Name{Space: "DAV:", Local: "getetag"}, - xml.Name{Space: "DAV:", Local: "supportedlock"}, - }, - }}, - }, { - desc: "allprop dir and file", - buildfs: []string{"mkdir /dir", "write /file foobarbaz"}, - propOp: []propOp{{ - op: "allprop", - name: "/dir", - wantPropstats: []Propstat{{ - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "DAV:", Local: "resourcetype"}, - InnerXML: []byte(``), - }, { - XMLName: xml.Name{Space: "DAV:", Local: "displayname"}, - InnerXML: []byte("dir"), - }, { - XMLName: xml.Name{Space: "DAV:", Local: "getcontentlength"}, - InnerXML: []byte("0"), - }, { - XMLName: xml.Name{Space: "DAV:", Local: "getlastmodified"}, - InnerXML: nil, // Calculated during test. - }, { - XMLName: xml.Name{Space: "DAV:", Local: "getcontenttype"}, - InnerXML: []byte("text/plain; charset=utf-8"), - }, { - XMLName: xml.Name{Space: "DAV:", Local: "supportedlock"}, - InnerXML: []byte(lockEntry), - }}, - }}, - }, { - op: "allprop", - name: "/file", - wantPropstats: []Propstat{{ - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "DAV:", Local: "resourcetype"}, - InnerXML: []byte(""), - }, { - XMLName: xml.Name{Space: "DAV:", Local: "displayname"}, - InnerXML: []byte("file"), - }, { - XMLName: xml.Name{Space: "DAV:", Local: "getcontentlength"}, - InnerXML: []byte("9"), - }, { - XMLName: xml.Name{Space: "DAV:", Local: "getlastmodified"}, - InnerXML: nil, // Calculated during test. - }, { - XMLName: xml.Name{Space: "DAV:", Local: "getcontenttype"}, - InnerXML: []byte("text/plain; charset=utf-8"), - }, { - XMLName: xml.Name{Space: "DAV:", Local: "getetag"}, - InnerXML: nil, // Calculated during test. - }, { - XMLName: xml.Name{Space: "DAV:", Local: "supportedlock"}, - InnerXML: []byte(lockEntry), - }}, - }}, - }, { - op: "allprop", - name: "/file", - pnames: []xml.Name{ - {"DAV:", "resourcetype"}, - {"foo", "bar"}, - }, - wantPropstats: []Propstat{{ - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "DAV:", Local: "resourcetype"}, - InnerXML: []byte(""), - }, { - XMLName: xml.Name{Space: "DAV:", Local: "displayname"}, - InnerXML: []byte("file"), - }, { - XMLName: xml.Name{Space: "DAV:", Local: "getcontentlength"}, - InnerXML: []byte("9"), - }, { - XMLName: xml.Name{Space: "DAV:", Local: "getlastmodified"}, - InnerXML: nil, // Calculated during test. - }, { - XMLName: xml.Name{Space: "DAV:", Local: "getcontenttype"}, - InnerXML: []byte("text/plain; charset=utf-8"), - }, { - XMLName: xml.Name{Space: "DAV:", Local: "getetag"}, - InnerXML: nil, // Calculated during test. - }, { - XMLName: xml.Name{Space: "DAV:", Local: "supportedlock"}, - InnerXML: []byte(lockEntry), - }}}, { - Status: http.StatusNotFound, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - }}}, - }, - }}, - }, { - desc: "propfind DAV:resourcetype", - buildfs: []string{"mkdir /dir", "touch /file"}, - propOp: []propOp{{ - op: "propfind", - name: "/dir", - pnames: []xml.Name{{"DAV:", "resourcetype"}}, - wantPropstats: []Propstat{{ - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "DAV:", Local: "resourcetype"}, - InnerXML: []byte(``), - }}, - }}, - }, { - op: "propfind", - name: "/file", - pnames: []xml.Name{{"DAV:", "resourcetype"}}, - wantPropstats: []Propstat{{ - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "DAV:", Local: "resourcetype"}, - InnerXML: []byte(""), - }}, - }}, - }}, - }, { - desc: "propfind unsupported DAV properties", - buildfs: []string{"mkdir /dir"}, - propOp: []propOp{{ - op: "propfind", - name: "/dir", - pnames: []xml.Name{{"DAV:", "getcontentlanguage"}}, - wantPropstats: []Propstat{{ - Status: http.StatusNotFound, - Props: []Property{{ - XMLName: xml.Name{Space: "DAV:", Local: "getcontentlanguage"}, - }}, - }}, - }, { - op: "propfind", - name: "/dir", - pnames: []xml.Name{{"DAV:", "creationdate"}}, - wantPropstats: []Propstat{{ - Status: http.StatusNotFound, - Props: []Property{{ - XMLName: xml.Name{Space: "DAV:", Local: "creationdate"}, - }}, - }}, - }}, - }, { - desc: "propfind getetag for files but not for directories", - buildfs: []string{"mkdir /dir", "touch /file"}, - propOp: []propOp{{ - op: "propfind", - name: "/dir", - pnames: []xml.Name{{"DAV:", "getetag"}}, - wantPropstats: []Propstat{{ - Status: http.StatusNotFound, - Props: []Property{{ - XMLName: xml.Name{Space: "DAV:", Local: "getetag"}, - }}, - }}, - }, { - op: "propfind", - name: "/file", - pnames: []xml.Name{{"DAV:", "getetag"}}, - wantPropstats: []Propstat{{ - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "DAV:", Local: "getetag"}, - InnerXML: nil, // Calculated during test. - }}, - }}, - }}, - }, { - desc: "proppatch property on no-dead-properties file system", - buildfs: []string{"mkdir /dir"}, - noDeadProps: true, - propOp: []propOp{{ - op: "proppatch", - name: "/dir", - patches: []Proppatch{{ - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - }}, - }}, - wantPropstats: []Propstat{{ - Status: http.StatusForbidden, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - }}, - }}, - }, { - op: "proppatch", - name: "/dir", - patches: []Proppatch{{ - Props: []Property{{ - XMLName: xml.Name{Space: "DAV:", Local: "getetag"}, - }}, - }}, - wantPropstats: []Propstat{{ - Status: http.StatusForbidden, - XMLError: statForbiddenError, - Props: []Property{{ - XMLName: xml.Name{Space: "DAV:", Local: "getetag"}, - }}, - }}, - }}, - }, { - desc: "proppatch dead property", - buildfs: []string{"mkdir /dir"}, - propOp: []propOp{{ - op: "proppatch", - name: "/dir", - patches: []Proppatch{{ - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - InnerXML: []byte("baz"), - }}, - }}, - wantPropstats: []Propstat{{ - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - }}, - }}, - }, { - op: "propfind", - name: "/dir", - pnames: []xml.Name{{Space: "foo", Local: "bar"}}, - wantPropstats: []Propstat{{ - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - InnerXML: []byte("baz"), - }}, - }}, - }}, - }, { - desc: "proppatch dead property with failed dependency", - buildfs: []string{"mkdir /dir"}, - propOp: []propOp{{ - op: "proppatch", - name: "/dir", - patches: []Proppatch{{ - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - InnerXML: []byte("baz"), - }}, - }, { - Props: []Property{{ - XMLName: xml.Name{Space: "DAV:", Local: "displayname"}, - InnerXML: []byte("xxx"), - }}, - }}, - wantPropstats: []Propstat{{ - Status: http.StatusForbidden, - XMLError: statForbiddenError, - Props: []Property{{ - XMLName: xml.Name{Space: "DAV:", Local: "displayname"}, - }}, - }, { - Status: StatusFailedDependency, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - }}, - }}, - }, { - op: "propfind", - name: "/dir", - pnames: []xml.Name{{Space: "foo", Local: "bar"}}, - wantPropstats: []Propstat{{ - Status: http.StatusNotFound, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - }}, - }}, - }}, - }, { - desc: "proppatch remove dead property", - buildfs: []string{"mkdir /dir"}, - propOp: []propOp{{ - op: "proppatch", - name: "/dir", - patches: []Proppatch{{ - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - InnerXML: []byte("baz"), - }, { - XMLName: xml.Name{Space: "spam", Local: "ham"}, - InnerXML: []byte("eggs"), - }}, - }}, - wantPropstats: []Propstat{{ - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - }, { - XMLName: xml.Name{Space: "spam", Local: "ham"}, - }}, - }}, - }, { - op: "propfind", - name: "/dir", - pnames: []xml.Name{ - {Space: "foo", Local: "bar"}, - {Space: "spam", Local: "ham"}, - }, - wantPropstats: []Propstat{{ - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - InnerXML: []byte("baz"), - }, { - XMLName: xml.Name{Space: "spam", Local: "ham"}, - InnerXML: []byte("eggs"), - }}, - }}, - }, { - op: "proppatch", - name: "/dir", - patches: []Proppatch{{ - Remove: true, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - }}, - }}, - wantPropstats: []Propstat{{ - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - }}, - }}, - }, { - op: "propfind", - name: "/dir", - pnames: []xml.Name{ - {Space: "foo", Local: "bar"}, - {Space: "spam", Local: "ham"}, - }, - wantPropstats: []Propstat{{ - Status: http.StatusNotFound, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - }}, - }, { - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "spam", Local: "ham"}, - InnerXML: []byte("eggs"), - }}, - }}, - }}, - }, { - desc: "propname with dead property", - buildfs: []string{"touch /file"}, - propOp: []propOp{{ - op: "proppatch", - name: "/file", - patches: []Proppatch{{ - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - InnerXML: []byte("baz"), - }}, - }}, - wantPropstats: []Propstat{{ - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - }}, - }}, - }, { - op: "propname", - name: "/file", - wantPnames: []xml.Name{ - xml.Name{Space: "DAV:", Local: "resourcetype"}, - xml.Name{Space: "DAV:", Local: "displayname"}, - xml.Name{Space: "DAV:", Local: "getcontentlength"}, - xml.Name{Space: "DAV:", Local: "getlastmodified"}, - xml.Name{Space: "DAV:", Local: "getcontenttype"}, - xml.Name{Space: "DAV:", Local: "getetag"}, - xml.Name{Space: "DAV:", Local: "supportedlock"}, - xml.Name{Space: "foo", Local: "bar"}, - }, - }}, - }, { - desc: "proppatch remove unknown dead property", - buildfs: []string{"mkdir /dir"}, - propOp: []propOp{{ - op: "proppatch", - name: "/dir", - patches: []Proppatch{{ - Remove: true, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - }}, - }}, - wantPropstats: []Propstat{{ - Status: http.StatusOK, - Props: []Property{{ - XMLName: xml.Name{Space: "foo", Local: "bar"}, - }}, - }}, - }}, - }, { - desc: "bad: propfind unknown property", - buildfs: []string{"mkdir /dir"}, - propOp: []propOp{{ - op: "propfind", - name: "/dir", - pnames: []xml.Name{{"foo:", "bar"}}, - wantPropstats: []Propstat{{ - Status: http.StatusNotFound, - Props: []Property{{ - XMLName: xml.Name{Space: "foo:", Local: "bar"}, - }}, - }}, - }}, - }} - - for _, tc := range testCases { - fs, err := buildTestFS(tc.buildfs) - if err != nil { - t.Fatalf("%s: cannot create test filesystem: %v", tc.desc, err) - } - if tc.noDeadProps { - fs = noDeadPropsFS{fs} - } - ls := NewMemLS() - for _, op := range tc.propOp { - desc := fmt.Sprintf("%s: %s %s", tc.desc, op.op, op.name) - if err = calcProps(op.name, fs, ls, op.wantPropstats); err != nil { - t.Fatalf("%s: calcProps: %v", desc, err) - } - - // Call property system. - var propstats []Propstat - switch op.op { - case "propname": - pnames, err := propnames(fs, ls, op.name) - if err != nil { - t.Errorf("%s: got error %v, want nil", desc, err) - continue - } - sort.Sort(byXMLName(pnames)) - sort.Sort(byXMLName(op.wantPnames)) - if !reflect.DeepEqual(pnames, op.wantPnames) { - t.Errorf("%s: pnames\ngot %q\nwant %q", desc, pnames, op.wantPnames) - } - continue - case "allprop": - propstats, err = allprop(fs, ls, op.name, op.pnames) - case "propfind": - propstats, err = props(fs, ls, op.name, op.pnames) - case "proppatch": - propstats, err = patch(fs, ls, op.name, op.patches) - default: - t.Fatalf("%s: %s not implemented", desc, op.op) - } - if err != nil { - t.Errorf("%s: got error %v, want nil", desc, err) - continue - } - // Compare return values from allprop, propfind or proppatch. - for _, pst := range propstats { - sort.Sort(byPropname(pst.Props)) - } - for _, pst := range op.wantPropstats { - sort.Sort(byPropname(pst.Props)) - } - sort.Sort(byStatus(propstats)) - sort.Sort(byStatus(op.wantPropstats)) - if !reflect.DeepEqual(propstats, op.wantPropstats) { - t.Errorf("%s: propstat\ngot %q\nwant %q", desc, propstats, op.wantPropstats) - } - } - } -} - -func cmpXMLName(a, b xml.Name) bool { - if a.Space != b.Space { - return a.Space < b.Space - } - return a.Local < b.Local -} - -type byXMLName []xml.Name - -func (b byXMLName) Len() int { return len(b) } -func (b byXMLName) Swap(i, j int) { b[i], b[j] = b[j], b[i] } -func (b byXMLName) Less(i, j int) bool { return cmpXMLName(b[i], b[j]) } - -type byPropname []Property - -func (b byPropname) Len() int { return len(b) } -func (b byPropname) Swap(i, j int) { b[i], b[j] = b[j], b[i] } -func (b byPropname) Less(i, j int) bool { return cmpXMLName(b[i].XMLName, b[j].XMLName) } - -type byStatus []Propstat - -func (b byStatus) Len() int { return len(b) } -func (b byStatus) Swap(i, j int) { b[i], b[j] = b[j], b[i] } -func (b byStatus) Less(i, j int) bool { return b[i].Status < b[j].Status } - -type noDeadPropsFS struct { - FileSystem -} - -func (fs noDeadPropsFS) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - f, err := fs.FileSystem.OpenFile(name, flag, perm) - if err != nil { - return nil, err - } - return noDeadPropsFile{f}, nil -} - -// noDeadPropsFile wraps a File but strips any optional DeadPropsHolder methods -// provided by the underlying File implementation. -type noDeadPropsFile struct { - f File -} - -func (f noDeadPropsFile) Close() error { return f.f.Close() } -func (f noDeadPropsFile) Read(p []byte) (int, error) { return f.f.Read(p) } -func (f noDeadPropsFile) Readdir(count int) ([]os.FileInfo, error) { return f.f.Readdir(count) } -func (f noDeadPropsFile) Seek(off int64, whence int) (int64, error) { return f.f.Seek(off, whence) } -func (f noDeadPropsFile) Stat() (os.FileInfo, error) { return f.f.Stat() } -func (f noDeadPropsFile) Write(p []byte) (int, error) { return f.f.Write(p) } diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/webdav.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/webdav.go deleted file mode 100644 index 95690d65..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/webdav.go +++ /dev/null @@ -1,706 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package webdav etc etc TODO. -package webdav - -import ( - "errors" - "fmt" - "io" - "log" - "net/http" - "net/url" - "os" - "path" - "runtime" - "strings" - "time" -) - -// Package webdav's XML output requires the standard library's encoding/xml -// package version 1.5 or greater. Otherwise, it will produce malformed XML. -// -// As of May 2015, the Go stable release is version 1.4, so we print a message -// to let users know that this golang.org/x/etc package won't work yet. -// -// This package also won't work with Go 1.3 and earlier, but making this -// runtime version check catch all the earlier versions too, and not just -// "1.4.x", isn't worth the complexity. -// -// TODO: delete this check at some point after Go 1.5 is released. -var go1Dot4 = strings.HasPrefix(runtime.Version(), "go1.4.") - -func init() { - if go1Dot4 { - log.Println("package webdav requires Go version 1.5 or greater") - } -} - -type Handler struct { - // Prefix is the URL path prefix to strip from WebDAV resource paths. - Prefix string - // FileSystem is the virtual file system. - FileSystem FileSystem - // LockSystem is the lock management system. - LockSystem LockSystem - // Logger is an optional error logger. If non-nil, it will be called - // for all HTTP requests. - Logger func(*http.Request, error) -} - -func (h *Handler) stripPrefix(p string) (string, int, error) { - if h.Prefix == "" { - return p, http.StatusOK, nil - } - if r := strings.TrimPrefix(p, h.Prefix); len(r) < len(p) { - return r, http.StatusOK, nil - } - return p, http.StatusNotFound, errPrefixMismatch -} - -func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - status, err := http.StatusBadRequest, errUnsupportedMethod - if h.FileSystem == nil { - status, err = http.StatusInternalServerError, errNoFileSystem - } else if h.LockSystem == nil { - status, err = http.StatusInternalServerError, errNoLockSystem - } else { - switch r.Method { - case "OPTIONS": - status, err = h.handleOptions(w, r) - case "GET", "HEAD", "POST": - status, err = h.handleGetHeadPost(w, r) - case "DELETE": - status, err = h.handleDelete(w, r) - case "PUT": - status, err = h.handlePut(w, r) - case "MKCOL": - status, err = h.handleMkcol(w, r) - case "COPY", "MOVE": - status, err = h.handleCopyMove(w, r) - case "LOCK": - status, err = h.handleLock(w, r) - case "UNLOCK": - status, err = h.handleUnlock(w, r) - case "PROPFIND": - status, err = h.handlePropfind(w, r) - case "PROPPATCH": - status, err = h.handleProppatch(w, r) - } - } - - if status != 0 { - w.WriteHeader(status) - if status != http.StatusNoContent { - w.Write([]byte(StatusText(status))) - } - } - if h.Logger != nil { - h.Logger(r, err) - } -} - -func (h *Handler) lock(now time.Time, root string) (token string, status int, err error) { - token, err = h.LockSystem.Create(now, LockDetails{ - Root: root, - Duration: infiniteTimeout, - ZeroDepth: true, - }) - if err != nil { - if err == ErrLocked { - return "", StatusLocked, err - } - return "", http.StatusInternalServerError, err - } - return token, 0, nil -} - -func (h *Handler) confirmLocks(r *http.Request, src, dst string) (release func(), status int, err error) { - hdr := r.Header.Get("If") - if hdr == "" { - // An empty If header means that the client hasn't previously created locks. - // Even if this client doesn't care about locks, we still need to check that - // the resources aren't locked by another client, so we create temporary - // locks that would conflict with another client's locks. These temporary - // locks are unlocked at the end of the HTTP request. - now, srcToken, dstToken := time.Now(), "", "" - if src != "" { - srcToken, status, err = h.lock(now, src) - if err != nil { - return nil, status, err - } - } - if dst != "" { - dstToken, status, err = h.lock(now, dst) - if err != nil { - if srcToken != "" { - h.LockSystem.Unlock(now, srcToken) - } - return nil, status, err - } - } - - return func() { - if dstToken != "" { - h.LockSystem.Unlock(now, dstToken) - } - if srcToken != "" { - h.LockSystem.Unlock(now, srcToken) - } - }, 0, nil - } - - ih, ok := parseIfHeader(hdr) - if !ok { - return nil, http.StatusBadRequest, errInvalidIfHeader - } - // ih is a disjunction (OR) of ifLists, so any ifList will do. - for _, l := range ih.lists { - lsrc := l.resourceTag - if lsrc == "" { - lsrc = src - } else { - u, err := url.Parse(lsrc) - if err != nil { - continue - } - if u.Host != r.Host { - continue - } - lsrc = u.Path - } - release, err = h.LockSystem.Confirm(time.Now(), lsrc, dst, l.conditions...) - if err == ErrConfirmationFailed { - continue - } - if err != nil { - return nil, http.StatusInternalServerError, err - } - return release, 0, nil - } - // Section 10.4.1 says that "If this header is evaluated and all state lists - // fail, then the request must fail with a 412 (Precondition Failed) status." - // We follow the spec even though the cond_put_corrupt_token test case from - // the litmus test warns on seeing a 412 instead of a 423 (Locked). - return nil, http.StatusPreconditionFailed, ErrLocked -} - -func (h *Handler) handleOptions(w http.ResponseWriter, r *http.Request) (status int, err error) { - reqPath, status, err := h.stripPrefix(r.URL.Path) - if err != nil { - return status, err - } - allow := "OPTIONS, LOCK, PUT, MKCOL" - if fi, err := h.FileSystem.Stat(reqPath); err == nil { - if fi.IsDir() { - allow = "OPTIONS, LOCK, GET, HEAD, POST, DELETE, PROPPATCH, COPY, MOVE, UNLOCK, PROPFIND" - } else { - allow = "OPTIONS, LOCK, GET, HEAD, POST, DELETE, PROPPATCH, COPY, MOVE, UNLOCK, PROPFIND, PUT" - } - } - w.Header().Set("Allow", allow) - // http://www.webdav.org/specs/rfc4918.html#dav.compliance.classes - w.Header().Set("DAV", "1, 2") - // http://msdn.microsoft.com/en-au/library/cc250217.aspx - w.Header().Set("MS-Author-Via", "DAV") - return 0, nil -} - -func (h *Handler) handleGetHeadPost(w http.ResponseWriter, r *http.Request) (status int, err error) { - reqPath, status, err := h.stripPrefix(r.URL.Path) - if err != nil { - return status, err - } - // TODO: check locks for read-only access?? - f, err := h.FileSystem.OpenFile(reqPath, os.O_RDONLY, 0) - if err != nil { - return http.StatusNotFound, err - } - defer f.Close() - fi, err := f.Stat() - if err != nil { - return http.StatusNotFound, err - } - if !fi.IsDir() { - etag, err := findETag(h.FileSystem, h.LockSystem, reqPath, fi) - if err != nil { - return http.StatusInternalServerError, err - } - w.Header().Set("ETag", etag) - } - // Let ServeContent determine the Content-Type header. - http.ServeContent(w, r, reqPath, fi.ModTime(), f) - return 0, nil -} - -func (h *Handler) handleDelete(w http.ResponseWriter, r *http.Request) (status int, err error) { - reqPath, status, err := h.stripPrefix(r.URL.Path) - if err != nil { - return status, err - } - release, status, err := h.confirmLocks(r, reqPath, "") - if err != nil { - return status, err - } - defer release() - - // TODO: return MultiStatus where appropriate. - - // "godoc os RemoveAll" says that "If the path does not exist, RemoveAll - // returns nil (no error)." WebDAV semantics are that it should return a - // "404 Not Found". We therefore have to Stat before we RemoveAll. - if _, err := h.FileSystem.Stat(reqPath); err != nil { - if os.IsNotExist(err) { - return http.StatusNotFound, err - } - return http.StatusMethodNotAllowed, err - } - if err := h.FileSystem.RemoveAll(reqPath); err != nil { - return http.StatusMethodNotAllowed, err - } - return http.StatusNoContent, nil -} - -func (h *Handler) handlePut(w http.ResponseWriter, r *http.Request) (status int, err error) { - reqPath, status, err := h.stripPrefix(r.URL.Path) - if err != nil { - return status, err - } - release, status, err := h.confirmLocks(r, reqPath, "") - if err != nil { - return status, err - } - defer release() - // TODO(rost): Support the If-Match, If-None-Match headers? See bradfitz' - // comments in http.checkEtag. - - f, err := h.FileSystem.OpenFile(reqPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666) - if err != nil { - return http.StatusNotFound, err - } - _, copyErr := io.Copy(f, r.Body) - fi, statErr := f.Stat() - closeErr := f.Close() - // TODO(rost): Returning 405 Method Not Allowed might not be appropriate. - if copyErr != nil { - return http.StatusMethodNotAllowed, copyErr - } - if statErr != nil { - return http.StatusMethodNotAllowed, statErr - } - if closeErr != nil { - return http.StatusMethodNotAllowed, closeErr - } - etag, err := findETag(h.FileSystem, h.LockSystem, reqPath, fi) - if err != nil { - return http.StatusInternalServerError, err - } - w.Header().Set("ETag", etag) - return http.StatusCreated, nil -} - -func (h *Handler) handleMkcol(w http.ResponseWriter, r *http.Request) (status int, err error) { - reqPath, status, err := h.stripPrefix(r.URL.Path) - if err != nil { - return status, err - } - release, status, err := h.confirmLocks(r, reqPath, "") - if err != nil { - return status, err - } - defer release() - - if r.ContentLength > 0 { - return http.StatusUnsupportedMediaType, nil - } - if err := h.FileSystem.Mkdir(reqPath, 0777); err != nil { - if os.IsNotExist(err) { - return http.StatusConflict, err - } - return http.StatusMethodNotAllowed, err - } - return http.StatusCreated, nil -} - -func (h *Handler) handleCopyMove(w http.ResponseWriter, r *http.Request) (status int, err error) { - hdr := r.Header.Get("Destination") - if hdr == "" { - return http.StatusBadRequest, errInvalidDestination - } - u, err := url.Parse(hdr) - if err != nil { - return http.StatusBadRequest, errInvalidDestination - } - if u.Host != r.Host { - return http.StatusBadGateway, errInvalidDestination - } - - src, status, err := h.stripPrefix(r.URL.Path) - if err != nil { - return status, err - } - - dst, status, err := h.stripPrefix(u.Path) - if err != nil { - return status, err - } - - if dst == "" { - return http.StatusBadGateway, errInvalidDestination - } - if dst == src { - return http.StatusForbidden, errDestinationEqualsSource - } - - if r.Method == "COPY" { - // Section 7.5.1 says that a COPY only needs to lock the destination, - // not both destination and source. Strictly speaking, this is racy, - // even though a COPY doesn't modify the source, if a concurrent - // operation modifies the source. However, the litmus test explicitly - // checks that COPYing a locked-by-another source is OK. - release, status, err := h.confirmLocks(r, "", dst) - if err != nil { - return status, err - } - defer release() - - // Section 9.8.3 says that "The COPY method on a collection without a Depth - // header must act as if a Depth header with value "infinity" was included". - depth := infiniteDepth - if hdr := r.Header.Get("Depth"); hdr != "" { - depth = parseDepth(hdr) - if depth != 0 && depth != infiniteDepth { - // Section 9.8.3 says that "A client may submit a Depth header on a - // COPY on a collection with a value of "0" or "infinity"." - return http.StatusBadRequest, errInvalidDepth - } - } - return copyFiles(h.FileSystem, src, dst, r.Header.Get("Overwrite") != "F", depth, 0) - } - - release, status, err := h.confirmLocks(r, src, dst) - if err != nil { - return status, err - } - defer release() - - // Section 9.9.2 says that "The MOVE method on a collection must act as if - // a "Depth: infinity" header was used on it. A client must not submit a - // Depth header on a MOVE on a collection with any value but "infinity"." - if hdr := r.Header.Get("Depth"); hdr != "" { - if parseDepth(hdr) != infiniteDepth { - return http.StatusBadRequest, errInvalidDepth - } - } - return moveFiles(h.FileSystem, src, dst, r.Header.Get("Overwrite") == "T") -} - -func (h *Handler) handleLock(w http.ResponseWriter, r *http.Request) (retStatus int, retErr error) { - duration, err := parseTimeout(r.Header.Get("Timeout")) - if err != nil { - return http.StatusBadRequest, err - } - li, status, err := readLockInfo(r.Body) - if err != nil { - return status, err - } - - token, ld, now, created := "", LockDetails{}, time.Now(), false - if li == (lockInfo{}) { - // An empty lockInfo means to refresh the lock. - ih, ok := parseIfHeader(r.Header.Get("If")) - if !ok { - return http.StatusBadRequest, errInvalidIfHeader - } - if len(ih.lists) == 1 && len(ih.lists[0].conditions) == 1 { - token = ih.lists[0].conditions[0].Token - } - if token == "" { - return http.StatusBadRequest, errInvalidLockToken - } - ld, err = h.LockSystem.Refresh(now, token, duration) - if err != nil { - if err == ErrNoSuchLock { - return http.StatusPreconditionFailed, err - } - return http.StatusInternalServerError, err - } - - } else { - // Section 9.10.3 says that "If no Depth header is submitted on a LOCK request, - // then the request MUST act as if a "Depth:infinity" had been submitted." - depth := infiniteDepth - if hdr := r.Header.Get("Depth"); hdr != "" { - depth = parseDepth(hdr) - if depth != 0 && depth != infiniteDepth { - // Section 9.10.3 says that "Values other than 0 or infinity must not be - // used with the Depth header on a LOCK method". - return http.StatusBadRequest, errInvalidDepth - } - } - reqPath, status, err := h.stripPrefix(r.URL.Path) - if err != nil { - return status, err - } - ld = LockDetails{ - Root: reqPath, - Duration: duration, - OwnerXML: li.Owner.InnerXML, - ZeroDepth: depth == 0, - } - token, err = h.LockSystem.Create(now, ld) - if err != nil { - if err == ErrLocked { - return StatusLocked, err - } - return http.StatusInternalServerError, err - } - defer func() { - if retErr != nil { - h.LockSystem.Unlock(now, token) - } - }() - - // Create the resource if it didn't previously exist. - if _, err := h.FileSystem.Stat(reqPath); err != nil { - f, err := h.FileSystem.OpenFile(reqPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666) - if err != nil { - // TODO: detect missing intermediate dirs and return http.StatusConflict? - return http.StatusInternalServerError, err - } - f.Close() - created = true - } - - // http://www.webdav.org/specs/rfc4918.html#HEADER_Lock-Token says that the - // Lock-Token value is a Coded-URL. We add angle brackets. - w.Header().Set("Lock-Token", "<"+token+">") - } - - w.Header().Set("Content-Type", "application/xml; charset=utf-8") - if created { - // This is "w.WriteHeader(http.StatusCreated)" and not "return - // http.StatusCreated, nil" because we write our own (XML) response to w - // and Handler.ServeHTTP would otherwise write "Created". - w.WriteHeader(http.StatusCreated) - } - writeLockInfo(w, token, ld) - return 0, nil -} - -func (h *Handler) handleUnlock(w http.ResponseWriter, r *http.Request) (status int, err error) { - // http://www.webdav.org/specs/rfc4918.html#HEADER_Lock-Token says that the - // Lock-Token value is a Coded-URL. We strip its angle brackets. - t := r.Header.Get("Lock-Token") - if len(t) < 2 || t[0] != '<' || t[len(t)-1] != '>' { - return http.StatusBadRequest, errInvalidLockToken - } - t = t[1 : len(t)-1] - - switch err = h.LockSystem.Unlock(time.Now(), t); err { - case nil: - return http.StatusNoContent, err - case ErrForbidden: - return http.StatusForbidden, err - case ErrLocked: - return StatusLocked, err - case ErrNoSuchLock: - return http.StatusConflict, err - default: - return http.StatusInternalServerError, err - } -} - -func (h *Handler) handlePropfind(w http.ResponseWriter, r *http.Request) (status int, err error) { - reqPath, status, err := h.stripPrefix(r.URL.Path) - if err != nil { - return status, err - } - fi, err := h.FileSystem.Stat(reqPath) - if err != nil { - if os.IsNotExist(err) { - return http.StatusNotFound, err - } - return http.StatusMethodNotAllowed, err - } - depth := infiniteDepth - if hdr := r.Header.Get("Depth"); hdr != "" { - depth = parseDepth(hdr) - if depth == invalidDepth { - return http.StatusBadRequest, errInvalidDepth - } - } - pf, status, err := readPropfind(r.Body) - if err != nil { - return status, err - } - - mw := multistatusWriter{w: w} - - walkFn := func(reqPath string, info os.FileInfo, err error) error { - if err != nil { - return err - } - var pstats []Propstat - if pf.Propname != nil { - pnames, err := propnames(h.FileSystem, h.LockSystem, reqPath) - if err != nil { - return err - } - pstat := Propstat{Status: http.StatusOK} - for _, xmlname := range pnames { - pstat.Props = append(pstat.Props, Property{XMLName: xmlname}) - } - pstats = append(pstats, pstat) - } else if pf.Allprop != nil { - pstats, err = allprop(h.FileSystem, h.LockSystem, reqPath, pf.Prop) - } else { - pstats, err = props(h.FileSystem, h.LockSystem, reqPath, pf.Prop) - } - if err != nil { - return err - } - return mw.write(makePropstatResponse(path.Join(h.Prefix, reqPath), pstats)) - } - - walkErr := walkFS(h.FileSystem, depth, reqPath, fi, walkFn) - closeErr := mw.close() - if walkErr != nil { - return http.StatusInternalServerError, walkErr - } - if closeErr != nil { - return http.StatusInternalServerError, closeErr - } - return 0, nil -} - -func (h *Handler) handleProppatch(w http.ResponseWriter, r *http.Request) (status int, err error) { - reqPath, status, err := h.stripPrefix(r.URL.Path) - if err != nil { - return status, err - } - release, status, err := h.confirmLocks(r, reqPath, "") - if err != nil { - return status, err - } - defer release() - - if _, err := h.FileSystem.Stat(reqPath); err != nil { - if os.IsNotExist(err) { - return http.StatusNotFound, err - } - return http.StatusMethodNotAllowed, err - } - patches, status, err := readProppatch(r.Body) - if err != nil { - return status, err - } - pstats, err := patch(h.FileSystem, h.LockSystem, reqPath, patches) - if err != nil { - return http.StatusInternalServerError, err - } - mw := multistatusWriter{w: w} - writeErr := mw.write(makePropstatResponse(r.URL.Path, pstats)) - closeErr := mw.close() - if writeErr != nil { - return http.StatusInternalServerError, writeErr - } - if closeErr != nil { - return http.StatusInternalServerError, closeErr - } - return 0, nil -} - -func makePropstatResponse(href string, pstats []Propstat) *response { - resp := response{ - Href: []string{href}, - Propstat: make([]propstat, 0, len(pstats)), - } - for _, p := range pstats { - var xmlErr *xmlError - if p.XMLError != "" { - xmlErr = &xmlError{InnerXML: []byte(p.XMLError)} - } - resp.Propstat = append(resp.Propstat, propstat{ - Status: fmt.Sprintf("HTTP/1.1 %d %s", p.Status, StatusText(p.Status)), - Prop: p.Props, - ResponseDescription: p.ResponseDescription, - Error: xmlErr, - }) - } - return &resp -} - -const ( - infiniteDepth = -1 - invalidDepth = -2 -) - -// parseDepth maps the strings "0", "1" and "infinity" to 0, 1 and -// infiniteDepth. Parsing any other string returns invalidDepth. -// -// Different WebDAV methods have further constraints on valid depths: -// - PROPFIND has no further restrictions, as per section 9.1. -// - COPY accepts only "0" or "infinity", as per section 9.8.3. -// - MOVE accepts only "infinity", as per section 9.9.2. -// - LOCK accepts only "0" or "infinity", as per section 9.10.3. -// These constraints are enforced by the handleXxx methods. -func parseDepth(s string) int { - switch s { - case "0": - return 0 - case "1": - return 1 - case "infinity": - return infiniteDepth - } - return invalidDepth -} - -// http://www.webdav.org/specs/rfc4918.html#status.code.extensions.to.http11 -const ( - StatusMulti = 207 - StatusUnprocessableEntity = 422 - StatusLocked = 423 - StatusFailedDependency = 424 - StatusInsufficientStorage = 507 -) - -func StatusText(code int) string { - switch code { - case StatusMulti: - return "Multi-Status" - case StatusUnprocessableEntity: - return "Unprocessable Entity" - case StatusLocked: - return "Locked" - case StatusFailedDependency: - return "Failed Dependency" - case StatusInsufficientStorage: - return "Insufficient Storage" - } - return http.StatusText(code) -} - -var ( - errDestinationEqualsSource = errors.New("webdav: destination equals source") - errDirectoryNotEmpty = errors.New("webdav: directory not empty") - errInvalidDepth = errors.New("webdav: invalid depth") - errInvalidDestination = errors.New("webdav: invalid destination") - errInvalidIfHeader = errors.New("webdav: invalid If header") - errInvalidLockInfo = errors.New("webdav: invalid lock info") - errInvalidLockToken = errors.New("webdav: invalid lock token") - errInvalidPropfind = errors.New("webdav: invalid propfind") - errInvalidProppatch = errors.New("webdav: invalid proppatch") - errInvalidResponse = errors.New("webdav: invalid response") - errInvalidTimeout = errors.New("webdav: invalid timeout") - errNoFileSystem = errors.New("webdav: no file system") - errNoLockSystem = errors.New("webdav: no lock system") - errNotADirectory = errors.New("webdav: not a directory") - errPrefixMismatch = errors.New("webdav: prefix mismatch") - errRecursionTooDeep = errors.New("webdav: recursion too deep") - errUnsupportedLockInfo = errors.New("webdav: unsupported lock info") - errUnsupportedMethod = errors.New("webdav: unsupported method") -) diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/webdav_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/webdav_test.go deleted file mode 100644 index 45b4055b..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/webdav_test.go +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package webdav - -import ( - "fmt" - "io" - "net/http" - "net/http/httptest" - "reflect" - "sort" - "strings" - "testing" -) - -// TODO: add tests to check XML responses with the expected prefix path -func TestPrefix(t *testing.T) { - const dst, blah = "Destination", "blah blah blah" - - do := func(method, urlStr string, body io.Reader, wantStatusCode int, headers ...string) error { - req, err := http.NewRequest(method, urlStr, body) - if err != nil { - return err - } - for len(headers) >= 2 { - req.Header.Add(headers[0], headers[1]) - headers = headers[2:] - } - res, err := http.DefaultClient.Do(req) - if err != nil { - return err - } - defer res.Body.Close() - if res.StatusCode != wantStatusCode { - return fmt.Errorf("got status code %d, want %d", res.StatusCode, wantStatusCode) - } - return nil - } - - prefixes := []string{ - "/", - "/a/", - "/a/b/", - "/a/b/c/", - } - for _, prefix := range prefixes { - fs := NewMemFS() - h := &Handler{ - FileSystem: fs, - LockSystem: NewMemLS(), - } - mux := http.NewServeMux() - if prefix != "/" { - h.Prefix = prefix - } - mux.Handle(prefix, h) - srv := httptest.NewServer(mux) - defer srv.Close() - - // The script is: - // MKCOL /a - // MKCOL /a/b - // PUT /a/b/c - // COPY /a/b/c /a/b/d - // MKCOL /a/b/e - // MOVE /a/b/d /a/b/e/f - // which should yield the (possibly stripped) filenames /a/b/c and - // /a/b/e/f, plus their parent directories. - - wantA := map[string]int{ - "/": http.StatusCreated, - "/a/": http.StatusMovedPermanently, - "/a/b/": http.StatusNotFound, - "/a/b/c/": http.StatusNotFound, - }[prefix] - if err := do("MKCOL", srv.URL+"/a", nil, wantA); err != nil { - t.Errorf("prefix=%-9q MKCOL /a: %v", prefix, err) - continue - } - - wantB := map[string]int{ - "/": http.StatusCreated, - "/a/": http.StatusCreated, - "/a/b/": http.StatusMovedPermanently, - "/a/b/c/": http.StatusNotFound, - }[prefix] - if err := do("MKCOL", srv.URL+"/a/b", nil, wantB); err != nil { - t.Errorf("prefix=%-9q MKCOL /a/b: %v", prefix, err) - continue - } - - wantC := map[string]int{ - "/": http.StatusCreated, - "/a/": http.StatusCreated, - "/a/b/": http.StatusCreated, - "/a/b/c/": http.StatusMovedPermanently, - }[prefix] - if err := do("PUT", srv.URL+"/a/b/c", strings.NewReader(blah), wantC); err != nil { - t.Errorf("prefix=%-9q PUT /a/b/c: %v", prefix, err) - continue - } - - wantD := map[string]int{ - "/": http.StatusCreated, - "/a/": http.StatusCreated, - "/a/b/": http.StatusCreated, - "/a/b/c/": http.StatusMovedPermanently, - }[prefix] - if err := do("COPY", srv.URL+"/a/b/c", nil, wantD, dst, srv.URL+"/a/b/d"); err != nil { - t.Errorf("prefix=%-9q COPY /a/b/c /a/b/d: %v", prefix, err) - continue - } - - wantE := map[string]int{ - "/": http.StatusCreated, - "/a/": http.StatusCreated, - "/a/b/": http.StatusCreated, - "/a/b/c/": http.StatusNotFound, - }[prefix] - if err := do("MKCOL", srv.URL+"/a/b/e", nil, wantE); err != nil { - t.Errorf("prefix=%-9q MKCOL /a/b/e: %v", prefix, err) - continue - } - - wantF := map[string]int{ - "/": http.StatusCreated, - "/a/": http.StatusCreated, - "/a/b/": http.StatusCreated, - "/a/b/c/": http.StatusNotFound, - }[prefix] - if err := do("MOVE", srv.URL+"/a/b/d", nil, wantF, dst, srv.URL+"/a/b/e/f"); err != nil { - t.Errorf("prefix=%-9q MOVE /a/b/d /a/b/e/f: %v", prefix, err) - continue - } - - got, err := find(nil, fs, "/") - if err != nil { - t.Errorf("prefix=%-9q find: %v", prefix, err) - continue - } - sort.Strings(got) - want := map[string][]string{ - "/": []string{"/", "/a", "/a/b", "/a/b/c", "/a/b/e", "/a/b/e/f"}, - "/a/": []string{"/", "/b", "/b/c", "/b/e", "/b/e/f"}, - "/a/b/": []string{"/", "/c", "/e", "/e/f"}, - "/a/b/c/": []string{"/"}, - }[prefix] - if !reflect.DeepEqual(got, want) { - t.Errorf("prefix=%-9q find:\ngot %v\nwant %v", prefix, got, want) - continue - } - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/xml.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/xml.go deleted file mode 100644 index 2d13f5a1..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/xml.go +++ /dev/null @@ -1,469 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package webdav - -// The XML encoding is covered by Section 14. -// http://www.webdav.org/specs/rfc4918.html#xml.element.definitions - -import ( - "bytes" - "fmt" - "io" - "net/http" - "time" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml" -) - -// http://www.webdav.org/specs/rfc4918.html#ELEMENT_lockinfo -type lockInfo struct { - XMLName xml.Name `xml:"lockinfo"` - Exclusive *struct{} `xml:"lockscope>exclusive"` - Shared *struct{} `xml:"lockscope>shared"` - Write *struct{} `xml:"locktype>write"` - Owner owner `xml:"owner"` -} - -// http://www.webdav.org/specs/rfc4918.html#ELEMENT_owner -type owner struct { - InnerXML string `xml:",innerxml"` -} - -func readLockInfo(r io.Reader) (li lockInfo, status int, err error) { - c := &countingReader{r: r} - if err = xml.NewDecoder(c).Decode(&li); err != nil { - if err == io.EOF { - if c.n == 0 { - // An empty body means to refresh the lock. - // http://www.webdav.org/specs/rfc4918.html#refreshing-locks - return lockInfo{}, 0, nil - } - err = errInvalidLockInfo - } - return lockInfo{}, http.StatusBadRequest, err - } - // We only support exclusive (non-shared) write locks. In practice, these are - // the only types of locks that seem to matter. - if li.Exclusive == nil || li.Shared != nil || li.Write == nil { - return lockInfo{}, http.StatusNotImplemented, errUnsupportedLockInfo - } - return li, 0, nil -} - -type countingReader struct { - n int - r io.Reader -} - -func (c *countingReader) Read(p []byte) (int, error) { - n, err := c.r.Read(p) - c.n += n - return n, err -} - -func writeLockInfo(w io.Writer, token string, ld LockDetails) (int, error) { - depth := "infinity" - if ld.ZeroDepth { - depth = "0" - } - timeout := ld.Duration / time.Second - return fmt.Fprintf(w, "\n"+ - "\n"+ - " \n"+ - " \n"+ - " %s\n"+ - " %s\n"+ - " Second-%d\n"+ - " %s\n"+ - " %s\n"+ - "", - depth, ld.OwnerXML, timeout, escape(token), escape(ld.Root), - ) -} - -func escape(s string) string { - for i := 0; i < len(s); i++ { - switch s[i] { - case '"', '&', '\'', '<', '>': - b := bytes.NewBuffer(nil) - xml.EscapeText(b, []byte(s)) - return b.String() - } - } - return s -} - -// Next returns the next token, if any, in the XML stream of d. -// RFC 4918 requires to ignore comments, processing instructions -// and directives. -// http://www.webdav.org/specs/rfc4918.html#property_values -// http://www.webdav.org/specs/rfc4918.html#xml-extensibility -func next(d *xml.Decoder) (xml.Token, error) { - for { - t, err := d.Token() - if err != nil { - return t, err - } - switch t.(type) { - case xml.Comment, xml.Directive, xml.ProcInst: - continue - default: - return t, nil - } - } -} - -// http://www.webdav.org/specs/rfc4918.html#ELEMENT_prop (for propfind) -type propfindProps []xml.Name - -// UnmarshalXML appends the property names enclosed within start to pn. -// -// It returns an error if start does not contain any properties or if -// properties contain values. Character data between properties is ignored. -func (pn *propfindProps) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { - for { - t, err := next(d) - if err != nil { - return err - } - switch t.(type) { - case xml.EndElement: - if len(*pn) == 0 { - return fmt.Errorf("%s must not be empty", start.Name.Local) - } - return nil - case xml.StartElement: - name := t.(xml.StartElement).Name - t, err = next(d) - if err != nil { - return err - } - if _, ok := t.(xml.EndElement); !ok { - return fmt.Errorf("unexpected token %T", t) - } - *pn = append(*pn, name) - } - } -} - -// http://www.webdav.org/specs/rfc4918.html#ELEMENT_propfind -type propfind struct { - XMLName xml.Name `xml:"DAV: propfind"` - Allprop *struct{} `xml:"DAV: allprop"` - Propname *struct{} `xml:"DAV: propname"` - Prop propfindProps `xml:"DAV: prop"` - Include propfindProps `xml:"DAV: include"` -} - -func readPropfind(r io.Reader) (pf propfind, status int, err error) { - c := countingReader{r: r} - if err = xml.NewDecoder(&c).Decode(&pf); err != nil { - if err == io.EOF { - if c.n == 0 { - // An empty body means to propfind allprop. - // http://www.webdav.org/specs/rfc4918.html#METHOD_PROPFIND - return propfind{Allprop: new(struct{})}, 0, nil - } - err = errInvalidPropfind - } - return propfind{}, http.StatusBadRequest, err - } - - if pf.Allprop == nil && pf.Include != nil { - return propfind{}, http.StatusBadRequest, errInvalidPropfind - } - if pf.Allprop != nil && (pf.Prop != nil || pf.Propname != nil) { - return propfind{}, http.StatusBadRequest, errInvalidPropfind - } - if pf.Prop != nil && pf.Propname != nil { - return propfind{}, http.StatusBadRequest, errInvalidPropfind - } - if pf.Propname == nil && pf.Allprop == nil && pf.Prop == nil { - return propfind{}, http.StatusBadRequest, errInvalidPropfind - } - return pf, 0, nil -} - -// Property represents a single DAV resource property as defined in RFC 4918. -// See http://www.webdav.org/specs/rfc4918.html#data.model.for.resource.properties -type Property struct { - // XMLName is the fully qualified name that identifies this property. - XMLName xml.Name - - // Lang is an optional xml:lang attribute. - Lang string `xml:"xml:lang,attr,omitempty"` - - // InnerXML contains the XML representation of the property value. - // See http://www.webdav.org/specs/rfc4918.html#property_values - // - // Property values of complex type or mixed-content must have fully - // expanded XML namespaces or be self-contained with according - // XML namespace declarations. They must not rely on any XML - // namespace declarations within the scope of the XML document, - // even including the DAV: namespace. - InnerXML []byte `xml:",innerxml"` -} - -// http://www.webdav.org/specs/rfc4918.html#ELEMENT_error -// See multistatusWriter for the "D:" namespace prefix. -type xmlError struct { - XMLName xml.Name `xml:"D:error"` - InnerXML []byte `xml:",innerxml"` -} - -// http://www.webdav.org/specs/rfc4918.html#ELEMENT_propstat -// See multistatusWriter for the "D:" namespace prefix. -type propstat struct { - Prop []Property `xml:"D:prop>_ignored_"` - Status string `xml:"D:status"` - Error *xmlError `xml:"D:error"` - ResponseDescription string `xml:"D:responsedescription,omitempty"` -} - -// MarshalXML prepends the "D:" namespace prefix on properties in the DAV: namespace -// before encoding. See multistatusWriter. -func (ps propstat) MarshalXML(e *xml.Encoder, start xml.StartElement) error { - for k, prop := range ps.Prop { - if prop.XMLName.Space == "DAV:" { - prop.XMLName = xml.Name{Space: "", Local: "D:" + prop.XMLName.Local} - ps.Prop[k] = prop - } - } - // Distinct type to avoid infinite recursion of MarshalXML. - type newpropstat propstat - return e.EncodeElement(newpropstat(ps), start) -} - -// http://www.webdav.org/specs/rfc4918.html#ELEMENT_response -// See multistatusWriter for the "D:" namespace prefix. -type response struct { - XMLName xml.Name `xml:"D:response"` - Href []string `xml:"D:href"` - Propstat []propstat `xml:"D:propstat"` - Status string `xml:"D:status,omitempty"` - Error *xmlError `xml:"D:error"` - ResponseDescription string `xml:"D:responsedescription,omitempty"` -} - -// MultistatusWriter marshals one or more Responses into a XML -// multistatus response. -// See http://www.webdav.org/specs/rfc4918.html#ELEMENT_multistatus -// TODO(rsto, mpl): As a workaround, the "D:" namespace prefix, defined as -// "DAV:" on this element, is prepended on the nested response, as well as on all -// its nested elements. All property names in the DAV: namespace are prefixed as -// well. This is because some versions of Mini-Redirector (on windows 7) ignore -// elements with a default namespace (no prefixed namespace). A less intrusive fix -// should be possible after golang.org/cl/11074. See https://golang.org/issue/11177 -type multistatusWriter struct { - // ResponseDescription contains the optional responsedescription - // of the multistatus XML element. Only the latest content before - // close will be emitted. Empty response descriptions are not - // written. - responseDescription string - - w http.ResponseWriter - enc *xml.Encoder -} - -// Write validates and emits a DAV response as part of a multistatus response -// element. -// -// It sets the HTTP status code of its underlying http.ResponseWriter to 207 -// (Multi-Status) and populates the Content-Type header. If r is the -// first, valid response to be written, Write prepends the XML representation -// of r with a multistatus tag. Callers must call close after the last response -// has been written. -func (w *multistatusWriter) write(r *response) error { - switch len(r.Href) { - case 0: - return errInvalidResponse - case 1: - if len(r.Propstat) > 0 != (r.Status == "") { - return errInvalidResponse - } - default: - if len(r.Propstat) > 0 || r.Status == "" { - return errInvalidResponse - } - } - err := w.writeHeader() - if err != nil { - return err - } - return w.enc.Encode(r) -} - -// writeHeader writes a XML multistatus start element on w's underlying -// http.ResponseWriter and returns the result of the write operation. -// After the first write attempt, writeHeader becomes a no-op. -func (w *multistatusWriter) writeHeader() error { - if w.enc != nil { - return nil - } - w.w.Header().Add("Content-Type", "text/xml; charset=utf-8") - w.w.WriteHeader(StatusMulti) - _, err := fmt.Fprintf(w.w, ``) - if err != nil { - return err - } - w.enc = xml.NewEncoder(w.w) - return w.enc.EncodeToken(xml.StartElement{ - Name: xml.Name{ - Space: "DAV:", - Local: "multistatus", - }, - Attr: []xml.Attr{{ - Name: xml.Name{Space: "xmlns", Local: "D"}, - Value: "DAV:", - }}, - }) -} - -// Close completes the marshalling of the multistatus response. It returns -// an error if the multistatus response could not be completed. If both the -// return value and field enc of w are nil, then no multistatus response has -// been written. -func (w *multistatusWriter) close() error { - if w.enc == nil { - return nil - } - var end []xml.Token - if w.responseDescription != "" { - name := xml.Name{Space: "DAV:", Local: "responsedescription"} - end = append(end, - xml.StartElement{Name: name}, - xml.CharData(w.responseDescription), - xml.EndElement{Name: name}, - ) - } - end = append(end, xml.EndElement{ - Name: xml.Name{Space: "DAV:", Local: "multistatus"}, - }) - for _, t := range end { - err := w.enc.EncodeToken(t) - if err != nil { - return err - } - } - return w.enc.Flush() -} - -// http://www.webdav.org/specs/rfc4918.html#ELEMENT_prop (for proppatch) -type proppatchProps []Property - -var xmlLangName = xml.Name{Space: "http://www.w3.org/XML/1998/namespace", Local: "lang"} - -func xmlLang(s xml.StartElement, d string) string { - for _, attr := range s.Attr { - if attr.Name == xmlLangName { - return attr.Value - } - } - return d -} - -type xmlValue []byte - -func (v *xmlValue) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { - // The XML value of a property can be arbitrary, mixed-content XML. - // To make sure that the unmarshalled value contains all required - // namespaces, we encode all the property value XML tokens into a - // buffer. This forces the encoder to redeclare any used namespaces. - var b bytes.Buffer - e := xml.NewEncoder(&b) - for { - t, err := next(d) - if err != nil { - return err - } - if e, ok := t.(xml.EndElement); ok && e.Name == start.Name { - break - } - if err = e.EncodeToken(t); err != nil { - return err - } - } - err := e.Flush() - if err != nil { - return err - } - *v = b.Bytes() - return nil -} - -// UnmarshalXML appends the property names and values enclosed within start -// to ps. -// -// An xml:lang attribute that is defined either on the DAV:prop or property -// name XML element is propagated to the property's Lang field. -// -// UnmarshalXML returns an error if start does not contain any properties or if -// property values contain syntactically incorrect XML. -func (ps *proppatchProps) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { - lang := xmlLang(start, "") - for { - t, err := next(d) - if err != nil { - return err - } - switch elem := t.(type) { - case xml.EndElement: - if len(*ps) == 0 { - return fmt.Errorf("%s must not be empty", start.Name.Local) - } - return nil - case xml.StartElement: - p := Property{ - XMLName: t.(xml.StartElement).Name, - Lang: xmlLang(t.(xml.StartElement), lang), - } - err = d.DecodeElement(((*xmlValue)(&p.InnerXML)), &elem) - if err != nil { - return err - } - *ps = append(*ps, p) - } - } -} - -// http://www.webdav.org/specs/rfc4918.html#ELEMENT_set -// http://www.webdav.org/specs/rfc4918.html#ELEMENT_remove -type setRemove struct { - XMLName xml.Name - Lang string `xml:"xml:lang,attr,omitempty"` - Prop proppatchProps `xml:"DAV: prop"` -} - -// http://www.webdav.org/specs/rfc4918.html#ELEMENT_propertyupdate -type propertyupdate struct { - XMLName xml.Name `xml:"DAV: propertyupdate"` - Lang string `xml:"xml:lang,attr,omitempty"` - SetRemove []setRemove `xml:",any"` -} - -func readProppatch(r io.Reader) (patches []Proppatch, status int, err error) { - var pu propertyupdate - if err = xml.NewDecoder(r).Decode(&pu); err != nil { - return nil, http.StatusBadRequest, err - } - for _, op := range pu.SetRemove { - remove := false - switch op.XMLName { - case xml.Name{Space: "DAV:", Local: "set"}: - // No-op. - case xml.Name{Space: "DAV:", Local: "remove"}: - for _, p := range op.Prop { - if len(p.InnerXML) > 0 { - return nil, http.StatusBadRequest, errInvalidProppatch - } - } - remove = true - default: - return nil, http.StatusBadRequest, errInvalidProppatch - } - patches = append(patches, Proppatch{Remove: remove, Props: op.Prop}) - } - return patches, 0, nil -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/xml_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/xml_test.go deleted file mode 100644 index 8656b6fd..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/xml_test.go +++ /dev/null @@ -1,909 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package webdav - -import ( - "bytes" - "fmt" - "io" - "net/http" - "net/http/httptest" - "reflect" - "sort" - "strings" - "testing" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/webdav/internal/xml" -) - -func TestReadLockInfo(t *testing.T) { - // The "section x.y.z" test cases come from section x.y.z of the spec at - // http://www.webdav.org/specs/rfc4918.html - testCases := []struct { - desc string - input string - wantLI lockInfo - wantStatus int - }{{ - "bad: junk", - "xxx", - lockInfo{}, - http.StatusBadRequest, - }, { - "bad: invalid owner XML", - "" + - "\n" + - " \n" + - " \n" + - " \n" + - " no end tag \n" + - " \n" + - "", - lockInfo{}, - http.StatusBadRequest, - }, { - "bad: invalid UTF-8", - "" + - "\n" + - " \n" + - " \n" + - " \n" + - " \xff \n" + - " \n" + - "", - lockInfo{}, - http.StatusBadRequest, - }, { - "bad: unfinished XML #1", - "" + - "\n" + - " \n" + - " \n", - lockInfo{}, - http.StatusBadRequest, - }, { - "bad: unfinished XML #2", - "" + - "\n" + - " \n" + - " \n" + - " \n", - lockInfo{}, - http.StatusBadRequest, - }, { - "good: empty", - "", - lockInfo{}, - 0, - }, { - "good: plain-text owner", - "" + - "\n" + - " \n" + - " \n" + - " gopher\n" + - "", - lockInfo{ - XMLName: xml.Name{Space: "DAV:", Local: "lockinfo"}, - Exclusive: new(struct{}), - Write: new(struct{}), - Owner: owner{ - InnerXML: "gopher", - }, - }, - 0, - }, { - "section 9.10.7", - "" + - "\n" + - " \n" + - " \n" + - " \n" + - " http://example.org/~ejw/contact.html\n" + - " \n" + - "", - lockInfo{ - XMLName: xml.Name{Space: "DAV:", Local: "lockinfo"}, - Exclusive: new(struct{}), - Write: new(struct{}), - Owner: owner{ - InnerXML: "\n http://example.org/~ejw/contact.html\n ", - }, - }, - 0, - }} - - for _, tc := range testCases { - li, status, err := readLockInfo(strings.NewReader(tc.input)) - if tc.wantStatus != 0 { - if err == nil { - t.Errorf("%s: got nil error, want non-nil", tc.desc) - continue - } - } else if err != nil { - t.Errorf("%s: %v", tc.desc, err) - continue - } - if !reflect.DeepEqual(li, tc.wantLI) || status != tc.wantStatus { - t.Errorf("%s:\ngot lockInfo=%v, status=%v\nwant lockInfo=%v, status=%v", - tc.desc, li, status, tc.wantLI, tc.wantStatus) - continue - } - } -} - -func TestReadPropfind(t *testing.T) { - testCases := []struct { - desc string - input string - wantPF propfind - wantStatus int - }{{ - desc: "propfind: propname", - input: "" + - "\n" + - " \n" + - "", - wantPF: propfind{ - XMLName: xml.Name{Space: "DAV:", Local: "propfind"}, - Propname: new(struct{}), - }, - }, { - desc: "propfind: empty body means allprop", - input: "", - wantPF: propfind{ - Allprop: new(struct{}), - }, - }, { - desc: "propfind: allprop", - input: "" + - "\n" + - " \n" + - "", - wantPF: propfind{ - XMLName: xml.Name{Space: "DAV:", Local: "propfind"}, - Allprop: new(struct{}), - }, - }, { - desc: "propfind: allprop followed by include", - input: "" + - "\n" + - " \n" + - " \n" + - "", - wantPF: propfind{ - XMLName: xml.Name{Space: "DAV:", Local: "propfind"}, - Allprop: new(struct{}), - Include: propfindProps{xml.Name{Space: "DAV:", Local: "displayname"}}, - }, - }, { - desc: "propfind: include followed by allprop", - input: "" + - "\n" + - " \n" + - " \n" + - "", - wantPF: propfind{ - XMLName: xml.Name{Space: "DAV:", Local: "propfind"}, - Allprop: new(struct{}), - Include: propfindProps{xml.Name{Space: "DAV:", Local: "displayname"}}, - }, - }, { - desc: "propfind: propfind", - input: "" + - "\n" + - " \n" + - "", - wantPF: propfind{ - XMLName: xml.Name{Space: "DAV:", Local: "propfind"}, - Prop: propfindProps{xml.Name{Space: "DAV:", Local: "displayname"}}, - }, - }, { - desc: "propfind: prop with ignored comments", - input: "" + - "\n" + - " \n" + - " \n" + - " \n" + - " \n" + - "", - wantPF: propfind{ - XMLName: xml.Name{Space: "DAV:", Local: "propfind"}, - Prop: propfindProps{xml.Name{Space: "DAV:", Local: "displayname"}}, - }, - }, { - desc: "propfind: propfind with ignored whitespace", - input: "" + - "\n" + - " \n" + - "", - wantPF: propfind{ - XMLName: xml.Name{Space: "DAV:", Local: "propfind"}, - Prop: propfindProps{xml.Name{Space: "DAV:", Local: "displayname"}}, - }, - }, { - desc: "propfind: propfind with ignored mixed-content", - input: "" + - "\n" + - " foobar\n" + - "", - wantPF: propfind{ - XMLName: xml.Name{Space: "DAV:", Local: "propfind"}, - Prop: propfindProps{xml.Name{Space: "DAV:", Local: "displayname"}}, - }, - }, { - desc: "propfind: propname with ignored element (section A.4)", - input: "" + - "\n" + - " \n" + - " *boss*\n" + - "", - wantPF: propfind{ - XMLName: xml.Name{Space: "DAV:", Local: "propfind"}, - Propname: new(struct{}), - }, - }, { - desc: "propfind: bad: junk", - input: "xxx", - wantStatus: http.StatusBadRequest, - }, { - desc: "propfind: bad: propname and allprop (section A.3)", - input: "" + - "\n" + - " " + - " " + - "", - wantStatus: http.StatusBadRequest, - }, { - desc: "propfind: bad: propname and prop", - input: "" + - "\n" + - " \n" + - " \n" + - "", - wantStatus: http.StatusBadRequest, - }, { - desc: "propfind: bad: allprop and prop", - input: "" + - "\n" + - " \n" + - " \n" + - "", - wantStatus: http.StatusBadRequest, - }, { - desc: "propfind: bad: empty propfind with ignored element (section A.4)", - input: "" + - "\n" + - " \n" + - "", - wantStatus: http.StatusBadRequest, - }, { - desc: "propfind: bad: empty prop", - input: "" + - "\n" + - " \n" + - "", - wantStatus: http.StatusBadRequest, - }, { - desc: "propfind: bad: prop with just chardata", - input: "" + - "\n" + - " foo\n" + - "", - wantStatus: http.StatusBadRequest, - }, { - desc: "bad: interrupted prop", - input: "" + - "\n" + - " \n", - wantStatus: http.StatusBadRequest, - }, { - desc: "bad: malformed end element prop", - input: "" + - "\n" + - " \n", - wantStatus: http.StatusBadRequest, - }, { - desc: "propfind: bad: property with chardata value", - input: "" + - "\n" + - " bar\n" + - "", - wantStatus: http.StatusBadRequest, - }, { - desc: "propfind: bad: property with whitespace value", - input: "" + - "\n" + - " \n" + - "", - wantStatus: http.StatusBadRequest, - }, { - desc: "propfind: bad: include without allprop", - input: "" + - "\n" + - " \n" + - "", - wantStatus: http.StatusBadRequest, - }} - - for _, tc := range testCases { - pf, status, err := readPropfind(strings.NewReader(tc.input)) - if tc.wantStatus != 0 { - if err == nil { - t.Errorf("%s: got nil error, want non-nil", tc.desc) - continue - } - } else if err != nil { - t.Errorf("%s: %v", tc.desc, err) - continue - } - if !reflect.DeepEqual(pf, tc.wantPF) || status != tc.wantStatus { - t.Errorf("%s:\ngot propfind=%v, status=%v\nwant propfind=%v, status=%v", - tc.desc, pf, status, tc.wantPF, tc.wantStatus) - continue - } - } -} - -func TestMultistatusWriter(t *testing.T) { - if go1Dot4 { - t.Skip("TestMultistatusWriter requires Go version 1.5 or greater") - } - - ///The "section x.y.z" test cases come from section x.y.z of the spec at - // http://www.webdav.org/specs/rfc4918.html - testCases := []struct { - desc string - responses []response - respdesc string - writeHeader bool - wantXML string - wantCode int - wantErr error - }{{ - desc: "section 9.2.2 (failed dependency)", - responses: []response{{ - Href: []string{"http://example.com/foo"}, - Propstat: []propstat{{ - Prop: []Property{{ - XMLName: xml.Name{ - Space: "http://ns.example.com/", - Local: "Authors", - }, - }}, - Status: "HTTP/1.1 424 Failed Dependency", - }, { - Prop: []Property{{ - XMLName: xml.Name{ - Space: "http://ns.example.com/", - Local: "Copyright-Owner", - }, - }}, - Status: "HTTP/1.1 409 Conflict", - }}, - ResponseDescription: "Copyright Owner cannot be deleted or altered.", - }}, - wantXML: `` + - `` + - `` + - ` ` + - ` http://example.com/foo` + - ` ` + - ` ` + - ` ` + - ` ` + - ` HTTP/1.1 424 Failed Dependency` + - ` ` + - ` ` + - ` ` + - ` ` + - ` ` + - ` HTTP/1.1 409 Conflict` + - ` ` + - ` Copyright Owner cannot be deleted or altered.` + - `` + - ``, - wantCode: StatusMulti, - }, { - desc: "section 9.6.2 (lock-token-submitted)", - responses: []response{{ - Href: []string{"http://example.com/foo"}, - Status: "HTTP/1.1 423 Locked", - Error: &xmlError{ - InnerXML: []byte(``), - }, - }}, - wantXML: `` + - `` + - `` + - ` ` + - ` http://example.com/foo` + - ` HTTP/1.1 423 Locked` + - ` ` + - ` ` + - ``, - wantCode: StatusMulti, - }, { - desc: "section 9.1.3", - responses: []response{{ - Href: []string{"http://example.com/foo"}, - Propstat: []propstat{{ - Prop: []Property{{ - XMLName: xml.Name{Space: "http://ns.example.com/boxschema/", Local: "bigbox"}, - InnerXML: []byte(`` + - `` + - `Box type A` + - ``), - }, { - XMLName: xml.Name{Space: "http://ns.example.com/boxschema/", Local: "author"}, - InnerXML: []byte(`` + - `` + - `J.J. Johnson` + - ``), - }}, - Status: "HTTP/1.1 200 OK", - }, { - Prop: []Property{{ - XMLName: xml.Name{Space: "http://ns.example.com/boxschema/", Local: "DingALing"}, - }, { - XMLName: xml.Name{Space: "http://ns.example.com/boxschema/", Local: "Random"}, - }}, - Status: "HTTP/1.1 403 Forbidden", - ResponseDescription: "The user does not have access to the DingALing property.", - }}, - }}, - respdesc: "There has been an access violation error.", - wantXML: `` + - `` + - `` + - ` ` + - ` http://example.com/foo` + - ` ` + - ` ` + - ` Box type A` + - ` J.J. Johnson` + - ` ` + - ` HTTP/1.1 200 OK` + - ` ` + - ` ` + - ` ` + - ` ` + - ` ` + - ` ` + - ` HTTP/1.1 403 Forbidden` + - ` The user does not have access to the DingALing property.` + - ` ` + - ` ` + - ` There has been an access violation error.` + - ``, - wantCode: StatusMulti, - }, { - desc: "no response written", - // default of http.responseWriter - wantCode: http.StatusOK, - }, { - desc: "no response written (with description)", - respdesc: "too bad", - // default of http.responseWriter - wantCode: http.StatusOK, - }, { - desc: "empty multistatus with header", - writeHeader: true, - wantXML: ``, - wantCode: StatusMulti, - }, { - desc: "bad: no href", - responses: []response{{ - Propstat: []propstat{{ - Prop: []Property{{ - XMLName: xml.Name{ - Space: "http://example.com/", - Local: "foo", - }, - }}, - Status: "HTTP/1.1 200 OK", - }}, - }}, - wantErr: errInvalidResponse, - // default of http.responseWriter - wantCode: http.StatusOK, - }, { - desc: "bad: multiple hrefs and no status", - responses: []response{{ - Href: []string{"http://example.com/foo", "http://example.com/bar"}, - }}, - wantErr: errInvalidResponse, - // default of http.responseWriter - wantCode: http.StatusOK, - }, { - desc: "bad: one href and no propstat", - responses: []response{{ - Href: []string{"http://example.com/foo"}, - }}, - wantErr: errInvalidResponse, - // default of http.responseWriter - wantCode: http.StatusOK, - }, { - desc: "bad: status with one href and propstat", - responses: []response{{ - Href: []string{"http://example.com/foo"}, - Propstat: []propstat{{ - Prop: []Property{{ - XMLName: xml.Name{ - Space: "http://example.com/", - Local: "foo", - }, - }}, - Status: "HTTP/1.1 200 OK", - }}, - Status: "HTTP/1.1 200 OK", - }}, - wantErr: errInvalidResponse, - // default of http.responseWriter - wantCode: http.StatusOK, - }, { - desc: "bad: multiple hrefs and propstat", - responses: []response{{ - Href: []string{ - "http://example.com/foo", - "http://example.com/bar", - }, - Propstat: []propstat{{ - Prop: []Property{{ - XMLName: xml.Name{ - Space: "http://example.com/", - Local: "foo", - }, - }}, - Status: "HTTP/1.1 200 OK", - }}, - }}, - wantErr: errInvalidResponse, - // default of http.responseWriter - wantCode: http.StatusOK, - }} - - n := xmlNormalizer{omitWhitespace: true} -loop: - for _, tc := range testCases { - rec := httptest.NewRecorder() - w := multistatusWriter{w: rec, responseDescription: tc.respdesc} - if tc.writeHeader { - if err := w.writeHeader(); err != nil { - t.Errorf("%s: got writeHeader error %v, want nil", tc.desc, err) - continue - } - } - for _, r := range tc.responses { - if err := w.write(&r); err != nil { - if err != tc.wantErr { - t.Errorf("%s: got write error %v, want %v", - tc.desc, err, tc.wantErr) - } - continue loop - } - } - if err := w.close(); err != tc.wantErr { - t.Errorf("%s: got close error %v, want %v", - tc.desc, err, tc.wantErr) - continue - } - if rec.Code != tc.wantCode { - t.Errorf("%s: got HTTP status code %d, want %d\n", - tc.desc, rec.Code, tc.wantCode) - continue - } - gotXML := rec.Body.String() - eq, err := n.equalXML(strings.NewReader(gotXML), strings.NewReader(tc.wantXML)) - if err != nil { - t.Errorf("%s: equalXML: %v", tc.desc, err) - continue - } - if !eq { - t.Errorf("%s: XML body\ngot %s\nwant %s", tc.desc, gotXML, tc.wantXML) - } - } -} - -func TestReadProppatch(t *testing.T) { - ppStr := func(pps []Proppatch) string { - var outer []string - for _, pp := range pps { - var inner []string - for _, p := range pp.Props { - inner = append(inner, fmt.Sprintf("{XMLName: %q, Lang: %q, InnerXML: %q}", - p.XMLName, p.Lang, p.InnerXML)) - } - outer = append(outer, fmt.Sprintf("{Remove: %t, Props: [%s]}", - pp.Remove, strings.Join(inner, ", "))) - } - return "[" + strings.Join(outer, ", ") + "]" - } - - testCases := []struct { - desc string - input string - wantPP []Proppatch - wantStatus int - }{{ - desc: "proppatch: section 9.2 (with simple property value)", - input: `` + - `` + - `` + - ` ` + - ` somevalue` + - ` ` + - ` ` + - ` ` + - ` ` + - ``, - wantPP: []Proppatch{{ - Props: []Property{{ - xml.Name{Space: "http://ns.example.com/z/", Local: "Authors"}, - "", - []byte(`somevalue`), - }}, - }, { - Remove: true, - Props: []Property{{ - xml.Name{Space: "http://ns.example.com/z/", Local: "Copyright-Owner"}, - "", - nil, - }}, - }}, - }, { - desc: "proppatch: lang attribute on prop", - input: `` + - `` + - `` + - ` ` + - ` ` + - ` ` + - ` ` + - ` ` + - ``, - wantPP: []Proppatch{{ - Props: []Property{{ - xml.Name{Space: "http://example.com/ns", Local: "foo"}, - "en", - nil, - }}, - }}, - }, { - desc: "bad: remove with value", - input: `` + - `` + - `` + - ` ` + - ` ` + - ` ` + - ` Jim Whitehead` + - ` ` + - ` ` + - ` ` + - ``, - wantStatus: http.StatusBadRequest, - }, { - desc: "bad: empty propertyupdate", - input: `` + - `` + - ``, - wantStatus: http.StatusBadRequest, - }, { - desc: "bad: empty prop", - input: `` + - `` + - `` + - ` ` + - ` ` + - ` ` + - ``, - wantStatus: http.StatusBadRequest, - }} - - for _, tc := range testCases { - pp, status, err := readProppatch(strings.NewReader(tc.input)) - if tc.wantStatus != 0 { - if err == nil { - t.Errorf("%s: got nil error, want non-nil", tc.desc) - continue - } - } else if err != nil { - t.Errorf("%s: %v", tc.desc, err) - continue - } - if status != tc.wantStatus { - t.Errorf("%s: got status %d, want %d", tc.desc, status, tc.wantStatus) - continue - } - if !reflect.DeepEqual(pp, tc.wantPP) || status != tc.wantStatus { - t.Errorf("%s: proppatch\ngot %v\nwant %v", tc.desc, ppStr(pp), ppStr(tc.wantPP)) - } - } -} - -func TestUnmarshalXMLValue(t *testing.T) { - testCases := []struct { - desc string - input string - wantVal string - }{{ - desc: "simple char data", - input: "foo", - wantVal: "foo", - }, { - desc: "empty element", - input: "", - wantVal: "", - }, { - desc: "preserve namespace", - input: ``, - wantVal: ``, - }, { - desc: "preserve root element namespace", - input: ``, - wantVal: ``, - }, { - desc: "preserve whitespace", - input: " \t ", - wantVal: " \t ", - }, { - desc: "preserve mixed content", - input: ` a `, - wantVal: ` a `, - }, { - desc: "section 9.2", - input: `` + - `` + - ` Jim Whitehead` + - ` Roy Fielding` + - ``, - wantVal: `` + - ` Jim Whitehead` + - ` Roy Fielding`, - }, { - desc: "section 4.3.1 (mixed content)", - input: `` + - `` + - ` Jane Doe` + - ` ` + - ` mailto:jane.doe@example.com` + - ` http://www.example.com` + - ` ` + - ` Jane has been working way too long on the` + - ` long-awaited revision of ]]>.` + - ` ` + - ``, - wantVal: `` + - ` Jane Doe` + - ` ` + - ` mailto:jane.doe@example.com` + - ` http://www.example.com` + - ` ` + - ` Jane has been working way too long on the` + - ` long-awaited revision of <RFC2518>.` + - ` `, - }} - - var n xmlNormalizer - for _, tc := range testCases { - d := xml.NewDecoder(strings.NewReader(tc.input)) - var v xmlValue - if err := d.Decode(&v); err != nil { - t.Errorf("%s: got error %v, want nil", tc.desc, err) - continue - } - eq, err := n.equalXML(bytes.NewReader(v), strings.NewReader(tc.wantVal)) - if err != nil { - t.Errorf("%s: equalXML: %v", tc.desc, err) - continue - } - if !eq { - t.Errorf("%s:\ngot %s\nwant %s", tc.desc, string(v), tc.wantVal) - } - } -} - -// xmlNormalizer normalizes XML. -type xmlNormalizer struct { - // omitWhitespace instructs to ignore whitespace between element tags. - omitWhitespace bool - // omitComments instructs to ignore XML comments. - omitComments bool -} - -// normalize writes the normalized XML content of r to w. It applies the -// following rules -// -// * Rename namespace prefixes according to an internal heuristic. -// * Remove unnecessary namespace declarations. -// * Sort attributes in XML start elements in lexical order of their -// fully qualified name. -// * Remove XML directives and processing instructions. -// * Remove CDATA between XML tags that only contains whitespace, if -// instructed to do so. -// * Remove comments, if instructed to do so. -// -func (n *xmlNormalizer) normalize(w io.Writer, r io.Reader) error { - d := xml.NewDecoder(r) - e := xml.NewEncoder(w) - for { - t, err := d.Token() - if err != nil { - if t == nil && err == io.EOF { - break - } - return err - } - switch val := t.(type) { - case xml.Directive, xml.ProcInst: - continue - case xml.Comment: - if n.omitComments { - continue - } - case xml.CharData: - if n.omitWhitespace && len(bytes.TrimSpace(val)) == 0 { - continue - } - case xml.StartElement: - start, _ := xml.CopyToken(val).(xml.StartElement) - attr := start.Attr[:0] - for _, a := range start.Attr { - if a.Name.Space == "xmlns" || a.Name.Local == "xmlns" { - continue - } - attr = append(attr, a) - } - sort.Sort(byName(attr)) - start.Attr = attr - t = start - } - err = e.EncodeToken(t) - if err != nil { - return err - } - } - return e.Flush() -} - -// equalXML tests for equality of the normalized XML contents of a and b. -func (n *xmlNormalizer) equalXML(a, b io.Reader) (bool, error) { - var buf bytes.Buffer - if err := n.normalize(&buf, a); err != nil { - return false, err - } - normA := buf.String() - buf.Reset() - if err := n.normalize(&buf, b); err != nil { - return false, err - } - normB := buf.String() - return normA == normB, nil -} - -type byName []xml.Attr - -func (a byName) Len() int { return len(a) } -func (a byName) Swap(i, j int) { a[i], a[j] = a[j], a[i] } -func (a byName) Less(i, j int) bool { - if a[i].Name.Space != a[j].Name.Space { - return a[i].Name.Space < a[j].Name.Space - } - return a[i].Name.Local < a[j].Name.Local -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/client.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/client.go deleted file mode 100644 index 20d1e1e3..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/client.go +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright 2009 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 websocket - -import ( - "bufio" - "crypto/tls" - "io" - "net" - "net/http" - "net/url" -) - -// DialError is an error that occurs while dialling a websocket server. -type DialError struct { - *Config - Err error -} - -func (e *DialError) Error() string { - return "websocket.Dial " + e.Config.Location.String() + ": " + e.Err.Error() -} - -// NewConfig creates a new WebSocket config for client connection. -func NewConfig(server, origin string) (config *Config, err error) { - config = new(Config) - config.Version = ProtocolVersionHybi13 - config.Location, err = url.ParseRequestURI(server) - if err != nil { - return - } - config.Origin, err = url.ParseRequestURI(origin) - if err != nil { - return - } - config.Header = http.Header(make(map[string][]string)) - return -} - -// NewClient creates a new WebSocket client connection over rwc. -func NewClient(config *Config, rwc io.ReadWriteCloser) (ws *Conn, err error) { - br := bufio.NewReader(rwc) - bw := bufio.NewWriter(rwc) - err = hybiClientHandshake(config, br, bw) - if err != nil { - return - } - buf := bufio.NewReadWriter(br, bw) - ws = newHybiClientConn(config, buf, rwc) - return -} - -// Dial opens a new client connection to a WebSocket. -func Dial(url_, protocol, origin string) (ws *Conn, err error) { - config, err := NewConfig(url_, origin) - if err != nil { - return nil, err - } - if protocol != "" { - config.Protocol = []string{protocol} - } - return DialConfig(config) -} - -var portMap = map[string]string{ - "ws": "80", - "wss": "443", -} - -func parseAuthority(location *url.URL) string { - if _, ok := portMap[location.Scheme]; ok { - if _, _, err := net.SplitHostPort(location.Host); err != nil { - return net.JoinHostPort(location.Host, portMap[location.Scheme]) - } - } - return location.Host -} - -// DialConfig opens a new client connection to a WebSocket with a config. -func DialConfig(config *Config) (ws *Conn, err error) { - var client net.Conn - if config.Location == nil { - return nil, &DialError{config, ErrBadWebSocketLocation} - } - if config.Origin == nil { - return nil, &DialError{config, ErrBadWebSocketOrigin} - } - switch config.Location.Scheme { - case "ws": - client, err = net.Dial("tcp", parseAuthority(config.Location)) - - case "wss": - client, err = tls.Dial("tcp", parseAuthority(config.Location), config.TlsConfig) - - default: - err = ErrBadScheme - } - if err != nil { - goto Error - } - - ws, err = NewClient(config, client) - if err != nil { - client.Close() - goto Error - } - return - -Error: - return nil, &DialError{config, err} -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/exampledial_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/exampledial_test.go deleted file mode 100644 index ffd835d5..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/exampledial_test.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2012 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 websocket_test - -import ( - "fmt" - "log" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket" -) - -// This example demonstrates a trivial client. -func ExampleDial() { - origin := "http://localhost/" - url := "ws://localhost:12345/ws" - ws, err := websocket.Dial(url, "", origin) - if err != nil { - log.Fatal(err) - } - if _, err := ws.Write([]byte("hello, world!\n")); err != nil { - log.Fatal(err) - } - var msg = make([]byte, 512) - var n int - if n, err = ws.Read(msg); err != nil { - log.Fatal(err) - } - fmt.Printf("Received: %s.\n", msg[:n]) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/examplehandler_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/examplehandler_test.go deleted file mode 100644 index 321712bd..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/examplehandler_test.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2012 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 websocket_test - -import ( - "io" - "net/http" - - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket" -) - -// Echo the data received on the WebSocket. -func EchoServer(ws *websocket.Conn) { - io.Copy(ws, ws) -} - -// This example demonstrates a trivial echo server. -func ExampleHandler() { - http.Handle("/echo", websocket.Handler(EchoServer)) - err := http.ListenAndServe(":12345", nil) - if err != nil { - panic("ListenAndServe: " + err.Error()) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/hybi.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/hybi.go deleted file mode 100644 index 60bbc841..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/hybi.go +++ /dev/null @@ -1,586 +0,0 @@ -// 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 websocket - -// This file implements a protocol of hybi draft. -// http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17 - -import ( - "bufio" - "bytes" - "crypto/rand" - "crypto/sha1" - "encoding/base64" - "encoding/binary" - "fmt" - "io" - "io/ioutil" - "net/http" - "net/url" - "strings" -) - -const ( - websocketGUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" - - closeStatusNormal = 1000 - closeStatusGoingAway = 1001 - closeStatusProtocolError = 1002 - closeStatusUnsupportedData = 1003 - closeStatusFrameTooLarge = 1004 - closeStatusNoStatusRcvd = 1005 - closeStatusAbnormalClosure = 1006 - closeStatusBadMessageData = 1007 - closeStatusPolicyViolation = 1008 - closeStatusTooBigData = 1009 - closeStatusExtensionMismatch = 1010 - - maxControlFramePayloadLength = 125 -) - -var ( - ErrBadMaskingKey = &ProtocolError{"bad masking key"} - ErrBadPongMessage = &ProtocolError{"bad pong message"} - ErrBadClosingStatus = &ProtocolError{"bad closing status"} - ErrUnsupportedExtensions = &ProtocolError{"unsupported extensions"} - ErrNotImplemented = &ProtocolError{"not implemented"} - - handshakeHeader = map[string]bool{ - "Host": true, - "Upgrade": true, - "Connection": true, - "Sec-Websocket-Key": true, - "Sec-Websocket-Origin": true, - "Sec-Websocket-Version": true, - "Sec-Websocket-Protocol": true, - "Sec-Websocket-Accept": true, - } -) - -// A hybiFrameHeader is a frame header as defined in hybi draft. -type hybiFrameHeader struct { - Fin bool - Rsv [3]bool - OpCode byte - Length int64 - MaskingKey []byte - - data *bytes.Buffer -} - -// A hybiFrameReader is a reader for hybi frame. -type hybiFrameReader struct { - reader io.Reader - - header hybiFrameHeader - pos int64 - length int -} - -func (frame *hybiFrameReader) Read(msg []byte) (n int, err error) { - n, err = frame.reader.Read(msg) - if err != nil { - return 0, err - } - if frame.header.MaskingKey != nil { - for i := 0; i < n; i++ { - msg[i] = msg[i] ^ frame.header.MaskingKey[frame.pos%4] - frame.pos++ - } - } - return n, err -} - -func (frame *hybiFrameReader) PayloadType() byte { return frame.header.OpCode } - -func (frame *hybiFrameReader) HeaderReader() io.Reader { - if frame.header.data == nil { - return nil - } - if frame.header.data.Len() == 0 { - return nil - } - return frame.header.data -} - -func (frame *hybiFrameReader) TrailerReader() io.Reader { return nil } - -func (frame *hybiFrameReader) Len() (n int) { return frame.length } - -// A hybiFrameReaderFactory creates new frame reader based on its frame type. -type hybiFrameReaderFactory struct { - *bufio.Reader -} - -// NewFrameReader reads a frame header from the connection, and creates new reader for the frame. -// See Section 5.2 Base Framing protocol for detail. -// http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17#section-5.2 -func (buf hybiFrameReaderFactory) NewFrameReader() (frame frameReader, err error) { - hybiFrame := new(hybiFrameReader) - frame = hybiFrame - var header []byte - var b byte - // First byte. FIN/RSV1/RSV2/RSV3/OpCode(4bits) - b, err = buf.ReadByte() - if err != nil { - return - } - header = append(header, b) - hybiFrame.header.Fin = ((header[0] >> 7) & 1) != 0 - for i := 0; i < 3; i++ { - j := uint(6 - i) - hybiFrame.header.Rsv[i] = ((header[0] >> j) & 1) != 0 - } - hybiFrame.header.OpCode = header[0] & 0x0f - - // Second byte. Mask/Payload len(7bits) - b, err = buf.ReadByte() - if err != nil { - return - } - header = append(header, b) - mask := (b & 0x80) != 0 - b &= 0x7f - lengthFields := 0 - switch { - case b <= 125: // Payload length 7bits. - hybiFrame.header.Length = int64(b) - case b == 126: // Payload length 7+16bits - lengthFields = 2 - case b == 127: // Payload length 7+64bits - lengthFields = 8 - } - for i := 0; i < lengthFields; i++ { - b, err = buf.ReadByte() - if err != nil { - return - } - if lengthFields == 8 && i == 0 { // MSB must be zero when 7+64 bits - b &= 0x7f - } - header = append(header, b) - hybiFrame.header.Length = hybiFrame.header.Length*256 + int64(b) - } - if mask { - // Masking key. 4 bytes. - for i := 0; i < 4; i++ { - b, err = buf.ReadByte() - if err != nil { - return - } - header = append(header, b) - hybiFrame.header.MaskingKey = append(hybiFrame.header.MaskingKey, b) - } - } - hybiFrame.reader = io.LimitReader(buf.Reader, hybiFrame.header.Length) - hybiFrame.header.data = bytes.NewBuffer(header) - hybiFrame.length = len(header) + int(hybiFrame.header.Length) - return -} - -// A HybiFrameWriter is a writer for hybi frame. -type hybiFrameWriter struct { - writer *bufio.Writer - - header *hybiFrameHeader -} - -func (frame *hybiFrameWriter) Write(msg []byte) (n int, err error) { - var header []byte - var b byte - if frame.header.Fin { - b |= 0x80 - } - for i := 0; i < 3; i++ { - if frame.header.Rsv[i] { - j := uint(6 - i) - b |= 1 << j - } - } - b |= frame.header.OpCode - header = append(header, b) - if frame.header.MaskingKey != nil { - b = 0x80 - } else { - b = 0 - } - lengthFields := 0 - length := len(msg) - switch { - case length <= 125: - b |= byte(length) - case length < 65536: - b |= 126 - lengthFields = 2 - default: - b |= 127 - lengthFields = 8 - } - header = append(header, b) - for i := 0; i < lengthFields; i++ { - j := uint((lengthFields - i - 1) * 8) - b = byte((length >> j) & 0xff) - header = append(header, b) - } - if frame.header.MaskingKey != nil { - if len(frame.header.MaskingKey) != 4 { - return 0, ErrBadMaskingKey - } - header = append(header, frame.header.MaskingKey...) - frame.writer.Write(header) - data := make([]byte, length) - for i := range data { - data[i] = msg[i] ^ frame.header.MaskingKey[i%4] - } - frame.writer.Write(data) - err = frame.writer.Flush() - return length, err - } - frame.writer.Write(header) - frame.writer.Write(msg) - err = frame.writer.Flush() - return length, err -} - -func (frame *hybiFrameWriter) Close() error { return nil } - -type hybiFrameWriterFactory struct { - *bufio.Writer - needMaskingKey bool -} - -func (buf hybiFrameWriterFactory) NewFrameWriter(payloadType byte) (frame frameWriter, err error) { - frameHeader := &hybiFrameHeader{Fin: true, OpCode: payloadType} - if buf.needMaskingKey { - frameHeader.MaskingKey, err = generateMaskingKey() - if err != nil { - return nil, err - } - } - return &hybiFrameWriter{writer: buf.Writer, header: frameHeader}, nil -} - -type hybiFrameHandler struct { - conn *Conn - payloadType byte -} - -func (handler *hybiFrameHandler) HandleFrame(frame frameReader) (frameReader, error) { - if handler.conn.IsServerConn() { - // The client MUST mask all frames sent to the server. - if frame.(*hybiFrameReader).header.MaskingKey == nil { - handler.WriteClose(closeStatusProtocolError) - return nil, io.EOF - } - } else { - // The server MUST NOT mask all frames. - if frame.(*hybiFrameReader).header.MaskingKey != nil { - handler.WriteClose(closeStatusProtocolError) - return nil, io.EOF - } - } - if header := frame.HeaderReader(); header != nil { - io.Copy(ioutil.Discard, header) - } - switch frame.PayloadType() { - case ContinuationFrame: - frame.(*hybiFrameReader).header.OpCode = handler.payloadType - case TextFrame, BinaryFrame: - handler.payloadType = frame.PayloadType() - case CloseFrame: - return nil, io.EOF - case PingFrame, PongFrame: - b := make([]byte, maxControlFramePayloadLength) - n, err := io.ReadFull(frame, b) - if err != nil && err != io.EOF && err != io.ErrUnexpectedEOF { - return nil, err - } - io.Copy(ioutil.Discard, frame) - if frame.PayloadType() == PingFrame { - if _, err := handler.WritePong(b[:n]); err != nil { - return nil, err - } - } - return nil, nil - } - return frame, nil -} - -func (handler *hybiFrameHandler) WriteClose(status int) (err error) { - handler.conn.wio.Lock() - defer handler.conn.wio.Unlock() - w, err := handler.conn.frameWriterFactory.NewFrameWriter(CloseFrame) - if err != nil { - return err - } - msg := make([]byte, 2) - binary.BigEndian.PutUint16(msg, uint16(status)) - _, err = w.Write(msg) - w.Close() - return err -} - -func (handler *hybiFrameHandler) WritePong(msg []byte) (n int, err error) { - handler.conn.wio.Lock() - defer handler.conn.wio.Unlock() - w, err := handler.conn.frameWriterFactory.NewFrameWriter(PongFrame) - if err != nil { - return 0, err - } - n, err = w.Write(msg) - w.Close() - return n, err -} - -// newHybiConn creates a new WebSocket connection speaking hybi draft protocol. -func newHybiConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) *Conn { - if buf == nil { - br := bufio.NewReader(rwc) - bw := bufio.NewWriter(rwc) - buf = bufio.NewReadWriter(br, bw) - } - ws := &Conn{config: config, request: request, buf: buf, rwc: rwc, - frameReaderFactory: hybiFrameReaderFactory{buf.Reader}, - frameWriterFactory: hybiFrameWriterFactory{ - buf.Writer, request == nil}, - PayloadType: TextFrame, - defaultCloseStatus: closeStatusNormal} - ws.frameHandler = &hybiFrameHandler{conn: ws} - return ws -} - -// generateMaskingKey generates a masking key for a frame. -func generateMaskingKey() (maskingKey []byte, err error) { - maskingKey = make([]byte, 4) - if _, err = io.ReadFull(rand.Reader, maskingKey); err != nil { - return - } - return -} - -// generateNonce generates a nonce consisting of a randomly selected 16-byte -// value that has been base64-encoded. -func generateNonce() (nonce []byte) { - key := make([]byte, 16) - if _, err := io.ReadFull(rand.Reader, key); err != nil { - panic(err) - } - nonce = make([]byte, 24) - base64.StdEncoding.Encode(nonce, key) - return -} - -// removeZone removes IPv6 zone identifer from host. -// E.g., "[fe80::1%en0]:8080" to "[fe80::1]:8080" -func removeZone(host string) string { - if !strings.HasPrefix(host, "[") { - return host - } - i := strings.LastIndex(host, "]") - if i < 0 { - return host - } - j := strings.LastIndex(host[:i], "%") - if j < 0 { - return host - } - return host[:j] + host[i:] -} - -// getNonceAccept computes the base64-encoded SHA-1 of the concatenation of -// the nonce ("Sec-WebSocket-Key" value) with the websocket GUID string. -func getNonceAccept(nonce []byte) (expected []byte, err error) { - h := sha1.New() - if _, err = h.Write(nonce); err != nil { - return - } - if _, err = h.Write([]byte(websocketGUID)); err != nil { - return - } - expected = make([]byte, 28) - base64.StdEncoding.Encode(expected, h.Sum(nil)) - return -} - -// Client handshake described in draft-ietf-hybi-thewebsocket-protocol-17 -func hybiClientHandshake(config *Config, br *bufio.Reader, bw *bufio.Writer) (err error) { - bw.WriteString("GET " + config.Location.RequestURI() + " HTTP/1.1\r\n") - - // According to RFC 6874, an HTTP client, proxy, or other - // intermediary must remove any IPv6 zone identifier attached - // to an outgoing URI. - bw.WriteString("Host: " + removeZone(config.Location.Host) + "\r\n") - bw.WriteString("Upgrade: websocket\r\n") - bw.WriteString("Connection: Upgrade\r\n") - nonce := generateNonce() - if config.handshakeData != nil { - nonce = []byte(config.handshakeData["key"]) - } - bw.WriteString("Sec-WebSocket-Key: " + string(nonce) + "\r\n") - bw.WriteString("Origin: " + strings.ToLower(config.Origin.String()) + "\r\n") - - if config.Version != ProtocolVersionHybi13 { - return ErrBadProtocolVersion - } - - bw.WriteString("Sec-WebSocket-Version: " + fmt.Sprintf("%d", config.Version) + "\r\n") - if len(config.Protocol) > 0 { - bw.WriteString("Sec-WebSocket-Protocol: " + strings.Join(config.Protocol, ", ") + "\r\n") - } - // TODO(ukai): send Sec-WebSocket-Extensions. - err = config.Header.WriteSubset(bw, handshakeHeader) - if err != nil { - return err - } - - bw.WriteString("\r\n") - if err = bw.Flush(); err != nil { - return err - } - - resp, err := http.ReadResponse(br, &http.Request{Method: "GET"}) - if err != nil { - return err - } - if resp.StatusCode != 101 { - return ErrBadStatus - } - if strings.ToLower(resp.Header.Get("Upgrade")) != "websocket" || - strings.ToLower(resp.Header.Get("Connection")) != "upgrade" { - return ErrBadUpgrade - } - expectedAccept, err := getNonceAccept(nonce) - if err != nil { - return err - } - if resp.Header.Get("Sec-WebSocket-Accept") != string(expectedAccept) { - return ErrChallengeResponse - } - if resp.Header.Get("Sec-WebSocket-Extensions") != "" { - return ErrUnsupportedExtensions - } - offeredProtocol := resp.Header.Get("Sec-WebSocket-Protocol") - if offeredProtocol != "" { - protocolMatched := false - for i := 0; i < len(config.Protocol); i++ { - if config.Protocol[i] == offeredProtocol { - protocolMatched = true - break - } - } - if !protocolMatched { - return ErrBadWebSocketProtocol - } - config.Protocol = []string{offeredProtocol} - } - - return nil -} - -// newHybiClientConn creates a client WebSocket connection after handshake. -func newHybiClientConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser) *Conn { - return newHybiConn(config, buf, rwc, nil) -} - -// A HybiServerHandshaker performs a server handshake using hybi draft protocol. -type hybiServerHandshaker struct { - *Config - accept []byte -} - -func (c *hybiServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err error) { - c.Version = ProtocolVersionHybi13 - if req.Method != "GET" { - return http.StatusMethodNotAllowed, ErrBadRequestMethod - } - // HTTP version can be safely ignored. - - if strings.ToLower(req.Header.Get("Upgrade")) != "websocket" || - !strings.Contains(strings.ToLower(req.Header.Get("Connection")), "upgrade") { - return http.StatusBadRequest, ErrNotWebSocket - } - - key := req.Header.Get("Sec-Websocket-Key") - if key == "" { - return http.StatusBadRequest, ErrChallengeResponse - } - version := req.Header.Get("Sec-Websocket-Version") - switch version { - case "13": - c.Version = ProtocolVersionHybi13 - default: - return http.StatusBadRequest, ErrBadWebSocketVersion - } - var scheme string - if req.TLS != nil { - scheme = "wss" - } else { - scheme = "ws" - } - c.Location, err = url.ParseRequestURI(scheme + "://" + req.Host + req.URL.RequestURI()) - if err != nil { - return http.StatusBadRequest, err - } - protocol := strings.TrimSpace(req.Header.Get("Sec-Websocket-Protocol")) - if protocol != "" { - protocols := strings.Split(protocol, ",") - for i := 0; i < len(protocols); i++ { - c.Protocol = append(c.Protocol, strings.TrimSpace(protocols[i])) - } - } - c.accept, err = getNonceAccept([]byte(key)) - if err != nil { - return http.StatusInternalServerError, err - } - return http.StatusSwitchingProtocols, nil -} - -// Origin parses the Origin header in req. -// If the Origin header is not set, it returns nil and nil. -func Origin(config *Config, req *http.Request) (*url.URL, error) { - var origin string - switch config.Version { - case ProtocolVersionHybi13: - origin = req.Header.Get("Origin") - } - if origin == "" { - return nil, nil - } - return url.ParseRequestURI(origin) -} - -func (c *hybiServerHandshaker) AcceptHandshake(buf *bufio.Writer) (err error) { - if len(c.Protocol) > 0 { - if len(c.Protocol) != 1 { - // You need choose a Protocol in Handshake func in Server. - return ErrBadWebSocketProtocol - } - } - buf.WriteString("HTTP/1.1 101 Switching Protocols\r\n") - buf.WriteString("Upgrade: websocket\r\n") - buf.WriteString("Connection: Upgrade\r\n") - buf.WriteString("Sec-WebSocket-Accept: " + string(c.accept) + "\r\n") - if len(c.Protocol) > 0 { - buf.WriteString("Sec-WebSocket-Protocol: " + c.Protocol[0] + "\r\n") - } - // TODO(ukai): send Sec-WebSocket-Extensions. - if c.Header != nil { - err := c.Header.WriteSubset(buf, handshakeHeader) - if err != nil { - return err - } - } - buf.WriteString("\r\n") - return buf.Flush() -} - -func (c *hybiServerHandshaker) NewServerConn(buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) *Conn { - return newHybiServerConn(c.Config, buf, rwc, request) -} - -// newHybiServerConn returns a new WebSocket connection speaking hybi draft protocol. -func newHybiServerConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) *Conn { - return newHybiConn(config, buf, rwc, request) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/hybi_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/hybi_test.go deleted file mode 100644 index 9504aa2d..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/hybi_test.go +++ /dev/null @@ -1,608 +0,0 @@ -// 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 websocket - -import ( - "bufio" - "bytes" - "fmt" - "io" - "net/http" - "net/url" - "strings" - "testing" -) - -// Test the getNonceAccept function with values in -// http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17 -func TestSecWebSocketAccept(t *testing.T) { - nonce := []byte("dGhlIHNhbXBsZSBub25jZQ==") - expected := []byte("s3pPLMBiTxaQ9kYGzzhZRbK+xOo=") - accept, err := getNonceAccept(nonce) - if err != nil { - t.Errorf("getNonceAccept: returned error %v", err) - return - } - if !bytes.Equal(expected, accept) { - t.Errorf("getNonceAccept: expected %q got %q", expected, accept) - } -} - -func TestHybiClientHandshake(t *testing.T) { - type test struct { - url, host string - } - tests := []test{ - {"ws://server.example.com/chat", "server.example.com"}, - {"ws://127.0.0.1/chat", "127.0.0.1"}, - } - if _, err := url.ParseRequestURI("http://[fe80::1%25lo0]"); err == nil { - tests = append(tests, test{"ws://[fe80::1%25lo0]/chat", "[fe80::1]"}) - } - - for _, tt := range tests { - var b bytes.Buffer - bw := bufio.NewWriter(&b) - br := bufio.NewReader(strings.NewReader(`HTTP/1.1 101 Switching Protocols -Upgrade: websocket -Connection: Upgrade -Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= -Sec-WebSocket-Protocol: chat - -`)) - var err error - var config Config - config.Location, err = url.ParseRequestURI(tt.url) - if err != nil { - t.Fatal("location url", err) - } - config.Origin, err = url.ParseRequestURI("http://example.com") - if err != nil { - t.Fatal("origin url", err) - } - config.Protocol = append(config.Protocol, "chat") - config.Protocol = append(config.Protocol, "superchat") - config.Version = ProtocolVersionHybi13 - config.handshakeData = map[string]string{ - "key": "dGhlIHNhbXBsZSBub25jZQ==", - } - if err := hybiClientHandshake(&config, br, bw); err != nil { - t.Fatal("handshake", err) - } - req, err := http.ReadRequest(bufio.NewReader(&b)) - if err != nil { - t.Fatal("read request", err) - } - if req.Method != "GET" { - t.Errorf("request method expected GET, but got %s", req.Method) - } - if req.URL.Path != "/chat" { - t.Errorf("request path expected /chat, but got %s", req.URL.Path) - } - if req.Proto != "HTTP/1.1" { - t.Errorf("request proto expected HTTP/1.1, but got %s", req.Proto) - } - if req.Host != tt.host { - t.Errorf("request host expected %s, but got %s", tt.host, req.Host) - } - var expectedHeader = map[string]string{ - "Connection": "Upgrade", - "Upgrade": "websocket", - "Sec-Websocket-Key": config.handshakeData["key"], - "Origin": config.Origin.String(), - "Sec-Websocket-Protocol": "chat, superchat", - "Sec-Websocket-Version": fmt.Sprintf("%d", ProtocolVersionHybi13), - } - for k, v := range expectedHeader { - if req.Header.Get(k) != v { - t.Errorf("%s expected %s, but got %v", k, v, req.Header.Get(k)) - } - } - } -} - -func TestHybiClientHandshakeWithHeader(t *testing.T) { - b := bytes.NewBuffer([]byte{}) - bw := bufio.NewWriter(b) - br := bufio.NewReader(strings.NewReader(`HTTP/1.1 101 Switching Protocols -Upgrade: websocket -Connection: Upgrade -Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= -Sec-WebSocket-Protocol: chat - -`)) - var err error - config := new(Config) - config.Location, err = url.ParseRequestURI("ws://server.example.com/chat") - if err != nil { - t.Fatal("location url", err) - } - config.Origin, err = url.ParseRequestURI("http://example.com") - if err != nil { - t.Fatal("origin url", err) - } - config.Protocol = append(config.Protocol, "chat") - config.Protocol = append(config.Protocol, "superchat") - config.Version = ProtocolVersionHybi13 - config.Header = http.Header(make(map[string][]string)) - config.Header.Add("User-Agent", "test") - - config.handshakeData = map[string]string{ - "key": "dGhlIHNhbXBsZSBub25jZQ==", - } - err = hybiClientHandshake(config, br, bw) - if err != nil { - t.Errorf("handshake failed: %v", err) - } - req, err := http.ReadRequest(bufio.NewReader(b)) - if err != nil { - t.Fatalf("read request: %v", err) - } - if req.Method != "GET" { - t.Errorf("request method expected GET, but got %q", req.Method) - } - if req.URL.Path != "/chat" { - t.Errorf("request path expected /chat, but got %q", req.URL.Path) - } - if req.Proto != "HTTP/1.1" { - t.Errorf("request proto expected HTTP/1.1, but got %q", req.Proto) - } - if req.Host != "server.example.com" { - t.Errorf("request Host expected server.example.com, but got %v", req.Host) - } - var expectedHeader = map[string]string{ - "Connection": "Upgrade", - "Upgrade": "websocket", - "Sec-Websocket-Key": config.handshakeData["key"], - "Origin": config.Origin.String(), - "Sec-Websocket-Protocol": "chat, superchat", - "Sec-Websocket-Version": fmt.Sprintf("%d", ProtocolVersionHybi13), - "User-Agent": "test", - } - for k, v := range expectedHeader { - if req.Header.Get(k) != v { - t.Errorf(fmt.Sprintf("%s expected %q but got %q", k, v, req.Header.Get(k))) - } - } -} - -func TestHybiServerHandshake(t *testing.T) { - config := new(Config) - handshaker := &hybiServerHandshaker{Config: config} - br := bufio.NewReader(strings.NewReader(`GET /chat HTTP/1.1 -Host: server.example.com -Upgrade: websocket -Connection: Upgrade -Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== -Origin: http://example.com -Sec-WebSocket-Protocol: chat, superchat -Sec-WebSocket-Version: 13 - -`)) - req, err := http.ReadRequest(br) - if err != nil { - t.Fatal("request", err) - } - code, err := handshaker.ReadHandshake(br, req) - if err != nil { - t.Errorf("handshake failed: %v", err) - } - if code != http.StatusSwitchingProtocols { - t.Errorf("status expected %q but got %q", http.StatusSwitchingProtocols, code) - } - expectedProtocols := []string{"chat", "superchat"} - if fmt.Sprintf("%v", config.Protocol) != fmt.Sprintf("%v", expectedProtocols) { - t.Errorf("protocol expected %q but got %q", expectedProtocols, config.Protocol) - } - b := bytes.NewBuffer([]byte{}) - bw := bufio.NewWriter(b) - - config.Protocol = config.Protocol[:1] - - err = handshaker.AcceptHandshake(bw) - if err != nil { - t.Errorf("handshake response failed: %v", err) - } - expectedResponse := strings.Join([]string{ - "HTTP/1.1 101 Switching Protocols", - "Upgrade: websocket", - "Connection: Upgrade", - "Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=", - "Sec-WebSocket-Protocol: chat", - "", ""}, "\r\n") - - if b.String() != expectedResponse { - t.Errorf("handshake expected %q but got %q", expectedResponse, b.String()) - } -} - -func TestHybiServerHandshakeNoSubProtocol(t *testing.T) { - config := new(Config) - handshaker := &hybiServerHandshaker{Config: config} - br := bufio.NewReader(strings.NewReader(`GET /chat HTTP/1.1 -Host: server.example.com -Upgrade: websocket -Connection: Upgrade -Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== -Origin: http://example.com -Sec-WebSocket-Version: 13 - -`)) - req, err := http.ReadRequest(br) - if err != nil { - t.Fatal("request", err) - } - code, err := handshaker.ReadHandshake(br, req) - if err != nil { - t.Errorf("handshake failed: %v", err) - } - if code != http.StatusSwitchingProtocols { - t.Errorf("status expected %q but got %q", http.StatusSwitchingProtocols, code) - } - if len(config.Protocol) != 0 { - t.Errorf("len(config.Protocol) expected 0, but got %q", len(config.Protocol)) - } - b := bytes.NewBuffer([]byte{}) - bw := bufio.NewWriter(b) - - err = handshaker.AcceptHandshake(bw) - if err != nil { - t.Errorf("handshake response failed: %v", err) - } - expectedResponse := strings.Join([]string{ - "HTTP/1.1 101 Switching Protocols", - "Upgrade: websocket", - "Connection: Upgrade", - "Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=", - "", ""}, "\r\n") - - if b.String() != expectedResponse { - t.Errorf("handshake expected %q but got %q", expectedResponse, b.String()) - } -} - -func TestHybiServerHandshakeHybiBadVersion(t *testing.T) { - config := new(Config) - handshaker := &hybiServerHandshaker{Config: config} - br := bufio.NewReader(strings.NewReader(`GET /chat HTTP/1.1 -Host: server.example.com -Upgrade: websocket -Connection: Upgrade -Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== -Sec-WebSocket-Origin: http://example.com -Sec-WebSocket-Protocol: chat, superchat -Sec-WebSocket-Version: 9 - -`)) - req, err := http.ReadRequest(br) - if err != nil { - t.Fatal("request", err) - } - code, err := handshaker.ReadHandshake(br, req) - if err != ErrBadWebSocketVersion { - t.Errorf("handshake expected err %q but got %q", ErrBadWebSocketVersion, err) - } - if code != http.StatusBadRequest { - t.Errorf("status expected %q but got %q", http.StatusBadRequest, code) - } -} - -func testHybiFrame(t *testing.T, testHeader, testPayload, testMaskedPayload []byte, frameHeader *hybiFrameHeader) { - b := bytes.NewBuffer([]byte{}) - frameWriterFactory := &hybiFrameWriterFactory{bufio.NewWriter(b), false} - w, _ := frameWriterFactory.NewFrameWriter(TextFrame) - w.(*hybiFrameWriter).header = frameHeader - _, err := w.Write(testPayload) - w.Close() - if err != nil { - t.Errorf("Write error %q", err) - } - var expectedFrame []byte - expectedFrame = append(expectedFrame, testHeader...) - expectedFrame = append(expectedFrame, testMaskedPayload...) - if !bytes.Equal(expectedFrame, b.Bytes()) { - t.Errorf("frame expected %q got %q", expectedFrame, b.Bytes()) - } - frameReaderFactory := &hybiFrameReaderFactory{bufio.NewReader(b)} - r, err := frameReaderFactory.NewFrameReader() - if err != nil { - t.Errorf("Read error %q", err) - } - if header := r.HeaderReader(); header == nil { - t.Errorf("no header") - } else { - actualHeader := make([]byte, r.Len()) - n, err := header.Read(actualHeader) - if err != nil { - t.Errorf("Read header error %q", err) - } else { - if n < len(testHeader) { - t.Errorf("header too short %q got %q", testHeader, actualHeader[:n]) - } - if !bytes.Equal(testHeader, actualHeader[:n]) { - t.Errorf("header expected %q got %q", testHeader, actualHeader[:n]) - } - } - } - if trailer := r.TrailerReader(); trailer != nil { - t.Errorf("unexpected trailer %q", trailer) - } - frame := r.(*hybiFrameReader) - if frameHeader.Fin != frame.header.Fin || - frameHeader.OpCode != frame.header.OpCode || - len(testPayload) != int(frame.header.Length) { - t.Errorf("mismatch %v (%d) vs %v", frameHeader, len(testPayload), frame) - } - payload := make([]byte, len(testPayload)) - _, err = r.Read(payload) - if err != nil && err != io.EOF { - t.Errorf("read %v", err) - } - if !bytes.Equal(testPayload, payload) { - t.Errorf("payload %q vs %q", testPayload, payload) - } -} - -func TestHybiShortTextFrame(t *testing.T) { - frameHeader := &hybiFrameHeader{Fin: true, OpCode: TextFrame} - payload := []byte("hello") - testHybiFrame(t, []byte{0x81, 0x05}, payload, payload, frameHeader) - - payload = make([]byte, 125) - testHybiFrame(t, []byte{0x81, 125}, payload, payload, frameHeader) -} - -func TestHybiShortMaskedTextFrame(t *testing.T) { - frameHeader := &hybiFrameHeader{Fin: true, OpCode: TextFrame, - MaskingKey: []byte{0xcc, 0x55, 0x80, 0x20}} - payload := []byte("hello") - maskedPayload := []byte{0xa4, 0x30, 0xec, 0x4c, 0xa3} - header := []byte{0x81, 0x85} - header = append(header, frameHeader.MaskingKey...) - testHybiFrame(t, header, payload, maskedPayload, frameHeader) -} - -func TestHybiShortBinaryFrame(t *testing.T) { - frameHeader := &hybiFrameHeader{Fin: true, OpCode: BinaryFrame} - payload := []byte("hello") - testHybiFrame(t, []byte{0x82, 0x05}, payload, payload, frameHeader) - - payload = make([]byte, 125) - testHybiFrame(t, []byte{0x82, 125}, payload, payload, frameHeader) -} - -func TestHybiControlFrame(t *testing.T) { - payload := []byte("hello") - - frameHeader := &hybiFrameHeader{Fin: true, OpCode: PingFrame} - testHybiFrame(t, []byte{0x89, 0x05}, payload, payload, frameHeader) - - frameHeader = &hybiFrameHeader{Fin: true, OpCode: PingFrame} - testHybiFrame(t, []byte{0x89, 0x00}, nil, nil, frameHeader) - - frameHeader = &hybiFrameHeader{Fin: true, OpCode: PongFrame} - testHybiFrame(t, []byte{0x8A, 0x05}, payload, payload, frameHeader) - - frameHeader = &hybiFrameHeader{Fin: true, OpCode: PongFrame} - testHybiFrame(t, []byte{0x8A, 0x00}, nil, nil, frameHeader) - - frameHeader = &hybiFrameHeader{Fin: true, OpCode: CloseFrame} - payload = []byte{0x03, 0xe8} // 1000 - testHybiFrame(t, []byte{0x88, 0x02}, payload, payload, frameHeader) -} - -func TestHybiLongFrame(t *testing.T) { - frameHeader := &hybiFrameHeader{Fin: true, OpCode: TextFrame} - payload := make([]byte, 126) - testHybiFrame(t, []byte{0x81, 126, 0x00, 126}, payload, payload, frameHeader) - - payload = make([]byte, 65535) - testHybiFrame(t, []byte{0x81, 126, 0xff, 0xff}, payload, payload, frameHeader) - - payload = make([]byte, 65536) - testHybiFrame(t, []byte{0x81, 127, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00}, payload, payload, frameHeader) -} - -func TestHybiClientRead(t *testing.T) { - wireData := []byte{0x81, 0x05, 'h', 'e', 'l', 'l', 'o', - 0x89, 0x05, 'h', 'e', 'l', 'l', 'o', // ping - 0x81, 0x05, 'w', 'o', 'r', 'l', 'd'} - br := bufio.NewReader(bytes.NewBuffer(wireData)) - bw := bufio.NewWriter(bytes.NewBuffer([]byte{})) - conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, nil) - - msg := make([]byte, 512) - n, err := conn.Read(msg) - if err != nil { - t.Errorf("read 1st frame, error %q", err) - } - if n != 5 { - t.Errorf("read 1st frame, expect 5, got %d", n) - } - if !bytes.Equal(wireData[2:7], msg[:n]) { - t.Errorf("read 1st frame %v, got %v", wireData[2:7], msg[:n]) - } - n, err = conn.Read(msg) - if err != nil { - t.Errorf("read 2nd frame, error %q", err) - } - if n != 5 { - t.Errorf("read 2nd frame, expect 5, got %d", n) - } - if !bytes.Equal(wireData[16:21], msg[:n]) { - t.Errorf("read 2nd frame %v, got %v", wireData[16:21], msg[:n]) - } - n, err = conn.Read(msg) - if err == nil { - t.Errorf("read not EOF") - } - if n != 0 { - t.Errorf("expect read 0, got %d", n) - } -} - -func TestHybiShortRead(t *testing.T) { - wireData := []byte{0x81, 0x05, 'h', 'e', 'l', 'l', 'o', - 0x89, 0x05, 'h', 'e', 'l', 'l', 'o', // ping - 0x81, 0x05, 'w', 'o', 'r', 'l', 'd'} - br := bufio.NewReader(bytes.NewBuffer(wireData)) - bw := bufio.NewWriter(bytes.NewBuffer([]byte{})) - conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, nil) - - step := 0 - pos := 0 - expectedPos := []int{2, 5, 16, 19} - expectedLen := []int{3, 2, 3, 2} - for { - msg := make([]byte, 3) - n, err := conn.Read(msg) - if step >= len(expectedPos) { - if err == nil { - t.Errorf("read not EOF") - } - if n != 0 { - t.Errorf("expect read 0, got %d", n) - } - return - } - pos = expectedPos[step] - endPos := pos + expectedLen[step] - if err != nil { - t.Errorf("read from %d, got error %q", pos, err) - return - } - if n != endPos-pos { - t.Errorf("read from %d, expect %d, got %d", pos, endPos-pos, n) - } - if !bytes.Equal(wireData[pos:endPos], msg[:n]) { - t.Errorf("read from %d, frame %v, got %v", pos, wireData[pos:endPos], msg[:n]) - } - step++ - } -} - -func TestHybiServerRead(t *testing.T) { - wireData := []byte{0x81, 0x85, 0xcc, 0x55, 0x80, 0x20, - 0xa4, 0x30, 0xec, 0x4c, 0xa3, // hello - 0x89, 0x85, 0xcc, 0x55, 0x80, 0x20, - 0xa4, 0x30, 0xec, 0x4c, 0xa3, // ping: hello - 0x81, 0x85, 0xed, 0x83, 0xb4, 0x24, - 0x9a, 0xec, 0xc6, 0x48, 0x89, // world - } - br := bufio.NewReader(bytes.NewBuffer(wireData)) - bw := bufio.NewWriter(bytes.NewBuffer([]byte{})) - conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, new(http.Request)) - - expected := [][]byte{[]byte("hello"), []byte("world")} - - msg := make([]byte, 512) - n, err := conn.Read(msg) - if err != nil { - t.Errorf("read 1st frame, error %q", err) - } - if n != 5 { - t.Errorf("read 1st frame, expect 5, got %d", n) - } - if !bytes.Equal(expected[0], msg[:n]) { - t.Errorf("read 1st frame %q, got %q", expected[0], msg[:n]) - } - - n, err = conn.Read(msg) - if err != nil { - t.Errorf("read 2nd frame, error %q", err) - } - if n != 5 { - t.Errorf("read 2nd frame, expect 5, got %d", n) - } - if !bytes.Equal(expected[1], msg[:n]) { - t.Errorf("read 2nd frame %q, got %q", expected[1], msg[:n]) - } - - n, err = conn.Read(msg) - if err == nil { - t.Errorf("read not EOF") - } - if n != 0 { - t.Errorf("expect read 0, got %d", n) - } -} - -func TestHybiServerReadWithoutMasking(t *testing.T) { - wireData := []byte{0x81, 0x05, 'h', 'e', 'l', 'l', 'o'} - br := bufio.NewReader(bytes.NewBuffer(wireData)) - bw := bufio.NewWriter(bytes.NewBuffer([]byte{})) - conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, new(http.Request)) - // server MUST close the connection upon receiving a non-masked frame. - msg := make([]byte, 512) - _, err := conn.Read(msg) - if err != io.EOF { - t.Errorf("read 1st frame, expect %q, but got %q", io.EOF, err) - } -} - -func TestHybiClientReadWithMasking(t *testing.T) { - wireData := []byte{0x81, 0x85, 0xcc, 0x55, 0x80, 0x20, - 0xa4, 0x30, 0xec, 0x4c, 0xa3, // hello - } - br := bufio.NewReader(bytes.NewBuffer(wireData)) - bw := bufio.NewWriter(bytes.NewBuffer([]byte{})) - conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, nil) - - // client MUST close the connection upon receiving a masked frame. - msg := make([]byte, 512) - _, err := conn.Read(msg) - if err != io.EOF { - t.Errorf("read 1st frame, expect %q, but got %q", io.EOF, err) - } -} - -// Test the hybiServerHandshaker supports firefox implementation and -// checks Connection request header include (but it's not necessary -// equal to) "upgrade" -func TestHybiServerFirefoxHandshake(t *testing.T) { - config := new(Config) - handshaker := &hybiServerHandshaker{Config: config} - br := bufio.NewReader(strings.NewReader(`GET /chat HTTP/1.1 -Host: server.example.com -Upgrade: websocket -Connection: keep-alive, upgrade -Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== -Origin: http://example.com -Sec-WebSocket-Protocol: chat, superchat -Sec-WebSocket-Version: 13 - -`)) - req, err := http.ReadRequest(br) - if err != nil { - t.Fatal("request", err) - } - code, err := handshaker.ReadHandshake(br, req) - if err != nil { - t.Errorf("handshake failed: %v", err) - } - if code != http.StatusSwitchingProtocols { - t.Errorf("status expected %q but got %q", http.StatusSwitchingProtocols, code) - } - b := bytes.NewBuffer([]byte{}) - bw := bufio.NewWriter(b) - - config.Protocol = []string{"chat"} - - err = handshaker.AcceptHandshake(bw) - if err != nil { - t.Errorf("handshake response failed: %v", err) - } - expectedResponse := strings.Join([]string{ - "HTTP/1.1 101 Switching Protocols", - "Upgrade: websocket", - "Connection: Upgrade", - "Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=", - "Sec-WebSocket-Protocol: chat", - "", ""}, "\r\n") - - if b.String() != expectedResponse { - t.Errorf("handshake expected %q but got %q", expectedResponse, b.String()) - } -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/server.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/server.go deleted file mode 100644 index 0895dea1..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/server.go +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright 2009 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 websocket - -import ( - "bufio" - "fmt" - "io" - "net/http" -) - -func newServerConn(rwc io.ReadWriteCloser, buf *bufio.ReadWriter, req *http.Request, config *Config, handshake func(*Config, *http.Request) error) (conn *Conn, err error) { - var hs serverHandshaker = &hybiServerHandshaker{Config: config} - code, err := hs.ReadHandshake(buf.Reader, req) - if err == ErrBadWebSocketVersion { - fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code)) - fmt.Fprintf(buf, "Sec-WebSocket-Version: %s\r\n", SupportedProtocolVersion) - buf.WriteString("\r\n") - buf.WriteString(err.Error()) - buf.Flush() - return - } - if err != nil { - fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code)) - buf.WriteString("\r\n") - buf.WriteString(err.Error()) - buf.Flush() - return - } - if handshake != nil { - err = handshake(config, req) - if err != nil { - code = http.StatusForbidden - fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code)) - buf.WriteString("\r\n") - buf.Flush() - return - } - } - err = hs.AcceptHandshake(buf.Writer) - if err != nil { - code = http.StatusBadRequest - fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code)) - buf.WriteString("\r\n") - buf.Flush() - return - } - conn = hs.NewServerConn(buf, rwc, req) - return -} - -// Server represents a server of a WebSocket. -type Server struct { - // Config is a WebSocket configuration for new WebSocket connection. - Config - - // Handshake is an optional function in WebSocket handshake. - // For example, you can check, or don't check Origin header. - // Another example, you can select config.Protocol. - Handshake func(*Config, *http.Request) error - - // Handler handles a WebSocket connection. - Handler -} - -// ServeHTTP implements the http.Handler interface for a WebSocket -func (s Server) ServeHTTP(w http.ResponseWriter, req *http.Request) { - s.serveWebSocket(w, req) -} - -func (s Server) serveWebSocket(w http.ResponseWriter, req *http.Request) { - rwc, buf, err := w.(http.Hijacker).Hijack() - if err != nil { - panic("Hijack failed: " + err.Error()) - } - // The server should abort the WebSocket connection if it finds - // the client did not send a handshake that matches with protocol - // specification. - defer rwc.Close() - conn, err := newServerConn(rwc, buf, req, &s.Config, s.Handshake) - if err != nil { - return - } - if conn == nil { - panic("unexpected nil conn") - } - s.Handler(conn) -} - -// Handler is a simple interface to a WebSocket browser client. -// It checks if Origin header is valid URL by default. -// You might want to verify websocket.Conn.Config().Origin in the func. -// If you use Server instead of Handler, you could call websocket.Origin and -// check the origin in your Handshake func. So, if you want to accept -// non-browser clients, which do not send an Origin header, set a -// Server.Handshake that does not check the origin. -type Handler func(*Conn) - -func checkOrigin(config *Config, req *http.Request) (err error) { - config.Origin, err = Origin(config, req) - if err == nil && config.Origin == nil { - return fmt.Errorf("null origin") - } - return err -} - -// ServeHTTP implements the http.Handler interface for a WebSocket -func (h Handler) ServeHTTP(w http.ResponseWriter, req *http.Request) { - s := Server{Handler: h, Handshake: checkOrigin} - s.serveWebSocket(w, req) -} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/websocket.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/websocket.go deleted file mode 100644 index da0dd964..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/websocket.go +++ /dev/null @@ -1,412 +0,0 @@ -// Copyright 2009 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 websocket implements a client and server for the WebSocket protocol -// as specified in RFC 6455. -package websocket - -import ( - "bufio" - "crypto/tls" - "encoding/json" - "errors" - "io" - "io/ioutil" - "net" - "net/http" - "net/url" - "sync" - "time" -) - -const ( - ProtocolVersionHybi13 = 13 - ProtocolVersionHybi = ProtocolVersionHybi13 - SupportedProtocolVersion = "13" - - ContinuationFrame = 0 - TextFrame = 1 - BinaryFrame = 2 - CloseFrame = 8 - PingFrame = 9 - PongFrame = 10 - UnknownFrame = 255 -) - -// ProtocolError represents WebSocket protocol errors. -type ProtocolError struct { - ErrorString string -} - -func (err *ProtocolError) Error() string { return err.ErrorString } - -var ( - ErrBadProtocolVersion = &ProtocolError{"bad protocol version"} - ErrBadScheme = &ProtocolError{"bad scheme"} - ErrBadStatus = &ProtocolError{"bad status"} - ErrBadUpgrade = &ProtocolError{"missing or bad upgrade"} - ErrBadWebSocketOrigin = &ProtocolError{"missing or bad WebSocket-Origin"} - ErrBadWebSocketLocation = &ProtocolError{"missing or bad WebSocket-Location"} - ErrBadWebSocketProtocol = &ProtocolError{"missing or bad WebSocket-Protocol"} - ErrBadWebSocketVersion = &ProtocolError{"missing or bad WebSocket Version"} - ErrChallengeResponse = &ProtocolError{"mismatch challenge/response"} - ErrBadFrame = &ProtocolError{"bad frame"} - ErrBadFrameBoundary = &ProtocolError{"not on frame boundary"} - ErrNotWebSocket = &ProtocolError{"not websocket protocol"} - ErrBadRequestMethod = &ProtocolError{"bad method"} - ErrNotSupported = &ProtocolError{"not supported"} -) - -// Addr is an implementation of net.Addr for WebSocket. -type Addr struct { - *url.URL -} - -// Network returns the network type for a WebSocket, "websocket". -func (addr *Addr) Network() string { return "websocket" } - -// Config is a WebSocket configuration -type Config struct { - // A WebSocket server address. - Location *url.URL - - // A Websocket client origin. - Origin *url.URL - - // WebSocket subprotocols. - Protocol []string - - // WebSocket protocol version. - Version int - - // TLS config for secure WebSocket (wss). - TlsConfig *tls.Config - - // Additional header fields to be sent in WebSocket opening handshake. - Header http.Header - - handshakeData map[string]string -} - -// serverHandshaker is an interface to handle WebSocket server side handshake. -type serverHandshaker interface { - // ReadHandshake reads handshake request message from client. - // Returns http response code and error if any. - ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err error) - - // AcceptHandshake accepts the client handshake request and sends - // handshake response back to client. - AcceptHandshake(buf *bufio.Writer) (err error) - - // NewServerConn creates a new WebSocket connection. - NewServerConn(buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) (conn *Conn) -} - -// frameReader is an interface to read a WebSocket frame. -type frameReader interface { - // Reader is to read payload of the frame. - io.Reader - - // PayloadType returns payload type. - PayloadType() byte - - // HeaderReader returns a reader to read header of the frame. - HeaderReader() io.Reader - - // TrailerReader returns a reader to read trailer of the frame. - // If it returns nil, there is no trailer in the frame. - TrailerReader() io.Reader - - // Len returns total length of the frame, including header and trailer. - Len() int -} - -// frameReaderFactory is an interface to creates new frame reader. -type frameReaderFactory interface { - NewFrameReader() (r frameReader, err error) -} - -// frameWriter is an interface to write a WebSocket frame. -type frameWriter interface { - // Writer is to write payload of the frame. - io.WriteCloser -} - -// frameWriterFactory is an interface to create new frame writer. -type frameWriterFactory interface { - NewFrameWriter(payloadType byte) (w frameWriter, err error) -} - -type frameHandler interface { - HandleFrame(frame frameReader) (r frameReader, err error) - WriteClose(status int) (err error) -} - -// Conn represents a WebSocket connection. -type Conn struct { - config *Config - request *http.Request - - buf *bufio.ReadWriter - rwc io.ReadWriteCloser - - rio sync.Mutex - frameReaderFactory - frameReader - - wio sync.Mutex - frameWriterFactory - - frameHandler - PayloadType byte - defaultCloseStatus int -} - -// Read implements the io.Reader interface: -// it reads data of a frame from the WebSocket connection. -// if msg is not large enough for the frame data, it fills the msg and next Read -// will read the rest of the frame data. -// it reads Text frame or Binary frame. -func (ws *Conn) Read(msg []byte) (n int, err error) { - ws.rio.Lock() - defer ws.rio.Unlock() -again: - if ws.frameReader == nil { - frame, err := ws.frameReaderFactory.NewFrameReader() - if err != nil { - return 0, err - } - ws.frameReader, err = ws.frameHandler.HandleFrame(frame) - if err != nil { - return 0, err - } - if ws.frameReader == nil { - goto again - } - } - n, err = ws.frameReader.Read(msg) - if err == io.EOF { - if trailer := ws.frameReader.TrailerReader(); trailer != nil { - io.Copy(ioutil.Discard, trailer) - } - ws.frameReader = nil - goto again - } - return n, err -} - -// Write implements the io.Writer interface: -// it writes data as a frame to the WebSocket connection. -func (ws *Conn) Write(msg []byte) (n int, err error) { - ws.wio.Lock() - defer ws.wio.Unlock() - w, err := ws.frameWriterFactory.NewFrameWriter(ws.PayloadType) - if err != nil { - return 0, err - } - n, err = w.Write(msg) - w.Close() - if err != nil { - return n, err - } - return n, err -} - -// Close implements the io.Closer interface. -func (ws *Conn) Close() error { - err := ws.frameHandler.WriteClose(ws.defaultCloseStatus) - err1 := ws.rwc.Close() - if err != nil { - return err - } - return err1 -} - -func (ws *Conn) IsClientConn() bool { return ws.request == nil } -func (ws *Conn) IsServerConn() bool { return ws.request != nil } - -// LocalAddr returns the WebSocket Origin for the connection for client, or -// the WebSocket location for server. -func (ws *Conn) LocalAddr() net.Addr { - if ws.IsClientConn() { - return &Addr{ws.config.Origin} - } - return &Addr{ws.config.Location} -} - -// RemoteAddr returns the WebSocket location for the connection for client, or -// the Websocket Origin for server. -func (ws *Conn) RemoteAddr() net.Addr { - if ws.IsClientConn() { - return &Addr{ws.config.Location} - } - return &Addr{ws.config.Origin} -} - -var errSetDeadline = errors.New("websocket: cannot set deadline: not using a net.Conn") - -// SetDeadline sets the connection's network read & write deadlines. -func (ws *Conn) SetDeadline(t time.Time) error { - if conn, ok := ws.rwc.(net.Conn); ok { - return conn.SetDeadline(t) - } - return errSetDeadline -} - -// SetReadDeadline sets the connection's network read deadline. -func (ws *Conn) SetReadDeadline(t time.Time) error { - if conn, ok := ws.rwc.(net.Conn); ok { - return conn.SetReadDeadline(t) - } - return errSetDeadline -} - -// SetWriteDeadline sets the connection's network write deadline. -func (ws *Conn) SetWriteDeadline(t time.Time) error { - if conn, ok := ws.rwc.(net.Conn); ok { - return conn.SetWriteDeadline(t) - } - return errSetDeadline -} - -// Config returns the WebSocket config. -func (ws *Conn) Config() *Config { return ws.config } - -// Request returns the http request upgraded to the WebSocket. -// It is nil for client side. -func (ws *Conn) Request() *http.Request { return ws.request } - -// Codec represents a symmetric pair of functions that implement a codec. -type Codec struct { - Marshal func(v interface{}) (data []byte, payloadType byte, err error) - Unmarshal func(data []byte, payloadType byte, v interface{}) (err error) -} - -// Send sends v marshaled by cd.Marshal as single frame to ws. -func (cd Codec) Send(ws *Conn, v interface{}) (err error) { - data, payloadType, err := cd.Marshal(v) - if err != nil { - return err - } - ws.wio.Lock() - defer ws.wio.Unlock() - w, err := ws.frameWriterFactory.NewFrameWriter(payloadType) - if err != nil { - return err - } - _, err = w.Write(data) - w.Close() - return err -} - -// Receive receives single frame from ws, unmarshaled by cd.Unmarshal and stores in v. -func (cd Codec) Receive(ws *Conn, v interface{}) (err error) { - ws.rio.Lock() - defer ws.rio.Unlock() - if ws.frameReader != nil { - _, err = io.Copy(ioutil.Discard, ws.frameReader) - if err != nil { - return err - } - ws.frameReader = nil - } -again: - frame, err := ws.frameReaderFactory.NewFrameReader() - if err != nil { - return err - } - frame, err = ws.frameHandler.HandleFrame(frame) - if err != nil { - return err - } - if frame == nil { - goto again - } - payloadType := frame.PayloadType() - data, err := ioutil.ReadAll(frame) - if err != nil { - return err - } - return cd.Unmarshal(data, payloadType, v) -} - -func marshal(v interface{}) (msg []byte, payloadType byte, err error) { - switch data := v.(type) { - case string: - return []byte(data), TextFrame, nil - case []byte: - return data, BinaryFrame, nil - } - return nil, UnknownFrame, ErrNotSupported -} - -func unmarshal(msg []byte, payloadType byte, v interface{}) (err error) { - switch data := v.(type) { - case *string: - *data = string(msg) - return nil - case *[]byte: - *data = msg - return nil - } - return ErrNotSupported -} - -/* -Message is a codec to send/receive text/binary data in a frame on WebSocket connection. -To send/receive text frame, use string type. -To send/receive binary frame, use []byte type. - -Trivial usage: - - import "websocket" - - // receive text frame - var message string - websocket.Message.Receive(ws, &message) - - // send text frame - message = "hello" - websocket.Message.Send(ws, message) - - // receive binary frame - var data []byte - websocket.Message.Receive(ws, &data) - - // send binary frame - data = []byte{0, 1, 2} - websocket.Message.Send(ws, data) - -*/ -var Message = Codec{marshal, unmarshal} - -func jsonMarshal(v interface{}) (msg []byte, payloadType byte, err error) { - msg, err = json.Marshal(v) - return msg, TextFrame, err -} - -func jsonUnmarshal(msg []byte, payloadType byte, v interface{}) (err error) { - return json.Unmarshal(msg, v) -} - -/* -JSON is a codec to send/receive JSON data in a frame from a WebSocket connection. - -Trivial usage: - - import "websocket" - - type T struct { - Msg string - Count int - } - - // receive JSON type T - var data T - websocket.JSON.Receive(ws, &data) - - // send JSON type T - websocket.JSON.Send(ws, data) -*/ -var JSON = Codec{jsonMarshal, jsonUnmarshal} diff --git a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/websocket_test.go b/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/websocket_test.go deleted file mode 100644 index 05b7e535..00000000 --- a/vendor/gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/websocket/websocket_test.go +++ /dev/null @@ -1,587 +0,0 @@ -// Copyright 2009 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 websocket - -import ( - "bytes" - "fmt" - "io" - "log" - "net" - "net/http" - "net/http/httptest" - "net/url" - "reflect" - "runtime" - "strings" - "sync" - "testing" - "time" -) - -var serverAddr string -var once sync.Once - -func echoServer(ws *Conn) { - defer ws.Close() - io.Copy(ws, ws) -} - -type Count struct { - S string - N int -} - -func countServer(ws *Conn) { - defer ws.Close() - for { - var count Count - err := JSON.Receive(ws, &count) - if err != nil { - return - } - count.N++ - count.S = strings.Repeat(count.S, count.N) - err = JSON.Send(ws, count) - if err != nil { - return - } - } -} - -type testCtrlAndDataHandler struct { - hybiFrameHandler -} - -func (h *testCtrlAndDataHandler) WritePing(b []byte) (int, error) { - h.hybiFrameHandler.conn.wio.Lock() - defer h.hybiFrameHandler.conn.wio.Unlock() - w, err := h.hybiFrameHandler.conn.frameWriterFactory.NewFrameWriter(PingFrame) - if err != nil { - return 0, err - } - n, err := w.Write(b) - w.Close() - return n, err -} - -func ctrlAndDataServer(ws *Conn) { - defer ws.Close() - h := &testCtrlAndDataHandler{hybiFrameHandler: hybiFrameHandler{conn: ws}} - ws.frameHandler = h - - go func() { - for i := 0; ; i++ { - var b []byte - if i%2 != 0 { // with or without payload - b = []byte(fmt.Sprintf("#%d-CONTROL-FRAME-FROM-SERVER", i)) - } - if _, err := h.WritePing(b); err != nil { - break - } - if _, err := h.WritePong(b); err != nil { // unsolicited pong - break - } - time.Sleep(10 * time.Millisecond) - } - }() - - b := make([]byte, 128) - for { - n, err := ws.Read(b) - if err != nil { - break - } - if _, err := ws.Write(b[:n]); err != nil { - break - } - } -} - -func subProtocolHandshake(config *Config, req *http.Request) error { - for _, proto := range config.Protocol { - if proto == "chat" { - config.Protocol = []string{proto} - return nil - } - } - return ErrBadWebSocketProtocol -} - -func subProtoServer(ws *Conn) { - for _, proto := range ws.Config().Protocol { - io.WriteString(ws, proto) - } -} - -func startServer() { - http.Handle("/echo", Handler(echoServer)) - http.Handle("/count", Handler(countServer)) - http.Handle("/ctrldata", Handler(ctrlAndDataServer)) - subproto := Server{ - Handshake: subProtocolHandshake, - Handler: Handler(subProtoServer), - } - http.Handle("/subproto", subproto) - server := httptest.NewServer(nil) - serverAddr = server.Listener.Addr().String() - log.Print("Test WebSocket server listening on ", serverAddr) -} - -func newConfig(t *testing.T, path string) *Config { - config, _ := NewConfig(fmt.Sprintf("ws://%s%s", serverAddr, path), "http://localhost") - return config -} - -func TestEcho(t *testing.T) { - once.Do(startServer) - - // websocket.Dial() - client, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal("dialing", err) - } - conn, err := NewClient(newConfig(t, "/echo"), client) - if err != nil { - t.Errorf("WebSocket handshake error: %v", err) - return - } - - msg := []byte("hello, world\n") - if _, err := conn.Write(msg); err != nil { - t.Errorf("Write: %v", err) - } - var actual_msg = make([]byte, 512) - n, err := conn.Read(actual_msg) - if err != nil { - t.Errorf("Read: %v", err) - } - actual_msg = actual_msg[0:n] - if !bytes.Equal(msg, actual_msg) { - t.Errorf("Echo: expected %q got %q", msg, actual_msg) - } - conn.Close() -} - -func TestAddr(t *testing.T) { - once.Do(startServer) - - // websocket.Dial() - client, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal("dialing", err) - } - conn, err := NewClient(newConfig(t, "/echo"), client) - if err != nil { - t.Errorf("WebSocket handshake error: %v", err) - return - } - - ra := conn.RemoteAddr().String() - if !strings.HasPrefix(ra, "ws://") || !strings.HasSuffix(ra, "/echo") { - t.Errorf("Bad remote addr: %v", ra) - } - la := conn.LocalAddr().String() - if !strings.HasPrefix(la, "http://") { - t.Errorf("Bad local addr: %v", la) - } - conn.Close() -} - -func TestCount(t *testing.T) { - once.Do(startServer) - - // websocket.Dial() - client, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal("dialing", err) - } - conn, err := NewClient(newConfig(t, "/count"), client) - if err != nil { - t.Errorf("WebSocket handshake error: %v", err) - return - } - - var count Count - count.S = "hello" - if err := JSON.Send(conn, count); err != nil { - t.Errorf("Write: %v", err) - } - if err := JSON.Receive(conn, &count); err != nil { - t.Errorf("Read: %v", err) - } - if count.N != 1 { - t.Errorf("count: expected %d got %d", 1, count.N) - } - if count.S != "hello" { - t.Errorf("count: expected %q got %q", "hello", count.S) - } - if err := JSON.Send(conn, count); err != nil { - t.Errorf("Write: %v", err) - } - if err := JSON.Receive(conn, &count); err != nil { - t.Errorf("Read: %v", err) - } - if count.N != 2 { - t.Errorf("count: expected %d got %d", 2, count.N) - } - if count.S != "hellohello" { - t.Errorf("count: expected %q got %q", "hellohello", count.S) - } - conn.Close() -} - -func TestWithQuery(t *testing.T) { - once.Do(startServer) - - client, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal("dialing", err) - } - - config := newConfig(t, "/echo") - config.Location, err = url.ParseRequestURI(fmt.Sprintf("ws://%s/echo?q=v", serverAddr)) - if err != nil { - t.Fatal("location url", err) - } - - ws, err := NewClient(config, client) - if err != nil { - t.Errorf("WebSocket handshake: %v", err) - return - } - ws.Close() -} - -func testWithProtocol(t *testing.T, subproto []string) (string, error) { - once.Do(startServer) - - client, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal("dialing", err) - } - - config := newConfig(t, "/subproto") - config.Protocol = subproto - - ws, err := NewClient(config, client) - if err != nil { - return "", err - } - msg := make([]byte, 16) - n, err := ws.Read(msg) - if err != nil { - return "", err - } - ws.Close() - return string(msg[:n]), nil -} - -func TestWithProtocol(t *testing.T) { - proto, err := testWithProtocol(t, []string{"chat"}) - if err != nil { - t.Errorf("SubProto: unexpected error: %v", err) - } - if proto != "chat" { - t.Errorf("SubProto: expected %q, got %q", "chat", proto) - } -} - -func TestWithTwoProtocol(t *testing.T) { - proto, err := testWithProtocol(t, []string{"test", "chat"}) - if err != nil { - t.Errorf("SubProto: unexpected error: %v", err) - } - if proto != "chat" { - t.Errorf("SubProto: expected %q, got %q", "chat", proto) - } -} - -func TestWithBadProtocol(t *testing.T) { - _, err := testWithProtocol(t, []string{"test"}) - if err != ErrBadStatus { - t.Errorf("SubProto: expected %v, got %v", ErrBadStatus, err) - } -} - -func TestHTTP(t *testing.T) { - once.Do(startServer) - - // If the client did not send a handshake that matches the protocol - // specification, the server MUST return an HTTP response with an - // appropriate error code (such as 400 Bad Request) - resp, err := http.Get(fmt.Sprintf("http://%s/echo", serverAddr)) - if err != nil { - t.Errorf("Get: error %#v", err) - return - } - if resp == nil { - t.Error("Get: resp is null") - return - } - if resp.StatusCode != http.StatusBadRequest { - t.Errorf("Get: expected %q got %q", http.StatusBadRequest, resp.StatusCode) - } -} - -func TestTrailingSpaces(t *testing.T) { - // http://code.google.com/p/go/issues/detail?id=955 - // The last runs of this create keys with trailing spaces that should not be - // generated by the client. - once.Do(startServer) - config := newConfig(t, "/echo") - for i := 0; i < 30; i++ { - // body - ws, err := DialConfig(config) - if err != nil { - t.Errorf("Dial #%d failed: %v", i, err) - break - } - ws.Close() - } -} - -func TestDialConfigBadVersion(t *testing.T) { - once.Do(startServer) - config := newConfig(t, "/echo") - config.Version = 1234 - - _, err := DialConfig(config) - - if dialerr, ok := err.(*DialError); ok { - if dialerr.Err != ErrBadProtocolVersion { - t.Errorf("dial expected err %q but got %q", ErrBadProtocolVersion, dialerr.Err) - } - } -} - -func TestSmallBuffer(t *testing.T) { - // http://code.google.com/p/go/issues/detail?id=1145 - // Read should be able to handle reading a fragment of a frame. - once.Do(startServer) - - // websocket.Dial() - client, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal("dialing", err) - } - conn, err := NewClient(newConfig(t, "/echo"), client) - if err != nil { - t.Errorf("WebSocket handshake error: %v", err) - return - } - - msg := []byte("hello, world\n") - if _, err := conn.Write(msg); err != nil { - t.Errorf("Write: %v", err) - } - var small_msg = make([]byte, 8) - n, err := conn.Read(small_msg) - if err != nil { - t.Errorf("Read: %v", err) - } - if !bytes.Equal(msg[:len(small_msg)], small_msg) { - t.Errorf("Echo: expected %q got %q", msg[:len(small_msg)], small_msg) - } - var second_msg = make([]byte, len(msg)) - n, err = conn.Read(second_msg) - if err != nil { - t.Errorf("Read: %v", err) - } - second_msg = second_msg[0:n] - if !bytes.Equal(msg[len(small_msg):], second_msg) { - t.Errorf("Echo: expected %q got %q", msg[len(small_msg):], second_msg) - } - conn.Close() -} - -var parseAuthorityTests = []struct { - in *url.URL - out string -}{ - { - &url.URL{ - Scheme: "ws", - Host: "www.google.com", - }, - "www.google.com:80", - }, - { - &url.URL{ - Scheme: "wss", - Host: "www.google.com", - }, - "www.google.com:443", - }, - { - &url.URL{ - Scheme: "ws", - Host: "www.google.com:80", - }, - "www.google.com:80", - }, - { - &url.URL{ - Scheme: "wss", - Host: "www.google.com:443", - }, - "www.google.com:443", - }, - // some invalid ones for parseAuthority. parseAuthority doesn't - // concern itself with the scheme unless it actually knows about it - { - &url.URL{ - Scheme: "http", - Host: "www.google.com", - }, - "www.google.com", - }, - { - &url.URL{ - Scheme: "http", - Host: "www.google.com:80", - }, - "www.google.com:80", - }, - { - &url.URL{ - Scheme: "asdf", - Host: "127.0.0.1", - }, - "127.0.0.1", - }, - { - &url.URL{ - Scheme: "asdf", - Host: "www.google.com", - }, - "www.google.com", - }, -} - -func TestParseAuthority(t *testing.T) { - for _, tt := range parseAuthorityTests { - out := parseAuthority(tt.in) - if out != tt.out { - t.Errorf("got %v; want %v", out, tt.out) - } - } -} - -type closerConn struct { - net.Conn - closed int // count of the number of times Close was called -} - -func (c *closerConn) Close() error { - c.closed++ - return c.Conn.Close() -} - -func TestClose(t *testing.T) { - if runtime.GOOS == "plan9" { - t.Skip("see golang.org/issue/11454") - } - - once.Do(startServer) - - conn, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal("dialing", err) - } - - cc := closerConn{Conn: conn} - - client, err := NewClient(newConfig(t, "/echo"), &cc) - if err != nil { - t.Fatalf("WebSocket handshake: %v", err) - } - - // set the deadline to ten minutes ago, which will have expired by the time - // client.Close sends the close status frame. - conn.SetDeadline(time.Now().Add(-10 * time.Minute)) - - if err := client.Close(); err == nil { - t.Errorf("ws.Close(): expected error, got %v", err) - } - if cc.closed < 1 { - t.Fatalf("ws.Close(): expected underlying ws.rwc.Close to be called > 0 times, got: %v", cc.closed) - } -} - -var originTests = []struct { - req *http.Request - origin *url.URL -}{ - { - req: &http.Request{ - Header: http.Header{ - "Origin": []string{"http://www.example.com"}, - }, - }, - origin: &url.URL{ - Scheme: "http", - Host: "www.example.com", - }, - }, - { - req: &http.Request{}, - }, -} - -func TestOrigin(t *testing.T) { - conf := newConfig(t, "/echo") - conf.Version = ProtocolVersionHybi13 - for i, tt := range originTests { - origin, err := Origin(conf, tt.req) - if err != nil { - t.Error(err) - continue - } - if !reflect.DeepEqual(origin, tt.origin) { - t.Errorf("#%d: got origin %v; want %v", i, origin, tt.origin) - continue - } - } -} - -func TestCtrlAndData(t *testing.T) { - once.Do(startServer) - - c, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal(err) - } - ws, err := NewClient(newConfig(t, "/ctrldata"), c) - if err != nil { - t.Fatal(err) - } - defer ws.Close() - - h := &testCtrlAndDataHandler{hybiFrameHandler: hybiFrameHandler{conn: ws}} - ws.frameHandler = h - - b := make([]byte, 128) - for i := 0; i < 2; i++ { - data := []byte(fmt.Sprintf("#%d-DATA-FRAME-FROM-CLIENT", i)) - if _, err := ws.Write(data); err != nil { - t.Fatalf("#%d: %v", i, err) - } - var ctrl []byte - if i%2 != 0 { // with or without payload - ctrl = []byte(fmt.Sprintf("#%d-CONTROL-FRAME-FROM-CLIENT", i)) - } - if _, err := h.WritePing(ctrl); err != nil { - t.Fatalf("#%d: %v", i, err) - } - n, err := ws.Read(b) - if err != nil { - t.Fatalf("#%d: %v", i, err) - } - if !bytes.Equal(b[:n], data) { - t.Fatalf("#%d: got %v; want %v", i, b[:n], data) - } - } -} diff --git a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/.gxignore b/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/Makefile b/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/Makefile deleted file mode 100644 index fe944956..00000000 --- a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -all: build - -deps: - go get ./... - -build: - go build - -install: build - go install - -watch: - -make build - @echo "[watching *.go for recompilation]" - # for portability, use watchmedo -- pip install watchmedo - @watchmedo shell-command --patterns="*.go;" --recursive \ - --command='make build' . diff --git a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/README.md b/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/README.md deleted file mode 100644 index 1840869d..00000000 --- a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/README.md +++ /dev/null @@ -1,17 +0,0 @@ -## go-sockaddr - `{Raw,}Sockaddr` conversions - -See https://groups.google.com/d/msg/golang-nuts/B-meiFfkmH0/-TxP1r6zvk8J -This package extracts unexported code from `syscall` to help in converting -between: - -```Go -syscall.Sockaddr -syscall.RawSockaddrAny -C.struct_sockaddr_any -net.*Addr -``` - -Godoc: - -- sockaddr - http://godoc.org/github.com/jbenet/go-sockaddr -- sockaddr/net - http://godoc.org/github.com/jbenet/go-sockaddr/net diff --git a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net.go b/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net.go deleted file mode 100644 index 9299d08f..00000000 --- a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net.go +++ /dev/null @@ -1,341 +0,0 @@ -// package sockaddrnet provides conversions between net.Addr and syscall.Sockaddr -package sockaddrnet - -import ( - "net" - "syscall" -) - -// NetAddrAF returns the syscall AF_* type for a given net.Addr -// returns AF_UNSPEC if unknown -func NetAddrAF(addr net.Addr) int { - switch addr := addr.(type) { - case *net.IPAddr: - return IPAF(addr.IP) - - case *net.TCPAddr: - return IPAF(addr.IP) - - case *net.UDPAddr: - return IPAF(addr.IP) - - case *net.UnixAddr: - return AF_UNIX - - default: - return AF_UNSPEC - } -} - -// IPAF returns the syscall AF_* type for a given IP address -// returns AF_UNSPEC if unknown -func IPAF(ip net.IP) int { - switch { - case ip.To4() != nil: - return AF_INET - - case ip.To16() != nil: - return AF_INET6 - - default: - return AF_UNSPEC - } -} - -// NetAddrIPPROTO returns the syscall IPPROTO_* type for a given net.Addr -// returns -1 if protocol unknown -func NetAddrIPPROTO(addr net.Addr) int { - switch addr := addr.(type) { - case *net.IPAddr: - switch { - default: - return IPPROTO_IP - - case addr.IP.To4() != nil: - return IPPROTO_IPV4 - - case addr.IP.To16() != nil: - return IPPROTO_IPV6 - } - - case *net.TCPAddr: - return IPPROTO_TCP - - case *net.UDPAddr: - return IPPROTO_UDP - - default: - return -1 - } -} - -// NetAddrSOCK returns the syscall SOCK_* type for a given net.Addr -// returns 0 if type unknown -func NetAddrSOCK(addr net.Addr) int { - switch addr := addr.(type) { - case *net.IPAddr: - return SOCK_DGRAM - case *net.TCPAddr: - return SOCK_STREAM - case *net.UDPAddr: - return SOCK_DGRAM - case *net.UnixAddr: - switch addr.Net { - default: - return 0 - case "unix": - return SOCK_STREAM - case "unixgram": - return SOCK_DGRAM - case "unixpacket": - return SOCK_SEQPACKET - } - default: - return 0 - } -} - -// NetAddrToSockaddr converts a net.Addr to a syscall.Sockaddr. -// Returns nil if the input is invalid or conversion is not possible. -func NetAddrToSockaddr(addr net.Addr) syscall.Sockaddr { - switch addr := addr.(type) { - case *net.IPAddr: - return IPAddrToSockaddr(addr) - case *net.TCPAddr: - return TCPAddrToSockaddr(addr) - case *net.UDPAddr: - return UDPAddrToSockaddr(addr) - case *net.UnixAddr: - sa, _ := UnixAddrToSockaddr(addr) - return sa - default: - return nil - } -} - -// IPAndZoneToSockaddr converts a net.IP (with optional IPv6 Zone) to a syscall.Sockaddr -// Returns nil if conversion fails. -func IPAndZoneToSockaddr(ip net.IP, zone string) syscall.Sockaddr { - switch { - case len(ip) < net.IPv4len: // default to IPv4 - buf := [4]byte{0, 0, 0, 0} - return &syscall.SockaddrInet4{Addr: buf} - - case ip.To4() != nil: - var buf [4]byte - copy(buf[:], ip[12:16]) // last 4 bytes - return &syscall.SockaddrInet4{Addr: buf} - - case ip.To16() != nil: - var buf [16]byte - copy(buf[:], ip) - return &syscall.SockaddrInet6{Addr: buf, ZoneId: uint32(IP6ZoneToInt(zone))} - } - panic("should be unreachable") -} - -// IPAddrToSockaddr converts a net.IPAddr to a syscall.Sockaddr. -// Returns nil if conversion fails. -func IPAddrToSockaddr(addr *net.IPAddr) syscall.Sockaddr { - return IPAndZoneToSockaddr(addr.IP, addr.Zone) -} - -// TCPAddrToSockaddr converts a net.TCPAddr to a syscall.Sockaddr. -// Returns nil if conversion fails. -func TCPAddrToSockaddr(addr *net.TCPAddr) syscall.Sockaddr { - sa := IPAndZoneToSockaddr(addr.IP, addr.Zone) - switch sa := sa.(type) { - case *syscall.SockaddrInet4: - sa.Port = addr.Port - return sa - case *syscall.SockaddrInet6: - sa.Port = addr.Port - return sa - default: - return nil - } -} - -// UDPAddrToSockaddr converts a net.UDPAddr to a syscall.Sockaddr. -// Returns nil if conversion fails. -func UDPAddrToSockaddr(addr *net.UDPAddr) syscall.Sockaddr { - sa := IPAndZoneToSockaddr(addr.IP, addr.Zone) - switch sa := sa.(type) { - case *syscall.SockaddrInet4: - sa.Port = addr.Port - return sa - case *syscall.SockaddrInet6: - sa.Port = addr.Port - return sa - default: - return nil - } -} - -// UnixAddrToSockaddr converts a net.UnixAddr to a syscall.Sockaddr, and returns -// the type (syscall.SOCK_STREAM, syscall.SOCK_DGRAM, syscall.SOCK_SEQPACKET) -// Returns (nil, 0) if conversion fails. -func UnixAddrToSockaddr(addr *net.UnixAddr) (syscall.Sockaddr, int) { - t := 0 - switch addr.Net { - case "unix": - t = syscall.SOCK_STREAM - case "unixgram": - t = syscall.SOCK_DGRAM - case "unixpacket": - t = syscall.SOCK_SEQPACKET - default: - return nil, 0 - } - return &syscall.SockaddrUnix{Name: addr.Name}, t -} - -// IPAndZoneToSockaddr converts a net.IP (with optional IPv6 Zone) to a syscall.Sockaddr -// Returns nil if conversion fails. -func SockaddrToIPAndZone(sa syscall.Sockaddr) (net.IP, string) { - switch sa := sa.(type) { - case *syscall.SockaddrInet4: - ip := make([]byte, 16) - copy(ip[12:16], sa.Addr[:]) - return ip, "" - - case *syscall.SockaddrInet6: - ip := make([]byte, 16) - copy(ip, sa.Addr[:]) - return ip, IP6ZoneToString(int(sa.ZoneId)) - } - return nil, "" -} - -// SockaddrToIPAddr converts a syscall.Sockaddr to a net.IPAddr -// Returns nil if conversion fails. -func SockaddrToIPAddr(sa syscall.Sockaddr) *net.IPAddr { - ip, zone := SockaddrToIPAndZone(sa) - switch sa.(type) { - case *syscall.SockaddrInet4: - return &net.IPAddr{IP: ip} - case *syscall.SockaddrInet6: - return &net.IPAddr{IP: ip, Zone: zone} - } - return nil -} - -// SockaddrToTCPAddr converts a syscall.Sockaddr to a net.TCPAddr -// Returns nil if conversion fails. -func SockaddrToTCPAddr(sa syscall.Sockaddr) *net.TCPAddr { - ip, zone := SockaddrToIPAndZone(sa) - switch sa := sa.(type) { - case *syscall.SockaddrInet4: - return &net.TCPAddr{IP: ip, Port: sa.Port} - case *syscall.SockaddrInet6: - return &net.TCPAddr{IP: ip, Port: sa.Port, Zone: zone} - } - return nil -} - -// SockaddrToUDPAddr converts a syscall.Sockaddr to a net.UDPAddr -// Returns nil if conversion fails. -func SockaddrToUDPAddr(sa syscall.Sockaddr) *net.UDPAddr { - ip, zone := SockaddrToIPAndZone(sa) - switch sa := sa.(type) { - case *syscall.SockaddrInet4: - return &net.UDPAddr{IP: ip, Port: sa.Port} - case *syscall.SockaddrInet6: - return &net.UDPAddr{IP: ip, Port: sa.Port, Zone: zone} - } - return nil -} - -// from: go/src/pkg/net/unixsock_posix.go - -// SockaddrToUnixAddr converts a syscall.Sockaddr to a net.UnixAddr -// Returns nil if conversion fails. -func SockaddrToUnixAddr(sa syscall.Sockaddr) *net.UnixAddr { - if s, ok := sa.(*syscall.SockaddrUnix); ok { - return &net.UnixAddr{Name: s.Name, Net: "unix"} - } - return nil -} - -// SockaddrToUnixgramAddr converts a syscall.Sockaddr to a net.UnixAddr -// Returns nil if conversion fails. -func SockaddrToUnixgramAddr(sa syscall.Sockaddr) *net.UnixAddr { - if s, ok := sa.(*syscall.SockaddrUnix); ok { - return &net.UnixAddr{Name: s.Name, Net: "unixgram"} - } - return nil -} - -// SockaddrToUnixpacketAddr converts a syscall.Sockaddr to a net.UnixAddr -// Returns nil if conversion fails. -func SockaddrToUnixpacketAddr(sa syscall.Sockaddr) *net.UnixAddr { - if s, ok := sa.(*syscall.SockaddrUnix); ok { - return &net.UnixAddr{Name: s.Name, Net: "unixpacket"} - } - return nil -} - -// from: go/src/pkg/net/ipsock.go - -// IP6ZoneToString converts an IP6 Zone syscall int to a net string -// returns "" if zone is 0 -func IP6ZoneToString(zone int) string { - if zone == 0 { - return "" - } - if ifi, err := net.InterfaceByIndex(zone); err == nil { - return ifi.Name - } - return itod(uint(zone)) -} - -// IP6ZoneToInt converts an IP6 Zone net string to a syscall int -// returns 0 if zone is "" -func IP6ZoneToInt(zone string) int { - if zone == "" { - return 0 - } - if ifi, err := net.InterfaceByName(zone); err == nil { - return ifi.Index - } - n, _, _ := dtoi(zone, 0) - return n -} - -// from: go/src/pkg/net/parse.go - -// Convert i to decimal string. -func itod(i uint) string { - if i == 0 { - return "0" - } - - // Assemble decimal in reverse order. - var b [32]byte - bp := len(b) - for ; i > 0; i /= 10 { - bp-- - b[bp] = byte(i%10) + '0' - } - - return string(b[bp:]) -} - -// Bigger than we need, not too big to worry about overflow -const big = 0xFFFFFF - -// Decimal to integer starting at &s[i0]. -// Returns number, new offset, success. -func dtoi(s string, i0 int) (n int, i int, ok bool) { - n = 0 - for i = i0; i < len(s) && '0' <= s[i] && s[i] <= '9'; i++ { - n = n*10 + int(s[i]-'0') - if n >= big { - return 0, i, false - } - } - if i == i0 { - return 0, i, false - } - return n, i, true -} diff --git a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net_bsd.go b/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net_bsd.go deleted file mode 100644 index a38c2bd4..00000000 --- a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net_bsd.go +++ /dev/null @@ -1,24 +0,0 @@ -// +build darwin dragonfly freebsd netbsd openbsd - -package sockaddrnet - -import ( - "syscall" -) - -const ( - AF_INET = syscall.AF_INET - AF_INET6 = syscall.AF_INET6 - AF_UNIX = syscall.AF_UNIX - AF_UNSPEC = syscall.AF_UNSPEC - - IPPROTO_IP = syscall.IPPROTO_IP - IPPROTO_IPV4 = syscall.IPPROTO_IPV4 - IPPROTO_IPV6 = syscall.IPPROTO_IPV6 - IPPROTO_TCP = syscall.IPPROTO_TCP - IPPROTO_UDP = syscall.IPPROTO_UDP - - SOCK_DGRAM = syscall.SOCK_DGRAM - SOCK_STREAM = syscall.SOCK_STREAM - SOCK_SEQPACKET = syscall.SOCK_SEQPACKET -) diff --git a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net_linux.go b/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net_linux.go deleted file mode 100644 index ddc4ec45..00000000 --- a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net_linux.go +++ /dev/null @@ -1,22 +0,0 @@ -package sockaddrnet - -import ( - "syscall" -) - -const ( - AF_INET = syscall.AF_INET - AF_INET6 = syscall.AF_INET6 - AF_UNIX = syscall.AF_UNIX - AF_UNSPEC = syscall.AF_UNSPEC - - IPPROTO_IP = syscall.IPPROTO_IP - IPPROTO_IPV4 = syscall.IPPROTO_IPIP - IPPROTO_IPV6 = syscall.IPPROTO_IPV6 - IPPROTO_TCP = syscall.IPPROTO_TCP - IPPROTO_UDP = syscall.IPPROTO_UDP - - SOCK_DGRAM = syscall.SOCK_DGRAM - SOCK_STREAM = syscall.SOCK_STREAM - SOCK_SEQPACKET = syscall.SOCK_SEQPACKET -) diff --git a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net_windows.go b/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net_windows.go deleted file mode 100644 index 6f54bfff..00000000 --- a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net/net_windows.go +++ /dev/null @@ -1,22 +0,0 @@ -package sockaddrnet - -import ( - "syscall" -) - -const ( - AF_INET = syscall.AF_INET - AF_INET6 = syscall.AF_INET6 - AF_UNIX = syscall.AF_UNIX - AF_UNSPEC = syscall.AF_UNSPEC - - IPPROTO_IP = syscall.IPPROTO_IP - IPPROTO_IPV4 = syscall.IPPROTO_IPV4 - IPPROTO_IPV6 = syscall.IPPROTO_IPV6 - IPPROTO_TCP = syscall.IPPROTO_TCP - IPPROTO_UDP = syscall.IPPROTO_UDP - - SOCK_DGRAM = syscall.SOCK_DGRAM - SOCK_STREAM = syscall.SOCK_STREAM - SOCK_SEQPACKET = syscall.SOCK_SEQPACKET -) diff --git a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/package.json b/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/package.json deleted file mode 100644 index b7e03056..00000000 --- a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "go-sockaddr", - "author": "whyrusleeping", - "version": "0.0.0", - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/jbenet/go-sockaddr" - } -} \ No newline at end of file diff --git a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr.go b/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr.go deleted file mode 100644 index a19b292e..00000000 --- a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr.go +++ /dev/null @@ -1,33 +0,0 @@ -package sockaddr - -import ( - "syscall" - "unsafe" -) - -import "C" - -// Socklen is a type for the length of a sockaddr. -type Socklen uint - -// SockaddrToAny converts a syscall.Sockaddr into a syscall.RawSockaddrAny -// The implementation is platform dependent. -func SockaddrToAny(sa syscall.Sockaddr) (*syscall.RawSockaddrAny, Socklen, error) { - return sockaddrToAny(sa) -} - -// SockaddrToAny converts a syscall.RawSockaddrAny into a syscall.Sockaddr -// The implementation is platform dependent. -func AnyToSockaddr(rsa *syscall.RawSockaddrAny) (syscall.Sockaddr, error) { - return anyToSockaddr(rsa) -} - -// AnyToCAny casts a *RawSockaddrAny to a *C.struct_sockaddr_any -func AnyToCAny(a *syscall.RawSockaddrAny) *C.struct_sockaddr_any { - return (*C.struct_sockaddr_any)(unsafe.Pointer(a)) -} - -// CAnyToAny casts a *C.struct_sockaddr_any to a *RawSockaddrAny -func CAnyToAny(a *C.struct_sockaddr_any) *syscall.RawSockaddrAny { - return (*syscall.RawSockaddrAny)(unsafe.Pointer(a)) -} diff --git a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_bsd.go b/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_bsd.go deleted file mode 100644 index 5e9e751f..00000000 --- a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_bsd.go +++ /dev/null @@ -1,142 +0,0 @@ -// +build darwin dragonfly freebsd netbsd openbsd - -package sockaddr - -import ( - "syscall" - "unsafe" -) - -func sockaddrToAny(sa syscall.Sockaddr) (*syscall.RawSockaddrAny, Socklen, error) { - if sa == nil { - return nil, 0, syscall.EINVAL - } - - switch sa := sa.(type) { - case *syscall.SockaddrInet4: - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.EINVAL - } - var raw syscall.RawSockaddrInet4 - raw.Len = syscall.SizeofSockaddrInet4 - raw.Family = syscall.AF_INET - p := (*[2]byte)(unsafe.Pointer(&raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - for i := 0; i < len(sa.Addr); i++ { - raw.Addr[i] = sa.Addr[i] - } - return (*syscall.RawSockaddrAny)(unsafe.Pointer(&raw)), Socklen(raw.Len), nil - - case *syscall.SockaddrInet6: - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.EINVAL - } - var raw syscall.RawSockaddrInet6 - raw.Len = syscall.SizeofSockaddrInet6 - raw.Family = syscall.AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - raw.Scope_id = sa.ZoneId - for i := 0; i < len(sa.Addr); i++ { - raw.Addr[i] = sa.Addr[i] - } - return (*syscall.RawSockaddrAny)(unsafe.Pointer(&raw)), Socklen(raw.Len), nil - - case *syscall.SockaddrUnix: - name := sa.Name - n := len(name) - var raw syscall.RawSockaddrUnix - if n >= len(raw.Path) || n == 0 { - return nil, 0, syscall.EINVAL - } - raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL - raw.Family = syscall.AF_UNIX - for i := 0; i < n; i++ { - raw.Path[i] = int8(name[i]) - } - return (*syscall.RawSockaddrAny)(unsafe.Pointer(&raw)), Socklen(raw.Len), nil - - case *syscall.SockaddrDatalink: - if sa.Index == 0 { - return nil, 0, syscall.EINVAL - } - var raw syscall.RawSockaddrDatalink - raw.Len = sa.Len - raw.Family = syscall.AF_LINK - raw.Index = sa.Index - raw.Type = sa.Type - raw.Nlen = sa.Nlen - raw.Alen = sa.Alen - raw.Slen = sa.Slen - for i := 0; i < len(raw.Data); i++ { - raw.Data[i] = sa.Data[i] - } - return (*syscall.RawSockaddrAny)(unsafe.Pointer(&raw)), syscall.SizeofSockaddrDatalink, nil - } - return nil, 0, syscall.EAFNOSUPPORT -} - -func anyToSockaddr(rsa *syscall.RawSockaddrAny) (syscall.Sockaddr, error) { - if rsa == nil { - return nil, syscall.EINVAL - } - - switch rsa.Addr.Family { - case syscall.AF_LINK: - pp := (*syscall.RawSockaddrDatalink)(unsafe.Pointer(rsa)) - sa := new(syscall.SockaddrDatalink) - sa.Len = pp.Len - sa.Family = pp.Family - sa.Index = pp.Index - sa.Type = pp.Type - sa.Nlen = pp.Nlen - sa.Alen = pp.Alen - sa.Slen = pp.Slen - for i := 0; i < len(sa.Data); i++ { - sa.Data[i] = pp.Data[i] - } - return sa, nil - - case syscall.AF_UNIX: - pp := (*syscall.RawSockaddrUnix)(unsafe.Pointer(rsa)) - if pp.Len < 3 || pp.Len > syscall.SizeofSockaddrUnix { - return nil, syscall.EINVAL - } - sa := new(syscall.SockaddrUnix) - n := int(pp.Len) - 3 // subtract leading Family, Len, terminating NUL - for i := 0; i < n; i++ { - if pp.Path[i] == 0 { - // found early NUL; assume Len is overestimating - n = i - break - } - } - bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] - sa.Name = string(bytes) - return sa, nil - - case syscall.AF_INET: - pp := (*syscall.RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(syscall.SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - - case syscall.AF_INET6: - pp := (*syscall.RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(syscall.SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - } - return nil, syscall.EAFNOSUPPORT -} diff --git a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_linux.go b/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_linux.go deleted file mode 100644 index 95ff3199..00000000 --- a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_linux.go +++ /dev/null @@ -1,156 +0,0 @@ -package sockaddr - -import ( - "syscall" - "unsafe" -) - -func sockaddrToAny(sa syscall.Sockaddr) (*syscall.RawSockaddrAny, Socklen, error) { - if sa == nil { - return nil, 0, syscall.EINVAL - } - - switch sa := sa.(type) { - case *syscall.SockaddrInet4: - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.EINVAL - } - var raw syscall.RawSockaddrInet4 - raw.Family = syscall.AF_INET - p := (*[2]byte)(unsafe.Pointer(&raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - for i := 0; i < len(sa.Addr); i++ { - raw.Addr[i] = sa.Addr[i] - } - return (*syscall.RawSockaddrAny)(unsafe.Pointer(&raw)), syscall.SizeofSockaddrInet4, nil - - case *syscall.SockaddrInet6: - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.EINVAL - } - var raw syscall.RawSockaddrInet6 - raw.Family = syscall.AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - raw.Scope_id = sa.ZoneId - for i := 0; i < len(sa.Addr); i++ { - raw.Addr[i] = sa.Addr[i] - } - return (*syscall.RawSockaddrAny)(unsafe.Pointer(&raw)), syscall.SizeofSockaddrInet6, nil - - case *syscall.SockaddrUnix: - name := sa.Name - n := len(name) - var raw syscall.RawSockaddrUnix - if n >= len(raw.Path) { - return nil, 0, syscall.EINVAL - } - raw.Family = syscall.AF_UNIX - for i := 0; i < n; i++ { - raw.Path[i] = int8(name[i]) - } - // length is family (uint16), name, NUL. - sl := Socklen(2) - if n > 0 { - sl += Socklen(n) + 1 - } - if raw.Path[0] == '@' { - raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - return (*syscall.RawSockaddrAny)(unsafe.Pointer(&raw)), sl, nil - - case *syscall.SockaddrLinklayer: - if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { - return nil, 0, syscall.EINVAL - } - var raw syscall.RawSockaddrLinklayer - raw.Family = syscall.AF_PACKET - raw.Protocol = sa.Protocol - raw.Ifindex = int32(sa.Ifindex) - raw.Hatype = sa.Hatype - raw.Pkttype = sa.Pkttype - raw.Halen = sa.Halen - for i := 0; i < len(sa.Addr); i++ { - raw.Addr[i] = sa.Addr[i] - } - return (*syscall.RawSockaddrAny)(unsafe.Pointer(&raw)), syscall.SizeofSockaddrLinklayer, nil - } - return nil, 0, syscall.EAFNOSUPPORT -} - -func anyToSockaddr(rsa *syscall.RawSockaddrAny) (syscall.Sockaddr, error) { - switch rsa.Addr.Family { - case syscall.AF_NETLINK: - pp := (*syscall.RawSockaddrNetlink)(unsafe.Pointer(rsa)) - sa := new(syscall.SockaddrNetlink) - sa.Family = pp.Family - sa.Pad = pp.Pad - sa.Pid = pp.Pid - sa.Groups = pp.Groups - return sa, nil - - case syscall.AF_PACKET: - pp := (*syscall.RawSockaddrLinklayer)(unsafe.Pointer(rsa)) - sa := new(syscall.SockaddrLinklayer) - sa.Protocol = pp.Protocol - sa.Ifindex = int(pp.Ifindex) - sa.Hatype = pp.Hatype - sa.Pkttype = pp.Pkttype - sa.Halen = pp.Halen - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - - case syscall.AF_UNIX: - pp := (*syscall.RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(syscall.SockaddrUnix) - if pp.Path[0] == 0 { - // "Abstract" Unix domain socket. - // Rewrite leading NUL as @ for textual display. - // (This is the standard convention.) - // Not friendly to overwrite in place, - // but the callers below don't care. - pp.Path[0] = '@' - } - - // Assume path ends at NUL. - // This is not technically the Linux semantics for - // abstract Unix domain sockets--they are supposed - // to be uninterpreted fixed-size binary blobs--but - // everyone uses this convention. - n := 0 - for n < len(pp.Path) && pp.Path[n] != 0 { - n++ - } - bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] - sa.Name = string(bytes) - return sa, nil - - case syscall.AF_INET: - pp := (*syscall.RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(syscall.SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - - case syscall.AF_INET6: - pp := (*syscall.RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(syscall.SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - } - return nil, syscall.EAFNOSUPPORT -} diff --git a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_platform.go b/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_platform.go deleted file mode 100644 index 468518c4..00000000 --- a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_platform.go +++ /dev/null @@ -1,35 +0,0 @@ -package sockaddr - -// import ( -// "syscall" -// "unsafe" -// ) - -// func sockaddrToAny(sa syscall.Sockaddr) (*syscall.RawSockaddrAny, Socklen, error) { -// if sa == nil { -// return nil, 0, syscall.EINVAL -// } - -// switch sa.(type) { -// case *syscall.SockaddrInet4: -// case *syscall.SockaddrInet6: -// case *syscall.SockaddrUnix: -// case *syscall.SockaddrDatalink: -// } -// return nil, 0, syscall.EAFNOSUPPORT -// } - -// func anyToSockaddr(rsa *syscall.RawSockaddrAny) (syscall.Sockaddr, error) { -// if rsa == nil { -// return nil, 0, syscall.EINVAL -// } - -// switch rsa.Addr.Family { -// case syscall.AF_NETLINK: -// case syscall.AF_PACKET: -// case syscall.AF_UNIX: -// case syscall.AF_INET: -// case syscall.AF_INET6: -// } -// return nil, syscall.EAFNOSUPPORT -// } diff --git a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_windows.go b/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_windows.go deleted file mode 100644 index 4858e3da..00000000 --- a/vendor/gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/sockaddr_windows.go +++ /dev/null @@ -1,80 +0,0 @@ -package sockaddr - -import ( - "syscall" - "unsafe" -) - -func sockaddrToAny(sa syscall.Sockaddr) (*syscall.RawSockaddrAny, Socklen, error) { - if sa == nil { - return nil, 0, syscall.EINVAL - } - - switch sa := sa.(type) { - case *syscall.SockaddrInet4: - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.EINVAL - } - var raw syscall.RawSockaddrInet4 - raw.Family = syscall.AF_INET - p := (*[2]byte)(unsafe.Pointer(&raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - for i := 0; i < len(sa.Addr); i++ { - raw.Addr[i] = sa.Addr[i] - } - return (*syscall.RawSockaddrAny)(unsafe.Pointer(&raw)), int32(unsafe.Sizeof(raw)), nil - - case *syscall.SockaddrInet6: - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.EINVAL - } - var raw syscall.RawSockaddrInet6 - raw.Family = syscall.AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - raw.Scope_id = sa.ZoneId - for i := 0; i < len(sa.Addr); i++ { - raw.Addr[i] = sa.Addr[i] - } - return (*syscall.RawSockaddrAny)(unsafe.Pointer(&raw)), int32(unsafe.Sizeof(raw)), nil - - case *syscall.SockaddrUnix: - return nil, 0, syscall.EWINDOWS - } - return nil, 0, syscall.EAFNOSUPPORT -} - -func anyToSockaddr(rsa *syscall.RawSockaddrAny) (syscall.Sockaddr, error) { - if rsa == nil { - return nil, 0, syscall.EINVAL - } - - switch rsa.Addr.Family { - case syscall.AF_UNIX: - return nil, syscall.EWINDOWS - - case syscall.AF_INET: - pp := (*syscall.RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(syscall.SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - - case syscall.AF_INET6: - pp := (*syscall.RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(syscall.SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - } - return nil, syscall.EAFNOSUPPORT -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/.travis.yml b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/.travis.yml deleted file mode 100644 index 0e8f3f6c..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/.travis.yml +++ /dev/null @@ -1,19 +0,0 @@ -env: - - PROTOBUF_VERSION=2.5.0 - - PROTOBUF_VERSION=2.6.1 - - PROTOBUF_VERSION=3.0.0-alpha-3 - -before_install: - - ./install-protobuf.sh - - PATH=/home/travis/bin:$PATH protoc --version - -script: - - PATH=/home/travis/bin:$PATH make all - -language: go - -go: - - 1.2.2 - - 1.3.3 - - 1.4.2 - - 1.5 diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/CONTRIBUTORS b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/CONTRIBUTORS deleted file mode 100644 index 32c30b8a..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/CONTRIBUTORS +++ /dev/null @@ -1,14 +0,0 @@ -This is a list of contributors to the GoGo protobuf repository. - -# Names should be added to this file like so: -# Name - -# Please keep the list sorted. - -Walter Schulze - -The contributors to the Go protobuf repository: - -# 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/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/LICENSE b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/LICENSE deleted file mode 100644 index 335e38e1..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/LICENSE +++ /dev/null @@ -1,36 +0,0 @@ -Extensions for Protocol Buffers to create more go like structures. - -Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -http://github.com/gogo/protobuf/gogoproto - -Go support for Protocol Buffers - Google's data interchange format - -Copyright 2010 The Go Authors. All rights reserved. -https://github.com/golang/protobuf - -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/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/Makefile b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/Makefile deleted file mode 100644 index b2562727..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/Makefile +++ /dev/null @@ -1,115 +0,0 @@ -# Extensions for Protocol Buffers to create more go like structures. -# -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -# http://github.com/gogo/protobuf/gogoproto -# -# 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. -# -# 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. - -.PHONY: nuke regenerate tests clean install gofmt vet - -all: clean install regenerate install tests errcheck vet - -install: - go install ./proto - go install ./gogoproto - go install ./jsonpb - go install ./protoc-gen-gogo - go install ./protoc-gen-gofast - go install ./protoc-gen-gogofast - go install ./protoc-gen-gogofaster - go install ./protoc-gen-gogoslick - go install ./protoc-min-version - go install ./protoc-gen-combo - -clean: - go clean ./... - -nuke: - go clean -i ./... - -gofmt: - gofmt -l -s -w . - -regenerate: - make -C protoc-gen-gogo/descriptor regenerate - make -C protoc-gen-gogo/plugin regenerate - make -C gogoproto regenerate - make -C proto/testdata regenerate - make -C jsonpb/jsonpb_test_proto regenerate - make -C test regenerate - make -C test/example regenerate - make -C test/unrecognized regenerate - make -C test/group regenerate - make -C test/unrecognizedgroup regenerate - make -C test/enumstringer regenerate - make -C test/unmarshalmerge regenerate - make -C test/moredefaults regenerate - make -C test/issue8 regenerate - make -C test/enumprefix regenerate - make -C test/packed regenerate - make -C test/tags regenerate - make -C test/oneof regenerate - make -C test/oneof3 regenerate - make -C test/theproto3 regenerate - make -C test/mapsproto2 regenerate - make -C test/issue42order regenerate - make -C proto generate-test-pbs - make -C test/importdedup regenerate - make -C test/custombytesnonstruct regenerate - make -C test/required regenerate - make -C test/casttype regenerate - make -C vanity/test regenerate - make -C test/sizeunderscore regenerate - make -C test/issue34 regenerate - make -C test/empty-issue70 regenerate - make -C test/indeximport-issue72 regenerate - make -C test/fuzztests regenerate - make -C test/oneofembed regenerate - make gofmt - -tests: - go build ./test/enumprefix - go test ./... - -vet: - go vet ./... - go tool vet --shadow . - -errcheck: - go get -u github.com/kisielk/errcheck - errcheck ./test/... - -drone: - sudo apt-get install protobuf-compiler - (cd $(GOPATH)/src/github.com/gogo/protobuf && make all) - -testall: - make -C protoc-gen-gogo/testdata test - make -C vanity/test test - make tests - -bench: - (cd test/mixbench && go build .) - (cd test/mixbench && ./mixbench) - diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/README b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/README deleted file mode 100644 index bcb93c52..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/README +++ /dev/null @@ -1,175 +0,0 @@ -GoGoProtobuf http://github.com/gogo/protobuf extends -GoProtobuf http://github.com/golang/protobuf - -Go support for Protocol Buffers - Google's data interchange format -Copyright 2010 The Go Authors. -https://github.com/golang/protobuf - -This package and the code it generates requires at least Go 1.4. - -This software implements Go bindings for protocol buffers. For -information about protocol buffers themselves, see - https://developers.google.com/protocol-buffers/ - -## Installation ## - -To use this software, you must: -- Install the standard C++ implementation of protocol buffers from - https://developers.google.com/protocol-buffers/ -- Of course, install the Go compiler and tools from - https://golang.org/ - See - https://golang.org/doc/install - for details or, if you are using gccgo, follow the instructions at - https://golang.org/doc/install/gccgo -- Grab the code from the repository and install the proto package. - The simplest way is to run - go get -u github.com/golang/protobuf/{proto,protoc-gen-go} - The compiler plugin, protoc-gen-go, will be installed in $GOBIN, - defaulting to $GOPATH/bin. It must be in your $PATH for the protocol - compiler, protoc, to find it. - -This software has two parts: a 'protocol compiler plugin' that -generates Go source files that, once compiled, can access and manage -protocol buffers; and a library that implements run-time support for -encoding (marshaling), decoding (unmarshaling), and accessing protocol -buffers. - -There is support for gRPC in Go using protocol buffers. -See the note at the bottom of this file for details. - -There are no insertion points in the plugin. - -GoGoProtobuf provides extensions for protocol buffers and GoProtobuf -see http://github.com/gogo/protobuf/gogoproto/doc.go - -## Using protocol buffers with Go ## - -Once the software is installed, there are two steps to using it. -First you must compile the protocol buffer definitions and then import -them, with the support library, into your program. - -To compile the protocol buffer definition, run protoc with the --gogo_out -parameter set to the directory you want to output the Go code to. - - protoc --gogo_out=. *.proto - -The generated files will be suffixed .pb.go. See the Test code below -for an example using such a file. - -The package comment for the proto library contains text describing -the interface provided in Go for protocol buffers. Here is an edited -version. - -If you are using any gogo.proto extensions you will need to specify the -proto_path to include the descriptor.proto and gogo.proto. -gogo.proto is located in github.com/gogo/protobuf/gogoproto -This should be fine, since your import is the same. -descriptor.proto is located in either github.com/gogo/protobuf/protobuf -or code.google.com/p/protobuf/trunk/src/ -Its import is google/protobuf/descriptor.proto so it might need some help. - - protoc --gogo_out=. -I=.:github.com/gogo/protobuf/protobuf *.proto - -========== - -The proto package converts data structures to and from the -wire format of protocol buffers. It works in concert with the -Go source code generated for .proto files by the protocol compiler. - -A summary of the properties of the protocol buffer interface -for a protocol buffer variable v: - - - Names are turned from camel_case to CamelCase for export. - - There are no methods on v to set fields; just treat - them as structure fields. - - There are getters that return a field's value if set, - and return the field's default value if unset. - The getters work even if the receiver is a nil message. - - The zero value for a struct is its correct initialization state. - All desired fields must be set before marshaling. - - A Reset() method will restore a protobuf struct to its zero state. - - Non-repeated fields are pointers to the values; nil means unset. - That is, optional or required field int32 f becomes F *int32. - - Repeated fields are slices. - - Helper functions are available to aid the setting of fields. - Helpers for getting values are superseded by the - GetFoo methods and their use is deprecated. - msg.Foo = proto.String("hello") // set field - - Constants are defined to hold the default values of all fields that - have them. They have the form Default_StructName_FieldName. - Because the getter methods handle defaulted values, - direct use of these constants should be rare. - - Enums are given type names and maps from names to values. - Enum values are prefixed with the enum's type name. Enum types have - a String method, and a Enum method to assist in message construction. - - Nested groups and enums have type names prefixed with the name of - the surrounding message type. - - Extensions are given descriptor names that start with E_, - followed by an underscore-delimited list of the nested messages - that contain it (if any) followed by the CamelCased name of the - extension field itself. HasExtension, ClearExtension, GetExtension - and SetExtension are functions for manipulating extensions. - - Oneof field sets are given a single field in their message, - with distinguished wrapper types for each possible field value. - - Marshal and Unmarshal are functions to encode and decode the wire format. - -Consider file test.proto, containing - - package example; - - enum FOO { X = 17; }; - - message Test { - required string label = 1; - optional int32 type = 2 [default=77]; - repeated int64 reps = 3; - optional group OptionalGroup = 4 { - required string RequiredField = 5; - } - } - -To create and play with a Test object from the example package, - - package main - - import ( - "log" - - "github.com/gogo/protobuf/proto" - "path/to/example" - ) - - func main() { - test := &example.Test { - Label: proto.String("hello"), - Type: proto.Int32(17), - Optionalgroup: &example.Test_OptionalGroup { - RequiredField: proto.String("good bye"), - }, - } - data, err := proto.Marshal(test) - if err != nil { - log.Fatal("marshaling error: ", err) - } - newTest := &example.Test{} - err = proto.Unmarshal(data, newTest) - if err != nil { - log.Fatal("unmarshaling error: ", err) - } - // Now test and newTest contain the same data. - if test.GetLabel() != newTest.GetLabel() { - log.Fatalf("data mismatch %q != %q", test.GetLabel(), newTest.GetLabel()) - } - // etc. - } - - -gRPC Support -============ -If a proto file specifies RPC services, protoc-gen-go can be instructed to -generate code compatible with gRPC (http://www.grpc.io/). To do this, pass -the `plugins` parameter to protoc-gen-go; the usual way is to insert it into -the --go_out argument to protoc: - - protoc --gogo_out=plugins=grpc:. *.proto diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/Readme.md b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/Readme.md deleted file mode 100644 index 094e7439..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/Readme.md +++ /dev/null @@ -1,52 +0,0 @@ -# Protocol Buffers for Go with Gadgets - -Drone.io Basic Tests: [![Build Status](https://drone.io/github.com/gogo/protobuf/status.png)](https://drone.io/github.com/gogo/protobuf/latest) - -Travis CI Matrix Builds: [![Build Status](https://travis-ci.org/gogo/protobuf.svg?branch=master)](https://travis-ci.org/gogo/protobuf) - -### Getting Started (Give me the speed I don't care about the rest) - -Install the protoc-gen-gofast binary - - go get github.com/gogo/protobuf/protoc-gen-gofast - -Use it to generate faster marshaling and unmarshaling go code for you protocol buffers. - - protoc --gofast_out=. myproto.proto - -### Getting started (I have heard about fields without pointers and more code generation) - -Other binaries are also included: - - protoc-gen-gogofast (same as gofast, but imports gogoprotobuf) - protoc-gen-gogofaster (same as gogofast, without XXX_unrecognized, less pointer fields) - protoc-gen-gogoslick (same as gogofaster, but with generated string, gostring and equal methods) - -### Getting started (I want more customization power over fields, speed, other serialization formats and tests, etc.) - -Please visit the [homepage](http://gogo.github.io) for more documentation. - -### Installation - -To install it, you must first have Go (at least version 1.2.2) installed (see [http://golang.org/doc/install](http://golang.org/doc/install)). Go 1.2.2, 1.3.3, 1.4.2 and 1.5 are continiuosly tested. - -Next, install the standard protocol buffer implementation from [https://github.com/google/protobuf](https://github.com/google/protobuf). -Most versions from 2.3.1 should not give any problems, but 2.5.0, 2.6.1 and 3 alpha are continiously tested. - -Finally run: - - go get github.com/gogo/protobuf/proto - go get github.com/gogo/protobuf/protoc-gen-gogo - go get github.com/gogo/protobuf/gogoproto - -### Proto3 - -Proto3 is supported, but most of the new native types are not supported yet. -[See Proto3 Issue](https://github.com/gogo/protobuf/issues/57) for more details. - -### GRPC - -It works the same as golang/protobuf, simply specify the plugin. -Here is an example using gofast: - - protoc --gofast_out=plugins=grpc:. my.proto diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/codec/codec.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/codec/codec.go deleted file mode 100644 index 3d97ab6a..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/codec/codec.go +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package codec - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -) - -type Codec interface { - Marshal(v interface{}) ([]byte, error) - Unmarshal(data []byte, v interface{}) error - String() string -} - -type marshaler interface { - MarshalTo(data []byte) (n int, err error) - Size() (n int) -} - -type codec struct { - buf []byte -} - -func (this *codec) String() string { - return "proto" -} - -func New(size int) Codec { - return &codec{make([]byte, size)} -} - -func (this *codec) Marshal(v interface{}) ([]byte, error) { - if m, ok := v.(marshaler); ok { - n := m.Size() - if n > len(this.buf) { - this.buf = make([]byte, n) - } - _, err := m.MarshalTo(this.buf) - if err != nil { - return nil, err - } - return this.buf[:n], nil - } - return proto.Marshal(v.(proto.Message)) -} - -func (this *codec) Unmarshal(data []byte, v interface{}) error { - return proto.Unmarshal(data, v.(proto.Message)) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/Makefile b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/Makefile deleted file mode 100644 index 557f2949..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -# Extensions for Protocol Buffers to create more go like structures. -# -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -# http://github.com/gogo/protobuf/gogoproto -# -# 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. -# -# 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. - -regenerate: - protoc --gogo_out=Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:. --proto_path=../../../../:../protobuf/:. *.proto - -restore: - cp gogo.pb.golden gogo.pb.go - -preserve: - cp gogo.pb.go gogo.pb.golden diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/doc.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/doc.go deleted file mode 100644 index fe33f4ba..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/doc.go +++ /dev/null @@ -1,166 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -/* -Package gogoproto provides extensions for protocol buffers to achieve: - - - fast marshalling and unmarshalling. - - peace of mind by optionally generating test and benchmark code. - - more canonical Go structures. - - less typing by optionally generating extra helper code. - - goprotobuf compatibility - -More Canonical Go Structures - -A lot of time working with a goprotobuf struct will lead you to a place where you create another struct that is easier to work with and then have a function to copy the values between the two structs. -You might also find that basic structs that started their life as part of an API need to be sent over the wire. With gob, you could just send it. With goprotobuf, you need to make a parallel struct. -Gogoprotobuf tries to fix these problems with the nullable, embed, customtype and customname field extensions. - - - nullable, if false, a field is generated without a pointer (see warning below). - - embed, if true, the field is generated as an embedded field. - - customtype, It works with the Marshal and Unmarshal methods, to allow you to have your own types in your struct, but marshal to bytes. For example, custom.Uuid or custom.Fixed128 - - customname (beta), Changes the generated fieldname. This is especially useful when generated methods conflict with fieldnames. - - casttype (beta), Changes the generated fieldtype. All generated code assumes that this type is castable to the protocol buffer field type. It does not work for maps, structs or enums. - -Warning about nullable: According to the Protocol Buffer specification, you should be able to tell whether a field is set or unset. With the option nullable=false this feature is lost, since your non-nullable fields will always be set. It can be seen as a layer on top of Protocol Buffers, where before and after marshalling all non-nullable fields are set and they cannot be unset. - -Let us look at: - - github.com/gogo/protobuf/test/example/example.proto - -for a quicker overview. - -The following message: - - package test; - - import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - - message A { - optional string Description = 1 [(gogoproto.nullable) = false]; - optional int64 Number = 2 [(gogoproto.nullable) = false]; - optional bytes Id = 3 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uuid", (gogoproto.nullable) = false]; - } - -Will generate a go struct which looks a lot like this: - - type A struct { - Description string - Number int64 - Id github_com_gogo_protobuf_test_custom.Uuid - } - -You will see there are no pointers, since all fields are non-nullable. -You will also see a custom type which marshals to a string. -Be warned it is your responsibility to test your custom types thoroughly. -You should think of every possible empty and nil case for your marshaling, unmarshaling and size methods. - -Next we will embed the message A in message B. - - message B { - optional A A = 1 [(gogoproto.nullable) = false, (gogoproto.embed) = true]; - repeated bytes G = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; - } - -See below that A is embedded in B. - - type B struct { - A - G []github_com_gogo_protobuf_test_custom.Uint128 - } - -Also see the repeated custom type. - - type Uint128 [2]uint64 - -Next we will create a custom name for one of our fields. - - message C { - optional int64 size = 1 [(gogoproto.customname) = "MySize"]; - } - -See below that the field's name is MySize and not Size. - - type C struct { - MySize *int64 - } - -The is useful when having a protocol buffer message with a field name which conflicts with a generated method. -As an example, having a field name size and using the sizer plugin to generate a Size method will cause a go compiler error. -Using customname you can fix this error without changing the field name. -This is typically useful when working with a protocol buffer that was designed before these methods and/or the go language were avialable. - -Gogoprotobuf also has some more subtle changes, these could be changed back: - - - the generated package name for imports do not have the extra /filename.pb, - but are actually the imports specified in the .proto file. - -Gogoprotobuf also has lost some features which should be brought back with time: - - - Marshalling and unmarshalling with reflect and without the unsafe package, - this requires work in pointer_reflect.go - -Why does nullable break protocol buffer specifications: - -The protocol buffer specification states, somewhere, that you should be able to tell whether a -field is set or unset. With the option nullable=false this feature is lost, -since your non-nullable fields will always be set. It can be seen as a layer on top of -protocol buffers, where before and after marshalling all non-nullable fields are set -and they cannot be unset. - -Goprotobuf Compatibility: - -Gogoprotobuf is compatible with Goprotobuf, because it is compatible with protocol buffers. -Gogoprotobuf generates the same code as goprotobuf if no extensions are used. -The enumprefix, getters and stringer extensions can be used to remove some of the unnecessary code generated by goprotobuf: - - - gogoproto_import, if false, the generated code imports github.com/golang/protobuf/proto instead of github.com/gogo/protobuf/proto. - - goproto_enum_prefix, if false, generates the enum constant names without the messagetype prefix - - goproto_enum_stringer (experimental), if false, the enum is generated without the default string method, this is useful for rather using enum_stringer, or allowing you to write your own string method. - - goproto_getters, if false, the message is generated without get methods, this is useful when you would rather want to use face - - goproto_stringer, if false, the message is generated without the default string method, this is useful for rather using stringer, or allowing you to write your own string method. - - goproto_extensions_map (beta), if false, the extensions field is generated as type []byte instead of type map[int32]proto.Extension - - goproto_unrecognized (beta), if false, XXX_unrecognized field is not generated. This is useful in conjunction with gogoproto.nullable=false, to generate structures completely devoid of pointers and reduce GC pressure at the cost of losing information about unrecognized fields. - -Less Typing and Peace of Mind is explained in their specific plugin folders godoc: - - - github.com/gogo/protobuf/plugin/ - -If you do not use any of these extension the code that is generated -will be the same as if goprotobuf has generated it. - -The most complete way to see examples is to look at - - github.com/gogo/protobuf/test/thetest.proto - -Gogoprototest is a seperate project, -because we want to keep gogoprotobuf independant of goprotobuf, -but we still want to test it thoroughly. - -*/ -package gogoproto diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/gogo.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/gogo.pb.go deleted file mode 100644 index 31ed0ead..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/gogo.pb.go +++ /dev/null @@ -1,494 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: gogo.proto -// DO NOT EDIT! - -/* -Package gogoproto is a generated protocol buffer package. - -It is generated from these files: - gogo.proto - -It has these top-level messages: -*/ -package gogoproto - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" -import google_protobuf "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -var E_GoprotoEnumPrefix = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.EnumOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 62001, - Name: "gogoproto.goproto_enum_prefix", - Tag: "varint,62001,opt,name=goproto_enum_prefix", -} - -var E_GoprotoEnumStringer = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.EnumOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 62021, - Name: "gogoproto.goproto_enum_stringer", - Tag: "varint,62021,opt,name=goproto_enum_stringer", -} - -var E_EnumStringer = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.EnumOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 62022, - Name: "gogoproto.enum_stringer", - Tag: "varint,62022,opt,name=enum_stringer", -} - -var E_GoprotoGettersAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63001, - Name: "gogoproto.goproto_getters_all", - Tag: "varint,63001,opt,name=goproto_getters_all", -} - -var E_GoprotoEnumPrefixAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63002, - Name: "gogoproto.goproto_enum_prefix_all", - Tag: "varint,63002,opt,name=goproto_enum_prefix_all", -} - -var E_GoprotoStringerAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63003, - Name: "gogoproto.goproto_stringer_all", - Tag: "varint,63003,opt,name=goproto_stringer_all", -} - -var E_VerboseEqualAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63004, - Name: "gogoproto.verbose_equal_all", - Tag: "varint,63004,opt,name=verbose_equal_all", -} - -var E_FaceAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63005, - Name: "gogoproto.face_all", - Tag: "varint,63005,opt,name=face_all", -} - -var E_GostringAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63006, - Name: "gogoproto.gostring_all", - Tag: "varint,63006,opt,name=gostring_all", -} - -var E_PopulateAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63007, - Name: "gogoproto.populate_all", - Tag: "varint,63007,opt,name=populate_all", -} - -var E_StringerAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63008, - Name: "gogoproto.stringer_all", - Tag: "varint,63008,opt,name=stringer_all", -} - -var E_OnlyoneAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63009, - Name: "gogoproto.onlyone_all", - Tag: "varint,63009,opt,name=onlyone_all", -} - -var E_EqualAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63013, - Name: "gogoproto.equal_all", - Tag: "varint,63013,opt,name=equal_all", -} - -var E_DescriptionAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63014, - Name: "gogoproto.description_all", - Tag: "varint,63014,opt,name=description_all", -} - -var E_TestgenAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63015, - Name: "gogoproto.testgen_all", - Tag: "varint,63015,opt,name=testgen_all", -} - -var E_BenchgenAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63016, - Name: "gogoproto.benchgen_all", - Tag: "varint,63016,opt,name=benchgen_all", -} - -var E_MarshalerAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63017, - Name: "gogoproto.marshaler_all", - Tag: "varint,63017,opt,name=marshaler_all", -} - -var E_UnmarshalerAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63018, - Name: "gogoproto.unmarshaler_all", - Tag: "varint,63018,opt,name=unmarshaler_all", -} - -var E_SizerAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63020, - Name: "gogoproto.sizer_all", - Tag: "varint,63020,opt,name=sizer_all", -} - -var E_GoprotoEnumStringerAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63021, - Name: "gogoproto.goproto_enum_stringer_all", - Tag: "varint,63021,opt,name=goproto_enum_stringer_all", -} - -var E_EnumStringerAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63022, - Name: "gogoproto.enum_stringer_all", - Tag: "varint,63022,opt,name=enum_stringer_all", -} - -var E_UnsafeMarshalerAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63023, - Name: "gogoproto.unsafe_marshaler_all", - Tag: "varint,63023,opt,name=unsafe_marshaler_all", -} - -var E_UnsafeUnmarshalerAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63024, - Name: "gogoproto.unsafe_unmarshaler_all", - Tag: "varint,63024,opt,name=unsafe_unmarshaler_all", -} - -var E_GoprotoExtensionsMapAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63025, - Name: "gogoproto.goproto_extensions_map_all", - Tag: "varint,63025,opt,name=goproto_extensions_map_all", -} - -var E_GoprotoUnrecognizedAll = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63026, - Name: "gogoproto.goproto_unrecognized_all", - Tag: "varint,63026,opt,name=goproto_unrecognized_all", -} - -var E_GogoprotoImport = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FileOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 63027, - Name: "gogoproto.gogoproto_import", - Tag: "varint,63027,opt,name=gogoproto_import", -} - -var E_GoprotoGetters = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64001, - Name: "gogoproto.goproto_getters", - Tag: "varint,64001,opt,name=goproto_getters", -} - -var E_GoprotoStringer = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64003, - Name: "gogoproto.goproto_stringer", - Tag: "varint,64003,opt,name=goproto_stringer", -} - -var E_VerboseEqual = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64004, - Name: "gogoproto.verbose_equal", - Tag: "varint,64004,opt,name=verbose_equal", -} - -var E_Face = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64005, - Name: "gogoproto.face", - Tag: "varint,64005,opt,name=face", -} - -var E_Gostring = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64006, - Name: "gogoproto.gostring", - Tag: "varint,64006,opt,name=gostring", -} - -var E_Populate = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64007, - Name: "gogoproto.populate", - Tag: "varint,64007,opt,name=populate", -} - -var E_Stringer = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 67008, - Name: "gogoproto.stringer", - Tag: "varint,67008,opt,name=stringer", -} - -var E_Onlyone = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64009, - Name: "gogoproto.onlyone", - Tag: "varint,64009,opt,name=onlyone", -} - -var E_Equal = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64013, - Name: "gogoproto.equal", - Tag: "varint,64013,opt,name=equal", -} - -var E_Description = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64014, - Name: "gogoproto.description", - Tag: "varint,64014,opt,name=description", -} - -var E_Testgen = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64015, - Name: "gogoproto.testgen", - Tag: "varint,64015,opt,name=testgen", -} - -var E_Benchgen = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64016, - Name: "gogoproto.benchgen", - Tag: "varint,64016,opt,name=benchgen", -} - -var E_Marshaler = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64017, - Name: "gogoproto.marshaler", - Tag: "varint,64017,opt,name=marshaler", -} - -var E_Unmarshaler = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64018, - Name: "gogoproto.unmarshaler", - Tag: "varint,64018,opt,name=unmarshaler", -} - -var E_Sizer = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64020, - Name: "gogoproto.sizer", - Tag: "varint,64020,opt,name=sizer", -} - -var E_UnsafeMarshaler = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64023, - Name: "gogoproto.unsafe_marshaler", - Tag: "varint,64023,opt,name=unsafe_marshaler", -} - -var E_UnsafeUnmarshaler = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64024, - Name: "gogoproto.unsafe_unmarshaler", - Tag: "varint,64024,opt,name=unsafe_unmarshaler", -} - -var E_GoprotoExtensionsMap = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64025, - Name: "gogoproto.goproto_extensions_map", - Tag: "varint,64025,opt,name=goproto_extensions_map", -} - -var E_GoprotoUnrecognized = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 64026, - Name: "gogoproto.goproto_unrecognized", - Tag: "varint,64026,opt,name=goproto_unrecognized", -} - -var E_Nullable = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FieldOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 65001, - Name: "gogoproto.nullable", - Tag: "varint,65001,opt,name=nullable", -} - -var E_Embed = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FieldOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 65002, - Name: "gogoproto.embed", - Tag: "varint,65002,opt,name=embed", -} - -var E_Customtype = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FieldOptions)(nil), - ExtensionType: (*string)(nil), - Field: 65003, - Name: "gogoproto.customtype", - Tag: "bytes,65003,opt,name=customtype", -} - -var E_Customname = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FieldOptions)(nil), - ExtensionType: (*string)(nil), - Field: 65004, - Name: "gogoproto.customname", - Tag: "bytes,65004,opt,name=customname", -} - -var E_Jsontag = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FieldOptions)(nil), - ExtensionType: (*string)(nil), - Field: 65005, - Name: "gogoproto.jsontag", - Tag: "bytes,65005,opt,name=jsontag", -} - -var E_Moretags = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FieldOptions)(nil), - ExtensionType: (*string)(nil), - Field: 65006, - Name: "gogoproto.moretags", - Tag: "bytes,65006,opt,name=moretags", -} - -var E_Casttype = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FieldOptions)(nil), - ExtensionType: (*string)(nil), - Field: 65007, - Name: "gogoproto.casttype", - Tag: "bytes,65007,opt,name=casttype", -} - -func init() { - proto.RegisterExtension(E_GoprotoEnumPrefix) - proto.RegisterExtension(E_GoprotoEnumStringer) - proto.RegisterExtension(E_EnumStringer) - proto.RegisterExtension(E_GoprotoGettersAll) - proto.RegisterExtension(E_GoprotoEnumPrefixAll) - proto.RegisterExtension(E_GoprotoStringerAll) - proto.RegisterExtension(E_VerboseEqualAll) - proto.RegisterExtension(E_FaceAll) - proto.RegisterExtension(E_GostringAll) - proto.RegisterExtension(E_PopulateAll) - proto.RegisterExtension(E_StringerAll) - proto.RegisterExtension(E_OnlyoneAll) - proto.RegisterExtension(E_EqualAll) - proto.RegisterExtension(E_DescriptionAll) - proto.RegisterExtension(E_TestgenAll) - proto.RegisterExtension(E_BenchgenAll) - proto.RegisterExtension(E_MarshalerAll) - proto.RegisterExtension(E_UnmarshalerAll) - proto.RegisterExtension(E_SizerAll) - proto.RegisterExtension(E_GoprotoEnumStringerAll) - proto.RegisterExtension(E_EnumStringerAll) - proto.RegisterExtension(E_UnsafeMarshalerAll) - proto.RegisterExtension(E_UnsafeUnmarshalerAll) - proto.RegisterExtension(E_GoprotoExtensionsMapAll) - proto.RegisterExtension(E_GoprotoUnrecognizedAll) - proto.RegisterExtension(E_GogoprotoImport) - proto.RegisterExtension(E_GoprotoGetters) - proto.RegisterExtension(E_GoprotoStringer) - proto.RegisterExtension(E_VerboseEqual) - proto.RegisterExtension(E_Face) - proto.RegisterExtension(E_Gostring) - proto.RegisterExtension(E_Populate) - proto.RegisterExtension(E_Stringer) - proto.RegisterExtension(E_Onlyone) - proto.RegisterExtension(E_Equal) - proto.RegisterExtension(E_Description) - proto.RegisterExtension(E_Testgen) - proto.RegisterExtension(E_Benchgen) - proto.RegisterExtension(E_Marshaler) - proto.RegisterExtension(E_Unmarshaler) - proto.RegisterExtension(E_Sizer) - proto.RegisterExtension(E_UnsafeMarshaler) - proto.RegisterExtension(E_UnsafeUnmarshaler) - proto.RegisterExtension(E_GoprotoExtensionsMap) - proto.RegisterExtension(E_GoprotoUnrecognized) - proto.RegisterExtension(E_Nullable) - proto.RegisterExtension(E_Embed) - proto.RegisterExtension(E_Customtype) - proto.RegisterExtension(E_Customname) - proto.RegisterExtension(E_Jsontag) - proto.RegisterExtension(E_Moretags) - proto.RegisterExtension(E_Casttype) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/gogo.pb.golden b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/gogo.pb.golden deleted file mode 100644 index f6502e4b..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/gogo.pb.golden +++ /dev/null @@ -1,45 +0,0 @@ -// Code generated by protoc-gen-go. -// source: gogo.proto -// DO NOT EDIT! - -package gogoproto - -import proto "github.com/gogo/protobuf/proto" -import json "encoding/json" -import math "math" -import google_protobuf "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" - -// Reference proto, json, and math imports to suppress error if they are not otherwise used. -var _ = proto.Marshal -var _ = &json.SyntaxError{} -var _ = math.Inf - -var E_Nullable = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FieldOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 51235, - Name: "gogoproto.nullable", - Tag: "varint,51235,opt,name=nullable", -} - -var E_Embed = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FieldOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 51236, - Name: "gogoproto.embed", - Tag: "varint,51236,opt,name=embed", -} - -var E_Customtype = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf.FieldOptions)(nil), - ExtensionType: (*string)(nil), - Field: 51237, - Name: "gogoproto.customtype", - Tag: "bytes,51237,opt,name=customtype", -} - -func init() { - proto.RegisterExtension(E_Nullable) - proto.RegisterExtension(E_Embed) - proto.RegisterExtension(E_Customtype) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/gogo.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/gogo.proto deleted file mode 100644 index 54b7d18a..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/gogo.proto +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -syntax = "proto2"; -package gogoproto; - -import "google/protobuf/descriptor.proto"; - -option java_package = "com.google.protobuf"; -option java_outer_classname = "GoGoProtos"; - -extend google.protobuf.EnumOptions { - optional bool goproto_enum_prefix = 62001; - optional bool goproto_enum_stringer = 62021; - optional bool enum_stringer = 62022; -} - -extend google.protobuf.FileOptions { - optional bool goproto_getters_all = 63001; - optional bool goproto_enum_prefix_all = 63002; - optional bool goproto_stringer_all = 63003; - optional bool verbose_equal_all = 63004; - optional bool face_all = 63005; - optional bool gostring_all = 63006; - optional bool populate_all = 63007; - optional bool stringer_all = 63008; - optional bool onlyone_all = 63009; - - optional bool equal_all = 63013; - optional bool description_all = 63014; - optional bool testgen_all = 63015; - optional bool benchgen_all = 63016; - optional bool marshaler_all = 63017; - optional bool unmarshaler_all = 63018; - - optional bool sizer_all = 63020; - - optional bool goproto_enum_stringer_all = 63021; - optional bool enum_stringer_all = 63022; - - optional bool unsafe_marshaler_all = 63023; - optional bool unsafe_unmarshaler_all = 63024; - - optional bool goproto_extensions_map_all = 63025; - optional bool goproto_unrecognized_all = 63026; - optional bool gogoproto_import = 63027; -} - -extend google.protobuf.MessageOptions { - optional bool goproto_getters = 64001; - optional bool goproto_stringer = 64003; - optional bool verbose_equal = 64004; - optional bool face = 64005; - optional bool gostring = 64006; - optional bool populate = 64007; - optional bool stringer = 67008; - optional bool onlyone = 64009; - - optional bool equal = 64013; - optional bool description = 64014; - optional bool testgen = 64015; - optional bool benchgen = 64016; - optional bool marshaler = 64017; - optional bool unmarshaler = 64018; - - optional bool sizer = 64020; - - optional bool unsafe_marshaler = 64023; - optional bool unsafe_unmarshaler = 64024; - - optional bool goproto_extensions_map = 64025; - optional bool goproto_unrecognized = 64026; -} - -extend google.protobuf.FieldOptions { - optional bool nullable = 65001; - optional bool embed = 65002; - optional string customtype = 65003; - optional string customname = 65004; - optional string jsontag = 65005; - optional string moretags = 65006; - optional string casttype = 65007; -} - diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/helper.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/helper.go deleted file mode 100644 index 9e754b45..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto/helper.go +++ /dev/null @@ -1,213 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -package gogoproto - -import google_protobuf "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - -func IsEmbed(field *google_protobuf.FieldDescriptorProto) bool { - return proto.GetBoolExtension(field.Options, E_Embed, false) -} - -func IsNullable(field *google_protobuf.FieldDescriptorProto) bool { - return proto.GetBoolExtension(field.Options, E_Nullable, true) -} - -func IsCustomType(field *google_protobuf.FieldDescriptorProto) bool { - typ := GetCustomType(field) - if len(typ) > 0 { - return true - } - return false -} - -func IsCastType(field *google_protobuf.FieldDescriptorProto) bool { - typ := GetCastType(field) - if len(typ) > 0 { - return true - } - return false -} - -func GetCustomType(field *google_protobuf.FieldDescriptorProto) string { - if field.Options != nil { - v, err := proto.GetExtension(field.Options, E_Customtype) - if err == nil && v.(*string) != nil { - return *(v.(*string)) - } - } - return "" -} - -func GetCastType(field *google_protobuf.FieldDescriptorProto) string { - if field.Options != nil { - v, err := proto.GetExtension(field.Options, E_Casttype) - if err == nil && v.(*string) != nil { - return *(v.(*string)) - } - } - return "" -} - -func IsCustomName(field *google_protobuf.FieldDescriptorProto) bool { - name := GetCustomName(field) - if len(name) > 0 { - return true - } - return false -} - -func GetCustomName(field *google_protobuf.FieldDescriptorProto) string { - if field.Options != nil { - v, err := proto.GetExtension(field.Options, E_Customname) - if err == nil && v.(*string) != nil { - return *(v.(*string)) - } - } - return "" -} - -func GetJsonTag(field *google_protobuf.FieldDescriptorProto) *string { - if field.Options != nil { - v, err := proto.GetExtension(field.Options, E_Jsontag) - if err == nil && v.(*string) != nil { - return (v.(*string)) - } - } - return nil -} - -func GetMoreTags(field *google_protobuf.FieldDescriptorProto) *string { - if field.Options != nil { - v, err := proto.GetExtension(field.Options, E_Moretags) - if err == nil && v.(*string) != nil { - return (v.(*string)) - } - } - return nil -} - -type EnableFunc func(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool - -func EnabledGoEnumPrefix(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool { - return proto.GetBoolExtension(enum.Options, E_GoprotoEnumPrefix, proto.GetBoolExtension(file.Options, E_GoprotoEnumPrefixAll, true)) -} - -func EnabledGoStringer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_GoprotoStringer, proto.GetBoolExtension(file.Options, E_GoprotoStringerAll, true)) -} - -func HasGoGetters(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_GoprotoGetters, proto.GetBoolExtension(file.Options, E_GoprotoGettersAll, true)) -} - -func IsUnion(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_Onlyone, proto.GetBoolExtension(file.Options, E_OnlyoneAll, false)) -} - -func HasGoString(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_Gostring, proto.GetBoolExtension(file.Options, E_GostringAll, false)) -} - -func HasEqual(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_Equal, proto.GetBoolExtension(file.Options, E_EqualAll, false)) -} - -func HasVerboseEqual(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_VerboseEqual, proto.GetBoolExtension(file.Options, E_VerboseEqualAll, false)) -} - -func IsStringer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_Stringer, proto.GetBoolExtension(file.Options, E_StringerAll, false)) -} - -func IsFace(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_Face, proto.GetBoolExtension(file.Options, E_FaceAll, false)) -} - -func HasDescription(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_Description, proto.GetBoolExtension(file.Options, E_DescriptionAll, false)) -} - -func HasPopulate(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_Populate, proto.GetBoolExtension(file.Options, E_PopulateAll, false)) -} - -func HasTestGen(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_Testgen, proto.GetBoolExtension(file.Options, E_TestgenAll, false)) -} - -func HasBenchGen(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_Benchgen, proto.GetBoolExtension(file.Options, E_BenchgenAll, false)) -} - -func IsMarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_Marshaler, proto.GetBoolExtension(file.Options, E_MarshalerAll, false)) -} - -func IsUnmarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_Unmarshaler, proto.GetBoolExtension(file.Options, E_UnmarshalerAll, false)) -} - -func IsSizer(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_Sizer, proto.GetBoolExtension(file.Options, E_SizerAll, false)) -} - -func IsGoEnumStringer(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool { - return proto.GetBoolExtension(enum.Options, E_GoprotoEnumStringer, proto.GetBoolExtension(file.Options, E_GoprotoEnumStringerAll, true)) -} - -func IsEnumStringer(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool { - return proto.GetBoolExtension(enum.Options, E_EnumStringer, proto.GetBoolExtension(file.Options, E_EnumStringerAll, false)) -} - -func IsUnsafeMarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_UnsafeMarshaler, proto.GetBoolExtension(file.Options, E_UnsafeMarshalerAll, false)) -} - -func IsUnsafeUnmarshaler(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_UnsafeUnmarshaler, proto.GetBoolExtension(file.Options, E_UnsafeUnmarshalerAll, false)) -} - -func HasExtensionsMap(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - return proto.GetBoolExtension(message.Options, E_GoprotoExtensionsMap, proto.GetBoolExtension(file.Options, E_GoprotoExtensionsMapAll, true)) -} - -func HasUnrecognized(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { - if IsProto3(file) { - return false - } - return proto.GetBoolExtension(message.Options, E_GoprotoUnrecognized, proto.GetBoolExtension(file.Options, E_GoprotoUnrecognizedAll, true)) -} - -func IsProto3(file *google_protobuf.FileDescriptorProto) bool { - return file.GetSyntax() == "proto3" -} - -func ImportsGoGoProto(file *google_protobuf.FileDescriptorProto) bool { - return proto.GetBoolExtension(file.Options, E_GogoprotoImport, true) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/install-protobuf.sh b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/install-protobuf.sh deleted file mode 100644 index be08aa2a..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/install-protobuf.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -die() { - echo "$@" >&2 - exit 1 -} - -case "$PROTOBUF_VERSION" in -2*) - basename=protobuf-$PROTOBUF_VERSION - ;; -3*) - basename=protobuf-cpp-$PROTOBUF_VERSION - ;; -*) - die "unknown protobuf version: $PROTOBUF_VERSION" - ;; -esac - -wget https://github.com/google/protobuf/releases/download/v$PROTOBUF_VERSION/$basename.tar.gz -tar xzf $basename.tar.gz - -cd protobuf-$PROTOBUF_VERSION - -./configure --prefix=/home/travis && make -j2 && make install diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/full.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/full.go deleted file mode 100644 index 5cccfbc9..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/full.go +++ /dev/null @@ -1,96 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package io - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - "io" -) - -func NewFullWriter(w io.Writer) WriteCloser { - return &fullWriter{w, nil} -} - -type fullWriter struct { - w io.Writer - buffer []byte -} - -func (this *fullWriter) WriteMsg(msg proto.Message) (err error) { - var data []byte - if m, ok := msg.(marshaler); ok { - n := m.Size() - if n >= len(this.buffer) { - this.buffer = make([]byte, n) - } - _, err = m.MarshalTo(this.buffer) - if err != nil { - return err - } - data = this.buffer[:n] - } else { - data, err = proto.Marshal(msg) - if err != nil { - return err - } - } - _, err = this.w.Write(data) - return err -} - -func (this *fullWriter) Close() error { - if closer, ok := this.w.(io.Closer); ok { - return closer.Close() - } - return nil -} - -type fullReader struct { - r io.Reader - buf []byte -} - -func NewFullReader(r io.Reader, maxSize int) ReadCloser { - return &fullReader{r, make([]byte, maxSize)} -} - -func (this *fullReader) ReadMsg(msg proto.Message) error { - length, err := this.r.Read(this.buf) - if err != nil { - return err - } - return proto.Unmarshal(this.buf[:length], msg) -} - -func (this *fullReader) Close() error { - if closer, ok := this.r.(io.Closer); ok { - return closer.Close() - } - return nil -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/io.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/io.go deleted file mode 100644 index 341eb8c7..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/io.go +++ /dev/null @@ -1,57 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package io - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - "io" -) - -type Writer interface { - WriteMsg(proto.Message) error -} - -type WriteCloser interface { - Writer - io.Closer -} - -type Reader interface { - ReadMsg(msg proto.Message) error -} - -type ReadCloser interface { - Reader - io.Closer -} - -type marshaler interface { - MarshalTo(data []byte) (n int, err error) - Size() (n int) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/uint32.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/uint32.go deleted file mode 100644 index 012c34a9..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/uint32.go +++ /dev/null @@ -1,120 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package io - -import ( - "encoding/binary" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - "io" -) - -func NewUint32DelimitedWriter(w io.Writer, byteOrder binary.ByteOrder) WriteCloser { - return &uint32Writer{w, byteOrder, nil} -} - -func NewSizeUint32DelimitedWriter(w io.Writer, byteOrder binary.ByteOrder, size int) WriteCloser { - return &uint32Writer{w, byteOrder, make([]byte, size)} -} - -type uint32Writer struct { - w io.Writer - byteOrder binary.ByteOrder - buffer []byte -} - -func (this *uint32Writer) WriteMsg(msg proto.Message) (err error) { - var data []byte - if m, ok := msg.(marshaler); ok { - n := m.Size() - if n >= len(this.buffer) { - this.buffer = make([]byte, n) - } - _, err = m.MarshalTo(this.buffer) - if err != nil { - return err - } - data = this.buffer[:n] - } else { - data, err = proto.Marshal(msg) - if err != nil { - return err - } - } - length := uint32(len(data)) - if err := binary.Write(this.w, this.byteOrder, &length); err != nil { - return err - } - _, err = this.w.Write(data) - return err -} - -func (this *uint32Writer) Close() error { - if closer, ok := this.w.(io.Closer); ok { - return closer.Close() - } - return nil -} - -type uint32Reader struct { - r io.Reader - byteOrder binary.ByteOrder - lenBuf []byte - buf []byte - maxSize int -} - -func NewUint32DelimitedReader(r io.Reader, byteOrder binary.ByteOrder, maxSize int) ReadCloser { - return &uint32Reader{r, byteOrder, make([]byte, 4), nil, maxSize} -} - -func (this *uint32Reader) ReadMsg(msg proto.Message) error { - if _, err := io.ReadFull(this.r, this.lenBuf); err != nil { - return err - } - length32 := this.byteOrder.Uint32(this.lenBuf) - length := int(length32) - if length < 0 || length > this.maxSize { - return io.ErrShortBuffer - } - if length >= len(this.buf) { - this.buf = make([]byte, length) - } - _, err := io.ReadFull(this.r, this.buf[:length]) - if err != nil { - return err - } - return proto.Unmarshal(this.buf[:length], msg) -} - -func (this *uint32Reader) Close() error { - if closer, ok := this.r.(io.Closer); ok { - return closer.Close() - } - return nil -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/varint.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/varint.go deleted file mode 100644 index d3ffb77f..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/io/varint.go +++ /dev/null @@ -1,128 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package io - -import ( - "bufio" - "encoding/binary" - "errors" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - "io" -) - -var ( - errSmallBuffer = errors.New("Buffer Too Small") - errLargeValue = errors.New("Value is Larger than 64 bits") -) - -func NewDelimitedWriter(w io.Writer) WriteCloser { - return &varintWriter{w, make([]byte, 10), nil} -} - -type varintWriter struct { - w io.Writer - lenBuf []byte - buffer []byte -} - -func (this *varintWriter) WriteMsg(msg proto.Message) (err error) { - var data []byte - if m, ok := msg.(marshaler); ok { - n := m.Size() - if n >= len(this.buffer) { - this.buffer = make([]byte, n) - } - _, err = m.MarshalTo(this.buffer) - if err != nil { - return err - } - data = this.buffer[:n] - } else { - data, err = proto.Marshal(msg) - if err != nil { - return err - } - } - length := uint64(len(data)) - n := binary.PutUvarint(this.lenBuf, length) - _, err = this.w.Write(this.lenBuf[:n]) - if err != nil { - return err - } - _, err = this.w.Write(data) - return err -} - -func (this *varintWriter) Close() error { - if closer, ok := this.w.(io.Closer); ok { - return closer.Close() - } - return nil -} - -func NewDelimitedReader(r io.Reader, maxSize int) ReadCloser { - var closer io.Closer - if c, ok := r.(io.Closer); ok { - closer = c - } - return &varintReader{bufio.NewReader(r), nil, maxSize, closer} -} - -type varintReader struct { - r *bufio.Reader - buf []byte - maxSize int - closer io.Closer -} - -func (this *varintReader) ReadMsg(msg proto.Message) error { - length64, err := binary.ReadUvarint(this.r) - if err != nil { - return err - } - length := int(length64) - if length < 0 || length > this.maxSize { - return io.ErrShortBuffer - } - if len(this.buf) < length { - this.buf = make([]byte, length) - } - buf := this.buf[:length] - if _, err := io.ReadFull(this.r, buf); err != nil { - return err - } - return proto.Unmarshal(buf, msg) -} - -func (this *varintReader) Close() error { - if this.closer != nil { - return this.closer.Close() - } - return nil -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb.go deleted file mode 100644 index 6c693f29..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb.go +++ /dev/null @@ -1,540 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2015 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -/* -Package jsonpb provides marshaling/unmarshaling functionality between -protocol buffer and JSON objects. - -Compared to encoding/json, this library: - - encodes int64, uint64 as strings - - optionally encodes enums as integers -*/ -package jsonpb - -import ( - "bytes" - "encoding/json" - "fmt" - "io" - "reflect" - "sort" - "strconv" - "strings" - - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -) - -var ( - byteArrayType = reflect.TypeOf([]byte{}) -) - -// Marshaler is a configurable object for converting between -// protocol buffer objects and a JSON representation for them -type Marshaler struct { - // Whether to render enum values as integers, as opposed to string values. - EnumsAsInts bool - - // A string to indent each level by. The presence of this field will - // also cause a space to appear between the field separator and - // value, and for newlines to be appear between fields and array - // elements. - Indent string -} - -// Marshal marshals a protocol buffer into JSON. -func (m *Marshaler) Marshal(out io.Writer, pb proto.Message) error { - writer := &errWriter{writer: out} - return m.marshalObject(writer, pb, "") -} - -// MarshalToString converts a protocol buffer object to JSON string. -func (m *Marshaler) MarshalToString(pb proto.Message) (string, error) { - var buf bytes.Buffer - if err := m.Marshal(&buf, pb); err != nil { - return "", err - } - return buf.String(), nil -} - -type int32Slice []int32 - -// For sorting extensions ids to ensure stable output. -func (s int32Slice) Len() int { return len(s) } -func (s int32Slice) Less(i, j int) bool { return s[i] < s[j] } -func (s int32Slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } - -// marshalObject writes a struct to the Writer. -func (m *Marshaler) marshalObject(out *errWriter, v proto.Message, indent string) error { - out.write("{") - if m.Indent != "" { - out.write("\n") - } - - s := reflect.ValueOf(v).Elem() - firstField := true - for i := 0; i < s.NumField(); i++ { - value := s.Field(i) - valueField := s.Type().Field(i) - if strings.HasPrefix(valueField.Name, "XXX_") { - continue - } - - // TODO: proto3 objects should have default values omitted. - - // IsNil will panic on most value kinds. - switch value.Kind() { - case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: - if value.IsNil() { - continue - } - } - - // Oneof fields need special handling. - if valueField.Tag.Get("protobuf_oneof") != "" { - // value is an interface containing &T{real_value}. - sv := value.Elem().Elem() // interface -> *T -> T - value = sv.Field(0) - valueField = sv.Type().Field(0) - } - prop := jsonProperties(valueField) - if !firstField { - m.writeSep(out) - } - if err := m.marshalField(out, prop, value, indent); err != nil { - return err - } - firstField = false - } - - // Handle proto2 extensions. - if ep, ok := v.(extendableProto); ok { - extensions := proto.RegisteredExtensions(v) - extensionMap := ep.ExtensionMap() - // Sort extensions for stable output. - ids := make([]int32, 0, len(extensionMap)) - for id := range extensionMap { - ids = append(ids, id) - } - sort.Sort(int32Slice(ids)) - for _, id := range ids { - desc := extensions[id] - if desc == nil { - // unknown extension - continue - } - ext, extErr := proto.GetExtension(ep, desc) - if extErr != nil { - return extErr - } - value := reflect.ValueOf(ext) - var prop proto.Properties - prop.Parse(desc.Tag) - prop.OrigName = fmt.Sprintf("[%s]", desc.Name) - if !firstField { - m.writeSep(out) - } - if err := m.marshalField(out, &prop, value, indent); err != nil { - return err - } - firstField = false - } - - } - - if m.Indent != "" { - out.write("\n") - out.write(indent) - } - out.write("}") - return out.err -} - -func (m *Marshaler) writeSep(out *errWriter) { - if m.Indent != "" { - out.write(",\n") - } else { - out.write(",") - } -} - -// marshalField writes field description and value to the Writer. -func (m *Marshaler) marshalField(out *errWriter, prop *proto.Properties, v reflect.Value, indent string) error { - if m.Indent != "" { - out.write(indent) - out.write(m.Indent) - } - out.write(`"`) - out.write(prop.OrigName) - out.write(`":`) - if m.Indent != "" { - out.write(" ") - } - if err := m.marshalValue(out, prop, v, indent); err != nil { - return err - } - return nil -} - -// marshalValue writes the value to the Writer. -func (m *Marshaler) marshalValue(out *errWriter, prop *proto.Properties, v reflect.Value, indent string) error { - - v = reflect.Indirect(v) - - // Handle repeated elements. - if v.Type() != byteArrayType && v.Kind() == reflect.Slice { - out.write("[") - comma := "" - for i := 0; i < v.Len(); i++ { - sliceVal := v.Index(i) - out.write(comma) - if m.Indent != "" { - out.write("\n") - out.write(indent) - out.write(m.Indent) - out.write(m.Indent) - } - m.marshalValue(out, prop, sliceVal, indent+m.Indent) - comma = "," - } - if m.Indent != "" { - out.write("\n") - out.write(indent) - out.write(m.Indent) - } - out.write("]") - return out.err - } - - // Handle enumerations. - if !m.EnumsAsInts && prop.Enum != "" { - // Unknown enum values will are stringified by the proto library as their - // value. Such values should _not_ be quoted or they will be interpreted - // as an enum string instead of their value. - enumStr := v.Interface().(fmt.Stringer).String() - var valStr string - if v.Kind() == reflect.Ptr { - valStr = strconv.Itoa(int(v.Elem().Int())) - } else { - valStr = strconv.Itoa(int(v.Int())) - } - - if m, ok := v.Interface().(interface { - MarshalJSON() ([]byte, error) - }); ok { - data, err := m.MarshalJSON() - if err != nil { - return err - } - enumStr = string(data) - enumStr, err = strconv.Unquote(enumStr) - if err != nil { - return err - } - } - - isKnownEnum := enumStr != valStr - - if isKnownEnum { - out.write(`"`) - } - out.write(enumStr) - if isKnownEnum { - out.write(`"`) - } - return out.err - } - - // Handle nested messages. - if v.Kind() == reflect.Struct { - return m.marshalObject(out, v.Addr().Interface().(proto.Message), indent+m.Indent) - } - - // Handle maps. - // Since Go randomizes map iteration, we sort keys for stable output. - if v.Kind() == reflect.Map { - out.write(`{`) - keys := v.MapKeys() - sort.Sort(mapKeys(keys)) - for i, k := range keys { - if i > 0 { - out.write(`,`) - } - if m.Indent != "" { - out.write("\n") - out.write(indent) - out.write(m.Indent) - out.write(m.Indent) - } - - b, err := json.Marshal(k.Interface()) - if err != nil { - return err - } - s := string(b) - - // If the JSON is not a string value, encode it again to make it one. - if !strings.HasPrefix(s, `"`) { - b, err := json.Marshal(s) - if err != nil { - return err - } - s = string(b) - } - - out.write(s) - out.write(`:`) - if m.Indent != "" { - out.write(` `) - } - - if err := m.marshalValue(out, prop, v.MapIndex(k), indent+m.Indent); err != nil { - return err - } - } - if m.Indent != "" { - out.write("\n") - out.write(indent) - out.write(m.Indent) - } - out.write(`}`) - return out.err - } - - // Default handling defers to the encoding/json library. - b, err := json.Marshal(v.Interface()) - if err != nil { - return err - } - needToQuote := string(b[0]) != `"` && (v.Kind() == reflect.Int64 || v.Kind() == reflect.Uint64) - if needToQuote { - out.write(`"`) - } - out.write(string(b)) - if needToQuote { - out.write(`"`) - } - return out.err -} - -// Unmarshal unmarshals a JSON object stream into a protocol -// buffer. This function is lenient and will decode any options -// permutations of the related Marshaler. -func Unmarshal(r io.Reader, pb proto.Message) error { - inputValue := json.RawMessage{} - if err := json.NewDecoder(r).Decode(&inputValue); err != nil { - return err - } - return unmarshalValue(reflect.ValueOf(pb).Elem(), inputValue) -} - -// UnmarshalString will populate the fields of a protocol buffer based -// on a JSON string. This function is lenient and will decode any options -// permutations of the related Marshaler. -func UnmarshalString(str string, pb proto.Message) error { - return Unmarshal(strings.NewReader(str), pb) -} - -// unmarshalValue converts/copies a value into the target. -func unmarshalValue(target reflect.Value, inputValue json.RawMessage) error { - targetType := target.Type() - - // Allocate memory for pointer fields. - if targetType.Kind() == reflect.Ptr { - target.Set(reflect.New(targetType.Elem())) - return unmarshalValue(target.Elem(), inputValue) - } - - // Handle nested messages. - if targetType.Kind() == reflect.Struct { - var jsonFields map[string]json.RawMessage - if err := json.Unmarshal(inputValue, &jsonFields); err != nil { - return err - } - - sprops := proto.GetProperties(targetType) - for i := 0; i < target.NumField(); i++ { - ft := target.Type().Field(i) - if strings.HasPrefix(ft.Name, "XXX_") { - continue - } - fieldName := jsonProperties(ft).OrigName - - valueForField, ok := jsonFields[fieldName] - if !ok { - continue - } - delete(jsonFields, fieldName) - - // Handle enums, which have an underlying type of int32, - // and may appear as strings. We do this while handling - // the struct so we have access to the enum info. - // The case of an enum appearing as a number is handled - // by the recursive call to unmarshalValue. - if enum := sprops.Prop[i].Enum; valueForField[0] == '"' && enum != "" { - vmap := proto.EnumValueMap(enum) - // Don't need to do unquoting; valid enum names - // are from a limited character set. - s := valueForField[1 : len(valueForField)-1] - n, ok := vmap[string(s)] - if !ok { - return fmt.Errorf("unknown value %q for enum %s", s, enum) - } - f := target.Field(i) - if f.Kind() == reflect.Ptr { // proto2 - f.Set(reflect.New(f.Type().Elem())) - f = f.Elem() - } - f.SetInt(int64(n)) - continue - } - - if err := unmarshalValue(target.Field(i), valueForField); err != nil { - return err - } - } - // Check for any oneof fields. - for fname, raw := range jsonFields { - if oop, ok := sprops.OneofTypes[fname]; ok { - nv := reflect.New(oop.Type.Elem()) - target.Field(oop.Field).Set(nv) - if err := unmarshalValue(nv.Elem().Field(0), raw); err != nil { - return err - } - delete(jsonFields, fname) - } - } - if len(jsonFields) > 0 { - // Pick any field to be the scapegoat. - var f string - for fname := range jsonFields { - f = fname - break - } - return fmt.Errorf("unknown field %q in %v", f, targetType) - } - return nil - } - - // Handle arrays (which aren't encoded bytes) - if targetType != byteArrayType && targetType.Kind() == reflect.Slice { - var slc []json.RawMessage - if err := json.Unmarshal(inputValue, &slc); err != nil { - return err - } - len := len(slc) - target.Set(reflect.MakeSlice(targetType, len, len)) - for i := 0; i < len; i++ { - if err := unmarshalValue(target.Index(i), slc[i]); err != nil { - return err - } - } - return nil - } - - // Handle maps (whose keys are always strings) - if targetType.Kind() == reflect.Map { - var mp map[string]json.RawMessage - if err := json.Unmarshal(inputValue, &mp); err != nil { - return err - } - target.Set(reflect.MakeMap(targetType)) - for ks, raw := range mp { - // Unmarshal map key. The core json library already decoded the key into a - // string, so we handle that specially. Other types were quoted post-serialization. - var k reflect.Value - if targetType.Key().Kind() == reflect.String { - k = reflect.ValueOf(ks) - } else { - k = reflect.New(targetType.Key()).Elem() - if err := unmarshalValue(k, json.RawMessage(ks)); err != nil { - return err - } - } - - // Unmarshal map value. - v := reflect.New(targetType.Elem()).Elem() - if err := unmarshalValue(v, raw); err != nil { - return err - } - target.SetMapIndex(k, v) - } - return nil - } - - // 64-bit integers can be encoded as strings. In this case we drop - // the quotes and proceed as normal. - isNum := targetType.Kind() == reflect.Int64 || targetType.Kind() == reflect.Uint64 - if isNum && strings.HasPrefix(string(inputValue), `"`) { - inputValue = inputValue[1 : len(inputValue)-1] - } - - // Use the encoding/json for parsing other value types. - return json.Unmarshal(inputValue, target.Addr().Interface()) -} - -// jsonProperties returns parsed proto.Properties for the field. -func jsonProperties(f reflect.StructField) *proto.Properties { - var prop proto.Properties - prop.Init(f.Type, f.Name, f.Tag.Get("protobuf"), &f) - return &prop -} - -// extendableProto is an interface implemented by any protocol buffer that may be extended. -type extendableProto interface { - proto.Message - ExtensionRangeArray() []proto.ExtensionRange - ExtensionMap() map[int32]proto.Extension -} - -// Writer wrapper inspired by https://blog.golang.org/errors-are-values -type errWriter struct { - writer io.Writer - err error -} - -func (w *errWriter) write(str string) { - if w.err != nil { - return - } - _, w.err = w.writer.Write([]byte(str)) -} - -// Map fields may have key types of non-float scalars, strings and enums. -// The easiest way to sort them in some deterministic order is to use fmt. -// If this turns out to be inefficient we can always consider other options, -// such as doing a Schwartzian transform. -type mapKeys []reflect.Value - -func (s mapKeys) Len() int { return len(s) } -func (s mapKeys) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s mapKeys) Less(i, j int) bool { - return fmt.Sprint(s[i].Interface()) < fmt.Sprint(s[j].Interface()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test.go deleted file mode 100644 index 13afa76a..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test.go +++ /dev/null @@ -1,391 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2015 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package jsonpb - -import ( - "reflect" - "testing" - - pb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - proto3pb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto" -) - -var ( - marshaler = Marshaler{} - - marshalerAllOptions = Marshaler{ - Indent: " ", - } - - simpleObject = &pb.Simple{ - OInt32: proto.Int32(-32), - OInt64: proto.Int64(-6400000000), - OUint32: proto.Uint32(32), - OUint64: proto.Uint64(6400000000), - OSint32: proto.Int32(-13), - OSint64: proto.Int64(-2600000000), - OFloat: proto.Float32(3.14), - ODouble: proto.Float64(6.02214179e23), - OBool: proto.Bool(true), - OString: proto.String("hello \"there\""), - OBytes: []byte("beep boop"), - } - - simpleObjectJSON = `{` + - `"o_bool":true,` + - `"o_int32":-32,` + - `"o_int64":"-6400000000",` + - `"o_uint32":32,` + - `"o_uint64":"6400000000",` + - `"o_sint32":-13,` + - `"o_sint64":"-2600000000",` + - `"o_float":3.14,` + - `"o_double":6.02214179e+23,` + - `"o_string":"hello \"there\"",` + - `"o_bytes":"YmVlcCBib29w"` + - `}` - - simpleObjectPrettyJSON = `{ - "o_bool": true, - "o_int32": -32, - "o_int64": "-6400000000", - "o_uint32": 32, - "o_uint64": "6400000000", - "o_sint32": -13, - "o_sint64": "-2600000000", - "o_float": 3.14, - "o_double": 6.02214179e+23, - "o_string": "hello \"there\"", - "o_bytes": "YmVlcCBib29w" -}` - - repeatsObject = &pb.Repeats{ - RBool: []bool{true, false, true}, - RInt32: []int32{-3, -4, -5}, - RInt64: []int64{-123456789, -987654321}, - RUint32: []uint32{1, 2, 3}, - RUint64: []uint64{6789012345, 3456789012}, - RSint32: []int32{-1, -2, -3}, - RSint64: []int64{-6789012345, -3456789012}, - RFloat: []float32{3.14, 6.28}, - RDouble: []float64{299792458, 6.62606957e-34}, - RString: []string{"happy", "days"}, - RBytes: [][]byte{[]byte("skittles"), []byte("m&m's")}, - } - - repeatsObjectJSON = `{` + - `"r_bool":[true,false,true],` + - `"r_int32":[-3,-4,-5],` + - `"r_int64":["-123456789","-987654321"],` + - `"r_uint32":[1,2,3],` + - `"r_uint64":["6789012345","3456789012"],` + - `"r_sint32":[-1,-2,-3],` + - `"r_sint64":["-6789012345","-3456789012"],` + - `"r_float":[3.14,6.28],` + - `"r_double":[2.99792458e+08,6.62606957e-34],` + - `"r_string":["happy","days"],` + - `"r_bytes":["c2tpdHRsZXM=","bSZtJ3M="]` + - `}` - - repeatsObjectPrettyJSON = `{ - "r_bool": [ - true, - false, - true - ], - "r_int32": [ - -3, - -4, - -5 - ], - "r_int64": [ - "-123456789", - "-987654321" - ], - "r_uint32": [ - 1, - 2, - 3 - ], - "r_uint64": [ - "6789012345", - "3456789012" - ], - "r_sint32": [ - -1, - -2, - -3 - ], - "r_sint64": [ - "-6789012345", - "-3456789012" - ], - "r_float": [ - 3.14, - 6.28 - ], - "r_double": [ - 2.99792458e+08, - 6.62606957e-34 - ], - "r_string": [ - "happy", - "days" - ], - "r_bytes": [ - "c2tpdHRsZXM=", - "bSZtJ3M=" - ] -}` - - innerSimple = &pb.Simple{OInt32: proto.Int32(-32)} - innerSimple2 = &pb.Simple{OInt64: proto.Int64(25)} - innerRepeats = &pb.Repeats{RString: []string{"roses", "red"}} - innerRepeats2 = &pb.Repeats{RString: []string{"violets", "blue"}} - complexObject = &pb.Widget{ - Color: pb.Widget_GREEN.Enum(), - RColor: []pb.Widget_Color{pb.Widget_RED, pb.Widget_GREEN, pb.Widget_BLUE}, - Simple: innerSimple, - RSimple: []*pb.Simple{innerSimple, innerSimple2}, - Repeats: innerRepeats, - RRepeats: []*pb.Repeats{innerRepeats, innerRepeats2}, - } - - complexObjectJSON = `{"color":"GREEN",` + - `"r_color":["RED","GREEN","BLUE"],` + - `"simple":{"o_int32":-32},` + - `"r_simple":[{"o_int32":-32},{"o_int64":"25"}],` + - `"repeats":{"r_string":["roses","red"]},` + - `"r_repeats":[{"r_string":["roses","red"]},{"r_string":["violets","blue"]}]` + - `}` - - complexObjectPrettyJSON = `{ - "color": "GREEN", - "r_color": [ - "RED", - "GREEN", - "BLUE" - ], - "simple": { - "o_int32": -32 - }, - "r_simple": [ - { - "o_int32": -32 - }, - { - "o_int64": "25" - } - ], - "repeats": { - "r_string": [ - "roses", - "red" - ] - }, - "r_repeats": [ - { - "r_string": [ - "roses", - "red" - ] - }, - { - "r_string": [ - "violets", - "blue" - ] - } - ] -}` - - colorPrettyJSON = `{ - "color": 2 -}` - - colorListPrettyJSON = `{ - "color": 1000, - "r_color": [ - "RED" - ] -}` - - nummyPrettyJSON = `{ - "nummy": { - "1": 2, - "3": 4 - } -}` - - objjyPrettyJSON = `{ - "objjy": { - "1": { - "dub": 1 - } - } -}` - realNumber = &pb.Real{Value: proto.Float64(3.14159265359)} - realNumberName = "Pi" - complexNumber = &pb.Complex{Imaginary: proto.Float64(0.5772156649)} - realNumberJSON = `{` + - `"value":3.14159265359,` + - `"[jsonpb.Complex.real_extension]":{"imaginary":0.5772156649},` + - `"[jsonpb.name]":"Pi"` + - `}` -) - -func init() { - if err := proto.SetExtension(realNumber, pb.E_Name, &realNumberName); err != nil { - panic(err) - } - if err := proto.SetExtension(realNumber, pb.E_Complex_RealExtension, complexNumber); err != nil { - panic(err) - } -} - -var marshalingTests = []struct { - desc string - marshaler Marshaler - pb proto.Message - json string -}{ - {"simple flat object", marshaler, simpleObject, simpleObjectJSON}, - {"simple pretty object", marshalerAllOptions, simpleObject, simpleObjectPrettyJSON}, - {"repeated fields flat object", marshaler, repeatsObject, repeatsObjectJSON}, - {"repeated fields pretty object", marshalerAllOptions, repeatsObject, repeatsObjectPrettyJSON}, - {"nested message/enum flat object", marshaler, complexObject, complexObjectJSON}, - {"nested message/enum pretty object", marshalerAllOptions, complexObject, complexObjectPrettyJSON}, - {"enum-string flat object", Marshaler{}, - &pb.Widget{Color: pb.Widget_BLUE.Enum()}, `{"color":"BLUE"}`}, - {"enum-value pretty object", Marshaler{EnumsAsInts: true, Indent: " "}, - &pb.Widget{Color: pb.Widget_BLUE.Enum()}, colorPrettyJSON}, - {"unknown enum value object", marshalerAllOptions, - &pb.Widget{Color: pb.Widget_Color(1000).Enum(), RColor: []pb.Widget_Color{pb.Widget_RED}}, colorListPrettyJSON}, - {"proto3 object with empty value", marshaler, &pb.Simple3{}, `{"dub":0}`}, - {"map", marshaler, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}, `{"nummy":{"1":2,"3":4}}`}, - {"map", marshalerAllOptions, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}, nummyPrettyJSON}, - {"map", marshaler, - &pb.Mappy{Strry: map[string]string{`"one"`: "two", "three": "four"}}, - `{"strry":{"\"one\"":"two","three":"four"}}`}, - {"map", marshaler, - &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: {Dub: 1}}}, `{"objjy":{"1":{"dub":1}}}`}, - {"map", marshalerAllOptions, - &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: {Dub: 1}}}, objjyPrettyJSON}, - {"map", marshaler, &pb.Mappy{Buggy: map[int64]string{1234: "yup"}}, - `{"buggy":{"1234":"yup"}}`}, - {"map", marshaler, &pb.Mappy{Booly: map[bool]bool{false: true}}, `{"booly":{"false":true}}`}, - {"proto2 map", marshaler, &pb.Maps{MInt64Str: map[int64]string{213: "cat"}}, - `{"m_int64_str":{"213":"cat"}}`}, - {"proto2 map", marshaler, - &pb.Maps{MBoolSimple: map[bool]*pb.Simple{true: {OInt32: proto.Int32(1)}}}, - `{"m_bool_simple":{"true":{"o_int32":1}}}`}, - {"oneof, not set", marshaler, &pb.MsgWithOneof{}, `{}`}, - {"oneof, set", marshaler, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_Title{Title: "Grand Poobah"}}, `{"title":"Grand Poobah"}`}, - {"proto2 extension", marshaler, realNumber, realNumberJSON}, -} - -func TestMarshaling(t *testing.T) { - for _, tt := range marshalingTests { - json, err := tt.marshaler.MarshalToString(tt.pb) - if err != nil { - t.Errorf("%s: marshaling error: %v", tt.desc, err) - } else if tt.json != json { - t.Errorf("%s: got [%v] want [%v]", tt.desc, json, tt.json) - } - } -} - -var unmarshalingTests = []struct { - desc string - json string - pb proto.Message -}{ - {"simple flat object", simpleObjectJSON, simpleObject}, - {"simple pretty object", simpleObjectPrettyJSON, simpleObject}, - {"repeated fields flat object", repeatsObjectJSON, repeatsObject}, - {"repeated fields pretty object", repeatsObjectPrettyJSON, repeatsObject}, - {"nested message/enum flat object", complexObjectJSON, complexObject}, - {"nested message/enum pretty object", complexObjectPrettyJSON, complexObject}, - {"enum-string object", `{"color":"BLUE"}`, &pb.Widget{Color: pb.Widget_BLUE.Enum()}}, - {"enum-value object", "{\n \"color\": 2\n}", &pb.Widget{Color: pb.Widget_BLUE.Enum()}}, - {"proto3 enum string", `{"hilarity":"PUNS"}`, &proto3pb.Message{Hilarity: proto3pb.Message_PUNS}}, - {"proto3 enum value", `{"hilarity":1}`, &proto3pb.Message{Hilarity: proto3pb.Message_PUNS}}, - {"unknown enum value object", - "{\n \"color\": 1000,\n \"r_color\": [\n \"RED\"\n ]\n}", - &pb.Widget{Color: pb.Widget_Color(1000).Enum(), RColor: []pb.Widget_Color{pb.Widget_RED}}}, - {"unquoted int64 object", `{"o_int64":-314}`, &pb.Simple{OInt64: proto.Int64(-314)}}, - {"unquoted uint64 object", `{"o_uint64":123}`, &pb.Simple{OUint64: proto.Uint64(123)}}, - {"map", `{"nummy":{"1":2,"3":4}}`, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}}, - {"map", `{"strry":{"\"one\"":"two","three":"four"}}`, &pb.Mappy{Strry: map[string]string{`"one"`: "two", "three": "four"}}}, - {"map", `{"objjy":{"1":{"dub":1}}}`, &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: {Dub: 1}}}}, - {"oneof", `{"salary":31000}`, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_Salary{Salary: 31000}}}, -} - -func TestUnmarshaling(t *testing.T) { - for _, tt := range unmarshalingTests { - // Make a new instance of the type of our expected object. - p := reflect.New(reflect.TypeOf(tt.pb).Elem()).Interface().(proto.Message) - - err := UnmarshalString(tt.json, p) - if err != nil { - t.Error(err) - continue - } - - // For easier diffs, compare text strings of the protos. - exp := proto.MarshalTextString(tt.pb) - act := proto.MarshalTextString(p) - if string(exp) != string(act) { - t.Errorf("%s: got [%s] want [%s]", tt.desc, act, exp) - } - } -} - -var unmarshalingShouldError = []struct { - desc string - in string - pb proto.Message -}{ - {"a value", "666", new(pb.Simple)}, - {"gibberish", "{adskja123;l23=-=", new(pb.Simple)}, - {"unknown enum name", `{"hilarity":"DAVE"}`, new(proto3pb.Message)}, -} - -func TestUnmarshalingBadInput(t *testing.T) { - for _, tt := range unmarshalingShouldError { - err := UnmarshalString(tt.in, tt.pb) - if err == nil { - t.Errorf("an error was expected when parsing %q instead of an object", tt.desc) - } - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/Makefile b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/Makefile deleted file mode 100644 index 395c3add..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -# Go support for Protocol Buffers - Google's data interchange format -# -# Copyright 2015 The Go Authors. All rights reserved. -# https://github.com/golang/protobuf -# -# 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. - -regenerate: - protoc-min-version --version="3.0.0" --gogo_out=. *.proto diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go deleted file mode 100644 index db88386a..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go +++ /dev/null @@ -1,92 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: more_test_objects.proto -// DO NOT EDIT! - -/* -Package jsonpb is a generated protocol buffer package. - -It is generated from these files: - more_test_objects.proto - test_objects.proto - -It has these top-level messages: - Simple3 - Mappy - Simple - Repeats - Widget - Maps - MsgWithOneof - Real - Complex -*/ -package jsonpb - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type Simple3 struct { - Dub float64 `protobuf:"fixed64,1,opt,name=dub,proto3" json:"dub,omitempty"` -} - -func (m *Simple3) Reset() { *m = Simple3{} } -func (m *Simple3) String() string { return proto.CompactTextString(m) } -func (*Simple3) ProtoMessage() {} - -type Mappy struct { - Nummy map[int64]int32 `protobuf:"bytes,1,rep,name=nummy" json:"nummy,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Strry map[string]string `protobuf:"bytes,2,rep,name=strry" json:"strry,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Objjy map[int32]*Simple3 `protobuf:"bytes,3,rep,name=objjy" json:"objjy,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Buggy map[int64]string `protobuf:"bytes,4,rep,name=buggy" json:"buggy,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Booly map[bool]bool `protobuf:"bytes,5,rep,name=booly" json:"booly,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` -} - -func (m *Mappy) Reset() { *m = Mappy{} } -func (m *Mappy) String() string { return proto.CompactTextString(m) } -func (*Mappy) ProtoMessage() {} - -func (m *Mappy) GetNummy() map[int64]int32 { - if m != nil { - return m.Nummy - } - return nil -} - -func (m *Mappy) GetStrry() map[string]string { - if m != nil { - return m.Strry - } - return nil -} - -func (m *Mappy) GetObjjy() map[int32]*Simple3 { - if m != nil { - return m.Objjy - } - return nil -} - -func (m *Mappy) GetBuggy() map[int64]string { - if m != nil { - return m.Buggy - } - return nil -} - -func (m *Mappy) GetBooly() map[bool]bool { - if m != nil { - return m.Booly - } - return nil -} - -func init() { - proto.RegisterType((*Simple3)(nil), "jsonpb.Simple3") - proto.RegisterType((*Mappy)(nil), "jsonpb.Mappy") -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto deleted file mode 100644 index 65357916..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto +++ /dev/null @@ -1,46 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2015 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto3"; - -package jsonpb; - -message Simple3 { - double dub = 1; -} - -message Mappy { - map nummy = 1; - map strry = 2; - map objjy = 3; - map buggy = 4; - map booly = 5; -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go deleted file mode 100644 index 13674e5d..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go +++ /dev/null @@ -1,510 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: test_objects.proto -// DO NOT EDIT! - -package jsonpb - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type Widget_Color int32 - -const ( - Widget_RED Widget_Color = 0 - Widget_GREEN Widget_Color = 1 - Widget_BLUE Widget_Color = 2 -) - -var Widget_Color_name = map[int32]string{ - 0: "RED", - 1: "GREEN", - 2: "BLUE", -} -var Widget_Color_value = map[string]int32{ - "RED": 0, - "GREEN": 1, - "BLUE": 2, -} - -func (x Widget_Color) Enum() *Widget_Color { - p := new(Widget_Color) - *p = x - return p -} -func (x Widget_Color) String() string { - return proto.EnumName(Widget_Color_name, int32(x)) -} -func (x *Widget_Color) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Widget_Color_value, data, "Widget_Color") - if err != nil { - return err - } - *x = Widget_Color(value) - return nil -} - -// Test message for holding primitive types. -type Simple struct { - OBool *bool `protobuf:"varint,1,opt,name=o_bool" json:"o_bool,omitempty"` - OInt32 *int32 `protobuf:"varint,2,opt,name=o_int32" json:"o_int32,omitempty"` - OInt64 *int64 `protobuf:"varint,3,opt,name=o_int64" json:"o_int64,omitempty"` - OUint32 *uint32 `protobuf:"varint,4,opt,name=o_uint32" json:"o_uint32,omitempty"` - OUint64 *uint64 `protobuf:"varint,5,opt,name=o_uint64" json:"o_uint64,omitempty"` - OSint32 *int32 `protobuf:"zigzag32,6,opt,name=o_sint32" json:"o_sint32,omitempty"` - OSint64 *int64 `protobuf:"zigzag64,7,opt,name=o_sint64" json:"o_sint64,omitempty"` - OFloat *float32 `protobuf:"fixed32,8,opt,name=o_float" json:"o_float,omitempty"` - ODouble *float64 `protobuf:"fixed64,9,opt,name=o_double" json:"o_double,omitempty"` - OString *string `protobuf:"bytes,10,opt,name=o_string" json:"o_string,omitempty"` - OBytes []byte `protobuf:"bytes,11,opt,name=o_bytes" json:"o_bytes,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Simple) Reset() { *m = Simple{} } -func (m *Simple) String() string { return proto.CompactTextString(m) } -func (*Simple) ProtoMessage() {} - -func (m *Simple) GetOBool() bool { - if m != nil && m.OBool != nil { - return *m.OBool - } - return false -} - -func (m *Simple) GetOInt32() int32 { - if m != nil && m.OInt32 != nil { - return *m.OInt32 - } - return 0 -} - -func (m *Simple) GetOInt64() int64 { - if m != nil && m.OInt64 != nil { - return *m.OInt64 - } - return 0 -} - -func (m *Simple) GetOUint32() uint32 { - if m != nil && m.OUint32 != nil { - return *m.OUint32 - } - return 0 -} - -func (m *Simple) GetOUint64() uint64 { - if m != nil && m.OUint64 != nil { - return *m.OUint64 - } - return 0 -} - -func (m *Simple) GetOSint32() int32 { - if m != nil && m.OSint32 != nil { - return *m.OSint32 - } - return 0 -} - -func (m *Simple) GetOSint64() int64 { - if m != nil && m.OSint64 != nil { - return *m.OSint64 - } - return 0 -} - -func (m *Simple) GetOFloat() float32 { - if m != nil && m.OFloat != nil { - return *m.OFloat - } - return 0 -} - -func (m *Simple) GetODouble() float64 { - if m != nil && m.ODouble != nil { - return *m.ODouble - } - return 0 -} - -func (m *Simple) GetOString() string { - if m != nil && m.OString != nil { - return *m.OString - } - return "" -} - -func (m *Simple) GetOBytes() []byte { - if m != nil { - return m.OBytes - } - return nil -} - -// Test message for holding repeated primitives. -type Repeats struct { - RBool []bool `protobuf:"varint,1,rep,name=r_bool" json:"r_bool,omitempty"` - RInt32 []int32 `protobuf:"varint,2,rep,name=r_int32" json:"r_int32,omitempty"` - RInt64 []int64 `protobuf:"varint,3,rep,name=r_int64" json:"r_int64,omitempty"` - RUint32 []uint32 `protobuf:"varint,4,rep,name=r_uint32" json:"r_uint32,omitempty"` - RUint64 []uint64 `protobuf:"varint,5,rep,name=r_uint64" json:"r_uint64,omitempty"` - RSint32 []int32 `protobuf:"zigzag32,6,rep,name=r_sint32" json:"r_sint32,omitempty"` - RSint64 []int64 `protobuf:"zigzag64,7,rep,name=r_sint64" json:"r_sint64,omitempty"` - RFloat []float32 `protobuf:"fixed32,8,rep,name=r_float" json:"r_float,omitempty"` - RDouble []float64 `protobuf:"fixed64,9,rep,name=r_double" json:"r_double,omitempty"` - RString []string `protobuf:"bytes,10,rep,name=r_string" json:"r_string,omitempty"` - RBytes [][]byte `protobuf:"bytes,11,rep,name=r_bytes" json:"r_bytes,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Repeats) Reset() { *m = Repeats{} } -func (m *Repeats) String() string { return proto.CompactTextString(m) } -func (*Repeats) ProtoMessage() {} - -func (m *Repeats) GetRBool() []bool { - if m != nil { - return m.RBool - } - return nil -} - -func (m *Repeats) GetRInt32() []int32 { - if m != nil { - return m.RInt32 - } - return nil -} - -func (m *Repeats) GetRInt64() []int64 { - if m != nil { - return m.RInt64 - } - return nil -} - -func (m *Repeats) GetRUint32() []uint32 { - if m != nil { - return m.RUint32 - } - return nil -} - -func (m *Repeats) GetRUint64() []uint64 { - if m != nil { - return m.RUint64 - } - return nil -} - -func (m *Repeats) GetRSint32() []int32 { - if m != nil { - return m.RSint32 - } - return nil -} - -func (m *Repeats) GetRSint64() []int64 { - if m != nil { - return m.RSint64 - } - return nil -} - -func (m *Repeats) GetRFloat() []float32 { - if m != nil { - return m.RFloat - } - return nil -} - -func (m *Repeats) GetRDouble() []float64 { - if m != nil { - return m.RDouble - } - return nil -} - -func (m *Repeats) GetRString() []string { - if m != nil { - return m.RString - } - return nil -} - -func (m *Repeats) GetRBytes() [][]byte { - if m != nil { - return m.RBytes - } - return nil -} - -// Test message for holding enums and nested messages. -type Widget struct { - Color *Widget_Color `protobuf:"varint,1,opt,name=color,enum=jsonpb.Widget_Color" json:"color,omitempty"` - RColor []Widget_Color `protobuf:"varint,2,rep,name=r_color,enum=jsonpb.Widget_Color" json:"r_color,omitempty"` - Simple *Simple `protobuf:"bytes,10,opt,name=simple" json:"simple,omitempty"` - RSimple []*Simple `protobuf:"bytes,11,rep,name=r_simple" json:"r_simple,omitempty"` - Repeats *Repeats `protobuf:"bytes,20,opt,name=repeats" json:"repeats,omitempty"` - RRepeats []*Repeats `protobuf:"bytes,21,rep,name=r_repeats" json:"r_repeats,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Widget) Reset() { *m = Widget{} } -func (m *Widget) String() string { return proto.CompactTextString(m) } -func (*Widget) ProtoMessage() {} - -func (m *Widget) GetColor() Widget_Color { - if m != nil && m.Color != nil { - return *m.Color - } - return Widget_RED -} - -func (m *Widget) GetRColor() []Widget_Color { - if m != nil { - return m.RColor - } - return nil -} - -func (m *Widget) GetSimple() *Simple { - if m != nil { - return m.Simple - } - return nil -} - -func (m *Widget) GetRSimple() []*Simple { - if m != nil { - return m.RSimple - } - return nil -} - -func (m *Widget) GetRepeats() *Repeats { - if m != nil { - return m.Repeats - } - return nil -} - -func (m *Widget) GetRRepeats() []*Repeats { - if m != nil { - return m.RRepeats - } - return nil -} - -type Maps struct { - MInt64Str map[int64]string `protobuf:"bytes,1,rep,name=m_int64_str" json:"m_int64_str,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - MBoolSimple map[bool]*Simple `protobuf:"bytes,2,rep,name=m_bool_simple" json:"m_bool_simple,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Maps) Reset() { *m = Maps{} } -func (m *Maps) String() string { return proto.CompactTextString(m) } -func (*Maps) ProtoMessage() {} - -func (m *Maps) GetMInt64Str() map[int64]string { - if m != nil { - return m.MInt64Str - } - return nil -} - -func (m *Maps) GetMBoolSimple() map[bool]*Simple { - if m != nil { - return m.MBoolSimple - } - return nil -} - -type MsgWithOneof struct { - // Types that are valid to be assigned to Union: - // *MsgWithOneof_Title - // *MsgWithOneof_Salary - Union isMsgWithOneof_Union `protobuf_oneof:"union"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MsgWithOneof) Reset() { *m = MsgWithOneof{} } -func (m *MsgWithOneof) String() string { return proto.CompactTextString(m) } -func (*MsgWithOneof) ProtoMessage() {} - -type isMsgWithOneof_Union interface { - isMsgWithOneof_Union() -} - -type MsgWithOneof_Title struct { - Title string `protobuf:"bytes,1,opt,name=title,oneof"` -} -type MsgWithOneof_Salary struct { - Salary int64 `protobuf:"varint,2,opt,name=salary,oneof"` -} - -func (*MsgWithOneof_Title) isMsgWithOneof_Union() {} -func (*MsgWithOneof_Salary) isMsgWithOneof_Union() {} - -func (m *MsgWithOneof) GetUnion() isMsgWithOneof_Union { - if m != nil { - return m.Union - } - return nil -} - -func (m *MsgWithOneof) GetTitle() string { - if x, ok := m.GetUnion().(*MsgWithOneof_Title); ok { - return x.Title - } - return "" -} - -func (m *MsgWithOneof) GetSalary() int64 { - if x, ok := m.GetUnion().(*MsgWithOneof_Salary); ok { - return x.Salary - } - return 0 -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*MsgWithOneof) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), []interface{}) { - return _MsgWithOneof_OneofMarshaler, _MsgWithOneof_OneofUnmarshaler, []interface{}{ - (*MsgWithOneof_Title)(nil), - (*MsgWithOneof_Salary)(nil), - } -} - -func _MsgWithOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*MsgWithOneof) - // union - switch x := m.Union.(type) { - case *MsgWithOneof_Title: - _ = b.EncodeVarint(1<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Title) - case *MsgWithOneof_Salary: - _ = b.EncodeVarint(2<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Salary)) - case nil: - default: - return fmt.Errorf("MsgWithOneof.Union has unexpected type %T", x) - } - return nil -} - -func _MsgWithOneof_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*MsgWithOneof) - switch tag { - case 1: // union.title - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Union = &MsgWithOneof_Title{x} - return true, err - case 2: // union.salary - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Union = &MsgWithOneof_Salary{int64(x)} - return true, err - default: - return false, nil - } -} - -type Real struct { - Value *float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Real) Reset() { *m = Real{} } -func (m *Real) String() string { return proto.CompactTextString(m) } -func (*Real) ProtoMessage() {} - -var extRange_Real = []proto.ExtensionRange{ - {100, 536870911}, -} - -func (*Real) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_Real -} -func (m *Real) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -func (m *Real) GetValue() float64 { - if m != nil && m.Value != nil { - return *m.Value - } - return 0 -} - -type Complex struct { - Imaginary *float64 `protobuf:"fixed64,1,opt,name=imaginary" json:"imaginary,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Complex) Reset() { *m = Complex{} } -func (m *Complex) String() string { return proto.CompactTextString(m) } -func (*Complex) ProtoMessage() {} - -var extRange_Complex = []proto.ExtensionRange{ - {100, 536870911}, -} - -func (*Complex) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_Complex -} -func (m *Complex) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -func (m *Complex) GetImaginary() float64 { - if m != nil && m.Imaginary != nil { - return *m.Imaginary - } - return 0 -} - -var E_Complex_RealExtension = &proto.ExtensionDesc{ - ExtendedType: (*Real)(nil), - ExtensionType: (*Complex)(nil), - Field: 123, - Name: "jsonpb.Complex.real_extension", - Tag: "bytes,123,opt,name=real_extension", -} - -var E_Name = &proto.ExtensionDesc{ - ExtendedType: (*Real)(nil), - ExtensionType: (*string)(nil), - Field: 124, - Name: "jsonpb.name", - Tag: "bytes,124,opt,name=name", -} - -func init() { - proto.RegisterType((*Simple)(nil), "jsonpb.Simple") - proto.RegisterType((*Repeats)(nil), "jsonpb.Repeats") - proto.RegisterType((*Widget)(nil), "jsonpb.Widget") - proto.RegisterType((*Maps)(nil), "jsonpb.Maps") - proto.RegisterType((*MsgWithOneof)(nil), "jsonpb.MsgWithOneof") - proto.RegisterType((*Real)(nil), "jsonpb.Real") - proto.RegisterType((*Complex)(nil), "jsonpb.Complex") - proto.RegisterEnum("jsonpb.Widget_Color", Widget_Color_name, Widget_Color_value) - proto.RegisterExtension(E_Complex_RealExtension) - proto.RegisterExtension(E_Name) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/test_objects.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/test_objects.proto deleted file mode 100644 index 77f7fba9..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/jsonpb/jsonpb_test_proto/test_objects.proto +++ /dev/null @@ -1,110 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2015 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto2"; - -package jsonpb; - -// Test message for holding primitive types. -message Simple { - optional bool o_bool = 1; - optional int32 o_int32 = 2; - optional int64 o_int64 = 3; - optional uint32 o_uint32 = 4; - optional uint64 o_uint64 = 5; - optional sint32 o_sint32 = 6; - optional sint64 o_sint64 = 7; - optional float o_float = 8; - optional double o_double = 9; - optional string o_string = 10; - optional bytes o_bytes = 11; -} - -// Test message for holding repeated primitives. -message Repeats { - repeated bool r_bool = 1; - repeated int32 r_int32 = 2; - repeated int64 r_int64 = 3; - repeated uint32 r_uint32 = 4; - repeated uint64 r_uint64 = 5; - repeated sint32 r_sint32 = 6; - repeated sint64 r_sint64 = 7; - repeated float r_float = 8; - repeated double r_double = 9; - repeated string r_string = 10; - repeated bytes r_bytes = 11; -} - -// Test message for holding enums and nested messages. -message Widget { - enum Color { - RED = 0; - GREEN = 1; - BLUE = 2; - }; - optional Color color = 1; - repeated Color r_color = 2; - - optional Simple simple = 10; - repeated Simple r_simple = 11; - - optional Repeats repeats = 20; - repeated Repeats r_repeats = 21; -} - -message Maps { - map m_int64_str = 1; - map m_bool_simple = 2; -} - -message MsgWithOneof { - oneof union { - string title = 1; - int64 salary = 2; - } -} - -message Real { - optional double value = 1; - extensions 100 to max; -} - -extend Real { - optional string name = 124; -} - -message Complex { - extend Real { - optional Complex real_extension = 123; - } - optional double imaginary = 1; - extensions 100 to max; -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/package.json b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/package.json deleted file mode 100644 index 08ff6cf1..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "gogo-protobuf", - "author": "whyrusleeping", - "version": "0.0.0", - "language": "go", - "gx": { - "dvcsimport": "github.com/gogo/protobuf" - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/defaultcheck/defaultcheck.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/defaultcheck/defaultcheck.go deleted file mode 100644 index a45092ea..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/defaultcheck/defaultcheck.go +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The defaultcheck plugin is used to check whether nullable is not used incorrectly. -For instance: -An error is caused if a nullable field: - - has a default value, - - is an enum which does not start at zero, - - is used for an extension, - - is used for a native proto3 type, - - is used for a repeated native type. - -An error is also caused if a field with a default value is used in a message: - - which is a face. - - without getters. - -It is enabled by the following extensions: - - - nullable - -For incorrect usage of nullable with tests see: - - github.com/gogo/protobuf/test/nullableconflict - -*/ -package defaultcheck - -import ( - "fmt" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" - "os" -) - -type plugin struct { - *generator.Generator -} - -func NewPlugin() *plugin { - return &plugin{} -} - -func (p *plugin) Name() string { - return "defaultcheck" -} - -func (p *plugin) Init(g *generator.Generator) { - p.Generator = g -} - -func (p *plugin) Generate(file *generator.FileDescriptor) { - proto3 := gogoproto.IsProto3(file.FileDescriptorProto) - for _, msg := range file.Messages() { - getters := gogoproto.HasGoGetters(file.FileDescriptorProto, msg.DescriptorProto) - face := gogoproto.IsFace(file.FileDescriptorProto, msg.DescriptorProto) - for _, field := range msg.GetField() { - if len(field.GetDefaultValue()) > 0 { - if !getters { - fmt.Fprintf(os.Stderr, "ERROR: field %v.%v cannot have a default value and not have a getter method", generator.CamelCase(*msg.Name), generator.CamelCase(*field.Name)) - os.Exit(1) - } - if face { - fmt.Fprintf(os.Stderr, "ERROR: field %v.%v cannot have a default value be in a face", generator.CamelCase(*msg.Name), generator.CamelCase(*field.Name)) - os.Exit(1) - } - } - if gogoproto.IsNullable(field) { - continue - } - if len(field.GetDefaultValue()) > 0 { - fmt.Fprintf(os.Stderr, "ERROR: field %v.%v cannot be non-nullable and have a default value", generator.CamelCase(*msg.Name), generator.CamelCase(*field.Name)) - os.Exit(1) - } - if !field.IsMessage() && !gogoproto.IsCustomType(field) { - if field.IsRepeated() { - fmt.Fprintf(os.Stderr, "WARNING: field %v.%v is a repeated non-nullable native type, nullable=false has no effect\n", generator.CamelCase(*msg.Name), generator.CamelCase(*field.Name)) - } else if proto3 { - fmt.Fprintf(os.Stderr, "ERROR: field %v.%v is a native type and in proto3 syntax with nullable=false there exists conflicting implementations when encoding zero values", generator.CamelCase(*msg.Name), generator.CamelCase(*field.Name)) - os.Exit(1) - } - if field.IsBytes() { - fmt.Fprintf(os.Stderr, "WARNING: field %v.%v is a non-nullable bytes type, nullable=false has no effect\n", generator.CamelCase(*msg.Name), generator.CamelCase(*field.Name)) - } - } - if !field.IsEnum() { - continue - } - enum := p.ObjectNamed(field.GetTypeName()).(*generator.EnumDescriptor) - if len(enum.Value) == 0 || enum.Value[0].GetNumber() != 0 { - fmt.Fprintf(os.Stderr, "ERROR: field %v.%v cannot be non-nullable and be an enum type %v which does not start with zero", generator.CamelCase(*msg.Name), generator.CamelCase(*field.Name), enum.GetName()) - os.Exit(1) - } - } - } - for _, e := range file.GetExtension() { - if !gogoproto.IsNullable(e) { - fmt.Fprintf(os.Stderr, "ERROR: extended field %v cannot be nullable %v", generator.CamelCase(e.GetName()), generator.CamelCase(*e.Name)) - os.Exit(1) - } - } -} - -func (p *plugin) GenerateImports(*generator.FileDescriptor) {} - -func init() { - generator.RegisterPlugin(NewPlugin()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/description/description.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/description/description.go deleted file mode 100644 index 872879aa..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/description/description.go +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The description (experimental) plugin generates a Description method for each message. -The Description method returns a populated google_protobuf.FileDescriptorSet struct. -This contains the description of the files used to generate this message. - -It is enabled by the following extensions: - - - description - - description_all - -The description plugin also generates a test given it is enabled using one of the following extensions: - - - testgen - - testgen_all - -Let us look at: - - github.com/gogo/protobuf/test/example/example.proto - -Btw all the output can be seen at: - - github.com/gogo/protobuf/test/example/* - -The following message: - - message B { - option (gogoproto.description) = true; - optional A A = 1 [(gogoproto.nullable) = false, (gogoproto.embed) = true]; - repeated bytes G = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; - } - -given to the description plugin, will generate the following code: - - func (this *B) Description() (desc *google_protobuf.FileDescriptorSet) { - return ExampleDescription() - } - -and the following test code: - - func TestDescription(t *testing9.T) { - ExampleDescription() - } - -The hope is to use this struct in some way instead of reflect. -This package is subject to change, since a use has not been figured out yet. - -*/ -package description - -import ( - "fmt" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" -) - -type plugin struct { - *generator.Generator - used bool -} - -func NewPlugin() *plugin { - return &plugin{} -} - -func (p *plugin) Name() string { - return "description" -} - -func (p *plugin) Init(g *generator.Generator) { - p.Generator = g -} - -func (p *plugin) Generate(file *generator.FileDescriptor) { - p.used = false - localName := generator.FileName(file) - for _, message := range file.Messages() { - if !gogoproto.HasDescription(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - p.used = true - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - p.P(`func (this *`, ccTypeName, `) Description() (desc *descriptor.FileDescriptorSet) {`) - p.In() - p.P(`return `, localName, `Description()`) - p.Out() - p.P(`}`) - } - - if p.used { - - p.P(`func `, localName, `Description() (desc *descriptor.FileDescriptorSet) {`) - p.In() - //Don't generate SourceCodeInfo, since it will create too much code. - - ss := make([]*descriptor.SourceCodeInfo, 0) - for _, f := range p.Generator.AllFiles().GetFile() { - ss = append(ss, f.SourceCodeInfo) - f.SourceCodeInfo = nil - } - s := fmt.Sprintf("%#v", p.Generator.AllFiles()) - for i, f := range p.Generator.AllFiles().GetFile() { - f.SourceCodeInfo = ss[i] - } - p.P(`return `, s) - p.Out() - p.P(`}`) - } -} - -func (this *plugin) GenerateImports(file *generator.FileDescriptor) { - if this.used { - this.P(`import "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"`) - } -} - -func init() { - generator.RegisterPlugin(NewPlugin()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/description/descriptiontest.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/description/descriptiontest.go deleted file mode 100644 index 38b4977c..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/description/descriptiontest.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -package description - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/testgen" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" -) - -type test struct { - *generator.Generator -} - -func NewTest(g *generator.Generator) testgen.TestPlugin { - return &test{g} -} - -func (p *test) Generate(imports generator.PluginImports, file *generator.FileDescriptor) bool { - used := false - testingPkg := imports.NewImport("testing") - for _, message := range file.Messages() { - if !gogoproto.HasDescription(file.FileDescriptorProto, message.DescriptorProto) || - !gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - used = true - } - - if used { - localName := generator.FileName(file) - p.P(`func Test`, localName, `Description(t *`, testingPkg.Use(), `.T) {`) - p.In() - p.P(localName, `Description()`) - p.Out() - p.P(`}`) - - } - return used -} - -func init() { - testgen.RegisterTestPlugin(NewTest) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/embedcheck/embedcheck.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/embedcheck/embedcheck.go deleted file mode 100644 index 55c56c9f..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/embedcheck/embedcheck.go +++ /dev/null @@ -1,196 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The embedcheck plugin is used to check whether embed is not used incorrectly. -For instance: -An embedded message has a generated string method, but the is a member of a message which does not. -This causes a warning. -An error is caused by a namespace conflict. - -It is enabled by the following extensions: - - - embed - - embed_all - -For incorrect usage of embed with tests see: - - github.com/gogo/protobuf/test/embedconflict - -*/ -package embedcheck - -import ( - "fmt" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" - "os" -) - -type plugin struct { - *generator.Generator -} - -func NewPlugin() *plugin { - return &plugin{} -} - -func (p *plugin) Name() string { - return "embedcheck" -} - -func (p *plugin) Init(g *generator.Generator) { - p.Generator = g -} - -var overwriters []map[string]gogoproto.EnableFunc = []map[string]gogoproto.EnableFunc{ - { - "stringer": gogoproto.IsStringer, - }, - { - "gostring": gogoproto.HasGoString, - }, - { - "equal": gogoproto.HasEqual, - }, - { - "verboseequal": gogoproto.HasVerboseEqual, - }, - { - "size": gogoproto.IsSizer, - }, - { - "unmarshaler": gogoproto.IsUnmarshaler, - "unsafe_unmarshaler": gogoproto.IsUnsafeUnmarshaler, - }, - { - "marshaler": gogoproto.IsMarshaler, - "unsafe_marshaler": gogoproto.IsUnsafeMarshaler, - }, -} - -func (p *plugin) Generate(file *generator.FileDescriptor) { - for _, msg := range file.Messages() { - for _, os := range overwriters { - possible := true - for _, overwriter := range os { - if overwriter(file.FileDescriptorProto, msg.DescriptorProto) { - possible = false - } - } - if possible { - p.checkOverwrite(msg, os) - } - } - p.checkNameSpace(msg) - for _, field := range msg.GetField() { - if gogoproto.IsEmbed(field) && gogoproto.IsCustomName(field) { - fmt.Fprintf(os.Stderr, "ERROR: field %v with custom name %v cannot be embedded", *field.Name, gogoproto.GetCustomName(field)) - os.Exit(1) - } - } - p.checkRepeated(msg) - } - for _, e := range file.GetExtension() { - if gogoproto.IsEmbed(e) { - fmt.Fprintf(os.Stderr, "ERROR: extended field %v cannot be embedded", generator.CamelCase(*e.Name)) - os.Exit(1) - } - } -} - -func (p *plugin) checkNameSpace(message *generator.Descriptor) map[string]bool { - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - names := make(map[string]bool) - for _, field := range message.Field { - fieldname := generator.CamelCase(*field.Name) - if field.IsMessage() && gogoproto.IsEmbed(field) { - desc := p.ObjectNamed(field.GetTypeName()) - moreNames := p.checkNameSpace(desc.(*generator.Descriptor)) - for another := range moreNames { - if names[another] { - fmt.Fprintf(os.Stderr, "ERROR: duplicate embedded fieldname %v in type %v\n", fieldname, ccTypeName) - os.Exit(1) - } - names[another] = true - } - } else { - if names[fieldname] { - fmt.Fprintf(os.Stderr, "ERROR: duplicate embedded fieldname %v in type %v\n", fieldname, ccTypeName) - os.Exit(1) - } - names[fieldname] = true - } - } - return names -} - -func (p *plugin) checkOverwrite(message *generator.Descriptor, enablers map[string]gogoproto.EnableFunc) { - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - names := []string{} - for name := range enablers { - names = append(names, name) - } - for _, field := range message.Field { - if field.IsMessage() && gogoproto.IsEmbed(field) { - fieldname := generator.CamelCase(*field.Name) - desc := p.ObjectNamed(field.GetTypeName()) - msg := desc.(*generator.Descriptor) - for errStr, enabled := range enablers { - if enabled(msg.File(), msg.DescriptorProto) { - fmt.Fprintf(os.Stderr, "WARNING: found non-%v %v with embedded %v %v\n", names, ccTypeName, errStr, fieldname) - } - } - p.checkOverwrite(msg, enablers) - } - } -} - -func (p *plugin) checkRepeated(message *generator.Descriptor) { - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - for _, field := range message.Field { - if !gogoproto.IsEmbed(field) { - continue - } - if field.IsBytes() { - fieldname := generator.CamelCase(*field.Name) - fmt.Fprintf(os.Stderr, "ERROR: found embedded bytes field %s in message %s\n", fieldname, ccTypeName) - os.Exit(1) - } - if !field.IsRepeated() { - continue - } - fieldname := generator.CamelCase(*field.Name) - fmt.Fprintf(os.Stderr, "ERROR: found repeated embedded field %s in message %s\n", fieldname, ccTypeName) - os.Exit(1) - } -} - -func (p *plugin) GenerateImports(*generator.FileDescriptor) {} - -func init() { - generator.RegisterPlugin(NewPlugin()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/enumstringer/enumstringer.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/enumstringer/enumstringer.go deleted file mode 100644 index 1d4dcd9b..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/enumstringer/enumstringer.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The enumstringer (experimental) plugin generates a String method for each enum. - -It is enabled by the following extensions: - - - enum_stringer - - enum_stringer_all - -This package is subject to change. - -*/ -package enumstringer - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" -) - -type enumstringer struct { - *generator.Generator - generator.PluginImports - atleastOne bool - localName string -} - -func NewEnumStringer() *enumstringer { - return &enumstringer{} -} - -func (p *enumstringer) Name() string { - return "enumstringer" -} - -func (p *enumstringer) Init(g *generator.Generator) { - p.Generator = g -} - -func (p *enumstringer) Generate(file *generator.FileDescriptor) { - p.PluginImports = generator.NewPluginImports(p.Generator) - p.atleastOne = false - - p.localName = generator.FileName(file) - - strconvPkg := p.NewImport("strconv") - - for _, enum := range file.Enums() { - if !gogoproto.IsEnumStringer(file.FileDescriptorProto, enum.EnumDescriptorProto) { - continue - } - if gogoproto.IsGoEnumStringer(file.FileDescriptorProto, enum.EnumDescriptorProto) { - panic("old enum string method needs to be disabled, please use gogoproto.old_enum_stringer or gogoproto.old_enum_string_all and set it to false") - } - p.atleastOne = true - ccTypeName := generator.CamelCaseSlice(enum.TypeName()) - p.P("func (x ", ccTypeName, ") String() string {") - p.In() - p.P(`s, ok := `, ccTypeName, `_name[int32(x)]`) - p.P(`if ok {`) - p.In() - p.P(`return s`) - p.Out() - p.P(`}`) - p.P(`return `, strconvPkg.Use(), `.Itoa(int(x))`) - p.Out() - p.P(`}`) - } - - if !p.atleastOne { - return - } - -} - -func init() { - generator.RegisterPlugin(NewEnumStringer()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/equal/equal.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/equal/equal.go deleted file mode 100644 index ee0285c7..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/equal/equal.go +++ /dev/null @@ -1,571 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The equal plugin generates an Equal and a VerboseEqual method for each message. -These equal methods are quite obvious. -The only difference is that VerboseEqual returns a non nil error if it is not equal. -This error contains more detail on exactly which part of the message was not equal to the other message. -The idea is that this is useful for debugging. - -Equal is enabled using the following extensions: - - - equal - - equal_all - -While VerboseEqual is enable dusing the following extensions: - - - verbose_equal - - verbose_equal_all - -The equal plugin also generates a test given it is enabled using one of the following extensions: - - - testgen - - testgen_all - -Let us look at: - - github.com/gogo/protobuf/test/example/example.proto - -Btw all the output can be seen at: - - github.com/gogo/protobuf/test/example/* - -The following message: - - option (gogoproto.equal_all) = true; - option (gogoproto.verbose_equal_all) = true; - - message B { - optional A A = 1 [(gogoproto.nullable) = false, (gogoproto.embed) = true]; - repeated bytes G = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; - } - -given to the equal plugin, will generate the following code: - - func (this *B) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt2.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*B) - if !ok { - return fmt2.Errorf("that is not of type *B") - } - if that1 == nil { - if this == nil { - return nil - } - return fmt2.Errorf("that is type *B but is nil && this != nil") - } else if this == nil { - return fmt2.Errorf("that is type *Bbut is not nil && this == nil") - } - if !this.A.Equal(&that1.A) { - return fmt2.Errorf("A this(%v) Not Equal that(%v)", this.A, that1.A) - } - if len(this.G) != len(that1.G) { - return fmt2.Errorf("G this(%v) Not Equal that(%v)", len(this.G), len(that1.G)) - } - for i := range this.G { - if !this.G[i].Equal(that1.G[i]) { - return fmt2.Errorf("G this[%v](%v) Not Equal that[%v](%v)", i, this.G[i], i, that1.G[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt2.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil - } - - func (this *B) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*B) - if !ok { - return false - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.A.Equal(&that1.A) { - return false - } - if len(this.G) != len(that1.G) { - return false - } - for i := range this.G { - if !this.G[i].Equal(that1.G[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true - } - -and the following test code: - - func TestBVerboseEqual(t *testing8.T) { - popr := math_rand8.New(math_rand8.NewSource(time8.Now().UnixNano())) - p := NewPopulatedB(popr, false) - data, err := github_com_gogo_protobuf_proto2.Marshal(p) - if err != nil { - panic(err) - } - msg := &B{} - if err := github_com_gogo_protobuf_proto2.Unmarshal(data, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } - -*/ -package equal - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity" -) - -type plugin struct { - *generator.Generator - generator.PluginImports - fmtPkg generator.Single - bytesPkg generator.Single -} - -func NewPlugin() *plugin { - return &plugin{} -} - -func (p *plugin) Name() string { - return "equal" -} - -func (p *plugin) Init(g *generator.Generator) { - p.Generator = g -} - -func (p *plugin) Generate(file *generator.FileDescriptor) { - p.PluginImports = generator.NewPluginImports(p.Generator) - p.fmtPkg = p.NewImport("fmt") - p.bytesPkg = p.NewImport("bytes") - - for _, msg := range file.Messages() { - if msg.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - if gogoproto.HasVerboseEqual(file.FileDescriptorProto, msg.DescriptorProto) { - p.generateMessage(file, msg, true) - } - if gogoproto.HasEqual(file.FileDescriptorProto, msg.DescriptorProto) { - p.generateMessage(file, msg, false) - } - } -} - -func (p *plugin) generateNullableField(fieldname string, verbose bool) { - p.P(`if this.`, fieldname, ` != nil && that1.`, fieldname, ` != nil {`) - p.In() - p.P(`if *this.`, fieldname, ` != *that1.`, fieldname, `{`) - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, ` this(%v) Not Equal that(%v)", *this.`, fieldname, `, *that1.`, fieldname, `)`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - p.Out() - p.P(`} else if this.`, fieldname, ` != nil {`) - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("this.`, fieldname, ` == nil && that.`, fieldname, ` != nil")`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`} else if that1.`, fieldname, ` != nil {`) -} - -func (p *plugin) generateMsgNullAndTypeCheck(ccTypeName string, verbose bool) { - p.P(`if that == nil {`) - p.In() - p.P(`if this == nil {`) - p.In() - if verbose { - p.P(`return nil`) - } else { - p.P(`return true`) - } - p.Out() - p.P(`}`) - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("that == nil && this != nil")`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - p.P(``) - p.P(`that1, ok := that.(*`, ccTypeName, `)`) - p.P(`if !ok {`) - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("that is not of type *`, ccTypeName, `")`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - p.P(`if that1 == nil {`) - p.In() - p.P(`if this == nil {`) - p.In() - if verbose { - p.P(`return nil`) - } else { - p.P(`return true`) - } - p.Out() - p.P(`}`) - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("that is type *`, ccTypeName, ` but is nil && this != nil")`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`} else if this == nil {`) - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("that is type *`, ccTypeName, `but is not nil && this == nil")`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) -} - -func (p *plugin) generateField(file *generator.FileDescriptor, message *generator.Descriptor, field *descriptor.FieldDescriptorProto, verbose bool) { - proto3 := gogoproto.IsProto3(file.FileDescriptorProto) - fieldname := p.GetOneOfFieldName(message, field) - repeated := field.IsRepeated() - ctype := gogoproto.IsCustomType(field) - nullable := gogoproto.IsNullable(field) - // oneof := field.OneofIndex != nil - if !repeated { - if ctype { - if nullable { - p.P(`if that1.`, fieldname, ` == nil {`) - p.In() - p.P(`if this.`, fieldname, ` != nil {`) - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("this.`, fieldname, ` != nil && that1.`, fieldname, ` == nil")`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - p.Out() - p.P(`} else if !this.`, fieldname, `.Equal(*that1.`, fieldname, `) {`) - } else { - p.P(`if !this.`, fieldname, `.Equal(that1.`, fieldname, `) {`) - } - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, ` this(%v) Not Equal that(%v)", this.`, fieldname, `, that1.`, fieldname, `)`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - } else { - if field.IsMessage() || p.IsGroup(field) { - if nullable { - p.P(`if !this.`, fieldname, `.Equal(that1.`, fieldname, `) {`) - } else { - p.P(`if !this.`, fieldname, `.Equal(&that1.`, fieldname, `) {`) - } - } else if field.IsBytes() { - p.P(`if !`, p.bytesPkg.Use(), `.Equal(this.`, fieldname, `, that1.`, fieldname, `) {`) - } else if field.IsString() { - if nullable && !proto3 { - p.generateNullableField(fieldname, verbose) - } else { - p.P(`if this.`, fieldname, ` != that1.`, fieldname, `{`) - } - } else { - if nullable && !proto3 { - p.generateNullableField(fieldname, verbose) - } else { - p.P(`if this.`, fieldname, ` != that1.`, fieldname, `{`) - } - } - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, ` this(%v) Not Equal that(%v)", this.`, fieldname, `, that1.`, fieldname, `)`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - } - } else { - p.P(`if len(this.`, fieldname, `) != len(that1.`, fieldname, `) {`) - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, ` this(%v) Not Equal that(%v)", len(this.`, fieldname, `), len(that1.`, fieldname, `))`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - p.P(`for i := range this.`, fieldname, ` {`) - p.In() - if ctype { - p.P(`if !this.`, fieldname, `[i].Equal(that1.`, fieldname, `[i]) {`) - } else { - if generator.IsMap(file.FileDescriptorProto, field) { - mapMsg := generator.GetMap(file.FileDescriptorProto, field) - _, mapValue := mapMsg.GetMapFields() - if mapValue.IsMessage() || p.IsGroup(mapValue) { - p.P(`if !this.`, fieldname, `[i].Equal(that1.`, fieldname, `[i]) {`) - } else if mapValue.IsBytes() { - p.P(`if !`, p.bytesPkg.Use(), `.Equal(this.`, fieldname, `[i], that1.`, fieldname, `[i]) {`) - } else if mapValue.IsString() { - p.P(`if this.`, fieldname, `[i] != that1.`, fieldname, `[i] {`) - } else { - p.P(`if this.`, fieldname, `[i] != that1.`, fieldname, `[i] {`) - } - } else if field.IsMessage() || p.IsGroup(field) { - if nullable { - p.P(`if !this.`, fieldname, `[i].Equal(that1.`, fieldname, `[i]) {`) - } else { - p.P(`if !this.`, fieldname, `[i].Equal(&that1.`, fieldname, `[i]) {`) - } - } else if field.IsBytes() { - p.P(`if !`, p.bytesPkg.Use(), `.Equal(this.`, fieldname, `[i], that1.`, fieldname, `[i]) {`) - } else if field.IsString() { - p.P(`if this.`, fieldname, `[i] != that1.`, fieldname, `[i] {`) - } else { - p.P(`if this.`, fieldname, `[i] != that1.`, fieldname, `[i] {`) - } - } - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, ` this[%v](%v) Not Equal that[%v](%v)", i, this.`, fieldname, `[i], i, that1.`, fieldname, `[i])`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - } -} - -func (p *plugin) generateMessage(file *generator.FileDescriptor, message *generator.Descriptor, verbose bool) { - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - if verbose { - p.P(`func (this *`, ccTypeName, `) VerboseEqual(that interface{}) error {`) - } else { - p.P(`func (this *`, ccTypeName, `) Equal(that interface{}) bool {`) - } - p.In() - p.generateMsgNullAndTypeCheck(ccTypeName, verbose) - oneofs := make(map[string]struct{}) - - for _, field := range message.Field { - oneof := field.OneofIndex != nil - if oneof { - fieldname := p.GetFieldName(message, field) - if _, ok := oneofs[fieldname]; ok { - continue - } else { - oneofs[fieldname] = struct{}{} - } - p.P(`if that1.`, fieldname, ` == nil {`) - p.In() - p.P(`if this.`, fieldname, ` != nil {`) - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("this.`, fieldname, ` != nil && that1.`, fieldname, ` == nil")`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - p.Out() - p.P(`} else if this.`, fieldname, ` == nil {`) - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("this.`, fieldname, ` == nil && that1.`, fieldname, ` != nil")`) - } else { - p.P(`return false`) - } - p.Out() - if verbose { - p.P(`} else if err := this.`, fieldname, `.VerboseEqual(that1.`, fieldname, `); err != nil {`) - } else { - p.P(`} else if !this.`, fieldname, `.Equal(that1.`, fieldname, `) {`) - } - p.In() - if verbose { - p.P(`return err`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - } else { - p.generateField(file, message, field, verbose) - } - } - if message.DescriptorProto.HasExtension() { - fieldname := "XXX_extensions" - if gogoproto.HasExtensionsMap(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`for k, v := range this.`, fieldname, ` {`) - p.In() - p.P(`if v2, ok := that1.`, fieldname, `[k]; ok {`) - p.In() - p.P(`if !v.Equal(&v2) {`) - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, ` this[%v](%v) Not Equal that[%v](%v)", k, this.`, fieldname, `[k], k, that1.`, fieldname, `[k])`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - p.Out() - p.P(`} else {`) - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, `[%v] Not In that", k)`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - - p.P(`for k, _ := range that1.`, fieldname, ` {`) - p.In() - p.P(`if _, ok := this.`, fieldname, `[k]; !ok {`) - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, `[%v] Not In this", k)`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - } else { - p.P(`if !`, p.bytesPkg.Use(), `.Equal(this.`, fieldname, `, that1.`, fieldname, `) {`) - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, ` this(%v) Not Equal that(%v)", this.`, fieldname, `, that1.`, fieldname, `)`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - } - } - if gogoproto.HasUnrecognized(file.FileDescriptorProto, message.DescriptorProto) { - fieldname := "XXX_unrecognized" - p.P(`if !`, p.bytesPkg.Use(), `.Equal(this.`, fieldname, `, that1.`, fieldname, `) {`) - p.In() - if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, ` this(%v) Not Equal that(%v)", this.`, fieldname, `, that1.`, fieldname, `)`) - } else { - p.P(`return false`) - } - p.Out() - p.P(`}`) - } - if verbose { - p.P(`return nil`) - } else { - p.P(`return true`) - } - p.Out() - p.P(`}`) - - //Generate Equal methods for oneof fields - m := proto.Clone(message.DescriptorProto).(*descriptor.DescriptorProto) - for _, field := range m.Field { - oneof := field.OneofIndex != nil - if !oneof { - continue - } - ccTypeName := p.OneOfTypeName(message, field) - if verbose { - p.P(`func (this *`, ccTypeName, `) VerboseEqual(that interface{}) error {`) - } else { - p.P(`func (this *`, ccTypeName, `) Equal(that interface{}) bool {`) - } - p.In() - - p.generateMsgNullAndTypeCheck(ccTypeName, verbose) - vanity.TurnOffNullableForNativeTypesWithoutDefaultsOnly(field) - p.generateField(file, message, field, verbose) - - if verbose { - p.P(`return nil`) - } else { - p.P(`return true`) - } - p.Out() - p.P(`}`) - } -} - -func init() { - generator.RegisterPlugin(NewPlugin()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/equal/equaltest.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/equal/equaltest.go deleted file mode 100644 index 90a270ae..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/equal/equaltest.go +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -package equal - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/testgen" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" -) - -type test struct { - *generator.Generator -} - -func NewTest(g *generator.Generator) testgen.TestPlugin { - return &test{g} -} - -func (p *test) Generate(imports generator.PluginImports, file *generator.FileDescriptor) bool { - used := false - randPkg := imports.NewImport("math/rand") - timePkg := imports.NewImport("time") - testingPkg := imports.NewImport("testing") - protoPkg := imports.NewImport("github.com/gogo/protobuf/proto") - if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { - protoPkg = imports.NewImport("github.com/golang/protobuf/proto") - } - for _, message := range file.Messages() { - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - if !gogoproto.HasVerboseEqual(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - - if gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { - used = true - p.P(`func Test`, ccTypeName, `VerboseEqual(t *`, testingPkg.Use(), `.T) {`) - p.In() - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(`, timePkg.Use(), `.Now().UnixNano()))`) - p.P(`p := NewPopulated`, ccTypeName, `(popr, false)`) - p.P(`data, err := `, protoPkg.Use(), `.Marshal(p)`) - p.P(`if err != nil {`) - p.In() - p.P(`panic(err)`) - p.Out() - p.P(`}`) - p.P(`msg := &`, ccTypeName, `{}`) - p.P(`if err := `, protoPkg.Use(), `.Unmarshal(data, msg); err != nil {`) - p.In() - p.P(`panic(err)`) - p.Out() - p.P(`}`) - p.P(`if err := p.VerboseEqual(msg); err != nil {`) - p.In() - p.P(`t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err)`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - } - - } - return used -} - -func init() { - testgen.RegisterTestPlugin(NewTest) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/face/face.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/face/face.go deleted file mode 100644 index 8ef42c0a..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/face/face.go +++ /dev/null @@ -1,244 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The face plugin generates a function will be generated which can convert a structure which satisfies an interface (face) to the specified structure. -This interface contains getters for each of the fields in the struct. -The specified struct is also generated with the getters. -This means that getters should be turned off so as not to conflict with face getters. -This allows it to satisfy its own face. - -It is enabled by the following extensions: - - - face - - face_all - -Turn off getters by using the following extensions: - - - getters - - getters_all - -The face plugin also generates a test given it is enabled using one of the following extensions: - - - testgen - - testgen_all - -Let us look at: - - github.com/gogo/protobuf/test/example/example.proto - -Btw all the output can be seen at: - - github.com/gogo/protobuf/test/example/* - -The following message: - - message A { - option (gogoproto.face) = true; - option (gogoproto.goproto_getters) = false; - optional string Description = 1 [(gogoproto.nullable) = false]; - optional int64 Number = 2 [(gogoproto.nullable) = false]; - optional bytes Id = 3 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uuid", (gogoproto.nullable) = false]; - } - -given to the face plugin, will generate the following code: - - type AFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetDescription() string - GetNumber() int64 - GetId() github_com_gogo_protobuf_test_custom.Uuid - } - - func (this *A) Proto() github_com_gogo_protobuf_proto.Message { - return this - } - - func (this *A) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAFromFace(this) - } - - func (this *A) GetDescription() string { - return this.Description - } - - func (this *A) GetNumber() int64 { - return this.Number - } - - func (this *A) GetId() github_com_gogo_protobuf_test_custom.Uuid { - return this.Id - } - - func NewAFromFace(that AFace) *A { - this := &A{} - this.Description = that.GetDescription() - this.Number = that.GetNumber() - this.Id = that.GetId() - return this - } - -and the following test code: - - func TestAFace(t *testing7.T) { - popr := math_rand7.New(math_rand7.NewSource(time7.Now().UnixNano())) - p := NewPopulatedA(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } - } - -The struct A, representing the message, will also be generated just like always. -As you can see A satisfies its own Face, AFace. - -Creating another struct which satisfies AFace is very easy. -Simply create all these methods specified in AFace. -Implementing The Proto method is done with the helper function NewAFromFace: - - func (this *MyStruct) Proto() proto.Message { - return NewAFromFace(this) - } - -just the like TestProto method which is used to test the NewAFromFace function. - -*/ -package face - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" - "strings" -) - -type plugin struct { - *generator.Generator - generator.PluginImports -} - -func NewPlugin() *plugin { - return &plugin{} -} - -func (p *plugin) Name() string { - return "face" -} - -func (p *plugin) Init(g *generator.Generator) { - p.Generator = g -} - -func (p *plugin) GetMapGoType(file *descriptor.FileDescriptorProto, field *descriptor.FieldDescriptorProto) string { - mapMsg := generator.GetMap(file, field) - keyField, valueField := mapMsg.GetMapFields() - keygoTyp, _ := p.GoType(nil, keyField) - keygoTyp = strings.Replace(keygoTyp, "*", "", 1) - valuegoTyp, _ := p.GoType(nil, valueField) - if !valueField.IsMessage() { - valuegoTyp = strings.Replace(valuegoTyp, "*", "", 1) - } - goTyp := "map[" + keygoTyp + "]" + valuegoTyp - return goTyp -} - -func (p *plugin) Generate(file *generator.FileDescriptor) { - p.PluginImports = generator.NewPluginImports(p.Generator) - protoPkg := p.NewImport("github.com/gogo/protobuf/proto") - if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { - protoPkg = p.NewImport("github.com/golang/protobuf/proto") - } - for _, message := range file.Messages() { - if !gogoproto.IsFace(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - if message.DescriptorProto.HasExtension() { - panic("face does not support message with extensions") - } - if gogoproto.HasGoGetters(file.FileDescriptorProto, message.DescriptorProto) { - panic("face requires getters to be disabled please use gogoproto.getters or gogoproto.getters_all and set it to false") - } - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - p.P(`type `, ccTypeName, `Face interface{`) - p.In() - p.P(`Proto() `, protoPkg.Use(), `.Message`) - for _, field := range message.Field { - fieldname := p.GetFieldName(message, field) - goTyp, _ := p.GoType(message, field) - if generator.IsMap(file.FileDescriptorProto, field) { - goTyp = p.GetMapGoType(file.FileDescriptorProto, field) - } - p.P(`Get`, fieldname, `() `, goTyp) - } - p.Out() - p.P(`}`) - p.P(``) - p.P(`func (this *`, ccTypeName, `) Proto() `, protoPkg.Use(), `.Message {`) - p.In() - p.P(`return this`) - p.Out() - p.P(`}`) - p.P(``) - p.P(`func (this *`, ccTypeName, `) TestProto() `, protoPkg.Use(), `.Message {`) - p.In() - p.P(`return New`, ccTypeName, `FromFace(this)`) - p.Out() - p.P(`}`) - p.P(``) - for _, field := range message.Field { - fieldname := p.GetFieldName(message, field) - goTyp, _ := p.GoType(message, field) - if generator.IsMap(file.FileDescriptorProto, field) { - goTyp = p.GetMapGoType(file.FileDescriptorProto, field) - } - p.P(`func (this *`, ccTypeName, `) Get`, fieldname, `() `, goTyp, `{`) - p.In() - p.P(` return this.`, fieldname) - p.Out() - p.P(`}`) - p.P(``) - } - p.P(``) - p.P(`func New`, ccTypeName, `FromFace(that `, ccTypeName, `Face) *`, ccTypeName, ` {`) - p.In() - p.P(`this := &`, ccTypeName, `{}`) - for _, field := range message.Field { - fieldname := p.GetFieldName(message, field) - p.P(`this.`, fieldname, ` = that.Get`, fieldname, `()`) - } - p.P(`return this`) - p.Out() - p.P(`}`) - p.P(``) - } -} - -func init() { - generator.RegisterPlugin(NewPlugin()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/face/facetest.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/face/facetest.go deleted file mode 100644 index c8eb0e1d..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/face/facetest.go +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -package face - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/testgen" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" -) - -type test struct { - *generator.Generator -} - -func NewTest(g *generator.Generator) testgen.TestPlugin { - return &test{g} -} - -func (p *test) Generate(imports generator.PluginImports, file *generator.FileDescriptor) bool { - used := false - randPkg := imports.NewImport("math/rand") - timePkg := imports.NewImport("time") - testingPkg := imports.NewImport("testing") - for _, message := range file.Messages() { - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - if !gogoproto.IsFace(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - - if gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { - used = true - - p.P(`func Test`, ccTypeName, `Face(t *`, testingPkg.Use(), `.T) {`) - p.In() - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(`, timePkg.Use(), `.Now().UnixNano()))`) - p.P(`p := NewPopulated`, ccTypeName, `(popr, true)`) - p.P(`msg := p.TestProto()`) - p.P(`if !p.Equal(msg) {`) - p.In() - p.P(`t.Fatalf("%#v !Face Equal %#v", msg, p)`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - } - - } - return used -} - -func init() { - testgen.RegisterTestPlugin(NewTest) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/gostring/gostring.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/gostring/gostring.go deleted file mode 100644 index 6ca9ac8e..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/gostring/gostring.go +++ /dev/null @@ -1,356 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The gostring plugin generates a GoString method for each message. -The GoString method is called whenever you use a fmt.Printf as such: - - fmt.Printf("%#v", mymessage) - -or whenever you actually call GoString() -The output produced by the GoString method can be copied from the output into code and used to set a variable. -It is totally valid Go Code and is populated exactly as the struct that was printed out. - -It is enabled by the following extensions: - - - gostring - - gostring_all - -The gostring plugin also generates a test given it is enabled using one of the following extensions: - - - testgen - - testgen_all - -Let us look at: - - github.com/gogo/protobuf/test/example/example.proto - -Btw all the output can be seen at: - - github.com/gogo/protobuf/test/example/* - -The following message: - - option (gogoproto.gostring_all) = true; - - message A { - optional string Description = 1 [(gogoproto.nullable) = false]; - optional int64 Number = 2 [(gogoproto.nullable) = false]; - optional bytes Id = 3 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uuid", (gogoproto.nullable) = false]; - } - -given to the gostring plugin, will generate the following code: - - func (this *A) GoString() string { - if this == nil { - return "nil" - } - s := strings1.Join([]string{`&test.A{` + `Description:` + fmt1.Sprintf("%#v", this.Description), `Number:` + fmt1.Sprintf("%#v", this.Number), `Id:` + fmt1.Sprintf("%#v", this.Id), `XXX_unrecognized:` + fmt1.Sprintf("%#v", this.XXX_unrecognized) + `}`}, ", ") - return s - } - -and the following test code: - - func TestAGoString(t *testing6.T) { - popr := math_rand6.New(math_rand6.NewSource(time6.Now().UnixNano())) - p := NewPopulatedA(popr, false) - s1 := p.GoString() - s2 := fmt2.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } - } - -Typically fmt.Printf("%#v") will stop to print when it reaches a pointer and -not print their values, while the generated GoString method will always print all values, recursively. - -*/ -package gostring - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" - "strconv" - "strings" -) - -type gostring struct { - *generator.Generator - generator.PluginImports - atleastOne bool - localName string -} - -func NewGoString() *gostring { - return &gostring{} -} - -func (p *gostring) Name() string { - return "gostring" -} - -func (p *gostring) Init(g *generator.Generator) { - p.Generator = g -} - -func (p *gostring) Generate(file *generator.FileDescriptor) { - proto3 := gogoproto.IsProto3(file.FileDescriptorProto) - p.PluginImports = generator.NewPluginImports(p.Generator) - p.atleastOne = false - - p.localName = generator.FileName(file) - - fmtPkg := p.NewImport("fmt") - stringsPkg := p.NewImport("strings") - protoPkg := p.NewImport("github.com/gogo/protobuf/proto") - if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { - protoPkg = p.NewImport("github.com/golang/protobuf/proto") - } - sortPkg := p.NewImport("sort") - strconvPkg := p.NewImport("strconv") - reflectPkg := p.NewImport("reflect") - sortKeysPkg := p.NewImport("github.com/gogo/protobuf/sortkeys") - - for _, message := range file.Messages() { - if !gogoproto.HasGoString(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - p.atleastOne = true - packageName := file.PackageName() - - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - p.P(`func (this *`, ccTypeName, `) GoString() string {`) - p.In() - p.P(`if this == nil {`) - p.In() - p.P(`return "nil"`) - p.Out() - p.P(`}`) - - p.P(`s := make([]string, 0, `, strconv.Itoa(len(message.Field)+4), `)`) - p.P(`s = append(s, "&`, packageName, ".", ccTypeName, `{")`) - - oneofs := make(map[string]struct{}) - for _, field := range message.Field { - nullable := gogoproto.IsNullable(field) - repeated := field.IsRepeated() - fieldname := p.GetFieldName(message, field) - oneof := field.OneofIndex != nil - if oneof { - if _, ok := oneofs[fieldname]; ok { - continue - } else { - oneofs[fieldname] = struct{}{} - } - p.P(`if this.`, fieldname, ` != nil {`) - p.In() - p.P(`s = append(s, "`, fieldname, `: " + `, fmtPkg.Use(), `.Sprintf("%#v", this.`, fieldname, `) + ",\n")`) - p.Out() - p.P(`}`) - } else if generator.IsMap(file.FileDescriptorProto, field) { - mapMsg := generator.GetMap(file.FileDescriptorProto, field) - keyField, valueField := mapMsg.GetMapFields() - keysName := `keysFor` + fieldname - keygoTyp, _ := p.GoType(nil, keyField) - keygoTyp = strings.Replace(keygoTyp, "*", "", 1) - keyCapTyp := generator.CamelCase(keygoTyp) - valuegoTyp, _ := p.GoType(nil, valueField) - if !valueField.IsMessage() { - valuegoTyp = strings.Replace(valuegoTyp, "*", "", 1) - } - p.P(keysName, ` := make([]`, keygoTyp, `, 0, len(this.`, fieldname, `))`) - p.P(`for k, _ := range this.`, fieldname, ` {`) - p.In() - p.P(keysName, ` = append(`, keysName, `, k)`) - p.Out() - p.P(`}`) - p.P(sortKeysPkg.Use(), `.`, keyCapTyp, `s(`, keysName, `)`) - mapName := `mapStringFor` + fieldname - p.P(mapName, ` := "map[`, keygoTyp, `]`, valuegoTyp, `{"`) - p.P(`for _, k := range `, keysName, ` {`) - p.In() - p.P(mapName, ` += fmt.Sprintf("%#v: %#v,", k, this.`, fieldname, `[k])`) - p.Out() - p.P(`}`) - p.P(mapName, ` += "}"`) - p.P(`if this.`, fieldname, ` != nil {`) - p.In() - p.P(`s = append(s, "`, fieldname, `: " + `, mapName, `+ ",\n")`) - p.Out() - p.P(`}`) - } else if field.IsMessage() || p.IsGroup(field) { - if nullable || repeated { - p.P(`if this.`, fieldname, ` != nil {`) - p.In() - } - if nullable { - p.P(`s = append(s, "`, fieldname, `: " + `, fmtPkg.Use(), `.Sprintf("%#v", this.`, fieldname, `) + ",\n")`) - } else if repeated { - p.P(`s = append(s, "`, fieldname, `: " + `, stringsPkg.Use(), `.Replace(`, fmtPkg.Use(), `.Sprintf("%#v", this.`, fieldname, `)`, ",`&`,``,1)", ` + ",\n")`) - } else { - p.P(`s = append(s, "`, fieldname, `: " + `, stringsPkg.Use(), `.Replace(this.`, fieldname, `.GoString()`, ",`&`,``,1)", ` + ",\n")`) - } - if nullable || repeated { - p.Out() - p.P(`}`) - } - } else { - if !proto3 && (nullable || repeated) { - p.P(`if this.`, fieldname, ` != nil {`) - p.In() - } - if field.IsEnum() { - if nullable && !repeated && !proto3 { - goTyp, _ := p.GoType(message, field) - p.P(`s = append(s, "`, fieldname, `: " + valueToGoString`, p.localName, `(this.`, fieldname, `,"`, packageName, ".", generator.GoTypeToName(goTyp), `"`, `) + ",\n")`) - } else { - p.P(`s = append(s, "`, fieldname, `: " + `, fmtPkg.Use(), `.Sprintf("%#v", this.`, fieldname, `) + ",\n")`) - } - } else { - if nullable && !repeated && !proto3 { - goTyp, _ := p.GoType(message, field) - p.P(`s = append(s, "`, fieldname, `: " + valueToGoString`, p.localName, `(this.`, fieldname, `,"`, generator.GoTypeToName(goTyp), `"`, `) + ",\n")`) - } else { - p.P(`s = append(s, "`, fieldname, `: " + `, fmtPkg.Use(), `.Sprintf("%#v", this.`, fieldname, `) + ",\n")`) - } - } - if !proto3 && (nullable || repeated) { - p.Out() - p.P(`}`) - } - } - } - if message.DescriptorProto.HasExtension() { - p.P(`if this.XXX_extensions != nil {`) - p.In() - if gogoproto.HasExtensionsMap(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`s = append(s, "XXX_extensions: " + extensionToGoString`, p.localName, `(this.XXX_extensions) + ",\n")`) - } else { - p.P(`s = append(s, "XXX_extensions: " + `, fmtPkg.Use(), `.Sprintf("%#v", this.XXX_extensions) + ",\n")`) - } - p.Out() - p.P(`}`) - } - if gogoproto.HasUnrecognized(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`if this.XXX_unrecognized != nil {`) - p.In() - p.P(`s = append(s, "XXX_unrecognized:" + `, fmtPkg.Use(), `.Sprintf("%#v", this.XXX_unrecognized) + ",\n")`) - p.Out() - p.P(`}`) - } - - p.P(`s = append(s, "}")`) - //outStr += strings.Join([]string{" + `}`", `}`, `,", "`, ")"}, "") - p.P(`return `, stringsPkg.Use(), `.Join(s, "")`) - p.Out() - p.P(`}`) - - //Generate GoString methods for oneof fields - for _, field := range message.Field { - oneof := field.OneofIndex != nil - if !oneof { - continue - } - ccTypeName := p.OneOfTypeName(message, field) - p.P(`func (this *`, ccTypeName, `) GoString() string {`) - p.In() - p.P(`if this == nil {`) - p.In() - p.P(`return "nil"`) - p.Out() - p.P(`}`) - outFlds := []string{} - fieldname := p.GetOneOfFieldName(message, field) - if field.IsMessage() || p.IsGroup(field) { - tmp := strings.Join([]string{"`", fieldname, ":` + "}, "") - tmp += strings.Join([]string{fmtPkg.Use(), `.Sprintf("%#v", this.`, fieldname, `)`}, "") - outFlds = append(outFlds, tmp) - } else { - tmp := strings.Join([]string{"`", fieldname, ":` + "}, "") - tmp += strings.Join([]string{fmtPkg.Use(), `.Sprintf("%#v", this.`, fieldname, ")"}, "") - outFlds = append(outFlds, tmp) - } - outStr := strings.Join([]string{"s := ", stringsPkg.Use(), ".Join([]string{`&", packageName, ".", ccTypeName, "{` + \n"}, "") - outStr += strings.Join(outFlds, ",\n") - outStr += strings.Join([]string{" + `}`", `}`, `,", "`, ")"}, "") - p.P(outStr) - p.P(`return s`) - p.Out() - p.P(`}`) - } - } - - if !p.atleastOne { - return - } - - p.P(`func valueToGoString`, p.localName, `(v interface{}, typ string) string {`) - p.In() - p.P(`rv := `, reflectPkg.Use(), `.ValueOf(v)`) - p.P(`if rv.IsNil() {`) - p.In() - p.P(`return "nil"`) - p.Out() - p.P(`}`) - p.P(`pv := `, reflectPkg.Use(), `.Indirect(rv).Interface()`) - p.P(`return `, fmtPkg.Use(), `.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv)`) - p.Out() - p.P(`}`) - - p.P(`func extensionToGoString`, p.localName, `(e map[int32]`, protoPkg.Use(), `.Extension) string {`) - p.In() - p.P(`if e == nil { return "nil" }`) - p.P(`s := "map[int32]proto.Extension{"`) - p.P(`keys := make([]int, 0, len(e))`) - p.P(`for k := range e {`) - p.In() - p.P(`keys = append(keys, int(k))`) - p.Out() - p.P(`}`) - p.P(sortPkg.Use(), `.Ints(keys)`) - p.P(`ss := []string{}`) - p.P(`for _, k := range keys {`) - p.In() - p.P(`ss = append(ss, `, strconvPkg.Use(), `.Itoa(k) + ": " + e[int32(k)].GoString())`) - p.Out() - p.P(`}`) - p.P(`s+=`, stringsPkg.Use(), `.Join(ss, ",") + "}"`) - p.P(`return s`) - p.Out() - p.P(`}`) - -} - -func init() { - generator.RegisterPlugin(NewGoString()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/gostring/gostringtest.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/gostring/gostringtest.go deleted file mode 100644 index ce36fec8..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/gostring/gostringtest.go +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -package gostring - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/testgen" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" -) - -type test struct { - *generator.Generator -} - -func NewTest(g *generator.Generator) testgen.TestPlugin { - return &test{g} -} - -func (p *test) Generate(imports generator.PluginImports, file *generator.FileDescriptor) bool { - used := false - randPkg := imports.NewImport("math/rand") - timePkg := imports.NewImport("time") - testingPkg := imports.NewImport("testing") - fmtPkg := imports.NewImport("fmt") - parserPkg := imports.NewImport("go/parser") - for _, message := range file.Messages() { - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - if !gogoproto.HasGoString(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - - if gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { - used = true - p.P(`func Test`, ccTypeName, `GoString(t *`, testingPkg.Use(), `.T) {`) - p.In() - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(`, timePkg.Use(), `.Now().UnixNano()))`) - p.P(`p := NewPopulated`, ccTypeName, `(popr, false)`) - p.P(`s1 := p.GoString()`) - p.P(`s2 := `, fmtPkg.Use(), `.Sprintf("%#v", p)`) - p.P(`if s1 != s2 {`) - p.In() - p.P(`t.Fatalf("GoString want %v got %v", s1, s2)`) - p.Out() - p.P(`}`) - p.P(`_, err := `, parserPkg.Use(), `.ParseExpr(s1)`) - p.P(`if err != nil {`) - p.In() - p.P(`panic(err)`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - } - - } - return used -} - -func init() { - testgen.RegisterTestPlugin(NewTest) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/grpc/grpc.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/grpc/grpc.go deleted file mode 100644 index 2d76e09d..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/grpc/grpc.go +++ /dev/null @@ -1,439 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2015 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -// Package grpc outputs gRPC service descriptions in Go code. -// It runs as a plugin for the Go protocol buffer compiler plugin. -// It is linked in to protoc-gen-go. -package grpc - -import ( - "fmt" - "path" - "strconv" - "strings" - - pb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" -) - -// Paths for packages used by code generated in this file, -// relative to the import_prefix of the generator.Generator. -const ( - contextPkgPath = "golang.org/x/net/context" - grpcPkgPath = "google.golang.org/grpc" -) - -func init() { - generator.RegisterPlugin(new(grpc)) -} - -// grpc is an implementation of the Go protocol buffer compiler's -// plugin architecture. It generates bindings for gRPC support. -type grpc struct { - gen *generator.Generator -} - -// Name returns the name of this plugin, "grpc". -func (g *grpc) Name() string { - return "grpc" -} - -// The names for packages imported in the generated code. -// They may vary from the final path component of the import path -// if the name is used by other packages. -var ( - contextPkg string - grpcPkg string -) - -// Init initializes the plugin. -func (g *grpc) Init(gen *generator.Generator) { - g.gen = gen - contextPkg = generator.RegisterUniquePackageName("context", nil) - grpcPkg = generator.RegisterUniquePackageName("grpc", nil) -} - -// Given a type name defined in a .proto, return its object. -// Also record that we're using it, to guarantee the associated import. -func (g *grpc) objectNamed(name string) generator.Object { - g.gen.RecordTypeUse(name) - return g.gen.ObjectNamed(name) -} - -// Given a type name defined in a .proto, return its name as we will print it. -func (g *grpc) typeName(str string) string { - return g.gen.TypeName(g.objectNamed(str)) -} - -// P forwards to g.gen.P. -func (g *grpc) P(args ...interface{}) { g.gen.P(args...) } - -// Generate generates code for the services in the given file. -func (g *grpc) Generate(file *generator.FileDescriptor) { - if len(file.FileDescriptorProto.Service) == 0 { - return - } - g.P("// Reference imports to suppress errors if they are not otherwise used.") - g.P("var _ ", contextPkg, ".Context") - g.P("var _ ", grpcPkg, ".ClientConn") - g.P() - for i, service := range file.FileDescriptorProto.Service { - g.generateService(file, service, i) - } -} - -// GenerateImports generates the import declaration for this file. -func (g *grpc) GenerateImports(file *generator.FileDescriptor) { - if len(file.FileDescriptorProto.Service) == 0 { - return - } - g.P("import (") - g.P(contextPkg, " ", strconv.Quote(path.Join(g.gen.ImportPrefix, contextPkgPath))) - g.P(grpcPkg, " ", strconv.Quote(path.Join(g.gen.ImportPrefix, grpcPkgPath))) - g.P(")") - g.P() -} - -// reservedClientName records whether a client name is reserved on the client side. -var reservedClientName = map[string]bool{ -// TODO: do we need any in gRPC? -} - -func unexport(s string) string { return strings.ToLower(s[:1]) + s[1:] } - -// generateService generates all the code for the named service. -func (g *grpc) generateService(file *generator.FileDescriptor, service *pb.ServiceDescriptorProto, index int) { - path := fmt.Sprintf("6,%d", index) // 6 means service. - - origServName := service.GetName() - fullServName := file.GetPackage() + "." + origServName - servName := generator.CamelCase(origServName) - - g.P() - g.P("// Client API for ", servName, " service") - g.P() - - // Client interface. - g.P("type ", servName, "Client interface {") - for i, method := range service.Method { - g.gen.PrintComments(fmt.Sprintf("%s,2,%d", path, i)) // 2 means method in a service. - g.P(g.generateClientSignature(servName, method)) - } - g.P("}") - g.P() - - // Client structure. - g.P("type ", unexport(servName), "Client struct {") - g.P("cc *", grpcPkg, ".ClientConn") - g.P("}") - g.P() - - // NewClient factory. - g.P("func New", servName, "Client (cc *", grpcPkg, ".ClientConn) ", servName, "Client {") - g.P("return &", unexport(servName), "Client{cc}") - g.P("}") - g.P() - - var methodIndex, streamIndex int - serviceDescVar := "_" + servName + "_serviceDesc" - // Client method implementations. - for _, method := range service.Method { - var descExpr string - if !method.GetServerStreaming() && !method.GetClientStreaming() { - // Unary RPC method - descExpr = fmt.Sprintf("&%s.Methods[%d]", serviceDescVar, methodIndex) - methodIndex++ - } else { - // Streaming RPC method - descExpr = fmt.Sprintf("&%s.Streams[%d]", serviceDescVar, streamIndex) - streamIndex++ - } - g.generateClientMethod(servName, fullServName, serviceDescVar, method, descExpr) - } - - g.P("// Server API for ", servName, " service") - g.P() - - // Server interface. - serverType := servName + "Server" - g.P("type ", serverType, " interface {") - for i, method := range service.Method { - g.gen.PrintComments(fmt.Sprintf("%s,2,%d", path, i)) // 2 means method in a service. - g.P(g.generateServerSignature(servName, method)) - } - g.P("}") - g.P() - - // Server registration. - g.P("func Register", servName, "Server(s *", grpcPkg, ".Server, srv ", serverType, ") {") - g.P("s.RegisterService(&", serviceDescVar, `, srv)`) - g.P("}") - g.P() - - // Server handler implementations. - var handlerNames []string - for _, method := range service.Method { - hname := g.generateServerMethod(servName, method) - handlerNames = append(handlerNames, hname) - } - - // Service descriptor. - g.P("var ", serviceDescVar, " = ", grpcPkg, ".ServiceDesc {") - g.P("ServiceName: ", strconv.Quote(fullServName), ",") - g.P("HandlerType: (*", serverType, ")(nil),") - g.P("Methods: []", grpcPkg, ".MethodDesc{") - for i, method := range service.Method { - if method.GetServerStreaming() || method.GetClientStreaming() { - continue - } - g.P("{") - g.P("MethodName: ", strconv.Quote(method.GetName()), ",") - g.P("Handler: ", handlerNames[i], ",") - g.P("},") - } - g.P("},") - g.P("Streams: []", grpcPkg, ".StreamDesc{") - for i, method := range service.Method { - if !method.GetServerStreaming() && !method.GetClientStreaming() { - continue - } - g.P("{") - g.P("StreamName: ", strconv.Quote(method.GetName()), ",") - g.P("Handler: ", handlerNames[i], ",") - if method.GetServerStreaming() { - g.P("ServerStreams: true,") - } - if method.GetClientStreaming() { - g.P("ClientStreams: true,") - } - g.P("},") - } - g.P("},") - g.P("}") - g.P() -} - -// generateClientSignature returns the client-side signature for a method. -func (g *grpc) generateClientSignature(servName string, method *pb.MethodDescriptorProto) string { - origMethName := method.GetName() - methName := generator.CamelCase(origMethName) - if reservedClientName[methName] { - methName += "_" - } - reqArg := ", in *" + g.typeName(method.GetInputType()) - if method.GetClientStreaming() { - reqArg = "" - } - respName := "*" + g.typeName(method.GetOutputType()) - if method.GetServerStreaming() || method.GetClientStreaming() { - respName = servName + "_" + generator.CamelCase(origMethName) + "Client" - } - return fmt.Sprintf("%s(ctx %s.Context%s, opts ...%s.CallOption) (%s, error)", methName, contextPkg, reqArg, grpcPkg, respName) -} - -func (g *grpc) generateClientMethod(servName, fullServName, serviceDescVar string, method *pb.MethodDescriptorProto, descExpr string) { - sname := fmt.Sprintf("/%s/%s", fullServName, method.GetName()) - methName := generator.CamelCase(method.GetName()) - inType := g.typeName(method.GetInputType()) - outType := g.typeName(method.GetOutputType()) - - g.P("func (c *", unexport(servName), "Client) ", g.generateClientSignature(servName, method), "{") - if !method.GetServerStreaming() && !method.GetClientStreaming() { - g.P("out := new(", outType, ")") - // TODO: Pass descExpr to Invoke. - g.P("err := ", grpcPkg, `.Invoke(ctx, "`, sname, `", in, out, c.cc, opts...)`) - g.P("if err != nil { return nil, err }") - g.P("return out, nil") - g.P("}") - g.P() - return - } - streamType := unexport(servName) + methName + "Client" - g.P("stream, err := ", grpcPkg, ".NewClientStream(ctx, ", descExpr, `, c.cc, "`, sname, `", opts...)`) - g.P("if err != nil { return nil, err }") - g.P("x := &", streamType, "{stream}") - if !method.GetClientStreaming() { - g.P("if err := x.ClientStream.SendMsg(in); err != nil { return nil, err }") - g.P("if err := x.ClientStream.CloseSend(); err != nil { return nil, err }") - } - g.P("return x, nil") - g.P("}") - g.P() - - genSend := method.GetClientStreaming() - genRecv := method.GetServerStreaming() - genCloseAndRecv := !method.GetServerStreaming() - - // Stream auxiliary types and methods. - g.P("type ", servName, "_", methName, "Client interface {") - if genSend { - g.P("Send(*", inType, ") error") - } - if genRecv { - g.P("Recv() (*", outType, ", error)") - } - if genCloseAndRecv { - g.P("CloseAndRecv() (*", outType, ", error)") - } - g.P(grpcPkg, ".ClientStream") - g.P("}") - g.P() - - g.P("type ", streamType, " struct {") - g.P(grpcPkg, ".ClientStream") - g.P("}") - g.P() - - if genSend { - g.P("func (x *", streamType, ") Send(m *", inType, ") error {") - g.P("return x.ClientStream.SendMsg(m)") - g.P("}") - g.P() - } - if genRecv { - g.P("func (x *", streamType, ") Recv() (*", outType, ", error) {") - g.P("m := new(", outType, ")") - g.P("if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err }") - g.P("return m, nil") - g.P("}") - g.P() - } - if genCloseAndRecv { - g.P("func (x *", streamType, ") CloseAndRecv() (*", outType, ", error) {") - g.P("if err := x.ClientStream.CloseSend(); err != nil { return nil, err }") - g.P("m := new(", outType, ")") - g.P("if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err }") - g.P("return m, nil") - g.P("}") - g.P() - } -} - -// generateServerSignature returns the server-side signature for a method. -func (g *grpc) generateServerSignature(servName string, method *pb.MethodDescriptorProto) string { - origMethName := method.GetName() - methName := generator.CamelCase(origMethName) - if reservedClientName[methName] { - methName += "_" - } - - var reqArgs []string - ret := "error" - if !method.GetServerStreaming() && !method.GetClientStreaming() { - reqArgs = append(reqArgs, contextPkg+".Context") - ret = "(*" + g.typeName(method.GetOutputType()) + ", error)" - } - if !method.GetClientStreaming() { - reqArgs = append(reqArgs, "*"+g.typeName(method.GetInputType())) - } - if method.GetServerStreaming() || method.GetClientStreaming() { - reqArgs = append(reqArgs, servName+"_"+generator.CamelCase(origMethName)+"Server") - } - - return methName + "(" + strings.Join(reqArgs, ", ") + ") " + ret -} - -func (g *grpc) generateServerMethod(servName string, method *pb.MethodDescriptorProto) string { - methName := generator.CamelCase(method.GetName()) - hname := fmt.Sprintf("_%s_%s_Handler", servName, methName) - inType := g.typeName(method.GetInputType()) - outType := g.typeName(method.GetOutputType()) - - if !method.GetServerStreaming() && !method.GetClientStreaming() { - g.P("func ", hname, "(srv interface{}, ctx ", contextPkg, ".Context, dec func(interface{}) error) (interface{}, error) {") - g.P("in := new(", inType, ")") - g.P("if err := dec(in); err != nil { return nil, err }") - g.P("out, err := srv.(", servName, "Server).", methName, "(ctx, in)") - g.P("if err != nil { return nil, err }") - g.P("return out, nil") - g.P("}") - g.P() - return hname - } - streamType := unexport(servName) + methName + "Server" - g.P("func ", hname, "(srv interface{}, stream ", grpcPkg, ".ServerStream) error {") - if !method.GetClientStreaming() { - g.P("m := new(", inType, ")") - g.P("if err := stream.RecvMsg(m); err != nil { return err }") - g.P("return srv.(", servName, "Server).", methName, "(m, &", streamType, "{stream})") - } else { - g.P("return srv.(", servName, "Server).", methName, "(&", streamType, "{stream})") - } - g.P("}") - g.P() - - genSend := method.GetServerStreaming() - genSendAndClose := !method.GetServerStreaming() - genRecv := method.GetClientStreaming() - - // Stream auxiliary types and methods. - g.P("type ", servName, "_", methName, "Server interface {") - if genSend { - g.P("Send(*", outType, ") error") - } - if genSendAndClose { - g.P("SendAndClose(*", outType, ") error") - } - if genRecv { - g.P("Recv() (*", inType, ", error)") - } - g.P(grpcPkg, ".ServerStream") - g.P("}") - g.P() - - g.P("type ", streamType, " struct {") - g.P(grpcPkg, ".ServerStream") - g.P("}") - g.P() - - if genSend { - g.P("func (x *", streamType, ") Send(m *", outType, ") error {") - g.P("return x.ServerStream.SendMsg(m)") - g.P("}") - g.P() - } - if genSendAndClose { - g.P("func (x *", streamType, ") SendAndClose(m *", outType, ") error {") - g.P("return x.ServerStream.SendMsg(m)") - g.P("}") - g.P() - } - if genRecv { - g.P("func (x *", streamType, ") Recv() (*", inType, ", error) {") - g.P("m := new(", inType, ")") - g.P("if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err }") - g.P("return m, nil") - g.P("}") - g.P() - } - - return hname -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/marshalto/marshalto.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/marshalto/marshalto.go deleted file mode 100644 index a3c12104..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/marshalto/marshalto.go +++ /dev/null @@ -1,1257 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The marshalto plugin generates a Marshal and MarshalTo method for each message. -The `Marshal() ([]byte, error)` method results in the fact that the message -implements the Marshaler interface. -This allows proto.Marshal to be faster by calling the generated Marshal method rather than using reflect to Marshal the struct. - -If is enabled by the following extensions: - - - marshaler - - marshaler_all - -Or the following extensions: - - - unsafe_marshaler - - unsafe_marshaler_all - -That is if you want to use the unsafe package in your generated code. -The speed up using the unsafe package is not very significant. - -The generation of marshalling tests are enabled using one of the following extensions: - - - testgen - - testgen_all - -And benchmarks given it is enabled using one of the following extensions: - - - benchgen - - benchgen_all - -Let us look at: - - github.com/gogo/protobuf/test/example/example.proto - -Btw all the output can be seen at: - - github.com/gogo/protobuf/test/example/* - -The following message: - -option (gogoproto.marshaler_all) = true; - -message B { - option (gogoproto.description) = true; - optional A A = 1 [(gogoproto.nullable) = false, (gogoproto.embed) = true]; - repeated bytes G = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; -} - -given to the marshalto plugin, will generate the following code: - - func (m *B) Marshal() (data []byte, err error) { - size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) - if err != nil { - return nil, err - } - return data[:n], nil - } - - func (m *B) MarshalTo(data []byte) (int, error) { - var i int - _ = i - var l int - _ = l - data[i] = 0xa - i++ - i = encodeVarintExample(data, i, uint64(m.A.Size())) - n2, err := m.A.MarshalTo(data[i:]) - if err != nil { - return 0, err - } - i += n2 - if len(m.G) > 0 { - for _, msg := range m.G { - data[i] = 0x12 - i++ - i = encodeVarintExample(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) - } - return i, nil - } - -As shown above Marshal calculates the size of the not yet marshalled message -and allocates the appropriate buffer. -This is followed by calling the MarshalTo method which requires a preallocated buffer. -The MarshalTo method allows a user to rather preallocated a reusable buffer. - -The Size method is generated using the size plugin and the gogoproto.sizer, gogoproto.sizer_all extensions. -The user can also using the generated Size method to check that his reusable buffer is still big enough. - -The generated tests and benchmarks will keep you safe and show that this is really a significant speed improvement. - -*/ -package marshalto - -import ( - "fmt" - "sort" - "strconv" - "strings" - - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity" -) - -type NumGen interface { - Next() string - Current() string -} - -type numGen struct { - index int -} - -func NewNumGen() NumGen { - return &numGen{0} -} - -func (this *numGen) Next() string { - this.index++ - return this.Current() -} - -func (this *numGen) Current() string { - return strconv.Itoa(this.index) -} - -type marshalto struct { - *generator.Generator - generator.PluginImports - atleastOne bool - unsafePkg generator.Single - errorsPkg generator.Single - protoPkg generator.Single - sortKeysPkg generator.Single - mathPkg generator.Single - localName string - unsafe bool -} - -func NewMarshal() *marshalto { - return &marshalto{} -} - -func NewUnsafeMarshal() *marshalto { - return &marshalto{unsafe: true} -} - -func (p *marshalto) Name() string { - if p.unsafe { - return "unsafemarshaler" - } - return "marshalto" -} - -func (p *marshalto) Init(g *generator.Generator) { - p.Generator = g -} - -func (p *marshalto) callFixed64(varName ...string) { - p.P(`i = encodeFixed64`, p.localName, `(data, i, uint64(`, strings.Join(varName, ""), `))`) -} - -func (p *marshalto) callFixed32(varName ...string) { - p.P(`i = encodeFixed32`, p.localName, `(data, i, uint32(`, strings.Join(varName, ""), `))`) -} - -func (p *marshalto) callVarint(varName ...string) { - p.P(`i = encodeVarint`, p.localName, `(data, i, uint64(`, strings.Join(varName, ""), `))`) -} - -func (p *marshalto) encodeVarint(varName string) { - p.P(`for `, varName, ` >= 1<<7 {`) - p.In() - p.P(`data[i] = uint8(uint64(`, varName, `)&0x7f|0x80)`) - p.P(varName, ` >>= 7`) - p.P(`i++`) - p.Out() - p.P(`}`) - p.P(`data[i] = uint8(`, varName, `)`) - p.P(`i++`) -} - -func (p *marshalto) encodeFixed64(varName string) { - p.P(`data[i] = uint8(`, varName, `)`) - p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 8)`) - p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 16)`) - p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 24)`) - p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 32)`) - p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 40)`) - p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 48)`) - p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 56)`) - p.P(`i++`) -} - -func (p *marshalto) unsafeFixed64(varName string, someType string) { - p.P(`*(*`, someType, `)(`, p.unsafePkg.Use(), `.Pointer(&data[i])) = `, varName) - p.P(`i+=8`) -} - -func (p *marshalto) encodeFixed32(varName string) { - p.P(`data[i] = uint8(`, varName, `)`) - p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 8)`) - p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 16)`) - p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 24)`) - p.P(`i++`) -} - -func (p *marshalto) unsafeFixed32(varName string, someType string) { - p.P(`*(*`, someType, `)(`, p.unsafePkg.Use(), `.Pointer(&data[i])) = `, varName) - p.P(`i+=4`) -} - -func (p *marshalto) encodeKey(fieldNumber int32, wireType int) { - x := uint32(fieldNumber)<<3 | uint32(wireType) - i := 0 - keybuf := make([]byte, 0) - for i = 0; x > 127; i++ { - keybuf = append(keybuf, 0x80|uint8(x&0x7F)) - x >>= 7 - } - keybuf = append(keybuf, uint8(x)) - for _, b := range keybuf { - p.P(`data[i] = `, fmt.Sprintf("%#v", b)) - p.P(`i++`) - } -} - -func keySize(fieldNumber int32, wireType int) int { - x := uint32(fieldNumber)<<3 | uint32(wireType) - size := 0 - for size = 0; x > 127; size++ { - x >>= 7 - } - size++ - return size -} - -func wireToType(wire string) int { - switch wire { - case "fixed64": - return proto.WireFixed64 - case "fixed32": - return proto.WireFixed32 - case "varint": - return proto.WireVarint - case "bytes": - return proto.WireBytes - case "group": - return proto.WireBytes - case "zigzag32": - return proto.WireVarint - case "zigzag64": - return proto.WireVarint - } - panic("unreachable") -} - -func (p *marshalto) mapField(numGen NumGen, fieldTyp descriptor.FieldDescriptorProto_Type, varName string) { - switch fieldTyp { - case descriptor.FieldDescriptorProto_TYPE_DOUBLE: - p.callFixed64(p.mathPkg.Use(), `.Float64bits(`, varName, `)`) - case descriptor.FieldDescriptorProto_TYPE_FLOAT: - p.callFixed32(p.mathPkg.Use(), `.Float32bits(`, varName, `)`) - case descriptor.FieldDescriptorProto_TYPE_INT64, - descriptor.FieldDescriptorProto_TYPE_UINT64, - descriptor.FieldDescriptorProto_TYPE_INT32, - descriptor.FieldDescriptorProto_TYPE_UINT32, - descriptor.FieldDescriptorProto_TYPE_ENUM: - p.callVarint(varName) - case descriptor.FieldDescriptorProto_TYPE_FIXED64, - descriptor.FieldDescriptorProto_TYPE_SFIXED64: - p.callFixed64(varName) - case descriptor.FieldDescriptorProto_TYPE_FIXED32, - descriptor.FieldDescriptorProto_TYPE_SFIXED32: - p.callFixed32(varName) - case descriptor.FieldDescriptorProto_TYPE_BOOL: - p.P(`if `, varName, ` {`) - p.In() - p.P(`data[i] = 1`) - p.Out() - p.P(`} else {`) - p.In() - p.P(`data[i] = 0`) - p.Out() - p.P(`}`) - p.P(`i++`) - case descriptor.FieldDescriptorProto_TYPE_STRING, - descriptor.FieldDescriptorProto_TYPE_BYTES: - p.callVarint(`len(`, varName, `)`) - p.P(`i+=copy(data[i:], `, varName, `)`) - case descriptor.FieldDescriptorProto_TYPE_SINT32: - p.callVarint(`(uint32(`, varName, `) << 1) ^ uint32((`, varName, ` >> 31))`) - case descriptor.FieldDescriptorProto_TYPE_SINT64: - p.callVarint(`(uint64(`, varName, `) << 1) ^ uint64((`, varName, ` >> 63))`) - case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - p.callVarint(varName, `.Size()`) - p.P(`n`, numGen.Next(), `, err := `, varName, `.MarshalTo(data[i:])`) - p.P(`if err != nil {`) - p.In() - p.P(`return 0, err`) - p.Out() - p.P(`}`) - p.P(`i+=n`, numGen.Current()) - } -} - -type orderFields []*descriptor.FieldDescriptorProto - -func (this orderFields) Len() int { - return len(this) -} - -func (this orderFields) Less(i, j int) bool { - return this[i].GetNumber() < this[j].GetNumber() -} - -func (this orderFields) Swap(i, j int) { - this[i], this[j] = this[j], this[i] -} - -func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.FileDescriptor, message *generator.Descriptor, field *descriptor.FieldDescriptorProto) { - fieldname := p.GetOneOfFieldName(message, field) - nullable := gogoproto.IsNullable(field) - repeated := field.IsRepeated() - required := field.IsRequired() - if required && nullable { - p.P(`if m.`, fieldname, `== nil {`) - p.In() - if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { - p.P(`return 0, new(`, p.protoPkg.Use(), `.RequiredNotSetError)`) - } else { - p.P(`return 0, `, p.protoPkg.Use(), `.NewRequiredNotSetError("`, field.GetName(), `")`) - } - p.Out() - p.P(`} else {`) - } else if repeated { - p.P(`if len(m.`, fieldname, `) > 0 {`) - p.In() - } else if ((!proto3 || field.IsMessage()) && nullable) || - (*field.Type == descriptor.FieldDescriptorProto_TYPE_BYTES && !gogoproto.IsCustomType(field)) { - p.P(`if m.`, fieldname, ` != nil {`) - p.In() - } - packed := field.IsPacked() - wireType := field.WireType() - fieldNumber := field.GetNumber() - if packed { - wireType = proto.WireBytes - } - switch *field.Type { - case descriptor.FieldDescriptorProto_TYPE_DOUBLE: - if !p.unsafe { - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 8`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.P(`f`, numGen.Next(), ` := `, p.mathPkg.Use(), `.Float64bits(num)`) - p.encodeFixed64("f" + numGen.Current()) - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.P(`f`, numGen.Next(), ` := `, p.mathPkg.Use(), `.Float64bits(num)`) - p.encodeFixed64("f" + numGen.Current()) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callFixed64(p.mathPkg.Use(), `.Float64bits(m.`+fieldname, `)`) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.callFixed64(p.mathPkg.Use(), `.Float64bits(m.`+fieldname, `)`) - } else { - p.encodeKey(fieldNumber, wireType) - p.callFixed64(p.mathPkg.Use(), `.Float64bits(*m.`+fieldname, `)`) - } - } else { - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 8`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.unsafeFixed64("num", "float64") - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64("num", "float64") - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64(`m.`+fieldname, "float64") - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64(`m.`+fieldname, "float64") - } else { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64(`*m.`+fieldname, `float64`) - } - } - case descriptor.FieldDescriptorProto_TYPE_FLOAT: - if !p.unsafe { - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 4`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.P(`f`, numGen.Next(), ` := `, p.mathPkg.Use(), `.Float32bits(num)`) - p.encodeFixed32("f" + numGen.Current()) - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.P(`f`, numGen.Next(), ` := `, p.mathPkg.Use(), `.Float32bits(num)`) - p.encodeFixed32("f" + numGen.Current()) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callFixed32(p.mathPkg.Use(), `.Float32bits(m.`+fieldname, `)`) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.callFixed32(p.mathPkg.Use(), `.Float32bits(m.`+fieldname, `)`) - } else { - p.encodeKey(fieldNumber, wireType) - p.callFixed32(p.mathPkg.Use(), `.Float32bits(*m.`+fieldname, `)`) - } - } else { - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 4`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.unsafeFixed32("num", "float32") - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32("num", "float32") - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32(`m.`+fieldname, `float32`) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32(`m.`+fieldname, `float32`) - } else { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32(`*m.`+fieldname, "float32") - } - } - case descriptor.FieldDescriptorProto_TYPE_INT64, - descriptor.FieldDescriptorProto_TYPE_UINT64, - descriptor.FieldDescriptorProto_TYPE_INT32, - descriptor.FieldDescriptorProto_TYPE_UINT32, - descriptor.FieldDescriptorProto_TYPE_ENUM: - if packed { - jvar := "j" + numGen.Next() - p.P(`data`, numGen.Next(), ` := make([]byte, len(m.`, fieldname, `)*10)`) - p.P(`var `, jvar, ` int`) - if *field.Type == descriptor.FieldDescriptorProto_TYPE_INT64 || - *field.Type == descriptor.FieldDescriptorProto_TYPE_INT32 { - p.P(`for _, num1 := range m.`, fieldname, ` {`) - p.In() - p.P(`num := uint64(num1)`) - } else { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - } - p.P(`for num >= 1<<7 {`) - p.In() - p.P(`data`, numGen.Current(), `[`, jvar, `] = uint8(uint64(num)&0x7f|0x80)`) - p.P(`num >>= 7`) - p.P(jvar, `++`) - p.Out() - p.P(`}`) - p.P(`data`, numGen.Current(), `[`, jvar, `] = uint8(num)`) - p.P(jvar, `++`) - p.Out() - p.P(`}`) - p.encodeKey(fieldNumber, wireType) - p.callVarint(jvar) - p.P(`i += copy(data[i:], data`, numGen.Current(), `[:`, jvar, `])`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callVarint("num") - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callVarint(`m.`, fieldname) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`m.`, fieldname) - } else { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`*m.`, fieldname) - } - case descriptor.FieldDescriptorProto_TYPE_FIXED64, - descriptor.FieldDescriptorProto_TYPE_SFIXED64: - if !p.unsafe { - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 8`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeFixed64("num") - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.encodeFixed64("num") - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callFixed64("m." + fieldname) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.callFixed64("m." + fieldname) - } else { - p.encodeKey(fieldNumber, wireType) - p.callFixed64("*m." + fieldname) - } - } else { - typeName := "int64" - if *field.Type == descriptor.FieldDescriptorProto_TYPE_FIXED64 { - typeName = "uint64" - } - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 8`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.unsafeFixed64("num", typeName) - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64("num", typeName) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64("m."+fieldname, typeName) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64("m."+fieldname, typeName) - } else { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64("*m."+fieldname, typeName) - } - } - case descriptor.FieldDescriptorProto_TYPE_FIXED32, - descriptor.FieldDescriptorProto_TYPE_SFIXED32: - if !p.unsafe { - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 4`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeFixed32("num") - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.encodeFixed32("num") - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callFixed32("m." + fieldname) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.callFixed32("m." + fieldname) - } else { - p.encodeKey(fieldNumber, wireType) - p.callFixed32("*m." + fieldname) - } - } else { - typeName := "int32" - if *field.Type == descriptor.FieldDescriptorProto_TYPE_FIXED32 { - typeName = "uint32" - } - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 4`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.unsafeFixed32("num", typeName) - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32("num", typeName) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32("m."+fieldname, typeName) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32("m."+fieldname, typeName) - } else { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32("*m."+fieldname, typeName) - } - } - case descriptor.FieldDescriptorProto_TYPE_BOOL: - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `)`) - p.P(`for _, b := range m.`, fieldname, ` {`) - p.In() - p.P(`if b {`) - p.In() - p.P(`data[i] = 1`) - p.Out() - p.P(`} else {`) - p.In() - p.P(`data[i] = 0`) - p.Out() - p.P(`}`) - p.P(`i++`) - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, b := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.P(`if b {`) - p.In() - p.P(`data[i] = 1`) - p.Out() - p.P(`} else {`) - p.In() - p.P(`data[i] = 0`) - p.Out() - p.P(`}`) - p.P(`i++`) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.P(`if m.`, fieldname, ` {`) - p.In() - p.P(`data[i] = 1`) - p.Out() - p.P(`} else {`) - p.In() - p.P(`data[i] = 0`) - p.Out() - p.P(`}`) - p.P(`i++`) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.P(`if m.`, fieldname, ` {`) - p.In() - p.P(`data[i] = 1`) - p.Out() - p.P(`} else {`) - p.In() - p.P(`data[i] = 0`) - p.Out() - p.P(`}`) - p.P(`i++`) - } else { - p.encodeKey(fieldNumber, wireType) - p.P(`if *m.`, fieldname, ` {`) - p.In() - p.P(`data[i] = 1`) - p.Out() - p.P(`} else {`) - p.In() - p.P(`data[i] = 0`) - p.Out() - p.P(`}`) - p.P(`i++`) - } - case descriptor.FieldDescriptorProto_TYPE_STRING: - if repeated { - p.P(`for _, s := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.P(`l = len(s)`) - p.encodeVarint("l") - p.P(`i+=copy(data[i:], s)`) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if len(m.`, fieldname, `) > 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `)`) - p.P(`i+=copy(data[i:], m.`, fieldname, `)`) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `)`) - p.P(`i+=copy(data[i:], m.`, fieldname, `)`) - } else { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(*m.`, fieldname, `)`) - p.P(`i+=copy(data[i:], *m.`, fieldname, `)`) - } - case descriptor.FieldDescriptorProto_TYPE_GROUP: - panic(fmt.Errorf("marshaler does not support group %v", fieldname)) - case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - if generator.IsMap(file.FileDescriptorProto, field) { - mapMsg := generator.GetMap(file.FileDescriptorProto, field) - keyField, valueField := mapMsg.GetMapFields() - _, keywire := p.GoType(nil, keyField) - _, valuewire := p.GoType(nil, valueField) - keyKeySize := keySize(1, wireToType(keywire)) - valueKeySize := keySize(2, wireToType(valuewire)) - p.P(`for k, _ := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - sum := []string{strconv.Itoa(keyKeySize)} - switch keyField.GetType() { - case descriptor.FieldDescriptorProto_TYPE_DOUBLE, - descriptor.FieldDescriptorProto_TYPE_FIXED64, - descriptor.FieldDescriptorProto_TYPE_SFIXED64: - sum = append(sum, `8`) - case descriptor.FieldDescriptorProto_TYPE_FLOAT, - descriptor.FieldDescriptorProto_TYPE_FIXED32, - descriptor.FieldDescriptorProto_TYPE_SFIXED32: - sum = append(sum, `4`) - case descriptor.FieldDescriptorProto_TYPE_INT64, - descriptor.FieldDescriptorProto_TYPE_UINT64, - descriptor.FieldDescriptorProto_TYPE_UINT32, - descriptor.FieldDescriptorProto_TYPE_ENUM, - descriptor.FieldDescriptorProto_TYPE_INT32: - sum = append(sum, `sov`+p.localName+`(uint64(k))`) - case descriptor.FieldDescriptorProto_TYPE_BOOL: - sum = append(sum, `1`) - case descriptor.FieldDescriptorProto_TYPE_STRING, - descriptor.FieldDescriptorProto_TYPE_BYTES: - sum = append(sum, `len(k)+sov`+p.localName+`(uint64(len(k)))`) - case descriptor.FieldDescriptorProto_TYPE_SINT32, - descriptor.FieldDescriptorProto_TYPE_SINT64: - sum = append(sum, `soz`+p.localName+`(uint64(k))`) - } - p.P(`v := m.`, fieldname, `[k]`) - sum = append(sum, strconv.Itoa(valueKeySize)) - switch valueField.GetType() { - case descriptor.FieldDescriptorProto_TYPE_DOUBLE, - descriptor.FieldDescriptorProto_TYPE_FIXED64, - descriptor.FieldDescriptorProto_TYPE_SFIXED64: - sum = append(sum, strconv.Itoa(8)) - case descriptor.FieldDescriptorProto_TYPE_FLOAT, - descriptor.FieldDescriptorProto_TYPE_FIXED32, - descriptor.FieldDescriptorProto_TYPE_SFIXED32: - sum = append(sum, strconv.Itoa(4)) - case descriptor.FieldDescriptorProto_TYPE_INT64, - descriptor.FieldDescriptorProto_TYPE_UINT64, - descriptor.FieldDescriptorProto_TYPE_UINT32, - descriptor.FieldDescriptorProto_TYPE_ENUM, - descriptor.FieldDescriptorProto_TYPE_INT32: - sum = append(sum, `sov`+p.localName+`(uint64(v))`) - case descriptor.FieldDescriptorProto_TYPE_BOOL: - sum = append(sum, `1`) - case descriptor.FieldDescriptorProto_TYPE_STRING, - descriptor.FieldDescriptorProto_TYPE_BYTES: - sum = append(sum, `len(v)+sov`+p.localName+`(uint64(len(v)))`) - case descriptor.FieldDescriptorProto_TYPE_SINT32, - descriptor.FieldDescriptorProto_TYPE_SINT64: - sum = append(sum, `soz`+p.localName+`(uint64(v))`) - case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - p.P(`if v == nil {`) - p.In() - p.P(`return 0, `, p.errorsPkg.Use(), `.New("proto: map has nil element")`) - p.Out() - p.P(`}`) - p.P(`msgSize := v.Size()`) - sum = append(sum, `msgSize + sov`+p.localName+`(uint64(msgSize))`) - } - p.P(`mapSize := `, strings.Join(sum, " + ")) - p.callVarint("mapSize") - p.encodeKey(1, wireToType(keywire)) - p.mapField(numGen, keyField.GetType(), "k") - p.encodeKey(2, wireToType(valuewire)) - p.mapField(numGen, valueField.GetType(), "v") - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, msg := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callVarint("msg.Size()") - p.P(`n, err := msg.MarshalTo(data[i:])`) - p.P(`if err != nil {`) - p.In() - p.P(`return 0, err`) - p.Out() - p.P(`}`) - p.P(`i+=n`) - p.Out() - p.P(`}`) - } else { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`m.`, fieldname, `.Size()`) - p.P(`n`, numGen.Next(), `, err := m.`, fieldname, `.MarshalTo(data[i:])`) - p.P(`if err != nil {`) - p.In() - p.P(`return 0, err`) - p.Out() - p.P(`}`) - p.P(`i+=n`, numGen.Current()) - } - case descriptor.FieldDescriptorProto_TYPE_BYTES: - if !gogoproto.IsCustomType(field) { - if repeated { - p.P(`for _, b := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callVarint("len(b)") - p.P(`i+=copy(data[i:], b)`) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if len(m.`, fieldname, `) > 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `)`) - p.P(`i+=copy(data[i:], m.`, fieldname, `)`) - p.Out() - p.P(`}`) - } else { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `)`) - p.P(`i+=copy(data[i:], m.`, fieldname, `)`) - } - } else { - if repeated { - p.P(`for _, msg := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callVarint(`msg.Size()`) - p.P(`n, err := msg.MarshalTo(data[i:])`) - p.P(`if err != nil {`) - p.In() - p.P(`return 0, err`) - p.Out() - p.P(`}`) - p.P(`i+=n`) - p.Out() - p.P(`}`) - } else { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`m.`, fieldname, `.Size()`) - p.P(`n`, numGen.Next(), `, err := m.`, fieldname, `.MarshalTo(data[i:])`) - p.P(`if err != nil {`) - p.In() - p.P(`return 0, err`) - p.Out() - p.P(`}`) - p.P(`i+=n`, numGen.Current()) - } - } - case descriptor.FieldDescriptorProto_TYPE_SINT32: - if packed { - datavar := "data" + numGen.Next() - jvar := "j" + numGen.Next() - p.P(datavar, ` := make([]byte, len(m.`, fieldname, ")*5)") - p.P(`var `, jvar, ` int`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - xvar := "x" + numGen.Next() - p.P(xvar, ` := (uint32(num) << 1) ^ uint32((num >> 31))`) - p.P(`for `, xvar, ` >= 1<<7 {`) - p.In() - p.P(datavar, `[`, jvar, `] = uint8(uint64(`, xvar, `)&0x7f|0x80)`) - p.P(jvar, `++`) - p.P(xvar, ` >>= 7`) - p.Out() - p.P(`}`) - p.P(datavar, `[`, jvar, `] = uint8(`, xvar, `)`) - p.P(jvar, `++`) - p.Out() - p.P(`}`) - p.encodeKey(fieldNumber, wireType) - p.callVarint(jvar) - p.P(`i+=copy(data[i:], `, datavar, `[:`, jvar, `])`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.P(`x`, numGen.Next(), ` := (uint32(num) << 1) ^ uint32((num >> 31))`) - p.encodeVarint("x" + numGen.Current()) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callVarint(`(uint32(m.`, fieldname, `) << 1) ^ uint32((m.`, fieldname, ` >> 31))`) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`(uint32(m.`, fieldname, `) << 1) ^ uint32((m.`, fieldname, ` >> 31))`) - } else { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`(uint32(*m.`, fieldname, `) << 1) ^ uint32((*m.`, fieldname, ` >> 31))`) - } - case descriptor.FieldDescriptorProto_TYPE_SINT64: - if packed { - jvar := "j" + numGen.Next() - xvar := "x" + numGen.Next() - datavar := "data" + numGen.Next() - p.P(`var `, jvar, ` int`) - p.P(datavar, ` := make([]byte, len(m.`, fieldname, `)*10)`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.P(xvar, ` := (uint64(num) << 1) ^ uint64((num >> 63))`) - p.P(`for `, xvar, ` >= 1<<7 {`) - p.In() - p.P(datavar, `[`, jvar, `] = uint8(uint64(`, xvar, `)&0x7f|0x80)`) - p.P(jvar, `++`) - p.P(xvar, ` >>= 7`) - p.Out() - p.P(`}`) - p.P(datavar, `[`, jvar, `] = uint8(`, xvar, `)`) - p.P(jvar, `++`) - p.Out() - p.P(`}`) - p.encodeKey(fieldNumber, wireType) - p.callVarint(jvar) - p.P(`i+=copy(data[i:], `, datavar, `[:`, jvar, `])`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.P(`x`, numGen.Next(), ` := (uint64(num) << 1) ^ uint64((num >> 63))`) - p.encodeVarint("x" + numGen.Current()) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callVarint(`(uint64(m.`, fieldname, `) << 1) ^ uint64((m.`, fieldname, ` >> 63))`) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`(uint64(m.`, fieldname, `) << 1) ^ uint64((m.`, fieldname, ` >> 63))`) - } else { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`(uint64(*m.`, fieldname, `) << 1) ^ uint64((*m.`, fieldname, ` >> 63))`) - } - default: - panic("not implemented") - } - if (required && nullable) || - ((!proto3 || field.IsMessage()) && nullable) || - repeated || - (*field.Type == descriptor.FieldDescriptorProto_TYPE_BYTES && !gogoproto.IsCustomType(field)) { - p.Out() - p.P(`}`) - } -} - -func (p *marshalto) Generate(file *generator.FileDescriptor) { - numGen := NewNumGen() - p.PluginImports = generator.NewPluginImports(p.Generator) - p.atleastOne = false - p.localName = generator.FileName(file) - - p.mathPkg = p.NewImport("math") - p.sortKeysPkg = p.NewImport("github.com/gogo/protobuf/sortkeys") - p.protoPkg = p.NewImport("github.com/gogo/protobuf/proto") - if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { - p.protoPkg = p.NewImport("github.com/golang/protobuf/proto") - } - p.unsafePkg = p.NewImport("unsafe") - p.errorsPkg = p.NewImport("errors") - - for _, message := range file.Messages() { - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - if p.unsafe { - if !gogoproto.IsUnsafeMarshaler(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if gogoproto.IsMarshaler(file.FileDescriptorProto, message.DescriptorProto) { - panic(fmt.Sprintf("unsafe_marshaler and marshalto enabled for %v", ccTypeName)) - } - } - if !p.unsafe { - if !gogoproto.IsMarshaler(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if gogoproto.IsUnsafeMarshaler(file.FileDescriptorProto, message.DescriptorProto) { - panic(fmt.Sprintf("unsafe_marshaler and marshalto enabled for %v", ccTypeName)) - } - } - p.atleastOne = true - - p.P(`func (m *`, ccTypeName, `) Marshal() (data []byte, err error) {`) - p.In() - p.P(`size := m.Size()`) - p.P(`data = make([]byte, size)`) - p.P(`n, err := m.MarshalTo(data)`) - p.P(`if err != nil {`) - p.In() - p.P(`return nil, err`) - p.Out() - p.P(`}`) - p.P(`return data[:n], nil`) - p.Out() - p.P(`}`) - p.P(``) - p.P(`func (m *`, ccTypeName, `) MarshalTo(data []byte) (int, error) {`) - p.In() - p.P(`var i int`) - p.P(`_ = i`) - p.P(`var l int`) - p.P(`_ = l`) - fields := orderFields(message.GetField()) - sort.Sort(fields) - oneofs := make(map[string]struct{}) - for _, field := range message.Field { - oneof := field.OneofIndex != nil - if !oneof { - proto3 := gogoproto.IsProto3(file.FileDescriptorProto) - p.generateField(proto3, numGen, file, message, field) - } else { - fieldname := p.GetFieldName(message, field) - if _, ok := oneofs[fieldname]; !ok { - oneofs[fieldname] = struct{}{} - p.P(`if m.`, fieldname, ` != nil {`) - p.In() - p.P(`nn`, numGen.Next(), `, err := m.`, fieldname, `.MarshalTo(data[i:])`) - p.P(`if err != nil {`) - p.In() - p.P(`return 0, err`) - p.Out() - p.P(`}`) - p.P(`i+=nn`, numGen.Current()) - p.Out() - p.P(`}`) - } - } - } - if message.DescriptorProto.HasExtension() { - if gogoproto.HasExtensionsMap(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`if len(m.XXX_extensions) > 0 {`) - p.In() - p.P(`n, err := `, p.protoPkg.Use(), `.EncodeExtensionMap(m.XXX_extensions, data[i:])`) - p.P(`if err != nil {`) - p.In() - p.P(`return 0, err`) - p.Out() - p.P(`}`) - p.P(`i+=n`) - p.Out() - p.P(`}`) - } else { - p.P(`if m.XXX_extensions != nil {`) - p.In() - p.P(`i+=copy(data[i:], m.XXX_extensions)`) - p.Out() - p.P(`}`) - } - } - if gogoproto.HasUnrecognized(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`if m.XXX_unrecognized != nil {`) - p.In() - p.P(`i+=copy(data[i:], m.XXX_unrecognized)`) - p.Out() - p.P(`}`) - } - - p.P(`return i, nil`) - p.Out() - p.P(`}`) - p.P() - - //Generate MarshalTo methods for oneof fields - m := proto.Clone(message.DescriptorProto).(*descriptor.DescriptorProto) - for _, field := range m.Field { - oneof := field.OneofIndex != nil - if !oneof { - continue - } - ccTypeName := p.OneOfTypeName(message, field) - p.P(`func (m *`, ccTypeName, `) MarshalTo(data []byte) (int, error) {`) - p.In() - p.P(`i := 0`) - vanity.TurnOffNullableForNativeTypesWithoutDefaultsOnly(field) - p.generateField(false, numGen, file, message, field) - p.P(`return i, nil`) - p.Out() - p.P(`}`) - } - } - - if p.atleastOne { - p.P(`func encodeFixed64`, p.localName, `(data []byte, offset int, v uint64) int {`) - p.In() - p.P(`data[offset] = uint8(v)`) - p.P(`data[offset+1] = uint8(v >> 8)`) - p.P(`data[offset+2] = uint8(v >> 16)`) - p.P(`data[offset+3] = uint8(v >> 24)`) - p.P(`data[offset+4] = uint8(v >> 32)`) - p.P(`data[offset+5] = uint8(v >> 40)`) - p.P(`data[offset+6] = uint8(v >> 48)`) - p.P(`data[offset+7] = uint8(v >> 56)`) - p.P(`return offset+8`) - p.Out() - p.P(`}`) - - p.P(`func encodeFixed32`, p.localName, `(data []byte, offset int, v uint32) int {`) - p.In() - p.P(`data[offset] = uint8(v)`) - p.P(`data[offset+1] = uint8(v >> 8)`) - p.P(`data[offset+2] = uint8(v >> 16)`) - p.P(`data[offset+3] = uint8(v >> 24)`) - p.P(`return offset+4`) - p.Out() - p.P(`}`) - - p.P(`func encodeVarint`, p.localName, `(data []byte, offset int, v uint64) int {`) - p.In() - p.P(`for v >= 1<<7 {`) - p.In() - p.P(`data[offset] = uint8(v&0x7f|0x80)`) - p.P(`v >>= 7`) - p.P(`offset++`) - p.Out() - p.P(`}`) - p.P(`data[offset] = uint8(v)`) - p.P(`return offset+1`) - p.Out() - p.P(`}`) - } - -} - -func init() { - generator.RegisterPlugin(NewMarshal()) - generator.RegisterPlugin(NewUnsafeMarshal()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/oneofcheck/oneofcheck.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/oneofcheck/oneofcheck.go deleted file mode 100644 index e1859f5c..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/oneofcheck/oneofcheck.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The oneofcheck plugin is used to check whether oneof is not used incorrectly. -For instance: -An error is caused if a oneof field: - - is used in a face - - is an embedded field - -*/ -package oneofcheck - -import ( - "fmt" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" - "os" -) - -type plugin struct { - *generator.Generator -} - -func NewPlugin() *plugin { - return &plugin{} -} - -func (p *plugin) Name() string { - return "oneofcheck" -} - -func (p *plugin) Init(g *generator.Generator) { - p.Generator = g -} - -func (p *plugin) Generate(file *generator.FileDescriptor) { - for _, msg := range file.Messages() { - face := gogoproto.IsFace(file.FileDescriptorProto, msg.DescriptorProto) - for _, field := range msg.GetField() { - if field.OneofIndex == nil { - continue - } - if face { - fmt.Fprintf(os.Stderr, "ERROR: field %v.%v cannot be in a face and oneof\n", generator.CamelCase(*msg.Name), generator.CamelCase(*field.Name)) - os.Exit(1) - } - if gogoproto.IsEmbed(field) { - fmt.Fprintf(os.Stderr, "ERROR: field %v.%v cannot be in an oneof and an embedded field\n", generator.CamelCase(*msg.Name), generator.CamelCase(*field.Name)) - os.Exit(1) - } - if !gogoproto.IsNullable(field) { - fmt.Fprintf(os.Stderr, "ERROR: field %v.%v cannot be in an oneof and a non-nullable field\n", generator.CamelCase(*msg.Name), generator.CamelCase(*field.Name)) - os.Exit(1) - } - if gogoproto.IsUnion(file.FileDescriptorProto, msg.DescriptorProto) { - fmt.Fprintf(os.Stderr, "ERROR: field %v.%v cannot be in an oneof and in an union (deprecated)\n", generator.CamelCase(*msg.Name), generator.CamelCase(*field.Name)) - os.Exit(1) - } - } - } -} - -func (p *plugin) GenerateImports(*generator.FileDescriptor) {} - -func init() { - generator.RegisterPlugin(NewPlugin()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/populate/populate.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/populate/populate.go deleted file mode 100644 index a0701904..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/populate/populate.go +++ /dev/null @@ -1,747 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The populate plugin generates a NewPopulated function. -This function returns a newly populated structure. - -It is enabled by the following extensions: - - - populate - - populate_all - -Let us look at: - - github.com/gogo/protobuf/test/example/example.proto - -Btw all the output can be seen at: - - github.com/gogo/protobuf/test/example/* - -The following message: - - option (gogoproto.populate_all) = true; - - message B { - optional A A = 1 [(gogoproto.nullable) = false, (gogoproto.embed) = true]; - repeated bytes G = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; - } - -given to the populate plugin, will generate code the following code: - - func NewPopulatedB(r randyExample, easy bool) *B { - this := &B{} - v2 := NewPopulatedA(r, easy) - this.A = *v2 - if r.Intn(10) != 0 { - v3 := r.Intn(10) - this.G = make([]github_com_gogo_protobuf_test_custom.Uint128, v3) - for i := 0; i < v3; i++ { - v4 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.G[i] = *v4 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedExample(r, 3) - } - return this - } - -The idea that is useful for testing. -Most of the other plugins' generated test code uses it. -You will still be able to use the generated test code of other packages -if you turn off the popluate plugin and write your own custom NewPopulated function. - -If the easy flag is not set the XXX_unrecognized and XXX_extensions fields are also populated. -These have caused problems with JSON marshalling and unmarshalling tests. - -*/ -package populate - -import ( - "fmt" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity" - "math" - "strconv" - "strings" -) - -type VarGen interface { - Next() string - Current() string -} - -type varGen struct { - index int64 -} - -func NewVarGen() VarGen { - return &varGen{0} -} - -func (this *varGen) Next() string { - this.index++ - return fmt.Sprintf("v%d", this.index) -} - -func (this *varGen) Current() string { - return fmt.Sprintf("v%d", this.index) -} - -type plugin struct { - *generator.Generator - generator.PluginImports - varGen VarGen - atleastOne bool - localName string -} - -func NewPlugin() *plugin { - return &plugin{} -} - -func (p *plugin) Name() string { - return "populate" -} - -func (p *plugin) Init(g *generator.Generator) { - p.Generator = g -} - -func value(typeName string, fieldType descriptor.FieldDescriptorProto_Type) string { - switch fieldType { - case descriptor.FieldDescriptorProto_TYPE_DOUBLE: - return typeName + "(r.Float64())" - case descriptor.FieldDescriptorProto_TYPE_FLOAT: - return typeName + "(r.Float32())" - case descriptor.FieldDescriptorProto_TYPE_INT64, - descriptor.FieldDescriptorProto_TYPE_SFIXED64, - descriptor.FieldDescriptorProto_TYPE_SINT64: - return typeName + "(r.Int63())" - case descriptor.FieldDescriptorProto_TYPE_UINT64, - descriptor.FieldDescriptorProto_TYPE_FIXED64: - return typeName + "(uint64(r.Uint32()))" - case descriptor.FieldDescriptorProto_TYPE_INT32, - descriptor.FieldDescriptorProto_TYPE_SINT32, - descriptor.FieldDescriptorProto_TYPE_SFIXED32, - descriptor.FieldDescriptorProto_TYPE_ENUM: - return typeName + "(r.Int31())" - case descriptor.FieldDescriptorProto_TYPE_UINT32, - descriptor.FieldDescriptorProto_TYPE_FIXED32: - return typeName + "(r.Uint32())" - case descriptor.FieldDescriptorProto_TYPE_BOOL: - return typeName + `(bool(r.Intn(2) == 0))` - case descriptor.FieldDescriptorProto_TYPE_STRING, - descriptor.FieldDescriptorProto_TYPE_GROUP, - descriptor.FieldDescriptorProto_TYPE_MESSAGE, - descriptor.FieldDescriptorProto_TYPE_BYTES: - } - panic(fmt.Errorf("unexpected type %v", typeName)) -} - -func negative(fieldType descriptor.FieldDescriptorProto_Type) bool { - switch fieldType { - case descriptor.FieldDescriptorProto_TYPE_UINT64, - descriptor.FieldDescriptorProto_TYPE_FIXED64, - descriptor.FieldDescriptorProto_TYPE_UINT32, - descriptor.FieldDescriptorProto_TYPE_FIXED32, - descriptor.FieldDescriptorProto_TYPE_BOOL: - return false - } - return true -} - -func getFuncName(goTypName string) string { - funcName := "NewPopulated" + goTypName - goTypNames := strings.Split(goTypName, ".") - if len(goTypNames) == 2 { - funcName = goTypNames[0] + ".NewPopulated" + goTypNames[1] - } else if len(goTypNames) != 1 { - panic(fmt.Errorf("unreachable: too many dots in %v", goTypName)) - } - return funcName -} - -func getFuncCall(goTypName string) string { - funcName := getFuncName(goTypName) - funcCall := funcName + "(r, easy)" - return funcCall -} - -func getCustomFuncCall(goTypName string) string { - funcName := getFuncName(goTypName) - funcCall := funcName + "(r)" - return funcCall -} - -func (p *plugin) getEnumVal(field *descriptor.FieldDescriptorProto, goTyp string) string { - enum := p.ObjectNamed(field.GetTypeName()).(*generator.EnumDescriptor) - l := len(enum.Value) - values := make([]string, l) - for i := range enum.Value { - values[i] = strconv.Itoa(int(*enum.Value[i].Number)) - } - arr := "[]int32{" + strings.Join(values, ",") + "}" - val := strings.Join([]string{generator.GoTypeToName(goTyp), `(`, arr, `[r.Intn(`, fmt.Sprintf("%d", l), `)])`}, "") - return val -} - -func (p *plugin) GenerateField(file *generator.FileDescriptor, message *generator.Descriptor, field *descriptor.FieldDescriptorProto) { - proto3 := gogoproto.IsProto3(file.FileDescriptorProto) - goTyp, _ := p.GoType(message, field) - fieldname := p.GetOneOfFieldName(message, field) - goTypName := generator.GoTypeToName(goTyp) - if generator.IsMap(file.FileDescriptorProto, field) { - mapmsg := generator.GetMap(file.FileDescriptorProto, field) - mapkey, mapvalue := mapmsg.GetMapFields() - keygoTyp, _ := p.GoType(nil, mapkey) - valuegoTyp, _ := p.GoType(nil, mapvalue) - keytypName := generator.GoTypeToName(keygoTyp) - valuetypName := generator.GoTypeToName(valuegoTyp) - mapvaluegoType := valuegoTyp - if !mapvalue.IsMessage() { - mapvaluegoType = strings.Replace(mapvaluegoType, "*", "", 1) - } - p.P(p.varGen.Next(), ` := r.Intn(10)`) - p.P(`this.`, fieldname, ` = make(map[`, strings.Replace(keygoTyp, "*", "", 1), `]`, mapvaluegoType, `)`) - p.P(`for i := 0; i < `, p.varGen.Current(), `; i++ {`) - p.In() - keyval := "" - if mapkey.IsString() { - keyval = fmt.Sprintf("randString%v(r)", p.localName) - } else { - keyval = value(keytypName, mapkey.GetType()) - } - if mapvalue.IsMessage() || p.IsGroup(field) { - s := `this.` + fieldname + `[` + keyval + `]` + ` = ` - goTypName := generator.GoTypeToName(valuegoTyp) - funcCall := getFuncCall(goTypName) - s += funcCall - p.P(s) - } else if mapvalue.IsEnum() { - s := `this.` + fieldname + `[` + keyval + `]` + ` = ` + p.getEnumVal(mapvalue, valuegoTyp) - p.P(s) - } else if mapvalue.IsBytes() { - count := p.varGen.Next() - p.P(count, ` := r.Intn(100)`) - p.P(p.varGen.Next(), ` := `, keyval) - p.P(`this.`, fieldname, `[`, p.varGen.Current(), `] = make(`, valuegoTyp, `, `, count, `)`) - p.P(`for i := 0; i < `, count, `; i++ {`) - p.In() - p.P(`this.`, fieldname, `[`, p.varGen.Current(), `][i] = byte(r.Intn(256))`) - p.Out() - p.P(`}`) - } else if mapvalue.IsString() { - s := `this.` + fieldname + `[` + keyval + `]` + ` = ` + fmt.Sprintf("randString%v(r)", p.localName) - p.P(s) - } else { - p.P(p.varGen.Next(), ` := `, keyval) - p.P(`this.`, fieldname, `[`, p.varGen.Current(), `] = `, value(valuetypName, mapvalue.GetType())) - if negative(mapvalue.GetType()) { - p.P(`if r.Intn(2) == 0 {`) - p.In() - p.P(`this.`, fieldname, `[`, p.varGen.Current(), `] *= -1`) - p.Out() - p.P(`}`) - } - } - p.Out() - p.P(`}`) - } else if field.IsMessage() || p.IsGroup(field) { - funcCall := getFuncCall(goTypName) - if field.IsRepeated() { - p.P(p.varGen.Next(), ` := r.Intn(10)`) - p.P(`this.`, fieldname, ` = make(`, goTyp, `, `, p.varGen.Current(), `)`) - p.P(`for i := 0; i < `, p.varGen.Current(), `; i++ {`) - p.In() - if gogoproto.IsNullable(field) { - p.P(`this.`, fieldname, `[i] = `, funcCall) - } else { - p.P(p.varGen.Next(), `:= `, funcCall) - p.P(`this.`, fieldname, `[i] = *`, p.varGen.Current()) - } - p.Out() - p.P(`}`) - } else { - if gogoproto.IsNullable(field) { - p.P(`this.`, fieldname, ` = `, funcCall) - } else { - p.P(p.varGen.Next(), `:= `, funcCall) - p.P(`this.`, fieldname, ` = *`, p.varGen.Current()) - } - } - } else { - if field.IsEnum() { - val := p.getEnumVal(field, goTyp) - if field.IsRepeated() { - p.P(p.varGen.Next(), ` := r.Intn(10)`) - p.P(`this.`, fieldname, ` = make(`, goTyp, `, `, p.varGen.Current(), `)`) - p.P(`for i := 0; i < `, p.varGen.Current(), `; i++ {`) - p.In() - p.P(`this.`, fieldname, `[i] = `, val) - p.Out() - p.P(`}`) - } else if !gogoproto.IsNullable(field) || proto3 { - p.P(`this.`, fieldname, ` = `, val) - } else { - p.P(p.varGen.Next(), ` := `, val) - p.P(`this.`, fieldname, ` = &`, p.varGen.Current()) - } - } else if gogoproto.IsCustomType(field) { - funcCall := getCustomFuncCall(goTypName) - if field.IsRepeated() { - p.P(p.varGen.Next(), ` := r.Intn(10)`) - p.P(`this.`, fieldname, ` = make(`, goTyp, `, `, p.varGen.Current(), `)`) - p.P(`for i := 0; i < `, p.varGen.Current(), `; i++ {`) - p.In() - p.P(p.varGen.Next(), `:= `, funcCall) - p.P(`this.`, fieldname, `[i] = *`, p.varGen.Current()) - p.Out() - p.P(`}`) - } else if gogoproto.IsNullable(field) { - p.P(`this.`, fieldname, ` = `, funcCall) - } else { - p.P(p.varGen.Next(), `:= `, funcCall) - p.P(`this.`, fieldname, ` = *`, p.varGen.Current()) - } - } else if field.IsBytes() { - if field.IsRepeated() { - p.P(p.varGen.Next(), ` := r.Intn(100)`) - p.P(`this.`, fieldname, ` = make(`, goTyp, `, `, p.varGen.Current(), `)`) - p.P(`for i := 0; i < `, p.varGen.Current(), `; i++ {`) - p.In() - p.P(p.varGen.Next(), ` := r.Intn(100)`) - p.P(`this.`, fieldname, `[i] = make([]byte,`, p.varGen.Current(), `)`) - p.P(`for j := 0; j < `, p.varGen.Current(), `; j++ {`) - p.In() - p.P(`this.`, fieldname, `[i][j] = byte(r.Intn(256))`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - } else { - p.P(p.varGen.Next(), ` := r.Intn(100)`) - p.P(`this.`, fieldname, ` = make(`, goTyp, `, `, p.varGen.Current(), `)`) - p.P(`for i := 0; i < `, p.varGen.Current(), `; i++ {`) - p.In() - p.P(`this.`, fieldname, `[i] = byte(r.Intn(256))`) - p.Out() - p.P(`}`) - } - } else if field.IsString() { - val := fmt.Sprintf("randString%v(r)", p.localName) - if field.IsRepeated() { - p.P(p.varGen.Next(), ` := r.Intn(10)`) - p.P(`this.`, fieldname, ` = make(`, goTyp, `, `, p.varGen.Current(), `)`) - p.P(`for i := 0; i < `, p.varGen.Current(), `; i++ {`) - p.In() - p.P(`this.`, fieldname, `[i] = `, val) - p.Out() - p.P(`}`) - } else if !gogoproto.IsNullable(field) || proto3 { - p.P(`this.`, fieldname, ` = `, val) - } else { - p.P(p.varGen.Next(), `:= `, val) - p.P(`this.`, fieldname, ` = &`, p.varGen.Current()) - } - } else { - typName := generator.GoTypeToName(goTyp) - if field.IsRepeated() { - p.P(p.varGen.Next(), ` := r.Intn(100)`) - p.P(`this.`, fieldname, ` = make(`, goTyp, `, `, p.varGen.Current(), `)`) - p.P(`for i := 0; i < `, p.varGen.Current(), `; i++ {`) - p.In() - p.P(`this.`, fieldname, `[i] = `, value(typName, field.GetType())) - if negative(field.GetType()) { - p.P(`if r.Intn(2) == 0 {`) - p.In() - p.P(`this.`, fieldname, `[i] *= -1`) - p.Out() - p.P(`}`) - } - p.Out() - p.P(`}`) - } else if !gogoproto.IsNullable(field) || proto3 { - p.P(`this.`, fieldname, ` = `, value(typName, field.GetType())) - if negative(field.GetType()) { - p.P(`if r.Intn(2) == 0 {`) - p.In() - p.P(`this.`, fieldname, ` *= -1`) - p.Out() - p.P(`}`) - } - } else { - p.P(p.varGen.Next(), ` := `, value(typName, field.GetType())) - if negative(field.GetType()) { - p.P(`if r.Intn(2) == 0 {`) - p.In() - p.P(p.varGen.Current(), ` *= -1`) - p.Out() - p.P(`}`) - } - p.P(`this.`, fieldname, ` = &`, p.varGen.Current()) - } - } - } -} - -func (p *plugin) hasLoop(field *descriptor.FieldDescriptorProto, visited []*generator.Descriptor, excludes []*generator.Descriptor) *generator.Descriptor { - if field.IsMessage() || p.IsGroup(field) { - fieldMessage := p.ObjectNamed(field.GetTypeName()).(*generator.Descriptor) - fieldTypeName := generator.CamelCaseSlice(fieldMessage.TypeName()) - for _, message := range visited { - messageTypeName := generator.CamelCaseSlice(message.TypeName()) - if fieldTypeName == messageTypeName { - for _, e := range excludes { - if fieldTypeName == generator.CamelCaseSlice(e.TypeName()) { - return nil - } - } - return fieldMessage - } - } - for _, f := range fieldMessage.Field { - visited = append(visited, fieldMessage) - loopTo := p.hasLoop(f, visited, excludes) - if loopTo != nil { - return loopTo - } - } - } - return nil -} - -func (p *plugin) loops(field *descriptor.FieldDescriptorProto, message *generator.Descriptor) int { - //fmt.Fprintf(os.Stderr, "loops %v %v\n", field.GetTypeName(), generator.CamelCaseSlice(message.TypeName())) - excludes := []*generator.Descriptor{} - loops := 0 - for { - visited := []*generator.Descriptor{} - loopTo := p.hasLoop(field, visited, excludes) - if loopTo == nil { - break - } - //fmt.Fprintf(os.Stderr, "loopTo %v\n", generator.CamelCaseSlice(loopTo.TypeName())) - excludes = append(excludes, loopTo) - loops++ - } - return loops -} - -func (p *plugin) Generate(file *generator.FileDescriptor) { - p.atleastOne = false - p.PluginImports = generator.NewPluginImports(p.Generator) - p.varGen = NewVarGen() - proto3 := gogoproto.IsProto3(file.FileDescriptorProto) - - p.localName = generator.FileName(file) - protoPkg := p.NewImport("github.com/gogo/protobuf/proto") - if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { - protoPkg = p.NewImport("github.com/golang/protobuf/proto") - } - - for _, message := range file.Messages() { - if !gogoproto.HasPopulate(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - p.atleastOne = true - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - p.P(`func NewPopulated`, ccTypeName, `(r randy`, p.localName, `, easy bool) *`, ccTypeName, ` {`) - p.In() - p.P(`this := &`, ccTypeName, `{}`) - if gogoproto.IsUnion(message.File(), message.DescriptorProto) && len(message.Field) > 0 { - loopLevels := make([]int, len(message.Field)) - maxLoopLevel := 0 - for i, field := range message.Field { - loopLevels[i] = p.loops(field, message) - if loopLevels[i] > maxLoopLevel { - maxLoopLevel = loopLevels[i] - } - } - ran := 0 - for i := range loopLevels { - ran += int(math.Pow10(maxLoopLevel - loopLevels[i])) - } - p.P(`fieldNum := r.Intn(`, fmt.Sprintf("%d", ran), `)`) - p.P(`switch fieldNum {`) - k := 0 - for i, field := range message.Field { - is := []string{} - ran := int(math.Pow10(maxLoopLevel - loopLevels[i])) - for j := 0; j < ran; j++ { - is = append(is, fmt.Sprintf("%d", j+k)) - } - k += ran - p.P(`case `, strings.Join(is, ","), `:`) - p.In() - p.GenerateField(file, message, field) - p.Out() - } - p.P(`}`) - } else { - var maxFieldNumber int32 - oneofs := make(map[string]struct{}) - for _, field := range message.Field { - if field.GetNumber() > maxFieldNumber { - maxFieldNumber = field.GetNumber() - } - oneof := field.OneofIndex != nil - if !oneof { - if field.IsRequired() || (!gogoproto.IsNullable(field) && !field.IsRepeated()) || (proto3 && !field.IsMessage()) { - p.GenerateField(file, message, field) - } else { - p.P(`if r.Intn(10) != 0 {`) - p.In() - p.GenerateField(file, message, field) - p.Out() - p.P(`}`) - } - } else { - fieldname := p.GetFieldName(message, field) - if _, ok := oneofs[fieldname]; ok { - continue - } else { - oneofs[fieldname] = struct{}{} - } - fieldNumbers := []int32{} - for _, f := range message.Field { - fname := p.GetFieldName(message, f) - if fname == fieldname { - fieldNumbers = append(fieldNumbers, f.GetNumber()) - } - } - p.P(`oneofNumber_`, fieldname, ` := `, fmt.Sprintf("%#v", fieldNumbers), `[r.Intn(`, strconv.Itoa(len(fieldNumbers)), `)]`) - p.P(`switch oneofNumber_`, fieldname, ` {`) - for _, f := range message.Field { - fname := p.GetFieldName(message, f) - if fname != fieldname { - continue - } - p.P(`case `, strconv.Itoa(int(f.GetNumber())), `:`) - p.In() - ccTypeName := p.OneOfTypeName(message, f) - p.P(`this.`, fname, ` = NewPopulated`, ccTypeName, `(r, easy)`) - p.Out() - } - p.P(`}`) - } - } - if message.DescriptorProto.HasExtension() { - p.P(`if !easy && r.Intn(10) != 0 {`) - p.In() - p.P(`l := r.Intn(5)`) - p.P(`for i := 0; i < l; i++ {`) - p.In() - if len(message.DescriptorProto.GetExtensionRange()) > 1 { - p.P(`eIndex := r.Intn(`, strconv.Itoa(len(message.DescriptorProto.GetExtensionRange())), `)`) - p.P(`fieldNumber := 0`) - p.P(`switch eIndex {`) - for i, e := range message.DescriptorProto.GetExtensionRange() { - p.P(`case `, strconv.Itoa(i), `:`) - p.In() - p.P(`fieldNumber = r.Intn(`, strconv.Itoa(int(e.GetEnd()-e.GetStart())), `) + `, strconv.Itoa(int(e.GetStart()))) - p.Out() - if e.GetEnd() > maxFieldNumber { - maxFieldNumber = e.GetEnd() - } - } - p.P(`}`) - } else { - e := message.DescriptorProto.GetExtensionRange()[0] - p.P(`fieldNumber := r.Intn(`, strconv.Itoa(int(e.GetEnd()-e.GetStart())), `) + `, strconv.Itoa(int(e.GetStart()))) - if e.GetEnd() > maxFieldNumber { - maxFieldNumber = e.GetEnd() - } - } - p.P(`wire := r.Intn(4)`) - p.P(`if wire == 3 { wire = 5 }`) - p.P(`data := randField`, p.localName, `(nil, r, fieldNumber, wire)`) - p.P(protoPkg.Use(), `.SetRawExtension(this, int32(fieldNumber), data)`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - } - - if maxFieldNumber < (1 << 10) { - p.P(`if !easy && r.Intn(10) != 0 {`) - p.In() - if gogoproto.HasUnrecognized(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`this.XXX_unrecognized = randUnrecognized`, p.localName, `(r, `, strconv.Itoa(int(maxFieldNumber+1)), `)`) - } - p.Out() - p.P(`}`) - } - } - p.P(`return this`) - p.Out() - p.P(`}`) - p.P(``) - - //Generate NewPopulated functions for oneof fields - m := proto.Clone(message.DescriptorProto).(*descriptor.DescriptorProto) - for _, f := range m.Field { - oneof := f.OneofIndex != nil - if !oneof { - continue - } - ccTypeName := p.OneOfTypeName(message, f) - p.P(`func NewPopulated`, ccTypeName, `(r randy`, p.localName, `, easy bool) *`, ccTypeName, ` {`) - p.In() - p.P(`this := &`, ccTypeName, `{}`) - vanity.TurnOffNullableForNativeTypesWithoutDefaultsOnly(f) - p.GenerateField(file, message, f) - p.P(`return this`) - p.Out() - p.P(`}`) - } - } - - if !p.atleastOne { - return - } - - p.P(`type randy`, p.localName, ` interface {`) - p.In() - p.P(`Float32() float32`) - p.P(`Float64() float64`) - p.P(`Int63() int64`) - p.P(`Int31() int32`) - p.P(`Uint32() uint32`) - p.P(`Intn(n int) int`) - p.Out() - p.P(`}`) - - p.P(`func randUTF8Rune`, p.localName, `(r randy`, p.localName, `) rune {`) - p.In() - p.P(`ru := r.Intn(62)`) - p.P(`if ru < 10 {`) - p.In() - p.P(`return rune(ru+48)`) - p.Out() - p.P(`} else if ru < 36 {`) - p.In() - p.P(`return rune(ru+55)`) - p.Out() - p.P(`}`) - p.P(`return rune(ru+61)`) - p.Out() - p.P(`}`) - - p.P(`func randString`, p.localName, `(r randy`, p.localName, `) string {`) - p.In() - p.P(p.varGen.Next(), ` := r.Intn(100)`) - p.P(`tmps := make([]rune, `, p.varGen.Current(), `)`) - p.P(`for i := 0; i < `, p.varGen.Current(), `; i++ {`) - p.In() - p.P(`tmps[i] = randUTF8Rune`, p.localName, `(r)`) - p.Out() - p.P(`}`) - p.P(`return string(tmps)`) - p.Out() - p.P(`}`) - - p.P(`func randUnrecognized`, p.localName, `(r randy`, p.localName, `, maxFieldNumber int) (data []byte) {`) - p.In() - p.P(`l := r.Intn(5)`) - p.P(`for i := 0; i < l; i++ {`) - p.In() - p.P(`wire := r.Intn(4)`) - p.P(`if wire == 3 { wire = 5 }`) - p.P(`fieldNumber := maxFieldNumber + r.Intn(100)`) - p.P(`data = randField`, p.localName, `(data, r, fieldNumber, wire)`) - p.Out() - p.P(`}`) - p.P(`return data`) - p.Out() - p.P(`}`) - - p.P(`func randField`, p.localName, `(data []byte, r randy`, p.localName, `, fieldNumber int, wire int) []byte {`) - p.In() - p.P(`key := uint32(fieldNumber)<<3 | uint32(wire)`) - p.P(`switch wire {`) - p.P(`case 0:`) - p.In() - p.P(`data = encodeVarintPopulate`, p.localName, `(data, uint64(key))`) - p.P(p.varGen.Next(), ` := r.Int63()`) - p.P(`if r.Intn(2) == 0 {`) - p.In() - p.P(p.varGen.Current(), ` *= -1`) - p.Out() - p.P(`}`) - p.P(`data = encodeVarintPopulate`, p.localName, `(data, uint64(`, p.varGen.Current(), `))`) - p.Out() - p.P(`case 1:`) - p.In() - p.P(`data = encodeVarintPopulate`, p.localName, `(data, uint64(key))`) - p.P(`data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))`) - p.Out() - p.P(`case 2:`) - p.In() - p.P(`data = encodeVarintPopulate`, p.localName, `(data, uint64(key))`) - p.P(`ll := r.Intn(100)`) - p.P(`data = encodeVarintPopulate`, p.localName, `(data, uint64(ll))`) - p.P(`for j := 0; j < ll; j++ {`) - p.In() - p.P(`data = append(data, byte(r.Intn(256)))`) - p.Out() - p.P(`}`) - p.Out() - p.P(`default:`) - p.In() - p.P(`data = encodeVarintPopulate`, p.localName, `(data, uint64(key))`) - p.P(`data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))`) - p.Out() - p.P(`}`) - p.P(`return data`) - p.Out() - p.P(`}`) - - p.P(`func encodeVarintPopulate`, p.localName, `(data []byte, v uint64) []byte {`) - p.In() - p.P(`for v >= 1<<7 {`) - p.In() - p.P(`data = append(data, uint8(uint64(v)&0x7f|0x80))`) - p.P(`v >>= 7`) - p.Out() - p.P(`}`) - p.P(`data = append(data, uint8(v))`) - p.P(`return data`) - p.Out() - p.P(`}`) - -} - -func init() { - generator.RegisterPlugin(NewPlugin()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/size/size.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/size/size.go deleted file mode 100644 index 109db4be..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/size/size.go +++ /dev/null @@ -1,575 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The size plugin generates a Size method for each message. -This is useful with the MarshalTo method generated by the marshalto plugin and the -gogoproto.marshaler and gogoproto.marshaler_all extensions. - -It is enabled by the following extensions: - - - sizer - - sizer_all - -The size plugin also generates a test given it is enabled using one of the following extensions: - - - testgen - - testgen_all - -And a benchmark given it is enabled using one of the following extensions: - - - benchgen - - benchgen_all - -Let us look at: - - github.com/gogo/protobuf/test/example/example.proto - -Btw all the output can be seen at: - - github.com/gogo/protobuf/test/example/* - -The following message: - - option (gogoproto.sizer_all) = true; - - message B { - option (gogoproto.description) = true; - optional A A = 1 [(gogoproto.nullable) = false, (gogoproto.embed) = true]; - repeated bytes G = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; - } - -given to the size plugin, will generate the following code: - - func (m *B) Size() (n int) { - var l int - _ = l - l = m.A.Size() - n += 1 + l + sovExample(uint64(l)) - if len(m.G) > 0 { - for _, e := range m.G { - l = e.Size() - n += 1 + l + sovExample(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n - } - -and the following test code: - - func TestBSize(t *testing5.T) { - popr := math_rand5.New(math_rand5.NewSource(time5.Now().UnixNano())) - p := NewPopulatedB(popr, true) - data, err := github_com_gogo_protobuf_proto2.Marshal(p) - if err != nil { - panic(err) - } - size := p.Size() - if len(data) != size { - t.Fatalf("size %v != marshalled size %v", size, len(data)) - } - } - - func BenchmarkBSize(b *testing5.B) { - popr := math_rand5.New(math_rand5.NewSource(616)) - total := 0 - pops := make([]*B, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedB(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) - } - -The sovExample function is a size of varint function for the example.pb.go file. - -*/ -package size - -import ( - "fmt" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity" - "strconv" - "strings" -) - -type size struct { - *generator.Generator - generator.PluginImports - atleastOne bool - localName string -} - -func NewSize() *size { - return &size{} -} - -func (p *size) Name() string { - return "size" -} - -func (p *size) Init(g *generator.Generator) { - p.Generator = g -} - -func wireToType(wire string) int { - switch wire { - case "fixed64": - return proto.WireFixed64 - case "fixed32": - return proto.WireFixed32 - case "varint": - return proto.WireVarint - case "bytes": - return proto.WireBytes - case "group": - return proto.WireBytes - case "zigzag32": - return proto.WireVarint - case "zigzag64": - return proto.WireVarint - } - panic("unreachable") -} - -func keySize(fieldNumber int32, wireType int) int { - x := uint32(fieldNumber)<<3 | uint32(wireType) - size := 0 - for size = 0; x > 127; size++ { - x >>= 7 - } - size++ - return size -} - -func (p *size) sizeVarint() { - p.P(` - func sov`, p.localName, `(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n - }`) -} - -func (p *size) sizeZigZag() { - p.P(`func soz`, p.localName, `(x uint64) (n int) { - return sov`, p.localName, `(uint64((x << 1) ^ uint64((int64(x) >> 63)))) - }`) -} - -func (p *size) generateField(proto3 bool, file *generator.FileDescriptor, message *generator.Descriptor, field *descriptor.FieldDescriptorProto) { - fieldname := p.GetOneOfFieldName(message, field) - nullable := gogoproto.IsNullable(field) - repeated := field.IsRepeated() - if repeated { - p.P(`if len(m.`, fieldname, `) > 0 {`) - p.In() - } else if ((!proto3 || field.IsMessage()) && nullable) || (!gogoproto.IsCustomType(field) && *field.Type == descriptor.FieldDescriptorProto_TYPE_BYTES) { - p.P(`if m.`, fieldname, ` != nil {`) - p.In() - } - packed := field.IsPacked() - _, wire := p.GoType(message, field) - wireType := wireToType(wire) - fieldNumber := field.GetNumber() - if packed { - wireType = proto.WireBytes - } - key := keySize(fieldNumber, wireType) - switch *field.Type { - case descriptor.FieldDescriptorProto_TYPE_DOUBLE, - descriptor.FieldDescriptorProto_TYPE_FIXED64, - descriptor.FieldDescriptorProto_TYPE_SFIXED64: - if packed { - p.P(`n+=`, strconv.Itoa(key), `+sov`, p.localName, `(uint64(len(m.`, fieldname, `)*8))`, `+len(m.`, fieldname, `)*8`) - } else if repeated { - p.P(`n+=`, strconv.Itoa(key+8), `*len(m.`, fieldname, `)`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.P(`n+=`, strconv.Itoa(key+8)) - p.Out() - p.P(`}`) - } else if nullable { - p.P(`n+=`, strconv.Itoa(key+8)) - } else { - p.P(`n+=`, strconv.Itoa(key+8)) - } - case descriptor.FieldDescriptorProto_TYPE_FLOAT, - descriptor.FieldDescriptorProto_TYPE_FIXED32, - descriptor.FieldDescriptorProto_TYPE_SFIXED32: - if packed { - p.P(`n+=`, strconv.Itoa(key), `+sov`, p.localName, `(uint64(len(m.`, fieldname, `)*4))`, `+len(m.`, fieldname, `)*4`) - } else if repeated { - p.P(`n+=`, strconv.Itoa(key+4), `*len(m.`, fieldname, `)`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.P(`n+=`, strconv.Itoa(key+4)) - p.Out() - p.P(`}`) - } else if nullable { - p.P(`n+=`, strconv.Itoa(key+4)) - } else { - p.P(`n+=`, strconv.Itoa(key+4)) - } - case descriptor.FieldDescriptorProto_TYPE_INT64, - descriptor.FieldDescriptorProto_TYPE_UINT64, - descriptor.FieldDescriptorProto_TYPE_UINT32, - descriptor.FieldDescriptorProto_TYPE_ENUM, - descriptor.FieldDescriptorProto_TYPE_INT32: - if packed { - p.P(`l = 0`) - p.P(`for _, e := range m.`, fieldname, ` {`) - p.In() - p.P(`l+=sov`, p.localName, `(uint64(e))`) - p.Out() - p.P(`}`) - p.P(`n+=`, strconv.Itoa(key), `+sov`, p.localName, `(uint64(l))+l`) - } else if repeated { - p.P(`for _, e := range m.`, fieldname, ` {`) - p.In() - p.P(`n+=`, strconv.Itoa(key), `+sov`, p.localName, `(uint64(e))`) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.P(`n+=`, strconv.Itoa(key), `+sov`, p.localName, `(uint64(m.`, fieldname, `))`) - p.Out() - p.P(`}`) - } else if nullable { - p.P(`n+=`, strconv.Itoa(key), `+sov`, p.localName, `(uint64(*m.`, fieldname, `))`) - } else { - p.P(`n+=`, strconv.Itoa(key), `+sov`, p.localName, `(uint64(m.`, fieldname, `))`) - } - case descriptor.FieldDescriptorProto_TYPE_BOOL: - if packed { - p.P(`n+=`, strconv.Itoa(key), `+sov`, p.localName, `(uint64(len(m.`, fieldname, `)))`, `+len(m.`, fieldname, `)*1`) - } else if repeated { - p.P(`n+=`, strconv.Itoa(key+1), `*len(m.`, fieldname, `)`) - } else if proto3 { - p.P(`if m.`, fieldname, ` {`) - p.In() - p.P(`n+=`, strconv.Itoa(key+1)) - p.Out() - p.P(`}`) - } else if nullable { - p.P(`n+=`, strconv.Itoa(key+1)) - } else { - p.P(`n+=`, strconv.Itoa(key+1)) - } - case descriptor.FieldDescriptorProto_TYPE_STRING: - if repeated { - p.P(`for _, s := range m.`, fieldname, ` { `) - p.In() - p.P(`l = len(s)`) - p.P(`n+=`, strconv.Itoa(key), `+l+sov`, p.localName, `(uint64(l))`) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`l=len(m.`, fieldname, `)`) - p.P(`if l > 0 {`) - p.In() - p.P(`n+=`, strconv.Itoa(key), `+l+sov`, p.localName, `(uint64(l))`) - p.Out() - p.P(`}`) - } else if nullable { - p.P(`l=len(*m.`, fieldname, `)`) - p.P(`n+=`, strconv.Itoa(key), `+l+sov`, p.localName, `(uint64(l))`) - } else { - p.P(`l=len(m.`, fieldname, `)`) - p.P(`n+=`, strconv.Itoa(key), `+l+sov`, p.localName, `(uint64(l))`) - } - case descriptor.FieldDescriptorProto_TYPE_GROUP: - panic(fmt.Errorf("size does not support group %v", fieldname)) - case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - if generator.IsMap(file.FileDescriptorProto, field) { - mapMsg := generator.GetMap(file.FileDescriptorProto, field) - keyField, valueField := mapMsg.GetMapFields() - _, keywire := p.GoType(nil, keyField) - _, valuewire := p.GoType(nil, valueField) - _, fieldwire := p.GoType(nil, field) - fieldKeySize := keySize(field.GetNumber(), wireToType(fieldwire)) - keyKeySize := keySize(1, wireToType(keywire)) - valueKeySize := keySize(2, wireToType(valuewire)) - p.P(`for k, v := range m.`, fieldname, ` { `) - p.In() - p.P(`_ = k`) - p.P(`_ = v`) - sum := []string{strconv.Itoa(keyKeySize)} - switch keyField.GetType() { - case descriptor.FieldDescriptorProto_TYPE_DOUBLE, - descriptor.FieldDescriptorProto_TYPE_FIXED64, - descriptor.FieldDescriptorProto_TYPE_SFIXED64: - sum = append(sum, `8`) - case descriptor.FieldDescriptorProto_TYPE_FLOAT, - descriptor.FieldDescriptorProto_TYPE_FIXED32, - descriptor.FieldDescriptorProto_TYPE_SFIXED32: - sum = append(sum, `4`) - case descriptor.FieldDescriptorProto_TYPE_INT64, - descriptor.FieldDescriptorProto_TYPE_UINT64, - descriptor.FieldDescriptorProto_TYPE_UINT32, - descriptor.FieldDescriptorProto_TYPE_ENUM, - descriptor.FieldDescriptorProto_TYPE_INT32: - sum = append(sum, `sov`+p.localName+`(uint64(k))`) - case descriptor.FieldDescriptorProto_TYPE_BOOL: - sum = append(sum, `1`) - case descriptor.FieldDescriptorProto_TYPE_STRING, - descriptor.FieldDescriptorProto_TYPE_BYTES: - sum = append(sum, `len(k)+sov`+p.localName+`(uint64(len(k)))`) - case descriptor.FieldDescriptorProto_TYPE_SINT32, - descriptor.FieldDescriptorProto_TYPE_SINT64: - sum = append(sum, `soz`+p.localName+`(uint64(k))`) - } - sum = append(sum, strconv.Itoa(valueKeySize)) - switch valueField.GetType() { - case descriptor.FieldDescriptorProto_TYPE_DOUBLE, - descriptor.FieldDescriptorProto_TYPE_FIXED64, - descriptor.FieldDescriptorProto_TYPE_SFIXED64: - sum = append(sum, strconv.Itoa(8)) - case descriptor.FieldDescriptorProto_TYPE_FLOAT, - descriptor.FieldDescriptorProto_TYPE_FIXED32, - descriptor.FieldDescriptorProto_TYPE_SFIXED32: - sum = append(sum, strconv.Itoa(4)) - case descriptor.FieldDescriptorProto_TYPE_INT64, - descriptor.FieldDescriptorProto_TYPE_UINT64, - descriptor.FieldDescriptorProto_TYPE_UINT32, - descriptor.FieldDescriptorProto_TYPE_ENUM, - descriptor.FieldDescriptorProto_TYPE_INT32: - sum = append(sum, `sov`+p.localName+`(uint64(v))`) - case descriptor.FieldDescriptorProto_TYPE_BOOL: - sum = append(sum, `1`) - case descriptor.FieldDescriptorProto_TYPE_STRING, - descriptor.FieldDescriptorProto_TYPE_BYTES: - sum = append(sum, `len(v)+sov`+p.localName+`(uint64(len(v)))`) - case descriptor.FieldDescriptorProto_TYPE_SINT32, - descriptor.FieldDescriptorProto_TYPE_SINT64: - sum = append(sum, `soz`+p.localName+`(uint64(v))`) - case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - p.P(`l = 0`) - p.P(`if v != nil {`) - p.In() - p.P(`l= v.Size()`) - p.Out() - p.P(`}`) - sum = append(sum, `l+sov`+p.localName+`(uint64(l))`) - } - p.P(`mapEntrySize := `, strings.Join(sum, "+")) - p.P(`n+=mapEntrySize+`, fieldKeySize, `+sov`, p.localName, `(uint64(mapEntrySize))`) - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, e := range m.`, fieldname, ` { `) - p.In() - p.P(`l=e.Size()`) - p.P(`n+=`, strconv.Itoa(key), `+l+sov`, p.localName, `(uint64(l))`) - p.Out() - p.P(`}`) - } else { - p.P(`l=m.`, fieldname, `.Size()`) - p.P(`n+=`, strconv.Itoa(key), `+l+sov`, p.localName, `(uint64(l))`) - } - case descriptor.FieldDescriptorProto_TYPE_BYTES: - if !gogoproto.IsCustomType(field) { - if repeated { - p.P(`for _, b := range m.`, fieldname, ` { `) - p.In() - p.P(`l = len(b)`) - p.P(`n+=`, strconv.Itoa(key), `+l+sov`, p.localName, `(uint64(l))`) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`l=len(m.`, fieldname, `)`) - p.P(`if l > 0 {`) - p.In() - p.P(`n+=`, strconv.Itoa(key), `+l+sov`, p.localName, `(uint64(l))`) - p.Out() - p.P(`}`) - } else { - p.P(`l=len(m.`, fieldname, `)`) - p.P(`n+=`, strconv.Itoa(key), `+l+sov`, p.localName, `(uint64(l))`) - } - } else { - if repeated { - p.P(`for _, e := range m.`, fieldname, ` { `) - p.In() - p.P(`l=e.Size()`) - p.P(`n+=`, strconv.Itoa(key), `+l+sov`, p.localName, `(uint64(l))`) - p.Out() - p.P(`}`) - } else { - p.P(`l=m.`, fieldname, `.Size()`) - p.P(`n+=`, strconv.Itoa(key), `+l+sov`, p.localName, `(uint64(l))`) - } - } - case descriptor.FieldDescriptorProto_TYPE_SINT32, - descriptor.FieldDescriptorProto_TYPE_SINT64: - if packed { - p.P(`l = 0`) - p.P(`for _, e := range m.`, fieldname, ` {`) - p.In() - p.P(`l+=soz`, p.localName, `(uint64(e))`) - p.Out() - p.P(`}`) - p.P(`n+=`, strconv.Itoa(key), `+sov`, p.localName, `(uint64(l))+l`) - } else if repeated { - p.P(`for _, e := range m.`, fieldname, ` {`) - p.In() - p.P(`n+=`, strconv.Itoa(key), `+soz`, p.localName, `(uint64(e))`) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.P(`n+=`, strconv.Itoa(key), `+soz`, p.localName, `(uint64(m.`, fieldname, `))`) - p.Out() - p.P(`}`) - } else if nullable { - p.P(`n+=`, strconv.Itoa(key), `+soz`, p.localName, `(uint64(*m.`, fieldname, `))`) - } else { - p.P(`n+=`, strconv.Itoa(key), `+soz`, p.localName, `(uint64(m.`, fieldname, `))`) - } - default: - panic("not implemented") - } - if ((!proto3 || field.IsMessage()) && nullable) || repeated || (!gogoproto.IsCustomType(field) && *field.Type == descriptor.FieldDescriptorProto_TYPE_BYTES) { - p.Out() - p.P(`}`) - } -} - -func (p *size) Generate(file *generator.FileDescriptor) { - p.PluginImports = generator.NewPluginImports(p.Generator) - p.atleastOne = false - p.localName = generator.FileName(file) - protoPkg := p.NewImport("github.com/gogo/protobuf/proto") - if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { - protoPkg = p.NewImport("github.com/golang/protobuf/proto") - } - for _, message := range file.Messages() { - if !gogoproto.IsSizer(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - p.atleastOne = true - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - p.P(`func (m *`, ccTypeName, `) Size() (n int) {`) - p.In() - p.P(`var l int`) - p.P(`_ = l`) - oneofs := make(map[string]struct{}) - for _, field := range message.Field { - oneof := field.OneofIndex != nil - if !oneof { - proto3 := gogoproto.IsProto3(file.FileDescriptorProto) - p.generateField(proto3, file, message, field) - } else { - fieldname := p.GetFieldName(message, field) - if _, ok := oneofs[fieldname]; ok { - continue - } else { - oneofs[fieldname] = struct{}{} - } - p.P(`if m.`, fieldname, ` != nil {`) - p.In() - p.P(`n+=m.`, fieldname, `.Size()`) - p.Out() - p.P(`}`) - } - } - if message.DescriptorProto.HasExtension() { - p.P(`if m.XXX_extensions != nil {`) - p.In() - if gogoproto.HasExtensionsMap(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`n += `, protoPkg.Use(), `.SizeOfExtensionMap(m.XXX_extensions)`) - } else { - p.P(`n+=len(m.XXX_extensions)`) - } - p.Out() - p.P(`}`) - } - if gogoproto.HasUnrecognized(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`if m.XXX_unrecognized != nil {`) - p.In() - p.P(`n+=len(m.XXX_unrecognized)`) - p.Out() - p.P(`}`) - } - p.P(`return n`) - p.Out() - p.P(`}`) - p.P() - - //Generate Size methods for oneof fields - m := proto.Clone(message.DescriptorProto).(*descriptor.DescriptorProto) - for _, f := range m.Field { - oneof := f.OneofIndex != nil - if !oneof { - continue - } - ccTypeName := p.OneOfTypeName(message, f) - p.P(`func (m *`, ccTypeName, `) Size() (n int) {`) - p.In() - p.P(`var l int`) - p.P(`_ = l`) - vanity.TurnOffNullableForNativeTypesWithoutDefaultsOnly(f) - p.generateField(false, file, message, f) - p.P(`return n`) - p.Out() - p.P(`}`) - } - } - - if !p.atleastOne { - return - } - - p.sizeVarint() - p.sizeZigZag() - -} - -func init() { - generator.RegisterPlugin(NewSize()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/size/sizetest.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/size/sizetest.go deleted file mode 100644 index 96448635..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/size/sizetest.go +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -package size - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/testgen" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" -) - -type test struct { - *generator.Generator -} - -func NewTest(g *generator.Generator) testgen.TestPlugin { - return &test{g} -} - -func (p *test) Generate(imports generator.PluginImports, file *generator.FileDescriptor) bool { - used := false - randPkg := imports.NewImport("math/rand") - timePkg := imports.NewImport("time") - testingPkg := imports.NewImport("testing") - protoPkg := imports.NewImport("github.com/gogo/protobuf/proto") - if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { - protoPkg = imports.NewImport("github.com/golang/protobuf/proto") - } - for _, message := range file.Messages() { - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - if !gogoproto.IsSizer(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - - if gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { - used = true - p.P(`func Test`, ccTypeName, `Size(t *`, testingPkg.Use(), `.T) {`) - p.In() - p.P(`seed := `, timePkg.Use(), `.Now().UnixNano()`) - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(seed))`) - p.P(`p := NewPopulated`, ccTypeName, `(popr, true)`) - p.P(`size2 := `, protoPkg.Use(), `.Size(p)`) - p.P(`data, err := `, protoPkg.Use(), `.Marshal(p)`) - p.P(`if err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) - p.Out() - p.P(`}`) - p.P(`size := p.Size()`) - p.P(`if len(data) != size {`) - p.In() - p.P(`t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data))`) - p.Out() - p.P(`}`) - p.P(`if size2 != size {`) - p.In() - p.P(`t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2)`) - p.Out() - p.P(`}`) - p.P(`size3 := `, protoPkg.Use(), `.Size(p)`) - p.P(`if size3 != size {`) - p.In() - p.P(`t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3)`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - p.P() - } - - if gogoproto.HasBenchGen(file.FileDescriptorProto, message.DescriptorProto) { - used = true - p.P(`func Benchmark`, ccTypeName, `Size(b *`, testingPkg.Use(), `.B) {`) - p.In() - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(616))`) - p.P(`total := 0`) - p.P(`pops := make([]*`, ccTypeName, `, 1000)`) - p.P(`for i := 0; i < 1000; i++ {`) - p.In() - p.P(`pops[i] = NewPopulated`, ccTypeName, `(popr, false)`) - p.Out() - p.P(`}`) - p.P(`b.ResetTimer()`) - p.P(`for i := 0; i < b.N; i++ {`) - p.In() - p.P(`total += pops[i%1000].Size()`) - p.Out() - p.P(`}`) - p.P(`b.SetBytes(int64(total / b.N))`) - p.Out() - p.P(`}`) - p.P() - } - - } - return used -} - -func init() { - testgen.RegisterTestPlugin(NewTest) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/stringer/stringer.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/stringer/stringer.go deleted file mode 100644 index 74ba39c9..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/stringer/stringer.go +++ /dev/null @@ -1,283 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The stringer plugin generates a String method for each message. - -It is enabled by the following extensions: - - - stringer - - stringer_all - -The stringer plugin also generates a test given it is enabled using one of the following extensions: - - - testgen - - testgen_all - -Let us look at: - - github.com/gogo/protobuf/test/example/example.proto - -Btw all the output can be seen at: - - github.com/gogo/protobuf/test/example/* - -The following message: - - option (gogoproto.goproto_stringer_all) = false; - option (gogoproto.stringer_all) = true; - - message A { - optional string Description = 1 [(gogoproto.nullable) = false]; - optional int64 Number = 2 [(gogoproto.nullable) = false]; - optional bytes Id = 3 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uuid", (gogoproto.nullable) = false]; - } - -given to the stringer stringer, will generate the following code: - - func (this *A) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&A{`, - `Description:` + fmt.Sprintf("%v", this.Description) + `,`, - `Number:` + fmt.Sprintf("%v", this.Number) + `,`, - `Id:` + fmt.Sprintf("%v", this.Id) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s - } - -and the following test code: - - func TestAStringer(t *testing4.T) { - popr := math_rand4.New(math_rand4.NewSource(time4.Now().UnixNano())) - p := NewPopulatedA(popr, false) - s1 := p.String() - s2 := fmt1.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } - } - -Typically fmt.Printf("%v") will stop to print when it reaches a pointer and -not print their values, while the generated String method will always print all values, recursively. - -*/ -package stringer - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" - "strings" -) - -type stringer struct { - *generator.Generator - generator.PluginImports - atleastOne bool - localName string -} - -func NewStringer() *stringer { - return &stringer{} -} - -func (p *stringer) Name() string { - return "stringer" -} - -func (p *stringer) Init(g *generator.Generator) { - p.Generator = g -} - -func (p *stringer) Generate(file *generator.FileDescriptor) { - proto3 := gogoproto.IsProto3(file.FileDescriptorProto) - p.PluginImports = generator.NewPluginImports(p.Generator) - p.atleastOne = false - - p.localName = generator.FileName(file) - - fmtPkg := p.NewImport("fmt") - stringsPkg := p.NewImport("strings") - reflectPkg := p.NewImport("reflect") - sortKeysPkg := p.NewImport("github.com/gogo/protobuf/sortkeys") - for _, message := range file.Messages() { - if !gogoproto.IsStringer(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if gogoproto.EnabledGoStringer(file.FileDescriptorProto, message.DescriptorProto) { - panic("old string method needs to be disabled, please use gogoproto.goproto_stringer or gogoproto.goproto_stringer_all and set it to false") - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - p.atleastOne = true - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - p.P(`func (this *`, ccTypeName, `) String() string {`) - p.In() - p.P(`if this == nil {`) - p.In() - p.P(`return "nil"`) - p.Out() - p.P(`}`) - for _, field := range message.Field { - if !generator.IsMap(file.FileDescriptorProto, field) { - continue - } - fieldname := p.GetFieldName(message, field) - mapMsg := generator.GetMap(file.FileDescriptorProto, field) - keyField, valueField := mapMsg.GetMapFields() - keysName := `keysFor` + fieldname - keygoTyp, _ := p.GoType(nil, keyField) - keygoTyp = strings.Replace(keygoTyp, "*", "", 1) - keyCapTyp := generator.CamelCase(keygoTyp) - valuegoTyp, _ := p.GoType(nil, valueField) - p.P(keysName, ` := make([]`, keygoTyp, `, 0, len(this.`, fieldname, `))`) - p.P(`for k, _ := range this.`, fieldname, ` {`) - p.In() - p.P(keysName, ` = append(`, keysName, `, k)`) - p.Out() - p.P(`}`) - p.P(sortKeysPkg.Use(), `.`, keyCapTyp, `s(`, keysName, `)`) - mapName := `mapStringFor` + fieldname - p.P(mapName, ` := "map[`, keygoTyp, `]`, valuegoTyp, `{"`) - p.P(`for _, k := range `, keysName, ` {`) - p.In() - p.P(mapName, ` += fmt.Sprintf("%v: %v,", k, this.`, fieldname, `[k])`) - p.Out() - p.P(`}`) - p.P(mapName, ` += "}"`) - } - p.P("s := ", stringsPkg.Use(), ".Join([]string{`&", ccTypeName, "{`,") - oneofs := make(map[string]struct{}) - for _, field := range message.Field { - nullable := gogoproto.IsNullable(field) - repeated := field.IsRepeated() - fieldname := p.GetFieldName(message, field) - oneof := field.OneofIndex != nil - if oneof { - if _, ok := oneofs[fieldname]; ok { - continue - } else { - oneofs[fieldname] = struct{}{} - } - p.P("`", fieldname, ":`", ` + `, fmtPkg.Use(), `.Sprintf("%v", this.`, fieldname, ") + `,", "`,") - } else if generator.IsMap(file.FileDescriptorProto, field) { - mapName := `mapStringFor` + fieldname - p.P("`", fieldname, ":`", ` + `, mapName, " + `,", "`,") - } else if field.IsMessage() || p.IsGroup(field) { - desc := p.ObjectNamed(field.GetTypeName()) - msgname := p.TypeName(desc) - msgnames := strings.Split(msgname, ".") - typeName := msgnames[len(msgnames)-1] - if nullable { - p.P("`", fieldname, ":`", ` + `, stringsPkg.Use(), `.Replace(`, fmtPkg.Use(), `.Sprintf("%v", this.`, fieldname, `), "`, typeName, `","`, msgname, `"`, ", 1) + `,", "`,") - } else if repeated { - p.P("`", fieldname, ":`", ` + `, stringsPkg.Use(), `.Replace(`, stringsPkg.Use(), `.Replace(`, fmtPkg.Use(), `.Sprintf("%v", this.`, fieldname, `), "`, typeName, `","`, msgname, `"`, ", 1),`&`,``,1) + `,", "`,") - } else { - p.P("`", fieldname, ":`", ` + `, stringsPkg.Use(), `.Replace(`, stringsPkg.Use(), `.Replace(this.`, fieldname, `.String(), "`, typeName, `","`, msgname, `"`, ", 1),`&`,``,1) + `,", "`,") - } - } else { - if nullable && !repeated && !proto3 { - p.P("`", fieldname, ":`", ` + valueToString`, p.localName, `(this.`, fieldname, ") + `,", "`,") - } else { - p.P("`", fieldname, ":`", ` + `, fmtPkg.Use(), `.Sprintf("%v", this.`, fieldname, ") + `,", "`,") - } - } - } - if message.DescriptorProto.HasExtension() { - if gogoproto.HasExtensionsMap(file.FileDescriptorProto, message.DescriptorProto) { - p.P("`XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`,") - } else { - p.P("`XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`,") - } - } - if gogoproto.HasUnrecognized(file.FileDescriptorProto, message.DescriptorProto) { - p.P("`XXX_unrecognized:` + ", fmtPkg.Use(), `.Sprintf("%v", this.XXX_unrecognized) + `, "`,`,") - } - p.P("`}`,") - p.P(`}`, `,""`, ")") - p.P(`return s`) - p.Out() - p.P(`}`) - - //Generate String methods for oneof fields - for _, field := range message.Field { - oneof := field.OneofIndex != nil - if !oneof { - continue - } - ccTypeName := p.OneOfTypeName(message, field) - p.P(`func (this *`, ccTypeName, `) String() string {`) - p.In() - p.P(`if this == nil {`) - p.In() - p.P(`return "nil"`) - p.Out() - p.P(`}`) - p.P("s := ", stringsPkg.Use(), ".Join([]string{`&", ccTypeName, "{`,") - fieldname := p.GetOneOfFieldName(message, field) - if field.IsMessage() || p.IsGroup(field) { - desc := p.ObjectNamed(field.GetTypeName()) - msgname := p.TypeName(desc) - msgnames := strings.Split(msgname, ".") - typeName := msgnames[len(msgnames)-1] - p.P("`", fieldname, ":`", ` + `, stringsPkg.Use(), `.Replace(`, fmtPkg.Use(), `.Sprintf("%v", this.`, fieldname, `), "`, typeName, `","`, msgname, `"`, ", 1) + `,", "`,") - } else { - p.P("`", fieldname, ":`", ` + `, fmtPkg.Use(), `.Sprintf("%v", this.`, fieldname, ") + `,", "`,") - } - p.P("`}`,") - p.P(`}`, `,""`, ")") - p.P(`return s`) - p.Out() - p.P(`}`) - } - } - - if !p.atleastOne { - return - } - - p.P(`func valueToString`, p.localName, `(v interface{}) string {`) - p.In() - p.P(`rv := `, reflectPkg.Use(), `.ValueOf(v)`) - p.P(`if rv.IsNil() {`) - p.In() - p.P(`return "nil"`) - p.Out() - p.P(`}`) - p.P(`pv := `, reflectPkg.Use(), `.Indirect(rv).Interface()`) - p.P(`return `, fmtPkg.Use(), `.Sprintf("*%v", pv)`) - p.Out() - p.P(`}`) - -} - -func init() { - generator.RegisterPlugin(NewStringer()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/stringer/stringertest.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/stringer/stringertest.go deleted file mode 100644 index d53db201..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/stringer/stringertest.go +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -package stringer - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/testgen" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" -) - -type test struct { - *generator.Generator -} - -func NewTest(g *generator.Generator) testgen.TestPlugin { - return &test{g} -} - -func (p *test) Generate(imports generator.PluginImports, file *generator.FileDescriptor) bool { - used := false - randPkg := imports.NewImport("math/rand") - timePkg := imports.NewImport("time") - testingPkg := imports.NewImport("testing") - fmtPkg := imports.NewImport("fmt") - for _, message := range file.Messages() { - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - if !gogoproto.IsStringer(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - - if gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { - used = true - p.P(`func Test`, ccTypeName, `Stringer(t *`, testingPkg.Use(), `.T) {`) - p.In() - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(`, timePkg.Use(), `.Now().UnixNano()))`) - p.P(`p := NewPopulated`, ccTypeName, `(popr, false)`) - p.P(`s1 := p.String()`) - p.P(`s2 := `, fmtPkg.Use(), `.Sprintf("%v", p)`) - p.P(`if s1 != s2 {`) - p.In() - p.P(`t.Fatalf("String want %v got %v", s1, s2)`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - } - - } - return used -} - -func init() { - testgen.RegisterTestPlugin(NewTest) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/testgen/testgen.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/testgen/testgen.go deleted file mode 100644 index 87145e0b..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/testgen/testgen.go +++ /dev/null @@ -1,602 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The testgen plugin generates Test and Benchmark functions for each message. - -Tests are enabled using the following extensions: - - - testgen - - testgen_all - -Benchmarks are enabled using the following extensions: - - - benchgen - - benchgen_all - -Let us look at: - - github.com/gogo/protobuf/test/example/example.proto - -Btw all the output can be seen at: - - github.com/gogo/protobuf/test/example/* - -The following message: - - option (gogoproto.testgen_all) = true; - option (gogoproto.benchgen_all) = true; - - message A { - optional string Description = 1 [(gogoproto.nullable) = false]; - optional int64 Number = 2 [(gogoproto.nullable) = false]; - optional bytes Id = 3 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uuid", (gogoproto.nullable) = false]; - } - -given to the testgen plugin, will generate the following test code: - - func TestAProto(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedA(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { - panic(err) - } - for i := range data { - data[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseProto %#v, since %v", msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("%#v !Proto %#v", msg, p) - } - } - - func BenchmarkAProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*A, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedA(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(data) - } - b.SetBytes(int64(total / b.N)) - } - - func BenchmarkAProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedA(popr, false)) - if err != nil { - panic(err) - } - datas[i] = data - } - msg := &A{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) - } - - - func TestAJSON(t *testing1.T) { - popr := math_rand1.New(math_rand1.NewSource(time1.Now().UnixNano())) - p := NewPopulatedA(popr, true) - jsondata, err := encoding_json.Marshal(p) - if err != nil { - panic(err) - } - msg := &A{} - err = encoding_json.Unmarshal(jsondata, msg) - if err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseProto %#v, since %v", msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("%#v !Json Equal %#v", msg, p) - } - } - - func TestAProtoText(t *testing2.T) { - popr := math_rand2.New(math_rand2.NewSource(time2.Now().UnixNano())) - p := NewPopulatedA(popr, true) - data := github_com_gogo_protobuf_proto1.MarshalTextString(p) - msg := &A{} - if err := github_com_gogo_protobuf_proto1.UnmarshalText(data, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseProto %#v, since %v", msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("%#v !Proto %#v", msg, p) - } - } - - func TestAProtoCompactText(t *testing2.T) { - popr := math_rand2.New(math_rand2.NewSource(time2.Now().UnixNano())) - p := NewPopulatedA(popr, true) - data := github_com_gogo_protobuf_proto1.CompactTextString(p) - msg := &A{} - if err := github_com_gogo_protobuf_proto1.UnmarshalText(data, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseProto %#v, since %v", msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("%#v !Proto %#v", msg, p) - } - } - -Other registered tests are also generated. -Tests are registered to this test plugin by calling the following function. - - func RegisterTestPlugin(newFunc NewTestPlugin) - -where NewTestPlugin is: - - type NewTestPlugin func(g *generator.Generator) TestPlugin - -and TestPlugin is an interface: - - type TestPlugin interface { - Generate(imports generator.PluginImports, file *generator.FileDescriptor) (used bool) - } - -Plugins that use this interface include: - - - populate - - gostring - - equal - - union - - and more - -Please look at these plugins as examples of how to create your own. -A good idea is to let each plugin generate its own tests. - -*/ -package testgen - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" -) - -type TestPlugin interface { - Generate(imports generator.PluginImports, file *generator.FileDescriptor) (used bool) -} - -type NewTestPlugin func(g *generator.Generator) TestPlugin - -var testplugins = make([]NewTestPlugin, 0) - -func RegisterTestPlugin(newFunc NewTestPlugin) { - testplugins = append(testplugins, newFunc) -} - -type plugin struct { - *generator.Generator - generator.PluginImports - tests []TestPlugin -} - -func NewPlugin() *plugin { - return &plugin{} -} - -func (p *plugin) Name() string { - return "testgen" -} - -func (p *plugin) Init(g *generator.Generator) { - p.Generator = g - p.tests = make([]TestPlugin, 0, len(testplugins)) - for i := range testplugins { - p.tests = append(p.tests, testplugins[i](g)) - } -} - -func (p *plugin) Generate(file *generator.FileDescriptor) { - p.PluginImports = generator.NewPluginImports(p.Generator) - atLeastOne := false - for i := range p.tests { - used := p.tests[i].Generate(p.PluginImports, file) - if used { - atLeastOne = true - } - } - if atLeastOne { - p.P(`//These tests are generated by github.com/gogo/protobuf/plugin/testgen`) - } -} - -type testProto struct { - *generator.Generator -} - -func newProto(g *generator.Generator) TestPlugin { - return &testProto{g} -} - -func (p *testProto) Generate(imports generator.PluginImports, file *generator.FileDescriptor) bool { - used := false - testingPkg := imports.NewImport("testing") - randPkg := imports.NewImport("math/rand") - timePkg := imports.NewImport("time") - protoPkg := imports.NewImport("github.com/gogo/protobuf/proto") - if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { - protoPkg = imports.NewImport("github.com/golang/protobuf/proto") - } - for _, message := range file.Messages() { - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - if gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { - used = true - - p.P(`func Test`, ccTypeName, `Proto(t *`, testingPkg.Use(), `.T) {`) - p.In() - p.P(`seed := `, timePkg.Use(), `.Now().UnixNano()`) - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(seed))`) - p.P(`p := NewPopulated`, ccTypeName, `(popr, false)`) - p.P(`data, err := `, protoPkg.Use(), `.Marshal(p)`) - p.P(`if err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) - p.Out() - p.P(`}`) - p.P(`msg := &`, ccTypeName, `{}`) - p.P(`if err := `, protoPkg.Use(), `.Unmarshal(data, msg); err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) - p.Out() - p.P(`}`) - p.P(`littlefuzz := make([]byte, len(data))`) - p.P(`copy(littlefuzz, data)`) - p.P(`for i := range data {`) - p.In() - p.P(`data[i] = byte(popr.Intn(256))`) - p.Out() - p.P(`}`) - if gogoproto.HasVerboseEqual(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`if err := p.VerboseEqual(msg); err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err)`) - p.Out() - p.P(`}`) - } - p.P(`if !p.Equal(msg) {`) - p.In() - p.P(`t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)`) - p.Out() - p.P(`}`) - p.P(`if len(littlefuzz) > 0 {`) - p.In() - p.P(`fuzzamount := 100`) - p.P(`for i := 0; i < fuzzamount; i++ {`) - p.In() - p.P(`littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256))`) - p.P(`littlefuzz = append(littlefuzz, byte(popr.Intn(256)))`) - p.Out() - p.P(`}`) - p.P(`// shouldn't panic`) - p.P(`_ = `, protoPkg.Use(), `.Unmarshal(littlefuzz, msg)`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - p.P() - } - - if gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { - if gogoproto.IsMarshaler(file.FileDescriptorProto, message.DescriptorProto) || gogoproto.IsUnsafeMarshaler(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`func Test`, ccTypeName, `MarshalTo(t *`, testingPkg.Use(), `.T) {`) - p.In() - p.P(`seed := `, timePkg.Use(), `.Now().UnixNano()`) - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(seed))`) - p.P(`p := NewPopulated`, ccTypeName, `(popr, false)`) - p.P(`size := p.Size()`) - p.P(`data := make([]byte, size)`) - p.P(`for i := range data {`) - p.In() - p.P(`data[i] = byte(popr.Intn(256))`) - p.Out() - p.P(`}`) - p.P(`_, err := p.MarshalTo(data)`) - p.P(`if err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) - p.Out() - p.P(`}`) - p.P(`msg := &`, ccTypeName, `{}`) - p.P(`if err := `, protoPkg.Use(), `.Unmarshal(data, msg); err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) - p.Out() - p.P(`}`) - p.P(`for i := range data {`) - p.In() - p.P(`data[i] = byte(popr.Intn(256))`) - p.Out() - p.P(`}`) - if gogoproto.HasVerboseEqual(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`if err := p.VerboseEqual(msg); err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err)`) - p.Out() - p.P(`}`) - } - p.P(`if !p.Equal(msg) {`) - p.In() - p.P(`t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - p.P() - } - } - - if gogoproto.HasBenchGen(file.FileDescriptorProto, message.DescriptorProto) { - used = true - p.P(`func Benchmark`, ccTypeName, `ProtoMarshal(b *`, testingPkg.Use(), `.B) {`) - p.In() - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(616))`) - p.P(`total := 0`) - p.P(`pops := make([]*`, ccTypeName, `, 10000)`) - p.P(`for i := 0; i < 10000; i++ {`) - p.In() - p.P(`pops[i] = NewPopulated`, ccTypeName, `(popr, false)`) - p.Out() - p.P(`}`) - p.P(`b.ResetTimer()`) - p.P(`for i := 0; i < b.N; i++ {`) - p.In() - p.P(`data, err := `, protoPkg.Use(), `.Marshal(pops[i%10000])`) - p.P(`if err != nil {`) - p.In() - p.P(`panic(err)`) - p.Out() - p.P(`}`) - p.P(`total += len(data)`) - p.Out() - p.P(`}`) - p.P(`b.SetBytes(int64(total / b.N))`) - p.Out() - p.P(`}`) - p.P() - - p.P(`func Benchmark`, ccTypeName, `ProtoUnmarshal(b *`, testingPkg.Use(), `.B) {`) - p.In() - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(616))`) - p.P(`total := 0`) - p.P(`datas := make([][]byte, 10000)`) - p.P(`for i := 0; i < 10000; i++ {`) - p.In() - p.P(`data, err := `, protoPkg.Use(), `.Marshal(NewPopulated`, ccTypeName, `(popr, false))`) - p.P(`if err != nil {`) - p.In() - p.P(`panic(err)`) - p.Out() - p.P(`}`) - p.P(`datas[i] = data`) - p.Out() - p.P(`}`) - p.P(`msg := &`, ccTypeName, `{}`) - p.P(`b.ResetTimer()`) - p.P(`for i := 0; i < b.N; i++ {`) - p.In() - p.P(`total += len(datas[i%10000])`) - p.P(`if err := `, protoPkg.Use(), `.Unmarshal(datas[i%10000], msg); err != nil {`) - p.In() - p.P(`panic(err)`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - p.P(`b.SetBytes(int64(total / b.N))`) - p.Out() - p.P(`}`) - p.P() - } - } - return used -} - -type testJson struct { - *generator.Generator -} - -func newJson(g *generator.Generator) TestPlugin { - return &testJson{g} -} - -func (p *testJson) Generate(imports generator.PluginImports, file *generator.FileDescriptor) bool { - used := false - testingPkg := imports.NewImport("testing") - randPkg := imports.NewImport("math/rand") - timePkg := imports.NewImport("time") - jsonPkg := imports.NewImport("github.com/gogo/protobuf/jsonpb") - for _, message := range file.Messages() { - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - if gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { - used = true - p.P(`func Test`, ccTypeName, `JSON(t *`, testingPkg.Use(), `.T) {`) - p.In() - p.P(`seed := `, timePkg.Use(), `.Now().UnixNano()`) - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(seed))`) - p.P(`p := NewPopulated`, ccTypeName, `(popr, true)`) - p.P(`marshaler := `, jsonPkg.Use(), `.Marshaler{}`) - p.P(`jsondata, err := marshaler.MarshalToString(p)`) - p.P(`if err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) - p.Out() - p.P(`}`) - p.P(`msg := &`, ccTypeName, `{}`) - p.P(`err = `, jsonPkg.Use(), `.UnmarshalString(jsondata, msg)`) - p.P(`if err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) - p.Out() - p.P(`}`) - if gogoproto.HasVerboseEqual(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`if err := p.VerboseEqual(msg); err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err)`) - p.Out() - p.P(`}`) - } - p.P(`if !p.Equal(msg) {`) - p.In() - p.P(`t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p)`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - } - } - return used -} - -type testText struct { - *generator.Generator -} - -func newText(g *generator.Generator) TestPlugin { - return &testText{g} -} - -func (p *testText) Generate(imports generator.PluginImports, file *generator.FileDescriptor) bool { - used := false - testingPkg := imports.NewImport("testing") - randPkg := imports.NewImport("math/rand") - timePkg := imports.NewImport("time") - protoPkg := imports.NewImport("github.com/gogo/protobuf/proto") - if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { - protoPkg = imports.NewImport("github.com/golang/protobuf/proto") - } - //fmtPkg := imports.NewImport("fmt") - for _, message := range file.Messages() { - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - if gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { - used = true - - p.P(`func Test`, ccTypeName, `ProtoText(t *`, testingPkg.Use(), `.T) {`) - p.In() - p.P(`seed := `, timePkg.Use(), `.Now().UnixNano()`) - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(seed))`) - p.P(`p := NewPopulated`, ccTypeName, `(popr, true)`) - p.P(`data := `, protoPkg.Use(), `.MarshalTextString(p)`) - p.P(`msg := &`, ccTypeName, `{}`) - p.P(`if err := `, protoPkg.Use(), `.UnmarshalText(data, msg); err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) - p.Out() - p.P(`}`) - if gogoproto.HasVerboseEqual(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`if err := p.VerboseEqual(msg); err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err)`) - p.Out() - p.P(`}`) - } - p.P(`if !p.Equal(msg) {`) - p.In() - p.P(`t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - p.P() - - p.P(`func Test`, ccTypeName, `ProtoCompactText(t *`, testingPkg.Use(), `.T) {`) - p.In() - p.P(`seed := `, timePkg.Use(), `.Now().UnixNano()`) - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(seed))`) - p.P(`p := NewPopulated`, ccTypeName, `(popr, true)`) - p.P(`data := `, protoPkg.Use(), `.CompactTextString(p)`) - p.P(`msg := &`, ccTypeName, `{}`) - p.P(`if err := `, protoPkg.Use(), `.UnmarshalText(data, msg); err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) - p.Out() - p.P(`}`) - if gogoproto.HasVerboseEqual(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`if err := p.VerboseEqual(msg); err != nil {`) - p.In() - p.P(`t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err)`) - p.Out() - p.P(`}`) - } - p.P(`if !p.Equal(msg) {`) - p.In() - p.P(`t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - p.P() - - } - } - return used -} - -func init() { - RegisterTestPlugin(newProto) - RegisterTestPlugin(newJson) - RegisterTestPlugin(newText) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/union/union.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/union/union.go deleted file mode 100644 index dc26f138..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/union/union.go +++ /dev/null @@ -1,207 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The onlyone plugin generates code for the onlyone extension. -All fields must be nullable and only one of the fields may be set, like a union. -Two methods are generated - - GetValue() interface{} - -and - - SetValue(v interface{}) (set bool) - -These provide easier interaction with a onlyone. - -The onlyone extension is not called union as this causes compile errors in the C++ generated code. -There can only be one ;) - -It is enabled by the following extensions: - - - onlyone - - onlyone_all - -The onlyone plugin also generates a test given it is enabled using one of the following extensions: - - - testgen - - testgen_all - -Lets look at: - - github.com/gogo/protobuf/test/example/example.proto - -Btw all the output can be seen at: - - github.com/gogo/protobuf/test/example/* - -The following message: - - message U { - option (gogoproto.onlyone) = true; - optional A A = 1; - optional B B = 2; - } - -given to the onlyone plugin, will generate code which looks a lot like this: - - func (this *U) GetValue() interface{} { - if this.A != nil { - return this.A - } - if this.B != nil { - return this.B - } - return nil - } - - func (this *U) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *A: - this.A = vt - case *B: - this.B = vt - default: - return false - } - return true - } - -and the following test code: - - func TestUUnion(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedU(popr) - v := p.GetValue() - msg := &U{} - if !msg.SetValue(v) { - t.Fatalf("Union: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !Union Equal %#v", msg, p) - } - } - -*/ -package union - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" -) - -type union struct { - *generator.Generator - generator.PluginImports -} - -func NewUnion() *union { - return &union{} -} - -func (p *union) Name() string { - return "union" -} - -func (p *union) Init(g *generator.Generator) { - p.Generator = g -} - -func (p *union) Generate(file *generator.FileDescriptor) { - p.PluginImports = generator.NewPluginImports(p.Generator) - - for _, message := range file.Messages() { - if !gogoproto.IsUnion(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if message.DescriptorProto.HasExtension() { - panic("onlyone does not currently support extensions") - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - p.P(`func (this *`, ccTypeName, `) GetValue() interface{} {`) - p.In() - for _, field := range message.Field { - fieldname := p.GetFieldName(message, field) - if fieldname == "Value" { - panic("cannot have a onlyone message " + ccTypeName + " with a field named Value") - } - p.P(`if this.`, fieldname, ` != nil {`) - p.In() - p.P(`return this.`, fieldname) - p.Out() - p.P(`}`) - } - p.P(`return nil`) - p.Out() - p.P(`}`) - p.P(``) - p.P(`func (this *`, ccTypeName, `) SetValue(value interface{}) bool {`) - p.In() - p.P(`switch vt := value.(type) {`) - p.In() - for _, field := range message.Field { - fieldname := p.GetFieldName(message, field) - goTyp, _ := p.GoType(message, field) - p.P(`case `, goTyp, `:`) - p.In() - p.P(`this.`, fieldname, ` = vt`) - p.Out() - } - p.P(`default:`) - p.In() - for _, field := range message.Field { - fieldname := p.GetFieldName(message, field) - if field.IsMessage() { - goTyp, _ := p.GoType(message, field) - obj := p.ObjectNamed(field.GetTypeName()).(*generator.Descriptor) - - if gogoproto.IsUnion(obj.File(), obj.DescriptorProto) { - p.P(`this.`, fieldname, ` = new(`, generator.GoTypeToName(goTyp), `)`) - p.P(`if set := this.`, fieldname, `.SetValue(value); set {`) - p.In() - p.P(`return true`) - p.Out() - p.P(`}`) - p.P(`this.`, fieldname, ` = nil`) - } - } - } - p.P(`return false`) - p.Out() - p.P(`}`) - p.P(`return true`) - p.Out() - p.P(`}`) - } -} - -func init() { - generator.RegisterPlugin(NewUnion()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/union/uniontest.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/union/uniontest.go deleted file mode 100644 index 018bf5ef..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/union/uniontest.go +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -package union - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/testgen" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" -) - -type test struct { - *generator.Generator -} - -func NewTest(g *generator.Generator) testgen.TestPlugin { - return &test{g} -} - -func (p *test) Generate(imports generator.PluginImports, file *generator.FileDescriptor) bool { - used := false - randPkg := imports.NewImport("math/rand") - timePkg := imports.NewImport("time") - testingPkg := imports.NewImport("testing") - for _, message := range file.Messages() { - if !gogoproto.IsUnion(file.FileDescriptorProto, message.DescriptorProto) || - !gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - used = true - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - - p.P(`func Test`, ccTypeName, `OnlyOne(t *`, testingPkg.Use(), `.T) {`) - p.In() - p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(`, timePkg.Use(), `.Now().UnixNano()))`) - p.P(`p := NewPopulated`, ccTypeName, `(popr, true)`) - p.P(`v := p.GetValue()`) - p.P(`msg := &`, ccTypeName, `{}`) - p.P(`if !msg.SetValue(v) {`) - p.In() - p.P(`t.Fatalf("OnlyOne: Could not set Value")`) - p.Out() - p.P(`}`) - p.P(`if !p.Equal(msg) {`) - p.In() - p.P(`t.Fatalf("%#v !OnlyOne Equal %#v", msg, p)`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - - } - return used -} - -func init() { - testgen.RegisterTestPlugin(NewTest) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/unmarshal/unmarshal.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/unmarshal/unmarshal.go deleted file mode 100644 index 2627c204..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/unmarshal/unmarshal.go +++ /dev/null @@ -1,1298 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -/* -The unmarshal plugin generates a Unmarshal method for each message. -The `Unmarshal([]byte) error` method results in the fact that the message -implements the Unmarshaler interface. -The allows proto.Unmarshal to be faster by calling the generated Unmarshal method rather than using reflect. - -If is enabled by the following extensions: - - - unmarshaler - - unmarshaler_all - -Or the following extensions: - - - unsafe_unmarshaler - - unsafe_unmarshaler_all - -That is if you want to use the unsafe package in your generated code. -The speed up using the unsafe package is not very significant. - -The generation of unmarshalling tests are enabled using one of the following extensions: - - - testgen - - testgen_all - -And benchmarks given it is enabled using one of the following extensions: - - - benchgen - - benchgen_all - -Let us look at: - - github.com/gogo/protobuf/test/example/example.proto - -Btw all the output can be seen at: - - github.com/gogo/protobuf/test/example/* - -The following message: - - option (gogoproto.unmarshaler_all) = true; - - message B { - option (gogoproto.description) = true; - optional A A = 1 [(gogoproto.nullable) = false, (gogoproto.embed) = true]; - repeated bytes G = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; - } - -given to the unmarshal plugin, will generate the following code: - - func (m *B) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - switch fieldNum { - case 1: - if wireType != 2 { - return proto.ErrWrongType - } - var msglen int - for shift := uint(0); ; shift += 7 { - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.A.Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return proto.ErrWrongType - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.G = append(m.G, github_com_gogo_protobuf_test_custom.Uint128{}) - if err := m.G[len(m.G)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - var sizeOfWire int - for { - sizeOfWire++ - wire >>= 7 - if wire == 0 { - break - } - } - iNdEx -= sizeOfWire - skippy, err := skip(data[iNdEx:]) - if err != nil { - return err - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - return nil - } - -Remember when using this code to call proto.Unmarshal. -This will call m.Reset and invoke the generated Unmarshal method for you. -If you call m.Unmarshal without m.Reset you could be merging protocol buffers. - -*/ -package unmarshal - -import ( - "fmt" - "strconv" - "strings" - - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" -) - -type unmarshal struct { - *generator.Generator - unsafe bool - generator.PluginImports - atleastOne bool - ioPkg generator.Single - mathPkg generator.Single - unsafePkg generator.Single - localName string -} - -func NewUnmarshal() *unmarshal { - return &unmarshal{} -} - -func NewUnsafeUnmarshal() *unmarshal { - return &unmarshal{unsafe: true} -} - -func (p *unmarshal) Name() string { - if p.unsafe { - return "unsafeunmarshaler" - } - return "unmarshal" -} - -func (p *unmarshal) Init(g *generator.Generator) { - p.Generator = g -} - -func (p *unmarshal) decodeVarint(varName string, typName string) { - p.P(`for shift := uint(0); ; shift += 7 {`) - p.In() - p.P(`if shift >= 64 {`) - p.In() - p.P(`return ErrIntOverflow` + p.localName) - p.Out() - p.P(`}`) - p.P(`if iNdEx >= l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - p.P(`b := data[iNdEx]`) - p.P(`iNdEx++`) - p.P(varName, ` |= (`, typName, `(b) & 0x7F) << shift`) - p.P(`if b < 0x80 {`) - p.In() - p.P(`break`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) -} - -func (p *unmarshal) decodeFixed32(varName string, typeName string) { - p.P(`if (iNdEx+4) > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - p.P(`iNdEx += 4`) - p.P(varName, ` = `, typeName, `(data[iNdEx-4])`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-3]) << 8`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-2]) << 16`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-1]) << 24`) -} - -func (p *unmarshal) unsafeFixed32(varName string, typeName string) { - p.P(`if iNdEx + 4 > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - p.P(varName, ` = *(*`, typeName, `)(`, p.unsafePkg.Use(), `.Pointer(&data[iNdEx]))`) - p.P(`iNdEx += 4`) -} - -func (p *unmarshal) decodeFixed64(varName string, typeName string) { - p.P(`if (iNdEx+8) > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - p.P(`iNdEx += 8`) - p.P(varName, ` = `, typeName, `(data[iNdEx-8])`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-7]) << 8`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-6]) << 16`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-5]) << 24`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-4]) << 32`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-3]) << 40`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-2]) << 48`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-1]) << 56`) -} - -func (p *unmarshal) unsafeFixed64(varName string, typeName string) { - p.P(`if iNdEx + 8 > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - p.P(varName, ` = *(*`, typeName, `)(`, p.unsafePkg.Use(), `.Pointer(&data[iNdEx]))`) - p.P(`iNdEx += 8`) -} - -func (p *unmarshal) mapField(varName string, field *descriptor.FieldDescriptorProto) { - switch field.GetType() { - case descriptor.FieldDescriptorProto_TYPE_DOUBLE: - p.P(`var `, varName, `temp uint64`) - p.decodeFixed64(varName+"temp", "uint64") - p.P(varName, ` := `, p.mathPkg.Use(), `.Float64frombits(`, varName, `temp)`) - case descriptor.FieldDescriptorProto_TYPE_FLOAT: - p.P(`var `, varName, `temp uint32`) - p.decodeFixed32(varName+"temp", "uint32") - p.P(varName, ` := `, p.mathPkg.Use(), `.Float32frombits(`, varName, `temp)`) - case descriptor.FieldDescriptorProto_TYPE_INT64: - p.P(`var `, varName, ` int64`) - p.decodeVarint(varName, "int64") - case descriptor.FieldDescriptorProto_TYPE_UINT64: - p.P(`var `, varName, ` uint64`) - p.decodeVarint(varName, "uint64") - case descriptor.FieldDescriptorProto_TYPE_INT32: - p.P(`var `, varName, ` int32`) - p.decodeVarint(varName, "int32") - case descriptor.FieldDescriptorProto_TYPE_FIXED64: - p.P(`var `, varName, ` uint64`) - p.decodeFixed64(varName, "uint64") - case descriptor.FieldDescriptorProto_TYPE_FIXED32: - p.P(`var `, varName, ` uint32`) - p.decodeFixed32(varName, "uint32") - case descriptor.FieldDescriptorProto_TYPE_BOOL: - p.P(`var `, varName, `temp int`) - p.decodeVarint(varName+"temp", "int") - p.P(varName, ` := bool(`, varName, `temp != 0)`) - case descriptor.FieldDescriptorProto_TYPE_STRING: - p.P(`var stringLen`, varName, ` uint64`) - p.decodeVarint("stringLen"+varName, "uint64") - p.P(`intStringLen`, varName, ` := int(stringLen`, varName, `)`) - p.P(`if intStringLen`, varName, ` < 0 {`) - p.In() - p.P(`return ErrInvalidLength` + p.localName) - p.Out() - p.P(`}`) - p.P(`postStringIndex`, varName, ` := iNdEx + intStringLen`, varName) - p.P(`if postStringIndex`, varName, ` > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - p.P(varName, ` := string(data[iNdEx:postStringIndex`, varName, `])`) - p.P(`iNdEx = postStringIndex`, varName) - case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - p.P(`var mapmsglen int`) - p.decodeVarint("mapmsglen", "int") - p.P(`if mapmsglen < 0 {`) - p.In() - p.P(`return ErrInvalidLength` + p.localName) - p.Out() - p.P(`}`) - p.P(`postmsgIndex := iNdEx + mapmsglen`) - p.P(`if mapmsglen < 0 {`) - p.In() - p.P(`return ErrInvalidLength` + p.localName) - p.Out() - p.P(`}`) - p.P(`if postmsgIndex > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - desc := p.ObjectNamed(field.GetTypeName()) - msgname := p.TypeName(desc) - p.P(varName, ` := &`, msgname, `{}`) - p.P(`if err := `, varName, `.Unmarshal(data[iNdEx:postmsgIndex]); err != nil {`) - p.In() - p.P(`return err`) - p.Out() - p.P(`}`) - p.P(`iNdEx = postmsgIndex`) - case descriptor.FieldDescriptorProto_TYPE_BYTES: - p.P(`var mapbyteLen uint64`) - p.decodeVarint("mapbyteLen", "uint64") - p.P(`intMapbyteLen := int(mapbyteLen)`) - p.P(`if intMapbyteLen < 0 {`) - p.In() - p.P(`return ErrInvalidLength` + p.localName) - p.Out() - p.P(`}`) - p.P(`postbytesIndex := iNdEx + intMapbyteLen`) - p.P(`if postbytesIndex > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - p.P(varName, ` := make([]byte, mapbyteLen)`) - p.P(`copy(`, varName, `, data[iNdEx:postbytesIndex])`) - p.P(`iNdEx = postbytesIndex`) - case descriptor.FieldDescriptorProto_TYPE_UINT32: - p.P(`var `, varName, ` uint32`) - p.decodeVarint(varName, "uint32") - case descriptor.FieldDescriptorProto_TYPE_ENUM: - typName := p.TypeName(p.ObjectNamed(field.GetTypeName())) - p.P(`var `, varName, ` `, typName) - p.decodeVarint(varName, typName) - case descriptor.FieldDescriptorProto_TYPE_SFIXED32: - p.P(`var `, varName, ` int32`) - p.decodeFixed32(varName, "int32") - case descriptor.FieldDescriptorProto_TYPE_SFIXED64: - p.P(`var `, varName, ` int64`) - p.decodeFixed64(varName, "int64") - case descriptor.FieldDescriptorProto_TYPE_SINT32: - p.P(`var `, varName, `temp int32`) - p.decodeVarint(varName+"temp", "int32") - p.P(varName, `temp = int32((uint32(`, varName, `temp) >> 1) ^ uint32(((`, varName, `temp&1)<<31)>>31))`) - p.P(varName, ` := int32(`, varName, `temp)`) - case descriptor.FieldDescriptorProto_TYPE_SINT64: - p.P(`var `, varName, `temp uint64`) - p.decodeVarint(varName+"temp", "uint64") - p.P(varName, `temp = (`, varName, `temp >> 1) ^ uint64((int64(`, varName, `temp&1)<<63)>>63)`) - p.P(varName, ` := int64(`, varName, `temp)`) - } -} - -func (p *unmarshal) noStarOrSliceType(msg *generator.Descriptor, field *descriptor.FieldDescriptorProto) string { - typ, _ := p.GoType(msg, field) - if typ[0] == '*' { - return typ[1:] - } - if typ[0] == '[' && typ[1] == ']' { - return typ[2:] - } - return typ -} - -func (p *unmarshal) field(file *descriptor.FileDescriptorProto, msg *generator.Descriptor, field *descriptor.FieldDescriptorProto, fieldname string, proto3 bool) { - repeated := field.IsRepeated() - nullable := gogoproto.IsNullable(field) - typ := p.noStarOrSliceType(msg, field) - oneof := field.OneofIndex != nil - switch *field.Type { - case descriptor.FieldDescriptorProto_TYPE_DOUBLE: - if !p.unsafe || gogoproto.IsCastType(field) { - p.P(`var v uint64`) - p.decodeFixed64("v", "uint64") - if oneof { - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{`, typ, "(", p.mathPkg.Use(), `.Float64frombits(v))}`) - } else if repeated { - p.P(`v2 := `, typ, "(", p.mathPkg.Use(), `.Float64frombits(v))`) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v2)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = `, typ, "(", p.mathPkg.Use(), `.Float64frombits(v))`) - } else { - p.P(`v2 := `, typ, "(", p.mathPkg.Use(), `.Float64frombits(v))`) - p.P(`m.`, fieldname, ` = &v2`) - } - } else { - if oneof { - p.P(`var v float64`) - p.unsafeFixed64("v", "float64") - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v float64`) - p.unsafeFixed64("v", "float64") - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.unsafeFixed64(`m.`+fieldname, "float64") - } else { - p.P(`var v float64`) - p.unsafeFixed64("v", "float64") - p.P(`m.`, fieldname, ` = &v`) - } - } - case descriptor.FieldDescriptorProto_TYPE_FLOAT: - if !p.unsafe || gogoproto.IsCastType(field) { - p.P(`var v uint32`) - p.decodeFixed32("v", "uint32") - if oneof { - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{`, typ, "(", p.mathPkg.Use(), `.Float32frombits(v))}`) - } else if repeated { - p.P(`v2 := `, typ, "(", p.mathPkg.Use(), `.Float32frombits(v))`) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v2)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = `, typ, "(", p.mathPkg.Use(), `.Float32frombits(v))`) - } else { - p.P(`v2 := `, typ, "(", p.mathPkg.Use(), `.Float32frombits(v))`) - p.P(`m.`, fieldname, ` = &v2`) - } - } else { - if oneof { - p.P(`var v float32`) - p.unsafeFixed32("v", "float32") - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v float32`) - p.unsafeFixed32("v", "float32") - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.unsafeFixed32("m."+fieldname, "float32") - } else { - p.P(`var v float32`) - p.unsafeFixed32("v", "float32") - p.P(`m.`, fieldname, ` = &v`) - } - } - case descriptor.FieldDescriptorProto_TYPE_INT64: - if oneof { - p.P(`var v `, typ) - p.decodeVarint("v", typ) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v `, typ) - p.decodeVarint("v", typ) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = 0`) - p.decodeVarint("m."+fieldname, typ) - } else { - p.P(`var v `, typ) - p.decodeVarint("v", typ) - p.P(`m.`, fieldname, ` = &v`) - } - case descriptor.FieldDescriptorProto_TYPE_UINT64: - if oneof { - p.P(`var v `, typ) - p.decodeVarint("v", typ) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v `, typ) - p.decodeVarint("v", typ) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = 0`) - p.decodeVarint("m."+fieldname, typ) - } else { - p.P(`var v `, typ) - p.decodeVarint("v", typ) - p.P(`m.`, fieldname, ` = &v`) - } - case descriptor.FieldDescriptorProto_TYPE_INT32: - if oneof { - p.P(`var v `, typ) - p.decodeVarint("v", typ) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v `, typ) - p.decodeVarint("v", typ) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = 0`) - p.decodeVarint("m."+fieldname, typ) - } else { - p.P(`var v `, typ) - p.decodeVarint("v", typ) - p.P(`m.`, fieldname, ` = &v`) - } - case descriptor.FieldDescriptorProto_TYPE_FIXED64: - if !p.unsafe || gogoproto.IsCastType(field) { - if oneof { - p.P(`var v `, typ) - p.decodeFixed64("v", typ) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v `, typ) - p.decodeFixed64("v", typ) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = 0`) - p.decodeFixed64("m."+fieldname, typ) - } else { - p.P(`var v `, typ) - p.decodeFixed64("v", typ) - p.P(`m.`, fieldname, ` = &v`) - } - } else { - if oneof { - p.P(`var v uint64`) - p.unsafeFixed64("v", "uint64") - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v uint64`) - p.unsafeFixed64("v", "uint64") - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.unsafeFixed64("m."+fieldname, "uint64") - } else { - p.P(`var v uint64`) - p.unsafeFixed64("v", "uint64") - p.P(`m.`, fieldname, ` = &v`) - } - } - case descriptor.FieldDescriptorProto_TYPE_FIXED32: - if !p.unsafe || gogoproto.IsCastType(field) { - if oneof { - p.P(`var v `, typ) - p.decodeFixed32("v", typ) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v `, typ) - p.decodeFixed32("v", typ) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = 0`) - p.decodeFixed32("m."+fieldname, typ) - } else { - p.P(`var v `, typ) - p.decodeFixed32("v", typ) - p.P(`m.`, fieldname, ` = &v`) - } - } else { - if oneof { - p.P(`var v uint32`) - p.unsafeFixed32("v", "uint32") - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v uint32`) - p.unsafeFixed32("v", "uint32") - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.unsafeFixed32("m."+fieldname, "uint32") - } else { - p.P(`var v uint32`) - p.unsafeFixed32("v", "uint32") - p.P(`m.`, fieldname, ` = &v`) - } - } - case descriptor.FieldDescriptorProto_TYPE_BOOL: - p.P(`var v int`) - p.decodeVarint("v", "int") - if oneof { - p.P(`b := `, typ, `(v != 0)`) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{b}`) - } else if repeated { - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, `, typ, `(v != 0))`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = `, typ, `(v != 0)`) - } else { - p.P(`b := `, typ, `(v != 0)`) - p.P(`m.`, fieldname, ` = &b`) - } - case descriptor.FieldDescriptorProto_TYPE_STRING: - p.P(`var stringLen uint64`) - p.decodeVarint("stringLen", "uint64") - p.P(`intStringLen := int(stringLen)`) - p.P(`if intStringLen < 0 {`) - p.In() - p.P(`return ErrInvalidLength` + p.localName) - p.Out() - p.P(`}`) - p.P(`postIndex := iNdEx + intStringLen`) - p.P(`if postIndex > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - if oneof { - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{`, typ, `(data[iNdEx:postIndex])}`) - } else if repeated { - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, `, typ, `(data[iNdEx:postIndex]))`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = `, typ, `(data[iNdEx:postIndex])`) - } else { - p.P(`s := `, typ, `(data[iNdEx:postIndex])`) - p.P(`m.`, fieldname, ` = &s`) - } - p.P(`iNdEx = postIndex`) - case descriptor.FieldDescriptorProto_TYPE_GROUP: - panic(fmt.Errorf("unmarshaler does not support group %v", fieldname)) - case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - desc := p.ObjectNamed(field.GetTypeName()) - msgname := p.TypeName(desc) - p.P(`var msglen int`) - p.decodeVarint("msglen", "int") - p.P(`if msglen < 0 {`) - p.In() - p.P(`return ErrInvalidLength` + p.localName) - p.Out() - p.P(`}`) - p.P(`postIndex := iNdEx + msglen`) - p.P(`if postIndex > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - if oneof { - p.P(`v := &`, msgname, `{}`) - p.P(`if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil {`) - p.In() - p.P(`return err`) - p.Out() - p.P(`}`) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if generator.IsMap(file, field) { - mapMsg := generator.GetMap(file, field) - keyField, valueField := mapMsg.GetMapFields() - keygoTyp, _ := p.GoType(nil, keyField) - keygoTyp = strings.Replace(keygoTyp, "*", "", 1) - valuegoTyp, _ := p.GoType(nil, valueField) - if !valueField.IsMessage() { - valuegoTyp = strings.Replace(valuegoTyp, "*", "", 1) - } - p.P(`var keykey uint64`) - p.decodeVarint("keykey", "uint64") - p.mapField("mapkey", keyField) - p.P(`var valuekey uint64`) - p.decodeVarint("valuekey", "uint64") - p.mapField("mapvalue", valueField) - p.P(`if m.`, fieldname, ` == nil {`) - p.In() - p.P(`m.`, fieldname, ` = make(map[`, keygoTyp, `]`, valuegoTyp, `)`) - p.Out() - p.P(`}`) - p.P(`m.`, fieldname, `[mapkey] = mapvalue`) - } else if repeated { - if nullable { - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, &`, msgname, `{})`) - } else { - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, `, msgname, `{})`) - } - p.P(`if err := m.`, fieldname, `[len(m.`, fieldname, `)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {`) - p.In() - p.P(`return err`) - p.Out() - p.P(`}`) - } else if nullable { - p.P(`if m.`, fieldname, ` == nil {`) - p.In() - p.P(`m.`, fieldname, ` = &`, msgname, `{}`) - p.Out() - p.P(`}`) - p.P(`if err := m.`, fieldname, `.Unmarshal(data[iNdEx:postIndex]); err != nil {`) - p.In() - p.P(`return err`) - p.Out() - p.P(`}`) - } else { - p.P(`if err := m.`, fieldname, `.Unmarshal(data[iNdEx:postIndex]); err != nil {`) - p.In() - p.P(`return err`) - p.Out() - p.P(`}`) - } - p.P(`iNdEx = postIndex`) - case descriptor.FieldDescriptorProto_TYPE_BYTES: - p.P(`var byteLen int`) - p.decodeVarint("byteLen", "int") - p.P(`if byteLen < 0 {`) - p.In() - p.P(`return ErrInvalidLength` + p.localName) - p.Out() - p.P(`}`) - p.P(`postIndex := iNdEx + byteLen`) - p.P(`if postIndex > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - if !gogoproto.IsCustomType(field) { - if oneof { - p.P(`v := make([]byte, postIndex-iNdEx)`) - p.P(`copy(v, data[iNdEx:postIndex])`) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, make([]byte, postIndex-iNdEx))`) - p.P(`copy(m.`, fieldname, `[len(m.`, fieldname, `)-1], data[iNdEx:postIndex])`) - } else { - p.P(`m.`, fieldname, ` = append([]byte{}`, `, data[iNdEx:postIndex]...)`) - } - } else { - _, ctyp, err := generator.GetCustomType(field) - if err != nil { - panic(err) - } - if oneof { - p.P(`var vv `, ctyp) - p.P(`v := &vv`) - p.P(`if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil {`) - p.In() - p.P(`return err`) - p.Out() - p.P(`}`) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{*v}`) - } else if repeated { - p.P(`var v `, ctyp) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - p.P(`if err := m.`, fieldname, `[len(m.`, fieldname, `)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {`) - p.In() - p.P(`return err`) - p.Out() - p.P(`}`) - } else if nullable { - p.P(`var v `, ctyp) - p.P(`m.`, fieldname, ` = &v`) - p.P(`if err := m.`, fieldname, `.Unmarshal(data[iNdEx:postIndex]); err != nil {`) - p.In() - p.P(`return err`) - p.Out() - p.P(`}`) - } else { - p.P(`if err := m.`, fieldname, `.Unmarshal(data[iNdEx:postIndex]); err != nil {`) - p.In() - p.P(`return err`) - p.Out() - p.P(`}`) - } - } - p.P(`iNdEx = postIndex`) - case descriptor.FieldDescriptorProto_TYPE_UINT32: - if oneof { - p.P(`var v `, typ) - p.decodeVarint("v", typ) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v `, typ) - p.decodeVarint("v", typ) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = 0`) - p.decodeVarint("m."+fieldname, typ) - } else { - p.P(`var v `, typ) - p.decodeVarint("v", typ) - p.P(`m.`, fieldname, ` = &v`) - } - case descriptor.FieldDescriptorProto_TYPE_ENUM: - typName := p.TypeName(p.ObjectNamed(field.GetTypeName())) - if oneof { - p.P(`var v `, typName) - p.decodeVarint("v", typName) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v `, typName) - p.decodeVarint("v", typName) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = 0`) - p.decodeVarint("m."+fieldname, typName) - } else { - p.P(`var v `, typName) - p.decodeVarint("v", typName) - p.P(`m.`, fieldname, ` = &v`) - } - case descriptor.FieldDescriptorProto_TYPE_SFIXED32: - if !p.unsafe || gogoproto.IsCastType(field) { - if oneof { - p.P(`var v `, typ) - p.decodeFixed32("v", typ) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v `, typ) - p.decodeFixed32("v", typ) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = 0`) - p.decodeFixed32("m."+fieldname, typ) - } else { - p.P(`var v `, typ) - p.decodeFixed32("v", typ) - p.P(`m.`, fieldname, ` = &v`) - } - } else { - if oneof { - p.P(`var v int32`) - p.unsafeFixed32("v", "int32") - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v int32`) - p.unsafeFixed32("v", "int32") - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.unsafeFixed32("m."+fieldname, "int32") - } else { - p.P(`var v int32`) - p.unsafeFixed32("v", "int32") - p.P(`m.`, fieldname, ` = &v`) - } - } - case descriptor.FieldDescriptorProto_TYPE_SFIXED64: - if !p.unsafe || gogoproto.IsCastType(field) { - if oneof { - p.P(`var v `, typ) - p.decodeFixed64("v", typ) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v `, typ) - p.decodeFixed64("v", typ) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = 0`) - p.decodeFixed64("m."+fieldname, typ) - } else { - p.P(`var v `, typ) - p.decodeFixed64("v", typ) - p.P(`m.`, fieldname, ` = &v`) - } - } else { - if oneof { - p.P(`var v int64`) - p.unsafeFixed64("v", "int64") - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v int64`) - p.unsafeFixed64("v", "int64") - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.unsafeFixed64("m."+fieldname, "int64") - } else { - p.P(`var v int64`) - p.unsafeFixed64("v", "int64") - p.P(`m.`, fieldname, ` = &v`) - } - } - case descriptor.FieldDescriptorProto_TYPE_SINT32: - p.P(`var v `, typ) - p.decodeVarint("v", typ) - p.P(`v = `, typ, `((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))`) - if oneof { - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = v`) - } else { - p.P(`m.`, fieldname, ` = &v`) - } - case descriptor.FieldDescriptorProto_TYPE_SINT64: - p.P(`var v uint64`) - p.decodeVarint("v", "uint64") - p.P(`v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)`) - if oneof { - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{`, typ, `(v)}`) - } else if repeated { - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, `, typ, `(v))`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = `, typ, `(v)`) - } else { - p.P(`v2 := `, typ, `(v)`) - p.P(`m.`, fieldname, ` = &v2`) - } - default: - panic("not implemented") - } -} - -func (p *unmarshal) Generate(file *generator.FileDescriptor) { - proto3 := gogoproto.IsProto3(file.FileDescriptorProto) - p.PluginImports = generator.NewPluginImports(p.Generator) - p.atleastOne = false - p.localName = generator.FileName(file) - if p.unsafe { - p.localName += "Unsafe" - } - - p.ioPkg = p.NewImport("io") - p.mathPkg = p.NewImport("math") - p.unsafePkg = p.NewImport("unsafe") - fmtPkg := p.NewImport("fmt") - protoPkg := p.NewImport("github.com/gogo/protobuf/proto") - if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { - protoPkg = p.NewImport("github.com/golang/protobuf/proto") - } - - for _, message := range file.Messages() { - ccTypeName := generator.CamelCaseSlice(message.TypeName()) - if p.unsafe { - if !gogoproto.IsUnsafeUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if gogoproto.IsUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) { - panic(fmt.Sprintf("unsafe_unmarshaler and unmarshaler enabled for %v", ccTypeName)) - } - } - if !p.unsafe { - if !gogoproto.IsUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if gogoproto.IsUnsafeUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) { - panic(fmt.Sprintf("unsafe_unmarshaler and unmarshaler enabled for %v", ccTypeName)) - } - } - if message.DescriptorProto.GetOptions().GetMapEntry() { - continue - } - p.atleastOne = true - - // build a map required field_id -> bitmask offset - rfMap := make(map[int32]uint) - rfNextId := uint(0) - for _, field := range message.Field { - if field.IsRequired() { - rfMap[field.GetNumber()] = rfNextId - rfNextId++ - } - } - rfCount := len(rfMap) - - p.P(`func (m *`, ccTypeName, `) Unmarshal(data []byte) error {`) - p.In() - if rfCount > 0 { - p.P(`var hasFields [`, strconv.Itoa(1+(rfCount-1)/64), `]uint64`) - } - p.P(`l := len(data)`) - p.P(`iNdEx := 0`) - p.P(`for iNdEx < l {`) - p.In() - p.P(`preIndex := iNdEx`) - p.P(`var wire uint64`) - p.decodeVarint("wire", "uint64") - p.P(`fieldNum := int32(wire >> 3)`) - if len(message.Field) > 0 || !message.IsGroup() { - p.P(`wireType := int(wire & 0x7)`) - } - if !message.IsGroup() { - p.P(`if wireType == `, strconv.Itoa(proto.WireEndGroup), ` {`) - p.In() - p.P(`return `, fmtPkg.Use(), `.Errorf("proto: `+message.GetName()+`: wiretype end group for non-group")`) - p.Out() - p.P(`}`) - } - p.P(`if fieldNum <= 0 {`) - p.In() - p.P(`return `, fmtPkg.Use(), `.Errorf("proto: `+message.GetName()+`: illegal tag %d (wire type %d)", fieldNum, wire)`) - p.Out() - p.P(`}`) - p.P(`switch fieldNum {`) - p.In() - for _, field := range message.Field { - fieldname := p.GetFieldName(message, field) - errFieldname := fieldname - if field.OneofIndex != nil { - errFieldname = p.GetOneOfFieldName(message, field) - } - packed := field.IsPacked() - p.P(`case `, strconv.Itoa(int(field.GetNumber())), `:`) - p.In() - wireType := field.WireType() - if packed { - p.P(`if wireType == `, strconv.Itoa(proto.WireBytes), `{`) - p.In() - p.P(`var packedLen int`) - p.decodeVarint("packedLen", "int") - p.P(`if packedLen < 0 {`) - p.In() - p.P(`return ErrInvalidLength` + p.localName) - p.Out() - p.P(`}`) - p.P(`postIndex := iNdEx + packedLen`) - p.P(`if postIndex > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - p.P(`for iNdEx < postIndex {`) - p.In() - p.field(file.FileDescriptorProto, message, field, fieldname, false) - p.Out() - p.P(`}`) - p.Out() - p.P(`} else if wireType == `, strconv.Itoa(wireType), `{`) - p.In() - p.field(file.FileDescriptorProto, message, field, fieldname, false) - p.Out() - p.P(`} else {`) - p.In() - p.P(`return ` + fmtPkg.Use() + `.Errorf("proto: wrong wireType = %d for field ` + errFieldname + `", wireType)`) - p.Out() - p.P(`}`) - } else { - p.P(`if wireType != `, strconv.Itoa(wireType), `{`) - p.In() - p.P(`return ` + fmtPkg.Use() + `.Errorf("proto: wrong wireType = %d for field ` + errFieldname + `", wireType)`) - p.Out() - p.P(`}`) - p.field(file.FileDescriptorProto, message, field, fieldname, proto3) - } - - if field.IsRequired() { - fieldBit, ok := rfMap[field.GetNumber()] - if !ok { - panic("field is required, but no bit registered") - } - p.P(`hasFields[`, strconv.Itoa(int(fieldBit/64)), `] |= uint64(`, fmt.Sprintf("0x%08x", 1<<(fieldBit%64)), `)`) - } - } - p.Out() - p.P(`default:`) - p.In() - if message.DescriptorProto.HasExtension() { - c := []string{} - for _, erange := range message.GetExtensionRange() { - c = append(c, `((fieldNum >= `+strconv.Itoa(int(erange.GetStart()))+") && (fieldNum<"+strconv.Itoa(int(erange.GetEnd()))+`))`) - } - p.P(`if `, strings.Join(c, "||"), `{`) - p.In() - p.P(`var sizeOfWire int`) - p.P(`for {`) - p.In() - p.P(`sizeOfWire++`) - p.P(`wire >>= 7`) - p.P(`if wire == 0 {`) - p.In() - p.P(`break`) - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - p.P(`iNdEx-=sizeOfWire`) - p.P(`skippy, err := skip`, p.localName+`(data[iNdEx:])`) - p.P(`if err != nil {`) - p.In() - p.P(`return err`) - p.Out() - p.P(`}`) - p.P(`if skippy < 0 {`) - p.In() - p.P(`return ErrInvalidLength`, p.localName) - p.Out() - p.P(`}`) - p.P(`if (iNdEx + skippy) > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - if gogoproto.HasExtensionsMap(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`if m.XXX_extensions == nil {`) - p.In() - p.P(`m.XXX_extensions = make(map[int32]`, protoPkg.Use(), `.Extension)`) - p.Out() - p.P(`}`) - p.P(`m.XXX_extensions[int32(fieldNum)] = `, protoPkg.Use(), `.NewExtension(data[iNdEx:iNdEx+skippy])`) - } else { - p.P(`m.XXX_extensions = append(m.XXX_extensions, data[iNdEx:iNdEx+skippy]...)`) - } - p.P(`iNdEx += skippy`) - p.Out() - p.P(`} else {`) - p.In() - } - p.P(`iNdEx=preIndex`) - p.P(`skippy, err := skip`, p.localName, `(data[iNdEx:])`) - p.P(`if err != nil {`) - p.In() - p.P(`return err`) - p.Out() - p.P(`}`) - p.P(`if skippy < 0 {`) - p.In() - p.P(`return ErrInvalidLength`, p.localName) - p.Out() - p.P(`}`) - p.P(`if (iNdEx + skippy) > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - if gogoproto.HasUnrecognized(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)`) - } - p.P(`iNdEx += skippy`) - p.Out() - if message.DescriptorProto.HasExtension() { - p.Out() - p.P(`}`) - } - p.Out() - p.P(`}`) - p.Out() - p.P(`}`) - - for _, field := range message.Field { - if !field.IsRequired() { - continue - } - - fieldBit, ok := rfMap[field.GetNumber()] - if !ok { - panic("field is required, but no bit registered") - } - - p.P(`if hasFields[`, strconv.Itoa(int(fieldBit/64)), `] & uint64(`, fmt.Sprintf("0x%08x", 1<<(fieldBit%64)), `) == 0 {`) - p.In() - if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { - p.P(`return new(`, protoPkg.Use(), `.RequiredNotSetError)`) - } else { - p.P(`return `, protoPkg.Use(), `.NewRequiredNotSetError("`, field.GetName(), `")`) - } - p.Out() - p.P(`}`) - } - p.P() - p.P(`if iNdEx > l {`) - p.In() - p.P(`return ` + p.ioPkg.Use() + `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - p.P(`return nil`) - p.Out() - p.P(`}`) - } - if !p.atleastOne { - return - } - - p.P(`func skip` + p.localName + `(data []byte) (n int, err error) { - l := len(data) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflow` + p.localName + ` - } - if iNdEx >= l { - return 0, ` + p.ioPkg.Use() + `.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflow` + p.localName + ` - } - if iNdEx >= l { - return 0, ` + p.ioPkg.Use() + `.ErrUnexpectedEOF - } - iNdEx++ - if data[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflow` + p.localName + ` - } - if iNdEx >= l { - return 0, ` + p.ioPkg.Use() + `.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLength` + p.localName + ` - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflow` + p.localName + ` - } - if iNdEx >= l { - return 0, ` + p.ioPkg.Use() + `.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skip` + p.localName + `(data[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, ` + fmtPkg.Use() + `.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") - } - - var ( - ErrInvalidLength` + p.localName + ` = ` + fmtPkg.Use() + `.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflow` + p.localName + ` = ` + fmtPkg.Use() + `.Errorf("proto: integer overflow") - ) - `) -} - -func init() { - generator.RegisterPlugin(NewUnmarshal()) - generator.RegisterPlugin(NewUnsafeUnmarshal()) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/Makefile b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/Makefile deleted file mode 100644 index 23a6b173..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -# Go support for Protocol Buffers - Google's data interchange format -# -# Copyright 2010 The Go Authors. All rights reserved. -# https://github.com/golang/protobuf -# -# 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. - -install: - go install - -test: install generate-test-pbs - go test - - -generate-test-pbs: - make install - make -C testdata - protoc-min-version --version="3.0.0" --proto_path=.:../../../../ --gogo_out=. proto3_proto/proto3.proto - make diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/all_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/all_test.go deleted file mode 100644 index f3e615ad..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/all_test.go +++ /dev/null @@ -1,2169 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto_test - -import ( - "bytes" - "encoding/json" - "errors" - "fmt" - "math" - "math/rand" - "reflect" - "runtime/debug" - "strings" - "testing" - "time" - - . "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - . "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata" -) - -var globalO *Buffer - -func old() *Buffer { - if globalO == nil { - globalO = NewBuffer(nil) - } - globalO.Reset() - return globalO -} - -func equalbytes(b1, b2 []byte, t *testing.T) { - if len(b1) != len(b2) { - t.Errorf("wrong lengths: 2*%d != %d", len(b1), len(b2)) - return - } - for i := 0; i < len(b1); i++ { - if b1[i] != b2[i] { - t.Errorf("bad byte[%d]:%x %x: %s %s", i, b1[i], b2[i], b1, b2) - } - } -} - -func initGoTestField() *GoTestField { - f := new(GoTestField) - f.Label = String("label") - f.Type = String("type") - return f -} - -// These are all structurally equivalent but the tag numbers differ. -// (It's remarkable that required, optional, and repeated all have -// 8 letters.) -func initGoTest_RequiredGroup() *GoTest_RequiredGroup { - return &GoTest_RequiredGroup{ - RequiredField: String("required"), - } -} - -func initGoTest_OptionalGroup() *GoTest_OptionalGroup { - return &GoTest_OptionalGroup{ - RequiredField: String("optional"), - } -} - -func initGoTest_RepeatedGroup() *GoTest_RepeatedGroup { - return &GoTest_RepeatedGroup{ - RequiredField: String("repeated"), - } -} - -func initGoTest(setdefaults bool) *GoTest { - pb := new(GoTest) - if setdefaults { - pb.F_BoolDefaulted = Bool(Default_GoTest_F_BoolDefaulted) - pb.F_Int32Defaulted = Int32(Default_GoTest_F_Int32Defaulted) - pb.F_Int64Defaulted = Int64(Default_GoTest_F_Int64Defaulted) - pb.F_Fixed32Defaulted = Uint32(Default_GoTest_F_Fixed32Defaulted) - pb.F_Fixed64Defaulted = Uint64(Default_GoTest_F_Fixed64Defaulted) - pb.F_Uint32Defaulted = Uint32(Default_GoTest_F_Uint32Defaulted) - pb.F_Uint64Defaulted = Uint64(Default_GoTest_F_Uint64Defaulted) - pb.F_FloatDefaulted = Float32(Default_GoTest_F_FloatDefaulted) - pb.F_DoubleDefaulted = Float64(Default_GoTest_F_DoubleDefaulted) - pb.F_StringDefaulted = String(Default_GoTest_F_StringDefaulted) - pb.F_BytesDefaulted = Default_GoTest_F_BytesDefaulted - pb.F_Sint32Defaulted = Int32(Default_GoTest_F_Sint32Defaulted) - pb.F_Sint64Defaulted = Int64(Default_GoTest_F_Sint64Defaulted) - } - - pb.Kind = GoTest_TIME.Enum() - pb.RequiredField = initGoTestField() - pb.F_BoolRequired = Bool(true) - pb.F_Int32Required = Int32(3) - pb.F_Int64Required = Int64(6) - pb.F_Fixed32Required = Uint32(32) - pb.F_Fixed64Required = Uint64(64) - pb.F_Uint32Required = Uint32(3232) - pb.F_Uint64Required = Uint64(6464) - pb.F_FloatRequired = Float32(3232) - pb.F_DoubleRequired = Float64(6464) - pb.F_StringRequired = String("string") - pb.F_BytesRequired = []byte("bytes") - pb.F_Sint32Required = Int32(-32) - pb.F_Sint64Required = Int64(-64) - pb.Requiredgroup = initGoTest_RequiredGroup() - - return pb -} - -func fail(msg string, b *bytes.Buffer, s string, t *testing.T) { - data := b.Bytes() - ld := len(data) - ls := len(s) / 2 - - fmt.Printf("fail %s ld=%d ls=%d\n", msg, ld, ls) - - // find the interesting spot - n - n := ls - if ld < ls { - n = ld - } - j := 0 - for i := 0; i < n; i++ { - bs := hex(s[j])*16 + hex(s[j+1]) - j += 2 - if data[i] == bs { - continue - } - n = i - break - } - l := n - 10 - if l < 0 { - l = 0 - } - h := n + 10 - - // find the interesting spot - n - fmt.Printf("is[%d]:", l) - for i := l; i < h; i++ { - if i >= ld { - fmt.Printf(" --") - continue - } - fmt.Printf(" %.2x", data[i]) - } - fmt.Printf("\n") - - fmt.Printf("sb[%d]:", l) - for i := l; i < h; i++ { - if i >= ls { - fmt.Printf(" --") - continue - } - bs := hex(s[j])*16 + hex(s[j+1]) - j += 2 - fmt.Printf(" %.2x", bs) - } - fmt.Printf("\n") - - t.Fail() - - // t.Errorf("%s: \ngood: %s\nbad: %x", msg, s, b.Bytes()) - // Print the output in a partially-decoded format; can - // be helpful when updating the test. It produces the output - // that is pasted, with minor edits, into the argument to verify(). - // data := b.Bytes() - // nesting := 0 - // for b.Len() > 0 { - // start := len(data) - b.Len() - // var u uint64 - // u, err := DecodeVarint(b) - // if err != nil { - // fmt.Printf("decode error on varint:", err) - // return - // } - // wire := u & 0x7 - // tag := u >> 3 - // switch wire { - // case WireVarint: - // v, err := DecodeVarint(b) - // if err != nil { - // fmt.Printf("decode error on varint:", err) - // return - // } - // fmt.Printf("\t\t\"%x\" // field %d, encoding %d, value %d\n", - // data[start:len(data)-b.Len()], tag, wire, v) - // case WireFixed32: - // v, err := DecodeFixed32(b) - // if err != nil { - // fmt.Printf("decode error on fixed32:", err) - // return - // } - // fmt.Printf("\t\t\"%x\" // field %d, encoding %d, value %d\n", - // data[start:len(data)-b.Len()], tag, wire, v) - // case WireFixed64: - // v, err := DecodeFixed64(b) - // if err != nil { - // fmt.Printf("decode error on fixed64:", err) - // return - // } - // fmt.Printf("\t\t\"%x\" // field %d, encoding %d, value %d\n", - // data[start:len(data)-b.Len()], tag, wire, v) - // case WireBytes: - // nb, err := DecodeVarint(b) - // if err != nil { - // fmt.Printf("decode error on bytes:", err) - // return - // } - // after_tag := len(data) - b.Len() - // str := make([]byte, nb) - // _, err = b.Read(str) - // if err != nil { - // fmt.Printf("decode error on bytes:", err) - // return - // } - // fmt.Printf("\t\t\"%x\" \"%x\" // field %d, encoding %d (FIELD)\n", - // data[start:after_tag], str, tag, wire) - // case WireStartGroup: - // nesting++ - // fmt.Printf("\t\t\"%x\"\t\t// start group field %d level %d\n", - // data[start:len(data)-b.Len()], tag, nesting) - // case WireEndGroup: - // fmt.Printf("\t\t\"%x\"\t\t// end group field %d level %d\n", - // data[start:len(data)-b.Len()], tag, nesting) - // nesting-- - // default: - // fmt.Printf("unrecognized wire type %d\n", wire) - // return - // } - // } -} - -func hex(c uint8) uint8 { - if '0' <= c && c <= '9' { - return c - '0' - } - if 'a' <= c && c <= 'f' { - return 10 + c - 'a' - } - if 'A' <= c && c <= 'F' { - return 10 + c - 'A' - } - return 0 -} - -func equal(b []byte, s string, t *testing.T) bool { - if 2*len(b) != len(s) { - // fail(fmt.Sprintf("wrong lengths: 2*%d != %d", len(b), len(s)), b, s, t) - fmt.Printf("wrong lengths: 2*%d != %d\n", len(b), len(s)) - return false - } - for i, j := 0, 0; i < len(b); i, j = i+1, j+2 { - x := hex(s[j])*16 + hex(s[j+1]) - if b[i] != x { - // fail(fmt.Sprintf("bad byte[%d]:%x %x", i, b[i], x), b, s, t) - fmt.Printf("bad byte[%d]:%x %x", i, b[i], x) - return false - } - } - return true -} - -func overify(t *testing.T, pb *GoTest, expected string) { - o := old() - err := o.Marshal(pb) - if err != nil { - fmt.Printf("overify marshal-1 err = %v", err) - o.DebugPrint("", o.Bytes()) - t.Fatalf("expected = %s", expected) - } - if !equal(o.Bytes(), expected, t) { - o.DebugPrint("overify neq 1", o.Bytes()) - t.Fatalf("expected = %s", expected) - } - - // Now test Unmarshal by recreating the original buffer. - pbd := new(GoTest) - err = o.Unmarshal(pbd) - if err != nil { - t.Fatalf("overify unmarshal err = %v", err) - o.DebugPrint("", o.Bytes()) - t.Fatalf("string = %s", expected) - } - o.Reset() - err = o.Marshal(pbd) - if err != nil { - t.Errorf("overify marshal-2 err = %v", err) - o.DebugPrint("", o.Bytes()) - t.Fatalf("string = %s", expected) - } - if !equal(o.Bytes(), expected, t) { - o.DebugPrint("overify neq 2", o.Bytes()) - t.Fatalf("string = %s", expected) - } -} - -// Simple tests for numeric encode/decode primitives (varint, etc.) -func TestNumericPrimitives(t *testing.T) { - for i := uint64(0); i < 1e6; i += 111 { - o := old() - if o.EncodeVarint(i) != nil { - t.Error("EncodeVarint") - break - } - x, e := o.DecodeVarint() - if e != nil { - t.Fatal("DecodeVarint") - } - if x != i { - t.Fatal("varint decode fail:", i, x) - } - - o = old() - if o.EncodeFixed32(i) != nil { - t.Fatal("encFixed32") - } - x, e = o.DecodeFixed32() - if e != nil { - t.Fatal("decFixed32") - } - if x != i { - t.Fatal("fixed32 decode fail:", i, x) - } - - o = old() - if o.EncodeFixed64(i*1234567) != nil { - t.Error("encFixed64") - break - } - x, e = o.DecodeFixed64() - if e != nil { - t.Error("decFixed64") - break - } - if x != i*1234567 { - t.Error("fixed64 decode fail:", i*1234567, x) - break - } - - o = old() - i32 := int32(i - 12345) - if o.EncodeZigzag32(uint64(i32)) != nil { - t.Fatal("EncodeZigzag32") - } - x, e = o.DecodeZigzag32() - if e != nil { - t.Fatal("DecodeZigzag32") - } - if x != uint64(uint32(i32)) { - t.Fatal("zigzag32 decode fail:", i32, x) - } - - o = old() - i64 := int64(i - 12345) - if o.EncodeZigzag64(uint64(i64)) != nil { - t.Fatal("EncodeZigzag64") - } - x, e = o.DecodeZigzag64() - if e != nil { - t.Fatal("DecodeZigzag64") - } - if x != uint64(i64) { - t.Fatal("zigzag64 decode fail:", i64, x) - } - } -} - -// fakeMarshaler is a simple struct implementing Marshaler and Message interfaces. -type fakeMarshaler struct { - b []byte - err error -} - -func (f *fakeMarshaler) Marshal() ([]byte, error) { return f.b, f.err } -func (f *fakeMarshaler) String() string { return fmt.Sprintf("Bytes: %v Error: %v", f.b, f.err) } -func (f *fakeMarshaler) ProtoMessage() {} -func (f *fakeMarshaler) Reset() {} - -type msgWithFakeMarshaler struct { - M *fakeMarshaler `protobuf:"bytes,1,opt,name=fake"` -} - -func (m *msgWithFakeMarshaler) String() string { return CompactTextString(m) } -func (m *msgWithFakeMarshaler) ProtoMessage() {} -func (m *msgWithFakeMarshaler) Reset() {} - -// Simple tests for proto messages that implement the Marshaler interface. -func TestMarshalerEncoding(t *testing.T) { - tests := []struct { - name string - m Message - want []byte - wantErr error - }{ - { - name: "Marshaler that fails", - m: &fakeMarshaler{ - err: errors.New("some marshal err"), - b: []byte{5, 6, 7}, - }, - // Since there's an error, nothing should be written to buffer. - want: nil, - wantErr: errors.New("some marshal err"), - }, - { - name: "Marshaler that fails with RequiredNotSetError", - m: &msgWithFakeMarshaler{ - M: &fakeMarshaler{ - err: &RequiredNotSetError{}, - b: []byte{5, 6, 7}, - }, - }, - // Since there's an error that can be continued after, - // the buffer should be written. - want: []byte{ - 10, 3, // for &msgWithFakeMarshaler - 5, 6, 7, // for &fakeMarshaler - }, - wantErr: &RequiredNotSetError{}, - }, - { - name: "Marshaler that succeeds", - m: &fakeMarshaler{ - b: []byte{0, 1, 2, 3, 4, 127, 255}, - }, - want: []byte{0, 1, 2, 3, 4, 127, 255}, - wantErr: nil, - }, - } - for _, test := range tests { - b := NewBuffer(nil) - err := b.Marshal(test.m) - if _, ok := err.(*RequiredNotSetError); ok { - // We're not in package proto, so we can only assert the type in this case. - err = &RequiredNotSetError{} - } - if !reflect.DeepEqual(test.wantErr, err) { - t.Errorf("%s: got err %v wanted %v", test.name, err, test.wantErr) - } - if !reflect.DeepEqual(test.want, b.Bytes()) { - t.Errorf("%s: got bytes %v wanted %v", test.name, b.Bytes(), test.want) - } - } -} - -// Simple tests for bytes -func TestBytesPrimitives(t *testing.T) { - o := old() - bytes := []byte{'n', 'o', 'w', ' ', 'i', 's', ' ', 't', 'h', 'e', ' ', 't', 'i', 'm', 'e'} - if o.EncodeRawBytes(bytes) != nil { - t.Error("EncodeRawBytes") - } - decb, e := o.DecodeRawBytes(false) - if e != nil { - t.Error("DecodeRawBytes") - } - equalbytes(bytes, decb, t) -} - -// Simple tests for strings -func TestStringPrimitives(t *testing.T) { - o := old() - s := "now is the time" - if o.EncodeStringBytes(s) != nil { - t.Error("enc_string") - } - decs, e := o.DecodeStringBytes() - if e != nil { - t.Error("dec_string") - } - if s != decs { - t.Error("string encode/decode fail:", s, decs) - } -} - -// Do we catch the "required bit not set" case? -func TestRequiredBit(t *testing.T) { - o := old() - pb := new(GoTest) - err := o.Marshal(pb) - if err == nil { - t.Error("did not catch missing required fields") - } else if strings.Index(err.Error(), "Kind") < 0 { - t.Error("wrong error type:", err) - } -} - -// Check that all fields are nil. -// Clearly silly, and a residue from a more interesting test with an earlier, -// different initialization property, but it once caught a compiler bug so -// it lives. -func checkInitialized(pb *GoTest, t *testing.T) { - if pb.F_BoolDefaulted != nil { - t.Error("New or Reset did not set boolean:", *pb.F_BoolDefaulted) - } - if pb.F_Int32Defaulted != nil { - t.Error("New or Reset did not set int32:", *pb.F_Int32Defaulted) - } - if pb.F_Int64Defaulted != nil { - t.Error("New or Reset did not set int64:", *pb.F_Int64Defaulted) - } - if pb.F_Fixed32Defaulted != nil { - t.Error("New or Reset did not set fixed32:", *pb.F_Fixed32Defaulted) - } - if pb.F_Fixed64Defaulted != nil { - t.Error("New or Reset did not set fixed64:", *pb.F_Fixed64Defaulted) - } - if pb.F_Uint32Defaulted != nil { - t.Error("New or Reset did not set uint32:", *pb.F_Uint32Defaulted) - } - if pb.F_Uint64Defaulted != nil { - t.Error("New or Reset did not set uint64:", *pb.F_Uint64Defaulted) - } - if pb.F_FloatDefaulted != nil { - t.Error("New or Reset did not set float:", *pb.F_FloatDefaulted) - } - if pb.F_DoubleDefaulted != nil { - t.Error("New or Reset did not set double:", *pb.F_DoubleDefaulted) - } - if pb.F_StringDefaulted != nil { - t.Error("New or Reset did not set string:", *pb.F_StringDefaulted) - } - if pb.F_BytesDefaulted != nil { - t.Error("New or Reset did not set bytes:", string(pb.F_BytesDefaulted)) - } - if pb.F_Sint32Defaulted != nil { - t.Error("New or Reset did not set int32:", *pb.F_Sint32Defaulted) - } - if pb.F_Sint64Defaulted != nil { - t.Error("New or Reset did not set int64:", *pb.F_Sint64Defaulted) - } -} - -// Does Reset() reset? -func TestReset(t *testing.T) { - pb := initGoTest(true) - // muck with some values - pb.F_BoolDefaulted = Bool(false) - pb.F_Int32Defaulted = Int32(237) - pb.F_Int64Defaulted = Int64(12346) - pb.F_Fixed32Defaulted = Uint32(32000) - pb.F_Fixed64Defaulted = Uint64(666) - pb.F_Uint32Defaulted = Uint32(323232) - pb.F_Uint64Defaulted = nil - pb.F_FloatDefaulted = nil - pb.F_DoubleDefaulted = Float64(0) - pb.F_StringDefaulted = String("gotcha") - pb.F_BytesDefaulted = []byte("asdfasdf") - pb.F_Sint32Defaulted = Int32(123) - pb.F_Sint64Defaulted = Int64(789) - pb.Reset() - checkInitialized(pb, t) -} - -// All required fields set, no defaults provided. -func TestEncodeDecode1(t *testing.T) { - pb := initGoTest(false) - overify(t, pb, - "0807"+ // field 1, encoding 0, value 7 - "220d"+"0a056c6162656c120474797065"+ // field 4, encoding 2 (GoTestField) - "5001"+ // field 10, encoding 0, value 1 - "5803"+ // field 11, encoding 0, value 3 - "6006"+ // field 12, encoding 0, value 6 - "6d20000000"+ // field 13, encoding 5, value 0x20 - "714000000000000000"+ // field 14, encoding 1, value 0x40 - "78a019"+ // field 15, encoding 0, value 0xca0 = 3232 - "8001c032"+ // field 16, encoding 0, value 0x1940 = 6464 - "8d0100004a45"+ // field 17, encoding 5, value 3232.0 - "9101000000000040b940"+ // field 18, encoding 1, value 6464.0 - "9a0106"+"737472696e67"+ // field 19, encoding 2, string "string" - "b304"+ // field 70, encoding 3, start group - "ba0408"+"7265717569726564"+ // field 71, encoding 2, string "required" - "b404"+ // field 70, encoding 4, end group - "aa0605"+"6279746573"+ // field 101, encoding 2, string "bytes" - "b0063f"+ // field 102, encoding 0, 0x3f zigzag32 - "b8067f") // field 103, encoding 0, 0x7f zigzag64 -} - -// All required fields set, defaults provided. -func TestEncodeDecode2(t *testing.T) { - pb := initGoTest(true) - overify(t, pb, - "0807"+ // field 1, encoding 0, value 7 - "220d"+"0a056c6162656c120474797065"+ // field 4, encoding 2 (GoTestField) - "5001"+ // field 10, encoding 0, value 1 - "5803"+ // field 11, encoding 0, value 3 - "6006"+ // field 12, encoding 0, value 6 - "6d20000000"+ // field 13, encoding 5, value 32 - "714000000000000000"+ // field 14, encoding 1, value 64 - "78a019"+ // field 15, encoding 0, value 3232 - "8001c032"+ // field 16, encoding 0, value 6464 - "8d0100004a45"+ // field 17, encoding 5, value 3232.0 - "9101000000000040b940"+ // field 18, encoding 1, value 6464.0 - "9a0106"+"737472696e67"+ // field 19, encoding 2 string "string" - "c00201"+ // field 40, encoding 0, value 1 - "c80220"+ // field 41, encoding 0, value 32 - "d00240"+ // field 42, encoding 0, value 64 - "dd0240010000"+ // field 43, encoding 5, value 320 - "e1028002000000000000"+ // field 44, encoding 1, value 640 - "e8028019"+ // field 45, encoding 0, value 3200 - "f0028032"+ // field 46, encoding 0, value 6400 - "fd02e0659948"+ // field 47, encoding 5, value 314159.0 - "81030000000050971041"+ // field 48, encoding 1, value 271828.0 - "8a0310"+"68656c6c6f2c2022776f726c6421220a"+ // field 49, encoding 2 string "hello, \"world!\"\n" - "b304"+ // start group field 70 level 1 - "ba0408"+"7265717569726564"+ // field 71, encoding 2, string "required" - "b404"+ // end group field 70 level 1 - "aa0605"+"6279746573"+ // field 101, encoding 2 string "bytes" - "b0063f"+ // field 102, encoding 0, 0x3f zigzag32 - "b8067f"+ // field 103, encoding 0, 0x7f zigzag64 - "8a1907"+"4269676e6f7365"+ // field 401, encoding 2, string "Bignose" - "90193f"+ // field 402, encoding 0, value 63 - "98197f") // field 403, encoding 0, value 127 - -} - -// All default fields set to their default value by hand -func TestEncodeDecode3(t *testing.T) { - pb := initGoTest(false) - pb.F_BoolDefaulted = Bool(true) - pb.F_Int32Defaulted = Int32(32) - pb.F_Int64Defaulted = Int64(64) - pb.F_Fixed32Defaulted = Uint32(320) - pb.F_Fixed64Defaulted = Uint64(640) - pb.F_Uint32Defaulted = Uint32(3200) - pb.F_Uint64Defaulted = Uint64(6400) - pb.F_FloatDefaulted = Float32(314159) - pb.F_DoubleDefaulted = Float64(271828) - pb.F_StringDefaulted = String("hello, \"world!\"\n") - pb.F_BytesDefaulted = []byte("Bignose") - pb.F_Sint32Defaulted = Int32(-32) - pb.F_Sint64Defaulted = Int64(-64) - - overify(t, pb, - "0807"+ // field 1, encoding 0, value 7 - "220d"+"0a056c6162656c120474797065"+ // field 4, encoding 2 (GoTestField) - "5001"+ // field 10, encoding 0, value 1 - "5803"+ // field 11, encoding 0, value 3 - "6006"+ // field 12, encoding 0, value 6 - "6d20000000"+ // field 13, encoding 5, value 32 - "714000000000000000"+ // field 14, encoding 1, value 64 - "78a019"+ // field 15, encoding 0, value 3232 - "8001c032"+ // field 16, encoding 0, value 6464 - "8d0100004a45"+ // field 17, encoding 5, value 3232.0 - "9101000000000040b940"+ // field 18, encoding 1, value 6464.0 - "9a0106"+"737472696e67"+ // field 19, encoding 2 string "string" - "c00201"+ // field 40, encoding 0, value 1 - "c80220"+ // field 41, encoding 0, value 32 - "d00240"+ // field 42, encoding 0, value 64 - "dd0240010000"+ // field 43, encoding 5, value 320 - "e1028002000000000000"+ // field 44, encoding 1, value 640 - "e8028019"+ // field 45, encoding 0, value 3200 - "f0028032"+ // field 46, encoding 0, value 6400 - "fd02e0659948"+ // field 47, encoding 5, value 314159.0 - "81030000000050971041"+ // field 48, encoding 1, value 271828.0 - "8a0310"+"68656c6c6f2c2022776f726c6421220a"+ // field 49, encoding 2 string "hello, \"world!\"\n" - "b304"+ // start group field 70 level 1 - "ba0408"+"7265717569726564"+ // field 71, encoding 2, string "required" - "b404"+ // end group field 70 level 1 - "aa0605"+"6279746573"+ // field 101, encoding 2 string "bytes" - "b0063f"+ // field 102, encoding 0, 0x3f zigzag32 - "b8067f"+ // field 103, encoding 0, 0x7f zigzag64 - "8a1907"+"4269676e6f7365"+ // field 401, encoding 2, string "Bignose" - "90193f"+ // field 402, encoding 0, value 63 - "98197f") // field 403, encoding 0, value 127 - -} - -// All required fields set, defaults provided, all non-defaulted optional fields have values. -func TestEncodeDecode4(t *testing.T) { - pb := initGoTest(true) - pb.Table = String("hello") - pb.Param = Int32(7) - pb.OptionalField = initGoTestField() - pb.F_BoolOptional = Bool(true) - pb.F_Int32Optional = Int32(32) - pb.F_Int64Optional = Int64(64) - pb.F_Fixed32Optional = Uint32(3232) - pb.F_Fixed64Optional = Uint64(6464) - pb.F_Uint32Optional = Uint32(323232) - pb.F_Uint64Optional = Uint64(646464) - pb.F_FloatOptional = Float32(32.) - pb.F_DoubleOptional = Float64(64.) - pb.F_StringOptional = String("hello") - pb.F_BytesOptional = []byte("Bignose") - pb.F_Sint32Optional = Int32(-32) - pb.F_Sint64Optional = Int64(-64) - pb.Optionalgroup = initGoTest_OptionalGroup() - - overify(t, pb, - "0807"+ // field 1, encoding 0, value 7 - "1205"+"68656c6c6f"+ // field 2, encoding 2, string "hello" - "1807"+ // field 3, encoding 0, value 7 - "220d"+"0a056c6162656c120474797065"+ // field 4, encoding 2 (GoTestField) - "320d"+"0a056c6162656c120474797065"+ // field 6, encoding 2 (GoTestField) - "5001"+ // field 10, encoding 0, value 1 - "5803"+ // field 11, encoding 0, value 3 - "6006"+ // field 12, encoding 0, value 6 - "6d20000000"+ // field 13, encoding 5, value 32 - "714000000000000000"+ // field 14, encoding 1, value 64 - "78a019"+ // field 15, encoding 0, value 3232 - "8001c032"+ // field 16, encoding 0, value 6464 - "8d0100004a45"+ // field 17, encoding 5, value 3232.0 - "9101000000000040b940"+ // field 18, encoding 1, value 6464.0 - "9a0106"+"737472696e67"+ // field 19, encoding 2 string "string" - "f00101"+ // field 30, encoding 0, value 1 - "f80120"+ // field 31, encoding 0, value 32 - "800240"+ // field 32, encoding 0, value 64 - "8d02a00c0000"+ // field 33, encoding 5, value 3232 - "91024019000000000000"+ // field 34, encoding 1, value 6464 - "9802a0dd13"+ // field 35, encoding 0, value 323232 - "a002c0ba27"+ // field 36, encoding 0, value 646464 - "ad0200000042"+ // field 37, encoding 5, value 32.0 - "b1020000000000005040"+ // field 38, encoding 1, value 64.0 - "ba0205"+"68656c6c6f"+ // field 39, encoding 2, string "hello" - "c00201"+ // field 40, encoding 0, value 1 - "c80220"+ // field 41, encoding 0, value 32 - "d00240"+ // field 42, encoding 0, value 64 - "dd0240010000"+ // field 43, encoding 5, value 320 - "e1028002000000000000"+ // field 44, encoding 1, value 640 - "e8028019"+ // field 45, encoding 0, value 3200 - "f0028032"+ // field 46, encoding 0, value 6400 - "fd02e0659948"+ // field 47, encoding 5, value 314159.0 - "81030000000050971041"+ // field 48, encoding 1, value 271828.0 - "8a0310"+"68656c6c6f2c2022776f726c6421220a"+ // field 49, encoding 2 string "hello, \"world!\"\n" - "b304"+ // start group field 70 level 1 - "ba0408"+"7265717569726564"+ // field 71, encoding 2, string "required" - "b404"+ // end group field 70 level 1 - "d305"+ // start group field 90 level 1 - "da0508"+"6f7074696f6e616c"+ // field 91, encoding 2, string "optional" - "d405"+ // end group field 90 level 1 - "aa0605"+"6279746573"+ // field 101, encoding 2 string "bytes" - "b0063f"+ // field 102, encoding 0, 0x3f zigzag32 - "b8067f"+ // field 103, encoding 0, 0x7f zigzag64 - "ea1207"+"4269676e6f7365"+ // field 301, encoding 2, string "Bignose" - "f0123f"+ // field 302, encoding 0, value 63 - "f8127f"+ // field 303, encoding 0, value 127 - "8a1907"+"4269676e6f7365"+ // field 401, encoding 2, string "Bignose" - "90193f"+ // field 402, encoding 0, value 63 - "98197f") // field 403, encoding 0, value 127 - -} - -// All required fields set, defaults provided, all repeated fields given two values. -func TestEncodeDecode5(t *testing.T) { - pb := initGoTest(true) - pb.RepeatedField = []*GoTestField{initGoTestField(), initGoTestField()} - pb.F_BoolRepeated = []bool{false, true} - pb.F_Int32Repeated = []int32{32, 33} - pb.F_Int64Repeated = []int64{64, 65} - pb.F_Fixed32Repeated = []uint32{3232, 3333} - pb.F_Fixed64Repeated = []uint64{6464, 6565} - pb.F_Uint32Repeated = []uint32{323232, 333333} - pb.F_Uint64Repeated = []uint64{646464, 656565} - pb.F_FloatRepeated = []float32{32., 33.} - pb.F_DoubleRepeated = []float64{64., 65.} - pb.F_StringRepeated = []string{"hello", "sailor"} - pb.F_BytesRepeated = [][]byte{[]byte("big"), []byte("nose")} - pb.F_Sint32Repeated = []int32{32, -32} - pb.F_Sint64Repeated = []int64{64, -64} - pb.Repeatedgroup = []*GoTest_RepeatedGroup{initGoTest_RepeatedGroup(), initGoTest_RepeatedGroup()} - - overify(t, pb, - "0807"+ // field 1, encoding 0, value 7 - "220d"+"0a056c6162656c120474797065"+ // field 4, encoding 2 (GoTestField) - "2a0d"+"0a056c6162656c120474797065"+ // field 5, encoding 2 (GoTestField) - "2a0d"+"0a056c6162656c120474797065"+ // field 5, encoding 2 (GoTestField) - "5001"+ // field 10, encoding 0, value 1 - "5803"+ // field 11, encoding 0, value 3 - "6006"+ // field 12, encoding 0, value 6 - "6d20000000"+ // field 13, encoding 5, value 32 - "714000000000000000"+ // field 14, encoding 1, value 64 - "78a019"+ // field 15, encoding 0, value 3232 - "8001c032"+ // field 16, encoding 0, value 6464 - "8d0100004a45"+ // field 17, encoding 5, value 3232.0 - "9101000000000040b940"+ // field 18, encoding 1, value 6464.0 - "9a0106"+"737472696e67"+ // field 19, encoding 2 string "string" - "a00100"+ // field 20, encoding 0, value 0 - "a00101"+ // field 20, encoding 0, value 1 - "a80120"+ // field 21, encoding 0, value 32 - "a80121"+ // field 21, encoding 0, value 33 - "b00140"+ // field 22, encoding 0, value 64 - "b00141"+ // field 22, encoding 0, value 65 - "bd01a00c0000"+ // field 23, encoding 5, value 3232 - "bd01050d0000"+ // field 23, encoding 5, value 3333 - "c1014019000000000000"+ // field 24, encoding 1, value 6464 - "c101a519000000000000"+ // field 24, encoding 1, value 6565 - "c801a0dd13"+ // field 25, encoding 0, value 323232 - "c80195ac14"+ // field 25, encoding 0, value 333333 - "d001c0ba27"+ // field 26, encoding 0, value 646464 - "d001b58928"+ // field 26, encoding 0, value 656565 - "dd0100000042"+ // field 27, encoding 5, value 32.0 - "dd0100000442"+ // field 27, encoding 5, value 33.0 - "e1010000000000005040"+ // field 28, encoding 1, value 64.0 - "e1010000000000405040"+ // field 28, encoding 1, value 65.0 - "ea0105"+"68656c6c6f"+ // field 29, encoding 2, string "hello" - "ea0106"+"7361696c6f72"+ // field 29, encoding 2, string "sailor" - "c00201"+ // field 40, encoding 0, value 1 - "c80220"+ // field 41, encoding 0, value 32 - "d00240"+ // field 42, encoding 0, value 64 - "dd0240010000"+ // field 43, encoding 5, value 320 - "e1028002000000000000"+ // field 44, encoding 1, value 640 - "e8028019"+ // field 45, encoding 0, value 3200 - "f0028032"+ // field 46, encoding 0, value 6400 - "fd02e0659948"+ // field 47, encoding 5, value 314159.0 - "81030000000050971041"+ // field 48, encoding 1, value 271828.0 - "8a0310"+"68656c6c6f2c2022776f726c6421220a"+ // field 49, encoding 2 string "hello, \"world!\"\n" - "b304"+ // start group field 70 level 1 - "ba0408"+"7265717569726564"+ // field 71, encoding 2, string "required" - "b404"+ // end group field 70 level 1 - "8305"+ // start group field 80 level 1 - "8a0508"+"7265706561746564"+ // field 81, encoding 2, string "repeated" - "8405"+ // end group field 80 level 1 - "8305"+ // start group field 80 level 1 - "8a0508"+"7265706561746564"+ // field 81, encoding 2, string "repeated" - "8405"+ // end group field 80 level 1 - "aa0605"+"6279746573"+ // field 101, encoding 2 string "bytes" - "b0063f"+ // field 102, encoding 0, 0x3f zigzag32 - "b8067f"+ // field 103, encoding 0, 0x7f zigzag64 - "ca0c03"+"626967"+ // field 201, encoding 2, string "big" - "ca0c04"+"6e6f7365"+ // field 201, encoding 2, string "nose" - "d00c40"+ // field 202, encoding 0, value 32 - "d00c3f"+ // field 202, encoding 0, value -32 - "d80c8001"+ // field 203, encoding 0, value 64 - "d80c7f"+ // field 203, encoding 0, value -64 - "8a1907"+"4269676e6f7365"+ // field 401, encoding 2, string "Bignose" - "90193f"+ // field 402, encoding 0, value 63 - "98197f") // field 403, encoding 0, value 127 - -} - -// All required fields set, all packed repeated fields given two values. -func TestEncodeDecode6(t *testing.T) { - pb := initGoTest(false) - pb.F_BoolRepeatedPacked = []bool{false, true} - pb.F_Int32RepeatedPacked = []int32{32, 33} - pb.F_Int64RepeatedPacked = []int64{64, 65} - pb.F_Fixed32RepeatedPacked = []uint32{3232, 3333} - pb.F_Fixed64RepeatedPacked = []uint64{6464, 6565} - pb.F_Uint32RepeatedPacked = []uint32{323232, 333333} - pb.F_Uint64RepeatedPacked = []uint64{646464, 656565} - pb.F_FloatRepeatedPacked = []float32{32., 33.} - pb.F_DoubleRepeatedPacked = []float64{64., 65.} - pb.F_Sint32RepeatedPacked = []int32{32, -32} - pb.F_Sint64RepeatedPacked = []int64{64, -64} - - overify(t, pb, - "0807"+ // field 1, encoding 0, value 7 - "220d"+"0a056c6162656c120474797065"+ // field 4, encoding 2 (GoTestField) - "5001"+ // field 10, encoding 0, value 1 - "5803"+ // field 11, encoding 0, value 3 - "6006"+ // field 12, encoding 0, value 6 - "6d20000000"+ // field 13, encoding 5, value 32 - "714000000000000000"+ // field 14, encoding 1, value 64 - "78a019"+ // field 15, encoding 0, value 3232 - "8001c032"+ // field 16, encoding 0, value 6464 - "8d0100004a45"+ // field 17, encoding 5, value 3232.0 - "9101000000000040b940"+ // field 18, encoding 1, value 6464.0 - "9a0106"+"737472696e67"+ // field 19, encoding 2 string "string" - "9203020001"+ // field 50, encoding 2, 2 bytes, value 0, value 1 - "9a03022021"+ // field 51, encoding 2, 2 bytes, value 32, value 33 - "a203024041"+ // field 52, encoding 2, 2 bytes, value 64, value 65 - "aa0308"+ // field 53, encoding 2, 8 bytes - "a00c0000050d0000"+ // value 3232, value 3333 - "b20310"+ // field 54, encoding 2, 16 bytes - "4019000000000000a519000000000000"+ // value 6464, value 6565 - "ba0306"+ // field 55, encoding 2, 6 bytes - "a0dd1395ac14"+ // value 323232, value 333333 - "c20306"+ // field 56, encoding 2, 6 bytes - "c0ba27b58928"+ // value 646464, value 656565 - "ca0308"+ // field 57, encoding 2, 8 bytes - "0000004200000442"+ // value 32.0, value 33.0 - "d20310"+ // field 58, encoding 2, 16 bytes - "00000000000050400000000000405040"+ // value 64.0, value 65.0 - "b304"+ // start group field 70 level 1 - "ba0408"+"7265717569726564"+ // field 71, encoding 2, string "required" - "b404"+ // end group field 70 level 1 - "aa0605"+"6279746573"+ // field 101, encoding 2 string "bytes" - "b0063f"+ // field 102, encoding 0, 0x3f zigzag32 - "b8067f"+ // field 103, encoding 0, 0x7f zigzag64 - "b21f02"+ // field 502, encoding 2, 2 bytes - "403f"+ // value 32, value -32 - "ba1f03"+ // field 503, encoding 2, 3 bytes - "80017f") // value 64, value -64 -} - -// Test that we can encode empty bytes fields. -func TestEncodeDecodeBytes1(t *testing.T) { - pb := initGoTest(false) - - // Create our bytes - pb.F_BytesRequired = []byte{} - pb.F_BytesRepeated = [][]byte{{}} - pb.F_BytesOptional = []byte{} - - d, err := Marshal(pb) - if err != nil { - t.Error(err) - } - - pbd := new(GoTest) - if err := Unmarshal(d, pbd); err != nil { - t.Error(err) - } - - if pbd.F_BytesRequired == nil || len(pbd.F_BytesRequired) != 0 { - t.Error("required empty bytes field is incorrect") - } - if pbd.F_BytesRepeated == nil || len(pbd.F_BytesRepeated) == 1 && pbd.F_BytesRepeated[0] == nil { - t.Error("repeated empty bytes field is incorrect") - } - if pbd.F_BytesOptional == nil || len(pbd.F_BytesOptional) != 0 { - t.Error("optional empty bytes field is incorrect") - } -} - -// Test that we encode nil-valued fields of a repeated bytes field correctly. -// Since entries in a repeated field cannot be nil, nil must mean empty value. -func TestEncodeDecodeBytes2(t *testing.T) { - pb := initGoTest(false) - - // Create our bytes - pb.F_BytesRepeated = [][]byte{nil} - - d, err := Marshal(pb) - if err != nil { - t.Error(err) - } - - pbd := new(GoTest) - if err := Unmarshal(d, pbd); err != nil { - t.Error(err) - } - - if len(pbd.F_BytesRepeated) != 1 || pbd.F_BytesRepeated[0] == nil { - t.Error("Unexpected value for repeated bytes field") - } -} - -// All required fields set, defaults provided, all repeated fields given two values. -func TestSkippingUnrecognizedFields(t *testing.T) { - o := old() - pb := initGoTestField() - - // Marshal it normally. - o.Marshal(pb) - - // Now new a GoSkipTest record. - skip := &GoSkipTest{ - SkipInt32: Int32(32), - SkipFixed32: Uint32(3232), - SkipFixed64: Uint64(6464), - SkipString: String("skipper"), - Skipgroup: &GoSkipTest_SkipGroup{ - GroupInt32: Int32(75), - GroupString: String("wxyz"), - }, - } - - // Marshal it into same buffer. - o.Marshal(skip) - - pbd := new(GoTestField) - o.Unmarshal(pbd) - - // The __unrecognized field should be a marshaling of GoSkipTest - skipd := new(GoSkipTest) - - o.SetBuf(pbd.XXX_unrecognized) - o.Unmarshal(skipd) - - if *skipd.SkipInt32 != *skip.SkipInt32 { - t.Error("skip int32", skipd.SkipInt32) - } - if *skipd.SkipFixed32 != *skip.SkipFixed32 { - t.Error("skip fixed32", skipd.SkipFixed32) - } - if *skipd.SkipFixed64 != *skip.SkipFixed64 { - t.Error("skip fixed64", skipd.SkipFixed64) - } - if *skipd.SkipString != *skip.SkipString { - t.Error("skip string", *skipd.SkipString) - } - if *skipd.Skipgroup.GroupInt32 != *skip.Skipgroup.GroupInt32 { - t.Error("skip group int32", skipd.Skipgroup.GroupInt32) - } - if *skipd.Skipgroup.GroupString != *skip.Skipgroup.GroupString { - t.Error("skip group string", *skipd.Skipgroup.GroupString) - } -} - -// Check that unrecognized fields of a submessage are preserved. -func TestSubmessageUnrecognizedFields(t *testing.T) { - nm := &NewMessage{ - Nested: &NewMessage_Nested{ - Name: String("Nigel"), - FoodGroup: String("carbs"), - }, - } - b, err := Marshal(nm) - if err != nil { - t.Fatalf("Marshal of NewMessage: %v", err) - } - - // Unmarshal into an OldMessage. - om := new(OldMessage) - if err := Unmarshal(b, om); err != nil { - t.Fatalf("Unmarshal to OldMessage: %v", err) - } - exp := &OldMessage{ - Nested: &OldMessage_Nested{ - Name: String("Nigel"), - // normal protocol buffer users should not do this - XXX_unrecognized: []byte("\x12\x05carbs"), - }, - } - if !Equal(om, exp) { - t.Errorf("om = %v, want %v", om, exp) - } - - // Clone the OldMessage. - om = Clone(om).(*OldMessage) - if !Equal(om, exp) { - t.Errorf("Clone(om) = %v, want %v", om, exp) - } - - // Marshal the OldMessage, then unmarshal it into an empty NewMessage. - if b, err = Marshal(om); err != nil { - t.Fatalf("Marshal of OldMessage: %v", err) - } - t.Logf("Marshal(%v) -> %q", om, b) - nm2 := new(NewMessage) - if err := Unmarshal(b, nm2); err != nil { - t.Fatalf("Unmarshal to NewMessage: %v", err) - } - if !Equal(nm, nm2) { - t.Errorf("NewMessage round-trip: %v => %v", nm, nm2) - } -} - -// Check that an int32 field can be upgraded to an int64 field. -func TestNegativeInt32(t *testing.T) { - om := &OldMessage{ - Num: Int32(-1), - } - b, err := Marshal(om) - if err != nil { - t.Fatalf("Marshal of OldMessage: %v", err) - } - - // Check the size. It should be 11 bytes; - // 1 for the field/wire type, and 10 for the negative number. - if len(b) != 11 { - t.Errorf("%v marshaled as %q, wanted 11 bytes", om, b) - } - - // Unmarshal into a NewMessage. - nm := new(NewMessage) - if err := Unmarshal(b, nm); err != nil { - t.Fatalf("Unmarshal to NewMessage: %v", err) - } - want := &NewMessage{ - Num: Int64(-1), - } - if !Equal(nm, want) { - t.Errorf("nm = %v, want %v", nm, want) - } -} - -// Check that we can grow an array (repeated field) to have many elements. -// This test doesn't depend only on our encoding; for variety, it makes sure -// we create, encode, and decode the correct contents explicitly. It's therefore -// a bit messier. -// This test also uses (and hence tests) the Marshal/Unmarshal functions -// instead of the methods. -func TestBigRepeated(t *testing.T) { - pb := initGoTest(true) - - // Create the arrays - const N = 50 // Internally the library starts much smaller. - pb.Repeatedgroup = make([]*GoTest_RepeatedGroup, N) - pb.F_Sint64Repeated = make([]int64, N) - pb.F_Sint32Repeated = make([]int32, N) - pb.F_BytesRepeated = make([][]byte, N) - pb.F_StringRepeated = make([]string, N) - pb.F_DoubleRepeated = make([]float64, N) - pb.F_FloatRepeated = make([]float32, N) - pb.F_Uint64Repeated = make([]uint64, N) - pb.F_Uint32Repeated = make([]uint32, N) - pb.F_Fixed64Repeated = make([]uint64, N) - pb.F_Fixed32Repeated = make([]uint32, N) - pb.F_Int64Repeated = make([]int64, N) - pb.F_Int32Repeated = make([]int32, N) - pb.F_BoolRepeated = make([]bool, N) - pb.RepeatedField = make([]*GoTestField, N) - - // Fill in the arrays with checkable values. - igtf := initGoTestField() - igtrg := initGoTest_RepeatedGroup() - for i := 0; i < N; i++ { - pb.Repeatedgroup[i] = igtrg - pb.F_Sint64Repeated[i] = int64(i) - pb.F_Sint32Repeated[i] = int32(i) - s := fmt.Sprint(i) - pb.F_BytesRepeated[i] = []byte(s) - pb.F_StringRepeated[i] = s - pb.F_DoubleRepeated[i] = float64(i) - pb.F_FloatRepeated[i] = float32(i) - pb.F_Uint64Repeated[i] = uint64(i) - pb.F_Uint32Repeated[i] = uint32(i) - pb.F_Fixed64Repeated[i] = uint64(i) - pb.F_Fixed32Repeated[i] = uint32(i) - pb.F_Int64Repeated[i] = int64(i) - pb.F_Int32Repeated[i] = int32(i) - pb.F_BoolRepeated[i] = i%2 == 0 - pb.RepeatedField[i] = igtf - } - - // Marshal. - buf, _ := Marshal(pb) - - // Now test Unmarshal by recreating the original buffer. - pbd := new(GoTest) - Unmarshal(buf, pbd) - - // Check the checkable values - for i := uint64(0); i < N; i++ { - if pbd.Repeatedgroup[i] == nil { // TODO: more checking? - t.Error("pbd.Repeatedgroup bad") - } - var x uint64 - x = uint64(pbd.F_Sint64Repeated[i]) - if x != i { - t.Error("pbd.F_Sint64Repeated bad", x, i) - } - x = uint64(pbd.F_Sint32Repeated[i]) - if x != i { - t.Error("pbd.F_Sint32Repeated bad", x, i) - } - s := fmt.Sprint(i) - equalbytes(pbd.F_BytesRepeated[i], []byte(s), t) - if pbd.F_StringRepeated[i] != s { - t.Error("pbd.F_Sint32Repeated bad", pbd.F_StringRepeated[i], i) - } - x = uint64(pbd.F_DoubleRepeated[i]) - if x != i { - t.Error("pbd.F_DoubleRepeated bad", x, i) - } - x = uint64(pbd.F_FloatRepeated[i]) - if x != i { - t.Error("pbd.F_FloatRepeated bad", x, i) - } - x = pbd.F_Uint64Repeated[i] - if x != i { - t.Error("pbd.F_Uint64Repeated bad", x, i) - } - x = uint64(pbd.F_Uint32Repeated[i]) - if x != i { - t.Error("pbd.F_Uint32Repeated bad", x, i) - } - x = pbd.F_Fixed64Repeated[i] - if x != i { - t.Error("pbd.F_Fixed64Repeated bad", x, i) - } - x = uint64(pbd.F_Fixed32Repeated[i]) - if x != i { - t.Error("pbd.F_Fixed32Repeated bad", x, i) - } - x = uint64(pbd.F_Int64Repeated[i]) - if x != i { - t.Error("pbd.F_Int64Repeated bad", x, i) - } - x = uint64(pbd.F_Int32Repeated[i]) - if x != i { - t.Error("pbd.F_Int32Repeated bad", x, i) - } - if pbd.F_BoolRepeated[i] != (i%2 == 0) { - t.Error("pbd.F_BoolRepeated bad", x, i) - } - if pbd.RepeatedField[i] == nil { // TODO: more checking? - t.Error("pbd.RepeatedField bad") - } - } -} - -// Verify we give a useful message when decoding to the wrong structure type. -func TestTypeMismatch(t *testing.T) { - pb1 := initGoTest(true) - - // Marshal - o := old() - o.Marshal(pb1) - - // Now Unmarshal it to the wrong type. - pb2 := initGoTestField() - err := o.Unmarshal(pb2) - if err == nil { - t.Error("expected error, got no error") - } else if !strings.Contains(err.Error(), "bad wiretype") { - t.Error("expected bad wiretype error, got", err) - } -} - -func encodeDecode(t *testing.T, in, out Message, msg string) { - buf, err := Marshal(in) - if err != nil { - t.Fatalf("failed marshaling %v: %v", msg, err) - } - if err := Unmarshal(buf, out); err != nil { - t.Fatalf("failed unmarshaling %v: %v", msg, err) - } -} - -func TestPackedNonPackedDecoderSwitching(t *testing.T) { - np, p := new(NonPackedTest), new(PackedTest) - - // non-packed -> packed - np.A = []int32{0, 1, 1, 2, 3, 5} - encodeDecode(t, np, p, "non-packed -> packed") - if !reflect.DeepEqual(np.A, p.B) { - t.Errorf("failed non-packed -> packed; np.A=%+v, p.B=%+v", np.A, p.B) - } - - // packed -> non-packed - np.Reset() - p.B = []int32{3, 1, 4, 1, 5, 9} - encodeDecode(t, p, np, "packed -> non-packed") - if !reflect.DeepEqual(p.B, np.A) { - t.Errorf("failed packed -> non-packed; p.B=%+v, np.A=%+v", p.B, np.A) - } -} - -func TestProto1RepeatedGroup(t *testing.T) { - pb := &MessageList{ - Message: []*MessageList_Message{ - { - Name: String("blah"), - Count: Int32(7), - }, - // NOTE: pb.Message[1] is a nil - nil, - }, - } - - o := old() - err := o.Marshal(pb) - if err == nil || !strings.Contains(err.Error(), "repeated field Message has nil") { - t.Fatalf("unexpected or no error when marshaling: %v", err) - } -} - -// Test that enums work. Checks for a bug introduced by making enums -// named types instead of int32: newInt32FromUint64 would crash with -// a type mismatch in reflect.PointTo. -func TestEnum(t *testing.T) { - pb := new(GoEnum) - pb.Foo = FOO_FOO1.Enum() - o := old() - if err := o.Marshal(pb); err != nil { - t.Fatal("error encoding enum:", err) - } - pb1 := new(GoEnum) - if err := o.Unmarshal(pb1); err != nil { - t.Fatal("error decoding enum:", err) - } - if *pb1.Foo != FOO_FOO1 { - t.Error("expected 7 but got ", *pb1.Foo) - } -} - -// Enum types have String methods. Check that enum fields can be printed. -// We don't care what the value actually is, just as long as it doesn't crash. -func TestPrintingNilEnumFields(t *testing.T) { - pb := new(GoEnum) - _ = fmt.Sprintf("%+v", pb) -} - -// Verify that absent required fields cause Marshal/Unmarshal to return errors. -func TestRequiredFieldEnforcement(t *testing.T) { - pb := new(GoTestField) - _, err := Marshal(pb) - if err == nil { - t.Error("marshal: expected error, got nil") - } else if strings.Index(err.Error(), "Label") < 0 { - t.Errorf("marshal: bad error type: %v", err) - } - - // A slightly sneaky, yet valid, proto. It encodes the same required field twice, - // so simply counting the required fields is insufficient. - // field 1, encoding 2, value "hi" - buf := []byte("\x0A\x02hi\x0A\x02hi") - err = Unmarshal(buf, pb) - if err == nil { - t.Error("unmarshal: expected error, got nil") - } else if strings.Index(err.Error(), "{Unknown}") < 0 { - t.Errorf("unmarshal: bad error type: %v", err) - } -} - -func TestTypedNilMarshal(t *testing.T) { - // A typed nil should return ErrNil and not crash. - _, err := Marshal((*GoEnum)(nil)) - if err != ErrNil { - t.Errorf("Marshal: got err %v, want ErrNil", err) - } -} - -// A type that implements the Marshaler interface, but is not nillable. -type nonNillableInt uint64 - -func (nni nonNillableInt) Marshal() ([]byte, error) { - return EncodeVarint(uint64(nni)), nil -} - -type NNIMessage struct { - nni nonNillableInt -} - -func (*NNIMessage) Reset() {} -func (*NNIMessage) String() string { return "" } -func (*NNIMessage) ProtoMessage() {} - -// A type that implements the Marshaler interface and is nillable. -type nillableMessage struct { - x uint64 -} - -func (nm *nillableMessage) Marshal() ([]byte, error) { - return EncodeVarint(nm.x), nil -} - -type NMMessage struct { - nm *nillableMessage -} - -func (*NMMessage) Reset() {} -func (*NMMessage) String() string { return "" } -func (*NMMessage) ProtoMessage() {} - -// Verify a type that uses the Marshaler interface, but has a nil pointer. -func TestNilMarshaler(t *testing.T) { - // Try a struct with a Marshaler field that is nil. - // It should be directly marshable. - nmm := new(NMMessage) - if _, err := Marshal(nmm); err != nil { - t.Error("unexpected error marshaling nmm: ", err) - } - - // Try a struct with a Marshaler field that is not nillable. - nnim := new(NNIMessage) - nnim.nni = 7 - var _ Marshaler = nnim.nni // verify it is truly a Marshaler - if _, err := Marshal(nnim); err != nil { - t.Error("unexpected error marshaling nnim: ", err) - } -} - -func TestAllSetDefaults(t *testing.T) { - // Exercise SetDefaults with all scalar field types. - m := &Defaults{ - // NaN != NaN, so override that here. - F_Nan: Float32(1.7), - } - expected := &Defaults{ - F_Bool: Bool(true), - F_Int32: Int32(32), - F_Int64: Int64(64), - F_Fixed32: Uint32(320), - F_Fixed64: Uint64(640), - F_Uint32: Uint32(3200), - F_Uint64: Uint64(6400), - F_Float: Float32(314159), - F_Double: Float64(271828), - F_String: String(`hello, "world!"` + "\n"), - F_Bytes: []byte("Bignose"), - F_Sint32: Int32(-32), - F_Sint64: Int64(-64), - F_Enum: Defaults_GREEN.Enum(), - F_Pinf: Float32(float32(math.Inf(1))), - F_Ninf: Float32(float32(math.Inf(-1))), - F_Nan: Float32(1.7), - StrZero: String(""), - } - SetDefaults(m) - if !Equal(m, expected) { - t.Errorf("SetDefaults failed\n got %v\nwant %v", m, expected) - } -} - -func TestSetDefaultsWithSetField(t *testing.T) { - // Check that a set value is not overridden. - m := &Defaults{ - F_Int32: Int32(12), - } - SetDefaults(m) - if v := m.GetF_Int32(); v != 12 { - t.Errorf("m.FInt32 = %v, want 12", v) - } -} - -func TestSetDefaultsWithSubMessage(t *testing.T) { - m := &OtherMessage{ - Key: Int64(123), - Inner: &InnerMessage{ - Host: String("gopher"), - }, - } - expected := &OtherMessage{ - Key: Int64(123), - Inner: &InnerMessage{ - Host: String("gopher"), - Port: Int32(4000), - }, - } - SetDefaults(m) - if !Equal(m, expected) { - t.Errorf("\n got %v\nwant %v", m, expected) - } -} - -func TestSetDefaultsWithRepeatedSubMessage(t *testing.T) { - m := &MyMessage{ - RepInner: []*InnerMessage{{}}, - } - expected := &MyMessage{ - RepInner: []*InnerMessage{{ - Port: Int32(4000), - }}, - } - SetDefaults(m) - if !Equal(m, expected) { - t.Errorf("\n got %v\nwant %v", m, expected) - } -} - -func TestSetDefaultWithRepeatedNonMessage(t *testing.T) { - m := &MyMessage{ - Pet: []string{"turtle", "wombat"}, - } - expected := Clone(m) - SetDefaults(m) - if !Equal(m, expected) { - t.Errorf("\n got %v\nwant %v", m, expected) - } -} - -func TestMaximumTagNumber(t *testing.T) { - m := &MaxTag{ - LastField: String("natural goat essence"), - } - buf, err := Marshal(m) - if err != nil { - t.Fatalf("proto.Marshal failed: %v", err) - } - m2 := new(MaxTag) - if err := Unmarshal(buf, m2); err != nil { - t.Fatalf("proto.Unmarshal failed: %v", err) - } - if got, want := m2.GetLastField(), *m.LastField; got != want { - t.Errorf("got %q, want %q", got, want) - } -} - -func TestJSON(t *testing.T) { - m := &MyMessage{ - Count: Int32(4), - Pet: []string{"bunny", "kitty"}, - Inner: &InnerMessage{ - Host: String("cauchy"), - }, - Bikeshed: MyMessage_GREEN.Enum(), - } - const expected = `{"count":4,"pet":["bunny","kitty"],"inner":{"host":"cauchy"},"bikeshed":1}` - - b, err := json.Marshal(m) - if err != nil { - t.Fatalf("json.Marshal failed: %v", err) - } - s := string(b) - if s != expected { - t.Errorf("got %s\nwant %s", s, expected) - } - - received := new(MyMessage) - if err := json.Unmarshal(b, received); err != nil { - t.Fatalf("json.Unmarshal failed: %v", err) - } - if !Equal(received, m) { - t.Fatalf("got %s, want %s", received, m) - } - - // Test unmarshalling of JSON with symbolic enum name. - const old = `{"count":4,"pet":["bunny","kitty"],"inner":{"host":"cauchy"},"bikeshed":"GREEN"}` - received.Reset() - if err := json.Unmarshal([]byte(old), received); err != nil { - t.Fatalf("json.Unmarshal failed: %v", err) - } - if !Equal(received, m) { - t.Fatalf("got %s, want %s", received, m) - } -} - -func TestBadWireType(t *testing.T) { - b := []byte{7<<3 | 6} // field 7, wire type 6 - pb := new(OtherMessage) - if err := Unmarshal(b, pb); err == nil { - t.Errorf("Unmarshal did not fail") - } else if !strings.Contains(err.Error(), "unknown wire type") { - t.Errorf("wrong error: %v", err) - } -} - -func TestBytesWithInvalidLength(t *testing.T) { - // If a byte sequence has an invalid (negative) length, Unmarshal should not panic. - b := []byte{2<<3 | WireBytes, 0xff, 0xff, 0xff, 0xff, 0xff, 0} - Unmarshal(b, new(MyMessage)) -} - -func TestLengthOverflow(t *testing.T) { - // Overflowing a length should not panic. - b := []byte{2<<3 | WireBytes, 1, 1, 3<<3 | WireBytes, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x01} - Unmarshal(b, new(MyMessage)) -} - -func TestVarintOverflow(t *testing.T) { - // Overflowing a 64-bit length should not be allowed. - b := []byte{1<<3 | WireVarint, 0x01, 3<<3 | WireBytes, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x01} - if err := Unmarshal(b, new(MyMessage)); err == nil { - t.Fatalf("Overflowed uint64 length without error") - } -} - -func TestUnmarshalFuzz(t *testing.T) { - const N = 1000 - seed := time.Now().UnixNano() - t.Logf("RNG seed is %d", seed) - rng := rand.New(rand.NewSource(seed)) - buf := make([]byte, 20) - for i := 0; i < N; i++ { - for j := range buf { - buf[j] = byte(rng.Intn(256)) - } - fuzzUnmarshal(t, buf) - } -} - -func TestMergeMessages(t *testing.T) { - pb := &MessageList{Message: []*MessageList_Message{{Name: String("x"), Count: Int32(1)}}} - data, err := Marshal(pb) - if err != nil { - t.Fatalf("Marshal: %v", err) - } - - pb1 := new(MessageList) - if err := Unmarshal(data, pb1); err != nil { - t.Fatalf("first Unmarshal: %v", err) - } - if err := Unmarshal(data, pb1); err != nil { - t.Fatalf("second Unmarshal: %v", err) - } - if len(pb1.Message) != 1 { - t.Errorf("two Unmarshals produced %d Messages, want 1", len(pb1.Message)) - } - - pb2 := new(MessageList) - if err := UnmarshalMerge(data, pb2); err != nil { - t.Fatalf("first UnmarshalMerge: %v", err) - } - if err := UnmarshalMerge(data, pb2); err != nil { - t.Fatalf("second UnmarshalMerge: %v", err) - } - if len(pb2.Message) != 2 { - t.Errorf("two UnmarshalMerges produced %d Messages, want 2", len(pb2.Message)) - } -} - -func TestExtensionMarshalOrder(t *testing.T) { - m := &MyMessage{Count: Int(123)} - if err := SetExtension(m, E_Ext_More, &Ext{Data: String("alpha")}); err != nil { - t.Fatalf("SetExtension: %v", err) - } - if err := SetExtension(m, E_Ext_Text, String("aleph")); err != nil { - t.Fatalf("SetExtension: %v", err) - } - if err := SetExtension(m, E_Ext_Number, Int32(1)); err != nil { - t.Fatalf("SetExtension: %v", err) - } - - // Serialize m several times, and check we get the same bytes each time. - var orig []byte - for i := 0; i < 100; i++ { - b, err := Marshal(m) - if err != nil { - t.Fatalf("Marshal: %v", err) - } - if i == 0 { - orig = b - continue - } - if !bytes.Equal(b, orig) { - t.Errorf("Bytes differ on attempt #%d", i) - } - } -} - -// Many extensions, because small maps might not iterate differently on each iteration. -var exts = []*ExtensionDesc{ - E_X201, - E_X202, - E_X203, - E_X204, - E_X205, - E_X206, - E_X207, - E_X208, - E_X209, - E_X210, - E_X211, - E_X212, - E_X213, - E_X214, - E_X215, - E_X216, - E_X217, - E_X218, - E_X219, - E_X220, - E_X221, - E_X222, - E_X223, - E_X224, - E_X225, - E_X226, - E_X227, - E_X228, - E_X229, - E_X230, - E_X231, - E_X232, - E_X233, - E_X234, - E_X235, - E_X236, - E_X237, - E_X238, - E_X239, - E_X240, - E_X241, - E_X242, - E_X243, - E_X244, - E_X245, - E_X246, - E_X247, - E_X248, - E_X249, - E_X250, -} - -func TestMessageSetMarshalOrder(t *testing.T) { - m := &MyMessageSet{} - for _, x := range exts { - if err := SetExtension(m, x, &Empty{}); err != nil { - t.Fatalf("SetExtension: %v", err) - } - } - - buf, err := Marshal(m) - if err != nil { - t.Fatalf("Marshal: %v", err) - } - - // Serialize m several times, and check we get the same bytes each time. - for i := 0; i < 10; i++ { - b1, err := Marshal(m) - if err != nil { - t.Fatalf("Marshal: %v", err) - } - if !bytes.Equal(b1, buf) { - t.Errorf("Bytes differ on re-Marshal #%d", i) - } - - m2 := &MyMessageSet{} - if err := Unmarshal(buf, m2); err != nil { - t.Errorf("Unmarshal: %v", err) - } - b2, err := Marshal(m2) - if err != nil { - t.Errorf("re-Marshal: %v", err) - } - if !bytes.Equal(b2, buf) { - t.Errorf("Bytes differ on round-trip #%d", i) - } - } -} - -func TestUnmarshalMergesMessages(t *testing.T) { - // If a nested message occurs twice in the input, - // the fields should be merged when decoding. - a := &OtherMessage{ - Key: Int64(123), - Inner: &InnerMessage{ - Host: String("polhode"), - Port: Int32(1234), - }, - } - aData, err := Marshal(a) - if err != nil { - t.Fatalf("Marshal(a): %v", err) - } - b := &OtherMessage{ - Weight: Float32(1.2), - Inner: &InnerMessage{ - Host: String("herpolhode"), - Connected: Bool(true), - }, - } - bData, err := Marshal(b) - if err != nil { - t.Fatalf("Marshal(b): %v", err) - } - want := &OtherMessage{ - Key: Int64(123), - Weight: Float32(1.2), - Inner: &InnerMessage{ - Host: String("herpolhode"), - Port: Int32(1234), - Connected: Bool(true), - }, - } - got := new(OtherMessage) - if err := Unmarshal(append(aData, bData...), got); err != nil { - t.Fatalf("Unmarshal: %v", err) - } - if !Equal(got, want) { - t.Errorf("\n got %v\nwant %v", got, want) - } -} - -func TestEncodingSizes(t *testing.T) { - tests := []struct { - m Message - n int - }{ - {&Defaults{F_Int32: Int32(math.MaxInt32)}, 6}, - {&Defaults{F_Int32: Int32(math.MinInt32)}, 11}, - {&Defaults{F_Uint32: Uint32(uint32(math.MaxInt32) + 1)}, 6}, - {&Defaults{F_Uint32: Uint32(math.MaxUint32)}, 6}, - } - for _, test := range tests { - b, err := Marshal(test.m) - if err != nil { - t.Errorf("Marshal(%v): %v", test.m, err) - continue - } - if len(b) != test.n { - t.Errorf("Marshal(%v) yielded %d bytes, want %d bytes", test.m, len(b), test.n) - } - } -} - -func TestRequiredNotSetError(t *testing.T) { - pb := initGoTest(false) - pb.RequiredField.Label = nil - pb.F_Int32Required = nil - pb.F_Int64Required = nil - - expected := "0807" + // field 1, encoding 0, value 7 - "2206" + "120474797065" + // field 4, encoding 2 (GoTestField) - "5001" + // field 10, encoding 0, value 1 - "6d20000000" + // field 13, encoding 5, value 0x20 - "714000000000000000" + // field 14, encoding 1, value 0x40 - "78a019" + // field 15, encoding 0, value 0xca0 = 3232 - "8001c032" + // field 16, encoding 0, value 0x1940 = 6464 - "8d0100004a45" + // field 17, encoding 5, value 3232.0 - "9101000000000040b940" + // field 18, encoding 1, value 6464.0 - "9a0106" + "737472696e67" + // field 19, encoding 2, string "string" - "b304" + // field 70, encoding 3, start group - "ba0408" + "7265717569726564" + // field 71, encoding 2, string "required" - "b404" + // field 70, encoding 4, end group - "aa0605" + "6279746573" + // field 101, encoding 2, string "bytes" - "b0063f" + // field 102, encoding 0, 0x3f zigzag32 - "b8067f" // field 103, encoding 0, 0x7f zigzag64 - - o := old() - bytes, err := Marshal(pb) - if _, ok := err.(*RequiredNotSetError); !ok { - fmt.Printf("marshal-1 err = %v, want *RequiredNotSetError", err) - o.DebugPrint("", bytes) - t.Fatalf("expected = %s", expected) - } - if strings.Index(err.Error(), "RequiredField.Label") < 0 { - t.Errorf("marshal-1 wrong err msg: %v", err) - } - if !equal(bytes, expected, t) { - o.DebugPrint("neq 1", bytes) - t.Fatalf("expected = %s", expected) - } - - // Now test Unmarshal by recreating the original buffer. - pbd := new(GoTest) - err = Unmarshal(bytes, pbd) - if _, ok := err.(*RequiredNotSetError); !ok { - t.Fatalf("unmarshal err = %v, want *RequiredNotSetError", err) - o.DebugPrint("", bytes) - t.Fatalf("string = %s", expected) - } - if strings.Index(err.Error(), "RequiredField.{Unknown}") < 0 { - t.Errorf("unmarshal wrong err msg: %v", err) - } - bytes, err = Marshal(pbd) - if _, ok := err.(*RequiredNotSetError); !ok { - t.Errorf("marshal-2 err = %v, want *RequiredNotSetError", err) - o.DebugPrint("", bytes) - t.Fatalf("string = %s", expected) - } - if strings.Index(err.Error(), "RequiredField.Label") < 0 { - t.Errorf("marshal-2 wrong err msg: %v", err) - } - if !equal(bytes, expected, t) { - o.DebugPrint("neq 2", bytes) - t.Fatalf("string = %s", expected) - } -} - -func fuzzUnmarshal(t *testing.T, data []byte) { - defer func() { - if e := recover(); e != nil { - t.Errorf("These bytes caused a panic: %+v", data) - t.Logf("Stack:\n%s", debug.Stack()) - t.FailNow() - } - }() - - pb := new(MyMessage) - Unmarshal(data, pb) -} - -func TestMapFieldMarshal(t *testing.T) { - m := &MessageWithMap{ - NameMapping: map[int32]string{ - 1: "Rob", - 4: "Ian", - 8: "Dave", - }, - } - b, err := Marshal(m) - if err != nil { - t.Fatalf("Marshal: %v", err) - } - - // b should be the concatenation of these three byte sequences in some order. - parts := []string{ - "\n\a\b\x01\x12\x03Rob", - "\n\a\b\x04\x12\x03Ian", - "\n\b\b\x08\x12\x04Dave", - } - ok := false - for i := range parts { - for j := range parts { - if j == i { - continue - } - for k := range parts { - if k == i || k == j { - continue - } - try := parts[i] + parts[j] + parts[k] - if bytes.Equal(b, []byte(try)) { - ok = true - break - } - } - } - } - if !ok { - t.Fatalf("Incorrect Marshal output.\n got %q\nwant %q (or a permutation of that)", b, parts[0]+parts[1]+parts[2]) - } - t.Logf("FYI b: %q", b) - - (new(Buffer)).DebugPrint("Dump of b", b) -} - -func TestMapFieldRoundTrips(t *testing.T) { - m := &MessageWithMap{ - NameMapping: map[int32]string{ - 1: "Rob", - 4: "Ian", - 8: "Dave", - }, - MsgMapping: map[int64]*FloatingPoint{ - 0x7001: {F: Float64(2.0)}, - }, - ByteMapping: map[bool][]byte{ - false: []byte("that's not right!"), - true: []byte("aye, 'tis true!"), - }, - } - b, err := Marshal(m) - if err != nil { - t.Fatalf("Marshal: %v", err) - } - t.Logf("FYI b: %q", b) - m2 := new(MessageWithMap) - if err := Unmarshal(b, m2); err != nil { - t.Fatalf("Unmarshal: %v", err) - } - for _, pair := range [][2]interface{}{ - {m.NameMapping, m2.NameMapping}, - {m.MsgMapping, m2.MsgMapping}, - {m.ByteMapping, m2.ByteMapping}, - } { - if !reflect.DeepEqual(pair[0], pair[1]) { - t.Errorf("Map did not survive a round trip.\ninitial: %v\n final: %v", pair[0], pair[1]) - } - } -} - -func TestMapFieldWithNil(t *testing.T) { - m := &MessageWithMap{ - MsgMapping: map[int64]*FloatingPoint{ - 1: nil, - }, - } - b, err := Marshal(m) - if err == nil { - t.Fatalf("Marshal of bad map should have failed, got these bytes: %v", b) - } -} - -func TestOneof(t *testing.T) { - m := &Communique{} - b, err := Marshal(m) - if err != nil { - t.Fatalf("Marshal of empty message with oneof: %v", err) - } - if len(b) != 0 { - t.Errorf("Marshal of empty message yielded too many bytes: %v", b) - } - - m = &Communique{ - Union: &Communique_Name{"Barry"}, - } - - // Round-trip. - b, err = Marshal(m) - if err != nil { - t.Fatalf("Marshal of message with oneof: %v", err) - } - if len(b) != 7 { // name tag/wire (1) + name len (1) + name (5) - t.Errorf("Incorrect marshal of message with oneof: %v", b) - } - m.Reset() - if err := Unmarshal(b, m); err != nil { - t.Fatalf("Unmarshal of message with oneof: %v", err) - } - if x, ok := m.Union.(*Communique_Name); !ok || x.Name != "Barry" { - t.Errorf("After round trip, Union = %+v", m.Union) - } - if name := m.GetName(); name != "Barry" { - t.Errorf("After round trip, GetName = %q, want %q", name, "Barry") - } - - // Let's try with a message in the oneof. - m.Union = &Communique_Msg{&Strings{StringField: String("deep deep string")}} - b, err = Marshal(m) - if err != nil { - t.Fatalf("Marshal of message with oneof set to message: %v", err) - } - if len(b) != 20 { // msg tag/wire (1) + msg len (1) + msg (1 + 1 + 16) - t.Errorf("Incorrect marshal of message with oneof set to message: %v", b) - } - m.Reset() - if err := Unmarshal(b, m); err != nil { - t.Fatalf("Unmarshal of message with oneof set to message: %v", err) - } - ss, ok := m.Union.(*Communique_Msg) - if !ok || ss.Msg.GetStringField() != "deep deep string" { - t.Errorf("After round trip with oneof set to message, Union = %+v", m.Union) - } -} - -func TestInefficientPackedBool(t *testing.T) { - // https://github.com/golang/protobuf/issues/76 - inp := []byte{ - 0x12, 0x02, // 0x12 = 2<<3|2; 2 bytes - // Usually a bool should take a single byte, - // but it is permitted to be any varint. - 0xb9, 0x30, - } - if err := Unmarshal(inp, new(MoreRepeated)); err != nil { - t.Error(err) - } -} - -// Benchmarks - -func testMsg() *GoTest { - pb := initGoTest(true) - const N = 1000 // Internally the library starts much smaller. - pb.F_Int32Repeated = make([]int32, N) - pb.F_DoubleRepeated = make([]float64, N) - for i := 0; i < N; i++ { - pb.F_Int32Repeated[i] = int32(i) - pb.F_DoubleRepeated[i] = float64(i) - } - return pb -} - -func bytesMsg() *GoTest { - pb := initGoTest(true) - buf := make([]byte, 4000) - for i := range buf { - buf[i] = byte(i) - } - pb.F_BytesDefaulted = buf - return pb -} - -func benchmarkMarshal(b *testing.B, pb Message, marshal func(Message) ([]byte, error)) { - d, _ := marshal(pb) - b.SetBytes(int64(len(d))) - b.ResetTimer() - for i := 0; i < b.N; i++ { - marshal(pb) - } -} - -func benchmarkBufferMarshal(b *testing.B, pb Message) { - p := NewBuffer(nil) - benchmarkMarshal(b, pb, func(pb0 Message) ([]byte, error) { - p.Reset() - err := p.Marshal(pb0) - return p.Bytes(), err - }) -} - -func benchmarkSize(b *testing.B, pb Message) { - benchmarkMarshal(b, pb, func(pb0 Message) ([]byte, error) { - Size(pb) - return nil, nil - }) -} - -func newOf(pb Message) Message { - in := reflect.ValueOf(pb) - if in.IsNil() { - return pb - } - return reflect.New(in.Type().Elem()).Interface().(Message) -} - -func benchmarkUnmarshal(b *testing.B, pb Message, unmarshal func([]byte, Message) error) { - d, _ := Marshal(pb) - b.SetBytes(int64(len(d))) - pbd := newOf(pb) - - b.ResetTimer() - for i := 0; i < b.N; i++ { - unmarshal(d, pbd) - } -} - -func benchmarkBufferUnmarshal(b *testing.B, pb Message) { - p := NewBuffer(nil) - benchmarkUnmarshal(b, pb, func(d []byte, pb0 Message) error { - p.SetBuf(d) - return p.Unmarshal(pb0) - }) -} - -// Benchmark{Marshal,BufferMarshal,Size,Unmarshal,BufferUnmarshal}{,Bytes} - -func BenchmarkMarshal(b *testing.B) { - benchmarkMarshal(b, testMsg(), Marshal) -} - -func BenchmarkBufferMarshal(b *testing.B) { - benchmarkBufferMarshal(b, testMsg()) -} - -func BenchmarkSize(b *testing.B) { - benchmarkSize(b, testMsg()) -} - -func BenchmarkUnmarshal(b *testing.B) { - benchmarkUnmarshal(b, testMsg(), Unmarshal) -} - -func BenchmarkBufferUnmarshal(b *testing.B) { - benchmarkBufferUnmarshal(b, testMsg()) -} - -func BenchmarkMarshalBytes(b *testing.B) { - benchmarkMarshal(b, bytesMsg(), Marshal) -} - -func BenchmarkBufferMarshalBytes(b *testing.B) { - benchmarkBufferMarshal(b, bytesMsg()) -} - -func BenchmarkSizeBytes(b *testing.B) { - benchmarkSize(b, bytesMsg()) -} - -func BenchmarkUnmarshalBytes(b *testing.B) { - benchmarkUnmarshal(b, bytesMsg(), Unmarshal) -} - -func BenchmarkBufferUnmarshalBytes(b *testing.B) { - benchmarkBufferUnmarshal(b, bytesMsg()) -} - -func BenchmarkUnmarshalUnrecognizedFields(b *testing.B) { - b.StopTimer() - pb := initGoTestField() - skip := &GoSkipTest{ - SkipInt32: Int32(32), - SkipFixed32: Uint32(3232), - SkipFixed64: Uint64(6464), - SkipString: String("skipper"), - Skipgroup: &GoSkipTest_SkipGroup{ - GroupInt32: Int32(75), - GroupString: String("wxyz"), - }, - } - - pbd := new(GoTestField) - p := NewBuffer(nil) - p.Marshal(pb) - p.Marshal(skip) - p2 := NewBuffer(nil) - - b.StartTimer() - for i := 0; i < b.N; i++ { - p2.SetBuf(p.Bytes()) - p2.Unmarshal(pbd) - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/clone.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/clone.go deleted file mode 100644 index 79edb861..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/clone.go +++ /dev/null @@ -1,228 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2011 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -// Protocol buffer deep copy and merge. -// TODO: RawMessage. - -package proto - -import ( - "log" - "reflect" - "strings" -) - -// Clone returns a deep copy of a protocol buffer. -func Clone(pb Message) Message { - in := reflect.ValueOf(pb) - if in.IsNil() { - return pb - } - - out := reflect.New(in.Type().Elem()) - // out is empty so a merge is a deep copy. - mergeStruct(out.Elem(), in.Elem()) - return out.Interface().(Message) -} - -// Merge merges src into dst. -// Required and optional fields that are set in src will be set to that value in dst. -// Elements of repeated fields will be appended. -// Merge panics if src and dst are not the same type, or if dst is nil. -func Merge(dst, src Message) { - in := reflect.ValueOf(src) - out := reflect.ValueOf(dst) - if out.IsNil() { - panic("proto: nil destination") - } - if in.Type() != out.Type() { - // Explicit test prior to mergeStruct so that mistyped nils will fail - panic("proto: type mismatch") - } - if in.IsNil() { - // Merging nil into non-nil is a quiet no-op - return - } - mergeStruct(out.Elem(), in.Elem()) -} - -func mergeStruct(out, in reflect.Value) { - sprop := GetProperties(in.Type()) - for i := 0; i < in.NumField(); i++ { - f := in.Type().Field(i) - if strings.HasPrefix(f.Name, "XXX_") { - continue - } - mergeAny(out.Field(i), in.Field(i), false, sprop.Prop[i]) - } - - if emIn, ok := in.Addr().Interface().(extensionsMap); ok { - emOut := out.Addr().Interface().(extensionsMap) - mergeExtension(emOut.ExtensionMap(), emIn.ExtensionMap()) - } else if emIn, ok := in.Addr().Interface().(extensionsBytes); ok { - emOut := out.Addr().Interface().(extensionsBytes) - bIn := emIn.GetExtensions() - bOut := emOut.GetExtensions() - *bOut = append(*bOut, *bIn...) - } - - uf := in.FieldByName("XXX_unrecognized") - if !uf.IsValid() { - return - } - uin := uf.Bytes() - if len(uin) > 0 { - out.FieldByName("XXX_unrecognized").SetBytes(append([]byte(nil), uin...)) - } -} - -// mergeAny performs a merge between two values of the same type. -// viaPtr indicates whether the values were indirected through a pointer (implying proto2). -// prop is set if this is a struct field (it may be nil). -func mergeAny(out, in reflect.Value, viaPtr bool, prop *Properties) { - if in.Type() == protoMessageType { - if !in.IsNil() { - if out.IsNil() { - out.Set(reflect.ValueOf(Clone(in.Interface().(Message)))) - } else { - Merge(out.Interface().(Message), in.Interface().(Message)) - } - } - return - } - switch in.Kind() { - case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64, - reflect.String, reflect.Uint32, reflect.Uint64: - if !viaPtr && isProto3Zero(in) { - return - } - out.Set(in) - case reflect.Interface: - // Probably a oneof field; copy non-nil values. - if in.IsNil() { - return - } - // Allocate destination if it is not set, or set to a different type. - // Otherwise we will merge as normal. - if out.IsNil() || out.Elem().Type() != in.Elem().Type() { - out.Set(reflect.New(in.Elem().Elem().Type())) // interface -> *T -> T -> new(T) - } - mergeAny(out.Elem(), in.Elem(), false, nil) - case reflect.Map: - if in.Len() == 0 { - return - } - if out.IsNil() { - out.Set(reflect.MakeMap(in.Type())) - } - // For maps with value types of *T or []byte we need to deep copy each value. - elemKind := in.Type().Elem().Kind() - for _, key := range in.MapKeys() { - var val reflect.Value - switch elemKind { - case reflect.Ptr: - val = reflect.New(in.Type().Elem().Elem()) - mergeAny(val, in.MapIndex(key), false, nil) - case reflect.Slice: - val = in.MapIndex(key) - val = reflect.ValueOf(append([]byte{}, val.Bytes()...)) - default: - val = in.MapIndex(key) - } - out.SetMapIndex(key, val) - } - case reflect.Ptr: - if in.IsNil() { - return - } - if out.IsNil() { - out.Set(reflect.New(in.Elem().Type())) - } - mergeAny(out.Elem(), in.Elem(), true, nil) - case reflect.Slice: - if in.IsNil() { - return - } - if in.Type().Elem().Kind() == reflect.Uint8 { - // []byte is a scalar bytes field, not a repeated field. - - // Edge case: if this is in a proto3 message, a zero length - // bytes field is considered the zero value, and should not - // be merged. - if prop != nil && prop.proto3 && in.Len() == 0 { - return - } - - // Make a deep copy. - // Append to []byte{} instead of []byte(nil) so that we never end up - // with a nil result. - out.SetBytes(append([]byte{}, in.Bytes()...)) - return - } - n := in.Len() - if out.IsNil() { - out.Set(reflect.MakeSlice(in.Type(), 0, n)) - } - switch in.Type().Elem().Kind() { - case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64, - reflect.String, reflect.Uint32, reflect.Uint64: - out.Set(reflect.AppendSlice(out, in)) - default: - for i := 0; i < n; i++ { - x := reflect.Indirect(reflect.New(in.Type().Elem())) - mergeAny(x, in.Index(i), false, nil) - out.Set(reflect.Append(out, x)) - } - } - case reflect.Struct: - mergeStruct(out, in) - default: - // unknown type, so not a protocol buffer - log.Printf("proto: don't know how to copy %v", in) - } -} - -func mergeExtension(out, in map[int32]Extension) { - for extNum, eIn := range in { - eOut := Extension{desc: eIn.desc} - if eIn.value != nil { - v := reflect.New(reflect.TypeOf(eIn.value)).Elem() - mergeAny(v, reflect.ValueOf(eIn.value), false, nil) - eOut.value = v.Interface() - } - if eIn.enc != nil { - eOut.enc = make([]byte, len(eIn.enc)) - copy(eOut.enc, eIn.enc) - } - - out[extNum] = eOut - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/clone_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/clone_test.go deleted file mode 100644 index edfad0dc..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/clone_test.go +++ /dev/null @@ -1,267 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2011 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto_test - -import ( - "testing" - - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - - proto3pb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto" - pb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata" -) - -var cloneTestMessage = &pb.MyMessage{ - Count: proto.Int32(42), - Name: proto.String("Dave"), - Pet: []string{"bunny", "kitty", "horsey"}, - Inner: &pb.InnerMessage{ - Host: proto.String("niles"), - Port: proto.Int32(9099), - Connected: proto.Bool(true), - }, - Others: []*pb.OtherMessage{ - { - Value: []byte("some bytes"), - }, - }, - Somegroup: &pb.MyMessage_SomeGroup{ - GroupField: proto.Int32(6), - }, - RepBytes: [][]byte{[]byte("sham"), []byte("wow")}, -} - -func init() { - ext := &pb.Ext{ - Data: proto.String("extension"), - } - if err := proto.SetExtension(cloneTestMessage, pb.E_Ext_More, ext); err != nil { - panic("SetExtension: " + err.Error()) - } -} - -func TestClone(t *testing.T) { - m := proto.Clone(cloneTestMessage).(*pb.MyMessage) - if !proto.Equal(m, cloneTestMessage) { - t.Errorf("Clone(%v) = %v", cloneTestMessage, m) - } - - // Verify it was a deep copy. - *m.Inner.Port++ - if proto.Equal(m, cloneTestMessage) { - t.Error("Mutating clone changed the original") - } - // Byte fields and repeated fields should be copied. - if &m.Pet[0] == &cloneTestMessage.Pet[0] { - t.Error("Pet: repeated field not copied") - } - if &m.Others[0] == &cloneTestMessage.Others[0] { - t.Error("Others: repeated field not copied") - } - if &m.Others[0].Value[0] == &cloneTestMessage.Others[0].Value[0] { - t.Error("Others[0].Value: bytes field not copied") - } - if &m.RepBytes[0] == &cloneTestMessage.RepBytes[0] { - t.Error("RepBytes: repeated field not copied") - } - if &m.RepBytes[0][0] == &cloneTestMessage.RepBytes[0][0] { - t.Error("RepBytes[0]: bytes field not copied") - } -} - -func TestCloneNil(t *testing.T) { - var m *pb.MyMessage - if c := proto.Clone(m); !proto.Equal(m, c) { - t.Errorf("Clone(%v) = %v", m, c) - } -} - -var mergeTests = []struct { - src, dst, want proto.Message -}{ - { - src: &pb.MyMessage{ - Count: proto.Int32(42), - }, - dst: &pb.MyMessage{ - Name: proto.String("Dave"), - }, - want: &pb.MyMessage{ - Count: proto.Int32(42), - Name: proto.String("Dave"), - }, - }, - { - src: &pb.MyMessage{ - Inner: &pb.InnerMessage{ - Host: proto.String("hey"), - Connected: proto.Bool(true), - }, - Pet: []string{"horsey"}, - Others: []*pb.OtherMessage{ - { - Value: []byte("some bytes"), - }, - }, - }, - dst: &pb.MyMessage{ - Inner: &pb.InnerMessage{ - Host: proto.String("niles"), - Port: proto.Int32(9099), - }, - Pet: []string{"bunny", "kitty"}, - Others: []*pb.OtherMessage{ - { - Key: proto.Int64(31415926535), - }, - { - // Explicitly test a src=nil field - Inner: nil, - }, - }, - }, - want: &pb.MyMessage{ - Inner: &pb.InnerMessage{ - Host: proto.String("hey"), - Connected: proto.Bool(true), - Port: proto.Int32(9099), - }, - Pet: []string{"bunny", "kitty", "horsey"}, - Others: []*pb.OtherMessage{ - { - Key: proto.Int64(31415926535), - }, - {}, - { - Value: []byte("some bytes"), - }, - }, - }, - }, - { - src: &pb.MyMessage{ - RepBytes: [][]byte{[]byte("wow")}, - }, - dst: &pb.MyMessage{ - Somegroup: &pb.MyMessage_SomeGroup{ - GroupField: proto.Int32(6), - }, - RepBytes: [][]byte{[]byte("sham")}, - }, - want: &pb.MyMessage{ - Somegroup: &pb.MyMessage_SomeGroup{ - GroupField: proto.Int32(6), - }, - RepBytes: [][]byte{[]byte("sham"), []byte("wow")}, - }, - }, - // Check that a scalar bytes field replaces rather than appends. - { - src: &pb.OtherMessage{Value: []byte("foo")}, - dst: &pb.OtherMessage{Value: []byte("bar")}, - want: &pb.OtherMessage{Value: []byte("foo")}, - }, - { - src: &pb.MessageWithMap{ - NameMapping: map[int32]string{6: "Nigel"}, - MsgMapping: map[int64]*pb.FloatingPoint{ - 0x4001: {F: proto.Float64(2.0)}, - }, - ByteMapping: map[bool][]byte{true: []byte("wowsa")}, - }, - dst: &pb.MessageWithMap{ - NameMapping: map[int32]string{ - 6: "Bruce", // should be overwritten - 7: "Andrew", - }, - }, - want: &pb.MessageWithMap{ - NameMapping: map[int32]string{ - 6: "Nigel", - 7: "Andrew", - }, - MsgMapping: map[int64]*pb.FloatingPoint{ - 0x4001: {F: proto.Float64(2.0)}, - }, - ByteMapping: map[bool][]byte{true: []byte("wowsa")}, - }, - }, - // proto3 shouldn't merge zero values, - // in the same way that proto2 shouldn't merge nils. - { - src: &proto3pb.Message{ - Name: "Aaron", - Data: []byte(""), // zero value, but not nil - }, - dst: &proto3pb.Message{ - HeightInCm: 176, - Data: []byte("texas!"), - }, - want: &proto3pb.Message{ - Name: "Aaron", - HeightInCm: 176, - Data: []byte("texas!"), - }, - }, - // Oneof fields should merge by assignment. - { - src: &pb.Communique{ - Union: &pb.Communique_Number{Number: 41}, - }, - dst: &pb.Communique{ - Union: &pb.Communique_Name{Name: "Bobby Tables"}, - }, - want: &pb.Communique{ - Union: &pb.Communique_Number{Number: 41}, - }, - }, - // Oneof nil is the same as not set. - { - src: &pb.Communique{}, - dst: &pb.Communique{ - Union: &pb.Communique_Name{Name: "Bobby Tables"}, - }, - want: &pb.Communique{ - Union: &pb.Communique_Name{Name: "Bobby Tables"}, - }, - }, -} - -func TestMerge(t *testing.T) { - for _, m := range mergeTests { - got := proto.Clone(m.dst) - proto.Merge(got, m.src) - if !proto.Equal(got, m.want) { - t.Errorf("Merge(%v, %v)\n got %v\nwant %v\n", m.dst, m.src, got, m.want) - } - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/decode.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/decode.go deleted file mode 100644 index cb5b213f..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/decode.go +++ /dev/null @@ -1,872 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto - -/* - * Routines for decoding protocol buffer data to construct in-memory representations. - */ - -import ( - "errors" - "fmt" - "io" - "os" - "reflect" -) - -// errOverflow is returned when an integer is too large to be represented. -var errOverflow = errors.New("proto: integer overflow") - -// ErrInternalBadWireType is returned by generated code when an incorrect -// wire type is encountered. It does not get returned to user code. -var ErrInternalBadWireType = errors.New("proto: internal error: bad wiretype for oneof") - -// The fundamental decoders that interpret bytes on the wire. -// Those that take integer types all return uint64 and are -// therefore of type valueDecoder. - -// DecodeVarint reads a varint-encoded integer from the slice. -// It returns the integer and the number of bytes consumed, or -// zero if there is not enough. -// This is the format for the -// int32, int64, uint32, uint64, bool, and enum -// protocol buffer types. -func DecodeVarint(buf []byte) (x uint64, n int) { - // x, n already 0 - for shift := uint(0); shift < 64; shift += 7 { - if n >= len(buf) { - return 0, 0 - } - b := uint64(buf[n]) - n++ - x |= (b & 0x7F) << shift - if (b & 0x80) == 0 { - return x, n - } - } - - // The number is too large to represent in a 64-bit value. - return 0, 0 -} - -// DecodeVarint reads a varint-encoded integer from the Buffer. -// This is the format for the -// int32, int64, uint32, uint64, bool, and enum -// protocol buffer types. -func (p *Buffer) DecodeVarint() (x uint64, err error) { - // x, err already 0 - - i := p.index - l := len(p.buf) - - for shift := uint(0); shift < 64; shift += 7 { - if i >= l { - err = io.ErrUnexpectedEOF - return - } - b := p.buf[i] - i++ - x |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - p.index = i - return - } - } - - // The number is too large to represent in a 64-bit value. - err = errOverflow - return -} - -// DecodeFixed64 reads a 64-bit integer from the Buffer. -// This is the format for the -// fixed64, sfixed64, and double protocol buffer types. -func (p *Buffer) DecodeFixed64() (x uint64, err error) { - // x, err already 0 - i := p.index + 8 - if i < 0 || i > len(p.buf) { - err = io.ErrUnexpectedEOF - return - } - p.index = i - - x = uint64(p.buf[i-8]) - x |= uint64(p.buf[i-7]) << 8 - x |= uint64(p.buf[i-6]) << 16 - x |= uint64(p.buf[i-5]) << 24 - x |= uint64(p.buf[i-4]) << 32 - x |= uint64(p.buf[i-3]) << 40 - x |= uint64(p.buf[i-2]) << 48 - x |= uint64(p.buf[i-1]) << 56 - return -} - -// DecodeFixed32 reads a 32-bit integer from the Buffer. -// This is the format for the -// fixed32, sfixed32, and float protocol buffer types. -func (p *Buffer) DecodeFixed32() (x uint64, err error) { - // x, err already 0 - i := p.index + 4 - if i < 0 || i > len(p.buf) { - err = io.ErrUnexpectedEOF - return - } - p.index = i - - x = uint64(p.buf[i-4]) - x |= uint64(p.buf[i-3]) << 8 - x |= uint64(p.buf[i-2]) << 16 - x |= uint64(p.buf[i-1]) << 24 - return -} - -// DecodeZigzag64 reads a zigzag-encoded 64-bit integer -// from the Buffer. -// This is the format used for the sint64 protocol buffer type. -func (p *Buffer) DecodeZigzag64() (x uint64, err error) { - x, err = p.DecodeVarint() - if err != nil { - return - } - x = (x >> 1) ^ uint64((int64(x&1)<<63)>>63) - return -} - -// DecodeZigzag32 reads a zigzag-encoded 32-bit integer -// from the Buffer. -// This is the format used for the sint32 protocol buffer type. -func (p *Buffer) DecodeZigzag32() (x uint64, err error) { - x, err = p.DecodeVarint() - if err != nil { - return - } - x = uint64((uint32(x) >> 1) ^ uint32((int32(x&1)<<31)>>31)) - return -} - -// These are not ValueDecoders: they produce an array of bytes or a string. -// bytes, embedded messages - -// DecodeRawBytes reads a count-delimited byte buffer from the Buffer. -// This is the format used for the bytes protocol buffer -// type and for embedded messages. -func (p *Buffer) DecodeRawBytes(alloc bool) (buf []byte, err error) { - n, err := p.DecodeVarint() - if err != nil { - return nil, err - } - - nb := int(n) - if nb < 0 { - return nil, fmt.Errorf("proto: bad byte length %d", nb) - } - end := p.index + nb - if end < p.index || end > len(p.buf) { - return nil, io.ErrUnexpectedEOF - } - - if !alloc { - // todo: check if can get more uses of alloc=false - buf = p.buf[p.index:end] - p.index += nb - return - } - - buf = make([]byte, nb) - copy(buf, p.buf[p.index:]) - p.index += nb - return -} - -// DecodeStringBytes reads an encoded string from the Buffer. -// This is the format used for the proto2 string type. -func (p *Buffer) DecodeStringBytes() (s string, err error) { - buf, err := p.DecodeRawBytes(false) - if err != nil { - return - } - return string(buf), nil -} - -// Skip the next item in the buffer. Its wire type is decoded and presented as an argument. -// If the protocol buffer has extensions, and the field matches, add it as an extension. -// Otherwise, if the XXX_unrecognized field exists, append the skipped data there. -func (o *Buffer) skipAndSave(t reflect.Type, tag, wire int, base structPointer, unrecField field) error { - oi := o.index - - err := o.skip(t, tag, wire) - if err != nil { - return err - } - - if !unrecField.IsValid() { - return nil - } - - ptr := structPointer_Bytes(base, unrecField) - - // Add the skipped field to struct field - obuf := o.buf - - o.buf = *ptr - o.EncodeVarint(uint64(tag<<3 | wire)) - *ptr = append(o.buf, obuf[oi:o.index]...) - - o.buf = obuf - - return nil -} - -// Skip the next item in the buffer. Its wire type is decoded and presented as an argument. -func (o *Buffer) skip(t reflect.Type, tag, wire int) error { - - var u uint64 - var err error - - switch wire { - case WireVarint: - _, err = o.DecodeVarint() - case WireFixed64: - _, err = o.DecodeFixed64() - case WireBytes: - _, err = o.DecodeRawBytes(false) - case WireFixed32: - _, err = o.DecodeFixed32() - case WireStartGroup: - for { - u, err = o.DecodeVarint() - if err != nil { - break - } - fwire := int(u & 0x7) - if fwire == WireEndGroup { - break - } - ftag := int(u >> 3) - err = o.skip(t, ftag, fwire) - if err != nil { - break - } - } - default: - err = fmt.Errorf("proto: can't skip unknown wire type %d for %s", wire, t) - } - return err -} - -// Unmarshaler is the interface representing objects that can -// unmarshal themselves. The method should reset the receiver before -// decoding starts. The argument points to data that may be -// overwritten, so implementations should not keep references to the -// buffer. -type Unmarshaler interface { - Unmarshal([]byte) error -} - -// Unmarshal parses the protocol buffer representation in buf and places the -// decoded result in pb. If the struct underlying pb does not match -// the data in buf, the results can be unpredictable. -// -// Unmarshal resets pb before starting to unmarshal, so any -// existing data in pb is always removed. Use UnmarshalMerge -// to preserve and append to existing data. -func Unmarshal(buf []byte, pb Message) error { - pb.Reset() - return UnmarshalMerge(buf, pb) -} - -// UnmarshalMerge parses the protocol buffer representation in buf and -// writes the decoded result to pb. If the struct underlying pb does not match -// the data in buf, the results can be unpredictable. -// -// UnmarshalMerge merges into existing data in pb. -// Most code should use Unmarshal instead. -func UnmarshalMerge(buf []byte, pb Message) error { - // If the object can unmarshal itself, let it. - if u, ok := pb.(Unmarshaler); ok { - return u.Unmarshal(buf) - } - return NewBuffer(buf).Unmarshal(pb) -} - -// DecodeMessage reads a count-delimited message from the Buffer. -func (p *Buffer) DecodeMessage(pb Message) error { - enc, err := p.DecodeRawBytes(false) - if err != nil { - return err - } - return NewBuffer(enc).Unmarshal(pb) -} - -// DecodeGroup reads a tag-delimited group from the Buffer. -func (p *Buffer) DecodeGroup(pb Message) error { - typ, base, err := getbase(pb) - if err != nil { - return err - } - return p.unmarshalType(typ.Elem(), GetProperties(typ.Elem()), true, base) -} - -// Unmarshal parses the protocol buffer representation in the -// Buffer and places the decoded result in pb. If the struct -// underlying pb does not match the data in the buffer, the results can be -// unpredictable. -func (p *Buffer) Unmarshal(pb Message) error { - // If the object can unmarshal itself, let it. - if u, ok := pb.(Unmarshaler); ok { - err := u.Unmarshal(p.buf[p.index:]) - p.index = len(p.buf) - return err - } - - typ, base, err := getbase(pb) - if err != nil { - return err - } - - err = p.unmarshalType(typ.Elem(), GetProperties(typ.Elem()), false, base) - - if collectStats { - stats.Decode++ - } - - return err -} - -// unmarshalType does the work of unmarshaling a structure. -func (o *Buffer) unmarshalType(st reflect.Type, prop *StructProperties, is_group bool, base structPointer) error { - var state errorState - required, reqFields := prop.reqCount, uint64(0) - - var err error - for err == nil && o.index < len(o.buf) { - oi := o.index - var u uint64 - u, err = o.DecodeVarint() - if err != nil { - break - } - wire := int(u & 0x7) - if wire == WireEndGroup { - if is_group { - return nil // input is satisfied - } - return fmt.Errorf("proto: %s: wiretype end group for non-group", st) - } - tag := int(u >> 3) - if tag <= 0 { - return fmt.Errorf("proto: %s: illegal tag %d (wire type %d)", st, tag, wire) - } - fieldnum, ok := prop.decoderTags.get(tag) - if !ok { - // Maybe it's an extension? - if prop.extendable { - if e := structPointer_Interface(base, st).(extendableProto); isExtensionField(e, int32(tag)) { - if err = o.skip(st, tag, wire); err == nil { - if ee, eok := e.(extensionsMap); eok { - ext := ee.ExtensionMap()[int32(tag)] // may be missing - ext.enc = append(ext.enc, o.buf[oi:o.index]...) - ee.ExtensionMap()[int32(tag)] = ext - } else if ee, eok := e.(extensionsBytes); eok { - ext := ee.GetExtensions() - *ext = append(*ext, o.buf[oi:o.index]...) - } - } - continue - } - } - // Maybe it's a oneof? - if prop.oneofUnmarshaler != nil { - m := structPointer_Interface(base, st).(Message) - // First return value indicates whether tag is a oneof field. - ok, err = prop.oneofUnmarshaler(m, tag, wire, o) - if err == ErrInternalBadWireType { - // Map the error to something more descriptive. - // Do the formatting here to save generated code space. - err = fmt.Errorf("bad wiretype for oneof field in %T", m) - } - if ok { - continue - } - } - err = o.skipAndSave(st, tag, wire, base, prop.unrecField) - continue - } - p := prop.Prop[fieldnum] - - if p.dec == nil { - fmt.Fprintf(os.Stderr, "proto: no protobuf decoder for %s.%s\n", st, st.Field(fieldnum).Name) - continue - } - dec := p.dec - if wire != WireStartGroup && wire != p.WireType { - if wire == WireBytes && p.packedDec != nil { - // a packable field - dec = p.packedDec - } else { - err = fmt.Errorf("proto: bad wiretype for field %s.%s: got wiretype %d, want %d", st, st.Field(fieldnum).Name, wire, p.WireType) - continue - } - } - decErr := dec(o, p, base) - if decErr != nil && !state.shouldContinue(decErr, p) { - err = decErr - } - if err == nil && p.Required { - // Successfully decoded a required field. - if tag <= 64 { - // use bitmap for fields 1-64 to catch field reuse. - var mask uint64 = 1 << uint64(tag-1) - if reqFields&mask == 0 { - // new required field - reqFields |= mask - required-- - } - } else { - // This is imprecise. It can be fooled by a required field - // with a tag > 64 that is encoded twice; that's very rare. - // A fully correct implementation would require allocating - // a data structure, which we would like to avoid. - required-- - } - } - } - if err == nil { - if is_group { - return io.ErrUnexpectedEOF - } - if state.err != nil { - return state.err - } - if required > 0 { - // Not enough information to determine the exact field. If we use extra - // CPU, we could determine the field only if the missing required field - // has a tag <= 64 and we check reqFields. - return &RequiredNotSetError{"{Unknown}"} - } - } - return err -} - -// Individual type decoders -// For each, -// u is the decoded value, -// v is a pointer to the field (pointer) in the struct - -// Sizes of the pools to allocate inside the Buffer. -// The goal is modest amortization and allocation -// on at least 16-byte boundaries. -const ( - boolPoolSize = 16 - uint32PoolSize = 8 - uint64PoolSize = 4 -) - -// Decode a bool. -func (o *Buffer) dec_bool(p *Properties, base structPointer) error { - u, err := p.valDec(o) - if err != nil { - return err - } - if len(o.bools) == 0 { - o.bools = make([]bool, boolPoolSize) - } - o.bools[0] = u != 0 - *structPointer_Bool(base, p.field) = &o.bools[0] - o.bools = o.bools[1:] - return nil -} - -func (o *Buffer) dec_proto3_bool(p *Properties, base structPointer) error { - u, err := p.valDec(o) - if err != nil { - return err - } - *structPointer_BoolVal(base, p.field) = u != 0 - return nil -} - -// Decode an int32. -func (o *Buffer) dec_int32(p *Properties, base structPointer) error { - u, err := p.valDec(o) - if err != nil { - return err - } - word32_Set(structPointer_Word32(base, p.field), o, uint32(u)) - return nil -} - -func (o *Buffer) dec_proto3_int32(p *Properties, base structPointer) error { - u, err := p.valDec(o) - if err != nil { - return err - } - word32Val_Set(structPointer_Word32Val(base, p.field), uint32(u)) - return nil -} - -// Decode an int64. -func (o *Buffer) dec_int64(p *Properties, base structPointer) error { - u, err := p.valDec(o) - if err != nil { - return err - } - word64_Set(structPointer_Word64(base, p.field), o, u) - return nil -} - -func (o *Buffer) dec_proto3_int64(p *Properties, base structPointer) error { - u, err := p.valDec(o) - if err != nil { - return err - } - word64Val_Set(structPointer_Word64Val(base, p.field), o, u) - return nil -} - -// Decode a string. -func (o *Buffer) dec_string(p *Properties, base structPointer) error { - s, err := o.DecodeStringBytes() - if err != nil { - return err - } - *structPointer_String(base, p.field) = &s - return nil -} - -func (o *Buffer) dec_proto3_string(p *Properties, base structPointer) error { - s, err := o.DecodeStringBytes() - if err != nil { - return err - } - *structPointer_StringVal(base, p.field) = s - return nil -} - -// Decode a slice of bytes ([]byte). -func (o *Buffer) dec_slice_byte(p *Properties, base structPointer) error { - b, err := o.DecodeRawBytes(true) - if err != nil { - return err - } - *structPointer_Bytes(base, p.field) = b - return nil -} - -// Decode a slice of bools ([]bool). -func (o *Buffer) dec_slice_bool(p *Properties, base structPointer) error { - u, err := p.valDec(o) - if err != nil { - return err - } - v := structPointer_BoolSlice(base, p.field) - *v = append(*v, u != 0) - return nil -} - -// Decode a slice of bools ([]bool) in packed format. -func (o *Buffer) dec_slice_packed_bool(p *Properties, base structPointer) error { - v := structPointer_BoolSlice(base, p.field) - - nn, err := o.DecodeVarint() - if err != nil { - return err - } - nb := int(nn) // number of bytes of encoded bools - fin := o.index + nb - if fin < o.index { - return errOverflow - } - - y := *v - for o.index < fin { - u, err := p.valDec(o) - if err != nil { - return err - } - y = append(y, u != 0) - } - - *v = y - return nil -} - -// Decode a slice of int32s ([]int32). -func (o *Buffer) dec_slice_int32(p *Properties, base structPointer) error { - u, err := p.valDec(o) - if err != nil { - return err - } - structPointer_Word32Slice(base, p.field).Append(uint32(u)) - return nil -} - -// Decode a slice of int32s ([]int32) in packed format. -func (o *Buffer) dec_slice_packed_int32(p *Properties, base structPointer) error { - v := structPointer_Word32Slice(base, p.field) - - nn, err := o.DecodeVarint() - if err != nil { - return err - } - nb := int(nn) // number of bytes of encoded int32s - - fin := o.index + nb - if fin < o.index { - return errOverflow - } - for o.index < fin { - u, err := p.valDec(o) - if err != nil { - return err - } - v.Append(uint32(u)) - } - return nil -} - -// Decode a slice of int64s ([]int64). -func (o *Buffer) dec_slice_int64(p *Properties, base structPointer) error { - u, err := p.valDec(o) - if err != nil { - return err - } - - structPointer_Word64Slice(base, p.field).Append(u) - return nil -} - -// Decode a slice of int64s ([]int64) in packed format. -func (o *Buffer) dec_slice_packed_int64(p *Properties, base structPointer) error { - v := structPointer_Word64Slice(base, p.field) - - nn, err := o.DecodeVarint() - if err != nil { - return err - } - nb := int(nn) // number of bytes of encoded int64s - - fin := o.index + nb - if fin < o.index { - return errOverflow - } - for o.index < fin { - u, err := p.valDec(o) - if err != nil { - return err - } - v.Append(u) - } - return nil -} - -// Decode a slice of strings ([]string). -func (o *Buffer) dec_slice_string(p *Properties, base structPointer) error { - s, err := o.DecodeStringBytes() - if err != nil { - return err - } - v := structPointer_StringSlice(base, p.field) - *v = append(*v, s) - return nil -} - -// Decode a slice of slice of bytes ([][]byte). -func (o *Buffer) dec_slice_slice_byte(p *Properties, base structPointer) error { - b, err := o.DecodeRawBytes(true) - if err != nil { - return err - } - v := structPointer_BytesSlice(base, p.field) - *v = append(*v, b) - return nil -} - -// Decode a map field. -func (o *Buffer) dec_new_map(p *Properties, base structPointer) error { - raw, err := o.DecodeRawBytes(false) - if err != nil { - return err - } - oi := o.index // index at the end of this map entry - o.index -= len(raw) // move buffer back to start of map entry - - mptr := structPointer_NewAt(base, p.field, p.mtype) // *map[K]V - if mptr.Elem().IsNil() { - mptr.Elem().Set(reflect.MakeMap(mptr.Type().Elem())) - } - v := mptr.Elem() // map[K]V - - // Prepare addressable doubly-indirect placeholders for the key and value types. - // See enc_new_map for why. - keyptr := reflect.New(reflect.PtrTo(p.mtype.Key())).Elem() // addressable *K - keybase := toStructPointer(keyptr.Addr()) // **K - - var valbase structPointer - var valptr reflect.Value - switch p.mtype.Elem().Kind() { - case reflect.Slice: - // []byte - var dummy []byte - valptr = reflect.ValueOf(&dummy) // *[]byte - valbase = toStructPointer(valptr) // *[]byte - case reflect.Ptr: - // message; valptr is **Msg; need to allocate the intermediate pointer - valptr = reflect.New(reflect.PtrTo(p.mtype.Elem())).Elem() // addressable *V - valptr.Set(reflect.New(valptr.Type().Elem())) - valbase = toStructPointer(valptr) - default: - // everything else - valptr = reflect.New(reflect.PtrTo(p.mtype.Elem())).Elem() // addressable *V - valbase = toStructPointer(valptr.Addr()) // **V - } - - // Decode. - // This parses a restricted wire format, namely the encoding of a message - // with two fields. See enc_new_map for the format. - for o.index < oi { - // tagcode for key and value properties are always a single byte - // because they have tags 1 and 2. - tagcode := o.buf[o.index] - o.index++ - switch tagcode { - case p.mkeyprop.tagcode[0]: - if err := p.mkeyprop.dec(o, p.mkeyprop, keybase); err != nil { - return err - } - case p.mvalprop.tagcode[0]: - if err := p.mvalprop.dec(o, p.mvalprop, valbase); err != nil { - return err - } - default: - // TODO: Should we silently skip this instead? - return fmt.Errorf("proto: bad map data tag %d", raw[0]) - } - } - keyelem, valelem := keyptr.Elem(), valptr.Elem() - if !keyelem.IsValid() || !valelem.IsValid() { - // We did not decode the key or the value in the map entry. - // Either way, it's an invalid map entry. - return fmt.Errorf("proto: bad map data: missing key/val") - } - - v.SetMapIndex(keyelem, valelem) - return nil -} - -// Decode a group. -func (o *Buffer) dec_struct_group(p *Properties, base structPointer) error { - bas := structPointer_GetStructPointer(base, p.field) - if structPointer_IsNil(bas) { - // allocate new nested message - bas = toStructPointer(reflect.New(p.stype)) - structPointer_SetStructPointer(base, p.field, bas) - } - return o.unmarshalType(p.stype, p.sprop, true, bas) -} - -// Decode an embedded message. -func (o *Buffer) dec_struct_message(p *Properties, base structPointer) (err error) { - raw, e := o.DecodeRawBytes(false) - if e != nil { - return e - } - - bas := structPointer_GetStructPointer(base, p.field) - if structPointer_IsNil(bas) { - // allocate new nested message - bas = toStructPointer(reflect.New(p.stype)) - structPointer_SetStructPointer(base, p.field, bas) - } - - // If the object can unmarshal itself, let it. - if p.isUnmarshaler { - iv := structPointer_Interface(bas, p.stype) - return iv.(Unmarshaler).Unmarshal(raw) - } - - obuf := o.buf - oi := o.index - o.buf = raw - o.index = 0 - - err = o.unmarshalType(p.stype, p.sprop, false, bas) - o.buf = obuf - o.index = oi - - return err -} - -// Decode a slice of embedded messages. -func (o *Buffer) dec_slice_struct_message(p *Properties, base structPointer) error { - return o.dec_slice_struct(p, false, base) -} - -// Decode a slice of embedded groups. -func (o *Buffer) dec_slice_struct_group(p *Properties, base structPointer) error { - return o.dec_slice_struct(p, true, base) -} - -// Decode a slice of structs ([]*struct). -func (o *Buffer) dec_slice_struct(p *Properties, is_group bool, base structPointer) error { - v := reflect.New(p.stype) - bas := toStructPointer(v) - structPointer_StructPointerSlice(base, p.field).Append(bas) - - if is_group { - err := o.unmarshalType(p.stype, p.sprop, is_group, bas) - return err - } - - raw, err := o.DecodeRawBytes(false) - if err != nil { - return err - } - - // If the object can unmarshal itself, let it. - if p.isUnmarshaler { - iv := v.Interface() - return iv.(Unmarshaler).Unmarshal(raw) - } - - obuf := o.buf - oi := o.index - o.buf = raw - o.index = 0 - - err = o.unmarshalType(p.stype, p.sprop, is_group, bas) - - o.buf = obuf - o.index = oi - - return err -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/decode_gogo.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/decode_gogo.go deleted file mode 100644 index 6a77aad7..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/decode_gogo.go +++ /dev/null @@ -1,175 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package proto - -import ( - "reflect" -) - -// Decode a reference to a struct pointer. -func (o *Buffer) dec_ref_struct_message(p *Properties, base structPointer) (err error) { - raw, e := o.DecodeRawBytes(false) - if e != nil { - return e - } - - // If the object can unmarshal itself, let it. - if p.isUnmarshaler { - panic("not supported, since this is a pointer receiver") - } - - obuf := o.buf - oi := o.index - o.buf = raw - o.index = 0 - - bas := structPointer_FieldPointer(base, p.field) - - err = o.unmarshalType(p.stype, p.sprop, false, bas) - o.buf = obuf - o.index = oi - - return err -} - -// Decode a slice of references to struct pointers ([]struct). -func (o *Buffer) dec_slice_ref_struct(p *Properties, is_group bool, base structPointer) error { - newBas := appendStructPointer(base, p.field, p.sstype) - - if is_group { - panic("not supported, maybe in future, if requested.") - } - - raw, err := o.DecodeRawBytes(false) - if err != nil { - return err - } - - // If the object can unmarshal itself, let it. - if p.isUnmarshaler { - panic("not supported, since this is not a pointer receiver.") - } - - obuf := o.buf - oi := o.index - o.buf = raw - o.index = 0 - - err = o.unmarshalType(p.stype, p.sprop, is_group, newBas) - - o.buf = obuf - o.index = oi - - return err -} - -// Decode a slice of references to struct pointers. -func (o *Buffer) dec_slice_ref_struct_message(p *Properties, base structPointer) error { - return o.dec_slice_ref_struct(p, false, base) -} - -func setPtrCustomType(base structPointer, f field, v interface{}) { - if v == nil { - return - } - structPointer_SetStructPointer(base, f, structPointer(reflect.ValueOf(v).Pointer())) -} - -func setCustomType(base structPointer, f field, value interface{}) { - if value == nil { - return - } - v := reflect.ValueOf(value).Elem() - t := reflect.TypeOf(value).Elem() - kind := t.Kind() - switch kind { - case reflect.Slice: - slice := reflect.MakeSlice(t, v.Len(), v.Cap()) - reflect.Copy(slice, v) - oldHeader := structPointer_GetSliceHeader(base, f) - oldHeader.Data = slice.Pointer() - oldHeader.Len = v.Len() - oldHeader.Cap = v.Cap() - default: - l := 1 - size := reflect.TypeOf(value).Elem().Size() - if kind == reflect.Array { - l = reflect.TypeOf(value).Elem().Len() - size = reflect.TypeOf(value).Size() - } - total := int(size) * l - structPointer_Copy(toStructPointer(reflect.ValueOf(value)), structPointer_Add(base, f), total) - } -} - -func (o *Buffer) dec_custom_bytes(p *Properties, base structPointer) error { - b, err := o.DecodeRawBytes(true) - if err != nil { - return err - } - i := reflect.New(p.ctype.Elem()).Interface() - custom := (i).(Unmarshaler) - if err := custom.Unmarshal(b); err != nil { - return err - } - setPtrCustomType(base, p.field, custom) - return nil -} - -func (o *Buffer) dec_custom_ref_bytes(p *Properties, base structPointer) error { - b, err := o.DecodeRawBytes(true) - if err != nil { - return err - } - i := reflect.New(p.ctype).Interface() - custom := (i).(Unmarshaler) - if err := custom.Unmarshal(b); err != nil { - return err - } - if custom != nil { - setCustomType(base, p.field, custom) - } - return nil -} - -// Decode a slice of bytes ([]byte) into a slice of custom types. -func (o *Buffer) dec_custom_slice_bytes(p *Properties, base structPointer) error { - b, err := o.DecodeRawBytes(true) - if err != nil { - return err - } - i := reflect.New(p.ctype.Elem()).Interface() - custom := (i).(Unmarshaler) - if err := custom.Unmarshal(b); err != nil { - return err - } - newBas := appendStructPointer(base, p.field, p.ctype) - - setCustomType(newBas, 0, custom) - - return nil -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/encode.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/encode.go deleted file mode 100644 index 7321e1aa..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/encode.go +++ /dev/null @@ -1,1335 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto - -/* - * Routines for encoding data into the wire format for protocol buffers. - */ - -import ( - "errors" - "fmt" - "reflect" - "sort" -) - -// RequiredNotSetError is the error returned if Marshal is called with -// a protocol buffer struct whose required fields have not -// all been initialized. It is also the error returned if Unmarshal is -// called with an encoded protocol buffer that does not include all the -// required fields. -// -// When printed, RequiredNotSetError reports the first unset required field in a -// message. If the field cannot be precisely determined, it is reported as -// "{Unknown}". -type RequiredNotSetError struct { - field string -} - -func (e *RequiredNotSetError) Error() string { - return fmt.Sprintf("proto: required field %q not set", e.field) -} - -var ( - // errRepeatedHasNil is the error returned if Marshal is called with - // a struct with a repeated field containing a nil element. - errRepeatedHasNil = errors.New("proto: repeated field has nil element") - - // ErrNil is the error returned if Marshal is called with nil. - ErrNil = errors.New("proto: Marshal called with nil") -) - -// The fundamental encoders that put bytes on the wire. -// Those that take integer types all accept uint64 and are -// therefore of type valueEncoder. - -const maxVarintBytes = 10 // maximum length of a varint - -// EncodeVarint returns the varint encoding of x. -// This is the format for the -// int32, int64, uint32, uint64, bool, and enum -// protocol buffer types. -// Not used by the package itself, but helpful to clients -// wishing to use the same encoding. -func EncodeVarint(x uint64) []byte { - var buf [maxVarintBytes]byte - var n int - for n = 0; x > 127; n++ { - buf[n] = 0x80 | uint8(x&0x7F) - x >>= 7 - } - buf[n] = uint8(x) - n++ - return buf[0:n] -} - -// EncodeVarint writes a varint-encoded integer to the Buffer. -// This is the format for the -// int32, int64, uint32, uint64, bool, and enum -// protocol buffer types. -func (p *Buffer) EncodeVarint(x uint64) error { - for x >= 1<<7 { - p.buf = append(p.buf, uint8(x&0x7f|0x80)) - x >>= 7 - } - p.buf = append(p.buf, uint8(x)) - return nil -} - -func sizeVarint(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} - -// EncodeFixed64 writes a 64-bit integer to the Buffer. -// This is the format for the -// fixed64, sfixed64, and double protocol buffer types. -func (p *Buffer) EncodeFixed64(x uint64) error { - p.buf = append(p.buf, - uint8(x), - uint8(x>>8), - uint8(x>>16), - uint8(x>>24), - uint8(x>>32), - uint8(x>>40), - uint8(x>>48), - uint8(x>>56)) - return nil -} - -func sizeFixed64(x uint64) int { - return 8 -} - -// EncodeFixed32 writes a 32-bit integer to the Buffer. -// This is the format for the -// fixed32, sfixed32, and float protocol buffer types. -func (p *Buffer) EncodeFixed32(x uint64) error { - p.buf = append(p.buf, - uint8(x), - uint8(x>>8), - uint8(x>>16), - uint8(x>>24)) - return nil -} - -func sizeFixed32(x uint64) int { - return 4 -} - -// EncodeZigzag64 writes a zigzag-encoded 64-bit integer -// to the Buffer. -// This is the format used for the sint64 protocol buffer type. -func (p *Buffer) EncodeZigzag64(x uint64) error { - // use signed number to get arithmetic right shift. - return p.EncodeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} - -func sizeZigzag64(x uint64) int { - return sizeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} - -// EncodeZigzag32 writes a zigzag-encoded 32-bit integer -// to the Buffer. -// This is the format used for the sint32 protocol buffer type. -func (p *Buffer) EncodeZigzag32(x uint64) error { - // use signed number to get arithmetic right shift. - return p.EncodeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31)))) -} - -func sizeZigzag32(x uint64) int { - return sizeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31)))) -} - -// EncodeRawBytes writes a count-delimited byte buffer to the Buffer. -// This is the format used for the bytes protocol buffer -// type and for embedded messages. -func (p *Buffer) EncodeRawBytes(b []byte) error { - p.EncodeVarint(uint64(len(b))) - p.buf = append(p.buf, b...) - return nil -} - -func sizeRawBytes(b []byte) int { - return sizeVarint(uint64(len(b))) + - len(b) -} - -// EncodeStringBytes writes an encoded string to the Buffer. -// This is the format used for the proto2 string type. -func (p *Buffer) EncodeStringBytes(s string) error { - p.EncodeVarint(uint64(len(s))) - p.buf = append(p.buf, s...) - return nil -} - -func sizeStringBytes(s string) int { - return sizeVarint(uint64(len(s))) + - len(s) -} - -// Marshaler is the interface representing objects that can marshal themselves. -type Marshaler interface { - Marshal() ([]byte, error) -} - -// Marshal takes the protocol buffer -// and encodes it into the wire format, returning the data. -func Marshal(pb Message) ([]byte, error) { - // Can the object marshal itself? - if m, ok := pb.(Marshaler); ok { - return m.Marshal() - } - p := NewBuffer(nil) - err := p.Marshal(pb) - var state errorState - if err != nil && !state.shouldContinue(err, nil) { - return nil, err - } - if p.buf == nil && err == nil { - // Return a non-nil slice on success. - return []byte{}, nil - } - return p.buf, err -} - -// EncodeMessage writes the protocol buffer to the Buffer, -// prefixed by a varint-encoded length. -func (p *Buffer) EncodeMessage(pb Message) error { - t, base, err := getbase(pb) - if structPointer_IsNil(base) { - return ErrNil - } - if err == nil { - var state errorState - err = p.enc_len_struct(GetProperties(t.Elem()), base, &state) - } - return err -} - -// Marshal takes the protocol buffer -// and encodes it into the wire format, writing the result to the -// Buffer. -func (p *Buffer) Marshal(pb Message) error { - // Can the object marshal itself? - if m, ok := pb.(Marshaler); ok { - data, err := m.Marshal() - if err != nil { - return err - } - p.buf = append(p.buf, data...) - return nil - } - - t, base, err := getbase(pb) - if structPointer_IsNil(base) { - return ErrNil - } - if err == nil { - err = p.enc_struct(GetProperties(t.Elem()), base) - } - - if collectStats { - stats.Encode++ - } - - return err -} - -// Size returns the encoded size of a protocol buffer. -func Size(pb Message) (n int) { - // Can the object marshal itself? If so, Size is slow. - // TODO: add Size to Marshaler, or add a Sizer interface. - if m, ok := pb.(Marshaler); ok { - b, _ := m.Marshal() - return len(b) - } - - t, base, err := getbase(pb) - if structPointer_IsNil(base) { - return 0 - } - if err == nil { - n = size_struct(GetProperties(t.Elem()), base) - } - - if collectStats { - stats.Size++ - } - - return -} - -// Individual type encoders. - -// Encode a bool. -func (o *Buffer) enc_bool(p *Properties, base structPointer) error { - v := *structPointer_Bool(base, p.field) - if v == nil { - return ErrNil - } - x := 0 - if *v { - x = 1 - } - o.buf = append(o.buf, p.tagcode...) - p.valEnc(o, uint64(x)) - return nil -} - -func (o *Buffer) enc_proto3_bool(p *Properties, base structPointer) error { - v := *structPointer_BoolVal(base, p.field) - if !v { - return ErrNil - } - o.buf = append(o.buf, p.tagcode...) - p.valEnc(o, 1) - return nil -} - -func size_bool(p *Properties, base structPointer) int { - v := *structPointer_Bool(base, p.field) - if v == nil { - return 0 - } - return len(p.tagcode) + 1 // each bool takes exactly one byte -} - -func size_proto3_bool(p *Properties, base structPointer) int { - v := *structPointer_BoolVal(base, p.field) - if !v && !p.oneof { - return 0 - } - return len(p.tagcode) + 1 // each bool takes exactly one byte -} - -// Encode an int32. -func (o *Buffer) enc_int32(p *Properties, base structPointer) error { - v := structPointer_Word32(base, p.field) - if word32_IsNil(v) { - return ErrNil - } - x := int32(word32_Get(v)) // permit sign extension to use full 64-bit range - o.buf = append(o.buf, p.tagcode...) - p.valEnc(o, uint64(x)) - return nil -} - -func (o *Buffer) enc_proto3_int32(p *Properties, base structPointer) error { - v := structPointer_Word32Val(base, p.field) - x := int32(word32Val_Get(v)) // permit sign extension to use full 64-bit range - if x == 0 { - return ErrNil - } - o.buf = append(o.buf, p.tagcode...) - p.valEnc(o, uint64(x)) - return nil -} - -func size_int32(p *Properties, base structPointer) (n int) { - v := structPointer_Word32(base, p.field) - if word32_IsNil(v) { - return 0 - } - x := int32(word32_Get(v)) // permit sign extension to use full 64-bit range - n += len(p.tagcode) - n += p.valSize(uint64(x)) - return -} - -func size_proto3_int32(p *Properties, base structPointer) (n int) { - v := structPointer_Word32Val(base, p.field) - x := int32(word32Val_Get(v)) // permit sign extension to use full 64-bit range - if x == 0 && !p.oneof { - return 0 - } - n += len(p.tagcode) - n += p.valSize(uint64(x)) - return -} - -// Encode a uint32. -// Exactly the same as int32, except for no sign extension. -func (o *Buffer) enc_uint32(p *Properties, base structPointer) error { - v := structPointer_Word32(base, p.field) - if word32_IsNil(v) { - return ErrNil - } - x := word32_Get(v) - o.buf = append(o.buf, p.tagcode...) - p.valEnc(o, uint64(x)) - return nil -} - -func (o *Buffer) enc_proto3_uint32(p *Properties, base structPointer) error { - v := structPointer_Word32Val(base, p.field) - x := word32Val_Get(v) - if x == 0 { - return ErrNil - } - o.buf = append(o.buf, p.tagcode...) - p.valEnc(o, uint64(x)) - return nil -} - -func size_uint32(p *Properties, base structPointer) (n int) { - v := structPointer_Word32(base, p.field) - if word32_IsNil(v) { - return 0 - } - x := word32_Get(v) - n += len(p.tagcode) - n += p.valSize(uint64(x)) - return -} - -func size_proto3_uint32(p *Properties, base structPointer) (n int) { - v := structPointer_Word32Val(base, p.field) - x := word32Val_Get(v) - if x == 0 && !p.oneof { - return 0 - } - n += len(p.tagcode) - n += p.valSize(uint64(x)) - return -} - -// Encode an int64. -func (o *Buffer) enc_int64(p *Properties, base structPointer) error { - v := structPointer_Word64(base, p.field) - if word64_IsNil(v) { - return ErrNil - } - x := word64_Get(v) - o.buf = append(o.buf, p.tagcode...) - p.valEnc(o, x) - return nil -} - -func (o *Buffer) enc_proto3_int64(p *Properties, base structPointer) error { - v := structPointer_Word64Val(base, p.field) - x := word64Val_Get(v) - if x == 0 { - return ErrNil - } - o.buf = append(o.buf, p.tagcode...) - p.valEnc(o, x) - return nil -} - -func size_int64(p *Properties, base structPointer) (n int) { - v := structPointer_Word64(base, p.field) - if word64_IsNil(v) { - return 0 - } - x := word64_Get(v) - n += len(p.tagcode) - n += p.valSize(x) - return -} - -func size_proto3_int64(p *Properties, base structPointer) (n int) { - v := structPointer_Word64Val(base, p.field) - x := word64Val_Get(v) - if x == 0 && !p.oneof { - return 0 - } - n += len(p.tagcode) - n += p.valSize(x) - return -} - -// Encode a string. -func (o *Buffer) enc_string(p *Properties, base structPointer) error { - v := *structPointer_String(base, p.field) - if v == nil { - return ErrNil - } - x := *v - o.buf = append(o.buf, p.tagcode...) - o.EncodeStringBytes(x) - return nil -} - -func (o *Buffer) enc_proto3_string(p *Properties, base structPointer) error { - v := *structPointer_StringVal(base, p.field) - if v == "" { - return ErrNil - } - o.buf = append(o.buf, p.tagcode...) - o.EncodeStringBytes(v) - return nil -} - -func size_string(p *Properties, base structPointer) (n int) { - v := *structPointer_String(base, p.field) - if v == nil { - return 0 - } - x := *v - n += len(p.tagcode) - n += sizeStringBytes(x) - return -} - -func size_proto3_string(p *Properties, base structPointer) (n int) { - v := *structPointer_StringVal(base, p.field) - if v == "" && !p.oneof { - return 0 - } - n += len(p.tagcode) - n += sizeStringBytes(v) - return -} - -// All protocol buffer fields are nillable, but be careful. -func isNil(v reflect.Value) bool { - switch v.Kind() { - case reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: - return v.IsNil() - } - return false -} - -// Encode a message struct. -func (o *Buffer) enc_struct_message(p *Properties, base structPointer) error { - var state errorState - structp := structPointer_GetStructPointer(base, p.field) - if structPointer_IsNil(structp) { - return ErrNil - } - - // Can the object marshal itself? - if p.isMarshaler { - m := structPointer_Interface(structp, p.stype).(Marshaler) - data, err := m.Marshal() - if err != nil && !state.shouldContinue(err, nil) { - return err - } - o.buf = append(o.buf, p.tagcode...) - o.EncodeRawBytes(data) - return state.err - } - - o.buf = append(o.buf, p.tagcode...) - return o.enc_len_struct(p.sprop, structp, &state) -} - -func size_struct_message(p *Properties, base structPointer) int { - structp := structPointer_GetStructPointer(base, p.field) - if structPointer_IsNil(structp) { - return 0 - } - - // Can the object marshal itself? - if p.isMarshaler { - m := structPointer_Interface(structp, p.stype).(Marshaler) - data, _ := m.Marshal() - n0 := len(p.tagcode) - n1 := sizeRawBytes(data) - return n0 + n1 - } - - n0 := len(p.tagcode) - n1 := size_struct(p.sprop, structp) - n2 := sizeVarint(uint64(n1)) // size of encoded length - return n0 + n1 + n2 -} - -// Encode a group struct. -func (o *Buffer) enc_struct_group(p *Properties, base structPointer) error { - var state errorState - b := structPointer_GetStructPointer(base, p.field) - if structPointer_IsNil(b) { - return ErrNil - } - - o.EncodeVarint(uint64((p.Tag << 3) | WireStartGroup)) - err := o.enc_struct(p.sprop, b) - if err != nil && !state.shouldContinue(err, nil) { - return err - } - o.EncodeVarint(uint64((p.Tag << 3) | WireEndGroup)) - return state.err -} - -func size_struct_group(p *Properties, base structPointer) (n int) { - b := structPointer_GetStructPointer(base, p.field) - if structPointer_IsNil(b) { - return 0 - } - - n += sizeVarint(uint64((p.Tag << 3) | WireStartGroup)) - n += size_struct(p.sprop, b) - n += sizeVarint(uint64((p.Tag << 3) | WireEndGroup)) - return -} - -// Encode a slice of bools ([]bool). -func (o *Buffer) enc_slice_bool(p *Properties, base structPointer) error { - s := *structPointer_BoolSlice(base, p.field) - l := len(s) - if l == 0 { - return ErrNil - } - for _, x := range s { - o.buf = append(o.buf, p.tagcode...) - v := uint64(0) - if x { - v = 1 - } - p.valEnc(o, v) - } - return nil -} - -func size_slice_bool(p *Properties, base structPointer) int { - s := *structPointer_BoolSlice(base, p.field) - l := len(s) - if l == 0 { - return 0 - } - return l * (len(p.tagcode) + 1) // each bool takes exactly one byte -} - -// Encode a slice of bools ([]bool) in packed format. -func (o *Buffer) enc_slice_packed_bool(p *Properties, base structPointer) error { - s := *structPointer_BoolSlice(base, p.field) - l := len(s) - if l == 0 { - return ErrNil - } - o.buf = append(o.buf, p.tagcode...) - o.EncodeVarint(uint64(l)) // each bool takes exactly one byte - for _, x := range s { - v := uint64(0) - if x { - v = 1 - } - p.valEnc(o, v) - } - return nil -} - -func size_slice_packed_bool(p *Properties, base structPointer) (n int) { - s := *structPointer_BoolSlice(base, p.field) - l := len(s) - if l == 0 { - return 0 - } - n += len(p.tagcode) - n += sizeVarint(uint64(l)) - n += l // each bool takes exactly one byte - return -} - -// Encode a slice of bytes ([]byte). -func (o *Buffer) enc_slice_byte(p *Properties, base structPointer) error { - s := *structPointer_Bytes(base, p.field) - if s == nil { - return ErrNil - } - o.buf = append(o.buf, p.tagcode...) - o.EncodeRawBytes(s) - return nil -} - -func (o *Buffer) enc_proto3_slice_byte(p *Properties, base structPointer) error { - s := *structPointer_Bytes(base, p.field) - if len(s) == 0 { - return ErrNil - } - o.buf = append(o.buf, p.tagcode...) - o.EncodeRawBytes(s) - return nil -} - -func size_slice_byte(p *Properties, base structPointer) (n int) { - s := *structPointer_Bytes(base, p.field) - if s == nil && !p.oneof { - return 0 - } - n += len(p.tagcode) - n += sizeRawBytes(s) - return -} - -func size_proto3_slice_byte(p *Properties, base structPointer) (n int) { - s := *structPointer_Bytes(base, p.field) - if len(s) == 0 && !p.oneof { - return 0 - } - n += len(p.tagcode) - n += sizeRawBytes(s) - return -} - -// Encode a slice of int32s ([]int32). -func (o *Buffer) enc_slice_int32(p *Properties, base structPointer) error { - s := structPointer_Word32Slice(base, p.field) - l := s.Len() - if l == 0 { - return ErrNil - } - for i := 0; i < l; i++ { - o.buf = append(o.buf, p.tagcode...) - x := int32(s.Index(i)) // permit sign extension to use full 64-bit range - p.valEnc(o, uint64(x)) - } - return nil -} - -func size_slice_int32(p *Properties, base structPointer) (n int) { - s := structPointer_Word32Slice(base, p.field) - l := s.Len() - if l == 0 { - return 0 - } - for i := 0; i < l; i++ { - n += len(p.tagcode) - x := int32(s.Index(i)) // permit sign extension to use full 64-bit range - n += p.valSize(uint64(x)) - } - return -} - -// Encode a slice of int32s ([]int32) in packed format. -func (o *Buffer) enc_slice_packed_int32(p *Properties, base structPointer) error { - s := structPointer_Word32Slice(base, p.field) - l := s.Len() - if l == 0 { - return ErrNil - } - // TODO: Reuse a Buffer. - buf := NewBuffer(nil) - for i := 0; i < l; i++ { - x := int32(s.Index(i)) // permit sign extension to use full 64-bit range - p.valEnc(buf, uint64(x)) - } - - o.buf = append(o.buf, p.tagcode...) - o.EncodeVarint(uint64(len(buf.buf))) - o.buf = append(o.buf, buf.buf...) - return nil -} - -func size_slice_packed_int32(p *Properties, base structPointer) (n int) { - s := structPointer_Word32Slice(base, p.field) - l := s.Len() - if l == 0 { - return 0 - } - var bufSize int - for i := 0; i < l; i++ { - x := int32(s.Index(i)) // permit sign extension to use full 64-bit range - bufSize += p.valSize(uint64(x)) - } - - n += len(p.tagcode) - n += sizeVarint(uint64(bufSize)) - n += bufSize - return -} - -// Encode a slice of uint32s ([]uint32). -// Exactly the same as int32, except for no sign extension. -func (o *Buffer) enc_slice_uint32(p *Properties, base structPointer) error { - s := structPointer_Word32Slice(base, p.field) - l := s.Len() - if l == 0 { - return ErrNil - } - for i := 0; i < l; i++ { - o.buf = append(o.buf, p.tagcode...) - x := s.Index(i) - p.valEnc(o, uint64(x)) - } - return nil -} - -func size_slice_uint32(p *Properties, base structPointer) (n int) { - s := structPointer_Word32Slice(base, p.field) - l := s.Len() - if l == 0 { - return 0 - } - for i := 0; i < l; i++ { - n += len(p.tagcode) - x := s.Index(i) - n += p.valSize(uint64(x)) - } - return -} - -// Encode a slice of uint32s ([]uint32) in packed format. -// Exactly the same as int32, except for no sign extension. -func (o *Buffer) enc_slice_packed_uint32(p *Properties, base structPointer) error { - s := structPointer_Word32Slice(base, p.field) - l := s.Len() - if l == 0 { - return ErrNil - } - // TODO: Reuse a Buffer. - buf := NewBuffer(nil) - for i := 0; i < l; i++ { - p.valEnc(buf, uint64(s.Index(i))) - } - - o.buf = append(o.buf, p.tagcode...) - o.EncodeVarint(uint64(len(buf.buf))) - o.buf = append(o.buf, buf.buf...) - return nil -} - -func size_slice_packed_uint32(p *Properties, base structPointer) (n int) { - s := structPointer_Word32Slice(base, p.field) - l := s.Len() - if l == 0 { - return 0 - } - var bufSize int - for i := 0; i < l; i++ { - bufSize += p.valSize(uint64(s.Index(i))) - } - - n += len(p.tagcode) - n += sizeVarint(uint64(bufSize)) - n += bufSize - return -} - -// Encode a slice of int64s ([]int64). -func (o *Buffer) enc_slice_int64(p *Properties, base structPointer) error { - s := structPointer_Word64Slice(base, p.field) - l := s.Len() - if l == 0 { - return ErrNil - } - for i := 0; i < l; i++ { - o.buf = append(o.buf, p.tagcode...) - p.valEnc(o, s.Index(i)) - } - return nil -} - -func size_slice_int64(p *Properties, base structPointer) (n int) { - s := structPointer_Word64Slice(base, p.field) - l := s.Len() - if l == 0 { - return 0 - } - for i := 0; i < l; i++ { - n += len(p.tagcode) - n += p.valSize(s.Index(i)) - } - return -} - -// Encode a slice of int64s ([]int64) in packed format. -func (o *Buffer) enc_slice_packed_int64(p *Properties, base structPointer) error { - s := structPointer_Word64Slice(base, p.field) - l := s.Len() - if l == 0 { - return ErrNil - } - // TODO: Reuse a Buffer. - buf := NewBuffer(nil) - for i := 0; i < l; i++ { - p.valEnc(buf, s.Index(i)) - } - - o.buf = append(o.buf, p.tagcode...) - o.EncodeVarint(uint64(len(buf.buf))) - o.buf = append(o.buf, buf.buf...) - return nil -} - -func size_slice_packed_int64(p *Properties, base structPointer) (n int) { - s := structPointer_Word64Slice(base, p.field) - l := s.Len() - if l == 0 { - return 0 - } - var bufSize int - for i := 0; i < l; i++ { - bufSize += p.valSize(s.Index(i)) - } - - n += len(p.tagcode) - n += sizeVarint(uint64(bufSize)) - n += bufSize - return -} - -// Encode a slice of slice of bytes ([][]byte). -func (o *Buffer) enc_slice_slice_byte(p *Properties, base structPointer) error { - ss := *structPointer_BytesSlice(base, p.field) - l := len(ss) - if l == 0 { - return ErrNil - } - for i := 0; i < l; i++ { - o.buf = append(o.buf, p.tagcode...) - o.EncodeRawBytes(ss[i]) - } - return nil -} - -func size_slice_slice_byte(p *Properties, base structPointer) (n int) { - ss := *structPointer_BytesSlice(base, p.field) - l := len(ss) - if l == 0 { - return 0 - } - n += l * len(p.tagcode) - for i := 0; i < l; i++ { - n += sizeRawBytes(ss[i]) - } - return -} - -// Encode a slice of strings ([]string). -func (o *Buffer) enc_slice_string(p *Properties, base structPointer) error { - ss := *structPointer_StringSlice(base, p.field) - l := len(ss) - for i := 0; i < l; i++ { - o.buf = append(o.buf, p.tagcode...) - o.EncodeStringBytes(ss[i]) - } - return nil -} - -func size_slice_string(p *Properties, base structPointer) (n int) { - ss := *structPointer_StringSlice(base, p.field) - l := len(ss) - n += l * len(p.tagcode) - for i := 0; i < l; i++ { - n += sizeStringBytes(ss[i]) - } - return -} - -// Encode a slice of message structs ([]*struct). -func (o *Buffer) enc_slice_struct_message(p *Properties, base structPointer) error { - var state errorState - s := structPointer_StructPointerSlice(base, p.field) - l := s.Len() - - for i := 0; i < l; i++ { - structp := s.Index(i) - if structPointer_IsNil(structp) { - return errRepeatedHasNil - } - - // Can the object marshal itself? - if p.isMarshaler { - m := structPointer_Interface(structp, p.stype).(Marshaler) - data, err := m.Marshal() - if err != nil && !state.shouldContinue(err, nil) { - return err - } - o.buf = append(o.buf, p.tagcode...) - o.EncodeRawBytes(data) - continue - } - - o.buf = append(o.buf, p.tagcode...) - err := o.enc_len_struct(p.sprop, structp, &state) - if err != nil && !state.shouldContinue(err, nil) { - if err == ErrNil { - return errRepeatedHasNil - } - return err - } - } - return state.err -} - -func size_slice_struct_message(p *Properties, base structPointer) (n int) { - s := structPointer_StructPointerSlice(base, p.field) - l := s.Len() - n += l * len(p.tagcode) - for i := 0; i < l; i++ { - structp := s.Index(i) - if structPointer_IsNil(structp) { - return // return the size up to this point - } - - // Can the object marshal itself? - if p.isMarshaler { - m := structPointer_Interface(structp, p.stype).(Marshaler) - data, _ := m.Marshal() - n += len(p.tagcode) - n += sizeRawBytes(data) - continue - } - - n0 := size_struct(p.sprop, structp) - n1 := sizeVarint(uint64(n0)) // size of encoded length - n += n0 + n1 - } - return -} - -// Encode a slice of group structs ([]*struct). -func (o *Buffer) enc_slice_struct_group(p *Properties, base structPointer) error { - var state errorState - s := structPointer_StructPointerSlice(base, p.field) - l := s.Len() - - for i := 0; i < l; i++ { - b := s.Index(i) - if structPointer_IsNil(b) { - return errRepeatedHasNil - } - - o.EncodeVarint(uint64((p.Tag << 3) | WireStartGroup)) - - err := o.enc_struct(p.sprop, b) - - if err != nil && !state.shouldContinue(err, nil) { - if err == ErrNil { - return errRepeatedHasNil - } - return err - } - - o.EncodeVarint(uint64((p.Tag << 3) | WireEndGroup)) - } - return state.err -} - -func size_slice_struct_group(p *Properties, base structPointer) (n int) { - s := structPointer_StructPointerSlice(base, p.field) - l := s.Len() - - n += l * sizeVarint(uint64((p.Tag<<3)|WireStartGroup)) - n += l * sizeVarint(uint64((p.Tag<<3)|WireEndGroup)) - for i := 0; i < l; i++ { - b := s.Index(i) - if structPointer_IsNil(b) { - return // return size up to this point - } - - n += size_struct(p.sprop, b) - } - return -} - -// Encode an extension map. -func (o *Buffer) enc_map(p *Properties, base structPointer) error { - v := *structPointer_ExtMap(base, p.field) - if err := encodeExtensionMap(v); err != nil { - return err - } - // Fast-path for common cases: zero or one extensions. - if len(v) <= 1 { - for _, e := range v { - o.buf = append(o.buf, e.enc...) - } - return nil - } - - // Sort keys to provide a deterministic encoding. - keys := make([]int, 0, len(v)) - for k := range v { - keys = append(keys, int(k)) - } - sort.Ints(keys) - - for _, k := range keys { - o.buf = append(o.buf, v[int32(k)].enc...) - } - return nil -} - -func size_map(p *Properties, base structPointer) int { - v := *structPointer_ExtMap(base, p.field) - return sizeExtensionMap(v) -} - -// Encode a map field. -func (o *Buffer) enc_new_map(p *Properties, base structPointer) error { - var state errorState // XXX: or do we need to plumb this through? - - /* - A map defined as - map map_field = N; - is encoded in the same way as - message MapFieldEntry { - key_type key = 1; - value_type value = 2; - } - repeated MapFieldEntry map_field = N; - */ - - v := structPointer_NewAt(base, p.field, p.mtype).Elem() // map[K]V - if v.Len() == 0 { - return nil - } - - keycopy, valcopy, keybase, valbase := mapEncodeScratch(p.mtype) - - enc := func() error { - if err := p.mkeyprop.enc(o, p.mkeyprop, keybase); err != nil { - return err - } - if err := p.mvalprop.enc(o, p.mvalprop, valbase); err != nil { - return err - } - return nil - } - - // Don't sort map keys. It is not required by the spec, and C++ doesn't do it. - for _, key := range v.MapKeys() { - val := v.MapIndex(key) - - // The only illegal map entry values are nil message pointers. - if val.Kind() == reflect.Ptr && val.IsNil() { - return errors.New("proto: map has nil element") - } - - keycopy.Set(key) - valcopy.Set(val) - - o.buf = append(o.buf, p.tagcode...) - if err := o.enc_len_thing(enc, &state); err != nil { - return err - } - } - return nil -} - -func size_new_map(p *Properties, base structPointer) int { - v := structPointer_NewAt(base, p.field, p.mtype).Elem() // map[K]V - - keycopy, valcopy, keybase, valbase := mapEncodeScratch(p.mtype) - - n := 0 - for _, key := range v.MapKeys() { - val := v.MapIndex(key) - keycopy.Set(key) - valcopy.Set(val) - - // Tag codes for key and val are the responsibility of the sub-sizer. - keysize := p.mkeyprop.size(p.mkeyprop, keybase) - valsize := p.mvalprop.size(p.mvalprop, valbase) - entry := keysize + valsize - // Add on tag code and length of map entry itself. - n += len(p.tagcode) + sizeVarint(uint64(entry)) + entry - } - return n -} - -// mapEncodeScratch returns a new reflect.Value matching the map's value type, -// and a structPointer suitable for passing to an encoder or sizer. -func mapEncodeScratch(mapType reflect.Type) (keycopy, valcopy reflect.Value, keybase, valbase structPointer) { - // Prepare addressable doubly-indirect placeholders for the key and value types. - // This is needed because the element-type encoders expect **T, but the map iteration produces T. - - keycopy = reflect.New(mapType.Key()).Elem() // addressable K - keyptr := reflect.New(reflect.PtrTo(keycopy.Type())).Elem() // addressable *K - keyptr.Set(keycopy.Addr()) // - keybase = toStructPointer(keyptr.Addr()) // **K - - // Value types are more varied and require special handling. - switch mapType.Elem().Kind() { - case reflect.Slice: - // []byte - var dummy []byte - valcopy = reflect.ValueOf(&dummy).Elem() // addressable []byte - valbase = toStructPointer(valcopy.Addr()) - case reflect.Ptr: - // message; the generated field type is map[K]*Msg (so V is *Msg), - // so we only need one level of indirection. - valcopy = reflect.New(mapType.Elem()).Elem() // addressable V - valbase = toStructPointer(valcopy.Addr()) - default: - // everything else - valcopy = reflect.New(mapType.Elem()).Elem() // addressable V - valptr := reflect.New(reflect.PtrTo(valcopy.Type())).Elem() // addressable *V - valptr.Set(valcopy.Addr()) // - valbase = toStructPointer(valptr.Addr()) // **V - } - return -} - -// Encode a struct. -func (o *Buffer) enc_struct(prop *StructProperties, base structPointer) error { - var state errorState - // Encode fields in tag order so that decoders may use optimizations - // that depend on the ordering. - // https://developers.google.com/protocol-buffers/docs/encoding#order - for _, i := range prop.order { - p := prop.Prop[i] - if p.enc != nil { - err := p.enc(o, p, base) - if err != nil { - if err == ErrNil { - if p.Required && state.err == nil { - state.err = &RequiredNotSetError{p.Name} - } - } else if err == errRepeatedHasNil { - // Give more context to nil values in repeated fields. - return errors.New("repeated field " + p.OrigName + " has nil element") - } else if !state.shouldContinue(err, p) { - return err - } - } - } - } - - // Do oneof fields. - if prop.oneofMarshaler != nil { - m := structPointer_Interface(base, prop.stype).(Message) - if err := prop.oneofMarshaler(m, o); err != nil { - return err - } - } - - // Add unrecognized fields at the end. - if prop.unrecField.IsValid() { - v := *structPointer_Bytes(base, prop.unrecField) - if len(v) > 0 { - o.buf = append(o.buf, v...) - } - } - - return state.err -} - -func size_struct(prop *StructProperties, base structPointer) (n int) { - for _, i := range prop.order { - p := prop.Prop[i] - if p.size != nil { - n += p.size(p, base) - } - } - - // Add unrecognized fields at the end. - if prop.unrecField.IsValid() { - v := *structPointer_Bytes(base, prop.unrecField) - n += len(v) - } - - // Factor in any oneof fields. - // TODO: This could be faster and use less reflection. - if prop.oneofMarshaler != nil { - sv := reflect.ValueOf(structPointer_Interface(base, prop.stype)).Elem() - for i := 0; i < prop.stype.NumField(); i++ { - fv := sv.Field(i) - if fv.Kind() != reflect.Interface || fv.IsNil() { - continue - } - if prop.stype.Field(i).Tag.Get("protobuf_oneof") == "" { - continue - } - spv := fv.Elem() // interface -> *T - sv := spv.Elem() // *T -> T - sf := sv.Type().Field(0) // StructField inside T - var prop Properties - prop.Init(sf.Type, "whatever", sf.Tag.Get("protobuf"), &sf) - n += prop.size(&prop, toStructPointer(spv)) - } - } - - return -} - -var zeroes [20]byte // longer than any conceivable sizeVarint - -// Encode a struct, preceded by its encoded length (as a varint). -func (o *Buffer) enc_len_struct(prop *StructProperties, base structPointer, state *errorState) error { - return o.enc_len_thing(func() error { return o.enc_struct(prop, base) }, state) -} - -// Encode something, preceded by its encoded length (as a varint). -func (o *Buffer) enc_len_thing(enc func() error, state *errorState) error { - iLen := len(o.buf) - o.buf = append(o.buf, 0, 0, 0, 0) // reserve four bytes for length - iMsg := len(o.buf) - err := enc() - if err != nil && !state.shouldContinue(err, nil) { - return err - } - lMsg := len(o.buf) - iMsg - lLen := sizeVarint(uint64(lMsg)) - switch x := lLen - (iMsg - iLen); { - case x > 0: // actual length is x bytes larger than the space we reserved - // Move msg x bytes right. - o.buf = append(o.buf, zeroes[:x]...) - copy(o.buf[iMsg+x:], o.buf[iMsg:iMsg+lMsg]) - case x < 0: // actual length is x bytes smaller than the space we reserved - // Move msg x bytes left. - copy(o.buf[iMsg+x:], o.buf[iMsg:iMsg+lMsg]) - o.buf = o.buf[:len(o.buf)+x] // x is negative - } - // Encode the length in the reserved space. - o.buf = o.buf[:iLen] - o.EncodeVarint(uint64(lMsg)) - o.buf = o.buf[:len(o.buf)+lMsg] - return state.err -} - -// errorState maintains the first error that occurs and updates that error -// with additional context. -type errorState struct { - err error -} - -// shouldContinue reports whether encoding should continue upon encountering the -// given error. If the error is RequiredNotSetError, shouldContinue returns true -// and, if this is the first appearance of that error, remembers it for future -// reporting. -// -// If prop is not nil, it may update any error with additional context about the -// field with the error. -func (s *errorState) shouldContinue(err error, prop *Properties) bool { - // Ignore unset required fields. - reqNotSet, ok := err.(*RequiredNotSetError) - if !ok { - return false - } - if s.err == nil { - if prop != nil { - err = &RequiredNotSetError{prop.Name + "." + reqNotSet.field} - } - s.err = err - } - return true -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/encode_gogo.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/encode_gogo.go deleted file mode 100644 index f77cfb1e..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/encode_gogo.go +++ /dev/null @@ -1,354 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// http://github.com/golang/protobuf/ -// -// 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. - -package proto - -import ( - "reflect" -) - -func NewRequiredNotSetError(field string) *RequiredNotSetError { - return &RequiredNotSetError{field} -} - -type Sizer interface { - Size() int -} - -func (o *Buffer) enc_ext_slice_byte(p *Properties, base structPointer) error { - s := *structPointer_Bytes(base, p.field) - if s == nil { - return ErrNil - } - o.buf = append(o.buf, s...) - return nil -} - -func size_ext_slice_byte(p *Properties, base structPointer) (n int) { - s := *structPointer_Bytes(base, p.field) - if s == nil { - return 0 - } - n += len(s) - return -} - -// Encode a reference to bool pointer. -func (o *Buffer) enc_ref_bool(p *Properties, base structPointer) error { - v := *structPointer_BoolVal(base, p.field) - x := 0 - if v { - x = 1 - } - o.buf = append(o.buf, p.tagcode...) - p.valEnc(o, uint64(x)) - return nil -} - -func size_ref_bool(p *Properties, base structPointer) int { - return len(p.tagcode) + 1 // each bool takes exactly one byte -} - -// Encode a reference to int32 pointer. -func (o *Buffer) enc_ref_int32(p *Properties, base structPointer) error { - v := structPointer_Word32Val(base, p.field) - x := int32(word32Val_Get(v)) - o.buf = append(o.buf, p.tagcode...) - p.valEnc(o, uint64(x)) - return nil -} - -func size_ref_int32(p *Properties, base structPointer) (n int) { - v := structPointer_Word32Val(base, p.field) - x := int32(word32Val_Get(v)) - n += len(p.tagcode) - n += p.valSize(uint64(x)) - return -} - -func (o *Buffer) enc_ref_uint32(p *Properties, base structPointer) error { - v := structPointer_Word32Val(base, p.field) - x := word32Val_Get(v) - o.buf = append(o.buf, p.tagcode...) - p.valEnc(o, uint64(x)) - return nil -} - -func size_ref_uint32(p *Properties, base structPointer) (n int) { - v := structPointer_Word32Val(base, p.field) - x := word32Val_Get(v) - n += len(p.tagcode) - n += p.valSize(uint64(x)) - return -} - -// Encode a reference to an int64 pointer. -func (o *Buffer) enc_ref_int64(p *Properties, base structPointer) error { - v := structPointer_Word64Val(base, p.field) - x := word64Val_Get(v) - o.buf = append(o.buf, p.tagcode...) - p.valEnc(o, x) - return nil -} - -func size_ref_int64(p *Properties, base structPointer) (n int) { - v := structPointer_Word64Val(base, p.field) - x := word64Val_Get(v) - n += len(p.tagcode) - n += p.valSize(x) - return -} - -// Encode a reference to a string pointer. -func (o *Buffer) enc_ref_string(p *Properties, base structPointer) error { - v := *structPointer_StringVal(base, p.field) - o.buf = append(o.buf, p.tagcode...) - o.EncodeStringBytes(v) - return nil -} - -func size_ref_string(p *Properties, base structPointer) (n int) { - v := *structPointer_StringVal(base, p.field) - n += len(p.tagcode) - n += sizeStringBytes(v) - return -} - -// Encode a reference to a message struct. -func (o *Buffer) enc_ref_struct_message(p *Properties, base structPointer) error { - var state errorState - structp := structPointer_GetRefStructPointer(base, p.field) - if structPointer_IsNil(structp) { - return ErrNil - } - - // Can the object marshal itself? - if p.isMarshaler { - m := structPointer_Interface(structp, p.stype).(Marshaler) - data, err := m.Marshal() - if err != nil && !state.shouldContinue(err, nil) { - return err - } - o.buf = append(o.buf, p.tagcode...) - o.EncodeRawBytes(data) - return nil - } - - o.buf = append(o.buf, p.tagcode...) - return o.enc_len_struct(p.sprop, structp, &state) -} - -//TODO this is only copied, please fix this -func size_ref_struct_message(p *Properties, base structPointer) int { - structp := structPointer_GetRefStructPointer(base, p.field) - if structPointer_IsNil(structp) { - return 0 - } - - // Can the object marshal itself? - if p.isMarshaler { - m := structPointer_Interface(structp, p.stype).(Marshaler) - data, _ := m.Marshal() - n0 := len(p.tagcode) - n1 := sizeRawBytes(data) - return n0 + n1 - } - - n0 := len(p.tagcode) - n1 := size_struct(p.sprop, structp) - n2 := sizeVarint(uint64(n1)) // size of encoded length - return n0 + n1 + n2 -} - -// Encode a slice of references to message struct pointers ([]struct). -func (o *Buffer) enc_slice_ref_struct_message(p *Properties, base structPointer) error { - var state errorState - ss := structPointer_GetStructPointer(base, p.field) - ss1 := structPointer_GetRefStructPointer(ss, field(0)) - size := p.stype.Size() - l := structPointer_Len(base, p.field) - for i := 0; i < l; i++ { - structp := structPointer_Add(ss1, field(uintptr(i)*size)) - if structPointer_IsNil(structp) { - return errRepeatedHasNil - } - - // Can the object marshal itself? - if p.isMarshaler { - m := structPointer_Interface(structp, p.stype).(Marshaler) - data, err := m.Marshal() - if err != nil && !state.shouldContinue(err, nil) { - return err - } - o.buf = append(o.buf, p.tagcode...) - o.EncodeRawBytes(data) - continue - } - - o.buf = append(o.buf, p.tagcode...) - err := o.enc_len_struct(p.sprop, structp, &state) - if err != nil && !state.shouldContinue(err, nil) { - if err == ErrNil { - return errRepeatedHasNil - } - return err - } - - } - return state.err -} - -//TODO this is only copied, please fix this -func size_slice_ref_struct_message(p *Properties, base structPointer) (n int) { - ss := structPointer_GetStructPointer(base, p.field) - ss1 := structPointer_GetRefStructPointer(ss, field(0)) - size := p.stype.Size() - l := structPointer_Len(base, p.field) - n += l * len(p.tagcode) - for i := 0; i < l; i++ { - structp := structPointer_Add(ss1, field(uintptr(i)*size)) - if structPointer_IsNil(structp) { - return // return the size up to this point - } - - // Can the object marshal itself? - if p.isMarshaler { - m := structPointer_Interface(structp, p.stype).(Marshaler) - data, _ := m.Marshal() - n += len(p.tagcode) - n += sizeRawBytes(data) - continue - } - - n0 := size_struct(p.sprop, structp) - n1 := sizeVarint(uint64(n0)) // size of encoded length - n += n0 + n1 - } - return -} - -func (o *Buffer) enc_custom_bytes(p *Properties, base structPointer) error { - i := structPointer_InterfaceRef(base, p.field, p.ctype) - if i == nil { - return ErrNil - } - custom := i.(Marshaler) - data, err := custom.Marshal() - if err != nil { - return err - } - if data == nil { - return ErrNil - } - o.buf = append(o.buf, p.tagcode...) - o.EncodeRawBytes(data) - return nil -} - -func size_custom_bytes(p *Properties, base structPointer) (n int) { - n += len(p.tagcode) - i := structPointer_InterfaceRef(base, p.field, p.ctype) - if i == nil { - return 0 - } - custom := i.(Marshaler) - data, _ := custom.Marshal() - n += sizeRawBytes(data) - return -} - -func (o *Buffer) enc_custom_ref_bytes(p *Properties, base structPointer) error { - custom := structPointer_InterfaceAt(base, p.field, p.ctype).(Marshaler) - data, err := custom.Marshal() - if err != nil { - return err - } - if data == nil { - return ErrNil - } - o.buf = append(o.buf, p.tagcode...) - o.EncodeRawBytes(data) - return nil -} - -func size_custom_ref_bytes(p *Properties, base structPointer) (n int) { - n += len(p.tagcode) - i := structPointer_InterfaceAt(base, p.field, p.ctype) - if i == nil { - return 0 - } - custom := i.(Marshaler) - data, _ := custom.Marshal() - n += sizeRawBytes(data) - return -} - -func (o *Buffer) enc_custom_slice_bytes(p *Properties, base structPointer) error { - inter := structPointer_InterfaceRef(base, p.field, p.ctype) - if inter == nil { - return ErrNil - } - slice := reflect.ValueOf(inter) - l := slice.Len() - for i := 0; i < l; i++ { - v := slice.Index(i) - custom := v.Interface().(Marshaler) - data, err := custom.Marshal() - if err != nil { - return err - } - o.buf = append(o.buf, p.tagcode...) - o.EncodeRawBytes(data) - } - return nil -} - -func size_custom_slice_bytes(p *Properties, base structPointer) (n int) { - inter := structPointer_InterfaceRef(base, p.field, p.ctype) - if inter == nil { - return 0 - } - slice := reflect.ValueOf(inter) - l := slice.Len() - n += l * len(p.tagcode) - for i := 0; i < l; i++ { - v := slice.Index(i) - custom := v.Interface().(Marshaler) - data, _ := custom.Marshal() - n += sizeRawBytes(data) - } - return -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/equal.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/equal.go deleted file mode 100644 index cc3f2c95..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/equal.go +++ /dev/null @@ -1,266 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2011 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -// Protocol buffer comparison. - -package proto - -import ( - "bytes" - "log" - "reflect" - "strings" -) - -/* -Equal returns true iff protocol buffers a and b are equal. -The arguments must both be pointers to protocol buffer structs. - -Equality is defined in this way: - - Two messages are equal iff they are the same type, - corresponding fields are equal, unknown field sets - are equal, and extensions sets are equal. - - Two set scalar fields are equal iff their values are equal. - If the fields are of a floating-point type, remember that - NaN != x for all x, including NaN. - - Two repeated fields are equal iff their lengths are the same, - and their corresponding elements are equal (a "bytes" field, - although represented by []byte, is not a repeated field) - - Two unset fields are equal. - - Two unknown field sets are equal if their current - encoded state is equal. - - Two extension sets are equal iff they have corresponding - elements that are pairwise equal. - - Every other combination of things are not equal. - -The return value is undefined if a and b are not protocol buffers. -*/ -func Equal(a, b Message) bool { - if a == nil || b == nil { - return a == b - } - v1, v2 := reflect.ValueOf(a), reflect.ValueOf(b) - if v1.Type() != v2.Type() { - return false - } - if v1.Kind() == reflect.Ptr { - if v1.IsNil() { - return v2.IsNil() - } - if v2.IsNil() { - return false - } - v1, v2 = v1.Elem(), v2.Elem() - } - if v1.Kind() != reflect.Struct { - return false - } - return equalStruct(v1, v2) -} - -// v1 and v2 are known to have the same type. -func equalStruct(v1, v2 reflect.Value) bool { - for i := 0; i < v1.NumField(); i++ { - f := v1.Type().Field(i) - if strings.HasPrefix(f.Name, "XXX_") { - continue - } - f1, f2 := v1.Field(i), v2.Field(i) - if f.Type.Kind() == reflect.Ptr { - if n1, n2 := f1.IsNil(), f2.IsNil(); n1 && n2 { - // both unset - continue - } else if n1 != n2 { - // set/unset mismatch - return false - } - b1, ok := f1.Interface().(raw) - if ok { - b2 := f2.Interface().(raw) - // RawMessage - if !bytes.Equal(b1.Bytes(), b2.Bytes()) { - return false - } - continue - } - f1, f2 = f1.Elem(), f2.Elem() - } - if !equalAny(f1, f2) { - return false - } - } - - if em1 := v1.FieldByName("XXX_extensions"); em1.IsValid() { - em2 := v2.FieldByName("XXX_extensions") - if !equalExtensions(v1.Type(), em1.Interface().(map[int32]Extension), em2.Interface().(map[int32]Extension)) { - return false - } - } - - uf := v1.FieldByName("XXX_unrecognized") - if !uf.IsValid() { - return true - } - - u1 := uf.Bytes() - u2 := v2.FieldByName("XXX_unrecognized").Bytes() - if !bytes.Equal(u1, u2) { - return false - } - - return true -} - -// v1 and v2 are known to have the same type. -func equalAny(v1, v2 reflect.Value) bool { - if v1.Type() == protoMessageType { - m1, _ := v1.Interface().(Message) - m2, _ := v2.Interface().(Message) - return Equal(m1, m2) - } - switch v1.Kind() { - case reflect.Bool: - return v1.Bool() == v2.Bool() - case reflect.Float32, reflect.Float64: - return v1.Float() == v2.Float() - case reflect.Int32, reflect.Int64: - return v1.Int() == v2.Int() - case reflect.Interface: - // Probably a oneof field; compare the inner values. - n1, n2 := v1.IsNil(), v2.IsNil() - if n1 || n2 { - return n1 == n2 - } - e1, e2 := v1.Elem(), v2.Elem() - if e1.Type() != e2.Type() { - return false - } - return equalAny(e1, e2) - case reflect.Map: - if v1.Len() != v2.Len() { - return false - } - for _, key := range v1.MapKeys() { - val2 := v2.MapIndex(key) - if !val2.IsValid() { - // This key was not found in the second map. - return false - } - if !equalAny(v1.MapIndex(key), val2) { - return false - } - } - return true - case reflect.Ptr: - return equalAny(v1.Elem(), v2.Elem()) - case reflect.Slice: - if v1.Type().Elem().Kind() == reflect.Uint8 { - // short circuit: []byte - if v1.IsNil() != v2.IsNil() { - return false - } - return bytes.Equal(v1.Interface().([]byte), v2.Interface().([]byte)) - } - - if v1.Len() != v2.Len() { - return false - } - for i := 0; i < v1.Len(); i++ { - if !equalAny(v1.Index(i), v2.Index(i)) { - return false - } - } - return true - case reflect.String: - return v1.Interface().(string) == v2.Interface().(string) - case reflect.Struct: - return equalStruct(v1, v2) - case reflect.Uint32, reflect.Uint64: - return v1.Uint() == v2.Uint() - } - - // unknown type, so not a protocol buffer - log.Printf("proto: don't know how to compare %v", v1) - return false -} - -// base is the struct type that the extensions are based on. -// em1 and em2 are extension maps. -func equalExtensions(base reflect.Type, em1, em2 map[int32]Extension) bool { - if len(em1) != len(em2) { - return false - } - - for extNum, e1 := range em1 { - e2, ok := em2[extNum] - if !ok { - return false - } - - m1, m2 := e1.value, e2.value - - if m1 != nil && m2 != nil { - // Both are unencoded. - if !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2)) { - return false - } - continue - } - - // At least one is encoded. To do a semantically correct comparison - // we need to unmarshal them first. - var desc *ExtensionDesc - if m := extensionMaps[base]; m != nil { - desc = m[extNum] - } - if desc == nil { - log.Printf("proto: don't know how to compare extension %d of %v", extNum, base) - continue - } - var err error - if m1 == nil { - m1, err = decodeExtension(e1.enc, desc) - } - if m2 == nil && err == nil { - m2, err = decodeExtension(e2.enc, desc) - } - if err != nil { - // The encoded form is invalid. - log.Printf("proto: badly encoded extension %d of %v: %v", extNum, base, err) - return false - } - if !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2)) { - return false - } - } - - return true -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/equal_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/equal_test.go deleted file mode 100644 index 9a888a2e..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/equal_test.go +++ /dev/null @@ -1,209 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2011 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto_test - -import ( - "testing" - - . "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - pb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata" -) - -// Four identical base messages. -// The init function adds extensions to some of them. -var messageWithoutExtension = &pb.MyMessage{Count: Int32(7)} -var messageWithExtension1a = &pb.MyMessage{Count: Int32(7)} -var messageWithExtension1b = &pb.MyMessage{Count: Int32(7)} -var messageWithExtension2 = &pb.MyMessage{Count: Int32(7)} - -// Two messages with non-message extensions. -var messageWithInt32Extension1 = &pb.MyMessage{Count: Int32(8)} -var messageWithInt32Extension2 = &pb.MyMessage{Count: Int32(8)} - -func init() { - ext1 := &pb.Ext{Data: String("Kirk")} - ext2 := &pb.Ext{Data: String("Picard")} - - // messageWithExtension1a has ext1, but never marshals it. - if err := SetExtension(messageWithExtension1a, pb.E_Ext_More, ext1); err != nil { - panic("SetExtension on 1a failed: " + err.Error()) - } - - // messageWithExtension1b is the unmarshaled form of messageWithExtension1a. - if err := SetExtension(messageWithExtension1b, pb.E_Ext_More, ext1); err != nil { - panic("SetExtension on 1b failed: " + err.Error()) - } - buf, err := Marshal(messageWithExtension1b) - if err != nil { - panic("Marshal of 1b failed: " + err.Error()) - } - messageWithExtension1b.Reset() - if err := Unmarshal(buf, messageWithExtension1b); err != nil { - panic("Unmarshal of 1b failed: " + err.Error()) - } - - // messageWithExtension2 has ext2. - if err := SetExtension(messageWithExtension2, pb.E_Ext_More, ext2); err != nil { - panic("SetExtension on 2 failed: " + err.Error()) - } - - if err := SetExtension(messageWithInt32Extension1, pb.E_Ext_Number, Int32(23)); err != nil { - panic("SetExtension on Int32-1 failed: " + err.Error()) - } - if err := SetExtension(messageWithInt32Extension1, pb.E_Ext_Number, Int32(24)); err != nil { - panic("SetExtension on Int32-2 failed: " + err.Error()) - } -} - -var EqualTests = []struct { - desc string - a, b Message - exp bool -}{ - {"different types", &pb.GoEnum{}, &pb.GoTestField{}, false}, - {"equal empty", &pb.GoEnum{}, &pb.GoEnum{}, true}, - {"nil vs nil", nil, nil, true}, - {"typed nil vs typed nil", (*pb.GoEnum)(nil), (*pb.GoEnum)(nil), true}, - {"typed nil vs empty", (*pb.GoEnum)(nil), &pb.GoEnum{}, false}, - {"different typed nil", (*pb.GoEnum)(nil), (*pb.GoTestField)(nil), false}, - - {"one set field, one unset field", &pb.GoTestField{Label: String("foo")}, &pb.GoTestField{}, false}, - {"one set field zero, one unset field", &pb.GoTest{Param: Int32(0)}, &pb.GoTest{}, false}, - {"different set fields", &pb.GoTestField{Label: String("foo")}, &pb.GoTestField{Label: String("bar")}, false}, - {"equal set", &pb.GoTestField{Label: String("foo")}, &pb.GoTestField{Label: String("foo")}, true}, - - {"repeated, one set", &pb.GoTest{F_Int32Repeated: []int32{2, 3}}, &pb.GoTest{}, false}, - {"repeated, different length", &pb.GoTest{F_Int32Repeated: []int32{2, 3}}, &pb.GoTest{F_Int32Repeated: []int32{2}}, false}, - {"repeated, different value", &pb.GoTest{F_Int32Repeated: []int32{2}}, &pb.GoTest{F_Int32Repeated: []int32{3}}, false}, - {"repeated, equal", &pb.GoTest{F_Int32Repeated: []int32{2, 4}}, &pb.GoTest{F_Int32Repeated: []int32{2, 4}}, true}, - {"repeated, nil equal nil", &pb.GoTest{F_Int32Repeated: nil}, &pb.GoTest{F_Int32Repeated: nil}, true}, - {"repeated, nil equal empty", &pb.GoTest{F_Int32Repeated: nil}, &pb.GoTest{F_Int32Repeated: []int32{}}, true}, - {"repeated, empty equal nil", &pb.GoTest{F_Int32Repeated: []int32{}}, &pb.GoTest{F_Int32Repeated: nil}, true}, - - { - "nested, different", - &pb.GoTest{RequiredField: &pb.GoTestField{Label: String("foo")}}, - &pb.GoTest{RequiredField: &pb.GoTestField{Label: String("bar")}}, - false, - }, - { - "nested, equal", - &pb.GoTest{RequiredField: &pb.GoTestField{Label: String("wow")}}, - &pb.GoTest{RequiredField: &pb.GoTestField{Label: String("wow")}}, - true, - }, - - {"bytes", &pb.OtherMessage{Value: []byte("foo")}, &pb.OtherMessage{Value: []byte("foo")}, true}, - {"bytes, empty", &pb.OtherMessage{Value: []byte{}}, &pb.OtherMessage{Value: []byte{}}, true}, - {"bytes, empty vs nil", &pb.OtherMessage{Value: []byte{}}, &pb.OtherMessage{Value: nil}, false}, - { - "repeated bytes", - &pb.MyMessage{RepBytes: [][]byte{[]byte("sham"), []byte("wow")}}, - &pb.MyMessage{RepBytes: [][]byte{[]byte("sham"), []byte("wow")}}, - true, - }, - - {"extension vs. no extension", messageWithoutExtension, messageWithExtension1a, false}, - {"extension vs. same extension", messageWithExtension1a, messageWithExtension1b, true}, - {"extension vs. different extension", messageWithExtension1a, messageWithExtension2, false}, - - {"int32 extension vs. itself", messageWithInt32Extension1, messageWithInt32Extension1, true}, - {"int32 extension vs. a different int32", messageWithInt32Extension1, messageWithInt32Extension2, false}, - - { - "message with group", - &pb.MyMessage{ - Count: Int32(1), - Somegroup: &pb.MyMessage_SomeGroup{ - GroupField: Int32(5), - }, - }, - &pb.MyMessage{ - Count: Int32(1), - Somegroup: &pb.MyMessage_SomeGroup{ - GroupField: Int32(5), - }, - }, - true, - }, - - { - "map same", - &pb.MessageWithMap{NameMapping: map[int32]string{1: "Ken"}}, - &pb.MessageWithMap{NameMapping: map[int32]string{1: "Ken"}}, - true, - }, - { - "map different entry", - &pb.MessageWithMap{NameMapping: map[int32]string{1: "Ken"}}, - &pb.MessageWithMap{NameMapping: map[int32]string{2: "Rob"}}, - false, - }, - { - "map different key only", - &pb.MessageWithMap{NameMapping: map[int32]string{1: "Ken"}}, - &pb.MessageWithMap{NameMapping: map[int32]string{2: "Ken"}}, - false, - }, - { - "map different value only", - &pb.MessageWithMap{NameMapping: map[int32]string{1: "Ken"}}, - &pb.MessageWithMap{NameMapping: map[int32]string{1: "Rob"}}, - false, - }, - { - "oneof same", - &pb.Communique{Union: &pb.Communique_Number{Number: 41}}, - &pb.Communique{Union: &pb.Communique_Number{Number: 41}}, - true, - }, - { - "oneof one nil", - &pb.Communique{Union: &pb.Communique_Number{Number: 41}}, - &pb.Communique{}, - false, - }, - { - "oneof different", - &pb.Communique{Union: &pb.Communique_Number{Number: 41}}, - &pb.Communique{Union: &pb.Communique_Name{Name: "Bobby Tables"}}, - false, - }, -} - -func TestEqual(t *testing.T) { - for _, tc := range EqualTests { - if res := Equal(tc.a, tc.b); res != tc.exp { - t.Errorf("%v: Equal(%v, %v) = %v, want %v", tc.desc, tc.a, tc.b, res, tc.exp) - } - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/extensions.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/extensions.go deleted file mode 100644 index 9a6374fd..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/extensions.go +++ /dev/null @@ -1,519 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto - -/* - * Types and routines for supporting protocol buffer extensions. - */ - -import ( - "errors" - "fmt" - "reflect" - "strconv" - "sync" -) - -// ErrMissingExtension is the error returned by GetExtension if the named extension is not in the message. -var ErrMissingExtension = errors.New("proto: missing extension") - -// ExtensionRange represents a range of message extensions for a protocol buffer. -// Used in code generated by the protocol compiler. -type ExtensionRange struct { - Start, End int32 // both inclusive -} - -// extendableProto is an interface implemented by any protocol buffer that may be extended. -type extendableProto interface { - Message - ExtensionRangeArray() []ExtensionRange -} - -type extensionsMap interface { - extendableProto - ExtensionMap() map[int32]Extension -} - -type extensionsBytes interface { - extendableProto - GetExtensions() *[]byte -} - -var extendableProtoType = reflect.TypeOf((*extendableProto)(nil)).Elem() - -// ExtensionDesc represents an extension specification. -// Used in generated code from the protocol compiler. -type ExtensionDesc struct { - ExtendedType Message // nil pointer to the type that is being extended - ExtensionType interface{} // nil pointer to the extension type - Field int32 // field number - Name string // fully-qualified name of extension, for text formatting - Tag string // protobuf tag style -} - -func (ed *ExtensionDesc) repeated() bool { - t := reflect.TypeOf(ed.ExtensionType) - return t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 -} - -// Extension represents an extension in a message. -type Extension struct { - // When an extension is stored in a message using SetExtension - // only desc and value are set. When the message is marshaled - // enc will be set to the encoded form of the message. - // - // When a message is unmarshaled and contains extensions, each - // extension will have only enc set. When such an extension is - // accessed using GetExtension (or GetExtensions) desc and value - // will be set. - desc *ExtensionDesc - value interface{} - enc []byte -} - -// SetRawExtension is for testing only. -func SetRawExtension(base extendableProto, id int32, b []byte) { - if ebase, ok := base.(extensionsMap); ok { - ebase.ExtensionMap()[id] = Extension{enc: b} - } else if ebase, ok := base.(extensionsBytes); ok { - clearExtension(base, id) - ext := ebase.GetExtensions() - *ext = append(*ext, b...) - } else { - panic("unreachable") - } -} - -// isExtensionField returns true iff the given field number is in an extension range. -func isExtensionField(pb extendableProto, field int32) bool { - for _, er := range pb.ExtensionRangeArray() { - if er.Start <= field && field <= er.End { - return true - } - } - return false -} - -// checkExtensionTypes checks that the given extension is valid for pb. -func checkExtensionTypes(pb extendableProto, extension *ExtensionDesc) error { - // Check the extended type. - if a, b := reflect.TypeOf(pb), reflect.TypeOf(extension.ExtendedType); a != b { - return errors.New("proto: bad extended type; " + b.String() + " does not extend " + a.String()) - } - // Check the range. - if !isExtensionField(pb, extension.Field) { - return errors.New("proto: bad extension number; not in declared ranges") - } - return nil -} - -// extPropKey is sufficient to uniquely identify an extension. -type extPropKey struct { - base reflect.Type - field int32 -} - -var extProp = struct { - sync.RWMutex - m map[extPropKey]*Properties -}{ - m: make(map[extPropKey]*Properties), -} - -func extensionProperties(ed *ExtensionDesc) *Properties { - key := extPropKey{base: reflect.TypeOf(ed.ExtendedType), field: ed.Field} - - extProp.RLock() - if prop, ok := extProp.m[key]; ok { - extProp.RUnlock() - return prop - } - extProp.RUnlock() - - extProp.Lock() - defer extProp.Unlock() - // Check again. - if prop, ok := extProp.m[key]; ok { - return prop - } - - prop := new(Properties) - prop.Init(reflect.TypeOf(ed.ExtensionType), "unknown_name", ed.Tag, nil) - extProp.m[key] = prop - return prop -} - -// encodeExtensionMap encodes any unmarshaled (unencoded) extensions in m. -func encodeExtensionMap(m map[int32]Extension) error { - for k, e := range m { - err := encodeExtension(&e) - if err != nil { - return err - } - m[k] = e - } - return nil -} - -func encodeExtension(e *Extension) error { - if e.value == nil || e.desc == nil { - // Extension is only in its encoded form. - return nil - } - // We don't skip extensions that have an encoded form set, - // because the extension value may have been mutated after - // the last time this function was called. - - et := reflect.TypeOf(e.desc.ExtensionType) - props := extensionProperties(e.desc) - - p := NewBuffer(nil) - // If e.value has type T, the encoder expects a *struct{ X T }. - // Pass a *T with a zero field and hope it all works out. - x := reflect.New(et) - x.Elem().Set(reflect.ValueOf(e.value)) - if err := props.enc(p, props, toStructPointer(x)); err != nil { - return err - } - e.enc = p.buf - return nil -} - -func sizeExtensionMap(m map[int32]Extension) (n int) { - for _, e := range m { - if e.value == nil || e.desc == nil { - // Extension is only in its encoded form. - n += len(e.enc) - continue - } - - // We don't skip extensions that have an encoded form set, - // because the extension value may have been mutated after - // the last time this function was called. - - et := reflect.TypeOf(e.desc.ExtensionType) - props := extensionProperties(e.desc) - - // If e.value has type T, the encoder expects a *struct{ X T }. - // Pass a *T with a zero field and hope it all works out. - x := reflect.New(et) - x.Elem().Set(reflect.ValueOf(e.value)) - n += props.size(props, toStructPointer(x)) - } - return -} - -// HasExtension returns whether the given extension is present in pb. -func HasExtension(pb extendableProto, extension *ExtensionDesc) bool { - // TODO: Check types, field numbers, etc.? - if epb, doki := pb.(extensionsMap); doki { - _, ok := epb.ExtensionMap()[extension.Field] - return ok - } else if epb, doki := pb.(extensionsBytes); doki { - ext := epb.GetExtensions() - buf := *ext - o := 0 - for o < len(buf) { - tag, n := DecodeVarint(buf[o:]) - fieldNum := int32(tag >> 3) - if int32(fieldNum) == extension.Field { - return true - } - wireType := int(tag & 0x7) - o += n - l, err := size(buf[o:], wireType) - if err != nil { - return false - } - o += l - } - return false - } - panic("unreachable") -} - -func deleteExtension(pb extensionsBytes, theFieldNum int32, offset int) int { - ext := pb.GetExtensions() - for offset < len(*ext) { - tag, n1 := DecodeVarint((*ext)[offset:]) - fieldNum := int32(tag >> 3) - wireType := int(tag & 0x7) - n2, err := size((*ext)[offset+n1:], wireType) - if err != nil { - panic(err) - } - newOffset := offset + n1 + n2 - if fieldNum == theFieldNum { - *ext = append((*ext)[:offset], (*ext)[newOffset:]...) - return offset - } - offset = newOffset - } - return -1 -} - -func clearExtension(pb extendableProto, fieldNum int32) { - if epb, doki := pb.(extensionsMap); doki { - delete(epb.ExtensionMap(), fieldNum) - } else if epb, doki := pb.(extensionsBytes); doki { - offset := 0 - for offset != -1 { - offset = deleteExtension(epb, fieldNum, offset) - } - } else { - panic("unreachable") - } -} - -// ClearExtension removes the given extension from pb. -func ClearExtension(pb extendableProto, extension *ExtensionDesc) { - // TODO: Check types, field numbers, etc.? - clearExtension(pb, extension.Field) -} - -// GetExtension parses and returns the given extension of pb. -// If the extension is not present it returns ErrMissingExtension. -func GetExtension(pb extendableProto, extension *ExtensionDesc) (interface{}, error) { - if err := checkExtensionTypes(pb, extension); err != nil { - return nil, err - } - - if epb, doki := pb.(extensionsMap); doki { - emap := epb.ExtensionMap() - e, ok := emap[extension.Field] - if !ok { - // defaultExtensionValue returns the default value or - // ErrMissingExtension if there is no default. - return defaultExtensionValue(extension) - } - if e.value != nil { - // Already decoded. Check the descriptor, though. - if e.desc != extension { - // This shouldn't happen. If it does, it means that - // GetExtension was called twice with two different - // descriptors with the same field number. - return nil, errors.New("proto: descriptor conflict") - } - return e.value, nil - } - - v, err := decodeExtension(e.enc, extension) - if err != nil { - return nil, err - } - - // Remember the decoded version and drop the encoded version. - // That way it is safe to mutate what we return. - e.value = v - e.desc = extension - e.enc = nil - emap[extension.Field] = e - return e.value, nil - } else if epb, doki := pb.(extensionsBytes); doki { - ext := epb.GetExtensions() - o := 0 - for o < len(*ext) { - tag, n := DecodeVarint((*ext)[o:]) - fieldNum := int32(tag >> 3) - wireType := int(tag & 0x7) - l, err := size((*ext)[o+n:], wireType) - if err != nil { - return nil, err - } - if int32(fieldNum) == extension.Field { - v, err := decodeExtension((*ext)[o:o+n+l], extension) - if err != nil { - return nil, err - } - return v, nil - } - o += n + l - } - return defaultExtensionValue(extension) - } - panic("unreachable") -} - -// defaultExtensionValue returns the default value for extension. -// If no default for an extension is defined ErrMissingExtension is returned. -func defaultExtensionValue(extension *ExtensionDesc) (interface{}, error) { - t := reflect.TypeOf(extension.ExtensionType) - props := extensionProperties(extension) - - sf, _, err := fieldDefault(t, props) - if err != nil { - return nil, err - } - - if sf == nil || sf.value == nil { - // There is no default value. - return nil, ErrMissingExtension - } - - if t.Kind() != reflect.Ptr { - // We do not need to return a Ptr, we can directly return sf.value. - return sf.value, nil - } - - // We need to return an interface{} that is a pointer to sf.value. - value := reflect.New(t).Elem() - value.Set(reflect.New(value.Type().Elem())) - if sf.kind == reflect.Int32 { - // We may have an int32 or an enum, but the underlying data is int32. - // Since we can't set an int32 into a non int32 reflect.value directly - // set it as a int32. - value.Elem().SetInt(int64(sf.value.(int32))) - } else { - value.Elem().Set(reflect.ValueOf(sf.value)) - } - return value.Interface(), nil -} - -// decodeExtension decodes an extension encoded in b. -func decodeExtension(b []byte, extension *ExtensionDesc) (interface{}, error) { - o := NewBuffer(b) - - t := reflect.TypeOf(extension.ExtensionType) - rep := extension.repeated() - - props := extensionProperties(extension) - - // t is a pointer to a struct, pointer to basic type or a slice. - // Allocate a "field" to store the pointer/slice itself; the - // pointer/slice will be stored here. We pass - // the address of this field to props.dec. - // This passes a zero field and a *t and lets props.dec - // interpret it as a *struct{ x t }. - value := reflect.New(t).Elem() - - for { - // Discard wire type and field number varint. It isn't needed. - if _, err := o.DecodeVarint(); err != nil { - return nil, err - } - - if err := props.dec(o, props, toStructPointer(value.Addr())); err != nil { - return nil, err - } - - if !rep || o.index >= len(o.buf) { - break - } - } - return value.Interface(), nil -} - -// GetExtensions returns a slice of the extensions present in pb that are also listed in es. -// The returned slice has the same length as es; missing extensions will appear as nil elements. -func GetExtensions(pb Message, es []*ExtensionDesc) (extensions []interface{}, err error) { - epb, ok := pb.(extendableProto) - if !ok { - err = errors.New("proto: not an extendable proto") - return - } - extensions = make([]interface{}, len(es)) - for i, e := range es { - extensions[i], err = GetExtension(epb, e) - if err == ErrMissingExtension { - err = nil - } - if err != nil { - return - } - } - return -} - -// SetExtension sets the specified extension of pb to the specified value. -func SetExtension(pb extendableProto, extension *ExtensionDesc, value interface{}) error { - if err := checkExtensionTypes(pb, extension); err != nil { - return err - } - typ := reflect.TypeOf(extension.ExtensionType) - if typ != reflect.TypeOf(value) { - return errors.New("proto: bad extension value type") - } - // nil extension values need to be caught early, because the - // encoder can't distinguish an ErrNil due to a nil extension - // from an ErrNil due to a missing field. Extensions are - // always optional, so the encoder would just swallow the error - // and drop all the extensions from the encoded message. - if reflect.ValueOf(value).IsNil() { - return fmt.Errorf("proto: SetExtension called with nil value of type %T", value) - } - return setExtension(pb, extension, value) -} - -func setExtension(pb extendableProto, extension *ExtensionDesc, value interface{}) error { - if epb, doki := pb.(extensionsMap); doki { - epb.ExtensionMap()[extension.Field] = Extension{desc: extension, value: value} - } else if epb, doki := pb.(extensionsBytes); doki { - ClearExtension(pb, extension) - ext := epb.GetExtensions() - et := reflect.TypeOf(extension.ExtensionType) - props := extensionProperties(extension) - p := NewBuffer(nil) - x := reflect.New(et) - x.Elem().Set(reflect.ValueOf(value)) - if err := props.enc(p, props, toStructPointer(x)); err != nil { - return err - } - *ext = append(*ext, p.buf...) - } - return nil -} - -// A global registry of extensions. -// The generated code will register the generated descriptors by calling RegisterExtension. - -var extensionMaps = make(map[reflect.Type]map[int32]*ExtensionDesc) - -// RegisterExtension is called from the generated code. -func RegisterExtension(desc *ExtensionDesc) { - st := reflect.TypeOf(desc.ExtendedType).Elem() - m := extensionMaps[st] - if m == nil { - m = make(map[int32]*ExtensionDesc) - extensionMaps[st] = m - } - if _, ok := m[desc.Field]; ok { - panic("proto: duplicate extension registered: " + st.String() + " " + strconv.Itoa(int(desc.Field))) - } - m[desc.Field] = desc -} - -// RegisteredExtensions returns a map of the registered extensions of a -// protocol buffer struct, indexed by the extension number. -// The argument pb should be a nil pointer to the struct type. -func RegisteredExtensions(pb Message) map[int32]*ExtensionDesc { - return extensionMaps[reflect.TypeOf(pb).Elem()] -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/extensions_gogo.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/extensions_gogo.go deleted file mode 100644 index bd55fb68..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/extensions_gogo.go +++ /dev/null @@ -1,221 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package proto - -import ( - "bytes" - "errors" - "fmt" - "reflect" - "sort" - "strings" -) - -func GetBoolExtension(pb extendableProto, extension *ExtensionDesc, ifnotset bool) bool { - if reflect.ValueOf(pb).IsNil() { - return ifnotset - } - value, err := GetExtension(pb, extension) - if err != nil { - return ifnotset - } - if value == nil { - return ifnotset - } - if value.(*bool) == nil { - return ifnotset - } - return *(value.(*bool)) -} - -func (this *Extension) Equal(that *Extension) bool { - return bytes.Equal(this.enc, that.enc) -} - -func SizeOfExtensionMap(m map[int32]Extension) (n int) { - return sizeExtensionMap(m) -} - -type sortableMapElem struct { - field int32 - ext Extension -} - -func newSortableExtensionsFromMap(m map[int32]Extension) sortableExtensions { - s := make(sortableExtensions, 0, len(m)) - for k, v := range m { - s = append(s, &sortableMapElem{field: k, ext: v}) - } - return s -} - -type sortableExtensions []*sortableMapElem - -func (this sortableExtensions) Len() int { return len(this) } - -func (this sortableExtensions) Swap(i, j int) { this[i], this[j] = this[j], this[i] } - -func (this sortableExtensions) Less(i, j int) bool { return this[i].field < this[j].field } - -func (this sortableExtensions) String() string { - sort.Sort(this) - ss := make([]string, len(this)) - for i := range this { - ss[i] = fmt.Sprintf("%d: %v", this[i].field, this[i].ext) - } - return "map[" + strings.Join(ss, ",") + "]" -} - -func StringFromExtensionsMap(m map[int32]Extension) string { - return newSortableExtensionsFromMap(m).String() -} - -func StringFromExtensionsBytes(ext []byte) string { - m, err := BytesToExtensionsMap(ext) - if err != nil { - panic(err) - } - return StringFromExtensionsMap(m) -} - -func EncodeExtensionMap(m map[int32]Extension, data []byte) (n int, err error) { - if err := encodeExtensionMap(m); err != nil { - return 0, err - } - keys := make([]int, 0, len(m)) - for k := range m { - keys = append(keys, int(k)) - } - sort.Ints(keys) - for _, k := range keys { - n += copy(data[n:], m[int32(k)].enc) - } - return n, nil -} - -func GetRawExtension(m map[int32]Extension, id int32) ([]byte, error) { - if m[id].value == nil || m[id].desc == nil { - return m[id].enc, nil - } - if err := encodeExtensionMap(m); err != nil { - return nil, err - } - return m[id].enc, nil -} - -func size(buf []byte, wire int) (int, error) { - switch wire { - case WireVarint: - _, n := DecodeVarint(buf) - return n, nil - case WireFixed64: - return 8, nil - case WireBytes: - v, n := DecodeVarint(buf) - return int(v) + n, nil - case WireFixed32: - return 4, nil - case WireStartGroup: - offset := 0 - for { - u, n := DecodeVarint(buf[offset:]) - fwire := int(u & 0x7) - offset += n - if fwire == WireEndGroup { - return offset, nil - } - s, err := size(buf[offset:], wire) - if err != nil { - return 0, err - } - offset += s - } - } - return 0, fmt.Errorf("proto: can't get size for unknown wire type %d", wire) -} - -func BytesToExtensionsMap(buf []byte) (map[int32]Extension, error) { - m := make(map[int32]Extension) - i := 0 - for i < len(buf) { - tag, n := DecodeVarint(buf[i:]) - if n <= 0 { - return nil, fmt.Errorf("unable to decode varint") - } - fieldNum := int32(tag >> 3) - wireType := int(tag & 0x7) - l, err := size(buf[i+n:], wireType) - if err != nil { - return nil, err - } - end := i + int(l) + n - m[int32(fieldNum)] = Extension{enc: buf[i:end]} - i = end - } - return m, nil -} - -func NewExtension(e []byte) Extension { - ee := Extension{enc: make([]byte, len(e))} - copy(ee.enc, e) - return ee -} - -func (this Extension) GoString() string { - if this.enc == nil { - if err := encodeExtension(&this); err != nil { - panic(err) - } - } - return fmt.Sprintf("proto.NewExtension(%#v)", this.enc) -} - -func SetUnsafeExtension(pb extendableProto, fieldNum int32, value interface{}) error { - typ := reflect.TypeOf(pb).Elem() - ext, ok := extensionMaps[typ] - if !ok { - return fmt.Errorf("proto: bad extended type; %s is not extendable", typ.String()) - } - desc, ok := ext[fieldNum] - if !ok { - return errors.New("proto: bad extension number; not in declared ranges") - } - return setExtension(pb, desc, value) -} - -func GetUnsafeExtension(pb extendableProto, fieldNum int32) (interface{}, error) { - typ := reflect.TypeOf(pb).Elem() - ext, ok := extensionMaps[typ] - if !ok { - return nil, fmt.Errorf("proto: bad extended type; %s is not extendable", typ.String()) - } - desc, ok := ext[fieldNum] - if !ok { - return nil, fmt.Errorf("unregistered field number %d", fieldNum) - } - return GetExtension(pb, desc) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/extensions_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/extensions_test.go deleted file mode 100644 index 65116df5..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/extensions_test.go +++ /dev/null @@ -1,292 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2014 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto_test - -import ( - "fmt" - "reflect" - "testing" - - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - pb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata" -) - -func TestGetExtensionsWithMissingExtensions(t *testing.T) { - msg := &pb.MyMessage{} - ext1 := &pb.Ext{} - if err := proto.SetExtension(msg, pb.E_Ext_More, ext1); err != nil { - t.Fatalf("Could not set ext1: %s", ext1) - } - exts, err := proto.GetExtensions(msg, []*proto.ExtensionDesc{ - pb.E_Ext_More, - pb.E_Ext_Text, - }) - if err != nil { - t.Fatalf("GetExtensions() failed: %s", err) - } - if exts[0] != ext1 { - t.Errorf("ext1 not in returned extensions: %T %v", exts[0], exts[0]) - } - if exts[1] != nil { - t.Errorf("ext2 in returned extensions: %T %v", exts[1], exts[1]) - } -} - -func TestGetExtensionStability(t *testing.T) { - check := func(m *pb.MyMessage) bool { - ext1, err := proto.GetExtension(m, pb.E_Ext_More) - if err != nil { - t.Fatalf("GetExtension() failed: %s", err) - } - ext2, err := proto.GetExtension(m, pb.E_Ext_More) - if err != nil { - t.Fatalf("GetExtension() failed: %s", err) - } - return ext1 == ext2 - } - msg := &pb.MyMessage{Count: proto.Int32(4)} - ext0 := &pb.Ext{} - if err := proto.SetExtension(msg, pb.E_Ext_More, ext0); err != nil { - t.Fatalf("Could not set ext1: %s", ext0) - } - if !check(msg) { - t.Errorf("GetExtension() not stable before marshaling") - } - bb, err := proto.Marshal(msg) - if err != nil { - t.Fatalf("Marshal() failed: %s", err) - } - msg1 := &pb.MyMessage{} - err = proto.Unmarshal(bb, msg1) - if err != nil { - t.Fatalf("Unmarshal() failed: %s", err) - } - if !check(msg1) { - t.Errorf("GetExtension() not stable after unmarshaling") - } -} - -func TestGetExtensionDefaults(t *testing.T) { - var setFloat64 float64 = 1 - var setFloat32 float32 = 2 - var setInt32 int32 = 3 - var setInt64 int64 = 4 - var setUint32 uint32 = 5 - var setUint64 uint64 = 6 - var setBool = true - var setBool2 = false - var setString = "Goodnight string" - var setBytes = []byte("Goodnight bytes") - var setEnum = pb.DefaultsMessage_TWO - - type testcase struct { - ext *proto.ExtensionDesc // Extension we are testing. - want interface{} // Expected value of extension, or nil (meaning that GetExtension will fail). - def interface{} // Expected value of extension after ClearExtension(). - } - tests := []testcase{ - {pb.E_NoDefaultDouble, setFloat64, nil}, - {pb.E_NoDefaultFloat, setFloat32, nil}, - {pb.E_NoDefaultInt32, setInt32, nil}, - {pb.E_NoDefaultInt64, setInt64, nil}, - {pb.E_NoDefaultUint32, setUint32, nil}, - {pb.E_NoDefaultUint64, setUint64, nil}, - {pb.E_NoDefaultSint32, setInt32, nil}, - {pb.E_NoDefaultSint64, setInt64, nil}, - {pb.E_NoDefaultFixed32, setUint32, nil}, - {pb.E_NoDefaultFixed64, setUint64, nil}, - {pb.E_NoDefaultSfixed32, setInt32, nil}, - {pb.E_NoDefaultSfixed64, setInt64, nil}, - {pb.E_NoDefaultBool, setBool, nil}, - {pb.E_NoDefaultBool, setBool2, nil}, - {pb.E_NoDefaultString, setString, nil}, - {pb.E_NoDefaultBytes, setBytes, nil}, - {pb.E_NoDefaultEnum, setEnum, nil}, - {pb.E_DefaultDouble, setFloat64, float64(3.1415)}, - {pb.E_DefaultFloat, setFloat32, float32(3.14)}, - {pb.E_DefaultInt32, setInt32, int32(42)}, - {pb.E_DefaultInt64, setInt64, int64(43)}, - {pb.E_DefaultUint32, setUint32, uint32(44)}, - {pb.E_DefaultUint64, setUint64, uint64(45)}, - {pb.E_DefaultSint32, setInt32, int32(46)}, - {pb.E_DefaultSint64, setInt64, int64(47)}, - {pb.E_DefaultFixed32, setUint32, uint32(48)}, - {pb.E_DefaultFixed64, setUint64, uint64(49)}, - {pb.E_DefaultSfixed32, setInt32, int32(50)}, - {pb.E_DefaultSfixed64, setInt64, int64(51)}, - {pb.E_DefaultBool, setBool, true}, - {pb.E_DefaultBool, setBool2, true}, - {pb.E_DefaultString, setString, "Hello, string"}, - {pb.E_DefaultBytes, setBytes, []byte("Hello, bytes")}, - {pb.E_DefaultEnum, setEnum, pb.DefaultsMessage_ONE}, - } - - checkVal := func(test testcase, msg *pb.DefaultsMessage, valWant interface{}) error { - val, err := proto.GetExtension(msg, test.ext) - if err != nil { - if valWant != nil { - return fmt.Errorf("GetExtension(): %s", err) - } - if want := proto.ErrMissingExtension; err != want { - return fmt.Errorf("Unexpected error: got %v, want %v", err, want) - } - return nil - } - - // All proto2 extension values are either a pointer to a value or a slice of values. - ty := reflect.TypeOf(val) - tyWant := reflect.TypeOf(test.ext.ExtensionType) - if got, want := ty, tyWant; got != want { - return fmt.Errorf("unexpected reflect.TypeOf(): got %v want %v", got, want) - } - tye := ty.Elem() - tyeWant := tyWant.Elem() - if got, want := tye, tyeWant; got != want { - return fmt.Errorf("unexpected reflect.TypeOf().Elem(): got %v want %v", got, want) - } - - // Check the name of the type of the value. - // If it is an enum it will be type int32 with the name of the enum. - if got, want := tye.Name(), tye.Name(); got != want { - return fmt.Errorf("unexpected reflect.TypeOf().Elem().Name(): got %v want %v", got, want) - } - - // Check that value is what we expect. - // If we have a pointer in val, get the value it points to. - valExp := val - if ty.Kind() == reflect.Ptr { - valExp = reflect.ValueOf(val).Elem().Interface() - } - if got, want := valExp, valWant; !reflect.DeepEqual(got, want) { - return fmt.Errorf("unexpected reflect.DeepEqual(): got %v want %v", got, want) - } - - return nil - } - - setTo := func(test testcase) interface{} { - setTo := reflect.ValueOf(test.want) - if typ := reflect.TypeOf(test.ext.ExtensionType); typ.Kind() == reflect.Ptr { - setTo = reflect.New(typ).Elem() - setTo.Set(reflect.New(setTo.Type().Elem())) - setTo.Elem().Set(reflect.ValueOf(test.want)) - } - return setTo.Interface() - } - - for _, test := range tests { - msg := &pb.DefaultsMessage{} - name := test.ext.Name - - // Check the initial value. - if err := checkVal(test, msg, test.def); err != nil { - t.Errorf("%s: %v", name, err) - } - - // Set the per-type value and check value. - name = fmt.Sprintf("%s (set to %T %v)", name, test.want, test.want) - if err := proto.SetExtension(msg, test.ext, setTo(test)); err != nil { - t.Errorf("%s: SetExtension(): %v", name, err) - continue - } - if err := checkVal(test, msg, test.want); err != nil { - t.Errorf("%s: %v", name, err) - continue - } - - // Set and check the value. - name += " (cleared)" - proto.ClearExtension(msg, test.ext) - if err := checkVal(test, msg, test.def); err != nil { - t.Errorf("%s: %v", name, err) - } - } -} - -func TestExtensionsRoundTrip(t *testing.T) { - msg := &pb.MyMessage{} - ext1 := &pb.Ext{ - Data: proto.String("hi"), - } - ext2 := &pb.Ext{ - Data: proto.String("there"), - } - exists := proto.HasExtension(msg, pb.E_Ext_More) - if exists { - t.Error("Extension More present unexpectedly") - } - if err := proto.SetExtension(msg, pb.E_Ext_More, ext1); err != nil { - t.Error(err) - } - if err := proto.SetExtension(msg, pb.E_Ext_More, ext2); err != nil { - t.Error(err) - } - e, err := proto.GetExtension(msg, pb.E_Ext_More) - if err != nil { - t.Error(err) - } - x, ok := e.(*pb.Ext) - if !ok { - t.Errorf("e has type %T, expected testdata.Ext", e) - } else if *x.Data != "there" { - t.Errorf("SetExtension failed to overwrite, got %+v, not 'there'", x) - } - proto.ClearExtension(msg, pb.E_Ext_More) - if _, err = proto.GetExtension(msg, pb.E_Ext_More); err != proto.ErrMissingExtension { - t.Errorf("got %v, expected ErrMissingExtension", e) - } - if _, err := proto.GetExtension(msg, pb.E_X215); err == nil { - t.Error("expected bad extension error, got nil") - } - if err := proto.SetExtension(msg, pb.E_X215, 12); err == nil { - t.Error("expected extension err") - } - if err := proto.SetExtension(msg, pb.E_Ext_More, 12); err == nil { - t.Error("expected some sort of type mismatch error, got nil") - } -} - -func TestNilExtension(t *testing.T) { - msg := &pb.MyMessage{ - Count: proto.Int32(1), - } - if err := proto.SetExtension(msg, pb.E_Ext_Text, proto.String("hello")); err != nil { - t.Fatal(err) - } - if err := proto.SetExtension(msg, pb.E_Ext_More, (*pb.Ext)(nil)); err == nil { - t.Error("expected SetExtension to fail due to a nil extension") - } else if want := "proto: SetExtension called with nil value of type *testdata.Ext"; err.Error() != want { - t.Errorf("expected error %v, got %v", want, err) - } - // Note: if the behavior of Marshal is ever changed to ignore nil extensions, update - // this test to verify that E_Ext_Text is properly propagated through marshal->unmarshal. -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/lib.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/lib.go deleted file mode 100644 index 8ffa91a3..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/lib.go +++ /dev/null @@ -1,883 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -/* -Package proto converts data structures to and from the wire format of -protocol buffers. It works in concert with the Go source code generated -for .proto files by the protocol compiler. - -A summary of the properties of the protocol buffer interface -for a protocol buffer variable v: - - - Names are turned from camel_case to CamelCase for export. - - There are no methods on v to set fields; just treat - them as structure fields. - - There are getters that return a field's value if set, - and return the field's default value if unset. - The getters work even if the receiver is a nil message. - - The zero value for a struct is its correct initialization state. - All desired fields must be set before marshaling. - - A Reset() method will restore a protobuf struct to its zero state. - - Non-repeated fields are pointers to the values; nil means unset. - That is, optional or required field int32 f becomes F *int32. - - Repeated fields are slices. - - Helper functions are available to aid the setting of fields. - msg.Foo = proto.String("hello") // set field - - Constants are defined to hold the default values of all fields that - have them. They have the form Default_StructName_FieldName. - Because the getter methods handle defaulted values, - direct use of these constants should be rare. - - Enums are given type names and maps from names to values. - Enum values are prefixed by the enclosing message's name, or by the - enum's type name if it is a top-level enum. Enum types have a String - method, and a Enum method to assist in message construction. - - Nested messages, groups and enums have type names prefixed with the name of - the surrounding message type. - - Extensions are given descriptor names that start with E_, - followed by an underscore-delimited list of the nested messages - that contain it (if any) followed by the CamelCased name of the - extension field itself. HasExtension, ClearExtension, GetExtension - and SetExtension are functions for manipulating extensions. - - Oneof field sets are given a single field in their message, - with distinguished wrapper types for each possible field value. - - Marshal and Unmarshal are functions to encode and decode the wire format. - -The simplest way to describe this is to see an example. -Given file test.proto, containing - - package example; - - enum FOO { X = 17; } - - message Test { - required string label = 1; - optional int32 type = 2 [default=77]; - repeated int64 reps = 3; - optional group OptionalGroup = 4 { - required string RequiredField = 5; - } - oneof union { - int32 number = 6; - string name = 7; - } - } - -The resulting file, test.pb.go, is: - - package example - - import proto "github.com/gogo/protobuf/proto" - import math "math" - - type FOO int32 - const ( - FOO_X FOO = 17 - ) - var FOO_name = map[int32]string{ - 17: "X", - } - var FOO_value = map[string]int32{ - "X": 17, - } - - func (x FOO) Enum() *FOO { - p := new(FOO) - *p = x - return p - } - func (x FOO) String() string { - return proto.EnumName(FOO_name, int32(x)) - } - func (x *FOO) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(FOO_value, data) - if err != nil { - return err - } - *x = FOO(value) - return nil - } - - type Test struct { - Label *string `protobuf:"bytes,1,req,name=label" json:"label,omitempty"` - Type *int32 `protobuf:"varint,2,opt,name=type,def=77" json:"type,omitempty"` - Reps []int64 `protobuf:"varint,3,rep,name=reps" json:"reps,omitempty"` - Optionalgroup *Test_OptionalGroup `protobuf:"group,4,opt,name=OptionalGroup" json:"optionalgroup,omitempty"` - // Types that are valid to be assigned to Union: - // *Test_Number - // *Test_Name - Union isTest_Union `protobuf_oneof:"union"` - XXX_unrecognized []byte `json:"-"` - } - func (m *Test) Reset() { *m = Test{} } - func (m *Test) String() string { return proto.CompactTextString(m) } - func (*Test) ProtoMessage() {} - - type isTest_Union interface { - isTest_Union() - } - - type Test_Number struct { - Number int32 `protobuf:"varint,6,opt,name=number"` - } - type Test_Name struct { - Name string `protobuf:"bytes,7,opt,name=name"` - } - - func (*Test_Number) isTest_Union() {} - func (*Test_Name) isTest_Union() {} - - func (m *Test) GetUnion() isTest_Union { - if m != nil { - return m.Union - } - return nil - } - const Default_Test_Type int32 = 77 - - func (m *Test) GetLabel() string { - if m != nil && m.Label != nil { - return *m.Label - } - return "" - } - - func (m *Test) GetType() int32 { - if m != nil && m.Type != nil { - return *m.Type - } - return Default_Test_Type - } - - func (m *Test) GetOptionalgroup() *Test_OptionalGroup { - if m != nil { - return m.Optionalgroup - } - return nil - } - - type Test_OptionalGroup struct { - RequiredField *string `protobuf:"bytes,5,req" json:"RequiredField,omitempty"` - } - func (m *Test_OptionalGroup) Reset() { *m = Test_OptionalGroup{} } - func (m *Test_OptionalGroup) String() string { return proto.CompactTextString(m) } - - func (m *Test_OptionalGroup) GetRequiredField() string { - if m != nil && m.RequiredField != nil { - return *m.RequiredField - } - return "" - } - - func (m *Test) GetNumber() int32 { - if x, ok := m.GetUnion().(*Test_Number); ok { - return x.Number - } - return 0 - } - - func (m *Test) GetName() string { - if x, ok := m.GetUnion().(*Test_Name); ok { - return x.Name - } - return "" - } - - func init() { - proto.RegisterEnum("example.FOO", FOO_name, FOO_value) - } - -To create and play with a Test object: - - package main - - import ( - "log" - - "github.com/gogo/protobuf/proto" - pb "./example.pb" - ) - - func main() { - test := &pb.Test{ - Label: proto.String("hello"), - Type: proto.Int32(17), - Optionalgroup: &pb.Test_OptionalGroup{ - RequiredField: proto.String("good bye"), - }, - Union: &pb.Test_Name{"fred"}, - } - data, err := proto.Marshal(test) - if err != nil { - log.Fatal("marshaling error: ", err) - } - newTest := &pb.Test{} - err = proto.Unmarshal(data, newTest) - if err != nil { - log.Fatal("unmarshaling error: ", err) - } - // Now test and newTest contain the same data. - if test.GetLabel() != newTest.GetLabel() { - log.Fatalf("data mismatch %q != %q", test.GetLabel(), newTest.GetLabel()) - } - // Use a type switch to determine which oneof was set. - switch u := test.Union.(type) { - case *pb.Test_Number: // u.Number contains the number. - case *pb.Test_Name: // u.Name contains the string. - } - // etc. - } -*/ -package proto - -import ( - "encoding/json" - "fmt" - "log" - "reflect" - "sort" - "strconv" - "sync" -) - -// Message is implemented by generated protocol buffer messages. -type Message interface { - Reset() - String() string - ProtoMessage() -} - -// Stats records allocation details about the protocol buffer encoders -// and decoders. Useful for tuning the library itself. -type Stats struct { - Emalloc uint64 // mallocs in encode - Dmalloc uint64 // mallocs in decode - Encode uint64 // number of encodes - Decode uint64 // number of decodes - Chit uint64 // number of cache hits - Cmiss uint64 // number of cache misses - Size uint64 // number of sizes -} - -// Set to true to enable stats collection. -const collectStats = false - -var stats Stats - -// GetStats returns a copy of the global Stats structure. -func GetStats() Stats { return stats } - -// A Buffer is a buffer manager for marshaling and unmarshaling -// protocol buffers. It may be reused between invocations to -// reduce memory usage. It is not necessary to use a Buffer; -// the global functions Marshal and Unmarshal create a -// temporary Buffer and are fine for most applications. -type Buffer struct { - buf []byte // encode/decode byte stream - index int // write point - - // pools of basic types to amortize allocation. - bools []bool - uint32s []uint32 - uint64s []uint64 - - // extra pools, only used with pointer_reflect.go - int32s []int32 - int64s []int64 - float32s []float32 - float64s []float64 -} - -// NewBuffer allocates a new Buffer and initializes its internal data to -// the contents of the argument slice. -func NewBuffer(e []byte) *Buffer { - return &Buffer{buf: e} -} - -// Reset resets the Buffer, ready for marshaling a new protocol buffer. -func (p *Buffer) Reset() { - p.buf = p.buf[0:0] // for reading/writing - p.index = 0 // for reading -} - -// SetBuf replaces the internal buffer with the slice, -// ready for unmarshaling the contents of the slice. -func (p *Buffer) SetBuf(s []byte) { - p.buf = s - p.index = 0 -} - -// Bytes returns the contents of the Buffer. -func (p *Buffer) Bytes() []byte { return p.buf } - -/* - * Helper routines for simplifying the creation of optional fields of basic type. - */ - -// Bool is a helper routine that allocates a new bool value -// to store v and returns a pointer to it. -func Bool(v bool) *bool { - return &v -} - -// Int32 is a helper routine that allocates a new int32 value -// to store v and returns a pointer to it. -func Int32(v int32) *int32 { - return &v -} - -// Int is a helper routine that allocates a new int32 value -// to store v and returns a pointer to it, but unlike Int32 -// its argument value is an int. -func Int(v int) *int32 { - p := new(int32) - *p = int32(v) - return p -} - -// Int64 is a helper routine that allocates a new int64 value -// to store v and returns a pointer to it. -func Int64(v int64) *int64 { - return &v -} - -// Float32 is a helper routine that allocates a new float32 value -// to store v and returns a pointer to it. -func Float32(v float32) *float32 { - return &v -} - -// Float64 is a helper routine that allocates a new float64 value -// to store v and returns a pointer to it. -func Float64(v float64) *float64 { - return &v -} - -// Uint32 is a helper routine that allocates a new uint32 value -// to store v and returns a pointer to it. -func Uint32(v uint32) *uint32 { - return &v -} - -// Uint64 is a helper routine that allocates a new uint64 value -// to store v and returns a pointer to it. -func Uint64(v uint64) *uint64 { - return &v -} - -// String is a helper routine that allocates a new string value -// to store v and returns a pointer to it. -func String(v string) *string { - return &v -} - -// EnumName is a helper function to simplify printing protocol buffer enums -// by name. Given an enum map and a value, it returns a useful string. -func EnumName(m map[int32]string, v int32) string { - s, ok := m[v] - if ok { - return s - } - return strconv.Itoa(int(v)) -} - -// UnmarshalJSONEnum is a helper function to simplify recovering enum int values -// from their JSON-encoded representation. Given a map from the enum's symbolic -// names to its int values, and a byte buffer containing the JSON-encoded -// value, it returns an int32 that can be cast to the enum type by the caller. -// -// The function can deal with both JSON representations, numeric and symbolic. -func UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) { - if data[0] == '"' { - // New style: enums are strings. - var repr string - if err := json.Unmarshal(data, &repr); err != nil { - return -1, err - } - val, ok := m[repr] - if !ok { - return 0, fmt.Errorf("unrecognized enum %s value %q", enumName, repr) - } - return val, nil - } - // Old style: enums are ints. - var val int32 - if err := json.Unmarshal(data, &val); err != nil { - return 0, fmt.Errorf("cannot unmarshal %#q into enum %s", data, enumName) - } - return val, nil -} - -// DebugPrint dumps the encoded data in b in a debugging format with a header -// including the string s. Used in testing but made available for general debugging. -func (p *Buffer) DebugPrint(s string, b []byte) { - var u uint64 - - obuf := p.buf - index := p.index - p.buf = b - p.index = 0 - depth := 0 - - fmt.Printf("\n--- %s ---\n", s) - -out: - for { - for i := 0; i < depth; i++ { - fmt.Print(" ") - } - - index := p.index - if index == len(p.buf) { - break - } - - op, err := p.DecodeVarint() - if err != nil { - fmt.Printf("%3d: fetching op err %v\n", index, err) - break out - } - tag := op >> 3 - wire := op & 7 - - switch wire { - default: - fmt.Printf("%3d: t=%3d unknown wire=%d\n", - index, tag, wire) - break out - - case WireBytes: - var r []byte - - r, err = p.DecodeRawBytes(false) - if err != nil { - break out - } - fmt.Printf("%3d: t=%3d bytes [%d]", index, tag, len(r)) - if len(r) <= 6 { - for i := 0; i < len(r); i++ { - fmt.Printf(" %.2x", r[i]) - } - } else { - for i := 0; i < 3; i++ { - fmt.Printf(" %.2x", r[i]) - } - fmt.Printf(" ..") - for i := len(r) - 3; i < len(r); i++ { - fmt.Printf(" %.2x", r[i]) - } - } - fmt.Printf("\n") - - case WireFixed32: - u, err = p.DecodeFixed32() - if err != nil { - fmt.Printf("%3d: t=%3d fix32 err %v\n", index, tag, err) - break out - } - fmt.Printf("%3d: t=%3d fix32 %d\n", index, tag, u) - - case WireFixed64: - u, err = p.DecodeFixed64() - if err != nil { - fmt.Printf("%3d: t=%3d fix64 err %v\n", index, tag, err) - break out - } - fmt.Printf("%3d: t=%3d fix64 %d\n", index, tag, u) - - case WireVarint: - u, err = p.DecodeVarint() - if err != nil { - fmt.Printf("%3d: t=%3d varint err %v\n", index, tag, err) - break out - } - fmt.Printf("%3d: t=%3d varint %d\n", index, tag, u) - - case WireStartGroup: - fmt.Printf("%3d: t=%3d start\n", index, tag) - depth++ - - case WireEndGroup: - depth-- - fmt.Printf("%3d: t=%3d end\n", index, tag) - } - } - - if depth != 0 { - fmt.Printf("%3d: start-end not balanced %d\n", p.index, depth) - } - fmt.Printf("\n") - - p.buf = obuf - p.index = index -} - -// SetDefaults sets unset protocol buffer fields to their default values. -// It only modifies fields that are both unset and have defined defaults. -// It recursively sets default values in any non-nil sub-messages. -func SetDefaults(pb Message) { - setDefaults(reflect.ValueOf(pb), true, false) -} - -// v is a pointer to a struct. -func setDefaults(v reflect.Value, recur, zeros bool) { - v = v.Elem() - - defaultMu.RLock() - dm, ok := defaults[v.Type()] - defaultMu.RUnlock() - if !ok { - dm = buildDefaultMessage(v.Type()) - defaultMu.Lock() - defaults[v.Type()] = dm - defaultMu.Unlock() - } - - for _, sf := range dm.scalars { - f := v.Field(sf.index) - if !f.IsNil() { - // field already set - continue - } - dv := sf.value - if dv == nil && !zeros { - // no explicit default, and don't want to set zeros - continue - } - fptr := f.Addr().Interface() // **T - // TODO: Consider batching the allocations we do here. - switch sf.kind { - case reflect.Bool: - b := new(bool) - if dv != nil { - *b = dv.(bool) - } - *(fptr.(**bool)) = b - case reflect.Float32: - f := new(float32) - if dv != nil { - *f = dv.(float32) - } - *(fptr.(**float32)) = f - case reflect.Float64: - f := new(float64) - if dv != nil { - *f = dv.(float64) - } - *(fptr.(**float64)) = f - case reflect.Int32: - // might be an enum - if ft := f.Type(); ft != int32PtrType { - // enum - f.Set(reflect.New(ft.Elem())) - if dv != nil { - f.Elem().SetInt(int64(dv.(int32))) - } - } else { - // int32 field - i := new(int32) - if dv != nil { - *i = dv.(int32) - } - *(fptr.(**int32)) = i - } - case reflect.Int64: - i := new(int64) - if dv != nil { - *i = dv.(int64) - } - *(fptr.(**int64)) = i - case reflect.String: - s := new(string) - if dv != nil { - *s = dv.(string) - } - *(fptr.(**string)) = s - case reflect.Uint8: - // exceptional case: []byte - var b []byte - if dv != nil { - db := dv.([]byte) - b = make([]byte, len(db)) - copy(b, db) - } else { - b = []byte{} - } - *(fptr.(*[]byte)) = b - case reflect.Uint32: - u := new(uint32) - if dv != nil { - *u = dv.(uint32) - } - *(fptr.(**uint32)) = u - case reflect.Uint64: - u := new(uint64) - if dv != nil { - *u = dv.(uint64) - } - *(fptr.(**uint64)) = u - default: - log.Printf("proto: can't set default for field %v (sf.kind=%v)", f, sf.kind) - } - } - - for _, ni := range dm.nested { - f := v.Field(ni) - // f is *T or []*T or map[T]*T - switch f.Kind() { - case reflect.Ptr: - if f.IsNil() { - continue - } - setDefaults(f, recur, zeros) - - case reflect.Slice: - for i := 0; i < f.Len(); i++ { - e := f.Index(i) - if e.IsNil() { - continue - } - setDefaults(e, recur, zeros) - } - - case reflect.Map: - for _, k := range f.MapKeys() { - e := f.MapIndex(k) - if e.IsNil() { - continue - } - setDefaults(e, recur, zeros) - } - } - } -} - -var ( - // defaults maps a protocol buffer struct type to a slice of the fields, - // with its scalar fields set to their proto-declared non-zero default values. - defaultMu sync.RWMutex - defaults = make(map[reflect.Type]defaultMessage) - - int32PtrType = reflect.TypeOf((*int32)(nil)) -) - -// defaultMessage represents information about the default values of a message. -type defaultMessage struct { - scalars []scalarField - nested []int // struct field index of nested messages -} - -type scalarField struct { - index int // struct field index - kind reflect.Kind // element type (the T in *T or []T) - value interface{} // the proto-declared default value, or nil -} - -// t is a struct type. -func buildDefaultMessage(t reflect.Type) (dm defaultMessage) { - sprop := GetProperties(t) - for _, prop := range sprop.Prop { - fi, ok := sprop.decoderTags.get(prop.Tag) - if !ok { - // XXX_unrecognized - continue - } - ft := t.Field(fi).Type - - sf, nested, err := fieldDefault(ft, prop) - switch { - case err != nil: - log.Print(err) - case nested: - dm.nested = append(dm.nested, fi) - case sf != nil: - sf.index = fi - dm.scalars = append(dm.scalars, *sf) - } - } - - return dm -} - -// fieldDefault returns the scalarField for field type ft. -// sf will be nil if the field can not have a default. -// nestedMessage will be true if this is a nested message. -// Note that sf.index is not set on return. -func fieldDefault(ft reflect.Type, prop *Properties) (sf *scalarField, nestedMessage bool, err error) { - var canHaveDefault bool - switch ft.Kind() { - case reflect.Ptr: - if ft.Elem().Kind() == reflect.Struct { - nestedMessage = true - } else { - canHaveDefault = true // proto2 scalar field - } - - case reflect.Slice: - switch ft.Elem().Kind() { - case reflect.Ptr: - nestedMessage = true // repeated message - case reflect.Uint8: - canHaveDefault = true // bytes field - } - - case reflect.Map: - if ft.Elem().Kind() == reflect.Ptr { - nestedMessage = true // map with message values - } - } - - if !canHaveDefault { - if nestedMessage { - return nil, true, nil - } - return nil, false, nil - } - - // We now know that ft is a pointer or slice. - sf = &scalarField{kind: ft.Elem().Kind()} - - // scalar fields without defaults - if !prop.HasDefault { - return sf, false, nil - } - - // a scalar field: either *T or []byte - switch ft.Elem().Kind() { - case reflect.Bool: - x, err := strconv.ParseBool(prop.Default) - if err != nil { - return nil, false, fmt.Errorf("proto: bad default bool %q: %v", prop.Default, err) - } - sf.value = x - case reflect.Float32: - x, err := strconv.ParseFloat(prop.Default, 32) - if err != nil { - return nil, false, fmt.Errorf("proto: bad default float32 %q: %v", prop.Default, err) - } - sf.value = float32(x) - case reflect.Float64: - x, err := strconv.ParseFloat(prop.Default, 64) - if err != nil { - return nil, false, fmt.Errorf("proto: bad default float64 %q: %v", prop.Default, err) - } - sf.value = x - case reflect.Int32: - x, err := strconv.ParseInt(prop.Default, 10, 32) - if err != nil { - return nil, false, fmt.Errorf("proto: bad default int32 %q: %v", prop.Default, err) - } - sf.value = int32(x) - case reflect.Int64: - x, err := strconv.ParseInt(prop.Default, 10, 64) - if err != nil { - return nil, false, fmt.Errorf("proto: bad default int64 %q: %v", prop.Default, err) - } - sf.value = x - case reflect.String: - sf.value = prop.Default - case reflect.Uint8: - // []byte (not *uint8) - sf.value = []byte(prop.Default) - case reflect.Uint32: - x, err := strconv.ParseUint(prop.Default, 10, 32) - if err != nil { - return nil, false, fmt.Errorf("proto: bad default uint32 %q: %v", prop.Default, err) - } - sf.value = uint32(x) - case reflect.Uint64: - x, err := strconv.ParseUint(prop.Default, 10, 64) - if err != nil { - return nil, false, fmt.Errorf("proto: bad default uint64 %q: %v", prop.Default, err) - } - sf.value = x - default: - return nil, false, fmt.Errorf("proto: unhandled def kind %v", ft.Elem().Kind()) - } - - return sf, false, nil -} - -// Map fields may have key types of non-float scalars, strings and enums. -// The easiest way to sort them in some deterministic order is to use fmt. -// If this turns out to be inefficient we can always consider other options, -// such as doing a Schwartzian transform. - -func mapKeys(vs []reflect.Value) sort.Interface { - s := mapKeySorter{ - vs: vs, - // default Less function: textual comparison - less: func(a, b reflect.Value) bool { - return fmt.Sprint(a.Interface()) < fmt.Sprint(b.Interface()) - }, - } - - // Type specialization per https://developers.google.com/protocol-buffers/docs/proto#maps; - // numeric keys are sorted numerically. - if len(vs) == 0 { - return s - } - switch vs[0].Kind() { - case reflect.Int32, reflect.Int64: - s.less = func(a, b reflect.Value) bool { return a.Int() < b.Int() } - case reflect.Uint32, reflect.Uint64: - s.less = func(a, b reflect.Value) bool { return a.Uint() < b.Uint() } - } - - return s -} - -type mapKeySorter struct { - vs []reflect.Value - less func(a, b reflect.Value) bool -} - -func (s mapKeySorter) Len() int { return len(s.vs) } -func (s mapKeySorter) Swap(i, j int) { s.vs[i], s.vs[j] = s.vs[j], s.vs[i] } -func (s mapKeySorter) Less(i, j int) bool { - return s.less(s.vs[i], s.vs[j]) -} - -// isProto3Zero reports whether v is a zero proto3 value. -func isProto3Zero(v reflect.Value) bool { - switch v.Kind() { - case reflect.Bool: - return !v.Bool() - case reflect.Int32, reflect.Int64: - return v.Int() == 0 - case reflect.Uint32, reflect.Uint64: - return v.Uint() == 0 - case reflect.Float32, reflect.Float64: - return v.Float() == 0 - case reflect.String: - return v.String() == "" - } - return false -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/lib_gogo.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/lib_gogo.go deleted file mode 100644 index a6c2c06b..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/lib_gogo.go +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package proto - -import ( - "encoding/json" - "strconv" -) - -func MarshalJSONEnum(m map[int32]string, value int32) ([]byte, error) { - s, ok := m[value] - if !ok { - s = strconv.Itoa(int(value)) - } - return json.Marshal(s) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/message_set.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/message_set.go deleted file mode 100644 index e25e01e6..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/message_set.go +++ /dev/null @@ -1,280 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto - -/* - * Support for message sets. - */ - -import ( - "bytes" - "encoding/json" - "errors" - "fmt" - "reflect" - "sort" -) - -// errNoMessageTypeID occurs when a protocol buffer does not have a message type ID. -// A message type ID is required for storing a protocol buffer in a message set. -var errNoMessageTypeID = errors.New("proto does not have a message type ID") - -// The first two types (_MessageSet_Item and messageSet) -// model what the protocol compiler produces for the following protocol message: -// message MessageSet { -// repeated group Item = 1 { -// required int32 type_id = 2; -// required string message = 3; -// }; -// } -// That is the MessageSet wire format. We can't use a proto to generate these -// because that would introduce a circular dependency between it and this package. - -type _MessageSet_Item struct { - TypeId *int32 `protobuf:"varint,2,req,name=type_id"` - Message []byte `protobuf:"bytes,3,req,name=message"` -} - -type messageSet struct { - Item []*_MessageSet_Item `protobuf:"group,1,rep"` - XXX_unrecognized []byte - // TODO: caching? -} - -// Make sure messageSet is a Message. -var _ Message = (*messageSet)(nil) - -// messageTypeIder is an interface satisfied by a protocol buffer type -// that may be stored in a MessageSet. -type messageTypeIder interface { - MessageTypeId() int32 -} - -func (ms *messageSet) find(pb Message) *_MessageSet_Item { - mti, ok := pb.(messageTypeIder) - if !ok { - return nil - } - id := mti.MessageTypeId() - for _, item := range ms.Item { - if *item.TypeId == id { - return item - } - } - return nil -} - -func (ms *messageSet) Has(pb Message) bool { - if ms.find(pb) != nil { - return true - } - return false -} - -func (ms *messageSet) Unmarshal(pb Message) error { - if item := ms.find(pb); item != nil { - return Unmarshal(item.Message, pb) - } - if _, ok := pb.(messageTypeIder); !ok { - return errNoMessageTypeID - } - return nil // TODO: return error instead? -} - -func (ms *messageSet) Marshal(pb Message) error { - msg, err := Marshal(pb) - if err != nil { - return err - } - if item := ms.find(pb); item != nil { - // reuse existing item - item.Message = msg - return nil - } - - mti, ok := pb.(messageTypeIder) - if !ok { - return errNoMessageTypeID - } - - mtid := mti.MessageTypeId() - ms.Item = append(ms.Item, &_MessageSet_Item{ - TypeId: &mtid, - Message: msg, - }) - return nil -} - -func (ms *messageSet) Reset() { *ms = messageSet{} } -func (ms *messageSet) String() string { return CompactTextString(ms) } -func (*messageSet) ProtoMessage() {} - -// Support for the message_set_wire_format message option. - -func skipVarint(buf []byte) []byte { - i := 0 - for ; buf[i]&0x80 != 0; i++ { - } - return buf[i+1:] -} - -// MarshalMessageSet encodes the extension map represented by m in the message set wire format. -// It is called by generated Marshal methods on protocol buffer messages with the message_set_wire_format option. -func MarshalMessageSet(m map[int32]Extension) ([]byte, error) { - if err := encodeExtensionMap(m); err != nil { - return nil, err - } - - // Sort extension IDs to provide a deterministic encoding. - // See also enc_map in encode.go. - ids := make([]int, 0, len(m)) - for id := range m { - ids = append(ids, int(id)) - } - sort.Ints(ids) - - ms := &messageSet{Item: make([]*_MessageSet_Item, 0, len(m))} - for _, id := range ids { - e := m[int32(id)] - // Remove the wire type and field number varint, as well as the length varint. - msg := skipVarint(skipVarint(e.enc)) - - ms.Item = append(ms.Item, &_MessageSet_Item{ - TypeId: Int32(int32(id)), - Message: msg, - }) - } - return Marshal(ms) -} - -// UnmarshalMessageSet decodes the extension map encoded in buf in the message set wire format. -// It is called by generated Unmarshal methods on protocol buffer messages with the message_set_wire_format option. -func UnmarshalMessageSet(buf []byte, m map[int32]Extension) error { - ms := new(messageSet) - if err := Unmarshal(buf, ms); err != nil { - return err - } - for _, item := range ms.Item { - id := *item.TypeId - msg := item.Message - - // Restore wire type and field number varint, plus length varint. - // Be careful to preserve duplicate items. - b := EncodeVarint(uint64(id)<<3 | WireBytes) - if ext, ok := m[id]; ok { - // Existing data; rip off the tag and length varint - // so we join the new data correctly. - // We can assume that ext.enc is set because we are unmarshaling. - o := ext.enc[len(b):] // skip wire type and field number - _, n := DecodeVarint(o) // calculate length of length varint - o = o[n:] // skip length varint - msg = append(o, msg...) // join old data and new data - } - b = append(b, EncodeVarint(uint64(len(msg)))...) - b = append(b, msg...) - - m[id] = Extension{enc: b} - } - return nil -} - -// MarshalMessageSetJSON encodes the extension map represented by m in JSON format. -// It is called by generated MarshalJSON methods on protocol buffer messages with the message_set_wire_format option. -func MarshalMessageSetJSON(m map[int32]Extension) ([]byte, error) { - var b bytes.Buffer - b.WriteByte('{') - - // Process the map in key order for deterministic output. - ids := make([]int32, 0, len(m)) - for id := range m { - ids = append(ids, id) - } - sort.Sort(int32Slice(ids)) // int32Slice defined in text.go - - for i, id := range ids { - ext := m[id] - if i > 0 { - b.WriteByte(',') - } - - msd, ok := messageSetMap[id] - if !ok { - // Unknown type; we can't render it, so skip it. - continue - } - fmt.Fprintf(&b, `"[%s]":`, msd.name) - - x := ext.value - if x == nil { - x = reflect.New(msd.t.Elem()).Interface() - if err := Unmarshal(ext.enc, x.(Message)); err != nil { - return nil, err - } - } - d, err := json.Marshal(x) - if err != nil { - return nil, err - } - b.Write(d) - } - b.WriteByte('}') - return b.Bytes(), nil -} - -// UnmarshalMessageSetJSON decodes the extension map encoded in buf in JSON format. -// It is called by generated UnmarshalJSON methods on protocol buffer messages with the message_set_wire_format option. -func UnmarshalMessageSetJSON(buf []byte, m map[int32]Extension) error { - // Common-case fast path. - if len(buf) == 0 || bytes.Equal(buf, []byte("{}")) { - return nil - } - - // This is fairly tricky, and it's not clear that it is needed. - return errors.New("TODO: UnmarshalMessageSetJSON not yet implemented") -} - -// A global registry of types that can be used in a MessageSet. - -var messageSetMap = make(map[int32]messageSetDesc) - -type messageSetDesc struct { - t reflect.Type // pointer to struct - name string -} - -// RegisterMessageSetType is called from the generated code. -func RegisterMessageSetType(m Message, fieldNum int32, name string) { - messageSetMap[fieldNum] = messageSetDesc{ - t: reflect.TypeOf(m), - name: name, - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/message_set_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/message_set_test.go deleted file mode 100644 index ab8ac2f0..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/message_set_test.go +++ /dev/null @@ -1,66 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2014 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto - -import ( - "bytes" - "testing" -) - -func TestUnmarshalMessageSetWithDuplicate(t *testing.T) { - // Check that a repeated message set entry will be concatenated. - in := &messageSet{ - Item: []*_MessageSet_Item{ - {TypeId: Int32(12345), Message: []byte("hoo")}, - {TypeId: Int32(12345), Message: []byte("hah")}, - }, - } - b, err := Marshal(in) - if err != nil { - t.Fatalf("Marshal: %v", err) - } - t.Logf("Marshaled bytes: %q", b) - - m := make(map[int32]Extension) - if err := UnmarshalMessageSet(b, m); err != nil { - t.Fatalf("UnmarshalMessageSet: %v", err) - } - ext, ok := m[12345] - if !ok { - t.Fatalf("Didn't retrieve extension 12345; map is %v", m) - } - // Skip wire type/field number and length varints. - got := skipVarint(skipVarint(ext.enc)) - if want := []byte("hoohah"); !bytes.Equal(got, want) { - t.Errorf("Combined extension is %q, want %q", got, want) - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/pointer_reflect.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/pointer_reflect.go deleted file mode 100644 index 749919d2..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/pointer_reflect.go +++ /dev/null @@ -1,479 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2012 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -// +build appengine - -// This file contains an implementation of proto field accesses using package reflect. -// It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can -// be used on App Engine. - -package proto - -import ( - "math" - "reflect" -) - -// A structPointer is a pointer to a struct. -type structPointer struct { - v reflect.Value -} - -// toStructPointer returns a structPointer equivalent to the given reflect value. -// The reflect value must itself be a pointer to a struct. -func toStructPointer(v reflect.Value) structPointer { - return structPointer{v} -} - -// IsNil reports whether p is nil. -func structPointer_IsNil(p structPointer) bool { - return p.v.IsNil() -} - -// Interface returns the struct pointer as an interface value. -func structPointer_Interface(p structPointer, _ reflect.Type) interface{} { - return p.v.Interface() -} - -// A field identifies a field in a struct, accessible from a structPointer. -// In this implementation, a field is identified by the sequence of field indices -// passed to reflect's FieldByIndex. -type field []int - -// toField returns a field equivalent to the given reflect field. -func toField(f *reflect.StructField) field { - return f.Index -} - -// invalidField is an invalid field identifier. -var invalidField = field(nil) - -// IsValid reports whether the field identifier is valid. -func (f field) IsValid() bool { return f != nil } - -// field returns the given field in the struct as a reflect value. -func structPointer_field(p structPointer, f field) reflect.Value { - // Special case: an extension map entry with a value of type T - // passes a *T to the struct-handling code with a zero field, - // expecting that it will be treated as equivalent to *struct{ X T }, - // which has the same memory layout. We have to handle that case - // specially, because reflect will panic if we call FieldByIndex on a - // non-struct. - if f == nil { - return p.v.Elem() - } - - return p.v.Elem().FieldByIndex(f) -} - -// ifield returns the given field in the struct as an interface value. -func structPointer_ifield(p structPointer, f field) interface{} { - return structPointer_field(p, f).Addr().Interface() -} - -// Bytes returns the address of a []byte field in the struct. -func structPointer_Bytes(p structPointer, f field) *[]byte { - return structPointer_ifield(p, f).(*[]byte) -} - -// BytesSlice returns the address of a [][]byte field in the struct. -func structPointer_BytesSlice(p structPointer, f field) *[][]byte { - return structPointer_ifield(p, f).(*[][]byte) -} - -// Bool returns the address of a *bool field in the struct. -func structPointer_Bool(p structPointer, f field) **bool { - return structPointer_ifield(p, f).(**bool) -} - -// BoolVal returns the address of a bool field in the struct. -func structPointer_BoolVal(p structPointer, f field) *bool { - return structPointer_ifield(p, f).(*bool) -} - -// BoolSlice returns the address of a []bool field in the struct. -func structPointer_BoolSlice(p structPointer, f field) *[]bool { - return structPointer_ifield(p, f).(*[]bool) -} - -// String returns the address of a *string field in the struct. -func structPointer_String(p structPointer, f field) **string { - return structPointer_ifield(p, f).(**string) -} - -// StringVal returns the address of a string field in the struct. -func structPointer_StringVal(p structPointer, f field) *string { - return structPointer_ifield(p, f).(*string) -} - -// StringSlice returns the address of a []string field in the struct. -func structPointer_StringSlice(p structPointer, f field) *[]string { - return structPointer_ifield(p, f).(*[]string) -} - -// ExtMap returns the address of an extension map field in the struct. -func structPointer_ExtMap(p structPointer, f field) *map[int32]Extension { - return structPointer_ifield(p, f).(*map[int32]Extension) -} - -// NewAt returns the reflect.Value for a pointer to a field in the struct. -func structPointer_NewAt(p structPointer, f field, typ reflect.Type) reflect.Value { - return structPointer_field(p, f).Addr() -} - -// SetStructPointer writes a *struct field in the struct. -func structPointer_SetStructPointer(p structPointer, f field, q structPointer) { - structPointer_field(p, f).Set(q.v) -} - -// GetStructPointer reads a *struct field in the struct. -func structPointer_GetStructPointer(p structPointer, f field) structPointer { - return structPointer{structPointer_field(p, f)} -} - -// StructPointerSlice the address of a []*struct field in the struct. -func structPointer_StructPointerSlice(p structPointer, f field) structPointerSlice { - return structPointerSlice{structPointer_field(p, f)} -} - -// A structPointerSlice represents the address of a slice of pointers to structs -// (themselves messages or groups). That is, v.Type() is *[]*struct{...}. -type structPointerSlice struct { - v reflect.Value -} - -func (p structPointerSlice) Len() int { return p.v.Len() } -func (p structPointerSlice) Index(i int) structPointer { return structPointer{p.v.Index(i)} } -func (p structPointerSlice) Append(q structPointer) { - p.v.Set(reflect.Append(p.v, q.v)) -} - -var ( - int32Type = reflect.TypeOf(int32(0)) - uint32Type = reflect.TypeOf(uint32(0)) - float32Type = reflect.TypeOf(float32(0)) - int64Type = reflect.TypeOf(int64(0)) - uint64Type = reflect.TypeOf(uint64(0)) - float64Type = reflect.TypeOf(float64(0)) -) - -// A word32 represents a field of type *int32, *uint32, *float32, or *enum. -// That is, v.Type() is *int32, *uint32, *float32, or *enum and v is assignable. -type word32 struct { - v reflect.Value -} - -// IsNil reports whether p is nil. -func word32_IsNil(p word32) bool { - return p.v.IsNil() -} - -// Set sets p to point at a newly allocated word with bits set to x. -func word32_Set(p word32, o *Buffer, x uint32) { - t := p.v.Type().Elem() - switch t { - case int32Type: - if len(o.int32s) == 0 { - o.int32s = make([]int32, uint32PoolSize) - } - o.int32s[0] = int32(x) - p.v.Set(reflect.ValueOf(&o.int32s[0])) - o.int32s = o.int32s[1:] - return - case uint32Type: - if len(o.uint32s) == 0 { - o.uint32s = make([]uint32, uint32PoolSize) - } - o.uint32s[0] = x - p.v.Set(reflect.ValueOf(&o.uint32s[0])) - o.uint32s = o.uint32s[1:] - return - case float32Type: - if len(o.float32s) == 0 { - o.float32s = make([]float32, uint32PoolSize) - } - o.float32s[0] = math.Float32frombits(x) - p.v.Set(reflect.ValueOf(&o.float32s[0])) - o.float32s = o.float32s[1:] - return - } - - // must be enum - p.v.Set(reflect.New(t)) - p.v.Elem().SetInt(int64(int32(x))) -} - -// Get gets the bits pointed at by p, as a uint32. -func word32_Get(p word32) uint32 { - elem := p.v.Elem() - switch elem.Kind() { - case reflect.Int32: - return uint32(elem.Int()) - case reflect.Uint32: - return uint32(elem.Uint()) - case reflect.Float32: - return math.Float32bits(float32(elem.Float())) - } - panic("unreachable") -} - -// Word32 returns a reference to a *int32, *uint32, *float32, or *enum field in the struct. -func structPointer_Word32(p structPointer, f field) word32 { - return word32{structPointer_field(p, f)} -} - -// A word32Val represents a field of type int32, uint32, float32, or enum. -// That is, v.Type() is int32, uint32, float32, or enum and v is assignable. -type word32Val struct { - v reflect.Value -} - -// Set sets *p to x. -func word32Val_Set(p word32Val, x uint32) { - switch p.v.Type() { - case int32Type: - p.v.SetInt(int64(x)) - return - case uint32Type: - p.v.SetUint(uint64(x)) - return - case float32Type: - p.v.SetFloat(float64(math.Float32frombits(x))) - return - } - - // must be enum - p.v.SetInt(int64(int32(x))) -} - -// Get gets the bits pointed at by p, as a uint32. -func word32Val_Get(p word32Val) uint32 { - elem := p.v - switch elem.Kind() { - case reflect.Int32: - return uint32(elem.Int()) - case reflect.Uint32: - return uint32(elem.Uint()) - case reflect.Float32: - return math.Float32bits(float32(elem.Float())) - } - panic("unreachable") -} - -// Word32Val returns a reference to a int32, uint32, float32, or enum field in the struct. -func structPointer_Word32Val(p structPointer, f field) word32Val { - return word32Val{structPointer_field(p, f)} -} - -// A word32Slice is a slice of 32-bit values. -// That is, v.Type() is []int32, []uint32, []float32, or []enum. -type word32Slice struct { - v reflect.Value -} - -func (p word32Slice) Append(x uint32) { - n, m := p.v.Len(), p.v.Cap() - if n < m { - p.v.SetLen(n + 1) - } else { - t := p.v.Type().Elem() - p.v.Set(reflect.Append(p.v, reflect.Zero(t))) - } - elem := p.v.Index(n) - switch elem.Kind() { - case reflect.Int32: - elem.SetInt(int64(int32(x))) - case reflect.Uint32: - elem.SetUint(uint64(x)) - case reflect.Float32: - elem.SetFloat(float64(math.Float32frombits(x))) - } -} - -func (p word32Slice) Len() int { - return p.v.Len() -} - -func (p word32Slice) Index(i int) uint32 { - elem := p.v.Index(i) - switch elem.Kind() { - case reflect.Int32: - return uint32(elem.Int()) - case reflect.Uint32: - return uint32(elem.Uint()) - case reflect.Float32: - return math.Float32bits(float32(elem.Float())) - } - panic("unreachable") -} - -// Word32Slice returns a reference to a []int32, []uint32, []float32, or []enum field in the struct. -func structPointer_Word32Slice(p structPointer, f field) word32Slice { - return word32Slice{structPointer_field(p, f)} -} - -// word64 is like word32 but for 64-bit values. -type word64 struct { - v reflect.Value -} - -func word64_Set(p word64, o *Buffer, x uint64) { - t := p.v.Type().Elem() - switch t { - case int64Type: - if len(o.int64s) == 0 { - o.int64s = make([]int64, uint64PoolSize) - } - o.int64s[0] = int64(x) - p.v.Set(reflect.ValueOf(&o.int64s[0])) - o.int64s = o.int64s[1:] - return - case uint64Type: - if len(o.uint64s) == 0 { - o.uint64s = make([]uint64, uint64PoolSize) - } - o.uint64s[0] = x - p.v.Set(reflect.ValueOf(&o.uint64s[0])) - o.uint64s = o.uint64s[1:] - return - case float64Type: - if len(o.float64s) == 0 { - o.float64s = make([]float64, uint64PoolSize) - } - o.float64s[0] = math.Float64frombits(x) - p.v.Set(reflect.ValueOf(&o.float64s[0])) - o.float64s = o.float64s[1:] - return - } - panic("unreachable") -} - -func word64_IsNil(p word64) bool { - return p.v.IsNil() -} - -func word64_Get(p word64) uint64 { - elem := p.v.Elem() - switch elem.Kind() { - case reflect.Int64: - return uint64(elem.Int()) - case reflect.Uint64: - return elem.Uint() - case reflect.Float64: - return math.Float64bits(elem.Float()) - } - panic("unreachable") -} - -func structPointer_Word64(p structPointer, f field) word64 { - return word64{structPointer_field(p, f)} -} - -// word64Val is like word32Val but for 64-bit values. -type word64Val struct { - v reflect.Value -} - -func word64Val_Set(p word64Val, o *Buffer, x uint64) { - switch p.v.Type() { - case int64Type: - p.v.SetInt(int64(x)) - return - case uint64Type: - p.v.SetUint(x) - return - case float64Type: - p.v.SetFloat(math.Float64frombits(x)) - return - } - panic("unreachable") -} - -func word64Val_Get(p word64Val) uint64 { - elem := p.v - switch elem.Kind() { - case reflect.Int64: - return uint64(elem.Int()) - case reflect.Uint64: - return elem.Uint() - case reflect.Float64: - return math.Float64bits(elem.Float()) - } - panic("unreachable") -} - -func structPointer_Word64Val(p structPointer, f field) word64Val { - return word64Val{structPointer_field(p, f)} -} - -type word64Slice struct { - v reflect.Value -} - -func (p word64Slice) Append(x uint64) { - n, m := p.v.Len(), p.v.Cap() - if n < m { - p.v.SetLen(n + 1) - } else { - t := p.v.Type().Elem() - p.v.Set(reflect.Append(p.v, reflect.Zero(t))) - } - elem := p.v.Index(n) - switch elem.Kind() { - case reflect.Int64: - elem.SetInt(int64(int64(x))) - case reflect.Uint64: - elem.SetUint(uint64(x)) - case reflect.Float64: - elem.SetFloat(float64(math.Float64frombits(x))) - } -} - -func (p word64Slice) Len() int { - return p.v.Len() -} - -func (p word64Slice) Index(i int) uint64 { - elem := p.v.Index(i) - switch elem.Kind() { - case reflect.Int64: - return uint64(elem.Int()) - case reflect.Uint64: - return uint64(elem.Uint()) - case reflect.Float64: - return math.Float64bits(float64(elem.Float())) - } - panic("unreachable") -} - -func structPointer_Word64Slice(p structPointer, f field) word64Slice { - return word64Slice{structPointer_field(p, f)} -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/pointer_unsafe.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/pointer_unsafe.go deleted file mode 100644 index e9be0fe9..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/pointer_unsafe.go +++ /dev/null @@ -1,266 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2012 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -// +build !appengine - -// This file contains the implementation of the proto field accesses using package unsafe. - -package proto - -import ( - "reflect" - "unsafe" -) - -// NOTE: These type_Foo functions would more idiomatically be methods, -// but Go does not allow methods on pointer types, and we must preserve -// some pointer type for the garbage collector. We use these -// funcs with clunky names as our poor approximation to methods. -// -// An alternative would be -// type structPointer struct { p unsafe.Pointer } -// but that does not registerize as well. - -// A structPointer is a pointer to a struct. -type structPointer unsafe.Pointer - -// toStructPointer returns a structPointer equivalent to the given reflect value. -func toStructPointer(v reflect.Value) structPointer { - return structPointer(unsafe.Pointer(v.Pointer())) -} - -// IsNil reports whether p is nil. -func structPointer_IsNil(p structPointer) bool { - return p == nil -} - -// Interface returns the struct pointer, assumed to have element type t, -// as an interface value. -func structPointer_Interface(p structPointer, t reflect.Type) interface{} { - return reflect.NewAt(t, unsafe.Pointer(p)).Interface() -} - -// A field identifies a field in a struct, accessible from a structPointer. -// In this implementation, a field is identified by its byte offset from the start of the struct. -type field uintptr - -// toField returns a field equivalent to the given reflect field. -func toField(f *reflect.StructField) field { - return field(f.Offset) -} - -// invalidField is an invalid field identifier. -const invalidField = ^field(0) - -// IsValid reports whether the field identifier is valid. -func (f field) IsValid() bool { - return f != ^field(0) -} - -// Bytes returns the address of a []byte field in the struct. -func structPointer_Bytes(p structPointer, f field) *[]byte { - return (*[]byte)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -// BytesSlice returns the address of a [][]byte field in the struct. -func structPointer_BytesSlice(p structPointer, f field) *[][]byte { - return (*[][]byte)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -// Bool returns the address of a *bool field in the struct. -func structPointer_Bool(p structPointer, f field) **bool { - return (**bool)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -// BoolVal returns the address of a bool field in the struct. -func structPointer_BoolVal(p structPointer, f field) *bool { - return (*bool)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -// BoolSlice returns the address of a []bool field in the struct. -func structPointer_BoolSlice(p structPointer, f field) *[]bool { - return (*[]bool)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -// String returns the address of a *string field in the struct. -func structPointer_String(p structPointer, f field) **string { - return (**string)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -// StringVal returns the address of a string field in the struct. -func structPointer_StringVal(p structPointer, f field) *string { - return (*string)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -// StringSlice returns the address of a []string field in the struct. -func structPointer_StringSlice(p structPointer, f field) *[]string { - return (*[]string)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -// ExtMap returns the address of an extension map field in the struct. -func structPointer_ExtMap(p structPointer, f field) *map[int32]Extension { - return (*map[int32]Extension)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -// NewAt returns the reflect.Value for a pointer to a field in the struct. -func structPointer_NewAt(p structPointer, f field, typ reflect.Type) reflect.Value { - return reflect.NewAt(typ, unsafe.Pointer(uintptr(p)+uintptr(f))) -} - -// SetStructPointer writes a *struct field in the struct. -func structPointer_SetStructPointer(p structPointer, f field, q structPointer) { - *(*structPointer)(unsafe.Pointer(uintptr(p) + uintptr(f))) = q -} - -// GetStructPointer reads a *struct field in the struct. -func structPointer_GetStructPointer(p structPointer, f field) structPointer { - return *(*structPointer)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -// StructPointerSlice the address of a []*struct field in the struct. -func structPointer_StructPointerSlice(p structPointer, f field) *structPointerSlice { - return (*structPointerSlice)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -// A structPointerSlice represents a slice of pointers to structs (themselves submessages or groups). -type structPointerSlice []structPointer - -func (v *structPointerSlice) Len() int { return len(*v) } -func (v *structPointerSlice) Index(i int) structPointer { return (*v)[i] } -func (v *structPointerSlice) Append(p structPointer) { *v = append(*v, p) } - -// A word32 is the address of a "pointer to 32-bit value" field. -type word32 **uint32 - -// IsNil reports whether *v is nil. -func word32_IsNil(p word32) bool { - return *p == nil -} - -// Set sets *v to point at a newly allocated word set to x. -func word32_Set(p word32, o *Buffer, x uint32) { - if len(o.uint32s) == 0 { - o.uint32s = make([]uint32, uint32PoolSize) - } - o.uint32s[0] = x - *p = &o.uint32s[0] - o.uint32s = o.uint32s[1:] -} - -// Get gets the value pointed at by *v. -func word32_Get(p word32) uint32 { - return **p -} - -// Word32 returns the address of a *int32, *uint32, *float32, or *enum field in the struct. -func structPointer_Word32(p structPointer, f field) word32 { - return word32((**uint32)(unsafe.Pointer(uintptr(p) + uintptr(f)))) -} - -// A word32Val is the address of a 32-bit value field. -type word32Val *uint32 - -// Set sets *p to x. -func word32Val_Set(p word32Val, x uint32) { - *p = x -} - -// Get gets the value pointed at by p. -func word32Val_Get(p word32Val) uint32 { - return *p -} - -// Word32Val returns the address of a *int32, *uint32, *float32, or *enum field in the struct. -func structPointer_Word32Val(p structPointer, f field) word32Val { - return word32Val((*uint32)(unsafe.Pointer(uintptr(p) + uintptr(f)))) -} - -// A word32Slice is a slice of 32-bit values. -type word32Slice []uint32 - -func (v *word32Slice) Append(x uint32) { *v = append(*v, x) } -func (v *word32Slice) Len() int { return len(*v) } -func (v *word32Slice) Index(i int) uint32 { return (*v)[i] } - -// Word32Slice returns the address of a []int32, []uint32, []float32, or []enum field in the struct. -func structPointer_Word32Slice(p structPointer, f field) *word32Slice { - return (*word32Slice)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -// word64 is like word32 but for 64-bit values. -type word64 **uint64 - -func word64_Set(p word64, o *Buffer, x uint64) { - if len(o.uint64s) == 0 { - o.uint64s = make([]uint64, uint64PoolSize) - } - o.uint64s[0] = x - *p = &o.uint64s[0] - o.uint64s = o.uint64s[1:] -} - -func word64_IsNil(p word64) bool { - return *p == nil -} - -func word64_Get(p word64) uint64 { - return **p -} - -func structPointer_Word64(p structPointer, f field) word64 { - return word64((**uint64)(unsafe.Pointer(uintptr(p) + uintptr(f)))) -} - -// word64Val is like word32Val but for 64-bit values. -type word64Val *uint64 - -func word64Val_Set(p word64Val, o *Buffer, x uint64) { - *p = x -} - -func word64Val_Get(p word64Val) uint64 { - return *p -} - -func structPointer_Word64Val(p structPointer, f field) word64Val { - return word64Val((*uint64)(unsafe.Pointer(uintptr(p) + uintptr(f)))) -} - -// word64Slice is like word32Slice but for 64-bit values. -type word64Slice []uint64 - -func (v *word64Slice) Append(x uint64) { *v = append(*v, x) } -func (v *word64Slice) Len() int { return len(*v) } -func (v *word64Slice) Index(i int) uint64 { return (*v)[i] } - -func structPointer_Word64Slice(p structPointer, f field) *word64Slice { - return (*word64Slice)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/pointer_unsafe_gogo.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/pointer_unsafe_gogo.go deleted file mode 100644 index 6bc85fa9..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/pointer_unsafe_gogo.go +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -// +build !appengine - -// This file contains the implementation of the proto field accesses using package unsafe. - -package proto - -import ( - "reflect" - "unsafe" -) - -func structPointer_InterfaceAt(p structPointer, f field, t reflect.Type) interface{} { - point := unsafe.Pointer(uintptr(p) + uintptr(f)) - r := reflect.NewAt(t, point) - return r.Interface() -} - -func structPointer_InterfaceRef(p structPointer, f field, t reflect.Type) interface{} { - point := unsafe.Pointer(uintptr(p) + uintptr(f)) - r := reflect.NewAt(t, point) - if r.Elem().IsNil() { - return nil - } - return r.Elem().Interface() -} - -func copyUintPtr(oldptr, newptr uintptr, size int) { - oldbytes := make([]byte, 0) - oldslice := (*reflect.SliceHeader)(unsafe.Pointer(&oldbytes)) - oldslice.Data = oldptr - oldslice.Len = size - oldslice.Cap = size - newbytes := make([]byte, 0) - newslice := (*reflect.SliceHeader)(unsafe.Pointer(&newbytes)) - newslice.Data = newptr - newslice.Len = size - newslice.Cap = size - copy(newbytes, oldbytes) -} - -func structPointer_Copy(oldptr structPointer, newptr structPointer, size int) { - copyUintPtr(uintptr(oldptr), uintptr(newptr), size) -} - -func appendStructPointer(base structPointer, f field, typ reflect.Type) structPointer { - size := typ.Elem().Size() - oldHeader := structPointer_GetSliceHeader(base, f) - newLen := oldHeader.Len + 1 - slice := reflect.MakeSlice(typ, newLen, newLen) - bas := toStructPointer(slice) - for i := 0; i < oldHeader.Len; i++ { - newElemptr := uintptr(bas) + uintptr(i)*size - oldElemptr := oldHeader.Data + uintptr(i)*size - copyUintPtr(oldElemptr, newElemptr, int(size)) - } - - oldHeader.Data = uintptr(bas) - oldHeader.Len = newLen - oldHeader.Cap = newLen - - return structPointer(unsafe.Pointer(uintptr(unsafe.Pointer(bas)) + uintptr(uintptr(newLen-1)*size))) -} - -func structPointer_FieldPointer(p structPointer, f field) structPointer { - return structPointer(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -func structPointer_GetRefStructPointer(p structPointer, f field) structPointer { - return structPointer((*structPointer)(unsafe.Pointer(uintptr(p) + uintptr(f)))) -} - -func structPointer_GetSliceHeader(p structPointer, f field) *reflect.SliceHeader { - return (*reflect.SliceHeader)(unsafe.Pointer(uintptr(p) + uintptr(f))) -} - -func structPointer_Add(p structPointer, size field) structPointer { - return structPointer(unsafe.Pointer(uintptr(p) + uintptr(size))) -} - -func structPointer_Len(p structPointer, f field) int { - return len(*(*[]interface{})(unsafe.Pointer(structPointer_GetRefStructPointer(p, f)))) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/properties.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/properties.go deleted file mode 100644 index 4711057e..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/properties.go +++ /dev/null @@ -1,915 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto - -/* - * Routines for encoding data into the wire format for protocol buffers. - */ - -import ( - "fmt" - "log" - "os" - "reflect" - "sort" - "strconv" - "strings" - "sync" -) - -const debug bool = false - -// Constants that identify the encoding of a value on the wire. -const ( - WireVarint = 0 - WireFixed64 = 1 - WireBytes = 2 - WireStartGroup = 3 - WireEndGroup = 4 - WireFixed32 = 5 -) - -const startSize = 10 // initial slice/string sizes - -// Encoders are defined in encode.go -// An encoder outputs the full representation of a field, including its -// tag and encoder type. -type encoder func(p *Buffer, prop *Properties, base structPointer) error - -// A valueEncoder encodes a single integer in a particular encoding. -type valueEncoder func(o *Buffer, x uint64) error - -// Sizers are defined in encode.go -// A sizer returns the encoded size of a field, including its tag and encoder -// type. -type sizer func(prop *Properties, base structPointer) int - -// A valueSizer returns the encoded size of a single integer in a particular -// encoding. -type valueSizer func(x uint64) int - -// Decoders are defined in decode.go -// A decoder creates a value from its wire representation. -// Unrecognized subelements are saved in unrec. -type decoder func(p *Buffer, prop *Properties, base structPointer) error - -// A valueDecoder decodes a single integer in a particular encoding. -type valueDecoder func(o *Buffer) (x uint64, err error) - -// A oneofMarshaler does the marshaling for all oneof fields in a message. -type oneofMarshaler func(Message, *Buffer) error - -// A oneofUnmarshaler does the unmarshaling for a oneof field in a message. -type oneofUnmarshaler func(Message, int, int, *Buffer) (bool, error) - -// tagMap is an optimization over map[int]int for typical protocol buffer -// use-cases. Encoded protocol buffers are often in tag order with small tag -// numbers. -type tagMap struct { - fastTags []int - slowTags map[int]int -} - -// tagMapFastLimit is the upper bound on the tag number that will be stored in -// the tagMap slice rather than its map. -const tagMapFastLimit = 1024 - -func (p *tagMap) get(t int) (int, bool) { - if t > 0 && t < tagMapFastLimit { - if t >= len(p.fastTags) { - return 0, false - } - fi := p.fastTags[t] - return fi, fi >= 0 - } - fi, ok := p.slowTags[t] - return fi, ok -} - -func (p *tagMap) put(t int, fi int) { - if t > 0 && t < tagMapFastLimit { - for len(p.fastTags) < t+1 { - p.fastTags = append(p.fastTags, -1) - } - p.fastTags[t] = fi - return - } - if p.slowTags == nil { - p.slowTags = make(map[int]int) - } - p.slowTags[t] = fi -} - -// StructProperties represents properties for all the fields of a struct. -// decoderTags and decoderOrigNames should only be used by the decoder. -type StructProperties struct { - Prop []*Properties // properties for each field - reqCount int // required count - decoderTags tagMap // map from proto tag to struct field number - decoderOrigNames map[string]int // map from original name to struct field number - order []int // list of struct field numbers in tag order - unrecField field // field id of the XXX_unrecognized []byte field - extendable bool // is this an extendable proto - - oneofMarshaler oneofMarshaler - oneofUnmarshaler oneofUnmarshaler - stype reflect.Type - - // OneofTypes contains information about the oneof fields in this message. - // It is keyed by the original name of a field. - OneofTypes map[string]*OneofProperties -} - -// OneofProperties represents information about a specific field in a oneof. -type OneofProperties struct { - Type reflect.Type // pointer to generated struct type for this oneof field - Field int // struct field number of the containing oneof in the message - Prop *Properties -} - -// Implement the sorting interface so we can sort the fields in tag order, as recommended by the spec. -// See encode.go, (*Buffer).enc_struct. - -func (sp *StructProperties) Len() int { return len(sp.order) } -func (sp *StructProperties) Less(i, j int) bool { - return sp.Prop[sp.order[i]].Tag < sp.Prop[sp.order[j]].Tag -} -func (sp *StructProperties) Swap(i, j int) { sp.order[i], sp.order[j] = sp.order[j], sp.order[i] } - -// Properties represents the protocol-specific behavior of a single struct field. -type Properties struct { - Name string // name of the field, for error messages - OrigName string // original name before protocol compiler (always set) - Wire string - WireType int - Tag int - Required bool - Optional bool - Repeated bool - Packed bool // relevant for repeated primitives only - Enum string // set for enum types only - proto3 bool // whether this is known to be a proto3 field; set for []byte only - oneof bool // whether this is a oneof field - - Default string // default value - HasDefault bool // whether an explicit default was provided - CustomType string - def_uint64 uint64 - - enc encoder - valEnc valueEncoder // set for bool and numeric types only - field field - tagcode []byte // encoding of EncodeVarint((Tag<<3)|WireType) - tagbuf [8]byte - stype reflect.Type // set for struct types only - sstype reflect.Type // set for slices of structs types only - ctype reflect.Type // set for custom types only - sprop *StructProperties // set for struct types only - isMarshaler bool - isUnmarshaler bool - - mtype reflect.Type // set for map types only - mkeyprop *Properties // set for map types only - mvalprop *Properties // set for map types only - - size sizer - valSize valueSizer // set for bool and numeric types only - - dec decoder - valDec valueDecoder // set for bool and numeric types only - - // If this is a packable field, this will be the decoder for the packed version of the field. - packedDec decoder -} - -// String formats the properties in the protobuf struct field tag style. -func (p *Properties) String() string { - s := p.Wire - s = "," - s += strconv.Itoa(p.Tag) - if p.Required { - s += ",req" - } - if p.Optional { - s += ",opt" - } - if p.Repeated { - s += ",rep" - } - if p.Packed { - s += ",packed" - } - if p.OrigName != p.Name { - s += ",name=" + p.OrigName - } - if p.proto3 { - s += ",proto3" - } - if p.oneof { - s += ",oneof" - } - if len(p.Enum) > 0 { - s += ",enum=" + p.Enum - } - if p.HasDefault { - s += ",def=" + p.Default - } - return s -} - -// Parse populates p by parsing a string in the protobuf struct field tag style. -func (p *Properties) Parse(s string) { - // "bytes,49,opt,name=foo,def=hello!" - fields := strings.Split(s, ",") // breaks def=, but handled below. - if len(fields) < 2 { - fmt.Fprintf(os.Stderr, "proto: tag has too few fields: %q\n", s) - return - } - - p.Wire = fields[0] - switch p.Wire { - case "varint": - p.WireType = WireVarint - p.valEnc = (*Buffer).EncodeVarint - p.valDec = (*Buffer).DecodeVarint - p.valSize = sizeVarint - case "fixed32": - p.WireType = WireFixed32 - p.valEnc = (*Buffer).EncodeFixed32 - p.valDec = (*Buffer).DecodeFixed32 - p.valSize = sizeFixed32 - case "fixed64": - p.WireType = WireFixed64 - p.valEnc = (*Buffer).EncodeFixed64 - p.valDec = (*Buffer).DecodeFixed64 - p.valSize = sizeFixed64 - case "zigzag32": - p.WireType = WireVarint - p.valEnc = (*Buffer).EncodeZigzag32 - p.valDec = (*Buffer).DecodeZigzag32 - p.valSize = sizeZigzag32 - case "zigzag64": - p.WireType = WireVarint - p.valEnc = (*Buffer).EncodeZigzag64 - p.valDec = (*Buffer).DecodeZigzag64 - p.valSize = sizeZigzag64 - case "bytes", "group": - p.WireType = WireBytes - // no numeric converter for non-numeric types - default: - fmt.Fprintf(os.Stderr, "proto: tag has unknown wire type: %q\n", s) - return - } - - var err error - p.Tag, err = strconv.Atoi(fields[1]) - if err != nil { - return - } - - for i := 2; i < len(fields); i++ { - f := fields[i] - switch { - case f == "req": - p.Required = true - case f == "opt": - p.Optional = true - case f == "rep": - p.Repeated = true - case f == "packed": - p.Packed = true - case strings.HasPrefix(f, "name="): - p.OrigName = f[5:] - case strings.HasPrefix(f, "enum="): - p.Enum = f[5:] - case f == "proto3": - p.proto3 = true - case f == "oneof": - p.oneof = true - case strings.HasPrefix(f, "def="): - p.HasDefault = true - p.Default = f[4:] // rest of string - if i+1 < len(fields) { - // Commas aren't escaped, and def is always last. - p.Default += "," + strings.Join(fields[i+1:], ",") - break - } - case strings.HasPrefix(f, "embedded="): - p.OrigName = strings.Split(f, "=")[1] - case strings.HasPrefix(f, "customtype="): - p.CustomType = strings.Split(f, "=")[1] - } - } -} - -func logNoSliceEnc(t1, t2 reflect.Type) { - fmt.Fprintf(os.Stderr, "proto: no slice oenc for %T = []%T\n", t1, t2) -} - -var protoMessageType = reflect.TypeOf((*Message)(nil)).Elem() - -// Initialize the fields for encoding and decoding. -func (p *Properties) setEncAndDec(typ reflect.Type, f *reflect.StructField, lockGetProp bool) { - p.enc = nil - p.dec = nil - p.size = nil - if len(p.CustomType) > 0 { - p.setCustomEncAndDec(typ) - p.setTag(lockGetProp) - return - } - switch t1 := typ; t1.Kind() { - default: - fmt.Fprintf(os.Stderr, "proto: no coders for %v\n", t1) - - // proto3 scalar types - - case reflect.Bool: - if p.proto3 { - p.enc = (*Buffer).enc_proto3_bool - p.dec = (*Buffer).dec_proto3_bool - p.size = size_proto3_bool - } else { - p.enc = (*Buffer).enc_ref_bool - p.dec = (*Buffer).dec_proto3_bool - p.size = size_ref_bool - } - case reflect.Int32: - if p.proto3 { - p.enc = (*Buffer).enc_proto3_int32 - p.dec = (*Buffer).dec_proto3_int32 - p.size = size_proto3_int32 - } else { - p.enc = (*Buffer).enc_ref_int32 - p.dec = (*Buffer).dec_proto3_int32 - p.size = size_ref_int32 - } - case reflect.Uint32: - if p.proto3 { - p.enc = (*Buffer).enc_proto3_uint32 - p.dec = (*Buffer).dec_proto3_int32 // can reuse - p.size = size_proto3_uint32 - } else { - p.enc = (*Buffer).enc_ref_uint32 - p.dec = (*Buffer).dec_proto3_int32 // can reuse - p.size = size_ref_uint32 - } - case reflect.Int64, reflect.Uint64: - if p.proto3 { - p.enc = (*Buffer).enc_proto3_int64 - p.dec = (*Buffer).dec_proto3_int64 - p.size = size_proto3_int64 - } else { - p.enc = (*Buffer).enc_ref_int64 - p.dec = (*Buffer).dec_proto3_int64 - p.size = size_ref_int64 - } - case reflect.Float32: - if p.proto3 { - p.enc = (*Buffer).enc_proto3_uint32 // can just treat them as bits - p.dec = (*Buffer).dec_proto3_int32 - p.size = size_proto3_uint32 - } else { - p.enc = (*Buffer).enc_ref_uint32 // can just treat them as bits - p.dec = (*Buffer).dec_proto3_int32 - p.size = size_ref_uint32 - } - case reflect.Float64: - if p.proto3 { - p.enc = (*Buffer).enc_proto3_int64 // can just treat them as bits - p.dec = (*Buffer).dec_proto3_int64 - p.size = size_proto3_int64 - } else { - p.enc = (*Buffer).enc_ref_int64 // can just treat them as bits - p.dec = (*Buffer).dec_proto3_int64 - p.size = size_ref_int64 - } - case reflect.String: - if p.proto3 { - p.enc = (*Buffer).enc_proto3_string - p.dec = (*Buffer).dec_proto3_string - p.size = size_proto3_string - } else { - p.enc = (*Buffer).enc_ref_string - p.dec = (*Buffer).dec_proto3_string - p.size = size_ref_string - } - case reflect.Struct: - p.stype = typ - p.isMarshaler = isMarshaler(typ) - p.isUnmarshaler = isUnmarshaler(typ) - if p.Wire == "bytes" { - p.enc = (*Buffer).enc_ref_struct_message - p.dec = (*Buffer).dec_ref_struct_message - p.size = size_ref_struct_message - } else { - fmt.Fprintf(os.Stderr, "proto: no coders for struct %T\n", typ) - } - - case reflect.Ptr: - switch t2 := t1.Elem(); t2.Kind() { - default: - fmt.Fprintf(os.Stderr, "proto: no encoder function for %v -> %v\n", t1, t2) - break - case reflect.Bool: - p.enc = (*Buffer).enc_bool - p.dec = (*Buffer).dec_bool - p.size = size_bool - case reflect.Int32: - p.enc = (*Buffer).enc_int32 - p.dec = (*Buffer).dec_int32 - p.size = size_int32 - case reflect.Uint32: - p.enc = (*Buffer).enc_uint32 - p.dec = (*Buffer).dec_int32 // can reuse - p.size = size_uint32 - case reflect.Int64, reflect.Uint64: - p.enc = (*Buffer).enc_int64 - p.dec = (*Buffer).dec_int64 - p.size = size_int64 - case reflect.Float32: - p.enc = (*Buffer).enc_uint32 // can just treat them as bits - p.dec = (*Buffer).dec_int32 - p.size = size_uint32 - case reflect.Float64: - p.enc = (*Buffer).enc_int64 // can just treat them as bits - p.dec = (*Buffer).dec_int64 - p.size = size_int64 - case reflect.String: - p.enc = (*Buffer).enc_string - p.dec = (*Buffer).dec_string - p.size = size_string - case reflect.Struct: - p.stype = t1.Elem() - p.isMarshaler = isMarshaler(t1) - p.isUnmarshaler = isUnmarshaler(t1) - if p.Wire == "bytes" { - p.enc = (*Buffer).enc_struct_message - p.dec = (*Buffer).dec_struct_message - p.size = size_struct_message - } else { - p.enc = (*Buffer).enc_struct_group - p.dec = (*Buffer).dec_struct_group - p.size = size_struct_group - } - } - - case reflect.Slice: - switch t2 := t1.Elem(); t2.Kind() { - default: - logNoSliceEnc(t1, t2) - break - case reflect.Bool: - if p.Packed { - p.enc = (*Buffer).enc_slice_packed_bool - p.size = size_slice_packed_bool - } else { - p.enc = (*Buffer).enc_slice_bool - p.size = size_slice_bool - } - p.dec = (*Buffer).dec_slice_bool - p.packedDec = (*Buffer).dec_slice_packed_bool - case reflect.Int32: - if p.Packed { - p.enc = (*Buffer).enc_slice_packed_int32 - p.size = size_slice_packed_int32 - } else { - p.enc = (*Buffer).enc_slice_int32 - p.size = size_slice_int32 - } - p.dec = (*Buffer).dec_slice_int32 - p.packedDec = (*Buffer).dec_slice_packed_int32 - case reflect.Uint32: - if p.Packed { - p.enc = (*Buffer).enc_slice_packed_uint32 - p.size = size_slice_packed_uint32 - } else { - p.enc = (*Buffer).enc_slice_uint32 - p.size = size_slice_uint32 - } - p.dec = (*Buffer).dec_slice_int32 - p.packedDec = (*Buffer).dec_slice_packed_int32 - case reflect.Int64, reflect.Uint64: - if p.Packed { - p.enc = (*Buffer).enc_slice_packed_int64 - p.size = size_slice_packed_int64 - } else { - p.enc = (*Buffer).enc_slice_int64 - p.size = size_slice_int64 - } - p.dec = (*Buffer).dec_slice_int64 - p.packedDec = (*Buffer).dec_slice_packed_int64 - case reflect.Uint8: - p.enc = (*Buffer).enc_slice_byte - p.dec = (*Buffer).dec_slice_byte - p.size = size_slice_byte - // This is a []byte, which is either a bytes field, - // or the value of a map field. In the latter case, - // we always encode an empty []byte, so we should not - // use the proto3 enc/size funcs. - // f == nil iff this is the key/value of a map field. - if p.proto3 && f != nil { - p.enc = (*Buffer).enc_proto3_slice_byte - p.size = size_proto3_slice_byte - } - case reflect.Float32, reflect.Float64: - switch t2.Bits() { - case 32: - // can just treat them as bits - if p.Packed { - p.enc = (*Buffer).enc_slice_packed_uint32 - p.size = size_slice_packed_uint32 - } else { - p.enc = (*Buffer).enc_slice_uint32 - p.size = size_slice_uint32 - } - p.dec = (*Buffer).dec_slice_int32 - p.packedDec = (*Buffer).dec_slice_packed_int32 - case 64: - // can just treat them as bits - if p.Packed { - p.enc = (*Buffer).enc_slice_packed_int64 - p.size = size_slice_packed_int64 - } else { - p.enc = (*Buffer).enc_slice_int64 - p.size = size_slice_int64 - } - p.dec = (*Buffer).dec_slice_int64 - p.packedDec = (*Buffer).dec_slice_packed_int64 - default: - logNoSliceEnc(t1, t2) - break - } - case reflect.String: - p.enc = (*Buffer).enc_slice_string - p.dec = (*Buffer).dec_slice_string - p.size = size_slice_string - case reflect.Ptr: - switch t3 := t2.Elem(); t3.Kind() { - default: - fmt.Fprintf(os.Stderr, "proto: no ptr oenc for %T -> %T -> %T\n", t1, t2, t3) - break - case reflect.Struct: - p.stype = t2.Elem() - p.isMarshaler = isMarshaler(t2) - p.isUnmarshaler = isUnmarshaler(t2) - if p.Wire == "bytes" { - p.enc = (*Buffer).enc_slice_struct_message - p.dec = (*Buffer).dec_slice_struct_message - p.size = size_slice_struct_message - } else { - p.enc = (*Buffer).enc_slice_struct_group - p.dec = (*Buffer).dec_slice_struct_group - p.size = size_slice_struct_group - } - } - case reflect.Slice: - switch t2.Elem().Kind() { - default: - fmt.Fprintf(os.Stderr, "proto: no slice elem oenc for %T -> %T -> %T\n", t1, t2, t2.Elem()) - break - case reflect.Uint8: - p.enc = (*Buffer).enc_slice_slice_byte - p.dec = (*Buffer).dec_slice_slice_byte - p.size = size_slice_slice_byte - } - case reflect.Struct: - p.setSliceOfNonPointerStructs(t1) - } - - case reflect.Map: - p.enc = (*Buffer).enc_new_map - p.dec = (*Buffer).dec_new_map - p.size = size_new_map - - p.mtype = t1 - p.mkeyprop = &Properties{} - p.mkeyprop.init(reflect.PtrTo(p.mtype.Key()), "Key", f.Tag.Get("protobuf_key"), nil, lockGetProp) - p.mvalprop = &Properties{} - vtype := p.mtype.Elem() - if vtype.Kind() != reflect.Ptr && vtype.Kind() != reflect.Slice { - // The value type is not a message (*T) or bytes ([]byte), - // so we need encoders for the pointer to this type. - vtype = reflect.PtrTo(vtype) - } - p.mvalprop.init(vtype, "Value", f.Tag.Get("protobuf_val"), nil, lockGetProp) - } - p.setTag(lockGetProp) -} - -func (p *Properties) setTag(lockGetProp bool) { - // precalculate tag code - wire := p.WireType - if p.Packed { - wire = WireBytes - } - x := uint32(p.Tag)<<3 | uint32(wire) - i := 0 - for i = 0; x > 127; i++ { - p.tagbuf[i] = 0x80 | uint8(x&0x7F) - x >>= 7 - } - p.tagbuf[i] = uint8(x) - p.tagcode = p.tagbuf[0 : i+1] - - if p.stype != nil { - if lockGetProp { - p.sprop = GetProperties(p.stype) - } else { - p.sprop = getPropertiesLocked(p.stype) - } - } -} - -var ( - marshalerType = reflect.TypeOf((*Marshaler)(nil)).Elem() - unmarshalerType = reflect.TypeOf((*Unmarshaler)(nil)).Elem() -) - -// isMarshaler reports whether type t implements Marshaler. -func isMarshaler(t reflect.Type) bool { - return t.Implements(marshalerType) -} - -// isUnmarshaler reports whether type t implements Unmarshaler. -func isUnmarshaler(t reflect.Type) bool { - return t.Implements(unmarshalerType) -} - -// Init populates the properties from a protocol buffer struct tag. -func (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) { - p.init(typ, name, tag, f, true) -} - -func (p *Properties) init(typ reflect.Type, name, tag string, f *reflect.StructField, lockGetProp bool) { - // "bytes,49,opt,def=hello!" - p.Name = name - p.OrigName = name - if f != nil { - p.field = toField(f) - } - if tag == "" { - return - } - p.Parse(tag) - p.setEncAndDec(typ, f, lockGetProp) -} - -var ( - propertiesMu sync.RWMutex - propertiesMap = make(map[reflect.Type]*StructProperties) -) - -// GetProperties returns the list of properties for the type represented by t. -// t must represent a generated struct type of a protocol message. -func GetProperties(t reflect.Type) *StructProperties { - if t.Kind() != reflect.Struct { - panic("proto: type must have kind struct") - } - - // Most calls to GetProperties in a long-running program will be - // retrieving details for types we have seen before. - propertiesMu.RLock() - sprop, ok := propertiesMap[t] - propertiesMu.RUnlock() - if ok { - if collectStats { - stats.Chit++ - } - return sprop - } - - propertiesMu.Lock() - sprop = getPropertiesLocked(t) - propertiesMu.Unlock() - return sprop -} - -// getPropertiesLocked requires that propertiesMu is held. -func getPropertiesLocked(t reflect.Type) *StructProperties { - if prop, ok := propertiesMap[t]; ok { - if collectStats { - stats.Chit++ - } - return prop - } - if collectStats { - stats.Cmiss++ - } - - prop := new(StructProperties) - // in case of recursive protos, fill this in now. - propertiesMap[t] = prop - - // build properties - prop.extendable = reflect.PtrTo(t).Implements(extendableProtoType) - prop.unrecField = invalidField - prop.Prop = make([]*Properties, t.NumField()) - prop.order = make([]int, t.NumField()) - - isOneofMessage := false - for i := 0; i < t.NumField(); i++ { - f := t.Field(i) - p := new(Properties) - name := f.Name - p.init(f.Type, name, f.Tag.Get("protobuf"), &f, false) - - if f.Name == "XXX_extensions" { // special case - if len(f.Tag.Get("protobuf")) > 0 { - p.enc = (*Buffer).enc_ext_slice_byte - p.dec = nil // not needed - p.size = size_ext_slice_byte - } else { - p.enc = (*Buffer).enc_map - p.dec = nil // not needed - p.size = size_map - } - } - if f.Name == "XXX_unrecognized" { // special case - prop.unrecField = toField(&f) - } - oneof := f.Tag.Get("protobuf_oneof") != "" // special case - if oneof { - isOneofMessage = true - } - prop.Prop[i] = p - prop.order[i] = i - if debug { - print(i, " ", f.Name, " ", t.String(), " ") - if p.Tag > 0 { - print(p.String()) - } - print("\n") - } - if p.enc == nil && !strings.HasPrefix(f.Name, "XXX_") && !oneof { - fmt.Fprintln(os.Stderr, "proto: no encoder for", f.Name, f.Type.String(), "[GetProperties]") - } - } - - // Re-order prop.order. - sort.Sort(prop) - - type oneofMessage interface { - XXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), []interface{}) - } - if om, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(oneofMessage); isOneofMessage && ok { - var oots []interface{} - prop.oneofMarshaler, prop.oneofUnmarshaler, oots = om.XXX_OneofFuncs() - prop.stype = t - - // Interpret oneof metadata. - prop.OneofTypes = make(map[string]*OneofProperties) - for _, oot := range oots { - oop := &OneofProperties{ - Type: reflect.ValueOf(oot).Type(), // *T - Prop: new(Properties), - } - sft := oop.Type.Elem().Field(0) - oop.Prop.Name = sft.Name - oop.Prop.Parse(sft.Tag.Get("protobuf")) - // There will be exactly one interface field that - // this new value is assignable to. - for i := 0; i < t.NumField(); i++ { - f := t.Field(i) - if f.Type.Kind() != reflect.Interface { - continue - } - if !oop.Type.AssignableTo(f.Type) { - continue - } - oop.Field = i - break - } - prop.OneofTypes[oop.Prop.OrigName] = oop - } - } - - // build required counts - // build tags - reqCount := 0 - prop.decoderOrigNames = make(map[string]int) - for i, p := range prop.Prop { - if strings.HasPrefix(p.Name, "XXX_") { - // Internal fields should not appear in tags/origNames maps. - // They are handled specially when encoding and decoding. - continue - } - if p.Required { - reqCount++ - } - prop.decoderTags.put(p.Tag, i) - prop.decoderOrigNames[p.OrigName] = i - } - prop.reqCount = reqCount - - return prop -} - -// Return the Properties object for the x[0]'th field of the structure. -func propByIndex(t reflect.Type, x []int) *Properties { - if len(x) != 1 { - fmt.Fprintf(os.Stderr, "proto: field index dimension %d (not 1) for type %s\n", len(x), t) - return nil - } - prop := GetProperties(t) - return prop.Prop[x[0]] -} - -// Get the address and type of a pointer to a struct from an interface. -func getbase(pb Message) (t reflect.Type, b structPointer, err error) { - if pb == nil { - err = ErrNil - return - } - // get the reflect type of the pointer to the struct. - t = reflect.TypeOf(pb) - // get the address of the struct. - value := reflect.ValueOf(pb) - b = toStructPointer(value) - return -} - -// A global registry of enum types. -// The generated code will register the generated maps by calling RegisterEnum. - -var enumValueMaps = make(map[string]map[string]int32) -var enumStringMaps = make(map[string]map[int32]string) - -// RegisterEnum is called from the generated code to install the enum descriptor -// maps into the global table to aid parsing text format protocol buffers. -func RegisterEnum(typeName string, unusedNameMap map[int32]string, valueMap map[string]int32) { - if _, ok := enumValueMaps[typeName]; ok { - panic("proto: duplicate enum registered: " + typeName) - } - enumValueMaps[typeName] = valueMap - if _, ok := enumStringMaps[typeName]; ok { - panic("proto: duplicate enum registered: " + typeName) - } - enumStringMaps[typeName] = unusedNameMap -} - -// EnumValueMap returns the mapping from names to integers of the -// enum type enumType, or a nil if not found. -func EnumValueMap(enumType string) map[string]int32 { - return enumValueMaps[enumType] -} - -// A registry of all linked message types. -// The string is a fully-qualified proto name ("pkg.Message"). -var ( - protoTypes = make(map[string]reflect.Type) - revProtoTypes = make(map[reflect.Type]string) -) - -// RegisterType is called from generated code and maps from the fully qualified -// proto name to the type (pointer to struct) of the protocol buffer. -func RegisterType(x Message, name string) { - if _, ok := protoTypes[name]; ok { - // TODO: Some day, make this a panic. - log.Printf("proto: duplicate proto type registered: %s", name) - return - } - t := reflect.TypeOf(x) - protoTypes[name] = t - revProtoTypes[t] = name -} - -// MessageName returns the fully-qualified proto name for the given message type. -func MessageName(x Message) string { return revProtoTypes[reflect.TypeOf(x)] } - -// MessageType returns the message type (pointer to struct) for a named message. -func MessageType(name string) reflect.Type { return protoTypes[name] } diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/properties_gogo.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/properties_gogo.go deleted file mode 100644 index 8daf9f77..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/properties_gogo.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package proto - -import ( - "fmt" - "os" - "reflect" -) - -func (p *Properties) setCustomEncAndDec(typ reflect.Type) { - p.ctype = typ - if p.Repeated { - p.enc = (*Buffer).enc_custom_slice_bytes - p.dec = (*Buffer).dec_custom_slice_bytes - p.size = size_custom_slice_bytes - } else if typ.Kind() == reflect.Ptr { - p.enc = (*Buffer).enc_custom_bytes - p.dec = (*Buffer).dec_custom_bytes - p.size = size_custom_bytes - } else { - p.enc = (*Buffer).enc_custom_ref_bytes - p.dec = (*Buffer).dec_custom_ref_bytes - p.size = size_custom_ref_bytes - } -} - -func (p *Properties) setSliceOfNonPointerStructs(typ reflect.Type) { - t2 := typ.Elem() - p.sstype = typ - p.stype = t2 - p.isMarshaler = isMarshaler(t2) - p.isUnmarshaler = isUnmarshaler(t2) - p.enc = (*Buffer).enc_slice_ref_struct_message - p.dec = (*Buffer).dec_slice_ref_struct_message - p.size = size_slice_ref_struct_message - if p.Wire != "bytes" { - fmt.Fprintf(os.Stderr, "proto: no ptr oenc for %T -> %T \n", typ, t2) - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto/proto3.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto/proto3.pb.go deleted file mode 100644 index d11b4ac7..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto/proto3.pb.go +++ /dev/null @@ -1,129 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: proto3_proto/proto3.proto -// DO NOT EDIT! - -/* -Package proto3_proto is a generated protocol buffer package. - -It is generated from these files: - proto3_proto/proto3.proto - -It has these top-level messages: - Message - Nested - MessageWithMap -*/ -package proto3_proto - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" -import testdata "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type Message_Humour int32 - -const ( - Message_UNKNOWN Message_Humour = 0 - Message_PUNS Message_Humour = 1 - Message_SLAPSTICK Message_Humour = 2 - Message_BILL_BAILEY Message_Humour = 3 -) - -var Message_Humour_name = map[int32]string{ - 0: "UNKNOWN", - 1: "PUNS", - 2: "SLAPSTICK", - 3: "BILL_BAILEY", -} -var Message_Humour_value = map[string]int32{ - "UNKNOWN": 0, - "PUNS": 1, - "SLAPSTICK": 2, - "BILL_BAILEY": 3, -} - -func (x Message_Humour) String() string { - return proto.EnumName(Message_Humour_name, int32(x)) -} - -type Message struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Hilarity Message_Humour `protobuf:"varint,2,opt,name=hilarity,proto3,enum=proto3_proto.Message_Humour" json:"hilarity,omitempty"` - HeightInCm uint32 `protobuf:"varint,3,opt,name=height_in_cm,proto3" json:"height_in_cm,omitempty"` - Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` - ResultCount int64 `protobuf:"varint,7,opt,name=result_count,proto3" json:"result_count,omitempty"` - TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,proto3" json:"true_scotsman,omitempty"` - Score float32 `protobuf:"fixed32,9,opt,name=score,proto3" json:"score,omitempty"` - Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` - Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` - Terrain map[string]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Proto2Field *testdata.SubDefaults `protobuf:"bytes,11,opt,name=proto2_field" json:"proto2_field,omitempty"` - Proto2Value map[string]*testdata.SubDefaults `protobuf:"bytes,13,rep,name=proto2_value" json:"proto2_value,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *Message) Reset() { *m = Message{} } -func (m *Message) String() string { return proto.CompactTextString(m) } -func (*Message) ProtoMessage() {} - -func (m *Message) GetNested() *Nested { - if m != nil { - return m.Nested - } - return nil -} - -func (m *Message) GetTerrain() map[string]*Nested { - if m != nil { - return m.Terrain - } - return nil -} - -func (m *Message) GetProto2Field() *testdata.SubDefaults { - if m != nil { - return m.Proto2Field - } - return nil -} - -func (m *Message) GetProto2Value() map[string]*testdata.SubDefaults { - if m != nil { - return m.Proto2Value - } - return nil -} - -type Nested struct { - Bunny string `protobuf:"bytes,1,opt,name=bunny,proto3" json:"bunny,omitempty"` -} - -func (m *Nested) Reset() { *m = Nested{} } -func (m *Nested) String() string { return proto.CompactTextString(m) } -func (*Nested) ProtoMessage() {} - -type MessageWithMap struct { - ByteMapping map[bool][]byte `protobuf:"bytes,1,rep,name=byte_mapping" json:"byte_mapping,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` -} - -func (m *MessageWithMap) Reset() { *m = MessageWithMap{} } -func (m *MessageWithMap) String() string { return proto.CompactTextString(m) } -func (*MessageWithMap) ProtoMessage() {} - -func (m *MessageWithMap) GetByteMapping() map[bool][]byte { - if m != nil { - return m.ByteMapping - } - return nil -} - -func init() { - proto.RegisterType((*Message)(nil), "proto3_proto.Message") - proto.RegisterType((*Nested)(nil), "proto3_proto.Nested") - proto.RegisterType((*MessageWithMap)(nil), "proto3_proto.MessageWithMap") - proto.RegisterEnum("proto3_proto.Message_Humour", Message_Humour_name, Message_Humour_value) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto/proto3.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto/proto3.proto deleted file mode 100644 index ca670015..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto/proto3.proto +++ /dev/null @@ -1,68 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2014 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto3"; - -package proto3_proto; - -import "github.com/gogo/protobuf/proto/testdata/test.proto"; - -message Message { - enum Humour { - UNKNOWN = 0; - PUNS = 1; - SLAPSTICK = 2; - BILL_BAILEY = 3; - } - - string name = 1; - Humour hilarity = 2; - uint32 height_in_cm = 3; - bytes data = 4; - int64 result_count = 7; - bool true_scotsman = 8; - float score = 9; - - repeated uint64 key = 5; - Nested nested = 6; - - map terrain = 10; - testdata.SubDefaults proto2_field = 11; - map proto2_value = 13; -} - -message Nested { - string bunny = 1; -} - -message MessageWithMap { - map byte_mapping = 1; -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_test.go deleted file mode 100644 index edec8e2e..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_test.go +++ /dev/null @@ -1,125 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2014 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto_test - -import ( - "testing" - - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - pb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto" - tpb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata" -) - -func TestProto3ZeroValues(t *testing.T) { - tests := []struct { - desc string - m proto.Message - }{ - {"zero message", &pb.Message{}}, - {"empty bytes field", &pb.Message{Data: []byte{}}}, - } - for _, test := range tests { - b, err := proto.Marshal(test.m) - if err != nil { - t.Errorf("%s: proto.Marshal: %v", test.desc, err) - continue - } - if len(b) > 0 { - t.Errorf("%s: Encoding is non-empty: %q", test.desc, b) - } - } -} - -func TestRoundTripProto3(t *testing.T) { - m := &pb.Message{ - Name: "David", // (2 | 1<<3): 0x0a 0x05 "David" - Hilarity: pb.Message_PUNS, // (0 | 2<<3): 0x10 0x01 - HeightInCm: 178, // (0 | 3<<3): 0x18 0xb2 0x01 - Data: []byte("roboto"), // (2 | 4<<3): 0x20 0x06 "roboto" - ResultCount: 47, // (0 | 7<<3): 0x38 0x2f - TrueScotsman: true, // (0 | 8<<3): 0x40 0x01 - Score: 8.1, // (5 | 9<<3): 0x4d <8.1> - - Key: []uint64{1, 0xdeadbeef}, - Nested: &pb.Nested{ - Bunny: "Monty", - }, - } - t.Logf(" m: %v", m) - - b, err := proto.Marshal(m) - if err != nil { - t.Fatalf("proto.Marshal: %v", err) - } - t.Logf(" b: %q", b) - - m2 := new(pb.Message) - if err := proto.Unmarshal(b, m2); err != nil { - t.Fatalf("proto.Unmarshal: %v", err) - } - t.Logf("m2: %v", m2) - - if !proto.Equal(m, m2) { - t.Errorf("proto.Equal returned false:\n m: %v\nm2: %v", m, m2) - } -} - -func TestProto3SetDefaults(t *testing.T) { - in := &pb.Message{ - Terrain: map[string]*pb.Nested{ - "meadow": new(pb.Nested), - }, - Proto2Field: new(tpb.SubDefaults), - Proto2Value: map[string]*tpb.SubDefaults{ - "badlands": new(tpb.SubDefaults), - }, - } - - got := proto.Clone(in).(*pb.Message) - proto.SetDefaults(got) - - // There are no defaults in proto3. Everything should be the zero value, but - // we need to remember to set defaults for nested proto2 messages. - want := &pb.Message{ - Terrain: map[string]*pb.Nested{ - "meadow": new(pb.Nested), - }, - Proto2Field: &tpb.SubDefaults{N: proto.Int64(7)}, - Proto2Value: map[string]*tpb.SubDefaults{ - "badlands": {N: proto.Int64(7)}, - }, - } - - if !proto.Equal(got, want) { - t.Errorf("with in = %v\nproto.SetDefaults(in) =>\ngot %v\nwant %v", in, got, want) - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/size2_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/size2_test.go deleted file mode 100644 index a2729c39..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/size2_test.go +++ /dev/null @@ -1,63 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2012 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto - -import ( - "testing" -) - -// This is a separate file and package from size_test.go because that one uses -// generated messages and thus may not be in package proto without having a circular -// dependency, whereas this file tests unexported details of size.go. - -func TestVarintSize(t *testing.T) { - // Check the edge cases carefully. - testCases := []struct { - n uint64 - size int - }{ - {0, 1}, - {1, 1}, - {127, 1}, - {128, 2}, - {16383, 2}, - {16384, 3}, - {1<<63 - 1, 9}, - {1 << 63, 10}, - } - for _, tc := range testCases { - size := sizeVarint(tc.n) - if size != tc.size { - t.Errorf("sizeVarint(%d) = %d, want %d", tc.n, size, tc.size) - } - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/size_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/size_test.go deleted file mode 100644 index da70f9e0..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/size_test.go +++ /dev/null @@ -1,147 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2012 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto_test - -import ( - "log" - "strings" - "testing" - - . "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - proto3pb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto" - pb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata" -) - -var messageWithExtension1 = &pb.MyMessage{Count: Int32(7)} - -// messageWithExtension2 is in equal_test.go. -var messageWithExtension3 = &pb.MyMessage{Count: Int32(8)} - -func init() { - if err := SetExtension(messageWithExtension1, pb.E_Ext_More, &pb.Ext{Data: String("Abbott")}); err != nil { - log.Panicf("SetExtension: %v", err) - } - if err := SetExtension(messageWithExtension3, pb.E_Ext_More, &pb.Ext{Data: String("Costello")}); err != nil { - log.Panicf("SetExtension: %v", err) - } - - // Force messageWithExtension3 to have the extension encoded. - Marshal(messageWithExtension3) - -} - -var SizeTests = []struct { - desc string - pb Message -}{ - {"empty", &pb.OtherMessage{}}, - // Basic types. - {"bool", &pb.Defaults{F_Bool: Bool(true)}}, - {"int32", &pb.Defaults{F_Int32: Int32(12)}}, - {"negative int32", &pb.Defaults{F_Int32: Int32(-1)}}, - {"small int64", &pb.Defaults{F_Int64: Int64(1)}}, - {"big int64", &pb.Defaults{F_Int64: Int64(1 << 20)}}, - {"negative int64", &pb.Defaults{F_Int64: Int64(-1)}}, - {"fixed32", &pb.Defaults{F_Fixed32: Uint32(71)}}, - {"fixed64", &pb.Defaults{F_Fixed64: Uint64(72)}}, - {"uint32", &pb.Defaults{F_Uint32: Uint32(123)}}, - {"uint64", &pb.Defaults{F_Uint64: Uint64(124)}}, - {"float", &pb.Defaults{F_Float: Float32(12.6)}}, - {"double", &pb.Defaults{F_Double: Float64(13.9)}}, - {"string", &pb.Defaults{F_String: String("niles")}}, - {"bytes", &pb.Defaults{F_Bytes: []byte("wowsa")}}, - {"bytes, empty", &pb.Defaults{F_Bytes: []byte{}}}, - {"sint32", &pb.Defaults{F_Sint32: Int32(65)}}, - {"sint64", &pb.Defaults{F_Sint64: Int64(67)}}, - {"enum", &pb.Defaults{F_Enum: pb.Defaults_BLUE.Enum()}}, - // Repeated. - {"empty repeated bool", &pb.MoreRepeated{Bools: []bool{}}}, - {"repeated bool", &pb.MoreRepeated{Bools: []bool{false, true, true, false}}}, - {"packed repeated bool", &pb.MoreRepeated{BoolsPacked: []bool{false, true, true, false, true, true, true}}}, - {"repeated int32", &pb.MoreRepeated{Ints: []int32{1, 12203, 1729, -1}}}, - {"repeated int32 packed", &pb.MoreRepeated{IntsPacked: []int32{1, 12203, 1729}}}, - {"repeated int64 packed", &pb.MoreRepeated{Int64SPacked: []int64{ - // Need enough large numbers to verify that the header is counting the number of bytes - // for the field, not the number of elements. - 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, - 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, - }}}, - {"repeated string", &pb.MoreRepeated{Strings: []string{"r", "ken", "gri"}}}, - {"repeated fixed", &pb.MoreRepeated{Fixeds: []uint32{1, 2, 3, 4}}}, - // Nested. - {"nested", &pb.OldMessage{Nested: &pb.OldMessage_Nested{Name: String("whatever")}}}, - {"group", &pb.GroupOld{G: &pb.GroupOld_G{X: Int32(12345)}}}, - // Other things. - {"unrecognized", &pb.MoreRepeated{XXX_unrecognized: []byte{13<<3 | 0, 4}}}, - {"extension (unencoded)", messageWithExtension1}, - {"extension (encoded)", messageWithExtension3}, - // proto3 message - {"proto3 empty", &proto3pb.Message{}}, - {"proto3 bool", &proto3pb.Message{TrueScotsman: true}}, - {"proto3 int64", &proto3pb.Message{ResultCount: 1}}, - {"proto3 uint32", &proto3pb.Message{HeightInCm: 123}}, - {"proto3 float", &proto3pb.Message{Score: 12.6}}, - {"proto3 string", &proto3pb.Message{Name: "Snezana"}}, - {"proto3 bytes", &proto3pb.Message{Data: []byte("wowsa")}}, - {"proto3 bytes, empty", &proto3pb.Message{Data: []byte{}}}, - {"proto3 enum", &proto3pb.Message{Hilarity: proto3pb.Message_PUNS}}, - {"proto3 map field with empty bytes", &proto3pb.MessageWithMap{ByteMapping: map[bool][]byte{false: {}}}}, - - {"map field", &pb.MessageWithMap{NameMapping: map[int32]string{1: "Rob", 7: "Andrew"}}}, - {"map field with message", &pb.MessageWithMap{MsgMapping: map[int64]*pb.FloatingPoint{0x7001: {F: Float64(2.0)}}}}, - {"map field with bytes", &pb.MessageWithMap{ByteMapping: map[bool][]byte{true: []byte("this time for sure")}}}, - {"map field with empty bytes", &pb.MessageWithMap{ByteMapping: map[bool][]byte{true: {}}}}, - - {"map field with big entry", &pb.MessageWithMap{NameMapping: map[int32]string{8: strings.Repeat("x", 125)}}}, - {"map field with big key and val", &pb.MessageWithMap{StrToStr: map[string]string{strings.Repeat("x", 70): strings.Repeat("y", 70)}}}, - {"map field with big numeric key", &pb.MessageWithMap{NameMapping: map[int32]string{0xf00d: "om nom nom"}}}, - - {"oneof not set", &pb.Communique{}}, - {"oneof zero int32", &pb.Communique{Union: &pb.Communique_Number{Number: 0}}}, - {"oneof int32", &pb.Communique{Union: &pb.Communique_Number{Number: 3}}}, - {"oneof string", &pb.Communique{Union: &pb.Communique_Name{Name: "Rhythmic Fman"}}}, -} - -func TestSize(t *testing.T) { - for _, tc := range SizeTests { - size := Size(tc.pb) - b, err := Marshal(tc.pb) - if err != nil { - t.Errorf("%v: Marshal failed: %v", tc.desc, err) - continue - } - if size != len(b) { - t.Errorf("%v: Size(%v) = %d, want %d", tc.desc, tc.pb, size, len(b)) - t.Logf("%v: bytes: %#v", tc.desc, b) - } - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/skip_gogo.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/skip_gogo.go deleted file mode 100644 index 4fe7e081..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/skip_gogo.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package proto - -import ( - "fmt" - "io" -) - -func Skip(data []byte) (n int, err error) { - l := len(data) - index := 0 - for index < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if index >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[index] - index++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for { - if index >= l { - return 0, io.ErrUnexpectedEOF - } - index++ - if data[index-1] < 0x80 { - break - } - } - return index, nil - case 1: - index += 8 - return index, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if index >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[index] - index++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - index += length - return index, nil - case 3: - for { - var innerWire uint64 - var start int = index - for shift := uint(0); ; shift += 7 { - if index >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[index] - index++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := Skip(data[start:]) - if err != nil { - return 0, err - } - index = start + next - } - return index, nil - case 4: - return index, nil - case 5: - index += 4 - return index, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/Makefile b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/Makefile deleted file mode 100644 index 31d83277..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# Go support for Protocol Buffers - Google's data interchange format -# -# Copyright 2010 The Go Authors. All rights reserved. -# https://github.com/golang/protobuf -# -# 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. - -all: regenerate - -regenerate: - go install github.com/gogo/protobuf/protoc-min-version - protoc-min-version --version="3.0.0" --gogo_out=. test.proto - diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/golden_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/golden_test.go deleted file mode 100644 index 8e845153..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/golden_test.go +++ /dev/null @@ -1,86 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2012 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -// Verify that the compiler output for test.proto is unchanged. - -package testdata - -import ( - "crypto/sha1" - "fmt" - "io/ioutil" - "os" - "os/exec" - "path/filepath" - "testing" -) - -// sum returns in string form (for easy comparison) the SHA-1 hash of the named file. -func sum(t *testing.T, name string) string { - data, err := ioutil.ReadFile(name) - if err != nil { - t.Fatal(err) - } - t.Logf("sum(%q): length is %d", name, len(data)) - hash := sha1.New() - _, err = hash.Write(data) - if err != nil { - t.Fatal(err) - } - return fmt.Sprintf("% x", hash.Sum(nil)) -} - -func run(t *testing.T, name string, args ...string) { - cmd := exec.Command(name, args...) - cmd.Stdin = os.Stdin - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - err := cmd.Run() - if err != nil { - t.Fatal(err) - } -} - -func TestGolden(t *testing.T) { - // Compute the original checksum. - goldenSum := sum(t, "test.pb.go") - // Run the proto compiler. - run(t, "protoc", "--gogo_out="+os.TempDir(), "test.proto") - newFile := filepath.Join(os.TempDir(), "test.pb.go") - defer os.Remove(newFile) - // Compute the new checksum. - newSum := sum(t, newFile) - // Verify - if newSum != goldenSum { - run(t, "diff", "-u", "test.pb.go", newFile) - t.Fatal("Code generated by protoc-gen-go has changed; update test.pb.go") - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/test.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/test.pb.go deleted file mode 100644 index b08ce880..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/test.pb.go +++ /dev/null @@ -1,2985 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: test.proto -// DO NOT EDIT! - -/* -Package testdata is a generated protocol buffer package. - -It is generated from these files: - test.proto - -It has these top-level messages: - GoEnum - GoTestField - GoTest - GoSkipTest - NonPackedTest - PackedTest - MaxTag - OldMessage - NewMessage - InnerMessage - OtherMessage - MyMessage - Ext - DefaultsMessage - MyMessageSet - Empty - MessageList - Strings - Defaults - SubDefaults - RepeatedEnum - MoreRepeated - GroupOld - GroupNew - FloatingPoint - MessageWithMap - Communique -*/ -package testdata - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type FOO int32 - -const ( - FOO_FOO1 FOO = 1 -) - -var FOO_name = map[int32]string{ - 1: "FOO1", -} -var FOO_value = map[string]int32{ - "FOO1": 1, -} - -func (x FOO) Enum() *FOO { - p := new(FOO) - *p = x - return p -} -func (x FOO) String() string { - return proto.EnumName(FOO_name, int32(x)) -} -func (x *FOO) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(FOO_value, data, "FOO") - if err != nil { - return err - } - *x = FOO(value) - return nil -} - -// An enum, for completeness. -type GoTest_KIND int32 - -const ( - GoTest_VOID GoTest_KIND = 0 - // Basic types - GoTest_BOOL GoTest_KIND = 1 - GoTest_BYTES GoTest_KIND = 2 - GoTest_FINGERPRINT GoTest_KIND = 3 - GoTest_FLOAT GoTest_KIND = 4 - GoTest_INT GoTest_KIND = 5 - GoTest_STRING GoTest_KIND = 6 - GoTest_TIME GoTest_KIND = 7 - // Groupings - GoTest_TUPLE GoTest_KIND = 8 - GoTest_ARRAY GoTest_KIND = 9 - GoTest_MAP GoTest_KIND = 10 - // Table types - GoTest_TABLE GoTest_KIND = 11 - // Functions - GoTest_FUNCTION GoTest_KIND = 12 -) - -var GoTest_KIND_name = map[int32]string{ - 0: "VOID", - 1: "BOOL", - 2: "BYTES", - 3: "FINGERPRINT", - 4: "FLOAT", - 5: "INT", - 6: "STRING", - 7: "TIME", - 8: "TUPLE", - 9: "ARRAY", - 10: "MAP", - 11: "TABLE", - 12: "FUNCTION", -} -var GoTest_KIND_value = map[string]int32{ - "VOID": 0, - "BOOL": 1, - "BYTES": 2, - "FINGERPRINT": 3, - "FLOAT": 4, - "INT": 5, - "STRING": 6, - "TIME": 7, - "TUPLE": 8, - "ARRAY": 9, - "MAP": 10, - "TABLE": 11, - "FUNCTION": 12, -} - -func (x GoTest_KIND) Enum() *GoTest_KIND { - p := new(GoTest_KIND) - *p = x - return p -} -func (x GoTest_KIND) String() string { - return proto.EnumName(GoTest_KIND_name, int32(x)) -} -func (x *GoTest_KIND) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(GoTest_KIND_value, data, "GoTest_KIND") - if err != nil { - return err - } - *x = GoTest_KIND(value) - return nil -} - -type MyMessage_Color int32 - -const ( - MyMessage_RED MyMessage_Color = 0 - MyMessage_GREEN MyMessage_Color = 1 - MyMessage_BLUE MyMessage_Color = 2 -) - -var MyMessage_Color_name = map[int32]string{ - 0: "RED", - 1: "GREEN", - 2: "BLUE", -} -var MyMessage_Color_value = map[string]int32{ - "RED": 0, - "GREEN": 1, - "BLUE": 2, -} - -func (x MyMessage_Color) Enum() *MyMessage_Color { - p := new(MyMessage_Color) - *p = x - return p -} -func (x MyMessage_Color) String() string { - return proto.EnumName(MyMessage_Color_name, int32(x)) -} -func (x *MyMessage_Color) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(MyMessage_Color_value, data, "MyMessage_Color") - if err != nil { - return err - } - *x = MyMessage_Color(value) - return nil -} - -type DefaultsMessage_DefaultsEnum int32 - -const ( - DefaultsMessage_ZERO DefaultsMessage_DefaultsEnum = 0 - DefaultsMessage_ONE DefaultsMessage_DefaultsEnum = 1 - DefaultsMessage_TWO DefaultsMessage_DefaultsEnum = 2 -) - -var DefaultsMessage_DefaultsEnum_name = map[int32]string{ - 0: "ZERO", - 1: "ONE", - 2: "TWO", -} -var DefaultsMessage_DefaultsEnum_value = map[string]int32{ - "ZERO": 0, - "ONE": 1, - "TWO": 2, -} - -func (x DefaultsMessage_DefaultsEnum) Enum() *DefaultsMessage_DefaultsEnum { - p := new(DefaultsMessage_DefaultsEnum) - *p = x - return p -} -func (x DefaultsMessage_DefaultsEnum) String() string { - return proto.EnumName(DefaultsMessage_DefaultsEnum_name, int32(x)) -} -func (x *DefaultsMessage_DefaultsEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(DefaultsMessage_DefaultsEnum_value, data, "DefaultsMessage_DefaultsEnum") - if err != nil { - return err - } - *x = DefaultsMessage_DefaultsEnum(value) - return nil -} - -type Defaults_Color int32 - -const ( - Defaults_RED Defaults_Color = 0 - Defaults_GREEN Defaults_Color = 1 - Defaults_BLUE Defaults_Color = 2 -) - -var Defaults_Color_name = map[int32]string{ - 0: "RED", - 1: "GREEN", - 2: "BLUE", -} -var Defaults_Color_value = map[string]int32{ - "RED": 0, - "GREEN": 1, - "BLUE": 2, -} - -func (x Defaults_Color) Enum() *Defaults_Color { - p := new(Defaults_Color) - *p = x - return p -} -func (x Defaults_Color) String() string { - return proto.EnumName(Defaults_Color_name, int32(x)) -} -func (x *Defaults_Color) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Defaults_Color_value, data, "Defaults_Color") - if err != nil { - return err - } - *x = Defaults_Color(value) - return nil -} - -type RepeatedEnum_Color int32 - -const ( - RepeatedEnum_RED RepeatedEnum_Color = 1 -) - -var RepeatedEnum_Color_name = map[int32]string{ - 1: "RED", -} -var RepeatedEnum_Color_value = map[string]int32{ - "RED": 1, -} - -func (x RepeatedEnum_Color) Enum() *RepeatedEnum_Color { - p := new(RepeatedEnum_Color) - *p = x - return p -} -func (x RepeatedEnum_Color) String() string { - return proto.EnumName(RepeatedEnum_Color_name, int32(x)) -} -func (x *RepeatedEnum_Color) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(RepeatedEnum_Color_value, data, "RepeatedEnum_Color") - if err != nil { - return err - } - *x = RepeatedEnum_Color(value) - return nil -} - -type GoEnum struct { - Foo *FOO `protobuf:"varint,1,req,name=foo,enum=testdata.FOO" json:"foo,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoEnum) Reset() { *m = GoEnum{} } -func (m *GoEnum) String() string { return proto.CompactTextString(m) } -func (*GoEnum) ProtoMessage() {} - -func (m *GoEnum) GetFoo() FOO { - if m != nil && m.Foo != nil { - return *m.Foo - } - return FOO_FOO1 -} - -type GoTestField struct { - Label *string `protobuf:"bytes,1,req,name=Label" json:"Label,omitempty"` - Type *string `protobuf:"bytes,2,req,name=Type" json:"Type,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoTestField) Reset() { *m = GoTestField{} } -func (m *GoTestField) String() string { return proto.CompactTextString(m) } -func (*GoTestField) ProtoMessage() {} - -func (m *GoTestField) GetLabel() string { - if m != nil && m.Label != nil { - return *m.Label - } - return "" -} - -func (m *GoTestField) GetType() string { - if m != nil && m.Type != nil { - return *m.Type - } - return "" -} - -type GoTest struct { - // Some typical parameters - Kind *GoTest_KIND `protobuf:"varint,1,req,name=Kind,enum=testdata.GoTest_KIND" json:"Kind,omitempty"` - Table *string `protobuf:"bytes,2,opt,name=Table" json:"Table,omitempty"` - Param *int32 `protobuf:"varint,3,opt,name=Param" json:"Param,omitempty"` - // Required, repeated and optional foreign fields. - RequiredField *GoTestField `protobuf:"bytes,4,req,name=RequiredField" json:"RequiredField,omitempty"` - RepeatedField []*GoTestField `protobuf:"bytes,5,rep,name=RepeatedField" json:"RepeatedField,omitempty"` - OptionalField *GoTestField `protobuf:"bytes,6,opt,name=OptionalField" json:"OptionalField,omitempty"` - // Required fields of all basic types - F_BoolRequired *bool `protobuf:"varint,10,req,name=F_Bool_required" json:"F_Bool_required,omitempty"` - F_Int32Required *int32 `protobuf:"varint,11,req,name=F_Int32_required" json:"F_Int32_required,omitempty"` - F_Int64Required *int64 `protobuf:"varint,12,req,name=F_Int64_required" json:"F_Int64_required,omitempty"` - F_Fixed32Required *uint32 `protobuf:"fixed32,13,req,name=F_Fixed32_required" json:"F_Fixed32_required,omitempty"` - F_Fixed64Required *uint64 `protobuf:"fixed64,14,req,name=F_Fixed64_required" json:"F_Fixed64_required,omitempty"` - F_Uint32Required *uint32 `protobuf:"varint,15,req,name=F_Uint32_required" json:"F_Uint32_required,omitempty"` - F_Uint64Required *uint64 `protobuf:"varint,16,req,name=F_Uint64_required" json:"F_Uint64_required,omitempty"` - F_FloatRequired *float32 `protobuf:"fixed32,17,req,name=F_Float_required" json:"F_Float_required,omitempty"` - F_DoubleRequired *float64 `protobuf:"fixed64,18,req,name=F_Double_required" json:"F_Double_required,omitempty"` - F_StringRequired *string `protobuf:"bytes,19,req,name=F_String_required" json:"F_String_required,omitempty"` - F_BytesRequired []byte `protobuf:"bytes,101,req,name=F_Bytes_required" json:"F_Bytes_required,omitempty"` - F_Sint32Required *int32 `protobuf:"zigzag32,102,req,name=F_Sint32_required" json:"F_Sint32_required,omitempty"` - F_Sint64Required *int64 `protobuf:"zigzag64,103,req,name=F_Sint64_required" json:"F_Sint64_required,omitempty"` - // Repeated fields of all basic types - F_BoolRepeated []bool `protobuf:"varint,20,rep,name=F_Bool_repeated" json:"F_Bool_repeated,omitempty"` - F_Int32Repeated []int32 `protobuf:"varint,21,rep,name=F_Int32_repeated" json:"F_Int32_repeated,omitempty"` - F_Int64Repeated []int64 `protobuf:"varint,22,rep,name=F_Int64_repeated" json:"F_Int64_repeated,omitempty"` - F_Fixed32Repeated []uint32 `protobuf:"fixed32,23,rep,name=F_Fixed32_repeated" json:"F_Fixed32_repeated,omitempty"` - F_Fixed64Repeated []uint64 `protobuf:"fixed64,24,rep,name=F_Fixed64_repeated" json:"F_Fixed64_repeated,omitempty"` - F_Uint32Repeated []uint32 `protobuf:"varint,25,rep,name=F_Uint32_repeated" json:"F_Uint32_repeated,omitempty"` - F_Uint64Repeated []uint64 `protobuf:"varint,26,rep,name=F_Uint64_repeated" json:"F_Uint64_repeated,omitempty"` - F_FloatRepeated []float32 `protobuf:"fixed32,27,rep,name=F_Float_repeated" json:"F_Float_repeated,omitempty"` - F_DoubleRepeated []float64 `protobuf:"fixed64,28,rep,name=F_Double_repeated" json:"F_Double_repeated,omitempty"` - F_StringRepeated []string `protobuf:"bytes,29,rep,name=F_String_repeated" json:"F_String_repeated,omitempty"` - F_BytesRepeated [][]byte `protobuf:"bytes,201,rep,name=F_Bytes_repeated" json:"F_Bytes_repeated,omitempty"` - F_Sint32Repeated []int32 `protobuf:"zigzag32,202,rep,name=F_Sint32_repeated" json:"F_Sint32_repeated,omitempty"` - F_Sint64Repeated []int64 `protobuf:"zigzag64,203,rep,name=F_Sint64_repeated" json:"F_Sint64_repeated,omitempty"` - // Optional fields of all basic types - F_BoolOptional *bool `protobuf:"varint,30,opt,name=F_Bool_optional" json:"F_Bool_optional,omitempty"` - F_Int32Optional *int32 `protobuf:"varint,31,opt,name=F_Int32_optional" json:"F_Int32_optional,omitempty"` - F_Int64Optional *int64 `protobuf:"varint,32,opt,name=F_Int64_optional" json:"F_Int64_optional,omitempty"` - F_Fixed32Optional *uint32 `protobuf:"fixed32,33,opt,name=F_Fixed32_optional" json:"F_Fixed32_optional,omitempty"` - F_Fixed64Optional *uint64 `protobuf:"fixed64,34,opt,name=F_Fixed64_optional" json:"F_Fixed64_optional,omitempty"` - F_Uint32Optional *uint32 `protobuf:"varint,35,opt,name=F_Uint32_optional" json:"F_Uint32_optional,omitempty"` - F_Uint64Optional *uint64 `protobuf:"varint,36,opt,name=F_Uint64_optional" json:"F_Uint64_optional,omitempty"` - F_FloatOptional *float32 `protobuf:"fixed32,37,opt,name=F_Float_optional" json:"F_Float_optional,omitempty"` - F_DoubleOptional *float64 `protobuf:"fixed64,38,opt,name=F_Double_optional" json:"F_Double_optional,omitempty"` - F_StringOptional *string `protobuf:"bytes,39,opt,name=F_String_optional" json:"F_String_optional,omitempty"` - F_BytesOptional []byte `protobuf:"bytes,301,opt,name=F_Bytes_optional" json:"F_Bytes_optional,omitempty"` - F_Sint32Optional *int32 `protobuf:"zigzag32,302,opt,name=F_Sint32_optional" json:"F_Sint32_optional,omitempty"` - F_Sint64Optional *int64 `protobuf:"zigzag64,303,opt,name=F_Sint64_optional" json:"F_Sint64_optional,omitempty"` - // Default-valued fields of all basic types - F_BoolDefaulted *bool `protobuf:"varint,40,opt,name=F_Bool_defaulted,def=1" json:"F_Bool_defaulted,omitempty"` - F_Int32Defaulted *int32 `protobuf:"varint,41,opt,name=F_Int32_defaulted,def=32" json:"F_Int32_defaulted,omitempty"` - F_Int64Defaulted *int64 `protobuf:"varint,42,opt,name=F_Int64_defaulted,def=64" json:"F_Int64_defaulted,omitempty"` - F_Fixed32Defaulted *uint32 `protobuf:"fixed32,43,opt,name=F_Fixed32_defaulted,def=320" json:"F_Fixed32_defaulted,omitempty"` - F_Fixed64Defaulted *uint64 `protobuf:"fixed64,44,opt,name=F_Fixed64_defaulted,def=640" json:"F_Fixed64_defaulted,omitempty"` - F_Uint32Defaulted *uint32 `protobuf:"varint,45,opt,name=F_Uint32_defaulted,def=3200" json:"F_Uint32_defaulted,omitempty"` - F_Uint64Defaulted *uint64 `protobuf:"varint,46,opt,name=F_Uint64_defaulted,def=6400" json:"F_Uint64_defaulted,omitempty"` - F_FloatDefaulted *float32 `protobuf:"fixed32,47,opt,name=F_Float_defaulted,def=314159" json:"F_Float_defaulted,omitempty"` - F_DoubleDefaulted *float64 `protobuf:"fixed64,48,opt,name=F_Double_defaulted,def=271828" json:"F_Double_defaulted,omitempty"` - F_StringDefaulted *string `protobuf:"bytes,49,opt,name=F_String_defaulted,def=hello, \"world!\"\n" json:"F_String_defaulted,omitempty"` - F_BytesDefaulted []byte `protobuf:"bytes,401,opt,name=F_Bytes_defaulted,def=Bignose" json:"F_Bytes_defaulted,omitempty"` - F_Sint32Defaulted *int32 `protobuf:"zigzag32,402,opt,name=F_Sint32_defaulted,def=-32" json:"F_Sint32_defaulted,omitempty"` - F_Sint64Defaulted *int64 `protobuf:"zigzag64,403,opt,name=F_Sint64_defaulted,def=-64" json:"F_Sint64_defaulted,omitempty"` - // Packed repeated fields (no string or bytes). - F_BoolRepeatedPacked []bool `protobuf:"varint,50,rep,packed,name=F_Bool_repeated_packed" json:"F_Bool_repeated_packed,omitempty"` - F_Int32RepeatedPacked []int32 `protobuf:"varint,51,rep,packed,name=F_Int32_repeated_packed" json:"F_Int32_repeated_packed,omitempty"` - F_Int64RepeatedPacked []int64 `protobuf:"varint,52,rep,packed,name=F_Int64_repeated_packed" json:"F_Int64_repeated_packed,omitempty"` - F_Fixed32RepeatedPacked []uint32 `protobuf:"fixed32,53,rep,packed,name=F_Fixed32_repeated_packed" json:"F_Fixed32_repeated_packed,omitempty"` - F_Fixed64RepeatedPacked []uint64 `protobuf:"fixed64,54,rep,packed,name=F_Fixed64_repeated_packed" json:"F_Fixed64_repeated_packed,omitempty"` - F_Uint32RepeatedPacked []uint32 `protobuf:"varint,55,rep,packed,name=F_Uint32_repeated_packed" json:"F_Uint32_repeated_packed,omitempty"` - F_Uint64RepeatedPacked []uint64 `protobuf:"varint,56,rep,packed,name=F_Uint64_repeated_packed" json:"F_Uint64_repeated_packed,omitempty"` - F_FloatRepeatedPacked []float32 `protobuf:"fixed32,57,rep,packed,name=F_Float_repeated_packed" json:"F_Float_repeated_packed,omitempty"` - F_DoubleRepeatedPacked []float64 `protobuf:"fixed64,58,rep,packed,name=F_Double_repeated_packed" json:"F_Double_repeated_packed,omitempty"` - F_Sint32RepeatedPacked []int32 `protobuf:"zigzag32,502,rep,packed,name=F_Sint32_repeated_packed" json:"F_Sint32_repeated_packed,omitempty"` - F_Sint64RepeatedPacked []int64 `protobuf:"zigzag64,503,rep,packed,name=F_Sint64_repeated_packed" json:"F_Sint64_repeated_packed,omitempty"` - Requiredgroup *GoTest_RequiredGroup `protobuf:"group,70,req,name=RequiredGroup" json:"requiredgroup,omitempty"` - Repeatedgroup []*GoTest_RepeatedGroup `protobuf:"group,80,rep,name=RepeatedGroup" json:"repeatedgroup,omitempty"` - Optionalgroup *GoTest_OptionalGroup `protobuf:"group,90,opt,name=OptionalGroup" json:"optionalgroup,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoTest) Reset() { *m = GoTest{} } -func (m *GoTest) String() string { return proto.CompactTextString(m) } -func (*GoTest) ProtoMessage() {} - -const Default_GoTest_F_BoolDefaulted bool = true -const Default_GoTest_F_Int32Defaulted int32 = 32 -const Default_GoTest_F_Int64Defaulted int64 = 64 -const Default_GoTest_F_Fixed32Defaulted uint32 = 320 -const Default_GoTest_F_Fixed64Defaulted uint64 = 640 -const Default_GoTest_F_Uint32Defaulted uint32 = 3200 -const Default_GoTest_F_Uint64Defaulted uint64 = 6400 -const Default_GoTest_F_FloatDefaulted float32 = 314159 -const Default_GoTest_F_DoubleDefaulted float64 = 271828 -const Default_GoTest_F_StringDefaulted string = "hello, \"world!\"\n" - -var Default_GoTest_F_BytesDefaulted []byte = []byte("Bignose") - -const Default_GoTest_F_Sint32Defaulted int32 = -32 -const Default_GoTest_F_Sint64Defaulted int64 = -64 - -func (m *GoTest) GetKind() GoTest_KIND { - if m != nil && m.Kind != nil { - return *m.Kind - } - return GoTest_VOID -} - -func (m *GoTest) GetTable() string { - if m != nil && m.Table != nil { - return *m.Table - } - return "" -} - -func (m *GoTest) GetParam() int32 { - if m != nil && m.Param != nil { - return *m.Param - } - return 0 -} - -func (m *GoTest) GetRequiredField() *GoTestField { - if m != nil { - return m.RequiredField - } - return nil -} - -func (m *GoTest) GetRepeatedField() []*GoTestField { - if m != nil { - return m.RepeatedField - } - return nil -} - -func (m *GoTest) GetOptionalField() *GoTestField { - if m != nil { - return m.OptionalField - } - return nil -} - -func (m *GoTest) GetF_BoolRequired() bool { - if m != nil && m.F_BoolRequired != nil { - return *m.F_BoolRequired - } - return false -} - -func (m *GoTest) GetF_Int32Required() int32 { - if m != nil && m.F_Int32Required != nil { - return *m.F_Int32Required - } - return 0 -} - -func (m *GoTest) GetF_Int64Required() int64 { - if m != nil && m.F_Int64Required != nil { - return *m.F_Int64Required - } - return 0 -} - -func (m *GoTest) GetF_Fixed32Required() uint32 { - if m != nil && m.F_Fixed32Required != nil { - return *m.F_Fixed32Required - } - return 0 -} - -func (m *GoTest) GetF_Fixed64Required() uint64 { - if m != nil && m.F_Fixed64Required != nil { - return *m.F_Fixed64Required - } - return 0 -} - -func (m *GoTest) GetF_Uint32Required() uint32 { - if m != nil && m.F_Uint32Required != nil { - return *m.F_Uint32Required - } - return 0 -} - -func (m *GoTest) GetF_Uint64Required() uint64 { - if m != nil && m.F_Uint64Required != nil { - return *m.F_Uint64Required - } - return 0 -} - -func (m *GoTest) GetF_FloatRequired() float32 { - if m != nil && m.F_FloatRequired != nil { - return *m.F_FloatRequired - } - return 0 -} - -func (m *GoTest) GetF_DoubleRequired() float64 { - if m != nil && m.F_DoubleRequired != nil { - return *m.F_DoubleRequired - } - return 0 -} - -func (m *GoTest) GetF_StringRequired() string { - if m != nil && m.F_StringRequired != nil { - return *m.F_StringRequired - } - return "" -} - -func (m *GoTest) GetF_BytesRequired() []byte { - if m != nil { - return m.F_BytesRequired - } - return nil -} - -func (m *GoTest) GetF_Sint32Required() int32 { - if m != nil && m.F_Sint32Required != nil { - return *m.F_Sint32Required - } - return 0 -} - -func (m *GoTest) GetF_Sint64Required() int64 { - if m != nil && m.F_Sint64Required != nil { - return *m.F_Sint64Required - } - return 0 -} - -func (m *GoTest) GetF_BoolRepeated() []bool { - if m != nil { - return m.F_BoolRepeated - } - return nil -} - -func (m *GoTest) GetF_Int32Repeated() []int32 { - if m != nil { - return m.F_Int32Repeated - } - return nil -} - -func (m *GoTest) GetF_Int64Repeated() []int64 { - if m != nil { - return m.F_Int64Repeated - } - return nil -} - -func (m *GoTest) GetF_Fixed32Repeated() []uint32 { - if m != nil { - return m.F_Fixed32Repeated - } - return nil -} - -func (m *GoTest) GetF_Fixed64Repeated() []uint64 { - if m != nil { - return m.F_Fixed64Repeated - } - return nil -} - -func (m *GoTest) GetF_Uint32Repeated() []uint32 { - if m != nil { - return m.F_Uint32Repeated - } - return nil -} - -func (m *GoTest) GetF_Uint64Repeated() []uint64 { - if m != nil { - return m.F_Uint64Repeated - } - return nil -} - -func (m *GoTest) GetF_FloatRepeated() []float32 { - if m != nil { - return m.F_FloatRepeated - } - return nil -} - -func (m *GoTest) GetF_DoubleRepeated() []float64 { - if m != nil { - return m.F_DoubleRepeated - } - return nil -} - -func (m *GoTest) GetF_StringRepeated() []string { - if m != nil { - return m.F_StringRepeated - } - return nil -} - -func (m *GoTest) GetF_BytesRepeated() [][]byte { - if m != nil { - return m.F_BytesRepeated - } - return nil -} - -func (m *GoTest) GetF_Sint32Repeated() []int32 { - if m != nil { - return m.F_Sint32Repeated - } - return nil -} - -func (m *GoTest) GetF_Sint64Repeated() []int64 { - if m != nil { - return m.F_Sint64Repeated - } - return nil -} - -func (m *GoTest) GetF_BoolOptional() bool { - if m != nil && m.F_BoolOptional != nil { - return *m.F_BoolOptional - } - return false -} - -func (m *GoTest) GetF_Int32Optional() int32 { - if m != nil && m.F_Int32Optional != nil { - return *m.F_Int32Optional - } - return 0 -} - -func (m *GoTest) GetF_Int64Optional() int64 { - if m != nil && m.F_Int64Optional != nil { - return *m.F_Int64Optional - } - return 0 -} - -func (m *GoTest) GetF_Fixed32Optional() uint32 { - if m != nil && m.F_Fixed32Optional != nil { - return *m.F_Fixed32Optional - } - return 0 -} - -func (m *GoTest) GetF_Fixed64Optional() uint64 { - if m != nil && m.F_Fixed64Optional != nil { - return *m.F_Fixed64Optional - } - return 0 -} - -func (m *GoTest) GetF_Uint32Optional() uint32 { - if m != nil && m.F_Uint32Optional != nil { - return *m.F_Uint32Optional - } - return 0 -} - -func (m *GoTest) GetF_Uint64Optional() uint64 { - if m != nil && m.F_Uint64Optional != nil { - return *m.F_Uint64Optional - } - return 0 -} - -func (m *GoTest) GetF_FloatOptional() float32 { - if m != nil && m.F_FloatOptional != nil { - return *m.F_FloatOptional - } - return 0 -} - -func (m *GoTest) GetF_DoubleOptional() float64 { - if m != nil && m.F_DoubleOptional != nil { - return *m.F_DoubleOptional - } - return 0 -} - -func (m *GoTest) GetF_StringOptional() string { - if m != nil && m.F_StringOptional != nil { - return *m.F_StringOptional - } - return "" -} - -func (m *GoTest) GetF_BytesOptional() []byte { - if m != nil { - return m.F_BytesOptional - } - return nil -} - -func (m *GoTest) GetF_Sint32Optional() int32 { - if m != nil && m.F_Sint32Optional != nil { - return *m.F_Sint32Optional - } - return 0 -} - -func (m *GoTest) GetF_Sint64Optional() int64 { - if m != nil && m.F_Sint64Optional != nil { - return *m.F_Sint64Optional - } - return 0 -} - -func (m *GoTest) GetF_BoolDefaulted() bool { - if m != nil && m.F_BoolDefaulted != nil { - return *m.F_BoolDefaulted - } - return Default_GoTest_F_BoolDefaulted -} - -func (m *GoTest) GetF_Int32Defaulted() int32 { - if m != nil && m.F_Int32Defaulted != nil { - return *m.F_Int32Defaulted - } - return Default_GoTest_F_Int32Defaulted -} - -func (m *GoTest) GetF_Int64Defaulted() int64 { - if m != nil && m.F_Int64Defaulted != nil { - return *m.F_Int64Defaulted - } - return Default_GoTest_F_Int64Defaulted -} - -func (m *GoTest) GetF_Fixed32Defaulted() uint32 { - if m != nil && m.F_Fixed32Defaulted != nil { - return *m.F_Fixed32Defaulted - } - return Default_GoTest_F_Fixed32Defaulted -} - -func (m *GoTest) GetF_Fixed64Defaulted() uint64 { - if m != nil && m.F_Fixed64Defaulted != nil { - return *m.F_Fixed64Defaulted - } - return Default_GoTest_F_Fixed64Defaulted -} - -func (m *GoTest) GetF_Uint32Defaulted() uint32 { - if m != nil && m.F_Uint32Defaulted != nil { - return *m.F_Uint32Defaulted - } - return Default_GoTest_F_Uint32Defaulted -} - -func (m *GoTest) GetF_Uint64Defaulted() uint64 { - if m != nil && m.F_Uint64Defaulted != nil { - return *m.F_Uint64Defaulted - } - return Default_GoTest_F_Uint64Defaulted -} - -func (m *GoTest) GetF_FloatDefaulted() float32 { - if m != nil && m.F_FloatDefaulted != nil { - return *m.F_FloatDefaulted - } - return Default_GoTest_F_FloatDefaulted -} - -func (m *GoTest) GetF_DoubleDefaulted() float64 { - if m != nil && m.F_DoubleDefaulted != nil { - return *m.F_DoubleDefaulted - } - return Default_GoTest_F_DoubleDefaulted -} - -func (m *GoTest) GetF_StringDefaulted() string { - if m != nil && m.F_StringDefaulted != nil { - return *m.F_StringDefaulted - } - return Default_GoTest_F_StringDefaulted -} - -func (m *GoTest) GetF_BytesDefaulted() []byte { - if m != nil && m.F_BytesDefaulted != nil { - return m.F_BytesDefaulted - } - return append([]byte(nil), Default_GoTest_F_BytesDefaulted...) -} - -func (m *GoTest) GetF_Sint32Defaulted() int32 { - if m != nil && m.F_Sint32Defaulted != nil { - return *m.F_Sint32Defaulted - } - return Default_GoTest_F_Sint32Defaulted -} - -func (m *GoTest) GetF_Sint64Defaulted() int64 { - if m != nil && m.F_Sint64Defaulted != nil { - return *m.F_Sint64Defaulted - } - return Default_GoTest_F_Sint64Defaulted -} - -func (m *GoTest) GetF_BoolRepeatedPacked() []bool { - if m != nil { - return m.F_BoolRepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Int32RepeatedPacked() []int32 { - if m != nil { - return m.F_Int32RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Int64RepeatedPacked() []int64 { - if m != nil { - return m.F_Int64RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Fixed32RepeatedPacked() []uint32 { - if m != nil { - return m.F_Fixed32RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Fixed64RepeatedPacked() []uint64 { - if m != nil { - return m.F_Fixed64RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Uint32RepeatedPacked() []uint32 { - if m != nil { - return m.F_Uint32RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Uint64RepeatedPacked() []uint64 { - if m != nil { - return m.F_Uint64RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_FloatRepeatedPacked() []float32 { - if m != nil { - return m.F_FloatRepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_DoubleRepeatedPacked() []float64 { - if m != nil { - return m.F_DoubleRepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Sint32RepeatedPacked() []int32 { - if m != nil { - return m.F_Sint32RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Sint64RepeatedPacked() []int64 { - if m != nil { - return m.F_Sint64RepeatedPacked - } - return nil -} - -func (m *GoTest) GetRequiredgroup() *GoTest_RequiredGroup { - if m != nil { - return m.Requiredgroup - } - return nil -} - -func (m *GoTest) GetRepeatedgroup() []*GoTest_RepeatedGroup { - if m != nil { - return m.Repeatedgroup - } - return nil -} - -func (m *GoTest) GetOptionalgroup() *GoTest_OptionalGroup { - if m != nil { - return m.Optionalgroup - } - return nil -} - -// Required, repeated, and optional groups. -type GoTest_RequiredGroup struct { - RequiredField *string `protobuf:"bytes,71,req,name=RequiredField" json:"RequiredField,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoTest_RequiredGroup) Reset() { *m = GoTest_RequiredGroup{} } -func (m *GoTest_RequiredGroup) String() string { return proto.CompactTextString(m) } -func (*GoTest_RequiredGroup) ProtoMessage() {} - -func (m *GoTest_RequiredGroup) GetRequiredField() string { - if m != nil && m.RequiredField != nil { - return *m.RequiredField - } - return "" -} - -type GoTest_RepeatedGroup struct { - RequiredField *string `protobuf:"bytes,81,req,name=RequiredField" json:"RequiredField,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoTest_RepeatedGroup) Reset() { *m = GoTest_RepeatedGroup{} } -func (m *GoTest_RepeatedGroup) String() string { return proto.CompactTextString(m) } -func (*GoTest_RepeatedGroup) ProtoMessage() {} - -func (m *GoTest_RepeatedGroup) GetRequiredField() string { - if m != nil && m.RequiredField != nil { - return *m.RequiredField - } - return "" -} - -type GoTest_OptionalGroup struct { - RequiredField *string `protobuf:"bytes,91,req,name=RequiredField" json:"RequiredField,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoTest_OptionalGroup) Reset() { *m = GoTest_OptionalGroup{} } -func (m *GoTest_OptionalGroup) String() string { return proto.CompactTextString(m) } -func (*GoTest_OptionalGroup) ProtoMessage() {} - -func (m *GoTest_OptionalGroup) GetRequiredField() string { - if m != nil && m.RequiredField != nil { - return *m.RequiredField - } - return "" -} - -// For testing skipping of unrecognized fields. -// Numbers are all big, larger than tag numbers in GoTestField, -// the message used in the corresponding test. -type GoSkipTest struct { - SkipInt32 *int32 `protobuf:"varint,11,req,name=skip_int32" json:"skip_int32,omitempty"` - SkipFixed32 *uint32 `protobuf:"fixed32,12,req,name=skip_fixed32" json:"skip_fixed32,omitempty"` - SkipFixed64 *uint64 `protobuf:"fixed64,13,req,name=skip_fixed64" json:"skip_fixed64,omitempty"` - SkipString *string `protobuf:"bytes,14,req,name=skip_string" json:"skip_string,omitempty"` - Skipgroup *GoSkipTest_SkipGroup `protobuf:"group,15,req,name=SkipGroup" json:"skipgroup,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoSkipTest) Reset() { *m = GoSkipTest{} } -func (m *GoSkipTest) String() string { return proto.CompactTextString(m) } -func (*GoSkipTest) ProtoMessage() {} - -func (m *GoSkipTest) GetSkipInt32() int32 { - if m != nil && m.SkipInt32 != nil { - return *m.SkipInt32 - } - return 0 -} - -func (m *GoSkipTest) GetSkipFixed32() uint32 { - if m != nil && m.SkipFixed32 != nil { - return *m.SkipFixed32 - } - return 0 -} - -func (m *GoSkipTest) GetSkipFixed64() uint64 { - if m != nil && m.SkipFixed64 != nil { - return *m.SkipFixed64 - } - return 0 -} - -func (m *GoSkipTest) GetSkipString() string { - if m != nil && m.SkipString != nil { - return *m.SkipString - } - return "" -} - -func (m *GoSkipTest) GetSkipgroup() *GoSkipTest_SkipGroup { - if m != nil { - return m.Skipgroup - } - return nil -} - -type GoSkipTest_SkipGroup struct { - GroupInt32 *int32 `protobuf:"varint,16,req,name=group_int32" json:"group_int32,omitempty"` - GroupString *string `protobuf:"bytes,17,req,name=group_string" json:"group_string,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoSkipTest_SkipGroup) Reset() { *m = GoSkipTest_SkipGroup{} } -func (m *GoSkipTest_SkipGroup) String() string { return proto.CompactTextString(m) } -func (*GoSkipTest_SkipGroup) ProtoMessage() {} - -func (m *GoSkipTest_SkipGroup) GetGroupInt32() int32 { - if m != nil && m.GroupInt32 != nil { - return *m.GroupInt32 - } - return 0 -} - -func (m *GoSkipTest_SkipGroup) GetGroupString() string { - if m != nil && m.GroupString != nil { - return *m.GroupString - } - return "" -} - -// For testing packed/non-packed decoder switching. -// A serialized instance of one should be deserializable as the other. -type NonPackedTest struct { - A []int32 `protobuf:"varint,1,rep,name=a" json:"a,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NonPackedTest) Reset() { *m = NonPackedTest{} } -func (m *NonPackedTest) String() string { return proto.CompactTextString(m) } -func (*NonPackedTest) ProtoMessage() {} - -func (m *NonPackedTest) GetA() []int32 { - if m != nil { - return m.A - } - return nil -} - -type PackedTest struct { - B []int32 `protobuf:"varint,1,rep,packed,name=b" json:"b,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *PackedTest) Reset() { *m = PackedTest{} } -func (m *PackedTest) String() string { return proto.CompactTextString(m) } -func (*PackedTest) ProtoMessage() {} - -func (m *PackedTest) GetB() []int32 { - if m != nil { - return m.B - } - return nil -} - -type MaxTag struct { - // Maximum possible tag number. - LastField *string `protobuf:"bytes,536870911,opt,name=last_field" json:"last_field,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MaxTag) Reset() { *m = MaxTag{} } -func (m *MaxTag) String() string { return proto.CompactTextString(m) } -func (*MaxTag) ProtoMessage() {} - -func (m *MaxTag) GetLastField() string { - if m != nil && m.LastField != nil { - return *m.LastField - } - return "" -} - -type OldMessage struct { - Nested *OldMessage_Nested `protobuf:"bytes,1,opt,name=nested" json:"nested,omitempty"` - Num *int32 `protobuf:"varint,2,opt,name=num" json:"num,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OldMessage) Reset() { *m = OldMessage{} } -func (m *OldMessage) String() string { return proto.CompactTextString(m) } -func (*OldMessage) ProtoMessage() {} - -func (m *OldMessage) GetNested() *OldMessage_Nested { - if m != nil { - return m.Nested - } - return nil -} - -func (m *OldMessage) GetNum() int32 { - if m != nil && m.Num != nil { - return *m.Num - } - return 0 -} - -type OldMessage_Nested struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OldMessage_Nested) Reset() { *m = OldMessage_Nested{} } -func (m *OldMessage_Nested) String() string { return proto.CompactTextString(m) } -func (*OldMessage_Nested) ProtoMessage() {} - -func (m *OldMessage_Nested) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -// NewMessage is wire compatible with OldMessage; -// imagine it as a future version. -type NewMessage struct { - Nested *NewMessage_Nested `protobuf:"bytes,1,opt,name=nested" json:"nested,omitempty"` - // This is an int32 in OldMessage. - Num *int64 `protobuf:"varint,2,opt,name=num" json:"num,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NewMessage) Reset() { *m = NewMessage{} } -func (m *NewMessage) String() string { return proto.CompactTextString(m) } -func (*NewMessage) ProtoMessage() {} - -func (m *NewMessage) GetNested() *NewMessage_Nested { - if m != nil { - return m.Nested - } - return nil -} - -func (m *NewMessage) GetNum() int64 { - if m != nil && m.Num != nil { - return *m.Num - } - return 0 -} - -type NewMessage_Nested struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - FoodGroup *string `protobuf:"bytes,2,opt,name=food_group" json:"food_group,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NewMessage_Nested) Reset() { *m = NewMessage_Nested{} } -func (m *NewMessage_Nested) String() string { return proto.CompactTextString(m) } -func (*NewMessage_Nested) ProtoMessage() {} - -func (m *NewMessage_Nested) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *NewMessage_Nested) GetFoodGroup() string { - if m != nil && m.FoodGroup != nil { - return *m.FoodGroup - } - return "" -} - -type InnerMessage struct { - Host *string `protobuf:"bytes,1,req,name=host" json:"host,omitempty"` - Port *int32 `protobuf:"varint,2,opt,name=port,def=4000" json:"port,omitempty"` - Connected *bool `protobuf:"varint,3,opt,name=connected" json:"connected,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *InnerMessage) Reset() { *m = InnerMessage{} } -func (m *InnerMessage) String() string { return proto.CompactTextString(m) } -func (*InnerMessage) ProtoMessage() {} - -const Default_InnerMessage_Port int32 = 4000 - -func (m *InnerMessage) GetHost() string { - if m != nil && m.Host != nil { - return *m.Host - } - return "" -} - -func (m *InnerMessage) GetPort() int32 { - if m != nil && m.Port != nil { - return *m.Port - } - return Default_InnerMessage_Port -} - -func (m *InnerMessage) GetConnected() bool { - if m != nil && m.Connected != nil { - return *m.Connected - } - return false -} - -type OtherMessage struct { - Key *int64 `protobuf:"varint,1,opt,name=key" json:"key,omitempty"` - Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` - Weight *float32 `protobuf:"fixed32,3,opt,name=weight" json:"weight,omitempty"` - Inner *InnerMessage `protobuf:"bytes,4,opt,name=inner" json:"inner,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OtherMessage) Reset() { *m = OtherMessage{} } -func (m *OtherMessage) String() string { return proto.CompactTextString(m) } -func (*OtherMessage) ProtoMessage() {} - -func (m *OtherMessage) GetKey() int64 { - if m != nil && m.Key != nil { - return *m.Key - } - return 0 -} - -func (m *OtherMessage) GetValue() []byte { - if m != nil { - return m.Value - } - return nil -} - -func (m *OtherMessage) GetWeight() float32 { - if m != nil && m.Weight != nil { - return *m.Weight - } - return 0 -} - -func (m *OtherMessage) GetInner() *InnerMessage { - if m != nil { - return m.Inner - } - return nil -} - -type MyMessage struct { - Count *int32 `protobuf:"varint,1,req,name=count" json:"count,omitempty"` - Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Quote *string `protobuf:"bytes,3,opt,name=quote" json:"quote,omitempty"` - Pet []string `protobuf:"bytes,4,rep,name=pet" json:"pet,omitempty"` - Inner *InnerMessage `protobuf:"bytes,5,opt,name=inner" json:"inner,omitempty"` - Others []*OtherMessage `protobuf:"bytes,6,rep,name=others" json:"others,omitempty"` - RepInner []*InnerMessage `protobuf:"bytes,12,rep,name=rep_inner" json:"rep_inner,omitempty"` - Bikeshed *MyMessage_Color `protobuf:"varint,7,opt,name=bikeshed,enum=testdata.MyMessage_Color" json:"bikeshed,omitempty"` - Somegroup *MyMessage_SomeGroup `protobuf:"group,8,opt,name=SomeGroup" json:"somegroup,omitempty"` - // This field becomes [][]byte in the generated code. - RepBytes [][]byte `protobuf:"bytes,10,rep,name=rep_bytes" json:"rep_bytes,omitempty"` - Bigfloat *float64 `protobuf:"fixed64,11,opt,name=bigfloat" json:"bigfloat,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MyMessage) Reset() { *m = MyMessage{} } -func (m *MyMessage) String() string { return proto.CompactTextString(m) } -func (*MyMessage) ProtoMessage() {} - -var extRange_MyMessage = []proto.ExtensionRange{ - {100, 536870911}, -} - -func (*MyMessage) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_MyMessage -} -func (m *MyMessage) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -func (m *MyMessage) GetCount() int32 { - if m != nil && m.Count != nil { - return *m.Count - } - return 0 -} - -func (m *MyMessage) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *MyMessage) GetQuote() string { - if m != nil && m.Quote != nil { - return *m.Quote - } - return "" -} - -func (m *MyMessage) GetPet() []string { - if m != nil { - return m.Pet - } - return nil -} - -func (m *MyMessage) GetInner() *InnerMessage { - if m != nil { - return m.Inner - } - return nil -} - -func (m *MyMessage) GetOthers() []*OtherMessage { - if m != nil { - return m.Others - } - return nil -} - -func (m *MyMessage) GetRepInner() []*InnerMessage { - if m != nil { - return m.RepInner - } - return nil -} - -func (m *MyMessage) GetBikeshed() MyMessage_Color { - if m != nil && m.Bikeshed != nil { - return *m.Bikeshed - } - return MyMessage_RED -} - -func (m *MyMessage) GetSomegroup() *MyMessage_SomeGroup { - if m != nil { - return m.Somegroup - } - return nil -} - -func (m *MyMessage) GetRepBytes() [][]byte { - if m != nil { - return m.RepBytes - } - return nil -} - -func (m *MyMessage) GetBigfloat() float64 { - if m != nil && m.Bigfloat != nil { - return *m.Bigfloat - } - return 0 -} - -type MyMessage_SomeGroup struct { - GroupField *int32 `protobuf:"varint,9,opt,name=group_field" json:"group_field,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MyMessage_SomeGroup) Reset() { *m = MyMessage_SomeGroup{} } -func (m *MyMessage_SomeGroup) String() string { return proto.CompactTextString(m) } -func (*MyMessage_SomeGroup) ProtoMessage() {} - -func (m *MyMessage_SomeGroup) GetGroupField() int32 { - if m != nil && m.GroupField != nil { - return *m.GroupField - } - return 0 -} - -type Ext struct { - Data *string `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Ext) Reset() { *m = Ext{} } -func (m *Ext) String() string { return proto.CompactTextString(m) } -func (*Ext) ProtoMessage() {} - -func (m *Ext) GetData() string { - if m != nil && m.Data != nil { - return *m.Data - } - return "" -} - -var E_Ext_More = &proto.ExtensionDesc{ - ExtendedType: (*MyMessage)(nil), - ExtensionType: (*Ext)(nil), - Field: 103, - Name: "testdata.Ext.more", - Tag: "bytes,103,opt,name=more", -} - -var E_Ext_Text = &proto.ExtensionDesc{ - ExtendedType: (*MyMessage)(nil), - ExtensionType: (*string)(nil), - Field: 104, - Name: "testdata.Ext.text", - Tag: "bytes,104,opt,name=text", -} - -var E_Ext_Number = &proto.ExtensionDesc{ - ExtendedType: (*MyMessage)(nil), - ExtensionType: (*int32)(nil), - Field: 105, - Name: "testdata.Ext.number", - Tag: "varint,105,opt,name=number", -} - -type DefaultsMessage struct { - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *DefaultsMessage) Reset() { *m = DefaultsMessage{} } -func (m *DefaultsMessage) String() string { return proto.CompactTextString(m) } -func (*DefaultsMessage) ProtoMessage() {} - -var extRange_DefaultsMessage = []proto.ExtensionRange{ - {100, 536870911}, -} - -func (*DefaultsMessage) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_DefaultsMessage -} -func (m *DefaultsMessage) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -type MyMessageSet struct { - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MyMessageSet) Reset() { *m = MyMessageSet{} } -func (m *MyMessageSet) String() string { return proto.CompactTextString(m) } -func (*MyMessageSet) ProtoMessage() {} - -func (m *MyMessageSet) Marshal() ([]byte, error) { - return proto.MarshalMessageSet(m.ExtensionMap()) -} -func (m *MyMessageSet) Unmarshal(buf []byte) error { - return proto.UnmarshalMessageSet(buf, m.ExtensionMap()) -} -func (m *MyMessageSet) MarshalJSON() ([]byte, error) { - return proto.MarshalMessageSetJSON(m.XXX_extensions) -} -func (m *MyMessageSet) UnmarshalJSON(buf []byte) error { - return proto.UnmarshalMessageSetJSON(buf, m.XXX_extensions) -} - -// ensure MyMessageSet satisfies proto.Marshaler and proto.Unmarshaler -var _ proto.Marshaler = (*MyMessageSet)(nil) -var _ proto.Unmarshaler = (*MyMessageSet)(nil) - -var extRange_MyMessageSet = []proto.ExtensionRange{ - {100, 2147483646}, -} - -func (*MyMessageSet) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_MyMessageSet -} -func (m *MyMessageSet) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -type Empty struct { - XXX_unrecognized []byte `json:"-"` -} - -func (m *Empty) Reset() { *m = Empty{} } -func (m *Empty) String() string { return proto.CompactTextString(m) } -func (*Empty) ProtoMessage() {} - -type MessageList struct { - Message []*MessageList_Message `protobuf:"group,1,rep,name=Message" json:"message,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MessageList) Reset() { *m = MessageList{} } -func (m *MessageList) String() string { return proto.CompactTextString(m) } -func (*MessageList) ProtoMessage() {} - -func (m *MessageList) GetMessage() []*MessageList_Message { - if m != nil { - return m.Message - } - return nil -} - -type MessageList_Message struct { - Name *string `protobuf:"bytes,2,req,name=name" json:"name,omitempty"` - Count *int32 `protobuf:"varint,3,req,name=count" json:"count,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MessageList_Message) Reset() { *m = MessageList_Message{} } -func (m *MessageList_Message) String() string { return proto.CompactTextString(m) } -func (*MessageList_Message) ProtoMessage() {} - -func (m *MessageList_Message) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *MessageList_Message) GetCount() int32 { - if m != nil && m.Count != nil { - return *m.Count - } - return 0 -} - -type Strings struct { - StringField *string `protobuf:"bytes,1,opt,name=string_field" json:"string_field,omitempty"` - BytesField []byte `protobuf:"bytes,2,opt,name=bytes_field" json:"bytes_field,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Strings) Reset() { *m = Strings{} } -func (m *Strings) String() string { return proto.CompactTextString(m) } -func (*Strings) ProtoMessage() {} - -func (m *Strings) GetStringField() string { - if m != nil && m.StringField != nil { - return *m.StringField - } - return "" -} - -func (m *Strings) GetBytesField() []byte { - if m != nil { - return m.BytesField - } - return nil -} - -type Defaults struct { - // Default-valued fields of all basic types. - // Same as GoTest, but copied here to make testing easier. - F_Bool *bool `protobuf:"varint,1,opt,name=F_Bool,def=1" json:"F_Bool,omitempty"` - F_Int32 *int32 `protobuf:"varint,2,opt,name=F_Int32,def=32" json:"F_Int32,omitempty"` - F_Int64 *int64 `protobuf:"varint,3,opt,name=F_Int64,def=64" json:"F_Int64,omitempty"` - F_Fixed32 *uint32 `protobuf:"fixed32,4,opt,name=F_Fixed32,def=320" json:"F_Fixed32,omitempty"` - F_Fixed64 *uint64 `protobuf:"fixed64,5,opt,name=F_Fixed64,def=640" json:"F_Fixed64,omitempty"` - F_Uint32 *uint32 `protobuf:"varint,6,opt,name=F_Uint32,def=3200" json:"F_Uint32,omitempty"` - F_Uint64 *uint64 `protobuf:"varint,7,opt,name=F_Uint64,def=6400" json:"F_Uint64,omitempty"` - F_Float *float32 `protobuf:"fixed32,8,opt,name=F_Float,def=314159" json:"F_Float,omitempty"` - F_Double *float64 `protobuf:"fixed64,9,opt,name=F_Double,def=271828" json:"F_Double,omitempty"` - F_String *string `protobuf:"bytes,10,opt,name=F_String,def=hello, \"world!\"\n" json:"F_String,omitempty"` - F_Bytes []byte `protobuf:"bytes,11,opt,name=F_Bytes,def=Bignose" json:"F_Bytes,omitempty"` - F_Sint32 *int32 `protobuf:"zigzag32,12,opt,name=F_Sint32,def=-32" json:"F_Sint32,omitempty"` - F_Sint64 *int64 `protobuf:"zigzag64,13,opt,name=F_Sint64,def=-64" json:"F_Sint64,omitempty"` - F_Enum *Defaults_Color `protobuf:"varint,14,opt,name=F_Enum,enum=testdata.Defaults_Color,def=1" json:"F_Enum,omitempty"` - // More fields with crazy defaults. - F_Pinf *float32 `protobuf:"fixed32,15,opt,name=F_Pinf,def=inf" json:"F_Pinf,omitempty"` - F_Ninf *float32 `protobuf:"fixed32,16,opt,name=F_Ninf,def=-inf" json:"F_Ninf,omitempty"` - F_Nan *float32 `protobuf:"fixed32,17,opt,name=F_Nan,def=nan" json:"F_Nan,omitempty"` - // Sub-message. - Sub *SubDefaults `protobuf:"bytes,18,opt,name=sub" json:"sub,omitempty"` - // Redundant but explicit defaults. - StrZero *string `protobuf:"bytes,19,opt,name=str_zero,def=" json:"str_zero,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Defaults) Reset() { *m = Defaults{} } -func (m *Defaults) String() string { return proto.CompactTextString(m) } -func (*Defaults) ProtoMessage() {} - -const Default_Defaults_F_Bool bool = true -const Default_Defaults_F_Int32 int32 = 32 -const Default_Defaults_F_Int64 int64 = 64 -const Default_Defaults_F_Fixed32 uint32 = 320 -const Default_Defaults_F_Fixed64 uint64 = 640 -const Default_Defaults_F_Uint32 uint32 = 3200 -const Default_Defaults_F_Uint64 uint64 = 6400 -const Default_Defaults_F_Float float32 = 314159 -const Default_Defaults_F_Double float64 = 271828 -const Default_Defaults_F_String string = "hello, \"world!\"\n" - -var Default_Defaults_F_Bytes []byte = []byte("Bignose") - -const Default_Defaults_F_Sint32 int32 = -32 -const Default_Defaults_F_Sint64 int64 = -64 -const Default_Defaults_F_Enum Defaults_Color = Defaults_GREEN - -var Default_Defaults_F_Pinf float32 = float32(math.Inf(1)) -var Default_Defaults_F_Ninf float32 = float32(math.Inf(-1)) -var Default_Defaults_F_Nan float32 = float32(math.NaN()) - -func (m *Defaults) GetF_Bool() bool { - if m != nil && m.F_Bool != nil { - return *m.F_Bool - } - return Default_Defaults_F_Bool -} - -func (m *Defaults) GetF_Int32() int32 { - if m != nil && m.F_Int32 != nil { - return *m.F_Int32 - } - return Default_Defaults_F_Int32 -} - -func (m *Defaults) GetF_Int64() int64 { - if m != nil && m.F_Int64 != nil { - return *m.F_Int64 - } - return Default_Defaults_F_Int64 -} - -func (m *Defaults) GetF_Fixed32() uint32 { - if m != nil && m.F_Fixed32 != nil { - return *m.F_Fixed32 - } - return Default_Defaults_F_Fixed32 -} - -func (m *Defaults) GetF_Fixed64() uint64 { - if m != nil && m.F_Fixed64 != nil { - return *m.F_Fixed64 - } - return Default_Defaults_F_Fixed64 -} - -func (m *Defaults) GetF_Uint32() uint32 { - if m != nil && m.F_Uint32 != nil { - return *m.F_Uint32 - } - return Default_Defaults_F_Uint32 -} - -func (m *Defaults) GetF_Uint64() uint64 { - if m != nil && m.F_Uint64 != nil { - return *m.F_Uint64 - } - return Default_Defaults_F_Uint64 -} - -func (m *Defaults) GetF_Float() float32 { - if m != nil && m.F_Float != nil { - return *m.F_Float - } - return Default_Defaults_F_Float -} - -func (m *Defaults) GetF_Double() float64 { - if m != nil && m.F_Double != nil { - return *m.F_Double - } - return Default_Defaults_F_Double -} - -func (m *Defaults) GetF_String() string { - if m != nil && m.F_String != nil { - return *m.F_String - } - return Default_Defaults_F_String -} - -func (m *Defaults) GetF_Bytes() []byte { - if m != nil && m.F_Bytes != nil { - return m.F_Bytes - } - return append([]byte(nil), Default_Defaults_F_Bytes...) -} - -func (m *Defaults) GetF_Sint32() int32 { - if m != nil && m.F_Sint32 != nil { - return *m.F_Sint32 - } - return Default_Defaults_F_Sint32 -} - -func (m *Defaults) GetF_Sint64() int64 { - if m != nil && m.F_Sint64 != nil { - return *m.F_Sint64 - } - return Default_Defaults_F_Sint64 -} - -func (m *Defaults) GetF_Enum() Defaults_Color { - if m != nil && m.F_Enum != nil { - return *m.F_Enum - } - return Default_Defaults_F_Enum -} - -func (m *Defaults) GetF_Pinf() float32 { - if m != nil && m.F_Pinf != nil { - return *m.F_Pinf - } - return Default_Defaults_F_Pinf -} - -func (m *Defaults) GetF_Ninf() float32 { - if m != nil && m.F_Ninf != nil { - return *m.F_Ninf - } - return Default_Defaults_F_Ninf -} - -func (m *Defaults) GetF_Nan() float32 { - if m != nil && m.F_Nan != nil { - return *m.F_Nan - } - return Default_Defaults_F_Nan -} - -func (m *Defaults) GetSub() *SubDefaults { - if m != nil { - return m.Sub - } - return nil -} - -func (m *Defaults) GetStrZero() string { - if m != nil && m.StrZero != nil { - return *m.StrZero - } - return "" -} - -type SubDefaults struct { - N *int64 `protobuf:"varint,1,opt,name=n,def=7" json:"n,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *SubDefaults) Reset() { *m = SubDefaults{} } -func (m *SubDefaults) String() string { return proto.CompactTextString(m) } -func (*SubDefaults) ProtoMessage() {} - -const Default_SubDefaults_N int64 = 7 - -func (m *SubDefaults) GetN() int64 { - if m != nil && m.N != nil { - return *m.N - } - return Default_SubDefaults_N -} - -type RepeatedEnum struct { - Color []RepeatedEnum_Color `protobuf:"varint,1,rep,name=color,enum=testdata.RepeatedEnum_Color" json:"color,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *RepeatedEnum) Reset() { *m = RepeatedEnum{} } -func (m *RepeatedEnum) String() string { return proto.CompactTextString(m) } -func (*RepeatedEnum) ProtoMessage() {} - -func (m *RepeatedEnum) GetColor() []RepeatedEnum_Color { - if m != nil { - return m.Color - } - return nil -} - -type MoreRepeated struct { - Bools []bool `protobuf:"varint,1,rep,name=bools" json:"bools,omitempty"` - BoolsPacked []bool `protobuf:"varint,2,rep,packed,name=bools_packed" json:"bools_packed,omitempty"` - Ints []int32 `protobuf:"varint,3,rep,name=ints" json:"ints,omitempty"` - IntsPacked []int32 `protobuf:"varint,4,rep,packed,name=ints_packed" json:"ints_packed,omitempty"` - Int64SPacked []int64 `protobuf:"varint,7,rep,packed,name=int64s_packed" json:"int64s_packed,omitempty"` - Strings []string `protobuf:"bytes,5,rep,name=strings" json:"strings,omitempty"` - Fixeds []uint32 `protobuf:"fixed32,6,rep,name=fixeds" json:"fixeds,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MoreRepeated) Reset() { *m = MoreRepeated{} } -func (m *MoreRepeated) String() string { return proto.CompactTextString(m) } -func (*MoreRepeated) ProtoMessage() {} - -func (m *MoreRepeated) GetBools() []bool { - if m != nil { - return m.Bools - } - return nil -} - -func (m *MoreRepeated) GetBoolsPacked() []bool { - if m != nil { - return m.BoolsPacked - } - return nil -} - -func (m *MoreRepeated) GetInts() []int32 { - if m != nil { - return m.Ints - } - return nil -} - -func (m *MoreRepeated) GetIntsPacked() []int32 { - if m != nil { - return m.IntsPacked - } - return nil -} - -func (m *MoreRepeated) GetInt64SPacked() []int64 { - if m != nil { - return m.Int64SPacked - } - return nil -} - -func (m *MoreRepeated) GetStrings() []string { - if m != nil { - return m.Strings - } - return nil -} - -func (m *MoreRepeated) GetFixeds() []uint32 { - if m != nil { - return m.Fixeds - } - return nil -} - -type GroupOld struct { - G *GroupOld_G `protobuf:"group,101,opt,name=G" json:"g,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GroupOld) Reset() { *m = GroupOld{} } -func (m *GroupOld) String() string { return proto.CompactTextString(m) } -func (*GroupOld) ProtoMessage() {} - -func (m *GroupOld) GetG() *GroupOld_G { - if m != nil { - return m.G - } - return nil -} - -type GroupOld_G struct { - X *int32 `protobuf:"varint,2,opt,name=x" json:"x,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GroupOld_G) Reset() { *m = GroupOld_G{} } -func (m *GroupOld_G) String() string { return proto.CompactTextString(m) } -func (*GroupOld_G) ProtoMessage() {} - -func (m *GroupOld_G) GetX() int32 { - if m != nil && m.X != nil { - return *m.X - } - return 0 -} - -type GroupNew struct { - G *GroupNew_G `protobuf:"group,101,opt,name=G" json:"g,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GroupNew) Reset() { *m = GroupNew{} } -func (m *GroupNew) String() string { return proto.CompactTextString(m) } -func (*GroupNew) ProtoMessage() {} - -func (m *GroupNew) GetG() *GroupNew_G { - if m != nil { - return m.G - } - return nil -} - -type GroupNew_G struct { - X *int32 `protobuf:"varint,2,opt,name=x" json:"x,omitempty"` - Y *int32 `protobuf:"varint,3,opt,name=y" json:"y,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GroupNew_G) Reset() { *m = GroupNew_G{} } -func (m *GroupNew_G) String() string { return proto.CompactTextString(m) } -func (*GroupNew_G) ProtoMessage() {} - -func (m *GroupNew_G) GetX() int32 { - if m != nil && m.X != nil { - return *m.X - } - return 0 -} - -func (m *GroupNew_G) GetY() int32 { - if m != nil && m.Y != nil { - return *m.Y - } - return 0 -} - -type FloatingPoint struct { - F *float64 `protobuf:"fixed64,1,req,name=f" json:"f,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } -func (m *FloatingPoint) String() string { return proto.CompactTextString(m) } -func (*FloatingPoint) ProtoMessage() {} - -func (m *FloatingPoint) GetF() float64 { - if m != nil && m.F != nil { - return *m.F - } - return 0 -} - -type MessageWithMap struct { - NameMapping map[int32]string `protobuf:"bytes,1,rep,name=name_mapping" json:"name_mapping,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - MsgMapping map[int64]*FloatingPoint `protobuf:"bytes,2,rep,name=msg_mapping" json:"msg_mapping,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - ByteMapping map[bool][]byte `protobuf:"bytes,3,rep,name=byte_mapping" json:"byte_mapping,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StrToStr map[string]string `protobuf:"bytes,4,rep,name=str_to_str" json:"str_to_str,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MessageWithMap) Reset() { *m = MessageWithMap{} } -func (m *MessageWithMap) String() string { return proto.CompactTextString(m) } -func (*MessageWithMap) ProtoMessage() {} - -func (m *MessageWithMap) GetNameMapping() map[int32]string { - if m != nil { - return m.NameMapping - } - return nil -} - -func (m *MessageWithMap) GetMsgMapping() map[int64]*FloatingPoint { - if m != nil { - return m.MsgMapping - } - return nil -} - -func (m *MessageWithMap) GetByteMapping() map[bool][]byte { - if m != nil { - return m.ByteMapping - } - return nil -} - -func (m *MessageWithMap) GetStrToStr() map[string]string { - if m != nil { - return m.StrToStr - } - return nil -} - -type Communique struct { - MakeMeCry *bool `protobuf:"varint,1,opt,name=make_me_cry" json:"make_me_cry,omitempty"` - // This is a oneof, called "union". - // - // Types that are valid to be assigned to Union: - // *Communique_Number - // *Communique_Name - // *Communique_Data - // *Communique_TempC - // *Communique_Col - // *Communique_Msg - Union isCommunique_Union `protobuf_oneof:"union"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Communique) Reset() { *m = Communique{} } -func (m *Communique) String() string { return proto.CompactTextString(m) } -func (*Communique) ProtoMessage() {} - -type isCommunique_Union interface { - isCommunique_Union() -} - -type Communique_Number struct { - Number int32 `protobuf:"varint,5,opt,name=number,oneof"` -} -type Communique_Name struct { - Name string `protobuf:"bytes,6,opt,name=name,oneof"` -} -type Communique_Data struct { - Data []byte `protobuf:"bytes,7,opt,name=data,oneof"` -} -type Communique_TempC struct { - TempC float64 `protobuf:"fixed64,8,opt,name=temp_c,oneof"` -} -type Communique_Col struct { - Col MyMessage_Color `protobuf:"varint,9,opt,name=col,enum=testdata.MyMessage_Color,oneof"` -} -type Communique_Msg struct { - Msg *Strings `protobuf:"bytes,10,opt,name=msg,oneof"` -} - -func (*Communique_Number) isCommunique_Union() {} -func (*Communique_Name) isCommunique_Union() {} -func (*Communique_Data) isCommunique_Union() {} -func (*Communique_TempC) isCommunique_Union() {} -func (*Communique_Col) isCommunique_Union() {} -func (*Communique_Msg) isCommunique_Union() {} - -func (m *Communique) GetUnion() isCommunique_Union { - if m != nil { - return m.Union - } - return nil -} - -func (m *Communique) GetMakeMeCry() bool { - if m != nil && m.MakeMeCry != nil { - return *m.MakeMeCry - } - return false -} - -func (m *Communique) GetNumber() int32 { - if x, ok := m.GetUnion().(*Communique_Number); ok { - return x.Number - } - return 0 -} - -func (m *Communique) GetName() string { - if x, ok := m.GetUnion().(*Communique_Name); ok { - return x.Name - } - return "" -} - -func (m *Communique) GetData() []byte { - if x, ok := m.GetUnion().(*Communique_Data); ok { - return x.Data - } - return nil -} - -func (m *Communique) GetTempC() float64 { - if x, ok := m.GetUnion().(*Communique_TempC); ok { - return x.TempC - } - return 0 -} - -func (m *Communique) GetCol() MyMessage_Color { - if x, ok := m.GetUnion().(*Communique_Col); ok { - return x.Col - } - return MyMessage_RED -} - -func (m *Communique) GetMsg() *Strings { - if x, ok := m.GetUnion().(*Communique_Msg); ok { - return x.Msg - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*Communique) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), []interface{}) { - return _Communique_OneofMarshaler, _Communique_OneofUnmarshaler, []interface{}{ - (*Communique_Number)(nil), - (*Communique_Name)(nil), - (*Communique_Data)(nil), - (*Communique_TempC)(nil), - (*Communique_Col)(nil), - (*Communique_Msg)(nil), - } -} - -func _Communique_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*Communique) - // union - switch x := m.Union.(type) { - case *Communique_Number: - _ = b.EncodeVarint(5<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Number)) - case *Communique_Name: - _ = b.EncodeVarint(6<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Name) - case *Communique_Data: - _ = b.EncodeVarint(7<<3 | proto.WireBytes) - _ = b.EncodeRawBytes(x.Data) - case *Communique_TempC: - _ = b.EncodeVarint(8<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(math.Float64bits(x.TempC)) - case *Communique_Col: - _ = b.EncodeVarint(9<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Col)) - case *Communique_Msg: - _ = b.EncodeVarint(10<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Msg); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("Communique.Union has unexpected type %T", x) - } - return nil -} - -func _Communique_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*Communique) - switch tag { - case 5: // union.number - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Union = &Communique_Number{int32(x)} - return true, err - case 6: // union.name - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Union = &Communique_Name{x} - return true, err - case 7: // union.data - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.Union = &Communique_Data{x} - return true, err - case 8: // union.temp_c - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.Union = &Communique_TempC{math.Float64frombits(x)} - return true, err - case 9: // union.col - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Union = &Communique_Col{MyMessage_Color(x)} - return true, err - case 10: // union.msg - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Strings) - err := b.DecodeMessage(msg) - m.Union = &Communique_Msg{msg} - return true, err - default: - return false, nil - } -} - -var E_Greeting = &proto.ExtensionDesc{ - ExtendedType: (*MyMessage)(nil), - ExtensionType: ([]string)(nil), - Field: 106, - Name: "testdata.greeting", - Tag: "bytes,106,rep,name=greeting", -} - -var E_NoDefaultDouble = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*float64)(nil), - Field: 101, - Name: "testdata.no_default_double", - Tag: "fixed64,101,opt,name=no_default_double", -} - -var E_NoDefaultFloat = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*float32)(nil), - Field: 102, - Name: "testdata.no_default_float", - Tag: "fixed32,102,opt,name=no_default_float", -} - -var E_NoDefaultInt32 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*int32)(nil), - Field: 103, - Name: "testdata.no_default_int32", - Tag: "varint,103,opt,name=no_default_int32", -} - -var E_NoDefaultInt64 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*int64)(nil), - Field: 104, - Name: "testdata.no_default_int64", - Tag: "varint,104,opt,name=no_default_int64", -} - -var E_NoDefaultUint32 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*uint32)(nil), - Field: 105, - Name: "testdata.no_default_uint32", - Tag: "varint,105,opt,name=no_default_uint32", -} - -var E_NoDefaultUint64 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*uint64)(nil), - Field: 106, - Name: "testdata.no_default_uint64", - Tag: "varint,106,opt,name=no_default_uint64", -} - -var E_NoDefaultSint32 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*int32)(nil), - Field: 107, - Name: "testdata.no_default_sint32", - Tag: "zigzag32,107,opt,name=no_default_sint32", -} - -var E_NoDefaultSint64 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*int64)(nil), - Field: 108, - Name: "testdata.no_default_sint64", - Tag: "zigzag64,108,opt,name=no_default_sint64", -} - -var E_NoDefaultFixed32 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*uint32)(nil), - Field: 109, - Name: "testdata.no_default_fixed32", - Tag: "fixed32,109,opt,name=no_default_fixed32", -} - -var E_NoDefaultFixed64 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*uint64)(nil), - Field: 110, - Name: "testdata.no_default_fixed64", - Tag: "fixed64,110,opt,name=no_default_fixed64", -} - -var E_NoDefaultSfixed32 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*int32)(nil), - Field: 111, - Name: "testdata.no_default_sfixed32", - Tag: "fixed32,111,opt,name=no_default_sfixed32", -} - -var E_NoDefaultSfixed64 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*int64)(nil), - Field: 112, - Name: "testdata.no_default_sfixed64", - Tag: "fixed64,112,opt,name=no_default_sfixed64", -} - -var E_NoDefaultBool = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*bool)(nil), - Field: 113, - Name: "testdata.no_default_bool", - Tag: "varint,113,opt,name=no_default_bool", -} - -var E_NoDefaultString = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*string)(nil), - Field: 114, - Name: "testdata.no_default_string", - Tag: "bytes,114,opt,name=no_default_string", -} - -var E_NoDefaultBytes = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: ([]byte)(nil), - Field: 115, - Name: "testdata.no_default_bytes", - Tag: "bytes,115,opt,name=no_default_bytes", -} - -var E_NoDefaultEnum = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*DefaultsMessage_DefaultsEnum)(nil), - Field: 116, - Name: "testdata.no_default_enum", - Tag: "varint,116,opt,name=no_default_enum,enum=testdata.DefaultsMessage_DefaultsEnum", -} - -var E_DefaultDouble = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*float64)(nil), - Field: 201, - Name: "testdata.default_double", - Tag: "fixed64,201,opt,name=default_double,def=3.1415", -} - -var E_DefaultFloat = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*float32)(nil), - Field: 202, - Name: "testdata.default_float", - Tag: "fixed32,202,opt,name=default_float,def=3.14", -} - -var E_DefaultInt32 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*int32)(nil), - Field: 203, - Name: "testdata.default_int32", - Tag: "varint,203,opt,name=default_int32,def=42", -} - -var E_DefaultInt64 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*int64)(nil), - Field: 204, - Name: "testdata.default_int64", - Tag: "varint,204,opt,name=default_int64,def=43", -} - -var E_DefaultUint32 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*uint32)(nil), - Field: 205, - Name: "testdata.default_uint32", - Tag: "varint,205,opt,name=default_uint32,def=44", -} - -var E_DefaultUint64 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*uint64)(nil), - Field: 206, - Name: "testdata.default_uint64", - Tag: "varint,206,opt,name=default_uint64,def=45", -} - -var E_DefaultSint32 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*int32)(nil), - Field: 207, - Name: "testdata.default_sint32", - Tag: "zigzag32,207,opt,name=default_sint32,def=46", -} - -var E_DefaultSint64 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*int64)(nil), - Field: 208, - Name: "testdata.default_sint64", - Tag: "zigzag64,208,opt,name=default_sint64,def=47", -} - -var E_DefaultFixed32 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*uint32)(nil), - Field: 209, - Name: "testdata.default_fixed32", - Tag: "fixed32,209,opt,name=default_fixed32,def=48", -} - -var E_DefaultFixed64 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*uint64)(nil), - Field: 210, - Name: "testdata.default_fixed64", - Tag: "fixed64,210,opt,name=default_fixed64,def=49", -} - -var E_DefaultSfixed32 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*int32)(nil), - Field: 211, - Name: "testdata.default_sfixed32", - Tag: "fixed32,211,opt,name=default_sfixed32,def=50", -} - -var E_DefaultSfixed64 = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*int64)(nil), - Field: 212, - Name: "testdata.default_sfixed64", - Tag: "fixed64,212,opt,name=default_sfixed64,def=51", -} - -var E_DefaultBool = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*bool)(nil), - Field: 213, - Name: "testdata.default_bool", - Tag: "varint,213,opt,name=default_bool,def=1", -} - -var E_DefaultString = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*string)(nil), - Field: 214, - Name: "testdata.default_string", - Tag: "bytes,214,opt,name=default_string,def=Hello, string", -} - -var E_DefaultBytes = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: ([]byte)(nil), - Field: 215, - Name: "testdata.default_bytes", - Tag: "bytes,215,opt,name=default_bytes,def=Hello, bytes", -} - -var E_DefaultEnum = &proto.ExtensionDesc{ - ExtendedType: (*DefaultsMessage)(nil), - ExtensionType: (*DefaultsMessage_DefaultsEnum)(nil), - Field: 216, - Name: "testdata.default_enum", - Tag: "varint,216,opt,name=default_enum,enum=testdata.DefaultsMessage_DefaultsEnum,def=1", -} - -var E_X201 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 201, - Name: "testdata.x201", - Tag: "bytes,201,opt,name=x201", -} - -var E_X202 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 202, - Name: "testdata.x202", - Tag: "bytes,202,opt,name=x202", -} - -var E_X203 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 203, - Name: "testdata.x203", - Tag: "bytes,203,opt,name=x203", -} - -var E_X204 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 204, - Name: "testdata.x204", - Tag: "bytes,204,opt,name=x204", -} - -var E_X205 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 205, - Name: "testdata.x205", - Tag: "bytes,205,opt,name=x205", -} - -var E_X206 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 206, - Name: "testdata.x206", - Tag: "bytes,206,opt,name=x206", -} - -var E_X207 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 207, - Name: "testdata.x207", - Tag: "bytes,207,opt,name=x207", -} - -var E_X208 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 208, - Name: "testdata.x208", - Tag: "bytes,208,opt,name=x208", -} - -var E_X209 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 209, - Name: "testdata.x209", - Tag: "bytes,209,opt,name=x209", -} - -var E_X210 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 210, - Name: "testdata.x210", - Tag: "bytes,210,opt,name=x210", -} - -var E_X211 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 211, - Name: "testdata.x211", - Tag: "bytes,211,opt,name=x211", -} - -var E_X212 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 212, - Name: "testdata.x212", - Tag: "bytes,212,opt,name=x212", -} - -var E_X213 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 213, - Name: "testdata.x213", - Tag: "bytes,213,opt,name=x213", -} - -var E_X214 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 214, - Name: "testdata.x214", - Tag: "bytes,214,opt,name=x214", -} - -var E_X215 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 215, - Name: "testdata.x215", - Tag: "bytes,215,opt,name=x215", -} - -var E_X216 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 216, - Name: "testdata.x216", - Tag: "bytes,216,opt,name=x216", -} - -var E_X217 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 217, - Name: "testdata.x217", - Tag: "bytes,217,opt,name=x217", -} - -var E_X218 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 218, - Name: "testdata.x218", - Tag: "bytes,218,opt,name=x218", -} - -var E_X219 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 219, - Name: "testdata.x219", - Tag: "bytes,219,opt,name=x219", -} - -var E_X220 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 220, - Name: "testdata.x220", - Tag: "bytes,220,opt,name=x220", -} - -var E_X221 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 221, - Name: "testdata.x221", - Tag: "bytes,221,opt,name=x221", -} - -var E_X222 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 222, - Name: "testdata.x222", - Tag: "bytes,222,opt,name=x222", -} - -var E_X223 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 223, - Name: "testdata.x223", - Tag: "bytes,223,opt,name=x223", -} - -var E_X224 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 224, - Name: "testdata.x224", - Tag: "bytes,224,opt,name=x224", -} - -var E_X225 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 225, - Name: "testdata.x225", - Tag: "bytes,225,opt,name=x225", -} - -var E_X226 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 226, - Name: "testdata.x226", - Tag: "bytes,226,opt,name=x226", -} - -var E_X227 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 227, - Name: "testdata.x227", - Tag: "bytes,227,opt,name=x227", -} - -var E_X228 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 228, - Name: "testdata.x228", - Tag: "bytes,228,opt,name=x228", -} - -var E_X229 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 229, - Name: "testdata.x229", - Tag: "bytes,229,opt,name=x229", -} - -var E_X230 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 230, - Name: "testdata.x230", - Tag: "bytes,230,opt,name=x230", -} - -var E_X231 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 231, - Name: "testdata.x231", - Tag: "bytes,231,opt,name=x231", -} - -var E_X232 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 232, - Name: "testdata.x232", - Tag: "bytes,232,opt,name=x232", -} - -var E_X233 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 233, - Name: "testdata.x233", - Tag: "bytes,233,opt,name=x233", -} - -var E_X234 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 234, - Name: "testdata.x234", - Tag: "bytes,234,opt,name=x234", -} - -var E_X235 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 235, - Name: "testdata.x235", - Tag: "bytes,235,opt,name=x235", -} - -var E_X236 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 236, - Name: "testdata.x236", - Tag: "bytes,236,opt,name=x236", -} - -var E_X237 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 237, - Name: "testdata.x237", - Tag: "bytes,237,opt,name=x237", -} - -var E_X238 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 238, - Name: "testdata.x238", - Tag: "bytes,238,opt,name=x238", -} - -var E_X239 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 239, - Name: "testdata.x239", - Tag: "bytes,239,opt,name=x239", -} - -var E_X240 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 240, - Name: "testdata.x240", - Tag: "bytes,240,opt,name=x240", -} - -var E_X241 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 241, - Name: "testdata.x241", - Tag: "bytes,241,opt,name=x241", -} - -var E_X242 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 242, - Name: "testdata.x242", - Tag: "bytes,242,opt,name=x242", -} - -var E_X243 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 243, - Name: "testdata.x243", - Tag: "bytes,243,opt,name=x243", -} - -var E_X244 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 244, - Name: "testdata.x244", - Tag: "bytes,244,opt,name=x244", -} - -var E_X245 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 245, - Name: "testdata.x245", - Tag: "bytes,245,opt,name=x245", -} - -var E_X246 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 246, - Name: "testdata.x246", - Tag: "bytes,246,opt,name=x246", -} - -var E_X247 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 247, - Name: "testdata.x247", - Tag: "bytes,247,opt,name=x247", -} - -var E_X248 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 248, - Name: "testdata.x248", - Tag: "bytes,248,opt,name=x248", -} - -var E_X249 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 249, - Name: "testdata.x249", - Tag: "bytes,249,opt,name=x249", -} - -var E_X250 = &proto.ExtensionDesc{ - ExtendedType: (*MyMessageSet)(nil), - ExtensionType: (*Empty)(nil), - Field: 250, - Name: "testdata.x250", - Tag: "bytes,250,opt,name=x250", -} - -func init() { - proto.RegisterType((*GoEnum)(nil), "testdata.GoEnum") - proto.RegisterType((*GoTestField)(nil), "testdata.GoTestField") - proto.RegisterType((*GoTest)(nil), "testdata.GoTest") - proto.RegisterType((*GoTest_RequiredGroup)(nil), "testdata.GoTest.RequiredGroup") - proto.RegisterType((*GoTest_RepeatedGroup)(nil), "testdata.GoTest.RepeatedGroup") - proto.RegisterType((*GoTest_OptionalGroup)(nil), "testdata.GoTest.OptionalGroup") - proto.RegisterType((*GoSkipTest)(nil), "testdata.GoSkipTest") - proto.RegisterType((*GoSkipTest_SkipGroup)(nil), "testdata.GoSkipTest.SkipGroup") - proto.RegisterType((*NonPackedTest)(nil), "testdata.NonPackedTest") - proto.RegisterType((*PackedTest)(nil), "testdata.PackedTest") - proto.RegisterType((*MaxTag)(nil), "testdata.MaxTag") - proto.RegisterType((*OldMessage)(nil), "testdata.OldMessage") - proto.RegisterType((*OldMessage_Nested)(nil), "testdata.OldMessage.Nested") - proto.RegisterType((*NewMessage)(nil), "testdata.NewMessage") - proto.RegisterType((*NewMessage_Nested)(nil), "testdata.NewMessage.Nested") - proto.RegisterType((*InnerMessage)(nil), "testdata.InnerMessage") - proto.RegisterType((*OtherMessage)(nil), "testdata.OtherMessage") - proto.RegisterType((*MyMessage)(nil), "testdata.MyMessage") - proto.RegisterType((*MyMessage_SomeGroup)(nil), "testdata.MyMessage.SomeGroup") - proto.RegisterType((*Ext)(nil), "testdata.Ext") - proto.RegisterType((*DefaultsMessage)(nil), "testdata.DefaultsMessage") - proto.RegisterType((*MyMessageSet)(nil), "testdata.MyMessageSet") - proto.RegisterType((*Empty)(nil), "testdata.Empty") - proto.RegisterType((*MessageList)(nil), "testdata.MessageList") - proto.RegisterType((*MessageList_Message)(nil), "testdata.MessageList.Message") - proto.RegisterType((*Strings)(nil), "testdata.Strings") - proto.RegisterType((*Defaults)(nil), "testdata.Defaults") - proto.RegisterType((*SubDefaults)(nil), "testdata.SubDefaults") - proto.RegisterType((*RepeatedEnum)(nil), "testdata.RepeatedEnum") - proto.RegisterType((*MoreRepeated)(nil), "testdata.MoreRepeated") - proto.RegisterType((*GroupOld)(nil), "testdata.GroupOld") - proto.RegisterType((*GroupOld_G)(nil), "testdata.GroupOld.G") - proto.RegisterType((*GroupNew)(nil), "testdata.GroupNew") - proto.RegisterType((*GroupNew_G)(nil), "testdata.GroupNew.G") - proto.RegisterType((*FloatingPoint)(nil), "testdata.FloatingPoint") - proto.RegisterType((*MessageWithMap)(nil), "testdata.MessageWithMap") - proto.RegisterType((*Communique)(nil), "testdata.Communique") - proto.RegisterEnum("testdata.FOO", FOO_name, FOO_value) - proto.RegisterEnum("testdata.GoTest_KIND", GoTest_KIND_name, GoTest_KIND_value) - proto.RegisterEnum("testdata.MyMessage_Color", MyMessage_Color_name, MyMessage_Color_value) - proto.RegisterEnum("testdata.DefaultsMessage_DefaultsEnum", DefaultsMessage_DefaultsEnum_name, DefaultsMessage_DefaultsEnum_value) - proto.RegisterEnum("testdata.Defaults_Color", Defaults_Color_name, Defaults_Color_value) - proto.RegisterEnum("testdata.RepeatedEnum_Color", RepeatedEnum_Color_name, RepeatedEnum_Color_value) - proto.RegisterExtension(E_Ext_More) - proto.RegisterExtension(E_Ext_Text) - proto.RegisterExtension(E_Ext_Number) - proto.RegisterExtension(E_Greeting) - proto.RegisterExtension(E_NoDefaultDouble) - proto.RegisterExtension(E_NoDefaultFloat) - proto.RegisterExtension(E_NoDefaultInt32) - proto.RegisterExtension(E_NoDefaultInt64) - proto.RegisterExtension(E_NoDefaultUint32) - proto.RegisterExtension(E_NoDefaultUint64) - proto.RegisterExtension(E_NoDefaultSint32) - proto.RegisterExtension(E_NoDefaultSint64) - proto.RegisterExtension(E_NoDefaultFixed32) - proto.RegisterExtension(E_NoDefaultFixed64) - proto.RegisterExtension(E_NoDefaultSfixed32) - proto.RegisterExtension(E_NoDefaultSfixed64) - proto.RegisterExtension(E_NoDefaultBool) - proto.RegisterExtension(E_NoDefaultString) - proto.RegisterExtension(E_NoDefaultBytes) - proto.RegisterExtension(E_NoDefaultEnum) - proto.RegisterExtension(E_DefaultDouble) - proto.RegisterExtension(E_DefaultFloat) - proto.RegisterExtension(E_DefaultInt32) - proto.RegisterExtension(E_DefaultInt64) - proto.RegisterExtension(E_DefaultUint32) - proto.RegisterExtension(E_DefaultUint64) - proto.RegisterExtension(E_DefaultSint32) - proto.RegisterExtension(E_DefaultSint64) - proto.RegisterExtension(E_DefaultFixed32) - proto.RegisterExtension(E_DefaultFixed64) - proto.RegisterExtension(E_DefaultSfixed32) - proto.RegisterExtension(E_DefaultSfixed64) - proto.RegisterExtension(E_DefaultBool) - proto.RegisterExtension(E_DefaultString) - proto.RegisterExtension(E_DefaultBytes) - proto.RegisterExtension(E_DefaultEnum) - proto.RegisterExtension(E_X201) - proto.RegisterExtension(E_X202) - proto.RegisterExtension(E_X203) - proto.RegisterExtension(E_X204) - proto.RegisterExtension(E_X205) - proto.RegisterExtension(E_X206) - proto.RegisterExtension(E_X207) - proto.RegisterExtension(E_X208) - proto.RegisterExtension(E_X209) - proto.RegisterExtension(E_X210) - proto.RegisterExtension(E_X211) - proto.RegisterExtension(E_X212) - proto.RegisterExtension(E_X213) - proto.RegisterExtension(E_X214) - proto.RegisterExtension(E_X215) - proto.RegisterExtension(E_X216) - proto.RegisterExtension(E_X217) - proto.RegisterExtension(E_X218) - proto.RegisterExtension(E_X219) - proto.RegisterExtension(E_X220) - proto.RegisterExtension(E_X221) - proto.RegisterExtension(E_X222) - proto.RegisterExtension(E_X223) - proto.RegisterExtension(E_X224) - proto.RegisterExtension(E_X225) - proto.RegisterExtension(E_X226) - proto.RegisterExtension(E_X227) - proto.RegisterExtension(E_X228) - proto.RegisterExtension(E_X229) - proto.RegisterExtension(E_X230) - proto.RegisterExtension(E_X231) - proto.RegisterExtension(E_X232) - proto.RegisterExtension(E_X233) - proto.RegisterExtension(E_X234) - proto.RegisterExtension(E_X235) - proto.RegisterExtension(E_X236) - proto.RegisterExtension(E_X237) - proto.RegisterExtension(E_X238) - proto.RegisterExtension(E_X239) - proto.RegisterExtension(E_X240) - proto.RegisterExtension(E_X241) - proto.RegisterExtension(E_X242) - proto.RegisterExtension(E_X243) - proto.RegisterExtension(E_X244) - proto.RegisterExtension(E_X245) - proto.RegisterExtension(E_X246) - proto.RegisterExtension(E_X247) - proto.RegisterExtension(E_X248) - proto.RegisterExtension(E_X249) - proto.RegisterExtension(E_X250) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/test.pb.go.golden b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/test.pb.go.golden deleted file mode 100644 index 0387853d..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/test.pb.go.golden +++ /dev/null @@ -1,1737 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: test.proto -// DO NOT EDIT! - -package testdata - -import proto "github.com/gogo/protobuf/proto" -import json "encoding/json" -import math "math" - -import () - -// Reference proto, json, and math imports to suppress error if they are not otherwise used. -var _ = proto.Marshal -var _ = &json.SyntaxError{} -var _ = math.Inf - -type FOO int32 - -const ( - FOO_FOO1 FOO = 1 -) - -var FOO_name = map[int32]string{ - 1: "FOO1", -} -var FOO_value = map[string]int32{ - "FOO1": 1, -} - -func (x FOO) Enum() *FOO { - p := new(FOO) - *p = x - return p -} -func (x FOO) String() string { - return proto.EnumName(FOO_name, int32(x)) -} -func (x FOO) MarshalJSON() ([]byte, error) { - return json.Marshal(x.String()) -} -func (x *FOO) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(FOO_value, data, "FOO") - if err != nil { - return err - } - *x = FOO(value) - return nil -} - -type GoTest_KIND int32 - -const ( - GoTest_VOID GoTest_KIND = 0 - GoTest_BOOL GoTest_KIND = 1 - GoTest_BYTES GoTest_KIND = 2 - GoTest_FINGERPRINT GoTest_KIND = 3 - GoTest_FLOAT GoTest_KIND = 4 - GoTest_INT GoTest_KIND = 5 - GoTest_STRING GoTest_KIND = 6 - GoTest_TIME GoTest_KIND = 7 - GoTest_TUPLE GoTest_KIND = 8 - GoTest_ARRAY GoTest_KIND = 9 - GoTest_MAP GoTest_KIND = 10 - GoTest_TABLE GoTest_KIND = 11 - GoTest_FUNCTION GoTest_KIND = 12 -) - -var GoTest_KIND_name = map[int32]string{ - 0: "VOID", - 1: "BOOL", - 2: "BYTES", - 3: "FINGERPRINT", - 4: "FLOAT", - 5: "INT", - 6: "STRING", - 7: "TIME", - 8: "TUPLE", - 9: "ARRAY", - 10: "MAP", - 11: "TABLE", - 12: "FUNCTION", -} -var GoTest_KIND_value = map[string]int32{ - "VOID": 0, - "BOOL": 1, - "BYTES": 2, - "FINGERPRINT": 3, - "FLOAT": 4, - "INT": 5, - "STRING": 6, - "TIME": 7, - "TUPLE": 8, - "ARRAY": 9, - "MAP": 10, - "TABLE": 11, - "FUNCTION": 12, -} - -func (x GoTest_KIND) Enum() *GoTest_KIND { - p := new(GoTest_KIND) - *p = x - return p -} -func (x GoTest_KIND) String() string { - return proto.EnumName(GoTest_KIND_name, int32(x)) -} -func (x GoTest_KIND) MarshalJSON() ([]byte, error) { - return json.Marshal(x.String()) -} -func (x *GoTest_KIND) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(GoTest_KIND_value, data, "GoTest_KIND") - if err != nil { - return err - } - *x = GoTest_KIND(value) - return nil -} - -type MyMessage_Color int32 - -const ( - MyMessage_RED MyMessage_Color = 0 - MyMessage_GREEN MyMessage_Color = 1 - MyMessage_BLUE MyMessage_Color = 2 -) - -var MyMessage_Color_name = map[int32]string{ - 0: "RED", - 1: "GREEN", - 2: "BLUE", -} -var MyMessage_Color_value = map[string]int32{ - "RED": 0, - "GREEN": 1, - "BLUE": 2, -} - -func (x MyMessage_Color) Enum() *MyMessage_Color { - p := new(MyMessage_Color) - *p = x - return p -} -func (x MyMessage_Color) String() string { - return proto.EnumName(MyMessage_Color_name, int32(x)) -} -func (x MyMessage_Color) MarshalJSON() ([]byte, error) { - return json.Marshal(x.String()) -} -func (x *MyMessage_Color) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(MyMessage_Color_value, data, "MyMessage_Color") - if err != nil { - return err - } - *x = MyMessage_Color(value) - return nil -} - -type Defaults_Color int32 - -const ( - Defaults_RED Defaults_Color = 0 - Defaults_GREEN Defaults_Color = 1 - Defaults_BLUE Defaults_Color = 2 -) - -var Defaults_Color_name = map[int32]string{ - 0: "RED", - 1: "GREEN", - 2: "BLUE", -} -var Defaults_Color_value = map[string]int32{ - "RED": 0, - "GREEN": 1, - "BLUE": 2, -} - -func (x Defaults_Color) Enum() *Defaults_Color { - p := new(Defaults_Color) - *p = x - return p -} -func (x Defaults_Color) String() string { - return proto.EnumName(Defaults_Color_name, int32(x)) -} -func (x Defaults_Color) MarshalJSON() ([]byte, error) { - return json.Marshal(x.String()) -} -func (x *Defaults_Color) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Defaults_Color_value, data, "Defaults_Color") - if err != nil { - return err - } - *x = Defaults_Color(value) - return nil -} - -type RepeatedEnum_Color int32 - -const ( - RepeatedEnum_RED RepeatedEnum_Color = 1 -) - -var RepeatedEnum_Color_name = map[int32]string{ - 1: "RED", -} -var RepeatedEnum_Color_value = map[string]int32{ - "RED": 1, -} - -func (x RepeatedEnum_Color) Enum() *RepeatedEnum_Color { - p := new(RepeatedEnum_Color) - *p = x - return p -} -func (x RepeatedEnum_Color) String() string { - return proto.EnumName(RepeatedEnum_Color_name, int32(x)) -} -func (x RepeatedEnum_Color) MarshalJSON() ([]byte, error) { - return json.Marshal(x.String()) -} -func (x *RepeatedEnum_Color) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(RepeatedEnum_Color_value, data, "RepeatedEnum_Color") - if err != nil { - return err - } - *x = RepeatedEnum_Color(value) - return nil -} - -type GoEnum struct { - Foo *FOO `protobuf:"varint,1,req,name=foo,enum=testdata.FOO" json:"foo,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoEnum) Reset() { *m = GoEnum{} } -func (m *GoEnum) String() string { return proto.CompactTextString(m) } -func (*GoEnum) ProtoMessage() {} - -func (m *GoEnum) GetFoo() FOO { - if m != nil && m.Foo != nil { - return *m.Foo - } - return 0 -} - -type GoTestField struct { - Label *string `protobuf:"bytes,1,req" json:"Label,omitempty"` - Type *string `protobuf:"bytes,2,req" json:"Type,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoTestField) Reset() { *m = GoTestField{} } -func (m *GoTestField) String() string { return proto.CompactTextString(m) } -func (*GoTestField) ProtoMessage() {} - -func (m *GoTestField) GetLabel() string { - if m != nil && m.Label != nil { - return *m.Label - } - return "" -} - -func (m *GoTestField) GetType() string { - if m != nil && m.Type != nil { - return *m.Type - } - return "" -} - -type GoTest struct { - Kind *GoTest_KIND `protobuf:"varint,1,req,enum=testdata.GoTest_KIND" json:"Kind,omitempty"` - Table *string `protobuf:"bytes,2,opt" json:"Table,omitempty"` - Param *int32 `protobuf:"varint,3,opt" json:"Param,omitempty"` - RequiredField *GoTestField `protobuf:"bytes,4,req" json:"RequiredField,omitempty"` - RepeatedField []*GoTestField `protobuf:"bytes,5,rep" json:"RepeatedField,omitempty"` - OptionalField *GoTestField `protobuf:"bytes,6,opt" json:"OptionalField,omitempty"` - F_BoolRequired *bool `protobuf:"varint,10,req,name=F_Bool_required" json:"F_Bool_required,omitempty"` - F_Int32Required *int32 `protobuf:"varint,11,req,name=F_Int32_required" json:"F_Int32_required,omitempty"` - F_Int64Required *int64 `protobuf:"varint,12,req,name=F_Int64_required" json:"F_Int64_required,omitempty"` - F_Fixed32Required *uint32 `protobuf:"fixed32,13,req,name=F_Fixed32_required" json:"F_Fixed32_required,omitempty"` - F_Fixed64Required *uint64 `protobuf:"fixed64,14,req,name=F_Fixed64_required" json:"F_Fixed64_required,omitempty"` - F_Uint32Required *uint32 `protobuf:"varint,15,req,name=F_Uint32_required" json:"F_Uint32_required,omitempty"` - F_Uint64Required *uint64 `protobuf:"varint,16,req,name=F_Uint64_required" json:"F_Uint64_required,omitempty"` - F_FloatRequired *float32 `protobuf:"fixed32,17,req,name=F_Float_required" json:"F_Float_required,omitempty"` - F_DoubleRequired *float64 `protobuf:"fixed64,18,req,name=F_Double_required" json:"F_Double_required,omitempty"` - F_StringRequired *string `protobuf:"bytes,19,req,name=F_String_required" json:"F_String_required,omitempty"` - F_BytesRequired []byte `protobuf:"bytes,101,req,name=F_Bytes_required" json:"F_Bytes_required,omitempty"` - F_Sint32Required *int32 `protobuf:"zigzag32,102,req,name=F_Sint32_required" json:"F_Sint32_required,omitempty"` - F_Sint64Required *int64 `protobuf:"zigzag64,103,req,name=F_Sint64_required" json:"F_Sint64_required,omitempty"` - F_BoolRepeated []bool `protobuf:"varint,20,rep,name=F_Bool_repeated" json:"F_Bool_repeated,omitempty"` - F_Int32Repeated []int32 `protobuf:"varint,21,rep,name=F_Int32_repeated" json:"F_Int32_repeated,omitempty"` - F_Int64Repeated []int64 `protobuf:"varint,22,rep,name=F_Int64_repeated" json:"F_Int64_repeated,omitempty"` - F_Fixed32Repeated []uint32 `protobuf:"fixed32,23,rep,name=F_Fixed32_repeated" json:"F_Fixed32_repeated,omitempty"` - F_Fixed64Repeated []uint64 `protobuf:"fixed64,24,rep,name=F_Fixed64_repeated" json:"F_Fixed64_repeated,omitempty"` - F_Uint32Repeated []uint32 `protobuf:"varint,25,rep,name=F_Uint32_repeated" json:"F_Uint32_repeated,omitempty"` - F_Uint64Repeated []uint64 `protobuf:"varint,26,rep,name=F_Uint64_repeated" json:"F_Uint64_repeated,omitempty"` - F_FloatRepeated []float32 `protobuf:"fixed32,27,rep,name=F_Float_repeated" json:"F_Float_repeated,omitempty"` - F_DoubleRepeated []float64 `protobuf:"fixed64,28,rep,name=F_Double_repeated" json:"F_Double_repeated,omitempty"` - F_StringRepeated []string `protobuf:"bytes,29,rep,name=F_String_repeated" json:"F_String_repeated,omitempty"` - F_BytesRepeated [][]byte `protobuf:"bytes,201,rep,name=F_Bytes_repeated" json:"F_Bytes_repeated,omitempty"` - F_Sint32Repeated []int32 `protobuf:"zigzag32,202,rep,name=F_Sint32_repeated" json:"F_Sint32_repeated,omitempty"` - F_Sint64Repeated []int64 `protobuf:"zigzag64,203,rep,name=F_Sint64_repeated" json:"F_Sint64_repeated,omitempty"` - F_BoolOptional *bool `protobuf:"varint,30,opt,name=F_Bool_optional" json:"F_Bool_optional,omitempty"` - F_Int32Optional *int32 `protobuf:"varint,31,opt,name=F_Int32_optional" json:"F_Int32_optional,omitempty"` - F_Int64Optional *int64 `protobuf:"varint,32,opt,name=F_Int64_optional" json:"F_Int64_optional,omitempty"` - F_Fixed32Optional *uint32 `protobuf:"fixed32,33,opt,name=F_Fixed32_optional" json:"F_Fixed32_optional,omitempty"` - F_Fixed64Optional *uint64 `protobuf:"fixed64,34,opt,name=F_Fixed64_optional" json:"F_Fixed64_optional,omitempty"` - F_Uint32Optional *uint32 `protobuf:"varint,35,opt,name=F_Uint32_optional" json:"F_Uint32_optional,omitempty"` - F_Uint64Optional *uint64 `protobuf:"varint,36,opt,name=F_Uint64_optional" json:"F_Uint64_optional,omitempty"` - F_FloatOptional *float32 `protobuf:"fixed32,37,opt,name=F_Float_optional" json:"F_Float_optional,omitempty"` - F_DoubleOptional *float64 `protobuf:"fixed64,38,opt,name=F_Double_optional" json:"F_Double_optional,omitempty"` - F_StringOptional *string `protobuf:"bytes,39,opt,name=F_String_optional" json:"F_String_optional,omitempty"` - F_BytesOptional []byte `protobuf:"bytes,301,opt,name=F_Bytes_optional" json:"F_Bytes_optional,omitempty"` - F_Sint32Optional *int32 `protobuf:"zigzag32,302,opt,name=F_Sint32_optional" json:"F_Sint32_optional,omitempty"` - F_Sint64Optional *int64 `protobuf:"zigzag64,303,opt,name=F_Sint64_optional" json:"F_Sint64_optional,omitempty"` - F_BoolDefaulted *bool `protobuf:"varint,40,opt,name=F_Bool_defaulted,def=1" json:"F_Bool_defaulted,omitempty"` - F_Int32Defaulted *int32 `protobuf:"varint,41,opt,name=F_Int32_defaulted,def=32" json:"F_Int32_defaulted,omitempty"` - F_Int64Defaulted *int64 `protobuf:"varint,42,opt,name=F_Int64_defaulted,def=64" json:"F_Int64_defaulted,omitempty"` - F_Fixed32Defaulted *uint32 `protobuf:"fixed32,43,opt,name=F_Fixed32_defaulted,def=320" json:"F_Fixed32_defaulted,omitempty"` - F_Fixed64Defaulted *uint64 `protobuf:"fixed64,44,opt,name=F_Fixed64_defaulted,def=640" json:"F_Fixed64_defaulted,omitempty"` - F_Uint32Defaulted *uint32 `protobuf:"varint,45,opt,name=F_Uint32_defaulted,def=3200" json:"F_Uint32_defaulted,omitempty"` - F_Uint64Defaulted *uint64 `protobuf:"varint,46,opt,name=F_Uint64_defaulted,def=6400" json:"F_Uint64_defaulted,omitempty"` - F_FloatDefaulted *float32 `protobuf:"fixed32,47,opt,name=F_Float_defaulted,def=314159" json:"F_Float_defaulted,omitempty"` - F_DoubleDefaulted *float64 `protobuf:"fixed64,48,opt,name=F_Double_defaulted,def=271828" json:"F_Double_defaulted,omitempty"` - F_StringDefaulted *string `protobuf:"bytes,49,opt,name=F_String_defaulted,def=hello, \"world!\"\n" json:"F_String_defaulted,omitempty"` - F_BytesDefaulted []byte `protobuf:"bytes,401,opt,name=F_Bytes_defaulted,def=Bignose" json:"F_Bytes_defaulted,omitempty"` - F_Sint32Defaulted *int32 `protobuf:"zigzag32,402,opt,name=F_Sint32_defaulted,def=-32" json:"F_Sint32_defaulted,omitempty"` - F_Sint64Defaulted *int64 `protobuf:"zigzag64,403,opt,name=F_Sint64_defaulted,def=-64" json:"F_Sint64_defaulted,omitempty"` - F_BoolRepeatedPacked []bool `protobuf:"varint,50,rep,packed,name=F_Bool_repeated_packed" json:"F_Bool_repeated_packed,omitempty"` - F_Int32RepeatedPacked []int32 `protobuf:"varint,51,rep,packed,name=F_Int32_repeated_packed" json:"F_Int32_repeated_packed,omitempty"` - F_Int64RepeatedPacked []int64 `protobuf:"varint,52,rep,packed,name=F_Int64_repeated_packed" json:"F_Int64_repeated_packed,omitempty"` - F_Fixed32RepeatedPacked []uint32 `protobuf:"fixed32,53,rep,packed,name=F_Fixed32_repeated_packed" json:"F_Fixed32_repeated_packed,omitempty"` - F_Fixed64RepeatedPacked []uint64 `protobuf:"fixed64,54,rep,packed,name=F_Fixed64_repeated_packed" json:"F_Fixed64_repeated_packed,omitempty"` - F_Uint32RepeatedPacked []uint32 `protobuf:"varint,55,rep,packed,name=F_Uint32_repeated_packed" json:"F_Uint32_repeated_packed,omitempty"` - F_Uint64RepeatedPacked []uint64 `protobuf:"varint,56,rep,packed,name=F_Uint64_repeated_packed" json:"F_Uint64_repeated_packed,omitempty"` - F_FloatRepeatedPacked []float32 `protobuf:"fixed32,57,rep,packed,name=F_Float_repeated_packed" json:"F_Float_repeated_packed,omitempty"` - F_DoubleRepeatedPacked []float64 `protobuf:"fixed64,58,rep,packed,name=F_Double_repeated_packed" json:"F_Double_repeated_packed,omitempty"` - F_Sint32RepeatedPacked []int32 `protobuf:"zigzag32,502,rep,packed,name=F_Sint32_repeated_packed" json:"F_Sint32_repeated_packed,omitempty"` - F_Sint64RepeatedPacked []int64 `protobuf:"zigzag64,503,rep,packed,name=F_Sint64_repeated_packed" json:"F_Sint64_repeated_packed,omitempty"` - Requiredgroup *GoTest_RequiredGroup `protobuf:"group,70,req,name=RequiredGroup" json:"requiredgroup,omitempty"` - Repeatedgroup []*GoTest_RepeatedGroup `protobuf:"group,80,rep,name=RepeatedGroup" json:"repeatedgroup,omitempty"` - Optionalgroup *GoTest_OptionalGroup `protobuf:"group,90,opt,name=OptionalGroup" json:"optionalgroup,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoTest) Reset() { *m = GoTest{} } -func (m *GoTest) String() string { return proto.CompactTextString(m) } -func (*GoTest) ProtoMessage() {} - -const Default_GoTest_F_BoolDefaulted bool = true -const Default_GoTest_F_Int32Defaulted int32 = 32 -const Default_GoTest_F_Int64Defaulted int64 = 64 -const Default_GoTest_F_Fixed32Defaulted uint32 = 320 -const Default_GoTest_F_Fixed64Defaulted uint64 = 640 -const Default_GoTest_F_Uint32Defaulted uint32 = 3200 -const Default_GoTest_F_Uint64Defaulted uint64 = 6400 -const Default_GoTest_F_FloatDefaulted float32 = 314159 -const Default_GoTest_F_DoubleDefaulted float64 = 271828 -const Default_GoTest_F_StringDefaulted string = "hello, \"world!\"\n" - -var Default_GoTest_F_BytesDefaulted []byte = []byte("Bignose") - -const Default_GoTest_F_Sint32Defaulted int32 = -32 -const Default_GoTest_F_Sint64Defaulted int64 = -64 - -func (m *GoTest) GetKind() GoTest_KIND { - if m != nil && m.Kind != nil { - return *m.Kind - } - return 0 -} - -func (m *GoTest) GetTable() string { - if m != nil && m.Table != nil { - return *m.Table - } - return "" -} - -func (m *GoTest) GetParam() int32 { - if m != nil && m.Param != nil { - return *m.Param - } - return 0 -} - -func (m *GoTest) GetRequiredField() *GoTestField { - if m != nil { - return m.RequiredField - } - return nil -} - -func (m *GoTest) GetRepeatedField() []*GoTestField { - if m != nil { - return m.RepeatedField - } - return nil -} - -func (m *GoTest) GetOptionalField() *GoTestField { - if m != nil { - return m.OptionalField - } - return nil -} - -func (m *GoTest) GetF_BoolRequired() bool { - if m != nil && m.F_BoolRequired != nil { - return *m.F_BoolRequired - } - return false -} - -func (m *GoTest) GetF_Int32Required() int32 { - if m != nil && m.F_Int32Required != nil { - return *m.F_Int32Required - } - return 0 -} - -func (m *GoTest) GetF_Int64Required() int64 { - if m != nil && m.F_Int64Required != nil { - return *m.F_Int64Required - } - return 0 -} - -func (m *GoTest) GetF_Fixed32Required() uint32 { - if m != nil && m.F_Fixed32Required != nil { - return *m.F_Fixed32Required - } - return 0 -} - -func (m *GoTest) GetF_Fixed64Required() uint64 { - if m != nil && m.F_Fixed64Required != nil { - return *m.F_Fixed64Required - } - return 0 -} - -func (m *GoTest) GetF_Uint32Required() uint32 { - if m != nil && m.F_Uint32Required != nil { - return *m.F_Uint32Required - } - return 0 -} - -func (m *GoTest) GetF_Uint64Required() uint64 { - if m != nil && m.F_Uint64Required != nil { - return *m.F_Uint64Required - } - return 0 -} - -func (m *GoTest) GetF_FloatRequired() float32 { - if m != nil && m.F_FloatRequired != nil { - return *m.F_FloatRequired - } - return 0 -} - -func (m *GoTest) GetF_DoubleRequired() float64 { - if m != nil && m.F_DoubleRequired != nil { - return *m.F_DoubleRequired - } - return 0 -} - -func (m *GoTest) GetF_StringRequired() string { - if m != nil && m.F_StringRequired != nil { - return *m.F_StringRequired - } - return "" -} - -func (m *GoTest) GetF_BytesRequired() []byte { - if m != nil { - return m.F_BytesRequired - } - return nil -} - -func (m *GoTest) GetF_Sint32Required() int32 { - if m != nil && m.F_Sint32Required != nil { - return *m.F_Sint32Required - } - return 0 -} - -func (m *GoTest) GetF_Sint64Required() int64 { - if m != nil && m.F_Sint64Required != nil { - return *m.F_Sint64Required - } - return 0 -} - -func (m *GoTest) GetF_BoolRepeated() []bool { - if m != nil { - return m.F_BoolRepeated - } - return nil -} - -func (m *GoTest) GetF_Int32Repeated() []int32 { - if m != nil { - return m.F_Int32Repeated - } - return nil -} - -func (m *GoTest) GetF_Int64Repeated() []int64 { - if m != nil { - return m.F_Int64Repeated - } - return nil -} - -func (m *GoTest) GetF_Fixed32Repeated() []uint32 { - if m != nil { - return m.F_Fixed32Repeated - } - return nil -} - -func (m *GoTest) GetF_Fixed64Repeated() []uint64 { - if m != nil { - return m.F_Fixed64Repeated - } - return nil -} - -func (m *GoTest) GetF_Uint32Repeated() []uint32 { - if m != nil { - return m.F_Uint32Repeated - } - return nil -} - -func (m *GoTest) GetF_Uint64Repeated() []uint64 { - if m != nil { - return m.F_Uint64Repeated - } - return nil -} - -func (m *GoTest) GetF_FloatRepeated() []float32 { - if m != nil { - return m.F_FloatRepeated - } - return nil -} - -func (m *GoTest) GetF_DoubleRepeated() []float64 { - if m != nil { - return m.F_DoubleRepeated - } - return nil -} - -func (m *GoTest) GetF_StringRepeated() []string { - if m != nil { - return m.F_StringRepeated - } - return nil -} - -func (m *GoTest) GetF_BytesRepeated() [][]byte { - if m != nil { - return m.F_BytesRepeated - } - return nil -} - -func (m *GoTest) GetF_Sint32Repeated() []int32 { - if m != nil { - return m.F_Sint32Repeated - } - return nil -} - -func (m *GoTest) GetF_Sint64Repeated() []int64 { - if m != nil { - return m.F_Sint64Repeated - } - return nil -} - -func (m *GoTest) GetF_BoolOptional() bool { - if m != nil && m.F_BoolOptional != nil { - return *m.F_BoolOptional - } - return false -} - -func (m *GoTest) GetF_Int32Optional() int32 { - if m != nil && m.F_Int32Optional != nil { - return *m.F_Int32Optional - } - return 0 -} - -func (m *GoTest) GetF_Int64Optional() int64 { - if m != nil && m.F_Int64Optional != nil { - return *m.F_Int64Optional - } - return 0 -} - -func (m *GoTest) GetF_Fixed32Optional() uint32 { - if m != nil && m.F_Fixed32Optional != nil { - return *m.F_Fixed32Optional - } - return 0 -} - -func (m *GoTest) GetF_Fixed64Optional() uint64 { - if m != nil && m.F_Fixed64Optional != nil { - return *m.F_Fixed64Optional - } - return 0 -} - -func (m *GoTest) GetF_Uint32Optional() uint32 { - if m != nil && m.F_Uint32Optional != nil { - return *m.F_Uint32Optional - } - return 0 -} - -func (m *GoTest) GetF_Uint64Optional() uint64 { - if m != nil && m.F_Uint64Optional != nil { - return *m.F_Uint64Optional - } - return 0 -} - -func (m *GoTest) GetF_FloatOptional() float32 { - if m != nil && m.F_FloatOptional != nil { - return *m.F_FloatOptional - } - return 0 -} - -func (m *GoTest) GetF_DoubleOptional() float64 { - if m != nil && m.F_DoubleOptional != nil { - return *m.F_DoubleOptional - } - return 0 -} - -func (m *GoTest) GetF_StringOptional() string { - if m != nil && m.F_StringOptional != nil { - return *m.F_StringOptional - } - return "" -} - -func (m *GoTest) GetF_BytesOptional() []byte { - if m != nil { - return m.F_BytesOptional - } - return nil -} - -func (m *GoTest) GetF_Sint32Optional() int32 { - if m != nil && m.F_Sint32Optional != nil { - return *m.F_Sint32Optional - } - return 0 -} - -func (m *GoTest) GetF_Sint64Optional() int64 { - if m != nil && m.F_Sint64Optional != nil { - return *m.F_Sint64Optional - } - return 0 -} - -func (m *GoTest) GetF_BoolDefaulted() bool { - if m != nil && m.F_BoolDefaulted != nil { - return *m.F_BoolDefaulted - } - return Default_GoTest_F_BoolDefaulted -} - -func (m *GoTest) GetF_Int32Defaulted() int32 { - if m != nil && m.F_Int32Defaulted != nil { - return *m.F_Int32Defaulted - } - return Default_GoTest_F_Int32Defaulted -} - -func (m *GoTest) GetF_Int64Defaulted() int64 { - if m != nil && m.F_Int64Defaulted != nil { - return *m.F_Int64Defaulted - } - return Default_GoTest_F_Int64Defaulted -} - -func (m *GoTest) GetF_Fixed32Defaulted() uint32 { - if m != nil && m.F_Fixed32Defaulted != nil { - return *m.F_Fixed32Defaulted - } - return Default_GoTest_F_Fixed32Defaulted -} - -func (m *GoTest) GetF_Fixed64Defaulted() uint64 { - if m != nil && m.F_Fixed64Defaulted != nil { - return *m.F_Fixed64Defaulted - } - return Default_GoTest_F_Fixed64Defaulted -} - -func (m *GoTest) GetF_Uint32Defaulted() uint32 { - if m != nil && m.F_Uint32Defaulted != nil { - return *m.F_Uint32Defaulted - } - return Default_GoTest_F_Uint32Defaulted -} - -func (m *GoTest) GetF_Uint64Defaulted() uint64 { - if m != nil && m.F_Uint64Defaulted != nil { - return *m.F_Uint64Defaulted - } - return Default_GoTest_F_Uint64Defaulted -} - -func (m *GoTest) GetF_FloatDefaulted() float32 { - if m != nil && m.F_FloatDefaulted != nil { - return *m.F_FloatDefaulted - } - return Default_GoTest_F_FloatDefaulted -} - -func (m *GoTest) GetF_DoubleDefaulted() float64 { - if m != nil && m.F_DoubleDefaulted != nil { - return *m.F_DoubleDefaulted - } - return Default_GoTest_F_DoubleDefaulted -} - -func (m *GoTest) GetF_StringDefaulted() string { - if m != nil && m.F_StringDefaulted != nil { - return *m.F_StringDefaulted - } - return Default_GoTest_F_StringDefaulted -} - -func (m *GoTest) GetF_BytesDefaulted() []byte { - if m != nil && m.F_BytesDefaulted != nil { - return m.F_BytesDefaulted - } - return append([]byte(nil), Default_GoTest_F_BytesDefaulted...) -} - -func (m *GoTest) GetF_Sint32Defaulted() int32 { - if m != nil && m.F_Sint32Defaulted != nil { - return *m.F_Sint32Defaulted - } - return Default_GoTest_F_Sint32Defaulted -} - -func (m *GoTest) GetF_Sint64Defaulted() int64 { - if m != nil && m.F_Sint64Defaulted != nil { - return *m.F_Sint64Defaulted - } - return Default_GoTest_F_Sint64Defaulted -} - -func (m *GoTest) GetF_BoolRepeatedPacked() []bool { - if m != nil { - return m.F_BoolRepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Int32RepeatedPacked() []int32 { - if m != nil { - return m.F_Int32RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Int64RepeatedPacked() []int64 { - if m != nil { - return m.F_Int64RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Fixed32RepeatedPacked() []uint32 { - if m != nil { - return m.F_Fixed32RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Fixed64RepeatedPacked() []uint64 { - if m != nil { - return m.F_Fixed64RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Uint32RepeatedPacked() []uint32 { - if m != nil { - return m.F_Uint32RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Uint64RepeatedPacked() []uint64 { - if m != nil { - return m.F_Uint64RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_FloatRepeatedPacked() []float32 { - if m != nil { - return m.F_FloatRepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_DoubleRepeatedPacked() []float64 { - if m != nil { - return m.F_DoubleRepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Sint32RepeatedPacked() []int32 { - if m != nil { - return m.F_Sint32RepeatedPacked - } - return nil -} - -func (m *GoTest) GetF_Sint64RepeatedPacked() []int64 { - if m != nil { - return m.F_Sint64RepeatedPacked - } - return nil -} - -func (m *GoTest) GetRequiredgroup() *GoTest_RequiredGroup { - if m != nil { - return m.Requiredgroup - } - return nil -} - -func (m *GoTest) GetRepeatedgroup() []*GoTest_RepeatedGroup { - if m != nil { - return m.Repeatedgroup - } - return nil -} - -func (m *GoTest) GetOptionalgroup() *GoTest_OptionalGroup { - if m != nil { - return m.Optionalgroup - } - return nil -} - -type GoTest_RequiredGroup struct { - RequiredField *string `protobuf:"bytes,71,req" json:"RequiredField,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoTest_RequiredGroup) Reset() { *m = GoTest_RequiredGroup{} } - -func (m *GoTest_RequiredGroup) GetRequiredField() string { - if m != nil && m.RequiredField != nil { - return *m.RequiredField - } - return "" -} - -type GoTest_RepeatedGroup struct { - RequiredField *string `protobuf:"bytes,81,req" json:"RequiredField,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoTest_RepeatedGroup) Reset() { *m = GoTest_RepeatedGroup{} } - -func (m *GoTest_RepeatedGroup) GetRequiredField() string { - if m != nil && m.RequiredField != nil { - return *m.RequiredField - } - return "" -} - -type GoTest_OptionalGroup struct { - RequiredField *string `protobuf:"bytes,91,req" json:"RequiredField,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoTest_OptionalGroup) Reset() { *m = GoTest_OptionalGroup{} } - -func (m *GoTest_OptionalGroup) GetRequiredField() string { - if m != nil && m.RequiredField != nil { - return *m.RequiredField - } - return "" -} - -type GoSkipTest struct { - SkipInt32 *int32 `protobuf:"varint,11,req,name=skip_int32" json:"skip_int32,omitempty"` - SkipFixed32 *uint32 `protobuf:"fixed32,12,req,name=skip_fixed32" json:"skip_fixed32,omitempty"` - SkipFixed64 *uint64 `protobuf:"fixed64,13,req,name=skip_fixed64" json:"skip_fixed64,omitempty"` - SkipString *string `protobuf:"bytes,14,req,name=skip_string" json:"skip_string,omitempty"` - Skipgroup *GoSkipTest_SkipGroup `protobuf:"group,15,req,name=SkipGroup" json:"skipgroup,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoSkipTest) Reset() { *m = GoSkipTest{} } -func (m *GoSkipTest) String() string { return proto.CompactTextString(m) } -func (*GoSkipTest) ProtoMessage() {} - -func (m *GoSkipTest) GetSkipInt32() int32 { - if m != nil && m.SkipInt32 != nil { - return *m.SkipInt32 - } - return 0 -} - -func (m *GoSkipTest) GetSkipFixed32() uint32 { - if m != nil && m.SkipFixed32 != nil { - return *m.SkipFixed32 - } - return 0 -} - -func (m *GoSkipTest) GetSkipFixed64() uint64 { - if m != nil && m.SkipFixed64 != nil { - return *m.SkipFixed64 - } - return 0 -} - -func (m *GoSkipTest) GetSkipString() string { - if m != nil && m.SkipString != nil { - return *m.SkipString - } - return "" -} - -func (m *GoSkipTest) GetSkipgroup() *GoSkipTest_SkipGroup { - if m != nil { - return m.Skipgroup - } - return nil -} - -type GoSkipTest_SkipGroup struct { - GroupInt32 *int32 `protobuf:"varint,16,req,name=group_int32" json:"group_int32,omitempty"` - GroupString *string `protobuf:"bytes,17,req,name=group_string" json:"group_string,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GoSkipTest_SkipGroup) Reset() { *m = GoSkipTest_SkipGroup{} } - -func (m *GoSkipTest_SkipGroup) GetGroupInt32() int32 { - if m != nil && m.GroupInt32 != nil { - return *m.GroupInt32 - } - return 0 -} - -func (m *GoSkipTest_SkipGroup) GetGroupString() string { - if m != nil && m.GroupString != nil { - return *m.GroupString - } - return "" -} - -type NonPackedTest struct { - A []int32 `protobuf:"varint,1,rep,name=a" json:"a,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NonPackedTest) Reset() { *m = NonPackedTest{} } -func (m *NonPackedTest) String() string { return proto.CompactTextString(m) } -func (*NonPackedTest) ProtoMessage() {} - -func (m *NonPackedTest) GetA() []int32 { - if m != nil { - return m.A - } - return nil -} - -type PackedTest struct { - B []int32 `protobuf:"varint,1,rep,packed,name=b" json:"b,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *PackedTest) Reset() { *m = PackedTest{} } -func (m *PackedTest) String() string { return proto.CompactTextString(m) } -func (*PackedTest) ProtoMessage() {} - -func (m *PackedTest) GetB() []int32 { - if m != nil { - return m.B - } - return nil -} - -type MaxTag struct { - LastField *string `protobuf:"bytes,536870911,opt,name=last_field" json:"last_field,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MaxTag) Reset() { *m = MaxTag{} } -func (m *MaxTag) String() string { return proto.CompactTextString(m) } -func (*MaxTag) ProtoMessage() {} - -func (m *MaxTag) GetLastField() string { - if m != nil && m.LastField != nil { - return *m.LastField - } - return "" -} - -type OldMessage struct { - Nested *OldMessage_Nested `protobuf:"bytes,1,opt,name=nested" json:"nested,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OldMessage) Reset() { *m = OldMessage{} } -func (m *OldMessage) String() string { return proto.CompactTextString(m) } -func (*OldMessage) ProtoMessage() {} - -func (m *OldMessage) GetNested() *OldMessage_Nested { - if m != nil { - return m.Nested - } - return nil -} - -type OldMessage_Nested struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OldMessage_Nested) Reset() { *m = OldMessage_Nested{} } -func (m *OldMessage_Nested) String() string { return proto.CompactTextString(m) } -func (*OldMessage_Nested) ProtoMessage() {} - -func (m *OldMessage_Nested) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -type NewMessage struct { - Nested *NewMessage_Nested `protobuf:"bytes,1,opt,name=nested" json:"nested,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NewMessage) Reset() { *m = NewMessage{} } -func (m *NewMessage) String() string { return proto.CompactTextString(m) } -func (*NewMessage) ProtoMessage() {} - -func (m *NewMessage) GetNested() *NewMessage_Nested { - if m != nil { - return m.Nested - } - return nil -} - -type NewMessage_Nested struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - FoodGroup *string `protobuf:"bytes,2,opt,name=food_group" json:"food_group,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NewMessage_Nested) Reset() { *m = NewMessage_Nested{} } -func (m *NewMessage_Nested) String() string { return proto.CompactTextString(m) } -func (*NewMessage_Nested) ProtoMessage() {} - -func (m *NewMessage_Nested) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *NewMessage_Nested) GetFoodGroup() string { - if m != nil && m.FoodGroup != nil { - return *m.FoodGroup - } - return "" -} - -type InnerMessage struct { - Host *string `protobuf:"bytes,1,req,name=host" json:"host,omitempty"` - Port *int32 `protobuf:"varint,2,opt,name=port,def=4000" json:"port,omitempty"` - Connected *bool `protobuf:"varint,3,opt,name=connected" json:"connected,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *InnerMessage) Reset() { *m = InnerMessage{} } -func (m *InnerMessage) String() string { return proto.CompactTextString(m) } -func (*InnerMessage) ProtoMessage() {} - -const Default_InnerMessage_Port int32 = 4000 - -func (m *InnerMessage) GetHost() string { - if m != nil && m.Host != nil { - return *m.Host - } - return "" -} - -func (m *InnerMessage) GetPort() int32 { - if m != nil && m.Port != nil { - return *m.Port - } - return Default_InnerMessage_Port -} - -func (m *InnerMessage) GetConnected() bool { - if m != nil && m.Connected != nil { - return *m.Connected - } - return false -} - -type OtherMessage struct { - Key *int64 `protobuf:"varint,1,opt,name=key" json:"key,omitempty"` - Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` - Weight *float32 `protobuf:"fixed32,3,opt,name=weight" json:"weight,omitempty"` - Inner *InnerMessage `protobuf:"bytes,4,opt,name=inner" json:"inner,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OtherMessage) Reset() { *m = OtherMessage{} } -func (m *OtherMessage) String() string { return proto.CompactTextString(m) } -func (*OtherMessage) ProtoMessage() {} - -func (m *OtherMessage) GetKey() int64 { - if m != nil && m.Key != nil { - return *m.Key - } - return 0 -} - -func (m *OtherMessage) GetValue() []byte { - if m != nil { - return m.Value - } - return nil -} - -func (m *OtherMessage) GetWeight() float32 { - if m != nil && m.Weight != nil { - return *m.Weight - } - return 0 -} - -func (m *OtherMessage) GetInner() *InnerMessage { - if m != nil { - return m.Inner - } - return nil -} - -type MyMessage struct { - Count *int32 `protobuf:"varint,1,req,name=count" json:"count,omitempty"` - Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Quote *string `protobuf:"bytes,3,opt,name=quote" json:"quote,omitempty"` - Pet []string `protobuf:"bytes,4,rep,name=pet" json:"pet,omitempty"` - Inner *InnerMessage `protobuf:"bytes,5,opt,name=inner" json:"inner,omitempty"` - Others []*OtherMessage `protobuf:"bytes,6,rep,name=others" json:"others,omitempty"` - Bikeshed *MyMessage_Color `protobuf:"varint,7,opt,name=bikeshed,enum=testdata.MyMessage_Color" json:"bikeshed,omitempty"` - Somegroup *MyMessage_SomeGroup `protobuf:"group,8,opt,name=SomeGroup" json:"somegroup,omitempty"` - RepBytes [][]byte `protobuf:"bytes,10,rep,name=rep_bytes" json:"rep_bytes,omitempty"` - Bigfloat *float64 `protobuf:"fixed64,11,opt,name=bigfloat" json:"bigfloat,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MyMessage) Reset() { *m = MyMessage{} } -func (m *MyMessage) String() string { return proto.CompactTextString(m) } -func (*MyMessage) ProtoMessage() {} - -var extRange_MyMessage = []proto.ExtensionRange{ - {100, 536870911}, -} - -func (*MyMessage) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_MyMessage -} -func (m *MyMessage) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -func (m *MyMessage) GetCount() int32 { - if m != nil && m.Count != nil { - return *m.Count - } - return 0 -} - -func (m *MyMessage) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *MyMessage) GetQuote() string { - if m != nil && m.Quote != nil { - return *m.Quote - } - return "" -} - -func (m *MyMessage) GetPet() []string { - if m != nil { - return m.Pet - } - return nil -} - -func (m *MyMessage) GetInner() *InnerMessage { - if m != nil { - return m.Inner - } - return nil -} - -func (m *MyMessage) GetOthers() []*OtherMessage { - if m != nil { - return m.Others - } - return nil -} - -func (m *MyMessage) GetBikeshed() MyMessage_Color { - if m != nil && m.Bikeshed != nil { - return *m.Bikeshed - } - return 0 -} - -func (m *MyMessage) GetSomegroup() *MyMessage_SomeGroup { - if m != nil { - return m.Somegroup - } - return nil -} - -func (m *MyMessage) GetRepBytes() [][]byte { - if m != nil { - return m.RepBytes - } - return nil -} - -func (m *MyMessage) GetBigfloat() float64 { - if m != nil && m.Bigfloat != nil { - return *m.Bigfloat - } - return 0 -} - -type MyMessage_SomeGroup struct { - GroupField *int32 `protobuf:"varint,9,opt,name=group_field" json:"group_field,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MyMessage_SomeGroup) Reset() { *m = MyMessage_SomeGroup{} } - -func (m *MyMessage_SomeGroup) GetGroupField() int32 { - if m != nil && m.GroupField != nil { - return *m.GroupField - } - return 0 -} - -type Ext struct { - Data *string `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Ext) Reset() { *m = Ext{} } -func (m *Ext) String() string { return proto.CompactTextString(m) } -func (*Ext) ProtoMessage() {} - -func (m *Ext) GetData() string { - if m != nil && m.Data != nil { - return *m.Data - } - return "" -} - -var E_Ext_More = &proto.ExtensionDesc{ - ExtendedType: (*MyMessage)(nil), - ExtensionType: (*Ext)(nil), - Field: 103, - Name: "testdata.Ext.more", - Tag: "bytes,103,opt,name=more", -} - -var E_Ext_Text = &proto.ExtensionDesc{ - ExtendedType: (*MyMessage)(nil), - ExtensionType: (*string)(nil), - Field: 104, - Name: "testdata.Ext.text", - Tag: "bytes,104,opt,name=text", -} - -var E_Ext_Number = &proto.ExtensionDesc{ - ExtendedType: (*MyMessage)(nil), - ExtensionType: (*int32)(nil), - Field: 105, - Name: "testdata.Ext.number", - Tag: "varint,105,opt,name=number", -} - -type MessageList struct { - Message []*MessageList_Message `protobuf:"group,1,rep" json:"message,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MessageList) Reset() { *m = MessageList{} } -func (m *MessageList) String() string { return proto.CompactTextString(m) } -func (*MessageList) ProtoMessage() {} - -func (m *MessageList) GetMessage() []*MessageList_Message { - if m != nil { - return m.Message - } - return nil -} - -type MessageList_Message struct { - Name *string `protobuf:"bytes,2,req,name=name" json:"name,omitempty"` - Count *int32 `protobuf:"varint,3,req,name=count" json:"count,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MessageList_Message) Reset() { *m = MessageList_Message{} } - -func (m *MessageList_Message) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *MessageList_Message) GetCount() int32 { - if m != nil && m.Count != nil { - return *m.Count - } - return 0 -} - -type Strings struct { - StringField *string `protobuf:"bytes,1,opt,name=string_field" json:"string_field,omitempty"` - BytesField []byte `protobuf:"bytes,2,opt,name=bytes_field" json:"bytes_field,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Strings) Reset() { *m = Strings{} } -func (m *Strings) String() string { return proto.CompactTextString(m) } -func (*Strings) ProtoMessage() {} - -func (m *Strings) GetStringField() string { - if m != nil && m.StringField != nil { - return *m.StringField - } - return "" -} - -func (m *Strings) GetBytesField() []byte { - if m != nil { - return m.BytesField - } - return nil -} - -type Defaults struct { - F_Bool *bool `protobuf:"varint,1,opt,def=1" json:"F_Bool,omitempty"` - F_Int32 *int32 `protobuf:"varint,2,opt,def=32" json:"F_Int32,omitempty"` - F_Int64 *int64 `protobuf:"varint,3,opt,def=64" json:"F_Int64,omitempty"` - F_Fixed32 *uint32 `protobuf:"fixed32,4,opt,def=320" json:"F_Fixed32,omitempty"` - F_Fixed64 *uint64 `protobuf:"fixed64,5,opt,def=640" json:"F_Fixed64,omitempty"` - F_Uint32 *uint32 `protobuf:"varint,6,opt,def=3200" json:"F_Uint32,omitempty"` - F_Uint64 *uint64 `protobuf:"varint,7,opt,def=6400" json:"F_Uint64,omitempty"` - F_Float *float32 `protobuf:"fixed32,8,opt,def=314159" json:"F_Float,omitempty"` - F_Double *float64 `protobuf:"fixed64,9,opt,def=271828" json:"F_Double,omitempty"` - F_String *string `protobuf:"bytes,10,opt,def=hello, \"world!\"\n" json:"F_String,omitempty"` - F_Bytes []byte `protobuf:"bytes,11,opt,def=Bignose" json:"F_Bytes,omitempty"` - F_Sint32 *int32 `protobuf:"zigzag32,12,opt,def=-32" json:"F_Sint32,omitempty"` - F_Sint64 *int64 `protobuf:"zigzag64,13,opt,def=-64" json:"F_Sint64,omitempty"` - F_Enum *Defaults_Color `protobuf:"varint,14,opt,enum=testdata.Defaults_Color,def=1" json:"F_Enum,omitempty"` - F_Pinf *float32 `protobuf:"fixed32,15,opt,def=inf" json:"F_Pinf,omitempty"` - F_Ninf *float32 `protobuf:"fixed32,16,opt,def=-inf" json:"F_Ninf,omitempty"` - F_Nan *float32 `protobuf:"fixed32,17,opt,def=nan" json:"F_Nan,omitempty"` - Sub *SubDefaults `protobuf:"bytes,18,opt,name=sub" json:"sub,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Defaults) Reset() { *m = Defaults{} } -func (m *Defaults) String() string { return proto.CompactTextString(m) } -func (*Defaults) ProtoMessage() {} - -const Default_Defaults_F_Bool bool = true -const Default_Defaults_F_Int32 int32 = 32 -const Default_Defaults_F_Int64 int64 = 64 -const Default_Defaults_F_Fixed32 uint32 = 320 -const Default_Defaults_F_Fixed64 uint64 = 640 -const Default_Defaults_F_Uint32 uint32 = 3200 -const Default_Defaults_F_Uint64 uint64 = 6400 -const Default_Defaults_F_Float float32 = 314159 -const Default_Defaults_F_Double float64 = 271828 -const Default_Defaults_F_String string = "hello, \"world!\"\n" - -var Default_Defaults_F_Bytes []byte = []byte("Bignose") - -const Default_Defaults_F_Sint32 int32 = -32 -const Default_Defaults_F_Sint64 int64 = -64 -const Default_Defaults_F_Enum Defaults_Color = Defaults_GREEN - -var Default_Defaults_F_Pinf float32 = float32(math.Inf(1)) -var Default_Defaults_F_Ninf float32 = float32(math.Inf(-1)) -var Default_Defaults_F_Nan float32 = float32(math.NaN()) - -func (m *Defaults) GetF_Bool() bool { - if m != nil && m.F_Bool != nil { - return *m.F_Bool - } - return Default_Defaults_F_Bool -} - -func (m *Defaults) GetF_Int32() int32 { - if m != nil && m.F_Int32 != nil { - return *m.F_Int32 - } - return Default_Defaults_F_Int32 -} - -func (m *Defaults) GetF_Int64() int64 { - if m != nil && m.F_Int64 != nil { - return *m.F_Int64 - } - return Default_Defaults_F_Int64 -} - -func (m *Defaults) GetF_Fixed32() uint32 { - if m != nil && m.F_Fixed32 != nil { - return *m.F_Fixed32 - } - return Default_Defaults_F_Fixed32 -} - -func (m *Defaults) GetF_Fixed64() uint64 { - if m != nil && m.F_Fixed64 != nil { - return *m.F_Fixed64 - } - return Default_Defaults_F_Fixed64 -} - -func (m *Defaults) GetF_Uint32() uint32 { - if m != nil && m.F_Uint32 != nil { - return *m.F_Uint32 - } - return Default_Defaults_F_Uint32 -} - -func (m *Defaults) GetF_Uint64() uint64 { - if m != nil && m.F_Uint64 != nil { - return *m.F_Uint64 - } - return Default_Defaults_F_Uint64 -} - -func (m *Defaults) GetF_Float() float32 { - if m != nil && m.F_Float != nil { - return *m.F_Float - } - return Default_Defaults_F_Float -} - -func (m *Defaults) GetF_Double() float64 { - if m != nil && m.F_Double != nil { - return *m.F_Double - } - return Default_Defaults_F_Double -} - -func (m *Defaults) GetF_String() string { - if m != nil && m.F_String != nil { - return *m.F_String - } - return Default_Defaults_F_String -} - -func (m *Defaults) GetF_Bytes() []byte { - if m != nil && m.F_Bytes != nil { - return m.F_Bytes - } - return append([]byte(nil), Default_Defaults_F_Bytes...) -} - -func (m *Defaults) GetF_Sint32() int32 { - if m != nil && m.F_Sint32 != nil { - return *m.F_Sint32 - } - return Default_Defaults_F_Sint32 -} - -func (m *Defaults) GetF_Sint64() int64 { - if m != nil && m.F_Sint64 != nil { - return *m.F_Sint64 - } - return Default_Defaults_F_Sint64 -} - -func (m *Defaults) GetF_Enum() Defaults_Color { - if m != nil && m.F_Enum != nil { - return *m.F_Enum - } - return Default_Defaults_F_Enum -} - -func (m *Defaults) GetF_Pinf() float32 { - if m != nil && m.F_Pinf != nil { - return *m.F_Pinf - } - return Default_Defaults_F_Pinf -} - -func (m *Defaults) GetF_Ninf() float32 { - if m != nil && m.F_Ninf != nil { - return *m.F_Ninf - } - return Default_Defaults_F_Ninf -} - -func (m *Defaults) GetF_Nan() float32 { - if m != nil && m.F_Nan != nil { - return *m.F_Nan - } - return Default_Defaults_F_Nan -} - -func (m *Defaults) GetSub() *SubDefaults { - if m != nil { - return m.Sub - } - return nil -} - -type SubDefaults struct { - N *int64 `protobuf:"varint,1,opt,name=n,def=7" json:"n,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *SubDefaults) Reset() { *m = SubDefaults{} } -func (m *SubDefaults) String() string { return proto.CompactTextString(m) } -func (*SubDefaults) ProtoMessage() {} - -const Default_SubDefaults_N int64 = 7 - -func (m *SubDefaults) GetN() int64 { - if m != nil && m.N != nil { - return *m.N - } - return Default_SubDefaults_N -} - -type RepeatedEnum struct { - Color []RepeatedEnum_Color `protobuf:"varint,1,rep,name=color,enum=testdata.RepeatedEnum_Color" json:"color,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *RepeatedEnum) Reset() { *m = RepeatedEnum{} } -func (m *RepeatedEnum) String() string { return proto.CompactTextString(m) } -func (*RepeatedEnum) ProtoMessage() {} - -func (m *RepeatedEnum) GetColor() []RepeatedEnum_Color { - if m != nil { - return m.Color - } - return nil -} - -type MoreRepeated struct { - Bools []bool `protobuf:"varint,1,rep,name=bools" json:"bools,omitempty"` - BoolsPacked []bool `protobuf:"varint,2,rep,packed,name=bools_packed" json:"bools_packed,omitempty"` - Ints []int32 `protobuf:"varint,3,rep,name=ints" json:"ints,omitempty"` - IntsPacked []int32 `protobuf:"varint,4,rep,packed,name=ints_packed" json:"ints_packed,omitempty"` - Strings []string `protobuf:"bytes,5,rep,name=strings" json:"strings,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MoreRepeated) Reset() { *m = MoreRepeated{} } -func (m *MoreRepeated) String() string { return proto.CompactTextString(m) } -func (*MoreRepeated) ProtoMessage() {} - -func (m *MoreRepeated) GetBools() []bool { - if m != nil { - return m.Bools - } - return nil -} - -func (m *MoreRepeated) GetBoolsPacked() []bool { - if m != nil { - return m.BoolsPacked - } - return nil -} - -func (m *MoreRepeated) GetInts() []int32 { - if m != nil { - return m.Ints - } - return nil -} - -func (m *MoreRepeated) GetIntsPacked() []int32 { - if m != nil { - return m.IntsPacked - } - return nil -} - -func (m *MoreRepeated) GetStrings() []string { - if m != nil { - return m.Strings - } - return nil -} - -type GroupOld struct { - G *GroupOld_G `protobuf:"group,1,opt" json:"g,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GroupOld) Reset() { *m = GroupOld{} } -func (m *GroupOld) String() string { return proto.CompactTextString(m) } -func (*GroupOld) ProtoMessage() {} - -func (m *GroupOld) GetG() *GroupOld_G { - if m != nil { - return m.G - } - return nil -} - -type GroupOld_G struct { - X *int32 `protobuf:"varint,2,opt,name=x" json:"x,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GroupOld_G) Reset() { *m = GroupOld_G{} } - -func (m *GroupOld_G) GetX() int32 { - if m != nil && m.X != nil { - return *m.X - } - return 0 -} - -type GroupNew struct { - G *GroupNew_G `protobuf:"group,1,opt" json:"g,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GroupNew) Reset() { *m = GroupNew{} } -func (m *GroupNew) String() string { return proto.CompactTextString(m) } -func (*GroupNew) ProtoMessage() {} - -func (m *GroupNew) GetG() *GroupNew_G { - if m != nil { - return m.G - } - return nil -} - -type GroupNew_G struct { - X *int32 `protobuf:"varint,2,opt,name=x" json:"x,omitempty"` - Y *int32 `protobuf:"varint,3,opt,name=y" json:"y,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *GroupNew_G) Reset() { *m = GroupNew_G{} } - -func (m *GroupNew_G) GetX() int32 { - if m != nil && m.X != nil { - return *m.X - } - return 0 -} - -func (m *GroupNew_G) GetY() int32 { - if m != nil && m.Y != nil { - return *m.Y - } - return 0 -} - -var E_Greeting = &proto.ExtensionDesc{ - ExtendedType: (*MyMessage)(nil), - ExtensionType: ([]string)(nil), - Field: 106, - Name: "testdata.greeting", - Tag: "bytes,106,rep,name=greeting", -} - -func init() { - proto.RegisterEnum("testdata.FOO", FOO_name, FOO_value) - proto.RegisterEnum("testdata.GoTest_KIND", GoTest_KIND_name, GoTest_KIND_value) - proto.RegisterEnum("testdata.MyMessage_Color", MyMessage_Color_name, MyMessage_Color_value) - proto.RegisterEnum("testdata.Defaults_Color", Defaults_Color_name, Defaults_Color_value) - proto.RegisterEnum("testdata.RepeatedEnum_Color", RepeatedEnum_Color_name, RepeatedEnum_Color_value) - proto.RegisterExtension(E_Ext_More) - proto.RegisterExtension(E_Ext_Text) - proto.RegisterExtension(E_Ext_Number) - proto.RegisterExtension(E_Greeting) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/test.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/test.proto deleted file mode 100644 index 3d1cbb67..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata/test.proto +++ /dev/null @@ -1,494 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -// A feature-rich test file for the protocol compiler and libraries. - -syntax = "proto2"; - -package testdata; - -enum FOO { FOO1 = 1; }; - -message GoEnum { - required FOO foo = 1; -} - -message GoTestField { - required string Label = 1; - required string Type = 2; -} - -message GoTest { - // An enum, for completeness. - enum KIND { - VOID = 0; - - // Basic types - BOOL = 1; - BYTES = 2; - FINGERPRINT = 3; - FLOAT = 4; - INT = 5; - STRING = 6; - TIME = 7; - - // Groupings - TUPLE = 8; - ARRAY = 9; - MAP = 10; - - // Table types - TABLE = 11; - - // Functions - FUNCTION = 12; // last tag - }; - - // Some typical parameters - required KIND Kind = 1; - optional string Table = 2; - optional int32 Param = 3; - - // Required, repeated and optional foreign fields. - required GoTestField RequiredField = 4; - repeated GoTestField RepeatedField = 5; - optional GoTestField OptionalField = 6; - - // Required fields of all basic types - required bool F_Bool_required = 10; - required int32 F_Int32_required = 11; - required int64 F_Int64_required = 12; - required fixed32 F_Fixed32_required = 13; - required fixed64 F_Fixed64_required = 14; - required uint32 F_Uint32_required = 15; - required uint64 F_Uint64_required = 16; - required float F_Float_required = 17; - required double F_Double_required = 18; - required string F_String_required = 19; - required bytes F_Bytes_required = 101; - required sint32 F_Sint32_required = 102; - required sint64 F_Sint64_required = 103; - - // Repeated fields of all basic types - repeated bool F_Bool_repeated = 20; - repeated int32 F_Int32_repeated = 21; - repeated int64 F_Int64_repeated = 22; - repeated fixed32 F_Fixed32_repeated = 23; - repeated fixed64 F_Fixed64_repeated = 24; - repeated uint32 F_Uint32_repeated = 25; - repeated uint64 F_Uint64_repeated = 26; - repeated float F_Float_repeated = 27; - repeated double F_Double_repeated = 28; - repeated string F_String_repeated = 29; - repeated bytes F_Bytes_repeated = 201; - repeated sint32 F_Sint32_repeated = 202; - repeated sint64 F_Sint64_repeated = 203; - - // Optional fields of all basic types - optional bool F_Bool_optional = 30; - optional int32 F_Int32_optional = 31; - optional int64 F_Int64_optional = 32; - optional fixed32 F_Fixed32_optional = 33; - optional fixed64 F_Fixed64_optional = 34; - optional uint32 F_Uint32_optional = 35; - optional uint64 F_Uint64_optional = 36; - optional float F_Float_optional = 37; - optional double F_Double_optional = 38; - optional string F_String_optional = 39; - optional bytes F_Bytes_optional = 301; - optional sint32 F_Sint32_optional = 302; - optional sint64 F_Sint64_optional = 303; - - // Default-valued fields of all basic types - optional bool F_Bool_defaulted = 40 [default=true]; - optional int32 F_Int32_defaulted = 41 [default=32]; - optional int64 F_Int64_defaulted = 42 [default=64]; - optional fixed32 F_Fixed32_defaulted = 43 [default=320]; - optional fixed64 F_Fixed64_defaulted = 44 [default=640]; - optional uint32 F_Uint32_defaulted = 45 [default=3200]; - optional uint64 F_Uint64_defaulted = 46 [default=6400]; - optional float F_Float_defaulted = 47 [default=314159.]; - optional double F_Double_defaulted = 48 [default=271828.]; - optional string F_String_defaulted = 49 [default="hello, \"world!\"\n"]; - optional bytes F_Bytes_defaulted = 401 [default="Bignose"]; - optional sint32 F_Sint32_defaulted = 402 [default = -32]; - optional sint64 F_Sint64_defaulted = 403 [default = -64]; - - // Packed repeated fields (no string or bytes). - repeated bool F_Bool_repeated_packed = 50 [packed=true]; - repeated int32 F_Int32_repeated_packed = 51 [packed=true]; - repeated int64 F_Int64_repeated_packed = 52 [packed=true]; - repeated fixed32 F_Fixed32_repeated_packed = 53 [packed=true]; - repeated fixed64 F_Fixed64_repeated_packed = 54 [packed=true]; - repeated uint32 F_Uint32_repeated_packed = 55 [packed=true]; - repeated uint64 F_Uint64_repeated_packed = 56 [packed=true]; - repeated float F_Float_repeated_packed = 57 [packed=true]; - repeated double F_Double_repeated_packed = 58 [packed=true]; - repeated sint32 F_Sint32_repeated_packed = 502 [packed=true]; - repeated sint64 F_Sint64_repeated_packed = 503 [packed=true]; - - // Required, repeated, and optional groups. - required group RequiredGroup = 70 { - required string RequiredField = 71; - }; - - repeated group RepeatedGroup = 80 { - required string RequiredField = 81; - }; - - optional group OptionalGroup = 90 { - required string RequiredField = 91; - }; -} - -// For testing skipping of unrecognized fields. -// Numbers are all big, larger than tag numbers in GoTestField, -// the message used in the corresponding test. -message GoSkipTest { - required int32 skip_int32 = 11; - required fixed32 skip_fixed32 = 12; - required fixed64 skip_fixed64 = 13; - required string skip_string = 14; - required group SkipGroup = 15 { - required int32 group_int32 = 16; - required string group_string = 17; - } -} - -// For testing packed/non-packed decoder switching. -// A serialized instance of one should be deserializable as the other. -message NonPackedTest { - repeated int32 a = 1; -} - -message PackedTest { - repeated int32 b = 1 [packed=true]; -} - -message MaxTag { - // Maximum possible tag number. - optional string last_field = 536870911; -} - -message OldMessage { - message Nested { - optional string name = 1; - } - optional Nested nested = 1; - - optional int32 num = 2; -} - -// NewMessage is wire compatible with OldMessage; -// imagine it as a future version. -message NewMessage { - message Nested { - optional string name = 1; - optional string food_group = 2; - } - optional Nested nested = 1; - - // This is an int32 in OldMessage. - optional int64 num = 2; -} - -// Smaller tests for ASCII formatting. - -message InnerMessage { - required string host = 1; - optional int32 port = 2 [default=4000]; - optional bool connected = 3; -} - -message OtherMessage { - optional int64 key = 1; - optional bytes value = 2; - optional float weight = 3; - optional InnerMessage inner = 4; -} - -message MyMessage { - required int32 count = 1; - optional string name = 2; - optional string quote = 3; - repeated string pet = 4; - optional InnerMessage inner = 5; - repeated OtherMessage others = 6; - repeated InnerMessage rep_inner = 12; - - enum Color { - RED = 0; - GREEN = 1; - BLUE = 2; - }; - optional Color bikeshed = 7; - - optional group SomeGroup = 8 { - optional int32 group_field = 9; - } - - // This field becomes [][]byte in the generated code. - repeated bytes rep_bytes = 10; - - optional double bigfloat = 11; - - extensions 100 to max; -} - -message Ext { - extend MyMessage { - optional Ext more = 103; - optional string text = 104; - optional int32 number = 105; - } - - optional string data = 1; -} - -extend MyMessage { - repeated string greeting = 106; -} - -message DefaultsMessage { - enum DefaultsEnum { - ZERO = 0; - ONE = 1; - TWO = 2; - }; - extensions 100 to max; -} - -extend DefaultsMessage { - optional double no_default_double = 101; - optional float no_default_float = 102; - optional int32 no_default_int32 = 103; - optional int64 no_default_int64 = 104; - optional uint32 no_default_uint32 = 105; - optional uint64 no_default_uint64 = 106; - optional sint32 no_default_sint32 = 107; - optional sint64 no_default_sint64 = 108; - optional fixed32 no_default_fixed32 = 109; - optional fixed64 no_default_fixed64 = 110; - optional sfixed32 no_default_sfixed32 = 111; - optional sfixed64 no_default_sfixed64 = 112; - optional bool no_default_bool = 113; - optional string no_default_string = 114; - optional bytes no_default_bytes = 115; - optional DefaultsMessage.DefaultsEnum no_default_enum = 116; - - optional double default_double = 201 [default = 3.1415]; - optional float default_float = 202 [default = 3.14]; - optional int32 default_int32 = 203 [default = 42]; - optional int64 default_int64 = 204 [default = 43]; - optional uint32 default_uint32 = 205 [default = 44]; - optional uint64 default_uint64 = 206 [default = 45]; - optional sint32 default_sint32 = 207 [default = 46]; - optional sint64 default_sint64 = 208 [default = 47]; - optional fixed32 default_fixed32 = 209 [default = 48]; - optional fixed64 default_fixed64 = 210 [default = 49]; - optional sfixed32 default_sfixed32 = 211 [default = 50]; - optional sfixed64 default_sfixed64 = 212 [default = 51]; - optional bool default_bool = 213 [default = true]; - optional string default_string = 214 [default = "Hello, string"]; - optional bytes default_bytes = 215 [default = "Hello, bytes"]; - optional DefaultsMessage.DefaultsEnum default_enum = 216 [default = ONE]; -} - -message MyMessageSet { - option message_set_wire_format = true; - extensions 100 to max; -} - -message Empty { -} - -extend MyMessageSet { - optional Empty x201 = 201; - optional Empty x202 = 202; - optional Empty x203 = 203; - optional Empty x204 = 204; - optional Empty x205 = 205; - optional Empty x206 = 206; - optional Empty x207 = 207; - optional Empty x208 = 208; - optional Empty x209 = 209; - optional Empty x210 = 210; - optional Empty x211 = 211; - optional Empty x212 = 212; - optional Empty x213 = 213; - optional Empty x214 = 214; - optional Empty x215 = 215; - optional Empty x216 = 216; - optional Empty x217 = 217; - optional Empty x218 = 218; - optional Empty x219 = 219; - optional Empty x220 = 220; - optional Empty x221 = 221; - optional Empty x222 = 222; - optional Empty x223 = 223; - optional Empty x224 = 224; - optional Empty x225 = 225; - optional Empty x226 = 226; - optional Empty x227 = 227; - optional Empty x228 = 228; - optional Empty x229 = 229; - optional Empty x230 = 230; - optional Empty x231 = 231; - optional Empty x232 = 232; - optional Empty x233 = 233; - optional Empty x234 = 234; - optional Empty x235 = 235; - optional Empty x236 = 236; - optional Empty x237 = 237; - optional Empty x238 = 238; - optional Empty x239 = 239; - optional Empty x240 = 240; - optional Empty x241 = 241; - optional Empty x242 = 242; - optional Empty x243 = 243; - optional Empty x244 = 244; - optional Empty x245 = 245; - optional Empty x246 = 246; - optional Empty x247 = 247; - optional Empty x248 = 248; - optional Empty x249 = 249; - optional Empty x250 = 250; -} - -message MessageList { - repeated group Message = 1 { - required string name = 2; - required int32 count = 3; - } -} - -message Strings { - optional string string_field = 1; - optional bytes bytes_field = 2; -} - -message Defaults { - enum Color { - RED = 0; - GREEN = 1; - BLUE = 2; - } - - // Default-valued fields of all basic types. - // Same as GoTest, but copied here to make testing easier. - optional bool F_Bool = 1 [default=true]; - optional int32 F_Int32 = 2 [default=32]; - optional int64 F_Int64 = 3 [default=64]; - optional fixed32 F_Fixed32 = 4 [default=320]; - optional fixed64 F_Fixed64 = 5 [default=640]; - optional uint32 F_Uint32 = 6 [default=3200]; - optional uint64 F_Uint64 = 7 [default=6400]; - optional float F_Float = 8 [default=314159.]; - optional double F_Double = 9 [default=271828.]; - optional string F_String = 10 [default="hello, \"world!\"\n"]; - optional bytes F_Bytes = 11 [default="Bignose"]; - optional sint32 F_Sint32 = 12 [default=-32]; - optional sint64 F_Sint64 = 13 [default=-64]; - optional Color F_Enum = 14 [default=GREEN]; - - // More fields with crazy defaults. - optional float F_Pinf = 15 [default=inf]; - optional float F_Ninf = 16 [default=-inf]; - optional float F_Nan = 17 [default=nan]; - - // Sub-message. - optional SubDefaults sub = 18; - - // Redundant but explicit defaults. - optional string str_zero = 19 [default=""]; -} - -message SubDefaults { - optional int64 n = 1 [default=7]; -} - -message RepeatedEnum { - enum Color { - RED = 1; - } - repeated Color color = 1; -} - -message MoreRepeated { - repeated bool bools = 1; - repeated bool bools_packed = 2 [packed=true]; - repeated int32 ints = 3; - repeated int32 ints_packed = 4 [packed=true]; - repeated int64 int64s_packed = 7 [packed=true]; - repeated string strings = 5; - repeated fixed32 fixeds = 6; -} - -// GroupOld and GroupNew have the same wire format. -// GroupNew has a new field inside a group. - -message GroupOld { - optional group G = 101 { - optional int32 x = 2; - } -} - -message GroupNew { - optional group G = 101 { - optional int32 x = 2; - optional int32 y = 3; - } -} - -message FloatingPoint { - required double f = 1; -} - -message MessageWithMap { - map name_mapping = 1; - map msg_mapping = 2; - map byte_mapping = 3; - map str_to_str = 4; -} - -message Communique { - optional bool make_me_cry = 1; - - // This is a oneof, called "union". - oneof union { - int32 number = 5; - string name = 6; - bytes data = 7; - double temp_c = 8; - MyMessage.Color col = 9; - Strings msg = 10; - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text.go deleted file mode 100644 index c8336c28..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text.go +++ /dev/null @@ -1,787 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto - -// Functions for writing the text protocol buffer format. - -import ( - "bufio" - "bytes" - "encoding" - "errors" - "fmt" - "io" - "log" - "math" - "reflect" - "sort" - "strings" -) - -var ( - newline = []byte("\n") - spaces = []byte(" ") - gtNewline = []byte(">\n") - endBraceNewline = []byte("}\n") - backslashN = []byte{'\\', 'n'} - backslashR = []byte{'\\', 'r'} - backslashT = []byte{'\\', 't'} - backslashDQ = []byte{'\\', '"'} - backslashBS = []byte{'\\', '\\'} - posInf = []byte("inf") - negInf = []byte("-inf") - nan = []byte("nan") -) - -type writer interface { - io.Writer - WriteByte(byte) error -} - -// textWriter is an io.Writer that tracks its indentation level. -type textWriter struct { - ind int - complete bool // if the current position is a complete line - compact bool // whether to write out as a one-liner - w writer -} - -func (w *textWriter) WriteString(s string) (n int, err error) { - if !strings.Contains(s, "\n") { - if !w.compact && w.complete { - w.writeIndent() - } - w.complete = false - return io.WriteString(w.w, s) - } - // WriteString is typically called without newlines, so this - // codepath and its copy are rare. We copy to avoid - // duplicating all of Write's logic here. - return w.Write([]byte(s)) -} - -func (w *textWriter) Write(p []byte) (n int, err error) { - newlines := bytes.Count(p, newline) - if newlines == 0 { - if !w.compact && w.complete { - w.writeIndent() - } - n, err = w.w.Write(p) - w.complete = false - return n, err - } - - frags := bytes.SplitN(p, newline, newlines+1) - if w.compact { - for i, frag := range frags { - if i > 0 { - if err := w.w.WriteByte(' '); err != nil { - return n, err - } - n++ - } - nn, err := w.w.Write(frag) - n += nn - if err != nil { - return n, err - } - } - return n, nil - } - - for i, frag := range frags { - if w.complete { - w.writeIndent() - } - nn, err := w.w.Write(frag) - n += nn - if err != nil { - return n, err - } - if i+1 < len(frags) { - if err := w.w.WriteByte('\n'); err != nil { - return n, err - } - n++ - } - } - w.complete = len(frags[len(frags)-1]) == 0 - return n, nil -} - -func (w *textWriter) WriteByte(c byte) error { - if w.compact && c == '\n' { - c = ' ' - } - if !w.compact && w.complete { - w.writeIndent() - } - err := w.w.WriteByte(c) - w.complete = c == '\n' - return err -} - -func (w *textWriter) indent() { w.ind++ } - -func (w *textWriter) unindent() { - if w.ind == 0 { - log.Printf("proto: textWriter unindented too far") - return - } - w.ind-- -} - -func writeName(w *textWriter, props *Properties) error { - if _, err := w.WriteString(props.OrigName); err != nil { - return err - } - if props.Wire != "group" { - return w.WriteByte(':') - } - return nil -} - -// raw is the interface satisfied by RawMessage. -type raw interface { - Bytes() []byte -} - -func writeStruct(w *textWriter, sv reflect.Value) error { - st := sv.Type() - sprops := GetProperties(st) - for i := 0; i < sv.NumField(); i++ { - fv := sv.Field(i) - props := sprops.Prop[i] - name := st.Field(i).Name - - if strings.HasPrefix(name, "XXX_") { - // There are two XXX_ fields: - // XXX_unrecognized []byte - // XXX_extensions map[int32]proto.Extension - // The first is handled here; - // the second is handled at the bottom of this function. - if name == "XXX_unrecognized" && !fv.IsNil() { - if err := writeUnknownStruct(w, fv.Interface().([]byte)); err != nil { - return err - } - } - continue - } - if fv.Kind() == reflect.Ptr && fv.IsNil() { - // Field not filled in. This could be an optional field or - // a required field that wasn't filled in. Either way, there - // isn't anything we can show for it. - continue - } - if fv.Kind() == reflect.Slice && fv.IsNil() { - // Repeated field that is empty, or a bytes field that is unused. - continue - } - - if props.Repeated && fv.Kind() == reflect.Slice { - // Repeated field. - for j := 0; j < fv.Len(); j++ { - if err := writeName(w, props); err != nil { - return err - } - if !w.compact { - if err := w.WriteByte(' '); err != nil { - return err - } - } - v := fv.Index(j) - if v.Kind() == reflect.Ptr && v.IsNil() { - // A nil message in a repeated field is not valid, - // but we can handle that more gracefully than panicking. - if _, err := w.Write([]byte("\n")); err != nil { - return err - } - continue - } - if len(props.Enum) > 0 { - if err := writeEnum(w, v, props); err != nil { - return err - } - } else if err := writeAny(w, v, props); err != nil { - return err - } - if err := w.WriteByte('\n'); err != nil { - return err - } - } - continue - } - if fv.Kind() == reflect.Map { - // Map fields are rendered as a repeated struct with key/value fields. - keys := fv.MapKeys() - sort.Sort(mapKeys(keys)) - for _, key := range keys { - val := fv.MapIndex(key) - if err := writeName(w, props); err != nil { - return err - } - if !w.compact { - if err := w.WriteByte(' '); err != nil { - return err - } - } - // open struct - if err := w.WriteByte('<'); err != nil { - return err - } - if !w.compact { - if err := w.WriteByte('\n'); err != nil { - return err - } - } - w.indent() - // key - if _, err := w.WriteString("key:"); err != nil { - return err - } - if !w.compact { - if err := w.WriteByte(' '); err != nil { - return err - } - } - if err := writeAny(w, key, props.mkeyprop); err != nil { - return err - } - if err := w.WriteByte('\n'); err != nil { - return err - } - // nil values aren't legal, but we can avoid panicking because of them. - if val.Kind() != reflect.Ptr || !val.IsNil() { - // value - if _, err := w.WriteString("value:"); err != nil { - return err - } - if !w.compact { - if err := w.WriteByte(' '); err != nil { - return err - } - } - if err := writeAny(w, val, props.mvalprop); err != nil { - return err - } - if err := w.WriteByte('\n'); err != nil { - return err - } - } - // close struct - w.unindent() - if err := w.WriteByte('>'); err != nil { - return err - } - if err := w.WriteByte('\n'); err != nil { - return err - } - } - continue - } - if props.proto3 && fv.Kind() == reflect.Slice && fv.Len() == 0 { - // empty bytes field - continue - } - if props.proto3 && fv.Kind() != reflect.Ptr && fv.Kind() != reflect.Slice { - // proto3 non-repeated scalar field; skip if zero value - if isProto3Zero(fv) { - continue - } - } - - if fv.Kind() == reflect.Interface { - // Check if it is a oneof. - if st.Field(i).Tag.Get("protobuf_oneof") != "" { - // fv is nil, or holds a pointer to generated struct. - // That generated struct has exactly one field, - // which has a protobuf struct tag. - if fv.IsNil() { - continue - } - inner := fv.Elem().Elem() // interface -> *T -> T - tag := inner.Type().Field(0).Tag.Get("protobuf") - props.Parse(tag) // Overwrite the outer props. - // Write the value in the oneof, not the oneof itself. - fv = inner.Field(0) - - // Special case to cope with malformed messages gracefully: - // If the value in the oneof is a nil pointer, don't panic - // in writeAny. - if fv.Kind() == reflect.Ptr && fv.IsNil() { - // Use errors.New so writeAny won't render quotes. - msg := errors.New("/* nil */") - fv = reflect.ValueOf(&msg).Elem() - } - } - } - - if err := writeName(w, props); err != nil { - return err - } - if !w.compact { - if err := w.WriteByte(' '); err != nil { - return err - } - } - if b, ok := fv.Interface().(raw); ok { - if err := writeRaw(w, b.Bytes()); err != nil { - return err - } - continue - } - - if len(props.Enum) > 0 { - if err := writeEnum(w, fv, props); err != nil { - return err - } - } else if err := writeAny(w, fv, props); err != nil { - return err - } - - if err := w.WriteByte('\n'); err != nil { - return err - } - } - - // Extensions (the XXX_extensions field). - pv := sv.Addr() - if pv.Type().Implements(extendableProtoType) { - if err := writeExtensions(w, pv); err != nil { - return err - } - } - - return nil -} - -// writeRaw writes an uninterpreted raw message. -func writeRaw(w *textWriter, b []byte) error { - if err := w.WriteByte('<'); err != nil { - return err - } - if !w.compact { - if err := w.WriteByte('\n'); err != nil { - return err - } - } - w.indent() - if err := writeUnknownStruct(w, b); err != nil { - return err - } - w.unindent() - if err := w.WriteByte('>'); err != nil { - return err - } - return nil -} - -// writeAny writes an arbitrary field. -func writeAny(w *textWriter, v reflect.Value, props *Properties) error { - v = reflect.Indirect(v) - - if props != nil && len(props.CustomType) > 0 { - custom, ok := v.Interface().(Marshaler) - if ok { - data, err := custom.Marshal() - if err != nil { - return err - } - if err := writeString(w, string(data)); err != nil { - return err - } - return nil - } - } - - // Floats have special cases. - if v.Kind() == reflect.Float32 || v.Kind() == reflect.Float64 { - x := v.Float() - var b []byte - switch { - case math.IsInf(x, 1): - b = posInf - case math.IsInf(x, -1): - b = negInf - case math.IsNaN(x): - b = nan - } - if b != nil { - _, err := w.Write(b) - return err - } - // Other values are handled below. - } - - // We don't attempt to serialise every possible value type; only those - // that can occur in protocol buffers. - switch v.Kind() { - case reflect.Slice: - // Should only be a []byte; repeated fields are handled in writeStruct. - if err := writeString(w, string(v.Bytes())); err != nil { - return err - } - case reflect.String: - if err := writeString(w, v.String()); err != nil { - return err - } - case reflect.Struct: - // Required/optional group/message. - var bra, ket byte = '<', '>' - if props != nil && props.Wire == "group" { - bra, ket = '{', '}' - } - if err := w.WriteByte(bra); err != nil { - return err - } - if !w.compact { - if err := w.WriteByte('\n'); err != nil { - return err - } - } - w.indent() - if tm, ok := v.Interface().(encoding.TextMarshaler); ok { - text, err := tm.MarshalText() - if err != nil { - return err - } - if _, err = w.Write(text); err != nil { - return err - } - } else if err := writeStruct(w, v); err != nil { - return err - } - w.unindent() - if err := w.WriteByte(ket); err != nil { - return err - } - default: - _, err := fmt.Fprint(w, v.Interface()) - return err - } - return nil -} - -// equivalent to C's isprint. -func isprint(c byte) bool { - return c >= 0x20 && c < 0x7f -} - -// writeString writes a string in the protocol buffer text format. -// It is similar to strconv.Quote except we don't use Go escape sequences, -// we treat the string as a byte sequence, and we use octal escapes. -// These differences are to maintain interoperability with the other -// languages' implementations of the text format. -func writeString(w *textWriter, s string) error { - // use WriteByte here to get any needed indent - if err := w.WriteByte('"'); err != nil { - return err - } - // Loop over the bytes, not the runes. - for i := 0; i < len(s); i++ { - var err error - // Divergence from C++: we don't escape apostrophes. - // There's no need to escape them, and the C++ parser - // copes with a naked apostrophe. - switch c := s[i]; c { - case '\n': - _, err = w.w.Write(backslashN) - case '\r': - _, err = w.w.Write(backslashR) - case '\t': - _, err = w.w.Write(backslashT) - case '"': - _, err = w.w.Write(backslashDQ) - case '\\': - _, err = w.w.Write(backslashBS) - default: - if isprint(c) { - err = w.w.WriteByte(c) - } else { - _, err = fmt.Fprintf(w.w, "\\%03o", c) - } - } - if err != nil { - return err - } - } - return w.WriteByte('"') -} - -func writeUnknownStruct(w *textWriter, data []byte) (err error) { - if !w.compact { - if _, err := fmt.Fprintf(w, "/* %d unknown bytes */\n", len(data)); err != nil { - return err - } - } - b := NewBuffer(data) - for b.index < len(b.buf) { - x, err := b.DecodeVarint() - if err != nil { - _, ferr := fmt.Fprintf(w, "/* %v */\n", err) - return ferr - } - wire, tag := x&7, x>>3 - if wire == WireEndGroup { - w.unindent() - if _, werr := w.Write(endBraceNewline); werr != nil { - return werr - } - continue - } - if _, ferr := fmt.Fprint(w, tag); ferr != nil { - return ferr - } - if wire != WireStartGroup { - if err := w.WriteByte(':'); err != nil { - return err - } - } - if !w.compact || wire == WireStartGroup { - if err := w.WriteByte(' '); err != nil { - return err - } - } - switch wire { - case WireBytes: - buf, e := b.DecodeRawBytes(false) - if e == nil { - _, err = fmt.Fprintf(w, "%q", buf) - } else { - _, err = fmt.Fprintf(w, "/* %v */", e) - } - case WireFixed32: - x, err = b.DecodeFixed32() - err = writeUnknownInt(w, x, err) - case WireFixed64: - x, err = b.DecodeFixed64() - err = writeUnknownInt(w, x, err) - case WireStartGroup: - err = w.WriteByte('{') - w.indent() - case WireVarint: - x, err = b.DecodeVarint() - err = writeUnknownInt(w, x, err) - default: - _, err = fmt.Fprintf(w, "/* unknown wire type %d */", wire) - } - if err != nil { - return err - } - if err := w.WriteByte('\n'); err != nil { - return err - } - } - return nil -} - -func writeUnknownInt(w *textWriter, x uint64, err error) error { - if err == nil { - _, err = fmt.Fprint(w, x) - } else { - _, err = fmt.Fprintf(w, "/* %v */", err) - } - return err -} - -type int32Slice []int32 - -func (s int32Slice) Len() int { return len(s) } -func (s int32Slice) Less(i, j int) bool { return s[i] < s[j] } -func (s int32Slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } - -// writeExtensions writes all the extensions in pv. -// pv is assumed to be a pointer to a protocol message struct that is extendable. -func writeExtensions(w *textWriter, pv reflect.Value) error { - emap := extensionMaps[pv.Type().Elem()] - ep := pv.Interface().(extendableProto) - - // Order the extensions by ID. - // This isn't strictly necessary, but it will give us - // canonical output, which will also make testing easier. - var m map[int32]Extension - if em, ok := ep.(extensionsMap); ok { - m = em.ExtensionMap() - } else if em, ok := ep.(extensionsBytes); ok { - eb := em.GetExtensions() - var err error - m, err = BytesToExtensionsMap(*eb) - if err != nil { - return err - } - } - - ids := make([]int32, 0, len(m)) - for id := range m { - ids = append(ids, id) - } - sort.Sort(int32Slice(ids)) - - for _, extNum := range ids { - ext := m[extNum] - var desc *ExtensionDesc - if emap != nil { - desc = emap[extNum] - } - if desc == nil { - // Unknown extension. - if err := writeUnknownStruct(w, ext.enc); err != nil { - return err - } - continue - } - - pb, err := GetExtension(ep, desc) - if err != nil { - return fmt.Errorf("failed getting extension: %v", err) - } - - // Repeated extensions will appear as a slice. - if !desc.repeated() { - if err := writeExtension(w, desc.Name, pb); err != nil { - return err - } - } else { - v := reflect.ValueOf(pb) - for i := 0; i < v.Len(); i++ { - if err := writeExtension(w, desc.Name, v.Index(i).Interface()); err != nil { - return err - } - } - } - } - return nil -} - -func writeExtension(w *textWriter, name string, pb interface{}) error { - if _, err := fmt.Fprintf(w, "[%s]:", name); err != nil { - return err - } - if !w.compact { - if err := w.WriteByte(' '); err != nil { - return err - } - } - if err := writeAny(w, reflect.ValueOf(pb), nil); err != nil { - return err - } - if err := w.WriteByte('\n'); err != nil { - return err - } - return nil -} - -func (w *textWriter) writeIndent() { - if !w.complete { - return - } - remain := w.ind * 2 - for remain > 0 { - n := remain - if n > len(spaces) { - n = len(spaces) - } - w.w.Write(spaces[:n]) - remain -= n - } - w.complete = false -} - -func marshalText(w io.Writer, pb Message, compact bool) error { - val := reflect.ValueOf(pb) - if pb == nil || val.IsNil() { - w.Write([]byte("")) - return nil - } - var bw *bufio.Writer - ww, ok := w.(writer) - if !ok { - bw = bufio.NewWriter(w) - ww = bw - } - aw := &textWriter{ - w: ww, - complete: true, - compact: compact, - } - - if tm, ok := pb.(encoding.TextMarshaler); ok { - text, err := tm.MarshalText() - if err != nil { - return err - } - if _, err = aw.Write(text); err != nil { - return err - } - if bw != nil { - return bw.Flush() - } - return nil - } - // Dereference the received pointer so we don't have outer < and >. - v := reflect.Indirect(val) - if err := writeStruct(aw, v); err != nil { - return err - } - if bw != nil { - return bw.Flush() - } - return nil -} - -// MarshalText writes a given protocol buffer in text format. -// The only errors returned are from w. -func MarshalText(w io.Writer, pb Message) error { - return marshalText(w, pb, false) -} - -// MarshalTextString is the same as MarshalText, but returns the string directly. -func MarshalTextString(pb Message) string { - var buf bytes.Buffer - marshalText(&buf, pb, false) - return buf.String() -} - -// CompactText writes a given protocol buffer in compact text format (one line). -func CompactText(w io.Writer, pb Message) error { return marshalText(w, pb, true) } - -// CompactTextString is the same as CompactText, but returns the string directly. -func CompactTextString(pb Message) string { - var buf bytes.Buffer - marshalText(&buf, pb, true) - return buf.String() -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_gogo.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_gogo.go deleted file mode 100644 index cdb23373..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_gogo.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package proto - -import ( - "fmt" - "reflect" -) - -func writeEnum(w *textWriter, v reflect.Value, props *Properties) error { - m, ok := enumStringMaps[props.Enum] - if !ok { - if err := writeAny(w, v, props); err != nil { - return err - } - } - key := int32(0) - if v.Kind() == reflect.Ptr { - key = int32(v.Elem().Int()) - } else { - key = int32(v.Int()) - } - s, ok := m[key] - if !ok { - if err := writeAny(w, v, props); err != nil { - return err - } - } - _, err := fmt.Fprint(w, s) - return err -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_parser.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_parser.go deleted file mode 100644 index f3909695..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_parser.go +++ /dev/null @@ -1,841 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto - -// Functions for parsing the Text protocol buffer format. -// TODO: message sets. - -import ( - "encoding" - "errors" - "fmt" - "reflect" - "strconv" - "strings" - "unicode/utf8" -) - -type ParseError struct { - Message string - Line int // 1-based line number - Offset int // 0-based byte offset from start of input -} - -func (p *ParseError) Error() string { - if p.Line == 1 { - // show offset only for first line - return fmt.Sprintf("line 1.%d: %v", p.Offset, p.Message) - } - return fmt.Sprintf("line %d: %v", p.Line, p.Message) -} - -type token struct { - value string - err *ParseError - line int // line number - offset int // byte number from start of input, not start of line - unquoted string // the unquoted version of value, if it was a quoted string -} - -func (t *token) String() string { - if t.err == nil { - return fmt.Sprintf("%q (line=%d, offset=%d)", t.value, t.line, t.offset) - } - return fmt.Sprintf("parse error: %v", t.err) -} - -type textParser struct { - s string // remaining input - done bool // whether the parsing is finished (success or error) - backed bool // whether back() was called - offset, line int - cur token -} - -func newTextParser(s string) *textParser { - p := new(textParser) - p.s = s - p.line = 1 - p.cur.line = 1 - return p -} - -func (p *textParser) errorf(format string, a ...interface{}) *ParseError { - pe := &ParseError{fmt.Sprintf(format, a...), p.cur.line, p.cur.offset} - p.cur.err = pe - p.done = true - return pe -} - -// Numbers and identifiers are matched by [-+._A-Za-z0-9] -func isIdentOrNumberChar(c byte) bool { - switch { - case 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z': - return true - case '0' <= c && c <= '9': - return true - } - switch c { - case '-', '+', '.', '_': - return true - } - return false -} - -func isWhitespace(c byte) bool { - switch c { - case ' ', '\t', '\n', '\r': - return true - } - return false -} - -func (p *textParser) skipWhitespace() { - i := 0 - for i < len(p.s) && (isWhitespace(p.s[i]) || p.s[i] == '#') { - if p.s[i] == '#' { - // comment; skip to end of line or input - for i < len(p.s) && p.s[i] != '\n' { - i++ - } - if i == len(p.s) { - break - } - } - if p.s[i] == '\n' { - p.line++ - } - i++ - } - p.offset += i - p.s = p.s[i:len(p.s)] - if len(p.s) == 0 { - p.done = true - } -} - -func (p *textParser) advance() { - // Skip whitespace - p.skipWhitespace() - if p.done { - return - } - - // Start of non-whitespace - p.cur.err = nil - p.cur.offset, p.cur.line = p.offset, p.line - p.cur.unquoted = "" - switch p.s[0] { - case '<', '>', '{', '}', ':', '[', ']', ';', ',': - // Single symbol - p.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)] - case '"', '\'': - // Quoted string - i := 1 - for i < len(p.s) && p.s[i] != p.s[0] && p.s[i] != '\n' { - if p.s[i] == '\\' && i+1 < len(p.s) { - // skip escaped char - i++ - } - i++ - } - if i >= len(p.s) || p.s[i] != p.s[0] { - p.errorf("unmatched quote") - return - } - unq, err := unquoteC(p.s[1:i], rune(p.s[0])) - if err != nil { - p.errorf("invalid quoted string %s: %v", p.s[0:i+1], err) - return - } - p.cur.value, p.s = p.s[0:i+1], p.s[i+1:len(p.s)] - p.cur.unquoted = unq - default: - i := 0 - for i < len(p.s) && isIdentOrNumberChar(p.s[i]) { - i++ - } - if i == 0 { - p.errorf("unexpected byte %#x", p.s[0]) - return - } - p.cur.value, p.s = p.s[0:i], p.s[i:len(p.s)] - } - p.offset += len(p.cur.value) -} - -var ( - errBadUTF8 = errors.New("proto: bad UTF-8") - errBadHex = errors.New("proto: bad hexadecimal") -) - -func unquoteC(s string, quote rune) (string, error) { - // This is based on C++'s tokenizer.cc. - // Despite its name, this is *not* parsing C syntax. - // For instance, "\0" is an invalid quoted string. - - // Avoid allocation in trivial cases. - simple := true - for _, r := range s { - if r == '\\' || r == quote { - simple = false - break - } - } - if simple { - return s, nil - } - - buf := make([]byte, 0, 3*len(s)/2) - for len(s) > 0 { - r, n := utf8.DecodeRuneInString(s) - if r == utf8.RuneError && n == 1 { - return "", errBadUTF8 - } - s = s[n:] - if r != '\\' { - if r < utf8.RuneSelf { - buf = append(buf, byte(r)) - } else { - buf = append(buf, string(r)...) - } - continue - } - - ch, tail, err := unescape(s) - if err != nil { - return "", err - } - buf = append(buf, ch...) - s = tail - } - return string(buf), nil -} - -func unescape(s string) (ch string, tail string, err error) { - r, n := utf8.DecodeRuneInString(s) - if r == utf8.RuneError && n == 1 { - return "", "", errBadUTF8 - } - s = s[n:] - switch r { - case 'a': - return "\a", s, nil - case 'b': - return "\b", s, nil - case 'f': - return "\f", s, nil - case 'n': - return "\n", s, nil - case 'r': - return "\r", s, nil - case 't': - return "\t", s, nil - case 'v': - return "\v", s, nil - case '?': - return "?", s, nil // trigraph workaround - case '\'', '"', '\\': - return string(r), s, nil - case '0', '1', '2', '3', '4', '5', '6', '7', 'x', 'X': - if len(s) < 2 { - return "", "", fmt.Errorf(`\%c requires 2 following digits`, r) - } - base := 8 - ss := s[:2] - s = s[2:] - if r == 'x' || r == 'X' { - base = 16 - } else { - ss = string(r) + ss - } - i, err := strconv.ParseUint(ss, base, 8) - if err != nil { - return "", "", err - } - return string([]byte{byte(i)}), s, nil - case 'u', 'U': - n := 4 - if r == 'U' { - n = 8 - } - if len(s) < n { - return "", "", fmt.Errorf(`\%c requires %d digits`, r, n) - } - - bs := make([]byte, n/2) - for i := 0; i < n; i += 2 { - a, ok1 := unhex(s[i]) - b, ok2 := unhex(s[i+1]) - if !ok1 || !ok2 { - return "", "", errBadHex - } - bs[i/2] = a<<4 | b - } - s = s[n:] - return string(bs), s, nil - } - return "", "", fmt.Errorf(`unknown escape \%c`, r) -} - -// Adapted from src/pkg/strconv/quote.go. -func unhex(b byte) (v byte, ok bool) { - switch { - case '0' <= b && b <= '9': - return b - '0', true - case 'a' <= b && b <= 'f': - return b - 'a' + 10, true - case 'A' <= b && b <= 'F': - return b - 'A' + 10, true - } - return 0, false -} - -// Back off the parser by one token. Can only be done between calls to next(). -// It makes the next advance() a no-op. -func (p *textParser) back() { p.backed = true } - -// Advances the parser and returns the new current token. -func (p *textParser) next() *token { - if p.backed || p.done { - p.backed = false - return &p.cur - } - p.advance() - if p.done { - p.cur.value = "" - } else if len(p.cur.value) > 0 && p.cur.value[0] == '"' { - // Look for multiple quoted strings separated by whitespace, - // and concatenate them. - cat := p.cur - for { - p.skipWhitespace() - if p.done || p.s[0] != '"' { - break - } - p.advance() - if p.cur.err != nil { - return &p.cur - } - cat.value += " " + p.cur.value - cat.unquoted += p.cur.unquoted - } - p.done = false // parser may have seen EOF, but we want to return cat - p.cur = cat - } - return &p.cur -} - -func (p *textParser) consumeToken(s string) error { - tok := p.next() - if tok.err != nil { - return tok.err - } - if tok.value != s { - p.back() - return p.errorf("expected %q, found %q", s, tok.value) - } - return nil -} - -// Return a RequiredNotSetError indicating which required field was not set. -func (p *textParser) missingRequiredFieldError(sv reflect.Value) *RequiredNotSetError { - st := sv.Type() - sprops := GetProperties(st) - for i := 0; i < st.NumField(); i++ { - if !isNil(sv.Field(i)) { - continue - } - - props := sprops.Prop[i] - if props.Required { - return &RequiredNotSetError{fmt.Sprintf("%v.%v", st, props.OrigName)} - } - } - return &RequiredNotSetError{fmt.Sprintf("%v.", st)} // should not happen -} - -// Returns the index in the struct for the named field, as well as the parsed tag properties. -func structFieldByName(sprops *StructProperties, name string) (int, *Properties, bool) { - i, ok := sprops.decoderOrigNames[name] - if ok { - return i, sprops.Prop[i], true - } - return -1, nil, false -} - -// Consume a ':' from the input stream (if the next token is a colon), -// returning an error if a colon is needed but not present. -func (p *textParser) checkForColon(props *Properties, typ reflect.Type) *ParseError { - tok := p.next() - if tok.err != nil { - return tok.err - } - if tok.value != ":" { - // Colon is optional when the field is a group or message. - needColon := true - switch props.Wire { - case "group": - needColon = false - case "bytes": - // A "bytes" field is either a message, a string, or a repeated field; - // those three become *T, *string and []T respectively, so we can check for - // this field being a pointer to a non-string. - if typ.Kind() == reflect.Ptr { - // *T or *string - if typ.Elem().Kind() == reflect.String { - break - } - } else if typ.Kind() == reflect.Slice { - // []T or []*T - if typ.Elem().Kind() != reflect.Ptr { - break - } - } else if typ.Kind() == reflect.String { - // The proto3 exception is for a string field, - // which requires a colon. - break - } - needColon = false - } - if needColon { - return p.errorf("expected ':', found %q", tok.value) - } - p.back() - } - return nil -} - -func (p *textParser) readStruct(sv reflect.Value, terminator string) error { - st := sv.Type() - sprops := GetProperties(st) - reqCount := sprops.reqCount - var reqFieldErr error - fieldSet := make(map[string]bool) - // A struct is a sequence of "name: value", terminated by one of - // '>' or '}', or the end of the input. A name may also be - // "[extension]". - for { - tok := p.next() - if tok.err != nil { - return tok.err - } - if tok.value == terminator { - break - } - if tok.value == "[" { - // Looks like an extension. - // - // TODO: Check whether we need to handle - // namespace rooted names (e.g. ".something.Foo"). - tok = p.next() - if tok.err != nil { - return tok.err - } - var desc *ExtensionDesc - // This could be faster, but it's functional. - // TODO: Do something smarter than a linear scan. - for _, d := range RegisteredExtensions(reflect.New(st).Interface().(Message)) { - if d.Name == tok.value { - desc = d - break - } - } - if desc == nil { - return p.errorf("unrecognized extension %q", tok.value) - } - // Check the extension terminator. - tok = p.next() - if tok.err != nil { - return tok.err - } - if tok.value != "]" { - return p.errorf("unrecognized extension terminator %q", tok.value) - } - - props := &Properties{} - props.Parse(desc.Tag) - - typ := reflect.TypeOf(desc.ExtensionType) - if err := p.checkForColon(props, typ); err != nil { - return err - } - - rep := desc.repeated() - - // Read the extension structure, and set it in - // the value we're constructing. - var ext reflect.Value - if !rep { - ext = reflect.New(typ).Elem() - } else { - ext = reflect.New(typ.Elem()).Elem() - } - if err := p.readAny(ext, props); err != nil { - if _, ok := err.(*RequiredNotSetError); !ok { - return err - } - reqFieldErr = err - } - ep := sv.Addr().Interface().(extendableProto) - if !rep { - SetExtension(ep, desc, ext.Interface()) - } else { - old, err := GetExtension(ep, desc) - var sl reflect.Value - if err == nil { - sl = reflect.ValueOf(old) // existing slice - } else { - sl = reflect.MakeSlice(typ, 0, 1) - } - sl = reflect.Append(sl, ext) - SetExtension(ep, desc, sl.Interface()) - } - if err := p.consumeOptionalSeparator(); err != nil { - return err - } - continue - } - - // This is a normal, non-extension field. - name := tok.value - var dst reflect.Value - fi, props, ok := structFieldByName(sprops, name) - if ok { - dst = sv.Field(fi) - } else if oop, ok := sprops.OneofTypes[name]; ok { - // It is a oneof. - props = oop.Prop - nv := reflect.New(oop.Type.Elem()) - dst = nv.Elem().Field(0) - sv.Field(oop.Field).Set(nv) - } - if !dst.IsValid() { - return p.errorf("unknown field name %q in %v", name, st) - } - - if dst.Kind() == reflect.Map { - // Consume any colon. - if err := p.checkForColon(props, dst.Type()); err != nil { - return err - } - - // Construct the map if it doesn't already exist. - if dst.IsNil() { - dst.Set(reflect.MakeMap(dst.Type())) - } - key := reflect.New(dst.Type().Key()).Elem() - val := reflect.New(dst.Type().Elem()).Elem() - - // The map entry should be this sequence of tokens: - // < key : KEY value : VALUE > - // Technically the "key" and "value" could come in any order, - // but in practice they won't. - - tok := p.next() - var terminator string - switch tok.value { - case "<": - terminator = ">" - case "{": - terminator = "}" - default: - return p.errorf("expected '{' or '<', found %q", tok.value) - } - if err := p.consumeToken("key"); err != nil { - return err - } - if err := p.consumeToken(":"); err != nil { - return err - } - if err := p.readAny(key, props.mkeyprop); err != nil { - return err - } - if err := p.consumeOptionalSeparator(); err != nil { - return err - } - if err := p.consumeToken("value"); err != nil { - return err - } - if err := p.checkForColon(props.mvalprop, dst.Type().Elem()); err != nil { - return err - } - if err := p.readAny(val, props.mvalprop); err != nil { - return err - } - if err := p.consumeOptionalSeparator(); err != nil { - return err - } - if err := p.consumeToken(terminator); err != nil { - return err - } - - dst.SetMapIndex(key, val) - continue - } - - // Check that it's not already set if it's not a repeated field. - if !props.Repeated && fieldSet[name] { - return p.errorf("non-repeated field %q was repeated", name) - } - - if err := p.checkForColon(props, dst.Type()); err != nil { - return err - } - - // Parse into the field. - fieldSet[name] = true - if err := p.readAny(dst, props); err != nil { - if _, ok := err.(*RequiredNotSetError); !ok { - return err - } - reqFieldErr = err - } else if props.Required { - reqCount-- - } - - if err := p.consumeOptionalSeparator(); err != nil { - return err - } - - } - - if reqCount > 0 { - return p.missingRequiredFieldError(sv) - } - return reqFieldErr -} - -// consumeOptionalSeparator consumes an optional semicolon or comma. -// It is used in readStruct to provide backward compatibility. -func (p *textParser) consumeOptionalSeparator() error { - tok := p.next() - if tok.err != nil { - return tok.err - } - if tok.value != ";" && tok.value != "," { - p.back() - } - return nil -} - -func (p *textParser) readAny(v reflect.Value, props *Properties) error { - tok := p.next() - if tok.err != nil { - return tok.err - } - if tok.value == "" { - return p.errorf("unexpected EOF") - } - if len(props.CustomType) > 0 { - if props.Repeated { - t := reflect.TypeOf(v.Interface()) - if t.Kind() == reflect.Slice { - tc := reflect.TypeOf(new(Marshaler)) - ok := t.Elem().Implements(tc.Elem()) - if ok { - fv := v - flen := fv.Len() - if flen == fv.Cap() { - nav := reflect.MakeSlice(v.Type(), flen, 2*flen+1) - reflect.Copy(nav, fv) - fv.Set(nav) - } - fv.SetLen(flen + 1) - - // Read one. - p.back() - return p.readAny(fv.Index(flen), props) - } - } - } - if reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr { - custom := reflect.New(props.ctype.Elem()).Interface().(Unmarshaler) - err := custom.Unmarshal([]byte(tok.unquoted)) - if err != nil { - return p.errorf("%v %v: %v", err, v.Type(), tok.value) - } - v.Set(reflect.ValueOf(custom)) - } else { - custom := reflect.New(reflect.TypeOf(v.Interface())).Interface().(Unmarshaler) - err := custom.Unmarshal([]byte(tok.unquoted)) - if err != nil { - return p.errorf("%v %v: %v", err, v.Type(), tok.value) - } - v.Set(reflect.Indirect(reflect.ValueOf(custom))) - } - return nil - } - switch fv := v; fv.Kind() { - case reflect.Slice: - at := v.Type() - if at.Elem().Kind() == reflect.Uint8 { - // Special case for []byte - if tok.value[0] != '"' && tok.value[0] != '\'' { - // Deliberately written out here, as the error after - // this switch statement would write "invalid []byte: ...", - // which is not as user-friendly. - return p.errorf("invalid string: %v", tok.value) - } - bytes := []byte(tok.unquoted) - fv.Set(reflect.ValueOf(bytes)) - return nil - } - // Repeated field. - if tok.value == "[" { - // Repeated field with list notation, like [1,2,3]. - for { - fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem())) - err := p.readAny(fv.Index(fv.Len()-1), props) - if err != nil { - return err - } - tok := p.next() - if tok.err != nil { - return tok.err - } - if tok.value == "]" { - break - } - if tok.value != "," { - return p.errorf("Expected ']' or ',' found %q", tok.value) - } - } - return nil - } - // One value of the repeated field. - p.back() - fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem())) - return p.readAny(fv.Index(fv.Len()-1), props) - case reflect.Bool: - // Either "true", "false", 1 or 0. - switch tok.value { - case "true", "1": - fv.SetBool(true) - return nil - case "false", "0": - fv.SetBool(false) - return nil - } - case reflect.Float32, reflect.Float64: - v := tok.value - // Ignore 'f' for compatibility with output generated by C++, but don't - // remove 'f' when the value is "-inf" or "inf". - if strings.HasSuffix(v, "f") && tok.value != "-inf" && tok.value != "inf" { - v = v[:len(v)-1] - } - if f, err := strconv.ParseFloat(v, fv.Type().Bits()); err == nil { - fv.SetFloat(f) - return nil - } - case reflect.Int32: - if x, err := strconv.ParseInt(tok.value, 0, 32); err == nil { - fv.SetInt(x) - return nil - } - - if len(props.Enum) == 0 { - break - } - m, ok := enumValueMaps[props.Enum] - if !ok { - break - } - x, ok := m[tok.value] - if !ok { - break - } - fv.SetInt(int64(x)) - return nil - case reflect.Int64: - if x, err := strconv.ParseInt(tok.value, 0, 64); err == nil { - fv.SetInt(x) - return nil - } - - case reflect.Ptr: - // A basic field (indirected through pointer), or a repeated message/group - p.back() - fv.Set(reflect.New(fv.Type().Elem())) - return p.readAny(fv.Elem(), props) - case reflect.String: - if tok.value[0] == '"' || tok.value[0] == '\'' { - fv.SetString(tok.unquoted) - return nil - } - case reflect.Struct: - var terminator string - switch tok.value { - case "{": - terminator = "}" - case "<": - terminator = ">" - default: - return p.errorf("expected '{' or '<', found %q", tok.value) - } - // TODO: Handle nested messages which implement encoding.TextUnmarshaler. - return p.readStruct(fv, terminator) - case reflect.Uint32: - if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { - fv.SetUint(uint64(x)) - return nil - } - case reflect.Uint64: - if x, err := strconv.ParseUint(tok.value, 0, 64); err == nil { - fv.SetUint(x) - return nil - } - } - return p.errorf("invalid %v: %v", v.Type(), tok.value) -} - -// UnmarshalText reads a protocol buffer in Text format. UnmarshalText resets pb -// before starting to unmarshal, so any existing data in pb is always removed. -// If a required field is not set and no other error occurs, -// UnmarshalText returns *RequiredNotSetError. -func UnmarshalText(s string, pb Message) error { - if um, ok := pb.(encoding.TextUnmarshaler); ok { - err := um.UnmarshalText([]byte(s)) - return err - } - pb.Reset() - v := reflect.ValueOf(pb) - if pe := newTextParser(s).readStruct(v.Elem(), ""); pe != nil { - return pe - } - return nil -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_parser_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_parser_test.go deleted file mode 100644 index 1e870c75..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_parser_test.go +++ /dev/null @@ -1,532 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto_test - -import ( - "math" - "reflect" - "testing" - - . "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - proto3pb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto" - . "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata" -) - -type UnmarshalTextTest struct { - in string - err string // if "", no error expected - out *MyMessage -} - -func buildExtStructTest(text string) UnmarshalTextTest { - msg := &MyMessage{ - Count: Int32(42), - } - SetExtension(msg, E_Ext_More, &Ext{ - Data: String("Hello, world!"), - }) - return UnmarshalTextTest{in: text, out: msg} -} - -func buildExtDataTest(text string) UnmarshalTextTest { - msg := &MyMessage{ - Count: Int32(42), - } - SetExtension(msg, E_Ext_Text, String("Hello, world!")) - SetExtension(msg, E_Ext_Number, Int32(1729)) - return UnmarshalTextTest{in: text, out: msg} -} - -func buildExtRepStringTest(text string) UnmarshalTextTest { - msg := &MyMessage{ - Count: Int32(42), - } - if err := SetExtension(msg, E_Greeting, []string{"bula", "hola"}); err != nil { - panic(err) - } - return UnmarshalTextTest{in: text, out: msg} -} - -var unMarshalTextTests = []UnmarshalTextTest{ - // Basic - { - in: " count:42\n name:\"Dave\" ", - out: &MyMessage{ - Count: Int32(42), - Name: String("Dave"), - }, - }, - - // Empty quoted string - { - in: `count:42 name:""`, - out: &MyMessage{ - Count: Int32(42), - Name: String(""), - }, - }, - - // Quoted string concatenation - { - in: `count:42 name: "My name is "` + "\n" + `"elsewhere"`, - out: &MyMessage{ - Count: Int32(42), - Name: String("My name is elsewhere"), - }, - }, - - // Quoted string with escaped apostrophe - { - in: `count:42 name: "HOLIDAY - New Year\'s Day"`, - out: &MyMessage{ - Count: Int32(42), - Name: String("HOLIDAY - New Year's Day"), - }, - }, - - // Quoted string with single quote - { - in: `count:42 name: 'Roger "The Ramster" Ramjet'`, - out: &MyMessage{ - Count: Int32(42), - Name: String(`Roger "The Ramster" Ramjet`), - }, - }, - - // Quoted string with all the accepted special characters from the C++ test - { - in: `count:42 name: ` + "\"\\\"A string with \\' characters \\n and \\r newlines and \\t tabs and \\001 slashes \\\\ and multiple spaces\"", - out: &MyMessage{ - Count: Int32(42), - Name: String("\"A string with ' characters \n and \r newlines and \t tabs and \001 slashes \\ and multiple spaces"), - }, - }, - - // Quoted string with quoted backslash - { - in: `count:42 name: "\\'xyz"`, - out: &MyMessage{ - Count: Int32(42), - Name: String(`\'xyz`), - }, - }, - - // Quoted string with UTF-8 bytes. - { - in: "count:42 name: '\303\277\302\201\xAB'", - out: &MyMessage{ - Count: Int32(42), - Name: String("\303\277\302\201\xAB"), - }, - }, - - // Bad quoted string - { - in: `inner: < host: "\0" >` + "\n", - err: `line 1.15: invalid quoted string "\0": \0 requires 2 following digits`, - }, - - // Number too large for int64 - { - in: "count: 1 others { key: 123456789012345678901 }", - err: "line 1.23: invalid int64: 123456789012345678901", - }, - - // Number too large for int32 - { - in: "count: 1234567890123", - err: "line 1.7: invalid int32: 1234567890123", - }, - - // Number in hexadecimal - { - in: "count: 0x2beef", - out: &MyMessage{ - Count: Int32(0x2beef), - }, - }, - - // Number in octal - { - in: "count: 024601", - out: &MyMessage{ - Count: Int32(024601), - }, - }, - - // Floating point number with "f" suffix - { - in: "count: 4 others:< weight: 17.0f >", - out: &MyMessage{ - Count: Int32(4), - Others: []*OtherMessage{ - { - Weight: Float32(17), - }, - }, - }, - }, - - // Floating point positive infinity - { - in: "count: 4 bigfloat: inf", - out: &MyMessage{ - Count: Int32(4), - Bigfloat: Float64(math.Inf(1)), - }, - }, - - // Floating point negative infinity - { - in: "count: 4 bigfloat: -inf", - out: &MyMessage{ - Count: Int32(4), - Bigfloat: Float64(math.Inf(-1)), - }, - }, - - // Number too large for float32 - { - in: "others:< weight: 12345678901234567890123456789012345678901234567890 >", - err: "line 1.17: invalid float32: 12345678901234567890123456789012345678901234567890", - }, - - // Number posing as a quoted string - { - in: `inner: < host: 12 >` + "\n", - err: `line 1.15: invalid string: 12`, - }, - - // Quoted string posing as int32 - { - in: `count: "12"`, - err: `line 1.7: invalid int32: "12"`, - }, - - // Quoted string posing a float32 - { - in: `others:< weight: "17.4" >`, - err: `line 1.17: invalid float32: "17.4"`, - }, - - // Enum - { - in: `count:42 bikeshed: BLUE`, - out: &MyMessage{ - Count: Int32(42), - Bikeshed: MyMessage_BLUE.Enum(), - }, - }, - - // Repeated field - { - in: `count:42 pet: "horsey" pet:"bunny"`, - out: &MyMessage{ - Count: Int32(42), - Pet: []string{"horsey", "bunny"}, - }, - }, - - // Repeated field with list notation - { - in: `count:42 pet: ["horsey", "bunny"]`, - out: &MyMessage{ - Count: Int32(42), - Pet: []string{"horsey", "bunny"}, - }, - }, - - // Repeated message with/without colon and <>/{} - { - in: `count:42 others:{} others{} others:<> others:{}`, - out: &MyMessage{ - Count: Int32(42), - Others: []*OtherMessage{ - {}, - {}, - {}, - {}, - }, - }, - }, - - // Missing colon for inner message - { - in: `count:42 inner < host: "cauchy.syd" >`, - out: &MyMessage{ - Count: Int32(42), - Inner: &InnerMessage{ - Host: String("cauchy.syd"), - }, - }, - }, - - // Missing colon for string field - { - in: `name "Dave"`, - err: `line 1.5: expected ':', found "\"Dave\""`, - }, - - // Missing colon for int32 field - { - in: `count 42`, - err: `line 1.6: expected ':', found "42"`, - }, - - // Missing required field - { - in: `name: "Pawel"`, - err: `proto: required field "testdata.MyMessage.count" not set`, - out: &MyMessage{ - Name: String("Pawel"), - }, - }, - - // Repeated non-repeated field - { - in: `name: "Rob" name: "Russ"`, - err: `line 1.12: non-repeated field "name" was repeated`, - }, - - // Group - { - in: `count: 17 SomeGroup { group_field: 12 }`, - out: &MyMessage{ - Count: Int32(17), - Somegroup: &MyMessage_SomeGroup{ - GroupField: Int32(12), - }, - }, - }, - - // Semicolon between fields - { - in: `count:3;name:"Calvin"`, - out: &MyMessage{ - Count: Int32(3), - Name: String("Calvin"), - }, - }, - // Comma between fields - { - in: `count:4,name:"Ezekiel"`, - out: &MyMessage{ - Count: Int32(4), - Name: String("Ezekiel"), - }, - }, - - // Extension - buildExtStructTest(`count: 42 [testdata.Ext.more]:`), - buildExtStructTest(`count: 42 [testdata.Ext.more] {data:"Hello, world!"}`), - buildExtDataTest(`count: 42 [testdata.Ext.text]:"Hello, world!" [testdata.Ext.number]:1729`), - buildExtRepStringTest(`count: 42 [testdata.greeting]:"bula" [testdata.greeting]:"hola"`), - - // Big all-in-one - { - in: "count:42 # Meaning\n" + - `name:"Dave" ` + - `quote:"\"I didn't want to go.\"" ` + - `pet:"bunny" ` + - `pet:"kitty" ` + - `pet:"horsey" ` + - `inner:<` + - ` host:"footrest.syd" ` + - ` port:7001 ` + - ` connected:true ` + - `> ` + - `others:<` + - ` key:3735928559 ` + - ` value:"\x01A\a\f" ` + - `> ` + - `others:<` + - " weight:58.9 # Atomic weight of Co\n" + - ` inner:<` + - ` host:"lesha.mtv" ` + - ` port:8002 ` + - ` >` + - `>`, - out: &MyMessage{ - Count: Int32(42), - Name: String("Dave"), - Quote: String(`"I didn't want to go."`), - Pet: []string{"bunny", "kitty", "horsey"}, - Inner: &InnerMessage{ - Host: String("footrest.syd"), - Port: Int32(7001), - Connected: Bool(true), - }, - Others: []*OtherMessage{ - { - Key: Int64(3735928559), - Value: []byte{0x1, 'A', '\a', '\f'}, - }, - { - Weight: Float32(58.9), - Inner: &InnerMessage{ - Host: String("lesha.mtv"), - Port: Int32(8002), - }, - }, - }, - }, - }, -} - -func TestUnmarshalText(t *testing.T) { - for i, test := range unMarshalTextTests { - pb := new(MyMessage) - err := UnmarshalText(test.in, pb) - if test.err == "" { - // We don't expect failure. - if err != nil { - t.Errorf("Test %d: Unexpected error: %v", i, err) - } else if !reflect.DeepEqual(pb, test.out) { - t.Errorf("Test %d: Incorrect populated \nHave: %v\nWant: %v", - i, pb, test.out) - } - } else { - // We do expect failure. - if err == nil { - t.Errorf("Test %d: Didn't get expected error: %v", i, test.err) - } else if err.Error() != test.err { - t.Errorf("Test %d: Incorrect error.\nHave: %v\nWant: %v", - i, err.Error(), test.err) - } else if _, ok := err.(*RequiredNotSetError); ok && test.out != nil && !reflect.DeepEqual(pb, test.out) { - t.Errorf("Test %d: Incorrect populated \nHave: %v\nWant: %v", - i, pb, test.out) - } - } - } -} - -func TestUnmarshalTextCustomMessage(t *testing.T) { - msg := &textMessage{} - if err := UnmarshalText("custom", msg); err != nil { - t.Errorf("Unexpected error from custom unmarshal: %v", err) - } - if UnmarshalText("not custom", msg) == nil { - t.Errorf("Didn't get expected error from custom unmarshal") - } -} - -// Regression test; this caused a panic. -func TestRepeatedEnum(t *testing.T) { - pb := new(RepeatedEnum) - if err := UnmarshalText("color: RED", pb); err != nil { - t.Fatal(err) - } - exp := &RepeatedEnum{ - Color: []RepeatedEnum_Color{RepeatedEnum_RED}, - } - if !Equal(pb, exp) { - t.Errorf("Incorrect populated \nHave: %v\nWant: %v", pb, exp) - } -} - -func TestProto3TextParsing(t *testing.T) { - m := new(proto3pb.Message) - const in = `name: "Wallace" true_scotsman: true` - want := &proto3pb.Message{ - Name: "Wallace", - TrueScotsman: true, - } - if err := UnmarshalText(in, m); err != nil { - t.Fatal(err) - } - if !Equal(m, want) { - t.Errorf("\n got %v\nwant %v", m, want) - } -} - -func TestMapParsing(t *testing.T) { - m := new(MessageWithMap) - const in = `name_mapping: name_mapping:` + - `msg_mapping:,>` + // separating commas are okay - `msg_mapping>` + // no colon after "value" - `byte_mapping:` - want := &MessageWithMap{ - NameMapping: map[int32]string{ - 1: "Beatles", - 1234: "Feist", - }, - MsgMapping: map[int64]*FloatingPoint{ - -4: {F: Float64(2.0)}, - -2: {F: Float64(4.0)}, - }, - ByteMapping: map[bool][]byte{ - true: []byte("so be it"), - }, - } - if err := UnmarshalText(in, m); err != nil { - t.Fatal(err) - } - if !Equal(m, want) { - t.Errorf("\n got %v\nwant %v", m, want) - } -} - -func TestOneofParsing(t *testing.T) { - const in = `name:"Shrek"` - m := new(Communique) - want := &Communique{Union: &Communique_Name{"Shrek"}} - if err := UnmarshalText(in, m); err != nil { - t.Fatal(err) - } - if !Equal(m, want) { - t.Errorf("\n got %v\nwant %v", m, want) - } -} - -var benchInput string - -func init() { - benchInput = "count: 4\n" - for i := 0; i < 1000; i++ { - benchInput += "pet: \"fido\"\n" - } - - // Check it is valid input. - pb := new(MyMessage) - err := UnmarshalText(benchInput, pb) - if err != nil { - panic("Bad benchmark input: " + err.Error()) - } -} - -func BenchmarkUnmarshalText(b *testing.B) { - pb := new(MyMessage) - for i := 0; i < b.N; i++ { - UnmarshalText(benchInput, pb) - } - b.SetBytes(int64(len(benchInput))) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_test.go deleted file mode 100644 index c3d25963..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/text_test.go +++ /dev/null @@ -1,474 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package proto_test - -import ( - "bytes" - "errors" - "io/ioutil" - "math" - "strings" - "testing" - - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - - proto3pb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/proto3_proto" - pb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto/testdata" -) - -// textMessage implements the methods that allow it to marshal and unmarshal -// itself as text. -type textMessage struct { -} - -func (*textMessage) MarshalText() ([]byte, error) { - return []byte("custom"), nil -} - -func (*textMessage) UnmarshalText(bytes []byte) error { - if string(bytes) != "custom" { - return errors.New("expected 'custom'") - } - return nil -} - -func (*textMessage) Reset() {} -func (*textMessage) String() string { return "" } -func (*textMessage) ProtoMessage() {} - -func newTestMessage() *pb.MyMessage { - msg := &pb.MyMessage{ - Count: proto.Int32(42), - Name: proto.String("Dave"), - Quote: proto.String(`"I didn't want to go."`), - Pet: []string{"bunny", "kitty", "horsey"}, - Inner: &pb.InnerMessage{ - Host: proto.String("footrest.syd"), - Port: proto.Int32(7001), - Connected: proto.Bool(true), - }, - Others: []*pb.OtherMessage{ - { - Key: proto.Int64(0xdeadbeef), - Value: []byte{1, 65, 7, 12}, - }, - { - Weight: proto.Float32(6.022), - Inner: &pb.InnerMessage{ - Host: proto.String("lesha.mtv"), - Port: proto.Int32(8002), - }, - }, - }, - Bikeshed: pb.MyMessage_BLUE.Enum(), - Somegroup: &pb.MyMessage_SomeGroup{ - GroupField: proto.Int32(8), - }, - // One normally wouldn't do this. - // This is an undeclared tag 13, as a varint (wire type 0) with value 4. - XXX_unrecognized: []byte{13<<3 | 0, 4}, - } - ext := &pb.Ext{ - Data: proto.String("Big gobs for big rats"), - } - if err := proto.SetExtension(msg, pb.E_Ext_More, ext); err != nil { - panic(err) - } - greetings := []string{"adg", "easy", "cow"} - if err := proto.SetExtension(msg, pb.E_Greeting, greetings); err != nil { - panic(err) - } - - // Add an unknown extension. We marshal a pb.Ext, and fake the ID. - b, err := proto.Marshal(&pb.Ext{Data: proto.String("3G skiing")}) - if err != nil { - panic(err) - } - b = append(proto.EncodeVarint(201<<3|proto.WireBytes), b...) - proto.SetRawExtension(msg, 201, b) - - // Extensions can be plain fields, too, so let's test that. - b = append(proto.EncodeVarint(202<<3|proto.WireVarint), 19) - proto.SetRawExtension(msg, 202, b) - - return msg -} - -const text = `count: 42 -name: "Dave" -quote: "\"I didn't want to go.\"" -pet: "bunny" -pet: "kitty" -pet: "horsey" -inner: < - host: "footrest.syd" - port: 7001 - connected: true -> -others: < - key: 3735928559 - value: "\001A\007\014" -> -others: < - weight: 6.022 - inner: < - host: "lesha.mtv" - port: 8002 - > -> -bikeshed: BLUE -SomeGroup { - group_field: 8 -} -/* 2 unknown bytes */ -13: 4 -[testdata.Ext.more]: < - data: "Big gobs for big rats" -> -[testdata.greeting]: "adg" -[testdata.greeting]: "easy" -[testdata.greeting]: "cow" -/* 13 unknown bytes */ -201: "\t3G skiing" -/* 3 unknown bytes */ -202: 19 -` - -func TestMarshalText(t *testing.T) { - buf := new(bytes.Buffer) - if err := proto.MarshalText(buf, newTestMessage()); err != nil { - t.Fatalf("proto.MarshalText: %v", err) - } - s := buf.String() - if s != text { - t.Errorf("Got:\n===\n%v===\nExpected:\n===\n%v===\n", s, text) - } -} - -func TestMarshalTextCustomMessage(t *testing.T) { - buf := new(bytes.Buffer) - if err := proto.MarshalText(buf, &textMessage{}); err != nil { - t.Fatalf("proto.MarshalText: %v", err) - } - s := buf.String() - if s != "custom" { - t.Errorf("Got %q, expected %q", s, "custom") - } -} -func TestMarshalTextNil(t *testing.T) { - want := "" - tests := []proto.Message{nil, (*pb.MyMessage)(nil)} - for i, test := range tests { - buf := new(bytes.Buffer) - if err := proto.MarshalText(buf, test); err != nil { - t.Fatal(err) - } - if got := buf.String(); got != want { - t.Errorf("%d: got %q want %q", i, got, want) - } - } -} - -func TestMarshalTextUnknownEnum(t *testing.T) { - // The Color enum only specifies values 0-2. - m := &pb.MyMessage{Bikeshed: pb.MyMessage_Color(3).Enum()} - got := m.String() - const want = `bikeshed:3 ` - if got != want { - t.Errorf("\n got %q\nwant %q", got, want) - } -} - -func TestTextOneof(t *testing.T) { - tests := []struct { - m proto.Message - want string - }{ - // zero message - {&pb.Communique{}, ``}, - // scalar field - {&pb.Communique{Union: &pb.Communique_Number{Number: 4}}, `number:4`}, - // message field - {&pb.Communique{Union: &pb.Communique_Msg{ - Msg: &pb.Strings{StringField: proto.String("why hello!")}, - }}, `msg:`}, - // bad oneof (should not panic) - {&pb.Communique{Union: &pb.Communique_Msg{Msg: nil}}, `msg:/* nil */`}, - } - for _, test := range tests { - got := strings.TrimSpace(test.m.String()) - if got != test.want { - t.Errorf("\n got %s\nwant %s", got, test.want) - } - } -} - -func BenchmarkMarshalTextBuffered(b *testing.B) { - buf := new(bytes.Buffer) - m := newTestMessage() - for i := 0; i < b.N; i++ { - buf.Reset() - proto.MarshalText(buf, m) - } -} - -func BenchmarkMarshalTextUnbuffered(b *testing.B) { - w := ioutil.Discard - m := newTestMessage() - for i := 0; i < b.N; i++ { - proto.MarshalText(w, m) - } -} - -func compact(src string) string { - // s/[ \n]+/ /g; s/ $//; - dst := make([]byte, len(src)) - space, comment := false, false - j := 0 - for i := 0; i < len(src); i++ { - if strings.HasPrefix(src[i:], "/*") { - comment = true - i++ - continue - } - if comment && strings.HasPrefix(src[i:], "*/") { - comment = false - i++ - continue - } - if comment { - continue - } - c := src[i] - if c == ' ' || c == '\n' { - space = true - continue - } - if j > 0 && (dst[j-1] == ':' || dst[j-1] == '<' || dst[j-1] == '{') { - space = false - } - if c == '{' { - space = false - } - if space { - dst[j] = ' ' - j++ - space = false - } - dst[j] = c - j++ - } - if space { - dst[j] = ' ' - j++ - } - return string(dst[0:j]) -} - -var compactText = compact(text) - -func TestCompactText(t *testing.T) { - s := proto.CompactTextString(newTestMessage()) - if s != compactText { - t.Errorf("Got:\n===\n%v===\nExpected:\n===\n%v\n===\n", s, compactText) - } -} - -func TestStringEscaping(t *testing.T) { - testCases := []struct { - in *pb.Strings - out string - }{ - { - // Test data from C++ test (TextFormatTest.StringEscape). - // Single divergence: we don't escape apostrophes. - &pb.Strings{StringField: proto.String("\"A string with ' characters \n and \r newlines and \t tabs and \001 slashes \\ and multiple spaces")}, - "string_field: \"\\\"A string with ' characters \\n and \\r newlines and \\t tabs and \\001 slashes \\\\ and multiple spaces\"\n", - }, - { - // Test data from the same C++ test. - &pb.Strings{StringField: proto.String("\350\260\267\346\255\214")}, - "string_field: \"\\350\\260\\267\\346\\255\\214\"\n", - }, - { - // Some UTF-8. - &pb.Strings{StringField: proto.String("\x00\x01\xff\x81")}, - `string_field: "\000\001\377\201"` + "\n", - }, - } - - for i, tc := range testCases { - var buf bytes.Buffer - if err := proto.MarshalText(&buf, tc.in); err != nil { - t.Errorf("proto.MarsalText: %v", err) - continue - } - s := buf.String() - if s != tc.out { - t.Errorf("#%d: Got:\n%s\nExpected:\n%s\n", i, s, tc.out) - continue - } - - // Check round-trip. - pb := new(pb.Strings) - if err := proto.UnmarshalText(s, pb); err != nil { - t.Errorf("#%d: UnmarshalText: %v", i, err) - continue - } - if !proto.Equal(pb, tc.in) { - t.Errorf("#%d: Round-trip failed:\nstart: %v\n end: %v", i, tc.in, pb) - } - } -} - -// A limitedWriter accepts some output before it fails. -// This is a proxy for something like a nearly-full or imminently-failing disk, -// or a network connection that is about to die. -type limitedWriter struct { - b bytes.Buffer - limit int -} - -var outOfSpace = errors.New("proto: insufficient space") - -func (w *limitedWriter) Write(p []byte) (n int, err error) { - var avail = w.limit - w.b.Len() - if avail <= 0 { - return 0, outOfSpace - } - if len(p) <= avail { - return w.b.Write(p) - } - n, _ = w.b.Write(p[:avail]) - return n, outOfSpace -} - -func TestMarshalTextFailing(t *testing.T) { - // Try lots of different sizes to exercise more error code-paths. - for lim := 0; lim < len(text); lim++ { - buf := new(limitedWriter) - buf.limit = lim - err := proto.MarshalText(buf, newTestMessage()) - // We expect a certain error, but also some partial results in the buffer. - if err != outOfSpace { - t.Errorf("Got:\n===\n%v===\nExpected:\n===\n%v===\n", err, outOfSpace) - } - s := buf.b.String() - x := text[:buf.limit] - if s != x { - t.Errorf("Got:\n===\n%v===\nExpected:\n===\n%v===\n", s, x) - } - } -} - -func TestFloats(t *testing.T) { - tests := []struct { - f float64 - want string - }{ - {0, "0"}, - {4.7, "4.7"}, - {math.Inf(1), "inf"}, - {math.Inf(-1), "-inf"}, - {math.NaN(), "nan"}, - } - for _, test := range tests { - msg := &pb.FloatingPoint{F: &test.f} - got := strings.TrimSpace(msg.String()) - want := `f:` + test.want - if got != want { - t.Errorf("f=%f: got %q, want %q", test.f, got, want) - } - } -} - -func TestRepeatedNilText(t *testing.T) { - m := &pb.MessageList{ - Message: []*pb.MessageList_Message{ - nil, - { - Name: proto.String("Horse"), - }, - nil, - }, - } - want := `Message -Message { - name: "Horse" -} -Message -` - if s := proto.MarshalTextString(m); s != want { - t.Errorf(" got: %s\nwant: %s", s, want) - } -} - -func TestProto3Text(t *testing.T) { - tests := []struct { - m proto.Message - want string - }{ - // zero message - {&proto3pb.Message{}, ``}, - // zero message except for an empty byte slice - {&proto3pb.Message{Data: []byte{}}, ``}, - // trivial case - {&proto3pb.Message{Name: "Rob", HeightInCm: 175}, `name:"Rob" height_in_cm:175`}, - // empty map - {&pb.MessageWithMap{}, ``}, - // non-empty map; map format is the same as a repeated struct, - // and they are sorted by key (numerically for numeric keys). - { - &pb.MessageWithMap{NameMapping: map[int32]string{ - -1: "Negatory", - 7: "Lucky", - 1234: "Feist", - 6345789: "Otis", - }}, - `name_mapping: ` + - `name_mapping: ` + - `name_mapping: ` + - `name_mapping:`, - }, - // map with nil value; not well-defined, but we shouldn't crash - { - &pb.MessageWithMap{MsgMapping: map[int64]*pb.FloatingPoint{7: nil}}, - `msg_mapping:`, - }, - } - for _, test := range tests { - got := strings.TrimSpace(test.m.String()) - if got != test.want { - t.Errorf("\n got %s\nwant %s", got, test.want) - } - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protobuf/google/protobuf/compiler/plugin.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protobuf/google/protobuf/compiler/plugin.proto deleted file mode 100644 index 5116167e..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protobuf/google/protobuf/compiler/plugin.proto +++ /dev/null @@ -1,150 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ -// -// 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. - -// Author: kenton@google.com (Kenton Varda) -// -// WARNING: The plugin interface is currently EXPERIMENTAL and is subject to -// change. -// -// protoc (aka the Protocol Compiler) can be extended via plugins. A plugin is -// just a program that reads a CodeGeneratorRequest from stdin and writes a -// CodeGeneratorResponse to stdout. -// -// Plugins written using C++ can use google/protobuf/compiler/plugin.h instead -// of dealing with the raw protocol defined here. -// -// A plugin executable needs only to be placed somewhere in the path. The -// plugin should be named "protoc-gen-$NAME", and will then be used when the -// flag "--${NAME}_out" is passed to protoc. - -syntax = "proto2"; -package google.protobuf.compiler; -option java_package = "com.google.protobuf.compiler"; -option java_outer_classname = "PluginProtos"; - -option go_package = "plugin_go"; - -import "google/protobuf/descriptor.proto"; - -// An encoded CodeGeneratorRequest is written to the plugin's stdin. -message CodeGeneratorRequest { - // The .proto files that were explicitly listed on the command-line. The - // code generator should generate code only for these files. Each file's - // descriptor will be included in proto_file, below. - repeated string file_to_generate = 1; - - // The generator parameter passed on the command-line. - optional string parameter = 2; - - // FileDescriptorProtos for all files in files_to_generate and everything - // they import. The files will appear in topological order, so each file - // appears before any file that imports it. - // - // protoc guarantees that all proto_files will be written after - // the fields above, even though this is not technically guaranteed by the - // protobuf wire format. This theoretically could allow a plugin to stream - // in the FileDescriptorProtos and handle them one by one rather than read - // the entire set into memory at once. However, as of this writing, this - // is not similarly optimized on protoc's end -- it will store all fields in - // memory at once before sending them to the plugin. - repeated FileDescriptorProto proto_file = 15; -} - -// The plugin writes an encoded CodeGeneratorResponse to stdout. -message CodeGeneratorResponse { - // Error message. If non-empty, code generation failed. The plugin process - // should exit with status code zero even if it reports an error in this way. - // - // This should be used to indicate errors in .proto files which prevent the - // code generator from generating correct code. Errors which indicate a - // problem in protoc itself -- such as the input CodeGeneratorRequest being - // unparseable -- should be reported by writing a message to stderr and - // exiting with a non-zero status code. - optional string error = 1; - - // Represents a single generated file. - message File { - // The file name, relative to the output directory. The name must not - // contain "." or ".." components and must be relative, not be absolute (so, - // the file cannot lie outside the output directory). "/" must be used as - // the path separator, not "\". - // - // If the name is omitted, the content will be appended to the previous - // file. This allows the generator to break large files into small chunks, - // and allows the generated text to be streamed back to protoc so that large - // files need not reside completely in memory at one time. Note that as of - // this writing protoc does not optimize for this -- it will read the entire - // CodeGeneratorResponse before writing files to disk. - optional string name = 1; - - // If non-empty, indicates that the named file should already exist, and the - // content here is to be inserted into that file at a defined insertion - // point. This feature allows a code generator to extend the output - // produced by another code generator. The original generator may provide - // insertion points by placing special annotations in the file that look - // like: - // @@protoc_insertion_point(NAME) - // The annotation can have arbitrary text before and after it on the line, - // which allows it to be placed in a comment. NAME should be replaced with - // an identifier naming the point -- this is what other generators will use - // as the insertion_point. Code inserted at this point will be placed - // immediately above the line containing the insertion point (thus multiple - // insertions to the same point will come out in the order they were added). - // The double-@ is intended to make it unlikely that the generated code - // could contain things that look like insertion points by accident. - // - // For example, the C++ code generator places the following line in the - // .pb.h files that it generates: - // // @@protoc_insertion_point(namespace_scope) - // This line appears within the scope of the file's package namespace, but - // outside of any particular class. Another plugin can then specify the - // insertion_point "namespace_scope" to generate additional classes or - // other declarations that should be placed in this scope. - // - // Note that if the line containing the insertion point begins with - // whitespace, the same whitespace will be added to every line of the - // inserted text. This is useful for languages like Python, where - // indentation matters. In these languages, the insertion point comment - // should be indented the same amount as any inserted code will need to be - // in order to work correctly in that context. - // - // The code generator that generates the initial file and the one which - // inserts into it must both run as part of a single invocation of protoc. - // Code generators are executed in the order in which they appear on the - // command line. - // - // If |insertion_point| is present, |name| must also be present. - optional string insertion_point = 2; - - // The file contents. - optional string content = 15; - } - repeated File file = 15; -} \ No newline at end of file diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protobuf/google/protobuf/descriptor.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protobuf/google/protobuf/descriptor.proto deleted file mode 100644 index 14594a8c..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protobuf/google/protobuf/descriptor.proto +++ /dev/null @@ -1,779 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ -// -// 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. - -// Author: kenton@google.com (Kenton Varda) -// Based on original Protocol Buffers design by -// Sanjay Ghemawat, Jeff Dean, and others. -// -// The messages in this file describe the definitions found in .proto files. -// A valid .proto file can be translated directly to a FileDescriptorProto -// without any other information (e.g. without reading its imports). - - -syntax = "proto2"; - -package google.protobuf; -option go_package = "descriptor"; -option java_package = "com.google.protobuf"; -option java_outer_classname = "DescriptorProtos"; -option csharp_namespace = "Google.Protobuf.Reflection"; -option objc_class_prefix = "GPB"; - -// descriptor.proto must be optimized for speed because reflection-based -// algorithms don't work during bootstrapping. -option optimize_for = SPEED; - -// The protocol compiler can output a FileDescriptorSet containing the .proto -// files it parses. -message FileDescriptorSet { - repeated FileDescriptorProto file = 1; -} - -// Describes a complete .proto file. -message FileDescriptorProto { - optional string name = 1; // file name, relative to root of source tree - optional string package = 2; // e.g. "foo", "foo.bar", etc. - - // Names of files imported by this file. - repeated string dependency = 3; - // Indexes of the public imported files in the dependency list above. - repeated int32 public_dependency = 10; - // Indexes of the weak imported files in the dependency list. - // For Google-internal migration only. Do not use. - repeated int32 weak_dependency = 11; - - // All top-level definitions in this file. - repeated DescriptorProto message_type = 4; - repeated EnumDescriptorProto enum_type = 5; - repeated ServiceDescriptorProto service = 6; - repeated FieldDescriptorProto extension = 7; - - optional FileOptions options = 8; - - // This field contains optional information about the original source code. - // You may safely remove this entire field without harming runtime - // functionality of the descriptors -- the information is needed only by - // development tools. - optional SourceCodeInfo source_code_info = 9; - - // The syntax of the proto file. - // The supported values are "proto2" and "proto3". - optional string syntax = 12; -} - -// Describes a message type. -message DescriptorProto { - optional string name = 1; - - repeated FieldDescriptorProto field = 2; - repeated FieldDescriptorProto extension = 6; - - repeated DescriptorProto nested_type = 3; - repeated EnumDescriptorProto enum_type = 4; - - message ExtensionRange { - optional int32 start = 1; - optional int32 end = 2; - } - repeated ExtensionRange extension_range = 5; - - repeated OneofDescriptorProto oneof_decl = 8; - - optional MessageOptions options = 7; - - // Range of reserved tag numbers. Reserved tag numbers may not be used by - // fields or extension ranges in the same message. Reserved ranges may - // not overlap. - message ReservedRange { - optional int32 start = 1; // Inclusive. - optional int32 end = 2; // Exclusive. - } - repeated ReservedRange reserved_range = 9; - // Reserved field names, which may not be used by fields in the same message. - // A given name may only be reserved once. - repeated string reserved_name = 10; -} - -// Describes a field within a message. -message FieldDescriptorProto { - enum Type { - // 0 is reserved for errors. - // Order is weird for historical reasons. - TYPE_DOUBLE = 1; - TYPE_FLOAT = 2; - // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if - // negative values are likely. - TYPE_INT64 = 3; - TYPE_UINT64 = 4; - // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if - // negative values are likely. - TYPE_INT32 = 5; - TYPE_FIXED64 = 6; - TYPE_FIXED32 = 7; - TYPE_BOOL = 8; - TYPE_STRING = 9; - TYPE_GROUP = 10; // Tag-delimited aggregate. - TYPE_MESSAGE = 11; // Length-delimited aggregate. - - // New in version 2. - TYPE_BYTES = 12; - TYPE_UINT32 = 13; - TYPE_ENUM = 14; - TYPE_SFIXED32 = 15; - TYPE_SFIXED64 = 16; - TYPE_SINT32 = 17; // Uses ZigZag encoding. - TYPE_SINT64 = 18; // Uses ZigZag encoding. - }; - - enum Label { - // 0 is reserved for errors - LABEL_OPTIONAL = 1; - LABEL_REQUIRED = 2; - LABEL_REPEATED = 3; - // TODO(sanjay): Should we add LABEL_MAP? - }; - - optional string name = 1; - optional int32 number = 3; - optional Label label = 4; - - // If type_name is set, this need not be set. If both this and type_name - // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. - optional Type type = 5; - - // For message and enum types, this is the name of the type. If the name - // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping - // rules are used to find the type (i.e. first the nested types within this - // message are searched, then within the parent, on up to the root - // namespace). - optional string type_name = 6; - - // For extensions, this is the name of the type being extended. It is - // resolved in the same manner as type_name. - optional string extendee = 2; - - // For numeric types, contains the original text representation of the value. - // For booleans, "true" or "false". - // For strings, contains the default text contents (not escaped in any way). - // For bytes, contains the C escaped value. All bytes >= 128 are escaped. - // TODO(kenton): Base-64 encode? - optional string default_value = 7; - - // If set, gives the index of a oneof in the containing type's oneof_decl - // list. This field is a member of that oneof. - optional int32 oneof_index = 9; - - // JSON name of this field. The value is set by protocol compiler. If the - // user has set a "json_name" option on this field, that option's value - // will be used. Otherwise, it's deduced from the field's name by converting - // it to camelCase. - optional string json_name = 10; - - optional FieldOptions options = 8; -} - -// Describes a oneof. -message OneofDescriptorProto { - optional string name = 1; -} - -// Describes an enum type. -message EnumDescriptorProto { - optional string name = 1; - - repeated EnumValueDescriptorProto value = 2; - - optional EnumOptions options = 3; -} - -// Describes a value within an enum. -message EnumValueDescriptorProto { - optional string name = 1; - optional int32 number = 2; - - optional EnumValueOptions options = 3; -} - -// Describes a service. -message ServiceDescriptorProto { - optional string name = 1; - repeated MethodDescriptorProto method = 2; - - optional ServiceOptions options = 3; -} - -// Describes a method of a service. -message MethodDescriptorProto { - optional string name = 1; - - // Input and output type names. These are resolved in the same way as - // FieldDescriptorProto.type_name, but must refer to a message type. - optional string input_type = 2; - optional string output_type = 3; - - optional MethodOptions options = 4; - - // Identifies if client streams multiple client messages - optional bool client_streaming = 5 [default=false]; - // Identifies if server streams multiple server messages - optional bool server_streaming = 6 [default=false]; -} - - -// =================================================================== -// Options - -// Each of the definitions above may have "options" attached. These are -// just annotations which may cause code to be generated slightly differently -// or may contain hints for code that manipulates protocol messages. -// -// Clients may define custom options as extensions of the *Options messages. -// These extensions may not yet be known at parsing time, so the parser cannot -// store the values in them. Instead it stores them in a field in the *Options -// message called uninterpreted_option. This field must have the same name -// across all *Options messages. We then use this field to populate the -// extensions when we build a descriptor, at which point all protos have been -// parsed and so all extensions are known. -// -// Extension numbers for custom options may be chosen as follows: -// * For options which will only be used within a single application or -// organization, or for experimental options, use field numbers 50000 -// through 99999. It is up to you to ensure that you do not use the -// same number for multiple options. -// * For options which will be published and used publicly by multiple -// independent entities, e-mail protobuf-global-extension-registry@google.com -// to reserve extension numbers. Simply provide your project name (e.g. -// Objective-C plugin) and your project website (if available) -- there's no -// need to explain how you intend to use them. Usually you only need one -// extension number. You can declare multiple options with only one extension -// number by putting them in a sub-message. See the Custom Options section of -// the docs for examples: -// https://developers.google.com/protocol-buffers/docs/proto#options -// If this turns out to be popular, a web service will be set up -// to automatically assign option numbers. - - -message FileOptions { - - // Sets the Java package where classes generated from this .proto will be - // placed. By default, the proto package is used, but this is often - // inappropriate because proto packages do not normally start with backwards - // domain names. - optional string java_package = 1; - - - // If set, all the classes from the .proto file are wrapped in a single - // outer class with the given name. This applies to both Proto1 - // (equivalent to the old "--one_java_file" option) and Proto2 (where - // a .proto always translates to a single class, but you may want to - // explicitly choose the class name). - optional string java_outer_classname = 8; - - // If set true, then the Java code generator will generate a separate .java - // file for each top-level message, enum, and service defined in the .proto - // file. Thus, these types will *not* be nested inside the outer class - // named by java_outer_classname. However, the outer class will still be - // generated to contain the file's getDescriptor() method as well as any - // top-level extensions defined in the file. - optional bool java_multiple_files = 10 [default=false]; - - // If set true, then the Java code generator will generate equals() and - // hashCode() methods for all messages defined in the .proto file. - // This increases generated code size, potentially substantially for large - // protos, which may harm a memory-constrained application. - // - In the full runtime this is a speed optimization, as the - // AbstractMessage base class includes reflection-based implementations of - // these methods. - // - In the lite runtime, setting this option changes the semantics of - // equals() and hashCode() to more closely match those of the full runtime; - // the generated methods compute their results based on field values rather - // than object identity. (Implementations should not assume that hashcodes - // will be consistent across runtimes or versions of the protocol compiler.) - optional bool java_generate_equals_and_hash = 20 [default=false]; - - // If set true, then the Java2 code generator will generate code that - // throws an exception whenever an attempt is made to assign a non-UTF-8 - // byte sequence to a string field. - // Message reflection will do the same. - // However, an extension field still accepts non-UTF-8 byte sequences. - // This option has no effect on when used with the lite runtime. - optional bool java_string_check_utf8 = 27 [default=false]; - - - // Generated classes can be optimized for speed or code size. - enum OptimizeMode { - SPEED = 1; // Generate complete code for parsing, serialization, - // etc. - CODE_SIZE = 2; // Use ReflectionOps to implement these methods. - LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. - } - optional OptimizeMode optimize_for = 9 [default=SPEED]; - - // Sets the Go package where structs generated from this .proto will be - // placed. If omitted, the Go package will be derived from the following: - // - The basename of the package import path, if provided. - // - Otherwise, the package statement in the .proto file, if present. - // - Otherwise, the basename of the .proto file, without extension. - optional string go_package = 11; - - - - // Should generic services be generated in each language? "Generic" services - // are not specific to any particular RPC system. They are generated by the - // main code generators in each language (without additional plugins). - // Generic services were the only kind of service generation supported by - // early versions of google.protobuf. - // - // Generic services are now considered deprecated in favor of using plugins - // that generate code specific to your particular RPC system. Therefore, - // these default to false. Old code which depends on generic services should - // explicitly set them to true. - optional bool cc_generic_services = 16 [default=false]; - optional bool java_generic_services = 17 [default=false]; - optional bool py_generic_services = 18 [default=false]; - - // Is this file deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for everything in the file, or it will be completely ignored; in the very - // least, this is a formalization for deprecating files. - optional bool deprecated = 23 [default=false]; - - // Enables the use of arenas for the proto messages in this file. This applies - // only to generated classes for C++. - optional bool cc_enable_arenas = 31 [default=false]; - - - // Sets the objective c class prefix which is prepended to all objective c - // generated classes from this .proto. There is no default. - optional string objc_class_prefix = 36; - - // Namespace for generated classes; defaults to the package. - optional string csharp_namespace = 37; - - // Whether the nano proto compiler should generate in the deprecated non-nano - // suffixed package. - optional bool javanano_use_deprecated_package = 38; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message MessageOptions { - // Set true to use the old proto1 MessageSet wire format for extensions. - // This is provided for backwards-compatibility with the MessageSet wire - // format. You should not use this for any other reason: It's less - // efficient, has fewer features, and is more complicated. - // - // The message must be defined exactly as follows: - // message Foo { - // option message_set_wire_format = true; - // extensions 4 to max; - // } - // Note that the message cannot have any defined fields; MessageSets only - // have extensions. - // - // All extensions of your type must be singular messages; e.g. they cannot - // be int32s, enums, or repeated messages. - // - // Because this is an option, the above two restrictions are not enforced by - // the protocol compiler. - optional bool message_set_wire_format = 1 [default=false]; - - // Disables the generation of the standard "descriptor()" accessor, which can - // conflict with a field of the same name. This is meant to make migration - // from proto1 easier; new code should avoid fields named "descriptor". - optional bool no_standard_descriptor_accessor = 2 [default=false]; - - // Is this message deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the message, or it will be completely ignored; in the very least, - // this is a formalization for deprecating messages. - optional bool deprecated = 3 [default=false]; - - // Whether the message is an automatically generated map entry type for the - // maps field. - // - // For maps fields: - // map map_field = 1; - // The parsed descriptor looks like: - // message MapFieldEntry { - // option map_entry = true; - // optional KeyType key = 1; - // optional ValueType value = 2; - // } - // repeated MapFieldEntry map_field = 1; - // - // Implementations may choose not to generate the map_entry=true message, but - // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementions still need to work as - // if the field is a repeated message field. - // - // NOTE: Do not set the option in .proto files. Always use the maps syntax - // instead. The option should only be implicitly set by the proto compiler - // parser. - optional bool map_entry = 7; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message FieldOptions { - // The ctype option instructs the C++ code generator to use a different - // representation of the field than it normally would. See the specific - // options below. This option is not yet implemented in the open source - // release -- sorry, we'll try to include it in a future version! - optional CType ctype = 1 [default = STRING]; - enum CType { - // Default mode. - STRING = 0; - - CORD = 1; - - STRING_PIECE = 2; - } - // The packed option can be enabled for repeated primitive fields to enable - // a more efficient representation on the wire. Rather than repeatedly - // writing the tag and type for each element, the entire array is encoded as - // a single length-delimited blob. In proto3, only explicit setting it to - // false will avoid using packed encoding. - optional bool packed = 2; - - - // The jstype option determines the JavaScript type used for values of the - // field. The option is permitted only for 64 bit integral and fixed types - // (int64, uint64, sint64, fixed64, sfixed64). By default these types are - // represented as JavaScript strings. This avoids loss of precision that can - // happen when a large value is converted to a floating point JavaScript - // numbers. Specifying JS_NUMBER for the jstype causes the generated - // JavaScript code to use the JavaScript "number" type instead of strings. - // This option is an enum to permit additional types to be added, - // e.g. goog.math.Integer. - optional JSType jstype = 6 [default = JS_NORMAL]; - enum JSType { - // Use the default type. - JS_NORMAL = 0; - - // Use JavaScript strings. - JS_STRING = 1; - - // Use JavaScript numbers. - JS_NUMBER = 2; - } - - // Should this field be parsed lazily? Lazy applies only to message-type - // fields. It means that when the outer message is initially parsed, the - // inner message's contents will not be parsed but instead stored in encoded - // form. The inner message will actually be parsed when it is first accessed. - // - // This is only a hint. Implementations are free to choose whether to use - // eager or lazy parsing regardless of the value of this option. However, - // setting this option true suggests that the protocol author believes that - // using lazy parsing on this field is worth the additional bookkeeping - // overhead typically needed to implement it. - // - // This option does not affect the public interface of any generated code; - // all method signatures remain the same. Furthermore, thread-safety of the - // interface is not affected by this option; const methods remain safe to - // call from multiple threads concurrently, while non-const methods continue - // to require exclusive access. - // - // - // Note that implementations may choose not to check required fields within - // a lazy sub-message. That is, calling IsInitialized() on the outher message - // may return true even if the inner message has missing required fields. - // This is necessary because otherwise the inner message would have to be - // parsed in order to perform the check, defeating the purpose of lazy - // parsing. An implementation which chooses not to check required fields - // must be consistent about it. That is, for any particular sub-message, the - // implementation must either *always* check its required fields, or *never* - // check its required fields, regardless of whether or not the message has - // been parsed. - optional bool lazy = 5 [default=false]; - - // Is this field deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for accessors, or it will be completely ignored; in the very least, this - // is a formalization for deprecating fields. - optional bool deprecated = 3 [default=false]; - - // For Google-internal migration only. Do not use. - optional bool weak = 10 [default=false]; - - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message EnumOptions { - - // Set this option to true to allow mapping different tag names to the same - // value. - optional bool allow_alias = 2; - - // Is this enum deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the enum, or it will be completely ignored; in the very least, this - // is a formalization for deprecating enums. - optional bool deprecated = 3 [default=false]; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message EnumValueOptions { - // Is this enum value deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the enum value, or it will be completely ignored; in the very least, - // this is a formalization for deprecating enum values. - optional bool deprecated = 1 [default=false]; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message ServiceOptions { - - // Note: Field numbers 1 through 32 are reserved for Google's internal RPC - // framework. We apologize for hoarding these numbers to ourselves, but - // we were already using them long before we decided to release Protocol - // Buffers. - - // Is this service deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the service, or it will be completely ignored; in the very least, - // this is a formalization for deprecating services. - optional bool deprecated = 33 [default=false]; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message MethodOptions { - - // Note: Field numbers 1 through 32 are reserved for Google's internal RPC - // framework. We apologize for hoarding these numbers to ourselves, but - // we were already using them long before we decided to release Protocol - // Buffers. - - // Is this method deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the method, or it will be completely ignored; in the very least, - // this is a formalization for deprecating methods. - optional bool deprecated = 33 [default=false]; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - - -// A message representing a option the parser does not recognize. This only -// appears in options protos created by the compiler::Parser class. -// DescriptorPool resolves these when building Descriptor objects. Therefore, -// options protos in descriptor objects (e.g. returned by Descriptor::options(), -// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions -// in them. -message UninterpretedOption { - // The name of the uninterpreted option. Each string represents a segment in - // a dot-separated name. is_extension is true iff a segment represents an - // extension (denoted with parentheses in options specs in .proto files). - // E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents - // "foo.(bar.baz).qux". - message NamePart { - required string name_part = 1; - required bool is_extension = 2; - } - repeated NamePart name = 2; - - // The value of the uninterpreted option, in whatever type the tokenizer - // identified it as during parsing. Exactly one of these should be set. - optional string identifier_value = 3; - optional uint64 positive_int_value = 4; - optional int64 negative_int_value = 5; - optional double double_value = 6; - optional bytes string_value = 7; - optional string aggregate_value = 8; -} - -// =================================================================== -// Optional source code info - -// Encapsulates information about the original source file from which a -// FileDescriptorProto was generated. -message SourceCodeInfo { - // A Location identifies a piece of source code in a .proto file which - // corresponds to a particular definition. This information is intended - // to be useful to IDEs, code indexers, documentation generators, and similar - // tools. - // - // For example, say we have a file like: - // message Foo { - // optional string foo = 1; - // } - // Let's look at just the field definition: - // optional string foo = 1; - // ^ ^^ ^^ ^ ^^^ - // a bc de f ghi - // We have the following locations: - // span path represents - // [a,i) [ 4, 0, 2, 0 ] The whole field definition. - // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). - // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). - // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). - // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). - // - // Notes: - // - A location may refer to a repeated field itself (i.e. not to any - // particular index within it). This is used whenever a set of elements are - // logically enclosed in a single code segment. For example, an entire - // extend block (possibly containing multiple extension definitions) will - // have an outer location whose path refers to the "extensions" repeated - // field without an index. - // - Multiple locations may have the same path. This happens when a single - // logical declaration is spread out across multiple places. The most - // obvious example is the "extend" block again -- there may be multiple - // extend blocks in the same scope, each of which will have the same path. - // - A location's span is not always a subset of its parent's span. For - // example, the "extendee" of an extension declaration appears at the - // beginning of the "extend" block and is shared by all extensions within - // the block. - // - Just because a location's span is a subset of some other location's span - // does not mean that it is a descendent. For example, a "group" defines - // both a type and a field in a single declaration. Thus, the locations - // corresponding to the type and field and their components will overlap. - // - Code which tries to interpret locations should probably be designed to - // ignore those that it doesn't understand, as more types of locations could - // be recorded in the future. - repeated Location location = 1; - message Location { - // Identifies which part of the FileDescriptorProto was defined at this - // location. - // - // Each element is a field number or an index. They form a path from - // the root FileDescriptorProto to the place where the definition. For - // example, this path: - // [ 4, 3, 2, 7, 1 ] - // refers to: - // file.message_type(3) // 4, 3 - // .field(7) // 2, 7 - // .name() // 1 - // This is because FileDescriptorProto.message_type has field number 4: - // repeated DescriptorProto message_type = 4; - // and DescriptorProto.field has field number 2: - // repeated FieldDescriptorProto field = 2; - // and FieldDescriptorProto.name has field number 1: - // optional string name = 1; - // - // Thus, the above path gives the location of a field name. If we removed - // the last element: - // [ 4, 3, 2, 7 ] - // this path refers to the whole field declaration (from the beginning - // of the label to the terminating semicolon). - repeated int32 path = 1 [packed=true]; - - // Always has exactly three or four elements: start line, start column, - // end line (optional, otherwise assumed same as start line), end column. - // These are packed into a single field for efficiency. Note that line - // and column numbers are zero-based -- typically you will want to add - // 1 to each before displaying to a user. - repeated int32 span = 2 [packed=true]; - - // If this SourceCodeInfo represents a complete declaration, these are any - // comments appearing before and after the declaration which appear to be - // attached to the declaration. - // - // A series of line comments appearing on consecutive lines, with no other - // tokens appearing on those lines, will be treated as a single comment. - // - // leading_detached_comments will keep paragraphs of comments that appear - // before (but not connected to) the current element. Each paragraph, - // separated by empty lines, will be one comment element in the repeated - // field. - // - // Only the comment content is provided; comment markers (e.g. //) are - // stripped out. For block comments, leading whitespace and an asterisk - // will be stripped from the beginning of each line other than the first. - // Newlines are included in the output. - // - // Examples: - // - // optional int32 foo = 1; // Comment attached to foo. - // // Comment attached to bar. - // optional int32 bar = 2; - // - // optional string baz = 3; - // // Comment attached to baz. - // // Another line attached to baz. - // - // // Comment attached to qux. - // // - // // Another line attached to qux. - // optional double qux = 4; - // - // // Detached comment for corge. This is not leading or trailing comments - // // to qux or corge because there are blank lines separating it from - // // both. - // - // // Detached comment for corge paragraph 2. - // - // optional string corge = 5; - // /* Block comment attached - // * to corge. Leading asterisks - // * will be removed. */ - // /* Block comment attached to - // * grault. */ - // optional int32 grault = 6; - // - // // ignored detached comments. - optional string leading_comments = 3; - optional string trailing_comments = 4; - repeated string leading_detached_comments = 6; - } -} \ No newline at end of file diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-combo/combo.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-combo/combo.go deleted file mode 100644 index c99aa7c3..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-combo/combo.go +++ /dev/null @@ -1,172 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package main - -import ( - "bufio" - "bytes" - "flag" - "fmt" - "io/ioutil" - "os" - "os/exec" - "path/filepath" - "strings" - - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/version" -) - -type MixMatch struct { - Old []string - Filename string - Args []string - Plugins string -} - -func (this MixMatch) Gen(folder string, news []string) { - if err := os.MkdirAll(folder, 0777); err != nil { - panic(err) - } - data, err := ioutil.ReadFile(this.Filename) - if err != nil { - panic(err) - } - content := string(data) - for i, old := range this.Old { - if !strings.Contains(content, old) { - panic(fmt.Errorf("could not find string {%s} to replace with {%s}", old, news[i])) - } - content = strings.Replace(content, old, news[i], 1) - if strings.Contains(content, old) && old != news[i] { - panic(fmt.Errorf("found another string {%s} after it was replaced with {%s}", old, news[i])) - } - } - if err := ioutil.WriteFile(filepath.Join(folder, this.Filename), []byte(content), 0666); err != nil { - panic(err) - } - args := append([]string{"--gogo_out=" + this.Plugins + "."}, this.Args...) - args = append(args, filepath.Join(folder, this.Filename)) - var regenerate = exec.Command("protoc", args...) - out, err := regenerate.CombinedOutput() - - failed := false - scanner := bufio.NewScanner(bytes.NewReader(out)) - for scanner.Scan() { - text := scanner.Text() - fmt.Println("protoc-gen-combo: ", text) - if !strings.Contains(text, "WARNING") { - failed = true - } - } - - if err != nil { - fmt.Print("protoc-gen-combo: error: ", err) - failed = true - } - - if failed { - os.Exit(1) - } -} - -var min = flag.String("version", "2.3.0", "minimum protoc version") -var proto_path = flag.String("proto_path", ".", "") -var def = flag.Bool("default", true, "generate the case where everything is false") -var plugins = flag.String("plugins", "", "--gogo_out=plugins=:.") - -func main() { - flag.Parse() - if !version.AtLeast(*min) { - fmt.Printf("protoc version not high enough to parse this proto file\n") - return - } - args := flag.Args() - filename := args[0] - args = append([]string{"--proto_path=" + *proto_path}) - if _, err := exec.LookPath("protoc"); err != nil { - panic("cannot find protoc in PATH") - } - pluginStr := "" - if len(*plugins) > 0 { - pluginStr = "plugins=" + *plugins + ":" - } - m := MixMatch{ - Old: []string{ - "option (gogoproto.unmarshaler_all) = false;", - "option (gogoproto.marshaler_all) = false;", - "option (gogoproto.unsafe_unmarshaler_all) = false;", - "option (gogoproto.unsafe_marshaler_all) = false;", - }, - Filename: filename, - Args: args, - Plugins: pluginStr, - } - if *def { - m.Gen("./combos/neither/", []string{ - "option (gogoproto.unmarshaler_all) = false;", - "option (gogoproto.marshaler_all) = false;", - "option (gogoproto.unsafe_unmarshaler_all) = false;", - "option (gogoproto.unsafe_marshaler_all) = false;", - }) - } - m.Gen("./combos/marshaler/", []string{ - "option (gogoproto.unmarshaler_all) = false;", - "option (gogoproto.marshaler_all) = true;", - "option (gogoproto.unsafe_unmarshaler_all) = false;", - "option (gogoproto.unsafe_marshaler_all) = false;", - }) - m.Gen("./combos/unmarshaler/", []string{ - "option (gogoproto.unmarshaler_all) = true;", - "option (gogoproto.marshaler_all) = false;", - "option (gogoproto.unsafe_unmarshaler_all) = false;", - "option (gogoproto.unsafe_marshaler_all) = false;", - }) - m.Gen("./combos/both/", []string{ - "option (gogoproto.unmarshaler_all) = true;", - "option (gogoproto.marshaler_all) = true;", - "option (gogoproto.unsafe_unmarshaler_all) = false;", - "option (gogoproto.unsafe_marshaler_all) = false;", - }) - m.Gen("./combos/unsafemarshaler/", []string{ - "option (gogoproto.unmarshaler_all) = false;", - "option (gogoproto.marshaler_all) = false;", - "option (gogoproto.unsafe_unmarshaler_all) = false;", - "option (gogoproto.unsafe_marshaler_all) = true;", - }) - m.Gen("./combos/unsafeunmarshaler/", []string{ - "option (gogoproto.unmarshaler_all) = false;", - "option (gogoproto.marshaler_all) = false;", - "option (gogoproto.unsafe_unmarshaler_all) = true;", - "option (gogoproto.unsafe_marshaler_all) = false;", - }) - m.Gen("./combos/unsafeboth/", []string{ - "option (gogoproto.unmarshaler_all) = false;", - "option (gogoproto.marshaler_all) = false;", - "option (gogoproto.unsafe_unmarshaler_all) = true;", - "option (gogoproto.unsafe_marshaler_all) = true;", - }) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gofast/main.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gofast/main.go deleted file mode 100644 index 50cd6368..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gofast/main.go +++ /dev/null @@ -1,48 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package main - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/command" -) - -func main() { - req := command.Read() - files := req.GetProtoFile() - - vanity.ForEachFile(files, vanity.TurnOffGogoImport) - - vanity.ForEachFile(files, vanity.TurnOnMarshalerAll) - vanity.ForEachFile(files, vanity.TurnOnSizerAll) - vanity.ForEachFile(files, vanity.TurnOnUnmarshalerAll) - - resp := command.Generate(req) - command.Write(resp) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/Makefile b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/Makefile deleted file mode 100644 index a42cc371..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -# Go support for Protocol Buffers - Google's data interchange format -# -# Copyright 2010 The Go Authors. All rights reserved. -# https://github.com/golang/protobuf -# -# 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. - -test: - cd testdata && make test diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/Makefile b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/Makefile deleted file mode 100644 index d80ceffe..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -# Go support for Protocol Buffers - Google's data interchange format -# -# Copyright 2010 The Go Authors. All rights reserved. -# https://github.com/golang/protobuf -# -# 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. - -regenerate: - protoc --gogo_out=. -I=../../protobuf/google/protobuf ../../protobuf/google/protobuf/descriptor.proto diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go deleted file mode 100644 index ca402e65..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go +++ /dev/null @@ -1,1825 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: descriptor.proto -// DO NOT EDIT! - -/* -Package descriptor is a generated protocol buffer package. - -It is generated from these files: - descriptor.proto - -It has these top-level messages: - FileDescriptorSet - FileDescriptorProto - DescriptorProto - FieldDescriptorProto - OneofDescriptorProto - EnumDescriptorProto - EnumValueDescriptorProto - ServiceDescriptorProto - MethodDescriptorProto - FileOptions - MessageOptions - FieldOptions - EnumOptions - EnumValueOptions - ServiceOptions - MethodOptions - UninterpretedOption - SourceCodeInfo -*/ -package descriptor - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type FieldDescriptorProto_Type int32 - -const ( - // 0 is reserved for errors. - // Order is weird for historical reasons. - FieldDescriptorProto_TYPE_DOUBLE FieldDescriptorProto_Type = 1 - FieldDescriptorProto_TYPE_FLOAT FieldDescriptorProto_Type = 2 - // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if - // negative values are likely. - FieldDescriptorProto_TYPE_INT64 FieldDescriptorProto_Type = 3 - FieldDescriptorProto_TYPE_UINT64 FieldDescriptorProto_Type = 4 - // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if - // negative values are likely. - FieldDescriptorProto_TYPE_INT32 FieldDescriptorProto_Type = 5 - FieldDescriptorProto_TYPE_FIXED64 FieldDescriptorProto_Type = 6 - FieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7 - FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 - FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 - FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 - FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 - // New in version 2. - FieldDescriptorProto_TYPE_BYTES FieldDescriptorProto_Type = 12 - FieldDescriptorProto_TYPE_UINT32 FieldDescriptorProto_Type = 13 - FieldDescriptorProto_TYPE_ENUM FieldDescriptorProto_Type = 14 - FieldDescriptorProto_TYPE_SFIXED32 FieldDescriptorProto_Type = 15 - FieldDescriptorProto_TYPE_SFIXED64 FieldDescriptorProto_Type = 16 - FieldDescriptorProto_TYPE_SINT32 FieldDescriptorProto_Type = 17 - FieldDescriptorProto_TYPE_SINT64 FieldDescriptorProto_Type = 18 -) - -var FieldDescriptorProto_Type_name = map[int32]string{ - 1: "TYPE_DOUBLE", - 2: "TYPE_FLOAT", - 3: "TYPE_INT64", - 4: "TYPE_UINT64", - 5: "TYPE_INT32", - 6: "TYPE_FIXED64", - 7: "TYPE_FIXED32", - 8: "TYPE_BOOL", - 9: "TYPE_STRING", - 10: "TYPE_GROUP", - 11: "TYPE_MESSAGE", - 12: "TYPE_BYTES", - 13: "TYPE_UINT32", - 14: "TYPE_ENUM", - 15: "TYPE_SFIXED32", - 16: "TYPE_SFIXED64", - 17: "TYPE_SINT32", - 18: "TYPE_SINT64", -} -var FieldDescriptorProto_Type_value = map[string]int32{ - "TYPE_DOUBLE": 1, - "TYPE_FLOAT": 2, - "TYPE_INT64": 3, - "TYPE_UINT64": 4, - "TYPE_INT32": 5, - "TYPE_FIXED64": 6, - "TYPE_FIXED32": 7, - "TYPE_BOOL": 8, - "TYPE_STRING": 9, - "TYPE_GROUP": 10, - "TYPE_MESSAGE": 11, - "TYPE_BYTES": 12, - "TYPE_UINT32": 13, - "TYPE_ENUM": 14, - "TYPE_SFIXED32": 15, - "TYPE_SFIXED64": 16, - "TYPE_SINT32": 17, - "TYPE_SINT64": 18, -} - -func (x FieldDescriptorProto_Type) Enum() *FieldDescriptorProto_Type { - p := new(FieldDescriptorProto_Type) - *p = x - return p -} -func (x FieldDescriptorProto_Type) String() string { - return proto.EnumName(FieldDescriptorProto_Type_name, int32(x)) -} -func (x *FieldDescriptorProto_Type) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Type_value, data, "FieldDescriptorProto_Type") - if err != nil { - return err - } - *x = FieldDescriptorProto_Type(value) - return nil -} - -type FieldDescriptorProto_Label int32 - -const ( - // 0 is reserved for errors - FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1 - FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 - FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3 -) - -var FieldDescriptorProto_Label_name = map[int32]string{ - 1: "LABEL_OPTIONAL", - 2: "LABEL_REQUIRED", - 3: "LABEL_REPEATED", -} -var FieldDescriptorProto_Label_value = map[string]int32{ - "LABEL_OPTIONAL": 1, - "LABEL_REQUIRED": 2, - "LABEL_REPEATED": 3, -} - -func (x FieldDescriptorProto_Label) Enum() *FieldDescriptorProto_Label { - p := new(FieldDescriptorProto_Label) - *p = x - return p -} -func (x FieldDescriptorProto_Label) String() string { - return proto.EnumName(FieldDescriptorProto_Label_name, int32(x)) -} -func (x *FieldDescriptorProto_Label) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Label_value, data, "FieldDescriptorProto_Label") - if err != nil { - return err - } - *x = FieldDescriptorProto_Label(value) - return nil -} - -// Generated classes can be optimized for speed or code size. -type FileOptions_OptimizeMode int32 - -const ( - FileOptions_SPEED FileOptions_OptimizeMode = 1 - // etc. - FileOptions_CODE_SIZE FileOptions_OptimizeMode = 2 - FileOptions_LITE_RUNTIME FileOptions_OptimizeMode = 3 -) - -var FileOptions_OptimizeMode_name = map[int32]string{ - 1: "SPEED", - 2: "CODE_SIZE", - 3: "LITE_RUNTIME", -} -var FileOptions_OptimizeMode_value = map[string]int32{ - "SPEED": 1, - "CODE_SIZE": 2, - "LITE_RUNTIME": 3, -} - -func (x FileOptions_OptimizeMode) Enum() *FileOptions_OptimizeMode { - p := new(FileOptions_OptimizeMode) - *p = x - return p -} -func (x FileOptions_OptimizeMode) String() string { - return proto.EnumName(FileOptions_OptimizeMode_name, int32(x)) -} -func (x *FileOptions_OptimizeMode) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(FileOptions_OptimizeMode_value, data, "FileOptions_OptimizeMode") - if err != nil { - return err - } - *x = FileOptions_OptimizeMode(value) - return nil -} - -type FieldOptions_CType int32 - -const ( - // Default mode. - FieldOptions_STRING FieldOptions_CType = 0 - FieldOptions_CORD FieldOptions_CType = 1 - FieldOptions_STRING_PIECE FieldOptions_CType = 2 -) - -var FieldOptions_CType_name = map[int32]string{ - 0: "STRING", - 1: "CORD", - 2: "STRING_PIECE", -} -var FieldOptions_CType_value = map[string]int32{ - "STRING": 0, - "CORD": 1, - "STRING_PIECE": 2, -} - -func (x FieldOptions_CType) Enum() *FieldOptions_CType { - p := new(FieldOptions_CType) - *p = x - return p -} -func (x FieldOptions_CType) String() string { - return proto.EnumName(FieldOptions_CType_name, int32(x)) -} -func (x *FieldOptions_CType) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(FieldOptions_CType_value, data, "FieldOptions_CType") - if err != nil { - return err - } - *x = FieldOptions_CType(value) - return nil -} - -type FieldOptions_JSType int32 - -const ( - // Use the default type. - FieldOptions_JS_NORMAL FieldOptions_JSType = 0 - // Use JavaScript strings. - FieldOptions_JS_STRING FieldOptions_JSType = 1 - // Use JavaScript numbers. - FieldOptions_JS_NUMBER FieldOptions_JSType = 2 -) - -var FieldOptions_JSType_name = map[int32]string{ - 0: "JS_NORMAL", - 1: "JS_STRING", - 2: "JS_NUMBER", -} -var FieldOptions_JSType_value = map[string]int32{ - "JS_NORMAL": 0, - "JS_STRING": 1, - "JS_NUMBER": 2, -} - -func (x FieldOptions_JSType) Enum() *FieldOptions_JSType { - p := new(FieldOptions_JSType) - *p = x - return p -} -func (x FieldOptions_JSType) String() string { - return proto.EnumName(FieldOptions_JSType_name, int32(x)) -} -func (x *FieldOptions_JSType) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(FieldOptions_JSType_value, data, "FieldOptions_JSType") - if err != nil { - return err - } - *x = FieldOptions_JSType(value) - return nil -} - -// The protocol compiler can output a FileDescriptorSet containing the .proto -// files it parses. -type FileDescriptorSet struct { - File []*FileDescriptorProto `protobuf:"bytes,1,rep,name=file" json:"file,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *FileDescriptorSet) Reset() { *m = FileDescriptorSet{} } -func (m *FileDescriptorSet) String() string { return proto.CompactTextString(m) } -func (*FileDescriptorSet) ProtoMessage() {} - -func (m *FileDescriptorSet) GetFile() []*FileDescriptorProto { - if m != nil { - return m.File - } - return nil -} - -// Describes a complete .proto file. -type FileDescriptorProto struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Package *string `protobuf:"bytes,2,opt,name=package" json:"package,omitempty"` - // Names of files imported by this file. - Dependency []string `protobuf:"bytes,3,rep,name=dependency" json:"dependency,omitempty"` - // Indexes of the public imported files in the dependency list above. - PublicDependency []int32 `protobuf:"varint,10,rep,name=public_dependency" json:"public_dependency,omitempty"` - // Indexes of the weak imported files in the dependency list. - // For Google-internal migration only. Do not use. - WeakDependency []int32 `protobuf:"varint,11,rep,name=weak_dependency" json:"weak_dependency,omitempty"` - // All top-level definitions in this file. - MessageType []*DescriptorProto `protobuf:"bytes,4,rep,name=message_type" json:"message_type,omitempty"` - EnumType []*EnumDescriptorProto `protobuf:"bytes,5,rep,name=enum_type" json:"enum_type,omitempty"` - Service []*ServiceDescriptorProto `protobuf:"bytes,6,rep,name=service" json:"service,omitempty"` - Extension []*FieldDescriptorProto `protobuf:"bytes,7,rep,name=extension" json:"extension,omitempty"` - Options *FileOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` - // This field contains optional information about the original source code. - // You may safely remove this entire field without harming runtime - // functionality of the descriptors -- the information is needed only by - // development tools. - SourceCodeInfo *SourceCodeInfo `protobuf:"bytes,9,opt,name=source_code_info" json:"source_code_info,omitempty"` - // The syntax of the proto file. - // The supported values are "proto2" and "proto3". - Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *FileDescriptorProto) Reset() { *m = FileDescriptorProto{} } -func (m *FileDescriptorProto) String() string { return proto.CompactTextString(m) } -func (*FileDescriptorProto) ProtoMessage() {} - -func (m *FileDescriptorProto) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *FileDescriptorProto) GetPackage() string { - if m != nil && m.Package != nil { - return *m.Package - } - return "" -} - -func (m *FileDescriptorProto) GetDependency() []string { - if m != nil { - return m.Dependency - } - return nil -} - -func (m *FileDescriptorProto) GetPublicDependency() []int32 { - if m != nil { - return m.PublicDependency - } - return nil -} - -func (m *FileDescriptorProto) GetWeakDependency() []int32 { - if m != nil { - return m.WeakDependency - } - return nil -} - -func (m *FileDescriptorProto) GetMessageType() []*DescriptorProto { - if m != nil { - return m.MessageType - } - return nil -} - -func (m *FileDescriptorProto) GetEnumType() []*EnumDescriptorProto { - if m != nil { - return m.EnumType - } - return nil -} - -func (m *FileDescriptorProto) GetService() []*ServiceDescriptorProto { - if m != nil { - return m.Service - } - return nil -} - -func (m *FileDescriptorProto) GetExtension() []*FieldDescriptorProto { - if m != nil { - return m.Extension - } - return nil -} - -func (m *FileDescriptorProto) GetOptions() *FileOptions { - if m != nil { - return m.Options - } - return nil -} - -func (m *FileDescriptorProto) GetSourceCodeInfo() *SourceCodeInfo { - if m != nil { - return m.SourceCodeInfo - } - return nil -} - -func (m *FileDescriptorProto) GetSyntax() string { - if m != nil && m.Syntax != nil { - return *m.Syntax - } - return "" -} - -// Describes a message type. -type DescriptorProto struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Field []*FieldDescriptorProto `protobuf:"bytes,2,rep,name=field" json:"field,omitempty"` - Extension []*FieldDescriptorProto `protobuf:"bytes,6,rep,name=extension" json:"extension,omitempty"` - NestedType []*DescriptorProto `protobuf:"bytes,3,rep,name=nested_type" json:"nested_type,omitempty"` - EnumType []*EnumDescriptorProto `protobuf:"bytes,4,rep,name=enum_type" json:"enum_type,omitempty"` - ExtensionRange []*DescriptorProto_ExtensionRange `protobuf:"bytes,5,rep,name=extension_range" json:"extension_range,omitempty"` - OneofDecl []*OneofDescriptorProto `protobuf:"bytes,8,rep,name=oneof_decl" json:"oneof_decl,omitempty"` - Options *MessageOptions `protobuf:"bytes,7,opt,name=options" json:"options,omitempty"` - ReservedRange []*DescriptorProto_ReservedRange `protobuf:"bytes,9,rep,name=reserved_range" json:"reserved_range,omitempty"` - // Reserved field names, which may not be used by fields in the same message. - // A given name may only be reserved once. - ReservedName []string `protobuf:"bytes,10,rep,name=reserved_name" json:"reserved_name,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *DescriptorProto) Reset() { *m = DescriptorProto{} } -func (m *DescriptorProto) String() string { return proto.CompactTextString(m) } -func (*DescriptorProto) ProtoMessage() {} - -func (m *DescriptorProto) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *DescriptorProto) GetField() []*FieldDescriptorProto { - if m != nil { - return m.Field - } - return nil -} - -func (m *DescriptorProto) GetExtension() []*FieldDescriptorProto { - if m != nil { - return m.Extension - } - return nil -} - -func (m *DescriptorProto) GetNestedType() []*DescriptorProto { - if m != nil { - return m.NestedType - } - return nil -} - -func (m *DescriptorProto) GetEnumType() []*EnumDescriptorProto { - if m != nil { - return m.EnumType - } - return nil -} - -func (m *DescriptorProto) GetExtensionRange() []*DescriptorProto_ExtensionRange { - if m != nil { - return m.ExtensionRange - } - return nil -} - -func (m *DescriptorProto) GetOneofDecl() []*OneofDescriptorProto { - if m != nil { - return m.OneofDecl - } - return nil -} - -func (m *DescriptorProto) GetOptions() *MessageOptions { - if m != nil { - return m.Options - } - return nil -} - -func (m *DescriptorProto) GetReservedRange() []*DescriptorProto_ReservedRange { - if m != nil { - return m.ReservedRange - } - return nil -} - -func (m *DescriptorProto) GetReservedName() []string { - if m != nil { - return m.ReservedName - } - return nil -} - -type DescriptorProto_ExtensionRange struct { - Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` - End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *DescriptorProto_ExtensionRange) Reset() { *m = DescriptorProto_ExtensionRange{} } -func (m *DescriptorProto_ExtensionRange) String() string { return proto.CompactTextString(m) } -func (*DescriptorProto_ExtensionRange) ProtoMessage() {} - -func (m *DescriptorProto_ExtensionRange) GetStart() int32 { - if m != nil && m.Start != nil { - return *m.Start - } - return 0 -} - -func (m *DescriptorProto_ExtensionRange) GetEnd() int32 { - if m != nil && m.End != nil { - return *m.End - } - return 0 -} - -// Range of reserved tag numbers. Reserved tag numbers may not be used by -// fields or extension ranges in the same message. Reserved ranges may -// not overlap. -type DescriptorProto_ReservedRange struct { - Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` - End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *DescriptorProto_ReservedRange) Reset() { *m = DescriptorProto_ReservedRange{} } -func (m *DescriptorProto_ReservedRange) String() string { return proto.CompactTextString(m) } -func (*DescriptorProto_ReservedRange) ProtoMessage() {} - -func (m *DescriptorProto_ReservedRange) GetStart() int32 { - if m != nil && m.Start != nil { - return *m.Start - } - return 0 -} - -func (m *DescriptorProto_ReservedRange) GetEnd() int32 { - if m != nil && m.End != nil { - return *m.End - } - return 0 -} - -// Describes a field within a message. -type FieldDescriptorProto struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Number *int32 `protobuf:"varint,3,opt,name=number" json:"number,omitempty"` - Label *FieldDescriptorProto_Label `protobuf:"varint,4,opt,name=label,enum=google.protobuf.FieldDescriptorProto_Label" json:"label,omitempty"` - // If type_name is set, this need not be set. If both this and type_name - // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. - Type *FieldDescriptorProto_Type `protobuf:"varint,5,opt,name=type,enum=google.protobuf.FieldDescriptorProto_Type" json:"type,omitempty"` - // For message and enum types, this is the name of the type. If the name - // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping - // rules are used to find the type (i.e. first the nested types within this - // message are searched, then within the parent, on up to the root - // namespace). - TypeName *string `protobuf:"bytes,6,opt,name=type_name" json:"type_name,omitempty"` - // For extensions, this is the name of the type being extended. It is - // resolved in the same manner as type_name. - Extendee *string `protobuf:"bytes,2,opt,name=extendee" json:"extendee,omitempty"` - // For numeric types, contains the original text representation of the value. - // For booleans, "true" or "false". - // For strings, contains the default text contents (not escaped in any way). - // For bytes, contains the C escaped value. All bytes >= 128 are escaped. - // TODO(kenton): Base-64 encode? - DefaultValue *string `protobuf:"bytes,7,opt,name=default_value" json:"default_value,omitempty"` - // If set, gives the index of a oneof in the containing type's oneof_decl - // list. This field is a member of that oneof. - OneofIndex *int32 `protobuf:"varint,9,opt,name=oneof_index" json:"oneof_index,omitempty"` - // JSON name of this field. The value is set by protocol compiler. If the - // user has set a "json_name" option on this field, that option's value - // will be used. Otherwise, it's deduced from the field's name by converting - // it to camelCase. - JsonName *string `protobuf:"bytes,10,opt,name=json_name" json:"json_name,omitempty"` - Options *FieldOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *FieldDescriptorProto) Reset() { *m = FieldDescriptorProto{} } -func (m *FieldDescriptorProto) String() string { return proto.CompactTextString(m) } -func (*FieldDescriptorProto) ProtoMessage() {} - -func (m *FieldDescriptorProto) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *FieldDescriptorProto) GetNumber() int32 { - if m != nil && m.Number != nil { - return *m.Number - } - return 0 -} - -func (m *FieldDescriptorProto) GetLabel() FieldDescriptorProto_Label { - if m != nil && m.Label != nil { - return *m.Label - } - return FieldDescriptorProto_LABEL_OPTIONAL -} - -func (m *FieldDescriptorProto) GetType() FieldDescriptorProto_Type { - if m != nil && m.Type != nil { - return *m.Type - } - return FieldDescriptorProto_TYPE_DOUBLE -} - -func (m *FieldDescriptorProto) GetTypeName() string { - if m != nil && m.TypeName != nil { - return *m.TypeName - } - return "" -} - -func (m *FieldDescriptorProto) GetExtendee() string { - if m != nil && m.Extendee != nil { - return *m.Extendee - } - return "" -} - -func (m *FieldDescriptorProto) GetDefaultValue() string { - if m != nil && m.DefaultValue != nil { - return *m.DefaultValue - } - return "" -} - -func (m *FieldDescriptorProto) GetOneofIndex() int32 { - if m != nil && m.OneofIndex != nil { - return *m.OneofIndex - } - return 0 -} - -func (m *FieldDescriptorProto) GetJsonName() string { - if m != nil && m.JsonName != nil { - return *m.JsonName - } - return "" -} - -func (m *FieldDescriptorProto) GetOptions() *FieldOptions { - if m != nil { - return m.Options - } - return nil -} - -// Describes a oneof. -type OneofDescriptorProto struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OneofDescriptorProto) Reset() { *m = OneofDescriptorProto{} } -func (m *OneofDescriptorProto) String() string { return proto.CompactTextString(m) } -func (*OneofDescriptorProto) ProtoMessage() {} - -func (m *OneofDescriptorProto) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -// Describes an enum type. -type EnumDescriptorProto struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Value []*EnumValueDescriptorProto `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` - Options *EnumOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *EnumDescriptorProto) Reset() { *m = EnumDescriptorProto{} } -func (m *EnumDescriptorProto) String() string { return proto.CompactTextString(m) } -func (*EnumDescriptorProto) ProtoMessage() {} - -func (m *EnumDescriptorProto) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *EnumDescriptorProto) GetValue() []*EnumValueDescriptorProto { - if m != nil { - return m.Value - } - return nil -} - -func (m *EnumDescriptorProto) GetOptions() *EnumOptions { - if m != nil { - return m.Options - } - return nil -} - -// Describes a value within an enum. -type EnumValueDescriptorProto struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Number *int32 `protobuf:"varint,2,opt,name=number" json:"number,omitempty"` - Options *EnumValueOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *EnumValueDescriptorProto) Reset() { *m = EnumValueDescriptorProto{} } -func (m *EnumValueDescriptorProto) String() string { return proto.CompactTextString(m) } -func (*EnumValueDescriptorProto) ProtoMessage() {} - -func (m *EnumValueDescriptorProto) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *EnumValueDescriptorProto) GetNumber() int32 { - if m != nil && m.Number != nil { - return *m.Number - } - return 0 -} - -func (m *EnumValueDescriptorProto) GetOptions() *EnumValueOptions { - if m != nil { - return m.Options - } - return nil -} - -// Describes a service. -type ServiceDescriptorProto struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Method []*MethodDescriptorProto `protobuf:"bytes,2,rep,name=method" json:"method,omitempty"` - Options *ServiceOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *ServiceDescriptorProto) Reset() { *m = ServiceDescriptorProto{} } -func (m *ServiceDescriptorProto) String() string { return proto.CompactTextString(m) } -func (*ServiceDescriptorProto) ProtoMessage() {} - -func (m *ServiceDescriptorProto) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *ServiceDescriptorProto) GetMethod() []*MethodDescriptorProto { - if m != nil { - return m.Method - } - return nil -} - -func (m *ServiceDescriptorProto) GetOptions() *ServiceOptions { - if m != nil { - return m.Options - } - return nil -} - -// Describes a method of a service. -type MethodDescriptorProto struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - // Input and output type names. These are resolved in the same way as - // FieldDescriptorProto.type_name, but must refer to a message type. - InputType *string `protobuf:"bytes,2,opt,name=input_type" json:"input_type,omitempty"` - OutputType *string `protobuf:"bytes,3,opt,name=output_type" json:"output_type,omitempty"` - Options *MethodOptions `protobuf:"bytes,4,opt,name=options" json:"options,omitempty"` - // Identifies if client streams multiple client messages - ClientStreaming *bool `protobuf:"varint,5,opt,name=client_streaming,def=0" json:"client_streaming,omitempty"` - // Identifies if server streams multiple server messages - ServerStreaming *bool `protobuf:"varint,6,opt,name=server_streaming,def=0" json:"server_streaming,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MethodDescriptorProto) Reset() { *m = MethodDescriptorProto{} } -func (m *MethodDescriptorProto) String() string { return proto.CompactTextString(m) } -func (*MethodDescriptorProto) ProtoMessage() {} - -const Default_MethodDescriptorProto_ClientStreaming bool = false -const Default_MethodDescriptorProto_ServerStreaming bool = false - -func (m *MethodDescriptorProto) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *MethodDescriptorProto) GetInputType() string { - if m != nil && m.InputType != nil { - return *m.InputType - } - return "" -} - -func (m *MethodDescriptorProto) GetOutputType() string { - if m != nil && m.OutputType != nil { - return *m.OutputType - } - return "" -} - -func (m *MethodDescriptorProto) GetOptions() *MethodOptions { - if m != nil { - return m.Options - } - return nil -} - -func (m *MethodDescriptorProto) GetClientStreaming() bool { - if m != nil && m.ClientStreaming != nil { - return *m.ClientStreaming - } - return Default_MethodDescriptorProto_ClientStreaming -} - -func (m *MethodDescriptorProto) GetServerStreaming() bool { - if m != nil && m.ServerStreaming != nil { - return *m.ServerStreaming - } - return Default_MethodDescriptorProto_ServerStreaming -} - -type FileOptions struct { - // Sets the Java package where classes generated from this .proto will be - // placed. By default, the proto package is used, but this is often - // inappropriate because proto packages do not normally start with backwards - // domain names. - JavaPackage *string `protobuf:"bytes,1,opt,name=java_package" json:"java_package,omitempty"` - // If set, all the classes from the .proto file are wrapped in a single - // outer class with the given name. This applies to both Proto1 - // (equivalent to the old "--one_java_file" option) and Proto2 (where - // a .proto always translates to a single class, but you may want to - // explicitly choose the class name). - JavaOuterClassname *string `protobuf:"bytes,8,opt,name=java_outer_classname" json:"java_outer_classname,omitempty"` - // If set true, then the Java code generator will generate a separate .java - // file for each top-level message, enum, and service defined in the .proto - // file. Thus, these types will *not* be nested inside the outer class - // named by java_outer_classname. However, the outer class will still be - // generated to contain the file's getDescriptor() method as well as any - // top-level extensions defined in the file. - JavaMultipleFiles *bool `protobuf:"varint,10,opt,name=java_multiple_files,def=0" json:"java_multiple_files,omitempty"` - // If set true, then the Java code generator will generate equals() and - // hashCode() methods for all messages defined in the .proto file. - // This increases generated code size, potentially substantially for large - // protos, which may harm a memory-constrained application. - // - In the full runtime this is a speed optimization, as the - // AbstractMessage base class includes reflection-based implementations of - // these methods. - // - In the lite runtime, setting this option changes the semantics of - // equals() and hashCode() to more closely match those of the full runtime; - // the generated methods compute their results based on field values rather - // than object identity. (Implementations should not assume that hashcodes - // will be consistent across runtimes or versions of the protocol compiler.) - JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,def=0" json:"java_generate_equals_and_hash,omitempty"` - // If set true, then the Java2 code generator will generate code that - // throws an exception whenever an attempt is made to assign a non-UTF-8 - // byte sequence to a string field. - // Message reflection will do the same. - // However, an extension field still accepts non-UTF-8 byte sequences. - // This option has no effect on when used with the lite runtime. - JavaStringCheckUtf8 *bool `protobuf:"varint,27,opt,name=java_string_check_utf8,def=0" json:"java_string_check_utf8,omitempty"` - OptimizeFor *FileOptions_OptimizeMode `protobuf:"varint,9,opt,name=optimize_for,enum=google.protobuf.FileOptions_OptimizeMode,def=1" json:"optimize_for,omitempty"` - // Sets the Go package where structs generated from this .proto will be - // placed. If omitted, the Go package will be derived from the following: - // - The basename of the package import path, if provided. - // - Otherwise, the package statement in the .proto file, if present. - // - Otherwise, the basename of the .proto file, without extension. - GoPackage *string `protobuf:"bytes,11,opt,name=go_package" json:"go_package,omitempty"` - // Should generic services be generated in each language? "Generic" services - // are not specific to any particular RPC system. They are generated by the - // main code generators in each language (without additional plugins). - // Generic services were the only kind of service generation supported by - // early versions of google.protobuf. - // - // Generic services are now considered deprecated in favor of using plugins - // that generate code specific to your particular RPC system. Therefore, - // these default to false. Old code which depends on generic services should - // explicitly set them to true. - CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,def=0" json:"cc_generic_services,omitempty"` - JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,def=0" json:"java_generic_services,omitempty"` - PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,def=0" json:"py_generic_services,omitempty"` - // Is this file deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for everything in the file, or it will be completely ignored; in the very - // least, this is a formalization for deprecating files. - Deprecated *bool `protobuf:"varint,23,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - // Enables the use of arenas for the proto messages in this file. This applies - // only to generated classes for C++. - CcEnableArenas *bool `protobuf:"varint,31,opt,name=cc_enable_arenas,def=0" json:"cc_enable_arenas,omitempty"` - // Sets the objective c class prefix which is prepended to all objective c - // generated classes from this .proto. There is no default. - ObjcClassPrefix *string `protobuf:"bytes,36,opt,name=objc_class_prefix" json:"objc_class_prefix,omitempty"` - // Namespace for generated classes; defaults to the package. - CsharpNamespace *string `protobuf:"bytes,37,opt,name=csharp_namespace" json:"csharp_namespace,omitempty"` - // Whether the nano proto compiler should generate in the deprecated non-nano - // suffixed package. - JavananoUseDeprecatedPackage *bool `protobuf:"varint,38,opt,name=javanano_use_deprecated_package" json:"javanano_use_deprecated_package,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *FileOptions) Reset() { *m = FileOptions{} } -func (m *FileOptions) String() string { return proto.CompactTextString(m) } -func (*FileOptions) ProtoMessage() {} - -var extRange_FileOptions = []proto.ExtensionRange{ - {1000, 536870911}, -} - -func (*FileOptions) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_FileOptions -} -func (m *FileOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -const Default_FileOptions_JavaMultipleFiles bool = false -const Default_FileOptions_JavaGenerateEqualsAndHash bool = false -const Default_FileOptions_JavaStringCheckUtf8 bool = false -const Default_FileOptions_OptimizeFor FileOptions_OptimizeMode = FileOptions_SPEED -const Default_FileOptions_CcGenericServices bool = false -const Default_FileOptions_JavaGenericServices bool = false -const Default_FileOptions_PyGenericServices bool = false -const Default_FileOptions_Deprecated bool = false -const Default_FileOptions_CcEnableArenas bool = false - -func (m *FileOptions) GetJavaPackage() string { - if m != nil && m.JavaPackage != nil { - return *m.JavaPackage - } - return "" -} - -func (m *FileOptions) GetJavaOuterClassname() string { - if m != nil && m.JavaOuterClassname != nil { - return *m.JavaOuterClassname - } - return "" -} - -func (m *FileOptions) GetJavaMultipleFiles() bool { - if m != nil && m.JavaMultipleFiles != nil { - return *m.JavaMultipleFiles - } - return Default_FileOptions_JavaMultipleFiles -} - -func (m *FileOptions) GetJavaGenerateEqualsAndHash() bool { - if m != nil && m.JavaGenerateEqualsAndHash != nil { - return *m.JavaGenerateEqualsAndHash - } - return Default_FileOptions_JavaGenerateEqualsAndHash -} - -func (m *FileOptions) GetJavaStringCheckUtf8() bool { - if m != nil && m.JavaStringCheckUtf8 != nil { - return *m.JavaStringCheckUtf8 - } - return Default_FileOptions_JavaStringCheckUtf8 -} - -func (m *FileOptions) GetOptimizeFor() FileOptions_OptimizeMode { - if m != nil && m.OptimizeFor != nil { - return *m.OptimizeFor - } - return Default_FileOptions_OptimizeFor -} - -func (m *FileOptions) GetGoPackage() string { - if m != nil && m.GoPackage != nil { - return *m.GoPackage - } - return "" -} - -func (m *FileOptions) GetCcGenericServices() bool { - if m != nil && m.CcGenericServices != nil { - return *m.CcGenericServices - } - return Default_FileOptions_CcGenericServices -} - -func (m *FileOptions) GetJavaGenericServices() bool { - if m != nil && m.JavaGenericServices != nil { - return *m.JavaGenericServices - } - return Default_FileOptions_JavaGenericServices -} - -func (m *FileOptions) GetPyGenericServices() bool { - if m != nil && m.PyGenericServices != nil { - return *m.PyGenericServices - } - return Default_FileOptions_PyGenericServices -} - -func (m *FileOptions) GetDeprecated() bool { - if m != nil && m.Deprecated != nil { - return *m.Deprecated - } - return Default_FileOptions_Deprecated -} - -func (m *FileOptions) GetCcEnableArenas() bool { - if m != nil && m.CcEnableArenas != nil { - return *m.CcEnableArenas - } - return Default_FileOptions_CcEnableArenas -} - -func (m *FileOptions) GetObjcClassPrefix() string { - if m != nil && m.ObjcClassPrefix != nil { - return *m.ObjcClassPrefix - } - return "" -} - -func (m *FileOptions) GetCsharpNamespace() string { - if m != nil && m.CsharpNamespace != nil { - return *m.CsharpNamespace - } - return "" -} - -func (m *FileOptions) GetJavananoUseDeprecatedPackage() bool { - if m != nil && m.JavananoUseDeprecatedPackage != nil { - return *m.JavananoUseDeprecatedPackage - } - return false -} - -func (m *FileOptions) GetUninterpretedOption() []*UninterpretedOption { - if m != nil { - return m.UninterpretedOption - } - return nil -} - -type MessageOptions struct { - // Set true to use the old proto1 MessageSet wire format for extensions. - // This is provided for backwards-compatibility with the MessageSet wire - // format. You should not use this for any other reason: It's less - // efficient, has fewer features, and is more complicated. - // - // The message must be defined exactly as follows: - // message Foo { - // option message_set_wire_format = true; - // extensions 4 to max; - // } - // Note that the message cannot have any defined fields; MessageSets only - // have extensions. - // - // All extensions of your type must be singular messages; e.g. they cannot - // be int32s, enums, or repeated messages. - // - // Because this is an option, the above two restrictions are not enforced by - // the protocol compiler. - MessageSetWireFormat *bool `protobuf:"varint,1,opt,name=message_set_wire_format,def=0" json:"message_set_wire_format,omitempty"` - // Disables the generation of the standard "descriptor()" accessor, which can - // conflict with a field of the same name. This is meant to make migration - // from proto1 easier; new code should avoid fields named "descriptor". - NoStandardDescriptorAccessor *bool `protobuf:"varint,2,opt,name=no_standard_descriptor_accessor,def=0" json:"no_standard_descriptor_accessor,omitempty"` - // Is this message deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the message, or it will be completely ignored; in the very least, - // this is a formalization for deprecating messages. - Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - // Whether the message is an automatically generated map entry type for the - // maps field. - // - // For maps fields: - // map map_field = 1; - // The parsed descriptor looks like: - // message MapFieldEntry { - // option map_entry = true; - // optional KeyType key = 1; - // optional ValueType value = 2; - // } - // repeated MapFieldEntry map_field = 1; - // - // Implementations may choose not to generate the map_entry=true message, but - // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementions still need to work as - // if the field is a repeated message field. - // - // NOTE: Do not set the option in .proto files. Always use the maps syntax - // instead. The option should only be implicitly set by the proto compiler - // parser. - MapEntry *bool `protobuf:"varint,7,opt,name=map_entry" json:"map_entry,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MessageOptions) Reset() { *m = MessageOptions{} } -func (m *MessageOptions) String() string { return proto.CompactTextString(m) } -func (*MessageOptions) ProtoMessage() {} - -var extRange_MessageOptions = []proto.ExtensionRange{ - {1000, 536870911}, -} - -func (*MessageOptions) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_MessageOptions -} -func (m *MessageOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -const Default_MessageOptions_MessageSetWireFormat bool = false -const Default_MessageOptions_NoStandardDescriptorAccessor bool = false -const Default_MessageOptions_Deprecated bool = false - -func (m *MessageOptions) GetMessageSetWireFormat() bool { - if m != nil && m.MessageSetWireFormat != nil { - return *m.MessageSetWireFormat - } - return Default_MessageOptions_MessageSetWireFormat -} - -func (m *MessageOptions) GetNoStandardDescriptorAccessor() bool { - if m != nil && m.NoStandardDescriptorAccessor != nil { - return *m.NoStandardDescriptorAccessor - } - return Default_MessageOptions_NoStandardDescriptorAccessor -} - -func (m *MessageOptions) GetDeprecated() bool { - if m != nil && m.Deprecated != nil { - return *m.Deprecated - } - return Default_MessageOptions_Deprecated -} - -func (m *MessageOptions) GetMapEntry() bool { - if m != nil && m.MapEntry != nil { - return *m.MapEntry - } - return false -} - -func (m *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { - if m != nil { - return m.UninterpretedOption - } - return nil -} - -type FieldOptions struct { - // The ctype option instructs the C++ code generator to use a different - // representation of the field than it normally would. See the specific - // options below. This option is not yet implemented in the open source - // release -- sorry, we'll try to include it in a future version! - Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` - // The packed option can be enabled for repeated primitive fields to enable - // a more efficient representation on the wire. Rather than repeatedly - // writing the tag and type for each element, the entire array is encoded as - // a single length-delimited blob. In proto3, only explicit setting it to - // false will avoid using packed encoding. - Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` - // The jstype option determines the JavaScript type used for values of the - // field. The option is permitted only for 64 bit integral and fixed types - // (int64, uint64, sint64, fixed64, sfixed64). By default these types are - // represented as JavaScript strings. This avoids loss of precision that can - // happen when a large value is converted to a floating point JavaScript - // numbers. Specifying JS_NUMBER for the jstype causes the generated - // JavaScript code to use the JavaScript "number" type instead of strings. - // This option is an enum to permit additional types to be added, - // e.g. goog.math.Integer. - Jstype *FieldOptions_JSType `protobuf:"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0" json:"jstype,omitempty"` - // Should this field be parsed lazily? Lazy applies only to message-type - // fields. It means that when the outer message is initially parsed, the - // inner message's contents will not be parsed but instead stored in encoded - // form. The inner message will actually be parsed when it is first accessed. - // - // This is only a hint. Implementations are free to choose whether to use - // eager or lazy parsing regardless of the value of this option. However, - // setting this option true suggests that the protocol author believes that - // using lazy parsing on this field is worth the additional bookkeeping - // overhead typically needed to implement it. - // - // This option does not affect the public interface of any generated code; - // all method signatures remain the same. Furthermore, thread-safety of the - // interface is not affected by this option; const methods remain safe to - // call from multiple threads concurrently, while non-const methods continue - // to require exclusive access. - // - // - // Note that implementations may choose not to check required fields within - // a lazy sub-message. That is, calling IsInitialized() on the outher message - // may return true even if the inner message has missing required fields. - // This is necessary because otherwise the inner message would have to be - // parsed in order to perform the check, defeating the purpose of lazy - // parsing. An implementation which chooses not to check required fields - // must be consistent about it. That is, for any particular sub-message, the - // implementation must either *always* check its required fields, or *never* - // check its required fields, regardless of whether or not the message has - // been parsed. - Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` - // Is this field deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for accessors, or it will be completely ignored; in the very least, this - // is a formalization for deprecating fields. - Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - // For Google-internal migration only. Do not use. - Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *FieldOptions) Reset() { *m = FieldOptions{} } -func (m *FieldOptions) String() string { return proto.CompactTextString(m) } -func (*FieldOptions) ProtoMessage() {} - -var extRange_FieldOptions = []proto.ExtensionRange{ - {1000, 536870911}, -} - -func (*FieldOptions) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_FieldOptions -} -func (m *FieldOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -const Default_FieldOptions_Ctype FieldOptions_CType = FieldOptions_STRING -const Default_FieldOptions_Jstype FieldOptions_JSType = FieldOptions_JS_NORMAL -const Default_FieldOptions_Lazy bool = false -const Default_FieldOptions_Deprecated bool = false -const Default_FieldOptions_Weak bool = false - -func (m *FieldOptions) GetCtype() FieldOptions_CType { - if m != nil && m.Ctype != nil { - return *m.Ctype - } - return Default_FieldOptions_Ctype -} - -func (m *FieldOptions) GetPacked() bool { - if m != nil && m.Packed != nil { - return *m.Packed - } - return false -} - -func (m *FieldOptions) GetJstype() FieldOptions_JSType { - if m != nil && m.Jstype != nil { - return *m.Jstype - } - return Default_FieldOptions_Jstype -} - -func (m *FieldOptions) GetLazy() bool { - if m != nil && m.Lazy != nil { - return *m.Lazy - } - return Default_FieldOptions_Lazy -} - -func (m *FieldOptions) GetDeprecated() bool { - if m != nil && m.Deprecated != nil { - return *m.Deprecated - } - return Default_FieldOptions_Deprecated -} - -func (m *FieldOptions) GetWeak() bool { - if m != nil && m.Weak != nil { - return *m.Weak - } - return Default_FieldOptions_Weak -} - -func (m *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { - if m != nil { - return m.UninterpretedOption - } - return nil -} - -type EnumOptions struct { - // Set this option to true to allow mapping different tag names to the same - // value. - AllowAlias *bool `protobuf:"varint,2,opt,name=allow_alias" json:"allow_alias,omitempty"` - // Is this enum deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the enum, or it will be completely ignored; in the very least, this - // is a formalization for deprecating enums. - Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *EnumOptions) Reset() { *m = EnumOptions{} } -func (m *EnumOptions) String() string { return proto.CompactTextString(m) } -func (*EnumOptions) ProtoMessage() {} - -var extRange_EnumOptions = []proto.ExtensionRange{ - {1000, 536870911}, -} - -func (*EnumOptions) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_EnumOptions -} -func (m *EnumOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -const Default_EnumOptions_Deprecated bool = false - -func (m *EnumOptions) GetAllowAlias() bool { - if m != nil && m.AllowAlias != nil { - return *m.AllowAlias - } - return false -} - -func (m *EnumOptions) GetDeprecated() bool { - if m != nil && m.Deprecated != nil { - return *m.Deprecated - } - return Default_EnumOptions_Deprecated -} - -func (m *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { - if m != nil { - return m.UninterpretedOption - } - return nil -} - -type EnumValueOptions struct { - // Is this enum value deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the enum value, or it will be completely ignored; in the very least, - // this is a formalization for deprecating enum values. - Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *EnumValueOptions) Reset() { *m = EnumValueOptions{} } -func (m *EnumValueOptions) String() string { return proto.CompactTextString(m) } -func (*EnumValueOptions) ProtoMessage() {} - -var extRange_EnumValueOptions = []proto.ExtensionRange{ - {1000, 536870911}, -} - -func (*EnumValueOptions) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_EnumValueOptions -} -func (m *EnumValueOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -const Default_EnumValueOptions_Deprecated bool = false - -func (m *EnumValueOptions) GetDeprecated() bool { - if m != nil && m.Deprecated != nil { - return *m.Deprecated - } - return Default_EnumValueOptions_Deprecated -} - -func (m *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption { - if m != nil { - return m.UninterpretedOption - } - return nil -} - -type ServiceOptions struct { - // Is this service deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the service, or it will be completely ignored; in the very least, - // this is a formalization for deprecating services. - Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *ServiceOptions) Reset() { *m = ServiceOptions{} } -func (m *ServiceOptions) String() string { return proto.CompactTextString(m) } -func (*ServiceOptions) ProtoMessage() {} - -var extRange_ServiceOptions = []proto.ExtensionRange{ - {1000, 536870911}, -} - -func (*ServiceOptions) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_ServiceOptions -} -func (m *ServiceOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -const Default_ServiceOptions_Deprecated bool = false - -func (m *ServiceOptions) GetDeprecated() bool { - if m != nil && m.Deprecated != nil { - return *m.Deprecated - } - return Default_ServiceOptions_Deprecated -} - -func (m *ServiceOptions) GetUninterpretedOption() []*UninterpretedOption { - if m != nil { - return m.UninterpretedOption - } - return nil -} - -type MethodOptions struct { - // Is this method deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the method, or it will be completely ignored; in the very least, - // this is a formalization for deprecating methods. - Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MethodOptions) Reset() { *m = MethodOptions{} } -func (m *MethodOptions) String() string { return proto.CompactTextString(m) } -func (*MethodOptions) ProtoMessage() {} - -var extRange_MethodOptions = []proto.ExtensionRange{ - {1000, 536870911}, -} - -func (*MethodOptions) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_MethodOptions -} -func (m *MethodOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -const Default_MethodOptions_Deprecated bool = false - -func (m *MethodOptions) GetDeprecated() bool { - if m != nil && m.Deprecated != nil { - return *m.Deprecated - } - return Default_MethodOptions_Deprecated -} - -func (m *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { - if m != nil { - return m.UninterpretedOption - } - return nil -} - -// A message representing a option the parser does not recognize. This only -// appears in options protos created by the compiler::Parser class. -// DescriptorPool resolves these when building Descriptor objects. Therefore, -// options protos in descriptor objects (e.g. returned by Descriptor::options(), -// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions -// in them. -type UninterpretedOption struct { - Name []*UninterpretedOption_NamePart `protobuf:"bytes,2,rep,name=name" json:"name,omitempty"` - // The value of the uninterpreted option, in whatever type the tokenizer - // identified it as during parsing. Exactly one of these should be set. - IdentifierValue *string `protobuf:"bytes,3,opt,name=identifier_value" json:"identifier_value,omitempty"` - PositiveIntValue *uint64 `protobuf:"varint,4,opt,name=positive_int_value" json:"positive_int_value,omitempty"` - NegativeIntValue *int64 `protobuf:"varint,5,opt,name=negative_int_value" json:"negative_int_value,omitempty"` - DoubleValue *float64 `protobuf:"fixed64,6,opt,name=double_value" json:"double_value,omitempty"` - StringValue []byte `protobuf:"bytes,7,opt,name=string_value" json:"string_value,omitempty"` - AggregateValue *string `protobuf:"bytes,8,opt,name=aggregate_value" json:"aggregate_value,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *UninterpretedOption) Reset() { *m = UninterpretedOption{} } -func (m *UninterpretedOption) String() string { return proto.CompactTextString(m) } -func (*UninterpretedOption) ProtoMessage() {} - -func (m *UninterpretedOption) GetName() []*UninterpretedOption_NamePart { - if m != nil { - return m.Name - } - return nil -} - -func (m *UninterpretedOption) GetIdentifierValue() string { - if m != nil && m.IdentifierValue != nil { - return *m.IdentifierValue - } - return "" -} - -func (m *UninterpretedOption) GetPositiveIntValue() uint64 { - if m != nil && m.PositiveIntValue != nil { - return *m.PositiveIntValue - } - return 0 -} - -func (m *UninterpretedOption) GetNegativeIntValue() int64 { - if m != nil && m.NegativeIntValue != nil { - return *m.NegativeIntValue - } - return 0 -} - -func (m *UninterpretedOption) GetDoubleValue() float64 { - if m != nil && m.DoubleValue != nil { - return *m.DoubleValue - } - return 0 -} - -func (m *UninterpretedOption) GetStringValue() []byte { - if m != nil { - return m.StringValue - } - return nil -} - -func (m *UninterpretedOption) GetAggregateValue() string { - if m != nil && m.AggregateValue != nil { - return *m.AggregateValue - } - return "" -} - -// The name of the uninterpreted option. Each string represents a segment in -// a dot-separated name. is_extension is true iff a segment represents an -// extension (denoted with parentheses in options specs in .proto files). -// E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents -// "foo.(bar.baz).qux". -type UninterpretedOption_NamePart struct { - NamePart *string `protobuf:"bytes,1,req,name=name_part" json:"name_part,omitempty"` - IsExtension *bool `protobuf:"varint,2,req,name=is_extension" json:"is_extension,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *UninterpretedOption_NamePart) Reset() { *m = UninterpretedOption_NamePart{} } -func (m *UninterpretedOption_NamePart) String() string { return proto.CompactTextString(m) } -func (*UninterpretedOption_NamePart) ProtoMessage() {} - -func (m *UninterpretedOption_NamePart) GetNamePart() string { - if m != nil && m.NamePart != nil { - return *m.NamePart - } - return "" -} - -func (m *UninterpretedOption_NamePart) GetIsExtension() bool { - if m != nil && m.IsExtension != nil { - return *m.IsExtension - } - return false -} - -// Encapsulates information about the original source file from which a -// FileDescriptorProto was generated. -type SourceCodeInfo struct { - // A Location identifies a piece of source code in a .proto file which - // corresponds to a particular definition. This information is intended - // to be useful to IDEs, code indexers, documentation generators, and similar - // tools. - // - // For example, say we have a file like: - // message Foo { - // optional string foo = 1; - // } - // Let's look at just the field definition: - // optional string foo = 1; - // ^ ^^ ^^ ^ ^^^ - // a bc de f ghi - // We have the following locations: - // span path represents - // [a,i) [ 4, 0, 2, 0 ] The whole field definition. - // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). - // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). - // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). - // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). - // - // Notes: - // - A location may refer to a repeated field itself (i.e. not to any - // particular index within it). This is used whenever a set of elements are - // logically enclosed in a single code segment. For example, an entire - // extend block (possibly containing multiple extension definitions) will - // have an outer location whose path refers to the "extensions" repeated - // field without an index. - // - Multiple locations may have the same path. This happens when a single - // logical declaration is spread out across multiple places. The most - // obvious example is the "extend" block again -- there may be multiple - // extend blocks in the same scope, each of which will have the same path. - // - A location's span is not always a subset of its parent's span. For - // example, the "extendee" of an extension declaration appears at the - // beginning of the "extend" block and is shared by all extensions within - // the block. - // - Just because a location's span is a subset of some other location's span - // does not mean that it is a descendent. For example, a "group" defines - // both a type and a field in a single declaration. Thus, the locations - // corresponding to the type and field and their components will overlap. - // - Code which tries to interpret locations should probably be designed to - // ignore those that it doesn't understand, as more types of locations could - // be recorded in the future. - Location []*SourceCodeInfo_Location `protobuf:"bytes,1,rep,name=location" json:"location,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *SourceCodeInfo) Reset() { *m = SourceCodeInfo{} } -func (m *SourceCodeInfo) String() string { return proto.CompactTextString(m) } -func (*SourceCodeInfo) ProtoMessage() {} - -func (m *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { - if m != nil { - return m.Location - } - return nil -} - -type SourceCodeInfo_Location struct { - // Identifies which part of the FileDescriptorProto was defined at this - // location. - // - // Each element is a field number or an index. They form a path from - // the root FileDescriptorProto to the place where the definition. For - // example, this path: - // [ 4, 3, 2, 7, 1 ] - // refers to: - // file.message_type(3) // 4, 3 - // .field(7) // 2, 7 - // .name() // 1 - // This is because FileDescriptorProto.message_type has field number 4: - // repeated DescriptorProto message_type = 4; - // and DescriptorProto.field has field number 2: - // repeated FieldDescriptorProto field = 2; - // and FieldDescriptorProto.name has field number 1: - // optional string name = 1; - // - // Thus, the above path gives the location of a field name. If we removed - // the last element: - // [ 4, 3, 2, 7 ] - // this path refers to the whole field declaration (from the beginning - // of the label to the terminating semicolon). - Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` - // Always has exactly three or four elements: start line, start column, - // end line (optional, otherwise assumed same as start line), end column. - // These are packed into a single field for efficiency. Note that line - // and column numbers are zero-based -- typically you will want to add - // 1 to each before displaying to a user. - Span []int32 `protobuf:"varint,2,rep,packed,name=span" json:"span,omitempty"` - // If this SourceCodeInfo represents a complete declaration, these are any - // comments appearing before and after the declaration which appear to be - // attached to the declaration. - // - // A series of line comments appearing on consecutive lines, with no other - // tokens appearing on those lines, will be treated as a single comment. - // - // leading_detached_comments will keep paragraphs of comments that appear - // before (but not connected to) the current element. Each paragraph, - // separated by empty lines, will be one comment element in the repeated - // field. - // - // Only the comment content is provided; comment markers (e.g. //) are - // stripped out. For block comments, leading whitespace and an asterisk - // will be stripped from the beginning of each line other than the first. - // Newlines are included in the output. - // - // Examples: - // - // optional int32 foo = 1; // Comment attached to foo. - // // Comment attached to bar. - // optional int32 bar = 2; - // - // optional string baz = 3; - // // Comment attached to baz. - // // Another line attached to baz. - // - // // Comment attached to qux. - // // - // // Another line attached to qux. - // optional double qux = 4; - // - // // Detached comment for corge. This is not leading or trailing comments - // // to qux or corge because there are blank lines separating it from - // // both. - // - // // Detached comment for corge paragraph 2. - // - // optional string corge = 5; - // /* Block comment attached - // * to corge. Leading asterisks - // * will be removed. */ - // /* Block comment attached to - // * grault. */ - // optional int32 grault = 6; - // - // // ignored detached comments. - LeadingComments *string `protobuf:"bytes,3,opt,name=leading_comments" json:"leading_comments,omitempty"` - TrailingComments *string `protobuf:"bytes,4,opt,name=trailing_comments" json:"trailing_comments,omitempty"` - LeadingDetachedComments []string `protobuf:"bytes,6,rep,name=leading_detached_comments" json:"leading_detached_comments,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *SourceCodeInfo_Location) Reset() { *m = SourceCodeInfo_Location{} } -func (m *SourceCodeInfo_Location) String() string { return proto.CompactTextString(m) } -func (*SourceCodeInfo_Location) ProtoMessage() {} - -func (m *SourceCodeInfo_Location) GetPath() []int32 { - if m != nil { - return m.Path - } - return nil -} - -func (m *SourceCodeInfo_Location) GetSpan() []int32 { - if m != nil { - return m.Span - } - return nil -} - -func (m *SourceCodeInfo_Location) GetLeadingComments() string { - if m != nil && m.LeadingComments != nil { - return *m.LeadingComments - } - return "" -} - -func (m *SourceCodeInfo_Location) GetTrailingComments() string { - if m != nil && m.TrailingComments != nil { - return *m.TrailingComments - } - return "" -} - -func (m *SourceCodeInfo_Location) GetLeadingDetachedComments() []string { - if m != nil { - return m.LeadingDetachedComments - } - return nil -} - -func init() { - proto.RegisterType((*FileDescriptorSet)(nil), "google.protobuf.FileDescriptorSet") - proto.RegisterType((*FileDescriptorProto)(nil), "google.protobuf.FileDescriptorProto") - proto.RegisterType((*DescriptorProto)(nil), "google.protobuf.DescriptorProto") - proto.RegisterType((*DescriptorProto_ExtensionRange)(nil), "google.protobuf.DescriptorProto.ExtensionRange") - proto.RegisterType((*DescriptorProto_ReservedRange)(nil), "google.protobuf.DescriptorProto.ReservedRange") - proto.RegisterType((*FieldDescriptorProto)(nil), "google.protobuf.FieldDescriptorProto") - proto.RegisterType((*OneofDescriptorProto)(nil), "google.protobuf.OneofDescriptorProto") - proto.RegisterType((*EnumDescriptorProto)(nil), "google.protobuf.EnumDescriptorProto") - proto.RegisterType((*EnumValueDescriptorProto)(nil), "google.protobuf.EnumValueDescriptorProto") - proto.RegisterType((*ServiceDescriptorProto)(nil), "google.protobuf.ServiceDescriptorProto") - proto.RegisterType((*MethodDescriptorProto)(nil), "google.protobuf.MethodDescriptorProto") - proto.RegisterType((*FileOptions)(nil), "google.protobuf.FileOptions") - proto.RegisterType((*MessageOptions)(nil), "google.protobuf.MessageOptions") - proto.RegisterType((*FieldOptions)(nil), "google.protobuf.FieldOptions") - proto.RegisterType((*EnumOptions)(nil), "google.protobuf.EnumOptions") - proto.RegisterType((*EnumValueOptions)(nil), "google.protobuf.EnumValueOptions") - proto.RegisterType((*ServiceOptions)(nil), "google.protobuf.ServiceOptions") - proto.RegisterType((*MethodOptions)(nil), "google.protobuf.MethodOptions") - proto.RegisterType((*UninterpretedOption)(nil), "google.protobuf.UninterpretedOption") - proto.RegisterType((*UninterpretedOption_NamePart)(nil), "google.protobuf.UninterpretedOption.NamePart") - proto.RegisterType((*SourceCodeInfo)(nil), "google.protobuf.SourceCodeInfo") - proto.RegisterType((*SourceCodeInfo_Location)(nil), "google.protobuf.SourceCodeInfo.Location") - proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Type", FieldDescriptorProto_Type_name, FieldDescriptorProto_Type_value) - proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Label", FieldDescriptorProto_Label_name, FieldDescriptorProto_Label_value) - proto.RegisterEnum("google.protobuf.FileOptions_OptimizeMode", FileOptions_OptimizeMode_name, FileOptions_OptimizeMode_value) - proto.RegisterEnum("google.protobuf.FieldOptions_CType", FieldOptions_CType_name, FieldOptions_CType_value) - proto.RegisterEnum("google.protobuf.FieldOptions_JSType", FieldOptions_JSType_name, FieldOptions_JSType_value) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/gostring.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/gostring.go deleted file mode 100644 index 033a1b2d..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/gostring.go +++ /dev/null @@ -1,635 +0,0 @@ -package descriptor - -import fmt "fmt" - -import strings "strings" -import github_com_gogo_protobuf_proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import sort "sort" -import strconv "strconv" -import reflect "reflect" - -func (this *FileDescriptorSet) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&descriptor.FileDescriptorSet{") - if this.File != nil { - s = append(s, "File: "+fmt.Sprintf("%#v", this.File)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *FileDescriptorProto) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 16) - s = append(s, "&descriptor.FileDescriptorProto{") - if this.Name != nil { - s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") - } - if this.Package != nil { - s = append(s, "Package: "+valueToGoStringDescriptor(this.Package, "string")+",\n") - } - if this.Dependency != nil { - s = append(s, "Dependency: "+fmt.Sprintf("%#v", this.Dependency)+",\n") - } - if this.PublicDependency != nil { - s = append(s, "PublicDependency: "+fmt.Sprintf("%#v", this.PublicDependency)+",\n") - } - if this.WeakDependency != nil { - s = append(s, "WeakDependency: "+fmt.Sprintf("%#v", this.WeakDependency)+",\n") - } - if this.MessageType != nil { - s = append(s, "MessageType: "+fmt.Sprintf("%#v", this.MessageType)+",\n") - } - if this.EnumType != nil { - s = append(s, "EnumType: "+fmt.Sprintf("%#v", this.EnumType)+",\n") - } - if this.Service != nil { - s = append(s, "Service: "+fmt.Sprintf("%#v", this.Service)+",\n") - } - if this.Extension != nil { - s = append(s, "Extension: "+fmt.Sprintf("%#v", this.Extension)+",\n") - } - if this.Options != nil { - s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") - } - if this.SourceCodeInfo != nil { - s = append(s, "SourceCodeInfo: "+fmt.Sprintf("%#v", this.SourceCodeInfo)+",\n") - } - if this.Syntax != nil { - s = append(s, "Syntax: "+valueToGoStringDescriptor(this.Syntax, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *DescriptorProto) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&descriptor.DescriptorProto{") - if this.Name != nil { - s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") - } - if this.Field != nil { - s = append(s, "Field: "+fmt.Sprintf("%#v", this.Field)+",\n") - } - if this.Extension != nil { - s = append(s, "Extension: "+fmt.Sprintf("%#v", this.Extension)+",\n") - } - if this.NestedType != nil { - s = append(s, "NestedType: "+fmt.Sprintf("%#v", this.NestedType)+",\n") - } - if this.EnumType != nil { - s = append(s, "EnumType: "+fmt.Sprintf("%#v", this.EnumType)+",\n") - } - if this.ExtensionRange != nil { - s = append(s, "ExtensionRange: "+fmt.Sprintf("%#v", this.ExtensionRange)+",\n") - } - if this.OneofDecl != nil { - s = append(s, "OneofDecl: "+fmt.Sprintf("%#v", this.OneofDecl)+",\n") - } - if this.Options != nil { - s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") - } - if this.ReservedRange != nil { - s = append(s, "ReservedRange: "+fmt.Sprintf("%#v", this.ReservedRange)+",\n") - } - if this.ReservedName != nil { - s = append(s, "ReservedName: "+fmt.Sprintf("%#v", this.ReservedName)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *DescriptorProto_ExtensionRange) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&descriptor.DescriptorProto_ExtensionRange{") - if this.Start != nil { - s = append(s, "Start: "+valueToGoStringDescriptor(this.Start, "int32")+",\n") - } - if this.End != nil { - s = append(s, "End: "+valueToGoStringDescriptor(this.End, "int32")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *DescriptorProto_ReservedRange) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&descriptor.DescriptorProto_ReservedRange{") - if this.Start != nil { - s = append(s, "Start: "+valueToGoStringDescriptor(this.Start, "int32")+",\n") - } - if this.End != nil { - s = append(s, "End: "+valueToGoStringDescriptor(this.End, "int32")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *FieldDescriptorProto) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&descriptor.FieldDescriptorProto{") - if this.Name != nil { - s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") - } - if this.Number != nil { - s = append(s, "Number: "+valueToGoStringDescriptor(this.Number, "int32")+",\n") - } - if this.Label != nil { - s = append(s, "Label: "+valueToGoStringDescriptor(this.Label, "descriptor.FieldDescriptorProto_Label")+",\n") - } - if this.Type != nil { - s = append(s, "Type: "+valueToGoStringDescriptor(this.Type, "descriptor.FieldDescriptorProto_Type")+",\n") - } - if this.TypeName != nil { - s = append(s, "TypeName: "+valueToGoStringDescriptor(this.TypeName, "string")+",\n") - } - if this.Extendee != nil { - s = append(s, "Extendee: "+valueToGoStringDescriptor(this.Extendee, "string")+",\n") - } - if this.DefaultValue != nil { - s = append(s, "DefaultValue: "+valueToGoStringDescriptor(this.DefaultValue, "string")+",\n") - } - if this.OneofIndex != nil { - s = append(s, "OneofIndex: "+valueToGoStringDescriptor(this.OneofIndex, "int32")+",\n") - } - if this.JsonName != nil { - s = append(s, "JsonName: "+valueToGoStringDescriptor(this.JsonName, "string")+",\n") - } - if this.Options != nil { - s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *OneofDescriptorProto) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&descriptor.OneofDescriptorProto{") - if this.Name != nil { - s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *EnumDescriptorProto) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&descriptor.EnumDescriptorProto{") - if this.Name != nil { - s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") - } - if this.Value != nil { - s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") - } - if this.Options != nil { - s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *EnumValueDescriptorProto) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&descriptor.EnumValueDescriptorProto{") - if this.Name != nil { - s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") - } - if this.Number != nil { - s = append(s, "Number: "+valueToGoStringDescriptor(this.Number, "int32")+",\n") - } - if this.Options != nil { - s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ServiceDescriptorProto) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&descriptor.ServiceDescriptorProto{") - if this.Name != nil { - s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") - } - if this.Method != nil { - s = append(s, "Method: "+fmt.Sprintf("%#v", this.Method)+",\n") - } - if this.Options != nil { - s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *MethodDescriptorProto) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 10) - s = append(s, "&descriptor.MethodDescriptorProto{") - if this.Name != nil { - s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") - } - if this.InputType != nil { - s = append(s, "InputType: "+valueToGoStringDescriptor(this.InputType, "string")+",\n") - } - if this.OutputType != nil { - s = append(s, "OutputType: "+valueToGoStringDescriptor(this.OutputType, "string")+",\n") - } - if this.Options != nil { - s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") - } - if this.ClientStreaming != nil { - s = append(s, "ClientStreaming: "+valueToGoStringDescriptor(this.ClientStreaming, "bool")+",\n") - } - if this.ServerStreaming != nil { - s = append(s, "ServerStreaming: "+valueToGoStringDescriptor(this.ServerStreaming, "bool")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *FileOptions) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 20) - s = append(s, "&descriptor.FileOptions{") - if this.JavaPackage != nil { - s = append(s, "JavaPackage: "+valueToGoStringDescriptor(this.JavaPackage, "string")+",\n") - } - if this.JavaOuterClassname != nil { - s = append(s, "JavaOuterClassname: "+valueToGoStringDescriptor(this.JavaOuterClassname, "string")+",\n") - } - if this.JavaMultipleFiles != nil { - s = append(s, "JavaMultipleFiles: "+valueToGoStringDescriptor(this.JavaMultipleFiles, "bool")+",\n") - } - if this.JavaGenerateEqualsAndHash != nil { - s = append(s, "JavaGenerateEqualsAndHash: "+valueToGoStringDescriptor(this.JavaGenerateEqualsAndHash, "bool")+",\n") - } - if this.JavaStringCheckUtf8 != nil { - s = append(s, "JavaStringCheckUtf8: "+valueToGoStringDescriptor(this.JavaStringCheckUtf8, "bool")+",\n") - } - if this.OptimizeFor != nil { - s = append(s, "OptimizeFor: "+valueToGoStringDescriptor(this.OptimizeFor, "descriptor.FileOptions_OptimizeMode")+",\n") - } - if this.GoPackage != nil { - s = append(s, "GoPackage: "+valueToGoStringDescriptor(this.GoPackage, "string")+",\n") - } - if this.CcGenericServices != nil { - s = append(s, "CcGenericServices: "+valueToGoStringDescriptor(this.CcGenericServices, "bool")+",\n") - } - if this.JavaGenericServices != nil { - s = append(s, "JavaGenericServices: "+valueToGoStringDescriptor(this.JavaGenericServices, "bool")+",\n") - } - if this.PyGenericServices != nil { - s = append(s, "PyGenericServices: "+valueToGoStringDescriptor(this.PyGenericServices, "bool")+",\n") - } - if this.Deprecated != nil { - s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") - } - if this.CcEnableArenas != nil { - s = append(s, "CcEnableArenas: "+valueToGoStringDescriptor(this.CcEnableArenas, "bool")+",\n") - } - if this.ObjcClassPrefix != nil { - s = append(s, "ObjcClassPrefix: "+valueToGoStringDescriptor(this.ObjcClassPrefix, "string")+",\n") - } - if this.CsharpNamespace != nil { - s = append(s, "CsharpNamespace: "+valueToGoStringDescriptor(this.CsharpNamespace, "string")+",\n") - } - if this.JavananoUseDeprecatedPackage != nil { - s = append(s, "JavananoUseDeprecatedPackage: "+valueToGoStringDescriptor(this.JavananoUseDeprecatedPackage, "bool")+",\n") - } - if this.UninterpretedOption != nil { - s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") - } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *MessageOptions) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 9) - s = append(s, "&descriptor.MessageOptions{") - if this.MessageSetWireFormat != nil { - s = append(s, "MessageSetWireFormat: "+valueToGoStringDescriptor(this.MessageSetWireFormat, "bool")+",\n") - } - if this.NoStandardDescriptorAccessor != nil { - s = append(s, "NoStandardDescriptorAccessor: "+valueToGoStringDescriptor(this.NoStandardDescriptorAccessor, "bool")+",\n") - } - if this.Deprecated != nil { - s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") - } - if this.MapEntry != nil { - s = append(s, "MapEntry: "+valueToGoStringDescriptor(this.MapEntry, "bool")+",\n") - } - if this.UninterpretedOption != nil { - s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") - } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *FieldOptions) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 11) - s = append(s, "&descriptor.FieldOptions{") - if this.Ctype != nil { - s = append(s, "Ctype: "+valueToGoStringDescriptor(this.Ctype, "descriptor.FieldOptions_CType")+",\n") - } - if this.Packed != nil { - s = append(s, "Packed: "+valueToGoStringDescriptor(this.Packed, "bool")+",\n") - } - if this.Jstype != nil { - s = append(s, "Jstype: "+valueToGoStringDescriptor(this.Jstype, "descriptor.FieldOptions_JSType")+",\n") - } - if this.Lazy != nil { - s = append(s, "Lazy: "+valueToGoStringDescriptor(this.Lazy, "bool")+",\n") - } - if this.Deprecated != nil { - s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") - } - if this.Weak != nil { - s = append(s, "Weak: "+valueToGoStringDescriptor(this.Weak, "bool")+",\n") - } - if this.UninterpretedOption != nil { - s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") - } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *EnumOptions) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&descriptor.EnumOptions{") - if this.AllowAlias != nil { - s = append(s, "AllowAlias: "+valueToGoStringDescriptor(this.AllowAlias, "bool")+",\n") - } - if this.Deprecated != nil { - s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") - } - if this.UninterpretedOption != nil { - s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") - } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *EnumValueOptions) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&descriptor.EnumValueOptions{") - if this.Deprecated != nil { - s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") - } - if this.UninterpretedOption != nil { - s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") - } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ServiceOptions) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&descriptor.ServiceOptions{") - if this.Deprecated != nil { - s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") - } - if this.UninterpretedOption != nil { - s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") - } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *MethodOptions) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&descriptor.MethodOptions{") - if this.Deprecated != nil { - s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") - } - if this.UninterpretedOption != nil { - s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") - } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UninterpretedOption) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 11) - s = append(s, "&descriptor.UninterpretedOption{") - if this.Name != nil { - s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n") - } - if this.IdentifierValue != nil { - s = append(s, "IdentifierValue: "+valueToGoStringDescriptor(this.IdentifierValue, "string")+",\n") - } - if this.PositiveIntValue != nil { - s = append(s, "PositiveIntValue: "+valueToGoStringDescriptor(this.PositiveIntValue, "uint64")+",\n") - } - if this.NegativeIntValue != nil { - s = append(s, "NegativeIntValue: "+valueToGoStringDescriptor(this.NegativeIntValue, "int64")+",\n") - } - if this.DoubleValue != nil { - s = append(s, "DoubleValue: "+valueToGoStringDescriptor(this.DoubleValue, "float64")+",\n") - } - if this.StringValue != nil { - s = append(s, "StringValue: "+valueToGoStringDescriptor(this.StringValue, "byte")+",\n") - } - if this.AggregateValue != nil { - s = append(s, "AggregateValue: "+valueToGoStringDescriptor(this.AggregateValue, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UninterpretedOption_NamePart) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&descriptor.UninterpretedOption_NamePart{") - if this.NamePart != nil { - s = append(s, "NamePart: "+valueToGoStringDescriptor(this.NamePart, "string")+",\n") - } - if this.IsExtension != nil { - s = append(s, "IsExtension: "+valueToGoStringDescriptor(this.IsExtension, "bool")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *SourceCodeInfo) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&descriptor.SourceCodeInfo{") - if this.Location != nil { - s = append(s, "Location: "+fmt.Sprintf("%#v", this.Location)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *SourceCodeInfo_Location) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 9) - s = append(s, "&descriptor.SourceCodeInfo_Location{") - if this.Path != nil { - s = append(s, "Path: "+fmt.Sprintf("%#v", this.Path)+",\n") - } - if this.Span != nil { - s = append(s, "Span: "+fmt.Sprintf("%#v", this.Span)+",\n") - } - if this.LeadingComments != nil { - s = append(s, "LeadingComments: "+valueToGoStringDescriptor(this.LeadingComments, "string")+",\n") - } - if this.TrailingComments != nil { - s = append(s, "TrailingComments: "+valueToGoStringDescriptor(this.TrailingComments, "string")+",\n") - } - if this.LeadingDetachedComments != nil { - s = append(s, "LeadingDetachedComments: "+fmt.Sprintf("%#v", this.LeadingDetachedComments)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringDescriptor(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func extensionToGoStringDescriptor(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/helper.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/helper.go deleted file mode 100644 index cf88f3cc..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor/helper.go +++ /dev/null @@ -1,342 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -package descriptor - -import ( - "strings" -) - -func (msg *DescriptorProto) GetMapFields() (*FieldDescriptorProto, *FieldDescriptorProto) { - if !msg.GetOptions().GetMapEntry() { - return nil, nil - } - return msg.GetField()[0], msg.GetField()[1] -} - -func dotToUnderscore(r rune) rune { - if r == '.' { - return '_' - } - return r -} - -func (field *FieldDescriptorProto) WireType() (wire int) { - switch *field.Type { - case FieldDescriptorProto_TYPE_DOUBLE: - return 1 - case FieldDescriptorProto_TYPE_FLOAT: - return 5 - case FieldDescriptorProto_TYPE_INT64: - return 0 - case FieldDescriptorProto_TYPE_UINT64: - return 0 - case FieldDescriptorProto_TYPE_INT32: - return 0 - case FieldDescriptorProto_TYPE_UINT32: - return 0 - case FieldDescriptorProto_TYPE_FIXED64: - return 1 - case FieldDescriptorProto_TYPE_FIXED32: - return 5 - case FieldDescriptorProto_TYPE_BOOL: - return 0 - case FieldDescriptorProto_TYPE_STRING: - return 2 - case FieldDescriptorProto_TYPE_GROUP: - return 2 - case FieldDescriptorProto_TYPE_MESSAGE: - return 2 - case FieldDescriptorProto_TYPE_BYTES: - return 2 - case FieldDescriptorProto_TYPE_ENUM: - return 0 - case FieldDescriptorProto_TYPE_SFIXED32: - return 5 - case FieldDescriptorProto_TYPE_SFIXED64: - return 1 - case FieldDescriptorProto_TYPE_SINT32: - return 0 - case FieldDescriptorProto_TYPE_SINT64: - return 0 - } - panic("unreachable") -} - -func (field *FieldDescriptorProto) GetKeyUint64() (x uint64) { - packed := field.IsPacked() - wireType := field.WireType() - fieldNumber := field.GetNumber() - if packed { - wireType = 2 - } - x = uint64(uint32(fieldNumber)<<3 | uint32(wireType)) - return x -} - -func (field *FieldDescriptorProto) GetKey() []byte { - x := field.GetKeyUint64() - i := 0 - keybuf := make([]byte, 0) - for i = 0; x > 127; i++ { - keybuf = append(keybuf, 0x80|uint8(x&0x7F)) - x >>= 7 - } - keybuf = append(keybuf, uint8(x)) - return keybuf -} - -func (desc *FileDescriptorSet) GetField(packageName, messageName, fieldName string) *FieldDescriptorProto { - msg := desc.GetMessage(packageName, messageName) - if msg == nil { - return nil - } - for _, field := range msg.GetField() { - if field.GetName() == fieldName { - return field - } - } - return nil -} - -func (file *FileDescriptorProto) GetMessage(typeName string) *DescriptorProto { - for _, msg := range file.GetMessageType() { - if msg.GetName() == typeName { - return msg - } - for _, nes := range msg.GetNestedType() { - if nes.GetName() == typeName { - return nes - } - if msg.GetName()+"."+nes.GetName() == typeName { - return nes - } - } - } - return nil -} - -func (desc *FileDescriptorSet) GetMessage(packageName string, typeName string) *DescriptorProto { - for _, file := range desc.GetFile() { - if strings.Map(dotToUnderscore, file.GetPackage()) != strings.Map(dotToUnderscore, packageName) { - continue - } - for _, msg := range file.GetMessageType() { - if msg.GetName() == typeName { - return msg - } - } - for _, msg := range file.GetMessageType() { - for _, nes := range msg.GetNestedType() { - if nes.GetName() == typeName { - return nes - } - if msg.GetName()+"."+nes.GetName() == typeName { - return nes - } - } - } - } - return nil -} - -func (desc *FileDescriptorSet) IsProto3(packageName string, typeName string) bool { - for _, file := range desc.GetFile() { - if strings.Map(dotToUnderscore, file.GetPackage()) != strings.Map(dotToUnderscore, packageName) { - continue - } - for _, msg := range file.GetMessageType() { - if msg.GetName() == typeName { - return file.GetSyntax() == "proto3" - } - } - for _, msg := range file.GetMessageType() { - for _, nes := range msg.GetNestedType() { - if nes.GetName() == typeName { - return file.GetSyntax() == "proto3" - } - if msg.GetName()+"."+nes.GetName() == typeName { - return file.GetSyntax() == "proto3" - } - } - } - } - return false -} - -func (msg *DescriptorProto) IsExtendable() bool { - return len(msg.GetExtensionRange()) > 0 -} - -func (desc *FileDescriptorSet) FindExtension(packageName string, typeName string, fieldName string) (extPackageName string, field *FieldDescriptorProto) { - parent := desc.GetMessage(packageName, typeName) - if parent == nil { - return "", nil - } - if !parent.IsExtendable() { - return "", nil - } - extendee := "." + packageName + "." + typeName - for _, file := range desc.GetFile() { - for _, ext := range file.GetExtension() { - if strings.Map(dotToUnderscore, file.GetPackage()) == strings.Map(dotToUnderscore, packageName) { - if !(ext.GetExtendee() == typeName || ext.GetExtendee() == extendee) { - continue - } - } else { - if ext.GetExtendee() != extendee { - continue - } - } - if ext.GetName() == fieldName { - return file.GetPackage(), ext - } - } - } - return "", nil -} - -func (desc *FileDescriptorSet) FindExtensionByFieldNumber(packageName string, typeName string, fieldNum int32) (extPackageName string, field *FieldDescriptorProto) { - parent := desc.GetMessage(packageName, typeName) - if parent == nil { - return "", nil - } - if !parent.IsExtendable() { - return "", nil - } - extendee := "." + packageName + "." + typeName - for _, file := range desc.GetFile() { - for _, ext := range file.GetExtension() { - if strings.Map(dotToUnderscore, file.GetPackage()) == strings.Map(dotToUnderscore, packageName) { - if !(ext.GetExtendee() == typeName || ext.GetExtendee() == extendee) { - continue - } - } else { - if ext.GetExtendee() != extendee { - continue - } - } - if ext.GetNumber() == fieldNum { - return file.GetPackage(), ext - } - } - } - return "", nil -} - -func (desc *FileDescriptorSet) FindMessage(packageName string, typeName string, fieldName string) (msgPackageName string, msgName string) { - parent := desc.GetMessage(packageName, typeName) - if parent == nil { - return "", "" - } - field := parent.GetFieldDescriptor(fieldName) - if field == nil { - var extPackageName string - extPackageName, field = desc.FindExtension(packageName, typeName, fieldName) - if field == nil { - return "", "" - } - packageName = extPackageName - } - typeNames := strings.Split(field.GetTypeName(), ".") - if len(typeNames) == 1 { - msg := desc.GetMessage(packageName, typeName) - if msg == nil { - return "", "" - } - return packageName, msg.GetName() - } - if len(typeNames) > 2 { - for i := 1; i < len(typeNames)-1; i++ { - packageName = strings.Join(typeNames[1:len(typeNames)-i], ".") - typeName = strings.Join(typeNames[len(typeNames)-i:], ".") - msg := desc.GetMessage(packageName, typeName) - if msg != nil { - typeNames := strings.Split(msg.GetName(), ".") - if len(typeNames) == 1 { - return packageName, msg.GetName() - } - return strings.Join(typeNames[1:len(typeNames)-1], "."), typeNames[len(typeNames)-1] - } - } - } - return "", "" -} - -func (msg *DescriptorProto) GetFieldDescriptor(fieldName string) *FieldDescriptorProto { - for _, field := range msg.GetField() { - if field.GetName() == fieldName { - return field - } - } - return nil -} - -func (desc *FileDescriptorSet) GetEnum(packageName string, typeName string) *EnumDescriptorProto { - for _, file := range desc.GetFile() { - if strings.Map(dotToUnderscore, file.GetPackage()) != strings.Map(dotToUnderscore, packageName) { - continue - } - for _, enum := range file.GetEnumType() { - if enum.GetName() == typeName { - return enum - } - } - } - return nil -} - -func (f *FieldDescriptorProto) IsEnum() bool { - return *f.Type == FieldDescriptorProto_TYPE_ENUM -} - -func (f *FieldDescriptorProto) IsMessage() bool { - return *f.Type == FieldDescriptorProto_TYPE_MESSAGE -} - -func (f *FieldDescriptorProto) IsBytes() bool { - return *f.Type == FieldDescriptorProto_TYPE_BYTES -} - -func (f *FieldDescriptorProto) IsRepeated() bool { - return f.Label != nil && *f.Label == FieldDescriptorProto_LABEL_REPEATED -} - -func (f *FieldDescriptorProto) IsString() bool { - return *f.Type == FieldDescriptorProto_TYPE_STRING -} - -func (f *FieldDescriptorProto) IsRequired() bool { - return f.Label != nil && *f.Label == FieldDescriptorProto_LABEL_REQUIRED -} - -func (f *FieldDescriptorProto) IsPacked() bool { - return f.Options != nil && f.GetOptions().GetPacked() -} - -func (m *DescriptorProto) HasExtension() bool { - return len(m.ExtensionRange) > 0 -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/doc.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/doc.go deleted file mode 100644 index 15c7cf43..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/doc.go +++ /dev/null @@ -1,51 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -/* - A plugin for the Google protocol buffer compiler to generate Go code. - Run it by building this program and putting it in your path with the name - protoc-gen-gogo - That word 'gogo' at the end becomes part of the option string set for the - protocol compiler, so once the protocol compiler (protoc) is installed - you can run - protoc --gogo_out=output_directory input_directory/file.proto - to generate Go bindings for the protocol defined by file.proto. - With that input, the output will be written to - output_directory/go_package/file.pb.go - - The generated code is documented in the package comment for - the library. - - See the README and documentation for protocol buffers to learn more: - https://developers.google.com/protocol-buffers/ - -*/ -package documentation diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator/generator.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator/generator.go deleted file mode 100644 index 88753a90..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator/generator.go +++ /dev/null @@ -1,2829 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -/* - The code generator for the plugin for the Google protocol buffer compiler. - It generates Go code from the protocol buffer description files read by the - main routine. -*/ -package generator - -import ( - "bufio" - "bytes" - "fmt" - "go/parser" - "go/printer" - "go/token" - "log" - "os" - "path" - "sort" - "strconv" - "strings" - "unicode" - "unicode/utf8" - - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - plugin "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/plugin" -) - -// A Plugin provides functionality to add to the output during Go code generation, -// such as to produce RPC stubs. -type Plugin interface { - // Name identifies the plugin. - Name() string - // Init is called once after data structures are built but before - // code generation begins. - Init(g *Generator) - // Generate produces the code generated by the plugin for this file, - // except for the imports, by calling the generator's methods P, In, and Out. - Generate(file *FileDescriptor) - // GenerateImports produces the import declarations for this file. - // It is called after Generate. - GenerateImports(file *FileDescriptor) -} - -type pluginSlice []Plugin - -func (ps pluginSlice) Len() int { - return len(ps) -} - -func (ps pluginSlice) Less(i, j int) bool { - return ps[i].Name() < ps[j].Name() -} - -func (ps pluginSlice) Swap(i, j int) { - ps[i], ps[j] = ps[j], ps[i] -} - -var plugins pluginSlice - -// RegisterPlugin installs a (second-order) plugin to be run when the Go output is generated. -// It is typically called during initialization. -func RegisterPlugin(p Plugin) { - plugins = append(plugins, p) -} - -// Each type we import as a protocol buffer (other than FileDescriptorProto) needs -// a pointer to the FileDescriptorProto that represents it. These types achieve that -// wrapping by placing each Proto inside a struct with the pointer to its File. The -// structs have the same names as their contents, with "Proto" removed. -// FileDescriptor is used to store the things that it points to. - -// The file and package name method are common to messages and enums. -type common struct { - file *descriptor.FileDescriptorProto // File this object comes from. -} - -// PackageName is name in the package clause in the generated file. -func (c *common) PackageName() string { return uniquePackageOf(c.file) } - -func (c *common) File() *descriptor.FileDescriptorProto { return c.file } - -func fileIsProto3(file *descriptor.FileDescriptorProto) bool { - return file.GetSyntax() == "proto3" -} - -func (c *common) proto3() bool { return fileIsProto3(c.file) } - -// Descriptor represents a protocol buffer message. -type Descriptor struct { - common - *descriptor.DescriptorProto - parent *Descriptor // The containing message, if any. - nested []*Descriptor // Inner messages, if any. - enums []*EnumDescriptor // Inner enums, if any. - ext []*ExtensionDescriptor // Extensions, if any. - typename []string // Cached typename vector. - index int // The index into the container, whether the file or another message. - path string // The SourceCodeInfo path as comma-separated integers. - group bool -} - -// TypeName returns the elements of the dotted type name. -// The package name is not part of this name. -func (d *Descriptor) TypeName() []string { - if d.typename != nil { - return d.typename - } - n := 0 - for parent := d; parent != nil; parent = parent.parent { - n++ - } - s := make([]string, n, n) - for parent := d; parent != nil; parent = parent.parent { - n-- - s[n] = parent.GetName() - } - d.typename = s - return s -} - -func (d *Descriptor) allowOneof() bool { - return true -} - -// EnumDescriptor describes an enum. If it's at top level, its parent will be nil. -// Otherwise it will be the descriptor of the message in which it is defined. -type EnumDescriptor struct { - common - *descriptor.EnumDescriptorProto - parent *Descriptor // The containing message, if any. - typename []string // Cached typename vector. - index int // The index into the container, whether the file or a message. - path string // The SourceCodeInfo path as comma-separated integers. -} - -// TypeName returns the elements of the dotted type name. -// The package name is not part of this name. -func (e *EnumDescriptor) TypeName() (s []string) { - if e.typename != nil { - return e.typename - } - name := e.GetName() - if e.parent == nil { - s = make([]string, 1) - } else { - pname := e.parent.TypeName() - s = make([]string, len(pname)+1) - copy(s, pname) - } - s[len(s)-1] = name - e.typename = s - return s -} - -// Everything but the last element of the full type name, CamelCased. -// The values of type Foo.Bar are call Foo_value1... not Foo_Bar_value1... . -func (e *EnumDescriptor) prefix() string { - if e.parent == nil { - // If the enum is not part of a message, the prefix is just the type name. - return CamelCase(*e.Name) + "_" - } - typeName := e.TypeName() - return CamelCaseSlice(typeName[0:len(typeName)-1]) + "_" -} - -// The integer value of the named constant in this enumerated type. -func (e *EnumDescriptor) integerValueAsString(name string) string { - for _, c := range e.Value { - if c.GetName() == name { - return fmt.Sprint(c.GetNumber()) - } - } - log.Fatal("cannot find value for enum constant") - return "" -} - -// ExtensionDescriptor describes an extension. If it's at top level, its parent will be nil. -// Otherwise it will be the descriptor of the message in which it is defined. -type ExtensionDescriptor struct { - common - *descriptor.FieldDescriptorProto - parent *Descriptor // The containing message, if any. -} - -// TypeName returns the elements of the dotted type name. -// The package name is not part of this name. -func (e *ExtensionDescriptor) TypeName() (s []string) { - name := e.GetName() - if e.parent == nil { - // top-level extension - s = make([]string, 1) - } else { - pname := e.parent.TypeName() - s = make([]string, len(pname)+1) - copy(s, pname) - } - s[len(s)-1] = name - return s -} - -// DescName returns the variable name used for the generated descriptor. -func (e *ExtensionDescriptor) DescName() string { - // The full type name. - typeName := e.TypeName() - // Each scope of the extension is individually CamelCased, and all are joined with "_" with an "E_" prefix. - for i, s := range typeName { - typeName[i] = CamelCase(s) - } - return "E_" + strings.Join(typeName, "_") -} - -// ImportedDescriptor describes a type that has been publicly imported from another file. -type ImportedDescriptor struct { - common - o Object -} - -func (id *ImportedDescriptor) TypeName() []string { return id.o.TypeName() } - -// FileDescriptor describes an protocol buffer descriptor file (.proto). -// It includes slices of all the messages and enums defined within it. -// Those slices are constructed by WrapTypes. -type FileDescriptor struct { - *descriptor.FileDescriptorProto - desc []*Descriptor // All the messages defined in this file. - enum []*EnumDescriptor // All the enums defined in this file. - ext []*ExtensionDescriptor // All the top-level extensions defined in this file. - imp []*ImportedDescriptor // All types defined in files publicly imported by this file. - - // Comments, stored as a map of path (comma-separated integers) to the comment. - comments map[string]*descriptor.SourceCodeInfo_Location - - // The full list of symbols that are exported, - // as a map from the exported object to its symbols. - // This is used for supporting public imports. - exported map[Object][]symbol - - index int // The index of this file in the list of files to generate code for - - proto3 bool // whether to generate proto3 code for this file -} - -// PackageName is the package name we'll use in the generated code to refer to this file. -func (d *FileDescriptor) PackageName() string { return uniquePackageOf(d.FileDescriptorProto) } - -// goPackageName returns the Go package name to use in the -// generated Go file. The result explicit reports whether the name -// came from an option go_package statement. If explicit is false, -// the name was derived from the protocol buffer's package statement -// or the input file name. -func (d *FileDescriptor) goPackageName() (name string, explicit bool) { - // Does the file have a "go_package" option? - if opts := d.Options; opts != nil { - if pkg := opts.GetGoPackage(); pkg != "" { - return pkg, true - } - } - - // Does the file have a package clause? - if pkg := d.GetPackage(); pkg != "" { - return pkg, false - } - // Use the file base name. - return baseName(d.GetName()), false -} - -func (d *FileDescriptor) addExport(obj Object, sym symbol) { - d.exported[obj] = append(d.exported[obj], sym) -} - -// symbol is an interface representing an exported Go symbol. -type symbol interface { - // GenerateAlias should generate an appropriate alias - // for the symbol from the named package. - GenerateAlias(g *Generator, pkg string) -} - -type messageSymbol struct { - sym string - hasExtensions, isMessageSet bool - hasOneof bool - getters []getterSymbol -} - -type getterSymbol struct { - name string - typ string - typeName string // canonical name in proto world; empty for proto.Message and similar - genType bool // whether typ contains a generated type (message/group/enum) -} - -func (ms *messageSymbol) GenerateAlias(g *Generator, pkg string) { - remoteSym := pkg + "." + ms.sym - - g.P("type ", ms.sym, " ", remoteSym) - g.P("func (m *", ms.sym, ") Reset() { (*", remoteSym, ")(m).Reset() }") - g.P("func (m *", ms.sym, ") String() string { return (*", remoteSym, ")(m).String() }") - g.P("func (*", ms.sym, ") ProtoMessage() {}") - if ms.hasExtensions { - g.P("func (*", ms.sym, ") ExtensionRangeArray() []", g.Pkg["proto"], ".ExtensionRange ", - "{ return (*", remoteSym, ")(nil).ExtensionRangeArray() }") - g.P("func (m *", ms.sym, ") ExtensionMap() map[int32]", g.Pkg["proto"], ".Extension ", - "{ return (*", remoteSym, ")(m).ExtensionMap() }") - if ms.isMessageSet { - g.P("func (m *", ms.sym, ") Marshal() ([]byte, error) ", - "{ return (*", remoteSym, ")(m).Marshal() }") - g.P("func (m *", ms.sym, ") Unmarshal(buf []byte) error ", - "{ return (*", remoteSym, ")(m).Unmarshal(buf) }") - } - } - if ms.hasOneof { - // Oneofs and public imports do not mix well. - // We can make them work okay for the binary format, - // but they're going to break weirdly for text/JSON. - enc := "_" + ms.sym + "_OneofMarshaler" - dec := "_" + ms.sym + "_OneofUnmarshaler" - encSig := "(msg " + g.Pkg["proto"] + ".Message, b *" + g.Pkg["proto"] + ".Buffer) error" - decSig := "(msg " + g.Pkg["proto"] + ".Message, tag, wire int, b *" + g.Pkg["proto"] + ".Buffer) (bool, error)" - g.P("func (m *", ms.sym, ") XXX_OneofFuncs() (func", encSig, ", func", decSig, ", []interface{}) {") - g.P("return ", enc, ", ", dec, ", nil") - g.P("}") - - g.P("func ", enc, encSig, " {") - g.P("m := msg.(*", ms.sym, ")") - g.P("m0 := (*", remoteSym, ")(m)") - g.P("enc, _, _ := m0.XXX_OneofFuncs()") - g.P("return enc(m0, b)") - g.P("}") - - g.P("func ", dec, decSig, " {") - g.P("m := msg.(*", ms.sym, ")") - g.P("m0 := (*", remoteSym, ")(m)") - g.P("_, dec, _ := m0.XXX_OneofFuncs()") - g.P("return dec(m0, tag, wire, b)") - g.P("}") - } - for _, get := range ms.getters { - - if get.typeName != "" { - g.RecordTypeUse(get.typeName) - } - typ := get.typ - val := "(*" + remoteSym + ")(m)." + get.name + "()" - if get.genType { - // typ will be "*pkg.T" (message/group) or "pkg.T" (enum) - // or "map[t]*pkg.T" (map to message/enum). - // The first two of those might have a "[]" prefix if it is repeated. - // Drop any package qualifier since we have hoisted the type into this package. - rep := strings.HasPrefix(typ, "[]") - if rep { - typ = typ[2:] - } - isMap := strings.HasPrefix(typ, "map[") - star := typ[0] == '*' - if !isMap { // map types handled lower down - typ = typ[strings.Index(typ, ".")+1:] - } - if star { - typ = "*" + typ - } - if rep { - // Go does not permit conversion between slice types where both - // element types are named. That means we need to generate a bit - // of code in this situation. - // typ is the element type. - // val is the expression to get the slice from the imported type. - - ctyp := typ // conversion type expression; "Foo" or "(*Foo)" - if star { - ctyp = "(" + typ + ")" - } - - g.P("func (m *", ms.sym, ") ", get.name, "() []", typ, " {") - g.In() - g.P("o := ", val) - g.P("if o == nil {") - g.In() - g.P("return nil") - g.Out() - g.P("}") - g.P("s := make([]", typ, ", len(o))") - g.P("for i, x := range o {") - g.In() - g.P("s[i] = ", ctyp, "(x)") - g.Out() - g.P("}") - g.P("return s") - g.Out() - g.P("}") - continue - } - if isMap { - // Split map[keyTyp]valTyp. - bra, ket := strings.Index(typ, "["), strings.Index(typ, "]") - keyTyp, valTyp := typ[bra+1:ket], typ[ket+1:] - // Drop any package qualifier. - // Only the value type may be foreign. - star := valTyp[0] == '*' - valTyp = valTyp[strings.Index(valTyp, ".")+1:] - if star { - valTyp = "*" + valTyp - } - - typ := "map[" + keyTyp + "]" + valTyp - g.P("func (m *", ms.sym, ") ", get.name, "() ", typ, " {") - g.P("o := ", val) - g.P("if o == nil { return nil }") - g.P("s := make(", typ, ", len(o))") - g.P("for k, v := range o {") - g.P("s[k] = (", valTyp, ")(v)") - g.P("}") - g.P("return s") - g.P("}") - continue - } - // Convert imported type into the forwarding type. - val = "(" + typ + ")(" + val + ")" - } - - g.P("func (m *", ms.sym, ") ", get.name, "() ", typ, " { return ", val, " }") - } - -} - -type enumSymbol struct { - name string - proto3 bool // Whether this came from a proto3 file. -} - -func (es enumSymbol) GenerateAlias(g *Generator, pkg string) { - s := es.name - g.P("type ", s, " ", pkg, ".", s) - g.P("var ", s, "_name = ", pkg, ".", s, "_name") - g.P("var ", s, "_value = ", pkg, ".", s, "_value") - g.P("func (x ", s, ") String() string { return (", pkg, ".", s, ")(x).String() }") - if !es.proto3 { - g.P("func (x ", s, ") Enum() *", s, "{ return (*", s, ")((", pkg, ".", s, ")(x).Enum()) }") - g.P("func (x *", s, ") UnmarshalJSON(data []byte) error { return (*", pkg, ".", s, ")(x).UnmarshalJSON(data) }") - } -} - -type constOrVarSymbol struct { - sym string - typ string // either "const" or "var" - cast string // if non-empty, a type cast is required (used for enums) -} - -func (cs constOrVarSymbol) GenerateAlias(g *Generator, pkg string) { - v := pkg + "." + cs.sym - if cs.cast != "" { - v = cs.cast + "(" + v + ")" - } - g.P(cs.typ, " ", cs.sym, " = ", v) -} - -// Object is an interface abstracting the abilities shared by enums, messages, extensions and imported objects. -type Object interface { - PackageName() string // The name we use in our output (a_b_c), possibly renamed for uniqueness. - TypeName() []string - File() *descriptor.FileDescriptorProto -} - -// Each package name we generate must be unique. The package we're generating -// gets its own name but every other package must have a unique name that does -// not conflict in the code we generate. These names are chosen globally (although -// they don't have to be, it simplifies things to do them globally). -func uniquePackageOf(fd *descriptor.FileDescriptorProto) string { - s, ok := uniquePackageName[fd] - if !ok { - log.Fatal("internal error: no package name defined for " + fd.GetName()) - } - return s -} - -// Generator is the type whose methods generate the output, stored in the associated response structure. -type Generator struct { - *bytes.Buffer - - Request *plugin.CodeGeneratorRequest // The input. - Response *plugin.CodeGeneratorResponse // The output. - - Param map[string]string // Command-line parameters. - PackageImportPath string // Go import path of the package we're generating code for - ImportPrefix string // String to prefix to imported package file names. - ImportMap map[string]string // Mapping from import name to generated name - - Pkg map[string]string // The names under which we import support packages - - packageName string // What we're calling ourselves. - allFiles []*FileDescriptor // All files in the tree - allFilesByName map[string]*FileDescriptor // All files by filename. - genFiles []*FileDescriptor // Those files we will generate output for. - file *FileDescriptor // The file we are compiling now. - usedPackages map[string]bool // Names of packages used in current file. - typeNameToObject map[string]Object // Key is a fully-qualified name in input syntax. - init []string // Lines to emit in the init function. - indent string - writeOutput bool - - customImports []string - writtenImports map[string]bool // For de-duplicating written imports -} - -// New creates a new generator and allocates the request and response protobufs. -func New() *Generator { - g := new(Generator) - g.Buffer = new(bytes.Buffer) - g.Request = new(plugin.CodeGeneratorRequest) - g.Response = new(plugin.CodeGeneratorResponse) - g.writtenImports = make(map[string]bool) - uniquePackageName = make(map[*descriptor.FileDescriptorProto]string) - pkgNamesInUse = make(map[string][]*FileDescriptor) - return g -} - -// Error reports a problem, including an error, and exits the program. -func (g *Generator) Error(err error, msgs ...string) { - s := strings.Join(msgs, " ") + ":" + err.Error() - log.Print("protoc-gen-gogo: error:", s) - os.Exit(1) -} - -// Fail reports a problem and exits the program. -func (g *Generator) Fail(msgs ...string) { - s := strings.Join(msgs, " ") - log.Print("protoc-gen-gogo: error:", s) - os.Exit(1) -} - -// CommandLineParameters breaks the comma-separated list of key=value pairs -// in the parameter (a member of the request protobuf) into a key/value map. -// It then sets file name mappings defined by those entries. -func (g *Generator) CommandLineParameters(parameter string) { - g.Param = make(map[string]string) - for _, p := range strings.Split(parameter, ",") { - if i := strings.Index(p, "="); i < 0 { - g.Param[p] = "" - } else { - g.Param[p[0:i]] = p[i+1:] - } - } - - g.ImportMap = make(map[string]string) - pluginList := "none" // Default list of plugin names to enable (empty means all). - for k, v := range g.Param { - switch k { - case "import_prefix": - g.ImportPrefix = v - case "import_path": - g.PackageImportPath = v - case "plugins": - pluginList = v - default: - if len(k) > 0 && k[0] == 'M' { - g.ImportMap[k[1:]] = v - } - } - } - - if pluginList == "" { - return - } - if pluginList == "none" { - pluginList = "" - } - gogoPluginNames := []string{"unmarshal", "unsafeunmarshaler", "union", "stringer", "size", "populate", "marshalto", "unsafemarshaler", "gostring", "face", "equal", "enumstringer", "embedcheck", "description", "defaultcheck", "oneofcheck"} - pluginList = strings.Join(append(gogoPluginNames, pluginList), "+") - if pluginList != "" { - // Amend the set of plugins. - enabled := make(map[string]bool) - for _, name := range strings.Split(pluginList, "+") { - enabled[name] = true - } - var nplugins pluginSlice - for _, p := range plugins { - if enabled[p.Name()] { - nplugins = append(nplugins, p) - } - } - sort.Sort(nplugins) - plugins = nplugins - } -} - -// DefaultPackageName returns the package name printed for the object. -// If its file is in a different package, it returns the package name we're using for this file, plus ".". -// Otherwise it returns the empty string. -func (g *Generator) DefaultPackageName(obj Object) string { - pkg := obj.PackageName() - if pkg == g.packageName { - return "" - } - return pkg + "." -} - -// For each input file, the unique package name to use, underscored. -var uniquePackageName = make(map[*descriptor.FileDescriptorProto]string) - -// Package names already registered. Key is the name from the .proto file; -// value is the name that appears in the generated code. -var pkgNamesInUse = make(map[string][]*FileDescriptor) - -// Create and remember a guaranteed unique package name for this file descriptor. -// Pkg is the candidate name. If f is nil, it's a builtin package like "proto" and -// has no file descriptor. -func RegisterUniquePackageName(pkg string, f *FileDescriptor) string { - // Convert dots to underscores before finding a unique alias. - pkg = strings.Map(badToUnderscore, pkg) - - var i = -1 - var ptr *FileDescriptor = nil - for i, ptr = range pkgNamesInUse[pkg] { - if ptr == f { - if i == 0 { - return pkg - } - return pkg + strconv.Itoa(i) - } - } - - pkgNamesInUse[pkg] = append(pkgNamesInUse[pkg], f) - i += 1 - - if i > 0 { - pkg = pkg + strconv.Itoa(i) - } - - if f != nil { - uniquePackageName[f.FileDescriptorProto] = pkg - } - return pkg -} - -var isGoKeyword = map[string]bool{ - "break": true, - "case": true, - "chan": true, - "const": true, - "continue": true, - "default": true, - "else": true, - "defer": true, - "fallthrough": true, - "for": true, - "func": true, - "go": true, - "goto": true, - "if": true, - "import": true, - "interface": true, - "map": true, - "package": true, - "range": true, - "return": true, - "select": true, - "struct": true, - "switch": true, - "type": true, - "var": true, -} - -// defaultGoPackage returns the package name to use, -// derived from the import path of the package we're building code for. -func (g *Generator) defaultGoPackage() string { - p := g.PackageImportPath - if i := strings.LastIndex(p, "/"); i >= 0 { - p = p[i+1:] - } - if p == "" { - return "" - } - - p = strings.Map(badToUnderscore, p) - // Identifier must not be keyword: insert _. - if isGoKeyword[p] { - p = "_" + p - } - // Identifier must not begin with digit: insert _. - if r, _ := utf8.DecodeRuneInString(p); unicode.IsDigit(r) { - p = "_" + p - } - return p -} - -// SetPackageNames sets the package name for this run. -// The package name must agree across all files being generated. -// It also defines unique package names for all imported files. -func (g *Generator) SetPackageNames() { - // Register the name for this package. It will be the first name - // registered so is guaranteed to be unmodified. - pkg, explicit := g.genFiles[0].goPackageName() - - // Check all files for an explicit go_package option. - for _, f := range g.genFiles { - thisPkg, thisExplicit := f.goPackageName() - if thisExplicit { - if !explicit { - // Let this file's go_package option serve for all input files. - pkg, explicit = thisPkg, true - } else if thisPkg != pkg { - g.Fail("inconsistent package names:", thisPkg, pkg) - } - } - } - - // If we don't have an explicit go_package option but we have an - // import path, use that. - if !explicit { - p := g.defaultGoPackage() - if p != "" { - pkg, explicit = p, true - } - } - - // If there was no go_package and no import path to use, - // double-check that all the inputs have the same implicit - // Go package name. - if !explicit { - for _, f := range g.genFiles { - thisPkg, _ := f.goPackageName() - if thisPkg != pkg { - g.Fail("inconsistent package names:", thisPkg, pkg) - } - } - } - - g.packageName = RegisterUniquePackageName(pkg, g.genFiles[0]) - - // Register the support package names. They might collide with the - // name of a package we import. - g.Pkg = map[string]string{ - "fmt": RegisterUniquePackageName("fmt", nil), - "math": RegisterUniquePackageName("math", nil), - "proto": RegisterUniquePackageName("proto", nil), - } - -AllFiles: - for _, f := range g.allFiles { - for _, genf := range g.genFiles { - if f == genf { - // In this package already. - uniquePackageName[f.FileDescriptorProto] = g.packageName - continue AllFiles - } - } - // The file is a dependency, so we want to ignore its go_package option - // because that is only relevant for its specific generated output. - pkg := f.GetPackage() - if pkg == "" { - pkg = baseName(*f.Name) - } - RegisterUniquePackageName(pkg, f) - } -} - -// WrapTypes walks the incoming data, wrapping DescriptorProtos, EnumDescriptorProtos -// and FileDescriptorProtos into file-referenced objects within the Generator. -// It also creates the list of files to generate and so should be called before GenerateAllFiles. -func (g *Generator) WrapTypes() { - g.allFiles = make([]*FileDescriptor, len(g.Request.ProtoFile)) - g.allFilesByName = make(map[string]*FileDescriptor, len(g.allFiles)) - for i, f := range g.Request.ProtoFile { - // We must wrap the descriptors before we wrap the enums - descs := wrapDescriptors(f) - g.buildNestedDescriptors(descs) - enums := wrapEnumDescriptors(f, descs) - g.buildNestedEnums(descs, enums) - exts := wrapExtensions(f) - fd := &FileDescriptor{ - FileDescriptorProto: f, - desc: descs, - enum: enums, - ext: exts, - exported: make(map[Object][]symbol), - proto3: fileIsProto3(f), - } - extractComments(fd) - g.allFiles[i] = fd - g.allFilesByName[f.GetName()] = fd - } - for _, fd := range g.allFiles { - fd.imp = wrapImported(fd.FileDescriptorProto, g) - } - - g.genFiles = make([]*FileDescriptor, len(g.Request.FileToGenerate)) - for i, fileName := range g.Request.FileToGenerate { - g.genFiles[i] = g.allFilesByName[fileName] - if g.genFiles[i] == nil { - g.Fail("could not find file named", fileName) - } - g.genFiles[i].index = i - } - g.Response.File = make([]*plugin.CodeGeneratorResponse_File, len(g.genFiles)) -} - -// Scan the descriptors in this file. For each one, build the slice of nested descriptors -func (g *Generator) buildNestedDescriptors(descs []*Descriptor) { - for _, desc := range descs { - if len(desc.NestedType) != 0 { - for _, nest := range descs { - if nest.parent == desc { - desc.nested = append(desc.nested, nest) - } - } - if len(desc.nested) != len(desc.NestedType) { - g.Fail("internal error: nesting failure for", desc.GetName()) - } - } - } -} - -func (g *Generator) buildNestedEnums(descs []*Descriptor, enums []*EnumDescriptor) { - for _, desc := range descs { - if len(desc.EnumType) != 0 { - for _, enum := range enums { - if enum.parent == desc { - desc.enums = append(desc.enums, enum) - } - } - if len(desc.enums) != len(desc.EnumType) { - g.Fail("internal error: enum nesting failure for", desc.GetName()) - } - } - } -} - -// Construct the Descriptor -func newDescriptor(desc *descriptor.DescriptorProto, parent *Descriptor, file *descriptor.FileDescriptorProto, index int) *Descriptor { - d := &Descriptor{ - common: common{file}, - DescriptorProto: desc, - parent: parent, - index: index, - } - if parent == nil { - d.path = fmt.Sprintf("%d,%d", messagePath, index) - } else { - d.path = fmt.Sprintf("%s,%d,%d", parent.path, messageMessagePath, index) - } - - // The only way to distinguish a group from a message is whether - // the containing message has a TYPE_GROUP field that matches. - if parent != nil { - parts := d.TypeName() - if file.Package != nil { - parts = append([]string{*file.Package}, parts...) - } - exp := "." + strings.Join(parts, ".") - for _, field := range parent.Field { - if field.GetType() == descriptor.FieldDescriptorProto_TYPE_GROUP && field.GetTypeName() == exp { - d.group = true - break - } - } - } - - d.ext = make([]*ExtensionDescriptor, len(desc.Extension)) - for i, field := range desc.Extension { - d.ext[i] = &ExtensionDescriptor{common{file}, field, d} - } - - return d -} - -// Return a slice of all the Descriptors defined within this file -func wrapDescriptors(file *descriptor.FileDescriptorProto) []*Descriptor { - sl := make([]*Descriptor, 0, len(file.MessageType)+10) - for i, desc := range file.MessageType { - sl = wrapThisDescriptor(sl, desc, nil, file, i) - } - return sl -} - -// Wrap this Descriptor, recursively -func wrapThisDescriptor(sl []*Descriptor, desc *descriptor.DescriptorProto, parent *Descriptor, file *descriptor.FileDescriptorProto, index int) []*Descriptor { - sl = append(sl, newDescriptor(desc, parent, file, index)) - me := sl[len(sl)-1] - for i, nested := range desc.NestedType { - sl = wrapThisDescriptor(sl, nested, me, file, i) - } - return sl -} - -// Construct the EnumDescriptor -func newEnumDescriptor(desc *descriptor.EnumDescriptorProto, parent *Descriptor, file *descriptor.FileDescriptorProto, index int) *EnumDescriptor { - ed := &EnumDescriptor{ - common: common{file}, - EnumDescriptorProto: desc, - parent: parent, - index: index, - } - if parent == nil { - ed.path = fmt.Sprintf("%d,%d", enumPath, index) - } else { - ed.path = fmt.Sprintf("%s,%d,%d", parent.path, messageEnumPath, index) - } - return ed -} - -// Return a slice of all the EnumDescriptors defined within this file -func wrapEnumDescriptors(file *descriptor.FileDescriptorProto, descs []*Descriptor) []*EnumDescriptor { - sl := make([]*EnumDescriptor, 0, len(file.EnumType)+10) - // Top-level enums. - for i, enum := range file.EnumType { - sl = append(sl, newEnumDescriptor(enum, nil, file, i)) - } - // Enums within messages. Enums within embedded messages appear in the outer-most message. - for _, nested := range descs { - for i, enum := range nested.EnumType { - sl = append(sl, newEnumDescriptor(enum, nested, file, i)) - } - } - return sl -} - -// Return a slice of all the top-level ExtensionDescriptors defined within this file. -func wrapExtensions(file *descriptor.FileDescriptorProto) []*ExtensionDescriptor { - sl := make([]*ExtensionDescriptor, len(file.Extension)) - for i, field := range file.Extension { - sl[i] = &ExtensionDescriptor{common{file}, field, nil} - } - return sl -} - -// Return a slice of all the types that are publicly imported into this file. -func wrapImported(file *descriptor.FileDescriptorProto, g *Generator) (sl []*ImportedDescriptor) { - for _, index := range file.PublicDependency { - df := g.fileByName(file.Dependency[index]) - for _, d := range df.desc { - if d.GetOptions().GetMapEntry() { - continue - } - sl = append(sl, &ImportedDescriptor{common{file}, d}) - } - for _, e := range df.enum { - sl = append(sl, &ImportedDescriptor{common{file}, e}) - } - for _, ext := range df.ext { - sl = append(sl, &ImportedDescriptor{common{file}, ext}) - } - } - return -} - -func extractComments(file *FileDescriptor) { - file.comments = make(map[string]*descriptor.SourceCodeInfo_Location) - for _, loc := range file.GetSourceCodeInfo().GetLocation() { - if loc.LeadingComments == nil { - continue - } - var p []string - for _, n := range loc.Path { - p = append(p, strconv.Itoa(int(n))) - } - file.comments[strings.Join(p, ",")] = loc - } -} - -// BuildTypeNameMap builds the map from fully qualified type names to objects. -// The key names for the map come from the input data, which puts a period at the beginning. -// It should be called after SetPackageNames and before GenerateAllFiles. -func (g *Generator) BuildTypeNameMap() { - g.typeNameToObject = make(map[string]Object) - for _, f := range g.allFiles { - // The names in this loop are defined by the proto world, not us, so the - // package name may be empty. If so, the dotted package name of X will - // be ".X"; otherwise it will be ".pkg.X". - dottedPkg := "." + f.GetPackage() - if dottedPkg != "." { - dottedPkg += "." - } - for _, enum := range f.enum { - name := dottedPkg + dottedSlice(enum.TypeName()) - g.typeNameToObject[name] = enum - } - for _, desc := range f.desc { - name := dottedPkg + dottedSlice(desc.TypeName()) - g.typeNameToObject[name] = desc - } - } -} - -// ObjectNamed, given a fully-qualified input type name as it appears in the input data, -// returns the descriptor for the message or enum with that name. -func (g *Generator) ObjectNamed(typeName string) Object { - o, ok := g.typeNameToObject[typeName] - if !ok { - g.Fail("can't find object with type", typeName) - } - - // If the file of this object isn't a direct dependency of the current file, - // or in the current file, then this object has been publicly imported into - // a dependency of the current file. - // We should return the ImportedDescriptor object for it instead. - direct := *o.File().Name == *g.file.Name - if !direct { - for _, dep := range g.file.Dependency { - if *g.fileByName(dep).Name == *o.File().Name { - direct = true - break - } - } - } - if !direct { - found := false - Loop: - for _, dep := range g.file.Dependency { - df := g.fileByName(*g.fileByName(dep).Name) - for _, td := range df.imp { - if td.o == o { - // Found it! - o = td - found = true - break Loop - } - } - } - if !found { - log.Printf("protoc-gen-gogo: WARNING: failed finding publicly imported dependency for %v, used in %v", typeName, *g.file.Name) - } - } - - return o -} - -// P prints the arguments to the generated output. It handles strings and int32s, plus -// handling indirections because they may be *string, etc. -func (g *Generator) P(str ...interface{}) { - if !g.writeOutput { - return - } - g.WriteString(g.indent) - for _, v := range str { - switch s := v.(type) { - case string: - g.WriteString(s) - case *string: - g.WriteString(*s) - case bool: - fmt.Fprintf(g, "%t", s) - case *bool: - fmt.Fprintf(g, "%t", *s) - case int: - fmt.Fprintf(g, "%d", s) - case *int32: - fmt.Fprintf(g, "%d", *s) - case *int64: - fmt.Fprintf(g, "%d", *s) - case float64: - fmt.Fprintf(g, "%g", s) - case *float64: - fmt.Fprintf(g, "%g", *s) - default: - g.Fail(fmt.Sprintf("unknown type in printer: %T", v)) - } - } - g.WriteByte('\n') -} - -// addInitf stores the given statement to be printed inside the file's init function. -// The statement is given as a format specifier and arguments. -func (g *Generator) addInitf(stmt string, a ...interface{}) { - g.init = append(g.init, fmt.Sprintf(stmt, a...)) -} - -func (g *Generator) PrintImport(alias, pkg string) { - statement := "import " + alias + " " + strconv.Quote(pkg) - if g.writtenImports[statement] { - return - } - g.P(statement) - g.writtenImports[statement] = true -} - -// In Indents the output one tab stop. -func (g *Generator) In() { g.indent += "\t" } - -// Out unindents the output one tab stop. -func (g *Generator) Out() { - if len(g.indent) > 0 { - g.indent = g.indent[1:] - } -} - -// GenerateAllFiles generates the output for all the files we're outputting. -func (g *Generator) GenerateAllFiles() { - // Initialize the plugins - for _, p := range plugins { - p.Init(g) - } - // Generate the output. The generator runs for every file, even the files - // that we don't generate output for, so that we can collate the full list - // of exported symbols to support public imports. - genFileMap := make(map[*FileDescriptor]bool, len(g.genFiles)) - for _, file := range g.genFiles { - genFileMap[file] = true - } - i := 0 - for _, file := range g.allFiles { - g.Reset() - g.writeOutput = genFileMap[file] - g.generate(file) - if !g.writeOutput { - continue - } - g.Response.File[i] = new(plugin.CodeGeneratorResponse_File) - g.Response.File[i].Name = proto.String(goFileName(*file.Name)) - g.Response.File[i].Content = proto.String(g.String()) - i++ - } -} - -// Run all the plugins associated with the file. -func (g *Generator) runPlugins(file *FileDescriptor) { - for _, p := range plugins { - p.Generate(file) - } -} - -// FileOf return the FileDescriptor for this FileDescriptorProto. -func (g *Generator) FileOf(fd *descriptor.FileDescriptorProto) *FileDescriptor { - for _, file := range g.allFiles { - if file.FileDescriptorProto == fd { - return file - } - } - g.Fail("could not find file in table:", fd.GetName()) - return nil -} - -// Fill the response protocol buffer with the generated output for all the files we're -// supposed to generate. -func (g *Generator) generate(file *FileDescriptor) { - g.customImports = make([]string, 0) - g.file = g.FileOf(file.FileDescriptorProto) - g.usedPackages = make(map[string]bool) - // Reset on each file - g.writtenImports = make(map[string]bool) - - for _, td := range g.file.imp { - g.generateImported(td) - } - for _, enum := range g.file.enum { - g.generateEnum(enum) - } - for _, desc := range g.file.desc { - // Don't generate virtual messages for maps. - if desc.GetOptions().GetMapEntry() { - continue - } - g.generateMessage(desc) - } - for _, ext := range g.file.ext { - g.generateExtension(ext) - } - g.generateInitFunction() - - // Run the plugins before the imports so we know which imports are necessary. - g.runPlugins(file) - - // Generate header and imports last, though they appear first in the output. - rem := g.Buffer - g.Buffer = new(bytes.Buffer) - g.generateHeader() - g.generateImports() - if !g.writeOutput { - return - } - g.Write(rem.Bytes()) - - // Reformat generated code. - fset := token.NewFileSet() - raw := g.Bytes() - ast, err := parser.ParseFile(fset, "", g, parser.ParseComments) - if err != nil { - // Print out the bad code with line numbers. - // This should never happen in practice, but it can while changing generated code, - // so consider this a debugging aid. - var src bytes.Buffer - s := bufio.NewScanner(bytes.NewReader(raw)) - for line := 1; s.Scan(); line++ { - fmt.Fprintf(&src, "%5d\t%s\n", line, s.Bytes()) - } - if serr := s.Err(); serr != nil { - g.Fail("bad Go source code was generated:", err.Error(), "\n"+string(raw)) - } else { - g.Fail("bad Go source code was generated:", err.Error(), "\n"+src.String()) - } - } - g.Reset() - err = (&printer.Config{Mode: printer.TabIndent | printer.UseSpaces, Tabwidth: 8}).Fprint(g, fset, ast) - if err != nil { - g.Fail("generated Go source code could not be reformatted:", err.Error()) - } -} - -// Generate the header, including package definition -func (g *Generator) generateHeader() { - g.P("// Code generated by protoc-gen-gogo.") - g.P("// source: ", *g.file.Name) - g.P("// DO NOT EDIT!") - g.P() - - name := g.file.PackageName() - - if g.file.index == 0 { - // Generate package docs for the first file in the package. - g.P("/*") - g.P("Package ", name, " is a generated protocol buffer package.") - g.P() - if loc, ok := g.file.comments[strconv.Itoa(packagePath)]; ok { - // not using g.PrintComments because this is a /* */ comment block. - text := strings.TrimSuffix(loc.GetLeadingComments(), "\n") - for _, line := range strings.Split(text, "\n") { - line = strings.TrimPrefix(line, " ") - // ensure we don't escape from the block comment - line = strings.Replace(line, "*/", "* /", -1) - g.P(line) - } - g.P() - } - var topMsgs []string - g.P("It is generated from these files:") - for _, f := range g.genFiles { - g.P("\t", f.Name) - for _, msg := range f.desc { - if msg.parent != nil { - continue - } - topMsgs = append(topMsgs, CamelCaseSlice(msg.TypeName())) - } - } - g.P() - g.P("It has these top-level messages:") - for _, msg := range topMsgs { - g.P("\t", msg) - } - g.P("*/") - } - - g.P("package ", name) - g.P() -} - -// PrintComments prints any comments from the source .proto file. -// The path is a comma-separated list of integers. -// It returns an indication of whether any comments were printed. -// See descriptor.proto for its format. -func (g *Generator) PrintComments(path string) bool { - if !g.writeOutput { - return false - } - if loc, ok := g.file.comments[path]; ok { - text := strings.TrimSuffix(loc.GetLeadingComments(), "\n") - for _, line := range strings.Split(text, "\n") { - g.P("// ", strings.TrimPrefix(line, " ")) - } - return true - } - return false -} - -// Comments returns any comments from the source .proto file and empty string if comments not found. -// The path is a comma-separated list of intergers. -// See descriptor.proto for its format. -func (g *Generator) Comments(path string) string { - loc, ok := g.file.comments[path] - if !ok { - return "" - } - text := strings.TrimSuffix(loc.GetLeadingComments(), "\n") - return text -} - -func (g *Generator) fileByName(filename string) *FileDescriptor { - return g.allFilesByName[filename] -} - -// weak returns whether the ith import of the current file is a weak import. -func (g *Generator) weak(i int32) bool { - for _, j := range g.file.WeakDependency { - if j == i { - return true - } - } - return false -} - -// Generate the imports -func (g *Generator) generateImports() { - // We almost always need a proto import. Rather than computing when we - // do, which is tricky when there's a plugin, just import it and - // reference it later. The same argument applies to the fmt and math packages. - if gogoproto.ImportsGoGoProto(g.file.FileDescriptorProto) { - g.PrintImport(g.Pkg["proto"], g.ImportPrefix+"github.com/gogo/protobuf/proto") - } else { - g.PrintImport(g.Pkg["proto"], g.ImportPrefix+"github.com/golang/protobuf/proto") - } - g.PrintImport(g.Pkg["fmt"], "fmt") - g.PrintImport(g.Pkg["math"], "math") - - for i, s := range g.file.Dependency { - fd := g.fileByName(s) - // Do not import our own package. - if fd.PackageName() == g.packageName { - continue - } - filename := goFileName(s) - // By default, import path is the dirname of the Go filename. - importPath := path.Dir(filename) - if substitution, ok := g.ImportMap[s]; ok { - importPath = substitution - } - importPath = g.ImportPrefix + importPath - // Skip weak imports. - if g.weak(int32(i)) { - g.P("// skipping weak import ", fd.PackageName(), " ", strconv.Quote(importPath)) - continue - } - // We need to import all the dependencies, even if we don't reference them, - // because other code and tools depend on having the full transitive closure - // of protocol buffer types in the binary. - if _, ok := g.usedPackages[fd.PackageName()]; ok { - g.PrintImport(fd.PackageName(), importPath) - } else { - g.P("import _ ", strconv.Quote(importPath)) - } - } - g.P() - for _, s := range g.customImports { - s1 := strings.Map(badToUnderscore, s) - g.PrintImport(s1, s) - } - g.P() - // TODO: may need to worry about uniqueness across plugins - for _, p := range plugins { - p.GenerateImports(g.file) - g.P() - } - g.P("// Reference imports to suppress errors if they are not otherwise used.") - g.P("var _ = ", g.Pkg["proto"], ".Marshal") - g.P("var _ = ", g.Pkg["fmt"], ".Errorf") - g.P("var _ = ", g.Pkg["math"], ".Inf") - g.P() -} - -func (g *Generator) generateImported(id *ImportedDescriptor) { - // Don't generate public import symbols for files that we are generating - // code for, since those symbols will already be in this package. - // We can't simply avoid creating the ImportedDescriptor objects, - // because g.genFiles isn't populated at that stage. - tn := id.TypeName() - sn := tn[len(tn)-1] - df := g.FileOf(id.o.File()) - filename := *df.Name - for _, fd := range g.genFiles { - if *fd.Name == filename { - g.P("// Ignoring public import of ", sn, " from ", filename) - g.P() - return - } - } - g.P("// ", sn, " from public import ", filename) - g.usedPackages[df.PackageName()] = true - - for _, sym := range df.exported[id.o] { - sym.GenerateAlias(g, df.PackageName()) - } - - g.P() -} - -// Generate the enum definitions for this EnumDescriptor. -func (g *Generator) generateEnum(enum *EnumDescriptor) { - // The full type name - typeName := enum.TypeName() - // The full type name, CamelCased. - ccTypeName := CamelCaseSlice(typeName) - ccPrefix := enum.prefix() - - g.PrintComments(enum.path) - if !gogoproto.EnabledGoEnumPrefix(enum.file, enum.EnumDescriptorProto) { - ccPrefix = "" - } - g.P("type ", ccTypeName, " int32") - g.file.addExport(enum, enumSymbol{ccTypeName, enum.proto3()}) - g.P("const (") - g.In() - for i, e := range enum.Value { - g.PrintComments(fmt.Sprintf("%s,%d,%d", enum.path, enumValuePath, i)) - - name := ccPrefix + *e.Name - g.P(name, " ", ccTypeName, " = ", e.Number) - g.file.addExport(enum, constOrVarSymbol{name, "const", ccTypeName}) - } - g.Out() - g.P(")") - g.P("var ", ccTypeName, "_name = map[int32]string{") - g.In() - generated := make(map[int32]bool) // avoid duplicate values - for _, e := range enum.Value { - duplicate := "" - if _, present := generated[*e.Number]; present { - duplicate = "// Duplicate value: " - } - g.P(duplicate, e.Number, ": ", strconv.Quote(*e.Name), ",") - generated[*e.Number] = true - } - g.Out() - g.P("}") - g.P("var ", ccTypeName, "_value = map[string]int32{") - g.In() - for _, e := range enum.Value { - g.P(strconv.Quote(*e.Name), ": ", e.Number, ",") - } - g.Out() - g.P("}") - - if !enum.proto3() { - g.P("func (x ", ccTypeName, ") Enum() *", ccTypeName, " {") - g.In() - g.P("p := new(", ccTypeName, ")") - g.P("*p = x") - g.P("return p") - g.Out() - g.P("}") - } - - if gogoproto.IsGoEnumStringer(g.file.FileDescriptorProto, enum.EnumDescriptorProto) { - g.P("func (x ", ccTypeName, ") String() string {") - g.In() - g.P("return ", g.Pkg["proto"], ".EnumName(", ccTypeName, "_name, int32(x))") - g.Out() - g.P("}") - } - - if !enum.proto3() && !gogoproto.IsGoEnumStringer(g.file.FileDescriptorProto, enum.EnumDescriptorProto) { - g.P("func (x ", ccTypeName, ") MarshalJSON() ([]byte, error) {") - g.In() - g.P("return ", g.Pkg["proto"], ".MarshalJSONEnum(", ccTypeName, "_name, int32(x))") - g.Out() - g.P("}") - } - if !enum.proto3() { - g.P("func (x *", ccTypeName, ") UnmarshalJSON(data []byte) error {") - g.In() - g.P("value, err := ", g.Pkg["proto"], ".UnmarshalJSONEnum(", ccTypeName, `_value, data, "`, ccTypeName, `")`) - g.P("if err != nil {") - g.In() - g.P("return err") - g.Out() - g.P("}") - g.P("*x = ", ccTypeName, "(value)") - g.P("return nil") - g.Out() - g.P("}") - } - g.P() -} - -// The tag is a string like "varint,2,opt,name=fieldname,def=7" that -// identifies details of the field for the protocol buffer marshaling and unmarshaling -// code. The fields are: -// wire encoding -// protocol tag number -// opt,req,rep for optional, required, or repeated -// packed whether the encoding is "packed" (optional; repeated primitives only) -// name= the original declared name -// enum= the name of the enum type if it is an enum-typed field. -// proto3 if this field is in a proto3 message -// def= string representation of the default value, if any. -// The default value must be in a representation that can be used at run-time -// to generate the default value. Thus bools become 0 and 1, for instance. -func (g *Generator) goTag(message *Descriptor, field *descriptor.FieldDescriptorProto, wiretype string) string { - optrepreq := "" - switch { - case isOptional(field): - optrepreq = "opt" - case isRequired(field): - optrepreq = "req" - case isRepeated(field): - optrepreq = "rep" - } - var defaultValue string - if dv := field.DefaultValue; dv != nil { // set means an explicit default - defaultValue = *dv - // Some types need tweaking. - switch *field.Type { - case descriptor.FieldDescriptorProto_TYPE_BOOL: - if defaultValue == "true" { - defaultValue = "1" - } else { - defaultValue = "0" - } - case descriptor.FieldDescriptorProto_TYPE_STRING, - descriptor.FieldDescriptorProto_TYPE_BYTES: - // Nothing to do. Quoting is done for the whole tag. - case descriptor.FieldDescriptorProto_TYPE_ENUM: - // For enums we need to provide the integer constant. - obj := g.ObjectNamed(field.GetTypeName()) - if id, ok := obj.(*ImportedDescriptor); ok { - // It is an enum that was publicly imported. - // We need the underlying type. - obj = id.o - } - enum, ok := obj.(*EnumDescriptor) - if !ok { - log.Printf("obj is a %T", obj) - if id, ok := obj.(*ImportedDescriptor); ok { - log.Printf("id.o is a %T", id.o) - } - g.Fail("unknown enum type", CamelCaseSlice(obj.TypeName())) - } - defaultValue = enum.integerValueAsString(defaultValue) - } - defaultValue = ",def=" + defaultValue - } - enum := "" - if *field.Type == descriptor.FieldDescriptorProto_TYPE_ENUM { - // We avoid using obj.PackageName(), because we want to use the - // original (proto-world) package name. - obj := g.ObjectNamed(field.GetTypeName()) - if id, ok := obj.(*ImportedDescriptor); ok { - obj = id.o - } - enum = ",enum=" - if pkg := obj.File().GetPackage(); pkg != "" { - enum += pkg + "." - } - enum += CamelCaseSlice(obj.TypeName()) - } - packed := "" - if field.Options != nil && field.Options.GetPacked() { - packed = ",packed" - } - fieldName := field.GetName() - name := fieldName - if *field.Type == descriptor.FieldDescriptorProto_TYPE_GROUP { - // We must use the type name for groups instead of - // the field name to preserve capitalization. - // type_name in FieldDescriptorProto is fully-qualified, - // but we only want the local part. - name = *field.TypeName - if i := strings.LastIndex(name, "."); i >= 0 { - name = name[i+1:] - } - } - name = ",name=" + name - - embed := "" - if gogoproto.IsEmbed(field) { - embed = ",embedded=" + fieldName - } - - ctype := "" - if gogoproto.IsCustomType(field) { - ctype = ",customtype=" + gogoproto.GetCustomType(field) - } - - casttype := "" - if gogoproto.IsCastType(field) { - casttype = ",casttype=" + gogoproto.GetCastType(field) - } - - if message.proto3() { - // We only need the extra tag for []byte fields; - // no need to add noise for the others. - if *field.Type != descriptor.FieldDescriptorProto_TYPE_MESSAGE && - *field.Type != descriptor.FieldDescriptorProto_TYPE_GROUP && - !field.IsRepeated() { - name += ",proto3" - } - } - oneof := "" - if field.OneofIndex != nil { - oneof = ",oneof" - } - return strconv.Quote(fmt.Sprintf("%s,%d,%s%s%s%s%s%s%s%s%s", - wiretype, - field.GetNumber(), - optrepreq, - packed, - name, - enum, - oneof, - defaultValue, - embed, - ctype, - casttype)) -} - -func needsStar(field *descriptor.FieldDescriptorProto, proto3 bool, allowOneOf bool) bool { - if isRepeated(field) && - (*field.Type != descriptor.FieldDescriptorProto_TYPE_MESSAGE) && - (*field.Type != descriptor.FieldDescriptorProto_TYPE_GROUP) { - return false - } - if *field.Type == descriptor.FieldDescriptorProto_TYPE_BYTES && !gogoproto.IsCustomType(field) { - return false - } - if !gogoproto.IsNullable(field) { - return false - } - if field.OneofIndex != nil && allowOneOf && - (*field.Type != descriptor.FieldDescriptorProto_TYPE_MESSAGE) && - (*field.Type != descriptor.FieldDescriptorProto_TYPE_GROUP) { - return false - } - if proto3 && - (*field.Type != descriptor.FieldDescriptorProto_TYPE_MESSAGE) && - (*field.Type != descriptor.FieldDescriptorProto_TYPE_GROUP) { - return false - } - return true -} - -// TypeName is the printed name appropriate for an item. If the object is in the current file, -// TypeName drops the package name and underscores the rest. -// Otherwise the object is from another package; and the result is the underscored -// package name followed by the item name. -// The result always has an initial capital. -func (g *Generator) TypeName(obj Object) string { - return g.DefaultPackageName(obj) + CamelCaseSlice(obj.TypeName()) -} - -// TypeNameWithPackage is like TypeName, but always includes the package -// name even if the object is in our own package. -func (g *Generator) TypeNameWithPackage(obj Object) string { - return obj.PackageName() + CamelCaseSlice(obj.TypeName()) -} - -// GoType returns a string representing the type name, and the wire type -func (g *Generator) GoType(message *Descriptor, field *descriptor.FieldDescriptorProto) (typ string, wire string) { - // TODO: Options. - switch *field.Type { - case descriptor.FieldDescriptorProto_TYPE_DOUBLE: - typ, wire = "float64", "fixed64" - case descriptor.FieldDescriptorProto_TYPE_FLOAT: - typ, wire = "float32", "fixed32" - case descriptor.FieldDescriptorProto_TYPE_INT64: - typ, wire = "int64", "varint" - case descriptor.FieldDescriptorProto_TYPE_UINT64: - typ, wire = "uint64", "varint" - case descriptor.FieldDescriptorProto_TYPE_INT32: - typ, wire = "int32", "varint" - case descriptor.FieldDescriptorProto_TYPE_UINT32: - typ, wire = "uint32", "varint" - case descriptor.FieldDescriptorProto_TYPE_FIXED64: - typ, wire = "uint64", "fixed64" - case descriptor.FieldDescriptorProto_TYPE_FIXED32: - typ, wire = "uint32", "fixed32" - case descriptor.FieldDescriptorProto_TYPE_BOOL: - typ, wire = "bool", "varint" - case descriptor.FieldDescriptorProto_TYPE_STRING: - typ, wire = "string", "bytes" - case descriptor.FieldDescriptorProto_TYPE_GROUP: - desc := g.ObjectNamed(field.GetTypeName()) - typ, wire = g.TypeName(desc), "group" - case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - desc := g.ObjectNamed(field.GetTypeName()) - typ, wire = g.TypeName(desc), "bytes" - case descriptor.FieldDescriptorProto_TYPE_BYTES: - typ, wire = "[]byte", "bytes" - case descriptor.FieldDescriptorProto_TYPE_ENUM: - desc := g.ObjectNamed(field.GetTypeName()) - typ, wire = g.TypeName(desc), "varint" - case descriptor.FieldDescriptorProto_TYPE_SFIXED32: - typ, wire = "int32", "fixed32" - case descriptor.FieldDescriptorProto_TYPE_SFIXED64: - typ, wire = "int64", "fixed64" - case descriptor.FieldDescriptorProto_TYPE_SINT32: - typ, wire = "int32", "zigzag32" - case descriptor.FieldDescriptorProto_TYPE_SINT64: - typ, wire = "int64", "zigzag64" - default: - g.Fail("unknown type for", field.GetName()) - } - if gogoproto.IsCustomType(field) && gogoproto.IsCastType(field) { - g.Fail(field.GetName() + " cannot be custom type and cast type") - } - if gogoproto.IsCustomType(field) { - var packageName string - var err error - packageName, typ, err = getCustomType(field) - if err != nil { - g.Fail(err.Error()) - } - if len(packageName) > 0 { - g.customImports = append(g.customImports, packageName) - } - } - if gogoproto.IsCastType(field) { - var packageName string - var err error - packageName, typ, err = getCastType(field) - if err != nil { - g.Fail(err.Error()) - } - if len(packageName) > 0 { - g.customImports = append(g.customImports, packageName) - } - } - if needsStar(field, g.file.proto3, message != nil && message.allowOneof()) { - typ = "*" + typ - } - if isRepeated(field) { - typ = "[]" + typ - } - return -} - -func (g *Generator) RecordTypeUse(t string) { - if obj, ok := g.typeNameToObject[t]; ok { - // Call ObjectNamed to get the true object to record the use. - obj = g.ObjectNamed(t) - g.usedPackages[obj.PackageName()] = true - } -} - -// Method names that may be generated. Fields with these names get an -// underscore appended. -var methodNames = [...]string{ - "Reset", - "String", - "ProtoMessage", - "Marshal", - "Unmarshal", - "ExtensionRangeArray", - "ExtensionMap", - "Descriptor", - "Size", - "MarshalTo", - "Equal", - "VerboseEqual", - "GoString", -} - -// Generate the type and default constant definitions for this Descriptor. -func (g *Generator) generateMessage(message *Descriptor) { - // The full type name - typeName := message.TypeName() - // The full type name, CamelCased. - ccTypeName := CamelCaseSlice(typeName) - - usedNames := make(map[string]bool) - for _, n := range methodNames { - usedNames[n] = true - } - fieldNames := make(map[*descriptor.FieldDescriptorProto]string) - fieldGetterNames := make(map[*descriptor.FieldDescriptorProto]string) - fieldTypes := make(map[*descriptor.FieldDescriptorProto]string) - mapFieldTypes := make(map[*descriptor.FieldDescriptorProto]string) - - oneofFieldName := make(map[int32]string) // indexed by oneof_index field of FieldDescriptorProto - oneofDisc := make(map[int32]string) // name of discriminator method - oneofTypeName := make(map[*descriptor.FieldDescriptorProto]string) // without star - oneofInsertPoints := make(map[int32]int) // oneof_index => offset of g.Buffer - - g.PrintComments(message.path) - g.P("type ", ccTypeName, " struct {") - g.In() - - // allocNames finds a conflict-free variation of the given strings, - // consistently mutating their suffixes. - // It returns the same number of strings. - allocNames := func(ns ...string) []string { - Loop: - for { - for _, n := range ns { - if usedNames[n] { - for i := range ns { - ns[i] += "_" - } - continue Loop - } - } - for _, n := range ns { - usedNames[n] = true - } - return ns - } - } - - for i, field := range message.Field { - // Allocate the getter and the field at the same time so name - // collisions create field/method consistent names. - // TODO: This allocation occurs based on the order of the fields - // in the proto file, meaning that a change in the field - // ordering can change generated Method/Field names. - base := CamelCase(*field.Name) - if gogoproto.IsCustomName(field) { - base = gogoproto.GetCustomName(field) - } - ns := allocNames(base, "Get"+base) - fieldName, fieldGetterName := ns[0], ns[1] - typename, wiretype := g.GoType(message, field) - jsonName := *field.Name - jsonTag := jsonName + ",omitempty" - repeatedNativeType := (!field.IsMessage() && !gogoproto.IsCustomType(field) && field.IsRepeated()) - if !gogoproto.IsNullable(field) && !repeatedNativeType { - jsonTag = jsonName - } - gogoJsonTag := gogoproto.GetJsonTag(field) - if gogoJsonTag != nil { - jsonTag = *gogoJsonTag - } - gogoMoreTags := gogoproto.GetMoreTags(field) - moreTags := "" - if gogoMoreTags != nil { - moreTags = " " + *gogoMoreTags - } - tag := fmt.Sprintf("protobuf:%s json:%q%s", g.goTag(message, field, wiretype), jsonTag, moreTags) - fieldNames[field] = fieldName - fieldGetterNames[field] = fieldGetterName - if *field.Type == descriptor.FieldDescriptorProto_TYPE_MESSAGE && gogoproto.IsEmbed(field) { - fieldName = "" - } - - oneof := field.OneofIndex != nil && message.allowOneof() - if oneof && oneofFieldName[*field.OneofIndex] == "" { - odp := message.OneofDecl[int(*field.OneofIndex)] - fname := allocNames(CamelCase(odp.GetName()))[0] - - // This is the first field of a oneof we haven't seen before. - // Generate the union field. - com := g.PrintComments(fmt.Sprintf("%s,%d,%d", message.path, messageOneofPath, *field.OneofIndex)) - if com { - g.P("//") - } - g.P("// Types that are valid to be assigned to ", fname, ":") - // Generate the rest of this comment later, - // when we've computed any disambiguation. - oneofInsertPoints[*field.OneofIndex] = g.Buffer.Len() - - dname := "is" + ccTypeName + "_" + fname - oneofFieldName[*field.OneofIndex] = fname - oneofDisc[*field.OneofIndex] = dname - tag := `protobuf_oneof:"` + odp.GetName() + `"` - g.P(fname, " ", dname, " `", tag, "`") - } - - if *field.Type == descriptor.FieldDescriptorProto_TYPE_MESSAGE { - desc := g.ObjectNamed(field.GetTypeName()) - if d, ok := desc.(*Descriptor); ok && d.GetOptions().GetMapEntry() { - // Figure out the Go types and tags for the key and value types. - keyField, valField := d.Field[0], d.Field[1] - keyType, keyWire := g.GoType(d, keyField) - valType, valWire := g.GoType(d, valField) - keyTag, valTag := g.goTag(d, keyField, keyWire), g.goTag(d, valField, valWire) - - // We don't use stars, except for message-typed values. - // Message and enum types are the only two possibly foreign types used in maps, - // so record their use. They are not permitted as map keys. - keyType = strings.TrimPrefix(keyType, "*") - switch *valField.Type { - case descriptor.FieldDescriptorProto_TYPE_ENUM: - valType = strings.TrimPrefix(valType, "*") - g.RecordTypeUse(valField.GetTypeName()) - case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - g.RecordTypeUse(valField.GetTypeName()) - default: - valType = strings.TrimPrefix(valType, "*") - } - - typename = fmt.Sprintf("map[%s]%s", keyType, valType) - mapFieldTypes[field] = typename // record for the getter generation - - tag += fmt.Sprintf(" protobuf_key:%s protobuf_val:%s", keyTag, valTag) - } - } - - fieldTypes[field] = typename - - if oneof { - tname := ccTypeName + "_" + fieldName - // It is possible for this to collide with a message or enum - // nested in this message. Check for collisions. - for { - ok := true - for _, desc := range message.nested { - if CamelCaseSlice(desc.TypeName()) == tname { - ok = false - break - } - } - for _, enum := range message.enums { - if CamelCaseSlice(enum.TypeName()) == tname { - ok = false - break - } - } - if !ok { - tname += "_" - continue - } - break - } - - oneofTypeName[field] = tname - continue - } - - g.PrintComments(fmt.Sprintf("%s,%d,%d", message.path, messageFieldPath, i)) - g.P(fieldName, "\t", typename, "\t`", tag, "`") - g.RecordTypeUse(field.GetTypeName()) - } - if len(message.ExtensionRange) > 0 { - if gogoproto.HasExtensionsMap(g.file.FileDescriptorProto, message.DescriptorProto) { - g.P("XXX_extensions\t\tmap[int32]", g.Pkg["proto"], ".Extension `json:\"-\"`") - } else { - g.P("XXX_extensions\t\t[]byte `protobuf:\"bytes,0,opt\" json:\"-\"`") - } - } - if gogoproto.HasUnrecognized(g.file.FileDescriptorProto, message.DescriptorProto) && !message.proto3() { - g.P("XXX_unrecognized\t[]byte `json:\"-\"`") - } - g.Out() - g.P("}") - - // Update g.Buffer to list valid oneof types. - // We do this down here, after we've disambiguated the oneof type names. - // We go in reverse order of insertion point to avoid invalidating offsets. - for oi := int32(len(message.OneofDecl)); oi >= 0; oi-- { - ip := oneofInsertPoints[oi] - all := g.Buffer.Bytes() - rem := all[ip:] - g.Buffer = bytes.NewBuffer(all[:ip:ip]) // set cap so we don't scribble on rem - for _, field := range message.Field { - if field.OneofIndex == nil || *field.OneofIndex != oi { - continue - } - g.P("//\t*", oneofTypeName[field]) - } - g.Buffer.Write(rem) - } - - // Reset, String and ProtoMessage methods. - g.P("func (m *", ccTypeName, ") Reset() { *m = ", ccTypeName, "{} }") - if gogoproto.EnabledGoStringer(g.file.FileDescriptorProto, message.DescriptorProto) { - g.P("func (m *", ccTypeName, ") String() string { return ", g.Pkg["proto"], ".CompactTextString(m) }") - } - g.P("func (*", ccTypeName, ") ProtoMessage() {}") - - // Extension support methods - var hasExtensions, isMessageSet bool - if len(message.ExtensionRange) > 0 { - hasExtensions = true - // message_set_wire_format only makes sense when extensions are defined. - if opts := message.Options; opts != nil && opts.GetMessageSetWireFormat() { - isMessageSet = true - g.P() - g.P("func (m *", ccTypeName, ") Marshal() ([]byte, error) {") - g.In() - g.P("return ", g.Pkg["proto"], ".MarshalMessageSet(m.ExtensionMap())") - g.Out() - g.P("}") - g.P("func (m *", ccTypeName, ") Unmarshal(buf []byte) error {") - g.In() - g.P("return ", g.Pkg["proto"], ".UnmarshalMessageSet(buf, m.ExtensionMap())") - g.Out() - g.P("}") - g.P("func (m *", ccTypeName, ") MarshalJSON() ([]byte, error) {") - g.In() - g.P("return ", g.Pkg["proto"], ".MarshalMessageSetJSON(m.XXX_extensions)") - g.Out() - g.P("}") - g.P("func (m *", ccTypeName, ") UnmarshalJSON(buf []byte) error {") - g.In() - g.P("return ", g.Pkg["proto"], ".UnmarshalMessageSetJSON(buf, m.XXX_extensions)") - g.Out() - g.P("}") - g.P("// ensure ", ccTypeName, " satisfies proto.Marshaler and proto.Unmarshaler") - g.P("var _ ", g.Pkg["proto"], ".Marshaler = (*", ccTypeName, ")(nil)") - g.P("var _ ", g.Pkg["proto"], ".Unmarshaler = (*", ccTypeName, ")(nil)") - } - - g.P() - g.P("var extRange_", ccTypeName, " = []", g.Pkg["proto"], ".ExtensionRange{") - g.In() - for _, r := range message.ExtensionRange { - end := fmt.Sprint(*r.End - 1) // make range inclusive on both ends - g.P("{", r.Start, ", ", end, "},") - } - g.Out() - g.P("}") - g.P("func (*", ccTypeName, ") ExtensionRangeArray() []", g.Pkg["proto"], ".ExtensionRange {") - g.In() - g.P("return extRange_", ccTypeName) - g.Out() - g.P("}") - if gogoproto.HasExtensionsMap(g.file.FileDescriptorProto, message.DescriptorProto) { - g.P("func (m *", ccTypeName, ") ExtensionMap() map[int32]", g.Pkg["proto"], ".Extension {") - g.In() - g.P("if m.XXX_extensions == nil {") - g.In() - g.P("m.XXX_extensions = make(map[int32]", g.Pkg["proto"], ".Extension)") - g.Out() - g.P("}") - g.P("return m.XXX_extensions") - g.Out() - g.P("}") - } else { - g.P("func (m *", ccTypeName, ") GetExtensions() *[]byte {") - g.In() - g.P("if m.XXX_extensions == nil {") - g.In() - g.P("m.XXX_extensions = make([]byte, 0)") - g.Out() - g.P("}") - g.P("return &m.XXX_extensions") - g.Out() - g.P("}") - } - } - - // Default constants - defNames := make(map[*descriptor.FieldDescriptorProto]string) - for _, field := range message.Field { - def := field.GetDefaultValue() - if def == "" { - continue - } - if !gogoproto.IsNullable(field) { - g.Fail("illegal default value: ", field.GetName(), " in ", message.GetName(), " is not nullable and is thus not allowed to have a default value") - } - fieldname := "Default_" + ccTypeName + "_" + CamelCase(*field.Name) - defNames[field] = fieldname - typename, _ := g.GoType(message, field) - if typename[0] == '*' { - typename = typename[1:] - } - kind := "const " - switch { - case typename == "bool": - case typename == "string": - def = strconv.Quote(def) - case typename == "[]byte": - def = "[]byte(" + strconv.Quote(def) + ")" - kind = "var " - case def == "inf", def == "-inf", def == "nan": - // These names are known to, and defined by, the protocol language. - switch def { - case "inf": - def = "math.Inf(1)" - case "-inf": - def = "math.Inf(-1)" - case "nan": - def = "math.NaN()" - } - if *field.Type == descriptor.FieldDescriptorProto_TYPE_FLOAT { - def = "float32(" + def + ")" - } - kind = "var " - case *field.Type == descriptor.FieldDescriptorProto_TYPE_ENUM: - // Must be an enum. Need to construct the prefixed name. - obj := g.ObjectNamed(field.GetTypeName()) - var enum *EnumDescriptor - if id, ok := obj.(*ImportedDescriptor); ok { - // The enum type has been publicly imported. - enum, _ = id.o.(*EnumDescriptor) - } else { - enum, _ = obj.(*EnumDescriptor) - } - if enum == nil { - log.Printf("don't know how to generate constant for %s", fieldname) - continue - } - if gogoproto.EnabledGoEnumPrefix(enum.file, enum.EnumDescriptorProto) { - def = g.DefaultPackageName(obj) + enum.prefix() + def - } else { - def = g.DefaultPackageName(obj) + def - } - } - g.P(kind, fieldname, " ", typename, " = ", def) - g.file.addExport(message, constOrVarSymbol{fieldname, kind, ""}) - } - g.P() - - // Oneof per-field types, discriminants and getters. - if message.allowOneof() { - // Generate unexported named types for the discriminant interfaces. - // We shouldn't have to do this, but there was (~19 Aug 2015) a compiler/linker bug - // that was triggered by using anonymous interfaces here. - // TODO: Revisit this and consider reverting back to anonymous interfaces. - for oi := range message.OneofDecl { - dname := oneofDisc[int32(oi)] - g.P("type ", dname, " interface {") - g.In() - g.P(dname, "()") - if gogoproto.HasEqual(g.file.FileDescriptorProto, message.DescriptorProto) { - g.P(`Equal(interface{}) bool`) - } - if gogoproto.HasVerboseEqual(g.file.FileDescriptorProto, message.DescriptorProto) { - g.P(`VerboseEqual(interface{}) error`) - } - if gogoproto.IsMarshaler(g.file.FileDescriptorProto, message.DescriptorProto) || - gogoproto.IsUnsafeMarshaler(g.file.FileDescriptorProto, message.DescriptorProto) { - g.P(`MarshalTo([]byte) (int, error)`) - } - if gogoproto.IsSizer(g.file.FileDescriptorProto, message.DescriptorProto) { - g.P(`Size() int`) - } - g.Out() - g.P("}") - } - g.P() - for _, field := range message.Field { - if field.OneofIndex == nil { - continue - } - _, wiretype := g.GoType(message, field) - tag := "protobuf:" + g.goTag(message, field, wiretype) - g.P("type ", oneofTypeName[field], " struct{ ", fieldNames[field], " ", fieldTypes[field], " `", tag, "` }") - g.RecordTypeUse(field.GetTypeName()) - } - g.P() - for _, field := range message.Field { - if field.OneofIndex == nil { - continue - } - g.P("func (*", oneofTypeName[field], ") ", oneofDisc[*field.OneofIndex], "() {}") - } - g.P() - for oi := range message.OneofDecl { - fname := oneofFieldName[int32(oi)] - g.P("func (m *", ccTypeName, ") Get", fname, "() ", oneofDisc[int32(oi)], " {") - g.P("if m != nil { return m.", fname, " }") - g.P("return nil") - g.P("}") - } - g.P() - } - - // Field getters - var getters []getterSymbol - for _, field := range message.Field { - oneof := field.OneofIndex != nil && message.allowOneof() - if !oneof && !gogoproto.HasGoGetters(g.file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if gogoproto.IsEmbed(field) || gogoproto.IsCustomType(field) { - continue - } - fname := fieldNames[field] - typename, _ := g.GoType(message, field) - if t, ok := mapFieldTypes[field]; ok { - typename = t - } - mname := fieldGetterNames[field] - star := "" - if (*field.Type != descriptor.FieldDescriptorProto_TYPE_MESSAGE) && - (*field.Type != descriptor.FieldDescriptorProto_TYPE_GROUP) && - needsStar(field, g.file.proto3, message != nil && message.allowOneof()) && typename[0] == '*' { - typename = typename[1:] - star = "*" - } - - // In proto3, only generate getters for message fields and oneof fields. - if message.proto3() && *field.Type != descriptor.FieldDescriptorProto_TYPE_MESSAGE && !oneof { - continue - } - - // Only export getter symbols for basic types, - // and for messages and enums in the same package. - // Groups are not exported. - // Foreign types can't be hoisted through a public import because - // the importer may not already be importing the defining .proto. - // As an example, imagine we have an import tree like this: - // A.proto -> B.proto -> C.proto - // If A publicly imports B, we need to generate the getters from B in A's output, - // but if one such getter returns something from C then we cannot do that - // because A is not importing C already. - var getter, genType bool - switch *field.Type { - case descriptor.FieldDescriptorProto_TYPE_GROUP: - getter = false - case descriptor.FieldDescriptorProto_TYPE_MESSAGE, descriptor.FieldDescriptorProto_TYPE_ENUM: - // Only export getter if its return type is in this package. - getter = g.ObjectNamed(field.GetTypeName()).PackageName() == message.PackageName() - genType = true - default: - getter = true - } - if getter { - getters = append(getters, getterSymbol{ - name: mname, - typ: typename, - typeName: field.GetTypeName(), - genType: genType, - }) - } - - g.P("func (m *", ccTypeName, ") "+mname+"() "+typename+" {") - g.In() - def, hasDef := defNames[field] - typeDefaultIsNil := false // whether this field type's default value is a literal nil unless specified - switch *field.Type { - case descriptor.FieldDescriptorProto_TYPE_BYTES: - typeDefaultIsNil = !hasDef - case descriptor.FieldDescriptorProto_TYPE_GROUP, descriptor.FieldDescriptorProto_TYPE_MESSAGE: - typeDefaultIsNil = gogoproto.IsNullable(field) - } - if isRepeated(field) { - typeDefaultIsNil = true - } - if typeDefaultIsNil && !oneof { - // A bytes field with no explicit default needs less generated code, - // as does a message or group field, or a repeated field. - g.P("if m != nil {") - g.In() - g.P("return m." + fname) - g.Out() - g.P("}") - g.P("return nil") - g.Out() - g.P("}") - g.P() - continue - } - if !gogoproto.IsNullable(field) { - g.P("if m != nil {") - g.In() - g.P("return m." + fname) - g.Out() - g.P("}") - } else if !oneof { - g.P("if m != nil && m." + fname + " != nil {") - g.In() - g.P("return " + star + "m." + fname) - g.Out() - g.P("}") - } else { - uname := oneofFieldName[*field.OneofIndex] - tname := oneofTypeName[field] - g.P("if x, ok := m.Get", uname, "().(*", tname, "); ok {") - g.P("return x.", fname) - g.P("}") - } - if hasDef { - if *field.Type != descriptor.FieldDescriptorProto_TYPE_BYTES { - g.P("return " + def) - } else { - // The default is a []byte var. - // Make a copy when returning it to be safe. - g.P("return append([]byte(nil), ", def, "...)") - } - } else { - switch *field.Type { - case descriptor.FieldDescriptorProto_TYPE_GROUP, - descriptor.FieldDescriptorProto_TYPE_MESSAGE: - if field.OneofIndex != nil { - g.P(`return nil`) - } else { - goTyp, _ := g.GoType(message, field) - goTypName := GoTypeToName(goTyp) - g.P("return ", goTypName, "{}") - } - case descriptor.FieldDescriptorProto_TYPE_BOOL: - g.P("return false") - case descriptor.FieldDescriptorProto_TYPE_STRING: - g.P(`return ""`) - case descriptor.FieldDescriptorProto_TYPE_BYTES: - // This is only possible for oneof fields. - g.P("return nil") - case descriptor.FieldDescriptorProto_TYPE_ENUM: - // The default default for an enum is the first value in the enum, - // not zero. - obj := g.ObjectNamed(field.GetTypeName()) - var enum *EnumDescriptor - if id, ok := obj.(*ImportedDescriptor); ok { - // The enum type has been publicly imported. - enum, _ = id.o.(*EnumDescriptor) - } else { - enum, _ = obj.(*EnumDescriptor) - } - if enum == nil { - log.Printf("don't know how to generate getter for %s", field.GetName()) - continue - } - if len(enum.Value) == 0 { - g.P("return 0 // empty enum") - } else { - first := enum.Value[0].GetName() - if gogoproto.EnabledGoEnumPrefix(enum.file, enum.EnumDescriptorProto) { - g.P("return ", g.DefaultPackageName(obj)+enum.prefix()+first) - } else { - g.P("return ", g.DefaultPackageName(obj)+first) - } - } - default: - g.P("return 0") - } - } - g.Out() - g.P("}") - g.P() - } - - if !message.group { - ms := &messageSymbol{ - sym: ccTypeName, - hasExtensions: hasExtensions, - isMessageSet: isMessageSet, - hasOneof: len(message.OneofDecl) > 0, - getters: getters, - } - g.file.addExport(message, ms) - } - - // Oneof functions - if len(message.OneofDecl) > 0 && message.allowOneof() { - fieldWire := make(map[*descriptor.FieldDescriptorProto]string) - - // method - enc := "_" + ccTypeName + "_OneofMarshaler" - dec := "_" + ccTypeName + "_OneofUnmarshaler" - encSig := "(msg " + g.Pkg["proto"] + ".Message, b *" + g.Pkg["proto"] + ".Buffer) error" - decSig := "(msg " + g.Pkg["proto"] + ".Message, tag, wire int, b *" + g.Pkg["proto"] + ".Buffer) (bool, error)" - - g.P("// XXX_OneofFuncs is for the internal use of the proto package.") - g.P("func (*", ccTypeName, ") XXX_OneofFuncs() (func", encSig, ", func", decSig, ", []interface{}) {") - g.P("return ", enc, ", ", dec, ", []interface{}{") - for _, field := range message.Field { - if field.OneofIndex == nil { - continue - } - g.P("(*", oneofTypeName[field], ")(nil),") - } - g.P("}") - g.P("}") - g.P() - - // marshaler - g.P("func ", enc, encSig, " {") - g.P("m := msg.(*", ccTypeName, ")") - for oi, odp := range message.OneofDecl { - g.P("// ", odp.GetName()) - fname := oneofFieldName[int32(oi)] - g.P("switch x := m.", fname, ".(type) {") - for _, field := range message.Field { - if field.OneofIndex == nil || int(*field.OneofIndex) != oi { - continue - } - g.P("case *", oneofTypeName[field], ":") - var wire, pre, post string - val := "x." + fieldNames[field] // overridden for TYPE_BOOL - canFail := false // only TYPE_MESSAGE and TYPE_GROUP can fail - switch *field.Type { - case descriptor.FieldDescriptorProto_TYPE_DOUBLE: - wire = "WireFixed64" - pre = "b.EncodeFixed64(" + g.Pkg["math"] + ".Float64bits(" - post = "))" - case descriptor.FieldDescriptorProto_TYPE_FLOAT: - wire = "WireFixed32" - pre = "b.EncodeFixed32(uint64(" + g.Pkg["math"] + ".Float32bits(" - post = ")))" - case descriptor.FieldDescriptorProto_TYPE_INT64, - descriptor.FieldDescriptorProto_TYPE_UINT64: - wire = "WireVarint" - pre, post = "b.EncodeVarint(uint64(", "))" - case descriptor.FieldDescriptorProto_TYPE_INT32, - descriptor.FieldDescriptorProto_TYPE_UINT32, - descriptor.FieldDescriptorProto_TYPE_ENUM: - wire = "WireVarint" - pre, post = "b.EncodeVarint(uint64(", "))" - case descriptor.FieldDescriptorProto_TYPE_FIXED64, - descriptor.FieldDescriptorProto_TYPE_SFIXED64: - wire = "WireFixed64" - pre, post = "b.EncodeFixed64(uint64(", "))" - case descriptor.FieldDescriptorProto_TYPE_FIXED32, - descriptor.FieldDescriptorProto_TYPE_SFIXED32: - wire = "WireFixed32" - pre, post = "b.EncodeFixed32(uint64(", "))" - case descriptor.FieldDescriptorProto_TYPE_BOOL: - // bool needs special handling. - g.P("t := uint64(0)") - g.P("if ", val, " { t = 1 }") - val = "t" - wire = "WireVarint" - pre, post = "b.EncodeVarint(", ")" - case descriptor.FieldDescriptorProto_TYPE_STRING: - wire = "WireBytes" - pre, post = "b.EncodeStringBytes(", ")" - case descriptor.FieldDescriptorProto_TYPE_GROUP: - wire = "WireStartGroup" - pre, post = "b.Marshal(", ")" - canFail = true - case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - wire = "WireBytes" - pre, post = "b.EncodeMessage(", ")" - canFail = true - case descriptor.FieldDescriptorProto_TYPE_BYTES: - wire = "WireBytes" - pre, post = "b.EncodeRawBytes(", ")" - case descriptor.FieldDescriptorProto_TYPE_SINT32: - wire = "WireVarint" - pre, post = "b.EncodeZigzag32(uint64(", "))" - case descriptor.FieldDescriptorProto_TYPE_SINT64: - wire = "WireVarint" - pre, post = "b.EncodeZigzag64(uint64(", "))" - default: - g.Fail("unhandled oneof field type ", field.Type.String()) - } - fieldWire[field] = wire - g.P("_ = b.EncodeVarint(", field.Number, "<<3|", g.Pkg["proto"], ".", wire, ")") - if *field.Type == descriptor.FieldDescriptorProto_TYPE_BYTES && gogoproto.IsCustomType(field) { - g.P(`data, err := `, val, `.Marshal()`) - g.P(`if err != nil {`) - g.In() - g.P(`return err`) - g.Out() - g.P(`}`) - val = "data" - } - if !canFail { - g.P("_ = ", pre, val, post) - } else { - g.P("if err := ", pre, val, post, "; err != nil {") - g.In() - g.P("return err") - g.Out() - g.P("}") - } - if *field.Type == descriptor.FieldDescriptorProto_TYPE_GROUP { - g.P("_ = b.EncodeVarint(", field.Number, "<<3|", g.Pkg["proto"], ".WireEndGroup)") - } - } - g.P("case nil:") - g.P("default: return ", g.Pkg["fmt"], `.Errorf("`, ccTypeName, ".", fname, ` has unexpected type %T", x)`) - g.P("}") - } - g.P("return nil") - g.P("}") - g.P() - - // unmarshaler - g.P("func ", dec, decSig, " {") - g.P("m := msg.(*", ccTypeName, ")") - g.P("switch tag {") - for _, field := range message.Field { - if field.OneofIndex == nil { - continue - } - odp := message.OneofDecl[int(*field.OneofIndex)] - g.P("case ", field.Number, ": // ", odp.GetName(), ".", *field.Name) - g.P("if wire != ", g.Pkg["proto"], ".", fieldWire[field], " {") - g.P("return true, ", g.Pkg["proto"], ".ErrInternalBadWireType") - g.P("}") - lhs := "x, err" // overridden for TYPE_MESSAGE and TYPE_GROUP - var dec, cast, cast2 string - switch *field.Type { - case descriptor.FieldDescriptorProto_TYPE_DOUBLE: - dec, cast = "b.DecodeFixed64()", g.Pkg["math"]+".Float64frombits" - case descriptor.FieldDescriptorProto_TYPE_FLOAT: - dec, cast, cast2 = "b.DecodeFixed32()", "uint32", g.Pkg["math"]+".Float32frombits" - case descriptor.FieldDescriptorProto_TYPE_INT64: - dec, cast = "b.DecodeVarint()", "int64" - case descriptor.FieldDescriptorProto_TYPE_UINT64: - dec = "b.DecodeVarint()" - case descriptor.FieldDescriptorProto_TYPE_INT32: - dec, cast = "b.DecodeVarint()", "int32" - case descriptor.FieldDescriptorProto_TYPE_FIXED64: - dec = "b.DecodeFixed64()" - case descriptor.FieldDescriptorProto_TYPE_FIXED32: - dec, cast = "b.DecodeFixed32()", "uint32" - case descriptor.FieldDescriptorProto_TYPE_BOOL: - dec = "b.DecodeVarint()" - // handled specially below - case descriptor.FieldDescriptorProto_TYPE_STRING: - dec = "b.DecodeStringBytes()" - case descriptor.FieldDescriptorProto_TYPE_GROUP: - g.P("msg := new(", fieldTypes[field][1:], ")") // drop star - lhs = "err" - dec = "b.DecodeGroup(msg)" - // handled specially below - case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - g.P("msg := new(", fieldTypes[field][1:], ")") // drop star - lhs = "err" - dec = "b.DecodeMessage(msg)" - // handled specially below - case descriptor.FieldDescriptorProto_TYPE_BYTES: - dec = "b.DecodeRawBytes(true)" - case descriptor.FieldDescriptorProto_TYPE_UINT32: - dec, cast = "b.DecodeVarint()", "uint32" - case descriptor.FieldDescriptorProto_TYPE_ENUM: - dec, cast = "b.DecodeVarint()", fieldTypes[field] - case descriptor.FieldDescriptorProto_TYPE_SFIXED32: - dec, cast = "b.DecodeFixed32()", "int32" - case descriptor.FieldDescriptorProto_TYPE_SFIXED64: - dec, cast = "b.DecodeFixed64()", "int64" - case descriptor.FieldDescriptorProto_TYPE_SINT32: - dec, cast = "b.DecodeZigzag32()", "int32" - case descriptor.FieldDescriptorProto_TYPE_SINT64: - dec, cast = "b.DecodeZigzag64()", "int64" - default: - g.Fail("unhandled oneof field type ", field.Type.String()) - } - g.P(lhs, " := ", dec) - val := "x" - if *field.Type == descriptor.FieldDescriptorProto_TYPE_BYTES && gogoproto.IsCustomType(field) { - g.P(`if err != nil {`) - g.In() - g.P(`return true, err`) - g.Out() - g.P(`}`) - _, ctyp, err := GetCustomType(field) - if err != nil { - panic(err) - } - g.P(`var cc `, ctyp) - g.P(`c := &cc`) - g.P(`err = c.Unmarshal(`, val, `)`) - val = "*c" - } - if cast != "" { - val = cast + "(" + val + ")" - } - if cast2 != "" { - val = cast2 + "(" + val + ")" - } - switch *field.Type { - case descriptor.FieldDescriptorProto_TYPE_BOOL: - val += " != 0" - case descriptor.FieldDescriptorProto_TYPE_GROUP, - descriptor.FieldDescriptorProto_TYPE_MESSAGE: - val = "msg" - } - if gogoproto.IsCastType(field) { - _, typ, err := getCastType(field) - if err != nil { - g.Fail(err.Error()) - } - val = typ + "(" + val + ")" - } - g.P("m.", oneofFieldName[*field.OneofIndex], " = &", oneofTypeName[field], "{", val, "}") - g.P("return true, err") - } - g.P("default: return false, nil") - g.P("}") - g.P("}") - g.P() - } - - for _, ext := range message.ext { - g.generateExtension(ext) - } - - fullName := strings.Join(message.TypeName(), ".") - if g.file.Package != nil { - fullName = *g.file.Package + "." + fullName - } - - g.addInitf("%s.RegisterType((*%s)(nil), %q)", g.Pkg["proto"], ccTypeName, fullName) -} - -func (g *Generator) generateExtension(ext *ExtensionDescriptor) { - ccTypeName := ext.DescName() - - extObj := g.ObjectNamed(*ext.Extendee) - var extDesc *Descriptor - if id, ok := extObj.(*ImportedDescriptor); ok { - // This is extending a publicly imported message. - // We need the underlying type for goTag. - extDesc = id.o.(*Descriptor) - } else { - extDesc = extObj.(*Descriptor) - } - extendedType := "*" + g.TypeName(extObj) // always use the original - field := ext.FieldDescriptorProto - fieldType, wireType := g.GoType(ext.parent, field) - tag := g.goTag(extDesc, field, wireType) - g.RecordTypeUse(*ext.Extendee) - if n := ext.FieldDescriptorProto.TypeName; n != nil { - // foreign extension type - g.RecordTypeUse(*n) - } - - typeName := ext.TypeName() - - // Special case for proto2 message sets: If this extension is extending - // proto2_bridge.MessageSet, and its final name component is "message_set_extension", - // then drop that last component. - mset := false - if extendedType == "*proto2_bridge.MessageSet" && typeName[len(typeName)-1] == "message_set_extension" { - typeName = typeName[:len(typeName)-1] - mset = true - } - - // For text formatting, the package must be exactly what the .proto file declares, - // ignoring overrides such as the go_package option, and with no dot/underscore mapping. - extName := strings.Join(typeName, ".") - if g.file.Package != nil { - extName = *g.file.Package + "." + extName - } - - g.P("var ", ccTypeName, " = &", g.Pkg["proto"], ".ExtensionDesc{") - g.In() - g.P("ExtendedType: (", extendedType, ")(nil),") - g.P("ExtensionType: (", fieldType, ")(nil),") - g.P("Field: ", field.Number, ",") - g.P(`Name: "`, extName, `",`) - g.P("Tag: ", tag, ",") - - g.Out() - g.P("}") - g.P() - - if mset { - // Generate a bit more code to register with message_set.go. - g.addInitf("%s.RegisterMessageSetType((%s)(nil), %d, %q)", g.Pkg["proto"], fieldType, *field.Number, extName) - } - - g.file.addExport(ext, constOrVarSymbol{ccTypeName, "var", ""}) -} - -func (g *Generator) generateInitFunction() { - for _, enum := range g.file.enum { - g.generateEnumRegistration(enum) - } - for _, d := range g.file.desc { - for _, ext := range d.ext { - g.generateExtensionRegistration(ext) - } - } - for _, ext := range g.file.ext { - g.generateExtensionRegistration(ext) - } - if len(g.init) == 0 { - return - } - g.P("func init() {") - g.In() - for _, l := range g.init { - g.P(l) - } - g.Out() - g.P("}") - g.init = nil -} - -func (g *Generator) generateEnumRegistration(enum *EnumDescriptor) { - // // We always print the full (proto-world) package name here. - pkg := enum.File().GetPackage() - if pkg != "" { - pkg += "." - } - // The full type name - typeName := enum.TypeName() - // The full type name, CamelCased. - ccTypeName := CamelCaseSlice(typeName) - g.addInitf("%s.RegisterEnum(%q, %[3]s_name, %[3]s_value)", g.Pkg["proto"], pkg+ccTypeName, ccTypeName) -} - -func (g *Generator) generateExtensionRegistration(ext *ExtensionDescriptor) { - g.addInitf("%s.RegisterExtension(%s)", g.Pkg["proto"], ext.DescName()) -} - -// And now lots of helper functions. - -// Is c an ASCII lower-case letter? -func isASCIILower(c byte) bool { - return 'a' <= c && c <= 'z' -} - -// Is c an ASCII digit? -func isASCIIDigit(c byte) bool { - return '0' <= c && c <= '9' -} - -// CamelCase returns the CamelCased name. -// If there is an interior underscore followed by a lower case letter, -// drop the underscore and convert the letter to upper case. -// There is a remote possibility of this rewrite causing a name collision, -// but it's so remote we're prepared to pretend it's nonexistent - since the -// C++ generator lowercases names, it's extremely unlikely to have two fields -// with different capitalizations. -// In short, _my_field_name_2 becomes XMyFieldName_2. -func CamelCase(s string) string { - if s == "" { - return "" - } - t := make([]byte, 0, 32) - i := 0 - if s[0] == '_' { - // Need a capital letter; drop the '_'. - t = append(t, 'X') - i++ - } - // Invariant: if the next letter is lower case, it must be converted - // to upper case. - // That is, we process a word at a time, where words are marked by _ or - // upper case letter. Digits are treated as words. - for ; i < len(s); i++ { - c := s[i] - if c == '_' && i+1 < len(s) && isASCIILower(s[i+1]) { - continue // Skip the underscore in s. - } - if isASCIIDigit(c) { - t = append(t, c) - continue - } - // Assume we have a letter now - if not, it's a bogus identifier. - // The next word is a sequence of characters that must start upper case. - if isASCIILower(c) { - c ^= ' ' // Make it a capital letter. - } - t = append(t, c) // Guaranteed not lower case. - // Accept lower case sequence that follows. - for i+1 < len(s) && isASCIILower(s[i+1]) { - i++ - t = append(t, s[i]) - } - } - return string(t) -} - -// CamelCaseSlice is like CamelCase, but the argument is a slice of strings to -// be joined with "_". -func CamelCaseSlice(elem []string) string { return CamelCase(strings.Join(elem, "_")) } - -// dottedSlice turns a sliced name into a dotted name. -func dottedSlice(elem []string) string { return strings.Join(elem, ".") } - -// Given a .proto file name, return the output name for the generated Go program. -func goFileName(name string) string { - ext := path.Ext(name) - if ext == ".proto" || ext == ".protodevel" { - name = name[0 : len(name)-len(ext)] - } - return name + ".pb.go" -} - -// Is this field optional? -func isOptional(field *descriptor.FieldDescriptorProto) bool { - return field.Label != nil && *field.Label == descriptor.FieldDescriptorProto_LABEL_OPTIONAL -} - -// Is this field required? -func isRequired(field *descriptor.FieldDescriptorProto) bool { - return field.Label != nil && *field.Label == descriptor.FieldDescriptorProto_LABEL_REQUIRED -} - -// Is this field repeated? -func isRepeated(field *descriptor.FieldDescriptorProto) bool { - return field.Label != nil && *field.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED -} - -// badToUnderscore is the mapping function used to generate Go names from package names, -// which can be dotted in the input .proto file. It replaces non-identifier characters such as -// dot or dash with underscore. -func badToUnderscore(r rune) rune { - if unicode.IsLetter(r) || unicode.IsDigit(r) || r == '_' { - return r - } - return '_' -} - -// baseName returns the last path element of the name, with the last dotted suffix removed. -func baseName(name string) string { - // First, find the last element - if i := strings.LastIndex(name, "/"); i >= 0 { - name = name[i+1:] - } - // Now drop the suffix - if i := strings.LastIndex(name, "."); i >= 0 { - name = name[0:i] - } - return name -} - -// The SourceCodeInfo message describes the location of elements of a parsed -// .proto file by way of a "path", which is a sequence of integers that -// describe the route from a FileDescriptorProto to the relevant submessage. -// The path alternates between a field number of a repeated field, and an index -// into that repeated field. The constants below define the field numbers that -// are used. -// -// See descriptor.proto for more information about this. -const ( - // tag numbers in FileDescriptorProto - packagePath = 2 // package - messagePath = 4 // message_type - enumPath = 5 // enum_type - // tag numbers in DescriptorProto - messageFieldPath = 2 // field - messageMessagePath = 3 // nested_type - messageEnumPath = 4 // enum_type - messageOneofPath = 8 // oneof_decl - // tag numbers in EnumDescriptorProto - enumValuePath = 2 // value -) diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator/helper.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator/helper.go deleted file mode 100644 index 5dc8efd6..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator/helper.go +++ /dev/null @@ -1,361 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package generator - -import ( - "bytes" - "go/parser" - "go/printer" - "go/token" - "strings" - - "path" - - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - plugin "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/plugin" -) - -func (d *FileDescriptor) Messages() []*Descriptor { - return d.desc -} - -func (d *FileDescriptor) Enums() []*EnumDescriptor { - return d.enum -} - -func (d *Descriptor) IsGroup() bool { - return d.group -} - -func (g *Generator) IsGroup(field *descriptor.FieldDescriptorProto) bool { - if d, ok := g.typeNameToObject[field.GetTypeName()].(*Descriptor); ok { - return d.IsGroup() - } - return false -} - -func (g *Generator) TypeNameByObject(typeName string) Object { - o, ok := g.typeNameToObject[typeName] - if !ok { - g.Fail("can't find object with type", typeName) - } - return o -} - -func (g *Generator) OneOfTypeName(message *Descriptor, field *descriptor.FieldDescriptorProto) string { - typeName := message.TypeName() - ccTypeName := CamelCaseSlice(typeName) - fieldName := g.GetOneOfFieldName(message, field) - tname := ccTypeName + "_" + fieldName - // It is possible for this to collide with a message or enum - // nested in this message. Check for collisions. - ok := true - for _, desc := range message.nested { - if strings.Join(desc.TypeName(), "_") == tname { - ok = false - break - } - } - for _, enum := range message.enums { - if strings.Join(enum.TypeName(), "_") == tname { - ok = false - break - } - } - if !ok { - tname += "_" - } - return tname -} - -type PluginImports interface { - NewImport(pkg string) Single - GenerateImports(file *FileDescriptor) -} - -type pluginImports struct { - generator *Generator - singles []Single -} - -func NewPluginImports(generator *Generator) *pluginImports { - return &pluginImports{generator, make([]Single, 0)} -} - -func (this *pluginImports) NewImport(pkg string) Single { - imp := newImportedPackage(this.generator.ImportPrefix, pkg) - this.singles = append(this.singles, imp) - return imp -} - -func (this *pluginImports) GenerateImports(file *FileDescriptor) { - for _, s := range this.singles { - if s.IsUsed() { - this.generator.PrintImport(s.Name(), s.Location()) - } - } -} - -type Single interface { - Use() string - IsUsed() bool - Name() string - Location() string -} - -type importedPackage struct { - used bool - pkg string - name string - importPrefix string -} - -func newImportedPackage(importPrefix, pkg string) *importedPackage { - return &importedPackage{ - pkg: pkg, - importPrefix: importPrefix, - } -} - -func (this *importedPackage) Use() string { - if !this.used { - this.name = RegisterUniquePackageName(this.pkg, nil) - this.used = true - } - return this.name -} - -func (this *importedPackage) IsUsed() bool { - return this.used -} - -func (this *importedPackage) Name() string { - return this.name -} - -func (this *importedPackage) Location() string { - return this.importPrefix + this.pkg -} - -func (g *Generator) GetFieldName(message *Descriptor, field *descriptor.FieldDescriptorProto) string { - goTyp, _ := g.GoType(message, field) - fieldname := CamelCase(*field.Name) - if gogoproto.IsCustomName(field) { - fieldname = gogoproto.GetCustomName(field) - } - if gogoproto.IsEmbed(field) { - fieldname = EmbedFieldName(goTyp) - } - if field.OneofIndex != nil { - fieldname = message.OneofDecl[int(*field.OneofIndex)].GetName() - fieldname = CamelCase(fieldname) - } - for _, f := range methodNames { - if f == fieldname { - return fieldname + "_" - } - } - return fieldname -} - -func (g *Generator) GetOneOfFieldName(message *Descriptor, field *descriptor.FieldDescriptorProto) string { - goTyp, _ := g.GoType(message, field) - fieldname := CamelCase(*field.Name) - if gogoproto.IsCustomName(field) { - fieldname = gogoproto.GetCustomName(field) - } - if gogoproto.IsEmbed(field) { - fieldname = EmbedFieldName(goTyp) - } - for _, f := range methodNames { - if f == fieldname { - return fieldname + "_" - } - } - return fieldname -} - -func GetMap(file *descriptor.FileDescriptorProto, field *descriptor.FieldDescriptorProto) *descriptor.DescriptorProto { - if !field.IsMessage() { - return nil - } - typeName := strings.TrimPrefix(field.GetTypeName(), "."+file.GetPackage()+".") - if strings.Contains(typeName, "Map") && !strings.HasSuffix(typeName, "Entry") { - typeName += "." + CamelCase(field.GetName()) + "Entry" - } - return file.GetMessage(typeName) -} - -func IsMap(file *descriptor.FileDescriptorProto, field *descriptor.FieldDescriptorProto) bool { - msg := GetMap(file, field) - if msg == nil { - return false - } - return msg.GetOptions().GetMapEntry() -} - -func GoTypeToName(goTyp string) string { - return strings.Replace(strings.Replace(goTyp, "*", "", -1), "[]", "", -1) -} - -func EmbedFieldName(goTyp string) string { - goTyp = GoTypeToName(goTyp) - goTyps := strings.Split(goTyp, ".") - if len(goTyps) == 1 { - return goTyp - } - if len(goTyps) == 2 { - return goTyps[1] - } - panic("unreachable") -} - -func (g *Generator) GeneratePlugin(p Plugin) { - p.Init(g) - // Generate the output. The generator runs for every file, even the files - // that we don't generate output for, so that we can collate the full list - // of exported symbols to support public imports. - genFileMap := make(map[*FileDescriptor]bool, len(g.genFiles)) - for _, file := range g.genFiles { - genFileMap[file] = true - } - i := 0 - for _, file := range g.allFiles { - g.Reset() - g.writeOutput = genFileMap[file] - g.generatePlugin(file, p) - if !g.writeOutput { - continue - } - g.Response.File[i] = new(plugin.CodeGeneratorResponse_File) - g.Response.File[i].Name = proto.String(goFileName(*file.Name)) - g.Response.File[i].Content = proto.String(g.String()) - i++ - } -} - -func (g *Generator) SetFile(file *descriptor.FileDescriptorProto) { - g.file = g.FileOf(file) -} - -func (g *Generator) generatePlugin(file *FileDescriptor, p Plugin) { - g.writtenImports = make(map[string]bool) - g.file = g.FileOf(file.FileDescriptorProto) - g.usedPackages = make(map[string]bool) - - // Run the plugins before the imports so we know which imports are necessary. - p.Generate(file) - - // Generate header and imports last, though they appear first in the output. - rem := g.Buffer - g.Buffer = new(bytes.Buffer) - g.generateHeader() - p.GenerateImports(g.file) - g.generateImports() - if !g.writeOutput { - return - } - g.Write(rem.Bytes()) - - // Reformat generated code. - contents := string(g.Buffer.Bytes()) - fset := token.NewFileSet() - ast, err := parser.ParseFile(fset, "", g, parser.ParseComments) - if err != nil { - g.Fail("bad Go source code was generated:", contents, err.Error()) - return - } - g.Reset() - err = (&printer.Config{Mode: printer.TabIndent | printer.UseSpaces, Tabwidth: 8}).Fprint(g, fset, ast) - if err != nil { - g.Fail("generated Go source code could not be reformatted:", err.Error()) - } -} - -func GetCustomType(field *descriptor.FieldDescriptorProto) (packageName string, typ string, err error) { - return getCustomType(field) -} - -func getCustomType(field *descriptor.FieldDescriptorProto) (packageName string, typ string, err error) { - if field.Options != nil { - var v interface{} - v, err = proto.GetExtension(field.Options, gogoproto.E_Customtype) - if err == nil && v.(*string) != nil { - ctype := *(v.(*string)) - packageName, typ = splitCPackageType(ctype) - return packageName, typ, nil - } - } - return "", "", err -} - -func splitCPackageType(ctype string) (packageName string, typ string) { - ss := strings.Split(ctype, ".") - if len(ss) == 1 { - return "", ctype - } - packageName = strings.Join(ss[0:len(ss)-1], ".") - typeName := ss[len(ss)-1] - importStr := strings.Map(badToUnderscore, packageName) - typ = importStr + "." + typeName - return packageName, typ -} - -func getCastType(field *descriptor.FieldDescriptorProto) (packageName string, typ string, err error) { - if field.Options != nil { - var v interface{} - v, err = proto.GetExtension(field.Options, gogoproto.E_Casttype) - if err == nil && v.(*string) != nil { - ctype := *(v.(*string)) - packageName, typ = splitCPackageType(ctype) - return packageName, typ, nil - } - } - return "", "", err -} - -func FileName(file *FileDescriptor) string { - fname := path.Base(file.FileDescriptorProto.GetName()) - fname = strings.Replace(fname, ".proto", "", -1) - fname = strings.Replace(fname, "-", "_", -1) - return CamelCase(fname) -} - -func (g *Generator) AllFiles() *descriptor.FileDescriptorSet { - set := &descriptor.FileDescriptorSet{} - set.File = make([]*descriptor.FileDescriptorProto, len(g.allFiles)) - for i := range g.allFiles { - set.File[i] = g.allFiles[i].FileDescriptorProto - } - return set -} - -func (d *Descriptor) Path() string { - return d.path -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator/name_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator/name_test.go deleted file mode 100644 index f926918e..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator/name_test.go +++ /dev/null @@ -1,56 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2013 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -package generator - -import ( - "testing" -) - -func TestCamelCase(t *testing.T) { - tests := []struct { - in, want string - }{ - {"one", "One"}, - {"one_two", "OneTwo"}, - {"_my_field_name_2", "XMyFieldName_2"}, - {"Something_Capped", "Something_Capped"}, - {"my_Name", "My_Name"}, - {"OneTwo", "OneTwo"}, - {"_", "X"}, - {"_a_", "XA_"}, - } - for _, tc := range tests { - if got := CamelCase(tc.in); got != tc.want { - t.Errorf("CamelCase(%q) = %q, want %q", tc.in, got, tc.want) - } - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/main.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/main.go deleted file mode 100644 index e68a07c0..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/main.go +++ /dev/null @@ -1,57 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -// protoc-gen-go is a plugin for the Google protocol buffer compiler to generate -// Go code. Run it by building this program and putting it in your path with -// the name -// protoc-gen-gogo -// That word 'gogo' at the end becomes part of the option string set for the -// protocol compiler, so once the protocol compiler (protoc) is installed -// you can run -// protoc --gogo_out=output_directory input_directory/file.proto -// to generate Go bindings for the protocol defined by file.proto. -// With that input, the output will be written to -// output_directory/file.pb.go -// -// The generated code is documented in the package comment for -// the library. -// -// See the README and documentation for protocol buffers to learn more: -// https://developers.google.com/protocol-buffers/ -package main - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/command" -) - -func main() { - command.Write(command.Generate(command.Read())) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/plugin/Makefile b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/plugin/Makefile deleted file mode 100644 index 546287ce..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/plugin/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# Go support for Protocol Buffers - Google's data interchange format -# -# Copyright 2010 The Go Authors. All rights reserved. -# https://github.com/golang/protobuf -# -# 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. - -# Not stored here, but plugin.proto is in https://github.com/google/protobuf/ -# at src/google/protobuf/compiler/plugin.proto -# Also we need to fix an import. -regenerate: - protoc --gogo_out=Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:. -I=../../protobuf/google/protobuf/compiler/:../../protobuf/ ../../protobuf/google/protobuf/compiler/plugin.proto - diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/plugin/plugin.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/plugin/plugin.pb.go deleted file mode 100644 index 92b7d34b..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/plugin/plugin.pb.go +++ /dev/null @@ -1,194 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: plugin.proto -// DO NOT EDIT! - -/* -Package plugin_go is a generated protocol buffer package. - -It is generated from these files: - plugin.proto - -It has these top-level messages: - CodeGeneratorRequest - CodeGeneratorResponse -*/ -package plugin_go - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" -import google_protobuf "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// An encoded CodeGeneratorRequest is written to the plugin's stdin. -type CodeGeneratorRequest struct { - // The .proto files that were explicitly listed on the command-line. The - // code generator should generate code only for these files. Each file's - // descriptor will be included in proto_file, below. - FileToGenerate []string `protobuf:"bytes,1,rep,name=file_to_generate" json:"file_to_generate,omitempty"` - // The generator parameter passed on the command-line. - Parameter *string `protobuf:"bytes,2,opt,name=parameter" json:"parameter,omitempty"` - // FileDescriptorProtos for all files in files_to_generate and everything - // they import. The files will appear in topological order, so each file - // appears before any file that imports it. - // - // protoc guarantees that all proto_files will be written after - // the fields above, even though this is not technically guaranteed by the - // protobuf wire format. This theoretically could allow a plugin to stream - // in the FileDescriptorProtos and handle them one by one rather than read - // the entire set into memory at once. However, as of this writing, this - // is not similarly optimized on protoc's end -- it will store all fields in - // memory at once before sending them to the plugin. - ProtoFile []*google_protobuf.FileDescriptorProto `protobuf:"bytes,15,rep,name=proto_file" json:"proto_file,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CodeGeneratorRequest) Reset() { *m = CodeGeneratorRequest{} } -func (m *CodeGeneratorRequest) String() string { return proto.CompactTextString(m) } -func (*CodeGeneratorRequest) ProtoMessage() {} - -func (m *CodeGeneratorRequest) GetFileToGenerate() []string { - if m != nil { - return m.FileToGenerate - } - return nil -} - -func (m *CodeGeneratorRequest) GetParameter() string { - if m != nil && m.Parameter != nil { - return *m.Parameter - } - return "" -} - -func (m *CodeGeneratorRequest) GetProtoFile() []*google_protobuf.FileDescriptorProto { - if m != nil { - return m.ProtoFile - } - return nil -} - -// The plugin writes an encoded CodeGeneratorResponse to stdout. -type CodeGeneratorResponse struct { - // Error message. If non-empty, code generation failed. The plugin process - // should exit with status code zero even if it reports an error in this way. - // - // This should be used to indicate errors in .proto files which prevent the - // code generator from generating correct code. Errors which indicate a - // problem in protoc itself -- such as the input CodeGeneratorRequest being - // unparseable -- should be reported by writing a message to stderr and - // exiting with a non-zero status code. - Error *string `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"` - File []*CodeGeneratorResponse_File `protobuf:"bytes,15,rep,name=file" json:"file,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CodeGeneratorResponse) Reset() { *m = CodeGeneratorResponse{} } -func (m *CodeGeneratorResponse) String() string { return proto.CompactTextString(m) } -func (*CodeGeneratorResponse) ProtoMessage() {} - -func (m *CodeGeneratorResponse) GetError() string { - if m != nil && m.Error != nil { - return *m.Error - } - return "" -} - -func (m *CodeGeneratorResponse) GetFile() []*CodeGeneratorResponse_File { - if m != nil { - return m.File - } - return nil -} - -// Represents a single generated file. -type CodeGeneratorResponse_File struct { - // The file name, relative to the output directory. The name must not - // contain "." or ".." components and must be relative, not be absolute (so, - // the file cannot lie outside the output directory). "/" must be used as - // the path separator, not "\". - // - // If the name is omitted, the content will be appended to the previous - // file. This allows the generator to break large files into small chunks, - // and allows the generated text to be streamed back to protoc so that large - // files need not reside completely in memory at one time. Note that as of - // this writing protoc does not optimize for this -- it will read the entire - // CodeGeneratorResponse before writing files to disk. - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - // If non-empty, indicates that the named file should already exist, and the - // content here is to be inserted into that file at a defined insertion - // point. This feature allows a code generator to extend the output - // produced by another code generator. The original generator may provide - // insertion points by placing special annotations in the file that look - // like: - // @@protoc_insertion_point(NAME) - // The annotation can have arbitrary text before and after it on the line, - // which allows it to be placed in a comment. NAME should be replaced with - // an identifier naming the point -- this is what other generators will use - // as the insertion_point. Code inserted at this point will be placed - // immediately above the line containing the insertion point (thus multiple - // insertions to the same point will come out in the order they were added). - // The double-@ is intended to make it unlikely that the generated code - // could contain things that look like insertion points by accident. - // - // For example, the C++ code generator places the following line in the - // .pb.h files that it generates: - // // @@protoc_insertion_point(namespace_scope) - // This line appears within the scope of the file's package namespace, but - // outside of any particular class. Another plugin can then specify the - // insertion_point "namespace_scope" to generate additional classes or - // other declarations that should be placed in this scope. - // - // Note that if the line containing the insertion point begins with - // whitespace, the same whitespace will be added to every line of the - // inserted text. This is useful for languages like Python, where - // indentation matters. In these languages, the insertion point comment - // should be indented the same amount as any inserted code will need to be - // in order to work correctly in that context. - // - // The code generator that generates the initial file and the one which - // inserts into it must both run as part of a single invocation of protoc. - // Code generators are executed in the order in which they appear on the - // command line. - // - // If |insertion_point| is present, |name| must also be present. - InsertionPoint *string `protobuf:"bytes,2,opt,name=insertion_point" json:"insertion_point,omitempty"` - // The file contents. - Content *string `protobuf:"bytes,15,opt,name=content" json:"content,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CodeGeneratorResponse_File) Reset() { *m = CodeGeneratorResponse_File{} } -func (m *CodeGeneratorResponse_File) String() string { return proto.CompactTextString(m) } -func (*CodeGeneratorResponse_File) ProtoMessage() {} - -func (m *CodeGeneratorResponse_File) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *CodeGeneratorResponse_File) GetInsertionPoint() string { - if m != nil && m.InsertionPoint != nil { - return *m.InsertionPoint - } - return "" -} - -func (m *CodeGeneratorResponse_File) GetContent() string { - if m != nil && m.Content != nil { - return *m.Content - } - return "" -} - -func init() { - proto.RegisterType((*CodeGeneratorRequest)(nil), "google.protobuf.compiler.CodeGeneratorRequest") - proto.RegisterType((*CodeGeneratorResponse)(nil), "google.protobuf.compiler.CodeGeneratorResponse") - proto.RegisterType((*CodeGeneratorResponse_File)(nil), "google.protobuf.compiler.CodeGeneratorResponse.File") -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/Makefile b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/Makefile deleted file mode 100644 index dd993221..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -# Go support for Protocol Buffers - Google's data interchange format -# -# Copyright 2010 The Go Authors. All rights reserved. -# https://github.com/golang/protobuf -# -# 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. - -all: - @echo run make test - -test: golden testbuild - -#test: golden testbuild extension_test -# ./extension_test -# @echo PASS - -my_test/test.pb.go: my_test/test.proto - protoc --gogo_out=Mmulti/multi1.proto=github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi:. $< - -golden: - go install github.com/gogo/protobuf/protoc-min-version - protoc-min-version --version="3.0.0" --gogo_out=. ./my_test/test.proto - diff -w my_test/test.pb.go my_test/test.pb.go.golden - -nuke: clean - -testbuild: buildprotos - go test - -buildprotos: - # Invoke protoc once to generate three independent .pb.go files in the same package. - protoc --gogo_out=. multi/multi{1,2,3}.proto - -#extension_test: extension_test.$O -# $(LD) -L. -o $@ $< - -#multi.a: multi3.pb.$O multi2.pb.$O multi1.pb.$O -# rm -f multi.a -# $(QUOTED_GOBIN)/gopack grc $@ $< - -#test.pb.go: imp.pb.go -#multi1.pb.go: multi2.pb.go multi3.pb.go -#main.$O: imp.pb.$O test.pb.$O multi.a -#extension_test.$O: extension_base.pb.$O extension_extra.pb.$O extension_user.pb.$O diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_base.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_base.proto deleted file mode 100644 index 94acfc1b..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_base.proto +++ /dev/null @@ -1,46 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto2"; - -package extension_base; - -message BaseMessage { - optional int32 height = 1; - extensions 4 to 9; - extensions 16 to max; -} - -// Another message that may be extended, using message_set_wire_format. -message OldStyleMessage { - option message_set_wire_format = true; - extensions 100 to max; -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_extra.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_extra.proto deleted file mode 100644 index fca7f600..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_extra.proto +++ /dev/null @@ -1,38 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2011 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto2"; - -package extension_extra; - -message ExtraMessage { - optional int32 width = 1; -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_test.go deleted file mode 100644 index 86e9c118..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_test.go +++ /dev/null @@ -1,210 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -// Test that we can use protocol buffers that use extensions. - -package testdata - -/* - -import ( - "bytes" - "regexp" - "testing" - - "github.com/golang/protobuf/proto" - base "extension_base.pb" - user "extension_user.pb" -) - -func TestSingleFieldExtension(t *testing.T) { - bm := &base.BaseMessage{ - Height: proto.Int32(178), - } - - // Use extension within scope of another type. - vol := proto.Uint32(11) - err := proto.SetExtension(bm, user.E_LoudMessage_Volume, vol) - if err != nil { - t.Fatal("Failed setting extension:", err) - } - buf, err := proto.Marshal(bm) - if err != nil { - t.Fatal("Failed encoding message with extension:", err) - } - bm_new := new(base.BaseMessage) - if err := proto.Unmarshal(buf, bm_new); err != nil { - t.Fatal("Failed decoding message with extension:", err) - } - if !proto.HasExtension(bm_new, user.E_LoudMessage_Volume) { - t.Fatal("Decoded message didn't contain extension.") - } - vol_out, err := proto.GetExtension(bm_new, user.E_LoudMessage_Volume) - if err != nil { - t.Fatal("Failed getting extension:", err) - } - if v := vol_out.(*uint32); *v != *vol { - t.Errorf("vol_out = %v, expected %v", *v, *vol) - } - proto.ClearExtension(bm_new, user.E_LoudMessage_Volume) - if proto.HasExtension(bm_new, user.E_LoudMessage_Volume) { - t.Fatal("Failed clearing extension.") - } -} - -func TestMessageExtension(t *testing.T) { - bm := &base.BaseMessage{ - Height: proto.Int32(179), - } - - // Use extension that is itself a message. - um := &user.UserMessage{ - Name: proto.String("Dave"), - Rank: proto.String("Major"), - } - err := proto.SetExtension(bm, user.E_LoginMessage_UserMessage, um) - if err != nil { - t.Fatal("Failed setting extension:", err) - } - buf, err := proto.Marshal(bm) - if err != nil { - t.Fatal("Failed encoding message with extension:", err) - } - bm_new := new(base.BaseMessage) - if err := proto.Unmarshal(buf, bm_new); err != nil { - t.Fatal("Failed decoding message with extension:", err) - } - if !proto.HasExtension(bm_new, user.E_LoginMessage_UserMessage) { - t.Fatal("Decoded message didn't contain extension.") - } - um_out, err := proto.GetExtension(bm_new, user.E_LoginMessage_UserMessage) - if err != nil { - t.Fatal("Failed getting extension:", err) - } - if n := um_out.(*user.UserMessage).Name; *n != *um.Name { - t.Errorf("um_out.Name = %q, expected %q", *n, *um.Name) - } - if r := um_out.(*user.UserMessage).Rank; *r != *um.Rank { - t.Errorf("um_out.Rank = %q, expected %q", *r, *um.Rank) - } - proto.ClearExtension(bm_new, user.E_LoginMessage_UserMessage) - if proto.HasExtension(bm_new, user.E_LoginMessage_UserMessage) { - t.Fatal("Failed clearing extension.") - } -} - -func TestTopLevelExtension(t *testing.T) { - bm := &base.BaseMessage{ - Height: proto.Int32(179), - } - - width := proto.Int32(17) - err := proto.SetExtension(bm, user.E_Width, width) - if err != nil { - t.Fatal("Failed setting extension:", err) - } - buf, err := proto.Marshal(bm) - if err != nil { - t.Fatal("Failed encoding message with extension:", err) - } - bm_new := new(base.BaseMessage) - if err := proto.Unmarshal(buf, bm_new); err != nil { - t.Fatal("Failed decoding message with extension:", err) - } - if !proto.HasExtension(bm_new, user.E_Width) { - t.Fatal("Decoded message didn't contain extension.") - } - width_out, err := proto.GetExtension(bm_new, user.E_Width) - if err != nil { - t.Fatal("Failed getting extension:", err) - } - if w := width_out.(*int32); *w != *width { - t.Errorf("width_out = %v, expected %v", *w, *width) - } - proto.ClearExtension(bm_new, user.E_Width) - if proto.HasExtension(bm_new, user.E_Width) { - t.Fatal("Failed clearing extension.") - } -} - -func TestMessageSetWireFormat(t *testing.T) { - osm := new(base.OldStyleMessage) - osp := &user.OldStyleParcel{ - Name: proto.String("Dave"), - Height: proto.Int32(178), - } - - err := proto.SetExtension(osm, user.E_OldStyleParcel_MessageSetExtension, osp) - if err != nil { - t.Fatal("Failed setting extension:", err) - } - - buf, err := proto.Marshal(osm) - if err != nil { - t.Fatal("Failed encoding message:", err) - } - - // Data generated from Python implementation. - expected := []byte{ - 11, 16, 209, 15, 26, 9, 10, 4, 68, 97, 118, 101, 16, 178, 1, 12, - } - - if !bytes.Equal(expected, buf) { - t.Errorf("Encoding mismatch.\nwant %+v\n got %+v", expected, buf) - } - - // Check that it is restored correctly. - osm = new(base.OldStyleMessage) - if err := proto.Unmarshal(buf, osm); err != nil { - t.Fatal("Failed decoding message:", err) - } - osp_out, err := proto.GetExtension(osm, user.E_OldStyleParcel_MessageSetExtension) - if err != nil { - t.Fatal("Failed getting extension:", err) - } - osp = osp_out.(*user.OldStyleParcel) - if *osp.Name != "Dave" || *osp.Height != 178 { - t.Errorf("Retrieved extension from decoded message is not correct: %+v", osp) - } -} - -func main() { - // simpler than rigging up gotest - testing.Main(regexp.MatchString, []testing.InternalTest{ - {"TestSingleFieldExtension", TestSingleFieldExtension}, - {"TestMessageExtension", TestMessageExtension}, - {"TestTopLevelExtension", TestTopLevelExtension}, - }, - []testing.InternalBenchmark{}, - []testing.InternalExample{}) -} - -*/ diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_user.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_user.proto deleted file mode 100644 index ff65873d..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/extension_user.proto +++ /dev/null @@ -1,100 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto2"; - -import "extension_base.proto"; -import "extension_extra.proto"; - -package extension_user; - -message UserMessage { - optional string name = 1; - optional string rank = 2; -} - -// Extend with a message -extend extension_base.BaseMessage { - optional UserMessage user_message = 5; -} - -// Extend with a foreign message -extend extension_base.BaseMessage { - optional extension_extra.ExtraMessage extra_message = 9; -} - -// Extend with some primitive types -extend extension_base.BaseMessage { - optional int32 width = 6; - optional int64 area = 7; -} - -// Extend inside the scope of another type -message LoudMessage { - extend extension_base.BaseMessage { - optional uint32 volume = 8; - } - extensions 100 to max; -} - -// Extend inside the scope of another type, using a message. -message LoginMessage { - extend extension_base.BaseMessage { - optional UserMessage user_message = 16; - } -} - -// Extend with a repeated field -extend extension_base.BaseMessage { - repeated Detail detail = 17; -} - -message Detail { - optional string color = 1; -} - -// An extension of an extension -message Announcement { - optional string words = 1; - extend LoudMessage { - optional Announcement loud_ext = 100; - } -} - -// Something that can be put in a message set. -message OldStyleParcel { - extend extension_base.OldStyleMessage { - optional OldStyleParcel message_set_extension = 2001; - } - - required string name = 1; - optional int32 height = 2; -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/golden_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/golden_test.go deleted file mode 100644 index 2c0c7ec6..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/golden_test.go +++ /dev/null @@ -1,86 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2012 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -// Verify that the compiler output for test.proto is unchanged. - -package testdata - -import ( - "crypto/sha1" - "fmt" - "io/ioutil" - "os" - "os/exec" - "path/filepath" - "testing" -) - -// sum returns in string form (for easy comparison) the SHA-1 hash of the named file. -func sum(t *testing.T, name string) string { - data, err := ioutil.ReadFile(name) - if err != nil { - t.Fatal(err) - } - t.Logf("sum(%q): length is %d", name, len(data)) - hash := sha1.New() - _, err = hash.Write(data) - if err != nil { - t.Fatal(err) - } - return fmt.Sprintf("% x", hash.Sum(nil)) -} - -func run(t *testing.T, name string, args ...string) { - cmd := exec.Command(name, args...) - cmd.Stdin = os.Stdin - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - err := cmd.Run() - if err != nil { - t.Fatal(err) - } -} - -func TestGolden(t *testing.T) { - // Compute the original checksum. - goldenSum := sum(t, "my_test/test.pb.go") - // Run the proto compiler. - run(t, "protoc", "--gogo_out=Mmulti/multi1.proto=github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi:"+os.TempDir(), "my_test/test.proto") - newFile := filepath.Join(os.TempDir(), "my_test/test.pb.go") - defer os.Remove(newFile) - // Compute the new checksum. - newSum := sum(t, newFile) - // Verify - if newSum != goldenSum { - run(t, "diff", "-u", "my_test/test.pb.go", newFile) - t.Fatal("Code generated by protoc-gen-go has changed; update test.pb.go") - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/grpc.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/grpc.proto deleted file mode 100644 index b8bc41ac..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/grpc.proto +++ /dev/null @@ -1,59 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2015 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto3"; - -package grpc.testing; - -message SimpleRequest { -} - -message SimpleResponse { -} - -message StreamMsg { -} - -message StreamMsg2 { -} - -service Test { - rpc UnaryCall(SimpleRequest) returns (SimpleResponse); - - // This RPC streams from the server only. - rpc Downstream(SimpleRequest) returns (stream StreamMsg); - - // This RPC streams from the client. - rpc Upstream(stream StreamMsg) returns (SimpleResponse); - - // This one streams in both directions. - rpc Bidi(stream StreamMsg) returns (stream StreamMsg2); -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp.pb.go.golden b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp.pb.go.golden deleted file mode 100644 index 784a4f86..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp.pb.go.golden +++ /dev/null @@ -1,113 +0,0 @@ -// Code generated by protoc-gen-go. -// source: imp.proto -// DO NOT EDIT! - -package imp - -import proto "github.com/golang/protobuf/proto" -import "math" -import "os" -import imp1 "imp2.pb" - -// Reference proto & math imports to suppress error if they are not otherwise used. -var _ = proto.GetString -var _ = math.Inf - -// Types from public import imp2.proto -type PubliclyImportedMessage imp1.PubliclyImportedMessage - -func (this *PubliclyImportedMessage) Reset() { (*imp1.PubliclyImportedMessage)(this).Reset() } -func (this *PubliclyImportedMessage) String() string { - return (*imp1.PubliclyImportedMessage)(this).String() -} - -// PubliclyImportedMessage from public import imp.proto - -type ImportedMessage_Owner int32 - -const ( - ImportedMessage_DAVE ImportedMessage_Owner = 1 - ImportedMessage_MIKE ImportedMessage_Owner = 2 -) - -var ImportedMessage_Owner_name = map[int32]string{ - 1: "DAVE", - 2: "MIKE", -} -var ImportedMessage_Owner_value = map[string]int32{ - "DAVE": 1, - "MIKE": 2, -} - -// NewImportedMessage_Owner is deprecated. Use x.Enum() instead. -func NewImportedMessage_Owner(x ImportedMessage_Owner) *ImportedMessage_Owner { - e := ImportedMessage_Owner(x) - return &e -} -func (x ImportedMessage_Owner) Enum() *ImportedMessage_Owner { - p := new(ImportedMessage_Owner) - *p = x - return p -} -func (x ImportedMessage_Owner) String() string { - return proto.EnumName(ImportedMessage_Owner_name, int32(x)) -} - -type ImportedMessage struct { - Field *int64 `protobuf:"varint,1,req,name=field" json:"field,omitempty"` - XXX_extensions map[int32][]byte `json:",omitempty"` - XXX_unrecognized []byte `json:",omitempty"` -} - -func (this *ImportedMessage) Reset() { *this = ImportedMessage{} } -func (this *ImportedMessage) String() string { return proto.CompactTextString(this) } - -var extRange_ImportedMessage = []proto.ExtensionRange{ - proto.ExtensionRange{90, 100}, -} - -func (*ImportedMessage) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_ImportedMessage -} -func (this *ImportedMessage) ExtensionMap() map[int32][]byte { - if this.XXX_extensions == nil { - this.XXX_extensions = make(map[int32][]byte) - } - return this.XXX_extensions -} - -type ImportedExtendable struct { - XXX_extensions map[int32][]byte `json:",omitempty"` - XXX_unrecognized []byte `json:",omitempty"` -} - -func (this *ImportedExtendable) Reset() { *this = ImportedExtendable{} } -func (this *ImportedExtendable) String() string { return proto.CompactTextString(this) } - -func (this *ImportedExtendable) Marshal() ([]byte, error) { - return proto.MarshalMessageSet(this.ExtensionMap()) -} -func (this *ImportedExtendable) Unmarshal(buf []byte) error { - return proto.UnmarshalMessageSet(buf, this.ExtensionMap()) -} -// ensure ImportedExtendable satisfies proto.Marshaler and proto.Unmarshaler -var _ proto.Marshaler = (*ImportedExtendable)(nil) -var _ proto.Unmarshaler = (*ImportedExtendable)(nil) - -var extRange_ImportedExtendable = []proto.ExtensionRange{ - proto.ExtensionRange{100, 536870911}, -} - -func (*ImportedExtendable) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_ImportedExtendable -} -func (this *ImportedExtendable) ExtensionMap() map[int32][]byte { - if this.XXX_extensions == nil { - this.XXX_extensions = make(map[int32][]byte) - } - return this.XXX_extensions -} - -func init() { - proto.RegisterEnum("imp.ImportedMessage_Owner", ImportedMessage_Owner_name, ImportedMessage_Owner_value) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp.proto deleted file mode 100644 index 156e078d..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp.proto +++ /dev/null @@ -1,70 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto2"; - -package imp; - -import "imp2.proto"; -import "imp3.proto"; - -message ImportedMessage { - required int64 field = 1; - - // The forwarded getters for these fields are fiddly to get right. - optional ImportedMessage2 local_msg = 2; - optional ForeignImportedMessage foreign_msg = 3; // in imp3.proto - optional Owner enum_field = 4; - oneof union { - int32 state = 9; - } - - repeated string name = 5; - repeated Owner boss = 6; - repeated ImportedMessage2 memo = 7; - - map msg_map = 8; - - enum Owner { - DAVE = 1; - MIKE = 2; - } - - extensions 90 to 100; -} - -message ImportedMessage2 { -} - -message ImportedExtendable { - option message_set_wire_format = true; - extensions 100 to max; -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp2.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp2.proto deleted file mode 100644 index 3bb0632b..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp2.proto +++ /dev/null @@ -1,43 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2011 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto2"; - -package imp; - -message PubliclyImportedMessage { - optional int64 field = 1; -} - -enum PubliclyImportedEnum { - GLASSES = 1; - HAIR = 2; -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp3.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp3.proto deleted file mode 100644 index 58fc7598..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/imp3.proto +++ /dev/null @@ -1,38 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2012 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto2"; - -package imp; - -message ForeignImportedMessage { - optional string tuber = 1; -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/main_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/main_test.go deleted file mode 100644 index 4e580861..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/main_test.go +++ /dev/null @@ -1,46 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -// A simple binary to link together the protocol buffers in this test. - -package testdata - -import ( - "testing" - - mytestpb "./my_test" - multipb "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi" -) - -func TestLink(t *testing.T) { - _ = &multipb.Multi1{} - _ = &mytestpb.Request{} -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/.gitignore b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/.gitignore deleted file mode 100644 index c61a5e8b..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.pb.go diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/multi1.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/multi1.proto deleted file mode 100644 index 0da6e0af..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/multi1.proto +++ /dev/null @@ -1,44 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto2"; - -import "multi/multi2.proto"; -import "multi/multi3.proto"; - -package multitest; - -message Multi1 { - required Multi2 multi2 = 1; - optional Multi2.Color color = 2; - optional Multi3.HatType hat_type = 3; -} - diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/multi2.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/multi2.proto deleted file mode 100644 index e6bfc71b..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/multi2.proto +++ /dev/null @@ -1,46 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto2"; - -package multitest; - -message Multi2 { - required int32 required_value = 1; - - enum Color { - BLUE = 1; - GREEN = 2; - RED = 3; - }; - optional Color color = 2; -} - diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/multi3.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/multi3.proto deleted file mode 100644 index 146c255b..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/multi/multi3.proto +++ /dev/null @@ -1,43 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto2"; - -package multitest; - -message Multi3 { - enum HatType { - FEDORA = 1; - FEZ = 2; - }; - optional HatType hat_type = 1; -} - diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go deleted file mode 100644 index 513d79f4..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go +++ /dev/null @@ -1,833 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: my_test/test.proto -// DO NOT EDIT! - -/* -Package my_test is a generated protocol buffer package. - -This package holds interesting messages. - -It is generated from these files: - my_test/test.proto - -It has these top-level messages: - Request - Reply - OtherBase - ReplyExtensions - OtherReplyExtensions - OldReply - Communique -*/ -package my_test - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" - -// discarding unused import multitest2 "multi" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type HatType int32 - -const ( - // deliberately skipping 0 - HatType_FEDORA HatType = 1 - HatType_FEZ HatType = 2 -) - -var HatType_name = map[int32]string{ - 1: "FEDORA", - 2: "FEZ", -} -var HatType_value = map[string]int32{ - "FEDORA": 1, - "FEZ": 2, -} - -func (x HatType) Enum() *HatType { - p := new(HatType) - *p = x - return p -} -func (x HatType) String() string { - return proto.EnumName(HatType_name, int32(x)) -} -func (x *HatType) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(HatType_value, data, "HatType") - if err != nil { - return err - } - *x = HatType(value) - return nil -} - -// This enum represents days of the week. -type Days int32 - -const ( - Days_MONDAY Days = 1 - Days_TUESDAY Days = 2 - Days_LUNDI Days = 1 -) - -var Days_name = map[int32]string{ - 1: "MONDAY", - 2: "TUESDAY", - // Duplicate value: 1: "LUNDI", -} -var Days_value = map[string]int32{ - "MONDAY": 1, - "TUESDAY": 2, - "LUNDI": 1, -} - -func (x Days) Enum() *Days { - p := new(Days) - *p = x - return p -} -func (x Days) String() string { - return proto.EnumName(Days_name, int32(x)) -} -func (x *Days) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Days_value, data, "Days") - if err != nil { - return err - } - *x = Days(value) - return nil -} - -type Request_Color int32 - -const ( - Request_RED Request_Color = 0 - Request_GREEN Request_Color = 1 - Request_BLUE Request_Color = 2 -) - -var Request_Color_name = map[int32]string{ - 0: "RED", - 1: "GREEN", - 2: "BLUE", -} -var Request_Color_value = map[string]int32{ - "RED": 0, - "GREEN": 1, - "BLUE": 2, -} - -func (x Request_Color) Enum() *Request_Color { - p := new(Request_Color) - *p = x - return p -} -func (x Request_Color) String() string { - return proto.EnumName(Request_Color_name, int32(x)) -} -func (x *Request_Color) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Request_Color_value, data, "Request_Color") - if err != nil { - return err - } - *x = Request_Color(value) - return nil -} - -type Reply_Entry_Game int32 - -const ( - Reply_Entry_FOOTBALL Reply_Entry_Game = 1 - Reply_Entry_TENNIS Reply_Entry_Game = 2 -) - -var Reply_Entry_Game_name = map[int32]string{ - 1: "FOOTBALL", - 2: "TENNIS", -} -var Reply_Entry_Game_value = map[string]int32{ - "FOOTBALL": 1, - "TENNIS": 2, -} - -func (x Reply_Entry_Game) Enum() *Reply_Entry_Game { - p := new(Reply_Entry_Game) - *p = x - return p -} -func (x Reply_Entry_Game) String() string { - return proto.EnumName(Reply_Entry_Game_name, int32(x)) -} -func (x *Reply_Entry_Game) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Reply_Entry_Game_value, data, "Reply_Entry_Game") - if err != nil { - return err - } - *x = Reply_Entry_Game(value) - return nil -} - -// This is a message that might be sent somewhere. -type Request struct { - Key []int64 `protobuf:"varint,1,rep,name=key" json:"key,omitempty"` - // optional imp.ImportedMessage imported_message = 2; - Hue *Request_Color `protobuf:"varint,3,opt,name=hue,enum=my.test.Request_Color" json:"hue,omitempty"` - Hat *HatType `protobuf:"varint,4,opt,name=hat,enum=my.test.HatType,def=1" json:"hat,omitempty"` - // optional imp.ImportedMessage.Owner owner = 6; - Deadline *float32 `protobuf:"fixed32,7,opt,name=deadline,def=inf" json:"deadline,omitempty"` - Somegroup *Request_SomeGroup `protobuf:"group,8,opt,name=SomeGroup" json:"somegroup,omitempty"` - // This is a map field. It will generate map[int32]string. - NameMapping map[int32]string `protobuf:"bytes,14,rep,name=name_mapping" json:"name_mapping,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - // This is a map field whose value type is a message. - MsgMapping map[int64]*Reply `protobuf:"bytes,15,rep,name=msg_mapping" json:"msg_mapping,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - Reset_ *int32 `protobuf:"varint,12,opt,name=reset" json:"reset,omitempty"` - // This field should not conflict with any getters. - GetKey_ *string `protobuf:"bytes,16,opt,name=get_key" json:"get_key,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Request) Reset() { *m = Request{} } -func (m *Request) String() string { return proto.CompactTextString(m) } -func (*Request) ProtoMessage() {} - -const Default_Request_Hat HatType = HatType_FEDORA - -var Default_Request_Deadline float32 = float32(math.Inf(1)) - -func (m *Request) GetKey() []int64 { - if m != nil { - return m.Key - } - return nil -} - -func (m *Request) GetHue() Request_Color { - if m != nil && m.Hue != nil { - return *m.Hue - } - return Request_RED -} - -func (m *Request) GetHat() HatType { - if m != nil && m.Hat != nil { - return *m.Hat - } - return Default_Request_Hat -} - -func (m *Request) GetDeadline() float32 { - if m != nil && m.Deadline != nil { - return *m.Deadline - } - return Default_Request_Deadline -} - -func (m *Request) GetSomegroup() *Request_SomeGroup { - if m != nil { - return m.Somegroup - } - return nil -} - -func (m *Request) GetNameMapping() map[int32]string { - if m != nil { - return m.NameMapping - } - return nil -} - -func (m *Request) GetMsgMapping() map[int64]*Reply { - if m != nil { - return m.MsgMapping - } - return nil -} - -func (m *Request) GetReset_() int32 { - if m != nil && m.Reset_ != nil { - return *m.Reset_ - } - return 0 -} - -func (m *Request) GetGetKey_() string { - if m != nil && m.GetKey_ != nil { - return *m.GetKey_ - } - return "" -} - -type Request_SomeGroup struct { - GroupField *int32 `protobuf:"varint,9,opt,name=group_field" json:"group_field,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Request_SomeGroup) Reset() { *m = Request_SomeGroup{} } -func (m *Request_SomeGroup) String() string { return proto.CompactTextString(m) } -func (*Request_SomeGroup) ProtoMessage() {} - -func (m *Request_SomeGroup) GetGroupField() int32 { - if m != nil && m.GroupField != nil { - return *m.GroupField - } - return 0 -} - -type Reply struct { - Found []*Reply_Entry `protobuf:"bytes,1,rep,name=found" json:"found,omitempty"` - CompactKeys []int32 `protobuf:"varint,2,rep,packed,name=compact_keys" json:"compact_keys,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Reply) Reset() { *m = Reply{} } -func (m *Reply) String() string { return proto.CompactTextString(m) } -func (*Reply) ProtoMessage() {} - -var extRange_Reply = []proto.ExtensionRange{ - {100, 536870911}, -} - -func (*Reply) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_Reply -} -func (m *Reply) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -func (m *Reply) GetFound() []*Reply_Entry { - if m != nil { - return m.Found - } - return nil -} - -func (m *Reply) GetCompactKeys() []int32 { - if m != nil { - return m.CompactKeys - } - return nil -} - -type Reply_Entry struct { - KeyThatNeeds_1234Camel_CasIng *int64 `protobuf:"varint,1,req,name=key_that_needs_1234camel_CasIng" json:"key_that_needs_1234camel_CasIng,omitempty"` - Value *int64 `protobuf:"varint,2,opt,name=value,def=7" json:"value,omitempty"` - XMyFieldName_2 *int64 `protobuf:"varint,3,opt,name=_my_field_name_2" json:"_my_field_name_2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Reply_Entry) Reset() { *m = Reply_Entry{} } -func (m *Reply_Entry) String() string { return proto.CompactTextString(m) } -func (*Reply_Entry) ProtoMessage() {} - -const Default_Reply_Entry_Value int64 = 7 - -func (m *Reply_Entry) GetKeyThatNeeds_1234Camel_CasIng() int64 { - if m != nil && m.KeyThatNeeds_1234Camel_CasIng != nil { - return *m.KeyThatNeeds_1234Camel_CasIng - } - return 0 -} - -func (m *Reply_Entry) GetValue() int64 { - if m != nil && m.Value != nil { - return *m.Value - } - return Default_Reply_Entry_Value -} - -func (m *Reply_Entry) GetXMyFieldName_2() int64 { - if m != nil && m.XMyFieldName_2 != nil { - return *m.XMyFieldName_2 - } - return 0 -} - -type OtherBase struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OtherBase) Reset() { *m = OtherBase{} } -func (m *OtherBase) String() string { return proto.CompactTextString(m) } -func (*OtherBase) ProtoMessage() {} - -var extRange_OtherBase = []proto.ExtensionRange{ - {100, 536870911}, -} - -func (*OtherBase) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_OtherBase -} -func (m *OtherBase) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -func (m *OtherBase) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -type ReplyExtensions struct { - XXX_unrecognized []byte `json:"-"` -} - -func (m *ReplyExtensions) Reset() { *m = ReplyExtensions{} } -func (m *ReplyExtensions) String() string { return proto.CompactTextString(m) } -func (*ReplyExtensions) ProtoMessage() {} - -var E_ReplyExtensions_Time = &proto.ExtensionDesc{ - ExtendedType: (*Reply)(nil), - ExtensionType: (*float64)(nil), - Field: 101, - Name: "my.test.ReplyExtensions.time", - Tag: "fixed64,101,opt,name=time", -} - -var E_ReplyExtensions_Carrot = &proto.ExtensionDesc{ - ExtendedType: (*Reply)(nil), - ExtensionType: (*ReplyExtensions)(nil), - Field: 105, - Name: "my.test.ReplyExtensions.carrot", - Tag: "bytes,105,opt,name=carrot", -} - -var E_ReplyExtensions_Donut = &proto.ExtensionDesc{ - ExtendedType: (*OtherBase)(nil), - ExtensionType: (*ReplyExtensions)(nil), - Field: 101, - Name: "my.test.ReplyExtensions.donut", - Tag: "bytes,101,opt,name=donut", -} - -type OtherReplyExtensions struct { - Key *int32 `protobuf:"varint,1,opt,name=key" json:"key,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OtherReplyExtensions) Reset() { *m = OtherReplyExtensions{} } -func (m *OtherReplyExtensions) String() string { return proto.CompactTextString(m) } -func (*OtherReplyExtensions) ProtoMessage() {} - -func (m *OtherReplyExtensions) GetKey() int32 { - if m != nil && m.Key != nil { - return *m.Key - } - return 0 -} - -type OldReply struct { - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OldReply) Reset() { *m = OldReply{} } -func (m *OldReply) String() string { return proto.CompactTextString(m) } -func (*OldReply) ProtoMessage() {} - -func (m *OldReply) Marshal() ([]byte, error) { - return proto.MarshalMessageSet(m.ExtensionMap()) -} -func (m *OldReply) Unmarshal(buf []byte) error { - return proto.UnmarshalMessageSet(buf, m.ExtensionMap()) -} -func (m *OldReply) MarshalJSON() ([]byte, error) { - return proto.MarshalMessageSetJSON(m.XXX_extensions) -} -func (m *OldReply) UnmarshalJSON(buf []byte) error { - return proto.UnmarshalMessageSetJSON(buf, m.XXX_extensions) -} - -// ensure OldReply satisfies proto.Marshaler and proto.Unmarshaler -var _ proto.Marshaler = (*OldReply)(nil) -var _ proto.Unmarshaler = (*OldReply)(nil) - -var extRange_OldReply = []proto.ExtensionRange{ - {100, 2147483646}, -} - -func (*OldReply) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_OldReply -} -func (m *OldReply) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -type Communique struct { - MakeMeCry *bool `protobuf:"varint,1,opt,name=make_me_cry" json:"make_me_cry,omitempty"` - // This is a oneof, called "union". - // - // Types that are valid to be assigned to Union: - // *Communique_Number - // *Communique_Name - // *Communique_Data - // *Communique_TempC - // *Communique_Height - // *Communique_Today - // *Communique_Maybe - // *Communique_Delta_ - // *Communique_Msg - // *Communique_Somegroup - Union isCommunique_Union `protobuf_oneof:"union"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Communique) Reset() { *m = Communique{} } -func (m *Communique) String() string { return proto.CompactTextString(m) } -func (*Communique) ProtoMessage() {} - -type isCommunique_Union interface { - isCommunique_Union() -} - -type Communique_Number struct { - Number int32 `protobuf:"varint,5,opt,name=number,oneof"` -} -type Communique_Name struct { - Name string `protobuf:"bytes,6,opt,name=name,oneof"` -} -type Communique_Data struct { - Data []byte `protobuf:"bytes,7,opt,name=data,oneof"` -} -type Communique_TempC struct { - TempC float64 `protobuf:"fixed64,8,opt,name=temp_c,oneof"` -} -type Communique_Height struct { - Height float32 `protobuf:"fixed32,9,opt,name=height,oneof"` -} -type Communique_Today struct { - Today Days `protobuf:"varint,10,opt,name=today,enum=my.test.Days,oneof"` -} -type Communique_Maybe struct { - Maybe bool `protobuf:"varint,11,opt,name=maybe,oneof"` -} -type Communique_Delta_ struct { - Delta int32 `protobuf:"zigzag32,12,opt,name=delta,oneof"` -} -type Communique_Msg struct { - Msg *Reply `protobuf:"bytes,13,opt,name=msg,oneof"` -} -type Communique_Somegroup struct { - Somegroup *Communique_SomeGroup `protobuf:"group,14,opt,name=SomeGroup,oneof"` -} - -func (*Communique_Number) isCommunique_Union() {} -func (*Communique_Name) isCommunique_Union() {} -func (*Communique_Data) isCommunique_Union() {} -func (*Communique_TempC) isCommunique_Union() {} -func (*Communique_Height) isCommunique_Union() {} -func (*Communique_Today) isCommunique_Union() {} -func (*Communique_Maybe) isCommunique_Union() {} -func (*Communique_Delta_) isCommunique_Union() {} -func (*Communique_Msg) isCommunique_Union() {} -func (*Communique_Somegroup) isCommunique_Union() {} - -func (m *Communique) GetUnion() isCommunique_Union { - if m != nil { - return m.Union - } - return nil -} - -func (m *Communique) GetMakeMeCry() bool { - if m != nil && m.MakeMeCry != nil { - return *m.MakeMeCry - } - return false -} - -func (m *Communique) GetNumber() int32 { - if x, ok := m.GetUnion().(*Communique_Number); ok { - return x.Number - } - return 0 -} - -func (m *Communique) GetName() string { - if x, ok := m.GetUnion().(*Communique_Name); ok { - return x.Name - } - return "" -} - -func (m *Communique) GetData() []byte { - if x, ok := m.GetUnion().(*Communique_Data); ok { - return x.Data - } - return nil -} - -func (m *Communique) GetTempC() float64 { - if x, ok := m.GetUnion().(*Communique_TempC); ok { - return x.TempC - } - return 0 -} - -func (m *Communique) GetHeight() float32 { - if x, ok := m.GetUnion().(*Communique_Height); ok { - return x.Height - } - return 0 -} - -func (m *Communique) GetToday() Days { - if x, ok := m.GetUnion().(*Communique_Today); ok { - return x.Today - } - return Days_MONDAY -} - -func (m *Communique) GetMaybe() bool { - if x, ok := m.GetUnion().(*Communique_Maybe); ok { - return x.Maybe - } - return false -} - -func (m *Communique) GetDelta() int32 { - if x, ok := m.GetUnion().(*Communique_Delta_); ok { - return x.Delta - } - return 0 -} - -func (m *Communique) GetMsg() *Reply { - if x, ok := m.GetUnion().(*Communique_Msg); ok { - return x.Msg - } - return nil -} - -func (m *Communique) GetSomegroup() *Communique_SomeGroup { - if x, ok := m.GetUnion().(*Communique_Somegroup); ok { - return x.Somegroup - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*Communique) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), []interface{}) { - return _Communique_OneofMarshaler, _Communique_OneofUnmarshaler, []interface{}{ - (*Communique_Number)(nil), - (*Communique_Name)(nil), - (*Communique_Data)(nil), - (*Communique_TempC)(nil), - (*Communique_Height)(nil), - (*Communique_Today)(nil), - (*Communique_Maybe)(nil), - (*Communique_Delta_)(nil), - (*Communique_Msg)(nil), - (*Communique_Somegroup)(nil), - } -} - -func _Communique_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*Communique) - // union - switch x := m.Union.(type) { - case *Communique_Number: - _ = b.EncodeVarint(5<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Number)) - case *Communique_Name: - _ = b.EncodeVarint(6<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Name) - case *Communique_Data: - _ = b.EncodeVarint(7<<3 | proto.WireBytes) - _ = b.EncodeRawBytes(x.Data) - case *Communique_TempC: - _ = b.EncodeVarint(8<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(math.Float64bits(x.TempC)) - case *Communique_Height: - _ = b.EncodeVarint(9<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(math.Float32bits(x.Height))) - case *Communique_Today: - _ = b.EncodeVarint(10<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Today)) - case *Communique_Maybe: - t := uint64(0) - if x.Maybe { - t = 1 - } - _ = b.EncodeVarint(11<<3 | proto.WireVarint) - _ = b.EncodeVarint(t) - case *Communique_Delta_: - _ = b.EncodeVarint(12<<3 | proto.WireVarint) - _ = b.EncodeZigzag32(uint64(x.Delta)) - case *Communique_Msg: - _ = b.EncodeVarint(13<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Msg); err != nil { - return err - } - case *Communique_Somegroup: - _ = b.EncodeVarint(14<<3 | proto.WireStartGroup) - if err := b.Marshal(x.Somegroup); err != nil { - return err - } - _ = b.EncodeVarint(14<<3 | proto.WireEndGroup) - case nil: - default: - return fmt.Errorf("Communique.Union has unexpected type %T", x) - } - return nil -} - -func _Communique_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*Communique) - switch tag { - case 5: // union.number - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Union = &Communique_Number{int32(x)} - return true, err - case 6: // union.name - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Union = &Communique_Name{x} - return true, err - case 7: // union.data - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.Union = &Communique_Data{x} - return true, err - case 8: // union.temp_c - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.Union = &Communique_TempC{math.Float64frombits(x)} - return true, err - case 9: // union.height - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.Union = &Communique_Height{math.Float32frombits(uint32(x))} - return true, err - case 10: // union.today - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Union = &Communique_Today{Days(x)} - return true, err - case 11: // union.maybe - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Union = &Communique_Maybe{x != 0} - return true, err - case 12: // union.delta - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag32() - m.Union = &Communique_Delta_{int32(x)} - return true, err - case 13: // union.msg - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Reply) - err := b.DecodeMessage(msg) - m.Union = &Communique_Msg{msg} - return true, err - case 14: // union.somegroup - if wire != proto.WireStartGroup { - return true, proto.ErrInternalBadWireType - } - msg := new(Communique_SomeGroup) - err := b.DecodeGroup(msg) - m.Union = &Communique_Somegroup{msg} - return true, err - default: - return false, nil - } -} - -type Communique_SomeGroup struct { - Member *string `protobuf:"bytes,15,opt,name=member" json:"member,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Communique_SomeGroup) Reset() { *m = Communique_SomeGroup{} } -func (m *Communique_SomeGroup) String() string { return proto.CompactTextString(m) } -func (*Communique_SomeGroup) ProtoMessage() {} - -func (m *Communique_SomeGroup) GetMember() string { - if m != nil && m.Member != nil { - return *m.Member - } - return "" -} - -type Communique_Delta struct { - XXX_unrecognized []byte `json:"-"` -} - -func (m *Communique_Delta) Reset() { *m = Communique_Delta{} } -func (m *Communique_Delta) String() string { return proto.CompactTextString(m) } -func (*Communique_Delta) ProtoMessage() {} - -var E_Tag = &proto.ExtensionDesc{ - ExtendedType: (*Reply)(nil), - ExtensionType: (*string)(nil), - Field: 103, - Name: "my.test.tag", - Tag: "bytes,103,opt,name=tag", -} - -var E_Donut = &proto.ExtensionDesc{ - ExtendedType: (*Reply)(nil), - ExtensionType: (*OtherReplyExtensions)(nil), - Field: 106, - Name: "my.test.donut", - Tag: "bytes,106,opt,name=donut", -} - -func init() { - proto.RegisterType((*Request)(nil), "my.test.Request") - proto.RegisterType((*Request_SomeGroup)(nil), "my.test.Request.SomeGroup") - proto.RegisterType((*Reply)(nil), "my.test.Reply") - proto.RegisterType((*Reply_Entry)(nil), "my.test.Reply.Entry") - proto.RegisterType((*OtherBase)(nil), "my.test.OtherBase") - proto.RegisterType((*ReplyExtensions)(nil), "my.test.ReplyExtensions") - proto.RegisterType((*OtherReplyExtensions)(nil), "my.test.OtherReplyExtensions") - proto.RegisterType((*OldReply)(nil), "my.test.OldReply") - proto.RegisterType((*Communique)(nil), "my.test.Communique") - proto.RegisterType((*Communique_SomeGroup)(nil), "my.test.Communique.SomeGroup") - proto.RegisterType((*Communique_Delta)(nil), "my.test.Communique.Delta") - proto.RegisterEnum("my.test.HatType", HatType_name, HatType_value) - proto.RegisterEnum("my.test.Days", Days_name, Days_value) - proto.RegisterEnum("my.test.Request_Color", Request_Color_name, Request_Color_value) - proto.RegisterEnum("my.test.Reply_Entry_Game", Reply_Entry_Game_name, Reply_Entry_Game_value) - proto.RegisterExtension(E_ReplyExtensions_Time) - proto.RegisterExtension(E_ReplyExtensions_Carrot) - proto.RegisterExtension(E_ReplyExtensions_Donut) - proto.RegisterExtension(E_Tag) - proto.RegisterExtension(E_Donut) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go.golden b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go.golden deleted file mode 100644 index 180a758b..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go.golden +++ /dev/null @@ -1,832 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: my_test/test.proto -// DO NOT EDIT! - -/* -Package my_test is a generated protocol buffer package. - -This package holds interesting messages. - -It is generated from these files: - my_test/test.proto - -It has these top-level messages: - Request - Reply - OtherBase - ReplyExtensions - OtherReplyExtensions - OldReply - Communique -*/ -package my_test - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type HatType int32 - -const ( - // deliberately skipping 0 - HatType_FEDORA HatType = 1 - HatType_FEZ HatType = 2 -) - -var HatType_name = map[int32]string{ - 1: "FEDORA", - 2: "FEZ", -} -var HatType_value = map[string]int32{ - "FEDORA": 1, - "FEZ": 2, -} - -func (x HatType) Enum() *HatType { - p := new(HatType) - *p = x - return p -} -func (x HatType) String() string { - return proto.EnumName(HatType_name, int32(x)) -} -func (x *HatType) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(HatType_value, data, "HatType") - if err != nil { - return err - } - *x = HatType(value) - return nil -} - -// This enum represents days of the week. -type Days int32 - -const ( - Days_MONDAY Days = 1 - Days_TUESDAY Days = 2 - Days_LUNDI Days = 1 -) - -var Days_name = map[int32]string{ - 1: "MONDAY", - 2: "TUESDAY", - // Duplicate value: 1: "LUNDI", -} -var Days_value = map[string]int32{ - "MONDAY": 1, - "TUESDAY": 2, - "LUNDI": 1, -} - -func (x Days) Enum() *Days { - p := new(Days) - *p = x - return p -} -func (x Days) String() string { - return proto.EnumName(Days_name, int32(x)) -} -func (x *Days) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Days_value, data, "Days") - if err != nil { - return err - } - *x = Days(value) - return nil -} - -type Request_Color int32 - -const ( - Request_RED Request_Color = 0 - Request_GREEN Request_Color = 1 - Request_BLUE Request_Color = 2 -) - -var Request_Color_name = map[int32]string{ - 0: "RED", - 1: "GREEN", - 2: "BLUE", -} -var Request_Color_value = map[string]int32{ - "RED": 0, - "GREEN": 1, - "BLUE": 2, -} - -func (x Request_Color) Enum() *Request_Color { - p := new(Request_Color) - *p = x - return p -} -func (x Request_Color) String() string { - return proto.EnumName(Request_Color_name, int32(x)) -} -func (x *Request_Color) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Request_Color_value, data, "Request_Color") - if err != nil { - return err - } - *x = Request_Color(value) - return nil -} - -type Reply_Entry_Game int32 - -const ( - Reply_Entry_FOOTBALL Reply_Entry_Game = 1 - Reply_Entry_TENNIS Reply_Entry_Game = 2 -) - -var Reply_Entry_Game_name = map[int32]string{ - 1: "FOOTBALL", - 2: "TENNIS", -} -var Reply_Entry_Game_value = map[string]int32{ - "FOOTBALL": 1, - "TENNIS": 2, -} - -func (x Reply_Entry_Game) Enum() *Reply_Entry_Game { - p := new(Reply_Entry_Game) - *p = x - return p -} -func (x Reply_Entry_Game) String() string { - return proto.EnumName(Reply_Entry_Game_name, int32(x)) -} -func (x *Reply_Entry_Game) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Reply_Entry_Game_value, data, "Reply_Entry_Game") - if err != nil { - return err - } - *x = Reply_Entry_Game(value) - return nil -} - -// This is a message that might be sent somewhere. -type Request struct { - Key []int64 `protobuf:"varint,1,rep,name=key" json:"key,omitempty"` - // optional imp.ImportedMessage imported_message = 2; - Hue *Request_Color `protobuf:"varint,3,opt,name=hue,enum=my.test.Request_Color" json:"hue,omitempty"` - Hat *HatType `protobuf:"varint,4,opt,name=hat,enum=my.test.HatType,def=1" json:"hat,omitempty"` - // optional imp.ImportedMessage.Owner owner = 6; - Deadline *float32 `protobuf:"fixed32,7,opt,name=deadline,def=inf" json:"deadline,omitempty"` - Somegroup *Request_SomeGroup `protobuf:"group,8,opt,name=SomeGroup" json:"somegroup,omitempty"` - // This is a map field. It will generate map[int32]string. - NameMapping map[int32]string `protobuf:"bytes,14,rep,name=name_mapping" json:"name_mapping,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - // This is a map field whose value type is a message. - MsgMapping map[int64]*Reply `protobuf:"bytes,15,rep,name=msg_mapping" json:"msg_mapping,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - Reset_ *int32 `protobuf:"varint,12,opt,name=reset" json:"reset,omitempty"` - // This field should not conflict with any getters. - GetKey_ *string `protobuf:"bytes,16,opt,name=get_key" json:"get_key,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Request) Reset() { *m = Request{} } -func (m *Request) String() string { return proto.CompactTextString(m) } -func (*Request) ProtoMessage() {} - -const Default_Request_Hat HatType = HatType_FEDORA - -var Default_Request_Deadline float32 = float32(math.Inf(1)) - -func (m *Request) GetKey() []int64 { - if m != nil { - return m.Key - } - return nil -} - -func (m *Request) GetHue() Request_Color { - if m != nil && m.Hue != nil { - return *m.Hue - } - return Request_RED -} - -func (m *Request) GetHat() HatType { - if m != nil && m.Hat != nil { - return *m.Hat - } - return Default_Request_Hat -} - -func (m *Request) GetDeadline() float32 { - if m != nil && m.Deadline != nil { - return *m.Deadline - } - return Default_Request_Deadline -} - -func (m *Request) GetSomegroup() *Request_SomeGroup { - if m != nil { - return m.Somegroup - } - return nil -} - -func (m *Request) GetNameMapping() map[int32]string { - if m != nil { - return m.NameMapping - } - return nil -} - -func (m *Request) GetMsgMapping() map[int64]*Reply { - if m != nil { - return m.MsgMapping - } - return nil -} - -func (m *Request) GetReset_() int32 { - if m != nil && m.Reset_ != nil { - return *m.Reset_ - } - return 0 -} - -func (m *Request) GetGetKey_() string { - if m != nil && m.GetKey_ != nil { - return *m.GetKey_ - } - return "" -} - -type Request_SomeGroup struct { - GroupField *int32 `protobuf:"varint,9,opt,name=group_field" json:"group_field,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Request_SomeGroup) Reset() { *m = Request_SomeGroup{} } -func (m *Request_SomeGroup) String() string { return proto.CompactTextString(m) } -func (*Request_SomeGroup) ProtoMessage() {} - -func (m *Request_SomeGroup) GetGroupField() int32 { - if m != nil && m.GroupField != nil { - return *m.GroupField - } - return 0 -} - -type Reply struct { - Found []*Reply_Entry `protobuf:"bytes,1,rep,name=found" json:"found,omitempty"` - CompactKeys []int32 `protobuf:"varint,2,rep,packed,name=compact_keys" json:"compact_keys,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Reply) Reset() { *m = Reply{} } -func (m *Reply) String() string { return proto.CompactTextString(m) } -func (*Reply) ProtoMessage() {} - -var extRange_Reply = []proto.ExtensionRange{ - {100, 536870911}, -} - -func (*Reply) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_Reply -} -func (m *Reply) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -func (m *Reply) GetFound() []*Reply_Entry { - if m != nil { - return m.Found - } - return nil -} - -func (m *Reply) GetCompactKeys() []int32 { - if m != nil { - return m.CompactKeys - } - return nil -} - -type Reply_Entry struct { - KeyThatNeeds_1234Camel_CasIng *int64 `protobuf:"varint,1,req,name=key_that_needs_1234camel_CasIng" json:"key_that_needs_1234camel_CasIng,omitempty"` - Value *int64 `protobuf:"varint,2,opt,name=value,def=7" json:"value,omitempty"` - XMyFieldName_2 *int64 `protobuf:"varint,3,opt,name=_my_field_name_2" json:"_my_field_name_2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Reply_Entry) Reset() { *m = Reply_Entry{} } -func (m *Reply_Entry) String() string { return proto.CompactTextString(m) } -func (*Reply_Entry) ProtoMessage() {} - -const Default_Reply_Entry_Value int64 = 7 - -func (m *Reply_Entry) GetKeyThatNeeds_1234Camel_CasIng() int64 { - if m != nil && m.KeyThatNeeds_1234Camel_CasIng != nil { - return *m.KeyThatNeeds_1234Camel_CasIng - } - return 0 -} - -func (m *Reply_Entry) GetValue() int64 { - if m != nil && m.Value != nil { - return *m.Value - } - return Default_Reply_Entry_Value -} - -func (m *Reply_Entry) GetXMyFieldName_2() int64 { - if m != nil && m.XMyFieldName_2 != nil { - return *m.XMyFieldName_2 - } - return 0 -} - -type OtherBase struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OtherBase) Reset() { *m = OtherBase{} } -func (m *OtherBase) String() string { return proto.CompactTextString(m) } -func (*OtherBase) ProtoMessage() {} - -var extRange_OtherBase = []proto.ExtensionRange{ - {100, 536870911}, -} - -func (*OtherBase) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_OtherBase -} -func (m *OtherBase) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -func (m *OtherBase) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -type ReplyExtensions struct { - XXX_unrecognized []byte `json:"-"` -} - -func (m *ReplyExtensions) Reset() { *m = ReplyExtensions{} } -func (m *ReplyExtensions) String() string { return proto.CompactTextString(m) } -func (*ReplyExtensions) ProtoMessage() {} - -var E_ReplyExtensions_Time = &proto.ExtensionDesc{ - ExtendedType: (*Reply)(nil), - ExtensionType: (*float64)(nil), - Field: 101, - Name: "my.test.ReplyExtensions.time", - Tag: "fixed64,101,opt,name=time", -} - -var E_ReplyExtensions_Carrot = &proto.ExtensionDesc{ - ExtendedType: (*Reply)(nil), - ExtensionType: (*ReplyExtensions)(nil), - Field: 105, - Name: "my.test.ReplyExtensions.carrot", - Tag: "bytes,105,opt,name=carrot", -} - -var E_ReplyExtensions_Donut = &proto.ExtensionDesc{ - ExtendedType: (*OtherBase)(nil), - ExtensionType: (*ReplyExtensions)(nil), - Field: 101, - Name: "my.test.ReplyExtensions.donut", - Tag: "bytes,101,opt,name=donut", -} - -type OtherReplyExtensions struct { - Key *int32 `protobuf:"varint,1,opt,name=key" json:"key,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OtherReplyExtensions) Reset() { *m = OtherReplyExtensions{} } -func (m *OtherReplyExtensions) String() string { return proto.CompactTextString(m) } -func (*OtherReplyExtensions) ProtoMessage() {} - -func (m *OtherReplyExtensions) GetKey() int32 { - if m != nil && m.Key != nil { - return *m.Key - } - return 0 -} - -type OldReply struct { - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OldReply) Reset() { *m = OldReply{} } -func (m *OldReply) String() string { return proto.CompactTextString(m) } -func (*OldReply) ProtoMessage() {} - -func (m *OldReply) Marshal() ([]byte, error) { - return proto.MarshalMessageSet(m.ExtensionMap()) -} -func (m *OldReply) Unmarshal(buf []byte) error { - return proto.UnmarshalMessageSet(buf, m.ExtensionMap()) -} -func (m *OldReply) MarshalJSON() ([]byte, error) { - return proto.MarshalMessageSetJSON(m.XXX_extensions) -} -func (m *OldReply) UnmarshalJSON(buf []byte) error { - return proto.UnmarshalMessageSetJSON(buf, m.XXX_extensions) -} - -// ensure OldReply satisfies proto.Marshaler and proto.Unmarshaler -var _ proto.Marshaler = (*OldReply)(nil) -var _ proto.Unmarshaler = (*OldReply)(nil) - -var extRange_OldReply = []proto.ExtensionRange{ - {100, 2147483646}, -} - -func (*OldReply) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_OldReply -} -func (m *OldReply) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} - -type Communique struct { - MakeMeCry *bool `protobuf:"varint,1,opt,name=make_me_cry" json:"make_me_cry,omitempty"` - // This is a oneof, called "union". - // - // Types that are valid to be assigned to Union: - // *Communique_Number - // *Communique_Name - // *Communique_Data - // *Communique_TempC - // *Communique_Height - // *Communique_Today - // *Communique_Maybe - // *Communique_Delta_ - // *Communique_Msg - // *Communique_Somegroup - Union isCommunique_Union `protobuf_oneof:"union"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Communique) Reset() { *m = Communique{} } -func (m *Communique) String() string { return proto.CompactTextString(m) } -func (*Communique) ProtoMessage() {} - -type isCommunique_Union interface { - isCommunique_Union() -} - -type Communique_Number struct { - Number int32 `protobuf:"varint,5,opt,name=number,oneof"` -} -type Communique_Name struct { - Name string `protobuf:"bytes,6,opt,name=name,oneof"` -} -type Communique_Data struct { - Data []byte `protobuf:"bytes,7,opt,name=data,oneof"` -} -type Communique_TempC struct { - TempC float64 `protobuf:"fixed64,8,opt,name=temp_c,oneof"` -} -type Communique_Height struct { - Height float32 `protobuf:"fixed32,9,opt,name=height,oneof"` -} -type Communique_Today struct { - Today Days `protobuf:"varint,10,opt,name=today,enum=my.test.Days,oneof"` -} -type Communique_Maybe struct { - Maybe bool `protobuf:"varint,11,opt,name=maybe,oneof"` -} -type Communique_Delta_ struct { - Delta int32 `protobuf:"zigzag32,12,opt,name=delta,oneof"` -} -type Communique_Msg struct { - Msg *Reply `protobuf:"bytes,13,opt,name=msg,oneof"` -} -type Communique_Somegroup struct { - Somegroup *Communique_SomeGroup `protobuf:"group,14,opt,name=SomeGroup,oneof"` -} - -func (*Communique_Number) isCommunique_Union() {} -func (*Communique_Name) isCommunique_Union() {} -func (*Communique_Data) isCommunique_Union() {} -func (*Communique_TempC) isCommunique_Union() {} -func (*Communique_Height) isCommunique_Union() {} -func (*Communique_Today) isCommunique_Union() {} -func (*Communique_Maybe) isCommunique_Union() {} -func (*Communique_Delta_) isCommunique_Union() {} -func (*Communique_Msg) isCommunique_Union() {} -func (*Communique_Somegroup) isCommunique_Union() {} - -func (m *Communique) GetUnion() isCommunique_Union { - if m != nil { - return m.Union - } - return nil -} - -func (m *Communique) GetMakeMeCry() bool { - if m != nil && m.MakeMeCry != nil { - return *m.MakeMeCry - } - return false -} - -func (m *Communique) GetNumber() int32 { - if x, ok := m.GetUnion().(*Communique_Number); ok { - return x.Number - } - return 0 -} - -func (m *Communique) GetName() string { - if x, ok := m.GetUnion().(*Communique_Name); ok { - return x.Name - } - return "" -} - -func (m *Communique) GetData() []byte { - if x, ok := m.GetUnion().(*Communique_Data); ok { - return x.Data - } - return nil -} - -func (m *Communique) GetTempC() float64 { - if x, ok := m.GetUnion().(*Communique_TempC); ok { - return x.TempC - } - return 0 -} - -func (m *Communique) GetHeight() float32 { - if x, ok := m.GetUnion().(*Communique_Height); ok { - return x.Height - } - return 0 -} - -func (m *Communique) GetToday() Days { - if x, ok := m.GetUnion().(*Communique_Today); ok { - return x.Today - } - return Days_MONDAY -} - -func (m *Communique) GetMaybe() bool { - if x, ok := m.GetUnion().(*Communique_Maybe); ok { - return x.Maybe - } - return false -} - -func (m *Communique) GetDelta() int32 { - if x, ok := m.GetUnion().(*Communique_Delta_); ok { - return x.Delta - } - return 0 -} - -func (m *Communique) GetMsg() *Reply { - if x, ok := m.GetUnion().(*Communique_Msg); ok { - return x.Msg - } - return nil -} - -func (m *Communique) GetSomegroup() *Communique_SomeGroup { - if x, ok := m.GetUnion().(*Communique_Somegroup); ok { - return x.Somegroup - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*Communique) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), []interface{}) { - return _Communique_OneofMarshaler, _Communique_OneofUnmarshaler, []interface{}{ - (*Communique_Number)(nil), - (*Communique_Name)(nil), - (*Communique_Data)(nil), - (*Communique_TempC)(nil), - (*Communique_Height)(nil), - (*Communique_Today)(nil), - (*Communique_Maybe)(nil), - (*Communique_Delta_)(nil), - (*Communique_Msg)(nil), - (*Communique_Somegroup)(nil), - } -} - -func _Communique_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*Communique) - // union - switch x := m.Union.(type) { - case *Communique_Number: - _ = b.EncodeVarint(5<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Number)) - case *Communique_Name: - _ = b.EncodeVarint(6<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Name) - case *Communique_Data: - _ = b.EncodeVarint(7<<3 | proto.WireBytes) - _ = b.EncodeRawBytes(x.Data) - case *Communique_TempC: - _ = b.EncodeVarint(8<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(math.Float64bits(x.TempC)) - case *Communique_Height: - _ = b.EncodeVarint(9<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(math.Float32bits(x.Height))) - case *Communique_Today: - _ = b.EncodeVarint(10<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Today)) - case *Communique_Maybe: - t := uint64(0) - if x.Maybe { - t = 1 - } - _ = b.EncodeVarint(11<<3 | proto.WireVarint) - _ = b.EncodeVarint(t) - case *Communique_Delta_: - _ = b.EncodeVarint(12<<3 | proto.WireVarint) - _ = b.EncodeZigzag32(uint64(x.Delta)) - case *Communique_Msg: - _ = b.EncodeVarint(13<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Msg); err != nil { - return err - } - case *Communique_Somegroup: - _ = b.EncodeVarint(14<<3 | proto.WireStartGroup) - if err := b.Marshal(x.Somegroup); err != nil { - return err - } - _ = b.EncodeVarint(14<<3 | proto.WireEndGroup) - case nil: - default: - return fmt.Errorf("Communique.Union has unexpected type %T", x) - } - return nil -} - -func _Communique_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*Communique) - switch tag { - case 5: // union.number - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Union = &Communique_Number{int32(x)} - return true, err - case 6: // union.name - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Union = &Communique_Name{x} - return true, err - case 7: // union.data - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.Union = &Communique_Data{x} - return true, err - case 8: // union.temp_c - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.Union = &Communique_TempC{math.Float64frombits(x)} - return true, err - case 9: // union.height - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.Union = &Communique_Height{math.Float32frombits(uint32(x))} - return true, err - case 10: // union.today - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Union = &Communique_Today{Days(x)} - return true, err - case 11: // union.maybe - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Union = &Communique_Maybe{x != 0} - return true, err - case 12: // union.delta - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag32() - m.Union = &Communique_Delta_{int32(x)} - return true, err - case 13: // union.msg - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Reply) - err := b.DecodeMessage(msg) - m.Union = &Communique_Msg{msg} - return true, err - case 14: // union.somegroup - if wire != proto.WireStartGroup { - return true, proto.ErrInternalBadWireType - } - msg := new(Communique_SomeGroup) - err := b.DecodeGroup(msg) - m.Union = &Communique_Somegroup{msg} - return true, err - default: - return false, nil - } -} - -type Communique_SomeGroup struct { - Member *string `protobuf:"bytes,15,opt,name=member" json:"member,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Communique_SomeGroup) Reset() { *m = Communique_SomeGroup{} } -func (m *Communique_SomeGroup) String() string { return proto.CompactTextString(m) } -func (*Communique_SomeGroup) ProtoMessage() {} - -func (m *Communique_SomeGroup) GetMember() string { - if m != nil && m.Member != nil { - return *m.Member - } - return "" -} - -type Communique_Delta struct { - XXX_unrecognized []byte `json:"-"` -} - -func (m *Communique_Delta) Reset() { *m = Communique_Delta{} } -func (m *Communique_Delta) String() string { return proto.CompactTextString(m) } -func (*Communique_Delta) ProtoMessage() {} - -var E_Tag = &proto.ExtensionDesc{ - ExtendedType: (*Reply)(nil), - ExtensionType: (*string)(nil), - Field: 103, - Name: "my.test.tag", - Tag: "bytes,103,opt,name=tag", -} - -var E_Donut = &proto.ExtensionDesc{ - ExtendedType: (*Reply)(nil), - ExtensionType: (*OtherReplyExtensions)(nil), - Field: 106, - Name: "my.test.donut", - Tag: "bytes,106,opt,name=donut", -} - -func init() { - proto.RegisterType((*Request)(nil), "my.test.Request") - proto.RegisterType((*Request_SomeGroup)(nil), "my.test.Request.SomeGroup") - proto.RegisterType((*Reply)(nil), "my.test.Reply") - proto.RegisterType((*Reply_Entry)(nil), "my.test.Reply.Entry") - proto.RegisterType((*OtherBase)(nil), "my.test.OtherBase") - proto.RegisterType((*ReplyExtensions)(nil), "my.test.ReplyExtensions") - proto.RegisterType((*OtherReplyExtensions)(nil), "my.test.OtherReplyExtensions") - proto.RegisterType((*OldReply)(nil), "my.test.OldReply") - proto.RegisterType((*Communique)(nil), "my.test.Communique") - proto.RegisterType((*Communique_SomeGroup)(nil), "my.test.Communique.SomeGroup") - proto.RegisterType((*Communique_Delta)(nil), "my.test.Communique.Delta") - proto.RegisterEnum("my.test.HatType", HatType_name, HatType_value) - proto.RegisterEnum("my.test.Days", Days_name, Days_value) - proto.RegisterEnum("my.test.Request_Color", Request_Color_name, Request_Color_value) - proto.RegisterEnum("my.test.Reply_Entry_Game", Reply_Entry_Game_name, Reply_Entry_Game_value) - proto.RegisterExtension(E_ReplyExtensions_Time) - proto.RegisterExtension(E_ReplyExtensions_Carrot) - proto.RegisterExtension(E_ReplyExtensions_Donut) - proto.RegisterExtension(E_Tag) - proto.RegisterExtension(E_Donut) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/my_test/test.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/my_test/test.proto deleted file mode 100644 index 8e709463..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/my_test/test.proto +++ /dev/null @@ -1,156 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2010 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto2"; - -// This package holds interesting messages. -package my.test; // dotted package name - -//import "imp.proto"; -import "multi/multi1.proto"; // unused import - -enum HatType { - // deliberately skipping 0 - FEDORA = 1; - FEZ = 2; -} - -// This enum represents days of the week. -enum Days { - option allow_alias = true; - - MONDAY = 1; - TUESDAY = 2; - LUNDI = 1; // same value as MONDAY -} - -// This is a message that might be sent somewhere. -message Request { - enum Color { - RED = 0; - GREEN = 1; - BLUE = 2; - } - repeated int64 key = 1; -// optional imp.ImportedMessage imported_message = 2; - optional Color hue = 3; // no default - optional HatType hat = 4 [default=FEDORA]; -// optional imp.ImportedMessage.Owner owner = 6; - optional float deadline = 7 [default=inf]; - optional group SomeGroup = 8 { - optional int32 group_field = 9; - } - - // These foreign types are in imp2.proto, - // which is publicly imported by imp.proto. -// optional imp.PubliclyImportedMessage pub = 10; -// optional imp.PubliclyImportedEnum pub_enum = 13 [default=HAIR]; - - - // This is a map field. It will generate map[int32]string. - map name_mapping = 14; - // This is a map field whose value type is a message. - map msg_mapping = 15; - - optional int32 reset = 12; - // This field should not conflict with any getters. - optional string get_key = 16; -} - -message Reply { - message Entry { - required int64 key_that_needs_1234camel_CasIng = 1; - optional int64 value = 2 [default=7]; - optional int64 _my_field_name_2 = 3; - enum Game { - FOOTBALL = 1; - TENNIS = 2; - } - } - repeated Entry found = 1; - repeated int32 compact_keys = 2 [packed=true]; - extensions 100 to max; -} - -message OtherBase { - optional string name = 1; - extensions 100 to max; -} - -message ReplyExtensions { - extend Reply { - optional double time = 101; - optional ReplyExtensions carrot = 105; - } - extend OtherBase { - optional ReplyExtensions donut = 101; - } -} - -message OtherReplyExtensions { - optional int32 key = 1; -} - -// top-level extension -extend Reply { - optional string tag = 103; - optional OtherReplyExtensions donut = 106; -// optional imp.ImportedMessage elephant = 107; // extend with message from another file. -} - -message OldReply { - // Extensions will be encoded in MessageSet wire format. - option message_set_wire_format = true; - extensions 100 to max; -} - -message Communique { - optional bool make_me_cry = 1; - - // This is a oneof, called "union". - oneof union { - int32 number = 5; - string name = 6; - bytes data = 7; - double temp_c = 8; - float height = 9; - Days today = 10; - bool maybe = 11; - sint32 delta = 12; // name will conflict with Delta below - Reply msg = 13; - group SomeGroup = 14 { - optional string member = 15; - } - } - - message Delta {} -} - diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/proto3.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/proto3.proto deleted file mode 100644 index c994914e..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/testdata/proto3.proto +++ /dev/null @@ -1,52 +0,0 @@ -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2014 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// 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. - -syntax = "proto3"; - -package proto3; - -message Request { - enum Flavour { - SWEET = 0; - SOUR = 1; - UMAMI = 2; - GOPHERLICIOUS = 3; - } - string name = 1; - repeated int64 key = 2; - Flavour taste = 3; - Book book = 4; -} - -message Book { - string title = 1; - bytes raw_data = 2; -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogofast/main.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogofast/main.go deleted file mode 100644 index 543c7e2e..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogofast/main.go +++ /dev/null @@ -1,47 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package main - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/command" -) - -func main() { - req := command.Read() - files := req.GetProtoFile() - files = vanity.FilterFiles(files, vanity.NotInPackageGoogleProtobuf) - - vanity.ForEachFile(files, vanity.TurnOnMarshalerAll) - vanity.ForEachFile(files, vanity.TurnOnSizerAll) - vanity.ForEachFile(files, vanity.TurnOnUnmarshalerAll) - - resp := command.Generate(req) - command.Write(resp) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogofaster/main.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogofaster/main.go deleted file mode 100644 index 95400385..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogofaster/main.go +++ /dev/null @@ -1,50 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package main - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/command" -) - -func main() { - req := command.Read() - files := req.GetProtoFile() - files = vanity.FilterFiles(files, vanity.NotInPackageGoogleProtobuf) - - vanity.ForEachFile(files, vanity.TurnOnMarshalerAll) - vanity.ForEachFile(files, vanity.TurnOnSizerAll) - vanity.ForEachFile(files, vanity.TurnOnUnmarshalerAll) - - vanity.ForEachFieldInFilesExcludingExtensions(vanity.OnlyProto2(files), vanity.TurnOffNullableForNativeTypesWithoutDefaultsOnly) - vanity.ForEachFile(files, vanity.TurnOffGoUnrecognizedAll) - - resp := command.Generate(req) - command.Write(resp) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogoslick/main.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogoslick/main.go deleted file mode 100644 index 0ed8b7e4..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogoslick/main.go +++ /dev/null @@ -1,59 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package main - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/command" -) - -func main() { - req := command.Read() - files := req.GetProtoFile() - files = vanity.FilterFiles(files, vanity.NotInPackageGoogleProtobuf) - - vanity.ForEachFile(files, vanity.TurnOnMarshalerAll) - vanity.ForEachFile(files, vanity.TurnOnSizerAll) - vanity.ForEachFile(files, vanity.TurnOnUnmarshalerAll) - - vanity.ForEachFieldInFilesExcludingExtensions(vanity.OnlyProto2(files), vanity.TurnOffNullableForNativeTypesWithoutDefaultsOnly) - vanity.ForEachFile(files, vanity.TurnOffGoUnrecognizedAll) - - vanity.ForEachFile(files, vanity.TurnOffGoEnumPrefixAll) - vanity.ForEachFile(files, vanity.TurnOffGoEnumStringerAll) - vanity.ForEachFile(files, vanity.TurnOnEnumStringerAll) - - vanity.ForEachFile(files, vanity.TurnOnEqualAll) - vanity.ForEachFile(files, vanity.TurnOnGoStringAll) - vanity.ForEachFile(files, vanity.TurnOffGoStringerAll) - vanity.ForEachFile(files, vanity.TurnOnStringerAll) - - resp := command.Generate(req) - command.Write(resp) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-min-version/minversion.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-min-version/minversion.go deleted file mode 100644 index 7e741ff4..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-min-version/minversion.go +++ /dev/null @@ -1,65 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package main - -import ( - "fmt" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/version" - "os" - "os/exec" - "strings" -) - -func filter(ss []string, flag string) ([]string, string) { - s := make([]string, 0, len(ss)) - var v string - for i := range ss { - if strings.Contains(ss[i], flag) { - vs := strings.Split(ss[i], "=") - v = vs[1] - continue - } - s = append(s, ss[i]) - } - return s, v -} - -func main() { - args, min := filter(os.Args[1:], "-version") - if !version.AtLeast(min) { - fmt.Printf("protoc version not high enough to parse this proto file\n") - return - } - gen := exec.Command("protoc", args...) - out, err := gen.CombinedOutput() - if err != nil { - fmt.Printf("%s\n", string(out)) - panic(err) - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/sortkeys/sortkeys.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/sortkeys/sortkeys.go deleted file mode 100644 index c52878dd..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/sortkeys/sortkeys.go +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf -// -// 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. -// -// 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. - -package sortkeys - -import ( - "sort" -) - -func Strings(l []string) { - sort.Strings(l) -} - -func Float64s(l []float64) { - sort.Float64s(l) -} - -func Float32s(l []float32) { - sort.Sort(Float32Slice(l)) -} - -func Int64s(l []int64) { - sort.Sort(Int64Slice(l)) -} - -func Int32s(l []int32) { - sort.Sort(Int32Slice(l)) -} - -func Uint64s(l []uint64) { - sort.Sort(Uint64Slice(l)) -} - -func Uint32s(l []uint32) { - sort.Sort(Uint32Slice(l)) -} - -func Bools(l []bool) { - sort.Sort(BoolSlice(l)) -} - -type BoolSlice []bool - -func (p BoolSlice) Len() int { return len(p) } -func (p BoolSlice) Less(i, j int) bool { return p[j] } -func (p BoolSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - -type Int64Slice []int64 - -func (p Int64Slice) Len() int { return len(p) } -func (p Int64Slice) Less(i, j int) bool { return p[i] < p[j] } -func (p Int64Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - -type Int32Slice []int32 - -func (p Int32Slice) Len() int { return len(p) } -func (p Int32Slice) Less(i, j int) bool { return p[i] < p[j] } -func (p Int32Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - -type Uint64Slice []uint64 - -func (p Uint64Slice) Len() int { return len(p) } -func (p Uint64Slice) Less(i, j int) bool { return p[i] < p[j] } -func (p Uint64Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - -type Uint32Slice []uint32 - -func (p Uint32Slice) Len() int { return len(p) } -func (p Uint32Slice) Less(i, j int) bool { return p[i] < p[j] } -func (p Uint32Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - -type Float32Slice []float32 - -func (p Float32Slice) Len() int { return len(p) } -func (p Float32Slice) Less(i, j int) bool { return p[i] < p[j] } -func (p Float32Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/command/command.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/command/command.go deleted file mode 100644 index 8115f3ff..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/command/command.go +++ /dev/null @@ -1,151 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package command - -import ( - "io/ioutil" - "os" - - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/generator" - plugin "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/plugin" - - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/grpc" - - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/defaultcheck" - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/description" - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/embedcheck" - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/enumstringer" - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/equal" - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/face" - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/gostring" - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/marshalto" - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/oneofcheck" - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/populate" - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/size" - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/stringer" - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/union" - _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/unmarshal" - - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/plugin/testgen" - - "go/format" - "strings" -) - -func Read() *plugin.CodeGeneratorRequest { - g := generator.New() - data, err := ioutil.ReadAll(os.Stdin) - if err != nil { - g.Error(err, "reading input") - } - - if err := proto.Unmarshal(data, g.Request); err != nil { - g.Error(err, "parsing input proto") - } - - if len(g.Request.FileToGenerate) == 0 { - g.Fail("no files to generate") - } - return g.Request -} - -func Generate(req *plugin.CodeGeneratorRequest) *plugin.CodeGeneratorResponse { - // Begin by allocating a generator. The request and response structures are stored there - // so we can do error handling easily - the response structure contains the field to - // report failure. - g := generator.New() - g.Request = req - - g.CommandLineParameters(g.Request.GetParameter()) - - // Create a wrapped version of the Descriptors and EnumDescriptors that - // point to the file that defines them. - g.WrapTypes() - - g.SetPackageNames() - g.BuildTypeNameMap() - - g.GenerateAllFiles() - - gtest := generator.New() - - data, err := proto.Marshal(req) - if err != nil { - g.Error(err, "failed to marshal modified proto") - } - if err := proto.Unmarshal(data, gtest.Request); err != nil { - g.Error(err, "parsing modified proto") - } - - if len(gtest.Request.FileToGenerate) == 0 { - gtest.Fail("no files to generate") - } - - gtest.CommandLineParameters(gtest.Request.GetParameter()) - - // Create a wrapped version of the Descriptors and EnumDescriptors that - // point to the file that defines them. - gtest.WrapTypes() - - gtest.SetPackageNames() - gtest.BuildTypeNameMap() - - gtest.GeneratePlugin(testgen.NewPlugin()) - - for i := 0; i < len(gtest.Response.File); i++ { - if strings.Contains(*gtest.Response.File[i].Content, `//These tests are generated by github.com/gogo/protobuf/plugin/testgen`) { - gtest.Response.File[i].Name = proto.String(strings.Replace(*gtest.Response.File[i].Name, ".pb.go", "pb_test.go", -1)) - g.Response.File = append(g.Response.File, gtest.Response.File[i]) - } - } - - for i := 0; i < len(g.Response.File); i++ { - formatted, err := format.Source([]byte(g.Response.File[i].GetContent())) - if err != nil { - g.Error(err, "go format error") - } - fmts := string(formatted) - g.Response.File[i].Content = &fmts - } - return g.Response -} - -func Write(resp *plugin.CodeGeneratorResponse) { - g := generator.New() - // Send back the results. - data, err := proto.Marshal(resp) - if err != nil { - g.Error(err, "failed to marshal output proto") - } - _, err = os.Stdout.Write(data) - if err != nil { - g.Error(err, "failed to write output proto") - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/enum.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/enum.go deleted file mode 100644 index deaa35c6..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/enum.go +++ /dev/null @@ -1,78 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2015, Vastech SA (PTY) LTD. rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package vanity - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" -) - -func EnumHasBoolExtension(enum *descriptor.EnumDescriptorProto, extension *proto.ExtensionDesc) bool { - if enum.Options == nil { - return false - } - value, err := proto.GetExtension(enum.Options, extension) - if err != nil { - return false - } - if value == nil { - return false - } - if value.(*bool) == nil { - return false - } - return true -} - -func SetBoolEnumOption(extension *proto.ExtensionDesc, value bool) func(enum *descriptor.EnumDescriptorProto) { - return func(enum *descriptor.EnumDescriptorProto) { - if EnumHasBoolExtension(enum, extension) { - return - } - if enum.Options == nil { - enum.Options = &descriptor.EnumOptions{} - } - if err := proto.SetExtension(enum.Options, extension, &value); err != nil { - panic(err) - } - } -} - -func TurnOffGoEnumPrefix(enum *descriptor.EnumDescriptorProto) { - SetBoolEnumOption(gogoproto.E_GoprotoEnumPrefix, false)(enum) -} - -func TurnOffGoEnumStringer(enum *descriptor.EnumDescriptorProto) { - SetBoolEnumOption(gogoproto.E_GoprotoEnumStringer, false)(enum) -} - -func TurnOnEnumStringer(enum *descriptor.EnumDescriptorProto) { - SetBoolEnumOption(gogoproto.E_EnumStringer, true)(enum) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/field.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/field.go deleted file mode 100644 index 401ddfaa..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/field.go +++ /dev/null @@ -1,83 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2015, Vastech SA (PTY) LTD. rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package vanity - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" -) - -func FieldHasBoolExtension(field *descriptor.FieldDescriptorProto, extension *proto.ExtensionDesc) bool { - if field.Options == nil { - return false - } - value, err := proto.GetExtension(field.Options, extension) - if err != nil { - return false - } - if value == nil { - return false - } - if value.(*bool) == nil { - return false - } - return true -} - -func SetBoolFieldOption(extension *proto.ExtensionDesc, value bool) func(field *descriptor.FieldDescriptorProto) { - return func(field *descriptor.FieldDescriptorProto) { - if FieldHasBoolExtension(field, extension) { - return - } - if field.Options == nil { - field.Options = &descriptor.FieldOptions{} - } - if err := proto.SetExtension(field.Options, extension, &value); err != nil { - panic(err) - } - } -} - -func TurnOffNullable(field *descriptor.FieldDescriptorProto) { - if field.IsRepeated() && !field.IsMessage() { - return - } - SetBoolFieldOption(gogoproto.E_Nullable, false)(field) -} - -func TurnOffNullableForNativeTypesWithoutDefaultsOnly(field *descriptor.FieldDescriptorProto) { - if field.IsRepeated() || field.IsMessage() { - return - } - if field.DefaultValue != nil { - return - } - SetBoolFieldOption(gogoproto.E_Nullable, false)(field) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/file.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/file.go deleted file mode 100644 index 6484de04..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/file.go +++ /dev/null @@ -1,170 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package vanity - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - "strings" -) - -func NotInPackageGoogleProtobuf(file *descriptor.FileDescriptorProto) bool { - return !strings.HasPrefix(file.GetPackage(), "google.protobuf") -} - -func FilterFiles(files []*descriptor.FileDescriptorProto, f func(file *descriptor.FileDescriptorProto) bool) []*descriptor.FileDescriptorProto { - filtered := make([]*descriptor.FileDescriptorProto, 0, len(files)) - for i := range files { - if !f(files[i]) { - continue - } - filtered = append(filtered, files[i]) - } - return filtered -} - -func FileHasBoolExtension(file *descriptor.FileDescriptorProto, extension *proto.ExtensionDesc) bool { - if file.Options == nil { - return false - } - value, err := proto.GetExtension(file.Options, extension) - if err != nil { - return false - } - if value == nil { - return false - } - if value.(*bool) == nil { - return false - } - return true -} - -func SetBoolFileOption(extension *proto.ExtensionDesc, value bool) func(file *descriptor.FileDescriptorProto) { - return func(file *descriptor.FileDescriptorProto) { - if FileHasBoolExtension(file, extension) { - return - } - if file.Options == nil { - file.Options = &descriptor.FileOptions{} - } - if err := proto.SetExtension(file.Options, extension, &value); err != nil { - panic(err) - } - } -} - -func TurnOffGoGettersAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_GoprotoGettersAll, false)(file) -} - -func TurnOffGoEnumPrefixAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_GoprotoEnumPrefixAll, false)(file) -} - -func TurnOffGoStringerAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_GoprotoStringerAll, false)(file) -} - -func TurnOnVerboseEqualAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_VerboseEqualAll, true)(file) -} - -func TurnOnFaceAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_FaceAll, true)(file) -} - -func TurnOnGoStringAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_GostringAll, true)(file) -} - -func TurnOnPopulateAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_PopulateAll, true)(file) -} - -func TurnOnStringerAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_StringerAll, true)(file) -} - -func TurnOnEqualAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_EqualAll, true)(file) -} - -func TurnOnDescriptionAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_DescriptionAll, true)(file) -} - -func TurnOnTestGenAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_TestgenAll, true)(file) -} - -func TurnOnBenchGenAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_BenchgenAll, true)(file) -} - -func TurnOnMarshalerAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_MarshalerAll, true)(file) -} - -func TurnOnUnmarshalerAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_UnmarshalerAll, true)(file) -} - -func TurnOnSizerAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_SizerAll, true)(file) -} - -func TurnOffGoEnumStringerAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_GoprotoEnumStringerAll, false)(file) -} - -func TurnOnEnumStringerAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_EnumStringerAll, true)(file) -} - -func TurnOnUnsafeUnmarshalerAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_UnsafeUnmarshalerAll, true)(file) -} - -func TurnOnUnsafeMarshalerAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_UnsafeMarshalerAll, true)(file) -} - -func TurnOffGoExtensionsMapAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_GoprotoExtensionsMapAll, false)(file) -} - -func TurnOffGoUnrecognizedAll(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_GoprotoUnrecognizedAll, false)(file) -} - -func TurnOffGogoImport(file *descriptor.FileDescriptorProto) { - SetBoolFileOption(gogoproto.E_GogoprotoImport, false)(file) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/foreach.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/foreach.go deleted file mode 100644 index 408b8065..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/foreach.go +++ /dev/null @@ -1,125 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package vanity - -import descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" - -func ForEachFile(files []*descriptor.FileDescriptorProto, f func(file *descriptor.FileDescriptorProto)) { - for _, file := range files { - f(file) - } -} - -func OnlyProto2(files []*descriptor.FileDescriptorProto) []*descriptor.FileDescriptorProto { - outs := make([]*descriptor.FileDescriptorProto, 0, len(files)) - for i, file := range files { - if file.GetSyntax() == "proto3" { - continue - } - outs = append(outs, files[i]) - } - return outs -} - -func OnlyProto3(files []*descriptor.FileDescriptorProto) []*descriptor.FileDescriptorProto { - outs := make([]*descriptor.FileDescriptorProto, 0, len(files)) - for i, file := range files { - if file.GetSyntax() != "proto3" { - continue - } - outs = append(outs, files[i]) - } - return outs -} - -func ForEachMessageInFiles(files []*descriptor.FileDescriptorProto, f func(msg *descriptor.DescriptorProto)) { - for _, file := range files { - ForEachMessage(file.MessageType, f) - } -} - -func ForEachMessage(msgs []*descriptor.DescriptorProto, f func(msg *descriptor.DescriptorProto)) { - for _, msg := range msgs { - f(msg) - ForEachMessage(msg.NestedType, f) - } -} - -func ForEachFieldInFilesExcludingExtensions(files []*descriptor.FileDescriptorProto, f func(field *descriptor.FieldDescriptorProto)) { - for _, file := range files { - ForEachFieldExcludingExtensions(file.MessageType, f) - } -} - -func ForEachFieldInFiles(files []*descriptor.FileDescriptorProto, f func(field *descriptor.FieldDescriptorProto)) { - for _, file := range files { - for _, ext := range file.Extension { - f(ext) - } - ForEachField(file.MessageType, f) - } -} - -func ForEachFieldExcludingExtensions(msgs []*descriptor.DescriptorProto, f func(field *descriptor.FieldDescriptorProto)) { - for _, msg := range msgs { - for _, field := range msg.Field { - f(field) - } - ForEachField(msg.NestedType, f) - } -} - -func ForEachField(msgs []*descriptor.DescriptorProto, f func(field *descriptor.FieldDescriptorProto)) { - for _, msg := range msgs { - for _, field := range msg.Field { - f(field) - } - for _, ext := range msg.Extension { - f(ext) - } - ForEachField(msg.NestedType, f) - } -} - -func ForEachEnumInFiles(files []*descriptor.FileDescriptorProto, f func(enum *descriptor.EnumDescriptorProto)) { - for _, file := range files { - for _, enum := range file.EnumType { - f(enum) - } - } -} - -func ForEachEnum(msgs []*descriptor.DescriptorProto, f func(field *descriptor.EnumDescriptorProto)) { - for _, msg := range msgs { - for _, field := range msg.EnumType { - f(field) - } - ForEachEnum(msg.NestedType, f) - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/msg.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/msg.go deleted file mode 100644 index 22181673..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/msg.go +++ /dev/null @@ -1,138 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2015, Vastech SA (PTY) LTD. rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package vanity - -import ( - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - descriptor "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/protoc-gen-gogo/descriptor" -) - -func MessageHasBoolExtension(msg *descriptor.DescriptorProto, extension *proto.ExtensionDesc) bool { - if msg.Options == nil { - return false - } - value, err := proto.GetExtension(msg.Options, extension) - if err != nil { - return false - } - if value == nil { - return false - } - if value.(*bool) == nil { - return false - } - return true -} - -func SetBoolMessageOption(extension *proto.ExtensionDesc, value bool) func(msg *descriptor.DescriptorProto) { - return func(msg *descriptor.DescriptorProto) { - if MessageHasBoolExtension(msg, extension) { - return - } - if msg.Options == nil { - msg.Options = &descriptor.MessageOptions{} - } - if err := proto.SetExtension(msg.Options, extension, &value); err != nil { - panic(err) - } - } -} - -func TurnOffGoGetters(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_GoprotoGetters, false)(msg) -} - -func TurnOffGoStringer(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_GoprotoStringer, false)(msg) -} - -func TurnOnVerboseEqual(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_VerboseEqual, true)(msg) -} - -func TurnOnFace(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_Face, true)(msg) -} - -func TurnOnGoString(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_Face, true)(msg) -} - -func TurnOnPopulate(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_Populate, true)(msg) -} - -func TurnOnStringer(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_Stringer, true)(msg) -} - -func TurnOnEqual(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_Equal, true)(msg) -} - -func TurnOnDescription(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_Description, true)(msg) -} - -func TurnOnTestGen(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_Testgen, true)(msg) -} - -func TurnOnBenchGen(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_Benchgen, true)(msg) -} - -func TurnOnMarshaler(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_Marshaler, true)(msg) -} - -func TurnOnUnmarshaler(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_Unmarshaler, true)(msg) -} - -func TurnOnSizer(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_Sizer, true)(msg) -} - -func TurnOnUnsafeUnmarshaler(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_UnsafeUnmarshaler, true)(msg) -} - -func TurnOnUnsafeMarshaler(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_UnsafeMarshaler, true)(msg) -} - -func TurnOffGoExtensionsMap(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_GoprotoExtensionsMap, false)(msg) -} - -func TurnOffGoUnrecognized(msg *descriptor.DescriptorProto) { - SetBoolMessageOption(gogoproto.E_GoprotoUnrecognized, false)(msg) -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/Makefile b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/Makefile deleted file mode 100644 index 846b74fd..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -regenerate: - go install github.com/gogo/protobuf/protoc-gen-gogofast - protoc --gogofast_out=./fast/ vanity.proto - protoc --proto_path=../../:../../../../../:../../protobuf/:. --gogofast_out=./fast/ gogovanity.proto - protoc-min-version -version="3.0.0" --proto_path=../../:../../../../../:../../protobuf/:. --gogofast_out=./fast/ proto3.proto - go install github.com/gogo/protobuf/protoc-gen-gogofaster - protoc --gogofaster_out=./faster/ vanity.proto - protoc --proto_path=../../:../../../../../:../../protobuf/:. --gogofaster_out=./faster/ gogovanity.proto - protoc-min-version -version="3.0.0" --proto_path=../../:../../../../../:../../protobuf/:. --gogofaster_out=./faster/ proto3.proto - go install github.com/gogo/protobuf/protoc-gen-gogoslick - protoc --gogoslick_out=./slick/ vanity.proto - protoc --proto_path=../../:../../../../../:../../protobuf/:. --gogoslick_out=./slick/ gogovanity.proto - protoc-min-version -version="3.0.0" --proto_path=../../:../../../../../:../../protobuf/:. --gogoslick_out=./slick/ proto3.proto - -test: - go install github.com/gogo/protobuf/protoc-gen-gofast - protoc --gofast_out=./gofast/ vanity.proto - go test ./... diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/doc.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/doc.go deleted file mode 100644 index 56e54040..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/doc.go +++ /dev/null @@ -1 +0,0 @@ -package test diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/fast/gogovanity.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/fast/gogovanity.pb.go deleted file mode 100644 index 924d8f35..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/fast/gogovanity.pb.go +++ /dev/null @@ -1,385 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: gogovanity.proto -// DO NOT EDIT! - -/* - Package vanity is a generated protocol buffer package. - - It is generated from these files: - gogovanity.proto - - It has these top-level messages: - B -*/ -package vanity - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" -import _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type B struct { - String_ *string `protobuf:"bytes,1,opt,name=String" json:"String,omitempty"` - Int64 *int64 `protobuf:"varint,2,opt,name=Int64" json:"Int64,omitempty"` - Int32 *int32 `protobuf:"varint,3,opt,name=Int32,def=1234" json:"Int32,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *B) Reset() { *m = B{} } -func (m *B) String() string { return proto.CompactTextString(m) } -func (*B) ProtoMessage() {} - -const Default_B_Int32 int32 = 1234 - -func (m *B) GetString_() string { - if m != nil && m.String_ != nil { - return *m.String_ - } - return "" -} - -func (m *B) GetInt64() int64 { - if m != nil && m.Int64 != nil { - return *m.Int64 - } - return 0 -} - -func (m *B) GetInt32() int32 { - if m != nil && m.Int32 != nil { - return *m.Int32 - } - return Default_B_Int32 -} - -func init() { - proto.RegisterType((*B)(nil), "vanity.B") -} -func (m *B) Marshal() (data []byte, err error) { - size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) - if err != nil { - return nil, err - } - return data[:n], nil -} - -func (m *B) MarshalTo(data []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.String_ != nil { - data[i] = 0xa - i++ - i = encodeVarintGogovanity(data, i, uint64(len(*m.String_))) - i += copy(data[i:], *m.String_) - } - if m.Int64 != nil { - data[i] = 0x10 - i++ - i = encodeVarintGogovanity(data, i, uint64(*m.Int64)) - } - if m.Int32 != nil { - data[i] = 0x18 - i++ - i = encodeVarintGogovanity(data, i, uint64(*m.Int32)) - } - if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) - } - return i, nil -} - -func encodeFixed64Gogovanity(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Gogovanity(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - return offset + 4 -} -func encodeVarintGogovanity(data []byte, offset int, v uint64) int { - for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - data[offset] = uint8(v) - return offset + 1 -} -func (m *B) Size() (n int) { - var l int - _ = l - if m.String_ != nil { - l = len(*m.String_) - n += 1 + l + sovGogovanity(uint64(l)) - } - if m.Int64 != nil { - n += 1 + sovGogovanity(uint64(*m.Int64)) - } - if m.Int32 != nil { - n += 1 + sovGogovanity(uint64(*m.Int32)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovGogovanity(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozGogovanity(x uint64) (n int) { - return sovGogovanity(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *B) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGogovanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: B: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: B: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGogovanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGogovanity - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(data[iNdEx:postIndex]) - m.String_ = &s - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGogovanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int64 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGogovanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int32 = &v - default: - iNdEx = preIndex - skippy, err := skipGogovanity(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGogovanity - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGogovanity(data []byte) (n int, err error) { - l := len(data) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGogovanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGogovanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if data[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGogovanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthGogovanity - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGogovanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipGogovanity(data[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthGogovanity = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGogovanity = fmt.Errorf("proto: integer overflow") -) diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/fast/proto3.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/fast/proto3.pb.go deleted file mode 100644 index a21dcc9e..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/fast/proto3.pb.go +++ /dev/null @@ -1,294 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: proto3.proto -// DO NOT EDIT! - -/* -Package vanity is a generated protocol buffer package. - -It is generated from these files: - proto3.proto - -It has these top-level messages: - Aproto3 -*/ -package vanity - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type Aproto3 struct { - B string `protobuf:"bytes,1,opt,name=B,proto3" json:"B,omitempty"` -} - -func (m *Aproto3) Reset() { *m = Aproto3{} } -func (m *Aproto3) String() string { return proto.CompactTextString(m) } -func (*Aproto3) ProtoMessage() {} - -func init() { - proto.RegisterType((*Aproto3)(nil), "vanity.Aproto3") -} -func (m *Aproto3) Marshal() (data []byte, err error) { - size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) - if err != nil { - return nil, err - } - return data[:n], nil -} - -func (m *Aproto3) MarshalTo(data []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.B) > 0 { - data[i] = 0xa - i++ - i = encodeVarintProto3(data, i, uint64(len(m.B))) - i += copy(data[i:], m.B) - } - return i, nil -} - -func encodeFixed64Proto3(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Proto3(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - return offset + 4 -} -func encodeVarintProto3(data []byte, offset int, v uint64) int { - for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - data[offset] = uint8(v) - return offset + 1 -} -func (m *Aproto3) Size() (n int) { - var l int - _ = l - l = len(m.B) - if l > 0 { - n += 1 + l + sovProto3(uint64(l)) - } - return n -} - -func sovProto3(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozProto3(x uint64) (n int) { - return sovProto3(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *Aproto3) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Aproto3: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Aproto3: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field B", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProto3 - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.B = string(data[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProto3(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthProto3 - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipProto3(data []byte) (n int, err error) { - l := len(data) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProto3 - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProto3 - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if data[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProto3 - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthProto3 - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProto3 - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipProto3(data[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthProto3 = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowProto3 = fmt.Errorf("proto: integer overflow") -) diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/fast/vanity.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/fast/vanity.pb.go deleted file mode 100644 index 3c17a809..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/fast/vanity.pb.go +++ /dev/null @@ -1,355 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: vanity.proto -// DO NOT EDIT! - -/* - Package vanity is a generated protocol buffer package. - - It is generated from these files: - vanity.proto - - It has these top-level messages: - A -*/ -package vanity - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" - -import github_com_gogo_protobuf_proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type A struct { - Strings *string `protobuf:"bytes,1,opt,name=Strings" json:"Strings,omitempty"` - Int *int64 `protobuf:"varint,2,req,name=Int" json:"Int,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *A) Reset() { *m = A{} } -func (m *A) String() string { return proto.CompactTextString(m) } -func (*A) ProtoMessage() {} - -func (m *A) GetStrings() string { - if m != nil && m.Strings != nil { - return *m.Strings - } - return "" -} - -func (m *A) GetInt() int64 { - if m != nil && m.Int != nil { - return *m.Int - } - return 0 -} - -func init() { - proto.RegisterType((*A)(nil), "vanity.A") -} -func (m *A) Marshal() (data []byte, err error) { - size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) - if err != nil { - return nil, err - } - return data[:n], nil -} - -func (m *A) MarshalTo(data []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Strings != nil { - data[i] = 0xa - i++ - i = encodeVarintVanity(data, i, uint64(len(*m.Strings))) - i += copy(data[i:], *m.Strings) - } - if m.Int == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Int") - } else { - data[i] = 0x10 - i++ - i = encodeVarintVanity(data, i, uint64(*m.Int)) - } - if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) - } - return i, nil -} - -func encodeFixed64Vanity(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Vanity(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - return offset + 4 -} -func encodeVarintVanity(data []byte, offset int, v uint64) int { - for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - data[offset] = uint8(v) - return offset + 1 -} -func (m *A) Size() (n int) { - var l int - _ = l - if m.Strings != nil { - l = len(*m.Strings) - n += 1 + l + sovVanity(uint64(l)) - } - if m.Int != nil { - n += 1 + sovVanity(uint64(*m.Int)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovVanity(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozVanity(x uint64) (n int) { - return sovVanity(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *A) Unmarshal(data []byte) error { - var hasFields [1]uint64 - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowVanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: A: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: A: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Strings", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowVanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthVanity - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(data[iNdEx:postIndex]) - m.Strings = &s - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowVanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int = &v - hasFields[0] |= uint64(0x00000001) - default: - iNdEx = preIndex - skippy, err := skipVanity(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthVanity - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - if hasFields[0]&uint64(0x00000001) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Int") - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipVanity(data []byte) (n int, err error) { - l := len(data) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowVanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowVanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if data[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowVanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthVanity - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowVanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipVanity(data[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthVanity = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowVanity = fmt.Errorf("proto: integer overflow") -) diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/faster/gogovanity.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/faster/gogovanity.pb.go deleted file mode 100644 index 3e06e3be..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/faster/gogovanity.pb.go +++ /dev/null @@ -1,372 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: gogovanity.proto -// DO NOT EDIT! - -/* - Package vanity is a generated protocol buffer package. - - It is generated from these files: - gogovanity.proto - - It has these top-level messages: - B -*/ -package vanity - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" -import _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type B struct { - String_ *string `protobuf:"bytes,1,opt,name=String" json:"String,omitempty"` - Int64 int64 `protobuf:"varint,2,opt,name=Int64" json:"Int64"` - Int32 *int32 `protobuf:"varint,3,opt,name=Int32,def=1234" json:"Int32,omitempty"` -} - -func (m *B) Reset() { *m = B{} } -func (m *B) String() string { return proto.CompactTextString(m) } -func (*B) ProtoMessage() {} - -const Default_B_Int32 int32 = 1234 - -func (m *B) GetString_() string { - if m != nil && m.String_ != nil { - return *m.String_ - } - return "" -} - -func (m *B) GetInt64() int64 { - if m != nil { - return m.Int64 - } - return 0 -} - -func (m *B) GetInt32() int32 { - if m != nil && m.Int32 != nil { - return *m.Int32 - } - return Default_B_Int32 -} - -func init() { - proto.RegisterType((*B)(nil), "vanity.B") -} -func (m *B) Marshal() (data []byte, err error) { - size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) - if err != nil { - return nil, err - } - return data[:n], nil -} - -func (m *B) MarshalTo(data []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.String_ != nil { - data[i] = 0xa - i++ - i = encodeVarintGogovanity(data, i, uint64(len(*m.String_))) - i += copy(data[i:], *m.String_) - } - data[i] = 0x10 - i++ - i = encodeVarintGogovanity(data, i, uint64(m.Int64)) - if m.Int32 != nil { - data[i] = 0x18 - i++ - i = encodeVarintGogovanity(data, i, uint64(*m.Int32)) - } - return i, nil -} - -func encodeFixed64Gogovanity(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Gogovanity(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - return offset + 4 -} -func encodeVarintGogovanity(data []byte, offset int, v uint64) int { - for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - data[offset] = uint8(v) - return offset + 1 -} -func (m *B) Size() (n int) { - var l int - _ = l - if m.String_ != nil { - l = len(*m.String_) - n += 1 + l + sovGogovanity(uint64(l)) - } - n += 1 + sovGogovanity(uint64(m.Int64)) - if m.Int32 != nil { - n += 1 + sovGogovanity(uint64(*m.Int32)) - } - return n -} - -func sovGogovanity(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozGogovanity(x uint64) (n int) { - return sovGogovanity(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *B) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGogovanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: B: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: B: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGogovanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGogovanity - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(data[iNdEx:postIndex]) - m.String_ = &s - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64", wireType) - } - m.Int64 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGogovanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - m.Int64 |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGogovanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int32 = &v - default: - iNdEx = preIndex - skippy, err := skipGogovanity(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGogovanity - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGogovanity(data []byte) (n int, err error) { - l := len(data) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGogovanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGogovanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if data[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGogovanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthGogovanity - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGogovanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipGogovanity(data[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthGogovanity = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGogovanity = fmt.Errorf("proto: integer overflow") -) diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/faster/proto3.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/faster/proto3.pb.go deleted file mode 100644 index a21dcc9e..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/faster/proto3.pb.go +++ /dev/null @@ -1,294 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: proto3.proto -// DO NOT EDIT! - -/* -Package vanity is a generated protocol buffer package. - -It is generated from these files: - proto3.proto - -It has these top-level messages: - Aproto3 -*/ -package vanity - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type Aproto3 struct { - B string `protobuf:"bytes,1,opt,name=B,proto3" json:"B,omitempty"` -} - -func (m *Aproto3) Reset() { *m = Aproto3{} } -func (m *Aproto3) String() string { return proto.CompactTextString(m) } -func (*Aproto3) ProtoMessage() {} - -func init() { - proto.RegisterType((*Aproto3)(nil), "vanity.Aproto3") -} -func (m *Aproto3) Marshal() (data []byte, err error) { - size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) - if err != nil { - return nil, err - } - return data[:n], nil -} - -func (m *Aproto3) MarshalTo(data []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.B) > 0 { - data[i] = 0xa - i++ - i = encodeVarintProto3(data, i, uint64(len(m.B))) - i += copy(data[i:], m.B) - } - return i, nil -} - -func encodeFixed64Proto3(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Proto3(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - return offset + 4 -} -func encodeVarintProto3(data []byte, offset int, v uint64) int { - for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - data[offset] = uint8(v) - return offset + 1 -} -func (m *Aproto3) Size() (n int) { - var l int - _ = l - l = len(m.B) - if l > 0 { - n += 1 + l + sovProto3(uint64(l)) - } - return n -} - -func sovProto3(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozProto3(x uint64) (n int) { - return sovProto3(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *Aproto3) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Aproto3: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Aproto3: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field B", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProto3 - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.B = string(data[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProto3(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthProto3 - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipProto3(data []byte) (n int, err error) { - l := len(data) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProto3 - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProto3 - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if data[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProto3 - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthProto3 - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProto3 - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipProto3(data[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthProto3 = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowProto3 = fmt.Errorf("proto: integer overflow") -) diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/faster/vanity.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/faster/vanity.pb.go deleted file mode 100644 index 2d315af7..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/faster/vanity.pb.go +++ /dev/null @@ -1,334 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: vanity.proto -// DO NOT EDIT! - -/* - Package vanity is a generated protocol buffer package. - - It is generated from these files: - vanity.proto - - It has these top-level messages: - A -*/ -package vanity - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" - -import io "io" -import github_com_gogo_protobuf_proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type A struct { - Strings string `protobuf:"bytes,1,opt,name=Strings" json:"Strings"` - Int int64 `protobuf:"varint,2,req,name=Int" json:"Int"` -} - -func (m *A) Reset() { *m = A{} } -func (m *A) String() string { return proto.CompactTextString(m) } -func (*A) ProtoMessage() {} - -func (m *A) GetStrings() string { - if m != nil { - return m.Strings - } - return "" -} - -func (m *A) GetInt() int64 { - if m != nil { - return m.Int - } - return 0 -} - -func init() { - proto.RegisterType((*A)(nil), "vanity.A") -} -func (m *A) Marshal() (data []byte, err error) { - size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) - if err != nil { - return nil, err - } - return data[:n], nil -} - -func (m *A) MarshalTo(data []byte) (int, error) { - var i int - _ = i - var l int - _ = l - data[i] = 0xa - i++ - i = encodeVarintVanity(data, i, uint64(len(m.Strings))) - i += copy(data[i:], m.Strings) - data[i] = 0x10 - i++ - i = encodeVarintVanity(data, i, uint64(m.Int)) - return i, nil -} - -func encodeFixed64Vanity(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Vanity(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - return offset + 4 -} -func encodeVarintVanity(data []byte, offset int, v uint64) int { - for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - data[offset] = uint8(v) - return offset + 1 -} -func (m *A) Size() (n int) { - var l int - _ = l - l = len(m.Strings) - n += 1 + l + sovVanity(uint64(l)) - n += 1 + sovVanity(uint64(m.Int)) - return n -} - -func sovVanity(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozVanity(x uint64) (n int) { - return sovVanity(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *A) Unmarshal(data []byte) error { - var hasFields [1]uint64 - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowVanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: A: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: A: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Strings", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowVanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthVanity - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Strings = string(data[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int", wireType) - } - m.Int = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowVanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - m.Int |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - hasFields[0] |= uint64(0x00000001) - default: - iNdEx = preIndex - skippy, err := skipVanity(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthVanity - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - if hasFields[0]&uint64(0x00000001) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Int") - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipVanity(data []byte) (n int, err error) { - l := len(data) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowVanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowVanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if data[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowVanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthVanity - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowVanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipVanity(data[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthVanity = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowVanity = fmt.Errorf("proto: integer overflow") -) diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/gofast/.gitignore b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/gofast/.gitignore deleted file mode 100644 index 9b0b440d..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/gofast/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.pb.go \ No newline at end of file diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/gogovanity.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/gogovanity.proto deleted file mode 100644 index 5d75ec6b..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/gogovanity.proto +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -syntax = "proto2"; - -package vanity; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -message B { - optional string String = 1 [(gogoproto.nullable) = true]; - optional int64 Int64 = 2; - optional int32 Int32 = 3 [default = 1234]; -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/proto3.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/proto3.proto deleted file mode 100644 index 429b6fda..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/proto3.proto +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -syntax = "proto3"; - -package vanity; - -message Aproto3 { - string B = 1; -} \ No newline at end of file diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/slick/gogovanity.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/slick/gogovanity.pb.go deleted file mode 100644 index 313fc325..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/slick/gogovanity.pb.go +++ /dev/null @@ -1,481 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: gogovanity.proto -// DO NOT EDIT! - -/* - Package vanity is a generated protocol buffer package. - - It is generated from these files: - gogovanity.proto - - It has these top-level messages: - B -*/ -package vanity - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" -import _ "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/gogoproto" - -import strings "strings" -import github_com_gogo_protobuf_proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import sort "sort" -import strconv "strconv" -import reflect "reflect" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type B struct { - String_ *string `protobuf:"bytes,1,opt,name=String" json:"String,omitempty"` - Int64 int64 `protobuf:"varint,2,opt,name=Int64" json:"Int64"` - Int32 *int32 `protobuf:"varint,3,opt,name=Int32,def=1234" json:"Int32,omitempty"` -} - -func (m *B) Reset() { *m = B{} } -func (*B) ProtoMessage() {} - -const Default_B_Int32 int32 = 1234 - -func (m *B) GetString_() string { - if m != nil && m.String_ != nil { - return *m.String_ - } - return "" -} - -func (m *B) GetInt64() int64 { - if m != nil { - return m.Int64 - } - return 0 -} - -func (m *B) GetInt32() int32 { - if m != nil && m.Int32 != nil { - return *m.Int32 - } - return Default_B_Int32 -} - -func init() { - proto.RegisterType((*B)(nil), "vanity.B") -} -func (this *B) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*B) - if !ok { - return false - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.String_ != nil && that1.String_ != nil { - if *this.String_ != *that1.String_ { - return false - } - } else if this.String_ != nil { - return false - } else if that1.String_ != nil { - return false - } - if this.Int64 != that1.Int64 { - return false - } - if this.Int32 != nil && that1.Int32 != nil { - if *this.Int32 != *that1.Int32 { - return false - } - } else if this.Int32 != nil { - return false - } else if that1.Int32 != nil { - return false - } - return true -} -func (this *B) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&vanity.B{") - if this.String_ != nil { - s = append(s, "String_: "+valueToGoStringGogovanity(this.String_, "string")+",\n") - } - s = append(s, "Int64: "+fmt.Sprintf("%#v", this.Int64)+",\n") - if this.Int32 != nil { - s = append(s, "Int32: "+valueToGoStringGogovanity(this.Int32, "int32")+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringGogovanity(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func extensionToGoStringGogovanity(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *B) Marshal() (data []byte, err error) { - size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) - if err != nil { - return nil, err - } - return data[:n], nil -} - -func (m *B) MarshalTo(data []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.String_ != nil { - data[i] = 0xa - i++ - i = encodeVarintGogovanity(data, i, uint64(len(*m.String_))) - i += copy(data[i:], *m.String_) - } - data[i] = 0x10 - i++ - i = encodeVarintGogovanity(data, i, uint64(m.Int64)) - if m.Int32 != nil { - data[i] = 0x18 - i++ - i = encodeVarintGogovanity(data, i, uint64(*m.Int32)) - } - return i, nil -} - -func encodeFixed64Gogovanity(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Gogovanity(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - return offset + 4 -} -func encodeVarintGogovanity(data []byte, offset int, v uint64) int { - for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - data[offset] = uint8(v) - return offset + 1 -} -func (m *B) Size() (n int) { - var l int - _ = l - if m.String_ != nil { - l = len(*m.String_) - n += 1 + l + sovGogovanity(uint64(l)) - } - n += 1 + sovGogovanity(uint64(m.Int64)) - if m.Int32 != nil { - n += 1 + sovGogovanity(uint64(*m.Int32)) - } - return n -} - -func sovGogovanity(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozGogovanity(x uint64) (n int) { - return sovGogovanity(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *B) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&B{`, - `String_:` + valueToStringGogovanity(this.String_) + `,`, - `Int64:` + fmt.Sprintf("%v", this.Int64) + `,`, - `Int32:` + valueToStringGogovanity(this.Int32) + `,`, - `}`, - }, "") - return s -} -func valueToStringGogovanity(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *B) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGogovanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: B: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: B: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGogovanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGogovanity - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(data[iNdEx:postIndex]) - m.String_ = &s - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64", wireType) - } - m.Int64 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGogovanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - m.Int64 |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGogovanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int32 = &v - default: - iNdEx = preIndex - skippy, err := skipGogovanity(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGogovanity - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGogovanity(data []byte) (n int, err error) { - l := len(data) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGogovanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGogovanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if data[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGogovanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthGogovanity - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGogovanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipGogovanity(data[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthGogovanity = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGogovanity = fmt.Errorf("proto: integer overflow") -) diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/slick/proto3.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/slick/proto3.pb.go deleted file mode 100644 index 83d5bd1f..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/slick/proto3.pb.go +++ /dev/null @@ -1,377 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: proto3.proto -// DO NOT EDIT! - -/* -Package vanity is a generated protocol buffer package. - -It is generated from these files: - proto3.proto - -It has these top-level messages: - Aproto3 -*/ -package vanity - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" - -import strings "strings" -import github_com_gogo_protobuf_proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import sort "sort" -import strconv "strconv" -import reflect "reflect" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type Aproto3 struct { - B string `protobuf:"bytes,1,opt,name=B,proto3" json:"B,omitempty"` -} - -func (m *Aproto3) Reset() { *m = Aproto3{} } -func (*Aproto3) ProtoMessage() {} - -func init() { - proto.RegisterType((*Aproto3)(nil), "vanity.Aproto3") -} -func (this *Aproto3) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Aproto3) - if !ok { - return false - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.B != that1.B { - return false - } - return true -} -func (this *Aproto3) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&vanity.Aproto3{") - s = append(s, "B: "+fmt.Sprintf("%#v", this.B)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringProto3(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func extensionToGoStringProto3(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *Aproto3) Marshal() (data []byte, err error) { - size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) - if err != nil { - return nil, err - } - return data[:n], nil -} - -func (m *Aproto3) MarshalTo(data []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.B) > 0 { - data[i] = 0xa - i++ - i = encodeVarintProto3(data, i, uint64(len(m.B))) - i += copy(data[i:], m.B) - } - return i, nil -} - -func encodeFixed64Proto3(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Proto3(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - return offset + 4 -} -func encodeVarintProto3(data []byte, offset int, v uint64) int { - for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - data[offset] = uint8(v) - return offset + 1 -} -func (m *Aproto3) Size() (n int) { - var l int - _ = l - l = len(m.B) - if l > 0 { - n += 1 + l + sovProto3(uint64(l)) - } - return n -} - -func sovProto3(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozProto3(x uint64) (n int) { - return sovProto3(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Aproto3) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Aproto3{`, - `B:` + fmt.Sprintf("%v", this.B) + `,`, - `}`, - }, "") - return s -} -func valueToStringProto3(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Aproto3) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Aproto3: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Aproto3: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field B", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProto3 - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.B = string(data[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProto3(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthProto3 - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipProto3(data []byte) (n int, err error) { - l := len(data) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProto3 - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProto3 - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if data[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProto3 - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthProto3 - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProto3 - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipProto3(data[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthProto3 = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowProto3 = fmt.Errorf("proto: integer overflow") -) diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/slick/vanity.pb.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/slick/vanity.pb.go deleted file mode 100644 index e75f86ef..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/slick/vanity.pb.go +++ /dev/null @@ -1,421 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: vanity.proto -// DO NOT EDIT! - -/* - Package vanity is a generated protocol buffer package. - - It is generated from these files: - vanity.proto - - It has these top-level messages: - A -*/ -package vanity - -import proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import fmt "fmt" -import math "math" - -import strings "strings" -import github_com_gogo_protobuf_proto "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/proto" -import sort "sort" -import strconv "strconv" -import reflect "reflect" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -type A struct { - Strings string `protobuf:"bytes,1,opt,name=Strings" json:"Strings"` - Int int64 `protobuf:"varint,2,req,name=Int" json:"Int"` -} - -func (m *A) Reset() { *m = A{} } -func (*A) ProtoMessage() {} - -func (m *A) GetStrings() string { - if m != nil { - return m.Strings - } - return "" -} - -func (m *A) GetInt() int64 { - if m != nil { - return m.Int - } - return 0 -} - -func init() { - proto.RegisterType((*A)(nil), "vanity.A") -} -func (this *A) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*A) - if !ok { - return false - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Strings != that1.Strings { - return false - } - if this.Int != that1.Int { - return false - } - return true -} -func (this *A) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&vanity.A{") - s = append(s, "Strings: "+fmt.Sprintf("%#v", this.Strings)+",\n") - s = append(s, "Int: "+fmt.Sprintf("%#v", this.Int)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringVanity(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func extensionToGoStringVanity(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *A) Marshal() (data []byte, err error) { - size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) - if err != nil { - return nil, err - } - return data[:n], nil -} - -func (m *A) MarshalTo(data []byte) (int, error) { - var i int - _ = i - var l int - _ = l - data[i] = 0xa - i++ - i = encodeVarintVanity(data, i, uint64(len(m.Strings))) - i += copy(data[i:], m.Strings) - data[i] = 0x10 - i++ - i = encodeVarintVanity(data, i, uint64(m.Int)) - return i, nil -} - -func encodeFixed64Vanity(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Vanity(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - return offset + 4 -} -func encodeVarintVanity(data []byte, offset int, v uint64) int { - for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - data[offset] = uint8(v) - return offset + 1 -} -func (m *A) Size() (n int) { - var l int - _ = l - l = len(m.Strings) - n += 1 + l + sovVanity(uint64(l)) - n += 1 + sovVanity(uint64(m.Int)) - return n -} - -func sovVanity(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozVanity(x uint64) (n int) { - return sovVanity(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *A) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&A{`, - `Strings:` + fmt.Sprintf("%v", this.Strings) + `,`, - `Int:` + fmt.Sprintf("%v", this.Int) + `,`, - `}`, - }, "") - return s -} -func valueToStringVanity(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *A) Unmarshal(data []byte) error { - var hasFields [1]uint64 - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowVanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: A: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: A: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Strings", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowVanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthVanity - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Strings = string(data[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int", wireType) - } - m.Int = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowVanity - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - m.Int |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - hasFields[0] |= uint64(0x00000001) - default: - iNdEx = preIndex - skippy, err := skipVanity(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthVanity - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - if hasFields[0]&uint64(0x00000001) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Int") - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipVanity(data []byte) (n int, err error) { - l := len(data) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowVanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowVanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if data[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowVanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthVanity - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowVanity - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipVanity(data[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthVanity = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowVanity = fmt.Errorf("proto: integer overflow") -) diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/vanity.proto b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/vanity.proto deleted file mode 100644 index 08115380..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/vanity.proto +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -syntax = "proto2"; - -package vanity; - -message A { - optional string Strings = 1; - required int64 Int = 2; -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/vanity_test.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/vanity_test.go deleted file mode 100644 index 690a5109..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/vanity_test.go +++ /dev/null @@ -1,93 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package test - -import ( - fast "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/fast" - faster "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/faster" - slick "gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/vanity/test/slick" - "testing" -) - -func TestFast(t *testing.T) { - _ = (&fast.A{}).Marshal - _ = (&fast.A{}).MarshalTo - _ = (&fast.A{}).Unmarshal - _ = (&fast.A{}).Size - - _ = (&fast.B{}).Marshal - _ = (&fast.B{}).MarshalTo - _ = (&fast.B{}).Unmarshal - _ = (&fast.B{}).Size -} - -func TestFaster(t *testing.T) { - _ = (&faster.A{}).Marshal - _ = (&faster.A{}).MarshalTo - _ = (&faster.A{}).Unmarshal - _ = (&faster.A{}).Size - - _ = (&faster.A{}).Strings == "" - - _ = (&faster.B{}).Marshal - _ = (&faster.B{}).MarshalTo - _ = (&faster.B{}).Unmarshal - _ = (&faster.B{}).Size - - _ = (&faster.B{}).String_ == nil - _ = (&faster.B{}).Int64 == 0 - _ = (&faster.B{}).Int32 == nil - if (&faster.B{}).GetInt32() != 1234 { - t.Fatalf("expected default") - } -} - -func TestSlick(t *testing.T) { - _ = (&slick.A{}).Marshal - _ = (&slick.A{}).MarshalTo - _ = (&slick.A{}).Unmarshal - _ = (&slick.A{}).Size - - _ = (&slick.A{}).Strings == "" - - _ = (&slick.A{}).GoString - _ = (&slick.A{}).String - - _ = (&slick.B{}).Marshal - _ = (&slick.B{}).MarshalTo - _ = (&slick.B{}).Unmarshal - _ = (&slick.B{}).Size - - _ = (&slick.B{}).String_ == nil - _ = (&slick.B{}).Int64 == 0 - _ = (&slick.B{}).Int32 == nil - if (&slick.B{}).GetInt32() != 1234 { - t.Fatalf("expected default") - } -} diff --git a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/version/version.go b/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/version/version.go deleted file mode 100644 index 05c49b40..00000000 --- a/vendor/gx/QmchriuyWMcqHha3dG86rQyxoswSUpmLUBjuJ2kotB65qR/gogo-protobuf/version/version.go +++ /dev/null @@ -1,78 +0,0 @@ -// Extensions for Protocol Buffers to create more go like structures. -// -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto -// -// 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. -// -// 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. - -package version - -import ( - "fmt" - "os/exec" - "strconv" - "strings" -) - -func Get() string { - versionBytes, _ := exec.Command("protoc", "--version").CombinedOutput() - version := strings.TrimSpace(string(versionBytes)) - versions := strings.Split(version, " ") - if len(versions) != 2 { - panic("version string returned from protoc is seperated with a space: " + version) - } - return versions[1] -} - -func parseVersion(version string) (int, error) { - versions := strings.Split(version, ".") - if len(versions) != 3 { - return 0, fmt.Errorf("version does not have 3 numbers seperated by dots: %s", version) - } - n := 0 - for _, v := range versions { - i, err := strconv.Atoi(v) - if err != nil { - return 0, err - } - n = n*10 + i - } - return n, nil -} - -func less(this, that string) bool { - thisNum, err := parseVersion(this) - if err != nil { - panic(err) - } - thatNum, err := parseVersion(that) - if err != nil { - panic(err) - } - return thisNum <= thatNum -} - -func AtLeast(v string) bool { - return less(v, Get()) -} diff --git a/vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/README.markdown b/vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/README.markdown deleted file mode 100644 index 7f2ae4f0..00000000 --- a/vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/README.markdown +++ /dev/null @@ -1,11 +0,0 @@ -A fast random number `io.Reader` implementation. - -![randbo](https://raw.github.com/dustin/randbo/master/randbo.png) - -> IN A WORLD where no integer sequence is certain ... -> -> ONE MAN must become statistically indistinguishable from noise -> -> THIS SUMMER, entropy has a new name: RANDBO - -(thanks @snej) diff --git a/vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/package.json b/vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/package.json deleted file mode 100644 index 8c5f573d..00000000 --- a/vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "randbo", - "author": "whyrusleeping", - "version": "1.0.0", - "language": "go", - "gx": { - "dvcsimport": "github.com/dustin/randbo" - } -} \ No newline at end of file diff --git a/vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/randbo.go b/vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/randbo.go deleted file mode 100644 index 8159c53b..00000000 --- a/vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/randbo.go +++ /dev/null @@ -1,40 +0,0 @@ -package randbo - -import ( - "io" - "math/rand" - "time" -) - -// Randbo creates a stream of non-crypto quality random bytes -type randbo struct { - rand.Source -} - -// New creates a new random reader with a time source. -func New() io.Reader { - return NewFrom(rand.NewSource(time.Now().UnixNano())) -} - -// NewFrom creates a new reader from your own rand.Source -func NewFrom(src rand.Source) io.Reader { - return &randbo{src} -} - -// Read satisfies io.Reader -func (r *randbo) Read(p []byte) (n int, err error) { - todo := len(p) - offset := 0 - for { - val := int64(r.Int63()) - for i := 0; i < 8; i++ { - p[offset] = byte(val) - todo-- - if todo == 0 { - return len(p), nil - } - offset++ - val >>= 8 - } - } -} diff --git a/vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/randbo.png b/vendor/gx/QmciEePSP8wpGYZp8fsPFi49Ya7xQMUFwFj2z5fDpfZnhC/randbo/randbo.png deleted file mode 100644 index c58f3dda9f9a5814baaad43dd7bbd59167e5a6bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247626 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 z


    ~Jr3)aZgcU^+}VQ9$!?wV(+%Qjy~yX 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˧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∈M&|B%iqC~o6@FZ3OvUP#&h%a^bYVX_ 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 0) { - return 1 - } else if len(b) == 0 && (len(a) > 0) { - return -1 - } - - // If there is a prelease, check and compare each part. - return recursivePreReleaseCompare(a.Slice(), b.Slice()) -} - -func recursiveCompare(versionA []int64, versionB []int64) int { - if len(versionA) == 0 { - return 0 - } - - a := versionA[0] - b := versionB[0] - - if a > b { - return 1 - } else if a < b { - return -1 - } - - return recursiveCompare(versionA[1:], versionB[1:]) -} - -func recursivePreReleaseCompare(versionA []string, versionB []string) int { - // Handle slice length disparity. - if len(versionA) == 0 { - // Nothing to compare too, so we return 0 - return 0 - } else if len(versionB) == 0 { - // We're longer than versionB so return 1. - return 1 - } - - a := versionA[0] - b := versionB[0] - - aInt := false - bInt := false - - aI, err := strconv.Atoi(versionA[0]) - if err == nil { - aInt = true - } - - bI, err := strconv.Atoi(versionB[0]) - if err == nil { - bInt = true - } - - // Handle Integer Comparison - if aInt && bInt { - if aI > bI { - return 1 - } else if aI < bI { - return -1 - } - } - - // Handle String Comparison - if a > b { - return 1 - } else if a < b { - return -1 - } - - return recursivePreReleaseCompare(versionA[1:], versionB[1:]) -} - -// BumpMajor increments the Major field by 1 and resets all other fields to their default values -func (v *Version) BumpMajor() { - v.Major += 1 - v.Minor = 0 - v.Patch = 0 - v.PreRelease = PreRelease("") - v.Metadata = "" -} - -// BumpMinor increments the Minor field by 1 and resets all other fields to their default values -func (v *Version) BumpMinor() { - v.Minor += 1 - v.Patch = 0 - v.PreRelease = PreRelease("") - v.Metadata = "" -} - -// BumpPatch increments the Patch field by 1 and resets all other fields to their default values -func (v *Version) BumpPatch() { - v.Patch += 1 - v.PreRelease = PreRelease("") - v.Metadata = "" -} diff --git a/vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/semver/semver_test.go b/vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/semver/semver_test.go deleted file mode 100644 index 512dbcd3..00000000 --- a/vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/semver/semver_test.go +++ /dev/null @@ -1,297 +0,0 @@ -// Copyright 2013-2015 CoreOS, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package semver - -import ( - "bytes" - "encoding/json" - "errors" - "math/rand" - "reflect" - "testing" - "time" -) - -type fixture struct { - GreaterVersion string - LesserVersion string -} - -var fixtures = []fixture{ - fixture{"0.0.0", "0.0.0-foo"}, - fixture{"0.0.1", "0.0.0"}, - fixture{"1.0.0", "0.9.9"}, - fixture{"0.10.0", "0.9.0"}, - fixture{"0.99.0", "0.10.0"}, - fixture{"2.0.0", "1.2.3"}, - fixture{"0.0.0", "0.0.0-foo"}, - fixture{"0.0.1", "0.0.0"}, - fixture{"1.0.0", "0.9.9"}, - fixture{"0.10.0", "0.9.0"}, - fixture{"0.99.0", "0.10.0"}, - fixture{"2.0.0", "1.2.3"}, - fixture{"0.0.0", "0.0.0-foo"}, - fixture{"0.0.1", "0.0.0"}, - fixture{"1.0.0", "0.9.9"}, - fixture{"0.10.0", "0.9.0"}, - fixture{"0.99.0", "0.10.0"}, - fixture{"2.0.0", "1.2.3"}, - fixture{"1.2.3", "1.2.3-asdf"}, - fixture{"1.2.3", "1.2.3-4"}, - fixture{"1.2.3", "1.2.3-4-foo"}, - fixture{"1.2.3-5-foo", "1.2.3-5"}, - fixture{"1.2.3-5", "1.2.3-4"}, - fixture{"1.2.3-5-foo", "1.2.3-5-Foo"}, - fixture{"3.0.0", "2.7.2+asdf"}, - fixture{"3.0.0+foobar", "2.7.2"}, - fixture{"1.2.3-a.10", "1.2.3-a.5"}, - fixture{"1.2.3-a.b", "1.2.3-a.5"}, - fixture{"1.2.3-a.b", "1.2.3-a"}, - fixture{"1.2.3-a.b.c.10.d.5", "1.2.3-a.b.c.5.d.100"}, - fixture{"1.0.0", "1.0.0-rc.1"}, - fixture{"1.0.0-rc.2", "1.0.0-rc.1"}, - fixture{"1.0.0-rc.1", "1.0.0-beta.11"}, - fixture{"1.0.0-beta.11", "1.0.0-beta.2"}, - fixture{"1.0.0-beta.2", "1.0.0-beta"}, - fixture{"1.0.0-beta", "1.0.0-alpha.beta"}, - fixture{"1.0.0-alpha.beta", "1.0.0-alpha.1"}, - fixture{"1.0.0-alpha.1", "1.0.0-alpha"}, -} - -func TestCompare(t *testing.T) { - for _, v := range fixtures { - gt, err := NewVersion(v.GreaterVersion) - if err != nil { - t.Error(err) - } - - lt, err := NewVersion(v.LesserVersion) - if err != nil { - t.Error(err) - } - - if gt.LessThan(*lt) == true { - t.Errorf("%s should not be less than %s", gt, lt) - } - } -} - -func testString(t *testing.T, orig string, version *Version) { - if orig != version.String() { - t.Errorf("%s != %s", orig, version) - } -} - -func TestString(t *testing.T) { - for _, v := range fixtures { - gt, err := NewVersion(v.GreaterVersion) - if err != nil { - t.Error(err) - } - testString(t, v.GreaterVersion, gt) - - lt, err := NewVersion(v.LesserVersion) - if err != nil { - t.Error(err) - } - testString(t, v.LesserVersion, lt) - } -} - -func shuffleStringSlice(src []string) []string { - dest := make([]string, len(src)) - rand.Seed(time.Now().Unix()) - perm := rand.Perm(len(src)) - for i, v := range perm { - dest[v] = src[i] - } - return dest -} - -func TestSort(t *testing.T) { - sortedVersions := []string{"1.0.0", "1.0.2", "1.2.0", "3.1.1"} - unsortedVersions := shuffleStringSlice(sortedVersions) - - semvers := []*Version{} - for _, v := range unsortedVersions { - sv, err := NewVersion(v) - if err != nil { - t.Fatal(err) - } - semvers = append(semvers, sv) - } - - Sort(semvers) - - for idx, sv := range semvers { - if sv.String() != sortedVersions[idx] { - t.Fatalf("incorrect sort at index %v", idx) - } - } -} - -func TestBumpMajor(t *testing.T) { - version, _ := NewVersion("1.0.0") - version.BumpMajor() - if version.Major != 2 { - t.Fatalf("bumping major on 1.0.0 resulted in %v", version) - } - - version, _ = NewVersion("1.5.2") - version.BumpMajor() - if version.Minor != 0 && version.Patch != 0 { - t.Fatalf("bumping major on 1.5.2 resulted in %v", version) - } - - version, _ = NewVersion("1.0.0+build.1-alpha.1") - version.BumpMajor() - if version.PreRelease != "" && version.PreRelease != "" { - t.Fatalf("bumping major on 1.0.0+build.1-alpha.1 resulted in %v", version) - } -} - -func TestBumpMinor(t *testing.T) { - version, _ := NewVersion("1.0.0") - version.BumpMinor() - - if version.Major != 1 { - t.Fatalf("bumping minor on 1.0.0 resulted in %v", version) - } - - if version.Minor != 1 { - t.Fatalf("bumping major on 1.0.0 resulted in %v", version) - } - - version, _ = NewVersion("1.0.0+build.1-alpha.1") - version.BumpMinor() - if version.PreRelease != "" && version.PreRelease != "" { - t.Fatalf("bumping major on 1.0.0+build.1-alpha.1 resulted in %v", version) - } -} - -func TestBumpPatch(t *testing.T) { - version, _ := NewVersion("1.0.0") - version.BumpPatch() - - if version.Major != 1 { - t.Fatalf("bumping minor on 1.0.0 resulted in %v", version) - } - - if version.Minor != 0 { - t.Fatalf("bumping major on 1.0.0 resulted in %v", version) - } - - if version.Patch != 1 { - t.Fatalf("bumping major on 1.0.0 resulted in %v", version) - } - - version, _ = NewVersion("1.0.0+build.1-alpha.1") - version.BumpPatch() - if version.PreRelease != "" && version.PreRelease != "" { - t.Fatalf("bumping major on 1.0.0+build.1-alpha.1 resulted in %v", version) - } -} - -func TestMust(t *testing.T) { - tests := []struct { - versionStr string - - version *Version - recov interface{} - }{ - { - versionStr: "1.0.0", - version: &Version{Major: 1}, - }, - { - versionStr: "version number", - recov: errors.New("version number is not in dotted-tri format"), - }, - } - - for _, tt := range tests { - func() { - defer func() { - recov := recover() - if !reflect.DeepEqual(tt.recov, recov) { - t.Fatalf("incorrect panic for %q: want %v, got %v", tt.versionStr, tt.recov, recov) - } - }() - - version := Must(NewVersion(tt.versionStr)) - if !reflect.DeepEqual(tt.version, version) { - t.Fatalf("incorrect version for %q: want %+v, got %+v", tt.versionStr, tt.version, version) - } - }() - } -} - -type fixtureJSON struct { - GreaterVersion *Version - LesserVersion *Version -} - -func TestJSON(t *testing.T) { - fj := make([]fixtureJSON, len(fixtures)) - for i, v := range fixtures { - var err error - fj[i].GreaterVersion, err = NewVersion(v.GreaterVersion) - if err != nil { - t.Fatal(err) - } - fj[i].LesserVersion, err = NewVersion(v.LesserVersion) - if err != nil { - t.Fatal(err) - } - } - - fromStrings, err := json.Marshal(fixtures) - if err != nil { - t.Fatal(err) - } - fromVersions, err := json.Marshal(fj) - if err != nil { - t.Fatal(err) - } - if !bytes.Equal(fromStrings, fromVersions) { - t.Errorf("Expected: %s", fromStrings) - t.Errorf("Unexpected: %s", fromVersions) - } - - fromJson := make([]fixtureJSON, 0, len(fj)) - err = json.Unmarshal(fromStrings, &fromJson) - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(fromJson, fj) { - t.Error("Expected: ", fj) - t.Error("Unexpected: ", fromJson) - } -} - -func TestBadInput(t *testing.T) { - bad := []string{ - "1.2", - "1.2.3x", - "0x1.3.4", - "-1.2.3", - "1.2.3.4", - } - for _, b := range bad { - if _, err := NewVersion(b); err == nil { - t.Error("Improperly accepted value: ", b) - } - } -} diff --git a/vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/semver/sort.go b/vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/semver/sort.go deleted file mode 100644 index e256b41a..00000000 --- a/vendor/gx/QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa/go-semver/semver/sort.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2013-2015 CoreOS, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package semver - -import ( - "sort" -) - -type Versions []*Version - -func (s Versions) Len() int { - return len(s) -} - -func (s Versions) Swap(i, j int) { - s[i], s[j] = s[j], s[i] -} - -func (s Versions) Less(i, j int) bool { - return s[i].LessThan(*s[j]) -} - -// Sort sorts the given slice of Version -func Sort(versions []*Version) { - sort.Sort(Versions(versions)) -} diff --git a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/.gxignore b/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/LICENSE b/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/LICENSE deleted file mode 100644 index a5df10e6..00000000 --- a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Armon Dadgar - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/README.md b/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/README.md deleted file mode 100644 index 80f3d90a..00000000 --- a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/README.md +++ /dev/null @@ -1,37 +0,0 @@ -mdns -==== - -Simple mDNS client/server library in Golang. mDNS or Multicast DNS can be -used to discover services on the local network without the use of an authoritative -DNS server. This enables peer-to-peer discovery. It is important to note that many -networks restrict the use of multicasting, which prevents mDNS from functioning. -Notably, multicast cannot be used in any sort of cloud, or shared infrastructure -environment. However it works well in most office, home, or private infrastructure -environments. - -Using the library is very simple, here is an example of publishing a service entry: - - // Setup our service export - host, _ := os.Hostname() - info := []string{"My awesome service"}, - service, _ := NewMDNSService(host, "_foobar._tcp", "", "", 8000, nil, info) - - // Create the mDNS server, defer shutdown - server, _ := mdns.NewServer(&mdns.Config{Zone: service}) - defer server.Shutdown() - - -Doing a lookup for service providers is also very simple: - - // Make a channel for results and start listening - entriesCh := make(chan *mdns.ServiceEntry, 4) - go func() { - for entry := range entriesCh { - fmt.Printf("Got new entry: %v\n", entry) - } - }() - - // Start the lookup - mdns.Lookup("_foobar._tcp", entriesCh) - close(entriesCh) - diff --git a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/client.go b/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/client.go deleted file mode 100644 index 3fda455b..00000000 --- a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/client.go +++ /dev/null @@ -1,362 +0,0 @@ -package mdns - -import ( - "fmt" - "log" - "net" - "strings" - "sync" - "time" - - "gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv4" - "gx/Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh/go-net/ipv6" -) - -// ServiceEntry is returned after we query for a service -type ServiceEntry struct { - Name string - Host string - AddrV4 net.IP - AddrV6 net.IP - Port int - Info string - - Addr net.IP // @Deprecated - - hasTXT bool - sent bool -} - -// complete is used to check if we have all the info we need -func (s *ServiceEntry) complete() bool { - return (s.AddrV4 != nil || s.AddrV6 != nil || s.Addr != nil) && s.Port != 0 && s.hasTXT -} - -// QueryParam is used to customize how a Lookup is performed -type QueryParam struct { - Service string // Service to lookup - Domain string // Lookup domain, default "local" - Timeout time.Duration // Lookup timeout, default 1 second - Interface *net.Interface // Multicast interface to use - Entries chan<- *ServiceEntry // Entries Channel - WantUnicastResponse bool // Unicast response desired, as per 5.4 in RFC -} - -// DefaultParams is used to return a default set of QueryParam's -func DefaultParams(service string) *QueryParam { - return &QueryParam{ - Service: service, - Domain: "local", - Timeout: time.Second, - Entries: make(chan *ServiceEntry), - WantUnicastResponse: false, // TODO(reddaly): Change this default. - } -} - -// Query looks up a given service, in a domain, waiting at most -// for a timeout before finishing the query. The results are streamed -// to a channel. Sends will not block, so clients should make sure to -// either read or buffer. -func Query(params *QueryParam) error { - // Create a new client - client, err := newClient() - if err != nil { - return err - } - defer client.Close() - - // Set the multicast interface - if params.Interface != nil { - if err := client.setInterface(params.Interface); err != nil { - return err - } - } - - // Ensure defaults are set - if params.Domain == "" { - params.Domain = "local" - } - if params.Timeout == 0 { - params.Timeout = time.Second - } - - // Run the query - return client.query(params) -} - -// Lookup is the same as Query, however it uses all the default parameters -func Lookup(service string, entries chan<- *ServiceEntry) error { - params := DefaultParams(service) - params.Entries = entries - return Query(params) -} - -// Client provides a query interface that can be used to -// search for service providers using mDNS -type client struct { - ipv4UnicastConn *net.UDPConn - ipv6UnicastConn *net.UDPConn - - ipv4MulticastConn *net.UDPConn - ipv6MulticastConn *net.UDPConn - - closed bool - closedCh chan struct{} // TODO(reddaly): This doesn't appear to be used. - closeLock sync.Mutex -} - -// NewClient creates a new mdns Client that can be used to query -// for records -func newClient() (*client, error) { - // TODO(reddaly): At least attempt to bind to the port required in the spec. - // Create a IPv4 listener - uconn4, err := net.ListenUDP("udp4", &net.UDPAddr{IP: net.IPv4zero, Port: 0}) - if err != nil { - log.Printf("[ERR] mdns: Failed to bind to udp4 port: %v", err) - } - uconn6, err := net.ListenUDP("udp6", &net.UDPAddr{IP: net.IPv6zero, Port: 0}) - if err != nil { - log.Printf("[ERR] mdns: Failed to bind to udp6 port: %v", err) - } - - if uconn4 == nil && uconn6 == nil { - return nil, fmt.Errorf("failed to bind to any unicast udp port") - } - - mconn4, err := net.ListenMulticastUDP("udp4", nil, ipv4Addr) - if err != nil { - log.Printf("[ERR] mdns: Failed to bind to udp4 port: %v", err) - } - mconn6, err := net.ListenMulticastUDP("udp6", nil, ipv6Addr) - if err != nil { - log.Printf("[ERR] mdns: Failed to bind to udp6 port: %v", err) - } - - if mconn4 == nil && mconn6 == nil { - return nil, fmt.Errorf("failed to bind to any multicast udp port") - } - - c := &client{ - ipv4MulticastConn: mconn4, - ipv6MulticastConn: mconn6, - ipv4UnicastConn: uconn4, - ipv6UnicastConn: uconn6, - closedCh: make(chan struct{}), - } - return c, nil -} - -// Close is used to cleanup the client -func (c *client) Close() error { - c.closeLock.Lock() - defer c.closeLock.Unlock() - - if c.closed { - return nil - } - c.closed = true - - log.Printf("[INFO] mdns: Closing client %v", *c) - close(c.closedCh) - - if c.ipv4UnicastConn != nil { - c.ipv4UnicastConn.Close() - } - if c.ipv6UnicastConn != nil { - c.ipv6UnicastConn.Close() - } - if c.ipv4MulticastConn != nil { - c.ipv4MulticastConn.Close() - } - if c.ipv6MulticastConn != nil { - c.ipv6MulticastConn.Close() - } - - return nil -} - -// setInterface is used to set the query interface, uses sytem -// default if not provided -func (c *client) setInterface(iface *net.Interface) error { - p := ipv4.NewPacketConn(c.ipv4UnicastConn) - if err := p.SetMulticastInterface(iface); err != nil { - return err - } - p2 := ipv6.NewPacketConn(c.ipv6UnicastConn) - if err := p2.SetMulticastInterface(iface); err != nil { - return err - } - p = ipv4.NewPacketConn(c.ipv4MulticastConn) - if err := p.SetMulticastInterface(iface); err != nil { - return err - } - p2 = ipv6.NewPacketConn(c.ipv6MulticastConn) - if err := p2.SetMulticastInterface(iface); err != nil { - return err - } - return nil -} - -// query is used to perform a lookup and stream results -func (c *client) query(params *QueryParam) error { - // Create the service name - serviceAddr := fmt.Sprintf("%s.%s.", trimDot(params.Service), trimDot(params.Domain)) - - // Start listening for response packets - msgCh := make(chan *dns.Msg, 32) - go c.recv(c.ipv4UnicastConn, msgCh) - go c.recv(c.ipv6UnicastConn, msgCh) - go c.recv(c.ipv4MulticastConn, msgCh) - go c.recv(c.ipv6MulticastConn, msgCh) - - // Send the query - m := new(dns.Msg) - m.SetQuestion(serviceAddr, dns.TypePTR) - // RFC 6762, section 18.12. Repurposing of Top Bit of qclass in Question - // Section - // - // In the Question Section of a Multicast DNS query, the top bit of the qclass - // field is used to indicate that unicast responses are preferred for this - // particular question. (See Section 5.4.) - if params.WantUnicastResponse { - m.Question[0].Qclass |= 1 << 15 - } - m.RecursionDesired = false - if err := c.sendQuery(m); err != nil { - return err - } - - // Map the in-progress responses - inprogress := make(map[string]*ServiceEntry) - - // Listen until we reach the timeout - finish := time.After(params.Timeout) - for { - select { - case resp := <-msgCh: - var inp *ServiceEntry - for _, answer := range append(resp.Answer, resp.Extra...) { - // TODO(reddaly): Check that response corresponds to serviceAddr? - switch rr := answer.(type) { - case *dns.PTR: - // Create new entry for this - inp = ensureName(inprogress, rr.Ptr) - - case *dns.SRV: - // Check for a target mismatch - if rr.Target != rr.Hdr.Name { - alias(inprogress, rr.Hdr.Name, rr.Target) - } - - // Get the port - inp = ensureName(inprogress, rr.Hdr.Name) - inp.Host = rr.Target - inp.Port = int(rr.Port) - - case *dns.TXT: - // Pull out the txt - inp = ensureName(inprogress, rr.Hdr.Name) - inp.Info = strings.Join(rr.Txt, "|") - inp.hasTXT = true - - case *dns.A: - // Pull out the IP - inp = ensureName(inprogress, rr.Hdr.Name) - inp.Addr = rr.A // @Deprecated - inp.AddrV4 = rr.A - - case *dns.AAAA: - // Pull out the IP - inp = ensureName(inprogress, rr.Hdr.Name) - inp.Addr = rr.AAAA // @Deprecated - inp.AddrV6 = rr.AAAA - } - } - - if inp == nil { - continue - } - - // Check if this entry is complete - if inp.complete() { - if inp.sent { - continue - } - inp.sent = true - select { - case params.Entries <- inp: - default: - } - } else { - // Fire off a node specific query - m := new(dns.Msg) - m.SetQuestion(inp.Name, dns.TypePTR) - m.RecursionDesired = false - if err := c.sendQuery(m); err != nil { - log.Printf("[ERR] mdns: Failed to query instance %s: %v", inp.Name, err) - } - } - case <-finish: - return nil - } - } -} - -// sendQuery is used to multicast a query out -func (c *client) sendQuery(q *dns.Msg) error { - buf, err := q.Pack() - if err != nil { - return err - } - if c.ipv4UnicastConn != nil { - c.ipv4UnicastConn.WriteToUDP(buf, ipv4Addr) - } - if c.ipv6UnicastConn != nil { - c.ipv6UnicastConn.WriteToUDP(buf, ipv6Addr) - } - return nil -} - -// recv is used to receive until we get a shutdown -func (c *client) recv(l *net.UDPConn, msgCh chan *dns.Msg) { - if l == nil { - return - } - buf := make([]byte, 65536) - for !c.closed { - n, err := l.Read(buf) - if err != nil { - log.Printf("[ERR] mdns: Failed to read packet: %v", err) - continue - } - msg := new(dns.Msg) - if err := msg.Unpack(buf[:n]); err != nil { - log.Printf("[ERR] mdns: Failed to unpack packet: %v", err) - continue - } - select { - case msgCh <- msg: - case <-c.closedCh: - return - } - } -} - -// ensureName is used to ensure the named node is in progress -func ensureName(inprogress map[string]*ServiceEntry, name string) *ServiceEntry { - if inp, ok := inprogress[name]; ok { - return inp - } - inp := &ServiceEntry{ - Name: name, - } - inprogress[name] = inp - return inp -} - -// alias is used to setup an alias between two entries -func alias(inprogress map[string]*ServiceEntry, src, dst string) { - srcEntry := ensureName(inprogress, src) - inprogress[dst] = srcEntry -} diff --git a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/package.json b/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/package.json deleted file mode 100644 index 1d3299d4..00000000 --- a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "mdns", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "dns", - "hash": "QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW", - "version": "0.0.0" - }, - { - "name": "go-net", - "hash": "Qmbm2LFhcRyHzRqwefzBeazcK2EfUowfeYEAgEvr7N8hAh", - "version": "0.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/cryptix/mdns" - } -} \ No newline at end of file diff --git a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/server.go b/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/server.go deleted file mode 100644 index 45ff5c23..00000000 --- a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/server.go +++ /dev/null @@ -1,286 +0,0 @@ -package mdns - -import ( - "fmt" - "log" - "net" - "strings" - "sync" - - "gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns" -) - -const ( - ipv4mdns = "224.0.0.251" - ipv6mdns = "ff02::fb" - mdnsPort = 5353 - forceUnicastResponses = false -) - -var ( - ipv4Addr = &net.UDPAddr{ - IP: net.ParseIP(ipv4mdns), - Port: mdnsPort, - } - ipv6Addr = &net.UDPAddr{ - IP: net.ParseIP(ipv6mdns), - Port: mdnsPort, - } -) - -// Config is used to configure the mDNS server -type Config struct { - // Zone must be provided to support responding to queries - Zone Zone - - // Iface if provided binds the multicast listener to the given - // interface. If not provided, the system default multicase interface - // is used. - Iface *net.Interface -} - -// mDNS server is used to listen for mDNS queries and respond if we -// have a matching local record -type Server struct { - config *Config - - ipv4List *net.UDPConn - ipv6List *net.UDPConn - - shutdown bool - shutdownCh chan struct{} - shutdownLock sync.Mutex -} - -// NewServer is used to create a new mDNS server from a config -func NewServer(config *Config) (*Server, error) { - // Create the listeners - ipv4List, _ := net.ListenMulticastUDP("udp4", config.Iface, ipv4Addr) - ipv6List, _ := net.ListenMulticastUDP("udp6", config.Iface, ipv6Addr) - - // Check if we have any listener - if ipv4List == nil && ipv6List == nil { - return nil, fmt.Errorf("No multicast listeners could be started") - } - - s := &Server{ - config: config, - ipv4List: ipv4List, - ipv6List: ipv6List, - shutdownCh: make(chan struct{}), - } - - if ipv4List != nil { - go s.recv(s.ipv4List) - } - - if ipv6List != nil { - go s.recv(s.ipv6List) - } - - return s, nil -} - -// Shutdown is used to shutdown the listener -func (s *Server) Shutdown() error { - s.shutdownLock.Lock() - defer s.shutdownLock.Unlock() - - if s.shutdown { - return nil - } - s.shutdown = true - close(s.shutdownCh) - - if s.ipv4List != nil { - s.ipv4List.Close() - } - if s.ipv6List != nil { - s.ipv6List.Close() - } - return nil -} - -// recv is a long running routine to receive packets from an interface -func (s *Server) recv(c *net.UDPConn) { - if c == nil { - return - } - buf := make([]byte, 65536) - for !s.shutdown { - n, from, err := c.ReadFrom(buf) - if err != nil { - continue - } - if err := s.parsePacket(buf[:n], from); err != nil { - log.Printf("[ERR] mdns: Failed to handle query: %v", err) - } - } -} - -// parsePacket is used to parse an incoming packet -func (s *Server) parsePacket(packet []byte, from net.Addr) error { - var msg dns.Msg - if err := msg.Unpack(packet); err != nil { - log.Printf("[ERR] mdns: Failed to unpack packet: %v", err) - return err - } - return s.handleQuery(&msg, from) -} - -// handleQuery is used to handle an incoming query -func (s *Server) handleQuery(query *dns.Msg, from net.Addr) error { - if query.Opcode != dns.OpcodeQuery { - // "In both multicast query and multicast response messages, the OPCODE MUST - // be zero on transmission (only standard queries are currently supported - // over multicast). Multicast DNS messages received with an OPCODE other - // than zero MUST be silently ignored." Note: OpcodeQuery == 0 - return fmt.Errorf("mdns: received query with non-zero Opcode %v: %v", query.Opcode, *query) - } - if query.Rcode != 0 { - // "In both multicast query and multicast response messages, the Response - // Code MUST be zero on transmission. Multicast DNS messages received with - // non-zero Response Codes MUST be silently ignored." - return fmt.Errorf("mdns: received query with non-zero Rcode %v: %v", query.Rcode, *query) - } - - // TODO(reddaly): Handle "TC (Truncated) Bit": - // In query messages, if the TC bit is set, it means that additional - // Known-Answer records may be following shortly. A responder SHOULD - // record this fact, and wait for those additional Known-Answer records, - // before deciding whether to respond. If the TC bit is clear, it means - // that the querying host has no additional Known Answers. - if query.Truncated { - return fmt.Errorf("[ERR] mdns: support for DNS requests with high truncated bit not implemented: %v", *query) - } - - var unicastAnswer, multicastAnswer []dns.RR - - // Handle each question - for _, q := range query.Question { - mrecs, urecs := s.handleQuestion(q) - multicastAnswer = append(multicastAnswer, mrecs...) - unicastAnswer = append(unicastAnswer, urecs...) - } - - // See section 18 of RFC 6762 for rules about DNS headers. - resp := func(unicast bool) *dns.Msg { - // 18.1: ID (Query Identifier) - // 0 for multicast response, query.Id for unicast response - id := uint16(0) - if unicast { - id = query.Id - } - - var answer []dns.RR - if unicast { - answer = unicastAnswer - } else { - answer = multicastAnswer - } - if len(answer) == 0 { - return nil - } - - return &dns.Msg{ - MsgHdr: dns.MsgHdr{ - Id: id, - - // 18.2: QR (Query/Response) Bit - must be set to 1 in response. - Response: true, - - // 18.3: OPCODE - must be zero in response (OpcodeQuery == 0) - Opcode: dns.OpcodeQuery, - - // 18.4: AA (Authoritative Answer) Bit - must be set to 1 - Authoritative: true, - - // The following fields must all be set to 0: - // 18.5: TC (TRUNCATED) Bit - // 18.6: RD (Recursion Desired) Bit - // 18.7: RA (Recursion Available) Bit - // 18.8: Z (Zero) Bit - // 18.9: AD (Authentic Data) Bit - // 18.10: CD (Checking Disabled) Bit - // 18.11: RCODE (Response Code) - }, - // 18.12 pertains to questions (handled by handleQuestion) - // 18.13 pertains to resource records (handled by handleQuestion) - - // 18.14: Name Compression - responses should be compressed (though see - // caveats in the RFC), so set the Compress bit (part of the dns library - // API, not part of the DNS packet) to true. - Compress: true, - - Answer: answer, - } - } - - if len(multicastAnswer) == 0 && len(unicastAnswer) == 0 { - questions := make([]string, len(query.Question)) - for i, q := range query.Question { - questions[i] = q.Name - } - log.Printf("no responses for query with questions: %s", strings.Join(questions, ", ")) - } - - if mresp := resp(false); mresp != nil { - if err := s.sendResponse(mresp, from, false); err != nil { - return fmt.Errorf("mdns: error sending multicast response: %v", err) - } - } - if uresp := resp(true); uresp != nil { - if err := s.sendResponse(uresp, from, true); err != nil { - return fmt.Errorf("mdns: error sending unicast response: %v", err) - } - } - return nil -} - -// handleQuestion is used to handle an incoming question -// -// The response to a question may be transmitted over multicast, unicast, or -// both. The return values are DNS records for each transmission type. -func (s *Server) handleQuestion(q dns.Question) (multicastRecs, unicastRecs []dns.RR) { - records := s.config.Zone.Records(q) - - if len(records) == 0 { - return nil, nil - } - - // Handle unicast and multicast responses. - // TODO(reddaly): The decision about sending over unicast vs. multicast is not - // yet fully compliant with RFC 6762. For example, the unicast bit should be - // ignored if the records in question are close to TTL expiration. For now, - // we just use the unicast bit to make the decision, as per the spec: - // RFC 6762, section 18.12. Repurposing of Top Bit of qclass in Question - // Section - // - // In the Question Section of a Multicast DNS query, the top bit of the - // qclass field is used to indicate that unicast responses are preferred - // for this particular question. (See Section 5.4.) - if q.Qclass&(1<<15) != 0 || forceUnicastResponses { - return nil, records - } - return records, nil -} - -// sendResponse is used to send a response packet -func (s *Server) sendResponse(resp *dns.Msg, from net.Addr, unicast bool) error { - // TODO(reddaly): Respect the unicast argument, and allow sending responses - // over multicast. - buf, err := resp.Pack() - if err != nil { - return err - } - - // Determine the socket to send from - addr := from.(*net.UDPAddr) - if addr.IP.To4() != nil { - _, err = s.ipv4List.WriteToUDP(buf, addr) - return err - } else { - _, err = s.ipv6List.WriteToUDP(buf, addr) - return err - } -} diff --git a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/server_test.go b/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/server_test.go deleted file mode 100644 index 3f20bc66..00000000 --- a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/server_test.go +++ /dev/null @@ -1,58 +0,0 @@ -package mdns - -import ( - "testing" - "time" -) - -func TestServer_StartStop(t *testing.T) { - s := makeService(t) - serv, err := NewServer(&Config{Zone: s}) - if err != nil { - t.Fatalf("err: %v", err) - } - defer serv.Shutdown() -} - -func TestServer_Lookup(t *testing.T) { - serv, err := NewServer(&Config{Zone: makeServiceWithServiceName(t, "_foobar._tcp")}) - if err != nil { - t.Fatalf("err: %v", err) - } - defer serv.Shutdown() - - entries := make(chan *ServiceEntry, 1) - found := false - go func() { - select { - case e := <-entries: - if e.Name != "hostname._foobar._tcp.local." { - t.Fatalf("bad: %v", e) - } - if e.Port != 80 { - t.Fatalf("bad: %v", e) - } - if e.Info != "Local web server" { - t.Fatalf("bad: %v", e) - } - found = true - - case <-time.After(80 * time.Millisecond): - t.Fatalf("timeout") - } - }() - - params := &QueryParam{ - Service: "_foobar._tcp", - Domain: "local", - Timeout: 50 * time.Millisecond, - Entries: entries, - } - err = Query(params) - if err != nil { - t.Fatalf("err: %v", err) - } - if !found { - t.Fatalf("record not found") - } -} diff --git a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/zone.go b/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/zone.go deleted file mode 100644 index dc488837..00000000 --- a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/zone.go +++ /dev/null @@ -1,307 +0,0 @@ -package mdns - -import ( - "fmt" - "net" - "os" - "strings" - - "gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns" -) - -const ( - // defaultTTL is the default TTL value in returned DNS records in seconds. - defaultTTL = 120 -) - -// Zone is the interface used to integrate with the server and -// to serve records dynamically -type Zone interface { - // Records returns DNS records in response to a DNS question. - Records(q dns.Question) []dns.RR -} - -// MDNSService is used to export a named service by implementing a Zone -type MDNSService struct { - Instance string // Instance name (e.g. "hostService name") - Service string // Service name (e.g. "_http._tcp.") - Domain string // If blank, assumes "local" - HostName string // Host machine DNS name (e.g. "mymachine.net.") - Port int // Service Port - IPs []net.IP // IP addresses for the service's host - TXT []string // Service TXT records - - serviceAddr string // Fully qualified service address - instanceAddr string // Fully qualified instance address - enumAddr string // _services._dns-sd._udp. -} - -// validateFQDN returns an error if the passed string is not a fully qualified -// hdomain name (more specifically, a hostname). -func validateFQDN(s string) error { - if len(s) == 0 { - return fmt.Errorf("FQDN must not be blank") - } - if s[len(s)-1] != '.' { - return fmt.Errorf("FQDN must end in period: %s", s) - } - // TODO(reddaly): Perform full validation. - - return nil -} - -// NewMDNSService returns a new instance of MDNSService. -// -// If domain, hostName, or ips is set to the zero value, then a default value -// will be inferred from the operating system. -// -// TODO(reddaly): This interface may need to change to account for "unique -// record" conflict rules of the mDNS protocol. Upon startup, the server should -// check to ensure that the instance name does not conflict with other instance -// names, and, if required, select a new name. There may also be conflicting -// hostName A/AAAA records. -func NewMDNSService(instance, service, domain, hostName string, port int, ips []net.IP, txt []string) (*MDNSService, error) { - // Sanity check inputs - if instance == "" { - return nil, fmt.Errorf("missing service instance name") - } - if service == "" { - return nil, fmt.Errorf("missing service name") - } - if port == 0 { - return nil, fmt.Errorf("missing service port") - } - - // Set default domain - if domain == "" { - domain = "local." - } - if err := validateFQDN(domain); err != nil { - return nil, fmt.Errorf("domain %q is not a fully-qualified domain name: %v", domain, err) - } - - // Get host information if no host is specified. - if hostName == "" { - var err error - hostName, err = os.Hostname() - if err != nil { - return nil, fmt.Errorf("could not determine host: %v", err) - } - hostName = fmt.Sprintf("%s.", hostName) - } - if err := validateFQDN(hostName); err != nil { - return nil, fmt.Errorf("hostName %q is not a fully-qualified domain name: %v", hostName, err) - } - - if len(ips) == 0 { - var err error - ips, err = net.LookupIP(hostName) - if err != nil { - // Try appending the host domain suffix and lookup again - // (required for Linux-based hosts) - tmpHostName := fmt.Sprintf("%s%s", hostName, domain) - - ips, err = net.LookupIP(tmpHostName) - - if err != nil { - return nil, fmt.Errorf("could not determine host IP addresses for %s", hostName) - } - } - } - for _, ip := range ips { - if ip.To4() == nil && ip.To16() == nil { - return nil, fmt.Errorf("invalid IP address in IPs list: %v", ip) - } - } - - return &MDNSService{ - Instance: instance, - Service: service, - Domain: domain, - HostName: hostName, - Port: port, - IPs: ips, - TXT: txt, - serviceAddr: fmt.Sprintf("%s.%s.", trimDot(service), trimDot(domain)), - instanceAddr: fmt.Sprintf("%s.%s.%s.", instance, trimDot(service), trimDot(domain)), - enumAddr: fmt.Sprintf("_services._dns-sd._udp.%s.", trimDot(domain)), - }, nil -} - -// trimDot is used to trim the dots from the start or end of a string -func trimDot(s string) string { - return strings.Trim(s, ".") -} - -// Records returns DNS records in response to a DNS question. -func (m *MDNSService) Records(q dns.Question) []dns.RR { - switch q.Name { - case m.enumAddr: - return m.serviceEnum(q) - case m.serviceAddr: - return m.serviceRecords(q) - case m.instanceAddr: - return m.instanceRecords(q) - case m.HostName: - if q.Qtype == dns.TypeA || q.Qtype == dns.TypeAAAA { - return m.instanceRecords(q) - } - fallthrough - default: - return nil - } -} - -func (m *MDNSService) serviceEnum(q dns.Question) []dns.RR { - switch q.Qtype { - case dns.TypeANY: - fallthrough - case dns.TypePTR: - rr := &dns.PTR{ - Hdr: dns.RR_Header{ - Name: q.Name, - Rrtype: dns.TypePTR, - Class: dns.ClassINET, - Ttl: defaultTTL, - }, - Ptr: m.serviceAddr, - } - return []dns.RR{rr} - default: - return nil - } -} - -// serviceRecords is called when the query matches the service name -func (m *MDNSService) serviceRecords(q dns.Question) []dns.RR { - switch q.Qtype { - case dns.TypeANY: - fallthrough - case dns.TypePTR: - // Build a PTR response for the service - rr := &dns.PTR{ - Hdr: dns.RR_Header{ - Name: q.Name, - Rrtype: dns.TypePTR, - Class: dns.ClassINET, - Ttl: defaultTTL, - }, - Ptr: m.instanceAddr, - } - servRec := []dns.RR{rr} - - // Get the instance records - instRecs := m.instanceRecords(dns.Question{ - Name: m.instanceAddr, - Qtype: dns.TypeANY, - }) - - // Return the service record with the instance records - return append(servRec, instRecs...) - default: - return nil - } -} - -// serviceRecords is called when the query matches the instance name -func (m *MDNSService) instanceRecords(q dns.Question) []dns.RR { - switch q.Qtype { - case dns.TypeANY: - // Get the SRV, which includes A and AAAA - recs := m.instanceRecords(dns.Question{ - Name: m.instanceAddr, - Qtype: dns.TypeSRV, - }) - - // Add the TXT record - recs = append(recs, m.instanceRecords(dns.Question{ - Name: m.instanceAddr, - Qtype: dns.TypeTXT, - })...) - return recs - - case dns.TypeA: - var rr []dns.RR - for _, ip := range m.IPs { - if ip4 := ip.To4(); ip4 != nil { - rr = append(rr, &dns.A{ - Hdr: dns.RR_Header{ - Name: m.HostName, - Rrtype: dns.TypeA, - Class: dns.ClassINET, - Ttl: defaultTTL, - }, - A: ip4, - }) - } - } - return rr - - case dns.TypeAAAA: - var rr []dns.RR - for _, ip := range m.IPs { - if ip.To4() != nil { - // TODO(reddaly): IPv4 addresses could be encoded in IPv6 format and - // putinto AAAA records, but the current logic puts ipv4-encodable - // addresses into the A records exclusively. Perhaps this should be - // configurable? - continue - } - - if ip16 := ip.To16(); ip16 != nil { - rr = append(rr, &dns.AAAA{ - Hdr: dns.RR_Header{ - Name: m.HostName, - Rrtype: dns.TypeAAAA, - Class: dns.ClassINET, - Ttl: defaultTTL, - }, - AAAA: ip16, - }) - } - } - return rr - - case dns.TypeSRV: - // Create the SRV Record - srv := &dns.SRV{ - Hdr: dns.RR_Header{ - Name: q.Name, - Rrtype: dns.TypeSRV, - Class: dns.ClassINET, - Ttl: defaultTTL, - }, - Priority: 10, - Weight: 1, - Port: uint16(m.Port), - Target: m.HostName, - } - recs := []dns.RR{srv} - - // Add the A record - recs = append(recs, m.instanceRecords(dns.Question{ - Name: m.instanceAddr, - Qtype: dns.TypeA, - })...) - - // Add the AAAA record - recs = append(recs, m.instanceRecords(dns.Question{ - Name: m.instanceAddr, - Qtype: dns.TypeAAAA, - })...) - return recs - - case dns.TypeTXT: - txt := &dns.TXT{ - Hdr: dns.RR_Header{ - Name: q.Name, - Rrtype: dns.TypeTXT, - Class: dns.ClassINET, - Ttl: defaultTTL, - }, - Txt: m.TXT, - } - return []dns.RR{txt} - } - return nil -} diff --git a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/zone_test.go b/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/zone_test.go deleted file mode 100644 index b21f2ced..00000000 --- a/vendor/gx/QmdkSkALqzKfXnuMTsbBVS26U4XGS9kCffRpSTWvVbkRSi/mdns/zone_test.go +++ /dev/null @@ -1,275 +0,0 @@ -package mdns - -import ( - "bytes" - "net" - "reflect" - "testing" - - "gx/QmXmPVHWFhqSXuYwypKkrKAuciagigegSFdo4ANy4th5BW/dns" -) - -func makeService(t *testing.T) *MDNSService { - return makeServiceWithServiceName(t, "_http._tcp") -} - -func makeServiceWithServiceName(t *testing.T, service string) *MDNSService { - m, err := NewMDNSService( - "hostname", - service, - "local.", - "testhost.", - 80, // port - []net.IP{net.IP([]byte{192, 168, 0, 42}), net.ParseIP("2620:0:1000:1900:b0c2:d0b2:c411:18bc")}, - []string{"Local web server"}) // TXT - - if err != nil { - t.Fatalf("err: %v", err) - } - - return m -} - -func TestNewMDNSService_BadParams(t *testing.T) { - for _, test := range []struct { - testName string - hostName string - domain string - }{ - { - "NewMDNSService should fail when passed hostName that is not a legal fully-qualified domain name", - "hostname", // not legal FQDN - should be "hostname." or "hostname.local.", etc. - "local.", // legal - }, - { - "NewMDNSService should fail when passed domain that is not a legal fully-qualified domain name", - "hostname.", // legal - "local", // should be "local." - }, - } { - _, err := NewMDNSService( - "instance name", - "_http._tcp", - test.domain, - test.hostName, - 80, // port - []net.IP{net.IP([]byte{192, 168, 0, 42})}, - []string{"Local web server"}) // TXT - if err == nil { - t.Fatalf("%s: error expected, but got none", test.testName) - } - } -} - -func TestMDNSService_BadAddr(t *testing.T) { - s := makeService(t) - q := dns.Question{ - Name: "random", - Qtype: dns.TypeANY, - } - recs := s.Records(q) - if len(recs) != 0 { - t.Fatalf("bad: %v", recs) - } -} - -func TestMDNSService_ServiceAddr(t *testing.T) { - s := makeService(t) - q := dns.Question{ - Name: "_http._tcp.local.", - Qtype: dns.TypeANY, - } - recs := s.Records(q) - if got, want := len(recs), 5; got != want { - t.Fatalf("got %d records, want %d: %v", got, want, recs) - } - - if ptr, ok := recs[0].(*dns.PTR); !ok { - t.Errorf("recs[0] should be PTR record, got: %v, all records: %v", recs[0], recs) - } else if got, want := ptr.Ptr, "hostname._http._tcp.local."; got != want { - t.Fatalf("bad PTR record %v: got %v, want %v", ptr, got, want) - } - - if _, ok := recs[1].(*dns.SRV); !ok { - t.Errorf("recs[1] should be SRV record, got: %v, all reccords: %v", recs[1], recs) - } - if _, ok := recs[2].(*dns.A); !ok { - t.Errorf("recs[2] should be A record, got: %v, all records: %v", recs[2], recs) - } - if _, ok := recs[3].(*dns.AAAA); !ok { - t.Errorf("recs[3] should be AAAA record, got: %v, all records: %v", recs[3], recs) - } - if _, ok := recs[4].(*dns.TXT); !ok { - t.Errorf("recs[4] should be TXT record, got: %v, all records: %v", recs[4], recs) - } - - q.Qtype = dns.TypePTR - if recs2 := s.Records(q); !reflect.DeepEqual(recs, recs2) { - t.Fatalf("PTR question should return same result as ANY question: ANY => %v, PTR => %v", recs, recs2) - } -} - -func TestMDNSService_InstanceAddr_ANY(t *testing.T) { - s := makeService(t) - q := dns.Question{ - Name: "hostname._http._tcp.local.", - Qtype: dns.TypeANY, - } - recs := s.Records(q) - if len(recs) != 4 { - t.Fatalf("bad: %v", recs) - } - if _, ok := recs[0].(*dns.SRV); !ok { - t.Fatalf("bad: %v", recs[0]) - } - if _, ok := recs[1].(*dns.A); !ok { - t.Fatalf("bad: %v", recs[1]) - } - if _, ok := recs[2].(*dns.AAAA); !ok { - t.Fatalf("bad: %v", recs[2]) - } - if _, ok := recs[3].(*dns.TXT); !ok { - t.Fatalf("bad: %v", recs[3]) - } -} - -func TestMDNSService_InstanceAddr_SRV(t *testing.T) { - s := makeService(t) - q := dns.Question{ - Name: "hostname._http._tcp.local.", - Qtype: dns.TypeSRV, - } - recs := s.Records(q) - if len(recs) != 3 { - t.Fatalf("bad: %v", recs) - } - srv, ok := recs[0].(*dns.SRV) - if !ok { - t.Fatalf("bad: %v", recs[0]) - } - if _, ok := recs[1].(*dns.A); !ok { - t.Fatalf("bad: %v", recs[1]) - } - if _, ok := recs[2].(*dns.AAAA); !ok { - t.Fatalf("bad: %v", recs[2]) - } - - if srv.Port != uint16(s.Port) { - t.Fatalf("bad: %v", recs[0]) - } -} - -func TestMDNSService_InstanceAddr_A(t *testing.T) { - s := makeService(t) - q := dns.Question{ - Name: "hostname._http._tcp.local.", - Qtype: dns.TypeA, - } - recs := s.Records(q) - if len(recs) != 1 { - t.Fatalf("bad: %v", recs) - } - a, ok := recs[0].(*dns.A) - if !ok { - t.Fatalf("bad: %v", recs[0]) - } - if !bytes.Equal(a.A, []byte{192, 168, 0, 42}) { - t.Fatalf("bad: %v", recs[0]) - } -} - -func TestMDNSService_InstanceAddr_AAAA(t *testing.T) { - s := makeService(t) - q := dns.Question{ - Name: "hostname._http._tcp.local.", - Qtype: dns.TypeAAAA, - } - recs := s.Records(q) - if len(recs) != 1 { - t.Fatalf("bad: %v", recs) - } - a4, ok := recs[0].(*dns.AAAA) - if !ok { - t.Fatalf("bad: %v", recs[0]) - } - ip6 := net.ParseIP("2620:0:1000:1900:b0c2:d0b2:c411:18bc") - if got := len(ip6); got != net.IPv6len { - t.Fatalf("test IP failed to parse (len = %d, want %d)", got, net.IPv6len) - } - if !bytes.Equal(a4.AAAA, ip6) { - t.Fatalf("bad: %v", recs[0]) - } -} - -func TestMDNSService_InstanceAddr_TXT(t *testing.T) { - s := makeService(t) - q := dns.Question{ - Name: "hostname._http._tcp.local.", - Qtype: dns.TypeTXT, - } - recs := s.Records(q) - if len(recs) != 1 { - t.Fatalf("bad: %v", recs) - } - txt, ok := recs[0].(*dns.TXT) - if !ok { - t.Fatalf("bad: %v", recs[0]) - } - if got, want := txt.Txt, s.TXT; !reflect.DeepEqual(got, want) { - t.Fatalf("TXT record mismatch for %v: got %v, want %v", recs[0], got, want) - } -} - -func TestMDNSService_HostNameQuery(t *testing.T) { - s := makeService(t) - for _, test := range []struct { - q dns.Question - want []dns.RR - }{ - { - dns.Question{Name: "testhost.", Qtype: dns.TypeA}, - []dns.RR{&dns.A{ - Hdr: dns.RR_Header{ - Name: "testhost.", - Rrtype: dns.TypeA, - Class: dns.ClassINET, - Ttl: 120, - }, - A: net.IP([]byte{192, 168, 0, 42}), - }}, - }, - { - dns.Question{Name: "testhost.", Qtype: dns.TypeAAAA}, - []dns.RR{&dns.AAAA{ - Hdr: dns.RR_Header{ - Name: "testhost.", - Rrtype: dns.TypeAAAA, - Class: dns.ClassINET, - Ttl: 120, - }, - AAAA: net.ParseIP("2620:0:1000:1900:b0c2:d0b2:c411:18bc"), - }}, - }, - } { - if got := s.Records(test.q); !reflect.DeepEqual(got, test.want) { - t.Errorf("hostname query failed: s.Records(%v) = %v, want %v", test.q, got, test.want) - } - } -} - -func TestMDNSService_serviceEnum_PTR(t *testing.T) { - s := makeService(t) - q := dns.Question{ - Name: "_services._dns-sd._udp.local.", - Qtype: dns.TypePTR, - } - recs := s.Records(q) - if len(recs) != 1 { - t.Fatalf("bad: %v", recs) - } - if ptr, ok := recs[0].(*dns.PTR); !ok { - t.Errorf("recs[0] should be PTR record, got: %v, all records: %v", recs[0], recs) - } else if got, want := ptr.Ptr, "_http._tcp.local."; got != want { - t.Fatalf("bad PTR record %v: got %v, want %v", ptr, got, want) - } -} diff --git a/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/README.md b/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/README.md deleted file mode 100644 index 1ade9dc6..00000000 --- a/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/README.md +++ /dev/null @@ -1,43 +0,0 @@ -#Multistream-select router -This package implements a simple stream router for the multistream-select protocol. -The protocol is defined [here](https://github.com/jbenet/multistream). - - -Usage: - -```go -package main - -import ( - "fmt" - ms "github.com/whyrusleeping/go-multistream" - "io" - "net" -) - -func main() { - mux := ms.NewMultistreamMuxer() - mux.AddHandler("/cats", func(rwc io.ReadWriteCloser) error { - fmt.Fprintln(rwc, "HELLO I LIKE CATS") - return rwc.Close() - }) - mux.AddHandler("/dogs", func(rwc io.ReadWriteCloser) error { - fmt.Fprintln(rwc, "HELLO I LIKE DOGS") - return rwc.Close() - }) - - list, err := net.Listen("tcp", ":8765") - if err != nil { - panic(err) - } - - for { - con, err := list.Accept() - if err != nil { - panic(err) - } - - go mux.Handle(con) - } -} -``` diff --git a/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/client.go b/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/client.go deleted file mode 100644 index 622fa3b1..00000000 --- a/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/client.go +++ /dev/null @@ -1,75 +0,0 @@ -package multistream - -import ( - "errors" - "io" -) - -var ErrNotSupported = errors.New("protocol not supported") - -func SelectProtoOrFail(proto string, rwc io.ReadWriteCloser) error { - err := handshake(rwc) - if err != nil { - return err - } - - return trySelect(proto, rwc) -} - -func SelectOneOf(protos []string, rwc io.ReadWriteCloser) (string, error) { - err := handshake(rwc) - if err != nil { - return "", err - } - - for _, p := range protos { - err := trySelect(p, rwc) - switch err { - case nil: - return p, nil - case ErrNotSupported: - default: - return "", err - } - } - return "", ErrNotSupported -} - -func handshake(rwc io.ReadWriteCloser) error { - tok, err := ReadNextToken(rwc) - if err != nil { - return err - } - - if tok != ProtocolID { - return errors.New("received mismatch in protocol id") - } - - err = delimWrite(rwc, []byte(ProtocolID)) - if err != nil { - return err - } - - return nil -} - -func trySelect(proto string, rwc io.ReadWriteCloser) error { - err := delimWrite(rwc, []byte(proto)) - if err != nil { - return err - } - - tok, err := ReadNextToken(rwc) - if err != nil { - return err - } - - switch tok { - case proto: - return nil - case "na": - return ErrNotSupported - default: - return errors.New("unrecognized response: " + tok) - } -} diff --git a/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/lazy.go b/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/lazy.go deleted file mode 100644 index e86296a7..00000000 --- a/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/lazy.go +++ /dev/null @@ -1,124 +0,0 @@ -package multistream - -import ( - "fmt" - "io" - "sync" -) - -type Multistream interface { - io.ReadWriteCloser - Protocol() string -} - -func NewMSSelect(c io.ReadWriteCloser, proto string) Multistream { - return NewMultistream(NewMultistream(c, ProtocolID), proto) -} - -func NewMultistream(c io.ReadWriteCloser, proto string) Multistream { - return &lazyConn{ - proto: proto, - con: c, - } -} - -type lazyConn struct { - rhandshake bool // only accessed by 'Read' should not call read async - - rhlock sync.Mutex - rhsync bool //protected by mutex - rerr error - - whandshake bool - - whlock sync.Mutex - whsync bool - werr error - - proto string - con io.ReadWriteCloser -} - -func (l *lazyConn) Protocol() string { - return l.proto -} - -func (l *lazyConn) Read(b []byte) (int, error) { - if !l.rhandshake { - go l.writeHandshake() - err := l.readHandshake() - if err != nil { - return 0, err - } - - l.rhandshake = true - } - - if len(b) == 0 { - return 0, nil - } - - return l.con.Read(b) -} - -func (l *lazyConn) readHandshake() error { - l.rhlock.Lock() - defer l.rhlock.Unlock() - - // if we've already done this, exit - if l.rhsync { - return l.rerr - } - l.rhsync = true - - // read protocol - tok, err := ReadNextToken(l.con) - if err != nil { - l.rerr = err - return err - } - - if tok != l.proto { - l.rerr = fmt.Errorf("protocol mismatch in lazy handshake ( %s != %s )", tok, l.proto) - return l.rerr - } - - return nil -} - -func (l *lazyConn) writeHandshake() error { - l.whlock.Lock() - defer l.whlock.Unlock() - - if l.whsync { - return l.werr - } - - l.whsync = true - - err := delimWrite(l.con, []byte(l.proto)) - if err != nil { - l.werr = err - return err - } - - return nil -} - -func (l *lazyConn) Write(b []byte) (int, error) { - if !l.whandshake { - go l.readHandshake() - err := l.writeHandshake() - if err != nil { - return 0, err - } - - l.whandshake = true - } - - return l.con.Write(b) -} - -func (l *lazyConn) Close() error { - return l.con.Close() -} diff --git a/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/multistream.go b/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/multistream.go deleted file mode 100644 index ecec8df7..00000000 --- a/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/multistream.go +++ /dev/null @@ -1,201 +0,0 @@ -package multistream - -import ( - "bytes" - "encoding/binary" - "errors" - "io" - "sync" -) - -var ErrTooLarge = errors.New("incoming message was too large") - -const ProtocolID = "/multistream/1.0.0" - -type HandlerFunc func(io.ReadWriteCloser) error - -type MultistreamMuxer struct { - handlerlock sync.Mutex - handlers map[string]HandlerFunc -} - -func NewMultistreamMuxer() *MultistreamMuxer { - return &MultistreamMuxer{handlers: make(map[string]HandlerFunc)} -} - -func writeUvarint(w io.Writer, i uint64) error { - varintbuf := make([]byte, 32) - n := binary.PutUvarint(varintbuf, i) - _, err := w.Write(varintbuf[:n]) - if err != nil { - return err - } - return nil -} - -func delimWrite(w io.Writer, mes []byte) error { - err := writeUvarint(w, uint64(len(mes)+1)) - if err != nil { - return err - } - - _, err = w.Write(mes) - if err != nil { - return err - } - - _, err = w.Write([]byte{'\n'}) - if err != nil { - return err - } - return nil -} - -func (msm *MultistreamMuxer) AddHandler(protocol string, handler HandlerFunc) { - msm.handlerlock.Lock() - msm.handlers[protocol] = handler - msm.handlerlock.Unlock() -} - -func (msm *MultistreamMuxer) RemoveHandler(protocol string) { - msm.handlerlock.Lock() - delete(msm.handlers, protocol) - msm.handlerlock.Unlock() -} - -func (msm *MultistreamMuxer) Protocols() []string { - var out []string - msm.handlerlock.Lock() - for k, _ := range msm.handlers { - out = append(out, k) - } - msm.handlerlock.Unlock() - return out -} - -func (msm *MultistreamMuxer) Negotiate(rwc io.ReadWriteCloser) (string, HandlerFunc, error) { - // Send our protocol ID - err := delimWrite(rwc, []byte(ProtocolID)) - if err != nil { - return "", nil, err - } - - line, err := ReadNextToken(rwc) - if err != nil { - return "", nil, err - } - - if line != ProtocolID { - rwc.Close() - return "", nil, errors.New("client connected with incorrect version") - } - -loop: - for { - // Now read and respond to commands until they send a valid protocol id - tok, err := ReadNextToken(rwc) - if err != nil { - return "", nil, err - } - - switch tok { - case "ls": - err := msm.Ls(rwc) - if err != nil { - return "", nil, err - } - default: - msm.handlerlock.Lock() - h, ok := msm.handlers[tok] - msm.handlerlock.Unlock() - if !ok { - err := delimWrite(rwc, []byte("na")) - if err != nil { - return "", nil, err - } - continue loop - } - - err := delimWrite(rwc, []byte(tok)) - if err != nil { - return "", nil, err - } - - // hand off processing to the sub-protocol handler - return tok, h, nil - } - } - -} - -func (msm *MultistreamMuxer) Ls(rwc io.Writer) error { - buf := new(bytes.Buffer) - msm.handlerlock.Lock() - for proto, _ := range msm.handlers { - err := delimWrite(buf, []byte(proto)) - if err != nil { - msm.handlerlock.Unlock() - return err - } - } - msm.handlerlock.Unlock() - err := delimWrite(rwc, buf.Bytes()) - if err != nil { - return err - } - return nil -} - -func (msm *MultistreamMuxer) Handle(rwc io.ReadWriteCloser) error { - _, h, err := msm.Negotiate(rwc) - if err != nil { - return err - } - return h(rwc) -} - -func ReadNextToken(rw io.ReadWriter) (string, error) { - br := &byteReader{rw} - length, err := binary.ReadUvarint(br) - if err != nil { - return "", err - } - - if length > 64*1024 { - err := delimWrite(rw, []byte("messages over 64k are not allowed")) - if err != nil { - return "", err - } - return "", ErrTooLarge - } - - buf := make([]byte, length) - _, err = io.ReadFull(rw, buf) - if err != nil { - return "", err - } - - if len(buf) == 0 || buf[length-1] != '\n' { - return "", errors.New("message did not have trailing newline") - } - - // slice off the trailing newline - buf = buf[:length-1] - - return string(buf), nil -} - -// byteReader implements the ByteReader interface that ReadUVarint requires -type byteReader struct { - io.Reader -} - -func (br *byteReader) ReadByte() (byte, error) { - var b [1]byte - _, err := br.Read(b[:]) - - if err != nil { - return 0, err - } - return b[0], nil -} diff --git a/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/multistream_test.go b/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/multistream_test.go deleted file mode 100644 index aaf0f7f5..00000000 --- a/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/multistream_test.go +++ /dev/null @@ -1,259 +0,0 @@ -package multistream - -import ( - "crypto/rand" - "io" - "net" - "testing" - "time" -) - -func TestProtocolNegotiation(t *testing.T) { - a, b := net.Pipe() - - mux := NewMultistreamMuxer() - mux.AddHandler("/a", nil) - mux.AddHandler("/b", nil) - mux.AddHandler("/c", nil) - - done := make(chan struct{}) - go func() { - selected, _, err := mux.Negotiate(a) - if err != nil { - t.Fatal(err) - } - if selected != "/a" { - t.Fatal("incorrect protocol selected") - } - close(done) - }() - - err := SelectProtoOrFail("/a", b) - if err != nil { - t.Fatal(err) - } - - select { - case <-time.After(time.Second): - t.Fatal("protocol negotiation didnt complete") - case <-done: - } - - verifyPipe(t, a, b) -} - -func TestSelectOne(t *testing.T) { - a, b := net.Pipe() - - mux := NewMultistreamMuxer() - mux.AddHandler("/a", nil) - mux.AddHandler("/b", nil) - mux.AddHandler("/c", nil) - - done := make(chan struct{}) - go func() { - selected, _, err := mux.Negotiate(a) - if err != nil { - t.Fatal(err) - } - if selected != "/c" { - t.Fatal("incorrect protocol selected") - } - close(done) - }() - - sel, err := SelectOneOf([]string{"/d", "/e", "/c"}, b) - if err != nil { - t.Fatal(err) - } - - if sel != "/c" { - t.Fatal("selected wrong protocol") - } - - select { - case <-time.After(time.Second): - t.Fatal("protocol negotiation didnt complete") - case <-done: - } - - verifyPipe(t, a, b) -} - -func TestSelectOneAndWrite(t *testing.T) { - a, b := net.Pipe() - - mux := NewMultistreamMuxer() - mux.AddHandler("/a", nil) - mux.AddHandler("/b", nil) - mux.AddHandler("/c", nil) - - done := make(chan struct{}) - go func() { - selected, _, err := mux.Negotiate(a) - if err != nil { - t.Fatal(err) - } - if selected != "/c" { - t.Fatal("incorrect protocol selected") - } - close(done) - }() - - sel, err := SelectOneOf([]string{"/d", "/e", "/c"}, b) - if err != nil { - t.Fatal(err) - } - - if sel != "/c" { - t.Fatal("selected wrong protocol") - } - - select { - case <-time.After(time.Second): - t.Fatal("protocol negotiation didnt complete") - case <-done: - } - - verifyPipe(t, a, b) -} - -func TestLazyConns(t *testing.T) { - a, b := net.Pipe() - - mux := NewMultistreamMuxer() - mux.AddHandler("/a", nil) - mux.AddHandler("/b", nil) - mux.AddHandler("/c", nil) - - la := NewMSSelect(a, "/c") - lb := NewMSSelect(b, "/c") - - verifyPipe(t, la, lb) -} - -func TestLazyAndMux(t *testing.T) { - a, b := net.Pipe() - - mux := NewMultistreamMuxer() - mux.AddHandler("/a", nil) - mux.AddHandler("/b", nil) - mux.AddHandler("/c", nil) - - done := make(chan struct{}) - go func() { - selected, _, err := mux.Negotiate(a) - if err != nil { - t.Fatal(err) - } - if selected != "/c" { - t.Fatal("incorrect protocol selected") - } - - msg := make([]byte, 5) - _, err = a.Read(msg) - if err != nil { - t.Fatal(err) - } - - close(done) - }() - - lb := NewMSSelect(b, "/c") - - // do a write to push the handshake through - _, err := lb.Write([]byte("hello")) - if err != nil { - t.Fatal(err) - } - - select { - case <-time.After(time.Second): - t.Fatal("failed to complete in time") - case <-done: - } - - verifyPipe(t, a, lb) -} - -func TestLazyAndMuxWrite(t *testing.T) { - a, b := net.Pipe() - - mux := NewMultistreamMuxer() - mux.AddHandler("/a", nil) - mux.AddHandler("/b", nil) - mux.AddHandler("/c", nil) - - done := make(chan struct{}) - go func() { - selected, _, err := mux.Negotiate(a) - if err != nil { - t.Fatal(err) - } - if selected != "/c" { - t.Fatal("incorrect protocol selected") - } - - _, err = a.Write([]byte("hello")) - if err != nil { - t.Fatal(err) - } - - close(done) - }() - - lb := NewMSSelect(b, "/c") - - // do a write to push the handshake through - msg := make([]byte, 5) - _, err := lb.Read(msg) - if err != nil { - t.Fatal(err) - } - - if string(msg) != "hello" { - t.Fatal("wrong!") - } - - select { - case <-time.After(time.Second): - t.Fatal("failed to complete in time") - case <-done: - } - - verifyPipe(t, a, lb) -} - -func verifyPipe(t *testing.T, a, b io.ReadWriter) { - mes := make([]byte, 1024) - rand.Read(mes) - go func() { - b.Write(mes) - a.Write(mes) - }() - - buf := make([]byte, len(mes)) - n, err := a.Read(buf) - if err != nil { - t.Fatal(err) - } - if n != len(buf) { - t.Fatal("failed to read enough") - } - - if string(buf) != string(mes) { - t.Fatal("somehow read wrong message") - } - - n, err = b.Read(buf) - if err != nil { - t.Fatal(err) - } - if n != len(buf) { - t.Fatal("failed to read enough") - } - - if string(buf) != string(mes) { - t.Fatal("somehow read wrong message") - } -} diff --git a/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/package.json b/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/package.json deleted file mode 100644 index 9cabfed5..00000000 --- a/vendor/gx/QmdrbcnPVM2FnZQQM7p2GU91XhpuyYyd1tzPouEyh1phyD/go-multistream/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "go-multistream", - "author": "whyrusleeping", - "version": "1.0.0", - "language": "go", - "gx": { - "dvcsimport": "github.com/whyrusleeping/go-multistream" - } -} \ No newline at end of file diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/.gxignore b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/LICENSE b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/LICENSE deleted file mode 100644 index 363fa9ee..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -Copyright 2012 Richard Crowley. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. 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. - -THIS SOFTWARE IS PROVIDED BY RICHARD CROWLEY ``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 RICHARD CROWLEY 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. - -The views and conclusions contained in the software and documentation -are those of the authors and should not be interpreted as representing -official policies, either expressed or implied, of Richard Crowley. diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/README.md b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/README.md deleted file mode 100644 index e0091a4b..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/README.md +++ /dev/null @@ -1,104 +0,0 @@ -go-metrics -========== - -Go port of Coda Hale's Metrics library: . - -Documentation: . - -Usage ------ - -Create and update metrics: - -```go -c := metrics.NewCounter() -metrics.Register("foo", c) -c.Inc(47) - -g := metrics.NewGauge() -metrics.Register("bar", g) -g.Update(47) - -s := metrics.NewExpDecaySample(1028, 0.015) // or metrics.NewUniformSample(1028) -h := metrics.NewHistogram(s) -metrics.Register("baz", h) -h.Update(47) - -m := metrics.NewMeter() -metrics.Register("quux", m) -m.Mark(47) - -t := metrics.NewTimer() -metrics.Register("bang", t) -t.Time(func() {}) -t.Update(47) -``` - -Periodically log every metric in human-readable form to standard error: - -```go -go metrics.Log(metrics.DefaultRegistry, 60e9, log.New(os.Stderr, "metrics: ", log.Lmicroseconds)) -``` - -Periodically log every metric in slightly-more-parseable form to syslog: - -```go -w, _ := syslog.Dial("unixgram", "/dev/log", syslog.LOG_INFO, "metrics") -go metrics.Syslog(metrics.DefaultRegistry, 60e9, w) -``` - -Periodically emit every metric to Graphite: - -```go -addr, _ := net.ResolveTCPAddr("tcp", "127.0.0.1:2003") -go metrics.Graphite(metrics.DefaultRegistry, 10e9, "metrics", addr) -``` - -Periodically emit every metric into InfluxDB: - -```go -import "github.com/rcrowley/go-metrics/influxdb" - -go influxdb.Influxdb(metrics.DefaultRegistry, 10e9, &influxdb.Config{ - Host: "127.0.0.1:8086", - Database: "metrics", - Username: "test", - Password: "test", -}) -``` - -Periodically upload every metric to Librato: - -```go -import "github.com/rcrowley/go-metrics/librato" - -go librato.Librato(metrics.DefaultRegistry, - 10e9, // interval - "example@example.com", // account owner email address - "token", // Librato API token - "hostname", // source - []float64{0.95}, // precentiles to send - time.Millisecond, // time unit -) -``` - -Periodically emit every metric to StatHat: - -```go -import "github.com/rcrowley/go-metrics/stathat" - -go stathat.Stathat(metrics.DefaultRegistry, 10e9, "example@example.com") -``` - -Installation ------------- - -```sh -go get github.com/rcrowley/go-metrics -``` - -StatHat support additionally requires their Go client: - -```sh -go get github.com/stathat/go -``` diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/counter.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/counter.go deleted file mode 100644 index bb7b039c..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/counter.go +++ /dev/null @@ -1,112 +0,0 @@ -package metrics - -import "sync/atomic" - -// Counters hold an int64 value that can be incremented and decremented. -type Counter interface { - Clear() - Count() int64 - Dec(int64) - Inc(int64) - Snapshot() Counter -} - -// GetOrRegisterCounter returns an existing Counter or constructs and registers -// a new StandardCounter. -func GetOrRegisterCounter(name string, r Registry) Counter { - if nil == r { - r = DefaultRegistry - } - return r.GetOrRegister(name, NewCounter).(Counter) -} - -// NewCounter constructs a new StandardCounter. -func NewCounter() Counter { - if UseNilMetrics { - return NilCounter{} - } - return &StandardCounter{0} -} - -// NewRegisteredCounter constructs and registers a new StandardCounter. -func NewRegisteredCounter(name string, r Registry) Counter { - c := NewCounter() - if nil == r { - r = DefaultRegistry - } - r.Register(name, c) - return c -} - -// CounterSnapshot is a read-only copy of another Counter. -type CounterSnapshot int64 - -// Clear panics. -func (CounterSnapshot) Clear() { - panic("Clear called on a CounterSnapshot") -} - -// Count returns the count at the time the snapshot was taken. -func (c CounterSnapshot) Count() int64 { return int64(c) } - -// Dec panics. -func (CounterSnapshot) Dec(int64) { - panic("Dec called on a CounterSnapshot") -} - -// Inc panics. -func (CounterSnapshot) Inc(int64) { - panic("Inc called on a CounterSnapshot") -} - -// Snapshot returns the snapshot. -func (c CounterSnapshot) Snapshot() Counter { return c } - -// NilCounter is a no-op Counter. -type NilCounter struct{} - -// Clear is a no-op. -func (NilCounter) Clear() {} - -// Count is a no-op. -func (NilCounter) Count() int64 { return 0 } - -// Dec is a no-op. -func (NilCounter) Dec(i int64) {} - -// Inc is a no-op. -func (NilCounter) Inc(i int64) {} - -// Snapshot is a no-op. -func (NilCounter) Snapshot() Counter { return NilCounter{} } - -// StandardCounter is the standard implementation of a Counter and uses the -// sync/atomic package to manage a single int64 value. -type StandardCounter struct { - count int64 -} - -// Clear sets the counter to zero. -func (c *StandardCounter) Clear() { - atomic.StoreInt64(&c.count, 0) -} - -// Count returns the current count. -func (c *StandardCounter) Count() int64 { - return atomic.LoadInt64(&c.count) -} - -// Dec decrements the counter by the given amount. -func (c *StandardCounter) Dec(i int64) { - atomic.AddInt64(&c.count, -i) -} - -// Inc increments the counter by the given amount. -func (c *StandardCounter) Inc(i int64) { - atomic.AddInt64(&c.count, i) -} - -// Snapshot returns a read-only copy of the counter. -func (c *StandardCounter) Snapshot() Counter { - return CounterSnapshot(c.Count()) -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/counter_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/counter_test.go deleted file mode 100644 index dfb03b4e..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/counter_test.go +++ /dev/null @@ -1,77 +0,0 @@ -package metrics - -import "testing" - -func BenchmarkCounter(b *testing.B) { - c := NewCounter() - b.ResetTimer() - for i := 0; i < b.N; i++ { - c.Inc(1) - } -} - -func TestCounterClear(t *testing.T) { - c := NewCounter() - c.Inc(1) - c.Clear() - if count := c.Count(); 0 != count { - t.Errorf("c.Count(): 0 != %v\n", count) - } -} - -func TestCounterDec1(t *testing.T) { - c := NewCounter() - c.Dec(1) - if count := c.Count(); -1 != count { - t.Errorf("c.Count(): -1 != %v\n", count) - } -} - -func TestCounterDec2(t *testing.T) { - c := NewCounter() - c.Dec(2) - if count := c.Count(); -2 != count { - t.Errorf("c.Count(): -2 != %v\n", count) - } -} - -func TestCounterInc1(t *testing.T) { - c := NewCounter() - c.Inc(1) - if count := c.Count(); 1 != count { - t.Errorf("c.Count(): 1 != %v\n", count) - } -} - -func TestCounterInc2(t *testing.T) { - c := NewCounter() - c.Inc(2) - if count := c.Count(); 2 != count { - t.Errorf("c.Count(): 2 != %v\n", count) - } -} - -func TestCounterSnapshot(t *testing.T) { - c := NewCounter() - c.Inc(1) - snapshot := c.Snapshot() - c.Inc(1) - if count := snapshot.Count(); 1 != count { - t.Errorf("c.Count(): 1 != %v\n", count) - } -} - -func TestCounterZero(t *testing.T) { - c := NewCounter() - if count := c.Count(); 0 != count { - t.Errorf("c.Count(): 0 != %v\n", count) - } -} - -func TestGetOrRegisterCounter(t *testing.T) { - r := NewRegistry() - NewRegisteredCounter("foo", r).Inc(47) - if c := GetOrRegisterCounter("foo", r); 47 != c.Count() { - t.Fatal(c) - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/debug.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/debug.go deleted file mode 100644 index 043ccefa..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/debug.go +++ /dev/null @@ -1,76 +0,0 @@ -package metrics - -import ( - "runtime/debug" - "time" -) - -var ( - debugMetrics struct { - GCStats struct { - LastGC Gauge - NumGC Gauge - Pause Histogram - //PauseQuantiles Histogram - PauseTotal Gauge - } - ReadGCStats Timer - } - gcStats debug.GCStats -) - -// Capture new values for the Go garbage collector statistics exported in -// debug.GCStats. This is designed to be called as a goroutine. -func CaptureDebugGCStats(r Registry, d time.Duration) { - for _ = range time.Tick(d) { - CaptureDebugGCStatsOnce(r) - } -} - -// Capture new values for the Go garbage collector statistics exported in -// debug.GCStats. This is designed to be called in a background goroutine. -// Giving a registry which has not been given to RegisterDebugGCStats will -// panic. -// -// Be careful (but much less so) with this because debug.ReadGCStats calls -// the C function runtime·lock(runtime·mheap) which, while not a stop-the-world -// operation, isn't something you want to be doing all the time. -func CaptureDebugGCStatsOnce(r Registry) { - lastGC := gcStats.LastGC - t := time.Now() - debug.ReadGCStats(&gcStats) - debugMetrics.ReadGCStats.UpdateSince(t) - - debugMetrics.GCStats.LastGC.Update(int64(gcStats.LastGC.UnixNano())) - debugMetrics.GCStats.NumGC.Update(int64(gcStats.NumGC)) - if lastGC != gcStats.LastGC && 0 < len(gcStats.Pause) { - debugMetrics.GCStats.Pause.Update(int64(gcStats.Pause[0])) - } - //debugMetrics.GCStats.PauseQuantiles.Update(gcStats.PauseQuantiles) - debugMetrics.GCStats.PauseTotal.Update(int64(gcStats.PauseTotal)) -} - -// Register metrics for the Go garbage collector statistics exported in -// debug.GCStats. The metrics are named by their fully-qualified Go symbols, -// i.e. debug.GCStats.PauseTotal. -func RegisterDebugGCStats(r Registry) { - debugMetrics.GCStats.LastGC = NewGauge() - debugMetrics.GCStats.NumGC = NewGauge() - debugMetrics.GCStats.Pause = NewHistogram(NewExpDecaySample(1028, 0.015)) - //debugMetrics.GCStats.PauseQuantiles = NewHistogram(NewExpDecaySample(1028, 0.015)) - debugMetrics.GCStats.PauseTotal = NewGauge() - debugMetrics.ReadGCStats = NewTimer() - - r.Register("debug.GCStats.LastGC", debugMetrics.GCStats.LastGC) - r.Register("debug.GCStats.NumGC", debugMetrics.GCStats.NumGC) - r.Register("debug.GCStats.Pause", debugMetrics.GCStats.Pause) - //r.Register("debug.GCStats.PauseQuantiles", debugMetrics.GCStats.PauseQuantiles) - r.Register("debug.GCStats.PauseTotal", debugMetrics.GCStats.PauseTotal) - r.Register("debug.ReadGCStats", debugMetrics.ReadGCStats) -} - -// Allocate an initial slice for gcStats.Pause to avoid allocations during -// normal operation. -func init() { - gcStats.Pause = make([]time.Duration, 11) -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/debug_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/debug_test.go deleted file mode 100644 index 07eb8678..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/debug_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package metrics - -import ( - "runtime" - "runtime/debug" - "testing" - "time" -) - -func BenchmarkDebugGCStats(b *testing.B) { - r := NewRegistry() - RegisterDebugGCStats(r) - b.ResetTimer() - for i := 0; i < b.N; i++ { - CaptureDebugGCStatsOnce(r) - } -} - -func TestDebugGCStatsBlocking(t *testing.T) { - if g := runtime.GOMAXPROCS(0); g < 2 { - t.Skipf("skipping TestDebugGCMemStatsBlocking with GOMAXPROCS=%d\n", g) - return - } - ch := make(chan int) - go testDebugGCStatsBlocking(ch) - var gcStats debug.GCStats - t0 := time.Now() - debug.ReadGCStats(&gcStats) - t1 := time.Now() - t.Log("i++ during debug.ReadGCStats:", <-ch) - go testDebugGCStatsBlocking(ch) - d := t1.Sub(t0) - t.Log(d) - time.Sleep(d) - t.Log("i++ during time.Sleep:", <-ch) -} - -func testDebugGCStatsBlocking(ch chan int) { - i := 0 - for { - select { - case ch <- i: - return - default: - i++ - } - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/ewma.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/ewma.go deleted file mode 100644 index 3a3f9af3..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/ewma.go +++ /dev/null @@ -1,123 +0,0 @@ -package metrics - -import ( - "math" - "sync" - "sync/atomic" -) - -// EWMAs continuously calculate an exponentially-weighted moving average -// based on an outside source of clock ticks. -type EWMA interface { - Rate() float64 - Snapshot() EWMA - Tick() - Update(int64) -} - -// NewEWMA constructs a new EWMA with the given alpha. -func NewEWMA(alpha float64) EWMA { - if UseNilMetrics { - return NilEWMA{} - } - return &StandardEWMA{alpha: alpha} -} - -// NewEWMAFine constructs a new EWMA for a one-second moving average. -func NewEWMAFine() EWMA { - return NewEWMA(1 - math.Exp(-1.0)) -} - -// NewEWMA1 constructs a new EWMA for a one-minute moving average. -func NewEWMA1() EWMA { - return NewEWMA(1 - math.Exp(-5.0/60.0/1)) -} - -// NewEWMA5 constructs a new EWMA for a five-minute moving average. -func NewEWMA5() EWMA { - return NewEWMA(1 - math.Exp(-5.0/60.0/5)) -} - -// NewEWMA15 constructs a new EWMA for a fifteen-minute moving average. -func NewEWMA15() EWMA { - return NewEWMA(1 - math.Exp(-5.0/60.0/15)) -} - -// EWMASnapshot is a read-only copy of another EWMA. -type EWMASnapshot float64 - -// Rate returns the rate of events per second at the time the snapshot was -// taken. -func (a EWMASnapshot) Rate() float64 { return float64(a) } - -// Snapshot returns the snapshot. -func (a EWMASnapshot) Snapshot() EWMA { return a } - -// Tick panics. -func (EWMASnapshot) Tick() { - panic("Tick called on an EWMASnapshot") -} - -// Update panics. -func (EWMASnapshot) Update(int64) { - panic("Update called on an EWMASnapshot") -} - -// NilEWMA is a no-op EWMA. -type NilEWMA struct{} - -// Rate is a no-op. -func (NilEWMA) Rate() float64 { return 0.0 } - -// Snapshot is a no-op. -func (NilEWMA) Snapshot() EWMA { return NilEWMA{} } - -// Tick is a no-op. -func (NilEWMA) Tick() {} - -// Update is a no-op. -func (NilEWMA) Update(n int64) {} - -// StandardEWMA is the standard implementation of an EWMA and tracks the number -// of uncounted events and processes them on each tick. It uses the -// sync/atomic package to manage uncounted events. -type StandardEWMA struct { - uncounted int64 // /!\ this should be the first member to ensure 64-bit alignment - alpha float64 - rate float64 - init bool - mutex sync.Mutex -} - -// Rate returns the moving average rate of events per second. -func (a *StandardEWMA) Rate() float64 { - a.mutex.Lock() - defer a.mutex.Unlock() - return a.rate * float64(1e9) -} - -// Snapshot returns a read-only copy of the EWMA. -func (a *StandardEWMA) Snapshot() EWMA { - return EWMASnapshot(a.Rate()) -} - -// Tick ticks the clock to update the moving average. It assumes it is called -// every five seconds. -func (a *StandardEWMA) Tick() { - count := atomic.LoadInt64(&a.uncounted) - atomic.AddInt64(&a.uncounted, -count) - instantRate := float64(count) / float64(5e9) - a.mutex.Lock() - defer a.mutex.Unlock() - if a.init { - a.rate += a.alpha * (instantRate - a.rate) - } else { - a.init = true - a.rate = instantRate - } -} - -// Update adds n uncounted events. -func (a *StandardEWMA) Update(n int64) { - atomic.AddInt64(&a.uncounted, n) -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/ewma_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/ewma_test.go deleted file mode 100644 index 0430fbd2..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/ewma_test.go +++ /dev/null @@ -1,225 +0,0 @@ -package metrics - -import "testing" - -func BenchmarkEWMA(b *testing.B) { - a := NewEWMA1() - b.ResetTimer() - for i := 0; i < b.N; i++ { - a.Update(1) - a.Tick() - } -} - -func TestEWMA1(t *testing.T) { - a := NewEWMA1() - a.Update(3) - a.Tick() - if rate := a.Rate(); 0.6 != rate { - t.Errorf("initial a.Rate(): 0.6 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.22072766470286553 != rate { - t.Errorf("1 minute a.Rate(): 0.22072766470286553 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.08120116994196772 != rate { - t.Errorf("2 minute a.Rate(): 0.08120116994196772 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.029872241020718428 != rate { - t.Errorf("3 minute a.Rate(): 0.029872241020718428 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.01098938333324054 != rate { - t.Errorf("4 minute a.Rate(): 0.01098938333324054 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.004042768199451294 != rate { - t.Errorf("5 minute a.Rate(): 0.004042768199451294 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.0014872513059998212 != rate { - t.Errorf("6 minute a.Rate(): 0.0014872513059998212 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.0005471291793327122 != rate { - t.Errorf("7 minute a.Rate(): 0.0005471291793327122 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.00020127757674150815 != rate { - t.Errorf("8 minute a.Rate(): 0.00020127757674150815 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 7.404588245200814e-05 != rate { - t.Errorf("9 minute a.Rate(): 7.404588245200814e-05 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 2.7239957857491083e-05 != rate { - t.Errorf("10 minute a.Rate(): 2.7239957857491083e-05 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 1.0021020474147462e-05 != rate { - t.Errorf("11 minute a.Rate(): 1.0021020474147462e-05 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 3.6865274119969525e-06 != rate { - t.Errorf("12 minute a.Rate(): 3.6865274119969525e-06 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 1.3561976441886433e-06 != rate { - t.Errorf("13 minute a.Rate(): 1.3561976441886433e-06 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 4.989172314621449e-07 != rate { - t.Errorf("14 minute a.Rate(): 4.989172314621449e-07 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 1.8354139230109722e-07 != rate { - t.Errorf("15 minute a.Rate(): 1.8354139230109722e-07 != %v\n", rate) - } -} - -func TestEWMA5(t *testing.T) { - a := NewEWMA5() - a.Update(3) - a.Tick() - if rate := a.Rate(); 0.6 != rate { - t.Errorf("initial a.Rate(): 0.6 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.49123845184678905 != rate { - t.Errorf("1 minute a.Rate(): 0.49123845184678905 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.4021920276213837 != rate { - t.Errorf("2 minute a.Rate(): 0.4021920276213837 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.32928698165641596 != rate { - t.Errorf("3 minute a.Rate(): 0.32928698165641596 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.269597378470333 != rate { - t.Errorf("4 minute a.Rate(): 0.269597378470333 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.2207276647028654 != rate { - t.Errorf("5 minute a.Rate(): 0.2207276647028654 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.18071652714732128 != rate { - t.Errorf("6 minute a.Rate(): 0.18071652714732128 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.14795817836496392 != rate { - t.Errorf("7 minute a.Rate(): 0.14795817836496392 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.12113791079679326 != rate { - t.Errorf("8 minute a.Rate(): 0.12113791079679326 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.09917933293295193 != rate { - t.Errorf("9 minute a.Rate(): 0.09917933293295193 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.08120116994196763 != rate { - t.Errorf("10 minute a.Rate(): 0.08120116994196763 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.06648189501740036 != rate { - t.Errorf("11 minute a.Rate(): 0.06648189501740036 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.05443077197364752 != rate { - t.Errorf("12 minute a.Rate(): 0.05443077197364752 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.04456414692860035 != rate { - t.Errorf("13 minute a.Rate(): 0.04456414692860035 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.03648603757513079 != rate { - t.Errorf("14 minute a.Rate(): 0.03648603757513079 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.0298722410207183831020718428 != rate { - t.Errorf("15 minute a.Rate(): 0.0298722410207183831020718428 != %v\n", rate) - } -} - -func TestEWMA15(t *testing.T) { - a := NewEWMA15() - a.Update(3) - a.Tick() - if rate := a.Rate(); 0.6 != rate { - t.Errorf("initial a.Rate(): 0.6 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.5613041910189706 != rate { - t.Errorf("1 minute a.Rate(): 0.5613041910189706 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.5251039914257684 != rate { - t.Errorf("2 minute a.Rate(): 0.5251039914257684 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.4912384518467888184678905 != rate { - t.Errorf("3 minute a.Rate(): 0.4912384518467888184678905 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.459557003018789 != rate { - t.Errorf("4 minute a.Rate(): 0.459557003018789 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.4299187863442732 != rate { - t.Errorf("5 minute a.Rate(): 0.4299187863442732 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.4021920276213831 != rate { - t.Errorf("6 minute a.Rate(): 0.4021920276213831 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.37625345116383313 != rate { - t.Errorf("7 minute a.Rate(): 0.37625345116383313 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.3519877317060185 != rate { - t.Errorf("8 minute a.Rate(): 0.3519877317060185 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.3292869816564153165641596 != rate { - t.Errorf("9 minute a.Rate(): 0.3292869816564153165641596 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.3080502714195546 != rate { - t.Errorf("10 minute a.Rate(): 0.3080502714195546 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.2881831806538789 != rate { - t.Errorf("11 minute a.Rate(): 0.2881831806538789 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.26959737847033216 != rate { - t.Errorf("12 minute a.Rate(): 0.26959737847033216 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.2522102307052083 != rate { - t.Errorf("13 minute a.Rate(): 0.2522102307052083 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.23594443252115815 != rate { - t.Errorf("14 minute a.Rate(): 0.23594443252115815 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); 0.2207276647028646247028654470286553 != rate { - t.Errorf("15 minute a.Rate(): 0.2207276647028646247028654470286553 != %v\n", rate) - } -} - -func elapseMinute(a EWMA) { - for i := 0; i < 12; i++ { - a.Tick() - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge.go deleted file mode 100644 index 807638a3..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge.go +++ /dev/null @@ -1,84 +0,0 @@ -package metrics - -import "sync/atomic" - -// Gauges hold an int64 value that can be set arbitrarily. -type Gauge interface { - Snapshot() Gauge - Update(int64) - Value() int64 -} - -// GetOrRegisterGauge returns an existing Gauge or constructs and registers a -// new StandardGauge. -func GetOrRegisterGauge(name string, r Registry) Gauge { - if nil == r { - r = DefaultRegistry - } - return r.GetOrRegister(name, NewGauge).(Gauge) -} - -// NewGauge constructs a new StandardGauge. -func NewGauge() Gauge { - if UseNilMetrics { - return NilGauge{} - } - return &StandardGauge{0} -} - -// NewRegisteredGauge constructs and registers a new StandardGauge. -func NewRegisteredGauge(name string, r Registry) Gauge { - c := NewGauge() - if nil == r { - r = DefaultRegistry - } - r.Register(name, c) - return c -} - -// GaugeSnapshot is a read-only copy of another Gauge. -type GaugeSnapshot int64 - -// Snapshot returns the snapshot. -func (g GaugeSnapshot) Snapshot() Gauge { return g } - -// Update panics. -func (GaugeSnapshot) Update(int64) { - panic("Update called on a GaugeSnapshot") -} - -// Value returns the value at the time the snapshot was taken. -func (g GaugeSnapshot) Value() int64 { return int64(g) } - -// NilGauge is a no-op Gauge. -type NilGauge struct{} - -// Snapshot is a no-op. -func (NilGauge) Snapshot() Gauge { return NilGauge{} } - -// Update is a no-op. -func (NilGauge) Update(v int64) {} - -// Value is a no-op. -func (NilGauge) Value() int64 { return 0 } - -// StandardGauge is the standard implementation of a Gauge and uses the -// sync/atomic package to manage a single int64 value. -type StandardGauge struct { - value int64 -} - -// Snapshot returns a read-only copy of the gauge. -func (g *StandardGauge) Snapshot() Gauge { - return GaugeSnapshot(g.Value()) -} - -// Update updates the gauge's value. -func (g *StandardGauge) Update(v int64) { - atomic.StoreInt64(&g.value, v) -} - -// Value returns the gauge's current value. -func (g *StandardGauge) Value() int64 { - return atomic.LoadInt64(&g.value) -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge_float64.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge_float64.go deleted file mode 100644 index 47c3566c..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge_float64.go +++ /dev/null @@ -1,91 +0,0 @@ -package metrics - -import "sync" - -// GaugeFloat64s hold a float64 value that can be set arbitrarily. -type GaugeFloat64 interface { - Snapshot() GaugeFloat64 - Update(float64) - Value() float64 -} - -// GetOrRegisterGaugeFloat64 returns an existing GaugeFloat64 or constructs and registers a -// new StandardGaugeFloat64. -func GetOrRegisterGaugeFloat64(name string, r Registry) GaugeFloat64 { - if nil == r { - r = DefaultRegistry - } - return r.GetOrRegister(name, NewGaugeFloat64()).(GaugeFloat64) -} - -// NewGaugeFloat64 constructs a new StandardGaugeFloat64. -func NewGaugeFloat64() GaugeFloat64 { - if UseNilMetrics { - return NilGaugeFloat64{} - } - return &StandardGaugeFloat64{ - value: 0.0, - } -} - -// NewRegisteredGaugeFloat64 constructs and registers a new StandardGaugeFloat64. -func NewRegisteredGaugeFloat64(name string, r Registry) GaugeFloat64 { - c := NewGaugeFloat64() - if nil == r { - r = DefaultRegistry - } - r.Register(name, c) - return c -} - -// GaugeFloat64Snapshot is a read-only copy of another GaugeFloat64. -type GaugeFloat64Snapshot float64 - -// Snapshot returns the snapshot. -func (g GaugeFloat64Snapshot) Snapshot() GaugeFloat64 { return g } - -// Update panics. -func (GaugeFloat64Snapshot) Update(float64) { - panic("Update called on a GaugeFloat64Snapshot") -} - -// Value returns the value at the time the snapshot was taken. -func (g GaugeFloat64Snapshot) Value() float64 { return float64(g) } - -// NilGauge is a no-op Gauge. -type NilGaugeFloat64 struct{} - -// Snapshot is a no-op. -func (NilGaugeFloat64) Snapshot() GaugeFloat64 { return NilGaugeFloat64{} } - -// Update is a no-op. -func (NilGaugeFloat64) Update(v float64) {} - -// Value is a no-op. -func (NilGaugeFloat64) Value() float64 { return 0.0 } - -// StandardGaugeFloat64 is the standard implementation of a GaugeFloat64 and uses -// sync.Mutex to manage a single float64 value. -type StandardGaugeFloat64 struct { - mutex sync.Mutex - value float64 -} - -// Snapshot returns a read-only copy of the gauge. -func (g *StandardGaugeFloat64) Snapshot() GaugeFloat64 { - return GaugeFloat64Snapshot(g.Value()) -} - -// Update updates the gauge's value. -func (g *StandardGaugeFloat64) Update(v float64) { - g.mutex.Lock() - defer g.mutex.Unlock() - g.value = v -} - -// Value returns the gauge's current value. -func (g *StandardGaugeFloat64) Value() float64 { - g.mutex.Lock() - defer g.mutex.Unlock() - return g.value -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge_float64_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge_float64_test.go deleted file mode 100644 index 5d0aae27..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge_float64_test.go +++ /dev/null @@ -1,38 +0,0 @@ -package metrics - -import "testing" - -func BenchmarkGuageFloat64(b *testing.B) { - g := NewGaugeFloat64() - b.ResetTimer() - for i := 0; i < b.N; i++ { - g.Update(float64(i)) - } -} - -func TestGaugeFloat64(t *testing.T) { - g := NewGaugeFloat64() - g.Update(float64(47.0)) - if v := g.Value(); float64(47.0) != v { - t.Errorf("g.Value(): 47.0 != %v\n", v) - } -} - -func TestGaugeFloat64Snapshot(t *testing.T) { - g := NewGaugeFloat64() - g.Update(float64(47.0)) - snapshot := g.Snapshot() - g.Update(float64(0)) - if v := snapshot.Value(); float64(47.0) != v { - t.Errorf("g.Value(): 47.0 != %v\n", v) - } -} - -func TestGetOrRegisterGaugeFloat64(t *testing.T) { - r := NewRegistry() - NewRegisteredGaugeFloat64("foo", r).Update(float64(47.0)) - t.Logf("registry: %v", r) - if g := GetOrRegisterGaugeFloat64("foo", r); float64(47.0) != g.Value() { - t.Fatal(g) - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge_test.go deleted file mode 100644 index 50849629..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/gauge_test.go +++ /dev/null @@ -1,37 +0,0 @@ -package metrics - -import "testing" - -func BenchmarkGuage(b *testing.B) { - g := NewGauge() - b.ResetTimer() - for i := 0; i < b.N; i++ { - g.Update(int64(i)) - } -} - -func TestGauge(t *testing.T) { - g := NewGauge() - g.Update(int64(47)) - if v := g.Value(); 47 != v { - t.Errorf("g.Value(): 47 != %v\n", v) - } -} - -func TestGaugeSnapshot(t *testing.T) { - g := NewGauge() - g.Update(int64(47)) - snapshot := g.Snapshot() - g.Update(int64(0)) - if v := snapshot.Value(); 47 != v { - t.Errorf("g.Value(): 47 != %v\n", v) - } -} - -func TestGetOrRegisterGauge(t *testing.T) { - r := NewRegistry() - NewRegisteredGauge("foo", r).Update(47) - if g := GetOrRegisterGauge("foo", r); 47 != g.Value() { - t.Fatal(g) - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/graphite.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/graphite.go deleted file mode 100644 index 604b26da..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/graphite.go +++ /dev/null @@ -1,111 +0,0 @@ -package metrics - -import ( - "bufio" - "fmt" - "log" - "net" - "strconv" - "strings" - "time" -) - -// GraphiteConfig provides a container with configuration parameters for -// the Graphite exporter -type GraphiteConfig struct { - Addr *net.TCPAddr // Network address to connect to - Registry Registry // Registry to be exported - FlushInterval time.Duration // Flush interval - DurationUnit time.Duration // Time conversion unit for durations - Prefix string // Prefix to be prepended to metric names - Percentiles []float64 // Percentiles to export from timers and histograms -} - -// Graphite is a blocking exporter function which reports metrics in r -// to a graphite server located at addr, flushing them every d duration -// and prepending metric names with prefix. -func Graphite(r Registry, d time.Duration, prefix string, addr *net.TCPAddr) { - GraphiteWithConfig(GraphiteConfig{ - Addr: addr, - Registry: r, - FlushInterval: d, - DurationUnit: time.Nanosecond, - Prefix: prefix, - Percentiles: []float64{0.5, 0.75, 0.95, 0.99, 0.999}, - }) -} - -// GraphiteWithConfig is a blocking exporter function just like Graphite, -// but it takes a GraphiteConfig instead. -func GraphiteWithConfig(c GraphiteConfig) { - for _ = range time.Tick(c.FlushInterval) { - if err := graphite(&c); nil != err { - log.Println(err) - } - } -} - -// GraphiteOnce performs a single submission to Graphite, returning a -// non-nil error on failed connections. This can be used in a loop -// similar to GraphiteWithConfig for custom error handling. -func GraphiteOnce(c GraphiteConfig) error { - return graphite(&c) -} - -func graphite(c *GraphiteConfig) error { - now := time.Now().Unix() - du := float64(c.DurationUnit) - conn, err := net.DialTCP("tcp", nil, c.Addr) - if nil != err { - return err - } - defer conn.Close() - w := bufio.NewWriter(conn) - c.Registry.Each(func(name string, i interface{}) { - switch metric := i.(type) { - case Counter: - fmt.Fprintf(w, "%s.%s.count %d %d\n", c.Prefix, name, metric.Count(), now) - case Gauge: - fmt.Fprintf(w, "%s.%s.value %d %d\n", c.Prefix, name, metric.Value(), now) - case GaugeFloat64: - fmt.Fprintf(w, "%s.%s.value %f %d\n", c.Prefix, name, metric.Value(), now) - case Histogram: - h := metric.Snapshot() - ps := h.Percentiles(c.Percentiles) - fmt.Fprintf(w, "%s.%s.count %d %d\n", c.Prefix, name, h.Count(), now) - fmt.Fprintf(w, "%s.%s.min %d %d\n", c.Prefix, name, h.Min(), now) - fmt.Fprintf(w, "%s.%s.max %d %d\n", c.Prefix, name, h.Max(), now) - fmt.Fprintf(w, "%s.%s.mean %.2f %d\n", c.Prefix, name, h.Mean(), now) - fmt.Fprintf(w, "%s.%s.std-dev %.2f %d\n", c.Prefix, name, h.StdDev(), now) - for psIdx, psKey := range c.Percentiles { - key := strings.Replace(strconv.FormatFloat(psKey*100.0, 'f', -1, 64), ".", "", 1) - fmt.Fprintf(w, "%s.%s.%s-percentile %.2f %d\n", c.Prefix, name, key, ps[psIdx], now) - } - case Meter: - m := metric.Snapshot() - fmt.Fprintf(w, "%s.%s.count %d %d\n", c.Prefix, name, m.Count(), now) - fmt.Fprintf(w, "%s.%s.one-minute %.2f %d\n", c.Prefix, name, m.Rate1(), now) - fmt.Fprintf(w, "%s.%s.five-minute %.2f %d\n", c.Prefix, name, m.Rate5(), now) - fmt.Fprintf(w, "%s.%s.fifteen-minute %.2f %d\n", c.Prefix, name, m.Rate15(), now) - fmt.Fprintf(w, "%s.%s.mean %.2f %d\n", c.Prefix, name, m.RateMean(), now) - case Timer: - t := metric.Snapshot() - ps := t.Percentiles(c.Percentiles) - fmt.Fprintf(w, "%s.%s.count %d %d\n", c.Prefix, name, t.Count(), now) - fmt.Fprintf(w, "%s.%s.min %d %d\n", c.Prefix, name, t.Min()/int64(du), now) - fmt.Fprintf(w, "%s.%s.max %d %d\n", c.Prefix, name, t.Max()/int64(du), now) - fmt.Fprintf(w, "%s.%s.mean %.2f %d\n", c.Prefix, name, t.Mean()/du, now) - fmt.Fprintf(w, "%s.%s.std-dev %.2f %d\n", c.Prefix, name, t.StdDev()/du, now) - for psIdx, psKey := range c.Percentiles { - key := strings.Replace(strconv.FormatFloat(psKey*100.0, 'f', -1, 64), ".", "", 1) - fmt.Fprintf(w, "%s.%s.%s-percentile %.2f %d\n", c.Prefix, name, key, ps[psIdx], now) - } - fmt.Fprintf(w, "%s.%s.one-minute %.2f %d\n", c.Prefix, name, t.Rate1(), now) - fmt.Fprintf(w, "%s.%s.five-minute %.2f %d\n", c.Prefix, name, t.Rate5(), now) - fmt.Fprintf(w, "%s.%s.fifteen-minute %.2f %d\n", c.Prefix, name, t.Rate15(), now) - fmt.Fprintf(w, "%s.%s.mean-rate %.2f %d\n", c.Prefix, name, t.RateMean(), now) - } - w.Flush() - }) - return nil -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/graphite_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/graphite_test.go deleted file mode 100644 index b49dc4bb..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/graphite_test.go +++ /dev/null @@ -1,22 +0,0 @@ -package metrics - -import ( - "net" - "time" -) - -func ExampleGraphite() { - addr, _ := net.ResolveTCPAddr("net", ":2003") - go Graphite(DefaultRegistry, 1*time.Second, "some.prefix", addr) -} - -func ExampleGraphiteWithConfig() { - addr, _ := net.ResolveTCPAddr("net", ":2003") - go GraphiteWithConfig(GraphiteConfig{ - Addr: addr, - Registry: DefaultRegistry, - FlushInterval: 1 * time.Second, - DurationUnit: time.Millisecond, - Percentiles: []float64{ 0.5, 0.75, 0.99, 0.999 }, - }) -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/healthcheck.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/healthcheck.go deleted file mode 100644 index 445131ca..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/healthcheck.go +++ /dev/null @@ -1,61 +0,0 @@ -package metrics - -// Healthchecks hold an error value describing an arbitrary up/down status. -type Healthcheck interface { - Check() - Error() error - Healthy() - Unhealthy(error) -} - -// NewHealthcheck constructs a new Healthcheck which will use the given -// function to update its status. -func NewHealthcheck(f func(Healthcheck)) Healthcheck { - if UseNilMetrics { - return NilHealthcheck{} - } - return &StandardHealthcheck{nil, f} -} - -// NilHealthcheck is a no-op. -type NilHealthcheck struct{} - -// Check is a no-op. -func (NilHealthcheck) Check() {} - -// Error is a no-op. -func (NilHealthcheck) Error() error { return nil } - -// Healthy is a no-op. -func (NilHealthcheck) Healthy() {} - -// Unhealthy is a no-op. -func (NilHealthcheck) Unhealthy(error) {} - -// StandardHealthcheck is the standard implementation of a Healthcheck and -// stores the status and a function to call to update the status. -type StandardHealthcheck struct { - err error - f func(Healthcheck) -} - -// Check runs the healthcheck function to update the healthcheck's status. -func (h *StandardHealthcheck) Check() { - h.f(h) -} - -// Error returns the healthcheck's status, which will be nil if it is healthy. -func (h *StandardHealthcheck) Error() error { - return h.err -} - -// Healthy marks the healthcheck as healthy. -func (h *StandardHealthcheck) Healthy() { - h.err = nil -} - -// Unhealthy marks the healthcheck as unhealthy. The error is stored and -// may be retrieved by the Error method. -func (h *StandardHealthcheck) Unhealthy(err error) { - h.err = err -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/histogram.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/histogram.go deleted file mode 100644 index dbc837fe..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/histogram.go +++ /dev/null @@ -1,202 +0,0 @@ -package metrics - -// Histograms calculate distribution statistics from a series of int64 values. -type Histogram interface { - Clear() - Count() int64 - Max() int64 - Mean() float64 - Min() int64 - Percentile(float64) float64 - Percentiles([]float64) []float64 - Sample() Sample - Snapshot() Histogram - StdDev() float64 - Sum() int64 - Update(int64) - Variance() float64 -} - -// GetOrRegisterHistogram returns an existing Histogram or constructs and -// registers a new StandardHistogram. -func GetOrRegisterHistogram(name string, r Registry, s Sample) Histogram { - if nil == r { - r = DefaultRegistry - } - return r.GetOrRegister(name, func() Histogram { return NewHistogram(s) }).(Histogram) -} - -// NewHistogram constructs a new StandardHistogram from a Sample. -func NewHistogram(s Sample) Histogram { - if UseNilMetrics { - return NilHistogram{} - } - return &StandardHistogram{sample: s} -} - -// NewRegisteredHistogram constructs and registers a new StandardHistogram from -// a Sample. -func NewRegisteredHistogram(name string, r Registry, s Sample) Histogram { - c := NewHistogram(s) - if nil == r { - r = DefaultRegistry - } - r.Register(name, c) - return c -} - -// HistogramSnapshot is a read-only copy of another Histogram. -type HistogramSnapshot struct { - sample *SampleSnapshot -} - -// Clear panics. -func (*HistogramSnapshot) Clear() { - panic("Clear called on a HistogramSnapshot") -} - -// Count returns the number of samples recorded at the time the snapshot was -// taken. -func (h *HistogramSnapshot) Count() int64 { return h.sample.Count() } - -// Max returns the maximum value in the sample at the time the snapshot was -// taken. -func (h *HistogramSnapshot) Max() int64 { return h.sample.Max() } - -// Mean returns the mean of the values in the sample at the time the snapshot -// was taken. -func (h *HistogramSnapshot) Mean() float64 { return h.sample.Mean() } - -// Min returns the minimum value in the sample at the time the snapshot was -// taken. -func (h *HistogramSnapshot) Min() int64 { return h.sample.Min() } - -// Percentile returns an arbitrary percentile of values in the sample at the -// time the snapshot was taken. -func (h *HistogramSnapshot) Percentile(p float64) float64 { - return h.sample.Percentile(p) -} - -// Percentiles returns a slice of arbitrary percentiles of values in the sample -// at the time the snapshot was taken. -func (h *HistogramSnapshot) Percentiles(ps []float64) []float64 { - return h.sample.Percentiles(ps) -} - -// Sample returns the Sample underlying the histogram. -func (h *HistogramSnapshot) Sample() Sample { return h.sample } - -// Snapshot returns the snapshot. -func (h *HistogramSnapshot) Snapshot() Histogram { return h } - -// StdDev returns the standard deviation of the values in the sample at the -// time the snapshot was taken. -func (h *HistogramSnapshot) StdDev() float64 { return h.sample.StdDev() } - -// Sum returns the sum in the sample at the time the snapshot was taken. -func (h *HistogramSnapshot) Sum() int64 { return h.sample.Sum() } - -// Update panics. -func (*HistogramSnapshot) Update(int64) { - panic("Update called on a HistogramSnapshot") -} - -// Variance returns the variance of inputs at the time the snapshot was taken. -func (h *HistogramSnapshot) Variance() float64 { return h.sample.Variance() } - -// NilHistogram is a no-op Histogram. -type NilHistogram struct{} - -// Clear is a no-op. -func (NilHistogram) Clear() {} - -// Count is a no-op. -func (NilHistogram) Count() int64 { return 0 } - -// Max is a no-op. -func (NilHistogram) Max() int64 { return 0 } - -// Mean is a no-op. -func (NilHistogram) Mean() float64 { return 0.0 } - -// Min is a no-op. -func (NilHistogram) Min() int64 { return 0 } - -// Percentile is a no-op. -func (NilHistogram) Percentile(p float64) float64 { return 0.0 } - -// Percentiles is a no-op. -func (NilHistogram) Percentiles(ps []float64) []float64 { - return make([]float64, len(ps)) -} - -// Sample is a no-op. -func (NilHistogram) Sample() Sample { return NilSample{} } - -// Snapshot is a no-op. -func (NilHistogram) Snapshot() Histogram { return NilHistogram{} } - -// StdDev is a no-op. -func (NilHistogram) StdDev() float64 { return 0.0 } - -// Sum is a no-op. -func (NilHistogram) Sum() int64 { return 0 } - -// Update is a no-op. -func (NilHistogram) Update(v int64) {} - -// Variance is a no-op. -func (NilHistogram) Variance() float64 { return 0.0 } - -// StandardHistogram is the standard implementation of a Histogram and uses a -// Sample to bound its memory use. -type StandardHistogram struct { - sample Sample -} - -// Clear clears the histogram and its sample. -func (h *StandardHistogram) Clear() { h.sample.Clear() } - -// Count returns the number of samples recorded since the histogram was last -// cleared. -func (h *StandardHistogram) Count() int64 { return h.sample.Count() } - -// Max returns the maximum value in the sample. -func (h *StandardHistogram) Max() int64 { return h.sample.Max() } - -// Mean returns the mean of the values in the sample. -func (h *StandardHistogram) Mean() float64 { return h.sample.Mean() } - -// Min returns the minimum value in the sample. -func (h *StandardHistogram) Min() int64 { return h.sample.Min() } - -// Percentile returns an arbitrary percentile of the values in the sample. -func (h *StandardHistogram) Percentile(p float64) float64 { - return h.sample.Percentile(p) -} - -// Percentiles returns a slice of arbitrary percentiles of the values in the -// sample. -func (h *StandardHistogram) Percentiles(ps []float64) []float64 { - return h.sample.Percentiles(ps) -} - -// Sample returns the Sample underlying the histogram. -func (h *StandardHistogram) Sample() Sample { return h.sample } - -// Snapshot returns a read-only copy of the histogram. -func (h *StandardHistogram) Snapshot() Histogram { - return &HistogramSnapshot{sample: h.sample.Snapshot().(*SampleSnapshot)} -} - -// StdDev returns the standard deviation of the values in the sample. -func (h *StandardHistogram) StdDev() float64 { return h.sample.StdDev() } - -// Sum returns the sum in the sample. -func (h *StandardHistogram) Sum() int64 { return h.sample.Sum() } - -// Update samples a new value. -func (h *StandardHistogram) Update(v int64) { h.sample.Update(v) } - -// Variance returns the variance of the values in the sample. -func (h *StandardHistogram) Variance() float64 { return h.sample.Variance() } diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/histogram_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/histogram_test.go deleted file mode 100644 index d7f4f017..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/histogram_test.go +++ /dev/null @@ -1,95 +0,0 @@ -package metrics - -import "testing" - -func BenchmarkHistogram(b *testing.B) { - h := NewHistogram(NewUniformSample(100)) - b.ResetTimer() - for i := 0; i < b.N; i++ { - h.Update(int64(i)) - } -} - -func TestGetOrRegisterHistogram(t *testing.T) { - r := NewRegistry() - s := NewUniformSample(100) - NewRegisteredHistogram("foo", r, s).Update(47) - if h := GetOrRegisterHistogram("foo", r, s); 1 != h.Count() { - t.Fatal(h) - } -} - -func TestHistogram10000(t *testing.T) { - h := NewHistogram(NewUniformSample(100000)) - for i := 1; i <= 10000; i++ { - h.Update(int64(i)) - } - testHistogram10000(t, h) -} - -func TestHistogramEmpty(t *testing.T) { - h := NewHistogram(NewUniformSample(100)) - if count := h.Count(); 0 != count { - t.Errorf("h.Count(): 0 != %v\n", count) - } - if min := h.Min(); 0 != min { - t.Errorf("h.Min(): 0 != %v\n", min) - } - if max := h.Max(); 0 != max { - t.Errorf("h.Max(): 0 != %v\n", max) - } - if mean := h.Mean(); 0.0 != mean { - t.Errorf("h.Mean(): 0.0 != %v\n", mean) - } - if stdDev := h.StdDev(); 0.0 != stdDev { - t.Errorf("h.StdDev(): 0.0 != %v\n", stdDev) - } - ps := h.Percentiles([]float64{0.5, 0.75, 0.99}) - if 0.0 != ps[0] { - t.Errorf("median: 0.0 != %v\n", ps[0]) - } - if 0.0 != ps[1] { - t.Errorf("75th percentile: 0.0 != %v\n", ps[1]) - } - if 0.0 != ps[2] { - t.Errorf("99th percentile: 0.0 != %v\n", ps[2]) - } -} - -func TestHistogramSnapshot(t *testing.T) { - h := NewHistogram(NewUniformSample(100000)) - for i := 1; i <= 10000; i++ { - h.Update(int64(i)) - } - snapshot := h.Snapshot() - h.Update(0) - testHistogram10000(t, snapshot) -} - -func testHistogram10000(t *testing.T, h Histogram) { - if count := h.Count(); 10000 != count { - t.Errorf("h.Count(): 10000 != %v\n", count) - } - if min := h.Min(); 1 != min { - t.Errorf("h.Min(): 1 != %v\n", min) - } - if max := h.Max(); 10000 != max { - t.Errorf("h.Max(): 10000 != %v\n", max) - } - if mean := h.Mean(); 5000.5 != mean { - t.Errorf("h.Mean(): 5000.5 != %v\n", mean) - } - if stdDev := h.StdDev(); 2886.751331514372 != stdDev { - t.Errorf("h.StdDev(): 2886.751331514372 != %v\n", stdDev) - } - ps := h.Percentiles([]float64{0.5, 0.75, 0.99}) - if 5000.5 != ps[0] { - t.Errorf("median: 5000.5 != %v\n", ps[0]) - } - if 7500.75 != ps[1] { - t.Errorf("75th percentile: 7500.75 != %v\n", ps[1]) - } - if 9900.99 != ps[2] { - t.Errorf("99th percentile: 9900.99 != %v\n", ps[2]) - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/json.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/json.go deleted file mode 100644 index 04a9c919..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/json.go +++ /dev/null @@ -1,83 +0,0 @@ -package metrics - -import ( - "encoding/json" - "io" - "time" -) - -// MarshalJSON returns a byte slice containing a JSON representation of all -// the metrics in the Registry. -func (r StandardRegistry) MarshalJSON() ([]byte, error) { - data := make(map[string]map[string]interface{}) - r.Each(func(name string, i interface{}) { - values := make(map[string]interface{}) - switch metric := i.(type) { - case Counter: - values["count"] = metric.Count() - case Gauge: - values["value"] = metric.Value() - case GaugeFloat64: - values["value"] = metric.Value() - case Healthcheck: - values["error"] = nil - metric.Check() - if err := metric.Error(); nil != err { - values["error"] = metric.Error().Error() - } - case Histogram: - h := metric.Snapshot() - ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - values["count"] = h.Count() - values["min"] = h.Min() - values["max"] = h.Max() - values["mean"] = h.Mean() - values["stddev"] = h.StdDev() - values["median"] = ps[0] - values["75%"] = ps[1] - values["95%"] = ps[2] - values["99%"] = ps[3] - values["99.9%"] = ps[4] - case Meter: - m := metric.Snapshot() - values["count"] = m.Count() - values["1m.rate"] = m.Rate1() - values["5m.rate"] = m.Rate5() - values["15m.rate"] = m.Rate15() - values["mean.rate"] = m.RateMean() - case Timer: - t := metric.Snapshot() - ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - values["count"] = t.Count() - values["min"] = t.Min() - values["max"] = t.Max() - values["mean"] = t.Mean() - values["stddev"] = t.StdDev() - values["median"] = ps[0] - values["75%"] = ps[1] - values["95%"] = ps[2] - values["99%"] = ps[3] - values["99.9%"] = ps[4] - values["1m.rate"] = t.Rate1() - values["5m.rate"] = t.Rate5() - values["15m.rate"] = t.Rate15() - values["mean.rate"] = t.RateMean() - } - data[name] = values - }) - return json.Marshal(data) -} - -// WriteJSON writes metrics from the given registry periodically to the -// specified io.Writer as JSON. -func WriteJSON(r Registry, d time.Duration, w io.Writer) { - for _ = range time.Tick(d) { - WriteJSONOnce(r, w) - } -} - -// WriteJSONOnce writes metrics from the given registry to the specified -// io.Writer as JSON. -func WriteJSONOnce(r Registry, w io.Writer) { - json.NewEncoder(w).Encode(r) -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/json_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/json_test.go deleted file mode 100644 index cf70051f..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/json_test.go +++ /dev/null @@ -1,28 +0,0 @@ -package metrics - -import ( - "bytes" - "encoding/json" - "testing" -) - -func TestRegistryMarshallJSON(t *testing.T) { - b := &bytes.Buffer{} - enc := json.NewEncoder(b) - r := NewRegistry() - r.Register("counter", NewCounter()) - enc.Encode(r) - if s := b.String(); "{\"counter\":{\"count\":0}}\n" != s { - t.Fatalf(s) - } -} - -func TestRegistryWriteJSONOnce(t *testing.T) { - r := NewRegistry() - r.Register("counter", NewCounter()) - b := &bytes.Buffer{} - WriteJSONOnce(r, b) - if s := b.String(); s != "{\"counter\":{\"count\":0}}\n" { - t.Fail() - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/log.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/log.go deleted file mode 100644 index 278a8a44..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/log.go +++ /dev/null @@ -1,70 +0,0 @@ -package metrics - -import ( - "log" - "time" -) - -// Output each metric in the given registry periodically using the given -// logger. -func Log(r Registry, d time.Duration, l *log.Logger) { - for _ = range time.Tick(d) { - r.Each(func(name string, i interface{}) { - switch metric := i.(type) { - case Counter: - l.Printf("counter %s\n", name) - l.Printf(" count: %9d\n", metric.Count()) - case Gauge: - l.Printf("gauge %s\n", name) - l.Printf(" value: %9d\n", metric.Value()) - case GaugeFloat64: - l.Printf("gauge %s\n", name) - l.Printf(" value: %f\n", metric.Value()) - case Healthcheck: - metric.Check() - l.Printf("healthcheck %s\n", name) - l.Printf(" error: %v\n", metric.Error()) - case Histogram: - h := metric.Snapshot() - ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - l.Printf("histogram %s\n", name) - l.Printf(" count: %9d\n", h.Count()) - l.Printf(" min: %9d\n", h.Min()) - l.Printf(" max: %9d\n", h.Max()) - l.Printf(" mean: %12.2f\n", h.Mean()) - l.Printf(" stddev: %12.2f\n", h.StdDev()) - l.Printf(" median: %12.2f\n", ps[0]) - l.Printf(" 75%%: %12.2f\n", ps[1]) - l.Printf(" 95%%: %12.2f\n", ps[2]) - l.Printf(" 99%%: %12.2f\n", ps[3]) - l.Printf(" 99.9%%: %12.2f\n", ps[4]) - case Meter: - m := metric.Snapshot() - l.Printf("meter %s\n", name) - l.Printf(" count: %9d\n", m.Count()) - l.Printf(" 1-min rate: %12.2f\n", m.Rate1()) - l.Printf(" 5-min rate: %12.2f\n", m.Rate5()) - l.Printf(" 15-min rate: %12.2f\n", m.Rate15()) - l.Printf(" mean rate: %12.2f\n", m.RateMean()) - case Timer: - t := metric.Snapshot() - ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - l.Printf("timer %s\n", name) - l.Printf(" count: %9d\n", t.Count()) - l.Printf(" min: %9d\n", t.Min()) - l.Printf(" max: %9d\n", t.Max()) - l.Printf(" mean: %12.2f\n", t.Mean()) - l.Printf(" stddev: %12.2f\n", t.StdDev()) - l.Printf(" median: %12.2f\n", ps[0]) - l.Printf(" 75%%: %12.2f\n", ps[1]) - l.Printf(" 95%%: %12.2f\n", ps[2]) - l.Printf(" 99%%: %12.2f\n", ps[3]) - l.Printf(" 99.9%%: %12.2f\n", ps[4]) - l.Printf(" 1-min rate: %12.2f\n", t.Rate1()) - l.Printf(" 5-min rate: %12.2f\n", t.Rate5()) - l.Printf(" 15-min rate: %12.2f\n", t.Rate15()) - l.Printf(" mean rate: %12.2f\n", t.RateMean()) - } - }) - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/memory.md b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/memory.md deleted file mode 100644 index 47454f54..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/memory.md +++ /dev/null @@ -1,285 +0,0 @@ -Memory usage -============ - -(Highly unscientific.) - -Command used to gather static memory usage: - -```sh -grep ^Vm "/proc/$(ps fax | grep [m]etrics-bench | awk '{print $1}')/status" -``` - -Program used to gather baseline memory usage: - -```go -package main - -import "time" - -func main() { - time.Sleep(600e9) -} -``` - -Baseline --------- - -``` -VmPeak: 42604 kB -VmSize: 42604 kB -VmLck: 0 kB -VmHWM: 1120 kB -VmRSS: 1120 kB -VmData: 35460 kB -VmStk: 136 kB -VmExe: 1020 kB -VmLib: 1848 kB -VmPTE: 36 kB -VmSwap: 0 kB -``` - -Program used to gather metric memory usage (with other metrics being similar): - -```go -package main - -import ( - "fmt" - "metrics" - "time" -) - -func main() { - fmt.Sprintf("foo") - metrics.NewRegistry() - time.Sleep(600e9) -} -``` - -1000 counters registered ------------------------- - -``` -VmPeak: 44016 kB -VmSize: 44016 kB -VmLck: 0 kB -VmHWM: 1928 kB -VmRSS: 1928 kB -VmData: 36868 kB -VmStk: 136 kB -VmExe: 1024 kB -VmLib: 1848 kB -VmPTE: 40 kB -VmSwap: 0 kB -``` - -**1.412 kB virtual, TODO 0.808 kB resident per counter.** - -100000 counters registered --------------------------- - -``` -VmPeak: 55024 kB -VmSize: 55024 kB -VmLck: 0 kB -VmHWM: 12440 kB -VmRSS: 12440 kB -VmData: 47876 kB -VmStk: 136 kB -VmExe: 1024 kB -VmLib: 1848 kB -VmPTE: 64 kB -VmSwap: 0 kB -``` - -**0.1242 kB virtual, 0.1132 kB resident per counter.** - -1000 gauges registered ----------------------- - -``` -VmPeak: 44012 kB -VmSize: 44012 kB -VmLck: 0 kB -VmHWM: 1928 kB -VmRSS: 1928 kB -VmData: 36868 kB -VmStk: 136 kB -VmExe: 1020 kB -VmLib: 1848 kB -VmPTE: 40 kB -VmSwap: 0 kB -``` - -**1.408 kB virtual, 0.808 kB resident per counter.** - -100000 gauges registered ------------------------- - -``` -VmPeak: 55020 kB -VmSize: 55020 kB -VmLck: 0 kB -VmHWM: 12432 kB -VmRSS: 12432 kB -VmData: 47876 kB -VmStk: 136 kB -VmExe: 1020 kB -VmLib: 1848 kB -VmPTE: 60 kB -VmSwap: 0 kB -``` - -**0.12416 kB virtual, 0.11312 resident per gauge.** - -1000 histograms with a uniform sample size of 1028 --------------------------------------------------- - -``` -VmPeak: 72272 kB -VmSize: 72272 kB -VmLck: 0 kB -VmHWM: 16204 kB -VmRSS: 16204 kB -VmData: 65100 kB -VmStk: 136 kB -VmExe: 1048 kB -VmLib: 1848 kB -VmPTE: 80 kB -VmSwap: 0 kB -``` - -**29.668 kB virtual, TODO 15.084 resident per histogram.** - -10000 histograms with a uniform sample size of 1028 ---------------------------------------------------- - -``` -VmPeak: 256912 kB -VmSize: 256912 kB -VmLck: 0 kB -VmHWM: 146204 kB -VmRSS: 146204 kB -VmData: 249740 kB -VmStk: 136 kB -VmExe: 1048 kB -VmLib: 1848 kB -VmPTE: 448 kB -VmSwap: 0 kB -``` - -**21.4308 kB virtual, 14.5084 kB resident per histogram.** - -50000 histograms with a uniform sample size of 1028 ---------------------------------------------------- - -``` -VmPeak: 908112 kB -VmSize: 908112 kB -VmLck: 0 kB -VmHWM: 645832 kB -VmRSS: 645588 kB -VmData: 900940 kB -VmStk: 136 kB -VmExe: 1048 kB -VmLib: 1848 kB -VmPTE: 1716 kB -VmSwap: 1544 kB -``` - -**17.31016 kB virtual, 12.88936 kB resident per histogram.** - -1000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015 -------------------------------------------------------------------------------------- - -``` -VmPeak: 62480 kB -VmSize: 62480 kB -VmLck: 0 kB -VmHWM: 11572 kB -VmRSS: 11572 kB -VmData: 55308 kB -VmStk: 136 kB -VmExe: 1048 kB -VmLib: 1848 kB -VmPTE: 64 kB -VmSwap: 0 kB -``` - -**19.876 kB virtual, 10.452 kB resident per histogram.** - -10000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015 --------------------------------------------------------------------------------------- - -``` -VmPeak: 153296 kB -VmSize: 153296 kB -VmLck: 0 kB -VmHWM: 101176 kB -VmRSS: 101176 kB -VmData: 146124 kB -VmStk: 136 kB -VmExe: 1048 kB -VmLib: 1848 kB -VmPTE: 240 kB -VmSwap: 0 kB -``` - -**11.0692 kB virtual, 10.0056 kB resident per histogram.** - -50000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015 --------------------------------------------------------------------------------------- - -``` -VmPeak: 557264 kB -VmSize: 557264 kB -VmLck: 0 kB -VmHWM: 501056 kB -VmRSS: 501056 kB -VmData: 550092 kB -VmStk: 136 kB -VmExe: 1048 kB -VmLib: 1848 kB -VmPTE: 1032 kB -VmSwap: 0 kB -``` - -**10.2932 kB virtual, 9.99872 kB resident per histogram.** - -1000 meters ------------ - -``` -VmPeak: 74504 kB -VmSize: 74504 kB -VmLck: 0 kB -VmHWM: 24124 kB -VmRSS: 24124 kB -VmData: 67340 kB -VmStk: 136 kB -VmExe: 1040 kB -VmLib: 1848 kB -VmPTE: 92 kB -VmSwap: 0 kB -``` - -**31.9 kB virtual, 23.004 kB resident per meter.** - -10000 meters ------------- - -``` -VmPeak: 278920 kB -VmSize: 278920 kB -VmLck: 0 kB -VmHWM: 227300 kB -VmRSS: 227300 kB -VmData: 271756 kB -VmStk: 136 kB -VmExe: 1040 kB -VmLib: 1848 kB -VmPTE: 488 kB -VmSwap: 0 kB -``` - -**23.6316 kB virtual, 22.618 kB resident per meter.** diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/meter.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/meter.go deleted file mode 100644 index b0cf779e..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/meter.go +++ /dev/null @@ -1,255 +0,0 @@ -package metrics - -import ( - "sync" - "time" -) - -// Meters count events to produce exponentially-weighted moving average rates -// at one-, five-, and fifteen-minutes and a mean rate. -type Meter interface { - Count() int64 - Mark(int64) - RateFine() float64 - Rate1() float64 - Rate5() float64 - Rate15() float64 - RateMean() float64 - Snapshot() Meter -} - -// GetOrRegisterMeter returns an existing Meter or constructs and registers a -// new StandardMeter. -func GetOrRegisterMeter(name string, r Registry) Meter { - if nil == r { - r = DefaultRegistry - } - return r.GetOrRegister(name, NewMeter).(Meter) -} - -// NewMeter constructs a new StandardMeter and launches a goroutine. -func NewMeter() Meter { - if UseNilMetrics { - return NilMeter{} - } - m := newStandardMeter() - arbiter.Lock() - defer arbiter.Unlock() - arbiter.meters = append(arbiter.meters, m) - if !arbiter.started { - arbiter.started = true - go arbiter.tick() - } - return m -} - -// NewMeter constructs and registers a new StandardMeter and launches a -// goroutine. -func NewRegisteredMeter(name string, r Registry) Meter { - c := NewMeter() - if nil == r { - r = DefaultRegistry - } - r.Register(name, c) - return c -} - -// MeterSnapshot is a read-only copy of another Meter. -type MeterSnapshot struct { - count int64 - rateFine float64 - rate1, rate5, rate15, rateMean float64 -} - -// Count returns the count of events at the time the snapshot was taken. -func (m *MeterSnapshot) Count() int64 { return m.count } - -// Mark panics. -func (*MeterSnapshot) Mark(n int64) { - panic("Mark called on a MeterSnapshot") -} - -// RateFine returns the one-second moving average rate of events per second at the -// time the snapshot was taken. -func (m *MeterSnapshot) RateFine() float64 { return m.rateFine } - -// Rate1 returns the one-minute moving average rate of events per second at the -// time the snapshot was taken. -func (m *MeterSnapshot) Rate1() float64 { return m.rate1 } - -// Rate5 returns the five-minute moving average rate of events per second at -// the time the snapshot was taken. -func (m *MeterSnapshot) Rate5() float64 { return m.rate5 } - -// Rate15 returns the fifteen-minute moving average rate of events per second -// at the time the snapshot was taken. -func (m *MeterSnapshot) Rate15() float64 { return m.rate15 } - -// RateMean returns the meter's mean rate of events per second at the time the -// snapshot was taken. -func (m *MeterSnapshot) RateMean() float64 { return m.rateMean } - -// Snapshot returns the snapshot. -func (m *MeterSnapshot) Snapshot() Meter { return m } - -// NilMeter is a no-op Meter. -type NilMeter struct{} - -// Count is a no-op. -func (NilMeter) Count() int64 { return 0 } - -// Mark is a no-op. -func (NilMeter) Mark(n int64) {} - -// RateFine is a no-op. -func (NilMeter) RateFine() float64 { return 0.0 } - -// Rate1 is a no-op. -func (NilMeter) Rate1() float64 { return 0.0 } - -// Rate5 is a no-op. -func (NilMeter) Rate5() float64 { return 0.0 } - -// Rate15is a no-op. -func (NilMeter) Rate15() float64 { return 0.0 } - -// RateMean is a no-op. -func (NilMeter) RateMean() float64 { return 0.0 } - -// Snapshot is a no-op. -func (NilMeter) Snapshot() Meter { return NilMeter{} } - -// StandardMeter is the standard implementation of a Meter. -type StandardMeter struct { - lock sync.RWMutex - snapshot *MeterSnapshot - aFine EWMA - a1, a5, a15 EWMA - startTime time.Time -} - -func newStandardMeter() *StandardMeter { - return &StandardMeter{ - snapshot: &MeterSnapshot{}, - aFine: NewEWMAFine(), - a1: NewEWMA1(), - a5: NewEWMA5(), - a15: NewEWMA15(), - startTime: time.Now(), - } -} - -// Count returns the number of events recorded. -func (m *StandardMeter) Count() int64 { - m.lock.RLock() - count := m.snapshot.count - m.lock.RUnlock() - return count -} - -// Mark records the occurance of n events. -func (m *StandardMeter) Mark(n int64) { - m.lock.Lock() - defer m.lock.Unlock() - m.snapshot.count += n - m.aFine.Update(n) - m.a1.Update(n) - m.a5.Update(n) - m.a15.Update(n) - m.updateSnapshot() -} - -// Rate1 returns the one-minute moving average rate of events per second. -func (m *StandardMeter) RateFine() float64 { - m.lock.RLock() - rateFine := m.snapshot.rateFine - m.lock.RUnlock() - return rateFine -} - -// Rate1 returns the one-minute moving average rate of events per second. -func (m *StandardMeter) Rate1() float64 { - m.lock.RLock() - rate1 := m.snapshot.rate1 - m.lock.RUnlock() - return rate1 -} - -// Rate5 returns the five-minute moving average rate of events per second. -func (m *StandardMeter) Rate5() float64 { - m.lock.RLock() - rate5 := m.snapshot.rate5 - m.lock.RUnlock() - return rate5 -} - -// Rate15 returns the fifteen-minute moving average rate of events per second. -func (m *StandardMeter) Rate15() float64 { - m.lock.RLock() - rate15 := m.snapshot.rate15 - m.lock.RUnlock() - return rate15 -} - -// RateMean returns the meter's mean rate of events per second. -func (m *StandardMeter) RateMean() float64 { - m.lock.RLock() - rateMean := m.snapshot.rateMean - m.lock.RUnlock() - return rateMean -} - -// Snapshot returns a read-only copy of the meter. -func (m *StandardMeter) Snapshot() Meter { - m.lock.RLock() - snapshot := *m.snapshot - m.lock.RUnlock() - return &snapshot -} - -func (m *StandardMeter) updateSnapshot() { - // should run with write lock held on m.lock - snapshot := m.snapshot - snapshot.rateFine = m.aFine.Rate() - snapshot.rate1 = m.a1.Rate() - snapshot.rate5 = m.a5.Rate() - snapshot.rate15 = m.a15.Rate() - snapshot.rateMean = float64(snapshot.count) / time.Since(m.startTime).Seconds() -} - -func (m *StandardMeter) tick() { - m.lock.Lock() - defer m.lock.Unlock() - m.aFine.Tick() - m.a1.Tick() - m.a5.Tick() - m.a15.Tick() - m.updateSnapshot() -} - -type meterArbiter struct { - sync.RWMutex - started bool - meters []*StandardMeter - ticker *time.Ticker -} - -var arbiter = meterArbiter{ticker: time.NewTicker(time.Second)} - -// Ticks meters on the scheduled interval -func (ma *meterArbiter) tick() { - for { - select { - case <-ma.ticker.C: - ma.tickMeters() - } - } -} - -func (ma *meterArbiter) tickMeters() { - ma.RLock() - defer ma.RUnlock() - for _, meter := range ma.meters { - meter.tick() - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/meter_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/meter_test.go deleted file mode 100644 index 26ce1398..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/meter_test.go +++ /dev/null @@ -1,60 +0,0 @@ -package metrics - -import ( - "testing" - "time" -) - -func BenchmarkMeter(b *testing.B) { - m := NewMeter() - b.ResetTimer() - for i := 0; i < b.N; i++ { - m.Mark(1) - } -} - -func TestGetOrRegisterMeter(t *testing.T) { - r := NewRegistry() - NewRegisteredMeter("foo", r).Mark(47) - if m := GetOrRegisterMeter("foo", r); 47 != m.Count() { - t.Fatal(m) - } -} - -func TestMeterDecay(t *testing.T) { - ma := meterArbiter{ - ticker: time.NewTicker(1), - } - m := newStandardMeter() - ma.meters = append(ma.meters, m) - go ma.tick() - m.Mark(1) - rateMean := m.RateMean() - time.Sleep(1) - if m.RateMean() >= rateMean { - t.Error("m.RateMean() didn't decrease") - } -} - -func TestMeterNonzero(t *testing.T) { - m := NewMeter() - m.Mark(3) - if count := m.Count(); 3 != count { - t.Errorf("m.Count(): 3 != %v\n", count) - } -} - -func TestMeterSnapshot(t *testing.T) { - m := NewMeter() - m.Mark(1) - if snapshot := m.Snapshot(); m.RateMean() != snapshot.RateMean() { - t.Fatal(snapshot) - } -} - -func TestMeterZero(t *testing.T) { - m := NewMeter() - if count := m.Count(); 0 != count { - t.Errorf("m.Count(): 0 != %v\n", count) - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/metrics.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/metrics.go deleted file mode 100644 index b97a49ed..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/metrics.go +++ /dev/null @@ -1,13 +0,0 @@ -// Go port of Coda Hale's Metrics library -// -// -// -// Coda Hale's original work: -package metrics - -// UseNilMetrics is checked by the constructor functions for all of the -// standard metrics. If it is true, the metric returned is a stub. -// -// This global kill-switch helps quantify the observer effect and makes -// for less cluttered pprof profiles. -var UseNilMetrics bool = false diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/metrics_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/metrics_test.go deleted file mode 100644 index 083f9676..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/metrics_test.go +++ /dev/null @@ -1,107 +0,0 @@ -package metrics - -import ( - "io/ioutil" - "log" - "sync" - "testing" -) - -const FANOUT = 128 - -// Stop the compiler from complaining during debugging. -var ( - _ = ioutil.Discard - _ = log.LstdFlags -) - -func BenchmarkMetrics(b *testing.B) { - r := NewRegistry() - c := NewRegisteredCounter("counter", r) - g := NewRegisteredGauge("gauge", r) - gf := NewRegisteredGaugeFloat64("gaugefloat64", r) - h := NewRegisteredHistogram("histogram", r, NewUniformSample(100)) - m := NewRegisteredMeter("meter", r) - t := NewRegisteredTimer("timer", r) - RegisterDebugGCStats(r) - RegisterRuntimeMemStats(r) - b.ResetTimer() - ch := make(chan bool) - - wgD := &sync.WaitGroup{} - /* - wgD.Add(1) - go func() { - defer wgD.Done() - //log.Println("go CaptureDebugGCStats") - for { - select { - case <-ch: - //log.Println("done CaptureDebugGCStats") - return - default: - CaptureDebugGCStatsOnce(r) - } - } - }() - //*/ - - wgR := &sync.WaitGroup{} - //* - wgR.Add(1) - go func() { - defer wgR.Done() - //log.Println("go CaptureRuntimeMemStats") - for { - select { - case <-ch: - //log.Println("done CaptureRuntimeMemStats") - return - default: - CaptureRuntimeMemStatsOnce(r) - } - } - }() - //*/ - - wgW := &sync.WaitGroup{} - /* - wgW.Add(1) - go func() { - defer wgW.Done() - //log.Println("go Write") - for { - select { - case <-ch: - //log.Println("done Write") - return - default: - WriteOnce(r, ioutil.Discard) - } - } - }() - //*/ - - wg := &sync.WaitGroup{} - wg.Add(FANOUT) - for i := 0; i < FANOUT; i++ { - go func(i int) { - defer wg.Done() - //log.Println("go", i) - for i := 0; i < b.N; i++ { - c.Inc(1) - g.Update(int64(i)) - gf.Update(float64(i)) - h.Update(int64(i)) - m.Mark(1) - t.Update(1) - } - //log.Println("done", i) - }(i) - } - wg.Wait() - close(ch) - wgD.Wait() - wgR.Wait() - wgW.Wait() -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/opentsdb.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/opentsdb.go deleted file mode 100644 index 266b6c93..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/opentsdb.go +++ /dev/null @@ -1,119 +0,0 @@ -package metrics - -import ( - "bufio" - "fmt" - "log" - "net" - "os" - "strings" - "time" -) - -var shortHostName string = "" - -// OpenTSDBConfig provides a container with configuration parameters for -// the OpenTSDB exporter -type OpenTSDBConfig struct { - Addr *net.TCPAddr // Network address to connect to - Registry Registry // Registry to be exported - FlushInterval time.Duration // Flush interval - DurationUnit time.Duration // Time conversion unit for durations - Prefix string // Prefix to be prepended to metric names -} - -// OpenTSDB is a blocking exporter function which reports metrics in r -// to a TSDB server located at addr, flushing them every d duration -// and prepending metric names with prefix. -func OpenTSDB(r Registry, d time.Duration, prefix string, addr *net.TCPAddr) { - OpenTSDBWithConfig(OpenTSDBConfig{ - Addr: addr, - Registry: r, - FlushInterval: d, - DurationUnit: time.Nanosecond, - Prefix: prefix, - }) -} - -// OpenTSDBWithConfig is a blocking exporter function just like OpenTSDB, -// but it takes a OpenTSDBConfig instead. -func OpenTSDBWithConfig(c OpenTSDBConfig) { - for _ = range time.Tick(c.FlushInterval) { - if err := openTSDB(&c); nil != err { - log.Println(err) - } - } -} - -func getShortHostname() string { - if shortHostName == "" { - host, _ := os.Hostname() - if index := strings.Index(host, "."); index > 0 { - shortHostName = host[:index] - } else { - shortHostName = host - } - } - return shortHostName -} - -func openTSDB(c *OpenTSDBConfig) error { - shortHostname := getShortHostname() - now := time.Now().Unix() - du := float64(c.DurationUnit) - conn, err := net.DialTCP("tcp", nil, c.Addr) - if nil != err { - return err - } - defer conn.Close() - w := bufio.NewWriter(conn) - c.Registry.Each(func(name string, i interface{}) { - switch metric := i.(type) { - case Counter: - fmt.Fprintf(w, "put %s.%s.count %d %d host=%s\n", c.Prefix, name, now, metric.Count(), shortHostname) - case Gauge: - fmt.Fprintf(w, "put %s.%s.value %d %d host=%s\n", c.Prefix, name, now, metric.Value(), shortHostname) - case GaugeFloat64: - fmt.Fprintf(w, "put %s.%s.value %d %f host=%s\n", c.Prefix, name, now, metric.Value(), shortHostname) - case Histogram: - h := metric.Snapshot() - ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - fmt.Fprintf(w, "put %s.%s.count %d %d host=%s\n", c.Prefix, name, now, h.Count(), shortHostname) - fmt.Fprintf(w, "put %s.%s.min %d %d host=%s\n", c.Prefix, name, now, h.Min(), shortHostname) - fmt.Fprintf(w, "put %s.%s.max %d %d host=%s\n", c.Prefix, name, now, h.Max(), shortHostname) - fmt.Fprintf(w, "put %s.%s.mean %d %.2f host=%s\n", c.Prefix, name, now, h.Mean(), shortHostname) - fmt.Fprintf(w, "put %s.%s.std-dev %d %.2f host=%s\n", c.Prefix, name, now, h.StdDev(), shortHostname) - fmt.Fprintf(w, "put %s.%s.50-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[0], shortHostname) - fmt.Fprintf(w, "put %s.%s.75-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[1], shortHostname) - fmt.Fprintf(w, "put %s.%s.95-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[2], shortHostname) - fmt.Fprintf(w, "put %s.%s.99-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[3], shortHostname) - fmt.Fprintf(w, "put %s.%s.999-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[4], shortHostname) - case Meter: - m := metric.Snapshot() - fmt.Fprintf(w, "put %s.%s.count %d %d host=%s\n", c.Prefix, name, now, m.Count(), shortHostname) - fmt.Fprintf(w, "put %s.%s.one-minute %d %.2f host=%s\n", c.Prefix, name, now, m.Rate1(), shortHostname) - fmt.Fprintf(w, "put %s.%s.five-minute %d %.2f host=%s\n", c.Prefix, name, now, m.Rate5(), shortHostname) - fmt.Fprintf(w, "put %s.%s.fifteen-minute %d %.2f host=%s\n", c.Prefix, name, now, m.Rate15(), shortHostname) - fmt.Fprintf(w, "put %s.%s.mean %d %.2f host=%s\n", c.Prefix, name, now, m.RateMean(), shortHostname) - case Timer: - t := metric.Snapshot() - ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - fmt.Fprintf(w, "put %s.%s.count %d %d host=%s\n", c.Prefix, name, now, t.Count(), shortHostname) - fmt.Fprintf(w, "put %s.%s.min %d %d host=%s\n", c.Prefix, name, now, t.Min()/int64(du), shortHostname) - fmt.Fprintf(w, "put %s.%s.max %d %d host=%s\n", c.Prefix, name, now, t.Max()/int64(du), shortHostname) - fmt.Fprintf(w, "put %s.%s.mean %d %.2f host=%s\n", c.Prefix, name, now, t.Mean()/du, shortHostname) - fmt.Fprintf(w, "put %s.%s.std-dev %d %.2f host=%s\n", c.Prefix, name, now, t.StdDev()/du, shortHostname) - fmt.Fprintf(w, "put %s.%s.50-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[0]/du, shortHostname) - fmt.Fprintf(w, "put %s.%s.75-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[1]/du, shortHostname) - fmt.Fprintf(w, "put %s.%s.95-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[2]/du, shortHostname) - fmt.Fprintf(w, "put %s.%s.99-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[3]/du, shortHostname) - fmt.Fprintf(w, "put %s.%s.999-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[4]/du, shortHostname) - fmt.Fprintf(w, "put %s.%s.one-minute %d %.2f host=%s\n", c.Prefix, name, now, t.Rate1(), shortHostname) - fmt.Fprintf(w, "put %s.%s.five-minute %d %.2f host=%s\n", c.Prefix, name, now, t.Rate5(), shortHostname) - fmt.Fprintf(w, "put %s.%s.fifteen-minute %d %.2f host=%s\n", c.Prefix, name, now, t.Rate15(), shortHostname) - fmt.Fprintf(w, "put %s.%s.mean-rate %d %.2f host=%s\n", c.Prefix, name, now, t.RateMean(), shortHostname) - } - w.Flush() - }) - return nil -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/opentsdb_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/opentsdb_test.go deleted file mode 100644 index 6173d61a..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/opentsdb_test.go +++ /dev/null @@ -1,22 +0,0 @@ -package metrics - -import ( - "net" - "time" -) - -func ExampleOpenTSDB() { - addr, _ := net.ResolveTCPAddr("net", ":2003") - go OpenTSDB(DefaultRegistry, 1*time.Second, "some.prefix", addr) -} - -func ExampleOpenTSDBWithConfig() { - addr, _ := net.ResolveTCPAddr("net", ":2003") - go OpenTSDBWithConfig(OpenTSDBConfig{ - Addr: addr, - Registry: DefaultRegistry, - FlushInterval: 1 * time.Second, - DurationUnit: time.Millisecond, - }) -} - diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/package.json b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/package.json deleted file mode 100644 index 7045fc9d..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "go-metrics", - "author": "whyrusleeping", - "version": "0.0.0", - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/whyrusleeping/go-metrics" - } -} \ No newline at end of file diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/registry.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/registry.go deleted file mode 100644 index 4ac534e1..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/registry.go +++ /dev/null @@ -1,180 +0,0 @@ -package metrics - -import ( - "fmt" - "reflect" - "sync" -) - -// DuplicateMetric is the error returned by Registry.Register when a metric -// already exists. If you mean to Register that metric you must first -// Unregister the existing metric. -type DuplicateMetric string - -func (err DuplicateMetric) Error() string { - return fmt.Sprintf("duplicate metric: %s", string(err)) -} - -// A Registry holds references to a set of metrics by name and can iterate -// over them, calling callback functions provided by the user. -// -// This is an interface so as to encourage other structs to implement -// the Registry API as appropriate. -type Registry interface { - - // Call the given function for each registered metric. - Each(func(string, interface{})) - - // Get the metric by the given name or nil if none is registered. - Get(string) interface{} - - // Gets an existing metric or registers the given one. - // The interface can be the metric to register if not found in registry, - // or a function returning the metric for lazy instantiation. - GetOrRegister(string, interface{}) interface{} - - // Register the given metric under the given name. - Register(string, interface{}) error - - // Run all registered healthchecks. - RunHealthchecks() - - // Unregister the metric with the given name. - Unregister(string) - - // Unregister all metrics. (Mostly for testing.) - UnregisterAll() -} - -// The standard implementation of a Registry is a mutex-protected map -// of names to metrics. -type StandardRegistry struct { - metrics map[string]interface{} - mutex sync.Mutex -} - -// Create a new registry. -func NewRegistry() Registry { - return &StandardRegistry{metrics: make(map[string]interface{})} -} - -// Call the given function for each registered metric. -func (r *StandardRegistry) Each(f func(string, interface{})) { - for name, i := range r.registered() { - f(name, i) - } -} - -// Get the metric by the given name or nil if none is registered. -func (r *StandardRegistry) Get(name string) interface{} { - r.mutex.Lock() - defer r.mutex.Unlock() - return r.metrics[name] -} - -// Gets an existing metric or creates and registers a new one. Threadsafe -// alternative to calling Get and Register on failure. -// The interface can be the metric to register if not found in registry, -// or a function returning the metric for lazy instantiation. -func (r *StandardRegistry) GetOrRegister(name string, i interface{}) interface{} { - r.mutex.Lock() - defer r.mutex.Unlock() - if metric, ok := r.metrics[name]; ok { - return metric - } - if v := reflect.ValueOf(i); v.Kind() == reflect.Func { - i = v.Call(nil)[0].Interface() - } - r.register(name, i) - return i -} - -// Register the given metric under the given name. Returns a DuplicateMetric -// if a metric by the given name is already registered. -func (r *StandardRegistry) Register(name string, i interface{}) error { - r.mutex.Lock() - defer r.mutex.Unlock() - return r.register(name, i) -} - -// Run all registered healthchecks. -func (r *StandardRegistry) RunHealthchecks() { - r.mutex.Lock() - defer r.mutex.Unlock() - for _, i := range r.metrics { - if h, ok := i.(Healthcheck); ok { - h.Check() - } - } -} - -// Unregister the metric with the given name. -func (r *StandardRegistry) Unregister(name string) { - r.mutex.Lock() - defer r.mutex.Unlock() - delete(r.metrics, name) -} - -// Unregister all metrics. (Mostly for testing.) -func (r *StandardRegistry) UnregisterAll() { - r.mutex.Lock() - defer r.mutex.Unlock() - for name, _ := range r.metrics { - delete(r.metrics, name) - } -} - -func (r *StandardRegistry) register(name string, i interface{}) error { - if _, ok := r.metrics[name]; ok { - return DuplicateMetric(name) - } - switch i.(type) { - case Counter, Gauge, GaugeFloat64, Healthcheck, Histogram, Meter, Timer: - r.metrics[name] = i - } - return nil -} - -func (r *StandardRegistry) registered() map[string]interface{} { - metrics := make(map[string]interface{}, len(r.metrics)) - r.mutex.Lock() - defer r.mutex.Unlock() - for name, i := range r.metrics { - metrics[name] = i - } - return metrics -} - -var DefaultRegistry Registry = NewRegistry() - -// Call the given function for each registered metric. -func Each(f func(string, interface{})) { - DefaultRegistry.Each(f) -} - -// Get the metric by the given name or nil if none is registered. -func Get(name string) interface{} { - return DefaultRegistry.Get(name) -} - -// Gets an existing metric or creates and registers a new one. Threadsafe -// alternative to calling Get and Register on failure. -func GetOrRegister(name string, i interface{}) interface{} { - return DefaultRegistry.GetOrRegister(name, i) -} - -// Register the given metric under the given name. Returns a DuplicateMetric -// if a metric by the given name is already registered. -func Register(name string, i interface{}) error { - return DefaultRegistry.Register(name, i) -} - -// Run all registered healthchecks. -func RunHealthchecks() { - DefaultRegistry.RunHealthchecks() -} - -// Unregister the metric with the given name. -func Unregister(name string) { - DefaultRegistry.Unregister(name) -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/registry_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/registry_test.go deleted file mode 100644 index 9ba0a020..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/registry_test.go +++ /dev/null @@ -1,118 +0,0 @@ -package metrics - -import "testing" - -func BenchmarkRegistry(b *testing.B) { - r := NewRegistry() - r.Register("foo", NewCounter()) - b.ResetTimer() - for i := 0; i < b.N; i++ { - r.Each(func(string, interface{}) {}) - } -} - -func TestRegistry(t *testing.T) { - r := NewRegistry() - r.Register("foo", NewCounter()) - i := 0 - r.Each(func(name string, iface interface{}) { - i++ - if "foo" != name { - t.Fatal(name) - } - if _, ok := iface.(Counter); !ok { - t.Fatal(iface) - } - }) - if 1 != i { - t.Fatal(i) - } - r.Unregister("foo") - i = 0 - r.Each(func(string, interface{}) { i++ }) - if 0 != i { - t.Fatal(i) - } -} - -func TestRegistryDuplicate(t *testing.T) { - r := NewRegistry() - if err := r.Register("foo", NewCounter()); nil != err { - t.Fatal(err) - } - if err := r.Register("foo", NewGauge()); nil == err { - t.Fatal(err) - } - i := 0 - r.Each(func(name string, iface interface{}) { - i++ - if _, ok := iface.(Counter); !ok { - t.Fatal(iface) - } - }) - if 1 != i { - t.Fatal(i) - } -} - -func TestRegistryGet(t *testing.T) { - r := NewRegistry() - r.Register("foo", NewCounter()) - if count := r.Get("foo").(Counter).Count(); 0 != count { - t.Fatal(count) - } - r.Get("foo").(Counter).Inc(1) - if count := r.Get("foo").(Counter).Count(); 1 != count { - t.Fatal(count) - } -} - -func TestRegistryGetOrRegister(t *testing.T) { - r := NewRegistry() - - // First metric wins with GetOrRegister - _ = r.GetOrRegister("foo", NewCounter()) - m := r.GetOrRegister("foo", NewGauge()) - if _, ok := m.(Counter); !ok { - t.Fatal(m) - } - - i := 0 - r.Each(func(name string, iface interface{}) { - i++ - if name != "foo" { - t.Fatal(name) - } - if _, ok := iface.(Counter); !ok { - t.Fatal(iface) - } - }) - if i != 1 { - t.Fatal(i) - } -} - -func TestRegistryGetOrRegisterWithLazyInstantiation(t *testing.T) { - r := NewRegistry() - - // First metric wins with GetOrRegister - _ = r.GetOrRegister("foo", NewCounter) - m := r.GetOrRegister("foo", NewGauge) - if _, ok := m.(Counter); !ok { - t.Fatal(m) - } - - i := 0 - r.Each(func(name string, iface interface{}) { - i++ - if name != "foo" { - t.Fatal(name) - } - if _, ok := iface.(Counter); !ok { - t.Fatal(iface) - } - }) - if i != 1 { - t.Fatal(i) - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime.go deleted file mode 100644 index 82574bf2..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime.go +++ /dev/null @@ -1,200 +0,0 @@ -package metrics - -import ( - "runtime" - "time" -) - -var ( - memStats runtime.MemStats - runtimeMetrics struct { - MemStats struct { - Alloc Gauge - BuckHashSys Gauge - DebugGC Gauge - EnableGC Gauge - Frees Gauge - HeapAlloc Gauge - HeapIdle Gauge - HeapInuse Gauge - HeapObjects Gauge - HeapReleased Gauge - HeapSys Gauge - LastGC Gauge - Lookups Gauge - Mallocs Gauge - MCacheInuse Gauge - MCacheSys Gauge - MSpanInuse Gauge - MSpanSys Gauge - NextGC Gauge - NumGC Gauge - PauseNs Histogram - PauseTotalNs Gauge - StackInuse Gauge - StackSys Gauge - Sys Gauge - TotalAlloc Gauge - } - NumCgoCall Gauge - NumGoroutine Gauge - ReadMemStats Timer - } - frees uint64 - lookups uint64 - mallocs uint64 - numGC uint32 - numCgoCalls int64 -) - -// Capture new values for the Go runtime statistics exported in -// runtime.MemStats. This is designed to be called as a goroutine. -func CaptureRuntimeMemStats(r Registry, d time.Duration) { - for _ = range time.Tick(d) { - CaptureRuntimeMemStatsOnce(r) - } -} - -// Capture new values for the Go runtime statistics exported in -// runtime.MemStats. This is designed to be called in a background -// goroutine. Giving a registry which has not been given to -// RegisterRuntimeMemStats will panic. -// -// Be very careful with this because runtime.ReadMemStats calls the C -// functions runtime·semacquire(&runtime·worldsema) and runtime·stoptheworld() -// and that last one does what it says on the tin. -func CaptureRuntimeMemStatsOnce(r Registry) { - t := time.Now() - runtime.ReadMemStats(&memStats) // This takes 50-200us. - runtimeMetrics.ReadMemStats.UpdateSince(t) - - runtimeMetrics.MemStats.Alloc.Update(int64(memStats.Alloc)) - runtimeMetrics.MemStats.BuckHashSys.Update(int64(memStats.BuckHashSys)) - if memStats.DebugGC { - runtimeMetrics.MemStats.DebugGC.Update(1) - } else { - runtimeMetrics.MemStats.DebugGC.Update(0) - } - if memStats.EnableGC { - runtimeMetrics.MemStats.EnableGC.Update(1) - } else { - runtimeMetrics.MemStats.EnableGC.Update(0) - } - - runtimeMetrics.MemStats.Frees.Update(int64(memStats.Frees - frees)) - runtimeMetrics.MemStats.HeapAlloc.Update(int64(memStats.HeapAlloc)) - runtimeMetrics.MemStats.HeapIdle.Update(int64(memStats.HeapIdle)) - runtimeMetrics.MemStats.HeapInuse.Update(int64(memStats.HeapInuse)) - runtimeMetrics.MemStats.HeapObjects.Update(int64(memStats.HeapObjects)) - runtimeMetrics.MemStats.HeapReleased.Update(int64(memStats.HeapReleased)) - runtimeMetrics.MemStats.HeapSys.Update(int64(memStats.HeapSys)) - runtimeMetrics.MemStats.LastGC.Update(int64(memStats.LastGC)) - runtimeMetrics.MemStats.Lookups.Update(int64(memStats.Lookups - lookups)) - runtimeMetrics.MemStats.Mallocs.Update(int64(memStats.Mallocs - mallocs)) - runtimeMetrics.MemStats.MCacheInuse.Update(int64(memStats.MCacheInuse)) - runtimeMetrics.MemStats.MCacheSys.Update(int64(memStats.MCacheSys)) - runtimeMetrics.MemStats.MSpanInuse.Update(int64(memStats.MSpanInuse)) - runtimeMetrics.MemStats.MSpanSys.Update(int64(memStats.MSpanSys)) - runtimeMetrics.MemStats.NextGC.Update(int64(memStats.NextGC)) - runtimeMetrics.MemStats.NumGC.Update(int64(memStats.NumGC - numGC)) - - // - i := numGC % uint32(len(memStats.PauseNs)) - ii := memStats.NumGC % uint32(len(memStats.PauseNs)) - if memStats.NumGC-numGC >= uint32(len(memStats.PauseNs)) { - for i = 0; i < uint32(len(memStats.PauseNs)); i++ { - runtimeMetrics.MemStats.PauseNs.Update(int64(memStats.PauseNs[i])) - } - } else { - if i > ii { - for ; i < uint32(len(memStats.PauseNs)); i++ { - runtimeMetrics.MemStats.PauseNs.Update(int64(memStats.PauseNs[i])) - } - i = 0 - } - for ; i < ii; i++ { - runtimeMetrics.MemStats.PauseNs.Update(int64(memStats.PauseNs[i])) - } - } - frees = memStats.Frees - lookups = memStats.Lookups - mallocs = memStats.Mallocs - numGC = memStats.NumGC - - runtimeMetrics.MemStats.PauseTotalNs.Update(int64(memStats.PauseTotalNs)) - runtimeMetrics.MemStats.StackInuse.Update(int64(memStats.StackInuse)) - runtimeMetrics.MemStats.StackSys.Update(int64(memStats.StackSys)) - runtimeMetrics.MemStats.Sys.Update(int64(memStats.Sys)) - runtimeMetrics.MemStats.TotalAlloc.Update(int64(memStats.TotalAlloc)) - - currentNumCgoCalls := numCgoCall() - runtimeMetrics.NumCgoCall.Update(currentNumCgoCalls - numCgoCalls) - numCgoCalls = currentNumCgoCalls - - runtimeMetrics.NumGoroutine.Update(int64(runtime.NumGoroutine())) -} - -// Register runtimeMetrics for the Go runtime statistics exported in runtime and -// specifically runtime.MemStats. The runtimeMetrics are named by their -// fully-qualified Go symbols, i.e. runtime.MemStats.Alloc. -func RegisterRuntimeMemStats(r Registry) { - runtimeMetrics.MemStats.Alloc = NewGauge() - runtimeMetrics.MemStats.BuckHashSys = NewGauge() - runtimeMetrics.MemStats.DebugGC = NewGauge() - runtimeMetrics.MemStats.EnableGC = NewGauge() - runtimeMetrics.MemStats.Frees = NewGauge() - runtimeMetrics.MemStats.HeapAlloc = NewGauge() - runtimeMetrics.MemStats.HeapIdle = NewGauge() - runtimeMetrics.MemStats.HeapInuse = NewGauge() - runtimeMetrics.MemStats.HeapObjects = NewGauge() - runtimeMetrics.MemStats.HeapReleased = NewGauge() - runtimeMetrics.MemStats.HeapSys = NewGauge() - runtimeMetrics.MemStats.LastGC = NewGauge() - runtimeMetrics.MemStats.Lookups = NewGauge() - runtimeMetrics.MemStats.Mallocs = NewGauge() - runtimeMetrics.MemStats.MCacheInuse = NewGauge() - runtimeMetrics.MemStats.MCacheSys = NewGauge() - runtimeMetrics.MemStats.MSpanInuse = NewGauge() - runtimeMetrics.MemStats.MSpanSys = NewGauge() - runtimeMetrics.MemStats.NextGC = NewGauge() - runtimeMetrics.MemStats.NumGC = NewGauge() - runtimeMetrics.MemStats.PauseNs = NewHistogram(NewExpDecaySample(1028, 0.015)) - runtimeMetrics.MemStats.PauseTotalNs = NewGauge() - runtimeMetrics.MemStats.StackInuse = NewGauge() - runtimeMetrics.MemStats.StackSys = NewGauge() - runtimeMetrics.MemStats.Sys = NewGauge() - runtimeMetrics.MemStats.TotalAlloc = NewGauge() - runtimeMetrics.NumCgoCall = NewGauge() - runtimeMetrics.NumGoroutine = NewGauge() - runtimeMetrics.ReadMemStats = NewTimer() - - r.Register("runtime.MemStats.Alloc", runtimeMetrics.MemStats.Alloc) - r.Register("runtime.MemStats.BuckHashSys", runtimeMetrics.MemStats.BuckHashSys) - r.Register("runtime.MemStats.DebugGC", runtimeMetrics.MemStats.DebugGC) - r.Register("runtime.MemStats.EnableGC", runtimeMetrics.MemStats.EnableGC) - r.Register("runtime.MemStats.Frees", runtimeMetrics.MemStats.Frees) - r.Register("runtime.MemStats.HeapAlloc", runtimeMetrics.MemStats.HeapAlloc) - r.Register("runtime.MemStats.HeapIdle", runtimeMetrics.MemStats.HeapIdle) - r.Register("runtime.MemStats.HeapInuse", runtimeMetrics.MemStats.HeapInuse) - r.Register("runtime.MemStats.HeapObjects", runtimeMetrics.MemStats.HeapObjects) - r.Register("runtime.MemStats.HeapReleased", runtimeMetrics.MemStats.HeapReleased) - r.Register("runtime.MemStats.HeapSys", runtimeMetrics.MemStats.HeapSys) - r.Register("runtime.MemStats.LastGC", runtimeMetrics.MemStats.LastGC) - r.Register("runtime.MemStats.Lookups", runtimeMetrics.MemStats.Lookups) - r.Register("runtime.MemStats.Mallocs", runtimeMetrics.MemStats.Mallocs) - r.Register("runtime.MemStats.MCacheInuse", runtimeMetrics.MemStats.MCacheInuse) - r.Register("runtime.MemStats.MCacheSys", runtimeMetrics.MemStats.MCacheSys) - r.Register("runtime.MemStats.MSpanInuse", runtimeMetrics.MemStats.MSpanInuse) - r.Register("runtime.MemStats.MSpanSys", runtimeMetrics.MemStats.MSpanSys) - r.Register("runtime.MemStats.NextGC", runtimeMetrics.MemStats.NextGC) - r.Register("runtime.MemStats.NumGC", runtimeMetrics.MemStats.NumGC) - r.Register("runtime.MemStats.PauseNs", runtimeMetrics.MemStats.PauseNs) - r.Register("runtime.MemStats.PauseTotalNs", runtimeMetrics.MemStats.PauseTotalNs) - r.Register("runtime.MemStats.StackInuse", runtimeMetrics.MemStats.StackInuse) - r.Register("runtime.MemStats.StackSys", runtimeMetrics.MemStats.StackSys) - r.Register("runtime.MemStats.Sys", runtimeMetrics.MemStats.Sys) - r.Register("runtime.MemStats.TotalAlloc", runtimeMetrics.MemStats.TotalAlloc) - r.Register("runtime.NumCgoCall", runtimeMetrics.NumCgoCall) - r.Register("runtime.NumGoroutine", runtimeMetrics.NumGoroutine) - r.Register("runtime.ReadMemStats", runtimeMetrics.ReadMemStats) -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime_cgo.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime_cgo.go deleted file mode 100644 index e3391f4e..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime_cgo.go +++ /dev/null @@ -1,10 +0,0 @@ -// +build cgo -// +build !appengine - -package metrics - -import "runtime" - -func numCgoCall() int64 { - return runtime.NumCgoCall() -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime_no_cgo.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime_no_cgo.go deleted file mode 100644 index 616a3b47..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime_no_cgo.go +++ /dev/null @@ -1,7 +0,0 @@ -// +build !cgo appengine - -package metrics - -func numCgoCall() int64 { - return 0 -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime_test.go deleted file mode 100644 index a0ca8947..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/runtime_test.go +++ /dev/null @@ -1,78 +0,0 @@ -package metrics - -import ( - "runtime" - "testing" - "time" -) - -func BenchmarkRuntimeMemStats(b *testing.B) { - r := NewRegistry() - RegisterRuntimeMemStats(r) - b.ResetTimer() - for i := 0; i < b.N; i++ { - CaptureRuntimeMemStatsOnce(r) - } -} - -func TestRuntimeMemStats(t *testing.T) { - r := NewRegistry() - RegisterRuntimeMemStats(r) - CaptureRuntimeMemStatsOnce(r) - zero := runtimeMetrics.MemStats.PauseNs.Count() // Get a "zero" since GC may have run before these tests. - runtime.GC() - CaptureRuntimeMemStatsOnce(r) - if count := runtimeMetrics.MemStats.PauseNs.Count(); 1 != count-zero { - t.Fatal(count - zero) - } - runtime.GC() - runtime.GC() - CaptureRuntimeMemStatsOnce(r) - if count := runtimeMetrics.MemStats.PauseNs.Count(); 3 != count-zero { - t.Fatal(count - zero) - } - for i := 0; i < 256; i++ { - runtime.GC() - } - CaptureRuntimeMemStatsOnce(r) - if count := runtimeMetrics.MemStats.PauseNs.Count(); 259 != count-zero { - t.Fatal(count - zero) - } - for i := 0; i < 257; i++ { - runtime.GC() - } - CaptureRuntimeMemStatsOnce(r) - if count := runtimeMetrics.MemStats.PauseNs.Count(); 515 != count-zero { // We lost one because there were too many GCs between captures. - t.Fatal(count - zero) - } -} - -func TestRuntimeMemStatsBlocking(t *testing.T) { - if g := runtime.GOMAXPROCS(0); g < 2 { - t.Skipf("skipping TestRuntimeMemStatsBlocking with GOMAXPROCS=%d\n", g) - } - ch := make(chan int) - go testRuntimeMemStatsBlocking(ch) - var memStats runtime.MemStats - t0 := time.Now() - runtime.ReadMemStats(&memStats) - t1 := time.Now() - t.Log("i++ during runtime.ReadMemStats:", <-ch) - go testRuntimeMemStatsBlocking(ch) - d := t1.Sub(t0) - t.Log(d) - time.Sleep(d) - t.Log("i++ during time.Sleep:", <-ch) -} - -func testRuntimeMemStatsBlocking(ch chan int) { - i := 0 - for { - select { - case ch <- i: - return - default: - i++ - } - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/sample.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/sample.go deleted file mode 100644 index ee5ebc0c..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/sample.go +++ /dev/null @@ -1,602 +0,0 @@ -package metrics - -import ( - "math" - "math/rand" - "sort" - "sync" - "time" -) - -const rescaleThreshold = time.Hour - -// Samples maintain a statistically-significant selection of values from -// a stream. -type Sample interface { - Clear() - Count() int64 - Max() int64 - Mean() float64 - Min() int64 - Percentile(float64) float64 - Percentiles([]float64) []float64 - Size() int - Snapshot() Sample - StdDev() float64 - Sum() int64 - Update(int64) - Values() []int64 - Variance() float64 -} - -// ExpDecaySample is an exponentially-decaying sample using a forward-decaying -// priority reservoir. See Cormode et al's "Forward Decay: A Practical Time -// Decay Model for Streaming Systems". -// -// -type ExpDecaySample struct { - alpha float64 - count int64 - mutex sync.Mutex - reservoirSize int - t0, t1 time.Time - values *expDecaySampleHeap -} - -// NewExpDecaySample constructs a new exponentially-decaying sample with the -// given reservoir size and alpha. -func NewExpDecaySample(reservoirSize int, alpha float64) Sample { - if UseNilMetrics { - return NilSample{} - } - s := &ExpDecaySample{ - alpha: alpha, - reservoirSize: reservoirSize, - t0: time.Now(), - values: newExpDecaySampleHeap(reservoirSize), - } - s.t1 = time.Now().Add(rescaleThreshold) - return s -} - -// Clear clears all samples. -func (s *ExpDecaySample) Clear() { - s.mutex.Lock() - defer s.mutex.Unlock() - s.count = 0 - s.t0 = time.Now() - s.t1 = s.t0.Add(rescaleThreshold) - s.values = newExpDecaySampleHeap(s.reservoirSize) -} - -// Count returns the number of samples recorded, which may exceed the -// reservoir size. -func (s *ExpDecaySample) Count() int64 { - s.mutex.Lock() - defer s.mutex.Unlock() - return s.count -} - -// Max returns the maximum value in the sample, which may not be the maximum -// value ever to be part of the sample. -func (s *ExpDecaySample) Max() int64 { - return SampleMax(s.Values()) -} - -// Mean returns the mean of the values in the sample. -func (s *ExpDecaySample) Mean() float64 { - return SampleMean(s.Values()) -} - -// Min returns the minimum value in the sample, which may not be the minimum -// value ever to be part of the sample. -func (s *ExpDecaySample) Min() int64 { - return SampleMin(s.Values()) -} - -// Percentile returns an arbitrary percentile of values in the sample. -func (s *ExpDecaySample) Percentile(p float64) float64 { - return SamplePercentile(s.Values(), p) -} - -// Percentiles returns a slice of arbitrary percentiles of values in the -// sample. -func (s *ExpDecaySample) Percentiles(ps []float64) []float64 { - return SamplePercentiles(s.Values(), ps) -} - -// Size returns the size of the sample, which is at most the reservoir size. -func (s *ExpDecaySample) Size() int { - s.mutex.Lock() - defer s.mutex.Unlock() - return s.values.Size() -} - -// Snapshot returns a read-only copy of the sample. -func (s *ExpDecaySample) Snapshot() Sample { - s.mutex.Lock() - defer s.mutex.Unlock() - vals := s.values.Values() - values := make([]int64, len(vals)) - for i, v := range vals { - values[i] = v.v - } - return &SampleSnapshot{ - count: s.count, - values: values, - } -} - -// StdDev returns the standard deviation of the values in the sample. -func (s *ExpDecaySample) StdDev() float64 { - return SampleStdDev(s.Values()) -} - -// Sum returns the sum of the values in the sample. -func (s *ExpDecaySample) Sum() int64 { - return SampleSum(s.Values()) -} - -// Update samples a new value. -func (s *ExpDecaySample) Update(v int64) { - s.update(time.Now(), v) -} - -// Values returns a copy of the values in the sample. -func (s *ExpDecaySample) Values() []int64 { - s.mutex.Lock() - defer s.mutex.Unlock() - vals := s.values.Values() - values := make([]int64, len(vals)) - for i, v := range vals { - values[i] = v.v - } - return values -} - -// Variance returns the variance of the values in the sample. -func (s *ExpDecaySample) Variance() float64 { - return SampleVariance(s.Values()) -} - -// update samples a new value at a particular timestamp. This is a method all -// its own to facilitate testing. -func (s *ExpDecaySample) update(t time.Time, v int64) { - s.mutex.Lock() - defer s.mutex.Unlock() - s.count++ - if s.values.Size() == s.reservoirSize { - s.values.Pop() - } - s.values.Push(expDecaySample{ - k: math.Exp(t.Sub(s.t0).Seconds()*s.alpha) / rand.Float64(), - v: v, - }) - if t.After(s.t1) { - values := s.values.Values() - t0 := s.t0 - s.values = newExpDecaySampleHeap(s.reservoirSize) - s.t0 = t - s.t1 = s.t0.Add(rescaleThreshold) - for _, v := range values { - v.k = v.k * math.Exp(-s.alpha*float64(s.t0.Sub(t0))) - s.values.Push(v) - } - } -} - -// NilSample is a no-op Sample. -type NilSample struct{} - -// Clear is a no-op. -func (NilSample) Clear() {} - -// Count is a no-op. -func (NilSample) Count() int64 { return 0 } - -// Max is a no-op. -func (NilSample) Max() int64 { return 0 } - -// Mean is a no-op. -func (NilSample) Mean() float64 { return 0.0 } - -// Min is a no-op. -func (NilSample) Min() int64 { return 0 } - -// Percentile is a no-op. -func (NilSample) Percentile(p float64) float64 { return 0.0 } - -// Percentiles is a no-op. -func (NilSample) Percentiles(ps []float64) []float64 { - return make([]float64, len(ps)) -} - -// Size is a no-op. -func (NilSample) Size() int { return 0 } - -// Sample is a no-op. -func (NilSample) Snapshot() Sample { return NilSample{} } - -// StdDev is a no-op. -func (NilSample) StdDev() float64 { return 0.0 } - -// Sum is a no-op. -func (NilSample) Sum() int64 { return 0 } - -// Update is a no-op. -func (NilSample) Update(v int64) {} - -// Values is a no-op. -func (NilSample) Values() []int64 { return []int64{} } - -// Variance is a no-op. -func (NilSample) Variance() float64 { return 0.0 } - -// SampleMax returns the maximum value of the slice of int64. -func SampleMax(values []int64) int64 { - if 0 == len(values) { - return 0 - } - var max int64 = math.MinInt64 - for _, v := range values { - if max < v { - max = v - } - } - return max -} - -// SampleMean returns the mean value of the slice of int64. -func SampleMean(values []int64) float64 { - if 0 == len(values) { - return 0.0 - } - return float64(SampleSum(values)) / float64(len(values)) -} - -// SampleMin returns the minimum value of the slice of int64. -func SampleMin(values []int64) int64 { - if 0 == len(values) { - return 0 - } - var min int64 = math.MaxInt64 - for _, v := range values { - if min > v { - min = v - } - } - return min -} - -// SamplePercentiles returns an arbitrary percentile of the slice of int64. -func SamplePercentile(values int64Slice, p float64) float64 { - return SamplePercentiles(values, []float64{p})[0] -} - -// SamplePercentiles returns a slice of arbitrary percentiles of the slice of -// int64. -func SamplePercentiles(values int64Slice, ps []float64) []float64 { - scores := make([]float64, len(ps)) - size := len(values) - if size > 0 { - sort.Sort(values) - for i, p := range ps { - pos := p * float64(size+1) - if pos < 1.0 { - scores[i] = float64(values[0]) - } else if pos >= float64(size) { - scores[i] = float64(values[size-1]) - } else { - lower := float64(values[int(pos)-1]) - upper := float64(values[int(pos)]) - scores[i] = lower + (pos-math.Floor(pos))*(upper-lower) - } - } - } - return scores -} - -// SampleSnapshot is a read-only copy of another Sample. -type SampleSnapshot struct { - count int64 - values []int64 -} - -// Clear panics. -func (*SampleSnapshot) Clear() { - panic("Clear called on a SampleSnapshot") -} - -// Count returns the count of inputs at the time the snapshot was taken. -func (s *SampleSnapshot) Count() int64 { return s.count } - -// Max returns the maximal value at the time the snapshot was taken. -func (s *SampleSnapshot) Max() int64 { return SampleMax(s.values) } - -// Mean returns the mean value at the time the snapshot was taken. -func (s *SampleSnapshot) Mean() float64 { return SampleMean(s.values) } - -// Min returns the minimal value at the time the snapshot was taken. -func (s *SampleSnapshot) Min() int64 { return SampleMin(s.values) } - -// Percentile returns an arbitrary percentile of values at the time the -// snapshot was taken. -func (s *SampleSnapshot) Percentile(p float64) float64 { - return SamplePercentile(s.values, p) -} - -// Percentiles returns a slice of arbitrary percentiles of values at the time -// the snapshot was taken. -func (s *SampleSnapshot) Percentiles(ps []float64) []float64 { - return SamplePercentiles(s.values, ps) -} - -// Size returns the size of the sample at the time the snapshot was taken. -func (s *SampleSnapshot) Size() int { return len(s.values) } - -// Snapshot returns the snapshot. -func (s *SampleSnapshot) Snapshot() Sample { return s } - -// StdDev returns the standard deviation of values at the time the snapshot was -// taken. -func (s *SampleSnapshot) StdDev() float64 { return SampleStdDev(s.values) } - -// Sum returns the sum of values at the time the snapshot was taken. -func (s *SampleSnapshot) Sum() int64 { return SampleSum(s.values) } - -// Update panics. -func (*SampleSnapshot) Update(int64) { - panic("Update called on a SampleSnapshot") -} - -// Values returns a copy of the values in the sample. -func (s *SampleSnapshot) Values() []int64 { - values := make([]int64, len(s.values)) - copy(values, s.values) - return values -} - -// Variance returns the variance of values at the time the snapshot was taken. -func (s *SampleSnapshot) Variance() float64 { return SampleVariance(s.values) } - -// SampleStdDev returns the standard deviation of the slice of int64. -func SampleStdDev(values []int64) float64 { - return math.Sqrt(SampleVariance(values)) -} - -// SampleSum returns the sum of the slice of int64. -func SampleSum(values []int64) int64 { - var sum int64 - for _, v := range values { - sum += v - } - return sum -} - -// SampleVariance returns the variance of the slice of int64. -func SampleVariance(values []int64) float64 { - if 0 == len(values) { - return 0.0 - } - m := SampleMean(values) - var sum float64 - for _, v := range values { - d := float64(v) - m - sum += d * d - } - return sum / float64(len(values)) -} - -// A uniform sample using Vitter's Algorithm R. -// -// -type UniformSample struct { - count int64 - mutex sync.Mutex - reservoirSize int - values []int64 -} - -// NewUniformSample constructs a new uniform sample with the given reservoir -// size. -func NewUniformSample(reservoirSize int) Sample { - if UseNilMetrics { - return NilSample{} - } - return &UniformSample{ - reservoirSize: reservoirSize, - values: make([]int64, 0, reservoirSize), - } -} - -// Clear clears all samples. -func (s *UniformSample) Clear() { - s.mutex.Lock() - defer s.mutex.Unlock() - s.count = 0 - s.values = make([]int64, 0, s.reservoirSize) -} - -// Count returns the number of samples recorded, which may exceed the -// reservoir size. -func (s *UniformSample) Count() int64 { - s.mutex.Lock() - defer s.mutex.Unlock() - return s.count -} - -// Max returns the maximum value in the sample, which may not be the maximum -// value ever to be part of the sample. -func (s *UniformSample) Max() int64 { - s.mutex.Lock() - defer s.mutex.Unlock() - return SampleMax(s.values) -} - -// Mean returns the mean of the values in the sample. -func (s *UniformSample) Mean() float64 { - s.mutex.Lock() - defer s.mutex.Unlock() - return SampleMean(s.values) -} - -// Min returns the minimum value in the sample, which may not be the minimum -// value ever to be part of the sample. -func (s *UniformSample) Min() int64 { - s.mutex.Lock() - defer s.mutex.Unlock() - return SampleMin(s.values) -} - -// Percentile returns an arbitrary percentile of values in the sample. -func (s *UniformSample) Percentile(p float64) float64 { - s.mutex.Lock() - defer s.mutex.Unlock() - return SamplePercentile(s.values, p) -} - -// Percentiles returns a slice of arbitrary percentiles of values in the -// sample. -func (s *UniformSample) Percentiles(ps []float64) []float64 { - s.mutex.Lock() - defer s.mutex.Unlock() - return SamplePercentiles(s.values, ps) -} - -// Size returns the size of the sample, which is at most the reservoir size. -func (s *UniformSample) Size() int { - s.mutex.Lock() - defer s.mutex.Unlock() - return len(s.values) -} - -// Snapshot returns a read-only copy of the sample. -func (s *UniformSample) Snapshot() Sample { - s.mutex.Lock() - defer s.mutex.Unlock() - values := make([]int64, len(s.values)) - copy(values, s.values) - return &SampleSnapshot{ - count: s.count, - values: values, - } -} - -// StdDev returns the standard deviation of the values in the sample. -func (s *UniformSample) StdDev() float64 { - s.mutex.Lock() - defer s.mutex.Unlock() - return SampleStdDev(s.values) -} - -// Sum returns the sum of the values in the sample. -func (s *UniformSample) Sum() int64 { - s.mutex.Lock() - defer s.mutex.Unlock() - return SampleSum(s.values) -} - -// Update samples a new value. -func (s *UniformSample) Update(v int64) { - s.mutex.Lock() - defer s.mutex.Unlock() - s.count++ - if len(s.values) < s.reservoirSize { - s.values = append(s.values, v) - } else { - s.values[rand.Intn(s.reservoirSize)] = v - } -} - -// Values returns a copy of the values in the sample. -func (s *UniformSample) Values() []int64 { - s.mutex.Lock() - defer s.mutex.Unlock() - values := make([]int64, len(s.values)) - copy(values, s.values) - return values -} - -// Variance returns the variance of the values in the sample. -func (s *UniformSample) Variance() float64 { - s.mutex.Lock() - defer s.mutex.Unlock() - return SampleVariance(s.values) -} - -// expDecaySample represents an individual sample in a heap. -type expDecaySample struct { - k float64 - v int64 -} - -func newExpDecaySampleHeap(reservoirSize int) *expDecaySampleHeap { - return &expDecaySampleHeap{make([]expDecaySample, 0, reservoirSize)} -} - -// expDecaySampleHeap is a min-heap of expDecaySamples. -// The internal implementation is copied from the standard library's container/heap -type expDecaySampleHeap struct { - s []expDecaySample -} - -func (h *expDecaySampleHeap) Push(s expDecaySample) { - n := len(h.s) - h.s = h.s[0 : n+1] - h.s[n] = s - h.up(n) -} - -func (h *expDecaySampleHeap) Pop() expDecaySample { - n := len(h.s) - 1 - h.s[0], h.s[n] = h.s[n], h.s[0] - h.down(0, n) - - n = len(h.s) - s := h.s[n-1] - h.s = h.s[0 : n-1] - return s -} - -func (h *expDecaySampleHeap) Size() int { - return len(h.s) -} - -func (h *expDecaySampleHeap) Values() []expDecaySample { - return h.s -} - -func (h *expDecaySampleHeap) up(j int) { - for { - i := (j - 1) / 2 // parent - if i == j || !(h.s[j].k < h.s[i].k) { - break - } - h.s[i], h.s[j] = h.s[j], h.s[i] - j = i - } -} - -func (h *expDecaySampleHeap) down(i, n int) { - for { - j1 := 2*i + 1 - if j1 >= n || j1 < 0 { // j1 < 0 after int overflow - break - } - j := j1 // left child - if j2 := j1 + 1; j2 < n && !(h.s[j1].k < h.s[j2].k) { - j = j2 // = 2*i + 2 // right child - } - if !(h.s[j].k < h.s[i].k) { - break - } - h.s[i], h.s[j] = h.s[j], h.s[i] - i = j - } -} - -type int64Slice []int64 - -func (p int64Slice) Len() int { return len(p) } -func (p int64Slice) Less(i, j int) bool { return p[i] < p[j] } -func (p int64Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/sample_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/sample_test.go deleted file mode 100644 index 3cff3c09..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/sample_test.go +++ /dev/null @@ -1,352 +0,0 @@ -package metrics - -import ( - "math/rand" - "runtime" - "testing" - "time" -) - -// Benchmark{Compute,Copy}{1000,1000000} demonstrate that, even for relatively -// expensive computations like Variance, the cost of copying the Sample, as -// approximated by a make and copy, is much greater than the cost of the -// computation for small samples and only slightly less for large samples. -func BenchmarkCompute1000(b *testing.B) { - s := make([]int64, 1000) - for i := 0; i < len(s); i++ { - s[i] = int64(i) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - SampleVariance(s) - } -} -func BenchmarkCompute1000000(b *testing.B) { - s := make([]int64, 1000000) - for i := 0; i < len(s); i++ { - s[i] = int64(i) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - SampleVariance(s) - } -} -func BenchmarkCopy1000(b *testing.B) { - s := make([]int64, 1000) - for i := 0; i < len(s); i++ { - s[i] = int64(i) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - sCopy := make([]int64, len(s)) - copy(sCopy, s) - } -} -func BenchmarkCopy1000000(b *testing.B) { - s := make([]int64, 1000000) - for i := 0; i < len(s); i++ { - s[i] = int64(i) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - sCopy := make([]int64, len(s)) - copy(sCopy, s) - } -} - -func BenchmarkExpDecaySample257(b *testing.B) { - benchmarkSample(b, NewExpDecaySample(257, 0.015)) -} - -func BenchmarkExpDecaySample514(b *testing.B) { - benchmarkSample(b, NewExpDecaySample(514, 0.015)) -} - -func BenchmarkExpDecaySample1028(b *testing.B) { - benchmarkSample(b, NewExpDecaySample(1028, 0.015)) -} - -func BenchmarkUniformSample257(b *testing.B) { - benchmarkSample(b, NewUniformSample(257)) -} - -func BenchmarkUniformSample514(b *testing.B) { - benchmarkSample(b, NewUniformSample(514)) -} - -func BenchmarkUniformSample1028(b *testing.B) { - benchmarkSample(b, NewUniformSample(1028)) -} - -func TestExpDecaySample10(t *testing.T) { - rand.Seed(1) - s := NewExpDecaySample(100, 0.99) - for i := 0; i < 10; i++ { - s.Update(int64(i)) - } - if size := s.Count(); 10 != size { - t.Errorf("s.Count(): 10 != %v\n", size) - } - if size := s.Size(); 10 != size { - t.Errorf("s.Size(): 10 != %v\n", size) - } - if l := len(s.Values()); 10 != l { - t.Errorf("len(s.Values()): 10 != %v\n", l) - } - for _, v := range s.Values() { - if v > 10 || v < 0 { - t.Errorf("out of range [0, 10): %v\n", v) - } - } -} - -func TestExpDecaySample100(t *testing.T) { - rand.Seed(1) - s := NewExpDecaySample(1000, 0.01) - for i := 0; i < 100; i++ { - s.Update(int64(i)) - } - if size := s.Count(); 100 != size { - t.Errorf("s.Count(): 100 != %v\n", size) - } - if size := s.Size(); 100 != size { - t.Errorf("s.Size(): 100 != %v\n", size) - } - if l := len(s.Values()); 100 != l { - t.Errorf("len(s.Values()): 100 != %v\n", l) - } - for _, v := range s.Values() { - if v > 100 || v < 0 { - t.Errorf("out of range [0, 100): %v\n", v) - } - } -} - -func TestExpDecaySample1000(t *testing.T) { - rand.Seed(1) - s := NewExpDecaySample(100, 0.99) - for i := 0; i < 1000; i++ { - s.Update(int64(i)) - } - if size := s.Count(); 1000 != size { - t.Errorf("s.Count(): 1000 != %v\n", size) - } - if size := s.Size(); 100 != size { - t.Errorf("s.Size(): 100 != %v\n", size) - } - if l := len(s.Values()); 100 != l { - t.Errorf("len(s.Values()): 100 != %v\n", l) - } - for _, v := range s.Values() { - if v > 1000 || v < 0 { - t.Errorf("out of range [0, 1000): %v\n", v) - } - } -} - -// This test makes sure that the sample's priority is not amplified by using -// nanosecond duration since start rather than second duration since start. -// The priority becomes +Inf quickly after starting if this is done, -// effectively freezing the set of samples until a rescale step happens. -func TestExpDecaySampleNanosecondRegression(t *testing.T) { - rand.Seed(1) - s := NewExpDecaySample(100, 0.99) - for i := 0; i < 100; i++ { - s.Update(10) - } - time.Sleep(1 * time.Millisecond) - for i := 0; i < 100; i++ { - s.Update(20) - } - v := s.Values() - avg := float64(0) - for i := 0; i < len(v); i++ { - avg += float64(v[i]) - } - avg /= float64(len(v)) - if avg > 16 || avg < 14 { - t.Errorf("out of range [14, 16]: %v\n", avg) - } -} - -func TestExpDecaySampleSnapshot(t *testing.T) { - now := time.Now() - rand.Seed(1) - s := NewExpDecaySample(100, 0.99) - for i := 1; i <= 10000; i++ { - s.(*ExpDecaySample).update(now.Add(time.Duration(i)), int64(i)) - } - snapshot := s.Snapshot() - s.Update(1) - testExpDecaySampleStatistics(t, snapshot) -} - -func TestExpDecaySampleStatistics(t *testing.T) { - now := time.Now() - rand.Seed(1) - s := NewExpDecaySample(100, 0.99) - for i := 1; i <= 10000; i++ { - s.(*ExpDecaySample).update(now.Add(time.Duration(i)), int64(i)) - } - testExpDecaySampleStatistics(t, s) -} - -func TestUniformSample(t *testing.T) { - rand.Seed(1) - s := NewUniformSample(100) - for i := 0; i < 1000; i++ { - s.Update(int64(i)) - } - if size := s.Count(); 1000 != size { - t.Errorf("s.Count(): 1000 != %v\n", size) - } - if size := s.Size(); 100 != size { - t.Errorf("s.Size(): 100 != %v\n", size) - } - if l := len(s.Values()); 100 != l { - t.Errorf("len(s.Values()): 100 != %v\n", l) - } - for _, v := range s.Values() { - if v > 1000 || v < 0 { - t.Errorf("out of range [0, 100): %v\n", v) - } - } -} - -func TestUniformSampleIncludesTail(t *testing.T) { - rand.Seed(1) - s := NewUniformSample(100) - max := 100 - for i := 0; i < max; i++ { - s.Update(int64(i)) - } - v := s.Values() - sum := 0 - exp := (max - 1) * max / 2 - for i := 0; i < len(v); i++ { - sum += int(v[i]) - } - if exp != sum { - t.Errorf("sum: %v != %v\n", exp, sum) - } -} - -func TestUniformSampleSnapshot(t *testing.T) { - s := NewUniformSample(100) - for i := 1; i <= 10000; i++ { - s.Update(int64(i)) - } - snapshot := s.Snapshot() - s.Update(1) - testUniformSampleStatistics(t, snapshot) -} - -func TestUniformSampleStatistics(t *testing.T) { - rand.Seed(1) - s := NewUniformSample(100) - for i := 1; i <= 10000; i++ { - s.Update(int64(i)) - } - testUniformSampleStatistics(t, s) -} - -func benchmarkSample(b *testing.B, s Sample) { - var memStats runtime.MemStats - runtime.ReadMemStats(&memStats) - pauseTotalNs := memStats.PauseTotalNs - b.ResetTimer() - for i := 0; i < b.N; i++ { - s.Update(1) - } - b.StopTimer() - runtime.GC() - runtime.ReadMemStats(&memStats) - b.Logf("GC cost: %d ns/op", int(memStats.PauseTotalNs-pauseTotalNs)/b.N) -} - -func testExpDecaySampleStatistics(t *testing.T, s Sample) { - if count := s.Count(); 10000 != count { - t.Errorf("s.Count(): 10000 != %v\n", count) - } - if min := s.Min(); 107 != min { - t.Errorf("s.Min(): 107 != %v\n", min) - } - if max := s.Max(); 10000 != max { - t.Errorf("s.Max(): 10000 != %v\n", max) - } - if mean := s.Mean(); 4965.98 != mean { - t.Errorf("s.Mean(): 4965.98 != %v\n", mean) - } - if stdDev := s.StdDev(); 2959.825156930727 != stdDev { - t.Errorf("s.StdDev(): 2959.825156930727 != %v\n", stdDev) - } - ps := s.Percentiles([]float64{0.5, 0.75, 0.99}) - if 4615 != ps[0] { - t.Errorf("median: 4615 != %v\n", ps[0]) - } - if 7672 != ps[1] { - t.Errorf("75th percentile: 7672 != %v\n", ps[1]) - } - if 9998.99 != ps[2] { - t.Errorf("99th percentile: 9998.99 != %v\n", ps[2]) - } -} - -func testUniformSampleStatistics(t *testing.T, s Sample) { - if count := s.Count(); 10000 != count { - t.Errorf("s.Count(): 10000 != %v\n", count) - } - if min := s.Min(); 9412 != min { - t.Errorf("s.Min(): 9412 != %v\n", min) - } - if max := s.Max(); 10000 != max { - t.Errorf("s.Max(): 10000 != %v\n", max) - } - if mean := s.Mean(); 9902.26 != mean { - t.Errorf("s.Mean(): 9902.26 != %v\n", mean) - } - if stdDev := s.StdDev(); 101.8667384380201 != stdDev { - t.Errorf("s.StdDev(): 101.8667384380201 != %v\n", stdDev) - } - ps := s.Percentiles([]float64{0.5, 0.75, 0.99}) - if 9930.5 != ps[0] { - t.Errorf("median: 9930.5 != %v\n", ps[0]) - } - if 9973.75 != ps[1] { - t.Errorf("75th percentile: 9973.75 != %v\n", ps[1]) - } - if 9999.99 != ps[2] { - t.Errorf("99th percentile: 9999.99 != %v\n", ps[2]) - } -} - -// TestUniformSampleConcurrentUpdateCount would expose data race problems with -// concurrent Update and Count calls on Sample when test is called with -race -// argument -func TestUniformSampleConcurrentUpdateCount(t *testing.T) { - if testing.Short() { - t.Skip("skipping in short mode") - } - s := NewUniformSample(100) - for i := 0; i < 100; i++ { - s.Update(int64(i)) - } - quit := make(chan struct{}) - go func() { - t := time.NewTicker(10 * time.Millisecond) - for { - select { - case <-t.C: - s.Update(rand.Int63()) - case <-quit: - t.Stop() - return - } - } - }() - for i := 0; i < 1000; i++ { - s.Count() - time.Sleep(5 * time.Millisecond) - } - quit <- struct{}{} -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/syslog.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/syslog.go deleted file mode 100644 index 693f1908..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/syslog.go +++ /dev/null @@ -1,78 +0,0 @@ -// +build !windows - -package metrics - -import ( - "fmt" - "log/syslog" - "time" -) - -// Output each metric in the given registry to syslog periodically using -// the given syslogger. -func Syslog(r Registry, d time.Duration, w *syslog.Writer) { - for _ = range time.Tick(d) { - r.Each(func(name string, i interface{}) { - switch metric := i.(type) { - case Counter: - w.Info(fmt.Sprintf("counter %s: count: %d", name, metric.Count())) - case Gauge: - w.Info(fmt.Sprintf("gauge %s: value: %d", name, metric.Value())) - case GaugeFloat64: - w.Info(fmt.Sprintf("gauge %s: value: %f", name, metric.Value())) - case Healthcheck: - metric.Check() - w.Info(fmt.Sprintf("healthcheck %s: error: %v", name, metric.Error())) - case Histogram: - h := metric.Snapshot() - ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - w.Info(fmt.Sprintf( - "histogram %s: count: %d min: %d max: %d mean: %.2f stddev: %.2f median: %.2f 75%%: %.2f 95%%: %.2f 99%%: %.2f 99.9%%: %.2f", - name, - h.Count(), - h.Min(), - h.Max(), - h.Mean(), - h.StdDev(), - ps[0], - ps[1], - ps[2], - ps[3], - ps[4], - )) - case Meter: - m := metric.Snapshot() - w.Info(fmt.Sprintf( - "meter %s: count: %d 1-min: %.2f 5-min: %.2f 15-min: %.2f mean: %.2f", - name, - m.Count(), - m.Rate1(), - m.Rate5(), - m.Rate15(), - m.RateMean(), - )) - case Timer: - t := metric.Snapshot() - ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - w.Info(fmt.Sprintf( - "timer %s: count: %d min: %d max: %d mean: %.2f stddev: %.2f median: %.2f 75%%: %.2f 95%%: %.2f 99%%: %.2f 99.9%%: %.2f 1-min: %.2f 5-min: %.2f 15-min: %.2f mean-rate: %.2f", - name, - t.Count(), - t.Min(), - t.Max(), - t.Mean(), - t.StdDev(), - ps[0], - ps[1], - ps[2], - ps[3], - ps[4], - t.Rate1(), - t.Rate5(), - t.Rate15(), - t.RateMean(), - )) - } - }) - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/timer.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/timer.go deleted file mode 100644 index 17db8f8d..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/timer.go +++ /dev/null @@ -1,311 +0,0 @@ -package metrics - -import ( - "sync" - "time" -) - -// Timers capture the duration and rate of events. -type Timer interface { - Count() int64 - Max() int64 - Mean() float64 - Min() int64 - Percentile(float64) float64 - Percentiles([]float64) []float64 - Rate1() float64 - Rate5() float64 - Rate15() float64 - RateMean() float64 - Snapshot() Timer - StdDev() float64 - Sum() int64 - Time(func()) - Update(time.Duration) - UpdateSince(time.Time) - Variance() float64 -} - -// GetOrRegisterTimer returns an existing Timer or constructs and registers a -// new StandardTimer. -func GetOrRegisterTimer(name string, r Registry) Timer { - if nil == r { - r = DefaultRegistry - } - return r.GetOrRegister(name, NewTimer).(Timer) -} - -// NewCustomTimer constructs a new StandardTimer from a Histogram and a Meter. -func NewCustomTimer(h Histogram, m Meter) Timer { - if UseNilMetrics { - return NilTimer{} - } - return &StandardTimer{ - histogram: h, - meter: m, - } -} - -// NewRegisteredTimer constructs and registers a new StandardTimer. -func NewRegisteredTimer(name string, r Registry) Timer { - c := NewTimer() - if nil == r { - r = DefaultRegistry - } - r.Register(name, c) - return c -} - -// NewTimer constructs a new StandardTimer using an exponentially-decaying -// sample with the same reservoir size and alpha as UNIX load averages. -func NewTimer() Timer { - if UseNilMetrics { - return NilTimer{} - } - return &StandardTimer{ - histogram: NewHistogram(NewExpDecaySample(1028, 0.015)), - meter: NewMeter(), - } -} - -// NilTimer is a no-op Timer. -type NilTimer struct { - h Histogram - m Meter -} - -// Count is a no-op. -func (NilTimer) Count() int64 { return 0 } - -// Max is a no-op. -func (NilTimer) Max() int64 { return 0 } - -// Mean is a no-op. -func (NilTimer) Mean() float64 { return 0.0 } - -// Min is a no-op. -func (NilTimer) Min() int64 { return 0 } - -// Percentile is a no-op. -func (NilTimer) Percentile(p float64) float64 { return 0.0 } - -// Percentiles is a no-op. -func (NilTimer) Percentiles(ps []float64) []float64 { - return make([]float64, len(ps)) -} - -// Rate1 is a no-op. -func (NilTimer) Rate1() float64 { return 0.0 } - -// Rate5 is a no-op. -func (NilTimer) Rate5() float64 { return 0.0 } - -// Rate15 is a no-op. -func (NilTimer) Rate15() float64 { return 0.0 } - -// RateMean is a no-op. -func (NilTimer) RateMean() float64 { return 0.0 } - -// Snapshot is a no-op. -func (NilTimer) Snapshot() Timer { return NilTimer{} } - -// StdDev is a no-op. -func (NilTimer) StdDev() float64 { return 0.0 } - -// Sum is a no-op. -func (NilTimer) Sum() int64 { return 0 } - -// Time is a no-op. -func (NilTimer) Time(func()) {} - -// Update is a no-op. -func (NilTimer) Update(time.Duration) {} - -// UpdateSince is a no-op. -func (NilTimer) UpdateSince(time.Time) {} - -// Variance is a no-op. -func (NilTimer) Variance() float64 { return 0.0 } - -// StandardTimer is the standard implementation of a Timer and uses a Histogram -// and Meter. -type StandardTimer struct { - histogram Histogram - meter Meter - mutex sync.Mutex -} - -// Count returns the number of events recorded. -func (t *StandardTimer) Count() int64 { - return t.histogram.Count() -} - -// Max returns the maximum value in the sample. -func (t *StandardTimer) Max() int64 { - return t.histogram.Max() -} - -// Mean returns the mean of the values in the sample. -func (t *StandardTimer) Mean() float64 { - return t.histogram.Mean() -} - -// Min returns the minimum value in the sample. -func (t *StandardTimer) Min() int64 { - return t.histogram.Min() -} - -// Percentile returns an arbitrary percentile of the values in the sample. -func (t *StandardTimer) Percentile(p float64) float64 { - return t.histogram.Percentile(p) -} - -// Percentiles returns a slice of arbitrary percentiles of the values in the -// sample. -func (t *StandardTimer) Percentiles(ps []float64) []float64 { - return t.histogram.Percentiles(ps) -} - -// Rate1 returns the one-minute moving average rate of events per second. -func (t *StandardTimer) Rate1() float64 { - return t.meter.Rate1() -} - -// Rate5 returns the five-minute moving average rate of events per second. -func (t *StandardTimer) Rate5() float64 { - return t.meter.Rate5() -} - -// Rate15 returns the fifteen-minute moving average rate of events per second. -func (t *StandardTimer) Rate15() float64 { - return t.meter.Rate15() -} - -// RateMean returns the meter's mean rate of events per second. -func (t *StandardTimer) RateMean() float64 { - return t.meter.RateMean() -} - -// Snapshot returns a read-only copy of the timer. -func (t *StandardTimer) Snapshot() Timer { - t.mutex.Lock() - defer t.mutex.Unlock() - return &TimerSnapshot{ - histogram: t.histogram.Snapshot().(*HistogramSnapshot), - meter: t.meter.Snapshot().(*MeterSnapshot), - } -} - -// StdDev returns the standard deviation of the values in the sample. -func (t *StandardTimer) StdDev() float64 { - return t.histogram.StdDev() -} - -// Sum returns the sum in the sample. -func (t *StandardTimer) Sum() int64 { - return t.histogram.Sum() -} - -// Record the duration of the execution of the given function. -func (t *StandardTimer) Time(f func()) { - ts := time.Now() - f() - t.Update(time.Since(ts)) -} - -// Record the duration of an event. -func (t *StandardTimer) Update(d time.Duration) { - t.mutex.Lock() - defer t.mutex.Unlock() - t.histogram.Update(int64(d)) - t.meter.Mark(1) -} - -// Record the duration of an event that started at a time and ends now. -func (t *StandardTimer) UpdateSince(ts time.Time) { - t.mutex.Lock() - defer t.mutex.Unlock() - t.histogram.Update(int64(time.Since(ts))) - t.meter.Mark(1) -} - -// Variance returns the variance of the values in the sample. -func (t *StandardTimer) Variance() float64 { - return t.histogram.Variance() -} - -// TimerSnapshot is a read-only copy of another Timer. -type TimerSnapshot struct { - histogram *HistogramSnapshot - meter *MeterSnapshot -} - -// Count returns the number of events recorded at the time the snapshot was -// taken. -func (t *TimerSnapshot) Count() int64 { return t.histogram.Count() } - -// Max returns the maximum value at the time the snapshot was taken. -func (t *TimerSnapshot) Max() int64 { return t.histogram.Max() } - -// Mean returns the mean value at the time the snapshot was taken. -func (t *TimerSnapshot) Mean() float64 { return t.histogram.Mean() } - -// Min returns the minimum value at the time the snapshot was taken. -func (t *TimerSnapshot) Min() int64 { return t.histogram.Min() } - -// Percentile returns an arbitrary percentile of sampled values at the time the -// snapshot was taken. -func (t *TimerSnapshot) Percentile(p float64) float64 { - return t.histogram.Percentile(p) -} - -// Percentiles returns a slice of arbitrary percentiles of sampled values at -// the time the snapshot was taken. -func (t *TimerSnapshot) Percentiles(ps []float64) []float64 { - return t.histogram.Percentiles(ps) -} - -// Rate1 returns the one-minute moving average rate of events per second at the -// time the snapshot was taken. -func (t *TimerSnapshot) Rate1() float64 { return t.meter.Rate1() } - -// Rate5 returns the five-minute moving average rate of events per second at -// the time the snapshot was taken. -func (t *TimerSnapshot) Rate5() float64 { return t.meter.Rate5() } - -// Rate15 returns the fifteen-minute moving average rate of events per second -// at the time the snapshot was taken. -func (t *TimerSnapshot) Rate15() float64 { return t.meter.Rate15() } - -// RateMean returns the meter's mean rate of events per second at the time the -// snapshot was taken. -func (t *TimerSnapshot) RateMean() float64 { return t.meter.RateMean() } - -// Snapshot returns the snapshot. -func (t *TimerSnapshot) Snapshot() Timer { return t } - -// StdDev returns the standard deviation of the values at the time the snapshot -// was taken. -func (t *TimerSnapshot) StdDev() float64 { return t.histogram.StdDev() } - -// Sum returns the sum at the time the snapshot was taken. -func (t *TimerSnapshot) Sum() int64 { return t.histogram.Sum() } - -// Time panics. -func (*TimerSnapshot) Time(func()) { - panic("Time called on a TimerSnapshot") -} - -// Update panics. -func (*TimerSnapshot) Update(time.Duration) { - panic("Update called on a TimerSnapshot") -} - -// UpdateSince panics. -func (*TimerSnapshot) UpdateSince(time.Time) { - panic("UpdateSince called on a TimerSnapshot") -} - -// Variance returns the variance of the values at the time the snapshot was -// taken. -func (t *TimerSnapshot) Variance() float64 { return t.histogram.Variance() } diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/timer_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/timer_test.go deleted file mode 100644 index 2fa415d4..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/timer_test.go +++ /dev/null @@ -1,81 +0,0 @@ -package metrics - -import ( - "math" - "testing" - "time" -) - -func BenchmarkTimer(b *testing.B) { - tm := NewTimer() - b.ResetTimer() - for i := 0; i < b.N; i++ { - tm.Update(1) - } -} - -func TestGetOrRegisterTimer(t *testing.T) { - r := NewRegistry() - NewRegisteredTimer("foo", r).Update(47) - if tm := GetOrRegisterTimer("foo", r); 1 != tm.Count() { - t.Fatal(tm) - } -} - -func TestTimerExtremes(t *testing.T) { - tm := NewTimer() - tm.Update(math.MaxInt64) - tm.Update(0) - if stdDev := tm.StdDev(); 4.611686018427388e+18 != stdDev { - t.Errorf("tm.StdDev(): 4.611686018427388e+18 != %v\n", stdDev) - } -} - -func TestTimerFunc(t *testing.T) { - tm := NewTimer() - tm.Time(func() { time.Sleep(50e6) }) - if max := tm.Max(); 45e6 > max || max > 55e6 { - t.Errorf("tm.Max(): 45e6 > %v || %v > 55e6\n", max, max) - } -} - -func TestTimerZero(t *testing.T) { - tm := NewTimer() - if count := tm.Count(); 0 != count { - t.Errorf("tm.Count(): 0 != %v\n", count) - } - if min := tm.Min(); 0 != min { - t.Errorf("tm.Min(): 0 != %v\n", min) - } - if max := tm.Max(); 0 != max { - t.Errorf("tm.Max(): 0 != %v\n", max) - } - if mean := tm.Mean(); 0.0 != mean { - t.Errorf("tm.Mean(): 0.0 != %v\n", mean) - } - if stdDev := tm.StdDev(); 0.0 != stdDev { - t.Errorf("tm.StdDev(): 0.0 != %v\n", stdDev) - } - ps := tm.Percentiles([]float64{0.5, 0.75, 0.99}) - if 0.0 != ps[0] { - t.Errorf("median: 0.0 != %v\n", ps[0]) - } - if 0.0 != ps[1] { - t.Errorf("75th percentile: 0.0 != %v\n", ps[1]) - } - if 0.0 != ps[2] { - t.Errorf("99th percentile: 0.0 != %v\n", ps[2]) - } - if rate1 := tm.Rate1(); 0.0 != rate1 { - t.Errorf("tm.Rate1(): 0.0 != %v\n", rate1) - } - if rate5 := tm.Rate5(); 0.0 != rate5 { - t.Errorf("tm.Rate5(): 0.0 != %v\n", rate5) - } - if rate15 := tm.Rate15(); 0.0 != rate15 { - t.Errorf("tm.Rate15(): 0.0 != %v\n", rate15) - } - if rateMean := tm.RateMean(); 0.0 != rateMean { - t.Errorf("tm.RateMean(): 0.0 != %v\n", rateMean) - } -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/writer.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/writer.go deleted file mode 100644 index 091e971d..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/writer.go +++ /dev/null @@ -1,100 +0,0 @@ -package metrics - -import ( - "fmt" - "io" - "sort" - "time" -) - -// Write sorts writes each metric in the given registry periodically to the -// given io.Writer. -func Write(r Registry, d time.Duration, w io.Writer) { - for _ = range time.Tick(d) { - WriteOnce(r, w) - } -} - -// WriteOnce sorts and writes metrics in the given registry to the given -// io.Writer. -func WriteOnce(r Registry, w io.Writer) { - var namedMetrics namedMetricSlice - r.Each(func(name string, i interface{}) { - namedMetrics = append(namedMetrics, namedMetric{name, i}) - }) - - sort.Sort(namedMetrics) - for _, namedMetric := range namedMetrics { - switch metric := namedMetric.m.(type) { - case Counter: - fmt.Fprintf(w, "counter %s\n", namedMetric.name) - fmt.Fprintf(w, " count: %9d\n", metric.Count()) - case Gauge: - fmt.Fprintf(w, "gauge %s\n", namedMetric.name) - fmt.Fprintf(w, " value: %9d\n", metric.Value()) - case GaugeFloat64: - fmt.Fprintf(w, "gauge %s\n", namedMetric.name) - fmt.Fprintf(w, " value: %f\n", metric.Value()) - case Healthcheck: - metric.Check() - fmt.Fprintf(w, "healthcheck %s\n", namedMetric.name) - fmt.Fprintf(w, " error: %v\n", metric.Error()) - case Histogram: - h := metric.Snapshot() - ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - fmt.Fprintf(w, "histogram %s\n", namedMetric.name) - fmt.Fprintf(w, " count: %9d\n", h.Count()) - fmt.Fprintf(w, " min: %9d\n", h.Min()) - fmt.Fprintf(w, " max: %9d\n", h.Max()) - fmt.Fprintf(w, " mean: %12.2f\n", h.Mean()) - fmt.Fprintf(w, " stddev: %12.2f\n", h.StdDev()) - fmt.Fprintf(w, " median: %12.2f\n", ps[0]) - fmt.Fprintf(w, " 75%%: %12.2f\n", ps[1]) - fmt.Fprintf(w, " 95%%: %12.2f\n", ps[2]) - fmt.Fprintf(w, " 99%%: %12.2f\n", ps[3]) - fmt.Fprintf(w, " 99.9%%: %12.2f\n", ps[4]) - case Meter: - m := metric.Snapshot() - fmt.Fprintf(w, "meter %s\n", namedMetric.name) - fmt.Fprintf(w, " count: %9d\n", m.Count()) - fmt.Fprintf(w, " 1-min rate: %12.2f\n", m.Rate1()) - fmt.Fprintf(w, " 5-min rate: %12.2f\n", m.Rate5()) - fmt.Fprintf(w, " 15-min rate: %12.2f\n", m.Rate15()) - fmt.Fprintf(w, " mean rate: %12.2f\n", m.RateMean()) - case Timer: - t := metric.Snapshot() - ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - fmt.Fprintf(w, "timer %s\n", namedMetric.name) - fmt.Fprintf(w, " count: %9d\n", t.Count()) - fmt.Fprintf(w, " min: %9d\n", t.Min()) - fmt.Fprintf(w, " max: %9d\n", t.Max()) - fmt.Fprintf(w, " mean: %12.2f\n", t.Mean()) - fmt.Fprintf(w, " stddev: %12.2f\n", t.StdDev()) - fmt.Fprintf(w, " median: %12.2f\n", ps[0]) - fmt.Fprintf(w, " 75%%: %12.2f\n", ps[1]) - fmt.Fprintf(w, " 95%%: %12.2f\n", ps[2]) - fmt.Fprintf(w, " 99%%: %12.2f\n", ps[3]) - fmt.Fprintf(w, " 99.9%%: %12.2f\n", ps[4]) - fmt.Fprintf(w, " 1-min rate: %12.2f\n", t.Rate1()) - fmt.Fprintf(w, " 5-min rate: %12.2f\n", t.Rate5()) - fmt.Fprintf(w, " 15-min rate: %12.2f\n", t.Rate15()) - fmt.Fprintf(w, " mean rate: %12.2f\n", t.RateMean()) - } - } -} - -type namedMetric struct { - name string - m interface{} -} - -// namedMetricSlice is a slice of namedMetrics that implements sort.Interface. -type namedMetricSlice []namedMetric - -func (nms namedMetricSlice) Len() int { return len(nms) } - -func (nms namedMetricSlice) Swap(i, j int) { nms[i], nms[j] = nms[j], nms[i] } - -func (nms namedMetricSlice) Less(i, j int) bool { - return nms[i].name < nms[j].name -} diff --git a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/writer_test.go b/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/writer_test.go deleted file mode 100644 index 1aacc287..00000000 --- a/vendor/gx/QmeYJHEk8UjVVZ4XCRTZe6dFQrb8pGWD81LYCgeLp8CvMB/go-metrics/writer_test.go +++ /dev/null @@ -1,22 +0,0 @@ -package metrics - -import ( - "sort" - "testing" -) - -func TestMetricsSorting(t *testing.T) { - var namedMetrics = namedMetricSlice{ - {name: "zzz"}, - {name: "bbb"}, - {name: "fff"}, - {name: "ggg"}, - } - - sort.Sort(namedMetrics) - for i, name := range []string{"bbb", "fff", "ggg", "zzz"} { - if namedMetrics[i].name != name { - t.Fail() - } - } -} diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/.gxignore b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/.travis.yml b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/.travis.yml deleted file mode 100644 index d16d679a..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: go - -go: - - 1.3 - - 1.4 - - release - - tip - -script: - - go test -race -cpu=5 -v ./... diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/LICENSE b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/LICENSE deleted file mode 100644 index 0d760cbb..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2013 Conformal Systems LLC. - -Permission to use, copy, modify, and distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/README.md b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/README.md deleted file mode 100644 index f373e593..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# go-reuseport - -[![travisbadge](https://travis-ci.org/jbenet/go-reuseport.svg)](https://travis-ci.org/jbenet/go-reuseport) - -This package enables listening and dialing from _the same_ TCP or UDP port. -This means that the following sockopts are set: - -``` -SO_REUSEADDR -SO_REUSEPORT -``` - -- godoc: https://godoc.org/github.com/jbenet/go-reuseport - -This is a simple package to get around the problem of reusing addresses. -The go `net` package (to my knowledge) does not allow setting socket options. -This is particularly problematic when attempting to do TCP NAT holepunching, -which requires a process to both Listen and Dial on the same TCP port. -This package makes this possible for me. It is a pretty narrow use case, but -perhaps this package can grow to be more general over time. - -## Examples - - -```Go -// listen on the same port. oh yeah. -l1, _ := reuse.Listen("tcp", "127.0.0.1:1234") -l2, _ := reuse.Listen("tcp", "127.0.0.1:1234") -``` - -```Go -// dial from the same port. oh yeah. -l1, _ := reuse.Listen("tcp", "127.0.0.1:1234") -l2, _ := reuse.Listen("tcp", "127.0.0.1:1235") -c, _ := reuse.Dial("tcp", "127.0.0.1:1234", "127.0.0.1:1235") -``` - -**Note: cant dial self because tcp/ip stacks use 4-tuples to identify connections, and doing so would clash.** - -## Tested - -Tested on `darwin` and `linux`. diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/addr.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/addr.go deleted file mode 100644 index cfffc7c8..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/addr.go +++ /dev/null @@ -1,20 +0,0 @@ -package reuseport - -import ( - "net" -) - -func ResolveAddr(network, address string) (net.Addr, error) { - switch network { - default: - return nil, net.UnknownNetworkError(network) - case "ip", "ip4", "ip6": - return net.ResolveIPAddr(network, address) - case "tcp", "tcp4", "tcp6": - return net.ResolveTCPAddr(network, address) - case "udp", "udp4", "udp6": - return net.ResolveUDPAddr(network, address) - case "unix", "unixgram", "unixpacket": - return net.ResolveUnixAddr(network, address) - } -} diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/available_unix.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/available_unix.go deleted file mode 100644 index fb52a87c..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/available_unix.go +++ /dev/null @@ -1,91 +0,0 @@ -// +build darwin freebsd dragonfly netbsd openbsd linux - -package reuseport - -import ( - "sync" - "sync/atomic" - "syscall" - "time" -) - -// checker is a struct to gather the availability check fields + funcs. -// we use atomic ints because this is potentially a really hot function call. -type checkerT struct { - avail int32 // atomic int managed by set/isAvailable() - check int32 // atomic int managed by has/checked() - mu sync.Mutex // synchonizes the actual check -} - -// the static location of the vars. -var checker checkerT - -func (c *checkerT) isAvailable() bool { - return atomic.LoadInt32(&c.avail) != 0 -} - -func (c *checkerT) setIsAvailable(b bool) { - if b { - atomic.StoreInt32(&c.avail, 1) - } else { - atomic.StoreInt32(&c.avail, 0) - } -} - -func (c *checkerT) hasChecked() bool { - return atomic.LoadInt32(&c.check) != 0 -} - -func (c *checkerT) setHasChecked(b bool) { - if b { - atomic.StoreInt32(&c.check, 1) - } else { - atomic.StoreInt32(&c.check, 0) - } -} - -// Available returns whether or not SO_REUSEPORT is available in the OS. -// It does so by attepting to open a tcp listener, setting the option, and -// checking ENOPROTOOPT on error. After checking, the decision is cached -// for the rest of the process run. -func available() bool { - if checker.hasChecked() { - return checker.isAvailable() - } - - // synchronize, only one should check - checker.mu.Lock() - defer checker.mu.Unlock() - - // we blocked. someone may have been gotten this. - if checker.hasChecked() { - return checker.isAvailable() - } - - // there may be fluke reasons to fail to add a listener. - // so we give it 5 shots. if not, give up and call it not avail. - for i := 0; i < 5; i++ { - // try to listen at tcp port 0. - l, err := listenStream("tcp", "127.0.0.1:0") - if err == nil { - // no error? available. - checker.setIsAvailable(true) - checker.setHasChecked(true) - l.Close() // Go back to the Shadow! - return true - } - - if errno, ok := err.(syscall.Errno); ok { - if errno == syscall.ENOPROTOOPT { - break // :( that's all folks. - } - } - - // not an errno? or not ENOPROTOOPT? retry. - <-time.After(20 * time.Millisecond) // wait a bit - } - - checker.setIsAvailable(false) - checker.setHasChecked(true) - return false -} diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/const_bsd.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/const_bsd.go deleted file mode 100644 index 480ddbbb..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/const_bsd.go +++ /dev/null @@ -1,10 +0,0 @@ -// +build darwin freebsd dragonfly netbsd openbsd - -package reuseport - -import ( - "syscall" -) - -var soReusePort = syscall.SO_REUSEPORT -var soReuseAddr = syscall.SO_REUSEADDR diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/const_linux.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/const_linux.go deleted file mode 100644 index 93ddfd90..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/const_linux.go +++ /dev/null @@ -1,10 +0,0 @@ -// +build linux - -package reuseport - -import ( - "syscall" -) - -var soReusePort = 15 // this is not defined in unix go pkg. -var soReuseAddr = syscall.SO_REUSEADDR diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/impl_unix.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/impl_unix.go deleted file mode 100644 index e1d68e4a..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/impl_unix.go +++ /dev/null @@ -1,360 +0,0 @@ -// +build darwin freebsd dragonfly netbsd openbsd linux - -package reuseport - -import ( - "net" - "os" - "strconv" - "syscall" - "time" - - sockaddrnet "gx/QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn/go-sockaddr/net" - poll "gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll" -) - -const ( - filePrefix = "port." -) - -// Wrapper around the socket system call that marks the returned file -// descriptor as nonblocking and close-on-exec. -func socket(family, socktype, protocol int) (fd int, err error) { - syscall.ForkLock.RLock() - fd, err = syscall.Socket(family, socktype, protocol) - if err == nil { - syscall.CloseOnExec(fd) - } - syscall.ForkLock.RUnlock() - - if err != nil { - return -1, err - } - - // cant set it until after connect - // if err = syscall.SetNonblock(fd, true); err != nil { - // syscall.Close(fd) - // return -1, err - // } - - if err = syscall.SetsockoptInt(fd, syscall.SOL_SOCKET, soReuseAddr, 1); err != nil { - syscall.Close(fd) - return -1, err - } - - if err = syscall.SetsockoptInt(fd, syscall.SOL_SOCKET, soReusePort, 1); err != nil { - syscall.Close(fd) - return -1, err - } - - // set setLinger to 5 as reusing exact same (srcip:srcport, dstip:dstport) - // will otherwise fail on connect. - if err = setLinger(fd, 5); err != nil { - syscall.Close(fd) - return -1, err - } - - return fd, nil -} - -func dial(dialer net.Dialer, netw, addr string) (c net.Conn, err error) { - var ( - fd int - lfamily int - rfamily int - socktype int - lprotocol int - rprotocol int - file *os.File - deadline time.Time - remoteSockaddr syscall.Sockaddr - localSockaddr syscall.Sockaddr - ) - - netAddr, err := ResolveAddr(netw, addr) - if err != nil { - return nil, err - } - - switch netAddr.(type) { - case *net.TCPAddr, *net.UDPAddr: - default: - return nil, ErrUnsupportedProtocol - } - - switch { - case !dialer.Deadline.IsZero(): - deadline = dialer.Deadline - case dialer.Timeout != 0: - deadline = time.Now().Add(dialer.Timeout) - } - - localSockaddr = sockaddrnet.NetAddrToSockaddr(dialer.LocalAddr) - remoteSockaddr = sockaddrnet.NetAddrToSockaddr(netAddr) - - rfamily = sockaddrnet.NetAddrAF(netAddr) - rprotocol = sockaddrnet.NetAddrIPPROTO(netAddr) - socktype = sockaddrnet.NetAddrSOCK(netAddr) - - if dialer.LocalAddr != nil { - switch dialer.LocalAddr.(type) { - case *net.TCPAddr, *net.UDPAddr: - default: - return nil, ErrUnsupportedProtocol - } - - // check family and protocols match. - lfamily = sockaddrnet.NetAddrAF(dialer.LocalAddr) - lprotocol = sockaddrnet.NetAddrIPPROTO(dialer.LocalAddr) - if lfamily != rfamily && lprotocol != rfamily { - return nil, &net.AddrError{Err: "unexpected address type", Addr: netAddr.String()} - } - } - - // look at dialTCP in http://golang.org/src/net/tcpsock_posix.go .... ! - // here we just try again 3 times. - for i := 0; i < 3; i++ { - if !deadline.IsZero() && deadline.Before(time.Now()) { - err = errTimeout - break - } - - if fd, err = socket(rfamily, socktype, rprotocol); err != nil { - return nil, err - } - - if localSockaddr != nil { - if err = syscall.Bind(fd, localSockaddr); err != nil { - syscall.Close(fd) - return nil, err - } - } - - if err = syscall.SetNonblock(fd, true); err != nil { - syscall.Close(fd) - return nil, err - } - - if err = connect(fd, remoteSockaddr, deadline); err != nil { - syscall.Close(fd) - continue // try again. - } - - break - } - if err != nil { - return nil, err - } - - if rprotocol == syscall.IPPROTO_TCP { - // by default golang/net sets TCP no delay to true. - if err = setNoDelay(fd, true); err != nil { - syscall.Close(fd) - return nil, err - } - } - - // File Name get be nil - file = os.NewFile(uintptr(fd), filePrefix+strconv.Itoa(os.Getpid())) - if c, err = net.FileConn(file); err != nil { - syscall.Close(fd) - return nil, err - } - - if err = file.Close(); err != nil { - syscall.Close(fd) - c.Close() - return nil, err - } - - // c = wrapConnWithRemoteAddr(c, netAddr) - return c, err -} - -func listen(netw, addr string) (fd int, err error) { - var ( - family int - socktype int - protocol int - sockaddr syscall.Sockaddr - ) - - netAddr, err := ResolveAddr(netw, addr) - if err != nil { - return -1, err - } - - switch netAddr.(type) { - case *net.TCPAddr, *net.UDPAddr: - default: - return -1, ErrUnsupportedProtocol - } - - family = sockaddrnet.NetAddrAF(netAddr) - protocol = sockaddrnet.NetAddrIPPROTO(netAddr) - sockaddr = sockaddrnet.NetAddrToSockaddr(netAddr) - socktype = sockaddrnet.NetAddrSOCK(netAddr) - - if fd, err = socket(family, socktype, protocol); err != nil { - return -1, err - } - - if err = syscall.Bind(fd, sockaddr); err != nil { - syscall.Close(fd) - return -1, err - } - - if protocol == syscall.IPPROTO_TCP { - // by default golang/net sets TCP no delay to true. - if err = setNoDelay(fd, true); err != nil { - syscall.Close(fd) - return -1, err - } - } - - if err = syscall.SetNonblock(fd, true); err != nil { - syscall.Close(fd) - return -1, err - } - - return fd, nil -} - -func listenStream(netw, addr string) (l net.Listener, err error) { - var ( - file *os.File - ) - - fd, err := listen(netw, addr) - if err != nil { - return nil, err - } - - // Set backlog size to the maximum - if err = syscall.Listen(fd, syscall.SOMAXCONN); err != nil { - syscall.Close(fd) - return nil, err - } - - file = os.NewFile(uintptr(fd), filePrefix+strconv.Itoa(os.Getpid())) - if l, err = net.FileListener(file); err != nil { - syscall.Close(fd) - return nil, err - } - - if err = file.Close(); err != nil { - syscall.Close(fd) - l.Close() - return nil, err - } - - return l, err -} - -func listenPacket(netw, addr string) (p net.PacketConn, err error) { - var ( - file *os.File - ) - - fd, err := listen(netw, addr) - if err != nil { - return nil, err - } - - file = os.NewFile(uintptr(fd), filePrefix+strconv.Itoa(os.Getpid())) - if p, err = net.FilePacketConn(file); err != nil { - syscall.Close(fd) - return nil, err - } - - if err = file.Close(); err != nil { - syscall.Close(fd) - p.Close() - return nil, err - } - - return p, err -} - -func listenUDP(netw, addr string) (c net.Conn, err error) { - var ( - file *os.File - ) - - fd, err := listen(netw, addr) - if err != nil { - return nil, err - } - - file = os.NewFile(uintptr(fd), filePrefix+strconv.Itoa(os.Getpid())) - if c, err = net.FileConn(file); err != nil { - syscall.Close(fd) - return nil, err - } - - if err = file.Close(); err != nil { - syscall.Close(fd) - return nil, err - } - - return c, err -} - -// this is close to the connect() function inside stdlib/net -func connect(fd int, ra syscall.Sockaddr, deadline time.Time) error { - switch err := syscall.Connect(fd, ra); err { - case syscall.EINPROGRESS, syscall.EALREADY, syscall.EINTR: - case nil, syscall.EISCONN: - if !deadline.IsZero() && deadline.Before(time.Now()) { - return errTimeout - } - return nil - default: - return err - } - - poller, err := poll.New(fd) - if err != nil { - return err - } - defer poller.Close() - - for { - if err = poller.WaitWrite(deadline); err != nil { - return err - } - - // if err := fd.pd.WaitWrite(); err != nil { - // return err - // } - // i'd use the above fd.pd.WaitWrite to poll io correctly, just like net sockets... - // but of course, it uses the damn runtime_* functions that _cannot_ be used by - // non-go-stdlib source... seriously guys, this is not nice. - // we're relegated to using syscall.Select (what nightmare that is) or using - // a simple but totally bogus time-based wait. such garbage. - var nerr int - nerr, err = syscall.GetsockoptInt(fd, syscall.SOL_SOCKET, syscall.SO_ERROR) - if err != nil { - return err - } - switch err = syscall.Errno(nerr); err { - case syscall.EINPROGRESS, syscall.EALREADY, syscall.EINTR: - continue - case syscall.Errno(0), syscall.EISCONN: - if !deadline.IsZero() && deadline.Before(time.Now()) { - return errTimeout - } - return nil - default: - return err - } - } -} - -var errTimeout = &timeoutError{} - -type timeoutError struct{} - -func (e *timeoutError) Error() string { return "i/o timeout" } -func (e *timeoutError) Timeout() bool { return true } -func (e *timeoutError) Temporary() bool { return true } diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/impl_windows.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/impl_windows.go deleted file mode 100644 index c33b2eed..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/impl_windows.go +++ /dev/null @@ -1,28 +0,0 @@ -package reuseport - -import "net" - -// TODO. for now, just pass it over to net.Listen/net.Dial - -func listen(network, address string) (net.Listener, error) { - return net.Listen(network, address) -} - -func listenPacket(netw, laddr string) (net.PacketConn, error) { - return net.ListenPacket(netw, laddr) -} - -func listenStream(netw, addr string) (net.Listener, error) { - return listen(netw, addr) -} - -func dial(dialer net.Dialer, network, address string) (net.Conn, error) { - return dialer.Dial(network, address) -} - -// on windows, we just use the regular functions. sources -// vary on this-- some claim port reuse behavior is on by default -// on some windows systems. So we try. may the force be with you. -func available() bool { - return true -} diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/interface.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/interface.go deleted file mode 100644 index d20b3b4c..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/interface.go +++ /dev/null @@ -1,110 +0,0 @@ -// Package reuseport provides Listen and Dial functions that set socket options -// in order to be able to reuse ports. You should only use this package if you -// know what SO_REUSEADDR and SO_REUSEPORT are. -// -// For example: -// -// // listen on the same port. oh yeah. -// l1, _ := reuse.Listen("tcp", "127.0.0.1:1234") -// l2, _ := reuse.Listen("tcp", "127.0.0.1:1234") -// -// // dial from the same port. oh yeah. -// l1, _ := reuse.Listen("tcp", "127.0.0.1:1234") -// l2, _ := reuse.Listen("tcp", "127.0.0.1:1235") -// c, _ := reuse.Dial("tcp", "127.0.0.1:1234", "127.0.0.1:1235") -// -// Note: cant dial self because tcp/ip stacks use 4-tuples to identify connections, -// and doing so would clash. -package reuseport - -import ( - "errors" - "net" - "syscall" - "time" -) - -// Available returns whether or not SO_REUSEPORT is available in the OS. -// It does so by attepting to open a tcp listener, setting the option, and -// checking ENOPROTOOPT on error. After checking, the decision is cached -// for the rest of the process run. -func Available() bool { - return available() -} - -// ErrUnsuportedProtocol signals that the protocol is not currently -// supported by this package. This package currently only supports TCP. -var ErrUnsupportedProtocol = errors.New("protocol not yet supported") - -// ErrReuseFailed is returned if a reuse attempt was unsuccessful. -var ErrReuseFailed = errors.New("reuse failed") - -// Listen listens at the given network and address. see net.Listen -// Returns a net.Listener created from a file discriptor for a socket -// with SO_REUSEPORT and SO_REUSEADDR option set. -func Listen(network, address string) (net.Listener, error) { - if !available() { - return nil, syscall.Errno(syscall.ENOPROTOOPT) - } - - return listenStream(network, address) -} - -// ListenPacket listens at the given network and address. see net.ListenPacket -// Returns a net.Listener created from a file discriptor for a socket -// with SO_REUSEPORT and SO_REUSEADDR option set. -func ListenPacket(network, address string) (net.PacketConn, error) { - if !available() { - return nil, syscall.Errno(syscall.ENOPROTOOPT) - } - - return listenPacket(network, address) -} - -// Dial dials the given network and address. see net.Dialer.Dial -// Returns a net.Conn created from a file discriptor for a socket -// with SO_REUSEPORT and SO_REUSEADDR option set. -func Dial(network, laddr, raddr string) (net.Conn, error) { - if !available() { - return nil, syscall.Errno(syscall.ENOPROTOOPT) - } - - var d Dialer - if laddr != "" { - netladdr, err := ResolveAddr(network, laddr) - if err != nil { - return nil, err - } - d.D.LocalAddr = netladdr - } - - return d.Dial(network, raddr) -} - -// Dialer is used to specify the Dial options, much like net.Dialer. -// We simply wrap a net.Dialer. -type Dialer struct { - D net.Dialer -} - -// Dial dials the given network and address. see net.Dialer.Dial -// Returns a net.Conn created from a file discriptor for a socket -// with SO_REUSEPORT and SO_REUSEADDR option set. -func (d *Dialer) Dial(network, address string) (net.Conn, error) { - if !available() { - return nil, syscall.Errno(syscall.ENOPROTOOPT) - } - - return dial(d.D, network, address) -} - -func (d *Dialer) deadline(def time.Duration) time.Time { - switch { - case !d.D.Deadline.IsZero(): - return d.D.Deadline - case d.D.Timeout != 0: - return time.Now().Add(d.D.Timeout) - default: - return time.Now().Add(def) - } -} diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/opts_posix.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/opts_posix.go deleted file mode 100644 index cc5774ff..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/opts_posix.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2009 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 darwin dragonfly freebsd linux netbsd openbsd solaris - -package reuseport - -import ( - "os" - "syscall" -) - -func boolint(b bool) int { - if b { - return 1 - } - return 0 -} - -func setNoDelay(fd int, noDelay bool) error { - return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, syscall.IPPROTO_TCP, syscall.TCP_NODELAY, boolint(noDelay))) -} - -func setLinger(fd int, sec int) error { - var l syscall.Linger - if sec >= 0 { - l.Onoff = 1 - l.Linger = int32(sec) - } else { - l.Onoff = 0 - l.Linger = 0 - } - return os.NewSyscallError("setsockopt", syscall.SetsockoptLinger(fd, syscall.SOL_SOCKET, syscall.SO_LINGER, &l)) -} diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/package.json b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/package.json deleted file mode 100644 index c1b96780..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "go-reuseport", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "go-net-resolve-addr", - "hash": "Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS", - "version": "0.0.0" - }, - { - "name": "go-sockaddr", - "hash": "QmcLqWSFsaQ8Ujh8Ys8i9JPHVy1CcdPoqV23M9S3ufdVbn", - "version": "0.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/jbenet/go-reuseport" - } -} \ No newline at end of file diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/error.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/error.go deleted file mode 100644 index c13fb813..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/error.go +++ /dev/null @@ -1,9 +0,0 @@ -package poll - -var errTimeout = &timeoutError{} - -type timeoutError struct{} - -func (e *timeoutError) Error() string { return "i/o timeout" } -func (e *timeoutError) Timeout() bool { return true } -func (e *timeoutError) Temporary() bool { return true } diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_bsd.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_bsd.go deleted file mode 100644 index 918f416f..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_bsd.go +++ /dev/null @@ -1,59 +0,0 @@ -// +build darwin,amd64 darwin,arm64 freebsd dragonfly netbsd openbsd - -package poll - -import ( - "syscall" - "time" -) - -type Poller struct { - kqfd int - event syscall.Kevent_t -} - -func New(fd int) (p *Poller, err error) { - p = &Poller{} - - p.kqfd, err = syscall.Kqueue() - if p.kqfd == -1 || err != nil { - return nil, err - } - - p.event = syscall.Kevent_t{ - Ident: uint64(fd), - Filter: syscall.EVFILT_WRITE, - Flags: syscall.EV_ADD | syscall.EV_ENABLE | syscall.EV_ONESHOT, - Fflags: 0, - Data: 0, - Udata: nil, - } - return p, nil -} - -func (p *Poller) Close() error { - return syscall.Close(p.kqfd) -} - -func (p *Poller) WaitWrite(deadline time.Time) error { - - // setup timeout - var timeout *syscall.Timespec - if !deadline.IsZero() { - d := deadline.Sub(time.Now()) - t := syscall.NsecToTimespec(d.Nanoseconds()) - timeout = &t - } - - // wait on kevent - events := make([]syscall.Kevent_t, 1) - n, err := syscall.Kevent(p.kqfd, []syscall.Kevent_t{p.event}, events, timeout) - if err != nil { - return err - } - - if n < 1 { - return errTimeout - } - return nil -} diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_darwin_386.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_darwin_386.go deleted file mode 100644 index 6cff81df..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_darwin_386.go +++ /dev/null @@ -1,57 +0,0 @@ -package poll - -import ( - "syscall" - "time" -) - -type Poller struct { - kqfd int - event syscall.Kevent_t -} - -func New(fd int) (p *Poller, err error) { - p = &Poller{} - - p.kqfd, err = syscall.Kqueue() - if p.kqfd == -1 || err != nil { - return nil, err - } - - p.event = syscall.Kevent_t{ - Ident: uint32(fd), - Filter: syscall.EVFILT_WRITE, - Flags: syscall.EV_ADD | syscall.EV_ENABLE | syscall.EV_ONESHOT, - Fflags: 0, - Data: 0, - Udata: nil, - } - return p, nil -} - -func (p *Poller) Close() error { - return syscall.Close(p.kqfd) -} - -func (p *Poller) WaitWrite(deadline time.Time) error { - - // setup timeout - var timeout *syscall.Timespec - if !deadline.IsZero() { - d := deadline.Sub(time.Now()) - t := syscall.NsecToTimespec(d.Nanoseconds()) - timeout = &t - } - - // wait on kevent - events := make([]syscall.Kevent_t, 1) - n, err := syscall.Kevent(p.kqfd, []syscall.Kevent_t{p.event}, events, timeout) - if err != nil { - return err - } - - if n < 1 { - return errTimeout - } - return nil -} diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_linux.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_linux.go deleted file mode 100644 index b63a0009..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_linux.go +++ /dev/null @@ -1,51 +0,0 @@ -// +build linux - -package poll - -import ( - "syscall" - "time" -) - -type Poller struct { - epfd int - event syscall.EpollEvent - events [32]syscall.EpollEvent -} - -func New(fd int) (p *Poller, err error) { - p = &Poller{} - if p.epfd, err = syscall.EpollCreate1(0); err != nil { - return nil, err - } - - p.event.Events = syscall.EPOLLOUT - p.event.Fd = int32(fd) - if err = syscall.EpollCtl(p.epfd, syscall.EPOLL_CTL_ADD, fd, &p.event); err != nil { - p.Close() - return nil, err - } - - return p, nil -} - -func (p *Poller) Close() error { - return syscall.Close(p.epfd) -} - -func (p *Poller) WaitWrite(deadline time.Time) error { - msec := -1 - if !deadline.IsZero() { - d := deadline.Sub(time.Now()) - msec = int(d.Nanoseconds() / 1000000) // ms!? omg... - } - - n, err := syscall.EpollWait(p.epfd, p.events[:], msec) - if err != nil { - return err - } - if n < 1 { - return errTimeout - } - return nil -} diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_unsupported.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_unsupported.go deleted file mode 100644 index bc0e5ed8..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/poll/poll_unsupported.go +++ /dev/null @@ -1,11 +0,0 @@ -// +build windows plan9 - -package poll - -import ( - "errors" -) - -func WaitWrite(fd int) error { - return errors.New("platform not supported") -} diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/reuse_test.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/reuse_test.go deleted file mode 100644 index cd613432..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/reuse_test.go +++ /dev/null @@ -1,579 +0,0 @@ -package reuseport - -import ( - "bytes" - "errors" - "fmt" - "io" - "net" - "os" - "os/exec" - "strings" - "sync" - "testing" - "time" -) - -func echo(c net.Conn) { - io.Copy(c, c) - c.Close() -} - -func packetEcho(c net.PacketConn) { - defer c.Close() - buf := make([]byte, 65536) - for { - n, addr, err := c.ReadFrom(buf) - if err != nil { - return - } - if _, err := c.WriteTo(buf[:n], addr); err != nil { - return - } - } -} - -func acceptAndEcho(l net.Listener) { - for { - c, err := l.Accept() - if err != nil { - return - } - go echo(c) - } -} - -func CI() bool { - return os.Getenv("TRAVIS") == "true" -} - -func TestStreamListenSamePort(t *testing.T) { - - // any ports - any := [][]string{ - []string{"tcp", "0.0.0.0:0"}, - []string{"tcp4", "0.0.0.0:0"}, - []string{"tcp6", "[::]:0"}, - - []string{"tcp", "127.0.0.1:0"}, - []string{"tcp", "[::1]:0"}, - []string{"tcp4", "127.0.0.1:0"}, - []string{"tcp6", "[::1]:0"}, - } - - // specific ports. off in CI - specific := [][]string{ - []string{"tcp", "127.0.0.1:5556"}, - []string{"tcp", "[::1]:5557"}, - []string{"tcp4", "127.0.0.1:5558"}, - []string{"tcp6", "[::1]:5559"}, - } - - testCases := any - if !CI() { - testCases = append(testCases, specific...) - } - - for _, tcase := range testCases { - network := tcase[0] - addr := tcase[1] - t.Log("testing", network, addr) - - l1, err := Listen(network, addr) - if err != nil { - t.Fatal(err) - continue - } - defer l1.Close() - t.Log("listening", l1.Addr()) - - l2, err := Listen(l1.Addr().Network(), l1.Addr().String()) - if err != nil { - t.Fatal(err) - continue - } - defer l2.Close() - t.Log("listening", l2.Addr()) - - l3, err := Listen(l2.Addr().Network(), l2.Addr().String()) - if err != nil { - t.Fatal(err) - continue - } - defer l3.Close() - t.Log("listening", l3.Addr()) - - if l1.Addr().String() != l2.Addr().String() { - t.Fatal("addrs should match", l1.Addr(), l2.Addr()) - } - - if l1.Addr().String() != l3.Addr().String() { - t.Fatal("addrs should match", l1.Addr(), l3.Addr()) - } - } -} - -func TestPacketListenSamePort(t *testing.T) { - - // any ports - any := [][]string{ - []string{"udp", "0.0.0.0:0"}, - []string{"udp4", "0.0.0.0:0"}, - []string{"udp6", "[::]:0"}, - - []string{"udp", "127.0.0.1:0"}, - []string{"udp", "[::1]:0"}, - []string{"udp4", "127.0.0.1:0"}, - []string{"udp6", "[::1]:0"}, - } - - // specific ports. off in CI - specific := [][]string{ - []string{"udp", "127.0.0.1:5560"}, - []string{"udp", "[::1]:5561"}, - []string{"udp4", "127.0.0.1:5562"}, - []string{"udp6", "[::1]:5563"}, - } - - testCases := any - if !CI() { - testCases = append(testCases, specific...) - } - - for _, tcase := range testCases { - network := tcase[0] - addr := tcase[1] - t.Log("testing", network, addr) - - l1, err := ListenPacket(network, addr) - if err != nil { - t.Fatal(err) - continue - } - defer l1.Close() - t.Log("listening", l1.LocalAddr()) - - l2, err := ListenPacket(l1.LocalAddr().Network(), l1.LocalAddr().String()) - if err != nil { - t.Fatal(err) - continue - } - defer l2.Close() - t.Log("listening", l2.LocalAddr()) - - l3, err := ListenPacket(l2.LocalAddr().Network(), l2.LocalAddr().String()) - if err != nil { - t.Fatal(err) - continue - } - defer l3.Close() - t.Log("listening", l3.LocalAddr()) - - if l1.LocalAddr().String() != l2.LocalAddr().String() { - t.Fatal("addrs should match", l1.LocalAddr(), l2.LocalAddr()) - } - - if l1.LocalAddr().String() != l3.LocalAddr().String() { - t.Fatal("addrs should match", l1.LocalAddr(), l3.LocalAddr()) - } - } -} - -func TestStreamListenDialSamePort(t *testing.T) { - - any := [][]string{ - []string{"tcp", "0.0.0.0:0", "0.0.0.0:0"}, - []string{"tcp4", "0.0.0.0:0", "0.0.0.0:0"}, - []string{"tcp6", "[::]:0", "[::]:0"}, - - []string{"tcp", "127.0.0.1:0", "127.0.0.1:0"}, - []string{"tcp4", "127.0.0.1:0", "127.0.0.1:0"}, - []string{"tcp6", "[::1]:0", "[::1]:0"}, - } - - specific := [][]string{ - []string{"tcp", "127.0.0.1:0", "127.0.0.1:5571"}, - []string{"tcp4", "127.0.0.1:0", "127.0.0.1:5573"}, - []string{"tcp6", "[::1]:0", "[::1]:5574"}, - []string{"tcp", "127.0.0.1:5570", "127.0.0.1:0"}, - []string{"tcp4", "127.0.0.1:5572", "127.0.0.1:0"}, - []string{"tcp6", "[::1]:5573", "[::1]:0"}, - } - - testCases := any - if !CI() { - testCases = append(testCases, specific...) - } - - for _, tcase := range testCases { - t.Log("testing", tcase) - network := tcase[0] - addr1 := tcase[1] - addr2 := tcase[2] - - l1, err := Listen(network, addr1) - if err != nil { - t.Fatal(err) - continue - } - defer l1.Close() - t.Log("listening", l1.Addr()) - - l2, err := Listen(network, addr2) - if err != nil { - t.Fatal(err) - continue - } - defer l2.Close() - t.Log("listening", l2.Addr()) - - go acceptAndEcho(l1) - go acceptAndEcho(l2) - - c1, err := Dial(network, l1.Addr().String(), l2.Addr().String()) - if err != nil { - t.Fatal(err, network, l1.Addr().String(), l2.Addr().String()) - continue - } - defer c1.Close() - t.Log("dialed", c1, c1.LocalAddr(), c1.RemoteAddr()) - - if getPort(l1.Addr()) != getPort(c1.LocalAddr()) { - t.Fatal("addrs should match", l1.Addr(), c1.LocalAddr()) - } - - if getPort(l2.Addr()) != getPort(c1.RemoteAddr()) { - t.Fatal("addrs should match", l2.Addr(), c1.RemoteAddr()) - } - - hello1 := []byte("hello world") - hello2 := make([]byte, len(hello1)) - if _, err := c1.Write(hello1); err != nil { - t.Fatal(err) - continue - } - - if _, err := c1.Read(hello2); err != nil { - t.Fatal(err) - continue - } - - if !bytes.Equal(hello1, hello2) { - t.Fatal("echo failed", string(hello1), "!=", string(hello2)) - } - t.Log("echoed", string(hello2)) - c1.Close() - } -} - -func TestStreamListenDialSamePortStressManyMsgs(t *testing.T) { - testCases := [][]string{ - []string{"tcp", "127.0.0.1:0"}, - []string{"tcp4", "127.0.0.1:0"}, - []string{"tcp6", "[::]:0"}, - } - - for _, tcase := range testCases { - subestStreamListenDialSamePortStress(t, tcase[0], tcase[1], 2, 1000) - } -} - -func TestStreamListenDialSamePortStressManyNodes(t *testing.T) { - testCases := [][]string{ - []string{"tcp", "127.0.0.1:0"}, - []string{"tcp4", "127.0.0.1:0"}, - []string{"tcp6", "[::]:0"}, - } - - for _, tcase := range testCases { - subestStreamListenDialSamePortStress(t, tcase[0], tcase[1], 50, 1) - } -} - -func TestStreamListenDialSamePortStressManyMsgsManyNodes(t *testing.T) { - testCases := [][]string{ - []string{"tcp", "127.0.0.1:0"}, - []string{"tcp4", "127.0.0.1:0"}, - []string{"tcp6", "[::]:0"}, - } - - for _, tcase := range testCases { - subestStreamListenDialSamePortStress(t, tcase[0], tcase[1], 50, 100) - } -} - -func subestStreamListenDialSamePortStress(t *testing.T, network, addr string, nodes int, msgs int) { - t.Logf("testing %s:%s %d nodes %d msgs", network, addr, nodes, msgs) - - var ls []net.Listener - for i := 0; i < nodes; i++ { - l, err := Listen(network, addr) - if err != nil { - t.Fatal(err) - } - defer l.Close() - go acceptAndEcho(l) - ls = append(ls, l) - t.Logf("listening %s", l.Addr()) - } - - // connect them all - var cs []net.Conn - for i := 0; i < nodes; i++ { - for j := 0; j < i; j++ { - if i == j { - continue // cannot do self. - } - - ia := ls[i].Addr().String() - ja := ls[j].Addr().String() - c, err := Dial(network, ia, ja) - if err != nil { - t.Fatal(network, ia, ja, err) - } - defer c.Close() - cs = append(cs, c) - t.Logf("dialed %s --> %s", c.LocalAddr(), c.RemoteAddr()) - } - } - - errs := make(chan error) - - send := func(c net.Conn, buf []byte) { - if _, err := c.Write(buf); err != nil { - errs <- err - } - } - - recv := func(c net.Conn, buf []byte) { - buf2 := make([]byte, len(buf)) - if _, err := c.Read(buf2); err != nil { - errs <- err - } - if !bytes.Equal(buf, buf2) { - errs <- fmt.Errorf("recv failure: %s <--> %s -- %s %s", c.RemoteAddr(), c.LocalAddr(), buf, buf2) - } - } - - t.Logf("sending %d msgs per conn", msgs) - go func() { - var wg sync.WaitGroup - for _, c := range cs { - wg.Add(1) - go func(c net.Conn) { - defer wg.Done() - for i := 0; i < msgs; i++ { - msg := []byte(fmt.Sprintf("message %d", i)) - send(c, msg) - recv(c, msg) - } - }(c) - } - wg.Wait() - close(errs) - }() - - for err := range errs { - if err != nil { - t.Error(err) - } - } -} - -func TestPacketListenDialSamePort(t *testing.T) { - - any := [][]string{ - []string{"udp", "0.0.0.0:0", "0.0.0.0:0"}, - []string{"udp4", "0.0.0.0:0", "0.0.0.0:0"}, - []string{"udp6", "[::]:0", "[::]:0"}, - - []string{"udp", "127.0.0.1:0", "127.0.0.1:0"}, - []string{"udp4", "127.0.0.1:0", "127.0.0.1:0"}, - []string{"udp6", "[::1]:0", "[::1]:0"}, - } - - specific := [][]string{ - []string{"udp", "127.0.0.1:5670", "127.0.0.1:5671"}, - []string{"udp4", "127.0.0.1:5672", "127.0.0.1:5673"}, - []string{"udp6", "[::1]:5673", "[::1]:5674"}, - } - - testCases := any - if !CI() { - testCases = append(testCases, specific...) - } - - for _, tcase := range testCases { - t.Log("testing", tcase) - network := tcase[0] - addr1 := tcase[1] - addr2 := tcase[2] - - l1, err := ListenPacket(network, addr1) - if err != nil { - t.Fatal(err) - continue - } - defer l1.Close() - t.Log("listening", l1.LocalAddr()) - - l2, err := ListenPacket(network, addr2) - if err != nil { - t.Fatal(err) - continue - } - defer l2.Close() - t.Log("listening", l2.LocalAddr()) - - go packetEcho(l1) - go packetEcho(l2) - - c1, err := Dial(network, l1.LocalAddr().String(), l2.LocalAddr().String()) - if err != nil { - t.Fatal(err) - continue - } - defer c1.Close() - t.Log("dialed", c1.LocalAddr(), c1.RemoteAddr()) - - if getPort(l1.LocalAddr()) != getPort(c1.LocalAddr()) { - t.Fatal("addrs should match", l1.LocalAddr(), c1.LocalAddr()) - } - - if getPort(l2.LocalAddr()) != getPort(c1.RemoteAddr()) { - t.Fatal("addrs should match", l2.LocalAddr(), c1.RemoteAddr()) - } - - hello1 := []byte("hello world") - hello2 := make([]byte, len(hello1)) - if _, err := c1.Write(hello1); err != nil { - t.Fatal(err) - continue - } - - if _, err := c1.Read(hello2); err != nil { - t.Fatal(err) - continue - } - - if !bytes.Equal(hello1, hello2) { - t.Fatal("echo failed", string(hello1), "!=", string(hello2)) - } - t.Log("echoed", string(hello2)) - } -} - -func TestDialRespectsTimeout(t *testing.T) { - - testCases := [][]string{ - []string{"tcp", "127.0.0.1:6780", "1.2.3.4:6781"}, - []string{"tcp4", "127.0.0.1:6782", "1.2.3.4:6783"}, - []string{"tcp6", "[::1]:6784", "[::2]:6785"}, - } - - timeout := 50 * time.Millisecond - - for _, tcase := range testCases { - network := tcase[0] - laddr := tcase[1] - raddr := tcase[2] - - // l, err := Listen(network, raddr) - // if err != nil { - // t.Error("without a listener it wont work") - // continue - // } - // defer l.Close() - - nladdr, err := ResolveAddr(network, laddr) - if err != nil { - t.Error("failed to resolve addr", network, laddr, err) - continue - } - t.Log("testing", network, nladdr, raddr) - - d := Dialer{ - D: net.Dialer{ - LocalAddr: nil, - Timeout: timeout, - }, - } - - errs := make(chan error) - go func() { - c, err := d.Dial(network, raddr) - if err == nil { - c.Close() - errs <- errors.New("should've not connected") - return - } - close(errs) // success! - }() - - ErrDrain: - select { - case <-time.After(5 * time.Second): - t.Fatal("took too long") - case err, more := <-errs: - if !more { - break - } - t.Error(err) - goto ErrDrain - } - - } -} - -func TestUnixNotSupported(t *testing.T) { - - testCases := [][]string{ - []string{"unix", "/tmp/foo"}, - } - - for _, tcase := range testCases { - network := tcase[0] - addr := tcase[1] - t.Log("testing", network, addr) - - l, err := Listen(network, addr) - if err == nil { - l.Close() - t.Fatal("unix supported") - continue - } - } -} - -func TestOpenFDs(t *testing.T) { - // this is a totally ad-hoc limit. test harnesses may add fds. - // but if this is really much higher than 20, there's obviously leaks. - limit := 20 - start := time.Now() - for countOpenFiles(t) > limit { - <-time.After(time.Second) - t.Log("open fds:", countOpenFiles(t)) - if time.Now().Sub(start) > (time.Second * 15) { - t.Error("fd leak!") - } - } -} - -func countOpenFiles(t *testing.T) int { - out, err := exec.Command("/bin/sh", "-c", fmt.Sprintf("lsof -p %v", os.Getpid())).Output() - if err != nil { - t.Fatal(err) - } - return bytes.Count(out, []byte("\n")) -} - -func getPort(a net.Addr) string { - if a == nil { - return "" - } - s := strings.Split(a.String(), ":") - if len(s) > 1 { - return s[1] - } - return "" -} diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/test/.gitignore b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/test/.gitignore deleted file mode 100644 index 9daeafb9..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/test/.gitignore +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/test/main.go b/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/test/main.go deleted file mode 100644 index 22de2188..00000000 --- a/vendor/gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport/test/main.go +++ /dev/null @@ -1,71 +0,0 @@ -package main - -import ( - "fmt" - "io" - "net" - "os" - - resolve "gx/Qma73Sqt13DzHzveZ667BBfraM7MuMrPepUXjmv812JhRS/go-net-resolve-addr" - reuse "gx/QmfDF93E1PjQUqFM4rKyFs85feJdMR9AaVm1axVZ4qdFU1/go-reuseport" -) - -func main() { - - l1, err := reuse.Listen("tcp", "0.0.0.0:11111") - maybeDie(err) - fmt.Printf("listening on %s\n", l1.Addr()) - - l2, err := reuse.Listen("tcp", "0.0.0.0:22222") - maybeDie(err) - fmt.Printf("listening on %s\n", l2.Addr()) - - a1, err := resolve.ResolveAddr("dial", "tcp", "127.0.0.1:11111") - maybeDie(err) - - a3, err := resolve.ResolveAddr("dial", "tcp", "127.0.0.1:33333") - maybeDie(err) - - d1 := reuse.Dialer{net.Dialer{LocalAddr: a1}} - d2 := reuse.Dialer{net.Dialer{LocalAddr: a3}} - - go func() { - l2to1foo, err := l2.Accept() - maybeDie(err) - fmt.Printf("%s accepted conn from %s\n", addrStr(l2.Addr()), addrStr(l2to1foo.RemoteAddr())) - - fmt.Println("safe") - - l1to2bar, err := l1.Accept() - maybeDie(err) - fmt.Printf("%s accepted conn from %s\n", addrStr(l1.Addr()), addrStr(l1to2bar.RemoteAddr())) - - io.Copy(l1to2bar, l2to1foo) - }() - - d1to2foo, err := d1.Dial("tcp4", "127.0.0.1:22222") - maybeDie(err) - fmt.Printf("dialing from %s to %s\n", d1.D.LocalAddr, "127.0.0.1:22222") - - d2to1bar, err := d2.Dial("tcp4", "127.0.0.1:11111") - maybeDie(err) - fmt.Printf("dialing from %s to %s\n", d2.D.LocalAddr, "127.0.0.1:11111") - - go io.Copy(d1to2foo, os.Stdin) - io.Copy(os.Stdout, d2to1bar) -} - -func die(err error) { - fmt.Fprintf(os.Stderr, "%s\n", err) - os.Exit(-1) -} - -func maybeDie(err error) { - if err != nil { - die(err) - } -} - -func addrStr(a net.Addr) string { - return fmt.Sprintf("%s/%s", a.Network(), a) -} diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/.gxignore b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/.travis.yml b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/.travis.yml deleted file mode 100644 index 15de8417..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -sudo: false - -language: go - -go: - - 1.3 - - 1.4 - -script: - - go test -race -cpu=5 -v ./... diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/LICENSE b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/LICENSE deleted file mode 100644 index c7386b3c..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Juan Batiz-Benet - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/README.md b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/README.md deleted file mode 100644 index e2f12e16..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/README.md +++ /dev/null @@ -1,132 +0,0 @@ -# goprocess - lifecycles in go - -[![travisbadge](https://travis-ci.org/jbenet/goprocess.svg)](https://travis-ci.org/jbenet/goprocess) - -(Based on https://github.com/jbenet/go-ctxgroup) - -- Godoc: https://godoc.org/github.com/jbenet/goprocess - -`goprocess` introduces a way to manage process lifecycles in go. It is -much like [go.net/context](https://godoc.org/code.google.com/p/go.net/context) -(it actually uses a Context), but it is more like a Context-WaitGroup hybrid. -`goprocess` is about being able to start and stop units of work, which may -receive `Close` signals from many clients. Think of it like a UNIX process -tree, but inside go. - -`goprocess` seeks to minimally affect your objects, so you can use it -with both embedding or composition. At the heart of `goprocess` is the -`Process` interface: - -```Go -// Process is the basic unit of work in goprocess. It defines a computation -// with a lifecycle: -// - running (before calling Close), -// - closing (after calling Close at least once), -// - closed (after Close returns, and all teardown has _completed_). -// -// More specifically, it fits this: -// -// p := WithTeardown(tf) // new process is created, it is now running. -// p.AddChild(q) // can register children **before** Closing. -// go p.Close() // blocks until done running teardown func. -// <-p.Closing() // would now return true. -// <-p.childrenDone() // wait on all children to be done -// p.teardown() // runs the user's teardown function tf. -// p.Close() // now returns, with error teardown returned. -// <-p.Closed() // would now return true. -// -// Processes can be arranged in a process "tree", where children are -// automatically Closed if their parents are closed. (Note, it is actually -// a Process DAG, children may have multiple parents). A process may also -// optionally wait for another to fully Close before beginning to Close. -// This makes it easy to ensure order of operations and proper sequential -// teardown of resurces. For example: -// -// p1 := goprocess.WithTeardown(func() error { -// fmt.Println("closing 1") -// }) -// p2 := goprocess.WithTeardown(func() error { -// fmt.Println("closing 2") -// }) -// p3 := goprocess.WithTeardown(func() error { -// fmt.Println("closing 3") -// }) -// -// p1.AddChild(p2) -// p2.AddChild(p3) -// -// -// go p1.Close() -// go p2.Close() -// go p3.Close() -// -// // Output: -// // closing 3 -// // closing 2 -// // closing 1 -// -// Process is modelled after the UNIX processes group idea, and heavily -// informed by sync.WaitGroup and go.net/context.Context. -// -// In the function documentation of this interface, `p` always refers to -// the self Process. -type Process interface { - - // WaitFor makes p wait for q before exiting. Thus, p will _always_ close - // _after_ q. Note well: a waiting cycle is deadlock. - // - // If q is already Closed, WaitFor calls p.Close() - // If p is already Closing or Closed, WaitFor panics. This is the same thing - // as calling Add(1) _after_ calling Done() on a wait group. Calling WaitFor - // on an already-closed process is a programming error likely due to bad - // synchronization - WaitFor(q Process) - - // AddChildNoWait registers child as a "child" of Process. As in UNIX, - // when parent is Closed, child is Closed -- child may Close beforehand. - // This is the equivalent of calling: - // - // go func(parent, child Process) { - // <-parent.Closing() - // child.Close() - // }(p, q) - // - // Note: the naming of functions is `AddChildNoWait` and `AddChild` (instead - // of `AddChild` and `AddChildWaitFor`) because: - // - it is the more common operation, - // - explicitness is helpful in the less common case (no waiting), and - // - usual "child" semantics imply parent Processes should wait for children. - AddChildNoWait(q Process) - - // AddChild is the equivalent of calling: - // parent.AddChildNoWait(q) - // parent.WaitFor(q) - AddChild(q Process) - - // Go creates a new process, adds it as a child, and spawns the ProcessFunc f - // in its own goroutine. It is equivalent to: - // - // GoChild(p, f) - // - // It is useful to construct simple asynchronous workers, children of p. - Go(f ProcessFunc) Process - - // Close ends the process. Close blocks until the process has completely - // shut down, and any teardown has run _exactly once_. The returned error - // is available indefinitely: calling Close twice returns the same error. - // If the process has already been closed, Close returns immediately. - Close() error - - // Closing is a signal to wait upon. The returned channel is closed - // _after_ Close has been called at least once, but teardown may or may - // not be done yet. The primary use case of Closing is for children who - // need to know when a parent is shutting down, and therefore also shut - // down. - Closing() <-chan struct{} - - // Closed is a signal to wait upon. The returned channel is closed - // _after_ Close has completed; teardown has finished. The primary use case - // of Closed is waiting for a Process to Close without _causing_ the Close. - Closed() <-chan struct{} -} -``` diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/context/context.go b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/context/context.go deleted file mode 100644 index cc6346d8..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/context/context.go +++ /dev/null @@ -1,110 +0,0 @@ -package goprocessctx - -import ( - goprocess "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" -) - -// WithContext constructs and returns a Process that respects -// given context. It is the equivalent of: -// -// func ProcessWithContext(ctx context.Context) goprocess.Process { -// p := goprocess.WithParent(goprocess.Background()) -// CloseAfterContext(p, ctx) -// return p -// } -// -func WithContext(ctx context.Context) goprocess.Process { - p := goprocess.WithParent(goprocess.Background()) - CloseAfterContext(p, ctx) - return p -} - -// WithContextAndTeardown is a helper function to set teardown at initiation -// of WithContext -func WithContextAndTeardown(ctx context.Context, tf goprocess.TeardownFunc) goprocess.Process { - p := goprocess.WithTeardown(tf) - CloseAfterContext(p, ctx) - return p -} - -// WaitForContext makes p WaitFor ctx. When Closing, p waits for -// ctx.Done(), before being Closed(). It is simply: -// -// p.WaitFor(goprocess.WithContext(ctx)) -// -func WaitForContext(ctx context.Context, p goprocess.Process) { - p.WaitFor(WithContext(ctx)) -} - -// CloseAfterContext schedules the process to close after the given -// context is done. It is the equivalent of: -// -// func CloseAfterContext(p goprocess.Process, ctx context.Context) { -// go func() { -// <-ctx.Done() -// p.Close() -// }() -// } -// -func CloseAfterContext(p goprocess.Process, ctx context.Context) { - if p == nil { - panic("nil Process") - } - if ctx == nil { - panic("nil Context") - } - - // context.Background(). if ctx.Done() is nil, it will never be done. - // we check for this to avoid wasting a goroutine forever. - if ctx.Done() == nil { - return - } - - go func() { - <-ctx.Done() - p.Close() - }() -} - -// WithProcessClosing returns a context.Context derived from ctx that -// is cancelled as p is Closing (after: <-p.Closing()). It is simply: -// -// func WithProcessClosing(ctx context.Context, p goprocess.Process) context.Context { -// ctx, cancel := context.WithCancel(ctx) -// go func() { -// <-p.Closing() -// cancel() -// }() -// return ctx -// } -// -func WithProcessClosing(ctx context.Context, p goprocess.Process) context.Context { - ctx, cancel := context.WithCancel(ctx) - go func() { - <-p.Closing() - cancel() - }() - return ctx -} - -// WithProcessClosed returns a context.Context that is cancelled -// after Process p is Closed. It is the equivalent of: -// -// func WithProcessClosed(ctx context.Context, p goprocess.Process) context.Context { -// ctx, cancel := context.WithCancel(ctx) -// go func() { -// <-p.Closed() -// cancel() -// }() -// return ctx -// } -// -func WithProcessClosed(ctx context.Context, p goprocess.Process) context.Context { - ctx, cancel := context.WithCancel(ctx) - go func() { - <-p.Closed() - cancel() - }() - return ctx -} diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/context/derive.go b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/context/derive.go deleted file mode 100644 index 362e2ad2..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/context/derive.go +++ /dev/null @@ -1,59 +0,0 @@ -package goprocessctx - -import ( - "errors" - "time" - - goprocess "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" - "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" -) - -const ( - closing = iota - closed -) - -type procContext struct { - done <-chan struct{} - which int -} - -// OnClosingContext derives a context from a given goprocess that will -// be 'Done' when the process is closing -func OnClosingContext(p goprocess.Process) context.Context { - return &procContext{ - done: p.Closing(), - which: closing, - } -} - -// OnClosedContext derives a context from a given goprocess that will -// be 'Done' when the process is closed -func OnClosedContext(p goprocess.Process) context.Context { - return &procContext{ - done: p.Closed(), - which: closed, - } -} - -func (c *procContext) Done() <-chan struct{} { - return c.done -} - -func (c *procContext) Deadline() (time.Time, bool) { - return time.Time{}, false -} - -func (c *procContext) Err() error { - if c.which == closing { - return errors.New("process closing") - } else if c.which == closed { - return errors.New("process closed") - } else { - panic("unrecognized process context type") - } -} - -func (c *procContext) Value(key interface{}) interface{} { - return nil -} diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/example_test.go b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/example_test.go deleted file mode 100644 index 1529eb77..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/example_test.go +++ /dev/null @@ -1,37 +0,0 @@ -package goprocess_test - -import ( - "fmt" - "time" - - "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" -) - -func ExampleGo() { - p := goprocess.Go(func(p goprocess.Process) { - ticker := time.Tick(200 * time.Millisecond) - for { - select { - case <-ticker: - fmt.Println("tick") - case <-p.Closing(): - fmt.Println("closing") - return - } - } - }) - - <-time.After(1100 * time.Millisecond) - p.Close() - fmt.Println("closed") - <-time.After(100 * time.Millisecond) - - // Output: - // tick - // tick - // tick - // tick - // tick - // closing - // closed -} diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/goprocess.go b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/goprocess.go deleted file mode 100644 index a81ec8b9..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/goprocess.go +++ /dev/null @@ -1,283 +0,0 @@ -// Package goprocess introduces a Process abstraction that allows simple -// organization, and orchestration of work. It is much like a WaitGroup, -// and much like a context.Context, but also ensures safe **exactly-once**, -// and well-ordered teardown semantics. -package goprocess - -import ( - "os" - "os/signal" -) - -// Process is the basic unit of work in goprocess. It defines a computation -// with a lifecycle: -// - running (before calling Close), -// - closing (after calling Close at least once), -// - closed (after Close returns, and all teardown has _completed_). -// -// More specifically, it fits this: -// -// p := WithTeardown(tf) // new process is created, it is now running. -// p.AddChild(q) // can register children **before** Closed(). -// go p.Close() // blocks until done running teardown func. -// <-p.Closing() // would now return true. -// <-p.childrenDone() // wait on all children to be done -// p.teardown() // runs the user's teardown function tf. -// p.Close() // now returns, with error teardown returned. -// <-p.Closed() // would now return true. -// -// Processes can be arranged in a process "tree", where children are -// automatically Closed if their parents are closed. (Note, it is actually -// a Process DAG, children may have multiple parents). A process may also -// optionally wait for another to fully Close before beginning to Close. -// This makes it easy to ensure order of operations and proper sequential -// teardown of resurces. For example: -// -// p1 := goprocess.WithTeardown(func() error { -// fmt.Println("closing 1") -// }) -// p2 := goprocess.WithTeardown(func() error { -// fmt.Println("closing 2") -// }) -// p3 := goprocess.WithTeardown(func() error { -// fmt.Println("closing 3") -// }) -// -// p1.AddChild(p2) -// p2.AddChild(p3) -// -// -// go p1.Close() -// go p2.Close() -// go p3.Close() -// -// // Output: -// // closing 3 -// // closing 2 -// // closing 1 -// -// Process is modelled after the UNIX processes group idea, and heavily -// informed by sync.WaitGroup and go.net/context.Context. -// -// In the function documentation of this interface, `p` always refers to -// the self Process. -type Process interface { - - // WaitFor makes p wait for q before exiting. Thus, p will _always_ close - // _after_ q. Note well: a waiting cycle is deadlock. - // - // If q is already Closed, WaitFor calls p.Close() - // If p is already Closing or Closed, WaitFor panics. This is the same thing - // as calling Add(1) _after_ calling Done() on a wait group. Calling WaitFor - // on an already-closed process is a programming error likely due to bad - // synchronization - WaitFor(q Process) - - // AddChildNoWait registers child as a "child" of Process. As in UNIX, - // when parent is Closed, child is Closed -- child may Close beforehand. - // This is the equivalent of calling: - // - // go func(parent, child Process) { - // <-parent.Closing() - // child.Close() - // }(p, q) - // - // Note: the naming of functions is `AddChildNoWait` and `AddChild` (instead - // of `AddChild` and `AddChildWaitFor`) because: - // - it is the more common operation, - // - explicitness is helpful in the less common case (no waiting), and - // - usual "child" semantics imply parent Processes should wait for children. - AddChildNoWait(q Process) - - // AddChild is the equivalent of calling: - // parent.AddChildNoWait(q) - // parent.WaitFor(q) - AddChild(q Process) - - // Go is much like `go`, as it runs a function in a newly spawned goroutine. - // The neat part of Process.Go is that the Process object you call it on will: - // * construct a child Process, and call AddChild(child) on it - // * spawn a goroutine, and call the given function - // * Close the child when the function exits. - // This way, you can rest assured each goroutine you spawn has its very own - // Process context, and that it will be closed when the function exits. - // It is the function's responsibility to respect the Closing of its Process, - // namely it should exit (return) when <-Closing() is ready. It is basically: - // - // func (p Process) Go(f ProcessFunc) Process { - // child := WithParent(p) - // go func () { - // f(child) - // child.Close() - // }() - // } - // - // It is useful to construct simple asynchronous workers, children of p. - Go(f ProcessFunc) Process - - // SetTeardown sets the process's teardown to tf. - SetTeardown(tf TeardownFunc) - - // Close ends the process. Close blocks until the process has completely - // shut down, and any teardown has run _exactly once_. The returned error - // is available indefinitely: calling Close twice returns the same error. - // If the process has already been closed, Close returns immediately. - Close() error - - // CloseAfterChildren calls Close _after_ its children have Closed - // normally (i.e. it _does not_ attempt to close them). - CloseAfterChildren() error - - // Closing is a signal to wait upon. The returned channel is closed - // _after_ Close has been called at least once, but teardown may or may - // not be done yet. The primary use case of Closing is for children who - // need to know when a parent is shutting down, and therefore also shut - // down. - Closing() <-chan struct{} - - // Closed is a signal to wait upon. The returned channel is closed - // _after_ Close has completed; teardown has finished. The primary use case - // of Closed is waiting for a Process to Close without _causing_ the Close. - Closed() <-chan struct{} - - // Err waits until the process is closed, and then returns any error that - // occurred during shutdown. - Err() error -} - -// TeardownFunc is a function used to cleanup state at the end of the -// lifecycle of a Process. -type TeardownFunc func() error - -// ProcessFunc is a function that takes a process. Its main use case is goprocess.Go, -// which spawns a ProcessFunc in its own goroutine, and returns a corresponding -// Process object. -type ProcessFunc func(proc Process) - -var nilProcessFunc = func(Process) {} - -// Go is much like `go`: it runs a function in a newly spawned goroutine. The neat -// part of Go is that it provides Process object to communicate between the -// function and the outside world. Thus, callers can easily WaitFor, or Close the -// function. It is the function's responsibility to respect the Closing of its Process, -// namely it should exit (return) when <-Closing() is ready. It is simply: -// -// func Go(f ProcessFunc) Process { -// p := WithParent(Background()) -// p.Go(f) -// return p -// } -// -// Note that a naive implementation of Go like the following would not work: -// -// func Go(f ProcessFunc) Process { -// return Background().Go(f) -// } -// -// This is because having the process you -func Go(f ProcessFunc) Process { - // return GoChild(Background(), f) - - // we use two processes, one for communication, and - // one for ensuring we wait on the function (unclosable from the outside). - p := newProcess(nil) - waitFor := newProcess(nil) - p.WaitFor(waitFor) // prevent p from closing - go func() { - f(p) - waitFor.Close() // allow p to close. - p.Close() // ensure p closes. - }() - return p -} - -// GoChild is like Go, but it registers the returned Process as a child of parent, -// **before** spawning the goroutine, which ensures proper synchronization with parent. -// It is somewhat like -// -// func GoChild(parent Process, f ProcessFunc) Process { -// p := WithParent(parent) -// p.Go(f) -// return p -// } -// -// And it is similar to the classic WaitGroup use case: -// -// func WaitGroupGo(wg sync.WaitGroup, child func()) { -// wg.Add(1) -// go func() { -// child() -// wg.Done() -// }() -// } -// -func GoChild(parent Process, f ProcessFunc) Process { - p := WithParent(parent) - p.Go(f) - return p -} - -// Spawn is an alias of `Go`. In many contexts, Spawn is a -// well-known Process launching word, which fits our use case. -var Spawn = Go - -// SpawnChild is an alias of `GoChild`. In many contexts, Spawn is a -// well-known Process launching word, which fits our use case. -var SpawnChild = GoChild - -// WithTeardown constructs and returns a Process with a TeardownFunc. -// TeardownFunc tf will be called **exactly-once** when Process is -// Closing, after all Children have fully closed, and before p is Closed. -// In fact, Process p will not be Closed until tf runs and exits. -// See lifecycle in Process doc. -func WithTeardown(tf TeardownFunc) Process { - if tf == nil { - panic("nil tf TeardownFunc") - } - return newProcess(tf) -} - -// WithParent constructs and returns a Process with a given parent. -func WithParent(parent Process) Process { - if parent == nil { - panic("nil parent Process") - } - q := newProcess(nil) - parent.AddChild(q) - return q -} - -// WithSignals returns a Process that will Close() when any given signal fires. -// This is useful to bind Process trees to syscall.SIGTERM, SIGKILL, etc. -func WithSignals(sig ...os.Signal) Process { - p := WithParent(Background()) - c := make(chan os.Signal) - signal.Notify(c, sig...) - go func() { - <-c - signal.Stop(c) - p.Close() - }() - return p -} - -// Background returns the "background" Process: a statically allocated -// process that can _never_ close. It also never enters Closing() state. -// Calling Background().Close() will hang indefinitely. -func Background() Process { - return background -} - -// background is the background process -var background = &unclosable{Process: newProcess(nil)} - -// unclosable is a process that _cannot_ be closed. calling Close simply hangs. -type unclosable struct { - Process -} - -func (p *unclosable) Close() error { - var hang chan struct{} - <-hang // hang forever - return nil -} diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/goprocess_test.go b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/goprocess_test.go deleted file mode 100644 index 3a16de7e..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/goprocess_test.go +++ /dev/null @@ -1,638 +0,0 @@ -package goprocess - -import ( - "fmt" - "runtime" - "syscall" - "testing" - "time" -) - -type tree struct { - Process - c []tree -} - -func setupHierarchy(p Process) tree { - t := func(n Process, ts ...tree) tree { - return tree{n, ts} - } - - a := WithParent(p) - b1 := WithParent(a) - b2 := WithParent(a) - c1 := WithParent(b1) - c2 := WithParent(b1) - c3 := WithParent(b2) - c4 := WithParent(b2) - - return t(a, t(b1, t(c1), t(c2)), t(b2, t(c3), t(c4))) -} - -func TestClosingClosed(t *testing.T) { - - bWait := make(chan struct{}) - a := WithParent(Background()) - a.Go(func(proc Process) { - <-bWait - }) - - Q := make(chan string, 3) - - go func() { - <-a.Closing() - Q <- "closing" - bWait <- struct{}{} - }() - - go func() { - <-a.Closed() - Q <- "closed" - }() - - go func() { - a.Close() - Q <- "closed" - }() - - if q := <-Q; q != "closing" { - t.Error("order incorrect. closing not first") - } - if q := <-Q; q != "closed" { - t.Error("order incorrect. closing not first") - } - if q := <-Q; q != "closed" { - t.Error("order incorrect. closing not first") - } -} - -func TestChildFunc(t *testing.T) { - a := WithParent(Background()) - - wait1 := make(chan struct{}) - wait2 := make(chan struct{}) - wait3 := make(chan struct{}) - wait4 := make(chan struct{}) - - a.Go(func(process Process) { - wait1 <- struct{}{} - <-wait2 - wait3 <- struct{}{} - }) - - go func() { - a.Close() - wait4 <- struct{}{} - }() - - <-wait1 - select { - case <-wait3: - t.Error("should not be closed yet") - case <-wait4: - t.Error("should not be closed yet") - case <-a.Closed(): - t.Error("should not be closed yet") - default: - } - - wait2 <- struct{}{} - - select { - case <-wait3: - case <-time.After(time.Second): - t.Error("should be closed now") - } - - select { - case <-wait4: - case <-time.After(time.Second): - t.Error("should be closed now") - } -} - -func TestTeardownCalledOnce(t *testing.T) { - a := setupHierarchy(Background()) - - onlyOnce := func() func() error { - count := 0 - return func() error { - count++ - if count > 1 { - t.Error("called", count, "times") - } - return nil - } - } - - a.SetTeardown(onlyOnce()) - a.c[0].SetTeardown(onlyOnce()) - a.c[0].c[0].SetTeardown(onlyOnce()) - a.c[0].c[1].SetTeardown(onlyOnce()) - a.c[1].SetTeardown(onlyOnce()) - a.c[1].c[0].SetTeardown(onlyOnce()) - a.c[1].c[1].SetTeardown(onlyOnce()) - - a.c[0].c[0].Close() - a.c[0].c[0].Close() - a.c[0].c[0].Close() - a.c[0].c[0].Close() - a.c[0].Close() - a.c[0].Close() - a.c[0].Close() - a.c[0].Close() - a.Close() - a.Close() - a.Close() - a.Close() - a.c[1].Close() - a.c[1].Close() - a.c[1].Close() - a.c[1].Close() -} - -func TestOnClosedAll(t *testing.T) { - - Q := make(chan string, 10) - p := WithParent(Background()) - a := setupHierarchy(p) - - go onClosedStr(Q, "0", a.c[0]) - go onClosedStr(Q, "10", a.c[1].c[0]) - go onClosedStr(Q, "", a) - go onClosedStr(Q, "00", a.c[0].c[0]) - go onClosedStr(Q, "1", a.c[1]) - go onClosedStr(Q, "01", a.c[0].c[1]) - go onClosedStr(Q, "11", a.c[1].c[1]) - - go p.Close() - - testStrs(t, Q, "00", "01", "10", "11", "0", "1", "") - testStrs(t, Q, "00", "01", "10", "11", "0", "1", "") - testStrs(t, Q, "00", "01", "10", "11", "0", "1", "") - testStrs(t, Q, "00", "01", "10", "11", "0", "1", "") - testStrs(t, Q, "00", "01", "10", "11", "0", "1", "") - testStrs(t, Q, "00", "01", "10", "11", "0", "1", "") -} - -func TestOnClosedLeaves(t *testing.T) { - - Q := make(chan string, 10) - p := WithParent(Background()) - a := setupHierarchy(p) - - go onClosedStr(Q, "0", a.c[0]) - go onClosedStr(Q, "10", a.c[1].c[0]) - go onClosedStr(Q, "", a) - go onClosedStr(Q, "00", a.c[0].c[0]) - go onClosedStr(Q, "1", a.c[1]) - go onClosedStr(Q, "01", a.c[0].c[1]) - go onClosedStr(Q, "11", a.c[1].c[1]) - - go a.c[0].Close() - testStrs(t, Q, "00", "01", "0") - testStrs(t, Q, "00", "01", "0") - testStrs(t, Q, "00", "01", "0") - - go a.c[1].Close() - testStrs(t, Q, "10", "11", "1") - testStrs(t, Q, "10", "11", "1") - testStrs(t, Q, "10", "11", "1") - - go p.Close() - testStrs(t, Q, "") -} - -func TestWaitFor(t *testing.T) { - - Q := make(chan string, 5) - a := WithParent(Background()) - b := WithParent(Background()) - c := WithParent(Background()) - d := WithParent(Background()) - e := WithParent(Background()) - - go onClosedStr(Q, "a", a) - go onClosedStr(Q, "b", b) - go onClosedStr(Q, "c", c) - go onClosedStr(Q, "d", d) - go onClosedStr(Q, "e", e) - - testNone(t, Q) - a.WaitFor(b) - a.WaitFor(c) - b.WaitFor(d) - e.WaitFor(d) - testNone(t, Q) - - go a.Close() // should do nothing. - testNone(t, Q) - - go e.Close() - testNone(t, Q) - - d.Close() - testStrs(t, Q, "d", "e") - testStrs(t, Q, "d", "e") - - c.Close() - testStrs(t, Q, "c") - - b.Close() - testStrs(t, Q, "a", "b") - testStrs(t, Q, "a", "b") -} - -func TestAddChildNoWait(t *testing.T) { - - Q := make(chan string, 5) - a := WithParent(Background()) - b := WithParent(Background()) - c := WithParent(Background()) - d := WithParent(Background()) - e := WithParent(Background()) - - go onClosedStr(Q, "a", a) - go onClosedStr(Q, "b", b) - go onClosedStr(Q, "c", c) - go onClosedStr(Q, "d", d) - go onClosedStr(Q, "e", e) - - testNone(t, Q) - a.AddChildNoWait(b) - a.AddChildNoWait(c) - b.AddChildNoWait(d) - e.AddChildNoWait(d) - testNone(t, Q) - - b.Close() - testStrs(t, Q, "b", "d") - testStrs(t, Q, "b", "d") - - a.Close() - testStrs(t, Q, "a", "c") - testStrs(t, Q, "a", "c") - - e.Close() - testStrs(t, Q, "e") -} - -func TestAddChild(t *testing.T) { - - a := WithParent(Background()) - b := WithParent(Background()) - c := WithParent(Background()) - d := WithParent(Background()) - e := WithParent(Background()) - Q := make(chan string, 5) - - go onClosedStr(Q, "a", a) - go onClosedStr(Q, "b", b) - go onClosedStr(Q, "c", c) - go onClosedStr(Q, "d", d) - go onClosedStr(Q, "e", e) - - testNone(t, Q) - a.AddChild(b) - a.AddChild(c) - b.AddChild(d) - e.AddChild(d) - testNone(t, Q) - - go b.Close() - d.Close() - testStrs(t, Q, "b", "d") - testStrs(t, Q, "b", "d") - - go a.Close() - c.Close() - testStrs(t, Q, "a", "c") - testStrs(t, Q, "a", "c") - - e.Close() - testStrs(t, Q, "e") -} - -func TestGoChildrenClose(t *testing.T) { - - var a, b, c, d, e Process - var ready = make(chan struct{}) - var bWait = make(chan struct{}) - var cWait = make(chan struct{}) - var dWait = make(chan struct{}) - var eWait = make(chan struct{}) - - a = WithParent(Background()) - a.Go(func(p Process) { - b = p - b.Go(func(p Process) { - c = p - ready <- struct{}{} - <-cWait - }) - ready <- struct{}{} - <-bWait - }) - a.Go(func(p Process) { - d = p - d.Go(func(p Process) { - e = p - ready <- struct{}{} - <-eWait - }) - ready <- struct{}{} - <-dWait - }) - - <-ready - <-ready - <-ready - <-ready - - Q := make(chan string, 5) - - go onClosedStr(Q, "a", a) - go onClosedStr(Q, "b", b) - go onClosedStr(Q, "c", c) - go onClosedStr(Q, "d", d) - go onClosedStr(Q, "e", e) - - testNone(t, Q) - go a.Close() - testNone(t, Q) - - bWait <- struct{}{} // relase b - go b.Close() - testNone(t, Q) - - cWait <- struct{}{} // relase c - <-c.Closed() - <-b.Closed() - testStrs(t, Q, "b", "c") - testStrs(t, Q, "b", "c") - - eWait <- struct{}{} // release e - <-e.Closed() - testStrs(t, Q, "e") - - dWait <- struct{}{} // releasse d - <-d.Closed() - <-a.Closed() - testStrs(t, Q, "a", "d") - testStrs(t, Q, "a", "d") -} - -func TestCloseAfterChildren(t *testing.T) { - - var a, b, c, d, e Process - - var ready = make(chan struct{}) - - a = WithParent(Background()) - a.Go(func(p Process) { - b = p - b.Go(func(p Process) { - c = p - ready <- struct{}{} - <-p.Closing() // wait till we're told to close (parents mustnt) - }) - ready <- struct{}{} - // <-p.Closing() // will CloseAfterChildren - }) - a.Go(func(p Process) { - d = p - d.Go(func(p Process) { - e = p - ready <- struct{}{} - <-p.Closing() // wait till we're told to close (parents mustnt) - }) - ready <- struct{}{} - <-p.Closing() - }) - - <-ready - <-ready - <-ready - <-ready - - Q := make(chan string, 5) - - go onClosedStr(Q, "a", a) - go onClosedStr(Q, "b", b) - go onClosedStr(Q, "c", c) - go onClosedStr(Q, "d", d) - go onClosedStr(Q, "e", e) - - aDone := make(chan struct{}) - bDone := make(chan struct{}) - - t.Log("test none when waiting on a") - testNone(t, Q) - go func() { - a.CloseAfterChildren() - aDone <- struct{}{} - }() - testNone(t, Q) - - t.Log("test none when waiting on b") - go func() { - b.CloseAfterChildren() - bDone <- struct{}{} - }() - testNone(t, Q) - - c.Close() - <-bDone - <-b.Closed() - testStrs(t, Q, "b", "c") - testStrs(t, Q, "b", "c") - - e.Close() - testStrs(t, Q, "e") - - d.Close() - <-aDone - <-a.Closed() - testStrs(t, Q, "a", "d") - testStrs(t, Q, "a", "d") -} - -func TestGoClosing(t *testing.T) { - - var ready = make(chan struct{}) - a := WithParent(Background()) - a.Go(func(p Process) { - - // this should be fine. - a.Go(func(p Process) { - ready <- struct{}{} - }) - - // set a to close. should not fully close until after this func returns. - go a.Close() - - // wait until a is marked as closing - <-a.Closing() - - // this should also be fine. - a.Go(func(p Process) { - - select { - case <-p.Closing(): - // p should be marked as closing - default: - t.Error("not marked closing when it should be.") - } - - ready <- struct{}{} - }) - - ready <- struct{}{} - }) - - <-ready - <-ready - <-ready -} - -func TestBackground(t *testing.T) { - // test it hangs indefinitely: - b := Background() - go b.Close() - - select { - case <-b.Closing(): - t.Error("b.Closing() closed :(") - default: - } -} - -func TestWithSignals(t *testing.T) { - p := WithSignals(syscall.SIGABRT) - testNotClosed(t, p) - - syscall.Kill(syscall.Getpid(), syscall.SIGABRT) - testClosed(t, p) -} - -func TestMemoryLeak(t *testing.T) { - iters := 100 - fanout := 10 - P := newProcess(nil) - var memories []float32 - - measure := func(str string) float32 { - s := new(runtime.MemStats) - runtime.ReadMemStats(s) - //fmt.Printf("%d ", s.HeapObjects) - //fmt.Printf("%d ", len(P.children)) - //fmt.Printf("%d ", runtime.NumGoroutine()) - //fmt.Printf("%s: %dk\n", str, s.HeapAlloc/1000) - return float32(s.HeapAlloc) / 1000 - } - - spawn := func() []Process { - var ps []Process - // Spawn processes - for i := 0; i < fanout; i++ { - p := WithParent(P) - ps = append(ps, p) - - for i := 0; i < fanout; i++ { - p2 := WithParent(p) - ps = append(ps, p2) - - for i := 0; i < fanout; i++ { - p3 := WithParent(p2) - ps = append(ps, p3) - } - } - } - return ps - } - - // Read initial memory stats - measure("initial") - for i := 0; i < iters; i++ { - ps := spawn() - //measure("alloc") // read after alloc - - // Close all processes - for _, p := range ps { - p.Close() - <-p.Closed() - } - ps = nil - - //measure("dealloc") // read after dealloc, but before gc - - // wait until all/most goroutines finish - <-time.After(time.Millisecond) - - // Run GC - runtime.GC() - memories = append(memories, measure("gc")) // read after gc - } - - memoryInit := memories[10] - percentGrowth := 100 * (memories[len(memories)-1] - memoryInit) / memoryInit - fmt.Printf("Memory growth after %d iteration with each %d processes: %.2f%% after %dk\n", iters, fanout*fanout*fanout, percentGrowth, int(memoryInit)) - -} - -func testClosing(t *testing.T, p Process) { - select { - case <-p.Closing(): - case <-time.After(50 * time.Millisecond): - t.Fatal("should be closing") - } -} - -func testNotClosing(t *testing.T, p Process) { - select { - case <-p.Closing(): - t.Fatal("should not be closing") - case <-p.Closed(): - t.Fatal("should not be closed") - default: - } -} - -func testClosed(t *testing.T, p Process) { - select { - case <-p.Closed(): - case <-time.After(50 * time.Millisecond): - t.Fatal("should be closed") - } -} - -func testNotClosed(t *testing.T, p Process) { - select { - case <-p.Closed(): - t.Fatal("should not be closed") - case <-time.After(50 * time.Millisecond): - } -} - -func testNone(t *testing.T, c <-chan string) { - select { - case out := <-c: - t.Fatal("none should be closed", out) - default: - } -} - -func testStrs(t *testing.T, Q <-chan string, ss ...string) { - s1 := <-Q - for _, s2 := range ss { - if s1 == s2 { - return - } - } - t.Error("context not in group:", s1, ss) -} - -func onClosedStr(Q chan<- string, s string, p Process) { - <-p.Closed() - Q <- s -} diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/impl-mutex.go b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/impl-mutex.go deleted file mode 100644 index fb86fcce..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/impl-mutex.go +++ /dev/null @@ -1,271 +0,0 @@ -package goprocess - -import ( - "sync" -) - -// process implements Process -type process struct { - children map[*processLink]struct{} // process to close with us - waitfors map[*processLink]struct{} // process to only wait for - waiters []*processLink // processes that wait for us. for gc. - - teardown TeardownFunc // called to run the teardown logic. - waiting chan struct{} // closed when CloseAfterChildrenClosed is called. - closing chan struct{} // closed once close starts. - closed chan struct{} // closed once close is done. - closeErr error // error to return to clients of Close() - - sync.Mutex -} - -// newProcess constructs and returns a Process. -// It will call tf TeardownFunc exactly once: -// **after** all children have fully Closed, -// **after** entering <-Closing(), and -// **before** <-Closed(). -func newProcess(tf TeardownFunc) *process { - return &process{ - teardown: tf, - closed: make(chan struct{}), - closing: make(chan struct{}), - waitfors: make(map[*processLink]struct{}), - children: make(map[*processLink]struct{}), - } -} - -func (p *process) WaitFor(q Process) { - if q == nil { - panic("waiting for nil process") - } - - p.Lock() - - select { - case <-p.Closed(): - panic("Process cannot wait after being closed") - default: - } - - pl := newProcessLink(p, q) - p.waitfors[pl] = struct{}{} - p.Unlock() - go pl.AddToChild() -} - -func (p *process) AddChildNoWait(child Process) { - if child == nil { - panic("adding nil child process") - } - - p.Lock() - - select { - case <-p.Closed(): - panic("Process cannot add children after being closed") - case <-p.Closing(): - go child.Close() - default: - } - - pl := newProcessLink(p, child) - p.children[pl] = struct{}{} - p.Unlock() - go pl.AddToChild() -} - -func (p *process) AddChild(child Process) { - if child == nil { - panic("adding nil child process") - } - - p.Lock() - - select { - case <-p.Closed(): - panic("Process cannot add children after being closed") - case <-p.Closing(): - go child.Close() - default: - } - - pl := newProcessLink(p, child) - if p.waitfors != nil { // if p.waitfors hasn't been set nil - p.waitfors[pl] = struct{}{} - } - if p.children != nil { // if p.children hasn't been set nil - p.children[pl] = struct{}{} - } - p.Unlock() - go pl.AddToChild() -} - -func (p *process) Go(f ProcessFunc) Process { - child := newProcess(nil) - waitFor := newProcess(nil) - child.WaitFor(waitFor) // prevent child from closing - - // add child last, to prevent a closing parent from - // closing all of them prematurely, before running the func. - p.AddChild(child) - go func() { - f(child) - waitFor.Close() // allow child to close. - child.CloseAfterChildren() // close to tear down. - }() - return child -} - -// SetTeardown to assign a teardown function -func (p *process) SetTeardown(tf TeardownFunc) { - if tf == nil { - panic("cannot set nil TeardownFunc") - } - - p.Lock() - if p.teardown != nil { - panic("cannot SetTeardown twice") - } - - p.teardown = tf - select { - case <-p.Closed(): - p.closeErr = tf() - default: - } - p.Unlock() -} - -// Close is the external close function. -// it's a wrapper around internalClose that waits on Closed() -func (p *process) Close() error { - p.Lock() - - // if already closing, or closed, get out. (but wait!) - select { - case <-p.Closing(): - p.Unlock() - <-p.Closed() - return p.closeErr - default: - } - - p.doClose() - p.Unlock() - return p.closeErr -} - -func (p *process) Closing() <-chan struct{} { - return p.closing -} - -func (p *process) Closed() <-chan struct{} { - return p.closed -} - -func (p *process) Err() error { - <-p.Closed() - return p.closeErr -} - -// the _actual_ close process. -func (p *process) doClose() { - // this function is only be called once (protected by p.Lock()). - // and it will panic (on closing channels) otherwise. - - close(p.closing) // signal that we're shutting down (Closing) - - for len(p.children) > 0 || len(p.waitfors) > 0 { - for plc, _ := range p.children { - child := plc.Child() - if child != nil { // check because child may already have been removed. - go child.Close() // force all children to shut down - } - plc.ParentClear() - } - p.children = nil // clear them. release memory. - - // we must be careful not to iterate over waitfors directly, as it may - // change under our feet. - wf := p.waitfors - p.waitfors = nil // clear them. release memory. - for w, _ := range wf { - // Here, we wait UNLOCKED, so that waitfors who are in the middle of - // adding a child to us can finish. we will immediately close the child. - p.Unlock() - <-w.ChildClosed() // wait till all waitfors are fully closed (before teardown) - p.Lock() - w.ParentClear() - } - } - - if p.teardown != nil { - p.closeErr = p.teardown() // actually run the close logic (ok safe to teardown) - } - close(p.closed) // signal that we're shut down (Closed) - - // go remove all the parents from the process links. optimization. - go func(waiters []*processLink) { - for _, pl := range waiters { - pl.ClearChild() - pr, ok := pl.Parent().(*process) - if !ok { - // parent has already been called to close - continue - } - pr.Lock() - delete(pr.waitfors, pl) - delete(pr.children, pl) - pr.Unlock() - } - }(p.waiters) // pass in so - p.waiters = nil // clear them. release memory. -} - -// We will only wait on the children we have now. -// We will not wait on children added subsequently. -// this may change in the future. -func (p *process) CloseAfterChildren() error { - p.Lock() - select { - case <-p.Closed(): - p.Unlock() - return p.Close() // get error. safe, after p.Closed() - case <-p.waiting: // already called it. - p.Unlock() - <-p.Closed() - return p.Close() // get error. safe, after p.Closed() - default: - } - p.Unlock() - - // here only from one goroutine. - - nextToWaitFor := func() Process { - p.Lock() - defer p.Unlock() - for e, _ := range p.waitfors { - c := e.Child() - if c == nil { - continue - } - - select { - case <-c.Closed(): - default: - return c - } - } - return nil - } - - // wait for all processes we're waiting for are closed. - // the semantics here are simple: we will _only_ close - // if there are no processes currently waiting for. - for next := nextToWaitFor(); next != nil; next = nextToWaitFor() { - <-next.Closed() - } - - // YAY! we're done. close - return p.Close() -} diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/link.go b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/link.go deleted file mode 100644 index c344c1e6..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/link.go +++ /dev/null @@ -1,121 +0,0 @@ -package goprocess - -import ( - "sync" -) - -// closedCh is an alread-closed channel. used to return -// in cases where we already know a channel is closed. -var closedCh chan struct{} - -func init() { - closedCh = make(chan struct{}) - close(closedCh) -} - -// a processLink is an internal bookkeeping datastructure. -// it's used to form a relationship between two processes. -// It is mostly for keeping memory usage down (letting -// children close and be garbage-collected). -type processLink struct { - // guards all fields. - // DO NOT HOLD while holding process locks. - // it may be slow, and could deadlock if not careful. - sync.Mutex - parent Process - child Process -} - -func newProcessLink(p, c Process) *processLink { - return &processLink{ - parent: p, - child: c, - } -} - -// Closing returns whether the child is closing -func (pl *processLink) ChildClosing() <-chan struct{} { - // grab a hold of it, and unlock, as .Closing may block. - pl.Lock() - child := pl.child - pl.Unlock() - - if child == nil { // already closed? memory optimization. - return closedCh - } - return child.Closing() -} - -func (pl *processLink) ChildClosed() <-chan struct{} { - // grab a hold of it, and unlock, as .Closed may block. - pl.Lock() - child := pl.child - pl.Unlock() - - if child == nil { // already closed? memory optimization. - return closedCh - } - return child.Closed() -} - -func (pl *processLink) ChildClose() { - // grab a hold of it, and unlock, as .Closed may block. - pl.Lock() - child := pl.child - pl.Unlock() - - if child != nil { // already closed? memory optimization. - child.Close() - } -} - -func (pl *processLink) ClearChild() { - pl.Lock() - pl.child = nil - pl.Unlock() -} - -func (pl *processLink) ParentClear() { - pl.Lock() - pl.parent = nil - pl.Unlock() -} - -func (pl *processLink) Child() Process { - pl.Lock() - defer pl.Unlock() - return pl.child -} - -func (pl *processLink) Parent() Process { - pl.Lock() - defer pl.Unlock() - return pl.parent -} - -func (pl *processLink) AddToChild() { - cp := pl.Child() - - // is it a *process ? if not... panic. - c, ok := cp.(*process) - if !ok { - panic("goprocess does not yet support other process impls.") - } - - // first, is it Closed? - c.Lock() - select { - case <-c.Closed(): - c.Unlock() - - // already closed. must not add. - // we must clear it, though. do so without the lock. - pl.ClearChild() - return - - default: - // put the process link into q's waiters - c.waiters = append(c.waiters, pl) - c.Unlock() - } -} diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/package.json b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/package.json deleted file mode 100644 index 726e75c9..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "goprocess", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "context", - "hash": "QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct", - "version": "1.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/jbenet/goprocess" - } -} \ No newline at end of file diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/README.md b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/README.md deleted file mode 100644 index 7a2c55db..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# goprocess/periodic - periodic process creation - -- goprocess: https://github.com/jbenet/goprocess -- Godoc: https://godoc.org/github.com/jbenet/goprocess/periodic diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/examples_test.go b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/examples_test.go deleted file mode 100644 index ddd6cdc3..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/examples_test.go +++ /dev/null @@ -1,85 +0,0 @@ -package periodicproc_test - -import ( - "fmt" - "time" - - goprocess "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" - periodicproc "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic" -) - -func ExampleEvery() { - tock := make(chan struct{}) - - i := 0 - p := periodicproc.Every(time.Second, func(proc goprocess.Process) { - tock <- struct{}{} - fmt.Printf("hello %d\n", i) - i++ - }) - - <-tock - <-tock - <-tock - p.Close() - - // Output: - // hello 0 - // hello 1 - // hello 2 -} - -func ExampleTick() { - p := periodicproc.Tick(time.Second, func(proc goprocess.Process) { - fmt.Println("tick") - }) - - <-time.After(3*time.Second + 500*time.Millisecond) - p.Close() - - // Output: - // tick - // tick - // tick -} - -func ExampleTickGo() { - - // with TickGo, execution is not rate limited, - // there can be many in-flight simultaneously - - wait := make(chan struct{}) - p := periodicproc.TickGo(time.Second, func(proc goprocess.Process) { - fmt.Println("tick") - <-wait - }) - - <-time.After(3*time.Second + 500*time.Millisecond) - - wait <- struct{}{} - wait <- struct{}{} - wait <- struct{}{} - p.Close() // blocks us until all children are closed. - - // Output: - // tick - // tick - // tick -} - -func ExampleOnSignal() { - sig := make(chan struct{}) - p := periodicproc.OnSignal(sig, func(proc goprocess.Process) { - fmt.Println("fire!") - }) - - sig <- struct{}{} - sig <- struct{}{} - sig <- struct{}{} - p.Close() - - // Output: - // fire! - // fire! - // fire! -} diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/periodic.go b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/periodic.go deleted file mode 100644 index 2818c0cd..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/periodic.go +++ /dev/null @@ -1,232 +0,0 @@ -// Package periodic is part of github.com/jbenet/goprocess. -// It provides a simple periodic processor that calls a function -// periodically based on some options. -// -// For example: -// -// // use a time.Duration -// p := periodicproc.Every(time.Second, func(proc goprocess.Process) { -// fmt.Printf("the time is %s and all is well", time.Now()) -// }) -// -// <-time.After(5*time.Second) -// p.Close() -// -// // use a time.Time channel (like time.Ticker) -// p := periodicproc.Tick(time.Tick(time.Second), func(proc goprocess.Process) { -// fmt.Printf("the time is %s and all is well", time.Now()) -// }) -// -// <-time.After(5*time.Second) -// p.Close() -// -// // or arbitrary signals -// signal := make(chan struct{}) -// p := periodicproc.OnSignal(signal, func(proc goprocess.Process) { -// fmt.Printf("the time is %s and all is well", time.Now()) -// }) -// -// signal<- struct{}{} -// signal<- struct{}{} -// <-time.After(5 * time.Second) -// signal<- struct{}{} -// p.Close() -// -package periodicproc - -import ( - "time" - - gp "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" -) - -// Every calls the given ProcessFunc at periodic intervals. Internally, it uses -// <-time.After(interval), so it will have the behavior of waiting _at least_ -// interval in between calls. If you'd prefer the time.Ticker behavior, use -// periodicproc.Tick instead. -// This is sequentially rate limited, only one call will be in-flight at a time. -func Every(interval time.Duration, procfunc gp.ProcessFunc) gp.Process { - return gp.Go(func(proc gp.Process) { - for { - select { - case <-time.After(interval): - select { - case <-proc.Go(procfunc).Closed(): // spin it out as a child, and wait till it's done. - case <-proc.Closing(): // we're told to close - return - } - case <-proc.Closing(): // we're told to close - return - } - } - }) -} - -// EveryGo calls the given ProcessFunc at periodic intervals. Internally, it uses -// <-time.After(interval) -// This is not rate limited, multiple calls could be in-flight at the same time. -func EveryGo(interval time.Duration, procfunc gp.ProcessFunc) gp.Process { - return gp.Go(func(proc gp.Process) { - for { - select { - case <-time.After(interval): - proc.Go(procfunc) - case <-proc.Closing(): // we're told to close - return - } - } - }) -} - -// Tick constructs a ticker with interval, and calls the given ProcessFunc every -// time the ticker fires. -// This is sequentially rate limited, only one call will be in-flight at a time. -// -// p := periodicproc.Tick(time.Second, func(proc goprocess.Process) { -// fmt.Println("fire!") -// }) -// -// <-time.After(3 * time.Second) -// p.Close() -// -// // Output: -// // fire! -// // fire! -// // fire! -func Tick(interval time.Duration, procfunc gp.ProcessFunc) gp.Process { - return gp.Go(func(proc gp.Process) { - ticker := time.NewTicker(interval) - callOnTicker(ticker.C, procfunc)(proc) - ticker.Stop() - }) -} - -// TickGo constructs a ticker with interval, and calls the given ProcessFunc every -// time the ticker fires. -// This is not rate limited, multiple calls could be in-flight at the same time. -// -// p := periodicproc.TickGo(time.Second, func(proc goprocess.Process) { -// fmt.Println("fire!") -// <-time.After(10 * time.Second) // will not block sequential execution -// }) -// -// <-time.After(3 * time.Second) -// p.Close() -// -// // Output: -// // fire! -// // fire! -// // fire! -func TickGo(interval time.Duration, procfunc gp.ProcessFunc) gp.Process { - return gp.Go(func(proc gp.Process) { - ticker := time.NewTicker(interval) - goCallOnTicker(ticker.C, procfunc)(proc) - ticker.Stop() - }) -} - -// Ticker calls the given ProcessFunc every time the ticker fires. -// This is sequentially rate limited, only one call will be in-flight at a time. -func Ticker(ticker <-chan time.Time, procfunc gp.ProcessFunc) gp.Process { - return gp.Go(callOnTicker(ticker, procfunc)) -} - -// TickerGo calls the given ProcessFunc every time the ticker fires. -// This is not rate limited, multiple calls could be in-flight at the same time. -func TickerGo(ticker <-chan time.Time, procfunc gp.ProcessFunc) gp.Process { - return gp.Go(goCallOnTicker(ticker, procfunc)) -} - -func callOnTicker(ticker <-chan time.Time, pf gp.ProcessFunc) gp.ProcessFunc { - return func(proc gp.Process) { - for { - select { - case <-ticker: - select { - case <-proc.Go(pf).Closed(): // spin it out as a child, and wait till it's done. - case <-proc.Closing(): // we're told to close - return - } - case <-proc.Closing(): // we're told to close - return - } - } - } -} - -func goCallOnTicker(ticker <-chan time.Time, pf gp.ProcessFunc) gp.ProcessFunc { - return func(proc gp.Process) { - for { - select { - case <-ticker: - proc.Go(pf) - case <-proc.Closing(): // we're told to close - return - } - } - } -} - -// OnSignal calls the given ProcessFunc every time the signal fires, and waits for it to exit. -// This is sequentially rate limited, only one call will be in-flight at a time. -// -// sig := make(chan struct{}) -// p := periodicproc.OnSignal(sig, func(proc goprocess.Process) { -// fmt.Println("fire!") -// <-time.After(time.Second) // delays sequential execution by 1 second -// }) -// -// sig<- struct{} -// sig<- struct{} -// sig<- struct{} -// -// // Output: -// // fire! -// // fire! -// // fire! -func OnSignal(sig <-chan struct{}, procfunc gp.ProcessFunc) gp.Process { - return gp.Go(func(proc gp.Process) { - for { - select { - case <-sig: - select { - case <-proc.Go(procfunc).Closed(): // spin it out as a child, and wait till it's done. - case <-proc.Closing(): // we're told to close - return - } - case <-proc.Closing(): // we're told to close - return - } - } - }) -} - -// OnSignalGo calls the given ProcessFunc every time the signal fires. -// This is not rate limited, multiple calls could be in-flight at the same time. -// -// sig := make(chan struct{}) -// p := periodicproc.OnSignalGo(sig, func(proc goprocess.Process) { -// fmt.Println("fire!") -// <-time.After(time.Second) // wont block execution -// }) -// -// sig<- struct{} -// sig<- struct{} -// sig<- struct{} -// -// // Output: -// // fire! -// // fire! -// // fire! -func OnSignalGo(sig <-chan struct{}, procfunc gp.ProcessFunc) gp.Process { - return gp.Go(func(proc gp.Process) { - for { - select { - case <-sig: - proc.Go(procfunc) - case <-proc.Closing(): // we're told to close - return - } - } - }) -} diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/periodic_test.go b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/periodic_test.go deleted file mode 100644 index 9a213487..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/periodic/periodic_test.go +++ /dev/null @@ -1,260 +0,0 @@ -package periodicproc - -import ( - "testing" - "time" - - gp "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" - ci "github.com/jbenet/go-cienv" -) - -var ( - grace = time.Millisecond * 5 - interval = time.Millisecond * 10 - timeout = time.Second * 5 -) - -func init() { - if ci.IsRunning() { - grace = time.Millisecond * 500 - interval = time.Millisecond * 1000 - timeout = time.Second * 15 - } -} - -func between(min, diff, max time.Duration) bool { - return min <= diff && diff <= max -} - -func testBetween(t *testing.T, min, diff, max time.Duration) { - if !between(min, diff, max) { - t.Error("time diff incorrect:", min, diff, max) - } -} - -type intervalFunc func(times chan<- time.Time, wait <-chan struct{}) (proc gp.Process) - -func testSeq(t *testing.T, toTest intervalFunc) { - t.Parallel() - - last := time.Now() - times := make(chan time.Time, 10) - p := toTest(times, nil) - - for i := 0; i < 5; i++ { - next := <-times - testBetween(t, interval-grace, next.Sub(last), interval+grace) - last = next - } - - go p.Close() - select { - case <-p.Closed(): - case <-time.After(timeout): - t.Error("proc failed to close") - } -} - -func testSeqWait(t *testing.T, toTest intervalFunc) { - t.Parallel() - - last := time.Now() - times := make(chan time.Time, 10) - wait := make(chan struct{}) - p := toTest(times, wait) - - for i := 0; i < 5; i++ { - next := <-times - testBetween(t, interval-grace, next.Sub(last), interval+grace) - - <-time.After(interval * 2) // make it wait. - last = time.Now() // make it now (sequential) - wait <- struct{}{} // release it. - } - - go p.Close() - - select { - case <-p.Closed(): - case <-time.After(timeout): - t.Error("proc failed to close") - } -} - -func testSeqNoWait(t *testing.T, toTest intervalFunc) { - t.Parallel() - - last := time.Now() - times := make(chan time.Time, 10) - wait := make(chan struct{}) - p := toTest(times, wait) - - for i := 0; i < 5; i++ { - next := <-times - testBetween(t, 0, next.Sub(last), interval+grace) // min of 0 - - <-time.After(interval * 2) // make it wait. - last = time.Now() // make it now (sequential) - wait <- struct{}{} // release it. - } - - go p.Close() - -end: - select { - case wait <- struct{}{}: // drain any extras. - goto end - case <-p.Closed(): - case <-time.After(timeout): - t.Error("proc failed to close") - } -} - -func testParallel(t *testing.T, toTest intervalFunc) { - t.Parallel() - - last := time.Now() - times := make(chan time.Time, 10) - wait := make(chan struct{}) - p := toTest(times, wait) - - for i := 0; i < 5; i++ { - next := <-times - testBetween(t, interval-grace, next.Sub(last), interval+grace) - last = next - - <-time.After(interval * 2) // make it wait. - wait <- struct{}{} // release it. - } - - go p.Close() - -end: - select { - case wait <- struct{}{}: // drain any extras. - goto end - case <-p.Closed(): - case <-time.After(timeout): - t.Error("proc failed to close") - } -} - -func TestEverySeq(t *testing.T) { - testSeq(t, func(times chan<- time.Time, wait <-chan struct{}) (proc gp.Process) { - return Every(interval, func(proc gp.Process) { - times <- time.Now() - }) - }) -} - -func TestEverySeqWait(t *testing.T) { - testSeqWait(t, func(times chan<- time.Time, wait <-chan struct{}) (proc gp.Process) { - return Every(interval, func(proc gp.Process) { - times <- time.Now() - select { - case <-wait: - case <-proc.Closing(): - } - }) - }) -} - -func TestEveryGoSeq(t *testing.T) { - testSeq(t, func(times chan<- time.Time, wait <-chan struct{}) (proc gp.Process) { - return EveryGo(interval, func(proc gp.Process) { - times <- time.Now() - }) - }) -} - -func TestEveryGoSeqParallel(t *testing.T) { - testParallel(t, func(times chan<- time.Time, wait <-chan struct{}) (proc gp.Process) { - return EveryGo(interval, func(proc gp.Process) { - times <- time.Now() - select { - case <-wait: - case <-proc.Closing(): - } - }) - }) -} - -func TestTickSeq(t *testing.T) { - testSeq(t, func(times chan<- time.Time, wait <-chan struct{}) (proc gp.Process) { - return Tick(interval, func(proc gp.Process) { - times <- time.Now() - }) - }) -} - -func TestTickSeqNoWait(t *testing.T) { - testSeqNoWait(t, func(times chan<- time.Time, wait <-chan struct{}) (proc gp.Process) { - return Tick(interval, func(proc gp.Process) { - times <- time.Now() - select { - case <-wait: - case <-proc.Closing(): - } - }) - }) -} - -func TestTickGoSeq(t *testing.T) { - testSeq(t, func(times chan<- time.Time, wait <-chan struct{}) (proc gp.Process) { - return TickGo(interval, func(proc gp.Process) { - times <- time.Now() - }) - }) -} - -func TestTickGoSeqParallel(t *testing.T) { - testParallel(t, func(times chan<- time.Time, wait <-chan struct{}) (proc gp.Process) { - return TickGo(interval, func(proc gp.Process) { - times <- time.Now() - select { - case <-wait: - case <-proc.Closing(): - } - }) - }) -} - -func TestTickerSeq(t *testing.T) { - testSeq(t, func(times chan<- time.Time, wait <-chan struct{}) (proc gp.Process) { - return Ticker(time.Tick(interval), func(proc gp.Process) { - times <- time.Now() - }) - }) -} - -func TestTickerSeqNoWait(t *testing.T) { - testSeqNoWait(t, func(times chan<- time.Time, wait <-chan struct{}) (proc gp.Process) { - return Ticker(time.Tick(interval), func(proc gp.Process) { - times <- time.Now() - select { - case <-wait: - case <-proc.Closing(): - } - }) - }) -} - -func TestTickerGoSeq(t *testing.T) { - testSeq(t, func(times chan<- time.Time, wait <-chan struct{}) (proc gp.Process) { - return TickerGo(time.Tick(interval), func(proc gp.Process) { - times <- time.Now() - }) - }) -} - -func TestTickerGoParallel(t *testing.T) { - testParallel(t, func(times chan<- time.Time, wait <-chan struct{}) (proc gp.Process) { - return TickerGo(time.Tick(interval), func(proc gp.Process) { - times <- time.Now() - select { - case <-wait: - case <-proc.Closing(): - } - }) - }) -} diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/ratelimit/README.md b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/ratelimit/README.md deleted file mode 100644 index 3c91185e..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/ratelimit/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# goprocess/ratelimit - ratelimit children creation - -- goprocess: https://github.com/jbenet/goprocess -- Godoc: https://godoc.org/github.com/jbenet/goprocess/ratelimit diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/ratelimit/ratelimit.go b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/ratelimit/ratelimit.go deleted file mode 100644 index 85b6dfbd..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/ratelimit/ratelimit.go +++ /dev/null @@ -1,68 +0,0 @@ -// Package ratelimit is part of github.com/jbenet/goprocess. -// It provides a simple process that ratelimits child creation. -// This is done internally with a channel/semaphore. -// So the call `RateLimiter.LimitedGo` may block until another -// child is Closed(). -package ratelimit - -import ( - process "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" -) - -// RateLimiter limits the spawning of children. It does so -// with an internal semaphore. Note that Go will continue -// to be the unlimited process.Process.Go, and ONLY the -// added function `RateLimiter.LimitedGo` will honor the -// limit. This is to improve readability and avoid confusion -// for the reader, particularly if code changes over time. -type RateLimiter struct { - process.Process - - limiter chan struct{} -} - -func NewRateLimiter(parent process.Process, limit int) *RateLimiter { - proc := process.WithParent(parent) - return &RateLimiter{Process: proc, limiter: LimitChan(limit)} -} - -// LimitedGo creates a new process, adds it as a child, and spawns the -// ProcessFunc f in its own goroutine, but may block according to the -// internal rate limit. It is equivalent to: -// -// func(f process.ProcessFunc) { -// <-limitch -// p.Go(func (child process.Process) { -// f(child) -// f.Close() // make sure its children close too! -// limitch<- struct{}{} -// }) -/// } -// -// It is useful to construct simple asynchronous workers, children of p, -// and rate limit their creation, to avoid spinning up too many, too fast. -// This is great for providing backpressure to producers. -func (rl *RateLimiter) LimitedGo(f process.ProcessFunc) { - - <-rl.limiter - p := rl.Go(f) - - // this <-closed() is here because the child may have spawned - // children of its own, and our rate limiter should capture that. - go func() { - <-p.Closed() - rl.limiter <- struct{}{} - }() -} - -// LimitChan returns a rate-limiting channel. it is the usual, simple, -// golang-idiomatic rate-limiting semaphore. This function merely -// initializes it with certain buffer size, and sends that many values, -// so it is ready to be used. -func LimitChan(limit int) chan struct{} { - limitch := make(chan struct{}, limit) - for i := 0; i < limit; i++ { - limitch <- struct{}{} - } - return limitch -} diff --git a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/ratelimit/ratelimit_test.go b/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/ratelimit/ratelimit_test.go deleted file mode 100644 index c233075a..00000000 --- a/vendor/gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess/ratelimit/ratelimit_test.go +++ /dev/null @@ -1,98 +0,0 @@ -package ratelimit - -import ( - "testing" - "time" - - process "gx/QmfDXyLfKNfja2XebomRZjZ2UZCa4BDyFoCymKtzNRVQ5b/goprocess" -) - -func TestRateLimitLimitedGoBlocks(t *testing.T) { - numChildren := 6 - - t.Logf("create a rate limiter with limit of %d", numChildren/2) - rl := NewRateLimiter(process.Background(), numChildren/2) - - doneSpawning := make(chan struct{}) - childClosing := make(chan struct{}) - - t.Log("spawn 6 children with LimitedGo.") - go func() { - for i := 0; i < numChildren; i++ { - rl.LimitedGo(func(child process.Process) { - // hang until we drain childClosing - childClosing <- struct{}{} - }) - t.Logf("spawned %d", i) - } - close(doneSpawning) - }() - - t.Log("should have blocked.") - select { - case <-doneSpawning: - t.Error("did not block") - case <-time.After(time.Millisecond): // for scheduler - t.Log("blocked") - } - - t.Logf("drain %d children so they close", numChildren/2) - for i := 0; i < numChildren/2; i++ { - t.Logf("closing %d", i) - <-childClosing // consume child cloing - t.Logf("closed %d", i) - } - - t.Log("should be done spawning.") - select { - case <-doneSpawning: - case <-time.After(100 * time.Millisecond): // for scheduler - t.Error("still blocked...") - } - - t.Logf("drain %d children so they close", numChildren/2) - for i := 0; i < numChildren/2; i++ { - <-childClosing - t.Logf("closed %d", i) - } - - rl.Close() // ensure everyone's closed. -} - -func TestRateLimitGoDoesntBlock(t *testing.T) { - numChildren := 6 - - t.Logf("create a rate limiter with limit of %d", numChildren/2) - rl := NewRateLimiter(process.Background(), numChildren/2) - - doneSpawning := make(chan struct{}) - childClosing := make(chan struct{}) - - t.Log("spawn 6 children with usual Process.Go.") - go func() { - for i := 0; i < numChildren; i++ { - rl.Go(func(child process.Process) { - // hang until we drain childClosing - childClosing <- struct{}{} - }) - t.Logf("spawned %d", i) - } - close(doneSpawning) - }() - - t.Log("should not have blocked.") - select { - case <-doneSpawning: - t.Log("did not block") - case <-time.After(100 * time.Millisecond): // for scheduler - t.Error("process.Go blocked. it should not.") - } - - t.Log("drain children so they close") - for i := 0; i < numChildren; i++ { - <-childClosing - t.Logf("closed %d", i) - } - - rl.Close() // ensure everyone's closed. -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/LICENSE b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/LICENSE deleted file mode 100644 index fc44d596..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2013 Alan Shreve - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/README.md b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/README.md deleted file mode 100644 index 95fe3f4c..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# muxado - Stream multiplexing for Go - -## What is stream multiplexing? -Imagine you have a single stream (a bi-directional stream of bytes) like a TCP connection. Stream multiplexing -is a method for enabling the transmission of multiple simultaneous streams over the one underlying transport stream. - -## What is muxado? -muxado is an implementation of a stream multiplexing library in Go that can be layered on top of a net.Conn to multiplex that stream. -muxado's protocol is not currently documented explicitly, but it is very nearly an implementation of the HTTP2 -framing layer with all of the HTTP-specific bits removed. It is heavily inspired by HTTP2, SPDY, and WebMUX. - -## How does it work? -Simplifying, muxado chunks data sent over each multiplexed stream and transmits each piece -as a "frame" over the transport stream. It then sends these frames, -often interleaving data for multiple streams, to the remote side. -The remote endpoint then reassembles the frames into distinct streams -of data which are presented to the application layer. - -## What good is it anyways? -A stream multiplexing library is a powerful tool for an application developer's toolbox which solves a number of problems: - -- It allows developers to implement asynchronous/pipelined protocols with ease. Instead of matching requests with responses in your protocols, just open a new stream for each request and communicate over that. -- muxado can do application-level keep-alives and dead-session detection so that you don't have to write heartbeat code ever again. -- You never need to build connection pools for services running your protocol. You can open as many independent, concurrent streams as you need without incurring any round-trip latency costs. -- muxado allows the server to initiate new streams to clients which is normally very difficult without NAT-busting trickery. - -## Show me the code! -As much as possible, the muxado library strives to look and feel just like the standard library's net package. Here's how you initiate a new client session: - - sess, err := muxado.DialTLS("tcp", "example.com:1234", tlsConfig) - -And a server: - - l, err := muxado.ListenTLS("tcp", ":1234", tlsConfig)) - for { - sess, err := l.Accept() - go handleSession(sess) - } - -Once you have a session, you can open new streams on it: - - stream, err := sess.Open() - -And accept streams opened by the remote side: - - stream, err := sess.Accept() - -Streams satisfy the net.Conn interface, so they're very familiar to work with: - - n, err := stream.Write(buf) - n, err = stream.Read(buf) - -muxado sessions and streams implement the net.Listener and net.Conn interfaces (with a small shim), so you can use them with existing golang libraries! - - sess, err := muxado.DialTLS("tcp", "example.com:1234", tlsConfig) - http.Serve(sess.NetListener(), handler) - -## A more extensive muxado client - - // open a new session to a remote endpoint - sess, err := muxado.Dial("tcp", "example.com:1234") - if err != nil { - panic(err) - } - - // handle streams initiated by the server - go func() { - for { - stream, err := sess.Accept() - if err != nil { - panic(err) - } - - go handleStream(stream) - } - }() - - // open new streams for application requests - for req := range requests { - str, err := sess.Open() - if err != nil { - panic(err) - } - - go func(stream muxado.Stream) { - defer stream.Close() - - // send request - if _, err = stream.Write(req.serialize()); err != nil { - panic(err) - } - - // read response - if buf, err := ioutil.ReadAll(stream); err != nil { - panic(err) - } - - handleResponse(buf) - }(str) - } - -## How did you build it? -muxado is a modified implementation of the HTTP2 framing protocol with all of the HTTP-specific bits removed. It aims -for simplicity in the protocol by removing everything that is not core to multiplexing streams. The muxado code -is also built with the intention that its performance should be moderately good within the bounds of working in Go. As a result, -muxado does contain some unidiomatic code. - -## API documentation -API documentation is available on godoc.org: - -[muxado API documentation](https://godoc.org/github.com/inconshreveable/muxado) - -## What are its biggest drawbacks? -Any stream-multiplexing library over TCP will suffer from head-of-line blocking if the next packet to service gets dropped. -muxado is also a poor choice when sending large payloads and speed is a priority. -It shines best when the application workload needs to quickly open a large number of small-payload streams. - -## Status -Most of muxado's features are implemented (and tested!), but there are many that are still rough or could be improved. See the TODO file for suggestions on what needs to improve. - -## License -Apache diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/TODO b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/TODO deleted file mode 100644 index 8c5c580f..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/TODO +++ /dev/null @@ -1,35 +0,0 @@ -improve the formatting of the docs to look nice for godoc -use a better example in the docs first before showing the clever integration with the net.Listener/net.Conn APIs -Make all errors support Temporary() API so applications can better decide what to do -Handle case of running out of stream ids + test -writeFrame errors should kill the session, but only if it's not a timeout + test -Short read should cause an error + test -Decrement() in outBuffer needs to have deadline support - -Extensions: - Heartbeat extension needs tests - Make extensions a public API instead of a private API - Document how extensions work - Don't include any extensions by default - -heartbeat test -Finish writing buffer tests -Write stress test -Write multi-frame write test -More session tests -More stream tests -Write frame/transport tests - verify read correct type, verify unknown type causes error, verify ioerror is propogated -Write frame/syn tests -Write frame/goaway tests - -### Low priority: -- Add the ability to differentiate stream errors which allow you to safely retry -- Decide what to do if the application isn't handling its accepted streams fast enough. Refuse stream? Wait and block reading more frames? -- Figure out whether to die with/without lock - in GoAway/OpenStream -- Add priority APIs to stream -- Add priority extension -- Add Reset() stream API -- Eliminate unlikely race on s.remoteDebug between handleFrame() and die() -- Should writeFrame calls for rst/wndinc set the write deadline? -- don't send reset if the stream is fully closed -- include muxado pun somewhere in the docs diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/adaptor.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/adaptor.go deleted file mode 100644 index a0b9f3fe..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/adaptor.go +++ /dev/null @@ -1,54 +0,0 @@ -package muxado - -import ( - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto" - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame" -) - -// streamAdaptor recasts the types of some function calls by the proto/Stream implementation -// so that it satisfies the public interface -type streamAdaptor struct { - proto.IStream -} - -func (a *streamAdaptor) Id() StreamId { - return StreamId(a.IStream.Id()) -} - -func (a *streamAdaptor) StreamType() StreamType { - return StreamType(a.IStream.StreamType()) -} - -func (a *streamAdaptor) Session() Session { - return &sessionAdaptor{a.IStream.Session()} -} - -// sessionAdaptor recasts the types of some function calls by the proto/Session implementation -// so that it satisfies the public interface -type sessionAdaptor struct { - proto.ISession -} - -func (a *sessionAdaptor) Accept() (Stream, error) { - str, err := a.ISession.Accept() - return &streamAdaptor{str}, err -} - -func (a *sessionAdaptor) Open() (Stream, error) { - str, err := a.ISession.Open() - return &streamAdaptor{str}, err -} - -func (a *sessionAdaptor) OpenStream(priority StreamPriority, streamType StreamType, fin bool) (Stream, error) { - str, err := a.ISession.OpenStream(frame.StreamPriority(priority), frame.StreamType(streamType), fin) - return &streamAdaptor{str}, err -} - -func (a *sessionAdaptor) GoAway(code ErrorCode, debug []byte) error { - return a.ISession.GoAway(frame.ErrorCode(code), debug) -} - -func (a *sessionAdaptor) Wait() (ErrorCode, error, []byte) { - code, err, debug := a.ISession.Wait() - return ErrorCode(code), err, debug -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/client.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/client.go deleted file mode 100644 index c7c62da5..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/client.go +++ /dev/null @@ -1,32 +0,0 @@ -package muxado - -import ( - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto" - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/ext" - "crypto/tls" - "net" -) - -// Client returns a new muxado client-side connection using conn as the transport. -func Client(conn net.Conn) Session { - return &sessionAdaptor{proto.NewSession(conn, proto.NewStream, true, []proto.Extension{ext.NewDefaultHeartbeat()})} -} - -// Dial opens a new connection to the given network/address and then beings a muxado client session on it. -func Dial(network, addr string) (sess Session, err error) { - conn, err := net.Dial(network, addr) - if err != nil { - return - } - return Client(conn), nil -} - -// DialTLS opens a new TLS encrytped connection with the givent configuration -// to the network/address and then beings a muxado client session on it. -func DialTLS(network, addr string, tlsConfig *tls.Config) (sess Session, err error) { - conn, err := tls.Dial(network, addr, tlsConfig) - if err != nil { - return - } - return Client(conn), nil -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/doc.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/doc.go deleted file mode 100644 index 1683a0f1..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/doc.go +++ /dev/null @@ -1,57 +0,0 @@ -// muxado is an implementation of a general-purpose stream-multiplexing protocol. -// -// muxado allows clients applications to multiplex a single stream-oriented connection, -// like a TCP connection, and communicate over many streams on top of it. muxado accomplishes -// this by chunking data sent over each stream into frames and then reassembling the -// frames and buffering the data before being passed up to the application -// layer on the other side. -// -// muxado is very nearly an exact implementation of the HTTP2 framing layer while leaving out all -// the HTTP-specific parts. It is heavily inspired by HTTP2/SPDY/WebMUX. -// -// muxado's documentation uses the following terms consistently for easier communication: -// - "a transport" is an underlying stream (typically TCP) over which frames are sent between -// endpoints -// - "a stream" is any of the full-duplex byte-streams multiplexed over the transport -// - "a session" refers to an instance of the muxado protocol running over a transport between -// two endpoints -// -// Perhaps the best part of muxado is the interface exposed to client libraries. Since new -// streams may be initiated by both sides at any time, a muxado.Session implements the net.Listener -// interface (almost! Go unfortunately doesn't support covariant interface satisfaction so there's -// a shim). Each muxado stream implements the net.Conn interface. This allows you to integrate -// muxado into existing code which works with these interfaces (which is most Golang networking code) -// with very little difficulty. Consider the following toy example. Here we'll initiate a new secure -// connection to a server, and then ask it which application it wants via an HTTP request over a muxado stream -// and then serve an entire HTTP application *to the server*. -// -// -// sess, err := muxado.DialTLS("tcp", "example.com:1234", new(tls.Config)) -// client := &http.Client{Transport: &http.Transport{Dial: sess.NetDial}} -// resp, err := client.Get("http://example.com/appchoice") -// switch getChoice(resp.Body) { -// case "foo": -// http.Serve(sess.NetListener(), fooHandler) -// case "bar": -// http.Serve(sess.NetListener(), barHandler) -// } -// -// -// In addition to enabling multiple streams over a single connection, muxado enables other -// behaviors which can be useful to the application layer: -// - Both sides of a muxado session may initiate new streams -// - muxado can transparently run application-level heartbeats and timeout dead sessions -// - When connections fail, muxado indicates to the application which streams may be safely retried -// - muxado supports prioritizing streams to maximize useful throughput when bandwidth-constrained -// -// A few examples of what these capabilities might make muxado useful for: -// - eliminating custom async/pipeling code for your protocols -// - eliminating connection pools in your protocols -// - eliminating custom NAT traversal logic for enabling server-initiated streams -// -// muxado has been tuned to be very performant within the limits of what you can expect of pure-Go code. -// Some of muxado's code looks unidiomatic in the quest for better performance. (Locks over channels, never allocating -// from the heap, etc). muxado will typically outperform TCP connections when rapidly initiating many new -// streams with small payloads. When sending a large payload over a single stream, muxado's worst case, it can -// be 2-3x slower and does not parallelize well. -package muxado diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/interface.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/interface.go deleted file mode 100644 index f3021531..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/interface.go +++ /dev/null @@ -1,115 +0,0 @@ -package muxado - -import ( - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame" - "net" - "time" -) - -type StreamId frame.StreamId -type StreamPriority frame.StreamPriority -type StreamType frame.StreamType -type ErrorCode frame.ErrorCode - -// Stream is a full duplex stream-oriented connection that is multiplexed over a Session. -// Stream implement the net.Conn inteface. -type Stream interface { - // Write writes the bytes in the given buffer to the stream - Write([]byte) (int, error) - - // Read reads the next bytes on the stream into the given buffer - Read([]byte) (int, error) - - // Close closes the stream. It attempts to behave as Close does for a TCP conn in that it - // half-closes the stream for sending, and it will send an RST if any more data is received - // from the remote side. - Close() error - - // SetDeadline sets a time after which future Read and Write operations will fail. - SetDeadline(time.Time) error - - // SetReadDeadline sets a time after which future Read operations will fail. - SetReadDeadline(time.Time) error - - // SetWriteDeadline sets a time after which future Write operations will fail. - SetWriteDeadline(time.Time) error - - // HalfClose sends a data frame with a fin flag set to half-close the stream from the local side. - HalfClose([]byte) (int, error) - - // Id returns the stream's id. - Id() StreamId - - // StreamType returns the stream's type - StreamType() StreamType - - // Session returns the session object this stream is running on. - Session() Session - - // RemoteAddr returns the session transport's remote address. - RemoteAddr() net.Addr - - // LocalAddr returns the session transport's local address. - LocalAddr() net.Addr -} - -// Session multiplexes many Streams over a single underlying stream transport. -// Both sides of a muxado session can open new Streams. Sessions can also accept -// new streams from the remote side. -// -// A muxado Session implements the net.Listener interface, returning new Streams from the remote side. -type Session interface { - - // Open initiates a new stream on the session. It is equivalent to OpenStream(0, 0, false) - Open() (Stream, error) - - // OpenStream initiates a new stream on the session. A caller can specify a stream's priority and an opaque stream type. - // Setting fin to true will cause the stream to be half-closed from the local side immediately upon creation. - OpenStream(priority StreamPriority, streamType StreamType, fin bool) (Stream, error) - - // Accept returns the next stream initiated by the remote side - Accept() (Stream, error) - - // Kill closes the underlying transport stream immediately. - // - // You SHOULD always perfer to call Close() instead so that the connection - // closes cleanly by sending a GoAway frame. - Kill() error - - // Close instructs the session to close cleanly, sending a GoAway frame if one hasn't already been sent. - // - // This implementation does not "linger". Pending writes on streams may fail. - // - // You MAY call Close() more than once. Each time after - // the first, Close() will return an error. - Close() error - - // GoAway instructs the other side of the connection to stop - // initiating new streams by sending a GoAway frame. Most clients - // will just call Close(), but you may want explicit control of this - // in order to facilitate clean shutdowns. - // - // You MAY call GoAway() more than once. Each time after the first, - // GoAway() will return an error. - GoAway(ErrorCode, []byte) error - - // LocalAddr returns the local address of the transport stream over which the session is running. - LocalAddr() net.Addr - - // RemoteAddr returns the address of the remote side of the transport stream over which the session is running. - RemoteAddr() net.Addr - - // Wait blocks until the session has shutdown and returns the error code for session termination. It also - // returns the error that caused the session to terminate as well as any debug information sent in the GoAway - // frame by the remote side. - Wait() (code ErrorCode, err error, debug []byte) - - // NetListener returns an adaptor object which allows this Session to be used as a net.Listener. The returned - // net.Listener returns new streams initiated by the remote side as net.Conn's when calling Accept(). - NetListener() net.Listener - - // NetDial is a function that implements the same API as net.Dial and can be used in place of it. Users should keep - // in mind that it is the same as a call to Open(). It ignores both arguments passed to it, always initiate a new stream - // to the remote side. - NetDial(_, _ string) (net.Conn, error) -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/package.json b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/package.json deleted file mode 100644 index 2b73d2e8..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "muxado", - "author": "whyrusleeping", - "version": "1.0.0", - "language": "go", - "gx": { - "dvcsimport": "github.com/inconshreveable/muxado" - } -} \ No newline at end of file diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/circular.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/circular.go deleted file mode 100644 index dafe7699..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/circular.go +++ /dev/null @@ -1,87 +0,0 @@ -package buffer - -import ( - "errors" - "io" -) - -var ( - FullError = errors.New("Buffer is full") -) - -// Reads as much data -func readInto(rd io.Reader, p []byte) (n int, err error) { - var nr int - for n < len(p) { - nr, err = rd.Read(p[n:]) - n += nr - if err != nil { - return - } - } - return -} - -// A circular buffer on top of a byte-array -// NOTE: It does not implement the Write() method, it implements ReadFrom() -// to avoid copies -type Circular struct { - buf []byte // the bytes - size int // == len(buf) - head int // index of the next byte to read - tail int // index of the last byte available to read -} - -// Returns a new circular buffer of the given size -func NewCircular(size int) *Circular { - return &Circular{ - buf: make([]byte, size+1), - size: size + 1, - } -} - -// Copy data from the given reader into the buffer -// Any errors encountered while reading are returned EXCEPT io.EOF. -// If the reader fills the buffer, it returns buffer.FullError -func (c *Circular) ReadFrom(rd io.Reader) (n int, err error) { - // IF: - // [---H+++T--] - if c.tail >= c.head { - n, err = readInto(rd, c.buf[c.tail:]) - c.tail = (c.tail + n) % c.size - if err == io.EOF { - return n, nil - } else if err != nil { - return - } - } - - // NOW: - // [T---H++++] or [++T--H+++] - n2, err := readInto(rd, c.buf[c.tail:c.head]) - n += n2 - c.tail += n2 - if err == nil { - err = FullError - } else if err == io.EOF { - err = nil - } - return -} - -// Read data out of the buffer. This never fails but may -// return n==0 if there is no data to be read -func (c *Circular) Read(p []byte) (n int, err error) { - if c.head > c.tail { - n = copy(p, c.buf[c.head:]) - c.head = (c.head + n) % c.size - if c.head != 0 { - return - } - } - - n2 := copy(p[n:], c.buf[c.head:c.tail]) - n += n2 - c.head += n2 - return -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/circular_test.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/circular_test.go deleted file mode 100644 index ea62dddb..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/circular_test.go +++ /dev/null @@ -1,234 +0,0 @@ -package buffer - -import ( - "bytes" - "reflect" - "testing" -) - -func incBuf(start, size int) []byte { - b := make([]byte, size) - for i := 0; i < size; i++ { - b[i] = byte((start + i) % 16) - } - return b -} - -func testBuffer() *Circular { - c := NewCircular(15) - c.buf = incBuf(0, 16) - return c -} - -func TestEmptyRead(t *testing.T) { - t.Parallel() - - var p [1]byte - c := NewCircular(16) - n, err := c.Read(p[:]) - - if err != nil { - t.Fatalf("Error on read operation: %v") - } - - if n != 0 { - t.Errorf("Read %d bytes, expected 0", n) - } -} - -// Test Read: [H+++T---] -func TestStartRead(t *testing.T) { - t.Parallel() - - c := testBuffer() - - readSize := 8 - p := make([]byte, readSize+1) - c.tail = readSize - n, err := c.Read(p) - - if err != nil { - t.Fatalf("Error while reading: %v", err) - } - - if n != readSize { - t.Fatalf("Read expected %d bytes, got %d", readSize, n) - } - - expected := incBuf(0, 8) - got := p[:readSize] - if !reflect.DeepEqual(expected, got) { - t.Errorf("Wrong buffer values read. Expected %v, got %v", expected, got) - } -} - -func TestMiddleRead(t *testing.T) { - t.Parallel() - - c := testBuffer() - readSize := 8 - p := make([]byte, readSize+1) - c.head = 4 - c.tail = 12 - n, err := c.Read(p) - if err != nil { - t.Fatalf("Error while reading: %v", err) - } - - if n != readSize { - t.Fatalf("Read expected %d bytes, got %d", readSize) - } - - expected := incBuf(4, 8) - got := p[:readSize] - if !reflect.DeepEqual(expected, got) { - t.Errorf("Wrong buffer values read. Expected %v, got %v", expected, got) - } -} - -func TestTwoReads(t *testing.T) { - t.Parallel() - - c := testBuffer() - readSize := 4 - p := make([]byte, readSize) - c.head = 4 - c.tail = 12 - - for i := 0; i < 2; i++ { - n, err := c.Read(p) - if err != nil { - t.Fatalf("Error while reading: %v", err) - } - - if n != readSize { - t.Fatalf("Wrong read size. Expected %d, got %d", readSize, n) - } - - expected := incBuf(4+(4*i), 4) - if !reflect.DeepEqual(p, expected) { - t.Fatalf("Wrong buffer values for read #%d. Expected %v, got %v", i+1, expected, p) - } - } -} - -func TestReadTailZero(t *testing.T) { - t.Parallel() - - c := testBuffer() - readSize := 4 - p := make([]byte, readSize*2) - c.head = 12 - c.tail = 0 - - n, err := c.Read(p) - if err != nil { - t.Fatalf("Error while reading: %v", err) - } - - if n != readSize { - t.Fatalf("Wrong read size. Expected %d, got %d", readSize, n) - } - - expected := incBuf(12, 4) - got := p[:readSize] - if !reflect.DeepEqual(got, expected) { - t.Fatalf("Wrong buffer values for read. Expected %v, got %v", expected, got) - } -} - -func TestReadWrap(t *testing.T) { - t.Parallel() - - c := testBuffer() - readSize := 14 - p := make([]byte, readSize*2) - c.head = 12 - c.tail = 10 - - n, err := c.Read(p) - if err != nil { - t.Fatalf("Error while reading: %v", err) - } - - if n != readSize { - t.Fatalf("Wrong read size. Expected %d, got %d", readSize, n) - } - - expected := incBuf(12, readSize) - got := p[:readSize] - if !reflect.DeepEqual(got, expected) { - t.Fatalf("Wrong buffer values for read. Expected %v, got %v", expected, got) - } -} - -func TestEmptyReadAfterExhaustion(t *testing.T) { - t.Parallel() - - c := testBuffer() - readSize := 14 - p := make([]byte, readSize*2) - c.head = 12 - c.tail = 10 - - n, err := c.Read(p) - if err != nil { - t.Fatalf("Error while reading: %v", err) - } - - if n != readSize { - t.Fatalf("Wrong read size. Expected %d, got %d", readSize, n) - } - - expected := incBuf(12, readSize) - got := p[:readSize] - if !reflect.DeepEqual(got, expected) { - t.Fatalf("Wrong buffer values for read. Expected %v, got %v", expected, p) - } - - n, err = c.Read(p) - if err != nil { - t.Fatalf("Error while reading: %v", err) - } - - if n != 0 { - t.Fatalf("Wrong read size. Expected 0, got %d", n) - } -} - -func TestWriteTooBig(t *testing.T) { - t.Parallel() - - size := 16 - p := bytes.NewBuffer(make([]byte, size+1)) - c := NewCircular(size) - - _, err := c.ReadFrom(p) - if err != FullError { - t.Errorf("Expected FULL error but got %v", err) - } -} - -func TestWriteReadFullFromZero(t *testing.T) { - toWrite := incBuf(0, 16) - c := NewCircular(16) - - n, err := c.ReadFrom(bytes.NewBuffer(toWrite)) - if err != nil { - t.Fatalf("Error while writing: %v", err) - } - - if n != 16 { - t.Fatalf("Wrong number of bytes written. Expceted 16, got %d", n) - } - - p := make([]byte, 16) - n, err = c.Read(p) - if err != nil { - t.Fatalf("Error while reading: %v", err) - } - - if n != 16 { - t.Fatalf("") - } -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/inbound.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/inbound.go deleted file mode 100644 index fa604b8c..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/inbound.go +++ /dev/null @@ -1,160 +0,0 @@ -package buffer - -import ( - "errors" - "io" - "io/ioutil" - "sync" - "time" -) - -var ( - AlreadyClosed = errors.New("Buffer already closed") -) - -// A specialized concurrent circular buffer intended to buffer a stream's inbound data with the following properties: -// - Minimizes copies by skipping the buffer if a write occurs while a reader is waiting -// - Provides a mechnaism to time out reads after a deadline -// - Provides a mechanism to set an 'error' that will fail reads when the buffer is empty -type waitingReader struct { - buf []byte - n int -} - -type Inbound struct { - *Circular - *sync.Cond - err error - waitingReader - deadline time.Time - timer *time.Timer -} - -func NewInbound(size int) *Inbound { - return &Inbound{ - Circular: NewCircular(size), - Cond: sync.NewCond(new(sync.Mutex)), - } -} - -func (b *Inbound) SetDeadline(t time.Time) { - b.L.Lock() - - // set the deadline - b.deadline = t - - // how long until the deadline - delay := t.Sub(time.Now()) - - if b.timer != nil { - b.timer.Stop() - } - - // after the delay, wake up waiters - b.timer = time.AfterFunc(delay, func() { - b.Broadcast() - }) - - b.L.Unlock() -} - -func (b *Inbound) SetError(err error) { - b.L.Lock() - b.err = err - b.Broadcast() - b.L.Unlock() -} - -func (b *Inbound) GetError() (err error) { - b.L.Lock() - err = b.err - b.L.Unlock() - return -} - -func (b *Inbound) ReadFrom(rd io.Reader) (n int, err error) { - b.L.Lock() - - if b.err != nil { - b.L.Unlock() - if _, err = ioutil.ReadAll(rd); err != nil { - return - } - return 0, AlreadyClosed - } - - // write directly to a reader's buffer, if possible - if b.waitingReader.buf != nil { - b.waitingReader.n, err = readInto(rd, b.waitingReader.buf) - n += b.waitingReader.n - b.waitingReader.buf = nil - if err != nil { - if err == io.EOF { - // EOF is not an error - err = nil - } - - b.Broadcast() - b.L.Unlock() - return - } - } - - // write the rest to buffer - var writeN int - writeN, err = b.Circular.ReadFrom(rd) - n += writeN - - b.Broadcast() - b.L.Unlock() - return -} - -func (b *Inbound) Read(p []byte) (n int, err error) { - b.L.Lock() - - var wait *waitingReader - - for { - // we got a direct write to our buffer - if wait != nil && wait.n != 0 { - n = wait.n - break - } - - // check for timeout - if !b.deadline.IsZero() { - if time.Now().After(b.deadline) { - err = errors.New("Read timeout") - break - } - } - - // try to read from the buffer - n, _ = b.Circular.Read(p) - - // successfully read some data - if n != 0 { - break - } - - // there's an error - if b.err != nil { - err = b.err - break - } - - // register for a direct write - if b.waitingReader.buf == nil { - wait = &b.waitingReader - wait.buf = p - wait.n = 0 - } - - // no data, wait - b.Wait() - } - - b.L.Unlock() - return -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/outbound.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/outbound.go deleted file mode 100644 index d9bbdb38..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/outbound.go +++ /dev/null @@ -1,59 +0,0 @@ -package buffer - -import ( - "sync" -) - -type Outbound struct { - val int - err error - *sync.Cond -} - -func NewOutbound(size int) *Outbound { - return &Outbound{val: size, Cond: sync.NewCond(new(sync.Mutex))} -} - -func (b *Outbound) Increment(inc int) { - b.L.Lock() - b.val += inc - b.Broadcast() - b.L.Unlock() -} - -func (b *Outbound) SetError(err error) { - b.L.Lock() - b.err = err - b.Broadcast() - b.L.Unlock() -} - -func (b *Outbound) Decrement(dec int) (ret int, err error) { - if dec == 0 { - return - } - - b.L.Lock() - for { - if b.err != nil { - err = b.err - break - } - - if b.val > 0 { - if dec > b.val { - ret = b.val - b.val = 0 - break - } else { - b.val -= dec - ret = dec - break - } - } else { - b.Wait() - } - } - b.L.Unlock() - return -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/shared.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/shared.go deleted file mode 100644 index 1ef3f462..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer/shared.go +++ /dev/null @@ -1,10 +0,0 @@ -package buffer - -func BothClosed(in *Inbound, out *Outbound) (closed bool) { - in.L.Lock() - out.L.Lock() - closed = (in.err != nil && out.err != nil) - out.L.Unlock() - in.L.Unlock() - return -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/ext/const.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/ext/const.go deleted file mode 100644 index 57fee1a7..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/ext/const.go +++ /dev/null @@ -1,9 +0,0 @@ -package ext - -import ( - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto" -) - -const ( - heartbeatExtensionType = proto.MinExtensionType + iota -) diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/ext/heartbeat.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/ext/heartbeat.go deleted file mode 100644 index 93f78897..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/ext/heartbeat.go +++ /dev/null @@ -1,125 +0,0 @@ -package ext - -// XXX: There's no logging around heartbeats - how can we do this in a way that is useful -// as a library? -// -// XXX: When we close the session because of a lost heartbeat or because of an error in the -// heartbeating, there is no way to tell that; a Session will just appear to stop working - -import ( - proto "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto" - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame" - "encoding/binary" - "io" - "time" -) - -const ( - defaultHeartbeatInterval = 3 * time.Second - defaultHeartbeatTolerance = 10 * time.Second -) - -type Heartbeat struct { - sess proto.ISession - accept proto.ExtAccept - - mark chan int - interval time.Duration - tolerance time.Duration -} - -func NewDefaultHeartbeat() *Heartbeat { - return NewHeartbeat(defaultHeartbeatInterval, defaultHeartbeatTolerance) -} - -func NewHeartbeat(interval, tolerance time.Duration) *Heartbeat { - return &Heartbeat{ - mark: make(chan int), - interval: interval, - tolerance: tolerance, - } -} - -func (h *Heartbeat) Start(sess proto.ISession, accept proto.ExtAccept) frame.StreamType { - h.sess = sess - h.accept = accept - go h.respond() - go h.request() - go h.check() - - return heartbeatExtensionType -} - -func (h *Heartbeat) check() { - t := time.NewTimer(h.interval + h.tolerance) - - for { - select { - case <-t.C: - // time out waiting for a response! - h.sess.Close() - return - - case <-h.mark: - t.Reset(h.interval + h.tolerance) - } - } -} - -func (h *Heartbeat) respond() { - // close the session on any errors - defer h.sess.Close() - - stream, err := h.accept() - if err != nil { - return - } - - // read the next heartbeat id and respond - buf := make([]byte, 4) - for { - _, err := io.ReadFull(stream, buf) - if err != nil { - return - } - - _, err = stream.Write(buf) - if err != nil { - return - } - } -} - -func (h *Heartbeat) request() { - // close the session on any errors - defer h.sess.Close() - - // request highest possible priority for heartbeats - priority := frame.StreamPriority(0x7FFFFFFF) - stream, err := h.sess.OpenStream(priority, heartbeatExtensionType, false) - if err != nil { - return - } - - // send heartbeats and then check that we got them back - var id uint32 - for { - time.Sleep(h.interval) - - if err := binary.Write(stream, binary.BigEndian, id); err != nil { - return - } - - var respId uint32 - if err := binary.Read(stream, binary.BigEndian, &respId); err != nil { - return - } - - if id != respId { - return - } - - // record the time - h.mark <- 1 - } -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/data.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/data.go deleted file mode 100644 index 68c3bdc8..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/data.go +++ /dev/null @@ -1,68 +0,0 @@ -package frame - -import ( - "io" -) - -const ( - // data frames are actually longer, but they are variable length - dataFrameSize = headerSize -) - -type RStreamData struct { - Header - fixed [dataFrameSize]byte - - toRead io.LimitedReader // when reading, the underlying connection's io.Reader is handed up -} - -func (f *RStreamData) Reader() io.Reader { - return &f.toRead -} - -func (f *RStreamData) readFrom(d deserializer) (err error) { - // not using io.LimitReader to avoid a heap memory allocation in the hot path - f.toRead.R = d - f.toRead.N = int64(f.Length()) - return -} - -// WStreamData is a StreamData frame that you can write -// It delivers opaque data on a stream to the application layer -type WStreamData struct { - Header - fixed [dataFrameSize]byte - toWrite []byte // when writing, you just pass a byte slice to write -} - -func (f *WStreamData) writeTo(s serializer) (err error) { - if _, err = s.Write(f.fixed[:]); err != nil { - return err - } - - if _, err = s.Write(f.toWrite); err != nil { - return err - } - - return -} - -func (f *WStreamData) Set(streamId StreamId, data []byte, fin bool) (err error) { - var flags flagsType - if fin { - flags.Set(flagFin) - } - - if err = f.Header.SetAll(TypeStreamData, len(data), streamId, flags); err != nil { - return - } - - f.toWrite = data - return -} - -func NewWStreamData() (f *WStreamData) { - f = new(WStreamData) - f.Header = f.fixed[:headerSize] - return -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/data_test.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/data_test.go deleted file mode 100644 index c5b51c30..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/data_test.go +++ /dev/null @@ -1,134 +0,0 @@ -package frame - -import ( - "bytes" - "io/ioutil" - "reflect" - "testing" -) - -type fakeTrans struct { - *bytes.Buffer -} - -func (c *fakeTrans) Close() error { return nil } - -func loadedTrans(p []byte) (*fakeTrans, *BasicTransport) { - trans := &fakeTrans{bytes.NewBuffer(p)} - return trans, NewBasicTransport(trans) -} - -type DataTestParams struct { - streamId StreamId - data []byte - fin bool -} - -func TestSerializeData(t *testing.T) { - t.Parallel() - - cases := []struct { - params DataTestParams - expected []byte - }{ - { - // test a generic data frame - DataTestParams{0x49a1bb00, []byte{0x00, 0x01, 0x02, 0x03, 0x04}, false}, - []byte{0x0, 0x5, 0x0, TypeStreamData, 0x49, 0xa1, 0xbb, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04}, - }, - { - // test a a frame with fin - DataTestParams{streamMask, []byte{0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA, 0x99, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00}, true}, - []byte{0x00, 0x10, flagFin, TypeStreamData, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA, 0x99, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00}, - }, - { - // test a zero-length frame - DataTestParams{0x0, []byte{}, false}, - []byte{0x0, 0x0, 0x0, TypeStreamData, 0x0, 0x0, 0x0, 0x0}, - }, - } - - for _, tcase := range cases { - buf, trans := loadedTrans([]byte{}) - var f *WStreamData = NewWStreamData() - if err := f.Set(tcase.params.streamId, tcase.params.data, tcase.params.fin); err != nil { - t.Fatalf("Error while setting params %v!", tcase.params) - } - - if err := f.writeTo(trans); err != nil { - t.Fatalf("Error while writing %v!", tcase.params) - } - - if !reflect.DeepEqual(tcase.expected, buf.Bytes()) { - t.Errorf("Failed to serialize STREAM_DATA, expected: %v got %v", tcase.expected, buf.Bytes()) - } - } -} - -func TestDeserializeData(t *testing.T) { - _, trans := loadedTrans([]byte{0x00, 0x10, flagFin, TypeStreamData, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA, 0x99, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00}) - - h := newHeader() - if err := h.readFrom(trans); err != nil { - t.Fatalf("Failed to read header") - } - - var f RStreamData - f.Header = h - if err := f.readFrom(trans); err != nil { - t.Fatalf("Read failed with %v", err) - } - - got, err := ioutil.ReadAll(f.Reader()) - if err != nil { - t.Fatalf("Error %v while reading data", err) - } - - expected := []byte{0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA, 0x99, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00} - if !reflect.DeepEqual(expected, got) { - t.Errorf("Wrong bytes read from transport. Expected %v, got %v", expected, got) - } - - if !f.Fin() { - t.Errorf("Fin flag was not deserialized") - } -} - -func TestTooLongSerializeData(t *testing.T) { - t.Parallel() - - var f *WStreamData = NewWStreamData() - if err := f.Set(0, make([]byte, lengthMask+1), true); err == nil { - t.Errorf("Expected error when setting too long buffer, got none.") - } -} - -func TestLengthLimitationData(t *testing.T) { - dataLen := 0x4 - _, trans := loadedTrans([]byte{0x00, byte(dataLen), 0x0, TypeStreamData, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA, 0x99, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00}) - - h := newHeader() - if err := h.readFrom(trans); err != nil { - t.Fatalf("Failed to read header") - } - - var f RStreamData - f.Header = h - if err := f.readFrom(trans); err != nil { - t.Fatalf("Read failed with %v", err) - } - - got, err := ioutil.ReadAll(f.Reader()) - if err != nil { - t.Fatalf("Error %v while reading data", err) - } - - if len(got) != dataLen { - t.Errorf("Read with wrong number of bytes, got %d expected %d", len(got), 4) - } - - expected := []byte{0xFF, 0xEE, 0xDD, 0xCC} - if !reflect.DeepEqual(expected, got) { - t.Errorf("Wrong bytes read from transport. Expected %v, got %v", expected, got) - } -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/debug.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/debug.go deleted file mode 100644 index b942605c..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/debug.go +++ /dev/null @@ -1,37 +0,0 @@ -package frame - -import "fmt" -import "io" - -type DebugTransport struct { - prefix string - *BasicTransport -} - -func (t *DebugTransport) Write(buf []byte) (int, error) { - fmt.Printf("%v writes %d bytes: %x\n", t.prefix, len(buf), buf) - return t.BasicTransport.Write(buf) -} - -func (t *DebugTransport) WriteFrame(frame WFrame) (err error) { - // each frame knows how to write iteself to the framer - return frame.writeTo(t) -} - -func (t *DebugTransport) ReadFrame() (f RFrame, err error) { - f, err = t.BasicTransport.ReadFrame() - - fmt.Printf("%v reads Header length: %v\n", t.prefix, t.Header.Length()) - fmt.Printf("%v reads Header type: %v\n", t.prefix, t.Header.Type()) - fmt.Printf("%v reads Header stream id: %v\n", t.prefix, t.Header.StreamId()) - fmt.Printf("%v reads Header fin: %v\n", t.prefix, t.Header.Fin()) - return -} - -func NewDebugTransport(rwc io.ReadWriteCloser, prefix string) *DebugTransport { - trans := &DebugTransport{ - prefix: prefix, - BasicTransport: &BasicTransport{ReadWriteCloser: rwc, Header: make([]byte, headerSize)}, - } - return trans -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/error.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/error.go deleted file mode 100644 index 8d463eb0..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/error.go +++ /dev/null @@ -1,25 +0,0 @@ -package frame - -import ( - "fmt" -) - -const ( - NoError = iota - ProtocolError - InternalError - FlowControlError - StreamClosed - FrameSizeError - RefusedStream - Cancel - NoSuchError -) - -type FramingError struct { - error -} - -func protoError(fmtstr string, args ...interface{}) FramingError { - return FramingError{fmt.Errorf(fmtstr, args...)} -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/goaway.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/goaway.go deleted file mode 100644 index 14802740..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/goaway.go +++ /dev/null @@ -1,79 +0,0 @@ -package frame - -import "io" - -const ( - goAwayBodySize = 8 - goAwayFrameSize = headerSize + goAwayBodySize -) - -// Instruct the remote side not to initiate new streams -type RGoAway struct { - Header - body [goAwayBodySize]byte - debug []byte -} - -func (f *RGoAway) LastStreamId() StreamId { - return StreamId(order.Uint32(f.body[0:]) & streamMask) -} - -func (f *RGoAway) ErrorCode() ErrorCode { - return ErrorCode(order.Uint32(f.body[4:])) -} - -func (f *RGoAway) Debug() []byte { - return f.debug -} - -func (f *RGoAway) readFrom(d deserializer) (err error) { - if _, err = io.ReadFull(d, f.body[:]); err != nil { - return - } - - f.debug = make([]byte, f.Length()-goAwayBodySize) - if _, err = io.ReadFull(d, f.debug); err != nil { - return - } - - return -} - -type WGoAway struct { - Header - data [goAwayFrameSize]byte - debug []byte -} - -func (f *WGoAway) writeTo(s serializer) (err error) { - if _, err = s.Write(f.data[:]); err != nil { - return - } - - if _, err = s.Write(f.debug); err != nil { - return - } - - return -} - -func (f *WGoAway) Set(lastStreamId StreamId, errorCode ErrorCode, debug []byte) (err error) { - if f.Header.SetAll(TypeGoAway, len(debug)+goAwayFrameSize, 0, 0); err != nil { - return - } - - if lastStreamId > streamMask { - err = protoError("Related stream id %d is out of range", lastStreamId) - return - } - - order.PutUint32(f.data[headerSize:], uint32(lastStreamId)) - order.PutUint32(f.data[headerSize+4:], uint32(errorCode)) - return -} - -func NewWGoAway() (f *WGoAway) { - f = new(WGoAway) - f.Header = Header(f.data[:headerSize]) - return -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/header.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/header.go deleted file mode 100644 index cc451093..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/header.go +++ /dev/null @@ -1,85 +0,0 @@ -package frame - -import "io" - -const ( - headerSize = 8 -) - -type Header []byte - -func newHeader() Header { - return Header(make([]byte, headerSize)) -} - -func (b Header) readFrom(d deserializer) (err error) { - // read the header - if _, err = io.ReadFull(d, []byte(b)); err != nil { - return err - } - return -} - -func (b Header) Length() uint16 { - return order.Uint16(b[:2]) & lengthMask -} - -func (b Header) SetLength(length int) (err error) { - if length > lengthMask || length < 0 { - return protoError("Frame length %d out of range", length) - } - - order.PutUint16(b[:2], uint16(length)) - return -} - -func (b Header) Type() FrameType { - return FrameType((b[3]) & typeMask) -} - -func (b Header) SetType(t FrameType) (err error) { - b[3] = byte(t & typeMask) - return -} - -func (b Header) StreamId() StreamId { - return StreamId(order.Uint32(b[4:]) & streamMask) -} - -func (b Header) SetStreamId(streamId StreamId) (err error) { - if streamId > streamMask { - return protoError("Stream id %d out of range", streamId) - } - - order.PutUint32(b[4:], uint32(streamId)) - return -} - -func (b Header) Flags() flagsType { - return flagsType(b[2]) -} - -func (b Header) SetFlags(fl flagsType) (err error) { - b[2] = byte(fl) - return -} - -func (b Header) Fin() bool { - return b.Flags().IsSet(flagFin) -} - -func (b Header) SetAll(ftype FrameType, length int, streamId StreamId, flags flagsType) (err error) { - if err = b.SetType(ftype); err != nil { - return - } - if err = b.SetLength(length); err != nil { - return - } - if err = b.SetStreamId(streamId); err != nil { - return - } - if err = b.SetFlags(flags); err != nil { - return - } - return -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/header_test.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/header_test.go deleted file mode 100644 index 37aa46ef..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/header_test.go +++ /dev/null @@ -1,279 +0,0 @@ -package frame - -import ( - "reflect" - "testing" -) - -type HeaderParams struct { - ftype FrameType - length int - streamId StreamId - flags flagsType -} - -func (params *HeaderParams) checkDeserialize(t *testing.T, h Header) { - if h.Type() != params.ftype { - t.Errorf("Failed deserialization. Expected type %x, got: %x", params.ftype, h.Type()) - } - - if h.Length() != uint16(params.length) { - t.Errorf("Failed deserialization. Expected length %x, got: %x", params.length, h.Length()) - } - - if h.Flags() != params.flags { - t.Errorf("Failed deserialization. Expected flags %x, got: %x", params.flags, h.Flags()) - } - - if h.StreamId() != params.streamId { - t.Errorf("Failed deserialization. Expected stream id %x, got: %x", params.streamId, h.StreamId()) - } -} - -func TestHeaderSerialization(t *testing.T) { - t.Parallel() - - testCases := []struct { - input HeaderParams - expectedOutput []byte - }{ - { - HeaderParams{ - ftype: TypeStreamRst, - length: 0x4, - streamId: 0x2843, - flags: 0, - }, - []byte{0, 0x4, 0, 0x2, 0, 0, 0x28, 0x43}, - }, - { - HeaderParams{ - ftype: 0x1F, - length: 0x37BD, - streamId: 0x0, - flags: 0x9, - }, - []byte{0x37, 0xBD, 0x9, 0x1F, 0, 0, 0, 0}, - }, - { - HeaderParams{ - ftype: 0, - length: 0, - streamId: 0, - flags: 0, - }, - []byte{0, 0, 0, 0, 0, 0, 0, 0}, - }, - { - HeaderParams{ - ftype: typeMask, - length: lengthMask, - streamId: streamMask, - flags: flagsMask, - }, - []byte{0x3F, 0xFF, 0xFF, 0x1F, 0x7F, 0xFF, 0xFF, 0xFF}, - }, - { - HeaderParams{ - ftype: 0x1e, - length: 0x1DAA, - streamId: 0x4F224719, - flags: 0x17, - }, - []byte{0x1D, 0xAA, 0x17, 0x1E, 0x4F, 0x22, 0x47, 0x19}, - }, - } - - for _, test := range testCases { - var h Header = Header(make([]byte, headerSize)) - h.SetAll(test.input.ftype, test.input.length, test.input.streamId, test.input.flags) - output := []byte(h) - if !reflect.DeepEqual(output, test.expectedOutput) { - t.Errorf("Failed serialization of %v. Expected %x, got: %x", test.input, output, test.expectedOutput) - } - } -} - -func TestHeaderDeserialization(t *testing.T) { - t.Parallel() - - testCases := []struct { - input []byte - expectedOutput HeaderParams - }{ - { - []byte{0, 0x4, 0, 0x2, 0, 0, 0x28, 0x43}, - HeaderParams{ - ftype: TypeStreamRst, - length: 0x4, - streamId: 0x2843, - flags: 0, - }, - }, - { - []byte{0x37, 0xBD, 0x9, 0x1F, 0, 0, 0, 0}, - HeaderParams{ - ftype: 0x1F, - length: 0x37BD, - streamId: 0x0, - flags: 0x9, - }, - }, - { - []byte{0, 0, 0, 0, 0, 0, 0, 0}, - HeaderParams{ - ftype: 0, - length: 0, - streamId: 0, - flags: 0, - }, - }, - { - []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, - HeaderParams{ - ftype: typeMask, - length: lengthMask, - streamId: streamMask, - flags: flagsMask, - }, - }, - { - []byte{0x9D, 0xAA, 0x17, 0xF0, 0xCF, 0x22, 0x47, 0x19}, - HeaderParams{ - ftype: 0x10, - length: 0x1DAA, - streamId: 0x4F224719, - flags: 0x17, - }, - }, - } - - for _, test := range testCases { - test.expectedOutput.checkDeserialize(t, Header(test.input)) - - } -} - -func TestHeaderRoundTrip(t *testing.T) { - t.Parallel() - - headers := []HeaderParams{ - HeaderParams{ - ftype: TypeStreamRst, - length: 0x4, - streamId: 0x2843, - flags: 0, - }, - HeaderParams{ - ftype: 0x1F, - length: 0x37BD, - streamId: 0x0, - flags: 0x9, - }, - HeaderParams{ - ftype: 0, - length: 0, - streamId: 0, - flags: 0, - }, - HeaderParams{ - ftype: typeMask, - length: lengthMask, - streamId: streamMask, - flags: flagsMask, - }, - HeaderParams{ - ftype: 0x1e, - length: 0x1DAA, - streamId: 0x4F224719, - flags: 0x17, - }, - } - - for _, input := range headers { - var h Header = Header(make([]byte, headerSize)) - h.SetAll(input.ftype, input.length, input.streamId, input.flags) - input.checkDeserialize(t, h) - } -} - -func TestValidStreamIds(t *testing.T) { - t.Parallel() - - validStreamIds := []StreamId{ - 0x0, - 0xFF, - 0x23C10A8F, - 0x7FFFFFFF, - } - - for _, validStreamId := range validStreamIds { - var h Header = Header(make([]byte, headerSize)) - err := h.SetAll(TypeStreamSyn, 0, validStreamId, 0) - if err != nil { - t.Errorf("Failed to create frame header with valid stream id %d.", validStreamId) - } - - } -} - -func TestInvalidStreamId(t *testing.T) { - t.Parallel() - - invalidStreamIds := []StreamId{ - 0xF0000000, - 0xB012CA8E, - 0x80000000, - 0xFFFFFFFF, - } - - for _, invalidStreamId := range invalidStreamIds { - var h Header = Header(make([]byte, headerSize)) - err := h.SetAll(TypeStreamSyn, 0, invalidStreamId, 0) - if err == nil { - t.Errorf("Failed to error on invalid stream id %d.", invalidStreamId) - } - - } -} - -func TestValidLengths(t *testing.T) { - t.Parallel() - - validLengths := []int{ - 0x0, - 0x2FF, - 0x301A, - 0x3FFF, - } - - for _, validLength := range validLengths { - var h Header = Header(make([]byte, headerSize)) - err := h.SetAll(TypeStreamSyn, validLength, 0, 0) - if err != nil { - t.Errorf("Failed to create frame header with valid length %d.", validLength) - } - - } -} - -func TestInvalidLengths(t *testing.T) { - t.Parallel() - - invalidLengths := []int{ - -1, - 0x4000, - 0xB012, - 0x8000, - 0xFFFF, - } - - for _, invalidLength := range invalidLengths { - var h Header = Header(make([]byte, headerSize)) - err := h.SetAll(TypeStreamSyn, invalidLength, 0, 0) - if err == nil { - t.Errorf("Failed to error on invalid length %d.", invalidLength) - } - - } -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/interface.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/interface.go deleted file mode 100644 index e043e5b0..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/interface.go +++ /dev/null @@ -1,25 +0,0 @@ -package frame - -import ( - "io" -) - -type Transport interface { - WriteFrame(WFrame) error - ReadFrame() (RFrame, error) - Close() error -} - -// A frame can read and write itself to a serializer/deserializer -type RFrame interface { - StreamId() StreamId - Type() FrameType - readFrom(deserializer) error -} - -type WFrame interface { - writeTo(serializer) error -} - -type deserializer io.Reader -type serializer io.Writer diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/rst.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/rst.go deleted file mode 100644 index 677ffe08..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/rst.go +++ /dev/null @@ -1,67 +0,0 @@ -package frame - -import "io" - -const ( - rstBodySize = 4 - rstFrameSize = headerSize + rstBodySize -) - -// RsStreamRst is a STREAM_RST frame that is read from a transport -type RStreamRst struct { - Header - body [rstBodySize]byte -} - -func (f *RStreamRst) readFrom(d deserializer) (err error) { - if f.Length() != rstBodySize { - return protoError("STREAM_RST length must be %d, got %d", rstBodySize, f.Length()) - } - - if _, err = io.ReadFull(d, f.body[:]); err != nil { - return - } - - return -} - -func (f *RStreamRst) ErrorCode() ErrorCode { - return ErrorCode(order.Uint32(f.body[0:])) -} - -// WStreamRst is a STREAM_RST frame that can be written, it terminate a stream ungracefully -type WStreamRst struct { - Header - all [rstFrameSize]byte -} - -func NewWStreamRst() (f *WStreamRst) { - f = new(WStreamRst) - f.Header = Header(f.all[:headerSize]) - return -} - -func (f *WStreamRst) writeTo(s serializer) (err error) { - _, err = s.Write(f.all[:]) - return -} - -func (f *WStreamRst) Set(streamId StreamId, errorCode ErrorCode) (err error) { - if err = f.Header.SetAll(TypeStreamRst, rstBodySize, streamId, 0); err != nil { - return - } - - if err = validRstErrorCode(errorCode); err != nil { - return - } - - order.PutUint32(f.all[headerSize:], uint32(errorCode)) - return -} - -func validRstErrorCode(errorCode ErrorCode) error { - if errorCode >= NoSuchError { - return protoError("Invalid error code %d for STREAM_RST", errorCode) - } - return nil -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/rst_test.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/rst_test.go deleted file mode 100644 index 30f1fb2b..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/rst_test.go +++ /dev/null @@ -1,101 +0,0 @@ -package frame - -import ( - "reflect" - "testing" -) - -type RstTestParams struct { - streamId StreamId - errorCode ErrorCode -} - -func TestSerializeRst(t *testing.T) { - t.Parallel() - - cases := []struct { - params RstTestParams - expected []byte - }{ - { - RstTestParams{0x49a1bb00, ProtocolError}, - []byte{0x0, 0x4, 0x0, TypeStreamRst, 0x49, 0xa1, 0xbb, 0x00, 0x0, 0x0, 0x0, ProtocolError}, - }, - { - RstTestParams{0x0, FlowControlError}, - []byte{0x0, 0x4, 0x0, TypeStreamRst, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, FlowControlError}, - }, - { - RstTestParams{streamMask, RefusedStream}, - []byte{0x00, 0x4, 0x0, TypeStreamRst, 0x7F, 0xFF, 0xFF, 0xFF, 0x0, 0x0, 0x0, RefusedStream}, - }, - } - - for _, tcase := range cases { - buf, trans := loadedTrans([]byte{}) - var f *WStreamRst = NewWStreamRst() - - if err := f.Set(tcase.params.streamId, tcase.params.errorCode); err != nil { - t.Fatalf("Error while setting params %v!", tcase.params) - } - - if err := f.writeTo(trans); err != nil { - t.Fatalf("Error while writing %v!", tcase.params) - } - - if !reflect.DeepEqual(tcase.expected, buf.Bytes()) { - t.Errorf("Failed to serialize STREAM_RST, expected: %v got %v", tcase.expected, buf.Bytes()) - } - } -} - -func TestDeserializeRst(t *testing.T) { - t.Parallel() - - _, trans := loadedTrans([]byte{0x00, rstBodySize, 0x0, TypeStreamRst, 0x7F, 0xFF, 0xFF, 0xFF, 0x0, 0x0, 0x0, RefusedStream}) - h := newHeader() - if err := h.readFrom(trans); err != nil { - t.Fatalf("Failed to read header: %v", err) - } - var f RStreamRst - f.Header = h - if err := f.readFrom(trans); err != nil { - t.Fatalf("Error while reading rst frame: %v", err) - } - - if f.ErrorCode() != RefusedStream { - t.Errorf("Expected error code %d but got %d", RefusedStream, f.ErrorCode()) - } -} - -// test a bad frame length of rstBodySize+1 -func TestBadLengthRst(t *testing.T) { - t.Parallel() - - _, trans := loadedTrans([]byte{0x00, rstBodySize + 1, 0x0, TypeStreamRst, 0x7F, 0xFF, 0xFF, 0xFF, 0x0, 0x0, 0x0, 0x0}) - h := newHeader() - if err := h.readFrom(trans); err != nil { - t.Fatalf("Failed to read header: %v", err) - } - var f RStreamRst - f.Header = h - if err := f.readFrom(trans); err == nil { - t.Errorf("Expected error when setting bad rst frame length, got none.") - } -} - -// test fewer than rstBodySize bytes available after header -func TestShortReadRst(t *testing.T) { - t.Parallel() - - _, trans := loadedTrans([]byte{0x00, rstBodySize, 0x0, TypeStreamRst, 0x7F, 0xFF, 0xFF, 0xFF, 0x1}) - h := newHeader() - if err := h.readFrom(trans); err != nil { - t.Fatalf("Failed to read header: %v", err) - } - var f RStreamRst - f.Header = h - if err := f.readFrom(trans); err == nil { - t.Errorf("Expected error when reading incomplete frame, got none.") - } -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/syn.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/syn.go deleted file mode 100644 index 20ea0334..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/syn.go +++ /dev/null @@ -1,120 +0,0 @@ -package frame - -import ( - "fmt" - "io" -) - -const ( - maxSynBodySize = 8 - maxSynFrameSize = headerSize + maxSynBodySize -) - -type RStreamSyn struct { - Header - body [maxSynBodySize]byte - streamPriority StreamPriority - streamType StreamType -} - -// StreamType returns the stream's defined type as specified by -// the remote endpoint -func (f *RStreamSyn) StreamType() StreamType { - return f.streamType -} - -// StreamPriority returns the stream priority set on this frame -func (f *RStreamSyn) StreamPriority() StreamPriority { - return f.streamPriority -} - -func (f *RStreamSyn) parseFields() error { - var length uint16 = 0 - flags := f.Flags() - - if flags.IsSet(flagStreamPriority) { - f.streamPriority = StreamPriority(order.Uint32(f.body[length : length+4])) - length += 4 - } else { - f.streamPriority = 0 - } - - if flags.IsSet(flagStreamType) { - f.streamType = StreamType(order.Uint32(f.body[length : length+4])) - length += 4 - } else { - f.streamType = 0 - } - - if length != f.Length() { - return fmt.Errorf("Expected length %d for flags %v, but got %v", length, flags, f.Length()) - } - - return nil -} - -func (f *RStreamSyn) readFrom(d deserializer) (err error) { - if _, err = io.ReadFull(d, f.body[:f.Length()]); err != nil { - return - } - - if err = f.parseFields(); err != nil { - return - } - - return -} - -type WStreamSyn struct { - Header - data [maxSynFrameSize]byte - length int -} - -func (f *WStreamSyn) writeTo(s serializer) (err error) { - _, err = s.Write(f.data[:headerSize+f.Length()]) - return -} - -func (f *WStreamSyn) Set(streamId StreamId, streamPriority StreamPriority, streamType StreamType, fin bool) (err error) { - var ( - flags flagsType - length int = 0 - ) - - // set fin bit - if fin { - flags.Set(flagFin) - } - - if streamPriority != 0 { - if streamPriority > priorityMask { - err = protoError("Priority %d is out of range", streamPriority) - return - } - - flags.Set(flagStreamPriority) - start := headerSize + length - order.PutUint32(f.data[start:start+4], uint32(streamPriority)) - length += 4 - } - - if streamType != 0 { - flags.Set(flagStreamType) - start := headerSize + length - order.PutUint32(f.data[start:start+4], uint32(streamType)) - length += 4 - } - - // make the frame - if err = f.Header.SetAll(TypeStreamSyn, length, streamId, flags); err != nil { - return - } - return -} - -func NewWStreamSyn() (f *WStreamSyn) { - f = new(WStreamSyn) - f.Header = Header(f.data[:headerSize]) - return -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/transport.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/transport.go deleted file mode 100644 index df397c6f..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/transport.go +++ /dev/null @@ -1,79 +0,0 @@ -package frame - -import ( - "encoding/binary" - "io" -) - -var ( - order = binary.BigEndian -) - -// BasicTransport can serialize/deserialize frames on an underlying -// net.Conn to implement the muxado protocol. -type BasicTransport struct { - io.ReadWriteCloser - Header - RStreamSyn - RStreamRst - RStreamData - RStreamWndInc - RGoAway -} - -// WriteFrame writes the given frame to the underlying transport -func (t *BasicTransport) WriteFrame(frame WFrame) (err error) { - // each frame knows how to write iteself to the framer - err = frame.writeTo(t) - return -} - -// ReadFrame reads the next frame from the underlying transport -func (t *BasicTransport) ReadFrame() (f RFrame, err error) { - // read the header - if _, err = io.ReadFull(t, []byte(t.Header)); err != nil { - return nil, err - } - - switch t.Header.Type() { - case TypeStreamSyn: - frame := &t.RStreamSyn - frame.Header = t.Header - err = frame.readFrom(t) - return frame, err - - case TypeStreamRst: - frame := &t.RStreamRst - frame.Header = t.Header - err = frame.readFrom(t) - return frame, err - - case TypeStreamData: - frame := &t.RStreamData - frame.Header = t.Header - err = frame.readFrom(t) - return frame, err - - case TypeStreamWndInc: - frame := &t.RStreamWndInc - frame.Header = t.Header - err = frame.readFrom(t) - return frame, err - - case TypeGoAway: - frame := &t.RGoAway - frame.Header = t.Header - err = frame.readFrom(t) - return frame, err - - default: - return nil, protoError("Illegal frame type: %d", t.Header.Type()) - } - - return -} - -func NewBasicTransport(rwc io.ReadWriteCloser) *BasicTransport { - trans := &BasicTransport{ReadWriteCloser: rwc, Header: make([]byte, headerSize)} - return trans -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/types.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/types.go deleted file mode 100644 index 05a3a592..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/types.go +++ /dev/null @@ -1,61 +0,0 @@ -package frame - -const ( - // offsets for packing/unpacking frames - lengthOffset = 32 + 16 - flagsOffset = 32 + 8 - typeOffset = 32 + 3 - - // masks for packing/unpacking frames - lengthMask = 0x3FFF - streamMask = 0x7FFFFFFF - flagsMask = 0xFF - typeMask = 0x1F - wndIncMask = 0x7FFFFFFF - priorityMask = 0x7FFFFFFF -) - -// a frameType is a 5-bit integer in the frame header that identifies the type of frame -type FrameType uint8 - -const ( - TypeStreamSyn = 0x1 - TypeStreamRst = 0x2 - TypeStreamData = 0x3 - TypeStreamWndInc = 0x4 - TypeStreamPri = 0x5 - TypeGoAway = 0x6 -) - -// a flagsType is an 8-bit integer containing frame-specific flag bits in the frame header -type flagsType uint8 - -const ( - flagFin = 0x1 - flagStreamPriority = 0x2 - flagStreamType = 0x4 -) - -func (ft flagsType) IsSet(f flagsType) bool { - return (ft & f) != 0 -} - -func (ft *flagsType) Set(f flagsType) { - *ft |= f -} - -func (ft *flagsType) Unset(f flagsType) { - *ft = *ft &^ f -} - -// StreamId is 31-bit integer uniquely identifying a stream within a session -type StreamId uint32 - -// StreamPriority is 31-bit integer specifying a stream's priority -type StreamPriority uint32 - -// StreamType is 32-bit integer specifying a stream's type -type StreamType uint32 - -// ErrorCode is a 32-bit integer indicating a error condition included in rst/goaway frames -type ErrorCode uint32 diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/wndinc.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/wndinc.go deleted file mode 100644 index 39a96531..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/wndinc.go +++ /dev/null @@ -1,57 +0,0 @@ -package frame - -import "io" - -const ( - wndIncBodySize = 4 - wndIncFrameSize = headerSize + wndIncBodySize -) - -// Increase a stream's flow control window size -type RStreamWndInc struct { - Header - body [wndIncBodySize]byte -} - -func (f *RStreamWndInc) WindowIncrement() (inc uint32) { - return order.Uint32(f.body[:]) & wndIncMask -} - -func (f *RStreamWndInc) readFrom(d deserializer) (err error) { - if f.Length() != wndIncBodySize { - return protoError("WND_INC length must be %d, got %d", wndIncBodySize, f.Length()) - } - - _, err = io.ReadFull(d, f.body[:]) - return -} - -type WStreamWndInc struct { - Header - data [wndIncFrameSize]byte -} - -func (f *WStreamWndInc) writeTo(s serializer) (err error) { - _, err = s.Write(f.data[:]) - return -} - -func (f *WStreamWndInc) Set(streamId StreamId, inc uint32) (err error) { - if inc > wndIncMask { - return protoError("Window increment %d out of range", inc) - } - - order.PutUint32(f.data[headerSize:], inc) - - if err = f.Header.SetAll(TypeStreamWndInc, wndIncBodySize, streamId, 0); err != nil { - return - } - - return -} - -func NewWStreamWndInc() (f *WStreamWndInc) { - f = new(WStreamWndInc) - f.Header = Header(f.data[:headerSize]) - return -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/wndinc_test.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/wndinc_test.go deleted file mode 100644 index 9daffa38..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame/wndinc_test.go +++ /dev/null @@ -1,101 +0,0 @@ -package frame - -import ( - "reflect" - "testing" -) - -type WndIncTestParams struct { - streamId StreamId - inc uint32 -} - -func TestSerializeWndInc(t *testing.T) { - t.Parallel() - - cases := []struct { - params WndIncTestParams - expected []byte - }{ - { - WndIncTestParams{0x04b1bd09, 0x0}, - []byte{0x0, 0x4, 0x0, TypeStreamWndInc, 0x04, 0xb1, 0xbd, 0x09, 0x0, 0x0, 0x0, 0x0}, - }, - { - WndIncTestParams{0x0, 0x12c498}, - []byte{0x0, 0x4, 0x0, TypeStreamWndInc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0xc4, 0x98}, - }, - { - WndIncTestParams{streamMask, wndIncMask}, - []byte{0x00, 0x4, 0x0, TypeStreamWndInc, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF}, - }, - } - - for _, tcase := range cases { - buf, trans := loadedTrans([]byte{}) - var f *WStreamWndInc = NewWStreamWndInc() - - if err := f.Set(tcase.params.streamId, tcase.params.inc); err != nil { - t.Fatalf("Error while setting params %v!", tcase.params) - } - - if err := f.writeTo(trans); err != nil { - t.Fatalf("Error while writing %v!", tcase.params) - } - - if !reflect.DeepEqual(tcase.expected, buf.Bytes()) { - t.Errorf("Failed to serialize STREAM_WNDINC, expected: %v got %v", tcase.expected, buf.Bytes()) - } - } -} - -func TestDeserializeWndInc(t *testing.T) { - t.Parallel() - - _, trans := loadedTrans([]byte{0x00, wndIncBodySize, 0x0, TypeStreamWndInc, 0x7F, 0xFF, 0xFF, 0xFF, 0x0, 0x0, 0xc9, 0xF1}) - h := newHeader() - if err := h.readFrom(trans); err != nil { - t.Fatalf("Failed to read header: %v", err) - } - var f RStreamWndInc - f.Header = h - if err := f.readFrom(trans); err != nil { - t.Fatalf("Error while reading rst frame: %v", err) - } - - if f.WindowIncrement() != 0xc9f1 { - t.Errorf("Expected error code %d but got %d", 0xc9f1, f.WindowIncrement()) - } -} - -// test a bad frame length of wndIncBodySize+1 -func TestBadLengthWndInc(t *testing.T) { - t.Parallel() - - _, trans := loadedTrans([]byte{0x00, wndIncBodySize + 1, 0x0, TypeStreamWndInc, 0x7F, 0xFF, 0xFF, 0xFF, 0x0, 0x0, 0x0, 0x0}) - h := newHeader() - if err := h.readFrom(trans); err != nil { - t.Fatalf("Failed to read header: %v", err) - } - var f RStreamWndInc - f.Header = h - if err := f.readFrom(trans); err == nil { - t.Errorf("Expected error when setting bad wndinc frame length, got none.") - } -} - -// test fewer than rstBodySize bytes available after header -func TestShortReadWndInc(t *testing.T) { - t.Parallel() - - _, trans := loadedTrans([]byte{0x00, wndIncBodySize, 0x0, TypeStreamWndInc, 0x7F, 0xFF, 0xFF, 0xFF, 0x1}) - h := newHeader() - if err := h.readFrom(trans); err != nil { - t.Fatalf("Failed to read header: %v", err) - } - var f RStreamWndInc - f.Header = h - if err := f.readFrom(trans); err == nil { - t.Errorf("Expected error when reading incomplete frame, got none.") - } -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/interface.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/interface.go deleted file mode 100644 index 60324b47..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/interface.go +++ /dev/null @@ -1,36 +0,0 @@ -package proto - -import ( - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame" - "net" - "time" -) - -type IStream interface { - Write([]byte) (int, error) - Read([]byte) (int, error) - Close() error - SetDeadline(time.Time) error - SetReadDeadline(time.Time) error - SetWriteDeadline(time.Time) error - HalfClose([]byte) (int, error) - Id() frame.StreamId - StreamType() frame.StreamType - Session() ISession - RemoteAddr() net.Addr - LocalAddr() net.Addr -} - -type ISession interface { - Open() (IStream, error) - OpenStream(frame.StreamPriority, frame.StreamType, bool) (IStream, error) - Accept() (IStream, error) - Kill() error - GoAway(frame.ErrorCode, []byte) error - LocalAddr() net.Addr - RemoteAddr() net.Addr - Close() error - Wait() (frame.ErrorCode, error, []byte) - NetListener() net.Listener - NetDial(_, _ string) (net.Conn, error) -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/session.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/session.go deleted file mode 100644 index f5404f1c..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/session.go +++ /dev/null @@ -1,474 +0,0 @@ -package proto - -import ( - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame" - "fmt" - "io" - "net" - "reflect" - "sync" - "sync/atomic" - "time" -) - -const ( - defaultWindowSize = 0x10000 // 64KB - defaultAcceptQueueDepth = 100 - MinExtensionType = 0xFFFFFFFF - 0x100 // 512 extensions -) - -// private interface for Sessions to call Streams -type stream interface { - IStream - handleStreamData(*frame.RStreamData) - handleStreamWndInc(*frame.RStreamWndInc) - handleStreamRst(*frame.RStreamRst) - closeWith(error) -} - -// for extensions -type ExtAccept func() (IStream, error) -type Extension interface { - Start(ISession, ExtAccept) frame.StreamType -} - -type deadReason struct { - errorCode frame.ErrorCode - err error - remoteDebug []byte -} - -// factory function that creates new streams -type streamFactory func(id frame.StreamId, priority frame.StreamPriority, streamType frame.StreamType, finLocal bool, finRemote bool, windowSize uint32, sess session) stream - -// checks the parity of a stream id (local vs remote, client vs server) -type parityFn func(frame.StreamId) bool - -// state for each half of the session (remote and local) -type halfState struct { - goneAway int32 // true if that half of the stream has gone away - lastId uint32 // last id used/seen from one half of the session -} - -// Session implements a simple streaming session manager. It has the following characteristics: -// -// - When closing the Session, it does not linger, all pending write operations will fail immediately. -// - It completely ignores stream priority when processing and writing frames -// - It offers no customization of settings like window size/ping time -type Session struct { - conn net.Conn // connection the transport is running over - transport frame.Transport // transport - streams StreamMap // all active streams - local halfState // client state - remote halfState // server state - syn *frame.WStreamSyn // STREAM_SYN frame for opens - wr sync.Mutex // synchronization when writing frames - accept chan stream // new streams opened by the remote - diebit int32 // true if we're dying - remoteDebug []byte // debugging data sent in the remote's GoAway frame - defaultWindowSize uint32 // window size when creating new streams - newStream streamFactory // factory function to make new streams - dead chan deadReason // dead - isLocal parityFn // determines if a stream id is local or remote - exts map[frame.StreamType]chan stream // map of extension stream type -> accept channel for the extension -} - -func NewSession(conn net.Conn, newStream streamFactory, isClient bool, exts []Extension) ISession { - sess := &Session{ - conn: conn, - transport: frame.NewBasicTransport(conn), - streams: NewConcurrentStreamMap(), - local: halfState{lastId: 0}, - remote: halfState{lastId: 0}, - syn: frame.NewWStreamSyn(), - diebit: 0, - defaultWindowSize: defaultWindowSize, - accept: make(chan stream, defaultAcceptQueueDepth), - newStream: newStream, - dead: make(chan deadReason, 1), // don't block die() if there is no Wait call - exts: make(map[frame.StreamType]chan stream), - } - - if isClient { - sess.isLocal = sess.isClient - sess.local.lastId += 1 - } else { - sess.isLocal = sess.isServer - sess.remote.lastId += 1 - } - - for _, ext := range exts { - sess.startExtension(ext) - } - - go sess.reader() - - return sess -} - -//////////////////////////////// -// public interface -//////////////////////////////// - -func (s *Session) Open() (IStream, error) { - return s.OpenStream(0, 0, false) -} - -func (s *Session) OpenStream(priority frame.StreamPriority, streamType frame.StreamType, fin bool) (ret IStream, err error) { - // check if the remote has gone away - if atomic.LoadInt32(&s.remote.goneAway) == 1 { - return nil, fmt.Errorf("Failed to create stream, remote has gone away.") - } - - // this lock prevents the following race: - // goroutine1 goroutine2 - // - inc stream id - // - inc stream id - // - send streamsyn - // - send streamsyn - s.wr.Lock() - - // get the next id we can use - nextId := frame.StreamId(atomic.AddUint32(&s.local.lastId, 2)) - - // make the stream - str := s.newStream(nextId, priority, streamType, fin, false, s.defaultWindowSize, s) - - // add to to the stream map - s.streams.Set(nextId, str) - - // write the frame - if err = s.syn.Set(nextId, priority, streamType, fin); err != nil { - s.wr.Unlock() - s.die(frame.InternalError, err) - return - } - - if err = s.transport.WriteFrame(s.syn); err != nil { - s.wr.Unlock() - s.die(frame.InternalError, err) - return - } - - s.wr.Unlock() - return str, nil -} - -func (s *Session) Accept() (str IStream, err error) { - var ok bool - if str, ok = <-s.accept; !ok { - return nil, fmt.Errorf("Session closed") - } - - return -} - -func (s *Session) Kill() error { - return s.transport.Close() -} - -func (s *Session) Close() error { - return s.die(frame.NoError, fmt.Errorf("Session Close()")) -} - -func (s *Session) GoAway(errorCode frame.ErrorCode, debug []byte) (err error) { - if !atomic.CompareAndSwapInt32(&s.local.goneAway, 0, 1) { - return fmt.Errorf("Already sent GoAway!") - } - - s.wr.Lock() - f := frame.NewWGoAway() - remoteId := frame.StreamId(atomic.LoadUint32(&s.remote.lastId)) - if err = f.Set(remoteId, errorCode, debug); err != nil { - s.wr.Unlock() - s.die(frame.InternalError, err) - return - } - - if err = s.transport.WriteFrame(f); err != nil { - s.wr.Unlock() - s.die(frame.InternalError, err) - return - } - - s.wr.Unlock() - return -} - -func (s *Session) LocalAddr() net.Addr { - return s.conn.LocalAddr() -} - -func (s *Session) RemoteAddr() net.Addr { - return s.conn.RemoteAddr() -} - -func (s *Session) Wait() (frame.ErrorCode, error, []byte) { - reason := <-s.dead - return reason.errorCode, reason.err, reason.remoteDebug -} - -//////////////////////////////// -// private interface for streams -//////////////////////////////// - -// removeStream removes a stream from this session's stream registry -// -// It does not error if the stream is not present -func (s *Session) removeStream(id frame.StreamId) { - s.streams.Delete(id) - return -} - -// writeFrame writes the given frame to the transport and returns the error from the write operation -func (s *Session) writeFrame(f frame.WFrame, dl time.Time) (err error) { - s.wr.Lock() - s.conn.SetWriteDeadline(dl) - err = s.transport.WriteFrame(f) - s.wr.Unlock() - return -} - -// die closes the session cleanly with the given error and protocol error code -func (s *Session) die(errorCode frame.ErrorCode, err error) error { - // only one shutdown ever happens - if !atomic.CompareAndSwapInt32(&s.diebit, 0, 1) { - return fmt.Errorf("Shutdown already in progress") - } - - // send a go away frame - s.GoAway(errorCode, []byte(err.Error())) - - // now we're safe to stop accepting incoming connections - close(s.accept) - - // we cleaned up as best as possible, close the transport - s.transport.Close() - - // notify all of the streams that we're closing - s.streams.Each(func(id frame.StreamId, str stream) { - str.closeWith(fmt.Errorf("Session closed")) - }) - - s.dead <- deadReason{errorCode, err, s.remoteDebug} - - return nil -} - -//////////////////////////////// -// internal methods -//////////////////////////////// - -// reader() reads frames from the underlying transport and handles passes them to handleFrame -func (s *Session) reader() { - defer s.recoverPanic("reader()") - - // close all of the extension accept channels when we're done - // we do this here instead of in die() since otherwise it wouldn't - // be safe to access s.exts - defer func() { - for _, extAccept := range s.exts { - close(extAccept) - } - }() - - for { - f, err := s.transport.ReadFrame() - if err != nil { - // if we fail to read a frame, terminate the session - _, ok := err.(*frame.FramingError) - if ok { - s.die(frame.ProtocolError, err) - } else { - s.die(frame.InternalError, err) - } - return - } - - s.handleFrame(f) - } -} - -func (s *Session) handleFrame(rf frame.RFrame) { - switch f := rf.(type) { - case *frame.RStreamSyn: - // if we're going away, refuse new streams - if atomic.LoadInt32(&s.local.goneAway) == 1 { - rstF := frame.NewWStreamRst() - rstF.Set(f.StreamId(), frame.RefusedStream) - go s.writeFrame(rstF, time.Time{}) - return - } - - if f.StreamId() <= frame.StreamId(atomic.LoadUint32(&s.remote.lastId)) { - s.die(frame.ProtocolError, fmt.Errorf("Stream id %d is less than last remote id.", f.StreamId())) - return - } - - if s.isLocal(f.StreamId()) { - s.die(frame.ProtocolError, fmt.Errorf("Stream id has wrong parity for remote endpoint: %d", f.StreamId())) - return - } - - // update last remote id - atomic.StoreUint32(&s.remote.lastId, uint32(f.StreamId())) - - // make the new stream - str := s.newStream(f.StreamId(), f.StreamPriority(), f.StreamType(), false, f.Fin(), s.defaultWindowSize, s) - - // add it to the stream map - s.streams.Set(f.StreamId(), str) - - // check if this is an extension stream - if f.StreamType() >= MinExtensionType { - extAccept, ok := s.exts[f.StreamType()] - if !ok { - // Extension type of stream not registered - fRst := frame.NewWStreamRst() - if err := fRst.Set(f.StreamId(), frame.StreamClosed); err != nil { - s.die(frame.InternalError, err) - } - - s.wr.Lock() - defer s.wr.Unlock() - s.transport.WriteFrame(fRst) - } else { - extAccept <- str - } - - return - } - - // put the new stream on the accept channel - s.accept <- str - - case *frame.RStreamData: - if str := s.getStream(f.StreamId()); str != nil { - str.handleStreamData(f) - } else { - // if we get a data frame on a non-existent connection, we still - // need to read out the frame body so that the stream stays in a - // good state. read the payload into a throwaway buffer - discard := make([]byte, f.Length()) - io.ReadFull(f.Reader(), discard) - - // DATA frames on closed connections are just stream-level errors - fRst := frame.NewWStreamRst() - if err := fRst.Set(f.StreamId(), frame.StreamClosed); err != nil { - s.die(frame.InternalError, err) - } - - s.wr.Lock() - defer s.wr.Unlock() - s.transport.WriteFrame(fRst) - return - } - - case *frame.RStreamRst: - // delegate to the stream to handle these frames - if str := s.getStream(f.StreamId()); str != nil { - str.handleStreamRst(f) - } - case *frame.RStreamWndInc: - // delegate to the stream to handle these frames - if str := s.getStream(f.StreamId()); str != nil { - str.handleStreamWndInc(f) - } - - case *frame.RGoAway: - atomic.StoreInt32(&s.remote.goneAway, 1) - s.remoteDebug = f.Debug() - - lastId := f.LastStreamId() - s.streams.Each(func(id frame.StreamId, str stream) { - // close all streams that we opened above the last handled id - if s.isLocal(str.Id()) && str.Id() > lastId { - str.closeWith(fmt.Errorf("Remote is going away")) - } - }) - - default: - s.die(frame.ProtocolError, fmt.Errorf("Unrecognized frame type: %v", reflect.TypeOf(f))) - return - } -} - -func (s *Session) recoverPanic(prefix string) { - if r := recover(); r != nil { - s.die(frame.InternalError, fmt.Errorf("%s panic: %v", prefix, r)) - } -} - -func (s *Session) getStream(id frame.StreamId) (str stream) { - // decide if this id is in the "idle" state (i.e. greater than any we've seen for that parity) - var lastId *uint32 - if s.isLocal(id) { - lastId = &s.local.lastId - } else { - lastId = &s.remote.lastId - } - - if uint32(id) > atomic.LoadUint32(lastId) { - s.die(frame.ProtocolError, fmt.Errorf("%d is an invalid, unassigned stream id", id)) - } - - // find the stream in the stream map - var ok bool - if str, ok = s.streams.Get(id); !ok { - return nil - } - - return -} - -// check if a stream id is for a client stream. client streams are odd -func (s *Session) isClient(id frame.StreamId) bool { - return uint32(id)&1 == 1 -} - -func (s *Session) isServer(id frame.StreamId) bool { - return !s.isClient(id) -} - -////////////////////////////////////////////// -// session extensions -////////////////////////////////////////////// -func (s *Session) startExtension(ext Extension) { - accept := make(chan stream) - extAccept := func() (IStream, error) { - s, ok := <-accept - if !ok { - return nil, fmt.Errorf("Failed to accept connection, shutting down") - } - - return s, nil - } - - extType := ext.Start(s, extAccept) - s.exts[extType] = accept -} - -////////////////////////////////////////////// -// net adaptors -////////////////////////////////////////////// -func (s *Session) NetDial(_, _ string) (net.Conn, error) { - str, err := s.Open() - return net.Conn(str), err -} - -func (s *Session) NetListener() net.Listener { - return &netListenerAdaptor{s} -} - -type netListenerAdaptor struct { - *Session -} - -func (a *netListenerAdaptor) Addr() net.Addr { - return a.LocalAddr() -} - -func (a *netListenerAdaptor) Accept() (net.Conn, error) { - str, err := a.Session.Accept() - return net.Conn(str), err -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/session_test.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/session_test.go deleted file mode 100644 index 642fad85..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/session_test.go +++ /dev/null @@ -1,340 +0,0 @@ -package proto - -import ( - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame" - "io" - "io/ioutil" - "net" - "net/http" - "testing" - "time" -) - -func fakeStreamFactory(id frame.StreamId, priority frame.StreamPriority, streamType frame.StreamType, finLocal bool, finRemote bool, windowSize uint32, sess session) stream { - return new(fakeStream) -} - -type fakeStream struct { -} - -func (s *fakeStream) Write([]byte) (int, error) { return 0, nil } -func (s *fakeStream) Read([]byte) (int, error) { return 0, nil } -func (s *fakeStream) Close() error { return nil } -func (s *fakeStream) SetDeadline(time.Time) error { return nil } -func (s *fakeStream) SetReadDeadline(time.Time) error { return nil } -func (s *fakeStream) SetWriteDeadline(time.Time) error { return nil } -func (s *fakeStream) HalfClose([]byte) (int, error) { return 0, nil } -func (s *fakeStream) Id() frame.StreamId { return 0 } -func (s *fakeStream) StreamType() frame.StreamType { return 0 } -func (s *fakeStream) Session() ISession { return nil } -func (s *fakeStream) RemoteAddr() net.Addr { return nil } -func (s *fakeStream) LocalAddr() net.Addr { return nil } -func (s *fakeStream) handleStreamData(*frame.RStreamData) {} -func (s *fakeStream) handleStreamWndInc(*frame.RStreamWndInc) {} -func (s *fakeStream) handleStreamRst(*frame.RStreamRst) {} -func (s *fakeStream) closeWith(error) {} - -type fakeConn struct { - in *io.PipeReader - out *io.PipeWriter - closed bool -} - -func (c *fakeConn) SetDeadline(time.Time) error { return nil } -func (c *fakeConn) SetReadDeadline(time.Time) error { return nil } -func (c *fakeConn) SetWriteDeadline(time.Time) error { return nil } -func (c *fakeConn) LocalAddr() net.Addr { return nil } -func (c *fakeConn) RemoteAddr() net.Addr { return nil } -func (c *fakeConn) Close() error { c.closed = true; c.in.Close(); return c.out.Close() } -func (c *fakeConn) Read(p []byte) (int, error) { return c.in.Read(p) } -func (c *fakeConn) Write(p []byte) (int, error) { return c.out.Write(p) } -func (c *fakeConn) Discard() { go io.Copy(ioutil.Discard, c.in) } - -func newFakeConnPair() (local *fakeConn, remote *fakeConn) { - local, remote = new(fakeConn), new(fakeConn) - local.in, remote.out = io.Pipe() - remote.in, local.out = io.Pipe() - return -} - -func TestFailWrongClientParity(t *testing.T) { - t.Parallel() - - local, remote := newFakeConnPair() - - // don't need the remote output - remote.Discard() - - // false for a server session - s := NewSession(local, fakeStreamFactory, false, []Extension{}) - - // 300 is even, and only servers send even stream ids - f := frame.NewWStreamSyn() - f.Set(300, 0, 0, false) - - // send the frame into the session - trans := frame.NewBasicTransport(remote) - trans.WriteFrame(f) - - // wait for failure - code, err, _ := s.Wait() - - if code != frame.ProtocolError { - t.Errorf("Session not terminated with protocol error. Got %d, expected %d. Session error: %v", code, frame.ProtocolError, err) - } - - if !local.closed { - t.Errorf("Session transport not closed after protocol failure.") - } -} - -func TestWrongServerParity(t *testing.T) { - t.Parallel() - - local, remote := newFakeConnPair() - - // true for a client session - s := NewSession(local, fakeStreamFactory, true, []Extension{}) - - // don't need the remote output - remote.Discard() - - // 300 is even, and only servers send even stream ids - f := frame.NewWStreamSyn() - f.Set(301, 0, 0, false) - - // send the frame into the session - trans := frame.NewBasicTransport(remote) - trans.WriteFrame(f) - - // wait for failure - code, err, _ := s.Wait() - - if code != frame.ProtocolError { - t.Errorf("Session not terminated with protocol error. Got %d, expected %d. Session error: %v", code, frame.ProtocolError, err) - } - - if !local.closed { - t.Errorf("Session transport not closed after protocol failure.") - } -} - -func TestAcceptStream(t *testing.T) { - t.Parallel() - - local, remote := newFakeConnPair() - - // don't need the remote output - remote.Discard() - - // true for a client session - s := NewSession(local, NewStream, true, []Extension{}) - defer s.Close() - - f := frame.NewWStreamSyn() - f.Set(300, 0, 0, false) - - // send the frame into the session - trans := frame.NewBasicTransport(remote) - trans.WriteFrame(f) - - done := make(chan int) - go func() { - defer func() { done <- 1 }() - - // wait for accept - str, err := s.Accept() - - if err != nil { - t.Errorf("Error accepting stream: %v", err) - return - } - - if str.Id() != frame.StreamId(300) { - t.Errorf("Stream has wrong id. Expected %d, got %d", str.Id(), 300) - } - }() - - select { - case <-time.After(time.Second): - t.Fatalf("Timed out!") - case <-done: - } -} - -func TestSynLowId(t *testing.T) { - t.Parallel() - - local, remote := newFakeConnPair() - - // don't need the remote output - remote.Discard() - - // true for a client session - s := NewSession(local, fakeStreamFactory, true, []Extension{}) - - // Start a stream - f := frame.NewWStreamSyn() - f.Set(302, 0, 0, false) - - // send the frame into the session - trans := frame.NewBasicTransport(remote) - trans.WriteFrame(f) - - // accept it - s.Accept() - - // Start a closed stream at a lower id number - f.Set(300, 0, 0, false) - - // send the frame into the session - trans.WriteFrame(f) - - code, err, _ := s.Wait() - if code != frame.ProtocolError { - t.Errorf("Session not terminated with protocol error, got %d expected %d. Error: %v", code, frame.ProtocolError, err) - } -} - -// Check that sending a frame of the wrong size responds with FRAME_SIZE_ERROR -func TestFrameSizeError(t *testing.T) { -} - -// Check that we get a protocol error for sending STREAM_DATA on a stream id that was never opened -func TestDataOnClosed(t *testing.T) { -} - -// Check that we get nothing for sending STREAM_WND_INC on a stream id that was never opened -func TestWndIncOnClosed(t *testing.T) { -} - -// Check that we get nothing for sending STREAM_RST on a stream id that was never opened -func TestRstOnClosed(t *testing.T) { -} - -func TestGoAway(t *testing.T) { -} - -func TestCloseGoAway(t *testing.T) { -} - -func TestKill(t *testing.T) { -} - -// make sure we get a valid syn frame from opening a new stream -func TestOpen(t *testing.T) { -} - -// test opening a new stream that is immediately half-closed -func TestOpenWithFin(t *testing.T) { -} - -// validate that a session fulfills the net.Listener interface -// compile-only check -func TestNetListener(t *testing.T) { - t.Parallel() - - _ = func() { - s := NewSession(new(fakeConn), NewStream, false, []Extension{}) - http.Serve(s.NetListener(), nil) - } -} - -func TestNetListenerAccept(t *testing.T) { - t.Parallel() - local, remote := newFakeConnPair() - - sLocal := NewSession(local, NewStream, false, []Extension{}) - sRemote := NewSession(remote, NewStream, true, []Extension{}) - - go func() { - _, err := sRemote.Open() - if err != nil { - t.Errorf("Failed to open stream: %v", err) - return - } - }() - - l := sLocal.NetListener() - - _, err := l.Accept() - if err != nil { - t.Fatalf("Failed to accept stream: %v", err) - } -} - -// set up a fake extension which tries to accept a stream. -// we're testing to make sure that when the remote side closes the connection -// that the extension actually gets an error back from its accept() method -type fakeExt struct { - closeOk chan int -} - -func (e *fakeExt) Start(sess ISession, accept ExtAccept) frame.StreamType { - go func() { - _, err := accept() - if err != nil { - // we should get an error when the session close - e.closeOk <- 1 - } - }() - - return MinExtensionType -} - -func TestExtensionCleanupAccept(t *testing.T) { - t.Parallel() - local, remote := newFakeConnPair() - - closeOk := make(chan int) - _ = NewSession(local, NewStream, false, []Extension{&fakeExt{closeOk}}) - sRemote := NewSession(remote, NewStream, true, []Extension{}) - - sRemote.Close() - - select { - case <-time.After(time.Second): - t.Fatalf("Timed out!") - case <-closeOk: - } -} - -func TestWriteAfterClose(t *testing.T) { - t.Parallel() - local, remote := newFakeConnPair() - sLocal := NewSession(local, NewStream, false, []Extension{}) - sRemote := NewSession(remote, NewStream, true, []Extension{}) - - closed := make(chan int) - go func() { - stream, err := sRemote.Open() - if err != nil { - t.Errorf("Failed to open stream: %v", err) - return - } - - <-closed - if _, err = stream.Write([]byte("test!")); err != nil { - t.Errorf("Failed to write test data: %v", err) - return - } - - if _, err := sRemote.Open(); err != nil { - t.Errorf("Failed to open second stream: %v", err) - return - } - }() - - stream, err := sLocal.Accept() - if err != nil { - t.Fatalf("Failed to accept stream!") - } - - // tell the other side that we closed so they can write late - stream.Close() - closed <- 1 - - if _, err = sLocal.Accept(); err != nil { - t.Fatalf("Failed to accept second connection: %v", err) - } -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/stream.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/stream.go deleted file mode 100644 index 8be69fe9..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/stream.go +++ /dev/null @@ -1,319 +0,0 @@ -package proto - -import ( - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/buffer" - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame" - "fmt" - "io" - "net" - "sync" - "sync/atomic" - "time" -) - -var ( - zeroTime time.Time - resetRemoveDelay = 10 * time.Second - closeError = fmt.Errorf("Stream closed") -) - -type Stream struct { - id frame.StreamId // stream id (const) - streamType frame.StreamType // related stream id (const) - session session // the parent session (const) - inBuffer *buffer.Inbound // buffer for data coming in from the remote side - outBuffer *buffer.Outbound // manages size of the outbound window - sentRst uint32 // == 1 only if we sent a reset to close this connection - writer sync.Mutex // only one writer at a time - wdata *frame.WStreamData // the frame this stream is currently writing - winc *frame.WStreamWndInc // window increment currently being written - readDeadline time.Time // deadline for reads (protected by buffer mutex) - writeDeadline time.Time // deadline for writes (protected by writer mutex) -} - -// private interface for Streams to call Sessions -type session interface { - ISession - writeFrame(frame.WFrame, time.Time) error - die(frame.ErrorCode, error) error - removeStream(frame.StreamId) -} - -//////////////////////////////// -// public interface -//////////////////////////////// -func NewStream(id frame.StreamId, priority frame.StreamPriority, streamType frame.StreamType, finLocal bool, finRemote bool, windowSize uint32, sess session) stream { - str := &Stream{ - id: id, - inBuffer: buffer.NewInbound(int(windowSize)), - outBuffer: buffer.NewOutbound(int(windowSize)), - streamType: streamType, - session: sess, - wdata: frame.NewWStreamData(), - winc: frame.NewWStreamWndInc(), - } - - if finLocal { - str.inBuffer.SetError(io.EOF) - } - - if finRemote { - str.outBuffer.SetError(fmt.Errorf("Stream closed")) - } - - return str -} - -func (s *Stream) Write(buf []byte) (n int, err error) { - return s.write(buf, false) -} - -func (s *Stream) Read(buf []byte) (n int, err error) { - // read from the buffer - n, err = s.inBuffer.Read(buf) - - // if we read more than zero, we send a window update - if n > 0 { - errWnd := s.sendWindowUpdate(uint32(n)) - if errWnd != nil { - err = errWnd - s.die(frame.InternalError, err) - } - } - - return -} - -// Close closes the stream in a manner that attempts to emulate a net.Conn's Close(): -// - It calls HalfClose() with an empty buffer to half-close the stream on the remote side -// - It calls closeWith() so that all future Read/Write operations will fail -// - If the stream receives another STREAM_DATA frame from the remote side, it will send a STREAM_RST with a CANCELED error code -func (s *Stream) Close() error { - s.HalfClose([]byte{}) - s.closeWith(closeError) - return nil -} - -func (s *Stream) SetDeadline(deadline time.Time) (err error) { - if err = s.SetReadDeadline(deadline); err != nil { - return - } - if err = s.SetWriteDeadline(deadline); err != nil { - return - } - return -} - -func (s *Stream) SetReadDeadline(dl time.Time) error { - s.inBuffer.SetDeadline(dl) - return nil -} - -func (s *Stream) SetWriteDeadline(dl time.Time) error { - s.writer.Lock() - s.writeDeadline = dl - s.writer.Unlock() - return nil -} - -func (s *Stream) HalfClose(buf []byte) (n int, err error) { - return s.write(buf, true) -} - -func (s *Stream) Id() frame.StreamId { - return s.id -} - -func (s *Stream) StreamType() frame.StreamType { - return s.streamType -} - -func (s *Stream) Session() ISession { - return s.session -} - -func (s *Stream) LocalAddr() net.Addr { - return s.session.LocalAddr() -} - -func (s *Stream) RemoteAddr() net.Addr { - return s.session.RemoteAddr() -} - -///////////////////////////////////// -// session's stream interface -///////////////////////////////////// -func (s *Stream) handleStreamData(f *frame.RStreamData) { - // skip writing for zero-length frames (typically for sending FIN) - if f.Length() > 0 { - // write the data into the buffer - if _, err := s.inBuffer.ReadFrom(f.Reader()); err != nil { - if err == buffer.FullError { - s.resetWith(frame.FlowControlError, fmt.Errorf("Flow control buffer overflowed")) - } else if err == closeError { - // We're trying to emulate net.Conn's Close() behavior where we close our side of the connection, - // and if we get any more frames from the other side, we RST it. - s.resetWith(frame.Cancel, fmt.Errorf("Stream closed")) - } else if err == buffer.AlreadyClosed { - // there was already an error set - s.resetWith(frame.StreamClosed, err) - } else { - // the transport returned some sort of IO error - s.die(frame.ProtocolError, err) - } - return - } - } - - if f.Fin() { - s.inBuffer.SetError(io.EOF) - s.maybeRemove() - } - -} - -func (s *Stream) handleStreamRst(f *frame.RStreamRst) { - s.closeWith(fmt.Errorf("Stream reset by peer with error %d", f.ErrorCode())) -} - -func (s *Stream) handleStreamWndInc(f *frame.RStreamWndInc) { - s.outBuffer.Increment(int(f.WindowIncrement())) -} - -func (s *Stream) closeWith(err error) { - s.outBuffer.SetError(err) - s.inBuffer.SetError(err) - s.session.removeStream(s.id) -} - -//////////////////////////////// -// internal methods -//////////////////////////////// - -func (s *Stream) closeWithAndRemoveLater(err error) { - s.outBuffer.SetError(err) - s.inBuffer.SetError(err) - time.AfterFunc(resetRemoveDelay, func() { - s.session.removeStream(s.id) - }) -} - -func (s *Stream) maybeRemove() { - if buffer.BothClosed(s.inBuffer, s.outBuffer) { - s.session.removeStream(s.id) - } -} - -func (s *Stream) resetWith(errorCode frame.ErrorCode, resetErr error) { - // only ever send one reset - if !atomic.CompareAndSwapUint32(&s.sentRst, 0, 1) { - return - } - - // close the stream - s.closeWithAndRemoveLater(resetErr) - - // make the reset frame - rst := frame.NewWStreamRst() - if err := rst.Set(s.id, errorCode); err != nil { - s.die(frame.InternalError, err) - } - - // need write lock to make sure no data frames get sent after we send the reset - s.writer.Lock() - - // send it - if err := s.session.writeFrame(rst, zeroTime); err != nil { - s.writer.Unlock() - s.die(frame.InternalError, err) - } - - s.writer.Unlock() -} - -func (s *Stream) write(buf []byte, fin bool) (n int, err error) { - // a write call can pass a buffer larger that we can send in a single frame - // only allow one writer at a time to prevent interleaving frames from concurrent writes - s.writer.Lock() - - bufSize := len(buf) - bytesRemaining := bufSize - for bytesRemaining > 0 || fin { - // figure out the most we can write in a single frame - writeReqSize := min(0x3FFF, bytesRemaining) - - // and then reduce that to however much is available in the window - // this blocks until window is available and may not return all that we asked for - var writeSize int - if writeSize, err = s.outBuffer.Decrement(writeReqSize); err != nil { - s.writer.Unlock() - return - } - - // calculate the slice of the buffer we'll write - start, end := n, n+writeSize - - // only send fin for the last frame - finBit := fin && end == bufSize - - // make the frame - if err = s.wdata.Set(s.id, buf[start:end], finBit); err != nil { - s.writer.Unlock() - s.die(frame.InternalError, err) - return - } - - // write the frame - if err = s.session.writeFrame(s.wdata, s.writeDeadline); err != nil { - s.writer.Unlock() - return - } - - // update our counts - n += writeSize - bytesRemaining -= writeSize - - if finBit { - s.outBuffer.SetError(fmt.Errorf("Stream closed")) - s.maybeRemove() - - // handles the empty buffer case with fin case - fin = false - } - } - - s.writer.Unlock() - return -} - -// sendWindowUpdate sends a window increment frame -// with the given increment -func (s *Stream) sendWindowUpdate(inc uint32) (err error) { - // send a window update - if err = s.winc.Set(s.id, inc); err != nil { - return - } - - // XXX: write this async? We can only write one at - // a time if we're not allocating new ones from the heap - if err = s.session.writeFrame(s.winc, zeroTime); err != nil { - return - } - - return -} - -// die is called when a protocol error occurs and the entire -// session must be destroyed. -func (s *Stream) die(errorCode frame.ErrorCode, err error) { - s.closeWith(fmt.Errorf("Stream closed on error: %v", err)) - s.session.die(errorCode, err) -} - -func min(n1, n2 int) int { - if n1 > n2 { - return n2 - } else { - return n1 - } -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/stream_map.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/stream_map.go deleted file mode 100644 index 1268fc71..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/stream_map.go +++ /dev/null @@ -1,59 +0,0 @@ -package proto - -import ( - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame" - "sync" -) - -const ( - initMapCapacity = 128 // not too much extra memory wasted to avoid allocations -) - -type StreamMap interface { - Get(frame.StreamId) (stream, bool) - Set(frame.StreamId, stream) - Delete(frame.StreamId) - Each(func(frame.StreamId, stream)) -} - -// ConcurrentStreamMap is a map of stream ids -> streams guarded by a read/write lock -type ConcurrentStreamMap struct { - sync.RWMutex - table map[frame.StreamId]stream -} - -func (m *ConcurrentStreamMap) Get(id frame.StreamId) (s stream, ok bool) { - m.RLock() - s, ok = m.table[id] - m.RUnlock() - return -} - -func (m *ConcurrentStreamMap) Set(id frame.StreamId, str stream) { - m.Lock() - m.table[id] = str - m.Unlock() -} - -func (m *ConcurrentStreamMap) Delete(id frame.StreamId) { - m.Lock() - delete(m.table, id) - m.Unlock() -} - -func (m *ConcurrentStreamMap) Each(fn func(frame.StreamId, stream)) { - m.Lock() - streams := make(map[frame.StreamId]stream, len(m.table)) - for k, v := range m.table { - streams[k] = v - } - m.Unlock() - - for id, str := range streams { - fn(id, str) - } -} - -func NewConcurrentStreamMap() *ConcurrentStreamMap { - return &ConcurrentStreamMap{table: make(map[frame.StreamId]stream, initMapCapacity)} -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/stream_test.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/stream_test.go deleted file mode 100644 index 17f72ecd..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/stream_test.go +++ /dev/null @@ -1,283 +0,0 @@ -package proto - -import ( - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/frame" - "fmt" - "io" - "io/ioutil" - "testing" - "time" -) - -func TestSendHalfCloseWithZeroWindow(t *testing.T) { - t.Parallel() - - local, remote := newFakeConnPair() - - s := NewSession(local, NewStream, false, []Extension{}) - s.(*Session).defaultWindowSize = 10 - - go func() { - trans := frame.NewBasicTransport(remote) - f, err := trans.ReadFrame() - if err != nil { - t.Errorf("Failed to read next frame: %v", err) - return - } - - _, ok := f.(*frame.RStreamSyn) - if !ok { - t.Errorf("Wrong frame type. Got %v, expected %v", f.Type(), frame.TypeStreamSyn) - return - } - - f, err = trans.ReadFrame() - if err != nil { - t.Errorf("Failed to read next frame: %v", err) - return - } - - fr, ok := f.(*frame.RStreamData) - if !ok { - t.Errorf("Wrong frame type. Got %v, expected %v", f.Type(), frame.TypeStreamData) - return - } - - if fr.Length() != 10 { - t.Errorf("Wrong data length. Got %v, expected %d", fr.Length(), 10) - return - } - - n, err := io.CopyN(ioutil.Discard, fr.Reader(), 10) - if n != 10 { - t.Errorf("Wrong read size. Got %d, expected %d", n, 10) - return - } - - f, err = trans.ReadFrame() - if err != nil { - t.Errorf("Failed to read next frame: %v", err) - return - } - - fr, ok = f.(*frame.RStreamData) - if !ok { - t.Errorf("Wrong frame type. Got %v, expected %v", f.Type(), frame.TypeStreamData) - return - } - - if !fr.Fin() { - t.Errorf("Wrong frame flags. Expected fin flag to be set.") - return - } - - trans.ReadFrame() - }() - - str, err := s.Open() - if err != nil { - t.Fatalf("Failed to open stream: %v", err) - } - - _, err = str.Write(make([]byte, 10)) - if err != nil { - t.Fatalf("Failed to write data: %v", err) - } - - _, err = str.HalfClose([]byte{}) - if err != nil { - t.Fatalf("Failed to half-close with an empty buffer") - } -} - -func TestDataAfterRst(t *testing.T) { - local, remote := newFakeConnPair() - - _ = NewSession(local, NewStream, false, []Extension{}) - trans := frame.NewBasicTransport(remote) - - // make sure that we get an RST STREAM_CLOSED - done := make(chan int) - go func() { - defer func() { done <- 1 }() - - f, err := trans.ReadFrame() - if err != nil { - t.Errorf("Failed to read frame sent from session: %v", err) - return - } - - fr, ok := f.(*frame.RStreamRst) - if !ok { - t.Errorf("Frame is not STREAM_RST: %v", f) - return - } - - if fr.ErrorCode() != frame.StreamClosed { - t.Errorf("Error code on STREAM_RST is not STREAM_CLOSED. Got %d, expected %d", fr.ErrorCode(), frame.StreamClosed) - return - } - }() - - fSyn := frame.NewWStreamSyn() - if err := fSyn.Set(301, 0, 0, false); err != nil { - t.Fatalf("Failed to make syn frame: %v", err) - } - - if err := trans.WriteFrame(fSyn); err != nil { - t.Fatalf("Failed to send syn: %v", err) - } - - fRst := frame.NewWStreamRst() - if err := fRst.Set(301, frame.Cancel); err != nil { - t.Fatal("Failed to make rst frame: %v", err) - } - - if err := trans.WriteFrame(fRst); err != nil { - t.Fatalf("Failed to write rst frame: %v", err) - } - - fData := frame.NewWStreamData() - if err := fData.Set(301, []byte{0xa, 0xFF}, false); err != nil { - t.Fatalf("Failed to set data frame") - } - - trans.WriteFrame(fData) - - <-done -} - -func TestFlowControlError(t *testing.T) { - local, remote := newFakeConnPair() - - s := NewSession(local, NewStream, false, []Extension{}) - s.(*Session).defaultWindowSize = 10 - trans := frame.NewBasicTransport(remote) - - // make sure that we get an RST FLOW_CONTROL_ERROR - done := make(chan int) - go func() { - defer func() { done <- 1 }() - - f, err := trans.ReadFrame() - if err != nil { - t.Errorf("Failed to read frame sent from session: %v", err) - return - } - - fr, ok := f.(*frame.RStreamRst) - if !ok { - t.Errorf("Frame is not STREAM_RST: %v", f) - return - } - - if fr.ErrorCode() != frame.FlowControlError { - t.Errorf("Error code on STREAM_RST is not FLOW_CONTROL_ERROR. Got %d, expected %d", fr.ErrorCode(), frame.FlowControlError) - return - } - }() - - fSyn := frame.NewWStreamSyn() - if err := fSyn.Set(301, 0, 0, false); err != nil { - t.Fatalf("Failed to make syn frame: %v", err) - } - - if err := trans.WriteFrame(fSyn); err != nil { - t.Fatalf("Failed to send syn: %v", err) - } - - fData := frame.NewWStreamData() - if err := fData.Set(301, make([]byte, 11), false); err != nil { - t.Fatalf("Failed to set data frame") - } - - trans.WriteFrame(fData) - - <-done -} - -func TestTolerateLateFrameAfterRst(t *testing.T) { - local, remote := newFakeConnPair() - - s := NewSession(local, NewStream, false, []Extension{}) - trans := frame.NewBasicTransport(remote) - - // make sure that we don't get any error on a late frame - done := make(chan int) - go func() { - defer func() { done <- 1 }() - // read syn - trans.ReadFrame() - // read rst - trans.ReadFrame() - - // should block - if f, err := trans.ReadFrame(); err != nil { - t.Errorf("Error reading frame: %v", err) - } else { - t.Errorf("Got frame that we shouldn't have read: %v. Type: %v", f, f.Type()) - } - }() - - str, err := s.Open() - if err != nil { - t.Fatalf("failed to open stream") - } - - str.(*Stream).resetWith(frame.Cancel, fmt.Errorf("cancel")) - - fData := frame.NewWStreamData() - if err := fData.Set(str.Id(), []byte{0x1, 0x2, 0x3}, false); err != nil { - t.Fatalf("Failed to set data frame") - } - trans.WriteFrame(fData) - - select { - case <-done: - t.Fatalf("Stream sent response to late DATA frame") - - case <-time.After(1 * time.Second): - // ok - } -} - -// Test that we remove a stream from the session if both sides half-close -func TestRemoveAfterHalfClose(t *testing.T) { - local, remote := newFakeConnPair() - remote.Discard() - - s := NewSession(local, NewStream, false, []Extension{}) - trans := frame.NewBasicTransport(remote) - - // open stream - str, err := s.Open() - if err != nil { - t.Fatalf("failed to open stream") - } - - // half close remote side (true means half-close) - fData := frame.NewWStreamData() - if err := fData.Set(str.Id(), []byte{0x1, 0x2, 0x3}, true); err != nil { - t.Fatalf("Failed to set data frame") - } - - if err := trans.WriteFrame(fData); err != nil { - t.Fatalf("Failed to write data frame") - } - - // half-close local side - str.HalfClose([]byte{0xFF, 0xFE, 0xFD, 0xFC}) - - // yield so the stream can process - time.Sleep(0) - - // verify stream is removed - if stream, ok := s.(*Session).streams.Get(str.Id()); ok { - t.Fatalf("Expected stream %d to be removed after both sides half-closed, but found: %v!", str.Id(), stream) - - } -} - -// Test that we get a RST if we send a DATA frame after we send a DATA frame with a FIN -func TestDataAfterFin(t *testing.T) { -} diff --git a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/server.go b/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/server.go deleted file mode 100644 index 96c43a17..00000000 --- a/vendor/gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/server.go +++ /dev/null @@ -1,71 +0,0 @@ -package muxado - -import ( - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto" - "gx/QmfEm573cZeq3LpgccZMpngV6dXbm5gfU23F5nNUuhSxxJ/muxado/proto/ext" - "crypto/tls" - "net" -) - -// A Listener accepts new connections from its net.Listener -// and begins muxado server connections on them. -// -// It's API is very similar to a net.Listener, but it returns -// muxado.Sessions instead of net.Conn's. -type Listener struct { - wrapped net.Listener -} - -// Accept the next connection from the listener and begin -// a muxado session on it. -func (l *Listener) Accept() (Session, error) { - conn, err := l.wrapped.Accept() - if err != nil { - return nil, err - } - - return Server(conn), nil -} - -// Addr returns the bound address of the wrapped net.Listener -func (l *Listener) Addr() net.Addr { - return l.wrapped.Addr() -} - -// Close closes the wrapped net.Listener -func (l *Listener) Close() error { - return l.wrapped.Close() -} - -// Server returns a muxado server session using conn as the transport. -func Server(conn net.Conn) Session { - return &sessionAdaptor{proto.NewSession(conn, proto.NewStream, false, []proto.Extension{ext.NewDefaultHeartbeat()})} -} - -// Listen binds to a network address and returns a Listener which accepts -// new connections and starts muxado server sessions on them. -func Listen(network, addr string) (*Listener, error) { - l, err := net.Listen(network, addr) - if err != nil { - return nil, err - } - - return &Listener{l}, nil -} - -// ListenTLS binds to a network address and accepts new TLS-encrypted connections. -// It returns a Listener which starts new muxado server sessions on the connections. -func ListenTLS(network, addr string, tlsConfig *tls.Config) (*Listener, error) { - l, err := tls.Listen(network, addr, tlsConfig) - if err != nil { - return nil, err - } - - return &Listener{l}, nil -} - -// NewListener creates a new muxado listener which creates new muxado server sessions -// by accepting connections from the given net.Listener -func NewListener(l net.Listener) *Listener { - return &Listener{l} -} diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/.gxignore b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/.gxignore deleted file mode 100644 index 39217cdd..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/.gxignore +++ /dev/null @@ -1 +0,0 @@ -Godeps/* \ No newline at end of file diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/context.go b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/context.go deleted file mode 100644 index 63b8dfbe..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/context.go +++ /dev/null @@ -1,38 +0,0 @@ -package log - -import ( - "errors" - - "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" -) - -type key int - -const metadataKey key = 0 - -// ContextWithLoggable returns a derived context which contains the provided -// Loggable. Any Events logged with the derived context will include the -// provided Loggable. -func ContextWithLoggable(ctx context.Context, l Loggable) context.Context { - existing, err := MetadataFromContext(ctx) - if err != nil { - // context does not contain meta. just set the new metadata - child := context.WithValue(ctx, metadataKey, Metadata(l.Loggable())) - return child - } - - merged := DeepMerge(existing, l.Loggable()) - child := context.WithValue(ctx, metadataKey, merged) - return child -} - -func MetadataFromContext(ctx context.Context) (Metadata, error) { - value := ctx.Value(metadataKey) - if value != nil { - metadata, ok := value.(Metadata) - if ok { - return metadata, nil - } - } - return nil, errors.New("context contains no metadata") -} diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/context_test.go b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/context_test.go deleted file mode 100644 index 878b4103..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/context_test.go +++ /dev/null @@ -1,44 +0,0 @@ -package log - -import ( - "testing" - - "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" -) - -func TestContextContainsMetadata(t *testing.T) { - t.Parallel() - - m := Metadata{"foo": "bar"} - ctx := ContextWithLoggable(context.Background(), m) - got, err := MetadataFromContext(ctx) - if err != nil { - t.Fatal(err) - } - - _, exists := got["foo"] - if !exists { - t.Fail() - } -} - -func TestContextWithPreexistingMetadata(t *testing.T) { - t.Parallel() - - ctx := ContextWithLoggable(context.Background(), Metadata{"hello": "world"}) - ctx = ContextWithLoggable(ctx, Metadata{"goodbye": "earth"}) - - got, err := MetadataFromContext(ctx) - if err != nil { - t.Fatal(err) - } - - _, exists := got["hello"] - if !exists { - t.Fatal("original key not present") - } - _, exists = got["goodbye"] - if !exists { - t.Fatal("new key not present") - } -} diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/entry.go b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/entry.go deleted file mode 100644 index 63c02135..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/entry.go +++ /dev/null @@ -1,7 +0,0 @@ -package log - -type entry struct { - loggables []Loggable - system string - event string -} diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/example_test.go b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/example_test.go deleted file mode 100644 index 0955f6e9..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/example_test.go +++ /dev/null @@ -1,16 +0,0 @@ -package log - -import "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" - -func ExampleEventLogger() { - { - log := EventLogger(nil) - e := log.EventBegin(context.Background(), "dial") - e.Done() - } - { - log := EventLogger(nil) - e := log.EventBegin(context.Background(), "dial") - _ = e.Close() // implements io.Closer for convenience - } -} diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/log.go b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/log.go deleted file mode 100644 index 9de96b5f..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/log.go +++ /dev/null @@ -1,170 +0,0 @@ -package log - -import ( - "encoding/json" - "fmt" - "time" - - context "gx/QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct/context" -) - -// StandardLogger provides API compatibility with standard printf loggers -// eg. go-logging -type StandardLogger interface { - Debug(args ...interface{}) - Debugf(format string, args ...interface{}) - Error(args ...interface{}) - Errorf(format string, args ...interface{}) - Fatal(args ...interface{}) - Fatalf(format string, args ...interface{}) - Info(args ...interface{}) - Infof(format string, args ...interface{}) - Panic(args ...interface{}) - Panicf(format string, args ...interface{}) - Warning(args ...interface{}) - Warningf(format string, args ...interface{}) -} - -// EventLogger extends the StandardLogger interface to allow for log items -// containing structured metadata -type EventLogger interface { - StandardLogger - - // Event merges structured data from the provided inputs into a single - // machine-readable log event. - // - // If the context contains metadata, a copy of this is used as the base - // metadata accumulator. - // - // If one or more loggable objects are provided, these are deep-merged into base blob. - // - // Next, the event name is added to the blob under the key "event". If - // the key "event" already exists, it will be over-written. - // - // Finally the timestamp and package name are added to the accumulator and - // the metadata is logged. - Event(ctx context.Context, event string, m ...Loggable) - - EventBegin(ctx context.Context, event string, m ...Loggable) *EventInProgress -} - -// Logger retrieves an event logger by name -func Logger(system string) EventLogger { - - // TODO if we would like to adjust log levels at run-time. Store this event - // logger in a map (just like the util.Logger impl) - if len(system) == 0 { - setuplog := getLogger("setup-logger") - setuplog.Warning("Missing name parameter") - system = "undefined" - } - - logger := getLogger(system) - - return &eventLogger{system: system, StandardLogger: logger} -} - -// eventLogger implements the EventLogger and wraps a go-logging Logger -type eventLogger struct { - StandardLogger - - system string - // TODO add log-level -} - -func (el *eventLogger) EventBegin(ctx context.Context, event string, metadata ...Loggable) *EventInProgress { - start := time.Now() - el.Event(ctx, fmt.Sprintf("%sBegin", event), metadata...) - - eip := &EventInProgress{} - eip.doneFunc = func(additional []Loggable) { - - metadata = append(metadata, additional...) // anything added during the operation - metadata = append(metadata, LoggableMap(map[string]interface{}{ // finally, duration of event - "duration": time.Now().Sub(start), - })) - - el.Event(ctx, event, metadata...) - } - return eip -} - -func (el *eventLogger) Event(ctx context.Context, event string, metadata ...Loggable) { - - // short circuit if theres nothing to write to - if !WriterGroup.Active() { - return - } - - // Collect loggables for later logging - var loggables []Loggable - - // get any existing metadata from the context - existing, err := MetadataFromContext(ctx) - if err != nil { - existing = Metadata{} - } - loggables = append(loggables, existing) - - for _, datum := range metadata { - loggables = append(loggables, datum) - } - - e := entry{ - loggables: loggables, - system: el.system, - event: event, - } - - accum := Metadata{} - for _, loggable := range e.loggables { - accum = DeepMerge(accum, loggable.Loggable()) - } - - // apply final attributes to reserved keys - // TODO accum["level"] = level - accum["event"] = e.event - accum["system"] = e.system - accum["time"] = FormatRFC3339(time.Now()) - - out, err := json.Marshal(accum) - if err != nil { - el.Errorf("ERROR FORMATTING EVENT ENTRY: %s", err) - return - } - - WriterGroup.Write(append(out, '\n')) -} - -type EventInProgress struct { - loggables []Loggable - doneFunc func([]Loggable) -} - -// Append adds loggables to be included in the call to Done -func (eip *EventInProgress) Append(l Loggable) { - eip.loggables = append(eip.loggables, l) -} - -// SetError includes the provided error -func (eip *EventInProgress) SetError(err error) { - eip.loggables = append(eip.loggables, LoggableMap{ - "error": err.Error(), - }) -} - -// Done creates a new Event entry that includes the duration and appended -// loggables. -func (eip *EventInProgress) Done() { - eip.doneFunc(eip.loggables) // create final event with extra data -} - -// Close is an alias for done -func (eip *EventInProgress) Close() error { - eip.Done() - return nil -} - -func FormatRFC3339(t time.Time) string { - return t.UTC().Format(time.RFC3339Nano) -} diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/loggable.go b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/loggable.go deleted file mode 100644 index d770ebaf..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/loggable.go +++ /dev/null @@ -1,34 +0,0 @@ -package log - -// Loggable describes objects that can be marshalled into Metadata for logging -type Loggable interface { - Loggable() map[string]interface{} -} - -type LoggableMap map[string]interface{} - -func (l LoggableMap) Loggable() map[string]interface{} { - return l -} - -// LoggableF converts a func into a Loggable -type LoggableF func() map[string]interface{} - -func (l LoggableF) Loggable() map[string]interface{} { - return l() -} - -func Deferred(key string, f func() string) Loggable { - function := func() map[string]interface{} { - return map[string]interface{}{ - key: f(), - } - } - return LoggableF(function) -} - -func Pair(key string, l Loggable) Loggable { - return LoggableMap{ - key: l, - } -} diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/metadata.go b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/metadata.go deleted file mode 100644 index efc7e340..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/metadata.go +++ /dev/null @@ -1,82 +0,0 @@ -package log - -import ( - "encoding/json" - "errors" - "reflect" - - "gx/QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM/go.uuid" -) - -// Metadata is a convenience type for generic maps -type Metadata map[string]interface{} - -// Uuid returns a Metadata with the string key and UUID value -func Uuid(key string) Metadata { - return Metadata{ - key: uuid.NewV4().String(), - } -} - -// DeepMerge merges the second Metadata parameter into the first. -// Nested Metadata are merged recursively. Primitives are over-written. -func DeepMerge(b, a Metadata) Metadata { - out := Metadata{} - for k, v := range b { - out[k] = v - } - for k, v := range a { - - maybe, err := Metadatify(v) - if err != nil { - // if the new value is not meta. just overwrite the dest vaue - out[k] = v - continue - } - - // it is meta. What about dest? - outv, exists := out[k] - if !exists { - // the new value is meta, but there's no dest value. just write it - out[k] = v - continue - } - - outMetadataValue, err := Metadatify(outv) - if err != nil { - // the new value is meta and there's a dest value, but the dest - // value isn't meta. just overwrite - out[k] = v - continue - } - - // both are meta. merge them. - out[k] = DeepMerge(outMetadataValue, maybe) - } - return out -} - -// Loggable implements the Loggable interface -func (m Metadata) Loggable() map[string]interface{} { - // NB: method defined on value to avoid de-referencing nil Metadata - return m -} - -func (m Metadata) JsonString() (string, error) { - // NB: method defined on value - b, err := json.Marshal(m) - return string(b), err -} - -// Metadatify converts maps into Metadata -func Metadatify(i interface{}) (Metadata, error) { - value := reflect.ValueOf(i) - if value.Kind() == reflect.Map { - m := map[string]interface{}{} - for _, k := range value.MapKeys() { - m[k.String()] = value.MapIndex(k).Interface() - } - return Metadata(m), nil - } - return nil, errors.New("is not a map") -} diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/metadata_test.go b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/metadata_test.go deleted file mode 100644 index c1814511..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/metadata_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package log - -import "testing" - -func TestOverwrite(t *testing.T) { - t.Parallel() - - under := Metadata{ - "a": Metadata{ - "b": Metadata{ - "c": Metadata{ - "d": "the original value", - "other": "SURVIVE", - }, - }, - }, - } - over := Metadata{ - "a": Metadata{ - "b": Metadata{ - "c": Metadata{ - "d": "a new value", - }, - }, - }, - } - - out := DeepMerge(under, over) - - dval := out["a"].(Metadata)["b"].(Metadata)["c"].(Metadata)["d"].(string) - if dval != "a new value" { - t.Fatal(dval) - } - surv := out["a"].(Metadata)["b"].(Metadata)["c"].(Metadata)["other"].(string) - if surv != "SURVIVE" { - t.Fatal(surv) - } -} - -func TestMarshalJSON(t *testing.T) { - t.Parallel() - bs, _ := Metadata{"a": "b"}.JsonString() - t.Log(bs) -} - -func TestMetadataIsLoggable(t *testing.T) { - t.Parallel() - func(l Loggable) { - }(Metadata{}) -} diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/oldlog.go b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/oldlog.go deleted file mode 100644 index 8ebd2538..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/oldlog.go +++ /dev/null @@ -1,105 +0,0 @@ -package log - -import ( - "errors" - "fmt" - "os" - - logging "gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging" -) - -func init() { - SetupLogging() -} - -var ansiGray = "\033[0;37m" -var ansiBlue = "\033[0;34m" - -var LogFormats = map[string]string{ - "nocolor": "%{time:2006-01-02 15:04:05.000000} %{level} %{module} %{shortfile}: %{message}", - "color": ansiGray + "%{time:15:04:05.000} %{color}%{level:5.5s} " + ansiBlue + - "%{module:10.10s}: %{color:reset}%{message} " + ansiGray + "%{shortfile}%{color:reset}", -} - -var defaultLogFormat = "color" - -// Logging environment variables -const ( - envLogging = "IPFS_LOGGING" - envLoggingFmt = "IPFS_LOGGING_FMT" -) - -// ErrNoSuchLogger is returned when the util pkg is asked for a non existant logger -var ErrNoSuchLogger = errors.New("Error: No such logger") - -// loggers is the set of loggers in the system -var loggers = map[string]*logging.Logger{} - -// SetupLogging will initialize the logger backend and set the flags. -func SetupLogging() { - - lfmt := LogFormats[os.Getenv(envLoggingFmt)] - if lfmt == "" { - lfmt = LogFormats[defaultLogFormat] - } - - backend := logging.NewLogBackend(os.Stderr, "", 0) - logging.SetBackend(backend) - logging.SetFormatter(logging.MustStringFormatter(lfmt)) - - lvl := logging.ERROR - - if logenv := os.Getenv(envLogging); logenv != "" { - var err error - lvl, err = logging.LogLevel(logenv) - if err != nil { - fmt.Println("error setting log levels", err) - } - } - - SetAllLoggers(lvl) -} - -// SetDebugLogging calls SetAllLoggers with logging.DEBUG -func SetDebugLogging() { - SetAllLoggers(logging.DEBUG) -} - -// SetAllLoggers changes the logging.Level of all loggers to lvl -func SetAllLoggers(lvl logging.Level) { - logging.SetLevel(lvl, "") - for n := range loggers { - logging.SetLevel(lvl, n) - } -} - -// SetLogLevel changes the log level of a specific subsystem -// name=="*" changes all subsystems -func SetLogLevel(name, level string) error { - lvl, err := logging.LogLevel(level) - if err != nil { - return err - } - - // wildcard, change all - if name == "*" { - SetAllLoggers(lvl) - return nil - } - - // Check if we have a logger by that name - if _, ok := loggers[name]; !ok { - return ErrNoSuchLogger - } - - logging.SetLevel(lvl, name) - - return nil -} - -func getLogger(name string) *logging.Logger { - log := logging.MustGetLogger(name) - log.ExtraCalldepth = 1 - loggers[name] = log - return log -} diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/option.go b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/option.go deleted file mode 100644 index d92ce780..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/option.go +++ /dev/null @@ -1,52 +0,0 @@ -package log - -import ( - "io" - - logging "gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging" -) - -// Global writer group for logs to output to -var WriterGroup = NewMirrorWriter() - -type Option func() - -// Configure applies the provided options sequentially from left to right -func Configure(options ...Option) { - for _, f := range options { - f() - } -} - -// LdJSONFormatter Option formats the event log as line-delimited JSON -var LdJSONFormatter = func() { - logging.SetFormatter(&PoliteJSONFormatter{}) -} - -// TextFormatter Option formats the event log as human-readable plain-text -var TextFormatter = func() { - logging.SetFormatter(logging.DefaultFormatter) -} - -func Output(w io.Writer) Option { - return func() { - backend := logging.NewLogBackend(w, "", 0) - logging.SetBackend(backend) - // TODO return previous Output option - } -} - -// LevelDebug Option sets the log level to debug -var LevelDebug = func() { - logging.SetLevel(logging.DEBUG, "") -} - -// LevelError Option sets the log level to error -var LevelError = func() { - logging.SetLevel(logging.ERROR, "") -} - -// LevelInfo Option sets the log level to info -var LevelInfo = func() { - logging.SetLevel(logging.INFO, "") -} diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/package.json b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/package.json deleted file mode 100644 index 26700ae8..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "go-log", - "author": "whyrusleeping", - "version": "0.0.0", - "gxDependencies": [ - { - "name": "go-logging", - "hash": "QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV", - "version": "0.0.0" - }, - { - "name": "context", - "hash": "QmacZi9WygGK7Me8mH53pypyscHzU386aUZXpr28GZgUct", - "version": "1.0.0" - }, - { - "name": "go.uuid", - "hash": "QmPC2dW6jyNzzBKYuHLBhxzfWaUSkyC9qaGMz7ciytRSFM", - "version": "0.0.0" - } - ], - "language": "go", - "issues_url": "", - "gx": { - "dvcsimport": "github.com/ipfs/go-log" - } -} \ No newline at end of file diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/polite_json_formatter.go b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/polite_json_formatter.go deleted file mode 100644 index 3d9993cf..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/polite_json_formatter.go +++ /dev/null @@ -1,28 +0,0 @@ -package log - -import ( - "encoding/json" - "io" - - logging "gx/QmQvJiADDe7JR4m968MwXobTCCzUqQkP87aRHe29MEBGHV/go-logging" -) - -// PoliteJSONFormatter marshals entries into JSON encoded slices (without -// overwriting user-provided keys). How polite of it! -type PoliteJSONFormatter struct{} - -func (f *PoliteJSONFormatter) Format(calldepth int, r *logging.Record, w io.Writer) error { - entry := make(map[string]interface{}) - entry["id"] = r.Id - entry["level"] = r.Level - entry["time"] = r.Time - entry["module"] = r.Module - entry["message"] = r.Message() - err := json.NewEncoder(w).Encode(entry) - if err != nil { - return err - } - - w.Write([]byte{'\n'}) - return nil -} diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/writer.go b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/writer.go deleted file mode 100644 index 50cdf76a..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/writer.go +++ /dev/null @@ -1,251 +0,0 @@ -package log - -import ( - "fmt" - "io" - "sync" -) - -var MaxWriterBuffer = 512 * 1024 - -var log = Logger("eventlog") - -type MirrorWriter struct { - active bool - activelk sync.Mutex - - // channel for incoming writers - writerAdd chan *writerAdd - - // slices of writer/sync-channel pairs - writers []*bufWriter - - // synchronization channel for incoming writes - msgSync chan []byte -} - -type writerSync struct { - w io.WriteCloser - br chan []byte -} - -func NewMirrorWriter() *MirrorWriter { - mw := &MirrorWriter{ - msgSync: make(chan []byte, 64), // sufficiently large buffer to avoid callers waiting - writerAdd: make(chan *writerAdd), - } - - go mw.logRoutine() - - return mw -} - -func (mw *MirrorWriter) Write(b []byte) (int, error) { - mycopy := make([]byte, len(b)) - copy(mycopy, b) - mw.msgSync <- mycopy - return len(b), nil -} - -func (mw *MirrorWriter) Close() error { - // it is up to the caller to ensure that write is not called during or - // after close is called. - close(mw.msgSync) - return nil -} - -func (mw *MirrorWriter) doClose() { - for _, w := range mw.writers { - w.writer.Close() - } -} - -func (mw *MirrorWriter) logRoutine() { - // rebind to avoid races on nilling out struct fields - msgSync := mw.msgSync - writerAdd := mw.writerAdd - - defer mw.doClose() - - for { - select { - case b, ok := <-msgSync: - if !ok { - return - } - - // write to all writers - dropped := mw.broadcastMessage(b) - - // consolidate the slice - if dropped { - mw.clearDeadWriters() - } - case wa := <-writerAdd: - mw.writers = append(mw.writers, newBufWriter(wa.w)) - - mw.activelk.Lock() - mw.active = true - mw.activelk.Unlock() - close(wa.done) - } - } -} - -// broadcastMessage sends the given message to every writer -// if any writer is killed during the send, 'true' is returned -func (mw *MirrorWriter) broadcastMessage(b []byte) bool { - var dropped bool - for i, w := range mw.writers { - _, err := w.Write(b) - if err != nil { - mw.writers[i] = nil - dropped = true - } - } - return dropped -} - -func (mw *MirrorWriter) clearDeadWriters() { - writers := mw.writers - mw.writers = nil - for _, w := range writers { - if w != nil { - mw.writers = append(mw.writers, w) - } - } - if len(mw.writers) == 0 { - mw.activelk.Lock() - mw.active = false - mw.activelk.Unlock() - } -} - -type writerAdd struct { - w io.WriteCloser - done chan struct{} -} - -func (mw *MirrorWriter) AddWriter(w io.WriteCloser) { - wa := &writerAdd{ - w: w, - done: make(chan struct{}), - } - mw.writerAdd <- wa - <-wa.done -} - -func (mw *MirrorWriter) Active() (active bool) { - mw.activelk.Lock() - active = mw.active - mw.activelk.Unlock() - return -} - -func newBufWriter(w io.WriteCloser) *bufWriter { - bw := &bufWriter{ - writer: w, - incoming: make(chan []byte, 1), - } - - go bw.loop() - return bw -} - -type bufWriter struct { - writer io.WriteCloser - - incoming chan []byte - - deathLock sync.Mutex - dead bool -} - -var errDeadWriter = fmt.Errorf("writer is dead") - -func (bw *bufWriter) Write(b []byte) (int, error) { - bw.deathLock.Lock() - dead := bw.dead - bw.deathLock.Unlock() - if dead { - if bw.incoming != nil { - close(bw.incoming) - bw.incoming = nil - } - return 0, errDeadWriter - } - - bw.incoming <- b - return len(b), nil -} - -func (bw *bufWriter) die() { - bw.deathLock.Lock() - bw.dead = true - bw.writer.Close() - bw.deathLock.Unlock() -} - -func (bw *bufWriter) loop() { - bufsize := 0 - bufBase := make([][]byte, 0, 16) // some initial memory - buffered := bufBase - nextCh := make(chan []byte) - - var nextMsg []byte - - go func() { - for b := range nextCh { - _, err := bw.writer.Write(b) - if err != nil { - log.Info("eventlog write error: %s", err) - bw.die() - return - } - } - }() - - // collect and buffer messages - incoming := bw.incoming - for { - if nextMsg == nil || nextCh == nil { - // nextCh == nil implies we are 'dead' and draining the incoming channel - // until the caller notices and closes it for us - select { - case b, ok := <-incoming: - if !ok { - return - } - nextMsg = b - } - } - - select { - case b, ok := <-incoming: - if !ok { - return - } - bufsize += len(b) - buffered = append(buffered, b) - if bufsize > MaxWriterBuffer { - // if we have too many messages buffered, kill the writer - bw.die() - close(nextCh) - nextCh = nil - // explicity keep going here to drain incoming - } - case nextCh <- nextMsg: - nextMsg = nil - if len(buffered) > 0 { - nextMsg = buffered[0] - buffered = buffered[1:] - bufsize -= len(nextMsg) - } - - if len(buffered) == 0 { - // reset slice position - buffered = bufBase[:0] - } - } - } -} diff --git a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/writer_test.go b/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/writer_test.go deleted file mode 100644 index 55466abc..00000000 --- a/vendor/gx/QmfZZB1aVXWA4kaR5R4e9NifERT366TTCSagkfhmAbYLsu/go-log/writer_test.go +++ /dev/null @@ -1,160 +0,0 @@ -package log - -import ( - "fmt" - "hash/fnv" - "io" - "sync" - "testing" - "time" - - randbo "github.com/dustin/randbo" -) - -type hangwriter struct { - c chan struct{} -} - -func newHangWriter() *hangwriter { - return &hangwriter{make(chan struct{})} -} - -func (hw *hangwriter) Write([]byte) (int, error) { - <-make(chan struct{}) - return 0, fmt.Errorf("write on closed writer") -} - -func (hw *hangwriter) Close() error { - close(hw.c) - return nil -} - -func TestMirrorWriterHang(t *testing.T) { - mw := NewMirrorWriter() - - hw := newHangWriter() - pr, pw := io.Pipe() - - mw.AddWriter(hw) - mw.AddWriter(pw) - - msg := "Hello!" - mw.Write([]byte(msg)) - - // make sure writes through can happen even with one writer hanging - done := make(chan struct{}) - go func() { - buf := make([]byte, 10) - n, err := pr.Read(buf) - if err != nil { - t.Fatal(err) - } - - if n != len(msg) { - t.Fatal("read wrong amount") - } - - if string(buf[:n]) != msg { - t.Fatal("didnt read right content") - } - - done <- struct{}{} - }() - - select { - case <-time.After(time.Second * 5): - t.Fatal("write to mirrorwriter hung") - case <-done: - } - - if !mw.Active() { - t.Fatal("writer should still be active") - } - - pw.Close() - - if !mw.Active() { - t.Fatal("writer should still be active") - } - - // now we just have the hangwriter - - // write a bunch to it - buf := make([]byte, 8192) - for i := 0; i < 128; i++ { - mw.Write(buf) - } - - // wait for goroutines to sync up - time.Sleep(time.Millisecond * 500) - - // the hangwriter should have been killed, causing the mirrorwriter to be inactive now - if mw.Active() { - t.Fatal("should be inactive now") - } -} - -func TestStress(t *testing.T) { - mw := NewMirrorWriter() - - nreaders := 20 - - var readers []io.Reader - for i := 0; i < nreaders; i++ { - pr, pw := io.Pipe() - mw.AddWriter(pw) - readers = append(readers, pr) - } - - hashout := make(chan []byte) - - numwriters := 20 - writesize := 1024 - writecount := 300 - - f := func(r io.Reader) { - h := fnv.New64a() - sum, err := io.Copy(h, r) - if err != nil { - t.Fatal(err) - } - - if sum != int64(numwriters*writesize*writecount) { - t.Fatal("read wrong number of bytes") - } - - hashout <- h.Sum(nil) - } - - for _, r := range readers { - go f(r) - } - - work := sync.WaitGroup{} - for i := 0; i < numwriters; i++ { - work.Add(1) - go func() { - defer work.Done() - r := randbo.New() - buf := make([]byte, writesize) - for j := 0; j < writecount; j++ { - r.Read(buf) - mw.Write(buf) - time.Sleep(time.Millisecond * 5) - } - }() - } - - work.Wait() - mw.Close() - - check := make(map[string]bool) - for i := 0; i < nreaders; i++ { - h := <-hashout - check[string(h)] = true - } - - if len(check) > 1 { - t.Fatal("writers received different data!") - } -}